diff --git a/Copyright.txt b/Copyright.txt new file mode 100644 index 00000000..861aa980 --- /dev/null +++ b/Copyright.txt @@ -0,0 +1,13 @@ +AForge.NET Framework +http://www.aforgenet.com/framework +================================== + +Copyright © AForge.NET, 2006-2013 +contacts@aforgenet.com + +AForge.NET is a C# framework designed for developers and researchers +in the fields of Computer Vision and Artificial Intelligence - image +processing, neural networks, genetic algorithms, machine learning, +robotics, etc. + +Please, contact project owners for any offers, remarks, ideas, etc. diff --git a/Externals/GhostAPI/AForge ReadMe.txt b/Externals/GhostAPI/AForge ReadMe.txt new file mode 100644 index 00000000..1f8a67b2 --- /dev/null +++ b/Externals/GhostAPI/AForge ReadMe.txt @@ -0,0 +1 @@ +The folder contains GhostAPI files, which is the API provided by Lego for communication with RCX brick. \ No newline at end of file diff --git a/Externals/GhostAPI/GhostAPI.dll b/Externals/GhostAPI/GhostAPI.dll new file mode 100644 index 00000000..6349d2f5 Binary files /dev/null and b/Externals/GhostAPI/GhostAPI.dll differ diff --git a/Externals/GhostAPI/PbkComm32.dll b/Externals/GhostAPI/PbkComm32.dll new file mode 100644 index 00000000..d90746e2 Binary files /dev/null and b/Externals/GhostAPI/PbkComm32.dll differ diff --git a/Externals/GhostAPI/PbkUsbPort.dll b/Externals/GhostAPI/PbkUsbPort.dll new file mode 100644 index 00000000..232250d8 Binary files /dev/null and b/Externals/GhostAPI/PbkUsbPort.dll differ diff --git a/Externals/GhostAPI/relnotes.txt b/Externals/GhostAPI/relnotes.txt new file mode 100644 index 00000000..34f4c6b1 --- /dev/null +++ b/Externals/GhostAPI/relnotes.txt @@ -0,0 +1,158 @@ + +Welcome to the LEGO cross-platform layered communication package ("Ghost")! +Please read carefully these release notes to find out what this package contains, how to +install it, what is changed from the previous releases and so on. + +All the contents of this package are Copyright (C) 1998-2001 The LEGO Company + +Enjoy! +The folks at LEGO Technology Center - Billund, Denmark + +---------------------------- + +Contents +======== + + What's in the package + Installation + Windows + MacOS + Version History + + +What's in the package +===================== + +The package contains: + + o USB Tower drivers and API for Windows 98/ME/2000/MacOS9 + o Ghost communication stack for Windows/MacOS (Intel/PowerPC) + o Ghost API w/ for Windows/MacOS (Intel/PowerPC) + Header files + Libraries + o Samples for for Windows/MacOS (Intel/PowerPC) + o Documentation + USB Tower interface documentation + Ghost API documentation + +Installation +============ + + +Windows +------- + + 1. IF YOU HAVE A LEGO USB TOWER: + Plug in your tower. When Windows prompts you, insert this CD in the CD reader and continue. + If you downloaded this package from the internet, you may have to specify the actual directory + where the USB driver files are (\WIN32\DRIVER). + + 2. Launch setup.exe from the CD's root directory. + + +MacOS +----- + + 1. Copy the LEGO tower drivers from folder "Put into Extensionfolder" to your Mac's system extensions folder. + The shared libraries in "Binary" can be put into extensions folder, or placed together with the application. + + 2. Copy the LEGO Tower control panel into the control panel folder inside the Mac's system folder. + + 3. Copy the Lego Tower Help folder to the Help folder inside the Mac's system folder. + + 3. Just grab the whole GhostAPI folder and copy it anywhere onto your hard drive. + + 4. Plug in your LEGO USB TOWER. + + +Version History +=============== + +v. 1.0.0.102 (November 15 2001) +--------------------------- +* [GhostAPI] The GhostAPI now refuses to create a USB communication stack if it's running on Win95 (or earlier) + or WInNT4 (or earlier), as those OSes do not support USB (Win95 OSR 2.1 does but it's usage is deprecated by + Microsoft and the USB tower driver does not support it). GhCreateStack will return PBK_ERR_NOTFOUND. + + +v. 1.0.0.101 (July 24 2001) +--------------------------- +* Changed major version number to 1 as this API becomes an official release. Build number remains the same. + +v. 0.1.0.101 (June 19 2001) +--------------------------- +* Increased error checking in GhCreateStack() +* [Mac] New driver with control panel and help +* [Win] Fixed driver installation script (LTOWER.INF) to prevent Windows 98 from asking for the ROBOLAB CD. + + +v. 0.1.0.100 (June 8 2001) +-------------------------- +* [Mac] New driver with full vendor request support. +* [Mac] Final version of the serial port support + + +v. 0.1.0.99 (May 18 2001) +------------------------- +* [Win] Sample Windows program supports unlock firmware and motors off/on + +* [Mac only] New Mac USB Driver supporting exclusive access to the port and some settings functions +* [Mac only] Support for SetTimeout and GetTimeout in the USB port layer. USB timeouts are not fixed + any more, but proportional to the number of bytes requested for. +* [Mac only] Preliminary version of the serial port available. + + +v. 0.1.0.98 (May 18 2001) +------------------------- +* [Mac only] New Mac USB Driver supporting exclusive access to the port and some settings functions +* [Mac only] Support for SetTimeout and GetTimeout in the USB port layer. USB timeouts are not fixed + any more, but proportional to the number of bytes requested for. +* [Mac only] Preliminary version of the serial port available. + +v. 0.1.0.97 (May 15 2001) +------------------------- +* [Win only] Now the GhostAPI doesn't load the pbkusbport and pbkcomm32 dlls untile they are needed +* [Win only] Changed the GhostAPI DLL's base address from default to 0x23000000 (this will speed up + loading in most cases). + +v. 0.1.0.96 (May 10 2001) +------------------------- +* [Mac only] Added support for serial towers + +v. 0.1.0.95 (Apr 24 2001) +------------------------- +* Added functions to the GhostAPI: GhDiagSelectFirstPort, GhDiagSelectNextPort, GhDiagSelectSpecificDevice +* [Win only] Added PbkMouse.exe to Windows binary deliverables for correct functioning of Serial port when a serial mouse is attached + to the PC. + + +v. 0.1.0.94 (Apr 20 2001) +------------------------- +* [Mac only] Fixed a bug where an attempt of creating a serial tower stack on the Macintosh would crash. +* [Mac only] GhostAPI binary and stub renamed from "GhostAPI Classic" to just "GhostAPI" in order + to be consistent with the Windows Version +* [Mac only] The GhostAPI functions are no longer mangled by the compiler +* [Win only] The Windows version now comes with a spiffy installation program +* Added function to Windows and Mac sample programs to download a minimal RCX program + +v. 0.1.0.93 (Apr 18 2001) +------------------------- +* Added new functions GhSetQueueContext and GhGetQueueContext, which give support to + notification context values. +* Windows sample program updated to show usage of GhSetQueueContext. +* Corrected bug in the Windows sample program - it was trying to destroy a queue both + in the notification function + and after calling GhExecute (if it returned PBOK). + +v. 0.1.0.92 (April 6 2001) +-------------------------- +* First Mac version released. +* GhGetRetries and GhSetRetries: changed parameter types from int and int* to int32 and int32* + +v. 0.1.0.91 (Mar 21 2001) +--------------------------- +* Removed C++ mangling from exported function names + +v. 0.1.0.90 (Mar 6 2001) +--------------------------- +* First released version (Win32 only). Code complete. diff --git a/Externals/TeRK/AForge ReadMe.txt b/Externals/TeRK/AForge ReadMe.txt new file mode 100644 index 00000000..b32315ea --- /dev/null +++ b/Externals/TeRK/AForge ReadMe.txt @@ -0,0 +1,13 @@ +The TeRK.dll is a .NET assembly, which contains built of TeRK C# types generated from TeRK ICE definition. + +TeRK is Copyright © 2007 Carnegie Mellon University Robotics +http://www.terk.ri.cmu.edu/ + +ICE is Copyright © 2008 ZeroC, Inc +http://www.zeroc.com/ice.html + +The TeRK.dll assembly is built by Andrew Kirillov for AForge.NET project +andrew.kirillov@aforgenet.com + + +Note: The TeRK.dll requires Ice.dll and Glacier2.dll, which are part of ICE package. \ No newline at end of file diff --git a/Externals/TeRK/TeRK.dll b/Externals/TeRK/TeRK.dll new file mode 100644 index 00000000..9489eaa1 Binary files /dev/null and b/Externals/TeRK/TeRK.dll differ diff --git a/Externals/ffmpeg/AForge ReadMe.txt b/Externals/ffmpeg/AForge ReadMe.txt new file mode 100644 index 00000000..04fcef27 --- /dev/null +++ b/Externals/ffmpeg/AForge ReadMe.txt @@ -0,0 +1,5 @@ +The folder contains files from Sared and Dev packages of FFMPEG 32-bit build taken from +http://ffmpeg.zeranoe.com/builds/ +Note: few files which are not used by AForge.NET were removed to save space. + +Please, refer to README.txt file for details about FFMPEG build. diff --git a/Externals/ffmpeg/README.txt b/Externals/ffmpeg/README.txt new file mode 100644 index 00000000..b4472b00 --- /dev/null +++ b/Externals/ffmpeg/README.txt @@ -0,0 +1,80 @@ +This is a FFmpeg Win32 shared build by Kyle Schwarz. + +Zeranoe's FFmpeg Builds Home Page: http://ffmpeg.zeranoe.com/builds/ + +Built on Jan 27 2012 18:37:07 + +FFmpeg version git-01fcbdf + libavutil 51. 34.101 / 51. 34.101 + libavcodec 53. 60.100 / 53. 60.100 + libavformat 53. 31.100 / 53. 31.100 + libavdevice 53. 4.100 / 53. 4.100 + libavfilter 2. 60.100 / 2. 60.100 + libswscale 2. 1.100 / 2. 1.100 + libswresample 0. 6.100 / 0. 6.100 + libpostproc 52. 0.100 / 52. 0.100 + +FFmpeg configured with: + --disable-static + --enable-shared + --enable-gpl + --enable-version3 + --disable-w32threads + --enable-runtime-cpudetect + --enable-avisynth + --enable-bzlib + --enable-frei0r + --enable-libopencore-amrnb + --enable-libopencore-amrwb + --enable-libfreetype + --enable-libgsm + --enable-libmp3lame + --enable-libopenjpeg + --enable-librtmp + --enable-libschroedinger + --enable-libspeex + --enable-libtheora + --enable-libvo-aacenc + --enable-libvo-amrwbenc + --enable-libvorbis + --enable-libvpx + --enable-libx264 + --enable-libxavs + --enable-libxvid + --enable-zlib + +The source code for this FFmpeg build can be found at: + http://ffmpeg.zeranoe.com/builds/source/ffmpeg/ + +This version of FFmpeg was built on: + Ubuntu Desktop 10.04: http://www.ubuntu.com/desktop + +The cross-compile toolchain used to compile this FFmpeg was: + MinGW-w64: http://mingw-w64.sourceforge.net/ + winpthreads (part of MinGW-w64) + +The GCC version used to compile this FFmpeg was: + GCC 4.6.2: http://gcc.gnu.org/ + +The external libaries compiled into this FFmpeg are: + bzip2 1.0.6 http://www.bzip.org + Frei0r 1.3 http://frei0r.dyne.org/ + opencore-amr 0.1.2 http://sourceforge.net/projects/opencore-amr/ + FreeType 2.4.6 http://www.freetype.org/ + gsm 1.0.13 http://libgsm.sourcearchive.com/ + LAME 3.98.4 http://lame.sourceforge.net/ + OpenJPEG 1.4 http://www.openjpeg.org/ + RTMP git-60218d0a http://rtmpdump.mplayerhq.hu/ + Schroedinger 1.0.10 http://diracvideo.org/ + Speex 1.2rc1 http://www.speex.org/ + Theora 1.1.1 http://www.theora.org/ + vo-aacenc 0.1.1 http://sourceforge.net/projects/opencore-amr/ + vo-amrwbenc 0.1.1 http://sourceforge.net/projects/opencore-amr/ + Vorbis 1.3.2 http://www.vorbis.com/ + libvpx v0.9.7-p1 http://www.webmproject.org/code/ + x264 git-bcd41db http://www.videolan.org/developers/x264.html + XAVS r55 http://xavs.sourceforge.net/ + Xvid 1.3.2 http://www.xvid.org/ + zlib 1.2.5 http://zlib.net/ + +License for each library can be found in the licenses folder. diff --git a/Externals/ffmpeg/bin/avcodec-53.dll b/Externals/ffmpeg/bin/avcodec-53.dll new file mode 100644 index 00000000..f762b3df Binary files /dev/null and b/Externals/ffmpeg/bin/avcodec-53.dll differ diff --git a/Externals/ffmpeg/bin/avdevice-53.dll b/Externals/ffmpeg/bin/avdevice-53.dll new file mode 100644 index 00000000..e7cb3b43 Binary files /dev/null and b/Externals/ffmpeg/bin/avdevice-53.dll differ diff --git a/Externals/ffmpeg/bin/avfilter-2.dll b/Externals/ffmpeg/bin/avfilter-2.dll new file mode 100644 index 00000000..21cb9aab Binary files /dev/null and b/Externals/ffmpeg/bin/avfilter-2.dll differ diff --git a/Externals/ffmpeg/bin/avformat-53.dll b/Externals/ffmpeg/bin/avformat-53.dll new file mode 100644 index 00000000..21267dd1 Binary files /dev/null and b/Externals/ffmpeg/bin/avformat-53.dll differ diff --git a/Externals/ffmpeg/bin/avutil-51.dll b/Externals/ffmpeg/bin/avutil-51.dll new file mode 100644 index 00000000..ef175d8c Binary files /dev/null and b/Externals/ffmpeg/bin/avutil-51.dll differ diff --git a/Externals/ffmpeg/bin/postproc-52.dll b/Externals/ffmpeg/bin/postproc-52.dll new file mode 100644 index 00000000..2a77b3bf Binary files /dev/null and b/Externals/ffmpeg/bin/postproc-52.dll differ diff --git a/Externals/ffmpeg/bin/swresample-0.dll b/Externals/ffmpeg/bin/swresample-0.dll new file mode 100644 index 00000000..1e6d8e11 Binary files /dev/null and b/Externals/ffmpeg/bin/swresample-0.dll differ diff --git a/Externals/ffmpeg/bin/swscale-2.dll b/Externals/ffmpeg/bin/swscale-2.dll new file mode 100644 index 00000000..f060f9f2 Binary files /dev/null and b/Externals/ffmpeg/bin/swscale-2.dll differ diff --git a/Externals/ffmpeg/include/libavcodec/avcodec.h b/Externals/ffmpeg/include/libavcodec/avcodec.h new file mode 100644 index 00000000..62e90be0 --- /dev/null +++ b/Externals/ffmpeg/include/libavcodec/avcodec.h @@ -0,0 +1,4877 @@ +/* + * copyright (c) 2001 Fabrice Bellard + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVCODEC_AVCODEC_H +#define AVCODEC_AVCODEC_H + +/** + * @file + * external API header + */ + +#include +#include "libavutil/samplefmt.h" +#include "libavutil/avutil.h" +#include "libavutil/cpu.h" +#include "libavutil/dict.h" +#include "libavutil/log.h" +#include "libavutil/pixfmt.h" +#include "libavutil/rational.h" + +#include "libavcodec/version.h" +/** + * @defgroup libavc Encoding/Decoding Library + * @{ + * + * @defgroup lavc_decoding Decoding + * @{ + * @} + * + * @defgroup lavc_encoding Encoding + * @{ + * @} + * + * @defgroup lavc_codec Codecs + * @{ + * @defgroup lavc_codec_native Native Codecs + * @{ + * @} + * @defgroup lavc_codec_wrappers External library wrappers + * @{ + * @} + * @defgroup lavc_codec_hwaccel Hardware Accelerators bridge + * @{ + * @} + * @} + * @defgroup lavc_internal Internal + * @{ + * @} + * @} + * + */ + + +/** + * Identify the syntax and semantics of the bitstream. + * The principle is roughly: + * Two decoders with the same ID can decode the same streams. + * Two encoders with the same ID can encode compatible streams. + * There may be slight deviations from the principle due to implementation + * details. + * + * If you add a codec ID to this list, add it so that + * 1. no value of a existing codec ID changes (that would break ABI), + * 2. Give it a value which when taken as ASCII is recognized uniquely by a human as this specific codec. + * This ensures that 2 forks can independantly add CodecIDs without producing conflicts. + */ +enum CodecID { + CODEC_ID_NONE, + + /* video codecs */ + CODEC_ID_MPEG1VIDEO, + CODEC_ID_MPEG2VIDEO, ///< preferred ID for MPEG-1/2 video decoding + CODEC_ID_MPEG2VIDEO_XVMC, + CODEC_ID_H261, + CODEC_ID_H263, + CODEC_ID_RV10, + CODEC_ID_RV20, + CODEC_ID_MJPEG, + CODEC_ID_MJPEGB, + CODEC_ID_LJPEG, + CODEC_ID_SP5X, + CODEC_ID_JPEGLS, + CODEC_ID_MPEG4, + CODEC_ID_RAWVIDEO, + CODEC_ID_MSMPEG4V1, + CODEC_ID_MSMPEG4V2, + CODEC_ID_MSMPEG4V3, + CODEC_ID_WMV1, + CODEC_ID_WMV2, + CODEC_ID_H263P, + CODEC_ID_H263I, + CODEC_ID_FLV1, + CODEC_ID_SVQ1, + CODEC_ID_SVQ3, + CODEC_ID_DVVIDEO, + CODEC_ID_HUFFYUV, + CODEC_ID_CYUV, + CODEC_ID_H264, + CODEC_ID_INDEO3, + CODEC_ID_VP3, + CODEC_ID_THEORA, + CODEC_ID_ASV1, + CODEC_ID_ASV2, + CODEC_ID_FFV1, + CODEC_ID_4XM, + CODEC_ID_VCR1, + CODEC_ID_CLJR, + CODEC_ID_MDEC, + CODEC_ID_ROQ, + CODEC_ID_INTERPLAY_VIDEO, + CODEC_ID_XAN_WC3, + CODEC_ID_XAN_WC4, + CODEC_ID_RPZA, + CODEC_ID_CINEPAK, + CODEC_ID_WS_VQA, + CODEC_ID_MSRLE, + CODEC_ID_MSVIDEO1, + CODEC_ID_IDCIN, + CODEC_ID_8BPS, + CODEC_ID_SMC, + CODEC_ID_FLIC, + CODEC_ID_TRUEMOTION1, + CODEC_ID_VMDVIDEO, + CODEC_ID_MSZH, + CODEC_ID_ZLIB, + CODEC_ID_QTRLE, + CODEC_ID_SNOW, + CODEC_ID_TSCC, + CODEC_ID_ULTI, + CODEC_ID_QDRAW, + CODEC_ID_VIXL, + CODEC_ID_QPEG, + CODEC_ID_PNG, + CODEC_ID_PPM, + CODEC_ID_PBM, + CODEC_ID_PGM, + CODEC_ID_PGMYUV, + CODEC_ID_PAM, + CODEC_ID_FFVHUFF, + CODEC_ID_RV30, + CODEC_ID_RV40, + CODEC_ID_VC1, + CODEC_ID_WMV3, + CODEC_ID_LOCO, + CODEC_ID_WNV1, + CODEC_ID_AASC, + CODEC_ID_INDEO2, + CODEC_ID_FRAPS, + CODEC_ID_TRUEMOTION2, + CODEC_ID_BMP, + CODEC_ID_CSCD, + CODEC_ID_MMVIDEO, + CODEC_ID_ZMBV, + CODEC_ID_AVS, + CODEC_ID_SMACKVIDEO, + CODEC_ID_NUV, + CODEC_ID_KMVC, + CODEC_ID_FLASHSV, + CODEC_ID_CAVS, + CODEC_ID_JPEG2000, + CODEC_ID_VMNC, + CODEC_ID_VP5, + CODEC_ID_VP6, + CODEC_ID_VP6F, + CODEC_ID_TARGA, + CODEC_ID_DSICINVIDEO, + CODEC_ID_TIERTEXSEQVIDEO, + CODEC_ID_TIFF, + CODEC_ID_GIF, +#if LIBAVCODEC_VERSION_MAJOR == 53 + CODEC_ID_FFH264, +#endif + CODEC_ID_DXA, + CODEC_ID_DNXHD, + CODEC_ID_THP, + CODEC_ID_SGI, + CODEC_ID_C93, + CODEC_ID_BETHSOFTVID, + CODEC_ID_PTX, + CODEC_ID_TXD, + CODEC_ID_VP6A, + CODEC_ID_AMV, + CODEC_ID_VB, + CODEC_ID_PCX, + CODEC_ID_SUNRAST, + CODEC_ID_INDEO4, + CODEC_ID_INDEO5, + CODEC_ID_MIMIC, + CODEC_ID_RL2, +#if LIBAVCODEC_VERSION_MAJOR == 53 + CODEC_ID_8SVX_EXP, + CODEC_ID_8SVX_FIB, +#endif + CODEC_ID_ESCAPE124, + CODEC_ID_DIRAC, + CODEC_ID_BFI, + CODEC_ID_CMV, + CODEC_ID_MOTIONPIXELS, + CODEC_ID_TGV, + CODEC_ID_TGQ, + CODEC_ID_TQI, + CODEC_ID_AURA, + CODEC_ID_AURA2, + CODEC_ID_V210X, + CODEC_ID_TMV, + CODEC_ID_V210, + CODEC_ID_DPX, + CODEC_ID_MAD, + CODEC_ID_FRWU, + CODEC_ID_FLASHSV2, + CODEC_ID_CDGRAPHICS, + CODEC_ID_R210, + CODEC_ID_ANM, + CODEC_ID_BINKVIDEO, + CODEC_ID_IFF_ILBM, + CODEC_ID_IFF_BYTERUN1, + CODEC_ID_KGV1, + CODEC_ID_YOP, + CODEC_ID_VP8, + CODEC_ID_PICTOR, + CODEC_ID_ANSI, + CODEC_ID_A64_MULTI, + CODEC_ID_A64_MULTI5, + CODEC_ID_R10K, + CODEC_ID_MXPEG, + CODEC_ID_LAGARITH, + CODEC_ID_PRORES, + CODEC_ID_JV, + CODEC_ID_DFA, + CODEC_ID_WMV3IMAGE, + CODEC_ID_VC1IMAGE, +#if LIBAVCODEC_VERSION_MAJOR == 53 + CODEC_ID_G723_1_DEPRECATED, + CODEC_ID_G729_DEPRECATED, +#endif + CODEC_ID_UTVIDEO_DEPRECATED, + CODEC_ID_BMV_VIDEO, + CODEC_ID_VBLE, + CODEC_ID_DXTORY, + CODEC_ID_V410, + CODEC_ID_XWD, + CODEC_ID_Y41P = MKBETAG('Y','4','1','P'), + CODEC_ID_UTVIDEO = 0x800, + CODEC_ID_ESCAPE130 = MKBETAG('E','1','3','0'), + CODEC_ID_AVRP = MKBETAG('A','V','R','P'), + + CODEC_ID_G2M = MKBETAG( 0 ,'G','2','M'), + CODEC_ID_V308 = MKBETAG('V','3','0','8'), + CODEC_ID_YUV4 = MKBETAG('Y','U','V','4'), + + /* various PCM "codecs" */ + CODEC_ID_FIRST_AUDIO = 0x10000, ///< A dummy id pointing at the start of audio codecs + CODEC_ID_PCM_S16LE = 0x10000, + CODEC_ID_PCM_S16BE, + CODEC_ID_PCM_U16LE, + CODEC_ID_PCM_U16BE, + CODEC_ID_PCM_S8, + CODEC_ID_PCM_U8, + CODEC_ID_PCM_MULAW, + CODEC_ID_PCM_ALAW, + CODEC_ID_PCM_S32LE, + CODEC_ID_PCM_S32BE, + CODEC_ID_PCM_U32LE, + CODEC_ID_PCM_U32BE, + CODEC_ID_PCM_S24LE, + CODEC_ID_PCM_S24BE, + CODEC_ID_PCM_U24LE, + CODEC_ID_PCM_U24BE, + CODEC_ID_PCM_S24DAUD, + CODEC_ID_PCM_ZORK, + CODEC_ID_PCM_S16LE_PLANAR, + CODEC_ID_PCM_DVD, + CODEC_ID_PCM_F32BE, + CODEC_ID_PCM_F32LE, + CODEC_ID_PCM_F64BE, + CODEC_ID_PCM_F64LE, + CODEC_ID_PCM_BLURAY, + CODEC_ID_PCM_LXF, + CODEC_ID_S302M, + CODEC_ID_PCM_S8_PLANAR, + + /* various ADPCM codecs */ + CODEC_ID_ADPCM_IMA_QT = 0x11000, + CODEC_ID_ADPCM_IMA_WAV, + CODEC_ID_ADPCM_IMA_DK3, + CODEC_ID_ADPCM_IMA_DK4, + CODEC_ID_ADPCM_IMA_WS, + CODEC_ID_ADPCM_IMA_SMJPEG, + CODEC_ID_ADPCM_MS, + CODEC_ID_ADPCM_4XM, + CODEC_ID_ADPCM_XA, + CODEC_ID_ADPCM_ADX, + CODEC_ID_ADPCM_EA, + CODEC_ID_ADPCM_G726, + CODEC_ID_ADPCM_CT, + CODEC_ID_ADPCM_SWF, + CODEC_ID_ADPCM_YAMAHA, + CODEC_ID_ADPCM_SBPRO_4, + CODEC_ID_ADPCM_SBPRO_3, + CODEC_ID_ADPCM_SBPRO_2, + CODEC_ID_ADPCM_THP, + CODEC_ID_ADPCM_IMA_AMV, + CODEC_ID_ADPCM_EA_R1, + CODEC_ID_ADPCM_EA_R3, + CODEC_ID_ADPCM_EA_R2, + CODEC_ID_ADPCM_IMA_EA_SEAD, + CODEC_ID_ADPCM_IMA_EA_EACS, + CODEC_ID_ADPCM_EA_XAS, + CODEC_ID_ADPCM_EA_MAXIS_XA, + CODEC_ID_ADPCM_IMA_ISS, + CODEC_ID_ADPCM_G722, + CODEC_ID_ADPCM_IMA_APC, + + /* AMR */ + CODEC_ID_AMR_NB = 0x12000, + CODEC_ID_AMR_WB, + + /* RealAudio codecs*/ + CODEC_ID_RA_144 = 0x13000, + CODEC_ID_RA_288, + + /* various DPCM codecs */ + CODEC_ID_ROQ_DPCM = 0x14000, + CODEC_ID_INTERPLAY_DPCM, + CODEC_ID_XAN_DPCM, + CODEC_ID_SOL_DPCM, + + /* audio codecs */ + CODEC_ID_MP2 = 0x15000, + CODEC_ID_MP3, ///< preferred ID for decoding MPEG audio layer 1, 2 or 3 + CODEC_ID_AAC, + CODEC_ID_AC3, + CODEC_ID_DTS, + CODEC_ID_VORBIS, + CODEC_ID_DVAUDIO, + CODEC_ID_WMAV1, + CODEC_ID_WMAV2, + CODEC_ID_MACE3, + CODEC_ID_MACE6, + CODEC_ID_VMDAUDIO, +#if LIBAVCODEC_VERSION_MAJOR == 53 + CODEC_ID_SONIC, + CODEC_ID_SONIC_LS, +#endif + CODEC_ID_FLAC, + CODEC_ID_MP3ADU, + CODEC_ID_MP3ON4, + CODEC_ID_SHORTEN, + CODEC_ID_ALAC, + CODEC_ID_WESTWOOD_SND1, + CODEC_ID_GSM, ///< as in Berlin toast format + CODEC_ID_QDM2, + CODEC_ID_COOK, + CODEC_ID_TRUESPEECH, + CODEC_ID_TTA, + CODEC_ID_SMACKAUDIO, + CODEC_ID_QCELP, + CODEC_ID_WAVPACK, + CODEC_ID_DSICINAUDIO, + CODEC_ID_IMC, + CODEC_ID_MUSEPACK7, + CODEC_ID_MLP, + CODEC_ID_GSM_MS, /* as found in WAV */ + CODEC_ID_ATRAC3, + CODEC_ID_VOXWARE, + CODEC_ID_APE, + CODEC_ID_NELLYMOSER, + CODEC_ID_MUSEPACK8, + CODEC_ID_SPEEX, + CODEC_ID_WMAVOICE, + CODEC_ID_WMAPRO, + CODEC_ID_WMALOSSLESS, + CODEC_ID_ATRAC3P, + CODEC_ID_EAC3, + CODEC_ID_SIPR, + CODEC_ID_MP1, + CODEC_ID_TWINVQ, + CODEC_ID_TRUEHD, + CODEC_ID_MP4ALS, + CODEC_ID_ATRAC1, + CODEC_ID_BINKAUDIO_RDFT, + CODEC_ID_BINKAUDIO_DCT, + CODEC_ID_AAC_LATM, + CODEC_ID_QDMC, + CODEC_ID_CELT, +#if LIBAVCODEC_VERSION_MAJOR > 53 + CODEC_ID_G723_1_DEPRECATED, + CODEC_ID_G729_DEPRECATED, + CODEC_ID_8SVX_EXP, + CODEC_ID_8SVX_FIB, +#endif + CODEC_ID_BMV_AUDIO, + CODEC_ID_G729 = 0x15800, + CODEC_ID_G723_1= 0x15801, + CODEC_ID_FFWAVESYNTH = MKBETAG('F','F','W','S'), + CODEC_ID_8SVX_RAW = MKBETAG('8','S','V','X'), + + /* subtitle codecs */ + CODEC_ID_FIRST_SUBTITLE = 0x17000, ///< A dummy ID pointing at the start of subtitle codecs. + CODEC_ID_DVD_SUBTITLE = 0x17000, + CODEC_ID_DVB_SUBTITLE, + CODEC_ID_TEXT, ///< raw UTF-8 text + CODEC_ID_XSUB, + CODEC_ID_SSA, + CODEC_ID_MOV_TEXT, + CODEC_ID_HDMV_PGS_SUBTITLE, + CODEC_ID_DVB_TELETEXT, + CODEC_ID_SRT, + CODEC_ID_MICRODVD = MKBETAG('m','D','V','D'), + + /* other specific kind of codecs (generally used for attachments) */ + CODEC_ID_FIRST_UNKNOWN = 0x18000, ///< A dummy ID pointing at the start of various fake codecs. + CODEC_ID_TTF = 0x18000, + CODEC_ID_BINTEXT = MKBETAG('B','T','X','T'), + CODEC_ID_XBIN = MKBETAG('X','B','I','N'), + CODEC_ID_IDF = MKBETAG( 0 ,'I','D','F'), + + CODEC_ID_PROBE = 0x19000, ///< codec_id is not known (like CODEC_ID_NONE) but lavf should attempt to identify it + + CODEC_ID_MPEG2TS = 0x20000, /**< _FAKE_ codec to indicate a raw MPEG-2 TS + * stream (only used by libavformat) */ + CODEC_ID_MPEG4SYSTEMS = 0x20001, /**< _FAKE_ codec to indicate a MPEG-4 Systems + * stream (only used by libavformat) */ + CODEC_ID_FFMETADATA = 0x21000, ///< Dummy codec for streams containing only metadata information. +}; + +#if FF_API_OLD_SAMPLE_FMT +#define SampleFormat AVSampleFormat + +#define SAMPLE_FMT_NONE AV_SAMPLE_FMT_NONE +#define SAMPLE_FMT_U8 AV_SAMPLE_FMT_U8 +#define SAMPLE_FMT_S16 AV_SAMPLE_FMT_S16 +#define SAMPLE_FMT_S32 AV_SAMPLE_FMT_S32 +#define SAMPLE_FMT_FLT AV_SAMPLE_FMT_FLT +#define SAMPLE_FMT_DBL AV_SAMPLE_FMT_DBL +#define SAMPLE_FMT_NB AV_SAMPLE_FMT_NB +#endif + +#if FF_API_OLD_AUDIOCONVERT +#include "libavutil/audioconvert.h" + +/* Audio channel masks */ +#define CH_FRONT_LEFT AV_CH_FRONT_LEFT +#define CH_FRONT_RIGHT AV_CH_FRONT_RIGHT +#define CH_FRONT_CENTER AV_CH_FRONT_CENTER +#define CH_LOW_FREQUENCY AV_CH_LOW_FREQUENCY +#define CH_BACK_LEFT AV_CH_BACK_LEFT +#define CH_BACK_RIGHT AV_CH_BACK_RIGHT +#define CH_FRONT_LEFT_OF_CENTER AV_CH_FRONT_LEFT_OF_CENTER +#define CH_FRONT_RIGHT_OF_CENTER AV_CH_FRONT_RIGHT_OF_CENTER +#define CH_BACK_CENTER AV_CH_BACK_CENTER +#define CH_SIDE_LEFT AV_CH_SIDE_LEFT +#define CH_SIDE_RIGHT AV_CH_SIDE_RIGHT +#define CH_TOP_CENTER AV_CH_TOP_CENTER +#define CH_TOP_FRONT_LEFT AV_CH_TOP_FRONT_LEFT +#define CH_TOP_FRONT_CENTER AV_CH_TOP_FRONT_CENTER +#define CH_TOP_FRONT_RIGHT AV_CH_TOP_FRONT_RIGHT +#define CH_TOP_BACK_LEFT AV_CH_TOP_BACK_LEFT +#define CH_TOP_BACK_CENTER AV_CH_TOP_BACK_CENTER +#define CH_TOP_BACK_RIGHT AV_CH_TOP_BACK_RIGHT +#define CH_STEREO_LEFT AV_CH_STEREO_LEFT +#define CH_STEREO_RIGHT AV_CH_STEREO_RIGHT + +/** Channel mask value used for AVCodecContext.request_channel_layout + to indicate that the user requests the channel order of the decoder output + to be the native codec channel order. */ +#define CH_LAYOUT_NATIVE AV_CH_LAYOUT_NATIVE + +/* Audio channel convenience macros */ +#define CH_LAYOUT_MONO AV_CH_LAYOUT_MONO +#define CH_LAYOUT_STEREO AV_CH_LAYOUT_STEREO +#define CH_LAYOUT_2_1 AV_CH_LAYOUT_2_1 +#define CH_LAYOUT_SURROUND AV_CH_LAYOUT_SURROUND +#define CH_LAYOUT_4POINT0 AV_CH_LAYOUT_4POINT0 +#define CH_LAYOUT_2_2 AV_CH_LAYOUT_2_2 +#define CH_LAYOUT_QUAD AV_CH_LAYOUT_QUAD +#define CH_LAYOUT_5POINT0 AV_CH_LAYOUT_5POINT0 +#define CH_LAYOUT_5POINT1 AV_CH_LAYOUT_5POINT1 +#define CH_LAYOUT_5POINT0_BACK AV_CH_LAYOUT_5POINT0_BACK +#define CH_LAYOUT_5POINT1_BACK AV_CH_LAYOUT_5POINT1_BACK +#define CH_LAYOUT_7POINT0 AV_CH_LAYOUT_7POINT0 +#define CH_LAYOUT_7POINT1 AV_CH_LAYOUT_7POINT1 +#define CH_LAYOUT_7POINT1_WIDE AV_CH_LAYOUT_7POINT1_WIDE +#define CH_LAYOUT_STEREO_DOWNMIX AV_CH_LAYOUT_STEREO_DOWNMIX +#endif + +#if FF_API_OLD_DECODE_AUDIO +/* in bytes */ +#define AVCODEC_MAX_AUDIO_FRAME_SIZE 192000 // 1 second of 48khz 32bit audio +#endif + +/** + * Required number of additionally allocated bytes at the end of the input bitstream for decoding. + * This is mainly needed because some optimized bitstream readers read + * 32 or 64 bit at once and could read over the end.
+ * Note: If the first 23 bits of the additional bytes are not 0, then damaged + * MPEG bitstreams could cause overread and segfault. + */ +#define FF_INPUT_BUFFER_PADDING_SIZE 16 + +/** + * minimum encoding buffer size + * Used to avoid some checks during header writing. + */ +#define FF_MIN_BUFFER_SIZE 16384 + + +/** + * motion estimation type. + */ +enum Motion_Est_ID { + ME_ZERO = 1, ///< no search, that is use 0,0 vector whenever one is needed + ME_FULL, + ME_LOG, + ME_PHODS, + ME_EPZS, ///< enhanced predictive zonal search + ME_X1, ///< reserved for experiments + ME_HEX, ///< hexagon based search + ME_UMH, ///< uneven multi-hexagon search + ME_ITER, ///< iterative search + ME_TESA, ///< transformed exhaustive search algorithm +}; + +enum AVDiscard{ + /* We leave some space between them for extensions (drop some + * keyframes for intra-only or drop just some bidir frames). */ + AVDISCARD_NONE =-16, ///< discard nothing + AVDISCARD_DEFAULT= 0, ///< discard useless packets like 0 size packets in avi + AVDISCARD_NONREF = 8, ///< discard all non reference + AVDISCARD_BIDIR = 16, ///< discard all bidirectional frames + AVDISCARD_NONKEY = 32, ///< discard all frames except keyframes + AVDISCARD_ALL = 48, ///< discard all +}; + +enum AVColorPrimaries{ + AVCOL_PRI_BT709 =1, ///< also ITU-R BT1361 / IEC 61966-2-4 / SMPTE RP177 Annex B + AVCOL_PRI_UNSPECIFIED=2, + AVCOL_PRI_BT470M =4, + AVCOL_PRI_BT470BG =5, ///< also ITU-R BT601-6 625 / ITU-R BT1358 625 / ITU-R BT1700 625 PAL & SECAM + AVCOL_PRI_SMPTE170M =6, ///< also ITU-R BT601-6 525 / ITU-R BT1358 525 / ITU-R BT1700 NTSC + AVCOL_PRI_SMPTE240M =7, ///< functionally identical to above + AVCOL_PRI_FILM =8, + AVCOL_PRI_NB , ///< Not part of ABI +}; + +enum AVColorTransferCharacteristic{ + AVCOL_TRC_BT709 =1, ///< also ITU-R BT1361 + AVCOL_TRC_UNSPECIFIED=2, + AVCOL_TRC_GAMMA22 =4, ///< also ITU-R BT470M / ITU-R BT1700 625 PAL & SECAM + AVCOL_TRC_GAMMA28 =5, ///< also ITU-R BT470BG + AVCOL_TRC_SMPTE240M =7, + AVCOL_TRC_NB , ///< Not part of ABI +}; + +enum AVColorSpace{ + AVCOL_SPC_RGB =0, + AVCOL_SPC_BT709 =1, ///< also ITU-R BT1361 / IEC 61966-2-4 xvYCC709 / SMPTE RP177 Annex B + AVCOL_SPC_UNSPECIFIED=2, + AVCOL_SPC_FCC =4, + AVCOL_SPC_BT470BG =5, ///< also ITU-R BT601-6 625 / ITU-R BT1358 625 / ITU-R BT1700 625 PAL & SECAM / IEC 61966-2-4 xvYCC601 + AVCOL_SPC_SMPTE170M =6, ///< also ITU-R BT601-6 525 / ITU-R BT1358 525 / ITU-R BT1700 NTSC / functionally identical to above + AVCOL_SPC_SMPTE240M =7, + AVCOL_SPC_YCGCO =8, + AVCOL_SPC_NB , ///< Not part of ABI +}; + +enum AVColorRange{ + AVCOL_RANGE_UNSPECIFIED=0, + AVCOL_RANGE_MPEG =1, ///< the normal 219*2^(n-8) "MPEG" YUV ranges + AVCOL_RANGE_JPEG =2, ///< the normal 2^n-1 "JPEG" YUV ranges + AVCOL_RANGE_NB , ///< Not part of ABI +}; + +/** + * X X 3 4 X X are luma samples, + * 1 2 1-6 are possible chroma positions + * X X 5 6 X 0 is undefined/unknown position + */ +enum AVChromaLocation{ + AVCHROMA_LOC_UNSPECIFIED=0, + AVCHROMA_LOC_LEFT =1, ///< mpeg2/4, h264 default + AVCHROMA_LOC_CENTER =2, ///< mpeg1, jpeg, h263 + AVCHROMA_LOC_TOPLEFT =3, ///< DV + AVCHROMA_LOC_TOP =4, + AVCHROMA_LOC_BOTTOMLEFT =5, + AVCHROMA_LOC_BOTTOM =6, + AVCHROMA_LOC_NB , ///< Not part of ABI +}; + +#if FF_API_FLAC_GLOBAL_OPTS +/** + * LPC analysis type + */ +enum AVLPCType { + AV_LPC_TYPE_DEFAULT = -1, ///< use the codec default LPC type + AV_LPC_TYPE_NONE = 0, ///< do not use LPC prediction or use all zero coefficients + AV_LPC_TYPE_FIXED = 1, ///< fixed LPC coefficients + AV_LPC_TYPE_LEVINSON = 2, ///< Levinson-Durbin recursion + AV_LPC_TYPE_CHOLESKY = 3, ///< Cholesky factorization + AV_LPC_TYPE_NB , ///< Not part of ABI +}; +#endif + +enum AVAudioServiceType { + AV_AUDIO_SERVICE_TYPE_MAIN = 0, + AV_AUDIO_SERVICE_TYPE_EFFECTS = 1, + AV_AUDIO_SERVICE_TYPE_VISUALLY_IMPAIRED = 2, + AV_AUDIO_SERVICE_TYPE_HEARING_IMPAIRED = 3, + AV_AUDIO_SERVICE_TYPE_DIALOGUE = 4, + AV_AUDIO_SERVICE_TYPE_COMMENTARY = 5, + AV_AUDIO_SERVICE_TYPE_EMERGENCY = 6, + AV_AUDIO_SERVICE_TYPE_VOICE_OVER = 7, + AV_AUDIO_SERVICE_TYPE_KARAOKE = 8, + AV_AUDIO_SERVICE_TYPE_NB , ///< Not part of ABI +}; + +typedef struct RcOverride{ + int start_frame; + int end_frame; + int qscale; // If this is 0 then quality_factor will be used instead. + float quality_factor; +} RcOverride; + +#define FF_MAX_B_FRAMES 16 + +/* encoding support + These flags can be passed in AVCodecContext.flags before initialization. + Note: Not everything is supported yet. +*/ + +#define CODEC_FLAG_QSCALE 0x0002 ///< Use fixed qscale. +#define CODEC_FLAG_4MV 0x0004 ///< 4 MV per MB allowed / advanced prediction for H.263. +#define CODEC_FLAG_QPEL 0x0010 ///< Use qpel MC. +#define CODEC_FLAG_GMC 0x0020 ///< Use GMC. +#define CODEC_FLAG_MV0 0x0040 ///< Always try a MB with MV=<0,0>. +/** + * The parent program guarantees that the input for B-frames containing + * streams is not written to for at least s->max_b_frames+1 frames, if + * this is not set the input will be copied. + */ +#define CODEC_FLAG_INPUT_PRESERVED 0x0100 +#define CODEC_FLAG_PASS1 0x0200 ///< Use internal 2pass ratecontrol in first pass mode. +#define CODEC_FLAG_PASS2 0x0400 ///< Use internal 2pass ratecontrol in second pass mode. +#define CODEC_FLAG_GRAY 0x2000 ///< Only decode/encode grayscale. +#define CODEC_FLAG_EMU_EDGE 0x4000 ///< Don't draw edges. +#define CODEC_FLAG_PSNR 0x8000 ///< error[?] variables will be set during encoding. +#define CODEC_FLAG_TRUNCATED 0x00010000 /** Input bitstream might be truncated at a random + location instead of only at frame boundaries. */ +#define CODEC_FLAG_NORMALIZE_AQP 0x00020000 ///< Normalize adaptive quantization. +#define CODEC_FLAG_INTERLACED_DCT 0x00040000 ///< Use interlaced DCT. +#define CODEC_FLAG_LOW_DELAY 0x00080000 ///< Force low delay. +#define CODEC_FLAG_GLOBAL_HEADER 0x00400000 ///< Place global headers in extradata instead of every keyframe. +#define CODEC_FLAG_BITEXACT 0x00800000 ///< Use only bitexact stuff (except (I)DCT). +/* Fx : Flag for h263+ extra options */ +#define CODEC_FLAG_AC_PRED 0x01000000 ///< H.263 advanced intra coding / MPEG-4 AC prediction +#define CODEC_FLAG_CBP_RD 0x04000000 ///< Use rate distortion optimization for cbp. +#define CODEC_FLAG_QP_RD 0x08000000 ///< Use rate distortion optimization for qp selectioon. +#define CODEC_FLAG_LOOP_FILTER 0x00000800 ///< loop filter +#define CODEC_FLAG_INTERLACED_ME 0x20000000 ///< interlaced motion estimation +#define CODEC_FLAG_CLOSED_GOP 0x80000000 +#define CODEC_FLAG2_FAST 0x00000001 ///< Allow non spec compliant speedup tricks. +#define CODEC_FLAG2_STRICT_GOP 0x00000002 ///< Strictly enforce GOP size. +#define CODEC_FLAG2_NO_OUTPUT 0x00000004 ///< Skip bitstream encoding. +#define CODEC_FLAG2_LOCAL_HEADER 0x00000008 ///< Place global headers at every keyframe instead of in extradata. +#define CODEC_FLAG2_SKIP_RD 0x00004000 ///< RD optimal MB level residual skipping +#define CODEC_FLAG2_CHUNKS 0x00008000 ///< Input bitstream might be truncated at a packet boundaries instead of only at frame boundaries. +#define CODEC_FLAG2_SHOW_ALL 0x00400000 ///< Show all frames before the first keyframe +/** + * @defgroup deprecated_flags Deprecated codec flags + * Use corresponding private codec options instead. + * @{ + */ +#if FF_API_MPEGVIDEO_GLOBAL_OPTS +#define CODEC_FLAG_OBMC 0x00000001 ///< OBMC +#define CODEC_FLAG_H263P_AIV 0x00000008 ///< H.263 alternative inter VLC +#define CODEC_FLAG_PART 0x0080 ///< Use data partitioning. +#define CODEC_FLAG_ALT_SCAN 0x00100000 ///< Use alternate scan. +#define CODEC_FLAG_H263P_UMV 0x02000000 ///< unlimited motion vector +#define CODEC_FLAG_H263P_SLICE_STRUCT 0x10000000 +#define CODEC_FLAG_SVCD_SCAN_OFFSET 0x40000000 ///< Will reserve space for SVCD scan offset user data. +#define CODEC_FLAG2_INTRA_VLC 0x00000800 ///< Use MPEG-2 intra VLC table. +#define CODEC_FLAG2_DROP_FRAME_TIMECODE 0x00002000 ///< timecode is in drop frame format. +#define CODEC_FLAG2_NON_LINEAR_QUANT 0x00010000 ///< Use MPEG-2 nonlinear quantizer. +#endif +#if FF_API_MJPEG_GLOBAL_OPTS +#define CODEC_FLAG_EXTERN_HUFF 0x1000 ///< Use external Huffman table (for MJPEG). +#endif +#if FF_API_X264_GLOBAL_OPTS +#define CODEC_FLAG2_BPYRAMID 0x00000010 ///< H.264 allow B-frames to be used as references. +#define CODEC_FLAG2_WPRED 0x00000020 ///< H.264 weighted biprediction for B-frames +#define CODEC_FLAG2_MIXED_REFS 0x00000040 ///< H.264 one reference per partition, as opposed to one reference per macroblock +#define CODEC_FLAG2_8X8DCT 0x00000080 ///< H.264 high profile 8x8 transform +#define CODEC_FLAG2_FASTPSKIP 0x00000100 ///< H.264 fast pskip +#define CODEC_FLAG2_AUD 0x00000200 ///< H.264 access unit delimiters +#define CODEC_FLAG2_BRDO 0x00000400 ///< B-frame rate-distortion optimization +#define CODEC_FLAG2_MBTREE 0x00040000 ///< Use macroblock tree ratecontrol (x264 only) +#define CODEC_FLAG2_PSY 0x00080000 ///< Use psycho visual optimizations. +#define CODEC_FLAG2_SSIM 0x00100000 ///< Compute SSIM during encoding, error[] values are undefined. +#define CODEC_FLAG2_INTRA_REFRESH 0x00200000 ///< Use periodic insertion of intra blocks instead of keyframes. +#endif +#if FF_API_SNOW_GLOBAL_OPTS +#define CODEC_FLAG2_MEMC_ONLY 0x00001000 ///< Only do ME/MC (I frames -> ref, P frame -> ME+MC). +#endif +#if FF_API_LAME_GLOBAL_OPTS +#define CODEC_FLAG2_BIT_RESERVOIR 0x00020000 ///< Use a bit reservoir when encoding if possible +#endif +/** + * @} + */ + +/* Unsupported options : + * Syntax Arithmetic coding (SAC) + * Reference Picture Selection + * Independent Segment Decoding */ +/* /Fx */ +/* codec capabilities */ + +#define CODEC_CAP_DRAW_HORIZ_BAND 0x0001 ///< Decoder can use draw_horiz_band callback. +/** + * Codec uses get_buffer() for allocating buffers and supports custom allocators. + * If not set, it might not use get_buffer() at all or use operations that + * assume the buffer was allocated by avcodec_default_get_buffer. + */ +#define CODEC_CAP_DR1 0x0002 +#if FF_API_PARSE_FRAME +/* If 'parse_only' field is true, then avcodec_parse_frame() can be used. */ +#define CODEC_CAP_PARSE_ONLY 0x0004 +#endif +#define CODEC_CAP_TRUNCATED 0x0008 +/* Codec can export data for HW decoding (XvMC). */ +#define CODEC_CAP_HWACCEL 0x0010 +/** + * Encoder or decoder requires flushing with NULL input at the end in order to + * give the complete and correct output. + * + * NOTE: If this flag is not set, the codec is guaranteed to never be fed with + * with NULL data. The user can still send NULL data to the public encode + * or decode function, but libavcodec will not pass it along to the codec + * unless this flag is set. + * + * Decoders: + * The decoder has a non-zero delay and needs to be fed with avpkt->data=NULL, + * avpkt->size=0 at the end to get the delayed data until the decoder no longer + * returns frames. + * + * Encoders: + * The encoder needs to be fed with NULL data at the end of encoding until the + * encoder no longer returns data. + * + * NOTE: For encoders implementing the AVCodec.encode2() function, setting this + * flag also means that the encoder must set the pts and duration for + * each output packet. If this flag is not set, the pts and duration will + * be determined by libavcodec from the input frame. + */ +#define CODEC_CAP_DELAY 0x0020 +/** + * Codec can be fed a final frame with a smaller size. + * This can be used to prevent truncation of the last audio samples. + */ +#define CODEC_CAP_SMALL_LAST_FRAME 0x0040 +/** + * Codec can export data for HW decoding (VDPAU). + */ +#define CODEC_CAP_HWACCEL_VDPAU 0x0080 +/** + * Codec can output multiple frames per AVPacket + * Normally demuxers return one frame at a time, demuxers which do not do + * are connected to a parser to split what they return into proper frames. + * This flag is reserved to the very rare category of codecs which have a + * bitstream that cannot be split into frames without timeconsuming + * operations like full decoding. Demuxers carring such bitstreams thus + * may return multiple frames in a packet. This has many disadvantages like + * prohibiting stream copy in many cases thus it should only be considered + * as a last resort. + */ +#define CODEC_CAP_SUBFRAMES 0x0100 +/** + * Codec is experimental and is thus avoided in favor of non experimental + * encoders + */ +#define CODEC_CAP_EXPERIMENTAL 0x0200 +/** + * Codec should fill in channel configuration and samplerate instead of container + */ +#define CODEC_CAP_CHANNEL_CONF 0x0400 + +/** + * Codec is able to deal with negative linesizes + */ +#define CODEC_CAP_NEG_LINESIZES 0x0800 + +/** + * Codec supports frame-level multithreading. + */ +#define CODEC_CAP_FRAME_THREADS 0x1000 +/** + * Codec supports slice-based (or partition-based) multithreading. + */ +#define CODEC_CAP_SLICE_THREADS 0x2000 +/** + * Codec supports changed parameters at any point. + */ +#define CODEC_CAP_PARAM_CHANGE 0x4000 +/** + * Codec supports avctx->thread_count == 0 (auto). + */ +#define CODEC_CAP_AUTO_THREADS 0x8000 +/** + * Audio encoder supports receiving a different number of samples in each call. + */ +#define CODEC_CAP_VARIABLE_FRAME_SIZE 0x10000 +/** + * Codec is lossless. + */ +#define CODEC_CAP_LOSSLESS 0x80000000 + +//The following defines may change, don't expect compatibility if you use them. +#define MB_TYPE_INTRA4x4 0x0001 +#define MB_TYPE_INTRA16x16 0x0002 //FIXME H.264-specific +#define MB_TYPE_INTRA_PCM 0x0004 //FIXME H.264-specific +#define MB_TYPE_16x16 0x0008 +#define MB_TYPE_16x8 0x0010 +#define MB_TYPE_8x16 0x0020 +#define MB_TYPE_8x8 0x0040 +#define MB_TYPE_INTERLACED 0x0080 +#define MB_TYPE_DIRECT2 0x0100 //FIXME +#define MB_TYPE_ACPRED 0x0200 +#define MB_TYPE_GMC 0x0400 +#define MB_TYPE_SKIP 0x0800 +#define MB_TYPE_P0L0 0x1000 +#define MB_TYPE_P1L0 0x2000 +#define MB_TYPE_P0L1 0x4000 +#define MB_TYPE_P1L1 0x8000 +#define MB_TYPE_L0 (MB_TYPE_P0L0 | MB_TYPE_P1L0) +#define MB_TYPE_L1 (MB_TYPE_P0L1 | MB_TYPE_P1L1) +#define MB_TYPE_L0L1 (MB_TYPE_L0 | MB_TYPE_L1) +#define MB_TYPE_QUANT 0x00010000 +#define MB_TYPE_CBP 0x00020000 +//Note bits 24-31 are reserved for codec specific use (h264 ref0, mpeg1 0mv, ...) + +/** + * Pan Scan area. + * This specifies the area which should be displayed. + * Note there may be multiple such areas for one frame. + */ +typedef struct AVPanScan{ + /** + * id + * - encoding: Set by user. + * - decoding: Set by libavcodec. + */ + int id; + + /** + * width and height in 1/16 pel + * - encoding: Set by user. + * - decoding: Set by libavcodec. + */ + int width; + int height; + + /** + * position of the top left corner in 1/16 pel for up to 3 fields/frames + * - encoding: Set by user. + * - decoding: Set by libavcodec. + */ + int16_t position[3][2]; +}AVPanScan; + +#define FF_QSCALE_TYPE_MPEG1 0 +#define FF_QSCALE_TYPE_MPEG2 1 +#define FF_QSCALE_TYPE_H264 2 +#define FF_QSCALE_TYPE_VP56 3 + +#define FF_BUFFER_TYPE_INTERNAL 1 +#define FF_BUFFER_TYPE_USER 2 ///< direct rendering buffers (image is (de)allocated by user) +#define FF_BUFFER_TYPE_SHARED 4 ///< Buffer from somewhere else; don't deallocate image (data/base), all other tables are not shared. +#define FF_BUFFER_TYPE_COPY 8 ///< Just a (modified) copy of some other buffer, don't deallocate anything. + +#if FF_API_OLD_FF_PICT_TYPES +/* DEPRECATED, directly use the AV_PICTURE_TYPE_* enum values */ +#define FF_I_TYPE AV_PICTURE_TYPE_I ///< Intra +#define FF_P_TYPE AV_PICTURE_TYPE_P ///< Predicted +#define FF_B_TYPE AV_PICTURE_TYPE_B ///< Bi-dir predicted +#define FF_S_TYPE AV_PICTURE_TYPE_S ///< S(GMC)-VOP MPEG4 +#define FF_SI_TYPE AV_PICTURE_TYPE_SI ///< Switching Intra +#define FF_SP_TYPE AV_PICTURE_TYPE_SP ///< Switching Predicted +#define FF_BI_TYPE AV_PICTURE_TYPE_BI +#endif + +#define FF_BUFFER_HINTS_VALID 0x01 // Buffer hints value is meaningful (if 0 ignore). +#define FF_BUFFER_HINTS_READABLE 0x02 // Codec will read from buffer. +#define FF_BUFFER_HINTS_PRESERVE 0x04 // User must not alter buffer content. +#define FF_BUFFER_HINTS_REUSABLE 0x08 // Codec will reuse the buffer (update). + +enum AVPacketSideDataType { + AV_PKT_DATA_PALETTE, + AV_PKT_DATA_NEW_EXTRADATA, + AV_PKT_DATA_PARAM_CHANGE, +}; + +typedef struct AVPacket { + /** + * Presentation timestamp in AVStream->time_base units; the time at which + * the decompressed packet will be presented to the user. + * Can be AV_NOPTS_VALUE if it is not stored in the file. + * pts MUST be larger or equal to dts as presentation cannot happen before + * decompression, unless one wants to view hex dumps. Some formats misuse + * the terms dts and pts/cts to mean something different. Such timestamps + * must be converted to true pts/dts before they are stored in AVPacket. + */ + int64_t pts; + /** + * Decompression timestamp in AVStream->time_base units; the time at which + * the packet is decompressed. + * Can be AV_NOPTS_VALUE if it is not stored in the file. + */ + int64_t dts; + uint8_t *data; + int size; + int stream_index; + /** + * A combination of AV_PKT_FLAG values + */ + int flags; + /** + * Additional packet data that can be provided by the container. + * Packet can contain several types of side information. + */ + struct { + uint8_t *data; + int size; + enum AVPacketSideDataType type; + } *side_data; + int side_data_elems; + + /** + * Duration of this packet in AVStream->time_base units, 0 if unknown. + * Equals next_pts - this_pts in presentation order. + */ + int duration; + void (*destruct)(struct AVPacket *); + void *priv; + int64_t pos; ///< byte position in stream, -1 if unknown + + /** + * Time difference in AVStream->time_base units from the pts of this + * packet to the point at which the output from the decoder has converged + * independent from the availability of previous frames. That is, the + * frames are virtually identical no matter if decoding started from + * the very first frame or from this keyframe. + * Is AV_NOPTS_VALUE if unknown. + * This field is not the display duration of the current packet. + * This field has no meaning if the packet does not have AV_PKT_FLAG_KEY + * set. + * + * The purpose of this field is to allow seeking in streams that have no + * keyframes in the conventional sense. It corresponds to the + * recovery point SEI in H.264 and match_time_delta in NUT. It is also + * essential for some types of subtitle streams to ensure that all + * subtitles are correctly displayed after seeking. + */ + int64_t convergence_duration; +} AVPacket; +#define AV_PKT_FLAG_KEY 0x0001 ///< The packet contains a keyframe +#define AV_PKT_FLAG_CORRUPT 0x0002 ///< The packet content is corrupted + +/** + * An AV_PKT_DATA_PARAM_CHANGE side data packet is laid out as follows: + * u32le param_flags + * if (param_flags & AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_COUNT) + * s32le channel_count + * if (param_flags & AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_LAYOUT) + * u64le channel_layout + * if (param_flags & AV_SIDE_DATA_PARAM_CHANGE_SAMPLE_RATE) + * s32le sample_rate + * if (param_flags & AV_SIDE_DATA_PARAM_CHANGE_DIMENSIONS) + * s32le width + * s32le height + */ + +enum AVSideDataParamChangeFlags { + AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_COUNT = 0x0001, + AV_SIDE_DATA_PARAM_CHANGE_CHANNEL_LAYOUT = 0x0002, + AV_SIDE_DATA_PARAM_CHANGE_SAMPLE_RATE = 0x0004, + AV_SIDE_DATA_PARAM_CHANGE_DIMENSIONS = 0x0008, +}; + +/** + * Audio Video Frame. + * New fields can be added to the end of AVFRAME with minor version + * bumps. Similarly fields that are marked as to be only accessed by + * av_opt_ptr() can be reordered. This allows 2 forks to add fields + * without breaking compatibility with each other. + * Removal, reordering and changes in the remaining cases require + * a major version bump. + * sizeof(AVFrame) must not be used outside libavcodec. + */ +typedef struct AVFrame { +#if FF_API_DATA_POINTERS +#define AV_NUM_DATA_POINTERS 4 +#else +#define AV_NUM_DATA_POINTERS 8 +#endif + /** + * pointer to the picture/channel planes. + * This might be different from the first allocated byte + * - encoding: Set by user + * - decoding: set by AVCodecContext.get_buffer() + */ + uint8_t *data[AV_NUM_DATA_POINTERS]; + + /** + * Size, in bytes, of the data for each picture/channel plane. + * + * For audio, only linesize[0] may be set. For planar audio, each channel + * plane must be the same size. + * + * - encoding: Set by user (video only) + * - decoding: set by AVCodecContext.get_buffer() + */ + int linesize[AV_NUM_DATA_POINTERS]; + + /** + * pointer to the first allocated byte of the picture. Can be used in get_buffer/release_buffer. + * This isn't used by libavcodec unless the default get/release_buffer() is used. + * - encoding: + * - decoding: + */ + uint8_t *base[AV_NUM_DATA_POINTERS]; + /** + * 1 -> keyframe, 0-> not + * - encoding: Set by libavcodec. + * - decoding: Set by libavcodec. + */ + int key_frame; + + /** + * Picture type of the frame, see ?_TYPE below. + * - encoding: Set by libavcodec. for coded_picture (and set by user for input). + * - decoding: Set by libavcodec. + */ + enum AVPictureType pict_type; + + /** + * presentation timestamp in time_base units (time when frame should be shown to user) + * If AV_NOPTS_VALUE then frame_rate = 1/time_base will be assumed. + * - encoding: MUST be set by user. + * - decoding: Set by libavcodec. + */ + int64_t pts; + + /** + * picture number in bitstream order + * - encoding: set by + * - decoding: Set by libavcodec. + */ + int coded_picture_number; + /** + * picture number in display order + * - encoding: set by + * - decoding: Set by libavcodec. + */ + int display_picture_number; + + /** + * quality (between 1 (good) and FF_LAMBDA_MAX (bad)) + * - encoding: Set by libavcodec. for coded_picture (and set by user for input). + * - decoding: Set by libavcodec. + */ + int quality; + +#if FF_API_AVFRAME_AGE + /** + * @deprecated unused + */ + attribute_deprecated int age; +#endif + + /** + * is this picture used as reference + * The values for this are the same as the MpegEncContext.picture_structure + * variable, that is 1->top field, 2->bottom field, 3->frame/both fields. + * Set to 4 for delayed, non-reference frames. + * - encoding: unused + * - decoding: Set by libavcodec. (before get_buffer() call)). + */ + int reference; + + /** + * QP table + * - encoding: unused + * - decoding: Set by libavcodec. + */ + int8_t *qscale_table; + /** + * QP store stride + * - encoding: unused + * - decoding: Set by libavcodec. + */ + int qstride; + + /** + * mbskip_table[mb]>=1 if MB didn't change + * stride= mb_width = (width+15)>>4 + * - encoding: unused + * - decoding: Set by libavcodec. + */ + uint8_t *mbskip_table; + + /** + * motion vector table + * @code + * example: + * int mv_sample_log2= 4 - motion_subsample_log2; + * int mb_width= (width+15)>>4; + * int mv_stride= (mb_width << mv_sample_log2) + 1; + * motion_val[direction][x + y*mv_stride][0->mv_x, 1->mv_y]; + * @endcode + * - encoding: Set by user. + * - decoding: Set by libavcodec. + */ + int16_t (*motion_val[2])[2]; + + /** + * macroblock type table + * mb_type_base + mb_width + 2 + * - encoding: Set by user. + * - decoding: Set by libavcodec. + */ + uint32_t *mb_type; + + /** + * log2 of the size of the block which a single vector in motion_val represents: + * (4->16x16, 3->8x8, 2-> 4x4, 1-> 2x2) + * - encoding: unused + * - decoding: Set by libavcodec. + */ + uint8_t motion_subsample_log2; + + /** + * for some private data of the user + * - encoding: unused + * - decoding: Set by user. + */ + void *opaque; + + /** + * error + * - encoding: Set by libavcodec. if flags&CODEC_FLAG_PSNR. + * - decoding: unused + */ + uint64_t error[AV_NUM_DATA_POINTERS]; + + /** + * type of the buffer (to keep track of who has to deallocate data[*]) + * - encoding: Set by the one who allocates it. + * - decoding: Set by the one who allocates it. + * Note: User allocated (direct rendering) & internal buffers cannot coexist currently. + */ + int type; + + /** + * When decoding, this signals how much the picture must be delayed. + * extra_delay = repeat_pict / (2*fps) + * - encoding: unused + * - decoding: Set by libavcodec. + */ + int repeat_pict; + + /** + * + */ + int qscale_type; + + /** + * The content of the picture is interlaced. + * - encoding: Set by user. + * - decoding: Set by libavcodec. (default 0) + */ + int interlaced_frame; + + /** + * If the content is interlaced, is top field displayed first. + * - encoding: Set by user. + * - decoding: Set by libavcodec. + */ + int top_field_first; + + /** + * Pan scan. + * - encoding: Set by user. + * - decoding: Set by libavcodec. + */ + AVPanScan *pan_scan; + + /** + * Tell user application that palette has changed from previous frame. + * - encoding: ??? (no palette-enabled encoder yet) + * - decoding: Set by libavcodec. (default 0). + */ + int palette_has_changed; + + /** + * codec suggestion on buffer type if != 0 + * - encoding: unused + * - decoding: Set by libavcodec. (before get_buffer() call)). + */ + int buffer_hints; + + /** + * DCT coefficients + * - encoding: unused + * - decoding: Set by libavcodec. + */ + short *dct_coeff; + + /** + * motion reference frame index + * the order in which these are stored can depend on the codec. + * - encoding: Set by user. + * - decoding: Set by libavcodec. + */ + int8_t *ref_index[2]; + + /** + * reordered opaque 64bit (generally an integer or a double precision float + * PTS but can be anything). + * The user sets AVCodecContext.reordered_opaque to represent the input at + * that time, + * the decoder reorders values as needed and sets AVFrame.reordered_opaque + * to exactly one of the values provided by the user through AVCodecContext.reordered_opaque + * @deprecated in favor of pkt_pts + * - encoding: unused + * - decoding: Read by user. + */ + int64_t reordered_opaque; + + /** + * hardware accelerator private data (FFmpeg-allocated) + * - encoding: unused + * - decoding: Set by libavcodec + */ + void *hwaccel_picture_private; + + /** + * reordered pts from the last AVPacket that has been input into the decoder + * - encoding: unused + * - decoding: Read by user. + */ + int64_t pkt_pts; + + /** + * dts from the last AVPacket that has been input into the decoder + * - encoding: unused + * - decoding: Read by user. + */ + int64_t pkt_dts; + + /** + * the AVCodecContext which ff_thread_get_buffer() was last called on + * - encoding: Set by libavcodec. + * - decoding: Set by libavcodec. + */ + struct AVCodecContext *owner; + + /** + * used by multithreading to store frame-specific info + * - encoding: Set by libavcodec. + * - decoding: Set by libavcodec. + */ + void *thread_opaque; + + /** + * number of audio samples (per channel) described by this frame + * - encoding: unused + * - decoding: Set by libavcodec + */ + int nb_samples; + + /** + * pointers to the data planes/channels. + * + * For video, this should simply point to data[]. + * + * For planar audio, each channel has a separate data pointer, and + * linesize[0] contains the size of each channel buffer. + * For packed audio, there is just one data pointer, and linesize[0] + * contains the total size of the buffer for all channels. + * + * Note: Both data and extended_data will always be set by get_buffer(), + * but for planar audio with more channels that can fit in data, + * extended_data must be used by the decoder in order to access all + * channels. + * + * encoding: unused + * decoding: set by AVCodecContext.get_buffer() + */ + uint8_t **extended_data; + + /** + * sample aspect ratio for the video frame, 0/1 if unknown\unspecified + * - encoding: unused + * - decoding: Read by user. + */ + AVRational sample_aspect_ratio; + + /** + * width and height of the video frame + * - encoding: unused + * - decoding: Read by user. + */ + int width, height; + + /** + * format of the frame, -1 if unknown or unset + * Values correspond to enum PixelFormat for video frames, + * enum AVSampleFormat for audio) + * - encoding: unused + * - decoding: Read by user. + */ + int format; + + /** + * frame timestamp estimated using various heuristics, in stream time base + * Code outside libavcodec should access this field using: + * av_opt_ptr(avcodec_get_frame_class(), frame, "best_effort_timestamp"); + * - encoding: unused + * - decoding: set by libavcodec, read by user. + */ + int64_t best_effort_timestamp; + + /** + * reordered pos from the last AVPacket that has been input into the decoder + * Code outside libavcodec should access this field using: + * av_opt_ptr(avcodec_get_frame_class(), frame, "pkt_pos"); + * - encoding: unused + * - decoding: Read by user. + */ + int64_t pkt_pos; + +} AVFrame; + +struct AVCodecInternal; + +enum AVFieldOrder { + AV_FIELD_UNKNOWN, + AV_FIELD_PROGRESSIVE, + AV_FIELD_TT, //< Top coded_first, top displayed first + AV_FIELD_BB, //< Bottom coded first, bottom displayed first + AV_FIELD_TB, //< Top coded first, bottom displayed first + AV_FIELD_BT, //< Bottom coded first, top displayed first +}; + +/** + * main external API structure. + * New fields can be added to the end with minor version bumps. + * Removal, reordering and changes to existing fields require a major + * version bump. + * Please use AVOptions (av_opt* / av_set/get*()) to access these fields from user + * applications. + * sizeof(AVCodecContext) must not be used outside libav*. + */ +typedef struct AVCodecContext { + /** + * information on struct for av_log + * - set by avcodec_alloc_context3 + */ + const AVClass *av_class; + /** + * the average bitrate + * - encoding: Set by user; unused for constant quantizer encoding. + * - decoding: Set by libavcodec. 0 or some bitrate if this info is available in the stream. + */ + int bit_rate; + + /** + * number of bits the bitstream is allowed to diverge from the reference. + * the reference can be CBR (for CBR pass1) or VBR (for pass2) + * - encoding: Set by user; unused for constant quantizer encoding. + * - decoding: unused + */ + int bit_rate_tolerance; + + /** + * CODEC_FLAG_*. + * - encoding: Set by user. + * - decoding: Set by user. + */ + int flags; + + /** + * Some codecs need additional format info. It is stored here. + * If any muxer uses this then ALL demuxers/parsers AND encoders for the + * specific codec MUST set it correctly otherwise stream copy breaks. + * In general use of this field by muxers is not recommended. + * - encoding: Set by libavcodec. + * - decoding: Set by libavcodec. (FIXME: Is this OK?) + */ + int sub_id; + + /** + * Motion estimation algorithm used for video coding. + * 1 (zero), 2 (full), 3 (log), 4 (phods), 5 (epzs), 6 (x1), 7 (hex), + * 8 (umh), 9 (iter), 10 (tesa) [7, 8, 10 are x264 specific, 9 is snow specific] + * - encoding: MUST be set by user. + * - decoding: unused + */ + int me_method; + + /** + * some codecs need / can use extradata like Huffman tables. + * mjpeg: Huffman tables + * rv10: additional flags + * mpeg4: global headers (they can be in the bitstream or here) + * The allocated memory should be FF_INPUT_BUFFER_PADDING_SIZE bytes larger + * than extradata_size to avoid prolems if it is read with the bitstream reader. + * The bytewise contents of extradata must not depend on the architecture or CPU endianness. + * - encoding: Set/allocated/freed by libavcodec. + * - decoding: Set/allocated/freed by user. + */ + uint8_t *extradata; + int extradata_size; + + /** + * This is the fundamental unit of time (in seconds) in terms + * of which frame timestamps are represented. For fixed-fps content, + * timebase should be 1/framerate and timestamp increments should be + * identically 1. + * - encoding: MUST be set by user. + * - decoding: Set by libavcodec. + */ + AVRational time_base; + + /* video only */ + /** + * picture width / height. + * - encoding: MUST be set by user. + * - decoding: Set by libavcodec. + * Note: For compatibility it is possible to set this instead of + * coded_width/height before decoding. + */ + int width, height; + +#define FF_ASPECT_EXTENDED 15 + + /** + * the number of pictures in a group of pictures, or 0 for intra_only + * - encoding: Set by user. + * - decoding: unused + */ + int gop_size; + + /** + * Pixel format, see PIX_FMT_xxx. + * May be set by the demuxer if known from headers. + * May be overriden by the decoder if it knows better. + * - encoding: Set by user. + * - decoding: Set by user if known, overridden by libavcodec if known + */ + enum PixelFormat pix_fmt; + + /** + * If non NULL, 'draw_horiz_band' is called by the libavcodec + * decoder to draw a horizontal band. It improves cache usage. Not + * all codecs can do that. You must check the codec capabilities + * beforehand. + * When multithreading is used, it may be called from multiple threads + * at the same time; threads might draw different parts of the same AVFrame, + * or multiple AVFrames, and there is no guarantee that slices will be drawn + * in order. + * The function is also used by hardware acceleration APIs. + * It is called at least once during frame decoding to pass + * the data needed for hardware render. + * In that mode instead of pixel data, AVFrame points to + * a structure specific to the acceleration API. The application + * reads the structure and can change some fields to indicate progress + * or mark state. + * - encoding: unused + * - decoding: Set by user. + * @param height the height of the slice + * @param y the y position of the slice + * @param type 1->top field, 2->bottom field, 3->frame + * @param offset offset into the AVFrame.data from which the slice should be read + */ + void (*draw_horiz_band)(struct AVCodecContext *s, + const AVFrame *src, int offset[AV_NUM_DATA_POINTERS], + int y, int type, int height); + + /* audio only */ + int sample_rate; ///< samples per second + int channels; ///< number of audio channels + + /** + * audio sample format + * - encoding: Set by user. + * - decoding: Set by libavcodec. + */ + enum AVSampleFormat sample_fmt; ///< sample format + + /* The following data should not be initialized. */ + /** + * Samples per packet, initialized when calling 'init'. + */ + int frame_size; + int frame_number; ///< audio or video frame number + + /** + * Encoding: Number of frames delay there will be from the encoder input to + * the decoder output. (we assume the decoder matches the spec) + * Decoding: Number of frames delay in addition to what a standard decoder + * as specified in the spec would produce. + * - encoding: Set by libavcodec. + * - decoding: Set by libavcodec. + */ + int delay; + + /* - encoding parameters */ + float qcompress; ///< amount of qscale change between easy & hard scenes (0.0-1.0) + float qblur; ///< amount of qscale smoothing over time (0.0-1.0) + + /** + * minimum quantizer + * - encoding: Set by user. + * - decoding: unused + */ + int qmin; + + /** + * maximum quantizer + * - encoding: Set by user. + * - decoding: unused + */ + int qmax; + + /** + * maximum quantizer difference between frames + * - encoding: Set by user. + * - decoding: unused + */ + int max_qdiff; + + /** + * maximum number of B-frames between non-B-frames + * Note: The output will be delayed by max_b_frames+1 relative to the input. + * - encoding: Set by user. + * - decoding: unused + */ + int max_b_frames; + + /** + * qscale factor between IP and B-frames + * If > 0 then the last P-frame quantizer will be used (q= lastp_q*factor+offset). + * If < 0 then normal ratecontrol will be done (q= -normal_q*factor+offset). + * - encoding: Set by user. + * - decoding: unused + */ + float b_quant_factor; + + /** obsolete FIXME remove */ + int rc_strategy; +#define FF_RC_STRATEGY_XVID 1 + + int b_frame_strategy; + + struct AVCodec *codec; + + void *priv_data; + + int rtp_payload_size; /* The size of the RTP payload: the coder will */ + /* do its best to deliver a chunk with size */ + /* below rtp_payload_size, the chunk will start */ + /* with a start code on some codecs like H.263. */ + /* This doesn't take account of any particular */ + /* headers inside the transmitted RTP payload. */ + + + /* The RTP callback: This function is called */ + /* every time the encoder has a packet to send. */ + /* It depends on the encoder if the data starts */ + /* with a Start Code (it should). H.263 does. */ + /* mb_nb contains the number of macroblocks */ + /* encoded in the RTP payload. */ + void (*rtp_callback)(struct AVCodecContext *avctx, void *data, int size, int mb_nb); + + /* statistics, used for 2-pass encoding */ + int mv_bits; + int header_bits; + int i_tex_bits; + int p_tex_bits; + int i_count; + int p_count; + int skip_count; + int misc_bits; + + /** + * number of bits used for the previously encoded frame + * - encoding: Set by libavcodec. + * - decoding: unused + */ + int frame_bits; + + /** + * Private data of the user, can be used to carry app specific stuff. + * - encoding: Set by user. + * - decoding: Set by user. + */ + void *opaque; + + char codec_name[32]; + enum AVMediaType codec_type; /* see AVMEDIA_TYPE_xxx */ + enum CodecID codec_id; /* see CODEC_ID_xxx */ + + /** + * fourcc (LSB first, so "ABCD" -> ('D'<<24) + ('C'<<16) + ('B'<<8) + 'A'). + * This is used to work around some encoder bugs. + * A demuxer should set this to what is stored in the field used to identify the codec. + * If there are multiple such fields in a container then the demuxer should choose the one + * which maximizes the information about the used codec. + * If the codec tag field in a container is larger than 32 bits then the demuxer should + * remap the longer ID to 32 bits with a table or other structure. Alternatively a new + * extra_codec_tag + size could be added but for this a clear advantage must be demonstrated + * first. + * - encoding: Set by user, if not then the default based on codec_id will be used. + * - decoding: Set by user, will be converted to uppercase by libavcodec during init. + */ + unsigned int codec_tag; + + /** + * Work around bugs in encoders which sometimes cannot be detected automatically. + * - encoding: Set by user + * - decoding: Set by user + */ + int workaround_bugs; +#define FF_BUG_AUTODETECT 1 ///< autodetection +#define FF_BUG_OLD_MSMPEG4 2 +#define FF_BUG_XVID_ILACE 4 +#define FF_BUG_UMP4 8 +#define FF_BUG_NO_PADDING 16 +#define FF_BUG_AMV 32 +#define FF_BUG_AC_VLC 0 ///< Will be removed, libavcodec can now handle these non-compliant files by default. +#define FF_BUG_QPEL_CHROMA 64 +#define FF_BUG_STD_QPEL 128 +#define FF_BUG_QPEL_CHROMA2 256 +#define FF_BUG_DIRECT_BLOCKSIZE 512 +#define FF_BUG_EDGE 1024 +#define FF_BUG_HPEL_CHROMA 2048 +#define FF_BUG_DC_CLIP 4096 +#define FF_BUG_MS 8192 ///< Work around various bugs in Microsoft's broken decoders. +#define FF_BUG_TRUNCATED 16384 +//#define FF_BUG_FAKE_SCALABILITY 16 //Autodetection should work 100%. + + /** + * luma single coefficient elimination threshold + * - encoding: Set by user. + * - decoding: unused + */ + int luma_elim_threshold; + + /** + * chroma single coeff elimination threshold + * - encoding: Set by user. + * - decoding: unused + */ + int chroma_elim_threshold; + + /** + * strictly follow the standard (MPEG4, ...). + * - encoding: Set by user. + * - decoding: Set by user. + * Setting this to STRICT or higher means the encoder and decoder will + * generally do stupid things, whereas setting it to unofficial or lower + * will mean the encoder might produce output that is not supported by all + * spec-compliant decoders. Decoders don't differentiate between normal, + * unofficial and experimental (that is, they always try to decode things + * when they can) unless they are explicitly asked to behave stupidly + * (=strictly conform to the specs) + */ + int strict_std_compliance; +#define FF_COMPLIANCE_VERY_STRICT 2 ///< Strictly conform to an older more strict version of the spec or reference software. +#define FF_COMPLIANCE_STRICT 1 ///< Strictly conform to all the things in the spec no matter what consequences. +#define FF_COMPLIANCE_NORMAL 0 +#define FF_COMPLIANCE_UNOFFICIAL -1 ///< Allow unofficial extensions +#define FF_COMPLIANCE_EXPERIMENTAL -2 ///< Allow nonstandardized experimental things. + + /** + * qscale offset between IP and B-frames + * - encoding: Set by user. + * - decoding: unused + */ + float b_quant_offset; + +#if FF_API_ER + /** + * Error recognition; higher values will detect more errors but may + * misdetect some more or less valid parts as errors. + * - encoding: unused + * - decoding: Set by user. + */ + attribute_deprecated int error_recognition; +#define FF_ER_CAREFUL 1 +#define FF_ER_COMPLIANT 2 +#define FF_ER_AGGRESSIVE 3 +#define FF_ER_VERY_AGGRESSIVE 4 +#define FF_ER_EXPLODE 5 +#endif /* FF_API_ER */ + + /** + * Called at the beginning of each frame to get a buffer for it. + * + * The function will set AVFrame.data[], AVFrame.linesize[]. + * AVFrame.extended_data[] must also be set, but it should be the same as + * AVFrame.data[] except for planar audio with more channels than can fit + * in AVFrame.data[]. In that case, AVFrame.data[] shall still contain as + * many data pointers as it can hold. + * + * if CODEC_CAP_DR1 is not set then get_buffer() must call + * avcodec_default_get_buffer() instead of providing buffers allocated by + * some other means. + * + * AVFrame.data[] should be 32- or 16-byte-aligned unless the CPU doesn't + * need it. avcodec_default_get_buffer() aligns the output buffer properly, + * but if get_buffer() is overridden then alignment considerations should + * be taken into account. + * + * @see avcodec_default_get_buffer() + * + * Video: + * + * If pic.reference is set then the frame will be read later by libavcodec. + * avcodec_align_dimensions2() should be used to find the required width and + * height, as they normally need to be rounded up to the next multiple of 16. + * + * If frame multithreading is used and thread_safe_callbacks is set, + * it may be called from a different thread, but not from more than one at + * once. Does not need to be reentrant. + * + * @see release_buffer(), reget_buffer() + * @see avcodec_align_dimensions2() + * + * Audio: + * + * Decoders request a buffer of a particular size by setting + * AVFrame.nb_samples prior to calling get_buffer(). The decoder may, + * however, utilize only part of the buffer by setting AVFrame.nb_samples + * to a smaller value in the output frame. + * + * Decoders cannot use the buffer after returning from + * avcodec_decode_audio4(), so they will not call release_buffer(), as it + * is assumed to be released immediately upon return. + * + * As a convenience, av_samples_get_buffer_size() and + * av_samples_fill_arrays() in libavutil may be used by custom get_buffer() + * functions to find the required data size and to fill data pointers and + * linesize. In AVFrame.linesize, only linesize[0] may be set for audio + * since all planes must be the same size. + * + * @see av_samples_get_buffer_size(), av_samples_fill_arrays() + * + * - encoding: unused + * - decoding: Set by libavcodec, user can override. + */ + int (*get_buffer)(struct AVCodecContext *c, AVFrame *pic); + + /** + * Called to release buffers which were allocated with get_buffer. + * A released buffer can be reused in get_buffer(). + * pic.data[*] must be set to NULL. + * May be called from a different thread if frame multithreading is used, + * but not by more than one thread at once, so does not need to be reentrant. + * - encoding: unused + * - decoding: Set by libavcodec, user can override. + */ + void (*release_buffer)(struct AVCodecContext *c, AVFrame *pic); + + /** + * Size of the frame reordering buffer in the decoder. + * For MPEG-2 it is 1 IPB or 0 low delay IP. + * - encoding: Set by libavcodec. + * - decoding: Set by libavcodec. + */ + int has_b_frames; + + /** + * number of bytes per packet if constant and known or 0 + * Used by some WAV based audio codecs. + */ + int block_align; + +#if FF_API_PARSE_FRAME + /** + * If true, only parsing is done. The frame data is returned. + * Only MPEG audio decoders support this now. + * - encoding: unused + * - decoding: Set by user + */ + attribute_deprecated int parse_only; +#endif + + /** + * 0-> h263 quant 1-> mpeg quant + * - encoding: Set by user. + * - decoding: unused + */ + int mpeg_quant; + + /** + * pass1 encoding statistics output buffer + * - encoding: Set by libavcodec. + * - decoding: unused + */ + char *stats_out; + + /** + * pass2 encoding statistics input buffer + * Concatenated stuff from stats_out of pass1 should be placed here. + * - encoding: Allocated/set/freed by user. + * - decoding: unused + */ + char *stats_in; + + /** + * ratecontrol qmin qmax limiting method + * 0-> clipping, 1-> use a nice continous function to limit qscale wthin qmin/qmax. + * - encoding: Set by user. + * - decoding: unused + */ + float rc_qsquish; + + float rc_qmod_amp; + int rc_qmod_freq; + + /** + * ratecontrol override, see RcOverride + * - encoding: Allocated/set/freed by user. + * - decoding: unused + */ + RcOverride *rc_override; + int rc_override_count; + + /** + * rate control equation + * - encoding: Set by user + * - decoding: unused + */ + const char *rc_eq; + + /** + * maximum bitrate + * - encoding: Set by user. + * - decoding: unused + */ + int rc_max_rate; + + /** + * minimum bitrate + * - encoding: Set by user. + * - decoding: unused + */ + int rc_min_rate; + + /** + * decoder bitstream buffer size + * - encoding: Set by user. + * - decoding: unused + */ + int rc_buffer_size; + float rc_buffer_aggressivity; + + /** + * qscale factor between P and I-frames + * If > 0 then the last p frame quantizer will be used (q= lastp_q*factor+offset). + * If < 0 then normal ratecontrol will be done (q= -normal_q*factor+offset). + * - encoding: Set by user. + * - decoding: unused + */ + float i_quant_factor; + + /** + * qscale offset between P and I-frames + * - encoding: Set by user. + * - decoding: unused + */ + float i_quant_offset; + + /** + * initial complexity for pass1 ratecontrol + * - encoding: Set by user. + * - decoding: unused + */ + float rc_initial_cplx; + + /** + * DCT algorithm, see FF_DCT_* below + * - encoding: Set by user. + * - decoding: unused + */ + int dct_algo; +#define FF_DCT_AUTO 0 +#define FF_DCT_FASTINT 1 +#define FF_DCT_INT 2 +#define FF_DCT_MMX 3 +#define FF_DCT_MLIB 4 +#define FF_DCT_ALTIVEC 5 +#define FF_DCT_FAAN 6 + + /** + * luminance masking (0-> disabled) + * - encoding: Set by user. + * - decoding: unused + */ + float lumi_masking; + + /** + * temporary complexity masking (0-> disabled) + * - encoding: Set by user. + * - decoding: unused + */ + float temporal_cplx_masking; + + /** + * spatial complexity masking (0-> disabled) + * - encoding: Set by user. + * - decoding: unused + */ + float spatial_cplx_masking; + + /** + * p block masking (0-> disabled) + * - encoding: Set by user. + * - decoding: unused + */ + float p_masking; + + /** + * darkness masking (0-> disabled) + * - encoding: Set by user. + * - decoding: unused + */ + float dark_masking; + + /** + * IDCT algorithm, see FF_IDCT_* below. + * - encoding: Set by user. + * - decoding: Set by user. + */ + int idct_algo; +#define FF_IDCT_AUTO 0 +#define FF_IDCT_INT 1 +#define FF_IDCT_SIMPLE 2 +#define FF_IDCT_SIMPLEMMX 3 +#define FF_IDCT_LIBMPEG2MMX 4 +#define FF_IDCT_PS2 5 +#define FF_IDCT_MLIB 6 +#define FF_IDCT_ARM 7 +#define FF_IDCT_ALTIVEC 8 +#define FF_IDCT_SH4 9 +#define FF_IDCT_SIMPLEARM 10 +#define FF_IDCT_H264 11 +#define FF_IDCT_VP3 12 +#define FF_IDCT_IPP 13 +#define FF_IDCT_XVIDMMX 14 +#define FF_IDCT_CAVS 15 +#define FF_IDCT_SIMPLEARMV5TE 16 +#define FF_IDCT_SIMPLEARMV6 17 +#define FF_IDCT_SIMPLEVIS 18 +#define FF_IDCT_WMV2 19 +#define FF_IDCT_FAAN 20 +#define FF_IDCT_EA 21 +#define FF_IDCT_SIMPLENEON 22 +#define FF_IDCT_SIMPLEALPHA 23 +#define FF_IDCT_BINK 24 + + /** + * slice count + * - encoding: Set by libavcodec. + * - decoding: Set by user (or 0). + */ + int slice_count; + /** + * slice offsets in the frame in bytes + * - encoding: Set/allocated by libavcodec. + * - decoding: Set/allocated by user (or NULL). + */ + int *slice_offset; + + /** + * error concealment flags + * - encoding: unused + * - decoding: Set by user. + */ + int error_concealment; +#define FF_EC_GUESS_MVS 1 +#define FF_EC_DEBLOCK 2 + + /** + * dsp_mask could be add used to disable unwanted CPU features + * CPU features (i.e. MMX, SSE. ...) + * + * With the FORCE flag you may instead enable given CPU features. + * (Dangerous: Usable in case of misdetection, improper usage however will + * result into program crash.) + */ + unsigned dsp_mask; + + /** + * bits per sample/pixel from the demuxer (needed for huffyuv). + * - encoding: Set by libavcodec. + * - decoding: Set by user. + */ + int bits_per_coded_sample; + + /** + * prediction method (needed for huffyuv) + * - encoding: Set by user. + * - decoding: unused + */ + int prediction_method; +#define FF_PRED_LEFT 0 +#define FF_PRED_PLANE 1 +#define FF_PRED_MEDIAN 2 + + /** + * sample aspect ratio (0 if unknown) + * That is the width of a pixel divided by the height of the pixel. + * Numerator and denominator must be relatively prime and smaller than 256 for some video standards. + * - encoding: Set by user. + * - decoding: Set by libavcodec. + */ + AVRational sample_aspect_ratio; + + /** + * the picture in the bitstream + * - encoding: Set by libavcodec. + * - decoding: Set by libavcodec. + */ + AVFrame *coded_frame; + + /** + * debug + * - encoding: Set by user. + * - decoding: Set by user. + */ + int debug; +#define FF_DEBUG_PICT_INFO 1 +#define FF_DEBUG_RC 2 +#define FF_DEBUG_BITSTREAM 4 +#define FF_DEBUG_MB_TYPE 8 +#define FF_DEBUG_QP 16 +#define FF_DEBUG_MV 32 +#define FF_DEBUG_DCT_COEFF 0x00000040 +#define FF_DEBUG_SKIP 0x00000080 +#define FF_DEBUG_STARTCODE 0x00000100 +#define FF_DEBUG_PTS 0x00000200 +#define FF_DEBUG_ER 0x00000400 +#define FF_DEBUG_MMCO 0x00000800 +#define FF_DEBUG_BUGS 0x00001000 +#define FF_DEBUG_VIS_QP 0x00002000 +#define FF_DEBUG_VIS_MB_TYPE 0x00004000 +#define FF_DEBUG_BUFFERS 0x00008000 +#define FF_DEBUG_THREADS 0x00010000 + + /** + * debug + * - encoding: Set by user. + * - decoding: Set by user. + */ + int debug_mv; +#define FF_DEBUG_VIS_MV_P_FOR 0x00000001 //visualize forward predicted MVs of P frames +#define FF_DEBUG_VIS_MV_B_FOR 0x00000002 //visualize forward predicted MVs of B frames +#define FF_DEBUG_VIS_MV_B_BACK 0x00000004 //visualize backward predicted MVs of B frames + + /** + * error + * - encoding: Set by libavcodec if flags&CODEC_FLAG_PSNR. + * - decoding: unused + */ + uint64_t error[AV_NUM_DATA_POINTERS]; + + /** + * motion estimation comparison function + * - encoding: Set by user. + * - decoding: unused + */ + int me_cmp; + /** + * subpixel motion estimation comparison function + * - encoding: Set by user. + * - decoding: unused + */ + int me_sub_cmp; + /** + * macroblock comparison function (not supported yet) + * - encoding: Set by user. + * - decoding: unused + */ + int mb_cmp; + /** + * interlaced DCT comparison function + * - encoding: Set by user. + * - decoding: unused + */ + int ildct_cmp; +#define FF_CMP_SAD 0 +#define FF_CMP_SSE 1 +#define FF_CMP_SATD 2 +#define FF_CMP_DCT 3 +#define FF_CMP_PSNR 4 +#define FF_CMP_BIT 5 +#define FF_CMP_RD 6 +#define FF_CMP_ZERO 7 +#define FF_CMP_VSAD 8 +#define FF_CMP_VSSE 9 +#define FF_CMP_NSSE 10 +#define FF_CMP_W53 11 +#define FF_CMP_W97 12 +#define FF_CMP_DCTMAX 13 +#define FF_CMP_DCT264 14 +#define FF_CMP_CHROMA 256 + + /** + * ME diamond size & shape + * - encoding: Set by user. + * - decoding: unused + */ + int dia_size; + + /** + * amount of previous MV predictors (2a+1 x 2a+1 square) + * - encoding: Set by user. + * - decoding: unused + */ + int last_predictor_count; + + /** + * prepass for motion estimation + * - encoding: Set by user. + * - decoding: unused + */ + int pre_me; + + /** + * motion estimation prepass comparison function + * - encoding: Set by user. + * - decoding: unused + */ + int me_pre_cmp; + + /** + * ME prepass diamond size & shape + * - encoding: Set by user. + * - decoding: unused + */ + int pre_dia_size; + + /** + * subpel ME quality + * - encoding: Set by user. + * - decoding: unused + */ + int me_subpel_quality; + + /** + * callback to negotiate the pixelFormat + * @param fmt is the list of formats which are supported by the codec, + * it is terminated by -1 as 0 is a valid format, the formats are ordered by quality. + * The first is always the native one. + * @return the chosen format + * - encoding: unused + * - decoding: Set by user, if not set the native format will be chosen. + */ + enum PixelFormat (*get_format)(struct AVCodecContext *s, const enum PixelFormat * fmt); + + /** + * DTG active format information (additional aspect ratio + * information only used in DVB MPEG-2 transport streams) + * 0 if not set. + * + * - encoding: unused + * - decoding: Set by decoder. + */ + int dtg_active_format; +#define FF_DTG_AFD_SAME 8 +#define FF_DTG_AFD_4_3 9 +#define FF_DTG_AFD_16_9 10 +#define FF_DTG_AFD_14_9 11 +#define FF_DTG_AFD_4_3_SP_14_9 13 +#define FF_DTG_AFD_16_9_SP_14_9 14 +#define FF_DTG_AFD_SP_4_3 15 + + /** + * maximum motion estimation search range in subpel units + * If 0 then no limit. + * + * - encoding: Set by user. + * - decoding: unused + */ + int me_range; + + /** + * intra quantizer bias + * - encoding: Set by user. + * - decoding: unused + */ + int intra_quant_bias; +#define FF_DEFAULT_QUANT_BIAS 999999 + + /** + * inter quantizer bias + * - encoding: Set by user. + * - decoding: unused + */ + int inter_quant_bias; + + /** + * color table ID + * - encoding: unused + * - decoding: Which clrtable should be used for 8bit RGB images. + * Tables have to be stored somewhere. FIXME + */ + int color_table_id; + +#if FF_API_INTERNAL_CONTEXT + /** + * internal_buffer count + * Don't touch, used by libavcodec default_get_buffer(). + * @deprecated this field was moved to an internal context + */ + attribute_deprecated int internal_buffer_count; + + /** + * internal_buffers + * Don't touch, used by libavcodec default_get_buffer(). + * @deprecated this field was moved to an internal context + */ + attribute_deprecated void *internal_buffer; +#endif + + /** + * Global quality for codecs which cannot change it per frame. + * This should be proportional to MPEG-1/2/4 qscale. + * - encoding: Set by user. + * - decoding: unused + */ + int global_quality; + +#define FF_CODER_TYPE_VLC 0 +#define FF_CODER_TYPE_AC 1 +#define FF_CODER_TYPE_RAW 2 +#define FF_CODER_TYPE_RLE 3 +#define FF_CODER_TYPE_DEFLATE 4 + /** + * coder type + * - encoding: Set by user. + * - decoding: unused + */ + int coder_type; + + /** + * context model + * - encoding: Set by user. + * - decoding: unused + */ + int context_model; +#if 0 + /** + * + * - encoding: unused + * - decoding: Set by user. + */ + uint8_t * (*realloc)(struct AVCodecContext *s, uint8_t *buf, int buf_size); +#endif + + /** + * slice flags + * - encoding: unused + * - decoding: Set by user. + */ + int slice_flags; +#define SLICE_FLAG_CODED_ORDER 0x0001 ///< draw_horiz_band() is called in coded order instead of display +#define SLICE_FLAG_ALLOW_FIELD 0x0002 ///< allow draw_horiz_band() with field slices (MPEG2 field pics) +#define SLICE_FLAG_ALLOW_PLANE 0x0004 ///< allow draw_horiz_band() with 1 component at a time (SVQ1) + + /** + * XVideo Motion Acceleration + * - encoding: forbidden + * - decoding: set by decoder + */ + int xvmc_acceleration; + + /** + * macroblock decision mode + * - encoding: Set by user. + * - decoding: unused + */ + int mb_decision; +#define FF_MB_DECISION_SIMPLE 0 ///< uses mb_cmp +#define FF_MB_DECISION_BITS 1 ///< chooses the one which needs the fewest bits +#define FF_MB_DECISION_RD 2 ///< rate distortion + + /** + * custom intra quantization matrix + * - encoding: Set by user, can be NULL. + * - decoding: Set by libavcodec. + */ + uint16_t *intra_matrix; + + /** + * custom inter quantization matrix + * - encoding: Set by user, can be NULL. + * - decoding: Set by libavcodec. + */ + uint16_t *inter_matrix; + + /** + * fourcc from the AVI stream header (LSB first, so "ABCD" -> ('D'<<24) + ('C'<<16) + ('B'<<8) + 'A'). + * This is used to work around some encoder bugs. + * - encoding: unused + * - decoding: Set by user, will be converted to uppercase by libavcodec during init. + */ + unsigned int stream_codec_tag; + + /** + * scene change detection threshold + * 0 is default, larger means fewer detected scene changes. + * - encoding: Set by user. + * - decoding: unused + */ + int scenechange_threshold; + + /** + * minimum Lagrange multipler + * - encoding: Set by user. + * - decoding: unused + */ + int lmin; + + /** + * maximum Lagrange multipler + * - encoding: Set by user. + * - decoding: unused + */ + int lmax; + +#if FF_API_PALETTE_CONTROL + /** + * palette control structure + * - encoding: ??? (no palette-enabled encoder yet) + * - decoding: Set by user. + */ + struct AVPaletteControl *palctrl; +#endif + + /** + * noise reduction strength + * - encoding: Set by user. + * - decoding: unused + */ + int noise_reduction; + + /** + * Called at the beginning of a frame to get cr buffer for it. + * Buffer type (size, hints) must be the same. libavcodec won't check it. + * libavcodec will pass previous buffer in pic, function should return + * same buffer or new buffer with old frame "painted" into it. + * If pic.data[0] == NULL must behave like get_buffer(). + * if CODEC_CAP_DR1 is not set then reget_buffer() must call + * avcodec_default_reget_buffer() instead of providing buffers allocated by + * some other means. + * - encoding: unused + * - decoding: Set by libavcodec, user can override. + */ + int (*reget_buffer)(struct AVCodecContext *c, AVFrame *pic); + + /** + * Number of bits which should be loaded into the rc buffer before decoding starts. + * - encoding: Set by user. + * - decoding: unused + */ + int rc_initial_buffer_occupancy; + + /** + * + * - encoding: Set by user. + * - decoding: unused + */ + int inter_threshold; + + /** + * CODEC_FLAG2_* + * - encoding: Set by user. + * - decoding: Set by user. + */ + int flags2; + + /** + * Simulates errors in the bitstream to test error concealment. + * - encoding: Set by user. + * - decoding: unused + */ + int error_rate; + +#if FF_API_ANTIALIAS_ALGO + /** + * MP3 antialias algorithm, see FF_AA_* below. + * - encoding: unused + * - decoding: Set by user. + */ + attribute_deprecated int antialias_algo; +#define FF_AA_AUTO 0 +#define FF_AA_FASTINT 1 //not implemented yet +#define FF_AA_INT 2 +#define FF_AA_FLOAT 3 +#endif + + /** + * quantizer noise shaping + * - encoding: Set by user. + * - decoding: unused + */ + int quantizer_noise_shaping; + + /** + * thread count + * is used to decide how many independent tasks should be passed to execute() + * - encoding: Set by user. + * - decoding: Set by user. + */ + int thread_count; + + /** + * The codec may call this to execute several independent things. + * It will return only after finishing all tasks. + * The user may replace this with some multithreaded implementation, + * the default implementation will execute the parts serially. + * @param count the number of things to execute + * - encoding: Set by libavcodec, user can override. + * - decoding: Set by libavcodec, user can override. + */ + int (*execute)(struct AVCodecContext *c, int (*func)(struct AVCodecContext *c2, void *arg), void *arg2, int *ret, int count, int size); + + /** + * thread opaque + * Can be used by execute() to store some per AVCodecContext stuff. + * - encoding: set by execute() + * - decoding: set by execute() + */ + void *thread_opaque; + + /** + * Motion estimation threshold below which no motion estimation is + * performed, but instead the user specified motion vectors are used. + * + * - encoding: Set by user. + * - decoding: unused + */ + int me_threshold; + + /** + * Macroblock threshold below which the user specified macroblock types will be used. + * - encoding: Set by user. + * - decoding: unused + */ + int mb_threshold; + + /** + * precision of the intra DC coefficient - 8 + * - encoding: Set by user. + * - decoding: unused + */ + int intra_dc_precision; + + /** + * noise vs. sse weight for the nsse comparsion function + * - encoding: Set by user. + * - decoding: unused + */ + int nsse_weight; + + /** + * Number of macroblock rows at the top which are skipped. + * - encoding: unused + * - decoding: Set by user. + */ + int skip_top; + + /** + * Number of macroblock rows at the bottom which are skipped. + * - encoding: unused + * - decoding: Set by user. + */ + int skip_bottom; + + /** + * profile + * - encoding: Set by user. + * - decoding: Set by libavcodec. + */ + int profile; +#define FF_PROFILE_UNKNOWN -99 +#define FF_PROFILE_RESERVED -100 + +#define FF_PROFILE_AAC_MAIN 0 +#define FF_PROFILE_AAC_LOW 1 +#define FF_PROFILE_AAC_SSR 2 +#define FF_PROFILE_AAC_LTP 3 + +#define FF_PROFILE_DTS 20 +#define FF_PROFILE_DTS_ES 30 +#define FF_PROFILE_DTS_96_24 40 +#define FF_PROFILE_DTS_HD_HRA 50 +#define FF_PROFILE_DTS_HD_MA 60 + +#define FF_PROFILE_MPEG2_422 0 +#define FF_PROFILE_MPEG2_HIGH 1 +#define FF_PROFILE_MPEG2_SS 2 +#define FF_PROFILE_MPEG2_SNR_SCALABLE 3 +#define FF_PROFILE_MPEG2_MAIN 4 +#define FF_PROFILE_MPEG2_SIMPLE 5 + +#define FF_PROFILE_H264_CONSTRAINED (1<<9) // 8+1; constraint_set1_flag +#define FF_PROFILE_H264_INTRA (1<<11) // 8+3; constraint_set3_flag + +#define FF_PROFILE_H264_BASELINE 66 +#define FF_PROFILE_H264_CONSTRAINED_BASELINE (66|FF_PROFILE_H264_CONSTRAINED) +#define FF_PROFILE_H264_MAIN 77 +#define FF_PROFILE_H264_EXTENDED 88 +#define FF_PROFILE_H264_HIGH 100 +#define FF_PROFILE_H264_HIGH_10 110 +#define FF_PROFILE_H264_HIGH_10_INTRA (110|FF_PROFILE_H264_INTRA) +#define FF_PROFILE_H264_HIGH_422 122 +#define FF_PROFILE_H264_HIGH_422_INTRA (122|FF_PROFILE_H264_INTRA) +#define FF_PROFILE_H264_HIGH_444 144 +#define FF_PROFILE_H264_HIGH_444_PREDICTIVE 244 +#define FF_PROFILE_H264_HIGH_444_INTRA (244|FF_PROFILE_H264_INTRA) +#define FF_PROFILE_H264_CAVLC_444 44 + +#define FF_PROFILE_VC1_SIMPLE 0 +#define FF_PROFILE_VC1_MAIN 1 +#define FF_PROFILE_VC1_COMPLEX 2 +#define FF_PROFILE_VC1_ADVANCED 3 + +#define FF_PROFILE_MPEG4_SIMPLE 0 +#define FF_PROFILE_MPEG4_SIMPLE_SCALABLE 1 +#define FF_PROFILE_MPEG4_CORE 2 +#define FF_PROFILE_MPEG4_MAIN 3 +#define FF_PROFILE_MPEG4_N_BIT 4 +#define FF_PROFILE_MPEG4_SCALABLE_TEXTURE 5 +#define FF_PROFILE_MPEG4_SIMPLE_FACE_ANIMATION 6 +#define FF_PROFILE_MPEG4_BASIC_ANIMATED_TEXTURE 7 +#define FF_PROFILE_MPEG4_HYBRID 8 +#define FF_PROFILE_MPEG4_ADVANCED_REAL_TIME 9 +#define FF_PROFILE_MPEG4_CORE_SCALABLE 10 +#define FF_PROFILE_MPEG4_ADVANCED_CODING 11 +#define FF_PROFILE_MPEG4_ADVANCED_CORE 12 +#define FF_PROFILE_MPEG4_ADVANCED_SCALABLE_TEXTURE 13 +#define FF_PROFILE_MPEG4_SIMPLE_STUDIO 14 +#define FF_PROFILE_MPEG4_ADVANCED_SIMPLE 15 + + /** + * level + * - encoding: Set by user. + * - decoding: Set by libavcodec. + */ + int level; +#define FF_LEVEL_UNKNOWN -99 + + /** + * low resolution decoding, 1-> 1/2 size, 2->1/4 size + * - encoding: unused + * - decoding: Set by user. + */ + int lowres; + + /** + * Bitstream width / height, may be different from width/height if lowres enabled. + * - encoding: unused + * - decoding: Set by user before init if known. Codec should override / dynamically change if needed. + */ + int coded_width, coded_height; + + /** + * frame skip threshold + * - encoding: Set by user. + * - decoding: unused + */ + int frame_skip_threshold; + + /** + * frame skip factor + * - encoding: Set by user. + * - decoding: unused + */ + int frame_skip_factor; + + /** + * frame skip exponent + * - encoding: Set by user. + * - decoding: unused + */ + int frame_skip_exp; + + /** + * frame skip comparison function + * - encoding: Set by user. + * - decoding: unused + */ + int frame_skip_cmp; + + /** + * Border processing masking, raises the quantizer for mbs on the borders + * of the picture. + * - encoding: Set by user. + * - decoding: unused + */ + float border_masking; + + /** + * minimum MB lagrange multipler + * - encoding: Set by user. + * - decoding: unused + */ + int mb_lmin; + + /** + * maximum MB lagrange multipler + * - encoding: Set by user. + * - decoding: unused + */ + int mb_lmax; + + /** + * + * - encoding: Set by user. + * - decoding: unused + */ + int me_penalty_compensation; + + /** + * + * - encoding: unused + * - decoding: Set by user. + */ + enum AVDiscard skip_loop_filter; + + /** + * + * - encoding: unused + * - decoding: Set by user. + */ + enum AVDiscard skip_idct; + + /** + * + * - encoding: unused + * - decoding: Set by user. + */ + enum AVDiscard skip_frame; + + /** + * + * - encoding: Set by user. + * - decoding: unused + */ + int bidir_refine; + + /** + * + * - encoding: Set by user. + * - decoding: unused + */ + int brd_scale; + +#if FF_API_X264_GLOBAL_OPTS + /** + * constant rate factor - quality-based VBR - values ~correspond to qps + * - encoding: Set by user. + * - decoding: unused + * @deprecated use 'crf' libx264 private option + */ + attribute_deprecated float crf; + + /** + * constant quantization parameter rate control method + * - encoding: Set by user. + * - decoding: unused + * @deprecated use 'cqp' libx264 private option + */ + attribute_deprecated int cqp; +#endif + + /** + * minimum GOP size + * - encoding: Set by user. + * - decoding: unused + */ + int keyint_min; + + /** + * number of reference frames + * - encoding: Set by user. + * - decoding: Set by lavc. + */ + int refs; + + /** + * chroma qp offset from luma + * - encoding: Set by user. + * - decoding: unused + */ + int chromaoffset; + +#if FF_API_X264_GLOBAL_OPTS + /** + * Influence how often B-frames are used. + * - encoding: Set by user. + * - decoding: unused + */ + attribute_deprecated int bframebias; +#endif + + /** + * trellis RD quantization + * - encoding: Set by user. + * - decoding: unused + */ + int trellis; + +#if FF_API_X264_GLOBAL_OPTS + /** + * Reduce fluctuations in qp (before curve compression). + * - encoding: Set by user. + * - decoding: unused + */ + attribute_deprecated float complexityblur; + + /** + * in-loop deblocking filter alphac0 parameter + * alpha is in the range -6...6 + * - encoding: Set by user. + * - decoding: unused + */ + attribute_deprecated int deblockalpha; + + /** + * in-loop deblocking filter beta parameter + * beta is in the range -6...6 + * - encoding: Set by user. + * - decoding: unused + */ + attribute_deprecated int deblockbeta; + + /** + * macroblock subpartition sizes to consider - p8x8, p4x4, b8x8, i8x8, i4x4 + * - encoding: Set by user. + * - decoding: unused + */ + attribute_deprecated int partitions; +#define X264_PART_I4X4 0x001 /* Analyze i4x4 */ +#define X264_PART_I8X8 0x002 /* Analyze i8x8 (requires 8x8 transform) */ +#define X264_PART_P8X8 0x010 /* Analyze p16x8, p8x16 and p8x8 */ +#define X264_PART_P4X4 0x020 /* Analyze p8x4, p4x8, p4x4 */ +#define X264_PART_B8X8 0x100 /* Analyze b16x8, b8x16 and b8x8 */ + + /** + * direct MV prediction mode - 0 (none), 1 (spatial), 2 (temporal), 3 (auto) + * - encoding: Set by user. + * - decoding: unused + */ + attribute_deprecated int directpred; +#endif + + /** + * Audio cutoff bandwidth (0 means "automatic") + * - encoding: Set by user. + * - decoding: unused + */ + int cutoff; + + /** + * Multiplied by qscale for each frame and added to scene_change_score. + * - encoding: Set by user. + * - decoding: unused + */ + int scenechange_factor; + + /** + * + * Note: Value depends upon the compare function used for fullpel ME. + * - encoding: Set by user. + * - decoding: unused + */ + int mv0_threshold; + + /** + * Adjust sensitivity of b_frame_strategy 1. + * - encoding: Set by user. + * - decoding: unused + */ + int b_sensitivity; + + /** + * - encoding: Set by user. + * - decoding: unused + */ + int compression_level; +#define FF_COMPRESSION_DEFAULT -1 + + /** + * - encoding: Set by user. + * - decoding: unused + */ + int min_prediction_order; + + /** + * - encoding: Set by user. + * - decoding: unused + */ + int max_prediction_order; + +#if FF_API_FLAC_GLOBAL_OPTS + /** + * @name FLAC options + * @deprecated Use FLAC encoder private options instead. + * @{ + */ + + /** + * LPC coefficient precision - used by FLAC encoder + * - encoding: Set by user. + * - decoding: unused + */ + attribute_deprecated int lpc_coeff_precision; + + /** + * search method for selecting prediction order + * - encoding: Set by user. + * - decoding: unused + */ + attribute_deprecated int prediction_order_method; + + /** + * - encoding: Set by user. + * - decoding: unused + */ + attribute_deprecated int min_partition_order; + + /** + * - encoding: Set by user. + * - decoding: unused + */ + attribute_deprecated int max_partition_order; + /** + * @} + */ +#endif + + /** + * GOP timecode frame start number + * - encoding: Set by user, in non drop frame format + * - decoding: Set by libavcodec (timecode in the 25 bits format, -1 if unset) + */ + int64_t timecode_frame_start; + +#if FF_API_REQUEST_CHANNELS + /** + * Decoder should decode to this many channels if it can (0 for default) + * - encoding: unused + * - decoding: Set by user. + * @deprecated Deprecated in favor of request_channel_layout. + */ + int request_channels; +#endif + +#if FF_API_DRC_SCALE + /** + * Percentage of dynamic range compression to be applied by the decoder. + * The default value is 1.0, corresponding to full compression. + * - encoding: unused + * - decoding: Set by user. + * @deprecated use AC3 decoder private option instead. + */ + attribute_deprecated float drc_scale; +#endif + + /** + * opaque 64bit number (generally a PTS) that will be reordered and + * output in AVFrame.reordered_opaque + * @deprecated in favor of pkt_pts + * - encoding: unused + * - decoding: Set by user. + */ + int64_t reordered_opaque; + + /** + * Bits per sample/pixel of internal libavcodec pixel/sample format. + * - encoding: set by user. + * - decoding: set by libavcodec. + */ + int bits_per_raw_sample; + + /** + * Audio channel layout. + * - encoding: set by user. + * - decoding: set by user, may be overwritten by libavcodec. + */ + uint64_t channel_layout; + + /** + * Request decoder to use this channel layout if it can (0 for default) + * - encoding: unused + * - decoding: Set by user. + */ + uint64_t request_channel_layout; + + /** + * Ratecontrol attempt to use, at maximum, of what can be used without an underflow. + * - encoding: Set by user. + * - decoding: unused. + */ + float rc_max_available_vbv_use; + + /** + * Ratecontrol attempt to use, at least, times the amount needed to prevent a vbv overflow. + * - encoding: Set by user. + * - decoding: unused. + */ + float rc_min_vbv_overflow_use; + + /** + * Hardware accelerator in use + * - encoding: unused. + * - decoding: Set by libavcodec + */ + struct AVHWAccel *hwaccel; + + /** + * For some codecs, the time base is closer to the field rate than the frame rate. + * Most notably, H.264 and MPEG-2 specify time_base as half of frame duration + * if no telecine is used ... + * + * Set to time_base ticks per frame. Default 1, e.g., H.264/MPEG-2 set it to 2. + */ + int ticks_per_frame; + + /** + * Hardware accelerator context. + * For some hardware accelerators, a global context needs to be + * provided by the user. In that case, this holds display-dependent + * data FFmpeg cannot instantiate itself. Please refer to the + * FFmpeg HW accelerator documentation to know how to fill this + * is. e.g. for VA API, this is a struct vaapi_context. + * - encoding: unused + * - decoding: Set by user + */ + void *hwaccel_context; + + /** + * Chromaticity coordinates of the source primaries. + * - encoding: Set by user + * - decoding: Set by libavcodec + */ + enum AVColorPrimaries color_primaries; + + /** + * Color Transfer Characteristic. + * - encoding: Set by user + * - decoding: Set by libavcodec + */ + enum AVColorTransferCharacteristic color_trc; + + /** + * YUV colorspace type. + * - encoding: Set by user + * - decoding: Set by libavcodec + */ + enum AVColorSpace colorspace; + + /** + * MPEG vs JPEG YUV range. + * - encoding: Set by user + * - decoding: Set by libavcodec + */ + enum AVColorRange color_range; + + /** + * This defines the location of chroma samples. + * - encoding: Set by user + * - decoding: Set by libavcodec + */ + enum AVChromaLocation chroma_sample_location; + + /** + * The codec may call this to execute several independent things. + * It will return only after finishing all tasks. + * The user may replace this with some multithreaded implementation, + * the default implementation will execute the parts serially. + * Also see avcodec_thread_init and e.g. the --enable-pthread configure option. + * @param c context passed also to func + * @param count the number of things to execute + * @param arg2 argument passed unchanged to func + * @param ret return values of executed functions, must have space for "count" values. May be NULL. + * @param func function that will be called count times, with jobnr from 0 to count-1. + * threadnr will be in the range 0 to c->thread_count-1 < MAX_THREADS and so that no + * two instances of func executing at the same time will have the same threadnr. + * @return always 0 currently, but code should handle a future improvement where when any call to func + * returns < 0 no further calls to func may be done and < 0 is returned. + * - encoding: Set by libavcodec, user can override. + * - decoding: Set by libavcodec, user can override. + */ + int (*execute2)(struct AVCodecContext *c, int (*func)(struct AVCodecContext *c2, void *arg, int jobnr, int threadnr), void *arg2, int *ret, int count); + +#if FF_API_X264_GLOBAL_OPTS + /** + * explicit P-frame weighted prediction analysis method + * 0: off + * 1: fast blind weighting (one reference duplicate with -1 offset) + * 2: smart weighting (full fade detection analysis) + * - encoding: Set by user. + * - decoding: unused + */ + attribute_deprecated int weighted_p_pred; + + /** + * AQ mode + * 0: Disabled + * 1: Variance AQ (complexity mask) + * 2: Auto-variance AQ (experimental) + * - encoding: Set by user + * - decoding: unused + */ + attribute_deprecated int aq_mode; + + /** + * AQ strength + * Reduces blocking and blurring in flat and textured areas. + * - encoding: Set by user + * - decoding: unused + */ + attribute_deprecated float aq_strength; + + /** + * PSY RD + * Strength of psychovisual optimization + * - encoding: Set by user + * - decoding: unused + */ + attribute_deprecated float psy_rd; + + /** + * PSY trellis + * Strength of psychovisual optimization + * - encoding: Set by user + * - decoding: unused + */ + attribute_deprecated float psy_trellis; + + /** + * RC lookahead + * Number of frames for frametype and ratecontrol lookahead + * - encoding: Set by user + * - decoding: unused + */ + attribute_deprecated int rc_lookahead; + + /** + * Constant rate factor maximum + * With CRF encoding mode and VBV restrictions enabled, prevents quality from being worse + * than crf_max, even if doing so would violate VBV restrictions. + * - encoding: Set by user. + * - decoding: unused + */ + attribute_deprecated float crf_max; +#endif + + int log_level_offset; + +#if FF_API_FLAC_GLOBAL_OPTS + /** + * Determine which LPC analysis algorithm to use. + * - encoding: Set by user + * - decoding: unused + */ + attribute_deprecated enum AVLPCType lpc_type; + + /** + * Number of passes to use for Cholesky factorization during LPC analysis + * - encoding: Set by user + * - decoding: unused + */ + attribute_deprecated int lpc_passes; +#endif + + /** + * Number of slices. + * Indicates number of picture subdivisions. Used for parallelized + * decoding. + * - encoding: Set by user + * - decoding: unused + */ + int slices; + + /** + * Header containing style information for text subtitles. + * For SUBTITLE_ASS subtitle type, it should contain the whole ASS + * [Script Info] and [V4+ Styles] section, plus the [Events] line and + * the Format line following. It shouldn't include any Dialogue line. + * - encoding: Set/allocated/freed by user (before avcodec_open2()) + * - decoding: Set/allocated/freed by libavcodec (by avcodec_open2()) + */ + uint8_t *subtitle_header; + int subtitle_header_size; + + /** + * Current packet as passed into the decoder, to avoid having + * to pass the packet into every function. Currently only valid + * inside lavc and get/release_buffer callbacks. + * - decoding: set by avcodec_decode_*, read by get_buffer() for setting pkt_pts + * - encoding: unused + */ + AVPacket *pkt; + +#if FF_API_INTERNAL_CONTEXT + /** + * Whether this is a copy of the context which had init() called on it. + * This is used by multithreading - shared tables and picture pointers + * should be freed from the original context only. + * - encoding: Set by libavcodec. + * - decoding: Set by libavcodec. + * + * @deprecated this field has been moved to an internal context + */ + attribute_deprecated int is_copy; +#endif + + /** + * Which multithreading methods to use. + * Use of FF_THREAD_FRAME will increase decoding delay by one frame per thread, + * so clients which cannot provide future frames should not use it. + * + * - encoding: Set by user, otherwise the default is used. + * - decoding: Set by user, otherwise the default is used. + */ + int thread_type; +#define FF_THREAD_FRAME 1 ///< Decode more than one frame at once +#define FF_THREAD_SLICE 2 ///< Decode more than one part of a single frame at once + + /** + * Which multithreading methods are in use by the codec. + * - encoding: Set by libavcodec. + * - decoding: Set by libavcodec. + */ + int active_thread_type; + + /** + * Set by the client if its custom get_buffer() callback can be called + * from another thread, which allows faster multithreaded decoding. + * draw_horiz_band() will be called from other threads regardless of this setting. + * Ignored if the default get_buffer() is used. + * - encoding: Set by user. + * - decoding: Set by user. + */ + int thread_safe_callbacks; + + /** + * VBV delay coded in the last frame (in periods of a 27 MHz clock). + * Used for compliant TS muxing. + * - encoding: Set by libavcodec. + * - decoding: unused. + */ + uint64_t vbv_delay; + + /** + * Type of service that the audio stream conveys. + * - encoding: Set by user. + * - decoding: Set by libavcodec. + */ + enum AVAudioServiceType audio_service_type; + + /** + * desired sample format + * - encoding: Not used. + * - decoding: Set by user. + * Decoder will decode to this format if it can. + */ + enum AVSampleFormat request_sample_fmt; + + /** + * Error recognition; may misdetect some more or less valid parts as errors. + * - encoding: unused + * - decoding: Set by user. + */ + int err_recognition; +#define AV_EF_CRCCHECK (1<<0) +#define AV_EF_BITSTREAM (1<<1) +#define AV_EF_BUFFER (1<<2) +#define AV_EF_EXPLODE (1<<3) + +#define AV_EF_CAREFUL (1<<16) +#define AV_EF_COMPLIANT (1<<17) +#define AV_EF_AGGRESSIVE (1<<18) + + /** + * Private context used for internal data. + * + * Unlike priv_data, this is not codec-specific. It is used in general + * libavcodec functions. + */ + struct AVCodecInternal *internal; + + /** Field order + * - encoding: set by libavcodec + * - decoding: Set by libavcodec + */ + enum AVFieldOrder field_order; + + /** + * Current statistics for PTS correction. + * - decoding: maintained and used by libavcodec, not intended to be used by user apps + * - encoding: unused + */ + int64_t pts_correction_num_faulty_pts; /// Number of incorrect PTS values so far + int64_t pts_correction_num_faulty_dts; /// Number of incorrect DTS values so far + int64_t pts_correction_last_pts; /// PTS of the last frame + int64_t pts_correction_last_dts; /// DTS of the last frame + +} AVCodecContext; + +/** + * AVProfile. + */ +typedef struct AVProfile { + int profile; + const char *name; ///< short name for the profile +} AVProfile; + +typedef struct AVCodecDefault AVCodecDefault; + +/** + * AVCodec. + */ +typedef struct AVCodec { + /** + * Name of the codec implementation. + * The name is globally unique among encoders and among decoders (but an + * encoder and a decoder can share the same name). + * This is the primary way to find a codec from the user perspective. + */ + const char *name; + enum AVMediaType type; + enum CodecID id; + int priv_data_size; + int (*init)(AVCodecContext *); + int (*encode)(AVCodecContext *, uint8_t *buf, int buf_size, void *data); + int (*close)(AVCodecContext *); + int (*decode)(AVCodecContext *, void *outdata, int *outdata_size, AVPacket *avpkt); + /** + * Codec capabilities. + * see CODEC_CAP_* + */ + int capabilities; + struct AVCodec *next; + /** + * Flush buffers. + * Will be called when seeking + */ + void (*flush)(AVCodecContext *); + const AVRational *supported_framerates; ///< array of supported framerates, or NULL if any, array is terminated by {0,0} + const enum PixelFormat *pix_fmts; ///< array of supported pixel formats, or NULL if unknown, array is terminated by -1 + /** + * Descriptive name for the codec, meant to be more human readable than name. + * You should use the NULL_IF_CONFIG_SMALL() macro to define it. + */ + const char *long_name; + const int *supported_samplerates; ///< array of supported audio samplerates, or NULL if unknown, array is terminated by 0 + const enum AVSampleFormat *sample_fmts; ///< array of supported sample formats, or NULL if unknown, array is terminated by -1 + const uint64_t *channel_layouts; ///< array of support channel layouts, or NULL if unknown. array is terminated by 0 + uint8_t max_lowres; ///< maximum value for lowres supported by the decoder + const AVClass *priv_class; ///< AVClass for the private context + const AVProfile *profiles; ///< array of recognized profiles, or NULL if unknown, array is terminated by {FF_PROFILE_UNKNOWN} + + /** + * @name Frame-level threading support functions + * @{ + */ + /** + * If defined, called on thread contexts when they are created. + * If the codec allocates writable tables in init(), re-allocate them here. + * priv_data will be set to a copy of the original. + */ + int (*init_thread_copy)(AVCodecContext *); + /** + * Copy necessary context variables from a previous thread context to the current one. + * If not defined, the next thread will start automatically; otherwise, the codec + * must call ff_thread_finish_setup(). + * + * dst and src will (rarely) point to the same context, in which case memcpy should be skipped. + */ + int (*update_thread_context)(AVCodecContext *dst, const AVCodecContext *src); + /** @} */ + + /** + * Private codec-specific defaults. + */ + const AVCodecDefault *defaults; + + /** + * Initialize codec static data, called from avcodec_register(). + */ + void (*init_static_data)(struct AVCodec *codec); + + /** + * Encode data to an AVPacket. + * + * @param avctx codec context + * @param avpkt output AVPacket (may contain a user-provided buffer) + * @param[in] frame AVFrame containing the raw data to be encoded + * @param[out] got_packet_ptr encoder sets to 0 or 1 to indicate that a + * non-empty packet was returned in avpkt. + * @return 0 on success, negative error code on failure + */ + int (*encode2)(AVCodecContext *avctx, AVPacket *avpkt, const AVFrame *frame, + int *got_packet_ptr); +} AVCodec; + +/** + * AVHWAccel. + */ +typedef struct AVHWAccel { + /** + * Name of the hardware accelerated codec. + * The name is globally unique among encoders and among decoders (but an + * encoder and a decoder can share the same name). + */ + const char *name; + + /** + * Type of codec implemented by the hardware accelerator. + * + * See AVMEDIA_TYPE_xxx + */ + enum AVMediaType type; + + /** + * Codec implemented by the hardware accelerator. + * + * See CODEC_ID_xxx + */ + enum CodecID id; + + /** + * Supported pixel format. + * + * Only hardware accelerated formats are supported here. + */ + enum PixelFormat pix_fmt; + + /** + * Hardware accelerated codec capabilities. + * see FF_HWACCEL_CODEC_CAP_* + */ + int capabilities; + + struct AVHWAccel *next; + + /** + * Called at the beginning of each frame or field picture. + * + * Meaningful frame information (codec specific) is guaranteed to + * be parsed at this point. This function is mandatory. + * + * Note that buf can be NULL along with buf_size set to 0. + * Otherwise, this means the whole frame is available at this point. + * + * @param avctx the codec context + * @param buf the frame data buffer base + * @param buf_size the size of the frame in bytes + * @return zero if successful, a negative value otherwise + */ + int (*start_frame)(AVCodecContext *avctx, const uint8_t *buf, uint32_t buf_size); + + /** + * Callback for each slice. + * + * Meaningful slice information (codec specific) is guaranteed to + * be parsed at this point. This function is mandatory. + * + * @param avctx the codec context + * @param buf the slice data buffer base + * @param buf_size the size of the slice in bytes + * @return zero if successful, a negative value otherwise + */ + int (*decode_slice)(AVCodecContext *avctx, const uint8_t *buf, uint32_t buf_size); + + /** + * Called at the end of each frame or field picture. + * + * The whole picture is parsed at this point and can now be sent + * to the hardware accelerator. This function is mandatory. + * + * @param avctx the codec context + * @return zero if successful, a negative value otherwise + */ + int (*end_frame)(AVCodecContext *avctx); + + /** + * Size of HW accelerator private data. + * + * Private data is allocated with av_mallocz() before + * AVCodecContext.get_buffer() and deallocated after + * AVCodecContext.release_buffer(). + */ + int priv_data_size; +} AVHWAccel; + +/** + * four components are given, that's all. + * the last component is alpha + */ +typedef struct AVPicture { + uint8_t *data[AV_NUM_DATA_POINTERS]; + int linesize[AV_NUM_DATA_POINTERS]; ///< number of bytes per line +} AVPicture; + +#define AVPALETTE_SIZE 1024 +#define AVPALETTE_COUNT 256 +#if FF_API_PALETTE_CONTROL +/** + * AVPaletteControl + * This structure defines a method for communicating palette changes + * between and demuxer and a decoder. + * + * @deprecated Use AVPacket to send palette changes instead. + * This is totally broken. + */ +typedef struct AVPaletteControl { + + /* Demuxer sets this to 1 to indicate the palette has changed; + * decoder resets to 0. */ + int palette_changed; + + /* 4-byte ARGB palette entries, stored in native byte order; note that + * the individual palette components should be on a 8-bit scale; if + * the palette data comes from an IBM VGA native format, the component + * data is probably 6 bits in size and needs to be scaled. */ + unsigned int palette[AVPALETTE_COUNT]; + +} AVPaletteControl attribute_deprecated; +#endif + +enum AVSubtitleType { + SUBTITLE_NONE, + + SUBTITLE_BITMAP, ///< A bitmap, pict will be set + + /** + * Plain text, the text field must be set by the decoder and is + * authoritative. ass and pict fields may contain approximations. + */ + SUBTITLE_TEXT, + + /** + * Formatted text, the ass field must be set by the decoder and is + * authoritative. pict and text fields may contain approximations. + */ + SUBTITLE_ASS, +}; + +typedef struct AVSubtitleRect { + int x; ///< top left corner of pict, undefined when pict is not set + int y; ///< top left corner of pict, undefined when pict is not set + int w; ///< width of pict, undefined when pict is not set + int h; ///< height of pict, undefined when pict is not set + int nb_colors; ///< number of colors in pict, undefined when pict is not set + + /** + * data+linesize for the bitmap of this subtitle. + * can be set for text/ass as well once they where rendered + */ + AVPicture pict; + enum AVSubtitleType type; + + char *text; ///< 0 terminated plain UTF-8 text + + /** + * 0 terminated ASS/SSA compatible event line. + * The pressentation of this is unaffected by the other values in this + * struct. + */ + char *ass; +} AVSubtitleRect; + +typedef struct AVSubtitle { + uint16_t format; /* 0 = graphics */ + uint32_t start_display_time; /* relative to packet pts, in ms */ + uint32_t end_display_time; /* relative to packet pts, in ms */ + unsigned num_rects; + AVSubtitleRect **rects; + int64_t pts; ///< Same as packet pts, in AV_TIME_BASE +} AVSubtitle; + +/* packet functions */ + +/** + * @deprecated use NULL instead + */ +attribute_deprecated void av_destruct_packet_nofree(AVPacket *pkt); + +/** + * Default packet destructor. + */ +void av_destruct_packet(AVPacket *pkt); + +/** + * Initialize optional fields of a packet with default values. + * + * @param pkt packet + */ +void av_init_packet(AVPacket *pkt); + +/** + * Allocate the payload of a packet and initialize its fields with + * default values. + * + * @param pkt packet + * @param size wanted payload size + * @return 0 if OK, AVERROR_xxx otherwise + */ +int av_new_packet(AVPacket *pkt, int size); + +/** + * Reduce packet size, correctly zeroing padding + * + * @param pkt packet + * @param size new size + */ +void av_shrink_packet(AVPacket *pkt, int size); + +/** + * Increase packet size, correctly zeroing padding + * + * @param pkt packet + * @param grow_by number of bytes by which to increase the size of the packet + */ +int av_grow_packet(AVPacket *pkt, int grow_by); + +/** + * @warning This is a hack - the packet memory allocation stuff is broken. The + * packet is allocated if it was not really allocated. + */ +int av_dup_packet(AVPacket *pkt); + +/** + * Free a packet. + * + * @param pkt packet to free + */ +void av_free_packet(AVPacket *pkt); + +/** + * Allocate new information of a packet. + * + * @param pkt packet + * @param type side information type + * @param size side information size + * @return pointer to fresh allocated data or NULL otherwise + */ +uint8_t* av_packet_new_side_data(AVPacket *pkt, enum AVPacketSideDataType type, + int size); + +/** + * Get side information from packet. + * + * @param pkt packet + * @param type desired side information type + * @param size pointer for side information size to store (optional) + * @return pointer to data if present or NULL otherwise + */ +uint8_t* av_packet_get_side_data(AVPacket *pkt, enum AVPacketSideDataType type, + int *size); + +int av_packet_merge_side_data(AVPacket *pkt); + +int av_packet_split_side_data(AVPacket *pkt); + + +/* resample.c */ + +struct ReSampleContext; +struct AVResampleContext; + +typedef struct ReSampleContext ReSampleContext; + +/** + * Initialize audio resampling context. + * + * @param output_channels number of output channels + * @param input_channels number of input channels + * @param output_rate output sample rate + * @param input_rate input sample rate + * @param sample_fmt_out requested output sample format + * @param sample_fmt_in input sample format + * @param filter_length length of each FIR filter in the filterbank relative to the cutoff frequency + * @param log2_phase_count log2 of the number of entries in the polyphase filterbank + * @param linear if 1 then the used FIR filter will be linearly interpolated + between the 2 closest, if 0 the closest will be used + * @param cutoff cutoff frequency, 1.0 corresponds to half the output sampling rate + * @return allocated ReSampleContext, NULL if error occurred + */ +ReSampleContext *av_audio_resample_init(int output_channels, int input_channels, + int output_rate, int input_rate, + enum AVSampleFormat sample_fmt_out, + enum AVSampleFormat sample_fmt_in, + int filter_length, int log2_phase_count, + int linear, double cutoff); + +int audio_resample(ReSampleContext *s, short *output, short *input, int nb_samples); + +/** + * Free resample context. + * + * @param s a non-NULL pointer to a resample context previously + * created with av_audio_resample_init() + */ +void audio_resample_close(ReSampleContext *s); + + +/** + * Initialize an audio resampler. + * Note, if either rate is not an integer then simply scale both rates up so they are. + * @param filter_length length of each FIR filter in the filterbank relative to the cutoff freq + * @param log2_phase_count log2 of the number of entries in the polyphase filterbank + * @param linear If 1 then the used FIR filter will be linearly interpolated + between the 2 closest, if 0 the closest will be used + * @param cutoff cutoff frequency, 1.0 corresponds to half the output sampling rate + */ +struct AVResampleContext *av_resample_init(int out_rate, int in_rate, int filter_length, int log2_phase_count, int linear, double cutoff); + +/** + * Resample an array of samples using a previously configured context. + * @param src an array of unconsumed samples + * @param consumed the number of samples of src which have been consumed are returned here + * @param src_size the number of unconsumed samples available + * @param dst_size the amount of space in samples available in dst + * @param update_ctx If this is 0 then the context will not be modified, that way several channels can be resampled with the same context. + * @return the number of samples written in dst or -1 if an error occurred + */ +int av_resample(struct AVResampleContext *c, short *dst, short *src, int *consumed, int src_size, int dst_size, int update_ctx); + + +/** + * Compensate samplerate/timestamp drift. The compensation is done by changing + * the resampler parameters, so no audible clicks or similar distortions occur + * @param compensation_distance distance in output samples over which the compensation should be performed + * @param sample_delta number of output samples which should be output less + * + * example: av_resample_compensate(c, 10, 500) + * here instead of 510 samples only 500 samples would be output + * + * note, due to rounding the actual compensation might be slightly different, + * especially if the compensation_distance is large and the in_rate used during init is small + */ +void av_resample_compensate(struct AVResampleContext *c, int sample_delta, int compensation_distance); +void av_resample_close(struct AVResampleContext *c); + +/** + * Allocate memory for a picture. Call avpicture_free() to free it. + * + * @see avpicture_fill() + * + * @param picture the picture to be filled in + * @param pix_fmt the format of the picture + * @param width the width of the picture + * @param height the height of the picture + * @return zero if successful, a negative value if not + */ +int avpicture_alloc(AVPicture *picture, enum PixelFormat pix_fmt, int width, int height); + +/** + * Free a picture previously allocated by avpicture_alloc(). + * The data buffer used by the AVPicture is freed, but the AVPicture structure + * itself is not. + * + * @param picture the AVPicture to be freed + */ +void avpicture_free(AVPicture *picture); + +/** + * Fill in the AVPicture fields. + * The fields of the given AVPicture are filled in by using the 'ptr' address + * which points to the image data buffer. Depending on the specified picture + * format, one or multiple image data pointers and line sizes will be set. + * If a planar format is specified, several pointers will be set pointing to + * the different picture planes and the line sizes of the different planes + * will be stored in the lines_sizes array. + * Call with ptr == NULL to get the required size for the ptr buffer. + * + * To allocate the buffer and fill in the AVPicture fields in one call, + * use avpicture_alloc(). + * + * @param picture AVPicture whose fields are to be filled in + * @param ptr Buffer which will contain or contains the actual image data + * @param pix_fmt The format in which the picture data is stored. + * @param width the width of the image in pixels + * @param height the height of the image in pixels + * @return size of the image data in bytes + */ +int avpicture_fill(AVPicture *picture, uint8_t *ptr, + enum PixelFormat pix_fmt, int width, int height); + +/** + * Copy pixel data from an AVPicture into a buffer. + * The data is stored compactly, without any gaps for alignment or padding + * which may be applied by avpicture_fill(). + * + * @see avpicture_get_size() + * + * @param[in] src AVPicture containing image data + * @param[in] pix_fmt The format in which the picture data is stored. + * @param[in] width the width of the image in pixels. + * @param[in] height the height of the image in pixels. + * @param[out] dest A buffer into which picture data will be copied. + * @param[in] dest_size The size of 'dest'. + * @return The number of bytes written to dest, or a negative value (error code) on error. + */ +int avpicture_layout(const AVPicture* src, enum PixelFormat pix_fmt, int width, int height, + unsigned char *dest, int dest_size); + +/** + * Calculate the size in bytes that a picture of the given width and height + * would occupy if stored in the given picture format. + * Note that this returns the size of a compact representation as generated + * by avpicture_layout(), which can be smaller than the size required for e.g. + * avpicture_fill(). + * + * @param pix_fmt the given picture format + * @param width the width of the image + * @param height the height of the image + * @return Image data size in bytes or -1 on error (e.g. too large dimensions). + */ +int avpicture_get_size(enum PixelFormat pix_fmt, int width, int height); +void avcodec_get_chroma_sub_sample(enum PixelFormat pix_fmt, int *h_shift, int *v_shift); + +/** + * Get the name of a codec. + * @return a static string identifying the codec; never NULL + */ +const char *avcodec_get_name(enum CodecID id); + +#if FF_API_GET_PIX_FMT_NAME +/** + * Return the short name for a pixel format. + * + * \see av_get_pix_fmt(), av_get_pix_fmt_string(). + * @deprecated Deprecated in favor of av_get_pix_fmt_name(). + */ +attribute_deprecated +const char *avcodec_get_pix_fmt_name(enum PixelFormat pix_fmt); +#endif + +void avcodec_set_dimensions(AVCodecContext *s, int width, int height); + +/** + * Return a value representing the fourCC code associated to the + * pixel format pix_fmt, or 0 if no associated fourCC code can be + * found. + */ +unsigned int avcodec_pix_fmt_to_codec_tag(enum PixelFormat pix_fmt); + +/** + * Put a string representing the codec tag codec_tag in buf. + * + * @param buf_size size in bytes of buf + * @return the length of the string that would have been generated if + * enough space had been available, excluding the trailing null + */ +size_t av_get_codec_tag_string(char *buf, size_t buf_size, unsigned int codec_tag); + +#define FF_LOSS_RESOLUTION 0x0001 /**< loss due to resolution change */ +#define FF_LOSS_DEPTH 0x0002 /**< loss due to color depth change */ +#define FF_LOSS_COLORSPACE 0x0004 /**< loss due to color space conversion */ +#define FF_LOSS_ALPHA 0x0008 /**< loss of alpha bits */ +#define FF_LOSS_COLORQUANT 0x0010 /**< loss due to color quantization */ +#define FF_LOSS_CHROMA 0x0020 /**< loss of chroma (e.g. RGB to gray conversion) */ + +/** + * Compute what kind of losses will occur when converting from one specific + * pixel format to another. + * When converting from one pixel format to another, information loss may occur. + * For example, when converting from RGB24 to GRAY, the color information will + * be lost. Similarly, other losses occur when converting from some formats to + * other formats. These losses can involve loss of chroma, but also loss of + * resolution, loss of color depth, loss due to the color space conversion, loss + * of the alpha bits or loss due to color quantization. + * avcodec_get_fix_fmt_loss() informs you about the various types of losses + * which will occur when converting from one pixel format to another. + * + * @param[in] dst_pix_fmt destination pixel format + * @param[in] src_pix_fmt source pixel format + * @param[in] has_alpha Whether the source pixel format alpha channel is used. + * @return Combination of flags informing you what kind of losses will occur + * (maximum loss for an invalid dst_pix_fmt). + */ +int avcodec_get_pix_fmt_loss(enum PixelFormat dst_pix_fmt, enum PixelFormat src_pix_fmt, + int has_alpha); + +/** + * Find the best pixel format to convert to given a certain source pixel + * format. When converting from one pixel format to another, information loss + * may occur. For example, when converting from RGB24 to GRAY, the color + * information will be lost. Similarly, other losses occur when converting from + * some formats to other formats. avcodec_find_best_pix_fmt() searches which of + * the given pixel formats should be used to suffer the least amount of loss. + * The pixel formats from which it chooses one, are determined by the + * pix_fmt_mask parameter. + * + * Note, only the first 64 pixel formats will fit in pix_fmt_mask. + * + * @code + * src_pix_fmt = PIX_FMT_YUV420P; + * pix_fmt_mask = (1 << PIX_FMT_YUV422P) | (1 << PIX_FMT_RGB24); + * dst_pix_fmt = avcodec_find_best_pix_fmt(pix_fmt_mask, src_pix_fmt, alpha, &loss); + * @endcode + * + * @param[in] pix_fmt_mask bitmask determining which pixel format to choose from + * @param[in] src_pix_fmt source pixel format + * @param[in] has_alpha Whether the source pixel format alpha channel is used. + * @param[out] loss_ptr Combination of flags informing you what kind of losses will occur. + * @return The best pixel format to convert to or -1 if none was found. + */ +enum PixelFormat avcodec_find_best_pix_fmt(int64_t pix_fmt_mask, enum PixelFormat src_pix_fmt, + int has_alpha, int *loss_ptr); + +/** + * Find the best pixel format to convert to given a certain source pixel + * format and a selection of two destination pixel formats. When converting from + * one pixel format to another, information loss may occur. For example, when converting + * from RGB24 to GRAY, the color information will be lost. Similarly, other losses occur when + * converting from some formats to other formats. avcodec_find_best_pix_fmt2() selects which of + * the given pixel formats should be used to suffer the least amount of loss. + * + * If one of the destination formats is PIX_FMT_NONE the other pixel format (if valid) will be + * returned. + * + * @code + * src_pix_fmt = PIX_FMT_YUV420P; + * dst_pix_fmt1= PIX_FMT_RGB24; + * dst_pix_fmt2= PIX_FMT_GRAY8; + * dst_pix_fmt3= PIX_FMT_RGB8; + * loss= FF_LOSS_CHROMA; // don't care about chroma loss, so chroma loss will be ignored. + * dst_pix_fmt = avcodec_find_best_pix_fmt2(dst_pix_fmt1, dst_pix_fmt2, src_pix_fmt, alpha, &loss); + * dst_pix_fmt = avcodec_find_best_pix_fmt2(dst_pix_fmt, dst_pix_fmt3, src_pix_fmt, alpha, &loss); + * @endcode + * + * @param[in] dst_pix_fmt1 One of the two destination pixel formats to choose from + * @param[in] dst_pix_fmt2 The other of the two destination pixel formats to choose from + * @param[in] src_pix_fmt Source pixel format + * @param[in] has_alpha Whether the source pixel format alpha channel is used. + * @param[in, out] loss_ptr Combination of loss flags. In: selects which of the losses to ignore, i.e. + * NULL or value of zero means we care about all losses. Out: the loss + * that occurs when converting from src to selected dst pixel format. + * @return The best pixel format to convert to or -1 if none was found. + */ +enum PixelFormat avcodec_find_best_pix_fmt2(enum PixelFormat dst_pix_fmt1, enum PixelFormat dst_pix_fmt2, + enum PixelFormat src_pix_fmt, int has_alpha, int *loss_ptr); + +#if FF_API_GET_ALPHA_INFO +#define FF_ALPHA_TRANSP 0x0001 /* image has some totally transparent pixels */ +#define FF_ALPHA_SEMI_TRANSP 0x0002 /* image has some transparent pixels */ + +/** + * Tell if an image really has transparent alpha values. + * @return ored mask of FF_ALPHA_xxx constants + */ +attribute_deprecated +int img_get_alpha_info(const AVPicture *src, + enum PixelFormat pix_fmt, int width, int height); +#endif + +/* deinterlace a picture */ +/* deinterlace - if not supported return -1 */ +int avpicture_deinterlace(AVPicture *dst, const AVPicture *src, + enum PixelFormat pix_fmt, int width, int height); + +/* external high level API */ + +/** + * If c is NULL, returns the first registered codec, + * if c is non-NULL, returns the next registered codec after c, + * or NULL if c is the last one. + */ +AVCodec *av_codec_next(AVCodec *c); + +/** + * Return the LIBAVCODEC_VERSION_INT constant. + */ +unsigned avcodec_version(void); + +/** + * Return the libavcodec build-time configuration. + */ +const char *avcodec_configuration(void); + +/** + * Return the libavcodec license. + */ +const char *avcodec_license(void); + +#if FF_API_AVCODEC_INIT +/** + * @deprecated this function is called automatically from avcodec_register() + * and avcodec_register_all(), there is no need to call it manually + */ +attribute_deprecated +void avcodec_init(void); +#endif + +/** + * Register the codec codec and initialize libavcodec. + * + * @warning either this function or avcodec_register_all() must be called + * before any other libavcodec functions. + * + * @see avcodec_register_all() + */ +void avcodec_register(AVCodec *codec); + +/** + * Find a registered encoder with a matching codec ID. + * + * @param id CodecID of the requested encoder + * @return An encoder if one was found, NULL otherwise. + */ +AVCodec *avcodec_find_encoder(enum CodecID id); + +/** + * Find a registered encoder with the specified name. + * + * @param name name of the requested encoder + * @return An encoder if one was found, NULL otherwise. + */ +AVCodec *avcodec_find_encoder_by_name(const char *name); + +/** + * Find a registered decoder with a matching codec ID. + * + * @param id CodecID of the requested decoder + * @return A decoder if one was found, NULL otherwise. + */ +AVCodec *avcodec_find_decoder(enum CodecID id); + +/** + * Find a registered decoder with the specified name. + * + * @param name name of the requested decoder + * @return A decoder if one was found, NULL otherwise. + */ +AVCodec *avcodec_find_decoder_by_name(const char *name); +void avcodec_string(char *buf, int buf_size, AVCodecContext *enc, int encode); + +/** + * Return a name for the specified profile, if available. + * + * @param codec the codec that is searched for the given profile + * @param profile the profile value for which a name is requested + * @return A name for the profile if found, NULL otherwise. + */ +const char *av_get_profile_name(const AVCodec *codec, int profile); + +#if FF_API_ALLOC_CONTEXT +/** + * Set the fields of the given AVCodecContext to default values. + * + * @param s The AVCodecContext of which the fields should be set to default values. + * @deprecated use avcodec_get_context_defaults3 + */ +attribute_deprecated +void avcodec_get_context_defaults(AVCodecContext *s); + +/** THIS FUNCTION IS NOT YET PART OF THE PUBLIC API! + * we WILL change its arguments and name a few times! */ +attribute_deprecated +void avcodec_get_context_defaults2(AVCodecContext *s, enum AVMediaType); +#endif + +/** + * Set the fields of the given AVCodecContext to default values corresponding + * to the given codec (defaults may be codec-dependent). + * + * Do not call this function if a non-NULL codec has been passed + * to avcodec_alloc_context3() that allocated this AVCodecContext. + * If codec is non-NULL, it is illegal to call avcodec_open2() with a + * different codec on this AVCodecContext. + */ +int avcodec_get_context_defaults3(AVCodecContext *s, AVCodec *codec); + +#if FF_API_ALLOC_CONTEXT +/** + * Allocate an AVCodecContext and set its fields to default values. The + * resulting struct can be deallocated by simply calling av_free(). + * + * @return An AVCodecContext filled with default values or NULL on failure. + * @see avcodec_get_context_defaults + * + * @deprecated use avcodec_alloc_context3() + */ +attribute_deprecated +AVCodecContext *avcodec_alloc_context(void); + +/** THIS FUNCTION IS NOT YET PART OF THE PUBLIC API! + * we WILL change its arguments and name a few times! */ +attribute_deprecated +AVCodecContext *avcodec_alloc_context2(enum AVMediaType); +#endif + +/** + * Allocate an AVCodecContext and set its fields to default values. The + * resulting struct can be deallocated by simply calling av_free(). + * + * @param codec if non-NULL, allocate private data and initialize defaults + * for the given codec. It is illegal to then call avcodec_open2() + * with a different codec. + * + * @return An AVCodecContext filled with default values or NULL on failure. + * @see avcodec_get_context_defaults + */ +AVCodecContext *avcodec_alloc_context3(AVCodec *codec); + +/** + * Copy the settings of the source AVCodecContext into the destination + * AVCodecContext. The resulting destination codec context will be + * unopened, i.e. you are required to call avcodec_open2() before you + * can use this AVCodecContext to decode/encode video/audio data. + * + * @param dest target codec context, should be initialized with + * avcodec_alloc_context3(), but otherwise uninitialized + * @param src source codec context + * @return AVERROR() on error (e.g. memory allocation error), 0 on success + */ +int avcodec_copy_context(AVCodecContext *dest, const AVCodecContext *src); + +/** + * Set the fields of the given AVFrame to default values. + * + * @param pic The AVFrame of which the fields should be set to default values. + */ +void avcodec_get_frame_defaults(AVFrame *pic); + +/** + * Allocate an AVFrame and set its fields to default values. The resulting + * struct can be deallocated by simply calling av_free(). + * + * @return An AVFrame filled with default values or NULL on failure. + * @see avcodec_get_frame_defaults + */ +AVFrame *avcodec_alloc_frame(void); + +int avcodec_default_get_buffer(AVCodecContext *s, AVFrame *pic); +void avcodec_default_release_buffer(AVCodecContext *s, AVFrame *pic); +int avcodec_default_reget_buffer(AVCodecContext *s, AVFrame *pic); + +/** + * Return the amount of padding in pixels which the get_buffer callback must + * provide around the edge of the image for codecs which do not have the + * CODEC_FLAG_EMU_EDGE flag. + * + * @return Required padding in pixels. + */ +unsigned avcodec_get_edge_width(void); +/** + * Modify width and height values so that they will result in a memory + * buffer that is acceptable for the codec if you do not use any horizontal + * padding. + * + * May only be used if a codec with CODEC_CAP_DR1 has been opened. + * If CODEC_FLAG_EMU_EDGE is not set, the dimensions must have been increased + * according to avcodec_get_edge_width() before. + */ +void avcodec_align_dimensions(AVCodecContext *s, int *width, int *height); +/** + * Modify width and height values so that they will result in a memory + * buffer that is acceptable for the codec if you also ensure that all + * line sizes are a multiple of the respective linesize_align[i]. + * + * May only be used if a codec with CODEC_CAP_DR1 has been opened. + * If CODEC_FLAG_EMU_EDGE is not set, the dimensions must have been increased + * according to avcodec_get_edge_width() before. + */ +void avcodec_align_dimensions2(AVCodecContext *s, int *width, int *height, + int linesize_align[AV_NUM_DATA_POINTERS]); + +enum PixelFormat avcodec_default_get_format(struct AVCodecContext *s, const enum PixelFormat * fmt); + +#if FF_API_THREAD_INIT +/** + * @deprecated Set s->thread_count before calling avcodec_open2() instead of calling this. + */ +attribute_deprecated +int avcodec_thread_init(AVCodecContext *s, int thread_count); +#endif + +int avcodec_default_execute(AVCodecContext *c, int (*func)(AVCodecContext *c2, void *arg2),void *arg, int *ret, int count, int size); +int avcodec_default_execute2(AVCodecContext *c, int (*func)(AVCodecContext *c2, void *arg2, int, int),void *arg, int *ret, int count); +//FIXME func typedef + +#if FF_API_AVCODEC_OPEN +/** + * Initialize the AVCodecContext to use the given AVCodec. Prior to using this + * function the context has to be allocated. + * + * The functions avcodec_find_decoder_by_name(), avcodec_find_encoder_by_name(), + * avcodec_find_decoder() and avcodec_find_encoder() provide an easy way for + * retrieving a codec. + * + * @warning This function is not thread safe! + * + * @code + * avcodec_register_all(); + * codec = avcodec_find_decoder(CODEC_ID_H264); + * if (!codec) + * exit(1); + * + * context = avcodec_alloc_context3(codec); + * + * if (avcodec_open(context, codec) < 0) + * exit(1); + * @endcode + * + * @param avctx The context which will be set up to use the given codec. + * @param codec The codec to use within the context. + * @return zero on success, a negative value on error + * @see avcodec_alloc_context3, avcodec_find_decoder, avcodec_find_encoder, avcodec_close + * + * @deprecated use avcodec_open2 + */ +attribute_deprecated +int avcodec_open(AVCodecContext *avctx, AVCodec *codec); +#endif + +/** + * Initialize the AVCodecContext to use the given AVCodec. Prior to using this + * function the context has to be allocated with avcodec_alloc_context3(). + * + * The functions avcodec_find_decoder_by_name(), avcodec_find_encoder_by_name(), + * avcodec_find_decoder() and avcodec_find_encoder() provide an easy way for + * retrieving a codec. + * + * @warning This function is not thread safe! + * + * @code + * avcodec_register_all(); + * av_dict_set(&opts, "b", "2.5M", 0); + * codec = avcodec_find_decoder(CODEC_ID_H264); + * if (!codec) + * exit(1); + * + * context = avcodec_alloc_context3(codec); + * + * if (avcodec_open2(context, codec, opts) < 0) + * exit(1); + * @endcode + * + * @param avctx The context to initialize. + * @param options A dictionary filled with AVCodecContext and codec-private options. + * On return this object will be filled with options that were not found. + * + * @return zero on success, a negative value on error + * @see avcodec_alloc_context3(), avcodec_find_decoder(), avcodec_find_encoder(), + * av_dict_set(), av_opt_find(). + */ +int avcodec_open2(AVCodecContext *avctx, AVCodec *codec, AVDictionary **options); + +#if FF_API_OLD_DECODE_AUDIO +/** + * Wrapper function which calls avcodec_decode_audio4. + * + * @deprecated Use avcodec_decode_audio4 instead. + * + * Decode the audio frame of size avpkt->size from avpkt->data into samples. + * Some decoders may support multiple frames in a single AVPacket, such + * decoders would then just decode the first frame. In this case, + * avcodec_decode_audio3 has to be called again with an AVPacket that contains + * the remaining data in order to decode the second frame etc. + * If no frame + * could be outputted, frame_size_ptr is zero. Otherwise, it is the + * decompressed frame size in bytes. + * + * @warning You must set frame_size_ptr to the allocated size of the + * output buffer before calling avcodec_decode_audio3(). + * + * @warning The input buffer must be FF_INPUT_BUFFER_PADDING_SIZE larger than + * the actual read bytes because some optimized bitstream readers read 32 or 64 + * bits at once and could read over the end. + * + * @warning The end of the input buffer avpkt->data should be set to 0 to ensure that + * no overreading happens for damaged MPEG streams. + * + * @warning You must not provide a custom get_buffer() when using + * avcodec_decode_audio3(). Doing so will override it with + * avcodec_default_get_buffer. Use avcodec_decode_audio4() instead, + * which does allow the application to provide a custom get_buffer(). + * + * @note You might have to align the input buffer avpkt->data and output buffer + * samples. The alignment requirements depend on the CPU: On some CPUs it isn't + * necessary at all, on others it won't work at all if not aligned and on others + * it will work but it will have an impact on performance. + * + * In practice, avpkt->data should have 4 byte alignment at minimum and + * samples should be 16 byte aligned unless the CPU doesn't need it + * (AltiVec and SSE do). + * + * @note Codecs which have the CODEC_CAP_DELAY capability set have a delay + * between input and output, these need to be fed with avpkt->data=NULL, + * avpkt->size=0 at the end to return the remaining frames. + * + * @param avctx the codec context + * @param[out] samples the output buffer, sample type in avctx->sample_fmt + * If the sample format is planar, each channel plane will + * be the same size, with no padding between channels. + * @param[in,out] frame_size_ptr the output buffer size in bytes + * @param[in] avpkt The input AVPacket containing the input buffer. + * You can create such packet with av_init_packet() and by then setting + * data and size, some decoders might in addition need other fields. + * All decoders are designed to use the least fields possible though. + * @return On error a negative value is returned, otherwise the number of bytes + * used or zero if no frame data was decompressed (used) from the input AVPacket. + */ +attribute_deprecated int avcodec_decode_audio3(AVCodecContext *avctx, int16_t *samples, + int *frame_size_ptr, + AVPacket *avpkt); +#endif + +/** + * Decode the audio frame of size avpkt->size from avpkt->data into frame. + * + * Some decoders may support multiple frames in a single AVPacket. Such + * decoders would then just decode the first frame. In this case, + * avcodec_decode_audio4 has to be called again with an AVPacket containing + * the remaining data in order to decode the second frame, etc... + * Even if no frames are returned, the packet needs to be fed to the decoder + * with remaining data until it is completely consumed or an error occurs. + * + * @warning The input buffer, avpkt->data must be FF_INPUT_BUFFER_PADDING_SIZE + * larger than the actual read bytes because some optimized bitstream + * readers read 32 or 64 bits at once and could read over the end. + * + * @note You might have to align the input buffer. The alignment requirements + * depend on the CPU and the decoder. + * + * @param avctx the codec context + * @param[out] frame The AVFrame in which to store decoded audio samples. + * Decoders request a buffer of a particular size by setting + * AVFrame.nb_samples prior to calling get_buffer(). The + * decoder may, however, only utilize part of the buffer by + * setting AVFrame.nb_samples to a smaller value in the + * output frame. + * @param[out] got_frame_ptr Zero if no frame could be decoded, otherwise it is + * non-zero. + * @param[in] avpkt The input AVPacket containing the input buffer. + * At least avpkt->data and avpkt->size should be set. Some + * decoders might also require additional fields to be set. + * @return A negative error code is returned if an error occurred during + * decoding, otherwise the number of bytes consumed from the input + * AVPacket is returned. + */ +int avcodec_decode_audio4(AVCodecContext *avctx, AVFrame *frame, + int *got_frame_ptr, AVPacket *avpkt); + +/** + * Decode the video frame of size avpkt->size from avpkt->data into picture. + * Some decoders may support multiple frames in a single AVPacket, such + * decoders would then just decode the first frame. + * + * @warning The input buffer must be FF_INPUT_BUFFER_PADDING_SIZE larger than + * the actual read bytes because some optimized bitstream readers read 32 or 64 + * bits at once and could read over the end. + * + * @warning The end of the input buffer buf should be set to 0 to ensure that + * no overreading happens for damaged MPEG streams. + * + * @note You might have to align the input buffer avpkt->data. + * The alignment requirements depend on the CPU: on some CPUs it isn't + * necessary at all, on others it won't work at all if not aligned and on others + * it will work but it will have an impact on performance. + * + * In practice, avpkt->data should have 4 byte alignment at minimum. + * + * @note Codecs which have the CODEC_CAP_DELAY capability set have a delay + * between input and output, these need to be fed with avpkt->data=NULL, + * avpkt->size=0 at the end to return the remaining frames. + * + * @param avctx the codec context + * @param[out] picture The AVFrame in which the decoded video frame will be stored. + * Use avcodec_alloc_frame to get an AVFrame, the codec will + * allocate memory for the actual bitmap. + * with default get/release_buffer(), the decoder frees/reuses the bitmap as it sees fit. + * with overridden get/release_buffer() (needs CODEC_CAP_DR1) the user decides into what buffer the decoder + * decodes and the decoder tells the user once it does not need the data anymore, + * the user app can at this point free/reuse/keep the memory as it sees fit. + * + * @param[in] avpkt The input AVpacket containing the input buffer. + * You can create such packet with av_init_packet() and by then setting + * data and size, some decoders might in addition need other fields like + * flags&AV_PKT_FLAG_KEY. All decoders are designed to use the least + * fields possible. + * @param[in,out] got_picture_ptr Zero if no frame could be decompressed, otherwise, it is nonzero. + * @return On error a negative value is returned, otherwise the number of bytes + * used or zero if no frame could be decompressed. + */ +int avcodec_decode_video2(AVCodecContext *avctx, AVFrame *picture, + int *got_picture_ptr, + const AVPacket *avpkt); + +/** + * Decode a subtitle message. + * Return a negative value on error, otherwise return the number of bytes used. + * If no subtitle could be decompressed, got_sub_ptr is zero. + * Otherwise, the subtitle is stored in *sub. + * Note that CODEC_CAP_DR1 is not available for subtitle codecs. This is for + * simplicity, because the performance difference is expect to be negligible + * and reusing a get_buffer written for video codecs would probably perform badly + * due to a potentially very different allocation pattern. + * + * @param avctx the codec context + * @param[out] sub The AVSubtitle in which the decoded subtitle will be stored, must be + freed with avsubtitle_free if *got_sub_ptr is set. + * @param[in,out] got_sub_ptr Zero if no subtitle could be decompressed, otherwise, it is nonzero. + * @param[in] avpkt The input AVPacket containing the input buffer. + */ +int avcodec_decode_subtitle2(AVCodecContext *avctx, AVSubtitle *sub, + int *got_sub_ptr, + AVPacket *avpkt); + +/** + * Free all allocated data in the given subtitle struct. + * + * @param sub AVSubtitle to free. + */ +void avsubtitle_free(AVSubtitle *sub); + +#if FF_API_OLD_ENCODE_AUDIO +/** + * Encode an audio frame from samples into buf. + * + * @deprecated Use avcodec_encode_audio2 instead. + * + * @note The output buffer should be at least FF_MIN_BUFFER_SIZE bytes large. + * However, for codecs with avctx->frame_size equal to 0 (e.g. PCM) the user + * will know how much space is needed because it depends on the value passed + * in buf_size as described below. In that case a lower value can be used. + * + * @param avctx the codec context + * @param[out] buf the output buffer + * @param[in] buf_size the output buffer size + * @param[in] samples the input buffer containing the samples + * The number of samples read from this buffer is frame_size*channels, + * both of which are defined in avctx. + * For codecs which have avctx->frame_size equal to 0 (e.g. PCM) the number of + * samples read from samples is equal to: + * buf_size * 8 / (avctx->channels * av_get_bits_per_sample(avctx->codec_id)) + * This also implies that av_get_bits_per_sample() must not return 0 for these + * codecs. + * @return On error a negative value is returned, on success zero or the number + * of bytes used to encode the data read from the input buffer. + */ +int attribute_deprecated avcodec_encode_audio(AVCodecContext *avctx, + uint8_t *buf, int buf_size, + const short *samples); +#endif + +/** + * Encode a frame of audio. + * + * Takes input samples from frame and writes the next output packet, if + * available, to avpkt. The output packet does not necessarily contain data for + * the most recent frame, as encoders can delay, split, and combine input frames + * internally as needed. + * + * @param avctx codec context + * @param avpkt output AVPacket. + * The user can supply an output buffer by setting + * avpkt->data and avpkt->size prior to calling the + * function, but if the size of the user-provided data is not + * large enough, encoding will fail. All other AVPacket fields + * will be reset by the encoder using av_init_packet(). If + * avpkt->data is NULL, the encoder will allocate it. + * The encoder will set avpkt->size to the size of the + * output packet. + * @param[in] frame AVFrame containing the raw audio data to be encoded. + * May be NULL when flushing an encoder that has the + * CODEC_CAP_DELAY capability set. + * There are 2 codec capabilities that affect the allowed + * values of frame->nb_samples. + * If CODEC_CAP_SMALL_LAST_FRAME is set, then only the final + * frame may be smaller than avctx->frame_size, and all other + * frames must be equal to avctx->frame_size. + * If CODEC_CAP_VARIABLE_FRAME_SIZE is set, then each frame + * can have any number of samples. + * If neither is set, frame->nb_samples must be equal to + * avctx->frame_size for all frames. + * @param[out] got_packet_ptr This field is set to 1 by libavcodec if the + * output packet is non-empty, and to 0 if it is + * empty. If the function returns an error, the + * packet can be assumed to be invalid, and the + * value of got_packet_ptr is undefined and should + * not be used. + * @return 0 on success, negative error code on failure + */ +int avcodec_encode_audio2(AVCodecContext *avctx, AVPacket *avpkt, + const AVFrame *frame, int *got_packet_ptr); + +/** + * Fill audio frame data and linesize. + * AVFrame extended_data channel pointers are allocated if necessary for + * planar audio. + * + * @param frame the AVFrame + * frame->nb_samples must be set prior to calling the + * function. This function fills in frame->data, + * frame->extended_data, frame->linesize[0]. + * @param nb_channels channel count + * @param sample_fmt sample format + * @param buf buffer to use for frame data + * @param buf_size size of buffer + * @param align plane size sample alignment + * @return 0 on success, negative error code on failure + */ +int avcodec_fill_audio_frame(AVFrame *frame, int nb_channels, + enum AVSampleFormat sample_fmt, const uint8_t *buf, + int buf_size, int align); + +/** + * Encode a video frame from pict into buf. + * The input picture should be + * stored using a specific format, namely avctx.pix_fmt. + * + * @param avctx the codec context + * @param[out] buf the output buffer for the bitstream of encoded frame + * @param[in] buf_size the size of the output buffer in bytes + * @param[in] pict the input picture to encode + * @return On error a negative value is returned, on success zero or the number + * of bytes used from the output buffer. + */ +int avcodec_encode_video(AVCodecContext *avctx, uint8_t *buf, int buf_size, + const AVFrame *pict); +int avcodec_encode_subtitle(AVCodecContext *avctx, uint8_t *buf, int buf_size, + const AVSubtitle *sub); + +int avcodec_close(AVCodecContext *avctx); + +/** + * Register all the codecs, parsers and bitstream filters which were enabled at + * configuration time. If you do not call this function you can select exactly + * which formats you want to support, by using the individual registration + * functions. + * + * @see avcodec_register + * @see av_register_codec_parser + * @see av_register_bitstream_filter + */ +void avcodec_register_all(void); + +/** + * Flush buffers, should be called when seeking or when switching to a different stream. + */ +void avcodec_flush_buffers(AVCodecContext *avctx); + +void avcodec_default_free_buffers(AVCodecContext *s); + +/* misc useful functions */ + +#if FF_API_OLD_FF_PICT_TYPES +/** + * Return a single letter to describe the given picture type pict_type. + * + * @param[in] pict_type the picture type + * @return A single character representing the picture type. + * @deprecated Use av_get_picture_type_char() instead. + */ +attribute_deprecated +char av_get_pict_type_char(int pict_type); +#endif + +/** + * Return codec bits per sample. + * + * @param[in] codec_id the codec + * @return Number of bits per sample or zero if unknown for the given codec. + */ +int av_get_bits_per_sample(enum CodecID codec_id); + +#if FF_API_OLD_SAMPLE_FMT +/** + * @deprecated Use av_get_bytes_per_sample() instead. + */ +attribute_deprecated +int av_get_bits_per_sample_format(enum AVSampleFormat sample_fmt); +#endif + +/* frame parsing */ +typedef struct AVCodecParserContext { + void *priv_data; + struct AVCodecParser *parser; + int64_t frame_offset; /* offset of the current frame */ + int64_t cur_offset; /* current offset + (incremented by each av_parser_parse()) */ + int64_t next_frame_offset; /* offset of the next frame */ + /* video info */ + int pict_type; /* XXX: Put it back in AVCodecContext. */ + /** + * This field is used for proper frame duration computation in lavf. + * It signals, how much longer the frame duration of the current frame + * is compared to normal frame duration. + * + * frame_duration = (1 + repeat_pict) * time_base + * + * It is used by codecs like H.264 to display telecined material. + */ + int repeat_pict; /* XXX: Put it back in AVCodecContext. */ + int64_t pts; /* pts of the current frame */ + int64_t dts; /* dts of the current frame */ + + /* private data */ + int64_t last_pts; + int64_t last_dts; + int fetch_timestamp; + +#define AV_PARSER_PTS_NB 4 + int cur_frame_start_index; + int64_t cur_frame_offset[AV_PARSER_PTS_NB]; + int64_t cur_frame_pts[AV_PARSER_PTS_NB]; + int64_t cur_frame_dts[AV_PARSER_PTS_NB]; + + int flags; +#define PARSER_FLAG_COMPLETE_FRAMES 0x0001 +#define PARSER_FLAG_ONCE 0x0002 +/// Set if the parser has a valid file offset +#define PARSER_FLAG_FETCHED_OFFSET 0x0004 + + int64_t offset; ///< byte offset from starting packet start + int64_t cur_frame_end[AV_PARSER_PTS_NB]; + + /** + * Set by parser to 1 for key frames and 0 for non-key frames. + * It is initialized to -1, so if the parser doesn't set this flag, + * old-style fallback using AV_PICTURE_TYPE_I picture type as key frames + * will be used. + */ + int key_frame; + + /** + * Time difference in stream time base units from the pts of this + * packet to the point at which the output from the decoder has converged + * independent from the availability of previous frames. That is, the + * frames are virtually identical no matter if decoding started from + * the very first frame or from this keyframe. + * Is AV_NOPTS_VALUE if unknown. + * This field is not the display duration of the current frame. + * This field has no meaning if the packet does not have AV_PKT_FLAG_KEY + * set. + * + * The purpose of this field is to allow seeking in streams that have no + * keyframes in the conventional sense. It corresponds to the + * recovery point SEI in H.264 and match_time_delta in NUT. It is also + * essential for some types of subtitle streams to ensure that all + * subtitles are correctly displayed after seeking. + */ + int64_t convergence_duration; + + // Timestamp generation support: + /** + * Synchronization point for start of timestamp generation. + * + * Set to >0 for sync point, 0 for no sync point and <0 for undefined + * (default). + * + * For example, this corresponds to presence of H.264 buffering period + * SEI message. + */ + int dts_sync_point; + + /** + * Offset of the current timestamp against last timestamp sync point in + * units of AVCodecContext.time_base. + * + * Set to INT_MIN when dts_sync_point unused. Otherwise, it must + * contain a valid timestamp offset. + * + * Note that the timestamp of sync point has usually a nonzero + * dts_ref_dts_delta, which refers to the previous sync point. Offset of + * the next frame after timestamp sync point will be usually 1. + * + * For example, this corresponds to H.264 cpb_removal_delay. + */ + int dts_ref_dts_delta; + + /** + * Presentation delay of current frame in units of AVCodecContext.time_base. + * + * Set to INT_MIN when dts_sync_point unused. Otherwise, it must + * contain valid non-negative timestamp delta (presentation time of a frame + * must not lie in the past). + * + * This delay represents the difference between decoding and presentation + * time of the frame. + * + * For example, this corresponds to H.264 dpb_output_delay. + */ + int pts_dts_delta; + + /** + * Position of the packet in file. + * + * Analogous to cur_frame_pts/dts + */ + int64_t cur_frame_pos[AV_PARSER_PTS_NB]; + + /** + * Byte position of currently parsed frame in stream. + */ + int64_t pos; + + /** + * Previous frame byte position. + */ + int64_t last_pos; +} AVCodecParserContext; + +typedef struct AVCodecParser { + int codec_ids[5]; /* several codec IDs are permitted */ + int priv_data_size; + int (*parser_init)(AVCodecParserContext *s); + int (*parser_parse)(AVCodecParserContext *s, + AVCodecContext *avctx, + const uint8_t **poutbuf, int *poutbuf_size, + const uint8_t *buf, int buf_size); + void (*parser_close)(AVCodecParserContext *s); + int (*split)(AVCodecContext *avctx, const uint8_t *buf, int buf_size); + struct AVCodecParser *next; +} AVCodecParser; + +AVCodecParser *av_parser_next(AVCodecParser *c); + +void av_register_codec_parser(AVCodecParser *parser); +AVCodecParserContext *av_parser_init(int codec_id); + +/** + * Parse a packet. + * + * @param s parser context. + * @param avctx codec context. + * @param poutbuf set to pointer to parsed buffer or NULL if not yet finished. + * @param poutbuf_size set to size of parsed buffer or zero if not yet finished. + * @param buf input buffer. + * @param buf_size input length, to signal EOF, this should be 0 (so that the last frame can be output). + * @param pts input presentation timestamp. + * @param dts input decoding timestamp. + * @param pos input byte position in stream. + * @return the number of bytes of the input bitstream used. + * + * Example: + * @code + * while(in_len){ + * len = av_parser_parse2(myparser, AVCodecContext, &data, &size, + * in_data, in_len, + * pts, dts, pos); + * in_data += len; + * in_len -= len; + * + * if(size) + * decode_frame(data, size); + * } + * @endcode + */ +int av_parser_parse2(AVCodecParserContext *s, + AVCodecContext *avctx, + uint8_t **poutbuf, int *poutbuf_size, + const uint8_t *buf, int buf_size, + int64_t pts, int64_t dts, + int64_t pos); + +int av_parser_change(AVCodecParserContext *s, + AVCodecContext *avctx, + uint8_t **poutbuf, int *poutbuf_size, + const uint8_t *buf, int buf_size, int keyframe); +void av_parser_close(AVCodecParserContext *s); + + +typedef struct AVBitStreamFilterContext { + void *priv_data; + struct AVBitStreamFilter *filter; + AVCodecParserContext *parser; + struct AVBitStreamFilterContext *next; +} AVBitStreamFilterContext; + + +typedef struct AVBitStreamFilter { + const char *name; + int priv_data_size; + int (*filter)(AVBitStreamFilterContext *bsfc, + AVCodecContext *avctx, const char *args, + uint8_t **poutbuf, int *poutbuf_size, + const uint8_t *buf, int buf_size, int keyframe); + void (*close)(AVBitStreamFilterContext *bsfc); + struct AVBitStreamFilter *next; +} AVBitStreamFilter; + +void av_register_bitstream_filter(AVBitStreamFilter *bsf); +AVBitStreamFilterContext *av_bitstream_filter_init(const char *name); +int av_bitstream_filter_filter(AVBitStreamFilterContext *bsfc, + AVCodecContext *avctx, const char *args, + uint8_t **poutbuf, int *poutbuf_size, + const uint8_t *buf, int buf_size, int keyframe); +void av_bitstream_filter_close(AVBitStreamFilterContext *bsf); + +AVBitStreamFilter *av_bitstream_filter_next(AVBitStreamFilter *f); + +/* memory */ + +/** + * Reallocate the given block if it is not large enough, otherwise do nothing. + * + * @see av_realloc + */ +void *av_fast_realloc(void *ptr, unsigned int *size, size_t min_size); + +/** + * Allocate a buffer, reusing the given one if large enough. + * + * Contrary to av_fast_realloc the current buffer contents might not be + * preserved and on error the old buffer is freed, thus no special + * handling to avoid memleaks is necessary. + * + * @param ptr pointer to pointer to already allocated buffer, overwritten with pointer to new buffer + * @param size size of the buffer *ptr points to + * @param min_size minimum size of *ptr buffer after returning, *ptr will be NULL and + * *size 0 if an error occurred. + */ +void av_fast_malloc(void *ptr, unsigned int *size, size_t min_size); + +/** + * Same behaviour av_fast_malloc but the buffer has additional + * FF_INPUT_PADDING_SIZE at the end which will will always be 0. + * + * In addition the whole buffer will initially and after resizes + * be 0-initialized so that no uninitialized data will ever appear. + */ +void av_fast_padded_malloc(void *ptr, unsigned int *size, size_t min_size); + +/** + * Copy image src to dst. Wraps av_picture_data_copy() above. + */ +void av_picture_copy(AVPicture *dst, const AVPicture *src, + enum PixelFormat pix_fmt, int width, int height); + +/** + * Crop image top and left side. + */ +int av_picture_crop(AVPicture *dst, const AVPicture *src, + enum PixelFormat pix_fmt, int top_band, int left_band); + +/** + * Pad image. + */ +int av_picture_pad(AVPicture *dst, const AVPicture *src, int height, int width, enum PixelFormat pix_fmt, + int padtop, int padbottom, int padleft, int padright, int *color); + +/** + * Encode extradata length to a buffer. Used by xiph codecs. + * + * @param s buffer to write to; must be at least (v/255+1) bytes long + * @param v size of extradata in bytes + * @return number of bytes written to the buffer. + */ +unsigned int av_xiphlacing(unsigned char *s, unsigned int v); + +/** + * Log a generic warning message about a missing feature. This function is + * intended to be used internally by FFmpeg (libavcodec, libavformat, etc.) + * only, and would normally not be used by applications. + * @param[in] avc a pointer to an arbitrary struct of which the first field is + * a pointer to an AVClass struct + * @param[in] feature string containing the name of the missing feature + * @param[in] want_sample indicates if samples are wanted which exhibit this feature. + * If want_sample is non-zero, additional verbage will be added to the log + * message which tells the user how to report samples to the development + * mailing list. + */ +void av_log_missing_feature(void *avc, const char *feature, int want_sample); + +/** + * Log a generic warning message asking for a sample. This function is + * intended to be used internally by FFmpeg (libavcodec, libavformat, etc.) + * only, and would normally not be used by applications. + * @param[in] avc a pointer to an arbitrary struct of which the first field is + * a pointer to an AVClass struct + * @param[in] msg string containing an optional message, or NULL if no message + */ +void av_log_ask_for_sample(void *avc, const char *msg, ...) av_printf_format(2, 3); + +/** + * Register the hardware accelerator hwaccel. + */ +void av_register_hwaccel(AVHWAccel *hwaccel); + +/** + * If hwaccel is NULL, returns the first registered hardware accelerator, + * if hwaccel is non-NULL, returns the next registered hardware accelerator + * after hwaccel, or NULL if hwaccel is the last one. + */ +AVHWAccel *av_hwaccel_next(AVHWAccel *hwaccel); + + +/** + * Lock operation used by lockmgr + */ +enum AVLockOp { + AV_LOCK_CREATE, ///< Create a mutex + AV_LOCK_OBTAIN, ///< Lock the mutex + AV_LOCK_RELEASE, ///< Unlock the mutex + AV_LOCK_DESTROY, ///< Free mutex resources +}; + +/** + * Register a user provided lock manager supporting the operations + * specified by AVLockOp. mutex points to a (void *) where the + * lockmgr should store/get a pointer to a user allocated mutex. It's + * NULL upon AV_LOCK_CREATE and != NULL for all other ops. + * + * @param cb User defined callback. Note: FFmpeg may invoke calls to this + * callback during the call to av_lockmgr_register(). + * Thus, the application must be prepared to handle that. + * If cb is set to NULL the lockmgr will be unregistered. + * Also note that during unregistration the previously registered + * lockmgr callback may also be invoked. + */ +int av_lockmgr_register(int (*cb)(void **mutex, enum AVLockOp op)); + +/** + * Get the type of the given codec. + */ +enum AVMediaType avcodec_get_type(enum CodecID codec_id); + +/** + * Get the AVClass for AVCodecContext. It can be used in combination with + * AV_OPT_SEARCH_FAKE_OBJ for examining options. + * + * @see av_opt_find(). + */ +const AVClass *avcodec_get_class(void); + +/** + * Get the AVClass for AVFrame. It can be used in combination with + * AV_OPT_SEARCH_FAKE_OBJ for examining options. + * + * @see av_opt_find(). + */ +const AVClass *avcodec_get_frame_class(void); + +#endif /* AVCODEC_AVCODEC_H */ diff --git a/Externals/ffmpeg/include/libavcodec/avfft.h b/Externals/ffmpeg/include/libavcodec/avfft.h new file mode 100644 index 00000000..be2d9c7e --- /dev/null +++ b/Externals/ffmpeg/include/libavcodec/avfft.h @@ -0,0 +1,99 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVCODEC_AVFFT_H +#define AVCODEC_AVFFT_H + +typedef float FFTSample; + +typedef struct FFTComplex { + FFTSample re, im; +} FFTComplex; + +typedef struct FFTContext FFTContext; + +/** + * Set up a complex FFT. + * @param nbits log2 of the length of the input array + * @param inverse if 0 perform the forward transform, if 1 perform the inverse + */ +FFTContext *av_fft_init(int nbits, int inverse); + +/** + * Do the permutation needed BEFORE calling ff_fft_calc(). + */ +void av_fft_permute(FFTContext *s, FFTComplex *z); + +/** + * Do a complex FFT with the parameters defined in av_fft_init(). The + * input data must be permuted before. No 1.0/sqrt(n) normalization is done. + */ +void av_fft_calc(FFTContext *s, FFTComplex *z); + +void av_fft_end(FFTContext *s); + +FFTContext *av_mdct_init(int nbits, int inverse, double scale); +void av_imdct_calc(FFTContext *s, FFTSample *output, const FFTSample *input); +void av_imdct_half(FFTContext *s, FFTSample *output, const FFTSample *input); +void av_mdct_calc(FFTContext *s, FFTSample *output, const FFTSample *input); +void av_mdct_end(FFTContext *s); + +/* Real Discrete Fourier Transform */ + +enum RDFTransformType { + DFT_R2C, + IDFT_C2R, + IDFT_R2C, + DFT_C2R, +}; + +typedef struct RDFTContext RDFTContext; + +/** + * Set up a real FFT. + * @param nbits log2 of the length of the input array + * @param trans the type of transform + */ +RDFTContext *av_rdft_init(int nbits, enum RDFTransformType trans); +void av_rdft_calc(RDFTContext *s, FFTSample *data); +void av_rdft_end(RDFTContext *s); + +/* Discrete Cosine Transform */ + +typedef struct DCTContext DCTContext; + +enum DCTTransformType { + DCT_II = 0, + DCT_III, + DCT_I, + DST_I, +}; + +/** + * Set up DCT. + * @param nbits size of the input array: + * (1 << nbits) for DCT-II, DCT-III and DST-I + * (1 << nbits) + 1 for DCT-I + * + * @note the first element of the input of DST-I is ignored + */ +DCTContext *av_dct_init(int nbits, enum DCTTransformType type); +void av_dct_calc(DCTContext *s, FFTSample *data); +void av_dct_end (DCTContext *s); + +#endif /* AVCODEC_AVFFT_H */ diff --git a/Externals/ffmpeg/include/libavcodec/dxva2.h b/Externals/ffmpeg/include/libavcodec/dxva2.h new file mode 100644 index 00000000..fc995608 --- /dev/null +++ b/Externals/ffmpeg/include/libavcodec/dxva2.h @@ -0,0 +1,71 @@ +/* + * DXVA2 HW acceleration + * + * copyright (c) 2009 Laurent Aimar + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVCODEC_DXVA_H +#define AVCODEC_DXVA_H + +#include + +#include +#include + +#define FF_DXVA2_WORKAROUND_SCALING_LIST_ZIGZAG 1 ///< Work around for DXVA2 and old UVD/UVD+ ATI video cards + +/** + * This structure is used to provides the necessary configurations and data + * to the DXVA2 FFmpeg HWAccel implementation. + * + * The application must make it available as AVCodecContext.hwaccel_context. + */ +struct dxva_context { + /** + * DXVA2 decoder object + */ + IDirectXVideoDecoder *decoder; + + /** + * DXVA2 configuration used to create the decoder + */ + const DXVA2_ConfigPictureDecode *cfg; + + /** + * The number of surface in the surface array + */ + unsigned surface_count; + + /** + * The array of Direct3D surfaces used to create the decoder + */ + LPDIRECT3DSURFACE9 *surface; + + /** + * A bit field configuring the workarounds needed for using the decoder + */ + uint64_t workaround; + + /** + * Private to the FFmpeg AVHWAccel implementation + */ + unsigned report_id; +}; + +#endif /* AVCODEC_DXVA_H */ diff --git a/Externals/ffmpeg/include/libavcodec/opt.h b/Externals/ffmpeg/include/libavcodec/opt.h new file mode 100644 index 00000000..2380e743 --- /dev/null +++ b/Externals/ffmpeg/include/libavcodec/opt.h @@ -0,0 +1,34 @@ +/* + * This file is part of Libav. + * + * Libav is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * Libav 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with Libav; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * This header is provided for compatibility only and will be removed + * on next major bump + */ + +#ifndef AVCODEC_OPT_H +#define AVCODEC_OPT_H + +#include "libavcodec/version.h" + +#if FF_API_OPT_H +#include "libavutil/opt.h" +#endif + +#endif /* AVCODEC_OPT_H */ diff --git a/Externals/ffmpeg/include/libavcodec/vaapi.h b/Externals/ffmpeg/include/libavcodec/vaapi.h new file mode 100644 index 00000000..4c3bb9bb --- /dev/null +++ b/Externals/ffmpeg/include/libavcodec/vaapi.h @@ -0,0 +1,167 @@ +/* + * Video Acceleration API (shared data between FFmpeg and the video player) + * HW decode acceleration for MPEG-2, MPEG-4, H.264 and VC-1 + * + * Copyright (C) 2008-2009 Splitted-Desktop Systems + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVCODEC_VAAPI_H +#define AVCODEC_VAAPI_H + +#include + +/** + * @defgroup VAAPI_Decoding VA API Decoding + * @ingroup Decoder + * @{ + */ + +/** + * This structure is used to share data between the FFmpeg library and + * the client video application. + * This shall be zero-allocated and available as + * AVCodecContext.hwaccel_context. All user members can be set once + * during initialization or through each AVCodecContext.get_buffer() + * function call. In any case, they must be valid prior to calling + * decoding functions. + */ +struct vaapi_context { + /** + * Window system dependent data + * + * - encoding: unused + * - decoding: Set by user + */ + void *display; + + /** + * Configuration ID + * + * - encoding: unused + * - decoding: Set by user + */ + uint32_t config_id; + + /** + * Context ID (video decode pipeline) + * + * - encoding: unused + * - decoding: Set by user + */ + uint32_t context_id; + + /** + * VAPictureParameterBuffer ID + * + * - encoding: unused + * - decoding: Set by libavcodec + */ + uint32_t pic_param_buf_id; + + /** + * VAIQMatrixBuffer ID + * + * - encoding: unused + * - decoding: Set by libavcodec + */ + uint32_t iq_matrix_buf_id; + + /** + * VABitPlaneBuffer ID (for VC-1 decoding) + * + * - encoding: unused + * - decoding: Set by libavcodec + */ + uint32_t bitplane_buf_id; + + /** + * Slice parameter/data buffer IDs + * + * - encoding: unused + * - decoding: Set by libavcodec + */ + uint32_t *slice_buf_ids; + + /** + * Number of effective slice buffer IDs to send to the HW + * + * - encoding: unused + * - decoding: Set by libavcodec + */ + unsigned int n_slice_buf_ids; + + /** + * Size of pre-allocated slice_buf_ids + * + * - encoding: unused + * - decoding: Set by libavcodec + */ + unsigned int slice_buf_ids_alloc; + + /** + * Pointer to VASliceParameterBuffers + * + * - encoding: unused + * - decoding: Set by libavcodec + */ + void *slice_params; + + /** + * Size of a VASliceParameterBuffer element + * + * - encoding: unused + * - decoding: Set by libavcodec + */ + unsigned int slice_param_size; + + /** + * Size of pre-allocated slice_params + * + * - encoding: unused + * - decoding: Set by libavcodec + */ + unsigned int slice_params_alloc; + + /** + * Number of slices currently filled in + * + * - encoding: unused + * - decoding: Set by libavcodec + */ + unsigned int slice_count; + + /** + * Pointer to slice data buffer base + * - encoding: unused + * - decoding: Set by libavcodec + */ + const uint8_t *slice_data; + + /** + * Current size of slice data + * + * - encoding: unused + * - decoding: Set by libavcodec + */ + uint32_t slice_data_size; +}; + +/* @} */ + +#endif /* AVCODEC_VAAPI_H */ diff --git a/Externals/ffmpeg/include/libavcodec/vda.h b/Externals/ffmpeg/include/libavcodec/vda.h new file mode 100644 index 00000000..6e9de9cd --- /dev/null +++ b/Externals/ffmpeg/include/libavcodec/vda.h @@ -0,0 +1,168 @@ +/* + * VDA HW acceleration + * + * copyright (c) 2011 Sebastien Zwickert + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVCODEC_VDA_H +#define AVCODEC_VDA_H + +#include +#include + +// emmintrin.h is unable to compile with -std=c99 -Werror=missing-prototypes +// http://openradar.appspot.com/8026390 +#undef __GNUC_STDC_INLINE__ + +#define Picture QuickdrawPicture +#include +#undef Picture + +/** + * This structure is used to store a decoded frame information and data. + */ +typedef struct { + /** + * The PTS of the frame. + * + * - encoding: unused + * - decoding: Set/Unset by libavcodec. + */ + int64_t pts; + + /** + * The CoreVideo buffer that contains the decoded data. + * + * - encoding: unused + * - decoding: Set/Unset by libavcodec. + */ + CVPixelBufferRef cv_buffer; + + /** + * A pointer to the next frame. + * + * - encoding: unused + * - decoding: Set/Unset by libavcodec. + */ + struct vda_frame *next_frame; +} vda_frame; + +/** + * This structure is used to provide the necessary configurations and data + * to the VDA FFmpeg HWAccel implementation. + * + * The application must make it available as AVCodecContext.hwaccel_context. + */ +struct vda_context { + /** + * VDA decoder object. + * + * - encoding: unused + * - decoding: Set/Unset by libavcodec. + */ + VDADecoder decoder; + + /** + * VDA frames queue ordered by presentation timestamp. + * + * - encoding: unused + * - decoding: Set/Unset by libavcodec. + */ + vda_frame *queue; + + /** + * Mutex for locking queue operations. + * + * - encoding: unused + * - decoding: Set/Unset by libavcodec. + */ + pthread_mutex_t queue_mutex; + + /** + * The frame width. + * + * - encoding: unused + * - decoding: Set/Unset by user. + */ + int width; + + /** + * The frame height. + * + * - encoding: unused + * - decoding: Set/Unset by user. + */ + int height; + + /** + * The frame format. + * + * - encoding: unused + * - decoding: Set/Unset by user. + */ + int format; + + /** + * The pixel format for output image buffers. + * + * - encoding: unused + * - decoding: Set/Unset by user. + */ + OSType cv_pix_fmt_type; + + /** + * The current bitstream buffer. + * + * - encoding: unused + * - decoding: Set/Unset by libavcodec. + */ + uint8_t *bitstream; + + /** + * The current size of the bitstream. + * + * - encoding: unused + * - decoding: Set/Unset by libavcodec. + */ + int bitstream_size; + + /** + * The reference size used for fast reallocation. + * + * - encoding: unused + * - decoding: Set/Unset by libavcodec. + */ + int ref_size; +}; + +/** Create the video decoder. */ +int ff_vda_create_decoder(struct vda_context *vda_ctx, + uint8_t *extradata, + int extradata_size); + +/** Destroy the video decoder. */ +int ff_vda_destroy_decoder(struct vda_context *vda_ctx); + +/** Return the top frame of the queue. */ +vda_frame *ff_vda_queue_pop(struct vda_context *vda_ctx); + +/** Release the given frame. */ +void ff_vda_release_vda_frame(vda_frame *frame); + +#endif /* AVCODEC_VDA_H */ diff --git a/Externals/ffmpeg/include/libavcodec/vdpau.h b/Externals/ffmpeg/include/libavcodec/vdpau.h new file mode 100644 index 00000000..f3a54718 --- /dev/null +++ b/Externals/ffmpeg/include/libavcodec/vdpau.h @@ -0,0 +1,88 @@ +/* + * The Video Decode and Presentation API for UNIX (VDPAU) is used for + * hardware-accelerated decoding of MPEG-1/2, H.264 and VC-1. + * + * Copyright (C) 2008 NVIDIA + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVCODEC_VDPAU_H +#define AVCODEC_VDPAU_H + +/** + * @defgroup Decoder VDPAU Decoder and Renderer + * + * VDPAU hardware acceleration has two modules + * - VDPAU decoding + * - VDPAU presentation + * + * The VDPAU decoding module parses all headers using FFmpeg + * parsing mechanisms and uses VDPAU for the actual decoding. + * + * As per the current implementation, the actual decoding + * and rendering (API calls) are done as part of the VDPAU + * presentation (vo_vdpau.c) module. + * + * @defgroup VDPAU_Decoding VDPAU Decoding + * @ingroup Decoder + * @{ + */ + +#include +#include + +/** @brief The videoSurface is used for rendering. */ +#define FF_VDPAU_STATE_USED_FOR_RENDER 1 + +/** + * @brief The videoSurface is needed for reference/prediction. + * The codec manipulates this. + */ +#define FF_VDPAU_STATE_USED_FOR_REFERENCE 2 + +/** + * @brief This structure is used as a callback between the FFmpeg + * decoder (vd_) and presentation (vo_) module. + * This is used for defining a video frame containing surface, + * picture parameter, bitstream information etc which are passed + * between the FFmpeg decoder and its clients. + */ +struct vdpau_render_state { + VdpVideoSurface surface; ///< Used as rendered surface, never changed. + + int state; ///< Holds FF_VDPAU_STATE_* values. + + /** Describe size/location of the compressed video data. + Set to 0 when freeing bitstream_buffers. */ + int bitstream_buffers_allocated; + int bitstream_buffers_used; + /** The user is responsible for freeing this buffer using av_freep(). */ + VdpBitstreamBuffer *bitstream_buffers; + + /** picture parameter information for all supported codecs */ + union VdpPictureInfo { + VdpPictureInfoH264 h264; + VdpPictureInfoMPEG1Or2 mpeg; + VdpPictureInfoVC1 vc1; + VdpPictureInfoMPEG4Part2 mpeg4; + } info; +}; + +/* @}*/ + +#endif /* AVCODEC_VDPAU_H */ diff --git a/Externals/ffmpeg/include/libavcodec/version.h b/Externals/ffmpeg/include/libavcodec/version.h new file mode 100644 index 00000000..d67ad2f5 --- /dev/null +++ b/Externals/ffmpeg/include/libavcodec/version.h @@ -0,0 +1,130 @@ +/* + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVCODEC_VERSION_H +#define AVCODEC_VERSION_H + +#define LIBAVCODEC_VERSION_MAJOR 53 +#define LIBAVCODEC_VERSION_MINOR 60 +#define LIBAVCODEC_VERSION_MICRO 100 + +#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \ + LIBAVCODEC_VERSION_MINOR, \ + LIBAVCODEC_VERSION_MICRO) +#define LIBAVCODEC_VERSION AV_VERSION(LIBAVCODEC_VERSION_MAJOR, \ + LIBAVCODEC_VERSION_MINOR, \ + LIBAVCODEC_VERSION_MICRO) +#define LIBAVCODEC_BUILD LIBAVCODEC_VERSION_INT + +#define LIBAVCODEC_IDENT "Lavc" AV_STRINGIFY(LIBAVCODEC_VERSION) + +/** + * Those FF_API_* defines are not part of public API. + * They may change, break or disappear at any time. + */ +#ifndef FF_API_PALETTE_CONTROL +#define FF_API_PALETTE_CONTROL (LIBAVCODEC_VERSION_MAJOR < 54) +#endif +#ifndef FF_API_OLD_SAMPLE_FMT +#define FF_API_OLD_SAMPLE_FMT (LIBAVCODEC_VERSION_MAJOR < 54) +#endif +#ifndef FF_API_OLD_AUDIOCONVERT +#define FF_API_OLD_AUDIOCONVERT (LIBAVCODEC_VERSION_MAJOR < 54) +#endif +#ifndef FF_API_ANTIALIAS_ALGO +#define FF_API_ANTIALIAS_ALGO (LIBAVCODEC_VERSION_MAJOR < 54) +#endif +#ifndef FF_API_REQUEST_CHANNELS +#define FF_API_REQUEST_CHANNELS (LIBAVCODEC_VERSION_MAJOR < 55) +#endif +#ifndef FF_API_OPT_H +#define FF_API_OPT_H (LIBAVCODEC_VERSION_MAJOR < 54) +#endif +#ifndef FF_API_THREAD_INIT +#define FF_API_THREAD_INIT (LIBAVCODEC_VERSION_MAJOR < 54) +#endif +#ifndef FF_API_OLD_FF_PICT_TYPES +#define FF_API_OLD_FF_PICT_TYPES (LIBAVCODEC_VERSION_MAJOR < 54) +#endif +#ifndef FF_API_FLAC_GLOBAL_OPTS +#define FF_API_FLAC_GLOBAL_OPTS (LIBAVCODEC_VERSION_MAJOR < 54) +#endif +#ifndef FF_API_GET_PIX_FMT_NAME +#define FF_API_GET_PIX_FMT_NAME (LIBAVCODEC_VERSION_MAJOR < 54) +#endif +#ifndef FF_API_ALLOC_CONTEXT +#define FF_API_ALLOC_CONTEXT (LIBAVCODEC_VERSION_MAJOR < 54) +#endif +#ifndef FF_API_AVCODEC_OPEN +#define FF_API_AVCODEC_OPEN (LIBAVCODEC_VERSION_MAJOR < 54) +#endif +#ifndef FF_API_DRC_SCALE +#define FF_API_DRC_SCALE (LIBAVCODEC_VERSION_MAJOR < 54) +#endif +#ifndef FF_API_ER +#define FF_API_ER (LIBAVCODEC_VERSION_MAJOR < 54) +#endif +#ifndef FF_API_AVCODEC_INIT +#define FF_API_AVCODEC_INIT (LIBAVCODEC_VERSION_MAJOR < 54) +#endif +#ifndef FF_API_X264_GLOBAL_OPTS +#define FF_API_X264_GLOBAL_OPTS (LIBAVCODEC_VERSION_MAJOR < 54) +#endif +#ifndef FF_API_MPEGVIDEO_GLOBAL_OPTS +#define FF_API_MPEGVIDEO_GLOBAL_OPTS (LIBAVCODEC_VERSION_MAJOR < 54) +#endif +#ifndef FF_API_LAME_GLOBAL_OPTS +#define FF_API_LAME_GLOBAL_OPTS (LIBAVCODEC_VERSION_MAJOR < 54) +#endif +#ifndef FF_API_SNOW_GLOBAL_OPTS +#define FF_API_SNOW_GLOBAL_OPTS (LIBAVCODEC_VERSION_MAJOR < 54) +#endif +#ifndef FF_API_MJPEG_GLOBAL_OPTS +#define FF_API_MJPEG_GLOBAL_OPTS (LIBAVCODEC_VERSION_MAJOR < 54) +#endif +#ifndef FF_API_GET_ALPHA_INFO +#define FF_API_GET_ALPHA_INFO (LIBAVCODEC_VERSION_MAJOR < 54) +#endif +#ifndef FF_API_PARSE_FRAME +#define FF_API_PARSE_FRAME (LIBAVCODEC_VERSION_MAJOR < 54) +#endif +#ifndef FF_API_INTERNAL_CONTEXT +#define FF_API_INTERNAL_CONTEXT (LIBAVCODEC_VERSION_MAJOR < 54) +#endif +#ifndef FF_API_TIFFENC_COMPLEVEL +#define FF_API_TIFFENC_COMPLEVEL (LIBAVCODEC_VERSION_MAJOR < 54) +#endif +#ifndef FF_API_DATA_POINTERS +#define FF_API_DATA_POINTERS (LIBAVCODEC_VERSION_MAJOR < 54) +#endif +#ifndef FF_API_OLD_DECODE_AUDIO +#define FF_API_OLD_DECODE_AUDIO (LIBAVCODEC_VERSION_MAJOR < 55) +#endif +#ifndef FF_API_OLD_TIMECODE +#define FF_API_OLD_TIMECODE (LIBAVCODEC_VERSION_MAJOR < 54) +#endif + +#ifndef FF_API_AVFRAME_AGE +#define FF_API_AVFRAME_AGE (LIBAVCODEC_VERSION_MAJOR < 54) +#endif +#ifndef FF_API_OLD_ENCODE_AUDIO +#define FF_API_OLD_ENCODE_AUDIO (LIBAVCODEC_VERSION_MAJOR < 55) +#endif + +#endif /* AVCODEC_VERSION_H */ diff --git a/Externals/ffmpeg/include/libavcodec/xvmc.h b/Externals/ffmpeg/include/libavcodec/xvmc.h new file mode 100644 index 00000000..93ad8bb9 --- /dev/null +++ b/Externals/ffmpeg/include/libavcodec/xvmc.h @@ -0,0 +1,151 @@ +/* + * Copyright (C) 2003 Ivan Kalvachev + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVCODEC_XVMC_H +#define AVCODEC_XVMC_H + +#include + +#include "avcodec.h" + +#define AV_XVMC_ID 0x1DC711C0 /**< special value to ensure that regular pixel routines haven't corrupted the struct + the number is 1337 speak for the letters IDCT MCo (motion compensation) */ + +struct xvmc_pix_fmt { + /** The field contains the special constant value AV_XVMC_ID. + It is used as a test that the application correctly uses the API, + and that there is no corruption caused by pixel routines. + - application - set during initialization + - libavcodec - unchanged + */ + int xvmc_id; + + /** Pointer to the block array allocated by XvMCCreateBlocks(). + The array has to be freed by XvMCDestroyBlocks(). + Each group of 64 values represents one data block of differential + pixel information (in MoCo mode) or coefficients for IDCT. + - application - set the pointer during initialization + - libavcodec - fills coefficients/pixel data into the array + */ + short* data_blocks; + + /** Pointer to the macroblock description array allocated by + XvMCCreateMacroBlocks() and freed by XvMCDestroyMacroBlocks(). + - application - set the pointer during initialization + - libavcodec - fills description data into the array + */ + XvMCMacroBlock* mv_blocks; + + /** Number of macroblock descriptions that can be stored in the mv_blocks + array. + - application - set during initialization + - libavcodec - unchanged + */ + int allocated_mv_blocks; + + /** Number of blocks that can be stored at once in the data_blocks array. + - application - set during initialization + - libavcodec - unchanged + */ + int allocated_data_blocks; + + /** Indicate that the hardware would interpret data_blocks as IDCT + coefficients and perform IDCT on them. + - application - set during initialization + - libavcodec - unchanged + */ + int idct; + + /** In MoCo mode it indicates that intra macroblocks are assumed to be in + unsigned format; same as the XVMC_INTRA_UNSIGNED flag. + - application - set during initialization + - libavcodec - unchanged + */ + int unsigned_intra; + + /** Pointer to the surface allocated by XvMCCreateSurface(). + It has to be freed by XvMCDestroySurface() on application exit. + It identifies the frame and its state on the video hardware. + - application - set during initialization + - libavcodec - unchanged + */ + XvMCSurface* p_surface; + +/** Set by the decoder before calling ff_draw_horiz_band(), + needed by the XvMCRenderSurface function. */ +//@{ + /** Pointer to the surface used as past reference + - application - unchanged + - libavcodec - set + */ + XvMCSurface* p_past_surface; + + /** Pointer to the surface used as future reference + - application - unchanged + - libavcodec - set + */ + XvMCSurface* p_future_surface; + + /** top/bottom field or frame + - application - unchanged + - libavcodec - set + */ + unsigned int picture_structure; + + /** XVMC_SECOND_FIELD - 1st or 2nd field in the sequence + - application - unchanged + - libavcodec - set + */ + unsigned int flags; +//}@ + + /** Number of macroblock descriptions in the mv_blocks array + that have already been passed to the hardware. + - application - zeroes it on get_buffer(). + A successful ff_draw_horiz_band() may increment it + with filled_mb_block_num or zero both. + - libavcodec - unchanged + */ + int start_mv_blocks_num; + + /** Number of new macroblock descriptions in the mv_blocks array (after + start_mv_blocks_num) that are filled by libavcodec and have to be + passed to the hardware. + - application - zeroes it on get_buffer() or after successful + ff_draw_horiz_band(). + - libavcodec - increment with one of each stored MB + */ + int filled_mv_blocks_num; + + /** Number of the the next free data block; one data block consists of + 64 short values in the data_blocks array. + All blocks before this one have already been claimed by placing their + position into the corresponding block description structure field, + that are part of the mv_blocks array. + - application - zeroes it on get_buffer(). + A successful ff_draw_horiz_band() may zero it together + with start_mb_blocks_num. + - libavcodec - each decoded macroblock increases it by the number + of coded blocks it contains. + */ + int next_free_data_block_num; +}; + +#endif /* AVCODEC_XVMC_H */ diff --git a/Externals/ffmpeg/include/libavdevice/avdevice.h b/Externals/ffmpeg/include/libavdevice/avdevice.h new file mode 100644 index 00000000..5abf9f52 --- /dev/null +++ b/Externals/ffmpeg/include/libavdevice/avdevice.h @@ -0,0 +1,81 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVDEVICE_AVDEVICE_H +#define AVDEVICE_AVDEVICE_H + +/** + * @file + * @ingroup lavd + * Main libavdevice API header + */ + +/** + * @defgroup lavd Special devices muxing/demuxing library + * @{ + * Libavdevice is a complementary library to @ref libavf "libavformat". It + * provides various "special" platform-specific muxers and demuxers, e.g. for + * grabbing devices, audio capture and playback etc. As a consequence, the + * (de)muxers in libavdevice are of the AVFMT_NOFILE type (they use their own + * I/O functions). The filename passed to avformat_open_input() often does not + * refer to an actually existing file, but has some special device-specific + * meaning - e.g. for the x11grab device it is the display name. + * + * To use libavdevice, simply call avdevice_register_all() to register all + * compiled muxers and demuxers. They all use standard libavformat API. + * @} + */ + +#include "libavutil/avutil.h" +#include "libavformat/avformat.h" + +#define LIBAVDEVICE_VERSION_MAJOR 53 +#define LIBAVDEVICE_VERSION_MINOR 4 +#define LIBAVDEVICE_VERSION_MICRO 100 + +#define LIBAVDEVICE_VERSION_INT AV_VERSION_INT(LIBAVDEVICE_VERSION_MAJOR, \ + LIBAVDEVICE_VERSION_MINOR, \ + LIBAVDEVICE_VERSION_MICRO) +#define LIBAVDEVICE_VERSION AV_VERSION(LIBAVDEVICE_VERSION_MAJOR, \ + LIBAVDEVICE_VERSION_MINOR, \ + LIBAVDEVICE_VERSION_MICRO) +#define LIBAVDEVICE_BUILD LIBAVDEVICE_VERSION_INT + +/** + * Return the LIBAVDEVICE_VERSION_INT constant. + */ +unsigned avdevice_version(void); + +/** + * Return the libavdevice build-time configuration. + */ +const char *avdevice_configuration(void); + +/** + * Return the libavdevice license. + */ +const char *avdevice_license(void); + +/** + * Initialize libavdevice and register all the input and output devices. + * @warning This function is not thread safe. + */ +void avdevice_register_all(void); + +#endif /* AVDEVICE_AVDEVICE_H */ + diff --git a/Externals/ffmpeg/include/libavfilter/avcodec.h b/Externals/ffmpeg/include/libavfilter/avcodec.h new file mode 100644 index 00000000..22dd1a26 --- /dev/null +++ b/Externals/ffmpeg/include/libavfilter/avcodec.h @@ -0,0 +1,71 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVFILTER_AVCODEC_H +#define AVFILTER_AVCODEC_H + +/** + * @file + * libavcodec/libavfilter gluing utilities + * + * This should be included in an application ONLY if the installed + * libavfilter has been compiled with libavcodec support, otherwise + * symbols defined below will not be available. + */ + +#include "libavcodec/avcodec.h" // AVFrame +#include "avfilter.h" +#include "vsrc_buffer.h" + +/** + * Copy the frame properties of src to dst, without copying the actual + * image data. + */ +int avfilter_copy_frame_props(AVFilterBufferRef *dst, const AVFrame *src); + +/** + * Create and return a picref reference from the data and properties + * contained in frame. + * + * @param perms permissions to assign to the new buffer reference + */ +AVFilterBufferRef *avfilter_get_video_buffer_ref_from_frame(const AVFrame *frame, int perms); + +/** + * Fill an AVFrame with the information stored in picref. + * + * @param frame an already allocated AVFrame + * @param picref a video buffer reference + * @return 0 in case of success, a negative AVERROR code in case of + * failure + */ +int avfilter_fill_frame_from_video_buffer_ref(AVFrame *frame, + const AVFilterBufferRef *picref); + +/** + * Add frame data to buffer_src. + * + * @param buffer_src pointer to a buffer source context + * @param flags a combination of AV_VSRC_BUF_FLAG_* flags + * @return >= 0 in case of success, a negative AVERROR code in case of + * failure + */ +int av_vsrc_buffer_add_frame(AVFilterContext *buffer_src, + const AVFrame *frame, int flags); + +#endif /* AVFILTER_AVCODEC_H */ diff --git a/Externals/ffmpeg/include/libavfilter/avfilter.h b/Externals/ffmpeg/include/libavfilter/avfilter.h new file mode 100644 index 00000000..9c7a2e5b --- /dev/null +++ b/Externals/ffmpeg/include/libavfilter/avfilter.h @@ -0,0 +1,948 @@ +/* + * filter layer + * Copyright (c) 2007 Bobby Bingham + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVFILTER_AVFILTER_H +#define AVFILTER_AVFILTER_H + +#include "libavutil/avutil.h" +#include "libavutil/log.h" +#include "libavutil/samplefmt.h" +#include "libavutil/pixfmt.h" +#include "libavutil/rational.h" +#include "libavcodec/avcodec.h" + + +#ifndef FF_API_OLD_VSINK_API +#define FF_API_OLD_VSINK_API (LIBAVFILTER_VERSION_MAJOR < 3) +#endif +#ifndef FF_API_OLD_ALL_FORMATS_API +#define FF_API_OLD_ALL_FORMATS_API (LIBAVFILTER_VERSION_MAJOR < 3) +#endif + +#include + +#include "libavfilter/version.h" + +/** + * Return the LIBAVFILTER_VERSION_INT constant. + */ +unsigned avfilter_version(void); + +/** + * Return the libavfilter build-time configuration. + */ +const char *avfilter_configuration(void); + +/** + * Return the libavfilter license. + */ +const char *avfilter_license(void); + + +typedef struct AVFilterContext AVFilterContext; +typedef struct AVFilterLink AVFilterLink; +typedef struct AVFilterPad AVFilterPad; + +/** + * A reference-counted buffer data type used by the filter system. Filters + * should not store pointers to this structure directly, but instead use the + * AVFilterBufferRef structure below. + */ +typedef struct AVFilterBuffer { + uint8_t *data[8]; ///< buffer data for each plane/channel + int linesize[8]; ///< number of bytes per line + + unsigned refcount; ///< number of references to this buffer + + /** private data to be used by a custom free function */ + void *priv; + /** + * A pointer to the function to deallocate this buffer if the default + * function is not sufficient. This could, for example, add the memory + * back into a memory pool to be reused later without the overhead of + * reallocating it from scratch. + */ + void (*free)(struct AVFilterBuffer *buf); + + int format; ///< media format + int w, h; ///< width and height of the allocated buffer +} AVFilterBuffer; + +#define AV_PERM_READ 0x01 ///< can read from the buffer +#define AV_PERM_WRITE 0x02 ///< can write to the buffer +#define AV_PERM_PRESERVE 0x04 ///< nobody else can overwrite the buffer +#define AV_PERM_REUSE 0x08 ///< can output the buffer multiple times, with the same contents each time +#define AV_PERM_REUSE2 0x10 ///< can output the buffer multiple times, modified each time +#define AV_PERM_NEG_LINESIZES 0x20 ///< the buffer requested can have negative linesizes +#define AV_PERM_ALIGN 0x40 ///< the buffer must be aligned + +#define AVFILTER_ALIGN 16 //not part of ABI + +/** + * Audio specific properties in a reference to an AVFilterBuffer. Since + * AVFilterBufferRef is common to different media formats, audio specific + * per reference properties must be separated out. + */ +typedef struct AVFilterBufferRefAudioProps { + uint64_t channel_layout; ///< channel layout of audio buffer + int nb_samples; ///< number of audio samples per channel + int sample_rate; ///< audio buffer sample rate + int planar; ///< audio buffer - planar or packed +} AVFilterBufferRefAudioProps; + +/** + * Video specific properties in a reference to an AVFilterBuffer. Since + * AVFilterBufferRef is common to different media formats, video specific + * per reference properties must be separated out. + */ +typedef struct AVFilterBufferRefVideoProps { + int w; ///< image width + int h; ///< image height + AVRational sample_aspect_ratio; ///< sample aspect ratio + int interlaced; ///< is frame interlaced + int top_field_first; ///< field order + enum AVPictureType pict_type; ///< picture type of the frame + int key_frame; ///< 1 -> keyframe, 0-> not +} AVFilterBufferRefVideoProps; + +/** + * A reference to an AVFilterBuffer. Since filters can manipulate the origin of + * a buffer to, for example, crop image without any memcpy, the buffer origin + * and dimensions are per-reference properties. Linesize is also useful for + * image flipping, frame to field filters, etc, and so is also per-reference. + * + * TODO: add anything necessary for frame reordering + */ +typedef struct AVFilterBufferRef { + AVFilterBuffer *buf; ///< the buffer that this is a reference to + uint8_t *data[8]; ///< picture/audio data for each plane + int linesize[8]; ///< number of bytes per line + int format; ///< media format + + /** + * presentation timestamp. The time unit may change during + * filtering, as it is specified in the link and the filter code + * may need to rescale the PTS accordingly. + */ + int64_t pts; + int64_t pos; ///< byte position in stream, -1 if unknown + + int perms; ///< permissions, see the AV_PERM_* flags + + enum AVMediaType type; ///< media type of buffer data + AVFilterBufferRefVideoProps *video; ///< video buffer specific properties + AVFilterBufferRefAudioProps *audio; ///< audio buffer specific properties +} AVFilterBufferRef; + +/** + * Copy properties of src to dst, without copying the actual data + */ +static inline void avfilter_copy_buffer_ref_props(AVFilterBufferRef *dst, AVFilterBufferRef *src) +{ + // copy common properties + dst->pts = src->pts; + dst->pos = src->pos; + + switch (src->type) { + case AVMEDIA_TYPE_VIDEO: *dst->video = *src->video; break; + case AVMEDIA_TYPE_AUDIO: *dst->audio = *src->audio; break; + default: break; + } +} + +/** + * Add a new reference to a buffer. + * + * @param ref an existing reference to the buffer + * @param pmask a bitmask containing the allowable permissions in the new + * reference + * @return a new reference to the buffer with the same properties as the + * old, excluding any permissions denied by pmask + */ +AVFilterBufferRef *avfilter_ref_buffer(AVFilterBufferRef *ref, int pmask); + +/** + * Remove a reference to a buffer. If this is the last reference to the + * buffer, the buffer itself is also automatically freed. + * + * @param ref reference to the buffer, may be NULL + */ +void avfilter_unref_buffer(AVFilterBufferRef *ref); + +/** + * A list of supported formats for one end of a filter link. This is used + * during the format negotiation process to try to pick the best format to + * use to minimize the number of necessary conversions. Each filter gives a + * list of the formats supported by each input and output pad. The list + * given for each pad need not be distinct - they may be references to the + * same list of formats, as is often the case when a filter supports multiple + * formats, but will always output the same format as it is given in input. + * + * In this way, a list of possible input formats and a list of possible + * output formats are associated with each link. When a set of formats is + * negotiated over a link, the input and output lists are merged to form a + * new list containing only the common elements of each list. In the case + * that there were no common elements, a format conversion is necessary. + * Otherwise, the lists are merged, and all other links which reference + * either of the format lists involved in the merge are also affected. + * + * For example, consider the filter chain: + * filter (a) --> (b) filter (b) --> (c) filter + * + * where the letters in parenthesis indicate a list of formats supported on + * the input or output of the link. Suppose the lists are as follows: + * (a) = {A, B} + * (b) = {A, B, C} + * (c) = {B, C} + * + * First, the first link's lists are merged, yielding: + * filter (a) --> (a) filter (a) --> (c) filter + * + * Notice that format list (b) now refers to the same list as filter list (a). + * Next, the lists for the second link are merged, yielding: + * filter (a) --> (a) filter (a) --> (a) filter + * + * where (a) = {B}. + * + * Unfortunately, when the format lists at the two ends of a link are merged, + * we must ensure that all links which reference either pre-merge format list + * get updated as well. Therefore, we have the format list structure store a + * pointer to each of the pointers to itself. + */ +typedef struct AVFilterFormats { + unsigned format_count; ///< number of formats + int64_t *formats; ///< list of media formats + + unsigned refcount; ///< number of references to this list + struct AVFilterFormats ***refs; ///< references to this list +} AVFilterFormats; + +/** + * Create a list of supported formats. This is intended for use in + * AVFilter->query_formats(). + * + * @param fmts list of media formats, terminated by -1. If NULL an + * empty list is created. + * @return the format list, with no existing references + */ +AVFilterFormats *avfilter_make_format_list(const int *fmts); +AVFilterFormats *avfilter_make_format64_list(const int64_t *fmts); + +/** + * Add fmt to the list of media formats contained in *avff. + * If *avff is NULL the function allocates the filter formats struct + * and puts its pointer in *avff. + * + * @return a non negative value in case of success, or a negative + * value corresponding to an AVERROR code in case of error + */ +int avfilter_add_format(AVFilterFormats **avff, int64_t fmt); + +#if FF_API_OLD_ALL_FORMATS_API +/** + * @deprecated Use avfilter_make_all_formats() instead. + */ +attribute_deprecated +AVFilterFormats *avfilter_all_formats(enum AVMediaType type); +#endif + +/** + * Return a list of all formats supported by FFmpeg for the given media type. + */ +AVFilterFormats *avfilter_make_all_formats(enum AVMediaType type); + +/** + * A list of all channel layouts supported by libavfilter. + */ +extern const int64_t avfilter_all_channel_layouts[]; + +/** + * Return a list of all channel layouts supported by FFmpeg. + */ +AVFilterFormats *avfilter_make_all_channel_layouts(void); + +/** + * Return a list of all audio packing formats. + */ +AVFilterFormats *avfilter_make_all_packing_formats(void); + +/** + * Return a format list which contains the intersection of the formats of + * a and b. Also, all the references of a, all the references of b, and + * a and b themselves will be deallocated. + * + * If a and b do not share any common formats, neither is modified, and NULL + * is returned. + */ +AVFilterFormats *avfilter_merge_formats(AVFilterFormats *a, AVFilterFormats *b); + +/** + * Add *ref as a new reference to formats. + * That is the pointers will point like in the ASCII art below: + * ________ + * |formats |<--------. + * | ____ | ____|___________________ + * | |refs| | | __|_ + * | |* * | | | | | | AVFilterLink + * | |* *--------->|*ref| + * | |____| | | |____| + * |________| |________________________ + */ +void avfilter_formats_ref(AVFilterFormats *formats, AVFilterFormats **ref); + +/** + * If *ref is non-NULL, remove *ref as a reference to the format list + * it currently points to, deallocates that list if this was the last + * reference, and sets *ref to NULL. + * + * Before After + * ________ ________ NULL + * |formats |<--------. |formats | ^ + * | ____ | ____|________________ | ____ | ____|________________ + * | |refs| | | __|_ | |refs| | | __|_ + * | |* * | | | | | | AVFilterLink | |* * | | | | | | AVFilterLink + * | |* *--------->|*ref| | |* | | | |*ref| + * | |____| | | |____| | |____| | | |____| + * |________| |_____________________ |________| |_____________________ + */ +void avfilter_formats_unref(AVFilterFormats **ref); + +/** + * + * Before After + * ________ ________ + * |formats |<---------. |formats |<---------. + * | ____ | ___|___ | ____ | ___|___ + * | |refs| | | | | | |refs| | | | | NULL + * | |* *--------->|*oldref| | |* *--------->|*newref| ^ + * | |* * | | |_______| | |* * | | |_______| ___|___ + * | |____| | | |____| | | | | + * |________| |________| |*oldref| + * |_______| + */ +void avfilter_formats_changeref(AVFilterFormats **oldref, + AVFilterFormats **newref); + +/** + * A filter pad used for either input or output. + */ +struct AVFilterPad { + /** + * Pad name. The name is unique among inputs and among outputs, but an + * input may have the same name as an output. This may be NULL if this + * pad has no need to ever be referenced by name. + */ + const char *name; + + /** + * AVFilterPad type. Can be AVMEDIA_TYPE_VIDEO or AVMEDIA_TYPE_AUDIO. + */ + enum AVMediaType type; + + /** + * Minimum required permissions on incoming buffers. Any buffer with + * insufficient permissions will be automatically copied by the filter + * system to a new buffer which provides the needed access permissions. + * + * Input pads only. + */ + int min_perms; + + /** + * Permissions which are not accepted on incoming buffers. Any buffer + * which has any of these permissions set will be automatically copied + * by the filter system to a new buffer which does not have those + * permissions. This can be used to easily disallow buffers with + * AV_PERM_REUSE. + * + * Input pads only. + */ + int rej_perms; + + /** + * Callback called before passing the first slice of a new frame. If + * NULL, the filter layer will default to storing a reference to the + * picture inside the link structure. + * + * Input video pads only. + */ + void (*start_frame)(AVFilterLink *link, AVFilterBufferRef *picref); + + /** + * Callback function to get a video buffer. If NULL, the filter system will + * use avfilter_default_get_video_buffer(). + * + * Input video pads only. + */ + AVFilterBufferRef *(*get_video_buffer)(AVFilterLink *link, int perms, int w, int h); + + /** + * Callback function to get an audio buffer. If NULL, the filter system will + * use avfilter_default_get_audio_buffer(). + * + * Input audio pads only. + */ + AVFilterBufferRef *(*get_audio_buffer)(AVFilterLink *link, int perms, int nb_samples); + + /** + * Callback called after the slices of a frame are completely sent. If + * NULL, the filter layer will default to releasing the reference stored + * in the link structure during start_frame(). + * + * Input video pads only. + */ + void (*end_frame)(AVFilterLink *link); + + /** + * Slice drawing callback. This is where a filter receives video data + * and should do its processing. + * + * Input video pads only. + */ + void (*draw_slice)(AVFilterLink *link, int y, int height, int slice_dir); + + /** + * Samples filtering callback. This is where a filter receives audio data + * and should do its processing. + * + * Input audio pads only. + */ + void (*filter_samples)(AVFilterLink *link, AVFilterBufferRef *samplesref); + + /** + * Frame poll callback. This returns the number of immediately available + * samples. It should return a positive value if the next request_frame() + * is guaranteed to return one frame (with no delay). + * + * Defaults to just calling the source poll_frame() method. + * + * Output video pads only. + */ + int (*poll_frame)(AVFilterLink *link); + + /** + * Frame request callback. A call to this should result in at least one + * frame being output over the given link. This should return zero on + * success, and another value on error. + * + * Output video pads only. + */ + int (*request_frame)(AVFilterLink *link); + + /** + * Link configuration callback. + * + * For output pads, this should set the following link properties: + * video: width, height, sample_aspect_ratio, time_base + * audio: sample_rate. + * + * This should NOT set properties such as format, channel_layout, etc which + * are negotiated between filters by the filter system using the + * query_formats() callback before this function is called. + * + * For input pads, this should check the properties of the link, and update + * the filter's internal state as necessary. + * + * For both input and output pads, this should return zero on success, + * and another value on error. + */ + int (*config_props)(AVFilterLink *link); +}; + +/** default handler for start_frame() for video inputs */ +void avfilter_default_start_frame(AVFilterLink *link, AVFilterBufferRef *picref); + +/** default handler for draw_slice() for video inputs */ +void avfilter_default_draw_slice(AVFilterLink *link, int y, int h, int slice_dir); + +/** default handler for end_frame() for video inputs */ +void avfilter_default_end_frame(AVFilterLink *link); + +/** default handler for filter_samples() for audio inputs */ +void avfilter_default_filter_samples(AVFilterLink *link, AVFilterBufferRef *samplesref); + +/** default handler for get_video_buffer() for video inputs */ +AVFilterBufferRef *avfilter_default_get_video_buffer(AVFilterLink *link, + int perms, int w, int h); + +/** default handler for get_audio_buffer() for audio inputs */ +AVFilterBufferRef *avfilter_default_get_audio_buffer(AVFilterLink *link, + int perms, int nb_samples); + +/** + * Helpers for query_formats() which set all links to the same list of + * formats/layouts. If there are no links hooked to this filter, the list + * of formats is freed. + */ +void avfilter_set_common_pixel_formats(AVFilterContext *ctx, AVFilterFormats *formats); +void avfilter_set_common_sample_formats(AVFilterContext *ctx, AVFilterFormats *formats); +void avfilter_set_common_channel_layouts(AVFilterContext *ctx, AVFilterFormats *formats); +void avfilter_set_common_packing_formats(AVFilterContext *ctx, AVFilterFormats *formats); + +/** Default handler for query_formats() */ +int avfilter_default_query_formats(AVFilterContext *ctx); + +/** start_frame() handler for filters which simply pass video along */ +void avfilter_null_start_frame(AVFilterLink *link, AVFilterBufferRef *picref); + +/** draw_slice() handler for filters which simply pass video along */ +void avfilter_null_draw_slice(AVFilterLink *link, int y, int h, int slice_dir); + +/** end_frame() handler for filters which simply pass video along */ +void avfilter_null_end_frame(AVFilterLink *link); + +/** filter_samples() handler for filters which simply pass audio along */ +void avfilter_null_filter_samples(AVFilterLink *link, AVFilterBufferRef *samplesref); + +/** get_video_buffer() handler for filters which simply pass video along */ +AVFilterBufferRef *avfilter_null_get_video_buffer(AVFilterLink *link, + int perms, int w, int h); + +/** get_audio_buffer() handler for filters which simply pass audio along */ +AVFilterBufferRef *avfilter_null_get_audio_buffer(AVFilterLink *link, + int perms, int nb_samples); + +/** + * Filter definition. This defines the pads a filter contains, and all the + * callback functions used to interact with the filter. + */ +typedef struct AVFilter { + const char *name; ///< filter name + + int priv_size; ///< size of private data to allocate for the filter + + /** + * Filter initialization function. Args contains the user-supplied + * parameters. FIXME: maybe an AVOption-based system would be better? + * opaque is data provided by the code requesting creation of the filter, + * and is used to pass data to the filter. + */ + int (*init)(AVFilterContext *ctx, const char *args, void *opaque); + + /** + * Filter uninitialization function. Should deallocate any memory held + * by the filter, release any buffer references, etc. This does not need + * to deallocate the AVFilterContext->priv memory itself. + */ + void (*uninit)(AVFilterContext *ctx); + + /** + * Queries formats/layouts supported by the filter and its pads, and sets + * the in_formats/in_chlayouts for links connected to its output pads, + * and out_formats/out_chlayouts for links connected to its input pads. + * + * @return zero on success, a negative value corresponding to an + * AVERROR code otherwise + */ + int (*query_formats)(AVFilterContext *); + + const AVFilterPad *inputs; ///< NULL terminated list of inputs. NULL if none + const AVFilterPad *outputs; ///< NULL terminated list of outputs. NULL if none + + /** + * A description for the filter. You should use the + * NULL_IF_CONFIG_SMALL() macro to define it. + */ + const char *description; + + /** + * Make the filter instance process a command. + * + * @param cmd the command to process, for handling simplicity all commands must be alphanumeric only + * @param arg the argument for the command + * @param res a buffer with size res_size where the filter(s) can return a response. This must not change when the command is not supported. + * @param flags if AVFILTER_CMD_FLAG_FAST is set and the command would be + * time consuming then a filter should treat it like an unsupported command + * + * @returns >=0 on success otherwise an error code. + * AVERROR(ENOSYS) on unsupported commands + */ + int (*process_command)(AVFilterContext *, const char *cmd, const char *arg, char *res, int res_len, int flags); +} AVFilter; + +/** An instance of a filter */ +struct AVFilterContext { + const AVClass *av_class; ///< needed for av_log() + + AVFilter *filter; ///< the AVFilter of which this is an instance + + char *name; ///< name of this filter instance + + unsigned input_count; ///< number of input pads + AVFilterPad *input_pads; ///< array of input pads + AVFilterLink **inputs; ///< array of pointers to input links + + unsigned output_count; ///< number of output pads + AVFilterPad *output_pads; ///< array of output pads + AVFilterLink **outputs; ///< array of pointers to output links + + void *priv; ///< private data for use by the filter + + struct AVFilterCommand *command_queue; +}; + +enum AVFilterPacking { + AVFILTER_PACKED = 0, + AVFILTER_PLANAR, +}; + +/** + * A link between two filters. This contains pointers to the source and + * destination filters between which this link exists, and the indexes of + * the pads involved. In addition, this link also contains the parameters + * which have been negotiated and agreed upon between the filter, such as + * image dimensions, format, etc. + */ +struct AVFilterLink { + AVFilterContext *src; ///< source filter + AVFilterPad *srcpad; ///< output pad on the source filter + + AVFilterContext *dst; ///< dest filter + AVFilterPad *dstpad; ///< input pad on the dest filter + + /** stage of the initialization of the link properties (dimensions, etc) */ + enum { + AVLINK_UNINIT = 0, ///< not started + AVLINK_STARTINIT, ///< started, but incomplete + AVLINK_INIT ///< complete + } init_state; + + enum AVMediaType type; ///< filter media type + + /* These parameters apply only to video */ + int w; ///< agreed upon image width + int h; ///< agreed upon image height + AVRational sample_aspect_ratio; ///< agreed upon sample aspect ratio + /* These parameters apply only to audio */ + uint64_t channel_layout; ///< channel layout of current buffer (see libavutil/audioconvert.h) +#if LIBAVFILTER_VERSION_MAJOR < 3 + int64_t sample_rate; ///< samples per second +#else + int sample_rate; ///< samples per second +#endif + int planar; ///< agreed upon packing mode of audio buffers. true if planar. + + int format; ///< agreed upon media format + + /** + * Lists of formats and channel layouts supported by the input and output + * filters respectively. These lists are used for negotiating the format + * to actually be used, which will be loaded into the format and + * channel_layout members, above, when chosen. + * + */ + AVFilterFormats *in_formats; + AVFilterFormats *out_formats; + + AVFilterFormats *in_chlayouts; + AVFilterFormats *out_chlayouts; + AVFilterFormats *in_packing; + AVFilterFormats *out_packing; + + /** + * The buffer reference currently being sent across the link by the source + * filter. This is used internally by the filter system to allow + * automatic copying of buffers which do not have sufficient permissions + * for the destination. This should not be accessed directly by the + * filters. + */ + AVFilterBufferRef *src_buf; + + AVFilterBufferRef *cur_buf; + AVFilterBufferRef *out_buf; + + /** + * Define the time base used by the PTS of the frames/samples + * which will pass through this link. + * During the configuration stage, each filter is supposed to + * change only the output timebase, while the timebase of the + * input link is assumed to be an unchangeable property. + */ + AVRational time_base; + + struct AVFilterPool *pool; +}; + +/** + * Link two filters together. + * + * @param src the source filter + * @param srcpad index of the output pad on the source filter + * @param dst the destination filter + * @param dstpad index of the input pad on the destination filter + * @return zero on success + */ +int avfilter_link(AVFilterContext *src, unsigned srcpad, + AVFilterContext *dst, unsigned dstpad); + +/** + * Free the link in *link, and set its pointer to NULL. + */ +void avfilter_link_free(AVFilterLink **link); + +/** + * Negotiate the media format, dimensions, etc of all inputs to a filter. + * + * @param filter the filter to negotiate the properties for its inputs + * @return zero on successful negotiation + */ +int avfilter_config_links(AVFilterContext *filter); + +/** + * Request a picture buffer with a specific set of permissions. + * + * @param link the output link to the filter from which the buffer will + * be requested + * @param perms the required access permissions + * @param w the minimum width of the buffer to allocate + * @param h the minimum height of the buffer to allocate + * @return A reference to the buffer. This must be unreferenced with + * avfilter_unref_buffer when you are finished with it. + */ +AVFilterBufferRef *avfilter_get_video_buffer(AVFilterLink *link, int perms, + int w, int h); + +/** + * Create a buffer reference wrapped around an already allocated image + * buffer. + * + * @param data pointers to the planes of the image to reference + * @param linesize linesizes for the planes of the image to reference + * @param perms the required access permissions + * @param w the width of the image specified by the data and linesize arrays + * @param h the height of the image specified by the data and linesize arrays + * @param format the pixel format of the image specified by the data and linesize arrays + */ +AVFilterBufferRef * +avfilter_get_video_buffer_ref_from_arrays(uint8_t * const data[4], const int linesize[4], int perms, + int w, int h, enum PixelFormat format); + +/** + * Request an audio samples buffer with a specific set of permissions. + * + * @param link the output link to the filter from which the buffer will + * be requested + * @param perms the required access permissions + * @param nb_samples the number of samples per channel + * @return A reference to the samples. This must be unreferenced with + * avfilter_unref_buffer when you are finished with it. + */ +AVFilterBufferRef *avfilter_get_audio_buffer(AVFilterLink *link, int perms, + int nb_samples); + +/** + * Create an audio buffer reference wrapped around an already + * allocated samples buffer. + * + * @param data pointers to the samples plane buffers + * @param linesize linesize for the samples plane buffers + * @param perms the required access permissions + * @param nb_samples number of samples per channel + * @param sample_fmt the format of each sample in the buffer to allocate + * @param channel_layout the channel layout of the buffer + * @param planar audio data layout - planar or packed + */ +AVFilterBufferRef * +avfilter_get_audio_buffer_ref_from_arrays(uint8_t *data[8], int linesize[8], int perms, + int nb_samples, enum AVSampleFormat sample_fmt, + uint64_t channel_layout, int planar); +/** + * Request an input frame from the filter at the other end of the link. + * + * @param link the input link + * @return zero on success + */ +int avfilter_request_frame(AVFilterLink *link); + +/** + * Poll a frame from the filter chain. + * + * @param link the input link + * @return the number of immediately available frames, a negative + * number in case of error + */ +int avfilter_poll_frame(AVFilterLink *link); + +/** + * Notify the next filter of the start of a frame. + * + * @param link the output link the frame will be sent over + * @param picref A reference to the frame about to be sent. The data for this + * frame need only be valid once draw_slice() is called for that + * portion. The receiving filter will free this reference when + * it no longer needs it. + */ +void avfilter_start_frame(AVFilterLink *link, AVFilterBufferRef *picref); + +/** + * Notify the next filter that the current frame has finished. + * + * @param link the output link the frame was sent over + */ +void avfilter_end_frame(AVFilterLink *link); + +/** + * Send a slice to the next filter. + * + * Slices have to be provided in sequential order, either in + * top-bottom or bottom-top order. If slices are provided in + * non-sequential order the behavior of the function is undefined. + * + * @param link the output link over which the frame is being sent + * @param y offset in pixels from the top of the image for this slice + * @param h height of this slice in pixels + * @param slice_dir the assumed direction for sending slices, + * from the top slice to the bottom slice if the value is 1, + * from the bottom slice to the top slice if the value is -1, + * for other values the behavior of the function is undefined. + */ +void avfilter_draw_slice(AVFilterLink *link, int y, int h, int slice_dir); + +#define AVFILTER_CMD_FLAG_ONE 1 ///< Stop once a filter understood the command (for target=all for example), fast filters are favored automatically +#define AVFILTER_CMD_FLAG_FAST 2 ///< Only execute command when its fast (like a video out that supports contrast adjustment in hw) + +/** + * Make the filter instance process a command. + * It is recommended to use avfilter_graph_send_command(). + */ +int avfilter_process_command(AVFilterContext *filter, const char *cmd, const char *arg, char *res, int res_len, int flags); + +/** + * Send a buffer of audio samples to the next filter. + * + * @param link the output link over which the audio samples are being sent + * @param samplesref a reference to the buffer of audio samples being sent. The + * receiving filter will free this reference when it no longer + * needs it or pass it on to the next filter. + */ +void avfilter_filter_samples(AVFilterLink *link, AVFilterBufferRef *samplesref); + +/** Initialize the filter system. Register all built-in filters. */ +void avfilter_register_all(void); + +/** Uninitialize the filter system. Unregister all filters. */ +void avfilter_uninit(void); + +/** + * Register a filter. This is only needed if you plan to use + * avfilter_get_by_name later to lookup the AVFilter structure by name. A + * filter can still by instantiated with avfilter_open even if it is not + * registered. + * + * @param filter the filter to register + * @return 0 if the registration was successful, a negative value + * otherwise + */ +int avfilter_register(AVFilter *filter); + +/** + * Get a filter definition matching the given name. + * + * @param name the filter name to find + * @return the filter definition, if any matching one is registered. + * NULL if none found. + */ +AVFilter *avfilter_get_by_name(const char *name); + +/** + * If filter is NULL, returns a pointer to the first registered filter pointer, + * if filter is non-NULL, returns the next pointer after filter. + * If the returned pointer points to NULL, the last registered filter + * was already reached. + */ +AVFilter **av_filter_next(AVFilter **filter); + +/** + * Create a filter instance. + * + * @param filter_ctx put here a pointer to the created filter context + * on success, NULL on failure + * @param filter the filter to create an instance of + * @param inst_name Name to give to the new instance. Can be NULL for none. + * @return >= 0 in case of success, a negative error code otherwise + */ +int avfilter_open(AVFilterContext **filter_ctx, AVFilter *filter, const char *inst_name); + +/** + * Initialize a filter. + * + * @param filter the filter to initialize + * @param args A string of parameters to use when initializing the filter. + * The format and meaning of this string varies by filter. + * @param opaque Any extra non-string data needed by the filter. The meaning + * of this parameter varies by filter. + * @return zero on success + */ +int avfilter_init_filter(AVFilterContext *filter, const char *args, void *opaque); + +/** + * Free a filter context. + * + * @param filter the filter to free + */ +void avfilter_free(AVFilterContext *filter); + +/** + * Insert a filter in the middle of an existing link. + * + * @param link the link into which the filter should be inserted + * @param filt the filter to be inserted + * @param filt_srcpad_idx the input pad on the filter to connect + * @param filt_dstpad_idx the output pad on the filter to connect + * @return zero on success + */ +int avfilter_insert_filter(AVFilterLink *link, AVFilterContext *filt, + unsigned filt_srcpad_idx, unsigned filt_dstpad_idx); + +/** + * Insert a new pad. + * + * @param idx Insertion point. Pad is inserted at the end if this point + * is beyond the end of the list of pads. + * @param count Pointer to the number of pads in the list + * @param padidx_off Offset within an AVFilterLink structure to the element + * to increment when inserting a new pad causes link + * numbering to change + * @param pads Pointer to the pointer to the beginning of the list of pads + * @param links Pointer to the pointer to the beginning of the list of links + * @param newpad The new pad to add. A copy is made when adding. + */ +void avfilter_insert_pad(unsigned idx, unsigned *count, size_t padidx_off, + AVFilterPad **pads, AVFilterLink ***links, + AVFilterPad *newpad); + +/** Insert a new input pad for the filter. */ +static inline void avfilter_insert_inpad(AVFilterContext *f, unsigned index, + AVFilterPad *p) +{ + avfilter_insert_pad(index, &f->input_count, offsetof(AVFilterLink, dstpad), + &f->input_pads, &f->inputs, p); +} + +/** Insert a new output pad for the filter. */ +static inline void avfilter_insert_outpad(AVFilterContext *f, unsigned index, + AVFilterPad *p) +{ + avfilter_insert_pad(index, &f->output_count, offsetof(AVFilterLink, srcpad), + &f->output_pads, &f->outputs, p); +} + +#endif /* AVFILTER_AVFILTER_H */ diff --git a/Externals/ffmpeg/include/libavfilter/avfiltergraph.h b/Externals/ffmpeg/include/libavfilter/avfiltergraph.h new file mode 100644 index 00000000..375ab8ef --- /dev/null +++ b/Externals/ffmpeg/include/libavfilter/avfiltergraph.h @@ -0,0 +1,184 @@ +/* + * Filter graphs + * copyright (c) 2007 Bobby Bingham + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVFILTER_AVFILTERGRAPH_H +#define AVFILTER_AVFILTERGRAPH_H + +#include "avfilter.h" + +typedef struct AVFilterGraph { + unsigned filter_count; + AVFilterContext **filters; + + char *scale_sws_opts; ///< sws options to use for the auto-inserted scale filters +} AVFilterGraph; + +/** + * Allocate a filter graph. + */ +AVFilterGraph *avfilter_graph_alloc(void); + +/** + * Get a filter instance with name name from graph. + * + * @return the pointer to the found filter instance or NULL if it + * cannot be found. + */ +AVFilterContext *avfilter_graph_get_filter(AVFilterGraph *graph, char *name); + +/** + * Add an existing filter instance to a filter graph. + * + * @param graphctx the filter graph + * @param filter the filter to be added + */ +int avfilter_graph_add_filter(AVFilterGraph *graphctx, AVFilterContext *filter); + +/** + * Create and add a filter instance into an existing graph. + * The filter instance is created from the filter filt and inited + * with the parameters args and opaque. + * + * In case of success put in *filt_ctx the pointer to the created + * filter instance, otherwise set *filt_ctx to NULL. + * + * @param name the instance name to give to the created filter instance + * @param graph_ctx the filter graph + * @return a negative AVERROR error code in case of failure, a non + * negative value otherwise + */ +int avfilter_graph_create_filter(AVFilterContext **filt_ctx, AVFilter *filt, + const char *name, const char *args, void *opaque, + AVFilterGraph *graph_ctx); + +/** + * Check validity and configure all the links and formats in the graph. + * + * @param graphctx the filter graph + * @param log_ctx context used for logging + * @return 0 in case of success, a negative AVERROR code otherwise + */ +int avfilter_graph_config(AVFilterGraph *graphctx, void *log_ctx); + +/** + * Free a graph, destroy its links, and set *graph to NULL. + * If *graph is NULL, do nothing. + */ +void avfilter_graph_free(AVFilterGraph **graph); + +/** + * A linked-list of the inputs/outputs of the filter chain. + * + * This is mainly useful for avfilter_graph_parse(), since this + * function may accept a description of a graph with not connected + * input/output pads. This struct specifies, per each not connected + * pad contained in the graph, the filter context and the pad index + * required for establishing a link. + */ +typedef struct AVFilterInOut { + /** unique name for this input/output in the list */ + char *name; + + /** filter context associated to this input/output */ + AVFilterContext *filter_ctx; + + /** index of the filt_ctx pad to use for linking */ + int pad_idx; + + /** next input/input in the list, NULL if this is the last */ + struct AVFilterInOut *next; +} AVFilterInOut; + +/** + * Create an AVFilterInOut. + * Must be free with avfilter_inout_free(). + */ +AVFilterInOut *avfilter_inout_alloc(void); + +/** + * Free the AVFilterInOut in *inout, and set its pointer to NULL. + * If *inout is NULL, do nothing. + */ +void avfilter_inout_free(AVFilterInOut **inout); + +/** + * Add a graph described by a string to a graph. + * + * @param graph the filter graph where to link the parsed graph context + * @param filters string to be parsed + * @param inputs pointer to a linked list to the inputs of the graph, may be NULL. + * If non-NULL, *inputs is updated to contain the list of open inputs + * after the parsing, should be freed with avfilter_inout_free(). + * @param outputs pointer to a linked list to the outputs of the graph, may be NULL. + * If non-NULL, *outputs is updated to contain the list of open outputs + * after the parsing, should be freed with avfilter_inout_free(). + * @return non negative on success, a negative AVERROR code on error + */ +int avfilter_graph_parse(AVFilterGraph *graph, const char *filters, + AVFilterInOut **inputs, AVFilterInOut **outputs, + void *log_ctx); + +/** + * Send a command to one or more filter instances. + * + * @param graph the filter graph + * @param target the filter(s) to which the command should be sent + * "all" sends to all filters + * otherwise it can be a filter or filter instance name + * which will send the command to all matching filters. + * @param cmd the command to sent, for handling simplicity all commands must be alphanumeric only + * @param arg the argument for the command + * @param res a buffer with size res_size where the filter(s) can return a response. + * + * @returns >=0 on success otherwise an error code. + * AVERROR(ENOSYS) on unsupported commands + */ +int avfilter_graph_send_command(AVFilterGraph *graph, const char *target, const char *cmd, const char *arg, char *res, int res_len, int flags); + +/** + * Queue a command for one or more filter instances. + * + * @param graph the filter graph + * @param target the filter(s) to which the command should be sent + * "all" sends to all filters + * otherwise it can be a filter or filter instance name + * which will send the command to all matching filters. + * @param cmd the command to sent, for handling simplicity all commands must be alphanummeric only + * @param arg the argument for the command + * @param ts time at which the command should be sent to the filter + * + * @note As this executes commands after this function returns, no return code + * from the filter is provided, also AVFILTER_CMD_FLAG_ONE is not supported. + */ +int avfilter_graph_queue_command(AVFilterGraph *graph, const char *target, const char *cmd, const char *arg, int flags, double ts); + + +/** + * Dump a graph into a human-readable string representation. + * + * @param graph the graph to dump + * @param options formatting options; currently ignored + * @return a string, or NULL in case of memory allocation failure; + * the string must be freed using av_free + */ +char *avfilter_graph_dump(AVFilterGraph *graph, const char *options); + +#endif /* AVFILTER_AVFILTERGRAPH_H */ diff --git a/Externals/ffmpeg/include/libavfilter/buffersink.h b/Externals/ffmpeg/include/libavfilter/buffersink.h new file mode 100644 index 00000000..73926a45 --- /dev/null +++ b/Externals/ffmpeg/include/libavfilter/buffersink.h @@ -0,0 +1,94 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVFILTER_VSINK_BUFFER_H +#define AVFILTER_VSINK_BUFFER_H + +/** + * @file + * memory buffer sink API for audio and video + */ + +#include "avfilter.h" + +/** + * Struct to use for initializing a buffersink context. + */ +typedef struct { + const enum PixelFormat *pixel_fmts; ///< list of allowed pixel formats, terminated by PIX_FMT_NONE +} AVBufferSinkParams; + +/** + * Create an AVBufferSinkParams structure. + * + * Must be freed with av_free(). + */ +AVBufferSinkParams *av_buffersink_params_alloc(void); + +/** + * Struct to use for initializing an abuffersink context. + */ +typedef struct { + const enum AVSampleFormat *sample_fmts; ///< list of allowed sample formats, terminated by AV_SAMPLE_FMT_NONE + const int64_t *channel_layouts; ///< list of allowed channel layouts, terminated by -1 + const int *packing_fmts; ///< list of allowed packing formats +} AVABufferSinkParams; + +/** + * Create an AVABufferSinkParams structure. + * + * Must be freed with av_free(). + */ +AVABufferSinkParams *av_abuffersink_params_alloc(void); + +/** + * Tell av_buffersink_get_buffer_ref() to read video/samples buffer + * reference, but not remove it from the buffer. This is useful if you + * need only to read a video/samples buffer, without to fetch it. + */ +#define AV_BUFFERSINK_FLAG_PEEK 1 + +/** + * Get an audio/video buffer data from buffer_sink and put it in bufref. + * + * This function works with both audio and video buffer sinks. + * + * @param buffer_sink pointer to a buffersink or abuffersink context + * @param flags a combination of AV_BUFFERSINK_FLAG_* flags + * @return >= 0 in case of success, a negative AVERROR code in case of + * failure + */ +int av_buffersink_get_buffer_ref(AVFilterContext *buffer_sink, + AVFilterBufferRef **bufref, int flags); + + +/** + * Get the number of immediately available frames. + */ +int av_buffersink_poll_frame(AVFilterContext *ctx); + +#if FF_API_OLD_VSINK_API +/** + * @deprecated Use av_buffersink_get_buffer_ref() instead. + */ +attribute_deprecated +int av_vsink_buffer_get_video_buffer_ref(AVFilterContext *buffer_sink, + AVFilterBufferRef **picref, int flags); +#endif + +#endif /* AVFILTER_VSINK_BUFFER_H */ diff --git a/Externals/ffmpeg/include/libavfilter/version.h b/Externals/ffmpeg/include/libavfilter/version.h new file mode 100644 index 00000000..60e496dc --- /dev/null +++ b/Externals/ffmpeg/include/libavfilter/version.h @@ -0,0 +1,43 @@ +/* + * Version macros. + * + * This file is part of Libav. + * + * Libav is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * Libav 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with Libav; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVFILTER_VERSION_H +#define AVFILTER_VERSION_H + +/** + * @file + * Libavfilter version macros + */ + +#include "libavutil/avutil.h" + +#define LIBAVFILTER_VERSION_MAJOR 2 +#define LIBAVFILTER_VERSION_MINOR 60 +#define LIBAVFILTER_VERSION_MICRO 100 + +#define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \ + LIBAVFILTER_VERSION_MINOR, \ + LIBAVFILTER_VERSION_MICRO) +#define LIBAVFILTER_VERSION AV_VERSION(LIBAVFILTER_VERSION_MAJOR, \ + LIBAVFILTER_VERSION_MINOR, \ + LIBAVFILTER_VERSION_MICRO) +#define LIBAVFILTER_BUILD LIBAVFILTER_VERSION_INT + +#endif // AVFILTER_VERSION_H diff --git a/Externals/ffmpeg/include/libavfilter/vsrc_buffer.h b/Externals/ffmpeg/include/libavfilter/vsrc_buffer.h new file mode 100644 index 00000000..b661d414 --- /dev/null +++ b/Externals/ffmpeg/include/libavfilter/vsrc_buffer.h @@ -0,0 +1,49 @@ +/* + * Copyright (c) 2008 Vitor Sessak + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVFILTER_VSRC_BUFFER_H +#define AVFILTER_VSRC_BUFFER_H + +/** + * @file + * memory buffer source API for video + */ + +#include "avfilter.h" + +/** + * Tell av_vsrc_buffer_add_video_buffer_ref() to overwrite the already + * cached video buffer with the new added one, otherwise the function + * will complain and exit. + */ +#define AV_VSRC_BUF_FLAG_OVERWRITE 1 + +/** + * Add video buffer data in picref to buffer_src. + * + * @param buffer_src pointer to a buffer source context + * @param flags a combination of AV_VSRC_BUF_FLAG_* flags + * @return >= 0 in case of success, a negative AVERROR code in case of + * failure + */ +int av_vsrc_buffer_add_video_buffer_ref(AVFilterContext *buffer_src, + AVFilterBufferRef *picref, int flags); + +#endif /* AVFILTER_VSRC_BUFFER_H */ diff --git a/Externals/ffmpeg/include/libavformat/avformat.h b/Externals/ffmpeg/include/libavformat/avformat.h new file mode 100644 index 00000000..c28d1ddb --- /dev/null +++ b/Externals/ffmpeg/include/libavformat/avformat.h @@ -0,0 +1,2154 @@ +/* + * copyright (c) 2001 Fabrice Bellard + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVFORMAT_AVFORMAT_H +#define AVFORMAT_AVFORMAT_H + +/** + * @file + * @ingroup libavf + * Main libavformat public API header + */ + +/** + * @defgroup libavf I/O and Muxing/Demuxing Library + * @{ + * + * Libavformat (lavf) is a library for dealing with various media container + * formats. Its main two purposes are demuxing - i.e. splitting a media file + * into component streams, and the reverse process of muxing - writing supplied + * data in a specified container format. It also has an @ref lavf_io + * "I/O module" which supports a number of protocols for accessing the data (e.g. + * file, tcp, http and others). Before using lavf, you need to call + * av_register_all() to register all compiled muxers, demuxers and protocols. + * Unless you are absolutely sure you won't use libavformat's network + * capabilities, you should also call avformat_network_init(). + * + * A supported input format is described by an AVInputFormat struct, conversely + * an output format is described by AVOutputFormat. You can iterate over all + * registered input/output formats using the av_iformat_next() / + * av_oformat_next() functions. The protocols layer is not part of the public + * API, so you can only get the names of supported protocols with the + * avio_enum_protocols() function. + * + * Main lavf structure used for both muxing and demuxing is AVFormatContext, + * which exports all information about the file being read or written. As with + * most Libav structures, its size is not part of public ABI, so it cannot be + * allocated on stack or directly with av_malloc(). To create an + * AVFormatContext, use avformat_alloc_context() (some functions, like + * avformat_open_input() might do that for you). + * + * Most importantly an AVFormatContext contains: + * @li the @ref AVFormatContext.iformat "input" or @ref AVFormatContext.oformat + * "output" format. It is either autodetected or set by user for input; + * always set by user for output. + * @li an @ref AVFormatContext.streams "array" of AVStreams, which describe all + * elementary streams stored in the file. AVStreams are typically referred to + * using their index in this array. + * @li an @ref AVFormatContext.pb "I/O context". It is either opened by lavf or + * set by user for input, always set by user for output (unless you are dealing + * with an AVFMT_NOFILE format). + * + * @defgroup lavf_decoding Demuxing + * @{ + * Demuxers read a media file and split it into chunks of data (@em packets). A + * @ref AVPacket "packet" contains one or more frames which belong a single + * elementary stream. In lavf API this process is represented by the + * avformat_open_input() function for opening a file, av_read_frame() for + * reading a single packet and finally avformat_close_input(), which does the + * cleanup. + * + * @section lavf_decoding_open Opening a media file + * The minimum information required to open a file is its URL or filename, which + * is passed to avformat_open_input(), as in the following code: + * @code + * const char *url = "in.mp3"; + * AVFormatContext *s = NULL; + * int ret = avformat_open_input(&s, url, NULL, NULL); + * if (ret < 0) + * abort(); + * @endcode + * The above code attempts to allocate an AVFormatContext, open the + * specified file (autodetecting the format) and read the header, exporting the + * information stored there into s. Some formats do not have a header or do not + * store enough information there, so it is recommended that you call the + * avformat_find_stream_info() function which tries to read and decode a few + * frames to find missing information. + * + * In some cases you might want to preallocate an AVFormatContext yourself with + * avformat_alloc_context() and do some tweaking on it before passing it to + * avformat_open_input(). One such case is when you want to use custom functions + * for reading input data instead of lavf internal I/O layer. + * To do that, create your own AVIOContext with avio_alloc_context(), passing + * your reading callbacks to it. Then set the @em pb field of your + * AVFormatContext to newly created AVIOContext. + * + * After you have finished reading the file, you must close it with + * avformat_close_input(). It will free everything associated with the file. + * + * @section lavf_decoding_read Reading from an opened file + * + * @section lavf_decoding_seek Seeking + * @} + * + * @defgroup lavf_encoding Muxing + * @{ + * @} + * + * @defgroup lavf_io I/O Read/Write + * @{ + * @} + * + * @defgroup lavf_codec Demuxers + * @{ + * @defgroup lavf_codec_native Native Demuxers + * @{ + * @} + * @defgroup lavf_codec_wrappers External library wrappers + * @{ + * @} + * @} + * @defgroup lavf_protos I/O Protocols + * @{ + * @} + * @defgroup lavf_internal Internal + * @{ + * @} + * @} + * + */ + +#include +#include /* FILE */ +#include "libavcodec/avcodec.h" +#include "libavutil/dict.h" +#include "libavutil/log.h" + +#include "avio.h" +#include "libavformat/version.h" + +struct AVFormatContext; + + +/** + * @defgroup metadata_api Public Metadata API + * @{ + * @ingroup libavf + * The metadata API allows libavformat to export metadata tags to a client + * application when demuxing. Conversely it allows a client application to + * set metadata when muxing. + * + * Metadata is exported or set as pairs of key/value strings in the 'metadata' + * fields of the AVFormatContext, AVStream, AVChapter and AVProgram structs + * using the @ref lavu_dict "AVDictionary" API. Like all strings in FFmpeg, + * metadata is assumed to be UTF-8 encoded Unicode. Note that metadata + * exported by demuxers isn't checked to be valid UTF-8 in most cases. + * + * Important concepts to keep in mind: + * - Keys are unique; there can never be 2 tags with the same key. This is + * also meant semantically, i.e., a demuxer should not knowingly produce + * several keys that are literally different but semantically identical. + * E.g., key=Author5, key=Author6. In this example, all authors must be + * placed in the same tag. + * - Metadata is flat, not hierarchical; there are no subtags. If you + * want to store, e.g., the email address of the child of producer Alice + * and actor Bob, that could have key=alice_and_bobs_childs_email_address. + * - Several modifiers can be applied to the tag name. This is done by + * appending a dash character ('-') and the modifier name in the order + * they appear in the list below -- e.g. foo-eng-sort, not foo-sort-eng. + * - language -- a tag whose value is localized for a particular language + * is appended with the ISO 639-2/B 3-letter language code. + * For example: Author-ger=Michael, Author-eng=Mike + * The original/default language is in the unqualified "Author" tag. + * A demuxer should set a default if it sets any translated tag. + * - sorting -- a modified version of a tag that should be used for + * sorting will have '-sort' appended. E.g. artist="The Beatles", + * artist-sort="Beatles, The". + * + * - Demuxers attempt to export metadata in a generic format, however tags + * with no generic equivalents are left as they are stored in the container. + * Follows a list of generic tag names: + * + @verbatim + album -- name of the set this work belongs to + album_artist -- main creator of the set/album, if different from artist. + e.g. "Various Artists" for compilation albums. + artist -- main creator of the work + comment -- any additional description of the file. + composer -- who composed the work, if different from artist. + copyright -- name of copyright holder. + creation_time-- date when the file was created, preferably in ISO 8601. + date -- date when the work was created, preferably in ISO 8601. + disc -- number of a subset, e.g. disc in a multi-disc collection. + encoder -- name/settings of the software/hardware that produced the file. + encoded_by -- person/group who created the file. + filename -- original name of the file. + genre -- . + language -- main language in which the work is performed, preferably + in ISO 639-2 format. Multiple languages can be specified by + separating them with commas. + performer -- artist who performed the work, if different from artist. + E.g for "Also sprach Zarathustra", artist would be "Richard + Strauss" and performer "London Philharmonic Orchestra". + publisher -- name of the label/publisher. + service_name -- name of the service in broadcasting (channel name). + service_provider -- name of the service provider in broadcasting. + title -- name of the work. + track -- number of this work in the set, can be in form current/total. + variant_bitrate -- the total bitrate of the bitrate variant that the current stream is part of + @endverbatim + * + * Look in the examples section for an application example how to use the Metadata API. + * + * @} + */ + +#if FF_API_OLD_METADATA2 +/** + * @defgroup old_metadata Old metadata API + * The following functions are deprecated, use + * their equivalents from libavutil/dict.h instead. + * @{ + */ + +#define AV_METADATA_MATCH_CASE AV_DICT_MATCH_CASE +#define AV_METADATA_IGNORE_SUFFIX AV_DICT_IGNORE_SUFFIX +#define AV_METADATA_DONT_STRDUP_KEY AV_DICT_DONT_STRDUP_KEY +#define AV_METADATA_DONT_STRDUP_VAL AV_DICT_DONT_STRDUP_VAL +#define AV_METADATA_DONT_OVERWRITE AV_DICT_DONT_OVERWRITE + +typedef attribute_deprecated AVDictionary AVMetadata; +typedef attribute_deprecated AVDictionaryEntry AVMetadataTag; + +typedef struct AVMetadataConv AVMetadataConv; + +/** + * Get a metadata element with matching key. + * + * @param prev Set to the previous matching element to find the next. + * If set to NULL the first matching element is returned. + * @param flags Allows case as well as suffix-insensitive comparisons. + * @return Found tag or NULL, changing key or value leads to undefined behavior. + */ +attribute_deprecated AVDictionaryEntry * +av_metadata_get(AVDictionary *m, const char *key, const AVDictionaryEntry *prev, int flags); + +/** + * Set the given tag in *pm, overwriting an existing tag. + * + * @param pm pointer to a pointer to a metadata struct. If *pm is NULL + * a metadata struct is allocated and put in *pm. + * @param key tag key to add to *pm (will be av_strduped depending on flags) + * @param value tag value to add to *pm (will be av_strduped depending on flags). + * Passing a NULL value will cause an existing tag to be deleted. + * @return >= 0 on success otherwise an error code <0 + */ +attribute_deprecated int av_metadata_set2(AVDictionary **pm, const char *key, const char *value, int flags); + +/** + * This function is provided for compatibility reason and currently does nothing. + */ +attribute_deprecated void av_metadata_conv(struct AVFormatContext *ctx, const AVMetadataConv *d_conv, + const AVMetadataConv *s_conv); + +/** + * Copy metadata from one AVDictionary struct into another. + * @param dst pointer to a pointer to a AVDictionary struct. If *dst is NULL, + * this function will allocate a struct for you and put it in *dst + * @param src pointer to source AVDictionary struct + * @param flags flags to use when setting metadata in *dst + * @note metadata is read using the AV_DICT_IGNORE_SUFFIX flag + */ +attribute_deprecated void av_metadata_copy(AVDictionary **dst, AVDictionary *src, int flags); + +/** + * Free all the memory allocated for an AVDictionary struct. + */ +attribute_deprecated void av_metadata_free(AVDictionary **m); +/** + * @} + */ +#endif + + +/* packet functions */ + + +/** + * Allocate and read the payload of a packet and initialize its + * fields with default values. + * + * @param pkt packet + * @param size desired payload size + * @return >0 (read size) if OK, AVERROR_xxx otherwise + */ +int av_get_packet(AVIOContext *s, AVPacket *pkt, int size); + + +/** + * Read data and append it to the current content of the AVPacket. + * If pkt->size is 0 this is identical to av_get_packet. + * Note that this uses av_grow_packet and thus involves a realloc + * which is inefficient. Thus this function should only be used + * when there is no reasonable way to know (an upper bound of) + * the final size. + * + * @param pkt packet + * @param size amount of data to read + * @return >0 (read size) if OK, AVERROR_xxx otherwise, previous data + * will not be lost even if an error occurs. + */ +int av_append_packet(AVIOContext *s, AVPacket *pkt, int size); + +/*************************************************/ +/* fractional numbers for exact pts handling */ + +/** + * The exact value of the fractional number is: 'val + num / den'. + * num is assumed to be 0 <= num < den. + */ +typedef struct AVFrac { + int64_t val, num, den; +} AVFrac; + +/*************************************************/ +/* input/output formats */ + +struct AVCodecTag; + +/** + * This structure contains the data a format has to probe a file. + */ +typedef struct AVProbeData { + const char *filename; + unsigned char *buf; /**< Buffer must have AVPROBE_PADDING_SIZE of extra allocated bytes filled with zero. */ + int buf_size; /**< Size of buf except extra allocated bytes */ +} AVProbeData; + +#define AVPROBE_SCORE_MAX 100 ///< maximum score, half of that is used for file-extension-based detection +#define AVPROBE_PADDING_SIZE 32 ///< extra allocated bytes at the end of the probe buffer + +typedef struct AVFormatParameters { +#if FF_API_FORMAT_PARAMETERS + attribute_deprecated AVRational time_base; + attribute_deprecated int sample_rate; + attribute_deprecated int channels; + attribute_deprecated int width; + attribute_deprecated int height; + attribute_deprecated enum PixelFormat pix_fmt; + attribute_deprecated int channel; /**< Used to select DV channel. */ + attribute_deprecated const char *standard; /**< deprecated, use demuxer-specific options instead. */ + attribute_deprecated unsigned int mpeg2ts_raw:1; /**< deprecated, use mpegtsraw demuxer */ + /**< deprecated, use mpegtsraw demuxer-specific options instead */ + attribute_deprecated unsigned int mpeg2ts_compute_pcr:1; + attribute_deprecated unsigned int initial_pause:1; /**< Do not begin to play the stream + immediately (RTSP only). */ + attribute_deprecated unsigned int prealloced_context:1; +#endif +} AVFormatParameters; + +/// Demuxer will use avio_open, no opened file should be provided by the caller. +#define AVFMT_NOFILE 0x0001 +#define AVFMT_NEEDNUMBER 0x0002 /**< Needs '%d' in filename. */ +#define AVFMT_SHOW_IDS 0x0008 /**< Show format stream IDs numbers. */ +#define AVFMT_RAWPICTURE 0x0020 /**< Format wants AVPicture structure for + raw picture data. */ +#define AVFMT_GLOBALHEADER 0x0040 /**< Format wants global header. */ +#define AVFMT_NOTIMESTAMPS 0x0080 /**< Format does not need / have any timestamps. */ +#define AVFMT_GENERIC_INDEX 0x0100 /**< Use generic index building code. */ +#define AVFMT_TS_DISCONT 0x0200 /**< Format allows timestamp discontinuities. Note, muxers always require valid (monotone) timestamps */ +#define AVFMT_VARIABLE_FPS 0x0400 /**< Format allows variable fps. */ +#define AVFMT_NODIMENSIONS 0x0800 /**< Format does not need width/height */ +#define AVFMT_NOSTREAMS 0x1000 /**< Format does not require any streams */ +#define AVFMT_NOBINSEARCH 0x2000 /**< Format does not allow to fallback to binary search via read_timestamp */ +#define AVFMT_NOGENSEARCH 0x4000 /**< Format does not allow to fallback to generic search */ +#define AVFMT_NO_BYTE_SEEK 0x8000 /**< Format does not allow seeking by bytes */ +#define AVFMT_ALLOW_FLUSH 0x10000 /**< Format allows flushing. If not set, the muxer will not receive a NULL packet in the write_packet function. */ +#define AVFMT_TS_NONSTRICT 0x8000000 /**< Format does not require strictly + increasing timestamps, but they must + still be monotonic */ + +/** + * @addtogroup lavf_encoding + * @{ + */ +typedef struct AVOutputFormat { + const char *name; + /** + * Descriptive name for the format, meant to be more human-readable + * than name. You should use the NULL_IF_CONFIG_SMALL() macro + * to define it. + */ + const char *long_name; + const char *mime_type; + const char *extensions; /**< comma-separated filename extensions */ + /** + * size of private data so that it can be allocated in the wrapper + */ + int priv_data_size; + /* output support */ + enum CodecID audio_codec; /**< default audio codec */ + enum CodecID video_codec; /**< default video codec */ + int (*write_header)(struct AVFormatContext *); + /** + * Write a packet. If AVFMT_ALLOW_FLUSH is set in flags, + * pkt can be NULL in order to flush data buffered in the muxer. + * When flushing, return 0 if there still is more data to flush, + * or 1 if everything was flushed and there is no more buffered + * data. + */ + int (*write_packet)(struct AVFormatContext *, AVPacket *pkt); + int (*write_trailer)(struct AVFormatContext *); + /** + * can use flags: AVFMT_NOFILE, AVFMT_NEEDNUMBER, AVFMT_RAWPICTURE, + * AVFMT_GLOBALHEADER, AVFMT_NOTIMESTAMPS, AVFMT_VARIABLE_FPS, + * AVFMT_NODIMENSIONS, AVFMT_NOSTREAMS, AVFMT_ALLOW_FLUSH + */ + int flags; + + void *dummy; + + int (*interleave_packet)(struct AVFormatContext *, AVPacket *out, + AVPacket *in, int flush); + + /** + * List of supported codec_id-codec_tag pairs, ordered by "better + * choice first". The arrays are all terminated by CODEC_ID_NONE. + */ + const struct AVCodecTag * const *codec_tag; + + enum CodecID subtitle_codec; /**< default subtitle codec */ + +#if FF_API_OLD_METADATA2 + const AVMetadataConv *metadata_conv; +#endif + + const AVClass *priv_class; ///< AVClass for the private context + + /** + * Test if the given codec can be stored in this container. + * + * @return 1 if the codec is supported, 0 if it is not. + * A negative number if unknown. + */ + int (*query_codec)(enum CodecID id, int std_compliance); + + void (*get_output_timestamp)(struct AVFormatContext *s, int stream, + int64_t *dts, int64_t *wall); + + /* private fields */ + struct AVOutputFormat *next; +} AVOutputFormat; +/** + * @} + */ + +/** + * @addtogroup lavf_decoding + * @{ + */ +typedef struct AVInputFormat { + /** + * A comma separated list of short names for the format. New names + * may be appended with a minor bump. + */ + const char *name; + + /** + * Descriptive name for the format, meant to be more human-readable + * than name. You should use the NULL_IF_CONFIG_SMALL() macro + * to define it. + */ + const char *long_name; + + /** + * Size of private data so that it can be allocated in the wrapper. + */ + int priv_data_size; + + /** + * Tell if a given file has a chance of being parsed as this format. + * The buffer provided is guaranteed to be AVPROBE_PADDING_SIZE bytes + * big so you do not have to check for that unless you need more. + */ + int (*read_probe)(AVProbeData *); + + /** + * Read the format header and initialize the AVFormatContext + * structure. Return 0 if OK. 'ap' if non-NULL contains + * additional parameters. Only used in raw format right + * now. 'av_new_stream' should be called to create new streams. + */ + int (*read_header)(struct AVFormatContext *, + AVFormatParameters *ap); + + /** + * Read one packet and put it in 'pkt'. pts and flags are also + * set. 'av_new_stream' can be called only if the flag + * AVFMTCTX_NOHEADER is used and only in the calling thread (not in a + * background thread). + * @return 0 on success, < 0 on error. + * When returning an error, pkt must not have been allocated + * or must be freed before returning + */ + int (*read_packet)(struct AVFormatContext *, AVPacket *pkt); + + /** + * Close the stream. The AVFormatContext and AVStreams are not + * freed by this function + */ + int (*read_close)(struct AVFormatContext *); + + /** + * Seek to a given timestamp relative to the frames in + * stream component stream_index. + * @param stream_index Must not be -1. + * @param flags Selects which direction should be preferred if no exact + * match is available. + * @return >= 0 on success (but not necessarily the new offset) + */ + int (*read_seek)(struct AVFormatContext *, + int stream_index, int64_t timestamp, int flags); + + /** + * Get the next timestamp in stream[stream_index].time_base units. + * @return the timestamp or AV_NOPTS_VALUE if an error occurred + */ + int64_t (*read_timestamp)(struct AVFormatContext *s, int stream_index, + int64_t *pos, int64_t pos_limit); + + /** + * Can use flags: AVFMT_NOFILE, AVFMT_NEEDNUMBER, AVFMT_SHOW_IDS, + * AVFMT_GENERIC_INDEX, AVFMT_TS_DISCONT, AVFMT_NOBINSEARCH, + * AVFMT_NOGENSEARCH, AVFMT_NO_BYTE_SEEK. + */ + int flags; + + /** + * If extensions are defined, then no probe is done. You should + * usually not use extension format guessing because it is not + * reliable enough + */ + const char *extensions; + + /** + * General purpose read-only value that the format can use. + */ + int value; + + /** + * Start/resume playing - only meaningful if using a network-based format + * (RTSP). + */ + int (*read_play)(struct AVFormatContext *); + + /** + * Pause playing - only meaningful if using a network-based format + * (RTSP). + */ + int (*read_pause)(struct AVFormatContext *); + + const struct AVCodecTag * const *codec_tag; + + /** + * Seek to timestamp ts. + * Seeking will be done so that the point from which all active streams + * can be presented successfully will be closest to ts and within min/max_ts. + * Active streams are all streams that have AVStream.discard < AVDISCARD_ALL. + */ + int (*read_seek2)(struct AVFormatContext *s, int stream_index, int64_t min_ts, int64_t ts, int64_t max_ts, int flags); + +#if FF_API_OLD_METADATA2 + const AVMetadataConv *metadata_conv; +#endif + + const AVClass *priv_class; ///< AVClass for the private context + + /* private fields */ + struct AVInputFormat *next; +} AVInputFormat; +/** + * @} + */ + +enum AVStreamParseType { + AVSTREAM_PARSE_NONE, + AVSTREAM_PARSE_FULL, /**< full parsing and repack */ + AVSTREAM_PARSE_HEADERS, /**< Only parse headers, do not repack. */ + AVSTREAM_PARSE_TIMESTAMPS, /**< full parsing and interpolation of timestamps for frames not starting on a packet boundary */ + AVSTREAM_PARSE_FULL_ONCE, /**< full parsing and repack of the first frame only, only implemented for H.264 currently */ +}; + +typedef struct AVIndexEntry { + int64_t pos; + int64_t timestamp; /**< + * Timestamp in AVStream.time_base units, preferably the time from which on correctly decoded frames are available + * when seeking to this entry. That means preferable PTS on keyframe based formats. + * But demuxers can choose to store a different timestamp, if it is more convenient for the implementation or nothing better + * is known + */ +#define AVINDEX_KEYFRAME 0x0001 + int flags:2; + int size:30; //Yeah, trying to keep the size of this small to reduce memory requirements (it is 24 vs. 32 bytes due to possible 8-byte alignment). + int min_distance; /**< Minimum distance between this and the previous keyframe, used to avoid unneeded searching. */ +} AVIndexEntry; + +#define AV_DISPOSITION_DEFAULT 0x0001 +#define AV_DISPOSITION_DUB 0x0002 +#define AV_DISPOSITION_ORIGINAL 0x0004 +#define AV_DISPOSITION_COMMENT 0x0008 +#define AV_DISPOSITION_LYRICS 0x0010 +#define AV_DISPOSITION_KARAOKE 0x0020 + +/** + * Track should be used during playback by default. + * Useful for subtitle track that should be displayed + * even when user did not explicitly ask for subtitles. + */ +#define AV_DISPOSITION_FORCED 0x0040 +#define AV_DISPOSITION_HEARING_IMPAIRED 0x0080 /**< stream for hearing impaired audiences */ +#define AV_DISPOSITION_VISUAL_IMPAIRED 0x0100 /**< stream for visual impaired audiences */ +#define AV_DISPOSITION_CLEAN_EFFECTS 0x0200 /**< stream without voice */ + +/** + * Stream structure. + * New fields can be added to the end with minor version bumps. + * Removal, reordering and changes to existing fields require a major + * version bump. + * sizeof(AVStream) must not be used outside libav*. + */ +typedef struct AVStream { + int index; /**< stream index in AVFormatContext */ + int id; /**< format-specific stream ID */ + AVCodecContext *codec; /**< codec context */ + /** + * Real base framerate of the stream. + * This is the lowest framerate with which all timestamps can be + * represented accurately (it is the least common multiple of all + * framerates in the stream). Note, this value is just a guess! + * For example, if the time base is 1/90000 and all frames have either + * approximately 3600 or 1800 timer ticks, then r_frame_rate will be 50/1. + */ + AVRational r_frame_rate; + void *priv_data; + +#if FF_API_REORDER_PRIVATE + /* internal data used in av_find_stream_info() */ + int64_t first_dts; +#endif + + /** + * encoding: pts generation when outputting stream + */ + struct AVFrac pts; + + /** + * This is the fundamental unit of time (in seconds) in terms + * of which frame timestamps are represented. For fixed-fps content, + * time base should be 1/framerate and timestamp increments should be 1. + * decoding: set by libavformat + * encoding: set by libavformat in av_write_header + */ + AVRational time_base; +#if FF_API_REORDER_PRIVATE + int pts_wrap_bits; /**< number of bits in pts (used for wrapping control) */ +#endif +#if FF_API_STREAM_COPY + /* ffmpeg.c private use */ + attribute_deprecated int stream_copy; /**< If set, just copy stream. */ +#endif + enum AVDiscard discard; ///< Selects which packets can be discarded at will and do not need to be demuxed. + +#if FF_API_AVSTREAM_QUALITY + //FIXME move stuff to a flags field? + /** + * Quality, as it has been removed from AVCodecContext and put in AVVideoFrame. + * MN: dunno if that is the right place for it + */ + attribute_deprecated float quality; +#endif + + /** + * Decoding: pts of the first frame of the stream in presentation order, in stream time base. + * Only set this if you are absolutely 100% sure that the value you set + * it to really is the pts of the first frame. + * This may be undefined (AV_NOPTS_VALUE). + * @note The ASF header does NOT contain a correct start_time the ASF + * demuxer must NOT set this. + */ + int64_t start_time; + + /** + * Decoding: duration of the stream, in stream time base. + * If a source file does not specify a duration, but does specify + * a bitrate, this value will be estimated from bitrate and file size. + */ + int64_t duration; + +#if FF_API_REORDER_PRIVATE + /* av_read_frame() support */ + enum AVStreamParseType need_parsing; + struct AVCodecParserContext *parser; + + int64_t cur_dts; + int last_IP_duration; + int64_t last_IP_pts; + /* av_seek_frame() support */ + AVIndexEntry *index_entries; /**< Only used if the format does not + support seeking natively. */ + int nb_index_entries; + unsigned int index_entries_allocated_size; +#endif + + int64_t nb_frames; ///< number of frames in this stream if known or 0 + + int disposition; /**< AV_DISPOSITION_* bit field */ + +#if FF_API_REORDER_PRIVATE + AVProbeData probe_data; +#define MAX_REORDER_DELAY 16 + int64_t pts_buffer[MAX_REORDER_DELAY+1]; +#endif + + /** + * sample aspect ratio (0 if unknown) + * - encoding: Set by user. + * - decoding: Set by libavformat. + */ + AVRational sample_aspect_ratio; + + AVDictionary *metadata; + +#if FF_API_REORDER_PRIVATE + /* Intended mostly for av_read_frame() support. Not supposed to be used by */ + /* external applications; try to use something else if at all possible. */ + const uint8_t *cur_ptr; + int cur_len; + AVPacket cur_pkt; + + // Timestamp generation support: + /** + * Timestamp corresponding to the last dts sync point. + * + * Initialized when AVCodecParserContext.dts_sync_point >= 0 and + * a DTS is received from the underlying container. Otherwise set to + * AV_NOPTS_VALUE by default. + */ + int64_t reference_dts; + + /** + * Number of packets to buffer for codec probing + * NOT PART OF PUBLIC API + */ +#define MAX_PROBE_PACKETS 2500 + int probe_packets; + + /** + * last packet in packet_buffer for this stream when muxing. + * Used internally, NOT PART OF PUBLIC API, do not read or + * write from outside of libav* + */ + struct AVPacketList *last_in_packet_buffer; +#endif + + /** + * Average framerate + */ + AVRational avg_frame_rate; + + /***************************************************************** + * All fields below this line are not part of the public API. They + * may not be used outside of libavformat and can be changed and + * removed at will. + * New public fields should be added right above. + ***************************************************************** + */ + + /** + * Number of frames that have been demuxed during av_find_stream_info() + */ + int codec_info_nb_frames; + + /** + * Stream Identifier + * This is the MPEG-TS stream identifier +1 + * 0 means unknown + */ + int stream_identifier; + + int64_t interleaver_chunk_size; + int64_t interleaver_chunk_duration; + + /** + * Stream information used internally by av_find_stream_info() + */ +#define MAX_STD_TIMEBASES (60*12+5) + struct { + int64_t last_dts; + int64_t duration_gcd; + int duration_count; + double duration_error[2][2][MAX_STD_TIMEBASES]; + int64_t codec_info_duration; + int nb_decoded_frames; + } *info; + + /** + * flag to indicate that probing is requested + * NOT PART OF PUBLIC API + */ + int request_probe; +#if !FF_API_REORDER_PRIVATE + const uint8_t *cur_ptr; + int cur_len; + AVPacket cur_pkt; + + // Timestamp generation support: + /** + * Timestamp corresponding to the last dts sync point. + * + * Initialized when AVCodecParserContext.dts_sync_point >= 0 and + * a DTS is received from the underlying container. Otherwise set to + * AV_NOPTS_VALUE by default. + */ + int64_t reference_dts; + int64_t first_dts; + int64_t cur_dts; + int last_IP_duration; + int64_t last_IP_pts; + + /** + * Number of packets to buffer for codec probing + */ +#define MAX_PROBE_PACKETS 2500 + int probe_packets; + + /** + * last packet in packet_buffer for this stream when muxing. + */ + struct AVPacketList *last_in_packet_buffer; + AVProbeData probe_data; +#define MAX_REORDER_DELAY 16 + int64_t pts_buffer[MAX_REORDER_DELAY+1]; + /* av_read_frame() support */ + enum AVStreamParseType need_parsing; + struct AVCodecParserContext *parser; + + AVIndexEntry *index_entries; /**< Only used if the format does not + support seeking natively. */ + int nb_index_entries; + unsigned int index_entries_allocated_size; + + int pts_wrap_bits; /**< number of bits in pts (used for wrapping control) */ +#endif +} AVStream; + +#define AV_PROGRAM_RUNNING 1 + +/** + * New fields can be added to the end with minor version bumps. + * Removal, reordering and changes to existing fields require a major + * version bump. + * sizeof(AVProgram) must not be used outside libav*. + */ +typedef struct AVProgram { + int id; + int flags; + enum AVDiscard discard; ///< selects which program to discard and which to feed to the caller + unsigned int *stream_index; + unsigned int nb_stream_indexes; + AVDictionary *metadata; + + int program_num; + int pmt_pid; + int pcr_pid; +} AVProgram; + +#define AVFMTCTX_NOHEADER 0x0001 /**< signal that no header is present + (streams are added dynamically) */ + +typedef struct AVChapter { + int id; ///< unique ID to identify the chapter + AVRational time_base; ///< time base in which the start/end timestamps are specified + int64_t start, end; ///< chapter start/end time in time_base units + AVDictionary *metadata; +} AVChapter; + +/** + * Format I/O context. + * New fields can be added to the end with minor version bumps. + * Removal, reordering and changes to existing fields require a major + * version bump. + * sizeof(AVFormatContext) must not be used outside libav*, use + * avformat_alloc_context() to create an AVFormatContext. + */ +typedef struct AVFormatContext { + /** + * A class for logging and AVOptions. Set by avformat_alloc_context(). + * Exports (de)muxer private options if they exist. + */ + const AVClass *av_class; + + /** + * Can only be iformat or oformat, not both at the same time. + * + * decoding: set by avformat_open_input(). + * encoding: set by the user. + */ + struct AVInputFormat *iformat; + struct AVOutputFormat *oformat; + + /** + * Format private data. This is an AVOptions-enabled struct + * if and only if iformat/oformat.priv_class is not NULL. + */ + void *priv_data; + + /* + * I/O context. + * + * decoding: either set by the user before avformat_open_input() (then + * the user must close it manually) or set by avformat_open_input(). + * encoding: set by the user. + * + * Do NOT set this field if AVFMT_NOFILE flag is set in + * iformat/oformat.flags. In such a case, the (de)muxer will handle + * I/O in some other way and this field will be NULL. + */ + AVIOContext *pb; + + /** + * A list of all streams in the file. New streams are created with + * avformat_new_stream(). + * + * decoding: streams are created by libavformat in avformat_open_input(). + * If AVFMTCTX_NOHEADER is set in ctx_flags, then new streams may also + * appear in av_read_frame(). + * encoding: streams are created by the user before avformat_write_header(). + */ + unsigned int nb_streams; + AVStream **streams; + + char filename[1024]; /**< input or output filename */ + /* stream info */ +#if FF_API_TIMESTAMP + /** + * @deprecated use 'creation_time' metadata tag instead + */ + attribute_deprecated int64_t timestamp; +#endif + + int ctx_flags; /**< Format-specific flags, see AVFMTCTX_xx */ +#if FF_API_REORDER_PRIVATE + /* private data for pts handling (do not modify directly). */ + /** + * This buffer is only needed when packets were already buffered but + * not decoded, for example to get the codec parameters in MPEG + * streams. + */ + struct AVPacketList *packet_buffer; +#endif + + /** + * Decoding: position of the first frame of the component, in + * AV_TIME_BASE fractional seconds. NEVER set this value directly: + * It is deduced from the AVStream values. + */ + int64_t start_time; + + /** + * Decoding: duration of the stream, in AV_TIME_BASE fractional + * seconds. Only set this value if you know none of the individual stream + * durations and also do not set any of them. This is deduced from the + * AVStream values if not set. + */ + int64_t duration; + +#if FF_API_FILESIZE + /** + * decoding: total file size, 0 if unknown + */ + attribute_deprecated int64_t file_size; +#endif + + /** + * Decoding: total stream bitrate in bit/s, 0 if not + * available. Never set it directly if the file_size and the + * duration are known as FFmpeg can compute it automatically. + */ + int bit_rate; + +#if FF_API_REORDER_PRIVATE + /* av_read_frame() support */ + AVStream *cur_st; + + /* av_seek_frame() support */ + int64_t data_offset; /**< offset of the first packet */ +#endif + +#if FF_API_MUXRATE + /** + * use mpeg muxer private options instead + */ + attribute_deprecated int mux_rate; +#endif + unsigned int packet_size; +#if FF_API_PRELOAD + attribute_deprecated int preload; +#endif + int max_delay; + +#if FF_API_LOOP_OUTPUT +#define AVFMT_NOOUTPUTLOOP -1 +#define AVFMT_INFINITEOUTPUTLOOP 0 + /** + * number of times to loop output in formats that support it + * + * @deprecated use the 'loop' private option in the gif muxer. + */ + attribute_deprecated int loop_output; +#endif + + int flags; +#define AVFMT_FLAG_GENPTS 0x0001 ///< Generate missing pts even if it requires parsing future frames. +#define AVFMT_FLAG_IGNIDX 0x0002 ///< Ignore index. +#define AVFMT_FLAG_NONBLOCK 0x0004 ///< Do not block when reading packets from input. +#define AVFMT_FLAG_IGNDTS 0x0008 ///< Ignore DTS on frames that contain both DTS & PTS +#define AVFMT_FLAG_NOFILLIN 0x0010 ///< Do not infer any values from other values, just return what is stored in the container +#define AVFMT_FLAG_NOPARSE 0x0020 ///< Do not use AVParsers, you also must set AVFMT_FLAG_NOFILLIN as the fillin code works on frames and no parsing -> no frames. Also seeking to frames can not work if parsing to find frame boundaries has been disabled +#if FF_API_FLAG_RTP_HINT +#define AVFMT_FLAG_RTP_HINT 0x0040 ///< Deprecated, use the -movflags rtphint muxer specific AVOption instead +#endif +#define AVFMT_FLAG_CUSTOM_IO 0x0080 ///< The caller has supplied a custom AVIOContext, don't avio_close() it. +#define AVFMT_FLAG_DISCARD_CORRUPT 0x0100 ///< Discard frames marked corrupted +#define AVFMT_FLAG_MP4A_LATM 0x8000 ///< Enable RTP MP4A-LATM payload +#define AVFMT_FLAG_SORT_DTS 0x10000 ///< try to interleave outputted packets by dts (using this flag can slow demuxing down) +#define AVFMT_FLAG_PRIV_OPT 0x20000 ///< Enable use of private options by delaying codec open (this could be made default once all code is converted) +#define AVFMT_FLAG_KEEP_SIDE_DATA 0x40000 ///< Dont merge side data but keep it seperate. + +#if FF_API_LOOP_INPUT + /** + * @deprecated, use the 'loop' img2 demuxer private option. + */ + attribute_deprecated int loop_input; +#endif + + /** + * decoding: size of data to probe; encoding: unused. + */ + unsigned int probesize; + + /** + * decoding: maximum time (in AV_TIME_BASE units) during which the input should + * be analyzed in avformat_find_stream_info(). + */ + int max_analyze_duration; + + const uint8_t *key; + int keylen; + + unsigned int nb_programs; + AVProgram **programs; + + /** + * Forced video codec_id. + * Demuxing: Set by user. + */ + enum CodecID video_codec_id; + + /** + * Forced audio codec_id. + * Demuxing: Set by user. + */ + enum CodecID audio_codec_id; + + /** + * Forced subtitle codec_id. + * Demuxing: Set by user. + */ + enum CodecID subtitle_codec_id; + + /** + * Maximum amount of memory in bytes to use for the index of each stream. + * If the index exceeds this size, entries will be discarded as + * needed to maintain a smaller size. This can lead to slower or less + * accurate seeking (depends on demuxer). + * Demuxers for which a full in-memory index is mandatory will ignore + * this. + * muxing : unused + * demuxing: set by user + */ + unsigned int max_index_size; + + /** + * Maximum amount of memory in bytes to use for buffering frames + * obtained from realtime capture devices. + */ + unsigned int max_picture_buffer; + + unsigned int nb_chapters; + AVChapter **chapters; + + /** + * Flags to enable debugging. + */ + int debug; +#define FF_FDEBUG_TS 0x0001 + +#if FF_API_REORDER_PRIVATE + /** + * Raw packets from the demuxer, prior to parsing and decoding. + * This buffer is used for buffering packets until the codec can + * be identified, as parsing cannot be done without knowing the + * codec. + */ + struct AVPacketList *raw_packet_buffer; + struct AVPacketList *raw_packet_buffer_end; + + struct AVPacketList *packet_buffer_end; +#endif + + AVDictionary *metadata; + +#if FF_API_REORDER_PRIVATE + /** + * Remaining size available for raw_packet_buffer, in bytes. + * NOT PART OF PUBLIC API + */ +#define RAW_PACKET_BUFFER_SIZE 2500000 + int raw_packet_buffer_remaining_size; +#endif + + /** + * Start time of the stream in real world time, in microseconds + * since the unix epoch (00:00 1st January 1970). That is, pts=0 + * in the stream was captured at this real world time. + * - encoding: Set by user. + * - decoding: Unused. + */ + int64_t start_time_realtime; + + /** + * decoding: number of frames used to probe fps + */ + int fps_probe_size; + + /** + * Error recognition; higher values will detect more errors but may + * misdetect some more or less valid parts as errors. + * - encoding: unused + * - decoding: Set by user. + */ + int error_recognition; + + /** + * Custom interrupt callbacks for the I/O layer. + * + * decoding: set by the user before avformat_open_input(). + * encoding: set by the user before avformat_write_header() + * (mainly useful for AVFMT_NOFILE formats). The callback + * should also be passed to avio_open2() if it's used to + * open the file. + */ + AVIOInterruptCB interrupt_callback; + + /** + * Transport stream id. + * This will be moved into demuxer private options. Thus no API/ABI compatibility + */ + int ts_id; + + /** + * Audio preload in microseconds. + * Note, not all formats support this and unpredictable things may happen if it is used when not supported. + * - encoding: Set by user via AVOptions (NO direct access) + * - decoding: unused + */ + int audio_preload; + + /** + * Max chunk time in microseconds. + * Note, not all formats support this and unpredictable things may happen if it is used when not supported. + * - encoding: Set by user via AVOptions (NO direct access) + * - decoding: unused + */ + int max_chunk_duration; + + /** + * Max chunk size in bytes + * Note, not all formats support this and unpredictable things may happen if it is used when not supported. + * - encoding: Set by user via AVOptions (NO direct access) + * - decoding: unused + */ + int max_chunk_size; + + /***************************************************************** + * All fields below this line are not part of the public API. They + * may not be used outside of libavformat and can be changed and + * removed at will. + * New public fields should be added right above. + ***************************************************************** + */ +#if !FF_API_REORDER_PRIVATE + /** + * Raw packets from the demuxer, prior to parsing and decoding. + * This buffer is used for buffering packets until the codec can + * be identified, as parsing cannot be done without knowing the + * codec. + */ + struct AVPacketList *raw_packet_buffer; + struct AVPacketList *raw_packet_buffer_end; + /** + * Remaining size available for raw_packet_buffer, in bytes. + */ +#define RAW_PACKET_BUFFER_SIZE 2500000 + int raw_packet_buffer_remaining_size; + + /** + * This buffer is only needed when packets were already buffered but + * not decoded, for example to get the codec parameters in MPEG + * streams. + */ + struct AVPacketList *packet_buffer; + struct AVPacketList *packet_buffer_end; + + /* av_read_frame() support */ + AVStream *cur_st; + + /* av_seek_frame() support */ + int64_t data_offset; /**< offset of the first packet */ +#endif +} AVFormatContext; + +typedef struct AVPacketList { + AVPacket pkt; + struct AVPacketList *next; +} AVPacketList; + + +/** + * @defgroup lavf_core Core functions + * @ingroup libavf + * + * Functions for querying libavformat capabilities, allocating core structures, + * etc. + * @{ + */ + +/** + * Return the LIBAVFORMAT_VERSION_INT constant. + */ +unsigned avformat_version(void); + +/** + * Return the libavformat build-time configuration. + */ +const char *avformat_configuration(void); + +/** + * Return the libavformat license. + */ +const char *avformat_license(void); + +/** + * Initialize libavformat and register all the muxers, demuxers and + * protocols. If you do not call this function, then you can select + * exactly which formats you want to support. + * + * @see av_register_input_format() + * @see av_register_output_format() + * @see av_register_protocol() + */ +void av_register_all(void); + +void av_register_input_format(AVInputFormat *format); +void av_register_output_format(AVOutputFormat *format); + +/** + * Do global initialization of network components. This is optional, + * but recommended, since it avoids the overhead of implicitly + * doing the setup for each session. + * + * Calling this function will become mandatory if using network + * protocols at some major version bump. + */ +int avformat_network_init(void); + +/** + * Undo the initialization done by avformat_network_init. + */ +int avformat_network_deinit(void); + +/** + * If f is NULL, returns the first registered input format, + * if f is non-NULL, returns the next registered input format after f + * or NULL if f is the last one. + */ +AVInputFormat *av_iformat_next(AVInputFormat *f); + +/** + * If f is NULL, returns the first registered output format, + * if f is non-NULL, returns the next registered output format after f + * or NULL if f is the last one. + */ +AVOutputFormat *av_oformat_next(AVOutputFormat *f); + +/** + * Allocate an AVFormatContext. + * avformat_free_context() can be used to free the context and everything + * allocated by the framework within it. + */ +AVFormatContext *avformat_alloc_context(void); + +/** + * Free an AVFormatContext and all its streams. + * @param s context to free + */ +void avformat_free_context(AVFormatContext *s); + +/** + * Get the AVClass for AVFormatContext. It can be used in combination with + * AV_OPT_SEARCH_FAKE_OBJ for examining options. + * + * @see av_opt_find(). + */ +const AVClass *avformat_get_class(void); + +/** + * Add a new stream to a media file. + * + * When demuxing, it is called by the demuxer in read_header(). If the + * flag AVFMTCTX_NOHEADER is set in s.ctx_flags, then it may also + * be called in read_packet(). + * + * When muxing, should be called by the user before avformat_write_header(). + * + * @param c If non-NULL, the AVCodecContext corresponding to the new stream + * will be initialized to use this codec. This is needed for e.g. codec-specific + * defaults to be set, so codec should be provided if it is known. + * + * @return newly created stream or NULL on error. + */ +AVStream *avformat_new_stream(AVFormatContext *s, AVCodec *c); + +AVProgram *av_new_program(AVFormatContext *s, int id); + +/** + * @} + */ + + +#if FF_API_GUESS_IMG2_CODEC +attribute_deprecated enum CodecID av_guess_image2_codec(const char *filename); +#endif + +#if FF_API_PKT_DUMP +attribute_deprecated void av_pkt_dump(FILE *f, AVPacket *pkt, int dump_payload); +attribute_deprecated void av_pkt_dump_log(void *avcl, int level, AVPacket *pkt, + int dump_payload); +#endif + + +#if FF_API_ALLOC_OUTPUT_CONTEXT +/** + * @deprecated deprecated in favor of avformat_alloc_output_context2() + */ +attribute_deprecated +AVFormatContext *avformat_alloc_output_context(const char *format, + AVOutputFormat *oformat, + const char *filename); +#endif + +/** + * Allocate an AVFormatContext for an output format. + * avformat_free_context() can be used to free the context and + * everything allocated by the framework within it. + * + * @param *ctx is set to the created format context, or to NULL in + * case of failure + * @param oformat format to use for allocating the context, if NULL + * format_name and filename are used instead + * @param format_name the name of output format to use for allocating the + * context, if NULL filename is used instead + * @param filename the name of the filename to use for allocating the + * context, may be NULL + * @return >= 0 in case of success, a negative AVERROR code in case of + * failure + */ +int avformat_alloc_output_context2(AVFormatContext **ctx, AVOutputFormat *oformat, + const char *format_name, const char *filename); + +/** + * @addtogroup lavf_decoding + * @{ + */ + +/** + * Find AVInputFormat based on the short name of the input format. + */ +AVInputFormat *av_find_input_format(const char *short_name); + +/** + * Guess the file format. + * + * @param is_opened Whether the file is already opened; determines whether + * demuxers with or without AVFMT_NOFILE are probed. + */ +AVInputFormat *av_probe_input_format(AVProbeData *pd, int is_opened); + +/** + * Guess the file format. + * + * @param is_opened Whether the file is already opened; determines whether + * demuxers with or without AVFMT_NOFILE are probed. + * @param score_max A probe score larger that this is required to accept a + * detection, the variable is set to the actual detection + * score afterwards. + * If the score is <= AVPROBE_SCORE_MAX / 4 it is recommended + * to retry with a larger probe buffer. + */ +AVInputFormat *av_probe_input_format2(AVProbeData *pd, int is_opened, int *score_max); + +/** + * Guess the file format. + * + * @param is_opened Whether the file is already opened; determines whether + * demuxers with or without AVFMT_NOFILE are probed. + * @param score_ret The score of the best detection. + */ +AVInputFormat *av_probe_input_format3(AVProbeData *pd, int is_opened, int *score_ret); + +/** + * Probe a bytestream to determine the input format. Each time a probe returns + * with a score that is too low, the probe buffer size is increased and another + * attempt is made. When the maximum probe size is reached, the input format + * with the highest score is returned. + * + * @param pb the bytestream to probe + * @param fmt the input format is put here + * @param filename the filename of the stream + * @param logctx the log context + * @param offset the offset within the bytestream to probe from + * @param max_probe_size the maximum probe buffer size (zero for default) + * @return 0 in case of success, a negative value corresponding to an + * AVERROR code otherwise + */ +int av_probe_input_buffer(AVIOContext *pb, AVInputFormat **fmt, + const char *filename, void *logctx, + unsigned int offset, unsigned int max_probe_size); + +#if FF_API_FORMAT_PARAMETERS +/** + * Allocate all the structures needed to read an input stream. + * This does not open the needed codecs for decoding the stream[s]. + * @deprecated use avformat_open_input instead. + */ +attribute_deprecated int av_open_input_stream(AVFormatContext **ic_ptr, + AVIOContext *pb, const char *filename, + AVInputFormat *fmt, AVFormatParameters *ap); + +/** + * Open a media file as input. The codecs are not opened. Only the file + * header (if present) is read. + * + * @param ic_ptr The opened media file handle is put here. + * @param filename filename to open + * @param fmt If non-NULL, force the file format to use. + * @param buf_size optional buffer size (zero if default is OK) + * @param ap Additional parameters needed when opening the file + * (NULL if default). + * @return 0 if OK, AVERROR_xxx otherwise + * + * @deprecated use avformat_open_input instead. + */ +attribute_deprecated int av_open_input_file(AVFormatContext **ic_ptr, const char *filename, + AVInputFormat *fmt, + int buf_size, + AVFormatParameters *ap); +#endif + +/** + * Open an input stream and read the header. The codecs are not opened. + * The stream must be closed with av_close_input_file(). + * + * @param ps Pointer to user-supplied AVFormatContext (allocated by avformat_alloc_context). + * May be a pointer to NULL, in which case an AVFormatContext is allocated by this + * function and written into ps. + * Note that a user-supplied AVFormatContext will be freed on failure. + * @param filename Name of the stream to open. + * @param fmt If non-NULL, this parameter forces a specific input format. + * Otherwise the format is autodetected. + * @param options A dictionary filled with AVFormatContext and demuxer-private options. + * On return this parameter will be destroyed and replaced with a dict containing + * options that were not found. May be NULL. + * + * @return 0 on success, a negative AVERROR on failure. + * + * @note If you want to use custom IO, preallocate the format context and set its pb field. + */ +int avformat_open_input(AVFormatContext **ps, const char *filename, AVInputFormat *fmt, AVDictionary **options); + +int av_demuxer_open(AVFormatContext *ic, AVFormatParameters *ap); + +#if FF_API_FORMAT_PARAMETERS +/** + * Read packets of a media file to get stream information. This + * is useful for file formats with no headers such as MPEG. This + * function also computes the real framerate in case of MPEG-2 repeat + * frame mode. + * The logical file position is not changed by this function; + * examined packets may be buffered for later processing. + * + * @param ic media file handle + * @return >=0 if OK, AVERROR_xxx on error + * @todo Let the user decide somehow what information is needed so that + * we do not waste time getting stuff the user does not need. + * + * @deprecated use avformat_find_stream_info. + */ +attribute_deprecated +int av_find_stream_info(AVFormatContext *ic); +#endif + +/** + * Read packets of a media file to get stream information. This + * is useful for file formats with no headers such as MPEG. This + * function also computes the real framerate in case of MPEG-2 repeat + * frame mode. + * The logical file position is not changed by this function; + * examined packets may be buffered for later processing. + * + * @param ic media file handle + * @param options If non-NULL, an ic.nb_streams long array of pointers to + * dictionaries, where i-th member contains options for + * codec corresponding to i-th stream. + * On return each dictionary will be filled with options that were not found. + * @return >=0 if OK, AVERROR_xxx on error + * + * @note this function isn't guaranteed to open all the codecs, so + * options being non-empty at return is a perfectly normal behavior. + * + * @todo Let the user decide somehow what information is needed so that + * we do not waste time getting stuff the user does not need. + */ +int avformat_find_stream_info(AVFormatContext *ic, AVDictionary **options); + +/** + * Find the programs which belong to a given stream. + * + * @param ic media file handle + * @param last the last found program, the search will start after this + * program, or from the beginning if it is NULL + * @param s stream index + * @return the next program which belongs to s, NULL if no program is found or + * the last program is not among the programs of ic. + */ +AVProgram *av_find_program_from_stream(AVFormatContext *ic, AVProgram *last, int s); + +/** + * Find the "best" stream in the file. + * The best stream is determined according to various heuristics as the most + * likely to be what the user expects. + * If the decoder parameter is non-NULL, av_find_best_stream will find the + * default decoder for the stream's codec; streams for which no decoder can + * be found are ignored. + * + * @param ic media file handle + * @param type stream type: video, audio, subtitles, etc. + * @param wanted_stream_nb user-requested stream number, + * or -1 for automatic selection + * @param related_stream try to find a stream related (eg. in the same + * program) to this one, or -1 if none + * @param decoder_ret if non-NULL, returns the decoder for the + * selected stream + * @param flags flags; none are currently defined + * @return the non-negative stream number in case of success, + * AVERROR_STREAM_NOT_FOUND if no stream with the requested type + * could be found, + * AVERROR_DECODER_NOT_FOUND if streams were found but no decoder + * @note If av_find_best_stream returns successfully and decoder_ret is not + * NULL, then *decoder_ret is guaranteed to be set to a valid AVCodec. + */ +int av_find_best_stream(AVFormatContext *ic, + enum AVMediaType type, + int wanted_stream_nb, + int related_stream, + AVCodec **decoder_ret, + int flags); + +/** + * Read a transport packet from a media file. + * + * This function is obsolete and should never be used. + * Use av_read_frame() instead. + * + * @param s media file handle + * @param pkt is filled + * @return 0 if OK, AVERROR_xxx on error + */ +int av_read_packet(AVFormatContext *s, AVPacket *pkt); + +/** + * Return the next frame of a stream. + * This function returns what is stored in the file, and does not validate + * that what is there are valid frames for the decoder. It will split what is + * stored in the file into frames and return one for each call. It will not + * omit invalid data between valid frames so as to give the decoder the maximum + * information possible for decoding. + * + * The returned packet is valid + * until the next av_read_frame() or until av_close_input_file() and + * must be freed with av_free_packet. For video, the packet contains + * exactly one frame. For audio, it contains an integer number of + * frames if each frame has a known fixed size (e.g. PCM or ADPCM + * data). If the audio frames have a variable size (e.g. MPEG audio), + * then it contains one frame. + * + * pkt->pts, pkt->dts and pkt->duration are always set to correct + * values in AVStream.time_base units (and guessed if the format cannot + * provide them). pkt->pts can be AV_NOPTS_VALUE if the video format + * has B-frames, so it is better to rely on pkt->dts if you do not + * decompress the payload. + * + * @return 0 if OK, < 0 on error or end of file + */ +int av_read_frame(AVFormatContext *s, AVPacket *pkt); + +/** + * Seek to the keyframe at timestamp. + * 'timestamp' in 'stream_index'. + * @param stream_index If stream_index is (-1), a default + * stream is selected, and timestamp is automatically converted + * from AV_TIME_BASE units to the stream specific time_base. + * @param timestamp Timestamp in AVStream.time_base units + * or, if no stream is specified, in AV_TIME_BASE units. + * @param flags flags which select direction and seeking mode + * @return >= 0 on success + */ +int av_seek_frame(AVFormatContext *s, int stream_index, int64_t timestamp, + int flags); + +/** + * Seek to timestamp ts. + * Seeking will be done so that the point from which all active streams + * can be presented successfully will be closest to ts and within min/max_ts. + * Active streams are all streams that have AVStream.discard < AVDISCARD_ALL. + * + * If flags contain AVSEEK_FLAG_BYTE, then all timestamps are in bytes and + * are the file position (this may not be supported by all demuxers). + * If flags contain AVSEEK_FLAG_FRAME, then all timestamps are in frames + * in the stream with stream_index (this may not be supported by all demuxers). + * Otherwise all timestamps are in units of the stream selected by stream_index + * or if stream_index is -1, in AV_TIME_BASE units. + * If flags contain AVSEEK_FLAG_ANY, then non-keyframes are treated as + * keyframes (this may not be supported by all demuxers). + * + * @param stream_index index of the stream which is used as time base reference + * @param min_ts smallest acceptable timestamp + * @param ts target timestamp + * @param max_ts largest acceptable timestamp + * @param flags flags + * @return >=0 on success, error code otherwise + * + * @note This is part of the new seek API which is still under construction. + * Thus do not use this yet. It may change at any time, do not expect + * ABI compatibility yet! + */ +int avformat_seek_file(AVFormatContext *s, int stream_index, int64_t min_ts, int64_t ts, int64_t max_ts, int flags); + +/** + * Start playing a network-based stream (e.g. RTSP stream) at the + * current position. + */ +int av_read_play(AVFormatContext *s); + +/** + * Pause a network-based stream (e.g. RTSP stream). + * + * Use av_read_play() to resume it. + */ +int av_read_pause(AVFormatContext *s); + +#if FF_API_FORMAT_PARAMETERS +/** + * Free a AVFormatContext allocated by av_open_input_stream. + * @param s context to free + * @deprecated use av_close_input_file() + */ +attribute_deprecated +void av_close_input_stream(AVFormatContext *s); +#endif + +#if FF_API_CLOSE_INPUT_FILE +/** + * @deprecated use avformat_close_input() + * Close a media file (but not its codecs). + * + * @param s media file handle + */ +attribute_deprecated +void av_close_input_file(AVFormatContext *s); +#endif + +/** + * Close an opened input AVFormatContext. Free it and all its contents + * and set *s to NULL. + */ +void avformat_close_input(AVFormatContext **s); +/** + * @} + */ + +#if FF_API_NEW_STREAM +/** + * Add a new stream to a media file. + * + * Can only be called in the read_header() function. If the flag + * AVFMTCTX_NOHEADER is in the format context, then new streams + * can be added in read_packet too. + * + * @param s media file handle + * @param id file-format-dependent stream ID + */ +attribute_deprecated +AVStream *av_new_stream(AVFormatContext *s, int id); +#endif + +#if FF_API_SET_PTS_INFO +/** + * @deprecated this function is not supposed to be called outside of lavf + */ +attribute_deprecated +void av_set_pts_info(AVStream *s, int pts_wrap_bits, + unsigned int pts_num, unsigned int pts_den); +#endif + +#define AVSEEK_FLAG_BACKWARD 1 ///< seek backward +#define AVSEEK_FLAG_BYTE 2 ///< seeking based on position in bytes +#define AVSEEK_FLAG_ANY 4 ///< seek to any frame, even non-keyframes +#define AVSEEK_FLAG_FRAME 8 ///< seeking based on frame number + +#if FF_API_SEEK_PUBLIC +attribute_deprecated +int av_seek_frame_binary(AVFormatContext *s, int stream_index, + int64_t target_ts, int flags); +attribute_deprecated +void av_update_cur_dts(AVFormatContext *s, AVStream *ref_st, int64_t timestamp); +attribute_deprecated +int64_t av_gen_search(AVFormatContext *s, int stream_index, + int64_t target_ts, int64_t pos_min, + int64_t pos_max, int64_t pos_limit, + int64_t ts_min, int64_t ts_max, + int flags, int64_t *ts_ret, + int64_t (*read_timestamp)(struct AVFormatContext *, int , int64_t *, int64_t )); +#endif + +#if FF_API_FORMAT_PARAMETERS +/** + * @deprecated pass the options to avformat_write_header directly. + */ +attribute_deprecated int av_set_parameters(AVFormatContext *s, AVFormatParameters *ap); +#endif + +/** + * @addtogroup lavf_encoding + * @{ + */ +/** + * Allocate the stream private data and write the stream header to + * an output media file. + * + * @param s Media file handle, must be allocated with avformat_alloc_context(). + * Its oformat field must be set to the desired output format; + * Its pb field must be set to an already openened AVIOContext. + * @param options An AVDictionary filled with AVFormatContext and muxer-private options. + * On return this parameter will be destroyed and replaced with a dict containing + * options that were not found. May be NULL. + * + * @return 0 on success, negative AVERROR on failure. + * + * @see av_opt_find, av_dict_set, avio_open, av_oformat_next. + */ +int avformat_write_header(AVFormatContext *s, AVDictionary **options); + +#if FF_API_FORMAT_PARAMETERS +/** + * Allocate the stream private data and write the stream header to an + * output media file. + * @note: this sets stream time-bases, if possible to stream->codec->time_base + * but for some formats it might also be some other time base + * + * @param s media file handle + * @return 0 if OK, AVERROR_xxx on error + * + * @deprecated use avformat_write_header. + */ +attribute_deprecated int av_write_header(AVFormatContext *s); +#endif + +/** + * Write a packet to an output media file. + * + * The packet shall contain one audio or video frame. + * The packet must be correctly interleaved according to the container + * specification, if not then av_interleaved_write_frame must be used. + * + * @param s media file handle + * @param pkt The packet, which contains the stream_index, buf/buf_size, + * dts/pts, ... + * This can be NULL (at any time, not just at the end), in + * order to immediately flush data buffered within the muxer, + * for muxers that buffer up data internally before writing it + * to the output. + * @return < 0 on error, = 0 if OK, 1 if flushed and there is no more data to flush + */ +int av_write_frame(AVFormatContext *s, AVPacket *pkt); + +/** + * Write a packet to an output media file ensuring correct interleaving. + * + * The packet must contain one audio or video frame. + * If the packets are already correctly interleaved, the application should + * call av_write_frame() instead as it is slightly faster. It is also important + * to keep in mind that completely non-interleaved input will need huge amounts + * of memory to interleave with this, so it is preferable to interleave at the + * demuxer level. + * + * @param s media file handle + * @param pkt The packet containing the data to be written. Libavformat takes + * ownership of the data and will free it when it sees fit using the packet's + * @ref AVPacket.destruct "destruct" field. The caller must not access the data + * after this function returns, as it may already be freed. + * Packet's @ref AVPacket.stream_index "stream_index" field must be set to the + * index of the corresponding stream in @ref AVFormatContext.streams + * "s.streams". + * It is very strongly recommended that timing information (@ref AVPacket.pts + * "pts", @ref AVPacket.dts "dts" @ref AVPacket.duration "duration") is set to + * correct values. + * + * @return 0 on success, a negative AVERROR on error. + */ +int av_interleaved_write_frame(AVFormatContext *s, AVPacket *pkt); + +/** + * Interleave a packet per dts in an output media file. + * + * Packets with pkt->destruct == av_destruct_packet will be freed inside this + * function, so they cannot be used after it. Note that calling av_free_packet() + * on them is still safe. + * + * @param s media file handle + * @param out the interleaved packet will be output here + * @param pkt the input packet + * @param flush 1 if no further packets are available as input and all + * remaining packets should be output + * @return 1 if a packet was output, 0 if no packet could be output, + * < 0 if an error occurred + */ +int av_interleave_packet_per_dts(AVFormatContext *s, AVPacket *out, + AVPacket *pkt, int flush); + +/** + * Write the stream trailer to an output media file and free the + * file private data. + * + * May only be called after a successful call to av_write_header. + * + * @param s media file handle + * @return 0 if OK, AVERROR_xxx on error + */ +int av_write_trailer(AVFormatContext *s); + +/** + * Return the output format in the list of registered output formats + * which best matches the provided parameters, or return NULL if + * there is no match. + * + * @param short_name if non-NULL checks if short_name matches with the + * names of the registered formats + * @param filename if non-NULL checks if filename terminates with the + * extensions of the registered formats + * @param mime_type if non-NULL checks if mime_type matches with the + * MIME type of the registered formats + */ +AVOutputFormat *av_guess_format(const char *short_name, + const char *filename, + const char *mime_type); + +/** + * Guess the codec ID based upon muxer and filename. + */ +enum CodecID av_guess_codec(AVOutputFormat *fmt, const char *short_name, + const char *filename, const char *mime_type, + enum AVMediaType type); + +/** + * Get timing information for the data currently output. + * The exact meaning of "currently output" depends on the format. + * It is mostly relevant for devices that have an internal buffer and/or + * work in real time. + * @param s media file handle + * @param stream stream in the media file + * @param dts[out] DTS of the last packet output for the stream, in stream + * time_base units + * @param wall[out] absolute time when that packet whas output, + * in microsecond + * @return 0 if OK, AVERROR(ENOSYS) if the format does not support it + * Note: some formats or devices may not allow to measure dts and wall + * atomically. + */ +int av_get_output_timestamp(struct AVFormatContext *s, int stream, + int64_t *dts, int64_t *wall); + + +/** + * @} + */ + + +/** + * @defgroup lavf_misc Utility functions + * @ingroup libavf + * @{ + * + * Miscelaneous utility functions related to both muxing and demuxing + * (or neither). + */ + +/** + * Send a nice hexadecimal dump of a buffer to the specified file stream. + * + * @param f The file stream pointer where the dump should be sent to. + * @param buf buffer + * @param size buffer size + * + * @see av_hex_dump_log, av_pkt_dump2, av_pkt_dump_log2 + */ +void av_hex_dump(FILE *f, uint8_t *buf, int size); + +/** + * Send a nice hexadecimal dump of a buffer to the log. + * + * @param avcl A pointer to an arbitrary struct of which the first field is a + * pointer to an AVClass struct. + * @param level The importance level of the message, lower values signifying + * higher importance. + * @param buf buffer + * @param size buffer size + * + * @see av_hex_dump, av_pkt_dump2, av_pkt_dump_log2 + */ +void av_hex_dump_log(void *avcl, int level, uint8_t *buf, int size); + +/** + * Send a nice dump of a packet to the specified file stream. + * + * @param f The file stream pointer where the dump should be sent to. + * @param pkt packet to dump + * @param dump_payload True if the payload must be displayed, too. + * @param st AVStream that the packet belongs to + */ +void av_pkt_dump2(FILE *f, AVPacket *pkt, int dump_payload, AVStream *st); + + +/** + * Send a nice dump of a packet to the log. + * + * @param avcl A pointer to an arbitrary struct of which the first field is a + * pointer to an AVClass struct. + * @param level The importance level of the message, lower values signifying + * higher importance. + * @param pkt packet to dump + * @param dump_payload True if the payload must be displayed, too. + * @param st AVStream that the packet belongs to + */ +void av_pkt_dump_log2(void *avcl, int level, AVPacket *pkt, int dump_payload, + AVStream *st); + +/** + * Get the CodecID for the given codec tag tag. + * If no codec id is found returns CODEC_ID_NONE. + * + * @param tags list of supported codec_id-codec_tag pairs, as stored + * in AVInputFormat.codec_tag and AVOutputFormat.codec_tag + */ +enum CodecID av_codec_get_id(const struct AVCodecTag * const *tags, unsigned int tag); + +/** + * Get the codec tag for the given codec id id. + * If no codec tag is found returns 0. + * + * @param tags list of supported codec_id-codec_tag pairs, as stored + * in AVInputFormat.codec_tag and AVOutputFormat.codec_tag + */ +unsigned int av_codec_get_tag(const struct AVCodecTag * const *tags, enum CodecID id); + +int av_find_default_stream_index(AVFormatContext *s); + +/** + * Get the index for a specific timestamp. + * @param flags if AVSEEK_FLAG_BACKWARD then the returned index will correspond + * to the timestamp which is <= the requested one, if backward + * is 0, then it will be >= + * if AVSEEK_FLAG_ANY seek to any frame, only keyframes otherwise + * @return < 0 if no such timestamp could be found + */ +int av_index_search_timestamp(AVStream *st, int64_t timestamp, int flags); + +/** + * Add an index entry into a sorted list. Update the entry if the list + * already contains it. + * + * @param timestamp timestamp in the time base of the given stream + */ +int av_add_index_entry(AVStream *st, int64_t pos, int64_t timestamp, + int size, int distance, int flags); + + +/** + * Split a URL string into components. + * + * The pointers to buffers for storing individual components may be null, + * in order to ignore that component. Buffers for components not found are + * set to empty strings. If the port is not found, it is set to a negative + * value. + * + * @param proto the buffer for the protocol + * @param proto_size the size of the proto buffer + * @param authorization the buffer for the authorization + * @param authorization_size the size of the authorization buffer + * @param hostname the buffer for the host name + * @param hostname_size the size of the hostname buffer + * @param port_ptr a pointer to store the port number in + * @param path the buffer for the path + * @param path_size the size of the path buffer + * @param url the URL to split + */ +void av_url_split(char *proto, int proto_size, + char *authorization, int authorization_size, + char *hostname, int hostname_size, + int *port_ptr, + char *path, int path_size, + const char *url); + +#if FF_API_DUMP_FORMAT +/** + * @deprecated Deprecated in favor of av_dump_format(). + */ +attribute_deprecated void dump_format(AVFormatContext *ic, + int index, + const char *url, + int is_output); +#endif + +void av_dump_format(AVFormatContext *ic, + int index, + const char *url, + int is_output); + +#if FF_API_PARSE_DATE +/** + * Parse datestr and return a corresponding number of microseconds. + * + * @param datestr String representing a date or a duration. + * See av_parse_time() for the syntax of the provided string. + * @deprecated in favor of av_parse_time() + */ +attribute_deprecated +int64_t parse_date(const char *datestr, int duration); +#endif + +/** + * Get the current time in microseconds. + */ +int64_t av_gettime(void); + +#if FF_API_FIND_INFO_TAG +/** + * @deprecated use av_find_info_tag in libavutil instead. + */ +attribute_deprecated int find_info_tag(char *arg, int arg_size, const char *tag1, const char *info); +#endif + +/** + * Return in 'buf' the path with '%d' replaced by a number. + * + * Also handles the '%0nd' format where 'n' is the total number + * of digits and '%%'. + * + * @param buf destination buffer + * @param buf_size destination buffer size + * @param path numbered sequence string + * @param number frame number + * @return 0 if OK, -1 on format error + */ +int av_get_frame_filename(char *buf, int buf_size, + const char *path, int number); + +/** + * Check whether filename actually is a numbered sequence generator. + * + * @param filename possible numbered sequence string + * @return 1 if a valid numbered sequence string, 0 otherwise + */ +int av_filename_number_test(const char *filename); + +/** + * Generate an SDP for an RTP session. + * + * @param ac array of AVFormatContexts describing the RTP streams. If the + * array is composed by only one context, such context can contain + * multiple AVStreams (one AVStream per RTP stream). Otherwise, + * all the contexts in the array (an AVCodecContext per RTP stream) + * must contain only one AVStream. + * @param n_files number of AVCodecContexts contained in ac + * @param buf buffer where the SDP will be stored (must be allocated by + * the caller) + * @param size the size of the buffer + * @return 0 if OK, AVERROR_xxx on error + */ +int av_sdp_create(AVFormatContext *ac[], int n_files, char *buf, int size); + +#if FF_API_SDP_CREATE +attribute_deprecated int avf_sdp_create(AVFormatContext *ac[], int n_files, char *buff, int size); +#endif + +/** + * Return a positive value if the given filename has one of the given + * extensions, 0 otherwise. + * + * @param extensions a comma-separated list of filename extensions + */ +int av_match_ext(const char *filename, const char *extensions); + +/** + * Test if the given container can store a codec. + * + * @param std_compliance standards compliance level, one of FF_COMPLIANCE_* + * + * @return 1 if codec with ID codec_id can be stored in ofmt, 0 if it cannot. + * A negative number if this information is not available. + */ +int avformat_query_codec(AVOutputFormat *ofmt, enum CodecID codec_id, int std_compliance); + +/** + * @} + */ + +#endif /* AVFORMAT_AVFORMAT_H */ diff --git a/Externals/ffmpeg/include/libavformat/avio.h b/Externals/ffmpeg/include/libavformat/avio.h new file mode 100644 index 00000000..a8698a84 --- /dev/null +++ b/Externals/ffmpeg/include/libavformat/avio.h @@ -0,0 +1,695 @@ +/* + * copyright (c) 2001 Fabrice Bellard + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ +#ifndef AVFORMAT_AVIO_H +#define AVFORMAT_AVIO_H + +/** + * @file + * @ingroup lavf_io + * Buffered I/O operations + */ + +#include + +#include "libavutil/common.h" +#include "libavutil/dict.h" +#include "libavutil/log.h" + +#include "libavformat/version.h" + + +#define AVIO_SEEKABLE_NORMAL 0x0001 /**< Seeking works like for a local file */ + +/** + * Callback for checking whether to abort blocking functions. + * AVERROR_EXIT is returned in this case by the interrupted + * function. During blocking operations, callback is called with + * opaque as parameter. If the callback returns 1, the + * blocking operation will be aborted. + * + * No members can be added to this struct without a major bump, if + * new elements have been added after this struct in AVFormatContext + * or AVIOContext. + */ +typedef struct { + int (*callback)(void*); + void *opaque; +} AVIOInterruptCB; + +/** + * Bytestream IO Context. + * New fields can be added to the end with minor version bumps. + * Removal, reordering and changes to existing fields require a major + * version bump. + * sizeof(AVIOContext) must not be used outside libav*. + * + * @note None of the function pointers in AVIOContext should be called + * directly, they should only be set by the client application + * when implementing custom I/O. Normally these are set to the + * function pointers specified in avio_alloc_context() + */ +typedef struct { +#if !FF_API_OLD_AVIO + /** + * A class for private options. + * + * If this AVIOContext is created by avio_open2(), av_class is set and + * passes the options down to protocols. + * + * If this AVIOContext is manually allocated, then av_class may be set by + * the caller. + * + * warning -- this field can be NULL, be sure to not pass this AVIOContext + * to any av_opt_* functions in that case. + */ + AVClass *av_class; +#endif + unsigned char *buffer; /**< Start of the buffer. */ + int buffer_size; /**< Maximum buffer size */ + unsigned char *buf_ptr; /**< Current position in the buffer */ + unsigned char *buf_end; /**< End of the data, may be less than + buffer+buffer_size if the read function returned + less data than requested, e.g. for streams where + no more data has been received yet. */ + void *opaque; /**< A private pointer, passed to the read/write/seek/... + functions. */ + int (*read_packet)(void *opaque, uint8_t *buf, int buf_size); + int (*write_packet)(void *opaque, uint8_t *buf, int buf_size); + int64_t (*seek)(void *opaque, int64_t offset, int whence); + int64_t pos; /**< position in the file of the current buffer */ + int must_flush; /**< true if the next seek should flush */ + int eof_reached; /**< true if eof reached */ + int write_flag; /**< true if open for writing */ +#if FF_API_OLD_AVIO + attribute_deprecated int is_streamed; +#endif + int max_packet_size; + unsigned long checksum; + unsigned char *checksum_ptr; + unsigned long (*update_checksum)(unsigned long checksum, const uint8_t *buf, unsigned int size); + int error; /**< contains the error code or 0 if no error happened */ + /** + * Pause or resume playback for network streaming protocols - e.g. MMS. + */ + int (*read_pause)(void *opaque, int pause); + /** + * Seek to a given timestamp in stream with the specified stream_index. + * Needed for some network streaming protocols which don't support seeking + * to byte position. + */ + int64_t (*read_seek)(void *opaque, int stream_index, + int64_t timestamp, int flags); + /** + * A combination of AVIO_SEEKABLE_ flags or 0 when the stream is not seekable. + */ + int seekable; + + /** + * max filesize, used to limit allocations + * This field is internal to libavformat and access from outside is not allowed. + */ + int64_t maxsize; +} AVIOContext; + +/* unbuffered I/O */ + +#if FF_API_OLD_AVIO +/** + * URL Context. + * New fields can be added to the end with minor version bumps. + * Removal, reordering and changes to existing fields require a major + * version bump. + * sizeof(URLContext) must not be used outside libav*. + * @deprecated This struct will be made private + */ +typedef struct URLContext { + const AVClass *av_class; ///< information for av_log(). Set by url_open(). + struct URLProtocol *prot; + int flags; + int is_streamed; /**< true if streamed (no seek possible), default = false */ + int max_packet_size; /**< if non zero, the stream is packetized with this max packet size */ + void *priv_data; + char *filename; /**< specified URL */ + int is_connected; + AVIOInterruptCB interrupt_callback; +} URLContext; + +#define URL_PROTOCOL_FLAG_NESTED_SCHEME 1 /*< The protocol name can be the first part of a nested protocol scheme */ +#define URL_PROTOCOL_FLAG_NETWORK 2 /*< The protocol uses network */ + +/** + * @deprecated This struct is to be made private. Use the higher-level + * AVIOContext-based API instead. + */ +typedef struct URLProtocol { + const char *name; + int (*url_open)(URLContext *h, const char *url, int flags); + int (*url_read)(URLContext *h, unsigned char *buf, int size); + int (*url_write)(URLContext *h, const unsigned char *buf, int size); + int64_t (*url_seek)(URLContext *h, int64_t pos, int whence); + int (*url_close)(URLContext *h); + struct URLProtocol *next; + int (*url_read_pause)(URLContext *h, int pause); + int64_t (*url_read_seek)(URLContext *h, int stream_index, + int64_t timestamp, int flags); + int (*url_get_file_handle)(URLContext *h); + int priv_data_size; + const AVClass *priv_data_class; + int flags; + int (*url_check)(URLContext *h, int mask); +} URLProtocol; + +typedef struct URLPollEntry { + URLContext *handle; + int events; + int revents; +} URLPollEntry; + +/* not implemented */ +attribute_deprecated int url_poll(URLPollEntry *poll_table, int n, int timeout); + +/** + * @name URL open modes + * The flags argument to url_open and cosins must be one of the following + * constants, optionally ORed with other flags. + * @{ + */ +#define URL_RDONLY 1 /**< read-only */ +#define URL_WRONLY 2 /**< write-only */ +#define URL_RDWR (URL_RDONLY|URL_WRONLY) /**< read-write */ +/** + * @} + */ + +/** + * Use non-blocking mode. + * If this flag is set, operations on the context will return + * AVERROR(EAGAIN) if they can not be performed immediately. + * If this flag is not set, operations on the context will never return + * AVERROR(EAGAIN). + * Note that this flag does not affect the opening/connecting of the + * context. Connecting a protocol will always block if necessary (e.g. on + * network protocols) but never hang (e.g. on busy devices). + * Warning: non-blocking protocols is work-in-progress; this flag may be + * silently ignored. + */ +#define URL_FLAG_NONBLOCK 8 + +typedef int URLInterruptCB(void); +extern URLInterruptCB *url_interrupt_cb; + +/** + * @defgroup old_url_funcs Old url_* functions + * The following functions are deprecated. Use the buffered API based on #AVIOContext instead. + * @{ + * @ingroup lavf_io + */ +attribute_deprecated int url_open_protocol (URLContext **puc, struct URLProtocol *up, + const char *url, int flags); +attribute_deprecated int url_alloc(URLContext **h, const char *url, int flags); +attribute_deprecated int url_connect(URLContext *h); +attribute_deprecated int url_open(URLContext **h, const char *url, int flags); +attribute_deprecated int url_read(URLContext *h, unsigned char *buf, int size); +attribute_deprecated int url_read_complete(URLContext *h, unsigned char *buf, int size); +attribute_deprecated int url_write(URLContext *h, const unsigned char *buf, int size); +attribute_deprecated int64_t url_seek(URLContext *h, int64_t pos, int whence); +attribute_deprecated int url_close(URLContext *h); +attribute_deprecated int64_t url_filesize(URLContext *h); +attribute_deprecated int url_get_file_handle(URLContext *h); +attribute_deprecated int url_get_max_packet_size(URLContext *h); +attribute_deprecated void url_get_filename(URLContext *h, char *buf, int buf_size); +attribute_deprecated int av_url_read_pause(URLContext *h, int pause); +attribute_deprecated int64_t av_url_read_seek(URLContext *h, int stream_index, + int64_t timestamp, int flags); +attribute_deprecated void url_set_interrupt_cb(int (*interrupt_cb)(void)); + +/** + * returns the next registered protocol after the given protocol (the first if + * NULL is given), or NULL if protocol is the last one. + */ +URLProtocol *av_protocol_next(URLProtocol *p); + +/** + * Register the URLProtocol protocol. + * + * @param size the size of the URLProtocol struct referenced + */ +attribute_deprecated int av_register_protocol2(URLProtocol *protocol, int size); +/** + * @} + */ + + +typedef attribute_deprecated AVIOContext ByteIOContext; + +attribute_deprecated int init_put_byte(AVIOContext *s, + unsigned char *buffer, + int buffer_size, + int write_flag, + void *opaque, + int (*read_packet)(void *opaque, uint8_t *buf, int buf_size), + int (*write_packet)(void *opaque, uint8_t *buf, int buf_size), + int64_t (*seek)(void *opaque, int64_t offset, int whence)); +attribute_deprecated AVIOContext *av_alloc_put_byte( + unsigned char *buffer, + int buffer_size, + int write_flag, + void *opaque, + int (*read_packet)(void *opaque, uint8_t *buf, int buf_size), + int (*write_packet)(void *opaque, uint8_t *buf, int buf_size), + int64_t (*seek)(void *opaque, int64_t offset, int whence)); + +/** + * @defgroup old_avio_funcs Old put_/get_*() functions + * The following functions are deprecated. Use the "avio_"-prefixed functions instead. + * @{ + * @ingroup lavf_io + */ +attribute_deprecated int get_buffer(AVIOContext *s, unsigned char *buf, int size); +attribute_deprecated int get_partial_buffer(AVIOContext *s, unsigned char *buf, int size); +attribute_deprecated int get_byte(AVIOContext *s); +attribute_deprecated unsigned int get_le16(AVIOContext *s); +attribute_deprecated unsigned int get_le24(AVIOContext *s); +attribute_deprecated unsigned int get_le32(AVIOContext *s); +attribute_deprecated uint64_t get_le64(AVIOContext *s); +attribute_deprecated unsigned int get_be16(AVIOContext *s); +attribute_deprecated unsigned int get_be24(AVIOContext *s); +attribute_deprecated unsigned int get_be32(AVIOContext *s); +attribute_deprecated uint64_t get_be64(AVIOContext *s); + +attribute_deprecated void put_byte(AVIOContext *s, int b); +attribute_deprecated void put_nbyte(AVIOContext *s, int b, int count); +attribute_deprecated void put_buffer(AVIOContext *s, const unsigned char *buf, int size); +attribute_deprecated void put_le64(AVIOContext *s, uint64_t val); +attribute_deprecated void put_be64(AVIOContext *s, uint64_t val); +attribute_deprecated void put_le32(AVIOContext *s, unsigned int val); +attribute_deprecated void put_be32(AVIOContext *s, unsigned int val); +attribute_deprecated void put_le24(AVIOContext *s, unsigned int val); +attribute_deprecated void put_be24(AVIOContext *s, unsigned int val); +attribute_deprecated void put_le16(AVIOContext *s, unsigned int val); +attribute_deprecated void put_be16(AVIOContext *s, unsigned int val); +attribute_deprecated void put_tag(AVIOContext *s, const char *tag); +/** + * @} + */ + +attribute_deprecated int av_url_read_fpause(AVIOContext *h, int pause); +attribute_deprecated int64_t av_url_read_fseek (AVIOContext *h, int stream_index, + int64_t timestamp, int flags); + +/** + * @defgroup old_url_f_funcs Old url_f* functions + * The following functions are deprecated, use the "avio_"-prefixed functions instead. + * @{ + * @ingroup lavf_io + */ +attribute_deprecated int url_fopen( AVIOContext **s, const char *url, int flags); +attribute_deprecated int url_fclose(AVIOContext *s); +attribute_deprecated int64_t url_fseek(AVIOContext *s, int64_t offset, int whence); +attribute_deprecated int url_fskip(AVIOContext *s, int64_t offset); +attribute_deprecated int64_t url_ftell(AVIOContext *s); +attribute_deprecated int64_t url_fsize(AVIOContext *s); +#define URL_EOF (-1) +attribute_deprecated int url_fgetc(AVIOContext *s); +attribute_deprecated int url_setbufsize(AVIOContext *s, int buf_size); +attribute_deprecated int url_fprintf(AVIOContext *s, const char *fmt, ...) av_printf_format(2, 3); +attribute_deprecated void put_flush_packet(AVIOContext *s); +attribute_deprecated int url_open_dyn_buf(AVIOContext **s); +attribute_deprecated int url_open_dyn_packet_buf(AVIOContext **s, int max_packet_size); +attribute_deprecated int url_close_dyn_buf(AVIOContext *s, uint8_t **pbuffer); +attribute_deprecated int url_fdopen(AVIOContext **s, URLContext *h); +/** + * @} + */ + +attribute_deprecated int url_ferror(AVIOContext *s); + +attribute_deprecated int udp_set_remote_url(URLContext *h, const char *uri); +attribute_deprecated int udp_get_local_port(URLContext *h); + +attribute_deprecated void init_checksum(AVIOContext *s, + unsigned long (*update_checksum)(unsigned long c, const uint8_t *p, unsigned int len), + unsigned long checksum); +attribute_deprecated unsigned long get_checksum(AVIOContext *s); +attribute_deprecated void put_strz(AVIOContext *s, const char *buf); +/** @note unlike fgets, the EOL character is not returned and a whole + line is parsed. return NULL if first char read was EOF */ +attribute_deprecated char *url_fgets(AVIOContext *s, char *buf, int buf_size); +/** + * @deprecated use avio_get_str instead + */ +attribute_deprecated char *get_strz(AVIOContext *s, char *buf, int maxlen); +/** + * @deprecated Use AVIOContext.seekable field directly. + */ +attribute_deprecated static inline int url_is_streamed(AVIOContext *s) +{ + return !s->seekable; +} +attribute_deprecated URLContext *url_fileno(AVIOContext *s); + +/** + * @deprecated use AVIOContext.max_packet_size directly. + */ +attribute_deprecated int url_fget_max_packet_size(AVIOContext *s); + +attribute_deprecated int url_open_buf(AVIOContext **s, uint8_t *buf, int buf_size, int flags); + +/** return the written or read size */ +attribute_deprecated int url_close_buf(AVIOContext *s); + +/** + * Return a non-zero value if the resource indicated by url + * exists, 0 otherwise. + * @deprecated Use avio_check instead. + */ +attribute_deprecated int url_exist(const char *url); +#endif // FF_API_OLD_AVIO + +/** + * Return AVIO_FLAG_* access flags corresponding to the access permissions + * of the resource in url, or a negative value corresponding to an + * AVERROR code in case of failure. The returned access flags are + * masked by the value in flags. + * + * @note This function is intrinsically unsafe, in the sense that the + * checked resource may change its existence or permission status from + * one call to another. Thus you should not trust the returned value, + * unless you are sure that no other processes are accessing the + * checked resource. + */ +int avio_check(const char *url, int flags); + +#if FF_API_OLD_INTERRUPT_CB +/** + * The callback is called in blocking functions to test regulary if + * asynchronous interruption is needed. AVERROR_EXIT is returned + * in this case by the interrupted function. 'NULL' means no interrupt + * callback is given. + * @deprecated Use interrupt_callback in AVFormatContext/avio_open2 + * instead. + */ +attribute_deprecated void avio_set_interrupt_cb(int (*interrupt_cb)(void)); +#endif + +/** + * Allocate and initialize an AVIOContext for buffered I/O. It must be later + * freed with av_free(). + * + * @param buffer Memory block for input/output operations via AVIOContext. + * The buffer must be allocated with av_malloc() and friends. + * @param buffer_size The buffer size is very important for performance. + * For protocols with fixed blocksize it should be set to this blocksize. + * For others a typical size is a cache page, e.g. 4kb. + * @param write_flag Set to 1 if the buffer should be writable, 0 otherwise. + * @param opaque An opaque pointer to user-specific data. + * @param read_packet A function for refilling the buffer, may be NULL. + * @param write_packet A function for writing the buffer contents, may be NULL. + * @param seek A function for seeking to specified byte position, may be NULL. + * + * @return Allocated AVIOContext or NULL on failure. + */ +AVIOContext *avio_alloc_context( + unsigned char *buffer, + int buffer_size, + int write_flag, + void *opaque, + int (*read_packet)(void *opaque, uint8_t *buf, int buf_size), + int (*write_packet)(void *opaque, uint8_t *buf, int buf_size), + int64_t (*seek)(void *opaque, int64_t offset, int whence)); + +void avio_w8(AVIOContext *s, int b); +void avio_write(AVIOContext *s, const unsigned char *buf, int size); +void avio_wl64(AVIOContext *s, uint64_t val); +void avio_wb64(AVIOContext *s, uint64_t val); +void avio_wl32(AVIOContext *s, unsigned int val); +void avio_wb32(AVIOContext *s, unsigned int val); +void avio_wl24(AVIOContext *s, unsigned int val); +void avio_wb24(AVIOContext *s, unsigned int val); +void avio_wl16(AVIOContext *s, unsigned int val); +void avio_wb16(AVIOContext *s, unsigned int val); + +/** + * Write a NULL-terminated string. + * @return number of bytes written. + */ +int avio_put_str(AVIOContext *s, const char *str); + +/** + * Convert an UTF-8 string to UTF-16LE and write it. + * @return number of bytes written. + */ +int avio_put_str16le(AVIOContext *s, const char *str); + +/** + * Passing this as the "whence" parameter to a seek function causes it to + * return the filesize without seeking anywhere. Supporting this is optional. + * If it is not supported then the seek function will return <0. + */ +#define AVSEEK_SIZE 0x10000 + +/** + * Oring this flag as into the "whence" parameter to a seek function causes it to + * seek by any means (like reopening and linear reading) or other normally unreasonble + * means that can be extreemly slow. + * This may be ignored by the seek code. + */ +#define AVSEEK_FORCE 0x20000 + +/** + * fseek() equivalent for AVIOContext. + * @return new position or AVERROR. + */ +int64_t avio_seek(AVIOContext *s, int64_t offset, int whence); + +/** + * Skip given number of bytes forward + * @return new position or AVERROR. + */ +int64_t avio_skip(AVIOContext *s, int64_t offset); + +/** + * ftell() equivalent for AVIOContext. + * @return position or AVERROR. + */ +static av_always_inline int64_t avio_tell(AVIOContext *s) +{ + return avio_seek(s, 0, SEEK_CUR); +} + +/** + * Get the filesize. + * @return filesize or AVERROR + */ +int64_t avio_size(AVIOContext *s); + +/** + * feof() equivalent for AVIOContext. + * @return non zero if and only if end of file + */ +int url_feof(AVIOContext *s); + +/** @warning currently size is limited */ +int avio_printf(AVIOContext *s, const char *fmt, ...) av_printf_format(2, 3); + +void avio_flush(AVIOContext *s); + + +/** + * Read size bytes from AVIOContext into buf. + * @return number of bytes read or AVERROR + */ +int avio_read(AVIOContext *s, unsigned char *buf, int size); + +/** + * @name Functions for reading from AVIOContext + * @{ + * + * @note return 0 if EOF, so you cannot use it if EOF handling is + * necessary + */ +int avio_r8 (AVIOContext *s); +unsigned int avio_rl16(AVIOContext *s); +unsigned int avio_rl24(AVIOContext *s); +unsigned int avio_rl32(AVIOContext *s); +uint64_t avio_rl64(AVIOContext *s); +unsigned int avio_rb16(AVIOContext *s); +unsigned int avio_rb24(AVIOContext *s); +unsigned int avio_rb32(AVIOContext *s); +uint64_t avio_rb64(AVIOContext *s); +/** + * @} + */ + +/** + * Read a string from pb into buf. The reading will terminate when either + * a NULL character was encountered, maxlen bytes have been read, or nothing + * more can be read from pb. The result is guaranteed to be NULL-terminated, it + * will be truncated if buf is too small. + * Note that the string is not interpreted or validated in any way, it + * might get truncated in the middle of a sequence for multi-byte encodings. + * + * @return number of bytes read (is always <= maxlen). + * If reading ends on EOF or error, the return value will be one more than + * bytes actually read. + */ +int avio_get_str(AVIOContext *pb, int maxlen, char *buf, int buflen); + +/** + * Read a UTF-16 string from pb and convert it to UTF-8. + * The reading will terminate when either a null or invalid character was + * encountered or maxlen bytes have been read. + * @return number of bytes read (is always <= maxlen) + */ +int avio_get_str16le(AVIOContext *pb, int maxlen, char *buf, int buflen); +int avio_get_str16be(AVIOContext *pb, int maxlen, char *buf, int buflen); + + +/** + * @name URL open modes + * The flags argument to avio_open must be one of the following + * constants, optionally ORed with other flags. + * @{ + */ +#define AVIO_FLAG_READ 1 /**< read-only */ +#define AVIO_FLAG_WRITE 2 /**< write-only */ +#define AVIO_FLAG_READ_WRITE (AVIO_FLAG_READ|AVIO_FLAG_WRITE) /**< read-write pseudo flag */ +/** + * @} + */ + +/** + * Use non-blocking mode. + * If this flag is set, operations on the context will return + * AVERROR(EAGAIN) if they can not be performed immediately. + * If this flag is not set, operations on the context will never return + * AVERROR(EAGAIN). + * Note that this flag does not affect the opening/connecting of the + * context. Connecting a protocol will always block if necessary (e.g. on + * network protocols) but never hang (e.g. on busy devices). + * Warning: non-blocking protocols is work-in-progress; this flag may be + * silently ignored. + */ +#define AVIO_FLAG_NONBLOCK 8 + +/** + * Create and initialize a AVIOContext for accessing the + * resource indicated by url. + * @note When the resource indicated by url has been opened in + * read+write mode, the AVIOContext can be used only for writing. + * + * @param s Used to return the pointer to the created AVIOContext. + * In case of failure the pointed to value is set to NULL. + * @param flags flags which control how the resource indicated by url + * is to be opened + * @return 0 in case of success, a negative value corresponding to an + * AVERROR code in case of failure + */ +int avio_open(AVIOContext **s, const char *url, int flags); + +/** + * Create and initialize a AVIOContext for accessing the + * resource indicated by url. + * @note When the resource indicated by url has been opened in + * read+write mode, the AVIOContext can be used only for writing. + * + * @param s Used to return the pointer to the created AVIOContext. + * In case of failure the pointed to value is set to NULL. + * @param flags flags which control how the resource indicated by url + * is to be opened + * @param int_cb an interrupt callback to be used at the protocols level + * @param options A dictionary filled with protocol-private options. On return + * this parameter will be destroyed and replaced with a dict containing options + * that were not found. May be NULL. + * @return 0 in case of success, a negative value corresponding to an + * AVERROR code in case of failure + */ +int avio_open2(AVIOContext **s, const char *url, int flags, + const AVIOInterruptCB *int_cb, AVDictionary **options); + +/** + * Close the resource accessed by the AVIOContext s and free it. + * This function can only be used if s was opened by avio_open(). + * + * @return 0 on success, an AVERROR < 0 on error. + */ +int avio_close(AVIOContext *s); + +/** + * Open a write only memory stream. + * + * @param s new IO context + * @return zero if no error. + */ +int avio_open_dyn_buf(AVIOContext **s); + +/** + * Return the written size and a pointer to the buffer. The buffer + * must be freed with av_free(). + * Padding of FF_INPUT_BUFFER_PADDING_SIZE is added to the buffer. + * + * @param s IO context + * @param pbuffer pointer to a byte buffer + * @return the length of the byte buffer + */ +int avio_close_dyn_buf(AVIOContext *s, uint8_t **pbuffer); + +/** + * Iterate through names of available protocols. + * @note it is recommanded to use av_protocol_next() instead of this + * + * @param opaque A private pointer representing current protocol. + * It must be a pointer to NULL on first iteration and will + * be updated by successive calls to avio_enum_protocols. + * @param output If set to 1, iterate over output protocols, + * otherwise over input protocols. + * + * @return A static string containing the name of current protocol or NULL + */ +const char *avio_enum_protocols(void **opaque, int output); + +/** + * Pause and resume playing - only meaningful if using a network streaming + * protocol (e.g. MMS). + * @param pause 1 for pause, 0 for resume + */ +int avio_pause(AVIOContext *h, int pause); + +/** + * Seek to a given timestamp relative to some component stream. + * Only meaningful if using a network streaming protocol (e.g. MMS.). + * @param stream_index The stream index that the timestamp is relative to. + * If stream_index is (-1) the timestamp should be in AV_TIME_BASE + * units from the beginning of the presentation. + * If a stream_index >= 0 is used and the protocol does not support + * seeking based on component streams, the call will fail. + * @param timestamp timestamp in AVStream.time_base units + * or if there is no stream specified then in AV_TIME_BASE units. + * @param flags Optional combination of AVSEEK_FLAG_BACKWARD, AVSEEK_FLAG_BYTE + * and AVSEEK_FLAG_ANY. The protocol may silently ignore + * AVSEEK_FLAG_BACKWARD and AVSEEK_FLAG_ANY, but AVSEEK_FLAG_BYTE will + * fail if used and not supported. + * @return >= 0 on success + * @see AVInputFormat::read_seek + */ +int64_t avio_seek_time(AVIOContext *h, int stream_index, + int64_t timestamp, int flags); + +#endif /* AVFORMAT_AVIO_H */ diff --git a/Externals/ffmpeg/include/libavformat/version.h b/Externals/ffmpeg/include/libavformat/version.h new file mode 100644 index 00000000..f3848da6 --- /dev/null +++ b/Externals/ffmpeg/include/libavformat/version.h @@ -0,0 +1,129 @@ +/* + * Version macros. + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVFORMAT_VERSION_H +#define AVFORMAT_VERSION_H + +/** + * @file + * @ingroup libavf + * Libavformat version macros + */ + +#include "libavutil/avutil.h" + +#define LIBAVFORMAT_VERSION_MAJOR 53 +#define LIBAVFORMAT_VERSION_MINOR 31 +#define LIBAVFORMAT_VERSION_MICRO 100 + +#define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \ + LIBAVFORMAT_VERSION_MINOR, \ + LIBAVFORMAT_VERSION_MICRO) +#define LIBAVFORMAT_VERSION AV_VERSION(LIBAVFORMAT_VERSION_MAJOR, \ + LIBAVFORMAT_VERSION_MINOR, \ + LIBAVFORMAT_VERSION_MICRO) +#define LIBAVFORMAT_BUILD LIBAVFORMAT_VERSION_INT + +#define LIBAVFORMAT_IDENT "Lavf" AV_STRINGIFY(LIBAVFORMAT_VERSION) + +/** + * Those FF_API_* defines are not part of public API. + * They may change, break or disappear at any time. + */ +#ifndef FF_API_OLD_METADATA2 +#define FF_API_OLD_METADATA2 (LIBAVFORMAT_VERSION_MAJOR < 54) +#endif +#ifndef FF_API_OLD_AVIO +#define FF_API_OLD_AVIO (LIBAVFORMAT_VERSION_MAJOR < 54) +#endif +#ifndef FF_API_DUMP_FORMAT +#define FF_API_DUMP_FORMAT (LIBAVFORMAT_VERSION_MAJOR < 54) +#endif +#ifndef FF_API_PARSE_DATE +#define FF_API_PARSE_DATE (LIBAVFORMAT_VERSION_MAJOR < 54) +#endif +#ifndef FF_API_FIND_INFO_TAG +#define FF_API_FIND_INFO_TAG (LIBAVFORMAT_VERSION_MAJOR < 54) +#endif +#ifndef FF_API_PKT_DUMP +#define FF_API_PKT_DUMP (LIBAVFORMAT_VERSION_MAJOR < 54) +#endif +#ifndef FF_API_GUESS_IMG2_CODEC +#define FF_API_GUESS_IMG2_CODEC (LIBAVFORMAT_VERSION_MAJOR < 54) +#endif +#ifndef FF_API_SDP_CREATE +#define FF_API_SDP_CREATE (LIBAVFORMAT_VERSION_MAJOR < 54) +#endif +#ifndef FF_API_ALLOC_OUTPUT_CONTEXT +#define FF_API_ALLOC_OUTPUT_CONTEXT (LIBAVFORMAT_VERSION_MAJOR < 54) +#endif +#ifndef FF_API_FORMAT_PARAMETERS +#define FF_API_FORMAT_PARAMETERS (LIBAVFORMAT_VERSION_MAJOR < 54) +#endif +#ifndef FF_API_FLAG_RTP_HINT +#define FF_API_FLAG_RTP_HINT (LIBAVFORMAT_VERSION_MAJOR < 54) +#endif +#ifndef FF_API_AVSTREAM_QUALITY +#define FF_API_AVSTREAM_QUALITY (LIBAVFORMAT_VERSION_MAJOR < 54) +#endif +#ifndef FF_API_LOOP_INPUT +#define FF_API_LOOP_INPUT (LIBAVFORMAT_VERSION_MAJOR < 54) +#endif +#ifndef FF_API_LOOP_OUTPUT +#define FF_API_LOOP_OUTPUT (LIBAVFORMAT_VERSION_MAJOR < 54) +#endif +#ifndef FF_API_TIMESTAMP +#define FF_API_TIMESTAMP (LIBAVFORMAT_VERSION_MAJOR < 54) +#endif +#ifndef FF_API_FILESIZE +#define FF_API_FILESIZE (LIBAVFORMAT_VERSION_MAJOR < 54) +#endif +#ifndef FF_API_MUXRATE +#define FF_API_MUXRATE (LIBAVFORMAT_VERSION_MAJOR < 54) +#endif +#ifndef FF_API_RTSP_URL_OPTIONS +#define FF_API_RTSP_URL_OPTIONS (LIBAVFORMAT_VERSION_MAJOR < 54) +#endif +#ifndef FF_API_NEW_STREAM +#define FF_API_NEW_STREAM (LIBAVFORMAT_VERSION_MAJOR < 54) +#endif +#ifndef FF_API_PRELOAD +#define FF_API_PRELOAD (LIBAVFORMAT_VERSION_MAJOR < 54) +#endif +#ifndef FF_API_STREAM_COPY +#define FF_API_STREAM_COPY (LIBAVFORMAT_VERSION_MAJOR < 54) +#endif +#ifndef FF_API_SEEK_PUBLIC +#define FF_API_SEEK_PUBLIC (LIBAVFORMAT_VERSION_MAJOR < 54) +#endif +#ifndef FF_API_REORDER_PRIVATE +#define FF_API_REORDER_PRIVATE (LIBAVFORMAT_VERSION_MAJOR < 54) +#endif +#ifndef FF_API_OLD_INTERRUPT_CB +#define FF_API_OLD_INTERRUPT_CB (LIBAVFORMAT_VERSION_MAJOR < 54) +#endif +#ifndef FF_API_SET_PTS_INFO +#define FF_API_SET_PTS_INFO (LIBAVFORMAT_VERSION_MAJOR < 54) +#endif +#ifndef FF_API_CLOSE_INPUT_FILE +#define FF_API_CLOSE_INPUT_FILE (LIBAVFORMAT_VERSION_MAJOR < 55) +#endif + +#endif /* AVFORMAT_VERSION_H */ diff --git a/Externals/ffmpeg/include/libavutil/adler32.h b/Externals/ffmpeg/include/libavutil/adler32.h new file mode 100644 index 00000000..e926ef6c --- /dev/null +++ b/Externals/ffmpeg/include/libavutil/adler32.h @@ -0,0 +1,43 @@ +/* + * copyright (c) 2006 Mans Rullgard + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_ADLER32_H +#define AVUTIL_ADLER32_H + +#include +#include "attributes.h" + +/** + * @ingroup lavu_crypto + * Calculate the Adler32 checksum of a buffer. + * + * Passing the return value to a subsequent av_adler32_update() call + * allows the checksum of multiple buffers to be calculated as though + * they were concatenated. + * + * @param adler initial checksum value + * @param buf pointer to input buffer + * @param len size of input buffer + * @return updated checksum + */ +unsigned long av_adler32_update(unsigned long adler, const uint8_t *buf, + unsigned int len) av_pure; + +#endif /* AVUTIL_ADLER32_H */ diff --git a/Externals/ffmpeg/include/libavutil/aes.h b/Externals/ffmpeg/include/libavutil/aes.h new file mode 100644 index 00000000..bafa4cc3 --- /dev/null +++ b/Externals/ffmpeg/include/libavutil/aes.h @@ -0,0 +1,57 @@ +/* + * copyright (c) 2007 Michael Niedermayer + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_AES_H +#define AVUTIL_AES_H + +#include + +/** + * @defgroup lavu_aes AES + * @ingroup lavu_crypto + * @{ + */ + +extern const int av_aes_size; + +struct AVAES; + +/** + * Initialize an AVAES context. + * @param key_bits 128, 192 or 256 + * @param decrypt 0 for encryption, 1 for decryption + */ +int av_aes_init(struct AVAES *a, const uint8_t *key, int key_bits, int decrypt); + +/** + * Encrypt or decrypt a buffer using a previously initialized context. + * @param count number of 16 byte blocks + * @param dst destination array, can be equal to src + * @param src source array, can be equal to dst + * @param iv initialization vector for CBC mode, if NULL then ECB will be used + * @param decrypt 0 for encryption, 1 for decryption + */ +void av_aes_crypt(struct AVAES *a, uint8_t *dst, const uint8_t *src, int count, uint8_t *iv, int decrypt); + +/** + * @} + */ + +#endif /* AVUTIL_AES_H */ diff --git a/Externals/ffmpeg/include/libavutil/attributes.h b/Externals/ffmpeg/include/libavutil/attributes.h new file mode 100644 index 00000000..0a6fda17 --- /dev/null +++ b/Externals/ffmpeg/include/libavutil/attributes.h @@ -0,0 +1,162 @@ +/* + * copyright (c) 2006 Michael Niedermayer + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * Macro definitions for various function/variable attributes + */ + +#ifndef AVUTIL_ATTRIBUTES_H +#define AVUTIL_ATTRIBUTES_H + +#ifdef __GNUC__ +# define AV_GCC_VERSION_AT_LEAST(x,y) (__GNUC__ > x || __GNUC__ == x && __GNUC_MINOR__ >= y) +#else +# define AV_GCC_VERSION_AT_LEAST(x,y) 0 +#endif + +#ifndef av_always_inline +#if AV_GCC_VERSION_AT_LEAST(3,1) +# define av_always_inline __attribute__((always_inline)) inline +#else +# define av_always_inline inline +#endif +#endif + +#ifndef av_noreturn +#if AV_GCC_VERSION_AT_LEAST(2,5) +# define av_noreturn __attribute__((noreturn)) +#else +# define av_noreturn +#endif +#endif + +#ifndef av_noinline +#if AV_GCC_VERSION_AT_LEAST(3,1) +# define av_noinline __attribute__((noinline)) +#else +# define av_noinline +#endif +#endif + +#ifndef av_pure +#if AV_GCC_VERSION_AT_LEAST(3,1) +# define av_pure __attribute__((pure)) +#else +# define av_pure +#endif +#endif + +#ifndef av_const +#if AV_GCC_VERSION_AT_LEAST(2,6) +# define av_const __attribute__((const)) +#else +# define av_const +#endif +#endif + +#ifndef av_cold +#if AV_GCC_VERSION_AT_LEAST(4,3) +# define av_cold __attribute__((cold)) +#else +# define av_cold +#endif +#endif + +#ifndef av_flatten +#if AV_GCC_VERSION_AT_LEAST(4,1) +# define av_flatten __attribute__((flatten)) +#else +# define av_flatten +#endif +#endif + +#ifndef attribute_deprecated +#if AV_GCC_VERSION_AT_LEAST(3,1) +# define attribute_deprecated __attribute__((deprecated)) +#else +# define attribute_deprecated +#endif +#endif + +/** + * Disable warnings about deprecated features + * This is useful for sections of code kept for backward compatibility and + * scheduled for removal. + */ +#ifndef AV_NOWARN_DEPRECATED +#if AV_GCC_VERSION_AT_LEAST(4,6) +# define AV_NOWARN_DEPRECATED(code) \ + _Pragma("GCC diagnostic push") \ + _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"") \ + code \ + _Pragma("GCC diagnostic pop") +#else +# define AV_NOWARN_DEPRECATED(code) code +#endif +#endif + + +#ifndef av_unused +#if defined(__GNUC__) +# define av_unused __attribute__((unused)) +#else +# define av_unused +#endif +#endif + +/** + * Mark a variable as used and prevent the compiler from optimizing it + * away. This is useful for variables accessed only from inline + * assembler without the compiler being aware. + */ +#ifndef av_used +#if AV_GCC_VERSION_AT_LEAST(3,1) +# define av_used __attribute__((used)) +#else +# define av_used +#endif +#endif + +#ifndef av_alias +#if AV_GCC_VERSION_AT_LEAST(3,3) +# define av_alias __attribute__((may_alias)) +#else +# define av_alias +#endif +#endif + +#ifndef av_uninit +#if defined(__GNUC__) && !defined(__INTEL_COMPILER) +# define av_uninit(x) x=x +#else +# define av_uninit(x) x +#endif +#endif + +#ifdef __GNUC__ +# define av_builtin_constant_p __builtin_constant_p +# define av_printf_format(fmtpos, attrpos) __attribute__((__format__(__printf__, fmtpos, attrpos))) +#else +# define av_builtin_constant_p(x) 0 +# define av_printf_format(fmtpos, attrpos) +#endif + +#endif /* AVUTIL_ATTRIBUTES_H */ diff --git a/Externals/ffmpeg/include/libavutil/audioconvert.h b/Externals/ffmpeg/include/libavutil/audioconvert.h new file mode 100644 index 00000000..29ec1cbc --- /dev/null +++ b/Externals/ffmpeg/include/libavutil/audioconvert.h @@ -0,0 +1,147 @@ +/* + * Copyright (c) 2006 Michael Niedermayer + * Copyright (c) 2008 Peter Ross + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_AUDIOCONVERT_H +#define AVUTIL_AUDIOCONVERT_H + +#include + +/** + * @file + * audio conversion routines + */ + +/** + * @addtogroup lavu_audio + * @{ + */ + +/** + * @defgroup channel_masks Audio channel masks + * @{ + */ +#define AV_CH_FRONT_LEFT 0x00000001 +#define AV_CH_FRONT_RIGHT 0x00000002 +#define AV_CH_FRONT_CENTER 0x00000004 +#define AV_CH_LOW_FREQUENCY 0x00000008 +#define AV_CH_BACK_LEFT 0x00000010 +#define AV_CH_BACK_RIGHT 0x00000020 +#define AV_CH_FRONT_LEFT_OF_CENTER 0x00000040 +#define AV_CH_FRONT_RIGHT_OF_CENTER 0x00000080 +#define AV_CH_BACK_CENTER 0x00000100 +#define AV_CH_SIDE_LEFT 0x00000200 +#define AV_CH_SIDE_RIGHT 0x00000400 +#define AV_CH_TOP_CENTER 0x00000800 +#define AV_CH_TOP_FRONT_LEFT 0x00001000 +#define AV_CH_TOP_FRONT_CENTER 0x00002000 +#define AV_CH_TOP_FRONT_RIGHT 0x00004000 +#define AV_CH_TOP_BACK_LEFT 0x00008000 +#define AV_CH_TOP_BACK_CENTER 0x00010000 +#define AV_CH_TOP_BACK_RIGHT 0x00020000 +#define AV_CH_STEREO_LEFT 0x20000000 ///< Stereo downmix. +#define AV_CH_STEREO_RIGHT 0x40000000 ///< See AV_CH_STEREO_LEFT. +#define AV_CH_WIDE_LEFT 0x0000000080000000ULL +#define AV_CH_WIDE_RIGHT 0x0000000100000000ULL +#define AV_CH_SURROUND_DIRECT_LEFT 0x0000000200000000ULL +#define AV_CH_SURROUND_DIRECT_RIGHT 0x0000000400000000ULL + +/** Channel mask value used for AVCodecContext.request_channel_layout + to indicate that the user requests the channel order of the decoder output + to be the native codec channel order. */ +#define AV_CH_LAYOUT_NATIVE 0x8000000000000000ULL + +/** + * @} + * @defgroup channel_mask_c Audio channel convenience macros + * @{ + * */ +#define AV_CH_LAYOUT_MONO (AV_CH_FRONT_CENTER) +#define AV_CH_LAYOUT_STEREO (AV_CH_FRONT_LEFT|AV_CH_FRONT_RIGHT) +#define AV_CH_LAYOUT_2POINT1 (AV_CH_LAYOUT_STEREO|AV_CH_LOW_FREQUENCY) +#define AV_CH_LAYOUT_2_1 (AV_CH_LAYOUT_STEREO|AV_CH_BACK_CENTER) +#define AV_CH_LAYOUT_SURROUND (AV_CH_LAYOUT_STEREO|AV_CH_FRONT_CENTER) +#define AV_CH_LAYOUT_3POINT1 (AV_CH_LAYOUT_SURROUND|AV_CH_LOW_FREQUENCY) +#define AV_CH_LAYOUT_4POINT0 (AV_CH_LAYOUT_SURROUND|AV_CH_BACK_CENTER) +#define AV_CH_LAYOUT_4POINT1 (AV_CH_LAYOUT_4POINT0|AV_CH_LOW_FREQUENCY) +#define AV_CH_LAYOUT_2_2 (AV_CH_LAYOUT_STEREO|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT) +#define AV_CH_LAYOUT_QUAD (AV_CH_LAYOUT_STEREO|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT) +#define AV_CH_LAYOUT_5POINT0 (AV_CH_LAYOUT_SURROUND|AV_CH_SIDE_LEFT|AV_CH_SIDE_RIGHT) +#define AV_CH_LAYOUT_5POINT1 (AV_CH_LAYOUT_5POINT0|AV_CH_LOW_FREQUENCY) +#define AV_CH_LAYOUT_5POINT0_BACK (AV_CH_LAYOUT_SURROUND|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT) +#define AV_CH_LAYOUT_5POINT1_BACK (AV_CH_LAYOUT_5POINT0_BACK|AV_CH_LOW_FREQUENCY) +#define AV_CH_LAYOUT_6POINT0 (AV_CH_LAYOUT_5POINT0|AV_CH_BACK_CENTER) +#define AV_CH_LAYOUT_6POINT0_FRONT (AV_CH_LAYOUT_2_2|AV_CH_FRONT_LEFT_OF_CENTER|AV_CH_FRONT_RIGHT_OF_CENTER) +#define AV_CH_LAYOUT_HEXAGONAL (AV_CH_LAYOUT_5POINT0_BACK|AV_CH_BACK_CENTER) +#define AV_CH_LAYOUT_6POINT1 (AV_CH_LAYOUT_5POINT1|AV_CH_BACK_CENTER) +#define AV_CH_LAYOUT_6POINT1_BACK (AV_CH_LAYOUT_5POINT1_BACK|AV_CH_BACK_CENTER) +#define AV_CH_LAYOUT_6POINT1_FRONT (AV_CH_LAYOUT_6POINT0_FRONT|AV_CH_LOW_FREQUENCY) +#define AV_CH_LAYOUT_7POINT0 (AV_CH_LAYOUT_5POINT0|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT) +#define AV_CH_LAYOUT_7POINT0_FRONT (AV_CH_LAYOUT_5POINT0|AV_CH_FRONT_LEFT_OF_CENTER|AV_CH_FRONT_RIGHT_OF_CENTER) +#define AV_CH_LAYOUT_7POINT1 (AV_CH_LAYOUT_5POINT1|AV_CH_BACK_LEFT|AV_CH_BACK_RIGHT) +#define AV_CH_LAYOUT_7POINT1_WIDE (AV_CH_LAYOUT_5POINT1|AV_CH_FRONT_LEFT_OF_CENTER|AV_CH_FRONT_RIGHT_OF_CENTER) +#define AV_CH_LAYOUT_OCTAGONAL (AV_CH_LAYOUT_5POINT0|AV_CH_BACK_LEFT|AV_CH_BACK_CENTER|AV_CH_BACK_RIGHT) +#define AV_CH_LAYOUT_STEREO_DOWNMIX (AV_CH_STEREO_LEFT|AV_CH_STEREO_RIGHT) + +/** + * @} + */ + +/** + * Return a channel layout id that matches name, 0 if no match. + * name can be one or several of the following notations, + * separated by '+' or '|': + * - the name of an usual channel layout (mono, stereo, 4.0, quad, 5.0, + * 5.0(side), 5.1, 5.1(side), 7.1, 7.1(wide), downmix); + * - the name of a single channel (FL, FR, FC, LFE, BL, BR, FLC, FRC, BC, + * SL, SR, TC, TFL, TFC, TFR, TBL, TBC, TBR, DL, DR); + * - a number of channels, in decimal, optionnally followed by 'c', yielding + * the default channel layout for that number of channels (@see + * av_get_default_channel_layout); + * - a channel layout mask, in hexadecimal starting with "0x" (see the + * AV_CH_* macros). + + Example: "stereo+FC" = "2+FC" = "2c+1c" = "0x7" + */ +uint64_t av_get_channel_layout(const char *name); + +/** + * Return a description of a channel layout. + * If nb_channels is <= 0, it is guessed from the channel_layout. + * + * @param buf put here the string containing the channel layout + * @param buf_size size in bytes of the buffer + */ +void av_get_channel_layout_string(char *buf, int buf_size, int nb_channels, uint64_t channel_layout); + +/** + * Return the number of channels in the channel layout. + */ +int av_get_channel_layout_nb_channels(uint64_t channel_layout); + +/** + * Return default channel layout for a given number of channels. + */ +int64_t av_get_default_channel_layout(int nb_channels); + +/** + * @} + */ + +#endif /* AVUTIL_AUDIOCONVERT_H */ diff --git a/Externals/ffmpeg/include/libavutil/avassert.h b/Externals/ffmpeg/include/libavutil/avassert.h new file mode 100644 index 00000000..e100d0bf --- /dev/null +++ b/Externals/ffmpeg/include/libavutil/avassert.h @@ -0,0 +1,66 @@ +/* + * copyright (c) 2010 Michael Niedermayer + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * simple assert() macros that are a bit more flexible than ISO C assert(). + * @author Michael Niedermayer + */ + +#ifndef AVUTIL_AVASSERT_H +#define AVUTIL_AVASSERT_H + +#include +#include "avutil.h" +#include "log.h" + +/** + * assert() equivalent, that is always enabled. + */ +#define av_assert0(cond) do { \ + if (!(cond)) { \ + av_log(NULL, AV_LOG_FATAL, "Assertion %s failed at %s:%d\n", \ + AV_STRINGIFY(cond), __FILE__, __LINE__); \ + abort(); \ + } \ +} while (0) + + +/** + * assert() equivalent, that does not lie in speed critical code. + * These asserts() thus can be enabled without fearing speedloss. + */ +#if defined(ASSERT_LEVEL) && ASSERT_LEVEL > 0 +#define av_assert1(cond) av_assert0(cond) +#else +#define av_assert1(cond) ((void)0) +#endif + + +/** + * assert() equivalent, that does lie in speed critical code. + */ +#if defined(ASSERT_LEVEL) && ASSERT_LEVEL > 1 +#define av_assert2(cond) av_assert0(cond) +#else +#define av_assert2(cond) ((void)0) +#endif + +#endif /* AVUTIL_AVASSERT_H */ diff --git a/Externals/ffmpeg/include/libavutil/avconfig.h b/Externals/ffmpeg/include/libavutil/avconfig.h new file mode 100644 index 00000000..f10aa618 --- /dev/null +++ b/Externals/ffmpeg/include/libavutil/avconfig.h @@ -0,0 +1,6 @@ +/* Generated by ffconf */ +#ifndef AVUTIL_AVCONFIG_H +#define AVUTIL_AVCONFIG_H +#define AV_HAVE_BIGENDIAN 0 +#define AV_HAVE_FAST_UNALIGNED 1 +#endif /* AVUTIL_AVCONFIG_H */ diff --git a/Externals/ffmpeg/include/libavutil/avstring.h b/Externals/ffmpeg/include/libavutil/avstring.h new file mode 100644 index 00000000..f73d6e74 --- /dev/null +++ b/Externals/ffmpeg/include/libavutil/avstring.h @@ -0,0 +1,209 @@ +/* + * Copyright (c) 2007 Mans Rullgard + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_AVSTRING_H +#define AVUTIL_AVSTRING_H + +#include +#include "attributes.h" + +/** + * @addtogroup lavu_string + * @{ + */ + +/** + * Return non-zero if pfx is a prefix of str. If it is, *ptr is set to + * the address of the first character in str after the prefix. + * + * @param str input string + * @param pfx prefix to test + * @param ptr updated if the prefix is matched inside str + * @return non-zero if the prefix matches, zero otherwise + */ +int av_strstart(const char *str, const char *pfx, const char **ptr); + +/** + * Return non-zero if pfx is a prefix of str independent of case. If + * it is, *ptr is set to the address of the first character in str + * after the prefix. + * + * @param str input string + * @param pfx prefix to test + * @param ptr updated if the prefix is matched inside str + * @return non-zero if the prefix matches, zero otherwise + */ +int av_stristart(const char *str, const char *pfx, const char **ptr); + +/** + * Locate the first case-independent occurrence in the string haystack + * of the string needle. A zero-length string needle is considered to + * match at the start of haystack. + * + * This function is a case-insensitive version of the standard strstr(). + * + * @param haystack string to search in + * @param needle string to search for + * @return pointer to the located match within haystack + * or a null pointer if no match + */ +char *av_stristr(const char *haystack, const char *needle); + +/** + * Copy the string src to dst, but no more than size - 1 bytes, and + * null-terminate dst. + * + * This function is the same as BSD strlcpy(). + * + * @param dst destination buffer + * @param src source string + * @param size size of destination buffer + * @return the length of src + * + * @warning since the return value is the length of src, src absolutely + * _must_ be a properly 0-terminated string, otherwise this will read beyond + * the end of the buffer and possibly crash. + */ +size_t av_strlcpy(char *dst, const char *src, size_t size); + +/** + * Append the string src to the string dst, but to a total length of + * no more than size - 1 bytes, and null-terminate dst. + * + * This function is similar to BSD strlcat(), but differs when + * size <= strlen(dst). + * + * @param dst destination buffer + * @param src source string + * @param size size of destination buffer + * @return the total length of src and dst + * + * @warning since the return value use the length of src and dst, these + * absolutely _must_ be a properly 0-terminated strings, otherwise this + * will read beyond the end of the buffer and possibly crash. + */ +size_t av_strlcat(char *dst, const char *src, size_t size); + +/** + * Append output to a string, according to a format. Never write out of + * the destination buffer, and always put a terminating 0 within + * the buffer. + * @param dst destination buffer (string to which the output is + * appended) + * @param size total size of the destination buffer + * @param fmt printf-compatible format string, specifying how the + * following parameters are used + * @return the length of the string that would have been generated + * if enough space had been available + */ +size_t av_strlcatf(char *dst, size_t size, const char *fmt, ...) av_printf_format(3, 4); + +/** + * Print arguments following specified format into a large enough auto + * allocated buffer. It is similar to GNU asprintf(). + * @param fmt printf-compatible format string, specifying how the + * following parameters are used. + * @return the allocated string + * @note You have to free the string yourself with av_free(). + */ +char *av_asprintf(const char *fmt, ...) av_printf_format(1, 2); + +/** + * Convert a number to a av_malloced string. + */ +char *av_d2str(double d); + +/** + * Unescape the given string until a non escaped terminating char, + * and return the token corresponding to the unescaped string. + * + * The normal \ and ' escaping is supported. Leading and trailing + * whitespaces are removed, unless they are escaped with '\' or are + * enclosed between ''. + * + * @param buf the buffer to parse, buf will be updated to point to the + * terminating char + * @param term a 0-terminated list of terminating chars + * @return the malloced unescaped string, which must be av_freed by + * the user, NULL in case of allocation failure + */ +char *av_get_token(const char **buf, const char *term); + +/** + * Split the string into several tokens which can be accessed by + * successive calls to av_strtok(). + * + * A token is defined as a sequence of characters not belonging to the + * set specified in delim. + * + * On the first call to av_strtok(), s should point to the string to + * parse, and the value of saveptr is ignored. In subsequent calls, s + * should be NULL, and saveptr should be unchanged since the previous + * call. + * + * This function is similar to strtok_r() defined in POSIX.1. + * + * @param s the string to parse, may be NULL + * @param delim 0-terminated list of token delimiters, must be non-NULL + * @param saveptr user-provided pointer which points to stored + * information necessary for av_strtok() to continue scanning the same + * string. saveptr is updated to point to the next character after the + * first delimiter found, or to NULL if the string was terminated + * @return the found token, or NULL when no token is found + */ +char *av_strtok(char *s, const char *delim, char **saveptr); + +/** + * Locale-independent conversion of ASCII characters to uppercase. + */ +static inline int av_toupper(int c) +{ + if (c >= 'a' && c <= 'z') + c ^= 0x20; + return c; +} + +/** + * Locale-independent conversion of ASCII characters to lowercase. + */ +static inline int av_tolower(int c) +{ + if (c >= 'A' && c <= 'Z') + c ^= 0x20; + return c; +} + +/** + * Locale-independent case-insensitive compare. + * @note This means only ASCII-range characters are case-insensitive + */ +int av_strcasecmp(const char *a, const char *b); + +/** + * Locale-independent case-insensitive compare. + * @note This means only ASCII-range characters are case-insensitive + */ +int av_strncasecmp(const char *a, const char *b, size_t n); + +/** + * @} + */ + +#endif /* AVUTIL_AVSTRING_H */ diff --git a/Externals/ffmpeg/include/libavutil/avutil.h b/Externals/ffmpeg/include/libavutil/avutil.h new file mode 100644 index 00000000..3f772621 --- /dev/null +++ b/Externals/ffmpeg/include/libavutil/avutil.h @@ -0,0 +1,349 @@ +/* + * copyright (c) 2006 Michael Niedermayer + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_AVUTIL_H +#define AVUTIL_AVUTIL_H + +/** + * @file + * external API header + */ + +/** + * @mainpage + * + * @section libav_intro Introduction + * + * This document describe the usage of the different libraries + * provided by FFmpeg. + * + * @li @ref libavc "libavcodec" encoding/decoding library + * @li @subpage libavfilter graph based frame editing library + * @li @ref libavf "libavformat" I/O and muxing/demuxing library + * @li @ref lavd "libavdevice" special devices muxing/demuxing library + * @li @ref lavu "libavutil" common utility library + * @li @subpage libpostproc post processing library + * @li @subpage libswscale color conversion and scaling library + * + */ + +/** + * @defgroup lavu Common utility functions + * + * @brief + * libavutil contains the code shared across all the other FFmpeg + * libraries + * + * @note In order to use the functions provided by avutil you must include + * the specific header. + * + * @{ + * + * @defgroup lavu_crypto Crypto and Hashing + * + * @{ + * @} + * + * @defgroup lavu_math Maths + * @{ + * + * @} + * + * @defgroup lavu_string String Manipulation + * + * @{ + * + * @} + * + * @defgroup lavu_mem Memory Management + * + * @{ + * + * @} + * + * @defgroup lavu_data Data Structures + * @{ + * + * @} + * + * @defgroup lavu_audio Audio related + * + * @{ + * + * @} + * + * @defgroup lavu_error Error Codes + * + * @{ + * + * @} + * + * @defgroup lavu_misc Other + * + * @{ + * + * @defgroup lavu_internal Internal + * + * Not exported functions, for internal usage only + * + * @{ + * + * @} + */ + + +/** + * @defgroup preproc_misc Preprocessor String Macros + * + * String manipulation macros + * + * @{ + */ + +#define AV_STRINGIFY(s) AV_TOSTRING(s) +#define AV_TOSTRING(s) #s + +#define AV_GLUE(a, b) a ## b +#define AV_JOIN(a, b) AV_GLUE(a, b) + +#define AV_PRAGMA(s) _Pragma(#s) + +/** + * @} + */ + +/** + * @defgroup version_utils Library Version Macros + * + * Useful to check and match library version in order to maintain + * backward compatibility. + * + * @{ + */ + +#define AV_VERSION_INT(a, b, c) (a<<16 | b<<8 | c) +#define AV_VERSION_DOT(a, b, c) a ##.## b ##.## c +#define AV_VERSION(a, b, c) AV_VERSION_DOT(a, b, c) + +/** + * @} + * + * @defgroup lavu_ver Version and Build diagnostics + * + * Macros and function useful to check at compiletime and at runtime + * which version of libavutil is in use. + * + * @{ + */ + +#define LIBAVUTIL_VERSION_MAJOR 51 +#define LIBAVUTIL_VERSION_MINOR 34 +#define LIBAVUTIL_VERSION_MICRO 101 + +#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \ + LIBAVUTIL_VERSION_MINOR, \ + LIBAVUTIL_VERSION_MICRO) +#define LIBAVUTIL_VERSION AV_VERSION(LIBAVUTIL_VERSION_MAJOR, \ + LIBAVUTIL_VERSION_MINOR, \ + LIBAVUTIL_VERSION_MICRO) +#define LIBAVUTIL_BUILD LIBAVUTIL_VERSION_INT + +#define LIBAVUTIL_IDENT "Lavu" AV_STRINGIFY(LIBAVUTIL_VERSION) + +/** + * @} + * + * @defgroup depr_guards Deprecation guards + * Those FF_API_* defines are not part of public API. + * They may change, break or disappear at any time. + * + * They are used mostly internally to mark code that will be removed + * on the next major version. + * + * @{ + */ +#ifndef FF_API_OLD_EVAL_NAMES +#define FF_API_OLD_EVAL_NAMES (LIBAVUTIL_VERSION_MAJOR < 52) +#endif +#ifndef FF_API_GET_BITS_PER_SAMPLE_FMT +#define FF_API_GET_BITS_PER_SAMPLE_FMT (LIBAVUTIL_VERSION_MAJOR < 52) +#endif +#ifndef FF_API_FIND_OPT +#define FF_API_FIND_OPT (LIBAVUTIL_VERSION_MAJOR < 52) +#endif +#ifndef FF_API_AV_FIFO_PEEK +#define FF_API_AV_FIFO_PEEK (LIBAVUTIL_VERSION_MAJOR < 52) +#endif +#ifndef FF_API_OLD_AVOPTIONS +#define FF_API_OLD_AVOPTIONS (LIBAVUTIL_VERSION_MAJOR < 52) +#endif + +/** + * @} + */ + +/** + * @addtogroup lavu_ver + * @{ + */ + +/** + * Return the LIBAVUTIL_VERSION_INT constant. + */ +unsigned avutil_version(void); + +/** + * Return the libavutil build-time configuration. + */ +const char *avutil_configuration(void); + +/** + * Return the libavutil license. + */ +const char *avutil_license(void); + +/** + * @} + */ + +/** + * @addtogroup lavu_media Media Type + * @brief Media Type + */ + +enum AVMediaType { + AVMEDIA_TYPE_UNKNOWN = -1, ///< Usually treated as AVMEDIA_TYPE_DATA + AVMEDIA_TYPE_VIDEO, + AVMEDIA_TYPE_AUDIO, + AVMEDIA_TYPE_DATA, ///< Opaque data information usually continuous + AVMEDIA_TYPE_SUBTITLE, + AVMEDIA_TYPE_ATTACHMENT, ///< Opaque data information usually sparse + AVMEDIA_TYPE_NB +}; + +/** + * Return a string describing the media_type enum, NULL if media_type + * is unknown. + */ +const char *av_get_media_type_string(enum AVMediaType media_type); + +/** + * @defgroup lavu_const Constants + * @{ + * + * @defgroup lavu_enc Encoding specific + * + * @note those definition should move to avcodec + * @{ + */ + +#define FF_LAMBDA_SHIFT 7 +#define FF_LAMBDA_SCALE (1< + +/** + * @defgroup lavu_base64 Base64 + * @ingroup lavu_crypto + * @{ + */ + + +/** + * Decode a base64-encoded string. + * + * @param out buffer for decoded data + * @param in null-terminated input string + * @param out_size size in bytes of the out buffer, must be at + * least 3/4 of the length of in + * @return number of bytes written, or a negative value in case of + * invalid input + */ +int av_base64_decode(uint8_t *out, const char *in, int out_size); + +/** + * Encode data to base64 and null-terminate. + * + * @param out buffer for encoded data + * @param out_size size in bytes of the output buffer, must be at + * least AV_BASE64_SIZE(in_size) + * @param in_size size in bytes of the 'in' buffer + * @return 'out' or NULL in case of error + */ +char *av_base64_encode(char *out, int out_size, const uint8_t *in, int in_size); + +/** + * Calculate the output size needed to base64-encode x bytes. + */ +#define AV_BASE64_SIZE(x) (((x)+2) / 3 * 4 + 1) + + /** + * @} + */ + +#endif /* AVUTIL_BASE64_H */ diff --git a/Externals/ffmpeg/include/libavutil/bswap.h b/Externals/ffmpeg/include/libavutil/bswap.h new file mode 100644 index 00000000..06f65481 --- /dev/null +++ b/Externals/ffmpeg/include/libavutil/bswap.h @@ -0,0 +1,109 @@ +/* + * copyright (c) 2006 Michael Niedermayer + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * byte swapping routines + */ + +#ifndef AVUTIL_BSWAP_H +#define AVUTIL_BSWAP_H + +#include +#include "libavutil/avconfig.h" +#include "attributes.h" + +#ifdef HAVE_AV_CONFIG_H + +#include "config.h" + +#if ARCH_ARM +# include "arm/bswap.h" +#elif ARCH_AVR32 +# include "avr32/bswap.h" +#elif ARCH_BFIN +# include "bfin/bswap.h" +#elif ARCH_SH4 +# include "sh4/bswap.h" +#elif ARCH_X86 +# include "x86/bswap.h" +#endif + +#endif /* HAVE_AV_CONFIG_H */ + +#define AV_BSWAP16C(x) (((x) << 8 & 0xff00) | ((x) >> 8 & 0x00ff)) +#define AV_BSWAP32C(x) (AV_BSWAP16C(x) << 16 | AV_BSWAP16C((x) >> 16)) +#define AV_BSWAP64C(x) (AV_BSWAP32C(x) << 32 | AV_BSWAP32C((x) >> 32)) + +#define AV_BSWAPC(s, x) AV_BSWAP##s##C(x) + +#ifndef av_bswap16 +static av_always_inline av_const uint16_t av_bswap16(uint16_t x) +{ + x= (x>>8) | (x<<8); + return x; +} +#endif + +#ifndef av_bswap32 +static av_always_inline av_const uint32_t av_bswap32(uint32_t x) +{ + return AV_BSWAP32C(x); +} +#endif + +#ifndef av_bswap64 +static inline uint64_t av_const av_bswap64(uint64_t x) +{ + return (uint64_t)av_bswap32(x) << 32 | av_bswap32(x >> 32); +} +#endif + +// be2ne ... big-endian to native-endian +// le2ne ... little-endian to native-endian + +#if AV_HAVE_BIGENDIAN +#define av_be2ne16(x) (x) +#define av_be2ne32(x) (x) +#define av_be2ne64(x) (x) +#define av_le2ne16(x) av_bswap16(x) +#define av_le2ne32(x) av_bswap32(x) +#define av_le2ne64(x) av_bswap64(x) +#define AV_BE2NEC(s, x) (x) +#define AV_LE2NEC(s, x) AV_BSWAPC(s, x) +#else +#define av_be2ne16(x) av_bswap16(x) +#define av_be2ne32(x) av_bswap32(x) +#define av_be2ne64(x) av_bswap64(x) +#define av_le2ne16(x) (x) +#define av_le2ne32(x) (x) +#define av_le2ne64(x) (x) +#define AV_BE2NEC(s, x) AV_BSWAPC(s, x) +#define AV_LE2NEC(s, x) (x) +#endif + +#define AV_BE2NE16C(x) AV_BE2NEC(16, x) +#define AV_BE2NE32C(x) AV_BE2NEC(32, x) +#define AV_BE2NE64C(x) AV_BE2NEC(64, x) +#define AV_LE2NE16C(x) AV_LE2NEC(16, x) +#define AV_LE2NE32C(x) AV_LE2NEC(32, x) +#define AV_LE2NE64C(x) AV_LE2NEC(64, x) + +#endif /* AVUTIL_BSWAP_H */ diff --git a/Externals/ffmpeg/include/libavutil/common.h b/Externals/ffmpeg/include/libavutil/common.h new file mode 100644 index 00000000..84290c63 --- /dev/null +++ b/Externals/ffmpeg/include/libavutil/common.h @@ -0,0 +1,400 @@ +/* + * copyright (c) 2006 Michael Niedermayer + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * common internal and external API header + */ + +#ifndef AVUTIL_COMMON_H +#define AVUTIL_COMMON_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include "attributes.h" +#include "libavutil/avconfig.h" + +#if AV_HAVE_BIGENDIAN +# define AV_NE(be, le) (be) +#else +# define AV_NE(be, le) (le) +#endif + +//rounded division & shift +#define RSHIFT(a,b) ((a) > 0 ? ((a) + ((1<<(b))>>1))>>(b) : ((a) + ((1<<(b))>>1)-1)>>(b)) +/* assume b>0 */ +#define ROUNDED_DIV(a,b) (((a)>0 ? (a) + ((b)>>1) : (a) - ((b)>>1))/(b)) +#define FFUDIV(a,b) (((a)>0 ?(a):(a)-(b)+1) / (b)) +#define FFUMOD(a,b) ((a)-(b)*FFUDIV(a,b)) +#define FFABS(a) ((a) >= 0 ? (a) : (-(a))) +#define FFSIGN(a) ((a) > 0 ? 1 : -1) + +#define FFMAX(a,b) ((a) > (b) ? (a) : (b)) +#define FFMAX3(a,b,c) FFMAX(FFMAX(a,b),c) +#define FFMIN(a,b) ((a) > (b) ? (b) : (a)) +#define FFMIN3(a,b,c) FFMIN(FFMIN(a,b),c) + +#define FFSWAP(type,a,b) do{type SWAP_tmp= b; b= a; a= SWAP_tmp;}while(0) +#define FF_ARRAY_ELEMS(a) (sizeof(a) / sizeof((a)[0])) +#define FFALIGN(x, a) (((x)+(a)-1)&~((a)-1)) + +/* misc math functions */ +extern const uint8_t ff_log2_tab[256]; + +extern const uint8_t av_reverse[256]; + +static av_always_inline av_const int av_log2_c(unsigned int v) +{ + int n = 0; + if (v & 0xffff0000) { + v >>= 16; + n += 16; + } + if (v & 0xff00) { + v >>= 8; + n += 8; + } + n += ff_log2_tab[v]; + + return n; +} + +static av_always_inline av_const int av_log2_16bit_c(unsigned int v) +{ + int n = 0; + if (v & 0xff00) { + v >>= 8; + n += 8; + } + n += ff_log2_tab[v]; + + return n; +} + +#ifdef HAVE_AV_CONFIG_H +# include "config.h" +# include "intmath.h" +#endif + +/* Pull in unguarded fallback defines at the end of this file. */ +#include "common.h" + +/** + * Clip a signed integer value into the amin-amax range. + * @param a value to clip + * @param amin minimum value of the clip range + * @param amax maximum value of the clip range + * @return clipped value + */ +static av_always_inline av_const int av_clip_c(int a, int amin, int amax) +{ + if (a < amin) return amin; + else if (a > amax) return amax; + else return a; +} + +/** + * Clip a signed integer value into the 0-255 range. + * @param a value to clip + * @return clipped value + */ +static av_always_inline av_const uint8_t av_clip_uint8_c(int a) +{ + if (a&(~0xFF)) return (-a)>>31; + else return a; +} + +/** + * Clip a signed integer value into the -128,127 range. + * @param a value to clip + * @return clipped value + */ +static av_always_inline av_const int8_t av_clip_int8_c(int a) +{ + if ((a+0x80) & ~0xFF) return (a>>31) ^ 0x7F; + else return a; +} + +/** + * Clip a signed integer value into the 0-65535 range. + * @param a value to clip + * @return clipped value + */ +static av_always_inline av_const uint16_t av_clip_uint16_c(int a) +{ + if (a&(~0xFFFF)) return (-a)>>31; + else return a; +} + +/** + * Clip a signed integer value into the -32768,32767 range. + * @param a value to clip + * @return clipped value + */ +static av_always_inline av_const int16_t av_clip_int16_c(int a) +{ + if ((a+0x8000) & ~0xFFFF) return (a>>31) ^ 0x7FFF; + else return a; +} + +/** + * Clip a signed 64-bit integer value into the -2147483648,2147483647 range. + * @param a value to clip + * @return clipped value + */ +static av_always_inline av_const int32_t av_clipl_int32_c(int64_t a) +{ + if ((a+0x80000000u) & ~UINT64_C(0xFFFFFFFF)) return (a>>63) ^ 0x7FFFFFFF; + else return a; +} + +/** + * Clip a signed integer to an unsigned power of two range. + * @param a value to clip + * @param p bit position to clip at + * @return clipped value + */ +static av_always_inline av_const unsigned av_clip_uintp2_c(int a, int p) +{ + if (a & ~((1<> 31 & ((1< amax) return amax; + else return a; +} + +/** Compute ceil(log2(x)). + * @param x value used to compute ceil(log2(x)) + * @return computed ceiling of log2(x) + */ +static av_always_inline av_const int av_ceil_log2_c(int x) +{ + return av_log2((x - 1) << 1); +} + +/** + * Count number of bits set to one in x + * @param x value to count bits of + * @return the number of bits set to one in x + */ +static av_always_inline av_const int av_popcount_c(uint32_t x) +{ + x -= (x >> 1) & 0x55555555; + x = (x & 0x33333333) + ((x >> 2) & 0x33333333); + x = (x + (x >> 4)) & 0x0F0F0F0F; + x += x >> 8; + return (x + (x >> 16)) & 0x3F; +} + +/** + * Count number of bits set to one in x + * @param x value to count bits of + * @return the number of bits set to one in x + */ +static av_always_inline av_const int av_popcount64_c(uint64_t x) +{ + return av_popcount(x) + av_popcount(x >> 32); +} + +#define MKTAG(a,b,c,d) ((a) | ((b) << 8) | ((c) << 16) | ((unsigned)(d) << 24)) +#define MKBETAG(a,b,c,d) ((d) | ((c) << 8) | ((b) << 16) | ((unsigned)(a) << 24)) + +/** + * Convert a UTF-8 character (up to 4 bytes) to its 32-bit UCS-4 encoded form. + * + * @param val Output value, must be an lvalue of type uint32_t. + * @param GET_BYTE Expression reading one byte from the input. + * Evaluated up to 7 times (4 for the currently + * assigned Unicode range). With a memory buffer + * input, this could be *ptr++. + * @param ERROR Expression to be evaluated on invalid input, + * typically a goto statement. + */ +#define GET_UTF8(val, GET_BYTE, ERROR)\ + val= GET_BYTE;\ + {\ + int ones= 7 - av_log2(val ^ 255);\ + if(ones==1)\ + ERROR\ + val&= 127>>ones;\ + while(--ones > 0){\ + int tmp= GET_BYTE - 128;\ + if(tmp>>6)\ + ERROR\ + val= (val<<6) + tmp;\ + }\ + } + +/** + * Convert a UTF-16 character (2 or 4 bytes) to its 32-bit UCS-4 encoded form. + * + * @param val Output value, must be an lvalue of type uint32_t. + * @param GET_16BIT Expression returning two bytes of UTF-16 data converted + * to native byte order. Evaluated one or two times. + * @param ERROR Expression to be evaluated on invalid input, + * typically a goto statement. + */ +#define GET_UTF16(val, GET_16BIT, ERROR)\ + val = GET_16BIT;\ + {\ + unsigned int hi = val - 0xD800;\ + if (hi < 0x800) {\ + val = GET_16BIT - 0xDC00;\ + if (val > 0x3FFU || hi > 0x3FFU)\ + ERROR\ + val += (hi<<10) + 0x10000;\ + }\ + }\ + +/** + * @def PUT_UTF8(val, tmp, PUT_BYTE) + * Convert a 32-bit Unicode character to its UTF-8 encoded form (up to 4 bytes long). + * @param val is an input-only argument and should be of type uint32_t. It holds + * a UCS-4 encoded Unicode character that is to be converted to UTF-8. If + * val is given as a function it is executed only once. + * @param tmp is a temporary variable and should be of type uint8_t. It + * represents an intermediate value during conversion that is to be + * output by PUT_BYTE. + * @param PUT_BYTE writes the converted UTF-8 bytes to any proper destination. + * It could be a function or a statement, and uses tmp as the input byte. + * For example, PUT_BYTE could be "*output++ = tmp;" PUT_BYTE will be + * executed up to 4 times for values in the valid UTF-8 range and up to + * 7 times in the general case, depending on the length of the converted + * Unicode character. + */ +#define PUT_UTF8(val, tmp, PUT_BYTE)\ + {\ + int bytes, shift;\ + uint32_t in = val;\ + if (in < 0x80) {\ + tmp = in;\ + PUT_BYTE\ + } else {\ + bytes = (av_log2(in) + 4) / 5;\ + shift = (bytes - 1) * 6;\ + tmp = (256 - (256 >> bytes)) | (in >> shift);\ + PUT_BYTE\ + while (shift >= 6) {\ + shift -= 6;\ + tmp = 0x80 | ((in >> shift) & 0x3f);\ + PUT_BYTE\ + }\ + }\ + } + +/** + * @def PUT_UTF16(val, tmp, PUT_16BIT) + * Convert a 32-bit Unicode character to its UTF-16 encoded form (2 or 4 bytes). + * @param val is an input-only argument and should be of type uint32_t. It holds + * a UCS-4 encoded Unicode character that is to be converted to UTF-16. If + * val is given as a function it is executed only once. + * @param tmp is a temporary variable and should be of type uint16_t. It + * represents an intermediate value during conversion that is to be + * output by PUT_16BIT. + * @param PUT_16BIT writes the converted UTF-16 data to any proper destination + * in desired endianness. It could be a function or a statement, and uses tmp + * as the input byte. For example, PUT_BYTE could be "*output++ = tmp;" + * PUT_BYTE will be executed 1 or 2 times depending on input character. + */ +#define PUT_UTF16(val, tmp, PUT_16BIT)\ + {\ + uint32_t in = val;\ + if (in < 0x10000) {\ + tmp = in;\ + PUT_16BIT\ + } else {\ + tmp = 0xD800 | ((in - 0x10000) >> 10);\ + PUT_16BIT\ + tmp = 0xDC00 | ((in - 0x10000) & 0x3FF);\ + PUT_16BIT\ + }\ + }\ + + + +#include "mem.h" + +#ifdef HAVE_AV_CONFIG_H +# include "internal.h" +#endif /* HAVE_AV_CONFIG_H */ + +#endif /* AVUTIL_COMMON_H */ + +/* + * The following definitions are outside the multiple inclusion guard + * to ensure they are immediately available in intmath.h. + */ + +#ifndef av_log2 +# define av_log2 av_log2_c +#endif +#ifndef av_log2_16bit +# define av_log2_16bit av_log2_16bit_c +#endif +#ifndef av_ceil_log2 +# define av_ceil_log2 av_ceil_log2_c +#endif +#ifndef av_clip +# define av_clip av_clip_c +#endif +#ifndef av_clip_uint8 +# define av_clip_uint8 av_clip_uint8_c +#endif +#ifndef av_clip_int8 +# define av_clip_int8 av_clip_int8_c +#endif +#ifndef av_clip_uint16 +# define av_clip_uint16 av_clip_uint16_c +#endif +#ifndef av_clip_int16 +# define av_clip_int16 av_clip_int16_c +#endif +#ifndef av_clipl_int32 +# define av_clipl_int32 av_clipl_int32_c +#endif +#ifndef av_clip_uintp2 +# define av_clip_uintp2 av_clip_uintp2_c +#endif +#ifndef av_clipf +# define av_clipf av_clipf_c +#endif +#ifndef av_popcount +# define av_popcount av_popcount_c +#endif +#ifndef av_popcount64 +# define av_popcount64 av_popcount64_c +#endif diff --git a/Externals/ffmpeg/include/libavutil/cpu.h b/Externals/ffmpeg/include/libavutil/cpu.h new file mode 100644 index 00000000..5f7eed2b --- /dev/null +++ b/Externals/ffmpeg/include/libavutil/cpu.h @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2000, 2001, 2002 Fabrice Bellard + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_CPU_H +#define AVUTIL_CPU_H + +#define AV_CPU_FLAG_FORCE 0x80000000 /* force usage of selected flags (OR) */ + + /* lower 16 bits - CPU features */ +#define AV_CPU_FLAG_MMX 0x0001 ///< standard MMX +#define AV_CPU_FLAG_MMX2 0x0002 ///< SSE integer functions or AMD MMX ext +#define AV_CPU_FLAG_3DNOW 0x0004 ///< AMD 3DNOW +#define AV_CPU_FLAG_SSE 0x0008 ///< SSE functions +#define AV_CPU_FLAG_SSE2 0x0010 ///< PIV SSE2 functions +#define AV_CPU_FLAG_SSE2SLOW 0x40000000 ///< SSE2 supported, but usually not faster +#define AV_CPU_FLAG_3DNOWEXT 0x0020 ///< AMD 3DNowExt +#define AV_CPU_FLAG_SSE3 0x0040 ///< Prescott SSE3 functions +#define AV_CPU_FLAG_SSE3SLOW 0x20000000 ///< SSE3 supported, but usually not faster +#define AV_CPU_FLAG_SSSE3 0x0080 ///< Conroe SSSE3 functions +#define AV_CPU_FLAG_ATOM 0x10000000 ///< Atom processor, some SSSE3 instructions are slower +#define AV_CPU_FLAG_SSE4 0x0100 ///< Penryn SSE4.1 functions +#define AV_CPU_FLAG_SSE42 0x0200 ///< Nehalem SSE4.2 functions +#define AV_CPU_FLAG_AVX 0x4000 ///< AVX functions: requires OS support even if YMM registers aren't used +#define AV_CPU_FLAG_XOP 0x0400 ///< Bulldozer XOP functions +#define AV_CPU_FLAG_FMA4 0x0800 ///< Bulldozer FMA4 functions +#define AV_CPU_FLAG_IWMMXT 0x0100 ///< XScale IWMMXT +#define AV_CPU_FLAG_ALTIVEC 0x0001 ///< standard + +/** + * Return the flags which specify extensions supported by the CPU. + */ +int av_get_cpu_flags(void); + + +/** + * Disables cpu detection and forces the specified flags. + */ +void av_force_cpu_flags(int flags); + + +/* The following CPU-specific functions shall not be called directly. */ +int ff_get_cpu_flags_arm(void); +int ff_get_cpu_flags_ppc(void); +int ff_get_cpu_flags_x86(void); + +#endif /* AVUTIL_CPU_H */ diff --git a/Externals/ffmpeg/include/libavutil/crc.h b/Externals/ffmpeg/include/libavutil/crc.h new file mode 100644 index 00000000..6c0baab5 --- /dev/null +++ b/Externals/ffmpeg/include/libavutil/crc.h @@ -0,0 +1,44 @@ +/* + * copyright (c) 2006 Michael Niedermayer + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_CRC_H +#define AVUTIL_CRC_H + +#include +#include +#include "attributes.h" + +typedef uint32_t AVCRC; + +typedef enum { + AV_CRC_8_ATM, + AV_CRC_16_ANSI, + AV_CRC_16_CCITT, + AV_CRC_32_IEEE, + AV_CRC_32_IEEE_LE, /*< reversed bitorder version of AV_CRC_32_IEEE */ + AV_CRC_MAX, /*< Not part of public API! Do not use outside libavutil. */ +}AVCRCId; + +int av_crc_init(AVCRC *ctx, int le, int bits, uint32_t poly, int ctx_size); +const AVCRC *av_crc_get_table(AVCRCId crc_id); +uint32_t av_crc(const AVCRC *ctx, uint32_t start_crc, const uint8_t *buffer, size_t length) av_pure; + +#endif /* AVUTIL_CRC_H */ + diff --git a/Externals/ffmpeg/include/libavutil/dict.h b/Externals/ffmpeg/include/libavutil/dict.h new file mode 100644 index 00000000..2adf28c1 --- /dev/null +++ b/Externals/ffmpeg/include/libavutil/dict.h @@ -0,0 +1,127 @@ +/* + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * Public dictionary API. + * @deprecated + * AVDictionary is provided for compatibility with libav. It is both in + * implementation as well as API inefficient. It does not scale and is + * extremely slow with large dictionaries. + * It is recommended that new code uses our tree container from tree.c/h + * where applicable, which uses AVL trees to achieve O(log n) performance. + */ + +#ifndef AVUTIL_DICT_H +#define AVUTIL_DICT_H + +/** + * @addtogroup lavu_dict AVDictionary + * @ingroup lavu_data + * + * @brief Simple key:value store + * + * @{ + * Dictionaries are used for storing key:value pairs. To create + * an AVDictionary, simply pass an address of a NULL pointer to + * av_dict_set(). NULL can be used as an empty dictionary wherever + * a pointer to an AVDictionary is required. + * Use av_dict_get() to retrieve an entry or iterate over all + * entries and finally av_dict_free() to free the dictionary + * and all its contents. + * + * @code + * AVDictionary *d = NULL; // "create" an empty dictionary + * av_dict_set(&d, "foo", "bar", 0); // add an entry + * + * char *k = av_strdup("key"); // if your strings are already allocated, + * char *v = av_strdup("value"); // you can avoid copying them like this + * av_dict_set(&d, k, v, AV_DICT_DONT_STRDUP_KEY | AV_DICT_DONT_STRDUP_VAL); + * + * AVDictionaryEntry *t = NULL; + * while (t = av_dict_get(d, "", t, AV_DICT_IGNORE_SUFFIX)) { + * <....> // iterate over all entries in d + * } + * + * av_dict_free(&d); + * @endcode + * + */ + +#define AV_DICT_MATCH_CASE 1 +#define AV_DICT_IGNORE_SUFFIX 2 +#define AV_DICT_DONT_STRDUP_KEY 4 /**< Take ownership of a key that's been + allocated with av_malloc() and children. */ +#define AV_DICT_DONT_STRDUP_VAL 8 /**< Take ownership of a value that's been + allocated with av_malloc() and chilren. */ +#define AV_DICT_DONT_OVERWRITE 16 ///< Don't overwrite existing entries. +#define AV_DICT_APPEND 32 /**< If the entry already exists, append to it. Note that no + delimiter is added, the strings are simply concatenated. */ + +typedef struct { + char *key; + char *value; +} AVDictionaryEntry; + +typedef struct AVDictionary AVDictionary; + +/** + * Get a dictionary entry with matching key. + * + * @param prev Set to the previous matching element to find the next. + * If set to NULL the first matching element is returned. + * @param flags Allows case as well as suffix-insensitive comparisons. + * @return Found entry or NULL, changing key or value leads to undefined behavior. + */ +AVDictionaryEntry * +av_dict_get(AVDictionary *m, const char *key, const AVDictionaryEntry *prev, int flags); + +/** + * Set the given entry in *pm, overwriting an existing entry. + * + * @param pm pointer to a pointer to a dictionary struct. If *pm is NULL + * a dictionary struct is allocated and put in *pm. + * @param key entry key to add to *pm (will be av_strduped depending on flags) + * @param value entry value to add to *pm (will be av_strduped depending on flags). + * Passing a NULL value will cause an existing tag to be deleted. + * @return >= 0 on success otherwise an error code <0 + */ +int av_dict_set(AVDictionary **pm, const char *key, const char *value, int flags); + +/** + * Copy entries from one AVDictionary struct into another. + * @param dst pointer to a pointer to a AVDictionary struct. If *dst is NULL, + * this function will allocate a struct for you and put it in *dst + * @param src pointer to source AVDictionary struct + * @param flags flags to use when setting entries in *dst + * @note metadata is read using the AV_DICT_IGNORE_SUFFIX flag + */ +void av_dict_copy(AVDictionary **dst, AVDictionary *src, int flags); + +/** + * Free all the memory allocated for an AVDictionary struct + * and all keys and values. + */ +void av_dict_free(AVDictionary **m); + +/** + * @} + */ + +#endif // AVUTIL_DICT_H diff --git a/Externals/ffmpeg/include/libavutil/error.h b/Externals/ffmpeg/include/libavutil/error.h new file mode 100644 index 00000000..40e54f1e --- /dev/null +++ b/Externals/ffmpeg/include/libavutil/error.h @@ -0,0 +1,86 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * error code definitions + */ + +#ifndef AVUTIL_ERROR_H +#define AVUTIL_ERROR_H + +#include +#include "avutil.h" + +/** + * @addtogroup lavu_error + * + * @{ + */ + + +/* error handling */ +#if EDOM > 0 +#define AVERROR(e) (-(e)) ///< Returns a negative error code from a POSIX error code, to return from library functions. +#define AVUNERROR(e) (-(e)) ///< Returns a POSIX error code from a library function error return value. +#else +/* Some platforms have E* and errno already negated. */ +#define AVERROR(e) (e) +#define AVUNERROR(e) (e) +#endif + +#define AVERROR_BSF_NOT_FOUND (-MKTAG(0xF8,'B','S','F')) ///< Bitstream filter not found +#define AVERROR_BUG (-MKTAG( 'B','U','G','!')) ///< Internal bug, also see AVERROR_BUG2 +#define AVERROR_DECODER_NOT_FOUND (-MKTAG(0xF8,'D','E','C')) ///< Decoder not found +#define AVERROR_DEMUXER_NOT_FOUND (-MKTAG(0xF8,'D','E','M')) ///< Demuxer not found +#define AVERROR_ENCODER_NOT_FOUND (-MKTAG(0xF8,'E','N','C')) ///< Encoder not found +#define AVERROR_EOF (-MKTAG( 'E','O','F',' ')) ///< End of file +#define AVERROR_EXIT (-MKTAG( 'E','X','I','T')) ///< Immediate exit was requested; the called function should not be restarted +#define AVERROR_FILTER_NOT_FOUND (-MKTAG(0xF8,'F','I','L')) ///< Filter not found +#define AVERROR_INVALIDDATA (-MKTAG( 'I','N','D','A')) ///< Invalid data found when processing input +#define AVERROR_MUXER_NOT_FOUND (-MKTAG(0xF8,'M','U','X')) ///< Muxer not found +#define AVERROR_OPTION_NOT_FOUND (-MKTAG(0xF8,'O','P','T')) ///< Option not found +#define AVERROR_PATCHWELCOME (-MKTAG( 'P','A','W','E')) ///< Not yet implemented in FFmpeg, patches welcome +#define AVERROR_PROTOCOL_NOT_FOUND (-MKTAG(0xF8,'P','R','O')) ///< Protocol not found +#define AVERROR_STREAM_NOT_FOUND (-MKTAG(0xF8,'S','T','R')) ///< Stream not found + +/** + * This is semantically identical to AVERROR_BUG + * it has been introduced in Libav after our AVERROR_BUG and with a modified value. + */ +#define AVERROR_BUG2 (-MKTAG( 'B','U','G',' ')) + +/** + * Put a description of the AVERROR code errnum in errbuf. + * In case of failure the global variable errno is set to indicate the + * error. Even in case of failure av_strerror() will print a generic + * error message indicating the errnum provided to errbuf. + * + * @param errnum error code to describe + * @param errbuf buffer to which description is written + * @param errbuf_size the size in bytes of errbuf + * @return 0 on success, a negative value if a description for errnum + * cannot be found + */ +int av_strerror(int errnum, char *errbuf, size_t errbuf_size); + +/** + * @} + */ + +#endif /* AVUTIL_ERROR_H */ diff --git a/Externals/ffmpeg/include/libavutil/eval.h b/Externals/ffmpeg/include/libavutil/eval.h new file mode 100644 index 00000000..22fa1211 --- /dev/null +++ b/Externals/ffmpeg/include/libavutil/eval.h @@ -0,0 +1,146 @@ +/* + * Copyright (c) 2002 Michael Niedermayer + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * simple arithmetic expression evaluator + */ + +#ifndef AVUTIL_EVAL_H +#define AVUTIL_EVAL_H + +#include "avutil.h" + +typedef struct AVExpr AVExpr; + +/** + * Parse and evaluate an expression. + * Note, this is significantly slower than av_expr_eval(). + * + * @param res a pointer to a double where is put the result value of + * the expression, or NAN in case of error + * @param s expression as a zero terminated string, for example "1+2^3+5*5+sin(2/3)" + * @param const_names NULL terminated array of zero terminated strings of constant identifiers, for example {"PI", "E", 0} + * @param const_values a zero terminated array of values for the identifiers from const_names + * @param func1_names NULL terminated array of zero terminated strings of funcs1 identifiers + * @param funcs1 NULL terminated array of function pointers for functions which take 1 argument + * @param func2_names NULL terminated array of zero terminated strings of funcs2 identifiers + * @param funcs2 NULL terminated array of function pointers for functions which take 2 arguments + * @param opaque a pointer which will be passed to all functions from funcs1 and funcs2 + * @param log_ctx parent logging context + * @return 0 in case of success, a negative value corresponding to an + * AVERROR code otherwise + */ +int av_expr_parse_and_eval(double *res, const char *s, + const char * const *const_names, const double *const_values, + const char * const *func1_names, double (* const *funcs1)(void *, double), + const char * const *func2_names, double (* const *funcs2)(void *, double, double), + void *opaque, int log_offset, void *log_ctx); + +/** + * Parse an expression. + * + * @param expr a pointer where is put an AVExpr containing the parsed + * value in case of successful parsing, or NULL otherwise. + * The pointed to AVExpr must be freed with av_expr_free() by the user + * when it is not needed anymore. + * @param s expression as a zero terminated string, for example "1+2^3+5*5+sin(2/3)" + * @param const_names NULL terminated array of zero terminated strings of constant identifiers, for example {"PI", "E", 0} + * @param func1_names NULL terminated array of zero terminated strings of funcs1 identifiers + * @param funcs1 NULL terminated array of function pointers for functions which take 1 argument + * @param func2_names NULL terminated array of zero terminated strings of funcs2 identifiers + * @param funcs2 NULL terminated array of function pointers for functions which take 2 arguments + * @param log_ctx parent logging context + * @return 0 in case of success, a negative value corresponding to an + * AVERROR code otherwise + */ +int av_expr_parse(AVExpr **expr, const char *s, + const char * const *const_names, + const char * const *func1_names, double (* const *funcs1)(void *, double), + const char * const *func2_names, double (* const *funcs2)(void *, double, double), + int log_offset, void *log_ctx); + +/** + * Evaluate a previously parsed expression. + * + * @param const_values a zero terminated array of values for the identifiers from av_expr_parse() const_names + * @param opaque a pointer which will be passed to all functions from funcs1 and funcs2 + * @return the value of the expression + */ +double av_expr_eval(AVExpr *e, const double *const_values, void *opaque); + +/** + * Free a parsed expression previously created with av_expr_parse(). + */ +void av_expr_free(AVExpr *e); + +#if FF_API_OLD_EVAL_NAMES +/** + * @deprecated Deprecated in favor of av_expr_parse_and_eval(). + */ +attribute_deprecated +int av_parse_and_eval_expr(double *res, const char *s, + const char * const *const_names, const double *const_values, + const char * const *func1_names, double (* const *funcs1)(void *, double), + const char * const *func2_names, double (* const *funcs2)(void *, double, double), + void *opaque, int log_offset, void *log_ctx); + +/** + * @deprecated Deprecated in favor of av_expr_parse(). + */ +attribute_deprecated +int av_parse_expr(AVExpr **expr, const char *s, + const char * const *const_names, + const char * const *func1_names, double (* const *funcs1)(void *, double), + const char * const *func2_names, double (* const *funcs2)(void *, double, double), + int log_offset, void *log_ctx); +/** + * @deprecated Deprecated in favor of av_expr_eval(). + */ +attribute_deprecated +double av_eval_expr(AVExpr *e, const double *const_values, void *opaque); + +/** + * @deprecated Deprecated in favor of av_expr_free(). + */ +attribute_deprecated +void av_free_expr(AVExpr *e); +#endif /* FF_API_OLD_EVAL_NAMES */ + +/** + * Parse the string in numstr and return its value as a double. If + * the string is empty, contains only whitespaces, or does not contain + * an initial substring that has the expected syntax for a + * floating-point number, no conversion is performed. In this case, + * returns a value of zero and the value returned in tail is the value + * of numstr. + * + * @param numstr a string representing a number, may contain one of + * the International System number postfixes, for example 'K', 'M', + * 'G'. If 'i' is appended after the postfix, powers of 2 are used + * instead of powers of 10. The 'B' postfix multiplies the value for + * 8, and can be appended after another postfix or used alone. This + * allows using for example 'KB', 'MiB', 'G' and 'B' as postfix. + * @param tail if non-NULL puts here the pointer to the char next + * after the last parsed character + */ +double av_strtod(const char *numstr, char **tail); + +#endif /* AVUTIL_EVAL_H */ diff --git a/Externals/ffmpeg/include/libavutil/fifo.h b/Externals/ffmpeg/include/libavutil/fifo.h new file mode 100644 index 00000000..22a9aa5d --- /dev/null +++ b/Externals/ffmpeg/include/libavutil/fifo.h @@ -0,0 +1,143 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * a very simple circular buffer FIFO implementation + */ + +#ifndef AVUTIL_FIFO_H +#define AVUTIL_FIFO_H + +#include +#include "avutil.h" + +typedef struct AVFifoBuffer { + uint8_t *buffer; + uint8_t *rptr, *wptr, *end; + uint32_t rndx, wndx; +} AVFifoBuffer; + +/** + * Initialize an AVFifoBuffer. + * @param size of FIFO + * @return AVFifoBuffer or NULL in case of memory allocation failure + */ +AVFifoBuffer *av_fifo_alloc(unsigned int size); + +/** + * Free an AVFifoBuffer. + * @param f AVFifoBuffer to free + */ +void av_fifo_free(AVFifoBuffer *f); + +/** + * Reset the AVFifoBuffer to the state right after av_fifo_alloc, in particular it is emptied. + * @param f AVFifoBuffer to reset + */ +void av_fifo_reset(AVFifoBuffer *f); + +/** + * Return the amount of data in bytes in the AVFifoBuffer, that is the + * amount of data you can read from it. + * @param f AVFifoBuffer to read from + * @return size + */ +int av_fifo_size(AVFifoBuffer *f); + +/** + * Return the amount of space in bytes in the AVFifoBuffer, that is the + * amount of data you can write into it. + * @param f AVFifoBuffer to write into + * @return size + */ +int av_fifo_space(AVFifoBuffer *f); + +/** + * Feed data from an AVFifoBuffer to a user-supplied callback. + * @param f AVFifoBuffer to read from + * @param buf_size number of bytes to read + * @param func generic read function + * @param dest data destination + */ +int av_fifo_generic_read(AVFifoBuffer *f, void *dest, int buf_size, void (*func)(void*, void*, int)); + +/** + * Feed data from a user-supplied callback to an AVFifoBuffer. + * @param f AVFifoBuffer to write to + * @param src data source; non-const since it may be used as a + * modifiable context by the function defined in func + * @param size number of bytes to write + * @param func generic write function; the first parameter is src, + * the second is dest_buf, the third is dest_buf_size. + * func must return the number of bytes written to dest_buf, or <= 0 to + * indicate no more data available to write. + * If func is NULL, src is interpreted as a simple byte array for source data. + * @return the number of bytes written to the FIFO + */ +int av_fifo_generic_write(AVFifoBuffer *f, void *src, int size, int (*func)(void*, void*, int)); + +/** + * Resize an AVFifoBuffer. + * In case of reallocation failure, the old FIFO is kept unchanged. + * + * @param f AVFifoBuffer to resize + * @param size new AVFifoBuffer size in bytes + * @return <0 for failure, >=0 otherwise + */ +int av_fifo_realloc2(AVFifoBuffer *f, unsigned int size); + +/** + * Read and discard the specified amount of data from an AVFifoBuffer. + * @param f AVFifoBuffer to read from + * @param size amount of data to read in bytes + */ +void av_fifo_drain(AVFifoBuffer *f, int size); + +/** + * Return a pointer to the data stored in a FIFO buffer at a certain offset. + * The FIFO buffer is not modified. + * + * @param f AVFifoBuffer to peek at, f must be non-NULL + * @param offs an offset in bytes, its absolute value must be less + * than the used buffer size or the returned pointer will + * point outside to the buffer data. + * The used buffer size can be checked with av_fifo_size(). + */ +static inline uint8_t *av_fifo_peek2(const AVFifoBuffer *f, int offs) +{ + uint8_t *ptr = f->rptr + offs; + if (ptr >= f->end) + ptr = f->buffer + (ptr - f->end); + else if (ptr < f->buffer) + ptr = f->end - (f->buffer - ptr); + return ptr; +} + +#if FF_API_AV_FIFO_PEEK +/** + * @deprecated Use av_fifo_peek2() instead. + */ +attribute_deprecated +static inline uint8_t av_fifo_peek(AVFifoBuffer *f, int offs) +{ + return *av_fifo_peek2(f, offs); +} +#endif + +#endif /* AVUTIL_FIFO_H */ diff --git a/Externals/ffmpeg/include/libavutil/file.h b/Externals/ffmpeg/include/libavutil/file.h new file mode 100644 index 00000000..f3af9ef7 --- /dev/null +++ b/Externals/ffmpeg/include/libavutil/file.h @@ -0,0 +1,61 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_FILE_H +#define AVUTIL_FILE_H + +#include "avutil.h" + +/** + * @file + * Misc file utilities. + */ + +/** + * Read the file with name filename, and put its content in a newly + * allocated buffer or map it with mmap() when available. + * In case of success set *bufptr to the read or mmapped buffer, and + * *size to the size in bytes of the buffer in *bufptr. + * The returned buffer must be released with av_file_unmap(). + * + * @param log_offset loglevel offset used for logging + * @param log_ctx context used for logging + * @return a non negative number in case of success, a negative value + * corresponding to an AVERROR error code in case of failure + */ +int av_file_map(const char *filename, uint8_t **bufptr, size_t *size, + int log_offset, void *log_ctx); + +/** + * Unmap or free the buffer bufptr created by av_file_map(). + * + * @param size size in bytes of bufptr, must be the same as returned + * by av_file_map() + */ +void av_file_unmap(uint8_t *bufptr, size_t size); + +/** + * Wrapper to work around the lack of mkstemp() on mingw. + * Also, tries to create file in /tmp first, if possible. + * *prefix can be a character constant; *filename will be allocated internally. + * @return file descriptor of opened file (or -1 on error) + * and opened file name in **filename. + */ +int av_tempfile(const char *prefix, char **filename, int log_offset, void *log_ctx); + +#endif /* AVUTIL_FILE_H */ diff --git a/Externals/ffmpeg/include/libavutil/imgutils.h b/Externals/ffmpeg/include/libavutil/imgutils.h new file mode 100644 index 00000000..9b53815f --- /dev/null +++ b/Externals/ffmpeg/include/libavutil/imgutils.h @@ -0,0 +1,138 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_IMGUTILS_H +#define AVUTIL_IMGUTILS_H + +/** + * @file + * misc image utilities + * + * @addtogroup lavu_picture + * @{ + */ + +#include "avutil.h" +#include "pixdesc.h" + +/** + * Compute the max pixel step for each plane of an image with a + * format described by pixdesc. + * + * The pixel step is the distance in bytes between the first byte of + * the group of bytes which describe a pixel component and the first + * byte of the successive group in the same plane for the same + * component. + * + * @param max_pixsteps an array which is filled with the max pixel step + * for each plane. Since a plane may contain different pixel + * components, the computed max_pixsteps[plane] is relative to the + * component in the plane with the max pixel step. + * @param max_pixstep_comps an array which is filled with the component + * for each plane which has the max pixel step. May be NULL. + */ +void av_image_fill_max_pixsteps(int max_pixsteps[4], int max_pixstep_comps[4], + const AVPixFmtDescriptor *pixdesc); + +/** + * Compute the size of an image line with format pix_fmt and width + * width for the plane plane. + * + * @return the computed size in bytes + */ +int av_image_get_linesize(enum PixelFormat pix_fmt, int width, int plane); + +/** + * Fill plane linesizes for an image with pixel format pix_fmt and + * width width. + * + * @param linesizes array to be filled with the linesize for each plane + * @return >= 0 in case of success, a negative error code otherwise + */ +int av_image_fill_linesizes(int linesizes[4], enum PixelFormat pix_fmt, int width); + +/** + * Fill plane data pointers for an image with pixel format pix_fmt and + * height height. + * + * @param data pointers array to be filled with the pointer for each image plane + * @param ptr the pointer to a buffer which will contain the image + * @param linesizes the array containing the linesize for each + * plane, should be filled by av_image_fill_linesizes() + * @return the size in bytes required for the image buffer, a negative + * error code in case of failure + */ +int av_image_fill_pointers(uint8_t *data[4], enum PixelFormat pix_fmt, int height, + uint8_t *ptr, const int linesizes[4]); + +/** + * Allocate an image with size w and h and pixel format pix_fmt, and + * fill pointers and linesizes accordingly. + * The allocated image buffer has to be freed by using + * av_freep(&pointers[0]). + * + * @param align the value to use for buffer size alignment + * @return the size in bytes required for the image buffer, a negative + * error code in case of failure + */ +int av_image_alloc(uint8_t *pointers[4], int linesizes[4], + int w, int h, enum PixelFormat pix_fmt, int align); + +/** + * Copy image plane from src to dst. + * That is, copy "height" number of lines of "bytewidth" bytes each. + * The first byte of each successive line is separated by *_linesize + * bytes. + * + * @param dst_linesize linesize for the image plane in dst + * @param src_linesize linesize for the image plane in src + */ +void av_image_copy_plane(uint8_t *dst, int dst_linesize, + const uint8_t *src, int src_linesize, + int bytewidth, int height); + +/** + * Copy image in src_data to dst_data. + * + * @param dst_linesizes linesizes for the image in dst_data + * @param src_linesizes linesizes for the image in src_data + */ +void av_image_copy(uint8_t *dst_data[4], int dst_linesizes[4], + const uint8_t *src_data[4], const int src_linesizes[4], + enum PixelFormat pix_fmt, int width, int height); + +/** + * Check if the given dimension of an image is valid, meaning that all + * bytes of the image can be addressed with a signed int. + * + * @param w the width of the picture + * @param h the height of the picture + * @param log_offset the offset to sum to the log level for logging with log_ctx + * @param log_ctx the parent logging context, it may be NULL + * @return >= 0 if valid, a negative error code otherwise + */ +int av_image_check_size(unsigned int w, unsigned int h, int log_offset, void *log_ctx); + +int ff_set_systematic_pal2(uint32_t pal[256], enum PixelFormat pix_fmt); + +/** + * @} + */ + + +#endif /* AVUTIL_IMGUTILS_H */ diff --git a/Externals/ffmpeg/include/libavutil/intfloat_readwrite.h b/Externals/ffmpeg/include/libavutil/intfloat_readwrite.h new file mode 100644 index 00000000..9709f4da --- /dev/null +++ b/Externals/ffmpeg/include/libavutil/intfloat_readwrite.h @@ -0,0 +1,40 @@ +/* + * copyright (c) 2005 Michael Niedermayer + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_INTFLOAT_READWRITE_H +#define AVUTIL_INTFLOAT_READWRITE_H + +#include +#include "attributes.h" + +/* IEEE 80 bits extended float */ +typedef struct AVExtFloat { + uint8_t exponent[2]; + uint8_t mantissa[8]; +} AVExtFloat; + +attribute_deprecated double av_int2dbl(int64_t v) av_const; +attribute_deprecated float av_int2flt(int32_t v) av_const; +attribute_deprecated double av_ext2dbl(const AVExtFloat ext) av_const; +attribute_deprecated int64_t av_dbl2int(double d) av_const; +attribute_deprecated int32_t av_flt2int(float d) av_const; +attribute_deprecated AVExtFloat av_dbl2ext(double d) av_const; + +#endif /* AVUTIL_INTFLOAT_READWRITE_H */ diff --git a/Externals/ffmpeg/include/libavutil/intreadwrite.h b/Externals/ffmpeg/include/libavutil/intreadwrite.h new file mode 100644 index 00000000..09d796c8 --- /dev/null +++ b/Externals/ffmpeg/include/libavutil/intreadwrite.h @@ -0,0 +1,522 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_INTREADWRITE_H +#define AVUTIL_INTREADWRITE_H + +#include +#include "libavutil/avconfig.h" +#include "attributes.h" +#include "bswap.h" + +typedef union { + uint64_t u64; + uint32_t u32[2]; + uint16_t u16[4]; + uint8_t u8 [8]; + double f64; + float f32[2]; +} av_alias av_alias64; + +typedef union { + uint32_t u32; + uint16_t u16[2]; + uint8_t u8 [4]; + float f32; +} av_alias av_alias32; + +typedef union { + uint16_t u16; + uint8_t u8 [2]; +} av_alias av_alias16; + +/* + * Arch-specific headers can provide any combination of + * AV_[RW][BLN](16|24|32|64) and AV_(COPY|SWAP|ZERO)(64|128) macros. + * Preprocessor symbols must be defined, even if these are implemented + * as inline functions. + */ + +#ifdef HAVE_AV_CONFIG_H + +#include "config.h" + +#if ARCH_ARM +# include "arm/intreadwrite.h" +#elif ARCH_AVR32 +# include "avr32/intreadwrite.h" +#elif ARCH_MIPS +# include "mips/intreadwrite.h" +#elif ARCH_PPC +# include "ppc/intreadwrite.h" +#elif ARCH_TOMI +# include "tomi/intreadwrite.h" +#elif ARCH_X86 +# include "x86/intreadwrite.h" +#endif + +#endif /* HAVE_AV_CONFIG_H */ + +/* + * Map AV_RNXX <-> AV_R[BL]XX for all variants provided by per-arch headers. + */ + +#if AV_HAVE_BIGENDIAN + +# if defined(AV_RN16) && !defined(AV_RB16) +# define AV_RB16(p) AV_RN16(p) +# elif !defined(AV_RN16) && defined(AV_RB16) +# define AV_RN16(p) AV_RB16(p) +# endif + +# if defined(AV_WN16) && !defined(AV_WB16) +# define AV_WB16(p, v) AV_WN16(p, v) +# elif !defined(AV_WN16) && defined(AV_WB16) +# define AV_WN16(p, v) AV_WB16(p, v) +# endif + +# if defined(AV_RN24) && !defined(AV_RB24) +# define AV_RB24(p) AV_RN24(p) +# elif !defined(AV_RN24) && defined(AV_RB24) +# define AV_RN24(p) AV_RB24(p) +# endif + +# if defined(AV_WN24) && !defined(AV_WB24) +# define AV_WB24(p, v) AV_WN24(p, v) +# elif !defined(AV_WN24) && defined(AV_WB24) +# define AV_WN24(p, v) AV_WB24(p, v) +# endif + +# if defined(AV_RN32) && !defined(AV_RB32) +# define AV_RB32(p) AV_RN32(p) +# elif !defined(AV_RN32) && defined(AV_RB32) +# define AV_RN32(p) AV_RB32(p) +# endif + +# if defined(AV_WN32) && !defined(AV_WB32) +# define AV_WB32(p, v) AV_WN32(p, v) +# elif !defined(AV_WN32) && defined(AV_WB32) +# define AV_WN32(p, v) AV_WB32(p, v) +# endif + +# if defined(AV_RN64) && !defined(AV_RB64) +# define AV_RB64(p) AV_RN64(p) +# elif !defined(AV_RN64) && defined(AV_RB64) +# define AV_RN64(p) AV_RB64(p) +# endif + +# if defined(AV_WN64) && !defined(AV_WB64) +# define AV_WB64(p, v) AV_WN64(p, v) +# elif !defined(AV_WN64) && defined(AV_WB64) +# define AV_WN64(p, v) AV_WB64(p, v) +# endif + +#else /* AV_HAVE_BIGENDIAN */ + +# if defined(AV_RN16) && !defined(AV_RL16) +# define AV_RL16(p) AV_RN16(p) +# elif !defined(AV_RN16) && defined(AV_RL16) +# define AV_RN16(p) AV_RL16(p) +# endif + +# if defined(AV_WN16) && !defined(AV_WL16) +# define AV_WL16(p, v) AV_WN16(p, v) +# elif !defined(AV_WN16) && defined(AV_WL16) +# define AV_WN16(p, v) AV_WL16(p, v) +# endif + +# if defined(AV_RN24) && !defined(AV_RL24) +# define AV_RL24(p) AV_RN24(p) +# elif !defined(AV_RN24) && defined(AV_RL24) +# define AV_RN24(p) AV_RL24(p) +# endif + +# if defined(AV_WN24) && !defined(AV_WL24) +# define AV_WL24(p, v) AV_WN24(p, v) +# elif !defined(AV_WN24) && defined(AV_WL24) +# define AV_WN24(p, v) AV_WL24(p, v) +# endif + +# if defined(AV_RN32) && !defined(AV_RL32) +# define AV_RL32(p) AV_RN32(p) +# elif !defined(AV_RN32) && defined(AV_RL32) +# define AV_RN32(p) AV_RL32(p) +# endif + +# if defined(AV_WN32) && !defined(AV_WL32) +# define AV_WL32(p, v) AV_WN32(p, v) +# elif !defined(AV_WN32) && defined(AV_WL32) +# define AV_WN32(p, v) AV_WL32(p, v) +# endif + +# if defined(AV_RN64) && !defined(AV_RL64) +# define AV_RL64(p) AV_RN64(p) +# elif !defined(AV_RN64) && defined(AV_RL64) +# define AV_RN64(p) AV_RL64(p) +# endif + +# if defined(AV_WN64) && !defined(AV_WL64) +# define AV_WL64(p, v) AV_WN64(p, v) +# elif !defined(AV_WN64) && defined(AV_WL64) +# define AV_WN64(p, v) AV_WL64(p, v) +# endif + +#endif /* !AV_HAVE_BIGENDIAN */ + +/* + * Define AV_[RW]N helper macros to simplify definitions not provided + * by per-arch headers. + */ + +#if defined(__GNUC__) && !defined(__TI_COMPILER_VERSION__) + +union unaligned_64 { uint64_t l; } __attribute__((packed)) av_alias; +union unaligned_32 { uint32_t l; } __attribute__((packed)) av_alias; +union unaligned_16 { uint16_t l; } __attribute__((packed)) av_alias; + +# define AV_RN(s, p) (((const union unaligned_##s *) (p))->l) +# define AV_WN(s, p, v) ((((union unaligned_##s *) (p))->l) = (v)) + +#elif defined(__DECC) + +# define AV_RN(s, p) (*((const __unaligned uint##s##_t*)(p))) +# define AV_WN(s, p, v) (*((__unaligned uint##s##_t*)(p)) = (v)) + +#elif AV_HAVE_FAST_UNALIGNED + +# define AV_RN(s, p) (((const av_alias##s*)(p))->u##s) +# define AV_WN(s, p, v) (((av_alias##s*)(p))->u##s = (v)) + +#else + +#ifndef AV_RB16 +# define AV_RB16(x) \ + ((((const uint8_t*)(x))[0] << 8) | \ + ((const uint8_t*)(x))[1]) +#endif +#ifndef AV_WB16 +# define AV_WB16(p, d) do { \ + ((uint8_t*)(p))[1] = (d); \ + ((uint8_t*)(p))[0] = (d)>>8; \ + } while(0) +#endif + +#ifndef AV_RL16 +# define AV_RL16(x) \ + ((((const uint8_t*)(x))[1] << 8) | \ + ((const uint8_t*)(x))[0]) +#endif +#ifndef AV_WL16 +# define AV_WL16(p, d) do { \ + ((uint8_t*)(p))[0] = (d); \ + ((uint8_t*)(p))[1] = (d)>>8; \ + } while(0) +#endif + +#ifndef AV_RB32 +# define AV_RB32(x) \ + (((uint32_t)((const uint8_t*)(x))[0] << 24) | \ + (((const uint8_t*)(x))[1] << 16) | \ + (((const uint8_t*)(x))[2] << 8) | \ + ((const uint8_t*)(x))[3]) +#endif +#ifndef AV_WB32 +# define AV_WB32(p, d) do { \ + ((uint8_t*)(p))[3] = (d); \ + ((uint8_t*)(p))[2] = (d)>>8; \ + ((uint8_t*)(p))[1] = (d)>>16; \ + ((uint8_t*)(p))[0] = (d)>>24; \ + } while(0) +#endif + +#ifndef AV_RL32 +# define AV_RL32(x) \ + (((uint32_t)((const uint8_t*)(x))[3] << 24) | \ + (((const uint8_t*)(x))[2] << 16) | \ + (((const uint8_t*)(x))[1] << 8) | \ + ((const uint8_t*)(x))[0]) +#endif +#ifndef AV_WL32 +# define AV_WL32(p, d) do { \ + ((uint8_t*)(p))[0] = (d); \ + ((uint8_t*)(p))[1] = (d)>>8; \ + ((uint8_t*)(p))[2] = (d)>>16; \ + ((uint8_t*)(p))[3] = (d)>>24; \ + } while(0) +#endif + +#ifndef AV_RB64 +# define AV_RB64(x) \ + (((uint64_t)((const uint8_t*)(x))[0] << 56) | \ + ((uint64_t)((const uint8_t*)(x))[1] << 48) | \ + ((uint64_t)((const uint8_t*)(x))[2] << 40) | \ + ((uint64_t)((const uint8_t*)(x))[3] << 32) | \ + ((uint64_t)((const uint8_t*)(x))[4] << 24) | \ + ((uint64_t)((const uint8_t*)(x))[5] << 16) | \ + ((uint64_t)((const uint8_t*)(x))[6] << 8) | \ + (uint64_t)((const uint8_t*)(x))[7]) +#endif +#ifndef AV_WB64 +# define AV_WB64(p, d) do { \ + ((uint8_t*)(p))[7] = (d); \ + ((uint8_t*)(p))[6] = (d)>>8; \ + ((uint8_t*)(p))[5] = (d)>>16; \ + ((uint8_t*)(p))[4] = (d)>>24; \ + ((uint8_t*)(p))[3] = (d)>>32; \ + ((uint8_t*)(p))[2] = (d)>>40; \ + ((uint8_t*)(p))[1] = (d)>>48; \ + ((uint8_t*)(p))[0] = (d)>>56; \ + } while(0) +#endif + +#ifndef AV_RL64 +# define AV_RL64(x) \ + (((uint64_t)((const uint8_t*)(x))[7] << 56) | \ + ((uint64_t)((const uint8_t*)(x))[6] << 48) | \ + ((uint64_t)((const uint8_t*)(x))[5] << 40) | \ + ((uint64_t)((const uint8_t*)(x))[4] << 32) | \ + ((uint64_t)((const uint8_t*)(x))[3] << 24) | \ + ((uint64_t)((const uint8_t*)(x))[2] << 16) | \ + ((uint64_t)((const uint8_t*)(x))[1] << 8) | \ + (uint64_t)((const uint8_t*)(x))[0]) +#endif +#ifndef AV_WL64 +# define AV_WL64(p, d) do { \ + ((uint8_t*)(p))[0] = (d); \ + ((uint8_t*)(p))[1] = (d)>>8; \ + ((uint8_t*)(p))[2] = (d)>>16; \ + ((uint8_t*)(p))[3] = (d)>>24; \ + ((uint8_t*)(p))[4] = (d)>>32; \ + ((uint8_t*)(p))[5] = (d)>>40; \ + ((uint8_t*)(p))[6] = (d)>>48; \ + ((uint8_t*)(p))[7] = (d)>>56; \ + } while(0) +#endif + +#if AV_HAVE_BIGENDIAN +# define AV_RN(s, p) AV_RB##s(p) +# define AV_WN(s, p, v) AV_WB##s(p, v) +#else +# define AV_RN(s, p) AV_RL##s(p) +# define AV_WN(s, p, v) AV_WL##s(p, v) +#endif + +#endif /* HAVE_FAST_UNALIGNED */ + +#ifndef AV_RN16 +# define AV_RN16(p) AV_RN(16, p) +#endif + +#ifndef AV_RN32 +# define AV_RN32(p) AV_RN(32, p) +#endif + +#ifndef AV_RN64 +# define AV_RN64(p) AV_RN(64, p) +#endif + +#ifndef AV_WN16 +# define AV_WN16(p, v) AV_WN(16, p, v) +#endif + +#ifndef AV_WN32 +# define AV_WN32(p, v) AV_WN(32, p, v) +#endif + +#ifndef AV_WN64 +# define AV_WN64(p, v) AV_WN(64, p, v) +#endif + +#if AV_HAVE_BIGENDIAN +# define AV_RB(s, p) AV_RN##s(p) +# define AV_WB(s, p, v) AV_WN##s(p, v) +# define AV_RL(s, p) av_bswap##s(AV_RN##s(p)) +# define AV_WL(s, p, v) AV_WN##s(p, av_bswap##s(v)) +#else +# define AV_RB(s, p) av_bswap##s(AV_RN##s(p)) +# define AV_WB(s, p, v) AV_WN##s(p, av_bswap##s(v)) +# define AV_RL(s, p) AV_RN##s(p) +# define AV_WL(s, p, v) AV_WN##s(p, v) +#endif + +#define AV_RB8(x) (((const uint8_t*)(x))[0]) +#define AV_WB8(p, d) do { ((uint8_t*)(p))[0] = (d); } while(0) + +#define AV_RL8(x) AV_RB8(x) +#define AV_WL8(p, d) AV_WB8(p, d) + +#ifndef AV_RB16 +# define AV_RB16(p) AV_RB(16, p) +#endif +#ifndef AV_WB16 +# define AV_WB16(p, v) AV_WB(16, p, v) +#endif + +#ifndef AV_RL16 +# define AV_RL16(p) AV_RL(16, p) +#endif +#ifndef AV_WL16 +# define AV_WL16(p, v) AV_WL(16, p, v) +#endif + +#ifndef AV_RB32 +# define AV_RB32(p) AV_RB(32, p) +#endif +#ifndef AV_WB32 +# define AV_WB32(p, v) AV_WB(32, p, v) +#endif + +#ifndef AV_RL32 +# define AV_RL32(p) AV_RL(32, p) +#endif +#ifndef AV_WL32 +# define AV_WL32(p, v) AV_WL(32, p, v) +#endif + +#ifndef AV_RB64 +# define AV_RB64(p) AV_RB(64, p) +#endif +#ifndef AV_WB64 +# define AV_WB64(p, v) AV_WB(64, p, v) +#endif + +#ifndef AV_RL64 +# define AV_RL64(p) AV_RL(64, p) +#endif +#ifndef AV_WL64 +# define AV_WL64(p, v) AV_WL(64, p, v) +#endif + +#ifndef AV_RB24 +# define AV_RB24(x) \ + ((((const uint8_t*)(x))[0] << 16) | \ + (((const uint8_t*)(x))[1] << 8) | \ + ((const uint8_t*)(x))[2]) +#endif +#ifndef AV_WB24 +# define AV_WB24(p, d) do { \ + ((uint8_t*)(p))[2] = (d); \ + ((uint8_t*)(p))[1] = (d)>>8; \ + ((uint8_t*)(p))[0] = (d)>>16; \ + } while(0) +#endif + +#ifndef AV_RL24 +# define AV_RL24(x) \ + ((((const uint8_t*)(x))[2] << 16) | \ + (((const uint8_t*)(x))[1] << 8) | \ + ((const uint8_t*)(x))[0]) +#endif +#ifndef AV_WL24 +# define AV_WL24(p, d) do { \ + ((uint8_t*)(p))[0] = (d); \ + ((uint8_t*)(p))[1] = (d)>>8; \ + ((uint8_t*)(p))[2] = (d)>>16; \ + } while(0) +#endif + +/* + * The AV_[RW]NA macros access naturally aligned data + * in a type-safe way. + */ + +#define AV_RNA(s, p) (((const av_alias##s*)(p))->u##s) +#define AV_WNA(s, p, v) (((av_alias##s*)(p))->u##s = (v)) + +#ifndef AV_RN16A +# define AV_RN16A(p) AV_RNA(16, p) +#endif + +#ifndef AV_RN32A +# define AV_RN32A(p) AV_RNA(32, p) +#endif + +#ifndef AV_RN64A +# define AV_RN64A(p) AV_RNA(64, p) +#endif + +#ifndef AV_WN16A +# define AV_WN16A(p, v) AV_WNA(16, p, v) +#endif + +#ifndef AV_WN32A +# define AV_WN32A(p, v) AV_WNA(32, p, v) +#endif + +#ifndef AV_WN64A +# define AV_WN64A(p, v) AV_WNA(64, p, v) +#endif + +/* Parameters for AV_COPY*, AV_SWAP*, AV_ZERO* must be + * naturally aligned. They may be implemented using MMX, + * so emms_c() must be called before using any float code + * afterwards. + */ + +#define AV_COPY(n, d, s) \ + (((av_alias##n*)(d))->u##n = ((const av_alias##n*)(s))->u##n) + +#ifndef AV_COPY16 +# define AV_COPY16(d, s) AV_COPY(16, d, s) +#endif + +#ifndef AV_COPY32 +# define AV_COPY32(d, s) AV_COPY(32, d, s) +#endif + +#ifndef AV_COPY64 +# define AV_COPY64(d, s) AV_COPY(64, d, s) +#endif + +#ifndef AV_COPY128 +# define AV_COPY128(d, s) \ + do { \ + AV_COPY64(d, s); \ + AV_COPY64((char*)(d)+8, (char*)(s)+8); \ + } while(0) +#endif + +#define AV_SWAP(n, a, b) FFSWAP(av_alias##n, *(av_alias##n*)(a), *(av_alias##n*)(b)) + +#ifndef AV_SWAP64 +# define AV_SWAP64(a, b) AV_SWAP(64, a, b) +#endif + +#define AV_ZERO(n, d) (((av_alias##n*)(d))->u##n = 0) + +#ifndef AV_ZERO16 +# define AV_ZERO16(d) AV_ZERO(16, d) +#endif + +#ifndef AV_ZERO32 +# define AV_ZERO32(d) AV_ZERO(32, d) +#endif + +#ifndef AV_ZERO64 +# define AV_ZERO64(d) AV_ZERO(64, d) +#endif + +#ifndef AV_ZERO128 +# define AV_ZERO128(d) \ + do { \ + AV_ZERO64(d); \ + AV_ZERO64((char*)(d)+8); \ + } while(0) +#endif + +#endif /* AVUTIL_INTREADWRITE_H */ diff --git a/Externals/ffmpeg/include/libavutil/lfg.h b/Externals/ffmpeg/include/libavutil/lfg.h new file mode 100644 index 00000000..854ffce7 --- /dev/null +++ b/Externals/ffmpeg/include/libavutil/lfg.h @@ -0,0 +1,62 @@ +/* + * Lagged Fibonacci PRNG + * Copyright (c) 2008 Michael Niedermayer + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_LFG_H +#define AVUTIL_LFG_H + +typedef struct { + unsigned int state[64]; + int index; +} AVLFG; + +void av_lfg_init(AVLFG *c, unsigned int seed); + +/** + * Get the next random unsigned 32-bit number using an ALFG. + * + * Please also consider a simple LCG like state= state*1664525+1013904223, + * it may be good enough and faster for your specific use case. + */ +static inline unsigned int av_lfg_get(AVLFG *c){ + c->state[c->index & 63] = c->state[(c->index-24) & 63] + c->state[(c->index-55) & 63]; + return c->state[c->index++ & 63]; +} + +/** + * Get the next random unsigned 32-bit number using a MLFG. + * + * Please also consider av_lfg_get() above, it is faster. + */ +static inline unsigned int av_mlfg_get(AVLFG *c){ + unsigned int a= c->state[(c->index-55) & 63]; + unsigned int b= c->state[(c->index-24) & 63]; + return c->state[c->index++ & 63] = 2*a*b+a+b; +} + +/** + * Get the next two numbers generated by a Box-Muller Gaussian + * generator using the random numbers issued by lfg. + * + * @param out array where the two generated numbers are placed + */ +void av_bmg_get(AVLFG *lfg, double out[2]); + +#endif /* AVUTIL_LFG_H */ diff --git a/Externals/ffmpeg/include/libavutil/log.h b/Externals/ffmpeg/include/libavutil/log.h new file mode 100644 index 00000000..02a0e1ac --- /dev/null +++ b/Externals/ffmpeg/include/libavutil/log.h @@ -0,0 +1,182 @@ +/* + * copyright (c) 2006 Michael Niedermayer + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_LOG_H +#define AVUTIL_LOG_H + +#include +#include "avutil.h" +#include "attributes.h" + +/** + * Describe the class of an AVClass context structure. That is an + * arbitrary struct of which the first field is a pointer to an + * AVClass struct (e.g. AVCodecContext, AVFormatContext etc.). + */ +typedef struct AVClass { + /** + * The name of the class; usually it is the same name as the + * context structure type to which the AVClass is associated. + */ + const char* class_name; + + /** + * A pointer to a function which returns the name of a context + * instance ctx associated with the class. + */ + const char* (*item_name)(void* ctx); + + /** + * a pointer to the first option specified in the class if any or NULL + * + * @see av_set_default_options() + */ + const struct AVOption *option; + + /** + * LIBAVUTIL_VERSION with which this structure was created. + * This is used to allow fields to be added without requiring major + * version bumps everywhere. + */ + + int version; + + /** + * Offset in the structure where log_level_offset is stored. + * 0 means there is no such variable + */ + int log_level_offset_offset; + + /** + * Offset in the structure where a pointer to the parent context for loging is stored. + * for example a decoder that uses eval.c could pass its AVCodecContext to eval as such + * parent context. And a av_log() implementation could then display the parent context + * can be NULL of course + */ + int parent_log_context_offset; + + /** + * Return next AVOptions-enabled child or NULL + */ + void* (*child_next)(void *obj, void *prev); + + /** + * Return an AVClass corresponding to next potential + * AVOptions-enabled child. + * + * The difference between child_next and this is that + * child_next iterates over _already existing_ objects, while + * child_class_next iterates over _all possible_ children. + */ + const struct AVClass* (*child_class_next)(const struct AVClass *prev); +} AVClass; + +/* av_log API */ + +#define AV_LOG_QUIET -8 + +/** + * Something went really wrong and we will crash now. + */ +#define AV_LOG_PANIC 0 + +/** + * Something went wrong and recovery is not possible. + * For example, no header was found for a format which depends + * on headers or an illegal combination of parameters is used. + */ +#define AV_LOG_FATAL 8 + +/** + * Something went wrong and cannot losslessly be recovered. + * However, not all future data is affected. + */ +#define AV_LOG_ERROR 16 + +/** + * Something somehow does not look correct. This may or may not + * lead to problems. An example would be the use of '-vstrict -2'. + */ +#define AV_LOG_WARNING 24 + +#define AV_LOG_INFO 32 +#define AV_LOG_VERBOSE 40 + +/** + * Stuff which is only useful for libav* developers. + */ +#define AV_LOG_DEBUG 48 + +/** + * Send the specified message to the log if the level is less than or equal + * to the current av_log_level. By default, all logging messages are sent to + * stderr. This behavior can be altered by setting a different av_vlog callback + * function. + * + * @param avcl A pointer to an arbitrary struct of which the first field is a + * pointer to an AVClass struct. + * @param level The importance level of the message, lower values signifying + * higher importance. + * @param fmt The format string (printf-compatible) that specifies how + * subsequent arguments are converted to output. + * @see av_vlog + */ +void av_log(void *avcl, int level, const char *fmt, ...) av_printf_format(3, 4); + +void av_vlog(void *avcl, int level, const char *fmt, va_list); +int av_log_get_level(void); +void av_log_set_level(int); +void av_log_set_callback(void (*)(void*, int, const char*, va_list)); +void av_log_default_callback(void* ptr, int level, const char* fmt, va_list vl); +const char* av_default_item_name(void* ctx); + +/** + * Format a line of log the same way as the default callback. + * @param line buffer to receive the formated line + * @param line_size size of the buffer + * @param print_prefix used to store whether the prefix must be printed; + * must point to a persistent integer initially set to 1 + */ +void av_log_format_line(void *ptr, int level, const char *fmt, va_list vl, + char *line, int line_size, int *print_prefix); + +/** + * av_dlog macros + * Useful to print debug messages that shouldn't get compiled in normally. + */ + +#ifdef DEBUG +# define av_dlog(pctx, ...) av_log(pctx, AV_LOG_DEBUG, __VA_ARGS__) +#else +# define av_dlog(pctx, ...) do { if (0) av_log(pctx, AV_LOG_DEBUG, __VA_ARGS__); } while (0) +#endif + +/** + * Skip repeated messages, this requires the user app to use av_log() instead of + * (f)printf as the 2 would otherwise interfere and lead to + * "Last message repeated x times" messages below (f)printf messages with some + * bad luck. + * Also to receive the last, "last repeated" line if any, the user app must + * call av_log(NULL, AV_LOG_QUIET, "%s", ""); at the end + */ +#define AV_LOG_SKIP_REPEATED 1 +void av_log_set_flags(int arg); + +#endif /* AVUTIL_LOG_H */ diff --git a/Externals/ffmpeg/include/libavutil/lzo.h b/Externals/ffmpeg/include/libavutil/lzo.h new file mode 100644 index 00000000..060b5c9d --- /dev/null +++ b/Externals/ffmpeg/include/libavutil/lzo.h @@ -0,0 +1,77 @@ +/* + * LZO 1x decompression + * copyright (c) 2006 Reimar Doeffinger + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_LZO_H +#define AVUTIL_LZO_H + +/** + * @defgroup lavu_lzo LZO + * @ingroup lavu_crypto + * + * @{ + */ + +#include + +/** @name Error flags returned by av_lzo1x_decode + * @{ */ +/// end of the input buffer reached before decoding finished +#define AV_LZO_INPUT_DEPLETED 1 +/// decoded data did not fit into output buffer +#define AV_LZO_OUTPUT_FULL 2 +/// a reference to previously decoded data was wrong +#define AV_LZO_INVALID_BACKPTR 4 +/// a non-specific error in the compressed bitstream +#define AV_LZO_ERROR 8 +/** @} */ + +#define AV_LZO_INPUT_PADDING 8 +#define AV_LZO_OUTPUT_PADDING 12 + +/** + * @brief Decodes LZO 1x compressed data. + * @param out output buffer + * @param outlen size of output buffer, number of bytes left are returned here + * @param in input buffer + * @param inlen size of input buffer, number of bytes left are returned here + * @return 0 on success, otherwise a combination of the error flags above + * + * Make sure all buffers are appropriately padded, in must provide + * AV_LZO_INPUT_PADDING, out must provide AV_LZO_OUTPUT_PADDING additional bytes. + */ +int av_lzo1x_decode(void *out, int *outlen, const void *in, int *inlen); + +/** + * @brief deliberately overlapping memcpy implementation + * @param dst destination buffer; must be padded with 12 additional bytes + * @param back how many bytes back we start (the initial size of the overlapping window), must be > 0 + * @param cnt number of bytes to copy, must be >= 0 + * + * cnt > back is valid, this will copy the bytes we just copied, + * thus creating a repeating pattern with a period length of back. + */ +void av_memcpy_backptr(uint8_t *dst, int back, int cnt); + +/** + * @} + */ + +#endif /* AVUTIL_LZO_H */ diff --git a/Externals/ffmpeg/include/libavutil/mathematics.h b/Externals/ffmpeg/include/libavutil/mathematics.h new file mode 100644 index 00000000..ad39e263 --- /dev/null +++ b/Externals/ffmpeg/include/libavutil/mathematics.h @@ -0,0 +1,122 @@ +/* + * copyright (c) 2005 Michael Niedermayer + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_MATHEMATICS_H +#define AVUTIL_MATHEMATICS_H + +#include +#include +#include "attributes.h" +#include "rational.h" + +#ifndef M_E +#define M_E 2.7182818284590452354 /* e */ +#endif +#ifndef M_LN2 +#define M_LN2 0.69314718055994530942 /* log_e 2 */ +#endif +#ifndef M_LN10 +#define M_LN10 2.30258509299404568402 /* log_e 10 */ +#endif +#ifndef M_LOG2_10 +#define M_LOG2_10 3.32192809488736234787 /* log_2 10 */ +#endif +#ifndef M_PHI +#define M_PHI 1.61803398874989484820 /* phi / golden ratio */ +#endif +#ifndef M_PI +#define M_PI 3.14159265358979323846 /* pi */ +#endif +#ifndef M_SQRT1_2 +#define M_SQRT1_2 0.70710678118654752440 /* 1/sqrt(2) */ +#endif +#ifndef M_SQRT2 +#define M_SQRT2 1.41421356237309504880 /* sqrt(2) */ +#endif +#ifndef NAN +#define NAN (0.0/0.0) +#endif +#ifndef INFINITY +#define INFINITY (1.0/0.0) +#endif + +/** + * @addtogroup lavu_math + * @{ + */ + + +enum AVRounding { + AV_ROUND_ZERO = 0, ///< Round toward zero. + AV_ROUND_INF = 1, ///< Round away from zero. + AV_ROUND_DOWN = 2, ///< Round toward -infinity. + AV_ROUND_UP = 3, ///< Round toward +infinity. + AV_ROUND_NEAR_INF = 5, ///< Round to nearest and halfway cases away from zero. +}; + +/** + * Return the greatest common divisor of a and b. + * If both a and b are 0 or either or both are <0 then behavior is + * undefined. + */ +int64_t av_const av_gcd(int64_t a, int64_t b); + +/** + * Rescale a 64-bit integer with rounding to nearest. + * A simple a*b/c isn't possible as it can overflow. + */ +int64_t av_rescale(int64_t a, int64_t b, int64_t c) av_const; + +/** + * Rescale a 64-bit integer with specified rounding. + * A simple a*b/c isn't possible as it can overflow. + */ +int64_t av_rescale_rnd(int64_t a, int64_t b, int64_t c, enum AVRounding) av_const; + +/** + * Rescale a 64-bit integer by 2 rational numbers. + */ +int64_t av_rescale_q(int64_t a, AVRational bq, AVRational cq) av_const; + +/** + * Compare 2 timestamps each in its own timebases. + * The result of the function is undefined if one of the timestamps + * is outside the int64_t range when represented in the others timebase. + * @return -1 if ts_a is before ts_b, 1 if ts_a is after ts_b or 0 if they represent the same position + */ +int av_compare_ts(int64_t ts_a, AVRational tb_a, int64_t ts_b, AVRational tb_b); + +/** + * Compare 2 integers modulo mod. + * That is we compare integers a and b for which only the least + * significant log2(mod) bits are known. + * + * @param mod must be a power of 2 + * @return a negative value if a is smaller than b + * a positive value if a is greater than b + * 0 if a equals b + */ +int64_t av_compare_mod(uint64_t a, uint64_t b, uint64_t mod); + +/** + * @} + */ + +#endif /* AVUTIL_MATHEMATICS_H */ diff --git a/Externals/ffmpeg/include/libavutil/md5.h b/Externals/ffmpeg/include/libavutil/md5.h new file mode 100644 index 00000000..1333ab2d --- /dev/null +++ b/Externals/ffmpeg/include/libavutil/md5.h @@ -0,0 +1,46 @@ +/* + * copyright (c) 2006 Michael Niedermayer + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_MD5_H +#define AVUTIL_MD5_H + +#include + +/** + * @defgroup lavu_md5 MD5 + * @ingroup lavu_crypto + * @{ + */ + +extern const int av_md5_size; + +struct AVMD5; + +void av_md5_init(struct AVMD5 *ctx); +void av_md5_update(struct AVMD5 *ctx, const uint8_t *src, const int len); +void av_md5_final(struct AVMD5 *ctx, uint8_t *dst); +void av_md5_sum(uint8_t *dst, const uint8_t *src, const int len); + +/** + * @} + */ + +#endif /* AVUTIL_MD5_H */ + diff --git a/Externals/ffmpeg/include/libavutil/mem.h b/Externals/ffmpeg/include/libavutil/mem.h new file mode 100644 index 00000000..c6c907ea --- /dev/null +++ b/Externals/ffmpeg/include/libavutil/mem.h @@ -0,0 +1,188 @@ +/* + * copyright (c) 2006 Michael Niedermayer + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * memory handling functions + */ + +#ifndef AVUTIL_MEM_H +#define AVUTIL_MEM_H + +#include "attributes.h" +#include "error.h" +#include "avutil.h" + +/** + * @addtogroup lavu_mem + * @{ + */ + + +#if defined(__INTEL_COMPILER) && __INTEL_COMPILER < 1110 || defined(__SUNPRO_C) + #define DECLARE_ALIGNED(n,t,v) t __attribute__ ((aligned (n))) v + #define DECLARE_ASM_CONST(n,t,v) const t __attribute__ ((aligned (n))) v +#elif defined(__TI_COMPILER_VERSION__) + #define DECLARE_ALIGNED(n,t,v) \ + AV_PRAGMA(DATA_ALIGN(v,n)) \ + t __attribute__((aligned(n))) v + #define DECLARE_ASM_CONST(n,t,v) \ + AV_PRAGMA(DATA_ALIGN(v,n)) \ + static const t __attribute__((aligned(n))) v +#elif defined(__GNUC__) + #define DECLARE_ALIGNED(n,t,v) t __attribute__ ((aligned (n))) v + #define DECLARE_ASM_CONST(n,t,v) static const t av_used __attribute__ ((aligned (n))) v +#elif defined(_MSC_VER) + #define DECLARE_ALIGNED(n,t,v) __declspec(align(n)) t v + #define DECLARE_ASM_CONST(n,t,v) __declspec(align(n)) static const t v +#else + #define DECLARE_ALIGNED(n,t,v) t v + #define DECLARE_ASM_CONST(n,t,v) static const t v +#endif + +#if AV_GCC_VERSION_AT_LEAST(3,1) + #define av_malloc_attrib __attribute__((__malloc__)) +#else + #define av_malloc_attrib +#endif + +#if AV_GCC_VERSION_AT_LEAST(4,3) + #define av_alloc_size(n) __attribute__((alloc_size(n))) +#else + #define av_alloc_size(n) +#endif + +/** + * Allocate a block of size bytes with alignment suitable for all + * memory accesses (including vectors if available on the CPU). + * @param size Size in bytes for the memory block to be allocated. + * @return Pointer to the allocated block, NULL if the block cannot + * be allocated. + * @see av_mallocz() + */ +void *av_malloc(size_t size) av_malloc_attrib av_alloc_size(1); + +/** + * Allocate or reallocate a block of memory. + * If ptr is NULL and size > 0, allocate a new block. If + * size is zero, free the memory block pointed to by ptr. + * @param ptr Pointer to a memory block already allocated with + * av_malloc(z)() or av_realloc() or NULL. + * @param size Size in bytes for the memory block to be allocated or + * reallocated. + * @return Pointer to a newly reallocated block or NULL if the block + * cannot be reallocated or the function is used to free the memory block. + * @see av_fast_realloc() + */ +void *av_realloc(void *ptr, size_t size) av_alloc_size(2); + +/** + * Allocate or reallocate a block of memory. + * This function does the same thing as av_realloc, except: + * - It takes two arguments and checks the result of the multiplication for + * integer overflow. + * - It frees the input block in case of failure, thus avoiding the memory + * leak with the classic "buf = realloc(buf); if (!buf) return -1;". + */ +void *av_realloc_f(void *ptr, size_t nelem, size_t elsize); + +/** + * Free a memory block which has been allocated with av_malloc(z)() or + * av_realloc(). + * @param ptr Pointer to the memory block which should be freed. + * @note ptr = NULL is explicitly allowed. + * @note It is recommended that you use av_freep() instead. + * @see av_freep() + */ +void av_free(void *ptr); + +/** + * Allocate a block of size bytes with alignment suitable for all + * memory accesses (including vectors if available on the CPU) and + * zero all the bytes of the block. + * @param size Size in bytes for the memory block to be allocated. + * @return Pointer to the allocated block, NULL if it cannot be allocated. + * @see av_malloc() + */ +void *av_mallocz(size_t size) av_malloc_attrib av_alloc_size(1); + +/** + * Allocate a block of nmemb * size bytes with alignment suitable for all + * memory accesses (including vectors if available on the CPU) and + * zero all the bytes of the block. + * The allocation will fail if nmemb * size is greater than or equal + * to INT_MAX. + * @param nmemb + * @param size + * @return Pointer to the allocated block, NULL if it cannot be allocated. + */ +void *av_calloc(size_t nmemb, size_t size) av_malloc_attrib; + +/** + * Duplicate the string s. + * @param s string to be duplicated + * @return Pointer to a newly allocated string containing a + * copy of s or NULL if the string cannot be allocated. + */ +char *av_strdup(const char *s) av_malloc_attrib; + +/** + * Free a memory block which has been allocated with av_malloc(z)() or + * av_realloc() and set the pointer pointing to it to NULL. + * @param ptr Pointer to the pointer to the memory block which should + * be freed. + * @see av_free() + */ +void av_freep(void *ptr); + +/** + * Add an element to a dynamic array. + * + * @param tab_ptr Pointer to the array. + * @param nb_ptr Pointer to the number of elements in the array. + * @param elem Element to be added. + */ +void av_dynarray_add(void *tab_ptr, int *nb_ptr, void *elem); + +/** + * Multiply two size_t values checking for overflow. + * @return 0 if success, AVERROR(EINVAL) if overflow. + */ +static inline int av_size_mult(size_t a, size_t b, size_t *r) +{ + size_t t = a * b; + /* Hack inspired from glibc: only try the division if nelem and elsize + * are both greater than sqrt(SIZE_MAX). */ + if ((a | b) >= ((size_t)1 << (sizeof(size_t) * 4)) && a && t / a != b) + return AVERROR(EINVAL); + *r = t; + return 0; +} + +/** + * Set the maximum size that may me allocated in one block. + */ +void av_max_alloc(size_t max); + +/** + * @} + */ + +#endif /* AVUTIL_MEM_H */ diff --git a/Externals/ffmpeg/include/libavutil/opt.h b/Externals/ffmpeg/include/libavutil/opt.h new file mode 100644 index 00000000..0196056d --- /dev/null +++ b/Externals/ffmpeg/include/libavutil/opt.h @@ -0,0 +1,603 @@ +/* + * AVOptions + * copyright (c) 2005 Michael Niedermayer + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_OPT_H +#define AVUTIL_OPT_H + +/** + * @file + * AVOptions + */ + +#include "rational.h" +#include "avutil.h" +#include "dict.h" +#include "log.h" + +/** + * @defgroup avoptions AVOptions + * @ingroup lavu_data + * @{ + * AVOptions provide a generic system to declare options on arbitrary structs + * ("objects"). An option can have a help text, a type and a range of possible + * values. Options may then be enumerated, read and written to. + * + * @section avoptions_implement Implementing AVOptions + * This section describes how to add AVOptions capabilities to a struct. + * + * All AVOptions-related information is stored in an AVClass. Therefore + * the first member of the struct must be a pointer to an AVClass describing it. + * The option field of the AVClass must be set to a NULL-terminated static array + * of AVOptions. Each AVOption must have a non-empty name, a type, a default + * value and for number-type AVOptions also a range of allowed values. It must + * also declare an offset in bytes from the start of the struct, where the field + * associated with this AVOption is located. Other fields in the AVOption struct + * should also be set when applicable, but are not required. + * + * The following example illustrates an AVOptions-enabled struct: + * @code + * typedef struct test_struct { + * AVClass *class; + * int int_opt; + * char *str_opt; + * uint8_t *bin_opt; + * int bin_len; + * } test_struct; + * + * static const AVOption options[] = { + * { "test_int", "This is a test option of int type.", offsetof(test_struct, int_opt), + * AV_OPT_TYPE_INT, { -1 }, INT_MIN, INT_MAX }, + * { "test_str", "This is a test option of string type.", offsetof(test_struct, str_opt), + * AV_OPT_TYPE_STRING }, + * { "test_bin", "This is a test option of binary type.", offsetof(test_struct, bin_opt), + * AV_OPT_TYPE_BINARY }, + * { NULL }, + * }; + * + * static const AVClass test_class = { + * .class_name = "test class", + * .item_name = av_default_item_name, + * .option = options, + * .version = LIBAVUTIL_VERSION_INT, + * }; + * @endcode + * + * Next, when allocating your struct, you must ensure that the AVClass pointer + * is set to the correct value. Then, av_opt_set_defaults() must be called to + * initialize defaults. After that the struct is ready to be used with the + * AVOptions API. + * + * When cleaning up, you may use the av_opt_free() function to automatically + * free all the allocated string and binary options. + * + * Continuing with the above example: + * + * @code + * test_struct *alloc_test_struct(void) + * { + * test_struct *ret = av_malloc(sizeof(*ret)); + * ret->class = &test_class; + * av_opt_set_defaults(ret); + * return ret; + * } + * void free_test_struct(test_struct **foo) + * { + * av_opt_free(*foo); + * av_freep(foo); + * } + * @endcode + * + * @subsection avoptions_implement_nesting Nesting + * It may happen that an AVOptions-enabled struct contains another + * AVOptions-enabled struct as a member (e.g. AVCodecContext in + * libavcodec exports generic options, while its priv_data field exports + * codec-specific options). In such a case, it is possible to set up the + * parent struct to export a child's options. To do that, simply + * implement AVClass.child_next() and AVClass.child_class_next() in the + * parent struct's AVClass. + * Assuming that the test_struct from above now also contains a + * child_struct field: + * + * @code + * typedef struct child_struct { + * AVClass *class; + * int flags_opt; + * } child_struct; + * static const AVOption child_opts[] = { + * { "test_flags", "This is a test option of flags type.", + * offsetof(child_struct, flags_opt), AV_OPT_TYPE_FLAGS, { 0 }, INT_MIN, INT_MAX }, + * { NULL }, + * }; + * static const AVClass child_class = { + * .class_name = "child class", + * .item_name = av_default_item_name, + * .option = child_opts, + * .version = LIBAVUTIL_VERSION_INT, + * }; + * + * void *child_next(void *obj, void *prev) + * { + * test_struct *t = obj; + * if (!prev && t->child_struct) + * return t->child_struct; + * return NULL + * } + * const AVClass child_class_next(const AVClass *prev) + * { + * return prev ? NULL : &child_class; + * } + * @endcode + * Putting child_next() and child_class_next() as defined above into + * test_class will now make child_struct's options accessible through + * test_struct (again, proper setup as described above needs to be done on + * child_struct right after it is created). + * + * From the above example it might not be clear why both child_next() + * and child_class_next() are needed. The distinction is that child_next() + * iterates over actually existing objects, while child_class_next() + * iterates over all possible child classes. E.g. if an AVCodecContext + * was initialized to use a codec which has private options, then its + * child_next() will return AVCodecContext.priv_data and finish + * iterating. OTOH child_class_next() on AVCodecContext.av_class will + * iterate over all available codecs with private options. + * + * @subsection avoptions_implement_named_constants Named constants + * It is possible to create named constants for options. Simply set the unit + * field of the option the constants should apply to to a string and + * create the constants themselves as options of type AV_OPT_TYPE_CONST + * with their unit field set to the same string. + * Their default_val field should contain the value of the named + * constant. + * For example, to add some named constants for the test_flags option + * above, put the following into the child_opts array: + * @code + * { "test_flags", "This is a test option of flags type.", + * offsetof(child_struct, flags_opt), AV_OPT_TYPE_FLAGS, { 0 }, INT_MIN, INT_MAX, "test_unit" }, + * { "flag1", "This is a flag with value 16", 0, AV_OPT_TYPE_CONST, { 16 }, 0, 0, "test_unit" }, + * @endcode + * + * @section avoptions_use Using AVOptions + * This section deals with accessing options in an AVOptions-enabled struct. + * Such structs in FFmpeg are e.g. AVCodecContext in libavcodec or + * AVFormatContext in libavformat. + * + * @subsection avoptions_use_examine Examining AVOptions + * The basic functions for examining options are av_opt_next(), which iterates + * over all options defined for one object, and av_opt_find(), which searches + * for an option with the given name. + * + * The situation is more complicated with nesting. An AVOptions-enabled struct + * may have AVOptions-enabled children. Passing the AV_OPT_SEARCH_CHILDREN flag + * to av_opt_find() will make the function search children recursively. + * + * For enumerating there are basically two cases. The first is when you want to + * get all options that may potentially exist on the struct and its children + * (e.g. when constructing documentation). In that case you should call + * av_opt_child_class_next() recursively on the parent struct's AVClass. The + * second case is when you have an already initialized struct with all its + * children and you want to get all options that can be actually written or read + * from it. In that case you should call av_opt_child_next() recursively (and + * av_opt_next() on each result). + * + * @subsection avoptions_use_get_set Reading and writing AVOptions + * When setting options, you often have a string read directly from the + * user. In such a case, simply passing it to av_opt_set() is enough. For + * non-string type options, av_opt_set() will parse the string according to the + * option type. + * + * Similarly av_opt_get() will read any option type and convert it to a string + * which will be returned. Do not forget that the string is allocated, so you + * have to free it with av_free(). + * + * In some cases it may be more convenient to put all options into an + * AVDictionary and call av_opt_set_dict() on it. A specific case of this + * are the format/codec open functions in lavf/lavc which take a dictionary + * filled with option as a parameter. This allows to set some options + * that cannot be set otherwise, since e.g. the input file format is not known + * before the file is actually opened. + */ + +enum AVOptionType{ + AV_OPT_TYPE_FLAGS, + AV_OPT_TYPE_INT, + AV_OPT_TYPE_INT64, + AV_OPT_TYPE_DOUBLE, + AV_OPT_TYPE_FLOAT, + AV_OPT_TYPE_STRING, + AV_OPT_TYPE_RATIONAL, + AV_OPT_TYPE_BINARY, ///< offset must point to a pointer immediately followed by an int for the length + AV_OPT_TYPE_CONST = 128, +#if FF_API_OLD_AVOPTIONS + FF_OPT_TYPE_FLAGS = 0, + FF_OPT_TYPE_INT, + FF_OPT_TYPE_INT64, + FF_OPT_TYPE_DOUBLE, + FF_OPT_TYPE_FLOAT, + FF_OPT_TYPE_STRING, + FF_OPT_TYPE_RATIONAL, + FF_OPT_TYPE_BINARY, ///< offset must point to a pointer immediately followed by an int for the length + FF_OPT_TYPE_CONST=128, +#endif +}; + +/** + * AVOption + */ +typedef struct AVOption { + const char *name; + + /** + * short English help text + * @todo What about other languages? + */ + const char *help; + + /** + * The offset relative to the context structure where the option + * value is stored. It should be 0 for named constants. + */ + int offset; + enum AVOptionType type; + + /** + * the default value for scalar options + */ + union { + double dbl; + const char *str; + /* TODO those are unused now */ + int64_t i64; + AVRational q; + } default_val; + double min; ///< minimum valid value for the option + double max; ///< maximum valid value for the option + + int flags; +#define AV_OPT_FLAG_ENCODING_PARAM 1 ///< a generic parameter which can be set by the user for muxing or encoding +#define AV_OPT_FLAG_DECODING_PARAM 2 ///< a generic parameter which can be set by the user for demuxing or decoding +#define AV_OPT_FLAG_METADATA 4 ///< some data extracted or inserted into the file like title, comment, ... +#define AV_OPT_FLAG_AUDIO_PARAM 8 +#define AV_OPT_FLAG_VIDEO_PARAM 16 +#define AV_OPT_FLAG_SUBTITLE_PARAM 32 +//FIXME think about enc-audio, ... style flags + + /** + * The logical unit to which the option belongs. Non-constant + * options and corresponding named constants share the same + * unit. May be NULL. + */ + const char *unit; +} AVOption; + +#if FF_API_FIND_OPT +/** + * Look for an option in obj. Look only for the options which + * have the flags set as specified in mask and flags (that is, + * for which it is the case that opt->flags & mask == flags). + * + * @param[in] obj a pointer to a struct whose first element is a + * pointer to an AVClass + * @param[in] name the name of the option to look for + * @param[in] unit the unit of the option to look for, or any if NULL + * @return a pointer to the option found, or NULL if no option + * has been found + * + * @deprecated use av_opt_find. + */ +attribute_deprecated +const AVOption *av_find_opt(void *obj, const char *name, const char *unit, int mask, int flags); +#endif + +#if FF_API_OLD_AVOPTIONS +/** + * Set the field of obj with the given name to value. + * + * @param[in] obj A struct whose first element is a pointer to an + * AVClass. + * @param[in] name the name of the field to set + * @param[in] val The value to set. If the field is not of a string + * type, then the given string is parsed. + * SI postfixes and some named scalars are supported. + * If the field is of a numeric type, it has to be a numeric or named + * scalar. Behavior with more than one scalar and +- infix operators + * is undefined. + * If the field is of a flags type, it has to be a sequence of numeric + * scalars or named flags separated by '+' or '-'. Prefixing a flag + * with '+' causes it to be set without affecting the other flags; + * similarly, '-' unsets a flag. + * @param[out] o_out if non-NULL put here a pointer to the AVOption + * found + * @param alloc this parameter is currently ignored + * @return 0 if the value has been set, or an AVERROR code in case of + * error: + * AVERROR_OPTION_NOT_FOUND if no matching option exists + * AVERROR(ERANGE) if the value is out of range + * AVERROR(EINVAL) if the value is not valid + * @deprecated use av_opt_set() + */ +attribute_deprecated +int av_set_string3(void *obj, const char *name, const char *val, int alloc, const AVOption **o_out); + +attribute_deprecated const AVOption *av_set_double(void *obj, const char *name, double n); +attribute_deprecated const AVOption *av_set_q(void *obj, const char *name, AVRational n); +attribute_deprecated const AVOption *av_set_int(void *obj, const char *name, int64_t n); + +double av_get_double(void *obj, const char *name, const AVOption **o_out); +AVRational av_get_q(void *obj, const char *name, const AVOption **o_out); +int64_t av_get_int(void *obj, const char *name, const AVOption **o_out); +attribute_deprecated const char *av_get_string(void *obj, const char *name, const AVOption **o_out, char *buf, int buf_len); +attribute_deprecated const AVOption *av_next_option(void *obj, const AVOption *last); +#endif + +/** + * Show the obj options. + * + * @param req_flags requested flags for the options to show. Show only the + * options for which it is opt->flags & req_flags. + * @param rej_flags rejected flags for the options to show. Show only the + * options for which it is !(opt->flags & req_flags). + * @param av_log_obj log context to use for showing the options + */ +int av_opt_show2(void *obj, void *av_log_obj, int req_flags, int rej_flags); + +/** + * Set the values of all AVOption fields to their default values. + * + * @param s an AVOption-enabled struct (its first member must be a pointer to AVClass) + */ +void av_opt_set_defaults(void *s); + +#if FF_API_OLD_AVOPTIONS +attribute_deprecated +void av_opt_set_defaults2(void *s, int mask, int flags); +#endif + +/** + * Parse the key/value pairs list in opts. For each key/value pair + * found, stores the value in the field in ctx that is named like the + * key. ctx must be an AVClass context, storing is done using + * AVOptions. + * + * @param opts options string to parse, may be NULL + * @param key_val_sep a 0-terminated list of characters used to + * separate key from value + * @param pairs_sep a 0-terminated list of characters used to separate + * two pairs from each other + * @return the number of successfully set key/value pairs, or a negative + * value corresponding to an AVERROR code in case of error: + * AVERROR(EINVAL) if opts cannot be parsed, + * the error code issued by av_set_string3() if a key/value pair + * cannot be set + */ +int av_set_options_string(void *ctx, const char *opts, + const char *key_val_sep, const char *pairs_sep); + +/** + * Free all string and binary options in obj. + */ +void av_opt_free(void *obj); + +/** + * Check whether a particular flag is set in a flags field. + * + * @param field_name the name of the flag field option + * @param flag_name the name of the flag to check + * @return non-zero if the flag is set, zero if the flag isn't set, + * isn't of the right type, or the flags field doesn't exist. + */ +int av_opt_flag_is_set(void *obj, const char *field_name, const char *flag_name); + +/* + * Set all the options from a given dictionary on an object. + * + * @param obj a struct whose first element is a pointer to AVClass + * @param options options to process. This dictionary will be freed and replaced + * by a new one containing all options not found in obj. + * Of course this new dictionary needs to be freed by caller + * with av_dict_free(). + * + * @return 0 on success, a negative AVERROR if some option was found in obj, + * but could not be set. + * + * @see av_dict_copy() + */ +int av_opt_set_dict(void *obj, struct AVDictionary **options); + +/** + * @defgroup opt_eval_funcs Evaluating option strings + * @{ + * This group of functions can be used to evaluate option strings + * and get numbers out of them. They do the same thing as av_opt_set(), + * except the result is written into the caller-supplied pointer. + * + * @param obj a struct whose first element is a pointer to AVClass. + * @param o an option for which the string is to be evaluated. + * @param val string to be evaluated. + * @param *_out value of the string will be written here. + * + * @return 0 on success, a negative number on failure. + */ +int av_opt_eval_flags (void *obj, const AVOption *o, const char *val, int *flags_out); +int av_opt_eval_int (void *obj, const AVOption *o, const char *val, int *int_out); +int av_opt_eval_int64 (void *obj, const AVOption *o, const char *val, int64_t *int64_out); +int av_opt_eval_float (void *obj, const AVOption *o, const char *val, float *float_out); +int av_opt_eval_double(void *obj, const AVOption *o, const char *val, double *double_out); +int av_opt_eval_q (void *obj, const AVOption *o, const char *val, AVRational *q_out); +/** + * @} + */ + +#define AV_OPT_SEARCH_CHILDREN 0x0001 /**< Search in possible children of the + given object first. */ +/** + * The obj passed to av_opt_find() is fake -- only a double pointer to AVClass + * instead of a required pointer to a struct containing AVClass. This is + * useful for searching for options without needing to allocate the corresponding + * object. + */ +#define AV_OPT_SEARCH_FAKE_OBJ 0x0002 + +/** + * Look for an option in an object. Consider only options which + * have all the specified flags set. + * + * @param[in] obj A pointer to a struct whose first element is a + * pointer to an AVClass. + * Alternatively a double pointer to an AVClass, if + * AV_OPT_SEARCH_FAKE_OBJ search flag is set. + * @param[in] name The name of the option to look for. + * @param[in] unit When searching for named constants, name of the unit + * it belongs to. + * @param opt_flags Find only options with all the specified flags set (AV_OPT_FLAG). + * @param search_flags A combination of AV_OPT_SEARCH_*. + * + * @return A pointer to the option found, or NULL if no option + * was found. + * + * @note Options found with AV_OPT_SEARCH_CHILDREN flag may not be settable + * directly with av_set_string3(). Use special calls which take an options + * AVDictionary (e.g. avformat_open_input()) to set options found with this + * flag. + */ +const AVOption *av_opt_find(void *obj, const char *name, const char *unit, + int opt_flags, int search_flags); + +/** + * Look for an option in an object. Consider only options which + * have all the specified flags set. + * + * @param[in] obj A pointer to a struct whose first element is a + * pointer to an AVClass. + * Alternatively a double pointer to an AVClass, if + * AV_OPT_SEARCH_FAKE_OBJ search flag is set. + * @param[in] name The name of the option to look for. + * @param[in] unit When searching for named constants, name of the unit + * it belongs to. + * @param opt_flags Find only options with all the specified flags set (AV_OPT_FLAG). + * @param search_flags A combination of AV_OPT_SEARCH_*. + * @param[out] target_obj if non-NULL, an object to which the option belongs will be + * written here. It may be different from obj if AV_OPT_SEARCH_CHILDREN is present + * in search_flags. This parameter is ignored if search_flags contain + * AV_OPT_SEARCH_FAKE_OBJ. + * + * @return A pointer to the option found, or NULL if no option + * was found. + */ +const AVOption *av_opt_find2(void *obj, const char *name, const char *unit, + int opt_flags, int search_flags, void **target_obj); + +/** + * Iterate over all AVOptions belonging to obj. + * + * @param obj an AVOptions-enabled struct or a double pointer to an + * AVClass describing it. + * @param prev result of the previous call to av_opt_next() on this object + * or NULL + * @return next AVOption or NULL + */ +const AVOption *av_opt_next(void *obj, const AVOption *prev); + +/** + * Iterate over AVOptions-enabled children of obj. + * + * @param prev result of a previous call to this function or NULL + * @return next AVOptions-enabled child or NULL + */ +void *av_opt_child_next(void *obj, void *prev); + +/** + * Iterate over potential AVOptions-enabled children of parent. + * + * @param prev result of a previous call to this function or NULL + * @return AVClass corresponding to next potential child or NULL + */ +const AVClass *av_opt_child_class_next(const AVClass *parent, const AVClass *prev); + +/** + * @defgroup opt_set_funcs Option setting functions + * @{ + * Those functions set the field of obj with the given name to value. + * + * @param[in] obj A struct whose first element is a pointer to an AVClass. + * @param[in] name the name of the field to set + * @param[in] val The value to set. In case of av_opt_set() if the field is not + * of a string type, then the given string is parsed. + * SI postfixes and some named scalars are supported. + * If the field is of a numeric type, it has to be a numeric or named + * scalar. Behavior with more than one scalar and +- infix operators + * is undefined. + * If the field is of a flags type, it has to be a sequence of numeric + * scalars or named flags separated by '+' or '-'. Prefixing a flag + * with '+' causes it to be set without affecting the other flags; + * similarly, '-' unsets a flag. + * @param search_flags flags passed to av_opt_find2. I.e. if AV_OPT_SEARCH_CHILDREN + * is passed here, then the option may be set on a child of obj. + * + * @return 0 if the value has been set, or an AVERROR code in case of + * error: + * AVERROR_OPTION_NOT_FOUND if no matching option exists + * AVERROR(ERANGE) if the value is out of range + * AVERROR(EINVAL) if the value is not valid + */ +int av_opt_set (void *obj, const char *name, const char *val, int search_flags); +int av_opt_set_int (void *obj, const char *name, int64_t val, int search_flags); +int av_opt_set_double(void *obj, const char *name, double val, int search_flags); +int av_opt_set_q (void *obj, const char *name, AVRational val, int search_flags); +/** + * @} + */ + +/** + * @defgroup opt_get_funcs Option getting functions + * @{ + * Those functions get a value of the option with the given name from an object. + * + * @param[in] obj a struct whose first element is a pointer to an AVClass. + * @param[in] name name of the option to get. + * @param[in] search_flags flags passed to av_opt_find2. I.e. if AV_OPT_SEARCH_CHILDREN + * is passed here, then the option may be found in a child of obj. + * @param[out] out_val value of the option will be written here + * @return 0 on success, a negative error code otherwise + */ +/** + * @note the returned string will av_malloc()ed and must be av_free()ed by the caller + */ +int av_opt_get (void *obj, const char *name, int search_flags, uint8_t **out_val); +int av_opt_get_int (void *obj, const char *name, int search_flags, int64_t *out_val); +int av_opt_get_double(void *obj, const char *name, int search_flags, double *out_val); +int av_opt_get_q (void *obj, const char *name, int search_flags, AVRational *out_val); +/** + * @} + */ +/** + * Gets a pointer to the requested field in a struct. + * This function allows accessing a struct even when its fields are moved or + * renamed since the application making the access has been compiled, + * + * @returns a pointer to the field, it can be cast to the correct type and read + * or written to. + */ +void *av_opt_ptr(const AVClass *avclass, void *obj, const char *name); +/** + * @} + */ + +#endif /* AVUTIL_OPT_H */ diff --git a/Externals/ffmpeg/include/libavutil/parseutils.h b/Externals/ffmpeg/include/libavutil/parseutils.h new file mode 100644 index 00000000..2a74a060 --- /dev/null +++ b/Externals/ffmpeg/include/libavutil/parseutils.h @@ -0,0 +1,124 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_PARSEUTILS_H +#define AVUTIL_PARSEUTILS_H + +#include + +#include "rational.h" + +/** + * @file + * misc parsing utilities + */ + +/** + * Parse str and put in width_ptr and height_ptr the detected values. + * + * @param[in,out] width_ptr pointer to the variable which will contain the detected + * width value + * @param[in,out] height_ptr pointer to the variable which will contain the detected + * height value + * @param[in] str the string to parse: it has to be a string in the format + * width x height or a valid video size abbreviation. + * @return >= 0 on success, a negative error code otherwise + */ +int av_parse_video_size(int *width_ptr, int *height_ptr, const char *str); + +/** + * Parse str and store the detected values in *rate. + * + * @param[in,out] rate pointer to the AVRational which will contain the detected + * frame rate + * @param[in] str the string to parse: it has to be a string in the format + * rate_num / rate_den, a float number or a valid video rate abbreviation + * @return >= 0 on success, a negative error code otherwise + */ +int av_parse_video_rate(AVRational *rate, const char *str); + +/** + * Put the RGBA values that correspond to color_string in rgba_color. + * + * @param color_string a string specifying a color. It can be the name of + * a color (case insensitive match) or a [0x|#]RRGGBB[AA] sequence, + * possibly followed by "@" and a string representing the alpha + * component. + * The alpha component may be a string composed by "0x" followed by an + * hexadecimal number or a decimal number between 0.0 and 1.0, which + * represents the opacity value (0x00/0.0 means completely transparent, + * 0xff/1.0 completely opaque). + * If the alpha component is not specified then 0xff is assumed. + * The string "random" will result in a random color. + * @param slen length of the initial part of color_string containing the + * color. It can be set to -1 if color_string is a null terminated string + * containing nothing else than the color. + * @return >= 0 in case of success, a negative value in case of + * failure (for example if color_string cannot be parsed). + */ +int av_parse_color(uint8_t *rgba_color, const char *color_string, int slen, + void *log_ctx); + +/** + * Parse timestr and return in *time a corresponding number of + * microseconds. + * + * @param timeval puts here the number of microseconds corresponding + * to the string in timestr. If the string represents a duration, it + * is the number of microseconds contained in the time interval. If + * the string is a date, is the number of microseconds since 1st of + * January, 1970 up to the time of the parsed date. If timestr cannot + * be successfully parsed, set *time to INT64_MIN. + + * @param timestr a string representing a date or a duration. + * - If a date the syntax is: + * @code + * [{YYYY-MM-DD|YYYYMMDD}[T|t| ]]{{HH[:MM[:SS[.m...]]]}|{HH[MM[SS[.m...]]]}}[Z] + * now + * @endcode + * If the value is "now" it takes the current time. + * Time is local time unless Z is appended, in which case it is + * interpreted as UTC. + * If the year-month-day part is not specified it takes the current + * year-month-day. + * - If a duration the syntax is: + * @code + * [-]HH[:MM[:SS[.m...]]] + * [-]S+[.m...] + * @endcode + * @param duration flag which tells how to interpret timestr, if not + * zero timestr is interpreted as a duration, otherwise as a date + * @return 0 in case of success, a negative value corresponding to an + * AVERROR code otherwise + */ +int av_parse_time(int64_t *timeval, const char *timestr, int duration); + +/** + * Attempt to find a specific tag in a URL. + * + * syntax: '?tag1=val1&tag2=val2...'. Little URL decoding is done. + * Return 1 if found. + */ +int av_find_info_tag(char *arg, int arg_size, const char *tag1, const char *info); + +/** + * Convert the decomposed UTC time in tm to a time_t value. + */ +time_t av_timegm(struct tm *tm); + +#endif /* AVUTIL_PARSEUTILS_H */ diff --git a/Externals/ffmpeg/include/libavutil/pixdesc.h b/Externals/ffmpeg/include/libavutil/pixdesc.h new file mode 100644 index 00000000..21752467 --- /dev/null +++ b/Externals/ffmpeg/include/libavutil/pixdesc.h @@ -0,0 +1,177 @@ +/* + * pixel format descriptor + * Copyright (c) 2009 Michael Niedermayer + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_PIXDESC_H +#define AVUTIL_PIXDESC_H + +#include +#include "pixfmt.h" + +typedef struct AVComponentDescriptor{ + uint16_t plane :2; ///< which of the 4 planes contains the component + + /** + * Number of elements between 2 horizontally consecutive pixels minus 1. + * Elements are bits for bitstream formats, bytes otherwise. + */ + uint16_t step_minus1 :3; + + /** + * Number of elements before the component of the first pixel plus 1. + * Elements are bits for bitstream formats, bytes otherwise. + */ + uint16_t offset_plus1 :3; + uint16_t shift :3; ///< number of least significant bits that must be shifted away to get the value + uint16_t depth_minus1 :4; ///< number of bits in the component minus 1 +}AVComponentDescriptor; + +/** + * Descriptor that unambiguously describes how the bits of a pixel are + * stored in the up to 4 data planes of an image. It also stores the + * subsampling factors and number of components. + * + * @note This is separate of the colorspace (RGB, YCbCr, YPbPr, JPEG-style YUV + * and all the YUV variants) AVPixFmtDescriptor just stores how values + * are stored not what these values represent. + */ +typedef struct AVPixFmtDescriptor{ + const char *name; + uint8_t nb_components; ///< The number of components each pixel has, (1-4) + + /** + * Amount to shift the luma width right to find the chroma width. + * For YV12 this is 1 for example. + * chroma_width = -((-luma_width) >> log2_chroma_w) + * The note above is needed to ensure rounding up. + * This value only refers to the chroma components. + */ + uint8_t log2_chroma_w; ///< chroma_width = -((-luma_width )>>log2_chroma_w) + + /** + * Amount to shift the luma height right to find the chroma height. + * For YV12 this is 1 for example. + * chroma_height= -((-luma_height) >> log2_chroma_h) + * The note above is needed to ensure rounding up. + * This value only refers to the chroma components. + */ + uint8_t log2_chroma_h; + uint8_t flags; + + /** + * Parameters that describe how pixels are packed. If the format + * has chroma components, they must be stored in comp[1] and + * comp[2]. + */ + AVComponentDescriptor comp[4]; +}AVPixFmtDescriptor; + +#define PIX_FMT_BE 1 ///< Pixel format is big-endian. +#define PIX_FMT_PAL 2 ///< Pixel format has a palette in data[1], values are indexes in this palette. +#define PIX_FMT_BITSTREAM 4 ///< All values of a component are bit-wise packed end to end. +#define PIX_FMT_HWACCEL 8 ///< Pixel format is an HW accelerated format. +#define PIX_FMT_PLANAR 16 ///< At least one pixel component is not in the first data plane +#define PIX_FMT_RGB 32 ///< The pixel format contains RGB-like data (as opposed to YUV/grayscale) + +/** + * The array of all the pixel format descriptors. + */ +extern const AVPixFmtDescriptor av_pix_fmt_descriptors[]; + +/** + * Read a line from an image, and write the values of the + * pixel format component c to dst. + * + * @param data the array containing the pointers to the planes of the image + * @param linesize the array containing the linesizes of the image + * @param desc the pixel format descriptor for the image + * @param x the horizontal coordinate of the first pixel to read + * @param y the vertical coordinate of the first pixel to read + * @param w the width of the line to read, that is the number of + * values to write to dst + * @param read_pal_component if not zero and the format is a paletted + * format writes the values corresponding to the palette + * component c in data[1] to dst, rather than the palette indexes in + * data[0]. The behavior is undefined if the format is not paletted. + */ +void av_read_image_line(uint16_t *dst, const uint8_t *data[4], const int linesize[4], + const AVPixFmtDescriptor *desc, int x, int y, int c, int w, int read_pal_component); + +/** + * Write the values from src to the pixel format component c of an + * image line. + * + * @param src array containing the values to write + * @param data the array containing the pointers to the planes of the + * image to write into. It is supposed to be zeroed. + * @param linesize the array containing the linesizes of the image + * @param desc the pixel format descriptor for the image + * @param x the horizontal coordinate of the first pixel to write + * @param y the vertical coordinate of the first pixel to write + * @param w the width of the line to write, that is the number of + * values to write to the image line + */ +void av_write_image_line(const uint16_t *src, uint8_t *data[4], const int linesize[4], + const AVPixFmtDescriptor *desc, int x, int y, int c, int w); + +/** + * Return the pixel format corresponding to name. + * + * If there is no pixel format with name name, then looks for a + * pixel format with the name corresponding to the native endian + * format of name. + * For example in a little-endian system, first looks for "gray16", + * then for "gray16le". + * + * Finally if no pixel format has been found, returns PIX_FMT_NONE. + */ +enum PixelFormat av_get_pix_fmt(const char *name); + +/** + * Return the short name for a pixel format, NULL in case pix_fmt is + * unknown. + * + * @see av_get_pix_fmt(), av_get_pix_fmt_string() + */ +const char *av_get_pix_fmt_name(enum PixelFormat pix_fmt); + +/** + * Print in buf the string corresponding to the pixel format with + * number pix_fmt, or an header if pix_fmt is negative. + * + * @param buf the buffer where to write the string + * @param buf_size the size of buf + * @param pix_fmt the number of the pixel format to print the + * corresponding info string, or a negative value to print the + * corresponding header. + */ +char *av_get_pix_fmt_string (char *buf, int buf_size, enum PixelFormat pix_fmt); + +/** + * Return the number of bits per pixel used by the pixel format + * described by pixdesc. + * + * The returned number of bits refers to the number of bits actually + * used for storing the pixel information, that is padding bits are + * not counted. + */ +int av_get_bits_per_pixel(const AVPixFmtDescriptor *pixdesc); + +#endif /* AVUTIL_PIXDESC_H */ diff --git a/Externals/ffmpeg/include/libavutil/pixfmt.h b/Externals/ffmpeg/include/libavutil/pixfmt.h new file mode 100644 index 00000000..f0d9c019 --- /dev/null +++ b/Externals/ffmpeg/include/libavutil/pixfmt.h @@ -0,0 +1,227 @@ +/* + * copyright (c) 2006 Michael Niedermayer + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_PIXFMT_H +#define AVUTIL_PIXFMT_H + +/** + * @file + * pixel format definitions + * + */ + +#include "libavutil/avconfig.h" + +/** + * Pixel format. + * + * @note + * PIX_FMT_RGB32 is handled in an endian-specific manner. An RGBA + * color is put together as: + * (A << 24) | (R << 16) | (G << 8) | B + * This is stored as BGRA on little-endian CPU architectures and ARGB on + * big-endian CPUs. + * + * @par + * When the pixel format is palettized RGB (PIX_FMT_PAL8), the palettized + * image data is stored in AVFrame.data[0]. The palette is transported in + * AVFrame.data[1], is 1024 bytes long (256 4-byte entries) and is + * formatted the same as in PIX_FMT_RGB32 described above (i.e., it is + * also endian-specific). Note also that the individual RGB palette + * components stored in AVFrame.data[1] should be in the range 0..255. + * This is important as many custom PAL8 video codecs that were designed + * to run on the IBM VGA graphics adapter use 6-bit palette components. + * + * @par + * For all the 8bit per pixel formats, an RGB32 palette is in data[1] like + * for pal8. This palette is filled in automatically by the function + * allocating the picture. + * + * @note + * make sure that all newly added big endian formats have pix_fmt&1==1 + * and that all newly added little endian formats have pix_fmt&1==0 + * this allows simpler detection of big vs little endian. + */ +enum PixelFormat { + PIX_FMT_NONE= -1, + PIX_FMT_YUV420P, ///< planar YUV 4:2:0, 12bpp, (1 Cr & Cb sample per 2x2 Y samples) + PIX_FMT_YUYV422, ///< packed YUV 4:2:2, 16bpp, Y0 Cb Y1 Cr + PIX_FMT_RGB24, ///< packed RGB 8:8:8, 24bpp, RGBRGB... + PIX_FMT_BGR24, ///< packed RGB 8:8:8, 24bpp, BGRBGR... + PIX_FMT_YUV422P, ///< planar YUV 4:2:2, 16bpp, (1 Cr & Cb sample per 2x1 Y samples) + PIX_FMT_YUV444P, ///< planar YUV 4:4:4, 24bpp, (1 Cr & Cb sample per 1x1 Y samples) + PIX_FMT_YUV410P, ///< planar YUV 4:1:0, 9bpp, (1 Cr & Cb sample per 4x4 Y samples) + PIX_FMT_YUV411P, ///< planar YUV 4:1:1, 12bpp, (1 Cr & Cb sample per 4x1 Y samples) + PIX_FMT_GRAY8, ///< Y , 8bpp + PIX_FMT_MONOWHITE, ///< Y , 1bpp, 0 is white, 1 is black, in each byte pixels are ordered from the msb to the lsb + PIX_FMT_MONOBLACK, ///< Y , 1bpp, 0 is black, 1 is white, in each byte pixels are ordered from the msb to the lsb + PIX_FMT_PAL8, ///< 8 bit with PIX_FMT_RGB32 palette + PIX_FMT_YUVJ420P, ///< planar YUV 4:2:0, 12bpp, full scale (JPEG), deprecated in favor of PIX_FMT_YUV420P and setting color_range + PIX_FMT_YUVJ422P, ///< planar YUV 4:2:2, 16bpp, full scale (JPEG), deprecated in favor of PIX_FMT_YUV422P and setting color_range + PIX_FMT_YUVJ444P, ///< planar YUV 4:4:4, 24bpp, full scale (JPEG), deprecated in favor of PIX_FMT_YUV444P and setting color_range + PIX_FMT_XVMC_MPEG2_MC,///< XVideo Motion Acceleration via common packet passing + PIX_FMT_XVMC_MPEG2_IDCT, + PIX_FMT_UYVY422, ///< packed YUV 4:2:2, 16bpp, Cb Y0 Cr Y1 + PIX_FMT_UYYVYY411, ///< packed YUV 4:1:1, 12bpp, Cb Y0 Y1 Cr Y2 Y3 + PIX_FMT_BGR8, ///< packed RGB 3:3:2, 8bpp, (msb)2B 3G 3R(lsb) + PIX_FMT_BGR4, ///< packed RGB 1:2:1 bitstream, 4bpp, (msb)1B 2G 1R(lsb), a byte contains two pixels, the first pixel in the byte is the one composed by the 4 msb bits + PIX_FMT_BGR4_BYTE, ///< packed RGB 1:2:1, 8bpp, (msb)1B 2G 1R(lsb) + PIX_FMT_RGB8, ///< packed RGB 3:3:2, 8bpp, (msb)2R 3G 3B(lsb) + PIX_FMT_RGB4, ///< packed RGB 1:2:1 bitstream, 4bpp, (msb)1R 2G 1B(lsb), a byte contains two pixels, the first pixel in the byte is the one composed by the 4 msb bits + PIX_FMT_RGB4_BYTE, ///< packed RGB 1:2:1, 8bpp, (msb)1R 2G 1B(lsb) + PIX_FMT_NV12, ///< planar YUV 4:2:0, 12bpp, 1 plane for Y and 1 plane for the UV components, which are interleaved (first byte U and the following byte V) + PIX_FMT_NV21, ///< as above, but U and V bytes are swapped + + PIX_FMT_ARGB, ///< packed ARGB 8:8:8:8, 32bpp, ARGBARGB... + PIX_FMT_RGBA, ///< packed RGBA 8:8:8:8, 32bpp, RGBARGBA... + PIX_FMT_ABGR, ///< packed ABGR 8:8:8:8, 32bpp, ABGRABGR... + PIX_FMT_BGRA, ///< packed BGRA 8:8:8:8, 32bpp, BGRABGRA... + + PIX_FMT_GRAY16BE, ///< Y , 16bpp, big-endian + PIX_FMT_GRAY16LE, ///< Y , 16bpp, little-endian + PIX_FMT_YUV440P, ///< planar YUV 4:4:0 (1 Cr & Cb sample per 1x2 Y samples) + PIX_FMT_YUVJ440P, ///< planar YUV 4:4:0 full scale (JPEG), deprecated in favor of PIX_FMT_YUV440P and setting color_range + PIX_FMT_YUVA420P, ///< planar YUV 4:2:0, 20bpp, (1 Cr & Cb sample per 2x2 Y & A samples) + PIX_FMT_VDPAU_H264,///< H.264 HW decoding with VDPAU, data[0] contains a vdpau_render_state struct which contains the bitstream of the slices as well as various fields extracted from headers + PIX_FMT_VDPAU_MPEG1,///< MPEG-1 HW decoding with VDPAU, data[0] contains a vdpau_render_state struct which contains the bitstream of the slices as well as various fields extracted from headers + PIX_FMT_VDPAU_MPEG2,///< MPEG-2 HW decoding with VDPAU, data[0] contains a vdpau_render_state struct which contains the bitstream of the slices as well as various fields extracted from headers + PIX_FMT_VDPAU_WMV3,///< WMV3 HW decoding with VDPAU, data[0] contains a vdpau_render_state struct which contains the bitstream of the slices as well as various fields extracted from headers + PIX_FMT_VDPAU_VC1, ///< VC-1 HW decoding with VDPAU, data[0] contains a vdpau_render_state struct which contains the bitstream of the slices as well as various fields extracted from headers + PIX_FMT_RGB48BE, ///< packed RGB 16:16:16, 48bpp, 16R, 16G, 16B, the 2-byte value for each R/G/B component is stored as big-endian + PIX_FMT_RGB48LE, ///< packed RGB 16:16:16, 48bpp, 16R, 16G, 16B, the 2-byte value for each R/G/B component is stored as little-endian + + PIX_FMT_RGB565BE, ///< packed RGB 5:6:5, 16bpp, (msb) 5R 6G 5B(lsb), big-endian + PIX_FMT_RGB565LE, ///< packed RGB 5:6:5, 16bpp, (msb) 5R 6G 5B(lsb), little-endian + PIX_FMT_RGB555BE, ///< packed RGB 5:5:5, 16bpp, (msb)1A 5R 5G 5B(lsb), big-endian, most significant bit to 0 + PIX_FMT_RGB555LE, ///< packed RGB 5:5:5, 16bpp, (msb)1A 5R 5G 5B(lsb), little-endian, most significant bit to 0 + + PIX_FMT_BGR565BE, ///< packed BGR 5:6:5, 16bpp, (msb) 5B 6G 5R(lsb), big-endian + PIX_FMT_BGR565LE, ///< packed BGR 5:6:5, 16bpp, (msb) 5B 6G 5R(lsb), little-endian + PIX_FMT_BGR555BE, ///< packed BGR 5:5:5, 16bpp, (msb)1A 5B 5G 5R(lsb), big-endian, most significant bit to 1 + PIX_FMT_BGR555LE, ///< packed BGR 5:5:5, 16bpp, (msb)1A 5B 5G 5R(lsb), little-endian, most significant bit to 1 + + PIX_FMT_VAAPI_MOCO, ///< HW acceleration through VA API at motion compensation entry-point, Picture.data[3] contains a vaapi_render_state struct which contains macroblocks as well as various fields extracted from headers + PIX_FMT_VAAPI_IDCT, ///< HW acceleration through VA API at IDCT entry-point, Picture.data[3] contains a vaapi_render_state struct which contains fields extracted from headers + PIX_FMT_VAAPI_VLD, ///< HW decoding through VA API, Picture.data[3] contains a vaapi_render_state struct which contains the bitstream of the slices as well as various fields extracted from headers + + PIX_FMT_YUV420P16LE, ///< planar YUV 4:2:0, 24bpp, (1 Cr & Cb sample per 2x2 Y samples), little-endian + PIX_FMT_YUV420P16BE, ///< planar YUV 4:2:0, 24bpp, (1 Cr & Cb sample per 2x2 Y samples), big-endian + PIX_FMT_YUV422P16LE, ///< planar YUV 4:2:2, 32bpp, (1 Cr & Cb sample per 2x1 Y samples), little-endian + PIX_FMT_YUV422P16BE, ///< planar YUV 4:2:2, 32bpp, (1 Cr & Cb sample per 2x1 Y samples), big-endian + PIX_FMT_YUV444P16LE, ///< planar YUV 4:4:4, 48bpp, (1 Cr & Cb sample per 1x1 Y samples), little-endian + PIX_FMT_YUV444P16BE, ///< planar YUV 4:4:4, 48bpp, (1 Cr & Cb sample per 1x1 Y samples), big-endian + PIX_FMT_VDPAU_MPEG4, ///< MPEG4 HW decoding with VDPAU, data[0] contains a vdpau_render_state struct which contains the bitstream of the slices as well as various fields extracted from headers + PIX_FMT_DXVA2_VLD, ///< HW decoding through DXVA2, Picture.data[3] contains a LPDIRECT3DSURFACE9 pointer + + PIX_FMT_RGB444LE, ///< packed RGB 4:4:4, 16bpp, (msb)4A 4R 4G 4B(lsb), little-endian, most significant bits to 0 + PIX_FMT_RGB444BE, ///< packed RGB 4:4:4, 16bpp, (msb)4A 4R 4G 4B(lsb), big-endian, most significant bits to 0 + PIX_FMT_BGR444LE, ///< packed BGR 4:4:4, 16bpp, (msb)4A 4B 4G 4R(lsb), little-endian, most significant bits to 1 + PIX_FMT_BGR444BE, ///< packed BGR 4:4:4, 16bpp, (msb)4A 4B 4G 4R(lsb), big-endian, most significant bits to 1 + PIX_FMT_GRAY8A, ///< 8bit gray, 8bit alpha + PIX_FMT_BGR48BE, ///< packed RGB 16:16:16, 48bpp, 16B, 16G, 16R, the 2-byte value for each R/G/B component is stored as big-endian + PIX_FMT_BGR48LE, ///< packed RGB 16:16:16, 48bpp, 16B, 16G, 16R, the 2-byte value for each R/G/B component is stored as little-endian + + //the following 10 formats have the disadvantage of needing 1 format for each bit depth, thus + //If you want to support multiple bit depths, then using PIX_FMT_YUV420P16* with the bpp stored seperately + //is better + PIX_FMT_YUV420P9BE, ///< planar YUV 4:2:0, 13.5bpp, (1 Cr & Cb sample per 2x2 Y samples), big-endian + PIX_FMT_YUV420P9LE, ///< planar YUV 4:2:0, 13.5bpp, (1 Cr & Cb sample per 2x2 Y samples), little-endian + PIX_FMT_YUV420P10BE,///< planar YUV 4:2:0, 15bpp, (1 Cr & Cb sample per 2x2 Y samples), big-endian + PIX_FMT_YUV420P10LE,///< planar YUV 4:2:0, 15bpp, (1 Cr & Cb sample per 2x2 Y samples), little-endian + PIX_FMT_YUV422P10BE,///< planar YUV 4:2:2, 20bpp, (1 Cr & Cb sample per 2x1 Y samples), big-endian + PIX_FMT_YUV422P10LE,///< planar YUV 4:2:2, 20bpp, (1 Cr & Cb sample per 2x1 Y samples), little-endian + PIX_FMT_YUV444P9BE, ///< planar YUV 4:4:4, 27bpp, (1 Cr & Cb sample per 1x1 Y samples), big-endian + PIX_FMT_YUV444P9LE, ///< planar YUV 4:4:4, 27bpp, (1 Cr & Cb sample per 1x1 Y samples), little-endian + PIX_FMT_YUV444P10BE,///< planar YUV 4:4:4, 30bpp, (1 Cr & Cb sample per 1x1 Y samples), big-endian + PIX_FMT_YUV444P10LE,///< planar YUV 4:4:4, 30bpp, (1 Cr & Cb sample per 1x1 Y samples), little-endian + PIX_FMT_YUV422P9BE, ///< planar YUV 4:2:2, 18bpp, (1 Cr & Cb sample per 2x1 Y samples), big-endian + PIX_FMT_YUV422P9LE, ///< planar YUV 4:2:2, 18bpp, (1 Cr & Cb sample per 2x1 Y samples), little-endian + PIX_FMT_VDA_VLD, ///< hardware decoding through VDA + +#ifdef AV_PIX_FMT_ABI_GIT_MASTER + PIX_FMT_RGBA64BE, ///< packed RGBA 16:16:16:16, 64bpp, 16R, 16G, 16B, 16A, the 2-byte value for each R/G/B/A component is stored as big-endian + PIX_FMT_RGBA64LE, ///< packed RGBA 16:16:16:16, 64bpp, 16R, 16G, 16B, 16A, the 2-byte value for each R/G/B/A component is stored as little-endian + PIX_FMT_BGRA64BE, ///< packed RGBA 16:16:16:16, 64bpp, 16B, 16G, 16R, 16A, the 2-byte value for each R/G/B/A component is stored as big-endian + PIX_FMT_BGRA64LE, ///< packed RGBA 16:16:16:16, 64bpp, 16B, 16G, 16R, 16A, the 2-byte value for each R/G/B/A component is stored as little-endian +#endif + PIX_FMT_GBRP, ///< planar GBR 4:4:4 24bpp + PIX_FMT_GBRP9BE, ///< planar GBR 4:4:4 27bpp, big endian + PIX_FMT_GBRP9LE, ///< planar GBR 4:4:4 27bpp, little endian + PIX_FMT_GBRP10BE, ///< planar GBR 4:4:4 30bpp, big endian + PIX_FMT_GBRP10LE, ///< planar GBR 4:4:4 30bpp, little endian + PIX_FMT_GBRP16BE, ///< planar GBR 4:4:4 48bpp, big endian + PIX_FMT_GBRP16LE, ///< planar GBR 4:4:4 48bpp, little endian + +#ifndef AV_PIX_FMT_ABI_GIT_MASTER + PIX_FMT_RGBA64BE=0x123, ///< packed RGBA 16:16:16:16, 64bpp, 16R, 16G, 16B, 16A, the 2-byte value for each R/G/B/A component is stored as big-endian + PIX_FMT_RGBA64LE, ///< packed RGBA 16:16:16:16, 64bpp, 16R, 16G, 16B, 16A, the 2-byte value for each R/G/B/A component is stored as little-endian + PIX_FMT_BGRA64BE, ///< packed RGBA 16:16:16:16, 64bpp, 16B, 16G, 16R, 16A, the 2-byte value for each R/G/B/A component is stored as big-endian + PIX_FMT_BGRA64LE, ///< packed RGBA 16:16:16:16, 64bpp, 16B, 16G, 16R, 16A, the 2-byte value for each R/G/B/A component is stored as little-endian +#endif + PIX_FMT_0RGB=0x123+4, ///< packed RGB 8:8:8, 32bpp, 0RGB0RGB... + PIX_FMT_RGB0, ///< packed RGB 8:8:8, 32bpp, RGB0RGB0... + PIX_FMT_0BGR, ///< packed BGR 8:8:8, 32bpp, 0BGR0BGR... + PIX_FMT_BGR0, ///< packed BGR 8:8:8, 32bpp, BGR0BGR0... + PIX_FMT_NB, ///< number of pixel formats, DO NOT USE THIS if you want to link with shared libav* because the number of formats might differ between versions +}; + +#define PIX_FMT_Y400A PIX_FMT_GRAY8A +#define PIX_FMT_GBR24P PIX_FMT_GBRP + +#if AV_HAVE_BIGENDIAN +# define PIX_FMT_NE(be, le) PIX_FMT_##be +#else +# define PIX_FMT_NE(be, le) PIX_FMT_##le +#endif + +#define PIX_FMT_RGB32 PIX_FMT_NE(ARGB, BGRA) +#define PIX_FMT_RGB32_1 PIX_FMT_NE(RGBA, ABGR) +#define PIX_FMT_BGR32 PIX_FMT_NE(ABGR, RGBA) +#define PIX_FMT_BGR32_1 PIX_FMT_NE(BGRA, ARGB) +#define PIX_FMT_0RGB32 PIX_FMT_NE(0RGB, BGR0) +#define PIX_FMT_0BGR32 PIX_FMT_NE(0BGR, RGB0) + +#define PIX_FMT_GRAY16 PIX_FMT_NE(GRAY16BE, GRAY16LE) +#define PIX_FMT_RGB48 PIX_FMT_NE(RGB48BE, RGB48LE) +#define PIX_FMT_RGB565 PIX_FMT_NE(RGB565BE, RGB565LE) +#define PIX_FMT_RGB555 PIX_FMT_NE(RGB555BE, RGB555LE) +#define PIX_FMT_RGB444 PIX_FMT_NE(RGB444BE, RGB444LE) +#define PIX_FMT_BGR48 PIX_FMT_NE(BGR48BE, BGR48LE) +#define PIX_FMT_BGR565 PIX_FMT_NE(BGR565BE, BGR565LE) +#define PIX_FMT_BGR555 PIX_FMT_NE(BGR555BE, BGR555LE) +#define PIX_FMT_BGR444 PIX_FMT_NE(BGR444BE, BGR444LE) + +#define PIX_FMT_YUV420P9 PIX_FMT_NE(YUV420P9BE , YUV420P9LE) +#define PIX_FMT_YUV422P9 PIX_FMT_NE(YUV422P9BE , YUV422P9LE) +#define PIX_FMT_YUV444P9 PIX_FMT_NE(YUV444P9BE , YUV444P9LE) +#define PIX_FMT_YUV420P10 PIX_FMT_NE(YUV420P10BE, YUV420P10LE) +#define PIX_FMT_YUV422P10 PIX_FMT_NE(YUV422P10BE, YUV422P10LE) +#define PIX_FMT_YUV444P10 PIX_FMT_NE(YUV444P10BE, YUV444P10LE) +#define PIX_FMT_YUV420P16 PIX_FMT_NE(YUV420P16BE, YUV420P16LE) +#define PIX_FMT_YUV422P16 PIX_FMT_NE(YUV422P16BE, YUV422P16LE) +#define PIX_FMT_YUV444P16 PIX_FMT_NE(YUV444P16BE, YUV444P16LE) + +#define PIX_FMT_RGBA64 PIX_FMT_NE(RGBA64BE, RGBA64LE) +#define PIX_FMT_BGRA64 PIX_FMT_NE(BGRA64BE, BGRA64LE) +#define PIX_FMT_GBRP9 PIX_FMT_NE(GBRP9BE , GBRP9LE) +#define PIX_FMT_GBRP10 PIX_FMT_NE(GBRP10BE, GBRP10LE) +#define PIX_FMT_GBRP16 PIX_FMT_NE(GBRP16BE, GBRP16LE) + +#endif /* AVUTIL_PIXFMT_H */ diff --git a/Externals/ffmpeg/include/libavutil/random_seed.h b/Externals/ffmpeg/include/libavutil/random_seed.h new file mode 100644 index 00000000..0462a048 --- /dev/null +++ b/Externals/ffmpeg/include/libavutil/random_seed.h @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2009 Baptiste Coudurier + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_RANDOM_SEED_H +#define AVUTIL_RANDOM_SEED_H + +#include +/** + * @addtogroup lavu_crypto + * @{ + */ + +/** + * Get a seed to use in conjunction with random functions. + * This function tries to provide a good seed at a best effort bases. + * Its possible to call this function multiple times if more bits are needed. + * It can be quite slow, which is why it should only be used as seed for a faster + * PRNG. The quality of the seed depends on the platform. + */ +uint32_t av_get_random_seed(void); + +/** + * @} + */ + +#endif /* AVUTIL_RANDOM_SEED_H */ diff --git a/Externals/ffmpeg/include/libavutil/rational.h b/Externals/ffmpeg/include/libavutil/rational.h new file mode 100644 index 00000000..8c2bdb55 --- /dev/null +++ b/Externals/ffmpeg/include/libavutil/rational.h @@ -0,0 +1,144 @@ +/* + * rational numbers + * Copyright (c) 2003 Michael Niedermayer + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * rational numbers + * @author Michael Niedermayer + */ + +#ifndef AVUTIL_RATIONAL_H +#define AVUTIL_RATIONAL_H + +#include +#include +#include "attributes.h" + +/** + * @addtogroup lavu_math + * @{ + */ + +/** + * rational number numerator/denominator + */ +typedef struct AVRational{ + int num; ///< numerator + int den; ///< denominator +} AVRational; + +/** + * Compare two rationals. + * @param a first rational + * @param b second rational + * @return 0 if a==b, 1 if a>b, -1 if a>63)|1; + else if(b.den && a.den) return 0; + else if(a.num && b.num) return (a.num>>31) - (b.num>>31); + else return INT_MIN; +} + +/** + * Convert rational to double. + * @param a rational to convert + * @return (double) a + */ +static inline double av_q2d(AVRational a){ + return a.num / (double) a.den; +} + +/** + * Reduce a fraction. + * This is useful for framerate calculations. + * @param dst_num destination numerator + * @param dst_den destination denominator + * @param num source numerator + * @param den source denominator + * @param max the maximum allowed for dst_num & dst_den + * @return 1 if exact, 0 otherwise + */ +int av_reduce(int *dst_num, int *dst_den, int64_t num, int64_t den, int64_t max); + +/** + * Multiply two rationals. + * @param b first rational + * @param c second rational + * @return b*c + */ +AVRational av_mul_q(AVRational b, AVRational c) av_const; + +/** + * Divide one rational by another. + * @param b first rational + * @param c second rational + * @return b/c + */ +AVRational av_div_q(AVRational b, AVRational c) av_const; + +/** + * Add two rationals. + * @param b first rational + * @param c second rational + * @return b+c + */ +AVRational av_add_q(AVRational b, AVRational c) av_const; + +/** + * Subtract one rational from another. + * @param b first rational + * @param c second rational + * @return b-c + */ +AVRational av_sub_q(AVRational b, AVRational c) av_const; + +/** + * Convert a double precision floating point number to a rational. + * inf is expressed as {1,0} or {-1,0} depending on the sign. + * + * @param d double to convert + * @param max the maximum allowed numerator and denominator + * @return (AVRational) d + */ +AVRational av_d2q(double d, int max) av_const; + +/** + * @return 1 if q1 is nearer to q than q2, -1 if q2 is nearer + * than q1, 0 if they have the same distance. + */ +int av_nearer_q(AVRational q, AVRational q1, AVRational q2); + +/** + * Find the nearest value in q_list to q. + * @param q_list an array of rationals terminated by {0, 0} + * @return the index of the nearest value found in the array + */ +int av_find_nearest_q_idx(AVRational q, const AVRational* q_list); + +/** + * @} + */ + +#endif /* AVUTIL_RATIONAL_H */ diff --git a/Externals/ffmpeg/include/libavutil/samplefmt.h b/Externals/ffmpeg/include/libavutil/samplefmt.h new file mode 100644 index 00000000..855cffd8 --- /dev/null +++ b/Externals/ffmpeg/include/libavutil/samplefmt.h @@ -0,0 +1,156 @@ +/* + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_SAMPLEFMT_H +#define AVUTIL_SAMPLEFMT_H + +#include "avutil.h" + +/** + * all in native-endian format + */ +enum AVSampleFormat { + AV_SAMPLE_FMT_NONE = -1, + AV_SAMPLE_FMT_U8, ///< unsigned 8 bits + AV_SAMPLE_FMT_S16, ///< signed 16 bits + AV_SAMPLE_FMT_S32, ///< signed 32 bits + AV_SAMPLE_FMT_FLT, ///< float + AV_SAMPLE_FMT_DBL, ///< double + + AV_SAMPLE_FMT_U8P, ///< unsigned 8 bits, planar + AV_SAMPLE_FMT_S16P, ///< signed 16 bits, planar + AV_SAMPLE_FMT_S32P, ///< signed 32 bits, planar + AV_SAMPLE_FMT_FLTP, ///< float, planar + AV_SAMPLE_FMT_DBLP, ///< double, planar + + AV_SAMPLE_FMT_NB ///< Number of sample formats. DO NOT USE if linking dynamically +}; + +/** + * Return the name of sample_fmt, or NULL if sample_fmt is not + * recognized. + */ +const char *av_get_sample_fmt_name(enum AVSampleFormat sample_fmt); + +/** + * Return a sample format corresponding to name, or AV_SAMPLE_FMT_NONE + * on error. + */ +enum AVSampleFormat av_get_sample_fmt(const char *name); + +/** + * Return the planar<->packed alternative form of the given sample format, or + * AV_SAMPLE_FMT_NONE on error. If the passed sample_fmt is already in the + * requested planar/packed format, the format returned is the same as the + * input. + */ +enum AVSampleFormat av_get_alt_sample_fmt(enum AVSampleFormat sample_fmt, int planar); + +/** + * Generate a string corresponding to the sample format with + * sample_fmt, or a header if sample_fmt is negative. + * + * @param buf the buffer where to write the string + * @param buf_size the size of buf + * @param sample_fmt the number of the sample format to print the + * corresponding info string, or a negative value to print the + * corresponding header. + * @return the pointer to the filled buffer or NULL if sample_fmt is + * unknown or in case of other errors + */ +char *av_get_sample_fmt_string(char *buf, int buf_size, enum AVSampleFormat sample_fmt); + +#if FF_API_GET_BITS_PER_SAMPLE_FMT +/** + * @deprecated Use av_get_bytes_per_sample() instead. + */ +attribute_deprecated +int av_get_bits_per_sample_fmt(enum AVSampleFormat sample_fmt); +#endif + +/** + * Return number of bytes per sample. + * + * @param sample_fmt the sample format + * @return number of bytes per sample or zero if unknown for the given + * sample format + */ +int av_get_bytes_per_sample(enum AVSampleFormat sample_fmt); + +/** + * Check if the sample format is planar. + * + * @param sample_fmt the sample format to inspect + * @return 1 if the sample format is planar, 0 if it is interleaved + */ +int av_sample_fmt_is_planar(enum AVSampleFormat sample_fmt); + +/** + * Get the required buffer size for the given audio parameters. + * + * @param[out] linesize calculated linesize, may be NULL + * @param nb_channels the number of channels + * @param nb_samples the number of samples in a single channel + * @param sample_fmt the sample format + * @return required buffer size, or negative error code on failure + */ +int av_samples_get_buffer_size(int *linesize, int nb_channels, int nb_samples, + enum AVSampleFormat sample_fmt, int align); + +/** + * Fill channel data pointers and linesize for samples with sample + * format sample_fmt. + * + * The pointers array is filled with the pointers to the samples data: + * for planar, set the start point of each channel's data within the buffer, + * for packed, set the start point of the entire buffer only. + * + * The linesize array is filled with the aligned size of each channel's data + * buffer for planar layout, or the aligned size of the buffer for all channels + * for packed layout. + * + * @param[out] audio_data array to be filled with the pointer for each channel + * @param[out] linesize calculated linesize + * @param buf the pointer to a buffer containing the samples + * @param nb_channels the number of channels + * @param nb_samples the number of samples in a single channel + * @param sample_fmt the sample format + * @param align buffer size alignment (1 = no alignment required) + * @return 0 on success or a negative error code on failure + */ +int av_samples_fill_arrays(uint8_t **audio_data, int *linesize, uint8_t *buf, + int nb_channels, int nb_samples, + enum AVSampleFormat sample_fmt, int align); + +/** + * Allocate a samples buffer for nb_samples samples, and fill data pointers and + * linesize accordingly. + * The allocated samples buffer can be freed by using av_freep(&audio_data[0]) + * + * @param[out] audio_data array to be filled with the pointer for each channel + * @param[out] linesize aligned size for audio buffer(s) + * @param nb_channels number of audio channels + * @param nb_samples number of samples per channel + * @param align buffer size alignment (1 = no alignment required) + * @return 0 on success or a negative error code on failure + * @see av_samples_fill_arrays() + */ +int av_samples_alloc(uint8_t **audio_data, int *linesize, int nb_channels, + int nb_samples, enum AVSampleFormat sample_fmt, int align); + +#endif /* AVUTIL_SAMPLEFMT_H */ diff --git a/Externals/ffmpeg/include/libavutil/sha.h b/Externals/ffmpeg/include/libavutil/sha.h new file mode 100644 index 00000000..d891cae8 --- /dev/null +++ b/Externals/ffmpeg/include/libavutil/sha.h @@ -0,0 +1,66 @@ +/* + * Copyright (C) 2007 Michael Niedermayer + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVUTIL_SHA_H +#define AVUTIL_SHA_H + +#include + +/** + * @defgroup lavu_sha SHA + * @ingroup lavu_crypto + * @{ + */ + +extern const int av_sha_size; + +struct AVSHA; + +/** + * Initialize SHA-1 or SHA-2 hashing. + * + * @param context pointer to the function context (of size av_sha_size) + * @param bits number of bits in digest (SHA-1 - 160 bits, SHA-2 224 or 256 bits) + * @return zero if initialization succeeded, -1 otherwise + */ +int av_sha_init(struct AVSHA* context, int bits); + +/** + * Update hash value. + * + * @param context hash function context + * @param data input data to update hash with + * @param len input data length + */ +void av_sha_update(struct AVSHA* context, const uint8_t* data, unsigned int len); + +/** + * Finish hashing and output digest value. + * + * @param context hash function context + * @param digest buffer where output digest value is stored + */ +void av_sha_final(struct AVSHA* context, uint8_t *digest); + +/** + * @} + */ + +#endif /* AVUTIL_SHA_H */ diff --git a/Externals/ffmpeg/include/libpostproc/postprocess.h b/Externals/ffmpeg/include/libpostproc/postprocess.h new file mode 100644 index 00000000..c2c5c732 --- /dev/null +++ b/Externals/ffmpeg/include/libpostproc/postprocess.h @@ -0,0 +1,112 @@ +/* + * Copyright (C) 2001-2003 Michael Niedermayer (michaelni@gmx.at) + * + * This file is part of FFmpeg. + * + * FFmpeg 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 2 of the License, or + * (at your option) any later version. + * + * FFmpeg 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. + * + * You should have received a copy of the GNU General Public License + * along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef POSTPROC_POSTPROCESS_H +#define POSTPROC_POSTPROCESS_H + +/** + * @file + * @brief + * external postprocessing API + */ + +#include "libavutil/avutil.h" + +#ifndef LIBPOSTPROC_VERSION_MAJOR +#define LIBPOSTPROC_VERSION_MAJOR 52 +#define LIBPOSTPROC_VERSION_MINOR 0 +#define LIBPOSTPROC_VERSION_MICRO 100 +#endif + +#define LIBPOSTPROC_VERSION_INT AV_VERSION_INT(LIBPOSTPROC_VERSION_MAJOR, \ + LIBPOSTPROC_VERSION_MINOR, \ + LIBPOSTPROC_VERSION_MICRO) +#define LIBPOSTPROC_VERSION AV_VERSION(LIBPOSTPROC_VERSION_MAJOR, \ + LIBPOSTPROC_VERSION_MINOR, \ + LIBPOSTPROC_VERSION_MICRO) +#define LIBPOSTPROC_BUILD LIBPOSTPROC_VERSION_INT + +#define LIBPOSTPROC_IDENT "postproc" AV_STRINGIFY(LIBPOSTPROC_VERSION) + +/** + * Return the LIBPOSTPROC_VERSION_INT constant. + */ +unsigned postproc_version(void); + +/** + * Return the libpostproc build-time configuration. + */ +const char *postproc_configuration(void); + +/** + * Return the libpostproc license. + */ +const char *postproc_license(void); + +#define PP_QUALITY_MAX 6 + +#define QP_STORE_T int8_t + +#include + +typedef void pp_context; +typedef void pp_mode; + +#if LIBPOSTPROC_VERSION_INT < (52<<16) +typedef pp_context pp_context_t; +typedef pp_mode pp_mode_t; +extern const char *const pp_help; ///< a simple help text +#else +extern const char pp_help[]; ///< a simple help text +#endif + +void pp_postprocess(const uint8_t * src[3], const int srcStride[3], + uint8_t * dst[3], const int dstStride[3], + int horizontalSize, int verticalSize, + const QP_STORE_T *QP_store, int QP_stride, + pp_mode *mode, pp_context *ppContext, int pict_type); + + +/** + * Return a pp_mode or NULL if an error occurred. + * + * @param name the string after "-pp" on the command line + * @param quality a number from 0 to PP_QUALITY_MAX + */ +pp_mode *pp_get_mode_by_name_and_quality(const char *name, int quality); +void pp_free_mode(pp_mode *mode); + +pp_context *pp_get_context(int width, int height, int flags); +void pp_free_context(pp_context *ppContext); + +#define PP_CPU_CAPS_MMX 0x80000000 +#define PP_CPU_CAPS_MMX2 0x20000000 +#define PP_CPU_CAPS_3DNOW 0x40000000 +#define PP_CPU_CAPS_ALTIVEC 0x10000000 + +#define PP_FORMAT 0x00000008 +#define PP_FORMAT_420 (0x00000011|PP_FORMAT) +#define PP_FORMAT_422 (0x00000001|PP_FORMAT) +#define PP_FORMAT_411 (0x00000002|PP_FORMAT) +#define PP_FORMAT_444 (0x00000000|PP_FORMAT) + +#define PP_PICT_TYPE_QP2 0x00000010 ///< MPEG2 style QScale + +#endif /* POSTPROC_POSTPROCESS_H */ diff --git a/Externals/ffmpeg/include/libswresample/swresample.h b/Externals/ffmpeg/include/libswresample/swresample.h new file mode 100644 index 00000000..8dc4e1f3 --- /dev/null +++ b/Externals/ffmpeg/include/libswresample/swresample.h @@ -0,0 +1,144 @@ +/* + * Copyright (C) 2011 Michael Niedermayer (michaelni@gmx.at) + * + * This file is part of libswresample + * + * libswresample is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * libswresample 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with libswresample; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * @file + * libswresample public header + */ + +#ifndef SWR_H +#define SWR_H + +#include +#include "libavutil/samplefmt.h" + +#define LIBSWRESAMPLE_VERSION_MAJOR 0 +#define LIBSWRESAMPLE_VERSION_MINOR 6 +#define LIBSWRESAMPLE_VERSION_MICRO 100 + +#define LIBSWRESAMPLE_VERSION_INT AV_VERSION_INT(LIBSWRESAMPLE_VERSION_MAJOR, \ + LIBSWRESAMPLE_VERSION_MINOR, \ + LIBSWRESAMPLE_VERSION_MICRO) + +#define SWR_CH_MAX 16 ///< Maximum number of channels + +#define SWR_FLAG_RESAMPLE 1 ///< Force resampling even if equal sample rate +//TODO use int resample ? +//long term TODO can we enable this dynamically? + + +struct SwrContext; + +/** + * Allocate SwrContext. + * + * If you use this function you will need to set the parameters (manually or + * with swr_alloc_set_opts()) before calling swr_init(). + * + * @see swr_alloc_set_opts(), swr_init(), swr_free() + * @return NULL on error, allocated context otherwise + */ +struct SwrContext *swr_alloc(void); + +/** + * Initialize context after user parameters have been set. + * + * @return AVERROR error code in case of failure. + */ +int swr_init(struct SwrContext *s); + +/** + * Allocate SwrContext if needed and set/reset common parameters. + * + * This function does not require s to be allocated with swr_alloc(). On the + * other hand, swr_alloc() can use swr_alloc_set_opts() to set the parameters + * on the allocated context. + * + * @param s Swr context, can be NULL + * @param out_ch_layout output channel layout (AV_CH_LAYOUT_*) + * @param out_sample_fmt output sample format (AV_SAMPLE_FMT_*). + * @param out_sample_rate output sample rate (frequency in Hz) + * @param in_ch_layout input channel layout (AV_CH_LAYOUT_*) + * @param in_sample_fmt input sample format (AV_SAMPLE_FMT_*). + * @param in_sample_rate input sample rate (frequency in Hz) + * @param log_offset logging level offset + * @param log_ctx parent logging context, can be NULL + * + * @see swr_init(), swr_free() + * @return NULL on error, allocated context otherwise + */ +struct SwrContext *swr_alloc_set_opts(struct SwrContext *s, + int64_t out_ch_layout, enum AVSampleFormat out_sample_fmt, int out_sample_rate, + int64_t in_ch_layout, enum AVSampleFormat in_sample_fmt, int in_sample_rate, + int log_offset, void *log_ctx); + +/** + * Free the given SwrContext and set the pointer to NULL. + */ +void swr_free(struct SwrContext **s); + +/** + * Convert audio. + * + * in and in_count can be set to 0 to flush the last few samples out at the + * end. + * + * @param s allocated Swr context, with parameters set + * @param out output buffers, only the first one need be set in case of packed audio + * @param out_count amount of space available for output in samples per channel + * @param in input buffers, only the first one need to be set in case of packed audio + * @param in_count number of input samples available in one channel + * + * @return number of samples output per channel + */ +int swr_convert(struct SwrContext *s, uint8_t *out[SWR_CH_MAX], int out_count, + const uint8_t *in [SWR_CH_MAX], int in_count); + +/** + * Activate resampling compensation. + */ +int swr_set_compensation(struct SwrContext *s, int sample_delta, int compensation_distance); + +/** + * Set a customized input channel mapping. + * + * @param s allocated Swr context, not yet initialized + * @param channel_map customized input channel mapping (array of channel + * indexes, -1 for a muted channel) + * @return AVERROR error code in case of failure. + */ +int swr_set_channel_mapping(struct SwrContext *s, const int *channel_map); + +/** + * Return the LIBSWRESAMPLE_VERSION_INT constant. + */ +unsigned swresample_version(void); + +/** + * Return the swr build-time configuration. + */ +const char *swresample_configuration(void); + +/** + * Return the swr license. + */ +const char *swresample_license(void); + +#endif diff --git a/Externals/ffmpeg/include/libswscale/swscale.h b/Externals/ffmpeg/include/libswscale/swscale.h new file mode 100644 index 00000000..fa7100c4 --- /dev/null +++ b/Externals/ffmpeg/include/libswscale/swscale.h @@ -0,0 +1,363 @@ +/* + * Copyright (C) 2001-2011 Michael Niedermayer + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef SWSCALE_SWSCALE_H +#define SWSCALE_SWSCALE_H + +/** + * @file + * @brief + * external api for the swscale stuff + */ + +#include "libavutil/avutil.h" +#include "libavutil/log.h" +#include "libavutil/pixfmt.h" + +#define LIBSWSCALE_VERSION_MAJOR 2 +#define LIBSWSCALE_VERSION_MINOR 1 +#define LIBSWSCALE_VERSION_MICRO 100 + +#define LIBSWSCALE_VERSION_INT AV_VERSION_INT(LIBSWSCALE_VERSION_MAJOR, \ + LIBSWSCALE_VERSION_MINOR, \ + LIBSWSCALE_VERSION_MICRO) +#define LIBSWSCALE_VERSION AV_VERSION(LIBSWSCALE_VERSION_MAJOR, \ + LIBSWSCALE_VERSION_MINOR, \ + LIBSWSCALE_VERSION_MICRO) +#define LIBSWSCALE_BUILD LIBSWSCALE_VERSION_INT + +#define LIBSWSCALE_IDENT "SwS" AV_STRINGIFY(LIBSWSCALE_VERSION) + +/** + * Those FF_API_* defines are not part of public API. + * They may change, break or disappear at any time. + */ +#ifndef FF_API_SWS_GETCONTEXT +#define FF_API_SWS_GETCONTEXT (LIBSWSCALE_VERSION_MAJOR < 3) +#endif +#ifndef FF_API_SWS_CPU_CAPS +#define FF_API_SWS_CPU_CAPS (LIBSWSCALE_VERSION_MAJOR < 3) +#endif +#ifndef FF_API_SWS_FORMAT_NAME +#define FF_API_SWS_FORMAT_NAME (LIBSWSCALE_VERSION_MAJOR < 3) +#endif + +/** + * Return the LIBSWSCALE_VERSION_INT constant. + */ +unsigned swscale_version(void); + +/** + * Return the libswscale build-time configuration. + */ +const char *swscale_configuration(void); + +/** + * Return the libswscale license. + */ +const char *swscale_license(void); + +/* values for the flags, the stuff on the command line is different */ +#define SWS_FAST_BILINEAR 1 +#define SWS_BILINEAR 2 +#define SWS_BICUBIC 4 +#define SWS_X 8 +#define SWS_POINT 0x10 +#define SWS_AREA 0x20 +#define SWS_BICUBLIN 0x40 +#define SWS_GAUSS 0x80 +#define SWS_SINC 0x100 +#define SWS_LANCZOS 0x200 +#define SWS_SPLINE 0x400 + +#define SWS_SRC_V_CHR_DROP_MASK 0x30000 +#define SWS_SRC_V_CHR_DROP_SHIFT 16 + +#define SWS_PARAM_DEFAULT 123456 + +#define SWS_PRINT_INFO 0x1000 + +//the following 3 flags are not completely implemented +//internal chrominace subsampling info +#define SWS_FULL_CHR_H_INT 0x2000 +//input subsampling info +#define SWS_FULL_CHR_H_INP 0x4000 +#define SWS_DIRECT_BGR 0x8000 +#define SWS_ACCURATE_RND 0x40000 +#define SWS_BITEXACT 0x80000 + +#if FF_API_SWS_CPU_CAPS +/** + * CPU caps are autodetected now, those flags + * are only provided for API compatibility. + */ +#define SWS_CPU_CAPS_MMX 0x80000000 +#define SWS_CPU_CAPS_MMX2 0x20000000 +#define SWS_CPU_CAPS_3DNOW 0x40000000 +#define SWS_CPU_CAPS_ALTIVEC 0x10000000 +#define SWS_CPU_CAPS_BFIN 0x01000000 +#define SWS_CPU_CAPS_SSE2 0x02000000 +#endif + +#define SWS_MAX_REDUCE_CUTOFF 0.002 + +#define SWS_CS_ITU709 1 +#define SWS_CS_FCC 4 +#define SWS_CS_ITU601 5 +#define SWS_CS_ITU624 5 +#define SWS_CS_SMPTE170M 5 +#define SWS_CS_SMPTE240M 7 +#define SWS_CS_DEFAULT 5 + +/** + * Return a pointer to yuv<->rgb coefficients for the given colorspace + * suitable for sws_setColorspaceDetails(). + * + * @param colorspace One of the SWS_CS_* macros. If invalid, + * SWS_CS_DEFAULT is used. + */ +const int *sws_getCoefficients(int colorspace); + +// when used for filters they must have an odd number of elements +// coeffs cannot be shared between vectors +typedef struct { + double *coeff; ///< pointer to the list of coefficients + int length; ///< number of coefficients in the vector +} SwsVector; + +// vectors can be shared +typedef struct { + SwsVector *lumH; + SwsVector *lumV; + SwsVector *chrH; + SwsVector *chrV; +} SwsFilter; + +struct SwsContext; + +/** + * Return a positive value if pix_fmt is a supported input format, 0 + * otherwise. + */ +int sws_isSupportedInput(enum PixelFormat pix_fmt); + +/** + * Return a positive value if pix_fmt is a supported output format, 0 + * otherwise. + */ +int sws_isSupportedOutput(enum PixelFormat pix_fmt); + +/** + * Allocate an empty SwsContext. This must be filled and passed to + * sws_init_context(). For filling see AVOptions, options.c and + * sws_setColorspaceDetails(). + */ +struct SwsContext *sws_alloc_context(void); + +/** + * Initialize the swscaler context sws_context. + * + * @return zero or positive value on success, a negative value on + * error + */ +int sws_init_context(struct SwsContext *sws_context, SwsFilter *srcFilter, SwsFilter *dstFilter); + +/** + * Free the swscaler context swsContext. + * If swsContext is NULL, then does nothing. + */ +void sws_freeContext(struct SwsContext *swsContext); + +#if FF_API_SWS_GETCONTEXT +/** + * Allocate and return an SwsContext. You need it to perform + * scaling/conversion operations using sws_scale(). + * + * @param srcW the width of the source image + * @param srcH the height of the source image + * @param srcFormat the source image format + * @param dstW the width of the destination image + * @param dstH the height of the destination image + * @param dstFormat the destination image format + * @param flags specify which algorithm and options to use for rescaling + * @return a pointer to an allocated context, or NULL in case of error + * @note this function is to be removed after a saner alternative is + * written + * @deprecated Use sws_getCachedContext() instead. + */ +struct SwsContext *sws_getContext(int srcW, int srcH, enum PixelFormat srcFormat, + int dstW, int dstH, enum PixelFormat dstFormat, + int flags, SwsFilter *srcFilter, + SwsFilter *dstFilter, const double *param); +#endif + +/** + * Scale the image slice in srcSlice and put the resulting scaled + * slice in the image in dst. A slice is a sequence of consecutive + * rows in an image. + * + * Slices have to be provided in sequential order, either in + * top-bottom or bottom-top order. If slices are provided in + * non-sequential order the behavior of the function is undefined. + * + * @param c the scaling context previously created with + * sws_getContext() + * @param srcSlice the array containing the pointers to the planes of + * the source slice + * @param srcStride the array containing the strides for each plane of + * the source image + * @param srcSliceY the position in the source image of the slice to + * process, that is the number (counted starting from + * zero) in the image of the first row of the slice + * @param srcSliceH the height of the source slice, that is the number + * of rows in the slice + * @param dst the array containing the pointers to the planes of + * the destination image + * @param dstStride the array containing the strides for each plane of + * the destination image + * @return the height of the output slice + */ +int sws_scale(struct SwsContext *c, const uint8_t *const srcSlice[], + const int srcStride[], int srcSliceY, int srcSliceH, + uint8_t *const dst[], const int dstStride[]); + +/** + * @param inv_table the yuv2rgb coefficients, normally ff_yuv2rgb_coeffs[x] + * @return -1 if not supported + */ +int sws_setColorspaceDetails(struct SwsContext *c, const int inv_table[4], + int srcRange, const int table[4], int dstRange, + int brightness, int contrast, int saturation); + +/** + * @return -1 if not supported + */ +int sws_getColorspaceDetails(struct SwsContext *c, int **inv_table, + int *srcRange, int **table, int *dstRange, + int *brightness, int *contrast, int *saturation); + +/** + * Allocate and return an uninitialized vector with length coefficients. + */ +SwsVector *sws_allocVec(int length); + +/** + * Return a normalized Gaussian curve used to filter stuff + * quality = 3 is high quality, lower is lower quality. + */ +SwsVector *sws_getGaussianVec(double variance, double quality); + +/** + * Allocate and return a vector with length coefficients, all + * with the same value c. + */ +SwsVector *sws_getConstVec(double c, int length); + +/** + * Allocate and return a vector with just one coefficient, with + * value 1.0. + */ +SwsVector *sws_getIdentityVec(void); + +/** + * Scale all the coefficients of a by the scalar value. + */ +void sws_scaleVec(SwsVector *a, double scalar); + +/** + * Scale all the coefficients of a so that their sum equals height. + */ +void sws_normalizeVec(SwsVector *a, double height); +void sws_convVec(SwsVector *a, SwsVector *b); +void sws_addVec(SwsVector *a, SwsVector *b); +void sws_subVec(SwsVector *a, SwsVector *b); +void sws_shiftVec(SwsVector *a, int shift); + +/** + * Allocate and return a clone of the vector a, that is a vector + * with the same coefficients as a. + */ +SwsVector *sws_cloneVec(SwsVector *a); + +/** + * Print with av_log() a textual representation of the vector a + * if log_level <= av_log_level. + */ +void sws_printVec2(SwsVector *a, AVClass *log_ctx, int log_level); + +void sws_freeVec(SwsVector *a); + +SwsFilter *sws_getDefaultFilter(float lumaGBlur, float chromaGBlur, + float lumaSharpen, float chromaSharpen, + float chromaHShift, float chromaVShift, + int verbose); +void sws_freeFilter(SwsFilter *filter); + +/** + * Check if context can be reused, otherwise reallocate a new one. + * + * If context is NULL, just calls sws_getContext() to get a new + * context. Otherwise, checks if the parameters are the ones already + * saved in context. If that is the case, returns the current + * context. Otherwise, frees context and gets a new context with + * the new parameters. + * + * Be warned that srcFilter and dstFilter are not checked, they + * are assumed to remain the same. + */ +struct SwsContext *sws_getCachedContext(struct SwsContext *context, + int srcW, int srcH, enum PixelFormat srcFormat, + int dstW, int dstH, enum PixelFormat dstFormat, + int flags, SwsFilter *srcFilter, + SwsFilter *dstFilter, const double *param); + +/** + * Convert an 8-bit paletted frame into a frame with a color depth of 32 bits. + * + * The output frame will have the same packed format as the palette. + * + * @param src source frame buffer + * @param dst destination frame buffer + * @param num_pixels number of pixels to convert + * @param palette array with [256] entries, which must match color arrangement (RGB or BGR) of src + */ +void sws_convertPalette8ToPacked32(const uint8_t *src, uint8_t *dst, int num_pixels, const uint8_t *palette); + +/** + * Convert an 8-bit paletted frame into a frame with a color depth of 24 bits. + * + * With the palette format "ABCD", the destination frame ends up with the format "ABC". + * + * @param src source frame buffer + * @param dst destination frame buffer + * @param num_pixels number of pixels to convert + * @param palette array with [256] entries, which must match color arrangement (RGB or BGR) of src + */ +void sws_convertPalette8ToPacked24(const uint8_t *src, uint8_t *dst, int num_pixels, const uint8_t *palette); + +/** + * Get the AVClass for swsContext. It can be used in combination with + * AV_OPT_SEARCH_FAKE_OBJ for examining options. + * + * @see av_opt_find(). + */ +const AVClass *sws_get_class(void); + +#endif /* SWSCALE_SWSCALE_H */ diff --git a/Externals/ffmpeg/lib/avcodec.lib b/Externals/ffmpeg/lib/avcodec.lib new file mode 100644 index 00000000..53ecaeb2 Binary files /dev/null and b/Externals/ffmpeg/lib/avcodec.lib differ diff --git a/Externals/ffmpeg/lib/avdevice.lib b/Externals/ffmpeg/lib/avdevice.lib new file mode 100644 index 00000000..c7832382 Binary files /dev/null and b/Externals/ffmpeg/lib/avdevice.lib differ diff --git a/Externals/ffmpeg/lib/avfilter.lib b/Externals/ffmpeg/lib/avfilter.lib new file mode 100644 index 00000000..9d6633e3 Binary files /dev/null and b/Externals/ffmpeg/lib/avfilter.lib differ diff --git a/Externals/ffmpeg/lib/avformat.lib b/Externals/ffmpeg/lib/avformat.lib new file mode 100644 index 00000000..19b2292f Binary files /dev/null and b/Externals/ffmpeg/lib/avformat.lib differ diff --git a/Externals/ffmpeg/lib/avutil.lib b/Externals/ffmpeg/lib/avutil.lib new file mode 100644 index 00000000..2e0854be Binary files /dev/null and b/Externals/ffmpeg/lib/avutil.lib differ diff --git a/Externals/ffmpeg/lib/postproc.lib b/Externals/ffmpeg/lib/postproc.lib new file mode 100644 index 00000000..42010109 Binary files /dev/null and b/Externals/ffmpeg/lib/postproc.lib differ diff --git a/Externals/ffmpeg/lib/swresample.lib b/Externals/ffmpeg/lib/swresample.lib new file mode 100644 index 00000000..e85e552c Binary files /dev/null and b/Externals/ffmpeg/lib/swresample.lib differ diff --git a/Externals/ffmpeg/lib/swscale.lib b/Externals/ffmpeg/lib/swscale.lib new file mode 100644 index 00000000..7b42d2c2 Binary files /dev/null and b/Externals/ffmpeg/lib/swscale.lib differ diff --git a/Externals/ffmpeg/licenses/bzip2.txt b/Externals/ffmpeg/licenses/bzip2.txt new file mode 100644 index 00000000..cc614178 --- /dev/null +++ b/Externals/ffmpeg/licenses/bzip2.txt @@ -0,0 +1,42 @@ + +-------------------------------------------------------------------------- + +This program, "bzip2", the associated library "libbzip2", and all +documentation, are copyright (C) 1996-2010 Julian R Seward. 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. The origin of this software must not be misrepresented; you must + not claim that you wrote the original software. If you use this + software in a product, an acknowledgment in the product + documentation would be appreciated but is not required. + +3. Altered source versions must be plainly marked as such, and must + not be misrepresented as being the original software. + +4. The name of the author may not be used to endorse or promote + products derived from this software without specific prior written + permission. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. + +Julian Seward, jseward@bzip.org +bzip2/libbzip2 version 1.0.6 of 6 September 2010 + +-------------------------------------------------------------------------- diff --git a/Externals/ffmpeg/licenses/ffmpeg.txt b/Externals/ffmpeg/licenses/ffmpeg.txt new file mode 100644 index 00000000..94a9ed02 --- /dev/null +++ b/Externals/ffmpeg/licenses/ffmpeg.txt @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + 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. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/Externals/ffmpeg/licenses/freetype.txt b/Externals/ffmpeg/licenses/freetype.txt new file mode 100644 index 00000000..b2fe7b6a --- /dev/null +++ b/Externals/ffmpeg/licenses/freetype.txt @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + 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 2 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. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/Externals/ffmpeg/licenses/frei0r.txt b/Externals/ffmpeg/licenses/frei0r.txt new file mode 100644 index 00000000..2ac66a73 --- /dev/null +++ b/Externals/ffmpeg/licenses/frei0r.txt @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + 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 2 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. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. \ No newline at end of file diff --git a/Externals/ffmpeg/licenses/gsm.txt b/Externals/ffmpeg/licenses/gsm.txt new file mode 100644 index 00000000..bebe86fa --- /dev/null +++ b/Externals/ffmpeg/licenses/gsm.txt @@ -0,0 +1,35 @@ +Copyright 1992, 1993, 1994 by Jutta Degener and Carsten Bormann, +Technische Universitaet Berlin + +Any use of this software is permitted provided that this notice is not +removed and that neither the authors nor the Technische Universitaet Berlin +are deemed to have made any representations as to the suitability of this +software for any purpose nor are held responsible for any defects of +this software. THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE. + +As a matter of courtesy, the authors request to be informed about uses +this software has found, about bugs in this software, and about any +improvements that may be of general interest. + +Berlin, 28.11.1994 +Jutta Degener +Carsten Bormann + + oOo + +Since the original terms of 15 years ago maybe do not make our +intentions completely clear given today's refined usage of the legal +terms, we append this additional permission: + + Permission to use, copy, modify, and distribute this software + for any purpose with or without fee is hereby granted, + provided that this notice is not removed and that neither + the authors nor the Technische Universitaet Berlin are + deemed to have made any representations as to the suitability + of this software for any purpose nor are held responsible + for any defects of this software. THERE IS ABSOLUTELY NO + WARRANTY FOR THIS SOFTWARE. + +Berkeley/Bremen, 05.04.2009 +Jutta Degener +Carsten Bormann \ No newline at end of file diff --git a/Externals/ffmpeg/licenses/lame.txt b/Externals/ffmpeg/licenses/lame.txt new file mode 100644 index 00000000..ec33109f --- /dev/null +++ b/Externals/ffmpeg/licenses/lame.txt @@ -0,0 +1,481 @@ + GNU LIBRARY GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1991 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the library GPL. It is + numbered 2 because it goes with version 2 of the ordinary GPL.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Library General Public License, applies to some +specially designated Free Software Foundation software, and to any +other libraries whose authors decide to use it. You can use it for +your libraries, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if +you distribute copies of the library, or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link a program with the library, you must provide +complete object files to the recipients so that they can relink them +with the library, after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + Our method of protecting your rights has two steps: (1) copyright +the library, and (2) offer you this license which gives you legal +permission to copy, distribute and/or modify the library. + + Also, for each distributor's protection, we want to make certain +that everyone understands that there is no warranty for this free +library. If the library is modified by someone else and passed on, we +want its recipients to know that what they have is not the original +version, so that any problems introduced by others will not reflect on +the original authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that companies distributing free +software will individually obtain patent licenses, thus in effect +transforming the program into proprietary software. To prevent this, +we have made it clear that any patent must be licensed for everyone's +free use or not licensed at all. + + Most GNU software, including some libraries, is covered by the ordinary +GNU General Public License, which was designed for utility programs. This +license, the GNU Library General Public License, applies to certain +designated libraries. This license is quite different from the ordinary +one; be sure to read it in full, and don't assume that anything in it is +the same as in the ordinary license. + + The reason we have a separate public license for some libraries is that +they blur the distinction we usually make between modifying or adding to a +program and simply using it. Linking a program with a library, without +changing the library, is in some sense simply using the library, and is +analogous to running a utility program or application program. However, in +a textual and legal sense, the linked executable is a combined work, a +derivative of the original library, and the ordinary General Public License +treats it as such. + + Because of this blurred distinction, using the ordinary General +Public License for libraries did not effectively promote software +sharing, because most developers did not use the libraries. We +concluded that weaker conditions might promote sharing better. + + However, unrestricted linking of non-free programs would deprive the +users of those programs of all benefit from the free status of the +libraries themselves. This Library General Public License is intended to +permit developers of non-free programs to use free libraries, while +preserving your freedom as a user of such programs to change the free +libraries that are incorporated in them. (We have not seen how to achieve +this as regards changes in header files, but we have achieved it as regards +changes in the actual functions of the Library.) The hope is that this +will lead to faster development of free libraries. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, while the latter only +works together with the library. + + Note that it is possible for a library to be covered by the ordinary +General Public License rather than by this special one. + + GNU LIBRARY GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library which +contains a notice placed by the copyright holder or other authorized +party saying it may be distributed under the terms of this Library +General Public License (also called "this License"). Each licensee is +addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also compile or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + c) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + d) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the source code distributed need not include anything that is normally +distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Library General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library 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 + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! \ No newline at end of file diff --git a/Externals/ffmpeg/licenses/libvpx.txt b/Externals/ffmpeg/licenses/libvpx.txt new file mode 100644 index 00000000..83e4e6f6 --- /dev/null +++ b/Externals/ffmpeg/licenses/libvpx.txt @@ -0,0 +1,29 @@ +Copyright (c) 2010, Google Inc. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * 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. + + * Neither the name of Google 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 COPYRIGHT HOLDERS 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 COPYRIGHT +HOLDER 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/Externals/ffmpeg/licenses/opencore-amr.txt b/Externals/ffmpeg/licenses/opencore-amr.txt new file mode 100644 index 00000000..3e4ce883 --- /dev/null +++ b/Externals/ffmpeg/licenses/opencore-amr.txt @@ -0,0 +1,191 @@ +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + +"License" shall mean the terms and conditions for use, reproduction, and +distribution as defined by Sections 1 through 9 of this document. + +"Licensor" shall mean the copyright owner or entity authorized by the +copyright owner that is granting the License. + +"Legal Entity" shall mean the union of the acting entity and all other +entities that control, are controlled by, or are under common control with +that entity. For the purposes of this definition, "control" means (i) the +power, direct or indirect, to cause the direction or management of such +entity, whether by contract or otherwise, or (ii) ownership of fifty +percent (50%) or more of the outstanding shares, or (iii) beneficial +ownership of such entity. + +"You" (or "Your") shall mean an individual or Legal Entity exercising +permissions granted by this License. + +"Source" form shall mean the preferred form for making modifications, +including but not limited to software source code, documentation source, +and configuration files. + +"Object" form shall mean any form resulting from mechanical transformation +or translation of a Source form, including but not limited to compiled +object code, generated documentation, and conversions to other media types. + +"Work" shall mean the work of authorship, whether in Source or Object form, +made available under the License, as indicated by a copyright notice that +is included in or attached to the work (an example is provided in the +Appendix below). + +"Derivative Works" shall mean any work, whether in Source or Object form, +that is based on (or derived from) the Work and for which the editorial +revisions, annotations, elaborations, or other modifications represent, as +a whole, an original work of authorship. For the purposes of this License, +Derivative Works shall not include works that remain separable from, or +merely link (or bind by name) to the interfaces of, the Work and Derivative +Works thereof. + +"Contribution" shall mean any work of authorship, including the original +version of the Work and any modifications or additions to that Work or +Derivative Works thereof, that is intentionally submitted to Licensor for +inclusion in the Work by the copyright owner or by an individual or Legal +Entity authorized to submit on behalf of the copyright owner. For the +purposes of this definition, "submitted" means any form of electronic, +verbal, or written communication sent to the Licensor or its +representatives, including but not limited to communication on electronic +mailing lists, source code control systems, and issue tracking systems that +are managed by, or on behalf of, the Licensor for the purpose of discussing +and improving the Work, but excluding communication that is conspicuously +marked or otherwise designated in writing by the copyright owner as "Not a +Contribution." + +"Contributor" shall mean Licensor and any individual or Legal Entity on +behalf of whom a Contribution has been received by Licensor and +subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of this +License, each Contributor hereby grants to You a perpetual, worldwide, +non-exclusive, no-charge, royalty-free, irrevocable copyright license to +reproduce, prepare Derivative Works of, publicly display, publicly perform, +sublicense, and distribute the Work and such Derivative Works in Source or +Object form. + +3. Grant of Patent License. Subject to the terms and conditions of this +License, each Contributor hereby grants to You a perpetual, worldwide, +non-exclusive, no-charge, royalty-free, irrevocable (except as stated in +this section) patent license to make, have made, use, offer to sell, sell, +import, and otherwise transfer the Work, where such license applies only to +those patent claims licensable by such Contributor that are necessarily +infringed by their Contribution(s) alone or by combination of their +Contribution(s) with the Work to which such Contribution(s) was submitted. +If You institute patent litigation against any entity (including a +cross-claim or counterclaim in a lawsuit) alleging that the Work or a +Contribution incorporated within the Work constitutes direct or +contributory patent infringement, then any patent licenses granted to You +under this License for that Work shall terminate as of the date such +litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the Work or +Derivative Works thereof in any medium, with or without modifications, and +in Source or Object form, provided that You meet the following conditions: + + 1. You must give any other recipients of the Work or Derivative Works a +copy of this License; and + + 2. You must cause any modified files to carry prominent notices stating +that You changed the files; and + + 3. You must retain, in the Source form of any Derivative Works that You +distribute, all copyright, patent, trademark, and attribution notices from +the Source form of the Work, excluding those notices that do not pertain to +any part of the Derivative Works; and + + 4. If the Work includes a "NOTICE" text file as part of its +distribution, then any Derivative Works that You distribute must include a +readable copy of the attribution notices contained within such NOTICE file, +excluding those notices that do not pertain to any part of the Derivative +Works, in at least one of the following places: within a NOTICE text file +distributed as part of the Derivative Works; within the Source form or +documentation, if provided along with the Derivative Works; or, within a +display generated by the Derivative Works, if and wherever such third-party +notices normally appear. The contents of the NOTICE file are for +informational purposes only and do not modify the License. You may add Your +own attribution notices within Derivative Works that You distribute, +alongside or as an addendum to the NOTICE text from the Work, provided that +such additional attribution notices cannot be construed as modifying the +License. + +You may add Your own copyright statement to Your modifications and may +provide additional or different license terms and conditions for use, +reproduction, or distribution of Your modifications, or for any such +Derivative Works as a whole, provided Your use, reproduction, and +distribution of the Work otherwise complies with the conditions stated in +this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, any +Contribution intentionally submitted for inclusion in the Work by You to +the Licensor shall be under the terms and conditions of this License, +without any additional terms or conditions. Notwithstanding the above, +nothing herein shall supersede or modify the terms of any separate license +agreement you may have executed with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade +names, trademarks, service marks, or product names of the Licensor, except +as required for reasonable and customary use in describing the origin of +the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or agreed to +in writing, Licensor provides the Work (and each Contributor provides its +Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied, including, without limitation, any +warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or +FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for +determining the appropriateness of using or redistributing the Work and +assume any risks associated with Your exercise of permissions under this +License. + +8. Limitation of Liability. In no event and under no legal theory, whether +in tort (including negligence), contract, or otherwise, unless required by +applicable law (such as deliberate and grossly negligent acts) or agreed to +in writing, shall any Contributor be liable to You for damages, including +any direct, indirect, special, incidental, or consequential damages of any +character arising as a result of this License or out of the use or +inability to use the Work (including but not limited to damages for loss of +goodwill, work stoppage, computer failure or malfunction, or any and all +other commercial damages or losses), even if such Contributor has been +advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing the +Work or Derivative Works thereof, You may choose to offer, and charge a fee +for, acceptance of support, warranty, indemnity, or other liability +obligations and/or rights consistent with this License. However, in +accepting such obligations, You may act only on Your own behalf and on Your +sole responsibility, not on behalf of any other Contributor, and only if +You agree to indemnify, defend, and hold each Contributor harmless for any +liability incurred by, or claims asserted against, such Contributor by +reason of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work + +To apply the Apache License to your work, attach the following boilerplate +notice, with the fields enclosed by brackets "[]" replaced with your own +identifying information. (Don't include the brackets!) The text should be +enclosed in the appropriate comment syntax for the file format. We also +recommend that a file or class name and description of purpose be included +on the same "printed page" as the copyright notice for easier +identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); you may + not use this file except in compliance with the License. You may obtain a + copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable + law or agreed to in writing, software distributed under the License is + distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the specific language + governing permissions and limitations under the License. \ No newline at end of file diff --git a/Externals/ffmpeg/licenses/openjpeg.txt b/Externals/ffmpeg/licenses/openjpeg.txt new file mode 100644 index 00000000..d1e5b6a5 --- /dev/null +++ b/Externals/ffmpeg/licenses/openjpeg.txt @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2002-2007, Communications and Remote Sensing Laboratory, Universite catholique de Louvain (UCL), Belgium + * Copyright (c) 2002-2007, Professor Benoit Macq + * Copyright (c) 2001-2003, David Janssens + * Copyright (c) 2002-2003, Yannick Verschueren + * Copyright (c) 2003-2007, Francois-Olivier Devaux and Antonin Descampe + * Copyright (c) 2005, Herve Drolon, FreeImage Team + * 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. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT OWNER 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. + */ \ No newline at end of file diff --git a/Externals/ffmpeg/licenses/rtmp.txt b/Externals/ffmpeg/licenses/rtmp.txt new file mode 100644 index 00000000..bf28f6ff --- /dev/null +++ b/Externals/ffmpeg/licenses/rtmp.txt @@ -0,0 +1,503 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! + diff --git a/Externals/ffmpeg/licenses/schroedinger.txt b/Externals/ffmpeg/licenses/schroedinger.txt new file mode 100644 index 00000000..d6b542f9 --- /dev/null +++ b/Externals/ffmpeg/licenses/schroedinger.txt @@ -0,0 +1,278 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. \ No newline at end of file diff --git a/Externals/ffmpeg/licenses/sdl.txt b/Externals/ffmpeg/licenses/sdl.txt new file mode 100644 index 00000000..2cba2ac7 --- /dev/null +++ b/Externals/ffmpeg/licenses/sdl.txt @@ -0,0 +1,458 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS diff --git a/Externals/ffmpeg/licenses/speex.txt b/Externals/ffmpeg/licenses/speex.txt new file mode 100644 index 00000000..26284642 --- /dev/null +++ b/Externals/ffmpeg/licenses/speex.txt @@ -0,0 +1,35 @@ +Copyright 2002-2008 Xiph.org Foundation +Copyright 2002-2008 Jean-Marc Valin +Copyright 2005-2007 Analog Devices Inc. +Copyright 2005-2008 Commonwealth Scientific and Industrial Research + Organisation (CSIRO) +Copyright 1993, 2002, 2006 David Rowe +Copyright 2003 EpicGames +Copyright 1992-1994 Jutta Degener, Carsten Bormann + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +- Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + +- 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. + +- Neither the name of the Xiph.org Foundation 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 COPYRIGHT HOLDERS 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 FOUNDATION 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. \ No newline at end of file diff --git a/Externals/ffmpeg/licenses/theora.txt b/Externals/ffmpeg/licenses/theora.txt new file mode 100644 index 00000000..f71b538a --- /dev/null +++ b/Externals/ffmpeg/licenses/theora.txt @@ -0,0 +1,28 @@ +Copyright (C) 2002-2009 Xiph.org Foundation + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +- Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + +- 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. + +- Neither the name of the Xiph.org Foundation 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 COPYRIGHT HOLDERS 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 FOUNDATION +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. \ No newline at end of file diff --git a/Externals/ffmpeg/licenses/vo-aacenc.txt b/Externals/ffmpeg/licenses/vo-aacenc.txt new file mode 100644 index 00000000..5ec4bf01 --- /dev/null +++ b/Externals/ffmpeg/licenses/vo-aacenc.txt @@ -0,0 +1,191 @@ +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + +"License" shall mean the terms and conditions for use, reproduction, and +distribution as defined by Sections 1 through 9 of this document. + +"Licensor" shall mean the copyright owner or entity authorized by the +copyright owner that is granting the License. + +"Legal Entity" shall mean the union of the acting entity and all other +entities that control, are controlled by, or are under common control with +that entity. For the purposes of this definition, "control" means (i) the +power, direct or indirect, to cause the direction or management of such +entity, whether by contract or otherwise, or (ii) ownership of fifty +percent (50%) or more of the outstanding shares, or (iii) beneficial +ownership of such entity. + +"You" (or "Your") shall mean an individual or Legal Entity exercising +permissions granted by this License. + +"Source" form shall mean the preferred form for making modifications, +including but not limited to software source code, documentation source, +and configuration files. + +"Object" form shall mean any form resulting from mechanical transformation +or translation of a Source form, including but not limited to compiled +object code, generated documentation, and conversions to other media types. + +"Work" shall mean the work of authorship, whether in Source or Object form, +made available under the License, as indicated by a copyright notice that +is included in or attached to the work (an example is provided in the +Appendix below). + +"Derivative Works" shall mean any work, whether in Source or Object form, +that is based on (or derived from) the Work and for which the editorial +revisions, annotations, elaborations, or other modifications represent, as +a whole, an original work of authorship. For the purposes of this License, +Derivative Works shall not include works that remain separable from, or +merely link (or bind by name) to the interfaces of, the Work and Derivative +Works thereof. + +"Contribution" shall mean any work of authorship, including the original +version of the Work and any modifications or additions to that Work or +Derivative Works thereof, that is intentionally submitted to Licensor for +inclusion in the Work by the copyright owner or by an individual or Legal +Entity authorized to submit on behalf of the copyright owner. For the +purposes of this definition, "submitted" means any form of electronic, +verbal, or written communication sent to the Licensor or its +representatives, including but not limited to communication on electronic +mailing lists, source code control systems, and issue tracking systems that +are managed by, or on behalf of, the Licensor for the purpose of discussing +and improving the Work, but excluding communication that is conspicuously +marked or otherwise designated in writing by the copyright owner as "Not a +Contribution." + +"Contributor" shall mean Licensor and any individual or Legal Entity on +behalf of whom a Contribution has been received by Licensor and +subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of this +License, each Contributor hereby grants to You a perpetual, worldwide, +non-exclusive, no-charge, royalty-free, irrevocable copyright license to +reproduce, prepare Derivative Works of, publicly display, publicly perform, +sublicense, and distribute the Work and such Derivative Works in Source or +Object form. + +3. Grant of Patent License. Subject to the terms and conditions of this +License, each Contributor hereby grants to You a perpetual, worldwide, +non-exclusive, no-charge, royalty-free, irrevocable (except as stated in +this section) patent license to make, have made, use, offer to sell, sell, +import, and otherwise transfer the Work, where such license applies only to +those patent claims licensable by such Contributor that are necessarily +infringed by their Contribution(s) alone or by combination of their +Contribution(s) with the Work to which such Contribution(s) was submitted. +If You institute patent litigation against any entity (including a +cross-claim or counterclaim in a lawsuit) alleging that the Work or a +Contribution incorporated within the Work constitutes direct or +contributory patent infringement, then any patent licenses granted to You +under this License for that Work shall terminate as of the date such +litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the Work or +Derivative Works thereof in any medium, with or without modifications, and +in Source or Object form, provided that You meet the following conditions: + + 1. You must give any other recipients of the Work or Derivative Works a +copy of this License; and + + 2. You must cause any modified files to carry prominent notices stating +that You changed the files; and + + 3. You must retain, in the Source form of any Derivative Works that You +distribute, all copyright, patent, trademark, and attribution notices from +the Source form of the Work, excluding those notices that do not pertain to +any part of the Derivative Works; and + + 4. If the Work includes a "NOTICE" text file as part of its +distribution, then any Derivative Works that You distribute must include a +readable copy of the attribution notices contained within such NOTICE file, +excluding those notices that do not pertain to any part of the Derivative +Works, in at least one of the following places: within a NOTICE text file +distributed as part of the Derivative Works; within the Source form or +documentation, if provided along with the Derivative Works; or, within a +display generated by the Derivative Works, if and wherever such third-party +notices normally appear. The contents of the NOTICE file are for +informational purposes only and do not modify the License. You may add Your +own attribution notices within Derivative Works that You distribute, +alongside or as an addendum to the NOTICE text from the Work, provided that +such additional attribution notices cannot be construed as modifying the +License. + +You may add Your own copyright statement to Your modifications and may +provide additional or different license terms and conditions for use, +reproduction, or distribution of Your modifications, or for any such +Derivative Works as a whole, provided Your use, reproduction, and +distribution of the Work otherwise complies with the conditions stated in +this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, any +Contribution intentionally submitted for inclusion in the Work by You to +the Licensor shall be under the terms and conditions of this License, +without any additional terms or conditions. Notwithstanding the above, +nothing herein shall supersede or modify the terms of any separate license +agreement you may have executed with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade +names, trademarks, service marks, or product names of the Licensor, except +as required for reasonable and customary use in describing the origin of +the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or agreed to +in writing, Licensor provides the Work (and each Contributor provides its +Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied, including, without limitation, any +warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or +FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for +determining the appropriateness of using or redistributing the Work and +assume any risks associated with Your exercise of permissions under this +License. + +8. Limitation of Liability. In no event and under no legal theory, whether +in tort (including negligence), contract, or otherwise, unless required by +applicable law (such as deliberate and grossly negligent acts) or agreed to +in writing, shall any Contributor be liable to You for damages, including +any direct, indirect, special, incidental, or consequential damages of any +character arising as a result of this License or out of the use or +inability to use the Work (including but not limited to damages for loss of +goodwill, work stoppage, computer failure or malfunction, or any and all +other commercial damages or losses), even if such Contributor has been +advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing the +Work or Derivative Works thereof, You may choose to offer, and charge a fee +for, acceptance of support, warranty, indemnity, or other liability +obligations and/or rights consistent with this License. However, in +accepting such obligations, You may act only on Your own behalf and on Your +sole responsibility, not on behalf of any other Contributor, and only if +You agree to indemnify, defend, and hold each Contributor harmless for any +liability incurred by, or claims asserted against, such Contributor by +reason of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work + +To apply the Apache License to your work, attach the following boilerplate +notice, with the fields enclosed by brackets "[]" replaced with your own +identifying information. (Don't include the brackets!) The text should be +enclosed in the appropriate comment syntax for the file format. We also +recommend that a file or class name and description of purpose be included +on the same "printed page" as the copyright notice for easier +identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); you may + not use this file except in compliance with the License. You may obtain a + copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable + law or agreed to in writing, software distributed under the License is + distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the specific language + governing permissions and limitations under the License. diff --git a/Externals/ffmpeg/licenses/vo-amrwbenc.txt b/Externals/ffmpeg/licenses/vo-amrwbenc.txt new file mode 100644 index 00000000..5ec4bf01 --- /dev/null +++ b/Externals/ffmpeg/licenses/vo-amrwbenc.txt @@ -0,0 +1,191 @@ +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + +"License" shall mean the terms and conditions for use, reproduction, and +distribution as defined by Sections 1 through 9 of this document. + +"Licensor" shall mean the copyright owner or entity authorized by the +copyright owner that is granting the License. + +"Legal Entity" shall mean the union of the acting entity and all other +entities that control, are controlled by, or are under common control with +that entity. For the purposes of this definition, "control" means (i) the +power, direct or indirect, to cause the direction or management of such +entity, whether by contract or otherwise, or (ii) ownership of fifty +percent (50%) or more of the outstanding shares, or (iii) beneficial +ownership of such entity. + +"You" (or "Your") shall mean an individual or Legal Entity exercising +permissions granted by this License. + +"Source" form shall mean the preferred form for making modifications, +including but not limited to software source code, documentation source, +and configuration files. + +"Object" form shall mean any form resulting from mechanical transformation +or translation of a Source form, including but not limited to compiled +object code, generated documentation, and conversions to other media types. + +"Work" shall mean the work of authorship, whether in Source or Object form, +made available under the License, as indicated by a copyright notice that +is included in or attached to the work (an example is provided in the +Appendix below). + +"Derivative Works" shall mean any work, whether in Source or Object form, +that is based on (or derived from) the Work and for which the editorial +revisions, annotations, elaborations, or other modifications represent, as +a whole, an original work of authorship. For the purposes of this License, +Derivative Works shall not include works that remain separable from, or +merely link (or bind by name) to the interfaces of, the Work and Derivative +Works thereof. + +"Contribution" shall mean any work of authorship, including the original +version of the Work and any modifications or additions to that Work or +Derivative Works thereof, that is intentionally submitted to Licensor for +inclusion in the Work by the copyright owner or by an individual or Legal +Entity authorized to submit on behalf of the copyright owner. For the +purposes of this definition, "submitted" means any form of electronic, +verbal, or written communication sent to the Licensor or its +representatives, including but not limited to communication on electronic +mailing lists, source code control systems, and issue tracking systems that +are managed by, or on behalf of, the Licensor for the purpose of discussing +and improving the Work, but excluding communication that is conspicuously +marked or otherwise designated in writing by the copyright owner as "Not a +Contribution." + +"Contributor" shall mean Licensor and any individual or Legal Entity on +behalf of whom a Contribution has been received by Licensor and +subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of this +License, each Contributor hereby grants to You a perpetual, worldwide, +non-exclusive, no-charge, royalty-free, irrevocable copyright license to +reproduce, prepare Derivative Works of, publicly display, publicly perform, +sublicense, and distribute the Work and such Derivative Works in Source or +Object form. + +3. Grant of Patent License. Subject to the terms and conditions of this +License, each Contributor hereby grants to You a perpetual, worldwide, +non-exclusive, no-charge, royalty-free, irrevocable (except as stated in +this section) patent license to make, have made, use, offer to sell, sell, +import, and otherwise transfer the Work, where such license applies only to +those patent claims licensable by such Contributor that are necessarily +infringed by their Contribution(s) alone or by combination of their +Contribution(s) with the Work to which such Contribution(s) was submitted. +If You institute patent litigation against any entity (including a +cross-claim or counterclaim in a lawsuit) alleging that the Work or a +Contribution incorporated within the Work constitutes direct or +contributory patent infringement, then any patent licenses granted to You +under this License for that Work shall terminate as of the date such +litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the Work or +Derivative Works thereof in any medium, with or without modifications, and +in Source or Object form, provided that You meet the following conditions: + + 1. You must give any other recipients of the Work or Derivative Works a +copy of this License; and + + 2. You must cause any modified files to carry prominent notices stating +that You changed the files; and + + 3. You must retain, in the Source form of any Derivative Works that You +distribute, all copyright, patent, trademark, and attribution notices from +the Source form of the Work, excluding those notices that do not pertain to +any part of the Derivative Works; and + + 4. If the Work includes a "NOTICE" text file as part of its +distribution, then any Derivative Works that You distribute must include a +readable copy of the attribution notices contained within such NOTICE file, +excluding those notices that do not pertain to any part of the Derivative +Works, in at least one of the following places: within a NOTICE text file +distributed as part of the Derivative Works; within the Source form or +documentation, if provided along with the Derivative Works; or, within a +display generated by the Derivative Works, if and wherever such third-party +notices normally appear. The contents of the NOTICE file are for +informational purposes only and do not modify the License. You may add Your +own attribution notices within Derivative Works that You distribute, +alongside or as an addendum to the NOTICE text from the Work, provided that +such additional attribution notices cannot be construed as modifying the +License. + +You may add Your own copyright statement to Your modifications and may +provide additional or different license terms and conditions for use, +reproduction, or distribution of Your modifications, or for any such +Derivative Works as a whole, provided Your use, reproduction, and +distribution of the Work otherwise complies with the conditions stated in +this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, any +Contribution intentionally submitted for inclusion in the Work by You to +the Licensor shall be under the terms and conditions of this License, +without any additional terms or conditions. Notwithstanding the above, +nothing herein shall supersede or modify the terms of any separate license +agreement you may have executed with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade +names, trademarks, service marks, or product names of the Licensor, except +as required for reasonable and customary use in describing the origin of +the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or agreed to +in writing, Licensor provides the Work (and each Contributor provides its +Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied, including, without limitation, any +warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or +FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for +determining the appropriateness of using or redistributing the Work and +assume any risks associated with Your exercise of permissions under this +License. + +8. Limitation of Liability. In no event and under no legal theory, whether +in tort (including negligence), contract, or otherwise, unless required by +applicable law (such as deliberate and grossly negligent acts) or agreed to +in writing, shall any Contributor be liable to You for damages, including +any direct, indirect, special, incidental, or consequential damages of any +character arising as a result of this License or out of the use or +inability to use the Work (including but not limited to damages for loss of +goodwill, work stoppage, computer failure or malfunction, or any and all +other commercial damages or losses), even if such Contributor has been +advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing the +Work or Derivative Works thereof, You may choose to offer, and charge a fee +for, acceptance of support, warranty, indemnity, or other liability +obligations and/or rights consistent with this License. However, in +accepting such obligations, You may act only on Your own behalf and on Your +sole responsibility, not on behalf of any other Contributor, and only if +You agree to indemnify, defend, and hold each Contributor harmless for any +liability incurred by, or claims asserted against, such Contributor by +reason of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work + +To apply the Apache License to your work, attach the following boilerplate +notice, with the fields enclosed by brackets "[]" replaced with your own +identifying information. (Don't include the brackets!) The text should be +enclosed in the appropriate comment syntax for the file format. We also +recommend that a file or class name and description of purpose be included +on the same "printed page" as the copyright notice for easier +identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); you may + not use this file except in compliance with the License. You may obtain a + copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable + law or agreed to in writing, software distributed under the License is + distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the specific language + governing permissions and limitations under the License. diff --git a/Externals/ffmpeg/licenses/vorbis.txt b/Externals/ffmpeg/licenses/vorbis.txt new file mode 100644 index 00000000..2f9af416 --- /dev/null +++ b/Externals/ffmpeg/licenses/vorbis.txt @@ -0,0 +1,28 @@ +Copyright (c) 2002-2008 Xiph.org Foundation + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +- Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + +- 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. + +- Neither the name of the Xiph.org Foundation 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 COPYRIGHT HOLDERS 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 FOUNDATION +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. \ No newline at end of file diff --git a/Externals/ffmpeg/licenses/x264.txt b/Externals/ffmpeg/licenses/x264.txt new file mode 100644 index 00000000..0f70665a --- /dev/null +++ b/Externals/ffmpeg/licenses/x264.txt @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + 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 2 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. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. \ No newline at end of file diff --git a/Externals/ffmpeg/licenses/xavs.txt b/Externals/ffmpeg/licenses/xavs.txt new file mode 100644 index 00000000..94a9ed02 --- /dev/null +++ b/Externals/ffmpeg/licenses/xavs.txt @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + 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. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/Externals/ffmpeg/licenses/xvid.txt b/Externals/ffmpeg/licenses/xvid.txt new file mode 100644 index 00000000..16101eeb --- /dev/null +++ b/Externals/ffmpeg/licenses/xvid.txt @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + 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 2 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. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. \ No newline at end of file diff --git a/Externals/ffmpeg/licenses/zlib.txt b/Externals/ffmpeg/licenses/zlib.txt new file mode 100644 index 00000000..530fd838 --- /dev/null +++ b/Externals/ffmpeg/licenses/zlib.txt @@ -0,0 +1,23 @@ + zlib.h -- interface of the 'zlib' general purpose compression library + version 1.2.5, April 19th, 2010 + + Copyright (C) 1995-2010 Jean-loup Gailly and Mark Adler + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + Jean-loup Gailly + Mark Adler diff --git a/Externals/libfreenect/AForge ReadMe.txt b/Externals/libfreenect/AForge ReadMe.txt new file mode 100644 index 00000000..c65560ed --- /dev/null +++ b/Externals/libfreenect/AForge ReadMe.txt @@ -0,0 +1,9 @@ +Libraries in this folder are part of the OpenKinect project and were built from its sources: +http://openkinect.org/ +Sources from git's master branch was used. Last updated and built on February 20, 2012. + +The libraries were built using VS.NET 2010. Configuration done with CMake. + +See installation/build notes here: +http://openkinect.org/wiki/Getting_Started#Windows + diff --git a/Externals/libfreenect/APACHE20 b/Externals/libfreenect/APACHE20 new file mode 100644 index 00000000..d6456956 --- /dev/null +++ b/Externals/libfreenect/APACHE20 @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/Externals/libfreenect/freenect.dll b/Externals/libfreenect/freenect.dll new file mode 100644 index 00000000..e3974ca6 Binary files /dev/null and b/Externals/libfreenect/freenect.dll differ diff --git a/Externals/msinttypes/AForge ReadMe.txt b/Externals/msinttypes/AForge ReadMe.txt new file mode 100644 index 00000000..ef1bfe8f --- /dev/null +++ b/Externals/msinttypes/AForge ReadMe.txt @@ -0,0 +1,2 @@ +The folder contains files from "msinttypes" project, which allow compiling C99 compliant projects in MSVC. +http://code.google.com/p/msinttypes/ diff --git a/Externals/msinttypes/changelog.txt b/Externals/msinttypes/changelog.txt new file mode 100644 index 00000000..e13b87e5 --- /dev/null +++ b/Externals/msinttypes/changelog.txt @@ -0,0 +1,138 @@ +------------------------------------------------------------------------ +r26 | 2009-10-02 13:36:47 +0400 | 2 lines + +[Issue 5] Change to "stdint.h" to let compiler search for it in local directory. + +------------------------------------------------------------------------ +r25 | 2009-09-17 23:46:49 +0400 | 2 lines + +[Issue 4] Fix incorrect int8_t behaviour if compiled with /J flag. + +------------------------------------------------------------------------ +r24 | 2009-05-13 14:53:48 +0400 | 2 lines + +Forgot about #ifdef __cplusplus guard around 'extern "C"', so inclusion to C files has been broken. + +------------------------------------------------------------------------ +r23 | 2009-05-12 01:27:45 +0400 | 3 lines + +[Issue 2] Always wrap is included. + +------------------------------------------------------------------------ +r19 | 2007-07-04 02:14:40 +0400 | 3 lines + +Explicitly cast to appropriate type INT8_MIN, INT16_MIN, INT32_MIN and INT64_MIN constants. +Due to their unusual definition in Visual Studio headers (-_Ix_MAX-1) they are propagated to int and thus do not have expected type, causing VS6 strict compiler to claim about type inconsistency. + +------------------------------------------------------------------------ +r18 | 2007-06-26 16:53:23 +0400 | 2 lines + +Better handling of (U)INTx_C macros - now they generate constants of exact width. + +------------------------------------------------------------------------ +r17 | 2007-03-29 20:16:14 +0400 | 2 lines + +Fix typo: Miscrosoft -> Microsoft. + +------------------------------------------------------------------------ +r16 | 2007-02-24 17:32:58 +0300 | 4 lines + +Remove include, as it is not present in Visual Studio 2005 Epxress Edition and required only for INT_PTR and UINT_PTR types. + +'intptr_t' and 'uintptr_t' types now defined explicitly with #ifdef _WIN64. + +------------------------------------------------------------------------ +r15 | 2007-02-11 20:53:05 +0300 | 2 lines + +More correct fix for compilation under VS6. + +------------------------------------------------------------------------ +r14 | 2007-02-11 20:04:32 +0300 | 2 lines + +Bugfix: fix compiling under VS6, when stdint.h enclosed in 'extern "C" {}'. + +------------------------------------------------------------------------ +r13 | 2006-12-13 16:53:11 +0300 | 2 lines + +Make _inline modifier for imaxdiv default option. Use STATIC_IMAXDIV to make it static. + +------------------------------------------------------------------------ +r12 | 2006-12-13 16:42:24 +0300 | 2 lines + +Error message changed: VC6 supported from now. + +------------------------------------------------------------------------ +r11 | 2006-12-13 16:39:33 +0300 | 2 lines + +All (U)INT* types changed to (unsigned) __int*. This should make stdint.h compatible with VC6. + +------------------------------------------------------------------------ +r10 | 2006-12-13 16:20:57 +0300 | 3 lines + +Added INLINE_IMAXDIV define switch. +If INLINE_IMAXDIV is defined imaxdiv() have static modifier. If not - it is _inline. + +------------------------------------------------------------------------ +r9 | 2006-12-13 15:53:52 +0300 | 2 lines + +Error message for non-MSC compiler changed. + +------------------------------------------------------------------------ +r8 | 2006-12-13 12:47:48 +0300 | 2 lines + +Added #ifndef for SIZE_MAX (it is defined in limits.h on MSVSC 8). + +------------------------------------------------------------------------ +r7 | 2006-12-13 01:08:02 +0300 | 2 lines + +License chaged to BSD-derivative. + +------------------------------------------------------------------------ +r6 | 2006-12-13 00:53:20 +0300 | 2 lines + +Added include to avoid warnings when it is included after stdint.h. + +------------------------------------------------------------------------ +r5 | 2006-12-12 00:58:05 +0300 | 2 lines + +BUGFIX: Definitions of INTPTR_MIN, INTPTR_MAX and UINTPTR_MAX for WIN32 and WIN64 was mixed up. + +------------------------------------------------------------------------ +r4 | 2006-12-12 00:51:55 +0300 | 2 lines + +Rise #error if _MSC_VER is not defined. I.e. compiler other then Microsoft Visual C++ is used. + +------------------------------------------------------------------------ +r3 | 2006-12-11 22:54:14 +0300 | 2 lines + +Added include to stdint.h. + +------------------------------------------------------------------------ +r2 | 2006-12-11 21:39:27 +0300 | 2 lines + +Initial check in. + +------------------------------------------------------------------------ +r1 | 2006-12-11 21:30:23 +0300 | 1 line + +Initial directory structure. +------------------------------------------------------------------------ diff --git a/Externals/msinttypes/inttypes.h b/Externals/msinttypes/inttypes.h new file mode 100644 index 00000000..4b3828a2 --- /dev/null +++ b/Externals/msinttypes/inttypes.h @@ -0,0 +1,305 @@ +// ISO C9x compliant inttypes.h for Microsoft Visual Studio +// Based on ISO/IEC 9899:TC2 Committee draft (May 6, 2005) WG14/N1124 +// +// Copyright (c) 2006 Alexander Chemeris +// +// 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. The name of the author may be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. +// +/////////////////////////////////////////////////////////////////////////////// + +#ifndef _MSC_VER // [ +#error "Use this header only with Microsoft Visual C++ compilers!" +#endif // _MSC_VER ] + +#ifndef _MSC_INTTYPES_H_ // [ +#define _MSC_INTTYPES_H_ + +#if _MSC_VER > 1000 +#pragma once +#endif + +#include "stdint.h" + +// 7.8 Format conversion of integer types + +typedef struct { + intmax_t quot; + intmax_t rem; +} imaxdiv_t; + +// 7.8.1 Macros for format specifiers + +#if !defined(__cplusplus) || defined(__STDC_FORMAT_MACROS) // [ See footnote 185 at page 198 + +// The fprintf macros for signed integers are: +#define PRId8 "d" +#define PRIi8 "i" +#define PRIdLEAST8 "d" +#define PRIiLEAST8 "i" +#define PRIdFAST8 "d" +#define PRIiFAST8 "i" + +#define PRId16 "hd" +#define PRIi16 "hi" +#define PRIdLEAST16 "hd" +#define PRIiLEAST16 "hi" +#define PRIdFAST16 "hd" +#define PRIiFAST16 "hi" + +#define PRId32 "I32d" +#define PRIi32 "I32i" +#define PRIdLEAST32 "I32d" +#define PRIiLEAST32 "I32i" +#define PRIdFAST32 "I32d" +#define PRIiFAST32 "I32i" + +#define PRId64 "I64d" +#define PRIi64 "I64i" +#define PRIdLEAST64 "I64d" +#define PRIiLEAST64 "I64i" +#define PRIdFAST64 "I64d" +#define PRIiFAST64 "I64i" + +#define PRIdMAX "I64d" +#define PRIiMAX "I64i" + +#define PRIdPTR "Id" +#define PRIiPTR "Ii" + +// The fprintf macros for unsigned integers are: +#define PRIo8 "o" +#define PRIu8 "u" +#define PRIx8 "x" +#define PRIX8 "X" +#define PRIoLEAST8 "o" +#define PRIuLEAST8 "u" +#define PRIxLEAST8 "x" +#define PRIXLEAST8 "X" +#define PRIoFAST8 "o" +#define PRIuFAST8 "u" +#define PRIxFAST8 "x" +#define PRIXFAST8 "X" + +#define PRIo16 "ho" +#define PRIu16 "hu" +#define PRIx16 "hx" +#define PRIX16 "hX" +#define PRIoLEAST16 "ho" +#define PRIuLEAST16 "hu" +#define PRIxLEAST16 "hx" +#define PRIXLEAST16 "hX" +#define PRIoFAST16 "ho" +#define PRIuFAST16 "hu" +#define PRIxFAST16 "hx" +#define PRIXFAST16 "hX" + +#define PRIo32 "I32o" +#define PRIu32 "I32u" +#define PRIx32 "I32x" +#define PRIX32 "I32X" +#define PRIoLEAST32 "I32o" +#define PRIuLEAST32 "I32u" +#define PRIxLEAST32 "I32x" +#define PRIXLEAST32 "I32X" +#define PRIoFAST32 "I32o" +#define PRIuFAST32 "I32u" +#define PRIxFAST32 "I32x" +#define PRIXFAST32 "I32X" + +#define PRIo64 "I64o" +#define PRIu64 "I64u" +#define PRIx64 "I64x" +#define PRIX64 "I64X" +#define PRIoLEAST64 "I64o" +#define PRIuLEAST64 "I64u" +#define PRIxLEAST64 "I64x" +#define PRIXLEAST64 "I64X" +#define PRIoFAST64 "I64o" +#define PRIuFAST64 "I64u" +#define PRIxFAST64 "I64x" +#define PRIXFAST64 "I64X" + +#define PRIoMAX "I64o" +#define PRIuMAX "I64u" +#define PRIxMAX "I64x" +#define PRIXMAX "I64X" + +#define PRIoPTR "Io" +#define PRIuPTR "Iu" +#define PRIxPTR "Ix" +#define PRIXPTR "IX" + +// The fscanf macros for signed integers are: +#define SCNd8 "d" +#define SCNi8 "i" +#define SCNdLEAST8 "d" +#define SCNiLEAST8 "i" +#define SCNdFAST8 "d" +#define SCNiFAST8 "i" + +#define SCNd16 "hd" +#define SCNi16 "hi" +#define SCNdLEAST16 "hd" +#define SCNiLEAST16 "hi" +#define SCNdFAST16 "hd" +#define SCNiFAST16 "hi" + +#define SCNd32 "ld" +#define SCNi32 "li" +#define SCNdLEAST32 "ld" +#define SCNiLEAST32 "li" +#define SCNdFAST32 "ld" +#define SCNiFAST32 "li" + +#define SCNd64 "I64d" +#define SCNi64 "I64i" +#define SCNdLEAST64 "I64d" +#define SCNiLEAST64 "I64i" +#define SCNdFAST64 "I64d" +#define SCNiFAST64 "I64i" + +#define SCNdMAX "I64d" +#define SCNiMAX "I64i" + +#ifdef _WIN64 // [ +# define SCNdPTR "I64d" +# define SCNiPTR "I64i" +#else // _WIN64 ][ +# define SCNdPTR "ld" +# define SCNiPTR "li" +#endif // _WIN64 ] + +// The fscanf macros for unsigned integers are: +#define SCNo8 "o" +#define SCNu8 "u" +#define SCNx8 "x" +#define SCNX8 "X" +#define SCNoLEAST8 "o" +#define SCNuLEAST8 "u" +#define SCNxLEAST8 "x" +#define SCNXLEAST8 "X" +#define SCNoFAST8 "o" +#define SCNuFAST8 "u" +#define SCNxFAST8 "x" +#define SCNXFAST8 "X" + +#define SCNo16 "ho" +#define SCNu16 "hu" +#define SCNx16 "hx" +#define SCNX16 "hX" +#define SCNoLEAST16 "ho" +#define SCNuLEAST16 "hu" +#define SCNxLEAST16 "hx" +#define SCNXLEAST16 "hX" +#define SCNoFAST16 "ho" +#define SCNuFAST16 "hu" +#define SCNxFAST16 "hx" +#define SCNXFAST16 "hX" + +#define SCNo32 "lo" +#define SCNu32 "lu" +#define SCNx32 "lx" +#define SCNX32 "lX" +#define SCNoLEAST32 "lo" +#define SCNuLEAST32 "lu" +#define SCNxLEAST32 "lx" +#define SCNXLEAST32 "lX" +#define SCNoFAST32 "lo" +#define SCNuFAST32 "lu" +#define SCNxFAST32 "lx" +#define SCNXFAST32 "lX" + +#define SCNo64 "I64o" +#define SCNu64 "I64u" +#define SCNx64 "I64x" +#define SCNX64 "I64X" +#define SCNoLEAST64 "I64o" +#define SCNuLEAST64 "I64u" +#define SCNxLEAST64 "I64x" +#define SCNXLEAST64 "I64X" +#define SCNoFAST64 "I64o" +#define SCNuFAST64 "I64u" +#define SCNxFAST64 "I64x" +#define SCNXFAST64 "I64X" + +#define SCNoMAX "I64o" +#define SCNuMAX "I64u" +#define SCNxMAX "I64x" +#define SCNXMAX "I64X" + +#ifdef _WIN64 // [ +# define SCNoPTR "I64o" +# define SCNuPTR "I64u" +# define SCNxPTR "I64x" +# define SCNXPTR "I64X" +#else // _WIN64 ][ +# define SCNoPTR "lo" +# define SCNuPTR "lu" +# define SCNxPTR "lx" +# define SCNXPTR "lX" +#endif // _WIN64 ] + +#endif // __STDC_FORMAT_MACROS ] + +// 7.8.2 Functions for greatest-width integer types + +// 7.8.2.1 The imaxabs function +#define imaxabs _abs64 + +// 7.8.2.2 The imaxdiv function + +// This is modified version of div() function from Microsoft's div.c found +// in %MSVC.NET%\crt\src\div.c +#ifdef STATIC_IMAXDIV // [ +static +#else // STATIC_IMAXDIV ][ +_inline +#endif // STATIC_IMAXDIV ] +imaxdiv_t __cdecl imaxdiv(intmax_t numer, intmax_t denom) +{ + imaxdiv_t result; + + result.quot = numer / denom; + result.rem = numer % denom; + + if (numer < 0 && result.rem > 0) { + // did division wrong; must fix up + ++result.quot; + result.rem -= denom; + } + + return result; +} + +// 7.8.2.3 The strtoimax and strtoumax functions +#define strtoimax _strtoi64 +#define strtoumax _strtoui64 + +// 7.8.2.4 The wcstoimax and wcstoumax functions +#define wcstoimax _wcstoi64 +#define wcstoumax _wcstoui64 + + +#endif // _MSC_INTTYPES_H_ ] diff --git a/Externals/msinttypes/stdint.h b/Externals/msinttypes/stdint.h new file mode 100644 index 00000000..d02608a5 --- /dev/null +++ b/Externals/msinttypes/stdint.h @@ -0,0 +1,247 @@ +// ISO C9x compliant stdint.h for Microsoft Visual Studio +// Based on ISO/IEC 9899:TC2 Committee draft (May 6, 2005) WG14/N1124 +// +// Copyright (c) 2006-2008 Alexander Chemeris +// +// 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. The name of the author may be used to endorse or promote products +// derived from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. +// +/////////////////////////////////////////////////////////////////////////////// + +#ifndef _MSC_VER // [ +#error "Use this header only with Microsoft Visual C++ compilers!" +#endif // _MSC_VER ] + +#ifndef _MSC_STDINT_H_ // [ +#define _MSC_STDINT_H_ + +#if _MSC_VER > 1000 +#pragma once +#endif + +#include + +// For Visual Studio 6 in C++ mode and for many Visual Studio versions when +// compiling for ARM we should wrap include with 'extern "C++" {}' +// or compiler give many errors like this: +// error C2733: second C linkage of overloaded function 'wmemchr' not allowed +#ifdef __cplusplus +extern "C" { +#endif +# include +#ifdef __cplusplus +} +#endif + +// Define _W64 macros to mark types changing their size, like intptr_t. +#ifndef _W64 +# if !defined(__midl) && (defined(_X86_) || defined(_M_IX86)) && _MSC_VER >= 1300 +# define _W64 __w64 +# else +# define _W64 +# endif +#endif + + +// 7.18.1 Integer types + +// 7.18.1.1 Exact-width integer types + +// Visual Studio 6 and Embedded Visual C++ 4 doesn't +// realize that, e.g. char has the same size as __int8 +// so we give up on __intX for them. +#if (_MSC_VER < 1300) + typedef signed char int8_t; + typedef signed short int16_t; + typedef signed int int32_t; + typedef unsigned char uint8_t; + typedef unsigned short uint16_t; + typedef unsigned int uint32_t; +#else + typedef signed __int8 int8_t; + typedef signed __int16 int16_t; + typedef signed __int32 int32_t; + typedef unsigned __int8 uint8_t; + typedef unsigned __int16 uint16_t; + typedef unsigned __int32 uint32_t; +#endif +typedef signed __int64 int64_t; +typedef unsigned __int64 uint64_t; + + +// 7.18.1.2 Minimum-width integer types +typedef int8_t int_least8_t; +typedef int16_t int_least16_t; +typedef int32_t int_least32_t; +typedef int64_t int_least64_t; +typedef uint8_t uint_least8_t; +typedef uint16_t uint_least16_t; +typedef uint32_t uint_least32_t; +typedef uint64_t uint_least64_t; + +// 7.18.1.3 Fastest minimum-width integer types +typedef int8_t int_fast8_t; +typedef int16_t int_fast16_t; +typedef int32_t int_fast32_t; +typedef int64_t int_fast64_t; +typedef uint8_t uint_fast8_t; +typedef uint16_t uint_fast16_t; +typedef uint32_t uint_fast32_t; +typedef uint64_t uint_fast64_t; + +// 7.18.1.4 Integer types capable of holding object pointers +#ifdef _WIN64 // [ + typedef signed __int64 intptr_t; + typedef unsigned __int64 uintptr_t; +#else // _WIN64 ][ + typedef _W64 signed int intptr_t; + typedef _W64 unsigned int uintptr_t; +#endif // _WIN64 ] + +// 7.18.1.5 Greatest-width integer types +typedef int64_t intmax_t; +typedef uint64_t uintmax_t; + + +// 7.18.2 Limits of specified-width integer types + +#if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS) // [ See footnote 220 at page 257 and footnote 221 at page 259 + +// 7.18.2.1 Limits of exact-width integer types +#define INT8_MIN ((int8_t)_I8_MIN) +#define INT8_MAX _I8_MAX +#define INT16_MIN ((int16_t)_I16_MIN) +#define INT16_MAX _I16_MAX +#define INT32_MIN ((int32_t)_I32_MIN) +#define INT32_MAX _I32_MAX +#define INT64_MIN ((int64_t)_I64_MIN) +#define INT64_MAX _I64_MAX +#define UINT8_MAX _UI8_MAX +#define UINT16_MAX _UI16_MAX +#define UINT32_MAX _UI32_MAX +#define UINT64_MAX _UI64_MAX + +// 7.18.2.2 Limits of minimum-width integer types +#define INT_LEAST8_MIN INT8_MIN +#define INT_LEAST8_MAX INT8_MAX +#define INT_LEAST16_MIN INT16_MIN +#define INT_LEAST16_MAX INT16_MAX +#define INT_LEAST32_MIN INT32_MIN +#define INT_LEAST32_MAX INT32_MAX +#define INT_LEAST64_MIN INT64_MIN +#define INT_LEAST64_MAX INT64_MAX +#define UINT_LEAST8_MAX UINT8_MAX +#define UINT_LEAST16_MAX UINT16_MAX +#define UINT_LEAST32_MAX UINT32_MAX +#define UINT_LEAST64_MAX UINT64_MAX + +// 7.18.2.3 Limits of fastest minimum-width integer types +#define INT_FAST8_MIN INT8_MIN +#define INT_FAST8_MAX INT8_MAX +#define INT_FAST16_MIN INT16_MIN +#define INT_FAST16_MAX INT16_MAX +#define INT_FAST32_MIN INT32_MIN +#define INT_FAST32_MAX INT32_MAX +#define INT_FAST64_MIN INT64_MIN +#define INT_FAST64_MAX INT64_MAX +#define UINT_FAST8_MAX UINT8_MAX +#define UINT_FAST16_MAX UINT16_MAX +#define UINT_FAST32_MAX UINT32_MAX +#define UINT_FAST64_MAX UINT64_MAX + +// 7.18.2.4 Limits of integer types capable of holding object pointers +#ifdef _WIN64 // [ +# define INTPTR_MIN INT64_MIN +# define INTPTR_MAX INT64_MAX +# define UINTPTR_MAX UINT64_MAX +#else // _WIN64 ][ +# define INTPTR_MIN INT32_MIN +# define INTPTR_MAX INT32_MAX +# define UINTPTR_MAX UINT32_MAX +#endif // _WIN64 ] + +// 7.18.2.5 Limits of greatest-width integer types +#define INTMAX_MIN INT64_MIN +#define INTMAX_MAX INT64_MAX +#define UINTMAX_MAX UINT64_MAX + +// 7.18.3 Limits of other integer types + +#ifdef _WIN64 // [ +# define PTRDIFF_MIN _I64_MIN +# define PTRDIFF_MAX _I64_MAX +#else // _WIN64 ][ +# define PTRDIFF_MIN _I32_MIN +# define PTRDIFF_MAX _I32_MAX +#endif // _WIN64 ] + +#define SIG_ATOMIC_MIN INT_MIN +#define SIG_ATOMIC_MAX INT_MAX + +#ifndef SIZE_MAX // [ +# ifdef _WIN64 // [ +# define SIZE_MAX _UI64_MAX +# else // _WIN64 ][ +# define SIZE_MAX _UI32_MAX +# endif // _WIN64 ] +#endif // SIZE_MAX ] + +// WCHAR_MIN and WCHAR_MAX are also defined in +#ifndef WCHAR_MIN // [ +# define WCHAR_MIN 0 +#endif // WCHAR_MIN ] +#ifndef WCHAR_MAX // [ +# define WCHAR_MAX _UI16_MAX +#endif // WCHAR_MAX ] + +#define WINT_MIN 0 +#define WINT_MAX _UI16_MAX + +#endif // __STDC_LIMIT_MACROS ] + + +// 7.18.4 Limits of other integer types + +#if !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS) // [ See footnote 224 at page 260 + +// 7.18.4.1 Macros for minimum-width integer constants + +#define INT8_C(val) val##i8 +#define INT16_C(val) val##i16 +#define INT32_C(val) val##i32 +#define INT64_C(val) val##i64 + +#define UINT8_C(val) val##ui8 +#define UINT16_C(val) val##ui16 +#define UINT32_C(val) val##ui32 +#define UINT64_C(val) val##ui64 + +// 7.18.4.2 Macros for greatest-width integer constants +#define INTMAX_C INT64_C +#define UINTMAX_C UINT64_C + +#endif // __STDC_CONSTANT_MACROS ] + + +#endif // _MSC_STDINT_H_ ] diff --git a/License.txt b/License.txt new file mode 100644 index 00000000..39482789 --- /dev/null +++ b/License.txt @@ -0,0 +1,18 @@ +AForge.NET Framework +http://www.aforgenet.com/framework +================================== + +License agreement + +Due to some external dependencies, the framework does not have a common +single license. The AForge.Video.FFMPEG component is GPL v3 licensed, because +it depends on the GPL build of the FFMPEG library. The rest of the framework +is LGPL v3 licensed. + +Both licenses can be found in the gpl-3.0.txt and lgpl-3.0.txt files, or +the next web pages: +http://www.gnu.org/licenses/gpl.html +http://www.gnu.org/licenses/lgpl.html + +Copyright © AForge.NET, 2006-2013 +contacts@aforgenet.com \ No newline at end of file diff --git a/Release notes.txt b/Release notes.txt new file mode 100644 index 00000000..997cbe2c --- /dev/null +++ b/Release notes.txt @@ -0,0 +1,2085 @@ +AForge.NET Framework 2.2.5 release notes +---------------------------------------- +17.07.2013. + +!!!IMPORTANT!!! + +The version updates licensing of AForge.Video.FFMPEG component, which is now released +under GPL v3 license (due to dependency on GPL build of FFMPEG library). The rest of +the framework remains LGPL v3 licensed. + + +Version updates and fixes: + +* Fixed registered issues/requests: + - Issue 159: IAMCameraControl support and Microsoft LifeCam frame size fix + - Issue 293: FilterInfo properties modifier change + - Issue 296: AForge.Imaging.Filters mono support + - Issue 297: OtsuThreshold Filter problem + - Issue 302: Sobel filter crashes on 228x240 32bit PNG + - Issue 304: Building AForge.Video.ffmpeg.dll with spaces in path names. Fix included. + - Issue 311: add support for 32bpp RGB to motion processing + - Issue 314: IActivationFunction implementing ICloneable + - Issue 317: Screen capture IVideoSource + - Issue 326: Camera Control to set focus, exposure, and manual control + - Issue 329: Support for keeping aspect ratio in VideoSourcePlayer + - Issue 331: AForge.Math.Geometry.GrahamConvexHull FindHull + - Issue 337: UnmanagedImage should call AddMemoryPressure and RemoveMemoryPressure + - Issue 341: ContrastCorrection wrong if factor == 1 + - Issue 349: Implement Serializable for Matrix and Vector classes + + +* AForge + - Added SquaredDistanceTo() method to Point/IntPoint/DoublePoint, which returns square of Euclidean distance. + + - Small fix to AForge.Parallel.For() - don't keep reference to for-loop's delegate, so GC could collect when needed. + + +* AForge.Math + - Fixed GrahamConvexHull so it handles correctly lists with 1 point only. Unit test is added. + + - Added [Serializable] attribute to Vector3/4 and Matrix3x3/4x4 structures. + + +* AForge.Imaging + - Set minimum allowed value for ColorFactor, ColorPower, SpatialFactor and SpatialPower properties of + BilateralSmoothing to 1. + + - Added ProcessGapsWithImageBorders property to Horizontal/Vertical Run Length Smoothing filter, which + allows to set if gaps between image borders and objects should be also filled or skipped. + + - Fixed setting DPI resolution of result image which was failing before on Mono. + + - Fixed OtsuThreshold bug, which was leading to wrong threshold calculation for images with highest intensity + maller than 255. + + - Fixed blobs' color standard deviation calculation for 8bpp grayscale images. + + - Fixed Sobel edge detector so it does not write beyond image buffer when doing intensity scaling step. + + - Added 32 bpp RGB pixel format to the list of supported formats for motion processing classes. + + - Minor fix for HSL to RGB conversion to make sure Alpha byte is always set to 255. + + - Allow creating instance of replace channel filters without specifying image for the channel to replace. + + - Added usage System.GC.RemoveMemoryPressuró()/AddMemoryPressure() to UnmanagedImage allocate/deallocation code. + + - Fixed factor check in Contrast Correction image processing filter. + + +* AForge.Neuro + - Added implementation of ICloneable interface to activation functions. + + +* AForge.Video + - Increased buffer size for JPEG/MJEPG stream reader classes. + + - Added ScreenCaptureStream class which captures specified rectangle of the screen. Added demo of its + usage to Player sample application. + + +* AForge.Video.DirechShow + - Updated FilterInfo class, so Name and MonikerString are no longer read only fields but read only properties. + + - Added locking for access to video/snapshot capabilities cache and available inputs cache, so those are + not access simultaneously from multiple threads. + + - Fixed setting crossbar's video input for devices which may have multiple inputs of the same type (like capture boards). + + - Refactoring setting of video/snapshot resolution in VideoCaptureDevice, so user can specify only values + from the list of supported. + + - A workaround introduced for Windows 8 issues when ICaptureGraphBuilder2::RenderStream() fails on 12 bpp format. + Such formats are simply ignored for now. + + - Added code for setting/getting camera properties. + + +* AForge.Video.FFMPEG + - Fixed post build step for AForge.Video.FFMPEG, so it builds fine when path name contains spaces. + + - Updating version of FFMPEG library being used to 2012-01-27 - the last version before API got changed. + + +* AForge.Controls + - Merged the fix which adds property allowing to keep aspect ratio in VideoSourcePlayer. + + +* AForge.Robotics.TeRK + - The Qwerk class is marked as deprecated. + + +* AForge.Robotics.Lego + - The RCXBrick class is marked as deprecated. + + + + +AForge.NET Framework 2.2.4.1 release notes +---------------------------------------- +28.02.2012. + +Version updates and fixes: + +* Fixed registered issues/requests: + - Issue 290: Very noticeable video flicker/blinking using multiple different devices + + +* AForge.Video.DirechShow + - Resetting flag which requires update of crossbar input right after the input type was set. There was a bug + in the code which was resulting setting crossbar input type again and again causing flickering. + + + + +AForge.NET Framework 2.2.4 release notes +---------------------------------------- +23.02.2012. + +Version updates and fixes: + +* Fixed registered issues/requests: + - Issue 53: Video Capture + - Issue 76: Can?t open video camera tv card + - Issue 271: Complex.Phase is slightly incorrect (or at least non-standard) + - Issue 272: Patch for /trunk/Sources/Neuro/Neurons/ActivationNeuron.cs + - Issue 273: static Random doesn't work in multi threading without locking... + - Issue 275: Resilient Backpropagation Learning + - Issue 277: Test if videoCapabilities is null + - Issue 279: Blob and BlobCounter cannot be extended as their constructors are internal. It would be good if we can extend these class. + - Issue 280: DisplayCrossbarPropertPage method for CaptureVideoDevices. + - Issue 281: GetPixel in UnmanagedImage class + - Issue 282: Image is not capturing from Capture Card + - Issue 283: Bilateral filter + + +* AForge.Math + - Fixed Complex.Phase property, so it provides proper value for cases when real part is less than zero. + + +* AForge.Imaging + - Blob'c constructor is made public, so could be reused by using inheritance. + + - Blob.CenterOfGravity property is changed to have AForge.Point type, which is float, so now calculated CoG is more accurate. + + - Added UnmanagedImage.GetPixel() method, which allows to get pixel out of 8/24/32 bpp image. + + - Added UnmanagedImage.SetPixel(int, int, byte) method, which allows setting pixel with all color component set to same value + (for grayscale image this method is more intuitive since there is no RGB-to-grayscale conversion). + + - Added support of 32 bpp RGB (not ARGB) images for BlobCounter. + + - Added implementation of Bilateral smoothing image processing routine. + + - Changing BrightnessCorrection and ContrastCorrection filter to use RGB color space instead of HSL: + 1) It makes those filters faster; + 2) It removes HSL related artifacts related to Hue; + 3) It makes those filters simpler and more straight forward to users. + If someone is unhappy by this change, he can still use HSLLinear filter to get the effect as before. + + +* AForge.Neuro + - Replaced Neuron's static random numbers generator with its thread safe version. + + - Exposed Neuron.Weights, Layer.Neurons, Network.Layers properties instead of using [] accessors. + + - Optimized access to arrays to eliminate bound-checking. + + - Added implementation RProp (Resilient Back Propagation) neural network learning algorithm contributed by Cesar Souza. + + +* AForge.Video.DirechShow + - VideoCaptureDevice is updated to never provide null for VideoCapabilities property. If device does not support video + capabilities or it failed providing them, then the property will return 0 length array, but not null. + + - Added VideoCaptureDevice.DisplayCrossbarPropertyPage() method, which allows showing property page of a crossbar for + the currently running video source (if it provide crossbar configuration). + + - Added VideoCaptureDevice.AvailableCrossbarVideoInputs property, which lists available video inputs of the capture card. + This can be used to select video input to use before running video device using your own UI. + + - Added VideoCaptureDevice.CrossbarVideoInput property, which allows setting video input to use by the video device. + + - VideoCaptureDeviceForm is updated to allow selecting video input for capture cards. + + +* AForge.Video.FFMPEG + - Fixing VideoFileReader and VideoFileWriter classes so they convert file name to UTF8 string before opening file. + + - Fixing signing of AForge.Video.FFMPEG.dll assembly, so now it has valid signature. + + +* AForge.Video.Kinect + - Updating libfreenect library with newer version which is checked out from master branch and built on February 20 2012. + + - Updated Kinect cameras' stopping routines, so they don't block when device was disconnected and user tries to stop cameras. + + - Added Kinect disconnection routine, so when Kinect device gets disconnected, cameras will stop automatically and + specify DeviceLost as a reason. + + - KNOWN ISSUES: It seems like libfreenect's freenect_process_events_timeout() function still blocks when device gets lost + causing some issue on the USB side, making it hardly possible to gracefully stop managed Kinect's status thread. + As a workaround the AForge.NET's code sets thread type to "background", so it does not stop application from exiting. + + +* AForge.Controls + - Updated Chart control so it does not check if points coordinates are in X/Y range of the control when drawing them. + Instead of this the control sets clipping rectangle, so unwanted point/lines are not drawn. + + - Updated VideoSourcePlayer.GetCurrentVideoFrame() method so it returns complete copy of the current frame rather than + the object produced by Bitmap.Clone(). + + + + +AForge.NET Framework 2.2.3 release notes +---------------------------------------- +12.12.2011. + +Version updates and fixes: + +* Fixed registered issues/requests: + - Issue 217: Support for Alpha component in Image.Drawing methods + - Issue 238: Build errors and warnings under VS 2010 + - Issue 251: Cannot build from SVN + - Issue 252: Rotate filter incorrectly calculates the size of the image after rotation + - Issue 261: VideoFileWriter should implement IDisposable + - Issue 262: Convolution filter generating AccessViolationException for 640x480 16bpp gray scale image + - Issue 264: Support for the alpha channel in convolution filters + - Issue 266: GA: Donate thread-safety to chromosomes + - Issue 269: Support basic authentication when connecting to IP Cameras + + +* General + - Updated project/solution files of the framework's sources, tool and unit tests to VS.NET 2010 (C#/C++ express 2010). + + - Updated project/solution files of all sample to use C# express edition 2010. + + +* AForge + - Added ThreadSafeRandom class which is a wrapper for the System.Random class providing thread safety for random numbers + generation methods. + + +* AForge.Imaging + - Added implementation of Run Length Smoothing Algorithm (horizontal and vertical versions). + + - Improved performance of grayscale filters so those are about ~4.5 times faster doing conversion of 24/32 bpp color + images to 8 bpp grayscale images, which is achieved by replacing floating point calculation with integer calculation. + + - Fixing Convolution filter so it processes correctly 16bpp grayscale images. Previously there was a bug causing 16 bpp + grayscale images to be processed as 24/32 colour image. + + - Adding Width and Height properties to IntegralImage. + + - Added IntegralImage.GetHaarXWavelet() and IntegralImage.GetHaarYWavelet(), which calculate horizontal and vertical Haar wavelets. + + - Convolution filter is extended to support processing of alpha channel for 32 bpp and 64 bpp images, which is controlled + by ProcessAlpha property (set to false by default). For filters like Blur, Mean and GaussianBlur the property is set to + true by default, so the alpha channel gets blurred also. + + - Fixed rotation filters, so those don't shift image by one pixel, which was easy to notice when rotating by -90/90 angles. + The bug was caused by the fact that for edge pixels source position was calculated one pixel out of image's bounds. + + - Added support for alpha blending for methods of AForge.Imaging.Drawing class. + + +* AForge.Math + - Updated classes of AForge.Math namespaces to use new ThreadSafeRandom class, so random numbers generation in those + classes becomes thread safe. + + +* AForge.Genetic + - Updated classes of AForge.Genetic namespaces to use new ThreadSafeRandom class, so random numbers generation in those + classes becomes thread safe. + + +* AForge.Video + - Changing IVideoSource.BytesReceived property type from int to long, so it may fit higher values. + + - Fixing AsyncVideoSource so it does full deep cloning of bitmap provided by nested video source instead of using + System.Drawing.Image.Clone(), which does not seem to be reliable. + + - Added ForceBasicAuthentication property for MJPEGStream and JPEGStream classes, which allows to force HTTP basic + authentication by adding required HTTP header. + + +* AForge.Video.FFMPEG + - Allow specifying of video stream bit rate when open video file using VideoFileWriter, so user could trade between + video quality and file size. + + - Implemented IDisposable interface for VideoFileReader and VideoFileWriter classes. + + - Updating external FFMPEG library to version from November 30 2011. Updated AForge.Video.FFMPEG to build fine with + the new FFMPEG build. + + +* AForge.Video.DirectShow + - Fixed BytesReceived property of FileVideoSource and VideoCaptureDevice, so those provide number of provided bytes. + + +* Samples + - Fixing few bugs in Blobs Explorer sample application: + + If convex hull contain 3 point or less, then don't try finding its quadrilateral; + + If object's edge contains only one pixel, then need to draw it individually instead of using Graphics.DrawLines() method. + + + + +AForge.NET Framework 2.2.2 release notes +---------------------------------------- +16.09.2011. + +Version updates and fixes: + +* Fixed registered issues/requests: + - Issue 173: 16bpp greyscale Masked Filter + - Issue 228: Resolution of Bitmap returned by BaseTransformationFilter.Apply is default + - Issue 241: HuePicker control it's not shade color + - Issue 244: Error in BlobCountingObjectsProcessing constructor + - Issue 245: Chart control crashes sample applications for AForge.Neuro + - Issue 246: special character (line 394) Video.VFW\win32.cs + - Issue 249: memory leak in ToManagedImage + - Issue 253: Problem with StDev that return NAN + + +* AForge.Imaging + - Fixing AForge.Imaging.RGB class, so by default alpha channel is initialized with 255 (not transparent). Also updated HSL + and YCbCr converters to set alpha to 255. + + - Added optimized version of Bayer filter, which is optimized for GRBG and BGGR patterns. Compared to generic version, the + optimized version is about 10 times faster. + + - Adding try/catch block into UnmanagedImage.ToManagedImage(), so it handles possible exceptions and disposes managed image + if it was already created. + + - Added ApplyMask image processing routine which applies mask to the specified image - keeps original pixels' values or + sets them to 0 depending on corresponding value in the mask image/array. + + - Added MaskedFiler image processing routine, which allows to apply filter only the part of image specified by mask + (0 values of mask tell that original pixel's value must be kept; otherwise - filtered). + + - Fixed flood fill classes to avoid conversion of pointer to Int32 so they should work fine on 64 bit systems. + + - Setting horizontal/vertical resolution of result image to the same values as source image has. The fix is applied to filters + and image processing routines which accept Bitmap as parameter and return Bitmap as result. Obviously it can not copy DPI + settings when image processing routine is applied to BitmapData or UnmanagedImage. + + +* AForge.Math + - Added fix to PointsCloud.FindQuadrilateralCorners() so it does provide 2 same corners in the case when both 3rd and 4th + potential corners are very close to the line connecting 1st and 2nd corner. + + - Fixed bug in Matrix3x3 add operator, so it adds instead of doing subtraction (silly bug). + + - Adding addition and subtraction operators/methods for Matrix4x4. + + - Exposing FocalLength property for POSIT and CoplanarPosit classes so it could be set not only using constructor. + + - Added Histogram.TotalCount, which represents total count of values contributed to the histogram. + + - Marked both Histogram and ContinuousHistogram as serializable. + + - Changing algorithm for standard deviation calculation from single-pass to two-pass in order to minimize numerical errors. + + +* AForge.Vision + - Fixed one of the constructors for BlobCountingObjectsProcessing so it passes its parameter (highlighting motion detection) + further to another constructor. + + - Extended motion detectors to support 8 bpp grayscale image for motion detection. + + +* AForge.Video.DirectShow + - Moving VideoCaptureDeviceForm from Player sample application to AForge.Video.DirectShow namespace and beautifying it a bit. + Now the form can be reused in other applications, which require selection of local video devices. + + - Updating COM interop definition for few interfaces of DirectShow (should get more stable in some cases). + + +* AForge.Video.Ximea + - Added additional camera parameters/enumerations for XIMEA cameras. + + +* AForge.Controls + - Updating some AForge.Controls classes to use AForge.Imaging instead of internal tools since this assembly references + AForge.Imaging.dll anyway. + + - Fixing few bugs in Chart control: fixed cloning of data input data and fixed drawing of dots series type. + + - Added PlayingFinished event to VideoSourcePlayer, so users could track video stopping directly through the control + without subscribing to video source events. + + +* Tools + - Adding AForge.DebuggerVisualizers tool assembly, which allows visualizing Image, BitmapData, UnmanagedBitmap + and Histogram objects during debugging. + + +* Samples + - Fixing Motion Detector sample to perform safe update of UI (avoid cross thread access). + + + + +AForge.NET Framework 2.2.1 release notes +---------------------------------------- +03.08.2011. + +Version updates and fixes: + +* Fixed registered issues/requests: + - Issue 236: Compile time warnings related to bad XML comments + + +* AForge.Math + - Fixing == operator for Line and LineSegment classes, so it does not cause exception when line is compared with null. + + + + +AForge.NET Framework 2.2.0 release notes +---------------------------------------- +28.07.2011. + +Version updates and fixes: + +* Fixed registered issues/requests: + - Issue 140: Proxy support for JPEGStream\MJPEGStream + - Issue 164: Converting an Image between Rectangular and Polar Coordinates + - Issue 176: Image Statistics (histogram) mask + - Issue 180: Mode function for Aforge.Math Statistics class + - Issue 184: using IPPrototyper plugins in other applications + - Issue 185: Equals method + - Issue 187: Fix grouping of video capabilities + - Issue 188: VideoCaptureDevice.DesiredFrameSize Behaves Inconsistently + - Issue 189: Point Grey camera support + - Issue 191: Add VLC support to MJPEGStream class + - Issue 192: File locked in AForge.Imaging.Formats.ImageDecoder.DecodeFromFile + - Issue 193: Lego NXT HiTechnic color and compass sensor + - Issue 194: Please provide type converters for NXTBrick internal structs + - Issue 195: Provide constructor with arguments allowing to initialize NXTBrick internal structs + - Issue 196: Provide a way to listen to raw protocol (NXT brick) + - Issue 197: MJPEGStream.cs enhancements + - Issue 198: mjpegstream not stoping + - Issue 199: Conversion operators for IntRange and DoubleRange objects + - Issue 200: Add support for microsoft lifecam (and potentially other webcams) - directshow wrapper + - Issue 201: Consider merging HuePicker from IPLab into AForge.NET Framework + - Issue 207: Debugging issues in Horizontalintensitystatistics and verticalintensitystatistics + - Issue 209: VerticalIntensityStatics.cs IsGrayScale property + - Issue 210: Improve NXTBrick.SensorType documentation + - Issue 211: Improve NXTBrick.SensorMode documentation + - Issue 212: Enable reset motor relative position + - Issue 213: Avoid PInvokeStackImbalance errors + - Issue 215: Current trunk has build errors + - Issue 216: Camera is not working + - Issue 218: Undocumented InvalidImagePropertiesException throw + - Issue 219: Provice additional (fast) methods to communicate with NXT brick + - Issue 222: Add MPEG-2 encoding to Video.FFMPEG.VideoWriter + - Issue 223: Marking {Int|Double}Range as Serializable + - Issue 226: FFmpeg - write video frames with a specific timestamp + - Issue 227: AccessViolationException when PictureBox displaying 16bpc image + - Issue 229: 16-bit greyscale/48-bit RGB support in CanvasMove + - Issue 230: 16-bit greyscale/48-bit RGB support in RotateNearestNeighbor.cs + - Issue 231: Misspelled comment + + +* General + - Adding AForge.Video.FFMPEG namespaces, which provides classes allowing to read/write video file through + FFmpeg library API. The code is experimental so far and is going to be extend. When extended it is supposed to + become replacement for AForge.Video.VFW namespace someday. + + - Adding AForge.Video.Kinect namespaces containing classes to get access to Microsoft Xbox Kinect device. + + - Adding AForge.Video.Ximea namespace, which provides access to XIMEA video camera through their native + API (m3api.dll) + + - Removing all use cases of lock(this) and replacing them with locking a dummy object. + + - Updated interoping of memcpy() and memset() to use Cdecl calling convention. + + - Avoiding casting of IntPtr.ToPointer() to (int), which causes issues on 64 bit systems. Instead of it is casted to (byte*). + + - Updated "Build All.sln" solution file, so it has "Release" and "Release Complete" configuration. "Release" is aimed + for most users who want to build the framework. It will build all except AForge.Robotics.TeRK, which requires installation + of ICE framework. "Release Complete" is aimed only for those who build release or do something with TeRK. + + +* AForge + - Adding Point structure, which contains X/Y coordinate of float type. Adding Range structure, which is range between + min/max of float type. Changing all AForge.NET framework classes and samples to work with Point/Range instead of + DoublePoint/DoubleRange, which are left for some applications requiring higher precision. + + - {Int|Double}Range as well as {Int|Double}Point are marked [Serializable]. + + - Added AForge.DeviceBusyException exception, which could be thrown in cases when multiple access to the same device is not allowed. + + - Added AForge.DeviceErrorException exception to report about possible errors in some devices. + + +* AForge.Imaging + - Added TransformToPolar image processing routine which transforms source image to polar coordinates. Produced effect is + similar to the one available in GIMP as "Polar Coordinates" distortion filter. The new class provides similar properties + as configuration options in GIMP. + + - Added TransformFromPolar which does transformation from polar coordinates to rectangle. + + - Improving performance of EuclideanColorFiltering image processing routine. + + - Added UnmanagedImage.CollectActivePixels() method, which returns list of pixels' coordinates having none black color. + + - Adding UnmanagedImage.SetPixel() and UnmanagedImage.SetPixels() methods, which are nice to have is some case for visualization + of some points. SetPixel() sets single pixel, but SetPixels() sets list of pixels. + + - Statistics classes now throw InvalidImagePropertiesException exception if user access invalid histogram - gray histogram + for color image or color histograms for grayscale image. + + - Fixed IsGrayscale property for VerticalIntensityStatistics, HorizontalIntensityStatistics and ImageStatistics classes, + so it returns correct value. + + - Added Ordered Color Dithering image processing routine as described on Wikipedia: http://en.wikipedia.org/wiki/Ordered_dithering + + - Updated ImageStatistics, ImageStatisticsHSL and ImageStatisticsYCbCr classes so they can gather statistics over image area, + which can be specified with a mask (8bpp image or byte[,] array). + + - Updating documentation of BlobCounter mentioned that InvalidImagePropertiesException exception can be thrown if provided + image is 1 pixel wide only. It should be 2 pixels wide at least. + + - Updated UnmanagedImage.ToManagedImage() method to copy entire image at once if the source and destination strides are equal. + + - Adding UnmanagedImage.ToManagedImage(bool) which allows specifying if user wants to get managed copy of the unmanaged + image or just a wrapper which depends on the managed image. + + - Added Bayer filter routine, which creates color image out of grayscale image produced by image sensor built with + Bayer color matrix. + + - RotateNearestNeighbor image processing routine is extended to support 16 bpp grayscale images and 48 bpp color images. + + - CanvasMove is extended to support 16 bpp grayscale and 48/64 bpp color images. + + +* AForge.Imaging.Formats + - Updated ImageDecoder.DecodeFromFile() to load load standard image formats (BMP, JPG, PNG, etc.) through memory stream + instead of using standard .NET's FromFile( string fileName ) to avoid locking of the file. + + +* AForge.Math + - Adding Math.Vector3 structure which provides some operations on 3D vectors. + + - Adding Vector4 structure, which provides some operation with 4D vectors. + + - Adding Matrix3x3 structure which provides some operations on 3x3 matrices. + + - Adding implementation of POSIT algorithm - 3D pose estimation algorithm described by Daniel DeMenthon and Larry Davis in + the "Model-Based Object Pose in 25 Lines of Code". + + - Adding CoplanarPosit algorithm's implementation, which is an algorithm for estimating 3D pose of a model described by coplanar points. + + - Added AForge.Math.Statistics.Mode() method to calculate mode value of the specified histogram array. + + - Added equality and inequality operator for Line and LineSegment classes, as well as Equals() and GetHashCode() methods. + + - Fixing a bug in GrahamConvexHull, which was modifying input list of points. Some unit tests were added for GrahamConvexHull. + + - Fixed Mean(), StdDev() and Entropy() methods of AForge.Math.Statistics, so they don't return NaN when empty histogram (with 0 hits) is provided. + + - Fixing ContinuousHistogram class, so Mean and StdDev equals to zero if empty histogram (with zero hits) is provided. + + +* AForge.Video + - Minor update to AsyncVideoSource class - changing manual reset event to auto reset. + + - Added Proxy property to both JPEGStream and MJPEGStream classes, which allow user to specify proxy server to use. + + - Added support for "application/octet-stream" content type into MJPEGStream class, so it is possible to get access to VLC + streaming of web camera, for example (in the case MJPEG transcoding is used in VLC). + + - Setting stream's read time-out to the same value as request's time-out in MJPEGStream and JPEGStream. + + - Report to clients about every exception occurred in JPEGStream and MJPEGStream classes. Only ApplicationException is hidden in + MJPEGStream class, which is thrown internally only in one case. All the rest will be sent to user for notification. + + - Added AFore.Video.VideoException exception, which will be used further by some video classes instead of ApplicationException. + + - Improving a bit reaction on thread aborting for JPEGStream and MJPEGStream classes, so they return faster when ThreadAbortException + exception is received. + + - Added one extra reason of video finishing, which is ReasonToFinishPlaying.VideoSourceError. + + - Improving frame interval processing if a pause needs to be done between video frames. + + +* AForge.Video.DirectShow + - Updating VideoCapabilities class to provide multiple supported FPS rates for a particular resolution. + + - Adding try/catch blocks around getting IAMStreamConfig interface, which fails on Point Grey cameras. So with this extra + guard these cameras should work fine now. + + - Added monitoring for EC_DEVICE_LOST event in VideoCaptureDevice, so it stops video capturing when device is unplugged. + User is notified through PlayingFinished event. + + - Updating media event's DirectShow wrapper, so events are correctly detected on 64-bit systems (eventû like device lost + and end of video file). + + - VideoCaptureDevice is extended to support still image snapshots, which can be made using camera's shutter button or by + simulating the trigger. The snapshots are provided through the new SnapshotFrame event. Capabilities of snapshots can be checked + using SnapshotCapabilities property and desired snapshot size can be set using DesiredSnapshotSize property. + + - When desired video size is set, perform search of complete media type structure and set it as it is configured when enumerating + capabilities (fixes thes issue with Microsoft's LifeCam). + + - Added try/catch block around retrieving IAMVideoControl interface, since it seems like some USB camera drivers don't support this interface. + + - Updated signature of memcpy() in AForge.Video.DirectShow so it uses byte* instead of int. Also ToPointer() is used + with IntPtr instead of ToInt32(). Should get better on x64 systems now. + + +* AForge.Video.VFW + - Updating exception types thrown by AVIReader and AVIWriter, so they are different for different type of exceptions. + + +* AForge.Robotics.Lego + - Added constructor for NXTBrick.MotorState structure, so it is "easer" to initialize it from user's code. + + - Turned NXT structures into classes and provided properties for them (many of them are read-only since those are supposed to + be set by framework, not by user). + + - NXTBrick.SendCommand() is made public, so users may send their own custom messages. + + - Added NXTBrick.MessageRead and NXTBrick.MessageSent events, so a communication listener could be implemented. + + - NXTBrick class is extended with 3 extra method: ReadHiTechnicColorSensor(), ReadHiTechnicCompassSensor() and + ReadHiTechnicAccelerationTiltSensor(), which read HiTechnic's color, compass and acceleration sensors. + + - NXTBrick.ResetMotorPosition() method is extended with extra parameter, which allows to reset either relative or absolute + motor's position. + + - Updated documentation of NXTBrick.SensorType enumeration. + + - Improved documentation for NXTBrick.SensorMode enumeration. + + - Some improvements for communication with Lego NXT brick, see ticket #219 + + - Added overloads for PlayTone(), SetMotorState(), ResetMotorPosition(), SetSensorMode(), ClearSensor() and LsWrite() methods + of NXTBrick class, which can send commands without waiting for reply - faster versions. + + +* AForge.Controls + - VideoSourcePlayer is extended to support cameras providing 16 bpp grayscale or 48/64 bpp color image. + + - Merged HuePicker control from IPLab project into the AForge.NET framework. Some polishing of the class and its documentation + was done. + + - Making sure VideoSourcePlayer control gets resized if image from video source changes its size. + + - Fixing VideoSourcePlayer so it does not cause dead lock if user does access to UI using Invoke() in NewFrame event handler + (moving NewFrame event firing out of lock block). + + - Making sure that Chart control displays only data which are in the configure x/Y range. Also updating Y range if required + when new X range is set. + + +* Tools + - Added check for IPPrototyper's window position stored in configuration file. If window outside of the screen, then use its + default location. Window may get outside if the application was used on a system with multiple screens last time and the it + is started again when one of the screens got disconnected. + + - Created separate AForge.Imaging.IPPrototyper assembly, which holds interfaces for image processing prototyping and default + implementation of IImageProcessingLog interface. Updated IPPrototyper tool and sample application to accommodate these changes. + + +* Samples + - Adding Snapshot Maker sample application, which demonstrates recently added feature for making snapshots using DirectShow + device (USB camera). + + - Adding new sample applications, which demonstrate usage of Posit and CoplanarPosit algorithms recently added to + AForge.Math.Geometry namespace. + + - Adding Kinect Capture sample application which demonstrates access to MS Xbox Kinect device. + + - Updated NXT sample application to demonstrates MessageSent and MessageRead events provided by NXT brick. + + - Adding sample application demonstrating access to XIMEA camera. + + - Improving FPS counter for "Player" and "Two Camera Test sample" applications. + + + + +AForge.NET Framework 2.1.5 release notes +---------------------------------------- +11.01.2011. + +!! This version has backward incompatibility with the previous version (see details below) !!! + +Version updates and fixes: + +* Fixed registered issues/requests: + - Issue 20: Color Reduction functionality + - Issue 151: Add support for 32-bits ARGB images in the CornersMarker filter + - Issue 152: Slow performance of PermutationChromosome.CreateChildUsingCrossover + - Issue 154: PointedColorFloodFill causing Stack Overflow + - Issue 155: Deadlock with out-of-order calling of VideoSourcePlayer.WaitForStop and VideoSourcePlayer.SignalToStop. + - Issue 157: MJPEGStream could handle incorrect boundary values + - Issue 158: XML documentation files are not included on default installation + - Issue 160: Blob Detection problem with certain aspect ratio rectangles + - Issue 166: Find line intersections + - Issue 167: Math.Tools.IsPowerOf2 returns true when given 0 + - Issue 169: Distance and Similarity metrics + - Issue 174: More Line construction options + - Issue 175: LineSegment.DistanceToPoint and GetIntersectionWith functions + - Issue 178: HueModifier does not work with 32bpp images + - Issue 181: Bicubic resize kernel is badly implemented + - Issue 182: Make PointsCloud accept a wider variety of arguments + + +* AForge + - Fixing bug in IntRange.IsOverlapping() and DoubleRange.IsOverlapping(), when these methods report + "false" (no overlapping) in the case if specified range completely covers and wider than the range + of the instance which method is invoked. + + - Added equality and inequality operators for IntPoint and DoublePoint. + + +*AForge.Math + - Added a check for greater than 0 in IsPowerOf2() function. It will return false for everything which is <= 0. + + - Introducing Line class in AForge.Math.Geometry, which is supposed to keep lines' related methods. + + - Committing contributed code, which is about distance and similarity metrics. New classes are placed into + AForge.Math.Metrics namespace. + + - Fixing PointsCloud.FindQuadrilateralCorners() so it does not return 4 corners in some cases, where 2 of them are the same. + + - Fixes to PointsCloud.FindQuadrilateralCorners(): + 1) Fixing the issue of detecting flat rectangles with high aspect ratio between adjacent sides; + 2) Adding PointsCloud.QuadrilateralRelativeDistortionLimit static property, so user could tweak distortion limit + if he understands what he does. + + - Changed methods of PointsCloud class to accept IEnumerable instead of List. Only Shift() + method is changed to accept IList. + + +* AForge.Imaging + - Adding support for custom blobs' filtering routines, which implement IBlobsFilter interface. + + - Improved automatic calculation of new image's size which is the result of quadrilateral transformation. + + - Image.FormatImage() is marked as deprecated and Image.Clone() should be used instead with specifying desired pixel format. + + - Fixing Convolution image processing filter to copy alpha channel values as they are for 32 bpp images. + + - Added support of 32-bit images to CornersMarker and MoravecCornersDetector. + + - Changing implementation of PointedColorFloodFill to use queue instead of stack, so the image processing routine + will not generate stack overflow any more. It is speed is a bit reduced as a result of this, but it may get + noticeable only when processing thousands of images (depends on image size of course). + + - Adding FillHoles image processing routine, which allows to fill black holes in white objects in binary images. + + - Added median cut color quantization algorithms. Also added helper ColorImageQuantizer class, which simplifies calculation + of reduced color table for images or their re-coloring. + + - Adding color dithering image processing routines, which are placed into AForge.Imaging.ColorReduction namespace. + + - Small improvement in Integral Image calculation for minor calculation speed-up. + + - Adding local thresholding routine described by Derek Bradley and Gerhard Roth in the "Adaptive Thresholding Using + the Integral Image" paper (see BradleyLocalThresholding class). + + - Adding ThresholdedDifference and ThresholdedEuclideanDifference, which calculate threshold difference of two images + (one class uses Manhattan distance to calculate difference between pixel values, but another class uses Euclidean distance). + + - Changing bicubic kernel for resize and rotation image processing routines to the one described on Wikipedia + (coefficient "a" is set to -0.5). + + - !! Backward compatibility breaking change !! Changing type of Blob.Image from Bitmap to UnmanagedImage, since in + most cases extracting of blob's image is required for its further processing, but not just for displaying + (.NET's Bitmap type does not make any sense doing image processing). + + - Fixed HueModifier image processing routine to process correctly 32 bpp images (using correct pixel size value). + + +* AForge.Video + - Updating MJPEGStream video source class to remove double quotes from start/end of boundary, which can + be added by some IP cameras. + + - Adding AsyncVideoSource, which is a proxy video source for asynchronous processing of another nested video source. + + - Improving boundary parsing in MJPEGStream video source class, so it accepts more cameras which tend to have their + own specifics in MJPEG stream. + + +* AForge.Video.DirectShow + - Fixed bug in disposing of DirectShow AMMediaType structure. The bug was introduced in 2.1.4 version. + + +* AForge.Genetic + - Modified PermutationChromosome.CreateChildUsingCrossover() to use arrays for fast lookup of genes' + indexes in parents' chromosomes. + + +* AForge.Controls + - Added check for cross-thread access to most methods/properties (those which are not allowed to be accessed + from another thread) of VideoSourcePlayer class. Lock is still kept in some methods/properties, which access + video frame (this must be protected anyway). + + +* IPPrototyper + - Adding AutoSize size mode for picture box, which is nice to have when processing big images, which may need scrolling. + + - Recent folders list size is increased to 7. + + + + +AForge.NET Framework 2.1.4 release notes +---------------------------------------- +01.09.2010. + + +Version updates and fixes: + +* Fixed registered issues/requests: + - Issue 139: Possible Type Improvement in CannyEdgeDetector.cs + - Issue 142: Behaviour mismatch between SobelEdgeDetector.Apply and SobelEdgeDetector.ApplyInPlace + - Issue 143: Off-by-one error in PointsCloud.GetCenterOfGravity + - Issue 147: Perform SimpleQuadrilateralTransformation on entire image. + - Issue 149: Round DoublePoint to IntPoint, rather than truncating. + + +* General + - Adding some unit test based on Gallio Automation Platform. The unit tests mostly cover new + recently added features for now. See "Unit Tests\Read Me.txt" for additional information. + + - Adding initial version of IPPrototyper application (Image Processing Prototyper) - a tool which is + aimed to help prototyping/testing of image processing and computer vision routines. + + +* AForge + - Added IntPoint.EuclideanNorm() and DoublePoint.EuclideanNorm() methods, which calculate point's + distance to (0, 0) point. + + - Added DoublePoint.Round() method to round point to IntPoint using Math.Round(). + + +* AForge.Math + - Switching GeometryTools class to be public, which contains few tool methods to calculate angle + between two vectors and angle between two lines. + + - Fixing bug of GetCenterOfGravity(), where first point was not taken into account. + + +* AForge.Imaging + - Fixing an old somehow survived typo - changing "FormatTransalations" to "FormatTranslations". + This change may affect those users, who use the property. + + - Fixing a bug in line drawing (Drawing.Line()) - avoiding division by zero. + + - Adding UnmanagedImage.Collect8bppPixelValues() and UnmanagedImage.Collect16bppPixelValues() methods + to collect pixels' values from the list of specified coordinates. + + - Adding SimpleQuadrilateralTransformation as replacement of QuadrilateralTransformationBilinear and + QuadrilateralTransformationNearestNeighbor filters. The new filter does transformation as with + interpolation, as without. + + - QuadrilateralTransformationBilinear and QuadrilateralTransformationNearestNeighbor are marked as deprecated + and generate warning if used. But still work. + + - BaseQuadrilateralTransformationFilter is removed as no longer required. + + - Adding QuadrilateralTransformation - an implementation of quadrilateral transformation based on homogeneous + transformation. + + - Adding BackwardQuadrilateralTransformation - an image processing routine to transform given source + image into specified quadrilateral area of destination image. + + - Putting black rectangle around processing area, so result of edge detectors look the same in the case + if Apply() or ApplyInPlace() methods are called (ApplyInPlace() was leaving some garbage from original image). + + - Extending DocumentSkewChecker and HoughLineTransformation to allow processing of specified rectangle only, + so lines could be searched only in the area of interest. + + - DocumentSkewChecker: Replacing MinBeta and MaxBeta properties with single MaxSkewToDetect property, + which covers both. Also removing cycled checking of lines' angles, since it is not required due to + limited range of detection. + + +* AForge.Video.DirectShow + - Fixing disposing of AMMediaType. + + - Improving FileVideoSource, so it can play video files which have audio stream as their first stream + (which becomes first output pin of IBaseFilter). First output pin was always taken before and used for + connection with input pin of sample grabber. However it was failing in those cases, when first output pin + had audio type. Now the code is changed to iterate through source's output pins searching for one, which + can be connected with sample grabber. + + - Changing DirectShow related classes to use IMediaControl::Stop() method instead of IMediaControl::StopWhenReady() + which allows data queuing, which does not seem to be required. + + +* AForge.Controls + - Adding addition "request to stop" volatile boolean variable in VideoSourcePlayer to avoid trying + handle NewFrame event when WaitForStop() is already invoked, so rare deadlock is avoided. + + +* Samples + - Adding "IPPrototyper Sample" application - demonstrates usage of IPPrototype tool. + + + + +AForge.NET Framework 2.1.3 release notes +---------------------------------------- +01.07.2010. + + +Version updates and fixes: + +* Fixed registered issues/requests: + - Issue 132: Adjustable Threshold for blob counter + - Issue 135: Convert from Format16bppGrayScale to Format8bppIndexed is missing + - Issue 136: Enhancement to disable reference clock on DirectShow graphs + - Issue 137: Improvement request for svs + - Issue 138: Enable amendment of Population size on the fly + + +* AForge.Math + - Adding interface for shape optimizers its 3 implementations: + 1) FlatAnglesOptimizer - shape optimizer, which removes obtuse angles (close + to flat) from a shape; + 2) LineStraighteningOptimizer - shape optimizer, which removes points within + close range to shapes' body; + 3) ClosePointsMergingOptimizer - shape optimizer, which merges points within + close distance to each other. + + - Added SimpleShapeChecker class for checking simple geometrical shapes. + + - Bug fix in GrahamConvexHull - don't process points with same coordinates as the first point. + + - Few updates to PointsCloud.FindQuadrilateralCorners(): + 1) Bug fix - wrong points were used to compare distances between points; + 2) Using relative distortion limit instead of hard-coded constants for checking if certain + points are far away enough; + 3) Searching first point as the furthest from shape's centre, instead of from (0, 0) point + of coordinates system. + + +* AForge.Imaging + - Fixing SusanCornersDetector - don't dispose internal grey image in the case if + greyscale image was given as input. + + - Increasing size limits for convolution's kernel size and structuring element of + morphological operators. The limit is set to 99. The benefit of such big kernels + is not clear, but if users want it and ready to wait until such lengthy image processing + is done, then why not to give it to them. + + - Added background threshold property to blob counters, so thresholding step could be + skipped in many cases. + + - Adding LevelsLinear16bpp image processing filter, which is similar to LevelsLinear, + but designed for images with 16 bpp planes - 16 bpp grayscale or 48/64 bpp images. + + - Added two methods into AForge.Imaging.Image class: Convert16bppTo8bpp() and Convert8bppTo16bpp() + which perform conversion of images with 16 bpp color planes to images with 8 bpp color planes + and vice versa. + + - Few minor improvements to CannyEdgeDetector: changed from double to int type for those + variables, which are really integer; removed incrementing index variable, which is not used + inside of a loop; clarified documentation about hysteresis. + + +* AForge.Video + - Putting check of IsRunning property into Start() method of all video sources, so + it checks if video source is really running or not. Checking thread variable for null + was not a good check if user calls SignalToStop() without further WaitForStop(). + + +* AForge.Video.DirectShow + - Merging the code contributed by Jeremy Noring, which allows to disable reference clock + of a DirectShow graph allowing to process video files as fast as possible. + + +* AForge.Genetic + - Fixing Population.FindBestChromosome() method to make sure that a chromosome will be selected + even if all chromosome have fitness value equal to 0. + + - Added Population.Resize() method which allows to resize genetic population during its lifetime. + + +* AForge.Robotics.Surveyor + - Added SVS.ServosBank.Bank0, so users could control servos connected to TMR2-1 and TMR3-1 of + SVS board (in the case of some custom set-up). + + +* Samples + - Added sample application to demonstrate usage of SimpleShapeChecker class. + + + + +AForge.NET Framework 2.1.2 release notes +---------------------------------------- +10.03.2010. + + +Version updates and fixes: + +* Fixed registered issues/requests: + - Issue 58: Image Warping + - Issue 122: NOT operator in Fuzzy Library. + - Issue 125: DisplayPropertyPage() method brings up locked properties panel + - Issue 126: Documentation to BlobCounterBase Class + - Issue 127: DirectShow video player cannot play .wmv + - Issue 128: COM objects not freed in DirectShow player + - Issue 129: GaussianGenerator constructor ignores the seed value + + +* AForge + - Adding addition, subtraction, multiplication and division operators between IntPoint/DoublePoint and scalar values. + + - Added operator for explicit casting of DoublePoint to IntPoint. + + - Added operator for implicit casting of IntPoint to DoublePoint, so integer points could be used in operations with + double precision points. + + +* AForge.Imaging + - Fixed a rounding bug in Hough Line Transformation, causing unnecessary doubling of the Hough transformation + values near zero radius. + + - HoughCircleTransformation is update to return zero length array of circles instead of null in the case if no + circles detected. + + - Added BlobCounterBase.GetBlobsEdgePoints() method, which return unsorted list of blob's edge points. Produces + similar result as GetBlobsLeftAndRightEdges() combined with GetBlobsTopAndBottomEdges(), but each point occurs + only once in the list. The method is useful for shape analyzers, convex hull routines, etc. + + - Adding WaterWave filter - image processing filter implementing simple water wave effect. + + - Added ImageWarp image processing filter, which sets pixels in destination image to values from source image taken + with specified offset. + + - Added two more properties into Blob class, which are calculated by BlobCounterBase automatically - mean and standard + deviation of blob's color. + + +* AForge.Math + - Add PointsCloud.GetBoundingRectangle() method to search for minimum/maximum X/Y coordinates in the specified + list of points. + + - Update constructor of GaussianGenerator to pass specified seed to StandardGenerator, which was previously ignored. + + - Fixed bug in ContinuousHistogram class, which was causing wrong calculation of mean and std.dev. values after + calling Update() method. + + - Optimizing calculation of standard deviation by doing single pass through histogram array instead of two as it was before. + + +* AForge.Fuzzy + - "NOT" operator is implemented for fuzzy rules. + + +* AForge.Controls + - Removing generation of exception in the case if user tries to change video source for VideoSourcePlayer control + without stopping currently played. User may want to control video starting and stopping on his own, so control + should not add any restrictions regarding this. + + - Adding ManipulatorColor to AForge.Controls namespace, so it is no longer required to duplicate sources in every + robotics sample or other projects. + + - Adding SliderControl control, which allows dragging manipulator in [-1, 1] range. + + - Adding AForge.Controls.Joystick class, which represents a simple wrapper around Win32 joystick API. + + +* AForge.Video + - Fixing MJPEGStream to skip clients' notification, if the video source was requested to stop. + + - Adding support for AirLink IP cameras, which are not very accurate with HTTP standard (fix contributed by Ivan Farkas). + + +* AForge.Video.DirectShow + - Fixing some memory leaks (COM objects) in AForge.Video.DirectShow. + + - Changing the way of displaying camera's property: + 1) If VideoCaptureDevice is already running, then request for property page displaying is passed to worker thread; + 2) Otherwise local temporary source object is created to display property page. + + - Using IGraphBuilder.AddSourceFilter( fileName, ... ) method for adding source filter for playing video files + instead of creating AsyncReader manually and adding it to the graph. The fix allows playing such video files + like WMV, which did not play before with AForge.Video.DirectShow.FileVideoSource. + + +* AForge.Robotics.Surveyor + - Fixing bug in SVS.Disconnect() method - wrong object was accessed for aborting right camera. + + - Adding check to make sure stopEvent is not null, which may happen when tread is aborted (solves rare + NullReferenceException, which may happen on disconnecting from SRV-1). + + + + +AForge.NET Framework 2.1.1 release notes +---------------------------------------- +24.01.2010. + + +Version updates and fixes: + +* Fixed registered issues/requests: + - Issue 113: DisplayPropertyPage in directshow in vista/Windows 7 fails + - Issue 114: Division by zero + - Issue 115: Otsu thresholding enhancement + - Issue 116: DoublePoint + - Issue 118: Crash due to missing olepro32.dll + - Issue 121: RotateBilinear optimization + + +* General + - Updating titles of all assemblies, so they look nice if they are registered on the .NET page of "Add Reference" + dialog in VS.NET. + - Updating install script - after installation of AForge.NET Framework its assemblies will be seen on .NET page + of "Add Reference" dialog in VS.NET + + +* AForge + - Fixed operator- for DoublePoint and IntPoint classes. + + +* AForge.Imaging + - Added Image.FromFile() method to workaround the issue of standard .NET method, which locks file until image + object is disposed. + + - Added CalculateThreshold() method into 3 adaptive thresholding classes, which allows to calculate threshold + only without applying it to image. + + - Some optimizations are done for RotateBilinear by putting some calculations outside of the x-loop. + + +* AForge.Robotics.Surveyor + - Adding method to access I2C devices connected to SRV-1/SVS robots. + + - Removing new line check for replies which start with '##'. The SRV-1 protocol is real pain to work with. + + +* AForge.Video.DirectShow + - Replacing interop usage of olepro32.dll to oleaut32.dll for OleCreatePropertyFrame() API call, so accessing + this API call works correctly on Windows 64-bit version. + + +* AForge.Controls + - Added check for max equals to zero to avoid painting histogram when there is nothing to paint actually. + + + + +AForge.NET Framework 2.1.0 release notes +---------------------------------------- +05.11.2009. + + +Version updates and fixes: + +* Fixed registered issues/requests: + - Issue 106: DisplayPropertyPage problem - Filter can't create twice + - Issue 113: DisplayPropertyPage in directshow in vista/Windows 7 fails + + +* General + - Added new AForge.Robotics.Surveyor namespace containing classes to manipulate Surveyor's + SRV-1 Blackfin robot and SVS (Stereo Vision System) board. + + - Added new AForge.Math.Geometry namespace containing some geometry related. + + +* AForge + - Adding IntPoint structure as alternative to .NET's System.Drawing.Point. DoublePoint is updated + to be similar to IntPoint. + + +* AForge.Imaging + - Added StereoAnaglyph image processing filter to create anaglyph images from 2 images of the + same scene taken from a bit different points. + + - Adding Drawing.Polygon() and Drawing.Polyline() for drawing polygons and polylines on unmanaged images. + + - Added BlobPosition property to ExtractBiggestBlob filter, which tells position of the extracted blob. + + - Added QuadrilateralFinder class to search for corners of quadrilateral area in the specified image. + + - Added QuadrilateralTransformationNearestNeighbor and QuadrilateralTransformationBilinear classes, which perform + quadrilateral area transformation to rectangular. + + - BlobCounterBase class is extended with GetBlobsLeftAndRightEdges() and GetBlobsTopAndBottomEdges() methods, which + provide edge points of a blob. These routines are very useful with new AForge.Math.Geometry routines, which allow + finding convex hull and quadrilateral corners. + + - BlobCounter and RecursiveBlobCounter are updated to be able to process color images as well (24 and 32 bpp). + + - BlobsFiltering, ExtractBiggestBlob and ConnectedComponentsLabeling classes were updated to support color images. + + - Added new properties for Blob class: Area, Fullness, CenterOfGravity. + + - BlobCounterBase is updated to provide sorting by Area. + + +* AForge.Math.Geometry + - Added PointsCloud tool class, which includes set of method to work with collection of points ("clouds"). + These methods include: getting furthest point from a reference point; getting furthest point from + specified line; finding quadrilateral corners for the specified set of points. + + - Added Graham scan algorithm for searching convex hull of the specfied set of points. + + +* AForge.Robotics.Surveyor + - Added SRV1 class - allows to manipulate Surveyor's SRV-1 Blackfin robot. + + - Added SVS class - allows to manipulate Surveyor's SVS bard. + + - Added SRV1Camera class - allows to get continuous video feeds from SRV-1 and SVS robots. + + +* AForge.Video + - Added possibility to configure HTTP User Agent for MJPEG requests. By default it is set + to "Mozilla/5.0". + + +* AForge.Video.DirectShow + - In the case if camera's driver does not allow several copies of video source object, we pass the request + for displaying property page to background thread, which deals with video capture. Otherwise we create second + source object and use it as before. (fixing 106 and 113) + + +* Samples + - Added SVS Test sample application, which allows to get video from Surveyor's SVS board, + show stereo anaglyphs for it and drive the robot. + + - Added SRV-1 Test sample application, which allows to get robot's video and drive it. + + - Added Blobs Explorer sample application, which demonstrates the process of finding separate + blobs, getting their properties, convex hull, etc. + + - Fixed build issue of TSP sample demonstrating Genetic Algorithms. + + + + +AForge.NET Framework 2.0.1 release notes +---------------------------------------- +19.09.2009. + + +Version updates and fixes: + +* Fixed registered issues/requests: + - Issue 56: Changing activation functions + - Issue 97: Request: Missing an event for when clip is done running + - Issue 109: Comments for Hough line transform + - Issue 110: GetMostIntensiveLines(count) returns null + - Issue 112: Provide binaries as a .zip file + + +* AForge + - Added zero initialization of allocated unmanaged images, since Marshal.AllocHGlobal() does not + care about it. + + - Moving exceptions, which are related to connections to device, from AForge.Robotics.TeRK to AForge namespace, + so they could be reused in other namespaces as well. + + +* AForge.Imaging + - Fixed UnmanagedImage.FromManagedImage() method - it was allocating unmanaged image, but was not + copying managed image to it. + + - Added documentation to UnmanagedImage to clarify its purpose. + + - Bug fix in SimplePosterization image processing filter. + + - Added black rectangle drawing in CannyEdgeDetector to remove unprocessed pixels. This is required in + the case if the filter is applied in-place. + + - Created set of predefined common grayscaling algorithms, which are available as read only instances of + Grayscale class. These predefined instances are available in Grayscale.CommonAlgorithms class. Old + classes like GrayscaleBT709, GrayscaleRMY, GrayscaleY are marked as obsolete. + + - Both GetMostIntensiveLines() and GetLinesByRelativeIntensity() methods in HoughLineTransformation class + were updated to return array of zero length instead of null in the case when there are no lines to return. + + - Updated documentation to HoughLineTransformation and HoughLine clarifying different aspects of Hough Line + transformation. Provided sample code to highlight detected lines. Provided sample image with annotation + to clarify meaning of Theta and Radius values of detected Hough lines. + + +* AForge.Imaging.Formats + - Added registration of PPM extension as valid image in PNM format. + + - Added sample images for testing of AForge.Imaging.Formats namespace. + + +* AForge.Neuro + - Added ability to change activation function of neuron/layer/network. + + +* AForge.Robotics.Lego + - Added GetUltrasonicSensorsValue() method for NXT brick to read values of ultrasonic distance sensor. + + +* AForge.Robotics.TeRK + - Added 2500 ms connection timeout to Qwerk classes. QwerkStart sample update to handle lost connection. + + +* AForge.Video + - Added PlayingFinished event to IVideoSource interface. The event is fired in the case video + stops by reaching end of video stream or by canceling by user. + + +* AForge.Video.DirectShow + - Added VideoCapabilities property to VideoCaptureDevice class, which can be used to resolve supported + frame sizes and maximum frame rates. + + +* AForge.Vision + - MillisecondsPerBackgroundUpdate property is introduced in SimpleBackgroundModelingDetector, which + allows to control background update on the base of time intervals, but not on the base of frames' + counter. This allows to control background update in the way, which is not affected by variable frame + rates. Also the method better handles those case, when video source has very low frame rate (where + FramesPerBackgroundUpdate would not perform very well causing very long time to update background). + + +* Samples + - Fixing FilterDemo application - added grayscaling before edge detectors (all edge detectors + require grayscaling). + + + + +AForge.NET Framework 2.0.0 (final) release notes +--------------------------------------------- +22.07.2009. + + +Version updates and fixes: + +* Fixed registered issues/requests: + - Issue 40: Motion detector using predefined background image + - Issue 50: Separating motion frame extraction with its further processing + - Issue 92: Check for subscribers to VideoCaptureDevice.NewFrame event before copying bitmap data + - Issue 94: Request to add Offset to Convolution filter + - Issue 95: Error in AForge.Imaging.Filters.Crop.ProcessFilter() + + +* AForge.Fuzzy + - New class SingletonFunction: new kind of membership function, to represent classical numerical numbers in fuzzy domain. + + - Inference System was modified to allow the user to access the fuzzy output before defuzzyfing. + + - Some other minor updates caused by received feedback. + + +* AForge.Imaging + - All exceptions classes, which were introduced in BETA versions, are renamed to have Exception ending. + + - Added Threshold property to the Convolution filter, which allows to set value to be added to weighted sum of pixels. + + - Crop filter bug is fixed (the filter was calculating pixel size incorrectly). + + - Fixed pixel size calculation in ContrastStretch filter. + + - ExtractChannel and ReplaceChannel filters are extended to support extraction of alpha channel in addition to RGB channels. + + - Added image processing filter to extract normalized RGB channels. + + - Added SimplePosterization filter. + + +* AForge.Video.DirectShow + - Video classes are updated to skip preparing new video frame, if nobody is subscribed for NewFrame + event (decreases CPU usage if no subscribed clients). + + +* AForge.Vison + - The namespace was completely redesigned to introduce motion detection and motion processing algorithms. + In the past both these algorithms were part of each motion detection class, which was not flexible, not reusable + and not extendable. + + +* Samples + - Motion Detection sample application is updated to use new classes of the redesigned AForge.Vision namespace. + Also added feature to show motion history. + + + + +AForge.NET Framework 2.0.0 BETA release notes +--------------------------------------------- +20.03.2009. + + +Version updates and fixes: + +* Fixed registered issues/requests: + - Issue 7: New population shuffling + - Issue 34: Suport of 32 bpp imag + - Issue 35: Apply filters to raw image in unmanaged memory + - Issue 42: Support of 16 bpp grayscale images + - Issue 43: Support of 48 and 64 bpp color images + - Issue 71: Flood Fill Algorithms in C# + - Issue 84: AccessViolitionException in ReplaceChannel.ProcessFilter + + +* General + - Added new AForge.Fuzzy namespace containing classes for building fuzzy systems + (many thanks to Fabio Caversan, who is the main contributor to it). + + - Added new AForge.Imaging.Formats namespace containing some classes to decode + different specialized image formats, like PNM, FITS. + + - Added new AForge.Robotis.TeRK namespace containing classes to manipulate + Qwerk - Linux board aimed for building robots. + + +* AForge + - Parallel class is added providing Parallel.For() method aimed for paralleling + computations across all cores in they system. + + +* AForge.Math + - Complex structure is extended with set of new methods providing wider range of + operations with complex numbers. + + +* AForge.Imaging + - Added new set of base classes for image processing filters. These classes are + more flexible in support of different image formats and also provide runtime + information about filters - which formats are supported by image processing + filter and which format will be generated for result image. + + - Introduced support of unmanaged images - images, which are don't have relation + with Bitmap and BitmapData classes from .NET. Unmanaged images are just pixel data + in unmanaged memory. + + - Some image processing routines introduced support of 16 bpp grayscale image, + 32 bpp color images, 48 and 64 bpp color image. See documentation for particular + routine to check supported image formats. + + - DocumentSkewChecker is added, which is aimed for checking rotation angle of scanned + documents. + + - BlobCounterBase class now supports extracting of blobs' images, which size equals + to source image size (this is configurable, so user may specify size of blobs' + images). + + - Added PointedColorFloodFill, which fills image starting from the specified point + with solid color. The filter supports tolerance, which allows filling areas with + similar color. + + - Added PointedMeanFloodFill, which fills image starting from the specified point + with mean value of the filled area. Size of the area to fill depends on + specified tolerance. + + - Added optimized versions of Erosion and Dilatation filters, which are aimed for + image processing with 3x3 structuring element and are optimized for certain + image formats: BinaryDilatation3x3, BinaryErosion3x3, Dilatation3x3, Erosion3x3. + + +* AForge.Controls + - Added PictureBox control, which is derived from .NET's control, but supports + displaying of 16 bpp grayscale image and 48/64 color images, which are not + handled by .NET routines. + + - Added VideoSourcePlayer control, which allows playing video feeds provided by + classes implementing AForge.Video.IVideoSource inerface. + + - Added ColorSlider control, which is aimed for selection of RGB color value + and ranges. + + +* AForge.Genetic + - Added support for migration between genetic populations. User may run several + population in deferent threads for example and perform members' migration + from time to time. See Population.Migrate() method. + + - DoubleArrayChromosome class is extended with more advanced crossover and mutation + operators (see docs for details). + + +* AForge.Neuro + - Added support of using network classes from multiple threads (thread safety). + See documentation to Layer.Compute() and Network.Compute() for details. + + - Added EvolutionaryLearning classes - neural networks' learning algorithm + based on Genetic Algorithms. + + +* AForge.NET Framework's samples + - Added ParallelTest sample application, which demonstrates usage of + AForge.Parallel.For(). + + - Added Fuzze Set Sample and FuzzyAGV sample applications, which demonstrate + usage of new AForge.Fuzzy namespace. + + - Added ImageViewer sample application, which demostrates usage of new + AForge.Imaging.Formats namespace. + + - Added QwertStart sample application, which demonstrates basics of using + new AForge.Robotics.TeRK namespace and performs basic manipulations + of Qwerk. + + - Added Player sample, which demonstrates usage of AForge.Video.* namespaces + for playing different video source. + + - Added Two Cameras Test sample application, which demonstrates how to open + two web cameras simultaneously. Also may serve as useful utility of testing + two cameras from the same manufacturer (some cameras do not support dual + setup, so it is nice to have something to that quickly). + + +* and just many smaller updates in this version ... + + + + +AForge.NET 1.7.0 release notes +------------------------------ +21.07.2008. + + +Version updates and fixes: + +* Fixed registered issues/requests: + - Issue 26: Template Matching + - Issue 60: Convolution with Kernels that sum up to 0 do not work correctly + + +* General + - Support for Lego RCX Mindstorm robotics kit is introduced. RCX test/demo application is provided. + + +* AForge.Imaging + - SUSAN corners detector is implemented. + + - ITemplateMatching interface is introduced for template matching algorithms. As a first class, which + implements this interface, an ExhaustiveTemplateMatching class is provided, which implements + exhaustive search algorithm. It can be used to search for a template in search image or to compare + two images. + + - IBlockMatching interface is introduced for blcok matching algorithms. As a first class, which + implements this interface, an ExhaustiveBlockMatching class is provided, which does exhaustive + search of blocks from source image in search image within specified radius. + + - Drawing class is extended to draw lines. + + - Convolution filter is updated to allow specification of divisor, so convolution could be divided not + only by automatically calculated divisor, but by custom divisor as well. + + - Correlation filter is removed to avoid any confusion. The filter was doing the same as convolution + filter, but with mirrored/flipped kernel. + + +* AForge.Robotics.Lego + - RCXBrick class introduced, which provide functionality to perform some manipulations with Lego RCX + Mindstorm brick. + + - NXTBrick is moved to Lego nampespace from Lego.NXT. Its interface is refactored a bit to have more + common with RCXBrick class. + + + + +AForge.NET 1.6.3 release notes +------------------------------ +18.05.2008. + + +Version updates and fixes: + +* Fixed registered issues/requests: + - Issue 41: Setting dimension of video captured from camera + - Issue 47: Add methods to display video device PIN and settings + - Issue 54: Aforge.Imaging in 1.6.2 is broken + - Issue 55: HighPrecisionBackgroundModeling with Noise Suppression Off and Highlight Motion Region On + - Issue 59: Check if we need to use motionZones or not after we used them before. + - Issue 61: ArgumentNullException thrown in CountingMotionDetector.CreateMotionZoneFrame() + - Issue 62: ImageStatisticsHSL's check for black pixel isn't proper. + + +* AForge.Imaging + - Small tuning of HSL image statistics class - to check if pixel is black it is required to check only + luminance component (all non-black pixels will form non-zero luminance). + + +* AForge.Vision + - HighPrecisionBackgroundModeling class is fixed to handle correctly the case when noise suppression is + off and motion edges highlighting is on. + + - Added more checks to handle the case when user passes motion zones array with 0 elements. + + - Motion zone routines are updated to lock motion detector object (this) instead of motionZones variable + since it may be null and lead to exception. + + +* AForge.Video.DirectShow + - Added functionality to display property page of video capture device, which allows changing its + settings provided by driver (contrast, brightness, frame size, etc). + + - VideoCaptureDevice class is extended with DesiredFrameRate and DesiredFrameSize properties, which + allow to configure frame rate and size. Class is reworked to create capture graph using ICaptureGraphBuilder2 + interface. The PreventFreezing property is dropped since it is no longer required with new class implementation. + + + + +AForge.NET 1.6.2 release notes +------------------------------ +28.02.2008. + + +Version updates and fixes: + +* Fixed registered issues/requests: + - Issue 52: Canny edge detector gives wrong result + + +* AForge.Imaging + - Canny Edge Detector is fixed to use floating point gradients array to correct non-maximum suppression + and location of edge points. + + + + +AForge.NET 1.6.1 release notes +------------------------------ +25.02.2008. + + +Version updates and fixes: + +* Fixed registered issues/requests: + - Issue 15: Save trained network to stream + - Issue 31: Provide blobs ordering functionality for Blob Counter + - Issue 48: Extracting particular blob + - Issue 49: Extracting of the biggest blob + + +* AForge.Imaging + - Flat Field Correction filter is added. + + - BlobCounterBase class is extended with two additional methods: GetObjectInformation(), which allows + to collect blobs without initialized image, and ExtractBlobsImage(), which allows to extract blob's + image. Blob class got new additional ID property. + + - Blob class is changed so it does not implement IDisposable interface any more. Use is responsible for + blob's image disposing. + + - ExtractBiggestBlob filter is introduced, which extracts the biggest blob from the provided source + image (or from original image if appropriate property is set). + + - Histogram Equalization filter is added. + + - Contrast Stretch filter is added. + + - ObjectsOrder property is added to BlobCounterBase class, which allows to select objects' sort order. + + +* AForge.Neuro + - Save() and Load() methods are added to Network class, which allow to serialize/deserialize neural network. + + + + +AForge.NET 1.6.0 release notes +------------------------------ +11.02.2008. + + +Version updates and fixes: + +* Fixed registered issues/requests: + - Issue 32: Impossible to play some video files with Video.DirectShow. + - Issue 33: Extending of Complex Image. + - Issue 36: Stevenson-Arce dithering is useless. + - Issue 39: Extracting blobs from color image. + +* General + - AForge.NET framework's license is updated and clarified. The license concentrates not on commercial + vs. not-commercial software but on open vs. closed software. The framework is provided under dual + license: GPL v2 for free and LGPL for a fee. Please, refer to License.txt document for more + details. + + - AForge.Robotics.Lego library introduced, which provides classes to manipulate Lego + NXT Mindstorm device. Test application is added to samples collection. + + - Documentation projects were updated for new versions of Sandcastle and Sandcastle Help File Builder. + + +* AForge.Imaging + - Otsu thresholding is added (N. Otsu, "A threshold selection method from gray-level histograms", + IEEE Trans. Systems, Man and Cybernetics 9(1), pp. 62–66, 19790). + + - Added initial implementation of Integral Image (P. Viola and M. J. Jones, "Robust real-time face detection", + Int. Journal of Computer Vision 57(2), pp. 137–154, 2004). + TODO: Some more methods are going to be added, which calculate features described by Viola and Jones. + + - Moravec corners detector is added (http://www.cim.mcgill.ca/~dparks/CornerDetector/mainMoravec.htm). + + - Horizontal and Vertical Intensity Statistics classes are added to the AForge.Imaging namespace. These classes + provide information about horizontal and vertical distribution of pixel intensities. + + - Corners Marker filter added, which highlights corder of objects on the specified image using provided + corners detection algorithm. + + - ComplexImage is extended with public property, which gives access to complex image's data. It gives + possibility to implement additional classes to do filtering on ComplexImage. + + - IComplexFilter interface provided for filters, which work on complex Fourier transformed images. + Frequency filter is moved out of ComplexImage to separate class. + + - Documentation has improved for binarization filters. + + - Stevenson-Arce dithering class is marked as obsolete since it is supposed to work with hexagonal pixel + lattices. The filter is left for educational purpose. + + - BlobCounterBase class allows to extract blobs not only from binary/grayscale images, but from color + images as well. Useful in the case if color image was grayscaled, thresholded, processed by blob counter + and then it is required to extract blob from original image. + + - Iterative Threshold's performance improved by using image histogram instead of scanning entire image on + each iteration. + + - FillRectangle() method added to Drawing class for filling rectangles on locked image. + + +* AForge.Math + - Added Update() method to histogram classes, so it is possible to recalculate statistical values after + direct changes in Values array of histogram. + + +* AForge.Video.DirectShow + - Fixed the issue that it was not possible to play some videos. The issue was cause by fixing issue 22 + (1.5.1 version). Removing call of graph's Render() method solves the issue with freezing video after screen + saver, but introduces another issue when playing some video files. The Render() method is adding not only + renderer filter, but some other filters, which may be required. To configure this, a new property was + introduced - PreventFreezing, which allows to select what is required - freezing preventing removing Render() + call or not preventing leaving it. + + +* AForge.Controls + - Histogram control is added to AForge.Controls namespace, which is originally taken from IPLab application, + but extended with vertical histograms support. + + + + +AForge.NET 1.5.1 release notes +------------------------------ +17.10.2007. + +Version updates and fixes: + +* Fixed registered issues/requests: + - Issue 22: Display change causes video to stop. + - Issue 24: Blob detector size limits. + + +* AForge.Imaging + - BlobCounterBase class was introduced to serve as a base for different blob counting algorithms. + + - Recursive blob counter was added. This blob counting algorithm is slower than existing one, but due its + simplicity can be used for testing other algorithms. Improvements can be done. + + - Blob counter base class is updated to support not only Bitmap and BitmapData, but raw data in unmanaged + memory. + + - Blob counter base class is updated to support blobs filtering by size. + + - Drawing class was introduced to keep different drawing routines, which can be applied to BitmapData. + Rectangle routine is provided for now only. + + - ConnectedComponentsLabeling filter was updated to support blobs filtering by size. + + - BlobsFiltering filter was introduced to filter objects out of specified size range. + + +* AForge.Vision + - ICountingMotionDetector interface was introduced, which describes interface for motion detection algorithms + with objects counting support. + + - IZonesMotionDetector interface was introduced, which describes interface for motion detection algorithms + with support of motion zones - zones, where motion detection should be done. + + - Counting motion detector was introduced, which allows to count moving objects and retrieve position and + dimension of each object. + + +* AForge.Video.DirectShow + - VideoCaptureDevice and FileVideoSource classes were updated - Render() method call of IGraphBuilder interface + was removed. The method was completing graph with additional filters required for rendering, which were + causing video stopping in the case of screen saver or workstation locking. Since we use Sample Grabber and + we do our own rendering, the call was not actually required. + + +* Samples + - Motion Detector sample was updated to demonstrate counting motion detector and motion zones configuration. + + + + +AForge.NET 1.5.0 release notes +------------------------------ +16.09.2007. + +Version updates and fixes: + +* Fixed registered issues/requests: + - Issue 8 : Applying filter to image part. + - Issue 23: OilPainting filter partialy processes image. + - Issue 25: Mirror filter. + - Issue 27: Image statistics reports negative mean value for big images. + + +* AForge.Math + - AForge.Math.Statistics.Mean() was fixed to use double for mean calculation instead of int, + what was causing incorrect mean value (in the case of histogram with large values). + + +* AForge.Imaging + - Simple memory manager class added for allocation/dialocation unmanaged memory, which + could be required for image processing filters. + + - Added new base class (FilterGrayToGrayUsingCopy) for filtering grayscale images. The + class allows to do "in-place" filtering for those filters, which can not do direct + manipulations with source image. + + - Added new base class (FilterAnyToAnyUsingCopy) for filtering color grayscale images. + The class allows to do "in-place" filtering for those filters, which can not do direct + manipulations with source image. + + - New interface was presented for filters, which can be applied to specified rectangle of + source image (IInPlacePartialFilter). + + - New base class for partial filtering of color images was introduced (FilterColorToColorPartial). + + - New base class for partial filtering of grayscale images was introduced (FilterGrayToGrayPartial). + + - New base class for partial filtering of color and grayscale images was introduced + (FilterAnyToAnyPartial). + + - New base class for partial filtering of color and grayscale images was added + (FilterAnyToAnyUsingCopyPartial). The class allows to do partial "in-place" filtering + for those filters, which can not do direct manipulations with source image. + + - New base class for partial filtering of grayscale images was added (FilterGrayToGrayUsingCopyPartial). + The class allows to do "in-place" filtering for those filters, which can not do direct manipulations + with source image. + + - Classes marked as depricated: FilterGrayToGrayNewSameSize, FilterAnyToAnyNewSameSize. + + - Filters converted to in-place filters: Bottom Hat, Top Hat. + + - Filters converted to partial filters: Sepia, Rotate Channels, Channel filtering, Color filtering, + Euclidean color filtering, Replace channel, Brightness correction, Contrast correction, + HSL filtering, HSL linear, Hue modifier, Saturation correction, YCbCr filtering, YCbCr linear, + YCbCr replace channel, Ordered dithering, Threshold, Iterative threshold, Threshold with carry, + SIS Threshold, Salt and Pepper noise, Additive noise, Invert, Pixellate, Color Remapping, + Gamma Correction, Levels Linear, Texturer + + - Filters converted to in-place partial filters: Binarization filters based on error + diffusion dithering, Correlation, Gaussian Blur, Sharpen Ex, Hit-And-Miss, Jitter, + Oil painting, Median, Erosion, Dilatation, Closing, Opening, AdaptiveSmooth, ConservativeSmoothing, + Simple skeletonization. + + - Bug is fixed in Canny Edge Detector related to incorrect checking of pixel neighbors. + The bug was possible to see only on images with odd width. + + - Oil Painting filter fixed to clear intensities array correctly (issue 23). + + - Mirror filter added, which allows to do vertical and/or horizontal mirroring (issue 25). + + + + +AForge.NET 1.4.2 release notes +------------------------------ +01.08.2007. + +Version updates and fixes: + +* General + - Added new namespaces: Video.DirectShow; + +* AForge.Video.DirectShow + - VideoCaptureDevice class added to access local video capture devices like USB webcams + using DirectShow; + - FileVideoSource added to access video files using DirectShow (DirectShow supports more + video codecs than Video for Windows so this class allows to play wider range of video + files). + + + + +AForge.NET 1.4.1 release notes +------------------------------ +21.07.2007. + +Version updates and fixes: + +* AForge.Imaging + - Fixed an issue with out of range coordinates checking in Hough Circle Transformation. + + + + +AForge.NET 1.4.0 release notes +------------------------------ +19.07.2007. + +Version updates and fixes: + +* AForge.Imaging + - Iterative threshold filter is added; + - Canvas crop and canvas move filters added; + - Canvas Fill filter added; + - SISThreshold updated to use absolute difference for X and Y directions; + - Added Hough line transformation to detect lines; + - Added Hough circle transformation to detect circles; + +* AForge.Vision + - Added property to restore objects edges after noise suppression ( Background modeling high + precision motion detector); + +* AForge.Video + - MJPEG video source implementation updated to search for JPEG magic number instead of searching + for newline delimiter; + +* AForge.Video.VFW + - Added thread safety for AVIReader and AVIWriter; + +* AForge.MachineLearning + - Roulette Wheel exploration policy added; + - Boltzmann exploration rate fixed to handle correctly infinite probabilities; + - Action estimates randomization added for QLearning and Sarsa; + +* Samples + - Add sample to demonstrate Hough line and circle transformation. + + + + +AForge.NET 1.3.0 release notes +------------------------------ +13.04.2007. + +Version updates and fixes: + +* General + - Added new namespaces: MachineLearning, Vision, Video, Video.VFW; + - Password protection removed from signing keys; + +* AForge.Imaging + - Binarization filters updated so they can be applied to grayscale images only; + - Replace channel filter updated so it can be created without specifying channel image; + - Bug fixed in FilterAnyToAny - image was not locked correctly and pixel format + was not checked correctly for in-place filtering; + - Bug fixed in Replace Channel filter - pixel format of channel image was not + checked correctly; + - Added method to clone image from Bitmap Data; + - Top-Hat and Bottom-Hat filters added; + - Noise generation filters added - additive noise and salt&pepper noise; + +* AForge.Vision + - Two frames difference motion detector added; + - Background modeling high precision motion detector added; + - Background modeling low precision motion detector added; + +* AForge.Video + - IVideoSource interface added; + - JPEG video source added; + - MJPEG stream video source added; + +* AForge.Video.VFW + - AVI reader class added; + - AVI writer class added; + - AVI file video source added; + +* AForge.MachineLearning + - QLearning and Sarsa learning algorithms added; + - Epsilon greedy, Boltzmann and Tabu Search exploration policies added; + +* Samples + - Animat sample added - demonstrates MachineLearning namespace; + - MotionDetector sample added - demonstrates Vision and Video namespaces; + + + + +AForge.NET 1.2.0 release notes +------------------------------ +15.03.2007. + +Version updates and fixes: + +* General + - Setup project added to provide installer application; + - AForge.NET libraries got strong name; + - Sample applications update to use volatile for need-to-stop flag + +* AForge.Math + - Random numbers generators added (Uniform, Standard, Gaussian, Exponential); + - 2D Affine transformation added; + +* AForge.Imaging + - Texture class added to handle texture related work; + - BlobCounter class updated to have constructor. GetObjectRectangles() does not + require parameter any more; + - Bug fixed in ComplexImage - image mode was not cloned; + - Color remapping filter was added + +* AForge.Genetic + - Double array chromosome added + + + + +AForge.NET 1.1.0 release notes +------------------------------ +23.02.2007. + +Version updates and fixes: + +* General + - The framework was converted to .NET 2.0; + - Sandcastle is used for help files generation instead of NDoc; + +* AForge + - Issue fixed with IsInside() method of IntRange and DoubleRange + +* AForge.Math + - Complex number structure; + - Fourier transformation; + - Gaussian function; + - Perlin noise function; + - Statistics class; + - Histogram classes; + +* AForge.Imaging + - Blob counter and Connected Components Labeling; + - Conservative Smoothing filter; + - Jitter filter; + - Oil Painting filter; + - Pixellatet filter; + - Gaussian Blur filter; + - SharpenEx (based on Gaussian function) filter; + - Canny Edge Detector filter; + - Adaptive Smooth filter; + - Simple Skeletonization filter; + - Texture generators added (Clouds, Marble, Wood, Labyrinth, Textile); + - Texturer, Textured Filter, Textured Merge filters; + - Resize filters (Nearest Neighbor, Bilinear, Bicubic); + - Rotate filters (Nearest Neighbor, Bilinear, Bicubic); + - Complex image (frequency filtering); + - Image statistics classes (RGB, HSL, YCbCr); + +* Samples + - Textures demo application; \ No newline at end of file diff --git a/Samples/Core/ParallelTest/ParallelTest (mono).csproj b/Samples/Core/ParallelTest/ParallelTest (mono).csproj new file mode 100644 index 00000000..dbc4b6f3 --- /dev/null +++ b/Samples/Core/ParallelTest/ParallelTest (mono).csproj @@ -0,0 +1,41 @@ + + + + Debug + AnyCPU + 9.0.21022 + 2.0 + {E466224A-C44A-40E4-8B55-2C33F71EEFC5} + Exe + ParallelTest + v2.0 + + + true + full + false + bin\Debug + DEBUG + prompt + 3 + + + none + false + bin\Release + prompt + 4 + + + + + False + ..\..\..\Release\Mono\AForge.dll + + + + + + + + \ No newline at end of file diff --git a/Samples/Core/ParallelTest/ParallelTest (mono).sln b/Samples/Core/ParallelTest/ParallelTest (mono).sln new file mode 100644 index 00000000..17ccefff --- /dev/null +++ b/Samples/Core/ParallelTest/ParallelTest (mono).sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ParallelTest (mono)", "ParallelTest (mono).csproj", "{E466224A-C44A-40E4-8B55-2C33F71EEFC5}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {E466224A-C44A-40E4-8B55-2C33F71EEFC5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E466224A-C44A-40E4-8B55-2C33F71EEFC5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E466224A-C44A-40E4-8B55-2C33F71EEFC5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E466224A-C44A-40E4-8B55-2C33F71EEFC5}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(MonoDevelopProperties) = preSolution + StartupItem = ParallelTest (mono).csproj + EndGlobalSection +EndGlobal diff --git a/Samples/Core/ParallelTest/ParallelTest.csproj b/Samples/Core/ParallelTest/ParallelTest.csproj new file mode 100644 index 00000000..ac66f968 --- /dev/null +++ b/Samples/Core/ParallelTest/ParallelTest.csproj @@ -0,0 +1,94 @@ + + + + Debug + AnyCPU + 9.0.21022 + 2.0 + {A39465C6-5DE2-412F-8F63-0E7A6D31275F} + Exe + Properties + ParallelTest + ParallelTest + v2.0 + 512 + + + 3.5 + + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + False + ..\..\..\Release\AForge.dll + + + + + + + + + + False + Microsoft .NET Framework 4 %28x86 and x64%29 + true + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 3.1 + true + + + + + \ No newline at end of file diff --git a/Samples/Core/ParallelTest/ParallelTest.sln b/Samples/Core/ParallelTest/ParallelTest.sln new file mode 100644 index 00000000..02c5c98f --- /dev/null +++ b/Samples/Core/ParallelTest/ParallelTest.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual C# Express 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ParallelTest", "ParallelTest.csproj", "{A39465C6-5DE2-412F-8F63-0E7A6D31275F}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {A39465C6-5DE2-412F-8F63-0E7A6D31275F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A39465C6-5DE2-412F-8F63-0E7A6D31275F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A39465C6-5DE2-412F-8F63-0E7A6D31275F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A39465C6-5DE2-412F-8F63-0E7A6D31275F}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Samples/Core/ParallelTest/Program.cs b/Samples/Core/ParallelTest/Program.cs new file mode 100644 index 00000000..e5929f9a --- /dev/null +++ b/Samples/Core/ParallelTest/Program.cs @@ -0,0 +1,131 @@ +// Parallel computations sample application +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2006-2011 +// contacts@aforgenet.com +// + +using System; + +namespace ParallelTest +{ + class Program + { + static void Main( string[] args ) + { + int matrixSize = 250; + int runs = 10; + int tests = 5; + + double test1time = 0; + double test2time = 0; + + Console.WriteLine( "Starting test with " + AForge.Parallel.ThreadsCount + " threads" ); + + // allocate matrixes for all tests + double[,] a = new double[matrixSize, matrixSize]; + double[,] b = new double[matrixSize, matrixSize]; + double[,] c1 = new double[matrixSize, matrixSize]; + double[,] c2 = new double[matrixSize, matrixSize]; + + Random rand = new Random( ); + + // fill source matrixes with random numbers + for ( int i = 0; i < matrixSize; i++ ) + { + for ( int j = 0; j < matrixSize; j++ ) + { + a[i, j] = rand.NextDouble( ); + b[i, j] = rand.NextDouble( ); + } + } + + // run specified number of tests + for ( int test = 0; test < tests; test++ ) + { + // test 1 + DateTime start = DateTime.Now; + + for ( int run = 0; run < runs; run++ ) + { + Test1( a, b, c1 ); + } + + DateTime end = DateTime.Now; + TimeSpan span = end - start; + + Console.Write( span.TotalMilliseconds.ToString( "F3" ) + "\t | " ); + test1time += span.TotalMilliseconds; + + // test 2 + start = DateTime.Now; + + for ( int run = 0; run < runs; run++ ) + { + Test2( a, b, c2 ); + } + + end = DateTime.Now; + span = end - start; + + Console.Write( span.TotalMilliseconds.ToString( "F3" ) + "\t | " ); + test2time += span.TotalMilliseconds; + + Console.WriteLine( " " ); + } + + // provide average performance + test1time /= tests; + test2time /= tests; + + Console.WriteLine( "----------- AVG -----------" ); + Console.WriteLine( test1time.ToString( "F3" ) + "\t | " + test2time.ToString( "F3" ) + "\t | " ); + + Console.WriteLine( "Done" ); + } + + // Test #1 - multiply 2 square matrixes without using parallel computations + private static void Test1( double[,] a, double[,] b, double[,] c ) + { + int s = a.GetLength( 0 ); + + for ( int i = 0; i < s; i++ ) + { + for ( int j = 0; j < s; j++ ) + { + double v = 0; + + for ( int k = 0; k < s; k++ ) + { + v += a[i, k] * b[k, j]; + } + + c[i, j] = v; + } + } + } + + // Test #2 - multiply 2 square matrixes using parallel computations + private static void Test2( double[,] a, double[,] b, double[,] c ) + { + int s = a.GetLength( 0 ); + + AForge.Parallel.For( 0, s, delegate( int i ) + { + for ( int j = 0; j < s; j++ ) + { + double v = 0; + + for ( int k = 0; k < s; k++ ) + { + v += a[i, k] * b[k, j]; + } + + c[i, j] = v; + } + } + ); + } + } +} diff --git a/Samples/Core/ParallelTest/Properties/AssemblyInfo.cs b/Samples/Core/ParallelTest/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..d3213141 --- /dev/null +++ b/Samples/Core/ParallelTest/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle( "ParallelTest" )] +[assembly: AssemblyDescription( "AForge Paralling Test" )] +[assembly: AssemblyConfiguration( "" )] +[assembly: AssemblyCompany( "AForge" )] +[assembly: AssemblyProduct( "AForge.NET" )] +[assembly: AssemblyCopyright( "AForge © 2008" )] +[assembly: AssemblyTrademark( "" )] +[assembly: AssemblyCulture( "" )] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible( false )] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid( "63dc0488-10cc-46be-8e64-20435f89d7bd" )] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion( "2.0.0.0" )] +[assembly: AssemblyFileVersion( "2.0.0.0" )] diff --git a/Samples/Fuzzy/Fuzzy Set Sample/FuzzySetSample.csproj b/Samples/Fuzzy/Fuzzy Set Sample/FuzzySetSample.csproj new file mode 100644 index 00000000..887185d3 --- /dev/null +++ b/Samples/Fuzzy/Fuzzy Set Sample/FuzzySetSample.csproj @@ -0,0 +1,136 @@ + + + + Debug + AnyCPU + 9.0.21022 + 2.0 + {2C079A0D-8F90-4B4E-85AA-CAD45F7E0CAC} + WinExe + Properties + FuzzySetSample + FuzzySetSample + + + 3.5 + v2.0 + + + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + False + ..\..\..\Release\AForge.dll + + + False + ..\..\..\Release\AForge.Controls.dll + + + False + ..\..\..\Release\AForge.Fuzzy.dll + + + + + + + + + + + Form + + + Sample.cs + + + + + Designer + Sample.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + True + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + False + Microsoft .NET Framework 4 %28x86 and x64%29 + true + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 3.1 + true + + + + + \ No newline at end of file diff --git a/Samples/Fuzzy/Fuzzy Set Sample/FuzzySetSample.sln b/Samples/Fuzzy/Fuzzy Set Sample/FuzzySetSample.sln new file mode 100644 index 00000000..9580a93d --- /dev/null +++ b/Samples/Fuzzy/Fuzzy Set Sample/FuzzySetSample.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual C# Express 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FuzzySetSample", "FuzzySetSample.csproj", "{2C079A0D-8F90-4B4E-85AA-CAD45F7E0CAC}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {2C079A0D-8F90-4B4E-85AA-CAD45F7E0CAC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2C079A0D-8F90-4B4E-85AA-CAD45F7E0CAC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2C079A0D-8F90-4B4E-85AA-CAD45F7E0CAC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2C079A0D-8F90-4B4E-85AA-CAD45F7E0CAC}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Samples/Fuzzy/Fuzzy Set Sample/Program.cs b/Samples/Fuzzy/Fuzzy Set Sample/Program.cs new file mode 100644 index 00000000..8aff8775 --- /dev/null +++ b/Samples/Fuzzy/Fuzzy Set Sample/Program.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Windows.Forms; + +namespace FuzzySetSample +{ + static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main( ) + { + Application.EnableVisualStyles( ); + Application.SetCompatibleTextRenderingDefault( false ); + Application.Run( new Sample( ) ); + } + } +} \ No newline at end of file diff --git a/Samples/Fuzzy/Fuzzy Set Sample/Properties/AssemblyInfo.cs b/Samples/Fuzzy/Fuzzy Set Sample/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..9729b31c --- /dev/null +++ b/Samples/Fuzzy/Fuzzy Set Sample/Properties/AssemblyInfo.cs @@ -0,0 +1,33 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle( "Fuzzy Set Sample" )] +[assembly: AssemblyDescription( "AForge Fuzzy Set Sample" )] +[assembly: AssemblyConfiguration( "" )] +[assembly: AssemblyCompany( "AForge" )] +[assembly: AssemblyProduct( "AForge.NET" )] +[assembly: AssemblyCopyright( "AForge © 2008" )] +[assembly: AssemblyTrademark( "" )] +[assembly: AssemblyCulture( "" )] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible( false )] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid( "6a9ab600-5d56-4e13-a8bf-b540838ddba3" )] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +[assembly: AssemblyVersion( "1.0.0.0" )] +[assembly: AssemblyFileVersion( "1.0.0.0" )] diff --git a/Samples/Fuzzy/Fuzzy Set Sample/Properties/Resources.Designer.cs b/Samples/Fuzzy/Fuzzy Set Sample/Properties/Resources.Designer.cs new file mode 100644 index 00000000..afca372b --- /dev/null +++ b/Samples/Fuzzy/Fuzzy Set Sample/Properties/Resources.Designer.cs @@ -0,0 +1,63 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.1433 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace FuzzySetSample.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("FuzzySetSample.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + } +} diff --git a/Samples/Fuzzy/Fuzzy Set Sample/Properties/Resources.resx b/Samples/Fuzzy/Fuzzy Set Sample/Properties/Resources.resx new file mode 100644 index 00000000..af7dbebb --- /dev/null +++ b/Samples/Fuzzy/Fuzzy Set Sample/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Samples/Fuzzy/Fuzzy Set Sample/Properties/Settings.Designer.cs b/Samples/Fuzzy/Fuzzy Set Sample/Properties/Settings.Designer.cs new file mode 100644 index 00000000..b6dbff80 --- /dev/null +++ b/Samples/Fuzzy/Fuzzy Set Sample/Properties/Settings.Designer.cs @@ -0,0 +1,26 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.1433 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace FuzzySetSample.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "9.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + } +} diff --git a/Samples/Fuzzy/Fuzzy Set Sample/Properties/Settings.settings b/Samples/Fuzzy/Fuzzy Set Sample/Properties/Settings.settings new file mode 100644 index 00000000..39645652 --- /dev/null +++ b/Samples/Fuzzy/Fuzzy Set Sample/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Samples/Fuzzy/Fuzzy Set Sample/Sample.Designer.cs b/Samples/Fuzzy/Fuzzy Set Sample/Sample.Designer.cs new file mode 100644 index 00000000..426374fc --- /dev/null +++ b/Samples/Fuzzy/Fuzzy Set Sample/Sample.Designer.cs @@ -0,0 +1,146 @@ +namespace FuzzySetSample +{ + partial class Sample + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose( bool disposing ) + { + if ( disposing && ( components != null ) ) + { + components.Dispose( ); + } + base.Dispose( disposing ); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent( ) + { + this.runFuzzySetTestButton = new System.Windows.Forms.Button(); + this.chart = new AForge.Controls.Chart(); + this.label1 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + this.label4 = new System.Windows.Forms.Label(); + this.runLingVarTestButton = new System.Windows.Forms.Button(); + this.SuspendLayout(); + // + // runFuzzySetTestButton + // + this.runFuzzySetTestButton.Location = new System.Drawing.Point(10, 12); + this.runFuzzySetTestButton.Name = "runFuzzySetTestButton"; + this.runFuzzySetTestButton.Size = new System.Drawing.Size(125, 23); + this.runFuzzySetTestButton.TabIndex = 0; + this.runFuzzySetTestButton.Text = "Run Fuzzy Set Test"; + this.runFuzzySetTestButton.UseVisualStyleBackColor = true; + this.runFuzzySetTestButton.Click += new System.EventHandler(this.runFuzzySetTestButton_Click); + // + // chart + // + this.chart.Location = new System.Drawing.Point(10, 41); + this.chart.Name = "chart"; + this.chart.Size = new System.Drawing.Size(418, 250); + this.chart.TabIndex = 1; + // + // label1 + // + this.label1.BackColor = System.Drawing.Color.LightBlue; + this.label1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label1.Location = new System.Drawing.Point(116, 299); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(100, 23); + this.label1.TabIndex = 2; + this.label1.Text = "Cool"; + this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label2 + // + this.label2.BackColor = System.Drawing.Color.LightCoral; + this.label2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label2.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label2.Location = new System.Drawing.Point(222, 299); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(100, 23); + this.label2.TabIndex = 3; + this.label2.Text = "Warm"; + this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label3 + // + this.label3.BackColor = System.Drawing.Color.CornflowerBlue; + this.label3.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label3.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label3.Location = new System.Drawing.Point(10, 299); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(100, 23); + this.label3.TabIndex = 4; + this.label3.Text = "Cold"; + this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // label4 + // + this.label4.BackColor = System.Drawing.Color.Firebrick; + this.label4.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label4.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label4.Location = new System.Drawing.Point(328, 299); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(100, 23); + this.label4.TabIndex = 5; + this.label4.Text = "Hot"; + this.label4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // runLingVarTestButton + // + this.runLingVarTestButton.Location = new System.Drawing.Point(141, 12); + this.runLingVarTestButton.Name = "runLingVarTestButton"; + this.runLingVarTestButton.Size = new System.Drawing.Size(158, 23); + this.runLingVarTestButton.TabIndex = 6; + this.runLingVarTestButton.Text = "Run Linguistic Variable Test"; + this.runLingVarTestButton.UseVisualStyleBackColor = true; + this.runLingVarTestButton.Click += new System.EventHandler(this.runLingVarTestButton_Click); + // + // Sample + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(435, 332); + this.Controls.Add(this.runLingVarTestButton); + this.Controls.Add(this.label4); + this.Controls.Add(this.label3); + this.Controls.Add(this.label2); + this.Controls.Add(this.label1); + this.Controls.Add(this.chart); + this.Controls.Add(this.runFuzzySetTestButton); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.MaximizeBox = false; + this.Name = "Sample"; + this.Text = "Fuzzy Sets Sample"; + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Button runFuzzySetTestButton; + private AForge.Controls.Chart chart; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.Button runLingVarTestButton; + } +} + diff --git a/Samples/Fuzzy/Fuzzy Set Sample/Sample.cs b/Samples/Fuzzy/Fuzzy Set Sample/Sample.cs new file mode 100644 index 00000000..35dfd2e3 --- /dev/null +++ b/Samples/Fuzzy/Fuzzy Set Sample/Sample.cs @@ -0,0 +1,133 @@ +// Fyzzy Set sample application +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; + +using AForge.Fuzzy; +using AForge.Controls; +using AForge; + +namespace FuzzySetSample +{ + public partial class Sample : Form + { + public Sample( ) + { + InitializeComponent( ); + + chart.RangeX = new Range( 0, 50 ); + chart.AddDataSeries( "COLD", Color.CornflowerBlue, Chart.SeriesType.Line, 3, true ); + chart.AddDataSeries( "COOL", Color.LightBlue, Chart.SeriesType.Line, 3, true ); + chart.AddDataSeries( "WARM", Color.LightCoral, Chart.SeriesType.Line, 3, true ); + chart.AddDataSeries( "HOT", Color.Firebrick, Chart.SeriesType.Line, 3, true ); + } + + // Testing basic funcionality of fuzzy sets + private void runFuzzySetTestButton_Click( object sender, EventArgs e ) + { + ClearDataSeries( ); + + // create 2 fuzzy sets to represent the Cool and Warm temperatures + TrapezoidalFunction function1 = new TrapezoidalFunction( 13, 18, 23, 28 ); + FuzzySet fsCool = new FuzzySet( "Cool", function1 ); + TrapezoidalFunction function2 = new TrapezoidalFunction( 23, 28, 33, 38 ); + FuzzySet fsWarm = new FuzzySet( "Warm", function2 ); + + // get membership of some points to the cool fuzzy set + double[,] coolValues = new double[20, 2]; + for ( int i = 10; i < 30; i++ ) + { + coolValues[i - 10, 0] = i; + coolValues[i - 10, 1] = fsCool.GetMembership( i ); + } + + // getting memberships of some points to the warm fuzzy set + double[,] warmValues = new double[20, 2]; + for ( int i = 20; i < 40; i++ ) + { + warmValues[i - 20, 0] = i; + warmValues[i - 20, 1] = fsWarm.GetMembership( i ); + } + + // plot membership to a chart + chart.UpdateDataSeries( "COOL", coolValues ); + chart.UpdateDataSeries( "WARM", warmValues ); + } + + + // Testing basic funcionality of linguistic variables + private void runLingVarTestButton_Click( object sender, EventArgs e ) + { + ClearDataSeries( ); + + // create a linguistic variable to represent temperature + LinguisticVariable lvTemperature = new LinguisticVariable( "Temperature", 0, 80 ); + + // create the linguistic labels (fuzzy sets) that compose the temperature + TrapezoidalFunction function1 = new TrapezoidalFunction( 10, 15, TrapezoidalFunction.EdgeType.Right ); + FuzzySet fsCold = new FuzzySet( "Cold", function1 ); + TrapezoidalFunction function2 = new TrapezoidalFunction( 10, 15, 20, 25 ); + FuzzySet fsCool = new FuzzySet( "Cool", function2 ); + TrapezoidalFunction function3 = new TrapezoidalFunction( 20, 25, 30, 35 ); + FuzzySet fsWarm = new FuzzySet( "Warm", function3 ); + TrapezoidalFunction function4 = new TrapezoidalFunction( 30, 35, TrapezoidalFunction.EdgeType.Left ); + FuzzySet fsHot = new FuzzySet( "Hot", function4 ); + + // adding labels to the variable + lvTemperature.AddLabel( fsCold ); + lvTemperature.AddLabel( fsCool ); + lvTemperature.AddLabel( fsWarm ); + lvTemperature.AddLabel( fsHot ); + + // get membership of some points to the cool fuzzy set + double[][,] chartValues = new double[4][,]; + for ( int i = 0; i < 4; i++ ) + chartValues[i] = new double[160, 2]; + + // showing the shape of the linguistic variable - the shape of its labels memberships from start to end + int j = 0; + for ( float x = 0; x < 80; x += 0.5f, j++ ) + { + double y1 = lvTemperature.GetLabelMembership( "Cold", x ); + double y2 = lvTemperature.GetLabelMembership( "Cool", x ); + double y3 = lvTemperature.GetLabelMembership( "Warm", x ); + double y4 = lvTemperature.GetLabelMembership( "Hot", x ); + + chartValues[0][j, 0] = x; + chartValues[0][j, 1] = y1; + chartValues[1][j, 0] = x; + chartValues[1][j, 1] = y2; + chartValues[2][j, 0] = x; + chartValues[2][j, 1] = y3; + chartValues[3][j, 0] = x; + chartValues[3][j, 1] = y4; + } + + // plot membership to a chart + chart.UpdateDataSeries( "COLD", chartValues[0] ); + chart.UpdateDataSeries( "COOL", chartValues[1] ); + chart.UpdateDataSeries( "WARM", chartValues[2] ); + chart.UpdateDataSeries( "HOT", chartValues[3] ); + } + + // Clear all data series data + private void ClearDataSeries( ) + { + chart.UpdateDataSeries( "COLD", null ); + chart.UpdateDataSeries( "COOL", null ); + chart.UpdateDataSeries( "WARM", null ); + chart.UpdateDataSeries( "HOT", null ); + } + } +} \ No newline at end of file diff --git a/Samples/Fuzzy/Fuzzy Set Sample/Sample.resx b/Samples/Fuzzy/Fuzzy Set Sample/Sample.resx new file mode 100644 index 00000000..19dc0dd8 --- /dev/null +++ b/Samples/Fuzzy/Fuzzy Set Sample/Sample.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Samples/Fuzzy/FuzzyAGV/AboutForm.Designer.cs b/Samples/Fuzzy/FuzzyAGV/AboutForm.Designer.cs new file mode 100644 index 00000000..bb291552 --- /dev/null +++ b/Samples/Fuzzy/FuzzyAGV/AboutForm.Designer.cs @@ -0,0 +1,120 @@ +namespace FuzzyAGV +{ + partial class AboutForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose( bool disposing ) + { + if ( disposing && ( components != null ) ) + { + components.Dispose( ); + } + base.Dispose( disposing ); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent( ) + { + this.emailLabel = new System.Windows.Forms.LinkLabel( ); + this.label3 = new System.Windows.Forms.Label( ); + this.aforgeFrameworkLabel = new System.Windows.Forms.LinkLabel( ); + this.label2 = new System.Windows.Forms.Label( ); + this.label1 = new System.Windows.Forms.Label( ); + this.SuspendLayout( ); + // + // emailLabel + // + this.emailLabel.AutoSize = true; + this.emailLabel.Location = new System.Drawing.Point( 80, 99 ); + this.emailLabel.Name = "emailLabel"; + this.emailLabel.Size = new System.Drawing.Size( 135, 13 ); + this.emailLabel.TabIndex = 12; + this.emailLabel.TabStop = true; + this.emailLabel.Text = "fabio.caversan@gmail.com"; + this.emailLabel.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler( this.LinkClicked ); + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point( 56, 84 ); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size( 182, 13 ); + this.label3.TabIndex = 11; + this.label3.Text = "Copyright © 2009, Fabio L. Caversan"; + // + // aforgeFrameworkLabel + // + this.aforgeFrameworkLabel.AutoSize = true; + this.aforgeFrameworkLabel.Location = new System.Drawing.Point( 51, 59 ); + this.aforgeFrameworkLabel.Name = "aforgeFrameworkLabel"; + this.aforgeFrameworkLabel.Size = new System.Drawing.Size( 192, 13 ); + this.aforgeFrameworkLabel.TabIndex = 10; + this.aforgeFrameworkLabel.TabStop = true; + this.aforgeFrameworkLabel.Text = "http://www.aforgenet.com/framework/"; + this.aforgeFrameworkLabel.VisitedLinkColor = System.Drawing.Color.Blue; + this.aforgeFrameworkLabel.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler( this.LinkClicked ); + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point( 29, 44 ); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size( 236, 13 ); + this.label2.TabIndex = 9; + this.label2.Text = "Sample application from AForge.NET Framework"; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Font = new System.Drawing.Font( "Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ( (byte) ( 204 ) ) ); + this.label1.Location = new System.Drawing.Point( 68, 14 ); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size( 159, 13 ); + this.label1.TabIndex = 8; + this.label1.Text = "Fuzzy Auto Guided Vehicle"; + // + // AboutForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF( 6F, 13F ); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size( 294, 126 ); + this.Controls.Add( this.emailLabel ); + this.Controls.Add( this.label3 ); + this.Controls.Add( this.aforgeFrameworkLabel ); + this.Controls.Add( this.label2 ); + this.Controls.Add( this.label1 ); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "AboutForm"; + this.ShowIcon = false; + this.ShowInTaskbar = false; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "About ..."; + this.ResumeLayout( false ); + this.PerformLayout( ); + + } + + #endregion + + private System.Windows.Forms.LinkLabel emailLabel; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.LinkLabel aforgeFrameworkLabel; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label label1; + } +} \ No newline at end of file diff --git a/Samples/Fuzzy/FuzzyAGV/AboutForm.cs b/Samples/Fuzzy/FuzzyAGV/AboutForm.cs new file mode 100644 index 00000000..a00f945e --- /dev/null +++ b/Samples/Fuzzy/FuzzyAGV/AboutForm.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; + +namespace FuzzyAGV +{ + public partial class AboutForm : Form + { + public AboutForm( ) + { + InitializeComponent( ); + + // initialize links + emailLabel.Links.Add( 0, emailLabel.Text.Length, "mailto:" + emailLabel.Text ); + aforgeFrameworkLabel.Links.Add( 0, aforgeFrameworkLabel.Text.Length, aforgeFrameworkLabel.Text ); + } + + private void LinkClicked( object sender, LinkLabelLinkClickedEventArgs e ) + { + System.Diagnostics.Process.Start( e.Link.LinkData.ToString( ) ); + } + } +} diff --git a/Samples/Fuzzy/FuzzyAGV/AboutForm.resx b/Samples/Fuzzy/FuzzyAGV/AboutForm.resx new file mode 100644 index 00000000..19dc0dd8 --- /dev/null +++ b/Samples/Fuzzy/FuzzyAGV/AboutForm.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Samples/Fuzzy/FuzzyAGV/AssemblyInfo.cs b/Samples/Fuzzy/FuzzyAGV/AssemblyInfo.cs new file mode 100644 index 00000000..6e7180d0 --- /dev/null +++ b/Samples/Fuzzy/FuzzyAGV/AssemblyInfo.cs @@ -0,0 +1,58 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly: AssemblyTitle( "Fuzzy Auto Guided Vehicle" )] +[assembly: AssemblyDescription( "Fuzzy Auto Guided Vehicle sample" )] +[assembly: AssemblyConfiguration( "" )] +[assembly: AssemblyCompany( "AForge" )] +[assembly: AssemblyProduct( "AForge.NET" )] +[assembly: AssemblyCopyright( "AForge © 2009" )] +[assembly: AssemblyTrademark( "" )] +[assembly: AssemblyCulture( "" )] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion( "2.0.0.0" )] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign( false )] +[assembly: AssemblyKeyFile( "" )] +[assembly: AssemblyKeyName( "" )] diff --git a/Samples/Fuzzy/FuzzyAGV/FuzzyAGV.csproj b/Samples/Fuzzy/FuzzyAGV/FuzzyAGV.csproj new file mode 100644 index 00000000..d83b359c --- /dev/null +++ b/Samples/Fuzzy/FuzzyAGV/FuzzyAGV.csproj @@ -0,0 +1,176 @@ + + + + Local + 9.0.30729 + 2.0 + {BCC446EF-0F10-4FBB-AB37-9A9E0B1CDBAB} + Debug + AnyCPU + + + + + FuzzyRobot + + + JScript + Grid + IE50 + false + WinExe + FuzzyRobot + OnBuildSuccess + FuzzyAGV.MainForm + + + + + 3.5 + v2.0 + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + bin\Debug\ + false + 285212672 + false + + + DEBUG;TRACE + + + true + 4096 + false + + + false + false + false + false + 4 + full + prompt + + + bin\Release\ + false + 285212672 + false + + + TRACE + + + false + 4096 + false + + + true + false + false + false + 4 + none + prompt + + + + False + ..\..\..\Release\AForge.Fuzzy.dll + + + System + + + System.Data + + + System.Drawing + + + System.Windows.Forms + + + System.XML + + + + + + Form + + + AboutForm.cs + + + Code + + + Form + + + True + True + Resources.resx + + + AboutForm.cs + + + MainForm.cs + Designer + + + Designer + ResXFileCodeGenerator + Resources.Designer.cs + + + + + False + Microsoft .NET Framework 4 %28x86 and x64%29 + true + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 3.1 + true + + + + + + + + + + \ No newline at end of file diff --git a/Samples/Fuzzy/FuzzyAGV/FuzzyAGV.sln b/Samples/Fuzzy/FuzzyAGV/FuzzyAGV.sln new file mode 100644 index 00000000..00bf5d01 --- /dev/null +++ b/Samples/Fuzzy/FuzzyAGV/FuzzyAGV.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual C# Express 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FuzzyAGV", "FuzzyAGV.csproj", "{BCC446EF-0F10-4FBB-AB37-9A9E0B1CDBAB}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {BCC446EF-0F10-4FBB-AB37-9A9E0B1CDBAB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BCC446EF-0F10-4FBB-AB37-9A9E0B1CDBAB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BCC446EF-0F10-4FBB-AB37-9A9E0B1CDBAB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BCC446EF-0F10-4FBB-AB37-9A9E0B1CDBAB}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Samples/Fuzzy/FuzzyAGV/MainForm.cs b/Samples/Fuzzy/FuzzyAGV/MainForm.cs new file mode 100644 index 00000000..d235eeff --- /dev/null +++ b/Samples/Fuzzy/FuzzyAGV/MainForm.cs @@ -0,0 +1,772 @@ +// Fuzzy Auto Guided Vehicle Sample +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +using System; +using System.Drawing; +using System.Drawing.Imaging; +using System.Collections; +using System.ComponentModel; +using System.Windows.Forms; +using System.Data; +using System.Threading; +using System.Diagnostics; +using AForge.Fuzzy; + +namespace FuzzyAGV +{ + public class MainForm : System.Windows.Forms.Form + { + #region Private members + private string RunLabel; + private Point InitialPos; + private bool FirstInference; + private int LastX; + private int LastY; + private double Angle; + private Bitmap OriginalMap, InitialMap; + private InferenceSystem IS; + private Thread thMovement; + + /// + /// Required designer variable. + /// + private System.Windows.Forms.PictureBox pbTerrain; + private System.Windows.Forms.Button btnRun; + private System.Windows.Forms.TextBox txtInterval; + private System.Windows.Forms.CheckBox cbLasers; + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.Label txtRight; + private System.Windows.Forms.Label txtLeft; + private System.Windows.Forms.Label txtFront; + private System.Windows.Forms.Label lbl; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.GroupBox groupBox2; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Label txtAngle; + private System.Windows.Forms.Button btnStep; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.PictureBox pbRobot; + private System.Windows.Forms.Button btnReset; + private System.Windows.Forms.GroupBox gbComandos; + private System.ComponentModel.Container components = null; + private GroupBox groupBox3; + private Label label5; + private Button aboutButton; + private System.Windows.Forms.CheckBox cbTrajeto; + #endregion + + #region Class constructor, destructor and Main method + + /// + /// The main entry point for the application. + /// + [STAThread] + public static void Main( ) + { + Application.Run( new MainForm( ) ); + } + + + public MainForm( ) + { + InitializeComponent( ); + Angle = 0; + OriginalMap = new Bitmap( pbTerrain.Image ); + InitialMap = new Bitmap( pbTerrain.Image ); + + InitFuzzyEngine( ); + FirstInference = true; + pbRobot.Top = pbTerrain.Bottom - 50; + pbRobot.Left = pbTerrain.Left + 60; + InitialPos = pbRobot.Location; + RunLabel = btnRun.Text; + } + + /// + /// Stoping the movement thread + /// + protected override void Dispose( bool disposing ) + { + StopMovement( ); + if ( disposing ) + { + if ( components != null ) + { + components.Dispose( ); + } + } + base.Dispose( disposing ); + } + + + #endregion + + #region Windows Form Designer generated code + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent( ) + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager( typeof( MainForm ) ); + this.pbTerrain = new System.Windows.Forms.PictureBox( ); + this.btnStep = new System.Windows.Forms.Button( ); + this.btnRun = new System.Windows.Forms.Button( ); + this.txtInterval = new System.Windows.Forms.TextBox( ); + this.cbLasers = new System.Windows.Forms.CheckBox( ); + this.groupBox1 = new System.Windows.Forms.GroupBox( ); + this.txtRight = new System.Windows.Forms.Label( ); + this.txtLeft = new System.Windows.Forms.Label( ); + this.txtFront = new System.Windows.Forms.Label( ); + this.lbl = new System.Windows.Forms.Label( ); + this.label2 = new System.Windows.Forms.Label( ); + this.label1 = new System.Windows.Forms.Label( ); + this.groupBox2 = new System.Windows.Forms.GroupBox( ); + this.label3 = new System.Windows.Forms.Label( ); + this.txtAngle = new System.Windows.Forms.Label( ); + this.gbComandos = new System.Windows.Forms.GroupBox( ); + this.cbTrajeto = new System.Windows.Forms.CheckBox( ); + this.btnReset = new System.Windows.Forms.Button( ); + this.label4 = new System.Windows.Forms.Label( ); + this.pbRobot = new System.Windows.Forms.PictureBox( ); + this.groupBox3 = new System.Windows.Forms.GroupBox( ); + this.label5 = new System.Windows.Forms.Label( ); + this.aboutButton = new System.Windows.Forms.Button( ); + ( (System.ComponentModel.ISupportInitialize) ( this.pbTerrain ) ).BeginInit( ); + this.groupBox1.SuspendLayout( ); + this.groupBox2.SuspendLayout( ); + this.gbComandos.SuspendLayout( ); + ( (System.ComponentModel.ISupportInitialize) ( this.pbRobot ) ).BeginInit( ); + this.groupBox3.SuspendLayout( ); + this.SuspendLayout( ); + // + // pbTerrain + // + this.pbTerrain.BackColor = System.Drawing.SystemColors.ControlText; + this.pbTerrain.ErrorImage = null; + this.pbTerrain.Image = ( (System.Drawing.Image) ( resources.GetObject( "pbTerrain.Image" ) ) ); + this.pbTerrain.InitialImage = null; + this.pbTerrain.Location = new System.Drawing.Point( 160, 8 ); + this.pbTerrain.Name = "pbTerrain"; + this.pbTerrain.Size = new System.Drawing.Size( 500, 500 ); + this.pbTerrain.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize; + this.pbTerrain.TabIndex = 10; + this.pbTerrain.TabStop = false; + this.pbTerrain.MouseMove += new System.Windows.Forms.MouseEventHandler( this.pbTerrain_MouseMove ); + this.pbTerrain.MouseDown += new System.Windows.Forms.MouseEventHandler( this.pbTerrain_MouseDown ); + // + // btnStep + // + this.btnStep.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.btnStep.Location = new System.Drawing.Point( 6, 109 ); + this.btnStep.Name = "btnStep"; + this.btnStep.Size = new System.Drawing.Size( 75, 23 ); + this.btnStep.TabIndex = 14; + this.btnStep.Text = "&One Step"; + this.btnStep.Click += new System.EventHandler( this.button3_Click ); + // + // btnRun + // + this.btnRun.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.btnRun.Location = new System.Drawing.Point( 6, 138 ); + this.btnRun.Name = "btnRun"; + this.btnRun.Size = new System.Drawing.Size( 75, 23 ); + this.btnRun.TabIndex = 15; + this.btnRun.Text = "&Run"; + this.btnRun.Click += new System.EventHandler( this.btnRun_Click ); + // + // txtInterval + // + this.txtInterval.Location = new System.Drawing.Point( 6, 83 ); + this.txtInterval.Name = "txtInterval"; + this.txtInterval.Size = new System.Drawing.Size( 72, 20 ); + this.txtInterval.TabIndex = 16; + this.txtInterval.Text = "10"; + this.txtInterval.TextAlign = System.Windows.Forms.HorizontalAlignment.Right; + // + // cbLasers + // + this.cbLasers.Checked = true; + this.cbLasers.CheckState = System.Windows.Forms.CheckState.Checked; + this.cbLasers.Location = new System.Drawing.Point( 8, 40 ); + this.cbLasers.Name = "cbLasers"; + this.cbLasers.Size = new System.Drawing.Size( 120, 24 ); + this.cbLasers.TabIndex = 17; + this.cbLasers.Text = "&Show Beams"; + // + // groupBox1 + // + this.groupBox1.Controls.Add( this.txtRight ); + this.groupBox1.Controls.Add( this.txtLeft ); + this.groupBox1.Controls.Add( this.txtFront ); + this.groupBox1.Controls.Add( this.lbl ); + this.groupBox1.Controls.Add( this.label2 ); + this.groupBox1.Controls.Add( this.label1 ); + this.groupBox1.Location = new System.Drawing.Point( 8, 8 ); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size( 144, 72 ); + this.groupBox1.TabIndex = 24; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "Sensor readings::"; + // + // txtRight + // + this.txtRight.Font = new System.Drawing.Font( "Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ( (byte) ( 0 ) ) ); + this.txtRight.Location = new System.Drawing.Point( 104, 48 ); + this.txtRight.Name = "txtRight"; + this.txtRight.RightToLeft = System.Windows.Forms.RightToLeft.Yes; + this.txtRight.Size = new System.Drawing.Size( 32, 16 ); + this.txtRight.TabIndex = 29; + this.txtRight.Text = "0"; + this.txtRight.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // txtLeft + // + this.txtLeft.Font = new System.Drawing.Font( "Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ( (byte) ( 0 ) ) ); + this.txtLeft.Location = new System.Drawing.Point( 104, 32 ); + this.txtLeft.Name = "txtLeft"; + this.txtLeft.RightToLeft = System.Windows.Forms.RightToLeft.Yes; + this.txtLeft.Size = new System.Drawing.Size( 32, 16 ); + this.txtLeft.TabIndex = 28; + this.txtLeft.Text = "0"; + this.txtLeft.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // txtFront + // + this.txtFront.Font = new System.Drawing.Font( "Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ( (byte) ( 0 ) ) ); + this.txtFront.Location = new System.Drawing.Point( 104, 16 ); + this.txtFront.Name = "txtFront"; + this.txtFront.RightToLeft = System.Windows.Forms.RightToLeft.Yes; + this.txtFront.Size = new System.Drawing.Size( 32, 16 ); + this.txtFront.TabIndex = 27; + this.txtFront.Text = "0"; + this.txtFront.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // lbl + // + this.lbl.Location = new System.Drawing.Point( 8, 48 ); + this.lbl.Name = "lbl"; + this.lbl.Size = new System.Drawing.Size( 100, 16 ); + this.lbl.TabIndex = 26; + this.lbl.Text = "Right (pixels):"; + // + // label2 + // + this.label2.Location = new System.Drawing.Point( 8, 32 ); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size( 100, 16 ); + this.label2.TabIndex = 25; + this.label2.Text = "Left (pixels):"; + // + // label1 + // + this.label1.Location = new System.Drawing.Point( 8, 16 ); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size( 88, 16 ); + this.label1.TabIndex = 24; + this.label1.Text = "Frontal (pixels):"; + // + // groupBox2 + // + this.groupBox2.Controls.Add( this.label3 ); + this.groupBox2.Controls.Add( this.txtAngle ); + this.groupBox2.Location = new System.Drawing.Point( 8, 88 ); + this.groupBox2.Name = "groupBox2"; + this.groupBox2.Size = new System.Drawing.Size( 144, 40 ); + this.groupBox2.TabIndex = 25; + this.groupBox2.TabStop = false; + this.groupBox2.Text = "Output:"; + // + // label3 + // + this.label3.Location = new System.Drawing.Point( 8, 16 ); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size( 88, 16 ); + this.label3.TabIndex = 10; + this.label3.Text = "Angle (degrees):"; + // + // txtAngle + // + this.txtAngle.Font = new System.Drawing.Font( "Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ( (byte) ( 0 ) ) ); + this.txtAngle.Location = new System.Drawing.Point( 96, 16 ); + this.txtAngle.Name = "txtAngle"; + this.txtAngle.Size = new System.Drawing.Size( 40, 16 ); + this.txtAngle.TabIndex = 29; + this.txtAngle.Text = "0,00"; + this.txtAngle.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // gbComandos + // + this.gbComandos.Controls.Add( this.cbTrajeto ); + this.gbComandos.Controls.Add( this.btnReset ); + this.gbComandos.Controls.Add( this.label4 ); + this.gbComandos.Controls.Add( this.btnStep ); + this.gbComandos.Controls.Add( this.cbLasers ); + this.gbComandos.Controls.Add( this.btnRun ); + this.gbComandos.Controls.Add( this.txtInterval ); + this.gbComandos.Location = new System.Drawing.Point( 8, 136 ); + this.gbComandos.Name = "gbComandos"; + this.gbComandos.Size = new System.Drawing.Size( 144, 200 ); + this.gbComandos.TabIndex = 26; + this.gbComandos.TabStop = false; + this.gbComandos.Text = "Tools:"; + // + // cbTrajeto + // + this.cbTrajeto.Location = new System.Drawing.Point( 8, 16 ); + this.cbTrajeto.Name = "cbTrajeto"; + this.cbTrajeto.Size = new System.Drawing.Size( 120, 24 ); + this.cbTrajeto.TabIndex = 19; + this.cbTrajeto.Text = "&Track Path"; + // + // btnReset + // + this.btnReset.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.btnReset.Location = new System.Drawing.Point( 6, 167 ); + this.btnReset.Name = "btnReset"; + this.btnReset.Size = new System.Drawing.Size( 75, 23 ); + this.btnReset.TabIndex = 0; + this.btnReset.Text = "Rest&art"; + this.btnReset.Click += new System.EventHandler( this.btnReset_Click ); + // + // label4 + // + this.label4.Location = new System.Drawing.Point( 6, 67 ); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size( 125, 13 ); + this.label4.TabIndex = 18; + this.label4.Text = "Move Interval (ms):"; + // + // pbRobot + // + this.pbRobot.BackColor = System.Drawing.Color.Transparent; + this.pbRobot.Image = ( (System.Drawing.Image) ( resources.GetObject( "pbRobot.Image" ) ) ); + this.pbRobot.Location = new System.Drawing.Point( 216, 472 ); + this.pbRobot.Name = "pbRobot"; + this.pbRobot.Size = new System.Drawing.Size( 10, 10 ); + this.pbRobot.TabIndex = 11; + this.pbRobot.TabStop = false; + // + // groupBox3 + // + this.groupBox3.Controls.Add( this.label5 ); + this.groupBox3.Location = new System.Drawing.Point( 8, 342 ); + this.groupBox3.Name = "groupBox3"; + this.groupBox3.Size = new System.Drawing.Size( 144, 119 ); + this.groupBox3.TabIndex = 27; + this.groupBox3.TabStop = false; + this.groupBox3.Text = "Hints:"; + // + // label5 + // + this.label5.Location = new System.Drawing.Point( 8, 16 ); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size( 125, 88 ); + this.label5.TabIndex = 10; + this.label5.Text = "Left click the image to draw passages (white), right click the image to draw wall" + + "s (black)."; + // + // aboutButton + // + this.aboutButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.aboutButton.Location = new System.Drawing.Point( 41, 473 ); + this.aboutButton.Name = "aboutButton"; + this.aboutButton.Size = new System.Drawing.Size( 75, 23 ); + this.aboutButton.TabIndex = 28; + this.aboutButton.Text = "About"; + this.aboutButton.UseVisualStyleBackColor = true; + this.aboutButton.Click += new System.EventHandler( this.aboutButton_Click ); + // + // MainForm + // + this.AutoScaleBaseSize = new System.Drawing.Size( 5, 13 ); + this.ClientSize = new System.Drawing.Size( 664, 513 ); + this.Controls.Add( this.aboutButton ); + this.Controls.Add( this.groupBox3 ); + this.Controls.Add( this.gbComandos ); + this.Controls.Add( this.groupBox2 ); + this.Controls.Add( this.groupBox1 ); + this.Controls.Add( this.pbRobot ); + this.Controls.Add( this.pbTerrain ); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D; + this.Icon = ( (System.Drawing.Icon) ( resources.GetObject( "$this.Icon" ) ) ); + this.MaximizeBox = false; + this.Name = "MainForm"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Fuzzy Auto Guided Vehicle Sample"; + ( (System.ComponentModel.ISupportInitialize) ( this.pbTerrain ) ).EndInit( ); + this.groupBox1.ResumeLayout( false ); + this.groupBox2.ResumeLayout( false ); + this.gbComandos.ResumeLayout( false ); + this.gbComandos.PerformLayout( ); + ( (System.ComponentModel.ISupportInitialize) ( this.pbRobot ) ).EndInit( ); + this.groupBox3.ResumeLayout( false ); + this.ResumeLayout( false ); + this.PerformLayout( ); + + } + #endregion + + // Hardcode initializing the Fuzzy Inference System + void InitFuzzyEngine( ) + { + + // Linguistic labels (fuzzy sets) that compose the distances + FuzzySet fsNear = new FuzzySet( "Near", new TrapezoidalFunction( 15, 50, TrapezoidalFunction.EdgeType.Right ) ); + FuzzySet fsMedium = new FuzzySet( "Medium", new TrapezoidalFunction( 15, 50, 60, 100 ) ); + FuzzySet fsFar = new FuzzySet( "Far", new TrapezoidalFunction( 60, 100, TrapezoidalFunction.EdgeType.Left ) ); + + // Right Distance (Input) + LinguisticVariable lvRight = new LinguisticVariable( "RightDistance", 0, 120 ); + lvRight.AddLabel( fsNear ); + lvRight.AddLabel( fsMedium ); + lvRight.AddLabel( fsFar ); + + // Left Distance (Input) + LinguisticVariable lvLeft = new LinguisticVariable( "LeftDistance", 0, 120 ); + lvLeft.AddLabel( fsNear ); + lvLeft.AddLabel( fsMedium ); + lvLeft.AddLabel( fsFar ); + + // Front Distance (Input) + LinguisticVariable lvFront = new LinguisticVariable( "FrontalDistance", 0, 120 ); + lvFront.AddLabel( fsNear ); + lvFront.AddLabel( fsMedium ); + lvFront.AddLabel( fsFar ); + + // Linguistic labels (fuzzy sets) that compose the angle + FuzzySet fsVN = new FuzzySet( "VeryNegative", new TrapezoidalFunction( -40, -35, TrapezoidalFunction.EdgeType.Right ) ); + FuzzySet fsN = new FuzzySet( "Negative", new TrapezoidalFunction( -40, -35, -25, -20 ) ); + FuzzySet fsLN = new FuzzySet( "LittleNegative", new TrapezoidalFunction( -25, -20, -10, -5 ) ); + FuzzySet fsZero = new FuzzySet( "Zero", new TrapezoidalFunction( -10, 5, 5, 10 ) ); + FuzzySet fsLP = new FuzzySet( "LittlePositive", new TrapezoidalFunction( 5, 10, 20, 25 ) ); + FuzzySet fsP = new FuzzySet( "Positive", new TrapezoidalFunction( 20, 25, 35, 40 ) ); + FuzzySet fsVP = new FuzzySet( "VeryPositive", new TrapezoidalFunction( 35, 40, TrapezoidalFunction.EdgeType.Left ) ); + + // Angle + LinguisticVariable lvAngle = new LinguisticVariable( "Angle", -50, 50 ); + lvAngle.AddLabel( fsVN ); + lvAngle.AddLabel( fsN ); + lvAngle.AddLabel( fsLN ); + lvAngle.AddLabel( fsZero ); + lvAngle.AddLabel( fsLP ); + lvAngle.AddLabel( fsP ); + lvAngle.AddLabel( fsVP ); + + // The database + Database fuzzyDB = new Database( ); + fuzzyDB.AddVariable( lvFront ); + fuzzyDB.AddVariable( lvLeft ); + fuzzyDB.AddVariable( lvRight ); + fuzzyDB.AddVariable( lvAngle ); + + // Creating the inference system + IS = new InferenceSystem( fuzzyDB, new CentroidDefuzzifier( 1000 ) ); + + // Going Straight + IS.NewRule( "Rule 1", "IF FrontalDistance IS Far THEN Angle IS Zero" ); + // Going Straight (if can go anywhere) + IS.NewRule( "Rule 2", "IF FrontalDistance IS Far AND RightDistance IS Far AND LeftDistance IS Far THEN Angle IS Zero" ); + // Near right wall + IS.NewRule( "Rule 3", "IF RightDistance IS Near AND LeftDistance IS Not Near THEN Angle IS LittleNegative" ); + // Near left wall + IS.NewRule("Rule 4", "IF RightDistance IS Not Near AND LeftDistance IS Near THEN Angle IS LittlePositive"); + // Near front wall - room at right + IS.NewRule( "Rule 5", "IF RightDistance IS Far AND FrontalDistance IS Near THEN Angle IS Positive" ); + // Near front wall - room at left + IS.NewRule( "Rule 6", "IF LeftDistance IS Far AND FrontalDistance IS Near THEN Angle IS Negative" ); + // Near front wall - room at both sides - go right + IS.NewRule( "Rule 7", "IF RightDistance IS Far AND LeftDistance IS Far AND FrontalDistance IS Near THEN Angle IS Positive" ); + } + + // Run one epoch of the Fuzzy Inference System + private void DoInference( ) + { + // Setting inputs + IS.SetInput( "RightDistance", Convert.ToSingle( txtRight.Text ) ); + IS.SetInput( "LeftDistance", Convert.ToSingle( txtLeft.Text ) ); + IS.SetInput( "FrontalDistance", Convert.ToSingle( txtFront.Text ) ); + + // Setting outputs + try + { + double NewAngle = IS.Evaluate( "Angle" ); + txtAngle.Text = NewAngle.ToString( "##0.#0" ); + Angle += NewAngle; + } + catch ( Exception ) + { + } + } + + // AGV's terrain drawing + private void pbTerrain_MouseDown( object sender, System.Windows.Forms.MouseEventArgs e ) + { + pbTerrain.Image = CopyImage( OriginalMap ); + LastX = e.X; + LastY = e.Y; + } + + // AGV's terrain drawing + private void pbTerrain_MouseMove( object sender, System.Windows.Forms.MouseEventArgs e ) + { + Graphics g = Graphics.FromImage( pbTerrain.Image ); + + Color c = Color.Yellow; + + if ( e.Button == MouseButtons.Left ) + c = Color.White; + else if ( e.Button == MouseButtons.Right ) + c = Color.Black; + + if ( c != Color.Yellow ) + { + g.FillRectangle( new SolidBrush( c ), e.X - 40, e.Y - 40, 80, 80 ); + + LastX = e.X; + LastY = e.Y; + + g.DrawImage( pbTerrain.Image, 0, 0 ); + OriginalMap = CopyImage( pbTerrain.Image as Bitmap ); + pbTerrain.Refresh( ); + g.Dispose( ); + } + + } + + // Getting sensors measures + private void GetMeasures( ) + { + // Getting AGV's position + pbTerrain.Image = CopyImage( OriginalMap ); + Bitmap b = pbTerrain.Image as Bitmap; + Point pPos = new Point( pbRobot.Left - pbTerrain.Left + 5, pbRobot.Top - pbTerrain.Top + 5 ); + + // AGV on the wall + if ( ( b.GetPixel( pPos.X, pPos.Y ).R == 0 ) && ( b.GetPixel( pPos.X, pPos.Y ).G == 0 ) && ( b.GetPixel( pPos.X, pPos.Y ).B == 0 ) ) + { + if ( btnRun.Text != RunLabel ) + { + btnRun_Click( btnRun, null ); + } + string Msg = "The vehicle is on the solid area!"; + MessageBox.Show( Msg, "Error!" ); + throw new Exception( Msg ); + } + + // Getting distances + Point pFrontObstacle = GetObstacle( pPos, b, -1, 0 ); + Point pLeftObstacle = GetObstacle( pPos, b, 1, 90 ); + Point pRightObstacle = GetObstacle( pPos, b, 1, -90 ); + + // Showing beams + Graphics g = Graphics.FromImage( b ); + if ( cbLasers.Checked ) + { + g.DrawLine( new Pen( Color.Green, 1 ), pFrontObstacle, pPos ); + g.DrawLine( new Pen( Color.Red, 1 ), pLeftObstacle, pPos ); + g.DrawLine( new Pen( Color.Red, 1 ), pRightObstacle, pPos ); + } + + // Drawing AGV + if ( btnRun.Text != RunLabel ) + { + g.FillEllipse( new SolidBrush( Color.Navy ), pPos.X - 5, pPos.Y - 5, 10, 10 ); + } + + g.DrawImage( b, 0, 0 ); + g.Dispose( ); + + pbTerrain.Refresh( ); + + // Updating distances texts + txtFront.Text = GetDistance( pPos, pFrontObstacle ).ToString( ); + txtLeft.Text = GetDistance( pPos, pLeftObstacle ).ToString( ); + txtRight.Text = GetDistance( pPos, pRightObstacle ).ToString( ); + + } + + // Calculating distances + private int GetDistance( Point p1, Point p2 ) + { + return ( Convert.ToInt32( Math.Sqrt( Math.Pow( p1.X - p2.X, 2 ) + Math.Pow( p1.Y - p2.Y, 2 ) ) ) ); + } + + // Finding obstacles + private Point GetObstacle( Point Start, Bitmap Map, int Inc, int AngleOffset ) + { + Point p = new Point( Start.X, Start.Y ); + + double rad = ( ( Angle + 90 + AngleOffset ) * Math.PI ) / 180; + int IncX = 0; + int IncY = 0; + int Offset = 0; + + while ( ( p.X + IncX >= 0 ) && ( p.X + IncX < Map.Width ) && ( p.Y + IncY >= 0 ) && ( p.Y + IncY < Map.Height ) ) + { + if ( ( Map.GetPixel( p.X + IncX, p.Y + IncY ).R == 0 ) && ( Map.GetPixel( p.X + IncX, p.Y + IncY ).G == 0 ) && ( Map.GetPixel( p.X + IncX, p.Y + IncY ).B == 0 ) ) + break; + Offset += Inc; + IncX = Convert.ToInt32( Offset * Math.Cos( rad ) ); + IncY = Convert.ToInt32( Offset * Math.Sin( rad ) ); + } + p.X += IncX; + p.Y += IncY; + + return p; + } + + // Copying bitmaps + private Bitmap CopyImage( Bitmap Src ) + { + return new Bitmap( Src ); + } + + + // Restarting the AGVs simulation + private void btnReset_Click( object sender, System.EventArgs e ) + { + Angle = 0; + pbTerrain.Image = new Bitmap( InitialMap ); + OriginalMap = new Bitmap( InitialMap ); + FirstInference = true; + pbRobot.Location = InitialPos; + txtFront.Text = "0"; + txtLeft.Text = "0"; + txtRight.Text = "0"; + txtAngle.Text = "0,00"; + } + + // Moving the AGV + private void MoveAGV( ) + { + double rad = ( ( Angle + 90 ) * Math.PI ) / 180; + int Offset = 0; + int Inc = -4; + + Offset += Inc; + int IncX = Convert.ToInt32( Offset * Math.Cos( rad ) ); + int IncY = Convert.ToInt32( Offset * Math.Sin( rad ) ); + + // Leaving the track + if ( cbTrajeto.Checked ) + { + Graphics g = Graphics.FromImage( OriginalMap ); + Point p1 = new Point( pbRobot.Left - pbTerrain.Left + pbRobot.Width / 2, pbRobot.Top - pbTerrain.Top + pbRobot.Height / 2 ); + Point p2 = new Point( p1.X + IncX, p1.Y + IncY ); + g.DrawLine( new Pen( new SolidBrush( Color.Blue ) ), p1, p2 ); + g.DrawImage( OriginalMap, 0, 0 ); + g.Dispose( ); + } + + pbRobot.Top = pbRobot.Top + IncY; + pbRobot.Left = pbRobot.Left + IncX; + } + + // Starting and stopping the AGV's moviment a + private void btnRun_Click( object sender, System.EventArgs e ) + { + Button b = ( sender as Button ); + + if ( b.Text == RunLabel ) + { + b.Text = "&Stop"; + btnStep.Enabled = false; + btnReset.Enabled = false; + txtInterval.Enabled = false; + cbLasers.Enabled = false; + cbTrajeto.Enabled = false; + pbRobot.Hide( ); + StartMovement( ); + } + else + { + StopMovement( ); + b.Text = RunLabel; + btnReset.Enabled = true; + btnStep.Enabled = true; + txtInterval.Enabled = true; + cbLasers.Enabled = true; + cbTrajeto.Enabled = true; + pbRobot.Show( ); + pbTerrain.Image = CopyImage( OriginalMap ); + pbTerrain.Refresh( ); + } + } + + // One step of the AGV + private void button3_Click( object sender, System.EventArgs e ) + { + pbRobot.Hide( ); + AGVStep( ); + pbRobot.Show( ); + } + + // Thread for the AGVs movement + private void StartMovement( ) + { + thMovement = new Thread( new ThreadStart( MoveCycle ) ); + thMovement.IsBackground = true; + thMovement.Priority = ThreadPriority.AboveNormal; + thMovement.Start( ); + } + + // Thread main cycle + private void MoveCycle( ) + { + try + { + while ( Thread.CurrentThread.IsAlive ) + { + MethodInvoker mi = new MethodInvoker( AGVStep ); + this.BeginInvoke( mi ); + Thread.Sleep( Convert.ToInt32( txtInterval.Text ) ); + } + } + catch ( ThreadInterruptedException ) + { + } + } + + // One step of the AGV + private void AGVStep( ) + { + if ( FirstInference ) GetMeasures( ); + + try + { + DoInference( ); + MoveAGV( ); + GetMeasures( ); + } + catch ( Exception ex ) + { + Debug.WriteLine( ex ); + } + } + + // Stop background thread + private void StopMovement( ) + { + if ( thMovement != null ) + { + thMovement.Interrupt( ); + thMovement = null; + } + } + + // Show About dialog + private void aboutButton_Click( object sender, EventArgs e ) + { + AboutForm form = new AboutForm( ); + + form.ShowDialog( ); + } + } +} diff --git a/Samples/Fuzzy/FuzzyAGV/MainForm.resx b/Samples/Fuzzy/FuzzyAGV/MainForm.resx new file mode 100644 index 00000000..6bdbb34a --- /dev/null +++ b/Samples/Fuzzy/FuzzyAGV/MainForm.resx @@ -0,0 +1,16824 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + Qk12Qg8AAAAAADYAAAAoAAAA9AEAAPQBAAABACAAAAAAAAAAAADEDgAAxA4AAAAAAAAAAAAAAAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD///////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA//////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA + AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/w== + + + + + Qk12AQAAAAAAADYAAAAoAAAACgAAAAoAAAABABgAAAAAAAAAAADEDgAAxA4AAAAAAAAAAAAA//////// + ////////gAAAgAAA////////////////AAD///////+AAACAAACAAACAAACAAACAAAD///////8AAP// + /4AAAIAAAIAAAIAAAIAAAIAAAIAAAIAAAP///wAA////gAAAgAAAgAAAgAAAgAAAgAAAgAAAgAAA//// + AACAAACAAACAAACAAACAAACAAACAAACAAACAAACAAAAAAIAAAIAAAIAAAIAAAIAAAIAAAIAAAIAAAIAA + AIAAAAAA////gAAAgAAAgAAAgAAAgAAAgAAAgAAAgAAA////AAD///+AAACAAACAAACAAACAAACAAACA + AACAAAD///8AAP///////4AAAIAAAIAAAIAAAIAAAIAAAP///////wAA////////////////gAAAgAAA + ////////////////AAA= + + + + 64 + + + + AAABAAEAICAQAAEABADoAgAAFgAAACgAAAAgAAAAQAAAAAEABAAAAAAAgAIAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAwMDAAICAgAAAAP8AAP8AAAD//wD/AAAA/wD/AP// + AAD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAO7u4AAAAAAAAAD7 + AAswAA7gAO4AAAAAAAAAs7OzsAAOAAwOAAAAAAAACzs7OzsA7gAADuAAAAAAA7OzAAOzsw4AAA4AAAAA + AA87MABgOzsO4ADuAAAAAABgswAABgOwwO7u4AAAAAAAADsAAAALMAwA4AAAAAAAAACzAAAAA7BgDAAA + AAAAAAALOzAAADs7AAAAAAAAAAAAD7OzAAOzvwAAAAAAAAAAAGALOzs7OwAAAAAAAAAAAAAAYLOzs7Dz + AAOwAAAAAAAAAAD7AA8AOzs7MAAAAAAAAAAGAABgA7Ozs7MAAAAAAAAAAAAADzs7AAs7OwAAAAAAAAAA + AAOzsABgs7MAAAAAAAAAAABgOwAABgswAAAAAAAAAAAAALMAAAADsAAAAAAAAADgAAA7AAAACzAAAAAA + AADu7uADs7AAALOzAAAAAAAO4ADuDzs7AAs7PwAAAAAADgAMDgADs7OzswAAAAAAAO4AAA7gYDs7OzAA + AAAAAAwOAAAOAADzAAPwAAAAAAAADuAA7gAGAABgAAAAAAAAAMDu7uAAAAAAAAAAAAAAAAAMAOAAAAAA + AAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///9////8H//OeA//gDAH/wAgB/4A + AYP8AAGH+AAAB/gcAA/8HgAf/B4AP/wOBv/4AAf/+AAOf/wAAD//AAA//wAAD/+cAAf/+AAH//gcD//c + Hg//BB4P/gAOB/wAAAf4AAAP+GAAH/BhAD/4AQB/+AOc//wH///+D////7///w== + + + \ No newline at end of file diff --git a/Samples/Fuzzy/FuzzyAGV/Properties/Resources.Designer.cs b/Samples/Fuzzy/FuzzyAGV/Properties/Resources.Designer.cs new file mode 100644 index 00000000..59522a3d --- /dev/null +++ b/Samples/Fuzzy/FuzzyAGV/Properties/Resources.Designer.cs @@ -0,0 +1,63 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.3074 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace FuzzyRobot.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("FuzzyRobot.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + } +} diff --git a/Samples/Fuzzy/FuzzyAGV/Properties/Resources.resx b/Samples/Fuzzy/FuzzyAGV/Properties/Resources.resx new file mode 100644 index 00000000..7080a7d1 --- /dev/null +++ b/Samples/Fuzzy/FuzzyAGV/Properties/Resources.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Samples/Fuzzy/FuzzyAGV/Properties/app.manifest b/Samples/Fuzzy/FuzzyAGV/Properties/app.manifest new file mode 100644 index 00000000..e4aecf49 --- /dev/null +++ b/Samples/Fuzzy/FuzzyAGV/Properties/app.manifest @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/Samples/Genetic/Approximation/App.ico b/Samples/Genetic/Approximation/App.ico new file mode 100644 index 00000000..3a5525fd Binary files /dev/null and b/Samples/Genetic/Approximation/App.ico differ diff --git a/Samples/Genetic/Approximation/Approximation.csproj b/Samples/Genetic/Approximation/Approximation.csproj new file mode 100644 index 00000000..ca2652e7 --- /dev/null +++ b/Samples/Genetic/Approximation/Approximation.csproj @@ -0,0 +1,164 @@ + + + + Local + 9.0.30729 + 2.0 + {63E2EBC4-E9F5-4D8D-8329-DE7D541EA0C9} + Debug + AnyCPU + App.ico + + + Approximation + + + JScript + Grid + IE50 + false + WinExe + Approximation + OnBuildSuccess + + + + + + + 3.5 + v2.0 + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + bin\Debug\ + false + 285212672 + false + + + DEBUG;TRACE + + + true + 4096 + false + + + false + false + false + false + 4 + full + prompt + + + bin\Release\ + false + 285212672 + false + + + TRACE + + + false + 4096 + false + + + true + false + false + false + 4 + none + prompt + + + + False + ..\..\..\Release\AForge.dll + + + False + ..\..\..\Release\AForge.Controls.dll + + + False + ..\..\..\Release\AForge.Genetic.dll + + + System + + + System.Data + + + System.Drawing + + + System.Windows.Forms + + + System.XML + + + + + + Code + + + Form + + + MainForm.cs + + + + + False + Microsoft .NET Framework 4 %28x86 and x64%29 + true + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 3.1 + true + + + + + + + + + + \ No newline at end of file diff --git a/Samples/Genetic/Approximation/Approximation.sln b/Samples/Genetic/Approximation/Approximation.sln new file mode 100644 index 00000000..e7056173 --- /dev/null +++ b/Samples/Genetic/Approximation/Approximation.sln @@ -0,0 +1,19 @@ +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual C# Express 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Approximation", "Approximation.csproj", "{63E2EBC4-E9F5-4D8D-8329-DE7D541EA0C9}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {63E2EBC4-E9F5-4D8D-8329-DE7D541EA0C9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {63E2EBC4-E9F5-4D8D-8329-DE7D541EA0C9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {63E2EBC4-E9F5-4D8D-8329-DE7D541EA0C9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {63E2EBC4-E9F5-4D8D-8329-DE7D541EA0C9}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Samples/Genetic/Approximation/AssemblyInfo.cs b/Samples/Genetic/Approximation/AssemblyInfo.cs new file mode 100644 index 00000000..cb97b98d --- /dev/null +++ b/Samples/Genetic/Approximation/AssemblyInfo.cs @@ -0,0 +1,59 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly: AssemblyTitle( "Genetic Approximation" )] +[assembly: AssemblyDescription( "Genetic Approximation sample" )] +[assembly: AssemblyConfiguration( "" )] +[assembly: AssemblyCompany( "AForge" )] +[assembly: AssemblyProduct( "AForge.NET" )] +[assembly: AssemblyCopyright( "AForge © 2009" )] +[assembly: AssemblyTrademark( "" )] +[assembly: AssemblyCulture( "" )] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion( "2.0.0.0" )] +[assembly: AssemblyFileVersion( "2.0.0.0" )] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign( false )] +[assembly: AssemblyKeyFile( "" )] +[assembly: AssemblyKeyName( "" )] diff --git a/Samples/Genetic/Approximation/Data Samples/sample1.csv b/Samples/Genetic/Approximation/Data Samples/sample1.csv new file mode 100644 index 00000000..817e4422 --- /dev/null +++ b/Samples/Genetic/Approximation/Data Samples/sample1.csv @@ -0,0 +1,8 @@ +1,1 +2,1.5 +3,2.5 +4,4 +5,6 +6,8.5 +7,11.5 +8,15 diff --git a/Samples/Genetic/Approximation/Data Samples/sample2.csv b/Samples/Genetic/Approximation/Data Samples/sample2.csv new file mode 100644 index 00000000..d0de18ac --- /dev/null +++ b/Samples/Genetic/Approximation/Data Samples/sample2.csv @@ -0,0 +1,9 @@ +1,0 +2,4 +3,7 +4,9 +5,10 +6,9 +7,7 +8,4 +9,0 diff --git a/Samples/Genetic/Approximation/MainForm.cs b/Samples/Genetic/Approximation/MainForm.cs new file mode 100644 index 00000000..369a688f --- /dev/null +++ b/Samples/Genetic/Approximation/MainForm.cs @@ -0,0 +1,722 @@ +// Approximation (Symbolic Regression) using Genetic Programming and Gene Expression Programming +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2006-2011 +// contacts@aforgenet.com +// + +using System; +using System.Drawing; +using System.Collections; +using System.ComponentModel; +using System.Windows.Forms; +using System.Data; +using System.IO; +using System.Threading; + +using AForge; +using AForge.Genetic; +using AForge.Controls; + +namespace Approximation +{ + /// + /// Summary description for Form1. + /// + public class MainForm : System.Windows.Forms.Form + { + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.ListView dataList; + private System.Windows.Forms.ColumnHeader xColumnHeader; + private System.Windows.Forms.ColumnHeader yColumnHeader; + private System.Windows.Forms.Button loadDataButton; + private System.Windows.Forms.OpenFileDialog openFileDialog; + /// + /// Required designer variable. + /// + private System.ComponentModel.Container components = null; + private System.Windows.Forms.GroupBox groupBox2; + private AForge.Controls.Chart chart; + private System.Windows.Forms.GroupBox groupBox3; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.TextBox populationSizeBox; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.ComboBox selectionBox; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.TextBox iterationsBox; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.Button startButton; + private System.Windows.Forms.Button stopButton; + private System.Windows.Forms.GroupBox groupBox4; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.TextBox currentIterationBox; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.TextBox currentErrorBox; + private System.Windows.Forms.Label label7; + private System.Windows.Forms.ComboBox functionsSetBox; + private System.Windows.Forms.Label label8; + private System.Windows.Forms.ComboBox geneticMethodBox; + private System.Windows.Forms.GroupBox groupBox5; + private System.Windows.Forms.TextBox solutionBox; + + private double[,] data = null; + + private int populationSize = 100; + private int iterations = 1000; + private int selectionMethod = 0; + private int functionsSet = 0; + private int geneticMethod = 0; + + private Thread workerThread = null; + private volatile bool needToStop = false; + + // Constructor + public MainForm() + { + // + // Required for Windows Form Designer support + // + InitializeComponent(); + + // + chart.AddDataSeries( "data", Color.Red, Chart.SeriesType.Dots, 5 ); + chart.AddDataSeries( "solution", Color.Blue, Chart.SeriesType.Line, 1 ); + + selectionBox.SelectedIndex = selectionMethod; + functionsSetBox.SelectedIndex = functionsSet; + geneticMethodBox.SelectedIndex = geneticMethod; + UpdateSettings( ); + } + + /// + /// Clean up any resources being used. + /// + protected override void Dispose( bool disposing ) + { + if( disposing ) + { + if (components != null) + { + components.Dispose(); + } + } + base.Dispose( disposing ); + } + + #region Windows Form Designer generated code + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.dataList = new System.Windows.Forms.ListView(); + this.xColumnHeader = new System.Windows.Forms.ColumnHeader(); + this.yColumnHeader = new System.Windows.Forms.ColumnHeader(); + this.loadDataButton = new System.Windows.Forms.Button(); + this.openFileDialog = new System.Windows.Forms.OpenFileDialog(); + this.groupBox2 = new System.Windows.Forms.GroupBox(); + this.chart = new AForge.Controls.Chart(); + this.groupBox3 = new System.Windows.Forms.GroupBox(); + this.geneticMethodBox = new System.Windows.Forms.ComboBox(); + this.label8 = new System.Windows.Forms.Label(); + this.functionsSetBox = new System.Windows.Forms.ComboBox(); + this.label7 = new System.Windows.Forms.Label(); + this.label4 = new System.Windows.Forms.Label(); + this.iterationsBox = new System.Windows.Forms.TextBox(); + this.label3 = new System.Windows.Forms.Label(); + this.selectionBox = new System.Windows.Forms.ComboBox(); + this.label2 = new System.Windows.Forms.Label(); + this.populationSizeBox = new System.Windows.Forms.TextBox(); + this.label1 = new System.Windows.Forms.Label(); + this.startButton = new System.Windows.Forms.Button(); + this.stopButton = new System.Windows.Forms.Button(); + this.groupBox4 = new System.Windows.Forms.GroupBox(); + this.currentErrorBox = new System.Windows.Forms.TextBox(); + this.label6 = new System.Windows.Forms.Label(); + this.currentIterationBox = new System.Windows.Forms.TextBox(); + this.label5 = new System.Windows.Forms.Label(); + this.groupBox5 = new System.Windows.Forms.GroupBox(); + this.solutionBox = new System.Windows.Forms.TextBox(); + this.groupBox1.SuspendLayout(); + this.groupBox2.SuspendLayout(); + this.groupBox3.SuspendLayout(); + this.groupBox4.SuspendLayout(); + this.groupBox5.SuspendLayout(); + this.SuspendLayout(); + // + // groupBox1 + // + this.groupBox1.Controls.Add(this.dataList); + this.groupBox1.Controls.Add(this.loadDataButton); + this.groupBox1.Location = new System.Drawing.Point(10, 10); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(180, 310); + this.groupBox1.TabIndex = 0; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "Data"; + // + // dataList + // + this.dataList.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { + this.xColumnHeader, + this.yColumnHeader}); + this.dataList.FullRowSelect = true; + this.dataList.GridLines = true; + this.dataList.Location = new System.Drawing.Point(10, 20); + this.dataList.Name = "dataList"; + this.dataList.Size = new System.Drawing.Size(160, 255); + this.dataList.TabIndex = 0; + this.dataList.View = System.Windows.Forms.View.Details; + // + // xColumnHeader + // + this.xColumnHeader.Text = "X"; + // + // yColumnHeader + // + this.yColumnHeader.Text = "Y"; + // + // loadDataButton + // + this.loadDataButton.Location = new System.Drawing.Point(10, 280); + this.loadDataButton.Name = "loadDataButton"; + this.loadDataButton.TabIndex = 1; + this.loadDataButton.Text = "&Load"; + this.loadDataButton.Click += new System.EventHandler(this.loadDataButton_Click); + // + // openFileDialog + // + this.openFileDialog.Filter = "CSV (Comma delimited) (*.csv)|*.csv"; + this.openFileDialog.Title = "Select data file"; + // + // groupBox2 + // + this.groupBox2.Controls.Add(this.chart); + this.groupBox2.Location = new System.Drawing.Point(200, 10); + this.groupBox2.Name = "groupBox2"; + this.groupBox2.Size = new System.Drawing.Size(300, 310); + this.groupBox2.TabIndex = 1; + this.groupBox2.TabStop = false; + this.groupBox2.Text = "Function"; + // + // chart + // + this.chart.Location = new System.Drawing.Point(10, 20); + this.chart.Name = "chart"; + this.chart.Size = new System.Drawing.Size(280, 280); + this.chart.TabIndex = 0; + // + // groupBox3 + // + this.groupBox3.Controls.Add(this.geneticMethodBox); + this.groupBox3.Controls.Add(this.label8); + this.groupBox3.Controls.Add(this.functionsSetBox); + this.groupBox3.Controls.Add(this.label7); + this.groupBox3.Controls.Add(this.label4); + this.groupBox3.Controls.Add(this.iterationsBox); + this.groupBox3.Controls.Add(this.label3); + this.groupBox3.Controls.Add(this.selectionBox); + this.groupBox3.Controls.Add(this.label2); + this.groupBox3.Controls.Add(this.populationSizeBox); + this.groupBox3.Controls.Add(this.label1); + this.groupBox3.Location = new System.Drawing.Point(510, 10); + this.groupBox3.Name = "groupBox3"; + this.groupBox3.Size = new System.Drawing.Size(185, 198); + this.groupBox3.TabIndex = 2; + this.groupBox3.TabStop = false; + this.groupBox3.Text = "Settings"; + // + // geneticMethodBox + // + this.geneticMethodBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.geneticMethodBox.Items.AddRange(new object[] { + "GP", + "GEP"}); + this.geneticMethodBox.Location = new System.Drawing.Point(110, 95); + this.geneticMethodBox.Name = "geneticMethodBox"; + this.geneticMethodBox.Size = new System.Drawing.Size(65, 21); + this.geneticMethodBox.TabIndex = 7; + // + // label8 + // + this.label8.Location = new System.Drawing.Point(10, 97); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size(88, 16); + this.label8.TabIndex = 6; + this.label8.Text = "Genetic method:"; + // + // functionsSetBox + // + this.functionsSetBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.functionsSetBox.Items.AddRange(new object[] { + "Simple", + "Extended"}); + this.functionsSetBox.Location = new System.Drawing.Point(110, 70); + this.functionsSetBox.Name = "functionsSetBox"; + this.functionsSetBox.Size = new System.Drawing.Size(65, 21); + this.functionsSetBox.TabIndex = 5; + // + // label7 + // + this.label7.Location = new System.Drawing.Point(10, 72); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(80, 16); + this.label7.TabIndex = 4; + this.label7.Text = "Functions set:"; + // + // label4 + // + this.label4.Font = new System.Drawing.Font("Microsoft Sans Serif", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(204))); + this.label4.Location = new System.Drawing.Point(125, 175); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(56, 15); + this.label4.TabIndex = 10; + this.label4.Text = "( 0 - inifinity )"; + // + // iterationsBox + // + this.iterationsBox.Location = new System.Drawing.Point(125, 155); + this.iterationsBox.Name = "iterationsBox"; + this.iterationsBox.Size = new System.Drawing.Size(50, 20); + this.iterationsBox.TabIndex = 9; + this.iterationsBox.Text = ""; + // + // label3 + // + this.label3.Location = new System.Drawing.Point(10, 157); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(60, 16); + this.label3.TabIndex = 8; + this.label3.Text = "Iterations:"; + // + // selectionBox + // + this.selectionBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.selectionBox.Items.AddRange(new object[] { + "Elite", + "Rank", + "Roulette"}); + this.selectionBox.Location = new System.Drawing.Point(110, 45); + this.selectionBox.Name = "selectionBox"; + this.selectionBox.Size = new System.Drawing.Size(65, 21); + this.selectionBox.TabIndex = 3; + // + // label2 + // + this.label2.Location = new System.Drawing.Point(10, 47); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(100, 16); + this.label2.TabIndex = 2; + this.label2.Text = "Selection method:"; + // + // populationSizeBox + // + this.populationSizeBox.Location = new System.Drawing.Point(125, 20); + this.populationSizeBox.Name = "populationSizeBox"; + this.populationSizeBox.Size = new System.Drawing.Size(50, 20); + this.populationSizeBox.TabIndex = 1; + this.populationSizeBox.Text = ""; + // + // label1 + // + this.label1.Location = new System.Drawing.Point(10, 22); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(85, 16); + this.label1.TabIndex = 0; + this.label1.Text = "Population size:"; + // + // startButton + // + this.startButton.Enabled = false; + this.startButton.Location = new System.Drawing.Point(530, 297); + this.startButton.Name = "startButton"; + this.startButton.TabIndex = 3; + this.startButton.Text = "&Start"; + this.startButton.Click += new System.EventHandler(this.startButton_Click); + // + // stopButton + // + this.stopButton.Enabled = false; + this.stopButton.Location = new System.Drawing.Point(620, 297); + this.stopButton.Name = "stopButton"; + this.stopButton.TabIndex = 4; + this.stopButton.Text = "S&top"; + this.stopButton.Click += new System.EventHandler(this.stopButton_Click); + // + // groupBox4 + // + this.groupBox4.Controls.Add(this.currentErrorBox); + this.groupBox4.Controls.Add(this.label6); + this.groupBox4.Controls.Add(this.currentIterationBox); + this.groupBox4.Controls.Add(this.label5); + this.groupBox4.Location = new System.Drawing.Point(510, 216); + this.groupBox4.Name = "groupBox4"; + this.groupBox4.Size = new System.Drawing.Size(185, 75); + this.groupBox4.TabIndex = 5; + this.groupBox4.TabStop = false; + this.groupBox4.Text = "Current iteration"; + // + // currentErrorBox + // + this.currentErrorBox.Location = new System.Drawing.Point(125, 45); + this.currentErrorBox.Name = "currentErrorBox"; + this.currentErrorBox.ReadOnly = true; + this.currentErrorBox.Size = new System.Drawing.Size(50, 20); + this.currentErrorBox.TabIndex = 3; + this.currentErrorBox.Text = ""; + // + // label6 + // + this.label6.Location = new System.Drawing.Point(10, 47); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(70, 16); + this.label6.TabIndex = 2; + this.label6.Text = "Error:"; + // + // currentIterationBox + // + this.currentIterationBox.Location = new System.Drawing.Point(125, 20); + this.currentIterationBox.Name = "currentIterationBox"; + this.currentIterationBox.ReadOnly = true; + this.currentIterationBox.Size = new System.Drawing.Size(50, 20); + this.currentIterationBox.TabIndex = 1; + this.currentIterationBox.Text = ""; + // + // label5 + // + this.label5.Location = new System.Drawing.Point(10, 22); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(70, 16); + this.label5.TabIndex = 0; + this.label5.Text = "Iteration:"; + // + // groupBox5 + // + this.groupBox5.Controls.Add(this.solutionBox); + this.groupBox5.Location = new System.Drawing.Point(10, 330); + this.groupBox5.Name = "groupBox5"; + this.groupBox5.Size = new System.Drawing.Size(685, 50); + this.groupBox5.TabIndex = 6; + this.groupBox5.TabStop = false; + this.groupBox5.Text = "Solution:"; + // + // solutionBox + // + this.solutionBox.Location = new System.Drawing.Point(10, 20); + this.solutionBox.Name = "solutionBox"; + this.solutionBox.ReadOnly = true; + this.solutionBox.Size = new System.Drawing.Size(665, 20); + this.solutionBox.TabIndex = 0; + this.solutionBox.Text = ""; + // + // MainForm + // + this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); + this.ClientSize = new System.Drawing.Size(704, 390); + this.Controls.Add(this.groupBox5); + this.Controls.Add(this.groupBox4); + this.Controls.Add(this.stopButton); + this.Controls.Add(this.startButton); + this.Controls.Add(this.groupBox3); + this.Controls.Add(this.groupBox2); + this.Controls.Add(this.groupBox1); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.MaximizeBox = false; + this.Name = "MainForm"; + this.Text = "Approximation (Symbolic Regression) using Genetic Programming and Gene Expression" + + " Programming"; + this.Closing += new System.ComponentModel.CancelEventHandler(this.MainForm_Closing); + this.groupBox1.ResumeLayout(false); + this.groupBox2.ResumeLayout(false); + this.groupBox3.ResumeLayout(false); + this.groupBox4.ResumeLayout(false); + this.groupBox5.ResumeLayout(false); + this.ResumeLayout(false); + + } + #endregion + + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main() + { + Application.Run( new MainForm( ) ); + } + + // Delegates to enable async calls for setting controls properties + private delegate void SetTextCallback( System.Windows.Forms.Control control, string text ); + + // Thread safe updating of control's text property + private void SetText( System.Windows.Forms.Control control, string text ) + { + if ( control.InvokeRequired ) + { + SetTextCallback d = new SetTextCallback( SetText ); + Invoke( d, new object[] { control, text } ); + } + else + { + control.Text = text; + } + } + + // On main form closing + private void MainForm_Closing(object sender, System.ComponentModel.CancelEventArgs e) + { + // check if worker thread is running + if ( ( workerThread != null ) && ( workerThread.IsAlive ) ) + { + needToStop = true; + while ( !workerThread.Join( 100 ) ) + Application.DoEvents( ); + } + } + + // Update settings controls + private void UpdateSettings( ) + { + populationSizeBox.Text = populationSize.ToString( ); + iterationsBox.Text = iterations.ToString( ); + } + + // Load data + private void loadDataButton_Click(object sender, System.EventArgs e) + { + // show file selection dialog + if ( openFileDialog.ShowDialog( ) == DialogResult.OK ) + { + StreamReader reader = null; + // read maximum 50 points + float[,] tempData = new float[50, 2]; + float minX = float.MaxValue; + float maxX = float.MinValue; + + try + { + // open selected file + reader = File.OpenText( openFileDialog.FileName ); + string str = null; + int i = 0; + + // read the data + while ( ( i < 50 ) && ( ( str = reader.ReadLine( ) ) != null ) ) + { + string[] strs = str.Split( ';' ); + if ( strs.Length == 1 ) + strs = str.Split( ',' ); + // parse X + tempData[i, 0] = float.Parse( strs[0] ); + tempData[i, 1] = float.Parse( strs[1] ); + + // search for min value + if ( tempData[i, 0] < minX ) + minX = tempData[i, 0]; + // search for max value + if ( tempData[i, 0] > maxX ) + maxX = tempData[i, 0]; + + i++; + } + + // allocate and set data + data = new double[i, 2]; + Array.Copy( tempData, 0, data, 0, i * 2 ); + } + catch (Exception) + { + MessageBox.Show( "Failed reading the file", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error ); + return; + } + finally + { + // close file + if ( reader != null ) + reader.Close( ); + } + + // update list and chart + UpdateDataListView( ); + chart.RangeX = new Range( minX, maxX ); + chart.UpdateDataSeries( "data", data ); + chart.UpdateDataSeries( "solution", null ); + // enable "Start" button + startButton.Enabled = true; + } + } + + // Update data in list view + private void UpdateDataListView( ) + { + // remove all current records + dataList.Items.Clear( ); + // add new records + for ( int i = 0, n = data.GetLength( 0 ); i < n; i++ ) + { + dataList.Items.Add( data[i, 0].ToString( ) ); + dataList.Items[i].SubItems.Add( data[i, 1].ToString( ) ); + } + } + + // Delegates to enable async calls for setting controls properties + private delegate void EnableCallback( bool enable ); + + // Enable/disale controls (safe for threading) + private void EnableControls( bool enable ) + { + if ( InvokeRequired ) + { + EnableCallback d = new EnableCallback( EnableControls ); + Invoke( d, new object[] { enable } ); + } + else + { + loadDataButton.Enabled = enable; + populationSizeBox.Enabled = enable; + iterationsBox.Enabled = enable; + selectionBox.Enabled = enable; + functionsSetBox.Enabled = enable; + geneticMethodBox.Enabled = enable; + + startButton.Enabled = enable; + stopButton.Enabled = !enable; + } + } + + // On button "Start" + private void startButton_Click(object sender, System.EventArgs e) + { + solutionBox.Text = string.Empty; + + // get population size + try + { + populationSize = Math.Max( 10, Math.Min( 100, int.Parse( populationSizeBox.Text ) ) ); + } + catch + { + populationSize = 40; + } + // iterations + try + { + iterations = Math.Max( 0, int.Parse( iterationsBox.Text ) ); + } + catch + { + iterations = 100; + } + // update settings controls + UpdateSettings( ); + + selectionMethod = selectionBox.SelectedIndex; + functionsSet = functionsSetBox.SelectedIndex; + geneticMethod = geneticMethodBox.SelectedIndex; + + // disable all settings controls except "Stop" button + EnableControls( false ); + + // run worker thread + needToStop = false; + workerThread = new Thread( new ThreadStart( SearchSolution ) ); + + workerThread.Start( ); + } + + // On button "Stop" + private void stopButton_Click( object sender, System.EventArgs e ) + { + // stop worker thread + needToStop = true; + while ( !workerThread.Join( 100 ) ) + Application.DoEvents( ); + workerThread = null; + } + + // Worker thread + void SearchSolution( ) + { + // create fitness function + SymbolicRegressionFitness fitness = new SymbolicRegressionFitness( data, new double[] { 1, 2, 3, 5, 7 } ); + // create gene function + IGPGene gene = ( functionsSet == 0 ) ? + (IGPGene) new SimpleGeneFunction( 6 ) : + (IGPGene) new ExtendedGeneFunction( 6 ); + // create population + Population population = new Population( populationSize, + ( geneticMethod == 0 ) ? + (IChromosome) new GPTreeChromosome( gene ) : + (IChromosome) new GEPChromosome( gene, 15 ), + fitness, + ( selectionMethod == 0 ) ? (ISelectionMethod) new EliteSelection( ) : + ( selectionMethod == 1 ) ? (ISelectionMethod) new RankSelection( ) : + (ISelectionMethod) new RouletteWheelSelection( ) + ); + // iterations + int i = 1; + // solution array + double[,] solution = new double[50, 2]; + double[] input = new double[6] { 0, 1, 2, 3, 5, 7 }; + + // calculate X values to be used with solution function + for ( int j = 0; j < 50; j++ ) + { + solution[j, 0] = chart.RangeX.Min + (double) j * chart.RangeX.Length / 49; + } + + // loop + while ( !needToStop ) + { + // run one epoch of genetic algorithm + population.RunEpoch( ); + + try + { + // get best solution + string bestFunction = population.BestChromosome.ToString( ); + + // calculate best function + for ( int j = 0; j < 50; j++ ) + { + input[0] = solution[j, 0]; + solution[j, 1] = PolishExpression.Evaluate( bestFunction, input ); + } + chart.UpdateDataSeries( "solution", solution ); + // calculate error + double error = 0.0; + for ( int j = 0, k = data.GetLength( 0 ); j < k; j++ ) + { + input[0] = data[j, 0]; + error += Math.Abs( data[j, 1] - PolishExpression.Evaluate( bestFunction, input ) ); + } + + // set current iteration's info + SetText( currentIterationBox, i.ToString( ) ); + SetText( currentErrorBox, error.ToString( "F3" ) ); + } + catch + { + // remove any solutions from chart in case of any errors + chart.UpdateDataSeries( "solution", null ); + } + + // increase current iteration + i++; + + // + if ( ( iterations != 0 ) && ( i > iterations ) ) + break; + } + + // show solution + SetText( solutionBox, population.BestChromosome.ToString( ) ); + + // enable settings controls + EnableControls( true ); + } + } +} diff --git a/Samples/Genetic/Approximation/MainForm.resx b/Samples/Genetic/Approximation/MainForm.resx new file mode 100644 index 00000000..4d19d9d7 --- /dev/null +++ b/Samples/Genetic/Approximation/MainForm.resx @@ -0,0 +1,430 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Private + + + 8, 8 + + + True + + + False + + + True + + + Private + + + False + + + Private + + + Private + + + Private + + + Private + + + Private + + + Private + + + False + + + Private + + + Private + + + Private + + + Private + + + 17, 17 + + + Private + + + 8, 8 + + + True + + + False + + + True + + + Private + + + Private + + + False + + + Private + + + Private + + + 8, 8 + + + True + + + False + + + True + + + Private + + + Private + + + False + + + Private + + + False + + + Private + + + Private + + + Private + + + False + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + Private + + + False + + + Private + + + False + + + Private + + + Private + + + Private + + + False + + + Private + + + False + + + Private + + + Private + + + Private + + + False + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + Private + + + 8, 8 + + + True + + + False + + + True + + + Private + + + Private + + + False + + + Private + + + False + + + Private + + + Private + + + Private + + + False + + + Private + + + False + + + Private + + + Private + + + Private + + + 8, 8 + + + True + + + False + + + Private + + + True + + + Private + + + False + + + Private + + + False + + + False + + + False + + + 8, 8 + + + (Default) + + + True + + + 80 + + + MainForm + + + True + + + Private + + \ No newline at end of file diff --git a/Samples/Genetic/Optimization1D/App.ico b/Samples/Genetic/Optimization1D/App.ico new file mode 100644 index 00000000..3a5525fd Binary files /dev/null and b/Samples/Genetic/Optimization1D/App.ico differ diff --git a/Samples/Genetic/Optimization1D/AssemblyInfo.cs b/Samples/Genetic/Optimization1D/AssemblyInfo.cs new file mode 100644 index 00000000..3d5e90f5 --- /dev/null +++ b/Samples/Genetic/Optimization1D/AssemblyInfo.cs @@ -0,0 +1,59 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly: AssemblyTitle( "Genetic Optimization" )] +[assembly: AssemblyDescription( "Genetic Optimization sample" )] +[assembly: AssemblyConfiguration( "" )] +[assembly: AssemblyCompany( "AForge" )] +[assembly: AssemblyProduct( "AForge.NET" )] +[assembly: AssemblyCopyright( "AForge © 2008" )] +[assembly: AssemblyTrademark( "" )] +[assembly: AssemblyCulture( "" )] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion( "2.0.0.0" )] +[assembly: AssemblyFileVersion( "2.0.0.0" )] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign( false )] +[assembly: AssemblyKeyFile( "" )] +[assembly: AssemblyKeyName( "" )] diff --git a/Samples/Genetic/Optimization1D/MainForm.cs b/Samples/Genetic/Optimization1D/MainForm.cs new file mode 100644 index 00000000..11897b50 --- /dev/null +++ b/Samples/Genetic/Optimization1D/MainForm.cs @@ -0,0 +1,664 @@ +// 1D Optimization using Genetic Algorithms +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2006-2011 +// contacts@aforgenet.com +// + +using System; +using System.Drawing; +using System.Collections; +using System.ComponentModel; +using System.Windows.Forms; +using System.Data; +using System.Threading; + +using AForge; +using AForge.Genetic; +using AForge.Controls; + +namespace Optimization1D +{ + /// + /// Summary description for MainForm. + /// + public class MainForm : System.Windows.Forms.Form + { + private AForge.Controls.Chart chart; + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.TextBox minXBox; + private System.Windows.Forms.TextBox maxXBox; + private System.Windows.Forms.Label label2; + /// + /// Required designer variable. + /// + private System.ComponentModel.Container components = null; + private System.Windows.Forms.GroupBox groupBox2; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.TextBox populationSizeBox; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.TextBox chromosomeLengthBox; + private System.Windows.Forms.CheckBox onlyBestCheck; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.TextBox iterationsBox; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.Button startButton; + private System.Windows.Forms.Button stopButton; + private System.Windows.Forms.Label label7; + private System.Windows.Forms.ComboBox selectionBox; + private System.Windows.Forms.Label label8; + private System.Windows.Forms.ComboBox modeBox; + private System.Windows.Forms.GroupBox groupBox3; + private System.Windows.Forms.Label label9; + private System.Windows.Forms.TextBox currentIterationBox; + private System.Windows.Forms.Label label10; + private System.Windows.Forms.TextBox currentValueBox; + + private UserFunction userFunction = new UserFunction( ); + private int populationSize = 40; + private int chromosomeLength = 32; + private int iterations = 100; + private int selectionMethod = 0; + private int optimizationMode = 0; + private bool showOnlyBest = false; + + private Thread workerThread = null; + private volatile bool needToStop = false; + + // Constructor + public MainForm( ) + { + // + // Required for Windows Form Designer support + // + InitializeComponent( ); + + // add data series to chart + chart.AddDataSeries( "function", Color.Red, Chart.SeriesType.Line, 1 ); + chart.AddDataSeries( "solution", Color.Blue, Chart.SeriesType.Dots, 5 ); + UpdateChart( ); + + // update controls + minXBox.Text = userFunction.Range.Min.ToString( ); + maxXBox.Text = userFunction.Range.Max.ToString( ); + selectionBox.SelectedIndex = selectionMethod; + modeBox.SelectedIndex = optimizationMode; + UpdateSettings( ); + } + + /// + /// Clean up any resources being used. + /// + protected override void Dispose( bool disposing ) + { + if( disposing ) + { + if (components != null) + { + components.Dispose(); + } + } + base.Dispose( disposing ); + } + + #region Windows Form Designer generated code + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.chart = new AForge.Controls.Chart(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.label1 = new System.Windows.Forms.Label(); + this.minXBox = new System.Windows.Forms.TextBox(); + this.maxXBox = new System.Windows.Forms.TextBox(); + this.label2 = new System.Windows.Forms.Label(); + this.groupBox2 = new System.Windows.Forms.GroupBox(); + this.modeBox = new System.Windows.Forms.ComboBox(); + this.label8 = new System.Windows.Forms.Label(); + this.selectionBox = new System.Windows.Forms.ComboBox(); + this.label7 = new System.Windows.Forms.Label(); + this.label6 = new System.Windows.Forms.Label(); + this.iterationsBox = new System.Windows.Forms.TextBox(); + this.label5 = new System.Windows.Forms.Label(); + this.onlyBestCheck = new System.Windows.Forms.CheckBox(); + this.chromosomeLengthBox = new System.Windows.Forms.TextBox(); + this.label4 = new System.Windows.Forms.Label(); + this.populationSizeBox = new System.Windows.Forms.TextBox(); + this.label3 = new System.Windows.Forms.Label(); + this.startButton = new System.Windows.Forms.Button(); + this.stopButton = new System.Windows.Forms.Button(); + this.groupBox3 = new System.Windows.Forms.GroupBox(); + this.currentValueBox = new System.Windows.Forms.TextBox(); + this.label10 = new System.Windows.Forms.Label(); + this.currentIterationBox = new System.Windows.Forms.TextBox(); + this.label9 = new System.Windows.Forms.Label(); + this.groupBox1.SuspendLayout(); + this.groupBox2.SuspendLayout(); + this.groupBox3.SuspendLayout(); + this.SuspendLayout(); + // + // chart + // + this.chart.Location = new System.Drawing.Point(10, 20); + this.chart.Name = "chart"; + this.chart.Size = new System.Drawing.Size(280, 270); + this.chart.TabIndex = 0; + // + // groupBox1 + // + this.groupBox1.Controls.Add(this.chart); + this.groupBox1.Controls.Add(this.label1); + this.groupBox1.Controls.Add(this.minXBox); + this.groupBox1.Controls.Add(this.maxXBox); + this.groupBox1.Controls.Add(this.label2); + this.groupBox1.Location = new System.Drawing.Point(10, 10); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(300, 330); + this.groupBox1.TabIndex = 0; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "Function"; + // + // label1 + // + this.label1.Location = new System.Drawing.Point(10, 297); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(41, 13); + this.label1.TabIndex = 3; + this.label1.Text = "Range:"; + // + // minXBox + // + this.minXBox.Location = new System.Drawing.Point(60, 295); + this.minXBox.Name = "minXBox"; + this.minXBox.Size = new System.Drawing.Size(50, 20); + this.minXBox.TabIndex = 3; + this.minXBox.Text = ""; + this.minXBox.TextChanged += new System.EventHandler(this.minXBox_TextChanged); + // + // maxXBox + // + this.maxXBox.Location = new System.Drawing.Point(130, 295); + this.maxXBox.Name = "maxXBox"; + this.maxXBox.Size = new System.Drawing.Size(50, 20); + this.maxXBox.TabIndex = 4; + this.maxXBox.Text = ""; + this.maxXBox.TextChanged += new System.EventHandler(this.maxXBox_TextChanged); + // + // label2 + // + this.label2.Location = new System.Drawing.Point(115, 297); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(8, 16); + this.label2.TabIndex = 3; + this.label2.Text = "-"; + // + // groupBox2 + // + this.groupBox2.Controls.Add(this.modeBox); + this.groupBox2.Controls.Add(this.label8); + this.groupBox2.Controls.Add(this.selectionBox); + this.groupBox2.Controls.Add(this.label7); + this.groupBox2.Controls.Add(this.label6); + this.groupBox2.Controls.Add(this.iterationsBox); + this.groupBox2.Controls.Add(this.label5); + this.groupBox2.Controls.Add(this.onlyBestCheck); + this.groupBox2.Controls.Add(this.chromosomeLengthBox); + this.groupBox2.Controls.Add(this.label4); + this.groupBox2.Controls.Add(this.populationSizeBox); + this.groupBox2.Controls.Add(this.label3); + this.groupBox2.Location = new System.Drawing.Point(320, 10); + this.groupBox2.Name = "groupBox2"; + this.groupBox2.Size = new System.Drawing.Size(185, 222); + this.groupBox2.TabIndex = 1; + this.groupBox2.TabStop = false; + this.groupBox2.Text = "Settings"; + // + // modeBox + // + this.modeBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.modeBox.Items.AddRange(new object[] { + "Maximize", + "Minimize"}); + this.modeBox.Location = new System.Drawing.Point(110, 95); + this.modeBox.Name = "modeBox"; + this.modeBox.Size = new System.Drawing.Size(65, 21); + this.modeBox.TabIndex = 7; + // + // label8 + // + this.label8.Location = new System.Drawing.Point(10, 97); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size(110, 17); + this.label8.TabIndex = 6; + this.label8.Text = "Optimization mode:"; + // + // selectionBox + // + this.selectionBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.selectionBox.Items.AddRange(new object[] { + "Elite", + "Rank", + "Roulette"}); + this.selectionBox.Location = new System.Drawing.Point(110, 70); + this.selectionBox.Name = "selectionBox"; + this.selectionBox.Size = new System.Drawing.Size(65, 21); + this.selectionBox.TabIndex = 5; + // + // label7 + // + this.label7.Location = new System.Drawing.Point(10, 72); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(100, 16); + this.label7.TabIndex = 4; + this.label7.Text = "Selection method:"; + // + // label6 + // + this.label6.Font = new System.Drawing.Font("Microsoft Sans Serif", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); + this.label6.Location = new System.Drawing.Point(125, 175); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(56, 16); + this.label6.TabIndex = 10; + this.label6.Text = "( 0 - inifinity )"; + // + // iterationsBox + // + this.iterationsBox.Location = new System.Drawing.Point(125, 155); + this.iterationsBox.Name = "iterationsBox"; + this.iterationsBox.Size = new System.Drawing.Size(50, 20); + this.iterationsBox.TabIndex = 9; + this.iterationsBox.Text = ""; + // + // label5 + // + this.label5.Location = new System.Drawing.Point(10, 157); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(64, 16); + this.label5.TabIndex = 8; + this.label5.Text = "Iterations:"; + // + // onlyBestCheck + // + this.onlyBestCheck.Location = new System.Drawing.Point(10, 195); + this.onlyBestCheck.Name = "onlyBestCheck"; + this.onlyBestCheck.Size = new System.Drawing.Size(144, 16); + this.onlyBestCheck.TabIndex = 11; + this.onlyBestCheck.Text = "Show only best solution"; + // + // chromosomeLengthBox + // + this.chromosomeLengthBox.Location = new System.Drawing.Point(125, 45); + this.chromosomeLengthBox.Name = "chromosomeLengthBox"; + this.chromosomeLengthBox.Size = new System.Drawing.Size(50, 20); + this.chromosomeLengthBox.TabIndex = 3; + this.chromosomeLengthBox.Text = ""; + // + // label4 + // + this.label4.Location = new System.Drawing.Point(10, 47); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(110, 12); + this.label4.TabIndex = 2; + this.label4.Text = "Chromosome length:"; + // + // populationSizeBox + // + this.populationSizeBox.Location = new System.Drawing.Point(125, 20); + this.populationSizeBox.Name = "populationSizeBox"; + this.populationSizeBox.Size = new System.Drawing.Size(50, 20); + this.populationSizeBox.TabIndex = 1; + this.populationSizeBox.Text = ""; + // + // label3 + // + this.label3.Location = new System.Drawing.Point(10, 22); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(85, 16); + this.label3.TabIndex = 0; + this.label3.Text = "Population size:"; + // + // startButton + // + this.startButton.Location = new System.Drawing.Point(340, 317); + this.startButton.Name = "startButton"; + this.startButton.TabIndex = 3; + this.startButton.Text = "&Start"; + this.startButton.Click += new System.EventHandler(this.startButton_Click); + // + // stopButton + // + this.stopButton.Enabled = false; + this.stopButton.Location = new System.Drawing.Point(430, 317); + this.stopButton.Name = "stopButton"; + this.stopButton.TabIndex = 4; + this.stopButton.Text = "S&top"; + this.stopButton.Click += new System.EventHandler(this.stopButton_Click); + // + // groupBox3 + // + this.groupBox3.Controls.Add(this.currentValueBox); + this.groupBox3.Controls.Add(this.label10); + this.groupBox3.Controls.Add(this.currentIterationBox); + this.groupBox3.Controls.Add(this.label9); + this.groupBox3.Location = new System.Drawing.Point(320, 235); + this.groupBox3.Name = "groupBox3"; + this.groupBox3.Size = new System.Drawing.Size(185, 75); + this.groupBox3.TabIndex = 2; + this.groupBox3.TabStop = false; + this.groupBox3.Text = "Current iteration"; + // + // currentValueBox + // + this.currentValueBox.Location = new System.Drawing.Point(125, 45); + this.currentValueBox.Name = "currentValueBox"; + this.currentValueBox.ReadOnly = true; + this.currentValueBox.Size = new System.Drawing.Size(50, 20); + this.currentValueBox.TabIndex = 3; + this.currentValueBox.Text = ""; + // + // label10 + // + this.label10.Location = new System.Drawing.Point(10, 47); + this.label10.Name = "label10"; + this.label10.Size = new System.Drawing.Size(60, 15); + this.label10.TabIndex = 2; + this.label10.Text = "Value:"; + // + // currentIterationBox + // + this.currentIterationBox.Location = new System.Drawing.Point(125, 20); + this.currentIterationBox.Name = "currentIterationBox"; + this.currentIterationBox.ReadOnly = true; + this.currentIterationBox.Size = new System.Drawing.Size(50, 20); + this.currentIterationBox.TabIndex = 1; + this.currentIterationBox.Text = ""; + // + // label9 + // + this.label9.Location = new System.Drawing.Point(10, 22); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size(60, 16); + this.label9.TabIndex = 0; + this.label9.Text = "Iteration:"; + // + // MainForm + // + this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); + this.ClientSize = new System.Drawing.Size(514, 350); + this.Controls.Add(this.groupBox3); + this.Controls.Add(this.stopButton); + this.Controls.Add(this.startButton); + this.Controls.Add(this.groupBox2); + this.Controls.Add(this.groupBox1); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.MaximizeBox = false; + this.Name = "MainForm"; + this.Text = "1D Optimization using Genetic Algorithms"; + this.Closing += new System.ComponentModel.CancelEventHandler(this.MainForm_Closing); + this.groupBox1.ResumeLayout(false); + this.groupBox2.ResumeLayout(false); + this.groupBox3.ResumeLayout(false); + this.ResumeLayout(false); + + } + #endregion + + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main( ) + { + Application.Run( new MainForm( ) ); + } + + // Delegates to enable async calls for setting controls properties + private delegate void SetTextCallback( System.Windows.Forms.Control control, string text ); + + // Thread safe updating of control's text property + private void SetText( System.Windows.Forms.Control control, string text ) + { + if ( control.InvokeRequired ) + { + SetTextCallback d = new SetTextCallback( SetText ); + Invoke( d, new object[] { control, text } ); + } + else + { + control.Text = text; + } + } + + // On main form closing + private void MainForm_Closing( object sender, System.ComponentModel.CancelEventArgs e ) + { + // check if worker thread is running + if ( ( workerThread != null ) && ( workerThread.IsAlive ) ) + { + needToStop = true; + while ( !workerThread.Join( 100 ) ) + Application.DoEvents( ); + } + } + + // Update settings controls + private void UpdateSettings( ) + { + populationSizeBox.Text = populationSize.ToString( ); + chromosomeLengthBox.Text = chromosomeLength.ToString( ); + iterationsBox.Text = iterations.ToString( ); + } + + // Update chart + private void UpdateChart( ) + { + // update chart range + chart.RangeX = userFunction.Range; + + double[,] data = null; + + if ( chart.RangeX.Length > 0 ) + { + // prepare data + data = new double[501, 2]; + + double minX = userFunction.Range.Min; + double length = userFunction.Range.Length; + + for ( int i = 0; i <= 500; i++ ) + { + data[i, 0] = minX + length * i / 500; + data[i, 1] = userFunction.OptimizationFunction( data[i, 0] ); + } + } + + // update chart series + chart.UpdateDataSeries( "function", data ); + } + + // Update min value + private void minXBox_TextChanged(object sender, System.EventArgs e) + { + try + { + userFunction.Range = new Range( float.Parse( minXBox.Text ), userFunction.Range.Max ); + UpdateChart( ); + } + catch + { + } + } + + // Update max value + private void maxXBox_TextChanged(object sender, System.EventArgs e) + { + try + { + userFunction.Range = new Range( userFunction.Range.Min, float.Parse( maxXBox.Text ) ); + UpdateChart( ); + } + catch + { + } + } + + // Delegates to enable async calls for setting controls properties + private delegate void EnableCallback( bool enable ); + + // Enable/disale controls (safe for threading) + private void EnableControls( bool enable ) + { + if ( InvokeRequired ) + { + EnableCallback d = new EnableCallback( EnableControls ); + Invoke( d, new object[] { enable } ); + } + else + { + minXBox.Enabled = enable; + maxXBox.Enabled = enable; + + populationSizeBox.Enabled = enable; + chromosomeLengthBox.Enabled = enable; + iterationsBox.Enabled = enable; + selectionBox.Enabled = enable; + modeBox.Enabled = enable; + onlyBestCheck.Enabled = enable; + + startButton.Enabled = enable; + stopButton.Enabled = !enable; + } + } + + // On "Start" button click + private void startButton_Click(object sender, System.EventArgs e) + { + // get population size + try + { + populationSize = Math.Max( 10, Math.Min( 100, int.Parse( populationSizeBox.Text ) ) ); + } + catch + { + populationSize = 40; + } + // get chromosome length + try + { + chromosomeLength = Math.Max( 8, Math.Min( 64, int.Parse( chromosomeLengthBox.Text ) ) ); + } + catch + { + chromosomeLength = 32; + } + // iterations + try + { + iterations = Math.Max( 0, int.Parse( iterationsBox.Text ) ); + } + catch + { + iterations = 100; + } + // update settings controls + UpdateSettings( ); + + selectionMethod = selectionBox.SelectedIndex; + optimizationMode = modeBox.SelectedIndex; + showOnlyBest = onlyBestCheck.Checked; + + // disable all settings controls except "Stop" button + EnableControls( false ); + + // run worker thread + needToStop = false; + workerThread = new Thread( new ThreadStart( SearchSolution ) ); + workerThread.Start( ); + } + + // On "Stop" button click + private void stopButton_Click(object sender, System.EventArgs e) + { + // stop worker thread + needToStop = true; + while ( !workerThread.Join( 100 ) ) + Application.DoEvents( ); + workerThread = null; + } + + + // Worker thread + void SearchSolution( ) + { + // create population + Population population = new Population( populationSize, + new BinaryChromosome( chromosomeLength ), + userFunction, + ( selectionMethod == 0 ) ? (ISelectionMethod) new EliteSelection( ) : + ( selectionMethod == 1 ) ? (ISelectionMethod) new RankSelection( ) : + (ISelectionMethod) new RouletteWheelSelection( ) + ); + // set optimization mode + userFunction.Mode = ( optimizationMode == 0 ) ? + OptimizationFunction1D.Modes.Maximization : + OptimizationFunction1D.Modes.Minimization; + // iterations + int i = 1; + // solution + double[,] data = new double[(showOnlyBest) ? 1 : populationSize, 2]; + + + // loop + while ( !needToStop ) + { + // run one epoch of genetic algorithm + population.RunEpoch( ); + + // show current solution + if ( showOnlyBest ) + { + data[0, 0] = userFunction.Translate( population.BestChromosome ); + data[0, 1] = userFunction.OptimizationFunction( data[0, 0] ); + } + else + { + for ( int j = 0; j < populationSize; j++ ) + { + data[j, 0] = userFunction.Translate( population[j] ); + data[j, 1] = userFunction.OptimizationFunction( data[j, 0] ); + } + } + chart.UpdateDataSeries( "solution", data ); + + // set current iteration's info + SetText( currentIterationBox, i.ToString( ) ); + SetText( currentValueBox, userFunction.Translate( population.BestChromosome ).ToString( "F3" ) ); + + // increase current iteration + i++; + + // + if ( ( iterations != 0 ) && ( i > iterations ) ) + break; + } + + // enable settings controls + EnableControls( true ); + } + } + + // Function to optimize + public class UserFunction : OptimizationFunction1D + { + public UserFunction( ) : base( new Range( 0, 255 ) ) { } + + public override double OptimizationFunction( double x ) + { + return Math.Cos( x / 23 ) * Math.Sin( x / 50 ) + 2; + } + } +} diff --git a/Samples/Genetic/Optimization1D/MainForm.resx b/Samples/Genetic/Optimization1D/MainForm.resx new file mode 100644 index 00000000..cd01cc39 --- /dev/null +++ b/Samples/Genetic/Optimization1D/MainForm.resx @@ -0,0 +1,391 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Private + + + False + + + Private + + + Private + + + 8, 8 + + + True + + + False + + + True + + + Private + + + False + + + Private + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + False + + + Private + + + Private + + + Private + + + 8, 8 + + + True + + + False + + + True + + + Private + + + Private + + + False + + + Private + + + False + + + Private + + + Private + + + Private + + + False + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + Private + + + False + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + Private + + + False + + + Private + + + False + + + Private + + + Private + + + Private + + + False + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + Private + + + 8, 8 + + + True + + + False + + + True + + + Private + + + Private + + + False + + + Private + + + False + + + Private + + + Private + + + Private + + + False + + + Private + + + False + + + Private + + + Private + + + False + + + (Default) + + + False + + + False + + + MainForm + + + 8, 8 + + + True + + + 80 + + + True + + + Private + + \ No newline at end of file diff --git a/Samples/Genetic/Optimization1D/Optimization1D.csproj b/Samples/Genetic/Optimization1D/Optimization1D.csproj new file mode 100644 index 00000000..8b409bed --- /dev/null +++ b/Samples/Genetic/Optimization1D/Optimization1D.csproj @@ -0,0 +1,174 @@ + + + + Local + 9.0.21022 + 2.0 + {74E3C094-B60D-479C-85A9-12D9B21034F0} + Debug + AnyCPU + App.ico + + + Optimization1D + + + JScript + Grid + IE50 + false + WinExe + Optimization1D + OnBuildSuccess + + + + + + + 3.5 + v2.0 + false + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + true + + + bin\Debug\ + false + 285212672 + false + + + DEBUG;TRACE + + + true + 4096 + false + + + false + false + false + false + 4 + full + prompt + + + bin\Release\ + false + 285212672 + false + + + TRACE + + + false + 4096 + false + + + true + false + false + false + 4 + none + prompt + + + + False + ..\..\..\Release\AForge.dll + + + False + ..\..\..\Release\AForge.Controls.dll + + + False + ..\..\..\Release\AForge.Genetic.dll + + + System + + + System.Data + + + System.Drawing + + + System.Windows.Forms + + + System.XML + + + + + + Code + + + Form + + + MainForm.cs + + + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 2.0 %28x86%29 + false + + + False + .NET Framework 3.0 %28x86%29 + false + + + False + .NET Framework 3.5 + true + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 3.1 + true + + + + + + + + + + \ No newline at end of file diff --git a/Samples/Genetic/Optimization1D/Optimization1D.sln b/Samples/Genetic/Optimization1D/Optimization1D.sln new file mode 100644 index 00000000..cdaafc82 --- /dev/null +++ b/Samples/Genetic/Optimization1D/Optimization1D.sln @@ -0,0 +1,19 @@ +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual C# Express 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Optimization1D", "Optimization1D.csproj", "{74E3C094-B60D-479C-85A9-12D9B21034F0}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {74E3C094-B60D-479C-85A9-12D9B21034F0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {74E3C094-B60D-479C-85A9-12D9B21034F0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {74E3C094-B60D-479C-85A9-12D9B21034F0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {74E3C094-B60D-479C-85A9-12D9B21034F0}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Samples/Genetic/TSP/App.ico b/Samples/Genetic/TSP/App.ico new file mode 100644 index 00000000..3a5525fd Binary files /dev/null and b/Samples/Genetic/TSP/App.ico differ diff --git a/Samples/Genetic/TSP/AssemblyInfo.cs b/Samples/Genetic/TSP/AssemblyInfo.cs new file mode 100644 index 00000000..817c0f7c --- /dev/null +++ b/Samples/Genetic/TSP/AssemblyInfo.cs @@ -0,0 +1,59 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly: AssemblyTitle( "Genetic TSP" )] +[assembly: AssemblyDescription( "Genetic TSP sample" )] +[assembly: AssemblyConfiguration( "" )] +[assembly: AssemblyCompany( "AForge" )] +[assembly: AssemblyProduct( "AForge.NET" )] +[assembly: AssemblyCopyright( "AForge © 2008" )] +[assembly: AssemblyTrademark( "" )] +[assembly: AssemblyCulture( "" )] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion( "2.0.0.0" )] +[assembly: AssemblyFileVersion( "2.0.0.0" )] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign( false )] +[assembly: AssemblyKeyFile( "" )] +[assembly: AssemblyKeyName( "" )] diff --git a/Samples/Genetic/TSP/MainForm.cs b/Samples/Genetic/TSP/MainForm.cs new file mode 100644 index 00000000..409f8601 --- /dev/null +++ b/Samples/Genetic/TSP/MainForm.cs @@ -0,0 +1,563 @@ +// Traveling Salesman Problem using Genetic Algorithms +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2006-2011 +// contacts@aforgenet.com +// + +using System; +using System.Drawing; +using System.Collections; +using System.ComponentModel; +using System.Windows.Forms; +using System.Data; +using System.Threading; + +using AForge; +using AForge.Genetic; +using AForge.Controls; + +namespace TSP +{ + /// + /// Summary description for Form1. + /// + public class MainForm : System.Windows.Forms.Form + { + private System.Windows.Forms.GroupBox groupBox1; + private AForge.Controls.Chart mapControl; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.TextBox citiesCountBox; + private System.Windows.Forms.Button generateMapButton; + private System.Windows.Forms.GroupBox groupBox2; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.TextBox populationSizeBox; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.ComboBox selectionBox; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.TextBox iterationsBox; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.GroupBox groupBox3; + private System.Windows.Forms.Button startButton; + private System.Windows.Forms.Button stopButton; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.TextBox currentIterationBox; + private System.Windows.Forms.Label label7; + private System.Windows.Forms.TextBox pathLengthBox; + private System.Windows.Forms.CheckBox greedyCrossoverBox; + /// + /// Required designer variable. + /// + private System.ComponentModel.Container components = null; + + private int citiesCount = 20; + private int populationSize = 40; + private int iterations = 100; + private int selectionMethod = 0; + private bool greedyCrossover = true; + + private double[,] map = null; + + private Thread workerThread = null; + private volatile bool needToStop = false; + + // Constructor + public MainForm( ) + { + // + // Required for Windows Form Designer support + // + InitializeComponent(); + + // set up map control + mapControl.RangeX = new Range( 0, 1000 ); + mapControl.RangeY = new Range( 0, 1000 ); + mapControl.AddDataSeries( "map", Color.Red, Chart.SeriesType.Dots, 5, false ); + mapControl.AddDataSeries( "path", Color.Blue, Chart.SeriesType.Line, 1, false ); + + // + selectionBox.SelectedIndex = selectionMethod; + greedyCrossoverBox.Checked = greedyCrossover; + UpdateSettings( ); + GenerateMap( ); + } + + /// + /// Clean up any resources being used. + /// + protected override void Dispose( bool disposing ) + { + if( disposing ) + { + if (components != null) + { + components.Dispose(); + } + } + base.Dispose( disposing ); + } + + #region Windows Form Designer generated code + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.generateMapButton = new System.Windows.Forms.Button(); + this.citiesCountBox = new System.Windows.Forms.TextBox(); + this.label1 = new System.Windows.Forms.Label(); + this.mapControl = new AForge.Controls.Chart(); + this.groupBox2 = new System.Windows.Forms.GroupBox(); + this.greedyCrossoverBox = new System.Windows.Forms.CheckBox(); + this.label5 = new System.Windows.Forms.Label(); + this.iterationsBox = new System.Windows.Forms.TextBox(); + this.label4 = new System.Windows.Forms.Label(); + this.selectionBox = new System.Windows.Forms.ComboBox(); + this.label3 = new System.Windows.Forms.Label(); + this.populationSizeBox = new System.Windows.Forms.TextBox(); + this.label2 = new System.Windows.Forms.Label(); + this.groupBox3 = new System.Windows.Forms.GroupBox(); + this.pathLengthBox = new System.Windows.Forms.TextBox(); + this.label7 = new System.Windows.Forms.Label(); + this.currentIterationBox = new System.Windows.Forms.TextBox(); + this.label6 = new System.Windows.Forms.Label(); + this.startButton = new System.Windows.Forms.Button(); + this.stopButton = new System.Windows.Forms.Button(); + this.groupBox1.SuspendLayout(); + this.groupBox2.SuspendLayout(); + this.groupBox3.SuspendLayout(); + this.SuspendLayout(); + // + // groupBox1 + // + this.groupBox1.Controls.Add(this.generateMapButton); + this.groupBox1.Controls.Add(this.citiesCountBox); + this.groupBox1.Controls.Add(this.label1); + this.groupBox1.Controls.Add(this.mapControl); + this.groupBox1.Location = new System.Drawing.Point(10, 10); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(300, 340); + this.groupBox1.TabIndex = 0; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "Map"; + // + // generateMapButton + // + this.generateMapButton.Location = new System.Drawing.Point(110, 309); + this.generateMapButton.Name = "generateMapButton"; + this.generateMapButton.Size = new System.Drawing.Size(75, 22); + this.generateMapButton.TabIndex = 3; + this.generateMapButton.Text = "&Generate"; + this.generateMapButton.Click += new System.EventHandler(this.generateMapButton_Click); + // + // citiesCountBox + // + this.citiesCountBox.Location = new System.Drawing.Point(50, 310); + this.citiesCountBox.Name = "citiesCountBox"; + this.citiesCountBox.Size = new System.Drawing.Size(50, 20); + this.citiesCountBox.TabIndex = 2; + this.citiesCountBox.Text = ""; + // + // label1 + // + this.label1.Location = new System.Drawing.Point(10, 312); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(40, 16); + this.label1.TabIndex = 1; + this.label1.Text = "Cities:"; + // + // mapControl + // + this.mapControl.Location = new System.Drawing.Point(10, 20); + this.mapControl.Name = "mapControl"; + this.mapControl.Size = new System.Drawing.Size(280, 280); + this.mapControl.TabIndex = 0; + // + // groupBox2 + // + this.groupBox2.Controls.Add(this.greedyCrossoverBox); + this.groupBox2.Controls.Add(this.label5); + this.groupBox2.Controls.Add(this.iterationsBox); + this.groupBox2.Controls.Add(this.label4); + this.groupBox2.Controls.Add(this.selectionBox); + this.groupBox2.Controls.Add(this.label3); + this.groupBox2.Controls.Add(this.populationSizeBox); + this.groupBox2.Controls.Add(this.label2); + this.groupBox2.Location = new System.Drawing.Point(320, 10); + this.groupBox2.Name = "groupBox2"; + this.groupBox2.Size = new System.Drawing.Size(185, 225); + this.groupBox2.TabIndex = 1; + this.groupBox2.TabStop = false; + this.groupBox2.Text = "Settings"; + // + // greedyCrossoverBox + // + this.greedyCrossoverBox.Location = new System.Drawing.Point(10, 70); + this.greedyCrossoverBox.Name = "greedyCrossoverBox"; + this.greedyCrossoverBox.Size = new System.Drawing.Size(120, 24); + this.greedyCrossoverBox.TabIndex = 7; + this.greedyCrossoverBox.Text = "Greedy crossover"; + // + // label5 + // + this.label5.Font = new System.Drawing.Font("Microsoft Sans Serif", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); + this.label5.Location = new System.Drawing.Point(125, 200); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(58, 15); + this.label5.TabIndex = 6; + this.label5.Text = "( 0 - inifinity )"; + // + // iterationsBox + // + this.iterationsBox.Location = new System.Drawing.Point(125, 180); + this.iterationsBox.Name = "iterationsBox"; + this.iterationsBox.Size = new System.Drawing.Size(50, 20); + this.iterationsBox.TabIndex = 5; + this.iterationsBox.Text = ""; + // + // label4 + // + this.label4.Location = new System.Drawing.Point(10, 182); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(60, 16); + this.label4.TabIndex = 4; + this.label4.Text = "Iterations:"; + // + // selectionBox + // + this.selectionBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.selectionBox.Items.AddRange(new object[] { + "Elite", + "Rank", + "Roulette"}); + this.selectionBox.Location = new System.Drawing.Point(110, 45); + this.selectionBox.Name = "selectionBox"; + this.selectionBox.Size = new System.Drawing.Size(65, 21); + this.selectionBox.TabIndex = 3; + // + // label3 + // + this.label3.Location = new System.Drawing.Point(10, 47); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(100, 16); + this.label3.TabIndex = 2; + this.label3.Text = "Selection method:"; + // + // populationSizeBox + // + this.populationSizeBox.Location = new System.Drawing.Point(125, 20); + this.populationSizeBox.Name = "populationSizeBox"; + this.populationSizeBox.Size = new System.Drawing.Size(50, 20); + this.populationSizeBox.TabIndex = 1; + this.populationSizeBox.Text = ""; + // + // label2 + // + this.label2.Location = new System.Drawing.Point(10, 22); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(90, 16); + this.label2.TabIndex = 0; + this.label2.Text = "Population size:"; + // + // groupBox3 + // + this.groupBox3.Controls.Add(this.pathLengthBox); + this.groupBox3.Controls.Add(this.label7); + this.groupBox3.Controls.Add(this.currentIterationBox); + this.groupBox3.Controls.Add(this.label6); + this.groupBox3.Location = new System.Drawing.Point(320, 240); + this.groupBox3.Name = "groupBox3"; + this.groupBox3.Size = new System.Drawing.Size(185, 75); + this.groupBox3.TabIndex = 2; + this.groupBox3.TabStop = false; + this.groupBox3.Text = "Current iteration"; + // + // pathLengthBox + // + this.pathLengthBox.Location = new System.Drawing.Point(125, 45); + this.pathLengthBox.Name = "pathLengthBox"; + this.pathLengthBox.ReadOnly = true; + this.pathLengthBox.Size = new System.Drawing.Size(50, 20); + this.pathLengthBox.TabIndex = 3; + this.pathLengthBox.Text = ""; + // + // label7 + // + this.label7.Location = new System.Drawing.Point(10, 47); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(80, 16); + this.label7.TabIndex = 2; + this.label7.Text = "Path length:"; + // + // currentIterationBox + // + this.currentIterationBox.Location = new System.Drawing.Point(125, 20); + this.currentIterationBox.Name = "currentIterationBox"; + this.currentIterationBox.ReadOnly = true; + this.currentIterationBox.Size = new System.Drawing.Size(50, 20); + this.currentIterationBox.TabIndex = 1; + this.currentIterationBox.Text = ""; + // + // label6 + // + this.label6.Location = new System.Drawing.Point(10, 22); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(50, 16); + this.label6.TabIndex = 0; + this.label6.Text = "Iteration:"; + // + // startButton + // + this.startButton.Location = new System.Drawing.Point(340, 325); + this.startButton.Name = "startButton"; + this.startButton.TabIndex = 3; + this.startButton.Text = "&Start"; + this.startButton.Click += new System.EventHandler(this.startButton_Click); + // + // stopButton + // + this.stopButton.Enabled = false; + this.stopButton.Location = new System.Drawing.Point(430, 325); + this.stopButton.Name = "stopButton"; + this.stopButton.TabIndex = 4; + this.stopButton.Text = "S&top"; + this.stopButton.Click += new System.EventHandler(this.stopButton_Click); + // + // MainForm + // + this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); + this.ClientSize = new System.Drawing.Size(514, 360); + this.Controls.Add(this.stopButton); + this.Controls.Add(this.startButton); + this.Controls.Add(this.groupBox3); + this.Controls.Add(this.groupBox2); + this.Controls.Add(this.groupBox1); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.MaximizeBox = false; + this.Name = "MainForm"; + this.Text = "Traveling Salesman Problem using Genetic Algorithms"; + this.Closing += new System.ComponentModel.CancelEventHandler(this.MainForm_Closing); + this.groupBox1.ResumeLayout(false); + this.groupBox2.ResumeLayout(false); + this.groupBox3.ResumeLayout(false); + this.ResumeLayout(false); + + } + #endregion + + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main( ) + { + Application.Run( new MainForm( ) ); + } + + // Delegates to enable async calls for setting controls properties + private delegate void SetTextCallback( System.Windows.Forms.Control control, string text ); + + // Thread safe updating of control's text property + private void SetText( System.Windows.Forms.Control control, string text ) + { + if ( control.InvokeRequired ) + { + SetTextCallback d = new SetTextCallback( SetText ); + Invoke( d, new object[] { control, text } ); + } + else + { + control.Text = text; + } + } + + // On main form closing + private void MainForm_Closing( object sender, System.ComponentModel.CancelEventArgs e ) + { + // check if worker thread is running + if ( ( workerThread != null ) && ( workerThread.IsAlive ) ) + { + needToStop = true; + while ( !workerThread.Join( 100 ) ) + Application.DoEvents( ); + } + } + + // Update settings controls + private void UpdateSettings( ) + { + citiesCountBox.Text = citiesCount.ToString( ); + populationSizeBox.Text = populationSize.ToString( ); + iterationsBox.Text = iterations.ToString( ); + } + + // Delegates to enable async calls for setting controls properties + private delegate void EnableCallback( bool enable ); + + // Enable/disale controls (safe for threading) + private void EnableControls( bool enable ) + { + if ( InvokeRequired ) + { + EnableCallback d = new EnableCallback( EnableControls ); + Invoke( d, new object[] { enable } ); + } + else + { + citiesCountBox.Enabled = enable; + populationSizeBox.Enabled = enable; + iterationsBox.Enabled = enable; + selectionBox.Enabled = enable; + + generateMapButton.Enabled = enable; + + startButton.Enabled = enable; + stopButton.Enabled = !enable; + } + } + + // Generate new map for the Traivaling Salesman problem + private void GenerateMap( ) + { + Random rand = new Random( (int) DateTime.Now.Ticks ); + + // create coordinates array + map = new double[citiesCount, 2]; + + for ( int i = 0; i < citiesCount; i++ ) + { + map[i, 0] = rand.Next( 1001 ); + map[i, 1] = rand.Next( 1001 ); + } + + // set the map + mapControl.UpdateDataSeries( "map", map ); + // erase path if it is + mapControl.UpdateDataSeries( "path", null ); + } + + // On "Generate" button click - generate map + private void generateMapButton_Click( object sender, System.EventArgs e ) + { + // get cities count + try + { + citiesCount = Math.Max( 5, Math.Min( 50, int.Parse( citiesCountBox.Text ) ) ); + } + catch + { + citiesCount = 20; + } + citiesCountBox.Text = citiesCount.ToString( ); + + // regenerate map + GenerateMap( ); + } + + // On "Start" button click + private void startButton_Click(object sender, System.EventArgs e) + { + // get population size + try + { + populationSize = Math.Max( 10, Math.Min( 100, int.Parse( populationSizeBox.Text ) ) ); + } + catch + { + populationSize = 40; + } + // iterations + try + { + iterations = Math.Max( 0, int.Parse( iterationsBox.Text ) ); + } + catch + { + iterations = 100; + } + // update settings controls + UpdateSettings( ); + + selectionMethod = selectionBox.SelectedIndex; + greedyCrossover = greedyCrossoverBox.Checked; + + // disable all settings controls except "Stop" button + EnableControls( false ); + + // run worker thread + needToStop = false; + workerThread = new Thread( new ThreadStart( SearchSolution ) ); + workerThread.Start( ); + } + + // On "Stop" button click + private void stopButton_Click( object sender, System.EventArgs e ) + { + // stop worker thread + if ( workerThread != null ) + { + needToStop = true; + while ( !workerThread.Join( 100 ) ) + Application.DoEvents( ); + workerThread = null; + } + } + + // Worker thread + void SearchSolution( ) + { + // create fitness function + TSPFitnessFunction fitnessFunction = new TSPFitnessFunction( map ); + // create population + Population population = new Population( populationSize, + ( greedyCrossover ) ? new TSPChromosome( map ) : new PermutationChromosome( citiesCount ), + fitnessFunction, + ( selectionMethod == 0 ) ? (ISelectionMethod) new EliteSelection( ) : + ( selectionMethod == 1 ) ? (ISelectionMethod) new RankSelection( ) : + (ISelectionMethod) new RouletteWheelSelection( ) + ); + // iterations + int i = 1; + + // path + double[,] path = new double[citiesCount + 1, 2]; + + // loop + while ( !needToStop ) + { + // run one epoch of genetic algorithm + population.RunEpoch( ); + + // display current path + ushort[] bestValue = ((PermutationChromosome) population.BestChromosome).Value; + + for ( int j = 0; j < citiesCount; j++ ) + { + path[j, 0] = map[bestValue[j], 0]; + path[j, 1] = map[bestValue[j], 1]; + } + path[citiesCount, 0] = map[bestValue[0], 0]; + path[citiesCount, 1] = map[bestValue[0], 1]; + + mapControl.UpdateDataSeries( "path", path ); + + // set current iteration's info + SetText( currentIterationBox, i.ToString( ) ); + SetText( pathLengthBox, fitnessFunction.PathLength( population.BestChromosome ).ToString( ) ); + + // increase current iteration + i++; + + // + if ( ( iterations != 0 ) && ( i > iterations ) ) + break; + } + + // enable settings controls + EnableControls( true ); + } + } +} diff --git a/Samples/Genetic/TSP/MainForm.resx b/Samples/Genetic/TSP/MainForm.resx new file mode 100644 index 00000000..264e7bc4 --- /dev/null +++ b/Samples/Genetic/TSP/MainForm.resx @@ -0,0 +1,346 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Private + + + 8, 8 + + + False + + + False + + + True + + + Private + + + False + + + Private + + + Private + + + Private + + + False + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + Private + + + 8, 8 + + + False + + + False + + + True + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + Private + + + False + + + Private + + + False + + + Private + + + Private + + + Private + + + False + + + Private + + + False + + + Private + + + Private + + + Private + + + False + + + Private + + + False + + + Private + + + Private + + + Private + + + 8, 8 + + + False + + + False + + + True + + + Private + + + Private + + + False + + + Private + + + False + + + Private + + + Private + + + Private + + + False + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + (Default) + + + False + + + False + + + 8, 8 + + + True + + + 80 + + + MainForm + + + False + + + Private + + \ No newline at end of file diff --git a/Samples/Genetic/TSP/TSP.csproj b/Samples/Genetic/TSP/TSP.csproj new file mode 100644 index 00000000..2040e5e2 --- /dev/null +++ b/Samples/Genetic/TSP/TSP.csproj @@ -0,0 +1,180 @@ + + + + Local + 9.0.21022 + 2.0 + {DEC346FD-C496-4B3E-A0E9-60AE011E3C49} + Debug + AnyCPU + App.ico + + + TSP + + + JScript + Grid + IE50 + false + WinExe + TSP + OnBuildSuccess + + + + + + + 3.5 + v2.0 + false + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + true + + + bin\Debug\ + false + 285212672 + false + + + DEBUG;TRACE + + + true + 4096 + false + + + false + false + false + false + 4 + full + prompt + + + bin\Release\ + false + 285212672 + false + + + TRACE + + + false + 4096 + false + + + true + false + false + false + 4 + none + prompt + + + + False + ..\..\..\Release\AForge.dll + + + False + ..\..\..\Release\AForge.Controls.dll + + + False + ..\..\..\Release\AForge.Genetic.dll + + + System + + + System.Data + + + System.Drawing + + + System.Windows.Forms + + + System.XML + + + + + + Code + + + Form + + + Code + + + Code + + + MainForm.cs + + + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 2.0 %28x86%29 + false + + + False + .NET Framework 3.0 %28x86%29 + false + + + False + .NET Framework 3.5 + true + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 3.1 + true + + + + + + + + + + \ No newline at end of file diff --git a/Samples/Genetic/TSP/TSP.sln b/Samples/Genetic/TSP/TSP.sln new file mode 100644 index 00000000..6678dfae --- /dev/null +++ b/Samples/Genetic/TSP/TSP.sln @@ -0,0 +1,19 @@ +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual C# Express 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TSP", "TSP.csproj", "{DEC346FD-C496-4B3E-A0E9-60AE011E3C49}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {DEC346FD-C496-4B3E-A0E9-60AE011E3C49}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DEC346FD-C496-4B3E-A0E9-60AE011E3C49}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DEC346FD-C496-4B3E-A0E9-60AE011E3C49}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DEC346FD-C496-4B3E-A0E9-60AE011E3C49}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Samples/Genetic/TSP/TSPChromosome.cs b/Samples/Genetic/TSP/TSPChromosome.cs new file mode 100644 index 00000000..f7219e6c --- /dev/null +++ b/Samples/Genetic/TSP/TSPChromosome.cs @@ -0,0 +1,158 @@ +// Traveling Salesman Problem using Genetic Algorithms +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2006-2011 +// contacts@aforgenet.com +// + +using System; +using AForge.Genetic; + +namespace TSP +{ + /// + /// The chromosome is to solve TSP task (Travailing Salesman Problem). + /// + public class TSPChromosome : PermutationChromosome + { + private double[,] map = null; + + /// + /// Constructor + /// + public TSPChromosome( double[,] map ) : base( map.GetLength( 0 ) ) + { + this.map = map; + } + + /// + /// Copy Constructor + /// + protected TSPChromosome( TSPChromosome source ) : base( source ) + { + this.map = source.map; + } + + /// + /// Create new random chromosome (factory method) + /// + public override IChromosome CreateNew( ) + { + return new TSPChromosome( map ); + } + + /// + /// Clone the chromosome + /// + public override IChromosome Clone( ) + { + return new TSPChromosome( this ); + } + + /// + /// Crossover operator + /// + public override void Crossover( IChromosome pair ) + { + TSPChromosome p = (TSPChromosome) pair; + + // check for correct pair + if ( ( p != null ) && ( p.length == length ) ) + { + ushort[] child1 = new ushort[length]; + ushort[] child2 = new ushort[length]; + + // create two children + CreateChildUsingCrossover( this.val, p.val, child1 ); + CreateChildUsingCrossover( p.val, this.val, child2 ); + + // replace parents with children + this.val = child1; + p.val = child2; + } + } + + // Produce new child applying crossover to two parents + private void CreateChildUsingCrossover( ushort[] parent1, ushort[] parent2, ushort[] child ) + { + // temporary array to specify if certain gene already + // present in the child + bool[] geneIsBusy = new bool[length]; + // previous gene in the child and two next candidates + ushort prev, next1, next2; + // candidates validness - candidate is valid, if it is not + // yet in the child + bool valid1, valid2; + + int j, k = length - 1; + + // first gene of the child is taken from the second parent + prev = child[0] = parent2[0]; + geneIsBusy[prev] = true; + + // resolve all other genes of the child + for ( int i = 1; i < length; i++ ) + { + // find the next gene after PREV in both parents + // 1 + for ( j = 0; j < k; j++ ) + { + if ( parent1[j] == prev ) + break; + } + next1 = ( j == k ) ? parent1[0] : parent1[j + 1]; + // 2 + for ( j = 0; j < k; j++ ) + { + if ( parent2[j] == prev ) + break; + } + next2 = ( j == k ) ? parent2[0] : parent2[j + 1]; + + // check candidate genes for validness + valid1 = !geneIsBusy[next1]; + valid2 = !geneIsBusy[next2]; + + // select gene + if ( valid1 && valid2 ) + { + // both candidates are valid + // select one closest city + double dx1 = map[next1, 0] - map[prev, 0]; + double dy1 = map[next1, 1] - map[prev, 1]; + double dx2 = map[next2, 0] - map[prev, 0]; + double dy2 = map[next2, 1] - map[prev, 1]; + + prev = ( Math.Sqrt( dx1 * dx1 + dy1 * dy1 ) < Math.Sqrt( dx2 * dx2 + dy2 * dy2 ) ) ? next1 : next2; + } + else if ( !( valid1 || valid2 ) ) + { + // none of candidates is valid, so + // select random gene which is not in the child yet + int r = j = rand.Next( length ); + + // go down first + while ( ( r < length ) && ( geneIsBusy[r] == true ) ) + r++; + if ( r == length ) + { + // not found, try to go up + r = j - 1; + while ( geneIsBusy[r] == true ) // && ( r >= 0 ) + r--; + } + prev = (ushort) r; + } + else + { + // one of candidates is valid + prev = ( valid1 ) ? next1 : next2; + } + + child[i] = prev; + geneIsBusy[prev] = true; + } + } + } +} diff --git a/Samples/Genetic/TSP/TSPFitnessFunction.cs b/Samples/Genetic/TSP/TSPFitnessFunction.cs new file mode 100644 index 00000000..0ee7755a --- /dev/null +++ b/Samples/Genetic/TSP/TSPFitnessFunction.cs @@ -0,0 +1,84 @@ +// AForge Framework +// Traveling Salesman Problem using Genetic Algorithms +// +// Copyright © Andrew Kirillov, 2006-2008 +// andrew.kirillov@gmail.com +// + +using System; +using AForge.Genetic; + +namespace TSP +{ + /// + /// Fitness function for TSP task (Travaling Salasman Problem) + /// + public class TSPFitnessFunction : IFitnessFunction + { + // map + private double[,] map = null; + + // Constructor + public TSPFitnessFunction( double[,] map ) + { + this.map = map; + } + + /// + /// Evaluate chromosome - calculates its fitness value + /// + public double Evaluate( IChromosome chromosome ) + { + return 1 / ( PathLength( chromosome ) + 1 ); + } + + /// + /// Translate genotype to phenotype + /// + public object Translate( IChromosome chromosome ) + { + return chromosome.ToString( ); + } + + /// + /// Calculate path length represented by the specified chromosome + /// + public double PathLength( IChromosome chromosome ) + { + // salesman path + ushort[] path = ((PermutationChromosome) chromosome).Value; + + // check path size + if ( path.Length != map.GetLength( 0 ) ) + { + throw new ArgumentException( "Invalid path specified - not all cities are visited" ); + } + + // path length + int prev = path[0]; + int curr = path[path.Length - 1]; + + // calculate distance between the last and the first city + double dx = map[curr, 0] - map[prev, 0]; + double dy = map[curr, 1] - map[prev, 1]; + double pathLength = Math.Sqrt( dx * dx + dy * dy ); + + // calculate the path length from the first city to the last + for ( int i = 1, n = path.Length; i < n; i++ ) + { + // get current city + curr = path[i]; + + // calculate distance + dx = map[curr, 0] - map[prev, 0]; + dy = map[curr, 1] - map[prev, 1]; + pathLength += Math.Sqrt( dx * dx + dy * dy ); + + // put current city as previous + prev = curr; + } + + return pathLength; + } + } +} diff --git a/Samples/Genetic/TimeSeries/App.ico b/Samples/Genetic/TimeSeries/App.ico new file mode 100644 index 00000000..3a5525fd Binary files /dev/null and b/Samples/Genetic/TimeSeries/App.ico differ diff --git a/Samples/Genetic/TimeSeries/AssemblyInfo.cs b/Samples/Genetic/TimeSeries/AssemblyInfo.cs new file mode 100644 index 00000000..c41a029a --- /dev/null +++ b/Samples/Genetic/TimeSeries/AssemblyInfo.cs @@ -0,0 +1,59 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly: AssemblyTitle( "Genetic Time Series" )] +[assembly: AssemblyDescription( "Genetic Time Series sample" )] +[assembly: AssemblyConfiguration( "" )] +[assembly: AssemblyCompany( "AForge" )] +[assembly: AssemblyProduct( "AForge.NET" )] +[assembly: AssemblyCopyright( "AForge © 2009" )] +[assembly: AssemblyTrademark( "" )] +[assembly: AssemblyCulture( "" )] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion( "2.0.0.0" )] +[assembly: AssemblyFileVersion( "2.0.0.0" )] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign( false )] +[assembly: AssemblyKeyFile( "" )] +[assembly: AssemblyKeyName( "" )] diff --git a/Samples/Genetic/TimeSeries/Data Samples/exponent.csv b/Samples/Genetic/TimeSeries/Data Samples/exponent.csv new file mode 100644 index 00000000..b198f6ec --- /dev/null +++ b/Samples/Genetic/TimeSeries/Data Samples/exponent.csv @@ -0,0 +1,50 @@ +10 +10.513 +11.052 +11.618 +12.214 +12.84 +13.499 +14.191 +14.918 +15.683 +16.487 +17.333 +18.221 +19.155 +20.138 +21.17 +22.255 +23.396 +24.596 +25.857 +27.183 +28.577 +30.042 +31.582 +33.201 +34.903 +36.693 +38.574 +40.552 +42.631 +44.817 +47.115 +49.53 +52.07 +54.739 +57.546 +60.496 +63.598 +66.859 +70.287 +73.891 +77.679 +81.662 +85.849 +90.25 +94.877 +99.742 +104.856 +110.232 +115.883 diff --git a/Samples/Genetic/TimeSeries/Data Samples/growing sinusoid.csv b/Samples/Genetic/TimeSeries/Data Samples/growing sinusoid.csv new file mode 100644 index 00000000..6f952073 --- /dev/null +++ b/Samples/Genetic/TimeSeries/Data Samples/growing sinusoid.csv @@ -0,0 +1,50 @@ +40 +43.545 +47.214 +50.518 +52.959 +54.102 +53.639 +51.449 +47.621 +42.47 +36.506 +30.392 +24.864 +20.646 +18.356 +18.424 +21.022 +26.027 +33.015 +41.295 +49.977 +58.067 +64.579 +68.656 +69.681 +67.358 +61.772 +53.394 +43.044 +31.816 +20.959 +11.741 +5.299 +2.5 +3.833 +9.327 +18.537 +30.57 +44.172 +57.857 +70.071 +79.368 +84.577 +84.954 +80.276 +70.889 +57.687 +42.03 +25.605 +10.242 diff --git a/Samples/Genetic/TimeSeries/Data Samples/parabola.csv b/Samples/Genetic/TimeSeries/Data Samples/parabola.csv new file mode 100644 index 00000000..24cb8d0e --- /dev/null +++ b/Samples/Genetic/TimeSeries/Data Samples/parabola.csv @@ -0,0 +1,50 @@ +101 +93.16 +85.64 +78.44 +71.56 +65 +58.76 +52.84 +47.24 +41.96 +37 +32.36 +28.04 +24.04 +20.36 +17 +13.96 +11.24 +8.84 +6.76 +5 +3.56 +2.44 +1.64 +1.16 +1 +1.16 +1.64 +2.44 +3.56 +5 +6.76 +8.84 +11.24 +13.96 +17 +20.36 +24.04 +28.04 +32.36 +37 +41.96 +47.24 +52.84 +58.76 +65 +71.56 +78.44 +85.64 +93.16 diff --git a/Samples/Genetic/TimeSeries/Data Samples/sigmoid.csv b/Samples/Genetic/TimeSeries/Data Samples/sigmoid.csv new file mode 100644 index 00000000..67082368 --- /dev/null +++ b/Samples/Genetic/TimeSeries/Data Samples/sigmoid.csv @@ -0,0 +1,50 @@ +2.018 +2.021 +2.025 +2.029 +2.034 +2.039 +2.046 +2.053 +2.062 +2.072 +2.083 +2.096 +2.111 +2.128 +2.147 +2.168 +2.192 +2.218 +2.246 +2.277 +2.31 +2.345 +2.382 +2.421 +2.46 +2.5 +2.54 +2.579 +2.618 +2.655 +2.69 +2.723 +2.754 +2.782 +2.808 +2.832 +2.853 +2.872 +2.889 +2.904 +2.917 +2.928 +2.938 +2.947 +2.954 +2.961 +2.966 +2.971 +2.975 +2.979 diff --git a/Samples/Genetic/TimeSeries/Data Samples/sinusoid.csv b/Samples/Genetic/TimeSeries/Data Samples/sinusoid.csv new file mode 100644 index 00000000..8f11b3cb --- /dev/null +++ b/Samples/Genetic/TimeSeries/Data Samples/sinusoid.csv @@ -0,0 +1,50 @@ +2 +2.327 +2.618 +2.841 +2.972 +2.995 +2.909 +2.723 +2.457 +2.141 +1.809 +1.499 +1.243 +1.071 +1.001 +1.041 +1.187 +1.422 +1.721 +2.05 +2.374 +2.657 +2.867 +2.983 +2.989 +2.887 +2.688 +2.412 +2.091 +1.76 +1.456 +1.211 +1.054 +1 +1.057 +1.217 +1.463 +1.769 +2.1 +2.42 +2.694 +2.891 +2.991 +2.981 +2.863 +2.65 +2.366 +2.041 +1.712 +1.415 diff --git a/Samples/Genetic/TimeSeries/ExSettingsDialog.cs b/Samples/Genetic/TimeSeries/ExSettingsDialog.cs new file mode 100644 index 00000000..520f0ac5 --- /dev/null +++ b/Samples/Genetic/TimeSeries/ExSettingsDialog.cs @@ -0,0 +1,264 @@ +// Time Series Prediction using Genetic Programming and Gene Expression Programming +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2006-2009 +// andrew.kirillov@aforgenet.com + +using System; +using System.Drawing; +using System.Collections; +using System.ComponentModel; +using System.Windows.Forms; + +namespace TimeSeries +{ + /// + /// Summary description for ExSettingsDialog. + /// + public class ExSettingsDialog : System.Windows.Forms.Form + { + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.TextBox maxInitialLevelBox; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.TextBox maxLevelBox; + private System.Windows.Forms.GroupBox groupBox2; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.TextBox headLengthBox; + private System.Windows.Forms.Button okButton; + private System.Windows.Forms.Button cancelButton; + /// + /// Required designer variable. + /// + private System.ComponentModel.Container components = null; + + private int maxInitialTreeLevel = 3; + private int maxTreeLevel = 5; + private int headLength = 20; + + // Max initial tree level property + public int MaxInitialTreeLevel + { + get { return maxInitialTreeLevel; } + set { maxInitialTreeLevel = value; } + } + // Max tree level property + public int MaxTreeLevel + { + get { return maxTreeLevel; } + set { maxTreeLevel = value; } + } + // Head length property + public int HeadLength + { + get { return headLength; } + set { headLength = value; } + } + + + // Constructor + public ExSettingsDialog( ) + { + // + // Required for Windows Form Designer support + // + InitializeComponent(); + } + + /// + /// Clean up any resources being used. + /// + protected override void Dispose( bool disposing ) + { + if( disposing ) + { + if(components != null) + { + components.Dispose(); + } + } + base.Dispose( disposing ); + } + + #region Windows Form Designer generated code + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.maxLevelBox = new System.Windows.Forms.TextBox(); + this.label2 = new System.Windows.Forms.Label(); + this.maxInitialLevelBox = new System.Windows.Forms.TextBox(); + this.label1 = new System.Windows.Forms.Label(); + this.groupBox2 = new System.Windows.Forms.GroupBox(); + this.headLengthBox = new System.Windows.Forms.TextBox(); + this.label3 = new System.Windows.Forms.Label(); + this.okButton = new System.Windows.Forms.Button(); + this.cancelButton = new System.Windows.Forms.Button(); + this.groupBox1.SuspendLayout(); + this.groupBox2.SuspendLayout(); + this.SuspendLayout(); + // + // groupBox1 + // + this.groupBox1.Controls.AddRange(new System.Windows.Forms.Control[] { + this.maxLevelBox, + this.label2, + this.maxInitialLevelBox, + this.label1}); + this.groupBox1.Location = new System.Drawing.Point(10, 10); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(210, 80); + this.groupBox1.TabIndex = 0; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "GP Settings"; + // + // maxLevelBox + // + this.maxLevelBox.Location = new System.Drawing.Point(145, 50); + this.maxLevelBox.Name = "maxLevelBox"; + this.maxLevelBox.Size = new System.Drawing.Size(50, 20); + this.maxLevelBox.TabIndex = 3; + this.maxLevelBox.Text = ""; + // + // label2 + // + this.label2.Location = new System.Drawing.Point(10, 52); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(100, 16); + this.label2.TabIndex = 2; + this.label2.Text = "Max tree level:"; + // + // maxInitialLevelBox + // + this.maxInitialLevelBox.Location = new System.Drawing.Point(145, 20); + this.maxInitialLevelBox.Name = "maxInitialLevelBox"; + this.maxInitialLevelBox.Size = new System.Drawing.Size(50, 20); + this.maxInitialLevelBox.TabIndex = 1; + this.maxInitialLevelBox.Text = ""; + // + // label1 + // + this.label1.Location = new System.Drawing.Point(10, 22); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(135, 16); + this.label1.TabIndex = 0; + this.label1.Text = "Maximum initial tree level:"; + // + // groupBox2 + // + this.groupBox2.Controls.AddRange(new System.Windows.Forms.Control[] { + this.headLengthBox, + this.label3}); + this.groupBox2.Location = new System.Drawing.Point(10, 100); + this.groupBox2.Name = "groupBox2"; + this.groupBox2.Size = new System.Drawing.Size(210, 50); + this.groupBox2.TabIndex = 1; + this.groupBox2.TabStop = false; + this.groupBox2.Text = "GEP Settings"; + // + // headLengthBox + // + this.headLengthBox.Location = new System.Drawing.Point(145, 20); + this.headLengthBox.Name = "headLengthBox"; + this.headLengthBox.Size = new System.Drawing.Size(50, 20); + this.headLengthBox.TabIndex = 1; + this.headLengthBox.Text = ""; + // + // label3 + // + this.label3.Location = new System.Drawing.Point(10, 22); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(100, 16); + this.label3.TabIndex = 0; + this.label3.Text = "Head length:"; + // + // okButton + // + this.okButton.DialogResult = System.Windows.Forms.DialogResult.OK; + this.okButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.okButton.Location = new System.Drawing.Point(60, 160); + this.okButton.Name = "okButton"; + this.okButton.TabIndex = 2; + this.okButton.Text = "&Ok"; + this.okButton.Click += new System.EventHandler(this.okButton_Click); + // + // cancelButton + // + this.cancelButton.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.cancelButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.cancelButton.Location = new System.Drawing.Point(145, 160); + this.cancelButton.Name = "cancelButton"; + this.cancelButton.TabIndex = 3; + this.cancelButton.Text = "&Cancel"; + // + // ExSettingsDialog + // + this.AcceptButton = this.okButton; + this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); + this.CancelButton = this.cancelButton; + this.ClientSize = new System.Drawing.Size(234, 193); + this.Controls.AddRange(new System.Windows.Forms.Control[] { + this.cancelButton, + this.okButton, + this.groupBox2, + this.groupBox1}); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "ExSettingsDialog"; + this.Opacity = 0.800000011920929; + this.ShowInTaskbar = false; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Extended Settings"; + this.Load += new System.EventHandler(this.ExSettingsDialog_Load); + this.groupBox1.ResumeLayout(false); + this.groupBox2.ResumeLayout(false); + this.ResumeLayout(false); + + } + #endregion + + // On form load + private void ExSettingsDialog_Load(object sender, System.EventArgs e) + { + maxInitialLevelBox.Text = maxInitialTreeLevel.ToString( ); + maxLevelBox.Text = maxTreeLevel.ToString( ); + headLengthBox.Text = headLength.ToString( ); + } + + // On "Ok" button click + private void okButton_Click(object sender, System.EventArgs e) + { + // max initial tree level + try + { + maxInitialTreeLevel = Math.Max( 1, Math.Min( 7, int.Parse( maxInitialLevelBox.Text ) ) ); + } + catch + { + maxInitialTreeLevel = 3; + } + // max tree level + try + { + maxTreeLevel = Math.Max( 2, Math.Min( 9, int.Parse( maxLevelBox.Text ) ) ); + } + catch + { + maxTreeLevel = 5; + } + // head length + try + { + headLength = Math.Max( 3, Math.Min( 50, int.Parse( headLengthBox.Text ) ) ); + } + catch + { + headLength = 20; + } + } + } +} diff --git a/Samples/Genetic/TimeSeries/ExSettingsDialog.resx b/Samples/Genetic/TimeSeries/ExSettingsDialog.resx new file mode 100644 index 00000000..cb093632 --- /dev/null +++ b/Samples/Genetic/TimeSeries/ExSettingsDialog.resx @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ExSettingsDialog + + + False + + \ No newline at end of file diff --git a/Samples/Genetic/TimeSeries/MainForm.cs b/Samples/Genetic/TimeSeries/MainForm.cs new file mode 100644 index 00000000..ddf13db6 --- /dev/null +++ b/Samples/Genetic/TimeSeries/MainForm.cs @@ -0,0 +1,984 @@ +// Time Series Prediction using Genetic Programming and Gene Expression Programming +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2006-2011 +// contacts@aforgenet.com +// + +using System; +using System.Drawing; +using System.Collections; +using System.ComponentModel; +using System.Windows.Forms; +using System.Data; +using System.IO; +using System.Threading; + +using AForge; +using AForge.Genetic; +using AForge.Controls; + +namespace TimeSeries +{ + /// + /// Summary description for Form1. + /// + public class MainForm : System.Windows.Forms.Form + { + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.ListView dataList; + private System.Windows.Forms.ColumnHeader yColumnHeader; + private System.Windows.Forms.Button loadDataButton; + private System.Windows.Forms.OpenFileDialog openFileDialog; + private System.ComponentModel.IContainer components; + private System.Windows.Forms.GroupBox groupBox2; + private AForge.Controls.Chart chart; + private System.Windows.Forms.GroupBox groupBox3; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.TextBox populationSizeBox; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.ComboBox selectionBox; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.ComboBox functionsSetBox; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.ComboBox geneticMethodBox; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.TextBox windowSizeBox; + private System.Windows.Forms.Label label7; + private System.Windows.Forms.TextBox predictionSizeBox; + private System.Windows.Forms.Label label8; + private System.Windows.Forms.Label label9; + private System.Windows.Forms.TextBox iterationsBox; + private System.Windows.Forms.Label label10; + private System.Windows.Forms.Button startButton; + private System.Windows.Forms.Button stopButton; + private System.Windows.Forms.GroupBox groupBox4; + private System.Windows.Forms.Label label11; + private System.Windows.Forms.TextBox currentIterationBox; + private System.Windows.Forms.Label label12; + private System.Windows.Forms.TextBox currentLearningErrorBox; + private System.Windows.Forms.Label label13; + private System.Windows.Forms.TextBox currentPredictionErrorBox; + private System.Windows.Forms.GroupBox groupBox5; + private System.Windows.Forms.TextBox solutionBox; + private System.Windows.Forms.ColumnHeader estimatedYColumnHeader; + private System.Windows.Forms.Button moreSettingsButton; + private System.Windows.Forms.ToolTip toolTip; + + private double[] data = null; + private double[,] dataToShow = null; + + private int populationSize = 100; + private int iterations = 1000; + private int windowSize = 5; + private int predictionSize = 1; + private int selectionMethod = 0; + private int functionsSet = 0; + private int geneticMethod = 0; + + private int headLength = 20; + + private Thread workerThread = null; + private volatile bool needToStop = false; + + private double[,] windowDelimiter = new double[2, 2] { { 0, 0 }, { 0, 0 } }; + private double[,] predictionDelimiter = new double[2, 2] { { 0, 0 }, { 0, 0 } }; + + // Constructor + public MainForm( ) + { + // + // Required for Windows Form Designer support + // + InitializeComponent(); + + // + chart.AddDataSeries( "data", Color.Red, Chart.SeriesType.Dots, 5 ); + chart.AddDataSeries( "solution", Color.Blue, Chart.SeriesType.Line, 1 ); + chart.AddDataSeries( "window", Color.LightGray, Chart.SeriesType.Line, 1, false ); + chart.AddDataSeries( "prediction", Color.Gray, Chart.SeriesType.Line, 1, false ); + + selectionBox.SelectedIndex = selectionMethod; + functionsSetBox.SelectedIndex = functionsSet; + geneticMethodBox.SelectedIndex = geneticMethod; + UpdateSettings( ); + } + + /// + /// Clean up any resources being used. + /// + protected override void Dispose( bool disposing ) + { + if( disposing ) + { + if (components != null) + { + components.Dispose(); + } + } + base.Dispose( disposing ); + } + + #region Windows Form Designer generated code + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.dataList = new System.Windows.Forms.ListView(); + this.yColumnHeader = new System.Windows.Forms.ColumnHeader(); + this.estimatedYColumnHeader = new System.Windows.Forms.ColumnHeader(); + this.loadDataButton = new System.Windows.Forms.Button(); + this.openFileDialog = new System.Windows.Forms.OpenFileDialog(); + this.groupBox2 = new System.Windows.Forms.GroupBox(); + this.chart = new AForge.Controls.Chart(); + this.groupBox3 = new System.Windows.Forms.GroupBox(); + this.moreSettingsButton = new System.Windows.Forms.Button(); + this.label10 = new System.Windows.Forms.Label(); + this.iterationsBox = new System.Windows.Forms.TextBox(); + this.label9 = new System.Windows.Forms.Label(); + this.label8 = new System.Windows.Forms.Label(); + this.predictionSizeBox = new System.Windows.Forms.TextBox(); + this.label7 = new System.Windows.Forms.Label(); + this.windowSizeBox = new System.Windows.Forms.TextBox(); + this.label6 = new System.Windows.Forms.Label(); + this.label5 = new System.Windows.Forms.Label(); + this.geneticMethodBox = new System.Windows.Forms.ComboBox(); + this.label4 = new System.Windows.Forms.Label(); + this.functionsSetBox = new System.Windows.Forms.ComboBox(); + this.label3 = new System.Windows.Forms.Label(); + this.selectionBox = new System.Windows.Forms.ComboBox(); + this.label2 = new System.Windows.Forms.Label(); + this.populationSizeBox = new System.Windows.Forms.TextBox(); + this.label1 = new System.Windows.Forms.Label(); + this.startButton = new System.Windows.Forms.Button(); + this.stopButton = new System.Windows.Forms.Button(); + this.groupBox4 = new System.Windows.Forms.GroupBox(); + this.currentPredictionErrorBox = new System.Windows.Forms.TextBox(); + this.label13 = new System.Windows.Forms.Label(); + this.currentLearningErrorBox = new System.Windows.Forms.TextBox(); + this.label12 = new System.Windows.Forms.Label(); + this.currentIterationBox = new System.Windows.Forms.TextBox(); + this.label11 = new System.Windows.Forms.Label(); + this.groupBox5 = new System.Windows.Forms.GroupBox(); + this.solutionBox = new System.Windows.Forms.TextBox(); + this.toolTip = new System.Windows.Forms.ToolTip(this.components); + this.groupBox1.SuspendLayout(); + this.groupBox2.SuspendLayout(); + this.groupBox3.SuspendLayout(); + this.groupBox4.SuspendLayout(); + this.groupBox5.SuspendLayout(); + this.SuspendLayout(); + // + // groupBox1 + // + this.groupBox1.Controls.Add(this.dataList); + this.groupBox1.Controls.Add(this.loadDataButton); + this.groupBox1.Location = new System.Drawing.Point(10, 10); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(180, 380); + this.groupBox1.TabIndex = 0; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "Data"; + // + // dataList + // + this.dataList.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { + this.yColumnHeader, + this.estimatedYColumnHeader}); + this.dataList.FullRowSelect = true; + this.dataList.GridLines = true; + this.dataList.Location = new System.Drawing.Point(10, 20); + this.dataList.Name = "dataList"; + this.dataList.Size = new System.Drawing.Size(160, 315); + this.dataList.TabIndex = 1; + this.dataList.View = System.Windows.Forms.View.Details; + // + // yColumnHeader + // + this.yColumnHeader.Text = "Y:Real"; + this.yColumnHeader.Width = 70; + // + // estimatedYColumnHeader + // + this.estimatedYColumnHeader.Text = "Y:Estimated"; + this.estimatedYColumnHeader.Width = 70; + // + // loadDataButton + // + this.loadDataButton.Location = new System.Drawing.Point(10, 345); + this.loadDataButton.Name = "loadDataButton"; + this.loadDataButton.TabIndex = 1; + this.loadDataButton.Text = "&Load"; + this.loadDataButton.Click += new System.EventHandler(this.loadDataButton_Click); + // + // openFileDialog + // + this.openFileDialog.Filter = "CSV (Comma delimited) (*.csv)|*.csv"; + this.openFileDialog.Title = "Select data file"; + // + // groupBox2 + // + this.groupBox2.Controls.Add(this.chart); + this.groupBox2.Location = new System.Drawing.Point(200, 10); + this.groupBox2.Name = "groupBox2"; + this.groupBox2.Size = new System.Drawing.Size(300, 380); + this.groupBox2.TabIndex = 1; + this.groupBox2.TabStop = false; + this.groupBox2.Text = "Function"; + // + // chart + // + this.chart.Location = new System.Drawing.Point(10, 20); + this.chart.Name = "chart"; + this.chart.Size = new System.Drawing.Size(280, 350); + this.chart.TabIndex = 0; + // + // groupBox3 + // + this.groupBox3.Controls.Add(this.moreSettingsButton); + this.groupBox3.Controls.Add(this.label10); + this.groupBox3.Controls.Add(this.iterationsBox); + this.groupBox3.Controls.Add(this.label9); + this.groupBox3.Controls.Add(this.label8); + this.groupBox3.Controls.Add(this.predictionSizeBox); + this.groupBox3.Controls.Add(this.label7); + this.groupBox3.Controls.Add(this.windowSizeBox); + this.groupBox3.Controls.Add(this.label6); + this.groupBox3.Controls.Add(this.label5); + this.groupBox3.Controls.Add(this.geneticMethodBox); + this.groupBox3.Controls.Add(this.label4); + this.groupBox3.Controls.Add(this.functionsSetBox); + this.groupBox3.Controls.Add(this.label3); + this.groupBox3.Controls.Add(this.selectionBox); + this.groupBox3.Controls.Add(this.label2); + this.groupBox3.Controls.Add(this.populationSizeBox); + this.groupBox3.Controls.Add(this.label1); + this.groupBox3.Location = new System.Drawing.Point(510, 10); + this.groupBox3.Name = "groupBox3"; + this.groupBox3.Size = new System.Drawing.Size(185, 240); + this.groupBox3.TabIndex = 2; + this.groupBox3.TabStop = false; + this.groupBox3.Text = "Settings"; + // + // moreSettingsButton + // + this.moreSettingsButton.Font = new System.Drawing.Font("Microsoft Sans Serif", 6.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(204))); + this.moreSettingsButton.ForeColor = System.Drawing.SystemColors.ControlText; + this.moreSettingsButton.Location = new System.Drawing.Point(10, 220); + this.moreSettingsButton.Name = "moreSettingsButton"; + this.moreSettingsButton.Size = new System.Drawing.Size(25, 15); + this.moreSettingsButton.TabIndex = 17; + this.moreSettingsButton.Text = ">>"; + this.toolTip.SetToolTip(this.moreSettingsButton, "More settings"); + this.moreSettingsButton.Click += new System.EventHandler(this.moreSettingsButton_Click); + // + // label10 + // + this.label10.Font = new System.Drawing.Font("Microsoft Sans Serif", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); + this.label10.Location = new System.Drawing.Point(125, 220); + this.label10.Name = "label10"; + this.label10.Size = new System.Drawing.Size(58, 14); + this.label10.TabIndex = 16; + this.label10.Text = "( 0 - inifinity )"; + // + // iterationsBox + // + this.iterationsBox.Location = new System.Drawing.Point(125, 200); + this.iterationsBox.Name = "iterationsBox"; + this.iterationsBox.Size = new System.Drawing.Size(50, 20); + this.iterationsBox.TabIndex = 15; + this.iterationsBox.Text = ""; + // + // label9 + // + this.label9.Location = new System.Drawing.Point(10, 202); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size(70, 16); + this.label9.TabIndex = 14; + this.label9.Text = "Iterations:"; + // + // label8 + // + this.label8.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + this.label8.Location = new System.Drawing.Point(10, 190); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size(165, 2); + this.label8.TabIndex = 13; + // + // predictionSizeBox + // + this.predictionSizeBox.Location = new System.Drawing.Point(125, 160); + this.predictionSizeBox.Name = "predictionSizeBox"; + this.predictionSizeBox.Size = new System.Drawing.Size(50, 20); + this.predictionSizeBox.TabIndex = 12; + this.predictionSizeBox.Text = ""; + this.predictionSizeBox.TextChanged += new System.EventHandler(this.predictionSizeBox_TextChanged); + // + // label7 + // + this.label7.Location = new System.Drawing.Point(10, 162); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(90, 16); + this.label7.TabIndex = 11; + this.label7.Text = "Prediction size:"; + // + // windowSizeBox + // + this.windowSizeBox.Location = new System.Drawing.Point(125, 135); + this.windowSizeBox.Name = "windowSizeBox"; + this.windowSizeBox.Size = new System.Drawing.Size(50, 20); + this.windowSizeBox.TabIndex = 10; + this.windowSizeBox.Text = ""; + this.windowSizeBox.TextChanged += new System.EventHandler(this.windowSizeBox_TextChanged); + // + // label6 + // + this.label6.Location = new System.Drawing.Point(10, 137); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(80, 16); + this.label6.TabIndex = 9; + this.label6.Text = "Window size:"; + // + // label5 + // + this.label5.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + this.label5.Location = new System.Drawing.Point(10, 125); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(165, 2); + this.label5.TabIndex = 8; + // + // geneticMethodBox + // + this.geneticMethodBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.geneticMethodBox.Items.AddRange(new object[] { + "GP", + "GEP"}); + this.geneticMethodBox.Location = new System.Drawing.Point(110, 95); + this.geneticMethodBox.Name = "geneticMethodBox"; + this.geneticMethodBox.Size = new System.Drawing.Size(65, 21); + this.geneticMethodBox.TabIndex = 7; + // + // label4 + // + this.label4.Location = new System.Drawing.Point(10, 97); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(100, 16); + this.label4.TabIndex = 6; + this.label4.Text = "Genetic method:"; + // + // functionsSetBox + // + this.functionsSetBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.functionsSetBox.Items.AddRange(new object[] { + "Simple", + "Extended"}); + this.functionsSetBox.Location = new System.Drawing.Point(110, 70); + this.functionsSetBox.Name = "functionsSetBox"; + this.functionsSetBox.Size = new System.Drawing.Size(65, 21); + this.functionsSetBox.TabIndex = 5; + // + // label3 + // + this.label3.Location = new System.Drawing.Point(10, 72); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(100, 16); + this.label3.TabIndex = 4; + this.label3.Text = "Function set:"; + // + // selectionBox + // + this.selectionBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.selectionBox.Items.AddRange(new object[] { + "Elite", + "Rank", + "Roulette"}); + this.selectionBox.Location = new System.Drawing.Point(110, 45); + this.selectionBox.Name = "selectionBox"; + this.selectionBox.Size = new System.Drawing.Size(65, 21); + this.selectionBox.TabIndex = 3; + // + // label2 + // + this.label2.Location = new System.Drawing.Point(10, 47); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(100, 16); + this.label2.TabIndex = 2; + this.label2.Text = "Selection method:"; + // + // populationSizeBox + // + this.populationSizeBox.Location = new System.Drawing.Point(125, 20); + this.populationSizeBox.Name = "populationSizeBox"; + this.populationSizeBox.Size = new System.Drawing.Size(50, 20); + this.populationSizeBox.TabIndex = 1; + this.populationSizeBox.Text = ""; + // + // label1 + // + this.label1.Location = new System.Drawing.Point(10, 22); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(100, 16); + this.label1.TabIndex = 0; + this.label1.Text = "Population size:"; + // + // startButton + // + this.startButton.Enabled = false; + this.startButton.Location = new System.Drawing.Point(535, 364); + this.startButton.Name = "startButton"; + this.startButton.TabIndex = 3; + this.startButton.Text = "&Start"; + this.startButton.Click += new System.EventHandler(this.startButton_Click); + // + // stopButton + // + this.stopButton.Enabled = false; + this.stopButton.Location = new System.Drawing.Point(620, 364); + this.stopButton.Name = "stopButton"; + this.stopButton.TabIndex = 4; + this.stopButton.Text = "S&top"; + this.stopButton.Click += new System.EventHandler(this.stopButton_Click); + // + // groupBox4 + // + this.groupBox4.Controls.Add(this.currentPredictionErrorBox); + this.groupBox4.Controls.Add(this.label13); + this.groupBox4.Controls.Add(this.currentLearningErrorBox); + this.groupBox4.Controls.Add(this.label12); + this.groupBox4.Controls.Add(this.currentIterationBox); + this.groupBox4.Controls.Add(this.label11); + this.groupBox4.Location = new System.Drawing.Point(510, 255); + this.groupBox4.Name = "groupBox4"; + this.groupBox4.Size = new System.Drawing.Size(185, 100); + this.groupBox4.TabIndex = 5; + this.groupBox4.TabStop = false; + this.groupBox4.Text = "Current iteration:"; + // + // currentPredictionErrorBox + // + this.currentPredictionErrorBox.Location = new System.Drawing.Point(125, 70); + this.currentPredictionErrorBox.Name = "currentPredictionErrorBox"; + this.currentPredictionErrorBox.ReadOnly = true; + this.currentPredictionErrorBox.Size = new System.Drawing.Size(50, 20); + this.currentPredictionErrorBox.TabIndex = 5; + this.currentPredictionErrorBox.Text = ""; + // + // label13 + // + this.label13.Location = new System.Drawing.Point(10, 72); + this.label13.Name = "label13"; + this.label13.Size = new System.Drawing.Size(100, 16); + this.label13.TabIndex = 4; + this.label13.Text = "Prediction error:"; + // + // currentLearningErrorBox + // + this.currentLearningErrorBox.Location = new System.Drawing.Point(125, 45); + this.currentLearningErrorBox.Name = "currentLearningErrorBox"; + this.currentLearningErrorBox.ReadOnly = true; + this.currentLearningErrorBox.Size = new System.Drawing.Size(50, 20); + this.currentLearningErrorBox.TabIndex = 3; + this.currentLearningErrorBox.Text = ""; + // + // label12 + // + this.label12.Location = new System.Drawing.Point(10, 47); + this.label12.Name = "label12"; + this.label12.Size = new System.Drawing.Size(80, 16); + this.label12.TabIndex = 2; + this.label12.Text = "Learning error:"; + // + // currentIterationBox + // + this.currentIterationBox.Location = new System.Drawing.Point(125, 20); + this.currentIterationBox.Name = "currentIterationBox"; + this.currentIterationBox.ReadOnly = true; + this.currentIterationBox.Size = new System.Drawing.Size(50, 20); + this.currentIterationBox.TabIndex = 1; + this.currentIterationBox.Text = ""; + // + // label11 + // + this.label11.Location = new System.Drawing.Point(10, 22); + this.label11.Name = "label11"; + this.label11.Size = new System.Drawing.Size(70, 16); + this.label11.TabIndex = 0; + this.label11.Text = "Iteration:"; + // + // groupBox5 + // + this.groupBox5.Controls.Add(this.solutionBox); + this.groupBox5.Location = new System.Drawing.Point(10, 395); + this.groupBox5.Name = "groupBox5"; + this.groupBox5.Size = new System.Drawing.Size(685, 50); + this.groupBox5.TabIndex = 6; + this.groupBox5.TabStop = false; + this.groupBox5.Text = "Solution"; + // + // solutionBox + // + this.solutionBox.Location = new System.Drawing.Point(10, 20); + this.solutionBox.Name = "solutionBox"; + this.solutionBox.ReadOnly = true; + this.solutionBox.Size = new System.Drawing.Size(665, 20); + this.solutionBox.TabIndex = 0; + this.solutionBox.Text = ""; + // + // MainForm + // + this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); + this.ClientSize = new System.Drawing.Size(704, 455); + this.Controls.Add(this.groupBox5); + this.Controls.Add(this.groupBox4); + this.Controls.Add(this.stopButton); + this.Controls.Add(this.startButton); + this.Controls.Add(this.groupBox3); + this.Controls.Add(this.groupBox2); + this.Controls.Add(this.groupBox1); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.MaximizeBox = false; + this.Name = "MainForm"; + this.Text = "Time Series Prediction using Genetic Programming and Gene Expression Programming"; + this.Closing += new System.ComponentModel.CancelEventHandler(this.MainForm_Closing); + this.groupBox1.ResumeLayout(false); + this.groupBox2.ResumeLayout(false); + this.groupBox3.ResumeLayout(false); + this.groupBox4.ResumeLayout(false); + this.groupBox5.ResumeLayout(false); + this.ResumeLayout(false); + + } + #endregion + + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main( ) + { + Application.Run( new MainForm( ) ); + } + + // Delegates to enable async calls for setting controls properties + private delegate void SetTextCallback( System.Windows.Forms.Control control, string text ); + private delegate void AddSubItemCallback( System.Windows.Forms.ListView control, int item, string subitemText ); + + // Thread safe updating of control's text property + private void SetText( System.Windows.Forms.Control control, string text ) + { + if ( control.InvokeRequired ) + { + SetTextCallback d = new SetTextCallback( SetText ); + Invoke( d, new object[] { control, text } ); + } + else + { + control.Text = text; + } + } + + // Thread safe adding of subitem to list control + private void AddSubItem( System.Windows.Forms.ListView control, int item, string subitemText ) + { + if ( control.InvokeRequired ) + { + AddSubItemCallback d = new AddSubItemCallback( AddSubItem ); + Invoke( d, new object[] { control, item, subitemText } ); + } + else + { + control.Items[item].SubItems.Add( subitemText ); + } + } + + // On main form closing + private void MainForm_Closing(object sender, System.ComponentModel.CancelEventArgs e) + { + // check if worker thread is running + if ( ( workerThread != null ) && ( workerThread.IsAlive ) ) + { + needToStop = true; + while ( !workerThread.Join( 100 ) ) + Application.DoEvents( ); + } + } + + // Update settings controls + private void UpdateSettings( ) + { + populationSizeBox.Text = populationSize.ToString( ); + iterationsBox.Text = iterations.ToString( ); + windowSizeBox.Text = windowSize.ToString( ); + predictionSizeBox.Text = predictionSize.ToString( ); + } + + // Load data + private void loadDataButton_Click(object sender, System.EventArgs e) + { + // show file selection dialog + if ( openFileDialog.ShowDialog( ) == DialogResult.OK ) + { + StreamReader reader = null; + // read maximum 50 points + double[] tempData = new double[50]; + + try + { + // open selected file + reader = File.OpenText( openFileDialog.FileName ); + string str = null; + int i = 0; + + // read the data + while ( ( i < 50 ) && ( ( str = reader.ReadLine( ) ) != null ) ) + { + // parse the value + tempData[i] = double.Parse( str ); + + i++; + } + + // allocate and set data + data = new double[i]; + dataToShow = new double[i, 2]; + Array.Copy( tempData, 0, data, 0, i ); + for ( int j = 0; j < i; j++ ) + { + dataToShow[j, 0] = j; + dataToShow[j, 1] = data[j]; + } + } + catch (Exception) + { + MessageBox.Show( "Failed reading the file", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error ); + return; + } + finally + { + // close file + if ( reader != null ) + reader.Close( ); + } + + // update list and chart + UpdateDataListView( ); + chart.RangeX = new Range( 0, data.Length - 1 ); + chart.UpdateDataSeries( "data", dataToShow ); + chart.UpdateDataSeries( "solution", null ); + // set delimiters + UpdateDelimiters( ); + // enable "Start" button + startButton.Enabled = true; + } + } + + // Update delimiters on the chart + private void UpdateDelimiters( ) + { + // window delimiter + windowDelimiter[0, 0] = windowDelimiter[1, 0] = windowSize; + windowDelimiter[0, 1] = chart.RangeY.Min; + windowDelimiter[1, 1] = chart.RangeY.Max; + chart.UpdateDataSeries( "window", windowDelimiter ); + // prediction delimiter + predictionDelimiter[0, 0] = predictionDelimiter[1, 0] = data.Length - 1 - predictionSize; + predictionDelimiter[0, 1] = chart.RangeY.Min; + predictionDelimiter[1, 1] = chart.RangeY.Max; + chart.UpdateDataSeries( "prediction", predictionDelimiter ); + } + + // Update data in list view + private void UpdateDataListView( ) + { + // remove all current records + dataList.Items.Clear( ); + // add new records + for ( int i = 0, n = data.GetLength( 0 ); i < n; i++ ) + { + dataList.Items.Add( data[i].ToString( ) ); + } + } + + // Delegates to enable async calls for setting controls properties + private delegate void EnableCallback( bool enable ); + + // Enable/disale controls (safe for threading) + private void EnableControls( bool enable ) + { + if ( InvokeRequired ) + { + EnableCallback d = new EnableCallback( EnableControls ); + Invoke( d, new object[] { enable } ); + } + else + { + + loadDataButton.Enabled = enable; + populationSizeBox.Enabled = enable; + iterationsBox.Enabled = enable; + selectionBox.Enabled = enable; + functionsSetBox.Enabled = enable; + geneticMethodBox.Enabled = enable; + windowSizeBox.Enabled = enable; + predictionSizeBox.Enabled = enable; + + moreSettingsButton.Enabled = enable; + + startButton.Enabled = enable; + stopButton.Enabled = !enable; + } + } + + // On window size changed + private void windowSizeBox_TextChanged( object sender, System.EventArgs e ) + { + UpdateWindowSize( ); + } + + // On prediction changed + private void predictionSizeBox_TextChanged( object sender, System.EventArgs e ) + { + UpdatePredictionSize( ); + } + + // Update window size + private void UpdateWindowSize( ) + { + if ( data != null ) + { + // get new window size value + try + { + windowSize = Math.Max( 1, Math.Min( 15, int.Parse( windowSizeBox.Text ) ) ); + } + catch + { + windowSize = 5; + } + // check if we have too few data + if ( windowSize >= data.Length ) + windowSize = 1; + // update delimiters + UpdateDelimiters( ); + } + } + + // Update prediction size + private void UpdatePredictionSize( ) + { + if ( data != null ) + { + // get new prediction size value + try + { + predictionSize = Math.Max( 1, Math.Min( 10, int.Parse( predictionSizeBox.Text ) ) ); + } + catch + { + predictionSize = 1; + } + // check if we have too few data + if ( data.Length - predictionSize - 1 < windowSize ) + predictionSize = 1; + // update delimiters + UpdateDelimiters( ); + } + } + + // Clear current solution + private void ClearSolution( ) + { + // remove solution form chart + chart.UpdateDataSeries( "solution", null ); + // remove it from solution box + solutionBox.Text = string.Empty; + // remove it from data list view + for ( int i = 0, n = dataList.Items.Count; i < n; i++ ) + { + if ( dataList.Items[i].SubItems.Count > 1 ) + dataList.Items[i].SubItems.RemoveAt( 1 ); + } + } + + // On button "Start" + private void startButton_Click( object sender, System.EventArgs e ) + { + ClearSolution( ); + + // get population size + try + { + populationSize = Math.Max( 10, Math.Min( 100, int.Parse( populationSizeBox.Text ) ) ); + } + catch + { + populationSize = 40; + } + // iterations + try + { + iterations = Math.Max( 0, int.Parse( iterationsBox.Text ) ); + } + catch + { + iterations = 100; + } + // update settings controls + UpdateSettings( ); + + selectionMethod = selectionBox.SelectedIndex; + functionsSet = functionsSetBox.SelectedIndex; + geneticMethod = geneticMethodBox.SelectedIndex; + + // disable all settings controls except "Stop" button + EnableControls( false ); + + // run worker thread + needToStop = false; + workerThread = new Thread( new ThreadStart( SearchSolution ) ); + workerThread.Start( ); + } + + // On button "Stop" + private void stopButton_Click( object sender, System.EventArgs e ) + { + // stop worker thread + needToStop = true; + while ( !workerThread.Join( 100 ) ) + Application.DoEvents( ); + workerThread = null; + } + + // Worker thread + void SearchSolution( ) + { + // constants + double[] constants = new double[10] { 1, 2, 3, 5, 7, 11, 13, 17, 19, 23 }; + // create fitness function + TimeSeriesPredictionFitness fitness = new TimeSeriesPredictionFitness( + data, windowSize, predictionSize, constants ); + // create gene function + IGPGene gene = ( functionsSet == 0 ) ? + (IGPGene) new SimpleGeneFunction( windowSize + constants.Length ) : + (IGPGene) new ExtendedGeneFunction( windowSize + constants.Length ); + // create population + Population population = new Population( populationSize, + ( geneticMethod == 0 ) ? + (IChromosome) new GPTreeChromosome( gene ) : + (IChromosome) new GEPChromosome( gene, headLength ), + fitness, + ( selectionMethod == 0 ) ? (ISelectionMethod) new EliteSelection( ) : + ( selectionMethod == 1 ) ? (ISelectionMethod) new RankSelection( ) : + (ISelectionMethod) new RouletteWheelSelection( ) + ); + // iterations + int i = 1; + // solution array + int solutionSize = data.Length - windowSize; + double[,] solution = new double[solutionSize, 2]; + double[] input = new double[windowSize + constants.Length]; + + // calculate X values to be used with solution function + for ( int j = 0; j < solutionSize; j++ ) + { + solution[j, 0] = j + windowSize; + } + // prepare input + Array.Copy( constants, 0, input, windowSize, constants.Length ); + + // loop + while ( !needToStop ) + { + // run one epoch of genetic algorithm + population.RunEpoch( ); + + try + { + // get best solution + string bestFunction = population.BestChromosome.ToString( ); + + // calculate best function and prediction error + double learningError = 0.0; + double predictionError = 0.0; + // go through all the data + for ( int j = 0, n = data.Length - windowSize; j < n; j++ ) + { + // put values from current window as variables + for ( int k = 0, b = j + windowSize - 1; k < windowSize; k++ ) + { + input[k] = data[b - k]; + } + + // evalue the function + solution[j, 1] = PolishExpression.Evaluate( bestFunction, input ); + + // calculate prediction error + if ( j >= n - predictionSize ) + { + predictionError += Math.Abs( solution[j, 1] - data[windowSize + j] ); + } + else + { + learningError += Math.Abs( solution[j, 1] - data[windowSize + j] ); + } + } + // update solution on the chart + chart.UpdateDataSeries( "solution", solution ); + + // set current iteration's info + SetText( currentIterationBox, i.ToString( ) ); + SetText( currentLearningErrorBox, learningError.ToString( "F3" ) ); + SetText( currentPredictionErrorBox, predictionError.ToString( "F3" ) ); + } + catch + { + // remove any solutions from chart in case of any errors + chart.UpdateDataSeries( "solution", null ); + } + + + // increase current iteration + i++; + + // + if ( ( iterations != 0 ) && ( i > iterations ) ) + break; + } + + // show solution + SetText( solutionBox, population.BestChromosome.ToString( ) ); + for ( int j = windowSize, k = 0, n = data.Length; j < n; j++, k++ ) + { + AddSubItem( dataList, j, solution[k, 1].ToString( ) ); + } + + // enable settings controls + EnableControls( true ); + } + + // On "More settings" button click + private void moreSettingsButton_Click( object sender, System.EventArgs e ) + { + ExSettingsDialog settingsDlg = new ExSettingsDialog( ); + + // init the dialog + settingsDlg.MaxInitialTreeLevel = GPTreeChromosome.MaxInitialLevel; + settingsDlg.MaxTreeLevel = GPTreeChromosome.MaxLevel; + settingsDlg.HeadLength = headLength; + + // show the dialog + if ( settingsDlg.ShowDialog( ) == DialogResult.OK ) + { + GPTreeChromosome.MaxInitialLevel = settingsDlg.MaxInitialTreeLevel; + GPTreeChromosome.MaxLevel = settingsDlg.MaxTreeLevel; + headLength = settingsDlg.HeadLength; + } + } + } +} diff --git a/Samples/Genetic/TimeSeries/MainForm.resx b/Samples/Genetic/TimeSeries/MainForm.resx new file mode 100644 index 00000000..ccc19768 --- /dev/null +++ b/Samples/Genetic/TimeSeries/MainForm.resx @@ -0,0 +1,520 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Private + + + 8, 8 + + + False + + + False + + + True + + + Private + + + False + + + Private + + + Private + + + Private + + + Private + + + Private + + + Private + + + False + + + Private + + + Private + + + Private + + + Private + + + 17, 17 + + + Private + + + 8, 8 + + + False + + + False + + + True + + + Private + + + Private + + + False + + + Private + + + Private + + + 8, 8 + + + False + + + False + + + True + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + Private + + + False + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + Private + + + False + + + Private + + + False + + + Private + + + Private + + + Private + + + False + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + Private + + + False + + + Private + + + False + + + Private + + + Private + + + Private + + + False + + + Private + + + False + + + Private + + + Private + + + Private + + + False + + + Private + + + False + + + Private + + + Private + + + Private + + + False + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + Private + + + 8, 8 + + + False + + + False + + + True + + + Private + + + Private + + + False + + + Private + + + False + + + Private + + + Private + + + Private + + + Private + + + False + + + False + + + Private + + + Private + + + Private + + + False + + + Private + + + False + + + Private + + + Private + + + Private + + + 8, 8 + + + False + + + False + + + True + + + Private + + + Private + + + Private + + + False + + + Private + + + 141, 17 + + + Private + + + False + + + (Default) + + + False + + + False + + + 8, 8 + + + True + + + 81 + + + False + + + MainForm + + + Private + + \ No newline at end of file diff --git a/Samples/Genetic/TimeSeries/TimeSeries.csproj b/Samples/Genetic/TimeSeries/TimeSeries.csproj new file mode 100644 index 00000000..bccf0625 --- /dev/null +++ b/Samples/Genetic/TimeSeries/TimeSeries.csproj @@ -0,0 +1,170 @@ + + + + Local + 9.0.30729 + 2.0 + {39FB970B-E4D2-4BED-A590-3FF893BC022A} + Debug + AnyCPU + App.ico + + + TimeSeries + + + JScript + Grid + IE50 + false + WinExe + TimeSeries + OnBuildSuccess + + + + + + + 3.5 + v2.0 + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + bin\Debug\ + false + 285212672 + false + + + DEBUG;TRACE + + + true + 4096 + false + + + false + false + false + false + 4 + full + prompt + + + bin\Release\ + false + 285212672 + false + + + TRACE + + + false + 4096 + false + + + true + false + false + false + 4 + none + prompt + + + + False + ..\..\..\Release\AForge.dll + + + False + ..\..\..\Release\AForge.Controls.dll + + + False + ..\..\..\Release\AForge.Genetic.dll + + + System + + + System.Data + + + System.Drawing + + + System.Windows.Forms + + + System.XML + + + + + + Code + + + Form + + + Form + + + ExSettingsDialog.cs + + + MainForm.cs + + + + + False + Microsoft .NET Framework 4 %28x86 and x64%29 + true + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 3.1 + true + + + + + + + + + + \ No newline at end of file diff --git a/Samples/Genetic/TimeSeries/TimeSeries.sln b/Samples/Genetic/TimeSeries/TimeSeries.sln new file mode 100644 index 00000000..6e75c0c6 --- /dev/null +++ b/Samples/Genetic/TimeSeries/TimeSeries.sln @@ -0,0 +1,19 @@ +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual C# Express 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TimeSeries", "TimeSeries.csproj", "{39FB970B-E4D2-4BED-A590-3FF893BC022A}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {39FB970B-E4D2-4BED-A590-3FF893BC022A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {39FB970B-E4D2-4BED-A590-3FF893BC022A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {39FB970B-E4D2-4BED-A590-3FF893BC022A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {39FB970B-E4D2-4BED-A590-3FF893BC022A}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Samples/Imaging/BlobsExplorer/AboutForm.Designer.cs b/Samples/Imaging/BlobsExplorer/AboutForm.Designer.cs new file mode 100644 index 00000000..bc318aed --- /dev/null +++ b/Samples/Imaging/BlobsExplorer/AboutForm.Designer.cs @@ -0,0 +1,130 @@ +namespace BlobsExplorer +{ + partial class AboutForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose( bool disposing ) + { + if ( disposing && ( components != null ) ) + { + components.Dispose( ); + } + base.Dispose( disposing ); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent( ) + { + this.panel1 = new System.Windows.Forms.Panel( ); + this.emailLabel = new System.Windows.Forms.LinkLabel( ); + this.label3 = new System.Windows.Forms.Label( ); + this.aforgeLabel = new System.Windows.Forms.LinkLabel( ); + this.label2 = new System.Windows.Forms.Label( ); + this.label1 = new System.Windows.Forms.Label( ); + this.panel1.SuspendLayout( ); + this.SuspendLayout( ); + // + // panel1 + // + this.panel1.Controls.Add( this.emailLabel ); + this.panel1.Controls.Add( this.label3 ); + this.panel1.Controls.Add( this.aforgeLabel ); + this.panel1.Controls.Add( this.label2 ); + this.panel1.Controls.Add( this.label1 ); + this.panel1.Location = new System.Drawing.Point( 13, 12 ); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size( 303, 139 ); + this.panel1.TabIndex = 4; + // + // emailLabel + // + this.emailLabel.AutoSize = true; + this.emailLabel.Location = new System.Drawing.Point( 75, 108 ); + this.emailLabel.Name = "emailLabel"; + this.emailLabel.Size = new System.Drawing.Size( 153, 13 ); + this.emailLabel.TabIndex = 5; + this.emailLabel.TabStop = true; + this.emailLabel.Text = "andrew.kirillov@aforgenet.com"; + this.emailLabel.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler( this.LinkClicked ); + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point( 69, 93 ); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size( 165, 13 ); + this.label3.TabIndex = 4; + this.label3.Text = "Copyright © 2009, Andrew Kirillov"; + // + // aforgeLabel + // + this.aforgeLabel.AutoSize = true; + this.aforgeLabel.Location = new System.Drawing.Point( 55, 58 ); + this.aforgeLabel.Name = "aforgeLabel"; + this.aforgeLabel.Size = new System.Drawing.Size( 192, 13 ); + this.aforgeLabel.TabIndex = 3; + this.aforgeLabel.TabStop = true; + this.aforgeLabel.Text = "http://www.aforgenet.com/framework/"; + this.aforgeLabel.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler( this.LinkClicked ); + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point( 39, 43 ); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size( 225, 13 ); + this.label2.TabIndex = 2; + this.label2.Text = "Sample application of AForge.NET framework:"; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point( 101, 18 ); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size( 101, 13 ); + this.label1.TabIndex = 1; + this.label1.Text = "Blobs Explorer 1.0.0"; + // + // AboutForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF( 6F, 13F ); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size( 329, 162 ); + this.Controls.Add( this.panel1 ); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "AboutForm"; + this.ShowIcon = false; + this.ShowInTaskbar = false; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "About"; + this.panel1.ResumeLayout( false ); + this.panel1.PerformLayout( ); + this.ResumeLayout( false ); + + } + + #endregion + + private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.LinkLabel emailLabel; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.LinkLabel aforgeLabel; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label label1; + } +} \ No newline at end of file diff --git a/Samples/Imaging/BlobsExplorer/AboutForm.cs b/Samples/Imaging/BlobsExplorer/AboutForm.cs new file mode 100644 index 00000000..cda33b8c --- /dev/null +++ b/Samples/Imaging/BlobsExplorer/AboutForm.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; + +namespace BlobsExplorer +{ + public partial class AboutForm : Form + { + public AboutForm( ) + { + InitializeComponent( ); + + // initialize links + emailLabel.Links.Add( 0, emailLabel.Text.Length, "mailto:andrew.kirillov@aforgenet.com" ); + aforgeLabel.Links.Add( 0, aforgeLabel.Text.Length, "http://www.aforgenet.com/framework/" ); + } + + private void LinkClicked( object sender, LinkLabelLinkClickedEventArgs e ) + { + System.Diagnostics.Process.Start( e.Link.LinkData.ToString( ) ); + } + } +} diff --git a/Samples/Imaging/BlobsExplorer/AboutForm.resx b/Samples/Imaging/BlobsExplorer/AboutForm.resx new file mode 100644 index 00000000..19dc0dd8 --- /dev/null +++ b/Samples/Imaging/BlobsExplorer/AboutForm.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Samples/Imaging/BlobsExplorer/BlobsBrowser.Designer.cs b/Samples/Imaging/BlobsExplorer/BlobsBrowser.Designer.cs new file mode 100644 index 00000000..3914387e --- /dev/null +++ b/Samples/Imaging/BlobsExplorer/BlobsBrowser.Designer.cs @@ -0,0 +1,45 @@ +namespace BlobsExplorer +{ + partial class BlobsBrowser + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose( bool disposing ) + { + if ( disposing && ( components != null ) ) + { + components.Dispose( ); + } + base.Dispose( disposing ); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent( ) + { + this.SuspendLayout( ); + // + // BlobsBrowser + // + this.Paint += new System.Windows.Forms.PaintEventHandler( this.BlobsBrowser_Paint ); + this.MouseMove += new System.Windows.Forms.MouseEventHandler( this.BlobsBrowser_MouseMove ); + this.MouseClick += new System.Windows.Forms.MouseEventHandler( this.BlobsBrowser_MouseClick ); + this.ParentChanged += new System.EventHandler( this.BlobsBrowser_ParentChanged ); + this.ResumeLayout( false ); + + } + + #endregion + } +} diff --git a/Samples/Imaging/BlobsExplorer/BlobsBrowser.cs b/Samples/Imaging/BlobsExplorer/BlobsBrowser.cs new file mode 100644 index 00000000..f9eef8b5 --- /dev/null +++ b/Samples/Imaging/BlobsExplorer/BlobsBrowser.cs @@ -0,0 +1,341 @@ +// Blobs Browser sample application +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2006-2011 +// contacts@aforgenet.com +// + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.Drawing.Imaging; +using System.Data; +using System.Text; +using System.Windows.Forms; + +using AForge; +using AForge.Imaging; +using AForge.Math.Geometry; + +namespace BlobsExplorer +{ + public delegate void BlobSelectionHandler( object sender, Blob blob ); + + public partial class BlobsBrowser : Control + { + private Bitmap image = null; + private int imageWidth, imageHeight; + private Control parent = null; + + private BlobCounter blobCounter = new BlobCounter( ); + private Blob[] blobs; + private int selectedBlobID; + + Dictionary> leftEdges = new Dictionary>( ); + Dictionary> rightEdges = new Dictionary>( ); + Dictionary> topEdges = new Dictionary>( ); + Dictionary> bottomEdges = new Dictionary>( ); + + Dictionary> hulls = new Dictionary>( ); + Dictionary> quadrilaterals = new Dictionary>( ); + + // Event to notify about selected blob + public event BlobSelectionHandler BlobSelected; + + // Blobs' highlight types enumeration + public enum HightlightType + { + ConvexHull, + LeftAndRightEdges, + TopAndBottomEdges, + Quadrilateral + } + + private HightlightType highlighting = HightlightType.Quadrilateral; + private bool showRectangleAroundSelection = false; + + // Blobs' highlight type + public HightlightType Highlighting + { + get { return highlighting; } + set + { + highlighting = value; + Invalidate( ); + } + } + + // Show rectangle around selection or not + public bool ShowRectangleAroundSelection + { + get { return showRectangleAroundSelection; } + set + { + showRectangleAroundSelection = value; + Invalidate( ); + } + } + + public BlobsBrowser( ) + { + InitializeComponent( ); + + // update control style + SetStyle( ControlStyles.AllPaintingInWmPaint | ControlStyles.ResizeRedraw | + ControlStyles.DoubleBuffer | ControlStyles.UserPaint, true ); + } + + // Set image to display by the control + public int SetImage( Bitmap image ) + { + leftEdges.Clear( ); + rightEdges.Clear( ); + topEdges.Clear( ); + bottomEdges.Clear( ); + hulls.Clear( ); + quadrilaterals.Clear( ); + + selectedBlobID = 0; + + this.image = AForge.Imaging.Image.Clone( image, PixelFormat.Format24bppRgb ); + imageWidth = this.image.Width; + imageHeight = this.image.Height; + + blobCounter.ProcessImage( this.image ); + blobs = blobCounter.GetObjectsInformation( ); + + GrahamConvexHull grahamScan = new GrahamConvexHull( ); + + foreach ( Blob blob in blobs ) + { + List leftEdge = new List( ); + List rightEdge = new List( ); + List topEdge = new List( ); + List bottomEdge = new List( ); + + // collect edge points + blobCounter.GetBlobsLeftAndRightEdges( blob, out leftEdge, out rightEdge ); + blobCounter.GetBlobsTopAndBottomEdges( blob, out topEdge, out bottomEdge ); + + leftEdges.Add( blob.ID, leftEdge ); + rightEdges.Add( blob.ID, rightEdge ); + topEdges.Add( blob.ID, topEdge ); + bottomEdges.Add( blob.ID, bottomEdge ); + + // find convex hull + List edgePoints = new List( ); + edgePoints.AddRange( leftEdge ); + edgePoints.AddRange( rightEdge ); + + List hull = grahamScan.FindHull( edgePoints ); + hulls.Add( blob.ID, hull ); + + List quadrilateral = null; + + // find quadrilateral + if ( hull.Count < 4 ) + { + quadrilateral = new List( hull ); + } + else + { + quadrilateral = PointsCloud.FindQuadrilateralCorners( hull ); + } + quadrilaterals.Add( blob.ID, quadrilateral ); + + // shift all points for vizualization + IntPoint shift = new IntPoint( 1, 1 ); + + PointsCloud.Shift( leftEdge, shift ); + PointsCloud.Shift( rightEdge, shift ); + PointsCloud.Shift( topEdge, shift ); + PointsCloud.Shift( bottomEdge, shift ); + PointsCloud.Shift( hull, shift ); + PointsCloud.Shift( quadrilateral, shift ); + } + + UpdatePosition( ); + Invalidate( ); + + return blobs.Length; + } + + // Paint the control + private void BlobsBrowser_Paint( object sender, PaintEventArgs e ) + { + Graphics g = e.Graphics; + Rectangle rect = this.ClientRectangle; + + Pen borderPen = new Pen( Color.FromArgb( 64, 64, 64 ), 1 ); + Pen highlightPen = new Pen( Color.Red ); + Pen highlightPenBold = new Pen( Color.FromArgb( 0, 255, 0 ), 3 ); + Pen rectPen = new Pen( Color.Blue ); + + // draw rectangle + g.DrawRectangle( borderPen, rect.X, rect.Y, rect.Width - 1, rect.Height - 1 ); + + if ( image != null ) + { + g.DrawImage( image, rect.X + 1, rect.Y + 1, rect.Width - 2, rect.Height - 2 ); + + foreach ( Blob blob in blobs ) + { + Pen pen = ( blob.ID == selectedBlobID ) ? highlightPenBold : highlightPen; + + if ( ( showRectangleAroundSelection ) && ( blob.ID == selectedBlobID ) ) + { + g.DrawRectangle( rectPen, blob.Rectangle ); + } + + switch ( highlighting ) + { + case HightlightType.ConvexHull: + g.DrawPolygon( pen, PointsListToArray( hulls[blob.ID] ) ); + break; + case HightlightType.LeftAndRightEdges: + DrawEdge( g, pen, leftEdges[blob.ID] ); + DrawEdge( g, pen, rightEdges[blob.ID] ); + break; + case HightlightType.TopAndBottomEdges: + DrawEdge( g, pen, topEdges[blob.ID] ); + DrawEdge( g, pen, bottomEdges[blob.ID] ); + break; + case HightlightType.Quadrilateral: + g.DrawPolygon( pen, PointsListToArray( quadrilaterals[blob.ID] ) ); + break; + } + } + } + else + { + g.FillRectangle( new SolidBrush( Color.FromArgb( 128, 128, 128 ) ), + rect.X + 1, rect.Y + 1, rect.Width - 2, rect.Height - 2 ); + } + } + + // Update controls size and position + private void UpdatePosition( ) + { + if ( this.Parent != null ) + { + Rectangle rc = this.Parent.ClientRectangle; + int width = 320; + int height = 240; + + if ( image != null ) + { + // get frame size + width = imageWidth; + height = imageHeight; + } + + // update controls size and location + this.SuspendLayout( ); + this.Location = new System.Drawing.Point( ( rc.Width - width - 2 ) / 2, ( rc.Height - height - 2 ) / 2 ); + this.Size = new Size( width + 2, height + 2 ); + this.ResumeLayout( ); + } + } + + // Parent of the control has changed + private void BlobsBrowser_ParentChanged( object sender, EventArgs e ) + { + if ( parent != null ) + { + parent.SizeChanged -= new EventHandler( parent_SizeChanged ); + } + + parent = this.Parent; + + // set handler for Size Changed parent's event + if ( parent != null ) + { + parent.SizeChanged += new EventHandler( parent_SizeChanged ); + } + } + + // Parent control has changed its size + private void parent_SizeChanged( object sender, EventArgs e ) + { + UpdatePosition( ); + } + + // On mouse moving - update cursor + private void BlobsBrowser_MouseMove( object sender, MouseEventArgs e ) + { + int x = e.X - 1; + int y = e.Y - 1; + + if ( ( image != null ) && ( x >= 0 ) && ( y >= 0 ) && + ( x < imageWidth ) && ( y < imageHeight ) && + ( blobCounter.ObjectLabels[y * imageWidth + x] != 0 ) ) + { + this.Cursor = Cursors.Hand; + } + else + { + this.Cursor = Cursors.Default; + } + } + + // On mouse click - notify user if blob was clicked + private void BlobsBrowser_MouseClick( object sender, MouseEventArgs e ) + { + int x = e.X - 1; + int y = e.Y - 1; + + if ( ( image != null ) && ( x >= 0 ) && ( y >= 0 ) && + ( x < imageWidth ) && ( y < imageHeight ) ) + { + int blobID = blobCounter.ObjectLabels[y * imageWidth + x]; + + if ( blobID != 0 ) + { + selectedBlobID = blobID; + Invalidate( ); + + if ( BlobSelected != null ) + { + for ( int i = 0; i < blobs.Length; i++ ) + { + if ( blobs[i].ID == blobID ) + { + BlobSelected( this, blobs[i] ); + } + } + } + } + } + } + + // Convert list of AForge.NET's IntPoint to array of .NET's Point + private static System.Drawing.Point[] PointsListToArray( List list ) + { + System.Drawing.Point[] array = new System.Drawing.Point[list.Count]; + + for ( int i = 0, n = list.Count; i < n; i++ ) + { + array[i] = new System.Drawing.Point( list[i].X, list[i].Y ); + } + + return array; + } + + // Draw object's edge + private static void DrawEdge( Graphics g, Pen pen, List edge ) + { + System.Drawing.Point[] points = PointsListToArray( edge ); + + if ( points.Length > 1 ) + { + g.DrawLines( pen, points ); + } + else + { + g.DrawLine( pen, points[0], points[0] ); + } + } + } +} diff --git a/Samples/Imaging/BlobsExplorer/BlobsBrowser.resx b/Samples/Imaging/BlobsExplorer/BlobsBrowser.resx new file mode 100644 index 00000000..52a9ad3e --- /dev/null +++ b/Samples/Imaging/BlobsExplorer/BlobsBrowser.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + False + + \ No newline at end of file diff --git a/Samples/Imaging/BlobsExplorer/BlobsExplorer.csproj b/Samples/Imaging/BlobsExplorer/BlobsExplorer.csproj new file mode 100644 index 00000000..b15936c5 --- /dev/null +++ b/Samples/Imaging/BlobsExplorer/BlobsExplorer.csproj @@ -0,0 +1,156 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {742487A3-DD2E-4F47-9ABB-77E88653A1D3} + WinExe + Properties + BlobsExplorer + BlobsExplorer + v2.0 + 512 + + + 3.5 + + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + False + ..\..\..\Release\AForge.dll + + + False + ..\..\..\Release\AForge.Imaging.dll + + + False + ..\..\..\Release\AForge.Math.dll + + + + + + + + + + + Form + + + AboutForm.cs + + + Component + + + BlobsBrowser.cs + + + Form + + + MainForm.cs + + + + + BlobsBrowser.cs + + + MainForm.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + True + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + AboutForm.cs + + + + + + False + Microsoft .NET Framework 4 %28x86 and x64%29 + true + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 3.1 + true + + + + + \ No newline at end of file diff --git a/Samples/Imaging/BlobsExplorer/BlobsExplorer.sln b/Samples/Imaging/BlobsExplorer/BlobsExplorer.sln new file mode 100644 index 00000000..0284dffe --- /dev/null +++ b/Samples/Imaging/BlobsExplorer/BlobsExplorer.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual C# Express 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BlobsExplorer", "BlobsExplorer.csproj", "{742487A3-DD2E-4F47-9ABB-77E88653A1D3}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {742487A3-DD2E-4F47-9ABB-77E88653A1D3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {742487A3-DD2E-4F47-9ABB-77E88653A1D3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {742487A3-DD2E-4F47-9ABB-77E88653A1D3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {742487A3-DD2E-4F47-9ABB-77E88653A1D3}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Samples/Imaging/BlobsExplorer/MainForm.Designer.cs b/Samples/Imaging/BlobsExplorer/MainForm.Designer.cs new file mode 100644 index 00000000..f19a520f --- /dev/null +++ b/Samples/Imaging/BlobsExplorer/MainForm.Designer.cs @@ -0,0 +1,276 @@ +namespace BlobsExplorer +{ + partial class MainForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose( bool disposing ) + { + if ( disposing && ( components != null ) ) + { + components.Dispose( ); + } + base.Dispose( disposing ); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent( ) + { + this.mainMenu = new System.Windows.Forms.MenuStrip( ); + this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem( ); + this.openToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem( ); + this.loaddemoImageToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem( ); + this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripSeparator( ); + this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem( ); + this.helpToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem( ); + this.aboutToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem( ); + this.statusStrip = new System.Windows.Forms.StatusStrip( ); + this.blobsCountLabel = new System.Windows.Forms.ToolStripStatusLabel( ); + this.openFileDialog = new System.Windows.Forms.OpenFileDialog( ); + this.splitContainer = new System.Windows.Forms.SplitContainer( ); + this.blobsBrowser = new BlobsExplorer.BlobsBrowser( ); + this.groupBox1 = new System.Windows.Forms.GroupBox( ); + this.highlightTypeCombo = new System.Windows.Forms.ComboBox( ); + this.propertyGrid = new System.Windows.Forms.PropertyGrid( ); + this.showRectangleAroundSelectionCheck = new System.Windows.Forms.CheckBox( ); + this.mainMenu.SuspendLayout( ); + this.statusStrip.SuspendLayout( ); + this.splitContainer.Panel1.SuspendLayout( ); + this.splitContainer.Panel2.SuspendLayout( ); + this.splitContainer.SuspendLayout( ); + this.groupBox1.SuspendLayout( ); + this.SuspendLayout( ); + // + // mainMenu + // + this.mainMenu.Items.AddRange( new System.Windows.Forms.ToolStripItem[] { + this.fileToolStripMenuItem, + this.helpToolStripMenuItem} ); + this.mainMenu.Location = new System.Drawing.Point( 0, 0 ); + this.mainMenu.Name = "mainMenu"; + this.mainMenu.Size = new System.Drawing.Size( 711, 24 ); + this.mainMenu.TabIndex = 0; + // + // fileToolStripMenuItem + // + this.fileToolStripMenuItem.DropDownItems.AddRange( new System.Windows.Forms.ToolStripItem[] { + this.openToolStripMenuItem, + this.loaddemoImageToolStripMenuItem, + this.toolStripMenuItem1, + this.exitToolStripMenuItem} ); + this.fileToolStripMenuItem.Name = "fileToolStripMenuItem"; + this.fileToolStripMenuItem.Size = new System.Drawing.Size( 37, 20 ); + this.fileToolStripMenuItem.Text = "&File"; + // + // openToolStripMenuItem + // + this.openToolStripMenuItem.Name = "openToolStripMenuItem"; + this.openToolStripMenuItem.ShortcutKeys = ( (System.Windows.Forms.Keys) ( ( System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.O ) ) ); + this.openToolStripMenuItem.Size = new System.Drawing.Size( 170, 22 ); + this.openToolStripMenuItem.Text = "&Open"; + this.openToolStripMenuItem.Click += new System.EventHandler( this.openToolStripMenuItem_Click ); + // + // loaddemoImageToolStripMenuItem + // + this.loaddemoImageToolStripMenuItem.Name = "loaddemoImageToolStripMenuItem"; + this.loaddemoImageToolStripMenuItem.Size = new System.Drawing.Size( 170, 22 ); + this.loaddemoImageToolStripMenuItem.Text = "Load &demo image"; + this.loaddemoImageToolStripMenuItem.Click += new System.EventHandler( this.loaddemoImageToolStripMenuItem_Click ); + // + // toolStripMenuItem1 + // + this.toolStripMenuItem1.Name = "toolStripMenuItem1"; + this.toolStripMenuItem1.Size = new System.Drawing.Size( 167, 6 ); + // + // exitToolStripMenuItem + // + this.exitToolStripMenuItem.Name = "exitToolStripMenuItem"; + this.exitToolStripMenuItem.Size = new System.Drawing.Size( 170, 22 ); + this.exitToolStripMenuItem.Text = "E&xit"; + this.exitToolStripMenuItem.Click += new System.EventHandler( this.exitToolStripMenuItem_Click ); + // + // helpToolStripMenuItem + // + this.helpToolStripMenuItem.DropDownItems.AddRange( new System.Windows.Forms.ToolStripItem[] { + this.aboutToolStripMenuItem} ); + this.helpToolStripMenuItem.Name = "helpToolStripMenuItem"; + this.helpToolStripMenuItem.Size = new System.Drawing.Size( 44, 20 ); + this.helpToolStripMenuItem.Text = "&Help"; + // + // aboutToolStripMenuItem + // + this.aboutToolStripMenuItem.Name = "aboutToolStripMenuItem"; + this.aboutToolStripMenuItem.Size = new System.Drawing.Size( 107, 22 ); + this.aboutToolStripMenuItem.Text = "&About"; + this.aboutToolStripMenuItem.Click += new System.EventHandler( this.aboutToolStripMenuItem_Click ); + // + // statusStrip + // + this.statusStrip.Items.AddRange( new System.Windows.Forms.ToolStripItem[] { + this.blobsCountLabel} ); + this.statusStrip.Location = new System.Drawing.Point( 0, 414 ); + this.statusStrip.Name = "statusStrip"; + this.statusStrip.Size = new System.Drawing.Size( 711, 22 ); + this.statusStrip.TabIndex = 1; + // + // blobsCountLabel + // + this.blobsCountLabel.AutoSize = false; + this.blobsCountLabel.BorderSides = ( (System.Windows.Forms.ToolStripStatusLabelBorderSides) ( ( ( ( System.Windows.Forms.ToolStripStatusLabelBorderSides.Left | System.Windows.Forms.ToolStripStatusLabelBorderSides.Top ) + | System.Windows.Forms.ToolStripStatusLabelBorderSides.Right ) + | System.Windows.Forms.ToolStripStatusLabelBorderSides.Bottom ) ) ); + this.blobsCountLabel.BorderStyle = System.Windows.Forms.Border3DStyle.SunkenInner; + this.blobsCountLabel.Name = "blobsCountLabel"; + this.blobsCountLabel.Size = new System.Drawing.Size( 696, 17 ); + this.blobsCountLabel.Spring = true; + this.blobsCountLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // openFileDialog + // + this.openFileDialog.Filter = "Image files (*.jpg,*.png,*.tif,*.bmp,*.gif)|*.jpg;*.png;*.tif;*.bmp;*.gif|JPG fil" + + "es (*.jpg)|*.jpg|PNG files (*.png)|*.png|TIF files (*.tif)|*.tif|BMP files (*.bm" + + "p)|*.bmp|GIF files (*.gif)|*.gif"; + this.openFileDialog.Title = "Open image file"; + // + // splitContainer + // + this.splitContainer.Dock = System.Windows.Forms.DockStyle.Fill; + this.splitContainer.Location = new System.Drawing.Point( 0, 24 ); + this.splitContainer.Name = "splitContainer"; + // + // splitContainer.Panel1 + // + this.splitContainer.Panel1.Controls.Add( this.blobsBrowser ); + // + // splitContainer.Panel2 + // + this.splitContainer.Panel2.Controls.Add( this.groupBox1 ); + this.splitContainer.Panel2.Controls.Add( this.propertyGrid ); + this.splitContainer.Panel2MinSize = 100; + this.splitContainer.Size = new System.Drawing.Size( 711, 390 ); + this.splitContainer.SplitterDistance = 498; + this.splitContainer.TabIndex = 2; + // + // blobsBrowser + // + this.blobsBrowser.Highlighting = BlobsExplorer.BlobsBrowser.HightlightType.Quadrilateral; + this.blobsBrowser.Location = new System.Drawing.Point( 88, 74 ); + this.blobsBrowser.Name = "blobsBrowser"; + this.blobsBrowser.Size = new System.Drawing.Size( 322, 242 ); + this.blobsBrowser.TabIndex = 0; + this.blobsBrowser.BlobSelected += new BlobsExplorer.BlobSelectionHandler( this.blobsBrowser_BlobSelected ); + // + // groupBox1 + // + this.groupBox1.Anchor = ( (System.Windows.Forms.AnchorStyles) ( ( ( System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left ) + | System.Windows.Forms.AnchorStyles.Right ) ) ); + this.groupBox1.Controls.Add( this.showRectangleAroundSelectionCheck ); + this.groupBox1.Controls.Add( this.highlightTypeCombo ); + this.groupBox1.Location = new System.Drawing.Point( 3, 3 ); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size( 200, 65 ); + this.groupBox1.TabIndex = 1; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "Highlight Type"; + // + // highlightTypeCombo + // + this.highlightTypeCombo.Anchor = ( (System.Windows.Forms.AnchorStyles) ( ( ( System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left ) + | System.Windows.Forms.AnchorStyles.Right ) ) ); + this.highlightTypeCombo.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.highlightTypeCombo.FormattingEnabled = true; + this.highlightTypeCombo.Items.AddRange( new object[] { + "Convex Hull", + "Left/Right Edges", + "Top/Bottom Edges", + "Quadrilateral"} ); + this.highlightTypeCombo.Location = new System.Drawing.Point( 6, 20 ); + this.highlightTypeCombo.Name = "highlightTypeCombo"; + this.highlightTypeCombo.Size = new System.Drawing.Size( 188, 21 ); + this.highlightTypeCombo.TabIndex = 0; + this.highlightTypeCombo.SelectedIndexChanged += new System.EventHandler( this.highlightTypeCombo_SelectedIndexChanged ); + // + // propertyGrid + // + this.propertyGrid.Anchor = ( (System.Windows.Forms.AnchorStyles) ( ( ( ( System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom ) + | System.Windows.Forms.AnchorStyles.Left ) + | System.Windows.Forms.AnchorStyles.Right ) ) ); + this.propertyGrid.HelpVisible = false; + this.propertyGrid.Location = new System.Drawing.Point( 0, 74 ); + this.propertyGrid.Name = "propertyGrid"; + this.propertyGrid.Size = new System.Drawing.Size( 209, 316 ); + this.propertyGrid.TabIndex = 0; + this.propertyGrid.ToolbarVisible = false; + // + // showRectangleAroundSelectionCheck + // + this.showRectangleAroundSelectionCheck.AutoSize = true; + this.showRectangleAroundSelectionCheck.Location = new System.Drawing.Point( 6, 45 ); + this.showRectangleAroundSelectionCheck.Name = "showRectangleAroundSelectionCheck"; + this.showRectangleAroundSelectionCheck.Size = new System.Drawing.Size( 181, 17 ); + this.showRectangleAroundSelectionCheck.TabIndex = 1; + this.showRectangleAroundSelectionCheck.Text = "Show rectangle around selection"; + this.showRectangleAroundSelectionCheck.UseVisualStyleBackColor = true; + this.showRectangleAroundSelectionCheck.CheckedChanged += new System.EventHandler( this.showRectangleAroundSelectionCheck_CheckedChanged ); + // + // MainForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF( 6F, 13F ); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size( 711, 436 ); + this.Controls.Add( this.splitContainer ); + this.Controls.Add( this.statusStrip ); + this.Controls.Add( this.mainMenu ); + this.MainMenuStrip = this.mainMenu; + this.MinimumSize = new System.Drawing.Size( 480, 360 ); + this.Name = "MainForm"; + this.Text = "Blobs Explorer"; + this.Load += new System.EventHandler( this.MainForm_Load ); + this.mainMenu.ResumeLayout( false ); + this.mainMenu.PerformLayout( ); + this.statusStrip.ResumeLayout( false ); + this.statusStrip.PerformLayout( ); + this.splitContainer.Panel1.ResumeLayout( false ); + this.splitContainer.Panel2.ResumeLayout( false ); + this.splitContainer.ResumeLayout( false ); + this.groupBox1.ResumeLayout( false ); + this.groupBox1.PerformLayout( ); + this.ResumeLayout( false ); + this.PerformLayout( ); + + } + + #endregion + + private System.Windows.Forms.MenuStrip mainMenu; + private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem; + private System.Windows.Forms.StatusStrip statusStrip; + private System.Windows.Forms.ToolStripMenuItem openToolStripMenuItem; + private System.Windows.Forms.ToolStripSeparator toolStripMenuItem1; + private System.Windows.Forms.OpenFileDialog openFileDialog; + private System.Windows.Forms.SplitContainer splitContainer; + private System.Windows.Forms.PropertyGrid propertyGrid; + private BlobsBrowser blobsBrowser; + private System.Windows.Forms.ToolStripStatusLabel blobsCountLabel; + private System.Windows.Forms.ToolStripMenuItem loaddemoImageToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem helpToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem aboutToolStripMenuItem; + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.ComboBox highlightTypeCombo; + private System.Windows.Forms.CheckBox showRectangleAroundSelectionCheck; + } +} + diff --git a/Samples/Imaging/BlobsExplorer/MainForm.cs b/Samples/Imaging/BlobsExplorer/MainForm.cs new file mode 100644 index 00000000..ce6c14a3 --- /dev/null +++ b/Samples/Imaging/BlobsExplorer/MainForm.cs @@ -0,0 +1,111 @@ +// Blobs Browser sample application +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2006-2011 +// contacts@aforgenet.com +// + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; +using System.Resources; +using System.Reflection; + +using AForge.Imaging; + +namespace BlobsExplorer +{ + public partial class MainForm : Form + { + public MainForm( ) + { + InitializeComponent( ); + + highlightTypeCombo.SelectedIndex = 0; + showRectangleAroundSelectionCheck.Checked = blobsBrowser.ShowRectangleAroundSelection; + } + + // On loading of the form + private void MainForm_Load( object sender, EventArgs e ) + { + LoadDemo( ); + } + + // Exit from application + private void exitToolStripMenuItem_Click( object sender, EventArgs e ) + { + this.Close( ); + } + + // Open file + private void openToolStripMenuItem_Click( object sender, EventArgs e ) + { + if ( openFileDialog.ShowDialog( ) == DialogResult.OK ) + { + try + { + ProcessImage( (Bitmap) Bitmap.FromFile( openFileDialog.FileName ) ); + } + catch + { + MessageBox.Show( "Failed loading selected image file.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error ); + } + } + } + + // Process image + private void ProcessImage( Bitmap image ) + { + int foundBlobsCount = blobsBrowser.SetImage( image ); + + blobsCountLabel.Text = string.Format( "Found blobs' count: {0}", foundBlobsCount ); + propertyGrid.SelectedObject = null; + } + + // Blob was selected - display its information + private void blobsBrowser_BlobSelected( object sender, Blob blob ) + { + propertyGrid.SelectedObject = blob; + propertyGrid.ExpandAllGridItems( ); + } + + // Load demo image + private void loaddemoImageToolStripMenuItem_Click( object sender, EventArgs e ) + { + LoadDemo( ); + } + + private void LoadDemo( ) + { + // load arrow bitmap + Assembly assembly = this.GetType( ).Assembly; + Bitmap image = new Bitmap( assembly.GetManifestResourceStream( "BlobsExplorer.demo.png" ) ); + ProcessImage( image ); + } + + // Show about form + private void aboutToolStripMenuItem_Click( object sender, EventArgs e ) + { + AboutForm form = new AboutForm( ); + + form.ShowDialog( ); + } + + // Change type of blobs' highlighting + private void highlightTypeCombo_SelectedIndexChanged( object sender, EventArgs e ) + { + blobsBrowser.Highlighting = (BlobsBrowser.HightlightType) highlightTypeCombo.SelectedIndex; + } + + // Toggle displaying of rectangle around selection + private void showRectangleAroundSelectionCheck_CheckedChanged( object sender, EventArgs e ) + { + blobsBrowser.ShowRectangleAroundSelection = showRectangleAroundSelectionCheck.Checked; + } + } +} diff --git a/Samples/Imaging/BlobsExplorer/MainForm.resx b/Samples/Imaging/BlobsExplorer/MainForm.resx new file mode 100644 index 00000000..fc2f8b3c --- /dev/null +++ b/Samples/Imaging/BlobsExplorer/MainForm.resx @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 127, 17 + + + 236, 17 + + \ No newline at end of file diff --git a/Samples/Imaging/BlobsExplorer/Program.cs b/Samples/Imaging/BlobsExplorer/Program.cs new file mode 100644 index 00000000..99b3b956 --- /dev/null +++ b/Samples/Imaging/BlobsExplorer/Program.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Windows.Forms; + +namespace BlobsExplorer +{ + static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main( ) + { + Application.EnableVisualStyles( ); + Application.SetCompatibleTextRenderingDefault( false ); + Application.Run( new MainForm( ) ); + } + } +} diff --git a/Samples/Imaging/BlobsExplorer/Properties/AssemblyInfo.cs b/Samples/Imaging/BlobsExplorer/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..53d2a05e --- /dev/null +++ b/Samples/Imaging/BlobsExplorer/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle( "Blobs Explorer" )] +[assembly: AssemblyDescription( "Blobs Explorer sample" )] +[assembly: AssemblyConfiguration( "" )] +[assembly: AssemblyCompany( "AForge" )] +[assembly: AssemblyProduct( "AForge.NET" )] +[assembly: AssemblyCopyright( "AForge © 2009" )] +[assembly: AssemblyTrademark( "" )] +[assembly: AssemblyCulture( "" )] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible( false )] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid( "ee0212a1-9013-46bf-b859-36a6ee62b4a6" )] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion( "1.0.0.0" )] +[assembly: AssemblyFileVersion( "1.0.0.0" )] diff --git a/Samples/Imaging/BlobsExplorer/Properties/Resources.Designer.cs b/Samples/Imaging/BlobsExplorer/Properties/Resources.Designer.cs new file mode 100644 index 00000000..361c4878 --- /dev/null +++ b/Samples/Imaging/BlobsExplorer/Properties/Resources.Designer.cs @@ -0,0 +1,63 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.4200 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace BlobsExplorer.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("BlobsExplorer.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + } +} diff --git a/Samples/Imaging/BlobsExplorer/Properties/Resources.resx b/Samples/Imaging/BlobsExplorer/Properties/Resources.resx new file mode 100644 index 00000000..af7dbebb --- /dev/null +++ b/Samples/Imaging/BlobsExplorer/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Samples/Imaging/BlobsExplorer/Properties/Settings.Designer.cs b/Samples/Imaging/BlobsExplorer/Properties/Settings.Designer.cs new file mode 100644 index 00000000..111f31ef --- /dev/null +++ b/Samples/Imaging/BlobsExplorer/Properties/Settings.Designer.cs @@ -0,0 +1,26 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.4200 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace BlobsExplorer.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "9.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + } +} diff --git a/Samples/Imaging/BlobsExplorer/Properties/Settings.settings b/Samples/Imaging/BlobsExplorer/Properties/Settings.settings new file mode 100644 index 00000000..39645652 --- /dev/null +++ b/Samples/Imaging/BlobsExplorer/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Samples/Imaging/BlobsExplorer/demo.png b/Samples/Imaging/BlobsExplorer/demo.png new file mode 100644 index 00000000..1702b8aa Binary files /dev/null and b/Samples/Imaging/BlobsExplorer/demo.png differ diff --git a/Samples/Imaging/FiltersDemo/App.ico b/Samples/Imaging/FiltersDemo/App.ico new file mode 100644 index 00000000..3a5525fd Binary files /dev/null and b/Samples/Imaging/FiltersDemo/App.ico differ diff --git a/Samples/Imaging/FiltersDemo/AssemblyInfo.cs b/Samples/Imaging/FiltersDemo/AssemblyInfo.cs new file mode 100644 index 00000000..1aa1c2c3 --- /dev/null +++ b/Samples/Imaging/FiltersDemo/AssemblyInfo.cs @@ -0,0 +1,59 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly: AssemblyTitle( "Imaging Filters Demo" )] +[assembly: AssemblyDescription( "Imaging Filters Demo sample" )] +[assembly: AssemblyConfiguration( "" )] +[assembly: AssemblyCompany( "AForge" )] +[assembly: AssemblyProduct( "AForge.NET" )] +[assembly: AssemblyCopyright( "AForge © 2009" )] +[assembly: AssemblyTrademark( "" )] +[assembly: AssemblyCulture( "" )] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion( "2.0.1.0" )] +[assembly: AssemblyFileVersion( "2.0.1.0" )] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign( false )] +[assembly: AssemblyKeyFile( "" )] +[assembly: AssemblyKeyName( "" )] diff --git a/Samples/Imaging/FiltersDemo/FiltersDemo.csproj b/Samples/Imaging/FiltersDemo/FiltersDemo.csproj new file mode 100644 index 00000000..489e80dd --- /dev/null +++ b/Samples/Imaging/FiltersDemo/FiltersDemo.csproj @@ -0,0 +1,164 @@ + + + + Local + 8.0.50727 + 2.0 + {744FC79F-5B6D-44AD-8C34-1ABB6EABAE6B} + Debug + AnyCPU + App.ico + + + FiltersDemo + + + JScript + Grid + IE50 + false + WinExe + FiltersDemo + OnBuildSuccess + + + + + + + 3.5 + v2.0 + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + bin\Debug\ + false + 285212672 + false + + + DEBUG;TRACE + + + true + 4096 + false + + + false + false + false + false + 4 + full + prompt + + + bin\Release\ + false + 285212672 + false + + + TRACE + + + false + 4096 + false + + + true + false + false + false + 4 + none + prompt + + + + False + ..\..\..\Release\AForge.dll + + + False + ..\..\..\Release\AForge.Imaging.dll + + + False + ..\..\..\Release\AForge.Math.dll + + + System + + + System.Data + + + System.Drawing + + + System.Windows.Forms + + + System.XML + + + + + + Code + + + Form + + + MainForm.cs + + + + + False + Microsoft .NET Framework 4 %28x86 and x64%29 + true + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 3.1 + true + + + + + + + + + + \ No newline at end of file diff --git a/Samples/Imaging/FiltersDemo/FiltersDemo.sln b/Samples/Imaging/FiltersDemo/FiltersDemo.sln new file mode 100644 index 00000000..3f0060e7 --- /dev/null +++ b/Samples/Imaging/FiltersDemo/FiltersDemo.sln @@ -0,0 +1,19 @@ +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual C# Express 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FiltersDemo", "FiltersDemo.csproj", "{744FC79F-5B6D-44AD-8C34-1ABB6EABAE6B}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {744FC79F-5B6D-44AD-8C34-1ABB6EABAE6B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {744FC79F-5B6D-44AD-8C34-1ABB6EABAE6B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {744FC79F-5B6D-44AD-8C34-1ABB6EABAE6B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {744FC79F-5B6D-44AD-8C34-1ABB6EABAE6B}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Samples/Imaging/FiltersDemo/MainForm.cs b/Samples/Imaging/FiltersDemo/MainForm.cs new file mode 100644 index 00000000..d59e03d5 --- /dev/null +++ b/Samples/Imaging/FiltersDemo/MainForm.cs @@ -0,0 +1,856 @@ +// Image Processing filters demo +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2006-2011 +// contacts@aforgenet.com +// + +using System; +using System.Drawing; +using System.Drawing.Imaging; +using System.Collections; +using System.ComponentModel; +using System.Windows.Forms; +using System.Data; + +using AForge; +using AForge.Imaging; +using AForge.Imaging.Filters; +using AForge.Imaging.Textures; + +namespace FiltersDemo +{ + /// + /// Summary description for MainForm. + /// + public class MainForm : System.Windows.Forms.Form + { + private System.Windows.Forms.MenuItem fileItem; + private System.Windows.Forms.MenuItem openFileItem; + private System.Windows.Forms.MenuItem menuItem3; + private System.Windows.Forms.MenuItem exitFilrItem; + private System.Windows.Forms.OpenFileDialog openFileDialog; + private System.Windows.Forms.PictureBox pictureBox; + private System.Windows.Forms.MainMenu mainMenu; + private System.Windows.Forms.MenuItem sizeItem; + private System.Windows.Forms.MenuItem normalSizeItem; + private System.Windows.Forms.MenuItem stretchedSizeItem; + private System.Windows.Forms.MenuItem centeredSizeItem; + private System.Windows.Forms.MenuItem filtersItem; + private System.Windows.Forms.MenuItem noneFiltersItem; + private System.Windows.Forms.MenuItem menuItem1; + private System.Windows.Forms.MenuItem sepiaFiltersItem; + private System.Windows.Forms.MenuItem invertFiltersItem; + private System.Windows.Forms.MenuItem rotateChannelFiltersItem; + private System.Windows.Forms.MenuItem grayscaleFiltersItem; + private System.Windows.Forms.MenuItem colorFiltersItem; + private System.Windows.Forms.MenuItem menuItem2; + private System.Windows.Forms.MenuItem hueModifierFiltersItem; + private System.Windows.Forms.MenuItem saturationAdjustingFiltersItem; + private System.Windows.Forms.MenuItem brightnessAdjustingFiltersItem; + private System.Windows.Forms.MenuItem contrastAdjustingFiltersItem; + private System.Windows.Forms.MenuItem hslFiltersItem; + private System.Windows.Forms.MenuItem menuItem4; + private System.Windows.Forms.MenuItem yCbCrLinearFiltersItem; + private System.Windows.Forms.MenuItem yCbCrFiltersItem; + private System.Windows.Forms.MenuItem menuItem5; + private System.Windows.Forms.MenuItem thresholdFiltersItem; + private System.Windows.Forms.MenuItem floydFiltersItem; + private System.Windows.Forms.MenuItem orderedDitheringFiltersItem; + private System.Windows.Forms.MenuItem menuItem6; + private System.Windows.Forms.MenuItem convolutionFiltersItem; + private System.Windows.Forms.MenuItem sharpenFiltersItem; + private System.Windows.Forms.MenuItem menuItem7; + private System.Windows.Forms.MenuItem differenceEdgesFiltersItem; + private System.Windows.Forms.MenuItem homogenityEdgesFiltersItem; + private System.Windows.Forms.MenuItem sobelEdgesFiltersItem; + private System.Windows.Forms.MenuItem rgbLinearFiltersItem; + private System.Windows.Forms.MenuItem menuItem8; + private System.Windows.Forms.MenuItem jitterFiltersItem; + private System.Windows.Forms.MenuItem oilFiltersItem; + private MenuItem gaussianFiltersItem; + private MenuItem textureFiltersItem; + private IContainer components; + + private System.Drawing.Bitmap sourceImage; + private System.Drawing.Bitmap filteredImage; + + // Constructor + public MainForm( ) + { + // + // Required for Windows Form Designer support + // + InitializeComponent( ); + + // set default size mode of picture box + pictureBox.SizeMode = PictureBoxSizeMode.StretchImage; + } + + /// + /// Clean up any resources being used. + /// + protected override void Dispose( bool disposing ) + { + if ( disposing ) + { + if ( components != null ) + { + components.Dispose( ); + } + } + base.Dispose( disposing ); + } + + #region Windows Form Designer generated code + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent( ) + { + this.components = new System.ComponentModel.Container( ); + this.mainMenu = new System.Windows.Forms.MainMenu( this.components ); + this.fileItem = new System.Windows.Forms.MenuItem( ); + this.openFileItem = new System.Windows.Forms.MenuItem( ); + this.menuItem3 = new System.Windows.Forms.MenuItem( ); + this.exitFilrItem = new System.Windows.Forms.MenuItem( ); + this.filtersItem = new System.Windows.Forms.MenuItem( ); + this.noneFiltersItem = new System.Windows.Forms.MenuItem( ); + this.menuItem1 = new System.Windows.Forms.MenuItem( ); + this.grayscaleFiltersItem = new System.Windows.Forms.MenuItem( ); + this.sepiaFiltersItem = new System.Windows.Forms.MenuItem( ); + this.invertFiltersItem = new System.Windows.Forms.MenuItem( ); + this.rotateChannelFiltersItem = new System.Windows.Forms.MenuItem( ); + this.colorFiltersItem = new System.Windows.Forms.MenuItem( ); + this.rgbLinearFiltersItem = new System.Windows.Forms.MenuItem( ); + this.menuItem2 = new System.Windows.Forms.MenuItem( ); + this.hueModifierFiltersItem = new System.Windows.Forms.MenuItem( ); + this.saturationAdjustingFiltersItem = new System.Windows.Forms.MenuItem( ); + this.brightnessAdjustingFiltersItem = new System.Windows.Forms.MenuItem( ); + this.contrastAdjustingFiltersItem = new System.Windows.Forms.MenuItem( ); + this.hslFiltersItem = new System.Windows.Forms.MenuItem( ); + this.menuItem4 = new System.Windows.Forms.MenuItem( ); + this.yCbCrLinearFiltersItem = new System.Windows.Forms.MenuItem( ); + this.yCbCrFiltersItem = new System.Windows.Forms.MenuItem( ); + this.menuItem5 = new System.Windows.Forms.MenuItem( ); + this.thresholdFiltersItem = new System.Windows.Forms.MenuItem( ); + this.floydFiltersItem = new System.Windows.Forms.MenuItem( ); + this.orderedDitheringFiltersItem = new System.Windows.Forms.MenuItem( ); + this.menuItem6 = new System.Windows.Forms.MenuItem( ); + this.convolutionFiltersItem = new System.Windows.Forms.MenuItem( ); + this.sharpenFiltersItem = new System.Windows.Forms.MenuItem( ); + this.gaussianFiltersItem = new System.Windows.Forms.MenuItem( ); + this.menuItem7 = new System.Windows.Forms.MenuItem( ); + this.differenceEdgesFiltersItem = new System.Windows.Forms.MenuItem( ); + this.homogenityEdgesFiltersItem = new System.Windows.Forms.MenuItem( ); + this.sobelEdgesFiltersItem = new System.Windows.Forms.MenuItem( ); + this.menuItem8 = new System.Windows.Forms.MenuItem( ); + this.jitterFiltersItem = new System.Windows.Forms.MenuItem( ); + this.oilFiltersItem = new System.Windows.Forms.MenuItem( ); + this.textureFiltersItem = new System.Windows.Forms.MenuItem( ); + this.sizeItem = new System.Windows.Forms.MenuItem( ); + this.normalSizeItem = new System.Windows.Forms.MenuItem( ); + this.stretchedSizeItem = new System.Windows.Forms.MenuItem( ); + this.centeredSizeItem = new System.Windows.Forms.MenuItem( ); + this.openFileDialog = new System.Windows.Forms.OpenFileDialog( ); + this.pictureBox = new System.Windows.Forms.PictureBox( ); + ( (System.ComponentModel.ISupportInitialize) ( this.pictureBox ) ).BeginInit( ); + this.SuspendLayout( ); + // + // mainMenu + // + this.mainMenu.MenuItems.AddRange( new System.Windows.Forms.MenuItem[] { + this.fileItem, + this.filtersItem, + this.sizeItem} ); + // + // fileItem + // + this.fileItem.Index = 0; + this.fileItem.MenuItems.AddRange( new System.Windows.Forms.MenuItem[] { + this.openFileItem, + this.menuItem3, + this.exitFilrItem} ); + this.fileItem.Text = "&File"; + // + // openFileItem + // + this.openFileItem.Index = 0; + this.openFileItem.Shortcut = System.Windows.Forms.Shortcut.CtrlO; + this.openFileItem.Text = "&Open"; + this.openFileItem.Click += new System.EventHandler( this.openFileItem_Click ); + // + // menuItem3 + // + this.menuItem3.Index = 1; + this.menuItem3.Text = "-"; + // + // exitFilrItem + // + this.exitFilrItem.Index = 2; + this.exitFilrItem.Text = "E&xit"; + this.exitFilrItem.Click += new System.EventHandler( this.exitFilrItem_Click ); + // + // filtersItem + // + this.filtersItem.Enabled = false; + this.filtersItem.Index = 1; + this.filtersItem.MenuItems.AddRange( new System.Windows.Forms.MenuItem[] { + this.noneFiltersItem, + this.menuItem1, + this.grayscaleFiltersItem, + this.sepiaFiltersItem, + this.invertFiltersItem, + this.rotateChannelFiltersItem, + this.colorFiltersItem, + this.rgbLinearFiltersItem, + this.menuItem2, + this.hueModifierFiltersItem, + this.saturationAdjustingFiltersItem, + this.brightnessAdjustingFiltersItem, + this.contrastAdjustingFiltersItem, + this.hslFiltersItem, + this.menuItem4, + this.yCbCrLinearFiltersItem, + this.yCbCrFiltersItem, + this.menuItem5, + this.thresholdFiltersItem, + this.floydFiltersItem, + this.orderedDitheringFiltersItem, + this.menuItem6, + this.convolutionFiltersItem, + this.sharpenFiltersItem, + this.gaussianFiltersItem, + this.menuItem7, + this.differenceEdgesFiltersItem, + this.homogenityEdgesFiltersItem, + this.sobelEdgesFiltersItem, + this.menuItem8, + this.jitterFiltersItem, + this.oilFiltersItem, + this.textureFiltersItem} ); + this.filtersItem.Text = "Fi<ers"; + // + // noneFiltersItem + // + this.noneFiltersItem.Index = 0; + this.noneFiltersItem.Text = "&None"; + this.noneFiltersItem.Click += new System.EventHandler( this.noneFiltersItem_Click ); + // + // menuItem1 + // + this.menuItem1.Index = 1; + this.menuItem1.Text = "-"; + // + // grayscaleFiltersItem + // + this.grayscaleFiltersItem.Index = 2; + this.grayscaleFiltersItem.Text = "&Grayscale"; + this.grayscaleFiltersItem.Click += new System.EventHandler( this.grayscaleFiltersItem_Click ); + // + // sepiaFiltersItem + // + this.sepiaFiltersItem.Index = 3; + this.sepiaFiltersItem.Text = "&Sepia"; + this.sepiaFiltersItem.Click += new System.EventHandler( this.sepiaFiltersItem_Click ); + // + // invertFiltersItem + // + this.invertFiltersItem.Index = 4; + this.invertFiltersItem.Text = "&Invert"; + this.invertFiltersItem.Click += new System.EventHandler( this.invertFiltersItem_Click ); + // + // rotateChannelFiltersItem + // + this.rotateChannelFiltersItem.Index = 5; + this.rotateChannelFiltersItem.Text = "&Rotate channel"; + this.rotateChannelFiltersItem.Click += new System.EventHandler( this.rotateChannelFiltersItem_Click ); + // + // colorFiltersItem + // + this.colorFiltersItem.Index = 6; + this.colorFiltersItem.Text = "Color filtering"; + this.colorFiltersItem.Click += new System.EventHandler( this.colorFiltersItem_Click ); + // + // rgbLinearFiltersItem + // + this.rgbLinearFiltersItem.Index = 7; + this.rgbLinearFiltersItem.Text = "Levels linear correction"; + this.rgbLinearFiltersItem.Click += new System.EventHandler( this.rgbLinearFiltersItem_Click ); + // + // menuItem2 + // + this.menuItem2.Index = 8; + this.menuItem2.Text = "-"; + // + // hueModifierFiltersItem + // + this.hueModifierFiltersItem.Index = 9; + this.hueModifierFiltersItem.Text = "Hue modifier"; + this.hueModifierFiltersItem.Click += new System.EventHandler( this.hueModifierFiltersItem_Click ); + // + // saturationAdjustingFiltersItem + // + this.saturationAdjustingFiltersItem.Index = 10; + this.saturationAdjustingFiltersItem.Text = "Saturation adjusting"; + this.saturationAdjustingFiltersItem.Click += new System.EventHandler( this.saturationAdjustingFiltersItem_Click ); + // + // brightnessAdjustingFiltersItem + // + this.brightnessAdjustingFiltersItem.Index = 11; + this.brightnessAdjustingFiltersItem.Text = "Brightness adjusting"; + this.brightnessAdjustingFiltersItem.Click += new System.EventHandler( this.brightnessAdjustingFiltersItem_Click ); + // + // contrastAdjustingFiltersItem + // + this.contrastAdjustingFiltersItem.Index = 12; + this.contrastAdjustingFiltersItem.Text = "Contrast adjusting"; + this.contrastAdjustingFiltersItem.Click += new System.EventHandler( this.contrastAdjustingFiltersItem_Click ); + // + // hslFiltersItem + // + this.hslFiltersItem.Index = 13; + this.hslFiltersItem.Text = "HSL filtering"; + this.hslFiltersItem.Click += new System.EventHandler( this.hslFiltersItem_Click ); + // + // menuItem4 + // + this.menuItem4.Index = 14; + this.menuItem4.Text = "-"; + // + // yCbCrLinearFiltersItem + // + this.yCbCrLinearFiltersItem.Index = 15; + this.yCbCrLinearFiltersItem.Text = "YCbCr linear correction"; + this.yCbCrLinearFiltersItem.Click += new System.EventHandler( this.yCbCrLinearFiltersItem_Click ); + // + // yCbCrFiltersItem + // + this.yCbCrFiltersItem.Index = 16; + this.yCbCrFiltersItem.Text = "YCbCr filtering"; + this.yCbCrFiltersItem.Click += new System.EventHandler( this.yCbCrFiltersItem_Click ); + // + // menuItem5 + // + this.menuItem5.Index = 17; + this.menuItem5.Text = "-"; + // + // thresholdFiltersItem + // + this.thresholdFiltersItem.Index = 18; + this.thresholdFiltersItem.Text = "Threshold &binarization"; + this.thresholdFiltersItem.Click += new System.EventHandler( this.thresholdFiltersItem_Click ); + // + // floydFiltersItem + // + this.floydFiltersItem.Index = 19; + this.floydFiltersItem.Text = "Floyd-Steinberg dithering"; + this.floydFiltersItem.Click += new System.EventHandler( this.floydFiltersItem_Click ); + // + // orderedDitheringFiltersItem + // + this.orderedDitheringFiltersItem.Index = 20; + this.orderedDitheringFiltersItem.Text = "Ordered dithering"; + this.orderedDitheringFiltersItem.Click += new System.EventHandler( this.orderedDitheringFiltersItem_Click ); + // + // menuItem6 + // + this.menuItem6.Index = 21; + this.menuItem6.Text = "-"; + // + // convolutionFiltersItem + // + this.convolutionFiltersItem.Index = 22; + this.convolutionFiltersItem.Text = "Convolution"; + this.convolutionFiltersItem.Click += new System.EventHandler( this.convolutionFiltersItem_Click ); + // + // sharpenFiltersItem + // + this.sharpenFiltersItem.Index = 23; + this.sharpenFiltersItem.Text = "Sharpen"; + this.sharpenFiltersItem.Click += new System.EventHandler( this.sharpenFiltersItem_Click ); + // + // gaussianFiltersItem + // + this.gaussianFiltersItem.Index = 24; + this.gaussianFiltersItem.Text = "Gaussian blur"; + this.gaussianFiltersItem.Click += new System.EventHandler( this.gaussianFiltersItem_Click ); + // + // menuItem7 + // + this.menuItem7.Index = 25; + this.menuItem7.Text = "-"; + // + // differenceEdgesFiltersItem + // + this.differenceEdgesFiltersItem.Index = 26; + this.differenceEdgesFiltersItem.Text = "Difference edge detector"; + this.differenceEdgesFiltersItem.Click += new System.EventHandler( this.differenceEdgesFiltersItem_Click ); + // + // homogenityEdgesFiltersItem + // + this.homogenityEdgesFiltersItem.Index = 27; + this.homogenityEdgesFiltersItem.Text = "Homogenity edge detector"; + this.homogenityEdgesFiltersItem.Click += new System.EventHandler( this.homogenityEdgesFiltersItem_Click ); + // + // sobelEdgesFiltersItem + // + this.sobelEdgesFiltersItem.Index = 28; + this.sobelEdgesFiltersItem.Text = "Sobel edge detector"; + this.sobelEdgesFiltersItem.Click += new System.EventHandler( this.sobelEdgesFiltersItem_Click ); + // + // menuItem8 + // + this.menuItem8.Index = 29; + this.menuItem8.Text = "-"; + // + // jitterFiltersItem + // + this.jitterFiltersItem.Index = 30; + this.jitterFiltersItem.Text = "Jitter"; + this.jitterFiltersItem.Click += new System.EventHandler( this.jitterFiltersItem_Click ); + // + // oilFiltersItem + // + this.oilFiltersItem.Index = 31; + this.oilFiltersItem.Text = "Oil Painting"; + this.oilFiltersItem.Click += new System.EventHandler( this.oilFiltersItem_Click ); + // + // textureFiltersItem + // + this.textureFiltersItem.Index = 32; + this.textureFiltersItem.Text = "Texture"; + this.textureFiltersItem.Click += new System.EventHandler( this.textureFiltersItem_Click ); + // + // sizeItem + // + this.sizeItem.Index = 2; + this.sizeItem.MenuItems.AddRange( new System.Windows.Forms.MenuItem[] { + this.normalSizeItem, + this.stretchedSizeItem, + this.centeredSizeItem} ); + this.sizeItem.Text = "&Size mode"; + this.sizeItem.Popup += new System.EventHandler( this.sizeItem_Popup ); + // + // normalSizeItem + // + this.normalSizeItem.Index = 0; + this.normalSizeItem.Text = "&Normal"; + this.normalSizeItem.Click += new System.EventHandler( this.normalSizeItem_Click ); + // + // stretchedSizeItem + // + this.stretchedSizeItem.Index = 1; + this.stretchedSizeItem.Text = "&Stretched"; + this.stretchedSizeItem.Click += new System.EventHandler( this.stretchedSizeItem_Click ); + // + // centeredSizeItem + // + this.centeredSizeItem.Index = 2; + this.centeredSizeItem.Text = "&Centered"; + this.centeredSizeItem.Click += new System.EventHandler( this.centeredSizeItem_Click ); + // + // openFileDialog + // + this.openFileDialog.Filter = "Image files (*.jpg,*.png,*.tif,*.bmp,*.gif)|*.jpg;*.png;*.tif;*.bmp;*.gif|JPG fil" + + "es (*.jpg)|*.jpg|PNG files (*.png)|*.png|TIF files (*.tif)|*.tif|BMP files (*.bm" + + "p)|*.bmp|GIF files (*.gif)|*.gif"; + this.openFileDialog.Title = "Open image"; + // + // pictureBox + // + this.pictureBox.Anchor = ( (System.Windows.Forms.AnchorStyles) ( ( ( ( System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom ) + | System.Windows.Forms.AnchorStyles.Left ) + | System.Windows.Forms.AnchorStyles.Right ) ) ); + this.pictureBox.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.pictureBox.Location = new System.Drawing.Point( 6, 5 ); + this.pictureBox.Name = "pictureBox"; + this.pictureBox.Size = new System.Drawing.Size( 530, 315 ); + this.pictureBox.TabIndex = 0; + this.pictureBox.TabStop = false; + // + // MainForm + // + this.AutoScaleBaseSize = new System.Drawing.Size( 5, 13 ); + this.ClientSize = new System.Drawing.Size( 542, 325 ); + this.Controls.Add( this.pictureBox ); + this.Menu = this.mainMenu; + this.MinimumSize = new System.Drawing.Size( 320, 240 ); + this.Name = "MainForm"; + this.Text = "Image Processing filters demo"; + ( (System.ComponentModel.ISupportInitialize) ( this.pictureBox ) ).EndInit( ); + this.ResumeLayout( false ); + + } + #endregion + + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main( ) + { + Application.Run( new MainForm( ) ); + } + + // On File->Exit menu item + private void exitFilrItem_Click( object sender, System.EventArgs e ) + { + Application.Exit( ); + } + + // On File->Open menu item + private void openFileItem_Click( object sender, System.EventArgs e ) + { + try + { + // show file open dialog + if ( openFileDialog.ShowDialog( ) == DialogResult.OK ) + { + // load image + sourceImage = (Bitmap) Bitmap.FromFile( openFileDialog.FileName ); + + // check pixel format + if ( ( sourceImage.PixelFormat == PixelFormat.Format16bppGrayScale ) || + ( Bitmap.GetPixelFormatSize( sourceImage.PixelFormat ) > 32 ) ) + { + MessageBox.Show( "The demo application supports only color images.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error ); + // free image + sourceImage.Dispose( ); + sourceImage = null; + } + else + { + // make sure the image has 24 bpp format + if ( sourceImage.PixelFormat != PixelFormat.Format24bppRgb ) + { + Bitmap temp = AForge.Imaging.Image.Clone( sourceImage, PixelFormat.Format24bppRgb ); + sourceImage.Dispose( ); + sourceImage = temp; + } + } + + ClearCurrentImage( ); + + // display image + pictureBox.Image = sourceImage; + noneFiltersItem.Checked = true; + + // enable filters menu + filtersItem.Enabled = ( sourceImage != null ); + } + } + catch + { + MessageBox.Show( "Failed loading the image", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error ); + } + } + + // On Size mode->Normal menu item + private void normalSizeItem_Click( object sender, System.EventArgs e ) + { + pictureBox.SizeMode = PictureBoxSizeMode.Normal; + } + + // On Size mode->Stretched menu item + private void stretchedSizeItem_Click( object sender, System.EventArgs e ) + { + pictureBox.SizeMode = PictureBoxSizeMode.StretchImage; + } + + // On Size mode->Centered size menu item + private void centeredSizeItem_Click( object sender, System.EventArgs e ) + { + pictureBox.SizeMode = PictureBoxSizeMode.CenterImage; + } + + // On Size menu item popup + private void sizeItem_Popup( object sender, System.EventArgs e ) + { + normalSizeItem.Checked = ( pictureBox.SizeMode == PictureBoxSizeMode.Normal ); + stretchedSizeItem.Checked = ( pictureBox.SizeMode == PictureBoxSizeMode.StretchImage ); + centeredSizeItem.Checked = ( pictureBox.SizeMode == PictureBoxSizeMode.CenterImage ); + } + + // Clear current image in picture box + private void ClearCurrentImage( ) + { + // clear current image from picture box + pictureBox.Image = null; + // free current image + if ( ( noneFiltersItem.Checked == false ) && ( filteredImage != null ) ) + { + filteredImage.Dispose( ); + filteredImage = null; + } + // uncheck all menu items + foreach ( MenuItem item in filtersItem.MenuItems ) + item.Checked = false; + } + + // Apply filter to the source image and show the filtered image + private void ApplyFilter( IFilter filter ) + { + ClearCurrentImage( ); + // apply filter + filteredImage = filter.Apply( sourceImage ); + // display filtered image + pictureBox.Image = filteredImage; + } + + // On Filters->None item + private void noneFiltersItem_Click( object sender, System.EventArgs e ) + { + ClearCurrentImage( ); + // display source image + pictureBox.Image = sourceImage; + noneFiltersItem.Checked = true; + } + + // On Filters->Grayscale item + private void grayscaleFiltersItem_Click( object sender, System.EventArgs e ) + { + ApplyFilter( Grayscale.CommonAlgorithms.BT709 ); + grayscaleFiltersItem.Checked = true; + } + + // On Filters->Sepia item + private void sepiaFiltersItem_Click( object sender, System.EventArgs e ) + { + ApplyFilter( new Sepia( ) ); + sepiaFiltersItem.Checked = true; + } + + // On Filters->Invert item + private void invertFiltersItem_Click( object sender, System.EventArgs e ) + { + ApplyFilter( new Invert( ) ); + invertFiltersItem.Checked = true; + } + + // On Filters->Rotate Channels item + private void rotateChannelFiltersItem_Click( object sender, System.EventArgs e ) + { + ApplyFilter( new RotateChannels( ) ); + rotateChannelFiltersItem.Checked = true; + } + + // On Filters->Color filtering + private void colorFiltersItem_Click( object sender, System.EventArgs e ) + { + ApplyFilter( new ColorFiltering( new IntRange( 25, 230 ), new IntRange( 25, 230 ), new IntRange( 25, 230 ) ) ); + colorFiltersItem.Checked = true; + } + + // On Filters->Hue modifier + private void hueModifierFiltersItem_Click( object sender, System.EventArgs e ) + { + ApplyFilter( new HueModifier( 50 ) ); + hueModifierFiltersItem.Checked = true; + } + + // On Filters->Saturation adjusting + private void saturationAdjustingFiltersItem_Click( object sender, System.EventArgs e ) + { + ApplyFilter( new SaturationCorrection( 0.15f ) ); + saturationAdjustingFiltersItem.Checked = true; + } + + // On Filters->Brightness adjusting + private void brightnessAdjustingFiltersItem_Click( object sender, System.EventArgs e ) + { + ApplyFilter( new BrightnessCorrection( ) ); + brightnessAdjustingFiltersItem.Checked = true; + } + + // On Filters->Contrast adjusting + private void contrastAdjustingFiltersItem_Click( object sender, System.EventArgs e ) + { + ApplyFilter( new ContrastCorrection( ) ); + contrastAdjustingFiltersItem.Checked = true; + } + + // On Filters->HSL filtering + private void hslFiltersItem_Click( object sender, System.EventArgs e ) + { + ApplyFilter( new HSLFiltering( new IntRange( 330, 30 ), new Range( 0, 1 ), new Range( 0, 1 ) ) ); + hslFiltersItem.Checked = true; + } + + // On Filters->YCbCr filtering + private void yCbCrLinearFiltersItem_Click( object sender, System.EventArgs e ) + { + YCbCrLinear filter = new YCbCrLinear( ); + + filter.InCb = new Range( -0.3f, 0.3f ); + + ApplyFilter( filter ); + yCbCrLinearFiltersItem.Checked = true; + } + + // On Filters->YCbCr filtering + private void yCbCrFiltersItem_Click( object sender, System.EventArgs e ) + { + ApplyFilter( new YCbCrFiltering( new Range( 0.2f, 0.9f ), new Range( -0.3f, 0.3f ), new Range( -0.3f, 0.3f ) ) ); + yCbCrFiltersItem.Checked = true; + } + + // On Filters->Threshold binarization + private void thresholdFiltersItem_Click( object sender, System.EventArgs e ) + { + // save original image + Bitmap originalImage = sourceImage; + // get grayscale image + sourceImage = Grayscale.CommonAlgorithms.RMY.Apply( sourceImage ); + // apply threshold filter + ApplyFilter( new Threshold( ) ); + // delete grayscale image and restore original + sourceImage.Dispose( ); + sourceImage = originalImage; + + thresholdFiltersItem.Checked = true; + } + + // On Filters->Floyd-Steinberg dithering + private void floydFiltersItem_Click( object sender, System.EventArgs e ) + { + // save original image + Bitmap originalImage = sourceImage; + // get grayscale image + sourceImage = Grayscale.CommonAlgorithms.RMY.Apply( sourceImage ); + // apply threshold filter + ApplyFilter( new FloydSteinbergDithering( ) ); + // delete grayscale image and restore original + sourceImage.Dispose( ); + sourceImage = originalImage; + + floydFiltersItem.Checked = true; + } + + // On Filters->Ordered dithering + private void orderedDitheringFiltersItem_Click( object sender, System.EventArgs e ) + { + // save original image + Bitmap originalImage = sourceImage; + // get grayscale image + sourceImage = Grayscale.CommonAlgorithms.RMY.Apply( sourceImage ); + // apply threshold filter + ApplyFilter( new OrderedDithering( ) ); + // delete grayscale image and restore original + sourceImage.Dispose( ); + sourceImage = originalImage; + + orderedDitheringFiltersItem.Checked = true; + } + + // On Filters->Correlation + private void convolutionFiltersItem_Click( object sender, System.EventArgs e ) + { + ApplyFilter( new Convolution( new int[,] { + { 1, 2, 3, 2, 1 }, + { 2, 4, 5, 4, 2 }, + { 3, 5, 6, 5, 3 }, + { 2, 4, 5, 4, 2 }, + { 1, 2, 3, 2, 1 } } ) ); + convolutionFiltersItem.Checked = true; + } + + // On Filters->Sharpen + private void sharpenFiltersItem_Click( object sender, System.EventArgs e ) + { + ApplyFilter( new Sharpen( ) ); + sharpenFiltersItem.Checked = true; + } + + // On Filters->Difference edge detector + private void differenceEdgesFiltersItem_Click( object sender, System.EventArgs e ) + { + // save original image + Bitmap originalImage = sourceImage; + // get grayscale image + sourceImage = Grayscale.CommonAlgorithms.RMY.Apply( sourceImage ); + // apply edge filter + ApplyFilter( new DifferenceEdgeDetector( ) ); + // delete grayscale image and restore original + sourceImage.Dispose( ); + sourceImage = originalImage; + + differenceEdgesFiltersItem.Checked = true; + } + + // On Filters->Homogenity edge detector + private void homogenityEdgesFiltersItem_Click( object sender, System.EventArgs e ) + { + // save original image + Bitmap originalImage = sourceImage; + // get grayscale image + sourceImage = Grayscale.CommonAlgorithms.RMY.Apply( sourceImage ); + // apply edge filter + ApplyFilter( new HomogenityEdgeDetector( ) ); + // delete grayscale image and restore original + sourceImage.Dispose( ); + sourceImage = originalImage; + + homogenityEdgesFiltersItem.Checked = true; + } + + // On Filters->Sobel edge detector + private void sobelEdgesFiltersItem_Click( object sender, System.EventArgs e ) + { + // save original image + Bitmap originalImage = sourceImage; + // get grayscale image + sourceImage = Grayscale.CommonAlgorithms.RMY.Apply( sourceImage ); + // apply edge filter + ApplyFilter( new SobelEdgeDetector( ) ); + // delete grayscale image and restore original + sourceImage.Dispose( ); + sourceImage = originalImage; + + sobelEdgesFiltersItem.Checked = true; + } + + // On Filters->Levels Linear Correction + private void rgbLinearFiltersItem_Click( object sender, System.EventArgs e ) + { + LevelsLinear filter = new LevelsLinear( ); + + filter.InRed = new IntRange( 30, 230 ); + filter.InGreen = new IntRange( 50, 240 ); + filter.InBlue = new IntRange( 10, 210 ); + + ApplyFilter( filter ); + rgbLinearFiltersItem.Checked = true; + } + + // On Filters->Jitter + private void jitterFiltersItem_Click( object sender, System.EventArgs e ) + { + ApplyFilter( new Jitter( ) ); + jitterFiltersItem.Checked = true; + } + + // On Filters->Oil Painting + private void oilFiltersItem_Click( object sender, System.EventArgs e ) + { + ApplyFilter( new OilPainting( ) ); + oilFiltersItem.Checked = true; + } + + // On Filters->Gaussin blur + private void gaussianFiltersItem_Click( object sender, EventArgs e ) + { + ApplyFilter( new GaussianBlur( 2.0, 7 ) ); + gaussianFiltersItem.Checked = true; + } + + // On Filters->Texture + private void textureFiltersItem_Click( object sender, EventArgs e ) + { + ApplyFilter( new Texturer( new TextileTexture( ), 1.0, 0.8 ) ); + textureFiltersItem.Checked = true; + } + } +} diff --git a/Samples/Imaging/FiltersDemo/MainForm.resx b/Samples/Imaging/FiltersDemo/MainForm.resx new file mode 100644 index 00000000..8bf1fab6 --- /dev/null +++ b/Samples/Imaging/FiltersDemo/MainForm.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 1017, 15 + + \ No newline at end of file diff --git a/Samples/Imaging/HoughTransformation/HoughTransformation.csproj b/Samples/Imaging/HoughTransformation/HoughTransformation.csproj new file mode 100644 index 00000000..0f1aa367 --- /dev/null +++ b/Samples/Imaging/HoughTransformation/HoughTransformation.csproj @@ -0,0 +1,130 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {6B66B73D-481C-479B-AC13-F5E332D12293} + WinExe + Properties + HoughTransform + HoughTransformation + + + 3.5 + v2.0 + + + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + False + ..\..\..\Release\AForge.dll + + + False + ..\..\..\Release\AForge.Imaging.dll + + + + + + + + + Form + + + MainForm.cs + + + + + Designer + MainForm.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + True + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + False + Microsoft .NET Framework 4 %28x86 and x64%29 + true + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 3.1 + true + + + + + \ No newline at end of file diff --git a/Samples/Imaging/HoughTransformation/HoughTransformation.sln b/Samples/Imaging/HoughTransformation/HoughTransformation.sln new file mode 100644 index 00000000..d053f1a0 --- /dev/null +++ b/Samples/Imaging/HoughTransformation/HoughTransformation.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual C# Express 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HoughTransformation", "HoughTransformation.csproj", "{6B66B73D-481C-479B-AC13-F5E332D12293}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {6B66B73D-481C-479B-AC13-F5E332D12293}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6B66B73D-481C-479B-AC13-F5E332D12293}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6B66B73D-481C-479B-AC13-F5E332D12293}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6B66B73D-481C-479B-AC13-F5E332D12293}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Samples/Imaging/HoughTransformation/MainForm.Designer.cs b/Samples/Imaging/HoughTransformation/MainForm.Designer.cs new file mode 100644 index 00000000..217d1a1b --- /dev/null +++ b/Samples/Imaging/HoughTransformation/MainForm.Designer.cs @@ -0,0 +1,216 @@ +namespace HoughTransform +{ + partial class MainForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose( bool disposing ) + { + if ( disposing && ( components != null ) ) + { + components.Dispose( ); + } + base.Dispose( disposing ); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent( ) + { + this.menuStrip1 = new System.Windows.Forms.MenuStrip( ); + this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem( ); + this.openToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem( ); + this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripSeparator( ); + this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem( ); + this.openFileDialog = new System.Windows.Forms.OpenFileDialog( ); + this.tabControl = new System.Windows.Forms.TabControl( ); + this.tabPage1 = new System.Windows.Forms.TabPage( ); + this.sourcePictureBox = new System.Windows.Forms.PictureBox( ); + this.tabPage2 = new System.Windows.Forms.TabPage( ); + this.houghLinePictureBox = new System.Windows.Forms.PictureBox( ); + this.tabPage3 = new System.Windows.Forms.TabPage( ); + this.houghCirclePictureBox = new System.Windows.Forms.PictureBox( ); + this.menuStrip1.SuspendLayout( ); + this.tabControl.SuspendLayout( ); + this.tabPage1.SuspendLayout( ); + ( (System.ComponentModel.ISupportInitialize) ( this.sourcePictureBox ) ).BeginInit( ); + this.tabPage2.SuspendLayout( ); + ( (System.ComponentModel.ISupportInitialize) ( this.houghLinePictureBox ) ).BeginInit( ); + this.tabPage3.SuspendLayout( ); + ( (System.ComponentModel.ISupportInitialize) ( this.houghCirclePictureBox ) ).BeginInit( ); + this.SuspendLayout( ); + // + // menuStrip1 + // + this.menuStrip1.Items.AddRange( new System.Windows.Forms.ToolStripItem[] { + this.fileToolStripMenuItem} ); + this.menuStrip1.Location = new System.Drawing.Point( 0, 0 ); + this.menuStrip1.Name = "menuStrip1"; + this.menuStrip1.Size = new System.Drawing.Size( 632, 24 ); + this.menuStrip1.TabIndex = 0; + this.menuStrip1.Text = "mainMenuStrip"; + // + // fileToolStripMenuItem + // + this.fileToolStripMenuItem.DropDownItems.AddRange( new System.Windows.Forms.ToolStripItem[] { + this.openToolStripMenuItem, + this.toolStripMenuItem1, + this.exitToolStripMenuItem} ); + this.fileToolStripMenuItem.Name = "fileToolStripMenuItem"; + this.fileToolStripMenuItem.Size = new System.Drawing.Size( 35, 20 ); + this.fileToolStripMenuItem.Text = "&File"; + // + // openToolStripMenuItem + // + this.openToolStripMenuItem.Name = "openToolStripMenuItem"; + this.openToolStripMenuItem.ShortcutKeys = ( (System.Windows.Forms.Keys) ( ( System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.O ) ) ); + this.openToolStripMenuItem.Size = new System.Drawing.Size( 151, 22 ); + this.openToolStripMenuItem.Text = "&Open"; + this.openToolStripMenuItem.Click += new System.EventHandler( this.openToolStripMenuItem_Click ); + // + // toolStripMenuItem1 + // + this.toolStripMenuItem1.Name = "toolStripMenuItem1"; + this.toolStripMenuItem1.Size = new System.Drawing.Size( 148, 6 ); + // + // exitToolStripMenuItem + // + this.exitToolStripMenuItem.Name = "exitToolStripMenuItem"; + this.exitToolStripMenuItem.Size = new System.Drawing.Size( 151, 22 ); + this.exitToolStripMenuItem.Text = "E&xit"; + this.exitToolStripMenuItem.Click += new System.EventHandler( this.exitToolStripMenuItem_Click ); + // + // openFileDialog + // + this.openFileDialog.Filter = "Image files (*.jpg,*.png,*.tif,*.bmp,*.gif)|*.jpg;*.png;*.tif;*.bmp;*.gif|JPG fil" + + "es (*.jpg)|*.jpg|PNG files (*.png)|*.png|TIF files (*.tif)|*.tif|BMP files (*.bm" + + "p)|*.bmp|GIF files (*.gif)|*.gif"; + this.openFileDialog.Title = "Open image"; + // + // tabControl + // + this.tabControl.Controls.Add( this.tabPage1 ); + this.tabControl.Controls.Add( this.tabPage2 ); + this.tabControl.Controls.Add( this.tabPage3 ); + this.tabControl.Dock = System.Windows.Forms.DockStyle.Fill; + this.tabControl.Location = new System.Drawing.Point( 0, 24 ); + this.tabControl.Name = "tabControl"; + this.tabControl.SelectedIndex = 0; + this.tabControl.Size = new System.Drawing.Size( 632, 442 ); + this.tabControl.TabIndex = 1; + // + // tabPage1 + // + this.tabPage1.Controls.Add( this.sourcePictureBox ); + this.tabPage1.Location = new System.Drawing.Point( 4, 22 ); + this.tabPage1.Name = "tabPage1"; + this.tabPage1.Padding = new System.Windows.Forms.Padding( 3 ); + this.tabPage1.Size = new System.Drawing.Size( 624, 416 ); + this.tabPage1.TabIndex = 0; + this.tabPage1.Text = "Original image"; + this.tabPage1.UseVisualStyleBackColor = true; + // + // sourcePictureBox + // + this.sourcePictureBox.Dock = System.Windows.Forms.DockStyle.Fill; + this.sourcePictureBox.Location = new System.Drawing.Point( 3, 3 ); + this.sourcePictureBox.Name = "sourcePictureBox"; + this.sourcePictureBox.Size = new System.Drawing.Size( 618, 410 ); + this.sourcePictureBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; + this.sourcePictureBox.TabIndex = 0; + this.sourcePictureBox.TabStop = false; + // + // tabPage2 + // + this.tabPage2.Controls.Add( this.houghLinePictureBox ); + this.tabPage2.Location = new System.Drawing.Point( 4, 22 ); + this.tabPage2.Name = "tabPage2"; + this.tabPage2.Padding = new System.Windows.Forms.Padding( 3 ); + this.tabPage2.Size = new System.Drawing.Size( 624, 416 ); + this.tabPage2.TabIndex = 1; + this.tabPage2.Text = "Hough lines"; + this.tabPage2.UseVisualStyleBackColor = true; + // + // houghLinePictureBox + // + this.houghLinePictureBox.Dock = System.Windows.Forms.DockStyle.Fill; + this.houghLinePictureBox.Location = new System.Drawing.Point( 3, 3 ); + this.houghLinePictureBox.Name = "houghLinePictureBox"; + this.houghLinePictureBox.Size = new System.Drawing.Size( 618, 410 ); + this.houghLinePictureBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; + this.houghLinePictureBox.TabIndex = 0; + this.houghLinePictureBox.TabStop = false; + // + // tabPage3 + // + this.tabPage3.Controls.Add( this.houghCirclePictureBox ); + this.tabPage3.Location = new System.Drawing.Point( 4, 22 ); + this.tabPage3.Name = "tabPage3"; + this.tabPage3.Size = new System.Drawing.Size( 624, 416 ); + this.tabPage3.TabIndex = 2; + this.tabPage3.Text = "Hough circles"; + this.tabPage3.UseVisualStyleBackColor = true; + // + // houghCirclePictureBox + // + this.houghCirclePictureBox.Dock = System.Windows.Forms.DockStyle.Fill; + this.houghCirclePictureBox.Location = new System.Drawing.Point( 0, 0 ); + this.houghCirclePictureBox.Name = "houghCirclePictureBox"; + this.houghCirclePictureBox.Size = new System.Drawing.Size( 624, 416 ); + this.houghCirclePictureBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; + this.houghCirclePictureBox.TabIndex = 0; + this.houghCirclePictureBox.TabStop = false; + // + // MainForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF( 6F, 13F ); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size( 632, 466 ); + this.Controls.Add( this.tabControl ); + this.Controls.Add( this.menuStrip1 ); + this.MainMenuStrip = this.menuStrip1; + this.Name = "MainForm"; + this.Text = "Hough transformation"; + this.menuStrip1.ResumeLayout( false ); + this.menuStrip1.PerformLayout( ); + this.tabControl.ResumeLayout( false ); + this.tabPage1.ResumeLayout( false ); + ( (System.ComponentModel.ISupportInitialize) ( this.sourcePictureBox ) ).EndInit( ); + this.tabPage2.ResumeLayout( false ); + ( (System.ComponentModel.ISupportInitialize) ( this.houghLinePictureBox ) ).EndInit( ); + this.tabPage3.ResumeLayout( false ); + ( (System.ComponentModel.ISupportInitialize) ( this.houghCirclePictureBox ) ).EndInit( ); + this.ResumeLayout( false ); + this.PerformLayout( ); + + } + + #endregion + + private System.Windows.Forms.MenuStrip menuStrip1; + private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem openToolStripMenuItem; + private System.Windows.Forms.ToolStripSeparator toolStripMenuItem1; + private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem; + private System.Windows.Forms.OpenFileDialog openFileDialog; + private System.Windows.Forms.TabControl tabControl; + private System.Windows.Forms.TabPage tabPage1; + private System.Windows.Forms.PictureBox sourcePictureBox; + private System.Windows.Forms.TabPage tabPage2; + private System.Windows.Forms.PictureBox houghLinePictureBox; + private System.Windows.Forms.TabPage tabPage3; + private System.Windows.Forms.PictureBox houghCirclePictureBox; + } +} + diff --git a/Samples/Imaging/HoughTransformation/MainForm.cs b/Samples/Imaging/HoughTransformation/MainForm.cs new file mode 100644 index 00000000..64f68909 --- /dev/null +++ b/Samples/Imaging/HoughTransformation/MainForm.cs @@ -0,0 +1,165 @@ +// Hough line and circle transformation demo +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2006-2011 +// contacts@aforgenet.com +// + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Drawing.Imaging; +using System.Text; +using System.Windows.Forms; + +using AForge; +using AForge.Imaging; +using AForge.Imaging.Filters; + +namespace HoughTransform +{ + public partial class MainForm : Form + { + // binarization filtering sequence + private FiltersSequence filter = new FiltersSequence( + Grayscale.CommonAlgorithms.BT709, + new Threshold( 64 ) + ); + + HoughLineTransformation lineTransform = new HoughLineTransformation( ); + HoughCircleTransformation circleTransform = new HoughCircleTransformation( 35 ); + + // Construct MainForm + public MainForm( ) + { + InitializeComponent( ); + + lineTransform.MinLineIntensity = 10; + circleTransform.MinCircleIntensity = 20; + } + + // Exit from application + private void exitToolStripMenuItem_Click( object sender, EventArgs e ) + { + Application.Exit( ); + } + + // Open image file + private void openToolStripMenuItem_Click( object sender, EventArgs e ) + { + try + { + // show file open dialog + if ( openFileDialog.ShowDialog( ) == DialogResult.OK ) + { + // load image + Bitmap tempImage = (Bitmap) Bitmap.FromFile( openFileDialog.FileName ); + Bitmap image = AForge.Imaging.Image.Clone( tempImage, PixelFormat.Format24bppRgb ); + tempImage.Dispose( ); + // format image + AForge.Imaging.Image.FormatImage( ref image ); + // lock the source image + BitmapData sourceData = image.LockBits( + new Rectangle( 0, 0, image.Width, image.Height ), + ImageLockMode.ReadOnly, image.PixelFormat ); + // binarize the image + UnmanagedImage binarySource = filter.Apply( new UnmanagedImage( sourceData ) ); + + // apply Hough line transofrm + lineTransform.ProcessImage( binarySource ); + // get lines using relative intensity + HoughLine[] lines = lineTransform.GetLinesByRelativeIntensity( 0.2 ); + + foreach ( HoughLine line in lines ) + { + string s = string.Format( "Theta = {0}, R = {1}, I = {2} ({3})", line.Theta, line.Radius, line.Intensity, line.RelativeIntensity ); + System.Diagnostics.Debug.WriteLine( s ); + + // uncomment to highlight detected lines + /* + // get line's radius and theta values + int r = line.Radius; + double t = line.Theta; + + // check if line is in lower part of the image + if ( r < 0 ) + { + t += 180; + r = -r; + } + + // convert degrees to radians + t = ( t / 180 ) * Math.PI; + + // get image centers (all coordinate are measured relative + // to center) + int w2 = image.Width /2; + int h2 = image.Height / 2; + + double x0 = 0, x1 = 0, y0 = 0, y1 = 0; + + if ( line.Theta != 0 ) + { + // none vertical line + x0 = -w2; // most left point + x1 = w2; // most right point + + // calculate corresponding y values + y0 = ( -Math.Cos( t ) * x0 + r ) / Math.Sin( t ); + y1 = ( -Math.Cos( t ) * x1 + r ) / Math.Sin( t ); + } + else + { + // vertical line + x0 = line.Radius; + x1 = line.Radius; + + y0 = h2; + y1 = -h2; + } + + // draw line on the image + Drawing.Line( sourceData, + new IntPoint( (int) x0 + w2, h2 - (int) y0 ), + new IntPoint( (int) x1 + w2, h2 - (int) y1 ), + Color.Red ); */ + } + + System.Diagnostics.Debug.WriteLine( "Found lines: " + lineTransform.LinesCount ); + System.Diagnostics.Debug.WriteLine( "Max intensity: " + lineTransform.MaxIntensity ); + + // apply Hough circle transform + circleTransform.ProcessImage( binarySource ); + // get circles using relative intensity + HoughCircle[] circles = circleTransform.GetCirclesByRelativeIntensity( 0.5 ); + + foreach ( HoughCircle circle in circles ) + { + string s = string.Format( "X = {0}, Y = {1}, I = {2} ({3})", circle.X, circle.Y, circle.Intensity, circle.RelativeIntensity ); + System.Diagnostics.Debug.WriteLine( s ); + } + + System.Diagnostics.Debug.WriteLine( "Found circles: " + circleTransform.CirclesCount ); + System.Diagnostics.Debug.WriteLine( "Max intensity: " + circleTransform.MaxIntensity ); + + // unlock source image + image.UnlockBits( sourceData ); + // dispose temporary binary source image + binarySource.Dispose( ); + + // show images + sourcePictureBox.Image = image; + houghLinePictureBox.Image = lineTransform.ToBitmap( ); + houghCirclePictureBox.Image = circleTransform.ToBitmap( ); + } + } + catch + { + MessageBox.Show( "Failed loading the image", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error ); + } + } + } +} diff --git a/Samples/Imaging/HoughTransformation/MainForm.resx b/Samples/Imaging/HoughTransformation/MainForm.resx new file mode 100644 index 00000000..d6c4c066 --- /dev/null +++ b/Samples/Imaging/HoughTransformation/MainForm.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 126, 17 + + \ No newline at end of file diff --git a/Samples/Imaging/HoughTransformation/Program.cs b/Samples/Imaging/HoughTransformation/Program.cs new file mode 100644 index 00000000..4bfdce5f --- /dev/null +++ b/Samples/Imaging/HoughTransformation/Program.cs @@ -0,0 +1,27 @@ +// AForge Framework +// Hough line transformation demo +// +// Copyright © Andrew Kirillov, 2007 +// andrew.kirillov@gmail.com +// + +using System; +using System.Collections.Generic; +using System.Windows.Forms; + +namespace HoughTransform +{ + static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main( ) + { + Application.EnableVisualStyles( ); + Application.SetCompatibleTextRenderingDefault( false ); + Application.Run( new MainForm( ) ); + } + } +} \ No newline at end of file diff --git a/Samples/Imaging/HoughTransformation/Properties/AssemblyInfo.cs b/Samples/Imaging/HoughTransformation/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..26433b57 --- /dev/null +++ b/Samples/Imaging/HoughTransformation/Properties/AssemblyInfo.cs @@ -0,0 +1,33 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle( "Imaging Hough Transform" )] +[assembly: AssemblyDescription( "Imaging Hough Transform sample" )] +[assembly: AssemblyConfiguration( "" )] +[assembly: AssemblyCompany( "AForge" )] +[assembly: AssemblyProduct( "AForge.NET" )] +[assembly: AssemblyCopyright( "AForge © 2007" )] +[assembly: AssemblyTrademark( "" )] +[assembly: AssemblyCulture( "" )] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible( false )] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid( "ea39829a-94e6-4fc9-a728-b501df075bf9" )] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +[assembly: AssemblyVersion( "2.0.1.0" )] +[assembly: AssemblyFileVersion( "2.0.1.0" )] diff --git a/Samples/Imaging/HoughTransformation/Properties/Resources.Designer.cs b/Samples/Imaging/HoughTransformation/Properties/Resources.Designer.cs new file mode 100644 index 00000000..58ecf40d --- /dev/null +++ b/Samples/Imaging/HoughTransformation/Properties/Resources.Designer.cs @@ -0,0 +1,63 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.1433 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace HoughTransform.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("HoughTransform.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + } +} diff --git a/Samples/Imaging/HoughTransformation/Properties/Resources.resx b/Samples/Imaging/HoughTransformation/Properties/Resources.resx new file mode 100644 index 00000000..25a61211 --- /dev/null +++ b/Samples/Imaging/HoughTransformation/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Samples/Imaging/HoughTransformation/Properties/Settings.Designer.cs b/Samples/Imaging/HoughTransformation/Properties/Settings.Designer.cs new file mode 100644 index 00000000..333d44c9 --- /dev/null +++ b/Samples/Imaging/HoughTransformation/Properties/Settings.Designer.cs @@ -0,0 +1,26 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.1433 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace HoughTransform.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "9.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + } +} diff --git a/Samples/Imaging/HoughTransformation/Properties/Settings.settings b/Samples/Imaging/HoughTransformation/Properties/Settings.settings new file mode 100644 index 00000000..39645652 --- /dev/null +++ b/Samples/Imaging/HoughTransformation/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Samples/Imaging/HoughTransformation/Sample Images/sample.bmp b/Samples/Imaging/HoughTransformation/Sample Images/sample.bmp new file mode 100644 index 00000000..bf8b4907 Binary files /dev/null and b/Samples/Imaging/HoughTransformation/Sample Images/sample.bmp differ diff --git a/Samples/Imaging/IPPrototyper Sample/CoinsFinder.cs b/Samples/Imaging/IPPrototyper Sample/CoinsFinder.cs new file mode 100644 index 00000000..96f99b8e --- /dev/null +++ b/Samples/Imaging/IPPrototyper Sample/CoinsFinder.cs @@ -0,0 +1,94 @@ +// Sample of IPPrototyper usage +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2011 +// contacts@aforgenet.com +// + +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Drawing.Imaging; + +using AForge; +using AForge.Math.Geometry; +using AForge.Imaging; +using AForge.Imaging.Filters; +using AForge.Imaging.IPPrototyper; + +namespace IPPrototyperSample +{ + public class CoinsFinder : IImageProcessingRoutine + { + // Image processing routine's name + public string Name + { + get { return "IPPrototyper Sample"; } + } + + // Process specified image trying to recognize counter's image + public void Process( Bitmap image, IImageProcessingLog log ) + { + log.AddMessage( "Image size: " + image.Width + " x " + image.Height ); + + // 1- grayscale image + Bitmap grayImage = Grayscale.CommonAlgorithms.BT709.Apply( image ); + log.AddImage( "Grayscale", grayImage ); + + // 2 - Otsu thresholding + OtsuThreshold threshold = new OtsuThreshold( ); + Bitmap binaryImage = threshold.Apply( grayImage ); + log.AddImage( "Binary", binaryImage ); + log.AddMessage( "Otsu threshold: " + threshold.ThresholdValue ); + + // 3 - Blob counting + BlobCounter blobCounter = new BlobCounter( ); + blobCounter.FilterBlobs = true; + blobCounter.MinWidth = 24; + blobCounter.MinWidth = 24; + + blobCounter.ProcessImage( binaryImage ); + Blob[] blobs = blobCounter.GetObjectsInformation( ); + + log.AddMessage( "Found blobs (min width/height = 24): " + blobs.Length ); + + // 4 - check shape of each blob + SimpleShapeChecker shapeChecker = new SimpleShapeChecker( ); + + log.AddMessage( "Found coins: " ); + int count = 0; + + // create graphics object for drawing on image + Graphics g = Graphics.FromImage( image ); + Pen pen = new Pen( Color.Red, 3 ); + + foreach ( Blob blob in blobs ) + { + List edgePoint = blobCounter.GetBlobsEdgePoints( blob ); + + // check if shape looks like a circle + AForge.Point center; + float radius; + + if ( shapeChecker.IsCircle( edgePoint, out center, out radius ) ) + { + count++; + + log.AddMessage( string.Format( " {0}: center = ({1}, {2}), radius = {3}", + count, center.X, center.Y, radius ) ); + + // highlight coin + g.DrawEllipse( pen, (int) ( center.X - radius ), (int) ( center.Y - radius ), + (int) ( radius * 2 ), (int) ( radius * 2 ) ); + } + } + + g.Dispose( ); + pen.Dispose( ); + + log.AddMessage( "Total coins: " + count); + log.AddImage( "Coins", image ); + } + } +} diff --git a/Samples/Imaging/IPPrototyper Sample/IPPrototyper Sample.csproj b/Samples/Imaging/IPPrototyper Sample/IPPrototyper Sample.csproj new file mode 100644 index 00000000..0c60e363 --- /dev/null +++ b/Samples/Imaging/IPPrototyper Sample/IPPrototyper Sample.csproj @@ -0,0 +1,114 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {512869E9-7550-421E-B1A3-67B4A643E24A} + Library + Properties + IPPrototyperSample + IPPrototyper Sample + v2.0 + 512 + + + 3.5 + + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + False + ..\..\..\Release\AForge.dll + + + False + ..\..\..\Release\AForge.Imaging.dll + + + False + ..\..\..\Release\AForge.Imaging.IPPrototyper.dll + + + False + ..\..\..\Release\AForge.Math.dll + + + + + + + + + + + + IPPrototyper.exe + PreserveNewest + + + + + False + Microsoft .NET Framework 4 %28x86 and x64%29 + true + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 3.1 + true + + + + + \ No newline at end of file diff --git a/Samples/Imaging/IPPrototyper Sample/IPPrototyper Sample.csproj.user b/Samples/Imaging/IPPrototyper Sample/IPPrototyper Sample.csproj.user new file mode 100644 index 00000000..ac6eca7a --- /dev/null +++ b/Samples/Imaging/IPPrototyper Sample/IPPrototyper Sample.csproj.user @@ -0,0 +1,22 @@ + + + + ProjectFiles + + + + + + + en-US + false + + + Program + bin\Debug\IPPrototyper.exe + + + Program + bin\Release\IPPrototyper.exe + + \ No newline at end of file diff --git a/Samples/Imaging/IPPrototyper Sample/IPPrototyper Sample.sln b/Samples/Imaging/IPPrototyper Sample/IPPrototyper Sample.sln new file mode 100644 index 00000000..aa29cb0b --- /dev/null +++ b/Samples/Imaging/IPPrototyper Sample/IPPrototyper Sample.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual C# Express 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IPPrototyper Sample", "IPPrototyper Sample.csproj", "{512869E9-7550-421E-B1A3-67B4A643E24A}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {512869E9-7550-421E-B1A3-67B4A643E24A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {512869E9-7550-421E-B1A3-67B4A643E24A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {512869E9-7550-421E-B1A3-67B4A643E24A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {512869E9-7550-421E-B1A3-67B4A643E24A}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Samples/Imaging/IPPrototyper Sample/Images/coins-01.jpg b/Samples/Imaging/IPPrototyper Sample/Images/coins-01.jpg new file mode 100644 index 00000000..fda16685 Binary files /dev/null and b/Samples/Imaging/IPPrototyper Sample/Images/coins-01.jpg differ diff --git a/Samples/Imaging/IPPrototyper Sample/Images/coins-02.jpg b/Samples/Imaging/IPPrototyper Sample/Images/coins-02.jpg new file mode 100644 index 00000000..018ee9ca Binary files /dev/null and b/Samples/Imaging/IPPrototyper Sample/Images/coins-02.jpg differ diff --git a/Samples/Imaging/IPPrototyper Sample/Images/coins-03.jpg b/Samples/Imaging/IPPrototyper Sample/Images/coins-03.jpg new file mode 100644 index 00000000..511a98c5 Binary files /dev/null and b/Samples/Imaging/IPPrototyper Sample/Images/coins-03.jpg differ diff --git a/Samples/Imaging/IPPrototyper Sample/Images/coins-04.jpg b/Samples/Imaging/IPPrototyper Sample/Images/coins-04.jpg new file mode 100644 index 00000000..b1910818 Binary files /dev/null and b/Samples/Imaging/IPPrototyper Sample/Images/coins-04.jpg differ diff --git a/Samples/Imaging/IPPrototyper Sample/Images/coins-05.jpg b/Samples/Imaging/IPPrototyper Sample/Images/coins-05.jpg new file mode 100644 index 00000000..63f88a2c Binary files /dev/null and b/Samples/Imaging/IPPrototyper Sample/Images/coins-05.jpg differ diff --git a/Samples/Imaging/IPPrototyper Sample/Images/coins-06.jpg b/Samples/Imaging/IPPrototyper Sample/Images/coins-06.jpg new file mode 100644 index 00000000..fa1b3cd5 Binary files /dev/null and b/Samples/Imaging/IPPrototyper Sample/Images/coins-06.jpg differ diff --git a/Samples/Imaging/IPPrototyper Sample/Images/coins-07.jpg b/Samples/Imaging/IPPrototyper Sample/Images/coins-07.jpg new file mode 100644 index 00000000..dbc1ec35 Binary files /dev/null and b/Samples/Imaging/IPPrototyper Sample/Images/coins-07.jpg differ diff --git a/Samples/Imaging/IPPrototyper Sample/Properties/AssemblyInfo.cs b/Samples/Imaging/IPPrototyper Sample/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..92c09ea6 --- /dev/null +++ b/Samples/Imaging/IPPrototyper Sample/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle( "IPPrototyper Sample" )] +[assembly: AssemblyDescription( "Sample of using IPPrototyper tool" )] +[assembly: AssemblyConfiguration( "" )] +[assembly: AssemblyCompany( "AForge" )] +[assembly: AssemblyProduct( "AForge.NET" )] +[assembly: AssemblyCopyright( "AForge © 2010" )] +[assembly: AssemblyTrademark( "" )] +[assembly: AssemblyCulture( "" )] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible( false )] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid( "e5ec1885-d561-427a-9003-f1c07e96776d" )] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion( "1.0.0.0" )] +[assembly: AssemblyFileVersion( "1.0.0.0" )] diff --git a/Samples/Imaging/IPPrototyper Sample/Read Me.txt b/Samples/Imaging/IPPrototyper Sample/Read Me.txt new file mode 100644 index 00000000..db4a1085 --- /dev/null +++ b/Samples/Imaging/IPPrototyper Sample/Read Me.txt @@ -0,0 +1,6 @@ +1) Open solution file in VS.NET (C# Express Edition 2008 is fine). + +2) Run solution hitting F5. + +3) When application started, use "File->Open folder" menu option and + navigate to "Images" folder provided with the solution. \ No newline at end of file diff --git a/Samples/Imaging/ImageViewer/ImageViewer.csproj b/Samples/Imaging/ImageViewer/ImageViewer.csproj new file mode 100644 index 00000000..38f58408 --- /dev/null +++ b/Samples/Imaging/ImageViewer/ImageViewer.csproj @@ -0,0 +1,133 @@ + + + + Debug + AnyCPU + 9.0.21022 + 2.0 + {EE5B96F4-EEB3-4606-98C9-6F1242B41FD2} + WinExe + Properties + ImageViewer + ImageViewer + v2.0 + 512 + + + 3.5 + + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + False + ..\..\..\Release\AForge.dll + + + False + ..\..\..\Release\AForge.Controls.dll + + + False + ..\..\..\Release\AForge.Imaging.Formats.dll + + + + + + + + Form + + + MainForm.cs + + + + + MainForm.cs + Designer + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + True + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + False + Microsoft .NET Framework 4 %28x86 and x64%29 + true + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 3.1 + true + + + + + \ No newline at end of file diff --git a/Samples/Imaging/ImageViewer/ImageViewer.sln b/Samples/Imaging/ImageViewer/ImageViewer.sln new file mode 100644 index 00000000..25ac821f --- /dev/null +++ b/Samples/Imaging/ImageViewer/ImageViewer.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual C# Express 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ImageViewer", "ImageViewer.csproj", "{EE5B96F4-EEB3-4606-98C9-6F1242B41FD2}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {EE5B96F4-EEB3-4606-98C9-6F1242B41FD2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EE5B96F4-EEB3-4606-98C9-6F1242B41FD2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EE5B96F4-EEB3-4606-98C9-6F1242B41FD2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EE5B96F4-EEB3-4606-98C9-6F1242B41FD2}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Samples/Imaging/ImageViewer/MainForm.Designer.cs b/Samples/Imaging/ImageViewer/MainForm.Designer.cs new file mode 100644 index 00000000..d35a9422 --- /dev/null +++ b/Samples/Imaging/ImageViewer/MainForm.Designer.cs @@ -0,0 +1,181 @@ +namespace ImageViewer +{ + partial class MainForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose( bool disposing ) + { + if ( disposing && ( components != null ) ) + { + components.Dispose( ); + } + base.Dispose( disposing ); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent( ) + { + this.openFileDialog = new System.Windows.Forms.OpenFileDialog( ); + this.mainMenuStrip = new System.Windows.Forms.MenuStrip( ); + this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem( ); + this.openToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem( ); + this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripSeparator( ); + this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem( ); + this.statusStrip = new System.Windows.Forms.StatusStrip( ); + this.splitContainer1 = new System.Windows.Forms.SplitContainer( ); + this.pictureBox = new AForge.Controls.PictureBox( ); + this.propertyGrid = new System.Windows.Forms.PropertyGrid( ); + this.mainMenuStrip.SuspendLayout( ); + this.splitContainer1.Panel1.SuspendLayout( ); + this.splitContainer1.Panel2.SuspendLayout( ); + this.splitContainer1.SuspendLayout( ); + ( (System.ComponentModel.ISupportInitialize) ( this.pictureBox ) ).BeginInit( ); + this.SuspendLayout( ); + // + // openFileDialog + // + this.openFileDialog.Filter = "All files (*.*)|*.*|Flexible Image Transport System images (*.fit, *.fits)|*.fit;" + + "*.fits|PNM (Portable Any Map) images (*.pbm, *.pgm, *.ppm, *.pnm)|*.pbm;*.pgm;*." + + "ppm;*.pnm"; + this.openFileDialog.Title = "Select image file"; + // + // mainMenuStrip + // + this.mainMenuStrip.Items.AddRange( new System.Windows.Forms.ToolStripItem[] { + this.fileToolStripMenuItem} ); + this.mainMenuStrip.Location = new System.Drawing.Point( 0, 0 ); + this.mainMenuStrip.Name = "mainMenuStrip"; + this.mainMenuStrip.Size = new System.Drawing.Size( 528, 24 ); + this.mainMenuStrip.TabIndex = 0; + // + // fileToolStripMenuItem + // + this.fileToolStripMenuItem.DropDownItems.AddRange( new System.Windows.Forms.ToolStripItem[] { + this.openToolStripMenuItem, + this.toolStripMenuItem1, + this.exitToolStripMenuItem} ); + this.fileToolStripMenuItem.Name = "fileToolStripMenuItem"; + this.fileToolStripMenuItem.Size = new System.Drawing.Size( 35, 20 ); + this.fileToolStripMenuItem.Text = "&File"; + // + // openToolStripMenuItem + // + this.openToolStripMenuItem.Name = "openToolStripMenuItem"; + this.openToolStripMenuItem.ShortcutKeys = ( (System.Windows.Forms.Keys) ( ( System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.O ) ) ); + this.openToolStripMenuItem.Size = new System.Drawing.Size( 151, 22 ); + this.openToolStripMenuItem.Text = "&Open"; + this.openToolStripMenuItem.Click += new System.EventHandler( this.openToolStripMenuItem_Click ); + // + // toolStripMenuItem1 + // + this.toolStripMenuItem1.Name = "toolStripMenuItem1"; + this.toolStripMenuItem1.Size = new System.Drawing.Size( 148, 6 ); + // + // exitToolStripMenuItem + // + this.exitToolStripMenuItem.Name = "exitToolStripMenuItem"; + this.exitToolStripMenuItem.Size = new System.Drawing.Size( 151, 22 ); + this.exitToolStripMenuItem.Text = "E&xit"; + this.exitToolStripMenuItem.Click += new System.EventHandler( this.exitToolStripMenuItem_Click ); + // + // statusStrip + // + this.statusStrip.Location = new System.Drawing.Point( 0, 284 ); + this.statusStrip.Name = "statusStrip"; + this.statusStrip.Size = new System.Drawing.Size( 528, 22 ); + this.statusStrip.TabIndex = 1; + this.statusStrip.Text = "statusStrip1"; + // + // splitContainer1 + // + this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill; + this.splitContainer1.Location = new System.Drawing.Point( 0, 24 ); + this.splitContainer1.Name = "splitContainer1"; + // + // splitContainer1.Panel1 + // + this.splitContainer1.Panel1.Controls.Add( this.pictureBox ); + // + // splitContainer1.Panel2 + // + this.splitContainer1.Panel2.Controls.Add( this.propertyGrid ); + this.splitContainer1.Size = new System.Drawing.Size( 528, 260 ); + this.splitContainer1.SplitterDistance = 359; + this.splitContainer1.TabIndex = 2; + // + // pictureBox + // + this.pictureBox.Anchor = ( (System.Windows.Forms.AnchorStyles) ( ( ( ( System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom ) + | System.Windows.Forms.AnchorStyles.Left ) + | System.Windows.Forms.AnchorStyles.Right ) ) ); + this.pictureBox.BackColor = System.Drawing.SystemColors.ControlDark; + this.pictureBox.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.pictureBox.Image = null; + this.pictureBox.Location = new System.Drawing.Point( 10, 10 ); + this.pictureBox.Name = "pictureBox"; + this.pictureBox.Size = new System.Drawing.Size( 338, 240 ); + this.pictureBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; + this.pictureBox.TabIndex = 0; + this.pictureBox.TabStop = false; + // + // propertyGrid + // + this.propertyGrid.Dock = System.Windows.Forms.DockStyle.Fill; + this.propertyGrid.Enabled = false; + this.propertyGrid.HelpVisible = false; + this.propertyGrid.Location = new System.Drawing.Point( 0, 0 ); + this.propertyGrid.Name = "propertyGrid"; + this.propertyGrid.Size = new System.Drawing.Size( 165, 260 ); + this.propertyGrid.TabIndex = 0; + this.propertyGrid.ToolbarVisible = false; + // + // MainForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF( 6F, 13F ); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size( 528, 306 ); + this.Controls.Add( this.splitContainer1 ); + this.Controls.Add( this.statusStrip ); + this.Controls.Add( this.mainMenuStrip ); + this.MainMenuStrip = this.mainMenuStrip; + this.Name = "MainForm"; + this.Text = "Image Viewer"; + this.mainMenuStrip.ResumeLayout( false ); + this.mainMenuStrip.PerformLayout( ); + this.splitContainer1.Panel1.ResumeLayout( false ); + this.splitContainer1.Panel2.ResumeLayout( false ); + this.splitContainer1.ResumeLayout( false ); + ( (System.ComponentModel.ISupportInitialize) ( this.pictureBox ) ).EndInit( ); + this.ResumeLayout( false ); + this.PerformLayout( ); + + } + + #endregion + + private System.Windows.Forms.OpenFileDialog openFileDialog; + private System.Windows.Forms.MenuStrip mainMenuStrip; + private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem openToolStripMenuItem; + private System.Windows.Forms.ToolStripSeparator toolStripMenuItem1; + private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem; + private System.Windows.Forms.StatusStrip statusStrip; + private System.Windows.Forms.SplitContainer splitContainer1; + private System.Windows.Forms.PropertyGrid propertyGrid; + private AForge.Controls.PictureBox pictureBox; + } +} + diff --git a/Samples/Imaging/ImageViewer/MainForm.cs b/Samples/Imaging/ImageViewer/MainForm.cs new file mode 100644 index 00000000..6d41d486 --- /dev/null +++ b/Samples/Imaging/ImageViewer/MainForm.cs @@ -0,0 +1,68 @@ +// Image Viewer sample application +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2006-2011 +// contacts@aforgenet.com +// + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.Text; +using System.Windows.Forms; +using System.IO; + +using AForge.Imaging.Formats; + +namespace ImageViewer +{ + // Main form's class + public partial class MainForm : Form + { + // Class constructor + public MainForm( ) + { + InitializeComponent( ); + } + + // Exit from application + private void exitToolStripMenuItem_Click( object sender, EventArgs e ) + { + Application.Exit( ); + } + + // Open image file + private void openToolStripMenuItem_Click( object sender, EventArgs e ) + { + if ( openFileDialog.ShowDialog( ) == DialogResult.OK ) + { + try + { + ImageInfo imageInfo = null; + + pictureBox.Image = ImageDecoder.DecodeFromFile( openFileDialog.FileName, out imageInfo ); + + propertyGrid.SelectedObject = imageInfo; + propertyGrid.ExpandAllGridItems( ); + } + catch ( NotSupportedException ex ) + { + MessageBox.Show( "Image format is not supported: " + ex.Message, "Error", + MessageBoxButtons.OK, MessageBoxIcon.Error ); + } + catch ( ArgumentException ex ) + { + MessageBox.Show( "Invalid image: " + ex.Message, "Error", + MessageBoxButtons.OK, MessageBoxIcon.Error ); + } + catch + { + MessageBox.Show( "Failed loading the image", "Error", + MessageBoxButtons.OK, MessageBoxIcon.Error ); + } + } + } + } +} diff --git a/Samples/Imaging/ImageViewer/MainForm.resx b/Samples/Imaging/ImageViewer/MainForm.resx new file mode 100644 index 00000000..7e75d7e5 --- /dev/null +++ b/Samples/Imaging/ImageViewer/MainForm.resx @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 141, 17 + + + 276, 17 + + \ No newline at end of file diff --git a/Samples/Imaging/ImageViewer/Program.cs b/Samples/Imaging/ImageViewer/Program.cs new file mode 100644 index 00000000..4c765092 --- /dev/null +++ b/Samples/Imaging/ImageViewer/Program.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Windows.Forms; + +namespace ImageViewer +{ + static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main( ) + { + Application.EnableVisualStyles( ); + Application.SetCompatibleTextRenderingDefault( false ); + Application.Run( new MainForm( ) ); + } + } +} diff --git a/Samples/Imaging/ImageViewer/Properties/AssemblyInfo.cs b/Samples/Imaging/ImageViewer/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..ce2087a9 --- /dev/null +++ b/Samples/Imaging/ImageViewer/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle( "Image Viewer" )] +[assembly: AssemblyDescription( "Image Viewer sample" )] +[assembly: AssemblyConfiguration( "" )] +[assembly: AssemblyCompany( "AForge" )] +[assembly: AssemblyProduct( "AForge.NET" )] +[assembly: AssemblyCopyright( "AForge © 2008" )] +[assembly: AssemblyTrademark( "" )] +[assembly: AssemblyCulture( "" )] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible( false )] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid( "c7230f0a-0be1-4281-92b1-41cafd41399c" )] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion( "2.0.0.0" )] +[assembly: AssemblyFileVersion( "2.0.0.0" )] diff --git a/Samples/Imaging/ImageViewer/Properties/Resources.Designer.cs b/Samples/Imaging/ImageViewer/Properties/Resources.Designer.cs new file mode 100644 index 00000000..68b40a7a --- /dev/null +++ b/Samples/Imaging/ImageViewer/Properties/Resources.Designer.cs @@ -0,0 +1,71 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.1433 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace ImageViewer.Properties +{ + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute( "System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0" )] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute( )] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute( )] + internal class Resources + { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute( "Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode" )] + internal Resources( ) + { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute( global::System.ComponentModel.EditorBrowsableState.Advanced )] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if ( ( resourceMan == null ) ) + { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager( "ImageViewer.Properties.Resources", typeof( Resources ).Assembly ); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute( global::System.ComponentModel.EditorBrowsableState.Advanced )] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/Samples/Imaging/ImageViewer/Properties/Resources.resx b/Samples/Imaging/ImageViewer/Properties/Resources.resx new file mode 100644 index 00000000..af7dbebb --- /dev/null +++ b/Samples/Imaging/ImageViewer/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Samples/Imaging/ImageViewer/Properties/Settings.Designer.cs b/Samples/Imaging/ImageViewer/Properties/Settings.Designer.cs new file mode 100644 index 00000000..82e9dc6d --- /dev/null +++ b/Samples/Imaging/ImageViewer/Properties/Settings.Designer.cs @@ -0,0 +1,30 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.1433 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace ImageViewer.Properties +{ + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute( )] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute( "Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "9.0.0.0" )] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase + { + + private static Settings defaultInstance = ( (Settings) ( global::System.Configuration.ApplicationSettingsBase.Synchronized( new Settings( ) ) ) ); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/Samples/Imaging/ImageViewer/Properties/Settings.settings b/Samples/Imaging/ImageViewer/Properties/Settings.settings new file mode 100644 index 00000000..39645652 --- /dev/null +++ b/Samples/Imaging/ImageViewer/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Samples/Imaging/ShapeChecker/AboutForm.Designer.cs b/Samples/Imaging/ShapeChecker/AboutForm.Designer.cs new file mode 100644 index 00000000..c54e1869 --- /dev/null +++ b/Samples/Imaging/ShapeChecker/AboutForm.Designer.cs @@ -0,0 +1,130 @@ +namespace ShapeChecker +{ + partial class AboutForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose( bool disposing ) + { + if ( disposing && ( components != null ) ) + { + components.Dispose( ); + } + base.Dispose( disposing ); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent( ) + { + this.panel1 = new System.Windows.Forms.Panel( ); + this.emailLabel = new System.Windows.Forms.LinkLabel( ); + this.label3 = new System.Windows.Forms.Label( ); + this.aforgeLabel = new System.Windows.Forms.LinkLabel( ); + this.label2 = new System.Windows.Forms.Label( ); + this.label1 = new System.Windows.Forms.Label( ); + this.panel1.SuspendLayout( ); + this.SuspendLayout( ); + // + // panel1 + // + this.panel1.Controls.Add( this.emailLabel ); + this.panel1.Controls.Add( this.label3 ); + this.panel1.Controls.Add( this.aforgeLabel ); + this.panel1.Controls.Add( this.label2 ); + this.panel1.Controls.Add( this.label1 ); + this.panel1.Location = new System.Drawing.Point( 13, 12 ); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size( 303, 139 ); + this.panel1.TabIndex = 4; + // + // emailLabel + // + this.emailLabel.AutoSize = true; + this.emailLabel.Location = new System.Drawing.Point( 75, 108 ); + this.emailLabel.Name = "emailLabel"; + this.emailLabel.Size = new System.Drawing.Size( 153, 13 ); + this.emailLabel.TabIndex = 5; + this.emailLabel.TabStop = true; + this.emailLabel.Text = "andrew.kirillov@aforgenet.com"; + this.emailLabel.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler( this.LinkClicked ); + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point( 69, 93 ); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size( 165, 13 ); + this.label3.TabIndex = 4; + this.label3.Text = "Copyright © 2010, Andrew Kirillov"; + // + // aforgeLabel + // + this.aforgeLabel.AutoSize = true; + this.aforgeLabel.Location = new System.Drawing.Point( 55, 58 ); + this.aforgeLabel.Name = "aforgeLabel"; + this.aforgeLabel.Size = new System.Drawing.Size( 192, 13 ); + this.aforgeLabel.TabIndex = 3; + this.aforgeLabel.TabStop = true; + this.aforgeLabel.Text = "http://www.aforgenet.com/framework/"; + this.aforgeLabel.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler( this.LinkClicked ); + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point( 39, 43 ); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size( 225, 13 ); + this.label2.TabIndex = 2; + this.label2.Text = "Sample application of AForge.NET framework:"; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point( 80, 18 ); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size( 142, 13 ); + this.label1.TabIndex = 1; + this.label1.Text = "Simple Shape Checker 1.0.0"; + // + // AboutForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF( 6F, 13F ); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size( 329, 162 ); + this.Controls.Add( this.panel1 ); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "AboutForm"; + this.ShowIcon = false; + this.ShowInTaskbar = false; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "About"; + this.panel1.ResumeLayout( false ); + this.panel1.PerformLayout( ); + this.ResumeLayout( false ); + + } + + #endregion + + private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.LinkLabel emailLabel; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.LinkLabel aforgeLabel; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label label1; + } +} \ No newline at end of file diff --git a/Samples/Imaging/ShapeChecker/AboutForm.cs b/Samples/Imaging/ShapeChecker/AboutForm.cs new file mode 100644 index 00000000..ce6310e1 --- /dev/null +++ b/Samples/Imaging/ShapeChecker/AboutForm.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; + +namespace ShapeChecker +{ + public partial class AboutForm : Form + { + public AboutForm( ) + { + InitializeComponent( ); + + // initialize links + emailLabel.Links.Add( 0, emailLabel.Text.Length, "mailto:andrew.kirillov@aforgenet.com" ); + aforgeLabel.Links.Add( 0, aforgeLabel.Text.Length, "http://www.aforgenet.com/framework/" ); + } + + private void LinkClicked( object sender, LinkLabelLinkClickedEventArgs e ) + { + System.Diagnostics.Process.Start( e.Link.LinkData.ToString( ) ); + } + } +} diff --git a/Samples/Imaging/ShapeChecker/AboutForm.resx b/Samples/Imaging/ShapeChecker/AboutForm.resx new file mode 100644 index 00000000..19dc0dd8 --- /dev/null +++ b/Samples/Imaging/ShapeChecker/AboutForm.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Samples/Imaging/ShapeChecker/MainForm.Designer.cs b/Samples/Imaging/ShapeChecker/MainForm.Designer.cs new file mode 100644 index 00000000..d336c172 --- /dev/null +++ b/Samples/Imaging/ShapeChecker/MainForm.Designer.cs @@ -0,0 +1,369 @@ +namespace ShapeChecker +{ + partial class MainForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose( bool disposing ) + { + if ( disposing && ( components != null ) ) + { + components.Dispose( ); + } + base.Dispose( disposing ); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent( ) + { + this.components = new System.ComponentModel.Container( ); + this.pictureBox = new System.Windows.Forms.PictureBox( ); + this.menuStrip = new System.Windows.Forms.MenuStrip( ); + this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem( ); + this.openToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem( ); + this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripSeparator( ); + this.loadDemoImage1ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem( ); + this.loadDemoImage2ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem( ); + this.loadDemoImage3ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem( ); + this.loadDemoImage4ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem( ); + this.toolStripMenuItem2 = new System.Windows.Forms.ToolStripSeparator( ); + this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem( ); + this.helpToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem( ); + this.aboutToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem( ); + this.groupBox1 = new System.Windows.Forms.GroupBox( ); + this.label9 = new System.Windows.Forms.Label( ); + this.label10 = new System.Windows.Forms.Label( ); + this.label7 = new System.Windows.Forms.Label( ); + this.label8 = new System.Windows.Forms.Label( ); + this.label5 = new System.Windows.Forms.Label( ); + this.label6 = new System.Windows.Forms.Label( ); + this.label3 = new System.Windows.Forms.Label( ); + this.label4 = new System.Windows.Forms.Label( ); + this.label2 = new System.Windows.Forms.Label( ); + this.label1 = new System.Windows.Forms.Label( ); + this.openFileDialog = new System.Windows.Forms.OpenFileDialog( ); + this.splitContainer = new System.Windows.Forms.SplitContainer( ); + this.toolTip = new System.Windows.Forms.ToolTip( this.components ); + ( (System.ComponentModel.ISupportInitialize) ( this.pictureBox ) ).BeginInit( ); + this.menuStrip.SuspendLayout( ); + this.groupBox1.SuspendLayout( ); + this.splitContainer.Panel1.SuspendLayout( ); + this.splitContainer.Panel2.SuspendLayout( ); + this.splitContainer.SuspendLayout( ); + this.SuspendLayout( ); + // + // pictureBox + // + this.pictureBox.BackColor = System.Drawing.SystemColors.ControlDark; + this.pictureBox.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.pictureBox.Location = new System.Drawing.Point( 102, 32 ); + this.pictureBox.Name = "pictureBox"; + this.pictureBox.Size = new System.Drawing.Size( 320, 240 ); + this.pictureBox.TabIndex = 0; + this.pictureBox.TabStop = false; + // + // menuStrip + // + this.menuStrip.Items.AddRange( new System.Windows.Forms.ToolStripItem[] { + this.fileToolStripMenuItem, + this.helpToolStripMenuItem} ); + this.menuStrip.Location = new System.Drawing.Point( 0, 0 ); + this.menuStrip.Name = "menuStrip"; + this.menuStrip.Size = new System.Drawing.Size( 524, 24 ); + this.menuStrip.TabIndex = 0; + // + // fileToolStripMenuItem + // + this.fileToolStripMenuItem.DropDownItems.AddRange( new System.Windows.Forms.ToolStripItem[] { + this.openToolStripMenuItem, + this.toolStripMenuItem1, + this.loadDemoImage1ToolStripMenuItem, + this.loadDemoImage2ToolStripMenuItem, + this.loadDemoImage3ToolStripMenuItem, + this.loadDemoImage4ToolStripMenuItem, + this.toolStripMenuItem2, + this.exitToolStripMenuItem} ); + this.fileToolStripMenuItem.Name = "fileToolStripMenuItem"; + this.fileToolStripMenuItem.Size = new System.Drawing.Size( 37, 20 ); + this.fileToolStripMenuItem.Text = "&File"; + // + // openToolStripMenuItem + // + this.openToolStripMenuItem.Name = "openToolStripMenuItem"; + this.openToolStripMenuItem.ShortcutKeys = ( (System.Windows.Forms.Keys) ( ( System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.O ) ) ); + this.openToolStripMenuItem.Size = new System.Drawing.Size( 179, 22 ); + this.openToolStripMenuItem.Text = "&Open"; + this.openToolStripMenuItem.Click += new System.EventHandler( this.openToolStripMenuItem_Click ); + // + // toolStripMenuItem1 + // + this.toolStripMenuItem1.Name = "toolStripMenuItem1"; + this.toolStripMenuItem1.Size = new System.Drawing.Size( 176, 6 ); + // + // loadDemoImage1ToolStripMenuItem + // + this.loadDemoImage1ToolStripMenuItem.Name = "loadDemoImage1ToolStripMenuItem"; + this.loadDemoImage1ToolStripMenuItem.Size = new System.Drawing.Size( 179, 22 ); + this.loadDemoImage1ToolStripMenuItem.Text = "Load demo image &1"; + this.loadDemoImage1ToolStripMenuItem.Click += new System.EventHandler( this.loadDemoImage1ToolStripMenuItem_Click ); + // + // loadDemoImage2ToolStripMenuItem + // + this.loadDemoImage2ToolStripMenuItem.Name = "loadDemoImage2ToolStripMenuItem"; + this.loadDemoImage2ToolStripMenuItem.Size = new System.Drawing.Size( 179, 22 ); + this.loadDemoImage2ToolStripMenuItem.Text = "Load demo image &2"; + this.loadDemoImage2ToolStripMenuItem.Click += new System.EventHandler( this.loadDemoImage2ToolStripMenuItem_Click ); + // + // loadDemoImage3ToolStripMenuItem + // + this.loadDemoImage3ToolStripMenuItem.Name = "loadDemoImage3ToolStripMenuItem"; + this.loadDemoImage3ToolStripMenuItem.Size = new System.Drawing.Size( 179, 22 ); + this.loadDemoImage3ToolStripMenuItem.Text = "Load demo image &3"; + this.loadDemoImage3ToolStripMenuItem.Click += new System.EventHandler( this.loadDemoImage3ToolStripMenuItem_Click ); + // + // loadDemoImage4ToolStripMenuItem + // + this.loadDemoImage4ToolStripMenuItem.Name = "loadDemoImage4ToolStripMenuItem"; + this.loadDemoImage4ToolStripMenuItem.Size = new System.Drawing.Size( 179, 22 ); + this.loadDemoImage4ToolStripMenuItem.Text = "Load demo image &4"; + this.loadDemoImage4ToolStripMenuItem.Click += new System.EventHandler( this.loadDemoImage4ToolStripMenuItem_Click ); + // + // toolStripMenuItem2 + // + this.toolStripMenuItem2.Name = "toolStripMenuItem2"; + this.toolStripMenuItem2.Size = new System.Drawing.Size( 176, 6 ); + // + // exitToolStripMenuItem + // + this.exitToolStripMenuItem.Name = "exitToolStripMenuItem"; + this.exitToolStripMenuItem.Size = new System.Drawing.Size( 179, 22 ); + this.exitToolStripMenuItem.Text = "E&xit"; + this.exitToolStripMenuItem.Click += new System.EventHandler( this.exitToolStripMenuItem_Click ); + // + // helpToolStripMenuItem + // + this.helpToolStripMenuItem.DropDownItems.AddRange( new System.Windows.Forms.ToolStripItem[] { + this.aboutToolStripMenuItem} ); + this.helpToolStripMenuItem.Name = "helpToolStripMenuItem"; + this.helpToolStripMenuItem.Size = new System.Drawing.Size( 44, 20 ); + this.helpToolStripMenuItem.Text = "&Help"; + // + // aboutToolStripMenuItem + // + this.aboutToolStripMenuItem.Name = "aboutToolStripMenuItem"; + this.aboutToolStripMenuItem.Size = new System.Drawing.Size( 107, 22 ); + this.aboutToolStripMenuItem.Text = "&About"; + this.aboutToolStripMenuItem.Click += new System.EventHandler( this.aboutToolStripMenuItem_Click ); + // + // groupBox1 + // + this.groupBox1.Anchor = ( (System.Windows.Forms.AnchorStyles) ( ( ( System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left ) + | System.Windows.Forms.AnchorStyles.Right ) ) ); + this.groupBox1.Controls.Add( this.label9 ); + this.groupBox1.Controls.Add( this.label10 ); + this.groupBox1.Controls.Add( this.label7 ); + this.groupBox1.Controls.Add( this.label8 ); + this.groupBox1.Controls.Add( this.label5 ); + this.groupBox1.Controls.Add( this.label6 ); + this.groupBox1.Controls.Add( this.label3 ); + this.groupBox1.Controls.Add( this.label4 ); + this.groupBox1.Controls.Add( this.label2 ); + this.groupBox1.Controls.Add( this.label1 ); + this.groupBox1.Location = new System.Drawing.Point( 10, 1 ); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size( 502, 45 ); + this.groupBox1.TabIndex = 0; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "Legend"; + // + // label9 + // + this.label9.AutoSize = true; + this.label9.Location = new System.Drawing.Point( 410, 22 ); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size( 82, 13 ); + this.label9.TabIndex = 9; + this.label9.Text = "Known triangles"; + this.toolTip.SetToolTip( this.label9, "Equilateral, Isosceles, Rectangled or Rectangled Isosceles Triangle" ); + // + // label10 + // + this.label10.BackColor = System.Drawing.Color.Green; + this.label10.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label10.Location = new System.Drawing.Point( 390, 18 ); + this.label10.Name = "label10"; + this.label10.Size = new System.Drawing.Size( 20, 20 ); + this.label10.TabIndex = 8; + this.toolTip.SetToolTip( this.label10, "Equilateral, Isosceles, Rectangled or Rectangled Isosceles Triangle" ); + // + // label7 + // + this.label7.AutoSize = true; + this.label7.Location = new System.Drawing.Point( 330, 22 ); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size( 50, 13 ); + this.label7.TabIndex = 7; + this.label7.Text = "Triangles"; + // + // label8 + // + this.label8.BackColor = System.Drawing.Color.Blue; + this.label8.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label8.Location = new System.Drawing.Point( 310, 18 ); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size( 20, 20 ); + this.label8.TabIndex = 6; + // + // label5 + // + this.label5.AutoSize = true; + this.label5.Location = new System.Drawing.Point( 200, 22 ); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size( 105, 13 ); + this.label5.TabIndex = 5; + this.label5.Text = "Known quadrilaterals"; + this.toolTip.SetToolTip( this.label5, "Trapezoid, Parallelogram, Rectangle, Rhombus or Square" ); + // + // label6 + // + this.label6.BackColor = System.Drawing.Color.Brown; + this.label6.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label6.Location = new System.Drawing.Point( 180, 18 ); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size( 20, 20 ); + this.label6.TabIndex = 4; + this.toolTip.SetToolTip( this.label6, "Trapezoid, Parallelogram, Rectangle, Rhombus or Square" ); + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point( 100, 22 ); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size( 71, 13 ); + this.label3.TabIndex = 3; + this.label3.Text = "Quadrilaterals"; + // + // label4 + // + this.label4.BackColor = System.Drawing.Color.Red; + this.label4.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label4.Location = new System.Drawing.Point( 80, 18 ); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size( 20, 20 ); + this.label4.TabIndex = 2; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point( 30, 22 ); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size( 38, 13 ); + this.label2.TabIndex = 1; + this.label2.Text = "Circles"; + // + // label1 + // + this.label1.BackColor = System.Drawing.Color.Yellow; + this.label1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label1.Location = new System.Drawing.Point( 10, 18 ); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size( 20, 20 ); + this.label1.TabIndex = 0; + // + // openFileDialog + // + this.openFileDialog.Filter = "Image files (*.jpg,*.png,*.tif,*.bmp,*.gif)|*.jpg;*.png;*.tif;*.bmp;*.gif|JPG fil" + + "es (*.jpg)|*.jpg|PNG files (*.png)|*.png|TIF files (*.tif)|*.tif|BMP files (*.bm" + + "p)|*.bmp|GIF files (*.gif)|*.gif"; + this.openFileDialog.Title = "Open image file"; + // + // splitContainer + // + this.splitContainer.Dock = System.Windows.Forms.DockStyle.Fill; + this.splitContainer.Location = new System.Drawing.Point( 0, 24 ); + this.splitContainer.Name = "splitContainer"; + this.splitContainer.Orientation = System.Windows.Forms.Orientation.Horizontal; + // + // splitContainer.Panel1 + // + this.splitContainer.Panel1.Controls.Add( this.groupBox1 ); + // + // splitContainer.Panel2 + // + this.splitContainer.Panel2.Controls.Add( this.pictureBox ); + this.splitContainer.Panel2.Resize += new System.EventHandler( this.splitContainer_Panel2_Resize ); + this.splitContainer.Size = new System.Drawing.Size( 524, 358 ); + this.splitContainer.SplitterDistance = 51; + this.splitContainer.TabIndex = 1; + this.splitContainer.TabStop = false; + // + // MainForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF( 6F, 13F ); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.SystemColors.Control; + this.ClientSize = new System.Drawing.Size( 524, 382 ); + this.Controls.Add( this.splitContainer ); + this.Controls.Add( this.menuStrip ); + this.MainMenuStrip = this.menuStrip; + this.MinimumSize = new System.Drawing.Size( 540, 420 ); + this.Name = "MainForm"; + this.Text = "Simple Shape Checker"; + this.Load += new System.EventHandler( this.MainForm_Load ); + ( (System.ComponentModel.ISupportInitialize) ( this.pictureBox ) ).EndInit( ); + this.menuStrip.ResumeLayout( false ); + this.menuStrip.PerformLayout( ); + this.groupBox1.ResumeLayout( false ); + this.groupBox1.PerformLayout( ); + this.splitContainer.Panel1.ResumeLayout( false ); + this.splitContainer.Panel2.ResumeLayout( false ); + this.splitContainer.ResumeLayout( false ); + this.ResumeLayout( false ); + this.PerformLayout( ); + + } + + #endregion + + private System.Windows.Forms.PictureBox pictureBox; + private System.Windows.Forms.MenuStrip menuStrip; + private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem openToolStripMenuItem; + private System.Windows.Forms.ToolStripSeparator toolStripMenuItem1; + private System.Windows.Forms.ToolStripMenuItem loadDemoImage1ToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem loadDemoImage2ToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem loadDemoImage3ToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem loadDemoImage4ToolStripMenuItem; + private System.Windows.Forms.ToolStripSeparator toolStripMenuItem2; + private System.Windows.Forms.OpenFileDialog openFileDialog; + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.Label label7; + private System.Windows.Forms.Label label8; + private System.Windows.Forms.Label label9; + private System.Windows.Forms.Label label10; + private System.Windows.Forms.SplitContainer splitContainer; + private System.Windows.Forms.ToolTip toolTip; + private System.Windows.Forms.ToolStripMenuItem helpToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem aboutToolStripMenuItem; + } +} + diff --git a/Samples/Imaging/ShapeChecker/MainForm.cs b/Samples/Imaging/ShapeChecker/MainForm.cs new file mode 100644 index 00000000..30ad5328 --- /dev/null +++ b/Samples/Imaging/ShapeChecker/MainForm.cs @@ -0,0 +1,238 @@ +// Simple Shape Checker sample application +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2006-2011 +// contacts@aforgenet.com +// + +using System; +using System.Collections.Generic; +using System.Data; +using System.Drawing; +using System.Drawing.Imaging; +using System.Windows.Forms; +using System.Reflection; + +using AForge; +using AForge.Imaging; +using AForge.Imaging.Filters; +using AForge.Math.Geometry; + +namespace ShapeChecker +{ + public partial class MainForm : Form + { + public MainForm( ) + { + InitializeComponent( ); + } + + // Exit from application + private void exitToolStripMenuItem_Click( object sender, EventArgs e ) + { + this.Close( ); + } + + // On loading of the form + private void MainForm_Load( object sender, EventArgs e ) + { + LoadDemo( "coins.jpg" ); + } + + // Open file + private void openToolStripMenuItem_Click( object sender, EventArgs e ) + { + if ( openFileDialog.ShowDialog( ) == DialogResult.OK ) + { + try + { + ProcessImage( (Bitmap) Bitmap.FromFile( openFileDialog.FileName ) ); + } + catch + { + MessageBox.Show( "Failed loading selected image file.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error ); + } + } + } + + // Load first demo image + private void loadDemoImage1ToolStripMenuItem_Click( object sender, EventArgs e ) + { + LoadDemo( "coins.jpg" ); + } + + // Load second demo image + private void loadDemoImage2ToolStripMenuItem_Click( object sender, EventArgs e ) + { + LoadDemo( "demo.png" ); + } + + // Load third demo image + private void loadDemoImage3ToolStripMenuItem_Click( object sender, EventArgs e ) + { + LoadDemo( "demo1.png" ); + } + + // Load fourth demo image + private void loadDemoImage4ToolStripMenuItem_Click( object sender, EventArgs e ) + { + LoadDemo( "demo2.png" ); + } + + // Load one of the embedded demo image + private void LoadDemo( string embeddedFileName ) + { + // load arrow bitmap + Assembly assembly = this.GetType( ).Assembly; + Bitmap image = new Bitmap( assembly.GetManifestResourceStream( "ShapeChecker." + embeddedFileName ) ); + ProcessImage( image ); + } + + // Process image + private void ProcessImage( Bitmap bitmap ) + { + // lock image + BitmapData bitmapData = bitmap.LockBits( + new Rectangle( 0, 0, bitmap.Width, bitmap.Height ), + ImageLockMode.ReadWrite, bitmap.PixelFormat ); + + // step 1 - turn background to black + ColorFiltering colorFilter = new ColorFiltering( ); + + colorFilter.Red = new IntRange( 0, 64 ); + colorFilter.Green = new IntRange( 0, 64 ); + colorFilter.Blue = new IntRange( 0, 64 ); + colorFilter.FillOutsideRange = false; + + colorFilter.ApplyInPlace( bitmapData ); + + // step 2 - locating objects + BlobCounter blobCounter = new BlobCounter( ); + + blobCounter.FilterBlobs = true; + blobCounter.MinHeight = 5; + blobCounter.MinWidth = 5; + + blobCounter.ProcessImage( bitmapData ); + Blob[] blobs = blobCounter.GetObjectsInformation( ); + bitmap.UnlockBits( bitmapData ); + + // step 3 - check objects' type and highlight + SimpleShapeChecker shapeChecker = new SimpleShapeChecker( ); + + Graphics g = Graphics.FromImage( bitmap ); + Pen yellowPen = new Pen( Color.Yellow, 2 ); // circles + Pen redPen = new Pen( Color.Red, 2 ); // quadrilateral + Pen brownPen = new Pen( Color.Brown, 2 ); // quadrilateral with known sub-type + Pen greenPen = new Pen( Color.Green, 2 ); // known triangle + Pen bluePen = new Pen( Color.Blue, 2 ); // triangle + + for ( int i = 0, n = blobs.Length; i < n; i++ ) + { + List edgePoints = blobCounter.GetBlobsEdgePoints( blobs[i] ); + + AForge.Point center; + float radius; + + // is circle ? + if ( shapeChecker.IsCircle( edgePoints, out center, out radius ) ) + { + g.DrawEllipse( yellowPen, + (float) ( center.X - radius ), (float) ( center.Y - radius ), + (float) ( radius * 2 ), (float) ( radius * 2 ) ); + } + else + { + List corners; + + // is triangle or quadrilateral + if ( shapeChecker.IsConvexPolygon( edgePoints, out corners ) ) + { + // get sub-type + PolygonSubType subType = shapeChecker.CheckPolygonSubType( corners ); + + Pen pen; + + if ( subType == PolygonSubType.Unknown ) + { + pen = ( corners.Count == 4 ) ? redPen : bluePen; + } + else + { + pen = ( corners.Count == 4 ) ? brownPen : greenPen; + } + + g.DrawPolygon( pen, ToPointsArray( corners ) ); + } + } + } + + yellowPen.Dispose( ); + redPen.Dispose( ); + greenPen.Dispose( ); + bluePen.Dispose( ); + brownPen.Dispose( ); + g.Dispose( ); + + // put new image to clipboard + Clipboard.SetDataObject( bitmap ); + // and to picture box + pictureBox.Image = bitmap; + + UpdatePictureBoxPosition( ); + } + + // Size of main panel has changed + private void splitContainer_Panel2_Resize( object sender, EventArgs e ) + { + UpdatePictureBoxPosition( ); + } + + // Update size and position of picture box control + private void UpdatePictureBoxPosition( ) + { + int imageWidth; + int imageHeight; + + if ( pictureBox.Image == null ) + { + imageWidth = 320; + imageHeight = 240; + } + else + { + imageWidth = pictureBox.Image.Width; + imageHeight = pictureBox.Image.Height; + } + + Rectangle rc = splitContainer.Panel2.ClientRectangle; + + pictureBox.SuspendLayout( ); + pictureBox.Location = new System.Drawing.Point( ( rc.Width - imageWidth - 2 ) / 2, ( rc.Height - imageHeight - 2 ) / 2 ); + pictureBox.Size = new Size( imageWidth + 2, imageHeight + 2 ); + pictureBox.ResumeLayout( ); + } + + // Conver list of AForge.NET's points to array of .NET points + private System.Drawing.Point[] ToPointsArray( List points ) + { + System.Drawing.Point[] array = new System.Drawing.Point[points.Count]; + + for ( int i = 0, n = points.Count; i < n; i++ ) + { + array[i] = new System.Drawing.Point( points[i].X, points[i].Y ); + } + + return array; + } + + // Show about form + private void aboutToolStripMenuItem_Click( object sender, EventArgs e ) + { + AboutForm form = new AboutForm( ); + + form.ShowDialog( ); + } + } +} diff --git a/Samples/Imaging/ShapeChecker/MainForm.resx b/Samples/Imaging/ShapeChecker/MainForm.resx new file mode 100644 index 00000000..8916ec6d --- /dev/null +++ b/Samples/Imaging/ShapeChecker/MainForm.resx @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 262, 16 + + + 129, 16 + + \ No newline at end of file diff --git a/Samples/Imaging/ShapeChecker/Program.cs b/Samples/Imaging/ShapeChecker/Program.cs new file mode 100644 index 00000000..51dc9b43 --- /dev/null +++ b/Samples/Imaging/ShapeChecker/Program.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Windows.Forms; + +namespace ShapeChecker +{ + static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main( ) + { + Application.EnableVisualStyles( ); + Application.SetCompatibleTextRenderingDefault( false ); + Application.Run( new MainForm( ) ); + } + } +} diff --git a/Samples/Imaging/ShapeChecker/Properties/AssemblyInfo.cs b/Samples/Imaging/ShapeChecker/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..96a42e1d --- /dev/null +++ b/Samples/Imaging/ShapeChecker/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle( "Simple Shape Checker" )] +[assembly: AssemblyDescription( "Sample application of AForge.NET framework" )] +[assembly: AssemblyConfiguration( "" )] +[assembly: AssemblyCompany( "AForge" )] +[assembly: AssemblyProduct( "AForge.NET" )] +[assembly: AssemblyCopyright( "AForge © 2010" )] +[assembly: AssemblyTrademark( "" )] +[assembly: AssemblyCulture( "" )] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible( false )] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid( "8dadf358-4b02-42ac-a48a-4eff3b4384ec" )] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion( "1.0.0.0" )] +[assembly: AssemblyFileVersion( "1.0.0.0" )] diff --git a/Samples/Imaging/ShapeChecker/Properties/Resources.Designer.cs b/Samples/Imaging/ShapeChecker/Properties/Resources.Designer.cs new file mode 100644 index 00000000..c336adc6 --- /dev/null +++ b/Samples/Imaging/ShapeChecker/Properties/Resources.Designer.cs @@ -0,0 +1,63 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.4927 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace ShapeChecker.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ShapeChecker.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + } +} diff --git a/Samples/Imaging/ShapeChecker/Properties/Resources.resx b/Samples/Imaging/ShapeChecker/Properties/Resources.resx new file mode 100644 index 00000000..af7dbebb --- /dev/null +++ b/Samples/Imaging/ShapeChecker/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Samples/Imaging/ShapeChecker/Properties/Settings.Designer.cs b/Samples/Imaging/ShapeChecker/Properties/Settings.Designer.cs new file mode 100644 index 00000000..bd2ccd7c --- /dev/null +++ b/Samples/Imaging/ShapeChecker/Properties/Settings.Designer.cs @@ -0,0 +1,26 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.4927 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace ShapeChecker.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "9.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + } +} diff --git a/Samples/Imaging/ShapeChecker/Properties/Settings.settings b/Samples/Imaging/ShapeChecker/Properties/Settings.settings new file mode 100644 index 00000000..39645652 --- /dev/null +++ b/Samples/Imaging/ShapeChecker/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Samples/Imaging/ShapeChecker/ShapeChecker.csproj b/Samples/Imaging/ShapeChecker/ShapeChecker.csproj new file mode 100644 index 00000000..000e68a8 --- /dev/null +++ b/Samples/Imaging/ShapeChecker/ShapeChecker.csproj @@ -0,0 +1,148 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {722FD1AB-4193-45B1-A94E-10B6E5C9AA05} + WinExe + Properties + ShapeChecker + ShapeChecker + v2.0 + 512 + + + 3.5 + + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + False + ..\..\..\Release\AForge.dll + + + False + ..\..\..\Release\AForge.Imaging.dll + + + False + ..\..\..\Release\AForge.Math.dll + + + + + + + + + Form + + + AboutForm.cs + + + Form + + + MainForm.cs + + + + + MainForm.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + True + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + AboutForm.cs + + + + + + + + + False + Microsoft .NET Framework 4 %28x86 and x64%29 + true + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 3.1 + true + + + + + \ No newline at end of file diff --git a/Samples/Imaging/ShapeChecker/ShapeChecker.sln b/Samples/Imaging/ShapeChecker/ShapeChecker.sln new file mode 100644 index 00000000..f8063682 --- /dev/null +++ b/Samples/Imaging/ShapeChecker/ShapeChecker.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual C# Express 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ShapeChecker", "ShapeChecker.csproj", "{722FD1AB-4193-45B1-A94E-10B6E5C9AA05}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {722FD1AB-4193-45B1-A94E-10B6E5C9AA05}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {722FD1AB-4193-45B1-A94E-10B6E5C9AA05}.Debug|Any CPU.Build.0 = Debug|Any CPU + {722FD1AB-4193-45B1-A94E-10B6E5C9AA05}.Release|Any CPU.ActiveCfg = Release|Any CPU + {722FD1AB-4193-45B1-A94E-10B6E5C9AA05}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Samples/Imaging/ShapeChecker/coins.jpg b/Samples/Imaging/ShapeChecker/coins.jpg new file mode 100644 index 00000000..fda16685 Binary files /dev/null and b/Samples/Imaging/ShapeChecker/coins.jpg differ diff --git a/Samples/Imaging/ShapeChecker/demo.png b/Samples/Imaging/ShapeChecker/demo.png new file mode 100644 index 00000000..2b1e3c6f Binary files /dev/null and b/Samples/Imaging/ShapeChecker/demo.png differ diff --git a/Samples/Imaging/ShapeChecker/demo1.png b/Samples/Imaging/ShapeChecker/demo1.png new file mode 100644 index 00000000..7715d43d Binary files /dev/null and b/Samples/Imaging/ShapeChecker/demo1.png differ diff --git a/Samples/Imaging/ShapeChecker/demo2.png b/Samples/Imaging/ShapeChecker/demo2.png new file mode 100644 index 00000000..5196c178 Binary files /dev/null and b/Samples/Imaging/ShapeChecker/demo2.png differ diff --git a/Samples/Imaging/TexturesDemo/MainForm.Designer.cs b/Samples/Imaging/TexturesDemo/MainForm.Designer.cs new file mode 100644 index 00000000..15f7472b --- /dev/null +++ b/Samples/Imaging/TexturesDemo/MainForm.Designer.cs @@ -0,0 +1,109 @@ +namespace TexturesDemo +{ + partial class MainForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose( bool disposing ) + { + if ( disposing && ( components != null ) ) + { + components.Dispose( ); + } + base.Dispose( disposing ); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent( ) + { + this.label1 = new System.Windows.Forms.Label( ); + this.texturesCombo = new System.Windows.Forms.ComboBox( ); + this.pictureBox = new System.Windows.Forms.PictureBox( ); + this.regenerateButton = new System.Windows.Forms.Button( ); + ( (System.ComponentModel.ISupportInitialize) ( this.pictureBox ) ).BeginInit( ); + this.SuspendLayout( ); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point( 10, 12 ); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size( 46, 13 ); + this.label1.TabIndex = 0; + this.label1.Text = "&Texture:"; + // + // texturesCombo + // + this.texturesCombo.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.texturesCombo.FormattingEnabled = true; + this.texturesCombo.Items.AddRange( new object[] { + "Clouds", + "Marble", + "Wood", + "Labyrinth", + "Textile"} ); + this.texturesCombo.Location = new System.Drawing.Point( 60, 10 ); + this.texturesCombo.Name = "texturesCombo"; + this.texturesCombo.Size = new System.Drawing.Size( 150, 21 ); + this.texturesCombo.TabIndex = 1; + this.texturesCombo.SelectedIndexChanged += new System.EventHandler( this.texturesCombo_SelectedIndexChanged ); + // + // pictureBox + // + this.pictureBox.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.pictureBox.Location = new System.Drawing.Point( 10, 40 ); + this.pictureBox.Name = "pictureBox"; + this.pictureBox.Size = new System.Drawing.Size( 300, 300 ); + this.pictureBox.TabIndex = 2; + this.pictureBox.TabStop = false; + // + // regenerateButton + // + this.regenerateButton.Location = new System.Drawing.Point( 235, 10 ); + this.regenerateButton.Name = "regenerateButton"; + this.regenerateButton.Size = new System.Drawing.Size( 75, 23 ); + this.regenerateButton.TabIndex = 3; + this.regenerateButton.Text = "&Regenerate"; + this.regenerateButton.UseVisualStyleBackColor = true; + this.regenerateButton.Click += new System.EventHandler( this.regenerateButton_Click ); + // + // MainForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF( 6F, 13F ); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size( 320, 350 ); + this.Controls.Add( this.regenerateButton ); + this.Controls.Add( this.pictureBox ); + this.Controls.Add( this.texturesCombo ); + this.Controls.Add( this.label1 ); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.MaximizeBox = false; + this.Name = "MainForm"; + this.Text = "Textures Demo"; + ( (System.ComponentModel.ISupportInitialize) ( this.pictureBox ) ).EndInit( ); + this.ResumeLayout( false ); + this.PerformLayout( ); + + } + + #endregion + + private System.Windows.Forms.Label label1; + private System.Windows.Forms.ComboBox texturesCombo; + private System.Windows.Forms.PictureBox pictureBox; + private System.Windows.Forms.Button regenerateButton; + } +} + diff --git a/Samples/Imaging/TexturesDemo/MainForm.cs b/Samples/Imaging/TexturesDemo/MainForm.cs new file mode 100644 index 00000000..09666b85 --- /dev/null +++ b/Samples/Imaging/TexturesDemo/MainForm.cs @@ -0,0 +1,98 @@ +// Textures demo +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2006-2011 +// contacts@aforgenet.com +// + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Drawing.Imaging; +using System.Text; +using System.Windows.Forms; + +using AForge.Imaging; +using AForge.Imaging.Textures; + +namespace TexturesDemo +{ + public partial class MainForm : Form + { + ITextureGenerator textureGenerator = null; + + public MainForm( ) + { + InitializeComponent( ); + + // show first texture + texturesCombo.SelectedIndex = 0; + } + + // Texture changed + private void texturesCombo_SelectedIndexChanged( object sender, EventArgs e ) + { + // create texture generator + switch ( texturesCombo.SelectedIndex ) + { + case 0: // clouds + textureGenerator = new CloudsTexture( ); + break; + case 1: // marble + textureGenerator = new MarbleTexture( ); + break; + case 2: // wood + textureGenerator = new WoodTexture( 7 ); + break; + case 3: // labyrinth + textureGenerator = new LabyrinthTexture( ); + break; + case 4: // textile + textureGenerator = new TextileTexture( ); + break; + default: + textureGenerator = null; + break; + } + + // show texture + ShowTexture( ); + } + + // Generate and show texture + private void ShowTexture( ) + { + // check generator + if ( textureGenerator == null ) + { + pictureBox.Image = null; + return; + } + + int width = pictureBox.ClientRectangle.Width; + int height = pictureBox.ClientRectangle.Height; + + // generate texture + float[,] texture = textureGenerator.Generate( width, height ); + + // create bitmap from the texture + Bitmap image = TextureTools.ToBitmap( texture ); + + // show image + pictureBox.Image = image; + } + + // Regenerate texture + private void regenerateButton_Click( object sender, EventArgs e ) + { + if ( textureGenerator != null ) + { + textureGenerator.Reset( ); + ShowTexture( ); + } + } + } +} \ No newline at end of file diff --git a/Samples/Imaging/TexturesDemo/MainForm.resx b/Samples/Imaging/TexturesDemo/MainForm.resx new file mode 100644 index 00000000..19dc0dd8 --- /dev/null +++ b/Samples/Imaging/TexturesDemo/MainForm.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Samples/Imaging/TexturesDemo/Program.cs b/Samples/Imaging/TexturesDemo/Program.cs new file mode 100644 index 00000000..ca01ebfc --- /dev/null +++ b/Samples/Imaging/TexturesDemo/Program.cs @@ -0,0 +1,28 @@ +// Textures demo +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2005-2009 +// andrew.kirillov@aforgenet.com +// + +using System; +using System.Collections.Generic; +using System.Windows.Forms; + +namespace TexturesDemo +{ + static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main( ) + { + Application.EnableVisualStyles( ); + Application.SetCompatibleTextRenderingDefault( false ); + Application.Run( new MainForm( ) ); + } + } +} \ No newline at end of file diff --git a/Samples/Imaging/TexturesDemo/Properties/AssemblyInfo.cs b/Samples/Imaging/TexturesDemo/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..3cf53d6f --- /dev/null +++ b/Samples/Imaging/TexturesDemo/Properties/AssemblyInfo.cs @@ -0,0 +1,33 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle( "Imaging Textures Demo" )] +[assembly: AssemblyDescription( "Imaging Textures Demo sample" )] +[assembly: AssemblyConfiguration( "" )] +[assembly: AssemblyCompany( "AForge" )] +[assembly: AssemblyProduct( "AForge.NET" )] +[assembly: AssemblyCopyright( "AForge © 2009" )] +[assembly: AssemblyTrademark( "" )] +[assembly: AssemblyCulture( "" )] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible( false )] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid( "b03a4989-02d0-4f71-b9a1-673f6635e276" )] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +[assembly: AssemblyVersion( "2.0.0.0" )] +[assembly: AssemblyFileVersion( "2.0.0.0" )] diff --git a/Samples/Imaging/TexturesDemo/Properties/Resources.Designer.cs b/Samples/Imaging/TexturesDemo/Properties/Resources.Designer.cs new file mode 100644 index 00000000..7d134b56 --- /dev/null +++ b/Samples/Imaging/TexturesDemo/Properties/Resources.Designer.cs @@ -0,0 +1,63 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.3053 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace TexturesDemo.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("TexturesDemo.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + } +} diff --git a/Samples/Imaging/TexturesDemo/Properties/Resources.resx b/Samples/Imaging/TexturesDemo/Properties/Resources.resx new file mode 100644 index 00000000..25a61211 --- /dev/null +++ b/Samples/Imaging/TexturesDemo/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Samples/Imaging/TexturesDemo/Properties/Settings.Designer.cs b/Samples/Imaging/TexturesDemo/Properties/Settings.Designer.cs new file mode 100644 index 00000000..34d1e31b --- /dev/null +++ b/Samples/Imaging/TexturesDemo/Properties/Settings.Designer.cs @@ -0,0 +1,26 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.3053 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace TexturesDemo.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "9.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + } +} diff --git a/Samples/Imaging/TexturesDemo/Properties/Settings.settings b/Samples/Imaging/TexturesDemo/Properties/Settings.settings new file mode 100644 index 00000000..39645652 --- /dev/null +++ b/Samples/Imaging/TexturesDemo/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Samples/Imaging/TexturesDemo/TexturesDemo.csproj b/Samples/Imaging/TexturesDemo/TexturesDemo.csproj new file mode 100644 index 00000000..f7786182 --- /dev/null +++ b/Samples/Imaging/TexturesDemo/TexturesDemo.csproj @@ -0,0 +1,138 @@ + + + + Debug + AnyCPU + 8.0.50727 + 2.0 + {E34CC841-CE29-4B39-9BE5-D98502330F55} + WinExe + Properties + TexturesDemo + TexturesDemo + + + 3.5 + v2.0 + + + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + true + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + true + + + + False + ..\..\..\Release\AForge.dll + + + False + ..\..\..\Release\AForge.Imaging.dll + + + False + ..\..\..\Release\AForge.Math.dll + + + + + + + + + + + Form + + + MainForm.cs + + + + + Designer + MainForm.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + True + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + False + Microsoft .NET Framework 4 %28x86 and x64%29 + true + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 3.1 + true + + + + + \ No newline at end of file diff --git a/Samples/Imaging/TexturesDemo/TexturesDemo.sln b/Samples/Imaging/TexturesDemo/TexturesDemo.sln new file mode 100644 index 00000000..f56e73bf --- /dev/null +++ b/Samples/Imaging/TexturesDemo/TexturesDemo.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual C# Express 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TexturesDemo", "TexturesDemo.csproj", "{E34CC841-CE29-4B39-9BE5-D98502330F55}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {E34CC841-CE29-4B39-9BE5-D98502330F55}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E34CC841-CE29-4B39-9BE5-D98502330F55}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E34CC841-CE29-4B39-9BE5-D98502330F55}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E34CC841-CE29-4B39-9BE5-D98502330F55}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Samples/MachineLearning/Animat/Animat.csproj b/Samples/MachineLearning/Animat/Animat.csproj new file mode 100644 index 00000000..2f429379 --- /dev/null +++ b/Samples/MachineLearning/Animat/Animat.csproj @@ -0,0 +1,148 @@ + + + + Debug + AnyCPU + 9.0.21022 + 2.0 + {B4892057-CAE6-41F4-A75D-88E61331A2D0} + WinExe + Properties + Animat + Animat + + + 3.5 + v2.0 + + + false + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + true + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + False + ..\..\..\Release\AForge.MachineLearning.dll + + + + + + + + + + + Component + + + CellWorld.cs + + + Form + + + MainForm.cs + + + + + Designer + CellWorld.cs + + + Designer + MainForm.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + True + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 2.0 %28x86%29 + false + + + False + .NET Framework 3.0 %28x86%29 + false + + + False + .NET Framework 3.5 + true + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 3.1 + true + + + + + \ No newline at end of file diff --git a/Samples/MachineLearning/Animat/Animat.sln b/Samples/MachineLearning/Animat/Animat.sln new file mode 100644 index 00000000..a9a7c602 --- /dev/null +++ b/Samples/MachineLearning/Animat/Animat.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual C# Express 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Animat", "Animat.csproj", "{B4892057-CAE6-41F4-A75D-88E61331A2D0}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {B4892057-CAE6-41F4-A75D-88E61331A2D0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B4892057-CAE6-41F4-A75D-88E61331A2D0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B4892057-CAE6-41F4-A75D-88E61331A2D0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B4892057-CAE6-41F4-A75D-88E61331A2D0}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Samples/MachineLearning/Animat/CellWorld.Designer.cs b/Samples/MachineLearning/Animat/CellWorld.Designer.cs new file mode 100644 index 00000000..99fe03e1 --- /dev/null +++ b/Samples/MachineLearning/Animat/CellWorld.Designer.cs @@ -0,0 +1,41 @@ +namespace Animat +{ + partial class CellWorld + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose( bool disposing ) + { + if ( disposing && ( components != null ) ) + { + components.Dispose( ); + } + base.Dispose( disposing ); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent( ) + { + this.SuspendLayout( ); + // + // CellWorld + // + this.ResumeLayout( false ); + + } + + #endregion + } +} diff --git a/Samples/MachineLearning/Animat/CellWorld.cs b/Samples/MachineLearning/Animat/CellWorld.cs new file mode 100644 index 00000000..366e9be2 --- /dev/null +++ b/Samples/MachineLearning/Animat/CellWorld.cs @@ -0,0 +1,120 @@ +// Animat sample application +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2006-2011 +// contacts@aforgenet.com +// + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.Data; +using System.Text; +using System.Windows.Forms; + +namespace Animat +{ + public partial class CellWorld : Control + { + private Pen blackPen = new Pen( Color.Black ); + private Brush whiteBrush = new SolidBrush( Color.White ); + + private int[,] map = null; + private Color[] coloring = null; + + /// + /// World's map + /// + /// + public int[,] Map + { + get { return map; } + set + { + map = value; + Invalidate( ); + } + } + + /// + /// World's coloring + /// + /// + public Color[] Coloring + { + get { return coloring; } + set + { + coloring = value; + Invalidate( ); + } + } + + // Control's constructor + public CellWorld( ) + { + InitializeComponent( ); + + // update control's style + SetStyle( ControlStyles.AllPaintingInWmPaint | ControlStyles.ResizeRedraw | + ControlStyles.DoubleBuffer | ControlStyles.UserPaint, true ); + } + + // Paint the control + protected override void OnPaint( PaintEventArgs pe ) + { + Graphics g = pe.Graphics; + int clientWidth = ClientRectangle.Width; + int clientHeight = ClientRectangle.Height; + + // fill with white background + g.FillRectangle( whiteBrush, 0, 0, clientWidth - 1, clientHeight - 1 ); + + // draw a black rectangle + g.DrawRectangle( blackPen, 0, 0, clientWidth - 1, clientHeight - 1 ); + + if ( ( map != null ) && ( coloring != null ) ) + { + int brushesCount = coloring.Length; + int cellWidth = (int) ( clientWidth / map.GetLength( 1 ) ); + int cellHeight = (int) ( clientHeight / map.GetLength( 0 ) ); + + // create brushes + Brush[] brushes = new Brush[brushesCount]; + for ( int i = 0; i < brushesCount; i++ ) + { + brushes[i] = new SolidBrush( coloring[i] ); + } + + // draw the world + for ( int i = 0, n = map.GetLength( 0 ); i < n; i++ ) + { + int ch = ( i < n - 1 ) ? cellHeight : clientHeight - i * cellHeight - 1; + + for ( int j = 0, k = map.GetLength( 1 ); j < k; j++ ) + { + int cw = ( j < k - 1 ) ? cellWidth : clientWidth - j * cellWidth - 1; + + // check if we have appropriate brush + if ( map[i, j] < brushesCount ) + { + g.FillRectangle( brushes[map[i, j]], j * cellWidth, i * cellHeight, cw, ch ); + g.DrawRectangle( blackPen, j * cellWidth, i * cellHeight, cw, ch ); + } + } + } + + // release brushes + for ( int i = 0; i < brushesCount; i++ ) + { + brushes[i].Dispose( ); + } + } + + // Calling the base class OnPaint + base.OnPaint( pe ); + } + } +} diff --git a/Samples/MachineLearning/Animat/CellWorld.resx b/Samples/MachineLearning/Animat/CellWorld.resx new file mode 100644 index 00000000..52a9ad3e --- /dev/null +++ b/Samples/MachineLearning/Animat/CellWorld.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + False + + \ No newline at end of file diff --git a/Samples/MachineLearning/Animat/Data files/sample1.map b/Samples/MachineLearning/Animat/Data files/sample1.map new file mode 100644 index 00000000..0764e60b --- /dev/null +++ b/Samples/MachineLearning/Animat/Data files/sample1.map @@ -0,0 +1,20 @@ +; Map file +; +; 1st line - 2 numbers: map size (width and height) +; 2st line - number of agents (n) +; next n lines - two pairs of (x, y) coordinates of agent's start and stop positions +; next (height) lines - map +; +; 0 - free space available for motion +; 1 - wall +; +6 6 +1 +1 1 4 4 + +1 1 1 1 1 1 +1 0 0 0 0 1 +1 0 0 0 0 1 +1 0 0 0 0 1 +1 0 0 0 0 1 +1 1 1 1 1 1 diff --git a/Samples/MachineLearning/Animat/Data files/sample2.map b/Samples/MachineLearning/Animat/Data files/sample2.map new file mode 100644 index 00000000..eee33176 --- /dev/null +++ b/Samples/MachineLearning/Animat/Data files/sample2.map @@ -0,0 +1,24 @@ +; Map file +; +; 1st line - 2 numbers: map size (width and height) +; 2st line - number of agents (n) +; next n lines - two pairs of (x, y) coordinates of agent's start and stop positions +; next (height) lines - map +; +; 0 - free space available for motion +; 1 - wall +; +10 10 +1 +1 1 8 8 + +1 1 1 1 1 1 1 1 1 1 +1 0 0 0 0 1 0 0 0 1 +1 0 0 0 0 1 0 0 0 1 +1 0 0 0 0 0 0 0 0 1 +1 0 0 0 0 1 0 0 0 1 +1 0 0 0 0 1 0 0 0 1 +1 0 0 0 0 1 0 0 0 1 +1 0 0 0 0 1 0 0 0 1 +1 0 0 0 0 0 0 0 0 1 +1 1 1 1 1 1 1 1 1 1 diff --git a/Samples/MachineLearning/Animat/Data files/test1.map b/Samples/MachineLearning/Animat/Data files/test1.map new file mode 100644 index 00000000..0eef5332 --- /dev/null +++ b/Samples/MachineLearning/Animat/Data files/test1.map @@ -0,0 +1,23 @@ +; Map file +; +; 1st line - 2 numbers: map size (width and height) +; 2st line - number of agents (n) +; next n lines - two pairs of (x, y) coordinates of agent's start and stop positions +; next (height) lines - map +; +; 0 - free space available for motion +; 1 - wall +; +9 9 +1 +1 4 7 4 + +1 1 1 1 1 1 1 1 1 +1 1 0 0 0 0 0 0 1 +1 1 0 0 0 1 1 0 1 +1 0 0 1 0 0 0 0 1 +1 0 0 1 1 1 1 0 1 +1 0 0 1 1 0 0 0 1 +1 1 0 1 0 0 0 0 1 +1 1 0 1 0 1 1 0 1 +1 1 1 1 1 1 1 1 1 diff --git a/Samples/MachineLearning/Animat/Data files/test2.map b/Samples/MachineLearning/Animat/Data files/test2.map new file mode 100644 index 00000000..899e5bbd --- /dev/null +++ b/Samples/MachineLearning/Animat/Data files/test2.map @@ -0,0 +1,23 @@ +; Map file +; +; 1st line - 2 numbers: map size (width and height) +; 2st line - number of agents (n) +; next n lines - two pairs of (x, y) coordinates of agent's start and stop positions +; next (height) lines - map +; +; 0 - free space available for motion +; 1 - wall +; +9 9 +1 +1 4 7 4 + +1 1 1 1 1 1 1 1 1 +1 0 0 1 0 0 0 0 1 +1 0 0 1 0 1 1 0 1 +1 0 0 1 0 0 0 0 1 +1 0 0 1 1 1 1 0 1 +1 0 0 1 1 0 0 0 1 +1 1 0 0 0 0 0 0 1 +1 1 0 0 0 1 1 0 1 +1 1 1 1 1 1 1 1 1 diff --git a/Samples/MachineLearning/Animat/Data files/test3.map b/Samples/MachineLearning/Animat/Data files/test3.map new file mode 100644 index 00000000..fbcba585 --- /dev/null +++ b/Samples/MachineLearning/Animat/Data files/test3.map @@ -0,0 +1,23 @@ +; Map file +; +; 1st line - 2 numbers: map size (width and height) +; 2st line - number of agents (n) +; next n lines - two pairs of (x, y) coordinates of agent's start and stop positions +; next (height) lines - map +; +; 0 - free space available for motion +; 1 - wall +; +9 9 +1 +7 4 1 4 + +1 1 1 1 1 1 1 1 1 +1 1 0 0 0 0 0 0 1 +1 1 0 0 0 1 1 0 1 +1 0 0 1 0 0 0 0 1 +1 0 0 1 1 1 1 0 1 +1 0 0 1 1 0 0 0 1 +1 1 0 1 0 0 0 0 1 +1 1 0 1 0 1 1 0 1 +1 1 1 1 1 1 1 1 1 diff --git a/Samples/MachineLearning/Animat/MainForm.Designer.cs b/Samples/MachineLearning/Animat/MainForm.Designer.cs new file mode 100644 index 00000000..e33dcccb --- /dev/null +++ b/Samples/MachineLearning/Animat/MainForm.Designer.cs @@ -0,0 +1,384 @@ +namespace Animat +{ + partial class MainForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose( bool disposing ) + { + if ( disposing && ( components != null ) ) + { + components.Dispose( ); + } + base.Dispose( disposing ); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent( ) + { + this.groupBox1 = new System.Windows.Forms.GroupBox( ); + this.worldSizeBox = new System.Windows.Forms.TextBox( ); + this.label1 = new System.Windows.Forms.Label( ); + this.cellWorld = new Animat.CellWorld( ); + this.loadButton = new System.Windows.Forms.Button( ); + this.openFileDialog = new System.Windows.Forms.OpenFileDialog( ); + this.groupBox2 = new System.Windows.Forms.GroupBox( ); + this.algorithmCombo = new System.Windows.Forms.ComboBox( ); + this.label10 = new System.Windows.Forms.Label( ); + this.goalRewardBox = new System.Windows.Forms.TextBox( ); + this.label9 = new System.Windows.Forms.Label( ); + this.wallRewardBox = new System.Windows.Forms.TextBox( ); + this.label8 = new System.Windows.Forms.Label( ); + this.moveRewardBox = new System.Windows.Forms.TextBox( ); + this.label7 = new System.Windows.Forms.Label( ); + this.label6 = new System.Windows.Forms.Label( ); + this.iterationsBox = new System.Windows.Forms.TextBox( ); + this.label5 = new System.Windows.Forms.Label( ); + this.learningRateBox = new System.Windows.Forms.TextBox( ); + this.label4 = new System.Windows.Forms.Label( ); + this.explorationRateBox = new System.Windows.Forms.TextBox( ); + this.label3 = new System.Windows.Forms.Label( ); + this.groupBox3 = new System.Windows.Forms.GroupBox( ); + this.showSolutionButton = new System.Windows.Forms.Button( ); + this.iterationBox = new System.Windows.Forms.TextBox( ); + this.label2 = new System.Windows.Forms.Label( ); + this.stopButton = new System.Windows.Forms.Button( ); + this.startLearningButton = new System.Windows.Forms.Button( ); + this.groupBox1.SuspendLayout( ); + this.groupBox2.SuspendLayout( ); + this.groupBox3.SuspendLayout( ); + this.SuspendLayout( ); + // + // groupBox1 + // + this.groupBox1.Controls.Add( this.worldSizeBox ); + this.groupBox1.Controls.Add( this.label1 ); + this.groupBox1.Controls.Add( this.cellWorld ); + this.groupBox1.Controls.Add( this.loadButton ); + this.groupBox1.Location = new System.Drawing.Point( 10, 10 ); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size( 300, 335 ); + this.groupBox1.TabIndex = 0; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "Map"; + // + // worldSizeBox + // + this.worldSizeBox.Location = new System.Drawing.Point( 220, 307 ); + this.worldSizeBox.Name = "worldSizeBox"; + this.worldSizeBox.ReadOnly = true; + this.worldSizeBox.Size = new System.Drawing.Size( 70, 20 ); + this.worldSizeBox.TabIndex = 3; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point( 160, 309 ); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size( 59, 13 ); + this.label1.TabIndex = 2; + this.label1.Text = "World size:"; + // + // cellWorld + // + this.cellWorld.Coloring = null; + this.cellWorld.Location = new System.Drawing.Point( 10, 20 ); + this.cellWorld.Map = null; + this.cellWorld.Name = "cellWorld"; + this.cellWorld.Size = new System.Drawing.Size( 280, 280 ); + this.cellWorld.TabIndex = 1; + this.cellWorld.Text = "cellWorld1"; + // + // loadButton + // + this.loadButton.Location = new System.Drawing.Point( 10, 305 ); + this.loadButton.Name = "loadButton"; + this.loadButton.Size = new System.Drawing.Size( 75, 23 ); + this.loadButton.TabIndex = 0; + this.loadButton.Text = "&Load"; + this.loadButton.UseVisualStyleBackColor = true; + this.loadButton.Click += new System.EventHandler( this.loadButton_Click ); + // + // openFileDialog + // + this.openFileDialog.Filter = "MAP (World\'s map file) (*.map)|*.map"; + this.openFileDialog.Title = "Select map file"; + // + // groupBox2 + // + this.groupBox2.Controls.Add( this.algorithmCombo ); + this.groupBox2.Controls.Add( this.label10 ); + this.groupBox2.Controls.Add( this.goalRewardBox ); + this.groupBox2.Controls.Add( this.label9 ); + this.groupBox2.Controls.Add( this.wallRewardBox ); + this.groupBox2.Controls.Add( this.label8 ); + this.groupBox2.Controls.Add( this.moveRewardBox ); + this.groupBox2.Controls.Add( this.label7 ); + this.groupBox2.Controls.Add( this.label6 ); + this.groupBox2.Controls.Add( this.iterationsBox ); + this.groupBox2.Controls.Add( this.label5 ); + this.groupBox2.Controls.Add( this.learningRateBox ); + this.groupBox2.Controls.Add( this.label4 ); + this.groupBox2.Controls.Add( this.explorationRateBox ); + this.groupBox2.Controls.Add( this.label3 ); + this.groupBox2.Location = new System.Drawing.Point( 320, 10 ); + this.groupBox2.Name = "groupBox2"; + this.groupBox2.Size = new System.Drawing.Size( 187, 220 ); + this.groupBox2.TabIndex = 1; + this.groupBox2.TabStop = false; + this.groupBox2.Text = "Settings"; + // + // algorithmCombo + // + this.algorithmCombo.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.algorithmCombo.FormattingEnabled = true; + this.algorithmCombo.Items.AddRange( new object[] { + "Q-Learning", + "Sarsa"} ); + this.algorithmCombo.Location = new System.Drawing.Point( 105, 20 ); + this.algorithmCombo.Name = "algorithmCombo"; + this.algorithmCombo.Size = new System.Drawing.Size( 70, 21 ); + this.algorithmCombo.TabIndex = 1; + // + // label10 + // + this.label10.AutoSize = true; + this.label10.Location = new System.Drawing.Point( 10, 22 ); + this.label10.Name = "label10"; + this.label10.Size = new System.Drawing.Size( 96, 13 ); + this.label10.TabIndex = 0; + this.label10.Text = "Learning &algorithm:"; + // + // goalRewardBox + // + this.goalRewardBox.Location = new System.Drawing.Point( 125, 180 ); + this.goalRewardBox.Name = "goalRewardBox"; + this.goalRewardBox.Size = new System.Drawing.Size( 50, 20 ); + this.goalRewardBox.TabIndex = 13; + // + // label9 + // + this.label9.Location = new System.Drawing.Point( 10, 182 ); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size( 70, 15 ); + this.label9.TabIndex = 12; + this.label9.Text = "&Goal reward:"; + // + // wallRewardBox + // + this.wallRewardBox.Location = new System.Drawing.Point( 125, 155 ); + this.wallRewardBox.Name = "wallRewardBox"; + this.wallRewardBox.Size = new System.Drawing.Size( 50, 20 ); + this.wallRewardBox.TabIndex = 11; + // + // label8 + // + this.label8.Location = new System.Drawing.Point( 10, 157 ); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size( 80, 15 ); + this.label8.TabIndex = 10; + this.label8.Text = "&Wall reward:"; + // + // moveRewardBox + // + this.moveRewardBox.Location = new System.Drawing.Point( 125, 130 ); + this.moveRewardBox.Name = "moveRewardBox"; + this.moveRewardBox.Size = new System.Drawing.Size( 50, 20 ); + this.moveRewardBox.TabIndex = 9; + // + // label7 + // + this.label7.Location = new System.Drawing.Point( 10, 132 ); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size( 100, 15 ); + this.label7.TabIndex = 8; + this.label7.Text = "&Move reward:"; + // + // label6 + // + this.label6.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label6.Location = new System.Drawing.Point( 10, 121 ); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size( 165, 2 ); + this.label6.TabIndex = 14; + // + // iterationsBox + // + this.iterationsBox.Location = new System.Drawing.Point( 125, 95 ); + this.iterationsBox.Name = "iterationsBox"; + this.iterationsBox.Size = new System.Drawing.Size( 50, 20 ); + this.iterationsBox.TabIndex = 7; + // + // label5 + // + this.label5.AutoSize = true; + this.label5.Location = new System.Drawing.Point( 10, 97 ); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size( 96, 13 ); + this.label5.TabIndex = 6; + this.label5.Text = "Learning &iterations:"; + // + // learningRateBox + // + this.learningRateBox.Location = new System.Drawing.Point( 125, 70 ); + this.learningRateBox.Name = "learningRateBox"; + this.learningRateBox.Size = new System.Drawing.Size( 50, 20 ); + this.learningRateBox.TabIndex = 5; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point( 10, 72 ); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size( 95, 13 ); + this.label4.TabIndex = 4; + this.label4.Text = "Initial learning &rate:"; + // + // explorationRateBox + // + this.explorationRateBox.Location = new System.Drawing.Point( 125, 45 ); + this.explorationRateBox.Name = "explorationRateBox"; + this.explorationRateBox.Size = new System.Drawing.Size( 50, 20 ); + this.explorationRateBox.TabIndex = 3; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point( 10, 48 ); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size( 109, 13 ); + this.label3.TabIndex = 2; + this.label3.Text = "Initial &exploration rate:"; + // + // groupBox3 + // + this.groupBox3.Controls.Add( this.showSolutionButton ); + this.groupBox3.Controls.Add( this.iterationBox ); + this.groupBox3.Controls.Add( this.label2 ); + this.groupBox3.Controls.Add( this.stopButton ); + this.groupBox3.Controls.Add( this.startLearningButton ); + this.groupBox3.Location = new System.Drawing.Point( 320, 235 ); + this.groupBox3.Name = "groupBox3"; + this.groupBox3.Size = new System.Drawing.Size( 187, 110 ); + this.groupBox3.TabIndex = 2; + this.groupBox3.TabStop = false; + this.groupBox3.Text = "Learning"; + // + // showSolutionButton + // + this.showSolutionButton.Enabled = false; + this.showSolutionButton.Location = new System.Drawing.Point( 10, 80 ); + this.showSolutionButton.Name = "showSolutionButton"; + this.showSolutionButton.Size = new System.Drawing.Size( 155, 23 ); + this.showSolutionButton.TabIndex = 4; + this.showSolutionButton.Text = "S&how solution"; + this.showSolutionButton.UseVisualStyleBackColor = true; + this.showSolutionButton.Click += new System.EventHandler( this.showSolutionButton_Click ); + // + // iterationBox + // + this.iterationBox.Location = new System.Drawing.Point( 65, 20 ); + this.iterationBox.Name = "iterationBox"; + this.iterationBox.ReadOnly = true; + this.iterationBox.Size = new System.Drawing.Size( 100, 20 ); + this.iterationBox.TabIndex = 1; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point( 10, 23 ); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size( 48, 13 ); + this.label2.TabIndex = 0; + this.label2.Text = "Iteration:"; + // + // stopButton + // + this.stopButton.Enabled = false; + this.stopButton.Location = new System.Drawing.Point( 90, 50 ); + this.stopButton.Name = "stopButton"; + this.stopButton.Size = new System.Drawing.Size( 75, 23 ); + this.stopButton.TabIndex = 3; + this.stopButton.Text = "S&top"; + this.stopButton.UseVisualStyleBackColor = true; + this.stopButton.Click += new System.EventHandler( this.stopButton_Click ); + // + // startLearningButton + // + this.startLearningButton.Enabled = false; + this.startLearningButton.Location = new System.Drawing.Point( 10, 50 ); + this.startLearningButton.Name = "startLearningButton"; + this.startLearningButton.Size = new System.Drawing.Size( 75, 23 ); + this.startLearningButton.TabIndex = 2; + this.startLearningButton.Text = "&Start"; + this.startLearningButton.UseVisualStyleBackColor = true; + this.startLearningButton.Click += new System.EventHandler( this.startLearningButton_Click ); + // + // MainForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF( 6F, 13F ); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size( 519, 355 ); + this.Controls.Add( this.groupBox3 ); + this.Controls.Add( this.groupBox2 ); + this.Controls.Add( this.groupBox1 ); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.MaximizeBox = false; + this.Name = "MainForm"; + this.Text = "Animat"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler( this.MainForm_FormClosing ); + this.groupBox1.ResumeLayout( false ); + this.groupBox1.PerformLayout( ); + this.groupBox2.ResumeLayout( false ); + this.groupBox2.PerformLayout( ); + this.groupBox3.ResumeLayout( false ); + this.groupBox3.PerformLayout( ); + this.ResumeLayout( false ); + + } + + #endregion + + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.Button loadButton; + private System.Windows.Forms.OpenFileDialog openFileDialog; + private CellWorld cellWorld; + private System.Windows.Forms.TextBox worldSizeBox; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.GroupBox groupBox2; + private System.Windows.Forms.GroupBox groupBox3; + private System.Windows.Forms.TextBox iterationBox; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Button stopButton; + private System.Windows.Forms.Button startLearningButton; + private System.Windows.Forms.Button showSolutionButton; + private System.Windows.Forms.TextBox learningRateBox; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.TextBox explorationRateBox; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.TextBox iterationsBox; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.TextBox goalRewardBox; + private System.Windows.Forms.Label label9; + private System.Windows.Forms.TextBox wallRewardBox; + private System.Windows.Forms.Label label8; + private System.Windows.Forms.TextBox moveRewardBox; + private System.Windows.Forms.Label label7; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.ComboBox algorithmCombo; + private System.Windows.Forms.Label label10; + } +} + diff --git a/Samples/MachineLearning/Animat/MainForm.cs b/Samples/MachineLearning/Animat/MainForm.cs new file mode 100644 index 00000000..52136728 --- /dev/null +++ b/Samples/MachineLearning/Animat/MainForm.cs @@ -0,0 +1,637 @@ +// Animat sample application +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2006-2011 +// contacts@aforgenet.com +// + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; +using System.IO; +using System.Threading; + +using AForge.MachineLearning; + +namespace Animat +{ + public partial class MainForm : Form + { + // map and its dimension + private int[,] map = null; + private int[,] mapToDisplay = null; + private int mapWidth; + private int mapHeight; + + // agent' start and stop position + private int agentStartX; + private int agentStartY; + private int agentStopX; + private int agentStopY; + + // flag to stop background job + private volatile bool needToStop = false; + + // worker thread + private Thread workerThread = null; + + // learning settings + int learningIterations = 100; + private double explorationRate = 0.5; + private double learningRate = 0.5; + + private double moveReward = 0; + private double wallReward = -1; + private double goalReward = 1; + + // Q-Learning algorithm + private QLearning qLearning = null; + // Sarsa algorithm + private Sarsa sarsa = null; + + // Form constructor + public MainForm( ) + { + InitializeComponent( ); + + // set world colors + cellWorld.Coloring = new Color[] { Color.White, Color.Green, Color.Black, Color.Red }; + + // show settings + ShowSettings( ); + algorithmCombo.SelectedIndex = 0; + } + + // Form is closing + private void MainForm_FormClosing( object sender, FormClosingEventArgs e ) + { + // check if worker thread is running + if ( ( workerThread != null ) && ( workerThread.IsAlive ) ) + { + needToStop = true; + while ( !workerThread.Join( 100 ) ) + Application.DoEvents( ); + } + } + + // Delegates to enable async calls for setting controls properties + private delegate void SetTextCallback( System.Windows.Forms.Control control, string text ); + + // Thread safe updating of control's text property + private void SetText( System.Windows.Forms.Control control, string text ) + { + if ( control.InvokeRequired ) + { + SetTextCallback d = new SetTextCallback( SetText ); + Invoke( d, new object[] { control, text } ); + } + else + { + control.Text = text; + } + } + + // Delegates to enable async calls for setting controls properties + private delegate void EnableCallback( bool enable ); + + // Enable/disale controls (safe for threading) + private void EnableControls( bool enable ) + { + if ( InvokeRequired ) + { + EnableCallback d = new EnableCallback( EnableControls ); + Invoke( d, new object[] { enable } ); + } + else + { + loadButton.Enabled = enable; + + algorithmCombo.Enabled = enable; + explorationRateBox.Enabled = enable; + learningRateBox.Enabled = enable; + iterationsBox.Enabled = enable; + + moveRewardBox.Enabled = enable; + wallRewardBox.Enabled = enable; + goalRewardBox.Enabled = enable; + + startLearningButton.Enabled = enable; + showSolutionButton.Enabled = enable; + stopButton.Enabled = !enable; + } + } + + // Show settings + private void ShowSettings( ) + { + explorationRateBox.Text = explorationRate.ToString( ); + learningRateBox.Text = learningRate.ToString( ); + iterationsBox.Text = learningIterations.ToString( ); + + moveRewardBox.Text = moveReward.ToString( ); + wallRewardBox.Text = wallReward.ToString( ); + goalRewardBox.Text = goalReward.ToString( ); + } + + // Get settings + private void GetSettings( ) + { + // explortion rate + try + { + explorationRate = Math.Max( 0.0, Math.Min( 1.0, double.Parse( explorationRateBox.Text ) ) ); + } + catch + { + explorationRate = 0.5; + } + // learning rate + try + { + learningRate = Math.Max( 0.0, Math.Min( 1.0, double.Parse( learningRateBox.Text ) ) ); + } + catch + { + learningRate = 0.5; + } + // learning iterations + try + { + learningIterations = Math.Max( 10, Math.Min( 100000, int.Parse( iterationsBox.Text ) ) ); + } + catch + { + learningIterations = 100; + } + + // move reward + try + { + moveReward = Math.Max( -100, Math.Min( 100, double.Parse( moveRewardBox.Text ) ) ); + } + catch + { + moveReward = 0; + } + // wall reward + try + { + wallReward = Math.Max( -100, Math.Min( 100, double.Parse( wallRewardBox.Text ) ) ); + } + catch + { + wallReward = -1; + } + // goal reward + try + { + goalReward = Math.Max( -100, Math.Min( 100, double.Parse( goalRewardBox.Text ) ) ); + } + catch + { + goalReward = 1; + } + } + + // On "Load" button click + private void loadButton_Click( object sender, EventArgs e ) + { + // show file selection dialog + if ( openFileDialog.ShowDialog( ) == DialogResult.OK ) + { + StreamReader reader = null; + + try + { + // open selected file + reader = File.OpenText( openFileDialog.FileName ); + string str = null; + // line counter + int lines = 0; + int j = 0; + + // read the file + while ( ( str = reader.ReadLine( ) ) != null ) + { + str = str.Trim( ); + + // skip comments and empty lines + if ( ( str == string.Empty ) || ( str[0] == ';' ) || ( str[0] == '\0' ) ) + continue; + + // split the string + string[] strs = str.Split( ' ' ); + + // check the line + if ( lines == 0 ) + { + // get world size + mapWidth = int.Parse( strs[0] ); + mapHeight = int.Parse( strs[1] ); + map = new int[mapHeight, mapWidth]; + } + else if ( lines == 1 ) + { + // get agents count + if ( int.Parse( strs[0] ) != 1 ) + { + MessageBox.Show( "The application supports only 1 agent in the worlds", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error ); + break; + } + } + else if ( lines == 2 ) + { + // agent position + agentStartX = int.Parse( strs[0] ); + agentStartY = int.Parse( strs[1] ); + agentStopX = int.Parse( strs[2] ); + agentStopY = int.Parse( strs[3] ); + + // check position + if ( + ( agentStartX < 0 ) || ( agentStartX >= mapWidth ) || + ( agentStartY < 0 ) || ( agentStartY >= mapHeight ) || + ( agentStopX < 0 ) || ( agentStopX >= mapWidth ) || + ( agentStopY < 0 ) || ( agentStopY >= mapHeight ) + ) + { + MessageBox.Show( "Agent's start and stop coordinates should be inside the world area ", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error ); + break; + } + } + else if ( lines > 2 ) + { + // map lines + if ( j < mapHeight ) + { + for ( int i = 0; i < mapWidth; i++ ) + { + map[j, i] = int.Parse( strs[i] ); + if ( map[j, i] > 1 ) + map[j, i] = 1; + } + j++; + } + } + lines++; + } + + // set world's map + mapToDisplay = (int[,]) map.Clone( ); + mapToDisplay[agentStartY, agentStartX] = 2; + mapToDisplay[agentStopY, agentStopX] = 3; + cellWorld.Map = mapToDisplay; + + // show world's size + worldSizeBox.Text = string.Format( "{0} x {1}", mapWidth, mapHeight ); + + // enable learning button + startLearningButton.Enabled = true; + } + catch ( Exception ) + { + MessageBox.Show( "Failed reading the map file", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error ); + return; + } + finally + { + // close file + if ( reader != null ) + reader.Close( ); + } + } + } + + // On "Start" learning button click + private void startLearningButton_Click( object sender, EventArgs e ) + { + // get settings + GetSettings( ); + ShowSettings( ); + + iterationBox.Text = string.Empty; + + // destroy algorithms + qLearning = null; + sarsa = null; + + if ( algorithmCombo.SelectedIndex == 0 ) + { + // create new QLearning algorithm's instance + qLearning = new QLearning( 256, 4, new TabuSearchExploration( 4, new EpsilonGreedyExploration( explorationRate ) ) ); + workerThread = new Thread( new ThreadStart( QLearningThread ) ); + } + else + { + // create new Sarsa algorithm's instance + sarsa = new Sarsa( 256, 4, new TabuSearchExploration( 4, new EpsilonGreedyExploration( explorationRate ) ) ); + workerThread = new Thread( new ThreadStart( SarsaThread ) ); + } + + // disable all settings controls except "Stop" button + EnableControls( false ); + + // run worker thread + needToStop = false; + workerThread.Start( ); + } + + // On "Stop" button click + private void stopButton_Click( object sender, EventArgs e ) + { + if ( workerThread != null ) + { + // stop worker thread + needToStop = true; + while ( !workerThread.Join( 100 ) ) + Application.DoEvents( ); + workerThread = null; + } + } + + // On "Show Solution" button + private void showSolutionButton_Click( object sender, EventArgs e ) + { + // check if learning algorithm was run before + if ( ( qLearning == null ) && ( sarsa == null ) ) + return; + + // disable all settings controls except "Stop" button + EnableControls( false ); + + // run worker thread + needToStop = false; + workerThread = new Thread( new ThreadStart( ShowSolutionThread ) ); + workerThread.Start( ); + } + + // Q-Learning thread + private void QLearningThread( ) + { + int iteration = 0; + // curent coordinates of the agent + int agentCurrentX, agentCurrentY; + // exploration policy + TabuSearchExploration tabuPolicy = (TabuSearchExploration) qLearning.ExplorationPolicy; + EpsilonGreedyExploration explorationPolicy = (EpsilonGreedyExploration) tabuPolicy.BasePolicy; + + // loop + while ( ( !needToStop ) && ( iteration < learningIterations ) ) + { + // set exploration rate for this iteration + explorationPolicy.Epsilon = explorationRate - ( (double) iteration / learningIterations ) * explorationRate; + // set learning rate for this iteration + qLearning.LearningRate = learningRate - ( (double) iteration / learningIterations ) * learningRate; + // clear tabu list + tabuPolicy.ResetTabuList( ); + + // reset agent's coordinates to the starting position + agentCurrentX = agentStartX; + agentCurrentY = agentStartY; + + // steps performed by agent to get to the goal + int steps = 0; + + while ( ( !needToStop ) && ( ( agentCurrentX != agentStopX ) || ( agentCurrentY != agentStopY ) ) ) + { + steps++; + // get agent's current state + int currentState = GetStateNumber( agentCurrentX, agentCurrentY ); + // get the action for this state + int action = qLearning.GetAction( currentState ); + // update agent's current position and get his reward + double reward = UpdateAgentPosition( ref agentCurrentX, ref agentCurrentY, action ); + // get agent's next state + int nextState = GetStateNumber( agentCurrentX, agentCurrentY ); + // do learning of the agent - update his Q-function + qLearning.UpdateState( currentState, action, reward, nextState ); + + // set tabu action + tabuPolicy.SetTabuAction( ( action + 2 ) % 4, 1 ); + } + + System.Diagnostics.Debug.WriteLine( steps ); + + iteration++; + + // show current iteration + SetText( iterationBox, iteration.ToString( ) ); + } + + // enable settings controls + EnableControls( true ); + } + + // Sarsa thread + private void SarsaThread( ) + { + int iteration = 0; + // curent coordinates of the agent + int agentCurrentX, agentCurrentY; + // exploration policy + TabuSearchExploration tabuPolicy = (TabuSearchExploration) sarsa.ExplorationPolicy; + EpsilonGreedyExploration explorationPolicy = (EpsilonGreedyExploration) tabuPolicy.BasePolicy; + + // loop + while ( ( !needToStop ) && ( iteration < learningIterations ) ) + { + // set exploration rate for this iteration + explorationPolicy.Epsilon = explorationRate - ( (double) iteration / learningIterations ) * explorationRate; + // set learning rate for this iteration + sarsa.LearningRate = learningRate - ( (double) iteration / learningIterations ) * learningRate; + // clear tabu list + tabuPolicy.ResetTabuList( ); + + // reset agent's coordinates to the starting position + agentCurrentX = agentStartX; + agentCurrentY = agentStartY; + + // steps performed by agent to get to the goal + int steps = 1; + // previous state and action + int previousState = GetStateNumber( agentCurrentX, agentCurrentY ); + int previousAction = sarsa.GetAction( previousState ); + // update agent's current position and get his reward + double reward = UpdateAgentPosition( ref agentCurrentX, ref agentCurrentY, previousAction ); + + while ( ( !needToStop ) && ( ( agentCurrentX != agentStopX ) || ( agentCurrentY != agentStopY ) ) ) + { + steps++; + + // set tabu action + tabuPolicy.SetTabuAction( ( previousAction + 2 ) % 4, 1 ); + + // get agent's next state + int nextState = GetStateNumber( agentCurrentX, agentCurrentY ); + // get agent's next action + int nextAction = sarsa.GetAction( nextState ); + // do learning of the agent - update his Q-function + sarsa.UpdateState( previousState, previousAction, reward, nextState, nextAction ); + + // update agent's new position and get his reward + reward = UpdateAgentPosition( ref agentCurrentX, ref agentCurrentY, nextAction ); + + previousState = nextState; + previousAction = nextAction; + } + + if ( !needToStop ) + { + // update Q-function if terminal state was reached + sarsa.UpdateState( previousState, previousAction, reward ); + } + + System.Diagnostics.Debug.WriteLine( steps ); + + iteration++; + + // show current iteration + SetText( iterationBox, iteration.ToString( ) ); + } + + // enable settings controls + EnableControls( true ); + } + + // Show solution thread + private void ShowSolutionThread( ) + { + // set exploration rate to 0, so agent uses only what he learnt + TabuSearchExploration tabuPolicy = null; + EpsilonGreedyExploration exploratioPolicy = null; + + if ( qLearning != null ) + tabuPolicy = (TabuSearchExploration) qLearning.ExplorationPolicy; + else + tabuPolicy = (TabuSearchExploration) sarsa.ExplorationPolicy; + + exploratioPolicy = (EpsilonGreedyExploration) tabuPolicy.BasePolicy; + + exploratioPolicy.Epsilon = 0; + tabuPolicy.ResetTabuList( ); + + // curent coordinates of the agent + int agentCurrentX = agentStartX, agentCurrentY = agentStartY; + + // pripate the map to display + Array.Copy( map, mapToDisplay, mapWidth * mapHeight ); + mapToDisplay[agentStartY, agentStartX] = 2; + mapToDisplay[agentStopY, agentStopX] = 3; + + while ( !needToStop ) + { + // dispay the map + cellWorld.Map = mapToDisplay; + // sleep for a while + Thread.Sleep( 200 ); + + // check if we have reached the end point + if ( ( agentCurrentX == agentStopX ) && ( agentCurrentY == agentStopY ) ) + { + // restore the map + mapToDisplay[agentStartY, agentStartX] = 2; + mapToDisplay[agentStopY, agentStopX] = 3; + + agentCurrentX = agentStartX; + agentCurrentY = agentStartY; + + cellWorld.Map = mapToDisplay; + Thread.Sleep( 200 ); + } + + // remove agent from current position + mapToDisplay[agentCurrentY, agentCurrentX] = 0; + + // get agent's current state + int currentState = GetStateNumber( agentCurrentX, agentCurrentY ); + // get the action for this state + int action = ( qLearning != null ) ? qLearning.GetAction( currentState ) : sarsa.GetAction( currentState ); + // update agent's current position and get his reward + double reward = UpdateAgentPosition( ref agentCurrentX, ref agentCurrentY, action ); + + // put agent to the new position + mapToDisplay[agentCurrentY, agentCurrentX] = 2; + } + + // enable settings controls + EnableControls( true ); + } + + // Update agent position and return reward for the move + private double UpdateAgentPosition( ref int currentX, ref int currentY, int action ) + { + // default reward is equal to moving reward + double reward = moveReward; + // moving direction + int dx = 0, dy = 0; + + switch ( action ) + { + case 0: // go to north (up) + dy = -1; + break; + case 1: // go to east (right) + dx = 1; + break; + case 2: // go to south (down) + dy = 1; + break; + case 3: // go to west (left) + dx = -1; + break; + } + + int newX = currentX + dx; + int newY = currentY + dy; + + // check new agent's coordinates + if ( + ( map[newY, newX] != 0 ) || + ( newX < 0 ) || ( newX >= mapWidth ) || + ( newY < 0 ) || ( newY >= mapHeight ) + ) + { + // we found a wall or got outside of the world + reward = wallReward; + } + else + { + currentX = newX; + currentY = newY; + + // check if we found the goal + if ( ( currentX == agentStopX ) && ( currentY == agentStopY ) ) + reward = goalReward; + } + + return reward; + } + + // Get state number from agent's receptors in the specified position + private int GetStateNumber( int x, int y ) + { + int c1 = ( map[y - 1, x - 1] != 0 ) ? 1 : 0; + int c2 = ( map[y - 1, x] != 0 ) ? 1 : 0; + int c3 = ( map[y - 1, x + 1] != 0 ) ? 1 : 0; + int c4 = ( map[y, x + 1] != 0 ) ? 1 : 0; + int c5 = ( map[y + 1, x + 1] != 0 ) ? 1 : 0; + int c6 = ( map[y + 1, x] != 0 ) ? 1 : 0; + int c7 = ( map[y + 1, x - 1] != 0 ) ? 1 : 0; + int c8 = ( map[y, x - 1] != 0 ) ? 1 : 0; + + return c1 | + ( c2 << 1 ) | + ( c3 << 2 ) | + ( c4 << 3 ) | + ( c5 << 4 ) | + ( c6 << 5 ) | + ( c7 << 6 ) | + ( c8 << 7 ); + } + } +} \ No newline at end of file diff --git a/Samples/MachineLearning/Animat/MainForm.resx b/Samples/MachineLearning/Animat/MainForm.resx new file mode 100644 index 00000000..f901ebb7 --- /dev/null +++ b/Samples/MachineLearning/Animat/MainForm.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + \ No newline at end of file diff --git a/Samples/MachineLearning/Animat/Program.cs b/Samples/MachineLearning/Animat/Program.cs new file mode 100644 index 00000000..93b991e4 --- /dev/null +++ b/Samples/MachineLearning/Animat/Program.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Windows.Forms; + +namespace Animat +{ + static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main( ) + { + Application.EnableVisualStyles( ); + Application.SetCompatibleTextRenderingDefault( false ); + Application.Run( new MainForm( ) ); + } + } +} \ No newline at end of file diff --git a/Samples/MachineLearning/Animat/Properties/AssemblyInfo.cs b/Samples/MachineLearning/Animat/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..99502c8c --- /dev/null +++ b/Samples/MachineLearning/Animat/Properties/AssemblyInfo.cs @@ -0,0 +1,33 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle( "Machine Learning Animat" )] +[assembly: AssemblyDescription( "Machine Learning Animat sample" )] +[assembly: AssemblyConfiguration( "" )] +[assembly: AssemblyCompany( "AForge" )] +[assembly: AssemblyProduct( "AForge.NET" )] +[assembly: AssemblyCopyright( "AForge © 2008" )] +[assembly: AssemblyTrademark( "" )] +[assembly: AssemblyCulture( "" )] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible( false )] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid( "072ee388-941b-4c71-bec5-58622a68210c" )] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +[assembly: AssemblyVersion( "2.0.0.0" )] +[assembly: AssemblyFileVersion( "2.0.0.0" )] diff --git a/Samples/MachineLearning/Animat/Properties/Resources.Designer.cs b/Samples/MachineLearning/Animat/Properties/Resources.Designer.cs new file mode 100644 index 00000000..f293e696 --- /dev/null +++ b/Samples/MachineLearning/Animat/Properties/Resources.Designer.cs @@ -0,0 +1,63 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.1433 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Animat.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Animat.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + } +} diff --git a/Samples/MachineLearning/Animat/Properties/Resources.resx b/Samples/MachineLearning/Animat/Properties/Resources.resx new file mode 100644 index 00000000..25a61211 --- /dev/null +++ b/Samples/MachineLearning/Animat/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Samples/MachineLearning/Animat/Properties/Settings.Designer.cs b/Samples/MachineLearning/Animat/Properties/Settings.Designer.cs new file mode 100644 index 00000000..dcd7913a --- /dev/null +++ b/Samples/MachineLearning/Animat/Properties/Settings.Designer.cs @@ -0,0 +1,26 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.1433 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Animat.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "9.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + } +} diff --git a/Samples/MachineLearning/Animat/Properties/Settings.settings b/Samples/MachineLearning/Animat/Properties/Settings.settings new file mode 100644 index 00000000..39645652 --- /dev/null +++ b/Samples/MachineLearning/Animat/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Samples/Math/Pose Estimation 2/MainForm.Designer.cs b/Samples/Math/Pose Estimation 2/MainForm.Designer.cs new file mode 100644 index 00000000..09e8261b --- /dev/null +++ b/Samples/Math/Pose Estimation 2/MainForm.Designer.cs @@ -0,0 +1,905 @@ +namespace PoseEstimation +{ + partial class MainForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose( bool disposing ) + { + if ( disposing && ( components != null ) ) + { + components.Dispose( ); + } + base.Dispose( disposing ); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent( ) + { + this.components = new System.ComponentModel.Container( ); + this.mainPanel = new System.Windows.Forms.Panel( ); + this.groupBox1 = new System.Windows.Forms.GroupBox( ); + this.label7 = new System.Windows.Forms.Label( ); + this.label6 = new System.Windows.Forms.Label( ); + this.label5 = new System.Windows.Forms.Label( ); + this.pictureBox = new System.Windows.Forms.PictureBox( ); + this.mainMenu = new System.Windows.Forms.MenuStrip( ); + this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem( ); + this.openImageToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem( ); + this.toolStripMenuItem2 = new System.Windows.Forms.ToolStripSeparator( ); + this.openSample1ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem( ); + this.openSample2ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem( ); + this.openSample3ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem( ); + this.openSample4ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem( ); + this.openSample5ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem( ); + this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripSeparator( ); + this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem( ); + this.openFileDialog = new System.Windows.Forms.OpenFileDialog( ); + this.panel1 = new System.Windows.Forms.Panel( ); + this.poseGroupBox = new System.Windows.Forms.GroupBox( ); + this.alternatePoseButton = new System.Windows.Forms.Button( ); + this.bestPoseButton = new System.Windows.Forms.Button( ); + this.focalLengthBox = new System.Windows.Forms.TextBox( ); + this.focalLengthLabel = new System.Windows.Forms.Label( ); + this.copositRadio = new System.Windows.Forms.RadioButton( ); + this.positRadio = new System.Windows.Forms.RadioButton( ); + this.estimatePostButton = new System.Windows.Forms.Button( ); + this.estimatedTransformationMatrixControl = new PoseEstimation.MatrixControl( ); + this.modelPointsGroupBox = new System.Windows.Forms.GroupBox( ); + this.modelPoint4zBox = new System.Windows.Forms.TextBox( ); + this.modelPoint4yBox = new System.Windows.Forms.TextBox( ); + this.modelPoint4xBox = new System.Windows.Forms.TextBox( ); + this.modelPoint3zBox = new System.Windows.Forms.TextBox( ); + this.modelPoint3yBox = new System.Windows.Forms.TextBox( ); + this.modelPoint3xBox = new System.Windows.Forms.TextBox( ); + this.modelPoint2zBox = new System.Windows.Forms.TextBox( ); + this.modelPoint2yBox = new System.Windows.Forms.TextBox( ); + this.modelPoint2xBox = new System.Windows.Forms.TextBox( ); + this.modelPoint1zBox = new System.Windows.Forms.TextBox( ); + this.modelPoint1yBox = new System.Windows.Forms.TextBox( ); + this.modelPoint1xBox = new System.Windows.Forms.TextBox( ); + this.modelPoint4Label = new System.Windows.Forms.Label( ); + this.modelPoint1Label = new System.Windows.Forms.Label( ); + this.modelPoint3Label = new System.Windows.Forms.Label( ); + this.modelPoint2Label = new System.Windows.Forms.Label( ); + this.imagePointsGroupBox = new System.Windows.Forms.GroupBox( ); + this.imagePoint4ColorLabel = new System.Windows.Forms.Label( ); + this.imagePoint3ColorLabel = new System.Windows.Forms.Label( ); + this.imagePoint2ColorLabel = new System.Windows.Forms.Label( ); + this.imagePoint1ColorLabel = new System.Windows.Forms.Label( ); + this.locate4Button = new System.Windows.Forms.Button( ); + this.imagePoint4Box = new System.Windows.Forms.TextBox( ); + this.label4 = new System.Windows.Forms.Label( ); + this.locate3Button = new System.Windows.Forms.Button( ); + this.imagePoint3Box = new System.Windows.Forms.TextBox( ); + this.label3 = new System.Windows.Forms.Label( ); + this.locate2Button = new System.Windows.Forms.Button( ); + this.imagePoint2Box = new System.Windows.Forms.TextBox( ); + this.label2 = new System.Windows.Forms.Label( ); + this.locate1Button = new System.Windows.Forms.Button( ); + this.imagePoint1Box = new System.Windows.Forms.TextBox( ); + this.label1 = new System.Windows.Forms.Label( ); + this.statusStrip = new System.Windows.Forms.StatusStrip( ); + this.statusLabel = new System.Windows.Forms.ToolStripStatusLabel( ); + this.estimationLabel = new System.Windows.Forms.ToolStripStatusLabel( ); + this.imageSizeLabel = new System.Windows.Forms.ToolStripStatusLabel( ); + this.errorProvider = new System.Windows.Forms.ErrorProvider( this.components ); + this.toolTip = new System.Windows.Forms.ToolTip( this.components ); + this.mainPanel.SuspendLayout( ); + this.groupBox1.SuspendLayout( ); + ( (System.ComponentModel.ISupportInitialize) ( this.pictureBox ) ).BeginInit( ); + this.mainMenu.SuspendLayout( ); + this.panel1.SuspendLayout( ); + this.poseGroupBox.SuspendLayout( ); + this.modelPointsGroupBox.SuspendLayout( ); + this.imagePointsGroupBox.SuspendLayout( ); + this.statusStrip.SuspendLayout( ); + ( (System.ComponentModel.ISupportInitialize) ( this.errorProvider ) ).BeginInit( ); + this.SuspendLayout( ); + // + // mainPanel + // + this.mainPanel.Anchor = ( (System.Windows.Forms.AnchorStyles) ( ( ( ( System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom ) + | System.Windows.Forms.AnchorStyles.Left ) + | System.Windows.Forms.AnchorStyles.Right ) ) ); + this.mainPanel.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + this.mainPanel.Controls.Add( this.groupBox1 ); + this.mainPanel.Controls.Add( this.pictureBox ); + this.mainPanel.Location = new System.Drawing.Point( 0, 27 ); + this.mainPanel.Name = "mainPanel"; + this.mainPanel.Size = new System.Drawing.Size( 974, 478 ); + this.mainPanel.TabIndex = 1; + // + // groupBox1 + // + this.groupBox1.Controls.Add( this.label7 ); + this.groupBox1.Controls.Add( this.label6 ); + this.groupBox1.Controls.Add( this.label5 ); + this.groupBox1.ForeColor = System.Drawing.SystemColors.ControlText; + this.groupBox1.Location = new System.Drawing.Point( 10, 5 ); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size( 65, 85 ); + this.groupBox1.TabIndex = 1; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "Legend"; + // + // label7 + // + this.label7.AutoSize = true; + this.label7.Font = new System.Drawing.Font( "Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ( (byte) ( 204 ) ) ); + this.label7.ForeColor = System.Drawing.Color.Lime; + this.label7.Location = new System.Drawing.Point( 10, 60 ); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size( 41, 13 ); + this.label7.TabIndex = 2; + this.label7.Text = "Z axis"; + // + // label6 + // + this.label6.AutoSize = true; + this.label6.Font = new System.Drawing.Font( "Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ( (byte) ( 204 ) ) ); + this.label6.ForeColor = System.Drawing.Color.Red; + this.label6.Location = new System.Drawing.Point( 10, 40 ); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size( 41, 13 ); + this.label6.TabIndex = 1; + this.label6.Text = "Y axis"; + // + // label5 + // + this.label5.AutoSize = true; + this.label5.Font = new System.Drawing.Font( "Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ( (byte) ( 204 ) ) ); + this.label5.ForeColor = System.Drawing.Color.Blue; + this.label5.Location = new System.Drawing.Point( 10, 20 ); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size( 41, 13 ); + this.label5.TabIndex = 0; + this.label5.Text = "X axis"; + // + // pictureBox + // + this.pictureBox.BackColor = System.Drawing.SystemColors.ControlDark; + this.pictureBox.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.pictureBox.Location = new System.Drawing.Point( 299, 128 ); + this.pictureBox.Name = "pictureBox"; + this.pictureBox.Size = new System.Drawing.Size( 320, 240 ); + this.pictureBox.TabIndex = 0; + this.pictureBox.TabStop = false; + this.pictureBox.MouseMove += new System.Windows.Forms.MouseEventHandler( this.pictureBox_MouseMove ); + this.pictureBox.MouseClick += new System.Windows.Forms.MouseEventHandler( this.pictureBox_MouseClick ); + this.pictureBox.Paint += new System.Windows.Forms.PaintEventHandler( this.pictureBox_Paint ); + // + // mainMenu + // + this.mainMenu.Items.AddRange( new System.Windows.Forms.ToolStripItem[] { + this.fileToolStripMenuItem} ); + this.mainMenu.Location = new System.Drawing.Point( 0, 0 ); + this.mainMenu.Name = "mainMenu"; + this.mainMenu.Size = new System.Drawing.Size( 974, 24 ); + this.mainMenu.TabIndex = 0; + // + // fileToolStripMenuItem + // + this.fileToolStripMenuItem.DropDownItems.AddRange( new System.Windows.Forms.ToolStripItem[] { + this.openImageToolStripMenuItem, + this.toolStripMenuItem2, + this.openSample1ToolStripMenuItem, + this.openSample2ToolStripMenuItem, + this.openSample3ToolStripMenuItem, + this.openSample4ToolStripMenuItem, + this.openSample5ToolStripMenuItem, + this.toolStripMenuItem1, + this.exitToolStripMenuItem} ); + this.fileToolStripMenuItem.Name = "fileToolStripMenuItem"; + this.fileToolStripMenuItem.Size = new System.Drawing.Size( 37, 20 ); + this.fileToolStripMenuItem.Text = "&File"; + // + // openImageToolStripMenuItem + // + this.openImageToolStripMenuItem.Name = "openImageToolStripMenuItem"; + this.openImageToolStripMenuItem.ShortcutKeys = ( (System.Windows.Forms.Keys) ( ( System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.O ) ) ); + this.openImageToolStripMenuItem.Size = new System.Drawing.Size( 193, 22 ); + this.openImageToolStripMenuItem.Text = "&Open image"; + this.openImageToolStripMenuItem.Click += new System.EventHandler( this.openImageToolStripMenuItem_Click ); + // + // toolStripMenuItem2 + // + this.toolStripMenuItem2.Name = "toolStripMenuItem2"; + this.toolStripMenuItem2.Size = new System.Drawing.Size( 190, 6 ); + // + // openSample1ToolStripMenuItem + // + this.openSample1ToolStripMenuItem.Name = "openSample1ToolStripMenuItem"; + this.openSample1ToolStripMenuItem.ShortcutKeys = ( (System.Windows.Forms.Keys) ( ( System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.D1 ) ) ); + this.openSample1ToolStripMenuItem.Size = new System.Drawing.Size( 193, 22 ); + this.openSample1ToolStripMenuItem.Tag = "0"; + this.openSample1ToolStripMenuItem.Text = "Open sample &1"; + this.openSample1ToolStripMenuItem.Click += new System.EventHandler( this.openSampleToolStripMenuItem_Click ); + // + // openSample2ToolStripMenuItem + // + this.openSample2ToolStripMenuItem.Name = "openSample2ToolStripMenuItem"; + this.openSample2ToolStripMenuItem.ShortcutKeys = ( (System.Windows.Forms.Keys) ( ( System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.D2 ) ) ); + this.openSample2ToolStripMenuItem.Size = new System.Drawing.Size( 193, 22 ); + this.openSample2ToolStripMenuItem.Tag = "1"; + this.openSample2ToolStripMenuItem.Text = "Open sample &2"; + this.openSample2ToolStripMenuItem.Click += new System.EventHandler( this.openSampleToolStripMenuItem_Click ); + // + // openSample3ToolStripMenuItem + // + this.openSample3ToolStripMenuItem.Name = "openSample3ToolStripMenuItem"; + this.openSample3ToolStripMenuItem.ShortcutKeys = ( (System.Windows.Forms.Keys) ( ( System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.D3 ) ) ); + this.openSample3ToolStripMenuItem.Size = new System.Drawing.Size( 193, 22 ); + this.openSample3ToolStripMenuItem.Tag = "2"; + this.openSample3ToolStripMenuItem.Text = "Open sample &3"; + this.openSample3ToolStripMenuItem.Click += new System.EventHandler( this.openSampleToolStripMenuItem_Click ); + // + // openSample4ToolStripMenuItem + // + this.openSample4ToolStripMenuItem.Name = "openSample4ToolStripMenuItem"; + this.openSample4ToolStripMenuItem.ShortcutKeys = ( (System.Windows.Forms.Keys) ( ( System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.D4 ) ) ); + this.openSample4ToolStripMenuItem.Size = new System.Drawing.Size( 193, 22 ); + this.openSample4ToolStripMenuItem.Tag = "3"; + this.openSample4ToolStripMenuItem.Text = "Open sample &4"; + this.openSample4ToolStripMenuItem.Click += new System.EventHandler( this.openSampleToolStripMenuItem_Click ); + // + // openSample5ToolStripMenuItem + // + this.openSample5ToolStripMenuItem.Name = "openSample5ToolStripMenuItem"; + this.openSample5ToolStripMenuItem.ShortcutKeys = ( (System.Windows.Forms.Keys) ( ( System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.D5 ) ) ); + this.openSample5ToolStripMenuItem.Size = new System.Drawing.Size( 193, 22 ); + this.openSample5ToolStripMenuItem.Tag = "4"; + this.openSample5ToolStripMenuItem.Text = "Open sample &5"; + this.openSample5ToolStripMenuItem.Click += new System.EventHandler( this.openSampleToolStripMenuItem_Click ); + // + // toolStripMenuItem1 + // + this.toolStripMenuItem1.Name = "toolStripMenuItem1"; + this.toolStripMenuItem1.Size = new System.Drawing.Size( 190, 6 ); + // + // exitToolStripMenuItem + // + this.exitToolStripMenuItem.Name = "exitToolStripMenuItem"; + this.exitToolStripMenuItem.Size = new System.Drawing.Size( 193, 22 ); + this.exitToolStripMenuItem.Text = "E&xit"; + this.exitToolStripMenuItem.Click += new System.EventHandler( this.exitToolStripMenuItem_Click ); + // + // openFileDialog + // + this.openFileDialog.Filter = "Image files (*.jpg, *.bmp, *.png)|*.jpg; *.bmp; *.png"; + this.openFileDialog.Title = "Select a image file"; + // + // panel1 + // + this.panel1.Anchor = ( (System.Windows.Forms.AnchorStyles) ( ( ( System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left ) + | System.Windows.Forms.AnchorStyles.Right ) ) ); + this.panel1.Controls.Add( this.poseGroupBox ); + this.panel1.Controls.Add( this.modelPointsGroupBox ); + this.panel1.Controls.Add( this.imagePointsGroupBox ); + this.panel1.Location = new System.Drawing.Point( 0, 511 ); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size( 974, 130 ); + this.panel1.TabIndex = 2; + // + // poseGroupBox + // + this.poseGroupBox.Anchor = ( (System.Windows.Forms.AnchorStyles) ( ( ( ( System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom ) + | System.Windows.Forms.AnchorStyles.Left ) + | System.Windows.Forms.AnchorStyles.Right ) ) ); + this.poseGroupBox.Controls.Add( this.alternatePoseButton ); + this.poseGroupBox.Controls.Add( this.bestPoseButton ); + this.poseGroupBox.Controls.Add( this.focalLengthBox ); + this.poseGroupBox.Controls.Add( this.focalLengthLabel ); + this.poseGroupBox.Controls.Add( this.copositRadio ); + this.poseGroupBox.Controls.Add( this.positRadio ); + this.poseGroupBox.Controls.Add( this.estimatePostButton ); + this.poseGroupBox.Controls.Add( this.estimatedTransformationMatrixControl ); + this.poseGroupBox.Location = new System.Drawing.Point( 530, 0 ); + this.poseGroupBox.Name = "poseGroupBox"; + this.poseGroupBox.Size = new System.Drawing.Size( 432, 127 ); + this.poseGroupBox.TabIndex = 2; + this.poseGroupBox.TabStop = false; + this.poseGroupBox.Text = "Pose estimation"; + // + // alternatePoseButton + // + this.alternatePoseButton.Location = new System.Drawing.Point( 345, 7 ); + this.alternatePoseButton.Name = "alternatePoseButton"; + this.alternatePoseButton.Size = new System.Drawing.Size( 20, 20 ); + this.alternatePoseButton.TabIndex = 2; + this.alternatePoseButton.Text = "&A"; + this.toolTip.SetToolTip( this.alternatePoseButton, "Select alternate CoPOSIT estimation" ); + this.alternatePoseButton.UseVisualStyleBackColor = true; + this.alternatePoseButton.Click += new System.EventHandler( this.alternatePoseButton_Click ); + // + // bestPoseButton + // + this.bestPoseButton.Location = new System.Drawing.Point( 320, 7 ); + this.bestPoseButton.Name = "bestPoseButton"; + this.bestPoseButton.Size = new System.Drawing.Size( 20, 20 ); + this.bestPoseButton.TabIndex = 1; + this.bestPoseButton.Text = "&B"; + this.toolTip.SetToolTip( this.bestPoseButton, "Select best CoPOSIT estimation" ); + this.bestPoseButton.UseVisualStyleBackColor = true; + this.bestPoseButton.Click += new System.EventHandler( this.bestPoseButton_Click ); + // + // focalLengthBox + // + this.focalLengthBox.Location = new System.Drawing.Point( 95, 50 ); + this.focalLengthBox.Name = "focalLengthBox"; + this.focalLengthBox.Size = new System.Drawing.Size( 85, 20 ); + this.focalLengthBox.TabIndex = 4; + this.focalLengthBox.Leave += new System.EventHandler( this.focalLengthBox_Leave ); + // + // focalLengthLabel + // + this.focalLengthLabel.AutoSize = true; + this.focalLengthLabel.Location = new System.Drawing.Point( 10, 53 ); + this.focalLengthLabel.Name = "focalLengthLabel"; + this.focalLengthLabel.Size = new System.Drawing.Size( 68, 13 ); + this.focalLengthLabel.TabIndex = 3; + this.focalLengthLabel.Text = "Focal length:"; + this.toolTip.SetToolTip( this.focalLengthLabel, "Effective Focal Length" ); + // + // copositRadio + // + this.copositRadio.AutoSize = true; + this.copositRadio.Location = new System.Drawing.Point( 80, 23 ); + this.copositRadio.Name = "copositRadio"; + this.copositRadio.Size = new System.Drawing.Size( 102, 17 ); + this.copositRadio.TabIndex = 2; + this.copositRadio.TabStop = true; + this.copositRadio.Text = "Coplanar POSIT"; + this.copositRadio.UseVisualStyleBackColor = true; + this.copositRadio.CheckedChanged += new System.EventHandler( this.copositRadio_CheckedChanged ); + // + // positRadio + // + this.positRadio.AutoSize = true; + this.positRadio.Location = new System.Drawing.Point( 10, 23 ); + this.positRadio.Name = "positRadio"; + this.positRadio.Size = new System.Drawing.Size( 57, 17 ); + this.positRadio.TabIndex = 1; + this.positRadio.TabStop = true; + this.positRadio.Text = "POSIT"; + this.positRadio.UseVisualStyleBackColor = true; + // + // estimatePostButton + // + this.estimatePostButton.Location = new System.Drawing.Point( 105, 93 ); + this.estimatePostButton.Name = "estimatePostButton"; + this.estimatePostButton.Size = new System.Drawing.Size( 75, 23 ); + this.estimatePostButton.TabIndex = 0; + this.estimatePostButton.Text = "&Estimate"; + this.estimatePostButton.UseVisualStyleBackColor = true; + this.estimatePostButton.Click += new System.EventHandler( this.estimatePostButton_Click ); + // + // estimatedTransformationMatrixControl + // + this.estimatedTransformationMatrixControl.Location = new System.Drawing.Point( 190, 10 ); + this.estimatedTransformationMatrixControl.Name = "estimatedTransformationMatrixControl"; + this.estimatedTransformationMatrixControl.Size = new System.Drawing.Size( 230, 110 ); + this.estimatedTransformationMatrixControl.TabIndex = 5; + this.estimatedTransformationMatrixControl.Title = "Estimated transformation"; + // + // modelPointsGroupBox + // + this.modelPointsGroupBox.Anchor = ( (System.Windows.Forms.AnchorStyles) ( ( ( System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom ) + | System.Windows.Forms.AnchorStyles.Left ) ) ); + this.modelPointsGroupBox.Controls.Add( this.modelPoint4zBox ); + this.modelPointsGroupBox.Controls.Add( this.modelPoint4yBox ); + this.modelPointsGroupBox.Controls.Add( this.modelPoint4xBox ); + this.modelPointsGroupBox.Controls.Add( this.modelPoint3zBox ); + this.modelPointsGroupBox.Controls.Add( this.modelPoint3yBox ); + this.modelPointsGroupBox.Controls.Add( this.modelPoint3xBox ); + this.modelPointsGroupBox.Controls.Add( this.modelPoint2zBox ); + this.modelPointsGroupBox.Controls.Add( this.modelPoint2yBox ); + this.modelPointsGroupBox.Controls.Add( this.modelPoint2xBox ); + this.modelPointsGroupBox.Controls.Add( this.modelPoint1zBox ); + this.modelPointsGroupBox.Controls.Add( this.modelPoint1yBox ); + this.modelPointsGroupBox.Controls.Add( this.modelPoint1xBox ); + this.modelPointsGroupBox.Controls.Add( this.modelPoint4Label ); + this.modelPointsGroupBox.Controls.Add( this.modelPoint1Label ); + this.modelPointsGroupBox.Controls.Add( this.modelPoint3Label ); + this.modelPointsGroupBox.Controls.Add( this.modelPoint2Label ); + this.modelPointsGroupBox.Location = new System.Drawing.Point( 250, 0 ); + this.modelPointsGroupBox.Name = "modelPointsGroupBox"; + this.modelPointsGroupBox.Size = new System.Drawing.Size( 270, 127 ); + this.modelPointsGroupBox.TabIndex = 1; + this.modelPointsGroupBox.TabStop = false; + this.modelPointsGroupBox.Text = "Model coordinates (x, y, z)"; + // + // modelPoint4zBox + // + this.modelPoint4zBox.Location = new System.Drawing.Point( 200, 95 ); + this.modelPoint4zBox.Name = "modelPoint4zBox"; + this.modelPoint4zBox.Size = new System.Drawing.Size( 60, 20 ); + this.modelPoint4zBox.TabIndex = 15; + this.modelPoint4zBox.Tag = "32"; + this.modelPoint4zBox.Leave += new System.EventHandler( this.modelPointBox_Leave ); + // + // modelPoint4yBox + // + this.modelPoint4yBox.Location = new System.Drawing.Point( 135, 95 ); + this.modelPoint4yBox.Name = "modelPoint4yBox"; + this.modelPoint4yBox.Size = new System.Drawing.Size( 60, 20 ); + this.modelPoint4yBox.TabIndex = 14; + this.modelPoint4yBox.Tag = "31"; + this.modelPoint4yBox.Leave += new System.EventHandler( this.modelPointBox_Leave ); + // + // modelPoint4xBox + // + this.modelPoint4xBox.Location = new System.Drawing.Point( 70, 95 ); + this.modelPoint4xBox.Name = "modelPoint4xBox"; + this.modelPoint4xBox.Size = new System.Drawing.Size( 60, 20 ); + this.modelPoint4xBox.TabIndex = 13; + this.modelPoint4xBox.Tag = "30"; + this.modelPoint4xBox.Leave += new System.EventHandler( this.modelPointBox_Leave ); + // + // modelPoint3zBox + // + this.modelPoint3zBox.Location = new System.Drawing.Point( 200, 70 ); + this.modelPoint3zBox.Name = "modelPoint3zBox"; + this.modelPoint3zBox.Size = new System.Drawing.Size( 60, 20 ); + this.modelPoint3zBox.TabIndex = 11; + this.modelPoint3zBox.Tag = "22"; + this.modelPoint3zBox.Leave += new System.EventHandler( this.modelPointBox_Leave ); + // + // modelPoint3yBox + // + this.modelPoint3yBox.Location = new System.Drawing.Point( 135, 70 ); + this.modelPoint3yBox.Name = "modelPoint3yBox"; + this.modelPoint3yBox.Size = new System.Drawing.Size( 60, 20 ); + this.modelPoint3yBox.TabIndex = 10; + this.modelPoint3yBox.Tag = "21"; + this.modelPoint3yBox.Leave += new System.EventHandler( this.modelPointBox_Leave ); + // + // modelPoint3xBox + // + this.modelPoint3xBox.Location = new System.Drawing.Point( 70, 70 ); + this.modelPoint3xBox.Name = "modelPoint3xBox"; + this.modelPoint3xBox.Size = new System.Drawing.Size( 60, 20 ); + this.modelPoint3xBox.TabIndex = 9; + this.modelPoint3xBox.Tag = "20"; + this.modelPoint3xBox.Leave += new System.EventHandler( this.modelPointBox_Leave ); + // + // modelPoint2zBox + // + this.modelPoint2zBox.Location = new System.Drawing.Point( 200, 45 ); + this.modelPoint2zBox.Name = "modelPoint2zBox"; + this.modelPoint2zBox.Size = new System.Drawing.Size( 60, 20 ); + this.modelPoint2zBox.TabIndex = 7; + this.modelPoint2zBox.Tag = "12"; + this.modelPoint2zBox.Leave += new System.EventHandler( this.modelPointBox_Leave ); + // + // modelPoint2yBox + // + this.modelPoint2yBox.Location = new System.Drawing.Point( 135, 45 ); + this.modelPoint2yBox.Name = "modelPoint2yBox"; + this.modelPoint2yBox.Size = new System.Drawing.Size( 60, 20 ); + this.modelPoint2yBox.TabIndex = 6; + this.modelPoint2yBox.Tag = "11"; + this.modelPoint2yBox.Leave += new System.EventHandler( this.modelPointBox_Leave ); + // + // modelPoint2xBox + // + this.modelPoint2xBox.Location = new System.Drawing.Point( 70, 45 ); + this.modelPoint2xBox.Name = "modelPoint2xBox"; + this.modelPoint2xBox.Size = new System.Drawing.Size( 60, 20 ); + this.modelPoint2xBox.TabIndex = 5; + this.modelPoint2xBox.Tag = "10"; + this.modelPoint2xBox.Leave += new System.EventHandler( this.modelPointBox_Leave ); + // + // modelPoint1zBox + // + this.modelPoint1zBox.Location = new System.Drawing.Point( 200, 20 ); + this.modelPoint1zBox.Name = "modelPoint1zBox"; + this.modelPoint1zBox.Size = new System.Drawing.Size( 60, 20 ); + this.modelPoint1zBox.TabIndex = 3; + this.modelPoint1zBox.Tag = "2"; + this.modelPoint1zBox.Leave += new System.EventHandler( this.modelPointBox_Leave ); + // + // modelPoint1yBox + // + this.modelPoint1yBox.Location = new System.Drawing.Point( 135, 20 ); + this.modelPoint1yBox.Name = "modelPoint1yBox"; + this.modelPoint1yBox.Size = new System.Drawing.Size( 60, 20 ); + this.modelPoint1yBox.TabIndex = 2; + this.modelPoint1yBox.Tag = "1"; + this.modelPoint1yBox.Leave += new System.EventHandler( this.modelPointBox_Leave ); + // + // modelPoint1xBox + // + this.modelPoint1xBox.Location = new System.Drawing.Point( 70, 20 ); + this.modelPoint1xBox.Name = "modelPoint1xBox"; + this.modelPoint1xBox.Size = new System.Drawing.Size( 60, 20 ); + this.modelPoint1xBox.TabIndex = 1; + this.modelPoint1xBox.Tag = "0"; + this.modelPoint1xBox.Leave += new System.EventHandler( this.modelPointBox_Leave ); + // + // modelPoint4Label + // + this.modelPoint4Label.AutoSize = true; + this.modelPoint4Label.Location = new System.Drawing.Point( 10, 98 ); + this.modelPoint4Label.Name = "modelPoint4Label"; + this.modelPoint4Label.Size = new System.Drawing.Size( 43, 13 ); + this.modelPoint4Label.TabIndex = 12; + this.modelPoint4Label.Text = "Point 4:"; + // + // modelPoint1Label + // + this.modelPoint1Label.AutoSize = true; + this.modelPoint1Label.Location = new System.Drawing.Point( 10, 23 ); + this.modelPoint1Label.Name = "modelPoint1Label"; + this.modelPoint1Label.Size = new System.Drawing.Size( 43, 13 ); + this.modelPoint1Label.TabIndex = 0; + this.modelPoint1Label.Text = "Point 1:"; + // + // modelPoint3Label + // + this.modelPoint3Label.AutoSize = true; + this.modelPoint3Label.Location = new System.Drawing.Point( 10, 73 ); + this.modelPoint3Label.Name = "modelPoint3Label"; + this.modelPoint3Label.Size = new System.Drawing.Size( 43, 13 ); + this.modelPoint3Label.TabIndex = 8; + this.modelPoint3Label.Text = "Point 3:"; + // + // modelPoint2Label + // + this.modelPoint2Label.AutoSize = true; + this.modelPoint2Label.Location = new System.Drawing.Point( 10, 48 ); + this.modelPoint2Label.Name = "modelPoint2Label"; + this.modelPoint2Label.Size = new System.Drawing.Size( 43, 13 ); + this.modelPoint2Label.TabIndex = 4; + this.modelPoint2Label.Text = "Point 2:"; + // + // imagePointsGroupBox + // + this.imagePointsGroupBox.Anchor = ( (System.Windows.Forms.AnchorStyles) ( ( ( System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom ) + | System.Windows.Forms.AnchorStyles.Left ) ) ); + this.imagePointsGroupBox.Controls.Add( this.imagePoint4ColorLabel ); + this.imagePointsGroupBox.Controls.Add( this.imagePoint3ColorLabel ); + this.imagePointsGroupBox.Controls.Add( this.imagePoint2ColorLabel ); + this.imagePointsGroupBox.Controls.Add( this.imagePoint1ColorLabel ); + this.imagePointsGroupBox.Controls.Add( this.locate4Button ); + this.imagePointsGroupBox.Controls.Add( this.imagePoint4Box ); + this.imagePointsGroupBox.Controls.Add( this.label4 ); + this.imagePointsGroupBox.Controls.Add( this.locate3Button ); + this.imagePointsGroupBox.Controls.Add( this.imagePoint3Box ); + this.imagePointsGroupBox.Controls.Add( this.label3 ); + this.imagePointsGroupBox.Controls.Add( this.locate2Button ); + this.imagePointsGroupBox.Controls.Add( this.imagePoint2Box ); + this.imagePointsGroupBox.Controls.Add( this.label2 ); + this.imagePointsGroupBox.Controls.Add( this.locate1Button ); + this.imagePointsGroupBox.Controls.Add( this.imagePoint1Box ); + this.imagePointsGroupBox.Controls.Add( this.label1 ); + this.imagePointsGroupBox.Location = new System.Drawing.Point( 10, 0 ); + this.imagePointsGroupBox.Name = "imagePointsGroupBox"; + this.imagePointsGroupBox.Size = new System.Drawing.Size( 230, 127 ); + this.imagePointsGroupBox.TabIndex = 0; + this.imagePointsGroupBox.TabStop = false; + this.imagePointsGroupBox.Text = "Image coordinates (x, y)"; + // + // imagePoint4ColorLabel + // + this.imagePoint4ColorLabel.BackColor = System.Drawing.Color.Black; + this.imagePoint4ColorLabel.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.imagePoint4ColorLabel.Location = new System.Drawing.Point( 55, 115 ); + this.imagePoint4ColorLabel.Name = "imagePoint4ColorLabel"; + this.imagePoint4ColorLabel.Size = new System.Drawing.Size( 75, 4 ); + this.imagePoint4ColorLabel.TabIndex = 20; + // + // imagePoint3ColorLabel + // + this.imagePoint3ColorLabel.BackColor = System.Drawing.Color.Black; + this.imagePoint3ColorLabel.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.imagePoint3ColorLabel.Location = new System.Drawing.Point( 55, 90 ); + this.imagePoint3ColorLabel.Name = "imagePoint3ColorLabel"; + this.imagePoint3ColorLabel.Size = new System.Drawing.Size( 75, 4 ); + this.imagePoint3ColorLabel.TabIndex = 19; + // + // imagePoint2ColorLabel + // + this.imagePoint2ColorLabel.BackColor = System.Drawing.Color.Black; + this.imagePoint2ColorLabel.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.imagePoint2ColorLabel.Location = new System.Drawing.Point( 55, 65 ); + this.imagePoint2ColorLabel.Name = "imagePoint2ColorLabel"; + this.imagePoint2ColorLabel.Size = new System.Drawing.Size( 75, 4 ); + this.imagePoint2ColorLabel.TabIndex = 18; + // + // imagePoint1ColorLabel + // + this.imagePoint1ColorLabel.BackColor = System.Drawing.Color.Black; + this.imagePoint1ColorLabel.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.imagePoint1ColorLabel.Location = new System.Drawing.Point( 55, 40 ); + this.imagePoint1ColorLabel.Name = "imagePoint1ColorLabel"; + this.imagePoint1ColorLabel.Size = new System.Drawing.Size( 75, 4 ); + this.imagePoint1ColorLabel.TabIndex = 17; + // + // locate4Button + // + this.locate4Button.Location = new System.Drawing.Point( 140, 94 ); + this.locate4Button.Name = "locate4Button"; + this.locate4Button.Size = new System.Drawing.Size( 75, 23 ); + this.locate4Button.TabIndex = 11; + this.locate4Button.Tag = "3"; + this.locate4Button.Text = "Locate &4th"; + this.locate4Button.UseVisualStyleBackColor = true; + this.locate4Button.Click += new System.EventHandler( this.locatePointButton_Click ); + // + // imagePoint4Box + // + this.imagePoint4Box.Location = new System.Drawing.Point( 55, 95 ); + this.imagePoint4Box.Name = "imagePoint4Box"; + this.imagePoint4Box.ReadOnly = true; + this.imagePoint4Box.Size = new System.Drawing.Size( 75, 20 ); + this.imagePoint4Box.TabIndex = 10; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point( 10, 98 ); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size( 43, 13 ); + this.label4.TabIndex = 9; + this.label4.Text = "Point 4:"; + // + // locate3Button + // + this.locate3Button.Location = new System.Drawing.Point( 140, 69 ); + this.locate3Button.Name = "locate3Button"; + this.locate3Button.Size = new System.Drawing.Size( 75, 23 ); + this.locate3Button.TabIndex = 8; + this.locate3Button.Tag = "2"; + this.locate3Button.Text = "Locate &3rd"; + this.locate3Button.UseVisualStyleBackColor = true; + this.locate3Button.Click += new System.EventHandler( this.locatePointButton_Click ); + // + // imagePoint3Box + // + this.imagePoint3Box.Location = new System.Drawing.Point( 55, 70 ); + this.imagePoint3Box.Name = "imagePoint3Box"; + this.imagePoint3Box.ReadOnly = true; + this.imagePoint3Box.Size = new System.Drawing.Size( 75, 20 ); + this.imagePoint3Box.TabIndex = 7; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point( 10, 73 ); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size( 43, 13 ); + this.label3.TabIndex = 6; + this.label3.Text = "Point 3:"; + // + // locate2Button + // + this.locate2Button.Location = new System.Drawing.Point( 140, 44 ); + this.locate2Button.Name = "locate2Button"; + this.locate2Button.Size = new System.Drawing.Size( 75, 23 ); + this.locate2Button.TabIndex = 5; + this.locate2Button.Tag = "1"; + this.locate2Button.Text = "Locate &2nd"; + this.locate2Button.UseVisualStyleBackColor = true; + this.locate2Button.Click += new System.EventHandler( this.locatePointButton_Click ); + // + // imagePoint2Box + // + this.imagePoint2Box.Location = new System.Drawing.Point( 55, 45 ); + this.imagePoint2Box.Name = "imagePoint2Box"; + this.imagePoint2Box.ReadOnly = true; + this.imagePoint2Box.Size = new System.Drawing.Size( 75, 20 ); + this.imagePoint2Box.TabIndex = 4; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point( 10, 48 ); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size( 43, 13 ); + this.label2.TabIndex = 3; + this.label2.Text = "Point 2:"; + // + // locate1Button + // + this.locate1Button.Location = new System.Drawing.Point( 140, 19 ); + this.locate1Button.Name = "locate1Button"; + this.locate1Button.Size = new System.Drawing.Size( 75, 23 ); + this.locate1Button.TabIndex = 2; + this.locate1Button.Tag = "0"; + this.locate1Button.Text = "Locate &1st"; + this.locate1Button.UseVisualStyleBackColor = true; + this.locate1Button.Click += new System.EventHandler( this.locatePointButton_Click ); + // + // imagePoint1Box + // + this.imagePoint1Box.Location = new System.Drawing.Point( 55, 20 ); + this.imagePoint1Box.Name = "imagePoint1Box"; + this.imagePoint1Box.ReadOnly = true; + this.imagePoint1Box.Size = new System.Drawing.Size( 75, 20 ); + this.imagePoint1Box.TabIndex = 1; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point( 10, 23 ); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size( 43, 13 ); + this.label1.TabIndex = 0; + this.label1.Text = "Point 1:"; + // + // statusStrip + // + this.statusStrip.Items.AddRange( new System.Windows.Forms.ToolStripItem[] { + this.statusLabel, + this.estimationLabel, + this.imageSizeLabel} ); + this.statusStrip.Location = new System.Drawing.Point( 0, 644 ); + this.statusStrip.Name = "statusStrip"; + this.statusStrip.Size = new System.Drawing.Size( 974, 22 ); + this.statusStrip.TabIndex = 3; + // + // statusLabel + // + this.statusLabel.AutoSize = false; + this.statusLabel.BorderSides = ( (System.Windows.Forms.ToolStripStatusLabelBorderSides) ( ( ( ( System.Windows.Forms.ToolStripStatusLabelBorderSides.Left | System.Windows.Forms.ToolStripStatusLabelBorderSides.Top ) + | System.Windows.Forms.ToolStripStatusLabelBorderSides.Right ) + | System.Windows.Forms.ToolStripStatusLabelBorderSides.Bottom ) ) ); + this.statusLabel.BorderStyle = System.Windows.Forms.Border3DStyle.SunkenInner; + this.statusLabel.Name = "statusLabel"; + this.statusLabel.Size = new System.Drawing.Size( 300, 17 ); + this.statusLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // estimationLabel + // + this.estimationLabel.AutoSize = false; + this.estimationLabel.BorderSides = ( (System.Windows.Forms.ToolStripStatusLabelBorderSides) ( ( ( ( System.Windows.Forms.ToolStripStatusLabelBorderSides.Left | System.Windows.Forms.ToolStripStatusLabelBorderSides.Top ) + | System.Windows.Forms.ToolStripStatusLabelBorderSides.Right ) + | System.Windows.Forms.ToolStripStatusLabelBorderSides.Bottom ) ) ); + this.estimationLabel.BorderStyle = System.Windows.Forms.Border3DStyle.SunkenInner; + this.estimationLabel.Name = "estimationLabel"; + this.estimationLabel.Size = new System.Drawing.Size( 539, 17 ); + this.estimationLabel.Spring = true; + this.estimationLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // imageSizeLabel + // + this.imageSizeLabel.AutoSize = false; + this.imageSizeLabel.BorderSides = ( (System.Windows.Forms.ToolStripStatusLabelBorderSides) ( ( ( ( System.Windows.Forms.ToolStripStatusLabelBorderSides.Left | System.Windows.Forms.ToolStripStatusLabelBorderSides.Top ) + | System.Windows.Forms.ToolStripStatusLabelBorderSides.Right ) + | System.Windows.Forms.ToolStripStatusLabelBorderSides.Bottom ) ) ); + this.imageSizeLabel.BorderStyle = System.Windows.Forms.Border3DStyle.SunkenInner; + this.imageSizeLabel.Name = "imageSizeLabel"; + this.imageSizeLabel.Size = new System.Drawing.Size( 120, 17 ); + this.imageSizeLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // errorProvider + // + this.errorProvider.ContainerControl = this; + // + // toolTip + // + this.toolTip.AutoPopDelay = 5000; + this.toolTip.InitialDelay = 100; + this.toolTip.ReshowDelay = 100; + // + // MainForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF( 6F, 13F ); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size( 974, 666 ); + this.Controls.Add( this.statusStrip ); + this.Controls.Add( this.panel1 ); + this.Controls.Add( this.mainPanel ); + this.Controls.Add( this.mainMenu ); + this.MainMenuStrip = this.mainMenu; + this.Name = "MainForm"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Pose Estimation"; + this.Resize += new System.EventHandler( this.MainForm_Resize ); + this.mainPanel.ResumeLayout( false ); + this.groupBox1.ResumeLayout( false ); + this.groupBox1.PerformLayout( ); + ( (System.ComponentModel.ISupportInitialize) ( this.pictureBox ) ).EndInit( ); + this.mainMenu.ResumeLayout( false ); + this.mainMenu.PerformLayout( ); + this.panel1.ResumeLayout( false ); + this.poseGroupBox.ResumeLayout( false ); + this.poseGroupBox.PerformLayout( ); + this.modelPointsGroupBox.ResumeLayout( false ); + this.modelPointsGroupBox.PerformLayout( ); + this.imagePointsGroupBox.ResumeLayout( false ); + this.imagePointsGroupBox.PerformLayout( ); + this.statusStrip.ResumeLayout( false ); + this.statusStrip.PerformLayout( ); + ( (System.ComponentModel.ISupportInitialize) ( this.errorProvider ) ).EndInit( ); + this.ResumeLayout( false ); + this.PerformLayout( ); + + } + + #endregion + + private System.Windows.Forms.Panel mainPanel; + private System.Windows.Forms.PictureBox pictureBox; + private System.Windows.Forms.MenuStrip mainMenu; + private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem openImageToolStripMenuItem; + private System.Windows.Forms.ToolStripSeparator toolStripMenuItem1; + private System.Windows.Forms.OpenFileDialog openFileDialog; + private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.GroupBox imagePointsGroupBox; + private System.Windows.Forms.Button locate1Button; + private System.Windows.Forms.TextBox imagePoint1Box; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.StatusStrip statusStrip; + private System.Windows.Forms.ToolStripStatusLabel statusLabel; + private System.Windows.Forms.Button locate4Button; + private System.Windows.Forms.TextBox imagePoint4Box; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.Button locate3Button; + private System.Windows.Forms.TextBox imagePoint3Box; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Button locate2Button; + private System.Windows.Forms.TextBox imagePoint2Box; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.ToolStripStatusLabel imageSizeLabel; + private System.Windows.Forms.GroupBox modelPointsGroupBox; + private System.Windows.Forms.TextBox modelPoint1xBox; + private System.Windows.Forms.Label modelPoint4Label; + private System.Windows.Forms.Label modelPoint1Label; + private System.Windows.Forms.Label modelPoint3Label; + private System.Windows.Forms.Label modelPoint2Label; + private System.Windows.Forms.TextBox modelPoint4zBox; + private System.Windows.Forms.TextBox modelPoint4yBox; + private System.Windows.Forms.TextBox modelPoint4xBox; + private System.Windows.Forms.TextBox modelPoint3zBox; + private System.Windows.Forms.TextBox modelPoint3yBox; + private System.Windows.Forms.TextBox modelPoint3xBox; + private System.Windows.Forms.TextBox modelPoint2zBox; + private System.Windows.Forms.TextBox modelPoint2yBox; + private System.Windows.Forms.TextBox modelPoint2xBox; + private System.Windows.Forms.TextBox modelPoint1zBox; + private System.Windows.Forms.TextBox modelPoint1yBox; + private System.Windows.Forms.ErrorProvider errorProvider; + private System.Windows.Forms.GroupBox poseGroupBox; + private System.Windows.Forms.Button estimatePostButton; + private System.Windows.Forms.Label imagePoint1ColorLabel; + private System.Windows.Forms.Label imagePoint4ColorLabel; + private System.Windows.Forms.Label imagePoint3ColorLabel; + private System.Windows.Forms.Label imagePoint2ColorLabel; + private System.Windows.Forms.RadioButton copositRadio; + private System.Windows.Forms.RadioButton positRadio; + private System.Windows.Forms.TextBox focalLengthBox; + private System.Windows.Forms.Label focalLengthLabel; + private MatrixControl estimatedTransformationMatrixControl; + private System.Windows.Forms.ToolStripMenuItem openSample1ToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem openSample2ToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem openSample3ToolStripMenuItem; + private System.Windows.Forms.ToolStripSeparator toolStripMenuItem2; + private System.Windows.Forms.ToolStripMenuItem openSample4ToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem openSample5ToolStripMenuItem; + private System.Windows.Forms.ToolStripStatusLabel estimationLabel; + private System.Windows.Forms.Button alternatePoseButton; + private System.Windows.Forms.Button bestPoseButton; + private System.Windows.Forms.ToolTip toolTip; + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.Label label7; + private System.Windows.Forms.Label label6; + } +} + diff --git a/Samples/Math/Pose Estimation 2/MainForm.cs b/Samples/Math/Pose Estimation 2/MainForm.cs new file mode 100644 index 00000000..905e6558 --- /dev/null +++ b/Samples/Math/Pose Estimation 2/MainForm.cs @@ -0,0 +1,701 @@ +// 3D Pose Estimation (2) sample application +// AForge.NET Framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2009-2011 +// contacts@aforgenet.com +// + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.Text; +using System.Windows.Forms; +using System.Globalization; +using System.Reflection; + +using AForge; +using AForge.Math; +using AForge.Math.Geometry; + +namespace PoseEstimation +{ + public partial class MainForm : Form + { + private readonly AForge.Point emptyPoint = new AForge.Point( -30000, -30000 ); + + // image point of the object to estimate pose for + private AForge.Point[] imagePoints = new AForge.Point[4]; + // model points + private Vector3[] modelPoints = new Vector3[4]; + // camera's focal length + private float focalLength; + // estimated transformation + private Matrix3x3 rotationMatrix, bestRotationMatrix, alternateRotationMatrix; + private Vector3 translationVector, bestTranslationVector, alternateTranslationVector; + private bool isPoseEstimated = false; + private float modelRadius; + + // size of the opened image + private Size imageSize = new Size( 0, 0 ); + + // colors used to highlight points on image + private Color[] pointsColors = new Color[4] + { + Color.Yellow, Color.Blue, Color.Red, Color.Lime + }; + + private bool useCoplanarPosit = false; + + // point index currently locating with mouse + private int pointIndexToLocate = -1; + private AForge.Point pointPreviousValue; + + // model used to draw coordinate system's axes + private Vector3[] axesModel = new Vector3[] + { + new Vector3( 0, 0, 0 ), + new Vector3( 1, 0, 0 ), + new Vector3( 0, 1, 0 ), + new Vector3( 0, 0, 1 ), + }; + + // a structure describing built-in sample + private struct Sample + { + public readonly string ImageName; + public readonly AForge.Point[] ImagePoints; + public readonly Vector3[] ModelPoints; + public readonly float FocalLength; + public readonly bool IsCoplanar; + + public Sample( string imageName, AForge.Point[] imagePoints, Vector3[] modelPoints, float focalLength, bool isCoplanar ) + { + ImageName = imageName; + ImagePoints = imagePoints; + ModelPoints = modelPoints; + FocalLength = focalLength; + IsCoplanar = isCoplanar; + } + } + + #region Embedded samples + private Sample[] samples = new Sample[] + { + // ----- + new Sample( + "sample1.jpg", + new AForge.Point[] + { + new AForge.Point( -4, 29 ), + new AForge.Point( -180, 86 ), + new AForge.Point( -5, -102 ), + new AForge.Point( 76, 137 ), + }, + new Vector3[] + { + new Vector3( 28, 28, -28 ), + new Vector3( -28, 28, -28 ), + new Vector3( 28, -28, -28 ), + new Vector3( 28, 28, 28 ), + }, + 640, false ), + + // ----- + new Sample( + "sample2.jpg", + new AForge.Point[] + { + new AForge.Point( -11, 58 ), + new AForge.Point( -125, 84 ), + new AForge.Point( -7, -35 ), + new AForge.Point( 37, 124 ), + }, + new Vector3[] + { + new Vector3( 28, 28, -28 ), + new Vector3( -28, 28, -28 ), + new Vector3( 28, -28, -28 ), + new Vector3( 28, 28, 28 ), + }, + 640, false ), + + // ----- + new Sample( + "sample3.jpg", + new AForge.Point[] + { + new AForge.Point( 4, 55 ), + new AForge.Point( -80, 81 ), + new AForge.Point( 3, -8 ), + new AForge.Point( 40, 109 ), + }, + new Vector3[] + { + new Vector3( 28, 28, -28 ), + new Vector3( -28, 28, -28 ), + new Vector3( 28, -28, -28 ), + new Vector3( 28, 28, 28 ), + }, + 640, false ), + + // ----- + new Sample( + "sample4.jpg", + new AForge.Point[] + { + new AForge.Point( -77, 48 ), + new AForge.Point( 44, 66 ), + new AForge.Point( 75, -36 ), + new AForge.Point( -61, -58 ), + }, + new Vector3[] + { + new Vector3( -56.5f, 0, 56.5f ), + new Vector3( 56.5f, 0, 56.5f ), + new Vector3( 56.5f, 0, -56.5f ), + new Vector3( -56.5f, 0, -56.5f ), + }, + 640, true ), + + // ----- + new Sample( + "sample5.jpg", + new AForge.Point[] + { + new AForge.Point( -117, 33 ), + new AForge.Point( -15, 86 ), + new AForge.Point( 89, 38 ), + new AForge.Point( -13, -30 ), + }, + new Vector3[] + { + new Vector3( -56.5f, 0, 56.5f ), + new Vector3( 56.5f, 0, 56.5f ), + new Vector3( 56.5f, 0, -56.5f ), + new Vector3( -56.5f, 0, -56.5f ), + }, + 640, true ), + }; + #endregion + + // Class constructor + public MainForm( ) + { + InitializeComponent( ); + EnableControls( false ); + UpdatePictureBoxPositon( ); + + imagePoint1ColorLabel.BackColor = pointsColors[0]; + imagePoint2ColorLabel.BackColor = pointsColors[1]; + imagePoint3ColorLabel.BackColor = pointsColors[2]; + imagePoint4ColorLabel.BackColor = pointsColors[3]; + + if ( useCoplanarPosit ) + { + copositRadio.Checked = true; + } + else + { + positRadio.Checked = true; + } + + imagePoints[0] = emptyPoint; + imagePoints[1] = emptyPoint; + imagePoints[2] = emptyPoint; + imagePoints[3] = emptyPoint; + + ClearEstimation( ); + } + + // On File->Exit - close the application + private void exitToolStripMenuItem_Click( object sender, EventArgs e ) + { + this.Close( ); + } + + // On File->Open - open an image file + private void openImageToolStripMenuItem_Click( object sender, EventArgs e ) + { + if ( openFileDialog.ShowDialog( ) == DialogResult.OK ) + { + try + { + OpenImage( (Bitmap) Bitmap.FromFile( openFileDialog.FileName ) ); + + // reset image points + imagePoints[0] = emptyPoint; + imagePoints[1] = emptyPoint; + imagePoints[2] = emptyPoint; + imagePoints[3] = emptyPoint; + + imagePoint1Box.Text = + imagePoint2Box.Text = + imagePoint3Box.Text = + imagePoint4Box.Text = string.Empty; + + // clear current pose estimation + ClearEstimation( ); + + // set default focal length to image width + focalLength = imageSize.Width; + focalLengthBox.Text = focalLength.ToString( CultureInfo.InvariantCulture ); + } + catch ( Exception ex ) + { + MessageBox.Show( "Failed opening selected file.\n\nException: " + ex.Message ); + } + } + } + + // Open one of the embedded samples + private void openSampleToolStripMenuItem_Click( object sender, EventArgs e ) + { + ToolStripMenuItem menuItem = (ToolStripMenuItem) sender; + int sampleIndex = int.Parse( (string) menuItem.Tag ); + + Sample sample = samples[sampleIndex]; + + OpenEmbeddedImage( sample.ImageName ); + + // set image points + imagePoints = (AForge.Point[]) sample.ImagePoints.Clone( ); + + imagePoint1Box.Text = imagePoints[0].ToString( ); + imagePoint2Box.Text = imagePoints[1].ToString( ); + imagePoint3Box.Text = imagePoints[2].ToString( ); + imagePoint4Box.Text = imagePoints[3].ToString( ); + + // set model points + modelPoints = (Vector3[]) sample.ModelPoints.Clone( ); + + modelPoint1xBox.Text = modelPoints[0].X.ToString( ); + modelPoint1yBox.Text = modelPoints[0].Y.ToString( ); + modelPoint1zBox.Text = modelPoints[0].Z.ToString( ); + + modelPoint2xBox.Text = modelPoints[1].X.ToString( ); + modelPoint2yBox.Text = modelPoints[1].Y.ToString( ); + modelPoint2zBox.Text = modelPoints[1].Z.ToString( ); + + modelPoint3xBox.Text = modelPoints[2].X.ToString( ); + modelPoint3yBox.Text = modelPoints[2].Y.ToString( ); + modelPoint3zBox.Text = modelPoints[2].Z.ToString( ); + + modelPoint4xBox.Text = modelPoints[3].X.ToString( ); + modelPoint4yBox.Text = modelPoints[3].Y.ToString( ); + modelPoint4zBox.Text = modelPoints[3].Z.ToString( ); + + // set focal length + focalLength = sample.FocalLength; + focalLengthBox.Text = focalLength.ToString( ); + + // POSIT or Coplanar POSIT + useCoplanarPosit = sample.IsCoplanar; + if ( useCoplanarPosit ) + { + copositRadio.Checked = true; + } + else + { + positRadio.Checked = true; + } + + errorProvider.Clear( ); + + EstimatePose( ); + } + + // Enable/disable controls which are available when image is opened + private void EnableControls( bool enable ) + { + imagePointsGroupBox.Enabled = enable; + modelPointsGroupBox.Enabled = enable; + poseGroupBox.Enabled = enable; + } + + // Close current image + private void CloseImage( ) + { + pictureBox.Image = null; + EnableControls( false ); + } + + // Open image which is embedded into the assembly as resource + private void OpenEmbeddedImage( string imageName ) + { + // load arrow bitmap + Assembly assembly = this.GetType( ).Assembly; + Bitmap image = new Bitmap( assembly.GetManifestResourceStream( "PoseEstimation.Samples." + imageName ) ); + OpenImage( image ); + } + + // Opens the specified image + private void OpenImage( Bitmap image ) + { + // close previous image if any + CloseImage( ); + + // open new image + imageSize = image.Size; + + pictureBox.Image = image; + pictureBox.Size = new Size( imageSize.Width + 2, imageSize.Height + 2 ); + imageSizeLabel.Text = string.Format( "{0} x {1}", image.Width, image.Height ); + + ClearEstimation( ); + UpdatePictureBoxPositon( ); + EnableControls( true ); + } + + private void ClearEstimation( ) + { + isPoseEstimated = false; + estimatedTransformationMatrixControl.Clear( ); + bestPoseButton.Visible = false; + alternatePoseButton.Visible = false; + } + + // Paint image points on the image + private void pictureBox_Paint( object sender, PaintEventArgs e ) + { + Graphics g = e.Graphics; + + if ( pictureBox.Image != null ) + { + int cx = imageSize.Width / 2; + int cy = imageSize.Height / 2; + + for ( int i = 0; i < 4; i++ ) + { + if ( imagePoints[i] != emptyPoint ) + { + using ( Brush brush = new SolidBrush( pointsColors[i] ) ) + { + g.FillEllipse( brush, new Rectangle( + (int) ( cx + imagePoints[i].X - 3 ), + (int) ( cy - imagePoints[i].Y - 3 ), + 7, 7 ) ); + } + } + } + + if ( ( isPoseEstimated ) && ( pointIndexToLocate == -1 ) ) + { + AForge.Point[] projectedAxes = PerformProjection( axesModel, + // create tranformation matrix + Matrix4x4.CreateTranslation( translationVector ) * // 3: translate + Matrix4x4.CreateFromRotation( rotationMatrix ) * // 2: rotate + Matrix4x4.CreateDiagonal( + new Vector4( modelRadius, modelRadius, modelRadius, 1 ) ), // 1: scale + imageSize.Width + ); + + using ( Pen pen = new Pen( Color.Blue, 5 ) ) + { + g.DrawLine( pen, + cx + projectedAxes[0].X, cy - projectedAxes[0].Y, + cx + projectedAxes[1].X, cy - projectedAxes[1].Y ); + } + + using ( Pen pen = new Pen( Color.Red, 5 ) ) + { + g.DrawLine( pen, + cx + projectedAxes[0].X, cy - projectedAxes[0].Y, + cx + projectedAxes[2].X, cy - projectedAxes[2].Y ); + } + + using ( Pen pen = new Pen( Color.Lime, 5 ) ) + { + g.DrawLine( pen, + cx + projectedAxes[0].X, cy - projectedAxes[0].Y, + cx + projectedAxes[3].X, cy - projectedAxes[3].Y ); + } + } + } + } + + private AForge.Point[] PerformProjection( Vector3[] model, Matrix4x4 transformationMatrix, int viewSize ) + { + AForge.Point[] projectedPoints = new AForge.Point[model.Length]; + + for ( int i = 0; i < model.Length; i++ ) + { + Vector3 scenePoint = ( transformationMatrix * model[i].ToVector4( ) ).ToVector3( ); + + projectedPoints[i] = new AForge.Point( + (int) ( scenePoint.X / scenePoint.Z * viewSize ), + (int) ( scenePoint.Y / scenePoint.Z * viewSize ) ); + } + + return projectedPoints; + } + + // Update position of picture box so it is centered in the main panel + private void UpdatePictureBoxPositon( ) + { + pictureBox.Location = new System.Drawing.Point( + ( mainPanel.Width - pictureBox.Width ) / 2, + ( mainPanel.Height - pictureBox.Height ) / 2 ); + } + + // On resize of main form + private void MainForm_Resize( object sender, EventArgs e ) + { + UpdatePictureBoxPositon( ); + } + + // One of the locate point button were clicked + private void locatePointButton_Click( object sender, EventArgs e ) + { + pictureBox.Capture = true; + + Button sourceButton = (Button) sender; + pointIndexToLocate = int.Parse( (string) sourceButton.Tag ); + + pointPreviousValue = imagePoints[pointIndexToLocate]; + imagePoints[pointIndexToLocate] = emptyPoint; + + statusLabel.Text = string.Format( "Locate point #{0} in the image ...", pointIndexToLocate + 1 ); + pictureBox.Invalidate( ); + } + + // Mouse click on the image - accept new point or reject it (depending on mouse button) + private void pictureBox_MouseClick( object sender, MouseEventArgs e ) + { + if ( pointIndexToLocate != -1 ) + { + pictureBox.Cursor = Cursors.Default; + pictureBox.Capture = false; + statusLabel.Text = string.Empty; + + if ( e.Button == MouseButtons.Left ) + { + int x = Math.Max( 0, Math.Min( e.X, imageSize.Width - 1 ) ); + int y = Math.Max( 0, Math.Min( e.Y, imageSize.Height - 1 ) ); + + imagePoints[pointIndexToLocate] = new AForge.Point( x - imageSize.Width / 2, imageSize.Height / 2 - y ); + + TextBox imagePointTextBox = (TextBox) imagePointsGroupBox.Controls[string.Format( "imagePoint{0}Box", pointIndexToLocate + 1 )]; + imagePointTextBox.Text = imagePoints[pointIndexToLocate].ToString( ); + } + else + { + imagePoints[pointIndexToLocate] = pointPreviousValue; + } + + ClearEstimation( ); + + pointIndexToLocate = -1; + pictureBox.Invalidate( ); + } + } + + private void pictureBox_MouseMove( object sender, MouseEventArgs e ) + { + if ( pointIndexToLocate != -1 ) + { + pictureBox.Cursor = Cursors.Help; + } + } + + // Leaving one of the model point's boxes - validate it + private void modelPointBox_Leave( object sender, EventArgs e ) + { + GetCoordinateValue( (TextBox) sender ); + } + + private void GetCoordinateValue( TextBox textBox ) + { + int tag = int.Parse( (string) textBox.Tag ); + int pointIndex = tag / 10; + int coordinateIndex = tag % 10; + float coordinateValue, oldValue = 0; + + textBox.Text = textBox.Text.Trim( ); + + // try parsing the coordinate value + if ( float.TryParse( textBox.Text, NumberStyles.Float, CultureInfo.InvariantCulture, out coordinateValue) ) + { + switch ( coordinateIndex ) + { + case 0: + oldValue = modelPoints[pointIndex].X; + modelPoints[pointIndex].X = coordinateValue; + break; + case 1: + oldValue = modelPoints[pointIndex].Y; + modelPoints[pointIndex].Y = coordinateValue; + break; + case 2: + oldValue = modelPoints[pointIndex].Z; + modelPoints[pointIndex].Z = coordinateValue; + break; + } + errorProvider.Clear( ); + + if ( oldValue != coordinateValue ) + { + ClearEstimation( ); + } + } + else + { + Label pointLabel = (Label) modelPointsGroupBox.Controls[string.Format( "modelPoint{0}Label", pointIndex + 1 )]; + + errorProvider.SetError( pointLabel, string.Format( "Failed parsing {0} coordinate", + ( coordinateIndex == 0 ) ? "X" : ( ( coordinateIndex == 1 ) ? "Y" : "Z" ) ) ); + + textBox.Text = string.Empty; + } + } + + // Validate focal length on leaving the text box + private void focalLengthBox_Leave( object sender, EventArgs e ) + { + float value; + + if ( float.TryParse( focalLengthBox.Text, NumberStyles.Float, CultureInfo.InvariantCulture, out value ) ) + { + focalLength = value; + } + else + { + focalLengthBox.Text = focalLength.ToString( ); + errorProvider.SetError( focalLengthLabel, "Wrong focal length was specified. Restored to previous value." ); + } + } + + // Switch between POSIT and CoPOSIT algorithms + private void copositRadio_CheckedChanged( object sender, EventArgs e ) + { + useCoplanarPosit = copositRadio.Checked; + } + + private void estimatePostButton_Click( object sender, EventArgs e ) + { + EstimatePose( ); + } + + // Estimate 3D position + private void EstimatePose( ) + { + try + { + // check if all image coordinates are specified + if ( ( string.IsNullOrEmpty( imagePoint1Box.Text ) ) || + ( string.IsNullOrEmpty( imagePoint2Box.Text ) ) || + ( string.IsNullOrEmpty( imagePoint3Box.Text ) ) || + ( string.IsNullOrEmpty( imagePoint4Box.Text ) ) ) + { + throw new ApplicationException( "Some image coordinates are not specified." ); + } + + // check if all model coordnates are specified + if ( ( string.IsNullOrEmpty( modelPoint1xBox.Text ) ) || + ( string.IsNullOrEmpty( modelPoint2xBox.Text ) ) || + ( string.IsNullOrEmpty( modelPoint3xBox.Text ) ) || + ( string.IsNullOrEmpty( modelPoint4xBox.Text ) ) || + ( string.IsNullOrEmpty( modelPoint1yBox.Text ) ) || + ( string.IsNullOrEmpty( modelPoint2yBox.Text ) ) || + ( string.IsNullOrEmpty( modelPoint3yBox.Text ) ) || + ( string.IsNullOrEmpty( modelPoint4yBox.Text ) ) || + ( ( !useCoplanarPosit ) && ( + ( string.IsNullOrEmpty( modelPoint1zBox.Text ) ) || + ( string.IsNullOrEmpty( modelPoint2zBox.Text ) ) || + ( string.IsNullOrEmpty( modelPoint3zBox.Text ) ) || + ( string.IsNullOrEmpty( modelPoint4zBox.Text ) ) ) ) ) + { + throw new ApplicationException( "Some model coordinates are not specified." ); + } + + // calculate model's center + Vector3 modelCenter = new Vector3( + ( modelPoints[0].X + modelPoints[1].X + modelPoints[2].X + modelPoints[3].X ) / 4, + ( modelPoints[0].Y + modelPoints[1].Y + modelPoints[2].Y + modelPoints[3].Y ) / 4, + ( modelPoints[0].Z + modelPoints[1].Z + modelPoints[2].Z + modelPoints[3].Z ) / 4 + ); + + // calculate ~ model's radius + modelRadius = 0; + foreach ( Vector3 modelPoint in modelPoints ) + { + float distanceToCenter = ( modelPoint - modelCenter ).Norm; + if ( distanceToCenter > modelRadius ) + { + modelRadius = distanceToCenter; + } + } + + if ( !useCoplanarPosit ) + { + Posit posit = new Posit( modelPoints, focalLength ); + posit.EstimatePose( imagePoints, out rotationMatrix, out translationVector ); + + bestPoseButton.Visible = alternatePoseButton.Visible = false; + } + else + { + CoplanarPosit coposit = new CoplanarPosit( modelPoints, focalLength ); + coposit.EstimatePose( imagePoints, out rotationMatrix, out translationVector ); + + bestRotationMatrix = coposit.BestEstimatedRotation; + bestTranslationVector = coposit.BestEstimatedTranslation; + + alternateRotationMatrix = coposit.AlternateEstimatedRotation; + alternateTranslationVector = coposit.AlternateEstimatedTranslation; + + bestPoseButton.Visible = alternatePoseButton.Visible = true; + } + + isPoseEstimated = true; + UpdateEstimationInformation( ); + pictureBox.Invalidate( ); + } + catch ( ApplicationException ex ) + { + MessageBox.Show( ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error ); + } + } + + private void UpdateEstimationInformation( ) + { + estimatedTransformationMatrixControl.SetMatrix( + Matrix4x4.CreateTranslation( translationVector ) * + Matrix4x4.CreateFromRotation( rotationMatrix ) ); + + float estimatedYaw; + float estimatedPitch; + float estimatedRoll; + + rotationMatrix.ExtractYawPitchRoll( out estimatedYaw, out estimatedPitch, out estimatedRoll ); + + estimatedYaw *= (float) ( 180.0 / Math.PI ); + estimatedPitch *= (float) ( 180.0 / Math.PI ); + estimatedRoll *= (float) ( 180.0 / Math.PI ); + + estimationLabel.Text = string.Format( "Rotation: (yaw(y)={0}, pitch(x)={1}, roll(z)={2})", + estimatedYaw, estimatedPitch, estimatedRoll ); + } + + // Select best pose estimation + private void bestPoseButton_Click( object sender, EventArgs e ) + { + rotationMatrix = bestRotationMatrix; + translationVector = bestTranslationVector; + + UpdateEstimationInformation( ); + pictureBox.Invalidate( ); + } + + // Select alternate pose estimation + private void alternatePoseButton_Click( object sender, EventArgs e ) + { + rotationMatrix = alternateRotationMatrix; + translationVector = alternateTranslationVector; + + UpdateEstimationInformation( ); + pictureBox.Invalidate( ); + } + } +} diff --git a/Samples/Math/Pose Estimation 2/MainForm.resx b/Samples/Math/Pose Estimation 2/MainForm.resx new file mode 100644 index 00000000..f141aba4 --- /dev/null +++ b/Samples/Math/Pose Estimation 2/MainForm.resx @@ -0,0 +1,135 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 127, 17 + + + 483, 17 + + + 251, 17 + + + 360, 17 + + \ No newline at end of file diff --git a/Samples/Math/Pose Estimation 2/MatrixControl.Designer.cs b/Samples/Math/Pose Estimation 2/MatrixControl.Designer.cs new file mode 100644 index 00000000..853d6b39 --- /dev/null +++ b/Samples/Math/Pose Estimation 2/MatrixControl.Designer.cs @@ -0,0 +1,238 @@ +namespace PoseEstimation +{ + partial class MatrixControl + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose( bool disposing ) + { + if ( disposing && ( components != null ) ) + { + components.Dispose( ); + } + base.Dispose( disposing ); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent( ) + { + this.groupBox = new System.Windows.Forms.GroupBox( ); + this.i3_j3_Box = new System.Windows.Forms.TextBox( ); + this.i3_j2_Box = new System.Windows.Forms.TextBox( ); + this.i3_j1_Box = new System.Windows.Forms.TextBox( ); + this.i3_j0_Box = new System.Windows.Forms.TextBox( ); + this.i2_j3_Box = new System.Windows.Forms.TextBox( ); + this.i2_j2_Box = new System.Windows.Forms.TextBox( ); + this.i2_j1_Box = new System.Windows.Forms.TextBox( ); + this.i2_j0_Box = new System.Windows.Forms.TextBox( ); + this.i1_j3_Box = new System.Windows.Forms.TextBox( ); + this.i1_j2_Box = new System.Windows.Forms.TextBox( ); + this.i1_j1_Box = new System.Windows.Forms.TextBox( ); + this.i1_j0_Box = new System.Windows.Forms.TextBox( ); + this.i0_j3_Box = new System.Windows.Forms.TextBox( ); + this.i0_j2_Box = new System.Windows.Forms.TextBox( ); + this.i0_j1_Box = new System.Windows.Forms.TextBox( ); + this.i0_j0_Box = new System.Windows.Forms.TextBox( ); + this.groupBox.SuspendLayout( ); + this.SuspendLayout( ); + // + // groupBox + // + this.groupBox.Controls.Add( this.i3_j3_Box ); + this.groupBox.Controls.Add( this.i3_j2_Box ); + this.groupBox.Controls.Add( this.i3_j1_Box ); + this.groupBox.Controls.Add( this.i3_j0_Box ); + this.groupBox.Controls.Add( this.i2_j3_Box ); + this.groupBox.Controls.Add( this.i2_j2_Box ); + this.groupBox.Controls.Add( this.i2_j1_Box ); + this.groupBox.Controls.Add( this.i2_j0_Box ); + this.groupBox.Controls.Add( this.i1_j3_Box ); + this.groupBox.Controls.Add( this.i1_j2_Box ); + this.groupBox.Controls.Add( this.i1_j1_Box ); + this.groupBox.Controls.Add( this.i1_j0_Box ); + this.groupBox.Controls.Add( this.i0_j3_Box ); + this.groupBox.Controls.Add( this.i0_j2_Box ); + this.groupBox.Controls.Add( this.i0_j1_Box ); + this.groupBox.Controls.Add( this.i0_j0_Box ); + this.groupBox.Dock = System.Windows.Forms.DockStyle.Fill; + this.groupBox.Location = new System.Drawing.Point( 0, 0 ); + this.groupBox.Name = "groupBox"; + this.groupBox.Size = new System.Drawing.Size( 230, 110 ); + this.groupBox.TabIndex = 0; + this.groupBox.TabStop = false; + // + // i3_j3_Box + // + this.i3_j3_Box.Location = new System.Drawing.Point( 160, 80 ); + this.i3_j3_Box.Name = "i3_j3_Box"; + this.i3_j3_Box.ReadOnly = true; + this.i3_j3_Box.Size = new System.Drawing.Size( 50, 20 ); + this.i3_j3_Box.TabIndex = 15; + // + // i3_j2_Box + // + this.i3_j2_Box.Location = new System.Drawing.Point( 110, 80 ); + this.i3_j2_Box.Name = "i3_j2_Box"; + this.i3_j2_Box.ReadOnly = true; + this.i3_j2_Box.Size = new System.Drawing.Size( 50, 20 ); + this.i3_j2_Box.TabIndex = 14; + // + // i3_j1_Box + // + this.i3_j1_Box.Location = new System.Drawing.Point( 60, 80 ); + this.i3_j1_Box.Name = "i3_j1_Box"; + this.i3_j1_Box.ReadOnly = true; + this.i3_j1_Box.Size = new System.Drawing.Size( 50, 20 ); + this.i3_j1_Box.TabIndex = 13; + // + // i3_j0_Box + // + this.i3_j0_Box.Location = new System.Drawing.Point( 10, 80 ); + this.i3_j0_Box.Name = "i3_j0_Box"; + this.i3_j0_Box.ReadOnly = true; + this.i3_j0_Box.Size = new System.Drawing.Size( 50, 20 ); + this.i3_j0_Box.TabIndex = 12; + // + // i2_j3_Box + // + this.i2_j3_Box.Location = new System.Drawing.Point( 160, 60 ); + this.i2_j3_Box.Name = "i2_j3_Box"; + this.i2_j3_Box.ReadOnly = true; + this.i2_j3_Box.Size = new System.Drawing.Size( 50, 20 ); + this.i2_j3_Box.TabIndex = 11; + // + // i2_j2_Box + // + this.i2_j2_Box.Location = new System.Drawing.Point( 110, 60 ); + this.i2_j2_Box.Name = "i2_j2_Box"; + this.i2_j2_Box.ReadOnly = true; + this.i2_j2_Box.Size = new System.Drawing.Size( 50, 20 ); + this.i2_j2_Box.TabIndex = 10; + // + // i2_j1_Box + // + this.i2_j1_Box.Location = new System.Drawing.Point( 60, 60 ); + this.i2_j1_Box.Name = "i2_j1_Box"; + this.i2_j1_Box.ReadOnly = true; + this.i2_j1_Box.Size = new System.Drawing.Size( 50, 20 ); + this.i2_j1_Box.TabIndex = 9; + // + // i2_j0_Box + // + this.i2_j0_Box.Location = new System.Drawing.Point( 10, 60 ); + this.i2_j0_Box.Name = "i2_j0_Box"; + this.i2_j0_Box.ReadOnly = true; + this.i2_j0_Box.Size = new System.Drawing.Size( 50, 20 ); + this.i2_j0_Box.TabIndex = 8; + // + // i1_j3_Box + // + this.i1_j3_Box.Location = new System.Drawing.Point( 160, 40 ); + this.i1_j3_Box.Name = "i1_j3_Box"; + this.i1_j3_Box.ReadOnly = true; + this.i1_j3_Box.Size = new System.Drawing.Size( 50, 20 ); + this.i1_j3_Box.TabIndex = 7; + // + // i1_j2_Box + // + this.i1_j2_Box.Location = new System.Drawing.Point( 110, 40 ); + this.i1_j2_Box.Name = "i1_j2_Box"; + this.i1_j2_Box.ReadOnly = true; + this.i1_j2_Box.Size = new System.Drawing.Size( 50, 20 ); + this.i1_j2_Box.TabIndex = 6; + // + // i1_j1_Box + // + this.i1_j1_Box.Location = new System.Drawing.Point( 60, 40 ); + this.i1_j1_Box.Name = "i1_j1_Box"; + this.i1_j1_Box.ReadOnly = true; + this.i1_j1_Box.Size = new System.Drawing.Size( 50, 20 ); + this.i1_j1_Box.TabIndex = 5; + // + // i1_j0_Box + // + this.i1_j0_Box.Location = new System.Drawing.Point( 10, 40 ); + this.i1_j0_Box.Name = "i1_j0_Box"; + this.i1_j0_Box.ReadOnly = true; + this.i1_j0_Box.Size = new System.Drawing.Size( 50, 20 ); + this.i1_j0_Box.TabIndex = 4; + // + // i0_j3_Box + // + this.i0_j3_Box.Location = new System.Drawing.Point( 160, 20 ); + this.i0_j3_Box.Name = "i0_j3_Box"; + this.i0_j3_Box.ReadOnly = true; + this.i0_j3_Box.Size = new System.Drawing.Size( 50, 20 ); + this.i0_j3_Box.TabIndex = 3; + // + // i0_j2_Box + // + this.i0_j2_Box.Location = new System.Drawing.Point( 110, 20 ); + this.i0_j2_Box.Name = "i0_j2_Box"; + this.i0_j2_Box.ReadOnly = true; + this.i0_j2_Box.Size = new System.Drawing.Size( 50, 20 ); + this.i0_j2_Box.TabIndex = 2; + // + // i0_j1_Box + // + this.i0_j1_Box.Location = new System.Drawing.Point( 60, 20 ); + this.i0_j1_Box.Name = "i0_j1_Box"; + this.i0_j1_Box.ReadOnly = true; + this.i0_j1_Box.Size = new System.Drawing.Size( 50, 20 ); + this.i0_j1_Box.TabIndex = 1; + // + // i0_j0_Box + // + this.i0_j0_Box.Location = new System.Drawing.Point( 10, 20 ); + this.i0_j0_Box.Name = "i0_j0_Box"; + this.i0_j0_Box.ReadOnly = true; + this.i0_j0_Box.Size = new System.Drawing.Size( 50, 20 ); + this.i0_j0_Box.TabIndex = 0; + // + // MatrixControl + // + this.AutoScaleDimensions = new System.Drawing.SizeF( 6F, 13F ); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add( this.groupBox ); + this.Name = "MatrixControl"; + this.Size = new System.Drawing.Size( 230, 110 ); + this.Load += new System.EventHandler( this.MatrixControl_Load ); + this.groupBox.ResumeLayout( false ); + this.groupBox.PerformLayout( ); + this.ResumeLayout( false ); + + } + + #endregion + + private System.Windows.Forms.GroupBox groupBox; + private System.Windows.Forms.TextBox i0_j0_Box; + private System.Windows.Forms.TextBox i3_j3_Box; + private System.Windows.Forms.TextBox i3_j2_Box; + private System.Windows.Forms.TextBox i3_j1_Box; + private System.Windows.Forms.TextBox i3_j0_Box; + private System.Windows.Forms.TextBox i2_j3_Box; + private System.Windows.Forms.TextBox i2_j2_Box; + private System.Windows.Forms.TextBox i2_j1_Box; + private System.Windows.Forms.TextBox i2_j0_Box; + private System.Windows.Forms.TextBox i1_j3_Box; + private System.Windows.Forms.TextBox i1_j2_Box; + private System.Windows.Forms.TextBox i1_j1_Box; + private System.Windows.Forms.TextBox i1_j0_Box; + private System.Windows.Forms.TextBox i0_j3_Box; + private System.Windows.Forms.TextBox i0_j2_Box; + private System.Windows.Forms.TextBox i0_j1_Box; + } +} diff --git a/Samples/Math/Pose Estimation 2/MatrixControl.cs b/Samples/Math/Pose Estimation 2/MatrixControl.cs new file mode 100644 index 00000000..6ee949fa --- /dev/null +++ b/Samples/Math/Pose Estimation 2/MatrixControl.cs @@ -0,0 +1,87 @@ +// 3D Pose Estimation (2) sample application +// AForge.NET Framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2009-2011 +// contacts@aforgenet.com +// + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.Text; +using System.Windows.Forms; + +using AForge.Math; + +namespace PoseEstimation +{ + public partial class MatrixControl : UserControl + { + private Dictionary textBoxes = new Dictionary( ); + + public string Title + { + get { return groupBox.Text; } + set { groupBox.Text = value; } + } + + public MatrixControl( ) + { + InitializeComponent( ); + } + + public void SetMatrix( Matrix4x4 matrix ) + { + float[] array = matrix.ToArray( ); + + for ( int i = 0, k = 0; i < 4; i++ ) + { + for ( int j = 0; j < 4; j++, k++ ) + { + string textBoxName = string.Format( "i{0}_j{1}_Box", i, j ); + + if ( textBoxes.ContainsKey( textBoxName ) ) + { + textBoxes[textBoxName].Text = FormatFloat( array[k] ); + } + } + } + } + + public void Clear( ) + { + for ( int i = 0, k = 0; i < 4; i++ ) + { + for ( int j = 0; j < 4; j++, k++ ) + { + string textBoxName = string.Format( "i{0}_j{1}_Box", i, j ); + + if ( textBoxes.ContainsKey( textBoxName ) ) + { + textBoxes[textBoxName].Text = string.Empty; + } + } + } + } + + private static string FormatFloat( float floatValue ) + { + return String.Format( "{0:0.####}", floatValue ); + } + + private void MatrixControl_Load( object sender, EventArgs e ) + { + textBoxes.Clear( ); + + foreach ( Control c in groupBox.Controls ) + { + if ( c is TextBox ) + { + textBoxes.Add( c.Name, (TextBox) c ); + } + } + } + } +} diff --git a/Samples/Math/Pose Estimation 2/MatrixControl.resx b/Samples/Math/Pose Estimation 2/MatrixControl.resx new file mode 100644 index 00000000..19dc0dd8 --- /dev/null +++ b/Samples/Math/Pose Estimation 2/MatrixControl.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Samples/Math/Pose Estimation 2/Pose Estimation.csproj b/Samples/Math/Pose Estimation 2/Pose Estimation.csproj new file mode 100644 index 00000000..f11c70de --- /dev/null +++ b/Samples/Math/Pose Estimation 2/Pose Estimation.csproj @@ -0,0 +1,146 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {651EBEC1-045E-4A74-A9F6-7E8DD223DD7A} + WinExe + Properties + PoseEstimation + Pose Estimation + v2.0 + 512 + + + 3.5 + + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + False + ..\..\..\Release\AForge.dll + + + False + ..\..\..\Release\AForge.Math.dll + + + + + + + + Form + + + MainForm.cs + + + UserControl + + + MatrixControl.cs + + + + + MainForm.cs + + + MatrixControl.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + True + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + + + + + + + + + + False + Microsoft .NET Framework 4 %28x86 and x64%29 + true + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 3.1 + true + + + + + \ No newline at end of file diff --git a/Samples/Math/Pose Estimation 2/Pose Estimation.sln b/Samples/Math/Pose Estimation 2/Pose Estimation.sln new file mode 100644 index 00000000..61ff9b28 --- /dev/null +++ b/Samples/Math/Pose Estimation 2/Pose Estimation.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual C# Express 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Pose Estimation", "Pose Estimation.csproj", "{651EBEC1-045E-4A74-A9F6-7E8DD223DD7A}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {651EBEC1-045E-4A74-A9F6-7E8DD223DD7A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {651EBEC1-045E-4A74-A9F6-7E8DD223DD7A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {651EBEC1-045E-4A74-A9F6-7E8DD223DD7A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {651EBEC1-045E-4A74-A9F6-7E8DD223DD7A}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Samples/Math/Pose Estimation 2/Program.cs b/Samples/Math/Pose Estimation 2/Program.cs new file mode 100644 index 00000000..3b686ed1 --- /dev/null +++ b/Samples/Math/Pose Estimation 2/Program.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Windows.Forms; + +namespace PoseEstimation +{ + static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main( ) + { + Application.EnableVisualStyles( ); + Application.SetCompatibleTextRenderingDefault( false ); + Application.Run( new MainForm( ) ); + } + } +} diff --git a/Samples/Math/Pose Estimation 2/Properties/AssemblyInfo.cs b/Samples/Math/Pose Estimation 2/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..f6abb4a1 --- /dev/null +++ b/Samples/Math/Pose Estimation 2/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle( "Pose Estimation" )] +[assembly: AssemblyDescription( "" )] +[assembly: AssemblyConfiguration( "" )] +[assembly: AssemblyCompany( "" )] +[assembly: AssemblyProduct( "Pose Estimation" )] +[assembly: AssemblyCopyright( "Copyright © 2011" )] +[assembly: AssemblyTrademark( "" )] +[assembly: AssemblyCulture( "" )] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible( false )] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid( "8d257fdd-192f-4789-a86d-2bd42917c32f" )] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion( "1.0.0.0" )] +[assembly: AssemblyFileVersion( "1.0.0.0" )] diff --git a/Samples/Math/Pose Estimation 2/Properties/Resources.Designer.cs b/Samples/Math/Pose Estimation 2/Properties/Resources.Designer.cs new file mode 100644 index 00000000..bd6e7161 --- /dev/null +++ b/Samples/Math/Pose Estimation 2/Properties/Resources.Designer.cs @@ -0,0 +1,63 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.4214 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace PoseEstimation.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("PoseEstimation.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + } +} diff --git a/Samples/Math/Pose Estimation 2/Properties/Resources.resx b/Samples/Math/Pose Estimation 2/Properties/Resources.resx new file mode 100644 index 00000000..af7dbebb --- /dev/null +++ b/Samples/Math/Pose Estimation 2/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Samples/Math/Pose Estimation 2/Properties/Settings.Designer.cs b/Samples/Math/Pose Estimation 2/Properties/Settings.Designer.cs new file mode 100644 index 00000000..00ff63a2 --- /dev/null +++ b/Samples/Math/Pose Estimation 2/Properties/Settings.Designer.cs @@ -0,0 +1,26 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.4214 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace PoseEstimation.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "9.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + } +} diff --git a/Samples/Math/Pose Estimation 2/Properties/Settings.settings b/Samples/Math/Pose Estimation 2/Properties/Settings.settings new file mode 100644 index 00000000..39645652 --- /dev/null +++ b/Samples/Math/Pose Estimation 2/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Samples/Math/Pose Estimation 2/Samples/sample1.jpg b/Samples/Math/Pose Estimation 2/Samples/sample1.jpg new file mode 100644 index 00000000..5fc7ac41 Binary files /dev/null and b/Samples/Math/Pose Estimation 2/Samples/sample1.jpg differ diff --git a/Samples/Math/Pose Estimation 2/Samples/sample2.jpg b/Samples/Math/Pose Estimation 2/Samples/sample2.jpg new file mode 100644 index 00000000..86c3c527 Binary files /dev/null and b/Samples/Math/Pose Estimation 2/Samples/sample2.jpg differ diff --git a/Samples/Math/Pose Estimation 2/Samples/sample3.jpg b/Samples/Math/Pose Estimation 2/Samples/sample3.jpg new file mode 100644 index 00000000..164a95da Binary files /dev/null and b/Samples/Math/Pose Estimation 2/Samples/sample3.jpg differ diff --git a/Samples/Math/Pose Estimation 2/Samples/sample4.jpg b/Samples/Math/Pose Estimation 2/Samples/sample4.jpg new file mode 100644 index 00000000..47e0fb85 Binary files /dev/null and b/Samples/Math/Pose Estimation 2/Samples/sample4.jpg differ diff --git a/Samples/Math/Pose Estimation 2/Samples/sample5.jpg b/Samples/Math/Pose Estimation 2/Samples/sample5.jpg new file mode 100644 index 00000000..ec98cd07 Binary files /dev/null and b/Samples/Math/Pose Estimation 2/Samples/sample5.jpg differ diff --git a/Samples/Math/Pose Estimation/MainForm.Designer.cs b/Samples/Math/Pose Estimation/MainForm.Designer.cs new file mode 100644 index 00000000..ba488740 --- /dev/null +++ b/Samples/Math/Pose Estimation/MainForm.Designer.cs @@ -0,0 +1,959 @@ +namespace PoseEstimation +{ + partial class MainForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose( bool disposing ) + { + if ( disposing && ( components != null ) ) + { + components.Dispose( ); + } + base.Dispose( disposing ); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent( ) + { + this.components = new System.ComponentModel.Container( ); + this.groupBox2 = new System.Windows.Forms.GroupBox( ); + this.label1 = new System.Windows.Forms.Label( ); + this.yawBox = new System.Windows.Forms.TextBox( ); + this.label2 = new System.Windows.Forms.Label( ); + this.pitchBox = new System.Windows.Forms.TextBox( ); + this.label3 = new System.Windows.Forms.Label( ); + this.rollBox = new System.Windows.Forms.TextBox( ); + this.groupBox4 = new System.Windows.Forms.GroupBox( ); + this.label10 = new System.Windows.Forms.Label( ); + this.zObjectBox = new System.Windows.Forms.TextBox( ); + this.label11 = new System.Windows.Forms.Label( ); + this.yObjectBox = new System.Windows.Forms.TextBox( ); + this.label12 = new System.Windows.Forms.Label( ); + this.xObjectBox = new System.Windows.Forms.TextBox( ); + this.toolTip = new System.Windows.Forms.ToolTip( this.components ); + this.label17 = new System.Windows.Forms.Label( ); + this.label18 = new System.Windows.Forms.Label( ); + this.label19 = new System.Windows.Forms.Label( ); + this.targetTransformationMatrixControl = new PoseEstimation.MatrixControl( ); + this.errorProvider = new System.Windows.Forms.ErrorProvider( this.components ); + this.groupBox3 = new System.Windows.Forms.GroupBox( ); + this.label7 = new System.Windows.Forms.Label( ); + this.zLookAtBox = new System.Windows.Forms.TextBox( ); + this.label8 = new System.Windows.Forms.Label( ); + this.yLookAtBox = new System.Windows.Forms.TextBox( ); + this.label9 = new System.Windows.Forms.Label( ); + this.xLookAtBox = new System.Windows.Forms.TextBox( ); + this.groupBox1 = new System.Windows.Forms.GroupBox( ); + this.label6 = new System.Windows.Forms.Label( ); + this.zCameraBox = new System.Windows.Forms.TextBox( ); + this.label5 = new System.Windows.Forms.Label( ); + this.yCameraBox = new System.Windows.Forms.TextBox( ); + this.label4 = new System.Windows.Forms.Label( ); + this.xCameraBox = new System.Windows.Forms.TextBox( ); + this.groupBox5 = new System.Windows.Forms.GroupBox( ); + this.worldRendererControl = new PoseEstimation.WorldRendererControl( ); + this.groupBox6 = new System.Windows.Forms.GroupBox( ); + this.objectPoint4ColorLabel = new System.Windows.Forms.Label( ); + this.objectPoint3ColorLabel = new System.Windows.Forms.Label( ); + this.objectPoint2ColorLabel = new System.Windows.Forms.Label( ); + this.objectPoint1ColorLabel = new System.Windows.Forms.Label( ); + this.objectPoint4Box = new System.Windows.Forms.TextBox( ); + this.label16 = new System.Windows.Forms.Label( ); + this.objectPoint3Box = new System.Windows.Forms.TextBox( ); + this.label15 = new System.Windows.Forms.Label( ); + this.objectPoint2Box = new System.Windows.Forms.TextBox( ); + this.label14 = new System.Windows.Forms.Label( ); + this.objectPoint1Box = new System.Windows.Forms.TextBox( ); + this.label13 = new System.Windows.Forms.Label( ); + this.objectTypeCombo = new System.Windows.Forms.ComboBox( ); + this.groupBox7 = new System.Windows.Forms.GroupBox( ); + this.screenPoint4ColorLabel = new System.Windows.Forms.Label( ); + this.screenPoint3ColorLabel = new System.Windows.Forms.Label( ); + this.screenPoint2ColorLabel = new System.Windows.Forms.Label( ); + this.screenPoint1ColorLabel = new System.Windows.Forms.Label( ); + this.screenPoint4Box = new System.Windows.Forms.TextBox( ); + this.label21 = new System.Windows.Forms.Label( ); + this.screenPoint3Box = new System.Windows.Forms.TextBox( ); + this.label22 = new System.Windows.Forms.Label( ); + this.screenPoint2Box = new System.Windows.Forms.TextBox( ); + this.label23 = new System.Windows.Forms.Label( ); + this.screenPoint1Box = new System.Windows.Forms.TextBox( ); + this.label24 = new System.Windows.Forms.Label( ); + this.groupBox8 = new System.Windows.Forms.GroupBox( ); + this.label20 = new System.Windows.Forms.Label( ); + this.estimatedZObjectBox = new System.Windows.Forms.TextBox( ); + this.label25 = new System.Windows.Forms.Label( ); + this.estimatedYObjectBox = new System.Windows.Forms.TextBox( ); + this.label26 = new System.Windows.Forms.Label( ); + this.estimatedXObjectBox = new System.Windows.Forms.TextBox( ); + this.estimatedYawBox = new System.Windows.Forms.TextBox( ); + this.estimatedPitchBox = new System.Windows.Forms.TextBox( ); + this.estimatedRollBox = new System.Windows.Forms.TextBox( ); + this.estimatedTransformationMatrixControl = new PoseEstimation.MatrixControl( ); + this.viewMatrixControl = new PoseEstimation.MatrixControl( ); + this.transformationMatrixControl = new PoseEstimation.MatrixControl( ); + this.groupBox2.SuspendLayout( ); + this.groupBox4.SuspendLayout( ); + ( (System.ComponentModel.ISupportInitialize) ( this.errorProvider ) ).BeginInit( ); + this.groupBox3.SuspendLayout( ); + this.groupBox1.SuspendLayout( ); + this.groupBox5.SuspendLayout( ); + this.groupBox6.SuspendLayout( ); + this.groupBox7.SuspendLayout( ); + this.groupBox8.SuspendLayout( ); + this.SuspendLayout( ); + // + // groupBox2 + // + this.groupBox2.Controls.Add( this.label1 ); + this.groupBox2.Controls.Add( this.yawBox ); + this.groupBox2.Controls.Add( this.label2 ); + this.groupBox2.Controls.Add( this.pitchBox ); + this.groupBox2.Controls.Add( this.label3 ); + this.groupBox2.Controls.Add( this.rollBox ); + this.groupBox2.Location = new System.Drawing.Point( 10, 75 ); + this.groupBox2.Name = "groupBox2"; + this.groupBox2.Size = new System.Drawing.Size( 375, 50 ); + this.groupBox2.TabIndex = 1; + this.groupBox2.TabStop = false; + this.groupBox2.Text = "Object Rotation"; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point( 10, 23 ); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size( 45, 13 ); + this.label1.TabIndex = 0; + this.label1.Text = "Yaw (y):"; + this.toolTip.SetToolTip( this.label1, "Rotation around Y axis" ); + // + // yawBox + // + this.yawBox.Location = new System.Drawing.Point( 60, 20 ); + this.yawBox.Name = "yawBox"; + this.yawBox.Size = new System.Drawing.Size( 60, 20 ); + this.yawBox.TabIndex = 1; + this.yawBox.TextChanged += new System.EventHandler( this.yawBox_TextChanged ); + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point( 130, 23 ); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size( 48, 13 ); + this.label2.TabIndex = 2; + this.label2.Text = "Pitch (x):"; + this.toolTip.SetToolTip( this.label2, "Rotation around X axis" ); + // + // pitchBox + // + this.pitchBox.Location = new System.Drawing.Point( 180, 20 ); + this.pitchBox.Name = "pitchBox"; + this.pitchBox.Size = new System.Drawing.Size( 60, 20 ); + this.pitchBox.TabIndex = 3; + this.pitchBox.TextChanged += new System.EventHandler( this.pitchBox_TextChanged ); + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point( 250, 23 ); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size( 42, 13 ); + this.label3.TabIndex = 4; + this.label3.Text = "Roll (z):"; + this.toolTip.SetToolTip( this.label3, "Rotation around Z axis" ); + // + // rollBox + // + this.rollBox.Location = new System.Drawing.Point( 295, 20 ); + this.rollBox.Name = "rollBox"; + this.rollBox.Size = new System.Drawing.Size( 60, 20 ); + this.rollBox.TabIndex = 5; + this.rollBox.TextChanged += new System.EventHandler( this.rollBox_TextChanged ); + // + // groupBox4 + // + this.groupBox4.Controls.Add( this.label10 ); + this.groupBox4.Controls.Add( this.zObjectBox ); + this.groupBox4.Controls.Add( this.label11 ); + this.groupBox4.Controls.Add( this.yObjectBox ); + this.groupBox4.Controls.Add( this.label12 ); + this.groupBox4.Controls.Add( this.xObjectBox ); + this.groupBox4.Location = new System.Drawing.Point( 10, 135 ); + this.groupBox4.Name = "groupBox4"; + this.groupBox4.Size = new System.Drawing.Size( 375, 50 ); + this.groupBox4.TabIndex = 2; + this.groupBox4.TabStop = false; + this.groupBox4.Text = "Object Position"; + // + // label10 + // + this.label10.AutoSize = true; + this.label10.Location = new System.Drawing.Point( 272, 23 ); + this.label10.Name = "label10"; + this.label10.Size = new System.Drawing.Size( 17, 13 ); + this.label10.TabIndex = 4; + this.label10.Text = "Z:"; + // + // zObjectBox + // + this.zObjectBox.Location = new System.Drawing.Point( 295, 20 ); + this.zObjectBox.Name = "zObjectBox"; + this.zObjectBox.Size = new System.Drawing.Size( 60, 20 ); + this.zObjectBox.TabIndex = 5; + this.zObjectBox.TextChanged += new System.EventHandler( this.zObjectBox_TextChanged ); + // + // label11 + // + this.label11.AutoSize = true; + this.label11.Location = new System.Drawing.Point( 157, 23 ); + this.label11.Name = "label11"; + this.label11.Size = new System.Drawing.Size( 17, 13 ); + this.label11.TabIndex = 2; + this.label11.Text = "Y:"; + // + // yObjectBox + // + this.yObjectBox.Location = new System.Drawing.Point( 180, 20 ); + this.yObjectBox.Name = "yObjectBox"; + this.yObjectBox.Size = new System.Drawing.Size( 60, 20 ); + this.yObjectBox.TabIndex = 3; + this.yObjectBox.TextChanged += new System.EventHandler( this.yObjectBox_TextChanged ); + // + // label12 + // + this.label12.AutoSize = true; + this.label12.Location = new System.Drawing.Point( 40, 23 ); + this.label12.Name = "label12"; + this.label12.Size = new System.Drawing.Size( 17, 13 ); + this.label12.TabIndex = 0; + this.label12.Text = "X:"; + // + // xObjectBox + // + this.xObjectBox.Location = new System.Drawing.Point( 60, 20 ); + this.xObjectBox.Name = "xObjectBox"; + this.xObjectBox.Size = new System.Drawing.Size( 60, 20 ); + this.xObjectBox.TabIndex = 1; + this.xObjectBox.TextChanged += new System.EventHandler( this.xObjectBox_TextChanged ); + // + // toolTip + // + this.toolTip.AutoPopDelay = 5000; + this.toolTip.InitialDelay = 100; + this.toolTip.ReshowDelay = 100; + // + // label17 + // + this.label17.AutoSize = true; + this.label17.Location = new System.Drawing.Point( 10, 23 ); + this.label17.Name = "label17"; + this.label17.Size = new System.Drawing.Size( 45, 13 ); + this.label17.TabIndex = 31; + this.label17.Text = "Yaw (y):"; + this.toolTip.SetToolTip( this.label17, "Rotation around Y axis" ); + // + // label18 + // + this.label18.AutoSize = true; + this.label18.Location = new System.Drawing.Point( 130, 23 ); + this.label18.Name = "label18"; + this.label18.Size = new System.Drawing.Size( 48, 13 ); + this.label18.TabIndex = 33; + this.label18.Text = "Pitch (x):"; + this.toolTip.SetToolTip( this.label18, "Rotation around X axis" ); + // + // label19 + // + this.label19.AutoSize = true; + this.label19.Location = new System.Drawing.Point( 250, 23 ); + this.label19.Name = "label19"; + this.label19.Size = new System.Drawing.Size( 42, 13 ); + this.label19.TabIndex = 35; + this.label19.Text = "Roll (z):"; + this.toolTip.SetToolTip( this.label19, "Rotation around Z axis" ); + // + // targetTransformationMatrixControl + // + this.targetTransformationMatrixControl.Location = new System.Drawing.Point( 610, 15 ); + this.targetTransformationMatrixControl.Name = "targetTransformationMatrixControl"; + this.targetTransformationMatrixControl.Size = new System.Drawing.Size( 220, 110 ); + this.targetTransformationMatrixControl.TabIndex = 37; + this.targetTransformationMatrixControl.Title = "Target Transformation"; + this.toolTip.SetToolTip( this.targetTransformationMatrixControl, "The matrix shows target transformation which View Matrix multiplies with World Tr" + + "ansformation Matrix" ); + // + // errorProvider + // + this.errorProvider.ContainerControl = this; + // + // groupBox3 + // + this.groupBox3.Controls.Add( this.label7 ); + this.groupBox3.Controls.Add( this.zLookAtBox ); + this.groupBox3.Controls.Add( this.label8 ); + this.groupBox3.Controls.Add( this.yLookAtBox ); + this.groupBox3.Controls.Add( this.label9 ); + this.groupBox3.Controls.Add( this.xLookAtBox ); + this.groupBox3.Location = new System.Drawing.Point( 10, 255 ); + this.groupBox3.Name = "groupBox3"; + this.groupBox3.Size = new System.Drawing.Size( 375, 50 ); + this.groupBox3.TabIndex = 4; + this.groupBox3.TabStop = false; + this.groupBox3.Text = "Look At"; + // + // label7 + // + this.label7.AutoSize = true; + this.label7.Location = new System.Drawing.Point( 272, 23 ); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size( 17, 13 ); + this.label7.TabIndex = 4; + this.label7.Text = "Z:"; + // + // zLookAtBox + // + this.zLookAtBox.Location = new System.Drawing.Point( 295, 20 ); + this.zLookAtBox.Name = "zLookAtBox"; + this.zLookAtBox.Size = new System.Drawing.Size( 60, 20 ); + this.zLookAtBox.TabIndex = 5; + this.zLookAtBox.TextChanged += new System.EventHandler( this.zLookAtBox_TextChanged ); + // + // label8 + // + this.label8.AutoSize = true; + this.label8.Location = new System.Drawing.Point( 157, 23 ); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size( 17, 13 ); + this.label8.TabIndex = 2; + this.label8.Text = "Y:"; + // + // yLookAtBox + // + this.yLookAtBox.Location = new System.Drawing.Point( 180, 20 ); + this.yLookAtBox.Name = "yLookAtBox"; + this.yLookAtBox.Size = new System.Drawing.Size( 60, 20 ); + this.yLookAtBox.TabIndex = 3; + this.yLookAtBox.TextChanged += new System.EventHandler( this.yLookAtBox_TextChanged ); + // + // label9 + // + this.label9.AutoSize = true; + this.label9.Location = new System.Drawing.Point( 40, 23 ); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size( 17, 13 ); + this.label9.TabIndex = 0; + this.label9.Text = "X:"; + // + // xLookAtBox + // + this.xLookAtBox.Location = new System.Drawing.Point( 60, 20 ); + this.xLookAtBox.Name = "xLookAtBox"; + this.xLookAtBox.Size = new System.Drawing.Size( 60, 20 ); + this.xLookAtBox.TabIndex = 1; + this.xLookAtBox.TextChanged += new System.EventHandler( this.xLookAtBox_TextChanged ); + // + // groupBox1 + // + this.groupBox1.Controls.Add( this.label6 ); + this.groupBox1.Controls.Add( this.zCameraBox ); + this.groupBox1.Controls.Add( this.label5 ); + this.groupBox1.Controls.Add( this.yCameraBox ); + this.groupBox1.Controls.Add( this.label4 ); + this.groupBox1.Controls.Add( this.xCameraBox ); + this.groupBox1.Location = new System.Drawing.Point( 10, 195 ); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size( 375, 50 ); + this.groupBox1.TabIndex = 3; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "Camera Position"; + // + // label6 + // + this.label6.AutoSize = true; + this.label6.Location = new System.Drawing.Point( 272, 23 ); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size( 17, 13 ); + this.label6.TabIndex = 4; + this.label6.Text = "Z:"; + // + // zCameraBox + // + this.zCameraBox.Location = new System.Drawing.Point( 295, 20 ); + this.zCameraBox.Name = "zCameraBox"; + this.zCameraBox.Size = new System.Drawing.Size( 60, 20 ); + this.zCameraBox.TabIndex = 5; + this.zCameraBox.TextChanged += new System.EventHandler( this.zCameraBox_TextChanged ); + // + // label5 + // + this.label5.AutoSize = true; + this.label5.Location = new System.Drawing.Point( 157, 23 ); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size( 17, 13 ); + this.label5.TabIndex = 2; + this.label5.Text = "Y:"; + // + // yCameraBox + // + this.yCameraBox.Location = new System.Drawing.Point( 180, 20 ); + this.yCameraBox.Name = "yCameraBox"; + this.yCameraBox.Size = new System.Drawing.Size( 60, 20 ); + this.yCameraBox.TabIndex = 3; + this.yCameraBox.TextChanged += new System.EventHandler( this.yCameraBox_TextChanged ); + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point( 40, 23 ); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size( 17, 13 ); + this.label4.TabIndex = 0; + this.label4.Text = "X:"; + // + // xCameraBox + // + this.xCameraBox.Location = new System.Drawing.Point( 60, 20 ); + this.xCameraBox.Name = "xCameraBox"; + this.xCameraBox.Size = new System.Drawing.Size( 60, 20 ); + this.xCameraBox.TabIndex = 1; + this.xCameraBox.TextChanged += new System.EventHandler( this.xCameraBox_TextChanged ); + // + // groupBox5 + // + this.groupBox5.Controls.Add( this.worldRendererControl ); + this.groupBox5.Location = new System.Drawing.Point( 625, 75 ); + this.groupBox5.Name = "groupBox5"; + this.groupBox5.Size = new System.Drawing.Size( 220, 230 ); + this.groupBox5.TabIndex = 7; + this.groupBox5.TabStop = false; + this.groupBox5.Text = "Object"; + // + // worldRendererControl + // + this.worldRendererControl.Location = new System.Drawing.Point( 10, 18 ); + this.worldRendererControl.Name = "worldRendererControl"; + this.worldRendererControl.Size = new System.Drawing.Size( 200, 200 ); + this.worldRendererControl.TabIndex = 13; + // + // groupBox6 + // + this.groupBox6.Controls.Add( this.objectPoint4ColorLabel ); + this.groupBox6.Controls.Add( this.objectPoint3ColorLabel ); + this.groupBox6.Controls.Add( this.objectPoint2ColorLabel ); + this.groupBox6.Controls.Add( this.objectPoint1ColorLabel ); + this.groupBox6.Controls.Add( this.objectPoint4Box ); + this.groupBox6.Controls.Add( this.label16 ); + this.groupBox6.Controls.Add( this.objectPoint3Box ); + this.groupBox6.Controls.Add( this.label15 ); + this.groupBox6.Controls.Add( this.objectPoint2Box ); + this.groupBox6.Controls.Add( this.label14 ); + this.groupBox6.Controls.Add( this.objectPoint1Box ); + this.groupBox6.Controls.Add( this.label13 ); + this.groupBox6.Controls.Add( this.objectTypeCombo ); + this.groupBox6.Location = new System.Drawing.Point( 10, 10 ); + this.groupBox6.Name = "groupBox6"; + this.groupBox6.Size = new System.Drawing.Size( 835, 55 ); + this.groupBox6.TabIndex = 0; + this.groupBox6.TabStop = false; + this.groupBox6.Text = "Object"; + // + // objectPoint4ColorLabel + // + this.objectPoint4ColorLabel.BackColor = System.Drawing.Color.Black; + this.objectPoint4ColorLabel.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.objectPoint4ColorLabel.Location = new System.Drawing.Point( 710, 40 ); + this.objectPoint4ColorLabel.Name = "objectPoint4ColorLabel"; + this.objectPoint4ColorLabel.Size = new System.Drawing.Size( 115, 4 ); + this.objectPoint4ColorLabel.TabIndex = 27; + // + // objectPoint3ColorLabel + // + this.objectPoint3ColorLabel.BackColor = System.Drawing.Color.Black; + this.objectPoint3ColorLabel.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.objectPoint3ColorLabel.Location = new System.Drawing.Point( 535, 40 ); + this.objectPoint3ColorLabel.Name = "objectPoint3ColorLabel"; + this.objectPoint3ColorLabel.Size = new System.Drawing.Size( 115, 4 ); + this.objectPoint3ColorLabel.TabIndex = 26; + // + // objectPoint2ColorLabel + // + this.objectPoint2ColorLabel.BackColor = System.Drawing.Color.Black; + this.objectPoint2ColorLabel.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.objectPoint2ColorLabel.Location = new System.Drawing.Point( 360, 40 ); + this.objectPoint2ColorLabel.Name = "objectPoint2ColorLabel"; + this.objectPoint2ColorLabel.Size = new System.Drawing.Size( 115, 4 ); + this.objectPoint2ColorLabel.TabIndex = 25; + // + // objectPoint1ColorLabel + // + this.objectPoint1ColorLabel.BackColor = System.Drawing.Color.Black; + this.objectPoint1ColorLabel.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.objectPoint1ColorLabel.Location = new System.Drawing.Point( 185, 40 ); + this.objectPoint1ColorLabel.Name = "objectPoint1ColorLabel"; + this.objectPoint1ColorLabel.Size = new System.Drawing.Size( 115, 4 ); + this.objectPoint1ColorLabel.TabIndex = 16; + // + // objectPoint4Box + // + this.objectPoint4Box.Location = new System.Drawing.Point( 710, 20 ); + this.objectPoint4Box.Name = "objectPoint4Box"; + this.objectPoint4Box.ReadOnly = true; + this.objectPoint4Box.Size = new System.Drawing.Size( 115, 20 ); + this.objectPoint4Box.TabIndex = 8; + // + // label16 + // + this.label16.AutoSize = true; + this.label16.Location = new System.Drawing.Point( 660, 23 ); + this.label16.Name = "label16"; + this.label16.Size = new System.Drawing.Size( 50, 13 ); + this.label16.TabIndex = 7; + this.label16.Text = "Point #4:"; + // + // objectPoint3Box + // + this.objectPoint3Box.Location = new System.Drawing.Point( 535, 20 ); + this.objectPoint3Box.Name = "objectPoint3Box"; + this.objectPoint3Box.ReadOnly = true; + this.objectPoint3Box.Size = new System.Drawing.Size( 115, 20 ); + this.objectPoint3Box.TabIndex = 6; + // + // label15 + // + this.label15.AutoSize = true; + this.label15.Location = new System.Drawing.Point( 485, 23 ); + this.label15.Name = "label15"; + this.label15.Size = new System.Drawing.Size( 50, 13 ); + this.label15.TabIndex = 5; + this.label15.Text = "Point #3:"; + // + // objectPoint2Box + // + this.objectPoint2Box.Location = new System.Drawing.Point( 360, 20 ); + this.objectPoint2Box.Name = "objectPoint2Box"; + this.objectPoint2Box.ReadOnly = true; + this.objectPoint2Box.Size = new System.Drawing.Size( 115, 20 ); + this.objectPoint2Box.TabIndex = 4; + // + // label14 + // + this.label14.AutoSize = true; + this.label14.Location = new System.Drawing.Point( 310, 23 ); + this.label14.Name = "label14"; + this.label14.Size = new System.Drawing.Size( 50, 13 ); + this.label14.TabIndex = 3; + this.label14.Text = "Point #2:"; + // + // objectPoint1Box + // + this.objectPoint1Box.Location = new System.Drawing.Point( 185, 20 ); + this.objectPoint1Box.Name = "objectPoint1Box"; + this.objectPoint1Box.ReadOnly = true; + this.objectPoint1Box.Size = new System.Drawing.Size( 115, 20 ); + this.objectPoint1Box.TabIndex = 2; + // + // label13 + // + this.label13.AutoSize = true; + this.label13.Location = new System.Drawing.Point( 135, 23 ); + this.label13.Name = "label13"; + this.label13.Size = new System.Drawing.Size( 50, 13 ); + this.label13.TabIndex = 1; + this.label13.Text = "Point #1:"; + // + // objectTypeCombo + // + this.objectTypeCombo.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.objectTypeCombo.FormattingEnabled = true; + this.objectTypeCombo.Items.AddRange( new object[] { + "POSIT", + "CoPOSIT"} ); + this.objectTypeCombo.Location = new System.Drawing.Point( 10, 20 ); + this.objectTypeCombo.Name = "objectTypeCombo"; + this.objectTypeCombo.Size = new System.Drawing.Size( 110, 21 ); + this.objectTypeCombo.TabIndex = 0; + this.objectTypeCombo.SelectedIndexChanged += new System.EventHandler( this.objectTypeCombo_SelectedIndexChanged ); + // + // groupBox7 + // + this.groupBox7.Controls.Add( this.screenPoint4ColorLabel ); + this.groupBox7.Controls.Add( this.screenPoint3ColorLabel ); + this.groupBox7.Controls.Add( this.screenPoint2ColorLabel ); + this.groupBox7.Controls.Add( this.screenPoint1ColorLabel ); + this.groupBox7.Controls.Add( this.screenPoint4Box ); + this.groupBox7.Controls.Add( this.label21 ); + this.groupBox7.Controls.Add( this.screenPoint3Box ); + this.groupBox7.Controls.Add( this.label22 ); + this.groupBox7.Controls.Add( this.screenPoint2Box ); + this.groupBox7.Controls.Add( this.label23 ); + this.groupBox7.Controls.Add( this.screenPoint1Box ); + this.groupBox7.Controls.Add( this.label24 ); + this.groupBox7.Location = new System.Drawing.Point( 10, 310 ); + this.groupBox7.Name = "groupBox7"; + this.groupBox7.Size = new System.Drawing.Size( 835, 55 ); + this.groupBox7.TabIndex = 28; + this.groupBox7.TabStop = false; + this.groupBox7.Text = "Projected Points"; + // + // screenPoint4ColorLabel + // + this.screenPoint4ColorLabel.BackColor = System.Drawing.Color.Black; + this.screenPoint4ColorLabel.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.screenPoint4ColorLabel.Location = new System.Drawing.Point( 710, 40 ); + this.screenPoint4ColorLabel.Name = "screenPoint4ColorLabel"; + this.screenPoint4ColorLabel.Size = new System.Drawing.Size( 115, 4 ); + this.screenPoint4ColorLabel.TabIndex = 27; + // + // screenPoint3ColorLabel + // + this.screenPoint3ColorLabel.BackColor = System.Drawing.Color.Black; + this.screenPoint3ColorLabel.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.screenPoint3ColorLabel.Location = new System.Drawing.Point( 535, 40 ); + this.screenPoint3ColorLabel.Name = "screenPoint3ColorLabel"; + this.screenPoint3ColorLabel.Size = new System.Drawing.Size( 115, 4 ); + this.screenPoint3ColorLabel.TabIndex = 26; + // + // screenPoint2ColorLabel + // + this.screenPoint2ColorLabel.BackColor = System.Drawing.Color.Black; + this.screenPoint2ColorLabel.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.screenPoint2ColorLabel.Location = new System.Drawing.Point( 360, 40 ); + this.screenPoint2ColorLabel.Name = "screenPoint2ColorLabel"; + this.screenPoint2ColorLabel.Size = new System.Drawing.Size( 115, 4 ); + this.screenPoint2ColorLabel.TabIndex = 25; + // + // screenPoint1ColorLabel + // + this.screenPoint1ColorLabel.BackColor = System.Drawing.Color.Black; + this.screenPoint1ColorLabel.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.screenPoint1ColorLabel.Location = new System.Drawing.Point( 185, 40 ); + this.screenPoint1ColorLabel.Name = "screenPoint1ColorLabel"; + this.screenPoint1ColorLabel.Size = new System.Drawing.Size( 115, 4 ); + this.screenPoint1ColorLabel.TabIndex = 16; + // + // screenPoint4Box + // + this.screenPoint4Box.Location = new System.Drawing.Point( 710, 20 ); + this.screenPoint4Box.Name = "screenPoint4Box"; + this.screenPoint4Box.ReadOnly = true; + this.screenPoint4Box.Size = new System.Drawing.Size( 115, 20 ); + this.screenPoint4Box.TabIndex = 8; + // + // label21 + // + this.label21.AutoSize = true; + this.label21.Location = new System.Drawing.Point( 660, 23 ); + this.label21.Name = "label21"; + this.label21.Size = new System.Drawing.Size( 50, 13 ); + this.label21.TabIndex = 7; + this.label21.Text = "Point #4:"; + // + // screenPoint3Box + // + this.screenPoint3Box.Location = new System.Drawing.Point( 535, 20 ); + this.screenPoint3Box.Name = "screenPoint3Box"; + this.screenPoint3Box.ReadOnly = true; + this.screenPoint3Box.Size = new System.Drawing.Size( 115, 20 ); + this.screenPoint3Box.TabIndex = 6; + // + // label22 + // + this.label22.AutoSize = true; + this.label22.Location = new System.Drawing.Point( 485, 23 ); + this.label22.Name = "label22"; + this.label22.Size = new System.Drawing.Size( 50, 13 ); + this.label22.TabIndex = 5; + this.label22.Text = "Point #3:"; + // + // screenPoint2Box + // + this.screenPoint2Box.Location = new System.Drawing.Point( 360, 20 ); + this.screenPoint2Box.Name = "screenPoint2Box"; + this.screenPoint2Box.ReadOnly = true; + this.screenPoint2Box.Size = new System.Drawing.Size( 115, 20 ); + this.screenPoint2Box.TabIndex = 4; + // + // label23 + // + this.label23.AutoSize = true; + this.label23.Location = new System.Drawing.Point( 310, 23 ); + this.label23.Name = "label23"; + this.label23.Size = new System.Drawing.Size( 50, 13 ); + this.label23.TabIndex = 3; + this.label23.Text = "Point #2:"; + // + // screenPoint1Box + // + this.screenPoint1Box.Location = new System.Drawing.Point( 185, 20 ); + this.screenPoint1Box.Name = "screenPoint1Box"; + this.screenPoint1Box.ReadOnly = true; + this.screenPoint1Box.Size = new System.Drawing.Size( 115, 20 ); + this.screenPoint1Box.TabIndex = 2; + // + // label24 + // + this.label24.AutoSize = true; + this.label24.Location = new System.Drawing.Point( 135, 23 ); + this.label24.Name = "label24"; + this.label24.Size = new System.Drawing.Size( 50, 13 ); + this.label24.TabIndex = 1; + this.label24.Text = "Point #1:"; + // + // groupBox8 + // + this.groupBox8.Controls.Add( this.label20 ); + this.groupBox8.Controls.Add( this.estimatedZObjectBox ); + this.groupBox8.Controls.Add( this.label25 ); + this.groupBox8.Controls.Add( this.estimatedYObjectBox ); + this.groupBox8.Controls.Add( this.label26 ); + this.groupBox8.Controls.Add( this.estimatedXObjectBox ); + this.groupBox8.Controls.Add( this.targetTransformationMatrixControl ); + this.groupBox8.Controls.Add( this.label17 ); + this.groupBox8.Controls.Add( this.estimatedYawBox ); + this.groupBox8.Controls.Add( this.label18 ); + this.groupBox8.Controls.Add( this.estimatedPitchBox ); + this.groupBox8.Controls.Add( this.label19 ); + this.groupBox8.Controls.Add( this.estimatedRollBox ); + this.groupBox8.Controls.Add( this.estimatedTransformationMatrixControl ); + this.groupBox8.Location = new System.Drawing.Point( 10, 370 ); + this.groupBox8.Name = "groupBox8"; + this.groupBox8.Size = new System.Drawing.Size( 835, 135 ); + this.groupBox8.TabIndex = 29; + this.groupBox8.TabStop = false; + this.groupBox8.Text = "Pose Estimation"; + // + // label20 + // + this.label20.AutoSize = true; + this.label20.Location = new System.Drawing.Point( 272, 48 ); + this.label20.Name = "label20"; + this.label20.Size = new System.Drawing.Size( 17, 13 ); + this.label20.TabIndex = 42; + this.label20.Text = "Z:"; + // + // estimatedZObjectBox + // + this.estimatedZObjectBox.Location = new System.Drawing.Point( 295, 45 ); + this.estimatedZObjectBox.Name = "estimatedZObjectBox"; + this.estimatedZObjectBox.ReadOnly = true; + this.estimatedZObjectBox.Size = new System.Drawing.Size( 60, 20 ); + this.estimatedZObjectBox.TabIndex = 43; + // + // label25 + // + this.label25.AutoSize = true; + this.label25.Location = new System.Drawing.Point( 157, 48 ); + this.label25.Name = "label25"; + this.label25.Size = new System.Drawing.Size( 17, 13 ); + this.label25.TabIndex = 40; + this.label25.Text = "Y:"; + // + // estimatedYObjectBox + // + this.estimatedYObjectBox.Location = new System.Drawing.Point( 180, 45 ); + this.estimatedYObjectBox.Name = "estimatedYObjectBox"; + this.estimatedYObjectBox.ReadOnly = true; + this.estimatedYObjectBox.Size = new System.Drawing.Size( 60, 20 ); + this.estimatedYObjectBox.TabIndex = 41; + // + // label26 + // + this.label26.AutoSize = true; + this.label26.Location = new System.Drawing.Point( 40, 48 ); + this.label26.Name = "label26"; + this.label26.Size = new System.Drawing.Size( 17, 13 ); + this.label26.TabIndex = 38; + this.label26.Text = "X:"; + // + // estimatedXObjectBox + // + this.estimatedXObjectBox.Location = new System.Drawing.Point( 60, 45 ); + this.estimatedXObjectBox.Name = "estimatedXObjectBox"; + this.estimatedXObjectBox.ReadOnly = true; + this.estimatedXObjectBox.Size = new System.Drawing.Size( 60, 20 ); + this.estimatedXObjectBox.TabIndex = 39; + // + // estimatedYawBox + // + this.estimatedYawBox.Location = new System.Drawing.Point( 60, 20 ); + this.estimatedYawBox.Name = "estimatedYawBox"; + this.estimatedYawBox.ReadOnly = true; + this.estimatedYawBox.Size = new System.Drawing.Size( 60, 20 ); + this.estimatedYawBox.TabIndex = 32; + // + // estimatedPitchBox + // + this.estimatedPitchBox.Location = new System.Drawing.Point( 180, 20 ); + this.estimatedPitchBox.Name = "estimatedPitchBox"; + this.estimatedPitchBox.ReadOnly = true; + this.estimatedPitchBox.Size = new System.Drawing.Size( 60, 20 ); + this.estimatedPitchBox.TabIndex = 34; + // + // estimatedRollBox + // + this.estimatedRollBox.Location = new System.Drawing.Point( 295, 20 ); + this.estimatedRollBox.Name = "estimatedRollBox"; + this.estimatedRollBox.ReadOnly = true; + this.estimatedRollBox.Size = new System.Drawing.Size( 60, 20 ); + this.estimatedRollBox.TabIndex = 36; + // + // estimatedTransformationMatrixControl + // + this.estimatedTransformationMatrixControl.Location = new System.Drawing.Point( 385, 15 ); + this.estimatedTransformationMatrixControl.Name = "estimatedTransformationMatrixControl"; + this.estimatedTransformationMatrixControl.Size = new System.Drawing.Size( 220, 110 ); + this.estimatedTransformationMatrixControl.TabIndex = 30; + this.estimatedTransformationMatrixControl.Title = "Estimated Transformation"; + // + // viewMatrixControl + // + this.viewMatrixControl.Location = new System.Drawing.Point( 395, 195 ); + this.viewMatrixControl.Name = "viewMatrixControl"; + this.viewMatrixControl.Size = new System.Drawing.Size( 220, 110 ); + this.viewMatrixControl.TabIndex = 6; + this.viewMatrixControl.Title = "View Matrix"; + // + // transformationMatrixControl + // + this.transformationMatrixControl.Location = new System.Drawing.Point( 395, 75 ); + this.transformationMatrixControl.Name = "transformationMatrixControl"; + this.transformationMatrixControl.Size = new System.Drawing.Size( 220, 110 ); + this.transformationMatrixControl.TabIndex = 5; + this.transformationMatrixControl.Title = "World Transformation Matrix"; + // + // MainForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF( 6F, 13F ); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size( 856, 517 ); + this.Controls.Add( this.groupBox8 ); + this.Controls.Add( this.groupBox7 ); + this.Controls.Add( this.groupBox6 ); + this.Controls.Add( this.groupBox5 ); + this.Controls.Add( this.viewMatrixControl ); + this.Controls.Add( this.groupBox3 ); + this.Controls.Add( this.groupBox1 ); + this.Controls.Add( this.transformationMatrixControl ); + this.Controls.Add( this.groupBox4 ); + this.Controls.Add( this.groupBox2 ); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.MaximizeBox = false; + this.Name = "MainForm"; + this.Text = "Pose Estimation"; + this.Load += new System.EventHandler( this.MainForm_Load ); + this.groupBox2.ResumeLayout( false ); + this.groupBox2.PerformLayout( ); + this.groupBox4.ResumeLayout( false ); + this.groupBox4.PerformLayout( ); + ( (System.ComponentModel.ISupportInitialize) ( this.errorProvider ) ).EndInit( ); + this.groupBox3.ResumeLayout( false ); + this.groupBox3.PerformLayout( ); + this.groupBox1.ResumeLayout( false ); + this.groupBox1.PerformLayout( ); + this.groupBox5.ResumeLayout( false ); + this.groupBox6.ResumeLayout( false ); + this.groupBox6.PerformLayout( ); + this.groupBox7.ResumeLayout( false ); + this.groupBox7.PerformLayout( ); + this.groupBox8.ResumeLayout( false ); + this.groupBox8.PerformLayout( ); + this.ResumeLayout( false ); + + } + + #endregion + + private System.Windows.Forms.GroupBox groupBox2; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.TextBox yawBox; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.TextBox pitchBox; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.TextBox rollBox; + private System.Windows.Forms.GroupBox groupBox4; + private System.Windows.Forms.Label label10; + private System.Windows.Forms.TextBox zObjectBox; + private System.Windows.Forms.Label label11; + private System.Windows.Forms.TextBox yObjectBox; + private System.Windows.Forms.Label label12; + private System.Windows.Forms.TextBox xObjectBox; + private System.Windows.Forms.ToolTip toolTip; + private System.Windows.Forms.ErrorProvider errorProvider; + private MatrixControl transformationMatrixControl; + private System.Windows.Forms.GroupBox groupBox3; + private System.Windows.Forms.Label label7; + private System.Windows.Forms.TextBox zLookAtBox; + private System.Windows.Forms.Label label8; + private System.Windows.Forms.TextBox yLookAtBox; + private System.Windows.Forms.Label label9; + private System.Windows.Forms.TextBox xLookAtBox; + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.TextBox zCameraBox; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.TextBox yCameraBox; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.TextBox xCameraBox; + private MatrixControl viewMatrixControl; + private System.Windows.Forms.GroupBox groupBox5; + private WorldRendererControl worldRendererControl; + private System.Windows.Forms.GroupBox groupBox6; + private System.Windows.Forms.TextBox objectPoint1Box; + private System.Windows.Forms.Label label13; + private System.Windows.Forms.ComboBox objectTypeCombo; + private System.Windows.Forms.TextBox objectPoint4Box; + private System.Windows.Forms.Label label16; + private System.Windows.Forms.TextBox objectPoint3Box; + private System.Windows.Forms.Label label15; + private System.Windows.Forms.TextBox objectPoint2Box; + private System.Windows.Forms.Label label14; + private System.Windows.Forms.Label objectPoint4ColorLabel; + private System.Windows.Forms.Label objectPoint3ColorLabel; + private System.Windows.Forms.Label objectPoint2ColorLabel; + private System.Windows.Forms.Label objectPoint1ColorLabel; + private System.Windows.Forms.GroupBox groupBox7; + private System.Windows.Forms.Label screenPoint4ColorLabel; + private System.Windows.Forms.Label screenPoint3ColorLabel; + private System.Windows.Forms.Label screenPoint2ColorLabel; + private System.Windows.Forms.Label screenPoint1ColorLabel; + private System.Windows.Forms.TextBox screenPoint4Box; + private System.Windows.Forms.Label label21; + private System.Windows.Forms.TextBox screenPoint3Box; + private System.Windows.Forms.Label label22; + private System.Windows.Forms.TextBox screenPoint2Box; + private System.Windows.Forms.Label label23; + private System.Windows.Forms.TextBox screenPoint1Box; + private System.Windows.Forms.Label label24; + private System.Windows.Forms.GroupBox groupBox8; + private MatrixControl estimatedTransformationMatrixControl; + private System.Windows.Forms.Label label17; + private System.Windows.Forms.TextBox estimatedYawBox; + private System.Windows.Forms.Label label18; + private System.Windows.Forms.TextBox estimatedPitchBox; + private System.Windows.Forms.Label label19; + private System.Windows.Forms.TextBox estimatedRollBox; + private MatrixControl targetTransformationMatrixControl; + private System.Windows.Forms.Label label20; + private System.Windows.Forms.TextBox estimatedZObjectBox; + private System.Windows.Forms.Label label25; + private System.Windows.Forms.TextBox estimatedYObjectBox; + private System.Windows.Forms.Label label26; + private System.Windows.Forms.TextBox estimatedXObjectBox; + } +} + diff --git a/Samples/Math/Pose Estimation/MainForm.cs b/Samples/Math/Pose Estimation/MainForm.cs new file mode 100644 index 00000000..015fb79b --- /dev/null +++ b/Samples/Math/Pose Estimation/MainForm.cs @@ -0,0 +1,413 @@ +// 3D Pose Estimation sample application +// AForge.NET Framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2009-2011 +// contacts@aforgenet.com +// + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Windows.Forms; + +using AForge.Math; +using AForge.Math.Geometry; + +namespace PoseEstimation +{ + public partial class MainForm : Form + { + private int updating = 0; + + // object rotation + private float yaw = 0.0f, pitch = 0.0f, roll = 0.0f; + // object position + private float xObject = 0.0f, yObject = 0.0f, zObject = 0.0f; + // camera position + private float xCamera = 0.0f, yCamera = 0.0f, zCamera = 5.0f; + // the point camera looks at + private float xLookAt = 0.0f, yLookAt = 0.0f, zLookAt = 0.0f; + + // object points for POSIT case + private readonly Vector3[] positObject = new Vector3[4] + { + new Vector3( -0.5f, -0.5f, 0 ), + new Vector3( 0.5f, -0.5f, 0 ), + new Vector3( -0.5f, 0.5f, 0 ), + new Vector3( -0.5f, -0.5f, -1 ), + }; + + // object points for CoPOSIT case + private readonly Vector3[] copositObject = new Vector3[4] + { + new Vector3( -0.5f, -0.5f, 0 ), + new Vector3( 0.5f, -0.5f, 0 ), + new Vector3( 0.5f, 0.5f, 0 ), + new Vector3( -0.5f, 0.5f, 0 ), + }; + + // colors for object's vertices + private readonly Color[] vertexColors = new Color[] + { + Color.Yellow, + Color.Blue, + Color.Red, + Color.Green + }; + + // list of ribs for the POSIT object + private readonly int[,] positRibs = new int[3, 2] + { + { 0, 1 }, + { 0, 2 }, + { 0, 3 }, + }; + + // list of ribs for the CoPOSIT object + private readonly int[,] copositRibs = new int[4, 2] + { + { 0, 1 }, + { 1, 2 }, + { 2, 3 }, + { 3, 0 }, + }; + + private Posit posit = null; + private CoplanarPosit coposit = null; + + private Matrix4x4 transformationMatrix = Matrix4x4.Identity; + private Matrix4x4 viewMatrix = Matrix4x4.Identity; + + public MainForm( ) + { + InitializeComponent( ); + + posit = new Posit( positObject, -200 ); + coposit = new CoplanarPosit( copositObject, 200 ); + } + + // Form got loaded + private void MainForm_Load( object sender, EventArgs e ) + { + StartUpdating( ); + + screenPoint1ColorLabel.BackColor = objectPoint1ColorLabel.BackColor = vertexColors[0]; + screenPoint2ColorLabel.BackColor = objectPoint2ColorLabel.BackColor = vertexColors[1]; + screenPoint3ColorLabel.BackColor = objectPoint3ColorLabel.BackColor = vertexColors[2]; + screenPoint4ColorLabel.BackColor = objectPoint4ColorLabel.BackColor = vertexColors[3]; + + objectTypeCombo.SelectedIndex = 0; + + yawBox.Text = yaw.ToString( ); + pitchBox.Text = pitch.ToString( ); + rollBox.Text = roll.ToString( ); + + xObjectBox.Text = xObject.ToString( ); + yObjectBox.Text = yObject.ToString( ); + zObjectBox.Text = zObject.ToString( ); + + xCameraBox.Text = xCamera.ToString( ); + yCameraBox.Text = yCamera.ToString( ); + zCameraBox.Text = zCamera.ToString( ); + + xLookAtBox.Text = xLookAt.ToString( ); + yLookAtBox.Text = yLookAt.ToString( ); + zLookAtBox.Text = zLookAt.ToString( ); + + EndUpdating( ); + + UpdateTransformationMatrix( ); + UpdateViewMatrix( ); + } + + + private void StartUpdating( ) + { + updating++; + } + + private void EndUpdating( ) + { + updating--; + } + + private bool IsUpdating + { + get { return updating > 0; } + } + + // Parse float value from the text in the specified text box + private bool GetFloatValue( TextBox textBox, ref float floatValue ) + { + bool ret = false; + + if ( float.TryParse( textBox.Text, out floatValue ) ) + { + errorProvider.Clear( ); + ret = true; + } + else + { + errorProvider.SetError( textBox, "Failed parsing float value" ); + } + + return ret; + } + + // Yaw edit box has changed + private void yawBox_TextChanged( object sender, EventArgs e ) + { + if ( !IsUpdating ) + { + if ( GetFloatValue( yawBox, ref yaw ) ) + { + UpdateTransformationMatrix( ); + } + } + } + + // Pitch edit box has changed + private void pitchBox_TextChanged( object sender, EventArgs e ) + { + if ( !IsUpdating ) + { + if ( GetFloatValue( pitchBox, ref pitch ) ) + { + UpdateTransformationMatrix( ); + } + } + } + + // Roll edit box has changed + private void rollBox_TextChanged( object sender, EventArgs e ) + { + if ( !IsUpdating ) + { + if ( GetFloatValue( rollBox, ref roll ) ) + { + UpdateTransformationMatrix( ); + } + } + } + + // Object X position edit box has changed + private void xObjectBox_TextChanged( object sender, EventArgs e ) + { + if ( !IsUpdating ) + { + if ( GetFloatValue( xObjectBox, ref xObject ) ) + { + UpdateTransformationMatrix( ); + } + } + } + + // Object Y position edit box has changed + private void yObjectBox_TextChanged( object sender, EventArgs e ) + { + if ( !IsUpdating ) + { + if ( GetFloatValue( yObjectBox, ref yObject ) ) + { + UpdateTransformationMatrix( ); + } + } + } + + // Object Z position edit box has changed + private void zObjectBox_TextChanged( object sender, EventArgs e ) + { + if ( !IsUpdating ) + { + if ( GetFloatValue( zObjectBox, ref zObject ) ) + { + UpdateTransformationMatrix( ); + } + } + } + + // Camera's X position edit box has changed + private void xCameraBox_TextChanged( object sender, EventArgs e ) + { + if ( !IsUpdating ) + { + if ( GetFloatValue( xCameraBox, ref xCamera ) ) + { + UpdateViewMatrix( ); + } + } + } + + // Camera's Y position edit box has changed + private void yCameraBox_TextChanged( object sender, EventArgs e ) + { + if ( !IsUpdating ) + { + if ( GetFloatValue( yCameraBox, ref yCamera ) ) + { + UpdateViewMatrix( ); + } + } + } + + // Camera's Z position edit box has changed + private void zCameraBox_TextChanged( object sender, EventArgs e ) + { + if ( !IsUpdating ) + { + if ( GetFloatValue( zCameraBox, ref zCamera ) ) + { + UpdateViewMatrix( ); + } + } + } + + // Camera's look at point's X position edit box has changed + private void xLookAtBox_TextChanged( object sender, EventArgs e ) + { + if ( !IsUpdating ) + { + if ( GetFloatValue( xLookAtBox, ref xLookAt ) ) + { + UpdateViewMatrix( ); + } + } + } + + // Camera's look at point's Y position edit box has changed + private void yLookAtBox_TextChanged( object sender, EventArgs e ) + { + if ( !IsUpdating ) + { + if ( GetFloatValue( yLookAtBox, ref yLookAt ) ) + { + UpdateViewMatrix( ); + } + } + } + + // Camera's look at point's Z position edit box has changed + private void zLookAtBox_TextChanged( object sender, EventArgs e ) + { + if ( !IsUpdating ) + { + if ( GetFloatValue( zLookAtBox, ref zLookAt ) ) + { + UpdateViewMatrix( ); + } + } + } + + // Calculate new world transformation matrix + private void UpdateTransformationMatrix( ) + { + float rYaw = (float) ( yaw / 180 * Math.PI ); + float rPitch = (float) ( pitch / 180 * Math.PI ); + float rRoll = (float) ( roll / 180 * Math.PI ); + + transformationMatrix = + Matrix4x4.CreateTranslation( new Vector3( xObject, yObject, zObject ) ) * + Matrix4x4.CreateFromYawPitchRoll( rYaw, rPitch, rRoll ); + + worldRendererControl.WorldMatrix = transformationMatrix; + transformationMatrixControl.SetMatrix( transformationMatrix ); + targetTransformationMatrixControl.SetMatrix( viewMatrix * transformationMatrix ); + + UpdateProjectedPoints( ); + EstimatePose( ); + } + + // Calculate new view transformation matrix + private void UpdateViewMatrix( ) + { + viewMatrix = Matrix4x4.CreateLookAt( + new Vector3( xCamera, yCamera, zCamera ), + new Vector3( xLookAt, yLookAt, zLookAt ) ); + + worldRendererControl.ViewMatrix = viewMatrix; + viewMatrixControl.SetMatrix( viewMatrix ); + targetTransformationMatrixControl.SetMatrix( viewMatrix * transformationMatrix ); + + UpdateProjectedPoints( ); + EstimatePose( ); + } + + // Show current coordinates of object's projected points + private void UpdateProjectedPoints( ) + { + AForge.Point[] projectedPoints = worldRendererControl.ProjectedPoints; + + screenPoint1Box.Text = projectedPoints[0].ToString( ); + screenPoint2Box.Text = projectedPoints[1].ToString( ); + screenPoint3Box.Text = projectedPoints[2].ToString( ); + screenPoint4Box.Text = projectedPoints[3].ToString( ); + } + + // Object type has changed + private void objectTypeCombo_SelectedIndexChanged( object sender, EventArgs e ) + { + Vector3[] vertices = null; + + if ( objectTypeCombo.SelectedIndex == 0 ) + { + vertices = positObject; + worldRendererControl.SetObject( vertices = positObject, vertexColors, positRibs ); + } + else + { + vertices = copositObject; + worldRendererControl.SetObject( vertices = copositObject, vertexColors, copositRibs ); + } + + objectPoint1Box.Text = vertices[0].ToString( ); + objectPoint2Box.Text = vertices[1].ToString( ); + objectPoint3Box.Text = vertices[2].ToString( ); + objectPoint4Box.Text = vertices[3].ToString( ); + + UpdateProjectedPoints( ); + EstimatePose( ); + } + + // Estimate pose of the object from its screen (projected) points + private void EstimatePose( ) + { + AForge.Point[] projectedPoints = worldRendererControl.ProjectedPoints; + Matrix3x3 rotationMatrix = Matrix3x3.Identity; + Vector3 translationVector = new Vector3( 0 ); + + if ( objectTypeCombo.SelectedIndex == 0 ) + { + posit.EstimatePose( projectedPoints, out rotationMatrix, out translationVector ); + } + else + { + coposit.EstimatePose( projectedPoints, out rotationMatrix, out translationVector ); + } + + estimatedTransformationMatrixControl.SetMatrix( + Matrix4x4.CreateTranslation( translationVector ) * + Matrix4x4.CreateFromRotation( rotationMatrix ) ); + + float estimatedYaw; + float estimatedPitch; + float estimatedRoll; + + rotationMatrix.ExtractYawPitchRoll( out estimatedYaw, out estimatedPitch, out estimatedRoll ); + + estimatedYaw *= (float) ( 180.0 / Math.PI ); + estimatedPitch *= (float) ( 180.0 / Math.PI ); + estimatedRoll *= (float) ( 180.0 / Math.PI ); + + estimatedYawBox.Text = estimatedYaw.ToString( "F3" ); + estimatedPitchBox.Text = estimatedPitch.ToString( "F3" ); + estimatedRollBox.Text = estimatedRoll.ToString( "F3" ); + + estimatedXObjectBox.Text = translationVector.X.ToString( "F3" ); + estimatedYObjectBox.Text = translationVector.Y.ToString( "F3" ); + estimatedZObjectBox.Text = translationVector.Z.ToString( "F3" ); + } + } +} diff --git a/Samples/Math/Pose Estimation/MainForm.resx b/Samples/Math/Pose Estimation/MainForm.resx new file mode 100644 index 00000000..833cd4a2 --- /dev/null +++ b/Samples/Math/Pose Estimation/MainForm.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 114, 17 + + \ No newline at end of file diff --git a/Samples/Math/Pose Estimation/MatrixControl.Designer.cs b/Samples/Math/Pose Estimation/MatrixControl.Designer.cs new file mode 100644 index 00000000..853d6b39 --- /dev/null +++ b/Samples/Math/Pose Estimation/MatrixControl.Designer.cs @@ -0,0 +1,238 @@ +namespace PoseEstimation +{ + partial class MatrixControl + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose( bool disposing ) + { + if ( disposing && ( components != null ) ) + { + components.Dispose( ); + } + base.Dispose( disposing ); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent( ) + { + this.groupBox = new System.Windows.Forms.GroupBox( ); + this.i3_j3_Box = new System.Windows.Forms.TextBox( ); + this.i3_j2_Box = new System.Windows.Forms.TextBox( ); + this.i3_j1_Box = new System.Windows.Forms.TextBox( ); + this.i3_j0_Box = new System.Windows.Forms.TextBox( ); + this.i2_j3_Box = new System.Windows.Forms.TextBox( ); + this.i2_j2_Box = new System.Windows.Forms.TextBox( ); + this.i2_j1_Box = new System.Windows.Forms.TextBox( ); + this.i2_j0_Box = new System.Windows.Forms.TextBox( ); + this.i1_j3_Box = new System.Windows.Forms.TextBox( ); + this.i1_j2_Box = new System.Windows.Forms.TextBox( ); + this.i1_j1_Box = new System.Windows.Forms.TextBox( ); + this.i1_j0_Box = new System.Windows.Forms.TextBox( ); + this.i0_j3_Box = new System.Windows.Forms.TextBox( ); + this.i0_j2_Box = new System.Windows.Forms.TextBox( ); + this.i0_j1_Box = new System.Windows.Forms.TextBox( ); + this.i0_j0_Box = new System.Windows.Forms.TextBox( ); + this.groupBox.SuspendLayout( ); + this.SuspendLayout( ); + // + // groupBox + // + this.groupBox.Controls.Add( this.i3_j3_Box ); + this.groupBox.Controls.Add( this.i3_j2_Box ); + this.groupBox.Controls.Add( this.i3_j1_Box ); + this.groupBox.Controls.Add( this.i3_j0_Box ); + this.groupBox.Controls.Add( this.i2_j3_Box ); + this.groupBox.Controls.Add( this.i2_j2_Box ); + this.groupBox.Controls.Add( this.i2_j1_Box ); + this.groupBox.Controls.Add( this.i2_j0_Box ); + this.groupBox.Controls.Add( this.i1_j3_Box ); + this.groupBox.Controls.Add( this.i1_j2_Box ); + this.groupBox.Controls.Add( this.i1_j1_Box ); + this.groupBox.Controls.Add( this.i1_j0_Box ); + this.groupBox.Controls.Add( this.i0_j3_Box ); + this.groupBox.Controls.Add( this.i0_j2_Box ); + this.groupBox.Controls.Add( this.i0_j1_Box ); + this.groupBox.Controls.Add( this.i0_j0_Box ); + this.groupBox.Dock = System.Windows.Forms.DockStyle.Fill; + this.groupBox.Location = new System.Drawing.Point( 0, 0 ); + this.groupBox.Name = "groupBox"; + this.groupBox.Size = new System.Drawing.Size( 230, 110 ); + this.groupBox.TabIndex = 0; + this.groupBox.TabStop = false; + // + // i3_j3_Box + // + this.i3_j3_Box.Location = new System.Drawing.Point( 160, 80 ); + this.i3_j3_Box.Name = "i3_j3_Box"; + this.i3_j3_Box.ReadOnly = true; + this.i3_j3_Box.Size = new System.Drawing.Size( 50, 20 ); + this.i3_j3_Box.TabIndex = 15; + // + // i3_j2_Box + // + this.i3_j2_Box.Location = new System.Drawing.Point( 110, 80 ); + this.i3_j2_Box.Name = "i3_j2_Box"; + this.i3_j2_Box.ReadOnly = true; + this.i3_j2_Box.Size = new System.Drawing.Size( 50, 20 ); + this.i3_j2_Box.TabIndex = 14; + // + // i3_j1_Box + // + this.i3_j1_Box.Location = new System.Drawing.Point( 60, 80 ); + this.i3_j1_Box.Name = "i3_j1_Box"; + this.i3_j1_Box.ReadOnly = true; + this.i3_j1_Box.Size = new System.Drawing.Size( 50, 20 ); + this.i3_j1_Box.TabIndex = 13; + // + // i3_j0_Box + // + this.i3_j0_Box.Location = new System.Drawing.Point( 10, 80 ); + this.i3_j0_Box.Name = "i3_j0_Box"; + this.i3_j0_Box.ReadOnly = true; + this.i3_j0_Box.Size = new System.Drawing.Size( 50, 20 ); + this.i3_j0_Box.TabIndex = 12; + // + // i2_j3_Box + // + this.i2_j3_Box.Location = new System.Drawing.Point( 160, 60 ); + this.i2_j3_Box.Name = "i2_j3_Box"; + this.i2_j3_Box.ReadOnly = true; + this.i2_j3_Box.Size = new System.Drawing.Size( 50, 20 ); + this.i2_j3_Box.TabIndex = 11; + // + // i2_j2_Box + // + this.i2_j2_Box.Location = new System.Drawing.Point( 110, 60 ); + this.i2_j2_Box.Name = "i2_j2_Box"; + this.i2_j2_Box.ReadOnly = true; + this.i2_j2_Box.Size = new System.Drawing.Size( 50, 20 ); + this.i2_j2_Box.TabIndex = 10; + // + // i2_j1_Box + // + this.i2_j1_Box.Location = new System.Drawing.Point( 60, 60 ); + this.i2_j1_Box.Name = "i2_j1_Box"; + this.i2_j1_Box.ReadOnly = true; + this.i2_j1_Box.Size = new System.Drawing.Size( 50, 20 ); + this.i2_j1_Box.TabIndex = 9; + // + // i2_j0_Box + // + this.i2_j0_Box.Location = new System.Drawing.Point( 10, 60 ); + this.i2_j0_Box.Name = "i2_j0_Box"; + this.i2_j0_Box.ReadOnly = true; + this.i2_j0_Box.Size = new System.Drawing.Size( 50, 20 ); + this.i2_j0_Box.TabIndex = 8; + // + // i1_j3_Box + // + this.i1_j3_Box.Location = new System.Drawing.Point( 160, 40 ); + this.i1_j3_Box.Name = "i1_j3_Box"; + this.i1_j3_Box.ReadOnly = true; + this.i1_j3_Box.Size = new System.Drawing.Size( 50, 20 ); + this.i1_j3_Box.TabIndex = 7; + // + // i1_j2_Box + // + this.i1_j2_Box.Location = new System.Drawing.Point( 110, 40 ); + this.i1_j2_Box.Name = "i1_j2_Box"; + this.i1_j2_Box.ReadOnly = true; + this.i1_j2_Box.Size = new System.Drawing.Size( 50, 20 ); + this.i1_j2_Box.TabIndex = 6; + // + // i1_j1_Box + // + this.i1_j1_Box.Location = new System.Drawing.Point( 60, 40 ); + this.i1_j1_Box.Name = "i1_j1_Box"; + this.i1_j1_Box.ReadOnly = true; + this.i1_j1_Box.Size = new System.Drawing.Size( 50, 20 ); + this.i1_j1_Box.TabIndex = 5; + // + // i1_j0_Box + // + this.i1_j0_Box.Location = new System.Drawing.Point( 10, 40 ); + this.i1_j0_Box.Name = "i1_j0_Box"; + this.i1_j0_Box.ReadOnly = true; + this.i1_j0_Box.Size = new System.Drawing.Size( 50, 20 ); + this.i1_j0_Box.TabIndex = 4; + // + // i0_j3_Box + // + this.i0_j3_Box.Location = new System.Drawing.Point( 160, 20 ); + this.i0_j3_Box.Name = "i0_j3_Box"; + this.i0_j3_Box.ReadOnly = true; + this.i0_j3_Box.Size = new System.Drawing.Size( 50, 20 ); + this.i0_j3_Box.TabIndex = 3; + // + // i0_j2_Box + // + this.i0_j2_Box.Location = new System.Drawing.Point( 110, 20 ); + this.i0_j2_Box.Name = "i0_j2_Box"; + this.i0_j2_Box.ReadOnly = true; + this.i0_j2_Box.Size = new System.Drawing.Size( 50, 20 ); + this.i0_j2_Box.TabIndex = 2; + // + // i0_j1_Box + // + this.i0_j1_Box.Location = new System.Drawing.Point( 60, 20 ); + this.i0_j1_Box.Name = "i0_j1_Box"; + this.i0_j1_Box.ReadOnly = true; + this.i0_j1_Box.Size = new System.Drawing.Size( 50, 20 ); + this.i0_j1_Box.TabIndex = 1; + // + // i0_j0_Box + // + this.i0_j0_Box.Location = new System.Drawing.Point( 10, 20 ); + this.i0_j0_Box.Name = "i0_j0_Box"; + this.i0_j0_Box.ReadOnly = true; + this.i0_j0_Box.Size = new System.Drawing.Size( 50, 20 ); + this.i0_j0_Box.TabIndex = 0; + // + // MatrixControl + // + this.AutoScaleDimensions = new System.Drawing.SizeF( 6F, 13F ); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add( this.groupBox ); + this.Name = "MatrixControl"; + this.Size = new System.Drawing.Size( 230, 110 ); + this.Load += new System.EventHandler( this.MatrixControl_Load ); + this.groupBox.ResumeLayout( false ); + this.groupBox.PerformLayout( ); + this.ResumeLayout( false ); + + } + + #endregion + + private System.Windows.Forms.GroupBox groupBox; + private System.Windows.Forms.TextBox i0_j0_Box; + private System.Windows.Forms.TextBox i3_j3_Box; + private System.Windows.Forms.TextBox i3_j2_Box; + private System.Windows.Forms.TextBox i3_j1_Box; + private System.Windows.Forms.TextBox i3_j0_Box; + private System.Windows.Forms.TextBox i2_j3_Box; + private System.Windows.Forms.TextBox i2_j2_Box; + private System.Windows.Forms.TextBox i2_j1_Box; + private System.Windows.Forms.TextBox i2_j0_Box; + private System.Windows.Forms.TextBox i1_j3_Box; + private System.Windows.Forms.TextBox i1_j2_Box; + private System.Windows.Forms.TextBox i1_j1_Box; + private System.Windows.Forms.TextBox i1_j0_Box; + private System.Windows.Forms.TextBox i0_j3_Box; + private System.Windows.Forms.TextBox i0_j2_Box; + private System.Windows.Forms.TextBox i0_j1_Box; + } +} diff --git a/Samples/Math/Pose Estimation/MatrixControl.cs b/Samples/Math/Pose Estimation/MatrixControl.cs new file mode 100644 index 00000000..10bc6e11 --- /dev/null +++ b/Samples/Math/Pose Estimation/MatrixControl.cs @@ -0,0 +1,64 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.Data; +using System.Text; +using System.Windows.Forms; + +using AForge.Math; + +namespace PoseEstimation +{ + public partial class MatrixControl : UserControl + { + private Dictionary textBoxes = new Dictionary( ); + + public string Title + { + get { return groupBox.Text; } + set { groupBox.Text = value; } + } + + public MatrixControl( ) + { + InitializeComponent( ); + } + + public void SetMatrix( Matrix4x4 matrix ) + { + float[] array = matrix.ToArray( ); + + for ( int i = 0, k = 0; i < 4; i++ ) + { + for ( int j = 0; j < 4; j++, k++ ) + { + string textBoxName = string.Format( "i{0}_j{1}_Box", i, j ); + + if ( textBoxes.ContainsKey( textBoxName ) ) + { + textBoxes[textBoxName].Text = FormatFloat( array[k] ); + } + } + } + } + + private static string FormatFloat( float floatValue ) + { + return String.Format( "{0:0.####}", floatValue ); + } + + private void MatrixControl_Load( object sender, EventArgs e ) + { + textBoxes.Clear( ); + + foreach ( Control c in groupBox.Controls ) + { + if ( c is TextBox ) + { + textBoxes.Add( c.Name, (TextBox) c ); + } + } + } + } +} diff --git a/Samples/Math/Pose Estimation/MatrixControl.resx b/Samples/Math/Pose Estimation/MatrixControl.resx new file mode 100644 index 00000000..19dc0dd8 --- /dev/null +++ b/Samples/Math/Pose Estimation/MatrixControl.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Samples/Math/Pose Estimation/Pose Estimation.csproj b/Samples/Math/Pose Estimation/Pose Estimation.csproj new file mode 100644 index 00000000..5a4b2057 --- /dev/null +++ b/Samples/Math/Pose Estimation/Pose Estimation.csproj @@ -0,0 +1,147 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {3B59E324-53FC-4837-AF37-61FC4B51E2D1} + WinExe + Properties + PoseEstimation + Pose Estimation + v2.0 + 512 + + + 3.5 + + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + False + ..\..\..\Release\AForge.dll + + + False + ..\..\..\Release\AForge.Math.dll + + + + + + + + + Form + + + MainForm.cs + + + UserControl + + + MatrixControl.cs + + + + + MainForm.cs + + + MatrixControl.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + WorldRendererControl.cs + + + True + Resources.resx + True + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + UserControl + + + WorldRendererControl.cs + + + + + False + Microsoft .NET Framework 4 %28x86 and x64%29 + true + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 3.1 + true + + + + + \ No newline at end of file diff --git a/Samples/Math/Pose Estimation/Pose Estimation.sln b/Samples/Math/Pose Estimation/Pose Estimation.sln new file mode 100644 index 00000000..d53706f4 --- /dev/null +++ b/Samples/Math/Pose Estimation/Pose Estimation.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual C# Express 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Pose Estimation", "Pose Estimation.csproj", "{3B59E324-53FC-4837-AF37-61FC4B51E2D1}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {3B59E324-53FC-4837-AF37-61FC4B51E2D1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3B59E324-53FC-4837-AF37-61FC4B51E2D1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3B59E324-53FC-4837-AF37-61FC4B51E2D1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3B59E324-53FC-4837-AF37-61FC4B51E2D1}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Samples/Math/Pose Estimation/Program.cs b/Samples/Math/Pose Estimation/Program.cs new file mode 100644 index 00000000..3b686ed1 --- /dev/null +++ b/Samples/Math/Pose Estimation/Program.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Windows.Forms; + +namespace PoseEstimation +{ + static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main( ) + { + Application.EnableVisualStyles( ); + Application.SetCompatibleTextRenderingDefault( false ); + Application.Run( new MainForm( ) ); + } + } +} diff --git a/Samples/Math/Pose Estimation/Properties/AssemblyInfo.cs b/Samples/Math/Pose Estimation/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..8cd2b3ef --- /dev/null +++ b/Samples/Math/Pose Estimation/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle( "3D Pose Estimation" )] +[assembly: AssemblyDescription( "3D Pose Estimation Sample" )] +[assembly: AssemblyConfiguration( "" )] +[assembly: AssemblyCompany( "AForge" )] +[assembly: AssemblyProduct( "AForge.NET" )] +[assembly: AssemblyCopyright( "AForge © 2011" )] +[assembly: AssemblyTrademark( "" )] +[assembly: AssemblyCulture( "" )] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible( false )] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid( "43b2f529-cf41-4d57-8dc0-4d1ab0dabfae" )] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion( "1.0.0.0" )] +[assembly: AssemblyFileVersion( "1.0.0.0" )] diff --git a/Samples/Math/Pose Estimation/Properties/Resources.Designer.cs b/Samples/Math/Pose Estimation/Properties/Resources.Designer.cs new file mode 100644 index 00000000..b4fbbd66 --- /dev/null +++ b/Samples/Math/Pose Estimation/Properties/Resources.Designer.cs @@ -0,0 +1,63 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.4952 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace PoseEstimation.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("PoseEstimation.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + } +} diff --git a/Samples/Math/Pose Estimation/Properties/Resources.resx b/Samples/Math/Pose Estimation/Properties/Resources.resx new file mode 100644 index 00000000..af7dbebb --- /dev/null +++ b/Samples/Math/Pose Estimation/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Samples/Math/Pose Estimation/Properties/Settings.Designer.cs b/Samples/Math/Pose Estimation/Properties/Settings.Designer.cs new file mode 100644 index 00000000..53ff9464 --- /dev/null +++ b/Samples/Math/Pose Estimation/Properties/Settings.Designer.cs @@ -0,0 +1,26 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.4952 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace PoseEstimation.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "9.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + } +} diff --git a/Samples/Math/Pose Estimation/Properties/Settings.settings b/Samples/Math/Pose Estimation/Properties/Settings.settings new file mode 100644 index 00000000..39645652 --- /dev/null +++ b/Samples/Math/Pose Estimation/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Samples/Math/Pose Estimation/WorldRendererControl.Designer.cs b/Samples/Math/Pose Estimation/WorldRendererControl.Designer.cs new file mode 100644 index 00000000..70a80151 --- /dev/null +++ b/Samples/Math/Pose Estimation/WorldRendererControl.Designer.cs @@ -0,0 +1,46 @@ +namespace PoseEstimation +{ + partial class WorldRendererControl + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose( bool disposing ) + { + if ( disposing && ( components != null ) ) + { + components.Dispose( ); + } + base.Dispose( disposing ); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent( ) + { + this.SuspendLayout( ); + // + // WorldRendererControl + // + this.AutoScaleDimensions = new System.Drawing.SizeF( 6F, 13F ); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Name = "WorldRendererControl"; + this.Size = new System.Drawing.Size( 154, 150 ); + this.Paint += new System.Windows.Forms.PaintEventHandler( this.WorldRendererControl_Paint ); + this.ResumeLayout( false ); + + } + + #endregion + } +} diff --git a/Samples/Math/Pose Estimation/WorldRendererControl.cs b/Samples/Math/Pose Estimation/WorldRendererControl.cs new file mode 100644 index 00000000..fd388e4e --- /dev/null +++ b/Samples/Math/Pose Estimation/WorldRendererControl.cs @@ -0,0 +1,163 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.Data; +using System.Text; +using System.Windows.Forms; + +using AForge.Math; + +namespace PoseEstimation +{ + public partial class WorldRendererControl : UserControl + { + private Vector3[] objectPoints = null; + private Vector3[] objectScenePoints = null; + private AForge.Point[] projectedPoints = null; + private Color[] colors = null; + private int[,] lines = null; + + + private Matrix4x4 worldMatrix = new Matrix4x4( ); + private Matrix4x4 viewMatrix = new Matrix4x4( ); + private Matrix4x4 perspectiveMatrix = new Matrix4x4( ); + + public Matrix4x4 WorldMatrix + { + get { return worldMatrix; } + set + { + worldMatrix = value; + Recalculate( ); + } + } + + public Matrix4x4 ViewMatrix + { + get { return viewMatrix; } + set + { + viewMatrix = value; + Recalculate( ); + } + } + + public AForge.Point[] ProjectedPoints + { + get { return projectedPoints; } + } + + public WorldRendererControl( ) + { + InitializeComponent( ); + + objectPoints = new Vector3[] + { + new Vector3( 0, 0, 0 ), + }; + + colors = new Color[] + { + Color.White, + }; + + lines = new int[0, 2]; + + // create default matrices + worldMatrix = Matrix4x4.Identity; + viewMatrix = Matrix4x4.CreateLookAt( new Vector3( 0, 0, 5 ), new Vector3( 0, 0, 0 ) ); + perspectiveMatrix = Matrix4x4.CreatePerspective( 1, 1, 1, 1000 ); + + Recalculate( ); + } + + public void SetObject( Vector3[] vertices, Color[] colors, int[,] ribs ) + { + if ( vertices.Length != colors.Length ) + { + throw new ArgumentException( "Number of colors must be equal to number of vertices." ); + } + + if ( ribs.GetLength( 1 ) != 2 ) + { + throw new ArgumentException( "Ribs array must have 2 coordinates per rib." ); + } + + this.objectPoints = (Vector3[]) vertices.Clone( ); + this.colors = (Color[]) colors.Clone( ); + this.lines = (int[,]) ribs.Clone( ); + + Recalculate( ); + } + + private void Recalculate( ) + { + int pointsCount = objectPoints.Length; + objectScenePoints = new Vector3[pointsCount]; + projectedPoints = new AForge.Point[pointsCount]; + + int cx = ClientRectangle.Width / 2; + int cy = ClientRectangle.Height / 2; + + for ( int i = 0; i < pointsCount; i++ ) + { + objectScenePoints[i] = ( perspectiveMatrix * + ( viewMatrix * + ( worldMatrix * objectPoints[i].ToVector4( ) ) ) ).ToVector3( ); + + projectedPoints[i] = new AForge.Point( + (int) ( cx * objectScenePoints[i].X ), + (int) ( cy * objectScenePoints[i].Y ) ); + } + + Invalidate( ); + } + + private void WorldRendererControl_Paint( object sender, PaintEventArgs e ) + { + Graphics g = e.Graphics; + Pen linesPen = new Pen( Color.White ); + + using ( SolidBrush brush = new SolidBrush( Color.Black ) ) + { + g.FillRectangle( brush, this.ClientRectangle ); + } + + if ( projectedPoints != null ) + { + int cx = ClientRectangle.Width / 2; + int cy = ClientRectangle.Height / 2; + + Point[] screenPoints = new Point[projectedPoints.Length]; + + for ( int i = 0, n = projectedPoints.Length; i < n; i++ ) + { + screenPoints[i] = new Point( (int) ( cx + projectedPoints[i].X ), + (int) ( cy - projectedPoints[i].Y ) ); + } + + for ( int i = 0; i < lines.GetLength( 0 ); i++ ) + { + int lineStart = lines[i, 0]; + int lineEnd = lines[i, 1]; + + if ( ( lineStart < projectedPoints.Length ) && ( lineEnd < projectedPoints.Length ) ) + { + g.DrawLine( linesPen, screenPoints[lineStart], screenPoints[lineEnd]); + } + } + + for ( int i = 0; i < projectedPoints.Length; i++ ) + { + using ( SolidBrush pointsBrush = new SolidBrush( colors[i] ) ) + { + g.FillRectangle( pointsBrush, screenPoints[i].X - 2, screenPoints[i].Y - 2, 5, 5 ); + } + } + } + + linesPen.Dispose( ); + } + } +} diff --git a/Samples/Math/Pose Estimation/WorldRendererControl.resx b/Samples/Math/Pose Estimation/WorldRendererControl.resx new file mode 100644 index 00000000..19dc0dd8 --- /dev/null +++ b/Samples/Math/Pose Estimation/WorldRendererControl.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Samples/Neuro/Back Propagation/Approximation/App.ico b/Samples/Neuro/Back Propagation/Approximation/App.ico new file mode 100644 index 00000000..3a5525fd Binary files /dev/null and b/Samples/Neuro/Back Propagation/Approximation/App.ico differ diff --git a/Samples/Neuro/Back Propagation/Approximation/Approximation.csproj b/Samples/Neuro/Back Propagation/Approximation/Approximation.csproj new file mode 100644 index 00000000..d930ffd9 --- /dev/null +++ b/Samples/Neuro/Back Propagation/Approximation/Approximation.csproj @@ -0,0 +1,172 @@ + + + + Local + 9.0.21022 + 2.0 + {1A7BCB9F-5DD2-4C16-9969-88C31720865F} + Debug + AnyCPU + App.ico + + + Approximation + + + JScript + Grid + IE50 + false + WinExe + Approximation + OnBuildSuccess + + + + + + + 3.5 + v2.0 + false + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + true + + + bin\Debug\ + false + 285212672 + false + + + DEBUG;TRACE + + + true + 4096 + false + + + false + false + false + false + 4 + full + prompt + + + bin\Release\ + false + 285212672 + false + + + TRACE + + + false + 4096 + false + + + true + false + false + false + 4 + none + prompt + + + + False + ..\..\..\..\Release\AForge.dll + + + False + ..\..\..\..\Release\AForge.Controls.dll + + + False + ..\..\..\..\Release\AForge.Neuro.dll + + + System + + + System.Data + + + System.Drawing + + + System.Windows.Forms + + + System.XML + + + + + + + Form + + + MainForm.cs + + + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 2.0 %28x86%29 + false + + + False + .NET Framework 3.0 %28x86%29 + false + + + False + .NET Framework 3.5 + true + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 3.1 + true + + + + + + + + + + \ No newline at end of file diff --git a/Samples/Neuro/Back Propagation/Approximation/Approximation.sln b/Samples/Neuro/Back Propagation/Approximation/Approximation.sln new file mode 100644 index 00000000..5ddc6763 --- /dev/null +++ b/Samples/Neuro/Back Propagation/Approximation/Approximation.sln @@ -0,0 +1,19 @@ +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual C# Express 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Approximation", "Approximation.csproj", "{1A7BCB9F-5DD2-4C16-9969-88C31720865F}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {1A7BCB9F-5DD2-4C16-9969-88C31720865F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1A7BCB9F-5DD2-4C16-9969-88C31720865F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1A7BCB9F-5DD2-4C16-9969-88C31720865F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1A7BCB9F-5DD2-4C16-9969-88C31720865F}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Samples/Neuro/Back Propagation/Approximation/AssemblyInfo.cs b/Samples/Neuro/Back Propagation/Approximation/AssemblyInfo.cs new file mode 100644 index 00000000..f8856f79 --- /dev/null +++ b/Samples/Neuro/Back Propagation/Approximation/AssemblyInfo.cs @@ -0,0 +1,59 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly: AssemblyTitle( "Neuro Approximation" )] +[assembly: AssemblyDescription( "Neuro Approximation sample" )] +[assembly: AssemblyConfiguration( "" )] +[assembly: AssemblyCompany( "AForge" )] +[assembly: AssemblyProduct( "AForge.NET" )] +[assembly: AssemblyCopyright( "AForge © 2008" )] +[assembly: AssemblyTrademark( "" )] +[assembly: AssemblyCulture( "" )] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion( "2.0.0.0" )] +[assembly: AssemblyFileVersion( "2.0.0.0" )] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign( false )] +[assembly: AssemblyKeyFile( "" )] +[assembly: AssemblyKeyName( "" )] diff --git a/Samples/Neuro/Back Propagation/Approximation/Data Samples/sample1.csv b/Samples/Neuro/Back Propagation/Approximation/Data Samples/sample1.csv new file mode 100644 index 00000000..817e4422 --- /dev/null +++ b/Samples/Neuro/Back Propagation/Approximation/Data Samples/sample1.csv @@ -0,0 +1,8 @@ +1,1 +2,1.5 +3,2.5 +4,4 +5,6 +6,8.5 +7,11.5 +8,15 diff --git a/Samples/Neuro/Back Propagation/Approximation/Data Samples/sample2.csv b/Samples/Neuro/Back Propagation/Approximation/Data Samples/sample2.csv new file mode 100644 index 00000000..d0de18ac --- /dev/null +++ b/Samples/Neuro/Back Propagation/Approximation/Data Samples/sample2.csv @@ -0,0 +1,9 @@ +1,0 +2,4 +3,7 +4,9 +5,10 +6,9 +7,7 +8,4 +9,0 diff --git a/Samples/Neuro/Back Propagation/Approximation/MainForm.cs b/Samples/Neuro/Back Propagation/Approximation/MainForm.cs new file mode 100644 index 00000000..86071dfa --- /dev/null +++ b/Samples/Neuro/Back Propagation/Approximation/MainForm.cs @@ -0,0 +1,724 @@ +// Approximation using Mutli-Layer Neural Network +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2006-2011 +// contacts@aforgenet.com +// + +using System; +using System.Drawing; +using System.Collections; +using System.ComponentModel; +using System.Windows.Forms; +using System.Data; + +using System.IO; +using System.Threading; + +using AForge; +using AForge.Neuro; +using AForge.Neuro.Learning; +using AForge.Controls; + +namespace Approximation +{ + /// + /// Summary description for Form1. + /// + public class MainForm : System.Windows.Forms.Form + { + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.ListView dataList; + private System.Windows.Forms.Button loadDataButton; + private System.Windows.Forms.ColumnHeader xColumnHeader; + private System.Windows.Forms.ColumnHeader yColumnHeader; + private System.Windows.Forms.OpenFileDialog openFileDialog; + private System.Windows.Forms.GroupBox groupBox2; + private AForge.Controls.Chart chart; + private System.Windows.Forms.GroupBox groupBox3; + private System.Windows.Forms.TextBox momentumBox; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.TextBox alphaBox; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.TextBox learningRateBox; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label8; + private System.Windows.Forms.TextBox iterationsBox; + private System.Windows.Forms.Label label10; + private System.Windows.Forms.Label label9; + private System.Windows.Forms.GroupBox groupBox4; + private System.Windows.Forms.TextBox currentErrorBox; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.TextBox currentIterationBox; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.Button stopButton; + private System.Windows.Forms.Button startButton; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.TextBox neuronsBox; + /// + /// Required designer variable. + /// + private System.ComponentModel.Container components = null; + + private double[,] data = null; + + private double learningRate = 0.1; + private double momentum = 0.0; + private double sigmoidAlphaValue = 2.0; + private int neuronsInFirstLayer = 20; + private int iterations = 1000; + + private Thread workerThread = null; + private volatile bool needToStop = false; + + // Constructor + public MainForm( ) + { + // + // Required for Windows Form Designer support + // + InitializeComponent(); + + // init chart control + chart.AddDataSeries( "data", Color.Red, Chart.SeriesType.Dots, 5 ); + chart.AddDataSeries( "solution", Color.Blue, Chart.SeriesType.Line, 1 ); + + // init controls + UpdateSettings( ); + } + + /// + /// Clean up any resources being used. + /// + protected override void Dispose( bool disposing ) + { + if( disposing ) + { + if (components != null) + { + components.Dispose(); + } + } + base.Dispose( disposing ); + } + + #region Windows Form Designer generated code + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.dataList = new System.Windows.Forms.ListView(); + this.loadDataButton = new System.Windows.Forms.Button(); + this.xColumnHeader = new System.Windows.Forms.ColumnHeader(); + this.yColumnHeader = new System.Windows.Forms.ColumnHeader(); + this.openFileDialog = new System.Windows.Forms.OpenFileDialog(); + this.groupBox2 = new System.Windows.Forms.GroupBox(); + this.chart = new AForge.Controls.Chart(); + this.groupBox3 = new System.Windows.Forms.GroupBox(); + this.momentumBox = new System.Windows.Forms.TextBox(); + this.label6 = new System.Windows.Forms.Label(); + this.alphaBox = new System.Windows.Forms.TextBox(); + this.label2 = new System.Windows.Forms.Label(); + this.learningRateBox = new System.Windows.Forms.TextBox(); + this.label1 = new System.Windows.Forms.Label(); + this.label8 = new System.Windows.Forms.Label(); + this.iterationsBox = new System.Windows.Forms.TextBox(); + this.label10 = new System.Windows.Forms.Label(); + this.label9 = new System.Windows.Forms.Label(); + this.groupBox4 = new System.Windows.Forms.GroupBox(); + this.currentErrorBox = new System.Windows.Forms.TextBox(); + this.label3 = new System.Windows.Forms.Label(); + this.currentIterationBox = new System.Windows.Forms.TextBox(); + this.label5 = new System.Windows.Forms.Label(); + this.stopButton = new System.Windows.Forms.Button(); + this.startButton = new System.Windows.Forms.Button(); + this.label4 = new System.Windows.Forms.Label(); + this.neuronsBox = new System.Windows.Forms.TextBox(); + this.groupBox1.SuspendLayout(); + this.groupBox2.SuspendLayout(); + this.groupBox3.SuspendLayout(); + this.groupBox4.SuspendLayout(); + this.SuspendLayout(); + // + // groupBox1 + // + this.groupBox1.Controls.Add(this.dataList); + this.groupBox1.Controls.Add(this.loadDataButton); + this.groupBox1.Location = new System.Drawing.Point(10, 10); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(180, 320); + this.groupBox1.TabIndex = 1; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "Data"; + // + // dataList + // + this.dataList.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { + this.xColumnHeader, + this.yColumnHeader}); + this.dataList.FullRowSelect = true; + this.dataList.GridLines = true; + this.dataList.Location = new System.Drawing.Point(10, 20); + this.dataList.Name = "dataList"; + this.dataList.Size = new System.Drawing.Size(160, 255); + this.dataList.TabIndex = 0; + this.dataList.View = System.Windows.Forms.View.Details; + // + // loadDataButton + // + this.loadDataButton.Location = new System.Drawing.Point(10, 285); + this.loadDataButton.Name = "loadDataButton"; + this.loadDataButton.TabIndex = 1; + this.loadDataButton.Text = "&Load"; + this.loadDataButton.Click += new System.EventHandler(this.loadDataButton_Click); + // + // xColumnHeader + // + this.xColumnHeader.Text = "X"; + // + // yColumnHeader + // + this.yColumnHeader.Text = "Y"; + // + // openFileDialog + // + this.openFileDialog.Filter = "CSV (Comma delimited) (*.csv)|*.csv"; + this.openFileDialog.Title = "Select data file"; + // + // groupBox2 + // + this.groupBox2.Controls.Add(this.chart); + this.groupBox2.Location = new System.Drawing.Point(200, 10); + this.groupBox2.Name = "groupBox2"; + this.groupBox2.Size = new System.Drawing.Size(300, 320); + this.groupBox2.TabIndex = 2; + this.groupBox2.TabStop = false; + this.groupBox2.Text = "Function"; + // + // chart + // + this.chart.Location = new System.Drawing.Point(10, 20); + this.chart.Name = "chart"; + this.chart.Size = new System.Drawing.Size(280, 290); + this.chart.TabIndex = 0; + // + // groupBox3 + // + this.groupBox3.Controls.Add(this.neuronsBox); + this.groupBox3.Controls.Add(this.label4); + this.groupBox3.Controls.Add(this.momentumBox); + this.groupBox3.Controls.Add(this.label6); + this.groupBox3.Controls.Add(this.alphaBox); + this.groupBox3.Controls.Add(this.label2); + this.groupBox3.Controls.Add(this.learningRateBox); + this.groupBox3.Controls.Add(this.label1); + this.groupBox3.Controls.Add(this.label8); + this.groupBox3.Controls.Add(this.iterationsBox); + this.groupBox3.Controls.Add(this.label10); + this.groupBox3.Controls.Add(this.label9); + this.groupBox3.Location = new System.Drawing.Point(510, 10); + this.groupBox3.Name = "groupBox3"; + this.groupBox3.Size = new System.Drawing.Size(195, 195); + this.groupBox3.TabIndex = 4; + this.groupBox3.TabStop = false; + this.groupBox3.Text = "Settings"; + // + // momentumBox + // + this.momentumBox.Location = new System.Drawing.Point(125, 45); + this.momentumBox.Name = "momentumBox"; + this.momentumBox.Size = new System.Drawing.Size(60, 20); + this.momentumBox.TabIndex = 3; + this.momentumBox.Text = ""; + // + // label6 + // + this.label6.Location = new System.Drawing.Point(10, 47); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(82, 17); + this.label6.TabIndex = 2; + this.label6.Text = "Momentum:"; + // + // alphaBox + // + this.alphaBox.Location = new System.Drawing.Point(125, 70); + this.alphaBox.Name = "alphaBox"; + this.alphaBox.Size = new System.Drawing.Size(60, 20); + this.alphaBox.TabIndex = 5; + this.alphaBox.Text = ""; + // + // label2 + // + this.label2.Location = new System.Drawing.Point(10, 72); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(120, 15); + this.label2.TabIndex = 4; + this.label2.Text = "Sigmoid\'s alpha value:"; + // + // learningRateBox + // + this.learningRateBox.Location = new System.Drawing.Point(125, 20); + this.learningRateBox.Name = "learningRateBox"; + this.learningRateBox.Size = new System.Drawing.Size(60, 20); + this.learningRateBox.TabIndex = 1; + this.learningRateBox.Text = ""; + // + // label1 + // + this.label1.Location = new System.Drawing.Point(10, 22); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(78, 14); + this.label1.TabIndex = 0; + this.label1.Text = "Learning rate:"; + // + // label8 + // + this.label8.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + this.label8.Location = new System.Drawing.Point(10, 147); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size(175, 2); + this.label8.TabIndex = 22; + // + // iterationsBox + // + this.iterationsBox.Location = new System.Drawing.Point(125, 155); + this.iterationsBox.Name = "iterationsBox"; + this.iterationsBox.Size = new System.Drawing.Size(60, 20); + this.iterationsBox.TabIndex = 9; + this.iterationsBox.Text = ""; + // + // label10 + // + this.label10.Font = new System.Drawing.Font("Microsoft Sans Serif", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); + this.label10.Location = new System.Drawing.Point(126, 175); + this.label10.Name = "label10"; + this.label10.Size = new System.Drawing.Size(58, 14); + this.label10.TabIndex = 25; + this.label10.Text = "( 0 - inifinity )"; + // + // label9 + // + this.label9.Location = new System.Drawing.Point(10, 157); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size(70, 16); + this.label9.TabIndex = 8; + this.label9.Text = "Iterations:"; + // + // groupBox4 + // + this.groupBox4.Controls.Add(this.currentErrorBox); + this.groupBox4.Controls.Add(this.label3); + this.groupBox4.Controls.Add(this.currentIterationBox); + this.groupBox4.Controls.Add(this.label5); + this.groupBox4.Location = new System.Drawing.Point(510, 210); + this.groupBox4.Name = "groupBox4"; + this.groupBox4.Size = new System.Drawing.Size(195, 75); + this.groupBox4.TabIndex = 6; + this.groupBox4.TabStop = false; + this.groupBox4.Text = "Current iteration"; + // + // currentErrorBox + // + this.currentErrorBox.Location = new System.Drawing.Point(125, 45); + this.currentErrorBox.Name = "currentErrorBox"; + this.currentErrorBox.ReadOnly = true; + this.currentErrorBox.Size = new System.Drawing.Size(60, 20); + this.currentErrorBox.TabIndex = 3; + this.currentErrorBox.Text = ""; + // + // label3 + // + this.label3.Location = new System.Drawing.Point(10, 47); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(70, 16); + this.label3.TabIndex = 2; + this.label3.Text = "Error:"; + // + // currentIterationBox + // + this.currentIterationBox.Location = new System.Drawing.Point(125, 20); + this.currentIterationBox.Name = "currentIterationBox"; + this.currentIterationBox.ReadOnly = true; + this.currentIterationBox.Size = new System.Drawing.Size(60, 20); + this.currentIterationBox.TabIndex = 1; + this.currentIterationBox.Text = ""; + // + // label5 + // + this.label5.Location = new System.Drawing.Point(10, 22); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(70, 16); + this.label5.TabIndex = 0; + this.label5.Text = "Iteration:"; + // + // stopButton + // + this.stopButton.Enabled = false; + this.stopButton.Location = new System.Drawing.Point(630, 305); + this.stopButton.Name = "stopButton"; + this.stopButton.TabIndex = 8; + this.stopButton.Text = "S&top"; + this.stopButton.Click += new System.EventHandler(this.stopButton_Click); + // + // startButton + // + this.startButton.Enabled = false; + this.startButton.Location = new System.Drawing.Point(540, 305); + this.startButton.Name = "startButton"; + this.startButton.TabIndex = 7; + this.startButton.Text = "&Start"; + this.startButton.Click += new System.EventHandler(this.startButton_Click); + // + // label4 + // + this.label4.Location = new System.Drawing.Point(10, 97); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(115, 15); + this.label4.TabIndex = 6; + this.label4.Text = "Neurons in first layer:"; + // + // neuronsBox + // + this.neuronsBox.Location = new System.Drawing.Point(125, 95); + this.neuronsBox.Name = "neuronsBox"; + this.neuronsBox.Size = new System.Drawing.Size(60, 20); + this.neuronsBox.TabIndex = 7; + this.neuronsBox.Text = ""; + // + // MainForm + // + this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); + this.ClientSize = new System.Drawing.Size(714, 338); + this.Controls.Add(this.stopButton); + this.Controls.Add(this.startButton); + this.Controls.Add(this.groupBox4); + this.Controls.Add(this.groupBox3); + this.Controls.Add(this.groupBox2); + this.Controls.Add(this.groupBox1); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.MaximizeBox = false; + this.Name = "MainForm"; + this.Text = "Approximation using Multi-Layer Neural Network"; + this.Closing += new System.ComponentModel.CancelEventHandler(this.MainForm_Closing); + this.groupBox1.ResumeLayout(false); + this.groupBox2.ResumeLayout(false); + this.groupBox3.ResumeLayout(false); + this.groupBox4.ResumeLayout(false); + this.ResumeLayout(false); + + } + #endregion + + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main( ) + { + Application.Run( new MainForm( ) ); + } + + // Delegates to enable async calls for setting controls properties + private delegate void SetTextCallback( System.Windows.Forms.Control control, string text ); + + // Thread safe updating of control's text property + private void SetText( System.Windows.Forms.Control control, string text ) + { + if ( control.InvokeRequired ) + { + SetTextCallback d = new SetTextCallback( SetText ); + Invoke( d, new object[] { control, text } ); + } + else + { + control.Text = text; + } + } + + // On main form closing + private void MainForm_Closing(object sender, System.ComponentModel.CancelEventArgs e) + { + // check if worker thread is running + if ( ( workerThread != null ) && ( workerThread.IsAlive ) ) + { + needToStop = true; + while ( !workerThread.Join( 100 ) ) + Application.DoEvents( ); + } + } + + // Update settings controls + private void UpdateSettings( ) + { + learningRateBox.Text = learningRate.ToString( ); + momentumBox.Text = momentum.ToString( ); + alphaBox.Text = sigmoidAlphaValue.ToString( ); + neuronsBox.Text = neuronsInFirstLayer.ToString( ); + iterationsBox.Text = iterations.ToString( ); + } + + // Load data + private void loadDataButton_Click(object sender, System.EventArgs e) + { + // show file selection dialog + if ( openFileDialog.ShowDialog( ) == DialogResult.OK ) + { + StreamReader reader = null; + // read maximum 50 points + float[,] tempData = new float[50, 2]; + float minX = float.MaxValue; + float maxX = float.MinValue; + + try + { + // open selected file + reader = File.OpenText( openFileDialog.FileName ); + string str = null; + int i = 0; + + // read the data + while ( ( i < 50 ) && ( ( str = reader.ReadLine( ) ) != null ) ) + { + string[] strs = str.Split( ';' ); + if ( strs.Length == 1 ) + strs = str.Split( ',' ); + // parse X + tempData[i, 0] = float.Parse( strs[0] ); + tempData[i, 1] = float.Parse( strs[1] ); + + // search for min value + if ( tempData[i, 0] < minX ) + minX = tempData[i, 0]; + // search for max value + if ( tempData[i, 0] > maxX ) + maxX = tempData[i, 0]; + + i++; + } + + // allocate and set data + data = new double[i, 2]; + Array.Copy( tempData, 0, data, 0, i * 2 ); + } + catch (Exception) + { + MessageBox.Show( "Failed reading the file", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error ); + return; + } + finally + { + // close file + if ( reader != null ) + reader.Close( ); + } + + // update list and chart + UpdateDataListView( ); + chart.RangeX = new Range( minX, maxX ); + chart.UpdateDataSeries( "data", data ); + chart.UpdateDataSeries( "solution", null ); + // enable "Start" button + startButton.Enabled = true; + } + } + + // Update data in list view + private void UpdateDataListView( ) + { + // remove all current records + dataList.Items.Clear( ); + // add new records + for ( int i = 0, n = data.GetLength( 0 ); i < n; i++ ) + { + dataList.Items.Add( data[i, 0].ToString( ) ); + dataList.Items[i].SubItems.Add( data[i, 1].ToString( ) ); + } + } + + // Delegates to enable async calls for setting controls properties + private delegate void EnableCallback( bool enable ); + + // Enable/disale controls (safe for threading) + private void EnableControls( bool enable ) + { + if ( InvokeRequired ) + { + EnableCallback d = new EnableCallback( EnableControls ); + Invoke( d, new object[] { enable } ); + } + else + { + loadDataButton.Enabled = enable; + learningRateBox.Enabled = enable; + momentumBox.Enabled = enable; + alphaBox.Enabled = enable; + neuronsBox.Enabled = enable; + iterationsBox.Enabled = enable; + + startButton.Enabled = enable; + stopButton.Enabled = !enable; + } + } + + // On button "Start" + private void startButton_Click( object sender, System.EventArgs e ) + { + // get learning rate + try + { + learningRate = Math.Max( 0.00001, Math.Min( 1, double.Parse( learningRateBox.Text ) ) ); + } + catch + { + learningRate = 0.1; + } + // get momentum + try + { + momentum = Math.Max( 0, Math.Min( 0.5, double.Parse( momentumBox.Text ) ) ); + } + catch + { + momentum = 0; + } + // get sigmoid's alpha value + try + { + sigmoidAlphaValue = Math.Max( 0.001, Math.Min( 50, double.Parse( alphaBox.Text ) ) ); + } + catch + { + sigmoidAlphaValue = 2; + } + // get neurons count in first layer + try + { + neuronsInFirstLayer = Math.Max( 5, Math.Min( 50, int.Parse( neuronsBox.Text ) ) ); + } + catch + { + neuronsInFirstLayer = 20; + } + // iterations + try + { + iterations = Math.Max( 0, int.Parse( iterationsBox.Text ) ); + } + catch + { + iterations = 1000; + } + // update settings controls + UpdateSettings( ); + + // disable all settings controls except "Stop" button + EnableControls( false ); + + // run worker thread + needToStop = false; + workerThread = new Thread( new ThreadStart( SearchSolution ) ); + workerThread.Start( ); + } + + // On button "Stop" + private void stopButton_Click( object sender, System.EventArgs e ) + { + // stop worker thread + needToStop = true; + while ( !workerThread.Join( 100 ) ) + Application.DoEvents( ); + workerThread = null; + } + + // Worker thread + void SearchSolution( ) + { + // number of learning samples + int samples = data.GetLength( 0 ); + // data transformation factor + double yFactor = 1.7 / chart.RangeY.Length; + double yMin = chart.RangeY.Min; + double xFactor = 2.0 / chart.RangeX.Length; + double xMin = chart.RangeX.Min; + + // prepare learning data + double[][] input = new double[samples][]; + double[][] output = new double[samples][]; + + for ( int i = 0; i < samples; i++ ) + { + input[i] = new double[1]; + output[i] = new double[1]; + + // set input + input[i][0] = ( data[i, 0] - xMin ) * xFactor - 1.0; + // set output + output[i][0] = ( data[i, 1] - yMin ) * yFactor - 0.85; + } + + // create multi-layer neural network + ActivationNetwork network = new ActivationNetwork( + new BipolarSigmoidFunction( sigmoidAlphaValue ), + 1, neuronsInFirstLayer, 1 ); + // create teacher + BackPropagationLearning teacher = new BackPropagationLearning( network ); + // set learning rate and momentum + teacher.LearningRate = learningRate; + teacher.Momentum = momentum; + + // iterations + int iteration = 1; + + // solution array + double[,] solution = new double[50, 2]; + double[] networkInput = new double[1]; + + // calculate X values to be used with solution function + for ( int j = 0; j < 50; j++ ) + { + solution[j, 0] = chart.RangeX.Min + (double) j * chart.RangeX.Length / 49; + } + + // loop + while ( !needToStop ) + { + // run epoch of learning procedure + double error = teacher.RunEpoch( input, output ) / samples; + + // calculate solution + for ( int j = 0; j < 50; j++ ) + { + networkInput[0] = ( solution[j, 0] - xMin ) * xFactor - 1.0; + solution[j, 1] = ( network.Compute( networkInput )[0] + 0.85 ) / yFactor + yMin; + } + chart.UpdateDataSeries( "solution", solution ); + // calculate error + double learningError = 0.0; + for ( int j = 0, k = data.GetLength( 0 ); j < k; j++ ) + { + networkInput[0] = input[j][0]; + learningError += Math.Abs( data[j, 1] - ( ( network.Compute( networkInput )[0] + 0.85 ) / yFactor + yMin ) ); + } + + // set current iteration's info + SetText( currentIterationBox, iteration.ToString( ) ); + SetText( currentErrorBox, learningError.ToString( "F3" ) ); + + // increase current iteration + iteration++; + + // check if we need to stop + if ( ( iterations != 0 ) && ( iteration > iterations ) ) + break; + } + + + // enable settings controls + EnableControls( true ); + } + } +} diff --git a/Samples/Neuro/Back Propagation/Approximation/MainForm.resx b/Samples/Neuro/Back Propagation/Approximation/MainForm.resx new file mode 100644 index 00000000..6dabf137 --- /dev/null +++ b/Samples/Neuro/Back Propagation/Approximation/MainForm.resx @@ -0,0 +1,412 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Private + + + 8, 8 + + + True + + + False + + + True + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + Private + + + Private + + + Private + + + Private + + + Private + + + Private + + + 17, 17 + + + Private + + + 8, 8 + + + True + + + False + + + True + + + Private + + + Private + + + False + + + Private + + + Private + + + 8, 8 + + + True + + + False + + + True + + + Private + + + Private + + + False + + + Private + + + False + + + Private + + + Private + + + Private + + + False + + + Private + + + False + + + Private + + + Private + + + Private + + + False + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + Private + + + False + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + Private + + + 8, 8 + + + True + + + False + + + True + + + Private + + + Private + + + False + + + Private + + + False + + + Private + + + Private + + + Private + + + False + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + Private + + + False + + + Private + + + False + + + (Default) + + + False + + + False + + + 8, 8 + + + True + + + MainForm + + + 80 + + + False + + + Private + + \ No newline at end of file diff --git a/Samples/Neuro/Back Propagation/TimeSeries/App.ico b/Samples/Neuro/Back Propagation/TimeSeries/App.ico new file mode 100644 index 00000000..3a5525fd Binary files /dev/null and b/Samples/Neuro/Back Propagation/TimeSeries/App.ico differ diff --git a/Samples/Neuro/Back Propagation/TimeSeries/AssemblyInfo.cs b/Samples/Neuro/Back Propagation/TimeSeries/AssemblyInfo.cs new file mode 100644 index 00000000..086cbc41 --- /dev/null +++ b/Samples/Neuro/Back Propagation/TimeSeries/AssemblyInfo.cs @@ -0,0 +1,59 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly: AssemblyTitle( "Neuro Time Series" )] +[assembly: AssemblyDescription( "Neuro Time Series sample" )] +[assembly: AssemblyConfiguration( "" )] +[assembly: AssemblyCompany( "AForge" )] +[assembly: AssemblyProduct( "AForge.NET" )] +[assembly: AssemblyCopyright( "AForge © 2008" )] +[assembly: AssemblyTrademark( "" )] +[assembly: AssemblyCulture( "" )] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion( "2.0.0.0" )] +[assembly: AssemblyFileVersion( "2.0.0.0" )] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign( false )] +[assembly: AssemblyKeyFile( "" )] +[assembly: AssemblyKeyName( "" )] diff --git a/Samples/Neuro/Back Propagation/TimeSeries/Data Samples/exponent.csv b/Samples/Neuro/Back Propagation/TimeSeries/Data Samples/exponent.csv new file mode 100644 index 00000000..b198f6ec --- /dev/null +++ b/Samples/Neuro/Back Propagation/TimeSeries/Data Samples/exponent.csv @@ -0,0 +1,50 @@ +10 +10.513 +11.052 +11.618 +12.214 +12.84 +13.499 +14.191 +14.918 +15.683 +16.487 +17.333 +18.221 +19.155 +20.138 +21.17 +22.255 +23.396 +24.596 +25.857 +27.183 +28.577 +30.042 +31.582 +33.201 +34.903 +36.693 +38.574 +40.552 +42.631 +44.817 +47.115 +49.53 +52.07 +54.739 +57.546 +60.496 +63.598 +66.859 +70.287 +73.891 +77.679 +81.662 +85.849 +90.25 +94.877 +99.742 +104.856 +110.232 +115.883 diff --git a/Samples/Neuro/Back Propagation/TimeSeries/Data Samples/growing sinusoid.csv b/Samples/Neuro/Back Propagation/TimeSeries/Data Samples/growing sinusoid.csv new file mode 100644 index 00000000..6f952073 --- /dev/null +++ b/Samples/Neuro/Back Propagation/TimeSeries/Data Samples/growing sinusoid.csv @@ -0,0 +1,50 @@ +40 +43.545 +47.214 +50.518 +52.959 +54.102 +53.639 +51.449 +47.621 +42.47 +36.506 +30.392 +24.864 +20.646 +18.356 +18.424 +21.022 +26.027 +33.015 +41.295 +49.977 +58.067 +64.579 +68.656 +69.681 +67.358 +61.772 +53.394 +43.044 +31.816 +20.959 +11.741 +5.299 +2.5 +3.833 +9.327 +18.537 +30.57 +44.172 +57.857 +70.071 +79.368 +84.577 +84.954 +80.276 +70.889 +57.687 +42.03 +25.605 +10.242 diff --git a/Samples/Neuro/Back Propagation/TimeSeries/Data Samples/parabola.csv b/Samples/Neuro/Back Propagation/TimeSeries/Data Samples/parabola.csv new file mode 100644 index 00000000..24cb8d0e --- /dev/null +++ b/Samples/Neuro/Back Propagation/TimeSeries/Data Samples/parabola.csv @@ -0,0 +1,50 @@ +101 +93.16 +85.64 +78.44 +71.56 +65 +58.76 +52.84 +47.24 +41.96 +37 +32.36 +28.04 +24.04 +20.36 +17 +13.96 +11.24 +8.84 +6.76 +5 +3.56 +2.44 +1.64 +1.16 +1 +1.16 +1.64 +2.44 +3.56 +5 +6.76 +8.84 +11.24 +13.96 +17 +20.36 +24.04 +28.04 +32.36 +37 +41.96 +47.24 +52.84 +58.76 +65 +71.56 +78.44 +85.64 +93.16 diff --git a/Samples/Neuro/Back Propagation/TimeSeries/Data Samples/sigmoid.csv b/Samples/Neuro/Back Propagation/TimeSeries/Data Samples/sigmoid.csv new file mode 100644 index 00000000..67082368 --- /dev/null +++ b/Samples/Neuro/Back Propagation/TimeSeries/Data Samples/sigmoid.csv @@ -0,0 +1,50 @@ +2.018 +2.021 +2.025 +2.029 +2.034 +2.039 +2.046 +2.053 +2.062 +2.072 +2.083 +2.096 +2.111 +2.128 +2.147 +2.168 +2.192 +2.218 +2.246 +2.277 +2.31 +2.345 +2.382 +2.421 +2.46 +2.5 +2.54 +2.579 +2.618 +2.655 +2.69 +2.723 +2.754 +2.782 +2.808 +2.832 +2.853 +2.872 +2.889 +2.904 +2.917 +2.928 +2.938 +2.947 +2.954 +2.961 +2.966 +2.971 +2.975 +2.979 diff --git a/Samples/Neuro/Back Propagation/TimeSeries/Data Samples/sinusoid.csv b/Samples/Neuro/Back Propagation/TimeSeries/Data Samples/sinusoid.csv new file mode 100644 index 00000000..8f11b3cb --- /dev/null +++ b/Samples/Neuro/Back Propagation/TimeSeries/Data Samples/sinusoid.csv @@ -0,0 +1,50 @@ +2 +2.327 +2.618 +2.841 +2.972 +2.995 +2.909 +2.723 +2.457 +2.141 +1.809 +1.499 +1.243 +1.071 +1.001 +1.041 +1.187 +1.422 +1.721 +2.05 +2.374 +2.657 +2.867 +2.983 +2.989 +2.887 +2.688 +2.412 +2.091 +1.76 +1.456 +1.211 +1.054 +1 +1.057 +1.217 +1.463 +1.769 +2.1 +2.42 +2.694 +2.891 +2.991 +2.981 +2.863 +2.65 +2.366 +2.041 +1.712 +1.415 diff --git a/Samples/Neuro/Back Propagation/TimeSeries/MainForm.cs b/Samples/Neuro/Back Propagation/TimeSeries/MainForm.cs new file mode 100644 index 00000000..18675f65 --- /dev/null +++ b/Samples/Neuro/Back Propagation/TimeSeries/MainForm.cs @@ -0,0 +1,890 @@ +// Time Series Prediction using Multi-Layer Neural Network +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2006-2011 +// contacts@aforgenet.com +// + +using System; +using System.Drawing; +using System.Collections; +using System.ComponentModel; +using System.Windows.Forms; +using System.Data; +using System.Threading; +using System.IO; + +using AForge; +using AForge.Neuro; +using AForge.Neuro.Learning; +using AForge.Controls; + +namespace TimeSeries +{ + /// + /// Summary description for Form1. + /// + public class MainForm : System.Windows.Forms.Form + { + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.ListView dataList; + private System.Windows.Forms.ColumnHeader yColumnHeader; + private System.Windows.Forms.ColumnHeader estimatedYColumnHeader; + private System.Windows.Forms.Button loadDataButton; + private System.Windows.Forms.GroupBox groupBox2; + private AForge.Controls.Chart chart; + private System.Windows.Forms.OpenFileDialog openFileDialog; + private System.Windows.Forms.GroupBox groupBox3; + private System.Windows.Forms.TextBox momentumBox; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.TextBox alphaBox; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.TextBox learningRateBox; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label10; + private System.Windows.Forms.TextBox iterationsBox; + private System.Windows.Forms.Label label9; + private System.Windows.Forms.Label label8; + private System.Windows.Forms.TextBox predictionSizeBox; + private System.Windows.Forms.Label label7; + private System.Windows.Forms.TextBox windowSizeBox; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.Button stopButton; + private System.Windows.Forms.Button startButton; + private System.Windows.Forms.GroupBox groupBox4; + private System.Windows.Forms.TextBox currentPredictionErrorBox; + private System.Windows.Forms.Label label13; + private System.Windows.Forms.TextBox currentLearningErrorBox; + private System.Windows.Forms.Label label12; + private System.Windows.Forms.TextBox currentIterationBox; + private System.Windows.Forms.Label label11; + /// + /// Required designer variable. + /// + private System.ComponentModel.Container components = null; + + private double[] data = null; + private double[,] dataToShow = null; + + private double learningRate = 0.1; + private double momentum = 0.0; + private double sigmoidAlphaValue = 2.0; + private int windowSize = 5; + private int predictionSize = 1; + private int iterations = 1000; + + private Thread workerThread = null; + private volatile bool needToStop = false; + + private double[,] windowDelimiter = new double[2, 2] { { 0, 0 }, { 0, 0 } }; + private double[,] predictionDelimiter = new double[2, 2] { { 0, 0 }, { 0, 0 } }; + + // Constructor + public MainForm( ) + { + // + // Required for Windows Form Designer support + // + InitializeComponent(); + + // initializa chart control + chart.AddDataSeries( "data", Color.Red, Chart.SeriesType.Dots, 5 ); + chart.AddDataSeries( "solution", Color.Blue, Chart.SeriesType.Line, 1 ); + chart.AddDataSeries( "window", Color.LightGray, Chart.SeriesType.Line, 1, false ); + chart.AddDataSeries( "prediction", Color.Gray, Chart.SeriesType.Line, 1, false ); + + // update controls + UpdateSettings( ); + } + + /// + /// Clean up any resources being used. + /// + protected override void Dispose( bool disposing ) + { + if( disposing ) + { + if (components != null) + { + components.Dispose(); + } + } + base.Dispose( disposing ); + } + + #region Windows Form Designer generated code + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.dataList = new System.Windows.Forms.ListView(); + this.yColumnHeader = new System.Windows.Forms.ColumnHeader(); + this.estimatedYColumnHeader = new System.Windows.Forms.ColumnHeader(); + this.loadDataButton = new System.Windows.Forms.Button(); + this.groupBox2 = new System.Windows.Forms.GroupBox(); + this.chart = new AForge.Controls.Chart(); + this.openFileDialog = new System.Windows.Forms.OpenFileDialog(); + this.groupBox3 = new System.Windows.Forms.GroupBox(); + this.momentumBox = new System.Windows.Forms.TextBox(); + this.label6 = new System.Windows.Forms.Label(); + this.alphaBox = new System.Windows.Forms.TextBox(); + this.label2 = new System.Windows.Forms.Label(); + this.learningRateBox = new System.Windows.Forms.TextBox(); + this.label1 = new System.Windows.Forms.Label(); + this.label8 = new System.Windows.Forms.Label(); + this.iterationsBox = new System.Windows.Forms.TextBox(); + this.predictionSizeBox = new System.Windows.Forms.TextBox(); + this.label7 = new System.Windows.Forms.Label(); + this.windowSizeBox = new System.Windows.Forms.TextBox(); + this.label3 = new System.Windows.Forms.Label(); + this.label10 = new System.Windows.Forms.Label(); + this.label9 = new System.Windows.Forms.Label(); + this.label5 = new System.Windows.Forms.Label(); + this.stopButton = new System.Windows.Forms.Button(); + this.startButton = new System.Windows.Forms.Button(); + this.groupBox4 = new System.Windows.Forms.GroupBox(); + this.currentPredictionErrorBox = new System.Windows.Forms.TextBox(); + this.label13 = new System.Windows.Forms.Label(); + this.currentLearningErrorBox = new System.Windows.Forms.TextBox(); + this.label12 = new System.Windows.Forms.Label(); + this.currentIterationBox = new System.Windows.Forms.TextBox(); + this.label11 = new System.Windows.Forms.Label(); + this.groupBox1.SuspendLayout(); + this.groupBox2.SuspendLayout(); + this.groupBox3.SuspendLayout(); + this.groupBox4.SuspendLayout(); + this.SuspendLayout(); + // + // groupBox1 + // + this.groupBox1.Controls.Add(this.dataList); + this.groupBox1.Controls.Add(this.loadDataButton); + this.groupBox1.Location = new System.Drawing.Point(10, 10); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(180, 380); + this.groupBox1.TabIndex = 0; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "Data"; + // + // dataList + // + this.dataList.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { + this.yColumnHeader, + this.estimatedYColumnHeader}); + this.dataList.FullRowSelect = true; + this.dataList.GridLines = true; + this.dataList.Location = new System.Drawing.Point(10, 20); + this.dataList.Name = "dataList"; + this.dataList.Size = new System.Drawing.Size(160, 315); + this.dataList.TabIndex = 3; + this.dataList.View = System.Windows.Forms.View.Details; + // + // yColumnHeader + // + this.yColumnHeader.Text = "Y:Real"; + this.yColumnHeader.Width = 70; + // + // estimatedYColumnHeader + // + this.estimatedYColumnHeader.Text = "Y:Estimated"; + this.estimatedYColumnHeader.Width = 70; + // + // loadDataButton + // + this.loadDataButton.Location = new System.Drawing.Point(10, 345); + this.loadDataButton.Name = "loadDataButton"; + this.loadDataButton.TabIndex = 2; + this.loadDataButton.Text = "&Load"; + this.loadDataButton.Click += new System.EventHandler(this.loadDataButton_Click); + // + // groupBox2 + // + this.groupBox2.Controls.Add(this.chart); + this.groupBox2.Location = new System.Drawing.Point(200, 10); + this.groupBox2.Name = "groupBox2"; + this.groupBox2.Size = new System.Drawing.Size(300, 380); + this.groupBox2.TabIndex = 2; + this.groupBox2.TabStop = false; + this.groupBox2.Text = "Function"; + // + // chart + // + this.chart.Location = new System.Drawing.Point(10, 20); + this.chart.Name = "chart"; + this.chart.Size = new System.Drawing.Size(280, 350); + this.chart.TabIndex = 0; + // + // openFileDialog + // + this.openFileDialog.Filter = "CSV (Comma delimited) (*.csv)|*.csv"; + this.openFileDialog.Title = "Select data file"; + // + // groupBox3 + // + this.groupBox3.Controls.Add(this.momentumBox); + this.groupBox3.Controls.Add(this.label6); + this.groupBox3.Controls.Add(this.alphaBox); + this.groupBox3.Controls.Add(this.label2); + this.groupBox3.Controls.Add(this.learningRateBox); + this.groupBox3.Controls.Add(this.label1); + this.groupBox3.Controls.Add(this.label8); + this.groupBox3.Controls.Add(this.iterationsBox); + this.groupBox3.Controls.Add(this.predictionSizeBox); + this.groupBox3.Controls.Add(this.label7); + this.groupBox3.Controls.Add(this.windowSizeBox); + this.groupBox3.Controls.Add(this.label3); + this.groupBox3.Controls.Add(this.label10); + this.groupBox3.Controls.Add(this.label9); + this.groupBox3.Controls.Add(this.label5); + this.groupBox3.Location = new System.Drawing.Point(510, 10); + this.groupBox3.Name = "groupBox3"; + this.groupBox3.Size = new System.Drawing.Size(195, 205); + this.groupBox3.TabIndex = 3; + this.groupBox3.TabStop = false; + this.groupBox3.Text = "Settings"; + // + // momentumBox + // + this.momentumBox.Location = new System.Drawing.Point(125, 45); + this.momentumBox.Name = "momentumBox"; + this.momentumBox.Size = new System.Drawing.Size(60, 20); + this.momentumBox.TabIndex = 9; + this.momentumBox.Text = ""; + // + // label6 + // + this.label6.Location = new System.Drawing.Point(10, 47); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(82, 17); + this.label6.TabIndex = 8; + this.label6.Text = "Momentum:"; + // + // alphaBox + // + this.alphaBox.Location = new System.Drawing.Point(125, 70); + this.alphaBox.Name = "alphaBox"; + this.alphaBox.Size = new System.Drawing.Size(60, 20); + this.alphaBox.TabIndex = 11; + this.alphaBox.Text = ""; + // + // label2 + // + this.label2.Location = new System.Drawing.Point(10, 72); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(120, 15); + this.label2.TabIndex = 10; + this.label2.Text = "Sigmoid\'s alpha value:"; + // + // learningRateBox + // + this.learningRateBox.Location = new System.Drawing.Point(125, 20); + this.learningRateBox.Name = "learningRateBox"; + this.learningRateBox.Size = new System.Drawing.Size(60, 20); + this.learningRateBox.TabIndex = 7; + this.learningRateBox.Text = ""; + // + // label1 + // + this.label1.Location = new System.Drawing.Point(10, 22); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(78, 14); + this.label1.TabIndex = 6; + this.label1.Text = "Learning rate:"; + // + // label8 + // + this.label8.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + this.label8.Location = new System.Drawing.Point(10, 157); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size(175, 2); + this.label8.TabIndex = 22; + // + // iterationsBox + // + this.iterationsBox.Location = new System.Drawing.Point(125, 165); + this.iterationsBox.Name = "iterationsBox"; + this.iterationsBox.Size = new System.Drawing.Size(60, 20); + this.iterationsBox.TabIndex = 24; + this.iterationsBox.Text = ""; + // + // predictionSizeBox + // + this.predictionSizeBox.Location = new System.Drawing.Point(125, 130); + this.predictionSizeBox.Name = "predictionSizeBox"; + this.predictionSizeBox.Size = new System.Drawing.Size(60, 20); + this.predictionSizeBox.TabIndex = 21; + this.predictionSizeBox.Text = ""; + this.predictionSizeBox.TextChanged += new System.EventHandler(this.predictionSizeBox_TextChanged); + // + // label7 + // + this.label7.Location = new System.Drawing.Point(10, 132); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(90, 16); + this.label7.TabIndex = 20; + this.label7.Text = "Prediction size:"; + // + // windowSizeBox + // + this.windowSizeBox.Location = new System.Drawing.Point(125, 105); + this.windowSizeBox.Name = "windowSizeBox"; + this.windowSizeBox.Size = new System.Drawing.Size(60, 20); + this.windowSizeBox.TabIndex = 19; + this.windowSizeBox.Text = ""; + this.windowSizeBox.TextChanged += new System.EventHandler(this.windowSizeBox_TextChanged); + // + // label3 + // + this.label3.Location = new System.Drawing.Point(10, 107); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(80, 16); + this.label3.TabIndex = 18; + this.label3.Text = "Window size:"; + // + // label10 + // + this.label10.Font = new System.Drawing.Font("Microsoft Sans Serif", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); + this.label10.Location = new System.Drawing.Point(126, 185); + this.label10.Name = "label10"; + this.label10.Size = new System.Drawing.Size(58, 14); + this.label10.TabIndex = 25; + this.label10.Text = "( 0 - inifinity )"; + // + // label9 + // + this.label9.Location = new System.Drawing.Point(10, 167); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size(70, 16); + this.label9.TabIndex = 23; + this.label9.Text = "Iterations:"; + // + // label5 + // + this.label5.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + this.label5.Location = new System.Drawing.Point(10, 97); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(175, 2); + this.label5.TabIndex = 17; + // + // stopButton + // + this.stopButton.Enabled = false; + this.stopButton.Location = new System.Drawing.Point(630, 360); + this.stopButton.Name = "stopButton"; + this.stopButton.TabIndex = 6; + this.stopButton.Text = "S&top"; + this.stopButton.Click += new System.EventHandler(this.stopButton_Click); + // + // startButton + // + this.startButton.Enabled = false; + this.startButton.Location = new System.Drawing.Point(540, 360); + this.startButton.Name = "startButton"; + this.startButton.TabIndex = 5; + this.startButton.Text = "&Start"; + this.startButton.Click += new System.EventHandler(this.startButton_Click); + // + // groupBox4 + // + this.groupBox4.Controls.Add(this.currentPredictionErrorBox); + this.groupBox4.Controls.Add(this.label13); + this.groupBox4.Controls.Add(this.currentLearningErrorBox); + this.groupBox4.Controls.Add(this.label12); + this.groupBox4.Controls.Add(this.currentIterationBox); + this.groupBox4.Controls.Add(this.label11); + this.groupBox4.Location = new System.Drawing.Point(510, 225); + this.groupBox4.Name = "groupBox4"; + this.groupBox4.Size = new System.Drawing.Size(195, 100); + this.groupBox4.TabIndex = 7; + this.groupBox4.TabStop = false; + this.groupBox4.Text = "Current iteration:"; + // + // currentPredictionErrorBox + // + this.currentPredictionErrorBox.Location = new System.Drawing.Point(125, 70); + this.currentPredictionErrorBox.Name = "currentPredictionErrorBox"; + this.currentPredictionErrorBox.ReadOnly = true; + this.currentPredictionErrorBox.Size = new System.Drawing.Size(60, 20); + this.currentPredictionErrorBox.TabIndex = 5; + this.currentPredictionErrorBox.Text = ""; + // + // label13 + // + this.label13.Location = new System.Drawing.Point(10, 72); + this.label13.Name = "label13"; + this.label13.Size = new System.Drawing.Size(100, 16); + this.label13.TabIndex = 4; + this.label13.Text = "Prediction error:"; + // + // currentLearningErrorBox + // + this.currentLearningErrorBox.Location = new System.Drawing.Point(125, 45); + this.currentLearningErrorBox.Name = "currentLearningErrorBox"; + this.currentLearningErrorBox.ReadOnly = true; + this.currentLearningErrorBox.Size = new System.Drawing.Size(60, 20); + this.currentLearningErrorBox.TabIndex = 3; + this.currentLearningErrorBox.Text = ""; + // + // label12 + // + this.label12.Location = new System.Drawing.Point(10, 47); + this.label12.Name = "label12"; + this.label12.Size = new System.Drawing.Size(80, 16); + this.label12.TabIndex = 2; + this.label12.Text = "Learning error:"; + // + // currentIterationBox + // + this.currentIterationBox.Location = new System.Drawing.Point(125, 20); + this.currentIterationBox.Name = "currentIterationBox"; + this.currentIterationBox.ReadOnly = true; + this.currentIterationBox.Size = new System.Drawing.Size(60, 20); + this.currentIterationBox.TabIndex = 1; + this.currentIterationBox.Text = ""; + // + // label11 + // + this.label11.Location = new System.Drawing.Point(10, 22); + this.label11.Name = "label11"; + this.label11.Size = new System.Drawing.Size(70, 16); + this.label11.TabIndex = 0; + this.label11.Text = "Iteration:"; + // + // MainForm + // + this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); + this.ClientSize = new System.Drawing.Size(715, 398); + this.Controls.Add(this.groupBox4); + this.Controls.Add(this.stopButton); + this.Controls.Add(this.startButton); + this.Controls.Add(this.groupBox3); + this.Controls.Add(this.groupBox2); + this.Controls.Add(this.groupBox1); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.MaximizeBox = false; + this.Name = "MainForm"; + this.Text = "Time Series Prediction using Multi-Layer Neural Network"; + this.Closing += new System.ComponentModel.CancelEventHandler(this.MainForm_Closing); + this.groupBox1.ResumeLayout(false); + this.groupBox2.ResumeLayout(false); + this.groupBox3.ResumeLayout(false); + this.groupBox4.ResumeLayout(false); + this.ResumeLayout(false); + + } + #endregion + + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main( ) + { + Application.Run( new MainForm( ) ); + } + + // Delegates to enable async calls for setting controls properties + private delegate void SetTextCallback( System.Windows.Forms.Control control, string text ); + private delegate void AddSubItemCallback( System.Windows.Forms.ListView control, int item, string subitemText ); + + // Thread safe updating of control's text property + private void SetText( System.Windows.Forms.Control control, string text ) + { + if ( control.InvokeRequired ) + { + SetTextCallback d = new SetTextCallback( SetText ); + Invoke( d, new object[] { control, text } ); + } + else + { + control.Text = text; + } + } + + // Thread safe adding of subitem to list control + private void AddSubItem( System.Windows.Forms.ListView control, int item, string subitemText ) + { + if ( control.InvokeRequired ) + { + AddSubItemCallback d = new AddSubItemCallback( AddSubItem ); + Invoke( d, new object[] { control, item, subitemText } ); + } + else + { + control.Items[item].SubItems.Add( subitemText ); + } + } + + // On main form closing + private void MainForm_Closing(object sender, System.ComponentModel.CancelEventArgs e) + { + // check if worker thread is running + if ( ( workerThread != null ) && ( workerThread.IsAlive ) ) + { + needToStop = true; + while ( !workerThread.Join( 100 ) ) + Application.DoEvents( ); + } + } + + // Update settings controls + private void UpdateSettings( ) + { + learningRateBox.Text = learningRate.ToString( ); + momentumBox.Text = momentum.ToString( ); + alphaBox.Text = sigmoidAlphaValue.ToString( ); + windowSizeBox.Text = windowSize.ToString( ); + predictionSizeBox.Text = predictionSize.ToString( ); + iterationsBox.Text = iterations.ToString( ); + } + + // Load data + private void loadDataButton_Click(object sender, System.EventArgs e) + { + // show file selection dialog + if ( openFileDialog.ShowDialog( ) == DialogResult.OK ) + { + StreamReader reader = null; + // read maximum 50 points + double[] tempData = new double[50]; + + try + { + // open selected file + reader = File.OpenText( openFileDialog.FileName ); + string str = null; + int i = 0; + + // read the data + while ( ( i < 50 ) && ( ( str = reader.ReadLine( ) ) != null ) ) + { + // parse the value + tempData[i] = double.Parse( str ); + + i++; + } + + // allocate and set data + data = new double[i]; + dataToShow = new double[i, 2]; + Array.Copy( tempData, 0, data, 0, i ); + for ( int j = 0; j < i; j++ ) + { + dataToShow[j, 0] = j; + dataToShow[j, 1] = data[j]; + } + } + catch (Exception) + { + MessageBox.Show( "Failed reading the file", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error ); + return; + } + finally + { + // close file + if ( reader != null ) + reader.Close( ); + } + + // update list and chart + UpdateDataListView( ); + chart.RangeX = new Range( 0, data.Length - 1 ); + chart.UpdateDataSeries( "data", dataToShow ); + chart.UpdateDataSeries( "solution", null ); + // set delimiters + UpdateDelimiters( ); + // enable "Start" button + startButton.Enabled = true; + } + } + + // Update delimiters on the chart + private void UpdateDelimiters( ) + { + // window delimiter + windowDelimiter[0, 0] = windowDelimiter[1, 0] = windowSize; + windowDelimiter[0, 1] = chart.RangeY.Min; + windowDelimiter[1, 1] = chart.RangeY.Max; + chart.UpdateDataSeries( "window", windowDelimiter ); + // prediction delimiter + predictionDelimiter[0, 0] = predictionDelimiter[1, 0] = data.Length - 1 - predictionSize; + predictionDelimiter[0, 1] = chart.RangeY.Min; + predictionDelimiter[1, 1] = chart.RangeY.Max; + chart.UpdateDataSeries( "prediction", predictionDelimiter ); + } + + // Update data in list view + private void UpdateDataListView( ) + { + // remove all current records + dataList.Items.Clear( ); + // add new records + for ( int i = 0, n = data.GetLength( 0 ); i < n; i++ ) + { + dataList.Items.Add( data[i].ToString( ) ); + } + } + + // Delegates to enable async calls for setting controls properties + private delegate void EnableCallback( bool enable ); + + // Enable/disable controls + private void EnableControls( bool enable ) + { + if ( InvokeRequired ) + { + EnableCallback d = new EnableCallback( EnableControls ); + Invoke( d, new object[] { enable } ); + } + else + { + loadDataButton.Enabled = enable; + learningRateBox.Enabled = enable; + momentumBox.Enabled = enable; + alphaBox.Enabled = enable; + windowSizeBox.Enabled = enable; + predictionSizeBox.Enabled = enable; + iterationsBox.Enabled = enable; + + startButton.Enabled = enable; + stopButton.Enabled = !enable; + } + } + + // On window size changed + private void windowSizeBox_TextChanged(object sender, System.EventArgs e) + { + UpdateWindowSize( ); + } + + // On prediction changed + private void predictionSizeBox_TextChanged(object sender, System.EventArgs e) + { + UpdatePredictionSize( ); + } + + // Update window size + private void UpdateWindowSize( ) + { + if ( data != null ) + { + // get new window size value + try + { + windowSize = Math.Max( 1, Math.Min( 15, int.Parse( windowSizeBox.Text ) ) ); + } + catch + { + windowSize = 5; + } + // check if we have too few data + if ( windowSize >= data.Length ) + windowSize = 1; + // update delimiters + UpdateDelimiters( ); + } + } + + // Update prediction size + private void UpdatePredictionSize( ) + { + if ( data != null ) + { + // get new prediction size value + try + { + predictionSize = Math.Max( 1, Math.Min( 10, int.Parse( predictionSizeBox.Text ) ) ); + } + catch + { + predictionSize = 1; + } + // check if we have too few data + if ( data.Length - predictionSize - 1 < windowSize ) + predictionSize = 1; + // update delimiters + UpdateDelimiters( ); + } + } + + // On button "Start" + private void startButton_Click( object sender, System.EventArgs e ) + { + // clear previous solution + for ( int j = 0, n = data.Length; j < n; j++ ) + { + if ( dataList.Items[j].SubItems.Count > 1 ) + dataList.Items[j].SubItems.RemoveAt( 1 ); + } + + // get learning rate + try + { + learningRate = Math.Max( 0.00001, Math.Min( 1, double.Parse( learningRateBox.Text ) ) ); + } + catch + { + learningRate = 0.1; + } + // get momentum + try + { + momentum = Math.Max( 0, Math.Min( 0.5, double.Parse( momentumBox.Text ) ) ); + } + catch + { + momentum = 0; + } + // get sigmoid's alpha value + try + { + sigmoidAlphaValue = Math.Max( 0.001, Math.Min( 50, double.Parse( alphaBox.Text ) ) ); + } + catch + { + sigmoidAlphaValue = 2; + } + // iterations + try + { + iterations = Math.Max( 0, int.Parse( iterationsBox.Text ) ); + } + catch + { + iterations = 1000; + } + // update settings controls + UpdateSettings( ); + + // disable all settings controls except "Stop" button + EnableControls( false ); + + // run worker thread + needToStop = false; + workerThread = new Thread( new ThreadStart( SearchSolution ) ); + workerThread.Start( ); + } + + // On button "Stop" + private void stopButton_Click( object sender, System.EventArgs e ) + { + // stop worker thread + needToStop = true; + while ( !workerThread.Join( 100 ) ) + Application.DoEvents( ); + workerThread = null; + } + + // Worker thread + void SearchSolution( ) + { + // number of learning samples + int samples = data.Length - predictionSize - windowSize; + // data transformation factor + double factor = 1.7 / chart.RangeY.Length; + double yMin = chart.RangeY.Min; + // prepare learning data + double[][] input = new double[samples][]; + double[][] output = new double[samples][]; + + for ( int i = 0; i < samples; i++ ) + { + input[i] = new double[windowSize]; + output[i] = new double[1]; + + // set input + for ( int j = 0; j < windowSize; j++ ) + { + input[i][j] = ( data[i + j] - yMin ) * factor - 0.85; + } + // set output + output[i][0] = ( data[i + windowSize] - yMin ) * factor - 0.85; + } + + // create multi-layer neural network + ActivationNetwork network = new ActivationNetwork( + new BipolarSigmoidFunction( sigmoidAlphaValue ), + windowSize, windowSize * 2, 1 ); + // create teacher + BackPropagationLearning teacher = new BackPropagationLearning( network ); + // set learning rate and momentum + teacher.LearningRate = learningRate; + teacher.Momentum = momentum; + + // iterations + int iteration = 1; + + // solution array + int solutionSize = data.Length - windowSize; + double[,] solution = new double[solutionSize, 2]; + double[] networkInput = new double[windowSize]; + + // calculate X values to be used with solution function + for ( int j = 0; j < solutionSize; j++ ) + { + solution[j, 0] = j + windowSize; + } + + // loop + while ( !needToStop ) + { + // run epoch of learning procedure + double error = teacher.RunEpoch( input, output ) / samples; + + // calculate solution and learning and prediction errors + double learningError = 0.0; + double predictionError = 0.0; + // go through all the data + for ( int i = 0, n = data.Length - windowSize; i < n; i++ ) + { + // put values from current window as network's input + for ( int j = 0; j < windowSize; j++ ) + { + networkInput[j] = ( data[i + j] - yMin ) * factor - 0.85; + } + + // evalue the function + solution[i, 1] = ( network.Compute( networkInput)[0] + 0.85 ) / factor + yMin; + + // calculate prediction error + if ( i >= n - predictionSize ) + { + predictionError += Math.Abs( solution[i, 1] - data[windowSize + i] ); + } + else + { + learningError += Math.Abs( solution[i, 1] - data[windowSize + i] ); + } + } + // update solution on the chart + chart.UpdateDataSeries( "solution", solution ); + + // set current iteration's info + SetText( currentIterationBox, iteration.ToString( ) ); + SetText( currentLearningErrorBox, learningError.ToString( "F3" ) ); + SetText( currentPredictionErrorBox, predictionError.ToString( "F3" ) ); + + // increase current iteration + iteration++; + + // check if we need to stop + if ( ( iterations != 0 ) && ( iteration > iterations ) ) + break; + } + + // show new solution + for ( int j = windowSize, k = 0, n = data.Length; j < n; j++, k++ ) + { + AddSubItem( dataList, j, solution[k, 1].ToString( ) ); + } + + // enable settings controls + EnableControls( true ); + } + } +} diff --git a/Samples/Neuro/Back Propagation/TimeSeries/MainForm.resx b/Samples/Neuro/Back Propagation/TimeSeries/MainForm.resx new file mode 100644 index 00000000..a1464675 --- /dev/null +++ b/Samples/Neuro/Back Propagation/TimeSeries/MainForm.resx @@ -0,0 +1,457 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Private + + + 8, 8 + + + False + + + False + + + True + + + Private + + + False + + + Private + + + Private + + + Private + + + Private + + + Private + + + Private + + + False + + + Private + + + Private + + + Private + + + 8, 8 + + + True + + + False + + + True + + + Private + + + Private + + + False + + + Private + + + Private + + + Private + + + 17, 17 + + + Private + + + 8, 8 + + + False + + + False + + + True + + + Private + + + Private + + + False + + + Private + + + False + + + Private + + + Private + + + Private + + + False + + + Private + + + False + + + Private + + + Private + + + Private + + + False + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + False + + + Private + + + Private + + + Private + + + False + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + Private + + + 8, 8 + + + True + + + False + + + True + + + Private + + + Private + + + False + + + Private + + + False + + + Private + + + Private + + + Private + + + False + + + Private + + + False + + + Private + + + Private + + + Private + + + False + + + Private + + + False + + + Private + + + Private + + + False + + + (Default) + + + False + + + False + + + 8, 8 + + + True + + + MainForm + + + 80 + + + False + + + Private + + \ No newline at end of file diff --git a/Samples/Neuro/Back Propagation/TimeSeries/TimeSeries.csproj b/Samples/Neuro/Back Propagation/TimeSeries/TimeSeries.csproj new file mode 100644 index 00000000..21cfd477 --- /dev/null +++ b/Samples/Neuro/Back Propagation/TimeSeries/TimeSeries.csproj @@ -0,0 +1,172 @@ + + + + Local + 9.0.21022 + 2.0 + {2DEF9F9D-DED2-4572-881D-6E018AEE957F} + Debug + AnyCPU + App.ico + + + TimeSeries + + + JScript + Grid + IE50 + false + WinExe + TimeSeries + OnBuildSuccess + + + + + + + 3.5 + v2.0 + false + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + true + + + bin\Debug\ + false + 285212672 + false + + + DEBUG;TRACE + + + true + 4096 + false + + + false + false + false + false + 4 + full + prompt + + + bin\Release\ + false + 285212672 + false + + + TRACE + + + false + 4096 + false + + + true + false + false + false + 4 + none + prompt + + + + False + ..\..\..\..\Release\AForge.dll + + + False + ..\..\..\..\Release\AForge.Controls.dll + + + False + ..\..\..\..\Release\AForge.Neuro.dll + + + System + + + System.Data + + + System.Drawing + + + System.Windows.Forms + + + System.XML + + + + + + + Form + + + MainForm.cs + + + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 2.0 %28x86%29 + false + + + False + .NET Framework 3.0 %28x86%29 + false + + + False + .NET Framework 3.5 + true + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 3.1 + true + + + + + + + + + + \ No newline at end of file diff --git a/Samples/Neuro/Back Propagation/TimeSeries/TimeSeries.sln b/Samples/Neuro/Back Propagation/TimeSeries/TimeSeries.sln new file mode 100644 index 00000000..35e6efb2 --- /dev/null +++ b/Samples/Neuro/Back Propagation/TimeSeries/TimeSeries.sln @@ -0,0 +1,19 @@ +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual C# Express 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TimeSeries", "TimeSeries.csproj", "{2DEF9F9D-DED2-4572-881D-6E018AEE957F}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {2DEF9F9D-DED2-4572-881D-6E018AEE957F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2DEF9F9D-DED2-4572-881D-6E018AEE957F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2DEF9F9D-DED2-4572-881D-6E018AEE957F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2DEF9F9D-DED2-4572-881D-6E018AEE957F}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Samples/Neuro/Back Propagation/XORProblem/App.ico b/Samples/Neuro/Back Propagation/XORProblem/App.ico new file mode 100644 index 00000000..3a5525fd Binary files /dev/null and b/Samples/Neuro/Back Propagation/XORProblem/App.ico differ diff --git a/Samples/Neuro/Back Propagation/XORProblem/AssemblyInfo.cs b/Samples/Neuro/Back Propagation/XORProblem/AssemblyInfo.cs new file mode 100644 index 00000000..87987efc --- /dev/null +++ b/Samples/Neuro/Back Propagation/XORProblem/AssemblyInfo.cs @@ -0,0 +1,59 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly: AssemblyTitle( "Neuro XOR" )] +[assembly: AssemblyDescription( "Neuro XOR sample" )] +[assembly: AssemblyConfiguration( "" )] +[assembly: AssemblyCompany( "AForge" )] +[assembly: AssemblyProduct( "AForge.NET" )] +[assembly: AssemblyCopyright( "AForge © 2008" )] +[assembly: AssemblyTrademark( "" )] +[assembly: AssemblyCulture( "" )] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion( "2.0.0.0" )] +[assembly: AssemblyFileVersion( "2.0.0.0" )] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign( false )] +[assembly: AssemblyKeyFile( "" )] +[assembly: AssemblyKeyName( "" )] diff --git a/Samples/Neuro/Back Propagation/XORProblem/MainForm.cs b/Samples/Neuro/Back Propagation/XORProblem/MainForm.cs new file mode 100644 index 00000000..0ee353cd --- /dev/null +++ b/Samples/Neuro/Back Propagation/XORProblem/MainForm.cs @@ -0,0 +1,611 @@ +// XOR Problem solution using Multi-Layer Neural Network +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2006-2011 +// contacts@aforgenet.com +// + +using System; +using System.Drawing; +using System.Collections; +using System.ComponentModel; +using System.Windows.Forms; +using System.Data; +using System.Threading; +using System.IO; + +using AForge; +using AForge.Neuro; +using AForge.Neuro.Learning; +using AForge.Controls; + +namespace XORProblem +{ + /// + /// Summary description for MainForm. + /// + public class MainForm : System.Windows.Forms.Form + { + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.TextBox learningRateBox; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.TextBox alphaBox; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.TextBox errorLimitBox; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.ComboBox sigmoidTypeCombo; + private System.Windows.Forms.TextBox currentErrorBox; + private System.Windows.Forms.Label label11; + private System.Windows.Forms.TextBox currentIterationBox; + private System.Windows.Forms.Label label8; + private System.Windows.Forms.Label label7; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.Button stopButton; + private System.Windows.Forms.Button startButton; + private System.Windows.Forms.GroupBox groupBox2; + private System.Windows.Forms.CheckBox saveFilesCheck; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.TextBox momentumBox; + private Chart errorChart; + /// + /// Required designer variable. + /// + private System.ComponentModel.Container components = null; + + private double learningRate = 0.1; + private double momentum = 0.0; + private double sigmoidAlphaValue = 2.0; + private double learningErrorLimit = 0.1; + private int sigmoidType = 0; + private bool saveStatisticsToFiles = false; + + private Thread workerThread = null; + private volatile bool needToStop = false; + + + // Constructor + public MainForm( ) + { + // + // Required for Windows Form Designer support + // + InitializeComponent(); + + // update controls + UpdateSettings(); + + // initialize charts + errorChart.AddDataSeries( "error", Color.Red, Chart.SeriesType.Line, 1 ); + } + + /// + /// Clean up any resources being used. + /// + protected override void Dispose( bool disposing ) + { + if( disposing ) + { + if (components != null) + { + components.Dispose(); + } + } + base.Dispose( disposing ); + } + + #region Windows Form Designer generated code + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.groupBox1 = new System.Windows.Forms.GroupBox( ); + this.momentumBox = new System.Windows.Forms.TextBox( ); + this.label6 = new System.Windows.Forms.Label( ); + this.stopButton = new System.Windows.Forms.Button( ); + this.startButton = new System.Windows.Forms.Button( ); + this.label5 = new System.Windows.Forms.Label( ); + this.currentErrorBox = new System.Windows.Forms.TextBox( ); + this.label11 = new System.Windows.Forms.Label( ); + this.currentIterationBox = new System.Windows.Forms.TextBox( ); + this.label8 = new System.Windows.Forms.Label( ); + this.label7 = new System.Windows.Forms.Label( ); + this.sigmoidTypeCombo = new System.Windows.Forms.ComboBox( ); + this.errorLimitBox = new System.Windows.Forms.TextBox( ); + this.label3 = new System.Windows.Forms.Label( ); + this.alphaBox = new System.Windows.Forms.TextBox( ); + this.label2 = new System.Windows.Forms.Label( ); + this.learningRateBox = new System.Windows.Forms.TextBox( ); + this.label1 = new System.Windows.Forms.Label( ); + this.label4 = new System.Windows.Forms.Label( ); + this.groupBox2 = new System.Windows.Forms.GroupBox( ); + this.errorChart = new AForge.Controls.Chart( ); + this.saveFilesCheck = new System.Windows.Forms.CheckBox( ); + this.groupBox1.SuspendLayout( ); + this.groupBox2.SuspendLayout( ); + this.SuspendLayout( ); + // + // groupBox1 + // + this.groupBox1.Controls.Add( this.momentumBox ); + this.groupBox1.Controls.Add( this.label6 ); + this.groupBox1.Controls.Add( this.stopButton ); + this.groupBox1.Controls.Add( this.startButton ); + this.groupBox1.Controls.Add( this.label5 ); + this.groupBox1.Controls.Add( this.currentErrorBox ); + this.groupBox1.Controls.Add( this.label11 ); + this.groupBox1.Controls.Add( this.currentIterationBox ); + this.groupBox1.Controls.Add( this.label8 ); + this.groupBox1.Controls.Add( this.label7 ); + this.groupBox1.Controls.Add( this.sigmoidTypeCombo ); + this.groupBox1.Controls.Add( this.errorLimitBox ); + this.groupBox1.Controls.Add( this.label3 ); + this.groupBox1.Controls.Add( this.alphaBox ); + this.groupBox1.Controls.Add( this.label2 ); + this.groupBox1.Controls.Add( this.learningRateBox ); + this.groupBox1.Controls.Add( this.label1 ); + this.groupBox1.Controls.Add( this.label4 ); + this.groupBox1.Location = new System.Drawing.Point( 10, 10 ); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size( 195, 260 ); + this.groupBox1.TabIndex = 0; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "Neural Network"; + // + // momentumBox + // + this.momentumBox.Location = new System.Drawing.Point( 125, 45 ); + this.momentumBox.Name = "momentumBox"; + this.momentumBox.Size = new System.Drawing.Size( 60, 20 ); + this.momentumBox.TabIndex = 3; + // + // label6 + // + this.label6.Location = new System.Drawing.Point( 10, 47 ); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size( 82, 17 ); + this.label6.TabIndex = 2; + this.label6.Text = "Momentum:"; + // + // stopButton + // + this.stopButton.Enabled = false; + this.stopButton.Location = new System.Drawing.Point( 110, 225 ); + this.stopButton.Name = "stopButton"; + this.stopButton.Size = new System.Drawing.Size( 75, 23 ); + this.stopButton.TabIndex = 28; + this.stopButton.Text = "S&top"; + this.stopButton.Click += new System.EventHandler( this.stopButton_Click ); + // + // startButton + // + this.startButton.Location = new System.Drawing.Point( 25, 225 ); + this.startButton.Name = "startButton"; + this.startButton.Size = new System.Drawing.Size( 75, 23 ); + this.startButton.TabIndex = 27; + this.startButton.Text = "&Start"; + this.startButton.Click += new System.EventHandler( this.startButton_Click ); + // + // label5 + // + this.label5.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label5.Location = new System.Drawing.Point( 10, 211 ); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size( 175, 2 ); + this.label5.TabIndex = 26; + // + // currentErrorBox + // + this.currentErrorBox.Location = new System.Drawing.Point( 125, 185 ); + this.currentErrorBox.Name = "currentErrorBox"; + this.currentErrorBox.ReadOnly = true; + this.currentErrorBox.Size = new System.Drawing.Size( 60, 20 ); + this.currentErrorBox.TabIndex = 25; + // + // label11 + // + this.label11.Location = new System.Drawing.Point( 10, 187 ); + this.label11.Name = "label11"; + this.label11.Size = new System.Drawing.Size( 121, 14 ); + this.label11.TabIndex = 24; + this.label11.Text = "Current summary error:"; + // + // currentIterationBox + // + this.currentIterationBox.Location = new System.Drawing.Point( 125, 160 ); + this.currentIterationBox.Name = "currentIterationBox"; + this.currentIterationBox.ReadOnly = true; + this.currentIterationBox.Size = new System.Drawing.Size( 60, 20 ); + this.currentIterationBox.TabIndex = 23; + // + // label8 + // + this.label8.Location = new System.Drawing.Point( 10, 162 ); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size( 98, 16 ); + this.label8.TabIndex = 22; + this.label8.Text = "Current iteration:"; + // + // label7 + // + this.label7.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label7.Location = new System.Drawing.Point( 10, 150 ); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size( 175, 2 ); + this.label7.TabIndex = 21; + // + // sigmoidTypeCombo + // + this.sigmoidTypeCombo.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.sigmoidTypeCombo.Items.AddRange( new object[] { + "Unipolar", + "Bipolar"} ); + this.sigmoidTypeCombo.Location = new System.Drawing.Point( 125, 120 ); + this.sigmoidTypeCombo.Name = "sigmoidTypeCombo"; + this.sigmoidTypeCombo.Size = new System.Drawing.Size( 60, 21 ); + this.sigmoidTypeCombo.TabIndex = 9; + // + // errorLimitBox + // + this.errorLimitBox.Location = new System.Drawing.Point( 125, 95 ); + this.errorLimitBox.Name = "errorLimitBox"; + this.errorLimitBox.Size = new System.Drawing.Size( 60, 20 ); + this.errorLimitBox.TabIndex = 7; + // + // label3 + // + this.label3.Location = new System.Drawing.Point( 10, 97 ); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size( 110, 15 ); + this.label3.TabIndex = 6; + this.label3.Text = "Learning error limit:"; + // + // alphaBox + // + this.alphaBox.Location = new System.Drawing.Point( 125, 70 ); + this.alphaBox.Name = "alphaBox"; + this.alphaBox.Size = new System.Drawing.Size( 60, 20 ); + this.alphaBox.TabIndex = 5; + // + // label2 + // + this.label2.Location = new System.Drawing.Point( 10, 72 ); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size( 120, 15 ); + this.label2.TabIndex = 4; + this.label2.Text = "Sigmoid\'s alpha value:"; + // + // learningRateBox + // + this.learningRateBox.Location = new System.Drawing.Point( 125, 20 ); + this.learningRateBox.Name = "learningRateBox"; + this.learningRateBox.Size = new System.Drawing.Size( 60, 20 ); + this.learningRateBox.TabIndex = 1; + // + // label1 + // + this.label1.Location = new System.Drawing.Point( 10, 22 ); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size( 78, 14 ); + this.label1.TabIndex = 0; + this.label1.Text = "Learning rate:"; + // + // label4 + // + this.label4.Location = new System.Drawing.Point( 10, 122 ); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size( 100, 15 ); + this.label4.TabIndex = 8; + this.label4.Text = "Sigmoid\'s type:"; + // + // groupBox2 + // + this.groupBox2.Controls.Add( this.errorChart ); + this.groupBox2.Controls.Add( this.saveFilesCheck ); + this.groupBox2.Location = new System.Drawing.Point( 215, 10 ); + this.groupBox2.Name = "groupBox2"; + this.groupBox2.Size = new System.Drawing.Size( 220, 260 ); + this.groupBox2.TabIndex = 1; + this.groupBox2.TabStop = false; + this.groupBox2.Text = "Error\'s dynamics"; + // + // errorChart + // + this.errorChart.Location = new System.Drawing.Point( 10, 20 ); + this.errorChart.Name = "errorChart"; + this.errorChart.Size = new System.Drawing.Size( 200, 205 ); + this.errorChart.TabIndex = 2; + this.errorChart.Text = "chart1"; + // + // saveFilesCheck + // + this.saveFilesCheck.Location = new System.Drawing.Point( 10, 233 ); + this.saveFilesCheck.Name = "saveFilesCheck"; + this.saveFilesCheck.Size = new System.Drawing.Size( 200, 18 ); + this.saveFilesCheck.TabIndex = 1; + this.saveFilesCheck.Text = "Save errors to files"; + // + // MainForm + // + this.AutoScaleBaseSize = new System.Drawing.Size( 5, 13 ); + this.ClientSize = new System.Drawing.Size( 452, 278 ); + this.Controls.Add( this.groupBox2 ); + this.Controls.Add( this.groupBox1 ); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.MaximizeBox = false; + this.Name = "MainForm"; + this.Text = "XOR Problem"; + this.Closing += new System.ComponentModel.CancelEventHandler( this.MainForm_Closing ); + this.groupBox1.ResumeLayout( false ); + this.groupBox1.PerformLayout( ); + this.groupBox2.ResumeLayout( false ); + this.ResumeLayout( false ); + + } + #endregion + + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main( ) + { + Application.Run( new MainForm( ) ); + } + + // Delegates to enable async calls for setting controls properties + private delegate void SetTextCallback( System.Windows.Forms.Control control, string text ); + + // Thread safe updating of control's text property + private void SetText( System.Windows.Forms.Control control, string text ) + { + if ( control.InvokeRequired ) + { + SetTextCallback d = new SetTextCallback( SetText ); + Invoke( d, new object[] { control, text } ); + } + else + { + control.Text = text; + } + } + + // On main form closing + private void MainForm_Closing(object sender, System.ComponentModel.CancelEventArgs e) + { + // check if worker thread is running + if ( ( workerThread != null ) && ( workerThread.IsAlive ) ) + { + needToStop = true; + while ( !workerThread.Join( 100 ) ) + Application.DoEvents( ); + } + } + + // Update settings controls + private void UpdateSettings( ) + { + learningRateBox.Text = learningRate.ToString( ); + momentumBox.Text = momentum.ToString( ); + alphaBox.Text = sigmoidAlphaValue.ToString( ); + errorLimitBox.Text = learningErrorLimit.ToString( ); + sigmoidTypeCombo.SelectedIndex = sigmoidType; + + saveFilesCheck.Checked = saveStatisticsToFiles; + } + + // Delegates to enable async calls for setting controls properties + private delegate void EnableCallback( bool enable ); + + // Enable/disale controls (safe for threading) + private void EnableControls( bool enable ) + { + if ( InvokeRequired ) + { + EnableCallback d = new EnableCallback( EnableControls ); + Invoke( d, new object[] { enable } ); + } + else + { + learningRateBox.Enabled = enable; + momentumBox.Enabled = enable; + alphaBox.Enabled = enable; + errorLimitBox.Enabled = enable; + sigmoidTypeCombo.Enabled = enable; + saveFilesCheck.Enabled = enable; + + startButton.Enabled = enable; + stopButton.Enabled = !enable; + } + } + + // On "Start" button click + private void startButton_Click( object sender, System.EventArgs e ) + { + // get learning rate + try + { + learningRate = Math.Max( 0.00001, Math.Min( 1, double.Parse( learningRateBox.Text ) ) ); + } + catch + { + learningRate = 0.1; + } + // get momentum + try + { + momentum = Math.Max( 0, Math.Min( 0.5, double.Parse( momentumBox.Text ) ) ); + } + catch + { + momentum = 0; + } + // get sigmoid's alpha value + try + { + sigmoidAlphaValue = Math.Max( 0.01, Math.Min( 100, double.Parse( alphaBox.Text ) ) ); + } + catch + { + sigmoidAlphaValue = 2; + } + // get learning error limit + try + { + learningErrorLimit = Math.Max( 0, double.Parse( errorLimitBox.Text ) ); + } + catch + { + learningErrorLimit = 0.1; + } + // get sigmoid's type + sigmoidType = sigmoidTypeCombo.SelectedIndex; + + saveStatisticsToFiles = saveFilesCheck.Checked; + + // update settings controls + UpdateSettings( ); + + // disable all settings controls + EnableControls( false ); + + // run worker thread + needToStop = false; + workerThread = new Thread( new ThreadStart( SearchSolution ) ); + workerThread.Start( ); + } + + // On "Stop" button click + private void stopButton_Click( object sender, System.EventArgs e ) + { + // stop worker thread + needToStop = true; + while ( !workerThread.Join( 100 ) ) + Application.DoEvents( ); + workerThread = null; + } + + // Worker thread + void SearchSolution( ) + { + // initialize input and output values + double[][] input = null; + double[][] output = null; + + if ( sigmoidType == 0 ) + { + // unipolar data + input = new double[4][] { + new double[] {0, 0}, + new double[] {0, 1}, + new double[] {1, 0}, + new double[] {1, 1} + }; + output = new double[4][] { + new double[] {0}, + new double[] {1}, + new double[] {1}, + new double[] {0} + }; + } + else + { + // biipolar data + input = new double[4][] { + new double[] {-1, -1}, + new double[] {-1, 1}, + new double[] { 1, -1}, + new double[] { 1, 1} + }; + output = new double[4][] { + new double[] {-1}, + new double[] { 1}, + new double[] { 1}, + new double[] {-1} + }; + } + + // create neural network + ActivationNetwork network = new ActivationNetwork( + ( sigmoidType == 0 ) ? + (IActivationFunction) new SigmoidFunction( sigmoidAlphaValue ) : + (IActivationFunction) new BipolarSigmoidFunction( sigmoidAlphaValue ), + 2, 2, 1 ); + // create teacher + BackPropagationLearning teacher = new BackPropagationLearning( network ); + // set learning rate and momentum + teacher.LearningRate = learningRate; + teacher.Momentum = momentum; + + // iterations + int iteration = 1; + + // statistic files + StreamWriter errorsFile = null; + + try + { + // check if we need to save statistics to files + if ( saveStatisticsToFiles ) + { + // open files + errorsFile = File.CreateText( "errors.csv" ); + } + + // erros list + ArrayList errorsList = new ArrayList( ); + + // loop + while ( !needToStop ) + { + // run epoch of learning procedure + double error = teacher.RunEpoch( input, output ); + errorsList.Add( error ); + + // save current error + if ( errorsFile != null ) + { + errorsFile.WriteLine( error ); + } + + // show current iteration & error + SetText( currentIterationBox, iteration.ToString( ) ); + SetText( currentErrorBox, error.ToString( ) ); + iteration++; + + // check if we need to stop + if ( error <= learningErrorLimit ) + break; + } + + // show error's dynamics + double[,] errors = new double[errorsList.Count, 2]; + + for ( int i = 0, n = errorsList.Count; i < n; i++ ) + { + errors[i, 0] = i; + errors[i, 1] = (double) errorsList[i]; + } + + errorChart.RangeX = new Range( 0, errorsList.Count - 1 ); + errorChart.UpdateDataSeries( "error", errors ); + } + catch ( IOException ) + { + MessageBox.Show( "Failed writing file", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error ); + } + finally + { + // close files + if ( errorsFile != null ) + errorsFile.Close( ); + } + + // enable settings controls + EnableControls( true ); + } + } +} diff --git a/Samples/Neuro/Back Propagation/XORProblem/MainForm.resx b/Samples/Neuro/Back Propagation/XORProblem/MainForm.resx new file mode 100644 index 00000000..19dc0dd8 --- /dev/null +++ b/Samples/Neuro/Back Propagation/XORProblem/MainForm.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Samples/Neuro/Back Propagation/XORProblem/XORProblem.csproj b/Samples/Neuro/Back Propagation/XORProblem/XORProblem.csproj new file mode 100644 index 00000000..7b6cce7d --- /dev/null +++ b/Samples/Neuro/Back Propagation/XORProblem/XORProblem.csproj @@ -0,0 +1,172 @@ + + + + Local + 9.0.21022 + 2.0 + {527BB23D-A674-4147-B58D-DCC894737140} + Debug + AnyCPU + App.ico + + + XORProblem + + + JScript + Grid + IE50 + false + WinExe + XORProblem + OnBuildSuccess + + + + + + + 3.5 + v2.0 + false + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + true + + + bin\Debug\ + false + 285212672 + false + + + DEBUG;TRACE + + + true + 4096 + false + + + false + false + false + false + 4 + full + prompt + + + bin\Release\ + false + 285212672 + false + + + TRACE + + + false + 4096 + false + + + true + false + false + false + 4 + none + prompt + + + + False + ..\..\..\..\Release\AForge.dll + + + False + ..\..\..\..\Release\AForge.Controls.dll + + + False + ..\..\..\..\Release\AForge.Neuro.dll + + + System + + + System.Data + + + System.Drawing + + + System.Windows.Forms + + + System.XML + + + + + + + Form + + + MainForm.cs + + + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 2.0 %28x86%29 + false + + + False + .NET Framework 3.0 %28x86%29 + false + + + False + .NET Framework 3.5 + true + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 3.1 + true + + + + + + + + + + \ No newline at end of file diff --git a/Samples/Neuro/Back Propagation/XORProblem/XORProblem.sln b/Samples/Neuro/Back Propagation/XORProblem/XORProblem.sln new file mode 100644 index 00000000..d776844b --- /dev/null +++ b/Samples/Neuro/Back Propagation/XORProblem/XORProblem.sln @@ -0,0 +1,19 @@ +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual C# Express 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XORProblem", "XORProblem.csproj", "{527BB23D-A674-4147-B58D-DCC894737140}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {527BB23D-A674-4147-B58D-DCC894737140}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {527BB23D-A674-4147-B58D-DCC894737140}.Debug|Any CPU.Build.0 = Debug|Any CPU + {527BB23D-A674-4147-B58D-DCC894737140}.Release|Any CPU.ActiveCfg = Release|Any CPU + {527BB23D-A674-4147-B58D-DCC894737140}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Samples/Neuro/SOM/2DOrganizing/2DOrganizing.csproj b/Samples/Neuro/SOM/2DOrganizing/2DOrganizing.csproj new file mode 100644 index 00000000..9e939f77 --- /dev/null +++ b/Samples/Neuro/SOM/2DOrganizing/2DOrganizing.csproj @@ -0,0 +1,163 @@ + + + + Local + 9.0.21022 + 2.0 + {C646B987-EA7E-4D82-A930-448DE583FEB3} + Debug + AnyCPU + App.ico + + + 2DOrganizing + + + JScript + Grid + IE50 + false + WinExe + _2DOrganizing + OnBuildSuccess + + + + + + + 3.5 + v2.0 + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + bin\Debug\ + false + 285212672 + false + + + DEBUG;TRACE + + + true + 4096 + false + + + false + false + false + false + 4 + full + prompt + + + bin\Release\ + false + 285212672 + false + + + TRACE + + + false + 4096 + false + + + true + false + false + false + 4 + none + prompt + + + + False + ..\..\..\..\Release\AForge.dll + + + False + ..\..\..\..\Release\AForge.Neuro.dll + + + System + + + System.Data + + + System.Drawing + + + System.Windows.Forms + + + System.XML + + + + + + Code + + + Component + + + Form + + + MainForm.cs + + + + + False + Microsoft .NET Framework 4 %28x86 and x64%29 + true + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 3.1 + true + + + + + + + + + + \ No newline at end of file diff --git a/Samples/Neuro/SOM/2DOrganizing/2DOrganizing.sln b/Samples/Neuro/SOM/2DOrganizing/2DOrganizing.sln new file mode 100644 index 00000000..dc6a9f58 --- /dev/null +++ b/Samples/Neuro/SOM/2DOrganizing/2DOrganizing.sln @@ -0,0 +1,19 @@ +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual C# Express 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "2DOrganizing", "2DOrganizing.csproj", "{C646B987-EA7E-4D82-A930-448DE583FEB3}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {C646B987-EA7E-4D82-A930-448DE583FEB3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C646B987-EA7E-4D82-A930-448DE583FEB3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C646B987-EA7E-4D82-A930-448DE583FEB3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C646B987-EA7E-4D82-A930-448DE583FEB3}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Samples/Neuro/SOM/2DOrganizing/App.ico b/Samples/Neuro/SOM/2DOrganizing/App.ico new file mode 100644 index 00000000..3a5525fd Binary files /dev/null and b/Samples/Neuro/SOM/2DOrganizing/App.ico differ diff --git a/Samples/Neuro/SOM/2DOrganizing/AssemblyInfo.cs b/Samples/Neuro/SOM/2DOrganizing/AssemblyInfo.cs new file mode 100644 index 00000000..9eeb652e --- /dev/null +++ b/Samples/Neuro/SOM/2DOrganizing/AssemblyInfo.cs @@ -0,0 +1,59 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly: AssemblyTitle( "Neuro SOM Organizing" )] +[assembly: AssemblyDescription( "Neuro SOM Organizing sample" )] +[assembly: AssemblyConfiguration( "" )] +[assembly: AssemblyCompany( "AForge" )] +[assembly: AssemblyProduct( "AForge.NET" )] +[assembly: AssemblyCopyright( "AForge © 2008" )] +[assembly: AssemblyTrademark( "" )] +[assembly: AssemblyCulture( "" )] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion( "2.0.0.0" )] +[assembly: AssemblyFileVersion( "2.0.0.0" )] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign( false )] +[assembly: AssemblyKeyFile( "" )] +[assembly: AssemblyKeyName( "" )] diff --git a/Samples/Neuro/SOM/2DOrganizing/BufferedPanel.cs b/Samples/Neuro/SOM/2DOrganizing/BufferedPanel.cs new file mode 100644 index 00000000..1b38fa2a --- /dev/null +++ b/Samples/Neuro/SOM/2DOrganizing/BufferedPanel.cs @@ -0,0 +1,19 @@ +using System; +using System.Windows.Forms; + +namespace SOMOrganizing +{ + /// + /// Dummy class to enable doble buffering in Panel + /// + public class BufferedPanel : System.Windows.Forms.Panel + { + // Construcor + public BufferedPanel( ) + { + // Update control style + SetStyle( ControlStyles.AllPaintingInWmPaint | ControlStyles.ResizeRedraw | + ControlStyles.DoubleBuffer | ControlStyles.UserPaint, true ); + } + } +} diff --git a/Samples/Neuro/SOM/2DOrganizing/MainForm.cs b/Samples/Neuro/SOM/2DOrganizing/MainForm.cs new file mode 100644 index 00000000..7d9929ad --- /dev/null +++ b/Samples/Neuro/SOM/2DOrganizing/MainForm.cs @@ -0,0 +1,751 @@ +// Kohonen SOM 2D Organizing +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2006-2011 +// contacts@aforgenet.com +// + +using System; +using System.Drawing; +using System.Collections; +using System.ComponentModel; +using System.Windows.Forms; +using System.Data; +using System.Threading; + +using AForge; +using AForge.Neuro; +using AForge.Neuro.Learning; + +namespace SOMOrganizing +{ + /// + /// Summary description for MainForm. + /// + public class MainForm : System.Windows.Forms.Form + { + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.Button generateButton; + private System.Windows.Forms.Panel pointsPanel; + private System.Windows.Forms.GroupBox groupBox2; + private System.Windows.Forms.Panel mapPanel; + private System.Windows.Forms.CheckBox showConnectionsCheck; + private System.Windows.Forms.CheckBox showInactiveCheck; + private System.Windows.Forms.GroupBox groupBox3; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.TextBox sizeBox; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.TextBox radiusBox; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.TextBox rateBox; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.TextBox iterationsBox; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.Label label7; + private System.Windows.Forms.TextBox currentIterationBox; + private System.Windows.Forms.Label label8; + private System.Windows.Forms.Button stopButton; + private System.Windows.Forms.Button startButton; + /// + /// Required designer variable. + /// + private System.ComponentModel.Container components = null; + + + private const int groupRadius = 20; + private const int pointsCount = 100; + private int[,] points = new int[pointsCount, 2]; // x, y + private double[][] trainingSet = new double[pointsCount][]; + private int[,,] map; + + private int networkSize = 15; + private int iterations = 500; + private double learningRate = 0.3; + private int learningRadius = 3; + + private Random rand = new Random( ); + private Thread workerThread = null; + private volatile bool needToStop = false; + + // Constructor + public MainForm( ) + { + // + // Required for Windows Form Designer support + // + InitializeComponent( ); + + // + GeneratePoints( ); + UpdateSettings( ); + } + + /// + /// Clean up any resources being used. + /// + protected override void Dispose( bool disposing ) + { + if( disposing ) + { + if ( components != null ) + { + components.Dispose( ); + } + } + base.Dispose( disposing ); + } + + #region Windows Form Designer generated code + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.generateButton = new System.Windows.Forms.Button(); + this.pointsPanel = new BufferedPanel(); + this.groupBox2 = new System.Windows.Forms.GroupBox(); + this.showInactiveCheck = new System.Windows.Forms.CheckBox(); + this.showConnectionsCheck = new System.Windows.Forms.CheckBox(); + this.mapPanel = new BufferedPanel(); + this.groupBox3 = new System.Windows.Forms.GroupBox(); + this.stopButton = new System.Windows.Forms.Button(); + this.startButton = new System.Windows.Forms.Button(); + this.currentIterationBox = new System.Windows.Forms.TextBox(); + this.label8 = new System.Windows.Forms.Label(); + this.label7 = new System.Windows.Forms.Label(); + this.radiusBox = new System.Windows.Forms.TextBox(); + this.label4 = new System.Windows.Forms.Label(); + this.rateBox = new System.Windows.Forms.TextBox(); + this.label5 = new System.Windows.Forms.Label(); + this.iterationsBox = new System.Windows.Forms.TextBox(); + this.label6 = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.sizeBox = new System.Windows.Forms.TextBox(); + this.label1 = new System.Windows.Forms.Label(); + this.groupBox1.SuspendLayout(); + this.groupBox2.SuspendLayout(); + this.groupBox3.SuspendLayout(); + this.SuspendLayout(); + // + // groupBox1 + // + this.groupBox1.Controls.Add(this.generateButton); + this.groupBox1.Controls.Add(this.pointsPanel); + this.groupBox1.Location = new System.Drawing.Point(10, 10); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(220, 295); + this.groupBox1.TabIndex = 0; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "Points"; + // + // generateButton + // + this.generateButton.Location = new System.Drawing.Point(10, 260); + this.generateButton.Name = "generateButton"; + this.generateButton.TabIndex = 1; + this.generateButton.Text = "&Generate"; + this.generateButton.Click += new System.EventHandler(this.generateButton_Click); + // + // pointsPanel + // + this.pointsPanel.BackColor = System.Drawing.Color.White; + this.pointsPanel.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.pointsPanel.Location = new System.Drawing.Point(10, 20); + this.pointsPanel.Name = "pointsPanel"; + this.pointsPanel.Size = new System.Drawing.Size(200, 200); + this.pointsPanel.TabIndex = 0; + this.pointsPanel.Paint += new System.Windows.Forms.PaintEventHandler(this.pointsPanel_Paint); + // + // groupBox2 + // + this.groupBox2.Controls.Add(this.showInactiveCheck); + this.groupBox2.Controls.Add(this.showConnectionsCheck); + this.groupBox2.Controls.Add(this.mapPanel); + this.groupBox2.Location = new System.Drawing.Point(240, 10); + this.groupBox2.Name = "groupBox2"; + this.groupBox2.Size = new System.Drawing.Size(220, 295); + this.groupBox2.TabIndex = 1; + this.groupBox2.TabStop = false; + this.groupBox2.Text = "Map"; + // + // showInactiveCheck + // + this.showInactiveCheck.Checked = true; + this.showInactiveCheck.CheckState = System.Windows.Forms.CheckState.Checked; + this.showInactiveCheck.Location = new System.Drawing.Point(10, 265); + this.showInactiveCheck.Name = "showInactiveCheck"; + this.showInactiveCheck.Size = new System.Drawing.Size(160, 16); + this.showInactiveCheck.TabIndex = 2; + this.showInactiveCheck.Text = "Show Inactive Neurons"; + this.showInactiveCheck.CheckedChanged += new System.EventHandler(this.showInactiveCheck_CheckedChanged); + // + // showConnectionsCheck + // + this.showConnectionsCheck.Checked = true; + this.showConnectionsCheck.CheckState = System.Windows.Forms.CheckState.Checked; + this.showConnectionsCheck.Location = new System.Drawing.Point(10, 240); + this.showConnectionsCheck.Name = "showConnectionsCheck"; + this.showConnectionsCheck.Size = new System.Drawing.Size(150, 16); + this.showConnectionsCheck.TabIndex = 1; + this.showConnectionsCheck.Text = "Show Connections"; + this.showConnectionsCheck.CheckedChanged += new System.EventHandler(this.showConnectionsCheck_CheckedChanged); + // + // mapPanel + // + this.mapPanel.BackColor = System.Drawing.Color.White; + this.mapPanel.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.mapPanel.Location = new System.Drawing.Point(10, 20); + this.mapPanel.Name = "mapPanel"; + this.mapPanel.Size = new System.Drawing.Size(200, 200); + this.mapPanel.TabIndex = 0; + this.mapPanel.Paint += new System.Windows.Forms.PaintEventHandler(this.mapPanel_Paint); + // + // groupBox3 + // + this.groupBox3.Controls.Add(this.stopButton); + this.groupBox3.Controls.Add(this.startButton); + this.groupBox3.Controls.Add(this.currentIterationBox); + this.groupBox3.Controls.Add(this.label8); + this.groupBox3.Controls.Add(this.label7); + this.groupBox3.Controls.Add(this.radiusBox); + this.groupBox3.Controls.Add(this.label4); + this.groupBox3.Controls.Add(this.rateBox); + this.groupBox3.Controls.Add(this.label5); + this.groupBox3.Controls.Add(this.iterationsBox); + this.groupBox3.Controls.Add(this.label6); + this.groupBox3.Controls.Add(this.label3); + this.groupBox3.Controls.Add(this.label2); + this.groupBox3.Controls.Add(this.sizeBox); + this.groupBox3.Controls.Add(this.label1); + this.groupBox3.Location = new System.Drawing.Point(470, 10); + this.groupBox3.Name = "groupBox3"; + this.groupBox3.Size = new System.Drawing.Size(180, 295); + this.groupBox3.TabIndex = 2; + this.groupBox3.TabStop = false; + this.groupBox3.Text = "Neural Network"; + // + // stopButton + // + this.stopButton.Enabled = false; + this.stopButton.Location = new System.Drawing.Point(95, 260); + this.stopButton.Name = "stopButton"; + this.stopButton.TabIndex = 16; + this.stopButton.Text = "S&top"; + this.stopButton.Click += new System.EventHandler(this.stopButton_Click); + // + // startButton + // + this.startButton.Location = new System.Drawing.Point(10, 260); + this.startButton.Name = "startButton"; + this.startButton.TabIndex = 15; + this.startButton.Text = "&Start"; + this.startButton.Click += new System.EventHandler(this.startButton_Click); + // + // currentIterationBox + // + this.currentIterationBox.Location = new System.Drawing.Point(110, 160); + this.currentIterationBox.Name = "currentIterationBox"; + this.currentIterationBox.ReadOnly = true; + this.currentIterationBox.Size = new System.Drawing.Size(60, 20); + this.currentIterationBox.TabIndex = 14; + this.currentIterationBox.Text = ""; + // + // label8 + // + this.label8.Location = new System.Drawing.Point(10, 162); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size(100, 16); + this.label8.TabIndex = 13; + this.label8.Text = "Curren iteration:"; + // + // label7 + // + this.label7.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label7.Location = new System.Drawing.Point(10, 148); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(160, 2); + this.label7.TabIndex = 12; + // + // radiusBox + // + this.radiusBox.Location = new System.Drawing.Point(110, 120); + this.radiusBox.Name = "radiusBox"; + this.radiusBox.Size = new System.Drawing.Size(60, 20); + this.radiusBox.TabIndex = 11; + this.radiusBox.Text = ""; + // + // label4 + // + this.label4.Location = new System.Drawing.Point(10, 122); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(100, 16); + this.label4.TabIndex = 10; + this.label4.Text = "Initial radius:"; + // + // rateBox + // + this.rateBox.Location = new System.Drawing.Point(110, 95); + this.rateBox.Name = "rateBox"; + this.rateBox.Size = new System.Drawing.Size(60, 20); + this.rateBox.TabIndex = 9; + this.rateBox.Text = ""; + // + // label5 + // + this.label5.Location = new System.Drawing.Point(10, 97); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(100, 16); + this.label5.TabIndex = 8; + this.label5.Text = "Initial learning rate:"; + // + // iterationsBox + // + this.iterationsBox.Location = new System.Drawing.Point(110, 70); + this.iterationsBox.Name = "iterationsBox"; + this.iterationsBox.Size = new System.Drawing.Size(60, 20); + this.iterationsBox.TabIndex = 7; + this.iterationsBox.Text = ""; + // + // label6 + // + this.label6.Location = new System.Drawing.Point(10, 72); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(60, 16); + this.label6.TabIndex = 6; + this.label6.Text = "Iteraions:"; + // + // label3 + // + this.label3.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label3.Location = new System.Drawing.Point(10, 60); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(160, 2); + this.label3.TabIndex = 3; + // + // label2 + // + this.label2.Location = new System.Drawing.Point(10, 41); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(150, 15); + this.label2.TabIndex = 2; + this.label2.Text = "(neurons count = size * size)"; + // + // sizeBox + // + this.sizeBox.Location = new System.Drawing.Point(110, 20); + this.sizeBox.Name = "sizeBox"; + this.sizeBox.Size = new System.Drawing.Size(60, 20); + this.sizeBox.TabIndex = 1; + this.sizeBox.Text = ""; + // + // label1 + // + this.label1.Location = new System.Drawing.Point(10, 22); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(54, 16); + this.label1.TabIndex = 0; + this.label1.Text = "Size:"; + // + // MainForm + // + this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); + this.ClientSize = new System.Drawing.Size(659, 315); + this.Controls.Add(this.groupBox3); + this.Controls.Add(this.groupBox2); + this.Controls.Add(this.groupBox1); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.MaximizeBox = false; + this.Name = "MainForm"; + this.Text = "Kohonen SOM 2D Organizing"; + this.Closing += new System.ComponentModel.CancelEventHandler(this.MainForm_Closing); + this.groupBox1.ResumeLayout(false); + this.groupBox2.ResumeLayout(false); + this.groupBox3.ResumeLayout(false); + this.ResumeLayout(false); + + } + #endregion + + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main( ) + { + Application.Run( new MainForm( ) ); + } + + // Delegates to enable async calls for setting controls properties + private delegate void SetTextCallback( System.Windows.Forms.Control control, string text ); + + // Thread safe updating of control's text property + private void SetText( System.Windows.Forms.Control control, string text ) + { + if ( control.InvokeRequired ) + { + SetTextCallback d = new SetTextCallback( SetText ); + Invoke( d, new object[] { control, text } ); + } + else + { + control.Text = text; + } + } + + // On main form closing + private void MainForm_Closing(object sender, System.ComponentModel.CancelEventArgs e) + { + // check if worker thread is running + if ( ( workerThread != null ) && ( workerThread.IsAlive ) ) + { + needToStop = true; + while ( !workerThread.Join( 100 ) ) + Application.DoEvents( ); + } + } + + // Update settings controls + private void UpdateSettings( ) + { + sizeBox.Text = networkSize.ToString( ); + iterationsBox.Text = iterations.ToString( ); + rateBox.Text = learningRate.ToString( ); + radiusBox.Text = learningRadius.ToString( ); + } + + // On "Generate" button click + private void generateButton_Click(object sender, System.EventArgs e) + { + GeneratePoints( ); + } + + // Generate point + private void GeneratePoints( ) + { + int width = pointsPanel.ClientRectangle.Width; + int height = pointsPanel.ClientRectangle.Height; + int diameter = groupRadius * 2; + + // generate groups of ten points + for ( int i = 0; i < pointsCount; ) + { + int cx = rand.Next( width ); + int cy = rand.Next( height ); + + // generate group + for ( int j = 0 ; ( i < pointsCount ) && ( j < 10 ); ) + { + int x = cx + rand.Next( diameter ) - groupRadius; + int y = cy + rand.Next( diameter ) - groupRadius; + + // check if wee are not out + if ( ( x < 0 ) || ( y < 0 ) || ( x >= width ) || ( y >= height ) ) + { + continue; + } + + // add point + points[i, 0] = x; + points[i, 1] = y; + + j++; + i++; + } + } + + map = null; + pointsPanel.Invalidate( ); + mapPanel.Invalidate( ); + } + + // Paint points + private void pointsPanel_Paint( object sender, System.Windows.Forms.PaintEventArgs e ) + { + Graphics g = e.Graphics; + + using ( Brush brush = new SolidBrush( Color.Blue ) ) + { + // draw all points + for ( int i = 0, n = points.GetLength( 0 ); i < n; i++ ) + { + g.FillEllipse( brush, points[i, 0] - 2, points[i, 1] - 2, 5, 5 ); + } + } + } + + // Paint map + private void mapPanel_Paint( object sender, System.Windows.Forms.PaintEventArgs e ) + { + Graphics g = e.Graphics; + + if ( map != null ) + { + // + bool showConnections = showConnectionsCheck.Checked; + bool showInactive = showInactiveCheck.Checked; + + // pens and brushes + Brush brush = new SolidBrush( Color.Blue ); + Brush brushGray = new SolidBrush( Color.FromArgb( 192, 192, 192 ) ); + Pen pen = new Pen( Color.Blue, 1 ); + Pen penGray = new Pen( Color.FromArgb( 192, 192, 192 ), 1 ); + + // lock + Monitor.Enter( this ); + + if ( showConnections ) + { + // draw connections + for ( int i = 0, n = map.GetLength( 0 ); i < n; i++ ) + { + for ( int j = 0, k = map.GetLength( 1 ); j < k; j++ ) + { + if ( ( !showInactive ) && ( map[i, j, 2] == 0 ) ) + continue; + + // left + if ( ( i > 0 ) && ( ( showInactive ) || ( map[i - 1, j, 2] == 1 ) ) ) + { + g.DrawLine( ( ( map[i, j, 2] == 0 ) || ( map[i - 1, j, 2] == 0 ) ) ? penGray : pen, map[i, j, 0], map[i, j, 1], map[i - 1, j, 0], map[i - 1, j, 1] ); + } + + // right + if ( ( i < n - 1 ) && ( ( showInactive ) || ( map[i + 1, j, 2] == 1 ) ) ) + { + g.DrawLine( ( ( map[i, j, 2] == 0 ) || ( map[i + 1, j, 2] == 0 ) ) ? penGray : pen, map[i, j, 0], map[i, j, 1], map[i + 1, j, 0], map[i + 1, j, 1] ); + } + + // top + if ( ( j > 0 ) && ( ( showInactive ) || ( map[i, j - 1, 2] == 1 ) ) ) + { + g.DrawLine( ( ( map[i, j, 2] == 0 ) || ( map[i, j - 1, 2] == 0 ) ) ? penGray : pen, map[i, j, 0], map[i, j, 1], map[i, j - 1, 0], map[i, j - 1, 1] ); + } + + // bottom + if ( ( j < k - 1 ) && ( ( showInactive ) || ( map[i, j + 1, 2] == 1 ) ) ) + { + g.DrawLine( ( ( map[i, j, 2] == 0 ) || ( map[i, j + 1, 2] == 0 ) ) ? penGray : pen, map[i, j, 0], map[i, j, 1], map[i, j + 1, 0], map[i, j + 1, 1] ); + } + } + } + } + + // draw the map + for ( int i = 0, n = map.GetLength( 0 ); i < n; i++ ) + { + for ( int j = 0, k = map.GetLength( 1 ); j < k; j++ ) + { + if ( ( !showInactive ) && ( map[i, j, 2] == 0 ) ) + continue; + + // draw the point + g.FillEllipse( ( map[i, j, 2] == 0 ) ? brushGray : brush, map[i, j, 0] - 2, map[i, j, 1] - 2, 5, 5 ); + } + } + + // unlock + Monitor.Exit( this ); + + brush.Dispose( ); + brushGray.Dispose( ); + pen.Dispose( ); + penGray.Dispose( ); + } + } + + // Delegates to enable async calls for setting controls properties + private delegate void EnableCallback( bool enable ); + + // Enable/disale controls (safe for threading) + private void EnableControls( bool enable ) + { + if ( InvokeRequired ) + { + EnableCallback d = new EnableCallback( EnableControls ); + Invoke( d, new object[] { enable } ); + } + else + { + sizeBox.Enabled = enable; + iterationsBox.Enabled = enable; + rateBox.Enabled = enable; + radiusBox.Enabled = enable; + + startButton.Enabled = enable; + generateButton.Enabled = enable; + stopButton.Enabled = !enable; + } + } + + // Show/hide connections on map + private void showConnectionsCheck_CheckedChanged(object sender, System.EventArgs e) + { + mapPanel.Invalidate( ); + } + + // Show/hide inactive neurons on map + private void showInactiveCheck_CheckedChanged(object sender, System.EventArgs e) + { + mapPanel.Invalidate( ); + } + + // On "Start" button click + private void startButton_Click(object sender, System.EventArgs e) + { + // get network size + try + { + networkSize = Math.Max( 5, Math.Min( 50, int.Parse( sizeBox.Text ) ) ); + } + catch + { + networkSize = 15; + } + // get iterations count + try + { + iterations = Math.Max( 10, Math.Min( 1000000, int.Parse( iterationsBox.Text ) ) ); + } + catch + { + iterations = 500; + } + // get learning rate + try + { + learningRate = Math.Max( 0.00001, Math.Min( 1.0, double.Parse( rateBox.Text ) ) ); + } + catch + { + learningRate = 0.3; + } + // get radius + try + { + learningRadius = Math.Max( 1, Math.Min( 30, int.Parse( radiusBox.Text ) ) ); + } + catch + { + learningRadius = 3; + } + // update settings controls + UpdateSettings( ); + + // disable all settings controls except "Stop" button + EnableControls( false ); + + // generate training set + for ( int i = 0; i < pointsCount; i++ ) + { + // create new training sample + trainingSet[i] = new double[2] { points[i, 0], points[i, 1] }; + } + + // run worker thread + needToStop = false; + workerThread = new Thread( new ThreadStart( SearchSolution ) ); + workerThread.Start( ); + } + + // On "Stop" button click + private void stopButton_Click(object sender, System.EventArgs e) + { + // stop worker thread + needToStop = true; + while ( !workerThread.Join( 100 ) ) + Application.DoEvents( ); + workerThread = null; + } + + // Worker thread + void SearchSolution( ) + { + // set random generators range + Neuron.RandRange = new Range( 0, Math.Max( pointsPanel.ClientRectangle.Width, pointsPanel.ClientRectangle.Height ) ); + + // create network + DistanceNetwork network = new DistanceNetwork( 2, networkSize * networkSize ); + + // create learning algorithm + SOMLearning trainer = new SOMLearning( network, networkSize, networkSize ); + + // create map + map = new int[networkSize, networkSize, 3]; + + double fixedLearningRate = learningRate / 10; + double driftingLearningRate = fixedLearningRate * 9; + + // iterations + int i = 0; + + // loop + while ( !needToStop ) + { + trainer.LearningRate = driftingLearningRate * ( iterations - i ) / iterations + fixedLearningRate; + trainer.LearningRadius = (double) learningRadius * ( iterations - i ) / iterations; + + // run training epoch + trainer.RunEpoch( trainingSet ); + + // update map + UpdateMap( network ); + + // increase current iteration + i++; + + // set current iteration's info + SetText( currentIterationBox, i.ToString( ) ); + + // stop ? + if ( i >= iterations ) + break; + } + + // enable settings controls + EnableControls( true ); + } + + // Update map + private void UpdateMap( DistanceNetwork network ) + { + // get first layer + Layer layer = network.Layers[0]; + + // lock + Monitor.Enter( this ); + + // run through all neurons + for ( int i = 0; i < layer.Neurons.Length; i++ ) + { + Neuron neuron = layer.Neurons[i]; + + int x = i % networkSize; + int y = i / networkSize; + + map[y, x, 0] = (int) neuron.Weights[0]; + map[y, x, 1] = (int) neuron.Weights[1]; + map[y, x, 2] = 0; + } + + // collect active neurons + for ( int i = 0; i < pointsCount; i++ ) + { + network.Compute( trainingSet[i] ); + int w = network.GetWinner( ); + + map[w / networkSize, w % networkSize, 2] = 1; + } + + // unlock + Monitor.Exit( this ); + + // + mapPanel.Invalidate( ); + } + } +} diff --git a/Samples/Neuro/SOM/2DOrganizing/MainForm.resx b/Samples/Neuro/SOM/2DOrganizing/MainForm.resx new file mode 100644 index 00000000..54a8e1f4 --- /dev/null +++ b/Samples/Neuro/SOM/2DOrganizing/MainForm.resx @@ -0,0 +1,382 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Private + + + 8, 8 + + + False + + + False + + + True + + + Private + + + False + + + Private + + + Private + + + False + + + False + + + Private + + + 8, 8 + + + True + + + Private + + + Private + + + 8, 8 + + + False + + + False + + + True + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + False + + + Private + + + 8, 8 + + + True + + + Private + + + Private + + + 8, 8 + + + False + + + False + + + True + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + Private + + + False + + + Private + + + False + + + Private + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + False + + + Private + + + Private + + + Private + + + False + + + Private + + + False + + + Private + + + Private + + + Private + + + False + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + Private + + + False + + + Private + + + False + + + Private + + + Private + + + False + + + (Default) + + + False + + + False + + + 8, 8 + + + True + + + MainForm + + + 80 + + + False + + + Private + + \ No newline at end of file diff --git a/Samples/Neuro/SOM/Color/App.ico b/Samples/Neuro/SOM/Color/App.ico new file mode 100644 index 00000000..3a5525fd Binary files /dev/null and b/Samples/Neuro/SOM/Color/App.ico differ diff --git a/Samples/Neuro/SOM/Color/AssemblyInfo.cs b/Samples/Neuro/SOM/Color/AssemblyInfo.cs new file mode 100644 index 00000000..c93a8fb1 --- /dev/null +++ b/Samples/Neuro/SOM/Color/AssemblyInfo.cs @@ -0,0 +1,59 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly: AssemblyTitle( "Neuro SOM Colors" )] +[assembly: AssemblyDescription( "Neuro SOM Colors sample" )] +[assembly: AssemblyConfiguration( "" )] +[assembly: AssemblyCompany( "AForge" )] +[assembly: AssemblyProduct( "AForge.NET" )] +[assembly: AssemblyCopyright( "AForge © 2008" )] +[assembly: AssemblyTrademark( "" )] +[assembly: AssemblyCulture( "" )] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion( "2.0.0.0" )] +[assembly: AssemblyFileVersion( "2.0.0.0" )] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign( false )] +[assembly: AssemblyKeyFile( "" )] +[assembly: AssemblyKeyName( "" )] diff --git a/Samples/Neuro/SOM/Color/BufferedPanel.cs b/Samples/Neuro/SOM/Color/BufferedPanel.cs new file mode 100644 index 00000000..46229733 --- /dev/null +++ b/Samples/Neuro/SOM/Color/BufferedPanel.cs @@ -0,0 +1,19 @@ +using System; +using System.Windows.Forms; + +namespace Color +{ + /// + /// Dummy class to enable doble buffering in Panel + /// + public class BufferedPanel : System.Windows.Forms.Panel + { + // Construcor + public BufferedPanel( ) + { + // Update control style + SetStyle( ControlStyles.AllPaintingInWmPaint | ControlStyles.ResizeRedraw | + ControlStyles.DoubleBuffer | ControlStyles.UserPaint, true ); + } + } +} diff --git a/Samples/Neuro/SOM/Color/Color.csproj b/Samples/Neuro/SOM/Color/Color.csproj new file mode 100644 index 00000000..c7cf5b9b --- /dev/null +++ b/Samples/Neuro/SOM/Color/Color.csproj @@ -0,0 +1,163 @@ + + + + Local + 9.0.21022 + 2.0 + {59E2469C-197F-4A4C-9D52-AA58EA49927E} + Debug + AnyCPU + App.ico + + + Color + + + JScript + Grid + IE50 + false + WinExe + Color + OnBuildSuccess + + + + + + + 3.5 + v2.0 + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + bin\Debug\ + true + 285212672 + false + + + DEBUG;TRACE + + + true + 4096 + false + + + false + false + false + false + 4 + full + prompt + + + bin\Release\ + true + 285212672 + false + + + TRACE + + + false + 4096 + false + + + true + false + false + false + 4 + none + prompt + + + + False + ..\..\..\..\Release\AForge.dll + + + False + ..\..\..\..\Release\AForge.Neuro.dll + + + System + + + System.Data + + + System.Drawing + + + System.Windows.Forms + + + System.XML + + + + + + Code + + + Component + + + Form + + + MainForm.cs + + + + + False + Microsoft .NET Framework 4 %28x86 and x64%29 + true + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 3.1 + true + + + + + + + + + + \ No newline at end of file diff --git a/Samples/Neuro/SOM/Color/Color.sln b/Samples/Neuro/SOM/Color/Color.sln new file mode 100644 index 00000000..73b91bd8 --- /dev/null +++ b/Samples/Neuro/SOM/Color/Color.sln @@ -0,0 +1,19 @@ +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual C# Express 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Color", "Color.csproj", "{59E2469C-197F-4A4C-9D52-AA58EA49927E}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {59E2469C-197F-4A4C-9D52-AA58EA49927E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {59E2469C-197F-4A4C-9D52-AA58EA49927E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {59E2469C-197F-4A4C-9D52-AA58EA49927E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {59E2469C-197F-4A4C-9D52-AA58EA49927E}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Samples/Neuro/SOM/Color/MainForm.cs b/Samples/Neuro/SOM/Color/MainForm.cs new file mode 100644 index 00000000..1957adab --- /dev/null +++ b/Samples/Neuro/SOM/Color/MainForm.cs @@ -0,0 +1,533 @@ +// Color Clustering using Kohonen SOM +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2006-2011 +// contacts@aforgenet.com +// + +using System; +using System.Drawing; +using System.Drawing.Imaging; +using System.Collections; +using System.ComponentModel; +using System.Windows.Forms; +using System.Data; +using System.Threading; + +using AForge; +using AForge.Neuro; +using AForge.Neuro.Learning; + +namespace Color +{ + /// + /// Summary description for MainForm. + /// + public class MainForm : System.Windows.Forms.Form + { + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.Panel mapPanel; + private System.Windows.Forms.GroupBox groupBox2; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.TextBox iterationsBox; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.TextBox rateBox; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.TextBox radiusBox; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.Button startButton; + private System.Windows.Forms.Button stopButton; + private System.Windows.Forms.Button randomizeButton; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.TextBox currentIterationBox; + /// + /// Required designer variable. + /// + private System.ComponentModel.Container components = null; + + private DistanceNetwork network; + private Bitmap mapBitmap; + private Random rand = new Random(); + + private int iterations = 5000; + private double learningRate = 0.1; + private double radius = 15; + + private Thread workerThread = null; + private volatile bool needToStop = false; + + // Constructor + public MainForm( ) + { + // + // Required for Windows Form Designer support + // + InitializeComponent( ); + + // Create network + network = new DistanceNetwork( 3, 100 * 100 ); + + // Create map bitmap + mapBitmap = new Bitmap( 200, 200, PixelFormat.Format24bppRgb ); + + // + RandomizeNetwork( ); + UpdateSettings( ); + } + + /// + /// Clean up any resources being used. + /// + protected override void Dispose( bool disposing ) + { + if( disposing ) + { + if ( components != null ) + { + components.Dispose( ); + } + } + base.Dispose( disposing ); + } + + #region Windows Form Designer generated code + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.randomizeButton = new System.Windows.Forms.Button(); + this.mapPanel = new BufferedPanel(); + this.groupBox2 = new System.Windows.Forms.GroupBox(); + this.currentIterationBox = new System.Windows.Forms.TextBox(); + this.label5 = new System.Windows.Forms.Label(); + this.stopButton = new System.Windows.Forms.Button(); + this.startButton = new System.Windows.Forms.Button(); + this.label4 = new System.Windows.Forms.Label(); + this.radiusBox = new System.Windows.Forms.TextBox(); + this.label3 = new System.Windows.Forms.Label(); + this.rateBox = new System.Windows.Forms.TextBox(); + this.label2 = new System.Windows.Forms.Label(); + this.iterationsBox = new System.Windows.Forms.TextBox(); + this.label1 = new System.Windows.Forms.Label(); + this.groupBox1.SuspendLayout(); + this.groupBox2.SuspendLayout(); + this.SuspendLayout(); + // + // groupBox1 + // + this.groupBox1.Controls.AddRange(new System.Windows.Forms.Control[] { + this.randomizeButton, + this.mapPanel}); + this.groupBox1.Location = new System.Drawing.Point(10, 10); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(222, 265); + this.groupBox1.TabIndex = 0; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "Map"; + // + // randomizeButton + // + this.randomizeButton.Location = new System.Drawing.Point(10, 230); + this.randomizeButton.Name = "randomizeButton"; + this.randomizeButton.TabIndex = 1; + this.randomizeButton.Text = "&Randomize"; + this.randomizeButton.Click += new System.EventHandler(this.randomizeButton_Click); + // + // mapPanel + // + this.mapPanel.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.mapPanel.Location = new System.Drawing.Point(10, 20); + this.mapPanel.Name = "mapPanel"; + this.mapPanel.Size = new System.Drawing.Size(202, 202); + this.mapPanel.TabIndex = 0; + this.mapPanel.Paint += new System.Windows.Forms.PaintEventHandler(this.mapPanel_Paint); + // + // groupBox2 + // + this.groupBox2.Controls.AddRange(new System.Windows.Forms.Control[] { + this.currentIterationBox, + this.label5, + this.stopButton, + this.startButton, + this.label4, + this.radiusBox, + this.label3, + this.rateBox, + this.label2, + this.iterationsBox, + this.label1}); + this.groupBox2.Location = new System.Drawing.Point(240, 10); + this.groupBox2.Name = "groupBox2"; + this.groupBox2.Size = new System.Drawing.Size(190, 265); + this.groupBox2.TabIndex = 1; + this.groupBox2.TabStop = false; + this.groupBox2.Text = "Neural Network"; + // + // currentIterationBox + // + this.currentIterationBox.Location = new System.Drawing.Point(110, 120); + this.currentIterationBox.Name = "currentIterationBox"; + this.currentIterationBox.ReadOnly = true; + this.currentIterationBox.Size = new System.Drawing.Size(70, 20); + this.currentIterationBox.TabIndex = 10; + this.currentIterationBox.Text = ""; + // + // label5 + // + this.label5.Location = new System.Drawing.Point(10, 122); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(100, 16); + this.label5.TabIndex = 9; + this.label5.Text = "Curren iteration:"; + // + // stopButton + // + this.stopButton.Enabled = false; + this.stopButton.Location = new System.Drawing.Point(105, 230); + this.stopButton.Name = "stopButton"; + this.stopButton.TabIndex = 8; + this.stopButton.Text = "S&top"; + this.stopButton.Click += new System.EventHandler(this.stopButton_Click); + // + // startButton + // + this.startButton.Location = new System.Drawing.Point(20, 230); + this.startButton.Name = "startButton"; + this.startButton.TabIndex = 7; + this.startButton.Text = "&Start"; + this.startButton.Click += new System.EventHandler(this.startButton_Click); + // + // label4 + // + this.label4.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label4.Location = new System.Drawing.Point(10, 100); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(170, 2); + this.label4.TabIndex = 6; + // + // radiusBox + // + this.radiusBox.Location = new System.Drawing.Point(110, 70); + this.radiusBox.Name = "radiusBox"; + this.radiusBox.Size = new System.Drawing.Size(70, 20); + this.radiusBox.TabIndex = 5; + this.radiusBox.Text = ""; + // + // label3 + // + this.label3.Location = new System.Drawing.Point(10, 72); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(100, 16); + this.label3.TabIndex = 4; + this.label3.Text = "Initial radius:"; + // + // rateBox + // + this.rateBox.Location = new System.Drawing.Point(110, 45); + this.rateBox.Name = "rateBox"; + this.rateBox.Size = new System.Drawing.Size(70, 20); + this.rateBox.TabIndex = 3; + this.rateBox.Text = ""; + // + // label2 + // + this.label2.Location = new System.Drawing.Point(10, 47); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(100, 16); + this.label2.TabIndex = 2; + this.label2.Text = "Initial learning rate:"; + // + // iterationsBox + // + this.iterationsBox.Location = new System.Drawing.Point(110, 20); + this.iterationsBox.Name = "iterationsBox"; + this.iterationsBox.Size = new System.Drawing.Size(70, 20); + this.iterationsBox.TabIndex = 1; + this.iterationsBox.Text = ""; + // + // label1 + // + this.label1.Location = new System.Drawing.Point(10, 22); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(60, 16); + this.label1.TabIndex = 0; + this.label1.Text = "Iteraions:"; + // + // MainForm + // + this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); + this.ClientSize = new System.Drawing.Size(439, 285); + this.Controls.AddRange(new System.Windows.Forms.Control[] { + this.groupBox2, + this.groupBox1}); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.MaximizeBox = false; + this.Name = "MainForm"; + this.Text = "Color Clustering using Kohonen SOM"; + this.Closing += new System.ComponentModel.CancelEventHandler(this.MainForm_Closing); + this.groupBox1.ResumeLayout(false); + this.groupBox2.ResumeLayout(false); + this.ResumeLayout(false); + + } + #endregion + + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main( ) + { + Application.Run( new MainForm( ) ); + } + + // Delegates to enable async calls for setting controls properties + private delegate void SetTextCallback( System.Windows.Forms.Control control, string text ); + + // Thread safe updating of control's text property + private void SetText( System.Windows.Forms.Control control, string text ) + { + if ( control.InvokeRequired ) + { + SetTextCallback d = new SetTextCallback( SetText ); + Invoke( d, new object[] { control, text } ); + } + else + { + control.Text = text; + } + } + + // On main form closing + private void MainForm_Closing(object sender, System.ComponentModel.CancelEventArgs e) + { + // check if worker thread is running + if ( ( workerThread != null ) && ( workerThread.IsAlive ) ) + { + needToStop = true; + while ( !workerThread.Join( 100 ) ) + Application.DoEvents( ); + } + } + + // Update settings controls + private void UpdateSettings( ) + { + iterationsBox.Text = iterations.ToString( ); + rateBox.Text = learningRate.ToString( ); + radiusBox.Text = radius.ToString( ); + } + + // On "Rundomize" button clicked + private void randomizeButton_Click(object sender, System.EventArgs e) + { + RandomizeNetwork( ); + } + + // Radnomize weights of network + private void RandomizeNetwork( ) + { + Neuron.RandRange = new Range( 0, 255 ); + + // randomize net + network.Randomize( ); + + // update map + UpdateMap( ); + } + + // Update map from network weights + private void UpdateMap( ) + { + // lock + Monitor.Enter( this ); + + // lock bitmap + BitmapData mapData = mapBitmap.LockBits( new Rectangle( 0, 0 , 200, 200 ), + ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb ); + + int stride = mapData.Stride; + int offset = stride - 200 * 3; + Layer layer = network.Layers[0]; + + unsafe + { + byte* ptr = (byte*) mapData.Scan0; + + // for all rows + for ( int y = 0, i = 0; y < 100; y++ ) + { + // for all pixels + for ( int x = 0; x < 100; x++, i++, ptr += 6 ) + { + Neuron neuron = layer.Neurons[i]; + + // red + ptr[2] = ptr[2 + 3] = ptr[2 + stride] = ptr[2 + 3 + stride] = + (byte) Math.Max( 0, Math.Min( 255, neuron.Weights[0] ) ); + // green + ptr[1] = ptr[1 + 3] = ptr[1 + stride] = ptr[1 + 3 + stride] = + (byte) Math.Max( 0, Math.Min( 255, neuron.Weights[1] ) ); + // blue + ptr[0] = ptr[0 + 3] = ptr[0 + stride] = ptr[0 + 3 + stride] = + (byte) Math.Max( 0, Math.Min( 255, neuron.Weights[2] ) ); + } + + ptr += offset; + ptr += stride; + } + } + + // unlock image + mapBitmap.UnlockBits( mapData ); + + // unlock + Monitor.Exit( this ); + + // invalidate maps panel + mapPanel.Invalidate( ); + } + + // Paint map + private void mapPanel_Paint(object sender, System.Windows.Forms.PaintEventArgs e) + { + Graphics g = e.Graphics; + + // lock + Monitor.Enter( this ); + + // drat image + g.DrawImage( mapBitmap, 0, 0, 200, 200 ); + + // unlock + Monitor.Exit( this ); + } + + // Delegates to enable async calls for setting controls properties + private delegate void EnableCallback( bool enable ); + + // Enable/disale controls (safe for threading) + private void EnableControls( bool enable ) + { + if ( InvokeRequired ) + { + EnableCallback d = new EnableCallback( EnableControls ); + Invoke( d, new object[] { enable } ); + } + else + { + iterationsBox.Enabled = enable; + rateBox.Enabled = enable; + radiusBox.Enabled = enable; + + startButton.Enabled = enable; + randomizeButton.Enabled = enable; + stopButton.Enabled = !enable; + } + } + + // On "Start" button click + private void startButton_Click(object sender, System.EventArgs e) + { + // get iterations count + try + { + iterations = Math.Max( 10, Math.Min( 1000000, int.Parse( iterationsBox.Text ) ) ); + } + catch + { + iterations = 5000; + } + // get learning rate + try + { + learningRate = Math.Max( 0.00001, Math.Min( 1.0, double.Parse( rateBox.Text ) ) ); + } + catch + { + learningRate = 0.1; + } + // get radius + try + { + radius = Math.Max( 5, Math.Min( 75, int.Parse( radiusBox.Text ) ) ); + } + catch + { + radius = 15; + } + // update settings controls + UpdateSettings( ); + + // disable all settings controls except "Stop" button + EnableControls( false ); + + // run worker thread + needToStop = false; + workerThread = new Thread( new ThreadStart( SearchSolution ) ); + workerThread.Start( ); + } + + // On "Stop" button click + private void stopButton_Click(object sender, System.EventArgs e) + { + // stop worker thread + needToStop = true; + while ( !workerThread.Join( 100 ) ) + Application.DoEvents( ); + workerThread = null; + } + + // Worker thread + void SearchSolution( ) + { + // create learning algorithm + SOMLearning trainer = new SOMLearning( network ); + + // input + double[] input = new double[3]; + + double fixedLearningRate = learningRate / 10; + double driftingLearningRate = fixedLearningRate * 9; + + // iterations + int i = 0; + + // loop + while ( !needToStop ) + { + trainer.LearningRate = driftingLearningRate * ( iterations - i ) / iterations + fixedLearningRate; + trainer.LearningRadius = (double) radius * ( iterations - i ) / iterations; + + input[0] = rand.Next( 256 ); + input[1] = rand.Next( 256 ); + input[2] = rand.Next( 256 ); + + trainer.Run( input ); + + // update map once per 50 iterations + if ( ( i % 10 ) == 9 ) + { + UpdateMap( ); + } + + // increase current iteration + i++; + + // set current iteration's info + SetText( currentIterationBox, i.ToString( ) ); + + // stop ? + if ( i >= iterations ) + break; + } + + // enable settings controls + EnableControls( true ); + } + } +} diff --git a/Samples/Neuro/SOM/Color/MainForm.resx b/Samples/Neuro/SOM/Color/MainForm.resx new file mode 100644 index 00000000..54cc3a20 --- /dev/null +++ b/Samples/Neuro/SOM/Color/MainForm.resx @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + MainForm + + + False + + \ No newline at end of file diff --git a/Samples/Neuro/SOM/TSP/App.ico b/Samples/Neuro/SOM/TSP/App.ico new file mode 100644 index 00000000..3a5525fd Binary files /dev/null and b/Samples/Neuro/SOM/TSP/App.ico differ diff --git a/Samples/Neuro/SOM/TSP/AssemblyInfo.cs b/Samples/Neuro/SOM/TSP/AssemblyInfo.cs new file mode 100644 index 00000000..1a219b2e --- /dev/null +++ b/Samples/Neuro/SOM/TSP/AssemblyInfo.cs @@ -0,0 +1,59 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly: AssemblyTitle( "Neuro SOM TSP" )] +[assembly: AssemblyDescription( "Neuro SOM TSP sample" )] +[assembly: AssemblyConfiguration( "" )] +[assembly: AssemblyCompany( "AForge" )] +[assembly: AssemblyProduct( "AForge.NET" )] +[assembly: AssemblyCopyright( "AForge © 2008" )] +[assembly: AssemblyTrademark( "" )] +[assembly: AssemblyCulture( "" )] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion( "2.0.0.0" )] +[assembly: AssemblyFileVersion( "2.0.0.0" )] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign( false )] +[assembly: AssemblyKeyFile( "" )] +[assembly: AssemblyKeyName( "" )] diff --git a/Samples/Neuro/SOM/TSP/MainForm.cs b/Samples/Neuro/SOM/TSP/MainForm.cs new file mode 100644 index 00000000..99e64907 --- /dev/null +++ b/Samples/Neuro/SOM/TSP/MainForm.cs @@ -0,0 +1,567 @@ +// Traveling Salesman Problem using Elastic Net +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2006-2011 +// contacts@aforgenet.com +// + +using System; +using System.Drawing; +using System.Collections; +using System.ComponentModel; +using System.Windows.Forms; +using System.Data; +using System.Threading; + +using AForge; +using AForge.Neuro; +using AForge.Neuro.Learning; +using AForge.Controls; + +namespace TSP +{ + /// + /// Summary description for MainForm. + /// + public class MainForm : System.Windows.Forms.Form + { + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.Button generateMapButton; + private System.Windows.Forms.TextBox citiesCountBox; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.GroupBox groupBox2; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.TextBox neuronsBox; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.TextBox currentIterationBox; + private System.Windows.Forms.Label label8; + private System.Windows.Forms.Label label7; + private System.Windows.Forms.TextBox rateBox; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.TextBox iterationsBox; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.Button stopButton; + private System.Windows.Forms.Button startButton; + private AForge.Controls.Chart chart; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.TextBox radiusBox; + /// + /// Required designer variable. + /// + private System.ComponentModel.Container components = null; + + private int citiesCount = 10; + private int neurons = 20; + private int iterations = 500; + private double learningRate = 0.5; + private double learningRadius = 0.5; + + private double[,] map = null; + private Random rand = new Random(); + + private Thread workerThread = null; + private volatile bool needToStop = false; + + // Constructor + public MainForm( ) + { + // + // Required for Windows Form Designer support + // + InitializeComponent( ); + + // initialize chart + chart.AddDataSeries( "cities", Color.Red, Chart.SeriesType.Dots, 5, false ); + chart.AddDataSeries( "path", Color.Blue, Chart.SeriesType.Line, 1, false ); + chart.RangeX = new Range( 0, 1000 ); + chart.RangeY = new Range( 0, 1000 ); + + // + UpdateSettings( ); + GenerateMap( ); + } + + /// + /// Clean up any resources being used. + /// + protected override void Dispose( bool disposing ) + { + if( disposing ) + { + if ( components != null ) + { + components.Dispose( ); + } + } + base.Dispose( disposing ); + } + + #region Windows Form Designer generated code + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.generateMapButton = new System.Windows.Forms.Button(); + this.citiesCountBox = new System.Windows.Forms.TextBox(); + this.label1 = new System.Windows.Forms.Label(); + this.groupBox2 = new System.Windows.Forms.GroupBox(); + this.stopButton = new System.Windows.Forms.Button(); + this.startButton = new System.Windows.Forms.Button(); + this.currentIterationBox = new System.Windows.Forms.TextBox(); + this.label8 = new System.Windows.Forms.Label(); + this.label7 = new System.Windows.Forms.Label(); + this.rateBox = new System.Windows.Forms.TextBox(); + this.label5 = new System.Windows.Forms.Label(); + this.iterationsBox = new System.Windows.Forms.TextBox(); + this.label6 = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + this.neuronsBox = new System.Windows.Forms.TextBox(); + this.label2 = new System.Windows.Forms.Label(); + this.label4 = new System.Windows.Forms.Label(); + this.radiusBox = new System.Windows.Forms.TextBox(); + this.groupBox1.SuspendLayout(); + this.groupBox2.SuspendLayout(); + this.SuspendLayout(); + this.chart = new AForge.Controls.Chart( ); + // + // groupBox1 + // + this.groupBox1.Controls.Add(this.generateMapButton); + this.groupBox1.Controls.Add(this.citiesCountBox); + this.groupBox1.Controls.Add(this.label1); + this.groupBox1.Controls.Add(this.chart); + this.groupBox1.Location = new System.Drawing.Point(10, 10); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(300, 340); + this.groupBox1.TabIndex = 1; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "Map"; + // + // generateMapButton + // + this.generateMapButton.Location = new System.Drawing.Point(110, 309); + this.generateMapButton.Name = "generateMapButton"; + this.generateMapButton.Size = new System.Drawing.Size(75, 22); + this.generateMapButton.TabIndex = 3; + this.generateMapButton.Text = "&Generate"; + this.generateMapButton.Click += new System.EventHandler(this.generateMapButton_Click); + // + // citiesCountBox + // + this.citiesCountBox.Location = new System.Drawing.Point(50, 310); + this.citiesCountBox.Name = "citiesCountBox"; + this.citiesCountBox.Size = new System.Drawing.Size(50, 20); + this.citiesCountBox.TabIndex = 2; + this.citiesCountBox.Text = ""; + // + // label1 + // + this.label1.Location = new System.Drawing.Point(10, 312); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(40, 16); + this.label1.TabIndex = 1; + this.label1.Text = "Cities:"; + // + // chart + // + this.chart.Location = new System.Drawing.Point(10, 20); + this.chart.Name = "chart"; + this.chart.Size = new System.Drawing.Size(280, 280); + this.chart.TabIndex = 4; + // + // groupBox2 + // + this.groupBox2.Controls.Add(this.radiusBox); + this.groupBox2.Controls.Add(this.label4); + this.groupBox2.Controls.Add(this.stopButton); + this.groupBox2.Controls.Add(this.startButton); + this.groupBox2.Controls.Add(this.currentIterationBox); + this.groupBox2.Controls.Add(this.label8); + this.groupBox2.Controls.Add(this.label7); + this.groupBox2.Controls.Add(this.rateBox); + this.groupBox2.Controls.Add(this.label5); + this.groupBox2.Controls.Add(this.iterationsBox); + this.groupBox2.Controls.Add(this.label6); + this.groupBox2.Controls.Add(this.label3); + this.groupBox2.Controls.Add(this.neuronsBox); + this.groupBox2.Controls.Add(this.label2); + this.groupBox2.Location = new System.Drawing.Point(320, 10); + this.groupBox2.Name = "groupBox2"; + this.groupBox2.Size = new System.Drawing.Size(180, 340); + this.groupBox2.TabIndex = 2; + this.groupBox2.TabStop = false; + this.groupBox2.Text = "Neural Network"; + // + // stopButton + // + this.stopButton.Enabled = false; + this.stopButton.Location = new System.Drawing.Point(95, 305); + this.stopButton.Name = "stopButton"; + this.stopButton.TabIndex = 23; + this.stopButton.Text = "S&top"; + this.stopButton.Click += new System.EventHandler(this.stopButton_Click); + // + // startButton + // + this.startButton.Location = new System.Drawing.Point(10, 305); + this.startButton.Name = "startButton"; + this.startButton.TabIndex = 22; + this.startButton.Text = "&Start"; + this.startButton.Click += new System.EventHandler(this.startButton_Click); + // + // currentIterationBox + // + this.currentIterationBox.Location = new System.Drawing.Point(110, 150); + this.currentIterationBox.Name = "currentIterationBox"; + this.currentIterationBox.ReadOnly = true; + this.currentIterationBox.Size = new System.Drawing.Size(60, 20); + this.currentIterationBox.TabIndex = 21; + this.currentIterationBox.Text = ""; + // + // label8 + // + this.label8.Location = new System.Drawing.Point(10, 152); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size(100, 16); + this.label8.TabIndex = 20; + this.label8.Text = "Curren iteration:"; + // + // label7 + // + this.label7.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label7.Location = new System.Drawing.Point(10, 139); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(160, 2); + this.label7.TabIndex = 19; + // + // rateBox + // + this.rateBox.Location = new System.Drawing.Point(110, 85); + this.rateBox.Name = "rateBox"; + this.rateBox.Size = new System.Drawing.Size(60, 20); + this.rateBox.TabIndex = 18; + this.rateBox.Text = ""; + // + // label5 + // + this.label5.Location = new System.Drawing.Point(10, 87); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(100, 16); + this.label5.TabIndex = 17; + this.label5.Text = "Initial learning rate:"; + // + // iterationsBox + // + this.iterationsBox.Location = new System.Drawing.Point(110, 60); + this.iterationsBox.Name = "iterationsBox"; + this.iterationsBox.Size = new System.Drawing.Size(60, 20); + this.iterationsBox.TabIndex = 16; + this.iterationsBox.Text = ""; + // + // label6 + // + this.label6.Location = new System.Drawing.Point(10, 62); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(60, 16); + this.label6.TabIndex = 15; + this.label6.Text = "Iteraions:"; + // + // label3 + // + this.label3.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label3.Location = new System.Drawing.Point(10, 48); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(160, 2); + this.label3.TabIndex = 4; + // + // neuronsBox + // + this.neuronsBox.Location = new System.Drawing.Point(110, 20); + this.neuronsBox.Name = "neuronsBox"; + this.neuronsBox.Size = new System.Drawing.Size(60, 20); + this.neuronsBox.TabIndex = 1; + this.neuronsBox.Text = ""; + // + // label2 + // + this.label2.Location = new System.Drawing.Point(10, 22); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(60, 16); + this.label2.TabIndex = 0; + this.label2.Text = "Neurons:"; + // + // label4 + // + this.label4.Location = new System.Drawing.Point(10, 112); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(100, 16); + this.label4.TabIndex = 24; + this.label4.Text = "Learning radius:"; + // + // radiusBox + // + this.radiusBox.Location = new System.Drawing.Point(110, 110); + this.radiusBox.Name = "radiusBox"; + this.radiusBox.Size = new System.Drawing.Size(60, 20); + this.radiusBox.TabIndex = 25; + this.radiusBox.Text = ""; + // + // MainForm + // + this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); + this.ClientSize = new System.Drawing.Size(509, 360); + this.Controls.Add(this.groupBox2); + this.Controls.Add(this.groupBox1); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.MaximizeBox = false; + this.Name = "MainForm"; + this.Text = "Traveling Salesman Problem using Elastic Net"; + this.Closing += new System.ComponentModel.CancelEventHandler(this.MainForm_Closing); + this.groupBox1.ResumeLayout(false); + this.groupBox2.ResumeLayout(false); + this.ResumeLayout(false); + + } + #endregion + + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main( ) + { + Application.Run( new MainForm( ) ); + } + + // Delegates to enable async calls for setting controls properties + private delegate void SetTextCallback( System.Windows.Forms.Control control, string text ); + + // Thread safe updating of control's text property + private void SetText( System.Windows.Forms.Control control, string text ) + { + if ( control.InvokeRequired ) + { + SetTextCallback d = new SetTextCallback( SetText ); + Invoke( d, new object[] { control, text } ); + } + else + { + control.Text = text; + } + } + + // On main form closing + private void MainForm_Closing(object sender, System.ComponentModel.CancelEventArgs e) + { + // check if worker thread is running + if ( ( workerThread != null ) && ( workerThread.IsAlive ) ) + { + needToStop = true; + while ( !workerThread.Join( 100 ) ) + Application.DoEvents( ); + } + } + + // Update settings controls + private void UpdateSettings( ) + { + citiesCountBox.Text = citiesCount.ToString( ); + neuronsBox.Text = neurons.ToString( ); + iterationsBox.Text = iterations.ToString( ); + rateBox.Text = learningRate.ToString( ); + radiusBox.Text = learningRadius.ToString( ); + } + + // Generate new map for the Traivaling Salesman problem + private void GenerateMap( ) + { + Random rand = new Random( (int) DateTime.Now.Ticks ); + + // create coordinates array + map = new double[citiesCount, 2]; + + for ( int i = 0; i < citiesCount; i++ ) + { + map[i, 0] = rand.Next( 1001 ); + map[i, 1] = rand.Next( 1001 ); + } + + // set the map + chart.UpdateDataSeries( "cities", map ); + // erase path if it is + chart.UpdateDataSeries( "path", null ); + } + + // On "Generate" button click - generate map + private void generateMapButton_Click(object sender, System.EventArgs e) + { + // get cities count + try + { + citiesCount = Math.Max( 5, Math.Min( 50, int.Parse( citiesCountBox.Text ) ) ); + } + catch + { + citiesCount = 20; + } + citiesCountBox.Text = citiesCount.ToString( ); + + // regenerate map + GenerateMap( ); + } + + // Delegates to enable async calls for setting controls properties + private delegate void EnableCallback( bool enable ); + + // Enable/disale controls (safe for threading) + private void EnableControls( bool enable ) + { + if ( InvokeRequired ) + { + EnableCallback d = new EnableCallback( EnableControls ); + Invoke( d, new object[] { enable } ); + } + else + { + neuronsBox.Enabled = enable; + iterationsBox.Enabled = enable; + rateBox.Enabled = enable; + radiusBox.Enabled = enable; + + startButton.Enabled = enable; + generateMapButton.Enabled = enable; + stopButton.Enabled = !enable; + } + } + + // On "Start" button click + private void startButton_Click(object sender, System.EventArgs e) + { + // get network size + try + { + neurons = Math.Max( 5, Math.Min( 50, int.Parse( neuronsBox.Text ) ) ); + } + catch + { + neurons = 20; + } + // get iterations count + try + { + iterations = Math.Max( 10, Math.Min( 1000000, int.Parse( iterationsBox.Text ) ) ); + } + catch + { + iterations = 500; + } + // get learning rate + try + { + learningRate = Math.Max( 0.00001, Math.Min( 1.0, double.Parse( rateBox.Text ) ) ); + } + catch + { + learningRate = 0.5; + } + // get learning radius + try + { + learningRadius = Math.Max( 0.00001, Math.Min( 1.0, double.Parse( radiusBox.Text ) ) ); + } + catch + { + learningRadius = 0.5; + } + // update settings controls + UpdateSettings( ); + + // disable all settings controls except "Stop" button + EnableControls( false ); + + // run worker thread + needToStop = false; + workerThread = new Thread( new ThreadStart( SearchSolution ) ); + workerThread.Start( ); + } + + // On "Stop" button click + private void stopButton_Click(object sender, System.EventArgs e) + { + // stop worker thread + needToStop = true; + while ( !workerThread.Join( 100 ) ) + Application.DoEvents( ); + workerThread = null; + } + + // Worker thread + void SearchSolution( ) + { + // set random generators range + Neuron.RandRange = new Range( 0, 1000 ); + + // create network + DistanceNetwork network = new DistanceNetwork( 2, neurons ); + + // create learning algorithm + ElasticNetworkLearning trainer = new ElasticNetworkLearning( network ); + + double fixedLearningRate = learningRate / 20; + double driftingLearningRate = fixedLearningRate * 19; + + // path + double[,] path = new double[neurons + 1, 2]; + + // input + double[] input = new double[2]; + + // iterations + int i = 0; + + // loop + while ( !needToStop ) + { + // update learning speed & radius + trainer.LearningRate = driftingLearningRate * ( iterations - i ) / iterations + fixedLearningRate; + trainer.LearningRadius = learningRadius * ( iterations - i ) / iterations; + + // set network input + int currentCity = rand.Next( citiesCount ); + input[0] = map[currentCity, 0]; + input[1] = map[currentCity, 1]; + + // run one training iteration + trainer.Run( input ); + + // show current path + for ( int j = 0; j < neurons; j++ ) + { + path[j, 0] = network.Layers[0].Neurons[j].Weights[0]; + path[j, 1] = network.Layers[0].Neurons[j].Weights[1]; + } + path[neurons, 0] = network.Layers[0].Neurons[0].Weights[0]; + path[neurons, 1] = network.Layers[0].Neurons[0].Weights[1]; + + chart.UpdateDataSeries( "path", path ); + + // increase current iteration + i++; + + // set current iteration's info + SetText( currentIterationBox, i.ToString( ) ); + + // stop ? + if ( i >= iterations ) + break; + } + + // enable settings controls + EnableControls( true ); + } + } +} \ No newline at end of file diff --git a/Samples/Neuro/SOM/TSP/MainForm.resx b/Samples/Neuro/SOM/TSP/MainForm.resx new file mode 100644 index 00000000..93eebbe4 --- /dev/null +++ b/Samples/Neuro/SOM/TSP/MainForm.resx @@ -0,0 +1,319 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Private + + + 8, 8 + + + True + + + False + + + True + + + Private + + + False + + + Private + + + Private + + + Private + + + False + + + Private + + + False + + + Private + + + Private + + + Private + + + 8, 8 + + + False + + + False + + + True + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + Private + + + False + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + Private + + + False + + + Private + + + False + + + Private + + + Private + + + Private + + + False + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + Private + + + False + + + Private + + + False + + + Private + + + Private + + + False + + + Private + + + Private + + + Private + + + False + + + Private + + + False + + + (Default) + + + False + + + False + + + 8, 8 + + + True + + + MainForm + + + 80 + + + False + + + Private + + \ No newline at end of file diff --git a/Samples/Neuro/SOM/TSP/TSP.csproj b/Samples/Neuro/SOM/TSP/TSP.csproj new file mode 100644 index 00000000..77e28470 --- /dev/null +++ b/Samples/Neuro/SOM/TSP/TSP.csproj @@ -0,0 +1,164 @@ + + + + Local + 9.0.21022 + 2.0 + {6FA77B7F-E933-4B25-AC4C-99E343B35AC8} + Debug + AnyCPU + App.ico + + + TSP + + + JScript + Grid + IE50 + false + WinExe + TSP + OnBuildSuccess + + + + + + + 3.5 + v2.0 + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + bin\Debug\ + false + 285212672 + false + + + DEBUG;TRACE + + + true + 4096 + false + + + false + false + false + false + 4 + full + prompt + + + bin\Release\ + false + 285212672 + false + + + TRACE + + + false + 4096 + false + + + true + false + false + false + 4 + none + prompt + + + + False + ..\..\..\..\Release\AForge.dll + + + False + ..\..\..\..\Release\AForge.Controls.dll + + + False + ..\..\..\..\Release\AForge.Neuro.dll + + + System + + + System.Data + + + System.Drawing + + + System.Windows.Forms + + + System.XML + + + + + + Code + + + Form + + + MainForm.cs + + + + + False + Microsoft .NET Framework 4 %28x86 and x64%29 + true + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 3.1 + true + + + + + + + + + + \ No newline at end of file diff --git a/Samples/Neuro/SOM/TSP/TSP.sln b/Samples/Neuro/SOM/TSP/TSP.sln new file mode 100644 index 00000000..3a2547d8 --- /dev/null +++ b/Samples/Neuro/SOM/TSP/TSP.sln @@ -0,0 +1,19 @@ +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual C# Express 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TSP", "TSP.csproj", "{6FA77B7F-E933-4B25-AC4C-99E343B35AC8}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {6FA77B7F-E933-4B25-AC4C-99E343B35AC8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6FA77B7F-E933-4B25-AC4C-99E343B35AC8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6FA77B7F-E933-4B25-AC4C-99E343B35AC8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6FA77B7F-E933-4B25-AC4C-99E343B35AC8}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Samples/Neuro/Simple/Delta Rule Learning/App.ico b/Samples/Neuro/Simple/Delta Rule Learning/App.ico new file mode 100644 index 00000000..3a5525fd Binary files /dev/null and b/Samples/Neuro/Simple/Delta Rule Learning/App.ico differ diff --git a/Samples/Neuro/Simple/Delta Rule Learning/AssemblyInfo.cs b/Samples/Neuro/Simple/Delta Rule Learning/AssemblyInfo.cs new file mode 100644 index 00000000..8fb5a300 --- /dev/null +++ b/Samples/Neuro/Simple/Delta Rule Learning/AssemblyInfo.cs @@ -0,0 +1,59 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly: AssemblyTitle( "Neuro Delta Rule Learning" )] +[assembly: AssemblyDescription( "Neuro Delta Rule Learning sample" )] +[assembly: AssemblyConfiguration( "" )] +[assembly: AssemblyCompany( "AForge" )] +[assembly: AssemblyProduct( "AForge.NET" )] +[assembly: AssemblyCopyright( "AForge © 2008" )] +[assembly: AssemblyTrademark( "" )] +[assembly: AssemblyCulture( "" )] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion( "2.0.0.0" )] +[assembly: AssemblyFileVersion( "2.0.0.0" )] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign( false )] +[assembly: AssemblyKeyFile( "" )] +[assembly: AssemblyKeyName( "" )] diff --git a/Samples/Neuro/Simple/Delta Rule Learning/Classifier.csproj b/Samples/Neuro/Simple/Delta Rule Learning/Classifier.csproj new file mode 100644 index 00000000..5b0a39cf --- /dev/null +++ b/Samples/Neuro/Simple/Delta Rule Learning/Classifier.csproj @@ -0,0 +1,175 @@ + + + + Local + 9.0.21022 + 2.0 + {22245733-2B6B-4BA6-B10B-016061B21DF1} + Debug + AnyCPU + App.ico + + + Classifier + + + JScript + Grid + IE50 + false + WinExe + Classifier + OnBuildSuccess + + + + + + + 3.5 + v2.0 + false + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + true + + + bin\Debug\ + false + 285212672 + false + + + DEBUG;TRACE + + + true + 4096 + false + + + false + false + false + false + 4 + full + prompt + + + bin\Release\ + false + 285212672 + false + + + TRACE + + + false + 4096 + false + + + true + false + false + false + 4 + none + prompt + + + + False + ..\..\..\..\Release\AForge.dll + + + False + ..\..\..\..\Release\AForge.Controls.dll + + + False + ..\..\..\..\Release\AForge.Neuro.dll + + + System + + + System.Data + + + System.Drawing + + + System.Windows.Forms + + + System.XML + + + + + + Code + + + Form + + + MainForm.cs + Designer + + + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 2.0 %28x86%29 + false + + + False + .NET Framework 3.0 %28x86%29 + false + + + False + .NET Framework 3.5 + true + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 3.1 + true + + + + + + + + + + \ No newline at end of file diff --git a/Samples/Neuro/Simple/Delta Rule Learning/Classifier.sln b/Samples/Neuro/Simple/Delta Rule Learning/Classifier.sln new file mode 100644 index 00000000..4095008a --- /dev/null +++ b/Samples/Neuro/Simple/Delta Rule Learning/Classifier.sln @@ -0,0 +1,19 @@ +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual C# Express 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Classifier", "Classifier.csproj", "{22245733-2B6B-4BA6-B10B-016061B21DF1}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {22245733-2B6B-4BA6-B10B-016061B21DF1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {22245733-2B6B-4BA6-B10B-016061B21DF1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {22245733-2B6B-4BA6-B10B-016061B21DF1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {22245733-2B6B-4BA6-B10B-016061B21DF1}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Samples/Neuro/Simple/Delta Rule Learning/Data Samples/and.csv b/Samples/Neuro/Simple/Delta Rule Learning/Data Samples/and.csv new file mode 100644 index 00000000..4b7b3ea7 --- /dev/null +++ b/Samples/Neuro/Simple/Delta Rule Learning/Data Samples/and.csv @@ -0,0 +1,4 @@ +0,0,0 +0,1,0 +1,0,0 +1,1,1 diff --git a/Samples/Neuro/Simple/Delta Rule Learning/Data Samples/cube.csv b/Samples/Neuro/Simple/Delta Rule Learning/Data Samples/cube.csv new file mode 100644 index 00000000..6aa44f78 --- /dev/null +++ b/Samples/Neuro/Simple/Delta Rule Learning/Data Samples/cube.csv @@ -0,0 +1,8 @@ +0,0,0,0 +0,0,1,0 +0,1,0,0 +0,1,1,0 +1,0,0,1 +1,0,1,1 +1,1,0,1 +1,1,1,1 diff --git a/Samples/Neuro/Simple/Delta Rule Learning/Data Samples/or.csv b/Samples/Neuro/Simple/Delta Rule Learning/Data Samples/or.csv new file mode 100644 index 00000000..5f14b20d --- /dev/null +++ b/Samples/Neuro/Simple/Delta Rule Learning/Data Samples/or.csv @@ -0,0 +1,4 @@ +0,0,0 +0,1,1 +1,0,1 +1,1,1 diff --git a/Samples/Neuro/Simple/Delta Rule Learning/Data Samples/sample1.csv b/Samples/Neuro/Simple/Delta Rule Learning/Data Samples/sample1.csv new file mode 100644 index 00000000..96e7ba7d --- /dev/null +++ b/Samples/Neuro/Simple/Delta Rule Learning/Data Samples/sample1.csv @@ -0,0 +1,15 @@ +0.1,0.1,0 +0.2,0.3,0 +0.3,0.4,0 +0.1,0.3,0 +0.2,0.5,0 +0.1,1,1 +0.2,1.1,1 +0.3,0.9,1 +0.4,0.8,1 +0.2,0.9,1 +1,0.4,2 +0.9,0.5,2 +0.8,0.6,2 +0.9,0.4,2 +1,0.5,2 diff --git a/Samples/Neuro/Simple/Delta Rule Learning/Data Samples/sample2.csv b/Samples/Neuro/Simple/Delta Rule Learning/Data Samples/sample2.csv new file mode 100644 index 00000000..934a55a0 --- /dev/null +++ b/Samples/Neuro/Simple/Delta Rule Learning/Data Samples/sample2.csv @@ -0,0 +1,20 @@ +0.1,0.4,0 +0.2,0.2,0 +0.3,0.1,0 +0.1,0.2,0 +0.2,0.5,0 +0.7,0.2,1 +0.8,0.3,1 +0.9,0.4,1 +0.7,0.1,1 +0.8,0.2,1 +0.1,0.6,2 +0.2,0.7,2 +0.3,0.8,2 +0.3,0.9,2 +0.1,0.6,2 +0.7,0.9,3 +0.8,0.9,3 +0.7,0.8,3 +0.8,0.7,3 +0.9,0.7,3 diff --git a/Samples/Neuro/Simple/Delta Rule Learning/MainForm.cs b/Samples/Neuro/Simple/Delta Rule Learning/MainForm.cs new file mode 100644 index 00000000..c62688c0 --- /dev/null +++ b/Samples/Neuro/Simple/Delta Rule Learning/MainForm.cs @@ -0,0 +1,1013 @@ +// Classifier using Delta Rule Learning +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2006-2011 +// contacts@aforgenet.com +// + +using System; +using System.Drawing; +using System.Collections; +using System.ComponentModel; +using System.Windows.Forms; +using System.Data; +using System.IO; +using System.Threading; + +using AForge; +using AForge.Neuro; +using AForge.Neuro.Learning; +using AForge.Controls; + +namespace Classifier +{ + /// + /// Summary description for Form1. + /// + public class MainForm : System.Windows.Forms.Form + { + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.Button loadButton; + private System.Windows.Forms.OpenFileDialog openFileDialog; + private System.Windows.Forms.ListView dataList; + private System.Windows.Forms.GroupBox groupBox2; + private System.Windows.Forms.TextBox learningRateBox; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.TextBox alphaBox; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.TextBox errorLimitBox; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.TextBox iterationsBox; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.TextBox neuronsBox; + private System.Windows.Forms.CheckBox oneNeuronForTwoCheck; + private System.Windows.Forms.Label label7; + private System.Windows.Forms.Label label8; + private System.Windows.Forms.TextBox currentIterationBox; + private System.Windows.Forms.Button stopButton; + private System.Windows.Forms.Button startButton; + private System.Windows.Forms.Label label9; + private System.Windows.Forms.Label label10; + private System.Windows.Forms.TextBox classesBox; + private System.Windows.Forms.CheckBox errorLimitCheck; + private System.Windows.Forms.Label label11; + private System.Windows.Forms.TextBox currentErrorBox; + private System.Windows.Forms.GroupBox groupBox3; + private System.Windows.Forms.Label label12; + private System.Windows.Forms.ListView weightsList; + private System.Windows.Forms.Label label13; + private System.Windows.Forms.ColumnHeader columnHeader1; + private System.Windows.Forms.ColumnHeader columnHeader2; + private System.Windows.Forms.ColumnHeader columnHeader3; + private System.Windows.Forms.CheckBox saveFilesCheck; + private AForge.Controls.Chart errorChart; + /// + /// Required designer variable. + /// + private System.ComponentModel.Container components = null; + + private int samples = 0; + private int variables = 0; + private double[,] data = null; + private int[] classes = null; + private int classesCount = 0; + private int[] samplesPerClass = null; + private int neuronsCount = 0; + + private double learningRate = 0.1; + private double sigmoidAlphaValue = 2.0; + private double learningErrorLimit = 0.1; + private double iterationLimit = 1000; + private bool useOneNeuronForTwoClasses = false; + private bool useErrorLimit = true; + private bool saveStatisticsToFiles = false; + + private Thread workerThread = null; + private volatile bool needToStop = false; + + // Constructor + public MainForm( ) + { + // + // Required for Windows Form Designer support + // + InitializeComponent(); + + // update settings controls + UpdateSettings( ); + + // initialize charts + errorChart.AddDataSeries( "error", Color.Red, Chart.SeriesType.Line, 1 ); + } + + /// + /// Clean up any resources being used. + /// + protected override void Dispose( bool disposing ) + { + if( disposing ) + { + if (components != null) + { + components.Dispose(); + } + } + base.Dispose( disposing ); + } + + #region Windows Form Designer generated code + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.groupBox1 = new System.Windows.Forms.GroupBox( ); + this.classesBox = new System.Windows.Forms.TextBox( ); + this.label10 = new System.Windows.Forms.Label( ); + this.dataList = new System.Windows.Forms.ListView( ); + this.loadButton = new System.Windows.Forms.Button( ); + this.openFileDialog = new System.Windows.Forms.OpenFileDialog( ); + this.groupBox2 = new System.Windows.Forms.GroupBox( ); + this.currentErrorBox = new System.Windows.Forms.TextBox( ); + this.label11 = new System.Windows.Forms.Label( ); + this.label9 = new System.Windows.Forms.Label( ); + this.currentIterationBox = new System.Windows.Forms.TextBox( ); + this.label8 = new System.Windows.Forms.Label( ); + this.label7 = new System.Windows.Forms.Label( ); + this.errorLimitCheck = new System.Windows.Forms.CheckBox( ); + this.oneNeuronForTwoCheck = new System.Windows.Forms.CheckBox( ); + this.neuronsBox = new System.Windows.Forms.TextBox( ); + this.label6 = new System.Windows.Forms.Label( ); + this.label5 = new System.Windows.Forms.Label( ); + this.iterationsBox = new System.Windows.Forms.TextBox( ); + this.label4 = new System.Windows.Forms.Label( ); + this.errorLimitBox = new System.Windows.Forms.TextBox( ); + this.label3 = new System.Windows.Forms.Label( ); + this.alphaBox = new System.Windows.Forms.TextBox( ); + this.label2 = new System.Windows.Forms.Label( ); + this.label1 = new System.Windows.Forms.Label( ); + this.learningRateBox = new System.Windows.Forms.TextBox( ); + this.stopButton = new System.Windows.Forms.Button( ); + this.startButton = new System.Windows.Forms.Button( ); + this.groupBox3 = new System.Windows.Forms.GroupBox( ); + this.saveFilesCheck = new System.Windows.Forms.CheckBox( ); + this.label13 = new System.Windows.Forms.Label( ); + this.weightsList = new System.Windows.Forms.ListView( ); + this.columnHeader1 = new System.Windows.Forms.ColumnHeader( ); + this.columnHeader2 = new System.Windows.Forms.ColumnHeader( ); + this.columnHeader3 = new System.Windows.Forms.ColumnHeader( ); + this.errorChart = new AForge.Controls.Chart( ); + this.label12 = new System.Windows.Forms.Label( ); + this.groupBox1.SuspendLayout( ); + this.groupBox2.SuspendLayout( ); + this.groupBox3.SuspendLayout( ); + this.SuspendLayout( ); + // + // groupBox1 + // + this.groupBox1.Controls.Add( this.classesBox ); + this.groupBox1.Controls.Add( this.label10 ); + this.groupBox1.Controls.Add( this.dataList ); + this.groupBox1.Controls.Add( this.loadButton ); + this.groupBox1.Location = new System.Drawing.Point( 10, 10 ); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size( 230, 330 ); + this.groupBox1.TabIndex = 0; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "Data"; + // + // classesBox + // + this.classesBox.Location = new System.Drawing.Point( 190, 297 ); + this.classesBox.Name = "classesBox"; + this.classesBox.ReadOnly = true; + this.classesBox.Size = new System.Drawing.Size( 30, 20 ); + this.classesBox.TabIndex = 3; + // + // label10 + // + this.label10.Location = new System.Drawing.Point( 140, 299 ); + this.label10.Name = "label10"; + this.label10.Size = new System.Drawing.Size( 50, 12 ); + this.label10.TabIndex = 2; + this.label10.Text = "Classes:"; + // + // dataList + // + this.dataList.FullRowSelect = true; + this.dataList.GridLines = true; + this.dataList.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable; + this.dataList.Location = new System.Drawing.Point( 10, 20 ); + this.dataList.Name = "dataList"; + this.dataList.Size = new System.Drawing.Size( 210, 270 ); + this.dataList.TabIndex = 0; + this.dataList.UseCompatibleStateImageBehavior = false; + this.dataList.View = System.Windows.Forms.View.Details; + // + // loadButton + // + this.loadButton.Location = new System.Drawing.Point( 10, 297 ); + this.loadButton.Name = "loadButton"; + this.loadButton.Size = new System.Drawing.Size( 75, 23 ); + this.loadButton.TabIndex = 1; + this.loadButton.Text = "&Load"; + this.loadButton.Click += new System.EventHandler( this.loadButton_Click ); + // + // openFileDialog + // + this.openFileDialog.Filter = "CSV (Comma delimited) (*.csv)|*.csv"; + this.openFileDialog.Title = "Select data file"; + // + // groupBox2 + // + this.groupBox2.Controls.Add( this.currentErrorBox ); + this.groupBox2.Controls.Add( this.label11 ); + this.groupBox2.Controls.Add( this.label9 ); + this.groupBox2.Controls.Add( this.currentIterationBox ); + this.groupBox2.Controls.Add( this.label8 ); + this.groupBox2.Controls.Add( this.label7 ); + this.groupBox2.Controls.Add( this.errorLimitCheck ); + this.groupBox2.Controls.Add( this.oneNeuronForTwoCheck ); + this.groupBox2.Controls.Add( this.neuronsBox ); + this.groupBox2.Controls.Add( this.label6 ); + this.groupBox2.Controls.Add( this.label5 ); + this.groupBox2.Controls.Add( this.iterationsBox ); + this.groupBox2.Controls.Add( this.label4 ); + this.groupBox2.Controls.Add( this.errorLimitBox ); + this.groupBox2.Controls.Add( this.label3 ); + this.groupBox2.Controls.Add( this.alphaBox ); + this.groupBox2.Controls.Add( this.label2 ); + this.groupBox2.Controls.Add( this.label1 ); + this.groupBox2.Controls.Add( this.learningRateBox ); + this.groupBox2.Controls.Add( this.stopButton ); + this.groupBox2.Controls.Add( this.startButton ); + this.groupBox2.Location = new System.Drawing.Point( 250, 10 ); + this.groupBox2.Name = "groupBox2"; + this.groupBox2.Size = new System.Drawing.Size( 185, 330 ); + this.groupBox2.TabIndex = 1; + this.groupBox2.TabStop = false; + this.groupBox2.Text = "Training"; + // + // currentErrorBox + // + this.currentErrorBox.Location = new System.Drawing.Point( 125, 255 ); + this.currentErrorBox.Name = "currentErrorBox"; + this.currentErrorBox.ReadOnly = true; + this.currentErrorBox.Size = new System.Drawing.Size( 50, 20 ); + this.currentErrorBox.TabIndex = 20; + // + // label11 + // + this.label11.Location = new System.Drawing.Point( 10, 257 ); + this.label11.Name = "label11"; + this.label11.Size = new System.Drawing.Size( 121, 14 ); + this.label11.TabIndex = 19; + this.label11.Text = "Current average error:"; + // + // label9 + // + this.label9.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label9.Location = new System.Drawing.Point( 10, 283 ); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size( 165, 2 ); + this.label9.TabIndex = 18; + // + // currentIterationBox + // + this.currentIterationBox.Location = new System.Drawing.Point( 125, 230 ); + this.currentIterationBox.Name = "currentIterationBox"; + this.currentIterationBox.ReadOnly = true; + this.currentIterationBox.Size = new System.Drawing.Size( 50, 20 ); + this.currentIterationBox.TabIndex = 17; + // + // label8 + // + this.label8.Location = new System.Drawing.Point( 10, 232 ); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size( 98, 16 ); + this.label8.TabIndex = 16; + this.label8.Text = "Current iteration:"; + // + // label7 + // + this.label7.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label7.Location = new System.Drawing.Point( 10, 220 ); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size( 165, 2 ); + this.label7.TabIndex = 15; + // + // errorLimitCheck + // + this.errorLimitCheck.Location = new System.Drawing.Point( 10, 185 ); + this.errorLimitCheck.Name = "errorLimitCheck"; + this.errorLimitCheck.Size = new System.Drawing.Size( 157, 30 ); + this.errorLimitCheck.TabIndex = 14; + this.errorLimitCheck.Text = "Use error limit (checked) or iterations limit"; + // + // oneNeuronForTwoCheck + // + this.oneNeuronForTwoCheck.Enabled = false; + this.oneNeuronForTwoCheck.Location = new System.Drawing.Point( 10, 165 ); + this.oneNeuronForTwoCheck.Name = "oneNeuronForTwoCheck"; + this.oneNeuronForTwoCheck.Size = new System.Drawing.Size( 168, 15 ); + this.oneNeuronForTwoCheck.TabIndex = 13; + this.oneNeuronForTwoCheck.Text = "Use 1 neuron for 2 classes"; + this.oneNeuronForTwoCheck.CheckedChanged += new System.EventHandler( this.oneNeuronForTwoCheck_CheckedChanged ); + // + // neuronsBox + // + this.neuronsBox.Location = new System.Drawing.Point( 125, 135 ); + this.neuronsBox.Name = "neuronsBox"; + this.neuronsBox.ReadOnly = true; + this.neuronsBox.Size = new System.Drawing.Size( 50, 20 ); + this.neuronsBox.TabIndex = 12; + // + // label6 + // + this.label6.Location = new System.Drawing.Point( 10, 137 ); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size( 59, 12 ); + this.label6.TabIndex = 11; + this.label6.Text = "Neurons:"; + // + // label5 + // + this.label5.Font = new System.Drawing.Font( "Microsoft Sans Serif", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ( (byte) ( 204 ) ) ); + this.label5.Location = new System.Drawing.Point( 125, 115 ); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size( 58, 17 ); + this.label5.TabIndex = 10; + this.label5.Text = "( 0 - inifinity )"; + // + // iterationsBox + // + this.iterationsBox.Location = new System.Drawing.Point( 125, 95 ); + this.iterationsBox.Name = "iterationsBox"; + this.iterationsBox.Size = new System.Drawing.Size( 50, 20 ); + this.iterationsBox.TabIndex = 9; + // + // label4 + // + this.label4.Location = new System.Drawing.Point( 10, 97 ); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size( 90, 13 ); + this.label4.TabIndex = 8; + this.label4.Text = "Iterations limit:"; + // + // errorLimitBox + // + this.errorLimitBox.Location = new System.Drawing.Point( 125, 70 ); + this.errorLimitBox.Name = "errorLimitBox"; + this.errorLimitBox.Size = new System.Drawing.Size( 50, 20 ); + this.errorLimitBox.TabIndex = 7; + // + // label3 + // + this.label3.Location = new System.Drawing.Point( 10, 72 ); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size( 110, 15 ); + this.label3.TabIndex = 6; + this.label3.Text = "Learning error limit:"; + // + // alphaBox + // + this.alphaBox.Location = new System.Drawing.Point( 125, 45 ); + this.alphaBox.Name = "alphaBox"; + this.alphaBox.Size = new System.Drawing.Size( 50, 20 ); + this.alphaBox.TabIndex = 5; + // + // label2 + // + this.label2.Location = new System.Drawing.Point( 10, 47 ); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size( 120, 15 ); + this.label2.TabIndex = 4; + this.label2.Text = "Sigmoid\'s alpha value:"; + // + // label1 + // + this.label1.Location = new System.Drawing.Point( 10, 22 ); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size( 75, 16 ); + this.label1.TabIndex = 2; + this.label1.Text = "Learning rate:"; + // + // learningRateBox + // + this.learningRateBox.Location = new System.Drawing.Point( 125, 20 ); + this.learningRateBox.Name = "learningRateBox"; + this.learningRateBox.Size = new System.Drawing.Size( 50, 20 ); + this.learningRateBox.TabIndex = 3; + // + // stopButton + // + this.stopButton.Enabled = false; + this.stopButton.Location = new System.Drawing.Point( 100, 297 ); + this.stopButton.Name = "stopButton"; + this.stopButton.Size = new System.Drawing.Size( 75, 23 ); + this.stopButton.TabIndex = 6; + this.stopButton.Text = "S&top"; + this.stopButton.Click += new System.EventHandler( this.stopButton_Click ); + // + // startButton + // + this.startButton.Enabled = false; + this.startButton.Location = new System.Drawing.Point( 10, 297 ); + this.startButton.Name = "startButton"; + this.startButton.Size = new System.Drawing.Size( 75, 23 ); + this.startButton.TabIndex = 5; + this.startButton.Text = "&Start"; + this.startButton.Click += new System.EventHandler( this.startButton_Click ); + // + // groupBox3 + // + this.groupBox3.Controls.Add( this.saveFilesCheck ); + this.groupBox3.Controls.Add( this.label13 ); + this.groupBox3.Controls.Add( this.weightsList ); + this.groupBox3.Controls.Add( this.errorChart ); + this.groupBox3.Controls.Add( this.label12 ); + this.groupBox3.Location = new System.Drawing.Point( 445, 10 ); + this.groupBox3.Name = "groupBox3"; + this.groupBox3.Size = new System.Drawing.Size( 220, 330 ); + this.groupBox3.TabIndex = 2; + this.groupBox3.TabStop = false; + this.groupBox3.Text = "Solution"; + // + // saveFilesCheck + // + this.saveFilesCheck.Location = new System.Drawing.Point( 10, 305 ); + this.saveFilesCheck.Name = "saveFilesCheck"; + this.saveFilesCheck.Size = new System.Drawing.Size( 195, 15 ); + this.saveFilesCheck.TabIndex = 4; + this.saveFilesCheck.Text = "Save weights and errors to files"; + // + // label13 + // + this.label13.Location = new System.Drawing.Point( 10, 170 ); + this.label13.Name = "label13"; + this.label13.Size = new System.Drawing.Size( 100, 12 ); + this.label13.TabIndex = 3; + this.label13.Text = "Error\'s dynamics:"; + // + // weightsList + // + this.weightsList.Columns.AddRange( new System.Windows.Forms.ColumnHeader[] { + this.columnHeader1, + this.columnHeader2, + this.columnHeader3} ); + this.weightsList.FullRowSelect = true; + this.weightsList.GridLines = true; + this.weightsList.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable; + this.weightsList.Location = new System.Drawing.Point( 10, 35 ); + this.weightsList.Name = "weightsList"; + this.weightsList.Size = new System.Drawing.Size( 200, 130 ); + this.weightsList.TabIndex = 2; + this.weightsList.UseCompatibleStateImageBehavior = false; + this.weightsList.View = System.Windows.Forms.View.Details; + // + // columnHeader1 + // + this.columnHeader1.Text = "Neuron"; + // + // columnHeader2 + // + this.columnHeader2.Text = "Weight"; + // + // columnHeader3 + // + this.columnHeader3.Text = "Value"; + // + // errorChart + // + this.errorChart.Location = new System.Drawing.Point( 10, 185 ); + this.errorChart.Name = "errorChart"; + this.errorChart.Size = new System.Drawing.Size( 200, 110 ); + this.errorChart.TabIndex = 1; + this.errorChart.Text = "chart1"; + // + // label12 + // + this.label12.Location = new System.Drawing.Point( 10, 20 ); + this.label12.Name = "label12"; + this.label12.Size = new System.Drawing.Size( 100, 15 ); + this.label12.TabIndex = 0; + this.label12.Text = "Network weights:"; + // + // MainForm + // + this.AutoScaleBaseSize = new System.Drawing.Size( 5, 13 ); + this.ClientSize = new System.Drawing.Size( 674, 350 ); + this.Controls.Add( this.groupBox3 ); + this.Controls.Add( this.groupBox2 ); + this.Controls.Add( this.groupBox1 ); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.MaximizeBox = false; + this.Name = "MainForm"; + this.Text = "Classifier using Delta Rule Learning"; + this.Closing += new System.ComponentModel.CancelEventHandler( this.MainForm_Closing ); + this.groupBox1.ResumeLayout( false ); + this.groupBox1.PerformLayout( ); + this.groupBox2.ResumeLayout( false ); + this.groupBox2.PerformLayout( ); + this.groupBox3.ResumeLayout( false ); + this.ResumeLayout( false ); + + } + #endregion + + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main( ) + { + Application.Run( new MainForm( ) ); + } + + // Delegates to enable async calls for setting controls properties + private delegate void SetTextCallback( System.Windows.Forms.Control control, string text ); + private delegate void ClearListCallback( System.Windows.Forms.ListView control ); + private delegate ListViewItem AddListItemCallback( System.Windows.Forms.ListView control, string itemText ); + private delegate void AddListSubitemCallback( ListViewItem item, string subItemText ); + + // Thread safe updating of control's text property + private void SetText( System.Windows.Forms.Control control, string text ) + { + if ( control.InvokeRequired ) + { + SetTextCallback d = new SetTextCallback( SetText ); + Invoke( d, new object[] { control, text } ); + } + else + { + control.Text = text; + } + } + + // Thread safe clearing of list view + private void ClearList( System.Windows.Forms.ListView control ) + { + if ( control.InvokeRequired ) + { + ClearListCallback d = new ClearListCallback( ClearList ); + Invoke( d, new object[] { control } ); + } + else + { + control.Items.Clear( ); + } + } + + // Thread safe adding of item to list control + private ListViewItem AddListItem( System.Windows.Forms.ListView control, string itemText ) + { + ListViewItem item = null; + + if ( control.InvokeRequired ) + { + AddListItemCallback d = new AddListItemCallback( AddListItem ); + item = (ListViewItem) Invoke( d, new object[] { control, itemText } ); + } + else + { + item = control.Items.Add( itemText ); + } + + return item; + } + + // Thread safe adding of subitem to list control + private void AddListSubitem( ListViewItem item, string subItemText ) + { + if ( this.InvokeRequired ) + { + AddListSubitemCallback d = new AddListSubitemCallback( AddListSubitem ); + Invoke( d, new object[] { item, subItemText } ); + } + else + { + item.SubItems.Add( subItemText ); + } + } + + // On main form closing + private void MainForm_Closing( object sender, System.ComponentModel.CancelEventArgs e ) + { + // check if worker thread is running + if ( ( workerThread != null ) && ( workerThread.IsAlive ) ) + { + needToStop = true; + while ( !workerThread.Join( 100 ) ) + Application.DoEvents( ); + } + } + + // Load input data + private void loadButton_Click( object sender, System.EventArgs e ) + { + // data file format: + // X1, X2, ..., Xn, class + + // load maximum 10 classes ! + + // show file selection dialog + if ( openFileDialog.ShowDialog( ) == DialogResult.OK ) + { + StreamReader reader = null; + + // temp buffers (for 200 samples only) + double[,] tempData = null; + int[] tempClasses = new int[200]; + + // min and max X values + double minX = double.MaxValue; + double maxX = double.MinValue; + + // samples count + samples = 0; + // classes count + classesCount = 0; + samplesPerClass = new int[10]; + + try + { + string str = null; + + // open selected file + reader = File.OpenText( openFileDialog.FileName ); + + // read the data + while ( ( samples < 200 ) && ( ( str = reader.ReadLine( ) ) != null ) ) + { + // split the string + string[] strs = str.Split( ';' ); + if ( strs.Length == 1 ) + strs = str.Split( ',' ); + + // allocate data array + if ( samples == 0 ) + { + variables = strs.Length - 1; + tempData = new double[200, variables]; + } + + // parse data + for ( int j = 0; j < variables; j++ ) + { + tempData[samples, j] = double.Parse( strs[j] ); + } + tempClasses[samples] = int.Parse( strs[variables] ); + + // skip classes over 10, except only first 10 classes + if ( tempClasses[samples] >= 10 ) + continue; + + // count the amount of different classes + if ( tempClasses[samples] >= classesCount ) + classesCount = tempClasses[samples] + 1; + // count samples per class + samplesPerClass[tempClasses[samples]]++; + + // search for min value + if ( tempData[samples, 0] < minX ) + minX = tempData[samples, 0]; + // search for max value + if ( tempData[samples, 0] > maxX ) + maxX = tempData[samples, 0]; + + samples++; + } + + // allocate and set data + data = new double[samples, variables]; + Array.Copy( tempData, 0, data, 0, samples * variables ); + classes = new int[samples]; + Array.Copy( tempClasses, 0, classes, 0, samples ); + } + catch ( Exception ) + { + MessageBox.Show( "Failed reading the file", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error ); + return; + } + finally + { + // close file + if ( reader != null ) + reader.Close( ); + } + + // update list and chart + UpdateDataListView( ); + + classesBox.Text = classesCount.ToString( ); + oneNeuronForTwoCheck.Enabled = ( classesCount == 2 ); + + // set neurons count + neuronsCount = ( ( classesCount == 2 ) && ( useOneNeuronForTwoClasses ) ) ? 1 : classesCount; + neuronsBox.Text = neuronsCount.ToString( ); + + ClearSolution( ); + startButton.Enabled = true; + } + } + + // Update settings controls + private void UpdateSettings( ) + { + learningRateBox.Text = learningRate.ToString( ); + alphaBox.Text = sigmoidAlphaValue.ToString( ); + errorLimitBox.Text = learningErrorLimit.ToString( ); + iterationsBox.Text = iterationLimit.ToString( ); + + oneNeuronForTwoCheck.Checked = useOneNeuronForTwoClasses; + errorLimitCheck.Checked = useErrorLimit; + saveFilesCheck.Checked = saveStatisticsToFiles; + } + + // Update data in list view + private void UpdateDataListView( ) + { + // remove all curent data and columns + dataList.Items.Clear( ); + dataList.Columns.Clear( ); + + // add columns + for ( int i = 0, n = variables; i < n; i++ ) + { + dataList.Columns.Add( string.Format( "X{0}", i + 1 ), + 50, HorizontalAlignment.Left ); + } + dataList.Columns.Add( "Class", 50, HorizontalAlignment.Left ); + + // add items + for ( int i = 0; i < samples; i++ ) + { + dataList.Items.Add( data[i, 0].ToString( ) ); + + for ( int j = 1; j < variables; j++ ) + { + dataList.Items[i].SubItems.Add( data[i, j].ToString( ) ); + } + dataList.Items[i].SubItems.Add( classes[i].ToString( ) ); + } + } + + // Use or not one neuron to classify two classes + private void oneNeuronForTwoCheck_CheckedChanged( object sender, System.EventArgs e ) + { + useOneNeuronForTwoClasses = oneNeuronForTwoCheck.Checked; + // update neurons count box + neuronsCount = ( ( classesCount == 2 ) && ( useOneNeuronForTwoClasses ) ) ? 1 : classesCount; + neuronsBox.Text = neuronsCount.ToString( ); + } + + // Delegates to enable async calls for setting controls properties + private delegate void EnableCallback( bool enable ); + + // Enable/disale controls (safe for threading) + private void EnableControls( bool enable ) + { + if ( InvokeRequired ) + { + EnableCallback d = new EnableCallback( EnableControls ); + Invoke( d, new object[] { enable } ); + } + else + { + learningRateBox.Enabled = enable; + alphaBox.Enabled = enable; + errorLimitBox.Enabled = enable; + iterationsBox.Enabled = enable; + oneNeuronForTwoCheck.Enabled = ( ( enable ) && ( classesCount == 2 ) ); + errorLimitCheck.Enabled = enable; + saveFilesCheck.Enabled = enable; + + loadButton.Enabled = enable; + startButton.Enabled = enable; + stopButton.Enabled = !enable; + } + } + + // Clear current solution + private void ClearSolution( ) + { + errorChart.UpdateDataSeries( "error", null ); + weightsList.Items.Clear( ); + currentIterationBox.Text = string.Empty; + currentErrorBox.Text = string.Empty; + } + + // On "Start" button click + private void startButton_Click(object sender, System.EventArgs e) + { + // get learning rate + try + { + learningRate = Math.Max( 0.00001, Math.Min( 1, double.Parse( learningRateBox.Text ) ) ); + } + catch + { + learningRate = 0.1; + } + // get sigmoid's alpha value + try + { + sigmoidAlphaValue = Math.Max( 0.01, Math.Min( 100, double.Parse( alphaBox.Text ) ) ); + } + catch + { + sigmoidAlphaValue = 2; + } + // get learning error limit + try + { + learningErrorLimit = Math.Max( 0, double.Parse( errorLimitBox.Text ) ); + } + catch + { + learningErrorLimit = 0.1; + } + // get iterations limit + try + { + iterationLimit = Math.Max( 0, int.Parse( iterationsBox.Text ) ); + } + catch + { + iterationLimit = 1000; + } + + useOneNeuronForTwoClasses = oneNeuronForTwoCheck.Checked; + useErrorLimit = errorLimitCheck.Checked; + saveStatisticsToFiles = saveFilesCheck.Checked; + + // update settings controls + UpdateSettings( ); + + // disable all settings controls + EnableControls( false ); + + // run worker thread + needToStop = false; + workerThread = new Thread( new ThreadStart( SearchSolution ) ); + workerThread.Start( ); + } + + // On "Stop" button click + private void stopButton_Click(object sender, System.EventArgs e) + { + // stop worker thread + needToStop = true; + while ( !workerThread.Join( 100 ) ) + Application.DoEvents( ); + workerThread = null; + } + + // Worker thread + void SearchSolution( ) + { + bool reducedNetwork = ( ( classesCount == 2 ) && ( useOneNeuronForTwoClasses ) ); + + // prepare learning data + double[][] input = new double[samples][]; + double[][] output = new double[samples][]; + + for ( int i = 0; i < samples; i++ ) + { + input[i] = new double[variables]; + output[i] = new double[neuronsCount]; + + // set input + for ( int j = 0; j < variables; j++ ) + input[i][j] = data[i, j]; + // set output + if ( reducedNetwork ) + { + output[i][0] = classes[i]; + } + else + { + output[i][classes[i]] = 1; + } + } + + // create perceptron + ActivationNetwork network = new ActivationNetwork( + new SigmoidFunction( sigmoidAlphaValue ), variables, neuronsCount ); + ActivationLayer layer = network.Layers[0] as ActivationLayer; + // create teacher + DeltaRuleLearning teacher = new DeltaRuleLearning( network ); + // set learning rate + teacher.LearningRate = learningRate; + + // iterations + int iteration = 1; + + // statistic files + StreamWriter errorsFile = null; + StreamWriter weightsFile = null; + + try + { + // check if we need to save statistics to files + if ( saveStatisticsToFiles ) + { + // open files + errorsFile = File.CreateText( "errors.csv" ); + weightsFile = File.CreateText( "weights.csv" ); + } + + // erros list + ArrayList errorsList = new ArrayList( ); + + // loop + while ( !needToStop ) + { + // save current weights + if ( weightsFile != null ) + { + for ( int i = 0; i < neuronsCount; i++ ) + { + weightsFile.Write( "neuron" + i + "," ); + for ( int j = 0; j < variables; j++ ) + weightsFile.Write( layer.Neurons[i].Weights[j] + "," ); + weightsFile.WriteLine( ( (ActivationNeuron) layer.Neurons[i] ).Threshold ); + } + } + + // run epoch of learning procedure + double error = teacher.RunEpoch( input, output ) / samples; + errorsList.Add( error ); + + // save current error + if ( errorsFile != null ) + { + errorsFile.WriteLine( error ); + } + + // show current iteration & error + SetText( currentIterationBox, iteration.ToString( ) ); + SetText( currentErrorBox, error.ToString( ) ); + iteration++; + + // check if we need to stop + if ( ( useErrorLimit ) && ( error <= learningErrorLimit ) ) + break; + if ( ( !useErrorLimit ) && ( iterationLimit != 0 ) && ( iteration > iterationLimit ) ) + break; + } + + // show perceptron's weights + ClearList( weightsList ); + for ( int i = 0; i < neuronsCount; i++ ) + { + string neuronName = string.Format( "Neuron {0}", i + 1 ); + ListViewItem item = null; + + // add all weights + for ( int j = 0; j < variables; j++ ) + { + item = AddListItem( weightsList, neuronName ); + AddListSubitem( item, string.Format( "Weight {0}", j + 1 ) ); + AddListSubitem( item, layer.Neurons[i].Weights[0].ToString( "F6" ) ); + } + // threshold + item = AddListItem( weightsList, neuronName ); + AddListSubitem( item, "Threshold"); + AddListSubitem( item, ( (ActivationNeuron) layer.Neurons[i] ).Threshold.ToString( "F6" ) ); + } + + // show error's dynamics + double[,] errors = new double[errorsList.Count, 2]; + + for ( int i = 0, n = errorsList.Count; i < n; i++ ) + { + errors[i, 0] = i; + errors[i, 1] = (double) errorsList[i]; + } + + errorChart.RangeX = new Range( 0, errorsList.Count - 1 ); + errorChart.UpdateDataSeries( "error", errors ); + } + catch ( IOException ) + { + MessageBox.Show( "Failed writing file", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error ); + } + finally + { + // close files + if ( errorsFile != null ) + errorsFile.Close( ); + if ( weightsFile != null ) + weightsFile.Close( ); + } + + // enable settings controls + EnableControls( true ); + } + } +} diff --git a/Samples/Neuro/Simple/Delta Rule Learning/MainForm.resx b/Samples/Neuro/Simple/Delta Rule Learning/MainForm.resx new file mode 100644 index 00000000..f901ebb7 --- /dev/null +++ b/Samples/Neuro/Simple/Delta Rule Learning/MainForm.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + \ No newline at end of file diff --git a/Samples/Neuro/Simple/One-Layer Perceptron Classifier/App.ico b/Samples/Neuro/Simple/One-Layer Perceptron Classifier/App.ico new file mode 100644 index 00000000..3a5525fd Binary files /dev/null and b/Samples/Neuro/Simple/One-Layer Perceptron Classifier/App.ico differ diff --git a/Samples/Neuro/Simple/One-Layer Perceptron Classifier/AssemblyInfo.cs b/Samples/Neuro/Simple/One-Layer Perceptron Classifier/AssemblyInfo.cs new file mode 100644 index 00000000..24dd1458 --- /dev/null +++ b/Samples/Neuro/Simple/One-Layer Perceptron Classifier/AssemblyInfo.cs @@ -0,0 +1,59 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly: AssemblyTitle( "Neuro One-Layer Perceptron" )] +[assembly: AssemblyDescription( "Neuro One-Layer Perceptron sample" )] +[assembly: AssemblyConfiguration( "" )] +[assembly: AssemblyCompany( "AForge" )] +[assembly: AssemblyProduct( "AForge.NET" )] +[assembly: AssemblyCopyright( "AForge © 2008" )] +[assembly: AssemblyTrademark( "" )] +[assembly: AssemblyCulture( "" )] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion( "2.0.0.0" )] +[assembly: AssemblyFileVersion( "2.0.0.0" )] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign( false )] +[assembly: AssemblyKeyFile( "" )] +[assembly: AssemblyKeyName( "" )] diff --git a/Samples/Neuro/Simple/One-Layer Perceptron Classifier/Classifier.csproj b/Samples/Neuro/Simple/One-Layer Perceptron Classifier/Classifier.csproj new file mode 100644 index 00000000..c67e45ed --- /dev/null +++ b/Samples/Neuro/Simple/One-Layer Perceptron Classifier/Classifier.csproj @@ -0,0 +1,174 @@ + + + + Local + 9.0.21022 + 2.0 + {765D49C5-D157-4482-9E42-CE93D83F9AD1} + Debug + AnyCPU + App.ico + + + Classifier + + + JScript + Grid + IE50 + false + WinExe + Classifier + OnBuildSuccess + + + + + + + 3.5 + v2.0 + false + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + true + + + bin\Debug\ + false + 285212672 + false + + + DEBUG;TRACE + + + true + 4096 + false + + + false + false + false + false + 4 + full + prompt + + + bin\Release\ + false + 285212672 + false + + + TRACE + + + false + 4096 + false + + + true + false + false + false + 4 + none + prompt + + + + False + ..\..\..\..\Release\AForge.dll + + + False + ..\..\..\..\Release\AForge.Controls.dll + + + False + ..\..\..\..\Release\AForge.Neuro.dll + + + System + + + System.Data + + + System.Drawing + + + System.Windows.Forms + + + System.XML + + + + + + Code + + + Form + + + MainForm.cs + + + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 2.0 %28x86%29 + false + + + False + .NET Framework 3.0 %28x86%29 + false + + + False + .NET Framework 3.5 + true + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 3.1 + true + + + + + + + + + + \ No newline at end of file diff --git a/Samples/Neuro/Simple/One-Layer Perceptron Classifier/Classifier.sln b/Samples/Neuro/Simple/One-Layer Perceptron Classifier/Classifier.sln new file mode 100644 index 00000000..923ebd1f --- /dev/null +++ b/Samples/Neuro/Simple/One-Layer Perceptron Classifier/Classifier.sln @@ -0,0 +1,19 @@ +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual C# Express 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Classifier", "Classifier.csproj", "{765D49C5-D157-4482-9E42-CE93D83F9AD1}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {765D49C5-D157-4482-9E42-CE93D83F9AD1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {765D49C5-D157-4482-9E42-CE93D83F9AD1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {765D49C5-D157-4482-9E42-CE93D83F9AD1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {765D49C5-D157-4482-9E42-CE93D83F9AD1}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Samples/Neuro/Simple/One-Layer Perceptron Classifier/Data Samples/sample1.csv b/Samples/Neuro/Simple/One-Layer Perceptron Classifier/Data Samples/sample1.csv new file mode 100644 index 00000000..96e7ba7d --- /dev/null +++ b/Samples/Neuro/Simple/One-Layer Perceptron Classifier/Data Samples/sample1.csv @@ -0,0 +1,15 @@ +0.1,0.1,0 +0.2,0.3,0 +0.3,0.4,0 +0.1,0.3,0 +0.2,0.5,0 +0.1,1,1 +0.2,1.1,1 +0.3,0.9,1 +0.4,0.8,1 +0.2,0.9,1 +1,0.4,2 +0.9,0.5,2 +0.8,0.6,2 +0.9,0.4,2 +1,0.5,2 diff --git a/Samples/Neuro/Simple/One-Layer Perceptron Classifier/Data Samples/sample2.csv b/Samples/Neuro/Simple/One-Layer Perceptron Classifier/Data Samples/sample2.csv new file mode 100644 index 00000000..934a55a0 --- /dev/null +++ b/Samples/Neuro/Simple/One-Layer Perceptron Classifier/Data Samples/sample2.csv @@ -0,0 +1,20 @@ +0.1,0.4,0 +0.2,0.2,0 +0.3,0.1,0 +0.1,0.2,0 +0.2,0.5,0 +0.7,0.2,1 +0.8,0.3,1 +0.9,0.4,1 +0.7,0.1,1 +0.8,0.2,1 +0.1,0.6,2 +0.2,0.7,2 +0.3,0.8,2 +0.3,0.9,2 +0.1,0.6,2 +0.7,0.9,3 +0.8,0.9,3 +0.7,0.8,3 +0.8,0.7,3 +0.9,0.7,3 diff --git a/Samples/Neuro/Simple/One-Layer Perceptron Classifier/MainForm.cs b/Samples/Neuro/Simple/One-Layer Perceptron Classifier/MainForm.cs new file mode 100644 index 00000000..b26f7833 --- /dev/null +++ b/Samples/Neuro/Simple/One-Layer Perceptron Classifier/MainForm.cs @@ -0,0 +1,770 @@ +// One-Layer Perceptron Classifier +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2006-2011 +// contacts@aforgenet.com +// + +using System; +using System.Drawing; +using System.Collections; +using System.ComponentModel; +using System.Windows.Forms; +using System.Data; +using System.IO; +using System.Threading; + +using AForge; +using AForge.Neuro; +using AForge.Neuro.Learning; +using AForge.Controls; + +namespace Classifier +{ + /// + /// Summary description for Form1. + /// + public class MainForm : System.Windows.Forms.Form + { + private System.Windows.Forms.GroupBox groupBox1; + private AForge.Controls.Chart chart; + private System.Windows.Forms.Button loadButton; + private System.Windows.Forms.OpenFileDialog openFileDialog; + private System.Windows.Forms.GroupBox groupBox2; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.TextBox learningRateBox; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.TextBox iterationsBox; + private System.Windows.Forms.Button stopButton; + private System.Windows.Forms.Button startButton; + private System.Windows.Forms.CheckBox saveFilesCheck; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.ListView weightsList; + private System.Windows.Forms.ColumnHeader columnHeader1; + private System.Windows.Forms.ColumnHeader columnHeader2; + private System.Windows.Forms.ColumnHeader columnHeader3; + private System.Windows.Forms.GroupBox groupBox3; + private AForge.Controls.Chart errorChart; + /// + /// Required designer variable. + /// + private System.ComponentModel.Container components = null; + + private int samples = 0; + private double[,] data = null; + private int[] classes = null; + private int classesCount = 0; + private int[] samplesPerClass = null; + + private double learningRate = 0.1; + private bool saveStatisticsToFiles = false; + + private Thread workerThread = null; + private volatile bool needToStop = false; + + // color for data series + private static Color[] dataSereisColors = new Color[10] { + Color.Red, Color.Blue, + Color.Green, Color.DarkOrange, + Color.Violet, Color.Brown, + Color.Black, Color.Pink, + Color.Olive, Color.Navy }; + + // Constructor + public MainForm( ) + { + // + // Required for Windows Form Designer support + // + InitializeComponent(); + + // update some controls + saveFilesCheck.Checked = saveStatisticsToFiles; + UpdateSettings( ); + + // initialize charts + errorChart.AddDataSeries( "error", Color.Red, Chart.SeriesType.ConnectedDots, 3 ); + } + + /// + /// Clean up any resources being used. + /// + protected override void Dispose( bool disposing ) + { + if( disposing ) + { + if (components != null) + { + components.Dispose(); + } + } + base.Dispose( disposing ); + } + + #region Windows Form Designer generated code + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.loadButton = new System.Windows.Forms.Button(); + this.chart = new AForge.Controls.Chart(); + this.openFileDialog = new System.Windows.Forms.OpenFileDialog(); + this.groupBox2 = new System.Windows.Forms.GroupBox(); + this.weightsList = new System.Windows.Forms.ListView(); + this.columnHeader1 = new System.Windows.Forms.ColumnHeader(); + this.columnHeader2 = new System.Windows.Forms.ColumnHeader(); + this.columnHeader3 = new System.Windows.Forms.ColumnHeader(); + this.label4 = new System.Windows.Forms.Label(); + this.label3 = new System.Windows.Forms.Label(); + this.saveFilesCheck = new System.Windows.Forms.CheckBox(); + this.stopButton = new System.Windows.Forms.Button(); + this.startButton = new System.Windows.Forms.Button(); + this.iterationsBox = new System.Windows.Forms.TextBox(); + this.label2 = new System.Windows.Forms.Label(); + this.learningRateBox = new System.Windows.Forms.TextBox(); + this.label1 = new System.Windows.Forms.Label(); + this.groupBox3 = new System.Windows.Forms.GroupBox(); + this.errorChart = new AForge.Controls.Chart(); + this.groupBox1.SuspendLayout(); + this.groupBox2.SuspendLayout(); + this.groupBox3.SuspendLayout(); + this.SuspendLayout(); + // + // groupBox1 + // + this.groupBox1.Controls.AddRange(new System.Windows.Forms.Control[] { + this.loadButton, + this.chart}); + this.groupBox1.Location = new System.Drawing.Point(10, 10); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(220, 255); + this.groupBox1.TabIndex = 0; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "Data"; + // + // loadButton + // + this.loadButton.Location = new System.Drawing.Point(10, 225); + this.loadButton.Name = "loadButton"; + this.loadButton.TabIndex = 1; + this.loadButton.Text = "&Load"; + this.loadButton.Click += new System.EventHandler(this.loadButton_Click); + // + // chart + // + this.chart.Location = new System.Drawing.Point(10, 20); + this.chart.Name = "chart"; + this.chart.Size = new System.Drawing.Size(200, 200); + this.chart.TabIndex = 0; + // + // openFileDialog + // + this.openFileDialog.Filter = "CSV (Comma delimited) (*.csv)|*.csv"; + this.openFileDialog.Title = "Select data file"; + // + // groupBox2 + // + this.groupBox2.Controls.AddRange(new System.Windows.Forms.Control[] { + this.weightsList, + this.label4, + this.label3, + this.saveFilesCheck, + this.stopButton, + this.startButton, + this.iterationsBox, + this.label2, + this.learningRateBox, + this.label1}); + this.groupBox2.Location = new System.Drawing.Point(240, 10); + this.groupBox2.Name = "groupBox2"; + this.groupBox2.Size = new System.Drawing.Size(240, 410); + this.groupBox2.TabIndex = 1; + this.groupBox2.TabStop = false; + this.groupBox2.Text = "Training"; + // + // weightsList + // + this.weightsList.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { + this.columnHeader1, + this.columnHeader2, + this.columnHeader3}); + this.weightsList.FullRowSelect = true; + this.weightsList.GridLines = true; + this.weightsList.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable; + this.weightsList.Location = new System.Drawing.Point(10, 130); + this.weightsList.Name = "weightsList"; + this.weightsList.Size = new System.Drawing.Size(220, 270); + this.weightsList.TabIndex = 14; + this.weightsList.View = System.Windows.Forms.View.Details; + // + // columnHeader1 + // + this.columnHeader1.Text = "Neuron"; + // + // columnHeader2 + // + this.columnHeader2.Text = "Weigh"; + // + // columnHeader3 + // + this.columnHeader3.Text = "Value"; + this.columnHeader3.Width = 65; + // + // label4 + // + this.label4.Location = new System.Drawing.Point(10, 110); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(55, 16); + this.label4.TabIndex = 13; + this.label4.Text = "Weights:"; + // + // label3 + // + this.label3.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label3.Location = new System.Drawing.Point(10, 100); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(220, 2); + this.label3.TabIndex = 12; + // + // saveFilesCheck + // + this.saveFilesCheck.Location = new System.Drawing.Point(10, 80); + this.saveFilesCheck.Name = "saveFilesCheck"; + this.saveFilesCheck.Size = new System.Drawing.Size(150, 16); + this.saveFilesCheck.TabIndex = 11; + this.saveFilesCheck.Text = "Save weights and errors to files"; + // + // stopButton + // + this.stopButton.Enabled = false; + this.stopButton.Location = new System.Drawing.Point(155, 49); + this.stopButton.Name = "stopButton"; + this.stopButton.TabIndex = 10; + this.stopButton.Text = "S&top"; + this.stopButton.Click += new System.EventHandler(this.stopButton_Click); + // + // startButton + // + this.startButton.Enabled = false; + this.startButton.Location = new System.Drawing.Point(155, 19); + this.startButton.Name = "startButton"; + this.startButton.TabIndex = 9; + this.startButton.Text = "&Start"; + this.startButton.Click += new System.EventHandler(this.startButton_Click); + // + // iterationsBox + // + this.iterationsBox.Location = new System.Drawing.Point(90, 50); + this.iterationsBox.Name = "iterationsBox"; + this.iterationsBox.ReadOnly = true; + this.iterationsBox.Size = new System.Drawing.Size(50, 20); + this.iterationsBox.TabIndex = 3; + this.iterationsBox.Text = ""; + // + // label2 + // + this.label2.Location = new System.Drawing.Point(10, 52); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(55, 13); + this.label2.TabIndex = 2; + this.label2.Text = "Iterations:"; + // + // learningRateBox + // + this.learningRateBox.Location = new System.Drawing.Point(90, 20); + this.learningRateBox.Name = "learningRateBox"; + this.learningRateBox.Size = new System.Drawing.Size(50, 20); + this.learningRateBox.TabIndex = 1; + this.learningRateBox.Text = ""; + // + // label1 + // + this.label1.Location = new System.Drawing.Point(10, 22); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(80, 17); + this.label1.TabIndex = 0; + this.label1.Text = "Learning rate:"; + // + // groupBox3 + // + this.groupBox3.Controls.AddRange(new System.Windows.Forms.Control[] { + this.errorChart}); + this.groupBox3.Location = new System.Drawing.Point(10, 270); + this.groupBox3.Name = "groupBox3"; + this.groupBox3.Size = new System.Drawing.Size(220, 150); + this.groupBox3.TabIndex = 2; + this.groupBox3.TabStop = false; + this.groupBox3.Text = "Error\'s dynamics"; + // + // errorChart + // + this.errorChart.Location = new System.Drawing.Point(10, 20); + this.errorChart.Name = "errorChart"; + this.errorChart.Size = new System.Drawing.Size(200, 120); + this.errorChart.TabIndex = 0; + this.errorChart.Text = "chart1"; + // + // MainForm + // + this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); + this.ClientSize = new System.Drawing.Size(489, 430); + this.Controls.AddRange(new System.Windows.Forms.Control[] { + this.groupBox3, + this.groupBox2, + this.groupBox1}); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.MaximizeBox = false; + this.Name = "MainForm"; + this.Text = "One-Layer Perceptron Classifier"; + this.Closing += new System.ComponentModel.CancelEventHandler(this.MainForm_Closing); + this.groupBox1.ResumeLayout(false); + this.groupBox2.ResumeLayout(false); + this.groupBox3.ResumeLayout(false); + this.ResumeLayout(false); + + } + #endregion + + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main( ) + { + Application.Run( new MainForm( ) ); + } + + // Delegates to enable async calls for setting controls properties + private delegate void SetTextCallback( System.Windows.Forms.Control control, string text ); + private delegate void ClearListCallback( System.Windows.Forms.ListView control ); + private delegate ListViewItem AddListItemCallback( System.Windows.Forms.ListView control, string itemText ); + private delegate void AddListSubitemCallback( ListViewItem item, string subItemText ); + + // Thread safe updating of control's text property + private void SetText( System.Windows.Forms.Control control, string text ) + { + if ( control.InvokeRequired ) + { + SetTextCallback d = new SetTextCallback( SetText ); + Invoke( d, new object[] { control, text } ); + } + else + { + control.Text = text; + } + } + + // Thread safe clearing of list view + private void ClearList( System.Windows.Forms.ListView control ) + { + if ( control.InvokeRequired ) + { + ClearListCallback d = new ClearListCallback( ClearList ); + Invoke( d, new object[] { control } ); + } + else + { + control.Items.Clear( ); + } + } + + // Thread safe adding of item to list control + private ListViewItem AddListItem( System.Windows.Forms.ListView control, string itemText ) + { + ListViewItem item = null; + + if ( control.InvokeRequired ) + { + AddListItemCallback d = new AddListItemCallback( AddListItem ); + item = (ListViewItem) Invoke( d, new object[] { control, itemText } ); + } + else + { + item = control.Items.Add( itemText ); + } + + return item; + } + + // Thread safe adding of subitem to list control + private void AddListSubitem( ListViewItem item, string subItemText ) + { + if ( this.InvokeRequired ) + { + AddListSubitemCallback d = new AddListSubitemCallback( AddListSubitem ); + Invoke( d, new object[] { item, subItemText } ); + } + else + { + item.SubItems.Add( subItemText ); + } + } + + // On main form closing + private void MainForm_Closing(object sender, System.ComponentModel.CancelEventArgs e) + { + // check if worker thread is running + if ( ( workerThread != null ) && ( workerThread.IsAlive ) ) + { + needToStop = true; + while ( !workerThread.Join( 100 ) ) + Application.DoEvents( ); + } + } + + // Load input data + private void loadButton_Click(object sender, System.EventArgs e) + { + // data file format: + // X1, X2, class + + // load maximum 10 classes ! + + // show file selection dialog + if ( openFileDialog.ShowDialog( ) == DialogResult.OK ) + { + StreamReader reader = null; + + // temp buffers (for 200 samples only) + float[,] tempData = new float[200, 2]; + int[] tempClasses = new int[200]; + + // min and max X values + float minX = float.MaxValue; + float maxX = float.MinValue; + + // samples count + samples = 0; + // classes count + classesCount = 0; + samplesPerClass = new int[10]; + + try + { + string str = null; + + // open selected file + reader = File.OpenText( openFileDialog.FileName ); + + // read the data + while ( ( samples < 200 ) && ( ( str = reader.ReadLine( ) ) != null ) ) + { + // split the string + string[] strs = str.Split( ';' ); + if ( strs.Length == 1 ) + strs = str.Split( ',' ); + + // check tokens count + if ( strs.Length != 3 ) + throw new ApplicationException( "Invalid file format" ); + + // parse tokens + tempData[samples, 0] = float.Parse( strs[0] ); + tempData[samples, 1] = float.Parse( strs[1] ); + tempClasses[samples] = int.Parse( strs[2] ); + + // skip classes over 10, except only first 10 classes + if ( tempClasses[samples] >= 10 ) + continue; + + // count the amount of different classes + if ( tempClasses[samples] >= classesCount ) + classesCount = tempClasses[samples] + 1; + // count samples per class + samplesPerClass[tempClasses[samples]]++; + + // search for min value + if ( tempData[samples, 0] < minX ) + minX = tempData[samples, 0]; + // search for max value + if ( tempData[samples, 0] > maxX ) + maxX = tempData[samples, 0]; + + samples++; + } + + // allocate and set data + data = new double[samples, 2]; + Array.Copy( tempData, 0, data, 0, samples * 2 ); + classes = new int[samples]; + Array.Copy( tempClasses, 0, classes, 0, samples ); + + // clear current result + weightsList.Items.Clear( ); + errorChart.UpdateDataSeries( "error", null ); + } + catch ( Exception ) + { + MessageBox.Show( "Failed reading the file", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error ); + return; + } + finally + { + // close file + if ( reader != null ) + reader.Close( ); + } + + // update chart + chart.RangeX = new Range( minX, maxX ); + ShowTrainingData( ); + + // enable start button + startButton.Enabled = true; + } + } + + // Update settings controls + private void UpdateSettings( ) + { + learningRateBox.Text = learningRate.ToString( ); + } + + // Show training data on chart + private void ShowTrainingData( ) + { + double[][,] dataSeries = new double[classesCount][,]; + int[] indexes = new int[classesCount]; + + // allocate data arrays + for ( int i = 0; i < classesCount; i++ ) + { + dataSeries[i] = new double[samplesPerClass[i], 2]; + } + + // fill data arrays + for ( int i = 0; i < samples; i++ ) + { + // get sample's class + int dataClass = classes[i]; + // copy data into appropriate array + dataSeries[dataClass][indexes[dataClass], 0] = data[i, 0]; + dataSeries[dataClass][indexes[dataClass], 1] = data[i, 1]; + indexes[dataClass]++; + } + + // remove all previous data series from chart control + chart.RemoveAllDataSeries( ); + + // add new data series + for ( int i = 0; i < classesCount; i++ ) + { + string className = string.Format( "class" + i ); + + // add data series + chart.AddDataSeries( className, dataSereisColors[i], Chart.SeriesType.Dots, 5 ); + chart.UpdateDataSeries( className, dataSeries[i] ); + // add classifier + chart.AddDataSeries( string.Format( "classifier" + i ), Color.Gray, Chart.SeriesType.Line, 1, false ); + } + } + + // Delegates to enable async calls for setting controls properties + private delegate void EnableCallback( bool enable ); + + // Enable/disale controls (safe for threading) + private void EnableControls( bool enable ) + { + if ( InvokeRequired ) + { + EnableCallback d = new EnableCallback( EnableControls ); + Invoke( d, new object[] { enable } ); + } + else + { + learningRateBox.Enabled = enable; + loadButton.Enabled = enable; + startButton.Enabled = enable; + saveFilesCheck.Enabled = enable; + stopButton.Enabled = !enable; + } + } + + // On "Start" button click + private void startButton_Click(object sender, System.EventArgs e) + { + // get learning rate + try + { + learningRate = Math.Max( 0.00001, Math.Min( 1, double.Parse( learningRateBox.Text ) ) ); + } + catch + { + learningRate = 0.1; + } + saveStatisticsToFiles = saveFilesCheck.Checked; + + // update settings controls + UpdateSettings( ); + + // disable all settings controls + EnableControls( false ); + + // run worker thread + needToStop = false; + workerThread = new Thread( new ThreadStart( SearchSolution ) ); + workerThread.Start( ); + } + + // On "Stop" button click + private void stopButton_Click(object sender, System.EventArgs e) + { + // stop worker thread + needToStop = true; + while ( !workerThread.Join( 100 ) ) + Application.DoEvents( ); + workerThread = null; + } + + // Worker thread + void SearchSolution( ) + { + // prepare learning data + double[][] input = new double[samples][]; + double[][] output = new double[samples][]; + + for ( int i = 0; i < samples; i++ ) + { + input[i] = new double[2]; + output[i] = new double[classesCount]; + + // set input + input[i][0] = data[i, 0]; + input[i][1] = data[i, 1]; + // set output + output[i][classes[i]] = 1; + } + + // create perceptron + ActivationNetwork network = new ActivationNetwork( new ThresholdFunction( ), 2, classesCount ); + ActivationLayer layer = network.Layers[0] as ActivationLayer; + // create teacher + PerceptronLearning teacher = new PerceptronLearning( network ); + // set learning rate + teacher.LearningRate = learningRate; + + // iterations + int iteration = 1; + + // statistic files + StreamWriter errorsFile = null; + StreamWriter weightsFile = null; + + try + { + // check if we need to save statistics to files + if ( saveStatisticsToFiles ) + { + // open files + errorsFile = File.CreateText( "errors.csv" ); + weightsFile = File.CreateText( "weights.csv" ); + } + + // erros list + ArrayList errorsList = new ArrayList( ); + + // loop + while ( !needToStop ) + { + // save current weights + if ( weightsFile != null ) + { + for ( int i = 0; i < classesCount; i++ ) + { + weightsFile.Write( "neuron" + i + "," ); + weightsFile.Write( layer.Neurons[i].Weights[0] + "," ); + weightsFile.Write( layer.Neurons[i].Weights[1] + "," ); + weightsFile.WriteLine( ( (ActivationNeuron) layer.Neurons[i] ).Threshold ); + } + } + + // run epoch of learning procedure + double error = teacher.RunEpoch( input, output ); + errorsList.Add( error ); + + // save current error + if ( errorsFile != null ) + { + errorsFile.WriteLine( error ); + } + + // show current iteration + SetText( iterationsBox, iteration.ToString( ) ); + + // stop if no error + if ( error == 0 ) + break; + + // show classifiers + for ( int j = 0; j < classesCount; j++ ) + { + double k = ( layer.Neurons[j].Weights[1] != 0 ) ? ( - layer.Neurons[j].Weights[0] / layer.Neurons[j].Weights[1] ) : 0; + double b = ( layer.Neurons[j].Weights[1] != 0 ) ? ( - ( ( ActivationNeuron) layer.Neurons[j] ).Threshold / layer.Neurons[j].Weights[1] ) : 0; + + double[,] classifier = new double[2, 2] { + { chart.RangeX.Min, chart.RangeX.Min * k + b }, + { chart.RangeX.Max, chart.RangeX.Max * k + b } + }; + + // update chart + chart.UpdateDataSeries( string.Format( "classifier" + j ), classifier ); + } + + iteration++; + } + + // show perceptron's weights + ClearList( weightsList ); + for ( int i = 0; i < classesCount; i++ ) + { + string neuronName = string.Format( "Neuron {0}", i + 1 ); + + // weight 0 + ListViewItem item = AddListItem( weightsList, neuronName ); + AddListSubitem( item, "Weight 1" ); + AddListSubitem( item, layer.Neurons[i].Weights[0].ToString( "F6" ) ); + // weight 1 + item = AddListItem( weightsList, neuronName ); + AddListSubitem( item, "Weight 2" ); + AddListSubitem( item, layer.Neurons[i].Weights[1].ToString( "F6" ) ); + // threshold + item = AddListItem( weightsList, neuronName ); + AddListSubitem( item, "Threshold" ); + AddListSubitem( item, ( (ActivationNeuron) layer.Neurons[i] ).Threshold.ToString( "F6" ) ); + } + + // show error's dynamics + double[,] errors = new double[errorsList.Count, 2]; + + for ( int i = 0, n = errorsList.Count; i < n; i++ ) + { + errors[i, 0] = i; + errors[i, 1] = (double) errorsList[i]; + } + + errorChart.RangeX = new Range( 0, errorsList.Count - 1 ); + errorChart.UpdateDataSeries( "error", errors ); + } + catch ( IOException ) + { + MessageBox.Show( "Failed writing file", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error ); + } + finally + { + // close files + if ( errorsFile != null ) + errorsFile.Close( ); + if ( weightsFile != null ) + weightsFile.Close( ); + } + + // enable settings controls + EnableControls( true ); + } + } +} diff --git a/Samples/Neuro/Simple/One-Layer Perceptron Classifier/MainForm.resx b/Samples/Neuro/Simple/One-Layer Perceptron Classifier/MainForm.resx new file mode 100644 index 00000000..dcd055ec --- /dev/null +++ b/Samples/Neuro/Simple/One-Layer Perceptron Classifier/MainForm.resx @@ -0,0 +1,108 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + MainForm + + + False + + \ No newline at end of file diff --git a/Samples/Neuro/Simple/Perceptron Classifier/App.ico b/Samples/Neuro/Simple/Perceptron Classifier/App.ico new file mode 100644 index 00000000..3a5525fd Binary files /dev/null and b/Samples/Neuro/Simple/Perceptron Classifier/App.ico differ diff --git a/Samples/Neuro/Simple/Perceptron Classifier/AssemblyInfo.cs b/Samples/Neuro/Simple/Perceptron Classifier/AssemblyInfo.cs new file mode 100644 index 00000000..c77a3df1 --- /dev/null +++ b/Samples/Neuro/Simple/Perceptron Classifier/AssemblyInfo.cs @@ -0,0 +1,59 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly: AssemblyTitle( "Neuro Perceptron" )] +[assembly: AssemblyDescription( "Neuro Perceptron sample" )] +[assembly: AssemblyConfiguration( "" )] +[assembly: AssemblyCompany( "AForge" )] +[assembly: AssemblyProduct( "AForge.NET" )] +[assembly: AssemblyCopyright( "AForge © 2008" )] +[assembly: AssemblyTrademark( "" )] +[assembly: AssemblyCulture( "" )] + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly: AssemblyVersion( "2.0.0.0" )] +[assembly: AssemblyFileVersion( "2.0.0.0" )] + +// +// In order to sign your assembly you must specify a key to use. Refer to the +// Microsoft .NET Framework documentation for more information on assembly signing. +// +// Use the attributes below to control which key is used for signing. +// +// Notes: +// (*) If no key is specified, the assembly is not signed. +// (*) KeyName refers to a key that has been installed in the Crypto Service +// Provider (CSP) on your machine. KeyFile refers to a file which contains +// a key. +// (*) If the KeyFile and the KeyName values are both specified, the +// following processing occurs: +// (1) If the KeyName can be found in the CSP, that key is used. +// (2) If the KeyName does not exist and the KeyFile does exist, the key +// in the KeyFile is installed into the CSP and used. +// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. +// When specifying the KeyFile, the location of the KeyFile should be +// relative to the project output directory which is +// %Project Directory%\obj\. For example, if your KeyFile is +// located in the project directory, you would specify the AssemblyKeyFile +// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] +// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework +// documentation for more information on this. +// +[assembly: AssemblyDelaySign( false )] +[assembly: AssemblyKeyFile( "" )] +[assembly: AssemblyKeyName( "" )] diff --git a/Samples/Neuro/Simple/Perceptron Classifier/Classifier.csproj b/Samples/Neuro/Simple/Perceptron Classifier/Classifier.csproj new file mode 100644 index 00000000..0d709c6a --- /dev/null +++ b/Samples/Neuro/Simple/Perceptron Classifier/Classifier.csproj @@ -0,0 +1,174 @@ + + + + Local + 9.0.21022 + 2.0 + {531E8C46-6FA1-4B25-AF6F-10BB9FF7326D} + Debug + AnyCPU + App.ico + + + Classifier + + + JScript + Grid + IE50 + false + WinExe + Classifier + OnBuildSuccess + + + + + + + 3.5 + v2.0 + false + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + true + + + bin\Debug\ + false + 285212672 + false + + + DEBUG;TRACE + + + true + 4096 + false + + + false + false + false + false + 4 + full + prompt + + + bin\Release\ + false + 285212672 + false + + + TRACE + + + false + 4096 + false + + + true + false + false + false + 4 + none + prompt + + + + False + ..\..\..\..\Release\AForge.dll + + + False + ..\..\..\..\Release\AForge.Controls.dll + + + False + ..\..\..\..\Release\AForge.Neuro.dll + + + System + + + System.Data + + + System.Drawing + + + System.Windows.Forms + + + System.XML + + + + + + Code + + + Form + + + MainForm.cs + + + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 2.0 %28x86%29 + false + + + False + .NET Framework 3.0 %28x86%29 + false + + + False + .NET Framework 3.5 + true + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 3.1 + true + + + + + + + + + + \ No newline at end of file diff --git a/Samples/Neuro/Simple/Perceptron Classifier/Classifier.sln b/Samples/Neuro/Simple/Perceptron Classifier/Classifier.sln new file mode 100644 index 00000000..35dad02a --- /dev/null +++ b/Samples/Neuro/Simple/Perceptron Classifier/Classifier.sln @@ -0,0 +1,19 @@ +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual C# Express 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Classifier", "Classifier.csproj", "{531E8C46-6FA1-4B25-AF6F-10BB9FF7326D}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {531E8C46-6FA1-4B25-AF6F-10BB9FF7326D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {531E8C46-6FA1-4B25-AF6F-10BB9FF7326D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {531E8C46-6FA1-4B25-AF6F-10BB9FF7326D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {531E8C46-6FA1-4B25-AF6F-10BB9FF7326D}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Samples/Neuro/Simple/Perceptron Classifier/Data Samples/and.csv b/Samples/Neuro/Simple/Perceptron Classifier/Data Samples/and.csv new file mode 100644 index 00000000..4b7b3ea7 --- /dev/null +++ b/Samples/Neuro/Simple/Perceptron Classifier/Data Samples/and.csv @@ -0,0 +1,4 @@ +0,0,0 +0,1,0 +1,0,0 +1,1,1 diff --git a/Samples/Neuro/Simple/Perceptron Classifier/Data Samples/cube.csv b/Samples/Neuro/Simple/Perceptron Classifier/Data Samples/cube.csv new file mode 100644 index 00000000..6aa44f78 --- /dev/null +++ b/Samples/Neuro/Simple/Perceptron Classifier/Data Samples/cube.csv @@ -0,0 +1,8 @@ +0,0,0,0 +0,0,1,0 +0,1,0,0 +0,1,1,0 +1,0,0,1 +1,0,1,1 +1,1,0,1 +1,1,1,1 diff --git a/Samples/Neuro/Simple/Perceptron Classifier/Data Samples/or.csv b/Samples/Neuro/Simple/Perceptron Classifier/Data Samples/or.csv new file mode 100644 index 00000000..5f14b20d --- /dev/null +++ b/Samples/Neuro/Simple/Perceptron Classifier/Data Samples/or.csv @@ -0,0 +1,4 @@ +0,0,0 +0,1,1 +1,0,1 +1,1,1 diff --git a/Samples/Neuro/Simple/Perceptron Classifier/MainForm.cs b/Samples/Neuro/Simple/Perceptron Classifier/MainForm.cs new file mode 100644 index 00000000..62ae103d --- /dev/null +++ b/Samples/Neuro/Simple/Perceptron Classifier/MainForm.cs @@ -0,0 +1,812 @@ +// Perceptron Classifier +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2006-2011 +// contacts@aforgenet.com +// + +using System; +using System.Drawing; +using System.Collections; +using System.ComponentModel; +using System.Windows.Forms; +using System.Data; +using System.IO; +using System.Threading; + +using AForge; +using AForge.Neuro; +using AForge.Neuro.Learning; +using AForge.Controls; + +namespace Classifier +{ + /// + /// Summary description for Form1. + /// + public class MainForm : System.Windows.Forms.Form + { + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.ListView dataList; + private System.Windows.Forms.Button loadButton; + private System.Windows.Forms.OpenFileDialog openFileDialog; + private AForge.Controls.Chart chart; + private System.Windows.Forms.GroupBox groupBox2; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.TextBox learningRateBox; + private System.Windows.Forms.Button startButton; + private System.Windows.Forms.Label noVisualizationLabel; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.ListView weightsList; + private System.Windows.Forms.ColumnHeader columnHeader1; + private System.Windows.Forms.ColumnHeader columnHeader2; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.TextBox iterationsBox; + private System.Windows.Forms.Button stopButton; + private System.Windows.Forms.Label label5; + private AForge.Controls.Chart errorChart; + private System.Windows.Forms.CheckBox saveFilesCheck; + /// + /// Required designer variable. + /// + private System.ComponentModel.Container components = null; + + private int samples = 0; + private int variables = 0; + private double[,] data = null; + private int[] classes = null; + + private double learningRate = 0.1; + private bool saveStatisticsToFiles = false; + + private Thread workerThread = null; + private volatile bool needToStop = false; + + // Constructor + public MainForm( ) + { + // + // Required for Windows Form Designer support + // + InitializeComponent( ); + + // initialize charts + chart.AddDataSeries( "class1", Color.Red, Chart.SeriesType.Dots, 5 ); + chart.AddDataSeries( "class2", Color.Blue, Chart.SeriesType.Dots, 5 ); + chart.AddDataSeries( "classifier", Color.Gray, Chart.SeriesType.Line, 1, false ); + + errorChart.AddDataSeries( "error", Color.Red, Chart.SeriesType.ConnectedDots, 3, false ); + + // update some controls + saveFilesCheck.Checked = saveStatisticsToFiles; + UpdateSettings( ); + } + + /// + /// Clean up any resources being used. + /// + protected override void Dispose( bool disposing ) + { + if( disposing ) + { + if (components != null) + { + components.Dispose(); + } + } + base.Dispose( disposing ); + } + + #region Windows Form Designer generated code + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.chart = new AForge.Controls.Chart(); + this.loadButton = new System.Windows.Forms.Button(); + this.dataList = new System.Windows.Forms.ListView(); + this.noVisualizationLabel = new System.Windows.Forms.Label(); + this.openFileDialog = new System.Windows.Forms.OpenFileDialog(); + this.groupBox2 = new System.Windows.Forms.GroupBox(); + this.errorChart = new AForge.Controls.Chart(); + this.label5 = new System.Windows.Forms.Label(); + this.stopButton = new System.Windows.Forms.Button(); + this.iterationsBox = new System.Windows.Forms.TextBox(); + this.label4 = new System.Windows.Forms.Label(); + this.weightsList = new System.Windows.Forms.ListView(); + this.columnHeader1 = new System.Windows.Forms.ColumnHeader(); + this.columnHeader2 = new System.Windows.Forms.ColumnHeader(); + this.label3 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.startButton = new System.Windows.Forms.Button(); + this.learningRateBox = new System.Windows.Forms.TextBox(); + this.label1 = new System.Windows.Forms.Label(); + this.saveFilesCheck = new System.Windows.Forms.CheckBox(); + this.groupBox1.SuspendLayout(); + this.groupBox2.SuspendLayout(); + this.SuspendLayout(); + // + // groupBox1 + // + this.groupBox1.Controls.AddRange(new System.Windows.Forms.Control[] { + this.chart, + this.loadButton, + this.dataList, + this.noVisualizationLabel}); + this.groupBox1.Location = new System.Drawing.Point(10, 10); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(190, 420); + this.groupBox1.TabIndex = 0; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "Data"; + // + // chart + // + this.chart.Location = new System.Drawing.Point(10, 215); + this.chart.Name = "chart"; + this.chart.Size = new System.Drawing.Size(170, 170); + this.chart.TabIndex = 2; + this.chart.Text = "chart1"; + // + // loadButton + // + this.loadButton.Location = new System.Drawing.Point(10, 390); + this.loadButton.Name = "loadButton"; + this.loadButton.TabIndex = 1; + this.loadButton.Text = "&Load"; + this.loadButton.Click += new System.EventHandler(this.loadButton_Click); + // + // dataList + // + this.dataList.FullRowSelect = true; + this.dataList.GridLines = true; + this.dataList.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable; + this.dataList.Location = new System.Drawing.Point(10, 20); + this.dataList.Name = "dataList"; + this.dataList.Size = new System.Drawing.Size(170, 190); + this.dataList.TabIndex = 0; + this.dataList.View = System.Windows.Forms.View.Details; + // + // noVisualizationLabel + // + this.noVisualizationLabel.Location = new System.Drawing.Point(10, 215); + this.noVisualizationLabel.Name = "noVisualizationLabel"; + this.noVisualizationLabel.Size = new System.Drawing.Size(170, 170); + this.noVisualizationLabel.TabIndex = 2; + this.noVisualizationLabel.Text = "Visualization is not available."; + this.noVisualizationLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.noVisualizationLabel.Visible = false; + // + // openFileDialog + // + this.openFileDialog.Filter = "CSV (Comma delimited) (*.csv)|*.csv"; + this.openFileDialog.Title = "Select data file"; + // + // groupBox2 + // + this.groupBox2.Controls.AddRange(new System.Windows.Forms.Control[] { + this.saveFilesCheck, + this.errorChart, + this.label5, + this.stopButton, + this.iterationsBox, + this.label4, + this.weightsList, + this.label3, + this.label2, + this.startButton, + this.learningRateBox, + this.label1}); + this.groupBox2.Location = new System.Drawing.Point(210, 10); + this.groupBox2.Name = "groupBox2"; + this.groupBox2.Size = new System.Drawing.Size(240, 420); + this.groupBox2.TabIndex = 1; + this.groupBox2.TabStop = false; + this.groupBox2.Text = "Training"; + // + // errorChart + // + this.errorChart.Location = new System.Drawing.Point(10, 270); + this.errorChart.Name = "errorChart"; + this.errorChart.Size = new System.Drawing.Size(220, 140); + this.errorChart.TabIndex = 10; + // + // label5 + // + this.label5.Location = new System.Drawing.Point(10, 250); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(101, 15); + this.label5.TabIndex = 9; + this.label5.Text = "Error\'s dynamics:"; + // + // stopButton + // + this.stopButton.Enabled = false; + this.stopButton.Location = new System.Drawing.Point(155, 49); + this.stopButton.Name = "stopButton"; + this.stopButton.TabIndex = 8; + this.stopButton.Text = "S&top"; + this.stopButton.Click += new System.EventHandler(this.stopButton_Click); + // + // iterationsBox + // + this.iterationsBox.Location = new System.Drawing.Point(90, 50); + this.iterationsBox.Name = "iterationsBox"; + this.iterationsBox.ReadOnly = true; + this.iterationsBox.Size = new System.Drawing.Size(50, 20); + this.iterationsBox.TabIndex = 7; + this.iterationsBox.Text = ""; + // + // label4 + // + this.label4.Location = new System.Drawing.Point(10, 52); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(65, 16); + this.label4.TabIndex = 6; + this.label4.Text = "Iterations:"; + // + // weightsList + // + this.weightsList.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { + this.columnHeader1, + this.columnHeader2}); + this.weightsList.FullRowSelect = true; + this.weightsList.GridLines = true; + this.weightsList.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable; + this.weightsList.Location = new System.Drawing.Point(10, 130); + this.weightsList.Name = "weightsList"; + this.weightsList.Size = new System.Drawing.Size(220, 110); + this.weightsList.TabIndex = 5; + this.weightsList.View = System.Windows.Forms.View.Details; + // + // columnHeader1 + // + this.columnHeader1.Text = "Weight"; + this.columnHeader1.Width = 70; + // + // columnHeader2 + // + this.columnHeader2.Text = "Value"; + this.columnHeader2.Width = 100; + // + // label3 + // + this.label3.Location = new System.Drawing.Point(10, 110); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(112, 16); + this.label3.TabIndex = 4; + this.label3.Text = "Perceptron weights:"; + // + // label2 + // + this.label2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.label2.Location = new System.Drawing.Point(10, 100); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(220, 2); + this.label2.TabIndex = 3; + // + // startButton + // + this.startButton.Enabled = false; + this.startButton.Location = new System.Drawing.Point(155, 19); + this.startButton.Name = "startButton"; + this.startButton.TabIndex = 2; + this.startButton.Text = "&Start"; + this.startButton.Click += new System.EventHandler(this.startButton_Click); + // + // learningRateBox + // + this.learningRateBox.Location = new System.Drawing.Point(90, 20); + this.learningRateBox.Name = "learningRateBox"; + this.learningRateBox.Size = new System.Drawing.Size(50, 20); + this.learningRateBox.TabIndex = 1; + this.learningRateBox.Text = ""; + // + // label1 + // + this.label1.Location = new System.Drawing.Point(10, 22); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(75, 16); + this.label1.TabIndex = 0; + this.label1.Text = "Learning rate:"; + // + // saveFilesCheck + // + this.saveFilesCheck.Location = new System.Drawing.Point(10, 80); + this.saveFilesCheck.Name = "saveFilesCheck"; + this.saveFilesCheck.Size = new System.Drawing.Size(182, 16); + this.saveFilesCheck.TabIndex = 11; + this.saveFilesCheck.Text = "Save weights and errors to files"; + // + // MainForm + // + this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); + this.ClientSize = new System.Drawing.Size(459, 440); + this.Controls.AddRange(new System.Windows.Forms.Control[] { + this.groupBox2, + this.groupBox1}); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.MaximizeBox = false; + this.Name = "MainForm"; + this.Text = "Perceptron Classifier"; + this.Closing += new System.ComponentModel.CancelEventHandler(this.MainForm_Closing); + this.groupBox1.ResumeLayout(false); + this.groupBox2.ResumeLayout(false); + this.ResumeLayout(false); + + } + #endregion + + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main( ) + { + Application.Run( new MainForm( ) ); + } + + // Delegates to enable async calls for setting controls properties + private delegate void SetTextCallback( System.Windows.Forms.Control control, string text ); + private delegate void ClearListCallback( System.Windows.Forms.ListView control ); + private delegate ListViewItem AddListItemCallback( System.Windows.Forms.ListView control, string itemText ); + private delegate void AddListSubitemCallback( ListViewItem item, string subItemText ); + + // Thread safe updating of control's text property + private void SetText( System.Windows.Forms.Control control, string text ) + { + if ( control.InvokeRequired ) + { + SetTextCallback d = new SetTextCallback( SetText ); + Invoke( d, new object[] { control, text } ); + } + else + { + control.Text = text; + } + } + + // Thread safe clearing of list view + private void ClearList( System.Windows.Forms.ListView control ) + { + if ( control.InvokeRequired ) + { + ClearListCallback d = new ClearListCallback( ClearList ); + Invoke( d, new object[] { control } ); + } + else + { + control.Items.Clear( ); + } + } + + // Thread safe adding of item to list control + private ListViewItem AddListItem( System.Windows.Forms.ListView control, string itemText ) + { + ListViewItem item = null; + + if ( control.InvokeRequired ) + { + AddListItemCallback d = new AddListItemCallback( AddListItem ); + item = (ListViewItem) Invoke( d, new object[] { control, itemText } ); + } + else + { + item = control.Items.Add( itemText ); + } + + return item; + } + + // Thread safe adding of subitem to list control + private void AddListSubitem( ListViewItem item, string subItemText ) + { + if ( this.InvokeRequired ) + { + AddListSubitemCallback d = new AddListSubitemCallback( AddListSubitem ); + Invoke( d, new object[] { item, subItemText } ); + } + else + { + item.SubItems.Add( subItemText ); + } + } + + // On main form closing + private void MainForm_Closing(object sender, System.ComponentModel.CancelEventArgs e) + { + // check if worker thread is running + if ( ( workerThread != null ) && ( workerThread.IsAlive ) ) + { + needToStop = true; + while ( !workerThread.Join( 100 ) ) + Application.DoEvents( ); + } + } + + // On "Load" button click - load data + private void loadButton_Click( object sender, System.EventArgs e ) + { + // data file format: + // X1, X2, ... Xn, class (0|1) + + // show file selection dialog + if ( openFileDialog.ShowDialog( ) == DialogResult.OK ) + { + StreamReader reader = null; + + // temp buffers (for 50 samples only) + float[,] tempData = null; + int[] tempClasses = new int[50]; + + // min and max X values + float minX = float.MaxValue; + float maxX = float.MinValue; + + // samples count + samples = 0; + + try + { + string str = null; + + // open selected file + reader = File.OpenText( openFileDialog.FileName ); + + // read the data + while ( ( samples < 50 ) && ( ( str = reader.ReadLine( ) ) != null ) ) + { + // split the string + string[] strs = str.Split( ';' ); + if ( strs.Length == 1 ) + strs = str.Split( ',' ); + + // allocate data array + if ( samples == 0 ) + { + variables = strs.Length - 1; + tempData = new float[50, variables]; + } + + // parse data + for ( int j = 0; j < variables; j++ ) + { + tempData[samples, j] = float.Parse( strs[j] ); + } + tempClasses[samples] = int.Parse( strs[variables] ); + + // search for min value + if ( tempData[samples, 0] < minX ) + minX = tempData[samples, 0]; + // search for max value + if ( tempData[samples, 0] > maxX ) + maxX = tempData[samples, 0]; + + samples++; + } + + // allocate and set data + data = new double[samples, variables]; + Array.Copy( tempData, 0, data, 0, samples * variables ); + classes = new int[samples]; + Array.Copy( tempClasses, 0, classes, 0, samples ); + + // clear current result + ClearCurrentSolution( ); + } + catch ( Exception ) + { + MessageBox.Show( "Failed reading the file", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error ); + return; + } + finally + { + // close file + if ( reader != null ) + reader.Close( ); + } + + // update list and chart + UpdateDataListView( ); + + // show chart or not + bool showChart = ( variables == 2 ); + + if ( showChart ) + { + chart.RangeX = new Range( minX, maxX ); + ShowTrainingData( ); + } + + chart.Visible = showChart; + noVisualizationLabel.Visible = !showChart; + + // enable start button + startButton.Enabled = true; + } + } + + // Update settings controls + private void UpdateSettings( ) + { + learningRateBox.Text = learningRate.ToString( ); + } + + // Update data in list view + private void UpdateDataListView( ) + { + // remove all curent data and columns + dataList.Items.Clear( ); + dataList.Columns.Clear( ); + + // add columns + for ( int i = 0, n = variables; i < n; i++ ) + { + dataList.Columns.Add( string.Format( "X{0}", i + 1 ), + 50, HorizontalAlignment.Left ); + } + dataList.Columns.Add( "Class", 50, HorizontalAlignment.Left ); + + // add items + for ( int i = 0; i < samples; i++ ) + { + dataList.Items.Add( data[i, 0].ToString( ) ); + + for ( int j = 1; j < variables; j++ ) + { + dataList.Items[i].SubItems.Add( data[i, j].ToString( ) ); + } + dataList.Items[i].SubItems.Add( classes[i].ToString( ) ); + } + } + + // Show training data on chart + private void ShowTrainingData( ) + { + int class1Size = 0; + int class2Size = 0; + + // calculate number of samples in each class + for ( int i = 0, n = samples; i < n; i++ ) + { + if ( classes[i] == 0 ) + class1Size++; + else + class2Size++; + } + + // allocate classes arrays + double[,] class1 = new double[class1Size, 2]; + double[,] class2 = new double[class2Size, 2]; + + // fill classes arrays + for ( int i = 0, c1 = 0, c2 = 0; i < samples; i++ ) + { + if ( classes[i] == 0 ) + { + // class 1 + class1[c1, 0] = data[i, 0]; + class1[c1, 1] = data[i, 1]; + c1++; + } + else + { + // class 2 + class2[c2, 0] = data[i, 0]; + class2[c2, 1] = data[i, 1]; + c2++; + } + } + + // updata chart control + chart.UpdateDataSeries( "class1", class1 ); + chart.UpdateDataSeries( "class2", class2 ); + } + + // Delegates to enable async calls for setting controls properties + private delegate void EnableCallback( bool enable ); + + // Enable/disale controls (safe for threading) + private void EnableControls( bool enable ) + { + if ( InvokeRequired ) + { + EnableCallback d = new EnableCallback( EnableControls ); + Invoke( d, new object[] { enable } ); + } + else + { + learningRateBox.Enabled = enable; + loadButton.Enabled = enable; + startButton.Enabled = enable; + saveFilesCheck.Enabled = enable; + stopButton.Enabled = !enable; + } + } + + // Clear current solution + private void ClearCurrentSolution( ) + { + chart.UpdateDataSeries( "classifier", null ); + errorChart.UpdateDataSeries( "error", null ); + weightsList.Items.Clear( ); + } + + // On button "Start" - start learning procedure + private void startButton_Click(object sender, System.EventArgs e) + { + // get learning rate + try + { + learningRate = Math.Max( 0.00001, Math.Min( 1, double.Parse( learningRateBox.Text ) ) ); + } + catch + { + learningRate = 0.1; + } + saveStatisticsToFiles = saveFilesCheck.Checked; + + // update settings controls + UpdateSettings( ); + + // disable all settings controls + EnableControls( false ); + + // run worker thread + needToStop = false; + workerThread = new Thread( new ThreadStart( SearchSolution ) ); + workerThread.Start( ); + } + + // On button "Stop" - stop learning procedure + private void stopButton_Click(object sender, System.EventArgs e) + { + // stop worker thread + needToStop = true; + while ( !workerThread.Join( 100 ) ) + Application.DoEvents( ); + workerThread = null; + } + + // Worker thread + void SearchSolution( ) + { + // prepare learning data + double[][] input = new double[samples][]; + double[][] output = new double[samples][]; + + for ( int i = 0; i < samples; i++ ) + { + input[i] = new double[variables]; + output[i] = new double[1]; + + // copy input + for ( int j = 0; j < variables; j++ ) + input[i][j] = data[i, j]; + // copy output + output[i][0] = classes[i]; + } + + // create perceptron + ActivationNetwork network = new ActivationNetwork( new ThresholdFunction( ), variables, 1 ); + ActivationNeuron neuron = network.Layers[0].Neurons[0] as ActivationNeuron; + // create teacher + PerceptronLearning teacher = new PerceptronLearning( network ); + // set learning rate + teacher.LearningRate = learningRate; + + // iterations + int iteration = 1; + + // statistic files + StreamWriter errorsFile = null; + StreamWriter weightsFile = null; + + try + { + // check if we need to save statistics to files + if ( saveStatisticsToFiles ) + { + // open files + errorsFile = File.CreateText( "errors.csv" ); + weightsFile = File.CreateText( "weights.csv" ); + } + + // erros list + ArrayList errorsList = new ArrayList( ); + + // loop + while ( !needToStop ) + { + // save current weights + if ( weightsFile != null ) + { + for ( int i = 0; i < variables; i++ ) + { + weightsFile.Write( neuron.Weights[i] + "," ); + } + weightsFile.WriteLine( neuron.Threshold ); + } + + // run epoch of learning procedure + double error = teacher.RunEpoch( input, output ); + errorsList.Add( error ); + + // show current iteration + SetText( iterationsBox, iteration.ToString( ) ); + + // save current error + if ( errorsFile != null ) + { + errorsFile.WriteLine( error ); + } + + // show classifier in the case of 2 dimensional data + if ( ( neuron.InputsCount == 2 ) && ( neuron.Weights[1] != 0 ) ) + { + double k = - neuron.Weights[0] / neuron.Weights[1]; + double b = - neuron.Threshold / neuron.Weights[1]; + + double[,] classifier = new double[2, 2] { + { chart.RangeX.Min, chart.RangeX.Min * k + b }, + { chart.RangeX.Max, chart.RangeX.Max * k + b } + }; + // update chart + chart.UpdateDataSeries( "classifier", classifier ); + } + + // stop if no error + if ( error == 0 ) + break; + + iteration++; + } + + // show perceptron's weights + ListViewItem item = null; + + ClearList( weightsList ); + for ( int i = 0; i < variables; i++ ) + { + item = AddListItem( weightsList, string.Format( "Weight {0}", i + 1 ) ); + AddListSubitem( item, neuron.Weights[i].ToString( "F6" ) ); + } + item = AddListItem( weightsList, "Threshold" ); + AddListSubitem( item, neuron.Threshold.ToString( "F6" ) ); + + // show error's dynamics + double[,] errors = new double[errorsList.Count, 2]; + + for ( int i = 0, n = errorsList.Count; i < n; i++ ) + { + errors[i, 0] = i; + errors[i, 1] = (double) errorsList[i]; + } + + errorChart.RangeX = new Range( 0, errorsList.Count - 1 ); + errorChart.RangeY = new Range( 0, samples ); + errorChart.UpdateDataSeries( "error", errors ); + } + catch ( IOException ) + { + MessageBox.Show( "Failed writing file", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error ); + } + finally + { + // close files + if ( errorsFile != null ) + errorsFile.Close( ); + if ( weightsFile != null ) + weightsFile.Close( ); + } + + // enable settings controls + EnableControls( true ); + } + } +} diff --git a/Samples/Neuro/Simple/Perceptron Classifier/MainForm.resx b/Samples/Neuro/Simple/Perceptron Classifier/MainForm.resx new file mode 100644 index 00000000..dcd055ec --- /dev/null +++ b/Samples/Neuro/Simple/Perceptron Classifier/MainForm.resx @@ -0,0 +1,108 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + MainForm + + + False + + \ No newline at end of file diff --git a/Samples/Robotics/Lego/NXTTest/MainForm.Designer.cs b/Samples/Robotics/Lego/NXTTest/MainForm.Designer.cs new file mode 100644 index 00000000..fdcb2d29 --- /dev/null +++ b/Samples/Robotics/Lego/NXTTest/MainForm.Designer.cs @@ -0,0 +1,968 @@ +namespace NXTTest +{ + partial class MainForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose( bool disposing ) + { + if ( disposing && ( components != null ) ) + { + components.Dispose( ); + } + base.Dispose( disposing ); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent( ) + { + this.components = new System.ComponentModel.Container( ); + this.groupBox1 = new System.Windows.Forms.GroupBox( ); + this.disconnectButton = new System.Windows.Forms.Button( ); + this.connectButton = new System.Windows.Forms.Button( ); + this.portBox = new System.Windows.Forms.TextBox( ); + this.label1 = new System.Windows.Forms.Label( ); + this.groupBox2 = new System.Windows.Forms.GroupBox( ); + this.batteryLevelBox = new System.Windows.Forms.TextBox( ); + this.label8 = new System.Windows.Forms.Label( ); + this.freeUserFlashBox = new System.Windows.Forms.TextBox( ); + this.label7 = new System.Windows.Forms.Label( ); + this.btSignalStrengthBox = new System.Windows.Forms.TextBox( ); + this.label6 = new System.Windows.Forms.Label( ); + this.btAddressBox = new System.Windows.Forms.TextBox( ); + this.label5 = new System.Windows.Forms.Label( ); + this.deviceNameBox = new System.Windows.Forms.TextBox( ); + this.label4 = new System.Windows.Forms.Label( ); + this.protocolBox = new System.Windows.Forms.TextBox( ); + this.label3 = new System.Windows.Forms.Label( ); + this.firmwareBox = new System.Windows.Forms.TextBox( ); + this.label2 = new System.Windows.Forms.Label( ); + this.groupBox3 = new System.Windows.Forms.GroupBox( ); + this.rotationCountBox = new System.Windows.Forms.TextBox( ); + this.label16 = new System.Windows.Forms.Label( ); + this.blockTachoCountBox = new System.Windows.Forms.TextBox( ); + this.label15 = new System.Windows.Forms.Label( ); + this.tachoCountBox = new System.Windows.Forms.TextBox( ); + this.label14 = new System.Windows.Forms.Label( ); + this.groupBox4 = new System.Windows.Forms.GroupBox( ); + this.runStateCombo = new System.Windows.Forms.ComboBox( ); + this.label13 = new System.Windows.Forms.Label( ); + this.regulationModeCombo = new System.Windows.Forms.ComboBox( ); + this.label12 = new System.Windows.Forms.Label( ); + this.groupBox5 = new System.Windows.Forms.GroupBox( ); + this.modeRegulatedBox = new System.Windows.Forms.CheckBox( ); + this.modeBrakeCheck = new System.Windows.Forms.CheckBox( ); + this.modeOnCheck = new System.Windows.Forms.CheckBox( ); + this.tachoLimitBox = new System.Windows.Forms.TextBox( ); + this.label11 = new System.Windows.Forms.Label( ); + this.turnRatioUpDown = new System.Windows.Forms.NumericUpDown( ); + this.label10 = new System.Windows.Forms.Label( ); + this.label9 = new System.Windows.Forms.Label( ); + this.powerUpDown = new System.Windows.Forms.NumericUpDown( ); + this.getMotorStateButton = new System.Windows.Forms.Button( ); + this.setMotorStateButton = new System.Windows.Forms.Button( ); + this.resetMotorButton = new System.Windows.Forms.Button( ); + this.motorCombo = new System.Windows.Forms.ComboBox( ); + this.toolTip = new System.Windows.Forms.ToolTip( this.components ); + this.groupBox6 = new System.Windows.Forms.GroupBox( ); + this.setInputModeButton = new System.Windows.Forms.Button( ); + this.sensorModeCombo = new System.Windows.Forms.ComboBox( ); + this.label25 = new System.Windows.Forms.Label( ); + this.sensorTypeCombo = new System.Windows.Forms.ComboBox( ); + this.label23 = new System.Windows.Forms.Label( ); + this.label24 = new System.Windows.Forms.Label( ); + this.calibratedInputBox = new System.Windows.Forms.TextBox( ); + this.label22 = new System.Windows.Forms.Label( ); + this.scaledInputBox = new System.Windows.Forms.TextBox( ); + this.label21 = new System.Windows.Forms.Label( ); + this.normalizedInputBox = new System.Windows.Forms.TextBox( ); + this.label20 = new System.Windows.Forms.Label( ); + this.rawInputBox = new System.Windows.Forms.TextBox( ); + this.label19 = new System.Windows.Forms.Label( ); + this.sensorModeBox = new System.Windows.Forms.TextBox( ); + this.label18 = new System.Windows.Forms.Label( ); + this.sensorTypeBox = new System.Windows.Forms.TextBox( ); + this.label17 = new System.Windows.Forms.Label( ); + this.calibratedCheck = new System.Windows.Forms.CheckBox( ); + this.validCheck = new System.Windows.Forms.CheckBox( ); + this.getInputButton = new System.Windows.Forms.Button( ); + this.inputPortCombo = new System.Windows.Forms.ComboBox( ); + this.groupBox1.SuspendLayout( ); + this.groupBox2.SuspendLayout( ); + this.groupBox3.SuspendLayout( ); + this.groupBox4.SuspendLayout( ); + this.groupBox5.SuspendLayout( ); + ( (System.ComponentModel.ISupportInitialize) ( this.turnRatioUpDown ) ).BeginInit( ); + ( (System.ComponentModel.ISupportInitialize) ( this.powerUpDown ) ).BeginInit( ); + this.groupBox6.SuspendLayout( ); + this.SuspendLayout( ); + // + // groupBox1 + // + this.groupBox1.Controls.Add( this.disconnectButton ); + this.groupBox1.Controls.Add( this.connectButton ); + this.groupBox1.Controls.Add( this.portBox ); + this.groupBox1.Controls.Add( this.label1 ); + this.groupBox1.Location = new System.Drawing.Point( 10, 10 ); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size( 280, 55 ); + this.groupBox1.TabIndex = 0; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "Connection"; + // + // disconnectButton + // + this.disconnectButton.Location = new System.Drawing.Point( 200, 24 ); + this.disconnectButton.Name = "disconnectButton"; + this.disconnectButton.Size = new System.Drawing.Size( 70, 23 ); + this.disconnectButton.TabIndex = 3; + this.disconnectButton.Text = "&Disconnect"; + this.disconnectButton.UseVisualStyleBackColor = true; + this.disconnectButton.Click += new System.EventHandler( this.disconnectButton_Click ); + // + // connectButton + // + this.connectButton.Location = new System.Drawing.Point( 125, 24 ); + this.connectButton.Name = "connectButton"; + this.connectButton.Size = new System.Drawing.Size( 70, 23 ); + this.connectButton.TabIndex = 2; + this.connectButton.Text = "&Connect"; + this.connectButton.UseVisualStyleBackColor = true; + this.connectButton.Click += new System.EventHandler( this.connectButton_Click ); + // + // portBox + // + this.portBox.Location = new System.Drawing.Point( 70, 25 ); + this.portBox.Name = "portBox"; + this.portBox.Size = new System.Drawing.Size( 48, 20 ); + this.portBox.TabIndex = 1; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point( 10, 28 ); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size( 56, 13 ); + this.label1.TabIndex = 0; + this.label1.Text = "COM Port:"; + // + // groupBox2 + // + this.groupBox2.Controls.Add( this.batteryLevelBox ); + this.groupBox2.Controls.Add( this.label8 ); + this.groupBox2.Controls.Add( this.freeUserFlashBox ); + this.groupBox2.Controls.Add( this.label7 ); + this.groupBox2.Controls.Add( this.btSignalStrengthBox ); + this.groupBox2.Controls.Add( this.label6 ); + this.groupBox2.Controls.Add( this.btAddressBox ); + this.groupBox2.Controls.Add( this.label5 ); + this.groupBox2.Controls.Add( this.deviceNameBox ); + this.groupBox2.Controls.Add( this.label4 ); + this.groupBox2.Controls.Add( this.protocolBox ); + this.groupBox2.Controls.Add( this.label3 ); + this.groupBox2.Controls.Add( this.firmwareBox ); + this.groupBox2.Controls.Add( this.label2 ); + this.groupBox2.Location = new System.Drawing.Point( 10, 75 ); + this.groupBox2.Name = "groupBox2"; + this.groupBox2.Size = new System.Drawing.Size( 280, 245 ); + this.groupBox2.TabIndex = 1; + this.groupBox2.TabStop = false; + this.groupBox2.Text = "Device info"; + // + // batteryLevelBox + // + this.batteryLevelBox.Location = new System.Drawing.Point( 110, 175 ); + this.batteryLevelBox.Name = "batteryLevelBox"; + this.batteryLevelBox.ReadOnly = true; + this.batteryLevelBox.Size = new System.Drawing.Size( 100, 20 ); + this.batteryLevelBox.TabIndex = 12; + // + // label8 + // + this.label8.AutoSize = true; + this.label8.Location = new System.Drawing.Point( 10, 178 ); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size( 68, 13 ); + this.label8.TabIndex = 11; + this.label8.Text = "Battery level:"; + // + // freeUserFlashBox + // + this.freeUserFlashBox.Location = new System.Drawing.Point( 110, 145 ); + this.freeUserFlashBox.Name = "freeUserFlashBox"; + this.freeUserFlashBox.ReadOnly = true; + this.freeUserFlashBox.Size = new System.Drawing.Size( 100, 20 ); + this.freeUserFlashBox.TabIndex = 10; + // + // label7 + // + this.label7.AutoSize = true; + this.label7.Location = new System.Drawing.Point( 10, 148 ); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size( 82, 13 ); + this.label7.TabIndex = 2; + this.label7.Text = "Free user Flash:"; + // + // btSignalStrengthBox + // + this.btSignalStrengthBox.Location = new System.Drawing.Point( 110, 115 ); + this.btSignalStrengthBox.Name = "btSignalStrengthBox"; + this.btSignalStrengthBox.ReadOnly = true; + this.btSignalStrengthBox.Size = new System.Drawing.Size( 100, 20 ); + this.btSignalStrengthBox.TabIndex = 9; + // + // label6 + // + this.label6.AutoSize = true; + this.label6.Location = new System.Drawing.Point( 10, 118 ); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size( 80, 13 ); + this.label6.TabIndex = 8; + this.label6.Text = "Signal strength:"; + // + // btAddressBox + // + this.btAddressBox.Location = new System.Drawing.Point( 110, 85 ); + this.btAddressBox.Name = "btAddressBox"; + this.btAddressBox.ReadOnly = true; + this.btAddressBox.Size = new System.Drawing.Size( 160, 20 ); + this.btAddressBox.TabIndex = 7; + // + // label5 + // + this.label5.AutoSize = true; + this.label5.Location = new System.Drawing.Point( 10, 88 ); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size( 95, 13 ); + this.label5.TabIndex = 6; + this.label5.Text = "Bluetooth address:"; + // + // deviceNameBox + // + this.deviceNameBox.Location = new System.Drawing.Point( 110, 55 ); + this.deviceNameBox.Name = "deviceNameBox"; + this.deviceNameBox.ReadOnly = true; + this.deviceNameBox.Size = new System.Drawing.Size( 160, 20 ); + this.deviceNameBox.TabIndex = 5; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point( 10, 58 ); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size( 73, 13 ); + this.label4.TabIndex = 4; + this.label4.Text = "Device name:"; + // + // protocolBox + // + this.protocolBox.Location = new System.Drawing.Point( 210, 25 ); + this.protocolBox.Name = "protocolBox"; + this.protocolBox.ReadOnly = true; + this.protocolBox.Size = new System.Drawing.Size( 60, 20 ); + this.protocolBox.TabIndex = 3; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point( 155, 28 ); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size( 49, 13 ); + this.label3.TabIndex = 2; + this.label3.Text = "Protocol:"; + // + // firmwareBox + // + this.firmwareBox.Location = new System.Drawing.Point( 70, 25 ); + this.firmwareBox.Name = "firmwareBox"; + this.firmwareBox.ReadOnly = true; + this.firmwareBox.Size = new System.Drawing.Size( 60, 20 ); + this.firmwareBox.TabIndex = 1; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point( 10, 28 ); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size( 52, 13 ); + this.label2.TabIndex = 0; + this.label2.Text = "Firmware:"; + // + // groupBox3 + // + this.groupBox3.Controls.Add( this.rotationCountBox ); + this.groupBox3.Controls.Add( this.label16 ); + this.groupBox3.Controls.Add( this.blockTachoCountBox ); + this.groupBox3.Controls.Add( this.label15 ); + this.groupBox3.Controls.Add( this.tachoCountBox ); + this.groupBox3.Controls.Add( this.label14 ); + this.groupBox3.Controls.Add( this.groupBox4 ); + this.groupBox3.Controls.Add( this.getMotorStateButton ); + this.groupBox3.Controls.Add( this.setMotorStateButton ); + this.groupBox3.Controls.Add( this.resetMotorButton ); + this.groupBox3.Controls.Add( this.motorCombo ); + this.groupBox3.Location = new System.Drawing.Point( 300, 10 ); + this.groupBox3.Name = "groupBox3"; + this.groupBox3.Size = new System.Drawing.Size( 275, 310 ); + this.groupBox3.TabIndex = 6; + this.groupBox3.TabStop = false; + this.groupBox3.Text = "Motor control"; + // + // rotationCountBox + // + this.rotationCountBox.Location = new System.Drawing.Point( 110, 280 ); + this.rotationCountBox.Name = "rotationCountBox"; + this.rotationCountBox.ReadOnly = true; + this.rotationCountBox.Size = new System.Drawing.Size( 100, 20 ); + this.rotationCountBox.TabIndex = 12; + // + // label16 + // + this.label16.AutoSize = true; + this.label16.Location = new System.Drawing.Point( 10, 283 ); + this.label16.Name = "label16"; + this.label16.Size = new System.Drawing.Size( 80, 13 ); + this.label16.TabIndex = 11; + this.label16.Text = "Rotation count:"; + this.toolTip.SetToolTip( this.label16, "Current position relative to last reset of motor\'s rotation sensor" ); + // + // blockTachoCountBox + // + this.blockTachoCountBox.Location = new System.Drawing.Point( 110, 255 ); + this.blockTachoCountBox.Name = "blockTachoCountBox"; + this.blockTachoCountBox.ReadOnly = true; + this.blockTachoCountBox.Size = new System.Drawing.Size( 100, 20 ); + this.blockTachoCountBox.TabIndex = 10; + // + // label15 + // + this.label15.AutoSize = true; + this.label15.Location = new System.Drawing.Point( 10, 258 ); + this.label15.Name = "label15"; + this.label15.Size = new System.Drawing.Size( 97, 13 ); + this.label15.TabIndex = 9; + this.label15.Text = "Block tacho count:"; + this.toolTip.SetToolTip( this.label15, "Current position relative to last programmed movement" ); + // + // tachoCountBox + // + this.tachoCountBox.Location = new System.Drawing.Point( 110, 230 ); + this.tachoCountBox.Name = "tachoCountBox"; + this.tachoCountBox.ReadOnly = true; + this.tachoCountBox.Size = new System.Drawing.Size( 100, 20 ); + this.tachoCountBox.TabIndex = 8; + // + // label14 + // + this.label14.AutoSize = true; + this.label14.Location = new System.Drawing.Point( 10, 233 ); + this.label14.Name = "label14"; + this.label14.Size = new System.Drawing.Size( 71, 13 ); + this.label14.TabIndex = 7; + this.label14.Text = "Tacho count:"; + this.toolTip.SetToolTip( this.label14, "Number of counts since last reset of motor counter" ); + // + // groupBox4 + // + this.groupBox4.Controls.Add( this.runStateCombo ); + this.groupBox4.Controls.Add( this.label13 ); + this.groupBox4.Controls.Add( this.regulationModeCombo ); + this.groupBox4.Controls.Add( this.label12 ); + this.groupBox4.Controls.Add( this.groupBox5 ); + this.groupBox4.Controls.Add( this.tachoLimitBox ); + this.groupBox4.Controls.Add( this.label11 ); + this.groupBox4.Controls.Add( this.turnRatioUpDown ); + this.groupBox4.Controls.Add( this.label10 ); + this.groupBox4.Controls.Add( this.label9 ); + this.groupBox4.Controls.Add( this.powerUpDown ); + this.groupBox4.Location = new System.Drawing.Point( 5, 45 ); + this.groupBox4.Name = "groupBox4"; + this.groupBox4.Size = new System.Drawing.Size( 265, 180 ); + this.groupBox4.TabIndex = 6; + this.groupBox4.TabStop = false; + this.groupBox4.Text = "Motor state"; + // + // runStateCombo + // + this.runStateCombo.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.runStateCombo.FormattingEnabled = true; + this.runStateCombo.Items.AddRange( new object[] { + "Idle", + "Rump-Up", + "Running", + "Rump-Down"} ); + this.runStateCombo.Location = new System.Drawing.Point( 100, 150 ); + this.runStateCombo.Name = "runStateCombo"; + this.runStateCombo.Size = new System.Drawing.Size( 140, 21 ); + this.runStateCombo.TabIndex = 14; + // + // label13 + // + this.label13.AutoSize = true; + this.label13.Location = new System.Drawing.Point( 10, 153 ); + this.label13.Name = "label13"; + this.label13.Size = new System.Drawing.Size( 56, 13 ); + this.label13.TabIndex = 13; + this.label13.Text = "Run state:"; + // + // regulationModeCombo + // + this.regulationModeCombo.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.regulationModeCombo.FormattingEnabled = true; + this.regulationModeCombo.Items.AddRange( new object[] { + "Idle", + "Speed", + "Sync"} ); + this.regulationModeCombo.Location = new System.Drawing.Point( 100, 125 ); + this.regulationModeCombo.Name = "regulationModeCombo"; + this.regulationModeCombo.Size = new System.Drawing.Size( 140, 21 ); + this.regulationModeCombo.TabIndex = 12; + // + // label12 + // + this.label12.AutoSize = true; + this.label12.Location = new System.Drawing.Point( 10, 128 ); + this.label12.Name = "label12"; + this.label12.Size = new System.Drawing.Size( 90, 13 ); + this.label12.TabIndex = 11; + this.label12.Text = "Regulation mode:"; + // + // groupBox5 + // + this.groupBox5.Controls.Add( this.modeRegulatedBox ); + this.groupBox5.Controls.Add( this.modeBrakeCheck ); + this.groupBox5.Controls.Add( this.modeOnCheck ); + this.groupBox5.Location = new System.Drawing.Point( 5, 70 ); + this.groupBox5.Name = "groupBox5"; + this.groupBox5.Size = new System.Drawing.Size( 255, 45 ); + this.groupBox5.TabIndex = 10; + this.groupBox5.TabStop = false; + this.groupBox5.Text = "Mode"; + // + // modeRegulatedBox + // + this.modeRegulatedBox.AutoSize = true; + this.modeRegulatedBox.Location = new System.Drawing.Point( 170, 20 ); + this.modeRegulatedBox.Name = "modeRegulatedBox"; + this.modeRegulatedBox.Size = new System.Drawing.Size( 75, 17 ); + this.modeRegulatedBox.TabIndex = 2; + this.modeRegulatedBox.Text = "Regulated"; + this.modeRegulatedBox.UseVisualStyleBackColor = true; + // + // modeBrakeCheck + // + this.modeBrakeCheck.AutoSize = true; + this.modeBrakeCheck.Location = new System.Drawing.Point( 90, 20 ); + this.modeBrakeCheck.Name = "modeBrakeCheck"; + this.modeBrakeCheck.Size = new System.Drawing.Size( 54, 17 ); + this.modeBrakeCheck.TabIndex = 1; + this.modeBrakeCheck.Text = "Brake"; + this.modeBrakeCheck.UseVisualStyleBackColor = true; + // + // modeOnCheck + // + this.modeOnCheck.AutoSize = true; + this.modeOnCheck.Checked = true; + this.modeOnCheck.CheckState = System.Windows.Forms.CheckState.Checked; + this.modeOnCheck.Location = new System.Drawing.Point( 10, 20 ); + this.modeOnCheck.Name = "modeOnCheck"; + this.modeOnCheck.Size = new System.Drawing.Size( 40, 17 ); + this.modeOnCheck.TabIndex = 0; + this.modeOnCheck.Text = "On"; + this.modeOnCheck.UseVisualStyleBackColor = true; + // + // tachoLimitBox + // + this.tachoLimitBox.Location = new System.Drawing.Point( 140, 45 ); + this.tachoLimitBox.Name = "tachoLimitBox"; + this.tachoLimitBox.Size = new System.Drawing.Size( 100, 20 ); + this.tachoLimitBox.TabIndex = 9; + this.tachoLimitBox.Text = "1000"; + // + // label11 + // + this.label11.AutoSize = true; + this.label11.Location = new System.Drawing.Point( 10, 48 ); + this.label11.Name = "label11"; + this.label11.Size = new System.Drawing.Size( 130, 13 ); + this.label11.TabIndex = 8; + this.label11.Text = "Tacho limit (0 run forever):"; + // + // turnRatioUpDown + // + this.turnRatioUpDown.Location = new System.Drawing.Point( 180, 20 ); + this.turnRatioUpDown.Minimum = new decimal( new int[] { + 100, + 0, + 0, + -2147483648} ); + this.turnRatioUpDown.Name = "turnRatioUpDown"; + this.turnRatioUpDown.Size = new System.Drawing.Size( 60, 20 ); + this.turnRatioUpDown.TabIndex = 7; + this.turnRatioUpDown.Value = new decimal( new int[] { + 50, + 0, + 0, + 0} ); + // + // label10 + // + this.label10.AutoSize = true; + this.label10.Location = new System.Drawing.Point( 125, 23 ); + this.label10.Name = "label10"; + this.label10.Size = new System.Drawing.Size( 55, 13 ); + this.label10.TabIndex = 6; + this.label10.Text = "Turn ratio:"; + // + // label9 + // + this.label9.AutoSize = true; + this.label9.Location = new System.Drawing.Point( 10, 23 ); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size( 40, 13 ); + this.label9.TabIndex = 4; + this.label9.Text = "Power:"; + // + // powerUpDown + // + this.powerUpDown.Location = new System.Drawing.Point( 50, 20 ); + this.powerUpDown.Minimum = new decimal( new int[] { + 100, + 0, + 0, + -2147483648} ); + this.powerUpDown.Name = "powerUpDown"; + this.powerUpDown.Size = new System.Drawing.Size( 60, 20 ); + this.powerUpDown.TabIndex = 5; + this.powerUpDown.Value = new decimal( new int[] { + 70, + 0, + 0, + 0} ); + // + // getMotorStateButton + // + this.getMotorStateButton.Enabled = false; + this.getMotorStateButton.Location = new System.Drawing.Point( 210, 19 ); + this.getMotorStateButton.Name = "getMotorStateButton"; + this.getMotorStateButton.Size = new System.Drawing.Size( 60, 23 ); + this.getMotorStateButton.TabIndex = 3; + this.getMotorStateButton.Text = "&Get state"; + this.getMotorStateButton.UseVisualStyleBackColor = true; + this.getMotorStateButton.Click += new System.EventHandler( this.getMotorStateButton_Click ); + // + // setMotorStateButton + // + this.setMotorStateButton.Enabled = false; + this.setMotorStateButton.Location = new System.Drawing.Point( 145, 19 ); + this.setMotorStateButton.Name = "setMotorStateButton"; + this.setMotorStateButton.Size = new System.Drawing.Size( 60, 23 ); + this.setMotorStateButton.TabIndex = 2; + this.setMotorStateButton.Text = "&Set state"; + this.setMotorStateButton.UseVisualStyleBackColor = true; + this.setMotorStateButton.Click += new System.EventHandler( this.setMotorStateButton_Click ); + // + // resetMotorButton + // + this.resetMotorButton.Enabled = false; + this.resetMotorButton.Location = new System.Drawing.Point( 80, 19 ); + this.resetMotorButton.Name = "resetMotorButton"; + this.resetMotorButton.Size = new System.Drawing.Size( 60, 23 ); + this.resetMotorButton.TabIndex = 1; + this.resetMotorButton.Text = "&Reset"; + this.resetMotorButton.UseVisualStyleBackColor = true; + this.resetMotorButton.Click += new System.EventHandler( this.resetMotorButton_Click ); + // + // motorCombo + // + this.motorCombo.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.motorCombo.FormattingEnabled = true; + this.motorCombo.Items.AddRange( new object[] { + "Motor A", + "Motor B", + "Motor C"} ); + this.motorCombo.Location = new System.Drawing.Point( 10, 20 ); + this.motorCombo.Name = "motorCombo"; + this.motorCombo.Size = new System.Drawing.Size( 65, 21 ); + this.motorCombo.TabIndex = 0; + // + // toolTip + // + this.toolTip.BackColor = System.Drawing.Color.FromArgb( ( (int) ( ( (byte) ( 192 ) ) ) ), ( (int) ( ( (byte) ( 255 ) ) ) ), ( (int) ( ( (byte) ( 192 ) ) ) ) ); + // + // groupBox6 + // + this.groupBox6.Controls.Add( this.setInputModeButton ); + this.groupBox6.Controls.Add( this.sensorModeCombo ); + this.groupBox6.Controls.Add( this.label25 ); + this.groupBox6.Controls.Add( this.sensorTypeCombo ); + this.groupBox6.Controls.Add( this.label23 ); + this.groupBox6.Controls.Add( this.label24 ); + this.groupBox6.Controls.Add( this.calibratedInputBox ); + this.groupBox6.Controls.Add( this.label22 ); + this.groupBox6.Controls.Add( this.scaledInputBox ); + this.groupBox6.Controls.Add( this.label21 ); + this.groupBox6.Controls.Add( this.normalizedInputBox ); + this.groupBox6.Controls.Add( this.label20 ); + this.groupBox6.Controls.Add( this.rawInputBox ); + this.groupBox6.Controls.Add( this.label19 ); + this.groupBox6.Controls.Add( this.sensorModeBox ); + this.groupBox6.Controls.Add( this.label18 ); + this.groupBox6.Controls.Add( this.sensorTypeBox ); + this.groupBox6.Controls.Add( this.label17 ); + this.groupBox6.Controls.Add( this.calibratedCheck ); + this.groupBox6.Controls.Add( this.validCheck ); + this.groupBox6.Controls.Add( this.getInputButton ); + this.groupBox6.Controls.Add( this.inputPortCombo ); + this.groupBox6.Location = new System.Drawing.Point( 585, 10 ); + this.groupBox6.Name = "groupBox6"; + this.groupBox6.Size = new System.Drawing.Size( 170, 310 ); + this.groupBox6.TabIndex = 8; + this.groupBox6.TabStop = false; + this.groupBox6.Text = "Input ports"; + // + // setInputModeButton + // + this.setInputModeButton.Enabled = false; + this.setInputModeButton.Location = new System.Drawing.Point( 80, 283 ); + this.setInputModeButton.Name = "setInputModeButton"; + this.setInputModeButton.Size = new System.Drawing.Size( 80, 23 ); + this.setInputModeButton.TabIndex = 21; + this.setInputModeButton.Text = "Set &mode"; + this.setInputModeButton.UseVisualStyleBackColor = true; + this.setInputModeButton.Click += new System.EventHandler( this.setInputModeButton_Click ); + // + // sensorModeCombo + // + this.sensorModeCombo.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.sensorModeCombo.FormattingEnabled = true; + this.sensorModeCombo.Items.AddRange( new object[] { + "Raw", + "Boolean", + "Transition Counter", + "Periodic Counter", + "PCT Full Scale", + "Celsius", + "Fahrenheit", + "Angle Steps"} ); + this.sensorModeCombo.Location = new System.Drawing.Point( 80, 260 ); + this.sensorModeCombo.Name = "sensorModeCombo"; + this.sensorModeCombo.Size = new System.Drawing.Size( 80, 21 ); + this.sensorModeCombo.TabIndex = 20; + // + // label25 + // + this.label25.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + this.label25.Location = new System.Drawing.Point( 10, 227 ); + this.label25.Name = "label25"; + this.label25.Size = new System.Drawing.Size( 150, 2 ); + this.label25.TabIndex = 19; + // + // sensorTypeCombo + // + this.sensorTypeCombo.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.sensorTypeCombo.FormattingEnabled = true; + this.sensorTypeCombo.Items.AddRange( new object[] { + "No Sensor", + "Switch", + "Temperature", + "Reflection", + "Angle", + "Light Active", + "Light Inactive", + "Sound (dB)", + "Sound (dBA)", + "Custom", + "Lowspeed", + "Lowspeed 9V"} ); + this.sensorTypeCombo.Location = new System.Drawing.Point( 80, 235 ); + this.sensorTypeCombo.Name = "sensorTypeCombo"; + this.sensorTypeCombo.Size = new System.Drawing.Size( 80, 21 ); + this.sensorTypeCombo.TabIndex = 18; + // + // label23 + // + this.label23.AutoSize = true; + this.label23.Location = new System.Drawing.Point( 10, 263 ); + this.label23.Name = "label23"; + this.label23.Size = new System.Drawing.Size( 72, 13 ); + this.label23.TabIndex = 17; + this.label23.Text = "Sensor mode:"; + // + // label24 + // + this.label24.AutoSize = true; + this.label24.Location = new System.Drawing.Point( 10, 238 ); + this.label24.Name = "label24"; + this.label24.Size = new System.Drawing.Size( 66, 13 ); + this.label24.TabIndex = 16; + this.label24.Text = "Sensor type:"; + // + // calibratedInputBox + // + this.calibratedInputBox.Location = new System.Drawing.Point( 80, 200 ); + this.calibratedInputBox.Name = "calibratedInputBox"; + this.calibratedInputBox.ReadOnly = true; + this.calibratedInputBox.Size = new System.Drawing.Size( 80, 20 ); + this.calibratedInputBox.TabIndex = 15; + // + // label22 + // + this.label22.AutoSize = true; + this.label22.Location = new System.Drawing.Point( 10, 203 ); + this.label22.Name = "label22"; + this.label22.Size = new System.Drawing.Size( 57, 13 ); + this.label22.TabIndex = 14; + this.label22.Text = "Calibrated:"; + // + // scaledInputBox + // + this.scaledInputBox.Location = new System.Drawing.Point( 80, 175 ); + this.scaledInputBox.Name = "scaledInputBox"; + this.scaledInputBox.ReadOnly = true; + this.scaledInputBox.Size = new System.Drawing.Size( 80, 20 ); + this.scaledInputBox.TabIndex = 13; + // + // label21 + // + this.label21.AutoSize = true; + this.label21.Location = new System.Drawing.Point( 10, 178 ); + this.label21.Name = "label21"; + this.label21.Size = new System.Drawing.Size( 43, 13 ); + this.label21.TabIndex = 12; + this.label21.Text = "Scaled:"; + // + // normalizedInputBox + // + this.normalizedInputBox.Location = new System.Drawing.Point( 80, 150 ); + this.normalizedInputBox.Name = "normalizedInputBox"; + this.normalizedInputBox.ReadOnly = true; + this.normalizedInputBox.Size = new System.Drawing.Size( 80, 20 ); + this.normalizedInputBox.TabIndex = 11; + // + // label20 + // + this.label20.AutoSize = true; + this.label20.Location = new System.Drawing.Point( 10, 153 ); + this.label20.Name = "label20"; + this.label20.Size = new System.Drawing.Size( 62, 13 ); + this.label20.TabIndex = 10; + this.label20.Text = "Normalized:"; + // + // rawInputBox + // + this.rawInputBox.Location = new System.Drawing.Point( 80, 125 ); + this.rawInputBox.Name = "rawInputBox"; + this.rawInputBox.ReadOnly = true; + this.rawInputBox.Size = new System.Drawing.Size( 80, 20 ); + this.rawInputBox.TabIndex = 9; + // + // label19 + // + this.label19.AutoSize = true; + this.label19.Location = new System.Drawing.Point( 10, 128 ); + this.label19.Name = "label19"; + this.label19.Size = new System.Drawing.Size( 32, 13 ); + this.label19.TabIndex = 8; + this.label19.Text = "Row:"; + // + // sensorModeBox + // + this.sensorModeBox.Location = new System.Drawing.Point( 80, 100 ); + this.sensorModeBox.Name = "sensorModeBox"; + this.sensorModeBox.ReadOnly = true; + this.sensorModeBox.Size = new System.Drawing.Size( 80, 20 ); + this.sensorModeBox.TabIndex = 7; + // + // label18 + // + this.label18.AutoSize = true; + this.label18.Location = new System.Drawing.Point( 10, 103 ); + this.label18.Name = "label18"; + this.label18.Size = new System.Drawing.Size( 72, 13 ); + this.label18.TabIndex = 6; + this.label18.Text = "Sensor mode:"; + // + // sensorTypeBox + // + this.sensorTypeBox.Location = new System.Drawing.Point( 80, 75 ); + this.sensorTypeBox.Name = "sensorTypeBox"; + this.sensorTypeBox.ReadOnly = true; + this.sensorTypeBox.Size = new System.Drawing.Size( 80, 20 ); + this.sensorTypeBox.TabIndex = 5; + // + // label17 + // + this.label17.AutoSize = true; + this.label17.Location = new System.Drawing.Point( 10, 78 ); + this.label17.Name = "label17"; + this.label17.Size = new System.Drawing.Size( 66, 13 ); + this.label17.TabIndex = 4; + this.label17.Text = "Sensor type:"; + // + // calibratedCheck + // + this.calibratedCheck.AutoSize = true; + this.calibratedCheck.Enabled = false; + this.calibratedCheck.Location = new System.Drawing.Point( 80, 50 ); + this.calibratedCheck.Name = "calibratedCheck"; + this.calibratedCheck.Size = new System.Drawing.Size( 84, 17 ); + this.calibratedCheck.TabIndex = 3; + this.calibratedCheck.Text = "Is Calibrated"; + this.calibratedCheck.UseVisualStyleBackColor = true; + // + // validCheck + // + this.validCheck.AutoSize = true; + this.validCheck.Enabled = false; + this.validCheck.Location = new System.Drawing.Point( 10, 50 ); + this.validCheck.Name = "validCheck"; + this.validCheck.Size = new System.Drawing.Size( 60, 17 ); + this.validCheck.TabIndex = 2; + this.validCheck.Text = "Is Valid"; + this.validCheck.UseVisualStyleBackColor = true; + // + // getInputButton + // + this.getInputButton.Enabled = false; + this.getInputButton.Location = new System.Drawing.Point( 95, 19 ); + this.getInputButton.Name = "getInputButton"; + this.getInputButton.Size = new System.Drawing.Size( 65, 23 ); + this.getInputButton.TabIndex = 1; + this.getInputButton.Text = "Get &input"; + this.getInputButton.UseVisualStyleBackColor = true; + this.getInputButton.Click += new System.EventHandler( this.getInputButton_Click ); + // + // inputPortCombo + // + this.inputPortCombo.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.inputPortCombo.FormattingEnabled = true; + this.inputPortCombo.Items.AddRange( new object[] { + "Port 1", + "Port 2", + "Port 3", + "Port 4"} ); + this.inputPortCombo.Location = new System.Drawing.Point( 10, 20 ); + this.inputPortCombo.Name = "inputPortCombo"; + this.inputPortCombo.Size = new System.Drawing.Size( 75, 21 ); + this.inputPortCombo.TabIndex = 0; + // + // MainForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF( 6F, 13F ); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size( 772, 329 ); + this.Controls.Add( this.groupBox6 ); + this.Controls.Add( this.groupBox3 ); + this.Controls.Add( this.groupBox2 ); + this.Controls.Add( this.groupBox1 ); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.MaximizeBox = false; + this.Name = "MainForm"; + this.ShowIcon = false; + this.Text = "Lego NXT Test"; + this.groupBox1.ResumeLayout( false ); + this.groupBox1.PerformLayout( ); + this.groupBox2.ResumeLayout( false ); + this.groupBox2.PerformLayout( ); + this.groupBox3.ResumeLayout( false ); + this.groupBox3.PerformLayout( ); + this.groupBox4.ResumeLayout( false ); + this.groupBox4.PerformLayout( ); + this.groupBox5.ResumeLayout( false ); + this.groupBox5.PerformLayout( ); + ( (System.ComponentModel.ISupportInitialize) ( this.turnRatioUpDown ) ).EndInit( ); + ( (System.ComponentModel.ISupportInitialize) ( this.powerUpDown ) ).EndInit( ); + this.groupBox6.ResumeLayout( false ); + this.groupBox6.PerformLayout( ); + this.ResumeLayout( false ); + + } + + #endregion + + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.TextBox portBox; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Button connectButton; + private System.Windows.Forms.Button disconnectButton; + private System.Windows.Forms.GroupBox groupBox2; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.TextBox protocolBox; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.TextBox firmwareBox; + private System.Windows.Forms.TextBox deviceNameBox; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.TextBox freeUserFlashBox; + private System.Windows.Forms.Label label7; + private System.Windows.Forms.TextBox btSignalStrengthBox; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.TextBox btAddressBox; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.TextBox batteryLevelBox; + private System.Windows.Forms.Label label8; + private System.Windows.Forms.GroupBox groupBox3; + private System.Windows.Forms.ComboBox motorCombo; + private System.Windows.Forms.Button getMotorStateButton; + private System.Windows.Forms.Button setMotorStateButton; + private System.Windows.Forms.Button resetMotorButton; + private System.Windows.Forms.Label label9; + private System.Windows.Forms.GroupBox groupBox4; + private System.Windows.Forms.NumericUpDown powerUpDown; + private System.Windows.Forms.Label label10; + private System.Windows.Forms.NumericUpDown turnRatioUpDown; + private System.Windows.Forms.TextBox tachoLimitBox; + private System.Windows.Forms.Label label11; + private System.Windows.Forms.GroupBox groupBox5; + private System.Windows.Forms.CheckBox modeOnCheck; + private System.Windows.Forms.CheckBox modeRegulatedBox; + private System.Windows.Forms.CheckBox modeBrakeCheck; + private System.Windows.Forms.ComboBox regulationModeCombo; + private System.Windows.Forms.Label label12; + private System.Windows.Forms.ComboBox runStateCombo; + private System.Windows.Forms.Label label13; + private System.Windows.Forms.Label label15; + private System.Windows.Forms.TextBox tachoCountBox; + private System.Windows.Forms.Label label14; + private System.Windows.Forms.Label label16; + private System.Windows.Forms.TextBox blockTachoCountBox; + private System.Windows.Forms.TextBox rotationCountBox; + private System.Windows.Forms.ToolTip toolTip; + private System.Windows.Forms.GroupBox groupBox6; + private System.Windows.Forms.ComboBox inputPortCombo; + private System.Windows.Forms.Button getInputButton; + private System.Windows.Forms.CheckBox calibratedCheck; + private System.Windows.Forms.CheckBox validCheck; + private System.Windows.Forms.TextBox sensorModeBox; + private System.Windows.Forms.Label label18; + private System.Windows.Forms.TextBox sensorTypeBox; + private System.Windows.Forms.Label label17; + private System.Windows.Forms.TextBox rawInputBox; + private System.Windows.Forms.Label label19; + private System.Windows.Forms.Label label20; + private System.Windows.Forms.Label label21; + private System.Windows.Forms.TextBox normalizedInputBox; + private System.Windows.Forms.TextBox calibratedInputBox; + private System.Windows.Forms.Label label22; + private System.Windows.Forms.TextBox scaledInputBox; + private System.Windows.Forms.ComboBox sensorTypeCombo; + private System.Windows.Forms.Label label23; + private System.Windows.Forms.Label label24; + private System.Windows.Forms.ComboBox sensorModeCombo; + private System.Windows.Forms.Label label25; + private System.Windows.Forms.Button setInputModeButton; + } +} + diff --git a/Samples/Robotics/Lego/NXTTest/MainForm.cs b/Samples/Robotics/Lego/NXTTest/MainForm.cs new file mode 100644 index 00000000..10c812e9 --- /dev/null +++ b/Samples/Robotics/Lego/NXTTest/MainForm.cs @@ -0,0 +1,313 @@ +// Lego Mindstorm NXT test application +// AForge.NET Framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2011 +// contacts@aforgenet.com +// + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; + +using AForge; +using AForge.Robotics.Lego; + +namespace NXTTest +{ + public partial class MainForm : Form + { + // NXT brick + private NXTBrick nxt = new NXTBrick( ); + // rugulation modes + private NXTBrick.MotorRegulationMode[] regulationModes = new NXTBrick.MotorRegulationMode[] { + NXTBrick.MotorRegulationMode.Idle, + NXTBrick.MotorRegulationMode.Speed, + NXTBrick.MotorRegulationMode.Sync }; + // run states + private NXTBrick.MotorRunState[] runStates = new NXTBrick.MotorRunState[] { + NXTBrick.MotorRunState.Idle, + NXTBrick.MotorRunState.RampUp, + NXTBrick.MotorRunState.Running, + NXTBrick.MotorRunState.RampDown }; + // sensor types + private NXTBrick.SensorType[] sensorTypes = new NXTBrick.SensorType[] { + NXTBrick.SensorType.NoSensor, NXTBrick.SensorType.Switch, + NXTBrick.SensorType.Temperature, NXTBrick.SensorType.Reflection, + NXTBrick.SensorType.Angle, NXTBrick.SensorType.LightActive, + NXTBrick.SensorType.LightInactive, NXTBrick.SensorType.SoundDB, + NXTBrick.SensorType.SoundDBA, NXTBrick.SensorType.Custom, + NXTBrick.SensorType.Lowspeed, NXTBrick.SensorType.Lowspeed9V }; + // sensor modes + private NXTBrick.SensorMode[] sensorModes = new NXTBrick.SensorMode[] { + NXTBrick.SensorMode.Raw, NXTBrick.SensorMode.Boolean, + NXTBrick.SensorMode.TransitionCounter, NXTBrick.SensorMode.PeriodicCounter, + NXTBrick.SensorMode.PCTFullScale, NXTBrick.SensorMode.Celsius, + NXTBrick.SensorMode.Fahrenheit, NXTBrick.SensorMode.AngleSteps }; + + // Constructor + public MainForm( ) + { + InitializeComponent( ); + + // setup defaults + portBox.Text = "COM8"; + motorCombo.SelectedIndex = 0; + regulationModeCombo.SelectedIndex = 0; + runStateCombo.SelectedIndex = 2; + inputPortCombo.SelectedIndex = 0; + sensorTypeCombo.SelectedIndex = 0; + sensorModeCombo.SelectedIndex = 0; + + nxt.MessageSent += new MessageTransferHandler( nxt_MessageSent ); + nxt.MessageRead += new MessageTransferHandler( nxt_MessageRead ); + } + + // On message sent by NXT brick + private void nxt_MessageSent( object sender, CommunicationBufferEventArgs eventArgs ) + { + System.Diagnostics.Debug.WriteLine( string.Format( ">> [ {0} ]", eventArgs.GetMessageString( ) ) ); + } + + // On message received by NXT brick + private void nxt_MessageRead( object sender, CommunicationBufferEventArgs eventArgs ) + { + System.Diagnostics.Debug.WriteLine( string.Format( "<< [ {0} ]", eventArgs.GetMessageString( ) ) ); + } + + // On "Connect" button click + private void connectButton_Click( object sender, EventArgs e ) + { + if ( nxt.Connect( portBox.Text ) ) + { + System.Diagnostics.Debug.WriteLine( "Connected successfully" ); + + CollectInformation( ); + + // enable controls + resetMotorButton.Enabled = true; + setMotorStateButton.Enabled = true; + getMotorStateButton.Enabled = true; + getInputButton.Enabled = true; + setInputModeButton.Enabled = true; + + connectButton.Enabled = false; + disconnectButton.Enabled = true; + + nxt.PlayTone( 100, 200, false ); + } + else + { + MessageBox.Show( "Failed connecting to NXT device", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error ); + } + } + + // On "Disconnect" button click + private void disconnectButton_Click( object sender, EventArgs e ) + { + nxt.Disconnect( ); + + // clear information + firmwareBox.Text = string.Empty; + protocolBox.Text = string.Empty; + deviceNameBox.Text = string.Empty; + btAddressBox.Text = string.Empty; + btSignalStrengthBox.Text = string.Empty; + freeUserFlashBox.Text = string.Empty; + batteryLevelBox.Text = string.Empty; + + tachoCountBox.Text = string.Empty; + blockTachoCountBox.Text = string.Empty; + rotationCountBox.Text = string.Empty; + + validCheck.Checked = false; + calibratedCheck.Checked = false; + sensorTypeBox.Text = string.Empty; + sensorModeBox.Text = string.Empty; + rawInputBox.Text = string.Empty; + normalizedInputBox.Text = string.Empty; + scaledInputBox.Text = string.Empty; + calibratedInputBox.Text = string.Empty; + + // disable controls + resetMotorButton.Enabled = false; + setMotorStateButton.Enabled = false; + getMotorStateButton.Enabled = false; + getInputButton.Enabled = false; + setInputModeButton.Enabled = false; + + connectButton.Enabled = true; + disconnectButton.Enabled = false; + } + + // Collect information about Lego NXT brick + private void CollectInformation( ) + { + // ------------------------------------------------ + // get NXT version + string firmwareVersion; + string protocolVersion; + + if ( nxt.GetVersion( out protocolVersion, out firmwareVersion ) ) + { + firmwareBox.Text = firmwareVersion; + protocolBox.Text = protocolVersion; + } + else + { + System.Diagnostics.Debug.WriteLine( "Failed getting verion" ); + } + + // ------------------------------------------------ + // get device information + string deviceName; + byte[] btAddress; + int btSignalStrength; + int freeUserFlesh; + + if ( nxt.GetDeviceInformation( out deviceName, out btAddress, out btSignalStrength, out freeUserFlesh ) ) + { + deviceNameBox.Text = deviceName; + + btAddressBox.Text = string.Format( "{0} {1} {2} {3} {4} {5} {6}", + btAddress[0].ToString( "X2" ), + btAddress[1].ToString( "X2" ), + btAddress[2].ToString( "X2" ), + btAddress[3].ToString( "X2" ), + btAddress[4].ToString( "X2" ), + btAddress[5].ToString( "X2" ), + btAddress[6].ToString( "X2" ) + ); + + btSignalStrengthBox.Text = btSignalStrength.ToString( ); + freeUserFlashBox.Text = freeUserFlesh.ToString( ); + } + else + { + System.Diagnostics.Debug.WriteLine( "Failed getting device information" ); + } + + + // ------------------------------------------------ + // get battery level + int batteryLevel; + + if ( nxt.GetBatteryPower( out batteryLevel ) ) + { + batteryLevelBox.Text = batteryLevel.ToString( ); + } + else + { + System.Diagnostics.Debug.WriteLine( "Failed getting battery level" ); + } + } + + // Returns selected motor + private NXTBrick.Motor GetSelectedMotor( ) + { + return (NXTBrick.Motor) motorCombo.SelectedIndex; + } + + // Returns selected input port + private NXTBrick.Sensor GetSelectedSensor( ) + { + return (NXTBrick.Sensor) inputPortCombo.SelectedIndex; + } + + // On motor "Reset" button click + private void resetMotorButton_Click( object sender, EventArgs e ) + { + if ( nxt.ResetMotorPosition( GetSelectedMotor( ), false, false ) != true ) + { + System.Diagnostics.Debug.WriteLine( "Failed reseting motor" ); + } + } + + // On motor "Set state" button click + private void setMotorStateButton_Click( object sender, EventArgs e ) + { + NXTBrick.MotorState motorState = new NXTBrick.MotorState( ); + + // prepare motor's state to set + motorState.Power = (sbyte) powerUpDown.Value; + motorState.TurnRatio = (sbyte) turnRatioUpDown.Value; + motorState.Mode = ( ( modeOnCheck.Checked ) ? NXTBrick.MotorMode.On : NXTBrick.MotorMode.None ) | + ( ( modeBrakeCheck.Checked ) ? NXTBrick.MotorMode.Brake : NXTBrick.MotorMode.None ) | + ( ( modeRegulatedBox.Checked ) ? NXTBrick.MotorMode.Regulated : NXTBrick.MotorMode.None ); + motorState.Regulation = regulationModes[regulationModeCombo.SelectedIndex]; + motorState.RunState = runStates[runStateCombo.SelectedIndex]; + // tacho limit + try + { + motorState.TachoLimit = Math.Max( 0, Math.Min( 100000, int.Parse( tachoLimitBox.Text ) ) ); + } + catch + { + motorState.TachoLimit = 1000; + tachoLimitBox.Text = motorState.TachoLimit.ToString( ); + } + + // set motor's state + if ( nxt.SetMotorState( GetSelectedMotor( ), motorState, false ) != true ) + { + System.Diagnostics.Debug.WriteLine( "Failed setting motor state" ); + } + } + + // On motor "Get state" button click + private void getMotorStateButton_Click( object sender, EventArgs e ) + { + NXTBrick.MotorState motorState; + + // get motor's state + if ( nxt.GetMotorState( GetSelectedMotor( ), out motorState ) ) + { + tachoCountBox.Text = motorState.TachoCount.ToString( ); + blockTachoCountBox.Text = motorState.BlockTachoCount.ToString( ); + rotationCountBox.Text = motorState.RotationCount.ToString( ); + } + else + { + System.Diagnostics.Debug.WriteLine( "Failed getting motor state" ); + } + } + + // On "Get input" button click + private void getInputButton_Click( object sender, EventArgs e ) + { + NXTBrick.SensorValues sensorValues; + + // get input values + if ( nxt.GetSensorValue( GetSelectedSensor( ), out sensorValues ) ) + { + validCheck.Checked = sensorValues.IsValid; + calibratedCheck.Checked = sensorValues.IsCalibrated; + sensorTypeBox.Text = sensorValues.SensorType.ToString( ); + sensorModeBox.Text = sensorValues.SensorMode.ToString( ); + rawInputBox.Text = sensorValues.Raw.ToString( ); + normalizedInputBox.Text = sensorValues.Normalized.ToString( ); + scaledInputBox.Text = sensorValues.Scaled.ToString( ); + calibratedInputBox.Text = sensorValues.Calibrated.ToString( ); + } + else + { + System.Diagnostics.Debug.WriteLine( "Failed getting input values" ); + } + } + + // On "Set mode" button click + private void setInputModeButton_Click( object sender, EventArgs e ) + { + if ( nxt.SetSensorMode( GetSelectedSensor( ), + sensorTypes[sensorTypeCombo.SelectedIndex], + sensorModes[sensorModeCombo.SelectedIndex], false ) != true ) + { + System.Diagnostics.Debug.WriteLine( "Failed setting input mode" ); + } + } + } +} \ No newline at end of file diff --git a/Samples/Robotics/Lego/NXTTest/MainForm.resx b/Samples/Robotics/Lego/NXTTest/MainForm.resx new file mode 100644 index 00000000..b6f46eb8 --- /dev/null +++ b/Samples/Robotics/Lego/NXTTest/MainForm.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 17, 17 + + \ No newline at end of file diff --git a/Samples/Robotics/Lego/NXTTest/NXTTest.csproj b/Samples/Robotics/Lego/NXTTest/NXTTest.csproj new file mode 100644 index 00000000..d1962a2a --- /dev/null +++ b/Samples/Robotics/Lego/NXTTest/NXTTest.csproj @@ -0,0 +1,142 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {7603E9F3-51C9-48D0-93AB-1512DCFF9B88} + WinExe + Properties + NXTTest + NXTTest + + + 3.5 + v2.0 + + + false + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + true + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + False + ..\..\..\..\Release\AForge.dll + + + False + ..\..\..\..\Release\AForge.Robotics.Lego.dll + + + + + + + + + + + Form + + + MainForm.cs + + + + + Designer + MainForm.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + True + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 2.0 %28x86%29 + false + + + False + .NET Framework 3.0 %28x86%29 + false + + + False + .NET Framework 3.5 + true + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 3.1 + true + + + + + \ No newline at end of file diff --git a/Samples/Robotics/Lego/NXTTest/NXTTest.sln b/Samples/Robotics/Lego/NXTTest/NXTTest.sln new file mode 100644 index 00000000..affb760c --- /dev/null +++ b/Samples/Robotics/Lego/NXTTest/NXTTest.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual C# Express 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NXTTest", "NXTTest.csproj", "{7603E9F3-51C9-48D0-93AB-1512DCFF9B88}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {7603E9F3-51C9-48D0-93AB-1512DCFF9B88}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7603E9F3-51C9-48D0-93AB-1512DCFF9B88}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7603E9F3-51C9-48D0-93AB-1512DCFF9B88}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7603E9F3-51C9-48D0-93AB-1512DCFF9B88}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Samples/Robotics/Lego/NXTTest/Program.cs b/Samples/Robotics/Lego/NXTTest/Program.cs new file mode 100644 index 00000000..a535ca81 --- /dev/null +++ b/Samples/Robotics/Lego/NXTTest/Program.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Windows.Forms; + +namespace NXTTest +{ + static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main( ) + { + Application.EnableVisualStyles( ); + Application.SetCompatibleTextRenderingDefault( false ); + Application.Run( new MainForm( ) ); + } + } +} \ No newline at end of file diff --git a/Samples/Robotics/Lego/NXTTest/Properties/AssemblyInfo.cs b/Samples/Robotics/Lego/NXTTest/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..ef029670 --- /dev/null +++ b/Samples/Robotics/Lego/NXTTest/Properties/AssemblyInfo.cs @@ -0,0 +1,33 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle( "Lego NXT Test" )] +[assembly: AssemblyDescription( "Lego NXT Test sample" )] +[assembly: AssemblyConfiguration( "" )] +[assembly: AssemblyCompany( "AForge" )] +[assembly: AssemblyProduct( "AForge.NET" )] +[assembly: AssemblyCopyright( "AForge © 2007" )] +[assembly: AssemblyTrademark( "" )] +[assembly: AssemblyCulture( "" )] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible( false )] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid( "829c5e67-3000-4a51-a812-9125b0dfdf51" )] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +[assembly: AssemblyVersion( "2.0.0.0" )] +[assembly: AssemblyFileVersion( "2.0.0.0" )] diff --git a/Samples/Robotics/Lego/NXTTest/Properties/Resources.Designer.cs b/Samples/Robotics/Lego/NXTTest/Properties/Resources.Designer.cs new file mode 100644 index 00000000..b02a6ab7 --- /dev/null +++ b/Samples/Robotics/Lego/NXTTest/Properties/Resources.Designer.cs @@ -0,0 +1,63 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.1433 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace NXTTest.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("NXTTest.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + } +} diff --git a/Samples/Robotics/Lego/NXTTest/Properties/Resources.resx b/Samples/Robotics/Lego/NXTTest/Properties/Resources.resx new file mode 100644 index 00000000..25a61211 --- /dev/null +++ b/Samples/Robotics/Lego/NXTTest/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Samples/Robotics/Lego/NXTTest/Properties/Settings.Designer.cs b/Samples/Robotics/Lego/NXTTest/Properties/Settings.Designer.cs new file mode 100644 index 00000000..0dc3c919 --- /dev/null +++ b/Samples/Robotics/Lego/NXTTest/Properties/Settings.Designer.cs @@ -0,0 +1,26 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.1433 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace NXTTest.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "9.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + } +} diff --git a/Samples/Robotics/Lego/NXTTest/Properties/Settings.settings b/Samples/Robotics/Lego/NXTTest/Properties/Settings.settings new file mode 100644 index 00000000..39645652 --- /dev/null +++ b/Samples/Robotics/Lego/NXTTest/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Samples/Robotics/Lego/RCXTest/MainForm.Designer.cs b/Samples/Robotics/Lego/RCXTest/MainForm.Designer.cs new file mode 100644 index 00000000..b7423424 --- /dev/null +++ b/Samples/Robotics/Lego/RCXTest/MainForm.Designer.cs @@ -0,0 +1,530 @@ +namespace RCXTest +{ + partial class MainForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose( bool disposing ) + { + if ( disposing && ( components != null ) ) + { + components.Dispose( ); + } + base.Dispose( disposing ); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent( ) + { + this.connectButton = new System.Windows.Forms.Button( ); + this.disconnectButton = new System.Windows.Forms.Button( ); + this.groupBox1 = new System.Windows.Forms.GroupBox( ); + this.groupBox2 = new System.Windows.Forms.GroupBox( ); + this.powerBox = new System.Windows.Forms.TextBox( ); + this.label3 = new System.Windows.Forms.Label( ); + this.firmwareVersionBox = new System.Windows.Forms.TextBox( ); + this.label2 = new System.Windows.Forms.Label( ); + this.romVersionBox = new System.Windows.Forms.TextBox( ); + this.label1 = new System.Windows.Forms.Label( ); + this.groupBox3 = new System.Windows.Forms.GroupBox( ); + this.playButton = new System.Windows.Forms.Button( ); + this.soundTypeCombo = new System.Windows.Forms.ComboBox( ); + this.groupBox4 = new System.Windows.Forms.GroupBox( ); + this.setSensorModeButton = new System.Windows.Forms.Button( ); + this.sensorModeCombo = new System.Windows.Forms.ComboBox( ); + this.label6 = new System.Windows.Forms.Label( ); + this.setSensorTypeButton = new System.Windows.Forms.Button( ); + this.sensorTypeCombo = new System.Windows.Forms.ComboBox( ); + this.label5 = new System.Windows.Forms.Label( ); + this.clearSensorButton = new System.Windows.Forms.Button( ); + this.valueBox = new System.Windows.Forms.TextBox( ); + this.label4 = new System.Windows.Forms.Label( ); + this.getValueButton = new System.Windows.Forms.Button( ); + this.sensorCombo = new System.Windows.Forms.ComboBox( ); + this.groupBox5 = new System.Windows.Forms.GroupBox( ); + this.motorOffButton = new System.Windows.Forms.Button( ); + this.motorOnButton = new System.Windows.Forms.Button( ); + this.powerCombo = new System.Windows.Forms.ComboBox( ); + this.label8 = new System.Windows.Forms.Label( ); + this.directionCombo = new System.Windows.Forms.ComboBox( ); + this.label7 = new System.Windows.Forms.Label( ); + this.motorCombo = new System.Windows.Forms.ComboBox( ); + this.turnDeviceOffButton = new System.Windows.Forms.Button( ); + this.groupBox1.SuspendLayout( ); + this.groupBox2.SuspendLayout( ); + this.groupBox3.SuspendLayout( ); + this.groupBox4.SuspendLayout( ); + this.groupBox5.SuspendLayout( ); + this.SuspendLayout( ); + // + // connectButton + // + this.connectButton.Location = new System.Drawing.Point( 10, 25 ); + this.connectButton.Name = "connectButton"; + this.connectButton.Size = new System.Drawing.Size( 75, 23 ); + this.connectButton.TabIndex = 0; + this.connectButton.Text = "&Connect"; + this.connectButton.UseVisualStyleBackColor = true; + this.connectButton.Click += new System.EventHandler( this.connectButton_Click ); + // + // disconnectButton + // + this.disconnectButton.Enabled = false; + this.disconnectButton.Location = new System.Drawing.Point( 125, 25 ); + this.disconnectButton.Name = "disconnectButton"; + this.disconnectButton.Size = new System.Drawing.Size( 75, 23 ); + this.disconnectButton.TabIndex = 1; + this.disconnectButton.Text = "&Disconnect"; + this.disconnectButton.UseVisualStyleBackColor = true; + this.disconnectButton.Click += new System.EventHandler( this.disconnectButton_Click ); + // + // groupBox1 + // + this.groupBox1.Controls.Add( this.connectButton ); + this.groupBox1.Controls.Add( this.disconnectButton ); + this.groupBox1.Location = new System.Drawing.Point( 10, 10 ); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size( 210, 55 ); + this.groupBox1.TabIndex = 2; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "Connection"; + // + // groupBox2 + // + this.groupBox2.Controls.Add( this.powerBox ); + this.groupBox2.Controls.Add( this.label3 ); + this.groupBox2.Controls.Add( this.firmwareVersionBox ); + this.groupBox2.Controls.Add( this.label2 ); + this.groupBox2.Controls.Add( this.romVersionBox ); + this.groupBox2.Controls.Add( this.label1 ); + this.groupBox2.Location = new System.Drawing.Point( 10, 70 ); + this.groupBox2.Name = "groupBox2"; + this.groupBox2.Size = new System.Drawing.Size( 210, 100 ); + this.groupBox2.TabIndex = 3; + this.groupBox2.TabStop = false; + this.groupBox2.Text = "Device info"; + // + // powerBox + // + this.powerBox.Location = new System.Drawing.Point( 100, 70 ); + this.powerBox.Name = "powerBox"; + this.powerBox.ReadOnly = true; + this.powerBox.Size = new System.Drawing.Size( 100, 20 ); + this.powerBox.TabIndex = 5; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point( 10, 73 ); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size( 91, 13 ); + this.label3.TabIndex = 4; + this.label3.Text = "Battery power (V):"; + // + // firmwareVersionBox + // + this.firmwareVersionBox.Location = new System.Drawing.Point( 100, 45 ); + this.firmwareVersionBox.Name = "firmwareVersionBox"; + this.firmwareVersionBox.ReadOnly = true; + this.firmwareVersionBox.Size = new System.Drawing.Size( 100, 20 ); + this.firmwareVersionBox.TabIndex = 3; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point( 10, 48 ); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size( 89, 13 ); + this.label2.TabIndex = 2; + this.label2.Text = "Firmware version:"; + // + // romVersionBox + // + this.romVersionBox.Location = new System.Drawing.Point( 100, 20 ); + this.romVersionBox.Name = "romVersionBox"; + this.romVersionBox.ReadOnly = true; + this.romVersionBox.Size = new System.Drawing.Size( 100, 20 ); + this.romVersionBox.TabIndex = 1; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point( 10, 23 ); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size( 69, 13 ); + this.label1.TabIndex = 0; + this.label1.Text = "Rom version:"; + // + // groupBox3 + // + this.groupBox3.Controls.Add( this.playButton ); + this.groupBox3.Controls.Add( this.soundTypeCombo ); + this.groupBox3.Location = new System.Drawing.Point( 10, 175 ); + this.groupBox3.Name = "groupBox3"; + this.groupBox3.Size = new System.Drawing.Size( 210, 50 ); + this.groupBox3.TabIndex = 4; + this.groupBox3.TabStop = false; + this.groupBox3.Text = "Sound"; + // + // playButton + // + this.playButton.Enabled = false; + this.playButton.Location = new System.Drawing.Point( 125, 19 ); + this.playButton.Name = "playButton"; + this.playButton.Size = new System.Drawing.Size( 75, 23 ); + this.playButton.TabIndex = 5; + this.playButton.Text = "&Play"; + this.playButton.UseVisualStyleBackColor = true; + this.playButton.Click += new System.EventHandler( this.playButton_Click ); + // + // soundTypeCombo + // + this.soundTypeCombo.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.soundTypeCombo.FormattingEnabled = true; + this.soundTypeCombo.Items.AddRange( new object[] { + "Bleep", + "Beep-beep", + "Downward Tones", + "Upward Tones", + "Low Buzz", + "Fast Upward Tones"} ); + this.soundTypeCombo.Location = new System.Drawing.Point( 10, 20 ); + this.soundTypeCombo.Name = "soundTypeCombo"; + this.soundTypeCombo.Size = new System.Drawing.Size( 110, 21 ); + this.soundTypeCombo.TabIndex = 5; + // + // groupBox4 + // + this.groupBox4.Controls.Add( this.setSensorModeButton ); + this.groupBox4.Controls.Add( this.sensorModeCombo ); + this.groupBox4.Controls.Add( this.label6 ); + this.groupBox4.Controls.Add( this.setSensorTypeButton ); + this.groupBox4.Controls.Add( this.sensorTypeCombo ); + this.groupBox4.Controls.Add( this.label5 ); + this.groupBox4.Controls.Add( this.clearSensorButton ); + this.groupBox4.Controls.Add( this.valueBox ); + this.groupBox4.Controls.Add( this.label4 ); + this.groupBox4.Controls.Add( this.getValueButton ); + this.groupBox4.Controls.Add( this.sensorCombo ); + this.groupBox4.Location = new System.Drawing.Point( 230, 10 ); + this.groupBox4.Name = "groupBox4"; + this.groupBox4.Size = new System.Drawing.Size( 210, 160 ); + this.groupBox4.TabIndex = 5; + this.groupBox4.TabStop = false; + this.groupBox4.Text = "Sensor"; + // + // setSensorModeButton + // + this.setSensorModeButton.Enabled = false; + this.setSensorModeButton.Location = new System.Drawing.Point( 150, 129 ); + this.setSensorModeButton.Name = "setSensorModeButton"; + this.setSensorModeButton.Size = new System.Drawing.Size( 50, 23 ); + this.setSensorModeButton.TabIndex = 10; + this.setSensorModeButton.Text = "Set"; + this.setSensorModeButton.UseVisualStyleBackColor = true; + this.setSensorModeButton.Click += new System.EventHandler( this.setSensorModeButton_Click ); + // + // sensorModeCombo + // + this.sensorModeCombo.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.sensorModeCombo.FormattingEnabled = true; + this.sensorModeCombo.Items.AddRange( new object[] { + "Raw", + "Boolean", + "Edge Count", + "Pulse Count", + "Percentage", + "Temperature °C ", + "Temperature °F", + "Angle"} ); + this.sensorModeCombo.Location = new System.Drawing.Point( 50, 130 ); + this.sensorModeCombo.Name = "sensorModeCombo"; + this.sensorModeCombo.Size = new System.Drawing.Size( 90, 21 ); + this.sensorModeCombo.TabIndex = 9; + // + // label6 + // + this.label6.AutoSize = true; + this.label6.Location = new System.Drawing.Point( 10, 133 ); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size( 37, 13 ); + this.label6.TabIndex = 8; + this.label6.Text = "Mode:"; + // + // setSensorTypeButton + // + this.setSensorTypeButton.Enabled = false; + this.setSensorTypeButton.Location = new System.Drawing.Point( 150, 99 ); + this.setSensorTypeButton.Name = "setSensorTypeButton"; + this.setSensorTypeButton.Size = new System.Drawing.Size( 50, 23 ); + this.setSensorTypeButton.TabIndex = 7; + this.setSensorTypeButton.Text = "Set"; + this.setSensorTypeButton.UseVisualStyleBackColor = true; + this.setSensorTypeButton.Click += new System.EventHandler( this.setSensorTypeButton_Click ); + // + // sensorTypeCombo + // + this.sensorTypeCombo.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.sensorTypeCombo.FormattingEnabled = true; + this.sensorTypeCombo.Items.AddRange( new object[] { + "Raw", + "Touch", + "Temperature", + "Light", + "Rotation"} ); + this.sensorTypeCombo.Location = new System.Drawing.Point( 50, 100 ); + this.sensorTypeCombo.Name = "sensorTypeCombo"; + this.sensorTypeCombo.Size = new System.Drawing.Size( 90, 21 ); + this.sensorTypeCombo.TabIndex = 6; + // + // label5 + // + this.label5.AutoSize = true; + this.label5.Location = new System.Drawing.Point( 10, 103 ); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size( 34, 13 ); + this.label5.TabIndex = 5; + this.label5.Text = "Type:"; + // + // clearSensorButton + // + this.clearSensorButton.Enabled = false; + this.clearSensorButton.Location = new System.Drawing.Point( 125, 49 ); + this.clearSensorButton.Name = "clearSensorButton"; + this.clearSensorButton.Size = new System.Drawing.Size( 75, 23 ); + this.clearSensorButton.TabIndex = 4; + this.clearSensorButton.Text = "C&lear"; + this.clearSensorButton.UseVisualStyleBackColor = true; + this.clearSensorButton.Click += new System.EventHandler( this.clearSensorButton_Click ); + // + // valueBox + // + this.valueBox.Location = new System.Drawing.Point( 50, 50 ); + this.valueBox.Name = "valueBox"; + this.valueBox.ReadOnly = true; + this.valueBox.Size = new System.Drawing.Size( 65, 20 ); + this.valueBox.TabIndex = 3; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point( 10, 53 ); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size( 37, 13 ); + this.label4.TabIndex = 2; + this.label4.Text = "Value:"; + // + // getValueButton + // + this.getValueButton.Enabled = false; + this.getValueButton.Location = new System.Drawing.Point( 125, 19 ); + this.getValueButton.Name = "getValueButton"; + this.getValueButton.Size = new System.Drawing.Size( 75, 23 ); + this.getValueButton.TabIndex = 1; + this.getValueButton.Text = "&Get value"; + this.getValueButton.UseVisualStyleBackColor = true; + this.getValueButton.Click += new System.EventHandler( this.getValueButton_Click ); + // + // sensorCombo + // + this.sensorCombo.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.sensorCombo.FormattingEnabled = true; + this.sensorCombo.Items.AddRange( new object[] { + "First", + "Second", + "Third"} ); + this.sensorCombo.Location = new System.Drawing.Point( 6, 19 ); + this.sensorCombo.Name = "sensorCombo"; + this.sensorCombo.Size = new System.Drawing.Size( 110, 21 ); + this.sensorCombo.TabIndex = 0; + // + // groupBox5 + // + this.groupBox5.Controls.Add( this.motorOffButton ); + this.groupBox5.Controls.Add( this.motorOnButton ); + this.groupBox5.Controls.Add( this.powerCombo ); + this.groupBox5.Controls.Add( this.label8 ); + this.groupBox5.Controls.Add( this.directionCombo ); + this.groupBox5.Controls.Add( this.label7 ); + this.groupBox5.Controls.Add( this.motorCombo ); + this.groupBox5.Location = new System.Drawing.Point( 450, 10 ); + this.groupBox5.Name = "groupBox5"; + this.groupBox5.Size = new System.Drawing.Size( 150, 160 ); + this.groupBox5.TabIndex = 6; + this.groupBox5.TabStop = false; + this.groupBox5.Text = "Motor"; + // + // motorOffButton + // + this.motorOffButton.Enabled = false; + this.motorOffButton.Location = new System.Drawing.Point( 80, 125 ); + this.motorOffButton.Name = "motorOffButton"; + this.motorOffButton.Size = new System.Drawing.Size( 60, 23 ); + this.motorOffButton.TabIndex = 6; + this.motorOffButton.Text = "O&ff"; + this.motorOffButton.UseVisualStyleBackColor = true; + this.motorOffButton.Click += new System.EventHandler( this.motorOffButton_Click ); + // + // motorOnButton + // + this.motorOnButton.Enabled = false; + this.motorOnButton.Location = new System.Drawing.Point( 10, 125 ); + this.motorOnButton.Name = "motorOnButton"; + this.motorOnButton.Size = new System.Drawing.Size( 60, 23 ); + this.motorOnButton.TabIndex = 5; + this.motorOnButton.Text = "O&n"; + this.motorOnButton.UseVisualStyleBackColor = true; + this.motorOnButton.Click += new System.EventHandler( this.motorOnButton_Click ); + // + // powerCombo + // + this.powerCombo.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.powerCombo.FormattingEnabled = true; + this.powerCombo.Items.AddRange( new object[] { + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7"} ); + this.powerCombo.Location = new System.Drawing.Point( 65, 80 ); + this.powerCombo.Name = "powerCombo"; + this.powerCombo.Size = new System.Drawing.Size( 75, 21 ); + this.powerCombo.TabIndex = 4; + // + // label8 + // + this.label8.AutoSize = true; + this.label8.Location = new System.Drawing.Point( 10, 83 ); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size( 40, 13 ); + this.label8.TabIndex = 3; + this.label8.Text = "Power:"; + // + // directionCombo + // + this.directionCombo.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.directionCombo.FormattingEnabled = true; + this.directionCombo.Items.AddRange( new object[] { + "Forward", + "Backward"} ); + this.directionCombo.Location = new System.Drawing.Point( 65, 50 ); + this.directionCombo.Name = "directionCombo"; + this.directionCombo.Size = new System.Drawing.Size( 75, 21 ); + this.directionCombo.TabIndex = 2; + // + // label7 + // + this.label7.AutoSize = true; + this.label7.Location = new System.Drawing.Point( 10, 53 ); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size( 52, 13 ); + this.label7.TabIndex = 1; + this.label7.Text = "Direction:"; + // + // motorCombo + // + this.motorCombo.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.motorCombo.FormattingEnabled = true; + this.motorCombo.Items.AddRange( new object[] { + "Motor A", + "Motor B", + "Motor C", + "Motor A+C"} ); + this.motorCombo.Location = new System.Drawing.Point( 10, 20 ); + this.motorCombo.Name = "motorCombo"; + this.motorCombo.Size = new System.Drawing.Size( 130, 21 ); + this.motorCombo.TabIndex = 0; + // + // turnDeviceOffButton + // + this.turnDeviceOffButton.Enabled = false; + this.turnDeviceOffButton.Location = new System.Drawing.Point( 480, 195 ); + this.turnDeviceOffButton.Name = "turnDeviceOffButton"; + this.turnDeviceOffButton.Size = new System.Drawing.Size( 110, 23 ); + this.turnDeviceOffButton.TabIndex = 7; + this.turnDeviceOffButton.Text = "&Turn device OFF"; + this.turnDeviceOffButton.UseVisualStyleBackColor = true; + this.turnDeviceOffButton.Click += new System.EventHandler( this.turnDeviceOffButton_Click ); + // + // MainForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF( 6F, 13F ); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size( 612, 234 ); + this.Controls.Add( this.turnDeviceOffButton ); + this.Controls.Add( this.groupBox5 ); + this.Controls.Add( this.groupBox4 ); + this.Controls.Add( this.groupBox3 ); + this.Controls.Add( this.groupBox2 ); + this.Controls.Add( this.groupBox1 ); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.MaximizeBox = false; + this.Name = "MainForm"; + this.ShowIcon = false; + this.Text = "Lego RCX Test"; + this.groupBox1.ResumeLayout( false ); + this.groupBox2.ResumeLayout( false ); + this.groupBox2.PerformLayout( ); + this.groupBox3.ResumeLayout( false ); + this.groupBox4.ResumeLayout( false ); + this.groupBox4.PerformLayout( ); + this.groupBox5.ResumeLayout( false ); + this.groupBox5.PerformLayout( ); + this.ResumeLayout( false ); + + } + + #endregion + + private System.Windows.Forms.Button connectButton; + private System.Windows.Forms.Button disconnectButton; + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.GroupBox groupBox2; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.TextBox romVersionBox; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.TextBox firmwareVersionBox; + private System.Windows.Forms.TextBox powerBox; + private System.Windows.Forms.GroupBox groupBox3; + private System.Windows.Forms.ComboBox soundTypeCombo; + private System.Windows.Forms.Button playButton; + private System.Windows.Forms.GroupBox groupBox4; + private System.Windows.Forms.Button getValueButton; + private System.Windows.Forms.ComboBox sensorCombo; + private System.Windows.Forms.TextBox valueBox; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.Button clearSensorButton; + private System.Windows.Forms.ComboBox sensorTypeCombo; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.Button setSensorTypeButton; + private System.Windows.Forms.Button setSensorModeButton; + private System.Windows.Forms.ComboBox sensorModeCombo; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.GroupBox groupBox5; + private System.Windows.Forms.ComboBox motorCombo; + private System.Windows.Forms.ComboBox directionCombo; + private System.Windows.Forms.Label label7; + private System.Windows.Forms.Button motorOffButton; + private System.Windows.Forms.Button motorOnButton; + private System.Windows.Forms.ComboBox powerCombo; + private System.Windows.Forms.Label label8; + private System.Windows.Forms.Button turnDeviceOffButton; + } +} + diff --git a/Samples/Robotics/Lego/RCXTest/MainForm.cs b/Samples/Robotics/Lego/RCXTest/MainForm.cs new file mode 100644 index 00000000..20f57acf --- /dev/null +++ b/Samples/Robotics/Lego/RCXTest/MainForm.cs @@ -0,0 +1,168 @@ +// Lego Mindstorm RCX test application +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2006-2011 +// contacts@aforgenet.com +// + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; + +using AForge.Robotics.Lego; + +namespace RCXTest +{ + public partial class MainForm : Form + { + // Lego RCX device + private RCXBrick rcx = new RCXBrick( ); + + // available motors + private static RCXBrick.Motor[] motors = new RCXBrick.Motor[] { + RCXBrick.Motor.A, RCXBrick.Motor.B, RCXBrick.Motor.C, + RCXBrick.Motor.AC + }; + + // Constructor + public MainForm( ) + { + InitializeComponent( ); + + soundTypeCombo.SelectedIndex = 0; + sensorCombo.SelectedIndex = 0; + sensorTypeCombo.SelectedIndex = 0; + sensorModeCombo.SelectedIndex = 0; + motorCombo.SelectedIndex = 0; + directionCombo.SelectedIndex = 0; + powerCombo.SelectedIndex = 0; + } + + // On Connect button + private void connectButton_Click( object sender, EventArgs e ) + { + if ( rcx.Connect( RCXBrick.IRTowerType.USB ) ) + { + EnableConnectionControls( true ); + + rcx.SetTransmitterRange( true ); + + // get version + string romVersion, firmwareVersion; + + if ( rcx.GetVersion( out romVersion, out firmwareVersion ) ) + { + romVersionBox.Text = romVersion; + firmwareVersionBox.Text = firmwareVersion; + } + + int power; + + if ( rcx.GetBatteryPower( out power ) ) + { + powerBox.Text = ( (double) power / 1000 ).ToString( "F3" ); + } + } + else + { + MessageBox.Show( "Failed connecting to Lego RCX", "Error", + MessageBoxButtons.OK, MessageBoxIcon.Error ); + } + } + + // On Disconnect button + private void disconnectButton_Click( object sender, EventArgs e ) + { + rcx.Disconnect( ); + EnableConnectionControls( false ); + } + + // Enable/disable controls available on connection + private void EnableConnectionControls( bool enable ) + { + connectButton.Enabled = !enable; + disconnectButton.Enabled = enable; + playButton.Enabled = enable; + getValueButton.Enabled = enable; + clearSensorButton.Enabled = enable; + setSensorTypeButton.Enabled = enable; + setSensorModeButton.Enabled = enable; + motorOnButton.Enabled = enable; + motorOffButton.Enabled = enable; + turnDeviceOffButton.Enabled = enable; + } + + // Play sound + private void playButton_Click( object sender, EventArgs e ) + { + rcx.PlaySound( (RCXBrick.SoundType) soundTypeCombo.SelectedIndex ); + } + + // Get value + private void getValueButton_Click( object sender, EventArgs e ) + { + short value; + + if ( rcx.GetSensorValue( (RCXBrick.Sensor) sensorCombo.SelectedIndex, out value ) ) + { + valueBox.Text = value.ToString( ); + } + else + { + valueBox.Text = string.Empty; + } + } + + // Clear sensor's value + private void clearSensorButton_Click( object sender, EventArgs e ) + { + rcx.ClearSensor( (RCXBrick.Sensor) sensorCombo.SelectedIndex ); + } + + // Set sensor's type + private void setSensorTypeButton_Click( object sender, EventArgs e ) + { + rcx.SetSensorType( (RCXBrick.Sensor) sensorCombo.SelectedIndex, + (RCXBrick.SensorType) sensorTypeCombo.SelectedIndex ); + } + + // Set sensor's mode + private void setSensorModeButton_Click( object sender, EventArgs e ) + { + rcx.SetSensorMode( (RCXBrick.Sensor) sensorCombo.SelectedIndex, + (RCXBrick.SensorMode) sensorModeCombo.SelectedIndex ); + } + + // Turm motor ON + private void motorOnButton_Click( object sender, EventArgs e ) + { + // set direction + rcx.SetMotorDirection( motors[motorCombo.SelectedIndex], + directionCombo.SelectedIndex == 0 ); + // set power + rcx.SetMotorPower( motors[motorCombo.SelectedIndex], + (byte) powerCombo.SelectedIndex ); + // turm motor on + rcx.SetMotorOn( motors[motorCombo.SelectedIndex], true ); + } + + // Turn motor OFF + private void motorOffButton_Click( object sender, EventArgs e ) + { + rcx.SetMotorOn( motors[motorCombo.SelectedIndex], false ); + } + + // Turn Off Lego RCX brick + private void turnDeviceOffButton_Click( object sender, EventArgs e ) + { + rcx.PowerOff( ); + rcx.Disconnect( ); + EnableConnectionControls( false ); + } + } +} \ No newline at end of file diff --git a/Samples/Robotics/Lego/RCXTest/MainForm.resx b/Samples/Robotics/Lego/RCXTest/MainForm.resx new file mode 100644 index 00000000..19dc0dd8 --- /dev/null +++ b/Samples/Robotics/Lego/RCXTest/MainForm.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Samples/Robotics/Lego/RCXTest/Program.cs b/Samples/Robotics/Lego/RCXTest/Program.cs new file mode 100644 index 00000000..d65e501b --- /dev/null +++ b/Samples/Robotics/Lego/RCXTest/Program.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Windows.Forms; + +namespace RCXTest +{ + static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main( ) + { + Application.EnableVisualStyles( ); + Application.SetCompatibleTextRenderingDefault( false ); + Application.Run( new MainForm( ) ); + } + } +} \ No newline at end of file diff --git a/Samples/Robotics/Lego/RCXTest/Properties/AssemblyInfo.cs b/Samples/Robotics/Lego/RCXTest/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..ca85340f --- /dev/null +++ b/Samples/Robotics/Lego/RCXTest/Properties/AssemblyInfo.cs @@ -0,0 +1,33 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle( "Lego RCX Test" )] +[assembly: AssemblyDescription( "Lego RCX Test sample" )] +[assembly: AssemblyConfiguration( "" )] +[assembly: AssemblyCompany( "AForge" )] +[assembly: AssemblyProduct( "AForge.NET" )] +[assembly: AssemblyCopyright( "AForge © 2007" )] +[assembly: AssemblyTrademark( "" )] +[assembly: AssemblyCulture( "" )] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible( false )] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid( "bc4b0f4d-0313-4c00-ba14-d0eb49dd5686" )] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +[assembly: AssemblyVersion( "2.0.0.0" )] +[assembly: AssemblyFileVersion( "2.0.0.0" )] diff --git a/Samples/Robotics/Lego/RCXTest/Properties/Resources.Designer.cs b/Samples/Robotics/Lego/RCXTest/Properties/Resources.Designer.cs new file mode 100644 index 00000000..88f4b97b --- /dev/null +++ b/Samples/Robotics/Lego/RCXTest/Properties/Resources.Designer.cs @@ -0,0 +1,63 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.1433 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace RCXTest.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("RCXTest.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + } +} diff --git a/Samples/Robotics/Lego/RCXTest/Properties/Resources.resx b/Samples/Robotics/Lego/RCXTest/Properties/Resources.resx new file mode 100644 index 00000000..af7dbebb --- /dev/null +++ b/Samples/Robotics/Lego/RCXTest/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Samples/Robotics/Lego/RCXTest/Properties/Settings.Designer.cs b/Samples/Robotics/Lego/RCXTest/Properties/Settings.Designer.cs new file mode 100644 index 00000000..d368c10a --- /dev/null +++ b/Samples/Robotics/Lego/RCXTest/Properties/Settings.Designer.cs @@ -0,0 +1,26 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.1433 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace RCXTest.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "9.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + } +} diff --git a/Samples/Robotics/Lego/RCXTest/Properties/Settings.settings b/Samples/Robotics/Lego/RCXTest/Properties/Settings.settings new file mode 100644 index 00000000..39645652 --- /dev/null +++ b/Samples/Robotics/Lego/RCXTest/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Samples/Robotics/Lego/RCXTest/RCXTest.csproj b/Samples/Robotics/Lego/RCXTest/RCXTest.csproj new file mode 100644 index 00000000..1d84db18 --- /dev/null +++ b/Samples/Robotics/Lego/RCXTest/RCXTest.csproj @@ -0,0 +1,138 @@ + + + + Debug + AnyCPU + 9.0.21022 + 2.0 + {FC6E1E54-1D42-44B2-8060-13BDD7CEE3EE} + WinExe + Properties + RCXTest + RCXTest + + + 3.5 + v2.0 + + + false + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + true + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + False + ..\..\..\..\Release\AForge.Robotics.Lego.dll + + + + + + + + + + + Form + + + MainForm.cs + + + + + Designer + MainForm.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + True + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 2.0 %28x86%29 + false + + + False + .NET Framework 3.0 %28x86%29 + false + + + False + .NET Framework 3.5 + true + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 3.1 + true + + + + + \ No newline at end of file diff --git a/Samples/Robotics/Lego/RCXTest/RCXTest.sln b/Samples/Robotics/Lego/RCXTest/RCXTest.sln new file mode 100644 index 00000000..01616abd --- /dev/null +++ b/Samples/Robotics/Lego/RCXTest/RCXTest.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual C# Express 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RCXTest", "RCXTest.csproj", "{FC6E1E54-1D42-44B2-8060-13BDD7CEE3EE}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {FC6E1E54-1D42-44B2-8060-13BDD7CEE3EE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FC6E1E54-1D42-44B2-8060-13BDD7CEE3EE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FC6E1E54-1D42-44B2-8060-13BDD7CEE3EE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FC6E1E54-1D42-44B2-8060-13BDD7CEE3EE}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Samples/Robotics/Surveyor/SRVTest/AboutForm.Designer.cs b/Samples/Robotics/Surveyor/SRVTest/AboutForm.Designer.cs new file mode 100644 index 00000000..9fc4b791 --- /dev/null +++ b/Samples/Robotics/Surveyor/SRVTest/AboutForm.Designer.cs @@ -0,0 +1,145 @@ +namespace SRVTest +{ + partial class AboutForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose( bool disposing ) + { + if ( disposing && ( components != null ) ) + { + components.Dispose( ); + } + base.Dispose( disposing ); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent( ) + { + this.panel1 = new System.Windows.Forms.Panel( ); + this.emailLabel = new System.Windows.Forms.LinkLabel( ); + this.label3 = new System.Windows.Forms.Label( ); + this.aforgeLabel = new System.Windows.Forms.LinkLabel( ); + this.label2 = new System.Windows.Forms.Label( ); + this.label1 = new System.Windows.Forms.Label( ); + this.pictureBox1 = new System.Windows.Forms.PictureBox( ); + this.panel1.SuspendLayout( ); + ( (System.ComponentModel.ISupportInitialize) ( this.pictureBox1 ) ).BeginInit( ); + this.SuspendLayout( ); + // + // panel1 + // + this.panel1.Controls.Add( this.emailLabel ); + this.panel1.Controls.Add( this.label3 ); + this.panel1.Controls.Add( this.aforgeLabel ); + this.panel1.Controls.Add( this.label2 ); + this.panel1.Controls.Add( this.label1 ); + this.panel1.Location = new System.Drawing.Point( 115, 12 ); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size( 242, 139 ); + this.panel1.TabIndex = 5; + // + // emailLabel + // + this.emailLabel.AutoSize = true; + this.emailLabel.Location = new System.Drawing.Point( 45, 108 ); + this.emailLabel.Name = "emailLabel"; + this.emailLabel.Size = new System.Drawing.Size( 153, 13 ); + this.emailLabel.TabIndex = 5; + this.emailLabel.TabStop = true; + this.emailLabel.Text = "andrew.kirillov@aforgenet.com"; + this.emailLabel.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler( this.LinkClicked ); + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point( 25, 93 ); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size( 192, 13 ); + this.label3.TabIndex = 4; + this.label3.Text = "Copyright © 2009-2010, Andrew Kirillov"; + // + // aforgeLabel + // + this.aforgeLabel.AutoSize = true; + this.aforgeLabel.Location = new System.Drawing.Point( 25, 58 ); + this.aforgeLabel.Name = "aforgeLabel"; + this.aforgeLabel.Size = new System.Drawing.Size( 192, 13 ); + this.aforgeLabel.TabIndex = 3; + this.aforgeLabel.TabStop = true; + this.aforgeLabel.Text = "http://www.aforgenet.com/framework/"; + this.aforgeLabel.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler( this.LinkClicked ); + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point( 9, 43 ); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size( 225, 13 ); + this.label2.TabIndex = 2; + this.label2.Text = "Sample application of AForge.NET framework:"; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point( 54, 18 ); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size( 134, 13 ); + this.label1.TabIndex = 1; + this.label1.Text = "Surveyor SRV-1 Test 1.0.2"; + // + // pictureBox1 + // + this.pictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.pictureBox1.Image = global::SRVTest.Properties.Resources.srv; + this.pictureBox1.Location = new System.Drawing.Point( 10, 37 ); + this.pictureBox1.Name = "pictureBox1"; + this.pictureBox1.Size = new System.Drawing.Size( 98, 89 ); + this.pictureBox1.TabIndex = 6; + this.pictureBox1.TabStop = false; + // + // AboutForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF( 6F, 13F ); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size( 369, 162 ); + this.Controls.Add( this.pictureBox1 ); + this.Controls.Add( this.panel1 ); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "AboutForm"; + this.ShowIcon = false; + this.ShowInTaskbar = false; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "About"; + this.panel1.ResumeLayout( false ); + this.panel1.PerformLayout( ); + ( (System.ComponentModel.ISupportInitialize) ( this.pictureBox1 ) ).EndInit( ); + this.ResumeLayout( false ); + + } + + #endregion + + private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.LinkLabel emailLabel; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.LinkLabel aforgeLabel; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.PictureBox pictureBox1; + } +} \ No newline at end of file diff --git a/Samples/Robotics/Surveyor/SRVTest/AboutForm.cs b/Samples/Robotics/Surveyor/SRVTest/AboutForm.cs new file mode 100644 index 00000000..61eeff1d --- /dev/null +++ b/Samples/Robotics/Surveyor/SRVTest/AboutForm.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; + +namespace SRVTest +{ + public partial class AboutForm : Form + { + public AboutForm( ) + { + InitializeComponent( ); + + // initialize links + emailLabel.Links.Add( 0, emailLabel.Text.Length, "mailto:andrew.kirillov@aforgenet.com" ); + aforgeLabel.Links.Add( 0, aforgeLabel.Text.Length, "http://www.aforgenet.com/framework/" ); + } + + private void LinkClicked( object sender, LinkLabelLinkClickedEventArgs e ) + { + System.Diagnostics.Process.Start( e.Link.LinkData.ToString( ) ); + } + } +} diff --git a/Samples/Robotics/Surveyor/SRVTest/AboutForm.resx b/Samples/Robotics/Surveyor/SRVTest/AboutForm.resx new file mode 100644 index 00000000..19dc0dd8 --- /dev/null +++ b/Samples/Robotics/Surveyor/SRVTest/AboutForm.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Samples/Robotics/Surveyor/SRVTest/MainForm.Designer.cs b/Samples/Robotics/Surveyor/SRVTest/MainForm.Designer.cs new file mode 100644 index 00000000..2e205ebc --- /dev/null +++ b/Samples/Robotics/Surveyor/SRVTest/MainForm.Designer.cs @@ -0,0 +1,505 @@ +namespace SRVTest +{ + partial class MainForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose( bool disposing ) + { + if ( disposing && ( components != null ) ) + { + components.Dispose( ); + } + base.Dispose( disposing ); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent( ) + { + this.components = new System.ComponentModel.Container( ); + this.groupBox1 = new System.Windows.Forms.GroupBox( ); + this.disconnectButton = new System.Windows.Forms.Button( ); + this.connectButton = new System.Windows.Forms.Button( ); + this.ipBox = new System.Windows.Forms.TextBox( ); + this.label1 = new System.Windows.Forms.Label( ); + this.statusStrip = new System.Windows.Forms.StatusStrip( ); + this.statusLabel = new System.Windows.Forms.ToolStripStatusLabel( ); + this.versionLabel = new System.Windows.Forms.ToolStripStatusLabel( ); + this.fpsLabel = new System.Windows.Forms.ToolStripStatusLabel( ); + this.groupBox2 = new System.Windows.Forms.GroupBox( ); + this.cameraPlayer = new AForge.Controls.VideoSourcePlayer( ); + this.timer = new System.Windows.Forms.Timer( this.components ); + this.groupBox4 = new System.Windows.Forms.GroupBox( ); + this.resolutionCombo = new System.Windows.Forms.ComboBox( ); + this.label3 = new System.Windows.Forms.Label( ); + this.qualityCombo = new System.Windows.Forms.ComboBox( ); + this.label2 = new System.Windows.Forms.Label( ); + this.groupBox5 = new System.Windows.Forms.GroupBox( ); + this.maxPowerUpDown = new System.Windows.Forms.NumericUpDown( ); + this.maxPowerLabel = new System.Windows.Forms.Label( ); + this.minPowerUpDown = new System.Windows.Forms.NumericUpDown( ); + this.minPowerLabel = new System.Windows.Forms.Label( ); + this.turnControl = new AForge.Controls.SliderControl( ); + this.directControlRadio = new System.Windows.Forms.RadioButton( ); + this.predefinedCommandsRadio = new System.Windows.Forms.RadioButton( ); + this.srvDriverControl = new SRVTest.SrvDriverControl( ); + this.manipulatorControl = new AForge.Controls.ManipulatorControl( ); + this.aboutButton = new System.Windows.Forms.Button( ); + this.label4 = new System.Windows.Forms.Label( ); + this.portUpDown = new System.Windows.Forms.NumericUpDown( ); + this.groupBox1.SuspendLayout( ); + this.statusStrip.SuspendLayout( ); + this.groupBox2.SuspendLayout( ); + this.groupBox4.SuspendLayout( ); + this.groupBox5.SuspendLayout( ); + ( (System.ComponentModel.ISupportInitialize) ( this.maxPowerUpDown ) ).BeginInit( ); + ( (System.ComponentModel.ISupportInitialize) ( this.minPowerUpDown ) ).BeginInit( ); + ( (System.ComponentModel.ISupportInitialize) ( this.portUpDown ) ).BeginInit( ); + this.SuspendLayout( ); + // + // groupBox1 + // + this.groupBox1.Controls.Add( this.portUpDown ); + this.groupBox1.Controls.Add( this.label4 ); + this.groupBox1.Controls.Add( this.disconnectButton ); + this.groupBox1.Controls.Add( this.connectButton ); + this.groupBox1.Controls.Add( this.ipBox ); + this.groupBox1.Controls.Add( this.label1 ); + this.groupBox1.Location = new System.Drawing.Point( 10, 10 ); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size( 342, 80 ); + this.groupBox1.TabIndex = 0; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "SRV-1 Connection"; + // + // disconnectButton + // + this.disconnectButton.Enabled = false; + this.disconnectButton.Location = new System.Drawing.Point( 260, 24 ); + this.disconnectButton.Name = "disconnectButton"; + this.disconnectButton.Size = new System.Drawing.Size( 75, 23 ); + this.disconnectButton.TabIndex = 5; + this.disconnectButton.Text = "&Disconnect"; + this.disconnectButton.UseVisualStyleBackColor = true; + this.disconnectButton.Click += new System.EventHandler( this.disconnectButton_Click ); + // + // connectButton + // + this.connectButton.Location = new System.Drawing.Point( 180, 24 ); + this.connectButton.Name = "connectButton"; + this.connectButton.Size = new System.Drawing.Size( 75, 23 ); + this.connectButton.TabIndex = 4; + this.connectButton.Text = "&Connect"; + this.connectButton.UseVisualStyleBackColor = true; + this.connectButton.Click += new System.EventHandler( this.connectButton_Click ); + // + // ipBox + // + this.ipBox.Location = new System.Drawing.Point( 75, 25 ); + this.ipBox.Name = "ipBox"; + this.ipBox.Size = new System.Drawing.Size( 100, 20 ); + this.ipBox.TabIndex = 1; + this.ipBox.Text = "169.254.0.10"; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point( 10, 27 ); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size( 61, 13 ); + this.label1.TabIndex = 0; + this.label1.Text = "IP Address:"; + // + // statusStrip + // + this.statusStrip.Items.AddRange( new System.Windows.Forms.ToolStripItem[] { + this.statusLabel, + this.versionLabel, + this.fpsLabel} ); + this.statusStrip.Location = new System.Drawing.Point( 0, 408 ); + this.statusStrip.Name = "statusStrip"; + this.statusStrip.Size = new System.Drawing.Size( 685, 22 ); + this.statusStrip.TabIndex = 3; + // + // statusLabel + // + this.statusLabel.AutoSize = false; + this.statusLabel.BorderSides = ( (System.Windows.Forms.ToolStripStatusLabelBorderSides) ( ( ( ( System.Windows.Forms.ToolStripStatusLabelBorderSides.Left | System.Windows.Forms.ToolStripStatusLabelBorderSides.Top ) + | System.Windows.Forms.ToolStripStatusLabelBorderSides.Right ) + | System.Windows.Forms.ToolStripStatusLabelBorderSides.Bottom ) ) ); + this.statusLabel.BorderStyle = System.Windows.Forms.Border3DStyle.SunkenInner; + this.statusLabel.Name = "statusLabel"; + this.statusLabel.Size = new System.Drawing.Size( 100, 17 ); + this.statusLabel.Text = "Disconnected"; + this.statusLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // versionLabel + // + this.versionLabel.AutoSize = false; + this.versionLabel.BorderSides = ( (System.Windows.Forms.ToolStripStatusLabelBorderSides) ( ( ( ( System.Windows.Forms.ToolStripStatusLabelBorderSides.Left | System.Windows.Forms.ToolStripStatusLabelBorderSides.Top ) + | System.Windows.Forms.ToolStripStatusLabelBorderSides.Right ) + | System.Windows.Forms.ToolStripStatusLabelBorderSides.Bottom ) ) ); + this.versionLabel.BorderStyle = System.Windows.Forms.Border3DStyle.SunkenInner; + this.versionLabel.Name = "versionLabel"; + this.versionLabel.Size = new System.Drawing.Size( 350, 17 ); + this.versionLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // fpsLabel + // + this.fpsLabel.BorderSides = ( (System.Windows.Forms.ToolStripStatusLabelBorderSides) ( ( ( ( System.Windows.Forms.ToolStripStatusLabelBorderSides.Left | System.Windows.Forms.ToolStripStatusLabelBorderSides.Top ) + | System.Windows.Forms.ToolStripStatusLabelBorderSides.Right ) + | System.Windows.Forms.ToolStripStatusLabelBorderSides.Bottom ) ) ); + this.fpsLabel.BorderStyle = System.Windows.Forms.Border3DStyle.SunkenInner; + this.fpsLabel.Name = "fpsLabel"; + this.fpsLabel.Size = new System.Drawing.Size( 220, 17 ); + this.fpsLabel.Spring = true; + this.fpsLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // groupBox2 + // + this.groupBox2.Controls.Add( this.cameraPlayer ); + this.groupBox2.Location = new System.Drawing.Point( 10, 95 ); + this.groupBox2.Name = "groupBox2"; + this.groupBox2.Size = new System.Drawing.Size( 342, 275 ); + this.groupBox2.TabIndex = 4; + this.groupBox2.TabStop = false; + this.groupBox2.Text = "Left Camera View"; + // + // cameraPlayer + // + this.cameraPlayer.BackColor = System.Drawing.SystemColors.ControlDark; + this.cameraPlayer.ForeColor = System.Drawing.Color.White; + this.cameraPlayer.Location = new System.Drawing.Point( 10, 20 ); + this.cameraPlayer.Name = "cameraPlayer"; + this.cameraPlayer.Size = new System.Drawing.Size( 322, 242 ); + this.cameraPlayer.TabIndex = 0; + this.cameraPlayer.VideoSource = null; + // + // timer + // + this.timer.Interval = 1000; + this.timer.Tick += new System.EventHandler( this.timer_Tick ); + // + // groupBox4 + // + this.groupBox4.Controls.Add( this.resolutionCombo ); + this.groupBox4.Controls.Add( this.label3 ); + this.groupBox4.Controls.Add( this.qualityCombo ); + this.groupBox4.Controls.Add( this.label2 ); + this.groupBox4.Location = new System.Drawing.Point( 360, 10 ); + this.groupBox4.Name = "groupBox4"; + this.groupBox4.Size = new System.Drawing.Size( 313, 79 ); + this.groupBox4.TabIndex = 10; + this.groupBox4.TabStop = false; + this.groupBox4.Text = "Video settings"; + // + // resolutionCombo + // + this.resolutionCombo.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.resolutionCombo.FormattingEnabled = true; + this.resolutionCombo.Items.AddRange( new object[] { + "160x120", + "320x240", + "640x480"} ); + this.resolutionCombo.Location = new System.Drawing.Point( 195, 25 ); + this.resolutionCombo.Name = "resolutionCombo"; + this.resolutionCombo.Size = new System.Drawing.Size( 70, 21 ); + this.resolutionCombo.TabIndex = 3; + this.resolutionCombo.SelectedIndexChanged += new System.EventHandler( this.resolutionCombo_SelectedIndexChanged ); + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point( 135, 28 ); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size( 60, 13 ); + this.label3.TabIndex = 2; + this.label3.Text = "Resolution:"; + // + // qualityCombo + // + this.qualityCombo.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.qualityCombo.FormattingEnabled = true; + this.qualityCombo.Items.AddRange( new object[] { + "1 - Best", + "2", + "3", + "4", + "5", + "6", + "7", + "8 - Worst"} ); + this.qualityCombo.Location = new System.Drawing.Point( 55, 25 ); + this.qualityCombo.Name = "qualityCombo"; + this.qualityCombo.Size = new System.Drawing.Size( 70, 21 ); + this.qualityCombo.TabIndex = 1; + this.qualityCombo.SelectedIndexChanged += new System.EventHandler( this.qualityCombo_SelectedIndexChanged ); + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point( 10, 28 ); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size( 42, 13 ); + this.label2.TabIndex = 0; + this.label2.Text = "Quality:"; + // + // groupBox5 + // + this.groupBox5.Controls.Add( this.maxPowerUpDown ); + this.groupBox5.Controls.Add( this.maxPowerLabel ); + this.groupBox5.Controls.Add( this.minPowerUpDown ); + this.groupBox5.Controls.Add( this.minPowerLabel ); + this.groupBox5.Controls.Add( this.turnControl ); + this.groupBox5.Controls.Add( this.directControlRadio ); + this.groupBox5.Controls.Add( this.predefinedCommandsRadio ); + this.groupBox5.Controls.Add( this.srvDriverControl ); + this.groupBox5.Controls.Add( this.manipulatorControl ); + this.groupBox5.Location = new System.Drawing.Point( 360, 95 ); + this.groupBox5.Name = "groupBox5"; + this.groupBox5.Size = new System.Drawing.Size( 313, 275 ); + this.groupBox5.TabIndex = 11; + this.groupBox5.TabStop = false; + this.groupBox5.Text = "Driving control"; + // + // maxPowerUpDown + // + this.maxPowerUpDown.Location = new System.Drawing.Point( 260, 55 ); + this.maxPowerUpDown.Maximum = new decimal( new int[] { + 127, + 0, + 0, + 0} ); + this.maxPowerUpDown.Minimum = new decimal( new int[] { + 10, + 0, + 0, + 0} ); + this.maxPowerUpDown.Name = "maxPowerUpDown"; + this.maxPowerUpDown.Size = new System.Drawing.Size( 45, 20 ); + this.maxPowerUpDown.TabIndex = 15; + this.maxPowerUpDown.Value = new decimal( new int[] { + 10, + 0, + 0, + 0} ); + this.maxPowerUpDown.Visible = false; + this.maxPowerUpDown.ValueChanged += new System.EventHandler( this.maxPowerUpDown_ValueChanged ); + // + // maxPowerLabel + // + this.maxPowerLabel.AutoSize = true; + this.maxPowerLabel.Location = new System.Drawing.Point( 245, 40 ); + this.maxPowerLabel.Name = "maxPowerLabel"; + this.maxPowerLabel.Size = new System.Drawing.Size( 62, 13 ); + this.maxPowerLabel.TabIndex = 14; + this.maxPowerLabel.Text = "Max power:"; + this.maxPowerLabel.Visible = false; + // + // minPowerUpDown + // + this.minPowerUpDown.Location = new System.Drawing.Point( 10, 55 ); + this.minPowerUpDown.Maximum = new decimal( new int[] { + 127, + 0, + 0, + 0} ); + this.minPowerUpDown.Minimum = new decimal( new int[] { + 10, + 0, + 0, + 0} ); + this.minPowerUpDown.Name = "minPowerUpDown"; + this.minPowerUpDown.Size = new System.Drawing.Size( 45, 20 ); + this.minPowerUpDown.TabIndex = 13; + this.minPowerUpDown.Value = new decimal( new int[] { + 10, + 0, + 0, + 0} ); + this.minPowerUpDown.Visible = false; + this.minPowerUpDown.ValueChanged += new System.EventHandler( this.minPowerUpDown_ValueChanged ); + // + // minPowerLabel + // + this.minPowerLabel.AutoSize = true; + this.minPowerLabel.Location = new System.Drawing.Point( 10, 40 ); + this.minPowerLabel.Name = "minPowerLabel"; + this.minPowerLabel.Size = new System.Drawing.Size( 59, 13 ); + this.minPowerLabel.TabIndex = 12; + this.minPowerLabel.Text = "Min power:"; + this.minPowerLabel.Visible = false; + // + // turnControl + // + this.turnControl.Location = new System.Drawing.Point( 55, 245 ); + this.turnControl.Name = "turnControl"; + this.turnControl.Size = new System.Drawing.Size( 200, 23 ); + this.turnControl.TabIndex = 3; + this.turnControl.Text = "turnControl1"; + this.turnControl.Visible = false; + this.turnControl.PositionChanged += new AForge.Controls.SliderControl.PositionChangedHandler( this.turnControl_PositionChanged ); + // + // directControlRadio + // + this.directControlRadio.AutoSize = true; + this.directControlRadio.Location = new System.Drawing.Point( 170, 20 ); + this.directControlRadio.Name = "directControlRadio"; + this.directControlRadio.Size = new System.Drawing.Size( 88, 17 ); + this.directControlRadio.TabIndex = 2; + this.directControlRadio.Text = "Direct control"; + this.directControlRadio.UseVisualStyleBackColor = true; + this.directControlRadio.CheckedChanged += new System.EventHandler( this.directControlRadio_CheckedChanged ); + // + // predefinedCommandsRadio + // + this.predefinedCommandsRadio.AutoSize = true; + this.predefinedCommandsRadio.Checked = true; + this.predefinedCommandsRadio.Location = new System.Drawing.Point( 10, 20 ); + this.predefinedCommandsRadio.Name = "predefinedCommandsRadio"; + this.predefinedCommandsRadio.Size = new System.Drawing.Size( 130, 17 ); + this.predefinedCommandsRadio.TabIndex = 1; + this.predefinedCommandsRadio.TabStop = true; + this.predefinedCommandsRadio.Text = "Predefined commands"; + this.predefinedCommandsRadio.UseVisualStyleBackColor = true; + // + // srvDriverControl + // + this.srvDriverControl.Location = new System.Drawing.Point( 10, 50 ); + this.srvDriverControl.Name = "srvDriverControl"; + this.srvDriverControl.Size = new System.Drawing.Size( 291, 163 ); + this.srvDriverControl.TabIndex = 0; + this.srvDriverControl.SrvDrivingCommand += new SRVTest.SrvDrivingCommandHandler( this.srvDriverControl_SrvDrivingCommand ); + // + // manipulatorControl + // + this.manipulatorControl.Location = new System.Drawing.Point( 56, 40 ); + this.manipulatorControl.Name = "manipulatorControl"; + this.manipulatorControl.Size = new System.Drawing.Size( 200, 200 ); + this.manipulatorControl.TabIndex = 1; + this.manipulatorControl.Text = "manipulatorControl1"; + this.manipulatorControl.Visible = false; + this.manipulatorControl.PositionChanged += new AForge.Controls.ManipulatorControl.PositionChangedHandler( this.manipulatorControl_PositionChanged ); + // + // aboutButton + // + this.aboutButton.Location = new System.Drawing.Point( 598, 376 ); + this.aboutButton.Name = "aboutButton"; + this.aboutButton.Size = new System.Drawing.Size( 75, 23 ); + this.aboutButton.TabIndex = 12; + this.aboutButton.Text = "About"; + this.aboutButton.UseVisualStyleBackColor = true; + this.aboutButton.Click += new System.EventHandler( this.aboutButton_Click ); + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point( 10, 52 ); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size( 29, 13 ); + this.label4.TabIndex = 2; + this.label4.Text = "Port:"; + // + // portUpDown + // + this.portUpDown.Location = new System.Drawing.Point( 75, 50 ); + this.portUpDown.Maximum = new decimal( new int[] { + 65535, + 0, + 0, + 0} ); + this.portUpDown.Minimum = new decimal( new int[] { + 1, + 0, + 0, + 0} ); + this.portUpDown.Name = "portUpDown"; + this.portUpDown.Size = new System.Drawing.Size( 100, 20 ); + this.portUpDown.TabIndex = 3; + this.portUpDown.Value = new decimal( new int[] { + 10001, + 0, + 0, + 0} ); + // + // MainForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF( 6F, 13F ); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size( 685, 430 ); + this.Controls.Add( this.aboutButton ); + this.Controls.Add( this.groupBox5 ); + this.Controls.Add( this.groupBox4 ); + this.Controls.Add( this.groupBox2 ); + this.Controls.Add( this.statusStrip ); + this.Controls.Add( this.groupBox1 ); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; + this.HelpButton = true; + this.MaximizeBox = false; + this.Name = "MainForm"; + this.Text = "Surveyor SRV-1 Test"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler( this.MainForm_FormClosing ); + this.groupBox1.ResumeLayout( false ); + this.groupBox1.PerformLayout( ); + this.statusStrip.ResumeLayout( false ); + this.statusStrip.PerformLayout( ); + this.groupBox2.ResumeLayout( false ); + this.groupBox4.ResumeLayout( false ); + this.groupBox4.PerformLayout( ); + this.groupBox5.ResumeLayout( false ); + this.groupBox5.PerformLayout( ); + ( (System.ComponentModel.ISupportInitialize) ( this.maxPowerUpDown ) ).EndInit( ); + ( (System.ComponentModel.ISupportInitialize) ( this.minPowerUpDown ) ).EndInit( ); + ( (System.ComponentModel.ISupportInitialize) ( this.portUpDown ) ).EndInit( ); + this.ResumeLayout( false ); + this.PerformLayout( ); + + } + + #endregion + + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.Button disconnectButton; + private System.Windows.Forms.Button connectButton; + private System.Windows.Forms.TextBox ipBox; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.StatusStrip statusStrip; + private System.Windows.Forms.ToolStripStatusLabel statusLabel; + private System.Windows.Forms.ToolStripStatusLabel fpsLabel; + private System.Windows.Forms.GroupBox groupBox2; + private AForge.Controls.VideoSourcePlayer cameraPlayer; + private System.Windows.Forms.Timer timer; + private System.Windows.Forms.ToolStripStatusLabel versionLabel; + private System.Windows.Forms.GroupBox groupBox4; + private System.Windows.Forms.ComboBox resolutionCombo; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.ComboBox qualityCombo; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.GroupBox groupBox5; + private SrvDriverControl srvDriverControl; + private AForge.Controls.ManipulatorControl manipulatorControl; + private System.Windows.Forms.RadioButton directControlRadio; + private System.Windows.Forms.RadioButton predefinedCommandsRadio; + private AForge.Controls.SliderControl turnControl; + private System.Windows.Forms.NumericUpDown maxPowerUpDown; + private System.Windows.Forms.NumericUpDown minPowerUpDown; + private System.Windows.Forms.Label maxPowerLabel; + private System.Windows.Forms.Label minPowerLabel; + private System.Windows.Forms.Button aboutButton; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.NumericUpDown portUpDown; + } +} + diff --git a/Samples/Robotics/Surveyor/SRVTest/MainForm.cs b/Samples/Robotics/Surveyor/SRVTest/MainForm.cs new file mode 100644 index 00000000..9ae115cd --- /dev/null +++ b/Samples/Robotics/Surveyor/SRVTest/MainForm.cs @@ -0,0 +1,387 @@ +// Surveyor SRV-1 test application +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2006-2011 +// contacts@aforgenet.com +// + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; + +using AForge.Video; +using AForge.Controls; +using AForge.Robotics.Surveyor; + +namespace SRVTest +{ + public partial class MainForm : Form + { + private SRV1 srv = new SRV1( ); + + // statistics length + private const int statLength = 15; + // current statistics index + private int statIndex = 0; + // ready statistics values + private int statReady = 0; + // statistics array + private int[] statCount = new int[statLength]; + + private bool receivedFirstDrivingCommand = false; + private SRV1.MotorCommand lastMotorCommand; + + // maximum motors' power for 15 sectors + private float[] maxPowers = new float[] { 0.1f, 0.2f, 0.35f, 0.5f, 0.65f, 0.8f, 0.9f, 1.0f, + 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f }; + + private int maxMotorPower = 90; + private int minMotorPower = 50; + + // Class constructor + public MainForm( ) + { + InitializeComponent( ); + EnableContols( false ); + + minPowerUpDown.Value = minMotorPower; + maxPowerUpDown.Value = maxMotorPower; + } + + // On form closing + private void MainForm_FormClosing( object sender, FormClosingEventArgs e ) + { + Disconnect( ); + } + + // Enable/disable connection controls + private void EnableContols( bool enable ) + { + ipBox.Enabled = !enable; + portUpDown.Enabled = !enable; + connectButton.Enabled = !enable; + disconnectButton.Enabled = enable; + qualityCombo.Enabled = enable; + resolutionCombo.Enabled = enable; + srvDriverControl.Enabled = enable; + manipulatorControl.Enabled = enable; + turnControl.Enabled = enable; + } + + // On "Connect" button click + private void connectButton_Click( object sender, EventArgs e ) + { + if ( Connect( ipBox.Text, (int) portUpDown.Value ) ) + { + EnableContols( true ); + statusLabel.Text = "Connected"; + + qualityCombo.SelectedIndex = 6; + resolutionCombo.SelectedIndex = 1; + } + else + { + MessageBox.Show( "Failed connecting to SRV-1.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error ); + } + } + + // On "Disconnect" buttong click + private void disconnectButton_Click( object sender, EventArgs e ) + { + Disconnect( ); + statusLabel.Text = "Disconnected"; + fpsLabel.Text = string.Empty; + versionLabel.Text = string.Empty; + } + + // Connect to SRV-1 + private bool Connect( string host, int port ) + { + bool result = true; + + try + { + srv.Connect( host, port); + srv.EnableFailsafeMode( 0, 0 ); + + srv.FlipVideo( false ); + srv.SetQuality( 7 ); + srv.SetResolution( SRV1.VideoResolution.Small ); + + // start left camera + SRV1Camera camera = srv.GetCamera( ); + cameraPlayer.VideoSource = camera; + cameraPlayer.Start( ); + + versionLabel.Text = srv.GetVersion( ); + receivedFirstDrivingCommand = false; + + // reset statistics + statIndex = statReady = 0; + + // start timer + timer.Start( ); + } + catch + { + result = false; + Disconnect( ); + } + + return result; + } + + // Disconnect from SRV-1 + private void Disconnect( ) + { + if ( srv.IsConnected ) + { + timer.Stop( ); + + if ( cameraPlayer.VideoSource != null ) + { + cameraPlayer.VideoSource.SignalToStop( ); + cameraPlayer.VideoSource.WaitForStop( ); + cameraPlayer.VideoSource = null; + } + + srv.StopMotors( ); + srv.Disconnect( ); + + EnableContols( false ); + } + } + + // On timer's tick + private void timer_Tick( object sender, EventArgs e ) + { + // update camaeras' FPS + if ( cameraPlayer.VideoSource != null ) + { + // get number of frames for the last second + statCount[statIndex] = cameraPlayer.VideoSource.FramesReceived; + + // increment indexes + if ( ++statIndex >= statLength ) + statIndex = 0; + if ( statReady < statLength ) + statReady++; + + float fps = 0; + + // calculate average value + for ( int i = 0; i < statReady; i++ ) + { + fps += statCount[i]; + } + fps /= statReady; + + fpsLabel.Text = string.Format( "Camera: {0:F2} fps", fps ); + } + } + + // Set video quality + private void qualityCombo_SelectedIndexChanged( object sender, EventArgs e ) + { + if ( srv.IsConnected ) + { + try + { + srv.SetQuality( qualityCombo.SelectedIndex + 1 ); + + // reset FPS statistics + statIndex = statReady = 0; + } + catch ( Exception ex ) + { + System.Diagnostics.Debug.WriteLine( "## " + ex.Message ); + } + } + } + + // Set video resolution + private void resolutionCombo_SelectedIndexChanged( object sender, EventArgs e ) + { + if ( srv.IsConnected ) + { + try + { + SRV1.VideoResolution resolution = SRV1.VideoResolution.Small; + + switch ( resolutionCombo.SelectedIndex ) + { + case 0: + resolution = SRV1.VideoResolution.Tiny; + break; + case 2: + resolution = SRV1.VideoResolution.Medium; + break; + } + + srv.SetResolution( resolution ); + + // reset FPS statistics + statIndex = statReady = 0; + } + catch ( Exception ex ) + { + System.Diagnostics.Debug.WriteLine( "## " + ex.Message ); + } + } + } + + private void srvDriverControl_SrvDrivingCommand( object sender, SRV1.MotorCommand command ) + { + if ( srv.IsConnected ) + { + try + { + if ( !receivedFirstDrivingCommand ) + { + // use one direct control command first + srv.StopMotors( ); + } + + // send new command + srv.ControlMotors( command ); + + if ( ( ( command == SRV1.MotorCommand.DecreaseSpeed ) || + ( command == SRV1.MotorCommand.IncreaseSpeed ) ) && + ( receivedFirstDrivingCommand ) && + ( lastMotorCommand != SRV1.MotorCommand.Stop ) ) + { + // resend last command to get effect of speed increase/decrease + srv.ControlMotors( lastMotorCommand ); + } + else + { + receivedFirstDrivingCommand = true; + lastMotorCommand = command; + } + } + catch ( Exception ex ) + { + System.Diagnostics.Debug.WriteLine( "## " + ex.Message ); + } + } + } + + // Switch control type + private void directControlRadio_CheckedChanged( object sender, EventArgs e ) + { + bool directControlEnabled = directControlRadio.Checked; + + manipulatorControl.Visible = directControlEnabled; + turnControl.Visible = directControlEnabled; + minPowerLabel.Visible = directControlEnabled; + maxPowerLabel.Visible = directControlEnabled; + minPowerUpDown.Visible = directControlEnabled; + maxPowerUpDown.Visible = directControlEnabled; + + srvDriverControl.Visible = !directControlEnabled; + } + + // Driving with "software joystick" + private void manipulatorControl_PositionChanged( object sender, ManipulatorControl.PositionEventArgs eventArgs ) + { + float leftMotorPower = 0f, rightMotorPower = 0f; + + // calculate robot's direction and speed + if ( ( eventArgs.X != 0 ) || ( eventArgs.Y != 0 ) ) + { + // radius (distance from center) + double r = eventArgs.R; + // theta + double t = eventArgs.Theta; + + if ( t > 180 ) + t -= 180; + + // index of maximum power + int maxPowerIndex = (int) ( t / 180 * maxPowers.Length ); + + // check direction to move + if ( eventArgs.Y > 0 ) + { + // forward direction + leftMotorPower = (float) ( r * maxPowers[maxPowers.Length - maxPowerIndex - 1] ); + rightMotorPower = (float) ( r * maxPowers[maxPowerIndex] ); + } + else + { + // backward direction + leftMotorPower = (float) ( -r * maxPowers[maxPowerIndex] ); + rightMotorPower = (float) ( -r * maxPowers[maxPowers.Length - maxPowerIndex - 1] ); + } + } + + DriveMotors( leftMotorPower, rightMotorPower ); + } + + // Robot turning on place - opposite directions for motors + private void turnControl_PositionChanged( object sender, float x ) + { + DriveMotors( x, -x ); + } + + private void DriveMotors( float leftMotor, float rightMotor ) + { + int leftMotorVelocity = 0; + int rightMotorVelocity = 0; + + // make sure velocities are in [min, max] range + int delta = maxMotorPower - minMotorPower; + + if ( leftMotor != 0 ) + { + if ( leftMotor > 0 ) + leftMotorVelocity = minMotorPower + (int) ( delta * leftMotor ); + else + leftMotorVelocity = -minMotorPower + (int) ( delta * leftMotor ); + } + if ( rightMotor != 0 ) + { + if ( rightMotor > 0 ) + rightMotorVelocity = minMotorPower + (int) ( delta * rightMotor ); + else + rightMotorVelocity = -minMotorPower + (int) ( delta * rightMotor ); + } + + System.Diagnostics.Debug.WriteLine( string.Format( "l: {0}, r: {1}", leftMotorVelocity, rightMotorVelocity ) ); + if ( srv.IsConnected ) + { + try + { + srv.RunMotors( leftMotorVelocity, rightMotorVelocity, 0 ); + } + catch ( Exception ex ) + { + System.Diagnostics.Debug.WriteLine( "## " + ex.Message ); + } + } + } + + // Changing motors' power limits + private void minPowerUpDown_ValueChanged( object sender, EventArgs e ) + { + minMotorPower = (int) minPowerUpDown.Value; + } + + private void maxPowerUpDown_ValueChanged( object sender, EventArgs e ) + { + maxMotorPower = (int) maxPowerUpDown.Value; + } + + private void aboutButton_Click( object sender, EventArgs e ) + { + AboutForm form = new AboutForm( ); + + form.ShowDialog( ); + } + } +} diff --git a/Samples/Robotics/Surveyor/SRVTest/MainForm.resx b/Samples/Robotics/Surveyor/SRVTest/MainForm.resx new file mode 100644 index 00000000..6a6d4259 --- /dev/null +++ b/Samples/Robotics/Surveyor/SRVTest/MainForm.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 126, 17 + + \ No newline at end of file diff --git a/Samples/Robotics/Surveyor/SRVTest/Program.cs b/Samples/Robotics/Surveyor/SRVTest/Program.cs new file mode 100644 index 00000000..b7ede7a1 --- /dev/null +++ b/Samples/Robotics/Surveyor/SRVTest/Program.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Windows.Forms; + +namespace SRVTest +{ + static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main( ) + { + Application.EnableVisualStyles( ); + Application.SetCompatibleTextRenderingDefault( false ); + Application.Run( new MainForm( ) ); + } + } +} diff --git a/Samples/Robotics/Surveyor/SRVTest/Properties/AssemblyInfo.cs b/Samples/Robotics/Surveyor/SRVTest/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..d2ec61e4 --- /dev/null +++ b/Samples/Robotics/Surveyor/SRVTest/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle( "SRV Test" )] +[assembly: AssemblyDescription( "SRV Test sample" )] +[assembly: AssemblyConfiguration( "" )] +[assembly: AssemblyCompany( "AForge" )] +[assembly: AssemblyProduct( "AForge.NET" )] +[assembly: AssemblyCopyright( "AForge © 2009" )] +[assembly: AssemblyTrademark( "" )] +[assembly: AssemblyCulture( "" )] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible( false )] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid( "dc1fd481-f3b9-4d4a-b823-65db82f238f5" )] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion( "1.0.2.0" )] +[assembly: AssemblyFileVersion( "1.0.2.0" )] diff --git a/Samples/Robotics/Surveyor/SRVTest/Properties/Resources.Designer.cs b/Samples/Robotics/Surveyor/SRVTest/Properties/Resources.Designer.cs new file mode 100644 index 00000000..d8ea451c --- /dev/null +++ b/Samples/Robotics/Surveyor/SRVTest/Properties/Resources.Designer.cs @@ -0,0 +1,70 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.4200 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace SRVTest.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("SRVTest.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + internal static System.Drawing.Bitmap srv { + get { + object obj = ResourceManager.GetObject("srv", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/Samples/Robotics/Surveyor/SRVTest/Properties/Resources.resx b/Samples/Robotics/Surveyor/SRVTest/Properties/Resources.resx new file mode 100644 index 00000000..9c99716e --- /dev/null +++ b/Samples/Robotics/Surveyor/SRVTest/Properties/Resources.resx @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + ..\Resources\srv.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/Samples/Robotics/Surveyor/SRVTest/Properties/Settings.Designer.cs b/Samples/Robotics/Surveyor/SRVTest/Properties/Settings.Designer.cs new file mode 100644 index 00000000..320c8cf5 --- /dev/null +++ b/Samples/Robotics/Surveyor/SRVTest/Properties/Settings.Designer.cs @@ -0,0 +1,30 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.3074 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace SRVTest.Properties +{ + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute( )] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute( "Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "9.0.0.0" )] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase + { + + private static Settings defaultInstance = ( (Settings) ( global::System.Configuration.ApplicationSettingsBase.Synchronized( new Settings( ) ) ) ); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/Samples/Robotics/Surveyor/SRVTest/Properties/Settings.settings b/Samples/Robotics/Surveyor/SRVTest/Properties/Settings.settings new file mode 100644 index 00000000..39645652 --- /dev/null +++ b/Samples/Robotics/Surveyor/SRVTest/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Samples/Robotics/Surveyor/SRVTest/Resources/srv.png b/Samples/Robotics/Surveyor/SRVTest/Resources/srv.png new file mode 100644 index 00000000..a6247268 Binary files /dev/null and b/Samples/Robotics/Surveyor/SRVTest/Resources/srv.png differ diff --git a/Samples/Robotics/Surveyor/SRVTest/SRVTest.csproj b/Samples/Robotics/Surveyor/SRVTest/SRVTest.csproj new file mode 100644 index 00000000..8de95504 --- /dev/null +++ b/Samples/Robotics/Surveyor/SRVTest/SRVTest.csproj @@ -0,0 +1,160 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {FF26D770-5F16-4E26-9C80-BFE1026573DF} + WinExe + Properties + SRVTest + SRVTest + v2.0 + 512 + + + 3.5 + + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + False + ..\..\..\..\Release\AForge.Controls.dll + + + False + ..\..\..\..\Release\AForge.Imaging.dll + + + False + ..\..\..\..\Release\AForge.Robotics.Surveyor.dll + + + False + ..\..\..\..\Release\AForge.Video.dll + + + + + + + + + + + Form + + + AboutForm.cs + + + UserControl + + + SrvDriverControl.cs + + + Form + + + MainForm.cs + + + + + AboutForm.cs + + + SrvDriverControl.cs + + + MainForm.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + True + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + + + + False + Microsoft .NET Framework 4 %28x86 and x64%29 + true + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 3.1 + true + + + + + \ No newline at end of file diff --git a/Samples/Robotics/Surveyor/SRVTest/SRVTest.sln b/Samples/Robotics/Surveyor/SRVTest/SRVTest.sln new file mode 100644 index 00000000..e81cd580 --- /dev/null +++ b/Samples/Robotics/Surveyor/SRVTest/SRVTest.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual C# Express 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SRVTest", "SRVTest.csproj", "{FF26D770-5F16-4E26-9C80-BFE1026573DF}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {FF26D770-5F16-4E26-9C80-BFE1026573DF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FF26D770-5F16-4E26-9C80-BFE1026573DF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FF26D770-5F16-4E26-9C80-BFE1026573DF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FF26D770-5F16-4E26-9C80-BFE1026573DF}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Samples/Robotics/Surveyor/SRVTest/SrvDriverControl.Designer.cs b/Samples/Robotics/Surveyor/SRVTest/SrvDriverControl.Designer.cs new file mode 100644 index 00000000..ebb797bd --- /dev/null +++ b/Samples/Robotics/Surveyor/SRVTest/SrvDriverControl.Designer.cs @@ -0,0 +1,190 @@ +namespace SRVTest +{ + partial class SrvDriverControl + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose( bool disposing ) + { + if ( disposing && ( components != null ) ) + { + components.Dispose( ); + } + base.Dispose( disposing ); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent( ) + { + this.stopButton = new System.Windows.Forms.Button( ); + this.forwardButton = new System.Windows.Forms.Button( ); + this.backwardButton = new System.Windows.Forms.Button( ); + this.leftButton = new System.Windows.Forms.Button( ); + this.leftBackwardButton = new System.Windows.Forms.Button( ); + this.rightBackwardButton = new System.Windows.Forms.Button( ); + this.leftDriftButton = new System.Windows.Forms.Button( ); + this.rightButton = new System.Windows.Forms.Button( ); + this.rightDriftButton = new System.Windows.Forms.Button( ); + this.speedUpButton = new System.Windows.Forms.Button( ); + this.slowDownButton = new System.Windows.Forms.Button( ); + this.SuspendLayout( ); + // + // stopButton + // + this.stopButton.BackColor = System.Drawing.Color.LightCoral; + this.stopButton.Location = new System.Drawing.Point( 100, 40 ); + this.stopButton.Name = "stopButton"; + this.stopButton.Size = new System.Drawing.Size( 90, 30 ); + this.stopButton.TabIndex = 4; + this.stopButton.Text = "&Stop"; + this.stopButton.UseVisualStyleBackColor = false; + this.stopButton.Click += new System.EventHandler( this.stopButton_Click ); + // + // forwardButton + // + this.forwardButton.Location = new System.Drawing.Point( 100, 0 ); + this.forwardButton.Name = "forwardButton"; + this.forwardButton.Size = new System.Drawing.Size( 90, 30 ); + this.forwardButton.TabIndex = 1; + this.forwardButton.Text = "&Forward"; + this.forwardButton.UseVisualStyleBackColor = true; + this.forwardButton.Click += new System.EventHandler( this.forwardButton_Click ); + // + // backwardButton + // + this.backwardButton.Location = new System.Drawing.Point( 100, 80 ); + this.backwardButton.Name = "backwardButton"; + this.backwardButton.Size = new System.Drawing.Size( 90, 30 ); + this.backwardButton.TabIndex = 7; + this.backwardButton.Text = "&Backward"; + this.backwardButton.UseVisualStyleBackColor = true; + this.backwardButton.Click += new System.EventHandler( this.backwardButton_Click ); + // + // leftButton + // + this.leftButton.Location = new System.Drawing.Point( 0, 0 ); + this.leftButton.Name = "leftButton"; + this.leftButton.Size = new System.Drawing.Size( 90, 30 ); + this.leftButton.TabIndex = 0; + this.leftButton.Text = "&Left"; + this.leftButton.UseVisualStyleBackColor = true; + this.leftButton.Click += new System.EventHandler( this.leftButton_Click ); + // + // leftBackwardButton + // + this.leftBackwardButton.Location = new System.Drawing.Point( 0, 80 ); + this.leftBackwardButton.Name = "leftBackwardButton"; + this.leftBackwardButton.Size = new System.Drawing.Size( 90, 30 ); + this.leftBackwardButton.TabIndex = 6; + this.leftBackwardButton.Text = "Left backword"; + this.leftBackwardButton.UseVisualStyleBackColor = true; + this.leftBackwardButton.Click += new System.EventHandler( this.leftBackwardButton_Click ); + // + // rightBackwardButton + // + this.rightBackwardButton.Location = new System.Drawing.Point( 200, 80 ); + this.rightBackwardButton.Name = "rightBackwardButton"; + this.rightBackwardButton.Size = new System.Drawing.Size( 90, 30 ); + this.rightBackwardButton.TabIndex = 8; + this.rightBackwardButton.Text = "Right backword"; + this.rightBackwardButton.UseVisualStyleBackColor = true; + this.rightBackwardButton.Click += new System.EventHandler( this.rightBackwardButton_Click ); + // + // leftDriftButton + // + this.leftDriftButton.Location = new System.Drawing.Point( 0, 40 ); + this.leftDriftButton.Name = "leftDriftButton"; + this.leftDriftButton.Size = new System.Drawing.Size( 90, 30 ); + this.leftDriftButton.TabIndex = 3; + this.leftDriftButton.Text = "Left drift"; + this.leftDriftButton.UseVisualStyleBackColor = true; + this.leftDriftButton.Click += new System.EventHandler( this.leftDriftButton_Click ); + // + // rightButton + // + this.rightButton.Location = new System.Drawing.Point( 200, 0 ); + this.rightButton.Name = "rightButton"; + this.rightButton.Size = new System.Drawing.Size( 90, 30 ); + this.rightButton.TabIndex = 2; + this.rightButton.Text = "&Right"; + this.rightButton.UseVisualStyleBackColor = true; + this.rightButton.Click += new System.EventHandler( this.rightButton_Click ); + // + // rightDriftButton + // + this.rightDriftButton.Location = new System.Drawing.Point( 200, 40 ); + this.rightDriftButton.Name = "rightDriftButton"; + this.rightDriftButton.Size = new System.Drawing.Size( 90, 30 ); + this.rightDriftButton.TabIndex = 5; + this.rightDriftButton.Text = "Right drift"; + this.rightDriftButton.UseVisualStyleBackColor = true; + this.rightDriftButton.Click += new System.EventHandler( this.rightDriftButton_Click ); + // + // speedUpButton + // + this.speedUpButton.Location = new System.Drawing.Point( 0, 130 ); + this.speedUpButton.Name = "speedUpButton"; + this.speedUpButton.Size = new System.Drawing.Size( 90, 30 ); + this.speedUpButton.TabIndex = 9; + this.speedUpButton.Text = "Speed up"; + this.speedUpButton.UseVisualStyleBackColor = true; + this.speedUpButton.Click += new System.EventHandler( this.speedUpButton_Click ); + // + // slowDownButton + // + this.slowDownButton.Location = new System.Drawing.Point( 200, 130 ); + this.slowDownButton.Name = "slowDownButton"; + this.slowDownButton.Size = new System.Drawing.Size( 90, 30 ); + this.slowDownButton.TabIndex = 10; + this.slowDownButton.Text = "Slow down"; + this.slowDownButton.UseVisualStyleBackColor = true; + this.slowDownButton.Click += new System.EventHandler( this.slowDownButton_Click ); + // + // SrvDriverControl + // + this.AutoScaleDimensions = new System.Drawing.SizeF( 6F, 13F ); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add( this.slowDownButton ); + this.Controls.Add( this.speedUpButton ); + this.Controls.Add( this.rightDriftButton ); + this.Controls.Add( this.leftDriftButton ); + this.Controls.Add( this.rightBackwardButton ); + this.Controls.Add( this.leftBackwardButton ); + this.Controls.Add( this.rightButton ); + this.Controls.Add( this.leftButton ); + this.Controls.Add( this.backwardButton ); + this.Controls.Add( this.forwardButton ); + this.Controls.Add( this.stopButton ); + this.Name = "SrvDriverControl"; + this.Size = new System.Drawing.Size( 290, 160 ); + this.ResumeLayout( false ); + + } + + #endregion + + private System.Windows.Forms.Button stopButton; + private System.Windows.Forms.Button forwardButton; + private System.Windows.Forms.Button backwardButton; + private System.Windows.Forms.Button leftButton; + private System.Windows.Forms.Button leftBackwardButton; + private System.Windows.Forms.Button rightBackwardButton; + private System.Windows.Forms.Button leftDriftButton; + private System.Windows.Forms.Button rightButton; + private System.Windows.Forms.Button rightDriftButton; + private System.Windows.Forms.Button speedUpButton; + private System.Windows.Forms.Button slowDownButton; + } +} diff --git a/Samples/Robotics/Surveyor/SRVTest/SrvDriverControl.cs b/Samples/Robotics/Surveyor/SRVTest/SrvDriverControl.cs new file mode 100644 index 00000000..b980fd2f --- /dev/null +++ b/Samples/Robotics/Surveyor/SRVTest/SrvDriverControl.cs @@ -0,0 +1,95 @@ +// Surveyor SRV-1 test application +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2007-2010 +// andrew.kirillov@aforgenet.com +// + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.Data; +using System.Text; +using System.Windows.Forms; + +using AForge.Robotics.Surveyor; + +namespace SRVTest +{ + public delegate void SrvDrivingCommandHandler( object sender, SRV1.MotorCommand command ); + + public partial class SrvDriverControl : UserControl + { + public event SrvDrivingCommandHandler SrvDrivingCommand; + + public SrvDriverControl( ) + { + InitializeComponent( ); + } + + private void DispatchCommand( SRV1.MotorCommand command ) + { + if ( SrvDrivingCommand != null ) + { + SrvDrivingCommand( this, command ); + } + } + + private void leftButton_Click( object sender, EventArgs e ) + { + DispatchCommand( SRV1.MotorCommand.DriveLeft ); + } + + private void forwardButton_Click( object sender, EventArgs e ) + { + DispatchCommand( SRV1.MotorCommand.DriveForward ); + } + + private void rightButton_Click( object sender, EventArgs e ) + { + DispatchCommand( SRV1.MotorCommand.DriveRight ); + } + + private void leftDriftButton_Click( object sender, EventArgs e ) + { + DispatchCommand( SRV1.MotorCommand.DriftLeft ); + } + + private void stopButton_Click( object sender, EventArgs e ) + { + DispatchCommand( SRV1.MotorCommand.Stop ); + } + + private void rightDriftButton_Click( object sender, EventArgs e ) + { + DispatchCommand( SRV1.MotorCommand.DriftRight ); + } + + private void leftBackwardButton_Click( object sender, EventArgs e ) + { + DispatchCommand( SRV1.MotorCommand.DriveBackLeft ); + } + + private void backwardButton_Click( object sender, EventArgs e ) + { + DispatchCommand( SRV1.MotorCommand.DriveBack ); + } + + private void rightBackwardButton_Click( object sender, EventArgs e ) + { + DispatchCommand( SRV1.MotorCommand.DriveBackRight ); + } + + private void speedUpButton_Click( object sender, EventArgs e ) + { + DispatchCommand( SRV1.MotorCommand.IncreaseSpeed ); + } + + private void slowDownButton_Click( object sender, EventArgs e ) + { + DispatchCommand( SRV1.MotorCommand.DecreaseSpeed ); + } + } +} diff --git a/Samples/Robotics/Surveyor/SRVTest/SrvDriverControl.resx b/Samples/Robotics/Surveyor/SRVTest/SrvDriverControl.resx new file mode 100644 index 00000000..19dc0dd8 --- /dev/null +++ b/Samples/Robotics/Surveyor/SRVTest/SrvDriverControl.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Samples/Robotics/Surveyor/SVSTest/AboutForm.Designer.cs b/Samples/Robotics/Surveyor/SVSTest/AboutForm.Designer.cs new file mode 100644 index 00000000..5f51ff57 --- /dev/null +++ b/Samples/Robotics/Surveyor/SVSTest/AboutForm.Designer.cs @@ -0,0 +1,145 @@ +namespace SVSTest +{ + partial class AboutForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose( bool disposing ) + { + if ( disposing && ( components != null ) ) + { + components.Dispose( ); + } + base.Dispose( disposing ); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent( ) + { + this.panel1 = new System.Windows.Forms.Panel( ); + this.emailLabel = new System.Windows.Forms.LinkLabel( ); + this.label3 = new System.Windows.Forms.Label( ); + this.aforgeLabel = new System.Windows.Forms.LinkLabel( ); + this.label2 = new System.Windows.Forms.Label( ); + this.label1 = new System.Windows.Forms.Label( ); + this.pictureBox1 = new System.Windows.Forms.PictureBox( ); + this.panel1.SuspendLayout( ); + ( (System.ComponentModel.ISupportInitialize) ( this.pictureBox1 ) ).BeginInit( ); + this.SuspendLayout( ); + // + // panel1 + // + this.panel1.Controls.Add( this.emailLabel ); + this.panel1.Controls.Add( this.label3 ); + this.panel1.Controls.Add( this.aforgeLabel ); + this.panel1.Controls.Add( this.label2 ); + this.panel1.Controls.Add( this.label1 ); + this.panel1.Location = new System.Drawing.Point( 115, 12 ); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size( 242, 139 ); + this.panel1.TabIndex = 5; + // + // emailLabel + // + this.emailLabel.AutoSize = true; + this.emailLabel.Location = new System.Drawing.Point( 45, 108 ); + this.emailLabel.Name = "emailLabel"; + this.emailLabel.Size = new System.Drawing.Size( 153, 13 ); + this.emailLabel.TabIndex = 5; + this.emailLabel.TabStop = true; + this.emailLabel.Text = "andrew.kirillov@aforgenet.com"; + this.emailLabel.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler( this.LinkClicked ); + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point( 25, 93 ); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size( 192, 13 ); + this.label3.TabIndex = 4; + this.label3.Text = "Copyright © 2009-2010, Andrew Kirillov"; + // + // aforgeLabel + // + this.aforgeLabel.AutoSize = true; + this.aforgeLabel.Location = new System.Drawing.Point( 25, 58 ); + this.aforgeLabel.Name = "aforgeLabel"; + this.aforgeLabel.Size = new System.Drawing.Size( 192, 13 ); + this.aforgeLabel.TabIndex = 3; + this.aforgeLabel.TabStop = true; + this.aforgeLabel.Text = "http://www.aforgenet.com/framework/"; + this.aforgeLabel.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler( this.LinkClicked ); + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point( 9, 43 ); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size( 225, 13 ); + this.label2.TabIndex = 2; + this.label2.Text = "Sample application of AForge.NET framework:"; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point( 59, 18 ); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size( 124, 13 ); + this.label1.TabIndex = 1; + this.label1.Text = "Surveyor SVS Test 1.0.2"; + // + // pictureBox1 + // + this.pictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.pictureBox1.Image = global::SVSTest.Properties.Resources.svs; + this.pictureBox1.Location = new System.Drawing.Point( 10, 52 ); + this.pictureBox1.Name = "pictureBox1"; + this.pictureBox1.Size = new System.Drawing.Size( 98, 59 ); + this.pictureBox1.TabIndex = 6; + this.pictureBox1.TabStop = false; + // + // AboutForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF( 6F, 13F ); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size( 369, 162 ); + this.Controls.Add( this.pictureBox1 ); + this.Controls.Add( this.panel1 ); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "AboutForm"; + this.ShowIcon = false; + this.ShowInTaskbar = false; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "About"; + this.panel1.ResumeLayout( false ); + this.panel1.PerformLayout( ); + ( (System.ComponentModel.ISupportInitialize) ( this.pictureBox1 ) ).EndInit( ); + this.ResumeLayout( false ); + + } + + #endregion + + private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.LinkLabel emailLabel; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.LinkLabel aforgeLabel; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.PictureBox pictureBox1; + } +} \ No newline at end of file diff --git a/Samples/Robotics/Surveyor/SVSTest/AboutForm.cs b/Samples/Robotics/Surveyor/SVSTest/AboutForm.cs new file mode 100644 index 00000000..0a08e0ca --- /dev/null +++ b/Samples/Robotics/Surveyor/SVSTest/AboutForm.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; + +namespace SVSTest +{ + public partial class AboutForm : Form + { + public AboutForm( ) + { + InitializeComponent( ); + + // initialize links + emailLabel.Links.Add( 0, emailLabel.Text.Length, "mailto:andrew.kirillov@aforgenet.com" ); + aforgeLabel.Links.Add( 0, aforgeLabel.Text.Length, "http://www.aforgenet.com/framework/" ); + } + + private void LinkClicked( object sender, LinkLabelLinkClickedEventArgs e ) + { + System.Diagnostics.Process.Start( e.Link.LinkData.ToString( ) ); + } + } +} diff --git a/Samples/Robotics/Surveyor/SVSTest/AboutForm.resx b/Samples/Robotics/Surveyor/SVSTest/AboutForm.resx new file mode 100644 index 00000000..19dc0dd8 --- /dev/null +++ b/Samples/Robotics/Surveyor/SVSTest/AboutForm.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Samples/Robotics/Surveyor/SVSTest/MainForm.Designer.cs b/Samples/Robotics/Surveyor/SVSTest/MainForm.Designer.cs new file mode 100644 index 00000000..97652578 --- /dev/null +++ b/Samples/Robotics/Surveyor/SVSTest/MainForm.Designer.cs @@ -0,0 +1,506 @@ +namespace SVSTest +{ + partial class MainForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose( bool disposing ) + { + if ( disposing && ( components != null ) ) + { + components.Dispose( ); + } + base.Dispose( disposing ); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent( ) + { + this.components = new System.ComponentModel.Container( ); + this.groupBox1 = new System.Windows.Forms.GroupBox( ); + this.disconnectButton = new System.Windows.Forms.Button( ); + this.connectButton = new System.Windows.Forms.Button( ); + this.ipBox = new System.Windows.Forms.TextBox( ); + this.label1 = new System.Windows.Forms.Label( ); + this.statusStrip = new System.Windows.Forms.StatusStrip( ); + this.statusLabel = new System.Windows.Forms.ToolStripStatusLabel( ); + this.versionLabel = new System.Windows.Forms.ToolStripStatusLabel( ); + this.fpsLabel = new System.Windows.Forms.ToolStripStatusLabel( ); + this.groupBox2 = new System.Windows.Forms.GroupBox( ); + this.leftCameraPlayer = new AForge.Controls.VideoSourcePlayer( ); + this.groupBox3 = new System.Windows.Forms.GroupBox( ); + this.rightCameraPlayer = new AForge.Controls.VideoSourcePlayer( ); + this.timer = new System.Windows.Forms.Timer( this.components ); + this.showStereoButton = new System.Windows.Forms.Button( ); + this.groupBox4 = new System.Windows.Forms.GroupBox( ); + this.resolutionCombo = new System.Windows.Forms.ComboBox( ); + this.label3 = new System.Windows.Forms.Label( ); + this.qualityCombo = new System.Windows.Forms.ComboBox( ); + this.label2 = new System.Windows.Forms.Label( ); + this.groupBox5 = new System.Windows.Forms.GroupBox( ); + this.maxPowerUpDown = new System.Windows.Forms.NumericUpDown( ); + this.maxPowerLabel = new System.Windows.Forms.Label( ); + this.minPowerUpDown = new System.Windows.Forms.NumericUpDown( ); + this.minPowerLabel = new System.Windows.Forms.Label( ); + this.directControlRadio = new System.Windows.Forms.RadioButton( ); + this.predefinedCommandsRadio = new System.Windows.Forms.RadioButton( ); + this.aboutButton = new System.Windows.Forms.Button( ); + this.turnControl = new AForge.Controls.SliderControl( ); + this.srvDriverControl = new SVSTest.SrvDriverControl( ); + this.manipulatorControl = new AForge.Controls.ManipulatorControl( ); + this.groupBox1.SuspendLayout( ); + this.statusStrip.SuspendLayout( ); + this.groupBox2.SuspendLayout( ); + this.groupBox3.SuspendLayout( ); + this.groupBox4.SuspendLayout( ); + this.groupBox5.SuspendLayout( ); + ( (System.ComponentModel.ISupportInitialize) ( this.maxPowerUpDown ) ).BeginInit( ); + ( (System.ComponentModel.ISupportInitialize) ( this.minPowerUpDown ) ).BeginInit( ); + this.SuspendLayout( ); + // + // groupBox1 + // + this.groupBox1.Controls.Add( this.disconnectButton ); + this.groupBox1.Controls.Add( this.connectButton ); + this.groupBox1.Controls.Add( this.ipBox ); + this.groupBox1.Controls.Add( this.label1 ); + this.groupBox1.Location = new System.Drawing.Point( 10, 10 ); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size( 342, 60 ); + this.groupBox1.TabIndex = 2; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "SVS Connection"; + // + // disconnectButton + // + this.disconnectButton.Enabled = false; + this.disconnectButton.Location = new System.Drawing.Point( 260, 24 ); + this.disconnectButton.Name = "disconnectButton"; + this.disconnectButton.Size = new System.Drawing.Size( 75, 23 ); + this.disconnectButton.TabIndex = 3; + this.disconnectButton.Text = "&Disconnect"; + this.disconnectButton.UseVisualStyleBackColor = true; + this.disconnectButton.Click += new System.EventHandler( this.disconnectButton_Click ); + // + // connectButton + // + this.connectButton.Location = new System.Drawing.Point( 180, 24 ); + this.connectButton.Name = "connectButton"; + this.connectButton.Size = new System.Drawing.Size( 75, 23 ); + this.connectButton.TabIndex = 2; + this.connectButton.Text = "&Connect"; + this.connectButton.UseVisualStyleBackColor = true; + this.connectButton.Click += new System.EventHandler( this.connectButton_Click ); + // + // ipBox + // + this.ipBox.Location = new System.Drawing.Point( 75, 25 ); + this.ipBox.Name = "ipBox"; + this.ipBox.Size = new System.Drawing.Size( 100, 20 ); + this.ipBox.TabIndex = 1; + this.ipBox.Text = "169.254.0.10"; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point( 10, 27 ); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size( 61, 13 ); + this.label1.TabIndex = 0; + this.label1.Text = "IP Address:"; + // + // statusStrip + // + this.statusStrip.Items.AddRange( new System.Windows.Forms.ToolStripItem[] { + this.statusLabel, + this.versionLabel, + this.fpsLabel} ); + this.statusStrip.Location = new System.Drawing.Point( 0, 362 ); + this.statusStrip.Name = "statusStrip"; + this.statusStrip.Size = new System.Drawing.Size( 1032, 22 ); + this.statusStrip.TabIndex = 3; + // + // statusLabel + // + this.statusLabel.AutoSize = false; + this.statusLabel.BorderSides = ( (System.Windows.Forms.ToolStripStatusLabelBorderSides) ( ( ( ( System.Windows.Forms.ToolStripStatusLabelBorderSides.Left | System.Windows.Forms.ToolStripStatusLabelBorderSides.Top ) + | System.Windows.Forms.ToolStripStatusLabelBorderSides.Right ) + | System.Windows.Forms.ToolStripStatusLabelBorderSides.Bottom ) ) ); + this.statusLabel.BorderStyle = System.Windows.Forms.Border3DStyle.SunkenInner; + this.statusLabel.Name = "statusLabel"; + this.statusLabel.Size = new System.Drawing.Size( 100, 17 ); + this.statusLabel.Text = "Disconnected"; + this.statusLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // versionLabel + // + this.versionLabel.AutoSize = false; + this.versionLabel.BorderSides = ( (System.Windows.Forms.ToolStripStatusLabelBorderSides) ( ( ( ( System.Windows.Forms.ToolStripStatusLabelBorderSides.Left | System.Windows.Forms.ToolStripStatusLabelBorderSides.Top ) + | System.Windows.Forms.ToolStripStatusLabelBorderSides.Right ) + | System.Windows.Forms.ToolStripStatusLabelBorderSides.Bottom ) ) ); + this.versionLabel.BorderStyle = System.Windows.Forms.Border3DStyle.SunkenInner; + this.versionLabel.Name = "versionLabel"; + this.versionLabel.Size = new System.Drawing.Size( 350, 17 ); + this.versionLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // fpsLabel + // + this.fpsLabel.BorderSides = ( (System.Windows.Forms.ToolStripStatusLabelBorderSides) ( ( ( ( System.Windows.Forms.ToolStripStatusLabelBorderSides.Left | System.Windows.Forms.ToolStripStatusLabelBorderSides.Top ) + | System.Windows.Forms.ToolStripStatusLabelBorderSides.Right ) + | System.Windows.Forms.ToolStripStatusLabelBorderSides.Bottom ) ) ); + this.fpsLabel.BorderStyle = System.Windows.Forms.Border3DStyle.SunkenInner; + this.fpsLabel.Name = "fpsLabel"; + this.fpsLabel.Size = new System.Drawing.Size( 567, 17 ); + this.fpsLabel.Spring = true; + this.fpsLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // groupBox2 + // + this.groupBox2.Controls.Add( this.leftCameraPlayer ); + this.groupBox2.Location = new System.Drawing.Point( 10, 75 ); + this.groupBox2.Name = "groupBox2"; + this.groupBox2.Size = new System.Drawing.Size( 342, 275 ); + this.groupBox2.TabIndex = 4; + this.groupBox2.TabStop = false; + this.groupBox2.Text = "Left Camera View"; + // + // leftCameraPlayer + // + this.leftCameraPlayer.BackColor = System.Drawing.SystemColors.ControlDark; + this.leftCameraPlayer.ForeColor = System.Drawing.Color.White; + this.leftCameraPlayer.Location = new System.Drawing.Point( 10, 20 ); + this.leftCameraPlayer.Name = "leftCameraPlayer"; + this.leftCameraPlayer.Size = new System.Drawing.Size( 322, 242 ); + this.leftCameraPlayer.TabIndex = 0; + this.leftCameraPlayer.VideoSource = null; + // + // groupBox3 + // + this.groupBox3.Controls.Add( this.rightCameraPlayer ); + this.groupBox3.Location = new System.Drawing.Point( 360, 75 ); + this.groupBox3.Name = "groupBox3"; + this.groupBox3.Size = new System.Drawing.Size( 342, 275 ); + this.groupBox3.TabIndex = 5; + this.groupBox3.TabStop = false; + this.groupBox3.Text = "Right Camera View"; + // + // rightCameraPlayer + // + this.rightCameraPlayer.BackColor = System.Drawing.SystemColors.ControlDark; + this.rightCameraPlayer.ForeColor = System.Drawing.Color.White; + this.rightCameraPlayer.Location = new System.Drawing.Point( 10, 20 ); + this.rightCameraPlayer.Name = "rightCameraPlayer"; + this.rightCameraPlayer.Size = new System.Drawing.Size( 322, 242 ); + this.rightCameraPlayer.TabIndex = 0; + this.rightCameraPlayer.VideoSource = null; + // + // timer + // + this.timer.Interval = 1000; + this.timer.Tick += new System.EventHandler( this.timer_Tick ); + // + // showStereoButton + // + this.showStereoButton.Location = new System.Drawing.Point( 275, 24 ); + this.showStereoButton.Name = "showStereoButton"; + this.showStereoButton.Size = new System.Drawing.Size( 55, 23 ); + this.showStereoButton.TabIndex = 9; + this.showStereoButton.Text = "&Stereo"; + this.showStereoButton.UseVisualStyleBackColor = true; + this.showStereoButton.Click += new System.EventHandler( this.showStereoButton_Click ); + // + // groupBox4 + // + this.groupBox4.Controls.Add( this.resolutionCombo ); + this.groupBox4.Controls.Add( this.showStereoButton ); + this.groupBox4.Controls.Add( this.label3 ); + this.groupBox4.Controls.Add( this.qualityCombo ); + this.groupBox4.Controls.Add( this.label2 ); + this.groupBox4.Location = new System.Drawing.Point( 360, 10 ); + this.groupBox4.Name = "groupBox4"; + this.groupBox4.Size = new System.Drawing.Size( 342, 60 ); + this.groupBox4.TabIndex = 10; + this.groupBox4.TabStop = false; + this.groupBox4.Text = "Video settings"; + // + // resolutionCombo + // + this.resolutionCombo.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.resolutionCombo.FormattingEnabled = true; + this.resolutionCombo.Items.AddRange( new object[] { + "160x120", + "320x240", + "640x480"} ); + this.resolutionCombo.Location = new System.Drawing.Point( 195, 25 ); + this.resolutionCombo.Name = "resolutionCombo"; + this.resolutionCombo.Size = new System.Drawing.Size( 70, 21 ); + this.resolutionCombo.TabIndex = 3; + this.resolutionCombo.SelectedIndexChanged += new System.EventHandler( this.resolutionCombo_SelectedIndexChanged ); + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point( 135, 28 ); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size( 60, 13 ); + this.label3.TabIndex = 2; + this.label3.Text = "Resolution:"; + // + // qualityCombo + // + this.qualityCombo.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.qualityCombo.FormattingEnabled = true; + this.qualityCombo.Items.AddRange( new object[] { + "1 - Best", + "2", + "3", + "4", + "5", + "6", + "7", + "8 - Worst"} ); + this.qualityCombo.Location = new System.Drawing.Point( 55, 25 ); + this.qualityCombo.Name = "qualityCombo"; + this.qualityCombo.Size = new System.Drawing.Size( 70, 21 ); + this.qualityCombo.TabIndex = 1; + this.qualityCombo.SelectedIndexChanged += new System.EventHandler( this.qualityCombo_SelectedIndexChanged ); + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point( 10, 28 ); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size( 42, 13 ); + this.label2.TabIndex = 0; + this.label2.Text = "Quality:"; + // + // groupBox5 + // + this.groupBox5.Controls.Add( this.maxPowerUpDown ); + this.groupBox5.Controls.Add( this.maxPowerLabel ); + this.groupBox5.Controls.Add( this.minPowerUpDown ); + this.groupBox5.Controls.Add( this.minPowerLabel ); + this.groupBox5.Controls.Add( this.turnControl ); + this.groupBox5.Controls.Add( this.directControlRadio ); + this.groupBox5.Controls.Add( this.predefinedCommandsRadio ); + this.groupBox5.Controls.Add( this.srvDriverControl ); + this.groupBox5.Controls.Add( this.manipulatorControl ); + this.groupBox5.Location = new System.Drawing.Point( 710, 75 ); + this.groupBox5.Name = "groupBox5"; + this.groupBox5.Size = new System.Drawing.Size( 313, 275 ); + this.groupBox5.TabIndex = 11; + this.groupBox5.TabStop = false; + this.groupBox5.Text = "Driving control"; + // + // maxPowerUpDown + // + this.maxPowerUpDown.Location = new System.Drawing.Point( 260, 55 ); + this.maxPowerUpDown.Maximum = new decimal( new int[] { + 127, + 0, + 0, + 0} ); + this.maxPowerUpDown.Minimum = new decimal( new int[] { + 10, + 0, + 0, + 0} ); + this.maxPowerUpDown.Name = "maxPowerUpDown"; + this.maxPowerUpDown.Size = new System.Drawing.Size( 45, 20 ); + this.maxPowerUpDown.TabIndex = 15; + this.maxPowerUpDown.Value = new decimal( new int[] { + 10, + 0, + 0, + 0} ); + this.maxPowerUpDown.Visible = false; + this.maxPowerUpDown.ValueChanged += new System.EventHandler( this.maxPowerUpDown_ValueChanged ); + // + // maxPowerLabel + // + this.maxPowerLabel.AutoSize = true; + this.maxPowerLabel.Location = new System.Drawing.Point( 245, 40 ); + this.maxPowerLabel.Name = "maxPowerLabel"; + this.maxPowerLabel.Size = new System.Drawing.Size( 62, 13 ); + this.maxPowerLabel.TabIndex = 14; + this.maxPowerLabel.Text = "Max power:"; + this.maxPowerLabel.Visible = false; + // + // minPowerUpDown + // + this.minPowerUpDown.Location = new System.Drawing.Point( 10, 55 ); + this.minPowerUpDown.Maximum = new decimal( new int[] { + 127, + 0, + 0, + 0} ); + this.minPowerUpDown.Minimum = new decimal( new int[] { + 10, + 0, + 0, + 0} ); + this.minPowerUpDown.Name = "minPowerUpDown"; + this.minPowerUpDown.Size = new System.Drawing.Size( 45, 20 ); + this.minPowerUpDown.TabIndex = 13; + this.minPowerUpDown.Value = new decimal( new int[] { + 10, + 0, + 0, + 0} ); + this.minPowerUpDown.Visible = false; + this.minPowerUpDown.ValueChanged += new System.EventHandler( this.minPowerUpDown_ValueChanged ); + // + // minPowerLabel + // + this.minPowerLabel.AutoSize = true; + this.minPowerLabel.Location = new System.Drawing.Point( 10, 40 ); + this.minPowerLabel.Name = "minPowerLabel"; + this.minPowerLabel.Size = new System.Drawing.Size( 59, 13 ); + this.minPowerLabel.TabIndex = 12; + this.minPowerLabel.Text = "Min power:"; + this.minPowerLabel.Visible = false; + // + // directControlRadio + // + this.directControlRadio.AutoSize = true; + this.directControlRadio.Location = new System.Drawing.Point( 170, 20 ); + this.directControlRadio.Name = "directControlRadio"; + this.directControlRadio.Size = new System.Drawing.Size( 88, 17 ); + this.directControlRadio.TabIndex = 2; + this.directControlRadio.Text = "Direct control"; + this.directControlRadio.UseVisualStyleBackColor = true; + this.directControlRadio.CheckedChanged += new System.EventHandler( this.directControlRadio_CheckedChanged ); + // + // predefinedCommandsRadio + // + this.predefinedCommandsRadio.AutoSize = true; + this.predefinedCommandsRadio.Checked = true; + this.predefinedCommandsRadio.Location = new System.Drawing.Point( 10, 20 ); + this.predefinedCommandsRadio.Name = "predefinedCommandsRadio"; + this.predefinedCommandsRadio.Size = new System.Drawing.Size( 130, 17 ); + this.predefinedCommandsRadio.TabIndex = 1; + this.predefinedCommandsRadio.TabStop = true; + this.predefinedCommandsRadio.Text = "Predefined commands"; + this.predefinedCommandsRadio.UseVisualStyleBackColor = true; + // + // aboutButton + // + this.aboutButton.Location = new System.Drawing.Point( 948, 12 ); + this.aboutButton.Name = "aboutButton"; + this.aboutButton.Size = new System.Drawing.Size( 75, 23 ); + this.aboutButton.TabIndex = 12; + this.aboutButton.Text = "About"; + this.aboutButton.UseVisualStyleBackColor = true; + this.aboutButton.Click += new System.EventHandler( this.aboutButton_Click ); + // + // turnControl + // + this.turnControl.Location = new System.Drawing.Point( 55, 245 ); + this.turnControl.Name = "turnControl"; + this.turnControl.Size = new System.Drawing.Size( 200, 23 ); + this.turnControl.TabIndex = 3; + this.turnControl.Text = "turnControl1"; + this.turnControl.Visible = false; + this.turnControl.PositionChanged += new AForge.Controls.SliderControl.PositionChangedHandler( this.turnControl_PositionChanged ); + // + // srvDriverControl + // + this.srvDriverControl.Location = new System.Drawing.Point( 10, 50 ); + this.srvDriverControl.Name = "srvDriverControl"; + this.srvDriverControl.Size = new System.Drawing.Size( 291, 163 ); + this.srvDriverControl.TabIndex = 0; + this.srvDriverControl.SrvDrivingCommand += new SVSTest.SrvDrivingCommandHandler( this.srvDriverControl_SrvDrivingCommand ); + // + // manipulatorControl + // + this.manipulatorControl.Location = new System.Drawing.Point( 56, 40 ); + this.manipulatorControl.Name = "manipulatorControl"; + this.manipulatorControl.Size = new System.Drawing.Size( 200, 200 ); + this.manipulatorControl.TabIndex = 1; + this.manipulatorControl.Text = "manipulatorControl1"; + this.manipulatorControl.Visible = false; + this.manipulatorControl.PositionChanged += new AForge.Controls.ManipulatorControl.PositionChangedHandler( this.manipulatorControl_PositionChanged ); + // + // MainForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF( 6F, 13F ); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size( 1032, 384 ); + this.Controls.Add( this.aboutButton ); + this.Controls.Add( this.groupBox5 ); + this.Controls.Add( this.groupBox4 ); + this.Controls.Add( this.groupBox3 ); + this.Controls.Add( this.groupBox2 ); + this.Controls.Add( this.statusStrip ); + this.Controls.Add( this.groupBox1 ); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; + this.HelpButton = true; + this.MaximizeBox = false; + this.Name = "MainForm"; + this.Text = "Surveyor SVS Test"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler( this.MainForm_FormClosing ); + this.groupBox1.ResumeLayout( false ); + this.groupBox1.PerformLayout( ); + this.statusStrip.ResumeLayout( false ); + this.statusStrip.PerformLayout( ); + this.groupBox2.ResumeLayout( false ); + this.groupBox3.ResumeLayout( false ); + this.groupBox4.ResumeLayout( false ); + this.groupBox4.PerformLayout( ); + this.groupBox5.ResumeLayout( false ); + this.groupBox5.PerformLayout( ); + ( (System.ComponentModel.ISupportInitialize) ( this.maxPowerUpDown ) ).EndInit( ); + ( (System.ComponentModel.ISupportInitialize) ( this.minPowerUpDown ) ).EndInit( ); + this.ResumeLayout( false ); + this.PerformLayout( ); + + } + + #endregion + + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.Button disconnectButton; + private System.Windows.Forms.Button connectButton; + private System.Windows.Forms.TextBox ipBox; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.StatusStrip statusStrip; + private System.Windows.Forms.ToolStripStatusLabel statusLabel; + private System.Windows.Forms.ToolStripStatusLabel fpsLabel; + private System.Windows.Forms.GroupBox groupBox2; + private AForge.Controls.VideoSourcePlayer leftCameraPlayer; + private System.Windows.Forms.GroupBox groupBox3; + private AForge.Controls.VideoSourcePlayer rightCameraPlayer; + private System.Windows.Forms.Timer timer; + private System.Windows.Forms.ToolStripStatusLabel versionLabel; + private System.Windows.Forms.Button showStereoButton; + private System.Windows.Forms.GroupBox groupBox4; + private System.Windows.Forms.ComboBox resolutionCombo; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.ComboBox qualityCombo; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.GroupBox groupBox5; + private SrvDriverControl srvDriverControl; + private AForge.Controls.ManipulatorControl manipulatorControl; + private System.Windows.Forms.RadioButton directControlRadio; + private System.Windows.Forms.RadioButton predefinedCommandsRadio; + private AForge.Controls.SliderControl turnControl; + private System.Windows.Forms.NumericUpDown maxPowerUpDown; + private System.Windows.Forms.NumericUpDown minPowerUpDown; + private System.Windows.Forms.Label maxPowerLabel; + private System.Windows.Forms.Label minPowerLabel; + private System.Windows.Forms.Button aboutButton; + } +} + diff --git a/Samples/Robotics/Surveyor/SVSTest/MainForm.cs b/Samples/Robotics/Surveyor/SVSTest/MainForm.cs new file mode 100644 index 00000000..507ec54f --- /dev/null +++ b/Samples/Robotics/Surveyor/SVSTest/MainForm.cs @@ -0,0 +1,439 @@ +// Surveyor SVS test application +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2006-2011 +// contacts@aforgenet.com +// + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; + +using AForge.Video; +using AForge.Controls; +using AForge.Robotics.Surveyor; + +namespace SVSTest +{ + public partial class MainForm : Form + { + private SVS svs = new SVS( ); + private StereoViewForm stereoViewForm; + + // statistics length + private const int statLength = 15; + // current statistics index + private int statIndex = 0; + // ready statistics values + private int statReady = 0; + // statistics array + private int[] statCount1 = new int[statLength]; + private int[] statCount2 = new int[statLength]; + + private bool receivedFirstDrivingCommand = false; + private SRV1.MotorCommand lastMotorCommand; + + // maximum motors' power for 15 sectors + private float[] maxPowers = new float[] { 0.1f, 0.2f, 0.35f, 0.5f, 0.65f, 0.8f, 0.9f, 1.0f, + 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f }; + + private int maxMotorPower = 90; + private int minMotorPower = 50; + + // Class constructor + public MainForm( ) + { + InitializeComponent( ); + EnableContols( false ); + + minPowerUpDown.Value = minMotorPower; + maxPowerUpDown.Value = maxMotorPower; + } + + // On form closing + private void MainForm_FormClosing( object sender, FormClosingEventArgs e ) + { + Disconnect( ); + } + + // Enable/disable connection controls + private void EnableContols( bool enable ) + { + ipBox.Enabled = !enable; + connectButton.Enabled = !enable; + disconnectButton.Enabled = enable; + qualityCombo.Enabled = enable; + resolutionCombo.Enabled = enable; + srvDriverControl.Enabled = enable; + manipulatorControl.Enabled = enable; + turnControl.Enabled = enable; + } + + // On "Connect" button click + private void connectButton_Click( object sender, EventArgs e ) + { + if ( Connect( ipBox.Text ) ) + { + EnableContols( true ); + statusLabel.Text = "Connected"; + + qualityCombo.SelectedIndex = 6; + resolutionCombo.SelectedIndex = 1; + } + else + { + MessageBox.Show( "Failed connecting to SVS.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error ); + } + } + + // On "Disconnect" buttong click + private void disconnectButton_Click( object sender, EventArgs e ) + { + Disconnect( ); + statusLabel.Text = "Disconnected"; + fpsLabel.Text = string.Empty; + versionLabel.Text = string.Empty; + } + + // Connect to SVS + private bool Connect( string host ) + { + bool result = true; + + try + { + svs.Connect( host ); + svs.EnableFailsafeMode( 0, 0 ); + + svs.FlipVideo( false ); + svs.SetQuality( 7 ); + svs.SetResolution( SRV1.VideoResolution.Small ); + + // start left camera + SRV1Camera leftCamera = svs.GetCamera( SVS.Camera.Left ); + leftCameraPlayer.VideoSource = leftCamera; + leftCameraPlayer.Start( ); + + // start right camera + SRV1Camera rightCamera = svs.GetCamera( SVS.Camera.Right ); + rightCameraPlayer.VideoSource = rightCamera; + rightCameraPlayer.Start( ); + + versionLabel.Text = svs.GetVersion( ); + receivedFirstDrivingCommand = false; + + // reset statistics + statIndex = statReady = 0; + + // start timer + timer.Start( ); + } + catch + { + result = false; + Disconnect( ); + } + + return result; + } + + // Disconnect from SVS + private void Disconnect( ) + { + if ( svs.IsConnected ) + { + timer.Stop( ); + + if ( leftCameraPlayer.VideoSource != null ) + { + leftCameraPlayer.VideoSource.SignalToStop( ); + leftCameraPlayer.VideoSource.WaitForStop( ); + leftCameraPlayer.VideoSource = null; + } + + if ( rightCameraPlayer.VideoSource != null ) + { + rightCameraPlayer.VideoSource.SignalToStop( ); + rightCameraPlayer.VideoSource.WaitForStop( ); + rightCameraPlayer.VideoSource = null; + } + + svs.StopMotors( ); + svs.Disconnect( ); + + EnableContols( false ); + } + } + + // On timer's tick + private void timer_Tick( object sender, EventArgs e ) + { + // update camaeras' FPS + if ( ( leftCameraPlayer.VideoSource != null ) || ( rightCameraPlayer.VideoSource != null ) ) + { + // get number of frames for the last second + if ( leftCameraPlayer.VideoSource != null ) + { + statCount1[statIndex] = leftCameraPlayer.VideoSource.FramesReceived; + } + if ( rightCameraPlayer.VideoSource != null ) + { + statCount2[statIndex] = rightCameraPlayer.VideoSource.FramesReceived; + } + + // increment indexes + if ( ++statIndex >= statLength ) + statIndex = 0; + if ( statReady < statLength ) + statReady++; + + float fps1 = 0; + float fps2 = 0; + + // calculate average value + for ( int i = 0; i < statReady; i++ ) + { + fps1 += statCount1[i]; + fps2 += statCount2[i]; + } + fps1 /= statReady; + fps2 /= statReady; + + fpsLabel.Text = string.Format( "Left: {0:F2} fps, Right: {1:F2} fps", + fps1, fps2 ); + } + } + + // Set video quality + private void qualityCombo_SelectedIndexChanged( object sender, EventArgs e ) + { + if ( svs.IsConnected ) + { + try + { + svs.SetQuality( qualityCombo.SelectedIndex + 1 ); + + // reset FPS statistics + statIndex = statReady = 0; + } + catch ( Exception ex ) + { + System.Diagnostics.Debug.WriteLine( "## " + ex.Message ); + } + } + } + + // Set video resolution + private void resolutionCombo_SelectedIndexChanged( object sender, EventArgs e ) + { + if ( svs.IsConnected ) + { + try + { + SRV1.VideoResolution resolution = SRV1.VideoResolution.Small; + + switch ( resolutionCombo.SelectedIndex ) + { + case 0: + resolution = SRV1.VideoResolution.Tiny; + break; + case 2: + resolution = SRV1.VideoResolution.Medium; + break; + } + + svs.SetResolution( resolution ); + + // reset FPS statistics + statIndex = statReady = 0; + } + catch ( Exception ex ) + { + System.Diagnostics.Debug.WriteLine( "## " + ex.Message ); + } + } + } + + // Show window with stereo anaglyph + private void showStereoButton_Click( object sender, EventArgs e ) + { + if ( stereoViewForm == null ) + { + stereoViewForm = new StereoViewForm( ); + stereoViewForm.TopMost = true; + + stereoViewForm.FormClosing += new FormClosingEventHandler( stereoViewForm_OnFormClosing ); + + leftCameraPlayer.NewFrame += new VideoSourcePlayer.NewFrameHandler( stereoViewForm.OnNewLeftFrame ); + rightCameraPlayer.NewFrame += new VideoSourcePlayer.NewFrameHandler( stereoViewForm.OnNewRightFrame ); + } + + stereoViewForm.Show( ); + + stereoViewForm.BringToFront( ); + } + + private void stereoViewForm_OnFormClosing( object sender, FormClosingEventArgs eventArgs ) + { + leftCameraPlayer.NewFrame -= new VideoSourcePlayer.NewFrameHandler( stereoViewForm.OnNewLeftFrame ); + rightCameraPlayer.NewFrame -= new VideoSourcePlayer.NewFrameHandler( stereoViewForm.OnNewRightFrame ); + + stereoViewForm.FormClosing -= new FormClosingEventHandler( stereoViewForm_OnFormClosing ); + stereoViewForm = null; + } + + private void srvDriverControl_SrvDrivingCommand( object sender, SRV1.MotorCommand command ) + { + if ( svs.IsConnected ) + { + try + { + if ( !receivedFirstDrivingCommand ) + { + // use one direct control command first + svs.StopMotors( ); + } + + // send new command + svs.ControlMotors( command ); + + if ( ( ( command == SRV1.MotorCommand.DecreaseSpeed ) || + ( command == SRV1.MotorCommand.IncreaseSpeed ) ) && + ( receivedFirstDrivingCommand ) && + ( lastMotorCommand != SRV1.MotorCommand.Stop ) ) + { + // resend last command to get effect of speed increase/decrease + svs.ControlMotors( lastMotorCommand ); + } + else + { + receivedFirstDrivingCommand = true; + lastMotorCommand = command; + } + } + catch ( Exception ex ) + { + System.Diagnostics.Debug.WriteLine( "## " + ex.Message ); + } + } + } + + // Switch control type + private void directControlRadio_CheckedChanged( object sender, EventArgs e ) + { + bool directControlEnabled = directControlRadio.Checked; + + manipulatorControl.Visible = directControlEnabled; + turnControl.Visible = directControlEnabled; + minPowerLabel.Visible = directControlEnabled; + maxPowerLabel.Visible = directControlEnabled; + minPowerUpDown.Visible = directControlEnabled; + maxPowerUpDown.Visible = directControlEnabled; + + srvDriverControl.Visible = !directControlEnabled; + } + + // Driving with "software joystick" + private void manipulatorControl_PositionChanged( object sender, ManipulatorControl.PositionEventArgs eventArgs ) + { + float leftMotorPower = 0f, rightMotorPower = 0f; + + // calculate robot's direction and speed + if ( ( eventArgs.X != 0 ) || ( eventArgs.Y != 0 ) ) + { + // radius (distance from center) + double r = eventArgs.R; + // theta + double t = eventArgs.Theta; + + if ( t > 180 ) + t -= 180; + + // index of maximum power + int maxPowerIndex = (int) ( t / 180 * maxPowers.Length ); + + // check direction to move + if ( eventArgs.Y > 0 ) + { + // forward direction + leftMotorPower = (float) ( r * maxPowers[maxPowers.Length - maxPowerIndex - 1] ); + rightMotorPower = (float) ( r * maxPowers[maxPowerIndex] ); + } + else + { + // backward direction + leftMotorPower = (float) ( -r * maxPowers[maxPowerIndex] ); + rightMotorPower = (float) ( -r * maxPowers[maxPowers.Length - maxPowerIndex - 1] ); + } + } + + DriveMotors( leftMotorPower, rightMotorPower ); + } + + // Robot turning on place - opposite directions for motors + private void turnControl_PositionChanged( object sender, float x ) + { + DriveMotors( x, -x ); + } + + private void DriveMotors( float leftMotor, float rightMotor ) + { + int leftMotorVelocity = 0; + int rightMotorVelocity = 0; + + // make sure velocities are in [min, max] range + int delta = maxMotorPower - minMotorPower; + + if ( leftMotor != 0 ) + { + if ( leftMotor > 0 ) + leftMotorVelocity = minMotorPower + (int) ( delta * leftMotor ); + else + leftMotorVelocity = -minMotorPower + (int) ( delta * leftMotor ); + } + if ( rightMotor != 0 ) + { + if ( rightMotor > 0 ) + rightMotorVelocity = minMotorPower + (int) ( delta * rightMotor ); + else + rightMotorVelocity = -minMotorPower + (int) ( delta * rightMotor ); + } + + System.Diagnostics.Debug.WriteLine( string.Format( "l: {0}, r: {1}", leftMotorVelocity, rightMotorVelocity ) ); + if ( svs.IsConnected ) + { + try + { + svs.RunMotors( leftMotorVelocity, rightMotorVelocity, 0 ); + } + catch ( Exception ex ) + { + System.Diagnostics.Debug.WriteLine( "## " + ex.Message ); + } + } + } + + // Changing motors' power limits + private void minPowerUpDown_ValueChanged( object sender, EventArgs e ) + { + minMotorPower = (int) minPowerUpDown.Value; + } + + private void maxPowerUpDown_ValueChanged( object sender, EventArgs e ) + { + maxMotorPower = (int) maxPowerUpDown.Value; + } + + private void aboutButton_Click( object sender, EventArgs e ) + { + AboutForm form = new AboutForm( ); + + form.ShowDialog( ); + } + } +} diff --git a/Samples/Robotics/Surveyor/SVSTest/MainForm.resx b/Samples/Robotics/Surveyor/SVSTest/MainForm.resx new file mode 100644 index 00000000..6a6d4259 --- /dev/null +++ b/Samples/Robotics/Surveyor/SVSTest/MainForm.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 126, 17 + + \ No newline at end of file diff --git a/Samples/Robotics/Surveyor/SVSTest/Program.cs b/Samples/Robotics/Surveyor/SVSTest/Program.cs new file mode 100644 index 00000000..6f15d701 --- /dev/null +++ b/Samples/Robotics/Surveyor/SVSTest/Program.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Windows.Forms; + +namespace SVSTest +{ + static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main( ) + { + Application.EnableVisualStyles( ); + Application.SetCompatibleTextRenderingDefault( false ); + Application.Run( new MainForm( ) ); + } + } +} diff --git a/Samples/Robotics/Surveyor/SVSTest/Properties/AssemblyInfo.cs b/Samples/Robotics/Surveyor/SVSTest/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..67ee94a2 --- /dev/null +++ b/Samples/Robotics/Surveyor/SVSTest/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle( "SVS Test" )] +[assembly: AssemblyDescription( "SVS Test sample" )] +[assembly: AssemblyConfiguration( "" )] +[assembly: AssemblyCompany( "AForge" )] +[assembly: AssemblyProduct( "AForge.NET" )] +[assembly: AssemblyCopyright( "AForge © 2009" )] +[assembly: AssemblyTrademark( "" )] +[assembly: AssemblyCulture( "" )] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible( false )] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid( "dc1fd481-f3b9-4d4a-b823-65db82f238f5" )] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion( "1.0.2.0" )] +[assembly: AssemblyFileVersion( "1.0.2.0" )] diff --git a/Samples/Robotics/Surveyor/SVSTest/Properties/Resources.Designer.cs b/Samples/Robotics/Surveyor/SVSTest/Properties/Resources.Designer.cs new file mode 100644 index 00000000..0c3fd965 --- /dev/null +++ b/Samples/Robotics/Surveyor/SVSTest/Properties/Resources.Designer.cs @@ -0,0 +1,70 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.4200 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace SVSTest.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("SVSTest.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + internal static System.Drawing.Bitmap svs { + get { + object obj = ResourceManager.GetObject("svs", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/Samples/Robotics/Surveyor/SVSTest/Properties/Resources.resx b/Samples/Robotics/Surveyor/SVSTest/Properties/Resources.resx new file mode 100644 index 00000000..b759bef8 --- /dev/null +++ b/Samples/Robotics/Surveyor/SVSTest/Properties/Resources.resx @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + ..\Resources\svs.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/Samples/Robotics/Surveyor/SVSTest/Properties/Settings.Designer.cs b/Samples/Robotics/Surveyor/SVSTest/Properties/Settings.Designer.cs new file mode 100644 index 00000000..bf31eb4a --- /dev/null +++ b/Samples/Robotics/Surveyor/SVSTest/Properties/Settings.Designer.cs @@ -0,0 +1,30 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.3074 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace SVSTest.Properties +{ + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute( )] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute( "Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "9.0.0.0" )] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase + { + + private static Settings defaultInstance = ( (Settings) ( global::System.Configuration.ApplicationSettingsBase.Synchronized( new Settings( ) ) ) ); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/Samples/Robotics/Surveyor/SVSTest/Properties/Settings.settings b/Samples/Robotics/Surveyor/SVSTest/Properties/Settings.settings new file mode 100644 index 00000000..39645652 --- /dev/null +++ b/Samples/Robotics/Surveyor/SVSTest/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Samples/Robotics/Surveyor/SVSTest/Resources/svs.png b/Samples/Robotics/Surveyor/SVSTest/Resources/svs.png new file mode 100644 index 00000000..753bcfa8 Binary files /dev/null and b/Samples/Robotics/Surveyor/SVSTest/Resources/svs.png differ diff --git a/Samples/Robotics/Surveyor/SVSTest/SVSTest.csproj b/Samples/Robotics/Surveyor/SVSTest/SVSTest.csproj new file mode 100644 index 00000000..e801e691 --- /dev/null +++ b/Samples/Robotics/Surveyor/SVSTest/SVSTest.csproj @@ -0,0 +1,169 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {FF26D770-5F16-4E26-9C80-BFE1026573DF} + WinExe + Properties + SVSTest + SVSTest + v2.0 + 512 + + + 3.5 + + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + False + ..\..\..\..\Release\AForge.Controls.dll + + + False + ..\..\..\..\Release\AForge.Imaging.dll + + + False + ..\..\..\..\Release\AForge.Robotics.Surveyor.dll + + + False + ..\..\..\..\Release\AForge.Video.dll + + + + + + + + + + + Form + + + AboutForm.cs + + + UserControl + + + SrvDriverControl.cs + + + Form + + + MainForm.cs + + + + + AboutForm.cs + + + SrvDriverControl.cs + + + MainForm.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + StereoViewForm.cs + + + True + Resources.resx + True + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + Form + + + StereoViewForm.cs + + + + + + + + False + Microsoft .NET Framework 4 %28x86 and x64%29 + true + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 3.1 + true + + + + + \ No newline at end of file diff --git a/Samples/Robotics/Surveyor/SVSTest/SVSTest.sln b/Samples/Robotics/Surveyor/SVSTest/SVSTest.sln new file mode 100644 index 00000000..43e110a6 --- /dev/null +++ b/Samples/Robotics/Surveyor/SVSTest/SVSTest.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual C# Express 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SVSTest", "SVSTest.csproj", "{FF26D770-5F16-4E26-9C80-BFE1026573DF}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {FF26D770-5F16-4E26-9C80-BFE1026573DF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FF26D770-5F16-4E26-9C80-BFE1026573DF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FF26D770-5F16-4E26-9C80-BFE1026573DF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FF26D770-5F16-4E26-9C80-BFE1026573DF}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Samples/Robotics/Surveyor/SVSTest/SrvDriverControl.Designer.cs b/Samples/Robotics/Surveyor/SVSTest/SrvDriverControl.Designer.cs new file mode 100644 index 00000000..436c5935 --- /dev/null +++ b/Samples/Robotics/Surveyor/SVSTest/SrvDriverControl.Designer.cs @@ -0,0 +1,190 @@ +namespace SVSTest +{ + partial class SrvDriverControl + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose( bool disposing ) + { + if ( disposing && ( components != null ) ) + { + components.Dispose( ); + } + base.Dispose( disposing ); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent( ) + { + this.stopButton = new System.Windows.Forms.Button( ); + this.forwardButton = new System.Windows.Forms.Button( ); + this.backwardButton = new System.Windows.Forms.Button( ); + this.leftButton = new System.Windows.Forms.Button( ); + this.leftBackwardButton = new System.Windows.Forms.Button( ); + this.rightBackwardButton = new System.Windows.Forms.Button( ); + this.leftDriftButton = new System.Windows.Forms.Button( ); + this.rightButton = new System.Windows.Forms.Button( ); + this.rightDriftButton = new System.Windows.Forms.Button( ); + this.speedUpButton = new System.Windows.Forms.Button( ); + this.slowDownButton = new System.Windows.Forms.Button( ); + this.SuspendLayout( ); + // + // stopButton + // + this.stopButton.BackColor = System.Drawing.Color.LightCoral; + this.stopButton.Location = new System.Drawing.Point( 100, 40 ); + this.stopButton.Name = "stopButton"; + this.stopButton.Size = new System.Drawing.Size( 90, 30 ); + this.stopButton.TabIndex = 4; + this.stopButton.Text = "&Stop"; + this.stopButton.UseVisualStyleBackColor = false; + this.stopButton.Click += new System.EventHandler( this.stopButton_Click ); + // + // forwardButton + // + this.forwardButton.Location = new System.Drawing.Point( 100, 0 ); + this.forwardButton.Name = "forwardButton"; + this.forwardButton.Size = new System.Drawing.Size( 90, 30 ); + this.forwardButton.TabIndex = 1; + this.forwardButton.Text = "&Forward"; + this.forwardButton.UseVisualStyleBackColor = true; + this.forwardButton.Click += new System.EventHandler( this.forwardButton_Click ); + // + // backwardButton + // + this.backwardButton.Location = new System.Drawing.Point( 100, 80 ); + this.backwardButton.Name = "backwardButton"; + this.backwardButton.Size = new System.Drawing.Size( 90, 30 ); + this.backwardButton.TabIndex = 7; + this.backwardButton.Text = "&Backward"; + this.backwardButton.UseVisualStyleBackColor = true; + this.backwardButton.Click += new System.EventHandler( this.backwardButton_Click ); + // + // leftButton + // + this.leftButton.Location = new System.Drawing.Point( 0, 0 ); + this.leftButton.Name = "leftButton"; + this.leftButton.Size = new System.Drawing.Size( 90, 30 ); + this.leftButton.TabIndex = 0; + this.leftButton.Text = "&Left"; + this.leftButton.UseVisualStyleBackColor = true; + this.leftButton.Click += new System.EventHandler( this.leftButton_Click ); + // + // leftBackwardButton + // + this.leftBackwardButton.Location = new System.Drawing.Point( 0, 80 ); + this.leftBackwardButton.Name = "leftBackwardButton"; + this.leftBackwardButton.Size = new System.Drawing.Size( 90, 30 ); + this.leftBackwardButton.TabIndex = 6; + this.leftBackwardButton.Text = "Left backword"; + this.leftBackwardButton.UseVisualStyleBackColor = true; + this.leftBackwardButton.Click += new System.EventHandler( this.leftBackwardButton_Click ); + // + // rightBackwardButton + // + this.rightBackwardButton.Location = new System.Drawing.Point( 200, 80 ); + this.rightBackwardButton.Name = "rightBackwardButton"; + this.rightBackwardButton.Size = new System.Drawing.Size( 90, 30 ); + this.rightBackwardButton.TabIndex = 8; + this.rightBackwardButton.Text = "Right backword"; + this.rightBackwardButton.UseVisualStyleBackColor = true; + this.rightBackwardButton.Click += new System.EventHandler( this.rightBackwardButton_Click ); + // + // leftDriftButton + // + this.leftDriftButton.Location = new System.Drawing.Point( 0, 40 ); + this.leftDriftButton.Name = "leftDriftButton"; + this.leftDriftButton.Size = new System.Drawing.Size( 90, 30 ); + this.leftDriftButton.TabIndex = 3; + this.leftDriftButton.Text = "Left drift"; + this.leftDriftButton.UseVisualStyleBackColor = true; + this.leftDriftButton.Click += new System.EventHandler( this.leftDriftButton_Click ); + // + // rightButton + // + this.rightButton.Location = new System.Drawing.Point( 200, 0 ); + this.rightButton.Name = "rightButton"; + this.rightButton.Size = new System.Drawing.Size( 90, 30 ); + this.rightButton.TabIndex = 2; + this.rightButton.Text = "&Right"; + this.rightButton.UseVisualStyleBackColor = true; + this.rightButton.Click += new System.EventHandler( this.rightButton_Click ); + // + // rightDriftButton + // + this.rightDriftButton.Location = new System.Drawing.Point( 200, 40 ); + this.rightDriftButton.Name = "rightDriftButton"; + this.rightDriftButton.Size = new System.Drawing.Size( 90, 30 ); + this.rightDriftButton.TabIndex = 5; + this.rightDriftButton.Text = "Right drift"; + this.rightDriftButton.UseVisualStyleBackColor = true; + this.rightDriftButton.Click += new System.EventHandler( this.rightDriftButton_Click ); + // + // speedUpButton + // + this.speedUpButton.Location = new System.Drawing.Point( 0, 130 ); + this.speedUpButton.Name = "speedUpButton"; + this.speedUpButton.Size = new System.Drawing.Size( 90, 30 ); + this.speedUpButton.TabIndex = 9; + this.speedUpButton.Text = "Speed up"; + this.speedUpButton.UseVisualStyleBackColor = true; + this.speedUpButton.Click += new System.EventHandler( this.speedUpButton_Click ); + // + // slowDownButton + // + this.slowDownButton.Location = new System.Drawing.Point( 200, 130 ); + this.slowDownButton.Name = "slowDownButton"; + this.slowDownButton.Size = new System.Drawing.Size( 90, 30 ); + this.slowDownButton.TabIndex = 10; + this.slowDownButton.Text = "Slow down"; + this.slowDownButton.UseVisualStyleBackColor = true; + this.slowDownButton.Click += new System.EventHandler( this.slowDownButton_Click ); + // + // SrvDriverControl + // + this.AutoScaleDimensions = new System.Drawing.SizeF( 6F, 13F ); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add( this.slowDownButton ); + this.Controls.Add( this.speedUpButton ); + this.Controls.Add( this.rightDriftButton ); + this.Controls.Add( this.leftDriftButton ); + this.Controls.Add( this.rightBackwardButton ); + this.Controls.Add( this.leftBackwardButton ); + this.Controls.Add( this.rightButton ); + this.Controls.Add( this.leftButton ); + this.Controls.Add( this.backwardButton ); + this.Controls.Add( this.forwardButton ); + this.Controls.Add( this.stopButton ); + this.Name = "SrvDriverControl"; + this.Size = new System.Drawing.Size( 290, 160 ); + this.ResumeLayout( false ); + + } + + #endregion + + private System.Windows.Forms.Button stopButton; + private System.Windows.Forms.Button forwardButton; + private System.Windows.Forms.Button backwardButton; + private System.Windows.Forms.Button leftButton; + private System.Windows.Forms.Button leftBackwardButton; + private System.Windows.Forms.Button rightBackwardButton; + private System.Windows.Forms.Button leftDriftButton; + private System.Windows.Forms.Button rightButton; + private System.Windows.Forms.Button rightDriftButton; + private System.Windows.Forms.Button speedUpButton; + private System.Windows.Forms.Button slowDownButton; + } +} diff --git a/Samples/Robotics/Surveyor/SVSTest/SrvDriverControl.cs b/Samples/Robotics/Surveyor/SVSTest/SrvDriverControl.cs new file mode 100644 index 00000000..6bc77163 --- /dev/null +++ b/Samples/Robotics/Surveyor/SVSTest/SrvDriverControl.cs @@ -0,0 +1,95 @@ +// Surveyor SVS test application +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2007-2010 +// andrew.kirillov@aforgenet.com +// + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.Data; +using System.Text; +using System.Windows.Forms; + +using AForge.Robotics.Surveyor; + +namespace SVSTest +{ + public delegate void SrvDrivingCommandHandler( object sender, SRV1.MotorCommand command ); + + public partial class SrvDriverControl : UserControl + { + public event SrvDrivingCommandHandler SrvDrivingCommand; + + public SrvDriverControl( ) + { + InitializeComponent( ); + } + + private void DispatchCommand( SRV1.MotorCommand command ) + { + if ( SrvDrivingCommand != null ) + { + SrvDrivingCommand( this, command ); + } + } + + private void leftButton_Click( object sender, EventArgs e ) + { + DispatchCommand( SRV1.MotorCommand.DriveLeft ); + } + + private void forwardButton_Click( object sender, EventArgs e ) + { + DispatchCommand( SRV1.MotorCommand.DriveForward ); + } + + private void rightButton_Click( object sender, EventArgs e ) + { + DispatchCommand( SRV1.MotorCommand.DriveRight ); + } + + private void leftDriftButton_Click( object sender, EventArgs e ) + { + DispatchCommand( SRV1.MotorCommand.DriftLeft ); + } + + private void stopButton_Click( object sender, EventArgs e ) + { + DispatchCommand( SRV1.MotorCommand.Stop ); + } + + private void rightDriftButton_Click( object sender, EventArgs e ) + { + DispatchCommand( SRV1.MotorCommand.DriftRight ); + } + + private void leftBackwardButton_Click( object sender, EventArgs e ) + { + DispatchCommand( SRV1.MotorCommand.DriveBackLeft ); + } + + private void backwardButton_Click( object sender, EventArgs e ) + { + DispatchCommand( SRV1.MotorCommand.DriveBack ); + } + + private void rightBackwardButton_Click( object sender, EventArgs e ) + { + DispatchCommand( SRV1.MotorCommand.DriveBackRight ); + } + + private void speedUpButton_Click( object sender, EventArgs e ) + { + DispatchCommand( SRV1.MotorCommand.IncreaseSpeed ); + } + + private void slowDownButton_Click( object sender, EventArgs e ) + { + DispatchCommand( SRV1.MotorCommand.DecreaseSpeed ); + } + } +} diff --git a/Samples/Robotics/Surveyor/SVSTest/SrvDriverControl.resx b/Samples/Robotics/Surveyor/SVSTest/SrvDriverControl.resx new file mode 100644 index 00000000..19dc0dd8 --- /dev/null +++ b/Samples/Robotics/Surveyor/SVSTest/SrvDriverControl.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Samples/Robotics/Surveyor/SVSTest/StereoViewForm.Designer.cs b/Samples/Robotics/Surveyor/SVSTest/StereoViewForm.Designer.cs new file mode 100644 index 00000000..3e03ad26 --- /dev/null +++ b/Samples/Robotics/Surveyor/SVSTest/StereoViewForm.Designer.cs @@ -0,0 +1,67 @@ +namespace SVSTest +{ + partial class StereoViewForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose( bool disposing ) + { + if ( disposing && ( components != null ) ) + { + components.Dispose( ); + } + base.Dispose( disposing ); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent( ) + { + this.pictureBox = new System.Windows.Forms.PictureBox( ); + ( (System.ComponentModel.ISupportInitialize) ( this.pictureBox ) ).BeginInit( ); + this.SuspendLayout( ); + // + // pictureBox + // + this.pictureBox.BackColor = System.Drawing.SystemColors.ControlDark; + this.pictureBox.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.pictureBox.Location = new System.Drawing.Point( 11, 11 ); + this.pictureBox.Name = "pictureBox"; + this.pictureBox.Size = new System.Drawing.Size( 322, 242 ); + this.pictureBox.TabIndex = 0; + this.pictureBox.TabStop = false; + // + // StereoViewForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF( 6F, 13F ); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size( 344, 264 ); + this.Controls.Add( this.pictureBox ); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "StereoViewForm"; + this.ShowInTaskbar = false; + this.Text = "Stereo View"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler( this.StereoViewForm_FormClosing ); + ( (System.ComponentModel.ISupportInitialize) ( this.pictureBox ) ).EndInit( ); + this.ResumeLayout( false ); + + } + + #endregion + + private System.Windows.Forms.PictureBox pictureBox; + } +} \ No newline at end of file diff --git a/Samples/Robotics/Surveyor/SVSTest/StereoViewForm.cs b/Samples/Robotics/Surveyor/SVSTest/StereoViewForm.cs new file mode 100644 index 00000000..3baffb14 --- /dev/null +++ b/Samples/Robotics/Surveyor/SVSTest/StereoViewForm.cs @@ -0,0 +1,144 @@ +// Surveyor SVS test application +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2007-2010 +// andrew.kirillov@aforgenet.com +// + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; +using System.Threading; + +using AForge.Imaging.Filters; + +namespace SVSTest +{ + public partial class StereoViewForm : Form + { + private ManualResetEvent leftFrameIsAvailable; + private ManualResetEvent rightFrameIsAvailable; + + private Thread backgroundThread; + + private Bitmap leftFrame; + private Bitmap rightFrame; + + private StereoAnaglyph stereoFilter = new StereoAnaglyph( ); + + private bool needToExit = false; + + public StereoViewForm( ) + { + InitializeComponent( ); + + leftFrameIsAvailable = new ManualResetEvent( false ); + rightFrameIsAvailable = new ManualResetEvent( false ); + + backgroundThread = new Thread( new ThreadStart( stereoThread ) ); + backgroundThread.Start( ); + } + + // Closing the form + private void StereoViewForm_FormClosing( object sender, FormClosingEventArgs e ) + { + needToExit = true; + + leftFrameIsAvailable.Set( ); + rightFrameIsAvailable.Set( ); + + backgroundThread.Join( ); + } + + // New left frame has arrived + public void OnNewLeftFrame( object sender, ref Bitmap image ) + { + lock ( this ) + { + if ( leftFrame != null ) + leftFrame.Dispose( ); + + leftFrame = AForge.Imaging.Image.Clone( image ); + + leftFrameIsAvailable.Set( ); + } + } + + // New right frame has arrived + public void OnNewRightFrame( object sender, ref Bitmap image ) + { + lock ( this ) + { + if ( rightFrame != null ) + rightFrame.Dispose( ); + + rightFrame = AForge.Imaging.Image.Clone( image ); + + rightFrameIsAvailable.Set( ); + } + } + + private void stereoThread( ) + { + while ( true ) + { + leftFrameIsAvailable.WaitOne( ); + rightFrameIsAvailable.WaitOne( ); + + if ( needToExit ) + break; + + if ( ( leftFrame.Width != pictureBox.Width - 2 ) || + ( leftFrame.Height != pictureBox.Height - 2 ) ) + { + UpdateWindowSize( ); + } + + lock ( this ) + { + try + { + Image old = pictureBox.Image; + + // build stereo anaglyph + stereoFilter.OverlayImage = rightFrame; + pictureBox.Image = stereoFilter.Apply( leftFrame ); + pictureBox.Invalidate( ); + + if ( old != null ) + { + old.Dispose( ); + } + } + catch + { + } + } + + leftFrameIsAvailable.Reset( ); + rightFrameIsAvailable.Reset( ); + } + } + + private delegate void UpdateWindowSizeCallback( ); + + // Update size of the window, so it shows pictures without rescaling + private void UpdateWindowSize( ) + { + if ( InvokeRequired ) + { + Invoke( new UpdateWindowSizeCallback( UpdateWindowSize ) ); + } + else + { + this.Size = new Size( leftFrame.Width + 30, rightFrame.Height + 48 ); + pictureBox.Size = new Size( leftFrame.Width + 2, rightFrame.Height + 2 ); + } + } + } +} diff --git a/Samples/Robotics/Surveyor/SVSTest/StereoViewForm.resx b/Samples/Robotics/Surveyor/SVSTest/StereoViewForm.resx new file mode 100644 index 00000000..19dc0dd8 --- /dev/null +++ b/Samples/Robotics/Surveyor/SVSTest/StereoViewForm.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Samples/Robotics/TeRK/QwerkStart/MainForm.Designer.cs b/Samples/Robotics/TeRK/QwerkStart/MainForm.Designer.cs new file mode 100644 index 00000000..0908d082 --- /dev/null +++ b/Samples/Robotics/TeRK/QwerkStart/MainForm.Designer.cs @@ -0,0 +1,396 @@ +namespace QwerkStart +{ + partial class MainForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose( bool disposing ) + { + if ( disposing && ( components != null ) ) + { + components.Dispose( ); + } + base.Dispose( disposing ); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent( ) + { + this.components = new System.ComponentModel.Container( ); + this.groupBox1 = new System.Windows.Forms.GroupBox( ); + this.disconnectButton = new System.Windows.Forms.Button( ); + this.connectButton = new System.Windows.Forms.Button( ); + this.qwerkIPBox = new System.Windows.Forms.TextBox( ); + this.label1 = new System.Windows.Forms.Label( ); + this.groupBox2 = new System.Windows.Forms.GroupBox( ); + this.videoSourcePlayer = new AForge.Controls.VideoSourcePlayer( ); + this.statusStrip = new System.Windows.Forms.StatusStrip( ); + this.statusLabel = new System.Windows.Forms.ToolStripStatusLabel( ); + this.voltageLabel = new System.Windows.Forms.ToolStripStatusLabel( ); + this.fpsLabel = new System.Windows.Forms.ToolStripStatusLabel( ); + this.timer = new System.Windows.Forms.Timer( this.components ); + this.groupBox3 = new System.Windows.Forms.GroupBox( ); + this.led9Button = new System.Windows.Forms.Button( ); + this.led8Button = new System.Windows.Forms.Button( ); + this.led7Button = new System.Windows.Forms.Button( ); + this.led6Button = new System.Windows.Forms.Button( ); + this.led5Button = new System.Windows.Forms.Button( ); + this.led4Button = new System.Windows.Forms.Button( ); + this.led3Button = new System.Windows.Forms.Button( ); + this.led2Button = new System.Windows.Forms.Button( ); + this.led1Button = new System.Windows.Forms.Button( ); + this.led0Button = new System.Windows.Forms.Button( ); + this.groupBox1.SuspendLayout( ); + this.groupBox2.SuspendLayout( ); + this.statusStrip.SuspendLayout( ); + this.groupBox3.SuspendLayout( ); + this.SuspendLayout( ); + // + // groupBox1 + // + this.groupBox1.Controls.Add( this.disconnectButton ); + this.groupBox1.Controls.Add( this.connectButton ); + this.groupBox1.Controls.Add( this.qwerkIPBox ); + this.groupBox1.Controls.Add( this.label1 ); + this.groupBox1.Location = new System.Drawing.Point( 10, 10 ); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size( 342, 60 ); + this.groupBox1.TabIndex = 1; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "Qwerk connection"; + // + // disconnectButton + // + this.disconnectButton.Enabled = false; + this.disconnectButton.Location = new System.Drawing.Point( 260, 24 ); + this.disconnectButton.Name = "disconnectButton"; + this.disconnectButton.Size = new System.Drawing.Size( 75, 23 ); + this.disconnectButton.TabIndex = 3; + this.disconnectButton.Text = "&Disconnect"; + this.disconnectButton.UseVisualStyleBackColor = true; + this.disconnectButton.Click += new System.EventHandler( this.disconnectButton_Click ); + // + // connectButton + // + this.connectButton.Location = new System.Drawing.Point( 180, 24 ); + this.connectButton.Name = "connectButton"; + this.connectButton.Size = new System.Drawing.Size( 75, 23 ); + this.connectButton.TabIndex = 2; + this.connectButton.Text = "&Connect"; + this.connectButton.UseVisualStyleBackColor = true; + this.connectButton.Click += new System.EventHandler( this.connectButton_Click ); + // + // qwerkIPBox + // + this.qwerkIPBox.Location = new System.Drawing.Point( 75, 25 ); + this.qwerkIPBox.Name = "qwerkIPBox"; + this.qwerkIPBox.Size = new System.Drawing.Size( 100, 20 ); + this.qwerkIPBox.TabIndex = 1; + this.qwerkIPBox.Text = "192.168.0.5"; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point( 10, 27 ); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size( 61, 13 ); + this.label1.TabIndex = 0; + this.label1.Text = "IP Address:"; + // + // groupBox2 + // + this.groupBox2.Controls.Add( this.videoSourcePlayer ); + this.groupBox2.Location = new System.Drawing.Point( 10, 75 ); + this.groupBox2.Name = "groupBox2"; + this.groupBox2.Size = new System.Drawing.Size( 342, 272 ); + this.groupBox2.TabIndex = 3; + this.groupBox2.TabStop = false; + this.groupBox2.Text = "Camera View"; + // + // videoSourcePlayer + // + this.videoSourcePlayer.BackColor = System.Drawing.SystemColors.ControlDark; + this.videoSourcePlayer.ForeColor = System.Drawing.Color.White; + this.videoSourcePlayer.Location = new System.Drawing.Point( 10, 20 ); + this.videoSourcePlayer.Name = "videoSourcePlayer"; + this.videoSourcePlayer.Size = new System.Drawing.Size( 322, 242 ); + this.videoSourcePlayer.TabIndex = 0; + this.videoSourcePlayer.VideoSource = null; + // + // statusStrip + // + this.statusStrip.Items.AddRange( new System.Windows.Forms.ToolStripItem[] { + this.statusLabel, + this.voltageLabel, + this.fpsLabel} ); + this.statusStrip.Location = new System.Drawing.Point( 0, 410 ); + this.statusStrip.Name = "statusStrip"; + this.statusStrip.Size = new System.Drawing.Size( 362, 24 ); + this.statusStrip.TabIndex = 4; + this.statusStrip.Text = "statusStrip1"; + // + // statusLabel + // + this.statusLabel.AutoSize = false; + this.statusLabel.BorderSides = ( (System.Windows.Forms.ToolStripStatusLabelBorderSides) ( ( ( ( System.Windows.Forms.ToolStripStatusLabelBorderSides.Left | System.Windows.Forms.ToolStripStatusLabelBorderSides.Top ) + | System.Windows.Forms.ToolStripStatusLabelBorderSides.Right ) + | System.Windows.Forms.ToolStripStatusLabelBorderSides.Bottom ) ) ); + this.statusLabel.BorderStyle = System.Windows.Forms.Border3DStyle.SunkenInner; + this.statusLabel.Name = "statusLabel"; + this.statusLabel.Size = new System.Drawing.Size( 100, 19 ); + this.statusLabel.Text = "Disconnected"; + this.statusLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // voltageLabel + // + this.voltageLabel.AutoSize = false; + this.voltageLabel.BorderSides = ( (System.Windows.Forms.ToolStripStatusLabelBorderSides) ( ( ( ( System.Windows.Forms.ToolStripStatusLabelBorderSides.Left | System.Windows.Forms.ToolStripStatusLabelBorderSides.Top ) + | System.Windows.Forms.ToolStripStatusLabelBorderSides.Right ) + | System.Windows.Forms.ToolStripStatusLabelBorderSides.Bottom ) ) ); + this.voltageLabel.BorderStyle = System.Windows.Forms.Border3DStyle.SunkenInner; + this.voltageLabel.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.voltageLabel.Name = "voltageLabel"; + this.voltageLabel.Size = new System.Drawing.Size( 120, 19 ); + this.voltageLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // fpsLabel + // + this.fpsLabel.BorderSides = ( (System.Windows.Forms.ToolStripStatusLabelBorderSides) ( ( ( ( System.Windows.Forms.ToolStripStatusLabelBorderSides.Left | System.Windows.Forms.ToolStripStatusLabelBorderSides.Top ) + | System.Windows.Forms.ToolStripStatusLabelBorderSides.Right ) + | System.Windows.Forms.ToolStripStatusLabelBorderSides.Bottom ) ) ); + this.fpsLabel.BorderStyle = System.Windows.Forms.Border3DStyle.SunkenInner; + this.fpsLabel.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.fpsLabel.Name = "fpsLabel"; + this.fpsLabel.Size = new System.Drawing.Size( 127, 19 ); + this.fpsLabel.Spring = true; + this.fpsLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // timer + // + this.timer.Interval = 1000; + this.timer.Tick += new System.EventHandler( this.timer_Tick ); + // + // groupBox3 + // + this.groupBox3.Controls.Add( this.led9Button ); + this.groupBox3.Controls.Add( this.led8Button ); + this.groupBox3.Controls.Add( this.led7Button ); + this.groupBox3.Controls.Add( this.led6Button ); + this.groupBox3.Controls.Add( this.led5Button ); + this.groupBox3.Controls.Add( this.led4Button ); + this.groupBox3.Controls.Add( this.led3Button ); + this.groupBox3.Controls.Add( this.led2Button ); + this.groupBox3.Controls.Add( this.led1Button ); + this.groupBox3.Controls.Add( this.led0Button ); + this.groupBox3.Location = new System.Drawing.Point( 10, 350 ); + this.groupBox3.Name = "groupBox3"; + this.groupBox3.Size = new System.Drawing.Size( 342, 53 ); + this.groupBox3.TabIndex = 5; + this.groupBox3.TabStop = false; + this.groupBox3.Text = "LEDs"; + // + // led9Button + // + this.led9Button.BackColor = System.Drawing.Color.Black; + this.led9Button.Enabled = false; + this.led9Button.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.led9Button.ForeColor = System.Drawing.Color.White; + this.led9Button.Location = new System.Drawing.Point( 298, 20 ); + this.led9Button.Name = "led9Button"; + this.led9Button.Size = new System.Drawing.Size( 30, 23 ); + this.led9Button.TabIndex = 9; + this.led9Button.Text = "9"; + this.led9Button.UseVisualStyleBackColor = false; + this.led9Button.Click += new System.EventHandler( this.ledButton_Click ); + // + // led8Button + // + this.led8Button.BackColor = System.Drawing.Color.Black; + this.led8Button.Enabled = false; + this.led8Button.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.led8Button.ForeColor = System.Drawing.Color.White; + this.led8Button.Location = new System.Drawing.Point( 266, 20 ); + this.led8Button.Name = "led8Button"; + this.led8Button.Size = new System.Drawing.Size( 30, 23 ); + this.led8Button.TabIndex = 8; + this.led8Button.Text = "8"; + this.led8Button.UseVisualStyleBackColor = false; + this.led8Button.Click += new System.EventHandler( this.ledButton_Click ); + // + // led7Button + // + this.led7Button.BackColor = System.Drawing.Color.Black; + this.led7Button.Enabled = false; + this.led7Button.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.led7Button.ForeColor = System.Drawing.Color.White; + this.led7Button.Location = new System.Drawing.Point( 234, 20 ); + this.led7Button.Name = "led7Button"; + this.led7Button.Size = new System.Drawing.Size( 30, 23 ); + this.led7Button.TabIndex = 7; + this.led7Button.Text = "7"; + this.led7Button.UseVisualStyleBackColor = false; + this.led7Button.Click += new System.EventHandler( this.ledButton_Click ); + // + // led6Button + // + this.led6Button.BackColor = System.Drawing.Color.Black; + this.led6Button.Enabled = false; + this.led6Button.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.led6Button.ForeColor = System.Drawing.Color.White; + this.led6Button.Location = new System.Drawing.Point( 202, 20 ); + this.led6Button.Name = "led6Button"; + this.led6Button.Size = new System.Drawing.Size( 30, 23 ); + this.led6Button.TabIndex = 6; + this.led6Button.Text = "6"; + this.led6Button.UseVisualStyleBackColor = false; + this.led6Button.Click += new System.EventHandler( this.ledButton_Click ); + // + // led5Button + // + this.led5Button.BackColor = System.Drawing.Color.Black; + this.led5Button.Enabled = false; + this.led5Button.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.led5Button.ForeColor = System.Drawing.Color.White; + this.led5Button.Location = new System.Drawing.Point( 170, 20 ); + this.led5Button.Name = "led5Button"; + this.led5Button.Size = new System.Drawing.Size( 30, 23 ); + this.led5Button.TabIndex = 5; + this.led5Button.Text = "5"; + this.led5Button.UseVisualStyleBackColor = false; + this.led5Button.Click += new System.EventHandler( this.ledButton_Click ); + // + // led4Button + // + this.led4Button.BackColor = System.Drawing.Color.Black; + this.led4Button.Enabled = false; + this.led4Button.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.led4Button.ForeColor = System.Drawing.Color.White; + this.led4Button.Location = new System.Drawing.Point( 138, 20 ); + this.led4Button.Name = "led4Button"; + this.led4Button.Size = new System.Drawing.Size( 30, 23 ); + this.led4Button.TabIndex = 4; + this.led4Button.Text = "4"; + this.led4Button.UseVisualStyleBackColor = false; + this.led4Button.Click += new System.EventHandler( this.ledButton_Click ); + // + // led3Button + // + this.led3Button.BackColor = System.Drawing.Color.Black; + this.led3Button.Enabled = false; + this.led3Button.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.led3Button.ForeColor = System.Drawing.Color.White; + this.led3Button.Location = new System.Drawing.Point( 106, 20 ); + this.led3Button.Name = "led3Button"; + this.led3Button.Size = new System.Drawing.Size( 30, 23 ); + this.led3Button.TabIndex = 3; + this.led3Button.Text = "3"; + this.led3Button.UseVisualStyleBackColor = false; + this.led3Button.Click += new System.EventHandler( this.ledButton_Click ); + // + // led2Button + // + this.led2Button.BackColor = System.Drawing.Color.Black; + this.led2Button.Enabled = false; + this.led2Button.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.led2Button.ForeColor = System.Drawing.Color.White; + this.led2Button.Location = new System.Drawing.Point( 74, 20 ); + this.led2Button.Name = "led2Button"; + this.led2Button.Size = new System.Drawing.Size( 30, 23 ); + this.led2Button.TabIndex = 2; + this.led2Button.Text = "2"; + this.led2Button.UseVisualStyleBackColor = false; + this.led2Button.Click += new System.EventHandler( this.ledButton_Click ); + // + // led1Button + // + this.led1Button.BackColor = System.Drawing.Color.Black; + this.led1Button.Enabled = false; + this.led1Button.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.led1Button.ForeColor = System.Drawing.Color.White; + this.led1Button.Location = new System.Drawing.Point( 42, 20 ); + this.led1Button.Name = "led1Button"; + this.led1Button.Size = new System.Drawing.Size( 30, 23 ); + this.led1Button.TabIndex = 1; + this.led1Button.Text = "1"; + this.led1Button.UseVisualStyleBackColor = false; + this.led1Button.Click += new System.EventHandler( this.ledButton_Click ); + // + // led0Button + // + this.led0Button.BackColor = System.Drawing.Color.Black; + this.led0Button.Enabled = false; + this.led0Button.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.led0Button.ForeColor = System.Drawing.Color.White; + this.led0Button.Location = new System.Drawing.Point( 10, 20 ); + this.led0Button.Name = "led0Button"; + this.led0Button.Size = new System.Drawing.Size( 30, 23 ); + this.led0Button.TabIndex = 0; + this.led0Button.Text = "0"; + this.led0Button.UseVisualStyleBackColor = false; + this.led0Button.Click += new System.EventHandler( this.ledButton_Click ); + // + // MainForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF( 6F, 13F ); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size( 362, 434 ); + this.Controls.Add( this.groupBox3 ); + this.Controls.Add( this.statusStrip ); + this.Controls.Add( this.groupBox2 ); + this.Controls.Add( this.groupBox1 ); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.MaximizeBox = false; + this.Name = "MainForm"; + this.Text = "Qwerk Start"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler( this.MainForm_FormClosing ); + this.groupBox1.ResumeLayout( false ); + this.groupBox1.PerformLayout( ); + this.groupBox2.ResumeLayout( false ); + this.statusStrip.ResumeLayout( false ); + this.statusStrip.PerformLayout( ); + this.groupBox3.ResumeLayout( false ); + this.ResumeLayout( false ); + this.PerformLayout( ); + + } + + #endregion + + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.Button disconnectButton; + private System.Windows.Forms.Button connectButton; + private System.Windows.Forms.TextBox qwerkIPBox; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.GroupBox groupBox2; + private AForge.Controls.VideoSourcePlayer videoSourcePlayer; + private System.Windows.Forms.StatusStrip statusStrip; + private System.Windows.Forms.ToolStripStatusLabel statusLabel; + private System.Windows.Forms.ToolStripStatusLabel voltageLabel; + private System.Windows.Forms.ToolStripStatusLabel fpsLabel; + private System.Windows.Forms.Timer timer; + private System.Windows.Forms.GroupBox groupBox3; + private System.Windows.Forms.Button led9Button; + private System.Windows.Forms.Button led8Button; + private System.Windows.Forms.Button led7Button; + private System.Windows.Forms.Button led6Button; + private System.Windows.Forms.Button led5Button; + private System.Windows.Forms.Button led4Button; + private System.Windows.Forms.Button led3Button; + private System.Windows.Forms.Button led2Button; + private System.Windows.Forms.Button led1Button; + private System.Windows.Forms.Button led0Button; + } +} + diff --git a/Samples/Robotics/TeRK/QwerkStart/MainForm.cs b/Samples/Robotics/TeRK/QwerkStart/MainForm.cs new file mode 100644 index 00000000..236106ad --- /dev/null +++ b/Samples/Robotics/TeRK/QwerkStart/MainForm.cs @@ -0,0 +1,239 @@ +// Qwerk robotics board start application +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2006-2011 +// contacts@aforgenet.com +// + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; + +using AForge.Robotics.TeRK; +using AForge.Video; + +namespace QwerkStart +{ + public partial class MainForm : Form + { + private Qwerk qwerk = new Qwerk( ); + + // statistics length + private const int statLength = 15; + // current statistics index + private int statIndex = 0; + // ready statistics values + private int statReady = 0; + // statistics array + private int[] statCount = new int[statLength]; + + bool[] ledStates = new bool[10] + { + false, false, false, false, false, false, false, false, false, false + }; + + // Class constructor + public MainForm( ) + { + InitializeComponent( ); + + EnableContols( false ); + + } + + // On form closing + private void MainForm_FormClosing( object sender, FormClosingEventArgs e ) + { + Disconnect( ); + } + + // Enable/disable connection controls + private void EnableContols( bool enable ) + { + connectButton.Enabled = !enable; + disconnectButton.Enabled = enable; + + led0Button.BackColor = Color.Black; + led1Button.BackColor = Color.Black; + led2Button.BackColor = Color.Black; + led3Button.BackColor = Color.Black; + led4Button.BackColor = Color.Black; + led5Button.BackColor = Color.Black; + led6Button.BackColor = Color.Black; + led7Button.BackColor = Color.Black; + led8Button.BackColor = Color.Black; + led9Button.BackColor = Color.Black; + + led0Button.Enabled = enable; + led1Button.Enabled = enable; + led2Button.Enabled = enable; + led3Button.Enabled = enable; + led4Button.Enabled = enable; + led5Button.Enabled = enable; + led6Button.Enabled = enable; + led7Button.Enabled = enable; + led8Button.Enabled = enable; + led9Button.Enabled = enable; + } + + // On "Connect" button click + private void connectButton_Click( object sender, EventArgs e ) + { + if ( Connect( qwerkIPBox.Text ) ) + { + EnableContols( true ); + statusLabel.Text = "Connected"; + } + else + { + MessageBox.Show( "Failed connecting to Qwerk.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error ); + } + } + + // On "Disconnect" buttong click + private void disconnectButton_Click( object sender, EventArgs e ) + { + Disconnect( ); + statusLabel.Text = "Disconnected"; + fpsLabel.Text = string.Empty; + voltageLabel.Text = string.Empty; + } + + // Connect to Qwerk + private bool Connect( string host ) + { + bool result = true; + + try + { + qwerk.Connect( qwerkIPBox.Text ); + + // turn off all LEDs + qwerk.GetLedsService( ).SetLedsState( Qwerk.LedState.Off ); + // start video camera + Qwerk.Video qwerkVideo = qwerk.GetVideoService( ); + qwerkVideo.FrameInterval = 1000 / 15; + videoSourcePlayer.VideoSource = qwerkVideo; + videoSourcePlayer.Start( ); + + // reset statistics + statIndex = statReady = 0; + + // start timer + timer.Start( ); + } + catch + { + result = false; + } + + return result; + } + + // Handle lost connection + private void HandleLostConnection( ) + { + Disconnect( ); + statusLabel.Text = "Disconnected"; + fpsLabel.Text = string.Empty; + voltageLabel.Text = string.Empty; + + MessageBox.Show( "Connection to Qwerk was lost.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error ); + } + + // Disconnect from Qwerk + private void Disconnect( ) + { + if ( qwerk.IsConnected ) + { + timer.Stop( ); + + try + { + // stop Qwerk's camera + Qwerk.Video qwerkVideo = qwerk.GetVideoService( ); + qwerkVideo.SignalToStop( ); + qwerkVideo.WaitForStop( ); + + // turn of all LEDs and disconnect + qwerk.GetLedsService( ).SetLedsState( Qwerk.LedState.Off ); + } + catch + { + } + + qwerk.Disconnect( ); + + EnableContols( false ); + } + } + + // On timer's tick + private void timer_Tick( object sender, EventArgs e ) + { + // 1 - update voltage + try + { + double power = (double) qwerk.GetPower( ) / 1000; + voltageLabel.Text = "Voltage: " + power.ToString( "F3" ); + } + catch + { + HandleLostConnection( ); + } + + // 2 - update FPS + IVideoSource videoSource = videoSourcePlayer.VideoSource; + + if ( videoSource != null ) + { + // get number of frames for the last second + statCount[statIndex] = videoSource.FramesReceived; + + // increment indexes + if ( ++statIndex >= statLength ) + statIndex = 0; + if ( statReady < statLength ) + statReady++; + + float fps = 0; + + // calculate average value + for ( int i = 0; i < statReady; i++ ) + { + fps += statCount[i]; + } + fps /= statReady; + + statCount[statIndex] = 0; + + fpsLabel.Text = fps.ToString( "F2" ) + " fps"; + } + } + + // On LED's butong click + private void ledButton_Click( object sender, EventArgs e ) + { + int ledIndex = int.Parse( ( (Button) sender ).Text ); + + ledStates[ledIndex] = !ledStates[ledIndex]; + + try + { + // turn LED on/off + qwerk.GetLedsService( ).SetLedState( ledIndex, ( ledStates[ledIndex] ) ? Qwerk.LedState.On : Qwerk.LedState.Off ); + // update LED button's color + ( (Button) sender ).BackColor = ( ledStates[ledIndex] ) ? Color.Green : Color.Black; + } + catch + { + HandleLostConnection( ); + } + } + } +} diff --git a/Samples/Robotics/TeRK/QwerkStart/MainForm.resx b/Samples/Robotics/TeRK/QwerkStart/MainForm.resx new file mode 100644 index 00000000..6a6d4259 --- /dev/null +++ b/Samples/Robotics/TeRK/QwerkStart/MainForm.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 126, 17 + + \ No newline at end of file diff --git a/Samples/Robotics/TeRK/QwerkStart/Program.cs b/Samples/Robotics/TeRK/QwerkStart/Program.cs new file mode 100644 index 00000000..01c63ca5 --- /dev/null +++ b/Samples/Robotics/TeRK/QwerkStart/Program.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Windows.Forms; + +namespace QwerkStart +{ + static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main( ) + { + Application.EnableVisualStyles( ); + Application.SetCompatibleTextRenderingDefault( false ); + Application.Run( new MainForm( ) ); + } + } +} diff --git a/Samples/Robotics/TeRK/QwerkStart/Properties/AssemblyInfo.cs b/Samples/Robotics/TeRK/QwerkStart/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..c9731c97 --- /dev/null +++ b/Samples/Robotics/TeRK/QwerkStart/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle( "Qwerk Start" )] +[assembly: AssemblyDescription( "Qwerk Start sample" )] +[assembly: AssemblyConfiguration( "" )] +[assembly: AssemblyCompany( "AForge" )] +[assembly: AssemblyProduct( "AForge.NET" )] +[assembly: AssemblyCopyright( "AForge © 2008" )] +[assembly: AssemblyTrademark( "" )] +[assembly: AssemblyCulture( "" )] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible( false )] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid( "72300812-ef8b-46d0-a3d0-f20023d9d82f" )] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion( "1.0.0.0" )] +[assembly: AssemblyFileVersion( "1.0.0.0" )] diff --git a/Samples/Robotics/TeRK/QwerkStart/Properties/Resources.Designer.cs b/Samples/Robotics/TeRK/QwerkStart/Properties/Resources.Designer.cs new file mode 100644 index 00000000..12d227e0 --- /dev/null +++ b/Samples/Robotics/TeRK/QwerkStart/Properties/Resources.Designer.cs @@ -0,0 +1,71 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.3053 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace QwerkStart.Properties +{ + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute( "System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0" )] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute( )] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute( )] + internal class Resources + { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute( "Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode" )] + internal Resources( ) + { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute( global::System.ComponentModel.EditorBrowsableState.Advanced )] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if ( ( resourceMan == null ) ) + { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager( "QwerkStart.Properties.Resources", typeof( Resources ).Assembly ); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute( global::System.ComponentModel.EditorBrowsableState.Advanced )] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/Samples/Robotics/TeRK/QwerkStart/Properties/Resources.resx b/Samples/Robotics/TeRK/QwerkStart/Properties/Resources.resx new file mode 100644 index 00000000..af7dbebb --- /dev/null +++ b/Samples/Robotics/TeRK/QwerkStart/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Samples/Robotics/TeRK/QwerkStart/Properties/Settings.Designer.cs b/Samples/Robotics/TeRK/QwerkStart/Properties/Settings.Designer.cs new file mode 100644 index 00000000..9f3a6ab5 --- /dev/null +++ b/Samples/Robotics/TeRK/QwerkStart/Properties/Settings.Designer.cs @@ -0,0 +1,30 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.3053 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace QwerkStart.Properties +{ + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute( )] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute( "Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "9.0.0.0" )] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase + { + + private static Settings defaultInstance = ( (Settings) ( global::System.Configuration.ApplicationSettingsBase.Synchronized( new Settings( ) ) ) ); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/Samples/Robotics/TeRK/QwerkStart/Properties/Settings.settings b/Samples/Robotics/TeRK/QwerkStart/Properties/Settings.settings new file mode 100644 index 00000000..39645652 --- /dev/null +++ b/Samples/Robotics/TeRK/QwerkStart/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Samples/Robotics/TeRK/QwerkStart/QwerkStart.csproj b/Samples/Robotics/TeRK/QwerkStart/QwerkStart.csproj new file mode 100644 index 00000000..adbdd1b0 --- /dev/null +++ b/Samples/Robotics/TeRK/QwerkStart/QwerkStart.csproj @@ -0,0 +1,138 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {68ED8CA0-C8BB-4790-83CC-DF7C43A7777B} + WinExe + Properties + QwerkStart + QwerkStart + v2.0 + 512 + + + 3.5 + + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + False + ..\..\..\..\Release\AForge.Controls.dll + + + False + ..\..\..\..\Release\AForge.Robotics.TeRK.dll + + + False + ..\..\..\..\Release\AForge.Video.dll + + + + + + + + False + ..\..\..\..\Externals\TeRK\TeRK.dll + + + + + Form + + + MainForm.cs + + + + + MainForm.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + True + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + False + Microsoft .NET Framework 4 %28x86 and x64%29 + true + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 3.1 + true + + + + + \ No newline at end of file diff --git a/Samples/Robotics/TeRK/QwerkStart/QwerkStart.sln b/Samples/Robotics/TeRK/QwerkStart/QwerkStart.sln new file mode 100644 index 00000000..c8d29bd2 --- /dev/null +++ b/Samples/Robotics/TeRK/QwerkStart/QwerkStart.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual C# Express 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "QwerkStart", "QwerkStart.csproj", "{68ED8CA0-C8BB-4790-83CC-DF7C43A7777B}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {68ED8CA0-C8BB-4790-83CC-DF7C43A7777B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {68ED8CA0-C8BB-4790-83CC-DF7C43A7777B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {68ED8CA0-C8BB-4790-83CC-DF7C43A7777B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {68ED8CA0-C8BB-4790-83CC-DF7C43A7777B}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Samples/Video/Kinect Capture/Kinect Capture.csproj b/Samples/Video/Kinect Capture/Kinect Capture.csproj new file mode 100644 index 00000000..0162b00c --- /dev/null +++ b/Samples/Video/Kinect Capture/Kinect Capture.csproj @@ -0,0 +1,143 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {B4CB129D-51F9-4C86-B520-7AC50537A70B} + WinExe + Properties + KinectCapture + Kinect Capture + v2.0 + 512 + + + 3.5 + + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + False + ..\..\..\Release\AForge.dll + + + False + ..\..\..\Release\AForge.Controls.dll + + + False + ..\..\..\Release\AForge.Video.dll + + + False + ..\..\..\Release\AForge.Video.Kinect.dll + + + + + + + + + Form + + + MainForm.cs + + + + + MainForm.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + True + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + freenect.dll + PreserveNewest + + + + + False + Microsoft .NET Framework 4 %28x86 and x64%29 + true + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 3.1 + true + + + + + \ No newline at end of file diff --git a/Samples/Video/Kinect Capture/Kinect Capture.sln b/Samples/Video/Kinect Capture/Kinect Capture.sln new file mode 100644 index 00000000..e5a67a83 --- /dev/null +++ b/Samples/Video/Kinect Capture/Kinect Capture.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual C# Express 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Kinect Capture", "Kinect Capture.csproj", "{B4CB129D-51F9-4C86-B520-7AC50537A70B}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {B4CB129D-51F9-4C86-B520-7AC50537A70B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B4CB129D-51F9-4C86-B520-7AC50537A70B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B4CB129D-51F9-4C86-B520-7AC50537A70B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B4CB129D-51F9-4C86-B520-7AC50537A70B}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Samples/Video/Kinect Capture/MainForm.Designer.cs b/Samples/Video/Kinect Capture/MainForm.Designer.cs new file mode 100644 index 00000000..902b3424 --- /dev/null +++ b/Samples/Video/Kinect Capture/MainForm.Designer.cs @@ -0,0 +1,343 @@ +namespace KinectCapture +{ + partial class MainForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose( bool disposing ) + { + if ( disposing && ( components != null ) ) + { + components.Dispose( ); + } + base.Dispose( disposing ); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent( ) + { + this.components = new System.ComponentModel.Container( ); + this.label1 = new System.Windows.Forms.Label( ); + this.devicesCombo = new System.Windows.Forms.ComboBox( ); + this.connectButton = new System.Windows.Forms.Button( ); + this.disconnectButton = new System.Windows.Forms.Button( ); + this.tableLayoutPanel = new System.Windows.Forms.TableLayoutPanel( ); + this.leftPanel = new System.Windows.Forms.Panel( ); + this.groupBox1 = new System.Windows.Forms.GroupBox( ); + this.videoCameraPlayer = new AForge.Controls.VideoSourcePlayer( ); + this.rightPanel = new System.Windows.Forms.Panel( ); + this.groupBox2 = new System.Windows.Forms.GroupBox( ); + this.depthCameraPlayer = new AForge.Controls.VideoSourcePlayer( ); + this.label2 = new System.Windows.Forms.Label( ); + this.ledColorCombo = new System.Windows.Forms.ComboBox( ); + this.label3 = new System.Windows.Forms.Label( ); + this.tiltUpDown = new System.Windows.Forms.NumericUpDown( ); + this.label4 = new System.Windows.Forms.Label( ); + this.videoModeCombo = new System.Windows.Forms.ComboBox( ); + this.statusStrip = new System.Windows.Forms.StatusStrip( ); + this.accelerometerLabel = new System.Windows.Forms.ToolStripStatusLabel( ); + this.timer = new System.Windows.Forms.Timer( this.components ); + this.tableLayoutPanel.SuspendLayout( ); + this.leftPanel.SuspendLayout( ); + this.groupBox1.SuspendLayout( ); + this.rightPanel.SuspendLayout( ); + this.groupBox2.SuspendLayout( ); + ( (System.ComponentModel.ISupportInitialize) ( this.tiltUpDown ) ).BeginInit( ); + this.statusStrip.SuspendLayout( ); + this.SuspendLayout( ); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point( 10, 13 ); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size( 75, 13 ); + this.label1.TabIndex = 0; + this.label1.Text = "Select device:"; + // + // devicesCombo + // + this.devicesCombo.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.devicesCombo.FormattingEnabled = true; + this.devicesCombo.Location = new System.Drawing.Point( 90, 10 ); + this.devicesCombo.Name = "devicesCombo"; + this.devicesCombo.Size = new System.Drawing.Size( 121, 21 ); + this.devicesCombo.TabIndex = 1; + // + // connectButton + // + this.connectButton.Location = new System.Drawing.Point( 220, 10 ); + this.connectButton.Name = "connectButton"; + this.connectButton.Size = new System.Drawing.Size( 75, 23 ); + this.connectButton.TabIndex = 2; + this.connectButton.Text = "&Connect"; + this.connectButton.UseVisualStyleBackColor = true; + this.connectButton.Click += new System.EventHandler( this.connectButton_Click ); + // + // disconnectButton + // + this.disconnectButton.Location = new System.Drawing.Point( 300, 10 ); + this.disconnectButton.Name = "disconnectButton"; + this.disconnectButton.Size = new System.Drawing.Size( 75, 23 ); + this.disconnectButton.TabIndex = 3; + this.disconnectButton.Text = "&Disconnect"; + this.disconnectButton.UseVisualStyleBackColor = true; + this.disconnectButton.Click += new System.EventHandler( this.disconnectButton_Click ); + // + // tableLayoutPanel + // + this.tableLayoutPanel.Anchor = ( (System.Windows.Forms.AnchorStyles) ( ( ( ( System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom ) + | System.Windows.Forms.AnchorStyles.Left ) + | System.Windows.Forms.AnchorStyles.Right ) ) ); + this.tableLayoutPanel.ColumnCount = 2; + this.tableLayoutPanel.ColumnStyles.Add( new System.Windows.Forms.ColumnStyle( System.Windows.Forms.SizeType.Percent, 50F ) ); + this.tableLayoutPanel.ColumnStyles.Add( new System.Windows.Forms.ColumnStyle( System.Windows.Forms.SizeType.Percent, 50F ) ); + this.tableLayoutPanel.Controls.Add( this.leftPanel, 0, 0 ); + this.tableLayoutPanel.Controls.Add( this.rightPanel, 1, 0 ); + this.tableLayoutPanel.Location = new System.Drawing.Point( 0, 40 ); + this.tableLayoutPanel.Name = "tableLayoutPanel"; + this.tableLayoutPanel.RowCount = 1; + this.tableLayoutPanel.RowStyles.Add( new System.Windows.Forms.RowStyle( System.Windows.Forms.SizeType.Percent, 50F ) ); + this.tableLayoutPanel.Size = new System.Drawing.Size( 826, 295 ); + this.tableLayoutPanel.TabIndex = 4; + // + // leftPanel + // + this.leftPanel.Controls.Add( this.groupBox1 ); + this.leftPanel.Dock = System.Windows.Forms.DockStyle.Fill; + this.leftPanel.Location = new System.Drawing.Point( 3, 3 ); + this.leftPanel.Name = "leftPanel"; + this.leftPanel.Size = new System.Drawing.Size( 407, 289 ); + this.leftPanel.TabIndex = 0; + // + // groupBox1 + // + this.groupBox1.Anchor = ( (System.Windows.Forms.AnchorStyles) ( ( ( ( System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom ) + | System.Windows.Forms.AnchorStyles.Left ) + | System.Windows.Forms.AnchorStyles.Right ) ) ); + this.groupBox1.Controls.Add( this.videoCameraPlayer ); + this.groupBox1.Location = new System.Drawing.Point( 5, 5 ); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size( 396, 277 ); + this.groupBox1.TabIndex = 0; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "Video Camera"; + // + // videoCameraPlayer + // + this.videoCameraPlayer.Anchor = ( (System.Windows.Forms.AnchorStyles) ( ( ( ( System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom ) + | System.Windows.Forms.AnchorStyles.Left ) + | System.Windows.Forms.AnchorStyles.Right ) ) ); + this.videoCameraPlayer.BackColor = System.Drawing.SystemColors.ControlDarkDark; + this.videoCameraPlayer.ForeColor = System.Drawing.Color.FromArgb( ( (int) ( ( (byte) ( 192 ) ) ) ), ( (int) ( ( (byte) ( 192 ) ) ) ), ( (int) ( ( (byte) ( 255 ) ) ) ) ); + this.videoCameraPlayer.Location = new System.Drawing.Point( 11, 15 ); + this.videoCameraPlayer.Name = "videoCameraPlayer"; + this.videoCameraPlayer.Size = new System.Drawing.Size( 373, 253 ); + this.videoCameraPlayer.TabIndex = 0; + this.videoCameraPlayer.VideoSource = null; + // + // rightPanel + // + this.rightPanel.Controls.Add( this.groupBox2 ); + this.rightPanel.Dock = System.Windows.Forms.DockStyle.Fill; + this.rightPanel.Location = new System.Drawing.Point( 416, 3 ); + this.rightPanel.Name = "rightPanel"; + this.rightPanel.Size = new System.Drawing.Size( 407, 289 ); + this.rightPanel.TabIndex = 1; + // + // groupBox2 + // + this.groupBox2.Anchor = ( (System.Windows.Forms.AnchorStyles) ( ( ( ( System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom ) + | System.Windows.Forms.AnchorStyles.Left ) + | System.Windows.Forms.AnchorStyles.Right ) ) ); + this.groupBox2.Controls.Add( this.depthCameraPlayer ); + this.groupBox2.Location = new System.Drawing.Point( 6, 6 ); + this.groupBox2.Name = "groupBox2"; + this.groupBox2.Size = new System.Drawing.Size( 395, 277 ); + this.groupBox2.TabIndex = 1; + this.groupBox2.TabStop = false; + this.groupBox2.Text = "Depth Camera"; + // + // depthCameraPlayer + // + this.depthCameraPlayer.Anchor = ( (System.Windows.Forms.AnchorStyles) ( ( ( ( System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom ) + | System.Windows.Forms.AnchorStyles.Left ) + | System.Windows.Forms.AnchorStyles.Right ) ) ); + this.depthCameraPlayer.BackColor = System.Drawing.SystemColors.ControlDarkDark; + this.depthCameraPlayer.ForeColor = System.Drawing.Color.FromArgb( ( (int) ( ( (byte) ( 192 ) ) ) ), ( (int) ( ( (byte) ( 192 ) ) ) ), ( (int) ( ( (byte) ( 255 ) ) ) ) ); + this.depthCameraPlayer.Location = new System.Drawing.Point( 11, 15 ); + this.depthCameraPlayer.Name = "depthCameraPlayer"; + this.depthCameraPlayer.Size = new System.Drawing.Size( 373, 253 ); + this.depthCameraPlayer.TabIndex = 0; + this.depthCameraPlayer.Text = "videoSourcePlayer2"; + this.depthCameraPlayer.VideoSource = null; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point( 390, 13 ); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size( 31, 13 ); + this.label2.TabIndex = 6; + this.label2.Text = "LED:"; + // + // ledColorCombo + // + this.ledColorCombo.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.ledColorCombo.FormattingEnabled = true; + this.ledColorCombo.Items.AddRange( new object[] { + "Off", + "Green", + "Red", + "Yellow", + "Blinking Green", + "Blinking Red-Yellow"} ); + this.ledColorCombo.Location = new System.Drawing.Point( 425, 10 ); + this.ledColorCombo.Name = "ledColorCombo"; + this.ledColorCombo.Size = new System.Drawing.Size( 95, 21 ); + this.ledColorCombo.TabIndex = 7; + this.ledColorCombo.SelectedIndexChanged += new System.EventHandler( this.ledColorCombo_SelectedIndexChanged ); + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point( 530, 13 ); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size( 24, 13 ); + this.label3.TabIndex = 8; + this.label3.Text = "Tilt:"; + // + // tiltUpDown + // + this.tiltUpDown.Location = new System.Drawing.Point( 560, 10 ); + this.tiltUpDown.Maximum = new decimal( new int[] { + 31, + 0, + 0, + 0} ); + this.tiltUpDown.Minimum = new decimal( new int[] { + 31, + 0, + 0, + -2147483648} ); + this.tiltUpDown.Name = "tiltUpDown"; + this.tiltUpDown.Size = new System.Drawing.Size( 62, 20 ); + this.tiltUpDown.TabIndex = 9; + this.tiltUpDown.ValueChanged += new System.EventHandler( this.tiltUpDown_ValueChanged ); + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point( 635, 13 ); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size( 66, 13 ); + this.label4.TabIndex = 10; + this.label4.Text = "Video mode:"; + // + // videoModeCombo + // + this.videoModeCombo.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.videoModeCombo.FormattingEnabled = true; + this.videoModeCombo.Items.AddRange( new object[] { + "Color", + "Bayer", + "InfraRed"} ); + this.videoModeCombo.Location = new System.Drawing.Point( 706, 10 ); + this.videoModeCombo.Name = "videoModeCombo"; + this.videoModeCombo.Size = new System.Drawing.Size( 100, 21 ); + this.videoModeCombo.TabIndex = 11; + // + // statusStrip + // + this.statusStrip.Items.AddRange( new System.Windows.Forms.ToolStripItem[] { + this.accelerometerLabel} ); + this.statusStrip.Location = new System.Drawing.Point( 0, 338 ); + this.statusStrip.Name = "statusStrip"; + this.statusStrip.Size = new System.Drawing.Size( 827, 22 ); + this.statusStrip.TabIndex = 12; + this.statusStrip.Text = "statusStrip1"; + // + // accelerometerLabel + // + this.accelerometerLabel.AutoSize = false; + this.accelerometerLabel.Name = "accelerometerLabel"; + this.accelerometerLabel.Size = new System.Drawing.Size( 781, 17 ); + this.accelerometerLabel.Spring = true; + this.accelerometerLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // timer + // + this.timer.Tick += new System.EventHandler( this.timer_Tick ); + // + // MainForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF( 6F, 13F ); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size( 827, 360 ); + this.Controls.Add( this.statusStrip ); + this.Controls.Add( this.videoModeCombo ); + this.Controls.Add( this.label4 ); + this.Controls.Add( this.tiltUpDown ); + this.Controls.Add( this.label3 ); + this.Controls.Add( this.ledColorCombo ); + this.Controls.Add( this.label2 ); + this.Controls.Add( this.tableLayoutPanel ); + this.Controls.Add( this.disconnectButton ); + this.Controls.Add( this.connectButton ); + this.Controls.Add( this.devicesCombo ); + this.Controls.Add( this.label1 ); + this.MinimumSize = new System.Drawing.Size( 840, 390 ); + this.Name = "MainForm"; + this.Text = "Kinect Capture"; + this.Load += new System.EventHandler( this.MainForm_Load ); + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler( this.MainForm_FormClosing ); + this.tableLayoutPanel.ResumeLayout( false ); + this.leftPanel.ResumeLayout( false ); + this.groupBox1.ResumeLayout( false ); + this.rightPanel.ResumeLayout( false ); + this.groupBox2.ResumeLayout( false ); + ( (System.ComponentModel.ISupportInitialize) ( this.tiltUpDown ) ).EndInit( ); + this.statusStrip.ResumeLayout( false ); + this.statusStrip.PerformLayout( ); + this.ResumeLayout( false ); + this.PerformLayout( ); + + } + + #endregion + + private System.Windows.Forms.Label label1; + private System.Windows.Forms.ComboBox devicesCombo; + private System.Windows.Forms.Button connectButton; + private System.Windows.Forms.Button disconnectButton; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel; + private System.Windows.Forms.Panel leftPanel; + private System.Windows.Forms.Panel rightPanel; + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.GroupBox groupBox2; + private AForge.Controls.VideoSourcePlayer videoCameraPlayer; + private AForge.Controls.VideoSourcePlayer depthCameraPlayer; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.ComboBox ledColorCombo; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.NumericUpDown tiltUpDown; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.ComboBox videoModeCombo; + private System.Windows.Forms.StatusStrip statusStrip; + private System.Windows.Forms.ToolStripStatusLabel accelerometerLabel; + private System.Windows.Forms.Timer timer; + } +} + diff --git a/Samples/Video/Kinect Capture/MainForm.cs b/Samples/Video/Kinect Capture/MainForm.cs new file mode 100644 index 00000000..f4bee665 --- /dev/null +++ b/Samples/Video/Kinect Capture/MainForm.cs @@ -0,0 +1,205 @@ +// Kinect Capture sample application +// AForge.NET Framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2009-2011 +// contacts@aforgenet.com +// + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Windows.Forms; + +using AForge.Video; +using AForge.Video.Kinect; + +namespace KinectCapture +{ + public partial class MainForm : Form + { + private Kinect kinectDevice = null; + private KinectVideoCamera videoCamera = null; + private KinectDepthCamera depthCamera = null; + + private static readonly LedColorOption[] ledMode = + { + LedColorOption.Off, LedColorOption.Green, LedColorOption.Red, + LedColorOption.Yellow, LedColorOption.BlinkGreen, LedColorOption.BlinkRedYellow + }; + + public MainForm( ) + { + InitializeComponent( ); + } + + // On Main form loaded + private void MainForm_Load( object sender, EventArgs e ) + { + if ( Kinect.DeviceCount == 0 ) + { + devicesCombo.Items.Add( "No Kinect devices" ); + } + else + { + for ( int i = 0; i < Kinect.DeviceCount; i++ ) + { + devicesCombo.Items.Add( "Device " + i ); + } + } + devicesCombo.SelectedIndex = 0; + videoModeCombo.SelectedIndex = 0; + EnableConnectionControls( true ); + } + + // On closing the main form + private void MainForm_FormClosing( object sender, FormClosingEventArgs e ) + { + Disconnect( ); + } + + // Enable/disable controls related to connecton/disconnection + private void EnableConnectionControls( bool enable ) + { + devicesCombo.Enabled = enable; + videoModeCombo.Enabled = enable; + connectButton.Enabled = enable; + disconnectButton.Enabled = !enable; + ledColorCombo.Enabled = !enable; + tiltUpDown.Enabled = !enable; + } + + // On "Connect" butto clicked + private void connectButton_Click( object sender, EventArgs e ) + { + if ( Connect( ) ) + { + EnableConnectionControls( false ); + } + } + + // On "Disconnect" butto clicked + private void disconnectButton_Click( object sender, EventArgs e ) + { + Disconnect( ); + EnableConnectionControls( true ); + } + + // Connect to Kinect cameras + private bool Connect( ) + { + bool ret = false; + + Cursor = Cursors.WaitCursor; + + if ( Kinect.DeviceCount != 0 ) + { + int deviceID = devicesCombo.SelectedIndex; + + try + { + kinectDevice = Kinect.GetDevice( deviceID ); + + if ( videoCamera == null ) + { + videoCamera = kinectDevice.GetVideoCamera( ); + videoCamera.CameraMode = ( videoModeCombo.SelectedIndex == 0 ) ? VideoCameraMode.Color : + ( ( videoModeCombo.SelectedIndex == 1 ) ? VideoCameraMode.Bayer : VideoCameraMode.InfraRed ); + videoCameraPlayer.VideoSource = videoCamera; + videoCameraPlayer.Start( ); + } + + if ( depthCamera == null ) + { + depthCamera = kinectDevice.GetDepthCamera( ); + depthCameraPlayer.VideoSource = depthCamera; + depthCameraPlayer.Start( ); + } + + ledColorCombo.SelectedIndex = 0; + + if ( tiltUpDown.Value != 0 ) + { + tiltUpDown.Value = 0; + } + else + { + kinectDevice.SetMotorTilt( (int) tiltUpDown.Value ); + } + + timer.Start( ); + + ret = true; + } + catch ( Exception ex ) + { + MessageBox.Show( "Failed connecting to Kinect device.\n" + ex.Message, + "Error", MessageBoxButtons.OK, MessageBoxIcon.Error ); + + Disconnect( ); + } + } + + Cursor = Cursors.Default; + + return ret; + } + + // Disconnect from Kinect cameras + private void Disconnect( ) + { + timer.Stop( ); + + if ( videoCamera != null ) + { + videoCameraPlayer.VideoSource = null; + videoCamera.Stop( ); + videoCamera = null; + } + + if ( depthCamera != null ) + { + depthCameraPlayer.VideoSource = null; + depthCamera.Stop( ); + depthCamera = null; + } + + if ( kinectDevice != null ) + { + kinectDevice.Dispose( ); + kinectDevice = null; + } + } + + // Change color of the LED + private void ledColorCombo_SelectedIndexChanged( object sender, EventArgs e ) + { + if ( kinectDevice != null ) + { + kinectDevice.SetLedColor( ledMode[ledColorCombo.SelectedIndex] ); + } + } + + // Tilt the camera up/down + private void tiltUpDown_ValueChanged( object sender, EventArgs e ) + { + if ( kinectDevice != null ) + { + kinectDevice.SetMotorTilt( (int) tiltUpDown.Value ); + } + } + + // Read accelerometer values on timer tick + private void timer_Tick( object sender, EventArgs e ) + { + double x, y, z; + + kinectDevice.GetAccelerometerValues( out x, out y, out z ); + + accelerometerLabel.Text = string.Format( + "Accelerometer values (m/(s*s)): x = {0:F4}, y = {1:F4}, z = {2:F4}", x, y, z ); + } + } +} diff --git a/Samples/Video/Kinect Capture/MainForm.resx b/Samples/Video/Kinect Capture/MainForm.resx new file mode 100644 index 00000000..6a6d4259 --- /dev/null +++ b/Samples/Video/Kinect Capture/MainForm.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 126, 17 + + \ No newline at end of file diff --git a/Samples/Video/Kinect Capture/Program.cs b/Samples/Video/Kinect Capture/Program.cs new file mode 100644 index 00000000..ca10ee9b --- /dev/null +++ b/Samples/Video/Kinect Capture/Program.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Windows.Forms; + +namespace KinectCapture +{ + static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main( ) + { + Application.EnableVisualStyles( ); + Application.SetCompatibleTextRenderingDefault( false ); + Application.Run( new MainForm( ) ); + } + } +} diff --git a/Samples/Video/Kinect Capture/Properties/AssemblyInfo.cs b/Samples/Video/Kinect Capture/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..7a28c143 --- /dev/null +++ b/Samples/Video/Kinect Capture/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle( "Kinect Capture" )] +[assembly: AssemblyDescription( "Kinect Capture Sample" )] +[assembly: AssemblyConfiguration( "" )] +[assembly: AssemblyCompany( "AForge" )] +[assembly: AssemblyProduct( "AForge.NET" )] +[assembly: AssemblyCopyright( "AForge © 2011" )] +[assembly: AssemblyTrademark( "" )] +[assembly: AssemblyCulture( "" )] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible( false )] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid( "9824d802-a89b-47b2-902a-82d4569f2a9f" )] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion( "1.0.0.0" )] +[assembly: AssemblyFileVersion( "1.0.0.0" )] diff --git a/Samples/Video/Kinect Capture/Properties/Resources.Designer.cs b/Samples/Video/Kinect Capture/Properties/Resources.Designer.cs new file mode 100644 index 00000000..44c46207 --- /dev/null +++ b/Samples/Video/Kinect Capture/Properties/Resources.Designer.cs @@ -0,0 +1,63 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.4211 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace KinectCapture.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("KinectCapture.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + } +} diff --git a/Samples/Video/Kinect Capture/Properties/Resources.resx b/Samples/Video/Kinect Capture/Properties/Resources.resx new file mode 100644 index 00000000..af7dbebb --- /dev/null +++ b/Samples/Video/Kinect Capture/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Samples/Video/Kinect Capture/Properties/Settings.Designer.cs b/Samples/Video/Kinect Capture/Properties/Settings.Designer.cs new file mode 100644 index 00000000..37cefa70 --- /dev/null +++ b/Samples/Video/Kinect Capture/Properties/Settings.Designer.cs @@ -0,0 +1,26 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.4211 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace KinectCapture.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "9.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + } +} diff --git a/Samples/Video/Kinect Capture/Properties/Settings.settings b/Samples/Video/Kinect Capture/Properties/Settings.settings new file mode 100644 index 00000000..39645652 --- /dev/null +++ b/Samples/Video/Kinect Capture/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Samples/Video/Player/MainForm.Designer.cs b/Samples/Video/Player/MainForm.Designer.cs new file mode 100644 index 00000000..abf7d7aa --- /dev/null +++ b/Samples/Video/Player/MainForm.Designer.cs @@ -0,0 +1,212 @@ +namespace Player +{ + partial class MainForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose( bool disposing ) + { + if ( disposing && ( components != null ) ) + { + components.Dispose( ); + } + base.Dispose( disposing ); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent( ) + { + this.components = new System.ComponentModel.Container( ); + this.mainMenuStrip = new System.Windows.Forms.MenuStrip( ); + this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem( ); + this.localVideoCaptureDeviceToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem( ); + this.openVideofileusingDirectShowToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem( ); + this.openJPEGURLToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem( ); + this.openMJPEGURLToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem( ); + this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripSeparator( ); + this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem( ); + this.statusStrip = new System.Windows.Forms.StatusStrip( ); + this.fpsLabel = new System.Windows.Forms.ToolStripStatusLabel( ); + this.mainPanel = new System.Windows.Forms.Panel( ); + this.videoSourcePlayer = new AForge.Controls.VideoSourcePlayer( ); + this.timer = new System.Windows.Forms.Timer( this.components ); + this.openFileDialog = new System.Windows.Forms.OpenFileDialog( ); + this.capture1stDisplayToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem( ); + this.mainMenuStrip.SuspendLayout( ); + this.statusStrip.SuspendLayout( ); + this.mainPanel.SuspendLayout( ); + this.SuspendLayout( ); + // + // mainMenuStrip + // + this.mainMenuStrip.Items.AddRange( new System.Windows.Forms.ToolStripItem[] { + this.fileToolStripMenuItem} ); + this.mainMenuStrip.Location = new System.Drawing.Point( 0, 0 ); + this.mainMenuStrip.Name = "mainMenuStrip"; + this.mainMenuStrip.Size = new System.Drawing.Size( 434, 24 ); + this.mainMenuStrip.TabIndex = 0; + this.mainMenuStrip.Text = "menuStrip1"; + // + // fileToolStripMenuItem + // + this.fileToolStripMenuItem.DropDownItems.AddRange( new System.Windows.Forms.ToolStripItem[] { + this.localVideoCaptureDeviceToolStripMenuItem, + this.openVideofileusingDirectShowToolStripMenuItem, + this.openJPEGURLToolStripMenuItem, + this.openMJPEGURLToolStripMenuItem, + this.capture1stDisplayToolStripMenuItem, + this.toolStripMenuItem1, + this.exitToolStripMenuItem} ); + this.fileToolStripMenuItem.Name = "fileToolStripMenuItem"; + this.fileToolStripMenuItem.Size = new System.Drawing.Size( 35, 20 ); + this.fileToolStripMenuItem.Text = "&File"; + // + // localVideoCaptureDeviceToolStripMenuItem + // + this.localVideoCaptureDeviceToolStripMenuItem.Name = "localVideoCaptureDeviceToolStripMenuItem"; + this.localVideoCaptureDeviceToolStripMenuItem.Size = new System.Drawing.Size( 250, 22 ); + this.localVideoCaptureDeviceToolStripMenuItem.Text = "Local &Video Capture Device"; + this.localVideoCaptureDeviceToolStripMenuItem.Click += new System.EventHandler( this.localVideoCaptureDeviceToolStripMenuItem_Click ); + // + // openVideofileusingDirectShowToolStripMenuItem + // + this.openVideofileusingDirectShowToolStripMenuItem.Name = "openVideofileusingDirectShowToolStripMenuItem"; + this.openVideofileusingDirectShowToolStripMenuItem.Size = new System.Drawing.Size( 250, 22 ); + this.openVideofileusingDirectShowToolStripMenuItem.Text = "Open video &file (using DirectShow)"; + this.openVideofileusingDirectShowToolStripMenuItem.Click += new System.EventHandler( this.openVideofileusingDirectShowToolStripMenuItem_Click ); + // + // openJPEGURLToolStripMenuItem + // + this.openJPEGURLToolStripMenuItem.Name = "openJPEGURLToolStripMenuItem"; + this.openJPEGURLToolStripMenuItem.Size = new System.Drawing.Size( 250, 22 ); + this.openJPEGURLToolStripMenuItem.Text = "Open JPEG &URL"; + this.openJPEGURLToolStripMenuItem.Click += new System.EventHandler( this.openJPEGURLToolStripMenuItem_Click ); + // + // openMJPEGURLToolStripMenuItem + // + this.openMJPEGURLToolStripMenuItem.Name = "openMJPEGURLToolStripMenuItem"; + this.openMJPEGURLToolStripMenuItem.Size = new System.Drawing.Size( 250, 22 ); + this.openMJPEGURLToolStripMenuItem.Text = "Open &MJPEG URL"; + this.openMJPEGURLToolStripMenuItem.Click += new System.EventHandler( this.openMJPEGURLToolStripMenuItem_Click ); + // + // toolStripMenuItem1 + // + this.toolStripMenuItem1.Name = "toolStripMenuItem1"; + this.toolStripMenuItem1.Size = new System.Drawing.Size( 247, 6 ); + // + // exitToolStripMenuItem + // + this.exitToolStripMenuItem.Name = "exitToolStripMenuItem"; + this.exitToolStripMenuItem.Size = new System.Drawing.Size( 250, 22 ); + this.exitToolStripMenuItem.Text = "E&xit"; + this.exitToolStripMenuItem.Click += new System.EventHandler( this.exitToolStripMenuItem_Click ); + // + // statusStrip + // + this.statusStrip.Items.AddRange( new System.Windows.Forms.ToolStripItem[] { + this.fpsLabel} ); + this.statusStrip.Location = new System.Drawing.Point( 0, 332 ); + this.statusStrip.Name = "statusStrip"; + this.statusStrip.Size = new System.Drawing.Size( 434, 22 ); + this.statusStrip.TabIndex = 1; + this.statusStrip.Text = "statusStrip1"; + // + // fpsLabel + // + this.fpsLabel.Name = "fpsLabel"; + this.fpsLabel.Size = new System.Drawing.Size( 419, 17 ); + this.fpsLabel.Spring = true; + this.fpsLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // mainPanel + // + this.mainPanel.Controls.Add( this.videoSourcePlayer ); + this.mainPanel.Dock = System.Windows.Forms.DockStyle.Fill; + this.mainPanel.Location = new System.Drawing.Point( 0, 24 ); + this.mainPanel.Name = "mainPanel"; + this.mainPanel.Size = new System.Drawing.Size( 434, 308 ); + this.mainPanel.TabIndex = 2; + // + // videoSourcePlayer + // + this.videoSourcePlayer.AutoSizeControl = true; + this.videoSourcePlayer.BackColor = System.Drawing.SystemColors.ControlDarkDark; + this.videoSourcePlayer.ForeColor = System.Drawing.Color.White; + this.videoSourcePlayer.Location = new System.Drawing.Point( 56, 33 ); + this.videoSourcePlayer.Name = "videoSourcePlayer"; + this.videoSourcePlayer.Size = new System.Drawing.Size( 322, 242 ); + this.videoSourcePlayer.TabIndex = 0; + this.videoSourcePlayer.VideoSource = null; + this.videoSourcePlayer.NewFrame += new AForge.Controls.VideoSourcePlayer.NewFrameHandler( this.videoSourcePlayer_NewFrame ); + // + // timer + // + this.timer.Interval = 1000; + this.timer.Tick += new System.EventHandler( this.timer_Tick ); + // + // openFileDialog + // + this.openFileDialog.Filter = "AVI files (*.avi)|*.avi|All files (*.*)|*.*"; + this.openFileDialog.Title = "Opem movie"; + // + // capture1stDisplayToolStripMenuItem + // + this.capture1stDisplayToolStripMenuItem.Name = "capture1stDisplayToolStripMenuItem"; + this.capture1stDisplayToolStripMenuItem.Size = new System.Drawing.Size( 250, 22 ); + this.capture1stDisplayToolStripMenuItem.Text = "Capture 1st display"; + this.capture1stDisplayToolStripMenuItem.Click += new System.EventHandler( this.capture1stDisplayToolStripMenuItem_Click ); + // + // MainForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF( 6F, 13F ); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size( 434, 354 ); + this.Controls.Add( this.mainPanel ); + this.Controls.Add( this.statusStrip ); + this.Controls.Add( this.mainMenuStrip ); + this.MainMenuStrip = this.mainMenuStrip; + this.Name = "MainForm"; + this.Text = "Simple Player"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler( this.MainForm_FormClosing ); + this.mainMenuStrip.ResumeLayout( false ); + this.mainMenuStrip.PerformLayout( ); + this.statusStrip.ResumeLayout( false ); + this.statusStrip.PerformLayout( ); + this.mainPanel.ResumeLayout( false ); + this.ResumeLayout( false ); + this.PerformLayout( ); + + } + + #endregion + + private System.Windows.Forms.MenuStrip mainMenuStrip; + private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem; + private System.Windows.Forms.StatusStrip statusStrip; + private System.Windows.Forms.Panel mainPanel; + private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem localVideoCaptureDeviceToolStripMenuItem; + private System.Windows.Forms.ToolStripSeparator toolStripMenuItem1; + private AForge.Controls.VideoSourcePlayer videoSourcePlayer; + private System.Windows.Forms.Timer timer; + private System.Windows.Forms.ToolStripStatusLabel fpsLabel; + private System.Windows.Forms.ToolStripMenuItem openVideofileusingDirectShowToolStripMenuItem; + private System.Windows.Forms.OpenFileDialog openFileDialog; + private System.Windows.Forms.ToolStripMenuItem openJPEGURLToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem openMJPEGURLToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem capture1stDisplayToolStripMenuItem; + } +} + diff --git a/Samples/Video/Player/MainForm.cs b/Samples/Video/Player/MainForm.cs new file mode 100644 index 00000000..1d6c69d4 --- /dev/null +++ b/Samples/Video/Player/MainForm.cs @@ -0,0 +1,209 @@ +// Simple Player sample application +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2006-2011 +// contacts@aforgenet.com +// + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; +using System.Diagnostics; + +using AForge.Video; +using AForge.Video.DirectShow; + +namespace Player +{ + public partial class MainForm : Form + { + private Stopwatch stopWatch = null; + + // Class constructor + public MainForm( ) + { + InitializeComponent( ); + } + + private void MainForm_FormClosing( object sender, FormClosingEventArgs e ) + { + CloseCurrentVideoSource( ); + } + + // "Exit" menu item clicked + private void exitToolStripMenuItem_Click( object sender, EventArgs e ) + { + this.Close( ); + } + + // Open local video capture device + private void localVideoCaptureDeviceToolStripMenuItem_Click( object sender, EventArgs e ) + { + VideoCaptureDeviceForm form = new VideoCaptureDeviceForm( ); + + if ( form.ShowDialog( this ) == DialogResult.OK ) + { + // create video source + VideoCaptureDevice videoSource = form.VideoDevice; + + // open it + OpenVideoSource( videoSource ); + } + } + + // Open video file using DirectShow + private void openVideofileusingDirectShowToolStripMenuItem_Click( object sender, EventArgs e ) + { + if ( openFileDialog.ShowDialog( ) == DialogResult.OK ) + { + // create video source + FileVideoSource fileSource = new FileVideoSource( openFileDialog.FileName ); + + // open it + OpenVideoSource( fileSource ); + } + } + + // Open JPEG URL + private void openJPEGURLToolStripMenuItem_Click( object sender, EventArgs e ) + { + URLForm form = new URLForm( ); + + form.Description = "Enter URL of an updating JPEG from a web camera:"; + form.URLs = new string[] + { + "http://195.243.185.195/axis-cgi/jpg/image.cgi?camera=1", + }; + + if ( form.ShowDialog( this ) == DialogResult.OK ) + { + // create video source + JPEGStream jpegSource = new JPEGStream( form.URL ); + + // open it + OpenVideoSource( jpegSource ); + } + } + + // Open MJPEG URL + private void openMJPEGURLToolStripMenuItem_Click( object sender, EventArgs e ) + { + URLForm form = new URLForm( ); + + form.Description = "Enter URL of an MJPEG video stream:"; + form.URLs = new string[] + { + "http://195.243.185.195/axis-cgi/mjpg/video.cgi?camera=4", + "http://195.243.185.195/axis-cgi/mjpg/video.cgi?camera=3", + }; + + if ( form.ShowDialog( this ) == DialogResult.OK ) + { + // create video source + MJPEGStream mjpegSource = new MJPEGStream( form.URL ); + + // open it + OpenVideoSource( mjpegSource ); + } + } + + // Capture 1st display in the system + private void capture1stDisplayToolStripMenuItem_Click( object sender, EventArgs e ) + { + OpenVideoSource( new ScreenCaptureStream( Screen.AllScreens[0].Bounds, 100 ) ); + } + + // Open video source + private void OpenVideoSource( IVideoSource source ) + { + // set busy cursor + this.Cursor = Cursors.WaitCursor; + + // stop current video source + CloseCurrentVideoSource( ); + + // start new video source + videoSourcePlayer.VideoSource = source; + videoSourcePlayer.Start( ); + + // reset stop watch + stopWatch = null; + + // start timer + timer.Start( ); + + this.Cursor = Cursors.Default; + } + + // Close video source if it is running + private void CloseCurrentVideoSource( ) + { + if ( videoSourcePlayer.VideoSource != null ) + { + videoSourcePlayer.SignalToStop( ); + + // wait ~ 3 seconds + for ( int i = 0; i < 30; i++ ) + { + if ( !videoSourcePlayer.IsRunning ) + break; + System.Threading.Thread.Sleep( 100 ); + } + + if ( videoSourcePlayer.IsRunning ) + { + videoSourcePlayer.Stop( ); + } + + videoSourcePlayer.VideoSource = null; + } + } + + // New frame received by the player + private void videoSourcePlayer_NewFrame( object sender, ref Bitmap image ) + { + DateTime now = DateTime.Now; + Graphics g = Graphics.FromImage( image ); + + // paint current time + SolidBrush brush = new SolidBrush( Color.Red ); + g.DrawString( now.ToString( ), this.Font, brush, new PointF( 5, 5 ) ); + brush.Dispose( ); + + g.Dispose( ); + } + + // On timer event - gather statistics + private void timer_Tick( object sender, EventArgs e ) + { + IVideoSource videoSource = videoSourcePlayer.VideoSource; + + if ( videoSource != null ) + { + // get number of frames since the last timer tick + int framesReceived = videoSource.FramesReceived; + + if ( stopWatch == null ) + { + stopWatch = new Stopwatch( ); + stopWatch.Start( ); + } + else + { + stopWatch.Stop( ); + + float fps = 1000.0f * framesReceived / stopWatch.ElapsedMilliseconds; + fpsLabel.Text = fps.ToString( "F2" ) + " fps"; + + stopWatch.Reset( ); + stopWatch.Start( ); + } + } + } + } +} diff --git a/Samples/Video/Player/MainForm.resx b/Samples/Video/Player/MainForm.resx new file mode 100644 index 00000000..f6ffb8a1 --- /dev/null +++ b/Samples/Video/Player/MainForm.resx @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 152, 17 + + + 261, 17 + + + 341, 17 + + \ No newline at end of file diff --git a/Samples/Video/Player/Player.csproj b/Samples/Video/Player/Player.csproj new file mode 100644 index 00000000..dd964533 --- /dev/null +++ b/Samples/Video/Player/Player.csproj @@ -0,0 +1,145 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {B31C0650-991B-4B28-9864-AE80C1785A3F} + WinExe + Properties + Player + Player + v2.0 + 512 + + + 3.5 + + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + False + ..\..\..\Release\AForge.Controls.dll + + + False + ..\..\..\Release\AForge.Video.dll + + + False + ..\..\..\Release\AForge.Video.DirectShow.dll + + + + + + + + + + + Form + + + MainForm.cs + + + + + MainForm.cs + Designer + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + URLForm.cs + + + True + Resources.resx + True + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + Form + + + URLForm.cs + + + + + False + Microsoft .NET Framework 4 %28x86 and x64%29 + true + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 3.1 + true + + + + + \ No newline at end of file diff --git a/Samples/Video/Player/Player.sln b/Samples/Video/Player/Player.sln new file mode 100644 index 00000000..29b97b89 --- /dev/null +++ b/Samples/Video/Player/Player.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual C# Express 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Player", "Player.csproj", "{B31C0650-991B-4B28-9864-AE80C1785A3F}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {B31C0650-991B-4B28-9864-AE80C1785A3F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B31C0650-991B-4B28-9864-AE80C1785A3F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B31C0650-991B-4B28-9864-AE80C1785A3F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B31C0650-991B-4B28-9864-AE80C1785A3F}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Samples/Video/Player/Program.cs b/Samples/Video/Player/Program.cs new file mode 100644 index 00000000..50ac676f --- /dev/null +++ b/Samples/Video/Player/Program.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Windows.Forms; + +namespace Player +{ + static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main( ) + { + Application.EnableVisualStyles( ); + Application.SetCompatibleTextRenderingDefault( false ); + Application.Run( new MainForm( ) ); + } + } +} diff --git a/Samples/Video/Player/Properties/AssemblyInfo.cs b/Samples/Video/Player/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..a84654e7 --- /dev/null +++ b/Samples/Video/Player/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle( "Player" )] +[assembly: AssemblyDescription( "Player Sample" )] +[assembly: AssemblyConfiguration( "" )] +[assembly: AssemblyCompany( "AForge" )] +[assembly: AssemblyProduct( "AForge.NET" )] +[assembly: AssemblyCopyright( "AForge © 2008" )] +[assembly: AssemblyTrademark( "" )] +[assembly: AssemblyCulture( "" )] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible( false )] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid( "6bb7d3f0-04aa-4442-87cf-c3e05fdca644" )] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion( "1.0.0.0" )] +[assembly: AssemblyFileVersion( "1.0.0.0" )] diff --git a/Samples/Video/Player/Properties/Resources.Designer.cs b/Samples/Video/Player/Properties/Resources.Designer.cs new file mode 100644 index 00000000..2e309ce4 --- /dev/null +++ b/Samples/Video/Player/Properties/Resources.Designer.cs @@ -0,0 +1,71 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.1433 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Player.Properties +{ + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute( "System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0" )] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute( )] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute( )] + internal class Resources + { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute( "Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode" )] + internal Resources( ) + { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute( global::System.ComponentModel.EditorBrowsableState.Advanced )] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if ( ( resourceMan == null ) ) + { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager( "Player.Properties.Resources", typeof( Resources ).Assembly ); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute( global::System.ComponentModel.EditorBrowsableState.Advanced )] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/Samples/Video/Player/Properties/Resources.resx b/Samples/Video/Player/Properties/Resources.resx new file mode 100644 index 00000000..af7dbebb --- /dev/null +++ b/Samples/Video/Player/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Samples/Video/Player/Properties/Settings.Designer.cs b/Samples/Video/Player/Properties/Settings.Designer.cs new file mode 100644 index 00000000..b75c39fc --- /dev/null +++ b/Samples/Video/Player/Properties/Settings.Designer.cs @@ -0,0 +1,30 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.1433 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Player.Properties +{ + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute( )] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute( "Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "9.0.0.0" )] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase + { + + private static Settings defaultInstance = ( (Settings) ( global::System.Configuration.ApplicationSettingsBase.Synchronized( new Settings( ) ) ) ); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/Samples/Video/Player/Properties/Settings.settings b/Samples/Video/Player/Properties/Settings.settings new file mode 100644 index 00000000..39645652 --- /dev/null +++ b/Samples/Video/Player/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Samples/Video/Player/URLForm.Designer.cs b/Samples/Video/Player/URLForm.Designer.cs new file mode 100644 index 00000000..94d2fb87 --- /dev/null +++ b/Samples/Video/Player/URLForm.Designer.cs @@ -0,0 +1,102 @@ +namespace Player +{ + partial class URLForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose( bool disposing ) + { + if ( disposing && ( components != null ) ) + { + components.Dispose( ); + } + base.Dispose( disposing ); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent( ) + { + this.descriptionLabel = new System.Windows.Forms.Label( ); + this.cancelButton = new System.Windows.Forms.Button( ); + this.okButton = new System.Windows.Forms.Button( ); + this.urlBox = new System.Windows.Forms.ComboBox( ); + this.SuspendLayout( ); + // + // descriptionLabel + // + this.descriptionLabel.Location = new System.Drawing.Point( 10, 10 ); + this.descriptionLabel.Name = "descriptionLabel"; + this.descriptionLabel.Size = new System.Drawing.Size( 325, 13 ); + this.descriptionLabel.TabIndex = 10; + // + // cancelButton + // + this.cancelButton.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.cancelButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.cancelButton.Location = new System.Drawing.Point( 180, 80 ); + this.cancelButton.Name = "cancelButton"; + this.cancelButton.Size = new System.Drawing.Size( 75, 23 ); + this.cancelButton.TabIndex = 9; + this.cancelButton.Text = "Cancel"; + // + // okButton + // + this.okButton.DialogResult = System.Windows.Forms.DialogResult.OK; + this.okButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.okButton.Location = new System.Drawing.Point( 90, 80 ); + this.okButton.Name = "okButton"; + this.okButton.Size = new System.Drawing.Size( 75, 23 ); + this.okButton.TabIndex = 8; + this.okButton.Text = "Ok"; + this.okButton.Click += new System.EventHandler( this.okButton_Click ); + // + // urlBox + // + this.urlBox.FormattingEnabled = true; + this.urlBox.Location = new System.Drawing.Point( 10, 35 ); + this.urlBox.Name = "urlBox"; + this.urlBox.Size = new System.Drawing.Size( 325, 21 ); + this.urlBox.TabIndex = 7; + // + // URLForm + // + this.AcceptButton = this.okButton; + this.AutoScaleDimensions = new System.Drawing.SizeF( 6F, 13F ); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.CancelButton = this.cancelButton; + this.ClientSize = new System.Drawing.Size( 344, 116 ); + this.Controls.Add( this.descriptionLabel ); + this.Controls.Add( this.cancelButton ); + this.Controls.Add( this.okButton ); + this.Controls.Add( this.urlBox ); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "URLForm"; + this.ShowInTaskbar = false; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Open URL"; + this.ResumeLayout( false ); + + } + + #endregion + + private System.Windows.Forms.Label descriptionLabel; + private System.Windows.Forms.Button cancelButton; + private System.Windows.Forms.Button okButton; + private System.Windows.Forms.ComboBox urlBox; + } +} \ No newline at end of file diff --git a/Samples/Video/Player/URLForm.cs b/Samples/Video/Player/URLForm.cs new file mode 100644 index 00000000..4052ae9a --- /dev/null +++ b/Samples/Video/Player/URLForm.cs @@ -0,0 +1,56 @@ +// AForge.NET Framework +// Simple Player sample application +// +// Copyright © Andrew Kirillov, 2008 +// andrew.kirillov@gmail.com +// + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; + +namespace Player +{ + public partial class URLForm : Form + { + private string url; + + // Selected URL + public string URL + { + get { return url; } + } + + // URLs to display in combo box + public string[] URLs + { + set + { + urlBox.Items.AddRange( value ); + } + } + + // Description of the dialog + public string Description + { + get { return descriptionLabel.Text; } + set { descriptionLabel.Text = value; } + } + + // Constructor + public URLForm( ) + { + InitializeComponent( ); + } + + // On "Ok" button clicked + private void okButton_Click( object sender, EventArgs e ) + { + url = urlBox.Text; + } + } +} diff --git a/Samples/Video/Player/URLForm.resx b/Samples/Video/Player/URLForm.resx new file mode 100644 index 00000000..19dc0dd8 --- /dev/null +++ b/Samples/Video/Player/URLForm.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Samples/Video/Snapshot Maker/MainForm.Designer.cs b/Samples/Video/Snapshot Maker/MainForm.Designer.cs new file mode 100644 index 00000000..966210ba --- /dev/null +++ b/Samples/Video/Snapshot Maker/MainForm.Designer.cs @@ -0,0 +1,206 @@ +namespace Snapshot_Maker +{ + partial class MainForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose( bool disposing ) + { + if ( disposing && ( components != null ) ) + { + components.Dispose( ); + } + base.Dispose( disposing ); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent( ) + { + this.components = new System.ComponentModel.Container( ); + this.label1 = new System.Windows.Forms.Label( ); + this.devicesCombo = new System.Windows.Forms.ComboBox( ); + this.label2 = new System.Windows.Forms.Label( ); + this.videoResolutionsCombo = new System.Windows.Forms.ComboBox( ); + this.snapshotResolutionsCombo = new System.Windows.Forms.ComboBox( ); + this.label3 = new System.Windows.Forms.Label( ); + this.connectButton = new System.Windows.Forms.Button( ); + this.disconnectButton = new System.Windows.Forms.Button( ); + this.panel1 = new System.Windows.Forms.Panel( ); + this.videoSourcePlayer = new AForge.Controls.VideoSourcePlayer( ); + this.toolTip = new System.Windows.Forms.ToolTip( this.components ); + this.triggerButton = new System.Windows.Forms.Button( ); + this.panel1.SuspendLayout( ); + this.SuspendLayout( ); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point( 10, 18 ); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size( 77, 13 ); + this.label1.TabIndex = 0; + this.label1.Text = "Video devices:"; + // + // devicesCombo + // + this.devicesCombo.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.devicesCombo.FormattingEnabled = true; + this.devicesCombo.Location = new System.Drawing.Point( 95, 15 ); + this.devicesCombo.Name = "devicesCombo"; + this.devicesCombo.Size = new System.Drawing.Size( 315, 21 ); + this.devicesCombo.TabIndex = 1; + this.devicesCombo.SelectedIndexChanged += new System.EventHandler( this.devicesCombo_SelectedIndexChanged ); + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point( 10, 48 ); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size( 83, 13 ); + this.label2.TabIndex = 2; + this.label2.Text = "Video resoluton:"; + // + // videoResolutionsCombo + // + this.videoResolutionsCombo.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.videoResolutionsCombo.FormattingEnabled = true; + this.videoResolutionsCombo.Location = new System.Drawing.Point( 95, 45 ); + this.videoResolutionsCombo.Name = "videoResolutionsCombo"; + this.videoResolutionsCombo.Size = new System.Drawing.Size( 100, 21 ); + this.videoResolutionsCombo.TabIndex = 3; + // + // snapshotResolutionsCombo + // + this.snapshotResolutionsCombo.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.snapshotResolutionsCombo.FormattingEnabled = true; + this.snapshotResolutionsCombo.Location = new System.Drawing.Point( 310, 45 ); + this.snapshotResolutionsCombo.Name = "snapshotResolutionsCombo"; + this.snapshotResolutionsCombo.Size = new System.Drawing.Size( 100, 21 ); + this.snapshotResolutionsCombo.TabIndex = 4; + this.toolTip.SetToolTip( this.snapshotResolutionsCombo, "Press shutter button on your camera to make snapshot" ); + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point( 205, 48 ); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size( 101, 13 ); + this.label3.TabIndex = 5; + this.label3.Text = "Snapshot resoluton:"; + this.toolTip.SetToolTip( this.label3, "Press shutter button on your camera to make snapshot" ); + // + // connectButton + // + this.connectButton.Location = new System.Drawing.Point( 430, 15 ); + this.connectButton.Name = "connectButton"; + this.connectButton.Size = new System.Drawing.Size( 75, 23 ); + this.connectButton.TabIndex = 6; + this.connectButton.Text = "&Connect"; + this.connectButton.UseVisualStyleBackColor = true; + this.connectButton.Click += new System.EventHandler( this.connectButton_Click ); + // + // disconnectButton + // + this.disconnectButton.Location = new System.Drawing.Point( 430, 45 ); + this.disconnectButton.Name = "disconnectButton"; + this.disconnectButton.Size = new System.Drawing.Size( 75, 23 ); + this.disconnectButton.TabIndex = 7; + this.disconnectButton.Text = "&Disconnect"; + this.disconnectButton.UseVisualStyleBackColor = true; + this.disconnectButton.Click += new System.EventHandler( this.disconnectButton_Click ); + // + // panel1 + // + this.panel1.Anchor = ( (System.Windows.Forms.AnchorStyles) ( ( ( ( System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom ) + | System.Windows.Forms.AnchorStyles.Left ) + | System.Windows.Forms.AnchorStyles.Right ) ) ); + this.panel1.Controls.Add( this.videoSourcePlayer ); + this.panel1.Location = new System.Drawing.Point( 0, 105 ); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size( 520, 301 ); + this.panel1.TabIndex = 8; + // + // videoSourcePlayer + // + this.videoSourcePlayer.AutoSizeControl = true; + this.videoSourcePlayer.BackColor = System.Drawing.SystemColors.ControlDark; + this.videoSourcePlayer.ForeColor = System.Drawing.Color.DarkRed; + this.videoSourcePlayer.Location = new System.Drawing.Point( 99, 29 ); + this.videoSourcePlayer.Name = "videoSourcePlayer"; + this.videoSourcePlayer.Size = new System.Drawing.Size( 322, 242 ); + this.videoSourcePlayer.TabIndex = 0; + this.videoSourcePlayer.VideoSource = null; + // + // toolTip + // + this.toolTip.AutoPopDelay = 5000; + this.toolTip.BackColor = System.Drawing.Color.FromArgb( ( (int) ( ( (byte) ( 192 ) ) ) ), ( (int) ( ( (byte) ( 255 ) ) ) ), ( (int) ( ( (byte) ( 192 ) ) ) ) ); + this.toolTip.InitialDelay = 100; + this.toolTip.ReshowDelay = 100; + // + // triggerButton + // + this.triggerButton.Location = new System.Drawing.Point( 430, 75 ); + this.triggerButton.Name = "triggerButton"; + this.triggerButton.Size = new System.Drawing.Size( 75, 23 ); + this.triggerButton.TabIndex = 9; + this.triggerButton.Text = "&Trigger"; + this.triggerButton.UseVisualStyleBackColor = true; + this.triggerButton.Click += new System.EventHandler( this.triggerButton_Click ); + // + // MainForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF( 6F, 13F ); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size( 519, 404 ); + this.Controls.Add( this.triggerButton ); + this.Controls.Add( this.panel1 ); + this.Controls.Add( this.disconnectButton ); + this.Controls.Add( this.connectButton ); + this.Controls.Add( this.label3 ); + this.Controls.Add( this.snapshotResolutionsCombo ); + this.Controls.Add( this.videoResolutionsCombo ); + this.Controls.Add( this.label2 ); + this.Controls.Add( this.devicesCombo ); + this.Controls.Add( this.label1 ); + this.MinimumSize = new System.Drawing.Size( 535, 440 ); + this.Name = "MainForm"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Snapshot Maker"; + this.Load += new System.EventHandler( this.MainForm_Load ); + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler( this.MainForm_FormClosing ); + this.panel1.ResumeLayout( false ); + this.ResumeLayout( false ); + this.PerformLayout( ); + + } + + #endregion + + private System.Windows.Forms.Label label1; + private System.Windows.Forms.ComboBox devicesCombo; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.ComboBox videoResolutionsCombo; + private System.Windows.Forms.ComboBox snapshotResolutionsCombo; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Button connectButton; + private System.Windows.Forms.Button disconnectButton; + private System.Windows.Forms.Panel panel1; + private AForge.Controls.VideoSourcePlayer videoSourcePlayer; + private System.Windows.Forms.ToolTip toolTip; + private System.Windows.Forms.Button triggerButton; + } +} + diff --git a/Samples/Video/Snapshot Maker/MainForm.cs b/Samples/Video/Snapshot Maker/MainForm.cs new file mode 100644 index 00000000..ef9adb0c --- /dev/null +++ b/Samples/Video/Snapshot Maker/MainForm.cs @@ -0,0 +1,220 @@ +// Snapshot Maker sample application +// AForge.NET Framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2009-2011 +// contacts@aforgenet.com +// + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; + +using AForge.Video; +using AForge.Video.DirectShow; + +namespace Snapshot_Maker +{ + public partial class MainForm : Form + { + private FilterInfoCollection videoDevices; + private VideoCaptureDevice videoDevice; + private VideoCapabilities[] videoCapabilities; + private VideoCapabilities[] snapshotCapabilities; + + private SnapshotForm snapshotForm = null; + + public MainForm( ) + { + InitializeComponent( ); + } + + // Main form is loaded + private void MainForm_Load( object sender, EventArgs e ) + { + // enumerate video devices + videoDevices = new FilterInfoCollection( FilterCategory.VideoInputDevice ); + + if ( videoDevices.Count != 0 ) + { + // add all devices to combo + foreach ( FilterInfo device in videoDevices ) + { + devicesCombo.Items.Add( device.Name ); + } + } + else + { + devicesCombo.Items.Add( "No DirectShow devices found" ); + } + + devicesCombo.SelectedIndex = 0; + + EnableConnectionControls( true ); + } + + // Closing the main form + private void MainForm_FormClosing( object sender, FormClosingEventArgs e ) + { + Disconnect( ); + } + + // Enable/disable connection related controls + private void EnableConnectionControls( bool enable ) + { + devicesCombo.Enabled = enable; + videoResolutionsCombo.Enabled = enable; + snapshotResolutionsCombo.Enabled = enable; + connectButton.Enabled = enable; + disconnectButton.Enabled = !enable; + triggerButton.Enabled = ( !enable ) && ( snapshotCapabilities.Length != 0 ); + } + + // New video device is selected + private void devicesCombo_SelectedIndexChanged( object sender, EventArgs e ) + { + if ( videoDevices.Count != 0 ) + { + videoDevice = new VideoCaptureDevice( videoDevices[devicesCombo.SelectedIndex].MonikerString ); + EnumeratedSupportedFrameSizes( videoDevice ); + } + } + + // Collect supported video and snapshot sizes + private void EnumeratedSupportedFrameSizes( VideoCaptureDevice videoDevice ) + { + this.Cursor = Cursors.WaitCursor; + + videoResolutionsCombo.Items.Clear( ); + snapshotResolutionsCombo.Items.Clear( ); + + try + { + videoCapabilities = videoDevice.VideoCapabilities; + snapshotCapabilities = videoDevice.SnapshotCapabilities; + + foreach ( VideoCapabilities capabilty in videoCapabilities ) + { + videoResolutionsCombo.Items.Add( string.Format( "{0} x {1}", + capabilty.FrameSize.Width, capabilty.FrameSize.Height ) ); + } + + foreach ( VideoCapabilities capabilty in snapshotCapabilities ) + { + snapshotResolutionsCombo.Items.Add( string.Format( "{0} x {1}", + capabilty.FrameSize.Width, capabilty.FrameSize.Height ) ); + } + + if ( videoCapabilities.Length == 0 ) + { + videoResolutionsCombo.Items.Add( "Not supported" ); + } + if ( snapshotCapabilities.Length == 0 ) + { + snapshotResolutionsCombo.Items.Add( "Not supported" ); + } + + videoResolutionsCombo.SelectedIndex = 0; + snapshotResolutionsCombo.SelectedIndex = 0; + } + finally + { + this.Cursor = Cursors.Default; + } + } + + // On "Connect" button clicked + private void connectButton_Click( object sender, EventArgs e ) + { + if ( videoDevice != null ) + { + if ( ( videoCapabilities != null ) && ( videoCapabilities.Length != 0 ) ) + { + videoDevice.VideoResolution = videoCapabilities[videoResolutionsCombo.SelectedIndex]; + } + + if ( ( snapshotCapabilities != null ) && ( snapshotCapabilities.Length != 0 ) ) + { + videoDevice.ProvideSnapshots = true; + videoDevice.SnapshotResolution = snapshotCapabilities[snapshotResolutionsCombo.SelectedIndex]; + videoDevice.SnapshotFrame += new NewFrameEventHandler( videoDevice_SnapshotFrame ); + } + + EnableConnectionControls( false ); + + videoSourcePlayer.VideoSource = videoDevice; + videoSourcePlayer.Start( ); + } + } + + // On "Disconnect" button clicked + private void disconnectButton_Click( object sender, EventArgs e ) + { + Disconnect( ); + } + + // Disconnect from video device + private void Disconnect( ) + { + if ( videoSourcePlayer.VideoSource != null ) + { + // stop video device + videoSourcePlayer.SignalToStop( ); + videoSourcePlayer.WaitForStop( ); + videoSourcePlayer.VideoSource = null; + + if ( videoDevice.ProvideSnapshots ) + { + videoDevice.SnapshotFrame -= new NewFrameEventHandler( videoDevice_SnapshotFrame ); + } + + EnableConnectionControls( true ); + } + } + + // Simulate snapshot trigger + private void triggerButton_Click( object sender, EventArgs e ) + { + if ( ( videoDevice != null ) && ( videoDevice.ProvideSnapshots ) ) + { + videoDevice.SimulateTrigger( ); + } + } + + // New snapshot frame is available + private void videoDevice_SnapshotFrame( object sender, NewFrameEventArgs eventArgs ) + { + Console.WriteLine( eventArgs.Frame.Size ); + + ShowSnapshot( (Bitmap) eventArgs.Frame.Clone( ) ); + } + + private void ShowSnapshot( Bitmap snapshot ) + { + if ( InvokeRequired ) + { + Invoke( new Action( ShowSnapshot ), snapshot ); + } + else + { + if ( snapshotForm == null ) + { + snapshotForm = new SnapshotForm( ); + snapshotForm.FormClosed += new FormClosedEventHandler( snapshotForm_FormClosed ); + snapshotForm.Show( ); + } + + snapshotForm.SetImage( snapshot ); + } + } + + private void snapshotForm_FormClosed( object sender, FormClosedEventArgs e ) + { + snapshotForm = null; + } + } +} diff --git a/Samples/Video/Snapshot Maker/MainForm.resx b/Samples/Video/Snapshot Maker/MainForm.resx new file mode 100644 index 00000000..5deed0a3 --- /dev/null +++ b/Samples/Video/Snapshot Maker/MainForm.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + \ No newline at end of file diff --git a/Samples/Video/Snapshot Maker/Program.cs b/Samples/Video/Snapshot Maker/Program.cs new file mode 100644 index 00000000..415aeaa3 --- /dev/null +++ b/Samples/Video/Snapshot Maker/Program.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Windows.Forms; + +namespace Snapshot_Maker +{ + static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main( ) + { + Application.EnableVisualStyles( ); + Application.SetCompatibleTextRenderingDefault( false ); + Application.Run( new MainForm( ) ); + } + } +} diff --git a/Samples/Video/Snapshot Maker/Properties/AssemblyInfo.cs b/Samples/Video/Snapshot Maker/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..3c9636d5 --- /dev/null +++ b/Samples/Video/Snapshot Maker/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle( "Snapshot Maker" )] +[assembly: AssemblyDescription( "Snapshot Maker Sample" )] +[assembly: AssemblyConfiguration( "" )] +[assembly: AssemblyCompany( "AForge" )] +[assembly: AssemblyProduct( "AForge.NET" )] +[assembly: AssemblyCopyright( "AForge © 2011" )] +[assembly: AssemblyTrademark( "" )] +[assembly: AssemblyCulture( "" )] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible( false )] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid( "089bf173-4722-4311-baeb-fc300f4b344a" )] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion( "1.0.0.0" )] +[assembly: AssemblyFileVersion( "1.0.0.0" )] diff --git a/Samples/Video/Snapshot Maker/Properties/Resources.Designer.cs b/Samples/Video/Snapshot Maker/Properties/Resources.Designer.cs new file mode 100644 index 00000000..c28f83bc --- /dev/null +++ b/Samples/Video/Snapshot Maker/Properties/Resources.Designer.cs @@ -0,0 +1,71 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.5444 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Snapshot_Maker.Properties +{ + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute( "System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0" )] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute( )] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute( )] + internal class Resources + { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute( "Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode" )] + internal Resources( ) + { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute( global::System.ComponentModel.EditorBrowsableState.Advanced )] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if ( ( resourceMan == null ) ) + { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager( "Snapshot_Maker.Properties.Resources", typeof( Resources ).Assembly ); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute( global::System.ComponentModel.EditorBrowsableState.Advanced )] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/Samples/Video/Snapshot Maker/Properties/Resources.resx b/Samples/Video/Snapshot Maker/Properties/Resources.resx new file mode 100644 index 00000000..af7dbebb --- /dev/null +++ b/Samples/Video/Snapshot Maker/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Samples/Video/Snapshot Maker/Properties/Settings.Designer.cs b/Samples/Video/Snapshot Maker/Properties/Settings.Designer.cs new file mode 100644 index 00000000..d50bd83f --- /dev/null +++ b/Samples/Video/Snapshot Maker/Properties/Settings.Designer.cs @@ -0,0 +1,30 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.5444 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Snapshot_Maker.Properties +{ + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute( )] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute( "Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "9.0.0.0" )] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase + { + + private static Settings defaultInstance = ( (Settings) ( global::System.Configuration.ApplicationSettingsBase.Synchronized( new Settings( ) ) ) ); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/Samples/Video/Snapshot Maker/Properties/Settings.settings b/Samples/Video/Snapshot Maker/Properties/Settings.settings new file mode 100644 index 00000000..39645652 --- /dev/null +++ b/Samples/Video/Snapshot Maker/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Samples/Video/Snapshot Maker/Snapshot Maker.csproj b/Samples/Video/Snapshot Maker/Snapshot Maker.csproj new file mode 100644 index 00000000..04eedb88 --- /dev/null +++ b/Samples/Video/Snapshot Maker/Snapshot Maker.csproj @@ -0,0 +1,146 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {779A59F0-BF3B-4AE5-B323-97D37CD67233} + WinExe + Properties + Snapshot_Maker + Snapshot Maker + v2.0 + 512 + + + 3.5 + + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + False + ..\..\..\Release\AForge.dll + + + False + ..\..\..\Release\AForge.Controls.dll + + + False + ..\..\..\Release\AForge.Video.dll + + + False + ..\..\..\Release\AForge.Video.DirectShow.dll + + + + + + + + + Form + + + MainForm.cs + + + + + MainForm.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + SnapshotForm.cs + + + True + Resources.resx + True + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + Form + + + SnapshotForm.cs + + + + + False + Microsoft .NET Framework 4 %28x86 and x64%29 + true + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 3.1 + true + + + + + \ No newline at end of file diff --git a/Samples/Video/Snapshot Maker/Snapshot Maker.sln b/Samples/Video/Snapshot Maker/Snapshot Maker.sln new file mode 100644 index 00000000..53b3eef8 --- /dev/null +++ b/Samples/Video/Snapshot Maker/Snapshot Maker.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual C# Express 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Snapshot Maker", "Snapshot Maker.csproj", "{779A59F0-BF3B-4AE5-B323-97D37CD67233}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {779A59F0-BF3B-4AE5-B323-97D37CD67233}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {779A59F0-BF3B-4AE5-B323-97D37CD67233}.Debug|Any CPU.Build.0 = Debug|Any CPU + {779A59F0-BF3B-4AE5-B323-97D37CD67233}.Release|Any CPU.ActiveCfg = Release|Any CPU + {779A59F0-BF3B-4AE5-B323-97D37CD67233}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Samples/Video/Snapshot Maker/SnapshotForm.Designer.cs b/Samples/Video/Snapshot Maker/SnapshotForm.Designer.cs new file mode 100644 index 00000000..a0787064 --- /dev/null +++ b/Samples/Video/Snapshot Maker/SnapshotForm.Designer.cs @@ -0,0 +1,111 @@ +namespace Snapshot_Maker +{ + partial class SnapshotForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose( bool disposing ) + { + if ( disposing && ( components != null ) ) + { + components.Dispose( ); + } + base.Dispose( disposing ); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent( ) + { + this.pictureBox = new System.Windows.Forms.PictureBox( ); + this.saveButton = new System.Windows.Forms.Button( ); + this.label1 = new System.Windows.Forms.Label( ); + this.timeBox = new System.Windows.Forms.TextBox( ); + this.saveFileDialog = new System.Windows.Forms.SaveFileDialog( ); + ( (System.ComponentModel.ISupportInitialize) ( this.pictureBox ) ).BeginInit( ); + this.SuspendLayout( ); + // + // pictureBox + // + this.pictureBox.Anchor = ( (System.Windows.Forms.AnchorStyles) ( ( ( ( System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom ) + | System.Windows.Forms.AnchorStyles.Left ) + | System.Windows.Forms.AnchorStyles.Right ) ) ); + this.pictureBox.BackColor = System.Drawing.SystemColors.ControlDark; + this.pictureBox.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.pictureBox.Location = new System.Drawing.Point( 10, 40 ); + this.pictureBox.Name = "pictureBox"; + this.pictureBox.Size = new System.Drawing.Size( 435, 295 ); + this.pictureBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; + this.pictureBox.TabIndex = 0; + this.pictureBox.TabStop = false; + // + // saveButton + // + this.saveButton.Location = new System.Drawing.Point( 10, 10 ); + this.saveButton.Name = "saveButton"; + this.saveButton.Size = new System.Drawing.Size( 75, 23 ); + this.saveButton.TabIndex = 1; + this.saveButton.Text = "&Save"; + this.saveButton.UseVisualStyleBackColor = true; + this.saveButton.Click += new System.EventHandler( this.saveButton_Click ); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point( 110, 15 ); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size( 77, 13 ); + this.label1.TabIndex = 2; + this.label1.Text = "Snapshot time:"; + // + // timeBox + // + this.timeBox.Location = new System.Drawing.Point( 190, 12 ); + this.timeBox.Name = "timeBox"; + this.timeBox.ReadOnly = true; + this.timeBox.Size = new System.Drawing.Size( 150, 20 ); + this.timeBox.TabIndex = 3; + // + // saveFileDialog + // + this.saveFileDialog.Filter = "JPEG images (*.jpg)|*.jpg|PNG images (*.png)|*.png|BMP images (*.bmp)|*.bmp"; + this.saveFileDialog.Title = "Save snapshot"; + // + // SnapshotForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF( 6F, 13F ); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size( 454, 344 ); + this.Controls.Add( this.timeBox ); + this.Controls.Add( this.label1 ); + this.Controls.Add( this.saveButton ); + this.Controls.Add( this.pictureBox ); + this.Name = "SnapshotForm"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Snapshot"; + ( (System.ComponentModel.ISupportInitialize) ( this.pictureBox ) ).EndInit( ); + this.ResumeLayout( false ); + this.PerformLayout( ); + + } + + #endregion + + private System.Windows.Forms.PictureBox pictureBox; + private System.Windows.Forms.Button saveButton; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.TextBox timeBox; + private System.Windows.Forms.SaveFileDialog saveFileDialog; + } +} \ No newline at end of file diff --git a/Samples/Video/Snapshot Maker/SnapshotForm.cs b/Samples/Video/Snapshot Maker/SnapshotForm.cs new file mode 100644 index 00000000..e40593cf --- /dev/null +++ b/Samples/Video/Snapshot Maker/SnapshotForm.cs @@ -0,0 +1,68 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Drawing.Imaging; +using System.Windows.Forms; +using System.IO; + +namespace Snapshot_Maker +{ + public partial class SnapshotForm : Form + { + public SnapshotForm( ) + { + InitializeComponent( ); + } + + public void SetImage( Bitmap bitmap ) + { + timeBox.Text = DateTime.Now.ToLongTimeString( ); + + lock ( this ) + { + Bitmap old = (Bitmap) pictureBox.Image; + pictureBox.Image = bitmap; + + if ( old != null ) + { + old.Dispose( ); + } + } + } + + private void saveButton_Click( object sender, EventArgs e ) + { + if ( saveFileDialog.ShowDialog( ) == DialogResult.OK ) + { + string ext = Path.GetExtension( saveFileDialog.FileName ).ToLower( ); + ImageFormat format = ImageFormat.Jpeg; + + if ( ext == ".bmp" ) + { + format = ImageFormat.Bmp; + } + else if ( ext == ".png" ) + { + format = ImageFormat.Png; + } + + try + { + lock ( this ) + { + Bitmap image = (Bitmap) pictureBox.Image; + + image.Save( saveFileDialog.FileName, format ); + } + } + catch ( Exception ex ) + { + MessageBox.Show( "Failed saving the snapshot.\n" + ex.Message, + "Error", MessageBoxButtons.OK, MessageBoxIcon.Error ); + } + } + } + } +} diff --git a/Samples/Video/Snapshot Maker/SnapshotForm.resx b/Samples/Video/Snapshot Maker/SnapshotForm.resx new file mode 100644 index 00000000..d957dcac --- /dev/null +++ b/Samples/Video/Snapshot Maker/SnapshotForm.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + \ No newline at end of file diff --git a/Samples/Video/Two Cameras Test/MainForm.Designer.cs b/Samples/Video/Two Cameras Test/MainForm.Designer.cs new file mode 100644 index 00000000..b717cb49 --- /dev/null +++ b/Samples/Video/Two Cameras Test/MainForm.Designer.cs @@ -0,0 +1,186 @@ +namespace TwoCamerasTest +{ + partial class MainForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose( bool disposing ) + { + if ( disposing && ( components != null ) ) + { + components.Dispose( ); + } + base.Dispose( disposing ); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent( ) + { + this.components = new System.ComponentModel.Container( ); + this.videoSourcePlayer1 = new AForge.Controls.VideoSourcePlayer( ); + this.videoSourcePlayer2 = new AForge.Controls.VideoSourcePlayer( ); + this.groupBox1 = new System.Windows.Forms.GroupBox( ); + this.camera1Combo = new System.Windows.Forms.ComboBox( ); + this.groupBox2 = new System.Windows.Forms.GroupBox( ); + this.camera2Combo = new System.Windows.Forms.ComboBox( ); + this.startButton = new System.Windows.Forms.Button( ); + this.stopButton = new System.Windows.Forms.Button( ); + this.camera1FpsLabel = new System.Windows.Forms.Label( ); + this.timer = new System.Windows.Forms.Timer( this.components ); + this.camera2FpsLabel = new System.Windows.Forms.Label( ); + this.groupBox1.SuspendLayout( ); + this.groupBox2.SuspendLayout( ); + this.SuspendLayout( ); + // + // videoSourcePlayer1 + // + this.videoSourcePlayer1.BackColor = System.Drawing.SystemColors.ControlDark; + this.videoSourcePlayer1.ForeColor = System.Drawing.Color.White; + this.videoSourcePlayer1.Location = new System.Drawing.Point( 10, 50 ); + this.videoSourcePlayer1.Name = "videoSourcePlayer1"; + this.videoSourcePlayer1.Size = new System.Drawing.Size( 322, 242 ); + this.videoSourcePlayer1.TabIndex = 0; + this.videoSourcePlayer1.VideoSource = null; + // + // videoSourcePlayer2 + // + this.videoSourcePlayer2.BackColor = System.Drawing.SystemColors.ControlDark; + this.videoSourcePlayer2.ForeColor = System.Drawing.Color.White; + this.videoSourcePlayer2.Location = new System.Drawing.Point( 10, 50 ); + this.videoSourcePlayer2.Name = "videoSourcePlayer2"; + this.videoSourcePlayer2.Size = new System.Drawing.Size( 322, 242 ); + this.videoSourcePlayer2.TabIndex = 1; + this.videoSourcePlayer2.VideoSource = null; + // + // groupBox1 + // + this.groupBox1.Controls.Add( this.camera1FpsLabel ); + this.groupBox1.Controls.Add( this.camera1Combo ); + this.groupBox1.Controls.Add( this.videoSourcePlayer1 ); + this.groupBox1.Location = new System.Drawing.Point( 10, 10 ); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size( 342, 315 ); + this.groupBox1.TabIndex = 2; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "Camera 1"; + // + // camera1Combo + // + this.camera1Combo.FormattingEnabled = true; + this.camera1Combo.Location = new System.Drawing.Point( 10, 20 ); + this.camera1Combo.Name = "camera1Combo"; + this.camera1Combo.Size = new System.Drawing.Size( 322, 21 ); + this.camera1Combo.TabIndex = 3; + // + // groupBox2 + // + this.groupBox2.Controls.Add( this.camera2FpsLabel ); + this.groupBox2.Controls.Add( this.camera2Combo ); + this.groupBox2.Controls.Add( this.videoSourcePlayer2 ); + this.groupBox2.Location = new System.Drawing.Point( 360, 10 ); + this.groupBox2.Name = "groupBox2"; + this.groupBox2.Size = new System.Drawing.Size( 342, 315 ); + this.groupBox2.TabIndex = 3; + this.groupBox2.TabStop = false; + this.groupBox2.Text = "Camera 2"; + // + // camera2Combo + // + this.camera2Combo.FormattingEnabled = true; + this.camera2Combo.Location = new System.Drawing.Point( 10, 20 ); + this.camera2Combo.Name = "camera2Combo"; + this.camera2Combo.Size = new System.Drawing.Size( 322, 21 ); + this.camera2Combo.TabIndex = 2; + // + // startButton + // + this.startButton.Location = new System.Drawing.Point( 545, 335 ); + this.startButton.Name = "startButton"; + this.startButton.Size = new System.Drawing.Size( 75, 23 ); + this.startButton.TabIndex = 4; + this.startButton.Text = "&Start"; + this.startButton.UseVisualStyleBackColor = true; + this.startButton.Click += new System.EventHandler( this.startButton_Click ); + // + // stopButton + // + this.stopButton.Enabled = false; + this.stopButton.Location = new System.Drawing.Point( 627, 335 ); + this.stopButton.Name = "stopButton"; + this.stopButton.Size = new System.Drawing.Size( 75, 23 ); + this.stopButton.TabIndex = 5; + this.stopButton.Text = "S&top"; + this.stopButton.UseVisualStyleBackColor = true; + this.stopButton.Click += new System.EventHandler( this.stopButton_Click ); + // + // camera1FpsLabel + // + this.camera1FpsLabel.Location = new System.Drawing.Point( 282, 295 ); + this.camera1FpsLabel.Name = "camera1FpsLabel"; + this.camera1FpsLabel.Size = new System.Drawing.Size( 50, 17 ); + this.camera1FpsLabel.TabIndex = 4; + this.camera1FpsLabel.Text = "label1"; + this.camera1FpsLabel.TextAlign = System.Drawing.ContentAlignment.TopRight; + // + // timer + // + this.timer.Interval = 1000; + this.timer.Tick += new System.EventHandler( this.timer_Tick ); + // + // camera2FpsLabel + // + this.camera2FpsLabel.Location = new System.Drawing.Point( 282, 295 ); + this.camera2FpsLabel.Name = "camera2FpsLabel"; + this.camera2FpsLabel.Size = new System.Drawing.Size( 50, 17 ); + this.camera2FpsLabel.TabIndex = 5; + this.camera2FpsLabel.Text = "label2"; + this.camera2FpsLabel.TextAlign = System.Drawing.ContentAlignment.TopRight; + // + // MainForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF( 6F, 13F ); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size( 711, 369 ); + this.Controls.Add( this.stopButton ); + this.Controls.Add( this.startButton ); + this.Controls.Add( this.groupBox2 ); + this.Controls.Add( this.groupBox1 ); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.MaximizeBox = false; + this.Name = "MainForm"; + this.Text = "Two Cameras Test"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler( this.MainForm_FormClosing ); + this.groupBox1.ResumeLayout( false ); + this.groupBox2.ResumeLayout( false ); + this.ResumeLayout( false ); + + } + + #endregion + + private AForge.Controls.VideoSourcePlayer videoSourcePlayer1; + private AForge.Controls.VideoSourcePlayer videoSourcePlayer2; + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.ComboBox camera1Combo; + private System.Windows.Forms.GroupBox groupBox2; + private System.Windows.Forms.ComboBox camera2Combo; + private System.Windows.Forms.Button startButton; + private System.Windows.Forms.Button stopButton; + private System.Windows.Forms.Label camera1FpsLabel; + private System.Windows.Forms.Timer timer; + private System.Windows.Forms.Label camera2FpsLabel; + } +} + diff --git a/Samples/Video/Two Cameras Test/MainForm.cs b/Samples/Video/Two Cameras Test/MainForm.cs new file mode 100644 index 00000000..5856d057 --- /dev/null +++ b/Samples/Video/Two Cameras Test/MainForm.cs @@ -0,0 +1,193 @@ +// Two Cameras Test sample application +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2006-2011 +// contacts@aforgenet.com +// + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; +using System.Diagnostics; + +using AForge.Video; +using AForge.Video.DirectShow; + +namespace TwoCamerasTest +{ + public partial class MainForm : Form + { + // list of video devices + FilterInfoCollection videoDevices; + // stop watch for measuring fps + private Stopwatch stopWatch = null; + + public MainForm( ) + { + InitializeComponent( ); + + camera1FpsLabel.Text = string.Empty; + camera2FpsLabel.Text = string.Empty; + + // show device list + try + { + // enumerate video devices + videoDevices = new FilterInfoCollection( FilterCategory.VideoInputDevice ); + + if ( videoDevices.Count == 0 ) + { + throw new Exception( ); + } + + for ( int i = 1, n = videoDevices.Count; i <= n; i++ ) + { + string cameraName = i + " : " + videoDevices[i - 1].Name; + + camera1Combo.Items.Add( cameraName ); + camera2Combo.Items.Add( cameraName ); + } + + // check cameras count + if ( videoDevices.Count == 1 ) + { + camera2Combo.Items.Clear( ); + + camera2Combo.Items.Add( "Only one camera found" ); + camera2Combo.SelectedIndex = 0; + camera2Combo.Enabled = false; + } + else + { + camera2Combo.SelectedIndex = 1; + } + camera1Combo.SelectedIndex = 0; + } + catch + { + startButton.Enabled = false; + + camera1Combo.Items.Add( "No cameras found" ); + camera2Combo.Items.Add( "No cameras found" ); + + camera1Combo.SelectedIndex = 0; + camera2Combo.SelectedIndex = 0; + + camera1Combo.Enabled = false; + camera2Combo.Enabled = false; + } + } + + // On form closing + private void MainForm_FormClosing(object sender, FormClosingEventArgs e) + { + StopCameras( ); + } + + // On "Start" button click + private void startButton_Click( object sender, EventArgs e ) + { + StartCameras( ); + + startButton.Enabled = false; + stopButton.Enabled = true; + } + + // On "Stop" button click + private void stopButton_Click( object sender, EventArgs e ) + { + StopCameras( ); + + startButton.Enabled = true; + stopButton.Enabled = false; + + camera1FpsLabel.Text = string.Empty; + camera2FpsLabel.Text = string.Empty; + } + + // Start cameras + private void StartCameras( ) + { + // create first video source + VideoCaptureDevice videoSource1 = new VideoCaptureDevice( videoDevices[camera1Combo.SelectedIndex].MonikerString ); + videoSource1.DesiredFrameRate = 10; + + videoSourcePlayer1.VideoSource = videoSource1; + videoSourcePlayer1.Start( ); + + // create second video source + if ( camera2Combo.Enabled == true ) + { + System.Threading.Thread.Sleep( 500 ); + + VideoCaptureDevice videoSource2 = new VideoCaptureDevice( videoDevices[camera2Combo.SelectedIndex].MonikerString ); + videoSource2.DesiredFrameRate = 10; + + videoSourcePlayer2.VideoSource = videoSource2; + videoSourcePlayer2.Start( ); + } + + // reset stop watch + stopWatch = null; + // start timer + timer.Start( ); + } + + // Stop cameras + private void StopCameras( ) + { + timer.Stop( ); + + videoSourcePlayer1.SignalToStop( ); + videoSourcePlayer2.SignalToStop( ); + + videoSourcePlayer1.WaitForStop( ); + videoSourcePlayer2.WaitForStop( ); + } + + // On times tick - collect statistics + private void timer_Tick( object sender, EventArgs e ) + { + IVideoSource videoSource1 = videoSourcePlayer1.VideoSource; + IVideoSource videoSource2 = videoSourcePlayer2.VideoSource; + + int framesReceived1 = 0; + int framesReceived2 = 0; + + // get number of frames for the last second + if ( videoSource1 != null ) + { + framesReceived1 = videoSource1.FramesReceived; + } + + if ( videoSource2 != null ) + { + framesReceived2 = videoSource2.FramesReceived; + } + + if ( stopWatch == null ) + { + stopWatch = new Stopwatch( ); + stopWatch.Start( ); + } + else + { + stopWatch.Stop( ); + + float fps1 = 1000.0f * framesReceived1 / stopWatch.ElapsedMilliseconds; + float fps2 = 1000.0f * framesReceived2 / stopWatch.ElapsedMilliseconds; + + camera1FpsLabel.Text = fps1.ToString( "F2" ) + " fps"; + camera2FpsLabel.Text = fps2.ToString( "F2" ) + " fps"; + + stopWatch.Reset( ); + stopWatch.Start( ); + } + } + } +} diff --git a/Samples/Video/Two Cameras Test/MainForm.resx b/Samples/Video/Two Cameras Test/MainForm.resx new file mode 100644 index 00000000..ffb07370 --- /dev/null +++ b/Samples/Video/Two Cameras Test/MainForm.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + \ No newline at end of file diff --git a/Samples/Video/Two Cameras Test/Program.cs b/Samples/Video/Two Cameras Test/Program.cs new file mode 100644 index 00000000..32123f16 --- /dev/null +++ b/Samples/Video/Two Cameras Test/Program.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Windows.Forms; + +namespace TwoCamerasTest +{ + static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main( ) + { + Application.EnableVisualStyles( ); + Application.SetCompatibleTextRenderingDefault( false ); + Application.Run( new MainForm( ) ); + } + } +} diff --git a/Samples/Video/Two Cameras Test/Properties/AssemblyInfo.cs b/Samples/Video/Two Cameras Test/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..8f21c2b6 --- /dev/null +++ b/Samples/Video/Two Cameras Test/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle( "Two Cameras Test" )] +[assembly: AssemblyDescription( "Two Cameras Test sample" )] +[assembly: AssemblyConfiguration( "" )] +[assembly: AssemblyCompany( "AForge" )] +[assembly: AssemblyProduct( "AForge.NET" )] +[assembly: AssemblyCopyright( "AForge © 2008" )] +[assembly: AssemblyTrademark( "" )] +[assembly: AssemblyCulture( "" )] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible( false )] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid( "363746cb-53d6-4ca7-9403-f2bde3446147" )] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion( "1.0.0.0" )] +[assembly: AssemblyFileVersion( "1.0.0.0" )] diff --git a/Samples/Video/Two Cameras Test/Properties/Resources.Designer.cs b/Samples/Video/Two Cameras Test/Properties/Resources.Designer.cs new file mode 100644 index 00000000..820991f9 --- /dev/null +++ b/Samples/Video/Two Cameras Test/Properties/Resources.Designer.cs @@ -0,0 +1,63 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.3053 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace TwoCamerasTest.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("TwoCamerasTest.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + } +} diff --git a/Samples/Video/Two Cameras Test/Properties/Resources.resx b/Samples/Video/Two Cameras Test/Properties/Resources.resx new file mode 100644 index 00000000..af7dbebb --- /dev/null +++ b/Samples/Video/Two Cameras Test/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Samples/Video/Two Cameras Test/Properties/Settings.Designer.cs b/Samples/Video/Two Cameras Test/Properties/Settings.Designer.cs new file mode 100644 index 00000000..2f1ab243 --- /dev/null +++ b/Samples/Video/Two Cameras Test/Properties/Settings.Designer.cs @@ -0,0 +1,26 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.3053 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace TwoCamerasTest.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "9.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + } +} diff --git a/Samples/Video/Two Cameras Test/Properties/Settings.settings b/Samples/Video/Two Cameras Test/Properties/Settings.settings new file mode 100644 index 00000000..39645652 --- /dev/null +++ b/Samples/Video/Two Cameras Test/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Samples/Video/Two Cameras Test/Two Cameras Test.csproj b/Samples/Video/Two Cameras Test/Two Cameras Test.csproj new file mode 100644 index 00000000..5794b875 --- /dev/null +++ b/Samples/Video/Two Cameras Test/Two Cameras Test.csproj @@ -0,0 +1,135 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {AB55ABF6-4AD9-4F8A-9E9D-8B61F89766A6} + WinExe + Properties + TwoCamerasTest + Two Cameras Test + v2.0 + 512 + + + 3.5 + + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + False + ..\..\..\Release\AForge.Controls.dll + + + False + ..\..\..\Release\AForge.Video.dll + + + False + ..\..\..\Release\AForge.Video.DirectShow.dll + + + + + + + + + + + Form + + + MainForm.cs + + + + + MainForm.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + True + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + False + Microsoft .NET Framework 4 %28x86 and x64%29 + true + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 3.1 + true + + + + + \ No newline at end of file diff --git a/Samples/Video/Two Cameras Test/Two Cameras Test.sln b/Samples/Video/Two Cameras Test/Two Cameras Test.sln new file mode 100644 index 00000000..17570c56 --- /dev/null +++ b/Samples/Video/Two Cameras Test/Two Cameras Test.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual C# Express 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Two Cameras Test", "Two Cameras Test.csproj", "{AB55ABF6-4AD9-4F8A-9E9D-8B61F89766A6}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {AB55ABF6-4AD9-4F8A-9E9D-8B61F89766A6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AB55ABF6-4AD9-4F8A-9E9D-8B61F89766A6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AB55ABF6-4AD9-4F8A-9E9D-8B61F89766A6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AB55ABF6-4AD9-4F8A-9E9D-8B61F89766A6}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Samples/Video/Ximea Sample/MainForm.Designer.cs b/Samples/Video/Ximea Sample/MainForm.Designer.cs new file mode 100644 index 00000000..d9d2466d --- /dev/null +++ b/Samples/Video/Ximea Sample/MainForm.Designer.cs @@ -0,0 +1,456 @@ +namespace XimeaSample +{ + partial class MainForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose( bool disposing ) + { + if ( disposing && ( components != null ) ) + { + components.Dispose( ); + } + base.Dispose( disposing ); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent( ) + { + this.components = new System.ComponentModel.Container( ); + this.videoSourcePlayer = new AForge.Controls.VideoSourcePlayer( ); + this.statusStrip = new System.Windows.Forms.StatusStrip( ); + this.fpsLabel = new System.Windows.Forms.ToolStripStatusLabel( ); + this.spareLabel = new System.Windows.Forms.ToolStripStatusLabel( ); + this.topPanel = new System.Windows.Forms.Panel( ); + this.groupBox1 = new System.Windows.Forms.GroupBox( ); + this.offsetYUpDown = new System.Windows.Forms.NumericUpDown( ); + this.label9 = new System.Windows.Forms.Label( ); + this.offsetXUpDown = new System.Windows.Forms.NumericUpDown( ); + this.label10 = new System.Windows.Forms.Label( ); + this.heightUpDown = new System.Windows.Forms.NumericUpDown( ); + this.label8 = new System.Windows.Forms.Label( ); + this.widthUpDown = new System.Windows.Forms.NumericUpDown( ); + this.label7 = new System.Windows.Forms.Label( ); + this.gainUpDown = new System.Windows.Forms.NumericUpDown( ); + this.label6 = new System.Windows.Forms.Label( ); + this.exposureUpDown = new System.Windows.Forms.NumericUpDown( ); + this.label5 = new System.Windows.Forms.Label( ); + this.typeBox = new System.Windows.Forms.TextBox( ); + this.snBox = new System.Windows.Forms.TextBox( ); + this.nameBox = new System.Windows.Forms.TextBox( ); + this.label4 = new System.Windows.Forms.Label( ); + this.label3 = new System.Windows.Forms.Label( ); + this.label2 = new System.Windows.Forms.Label( ); + this.label1 = new System.Windows.Forms.Label( ); + this.disconnectButton = new System.Windows.Forms.Button( ); + this.connectButton = new System.Windows.Forms.Button( ); + this.deviceCombo = new System.Windows.Forms.ComboBox( ); + this.mainPanel = new System.Windows.Forms.Panel( ); + this.timer = new System.Windows.Forms.Timer( this.components ); + this.statusStrip.SuspendLayout( ); + this.topPanel.SuspendLayout( ); + this.groupBox1.SuspendLayout( ); + ( (System.ComponentModel.ISupportInitialize) ( this.offsetYUpDown ) ).BeginInit( ); + ( (System.ComponentModel.ISupportInitialize) ( this.offsetXUpDown ) ).BeginInit( ); + ( (System.ComponentModel.ISupportInitialize) ( this.heightUpDown ) ).BeginInit( ); + ( (System.ComponentModel.ISupportInitialize) ( this.widthUpDown ) ).BeginInit( ); + ( (System.ComponentModel.ISupportInitialize) ( this.gainUpDown ) ).BeginInit( ); + ( (System.ComponentModel.ISupportInitialize) ( this.exposureUpDown ) ).BeginInit( ); + this.mainPanel.SuspendLayout( ); + this.SuspendLayout( ); + // + // videoSourcePlayer + // + this.videoSourcePlayer.AutoSizeControl = true; + this.videoSourcePlayer.BackColor = System.Drawing.SystemColors.ControlDarkDark; + this.videoSourcePlayer.ForeColor = System.Drawing.Color.White; + this.videoSourcePlayer.Location = new System.Drawing.Point( 194, 60 ); + this.videoSourcePlayer.Name = "videoSourcePlayer"; + this.videoSourcePlayer.Size = new System.Drawing.Size( 322, 242 ); + this.videoSourcePlayer.TabIndex = 7; + this.videoSourcePlayer.VideoSource = null; + // + // statusStrip + // + this.statusStrip.Items.AddRange( new System.Windows.Forms.ToolStripItem[] { + this.fpsLabel, + this.spareLabel} ); + this.statusStrip.Location = new System.Drawing.Point( 0, 508 ); + this.statusStrip.Name = "statusStrip"; + this.statusStrip.Size = new System.Drawing.Size( 710, 22 ); + this.statusStrip.TabIndex = 8; + this.statusStrip.Text = "statusStrip1"; + // + // fpsLabel + // + this.fpsLabel.AutoSize = false; + this.fpsLabel.BorderSides = ( (System.Windows.Forms.ToolStripStatusLabelBorderSides) ( ( ( ( System.Windows.Forms.ToolStripStatusLabelBorderSides.Left | System.Windows.Forms.ToolStripStatusLabelBorderSides.Top ) + | System.Windows.Forms.ToolStripStatusLabelBorderSides.Right ) + | System.Windows.Forms.ToolStripStatusLabelBorderSides.Bottom ) ) ); + this.fpsLabel.BorderStyle = System.Windows.Forms.Border3DStyle.SunkenInner; + this.fpsLabel.Name = "fpsLabel"; + this.fpsLabel.Size = new System.Drawing.Size( 100, 17 ); + this.fpsLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // spareLabel + // + this.spareLabel.BorderSides = ( (System.Windows.Forms.ToolStripStatusLabelBorderSides) ( ( ( ( System.Windows.Forms.ToolStripStatusLabelBorderSides.Left | System.Windows.Forms.ToolStripStatusLabelBorderSides.Top ) + | System.Windows.Forms.ToolStripStatusLabelBorderSides.Right ) + | System.Windows.Forms.ToolStripStatusLabelBorderSides.Bottom ) ) ); + this.spareLabel.BorderStyle = System.Windows.Forms.Border3DStyle.SunkenInner; + this.spareLabel.Name = "spareLabel"; + this.spareLabel.Size = new System.Drawing.Size( 595, 17 ); + this.spareLabel.Spring = true; + this.spareLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // topPanel + // + this.topPanel.Controls.Add( this.groupBox1 ); + this.topPanel.Dock = System.Windows.Forms.DockStyle.Top; + this.topPanel.Location = new System.Drawing.Point( 0, 0 ); + this.topPanel.Name = "topPanel"; + this.topPanel.Size = new System.Drawing.Size( 710, 145 ); + this.topPanel.TabIndex = 9; + // + // groupBox1 + // + this.groupBox1.Anchor = ( (System.Windows.Forms.AnchorStyles) ( ( ( ( System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom ) + | System.Windows.Forms.AnchorStyles.Left ) + | System.Windows.Forms.AnchorStyles.Right ) ) ); + this.groupBox1.Controls.Add( this.offsetYUpDown ); + this.groupBox1.Controls.Add( this.label9 ); + this.groupBox1.Controls.Add( this.offsetXUpDown ); + this.groupBox1.Controls.Add( this.label10 ); + this.groupBox1.Controls.Add( this.heightUpDown ); + this.groupBox1.Controls.Add( this.label8 ); + this.groupBox1.Controls.Add( this.widthUpDown ); + this.groupBox1.Controls.Add( this.label7 ); + this.groupBox1.Controls.Add( this.gainUpDown ); + this.groupBox1.Controls.Add( this.label6 ); + this.groupBox1.Controls.Add( this.exposureUpDown ); + this.groupBox1.Controls.Add( this.label5 ); + this.groupBox1.Controls.Add( this.typeBox ); + this.groupBox1.Controls.Add( this.snBox ); + this.groupBox1.Controls.Add( this.nameBox ); + this.groupBox1.Controls.Add( this.label4 ); + this.groupBox1.Controls.Add( this.label3 ); + this.groupBox1.Controls.Add( this.label2 ); + this.groupBox1.Controls.Add( this.label1 ); + this.groupBox1.Controls.Add( this.disconnectButton ); + this.groupBox1.Controls.Add( this.connectButton ); + this.groupBox1.Controls.Add( this.deviceCombo ); + this.groupBox1.Location = new System.Drawing.Point( 10, 10 ); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size( 689, 129 ); + this.groupBox1.TabIndex = 0; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "Camera parameters:"; + // + // offsetYUpDown + // + this.offsetYUpDown.Increment = new decimal( new int[] { + 10, + 0, + 0, + 0} ); + this.offsetYUpDown.Location = new System.Drawing.Point( 520, 50 ); + this.offsetYUpDown.Name = "offsetYUpDown"; + this.offsetYUpDown.Size = new System.Drawing.Size( 62, 20 ); + this.offsetYUpDown.TabIndex = 17; + this.offsetYUpDown.ValueChanged += new System.EventHandler( this.offsetYUpDown_ValueChanged ); + // + // label9 + // + this.label9.AutoSize = true; + this.label9.Location = new System.Drawing.Point( 468, 53 ); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size( 48, 13 ); + this.label9.TabIndex = 16; + this.label9.Text = "Offset Y:"; + // + // offsetXUpDown + // + this.offsetXUpDown.Increment = new decimal( new int[] { + 10, + 0, + 0, + 0} ); + this.offsetXUpDown.Location = new System.Drawing.Point( 360, 50 ); + this.offsetXUpDown.Name = "offsetXUpDown"; + this.offsetXUpDown.Size = new System.Drawing.Size( 62, 20 ); + this.offsetXUpDown.TabIndex = 15; + this.offsetXUpDown.ValueChanged += new System.EventHandler( this.offsetXUpDown_ValueChanged ); + // + // label10 + // + this.label10.AutoSize = true; + this.label10.Location = new System.Drawing.Point( 311, 53 ); + this.label10.Name = "label10"; + this.label10.Size = new System.Drawing.Size( 48, 13 ); + this.label10.TabIndex = 14; + this.label10.Text = "Offset X:"; + // + // heightUpDown + // + this.heightUpDown.Increment = new decimal( new int[] { + 10, + 0, + 0, + 0} ); + this.heightUpDown.Location = new System.Drawing.Point( 520, 20 ); + this.heightUpDown.Name = "heightUpDown"; + this.heightUpDown.Size = new System.Drawing.Size( 62, 20 ); + this.heightUpDown.TabIndex = 13; + this.heightUpDown.ValueChanged += new System.EventHandler( this.heightUpDown_ValueChanged ); + // + // label8 + // + this.label8.AutoSize = true; + this.label8.Location = new System.Drawing.Point( 475, 23 ); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size( 41, 13 ); + this.label8.TabIndex = 12; + this.label8.Text = "Height:"; + // + // widthUpDown + // + this.widthUpDown.Increment = new decimal( new int[] { + 10, + 0, + 0, + 0} ); + this.widthUpDown.Location = new System.Drawing.Point( 360, 20 ); + this.widthUpDown.Name = "widthUpDown"; + this.widthUpDown.Size = new System.Drawing.Size( 62, 20 ); + this.widthUpDown.TabIndex = 11; + this.widthUpDown.ValueChanged += new System.EventHandler( this.widthUpDown_ValueChanged ); + // + // label7 + // + this.label7.AutoSize = true; + this.label7.Location = new System.Drawing.Point( 321, 23 ); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size( 38, 13 ); + this.label7.TabIndex = 10; + this.label7.Text = "Width:"; + // + // gainUpDown + // + this.gainUpDown.DecimalPlaces = 2; + this.gainUpDown.Location = new System.Drawing.Point( 360, 80 ); + this.gainUpDown.Name = "gainUpDown"; + this.gainUpDown.Size = new System.Drawing.Size( 62, 20 ); + this.gainUpDown.TabIndex = 19; + this.gainUpDown.ValueChanged += new System.EventHandler( this.gainUpDown_ValueChanged ); + // + // label6 + // + this.label6.AutoSize = true; + this.label6.Location = new System.Drawing.Point( 305, 83 ); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size( 54, 13 ); + this.label6.TabIndex = 18; + this.label6.Text = "Gain (dB):"; + // + // exposureUpDown + // + this.exposureUpDown.DecimalPlaces = 2; + this.exposureUpDown.Increment = new decimal( new int[] { + 2, + 0, + 0, + 0} ); + this.exposureUpDown.Location = new System.Drawing.Point( 520, 80 ); + this.exposureUpDown.Name = "exposureUpDown"; + this.exposureUpDown.Size = new System.Drawing.Size( 62, 20 ); + this.exposureUpDown.TabIndex = 21; + this.exposureUpDown.ValueChanged += new System.EventHandler( this.exposureUpDown_ValueChanged ); + // + // label5 + // + this.label5.AutoSize = true; + this.label5.Location = new System.Drawing.Point( 440, 83 ); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size( 76, 13 ); + this.label5.TabIndex = 20; + this.label5.Text = "Exposure (ms):"; + // + // typeBox + // + this.typeBox.Location = new System.Drawing.Point( 70, 100 ); + this.typeBox.Name = "typeBox"; + this.typeBox.ReadOnly = true; + this.typeBox.Size = new System.Drawing.Size( 210, 20 ); + this.typeBox.TabIndex = 9; + // + // snBox + // + this.snBox.Location = new System.Drawing.Point( 70, 75 ); + this.snBox.Name = "snBox"; + this.snBox.ReadOnly = true; + this.snBox.Size = new System.Drawing.Size( 210, 20 ); + this.snBox.TabIndex = 7; + // + // nameBox + // + this.nameBox.Location = new System.Drawing.Point( 70, 50 ); + this.nameBox.Name = "nameBox"; + this.nameBox.ReadOnly = true; + this.nameBox.Size = new System.Drawing.Size( 210, 20 ); + this.nameBox.TabIndex = 5; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point( 10, 103 ); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size( 34, 13 ); + this.label4.TabIndex = 8; + this.label4.Text = "Type:"; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point( 10, 78 ); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size( 46, 13 ); + this.label3.TabIndex = 6; + this.label3.Text = "Serial #:"; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point( 10, 53 ); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size( 38, 13 ); + this.label2.TabIndex = 4; + this.label2.Text = "Name:"; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point( 10, 23 ); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size( 58, 13 ); + this.label1.TabIndex = 0; + this.label1.Text = "Device &ID:"; + // + // disconnectButton + // + this.disconnectButton.Location = new System.Drawing.Point( 205, 20 ); + this.disconnectButton.Name = "disconnectButton"; + this.disconnectButton.Size = new System.Drawing.Size( 75, 23 ); + this.disconnectButton.TabIndex = 3; + this.disconnectButton.Text = "&Disconnect"; + this.disconnectButton.UseVisualStyleBackColor = true; + this.disconnectButton.Click += new System.EventHandler( this.disconnectButton_Click ); + // + // connectButton + // + this.connectButton.Location = new System.Drawing.Point( 125, 20 ); + this.connectButton.Name = "connectButton"; + this.connectButton.Size = new System.Drawing.Size( 75, 23 ); + this.connectButton.TabIndex = 2; + this.connectButton.Text = "&Connect"; + this.connectButton.UseVisualStyleBackColor = true; + this.connectButton.Click += new System.EventHandler( this.connectButton_Click ); + // + // deviceCombo + // + this.deviceCombo.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.deviceCombo.FormattingEnabled = true; + this.deviceCombo.Location = new System.Drawing.Point( 70, 20 ); + this.deviceCombo.Name = "deviceCombo"; + this.deviceCombo.Size = new System.Drawing.Size( 50, 21 ); + this.deviceCombo.TabIndex = 1; + // + // mainPanel + // + this.mainPanel.Controls.Add( this.videoSourcePlayer ); + this.mainPanel.Dock = System.Windows.Forms.DockStyle.Fill; + this.mainPanel.Location = new System.Drawing.Point( 0, 145 ); + this.mainPanel.Name = "mainPanel"; + this.mainPanel.Size = new System.Drawing.Size( 710, 363 ); + this.mainPanel.TabIndex = 10; + // + // timer + // + this.timer.Interval = 1000; + this.timer.Tick += new System.EventHandler( this.timer_Tick ); + // + // MainForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF( 6F, 13F ); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size( 710, 530 ); + this.Controls.Add( this.mainPanel ); + this.Controls.Add( this.topPanel ); + this.Controls.Add( this.statusStrip ); + this.Name = "MainForm"; + this.Text = "Ximea Video Acqusition Sample"; + this.Load += new System.EventHandler( this.MainForm_Load ); + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler( this.MainForm_FormClosing ); + this.statusStrip.ResumeLayout( false ); + this.statusStrip.PerformLayout( ); + this.topPanel.ResumeLayout( false ); + this.groupBox1.ResumeLayout( false ); + this.groupBox1.PerformLayout( ); + ( (System.ComponentModel.ISupportInitialize) ( this.offsetYUpDown ) ).EndInit( ); + ( (System.ComponentModel.ISupportInitialize) ( this.offsetXUpDown ) ).EndInit( ); + ( (System.ComponentModel.ISupportInitialize) ( this.heightUpDown ) ).EndInit( ); + ( (System.ComponentModel.ISupportInitialize) ( this.widthUpDown ) ).EndInit( ); + ( (System.ComponentModel.ISupportInitialize) ( this.gainUpDown ) ).EndInit( ); + ( (System.ComponentModel.ISupportInitialize) ( this.exposureUpDown ) ).EndInit( ); + this.mainPanel.ResumeLayout( false ); + this.ResumeLayout( false ); + this.PerformLayout( ); + + } + + #endregion + + private AForge.Controls.VideoSourcePlayer videoSourcePlayer; + private System.Windows.Forms.StatusStrip statusStrip; + private System.Windows.Forms.Panel topPanel; + private System.Windows.Forms.Panel mainPanel; + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Button disconnectButton; + private System.Windows.Forms.Button connectButton; + private System.Windows.Forms.ComboBox deviceCombo; + private System.Windows.Forms.ToolStripStatusLabel fpsLabel; + private System.Windows.Forms.ToolStripStatusLabel spareLabel; + private System.Windows.Forms.Timer timer; + private System.Windows.Forms.TextBox typeBox; + private System.Windows.Forms.TextBox snBox; + private System.Windows.Forms.TextBox nameBox; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.NumericUpDown exposureUpDown; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.NumericUpDown heightUpDown; + private System.Windows.Forms.Label label8; + private System.Windows.Forms.NumericUpDown widthUpDown; + private System.Windows.Forms.Label label7; + private System.Windows.Forms.NumericUpDown gainUpDown; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.NumericUpDown offsetYUpDown; + private System.Windows.Forms.Label label9; + private System.Windows.Forms.NumericUpDown offsetXUpDown; + private System.Windows.Forms.Label label10; + } +} + diff --git a/Samples/Video/Ximea Sample/MainForm.cs b/Samples/Video/Ximea Sample/MainForm.cs new file mode 100644 index 00000000..a041559d --- /dev/null +++ b/Samples/Video/Ximea Sample/MainForm.cs @@ -0,0 +1,304 @@ +// XIMEA camera sample application +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2006-2011 +// contacts@aforgenet.com +// + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Windows.Forms; +using System.Diagnostics; + +using AForge.Video; +using AForge.Video.Ximea; + +namespace XimeaSample +{ + public partial class MainForm : Form + { + private XimeaVideoSource videoSource = null; + private Stopwatch stopWatch = null; + + public MainForm( ) + { + InitializeComponent( ); + } + + // On application's form is loaded + private void MainForm_Load( object sender, EventArgs e ) + { + int deviceCount = 0; + + try + { + deviceCount = XimeaCamera.CamerasCount; + } + catch + { + } + + EnableConnectionControls( true ); + + if ( deviceCount != 0 ) + { + for ( int i = 0; i < deviceCount; i++ ) + { + deviceCombo.Items.Add( i.ToString( ) ); + } + } + else + { + deviceCombo.Items.Add( "No cameras" ); + deviceCombo.Enabled = false; + connectButton.Enabled = false; + } + deviceCombo.SelectedIndex = 0; + } + + // On closing the application's window + private void MainForm_FormClosing( object sender, FormClosingEventArgs e ) + { + CloseCamera( ); + } + + // Enable/disable controls related to camera connection/operation + private void EnableConnectionControls( bool enable ) + { + deviceCombo.Enabled = enable; + connectButton.Enabled = enable; + + disconnectButton.Enabled = !enable; + widthUpDown.Enabled = !enable; + heightUpDown.Enabled = !enable; + exposureUpDown.Enabled = !enable; + gainUpDown.Enabled = !enable; + offsetXUpDown.Enabled = !enable; + offsetYUpDown.Enabled = !enable; + } + + // On "Connect" button click + private void connectButton_Click( object sender, EventArgs e ) + { + // set busy cursor + this.Cursor = Cursors.WaitCursor; + + // close whatever is open now + CloseCamera( ); + + if ( videoSource == null ) + { + try + { + videoSource = new XimeaVideoSource( deviceCombo.SelectedIndex ); + + // start the camera + videoSource.Start( ); + + // get some parameters + nameBox.Text = videoSource.GetParamString( CameraParameter.DeviceName ); + snBox.Text = videoSource.GetParamString( CameraParameter.DeviceSerialNumber ); + typeBox.Text = videoSource.GetParamString( CameraParameter.DeviceType); + + // width + widthUpDown.Minimum = videoSource.GetParamInt( CameraParameter.WidthMin ); + widthUpDown.Maximum = videoSource.GetParamInt( CameraParameter.WidthMax ); + widthUpDown.Value = videoSource.GetParamInt( CameraParameter.WidthMax ); + + // height + heightUpDown.Minimum = videoSource.GetParamInt( CameraParameter.HeightMin ); + heightUpDown.Maximum = videoSource.GetParamInt( CameraParameter.HeightMax ); + heightUpDown.Value = videoSource.GetParamInt( CameraParameter.HeightMax ); + + // exposure + exposureUpDown.Minimum = videoSource.GetParamInt( CameraParameter.ExposureMin ) / 1000; + exposureUpDown.Maximum = videoSource.GetParamInt( CameraParameter.ExposureMax ) / 1000; + exposureUpDown.Value = 0; + exposureUpDown.Value = 10; + + // gain + gainUpDown.Minimum = new Decimal( videoSource.GetParamFloat( CameraParameter.GainMin ) ); + gainUpDown.Maximum = new Decimal( videoSource.GetParamFloat( CameraParameter.GainMax ) ); + gainUpDown.Value = new Decimal( videoSource.GetParamFloat( CameraParameter.Gain ) ); + + videoSourcePlayer.VideoSource = videoSource; + + EnableConnectionControls( false ); + + // reset stop watch + stopWatch = null; + + // start timer + timer.Start( ); + } + catch ( Exception ex ) + { + MessageBox.Show( "Failed openning XIMEA camera:\n\n" + ex.Message, "Error", + MessageBoxButtons.OK, MessageBoxIcon.Error ); + CloseCamera( ); + } + } + + this.Cursor = Cursors.Default; + } + + // On "Disconnect" button click + private void disconnectButton_Click( object sender, EventArgs e ) + { + CloseCamera( ); + EnableConnectionControls( true ); + } + + // Close currently open camera if any + private void CloseCamera( ) + { + timer.Stop( ); + + if ( videoSource != null ) + { + videoSourcePlayer.VideoSource = null; + + videoSource.SignalToStop( ); + videoSource.WaitForStop( ); + videoSource = null; + } + } + + // On timer tick - update FPS info + private void timer_Tick( object sender, EventArgs e ) + { + if ( videoSource != null ) + { + // get number of frames since the last timer tick + int framesReceived = videoSource.FramesReceived; + + if ( stopWatch == null ) + { + stopWatch = new Stopwatch( ); + stopWatch.Start( ); + } + else + { + stopWatch.Stop( ); + + float fps = 1000.0f * framesReceived / stopWatch.ElapsedMilliseconds; + fpsLabel.Text = fps.ToString( "F2" ) + " fps"; + + stopWatch.Reset( ); + stopWatch.Start( ); + } + } + } + + // Width need to be changed + private void widthUpDown_ValueChanged( object sender, EventArgs e ) + { + if ( videoSource != null ) + { + try + { + videoSource.SetParam( CameraParameter.Width, (int) widthUpDown.Value ); + + offsetXUpDown.Maximum = widthUpDown.Maximum - widthUpDown.Value; + offsetXUpDown.Value = 0; + } + catch + { + } + } + } + + // Height need to be changed + private void heightUpDown_ValueChanged( object sender, EventArgs e ) + { + if ( videoSource != null ) + { + try + { + videoSource.SetParam( CameraParameter.Height, (int) heightUpDown.Value ); + + offsetYUpDown.Maximum = heightUpDown.Maximum - heightUpDown.Value; + offsetYUpDown.Value = 0; + } + catch + { + } + } + } + + // Exposure need to be changed + private void exposureUpDown_ValueChanged( object sender, EventArgs e ) + { + if ( videoSource != null ) + { + try + { + videoSource.SetParam( CameraParameter.Exposure, (int) ( (float) exposureUpDown.Value * 1000 ) ); + + // set interval between capturing new frames from camera + videoSource.FrameInterval = (int) ( 1000.0f / videoSource.GetParamFloat( CameraParameter.FramerateMax ) ); + + // reset statistics + stopWatch = null; + int bin = videoSource.FramesReceived; + + spareLabel.Text = string.Format( "frame interval = {0} ms, max fps = {1}", + videoSource.FrameInterval, videoSource.GetParamFloat( CameraParameter.FramerateMax ) ); + } + catch + { + } + } + } + + // Gain need to be changed + private void gainUpDown_ValueChanged( object sender, EventArgs e ) + { + if ( videoSource != null ) + { + try + { + videoSource.SetParam( CameraParameter.Gain, (float) gainUpDown.Value ); + } + catch + { + } + } + } + + // X offset need to be changed + private void offsetXUpDown_ValueChanged( object sender, EventArgs e ) + { + if ( videoSource != null ) + { + try + { + videoSource.SetParam( CameraParameter.OffsetX, (int) offsetXUpDown.Value ); + } + catch + { + } + } + } + + // Y offset need to be changed + private void offsetYUpDown_ValueChanged( object sender, EventArgs e ) + { + if ( videoSource != null ) + { + try + { + videoSource.SetParam( CameraParameter.OffsetY, (int) offsetYUpDown.Value ); + } + catch + { + } + } + } + + } +} diff --git a/Samples/Video/Ximea Sample/MainForm.resx b/Samples/Video/Ximea Sample/MainForm.resx new file mode 100644 index 00000000..2704ca35 --- /dev/null +++ b/Samples/Video/Ximea Sample/MainForm.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 341, 17 + + \ No newline at end of file diff --git a/Samples/Video/Ximea Sample/Program.cs b/Samples/Video/Ximea Sample/Program.cs new file mode 100644 index 00000000..03318749 --- /dev/null +++ b/Samples/Video/Ximea Sample/Program.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Windows.Forms; + +namespace XimeaSample +{ + static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main( ) + { + Application.EnableVisualStyles( ); + Application.SetCompatibleTextRenderingDefault( false ); + Application.Run( new MainForm( ) ); + } + } +} diff --git a/Samples/Video/Ximea Sample/Properties/AssemblyInfo.cs b/Samples/Video/Ximea Sample/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..fd7d7ae9 --- /dev/null +++ b/Samples/Video/Ximea Sample/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle( "Ximea Sample" )] +[assembly: AssemblyDescription( "XIMEA camera sample application" )] +[assembly: AssemblyConfiguration( "" )] +[assembly: AssemblyCompany( "AForge" )] +[assembly: AssemblyProduct( "AForge.NET" )] +[assembly: AssemblyCopyright( "AForge © 2011" )] +[assembly: AssemblyTrademark( "" )] +[assembly: AssemblyCulture( "" )] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible( false )] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid( "43d3bb5b-a382-4191-a7d0-4b0d6b55098a" )] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion( "1.0.0.0" )] +[assembly: AssemblyFileVersion( "1.0.0.0" )] diff --git a/Samples/Video/Ximea Sample/Properties/Resources.Designer.cs b/Samples/Video/Ximea Sample/Properties/Resources.Designer.cs new file mode 100644 index 00000000..ec3182b6 --- /dev/null +++ b/Samples/Video/Ximea Sample/Properties/Resources.Designer.cs @@ -0,0 +1,63 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.4211 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace XimeaSample.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("XimeaSample.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + } +} diff --git a/Samples/Video/Ximea Sample/Properties/Resources.resx b/Samples/Video/Ximea Sample/Properties/Resources.resx new file mode 100644 index 00000000..af7dbebb --- /dev/null +++ b/Samples/Video/Ximea Sample/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Samples/Video/Ximea Sample/Properties/Settings.Designer.cs b/Samples/Video/Ximea Sample/Properties/Settings.Designer.cs new file mode 100644 index 00000000..8d77f43c --- /dev/null +++ b/Samples/Video/Ximea Sample/Properties/Settings.Designer.cs @@ -0,0 +1,26 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.4211 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace XimeaSample.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "9.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + } +} diff --git a/Samples/Video/Ximea Sample/Properties/Settings.settings b/Samples/Video/Ximea Sample/Properties/Settings.settings new file mode 100644 index 00000000..39645652 --- /dev/null +++ b/Samples/Video/Ximea Sample/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Samples/Video/Ximea Sample/Ximea Sample.csproj b/Samples/Video/Ximea Sample/Ximea Sample.csproj new file mode 100644 index 00000000..2cde423e --- /dev/null +++ b/Samples/Video/Ximea Sample/Ximea Sample.csproj @@ -0,0 +1,133 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {40C644F9-5AF9-44BB-9649-02149933E092} + WinExe + Properties + XimeaSample + Ximea Sample + v2.0 + 512 + + + 3.5 + + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + False + ..\..\..\Release\AForge.Controls.dll + + + False + ..\..\..\Release\AForge.Video.dll + + + False + ..\..\..\Release\AForge.Video.Ximea.dll + + + + + + + + + Form + + + MainForm.cs + + + + + MainForm.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + True + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + False + Microsoft .NET Framework 4 %28x86 and x64%29 + true + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 3.1 + true + + + + + \ No newline at end of file diff --git a/Samples/Video/Ximea Sample/Ximea Sample.sln b/Samples/Video/Ximea Sample/Ximea Sample.sln new file mode 100644 index 00000000..f63fd632 --- /dev/null +++ b/Samples/Video/Ximea Sample/Ximea Sample.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual C# Express 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Ximea Sample", "Ximea Sample.csproj", "{40C644F9-5AF9-44BB-9649-02149933E092}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {40C644F9-5AF9-44BB-9649-02149933E092}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {40C644F9-5AF9-44BB-9649-02149933E092}.Debug|Any CPU.Build.0 = Debug|Any CPU + {40C644F9-5AF9-44BB-9649-02149933E092}.Release|Any CPU.ActiveCfg = Release|Any CPU + {40C644F9-5AF9-44BB-9649-02149933E092}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Samples/Vision/MotionDetector/AboutForm.Designer.cs b/Samples/Vision/MotionDetector/AboutForm.Designer.cs new file mode 100644 index 00000000..dbf68a63 --- /dev/null +++ b/Samples/Vision/MotionDetector/AboutForm.Designer.cs @@ -0,0 +1,172 @@ +namespace MotionDetectorSample +{ + partial class AboutForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose( bool disposing ) + { + if ( disposing && ( components != null ) ) + { + components.Dispose( ); + } + base.Dispose( disposing ); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent( ) + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager( typeof( AboutForm ) ); + this.pictureBox1 = new System.Windows.Forms.PictureBox( ); + this.label1 = new System.Windows.Forms.Label( ); + this.label2 = new System.Windows.Forms.Label( ); + this.panel1 = new System.Windows.Forms.Panel( ); + this.emailLabel = new System.Windows.Forms.LinkLabel( ); + this.label3 = new System.Windows.Forms.Label( ); + this.aforgeLabel = new System.Windows.Forms.LinkLabel( ); + this.okButton = new System.Windows.Forms.Button( ); + this.pictureBox2 = new System.Windows.Forms.PictureBox( ); + ( (System.ComponentModel.ISupportInitialize) ( this.pictureBox1 ) ).BeginInit( ); + this.panel1.SuspendLayout( ); + ( (System.ComponentModel.ISupportInitialize) ( this.pictureBox2 ) ).BeginInit( ); + this.SuspendLayout( ); + // + // pictureBox1 + // + this.pictureBox1.Image = ( (System.Drawing.Image) ( resources.GetObject( "pictureBox1.Image" ) ) ); + this.pictureBox1.Location = new System.Drawing.Point( 15, 20 ); + this.pictureBox1.Name = "pictureBox1"; + this.pictureBox1.Size = new System.Drawing.Size( 50, 50 ); + this.pictureBox1.TabIndex = 0; + this.pictureBox1.TabStop = false; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point( 96, 20 ); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size( 110, 13 ); + this.label1.TabIndex = 1; + this.label1.Text = "Motion Detector 2.4.0"; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point( 39, 45 ); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size( 225, 13 ); + this.label2.TabIndex = 2; + this.label2.Text = "Sample application of AForge.NET framework:"; + // + // panel1 + // + this.panel1.Controls.Add( this.emailLabel ); + this.panel1.Controls.Add( this.label3 ); + this.panel1.Controls.Add( this.aforgeLabel ); + this.panel1.Controls.Add( this.label2 ); + this.panel1.Controls.Add( this.label1 ); + this.panel1.Location = new System.Drawing.Point( 71, 0 ); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size( 303, 139 ); + this.panel1.TabIndex = 3; + // + // emailLabel + // + this.emailLabel.AutoSize = true; + this.emailLabel.Location = new System.Drawing.Point( 75, 110 ); + this.emailLabel.Name = "emailLabel"; + this.emailLabel.Size = new System.Drawing.Size( 153, 13 ); + this.emailLabel.TabIndex = 5; + this.emailLabel.TabStop = true; + this.emailLabel.Text = "andrew.kirillov@aforgenet.com"; + this.emailLabel.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler( this.LinkClicked ); + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point( 55, 95 ); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size( 192, 13 ); + this.label3.TabIndex = 4; + this.label3.Text = "Copyright © 2005-2009, Andrew Kirillov"; + // + // aforgeLabel + // + this.aforgeLabel.AutoSize = true; + this.aforgeLabel.Location = new System.Drawing.Point( 55, 60 ); + this.aforgeLabel.Name = "aforgeLabel"; + this.aforgeLabel.Size = new System.Drawing.Size( 192, 13 ); + this.aforgeLabel.TabIndex = 3; + this.aforgeLabel.TabStop = true; + this.aforgeLabel.Text = "http://www.aforgenet.com/framework/"; + this.aforgeLabel.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler( this.LinkClicked ); + // + // okButton + // + this.okButton.DialogResult = System.Windows.Forms.DialogResult.OK; + this.okButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.okButton.Location = new System.Drawing.Point( 150, 150 ); + this.okButton.Name = "okButton"; + this.okButton.Size = new System.Drawing.Size( 75, 23 ); + this.okButton.TabIndex = 13; + this.okButton.Text = "Ok"; + // + // pictureBox2 + // + this.pictureBox2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.pictureBox2.Location = new System.Drawing.Point( 15, 140 ); + this.pictureBox2.Name = "pictureBox2"; + this.pictureBox2.Size = new System.Drawing.Size( 344, 2 ); + this.pictureBox2.TabIndex = 12; + this.pictureBox2.TabStop = false; + // + // AboutForm + // + this.AcceptButton = this.okButton; + this.AutoScaleDimensions = new System.Drawing.SizeF( 6F, 13F ); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size( 374, 183 ); + this.Controls.Add( this.okButton ); + this.Controls.Add( this.pictureBox2 ); + this.Controls.Add( this.panel1 ); + this.Controls.Add( this.pictureBox1 ); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "AboutForm"; + this.ShowInTaskbar = false; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "About"; + ( (System.ComponentModel.ISupportInitialize) ( this.pictureBox1 ) ).EndInit( ); + this.panel1.ResumeLayout( false ); + this.panel1.PerformLayout( ); + ( (System.ComponentModel.ISupportInitialize) ( this.pictureBox2 ) ).EndInit( ); + this.ResumeLayout( false ); + + } + + #endregion + + private System.Windows.Forms.PictureBox pictureBox1; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.LinkLabel aforgeLabel; + private System.Windows.Forms.LinkLabel emailLabel; + private System.Windows.Forms.Button okButton; + private System.Windows.Forms.PictureBox pictureBox2; + } +} \ No newline at end of file diff --git a/Samples/Vision/MotionDetector/AboutForm.cs b/Samples/Vision/MotionDetector/AboutForm.cs new file mode 100644 index 00000000..a01d1bd3 --- /dev/null +++ b/Samples/Vision/MotionDetector/AboutForm.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; + +namespace MotionDetectorSample +{ + public partial class AboutForm : Form + { + public AboutForm( ) + { + InitializeComponent( ); + + // initialize links + emailLabel.Links.Add( 0, emailLabel.Text.Length, "mailto:andrew.kirillov@aforgenet.com" ); + aforgeLabel.Links.Add( 0, aforgeLabel.Text.Length, "http://www.aforgenet.com/framework/" ); + } + + // Link clicked + private void LinkClicked( object sender, LinkLabelLinkClickedEventArgs e ) + { + System.Diagnostics.Process.Start( e.Link.LinkData.ToString( ) ); + } + } +} \ No newline at end of file diff --git a/Samples/Vision/MotionDetector/AboutForm.resx b/Samples/Vision/MotionDetector/AboutForm.resx new file mode 100644 index 00000000..f00a8e6a --- /dev/null +++ b/Samples/Vision/MotionDetector/AboutForm.resx @@ -0,0 +1,169 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAACZNJREFUaEPtmX1o + lWUYxlcEaRERiJAKSoVKc6abZWk6UbP8XKIzdQ2/mPm1dvzaFDe/a4VTl/hValPnF4n2R0rmbKamNc2S + FpaCopGFoeIfBiXF0/u71/XyeDy6c6YlgQdu3vecve8513Xd130/9/ssKenu664C/x8FNm/e5NatW+tW + r17lVq5cHsaSJUvsnM/5O9fdcVaA8AFzvmvXJ+7LL79wJ0784M6fP+8uXLhgce7cT/bZV18dcXv37nM7 + duyweyEEOUj9a4S2b99mPyaw/BifAeTYsaPu9OlTBhLACgAr/M9FiuPZs2csuJ/vW7hw4e0hAUDZANAV + FbtDVQEVC6QPONa5CAK2urraiJMNBe/Jxi1ZSyqT6suXL7srV65YcC4rxAue67lPSh8//q0B5wjYgwf3 + WwaxG+8JrDRu3Li6ZYEUEryuXr0ahkiICKBiEfIJAx5rIAQBODy/fHmlmzfvoMvJOWwxbFiVGzToU5eX + t8MyQdb7ZQxwmZkDEidBhwBkbS+fnK7lPpTGHgQqU8xr1nxugCOR466w8KxFQcFpe5+bWx2o/U1IJDNz + u3v77WLXvv3TFgkVtPwOIPyLYuoUKIeKsV4oLdAoDujFi48ZyDlzLrlFiy5aLFjwSwh+8uST1xEgG/37 + 73EZGXkuLa1tYgQoHBQDCKDxKcDwpmzFkff+C9W5R52kuHiNmz//UuDjP1x5+e9BQf7miosvBUTOX6P+ + jQhgp9TUMUagY8fn4ssARQNgfNe4WSvXs+dLbtSoUVZMKmRUVZAZvVScZAzwJSVXDPS2bVftHPAiIBJk + BgKEbyHVREIE8BvKUvWca6XUKqleT3GqY5Ah2Qngsg3eLiv708CTAQiIBOB9AiJBHVADqgNIiEB6eqeb + ZwBw+VMmWtUDnAWksLDQjpAhKGqtkJA4cKDKbEREqw9owK9Y8ZcREInoDKiIr7dRTTHHTQDw8+fNDftu + mzatYezqPfCIGzJksBGYPXtOeCRTKO4vPFiPGpgw4QMDju/jITB9+s9W5DW2WR8U7wKLnJxvXErHfKsB + rHzDLoTq2AaFZ8wocF27dnX33N/EpT3T2Y4ENQFBslJQkG/XawHySXC+despAy/ldaT7XFsHlwKyNZ2G + 36TXE+o6CAGBlJQW5o4bEkBdgEEAtQHe5LFU165ThoG/r0F7OwKa6yKRPCtsMhKdBQhUVR01AvK973/O + sU1u7tqa3wrUJdsonJ2d7fr27Wufde+ebosZBGpdiVEUEvgdBQDfP+t1A+5Hg+YvWhZQAwIA0KoanYXy + 8ovXEZg58wfXqXeuoyC5V2BZpMgwBMiELAMBrERbv+kihqKABxxfQvvMmfWWS3roWZfUsOc1kfPaRLMZ + 10GWL9dI7A9jGzeeCe2C6hMnbrBejtoA98HyOd8FKc4hNHBgP8tAXARIEQSwBOeonjX2jRrgjQdfEygI + ATKAalwvG6kj0WI3baq2VslCBngAASwaLGqjOuDlfzLE9dOmHYiPgJ8BzrEKQAF/T7MRLqnpWJf0WPA+ + iEdTRxsBgKMk3qX3a12orKy0UXvDhiojQPh28cFCSHYhI3yX/E+mi4p+jY8ANYB9qAPAtXgm04AaeIC3 + yHf3PllkwWciwA+iFu0T0KzOzEkEQxvFKgICF12svv/5LjpOVlau2S8ra58RoLnctAbUHiHAOQUMUCMQ + gE9KCerhqZKaY6MRYRtFTSyB+oDWnMQzxKKlB623QwJrAA51o4tVlsIyvXoNNd+jPOAZq+MiwOqKdbTi + Ugvm/UB9VDfgae/VHAM70YWwkEAxTkQ/XjIyQ4CQ/yGsFZ2s0yr5jBqZNeukY0FjMQN8jfp73KvD5tae + AdJDUYoAnQULyT4hgX+spDZK+ukqdJ/oXQcKUENanz7drICxXvLkZFdvUn338JgGLlK6NFgvLtoozeRJ + CDzHjIyP4yeA6qjCEQLTZpSaXeR/LISlWFgggC0ADzA9+pFJRSRywqZLjtiC70sr6myx9dgWN3L1SCPS + qSjT7Jaf/3UIHusQvXrtNAK1rgNkQOMEBKgDPG2diA5EHfzThagPCJB6wHNO8dKGNfihvkZjjkRZ2Y+m + +qLPio3A2iPv2vkTc5uG2eDBR96HQI8eHwaWKozvOQASgKcWNLTRWVDcMhEQkfryPwXINaiuLjZpUul1 + IzG+9gkIfPFnMxzRc1UPywbZIRuM0/g/PX1TMCtNi58AJCBAMPMQFCdpJBuozd/oJLRDLEff5zpIkwms + oocR/7hy5ckwA8sOlRjwmXsirqBypIt8ku3G7BwQZoMpgCYAgZsOcTfqrShMAJAvEHDA4321PuYf1Q0W + hABPYhSjdhhUnCIAaKwTDX7krhcc0W1zizAbpe9/aI0loYd5XQwwdSayAAlWXghgGVqnWqJ250TA7yQ6 + 9wlIfSkP8KE7u7jMj9IsMna2dA++Wd+IUOyMKHUiQVECjqcvf/fM353wtxiph6VLy8y/PgkKkgKliLGM + 1H999yumusADXDGw4skwG8nzkutGQNuJPC4ysImENmMBrNGBI/VAy6P9qRXqCAEUFQHUH1eRYQSkOuAB + Tgzem+xe3Z/ihh9q61qtahhmI6FMaHHSw7p2k5l9IOE/2JMVgntofyxCfogAwCEh9bM/fj4k4AMX+FGH + U92Yr9sZIWyFpeImARgGKRHQfg/zf6zNWO0b0T1qIyD1syqC2T+G6gIOeCK3+jm7rtGcRokRoGC13e1v + WnEuItqghQBZYQDDRmRCEZ0Bn4Bvl1jAAT/5RLobuL91YgRIFYUssNqY5ajtQ//ISAEJWilZEHjO6evU + gCw0YW8f83/2vtTQ6z54QAs44PlbwhaCAIsUCkcHOxI+If8/LWSBbjR8+Do3dGi5bbOwhwQBvE8N5B3q + 7UYf6mgEKFTfKj7w6ae7u7ZbmtQNPAQYEWil8rz27TlGk0J9FTMk/ICgMjDzaJYRyD3SxcBLeV91gPM3 + VG+92Pao6v7yV1tAiYT/nxQ+Q2VaqR8Q0j1hGw0I5B9+2QiQBV997EJI9fHrx98aeNGmG5ENxgllBcD+ + dgpAo8GzPrBi09GiCSgL6jIqVFTvsKzD7QEeK28UNlnRU5y22n0LMVYAnJmKQQ9yEJhd9ZoFNlIWZJ3H + yxqaZaZunPrvgfcJseoKJLMSWUJpH7h/PeAAX/LdeCNg8X2fcPZhrK670W/xTtYLHhlVL7G+TgTeqZ4S + kpDqt/jz/83tKNx6bXMHAQY4CN1R1etCm+IEeMvSlnfOLnUBfrvv+RtRoWdyH9ceOgAAAABJRU5ErkJg + gg== + + + \ No newline at end of file diff --git a/Samples/Vision/MotionDetector/App.ico b/Samples/Vision/MotionDetector/App.ico new file mode 100644 index 00000000..2ab4a4fb Binary files /dev/null and b/Samples/Vision/MotionDetector/App.ico differ diff --git a/Samples/Vision/MotionDetector/DefineRegionsControl.Designer.cs b/Samples/Vision/MotionDetector/DefineRegionsControl.Designer.cs new file mode 100644 index 00000000..8e4fdaf5 --- /dev/null +++ b/Samples/Vision/MotionDetector/DefineRegionsControl.Designer.cs @@ -0,0 +1,36 @@ +namespace MotionDetectorSample +{ + partial class DefineRegionsControl + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose( bool disposing ) + { + if ( disposing && ( components != null ) ) + { + components.Dispose( ); + } + base.Dispose( disposing ); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent( ) + { + components = new System.ComponentModel.Container( ); + } + + #endregion + } +} diff --git a/Samples/Vision/MotionDetector/DefineRegionsControl.cs b/Samples/Vision/MotionDetector/DefineRegionsControl.cs new file mode 100644 index 00000000..ff8115a2 --- /dev/null +++ b/Samples/Vision/MotionDetector/DefineRegionsControl.cs @@ -0,0 +1,287 @@ +// Motion Detection sample application +// AForge.NET Framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2006-2011 +// contacts@aforgenet.com +// + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.Data; +using System.Text; +using System.Windows.Forms; + +namespace MotionDetectorSample +{ + // Drawing modes + public enum DrawingMode + { + None, + Rectangular + } + + // Delegate to notify about new rectangle + public delegate void NewRectangleHandler( object sender, Rectangle rect ); + + // Control to define motion regions + public partial class DefineRegionsControl : System.Windows.Forms.Control + { + // border's color + private Color borderColor = Color.Black; + // backgound's color + private Color backColor = Color.FromArgb( 96, 96, 96 ); + // selection rectangle's color + private Color selectionColor = Color.Yellow; + // rectangles' color + private Color rectsColor = Color.FromArgb( 0, 255, 0 ); + // backgroun image + private Bitmap backImage = null; + + // collection of rectangles + private List rectangles = new List( ); + + private DrawingMode drawingMode = DrawingMode.None; + private bool dragging = false; + + private Point startPoint; + private Point endPoint; + + // Background image + public new Bitmap BackgroundImage + { + get { return backImage; } + set { backImage = value; } + } + + // Drawing mode + public DrawingMode DrawingMode + { + get { return drawingMode; } + set + { + drawingMode = value; + + this.Cursor = ( drawingMode == DrawingMode.None ) ? Cursors.Default : Cursors.Cross; + } + } + + // Rectangles array + public Rectangle[] Rectangles + { + get + { + Rectangle[] rects = new Rectangle[rectangles.Count]; + rectangles.CopyTo( rects ); + return rects; + } + set + { + rectangles.Clear( ); + + if ( value != null ) + { + rectangles.AddRange( value ); + } + Invalidate( ); + } + } + + // Event to notify about new rectangle + public event NewRectangleHandler OnNewRectangle; + + // Class constructor + public DefineRegionsControl( ) + { + InitializeComponent( ); + + // update style of the control + SetStyle( ControlStyles.AllPaintingInWmPaint | ControlStyles.DoubleBuffer | + ControlStyles.ResizeRedraw | ControlStyles.UserPaint, true ); + } + + // Remove all regions + public void RemoveAllRegions( ) + { + rectangles.RemoveRange( 0, rectangles.Count ); + this.Invalidate( ); + } + + // Paint the control + protected override void OnPaint( PaintEventArgs pe ) + { + Graphics g = pe.Graphics; + Rectangle rect = this.ClientRectangle; + + // draw rectangle + using ( Pen pen = new Pen( borderColor, 1 ) ) + { + g.DrawRectangle( pen, rect.X, rect.Y, rect.Width - 1, rect.Height - 1 ); + } + + // draw background + if ( backImage != null ) + { + g.DrawImage( backImage, 1, 1, rect.Width - 2, rect.Height - 2 ); + } + else + { + using ( Brush backBrush = new SolidBrush( backColor ) ) + { + g.FillRectangle( backBrush, 1, 1, rect.Width - 2, rect.Height - 2 ); + } + } + + // draw rectangles + using ( Pen pen = new Pen( rectsColor, 1 ) ) + { + foreach ( Rectangle r in rectangles ) + { + g.DrawRectangle( pen, r.X + 1, r.Y + 1, r.Width - 1, r.Height - 1 ); + } + } + + base.OnPaint( pe ); + } + + // On mouse down + protected override void OnMouseDown( MouseEventArgs e ) + { + // check drawing mode + if ( drawingMode == DrawingMode.Rectangular ) + { + // check button type + if ( e.Button == MouseButtons.Left ) + { + // switch to dragging mode + dragging = true; + this.Capture = true; + + // set initial starting and ending points + startPoint.X = endPoint.X = e.X; + startPoint.Y = endPoint.Y = e.Y; + // draw selection rectangle + ControlPaint.DrawReversibleFrame( new Rectangle( e.X, e.Y, 1, 1 ), Color.Green, FrameStyle.Dashed ); + } + else if ( e.Button == MouseButtons.Right ) + { + } + } + } + + // On mouse up + protected override void OnMouseUp( MouseEventArgs e ) + { + // check drawing and dragging mode + if ( ( drawingMode == DrawingMode.Rectangular ) && ( dragging == true ) ) + { + // stop dragging mode + dragging = false; + this.Capture = false; + + // reset drawing mode + drawingMode = DrawingMode.None; + this.Cursor = Cursors.Default; + + // erase selection rectangle + DrawSelectionRectangle( ); + + // get normalized points + NormalizePoints( ref startPoint, ref endPoint ); + + // check that points are inside of the control + CheckPointsInClient( ref startPoint ); + CheckPointsInClient( ref endPoint ); + + // add rectangle to collection + Rectangle rect = new Rectangle( startPoint.X - 1, startPoint.Y - 1, endPoint.X - startPoint.X + 1, endPoint.Y - startPoint.Y + 1 ); + rectangles.Add( rect ); + + // notify clients about new available rectangle + if ( OnNewRectangle != null ) + { + OnNewRectangle( this, rect ); + } + + // redraw the control + this.Invalidate( ); + } + } + + // On mouse move + protected override void OnMouseMove( MouseEventArgs e ) + { + if ( dragging == true ) + { + // erase old rectangle + DrawSelectionRectangle( ); + + endPoint.X = e.X; + endPoint.Y = e.Y; + + // draw new rectangle + DrawSelectionRectangle( ); + } + } + + // Draw reversable selection rectangle + private void DrawSelectionRectangle( ) + { + Point start = startPoint; + Point end = endPoint; + + // do normalization + NormalizePoints( ref start, ref end ); + + // check that points are inside of the control + CheckPointsInClient( ref start ); + CheckPointsInClient( ref end ); + + // convert client coordinates to screen coordinates + Point screenStartPoint = this.PointToScreen( start); + Point screenEndPoint = this.PointToScreen( end ); + + // draw rectangle + ControlPaint.DrawReversibleFrame( + new Rectangle( + screenStartPoint.X, screenStartPoint.Y, + screenEndPoint.X - screenStartPoint.X + 1, screenEndPoint.Y - screenStartPoint.Y + 1 ), + selectionColor, FrameStyle.Dashed ); + } + + // Normalize points, so the first point will keep smaller coordinates + private void NormalizePoints( ref Point point1, ref Point point2 ) + { + Point t1 = point1; + Point t2 = point2; + + point1.X = Math.Min( t1.X, t2.X ); + point1.Y = Math.Min( t1.Y, t2.Y ); + point2.X = Math.Max( t1.X, t2.X ); + point2.Y = Math.Max( t1.Y, t2.Y ); + } + + // Ensure the point is in client area + private void CheckPointsInClient( ref Point point ) + { + if ( point.X < 1 ) + { + point.X = 1; + } + if ( point.Y < 1 ) + { + point.Y = 1; + } + if ( point.X >= ClientRectangle.Width - 1 ) + { + point.X = ClientRectangle.Width - 2; + } + if ( point.Y >= ClientRectangle.Height - 1 ) + { + point.Y = ClientRectangle.Height - 2; + } + } + } +} diff --git a/Samples/Vision/MotionDetector/Images/clear.png b/Samples/Vision/MotionDetector/Images/clear.png new file mode 100644 index 00000000..53d35076 Binary files /dev/null and b/Samples/Vision/MotionDetector/Images/clear.png differ diff --git a/Samples/Vision/MotionDetector/Images/rectangle.png b/Samples/Vision/MotionDetector/Images/rectangle.png new file mode 100644 index 00000000..b296f174 Binary files /dev/null and b/Samples/Vision/MotionDetector/Images/rectangle.png differ diff --git a/Samples/Vision/MotionDetector/MainForm.Designer.cs b/Samples/Vision/MotionDetector/MainForm.Designer.cs new file mode 100644 index 00000000..12ec8c8f --- /dev/null +++ b/Samples/Vision/MotionDetector/MainForm.Designer.cs @@ -0,0 +1,436 @@ +namespace MotionDetectorSample +{ + partial class MainForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose( bool disposing ) + { + if ( disposing && ( components != null ) ) + { + components.Dispose( ); + } + base.Dispose( disposing ); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent( ) + { + this.components = new System.ComponentModel.Container( ); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager( typeof( MainForm ) ); + this.menuMenu = new System.Windows.Forms.MenuStrip( ); + this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem( ); + this.openVideoFileusingDirectShowToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem( ); + this.localVideoCaptureDeviceToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem( ); + this.openJPEGURLToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem( ); + this.openMJPEGURLToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem( ); + this.openToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem( ); + this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripSeparator( ); + this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem( ); + this.motionToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem( ); + this.motionDetectionAlgorithmToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem( ); + this.noneToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem( ); + this.twoFramesDifferenceToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem( ); + this.simpleBackgroundModelingToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem( ); + this.motionProcessingAlgorithmToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem( ); + this.noneToolStripMenuItem2 = new System.Windows.Forms.ToolStripMenuItem( ); + this.motionAreaHighlightingToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem( ); + this.motionBorderHighlightingToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem( ); + this.blobCountingToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem( ); + this.gridMotionAreaProcessingToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem( ); + this.toolStripMenuItem2 = new System.Windows.Forms.ToolStripSeparator( ); + this.defineMotionregionsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem( ); + this.toolStripMenuItem3 = new System.Windows.Forms.ToolStripSeparator( ); + this.showMotionHistoryToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem( ); + this.toolsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem( ); + this.localVideoCaptureSettingsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem( ); + this.crossbarVideoSettingsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem( ); + this.helpToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem( ); + this.aboutToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem( ); + this.openFileDialog = new System.Windows.Forms.OpenFileDialog( ); + this.timer = new System.Windows.Forms.Timer( this.components ); + this.statusBar = new System.Windows.Forms.StatusStrip( ); + this.fpsLabel = new System.Windows.Forms.ToolStripStatusLabel( ); + this.objectsCountLabel = new System.Windows.Forms.ToolStripStatusLabel( ); + this.panel1 = new System.Windows.Forms.Panel( ); + this.videoSourcePlayer = new AForge.Controls.VideoSourcePlayer( ); + this.alarmTimer = new System.Windows.Forms.Timer( this.components ); + this.menuMenu.SuspendLayout( ); + this.statusBar.SuspendLayout( ); + this.panel1.SuspendLayout( ); + this.SuspendLayout( ); + // + // menuMenu + // + this.menuMenu.Items.AddRange( new System.Windows.Forms.ToolStripItem[] { + this.fileToolStripMenuItem, + this.motionToolStripMenuItem, + this.toolsToolStripMenuItem, + this.helpToolStripMenuItem} ); + this.menuMenu.Location = new System.Drawing.Point( 0, 0 ); + this.menuMenu.Name = "menuMenu"; + this.menuMenu.Size = new System.Drawing.Size( 432, 24 ); + this.menuMenu.TabIndex = 0; + // + // fileToolStripMenuItem + // + this.fileToolStripMenuItem.DropDownItems.AddRange( new System.Windows.Forms.ToolStripItem[] { + this.openVideoFileusingDirectShowToolStripMenuItem, + this.localVideoCaptureDeviceToolStripMenuItem, + this.openJPEGURLToolStripMenuItem, + this.openMJPEGURLToolStripMenuItem, + this.openToolStripMenuItem, + this.toolStripMenuItem1, + this.exitToolStripMenuItem} ); + this.fileToolStripMenuItem.Name = "fileToolStripMenuItem"; + this.fileToolStripMenuItem.Size = new System.Drawing.Size( 37, 20 ); + this.fileToolStripMenuItem.Text = "&File"; + // + // openVideoFileusingDirectShowToolStripMenuItem + // + this.openVideoFileusingDirectShowToolStripMenuItem.Name = "openVideoFileusingDirectShowToolStripMenuItem"; + this.openVideoFileusingDirectShowToolStripMenuItem.ShortcutKeys = ( (System.Windows.Forms.Keys) ( ( System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.O ) ) ); + this.openVideoFileusingDirectShowToolStripMenuItem.Size = new System.Drawing.Size( 270, 22 ); + this.openVideoFileusingDirectShowToolStripMenuItem.Text = "&Open"; + this.openVideoFileusingDirectShowToolStripMenuItem.Click += new System.EventHandler( this.openVideoFileusingDirectShowToolStripMenuItem_Click ); + // + // localVideoCaptureDeviceToolStripMenuItem + // + this.localVideoCaptureDeviceToolStripMenuItem.Name = "localVideoCaptureDeviceToolStripMenuItem"; + this.localVideoCaptureDeviceToolStripMenuItem.Size = new System.Drawing.Size( 270, 22 ); + this.localVideoCaptureDeviceToolStripMenuItem.Text = "Local &Video Capture Device"; + this.localVideoCaptureDeviceToolStripMenuItem.Click += new System.EventHandler( this.localVideoCaptureDeviceToolStripMenuItem_Click ); + // + // openJPEGURLToolStripMenuItem + // + this.openJPEGURLToolStripMenuItem.Name = "openJPEGURLToolStripMenuItem"; + this.openJPEGURLToolStripMenuItem.Size = new System.Drawing.Size( 270, 22 ); + this.openJPEGURLToolStripMenuItem.Text = "Open JPEG &URL"; + this.openJPEGURLToolStripMenuItem.Click += new System.EventHandler( this.openJPEGURLToolStripMenuItem_Click ); + // + // openMJPEGURLToolStripMenuItem + // + this.openMJPEGURLToolStripMenuItem.Name = "openMJPEGURLToolStripMenuItem"; + this.openMJPEGURLToolStripMenuItem.Size = new System.Drawing.Size( 270, 22 ); + this.openMJPEGURLToolStripMenuItem.Text = "Open &MJPEG URL"; + this.openMJPEGURLToolStripMenuItem.Click += new System.EventHandler( this.openMJPEGURLToolStripMenuItem_Click ); + // + // openToolStripMenuItem + // + this.openToolStripMenuItem.Name = "openToolStripMenuItem"; + this.openToolStripMenuItem.Size = new System.Drawing.Size( 270, 22 ); + this.openToolStripMenuItem.Text = "Open video file (using VFW interface)"; + this.openToolStripMenuItem.Click += new System.EventHandler( this.openToolStripMenuItem_Click ); + // + // toolStripMenuItem1 + // + this.toolStripMenuItem1.Name = "toolStripMenuItem1"; + this.toolStripMenuItem1.Size = new System.Drawing.Size( 267, 6 ); + // + // exitToolStripMenuItem + // + this.exitToolStripMenuItem.Name = "exitToolStripMenuItem"; + this.exitToolStripMenuItem.Size = new System.Drawing.Size( 270, 22 ); + this.exitToolStripMenuItem.Text = "E&xit"; + this.exitToolStripMenuItem.Click += new System.EventHandler( this.exitToolStripMenuItem_Click ); + // + // motionToolStripMenuItem + // + this.motionToolStripMenuItem.DropDownItems.AddRange( new System.Windows.Forms.ToolStripItem[] { + this.motionDetectionAlgorithmToolStripMenuItem, + this.motionProcessingAlgorithmToolStripMenuItem, + this.toolStripMenuItem2, + this.defineMotionregionsToolStripMenuItem, + this.toolStripMenuItem3, + this.showMotionHistoryToolStripMenuItem} ); + this.motionToolStripMenuItem.Name = "motionToolStripMenuItem"; + this.motionToolStripMenuItem.Size = new System.Drawing.Size( 58, 20 ); + this.motionToolStripMenuItem.Text = "&Motion"; + this.motionToolStripMenuItem.DropDownOpening += new System.EventHandler( this.motionToolStripMenuItem_DropDownOpening ); + // + // motionDetectionAlgorithmToolStripMenuItem + // + this.motionDetectionAlgorithmToolStripMenuItem.DropDownItems.AddRange( new System.Windows.Forms.ToolStripItem[] { + this.noneToolStripMenuItem1, + this.twoFramesDifferenceToolStripMenuItem, + this.simpleBackgroundModelingToolStripMenuItem} ); + this.motionDetectionAlgorithmToolStripMenuItem.Name = "motionDetectionAlgorithmToolStripMenuItem"; + this.motionDetectionAlgorithmToolStripMenuItem.Size = new System.Drawing.Size( 230, 22 ); + this.motionDetectionAlgorithmToolStripMenuItem.Text = "Motion Detection Algorithm"; + // + // noneToolStripMenuItem1 + // + this.noneToolStripMenuItem1.Name = "noneToolStripMenuItem1"; + this.noneToolStripMenuItem1.Size = new System.Drawing.Size( 231, 22 ); + this.noneToolStripMenuItem1.Text = "None"; + this.noneToolStripMenuItem1.Click += new System.EventHandler( this.noneToolStripMenuItem1_Click ); + // + // twoFramesDifferenceToolStripMenuItem + // + this.twoFramesDifferenceToolStripMenuItem.Name = "twoFramesDifferenceToolStripMenuItem"; + this.twoFramesDifferenceToolStripMenuItem.Size = new System.Drawing.Size( 231, 22 ); + this.twoFramesDifferenceToolStripMenuItem.Text = "Two Frames Difference"; + this.twoFramesDifferenceToolStripMenuItem.Click += new System.EventHandler( this.twoFramesDifferenceToolStripMenuItem_Click ); + // + // simpleBackgroundModelingToolStripMenuItem + // + this.simpleBackgroundModelingToolStripMenuItem.Name = "simpleBackgroundModelingToolStripMenuItem"; + this.simpleBackgroundModelingToolStripMenuItem.Size = new System.Drawing.Size( 231, 22 ); + this.simpleBackgroundModelingToolStripMenuItem.Text = "Simple Background Modeling"; + this.simpleBackgroundModelingToolStripMenuItem.Click += new System.EventHandler( this.simpleBackgroundModelingToolStripMenuItem_Click ); + // + // motionProcessingAlgorithmToolStripMenuItem + // + this.motionProcessingAlgorithmToolStripMenuItem.DropDownItems.AddRange( new System.Windows.Forms.ToolStripItem[] { + this.noneToolStripMenuItem2, + this.motionAreaHighlightingToolStripMenuItem, + this.motionBorderHighlightingToolStripMenuItem, + this.blobCountingToolStripMenuItem, + this.gridMotionAreaProcessingToolStripMenuItem} ); + this.motionProcessingAlgorithmToolStripMenuItem.Name = "motionProcessingAlgorithmToolStripMenuItem"; + this.motionProcessingAlgorithmToolStripMenuItem.Size = new System.Drawing.Size( 230, 22 ); + this.motionProcessingAlgorithmToolStripMenuItem.Text = "Motion Processing Algorithm"; + // + // noneToolStripMenuItem2 + // + this.noneToolStripMenuItem2.Name = "noneToolStripMenuItem2"; + this.noneToolStripMenuItem2.Size = new System.Drawing.Size( 225, 22 ); + this.noneToolStripMenuItem2.Text = "None"; + this.noneToolStripMenuItem2.Click += new System.EventHandler( this.noneToolStripMenuItem2_Click ); + // + // motionAreaHighlightingToolStripMenuItem + // + this.motionAreaHighlightingToolStripMenuItem.Name = "motionAreaHighlightingToolStripMenuItem"; + this.motionAreaHighlightingToolStripMenuItem.Size = new System.Drawing.Size( 225, 22 ); + this.motionAreaHighlightingToolStripMenuItem.Text = "Motion Area Highlighting"; + this.motionAreaHighlightingToolStripMenuItem.Click += new System.EventHandler( this.motionAreaHighlightingToolStripMenuItem_Click ); + // + // motionBorderHighlightingToolStripMenuItem + // + this.motionBorderHighlightingToolStripMenuItem.Name = "motionBorderHighlightingToolStripMenuItem"; + this.motionBorderHighlightingToolStripMenuItem.Size = new System.Drawing.Size( 225, 22 ); + this.motionBorderHighlightingToolStripMenuItem.Text = "Motion Border Highlighting"; + this.motionBorderHighlightingToolStripMenuItem.Click += new System.EventHandler( this.motionBorderHighlightingToolStripMenuItem_Click ); + // + // blobCountingToolStripMenuItem + // + this.blobCountingToolStripMenuItem.Name = "blobCountingToolStripMenuItem"; + this.blobCountingToolStripMenuItem.Size = new System.Drawing.Size( 225, 22 ); + this.blobCountingToolStripMenuItem.Text = "Blob Counting Processing"; + this.blobCountingToolStripMenuItem.Click += new System.EventHandler( this.blobCountingToolStripMenuItem_Click ); + // + // gridMotionAreaProcessingToolStripMenuItem + // + this.gridMotionAreaProcessingToolStripMenuItem.Name = "gridMotionAreaProcessingToolStripMenuItem"; + this.gridMotionAreaProcessingToolStripMenuItem.Size = new System.Drawing.Size( 225, 22 ); + this.gridMotionAreaProcessingToolStripMenuItem.Text = "Grid Motion Area Processing"; + this.gridMotionAreaProcessingToolStripMenuItem.Click += new System.EventHandler( this.gridMotionAreaProcessingToolStripMenuItem_Click ); + // + // toolStripMenuItem2 + // + this.toolStripMenuItem2.Name = "toolStripMenuItem2"; + this.toolStripMenuItem2.Size = new System.Drawing.Size( 227, 6 ); + // + // defineMotionregionsToolStripMenuItem + // + this.defineMotionregionsToolStripMenuItem.Name = "defineMotionregionsToolStripMenuItem"; + this.defineMotionregionsToolStripMenuItem.Size = new System.Drawing.Size( 230, 22 ); + this.defineMotionregionsToolStripMenuItem.Text = "Define motion ®ions"; + this.defineMotionregionsToolStripMenuItem.Click += new System.EventHandler( this.defineMotionregionsToolStripMenuItem_Click ); + // + // toolStripMenuItem3 + // + this.toolStripMenuItem3.Name = "toolStripMenuItem3"; + this.toolStripMenuItem3.Size = new System.Drawing.Size( 227, 6 ); + // + // showMotionHistoryToolStripMenuItem + // + this.showMotionHistoryToolStripMenuItem.Name = "showMotionHistoryToolStripMenuItem"; + this.showMotionHistoryToolStripMenuItem.Size = new System.Drawing.Size( 230, 22 ); + this.showMotionHistoryToolStripMenuItem.Text = "Show motion history"; + this.showMotionHistoryToolStripMenuItem.Click += new System.EventHandler( this.showMotionHistoryToolStripMenuItem_Click ); + // + // toolsToolStripMenuItem + // + this.toolsToolStripMenuItem.DropDownItems.AddRange( new System.Windows.Forms.ToolStripItem[] { + this.localVideoCaptureSettingsToolStripMenuItem, + this.crossbarVideoSettingsToolStripMenuItem} ); + this.toolsToolStripMenuItem.Name = "toolsToolStripMenuItem"; + this.toolsToolStripMenuItem.Size = new System.Drawing.Size( 48, 20 ); + this.toolsToolStripMenuItem.Text = "&Tools"; + this.toolsToolStripMenuItem.DropDownOpening += new System.EventHandler( this.toolsToolStripMenuItem_DropDownOpening ); + // + // localVideoCaptureSettingsToolStripMenuItem + // + this.localVideoCaptureSettingsToolStripMenuItem.Name = "localVideoCaptureSettingsToolStripMenuItem"; + this.localVideoCaptureSettingsToolStripMenuItem.Size = new System.Drawing.Size( 225, 22 ); + this.localVideoCaptureSettingsToolStripMenuItem.Text = "Local &Video Capture Settings"; + this.localVideoCaptureSettingsToolStripMenuItem.Click += new System.EventHandler( this.localVideoCaptureSettingsToolStripMenuItem_Click ); + // + // crossbarVideoSettingsToolStripMenuItem + // + this.crossbarVideoSettingsToolStripMenuItem.Name = "crossbarVideoSettingsToolStripMenuItem"; + this.crossbarVideoSettingsToolStripMenuItem.Size = new System.Drawing.Size( 225, 22 ); + this.crossbarVideoSettingsToolStripMenuItem.Text = "Crossbar Video Settings"; + this.crossbarVideoSettingsToolStripMenuItem.Click += new System.EventHandler( this.crossbarVideoSettingsToolStripMenuItem_Click ); + // + // helpToolStripMenuItem + // + this.helpToolStripMenuItem.DropDownItems.AddRange( new System.Windows.Forms.ToolStripItem[] { + this.aboutToolStripMenuItem} ); + this.helpToolStripMenuItem.Name = "helpToolStripMenuItem"; + this.helpToolStripMenuItem.Size = new System.Drawing.Size( 44, 20 ); + this.helpToolStripMenuItem.Text = "&Help"; + // + // aboutToolStripMenuItem + // + this.aboutToolStripMenuItem.Name = "aboutToolStripMenuItem"; + this.aboutToolStripMenuItem.Size = new System.Drawing.Size( 107, 22 ); + this.aboutToolStripMenuItem.Text = "&About"; + this.aboutToolStripMenuItem.Click += new System.EventHandler( this.aboutToolStripMenuItem_Click ); + // + // openFileDialog + // + this.openFileDialog.Filter = "AVI files (*.avi)|*.avi|All files (*.*)|*.*"; + this.openFileDialog.Title = "Opem movie"; + // + // timer + // + this.timer.Interval = 1000; + this.timer.Tick += new System.EventHandler( this.timer_Tick ); + // + // statusBar + // + this.statusBar.Items.AddRange( new System.Windows.Forms.ToolStripItem[] { + this.fpsLabel, + this.objectsCountLabel} ); + this.statusBar.Location = new System.Drawing.Point( 0, 334 ); + this.statusBar.Name = "statusBar"; + this.statusBar.Size = new System.Drawing.Size( 432, 22 ); + this.statusBar.TabIndex = 3; + // + // fpsLabel + // + this.fpsLabel.AutoSize = false; + this.fpsLabel.BorderSides = ( (System.Windows.Forms.ToolStripStatusLabelBorderSides) ( ( ( ( System.Windows.Forms.ToolStripStatusLabelBorderSides.Left | System.Windows.Forms.ToolStripStatusLabelBorderSides.Top ) + | System.Windows.Forms.ToolStripStatusLabelBorderSides.Right ) + | System.Windows.Forms.ToolStripStatusLabelBorderSides.Bottom ) ) ); + this.fpsLabel.BorderStyle = System.Windows.Forms.Border3DStyle.SunkenInner; + this.fpsLabel.Name = "fpsLabel"; + this.fpsLabel.Size = new System.Drawing.Size( 150, 17 ); + this.fpsLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // objectsCountLabel + // + this.objectsCountLabel.BorderSides = ( (System.Windows.Forms.ToolStripStatusLabelBorderSides) ( ( ( ( System.Windows.Forms.ToolStripStatusLabelBorderSides.Left | System.Windows.Forms.ToolStripStatusLabelBorderSides.Top ) + | System.Windows.Forms.ToolStripStatusLabelBorderSides.Right ) + | System.Windows.Forms.ToolStripStatusLabelBorderSides.Bottom ) ) ); + this.objectsCountLabel.BorderStyle = System.Windows.Forms.Border3DStyle.SunkenInner; + this.objectsCountLabel.Name = "objectsCountLabel"; + this.objectsCountLabel.Size = new System.Drawing.Size( 267, 17 ); + this.objectsCountLabel.Spring = true; + this.objectsCountLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // panel1 + // + this.panel1.Controls.Add( this.videoSourcePlayer ); + this.panel1.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel1.Location = new System.Drawing.Point( 0, 24 ); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size( 432, 310 ); + this.panel1.TabIndex = 4; + // + // videoSourcePlayer + // + this.videoSourcePlayer.AutoSizeControl = true; + this.videoSourcePlayer.BackColor = System.Drawing.SystemColors.ControlDarkDark; + this.videoSourcePlayer.ForeColor = System.Drawing.Color.White; + this.videoSourcePlayer.Location = new System.Drawing.Point( 55, 34 ); + this.videoSourcePlayer.Name = "videoSourcePlayer"; + this.videoSourcePlayer.Size = new System.Drawing.Size( 322, 242 ); + this.videoSourcePlayer.TabIndex = 0; + this.videoSourcePlayer.VideoSource = null; + this.videoSourcePlayer.NewFrame += new AForge.Controls.VideoSourcePlayer.NewFrameHandler( this.videoSourcePlayer_NewFrame ); + // + // alarmTimer + // + this.alarmTimer.Interval = 200; + this.alarmTimer.Tick += new System.EventHandler( this.alarmTimer_Tick ); + // + // MainForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF( 6F, 13F ); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size( 432, 356 ); + this.Controls.Add( this.panel1 ); + this.Controls.Add( this.statusBar ); + this.Controls.Add( this.menuMenu ); + this.Icon = ( (System.Drawing.Icon) ( resources.GetObject( "$this.Icon" ) ) ); + this.MainMenuStrip = this.menuMenu; + this.Name = "MainForm"; + this.Text = "Motion Detector"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler( this.MainForm_FormClosing ); + this.menuMenu.ResumeLayout( false ); + this.menuMenu.PerformLayout( ); + this.statusBar.ResumeLayout( false ); + this.statusBar.PerformLayout( ); + this.panel1.ResumeLayout( false ); + this.ResumeLayout( false ); + this.PerformLayout( ); + + } + + #endregion + + private System.Windows.Forms.MenuStrip menuMenu; + private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem openToolStripMenuItem; + private System.Windows.Forms.ToolStripSeparator toolStripMenuItem1; + private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem motionToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem helpToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem aboutToolStripMenuItem; + private System.Windows.Forms.OpenFileDialog openFileDialog; + private System.Windows.Forms.Timer timer; + private System.Windows.Forms.StatusStrip statusBar; + private System.Windows.Forms.ToolStripStatusLabel fpsLabel; + private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.ToolStripMenuItem openJPEGURLToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem openMJPEGURLToolStripMenuItem; + private System.Windows.Forms.ToolStripSeparator toolStripMenuItem2; + private System.Windows.Forms.ToolStripMenuItem localVideoCaptureDeviceToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem openVideoFileusingDirectShowToolStripMenuItem; + private System.Windows.Forms.ToolStripStatusLabel objectsCountLabel; + private System.Windows.Forms.ToolStripMenuItem defineMotionregionsToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem toolsToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem localVideoCaptureSettingsToolStripMenuItem; + private AForge.Controls.VideoSourcePlayer videoSourcePlayer; + private System.Windows.Forms.ToolStripMenuItem motionDetectionAlgorithmToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem noneToolStripMenuItem1; + private System.Windows.Forms.ToolStripMenuItem twoFramesDifferenceToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem simpleBackgroundModelingToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem motionProcessingAlgorithmToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem noneToolStripMenuItem2; + private System.Windows.Forms.ToolStripMenuItem motionBorderHighlightingToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem blobCountingToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem gridMotionAreaProcessingToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem motionAreaHighlightingToolStripMenuItem; + private System.Windows.Forms.Timer alarmTimer; + private System.Windows.Forms.ToolStripSeparator toolStripMenuItem3; + private System.Windows.Forms.ToolStripMenuItem showMotionHistoryToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem crossbarVideoSettingsToolStripMenuItem; + } +} + diff --git a/Samples/Vision/MotionDetector/MainForm.cs b/Samples/Vision/MotionDetector/MainForm.cs new file mode 100644 index 00000000..d71d12be --- /dev/null +++ b/Samples/Vision/MotionDetector/MainForm.cs @@ -0,0 +1,552 @@ +// Motion Detection sample application +// AForge.NET Framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2006-2012 +// contacts@aforgenet.com +// + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Drawing.Imaging; +using System.Text; +using System.Windows.Forms; +using System.Threading; + +using AForge; +using AForge.Imaging; +using AForge.Video; +using AForge.Video.VFW; +using AForge.Video.DirectShow; +using AForge.Vision.Motion; + +namespace MotionDetectorSample +{ + public partial class MainForm : Form + { + // opened video source + private IVideoSource videoSource = null; + // motion detector + MotionDetector detector = new MotionDetector( + new TwoFramesDifferenceDetector( ), + new MotionAreaHighlighting( ) ); + // motion detection and processing algorithm + private int motionDetectionType = 1; + private int motionProcessingType = 1; + + // statistics length + private const int statLength = 15; + // current statistics index + private int statIndex = 0; + // ready statistics values + private int statReady = 0; + // statistics array + private int[] statCount = new int[statLength]; + + // counter used for flashing + private int flash = 0; + private float motionAlarmLevel = 0.015f; + + private List motionHistory = new List( ); + private int detectedObjectsCount = -1; + + // Constructor + public MainForm( ) + { + InitializeComponent( ); + Application.Idle += new EventHandler( Application_Idle ); + } + + // Application's main form is closing + private void MainForm_FormClosing( object sender, FormClosingEventArgs e ) + { + CloseVideoSource( ); + } + + // "Exit" menu item clicked + private void exitToolStripMenuItem_Click( object sender, EventArgs e ) + { + this.Close( ); + } + + // "About" menu item clicked + private void aboutToolStripMenuItem_Click( object sender, EventArgs e ) + { + AboutForm form = new AboutForm( ); + form.ShowDialog( ); + } + + // "Open" menu item clieck - open AVI file + private void openToolStripMenuItem_Click( object sender, EventArgs e ) + { + if ( openFileDialog.ShowDialog( ) == DialogResult.OK ) + { + // create video source + AVIFileVideoSource fileSource = new AVIFileVideoSource( openFileDialog.FileName ); + + OpenVideoSource( fileSource ); + } + } + + // Open JPEG URL + private void openJPEGURLToolStripMenuItem_Click( object sender, EventArgs e ) + { + URLForm form = new URLForm( ); + + form.Description = "Enter URL of an updating JPEG from a web camera:"; + form.URLs = new string[] + { + "http://195.243.185.195/axis-cgi/jpg/image.cgi?camera=1" + }; + + if ( form.ShowDialog( this ) == DialogResult.OK ) + { + // create video source + JPEGStream jpegSource = new JPEGStream( form.URL ); + + // open it + OpenVideoSource( jpegSource ); + } + } + + // Open MJPEG URL + private void openMJPEGURLToolStripMenuItem_Click( object sender, EventArgs e ) + { + URLForm form = new URLForm( ); + + form.Description = "Enter URL of an MJPEG video stream:"; + form.URLs = new string[] + { + "http://195.243.185.195/axis-cgi/mjpg/video.cgi?camera=3", + "http://195.243.185.195/axis-cgi/mjpg/video.cgi?camera=4", + }; + + if ( form.ShowDialog( this ) == DialogResult.OK ) + { + // create video source + MJPEGStream mjpegSource = new MJPEGStream( form.URL ); + + // open it + OpenVideoSource( mjpegSource ); + } + } + + // Open local video capture device + private void localVideoCaptureDeviceToolStripMenuItem_Click( object sender, EventArgs e ) + { + VideoCaptureDeviceForm form = new VideoCaptureDeviceForm( ); + + if ( form.ShowDialog( this ) == DialogResult.OK ) + { + // create video source + VideoCaptureDevice videoSource = new VideoCaptureDevice( form.VideoDevice ); + + // open it + OpenVideoSource( videoSource ); + } + } + + // Open video file using DirectShow + private void openVideoFileusingDirectShowToolStripMenuItem_Click( object sender, EventArgs e ) + { + if ( openFileDialog.ShowDialog( ) == DialogResult.OK ) + { + // create video source + FileVideoSource fileSource = new FileVideoSource( openFileDialog.FileName ); + + // open it + OpenVideoSource( fileSource ); + } + } + + // Open video source + private void OpenVideoSource( IVideoSource source ) + { + // set busy cursor + this.Cursor = Cursors.WaitCursor; + + // close previous video source + CloseVideoSource( ); + + // start new video source + videoSourcePlayer.VideoSource = new AsyncVideoSource( source ); + videoSourcePlayer.Start( ); + + // reset statistics + statIndex = statReady = 0; + + // start timers + timer.Start( ); + alarmTimer.Start( ); + + videoSource = source; + + this.Cursor = Cursors.Default; + } + + // Close current video source + private void CloseVideoSource( ) + { + // set busy cursor + this.Cursor = Cursors.WaitCursor; + + // stop current video source + videoSourcePlayer.SignalToStop( ); + + // wait 2 seconds until camera stops + for ( int i = 0; ( i < 50 ) && ( videoSourcePlayer.IsRunning ); i++ ) + { + Thread.Sleep( 100 ); + } + if ( videoSourcePlayer.IsRunning ) + videoSourcePlayer.Stop( ); + + // stop timers + timer.Stop( ); + alarmTimer.Stop( ); + + motionHistory.Clear( ); + + // reset motion detector + if ( detector != null ) + detector.Reset( ); + + videoSourcePlayer.BorderColor = Color.Black; + this.Cursor = Cursors.Default; + } + + // New frame received by the player + private void videoSourcePlayer_NewFrame( object sender, ref Bitmap image ) + { + lock ( this ) + { + if ( detector != null ) + { + float motionLevel = detector.ProcessFrame( image ); + + if ( motionLevel > motionAlarmLevel ) + { + // flash for 2 seconds + flash = (int) ( 2 * ( 1000 / alarmTimer.Interval ) ); + } + + // check objects' count + if ( detector.MotionProcessingAlgorithm is BlobCountingObjectsProcessing ) + { + BlobCountingObjectsProcessing countingDetector = (BlobCountingObjectsProcessing) detector.MotionProcessingAlgorithm; + detectedObjectsCount = countingDetector.ObjectsCount; + } + else + { + detectedObjectsCount = -1; + } + + // accumulate history + motionHistory.Add( motionLevel ); + if ( motionHistory.Count > 300 ) + { + motionHistory.RemoveAt( 0 ); + } + + if ( showMotionHistoryToolStripMenuItem.Checked ) + DrawMotionHistory( image ); + } + } + } + + // Update some UI elements + private void Application_Idle( object sender, EventArgs e ) + { + objectsCountLabel.Text = ( detectedObjectsCount < 0 ) ? string.Empty : "Objects: " + detectedObjectsCount; + } + + // Draw motion history + private void DrawMotionHistory( Bitmap image ) + { + Color greenColor = Color.FromArgb( 128, 0, 255, 0); + Color yellowColor = Color.FromArgb( 128, 255, 255, 0 ); + Color redColor = Color.FromArgb( 128, 255, 0, 0 ); + + BitmapData bitmapData = image.LockBits( new Rectangle( 0, 0, image.Width, image.Height ), + ImageLockMode.ReadWrite, image.PixelFormat ); + + int t1 = (int) ( motionAlarmLevel * 500 ); + int t2 = (int) ( 0.075 * 500 ); + + for ( int i = 1, n = motionHistory.Count; i <= n; i++ ) + { + int motionBarLength = (int) ( motionHistory[n - i] * 500 ); + + if ( motionBarLength == 0 ) + continue; + + if ( motionBarLength > 50 ) + motionBarLength = 50; + + Drawing.Line( bitmapData, + new IntPoint( image.Width - i, image.Height - 1 ), + new IntPoint( image.Width - i, image.Height - 1 - motionBarLength ), + greenColor ); + + if ( motionBarLength > t1 ) + { + Drawing.Line( bitmapData, + new IntPoint( image.Width - i, image.Height - 1 - t1 ), + new IntPoint( image.Width - i, image.Height - 1 - motionBarLength ), + yellowColor ); + } + + if ( motionBarLength > t2 ) + { + Drawing.Line( bitmapData, + new IntPoint( image.Width - i, image.Height - 1 - t2 ), + new IntPoint( image.Width - i, image.Height - 1 - motionBarLength ), + redColor ); + } + } + + image.UnlockBits( bitmapData ); + } + + // On timer event - gather statistics + private void timer_Tick( object sender, EventArgs e ) + { + IVideoSource videoSource = videoSourcePlayer.VideoSource; + + if ( videoSource != null ) + { + // get number of frames for the last second + statCount[statIndex] = videoSource.FramesReceived; + + // increment indexes + if ( ++statIndex >= statLength ) + statIndex = 0; + if ( statReady < statLength ) + statReady++; + + float fps = 0; + + // calculate average value + for ( int i = 0; i < statReady; i++ ) + { + fps += statCount[i]; + } + fps /= statReady; + + statCount[statIndex] = 0; + + fpsLabel.Text = fps.ToString( "F2" ) + " fps"; + } + } + + // Turn off motion detection + private void noneToolStripMenuItem1_Click( object sender, EventArgs e ) + { + motionDetectionType = 0; + SetMotionDetectionAlgorithm( null ); + } + + // Set Two Frames Difference motion detection algorithm + private void twoFramesDifferenceToolStripMenuItem_Click( object sender, EventArgs e ) + { + motionDetectionType = 1; + SetMotionDetectionAlgorithm( new TwoFramesDifferenceDetector( ) ); + } + + // Set Simple Background Modeling motion detection algorithm + private void simpleBackgroundModelingToolStripMenuItem_Click( object sender, EventArgs e ) + { + motionDetectionType = 2; + SetMotionDetectionAlgorithm( new SimpleBackgroundModelingDetector( true, true ) ); + } + + // Turn off motion processing + private void noneToolStripMenuItem2_Click( object sender, EventArgs e ) + { + motionProcessingType = 0; + SetMotionProcessingAlgorithm( null ); + } + + // Set motion area highlighting + private void motionAreaHighlightingToolStripMenuItem_Click( object sender, EventArgs e ) + { + motionProcessingType = 1; + SetMotionProcessingAlgorithm( new MotionAreaHighlighting( ) ); + } + + // Set motion borders highlighting + private void motionBorderHighlightingToolStripMenuItem_Click( object sender, EventArgs e ) + { + motionProcessingType = 2; + SetMotionProcessingAlgorithm( new MotionBorderHighlighting( ) ); + } + + // Set objects' counter + private void blobCountingToolStripMenuItem_Click( object sender, EventArgs e ) + { + motionProcessingType = 3; + SetMotionProcessingAlgorithm( new BlobCountingObjectsProcessing( ) ); + } + + // Set grid motion processing + private void gridMotionAreaProcessingToolStripMenuItem_Click( object sender, EventArgs e ) + { + motionProcessingType = 4; + SetMotionProcessingAlgorithm( new GridMotionAreaProcessing( 32, 32 ) ); + } + + // Set new motion detection algorithm + private void SetMotionDetectionAlgorithm( IMotionDetector detectionAlgorithm ) + { + lock ( this ) + { + detector.MotionDetectionAlgorithm = detectionAlgorithm; + motionHistory.Clear( ); + + if ( detectionAlgorithm is TwoFramesDifferenceDetector ) + { + if ( + ( detector.MotionProcessingAlgorithm is MotionBorderHighlighting ) || + ( detector.MotionProcessingAlgorithm is BlobCountingObjectsProcessing ) ) + { + motionProcessingType = 1; + SetMotionProcessingAlgorithm( new MotionAreaHighlighting( ) ); + } + } + } + } + + // Set new motion processing algorithm + private void SetMotionProcessingAlgorithm( IMotionProcessing processingAlgorithm ) + { + lock ( this ) + { + detector.MotionProcessingAlgorithm = processingAlgorithm; + } + } + + // Motion menu is opening + private void motionToolStripMenuItem_DropDownOpening( object sender, EventArgs e ) + { + ToolStripMenuItem[] motionDetectionItems = new ToolStripMenuItem[] + { + noneToolStripMenuItem1, twoFramesDifferenceToolStripMenuItem, + simpleBackgroundModelingToolStripMenuItem + }; + ToolStripMenuItem[] motionProcessingItems = new ToolStripMenuItem[] + { + noneToolStripMenuItem2, motionAreaHighlightingToolStripMenuItem, + motionBorderHighlightingToolStripMenuItem, blobCountingToolStripMenuItem, + gridMotionAreaProcessingToolStripMenuItem + }; + + for ( int i = 0; i < motionDetectionItems.Length; i++ ) + { + motionDetectionItems[i].Checked = ( i == motionDetectionType ); + } + for ( int i = 0; i < motionProcessingItems.Length; i++ ) + { + motionProcessingItems[i].Checked = ( i == motionProcessingType ); + } + + // enable/disable some motion processing algorithm depending on detection algorithm + bool enabled = ( motionDetectionType != 1 ); + motionBorderHighlightingToolStripMenuItem.Enabled = enabled; + blobCountingToolStripMenuItem.Enabled = enabled; + } + + // On "Define motion regions" menu item selected + private void defineMotionregionsToolStripMenuItem_Click( object sender, EventArgs e ) + { + if ( videoSourcePlayer.VideoSource != null ) + { + Bitmap currentVideoFrame = videoSourcePlayer.GetCurrentVideoFrame( ); + + if ( currentVideoFrame != null ) + { + MotionRegionsForm form = new MotionRegionsForm( ); + form.VideoFrame = currentVideoFrame; + form.MotionRectangles = detector.MotionZones; + + // show the dialog + if ( form.ShowDialog( this ) == DialogResult.OK ) + { + Rectangle[] rects = form.MotionRectangles; + + if ( rects.Length == 0 ) + rects = null; + + detector.MotionZones = rects; + } + + return; + } + } + + MessageBox.Show( "It is required to start video source and receive at least first video frame before setting motion zones.", + "Message", MessageBoxButtons.OK, MessageBoxIcon.Information ); + } + + // On opening of Tools menu + private void toolsToolStripMenuItem_DropDownOpening( object sender, EventArgs e ) + { + localVideoCaptureSettingsToolStripMenuItem.Enabled = + ( ( videoSource != null ) && ( videoSource is VideoCaptureDevice ) ); + crossbarVideoSettingsToolStripMenuItem.Enabled = + ( ( videoSource != null ) && ( videoSource is VideoCaptureDevice ) && ( videoSource.IsRunning ) ); + } + + // Display properties of local capture device + private void localVideoCaptureSettingsToolStripMenuItem_Click( object sender, EventArgs e ) + { + if ( ( videoSource != null ) && ( videoSource is VideoCaptureDevice ) ) + { + try + { + ( (VideoCaptureDevice) videoSource ).DisplayPropertyPage( this.Handle ); + } + catch ( NotSupportedException ex ) + { + MessageBox.Show( ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error ); + } + } + } + + // Display properties of crossbar filter + private void crossbarVideoSettingsToolStripMenuItem_Click( object sender, EventArgs e ) + { + if ( ( videoSource != null ) && ( videoSource is VideoCaptureDevice ) && ( videoSource.IsRunning ) ) + { + Console.WriteLine( "Current input: " + ( (VideoCaptureDevice) videoSource ).CrossbarVideoInput ); + + try + { + ( (VideoCaptureDevice) videoSource ).DisplayCrossbarPropertyPage( this.Handle ); + } + catch ( NotSupportedException ex ) + { + MessageBox.Show( ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error ); + } + } + } + + // Timer used for flashing in the case if motion is detected + private void alarmTimer_Tick( object sender, EventArgs e ) + { + if ( flash != 0 ) + { + videoSourcePlayer.BorderColor = ( flash % 2 == 1 ) ? Color.Black : Color.Red; + flash--; + } + } + + // Change status of menu item when it is clicked + private void showMotionHistoryToolStripMenuItem_Click( object sender, EventArgs e ) + { + showMotionHistoryToolStripMenuItem.Checked = !showMotionHistoryToolStripMenuItem.Checked; + } + } +} \ No newline at end of file diff --git a/Samples/Vision/MotionDetector/MainForm.resx b/Samples/Vision/MotionDetector/MainForm.resx new file mode 100644 index 00000000..a0e7d0ef --- /dev/null +++ b/Samples/Vision/MotionDetector/MainForm.resx @@ -0,0 +1,585 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 124, 17 + + + 248, 17 + + + 325, 17 + + + 426, 17 + + + + + AAABAAgAEBAAAAEACABoBQAAhgAAABAQAAABACAAaAQAAO4FAAAYGAAAAQAIAMgGAABWCgAAGBgAAAEA + IACICQAAHhEAACAgAAABAAgAqAgAAKYaAAAgIAAAAQAgAKgQAABOIwAAMDAAAAEACACoDgAA9jMAADAw + AAABACAAqCUAAJ5CAAAoAAAAEAAAACAAAAABAAgAAAAAAEABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + /wAz1G4A2mlpAIclAAC3uLgAZmprACuKMAA+MDAA/JeXAI6QkQBg6ZQA7svLAGunZgBKGAAAkdKfAGs4 + IQAhGBQATFBSAK9lZQB+UVEA4urqAGHHfQCLeG8APqNIACi8VQDbtrYA2ZmZAM3T0wDsg4MArJmZAGck + AwDFVlYASsFrAFArGQDFd3cAZVlSAJa6lwBUP0EATemEAK3ApACCgoIAqampAD+OQQDFxcUAdnZ2AJmg + oAAtoT4A3NzcAHWidgCYhYUA9PT0AG20cwA5wVoAg82VADI5OQDqm5sA1nZ2AG5jXgCEXFwAyWFhAHYi + AADlvb0ASEdIAFxPTwDhyMgA5Xt7APaJiQC5a2sAl5eXAJJ9fQBFmUgANapEAEbKcgCDd3cA7O/vAN2S + kgDqxMQAiYqKAK+vrwA4izoAur+/AMfMzADccHAA1tbWAHx8fACyp6cA5OTkAPyRkQBP7YsA08/PANNm + ZgBOS0sAaFxYAGdhXgDp6uoAbyIAAKCgoABWUEwASE1NAC6PMwD3+PgAgoaGAC6GMgA10GsAcnN0AN/f + 3wDCwsIAsrKyAKysrACmpqYAnJ2dAI2NjQCId3cA+JOTAOjt7QDj5+cAyMnJANPU1AB4eHkA7sTEADCM + MwCdoKIA0dHRAH5+fgCZmZkAlZWVACe/VgDp7+8A78nJAMbHxwCEhIUAioyMAO7u7gDKysoA25OTALm3 + twB5enoALIgwAC2KMQBBjkIA3d3dAKurqwCdnp4AmpiYAJaWlgCMjo4ASExMAKytrQBydHUAd3h4AKan + pwDo6uoAfX5+AIqKigAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAH18KYZ5izEAAAAAAAAAYZpuhnWYZAs1RwAAAAAAAH5qMI1SQQdJAidI + AAAAAABhhVSCVj6KIX9oWS8AAACRiXpFjx5NZzYWGRglAAAAlRcQEpIygVAPNA0+kAAAVQpgBCRpLgwr + jCh4IEoAAJY6Hz1dg1FMiAVmkxNxAAB3YiIOBk8cOCNcN2NARgAAVS0RXoR2dQlYQ0Q7FCYAAABOmZRr + MHOHch1CUwMIAAAAACwzVwFldBobOVs8PwAAAACObCx7al9LgBVadnAAAAAAAAAAAGFhKmxtl28AAAAA + AAAAAAAAAAAAAAAAAAD//wAA+A8AAOAHAADgAwAA4AEAAMABAADAAQAAgAEAAIABAACAAQAAgAEAAMAB + AADgAQAA4AEAAP4DAAD//wAAKAAAABAAAAAgAAAAAQAgAAAAAABABAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAcnJyB25ublNra2uygoKC98/Pz+QvjTL6I4ko6yuTLm4AAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAhoaGWYmJie2mpqb/ysrK/8jJyf/o6ur/Lo8z/2DplP86w1v+KZUtyACX + AAwAAAAAAAAAAAAAAAAAAAAAAAAAAI+Pj8bf39//3Nzc/93d3f/HzMz/4cjI/yuKMP9GynL/M9Ru/03p + hP80rEP6AIoATAAAAAAAAAAAAAAAAAAAAACfn5/R7u7u/9bW1v/Gx8f/sqen/+W9vf8siDD/SsFr/ye/ + Vv810Gv/T+2L/yyiPfwAAAAAAAAAAAAAAAB6enp0ent7+52gov+Xl5f/nZ6e/6yZmf/qxMT/LoYy/4PN + lf9hx33/KLxV/z6jSP+VvZbnAAAAAAAAAAB2dnZMc3V2/ot4b/9rOCH/TFBS/4yOjv+YhYX/78nJ/ziL + Ov+R0p//bbRz/2unZv/lvb3/lpOTwgAAAAAAAAAAa2trvI6Qkf9vIgD/hyUA/2VZUv9yc3T/maCg/+7L + y/8/jkH/QY5C/63ApP/uxMT/xVZW/3pra8sAAAAAAAAAAHV2dvFuY17/ZyQD/3YiAP9oXFj/hISF/7q/ + v//dkpL/ube3/7e4uP+Chob/SExM/69lZf+BbGzRAAAAAAAAAAB4eHn1VlBM/1ArGf9KGAD/Zmpr/6+v + r//N09P/6pub/8V3d/9OS0v/Mjk5/0hNTf9cT0//jnR00QAAAAAAAAAAbW5uwXZ2dv8hGBT/Z2Fe/4qM + jP/T1NT/yMnJ//yXl//8kZH/9omJ/7lra/+EXFz/flFR/0gxM+AAAAAAAAAAAIaGhkWKi4v8fX5+/6yt + rf/CwsL/3Nzc/+jt7f/bk5P/+JOT/+yDg//le3v/3HBw/9ppaf86KyvyAAAAAAAAAAAAAAAAqampScfH + x/v09PT/5OTk///////3+Pj/4+fn/9u2tv/ZmZn/1nZ2/9NmZv/JYWH/RURF9gAAAAAAAAAAAAAAAAAA + AACnp6dvs7Oz78XFxf/R0dH/39/f/+nq6v/s7+//6e/v/+Lq6v/Tz8//09TU/4SFhcYAAAAAAAAAAAAA + AAAAAAAAAAAAAP///wGRkZEhlpaWTpKSknuampqoqqqq1bS0tPeurq7rpaamzJSVlaWOjo40AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD//wAA+A8AAOAHAADgAwAA4AEAAMABAADAAQAAgAEAAIABAACAAQAAgAEAAMABAADgAQAA4AEAAP4D + AAD//wAAKAAAABgAAAAwAAAAAQAIAAAAAACgAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8AOdNuAOJ1 + dQCLLQAAC40LAGRkZACf0qkALDc3AO28vACfiYkAPpM+AJtHRwBrp2sAPhIAAMzp0gBt0o8A/ZaWAGw9 + JwC1Z2cAvLGxACh6JABMTEwA0ZeXACq0TwBmGQAAen1/ABSlJwCTrosAdVVFAFmLWQDp6uoAyMjIADMk + HQBQt2cAo6OjAFPUfwBcLBUAebd+AOSmpgCP57MAisyZAFVANgDDV1cA74iIALB5eQDUhYUALJMsANJo + aAAYAAAAY7t2AC/GXwA/MisA3NzcAJVWVgA/QEAAHZQcALDGsADPu60AioqKAJSYmABRjkYAPrZdAHFx + cQAOeAwAWVlZAB+sNgBbnlsAReF+ABuBFwB5JwAAzHp6AHdoYABHyW8A/aOjAGJKPgDes7MA1sDAAK1c + XAC+vr4AkKp7AHvJjwCurq4AJ6ZCAPf39wDR0dEAg3lzAHQ4GwCMR0cAbsF/AEgbBQAUlygAWDgrAHSv + dAB215gAZiUGAOaAgAB2UlIAzq6uAKJVVQAliCwAQ75mAPaPjwA3jDYAp39/ABp1GQBmXVsA6J6eAHDJ + iAA0zmgA58PDAGdsbgDGtbUALH4tALK1tQBOREQA2HFxADc5OQCkkJAAKbxWAFBTUwCCg4MA5OTkAEg+ + PgCenp4Adnd3AK1ycgCRkpIAGYsZANaMjADampoAJY8lAF0dAAAxMTEAQdx5AOW3twBdYGIAH4QfANuo + qAC+aWkA8PHxAHzCiQDBxcUATsVrAJhQUADX19cAurq6AKioqAB0IAAA/p2dAN1+fgBpzokAR0dHADC5 + VgDp7+8A+JqaANeUlAA1yWAAP9V0AMrQ0AAjeR4A9omJAN+urgA/RUUAx62tAJyiogCuZmYAzHR0AJRH + RwD6+voA4Xp6ANRtbQBJu2cANjUzAFS5bADNzMwAF4QTAM9lZQBvVUcA8Y+PAJtVVQCXnJ4Aa8qFANnf + 3wAdehoArrKyAEPDaQBlaGkA6oKCAFFWVwCnrKwAq3t7AJSqhwDui4sAgICAAOzs7ADm5uYA39/fAOh9 + fQBWVlYAmZmZAJOUlAB0dHQAjo6OAHp6egCEiIgAfSYAAGpsbABhGgAAQ7pjAHNlYAAtvlgA3nd3AOLm + 5gBxOh4AiouMANLU1ADPzs4AL8JdAMRaWgAwNjYA4rKyAExSUgClpqYALjMzAB6QHAAzODgA6bm5AMbG + xgAwy2UA1WpqANB5eQBLTk8AhYWFAIgrAAA+Pj4A4eHhANnZ2QAdfxkA+IuLAD3XcgC8vLwA2nNzAFRV + VQCwsLAA0GpqAKqqqgCfn58AnJubAG9wcACWlpYA1dXVAMvKygAyyGEAhoeIABiBGAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB5P33IXTgLAAAAAAAAAAAAAAAAAAB/ff6TII7t4SiPBQ0AAAAA + AAAAAAAAAHmTIFVV2U/VgF4knhsvAAAAAAAAAAAAyZKRkZE1kY5NsBBJbYadBUMAAAAAAAAAya/sxe37 + 2HaKRZe6M23wREKDAAAAAAAAyZHE++RPjmii7rZl0zNtAoYC/wAAAAAAyjXk/PT2ub/duGysmXfa5QL9 + iQAAAADP+X2IN8npvi2HuFGuPhh32ltnOQAAAD/M+FcSb+uTzX7joCkyItFTQFCkIwAAycq11s6USHU7 + ycsJFQeNWWQ9Opw2+gAAzP5WGQTqHejMk6VuFQ8maRyHltu0yQAAP9dLX0bOsr15krlMwHEeUs+9c6dj + fwAAP3kqJYTQ0vN8r46CJ9/+x4VBdXgTyQAA+Xk0XA5aGvOv2Z9roUd7veAWmKOmPAAAfX+tITFqfdeR + r6+bZmbvR2E33giQuwAAycJ56wbXO5Eg7RSVEWYsvMYDi04M4gAAAOn6Bun0kZKRqbcuSmYsYKryqzCo + 3AAAAAD3TyAgI9kBAXrZgbPBYNR09bFY4AAAAAAAfAEBAQGpVFSMmtliF+fmsSsKdQAAAAAAAN/ZNR/D + H8R6esMf1bcgcPxyeQAAAAAAAACT3yOTUvGvNR8fw8PDkeTIAAAAAAAAAAAAAAAAAAAjfPgjI/j6+HwA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8A/4D/APwAPwD4AB8A8AAHAPAAAwDwAAEA8AABAOAA + AQDAAAEAgAABAIAAAQCAAAEAgAABAIAAAQCAAAEAgAABAMAAAQDgAAEA8AABAPgAAQD8AAMA//AHAP// + /wAoAAAAGAAAADAAAAABACAAAAAAAGAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFZWVgNwcHBGbW1tpnBw + cPZ3d3f+lpaW12mxadMTkxLtAIUApACaABYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACEhIQle3t7hXNzc+KHh4f/qamp/8nJyf/ExMT/2tra/x6QHP+P57P/TsVr/wCM + AO0AnQBiAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIqKijCDg4P5p6en/8nJ + yf/R0dH/0dHR/83Nzf++vr7/4+Xl/xmLGf9215j/U9R//z/VdP8UpSf/AIwAvgCnACUAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAH9/f4O5ubn/2NjY/9bW1v/Y2Nj/29vb/9jY2P++xMT/1sDA/xeE + E/9t0o//R8lv/zTOaP9A23j/Nclg/wmNCfwAjgB6AHYABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIOD + g5nMzMz/4eHh/9/f3//Z2dn/1dXV/9LU1P+kkJD/26io/xuBF/9pzon/Q8Np/y/GX/80z2n/Pddy/0Xh + fv8frDb/HY8d7gCMADAAAAAAAAAAAAAAAAAAAAAAAAAAAIODg5rW1tb/5ubm/9XV1f/Gxsb/v7+//8HE + xP+nf3//366u/x1/Gf9ryoX/Q75m/y2+WP8vxV//M81n/znSbf9B3Hn/OtNt/wB7ANwAAAAAAAAAAAAA + AAAAAAAAi4uLLGpqatfc3Nz/xsbG/8rKyv+wsLD/qqqq/66ysv+re3v/4rKy/xx6Gf9wyYj/Sbtn/zC5 + Vv8pvFb/LsJc/zDLZf841G//Mshh/xiDGPEAAAAAAAAAAAAAAACIiIg2aWlp8W9wcP90d3j/XWBi/z9A + QP+VlZX/hYWF/6esrP+weXn/5re3/x55G/97yY//VLls/z62Xf8qtE//KLtV/y/CXv8Ulyj/N4w2/7LQ + srkAAAAAAAAAAHx8fAtra2vgenp7/52bm/90OBv/bD0n/2dsbv8+Pj7/qamp/4SIiP+tcnL/6bm5/yN5 + Hv+KzJn/Y7t2/1C3Z/9DumP/J6ZC/w54DP+Qqnv/x62t/5WXl2IAAAAAAAAAAHBwcG9zc3T/l5ye/3E6 + Hv98JQD/dCAA/3doYP83ODn/iYmJ/5OUlP+Ojo7/7by8/yh6I/+f0qn/fMKJ/27Bf/8liCz/UY5G/8+7 + rf/XlJT/lVZW/3J2dm0AAAAAAAAAAGpqasOGh4j/g3lz/2YZAP+LLQD/iCsA/3VVRf9LTk//enp6/6mp + qf+coqL/58PD/yh6Jf/M6dL/ebd+/xp1Gf+Trov/47e3/91+fv/EWlr/m1VV/3d7e30AAAAAAAAAAG9v + b/OKjI3/Yko+/2YlBv95JwD/fiYA/29VR/9SVVb/goKC/7q6uv+usrL/3rOz/5Sqh/8sfi3/WYtZ/66u + rv9pbGz/UFdX/05ERP/MdHT/olVV/3d8fIIAAAAAAAAAAHBwcP+ChIX/VUA2/1wsFf9dHQD/YRoA/3Nl + YP9TVVX/nZ2d/8zMzP/Cxsb/2pqa/+Smpv+kp6f/hoiI/1ZWVv8xMTH/WVlZ/zc5Of9QU1P/tWdn/3h9 + fYIAAAAAAAAAAHBwcPuCg4T/PzIr/1g4K/8+EgD/SBsF/3p9f/9UVFT/zMzM/83Nzf/K0ND/6J6e//aJ + if/Me3v/SD4+/1FXV/8uMjL/TExM/0dHR/8/RUX/rmZm/36EhIIAAAAAAAAAAGxsbNORkZH/NjUz/zMk + Hf8YAAD/Zl1b/3Z3d/+Li4v/19fX/8zMzP/Ny8v/+Jqa//eQkP/3jo7/+IuL/8x5ef92UlL/PkBA/0xS + Uv8sNzf/mFBQ/zo/QaAAAAAAAAAAAHR0dHOAgID/gYKC/z49Pv9lZWT/iouM/4qKiv/W1tb/ycnJ/9jZ + 2f+8sbH//p2d//2Wlv/2j4//74mJ/+qCgv/ofX3/4nV1/75paf+tXFz/m0dH/yQqKuEAAAAAAAAAAJWV + lQ1/f3/flpaW/2NjY/+Ghob/r6+v/9fX1/+6urr/1tbW//r6+v/Z3t7/1IWF//2jo//0jo7/7oeH/+aA + gP/henr/2nNz/9Rtbf/SaGj/lEdH/yYsLOoAAAAAAAAAAAAAAACsrKwnnp6e1L29vf/Jycn/yMjI/6Sk + pP/Nzc3////////////j4+P/z83N/9aMjP/xj4//7ouL/+WAgP/ed3f/2HFx/9Bqav/PZWX/jEdH/ygt + LfEAAAAAAAAAAAAAAAAAAAAAjIyMBJ2dneD/////////////////////+vr6//b29v/39/f/8PHx/+nv + 7//Rzs7/zq6u/9GXl//QeXn/1Wpq/89kZP/DV1f/n4mJ/zAyMu4AAAAAAAAAAAAAAAAAAAAAAAAAAKqq + qkinp6fyzs7O/93d3f/q6ur/7e3t/+np6f/m5ub/5OTk/+Pj4//r6+v/6Ovr/+Hm5v/Y39//x8fH/8a1 + tf/Lysr/srW1/15eXoUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACjo6MVn5+fWJ+fn4afn5+0qKio4q+v + r/28vLz/zMzM/93d3f/p6en/6urq/+zs7P/t7e3/6+zs/9fY2P/Fxsb/mpqa+Jqamj8AAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKWlpRKXl5c/lZWVbZWVlZuXl5fJpKSk7qWl + pfSZmZnckJCQvI+Pj5yNjY12l5eXIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA////AP+A/wD8AD8A+AAfAPAABwDwAAMA8AABAPAAAQDgAAEAwAABAIAAAQCAAAEAgAABAIAA + AQCAAAEAgAABAIAAAQDAAAEA4AABAPAAAQD4AAEA/AADAP/wBwD///8AKAAAACAAAABAAAAAAQAIAAAA + AACABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8AOdNtAK4+PgD8mZkAGHwYAJLlswCDhIUAZRoAAExN + TQDS09MA1GxsALirkwBKnEoAnDQAAHDIiAAlHxwAcj4jAIRgYAAhtTwA1rOzAG2fbQDDhYUArGdnADuD + LgA5DAAANTY2AOjp6QCam5wAUrdqAOiCggBhY2MAb1BCAI+ccQC0tLQAI5onAFcyMgC9VFQAK79ZAF+H + XgCAKgAAlM6gAFsrFgBP2YEA2J+fAHJzdACheXkAwcXFAHrYmgD+q6sAplNTABkBAAA7KSEAnYqKACp1 + JQCm1K0AYrp1AFuGSACmp6cAxJiYAMSqqgBOGQAAk2pqABWRGgAWExIAhMOOAOu1tQBam1oAzefSANJ7 + ewBAs1wAiVFRAGZZUQBCQkIA6qSkAPSMjADd3d0AS8ZwAI2NjQAxlTEAyV1dAHdrZgD19fUAt6CgADfH + ZABZWVkAKLVPAE4iDQBs2pMAcLx+ALZLSwDNj48A6Hd3AFI8PABb0IEAu2FhAG4gAABoNR0AKTExAF04 + JgCKbmAAHoceAEPefAAepi0A0q2lAKxcXADag4MAe3x8AGprawByT08AMrRVAMrMzAD3o6MAn2ZmAGOd + YwDadHQAdKd0AD8xKgCYk5EA4a+vAC6JMQBZPjEAu7u7AJEvAABRNSgAVKxjAB6TLwAidx4AymVlABOJ + GQBRREQAlnt7AEjkgQDNoKAAE5wfAI6WlgCgoKAA7u/vAJ/PpwA2vF0AwZ+fAJFmZgBKvmkAV7puAE1T + UwCebW0AQklJAHvGiwCsra0AuK+cAM92dgDioKAAI7BGAGUhAgDxgIAAbNCLAPiRkQCHiIgA2dnZANuq + qgDifHwAUMt2AIXKlABdXV0A5OXlAD7MbQA/2XQA+vr6ACiTKADth4cAMcdfADTOaABVGwAAhiwAAD03 + NADCXFwAoHNzAFsxHAB+ZWUA7o2NADw+PwBx1JAAomFhAOt7ewDVcHAARLdhABqDGwDBwMAAKbpTAC+C + LwCwSEgApmpqAHcnAACXl5gAyMjIALy/vwBeMjIASElJAMWTkwB2enoAL8JUANyjowBlX18AgICAABx3 + GgAcjRwAzs/PAOWzswBRUVEAOiUcADI0NAAxyWMALsNdALxQUAC1T08Aa8uHAIpqWwBvb3AAy6qqAOKD + gwA0wWAA0GVlANFqagDNenoAkpOTAItgYADacHAAU1RUABiMGwD4nJwA2KamAD5FRQDdd3cAO7ldAHd3 + dwDf4uIALjAwAKdeXgDPy8sAx8XFALecnABPu2oANxEAAGkeAABfuHEAeWpqAOvs7ADR1tYA/Z2dADk6 + OgBSMTEA8ISEALi4uADohoYATT09ANpsbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAVI6gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfZbAcAAOQGWGcNAAAAAAAA + AAAAAAAAAAAAAAAA4C1rHLt6wdnCPzBeK6o/dAAAAAAAAAAAAAAAAAAAnerBes5v73q7u2+BtaGlAmYT + TwAAAAAAAAAAAAAAAMv8CgoKzgrCuy8vpOSbTVSrAmamhkMAAAAAAAAAAAAcOp4Knp6eTM4vsDIUuteO + 3KqrAqaEyM0AAAAAAAAAAMF6TExMTJ6ezjUDvuYF146LJtOrqwKmZmUAAAAAAAAAwbuk657OwsJvkdbW + nwUP8em8JtTTqwKmZQAAAAAAAADBwhtMb7v8Ii9xJSV3BZOPuW5WvCbTmLoAAAAAAAAAAC3CuzrvOjo6 + w7avr3fMojgdRm5WVoFyAAAAAAAAAIhs2S1s4/mIy8HD7YBQd8wpWfQdjn4YlToAAAAAAAAAbGscZGHZ + VUkiazpp3oDPfzdBk33MISzWawAAAAAAAGtrwdjzYBEt0svBnS7i3kJ/RIp4OWjfJVr1AAAAAAAA2Z12 + CCh7YC1JxXrBh5bigye9NgyXgK+v1bIAAAAAAE5rTiDzKA5gUeP5wjqIFlzQH5TgCT6W/68lsgAAAAAA + a50HsZnArWBRVUkKIpTGt1Ua0NDsxZCC31ASAAAAAAAt4NljrJlgCMdVo567w4WayvlJVRpJo9KS3xIA + AAAAAC3gH3lXPawqa+NOCm9vyfvf5xqjtBqjSbQ+4QAAAAAA6uCjNHzyGUgtVbvOb85KS0vbbZCS7OMJ + 0o2NAAAAAACdBy0QdTPRBy3LTG9v7uWcnEtLHr/+5+NiEsQtAAAAAABswaNArgedy55vb55T+AScS6ke + Hre4F0dfxLQAAAAAAE6IncHgHBwKwrsbG8IeMZxLqR6g6HML3t0k+QAAAAAAAOA641WUpMMingH2pPCc + cEupHqDouAuA3foaAAAAAAAAADrCAZ6UlJ4BAafr6zxqs7P9oHO43oBQXdIAAAAAAAAAAIgBAQEBAaen + UqdSievv2ltF4gvdUF/HGgAAAAAAAAAAADobUlKJifYbpKSk9okb6/e7PDuMCgfqAAAAAAAAAAAAADqI + OiK7zusbGxukpKSk9qRM984K4AAAAAAAAAAAAAAAAAAAAJQ6iDqUesKeG/akns67IsE6AAAAAAAAAAAA + AAAAAAAAAAAAAAAAiIjBwcEciDoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////4///+GD//8AAP/8AAB/+AAAH/AAAA/wA + AAH8AAAB/AAAA/wAAAfwAAAH8AAAB+AAAAfgAAAHwAAAB8AAAAfAAAAHwAAAB8AAAAfAAAAD4AAAA+AA + AAPwAAAD+AAAA/wAAAP+AAAD/wAAB//wAAf//8A///////////8oAAAAIAAAAEAAAAABACAAAAAAAIAQ + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIYAYBmaHesAjQDEAJMANAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAioqKAm9vb0JsbGyiaWlp72hoaO9qamqbb29vIgAAAAAKjA3pkuWz/2za + k/8dpyz8AJAAkgCXAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAg4ODIXh4eIBtbW3eeXl5/5ubm//CwsL/u7u7/5eXl/9vb2/4zs7OzhWQ + Gvx62Jr/W9CB/0/Zgf8yyF3/BJIJ5QCZAFYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAh4eHS3l5eb13d3f9l5eX/7q6uv/Pz8//zMzM/8XFxf+9vb3/wMDA/7+/ + v//MzMz/FIoY/3HUkP9Qy3b/Psxt/zjSbP9D33z/Irc9/gCNALcAogAiAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAIyMjB+BgYH5uLi4/9HR0f/R0dH/0dHR/9DQ0P/T09P/yMjI/7+/ + v//BxcX/wsjI/+Ll5f8Xihv/bNCL/0vGcP83x2T/M8xm/znTbf9D3Xr/Qdpz/w6dG/UAiAB7AJoABgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgoKCZ6enp//Z2dn/1dXV/9fX1//X19f/2tra/9zc + 3P/Nzc3/v8TE/6Bzc/+mU1P/1rOz/xiDGv9pzIf/ScFr/zTBYP8wxmD/NM5o/zjSbP8/2HT/SOSB/y/C + VP8BiAHWAIoAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBgYF/urq6/97e3v/e3t7/3t7e/9zc + 3P/Z2dn/2dnZ/87Q0P+dior/rj4+/7BISP/Ypqb/GH8Y/2zJhv9Kvmn/Nrxd/yu/Wf8vx2H/M8xm/zbQ + av861G7/P9l0/0Pfff8DgQHUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAISEhIDCwsL/5OTk/+Hh + 4f/Y2Nj/zs7O/8jIyP/Hx8f/x8vL/55tbf+3Tk7/tU9P/9uqqv8XfBj/cMiI/0+7av87uV3/KblS/yu+ + WP8uw13/MMlj/zLNZ/83023/O9h1/wKABNYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhISEgMnJ + yf/q6ur/3t7e/8zMzP/BwcH/uLi4/7a2tv/AxMT/n2Zm/75UVP+6VFT/3q2t/xh6F/95x4z/V7pu/0S3 + Yf8ztVb/JrVO/ym6VP8swVv/M8pl/yOwRv8AfQDXAH4AMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIyM + jElra2vhycnJ/8DAwP+lpaX/xcXF/6ioqP+oqKj/pqam/7q/v/+iYWH/wlxc/8BaWv/hr6//GnYa/4XK + lP9iunX/ULZo/0CzXP8xslP/KrZR/ye0Tv8RiBn/YJ5g8wCCAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACHh4djaWlp/HBwcP9vcnP/aGxt/1NUVf86Ojr/oKCg/4GBgf+Wlpb/usDA/6deXv/IZGT/xV9f/+Ox + sf8ddhr/lM6g/3C8fv9fuHH/VLdr/0u6Z/8eky//O4Mu/7ivnP+kqKjpAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAj4+POmpqavp5eXn/l5ud/4puYP9oNR3/cXBw/1lZWf9BQUH/tLS0/3p6ev+jqKj/rFxc/89q + av/LZWX/5bOz/yB3Hf+m1K3/hMOO/3zEiv9UrGP/HHgZ/4+ccf/Yn5//s09P/3l6eu4AAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAFycnLNenp6/5SXmf+Kalv/aRsA/20gAP9yPiP/b3R2/zIzM/+AgID/mZmZ/4aJ + if+heXn/129v/9Fqav/rtbX/I3ce/83n0v+fz6f/Lokx/1uGSP/SraX/zX19/7tVVf+2S0v/emtr+3Bx + cQwAAAAAAAAAAAAAAAAAAAAAhoaGQG5ubv6HiIj/mJOR/2QZAP9+KQD/kS8A/28fAP90dHX/QUJC/0hI + SP+6urr/lpaW/46Wlv/Qdnb/3HBw/5Z7e/9fh17/L4Iv/yp1Jf+4q5P/4qCg/8lmZv/DXV3/wFpa/7xQ + UP99Zmb/cHFxIgAAAAAAAAAAAAAAAAAAAABwcHCPe3t7/4yOj/9vUEL/aSAA/4IqAP+cNAD/cSAA/3dq + Zf9SUlP/Ojo6/8nJyf+lpaX/naGh/8OFhf/od3f/UlBQ/2FjY/+sra3/kZSU/0pNTf+SaWn/zXV1/9ps + bP/DXFz/v1RU/39jY/90dXUuAAAAAAAAAAAAAAAAAAAAAGtra8GJiYn/gIOF/1sxHP9lIgP/dycA/4Ys + AP9tHwD/dmxn/1dXV/9ERET/0tLS/7Kysv+tsLD/xZOT/+17e/9cWVn/NDU1/1BQUP9SUlL/Li8v/0dK + Sv9LUlL/UURE/8x6ev/KXFz/gmFh/3h6ejMAAAAAAAAAAAAAAAAAAAAAampq3JCQkP9vcXL/XTgm/1Yc + AP9lIAD/bSMA/2YbAP93eXn/V1hY/19fX//X19f/wMDA/7y/v//NoKD/8YCA/2VfX/85Ozv/RERE/1pa + Wv81NTX/QEBA/11dXf8yNTX/QUlJ/854eP+FX1//eHl5MwAAAAAAAAAAAAAAAAAAAABpaWnflJSU/2Bi + Yv9ZPjH/TiIN/04ZAP9UGgD/WysW/3p+f/9VVVX/jY2N/9TU1P/MzMz/yc3N/9yjo//whIT/zX19/z9F + Rf8yNjb/XF1d/z09Pf82Njb/XFxc/0BAQP87Pz//k2tr/4tgYP99gIAzAAAAAAAAAAAAAAAAAAAAAGxs + bMuTk5P/Xl9f/zspIf9RNSj/NxEA/zkMAP9mWVH/c3R1/1hYWP/CwsL/zc3N/8zMzP/L0ND/6qSk//KL + i//1jIz/4oOD/3JPT/9OVFT/Q0hI/y0wMP9UVFT/TU1N/zI1Nf+RZ2f/kWRk/4SIhzQAAAAAAAAAAAAA + AAAAAAAAcXFxmISEhP9xcnL/JR8c/z8xKv8ZAQD/OiUc/4KFhv9yc3P/f39//97e3v/MzMz/zMzM/8/L + y//4nJz/9pCQ//aQkP/0jIz/9YqK/+qCgv+mamr/TT09/z1FRf9SVlb/KTEx/4VgYP9eMTH/LzM4eQAA + AAAAAAAAAAAAAAAAAACNjY05bW1t/peXl/9bW1z/FhMS/z03NP+DhIT/hoaG/39/f//X19f/y8vL/8vL + y//Y2dn/t6Cg//2dnf/8mZn/+ZKS//ONjf/viYn/6YOD/+l/f//oe3v/0nFx/6xnZ/+JUVH/vWBg/14y + Mv8nKizVAAAAAAAAAAAAAAAAAAAAAAAAAACEhIS7nZ2d/4eHh/+Wlpb/k5SU/5qamv+ampr/1NTU/8nJ + yf/BwcH/6enp/+np6f/Fysr/54OD//6rq//5kZH/842N/+2Hh//ogoL/5H5+/953d//ac3P/1W1t/9Jo + aP/SZWX/VzIy/yksLOEAAAAAAAAAAAAAAAAAAAAAAAAAAK+vryCRkZHlpqam/1NTU/9ZWVn/qqqq/+Tk + 5P++vr7/s7Oz/9jY2P//////7Ozs/+Ll5f+3nJz/+ZCQ//ejo//yjo7/7IaG/+eBgf/ifHz/3HZ2/9dx + cf/SbGz/zGZm/89jY/9SMTH/Ky0t6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK+vrx6jo6O0zMzM/v// + ///X19f/q6ur/6qqqv/Z2dn////////////8/Pz/4eHh/97j4//Cq6v/2oOD/++MjP/tjY3/6IaG/+F6 + ev/adHT/1W9v/9Bqav/MZmb/yVtb/1I8PP8qLC3vAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAGenp7f///////////////////////////6+vr/+Pj4//f39//5+fn/8/Pz/+3w8P/d4+P/yMTE/8uq + qv/Nj4//0nt7/9pwcP/Va2v/0Gdn/8peXv+5YmL/dHp6/zExMfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAK6urkyqqqr65+fn//f39//19fX/8fHx/+7u7v/r6+v/6Ojo/+bm5v/l5eX/5eXl/+zs + 7P/t7u7/5unp/97j4//Q1tb/w8DA/8Wpqf/EmJj/wZ+f/8/T0/+EhYX/NTU1cgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAK2trTKgoKCboKCgzaampva0tLT+wsLC/9DQ0P/h4eH/6enp/+fn + 5//n5+f/5ubm/+Xl5f/l5eX/5ubm/+vs7P/k5ub/3N7e/9LW1v/O0ND/0tPT/5WVlf2UlJQTAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArq6uBaGhoSqjo6NYoKCghqCg + oLSmpqbirKys/bq6uv/Jycn/29vb/+np6f/s7Oz/5eXl/9ra2v/Nzc3/wcHB/7W1tf+YmJjqoKCgbQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACbm5sTmJiYP5WVlW2Tk5Obk5OTv5SUlMiRkZG1jo6OlpGRkXWRkZFVjo6ONZqa + mgcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///////+P///hg///AAD//AAAf/gAAB/wA + AAP8AAAB/AAAAfwAAAP8AAAH8AAAB/AAAAfgAAAH4AAAB8AAAAfAAAAHwAAAB8AAAAfAAAAHwAAAA+AA + AAPgAAAD8AAAA/gAAAP8AAAD/gAAA/8AAAf/8AAH///AP///////////KAAAADAAAABgAAAAAQAIAAAA + AACACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8AOdNtAKY/PwD9l5cACXIIAJLlswCCg4QAYRoAAE1N + TQDT09MA021tALirkwBGm0kAmjMAAHDIiAAsIBsAdjstAIJfXAAhtTwA1rOzAGuiawDFg4MAtG9vAD59 + MwA4DQAANTc3AOnp6QCbnJwAU7VoAOmBgQBjY2MAbUs9AJSQcAC0tLQAJqAuAFcyMgC9VlYAK79YAF+H + XgB9KgIAmcugAFsrFgBM134A2piYAHF0dgCheXkAwsXFAHrYmgD6ra0ArlVVABwHAQA7KSEAnYeHACtz + KwCo0KsAYr53AFV9PQCmp6cAvpaWAMSqqgBJFgAAkHJyABWRGgARCggAh8COAOu1tQBam1oAzefSANh+ + fgBAtVoAi1FRAG5bUQBCQkIA7aOjAPSMjADd3t4AS8ZvAI2NjQA6lToAyV9fAHFnZQD09PQAt6CgADvG + ZgBYWVkAKLVPAEcmFABs2pMAcLx+ALVKSgDQj48A5nl5AE89NABbzX4AvGxsAG0iAABmMhkAJy0tAF04 + JgCIf2UAH4IkAETeeQAcqDEA0q2lAKxcXADaf38AfHx8AGpqagBvT08AM7NVAMvMzAD4o6MAomVlAGKc + YgDac3MAdaV1AD8xKgCflJQA4a+vAC6PLgBZPjEAuru7AIwvAABVNicAVKxjABabLAAidx4AymVlAAmG + CwBaSkoAkHt4AEjkgQDJpKQAFp8jAI6WlgCgoaEA8PDwAJ/PpwA1u1sAxJ2dAJFmZgBMv2wAV7puAE5U + VACgbW0AQ0xMAHvAhwCtrq4AuK+cAM52dgDin58AJ6dDAGEgAQDugYEAa9SMAPmSkgCHiYkA2NnZAN2r + qwDhfHwAUMp2AIzGlQBdXV0A5OXlAEDLbQA/2XMA+vr6ACiQKADuh4cAMcZgADTOaABYGwAAiC0AAD42 + MwDBW1sApHFxAFsxHAB8ZWUA7Y6OAD0/PwB005EAoWBgAOp9fQDWcHAARbhiABqBGgDBv78AKrtUACuD + KwCvRkYAqmxsAHYnAACWmJgAx8jIAL6+vgBoMjIASElJAMWUjgB3e3sALsJUAOClpQBtW1sAgYCAABRo + DwAcjRwAzdDQAOWzswBTT04AMiIcADEzMwAyymMALcJcALxRUQC3T08AZ8mAAIVpWwBvcHAAy6qqAOKD + gwAywV0Az2VlAM9qagDDeHgAkpKSAItgYADZcHAAU1VVABiMGwD1nJwA06amAD9ERADed3cAPLddAHZ3 + dwDg4eEALjAwAKNaWgDNyckAycPDAK+ekABPu2oANxQEAGkfAABduXAAeGxsAOzs7ADS1tYA/J+fADk7 + OwBSMTEA7oSEALm4uADni4sATT09ANpsbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABPgagAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0jtUaBDQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAODH6ssAAAAAAIHXtZtehoEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABydbC3B + iJ1sywAAAIHXm15eK1aBDQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABO6tmdlMLCu7v8nWzLLwXX116h + pQIChoF0AAAAAAAAAAAAAAAAAAAAAAAAAADBB9kHOu9vb28vw8PDuyKdiAU4XqFNpasCpsiBTwAAAAAA + AAAAAAAAAAAAAAAAAOrLiC/Ozm9vzs7vw8PDw7svzgU4XqGlVKurAqamZ4EVAAAAAAAAAAAAAAAAAAAA + BzoKzs7OzgoKCgrCu7svLy8vngX0Xk2lqtOrAgKmZqqBeAAAAAAAAAAAAAAAAAAAawoKCgoK956enp5v + uy92tu2/7wWPOE1U3KqrqwICpqZmZ4FyAAAAAAAAAAAAAAAATkyenp6eTExMTEzOwjUDvr4DFgX0OI65 + 3NSq06urAgKmptOBcgAAAAAAAAAAAACI4OtMTOvrTJ4KCvfCL0davr6+WwX0OPG5iybUqtOrq6sCAqbI + ugAAAAAAAAAAAACIwaTr6+ueCs5vb2/ClAPW1tbWWwX0OPG5i7y8JtSq06urqwK8ugAAAAAAAAAAAACI + HKTrpJ4Kby+7u7u7iL7W1tbWWwX0OI+56W5WvCbU1KrTqyaBcgAAAAAAAAAAAACIiBukTApvu3oiIiLD + HFolJSUlWwU4WfTxuW5WVry8JtSqfgVyAAAAAAAAAAAAAABOOolMCs67IiKUOjp6dtWvr68lW8w4WTiP + uUZuVlZWvJgFvQAAAAAAAAAAAAAAAOofnTotCePgu53BOoj8Na+vr6+vLMxZk1n0HblGbm5WgQVywgAA + AAAAAAAAAAAAbGzqLS3Z2eP542/qy4j8NVCAUFBQLMxZQVk49B25uZgFGPCdAAAAAAAAAAAAAADZ2Wtr + OhIgLdnQxerDa8v8g4CAgICALMxBopNZOPQdZcxkFgMtAAAAAAAAAAAAAMvZy516EQjzES1stPl64Aed + Pt7egICAl8xBKUGTkw0FGMbe1QP1AAAAAAAAAAAAiGzLByIg88BgYEgtSRot/E5Ond8L3gsLl8xBNylB + ZcwhW68lJb6yAAAAAAAAAAAAy+rLHIMIwCh7mREt4+wazuDg4ODiC+IXgxgYN3IFOcaWr68lJVoSHAAA + AAAAAAAAH52dHGFgwK0OwCgtHxrszogcwcHfc3OSGsc2BcwhSrhQUK+vr9YSwQAAAAAAAADg2Z2dy6xg + KK0OrfMtbLTSuzo6iIgW6OiQGkmdwernSbBqXICvr9USwQAAAAAAAAAHa50HSJmZwK17rQjqbEn5LyKU + lDrG6KDjtNLQo0nS+eOQghe3ryVHwQAAAAAAAADqB53HfGGZYMAoKJnHbMW0Cnr8IiKMoB5VxdLFownS + GtCjtGLKqa9HwQAAAAAAAADZTgfZVyCsmfNgYGHHbAnF6y+7w3qFHh5VCdJJVeMa0sWjxdLnUbdHHAAA + AAAAAABsTsts8tg9rKysrCDHH9BspG/Cwi/mHvuwkBr541X50klV49K0kN9HHAAAAAAAAADZTgejEGQZ + PT09PVHHo+Mcnm/Ob2/JqalLsPnsCaNJ0vnjVfkakBdHHAAAAAAAAADqnU7j0Ujy8vLyVwctH1Wezm9v + b29KS0tLS0UgtFUJ0hrQo0nSxRdHHAAAAAAAAACda8FVrtFdM/IzbGvZH8ukb29vb+5wS0tLS6lLoJFV + 0uzFownS5xcRbAAAAAAAAACIbMHHSTOuMzPQB2vqbPfOb29vb59wnJycnLOpqR6aX21J4+PSGr8RYi0A + AAAAAAAALQfgbOwAQFWdy53LlKRvb28KTL8EcAScnEupHh6goFzogHFHR90R0sUAAAAAAAAAiC2I4E5r + Tp2dweCIie/CwhvrpDWcMQScnEupHh6goOhzuAve3YDE0rQAAAAAAAAAAJ2UbJ3gwYg6iJSJL7u7ngGk + 6/yg+DGcS0upHh6g6OhzuN7egIDE0rQAAAAAAAAAAADgCtAQxR/gnon8/PzOAQEb66Q1S+UxS6mpHh6g + 6HNzC96AgIDE0vkAAAAAAAAAAAAAHPdMuwr2wpSUlMIBAQFSTOvrNfuccOWpHqCg6HO4C96AgFDE0vkA + AAAAAAAAAAAAAIgcAaTOuyIingEBAQEB9kxM6/xb6Jqzs/2g6HO4C96AgNVt0hoAAAAAAAAAAAAAAADB + UgEBAQEBAQEBp6enAQFSG0xM9/yMFrigoOi4C96AUDKdGhoAAAAAAAAAAAAAAACUlAGnp6dSUlKJiYn2 + 9hsbiVJS9uuens4iOxaAgFAlF2+I0OMAAAAAAAAAAAAAAAAAOjqeiVJSifb2GxukpKSkpKSkpPaJG+v3 + CvfOL7vCzs7gbAAAAAAAAAAAAAAAAAAAAACIiBw6esKepBsbpKSkpKSkpKSkpKT2G0wKzm9vb84cOgAA + AAAAAAAAAAAAAAAAAAAAAAAAlDo6iIiUu85M9hsbG6SkpBsbGxv2G+vrTJROAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAOjqIHDr8wp4b9vaknm+7Ijoc4IgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAA6iBzBwcHgwRyIOgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////8AAP// + //x//wAA////+B//AAD///D4D/8AAP//gDgD/wAA//4AAAD/AAD/8AAAAH8AAP/gAAAAHwAA/8AAAAAP + AAD/wAAAAAMAAP/AAAAAAQAA/4AAAAABAAD/gAAAAAEAAP+AAAAAAQAA/4AAAAADAAD/gAAAAA8AAP8A + AAAADwAA/gAAAAAfAAD8AAAAAB8AAPgAAAAAHwAA8AAAAAAfAADwAAAAAA8AAPAAAAAADwAA4AAAAAAP + AADgAAAAAA8AAOAAAAAADwAA4AAAAAAPAADgAAAAAA8AAOAAAAAADwAA4AAAAAAPAADgAAAAAA8AAOAA + AAAABwAA8AAAAAAHAADwAAAAAAcAAPgAAAAABwAA/AAAAAAHAAD+AAAAAAcAAP8AAAAABwAA/4AAAAAH + AAD/gAAAAAcAAP/AAAAADwAA//AAAAAPAAD//wAAAB8AAP///AAAPwAA////4AP/AAD///////8AAP// + /////wAA////////AAAoAAAAMAAAAGAAAAABACAAAAAAAIAlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAfwAOAIoApgCHAOwAiQDEAJQAOgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAhgCdJqAu/3PRjv9EuVj/AYwA/ACRAJEAjQAMAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1tbRtvb291bGxsx2tr + a9ZsbGytcnJyRQAAAAAAAAAAAAAAAAAAAAAAgQDnaMZ9/3XVk/9p1o3/WNJ+/xedIf8AiADfAJcARwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHx8fAd6enpTdnZ2s2xs + bPl0dHT/mJiY/5+fn/+Hh4f/a2tr/nFxcb94eHg+AAAAAAAAAAAAfgDzasmC/2zRi/9e0IL/VNN//0zX + fv8pukv/AYoB/gCPAJ8AjQASAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGDg4Mzenp6knJy + cutwcHD/iYmJ/6urq//IyMj/yMjI/8DAwP/CwsL/ubm5/4qKiv9ra2v+cXFxutra2oIAfQDzZcZ9/2bO + hf9YzX3/TM53/0HRcv86027/OtNs/xShJP8AgwDnAJMAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACDg4MWf39/cHt7 + e89wcHD+hISE/6Wlpf/FxcX/zMzM/8rKyv/Kysr/xMTE/729vf+9vb3/vr6+/8LCwv+2trb/hoaG/6Cg + oP4Hewf9YcR5/2HLgP9Tynj/R8tx/zvNa/82zmn/OtNt/0Hbd/8vw1P/BIoF/gCKAK4AkwAZAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIyM + jEl2dnb2gICA/6CgoP/ExMT/zs7O/83Nzf/MzMz/zMzM/83Nzf/Pz8//xsbG/76+vv++vr7/vr6+/76+ + vv+/v7//w8PD/9DQ0P8Iegj/XsF2/17JfP9Qx3P/Q8hs/zbJZv8zzGb/N9Bq/zrTbf9A2nT/Qtt1/xqm + Lf8AgADuAJIAYgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAX5+ftSpqan/09PT/9DQ0P/Pz8//z8/P/9DQ0P/R0dH/0tLS/9PT0//V1dX/ycnJ/7+/ + v//AwMD/wcPD/8HGxv/Bx8f/wcbG/9ja2v8OfA7/XL1z/1zGef9NxXD/QMVp/zPGYv8xymT/Nc9p/zjR + a/871G7/P9hy/0Teev81yF3/BosJ/gCGALsAjgAiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAjIyMI3t7e/7V1dX/0dHR/9LS0v/T09P/1dXV/9bW1v/X19f/19fX/9jY + 2P/a2tr/zMzM/8DAwP/Dx8f/pJOT/6FgYP+jWlr/qW5u/8++vv8OeQ7/W7tw/1vEd/9Mwm3/P8Jl/zLC + Xv8vxmD/Msxm/zXOaP840Wv/OtNt/z7Xcf9B2nX/Q914/x2qNP8AfgD0AI4AbgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhISERouLi//d3d3/19fX/9jY2P/Z2dn/2tra/9vb + 2//d3d3/3d3d/93d3f/f39//zs7O/8XHx/+UhYX/oDQ0/61ERP+uRkb/rEND/8aCgv8McQj/XLlv/1vC + dv9Mv2z/P79k/zK/XP8twVv/L8Zg/zLKZP80zWf/N9Bq/znSbP871G7/PdZw/0Hbd/81y2D/BooI/gCH + AG0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhISEUpOTk//i4uL/3d3d/97e + 3v/g4OD/4ODg/93d3f/Y2Nj/1dXV/9TU1P/W1tb/ycnJ/7/Fxf+KQ0P/s0pK/7BKSv+wSkr/sEpK/82M + jP8NcAn/Xblv/13Adv9OvWv/QLxj/zO8W/8rvVf/LcFb/y/HYf8xyWP/M8xm/zXOaP830Gr/ONFr/znS + bP881nH/LcBU/wB7ANgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiIiIUpmZ + mf/m5ub/4ODg/+Li4v/h4eH/2dnZ/9PT0//Ozs7/y8vL/8rKyv/Kysr/x8fH/6qxsf+kQUH/tk9P/7RO + Tv+0Tk7/tE5O/8+Ojv8Nbwn/Xrdv/2C/d/9RvGz/RLpj/ze5W/8ruVT/KrxW/yzAWv8uxF7/MMdh/zLL + Zf8zzWf/NM1n/zXOaP840m3/Kr5T/wB6ANkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAh4eHUp2dnf/m5ub/4uLi/+Pj4//Z2dn/0dHR/8rKyv/ExMT/wMDA/7+/v/+/v7//wcHB/5+l + pf+wRUX/uFFR/7dRUf+3UVH/t1FR/9GQkP8NbAn/YbZw/2S/ev9Vu27/SLll/zy3Xf8wtlX/KLdR/yq7 + Vf8rvlj/LcFb/y7EXv8wxmD/Mslj/zPOaf8rv1j/BYMJ/gB/AHMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAhoaGUqOjo//p6en/5OTk/9/f3//T09P/ysrK/8HBwf+6urr/tbW1/7Oz + s/+0tLT/vb29/5ycnP+2Skr/vVhY/7tVVf+7VVX/u1VV/9STk/8Nagn/ZbZy/2m/ff9bunH/Trho/0K2 + X/82tVj/LLRR/ye1T/8ouFL/KrtV/yu/Wf8twlz/L8Vg/xabLP8AcwD1AIMAcQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACIiIgRfX19pKSkpP/w8PD/3t7e/9PT0//Ozs7/wcHB/7W1 + tf+zs7P/rKys/6ioqP+pqan/ury8/5qUlP++UFD/v1xc/79ZWf+/WVn/vlhY/9aVlf8NaAr/a7Z3/3C/ + gf9iu3X/Vbhs/0q1Y/8/tFz/NLJV/yuyT/8ms03/J7ZQ/yq6Vf8irUT/BXsJ/wB2AMAAgwAlAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJWVlTdycnLgYmJi/4mJif+mpqb/cnJy/0xM + TP9TU1P/kZGR/8HBwf+Ghob/lZWV/6Wlpf+jo6P/tri4/5iJif/DV1f/w2Fh/8JcXP/CXFz/wlxc/9iW + lv8RZwz/crd7/3nAhv9qvHr/Xrhx/1K2af9ItGH/PrJa/zWxVP8uslH/J7JN/xCMH/8Mcwz/YpZj/fj4 + +FkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAj4+PRWxsbPVra2v/dXV1/3Jz + c/9wcnP/cHFy/29vb/9VVVX/OTk5/1VVVf/Ly8v/dnZ2/4CAgP+ioqL/t7m5/5iEhP/IXl7/x2Vl/8Zg + YP/GYGD/xmBg/9qYmP8SZQ3/eLiA/4LDjf9zvYD/Z7p3/1y3b/9StGf/SrRi/0S1YP8roEL/BHMH/zt4 + Kf+vnpD/iYuL/nx8fAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACampoqbGxs8HFx + cf96enr/fX5+/6KmqP9/Zlr/aU9C/3B0d/9vcHD/UFBQ/0ZGRv93d3f/vb29/3t7e/+AgID/trm5/5l/ + f//MY2P/zGdn/8ljY//JY2P/yWNj/9ybm/8SZQ3/gLuG/4zGlf9+wIj/crx//2e5dv9guHL/VLRo/xqD + Iv8RbAz/holf/82Hh/+kRET/cXd3/3h5eRkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJOT + kwR1dXXMbm5u/35+fv+IiYn/uLu7/3ZFLP9iGQD/aB0A/209Jf9vdHb/aGho/z4+Pv87Ozv/u7u7/5GR + kf+EhIT/hYeH/5Bycv/TaGj/zmpq/81nZ//NZ2f/zWdn/96dnf8SZQ3/ir+O/5fJnv+JxJH/fsCI/3rB + h/9HoFP/A2oE/0h6M//Ckoj/xW9v/7hSUv+rPz//eGxs/4GBgSkAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAIyMjGBnZ2f/gICA/4WFhf+us7X/d0o0/2cdAP91JgD/byQA/28fAP9zYFf/cHJz/0RE + RP81NTX/cnJy/7i4uP+NjY3/i4uL/4SIiP++d3f/025u/9Fra//SbGz/02tr/+agoP8XZxH/kcGU/6bQ + qv+bzKH/hcCN/yOAJv8WaQ//lI1q/9OMjP/AXl7/vFZW/7pUVP+xRkb/fGVl/3x+fkkAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAXh4eM93d3f/goKC/5qcnf+MfHX/YRgA/3QmAP+CKwD/jC4A/2Ae + AP9/QSL/b3N2/1VVVf8xMTH/Nzc3/9DQ0P+UlJT/lJSU/5GSkv+UkJD/2XBw/9Rubv/Yb2//smRk/4t1 + df83dDH/PIw//6nPq/9hpWT/AWUB/1V9Pf/NmZL/znZ2/8NdXf/BW1v/vlhY/7tVVf+1S0v/gWBg/36B + gWQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAl5eXMmdnZ/6Hh4f/iIiI/5qeoP9mMRj/ayIA/3oo + AP+LLgD/mzIA/3MnAP96Lgb/cXZ5/2JiYv83Nzf/LCws/83Nzf+enp7/nJyc/5mZmf+TmJj/zXh4/9py + cv/ddHT/Q0xM/zQ4OP92gXj/K3Mr/wZiBv8caxv/k5J1/+2goP/Wb2//yGFh/8ZgYP/DXV3/wFpa/79Z + Wf+4Tk7/glxc/32BgXUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd3d3enFxcf+JiYn/iYqL/4R+ + ff9YFQD/ayMA/3woAP+LLQD/mTMA/4YsAP9qIAD/cnZ2/2tra/8+Pj7/NDQ0/8LCwv+oqKj/paWl/6Ki + ov+doKD/wYaG/911df/gd3f/TVNT/zc3N/9BQUH/hoaG/5aXl/90dnb/P0VF/0VERP+ecXH/2n9//+Z4 + eP/KYmL/w11d/8BaWv+7UVH/hFlZ/4GFhX0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcHBwr3x8 + fP+Kior/gYOE/2tVSv9cIQP/ZyIA/3YmAP+DLAD/jC8A/4ktAP9hHQD/dHd3/2xsbP9CQkL/OTk5/8TE + xP+xsbH/rq6u/6urq/+nqan/wJGR/+J4eP/jeXn/UVhY/z09Pf80NDT/UFBQ/1xcXP9CQkL/MjIy/zs7 + O/9TVlb/TVVV/1pKSv+4cnL/6X19/8NcXP++VVX/hldX/4GFhYUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAbW1t1YWFhf+IiIj/d3l7/1U2J/9mNR3/Xx4A/20jAP93JgD/fSgA/30oAP9iIQL/dXl8/2tr + a/9JSUn/Pj4+/9HR0f+6urr/t7e3/7W1tf+ytLT/wp2d/+V7e//nfn7/U1pa/0ZGRv8yMjL/SUlJ/11d + Xf9LS0v/MjIy/zY2Nv9RUVH/XFxc/z1AQP8nLi7/bVtb/+yHh//DWFj/h1NT/4OHh4UAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAa2tr7YyMjP+Dg4P/bnBy/0UkE/90Tjv/VBkA/2EfAP9pIgD/bCMA/2si + AP9lMBX/dnt9/2dnZ/9OTk7/RkZG/+Hh4f/ExMT/wcHB/76+vv+6vLz/yaSk/+l/f//sgoL/U1lZ/05P + T/8zMzP/QEBA/1tbW/9UVFT/NjY2/zMzM/9KSkr/XV1d/0lJSf8xMjL/QERE/29kZP/rfHz/iVBQ/4WK + ioUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAa2tr8o+Pj/+BgYH/ZWdo/zgZC/+FaVv/RxMA/1Ib + AP9ZHQD/XB4A/1wbAP9oRzb/eHp8/2NjY/9RUVH/aWlp/+Pj4//Ly8v/ycnJ/8jIyP/Ex8f/06am/+qB + gf/uhIT/qnJy/01VVf83ODj/OTk5/1ZWVv9aWlr/Ozs7/zIyMv9BQUH/W1tb/1NTU/80NDT/PT09/09W + Vv+9eHj/j1BQ/4WJiYUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbGxs7Y6Ojv+Dg4P/W1xd/zEa + D/+KdWv/OA0A/0UWAP9KGAD/TRkA/0oSAP9yamb/eXp6/15eXv9VVVX/m5ub/9jY2P/MzMz/zc3N/8vL + y//Lzs7/4KWl/+6Ghv/uh4f/9omJ/6Rxcf81PDz/LjEx/05PT/9dXV3/RERE/zIyMv85OTn/VlZW/1pa + Wv86Ojr/Nzc3/05SUv+2dHT/kFJS/4eMjIUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbm5u1IiI + iP+Ojo7/U1RU/zEjHf9tW1P/OhsM/zYQAP88EwD/PBIA/0knFf9/goT/dHR0/2FhYf9YWFj/19fX/83N + zf/MzMz/zMzM/8zMzP/Lzs7/7KWl//KKiv/yjIz/8YuL//eLi//Yfn7/ZUlJ/ztCQv9YW1v/TE1N/zMz + M/81NTX/UFBQ/11dXf9DQ0P/MjIy/0ZLS/+1cnL/k1VV/4yRkYYAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAdnZ2qH19ff+VlZX/WFlZ/zo1NP8yIRr/Tz00/yUJAP8rDgD/KAcA/3Bsaf99fn7/cHBw/2Zm + Zv+CgoL/5eXl/8zMzP/MzMz/zMzM/8zNzf/Nycn/96Gh//SNjf/0jo7/842N//GLi//xiYn/9oqK/919 + ff+gbW3/W1dX/y00NP8sMDD/R0dH/11dXf9MTEz/MjIy/z9ERP+ycXH/ejg4/0VJSa00NDQFAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAh4eHYWlpaf+VlZX/eXp6/0NDQ/8OBgH/Qjcy/xwLBP8TAAD/V01K/4KD + hf98fHz/eHh4/2xsbP/W1tb/z8/P/8zMzP/MzMz/zMzM/8rNzf/dq6v/+qKi//mVlf/5kpL/9pCQ//WP + j//wior/7oeH/+2Fhf/sgoL/7oCA/7xsbP9xTEz/QkFB/1FXV/9QVFT/LzQ0/y85Of+paWn/czIy/ycs + K/85OUiBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArKysDW5ubueFhYX/lJSU/2lpaf8wMDD/AAAA/xEK + CP9bV1X/iImJ/4KCgv+Ghob/gICA/6ysrP/k5OT/y8vL/8zMzP/Ly8v/09PT/9rf3/+sbGz//Zqa//yl + pf/8lZX/+JKS//WPj//zjY3/7oiI/+qEhP/ngYH/5H5+/+R8fP/leXn/4nV1/8Bra/+iZWX/glFR/41S + Uv/OZGT/cjMz/y8zM/8kJCTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJKSknpzc3P/oqKi/5KS + kv+MjIz/fHx8/4yNjf+HiIj/h4eH/5WVlf+QkJD/oaGh/+7u7v/Gxsb/x8fH/8fHx//o6Oj/4uLi/+Hk + 5P+hhob//5KS//2zs//9lpb/+pOT//WPj//yjIz/7oiI/+qEhP/ngYH/4319/+B6ev/cdnb/2nNz/9dw + cP/VbGz/1Glp/89lZf/NYmL/bjEx/y8zM/8mJibPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALGx + sQ+Hh4fir6+v/2xsbP+JiYn/lJSU/5WVlf+hoaH/qKio/56env+wsLD/8PDw/8PDw//AwMD/wMDA/9ra + 2v//////5eXl/+Li4v+2urr/4H9///yfn//7q6v/95CQ//SOjv/xi4v/74mJ/+qEhP/ogoL/4319/995 + ef/cdnb/2HJy/9Vvb//Ra2v/zmho/8pkZP/MYmL/aTEx/zE0NP8nJyfVAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACurq45lZWV8tLS0v9RUVH/JiYm/0ZGRv9jY2P/kpKS/9ra2v/w8PD/ubm5/7i4 + uP+4uLj/zs7O////////////6urq/+Dg4P/k5+f/oIqK//qLi//4nZ3/96mp//KOjv/viIj/7IaG/+mD + g//mgID/4nx8/995ef/bdXX/2HJy/9Rubv/Ra2v/zWdn/8tlZf/LYWH/ZjEx/zA0NP8pKSnbAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqqqqOJycnOLW1tb/3t7e/7+/v//R0dH/7e3t/8nJ + yf+qqqr/r6+v/66urv/Hx8f/////////////////9fX1/9/f3//h4eH/2+Hh/6qKiv/ug4P/9Y+P//Si + ov/xm5v/64iI/+eBgf/kfn7/4Xt7/954eP/adHT/13Fx/9Ntbf/Qamr/zGZm/8ljY//KX1//YjMz/zAz + M/8rKyvjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKOjow6WlpaImpqa//// + ///k5OT/z8/P/8DAwP+zs7P/s7Oz/9ra2v////////////7+/v///////////+3t7f/f39//3t7e/9/j + 4/+8uLj/xo6O/9x5ef/tgYH/7ZGR/+uOjv/ni4v/4H19/9x2dv/Zc3P/1nBw/9JsbP/PaWn/y2Vl/8lj + Y/+9UVH/bFJS/zAyMv8sLCzpAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AACjo6MHlJSU7PX19f/////////////////////////////////+/v7//f39//v7+//4+Pj/+fn5//39 + /f/+/v7/9vb2/+rq6v/e39//2+Dg/8zU1P/BtbX/xZ2d/8aBgf/UcXH/4np6/958fP/bdnb/1nJy/9Nt + bf/Pamr/y2Rk/8hfX/+uVVX/h4yM/zU1Nf8uLi7vAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAApqamdq+vr/7//////Pz8//r6+v/5+fn/9vb2//T09P/y8vL/8fHx//Dw + 8P/v7+//7e3t/+zs7P/q6ur/6urq/+/v7//29vb/9PT0/+3t7f/g4eH/19ra/9Xa2v/K0dH/vrKy/76W + lv/BfX3/xmlp/81hYf/MX1//wVVV/7NsbP/Lysr/nZ6e/1FRUf8uLi6wAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWVlZA6Ojo5yoqKj+2dnZ/+7u7v/29vb/8/Pz/+/v + 7//t7e3/6+vr/+jo6P/n5+f/5eXl/+Tk5P/k5OT/4+Pj/+Pj4//j4+P/4+Pj/+Xl5f/t7e3/7+/v/+np + 6f/i4uL/1dbW/9HU1P/Q1tb/y9LS/8LFxf/Eu7v/ycnJ/8vR0f/Oz8//lJSU/0pKSrAuLi4WAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACsrKxDnp6eo56e + ntOcnJz2q6ur/ru7u//IyMj/19fX/+Tk5P/n5+f/5+fn/+bm5v/l5eX/5OTk/+Pj4//j4+P/5OTk/+Tk + 5P/k5OT/5OTk/+Tk5P/l5eX/7e3t/+fn5//e3t7/1NTU/87Ozv/MzMz/y8vL/8rKyv/Pz8//mpqa/5qa + mlsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAACdnZ0LoaGhMaSkpF+hoaGOoaGhvKCgoOmjo6P+sLCw/7+/v//Q0ND/39/f/+vr + 6//p6en/6enp/+jo6P/m5ub/5ubm/+Xl5f/n5+f/5+fn/+fn5//p6en/7Ozs/+rq6v/h4eH/4ODg/9vb + 2/+urq7/jo6O65ubmx4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACnp6cao6OjSKOj + o3aioqKlnZ2d05ubm/aoqKj+uLi4/8fHx//X19f/5+fn/+zs7P/r6+v/5OTk/9jY2P/Ly8v/wMDA/7S0 + tP+np6f/m5ub/ZGRkeKZmZmKl5eXFQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAJOTkwuWlpYxmJiYX5eXl42UlJS6lJSU3ZaWlvGUlJTvkZGR15GR + kbeRkZGXk5OTdpGRkVWVlZU1k5OTF1NTUwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////AAD////8f/8AAP////gf/wAA///w+A// + AAD//4A4A/8AAP/+AAAA/wAA//AAAAB/AAD/4AAAAB8AAP/AAAAADwAA/8AAAAADAAD/wAAAAAEAAP+A + AAAAAQAA/4AAAAABAAD/gAAAAAEAAP+AAAAAAwAA/4AAAAAPAAD/AAAAAA8AAP4AAAAAHwAA/AAAAAAf + AAD4AAAAAB8AAPAAAAAAHwAA8AAAAAAPAADwAAAAAA8AAOAAAAAADwAA4AAAAAAPAADgAAAAAA8AAOAA + AAAADwAA4AAAAAAPAADgAAAAAA8AAOAAAAAADwAA4AAAAAAPAADgAAAAAAcAAPAAAAAABwAA8AAAAAAH + AAD4AAAAAAcAAPwAAAAABwAA/gAAAAAHAAD/AAAAAAcAAP+AAAAABwAA/4AAAAAHAAD/wAAAAA8AAP/w + AAAADwAA//8AAAAfAAD///wAAD8AAP///+AD/wAA////////AAD///////8AAP///////wAA + + + \ No newline at end of file diff --git a/Samples/Vision/MotionDetector/MotionDetector.csproj b/Samples/Vision/MotionDetector/MotionDetector.csproj new file mode 100644 index 00000000..9520ce94 --- /dev/null +++ b/Samples/Vision/MotionDetector/MotionDetector.csproj @@ -0,0 +1,211 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {9800A224-0BF0-4D5D-A03C-AA7A4842D3B8} + WinExe + Properties + MotionDetectorSample + MotionDetector + + + 3.5 + v2.0 + + + false + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + true + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + False + ..\..\..\Release\AForge.dll + + + False + ..\..\..\Release\AForge.Controls.dll + + + False + ..\..\..\Release\AForge.Imaging.dll + + + False + ..\..\..\Release\AForge.Video.dll + + + False + ..\..\..\Release\AForge.Video.DirectShow.dll + + + False + ..\..\..\Release\AForge.Video.VFW.dll + + + False + ..\..\..\Release\AForge.Vision.dll + + + + + + + + + + + Form + + + AboutForm.cs + + + Component + + + DefineRegionsControl.cs + + + Form + + + MotionRegionsForm.cs + + + Form + + + VideoCaptureDeviceForm.cs + + + Form + + + MainForm.cs + + + + + Designer + AboutForm.cs + + + MotionRegionsForm.cs + Designer + + + Designer + VideoCaptureDeviceForm.cs + + + Designer + MainForm.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + Designer + URLForm.cs + + + True + Resources.resx + True + + + PreserveNewest + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + Form + + + URLForm.cs + + + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 2.0 %28x86%29 + false + + + False + .NET Framework 3.0 %28x86%29 + false + + + False + .NET Framework 3.5 + false + + + False + .NET Framework 3.5 SP1 + true + + + False + Windows Installer 3.1 + true + + + + + \ No newline at end of file diff --git a/Samples/Vision/MotionDetector/MotionDetector.exe.config b/Samples/Vision/MotionDetector/MotionDetector.exe.config new file mode 100644 index 00000000..f9f2d485 --- /dev/null +++ b/Samples/Vision/MotionDetector/MotionDetector.exe.config @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/Samples/Vision/MotionDetector/MotionDetector.sln b/Samples/Vision/MotionDetector/MotionDetector.sln new file mode 100644 index 00000000..f104342f --- /dev/null +++ b/Samples/Vision/MotionDetector/MotionDetector.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual C# Express 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MotionDetector", "MotionDetector.csproj", "{9800A224-0BF0-4D5D-A03C-AA7A4842D3B8}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {9800A224-0BF0-4D5D-A03C-AA7A4842D3B8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9800A224-0BF0-4D5D-A03C-AA7A4842D3B8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9800A224-0BF0-4D5D-A03C-AA7A4842D3B8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9800A224-0BF0-4D5D-A03C-AA7A4842D3B8}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Samples/Vision/MotionDetector/MotionRegionsForm.Designer.cs b/Samples/Vision/MotionDetector/MotionRegionsForm.Designer.cs new file mode 100644 index 00000000..1a08da33 --- /dev/null +++ b/Samples/Vision/MotionDetector/MotionRegionsForm.Designer.cs @@ -0,0 +1,143 @@ +namespace MotionDetectorSample +{ + partial class MotionRegionsForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose( bool disposing ) + { + if ( disposing && ( components != null ) ) + { + components.Dispose( ); + } + base.Dispose( disposing ); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent( ) + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager( typeof( MotionRegionsForm ) ); + this.toolStrip = new System.Windows.Forms.ToolStrip( ); + this.rectangleButton = new System.Windows.Forms.ToolStripButton( ); + this.okButton = new System.Windows.Forms.Button( ); + this.cancelButton = new System.Windows.Forms.Button( ); + this.defineRegionsControl = new MotionDetectorSample.DefineRegionsControl( ); + this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator( ); + this.clearButton = new System.Windows.Forms.ToolStripButton( ); + this.toolStrip.SuspendLayout( ); + this.SuspendLayout( ); + // + // toolStrip + // + this.toolStrip.Items.AddRange( new System.Windows.Forms.ToolStripItem[] { + this.rectangleButton, + this.toolStripSeparator1, + this.clearButton} ); + this.toolStrip.Location = new System.Drawing.Point( 0, 0 ); + this.toolStrip.Name = "toolStrip"; + this.toolStrip.Size = new System.Drawing.Size( 342, 25 ); + this.toolStrip.TabIndex = 1; + // + // rectangleButton + // + this.rectangleButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.rectangleButton.Image = ( (System.Drawing.Image) ( resources.GetObject( "rectangleButton.Image" ) ) ); + this.rectangleButton.ImageTransparentColor = System.Drawing.Color.Magenta; + this.rectangleButton.Name = "rectangleButton"; + this.rectangleButton.RightToLeftAutoMirrorImage = true; + this.rectangleButton.Size = new System.Drawing.Size( 23, 22 ); + this.rectangleButton.ToolTipText = "Draw rectangular region"; + this.rectangleButton.Click += new System.EventHandler( this.rectangleButton_Click ); + // + // okButton + // + this.okButton.Anchor = ( (System.Windows.Forms.AnchorStyles) ( ( System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right ) ) ); + this.okButton.DialogResult = System.Windows.Forms.DialogResult.OK; + this.okButton.Location = new System.Drawing.Point( 174, 301 ); + this.okButton.Name = "okButton"; + this.okButton.Size = new System.Drawing.Size( 75, 23 ); + this.okButton.TabIndex = 2; + this.okButton.Text = "&Ok"; + this.okButton.UseVisualStyleBackColor = true; + // + // cancelButton + // + this.cancelButton.Anchor = ( (System.Windows.Forms.AnchorStyles) ( ( System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right ) ) ); + this.cancelButton.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.cancelButton.Location = new System.Drawing.Point( 255, 300 ); + this.cancelButton.Name = "cancelButton"; + this.cancelButton.Size = new System.Drawing.Size( 75, 23 ); + this.cancelButton.TabIndex = 3; + this.cancelButton.Text = "&Cancel"; + this.cancelButton.UseVisualStyleBackColor = true; + // + // defineRegionsControl + // + this.defineRegionsControl.BackgroundImage = null; + this.defineRegionsControl.DrawingMode = MotionDetectorSample.DrawingMode.None; + this.defineRegionsControl.Location = new System.Drawing.Point( 10, 35 ); + this.defineRegionsControl.Name = "defineRegionsControl"; + this.defineRegionsControl.Size = new System.Drawing.Size( 322, 242 ); + this.defineRegionsControl.TabIndex = 0; + // + // toolStripSeparator1 + // + this.toolStripSeparator1.Name = "toolStripSeparator1"; + this.toolStripSeparator1.Size = new System.Drawing.Size( 6, 25 ); + // + // clearButton + // + this.clearButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.clearButton.Image = ( (System.Drawing.Image) ( resources.GetObject( "clearButton.Image" ) ) ); + this.clearButton.ImageTransparentColor = System.Drawing.Color.Magenta; + this.clearButton.Name = "clearButton"; + this.clearButton.Size = new System.Drawing.Size( 23, 22 ); + this.clearButton.ToolTipText = "Clear all regions"; + this.clearButton.Click += new System.EventHandler( this.clearButton_Click ); + // + // MotionRegionsForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF( 6F, 13F ); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size( 342, 336 ); + this.Controls.Add( this.cancelButton ); + this.Controls.Add( this.okButton ); + this.Controls.Add( this.toolStrip ); + this.Controls.Add( this.defineRegionsControl ); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "MotionRegionsForm"; + this.ShowIcon = false; + this.ShowInTaskbar = false; + this.Text = "Motion Regions"; + this.toolStrip.ResumeLayout( false ); + this.toolStrip.PerformLayout( ); + this.ResumeLayout( false ); + this.PerformLayout( ); + + } + + #endregion + + private DefineRegionsControl defineRegionsControl; + private System.Windows.Forms.ToolStrip toolStrip; + private System.Windows.Forms.Button okButton; + private System.Windows.Forms.Button cancelButton; + private System.Windows.Forms.ToolStripButton rectangleButton; + private System.Windows.Forms.ToolStripSeparator toolStripSeparator1; + private System.Windows.Forms.ToolStripButton clearButton; + } +} \ No newline at end of file diff --git a/Samples/Vision/MotionDetector/MotionRegionsForm.cs b/Samples/Vision/MotionDetector/MotionRegionsForm.cs new file mode 100644 index 00000000..2da445aa --- /dev/null +++ b/Samples/Vision/MotionDetector/MotionRegionsForm.cs @@ -0,0 +1,85 @@ +// Motion Detection sample application +// AForge.NET Framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2006-2011 +// contacts@aforgenet.com +// + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; + +namespace MotionDetectorSample +{ + public partial class MotionRegionsForm : Form + { + // Video frame sample to show + public Bitmap VideoFrame + { + set { defineRegionsControl.BackgroundImage = value; } + } + + // Motion rectangles + public Rectangle[] MotionRectangles + { + get { return defineRegionsControl.Rectangles; } + set { defineRegionsControl.Rectangles = value; } + } + + // Class constructor + public MotionRegionsForm( ) + { + InitializeComponent( ); + + defineRegionsControl.OnNewRectangle += new NewRectangleHandler( defineRegionsControl_NewRectangleHandler ); + } + + // On first displaying of the form + protected override void OnLoad( EventArgs e ) + { + // get video frame dimension + if ( defineRegionsControl.BackgroundImage != null ) + { + int imageWidth = defineRegionsControl.BackgroundImage.Width; + int imageHeight = defineRegionsControl.BackgroundImage.Height; + + // resize region definition control + defineRegionsControl.Size = new Size( imageWidth + 2, imageHeight + 2 ); + // resize window + this.Size = new Size( imageWidth + 2 + 26, imageHeight + 2 + 118 ); + } + + base.OnLoad( e ); + } + + // On rectangle button click + private void rectangleButton_Click( object sender, EventArgs e ) + { + DrawingMode currentMode = defineRegionsControl.DrawingMode; + + // change current mode + currentMode = ( currentMode == DrawingMode.Rectangular ) ? DrawingMode.None : DrawingMode.Rectangular; + // update current mode + defineRegionsControl.DrawingMode = currentMode; + // change button status + rectangleButton.Checked = ( currentMode == DrawingMode.Rectangular ); + } + + // New rectangle definition was finished + private void defineRegionsControl_NewRectangleHandler( object sender, Rectangle rect ) + { + rectangleButton.Checked = false; + } + + // On clear button click + private void clearButton_Click( object sender, EventArgs e ) + { + defineRegionsControl.RemoveAllRegions( ); + } + } +} \ No newline at end of file diff --git a/Samples/Vision/MotionDetector/MotionRegionsForm.resx b/Samples/Vision/MotionDetector/MotionRegionsForm.resx new file mode 100644 index 00000000..b9d5f28c --- /dev/null +++ b/Samples/Vision/MotionDetector/MotionRegionsForm.resx @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAADpJREFUOE9jYBgs + 4D/QIaRiRmTH/29oaCAagywDqccwgITgGDVgmAYiqSkRPSExkJISYWpJSHg0VAoAy8+UrI4bTIEAAAAA + SUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAGtJREFUOE9jYBgK + 4D/QkRh4w4YNIDGC4P/vRWJYMdRQvAYQ0vwfnyvwaj7cYwb2Ei4DCGrGZ8AAan41V+U/NgzyK8jJBP1N + yAB8gQaKS6y2gwyFJSK8CQcqiTXFEbIZJSWBDMKGCabXAVUAAEAHBQwLvmISAAAAAElFTkSuQmCC + + + \ No newline at end of file diff --git a/Samples/Vision/MotionDetector/Program.cs b/Samples/Vision/MotionDetector/Program.cs new file mode 100644 index 00000000..0d05f3ce --- /dev/null +++ b/Samples/Vision/MotionDetector/Program.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Windows.Forms; + +namespace MotionDetectorSample +{ + static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main( ) + { + Application.EnableVisualStyles( ); + Application.SetCompatibleTextRenderingDefault( false ); + Application.Run( new MainForm( ) ); + } + } +} \ No newline at end of file diff --git a/Samples/Vision/MotionDetector/Properties/AssemblyInfo.cs b/Samples/Vision/MotionDetector/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..9d7b79f2 --- /dev/null +++ b/Samples/Vision/MotionDetector/Properties/AssemblyInfo.cs @@ -0,0 +1,33 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle( "Motion Detector" )] +[assembly: AssemblyDescription( "Motion Detector sample" )] +[assembly: AssemblyConfiguration( "" )] +[assembly: AssemblyCompany( "AForge" )] +[assembly: AssemblyProduct( "AForge.NET" )] +[assembly: AssemblyCopyright( "AForge © 2009" )] +[assembly: AssemblyTrademark( "" )] +[assembly: AssemblyCulture( "" )] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible( false )] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid( "6014b6ce-dcb6-455f-b295-051ea2330ae9" )] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +[assembly: AssemblyVersion( "2.4.0.0" )] +[assembly: AssemblyFileVersion( "2.4.0.0" )] diff --git a/Samples/Vision/MotionDetector/Properties/Resources.Designer.cs b/Samples/Vision/MotionDetector/Properties/Resources.Designer.cs new file mode 100644 index 00000000..25cd4353 --- /dev/null +++ b/Samples/Vision/MotionDetector/Properties/Resources.Designer.cs @@ -0,0 +1,63 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.3074 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace MotionDetectorSample.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("MotionDetectorSample.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + } +} diff --git a/Samples/Vision/MotionDetector/Properties/Resources.resx b/Samples/Vision/MotionDetector/Properties/Resources.resx new file mode 100644 index 00000000..25a61211 --- /dev/null +++ b/Samples/Vision/MotionDetector/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Samples/Vision/MotionDetector/Properties/Settings.Designer.cs b/Samples/Vision/MotionDetector/Properties/Settings.Designer.cs new file mode 100644 index 00000000..8ee01127 --- /dev/null +++ b/Samples/Vision/MotionDetector/Properties/Settings.Designer.cs @@ -0,0 +1,26 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.3074 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace MotionDetectorSample.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "9.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + } +} diff --git a/Samples/Vision/MotionDetector/Properties/Settings.settings b/Samples/Vision/MotionDetector/Properties/Settings.settings new file mode 100644 index 00000000..39645652 --- /dev/null +++ b/Samples/Vision/MotionDetector/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Samples/Vision/MotionDetector/URLForm.Designer.cs b/Samples/Vision/MotionDetector/URLForm.Designer.cs new file mode 100644 index 00000000..5cc466b9 --- /dev/null +++ b/Samples/Vision/MotionDetector/URLForm.Designer.cs @@ -0,0 +1,102 @@ +namespace MotionDetectorSample +{ + partial class URLForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose( bool disposing ) + { + if ( disposing && ( components != null ) ) + { + components.Dispose( ); + } + base.Dispose( disposing ); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent( ) + { + this.urlBox = new System.Windows.Forms.ComboBox( ); + this.cancelButton = new System.Windows.Forms.Button( ); + this.okButton = new System.Windows.Forms.Button( ); + this.descriptionLabel = new System.Windows.Forms.Label( ); + this.SuspendLayout( ); + // + // urlBox + // + this.urlBox.FormattingEnabled = true; + this.urlBox.Location = new System.Drawing.Point( 10, 35 ); + this.urlBox.Name = "urlBox"; + this.urlBox.Size = new System.Drawing.Size( 325, 21 ); + this.urlBox.TabIndex = 0; + // + // cancelButton + // + this.cancelButton.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.cancelButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.cancelButton.Location = new System.Drawing.Point( 180, 80 ); + this.cancelButton.Name = "cancelButton"; + this.cancelButton.Size = new System.Drawing.Size( 75, 23 ); + this.cancelButton.TabIndex = 5; + this.cancelButton.Text = "Cancel"; + // + // okButton + // + this.okButton.DialogResult = System.Windows.Forms.DialogResult.OK; + this.okButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.okButton.Location = new System.Drawing.Point( 90, 80 ); + this.okButton.Name = "okButton"; + this.okButton.Size = new System.Drawing.Size( 75, 23 ); + this.okButton.TabIndex = 4; + this.okButton.Text = "Ok"; + this.okButton.Click += new System.EventHandler( this.okButton_Click ); + // + // descriptionLabel + // + this.descriptionLabel.Location = new System.Drawing.Point( 10, 10 ); + this.descriptionLabel.Name = "descriptionLabel"; + this.descriptionLabel.Size = new System.Drawing.Size( 325, 13 ); + this.descriptionLabel.TabIndex = 6; + // + // URLForm + // + this.AcceptButton = this.okButton; + this.AutoScaleDimensions = new System.Drawing.SizeF( 6F, 13F ); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.CancelButton = this.cancelButton; + this.ClientSize = new System.Drawing.Size( 344, 116 ); + this.Controls.Add( this.descriptionLabel ); + this.Controls.Add( this.cancelButton ); + this.Controls.Add( this.okButton ); + this.Controls.Add( this.urlBox ); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "URLForm"; + this.ShowInTaskbar = false; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Open URL"; + this.ResumeLayout( false ); + + } + + #endregion + + private System.Windows.Forms.ComboBox urlBox; + private System.Windows.Forms.Button cancelButton; + private System.Windows.Forms.Button okButton; + private System.Windows.Forms.Label descriptionLabel; + } +} \ No newline at end of file diff --git a/Samples/Vision/MotionDetector/URLForm.cs b/Samples/Vision/MotionDetector/URLForm.cs new file mode 100644 index 00000000..3031e3cf --- /dev/null +++ b/Samples/Vision/MotionDetector/URLForm.cs @@ -0,0 +1,58 @@ +// Motion Detection sample application +// AForge.NET Framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2006-2011 +// contacts@aforgenet.com +// + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; + +namespace MotionDetectorSample +{ + public partial class URLForm : Form + { + private string url; + + // Selected URL + public string URL + { + get { return url; } + } + + // URLs to display in combo box + public string[] URLs + { + set + { + urlBox.Items.AddRange( value ); + } + } + + // Description of the dialog + public string Description + { + get { return descriptionLabel.Text; } + set { descriptionLabel.Text = value; } + } + + // Constructor + public URLForm( ) + { + InitializeComponent( ); + } + + // On "Ok" button clicked + private void okButton_Click( object sender, EventArgs e ) + { + url = urlBox.Text; + + } + } +} \ No newline at end of file diff --git a/Samples/Vision/MotionDetector/URLForm.resx b/Samples/Vision/MotionDetector/URLForm.resx new file mode 100644 index 00000000..19dc0dd8 --- /dev/null +++ b/Samples/Vision/MotionDetector/URLForm.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Samples/Vision/MotionDetector/VideoCaptureDeviceForm.Designer.cs b/Samples/Vision/MotionDetector/VideoCaptureDeviceForm.Designer.cs new file mode 100644 index 00000000..e9018c9b --- /dev/null +++ b/Samples/Vision/MotionDetector/VideoCaptureDeviceForm.Designer.cs @@ -0,0 +1,106 @@ +namespace MotionDetectorSample +{ + partial class VideoCaptureDeviceForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose( bool disposing ) + { + if ( disposing && ( components != null ) ) + { + components.Dispose( ); + } + base.Dispose( disposing ); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent( ) + { + this.label1 = new System.Windows.Forms.Label( ); + this.devicesCombo = new System.Windows.Forms.ComboBox( ); + this.cancelButton = new System.Windows.Forms.Button( ); + this.okButton = new System.Windows.Forms.Button( ); + this.SuspendLayout( ); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point( 10, 10 ); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size( 168, 13 ); + this.label1.TabIndex = 0; + this.label1.Text = "Select local video capture device:"; + // + // devicesCombo + // + this.devicesCombo.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.devicesCombo.FormattingEnabled = true; + this.devicesCombo.Location = new System.Drawing.Point( 10, 35 ); + this.devicesCombo.Name = "devicesCombo"; + this.devicesCombo.Size = new System.Drawing.Size( 325, 21 ); + this.devicesCombo.TabIndex = 1; + // + // cancelButton + // + this.cancelButton.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.cancelButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.cancelButton.Location = new System.Drawing.Point( 180, 80 ); + this.cancelButton.Name = "cancelButton"; + this.cancelButton.Size = new System.Drawing.Size( 75, 23 ); + this.cancelButton.TabIndex = 7; + this.cancelButton.Text = "Cancel"; + // + // okButton + // + this.okButton.DialogResult = System.Windows.Forms.DialogResult.OK; + this.okButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.okButton.Location = new System.Drawing.Point( 90, 80 ); + this.okButton.Name = "okButton"; + this.okButton.Size = new System.Drawing.Size( 75, 23 ); + this.okButton.TabIndex = 6; + this.okButton.Text = "Ok"; + this.okButton.Click += new System.EventHandler( this.okButton_Click ); + // + // VideoCaptureDeviceForm + // + this.AcceptButton = this.okButton; + this.AutoScaleDimensions = new System.Drawing.SizeF( 6F, 13F ); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.CancelButton = this.cancelButton; + this.ClientSize = new System.Drawing.Size( 344, 116 ); + this.Controls.Add( this.cancelButton ); + this.Controls.Add( this.okButton ); + this.Controls.Add( this.devicesCombo ); + this.Controls.Add( this.label1 ); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "VideoCaptureDeviceForm"; + this.ShowInTaskbar = false; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Open local video capture device"; + this.ResumeLayout( false ); + this.PerformLayout( ); + + } + + #endregion + + private System.Windows.Forms.Label label1; + private System.Windows.Forms.ComboBox devicesCombo; + private System.Windows.Forms.Button cancelButton; + private System.Windows.Forms.Button okButton; + } +} \ No newline at end of file diff --git a/Samples/Vision/MotionDetector/VideoCaptureDeviceForm.cs b/Samples/Vision/MotionDetector/VideoCaptureDeviceForm.cs new file mode 100644 index 00000000..60ecf289 --- /dev/null +++ b/Samples/Vision/MotionDetector/VideoCaptureDeviceForm.cs @@ -0,0 +1,68 @@ +// Motion Detection sample application +// AForge.NET Framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2005-2009 +// andrew.kirillov@aforgenet.com +// + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; + +using AForge.Video.DirectShow; + +namespace MotionDetectorSample +{ + public partial class VideoCaptureDeviceForm : Form + { + FilterInfoCollection videoDevices; + private string device; + + // Video device + public string VideoDevice + { + get { return device; } + } + + // Constructor + public VideoCaptureDeviceForm( ) + { + InitializeComponent( ); + + // show device list + try + { + // enumerate video devices + videoDevices = new FilterInfoCollection( FilterCategory.VideoInputDevice ); + + if ( videoDevices.Count == 0 ) + throw new ApplicationException( ); + + // add all devices to combo + foreach ( FilterInfo device in videoDevices ) + { + devicesCombo.Items.Add( device.Name ); + } + } + catch ( ApplicationException ) + { + devicesCombo.Items.Add( "No local capture devices" ); + devicesCombo.Enabled = false; + okButton.Enabled = false; + } + + devicesCombo.SelectedIndex = 0; + } + + // Ok button clicked + private void okButton_Click( object sender, EventArgs e ) + { + device = videoDevices[devicesCombo.SelectedIndex].MonikerString; + } + } +} \ No newline at end of file diff --git a/Samples/Vision/MotionDetector/VideoCaptureDeviceForm.resx b/Samples/Vision/MotionDetector/VideoCaptureDeviceForm.resx new file mode 100644 index 00000000..19dc0dd8 --- /dev/null +++ b/Samples/Vision/MotionDetector/VideoCaptureDeviceForm.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Setup/Docs Projects/AForge.NET.shfb b/Setup/Docs Projects/AForge.NET.shfb new file mode 100644 index 00000000..14759980 --- /dev/null +++ b/Setup/Docs Projects/AForge.NET.shfb @@ -0,0 +1,297 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + The <b>AForge</b> namespace is a core namespace of <b>AForge.NET</b> framework, which contains core classes used by other namespaces of the framework and classes, which can be used independently for various purposes. + The <b>AForge.Controls</b> namespace contains different useful UI controls, which may be used together with other classes of <b>AForge.NET</b> framework. + The <b>AForge.Fuzzy</b> namespace contains set of interfaces and classes to operate with fuzzy sets. + The <b>AForge.Genetic</b> namespace contains interfaces and classes for genetic computations. The namespace and its sub namespaces contain classes, which allows to solve many different problems (optimization, approximation, prediction, etc) with the help of Genetic Algorithms (GA), Genetic Programming (GP), Gene Expression Programming (GEP). + The <b>AForge.Imaging</b> namespace contains interfaces and classes for different image processing routines. + The <b>AForge.Imaging.ColorReduction</b> namespace contains set of classes aimed to perform color reduction in color images, which include color quantization classes, color re-coding functionality and color dithering algorithms. + The <b>AForge.Imaging</b> namespace contains interfaces and classes for different image processing routines, which are done on complex Fourier transformed images. + The <b>AForge.Imaging.Filters</b> namespace contains collection of interfaces and classes, which provide different image processing filters. Classes of this namespace allow to do different transformation of a source image, doing it directly on the source image or providing new image as a result of image processing routine. + The <b>AForge.Imaging.Formats</b> namespace contains interfaces and classes, which are used to handle different image file formats. + The <b>AForge.Imaging.Textures</b> namespace contains collection of classes, which generate different type of textures used for creating different effects. + The <b>AForge.MachineLearning</b> namespace contains interfaces and classes for different algorithms of machine learning. + The <b>AForge.Math</b> namespace contains set of math utilities, which are used by other <b>AForge.NET</b> framework's namespaces or may be used individually. + The <b>AForge.Math.Geometry</b> namespace contains set of geometry utilities, which are used by other <b>AForge.NET</b> namespaces or may be used individually. + The <b>AForge.Math.Metrics</b> namespace contains set of classes, which implement different difference and similarity metrics. + The <b>AForge.Math.Random</b> namespace contains interfaces and classes for random numbers generation. + The <b>AForge.Neuro</b> namespace contains interfaces and classes for neural networks computations. The namespace and its sub namespaces contain classes, which allow as creating of popular neural network architectures, as classes to train these networks. + The<b>AForge.Neuro.Learning</b> namespace contains interfaces and classes for neurons and neural networks learning. The namespace contains classes as for supervised learning, as for unsupervised learning. + The <b>AForge.Robotics.Lego</b> namespace contains set of classes, which allow to manipulate different Lego Mindstorm robotics devices. The list of supported devices includes Lego Minstorm RCX and Lego Mindstorm NXT. + The <b>AForge.Robotics.Surveyor</b> namespace contains set of classes, which are aimed to control robotics kits provided by <a href="http://www.surveyor.com/">Surveyor</a> company, such as SRV-1 camera/robot and SVS (Stereo Vision System) board. + The <b>AForge.Robotics.TeRK</b> namespace contains set of classes, which are aimed to control TeRK (<a href="http://www.terk.ri.cmu.edu/">Telepresence Robot Kit</a>) based robots, such as Qwerk. + The <b>AForge.Video</b> namespace contains interfaces and classes to access different video sources. + The <b>AForge.Video.DirectShow</b> namespace contains classes, which allow to access video sources using <i>DirectShow</i> interface. + The <b>AForge.Video.FFMPEG</b> namespace contains classes, which allow reading and writing video files through <a href="http://www.ffmpeg.org/">FFmpeg</a> library. This is an experimental namespace which is aimed to provider better API for writing/reading video file and replace <b>AForge.Video.VFW</b> at some point in time. <b>Note:</b> the API allows writing and reading video data only. Reading and writing of sound data is not supported and is not planned for now. + The <b>AForge.Video.Kinect</b> namespace contains classes, which allow to access to video and depth data of Microsoft’s Xbox <a href="http://en.wikipedia.org/wiki/Kinect">Kinect</a> device. + The <b>AForge.Video.VFW</b> namespace contains classes, which allow reading and writing of AVI files using <i>Video for Windows</i> interface. + The <b>AForge.Video.Ximea</b> namespace contains classes, which allow capturing images from <a href="http://www.ximea.com/">XIMEA</a> cameras. + The <b>AForge.Vision.Motion</b> namespace contains interfaces and classes used for motion detection and processing in video streams. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <b>AForge.NET Framework</b> is a C# framework designed for developers and researchers in the fields of Computer Vision and Artificial Intelligence - image processing, computer vision, neural networks, genetic algorithms, machine learning, etc. + Summary, Parameter, Returns, AutoDocumentCtors, Namespace, TypeParameter + InheritedMembers, Protected + + + ..\..\Docs\ + + + True + True + + HtmlHelp1x + False + 2.0.50727 + False + False + True + AForge.NET Framework + AForge.NET Framework + AForge.NET + en-US + + + contacts@aforgenet.com + Feedback Contact + + <a href="http://www.aforgenet.com/" target="_blank">AForge.NET</a> © 2006-2013 + Local + Msdn + Blank + vs2005 + Guid + CSharp + False + True + False + Hierarchical + True + ms.vsipcc+, ms.vsexpresscc+ + 1.0.0.0 + AboveNamespaces + \ No newline at end of file diff --git a/Setup/Installer/aforge.iss b/Setup/Installer/aforge.iss new file mode 100644 index 00000000..92075867 --- /dev/null +++ b/Setup/Installer/aforge.iss @@ -0,0 +1,51 @@ +; AForge.NET setup project + +[Setup] +AppName=AForge.NET Framework +AppVerName=AForge.NET Framework 2.2.5 +AppPublisher=AForge.NET +AppPublisherURL=http://www.aforgenet.com/framework/ +AppSupportURL=http://www.aforgenet.com/framework/ +AppUpdatesURL=http://www.aforgenet.com/framework/ +DefaultDirName={pf}\AForge.NET\Framework +DefaultGroupName=AForge.NET\Framework +AllowNoIcons=yes +OutputBaseFilename=setup +Compression=lzma +SolidCompression=yes +LicenseFile=license.txt + +[Languages] +Name: "english"; MessagesFile: "compiler:Default.isl" + +[Components] +Name: "ext"; Description: "External Dependencies"; Types: full compact custom; Flags: fixed +Name: "libs"; Description: "AForge.NET Framework's libraries"; Types: full compact custom; Flags: fixed +Name: "docs"; Description: "Documentation"; Types: full custom +Name: "sources"; Description: "Sources"; Types: full custom +Name: "samples"; Description: "Samples"; Types: full custom +Name: "tests"; Description: "Unit Tests"; Types: full custom + +[Files] +Source: "Files\Copyright.txt"; DestDir: "{app}"; Components: libs +Source: "Files\Release notes.txt"; DestDir: "{app}"; Components: libs +Source: "Files\lgpl-3.0.txt"; DestDir: "{app}"; Components: libs +Source: "Files\gpl-3.0.txt"; DestDir: "{app}"; Components: libs +Source: "Files\License.txt"; DestDir: "{app}"; Components: libs +Source: "Files\Docs\*"; DestDir: "{app}\Docs"; Components: docs +Source: "Files\Externals\*"; DestDir: "{app}\Externals"; Components: ext; Flags: recursesubdirs +Source: "Files\Release\*"; DestDir: "{app}\Release"; Components: libs +Source: "Files\Samples\*"; DestDir: "{app}\Samples"; Components: samples; Flags: recursesubdirs +Source: "Files\Sources\*"; DestDir: "{app}\Sources"; Components: sources; Flags: recursesubdirs +Source: "Files\Tools\*"; DestDir: "{app}\Tools"; Components: sources; Flags: recursesubdirs +Source: "Files\Unit Tests\*"; DestDir: "{app}\Unit Tests"; Components: tests; Flags: recursesubdirs + +[Registry] +Root: HKLM; Subkey: "Software\Microsoft\.NETFramework\AssemblyFolders\AForge.NET"; Flags: uninsdeletekey; ValueType: string; ValueData: "{app}\Release" + +[Icons] +Name: "{group}\Documentation"; Filename: "{app}\Docs\AForge.NET.chm" +Name: "{group}\Project Home"; Filename: "http://www.aforgenet.com/framework/" +Name: "{group}\Release Notes"; Filename: "{app}\Release notes.txt" + +Name: "{group}\{cm:UninstallProgram,AForge.NET Framework}"; Filename: "{uninstallexe}" diff --git a/Setup/Installer/license.txt b/Setup/Installer/license.txt new file mode 100644 index 00000000..0e5ff1a0 --- /dev/null +++ b/Setup/Installer/license.txt @@ -0,0 +1,858 @@ + License agreement + +Due to some external dependencies, the framework does not have a common +single license. The AForge.Video.FFMPEG component is GPL v3 licensed, +because it depends on the GPL build of the FFMPEG library. The rest of +the framework is LGPL v3 licensed. + +Both licenses text is provided below. + + +=============================================================== + + + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + 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. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. + + +=============================================================== + + + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. diff --git a/Setup/NuGet/AForge.Controls.nuspec b/Setup/NuGet/AForge.Controls.nuspec new file mode 100644 index 00000000..c2371c1a --- /dev/null +++ b/Setup/NuGet/AForge.Controls.nuspec @@ -0,0 +1,26 @@ + + + + AForge.Controls + 2.2.5 + AForge.Controls + AForge.NET + AForge.NET + http://www.aforgenet.com/framework/license.html + http://www.aforgenet.com/framework/ + http://www.aforgenet.com/img/aforgenet_icon.png + false + The AForge.Controls library contains some reusable UI classes used as in AForge.NET framework's samples, as in some independent applications. Full list of features is available on the project's web site. + AForge.Controls library from the AForge.NET framework + aforge.net framework + + + + + + + + + + + \ No newline at end of file diff --git a/Setup/NuGet/AForge.Genetic.nuspec b/Setup/NuGet/AForge.Genetic.nuspec new file mode 100644 index 00000000..ce313f4f --- /dev/null +++ b/Setup/NuGet/AForge.Genetic.nuspec @@ -0,0 +1,25 @@ + + + + AForge.Genetic + 2.2.5 + AForge.Genetic + AForge.NET + AForge.NET + http://www.aforgenet.com/framework/license.html + http://www.aforgenet.com/framework/ + http://www.aforgenet.com/img/aforgenet_icon.png + false + The AForge.Genetic library contains classes to run Genetic Algorithms (GA), Genetic Programming (GP) and Gene Expression Programming (GEP). Set of chromosome and selection classes are provided. Full list of features is available on the project's web site. + AForge.Genetic library from the AForge.NET framework + aforge.net framework genetic algorithms programming + + + + + + + + + + \ No newline at end of file diff --git a/Setup/NuGet/AForge.Imaging.nuspec b/Setup/NuGet/AForge.Imaging.nuspec new file mode 100644 index 00000000..65478058 --- /dev/null +++ b/Setup/NuGet/AForge.Imaging.nuspec @@ -0,0 +1,25 @@ + + + + AForge.Imaging + 2.2.5 + AForge.Imaging + AForge.NET + AForge.NET + http://www.aforgenet.com/framework/license.html + http://www.aforgenet.com/framework/ + http://www.aforgenet.com/img/aforgenet_icon.png + false + The AForge.Imaging library contains interfaces and classes for different image processing routines and filters. Full list of features is available on the project's web site. + AForge.Imaging library from the AForge.NET framework + aforge.net framework image processing computer vision + + + + + + + + + + \ No newline at end of file diff --git a/Setup/NuGet/AForge.Math.nuspec b/Setup/NuGet/AForge.Math.nuspec new file mode 100644 index 00000000..1abfdbe4 --- /dev/null +++ b/Setup/NuGet/AForge.Math.nuspec @@ -0,0 +1,24 @@ + + + + AForge.Math + 2.2.5 + AForge.Math + AForge.NET + AForge.NET + http://www.aforgenet.com/framework/license.html + http://www.aforgenet.com/framework/ + http://www.aforgenet.com/img/aforgenet_icon.png + false + The AForge.Math library contains set of math utilities, which are used by other AForge.NET framework's libraries or may be used individually. + AForge.Math library from the AForge.NET framework + aforge.net framework math 3D pose estimation + + + + + + + + + \ No newline at end of file diff --git a/Setup/NuGet/AForge.Neuro.nuspec b/Setup/NuGet/AForge.Neuro.nuspec new file mode 100644 index 00000000..81c0d908 --- /dev/null +++ b/Setup/NuGet/AForge.Neuro.nuspec @@ -0,0 +1,26 @@ + + + + AForge.Neuro + 2.2.5 + AForge.Neuro + AForge.NET + AForge.NET + http://www.aforgenet.com/framework/license.html + http://www.aforgenet.com/framework/ + http://www.aforgenet.com/img/aforgenet_icon.png + false + The AForge.Neuro library contains classes for artificial neural network computation - feed forwards networks with error back propagation learning and Kohonen self organizing maps. Full list of features is available on the project's web site. + AForge.Neuro library from the AForge.NET framework + aforge.net framework artificial neural networks + + + + + + + + + + + \ No newline at end of file diff --git a/Setup/NuGet/AForge.Video.DirectShow.nuspec b/Setup/NuGet/AForge.Video.DirectShow.nuspec new file mode 100644 index 00000000..bffae8cd --- /dev/null +++ b/Setup/NuGet/AForge.Video.DirectShow.nuspec @@ -0,0 +1,24 @@ + + + + AForge.Video.DirectShow + 2.2.5 + AForge.Video.DirectShow + AForge.NET + AForge.NET + http://www.aforgenet.com/framework/license.html + http://www.aforgenet.com/framework/ + http://www.aforgenet.com/img/aforgenet_icon.png + false + The AForge.Video.DirectShow library contains classes, which allow to access video sources using DirectShow interface (USB web cameras, capture devices, video files, etc.). + AForge.Video.DirectShow library of the AForge.NET framework + aforge.net framework video capture cameras + + + + + + + + + \ No newline at end of file diff --git a/Setup/NuGet/AForge.Video.nuspec b/Setup/NuGet/AForge.Video.nuspec new file mode 100644 index 00000000..1cc8e364 --- /dev/null +++ b/Setup/NuGet/AForge.Video.nuspec @@ -0,0 +1,24 @@ + + + + AForge.Video + 2.2.5 + AForge.Video + AForge.NET + AForge.NET + http://www.aforgenet.com/framework/license.html + http://www.aforgenet.com/framework/ + http://www.aforgenet.com/img/aforgenet_icon.png + false + The AForge.Video library contains interfaces and classes to access different video sources, such as IP video cameras (MJPEG streams). The library defines types used by other video related libraries from AForge.NET framework. + AForge.Video library of the AForge.NET framework + aforge.net framework video MJPEG cameras + + + + + + + + + \ No newline at end of file diff --git a/Setup/NuGet/AForge.Vision.nuspec b/Setup/NuGet/AForge.Vision.nuspec new file mode 100644 index 00000000..aadefb09 --- /dev/null +++ b/Setup/NuGet/AForge.Vision.nuspec @@ -0,0 +1,25 @@ + + + + AForge.Vision + 2.2.5 + AForge.Vision + AForge.NET + AForge.NET + http://www.aforgenet.com/framework/license.html + http://www.aforgenet.com/framework/ + http://www.aforgenet.com/img/aforgenet_icon.png + false + The AForge.Vision library contains some computer vision classes - set of motion detection algorithms. Full list of features is available on the project's web site. + AForge.Vision library from the AForge.NET framework + aforge.net framework computer vision motion detection + + + + + + + + + + \ No newline at end of file diff --git a/Setup/NuGet/AForge.nuspec b/Setup/NuGet/AForge.nuspec new file mode 100644 index 00000000..a9267f5f --- /dev/null +++ b/Setup/NuGet/AForge.nuspec @@ -0,0 +1,21 @@ + + + + AForge + 2.2.5 + AForge (core library) + AForge.NET + AForge.NET + http://www.aforgenet.com/framework/license.html + http://www.aforgenet.com/framework/ + http://www.aforgenet.com/img/aforgenet_icon.png + false + The AForge library is a core library of AForge.NET framework, which contains core classes used by other libraries of the framework and classes, which can be used independently for various purposes. + Core library of the AForge.NET framework + aforge.net framework + + + + + + \ No newline at end of file diff --git a/Sources/Build All.sln b/Sources/Build All.sln new file mode 100644 index 00000000..a8031697 --- /dev/null +++ b/Sources/Build All.sln @@ -0,0 +1,249 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual C# Express 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Core", "Core\Core.csproj", "{631AC093-430F-45F4-BA0C-AF0F0405918A}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Controls", "Controls\Controls.csproj", "{4CCA6844-9102-4A3B-8148-EA3D359B2586}" + ProjectSection(ProjectDependencies) = postProject + {631AC093-430F-45F4-BA0C-AF0F0405918A} = {631AC093-430F-45F4-BA0C-AF0F0405918A} + {C6A8B9AE-0749-41C7-8FF9-02C156696F45} = {C6A8B9AE-0749-41C7-8FF9-02C156696F45} + {809725DC-6502-4732-A51C-DEB7FEA12975} = {809725DC-6502-4732-A51C-DEB7FEA12975} + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Fuzzy", "Fuzzy\Fuzzy.csproj", "{B631038F-E12C-4D0D-8B25-FF7F62FE62D1}" + ProjectSection(ProjectDependencies) = postProject + {631AC093-430F-45F4-BA0C-AF0F0405918A} = {631AC093-430F-45F4-BA0C-AF0F0405918A} + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Genetic", "Genetic\Genetic.csproj", "{2EFAA327-1789-4438-B9F5-E83ACAE12DB2}" + ProjectSection(ProjectDependencies) = postProject + {C0FAF524-72E4-46F7-8C1B-A6B74DEC5EBE} = {C0FAF524-72E4-46F7-8C1B-A6B74DEC5EBE} + {631AC093-430F-45F4-BA0C-AF0F0405918A} = {631AC093-430F-45F4-BA0C-AF0F0405918A} + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Imaging", "Imaging\Imaging.csproj", "{C6A8B9AE-0749-41C7-8FF9-02C156696F45}" + ProjectSection(ProjectDependencies) = postProject + {C0FAF524-72E4-46F7-8C1B-A6B74DEC5EBE} = {C0FAF524-72E4-46F7-8C1B-A6B74DEC5EBE} + {631AC093-430F-45F4-BA0C-AF0F0405918A} = {631AC093-430F-45F4-BA0C-AF0F0405918A} + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Imaging.Formats", "Imaging.Formats\Imaging.Formats.csproj", "{50050BA8-B739-4931-8DBA-D77A031537FF}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MachineLearning", "MachineLearning\MachineLearning.csproj", "{D42A814D-E178-48D0-9125-ED20151B2E45}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Math", "Math\Math.csproj", "{C0FAF524-72E4-46F7-8C1B-A6B74DEC5EBE}" + ProjectSection(ProjectDependencies) = postProject + {631AC093-430F-45F4-BA0C-AF0F0405918A} = {631AC093-430F-45F4-BA0C-AF0F0405918A} + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Neuro", "Neuro\Neuro.csproj", "{02B5E453-2085-4E41-86D9-C8E8A03FB1B9}" + ProjectSection(ProjectDependencies) = postProject + {C0FAF524-72E4-46F7-8C1B-A6B74DEC5EBE} = {C0FAF524-72E4-46F7-8C1B-A6B74DEC5EBE} + {2EFAA327-1789-4438-B9F5-E83ACAE12DB2} = {2EFAA327-1789-4438-B9F5-E83ACAE12DB2} + {631AC093-430F-45F4-BA0C-AF0F0405918A} = {631AC093-430F-45F4-BA0C-AF0F0405918A} + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lego", "Robotics.Lego\Lego.csproj", "{F56FE364-ABAE-44B3-A939-900EB994FB9B}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Video", "Video\Video.csproj", "{809725DC-6502-4732-A51C-DEB7FEA12975}" + ProjectSection(ProjectDependencies) = postProject + {631AC093-430F-45F4-BA0C-AF0F0405918A} = {631AC093-430F-45F4-BA0C-AF0F0405918A} + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Video.DirectShow", "Video.DirectShow\Video.DirectShow.csproj", "{26CD2CE7-FF63-4669-83B0-7D9C8F3408EE}" + ProjectSection(ProjectDependencies) = postProject + {809725DC-6502-4732-A51C-DEB7FEA12975} = {809725DC-6502-4732-A51C-DEB7FEA12975} + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Video.VFW", "Video.VFW\Video.VFW.csproj", "{22E852C0-17FF-4106-9DF6-41EABB8C0613}" + ProjectSection(ProjectDependencies) = postProject + {631AC093-430F-45F4-BA0C-AF0F0405918A} = {631AC093-430F-45F4-BA0C-AF0F0405918A} + {26CD2CE7-FF63-4669-83B0-7D9C8F3408EE} = {26CD2CE7-FF63-4669-83B0-7D9C8F3408EE} + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Vision", "Vision\Vision.csproj", "{B99CBE2E-BAAD-45D5-8A84-CAA6A2286C0B}" + ProjectSection(ProjectDependencies) = postProject + {631AC093-430F-45F4-BA0C-AF0F0405918A} = {631AC093-430F-45F4-BA0C-AF0F0405918A} + {C6A8B9AE-0749-41C7-8FF9-02C156696F45} = {C6A8B9AE-0749-41C7-8FF9-02C156696F45} + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Robotics.Surveyor", "Robotics.Surveyor\Robotics.Surveyor.csproj", "{3D9EFCF7-61CD-49DD-9300-9F9C993FB37B}" + ProjectSection(ProjectDependencies) = postProject + {631AC093-430F-45F4-BA0C-AF0F0405918A} = {631AC093-430F-45F4-BA0C-AF0F0405918A} + {809725DC-6502-4732-A51C-DEB7FEA12975} = {809725DC-6502-4732-A51C-DEB7FEA12975} + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Robotics.TeRK", "Robotics.TeRK\Robotics.TeRK.csproj", "{CB9BB289-ACC9-4A05-8403-98D453F23728}" + ProjectSection(ProjectDependencies) = postProject + {631AC093-430F-45F4-BA0C-AF0F0405918A} = {631AC093-430F-45F4-BA0C-AF0F0405918A} + {809725DC-6502-4732-A51C-DEB7FEA12975} = {809725DC-6502-4732-A51C-DEB7FEA12975} + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Video.Kinect", "Video.Kinect\Video.Kinect.csproj", "{9DA8E727-4038-4E6B-90BD-853730FDFA49}" + ProjectSection(ProjectDependencies) = postProject + {631AC093-430F-45F4-BA0C-AF0F0405918A} = {631AC093-430F-45F4-BA0C-AF0F0405918A} + {C6A8B9AE-0749-41C7-8FF9-02C156696F45} = {C6A8B9AE-0749-41C7-8FF9-02C156696F45} + {809725DC-6502-4732-A51C-DEB7FEA12975} = {809725DC-6502-4732-A51C-DEB7FEA12975} + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Video.Ximea", "Video.Ximea\Video.Ximea.csproj", "{AEDD6CFB-747B-4077-9288-9CD2A86090F1}" + ProjectSection(ProjectDependencies) = postProject + {631AC093-430F-45F4-BA0C-AF0F0405918A} = {631AC093-430F-45F4-BA0C-AF0F0405918A} + {809725DC-6502-4732-A51C-DEB7FEA12975} = {809725DC-6502-4732-A51C-DEB7FEA12975} + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug Complete|Any CPU = Debug Complete|Any CPU + Debug|Any CPU = Debug|Any CPU + Release Complete|Any CPU = Release Complete|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {631AC093-430F-45F4-BA0C-AF0F0405918A}.Debug Complete|Any CPU.ActiveCfg = Debug|Any CPU + {631AC093-430F-45F4-BA0C-AF0F0405918A}.Debug Complete|Any CPU.Build.0 = Debug|Any CPU + {631AC093-430F-45F4-BA0C-AF0F0405918A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {631AC093-430F-45F4-BA0C-AF0F0405918A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {631AC093-430F-45F4-BA0C-AF0F0405918A}.Release Complete|Any CPU.ActiveCfg = Release|Any CPU + {631AC093-430F-45F4-BA0C-AF0F0405918A}.Release Complete|Any CPU.Build.0 = Release|Any CPU + {631AC093-430F-45F4-BA0C-AF0F0405918A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {631AC093-430F-45F4-BA0C-AF0F0405918A}.Release|Any CPU.Build.0 = Release|Any CPU + {4CCA6844-9102-4A3B-8148-EA3D359B2586}.Debug Complete|Any CPU.ActiveCfg = Debug|Any CPU + {4CCA6844-9102-4A3B-8148-EA3D359B2586}.Debug Complete|Any CPU.Build.0 = Debug|Any CPU + {4CCA6844-9102-4A3B-8148-EA3D359B2586}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4CCA6844-9102-4A3B-8148-EA3D359B2586}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4CCA6844-9102-4A3B-8148-EA3D359B2586}.Release Complete|Any CPU.ActiveCfg = Release|Any CPU + {4CCA6844-9102-4A3B-8148-EA3D359B2586}.Release Complete|Any CPU.Build.0 = Release|Any CPU + {4CCA6844-9102-4A3B-8148-EA3D359B2586}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4CCA6844-9102-4A3B-8148-EA3D359B2586}.Release|Any CPU.Build.0 = Release|Any CPU + {B631038F-E12C-4D0D-8B25-FF7F62FE62D1}.Debug Complete|Any CPU.ActiveCfg = Debug|Any CPU + {B631038F-E12C-4D0D-8B25-FF7F62FE62D1}.Debug Complete|Any CPU.Build.0 = Debug|Any CPU + {B631038F-E12C-4D0D-8B25-FF7F62FE62D1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B631038F-E12C-4D0D-8B25-FF7F62FE62D1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B631038F-E12C-4D0D-8B25-FF7F62FE62D1}.Release Complete|Any CPU.ActiveCfg = Release|Any CPU + {B631038F-E12C-4D0D-8B25-FF7F62FE62D1}.Release Complete|Any CPU.Build.0 = Release|Any CPU + {B631038F-E12C-4D0D-8B25-FF7F62FE62D1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B631038F-E12C-4D0D-8B25-FF7F62FE62D1}.Release|Any CPU.Build.0 = Release|Any CPU + {2EFAA327-1789-4438-B9F5-E83ACAE12DB2}.Debug Complete|Any CPU.ActiveCfg = Debug|Any CPU + {2EFAA327-1789-4438-B9F5-E83ACAE12DB2}.Debug Complete|Any CPU.Build.0 = Debug|Any CPU + {2EFAA327-1789-4438-B9F5-E83ACAE12DB2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2EFAA327-1789-4438-B9F5-E83ACAE12DB2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2EFAA327-1789-4438-B9F5-E83ACAE12DB2}.Release Complete|Any CPU.ActiveCfg = Release|Any CPU + {2EFAA327-1789-4438-B9F5-E83ACAE12DB2}.Release Complete|Any CPU.Build.0 = Release|Any CPU + {2EFAA327-1789-4438-B9F5-E83ACAE12DB2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2EFAA327-1789-4438-B9F5-E83ACAE12DB2}.Release|Any CPU.Build.0 = Release|Any CPU + {C6A8B9AE-0749-41C7-8FF9-02C156696F45}.Debug Complete|Any CPU.ActiveCfg = Debug|Any CPU + {C6A8B9AE-0749-41C7-8FF9-02C156696F45}.Debug Complete|Any CPU.Build.0 = Debug|Any CPU + {C6A8B9AE-0749-41C7-8FF9-02C156696F45}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C6A8B9AE-0749-41C7-8FF9-02C156696F45}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C6A8B9AE-0749-41C7-8FF9-02C156696F45}.Release Complete|Any CPU.ActiveCfg = Release|Any CPU + {C6A8B9AE-0749-41C7-8FF9-02C156696F45}.Release Complete|Any CPU.Build.0 = Release|Any CPU + {C6A8B9AE-0749-41C7-8FF9-02C156696F45}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C6A8B9AE-0749-41C7-8FF9-02C156696F45}.Release|Any CPU.Build.0 = Release|Any CPU + {50050BA8-B739-4931-8DBA-D77A031537FF}.Debug Complete|Any CPU.ActiveCfg = Debug|Any CPU + {50050BA8-B739-4931-8DBA-D77A031537FF}.Debug Complete|Any CPU.Build.0 = Debug|Any CPU + {50050BA8-B739-4931-8DBA-D77A031537FF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {50050BA8-B739-4931-8DBA-D77A031537FF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {50050BA8-B739-4931-8DBA-D77A031537FF}.Release Complete|Any CPU.ActiveCfg = Release|Any CPU + {50050BA8-B739-4931-8DBA-D77A031537FF}.Release Complete|Any CPU.Build.0 = Release|Any CPU + {50050BA8-B739-4931-8DBA-D77A031537FF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {50050BA8-B739-4931-8DBA-D77A031537FF}.Release|Any CPU.Build.0 = Release|Any CPU + {D42A814D-E178-48D0-9125-ED20151B2E45}.Debug Complete|Any CPU.ActiveCfg = Debug|Any CPU + {D42A814D-E178-48D0-9125-ED20151B2E45}.Debug Complete|Any CPU.Build.0 = Debug|Any CPU + {D42A814D-E178-48D0-9125-ED20151B2E45}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D42A814D-E178-48D0-9125-ED20151B2E45}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D42A814D-E178-48D0-9125-ED20151B2E45}.Release Complete|Any CPU.ActiveCfg = Release|Any CPU + {D42A814D-E178-48D0-9125-ED20151B2E45}.Release Complete|Any CPU.Build.0 = Release|Any CPU + {D42A814D-E178-48D0-9125-ED20151B2E45}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D42A814D-E178-48D0-9125-ED20151B2E45}.Release|Any CPU.Build.0 = Release|Any CPU + {C0FAF524-72E4-46F7-8C1B-A6B74DEC5EBE}.Debug Complete|Any CPU.ActiveCfg = Debug|Any CPU + {C0FAF524-72E4-46F7-8C1B-A6B74DEC5EBE}.Debug Complete|Any CPU.Build.0 = Debug|Any CPU + {C0FAF524-72E4-46F7-8C1B-A6B74DEC5EBE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C0FAF524-72E4-46F7-8C1B-A6B74DEC5EBE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C0FAF524-72E4-46F7-8C1B-A6B74DEC5EBE}.Release Complete|Any CPU.ActiveCfg = Release|Any CPU + {C0FAF524-72E4-46F7-8C1B-A6B74DEC5EBE}.Release Complete|Any CPU.Build.0 = Release|Any CPU + {C0FAF524-72E4-46F7-8C1B-A6B74DEC5EBE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C0FAF524-72E4-46F7-8C1B-A6B74DEC5EBE}.Release|Any CPU.Build.0 = Release|Any CPU + {02B5E453-2085-4E41-86D9-C8E8A03FB1B9}.Debug Complete|Any CPU.ActiveCfg = Debug|Any CPU + {02B5E453-2085-4E41-86D9-C8E8A03FB1B9}.Debug Complete|Any CPU.Build.0 = Debug|Any CPU + {02B5E453-2085-4E41-86D9-C8E8A03FB1B9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {02B5E453-2085-4E41-86D9-C8E8A03FB1B9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {02B5E453-2085-4E41-86D9-C8E8A03FB1B9}.Release Complete|Any CPU.ActiveCfg = Release|Any CPU + {02B5E453-2085-4E41-86D9-C8E8A03FB1B9}.Release Complete|Any CPU.Build.0 = Release|Any CPU + {02B5E453-2085-4E41-86D9-C8E8A03FB1B9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {02B5E453-2085-4E41-86D9-C8E8A03FB1B9}.Release|Any CPU.Build.0 = Release|Any CPU + {F56FE364-ABAE-44B3-A939-900EB994FB9B}.Debug Complete|Any CPU.ActiveCfg = Debug|Any CPU + {F56FE364-ABAE-44B3-A939-900EB994FB9B}.Debug Complete|Any CPU.Build.0 = Debug|Any CPU + {F56FE364-ABAE-44B3-A939-900EB994FB9B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F56FE364-ABAE-44B3-A939-900EB994FB9B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F56FE364-ABAE-44B3-A939-900EB994FB9B}.Release Complete|Any CPU.ActiveCfg = Release|Any CPU + {F56FE364-ABAE-44B3-A939-900EB994FB9B}.Release Complete|Any CPU.Build.0 = Release|Any CPU + {F56FE364-ABAE-44B3-A939-900EB994FB9B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F56FE364-ABAE-44B3-A939-900EB994FB9B}.Release|Any CPU.Build.0 = Release|Any CPU + {809725DC-6502-4732-A51C-DEB7FEA12975}.Debug Complete|Any CPU.ActiveCfg = Debug|Any CPU + {809725DC-6502-4732-A51C-DEB7FEA12975}.Debug Complete|Any CPU.Build.0 = Debug|Any CPU + {809725DC-6502-4732-A51C-DEB7FEA12975}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {809725DC-6502-4732-A51C-DEB7FEA12975}.Debug|Any CPU.Build.0 = Debug|Any CPU + {809725DC-6502-4732-A51C-DEB7FEA12975}.Release Complete|Any CPU.ActiveCfg = Release|Any CPU + {809725DC-6502-4732-A51C-DEB7FEA12975}.Release Complete|Any CPU.Build.0 = Release|Any CPU + {809725DC-6502-4732-A51C-DEB7FEA12975}.Release|Any CPU.ActiveCfg = Release|Any CPU + {809725DC-6502-4732-A51C-DEB7FEA12975}.Release|Any CPU.Build.0 = Release|Any CPU + {26CD2CE7-FF63-4669-83B0-7D9C8F3408EE}.Debug Complete|Any CPU.ActiveCfg = Debug|Any CPU + {26CD2CE7-FF63-4669-83B0-7D9C8F3408EE}.Debug Complete|Any CPU.Build.0 = Debug|Any CPU + {26CD2CE7-FF63-4669-83B0-7D9C8F3408EE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {26CD2CE7-FF63-4669-83B0-7D9C8F3408EE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {26CD2CE7-FF63-4669-83B0-7D9C8F3408EE}.Release Complete|Any CPU.ActiveCfg = Release|Any CPU + {26CD2CE7-FF63-4669-83B0-7D9C8F3408EE}.Release Complete|Any CPU.Build.0 = Release|Any CPU + {26CD2CE7-FF63-4669-83B0-7D9C8F3408EE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {26CD2CE7-FF63-4669-83B0-7D9C8F3408EE}.Release|Any CPU.Build.0 = Release|Any CPU + {22E852C0-17FF-4106-9DF6-41EABB8C0613}.Debug Complete|Any CPU.ActiveCfg = Debug|Any CPU + {22E852C0-17FF-4106-9DF6-41EABB8C0613}.Debug Complete|Any CPU.Build.0 = Debug|Any CPU + {22E852C0-17FF-4106-9DF6-41EABB8C0613}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {22E852C0-17FF-4106-9DF6-41EABB8C0613}.Debug|Any CPU.Build.0 = Debug|Any CPU + {22E852C0-17FF-4106-9DF6-41EABB8C0613}.Release Complete|Any CPU.ActiveCfg = Release|Any CPU + {22E852C0-17FF-4106-9DF6-41EABB8C0613}.Release Complete|Any CPU.Build.0 = Release|Any CPU + {22E852C0-17FF-4106-9DF6-41EABB8C0613}.Release|Any CPU.ActiveCfg = Release|Any CPU + {22E852C0-17FF-4106-9DF6-41EABB8C0613}.Release|Any CPU.Build.0 = Release|Any CPU + {B99CBE2E-BAAD-45D5-8A84-CAA6A2286C0B}.Debug Complete|Any CPU.ActiveCfg = Debug|Any CPU + {B99CBE2E-BAAD-45D5-8A84-CAA6A2286C0B}.Debug Complete|Any CPU.Build.0 = Debug|Any CPU + {B99CBE2E-BAAD-45D5-8A84-CAA6A2286C0B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B99CBE2E-BAAD-45D5-8A84-CAA6A2286C0B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B99CBE2E-BAAD-45D5-8A84-CAA6A2286C0B}.Release Complete|Any CPU.ActiveCfg = Release|Any CPU + {B99CBE2E-BAAD-45D5-8A84-CAA6A2286C0B}.Release Complete|Any CPU.Build.0 = Release|Any CPU + {B99CBE2E-BAAD-45D5-8A84-CAA6A2286C0B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B99CBE2E-BAAD-45D5-8A84-CAA6A2286C0B}.Release|Any CPU.Build.0 = Release|Any CPU + {3D9EFCF7-61CD-49DD-9300-9F9C993FB37B}.Debug Complete|Any CPU.ActiveCfg = Debug|Any CPU + {3D9EFCF7-61CD-49DD-9300-9F9C993FB37B}.Debug Complete|Any CPU.Build.0 = Debug|Any CPU + {3D9EFCF7-61CD-49DD-9300-9F9C993FB37B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3D9EFCF7-61CD-49DD-9300-9F9C993FB37B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3D9EFCF7-61CD-49DD-9300-9F9C993FB37B}.Release Complete|Any CPU.ActiveCfg = Release|Any CPU + {3D9EFCF7-61CD-49DD-9300-9F9C993FB37B}.Release Complete|Any CPU.Build.0 = Release|Any CPU + {3D9EFCF7-61CD-49DD-9300-9F9C993FB37B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3D9EFCF7-61CD-49DD-9300-9F9C993FB37B}.Release|Any CPU.Build.0 = Release|Any CPU + {CB9BB289-ACC9-4A05-8403-98D453F23728}.Debug Complete|Any CPU.ActiveCfg = Debug|Any CPU + {CB9BB289-ACC9-4A05-8403-98D453F23728}.Debug Complete|Any CPU.Build.0 = Debug|Any CPU + {CB9BB289-ACC9-4A05-8403-98D453F23728}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CB9BB289-ACC9-4A05-8403-98D453F23728}.Release Complete|Any CPU.ActiveCfg = Release|Any CPU + {CB9BB289-ACC9-4A05-8403-98D453F23728}.Release Complete|Any CPU.Build.0 = Release|Any CPU + {CB9BB289-ACC9-4A05-8403-98D453F23728}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9DA8E727-4038-4E6B-90BD-853730FDFA49}.Debug Complete|Any CPU.ActiveCfg = Debug|Any CPU + {9DA8E727-4038-4E6B-90BD-853730FDFA49}.Debug Complete|Any CPU.Build.0 = Debug|Any CPU + {9DA8E727-4038-4E6B-90BD-853730FDFA49}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9DA8E727-4038-4E6B-90BD-853730FDFA49}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9DA8E727-4038-4E6B-90BD-853730FDFA49}.Release Complete|Any CPU.ActiveCfg = Release|Any CPU + {9DA8E727-4038-4E6B-90BD-853730FDFA49}.Release Complete|Any CPU.Build.0 = Release|Any CPU + {9DA8E727-4038-4E6B-90BD-853730FDFA49}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9DA8E727-4038-4E6B-90BD-853730FDFA49}.Release|Any CPU.Build.0 = Release|Any CPU + {AEDD6CFB-747B-4077-9288-9CD2A86090F1}.Debug Complete|Any CPU.ActiveCfg = Debug|Any CPU + {AEDD6CFB-747B-4077-9288-9CD2A86090F1}.Debug Complete|Any CPU.Build.0 = Debug|Any CPU + {AEDD6CFB-747B-4077-9288-9CD2A86090F1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AEDD6CFB-747B-4077-9288-9CD2A86090F1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AEDD6CFB-747B-4077-9288-9CD2A86090F1}.Release Complete|Any CPU.ActiveCfg = Release|Any CPU + {AEDD6CFB-747B-4077-9288-9CD2A86090F1}.Release Complete|Any CPU.Build.0 = Release|Any CPU + {AEDD6CFB-747B-4077-9288-9CD2A86090F1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AEDD6CFB-747B-4077-9288-9CD2A86090F1}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Sources/Building.txt b/Sources/Building.txt new file mode 100644 index 00000000..197778e1 --- /dev/null +++ b/Sources/Building.txt @@ -0,0 +1,25 @@ +AForge.NET framework building instructions +========================================== + +To build the framework from sources it is required to have installation +of VS.NET 2010 (C#/C++ Express Edition 2010 is fine). + +Each individual library of the framework has its own project file and +solution file, which allows building any of the libraries independently. +These individual solution files can be found in the appropriate folders +of the library. + +Note: since this approach requires knowledge of dependencies between +framework’s libraries, it is supposed mostly for framework developers, +who work on individual projects. + + +To simplify build process and allow building of entire framework at once, +there is a main solution file – “Build All.sln”. This allows building all +libraries in correct order, so no dependency issues arise. + + +Important! To build all libraries right after checking out them from SVN +it is suggested to use "Release" solution configuration in VS.NET. It will +build all, except the AForge.Robotics.TeRK library, which requires ICE +framework to be installed (http://www.zeroc.com/ice.html). diff --git a/Sources/Controls/AForge.Controls.snk b/Sources/Controls/AForge.Controls.snk new file mode 100644 index 00000000..f2915742 Binary files /dev/null and b/Sources/Controls/AForge.Controls.snk differ diff --git a/Sources/Controls/Chart.cs b/Sources/Controls/Chart.cs new file mode 100644 index 00000000..99435883 --- /dev/null +++ b/Sources/Controls/Chart.cs @@ -0,0 +1,440 @@ +// AForge Controls Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2011 +// contacts@aforgenet.com +// + +namespace AForge.Controls +{ + using System; + using System.Collections.Generic; + using System.ComponentModel; + using System.Drawing; + using System.Data; + using System.Windows.Forms; + using AForge; + + /// + /// Chart control. + /// + /// + /// The chart control allows to display multiple charts at time + /// of different types: dots, lines, connected dots. + /// + /// Sample usage: + /// + /// // create data series array + /// double[,] testValues = new double[10, 2]; + /// // fill data series + /// for ( int i = 0; i < 10; i++ ) + /// { + /// testValues[i, 0] = i; // X values + /// testValues[i, 1] = Math.Sin( i / 18.0 * Math.PI ); // Y values + /// } + /// // add new data series to the chart + /// chart.AddDataSeries( "Test", Color.DarkGreen, Chart.SeriesType.ConnectedDots, 3 ); + /// // set X range to display + /// chart.RangeX = new AForge.Range( 0, 9 ); + /// // update the chart + /// chart.UpdateDataSeries( "Test", testValues ); + /// + /// + /// + public class Chart : System.Windows.Forms.Control + { + /// + /// Chart series type enumeration. + /// + public enum SeriesType + { + /// + /// Line style. + /// + Line, + /// + /// Dots style. + /// + Dots, + /// + /// Connected dots style. + /// + ConnectedDots + } + + // series data + private class DataSeries + { + public double[,] data = null; + public Color color = Color.Blue; + public SeriesType type = SeriesType.Line; + public int width = 1; + public bool updateYRange = true; + } + + // data series table + private Dictionary seriesTable = new Dictionary( ); + + private Pen blackPen = new Pen( Color.Black ); + + private Range rangeX = new Range( 0, 1 ); + private Range rangeY = new Range( 0, 1 ); + + /// + /// Chart's X range. + /// + /// + /// The value sets the X range of data to be displayed on the chart. + /// + [Browsable( false )] + public Range RangeX + { + get { return rangeX; } + set + { + rangeX = value; + UpdateYRange( ); + Invalidate( ); + } + } + + /// + /// Chart's Y range. + /// + /// + /// The value sets the Y range of data to be displayed on the chart. + /// + [Browsable( false )] + public Range RangeY + { + get { return rangeY; } + set + { + rangeY = value; + Invalidate( ); + } + } + + /// + /// Required designer variable. + /// + private System.ComponentModel.Container components = null; + + /// + /// Initializes a new instance of the class. + /// + /// + public Chart( ) + { + // This call is required by the Windows.Forms Form Designer. + InitializeComponent( ); + + // update control style + SetStyle( ControlStyles.AllPaintingInWmPaint | ControlStyles.ResizeRedraw | + ControlStyles.DoubleBuffer | ControlStyles.UserPaint, true ); + } + + /// + /// Dispose the object. + /// + protected override void Dispose( bool disposing ) + { + if ( disposing ) + { + if ( components != null ) + components.Dispose( ); + + // free graphics resources + blackPen.Dispose( ); + } + base.Dispose( disposing ); + } + + #region Component Designer generated code + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent( ) + { + this.SuspendLayout( ); + // + // Chart + // + this.Paint += new System.Windows.Forms.PaintEventHandler( this.Chart_Paint ); + this.ResumeLayout( false ); + + } + #endregion + + // Paint the control. + private void Chart_Paint( object sender, PaintEventArgs e ) + { + Graphics g = e.Graphics; + int clientWidth = ClientRectangle.Width; + int clientHeight = ClientRectangle.Height; + + // fill with white background + Brush backgroundBrush = new SolidBrush( BackColor ); + g.FillRectangle( backgroundBrush, 0, 0, clientWidth - 1, clientHeight - 1 ); + backgroundBrush.Dispose( ); + + // draw a black rectangle + g.DrawRectangle( blackPen, 0, 0, clientWidth - 1, clientHeight - 1 ); + + // set clipping rectangle + g.SetClip( new Rectangle( 2, 2, clientWidth - 4, clientHeight - 4 ) ); + + // check if there are any data series + if ( rangeX.Length != 0 ) + { + double xFactor = (double) ( clientWidth - 10 ) / ( rangeX.Length ); + double yFactor = (double) ( clientHeight - 10 ) / ( ( rangeY.Length != 0 ) ? rangeY.Length : 1 ); + + // walk through all data series + foreach ( KeyValuePair kvp in seriesTable ) + { + DataSeries series = kvp.Value; + // get data of the series + double[,] data = series.data; + + // check for available data + if ( data == null ) + continue; + + // check series type + if ( series.type == SeriesType.Dots ) + { + // draw dots + Brush brush = new SolidBrush( series.color ); + int width = series.width; + int r = width >> 1; + + // draw all points + for ( int i = 0, n = data.GetLength( 0 ); i < n; i++ ) + { + int x = (int) ( ( data[i, 0] - rangeX.Min ) * xFactor ); + int y = (int) ( ( data[i, 1] - rangeY.Min ) * yFactor ); + + x += 5; + y = clientHeight - 6 - y; + + g.FillRectangle( brush, x - r, y - r, width, width ); + } + brush.Dispose( ); + } + else if ( series.type == SeriesType.ConnectedDots ) + { + // draw dots connected with 1-pixel width line + Brush brush = new SolidBrush( series.color ); + Pen pen = new Pen( series.color, 1 ); + int width = series.width; + int r = width >> 1; + + int x1 = (int) ( ( data[0, 0] - rangeX.Min ) * xFactor ); + int y1 = (int) ( ( data[0, 1] - rangeY.Min ) * yFactor ); + + x1 += 5; + y1 = clientHeight - 6 - y1; + g.FillRectangle( brush, x1 - r, y1 - r, width, width ); + + // draw all lines + for ( int i = 1, n = data.GetLength( 0 ); i < n; i++ ) + { + int x2 = (int) ( ( data[i, 0] - rangeX.Min ) * xFactor ); + int y2 = (int) ( ( data[i, 1] - rangeY.Min ) * yFactor ); + + x2 += 5; + y2 = clientHeight - 6 - y2; + + g.FillRectangle( brush, x2 - r, y2 - r, width, width ); + g.DrawLine( pen, x1, y1, x2, y2 ); + + x1 = x2; + y1 = y2; + } + + pen.Dispose( ); + brush.Dispose( ); + } + else if ( series.type == SeriesType.Line ) + { + // draw line + Pen pen = new Pen( series.color, series.width ); + + int x1 = (int) ( ( data[0, 0] - rangeX.Min ) * xFactor ); + int y1 = (int) ( ( data[0, 1] - rangeY.Min ) * yFactor ); + + x1 += 5; + y1 = clientHeight - 6 - y1; + + // draw all lines + for ( int i = 1, n = data.GetLength( 0 ); i < n; i++ ) + { + int x2 = (int) ( ( data[i, 0] - rangeX.Min ) * xFactor ); + int y2 = (int) ( ( data[i, 1] - rangeY.Min ) * yFactor ); + + x2 += 5; + y2 = clientHeight - 6 - y2; + + g.DrawLine( pen, x1, y1, x2, y2 ); + + x1 = x2; + y1 = y2; + } + pen.Dispose( ); + } + } + } + } + + /// + /// Add data series to the chart. + /// + /// + /// Data series name. + /// Data series color. + /// Data series type. + /// Width (depends on the data series type, see remarks). + /// + /// Adds new empty data series to the collection of data series. To update this + /// series the method should be used. + /// + /// The meaning of the width parameter depends on the data series type: + /// + /// Line - width of the line; + /// Dots - size of dots (rectangular dots with specified width and the same height); + /// Connected dots - size of dots (dots are connected with one pixel width line). + /// + /// + /// + /// + public void AddDataSeries( string name, Color color, SeriesType type, int width ) + { + AddDataSeries( name, color, type, width, true ); + } + + /// + /// Add data series to the chart. + /// + /// + /// Data series name. + /// Data series color. + /// Data series type. + /// Width (depends on the data series type, see remarks). + /// Specifies if should be updated. + /// + /// Adds new empty data series to the collection of data series. + /// + /// The updateYRange parameter specifies if the data series may affect displayable + /// Y range. If the value is set to false, then displayable Y range is not updated, but used the + /// range, which was specified by user (see property). In the case if the + /// value is set to true, the displayable Y range is recalculated to fully fit the new data + /// series. + /// + /// + public void AddDataSeries( string name, Color color, SeriesType type, int width, bool updateYRange ) + { + // create new series definition ... + DataSeries series = new DataSeries( ); + // ... add fill it + series.color = color; + series.type = type; + series.width = width; + series.updateYRange = updateYRange; + // add to series table + seriesTable.Add( name, series ); + } + + /// + /// Update data series on the chart. + /// + /// + /// Data series name to update. + /// Data series values. + /// + public void UpdateDataSeries( string name, double[,] data ) + { + if ( !seriesTable.ContainsKey( name ) ) + throw new ArgumentException( "The chart does not contain data series with name: " + name ); + + // get data series + DataSeries series = seriesTable[name]; + // update data + series.data = ( data != null ) ? (double[,]) data.Clone( ) : null; + + // update Y range + if ( series.updateYRange ) + UpdateYRange( ); + // invalidate the control + Invalidate( ); + } + + /// + /// Remove data series from the chart. + /// + /// + /// Data series name to remove. + /// + public void RemoveDataSeries( string name ) + { + // remove data series from table + seriesTable.Remove( name ); + // invalidate the control + Invalidate( ); + } + + /// + /// Remove all data series from the chart. + /// + public void RemoveAllDataSeries( ) + { + // remove all data series from table + seriesTable.Clear( ); + // invalidate the control + Invalidate( ); + } + + /// + /// Update Y range. + /// + private void UpdateYRange( ) + { + float minY = float.MaxValue; + float maxY = float.MinValue; + + // walk through all data series + foreach ( KeyValuePair kvp in seriesTable ) + { + DataSeries series = kvp.Value; + // get data of the series + double[,] data = series.data; + + if ( ( series.updateYRange ) && ( data != null ) ) + { + for ( int i = 0, n = data.GetLength( 0 ); i < n; i++ ) + { + if ( rangeX.IsInside( (float) data[i, 0] ) ) + { + float v = (float) data[i, 1]; + + // check for max + if ( v > maxY ) + maxY = v; + // check for min + if ( v < minY ) + minY = v; + } + } + } + } + + // update Y range, if there are any data + if ( ( minY != double.MaxValue ) || ( maxY != double.MinValue ) ) + { + rangeY = new Range( minY, maxY ); + } + } + } +} diff --git a/Sources/Controls/Chart.resx b/Sources/Controls/Chart.resx new file mode 100644 index 00000000..52a9ad3e --- /dev/null +++ b/Sources/Controls/Chart.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + False + + \ No newline at end of file diff --git a/Sources/Controls/ColorSlider.cs b/Sources/Controls/ColorSlider.cs new file mode 100644 index 00000000..2a3da134 --- /dev/null +++ b/Sources/Controls/ColorSlider.cs @@ -0,0 +1,452 @@ +// AForge Controls Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2011 +// contacts@aforgenet.com +// + +using System; +using System.Collections; +using System.ComponentModel; +using System.Drawing; +using System.Drawing.Imaging; +using System.Drawing.Drawing2D; +using System.Data; +using System.Windows.Forms; +using System.Resources; +using System.Reflection; + +namespace AForge.Controls +{ + using Point = System.Drawing.Point; + + /// + /// Color slider control. + /// + /// + /// The control represent a color slider, which allows selecting + /// one or two values in the [0, 255] range. The application of this control + /// includes mostly areas of image processing and computer vision, where it is required + /// to select color threshold or ranges for different type of color filtering. + /// + /// Depending on the control's , it has different look and may suite + /// different tasks. See documentation to for information + /// about available type and possible control's looks. + /// + /// + public class ColorSlider : System.Windows.Forms.Control + { + private Pen blackPen = new Pen( Color.Black, 1 ); + private Color startColor = Color.Black; + private Color endColor = Color.White; + private Color fillColor = Color.Black; + private ColorSliderType type = ColorSliderType.Gradient; + private bool doubleArrow = true; + private Bitmap arrow; + private int min = 0, max = 255; + private int width = 256, height = 10; + private int trackMode = 0; + private int dx; + + /// + /// An event, to notify about changes of or properties. + /// + /// + /// The event is fired after changes of or property, + /// which is caused by user dragging the corresponding control’s arrow (slider). + /// + /// + public event EventHandler ValuesChanged; + + /// + /// Enumeration of color slider types. + /// + /// + /// + /// The slider's type supposes the control's + /// background filled with gradient startting from color and ending + /// with color. The color does not have + /// impact on control's look. + /// + /// This type allows as one-arrow, as two-arrows control. + /// + /// Sample control's look: + /// + /// + /// The slider's type supposes the control's + /// background filled with gradient startting from color and ending + /// with color. In addition the areas, which are outside of + /// [, ] range, are filled with color. + /// + /// This type allows only two-arrows control. + /// + /// Sample control's look: + /// + /// + /// The slider's type supposes the + /// control's background filled with gradient startting from color + /// and ending with color. In addition the area, which is inside of + /// [, ] range, is filled with color. + /// + /// This type allows only two-arrows control. + /// + /// Sample control's look: + /// + /// + /// The slider's type supposes filling areas + /// outside of [, ] range with and + /// inside the range with . The color does not + /// have impact on control's look. + /// + /// This type allows as one-arrow, as two-arrows control. + /// + /// Sample control's look: + /// + /// + /// + public enum ColorSliderType + { + /// + /// Gradient color slider type. + /// + Gradient, + + /// + /// Inner gradient color slider type. + /// + InnerGradient, + + /// + /// Outer gradient color slider type. + /// + OuterGradient, + + /// + /// Threshold color slider type. + /// + Threshold + } + + /// + /// Start color for gradient filling. + /// + /// + /// See documentation to enumeration for information about + /// the usage of this property. + /// + [DefaultValue( typeof( Color ), "Black" )] + public Color StartColor + { + get { return startColor; } + set + { + startColor = value; + Invalidate( ); + } + } + + /// + /// End color for gradient filling. + /// + /// + /// See documentation to enumeration for information about + /// the usage of this property. + /// + [DefaultValue( typeof( Color ), "White" )] + public Color EndColor + { + get { return endColor; } + set + { + endColor = value; + Invalidate( ); + } + } + + /// + /// Color to fill control's background in filtered zones. + /// + /// + /// See documentation to enumeration for information about + /// the usage of this property. + /// + [DefaultValue( typeof( Color ), "Black" )] + public Color FillColor + { + get { return fillColor; } + set + { + fillColor = value; + Invalidate( ); + } + } + + /// + /// Specifies control's type. + /// + /// + /// See documentation to enumeration for information about + /// the usage of this property. + /// + [DefaultValue( ColorSliderType.Gradient )] + public ColorSliderType Type + { + get { return type; } + set + { + type = value; + if ( ( type != ColorSliderType.Gradient ) && ( type != ColorSliderType.Threshold ) ) + DoubleArrow = true; + Invalidate( ); + } + } + + /// + /// Minimum selected value, [0, 255]. + /// + /// + [DefaultValue( 0 )] + public int Min + { + get { return min; } + set + { + min = value; + Invalidate( ); + } + } + + /// + /// Maximum selected value, [0, 255]. + /// + /// + [DefaultValue( 255 )] + public int Max + { + get { return max; } + set + { + max = value; + Invalidate( ); + } + } + + /// + /// Single or Double arrow slider control. + /// + /// + /// The property specifies if the slider has one or two selection arrows (sliders). + /// + /// The single arrow allows only to specify one value, which is set by + /// property. The single arrow slider is useful for applications, where it is required to select + /// color threshold, for example. + /// + /// The double arrow allows to specify two values, which are set by + /// and properties. The double arrow slider is useful for applications, where it is + /// required to select filtering color range, for example. + /// + /// + [DefaultValue( true )] + public bool DoubleArrow + { + get { return doubleArrow; } + set + { + doubleArrow = value; + if ( ( !doubleArrow ) && ( type != ColorSliderType.Threshold ) ) + { + Type = ColorSliderType.Gradient; + } + Invalidate( ); + } + } + + + /// + /// Initializes a new instance of the class. + /// + /// + public ColorSlider( ) + { + InitializeComponent( ); + + SetStyle( ControlStyles.AllPaintingInWmPaint | ControlStyles.ResizeRedraw | + ControlStyles.DoubleBuffer | ControlStyles.UserPaint, true ); + + // load arrow bitmap + Assembly assembly = this.GetType( ).Assembly; + arrow = new Bitmap( assembly.GetManifestResourceStream( "AForge.Controls.Resources.arrow.bmp" ) ); + arrow.MakeTransparent( Color.FromArgb( 255, 255, 255 ) ); + } + + /// + /// Dispose the object. + /// + /// + /// Specifies if disposing was invoked by user's code. + /// + protected override void Dispose( bool disposing ) + { + if ( disposing ) + { + blackPen.Dispose( ); + arrow.Dispose( ); + } + base.Dispose( disposing ); + } + + // Init component + private void InitializeComponent( ) + { + this.SuspendLayout( ); + // + // ColorSlider + // + this.Paint += new System.Windows.Forms.PaintEventHandler( this.ColorSlider_Paint ); + this.MouseMove += new System.Windows.Forms.MouseEventHandler( this.ColorSlider_MouseMove ); + this.MouseDown += new System.Windows.Forms.MouseEventHandler( this.ColorSlider_MouseDown ); + this.MouseUp += new System.Windows.Forms.MouseEventHandler( this.ColorSlider_MouseUp ); + this.ResumeLayout( false ); + + } + + // Paint control + private void ColorSlider_Paint( object sender, PaintEventArgs e ) + { + Graphics g = e.Graphics; + Rectangle rc = this.ClientRectangle; + Brush brush; + int x = ( rc.Right - width ) / 2; + int y = 2; + + // draw rectangle around the control + g.DrawRectangle( blackPen, x - 1, y - 1, width + 1, height + 1 ); + + switch ( type ) + { + case ColorSliderType.Gradient: + case ColorSliderType.InnerGradient: + case ColorSliderType.OuterGradient: + + // create gradient brush + brush = new LinearGradientBrush( new Point( x, 0 ), new Point( x + width, 0 ), startColor, endColor ); + g.FillRectangle( brush, x, y, width, height ); + brush.Dispose( ); + + // check type + if ( type == ColorSliderType.InnerGradient ) + { + // inner gradient + brush = new SolidBrush( fillColor ); + + if ( min != 0 ) + { + g.FillRectangle( brush, x, y, min, height ); + } + if ( max != 255 ) + { + g.FillRectangle( brush, x + max + 1, y, 255 - max, height ); + } + brush.Dispose( ); + } + else if ( type == ColorSliderType.OuterGradient ) + { + // outer gradient + brush = new SolidBrush( fillColor ); + // fill space between min & max with color 3 + g.FillRectangle( brush, x + min, y, max - min + 1, height ); + brush.Dispose( ); + } + break; + case ColorSliderType.Threshold: + // 1 - fill with color 1 + brush = new SolidBrush( startColor ); + g.FillRectangle( brush, x, y, width, height ); + brush.Dispose( ); + // 2 - fill space between min & max with color 2 + brush = new SolidBrush( endColor ); + g.FillRectangle( brush, x + min, y, max - min + 1, height ); + brush.Dispose( ); + break; + } + + + // draw arrows + x -= 4; + y += 1 + height; + + g.DrawImage( arrow, x + min, y, 9, 6 ); + if ( doubleArrow ) + g.DrawImage( arrow, x + max, y, 9, 6 ); + } + + // On mouse down + private void ColorSlider_MouseDown( object sender, System.Windows.Forms.MouseEventArgs e ) + { + int x = ( ClientRectangle.Right - width ) / 2 - 4; + int y = 3 + height; + + // check Y coordinate + if ( ( e.Y >= y ) && ( e.Y < y + 6 ) ) + { + // check X coordinate + if ( ( e.X >= x + min ) && ( e.X < x + min + 9 ) ) + { + // left arrow + trackMode = 1; + dx = e.X - min; + } + if ( ( doubleArrow ) && ( e.X >= x + max ) && ( e.X < x + max + 9 ) ) + { + // right arrow + trackMode = 2; + dx = e.X - max; + } + + if ( trackMode != 0 ) + this.Capture = true; + } + } + + // On mouse up + private void ColorSlider_MouseUp( object sender, System.Windows.Forms.MouseEventArgs e ) + { + if ( trackMode != 0 ) + { + // release capture + this.Capture = false; + trackMode = 0; + + // notify client + if ( ValuesChanged != null ) + ValuesChanged( this, new EventArgs( ) ); + } + } + + // On mouse move + private void ColorSlider_MouseMove( object sender, System.Windows.Forms.MouseEventArgs e ) + { + if ( trackMode != 0 ) + { + if ( trackMode == 1 ) + { + // left arrow tracking + min = e.X - dx; + min = Math.Max( min, 0 ); + min = Math.Min( min, max ); + } + if ( trackMode == 2 ) + { + // right arrow tracking + max = e.X - dx; + max = Math.Max( max, min ); + max = Math.Min( max, 255 ); + } + + // repaint control + Invalidate( ); + } + } + } +} diff --git a/Sources/Controls/ColorSlider.resx b/Sources/Controls/ColorSlider.resx new file mode 100644 index 00000000..52a9ad3e --- /dev/null +++ b/Sources/Controls/ColorSlider.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + False + + \ No newline at end of file diff --git a/Sources/Controls/Controls.csproj b/Sources/Controls/Controls.csproj new file mode 100644 index 00000000..019ca47d --- /dev/null +++ b/Sources/Controls/Controls.csproj @@ -0,0 +1,176 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {4CCA6844-9102-4A3B-8148-EA3D359B2586} + Library + Properties + AForge.Controls + AForge.Controls + v2.0 + 512 + true + AForge.Controls.snk + + + 3.5 + + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + true + full + false + ..\..\Release\ + DEBUG;TRACE + prompt + 4 + true + AForge.Controls.xml + + + pdbonly + true + ..\..\Release\ + TRACE + prompt + 4 + true + AForge.Controls.xml + + + + False + ..\..\Release\AForge.dll + + + False + ..\..\Release\AForge.Imaging.dll + + + False + ..\..\Release\AForge.Video.dll + + + + + + + + + + Component + + + Component + + + SliderControl.cs + + + Component + + + Component + + + Component + + + + + Component + + + ManipulatorControl.cs + + + Component + + + + Component + + + VideoSourcePlayer.cs + + + + + + + + Chart.cs + + + Histogram.cs + + + VideoSourcePlayer.cs + Designer + + + + + HuePicker.cs + + + SliderControl.cs + + + ColorSlider.cs + + + ManipulatorControl.cs + + + + + + False + Microsoft .NET Framework 4 %28x86 and x64%29 + true + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 3.1 + true + + + + + \ No newline at end of file diff --git a/Sources/Controls/Controls.sln b/Sources/Controls/Controls.sln new file mode 100644 index 00000000..9469a6d0 --- /dev/null +++ b/Sources/Controls/Controls.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual C# Express 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Controls", "Controls.csproj", "{4CCA6844-9102-4A3B-8148-EA3D359B2586}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {4CCA6844-9102-4A3B-8148-EA3D359B2586}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4CCA6844-9102-4A3B-8148-EA3D359B2586}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4CCA6844-9102-4A3B-8148-EA3D359B2586}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4CCA6844-9102-4A3B-8148-EA3D359B2586}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Sources/Controls/Histogram.cs b/Sources/Controls/Histogram.cs new file mode 100644 index 00000000..f54924d9 --- /dev/null +++ b/Sources/Controls/Histogram.cs @@ -0,0 +1,494 @@ +// AForge Controls Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2005-2008 +// andrew.kirillov@gmail.com +// + +namespace AForge.Controls +{ + using System; + using System.Collections; + using System.ComponentModel; + using System.Drawing; + using System.Data; + using System.Windows.Forms; + + /// + /// Arguments of histogram events. + /// + public class HistogramEventArgs : EventArgs + { + private int min, max; + + /// + /// Initializes a new instance of the class. + /// + /// + /// Histogram's index under mouse pointer. + /// + public HistogramEventArgs( int pos ) + { + this.min = pos; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Min histogram's index in selection. + /// Max histogram's index in selection. + /// + public HistogramEventArgs( int min, int max ) + { + this.min = min; + this.max = max; + } + + /// + /// Min histogram's index in selection. + /// + public int Min + { + get { return min; } + } + + /// + /// Max histogram's index in selection. + /// + public int Max + { + get { return max; } + } + + /// + /// Histogram's index under mouse pointer. + /// + public int Position + { + get { return min; } + } + } + + /// + /// Delegate for histogram events handlers. + /// + /// + /// Sender object. + /// Event arguments. + /// + public delegate void HistogramEventHandler( object sender, HistogramEventArgs e ); + + + /// + /// Histogram control. + /// + /// + /// The control displays histograms represented with integer arrays, + /// where each array's element keeps occurrence number of the corresponding element. + /// + /// + /// Sample usage: + /// + /// // create array with histogram values + /// int[] histogramValues = new int[] { 3, 8, 53, 57, 79, 69, ... }; + /// // set values to histogram control + /// histogram.Values = histogramValues; + /// + /// + /// Sample control's look: + /// + /// + /// + public class Histogram : System.Windows.Forms.Control + { + // color used to paing histogram + private Color color = Color.Black; + // logarithmic view or not + private bool logarithmic = false; + // histogram's values + private int[] values; + // max histogram's values + private int max; + private double maxLogarithmic; + // allow mouse selection in histogram or not + private bool allowSelection = false; + // vertical histogram or not + private bool vertical = false; + + // set of pens + private Pen blackPen = new Pen( Color.Black, 1 ); + private Pen whitePen = new Pen( Color.White, 1 ); + private Pen drawPen = new Pen( Color.Black ); + + // width and height of histogram's area + private int width; + private int height; + + // mouse dragging with pressed button + private bool tracking = false; + // determines if mouse is over histogram area + private bool over = false; + // selection's start and stop positions + private int start, stop; + + /// + /// Histogram's color. + /// + /// + [DefaultValue( typeof( Color ), "Black" )] + public Color Color + { + get { return color; } + set + { + color = value; + + drawPen.Dispose( ); + drawPen = new Pen( color ); + Invalidate( ); + } + } + + /// + /// Allow mouse selection or not. + /// + /// + /// In the case if mouse selection is allowed, the control will + /// fire and events + /// and provide information about the selection. + /// + [DefaultValue( false )] + public bool AllowSelection + { + get { return allowSelection; } + set { allowSelection = value; } + } + + /// + /// Logarithmic view or not. + /// + /// + /// In the case if logarihmic view is selected, then the control + /// will display base 10 logarithm of values. + /// + /// By default the property is set to false - none logarithmic view. + /// + [DefaultValue( false )] + public bool IsLogarithmicView + { + get { return logarithmic; } + set + { + logarithmic = value; + Invalidate( ); + } + } + + /// + /// Vertical view or not. + /// + /// + /// The property determines if histogram should be displayed vertically or + /// not (horizontally). + /// + /// By default the property is set to false - horizontal view. + /// + [DefaultValue( false )] + public bool IsVertical + { + get { return vertical; } + set + { + vertical = value; + Invalidate( ); + } + } + + /// + /// Histogram values. + /// + /// + /// Non-negative histogram values. + /// + /// Histogram values should be non-negative. + /// + [Browsable( false )] + public int[] Values + { + get { return values; } + set + { + values = value; + + if ( values != null ) + { + // check values and find maximum + max = 0; + foreach ( int v in values ) + { + // value chould non-negative + if ( v < 0 ) + { + throw new ArgumentException( "Histogram values should be non-negative." ); + } + + if ( v > max ) + { + max = v; + maxLogarithmic = Math.Log10( max ); + } + } + } + Invalidate( ); + } + } + + /// + /// Mouse position changed event. + /// + /// + /// The event is fired only if the property is set + /// to true. The passed to event handler class is initialized + /// with property only, which is histogram value's + /// index pointed by mouse. + /// + public event HistogramEventHandler PositionChanged; + + /// + /// Mouse selection changed event. + /// + /// + /// The event is fired only if the property is set + /// to true. The passed to event handler class is initialized + /// with and properties + /// only, which represent selection range - min and max indexes. + /// + public event HistogramEventHandler SelectionChanged; + + /// + /// Initializes a new instance of the class. + /// + /// + public Histogram( ) + { + InitializeComponent( ); + SetStyle( ControlStyles.AllPaintingInWmPaint | ControlStyles.ResizeRedraw | + ControlStyles.DoubleBuffer | ControlStyles.UserPaint, true ); + } + + /// + /// Dispose the object. + /// + /// + /// Indicates if disposing was initiated manually. + /// + protected override void Dispose( bool disposing ) + { + if ( disposing ) + { + blackPen.Dispose( ); + whitePen.Dispose( ); + drawPen.Dispose( ); + } + base.Dispose( disposing ); + } + + // Init component + private void InitializeComponent( ) + { + // + // Histogram + // + this.MouseUp += new System.Windows.Forms.MouseEventHandler( this.Histogram_MouseUp ); + this.MouseMove += new System.Windows.Forms.MouseEventHandler( this.Histogram_MouseMove ); + this.MouseLeave += new System.EventHandler( this.Histogram_MouseLeave ); + this.MouseDown += new System.Windows.Forms.MouseEventHandler( this.Histogram_MouseDown ); + } + + /// + /// Paint the control. + /// + /// + /// Data for Paint event. + /// + protected override void OnPaint( PaintEventArgs pe ) + { + Graphics g = pe.Graphics; + // drawing area's width and height + width = ( ( values == null ) || ( vertical == true ) ) ? + ClientRectangle.Width - 2 : + Math.Min( values.Length, ClientRectangle.Width - 2 ); + + height = ( ( values == null ) || ( vertical == false ) ) ? + ClientRectangle.Height - 2 : + Math.Min( values.Length, ClientRectangle.Height - 2 ); + + int x = 1; + int y = 1; + int value; + + // draw rectangle around the image + g.DrawRectangle( blackPen, x - 1, y - 1, width + 1, height + 1 ); + + if ( values != null ) + { + int start = Math.Min( this.start, this.stop ); + int stop = Math.Max( this.start, this.stop ); + + if ( tracking ) + { + // fill region of selection + Brush brush = new SolidBrush( Color.FromArgb( 92, 92, 92 ) ); + + if ( vertical ) + { + g.FillRectangle( brush, x, y + start, width, Math.Abs( start - stop ) + 1 ); + } + else + { + g.FillRectangle( brush, x + start, y, Math.Abs( start - stop ) + 1, height ); + } + brush.Dispose( ); + } + + if ( max != 0 ) + { + // scaling factor + double factor = (double) ( ( vertical ) ? width : height ) / + ( ( logarithmic ) ? maxLogarithmic : max ); + + // draw histogram + for ( int i = 0, len = ( vertical ) ? height : width; i < len; i++ ) + { + if ( logarithmic ) + { + value = ( values[i] == 0 ) ? 0 : (int) ( Math.Log10( values[i] ) * factor ); + } + else + { + value = (int) ( values[i] * factor ); + } + + if ( value != 0 ) + { + if ( vertical ) + { + g.DrawLine( ( ( tracking ) && ( i >= start ) && ( i <= stop ) ) ? whitePen : drawPen, + new Point( x, y + i ), + new Point( x + value, y + i ) + ); + } + else + { + g.DrawLine( ( ( tracking ) && ( i >= start ) && ( i <= stop ) ) ? whitePen : drawPen, + new Point( x + i, y + height - 1 ), + new Point( x + i, y + height - value ) + ); + } + } + } + } + } + + // Calling the base class OnPaint + base.OnPaint( pe ); + } + + // On mouse down + private void Histogram_MouseDown( object sender, System.Windows.Forms.MouseEventArgs e ) + { + if ( ( allowSelection ) && ( values != null ) ) + { + int x = 1; + int y = 1; + + if ( ( e.X >= x ) && ( e.Y >= y ) && ( e.X < x + width ) && ( e.Y < y + height ) ) + { + // start selection + tracking = true; + start = ( vertical ) ? ( e.Y - y ) : ( e.X - x ); + this.Capture = true; + } + } + } + + // On mouse up + private void Histogram_MouseUp( object sender, System.Windows.Forms.MouseEventArgs e ) + { + if ( tracking ) + { + // stop selection + tracking = false; + this.Capture = false; + Invalidate( ); + } + } + + // On mouse move + private void Histogram_MouseMove( object sender, System.Windows.Forms.MouseEventArgs e ) + { + if ( ( allowSelection ) && ( values != null ) ) + { + int x = 1; + int y = 1; + + if ( !tracking ) + { + if ( ( e.X >= x ) && ( e.Y >= y ) && ( e.X < x + width ) && ( e.Y < y + height ) ) + { + over = true; + + // moving over + this.Cursor = Cursors.Cross; + + // notify parent + if ( PositionChanged != null ) + { + PositionChanged( this, new HistogramEventArgs( + ( vertical ) ? ( e.Y - y ) : ( e.X - x ) ) ); + } + } + else + { + this.Cursor = Cursors.Default; + + if ( over ) + { + over = false; + + // notify parent + if ( PositionChanged != null ) + PositionChanged( this, new HistogramEventArgs( -1 ) ); + } + } + } + else + { + // selecting region + stop = ( vertical ) ? ( e.Y - y ) : ( e.X - x ); + + stop = Math.Min( stop, ( ( vertical ) ? height : width ) - 1 ); + stop = Math.Max( stop, 0 ); + + Invalidate( ); + + // notify parent + if ( SelectionChanged != null ) + SelectionChanged( this, new HistogramEventArgs( Math.Min( start, stop ), Math.Max( start, stop ) ) ); + } + } + } + + // On mouse leave + private void Histogram_MouseLeave( object sender, System.EventArgs e ) + { + if ( ( allowSelection ) && ( values != null ) && ( !tracking ) ) + { + // notify parent + if ( PositionChanged != null ) + PositionChanged( this, new HistogramEventArgs( -1 ) ); + } + } + } +} diff --git a/Sources/Controls/Histogram.resx b/Sources/Controls/Histogram.resx new file mode 100644 index 00000000..085ebfbf --- /dev/null +++ b/Sources/Controls/Histogram.resx @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Histogram + + + False + + \ No newline at end of file diff --git a/Sources/Controls/HuePicker.cs b/Sources/Controls/HuePicker.cs new file mode 100644 index 00000000..fc240902 --- /dev/null +++ b/Sources/Controls/HuePicker.cs @@ -0,0 +1,410 @@ +// AForge Controls Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +using System; +using System.Collections; +using System.ComponentModel; +using System.Drawing; +using System.Data; +using System.Windows.Forms; + +using AForge.Imaging; + +namespace AForge.Controls +{ + /// + /// Hue picker control. + /// + /// + /// The control allows selecting hue value (or range) from HSL color space. Hue values + /// are integer values in the [0, 359] range. + /// + /// If control's type is set to , then it allows selecting single + /// hue value and looks like this:
+ /// + ///
+ /// + /// If control's type is set to , then it allows selecting range + /// of hue values and looks like this:
+ /// + ///
+ ///
+ /// + public class HuePicker : System.Windows.Forms.Control + { + private HuePickerType type = HuePickerType.Value; + + private Pen blackPen; + private Brush blackBrush; + private Pen whitePen; + private Brush whiteBrush; + + private System.Drawing.Point ptCenter = new System.Drawing.Point( 0, 0 ); + private System.Drawing.Point ptMin = new System.Drawing.Point( 0, 0 ); + private System.Drawing.Point ptMax = new System.Drawing.Point( 0, 0 ); + private int trackMode = 0; + + private int min = 0; + private int max = 359; + + /// + /// An event, to notify about changes of or properties. + /// + /// + /// The event is fired after changes of its , or + /// properties, which is caused by user dragging the corresponding hue picker's bullets. + /// + /// + public event EventHandler ValuesChanged; + + /// + /// Enumeration of hue picker types. + /// + /// + /// + /// The type provides single bullet to drag, which allows + /// selecting single hue value. The value is accessible through property. + /// + /// The type provides two bullets to drag, which correspond + /// to minimum and maximum values of the hue range. These values are accessible through + /// and properties. + /// + /// + public enum HuePickerType + { + /// + /// Selecting single hue value. + /// + Value, + /// + /// Selecting hue values range. + /// + Range + } + + /// + /// Selected value of the hue picker control in mode. + /// + [DefaultValue( 0 )] + public int Value + { + get { return min; } + set + { + if ( type == HuePickerType.Value ) + { + min = Math.Max( 0, Math.Min( 359, value ) ); + Invalidate( ); + } + } + } + + /// + /// Minimum selected value of the hue picker control in mode. + /// + [DefaultValue( 0 )] + public int Min + { + get { return min; } + set + { + if ( type == HuePickerType.Range ) + { + min = Math.Max( 0, Math.Min( 359, value ) ); + Invalidate( ); + } + } + } + + /// + /// Maximum selected value of the hue picker control in mode. + /// + [DefaultValue( 359 )] + public int Max + { + get { return max; } + set + { + if ( type == HuePickerType.Range ) + { + max = Math.Max( 0, Math.Min( 359, value ) ); + Invalidate( ); + } + } + } + + /// + /// Current type of the hue picker control. + /// + /// + /// See enumeration for description of the available types. + /// + [DefaultValue( HuePickerType.Value )] + public HuePickerType Type + { + get { return type; } + set + { + type = value; + Invalidate( ); + } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public HuePicker( ) + { + InitializeComponent( ); + + SetStyle( ControlStyles.AllPaintingInWmPaint | ControlStyles.ResizeRedraw | + ControlStyles.DoubleBuffer | ControlStyles.UserPaint, true ); + + blackPen = new Pen( Color.Black, 1 ); + blackBrush = new SolidBrush( Color.Black ); + whitePen = new Pen( Color.White, 1 ); + whiteBrush = new SolidBrush( Color.White ); + } + + /// + /// Dispose the object. + /// + /// + /// Specifies if disposing was invoked by user's code. + /// + protected override void Dispose( bool disposing ) + { + if ( disposing ) + { + blackPen.Dispose( ); + blackBrush.Dispose( ); + whitePen.Dispose( ); + whiteBrush.Dispose( ); + } + base.Dispose( disposing ); + } + + // Init component + private void InitializeComponent( ) + { + // + // HSLPicker + // + this.MouseUp += new System.Windows.Forms.MouseEventHandler( this.HSLPicker_MouseUp ); + this.MouseMove += new System.Windows.Forms.MouseEventHandler( this.HSLPicker_MouseMove ); + this.MouseDown += new System.Windows.Forms.MouseEventHandler( this.HSLPicker_MouseDown ); + + } + + /// + /// Paint the controls. + /// + /// + /// Paint event arguments. + /// + protected override void OnPaint( PaintEventArgs pe ) + { + Graphics g = pe.Graphics; + Rectangle rc = this.ClientRectangle; + Rectangle rcPie; + Brush brush; + RGB rgb = new RGB( ); + HSL hsl = new HSL( ); + + // get pie rectangle + rcPie = new Rectangle( 4, 4, Math.Min( rc.Right, rc.Bottom ) - 8, Math.Min( rc.Right, rc.Bottom ) - 8 ); + + // init HSL value + hsl.Luminance = 0.5f; + hsl.Saturation = 1.0f; + + if ( type == HuePickerType.Value ) + { + // draw HSL pie + for ( int i = 0; i < 360; i++ ) + { + hsl.Hue = i; + // convert from HSL to RGB + AForge.Imaging.HSL.ToRGB( hsl, rgb ); + // create brush + brush = new SolidBrush( rgb.Color ); + // draw one hue value + g.FillPie( brush, rcPie, -i, -1 ); + + brush.Dispose( ); + } + } + else + { + // draw HSL pie + for ( int i = 0; i < 360; i++ ) + { + if ( + ( ( min < max ) && ( i >= min ) && ( i <= max ) ) || + ( ( min > max ) && ( ( i >= min ) || ( i <= max ) ) ) ) + { + hsl.Hue = i; + // convert from HSL to RGB + AForge.Imaging.HSL.ToRGB( hsl, rgb ); + // create brush + brush = new SolidBrush( rgb.Color ); + } + else + { + brush = new SolidBrush( Color.FromArgb( 128, 128, 128 ) ); + } + + // draw one hue value + g.FillPie( brush, rcPie, -i, -1 ); + + brush.Dispose( ); + } + } + + // + double halfWidth = (double) rcPie.Width / 2; + double angleRad = -min * Math.PI / 180; + double angleCos = Math.Cos( angleRad ); + double angleSin = Math.Sin( angleRad ); + + double x = halfWidth * angleCos; + double y = halfWidth * angleSin; + + ptCenter.X = rcPie.Left + (int) ( halfWidth ); + ptCenter.Y = rcPie.Top + (int) ( halfWidth ); + ptMin.X = rcPie.Left + (int) ( halfWidth + x ); + ptMin.Y = rcPie.Top + (int) ( halfWidth + y ); + + // draw MIN pointer + g.FillEllipse( blackBrush, + rcPie.Left + (int) ( halfWidth + x ) - 4, + rcPie.Top + (int) ( halfWidth + y ) - 4, + 8, 8 ); + g.DrawLine( blackPen, ptCenter, ptMin ); + + // check picker type + if ( type == HuePickerType.Range ) + { + angleRad = -max * Math.PI / 180; + angleCos = Math.Cos( angleRad ); + angleSin = Math.Sin( angleRad ); + + x = halfWidth * angleCos; + y = halfWidth * angleSin; + + ptMax.X = rcPie.Left + (int) ( halfWidth + x ); + ptMax.Y = rcPie.Top + (int) ( halfWidth + y ); + + // draw MAX pointer + g.FillEllipse( whiteBrush, + rcPie.Left + (int) ( halfWidth + x ) - 4, + rcPie.Top + (int) ( halfWidth + y ) - 4, + 8, 8 ); + g.DrawLine( whitePen, ptCenter, ptMax ); + } + + base.OnPaint( pe ); + } + + // On mouse down + private void HSLPicker_MouseDown( object sender, System.Windows.Forms.MouseEventArgs e ) + { + // check coordinates of MIN pointer + if ( ( e.X >= ptMin.X - 4 ) && ( e.Y >= ptMin.Y - 4 ) && + ( e.X < ptMin.X + 4 ) && ( e.Y < ptMin.Y + 4 ) ) + { + trackMode = 1; + } + if ( type == HuePickerType.Range ) + { + // check coordinates of MAX pointer + if ( ( e.X >= ptMax.X - 4 ) && ( e.Y >= ptMax.Y - 4 ) && + ( e.X < ptMax.X + 4 ) && ( e.Y < ptMax.Y + 4 ) ) + { + trackMode = 2; + } + } + + if ( trackMode != 0 ) + this.Capture = true; + } + + // On mouse up + private void HSLPicker_MouseUp( object sender, System.Windows.Forms.MouseEventArgs e ) + { + if ( trackMode != 0 ) + { + // release capture + this.Capture = false; + trackMode = 0; + + // notify client + if ( ValuesChanged != null ) + ValuesChanged( this, new EventArgs( ) ); + } + } + + // On mouse move + private void HSLPicker_MouseMove( object sender, System.Windows.Forms.MouseEventArgs e ) + { + Cursor cursor = Cursors.Default; + + if ( trackMode != 0 ) + { + cursor = Cursors.Hand; + + int dy = e.Y - ptCenter.Y; + int dx = e.X - ptCenter.X; + + if ( trackMode == 1 ) + { + // MIN pointer tracking + min = (int) ( Math.Atan2( -dy, dx ) * 180 / Math.PI ); + if ( min < 0 ) + { + min = 360 + min; + } + } + else + { + // MAX pointer tracking + max = (int) ( Math.Atan2( -dy, dx ) * 180 / Math.PI ); + if ( max < 0 ) + { + max = 360 + max; + } + } + + // repaint control + Invalidate( ); + } + else + { + // check coordinates of MIN pointer + if ( ( e.X >= ptMin.X - 4 ) && ( e.Y >= ptMin.Y - 4 ) && + ( e.X < ptMin.X + 4 ) && ( e.Y < ptMin.Y + 4 ) ) + { + cursor = Cursors.Hand; + } + if ( type == HuePickerType.Range ) + { + // check coordinates of MAX pointer + if ( ( e.X >= ptMax.X - 4 ) && ( e.Y >= ptMax.Y - 4 ) && + ( e.X < ptMax.X + 4 ) && ( e.Y < ptMax.Y + 4 ) ) + { + cursor = Cursors.Hand; + } + } + + } + + this.Cursor = cursor; + } + } +} diff --git a/Sources/Controls/HuePicker.resx b/Sources/Controls/HuePicker.resx new file mode 100644 index 00000000..0219f9f1 --- /dev/null +++ b/Sources/Controls/HuePicker.resx @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + False + + + HSLPicker + + \ No newline at end of file diff --git a/Sources/Controls/Images/histogram.jpg b/Sources/Controls/Images/histogram.jpg new file mode 100644 index 00000000..fac99350 Binary files /dev/null and b/Sources/Controls/Images/histogram.jpg differ diff --git a/Sources/Controls/Images/hue_picker1.png b/Sources/Controls/Images/hue_picker1.png new file mode 100644 index 00000000..652d9c66 Binary files /dev/null and b/Sources/Controls/Images/hue_picker1.png differ diff --git a/Sources/Controls/Images/hue_picker2.png b/Sources/Controls/Images/hue_picker2.png new file mode 100644 index 00000000..1b5744c5 Binary files /dev/null and b/Sources/Controls/Images/hue_picker2.png differ diff --git a/Sources/Controls/Images/manipulator_round.png b/Sources/Controls/Images/manipulator_round.png new file mode 100644 index 00000000..02b26a3b Binary files /dev/null and b/Sources/Controls/Images/manipulator_round.png differ diff --git a/Sources/Controls/Images/manipulator_square.png b/Sources/Controls/Images/manipulator_square.png new file mode 100644 index 00000000..b0dcaa53 Binary files /dev/null and b/Sources/Controls/Images/manipulator_square.png differ diff --git a/Sources/Controls/Images/slider_control.png b/Sources/Controls/Images/slider_control.png new file mode 100644 index 00000000..f596efae Binary files /dev/null and b/Sources/Controls/Images/slider_control.png differ diff --git a/Sources/Controls/Images/slider_gradient.png b/Sources/Controls/Images/slider_gradient.png new file mode 100644 index 00000000..226ac1ba Binary files /dev/null and b/Sources/Controls/Images/slider_gradient.png differ diff --git a/Sources/Controls/Images/slider_inner_gradient.png b/Sources/Controls/Images/slider_inner_gradient.png new file mode 100644 index 00000000..3581bcec Binary files /dev/null and b/Sources/Controls/Images/slider_inner_gradient.png differ diff --git a/Sources/Controls/Images/slider_outer_gradient.png b/Sources/Controls/Images/slider_outer_gradient.png new file mode 100644 index 00000000..41191f67 Binary files /dev/null and b/Sources/Controls/Images/slider_outer_gradient.png differ diff --git a/Sources/Controls/Images/slider_threshold.png b/Sources/Controls/Images/slider_threshold.png new file mode 100644 index 00000000..e248f3c4 Binary files /dev/null and b/Sources/Controls/Images/slider_threshold.png differ diff --git a/Sources/Controls/Joystick.cs b/Sources/Controls/Joystick.cs new file mode 100644 index 00000000..a375c705 --- /dev/null +++ b/Sources/Controls/Joystick.cs @@ -0,0 +1,435 @@ +// AForge Controls Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2010 +// andrew.kirillov@aforgenet.com +// + +using System; +using System.Collections.Generic; +using AForge; + +namespace AForge.Controls +{ + /// + /// The class provides simple API for enumerating available joysticks and checking their + /// current status. + /// + /// + /// The class provides simple access to joysticks (game controllers) through using + /// Win32 API, which allows to enumerate available devices and query their status (state of all buttons, + /// axes, etc). + /// + /// Sample usage: + /// + /// // enumerate available devices + /// List<Joystick.DeviceInfo> devices = Joystick.GetAvailableDevices( ); + /// + /// foreach ( Joystick.DeviceInfo di in devices ) + /// { + /// System.Diagnostics.Debug.WriteLine( + /// string.Format( "{0} : {1} ({2} axes, {3} buttons)", + /// di.ID, di.Name, di.Axes, di.Buttons ) ); + /// } + /// + /// + /// // create new joystick and initialize it + /// Joystick joystick = new Joystick( 0 ); + /// // get its current status + /// Joystick.Status status = joystick.GetCurrentStatus( ); + /// // check if 1st button is pressed + /// if ( status.IsButtonPressed( Joystick.Buttons.Button1 ) ) + /// { + /// // 1st button is pressed + /// } + /// + /// + /// + public class Joystick + { + // information of the initialized joystick + private DeviceInfo info = null; + + /// + /// Information about initialized joystick. + /// + /// + /// The property keeps information about joystick, which was + /// initialized using method. If no joystick was initialized, + /// then accessing this property will generate + /// exception. + /// + /// Joystick was not initialized. + /// + public DeviceInfo Info + { + get + { + if ( info == null ) + throw new ApplicationException( "Joystick was not initialized." ); + + return info; + } + } + + /// + /// Information about joystick connected to the system. + /// + /// + public class DeviceInfo + { + /// + /// Joystick ID, [0..15]. + /// + public readonly int ID; + + internal readonly JoystickAPI.JOYCAPS capabilities; + + /// + /// Joystick name. + /// + public string Name + { + get { return capabilities.name; } + } + + /// + /// Number of joystick axes. + /// + public int Axes + { + get { return capabilities.axesNumber; } + } + + /// + /// Number of joystick buttons. + /// + public int Buttons + { + get { return capabilities.buttonsNumber; } + } + + internal DeviceInfo( int id, JoystickAPI.JOYCAPS joyCaps ) + { + ID = id; + capabilities = joyCaps; + } + } + + /// + /// Get list of available joysticks connected to the system. + /// + /// + /// Returns list containing information about available joysticks connected to + /// the system. + /// + public static List GetAvailableDevices( ) + { + List devices = new List( ); + int joyCapsSize = System.Runtime.InteropServices.Marshal.SizeOf( typeof( JoystickAPI.JOYCAPS ) ); + + // get number of devices + int devicesCount = JoystickAPI.joyGetNumDevs( ); + // check all devices + for ( int i = 0; i < devicesCount; i++ ) + { + JoystickAPI.JOYCAPS joyCaps = new JoystickAPI.JOYCAPS( ); + + if ( JoystickAPI.joyGetDevCapsW( i, joyCaps, joyCapsSize ) == JoystickAPI.ResultCode.NoError ) + { + devices.Add( new DeviceInfo( i, joyCaps ) ); + } + } + + return devices; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// This constructor does not make initialization of any joystick + /// device, so method should be used before querying joystick + /// status or properties. + /// + public Joystick( ) { } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Joystick ID to initialize, [0, 15]. + /// + /// This constructor initializes joystick with specified ID using + /// method, so the object becomes ready for querying joystick's + /// status. + /// + public Joystick( int id ) + { + Init( id ); + } + + /// + /// Initialize joystick with the specified ID. + /// + /// + /// Joystick's ID to initialize, [0, 15]. + /// + /// + /// + /// Invalid joystick ID was specified. It must be in [0, 15] range. + /// The requested joystick is not connected to the system. + /// + public void Init( int id ) + { + if ( ( id < 0 ) || ( id > 15 ) ) + { + throw new ArgumentException( "Invalid joystick ID was specified." ); + } + + JoystickAPI.JOYCAPS joyCaps = new JoystickAPI.JOYCAPS( ); + + if ( JoystickAPI.joyGetDevCapsW( id, joyCaps, + System.Runtime.InteropServices.Marshal.SizeOf( joyCaps ) ) != JoystickAPI.ResultCode.NoError ) + { + throw new NotConnectedException( "The requested joystick is not connected to the system." ); + } + + info = new DeviceInfo( id, joyCaps ); + } + + private static JoystickAPI.JoyPosFlags[] requestFlags = new JoystickAPI.JoyPosFlags[] + { + JoystickAPI.JoyPosFlags.ReturnPov | JoystickAPI.JoyPosFlags.ReturnButtons, + JoystickAPI.JoyPosFlags.ReturnPov | JoystickAPI.JoyPosFlags.ReturnButtons | JoystickAPI.JoyPosFlags.ReturnX, + JoystickAPI.JoyPosFlags.ReturnPov | JoystickAPI.JoyPosFlags.ReturnButtons | JoystickAPI.JoyPosFlags.ReturnXY, + JoystickAPI.JoyPosFlags.ReturnPov | JoystickAPI.JoyPosFlags.ReturnButtons | JoystickAPI.JoyPosFlags.ReturnXYZ, + JoystickAPI.JoyPosFlags.ReturnPov | JoystickAPI.JoyPosFlags.ReturnButtons | JoystickAPI.JoyPosFlags.ReturnXYZR, + JoystickAPI.JoyPosFlags.ReturnPov | JoystickAPI.JoyPosFlags.ReturnButtons | JoystickAPI.JoyPosFlags.ReturnXYZRU, + }; + + /// + /// Get joystick's status. + /// + /// + /// Returns current status of initialized joystick, which provides information + /// about current state of all axes, buttons and point of view. + /// + /// Before using this method the joystick object needs to be initialized + /// using method or constructor. + /// + /// The requested joystick is not connected to the system. + /// Joystick was not initialized. + /// + public Status GetCurrentStatus( ) + { + JoystickAPI.JOYINFOEX ji = new JoystickAPI.JOYINFOEX( ); + + ji.size = System.Runtime.InteropServices.Marshal.SizeOf( ji ); + ji.flags = ( Info.capabilities.axesNumber > 5 ) ? JoystickAPI.JoyPosFlags.ReturnAll : + requestFlags[Info.capabilities.axesNumber]; + + if ( JoystickAPI.joyGetPosEx( Info.ID, ji ) != JoystickAPI.ResultCode.NoError ) + { + throw new NotConnectedException( "The requested joystick is not connected to the system." ); + } + + return new Status( ji, Info.capabilities ); + } + + /// + /// Class describing current joystick's status. + /// + /// + /// All joystick axes' positions are measured in [-1, 1] range, where + /// 0 corresponds to center position - axis is not deflected (directed) to any side. + /// + public class Status + { + private JoystickAPI.JOYINFOEX status; + private JoystickAPI.JOYCAPS capabilities; + + internal Status( JoystickAPI.JOYINFOEX status, JoystickAPI.JOYCAPS capabilities ) + { + this.status = status; + this.capabilities = capabilities; + } + + /// + /// Position of X axis, [-1, 1]. + /// + public float XAxis + { + get + { + return ( ( ( status.flags & JoystickAPI.JoyPosFlags.ReturnX ) == 0 ) ? 0 : + (float) ( status.xPos - capabilities.xMin ) / capabilities.xMax * 2 - 1 ); + } + } + + /// + /// Position of Y axis, [-1, 1]. + /// + public float YAxis + { + get + { + return ( ( ( status.flags & JoystickAPI.JoyPosFlags.ReturnY ) == 0 ) ? 0 : + (float) ( status.yPos - capabilities.yMin ) / capabilities.yMax * 2 - 1 ); + } + } + + /// + /// Position of Z axis, [-1, 1]. + /// + public float ZAxis + { + get + { + return ( ( ( status.flags & JoystickAPI.JoyPosFlags.ReturnZ ) == 0 ) ? 0 : + (float) ( status.zPos - capabilities.zMin ) / capabilities.zMax * 2 - 1 ); + } + } + + /// + /// Position of R axis - 4th joystick's axes, [-1, 1]. + /// + public float RAxis + { + get + { + return ( ( ( status.flags & JoystickAPI.JoyPosFlags.ReturnR ) == 0 ) ? 0 : + (float) ( status.rPos - capabilities.rMin ) / capabilities.rMax * 2 - 1 ); + } + } + + /// + /// Position of U axis - 5th joystick's axes, [-1, 1]. + /// + public float UAxis + { + get + { + return ( ( ( status.flags & JoystickAPI.JoyPosFlags.ReturnU ) == 0 ) ? 0 : + (float) ( status.uPos - capabilities.uMin ) / capabilities.uMax * 2 - 1 ); + } + } + + /// + /// Position of V axis - 6th joystick's axes, [-1, 1]. + /// + public float VAxis + { + get + { + return ( ( ( status.flags & JoystickAPI.JoyPosFlags.ReturnV ) == 0 ) ? 0 : + (float) ( status.vPos - capabilities.vMin ) / capabilities.vMax * 2 - 1 ); + } + } + + /// + /// Joystick buttons' state. + /// + public Buttons Buttons + { + get { return (Buttons) status.buttons; } + } + + /// + /// Current point of view state, [0, 359]. + /// + /// + public float PointOfView + { + get { return ( status.pov > 35900) ? -1 : (float) status.pov / 100 ; } + } + + /// + /// Check if certain button (or combination of buttons) is pressed. + /// + /// + /// Button to check state of. + /// + /// Returns if the specified button is pressed or + /// otherwise. + /// + public bool IsButtonPressed( Buttons button ) + { + return ( ( ( (Buttons) status.buttons ) & button ) != 0 ); + } + } + + /// + /// Flags enumeration of joystick buttons. + /// + [Flags] + public enum Buttons + { + /// + /// 1st button. + /// + Button1 = 0x0001, + /// + /// 2nd button. + /// + Button2 = 0x0002, + /// + /// 3rd button. + /// + Button3 = 0x0004, + /// + /// 4th button. + /// + Button4 = 0x0008, + /// + /// 5th button. + /// + Button5 = 0x0010, + /// + /// 6th button. + /// + Button6 = 0x0020, + /// + /// 7th button. + /// + Button7 = 0x0040, + /// + /// 8th button. + /// + Button8 = 0x0080, + /// + /// 9th button. + /// + Button9 = 0x0100, + /// + /// 10th button. + /// + Button10 = 0x0200, + /// + /// 11th button. + /// + Button11 = 0x0400, + /// + /// 12th button. + /// + Button12 = 0x0800, + /// + /// 13th button. + /// + Button13 = 0x1000, + /// + /// 14th button. + /// + Button14 = 0x2000, + /// + /// 15th button. + /// + Button15 = 0x4000, + /// + /// 16th button. + /// + Button16 = 0x8000, + } + } +} diff --git a/Sources/Controls/JoystickAPI.cs b/Sources/Controls/JoystickAPI.cs new file mode 100644 index 00000000..5abf311c --- /dev/null +++ b/Sources/Controls/JoystickAPI.cs @@ -0,0 +1,154 @@ +// AForge Controls Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2010 +// andrew.kirillov@aforgenet.com +// + +using System; +using System.Runtime.InteropServices; + +namespace AForge.Controls +{ + internal static class JoystickAPI + { + [DllImport( "winmm.dll" )] + public static extern int joyGetNumDevs( ); + + [DllImport( "winmm.dll" )] + public static extern ResultCode joyGetDevCapsW( int uJoyID, + [In, Out, MarshalAs( UnmanagedType.LPStruct )] JOYCAPS pjc, int cbjc ); + + [DllImport( "winmm.dll" )] + public static extern ResultCode joyGetPos( int uJoyID, JOYINFO pji ); + + [DllImport( "winmm.dll" )] + public static extern ResultCode joyGetPosEx( int uJoyID, JOYINFOEX pji ); + + [DllImport( "winmm.dll" )] + public static extern ResultCode joyReleaseCapture( int uJoyID ); + + [DllImport( "winmm.dll" )] + public static extern ResultCode joySetCapture( IntPtr hwnd, int uJoyID, int uPeriod, bool fChanged ); + + // Information about current state of joystick's axes and buttons + [StructLayout( LayoutKind.Sequential )] + public class JOYINFO + { + public int xPos; + public int yPos; + public int zPos; + public int buttons; + } + + // Extended information about current state of joystick's axes and buttons + [StructLayout( LayoutKind.Sequential )] + public class JOYINFOEX + { + public int size; + public JoyPosFlags flags; + public int xPos; + public int yPos; + public int zPos; + public int rPos; + public int uPos; + public int vPos; + public int buttons; + public int buttonNumber; + public int pov; + public int reserved1; + public int reserved2; + } + + // Joystick capabilities + [StructLayout( LayoutKind.Sequential, Pack = 1, CharSet = CharSet.Unicode )] + public class JOYCAPS + { + public short mid; + public short pid; + [MarshalAs( UnmanagedType.ByValTStr, SizeConst = 32 )] + public string name; + public int xMin; + public int xMax; + public int yMin; + public int yMax; + public int zMin; + public int zMax; + public int buttonsNumber; + public int minPeriod; + public int maxPeriod; + public int rMin; + public int rMax; + public int uMin; + public int uMax; + public int vMin; + public int vMax; + public int caps; + public int axesMax; + public int axesNumber; + public int buttonsMax; + [MarshalAs( UnmanagedType.ByValTStr, SizeConst = 32 )] + public string regKey; + [MarshalAs( UnmanagedType.ByValTStr, SizeConst = 260 )] + public string oemVxD; + } + + // Some result codes + public enum ResultCode : uint + { + NoError = 0, + Error = 1, + BadDeviceID = 2, + NoDriver = 6, + InvalidParam = 11, + + JoystickInvalidParam = 165, + JoystickRequestNotCompleted = 166, + JoystickUnplugged = 167 + } + + [Flags] + public enum JoyPosFlags + { + ReturnX = 0x01, + ReturnY = 0x02, + ReturnZ = 0x04, + ReturnR = 0x08, + ReturnU = 0x10, + ReturnV = 0x20, + ReturnPov = 0x40, + ReturnButtons = 0x80, + + ReturnXY = 0x03, + ReturnXYZ = 0x07, + ReturnXYZR = 0x0F, + ReturnXYZRU = 0x1F, + ReturnXYZRUV = 0x3F, + + ReturnAll = 0xFF + } + + [Flags] + public enum JoyButtons + { + Button1 = 0x001, + Button2 = 0x002, + Button3 = 0x004, + Button4 = 0x008, + Button5 = 0x010, + Button6 = 0x020, + Button7 = 0x040, + Button8 = 0x080 + } + + public const int MM_JOY1MOVE = 0x3A0; + public const int MM_JOY2MOVE = 0x3A1; + public const int MM_JOY1ZMOVE = 0x3A2; + public const int MM_JOY2ZMOVE = 0x3A3; + public const int MM_JOY1BUTTONDOWN = 0x3B5; + public const int MM_JOY2BUTTONDOWN = 0x3B6; + public const int MM_JOY1BUTTONUP = 0x3B7; + public const int MM_JOY2BUTTONUP = 0x3B8; + } +} diff --git a/Sources/Controls/ManipulatorControl.Designer.cs b/Sources/Controls/ManipulatorControl.Designer.cs new file mode 100644 index 00000000..f643c88a --- /dev/null +++ b/Sources/Controls/ManipulatorControl.Designer.cs @@ -0,0 +1,51 @@ +namespace AForge.Controls +{ + partial class ManipulatorControl + { + /// + /// Clean up any resources being used. + /// + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose( bool disposing ) + { + if ( disposing ) + { + components.Dispose( ); + } + base.Dispose( disposing ); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent( ) + { + this.components = new System.ComponentModel.Container( ); + this.timer = new System.Windows.Forms.Timer( this.components ); + this.SuspendLayout( ); + // + // timer + // + this.timer.Interval = 10; + this.timer.Tick += new System.EventHandler( this.timer_Tick ); + // + // ManipulatorControl + // + this.Paint += new System.Windows.Forms.PaintEventHandler( this.ManipulatorControl_Paint ); + this.MouseMove += new System.Windows.Forms.MouseEventHandler( this.ManipulatorControl_MouseMove ); + this.MouseDown += new System.Windows.Forms.MouseEventHandler( this.ManipulatorControl_MouseDown ); + this.MouseUp += new System.Windows.Forms.MouseEventHandler( this.ManipulatorControl_MouseUp ); + this.ResumeLayout( false ); + + } + + #endregion + + private System.Windows.Forms.Timer timer; + private System.ComponentModel.IContainer components; + } +} diff --git a/Sources/Controls/ManipulatorControl.cs b/Sources/Controls/ManipulatorControl.cs new file mode 100644 index 00000000..e99c5590 --- /dev/null +++ b/Sources/Controls/ManipulatorControl.cs @@ -0,0 +1,617 @@ +// AForge Controls Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2010 +// andrew.kirillov@aforgenet.com +// + +using System; +using System.ComponentModel; +using System.Drawing; +using System.Windows.Forms; + +namespace AForge.Controls +{ + /// + /// Manipulator control. + /// + /// + /// + /// The manipulator control can be used to mimic behaviour of analogue joystick using + /// regular mouse. By dragging manipulator away from control's centre, it fires + /// event notifying about its X/Y coordinates (or about R/Theta coordinates in Polar coordinates system). + /// + /// + /// For example, in robotics applications the control can be used to drive robots. If user drags manipulator + /// further from centre (increasing distance between centre and manipulator), then higher power (speed) should be + /// set for robot's motors. But dragging it in different directions away from centre should result in changing + /// robot's direction: straight forward, backward, turning right or left, etc.
+ /// + ///
+ /// + /// Another possible application of the control is to control position of some device, etc. + /// For example, the control could be used with pan-tilt camera - by dragging control away from centre, + /// the camera may rotate in one of the directions.
+ /// + ///
+ ///
+ /// + public partial class ManipulatorControl : Control + { + private bool isSquareLook = false; + private bool drawHorizontalAxis = true; + private bool drawVerticalAxis = false; + + private bool resetPositionOnMouseRelease = true; + + // pens and brushes for drawing + private Pen borderPen = new Pen( Color.Black ); + private SolidBrush topLeftBackgroundBrush = new SolidBrush( Color.White ); + private SolidBrush topRightBackgroundBrush = new SolidBrush( Color.White ); + private SolidBrush bottomLeftBackgroundBrush = new SolidBrush( Color.LightGray ); + private SolidBrush bottomRightBackgroundBrush = new SolidBrush( Color.LightGray ); + private SolidBrush manipulatorBrush = new SolidBrush( Color.LightSeaGreen ); + private SolidBrush disabledBrash = new SolidBrush( Color.FromArgb( 240, 240, 240 ) ); + + // manipulator's position + private float manipulatatorX = 0; + private float manipulatatorY = 0; + + // manipulator's size + private const int manipulatorSize = 21; + private const int manipulatorRadius = manipulatorSize / 2; + + // size (width and height) of manipulator's area + private int areaSize = 0; + private int areaRadius = 0; + private int areaMargin = manipulatorSize / 2 + 2; + + // tracking information + private bool tracking = false; + + // number of timer ticks before notifying user (-1 means no notification) + private int ticksBeforeNotificiation = -1; + + /// + /// Determines if the control has square or round look. + /// + /// + /// + /// The control has a square look if the property is set to , + /// otherwise it has round look. + /// + /// Default value is set to . + /// + /// + [DefaultValue( false )] + [Description( "Determines if the control has square or round look." )] + public bool IsSquareLook + { + get { return isSquareLook; } + set + { + isSquareLook = value; + Invalidate( ); + } + } + + /// + /// Determines if horizontal axis should be drawn or not. + /// + /// + /// + /// Default value is set to . + /// + /// + [DefaultValue( true )] + [Description( "Determines if horizontal axis should be drawn or not." )] + public bool DrawHorizontalAxis + { + get { return drawHorizontalAxis; } + set + { + drawHorizontalAxis = value; + Invalidate( ); + } + } + + /// + /// Determines if vertical axis should be drawn or not. + /// + /// + /// + /// Default value is set to . + /// + /// + [DefaultValue( false )] + [Description( "Determines if vertical axis should be drawn or not." )] + public bool DrawVerticalAxis + { + get { return drawVerticalAxis; } + set + { + drawVerticalAxis = value; + Invalidate( ); + } + } + + /// + /// Determines behaviour of manipulator, when mouse button is released. + /// + /// + /// + /// The property controls behaviour of manipulator on releasing mouse button. If + /// the property is set to , then position of manipulator is reset + /// to (0, 0), when mouse button is released. Otherwise manipulator stays on the place, + /// where it was left. + /// + /// Default value is set to . + /// + /// + [DefaultValue( true )] + [Description( "Determines behaviour of manipulator, when mouse button is released." )] + public bool ResetPositionOnMouseRelease + { + get { return resetPositionOnMouseRelease; } + set { resetPositionOnMouseRelease = value; } + } + + /// + /// Color used for drawing borders and axis's. + /// + /// + /// + /// Default value is set to . + /// + /// + [DefaultValue( typeof( Color ), "Black" )] + [Description( "Color used for drawing borders and axis's." )] + public Color BorderColor + { + get { return borderPen.Color; } + set + { + borderPen = new Pen( value ); + Invalidate( ); + } + } + + /// + /// Background color used for filling top left quarter of the control. + /// + /// + /// + /// Default value is set to . + /// + /// + [DefaultValue( typeof( Color ), "White" )] + [Description( "Background color used for filling top left quarter of the control." )] + public Color TopLeftBackgroundColor + { + get { return topLeftBackgroundBrush.Color; } + set + { + topLeftBackgroundBrush = new SolidBrush( value ); + Invalidate( ); + } + } + + /// + /// Background color used for filling top right quarter of the control. + /// + /// + /// + /// Default value is set to . + /// + /// + [DefaultValue( typeof( Color ), "White" )] + [Description( "Background color used for filling top right quarter of the control." )] + public Color TopRightBackgroundColor + { + get { return topRightBackgroundBrush.Color; } + set + { + topRightBackgroundBrush = new SolidBrush( value ); + Invalidate( ); + } + } + + /// + /// Background color used for filling bottom left quarter of the control. + /// + /// + /// + /// Default value is set to . + /// + /// + [DefaultValue( typeof( Color ), "LightGray" )] + [Description( "Background color used for filling bottom left quarter of the control." )] + public Color BottomLeftBackgroundColor + { + get { return bottomLeftBackgroundBrush.Color; } + set + { + bottomLeftBackgroundBrush = new SolidBrush( value ); + Invalidate( ); + } + } + + /// + /// Background color used for filling bottom right quarter of the control. + /// + /// + /// + /// Default value is set to . + /// + /// + [DefaultValue( typeof( Color ), "LightGray" )] + [Description( "Background color used for filling bottom right quarter of the control." )] + public Color BottomRightBackgroundColor + { + get { return bottomRightBackgroundBrush.Color; } + set + { + bottomRightBackgroundBrush = new SolidBrush( value ); + Invalidate( ); + } + } + + /// + /// Color used for filling manipulator. + /// + /// + /// + /// Default value is set to . + /// + /// + [DefaultValue( typeof( Color ), "LightSeaGreen" )] + [Description( "Color used for filling manipulator." )] + public Color ManipulatorColor + { + get { return manipulatorBrush.Color; } + set + { + manipulatorBrush = new SolidBrush( value ); + Invalidate( ); + } + } + + /// + /// Class, which summarizes arguments of manipulator's position change event. + /// + /// + /// Properties of this class allow to get: + /// + /// X/Y coordinates of manipulator in + /// Cartesian coordinate system, + /// where X axis is directed from center of the control to the right and Y axis is directed from + /// center to the top. Both coordinates are measured in [-1, 1] range. + /// Theta and R coordinates of manipulator in + /// Polar coordinate system. + /// + /// + /// + public class PositionEventArgs : EventArgs + { + private float x, y; + + /// + /// X coordinate of manipulator, [-1, 1]. + /// + public float X + { + get { return x; } + } + + /// + /// Y coordinate of manipulator, [-1, 1]. + /// + public float Y + { + get { return y; } + } + + /// + /// Theta coordinate of manipulator in Polar coordinate system, [0, 359]. + /// + public float Theta + { + get + { + if ( x != 0 ) + { + double t = Math.Atan( y / x ); + t = t / Math.PI * 180; + + if ( t < 0 ) + { + t += 180; + } + if ( y < 0 ) + { + t += 180; + } + + return (float) t; + } + + return ( ( y > 0 ) ? 90 : ( ( y < 0 ) ? 270 : 0 ) ); + } + } + + /// + /// R (radius) coordinate of manipulator in Polar coordinate system, [0, 1]. + /// + public float R + { + get { return (float) Math.Sqrt( x * x + y * y ); } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// X coordinate of manipulator, [-1, 1]. + /// Y coordinate of manipulator, [-1, 1]. + /// + public PositionEventArgs( float x, float y ) + { + this.x = x; + this.y = y; + } + } + + /// + /// Current manipulator's position. + /// + /// + /// The property equals to current manipulator's position. Both X and Y values + /// are in the [-1, 1] range and represented in + /// Cartesian coordinate system. + /// + /// + [Browsable( false )] + public PointF ManipulatorPosition + { + get { return new PointF( manipulatatorX, manipulatatorY ); } + set + { + manipulatatorX = Math.Max( -1.0f, Math.Min( 1.0f, value.X ) ); + manipulatatorY = Math.Max( -1.0f, Math.Min( 1.0f, value.Y ) ); + + if ( !isSquareLook ) + { + // get distance from center + double cR = Math.Sqrt( manipulatatorX * manipulatatorX + manipulatatorY * manipulatatorY ); + + // correct point if it is too far away + if ( cR > 1 ) + { + double coef = (double) 1 / cR; + manipulatatorX = (float) ( coef * manipulatatorX ); + manipulatatorY = (float) ( coef * manipulatatorY ); + } + } + Invalidate( ); + NotifyClients( ); + } + } + + /// + /// Delegate used for notification about manipulator's position changes. + /// + /// + /// Event sender - object sending the event. + /// Event arguments - current manipulator's position. + /// + public delegate void PositionChangedHandler( object sender, PositionEventArgs eventArgs ); + + /// + /// Event used for notification about manipulator's position changes. + /// + [Description( "Occurs when manipulator's position is changed." )] + public event PositionChangedHandler PositionChanged; + + /// + /// Initializes a new instance of the class. + /// + public ManipulatorControl( ) + { + InitializeComponent( ); + + // update control style + SetStyle( ControlStyles.AllPaintingInWmPaint | ControlStyles.ResizeRedraw | + ControlStyles.DoubleBuffer | ControlStyles.UserPaint, true ); + } + + // Paint the control + private void ManipulatorControl_Paint( object sender, PaintEventArgs e ) + { + Graphics g = e.Graphics; + + // calculate size of the manipulator's ares + areaSize = Math.Min( ClientRectangle.Width, ClientRectangle.Height ) - areaMargin * 2; + areaRadius = areaSize / 2; + + // draw area + if ( areaSize > 1 ) + { + if ( isSquareLook ) + { + // square looking control + int halfAreaSize = areaSize / 2; + + g.FillRectangle( ( !this.Enabled ) ? disabledBrash : topLeftBackgroundBrush, areaMargin, areaMargin, halfAreaSize, halfAreaSize ); + g.FillRectangle( ( !this.Enabled ) ? disabledBrash : topRightBackgroundBrush, areaMargin + halfAreaSize, areaMargin, areaSize - halfAreaSize, halfAreaSize ); + g.FillRectangle( ( !this.Enabled ) ? disabledBrash : bottomLeftBackgroundBrush, areaMargin, areaMargin + halfAreaSize, halfAreaSize, areaSize - halfAreaSize ); + g.FillRectangle( ( !this.Enabled ) ? disabledBrash : bottomRightBackgroundBrush, areaMargin + halfAreaSize, areaMargin + halfAreaSize, + areaSize - halfAreaSize, areaSize - halfAreaSize ); + + g.DrawRectangle( borderPen, areaMargin, areaMargin, areaSize - 1, areaSize - 1 ); + } + else + { + // round looking control + g.FillPie( ( this.Enabled ) ? topRightBackgroundBrush : disabledBrash, areaMargin, areaMargin, areaSize - 1, areaSize - 1, 0, -90 ); + g.FillPie( ( this.Enabled ) ? topLeftBackgroundBrush : disabledBrash, areaMargin, areaMargin, areaSize - 1, areaSize - 1, -90, -90 ); + g.FillPie( ( this.Enabled ) ? bottomRightBackgroundBrush : disabledBrash, areaMargin, areaMargin, areaSize - 1, areaSize - 1, 0, 90 ); + g.FillPie( ( this.Enabled ) ? bottomLeftBackgroundBrush : disabledBrash, areaMargin, areaMargin, areaSize - 1, areaSize - 1, 90, 90 ); + g.DrawEllipse( borderPen, areaMargin, areaMargin, areaSize - 1, areaSize - 1 ); + } + } + + // draw axis or not ? + if ( drawHorizontalAxis ) + { + g.DrawLine( borderPen, areaMargin, areaMargin + areaRadius, areaMargin + areaSize - 1, areaMargin + areaRadius ); + } + if ( drawVerticalAxis ) + { + g.DrawLine( borderPen, areaMargin + areaRadius, areaMargin, areaMargin + areaRadius, areaMargin + areaSize - 1 ); + } + + // calculate manipulator's center point + int ctrlManipulatorX = (int) ( manipulatatorX * areaRadius ) + areaMargin + areaRadius; + int ctrlManipulatorY = (int) ( -manipulatatorY * areaRadius ) + areaMargin + areaRadius; + + // draw manipulator + g.FillEllipse ( ( this.Enabled ) ? manipulatorBrush : disabledBrash, + ctrlManipulatorX - manipulatorRadius, ctrlManipulatorY - manipulatorRadius, + manipulatorSize, manipulatorSize ); + g.DrawEllipse( borderPen, + ctrlManipulatorX - manipulatorRadius, ctrlManipulatorY - manipulatorRadius, + manipulatorSize, manipulatorSize ); + } + + // On mouse down event + private void ManipulatorControl_MouseDown( object sender, MouseEventArgs e ) + { + if ( e.Button == MouseButtons.Left ) + { + // get click point relatively to manipulation area's center + int cX = e.X - areaMargin - areaRadius; + int cY = e.Y - areaMargin - areaRadius; + + if ( isSquareLook ) + { + if ( + ( cX <= areaRadius ) && ( cX >= -areaRadius ) && + ( cY <= areaRadius ) && ( cY >= -areaRadius ) ) + { + tracking = true; + } + } + else + { + // check if the point is inside of manipulator + if ( Math.Sqrt( cX * cX + cY * cY ) <= areaRadius ) + { + tracking = true; + } + } + + if ( tracking ) + { + manipulatatorX = (float) cX / areaRadius; + manipulatatorY = (float) -cY / areaRadius; + + this.Capture = true; + this.Cursor = Cursors.Hand; + + NotifyClients( ); + // start timer, which is used to notify + // about manipulator's position change + ticksBeforeNotificiation = -1; + timer.Start( ); + } + } + } + + // On mouse up event + private void ManipulatorControl_MouseUp( object sender, MouseEventArgs e ) + { + if ( ( e.Button == MouseButtons.Left ) && ( tracking ) ) + { + tracking = false; + this.Capture = false; + this.Cursor = Cursors.Arrow; + + timer.Stop( ); + + if ( resetPositionOnMouseRelease ) + { + manipulatatorX = 0; + manipulatatorY = 0; + } + + NotifyClients( ); + + Invalidate( ); + } + } + + // On mouse move event + private void ManipulatorControl_MouseMove( object sender, MouseEventArgs e ) + { + if ( tracking ) + { + // get mouse point relatively to manipulation area's center + int cX = e.X - areaMargin - areaRadius; + int cY = e.Y - areaMargin - areaRadius; + + if ( isSquareLook ) + { + cX = Math.Min( areaRadius, Math.Max( -areaRadius, cX ) ); + cY = Math.Min( areaRadius, Math.Max( -areaRadius, cY ) ); + } + else + { + // get distance from center + int cR = (int) Math.Sqrt( cX * cX + cY * cY ); + + // correct point if it is too far away + if ( cR > areaRadius ) + { + double coef = (double) areaRadius / cR; + cX = (int) ( coef * cX ); + cY = (int) ( coef * cY ); + } + } + + manipulatatorX = (float) cX / areaRadius; + manipulatatorY = (float) -cY / areaRadius; + + Invalidate( ); + + // notify user after 5 timer ticks + ticksBeforeNotificiation = 5; + } + } + + // Timer handler, which is used to notify clients about manipulator's changes + private void timer_Tick( object sender, EventArgs e ) + { + if ( ticksBeforeNotificiation != -1 ) + { + // time to notify + if ( ticksBeforeNotificiation == 0 ) + { + // notify users + NotifyClients( ); + } + + ticksBeforeNotificiation--; + } + } + + // Notify client about changes of manipulator's position + private void NotifyClients( ) + { + if ( PositionChanged != null ) + { + PositionChanged( this, new PositionEventArgs( manipulatatorX, manipulatatorY ) ); + } + } + } +} diff --git a/Sources/Controls/ManipulatorControl.resx b/Sources/Controls/ManipulatorControl.resx new file mode 100644 index 00000000..2c946ec6 --- /dev/null +++ b/Sources/Controls/ManipulatorControl.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + False + + \ No newline at end of file diff --git a/Sources/Controls/PictureBox.cs b/Sources/Controls/PictureBox.cs new file mode 100644 index 00000000..041dd94f --- /dev/null +++ b/Sources/Controls/PictureBox.cs @@ -0,0 +1,88 @@ +// AForge Controls Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +using System; +using System.Drawing; +using System.Drawing.Imaging; + +namespace AForge.Controls +{ + /// + /// Picture box control for displaying an image. + /// + /// + /// This control is inherited from System.Windows.Forms.PictureBox and is + /// aimed to resolve one of its issues - inability to display images with high color depth, + /// like 16 bpp grayscale, 48 bpp and 64 bpp color images. .NET framework does not handle + /// 16 bpp grayscale images at all, throwing exception when user tries to display them. Color + /// images with 48 bpp and 64 bpp are "kind of" supported, but only maximum of 13 bits for each + /// color plane are allowed. Therefore this control is created, which allows to display as + /// 16 bpp grayscale images, as 48 bpp and 64 bpp color images. + /// + /// To display high color depth images, the control does internal conversion of them + /// to lower color depth images - 8 bpp grayscale, 24 bpp and 32 bpp color images respectively. In + /// the case source image already has low color depth, it is displayed without any conversions. + /// + /// + /// + public class PictureBox : System.Windows.Forms.PictureBox + { + private Image sourceImage = null; + private Image convertedImage = null; + + /// + /// Gets or sets the image that the PictureBox displays. + /// + /// + /// The property is used to set image to be displayed or to get currently + /// displayed image. + /// + /// In the case if source image has high color depth, like 16 bpp grayscale image, + /// 48 bpp or 64 bpp color image, it is converted to lower color depth before displaying - + /// to 8 bpp grayscale, 24 bpp or 32 bpp color image respectively. + /// + /// During color conversion the original source image is kept unmodified, but internal + /// converted copy is created. The property always returns original source image. + /// + /// + public new Image Image + { + get { return sourceImage; } + set + { + // check source image format + if ( + ( value != null ) && ( value is Bitmap ) && + ( ( value.PixelFormat == PixelFormat.Format16bppGrayScale ) || + ( value.PixelFormat == PixelFormat.Format48bppRgb) || + ( value.PixelFormat == PixelFormat.Format64bppArgb ) ) ) + { + // convert and display image + Image tempImage = AForge.Imaging.Image.Convert16bppTo8bpp( (Bitmap) value ); + base.Image = tempImage; + + // dispose previous image if required + if ( convertedImage != null ) + { + convertedImage.Dispose( ); + } + + convertedImage = tempImage; + } + else + { + // display source image as it is + base.Image = value; + } + sourceImage = value; + } + } + + + } +} diff --git a/Sources/Controls/Properties/AssemblyInfo.cs b/Sources/Controls/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..fc355011 --- /dev/null +++ b/Sources/Controls/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle( "AForge.Controls" )] +[assembly: AssemblyDescription( "" )] +[assembly: AssemblyConfiguration( "" )] +[assembly: AssemblyCompany( "AForge" )] +[assembly: AssemblyProduct( "AForge.NET" )] +[assembly: AssemblyCopyright( "AForge © 2012" )] +[assembly: AssemblyTrademark( "" )] +[assembly: AssemblyCulture( "" )] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible( false )] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid( "244216e5-b018-45ee-930e-fc2161ba8a17" )] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion( "2.2.5.0" )] +[assembly: AssemblyFileVersion( "2.2.5.0" )] diff --git a/Sources/Controls/Resources/arrow.bmp b/Sources/Controls/Resources/arrow.bmp new file mode 100644 index 00000000..4a1d9a68 Binary files /dev/null and b/Sources/Controls/Resources/arrow.bmp differ diff --git a/Sources/Controls/SliderControl.Designer.cs b/Sources/Controls/SliderControl.Designer.cs new file mode 100644 index 00000000..a6a4c076 --- /dev/null +++ b/Sources/Controls/SliderControl.Designer.cs @@ -0,0 +1,54 @@ +namespace AForge.Controls +{ + partial class SliderControl + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose( bool disposing ) + { + if ( disposing && ( components != null ) ) + { + components.Dispose( ); + } + base.Dispose( disposing ); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent( ) + { + this.components = new System.ComponentModel.Container( ); + this.timer = new System.Windows.Forms.Timer( this.components ); + this.SuspendLayout( ); + // + // timer + // + this.timer.Interval = 10; + this.timer.Tick += new System.EventHandler( this.timer_Tick ); + // + // TurnControl + // + this.Paint += new System.Windows.Forms.PaintEventHandler( this.TurnControl_Paint ); + this.MouseMove += new System.Windows.Forms.MouseEventHandler( this.TurnControl_MouseMove ); + this.MouseDown += new System.Windows.Forms.MouseEventHandler( this.TurnControl_MouseDown ); + this.MouseUp += new System.Windows.Forms.MouseEventHandler( this.TurnControl_MouseUp ); + this.ResumeLayout( false ); + + } + + #endregion + + private System.Windows.Forms.Timer timer; + } +} diff --git a/Sources/Controls/SliderControl.cs b/Sources/Controls/SliderControl.cs new file mode 100644 index 00000000..5a097239 --- /dev/null +++ b/Sources/Controls/SliderControl.cs @@ -0,0 +1,407 @@ +// AForge Controls Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2010 +// andrew.kirillov@aforgenet.com +// + +using System; +using System.ComponentModel; +using System.Drawing; +using System.Windows.Forms; + +namespace AForge.Controls +{ + /// + /// Slider control. + /// + /// + /// + /// The control represents a slider, which can be dragged in the [-1, 1] range. + /// Default position of the slider is set 0, which corresponds to center of the control.
+ /// + ///
+ ///
+ /// + public partial class SliderControl : Control + { + // horizontal or vertical configuration + private bool isHorizontal = true; + + private bool resetPositionOnMouseRelease = true; + + // pens and brushes for drawing + private Pen borderPen = new Pen( Color.Black ); + private SolidBrush positiveAreaBrush = new SolidBrush( Color.White ); + private SolidBrush negativeAreaBrush = new SolidBrush( Color.LightGray ); + private SolidBrush manipulatorBrush = new SolidBrush( Color.LightSeaGreen ); + private SolidBrush disabledBrash = new SolidBrush( Color.FromArgb( 240, 240, 240 ) ); + + // manipulator's size + private const int manipulatorWidth = 11; + private const int manipulatorHeight = 20; + + // margins + private int leftMargin; + private int topMargin; + + // manipulator's position + private float manipulatatorPosition = 0; + + // tracking information + private bool tracking = false; + + // number of timer ticks before notifying user (-1 means no notification) + private int ticksBeforeNotificiation = -1; + + /// + /// Determines behaviour of manipulator, when mouse button is released. + /// + /// + /// + /// The property controls behaviour of manipulator on releasing mouse button. If + /// the property is set to , then position of manipulator is reset + /// to 0, when mouse button is released. Otherwise manipulator stays on the place, + /// where it was left. + /// + /// Default value is set to . + /// + /// + [DefaultValue( true )] + [Description( "Determines behaviour of manipulator, when mouse button is released." )] + public bool ResetPositionOnMouseRelease + { + get { return resetPositionOnMouseRelease; } + set { resetPositionOnMouseRelease = value; } + } + + /// + /// Color used for drawing borders. + /// + /// + /// + /// Default value is set to . + /// + /// + [DefaultValue( typeof( Color ), "Black" )] + [Description( "Color used for drawing borders." )] + public Color BorderColor + { + get { return borderPen.Color; } + set + { + borderPen = new Pen( value ); + Invalidate( ); + } + } + + /// + /// Background color used for filling area corresponding to positive values. + /// + /// + /// + /// Default value is set to . + /// + /// + [DefaultValue( typeof( Color ), "White" )] + [Description( "Background color used for filling area corresponding to positive values." )] + public Color PositiveAreaBrush + { + get { return positiveAreaBrush.Color; } + set + { + positiveAreaBrush = new SolidBrush( value ); + Invalidate( ); + } + } + + /// + /// Background color used for filling area corresponding to negative values. + /// + /// + /// + /// Default value is set to . + /// + /// + [DefaultValue( typeof( Color ), "LightGray" )] + [Description( "Background color used for filling top right quarter of the control." )] + public Color NegativeAreaBrush + { + get { return negativeAreaBrush.Color; } + set + { + negativeAreaBrush = new SolidBrush( value ); + Invalidate( ); + } + } + + /// + /// Color used for filling manipulator. + /// + /// + /// + /// Default value is set to . + /// + /// + [DefaultValue( typeof( Color ), "LightSeaGreen" )] + [Description( "Color used for filling manipulator." )] + public Color ManipulatorColor + { + get { return manipulatorBrush.Color; } + set + { + manipulatorBrush = new SolidBrush( value ); + Invalidate( ); + } + } + + /// + /// Defines if control has horizontal or vertical look. + /// + /// + /// + /// Default value is set to . + /// + /// + [DefaultValue( true )] + [Description( "Defines if control has horizontal or vertical look." )] + public bool IsHorizontal + { + get { return isHorizontal; } + set + { + isHorizontal = value; + + if ( value ) + { + leftMargin = manipulatorWidth / 2 + 2; + topMargin = manipulatorHeight / 4; + } + else + { + leftMargin = manipulatorHeight / 4; + topMargin = manipulatorWidth / 2 + 2; + } + + Invalidate( ); + } + } + + /// + /// Current manipulator's position, [-1, 1]. + /// + /// + /// The property equals to current manipulator's position. + /// + /// + [Browsable( false )] + public float ManipulatorPosition + { + get { return manipulatatorPosition; } + set + { + manipulatatorPosition = Math.Max( -1.0f, Math.Min( 1.0f, value ) ); + Invalidate( ); + NotifyClients( ); + } + } + + /// + /// Delegate used for notification about manipulator's position changes. + /// + /// + /// Event sender - object sending the event. + /// Current position of manipulator. + /// + public delegate void PositionChangedHandler( object sender, float position ); + + /// + /// Event used for notification about manipulator's position changes. + /// + [Description( "Occurs when manipulator's position is changed." )] + public event PositionChangedHandler PositionChanged; + + /// + /// Initializes a new instance of the class. + /// + public SliderControl( ) + { + InitializeComponent( ); + + // update control style + SetStyle( ControlStyles.AllPaintingInWmPaint | ControlStyles.ResizeRedraw | + ControlStyles.DoubleBuffer | ControlStyles.UserPaint, true ); + + IsHorizontal = true; + } + + // Paint the control + private void TurnControl_Paint( object sender, PaintEventArgs e ) + { + Graphics g = e.Graphics; + + int clientWidth = ClientRectangle.Width; + int clientHeight = ClientRectangle.Height; + + if ( isHorizontal ) + { + // draw area + g.FillRectangle( ( this.Enabled ) ? negativeAreaBrush : disabledBrash, leftMargin, topMargin, + clientWidth / 2 - leftMargin, manipulatorHeight / 2 ); + g.FillRectangle( ( this.Enabled ) ? positiveAreaBrush : disabledBrash, clientWidth / 2, topMargin, + clientWidth / 2 - leftMargin, manipulatorHeight / 2 ); + g.DrawRectangle( borderPen, leftMargin, topMargin, + clientWidth - 1 - leftMargin * 2, manipulatorHeight / 2 ); + g.DrawLine( borderPen, clientWidth / 2, topMargin, clientWidth / 2, topMargin + manipulatorHeight / 2 ); + + // calculate manipulator's center point + int ctrlManipulatorX = (int) ( manipulatatorPosition * ( clientWidth / 2 - leftMargin ) + clientWidth / 2 ); + + // draw manipulator + g.FillRectangle( ( this.Enabled ) ? manipulatorBrush : disabledBrash, ctrlManipulatorX - manipulatorWidth / 2, 0, + manipulatorWidth, manipulatorHeight ); + g.DrawRectangle( borderPen, ctrlManipulatorX - manipulatorWidth / 2, 0, + manipulatorWidth, manipulatorHeight ); + } + else + { + // draw area + g.FillRectangle( ( this.Enabled ) ? positiveAreaBrush : disabledBrash, leftMargin, topMargin, + manipulatorHeight / 2, clientHeight / 2 - topMargin ); + g.FillRectangle( ( this.Enabled ) ? negativeAreaBrush : disabledBrash, leftMargin, clientHeight / 2, + manipulatorHeight / 2, clientHeight / 2 - topMargin ); + g.DrawRectangle( borderPen, leftMargin, topMargin, + manipulatorHeight / 2, clientHeight - 1 - topMargin * 2 ); + g.DrawLine( borderPen, leftMargin, clientHeight / 2, leftMargin + manipulatorHeight / 2, clientHeight / 2 ); + + + // calculate manipulator's center point + int ctrlManipulatorY = (int) ( -manipulatatorPosition * ( clientHeight / 2 - topMargin ) + clientHeight / 2 ); + + // draw manipulator + g.FillRectangle( ( this.Enabled ) ? manipulatorBrush : disabledBrash, 0, ctrlManipulatorY - manipulatorWidth / 2, + manipulatorHeight, manipulatorWidth ); + g.DrawRectangle( borderPen, 0, ctrlManipulatorY - manipulatorWidth / 2, + manipulatorHeight, manipulatorWidth ); + } + } + + // On mouse down event + private void TurnControl_MouseDown( object sender, MouseEventArgs e ) + { + if ( e.Button == MouseButtons.Left ) + { + if ( isHorizontal ) + { + if ( + ( e.X >= leftMargin ) && + ( e.X < ClientRectangle.Width - leftMargin ) && + ( e.Y >= topMargin ) && + ( e.Y < ClientRectangle.Height - topMargin ) ) + { + int cx = e.X - ClientRectangle.Width / 2; + manipulatatorPosition = (float) cx / ( ClientRectangle.Width / 2 - leftMargin ); + tracking = true; + } + } + else + { + if ( + ( e.X >= leftMargin ) && + ( e.X < ClientRectangle.Width - leftMargin ) && + ( e.Y >= topMargin ) && + ( e.Y < ClientRectangle.Height - topMargin ) ) + { + int cy = ClientRectangle.Height / 2 - e.Y; + manipulatatorPosition = (float) cy / ( ClientRectangle.Height / 2 - topMargin ); + tracking = true; + } + } + + if ( tracking ) + { + this.Capture = true; + this.Cursor = Cursors.Hand; + + NotifyClients( ); + // start time, which is used to notify + // about manipulator's position change + ticksBeforeNotificiation = -1; + timer.Start( ); + } + } + } + + // On mouse up event + private void TurnControl_MouseUp( object sender, MouseEventArgs e ) + { + if ( ( e.Button == MouseButtons.Left ) && ( tracking ) ) + { + tracking = false; + this.Capture = false; + this.Cursor = Cursors.Arrow; + + if ( resetPositionOnMouseRelease ) + { + manipulatatorPosition = 0; + } + + Invalidate( ); + timer.Stop( ); + + NotifyClients( ); + } + } + + // On mouse move event + private void TurnControl_MouseMove( object sender, MouseEventArgs e ) + { + if ( tracking ) + { + if ( isHorizontal ) + { + int cx = e.X - ClientRectangle.Width / 2; + manipulatatorPosition = (float) cx / ( ClientRectangle.Width / 2 - leftMargin ); + } + else + { + int cy = ClientRectangle.Height / 2 - e.Y; + manipulatatorPosition = (float) cy / ( ClientRectangle.Height / 2 - topMargin ); + } + + manipulatatorPosition = Math.Max( Math.Min( 1, manipulatatorPosition ), -1 ); + Invalidate( ); + + // notify user after 10 timer ticks + ticksBeforeNotificiation = 5; + } + } + + // Timer handler, which is used to notify clients about manipulator's changes + private void timer_Tick( object sender, EventArgs e ) + { + if ( ticksBeforeNotificiation != -1 ) + { + // time to notify + if ( ticksBeforeNotificiation == 0 ) + { + // notify users + NotifyClients( ); + } + + ticksBeforeNotificiation--; + } + } + + // Notify client about changes of manipulator's position + private void NotifyClients( ) + { + if ( PositionChanged != null ) + { + PositionChanged( this, manipulatatorPosition ); + } + } + + } +} diff --git a/Sources/Controls/SliderControl.resx b/Sources/Controls/SliderControl.resx new file mode 100644 index 00000000..2c946ec6 --- /dev/null +++ b/Sources/Controls/SliderControl.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + False + + \ No newline at end of file diff --git a/Sources/Controls/VideoSourcePlayer.Designer.cs b/Sources/Controls/VideoSourcePlayer.Designer.cs new file mode 100644 index 00000000..fe57aef1 --- /dev/null +++ b/Sources/Controls/VideoSourcePlayer.Designer.cs @@ -0,0 +1,50 @@ +// AForge Controls Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2005-2008 +// andrew.kirillov@gmail.com +// + +namespace AForge.Controls +{ + partial class VideoSourcePlayer + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose( bool disposing ) + { + if ( disposing && ( components != null ) ) + { + components.Dispose( ); + } + base.Dispose( disposing ); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent( ) + { + this.SuspendLayout( ); + // + // VideoSourcePlayer + // + this.Paint += new System.Windows.Forms.PaintEventHandler( this.VideoSourcePlayer_Paint ); + this.ParentChanged += new System.EventHandler( this.VideoSourcePlayer_ParentChanged ); + this.ResumeLayout( false ); + + } + + #endregion + } +} diff --git a/Sources/Controls/VideoSourcePlayer.cs b/Sources/Controls/VideoSourcePlayer.cs new file mode 100644 index 00000000..c2a46ddd --- /dev/null +++ b/Sources/Controls/VideoSourcePlayer.cs @@ -0,0 +1,607 @@ +// AForge Controls Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2012 +// contacts@aforgenet.com +// + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.Drawing.Imaging; +using System.Data; +using System.Text; +using System.Threading; +using System.Windows.Forms; + +using AForge.Video; + +namespace AForge.Controls +{ + using Point = System.Drawing.Point; + + /// + /// Video source player control. + /// + /// + /// The control is aimed to play video sources, which implement + /// interface. To start playing a video + /// the property should be initialized first and then + /// method should be called. In the case if user needs to + /// perform some sort of image processing with video frames before they are displayed, + /// the event may be used. + /// + /// Sample usage: + /// + /// // set new frame event handler if we need processing of new frames + /// playerControl.NewFrame += new VideoSourcePlayer.NewFrameHandler( this.playerControl_NewFrame ); + /// + /// // create video source + /// IVideoSource videoSource = new ... + /// // start playing it + /// playerControl.VideoSource = videoSource; + /// playerControl.Start( ); + /// ... + /// + /// // new frame event handler + /// private void playerControl_NewFrame( object sender, ref Bitmap image ) + /// { + /// // process new frame somehow ... + /// + /// // Note: it may be even changed, so the control will display the result + /// // of image processing done here + /// } + /// + /// + /// + public partial class VideoSourcePlayer : Control + { + // video source to play + private IVideoSource videoSource = null; + // last received frame from the video source + private Bitmap currentFrame = null; + // converted version of the current frame (in the case if current frame is a 16 bpp + // per color plane image, then the converted image is its 8 bpp version for rendering) + private Bitmap convertedFrame = null; + // last error message provided by video source + private string lastMessage = null; + // controls border color + private Color borderColor = Color.Black; + + private Size frameSize = new Size( 320, 240 ); + private bool autosize = false; + private bool keepRatio = false; + private bool needSizeUpdate = false; + private bool firstFrameNotProcessed = true; + private volatile bool requestedToStop = false; + + // parent of the control + private Control parent = null; + + // dummy object to lock for synchronization + private object sync = new object( ); + + /// + /// Auto size control or not. + /// + /// + /// The property specifies if the control should be autosized or not. + /// If the property is set to , then the control will change its size according to + /// video size and control will change its position automatically to be in the center + /// of parent's control. + /// + /// Setting the property to has no effect if + /// property is set to . + /// + /// + [DefaultValue( false )] + public bool AutoSizeControl + { + get { return autosize; } + set + { + autosize = value; + UpdatePosition( ); + } + } + + /// + /// Gets or sets whether the player should keep the aspect ratio of the images being shown. + /// + /// + [DefaultValue( false )] + public bool KeepAspectRatio + { + get { return keepRatio; } + set + { + keepRatio = value; + Invalidate( ); + } + } + + /// + /// Control's border color. + /// + /// + /// Specifies color of the border drawn around video frame. + /// + [DefaultValue( typeof( Color ), "Black" )] + public Color BorderColor + { + get { return borderColor; } + set + { + borderColor = value; + Invalidate( ); + } + } + + /// + /// Video source to play. + /// + /// + /// The property sets the video source to play. After setting the property the + /// method should be used to start playing the video source. + /// + /// Trying to change video source while currently set video source is still playing + /// will generate an exception. Use property to check if current video + /// source is still playing or or and + /// methods to stop current video source. + /// + /// + /// Video source can not be changed while current video source is still running. + /// + [Browsable( false )] + public IVideoSource VideoSource + { + get { return videoSource; } + set + { + CheckForCrossThreadAccess( ); + + // detach events + if ( videoSource != null ) + { + videoSource.NewFrame -= new NewFrameEventHandler( videoSource_NewFrame ); + videoSource.VideoSourceError -= new VideoSourceErrorEventHandler( videoSource_VideoSourceError ); + videoSource.PlayingFinished -= new PlayingFinishedEventHandler( videoSource_PlayingFinished ); + } + + lock ( sync ) + { + if ( currentFrame != null ) + { + currentFrame.Dispose( ); + currentFrame = null; + } + } + + videoSource = value; + + // atach events + if ( videoSource != null ) + { + videoSource.NewFrame += new NewFrameEventHandler( videoSource_NewFrame ); + videoSource.VideoSourceError += new VideoSourceErrorEventHandler( videoSource_VideoSourceError ); + videoSource.PlayingFinished += new PlayingFinishedEventHandler( videoSource_PlayingFinished ); + } + else + { + frameSize = new Size( 320, 240 ); + } + + lastMessage = null; + needSizeUpdate = true; + firstFrameNotProcessed = true; + // update the control + Invalidate( ); + } + } + + /// + /// State of the current video source. + /// + /// + /// Current state of the current video source object - running or not. + /// + [Browsable( false )] + public bool IsRunning + { + get + { + CheckForCrossThreadAccess( ); + + return ( videoSource != null ) ? videoSource.IsRunning : false; + } + } + + /// + /// Delegate to notify about new frame. + /// + /// + /// Event sender. + /// New frame. + /// + public delegate void NewFrameHandler( object sender, ref Bitmap image ); + + /// + /// New frame event. + /// + /// + /// The event is fired on each new frame received from video source. The + /// event is fired right after receiving and before displaying, what gives user a chance to + /// perform some image processing on the new frame and/or update it. + /// + /// Users should not keep references of the passed to the event handler image. + /// If user needs to keep the image, it should be cloned, since the original image will be disposed + /// by the control when it is required. + /// + /// + public event NewFrameHandler NewFrame; + + /// + /// Playing finished event. + /// + /// + /// The event is fired when/if video playing finishes. The reason of video + /// stopping is provided as an argument to the event handler. + /// + public event PlayingFinishedEventHandler PlayingFinished; + + /// + /// Initializes a new instance of the class. + /// + public VideoSourcePlayer( ) + { + InitializeComponent( ); + + // update control style + SetStyle( ControlStyles.AllPaintingInWmPaint | ControlStyles.ResizeRedraw | + ControlStyles.DoubleBuffer | ControlStyles.UserPaint, true ); + } + + // Check if the control is accessed from a none UI thread + private void CheckForCrossThreadAccess( ) + { + // force handle creation, so InvokeRequired() will use it instead of searching through parent's chain + if ( !IsHandleCreated ) + { + CreateControl( ); + + // if the control is not Visible, then CreateControl() will not be enough + if ( !IsHandleCreated ) + { + CreateHandle( ); + } + } + + if ( InvokeRequired ) + { + throw new InvalidOperationException( "Cross thread access to the control is not allowed." ); + } + } + + /// + /// Start video source and displaying its frames. + /// + public void Start( ) + { + CheckForCrossThreadAccess( ); + + requestedToStop = false; + + if ( videoSource != null ) + { + firstFrameNotProcessed = true; + + videoSource.Start( ); + Invalidate( ); + } + } + + /// + /// Stop video source. + /// + /// + /// The method stops video source by calling its + /// method, which abourts internal video source's thread. Use and + /// for more polite video source stopping, which gives a chance for + /// video source to perform proper shut down and clean up. + /// + /// + public void Stop( ) + { + CheckForCrossThreadAccess( ); + + requestedToStop = true; + + if ( videoSource != null ) + { + videoSource.Stop( ); + + if ( currentFrame != null ) + { + currentFrame.Dispose( ); + currentFrame = null; + } + + Invalidate( ); + } + } + + /// + /// Signal video source to stop. + /// + /// + /// Use method to wait until video source + /// stops. + /// + public void SignalToStop( ) + { + CheckForCrossThreadAccess( ); + + requestedToStop = true; + + if ( videoSource != null ) + { + videoSource.SignalToStop( ); + } + } + + /// + /// Wait for video source has stopped. + /// + /// + /// Waits for video source stopping after it was signaled to stop using + /// method. If was not called, then + /// it will be called automatically. + /// + public void WaitForStop( ) + { + CheckForCrossThreadAccess( ); + + if ( !requestedToStop ) + { + SignalToStop( ); + } + + if ( videoSource != null ) + { + videoSource.WaitForStop( ); + + if ( currentFrame != null ) + { + currentFrame.Dispose( ); + currentFrame = null; + } + + Invalidate( ); + } + } + + /// + /// Get clone of current video frame displayed by the control. + /// + /// + /// Returns copy of the video frame, which is currently displayed + /// by the control - the last video frame received from video source. If the + /// control did not receive any video frames yet, then the method returns + /// . + /// + public Bitmap GetCurrentVideoFrame( ) + { + lock ( sync ) + { + return ( currentFrame == null ) ? null : AForge.Imaging.Image.Clone( currentFrame ); + } + } + + // Paint control + private void VideoSourcePlayer_Paint( object sender, PaintEventArgs e ) + { + if ( !Visible ) + { + return; + } + + // is it required to update control's size/position + if ( ( needSizeUpdate ) || ( firstFrameNotProcessed ) ) + { + UpdatePosition( ); + needSizeUpdate = false; + } + + lock ( sync ) + { + Graphics g = e.Graphics; + Rectangle rect = this.ClientRectangle; + Pen borderPen = new Pen( borderColor, 1 ); + + // draw rectangle + g.DrawRectangle( borderPen, rect.X, rect.Y, rect.Width - 1, rect.Height - 1 ); + + if ( videoSource != null ) + { + if ( ( currentFrame != null ) && ( lastMessage == null ) ) + { + Bitmap frame = ( convertedFrame != null ) ? convertedFrame : currentFrame; + + if ( keepRatio ) + { + double ratio = (double) frame.Width / frame.Height; + Rectangle newRect = rect; + + if ( rect.Width < rect.Height * ratio ) + { + newRect.Height = (int) ( rect.Width / ratio ); + } + else + { + newRect.Width = (int) ( rect.Height * ratio ); + } + + newRect.X = ( rect.Width - newRect.Width ) / 2; + newRect.Y = ( rect.Height - newRect.Height ) / 2; + + g.DrawImage( frame, newRect.X + 1, newRect.Y + 1, newRect.Width - 2, newRect.Height - 2); + } + else + { + // draw current frame + g.DrawImage( frame, rect.X + 1, rect.Y + 1, rect.Width - 2, rect.Height - 2); + } + + firstFrameNotProcessed = false; + } + else + { + // create font and brush + SolidBrush drawBrush = new SolidBrush( this.ForeColor ); + + g.DrawString( ( lastMessage == null ) ? "Connecting ..." : lastMessage, + this.Font, drawBrush, new PointF( 5, 5 ) ); + + drawBrush.Dispose( ); + } + } + + borderPen.Dispose( ); + } + } + + // Update controls size and position + private void UpdatePosition( ) + { + if ( ( autosize ) && ( this.Dock != DockStyle.Fill ) && ( this.Parent != null ) ) + { + Rectangle rc = this.Parent.ClientRectangle; + int width = frameSize.Width; + int height = frameSize.Height; + + // update controls size and location + this.SuspendLayout( ); + this.Location = new Point( ( rc.Width - width - 2 ) / 2, ( rc.Height - height - 2 ) / 2 ); + this.Size = new Size( width + 2, height + 2 ); + this.ResumeLayout( ); + } + } + + // On new frame ready + private void videoSource_NewFrame( object sender, NewFrameEventArgs eventArgs ) + { + if ( !requestedToStop ) + { + Bitmap newFrame = (Bitmap) eventArgs.Frame.Clone( ); + + // let user process the frame first + if ( NewFrame != null ) + { + NewFrame( this, ref newFrame ); + } + + // now update current frame of the control + lock ( sync ) + { + // dispose previous frame + if ( currentFrame != null ) + { + if ( currentFrame.Size != eventArgs.Frame.Size ) + { + needSizeUpdate = true; + } + + currentFrame.Dispose( ); + currentFrame = null; + } + if ( convertedFrame != null ) + { + convertedFrame.Dispose( ); + convertedFrame = null; + } + + currentFrame = newFrame; + frameSize = currentFrame.Size; + lastMessage = null; + + // check if conversion is required to lower bpp rate + if ( ( currentFrame.PixelFormat == PixelFormat.Format16bppGrayScale ) || + ( currentFrame.PixelFormat == PixelFormat.Format48bppRgb ) || + ( currentFrame.PixelFormat == PixelFormat.Format64bppArgb ) ) + { + convertedFrame = AForge.Imaging.Image.Convert16bppTo8bpp( currentFrame ); + } + } + + // update control + Invalidate( ); + } + } + + // Error occured in video source + private void videoSource_VideoSourceError( object sender, VideoSourceErrorEventArgs eventArgs ) + { + lastMessage = eventArgs.Description; + Invalidate( ); + } + + // Video source has finished playing video + private void videoSource_PlayingFinished( object sender, ReasonToFinishPlaying reason ) + { + switch ( reason ) + { + case ReasonToFinishPlaying.EndOfStreamReached: + lastMessage = "Video has finished"; + break; + + case ReasonToFinishPlaying.StoppedByUser: + lastMessage = "Video was stopped"; + break; + + case ReasonToFinishPlaying.DeviceLost: + lastMessage = "Video device was unplugged"; + break; + + case ReasonToFinishPlaying.VideoSourceError: + lastMessage = "Video has finished because of error in video source"; + break; + + default: + lastMessage = "Video has finished for unknown reason"; + break; + } + Invalidate( ); + + // notify users + if ( PlayingFinished != null ) + { + PlayingFinished( this, reason ); + } + } + + // Parent Changed event handler + private void VideoSourcePlayer_ParentChanged( object sender, EventArgs e ) + { + if ( parent != null ) + { + parent.SizeChanged -= new EventHandler( parent_SizeChanged ); + } + + parent = this.Parent; + + // set handler for Size Changed parent's event + if ( parent != null ) + { + parent.SizeChanged += new EventHandler( parent_SizeChanged ); + } + } + + // Parent control has changed its size + private void parent_SizeChanged( object sender, EventArgs e ) + { + UpdatePosition( ); + } + } +} diff --git a/Sources/Controls/VideoSourcePlayer.resx b/Sources/Controls/VideoSourcePlayer.resx new file mode 100644 index 00000000..52a9ad3e --- /dev/null +++ b/Sources/Controls/VideoSourcePlayer.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + False + + \ No newline at end of file diff --git a/Sources/Core/AForge.snk b/Sources/Core/AForge.snk new file mode 100644 index 00000000..845884db Binary files /dev/null and b/Sources/Core/AForge.snk differ diff --git a/Sources/Core/Core (mono).csproj b/Sources/Core/Core (mono).csproj new file mode 100644 index 00000000..8fd0ac27 --- /dev/null +++ b/Sources/Core/Core (mono).csproj @@ -0,0 +1,60 @@ + + + + Debug + AnyCPU + 9.0.21022 + 2.0 + {C288D9C9-FCEF-4DD4-86C3-60DDFA0F2A9D} + Library + AForge + v2.0 + AForge + + + true + full + false + bin\Debug + DEBUG,MONO + prompt + 3 + false + true + + + none + false + ..\..\Release\Mono + prompt + 3 + false + true + AForge.snk + true + MONO + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Sources/Core/Core (mono).sln b/Sources/Core/Core (mono).sln new file mode 100644 index 00000000..abe92388 --- /dev/null +++ b/Sources/Core/Core (mono).sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Core (mono)", "Core (mono).csproj", "{C288D9C9-FCEF-4DD4-86C3-60DDFA0F2A9D}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {C288D9C9-FCEF-4DD4-86C3-60DDFA0F2A9D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C288D9C9-FCEF-4DD4-86C3-60DDFA0F2A9D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C288D9C9-FCEF-4DD4-86C3-60DDFA0F2A9D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C288D9C9-FCEF-4DD4-86C3-60DDFA0F2A9D}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(MonoDevelopProperties) = preSolution + StartupItem = Core (mono).csproj + EndGlobalSection +EndGlobal diff --git a/Sources/Core/Core.csproj b/Sources/Core/Core.csproj new file mode 100644 index 00000000..7476f62c --- /dev/null +++ b/Sources/Core/Core.csproj @@ -0,0 +1,111 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {631AC093-430F-45F4-BA0C-AF0F0405918A} + Library + Properties + AForge + AForge + v2.0 + 512 + true + AForge.snk + + + 3.5 + + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + true + full + false + ..\..\Release\ + TRACE;DEBUG + prompt + 4 + AForge.xml + true + + + pdbonly + true + ..\..\Release\ + TRACE + prompt + 4 + AForge.xml + true + + + + + + + + + + + + + + + + + + + + + + + + + + False + Microsoft .NET Framework 4 %28x86 and x64%29 + true + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 3.1 + true + + + + + \ No newline at end of file diff --git a/Sources/Core/Core.sln b/Sources/Core/Core.sln new file mode 100644 index 00000000..1199ac9d --- /dev/null +++ b/Sources/Core/Core.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual C# Express 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Core", "Core.csproj", "{631AC093-430F-45F4-BA0C-AF0F0405918A}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {631AC093-430F-45F4-BA0C-AF0F0405918A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {631AC093-430F-45F4-BA0C-AF0F0405918A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {631AC093-430F-45F4-BA0C-AF0F0405918A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {631AC093-430F-45F4-BA0C-AF0F0405918A}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Sources/Core/Delegates.cs b/Sources/Core/Delegates.cs new file mode 100644 index 00000000..2ec87cf2 --- /dev/null +++ b/Sources/Core/Delegates.cs @@ -0,0 +1,21 @@ +// AForge Core Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2011 +// contacts@aforgenet.com +// + +namespace AForge +{ + using System; + + /// + /// A delegate which is used by events notifying abount sent/received message. + /// + /// + /// Event sender. + /// Event arguments containing details about the transferred message. + /// + public delegate void MessageTransferHandler( object sender, CommunicationBufferEventArgs eventArgs ); +} diff --git a/Sources/Core/DoublePoint.cs b/Sources/Core/DoublePoint.cs new file mode 100644 index 00000000..49a22f15 --- /dev/null +++ b/Sources/Core/DoublePoint.cs @@ -0,0 +1,394 @@ +// AForge Core Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2011 +// contacts@aforgenet.com +// + +namespace AForge +{ + using System; + + /// + /// Structure for representing a pair of coordinates of double type. + /// + /// + /// The structure is used to store a pair of floating point + /// coordinates with double precision. + /// + /// Sample usage: + /// + /// // assigning coordinates in the constructor + /// DoublePoint p1 = new DoublePoint( 10, 20 ); + /// // creating a point and assigning coordinates later + /// DoublePoint p2; + /// p2.X = 30; + /// p2.Y = 40; + /// // calculating distance between two points + /// double distance = p1.DistanceTo( p2 ); + /// + /// + /// + [Serializable] + public struct DoublePoint + { + /// + /// X coordinate. + /// + /// + public double X; + + /// + /// Y coordinate. + /// + /// + public double Y; + + /// + /// Initializes a new instance of the structure. + /// + /// + /// X axis coordinate. + /// Y axis coordinate. + /// + public DoublePoint( double x, double y ) + { + this.X = x; + this.Y = y; + } + + /// + /// Calculate Euclidean distance between two points. + /// + /// + /// Point to calculate distance to. + /// + /// Returns Euclidean distance between this point and + /// points. + /// + public double DistanceTo( DoublePoint anotherPoint ) + { + double dx = X - anotherPoint.X; + double dy = Y - anotherPoint.Y; + + return System.Math.Sqrt( dx * dx + dy * dy ); + } + + /// + /// Calculate squared Euclidean distance between two points. + /// + /// + /// Point to calculate distance to. + /// + /// Returns squared Euclidean distance between this point and + /// points. + /// + public double SquaredDistanceTo( DoublePoint anotherPoint ) + { + double dx = X - anotherPoint.X; + double dy = Y - anotherPoint.Y; + + return dx * dx + dy * dy; + } + + /// + /// Addition operator - adds values of two points. + /// + /// + /// First point for addition. + /// Second point for addition. + /// + /// Returns new point which coordinates equal to sum of corresponding + /// coordinates of specified points. + /// + public static DoublePoint operator +( DoublePoint point1, DoublePoint point2 ) + { + return new DoublePoint( point1.X + point2.X, point1.Y + point2.Y ); + } + + /// + /// Addition operator - adds values of two points. + /// + /// + /// First point for addition. + /// Second point for addition. + /// + /// Returns new point which coordinates equal to sum of corresponding + /// coordinates of specified points. + /// + public static DoublePoint Add( DoublePoint point1, DoublePoint point2 ) + { + return new DoublePoint( point1.X + point2.X, point1.Y + point2.Y ); + } + + /// + /// Subtraction operator - subtracts values of two points. + /// + /// + /// Point to subtract from. + /// Point to subtract. + /// + /// Returns new point which coordinates equal to difference of corresponding + /// coordinates of specified points. + /// + public static DoublePoint operator -( DoublePoint point1, DoublePoint point2 ) + { + return new DoublePoint( point1.X - point2.X, point1.Y - point2.Y ); + } + + /// + /// Subtraction operator - subtracts values of two points. + /// + /// + /// Point to subtract from. + /// Point to subtract. + /// + /// Returns new point which coordinates equal to difference of corresponding + /// coordinates of specified points. + /// + public static DoublePoint Subtract( DoublePoint point1, DoublePoint point2 ) + { + return new DoublePoint( point1.X - point2.X, point1.Y - point2.Y ); + } + + /// + /// Addition operator - adds scalar to the specified point. + /// + /// + /// Point to increase coordinates of. + /// Value to add to coordinates of the specified point. + /// + /// Returns new point which coordinates equal to coordinates of + /// the specified point increased by specified value. + /// + public static DoublePoint operator +( DoublePoint point, double valueToAdd ) + { + return new DoublePoint( point.X + valueToAdd, point.Y + valueToAdd ); + } + + /// + /// Addition operator - adds scalar to the specified point. + /// + /// + /// Point to increase coordinates of. + /// Value to add to coordinates of the specified point. + /// + /// Returns new point which coordinates equal to coordinates of + /// the specified point increased by specified value. + /// + public static DoublePoint Add( DoublePoint point, double valueToAdd ) + { + return new DoublePoint( point.X + valueToAdd, point.Y + valueToAdd ); + } + + /// + /// Subtraction operator - subtracts scalar from the specified point. + /// + /// + /// Point to decrease coordinates of. + /// Value to subtract from coordinates of the specified point. + /// + /// Returns new point which coordinates equal to coordinates of + /// the specified point decreased by specified value. + /// + public static DoublePoint operator -( DoublePoint point, double valueToSubtract ) + { + return new DoublePoint( point.X - valueToSubtract, point.Y - valueToSubtract ); + } + + /// + /// Subtraction operator - subtracts scalar from the specified point. + /// + /// + /// Point to decrease coordinates of. + /// Value to subtract from coordinates of the specified point. + /// + /// Returns new point which coordinates equal to coordinates of + /// the specified point decreased by specified value. + /// + public static DoublePoint Subtract( DoublePoint point, double valueToSubtract ) + { + return new DoublePoint( point.X - valueToSubtract, point.Y - valueToSubtract ); + } + + /// + /// Multiplication operator - multiplies coordinates of the specified point by scalar value. + /// + /// + /// Point to multiply coordinates of. + /// Multiplication factor. + /// + /// Returns new point which coordinates equal to coordinates of + /// the specified point multiplied by specified value. + /// + public static DoublePoint operator *( DoublePoint point, double factor ) + { + return new DoublePoint( point.X * factor, point.Y * factor ); + } + + /// + /// Multiplication operator - multiplies coordinates of the specified point by scalar value. + /// + /// + /// Point to multiply coordinates of. + /// Multiplication factor. + /// + /// Returns new point which coordinates equal to coordinates of + /// the specified point multiplied by specified value. + /// + public static DoublePoint Multiply( DoublePoint point, double factor ) + { + return new DoublePoint( point.X * factor, point.Y * factor ); + } + + /// + /// Division operator - divides coordinates of the specified point by scalar value. + /// + /// + /// Point to divide coordinates of. + /// Division factor. + /// + /// Returns new point which coordinates equal to coordinates of + /// the specified point divided by specified value. + /// + public static DoublePoint operator /( DoublePoint point, double factor ) + { + return new DoublePoint( point.X / factor, point.Y / factor ); + } + + /// + /// Division operator - divides coordinates of the specified point by scalar value. + /// + /// + /// Point to divide coordinates of. + /// Division factor. + /// + /// Returns new point which coordinates equal to coordinates of + /// the specified point divided by specified value. + /// + public static DoublePoint Divide( DoublePoint point, double factor ) + { + return new DoublePoint( point.X / factor, point.Y / factor ); + } + + /// + /// Equality operator - checks if two points have equal coordinates. + /// + /// + /// First point to check. + /// Second point to check. + /// + /// Returns if coordinates of specified + /// points are equal. + /// + public static bool operator ==( DoublePoint point1, DoublePoint point2 ) + { + return ( ( point1.X == point2.X ) && ( point1.Y == point2.Y ) ); + } + + /// + /// Inequality operator - checks if two points have different coordinates. + /// + /// + /// First point to check. + /// Second point to check. + /// + /// Returns if coordinates of specified + /// points are not equal. + /// + public static bool operator !=( DoublePoint point1, DoublePoint point2 ) + { + return ( ( point1.X != point2.X ) || ( point1.Y != point2.Y ) ); + } + + /// + /// Check if this instance of equal to the specified one. + /// + /// + /// Another point to check equalty to. + /// + /// Return if objects are equal. + /// + public override bool Equals( object obj ) + { + return ( obj is DoublePoint ) ? ( this == (DoublePoint) obj ) : false; + } + + /// + /// Get hash code for this instance. + /// + /// + /// Returns the hash code for this instance. + /// + public override int GetHashCode( ) + { + return X.GetHashCode( ) + Y.GetHashCode( ); + } + + /// + /// Explicit conversion to . + /// + /// + /// Double precision point to convert to integer point. + /// + /// Returns new integer point which coordinates are explicitly converted + /// to integers from coordinates of the specified double precision point by + /// casting double values to integers value. + /// + public static explicit operator IntPoint( DoublePoint point ) + { + return new IntPoint( (int) point.X, (int) point.Y ); + } + + /// + /// Explicit conversion to . + /// + /// + /// Double precision point to convert to single precision point. + /// + /// Returns new single precision point which coordinates are explicitly converted + /// to floats from coordinates of the specified double precision point by + /// casting double values to float value. + /// + public static explicit operator Point( DoublePoint point ) + { + return new Point( (float) point.X, (float) point.Y ); + } + + /// + /// Rounds the double precision point. + /// + /// + /// Returns new integer point, which coordinates equal to whole numbers + /// nearest to the corresponding coordinates of the double precision point. + /// + public IntPoint Round( ) + { + return new IntPoint( (int) Math.Round( X ), (int) Math.Round( Y ) ); + } + + /// + /// Get string representation of the class. + /// + /// + /// Returns string, which contains values of the point in readable form. + /// + public override string ToString( ) + { + return string.Format( System.Globalization.CultureInfo.InvariantCulture, "{0}, {1}", X, Y ); + } + + /// + /// Calculate Euclidean norm of the vector comprised of the point's + /// coordinates - distance from (0, 0) in other words. + /// + /// + /// Returns point's distance from (0, 0) point. + /// + public double EuclideanNorm( ) + { + return System.Math.Sqrt( X * X + Y * Y ); + } + } +} diff --git a/Sources/Core/DoubleRange.cs b/Sources/Core/DoubleRange.cs new file mode 100644 index 00000000..7bdb4a18 --- /dev/null +++ b/Sources/Core/DoubleRange.cs @@ -0,0 +1,239 @@ +// AForge Core Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2011 +// contacts@aforgenet.com +// + +namespace AForge +{ + using System; + + /// + /// Represents a double range with minimum and maximum values. + /// + /// + /// + /// The class represents a double range with inclusive limits - + /// both minimum and maximum values of the range are included into it. + /// Mathematical notation of such range is [min, max]. + /// + /// Sample usage: + /// + /// // create [0.25, 1.5] range + /// DoubleRange range1 = new DoubleRange( 0.25, 1.5 ); + /// // create [1.00, 2.25] range + /// DoubleRange range2 = new DoubleRange( 1.00, 2.25 ); + /// // check if values is inside of the first range + /// if ( range1.IsInside( 0.75 ) ) + /// { + /// // ... + /// } + /// // check if the second range is inside of the first range + /// if ( range1.IsInside( range2 ) ) + /// { + /// // ... + /// } + /// // check if two ranges overlap + /// if ( range1.IsOverlapping( range2 ) ) + /// { + /// // ... + /// } + /// + /// + /// + [Serializable] + public struct DoubleRange + { + private double min, max; + + /// + /// Minimum value of the range. + /// + /// + /// The property represents minimum value (left side limit) or the range - + /// [min, max]. + /// + public double Min + { + get { return min; } + set { min = value; } + } + + /// + /// Maximum value of the range. + /// + /// + /// The property represents maximum value (right side limit) or the range - + /// [min, max]. + /// + public double Max + { + get { return max; } + set { max = value; } + } + + /// + /// Length of the range (deffirence between maximum and minimum values). + /// + public double Length + { + get { return max - min; } + } + + + /// + /// Initializes a new instance of the class. + /// + /// + /// Minimum value of the range. + /// Maximum value of the range. + /// + public DoubleRange( double min, double max ) + { + this.min = min; + this.max = max; + } + + /// + /// Check if the specified value is inside of the range. + /// + /// + /// Value to check. + /// + /// True if the specified value is inside of the range or + /// false otherwise. + /// + public bool IsInside( double x ) + { + return ( ( x >= min ) && ( x <= max ) ); + } + + /// + /// Check if the specified range is inside of the range. + /// + /// + /// Range to check. + /// + /// True if the specified range is inside of the range or + /// false otherwise. + /// + public bool IsInside( DoubleRange range ) + { + return ( ( IsInside( range.min ) ) && ( IsInside( range.max ) ) ); + } + + /// + /// Check if the specified range overlaps with the range. + /// + /// + /// Range to check for overlapping. + /// + /// True if the specified range overlaps with the range or + /// false otherwise. + /// + public bool IsOverlapping( DoubleRange range ) + { + return ( ( IsInside( range.min ) ) || ( IsInside( range.max ) ) || + ( range.IsInside( min ) ) || ( range.IsInside( max ) ) ); + } + + /// + /// Convert the signle precision range to integer range. + /// + /// + /// Specifies if inner integer range must be returned or outer range. + /// + /// Returns integer version of the range. + /// + /// If is set to , then the + /// returned integer range will always fit inside of the current single precision range. + /// If it is set to , then current single precision range will always + /// fit into the returned integer range. + /// + public IntRange ToIntRange( bool provideInnerRange ) + { + int iMin, iMax; + + if ( provideInnerRange ) + { + iMin = (int) Math.Ceiling( min ); + iMax = (int) Math.Floor( max ); + } + else + { + iMin = (int) Math.Floor( min ); + iMax = (int) Math.Ceiling( max ); + } + + return new IntRange( iMin, iMax ); + } + + /// + /// Equality operator - checks if two ranges have equal min/max values. + /// + /// + /// First range to check. + /// Second range to check. + /// + /// Returns if min/max values of specified + /// ranges are equal. + /// + public static bool operator ==( DoubleRange range1, DoubleRange range2 ) + { + return ( ( range1.min == range2.min ) && ( range1.max == range2.max ) ); + } + + /// + /// Inequality operator - checks if two ranges have different min/max values. + /// + /// + /// First range to check. + /// Second range to check. + /// + /// Returns if min/max values of specified + /// ranges are not equal. + /// + public static bool operator !=( DoubleRange range1, DoubleRange range2 ) + { + return ( ( range1.min != range2.min ) || ( range1.max != range2.max ) ); + + } + + /// + /// Check if this instance of equal to the specified one. + /// + /// + /// Another range to check equalty to. + /// + /// Return if objects are equal. + /// + public override bool Equals( object obj ) + { + return ( obj is Range ) ? ( this == (DoubleRange) obj ) : false; + } + + /// + /// Get hash code for this instance. + /// + /// + /// Returns the hash code for this instance. + /// + public override int GetHashCode( ) + { + return min.GetHashCode( ) + max.GetHashCode( ); + } + + /// + /// Get string representation of the class. + /// + /// + /// Returns string, which contains min/max values of the range in readable form. + /// + public override string ToString( ) + { + return string.Format( System.Globalization.CultureInfo.InvariantCulture, "{0}, {1}", min, max ); + } + } +} diff --git a/Sources/Core/EventArgs.cs b/Sources/Core/EventArgs.cs new file mode 100644 index 00000000..cea10aba --- /dev/null +++ b/Sources/Core/EventArgs.cs @@ -0,0 +1,82 @@ +// AForge Core Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2011 +// contacts@aforgenet.com +// + +namespace AForge +{ + using System; + + /// + /// Event arguments holding a buffer sent or received during some communication process. + /// + public class CommunicationBufferEventArgs : EventArgs + { + private readonly byte[] message; + private readonly int index; + private readonly int length; + + /// + /// Length of the transfered message. + /// + public int MessageLength + { + get { return length; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Message being transfered during communication process. + /// + public CommunicationBufferEventArgs( byte[] message ) + { + this.message = message; + this.index = 0; + this.length = message.Length; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Buffer containing the message being transferred during communication process. + /// Starting index of the message within the buffer. + /// Length of the message within the buffer. + /// + public CommunicationBufferEventArgs( byte[] buffer, int index, int length ) + { + this.message = buffer; + this.index = index; + this.length = length; + } + + /// + /// Get the transfered message. + /// + /// + /// Returns copy of the transfered message. + /// + public byte[] GetMessage( ) + { + byte[] ret = new byte[length]; + Array.Copy( message, index, ret, 0, length ); + return ret; + } + + /// + /// Get the transferred message as string. + /// + /// + /// Returns string encoding the transferred message. + /// + public string GetMessageString( ) + { + return BitConverter.ToString( message, index, length ); + } + } +} diff --git a/Sources/Core/Exceptions.cs b/Sources/Core/Exceptions.cs new file mode 100644 index 00000000..0dc712ea --- /dev/null +++ b/Sources/Core/Exceptions.cs @@ -0,0 +1,111 @@ +// AForge Core Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2007-2009 +// andrew.kirillov@aforgenet.com +// + +namespace AForge +{ + using System; + + /// + /// Connection failed exception. + /// + /// + /// The exception is thrown in the case if connection to device + /// has failed. + /// + /// + public class ConnectionFailedException : Exception + { + /// + /// Initializes a new instance of the class. + /// + /// + /// Exception's message. + /// + public ConnectionFailedException( string message ) : + base( message ) { } + } + + /// + /// Connection lost exception. + /// + /// + /// The exception is thrown in the case if connection to device + /// is lost. When the exception is caught, user may need to reconnect to the device. + /// + /// + public class ConnectionLostException : Exception + { + /// + /// Initializes a new instance of the class. + /// + /// + /// Exception's message. + /// + public ConnectionLostException( string message ) : + base( message ) { } + } + + /// + /// Not connected exception. + /// + /// + /// The exception is thrown in the case if connection to device + /// is not established, but user requests for its services. + /// + /// + public class NotConnectedException : Exception + { + /// + /// Initializes a new instance of the class. + /// + /// + /// Exception's message. + /// + public NotConnectedException( string message ) : + base( message ) { } + } + + /// + /// Device busy exception. + /// + /// + /// The exception is thrown in the case if access to certain device + /// is not available due to the fact that it is currently busy handling other request/connection. + /// + /// + public class DeviceBusyException : Exception + { + /// + /// Initializes a new instance of the class. + /// + /// + /// Exception's message. + /// + public DeviceBusyException( string message ) : + base( message ) { } + } + + /// + /// Device error exception. + /// + /// + /// The exception is thrown in the case if some error happens with a device, which + /// may need to be reported to user. + /// + public class DeviceErrorException : Exception + { + /// + /// Initializes a new instance of the class. + /// + /// + /// Exception's message. + /// + public DeviceErrorException( string message ) : + base( message ) { } + } +} diff --git a/Sources/Core/IntPoint.cs b/Sources/Core/IntPoint.cs new file mode 100644 index 00000000..a4e30a95 --- /dev/null +++ b/Sources/Core/IntPoint.cs @@ -0,0 +1,380 @@ +// AForge Core Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2011 +// contacts@aforgenet.com +// + +namespace AForge +{ + using System; + using System.ComponentModel; + + /// + /// Structure for representing a pair of coordinates of integer type. + /// + /// + /// The structure is used to store a pair of integer coordinates. + /// + /// Sample usage: + /// + /// // assigning coordinates in the constructor + /// IntPoint p1 = new IntPoint( 10, 20 ); + /// // creating a point and assigning coordinates later + /// IntPoint p2; + /// p2.X = 30; + /// p2.Y = 40; + /// // calculating distance between two points + /// float distance = p1.DistanceTo( p2 ); + /// + /// + /// + [Serializable] + public struct IntPoint + { + /// + /// X coordinate. + /// + /// + public int X; + + /// + /// Y coordinate. + /// + /// + public int Y; + + /// + /// Initializes a new instance of the structure. + /// + /// + /// X axis coordinate. + /// Y axis coordinate. + /// + public IntPoint( int x, int y ) + { + this.X = x; + this.Y = y; + } + + /// + /// Calculate Euclidean distance between two points. + /// + /// + /// Point to calculate distance to. + /// + /// Returns Euclidean distance between this point and + /// points. + /// + public float DistanceTo( IntPoint anotherPoint ) + { + int dx = X - anotherPoint.X; + int dy = Y - anotherPoint.Y; + + return (float) System.Math.Sqrt( dx * dx + dy * dy ); + } + + /// + /// Calculate squared Euclidean distance between two points. + /// + /// + /// Point to calculate distance to. + /// + /// Returns squared Euclidean distance between this point and + /// points. + /// + public float SquaredDistanceTo( Point anotherPoint ) + { + float dx = X - anotherPoint.X; + float dy = Y - anotherPoint.Y; + + return dx * dx + dy * dy; + } + + /// + /// Addition operator - adds values of two points. + /// + /// + /// First point for addition. + /// Second point for addition. + /// + /// Returns new point which coordinates equal to sum of corresponding + /// coordinates of specified points. + /// + public static IntPoint operator +( IntPoint point1, IntPoint point2 ) + { + return new IntPoint( point1.X + point2.X, point1.Y + point2.Y ); + } + + /// + /// Addition operator - adds values of two points. + /// + /// + /// First point for addition. + /// Second point for addition. + /// + /// Returns new point which coordinates equal to sum of corresponding + /// coordinates of specified points. + /// + public static IntPoint Add( IntPoint point1, IntPoint point2 ) + { + return new IntPoint( point1.X + point2.X, point1.Y + point2.Y ); + } + + /// + /// Subtraction operator - subtracts values of two points. + /// + /// + /// Point to subtract from. + /// Point to subtract. + /// + /// Returns new point which coordinates equal to difference of corresponding + /// coordinates of specified points. + /// + public static IntPoint operator -( IntPoint point1, IntPoint point2 ) + { + return new IntPoint( point1.X - point2.X, point1.Y - point2.Y ); + } + + /// + /// Subtraction operator - subtracts values of two points. + /// + /// + /// Point to subtract from. + /// Point to subtract. + /// + /// Returns new point which coordinates equal to difference of corresponding + /// coordinates of specified points. + /// + public static IntPoint Subtract( IntPoint point1, IntPoint point2 ) + { + return new IntPoint( point1.X - point2.X, point1.Y - point2.Y ); + } + + /// + /// Addition operator - adds scalar to the specified point. + /// + /// + /// Point to increase coordinates of. + /// Value to add to coordinates of the specified point. + /// + /// Returns new point which coordinates equal to coordinates of + /// the specified point increased by specified value. + /// + public static IntPoint operator +( IntPoint point, int valueToAdd ) + { + return new IntPoint( point.X + valueToAdd, point.Y + valueToAdd ); + } + + /// + /// Addition operator - adds scalar to the specified point. + /// + /// + /// Point to increase coordinates of. + /// Value to add to coordinates of the specified point. + /// + /// Returns new point which coordinates equal to coordinates of + /// the specified point increased by specified value. + /// + public static IntPoint Add( IntPoint point, int valueToAdd ) + { + return new IntPoint( point.X + valueToAdd, point.Y + valueToAdd ); + } + + /// + /// Subtraction operator - subtracts scalar from the specified point. + /// + /// + /// Point to decrease coordinates of. + /// Value to subtract from coordinates of the specified point. + /// + /// Returns new point which coordinates equal to coordinates of + /// the specified point decreased by specified value. + /// + public static IntPoint operator -( IntPoint point, int valueToSubtract ) + { + return new IntPoint( point.X - valueToSubtract, point.Y - valueToSubtract ); + } + + /// + /// Subtraction operator - subtracts scalar from the specified point. + /// + /// + /// Point to decrease coordinates of. + /// Value to subtract from coordinates of the specified point. + /// + /// Returns new point which coordinates equal to coordinates of + /// the specified point decreased by specified value. + /// + public static IntPoint Subtract( IntPoint point, int valueToSubtract ) + { + return new IntPoint( point.X - valueToSubtract, point.Y - valueToSubtract ); + } + + /// + /// Multiplication operator - multiplies coordinates of the specified point by scalar value. + /// + /// + /// Point to multiply coordinates of. + /// Multiplication factor. + /// + /// Returns new point which coordinates equal to coordinates of + /// the specified point multiplied by specified value. + /// + public static IntPoint operator *( IntPoint point, int factor ) + { + return new IntPoint( point.X * factor, point.Y * factor ); + } + + /// + /// Multiplication operator - multiplies coordinates of the specified point by scalar value. + /// + /// + /// Point to multiply coordinates of. + /// Multiplication factor. + /// + /// Returns new point which coordinates equal to coordinates of + /// the specified point multiplied by specified value. + /// + public static IntPoint Multiply( IntPoint point, int factor ) + { + return new IntPoint( point.X * factor, point.Y * factor ); + } + + /// + /// Division operator - divides coordinates of the specified point by scalar value. + /// + /// + /// Point to divide coordinates of. + /// Division factor. + /// + /// Returns new point which coordinates equal to coordinates of + /// the specified point divided by specified value. + /// + public static IntPoint operator /( IntPoint point, int factor ) + { + return new IntPoint( point.X / factor, point.Y / factor ); + } + + /// + /// Division operator - divides coordinates of the specified point by scalar value. + /// + /// + /// Point to divide coordinates of. + /// Division factor. + /// + /// Returns new point which coordinates equal to coordinates of + /// the specified point divided by specified value. + /// + public static IntPoint Divide( IntPoint point, int factor ) + { + return new IntPoint( point.X / factor, point.Y / factor ); + } + + /// + /// Equality operator - checks if two points have equal coordinates. + /// + /// + /// First point to check. + /// Second point to check. + /// + /// Returns if coordinates of specified + /// points are equal. + /// + public static bool operator ==( IntPoint point1, IntPoint point2 ) + { + return ( ( point1.X == point2.X ) && ( point1.Y == point2.Y ) ); + } + + /// + /// Inequality operator - checks if two points have different coordinates. + /// + /// + /// First point to check. + /// Second point to check. + /// + /// Returns if coordinates of specified + /// points are not equal. + /// + public static bool operator !=( IntPoint point1, IntPoint point2 ) + { + return ( ( point1.X != point2.X ) || ( point1.Y != point2.Y ) ); + } + + /// + /// Check if this instance of equal to the specified one. + /// + /// + /// Another point to check equalty to. + /// + /// Return if objects are equal. + /// + public override bool Equals( object obj ) + { + return ( obj is IntPoint ) ? ( this == (IntPoint) obj ) : false; + } + + /// + /// Get hash code for this instance. + /// + /// + /// Returns the hash code for this instance. + /// + public override int GetHashCode( ) + { + return X.GetHashCode( ) + Y.GetHashCode( ); + } + + /// + /// Implicit conversion to . + /// + /// + /// Integer point to convert to single precision point. + /// + /// Returns new single precision point which coordinates are implicitly converted + /// to floats from coordinates of the specified integer point. + /// + public static implicit operator Point( IntPoint point ) + { + return new Point( point.X, point.Y ); + } + + /// + /// Implicit conversion to . + /// + /// + /// Integer point to convert to double precision point. + /// + /// Returns new double precision point which coordinates are implicitly converted + /// to doubles from coordinates of the specified integer point. + /// + public static implicit operator DoublePoint( IntPoint point ) + { + return new DoublePoint( point.X, point.Y ); + } + + /// + /// Get string representation of the class. + /// + /// + /// Returns string, which contains values of the point in readable form. + /// + public override string ToString( ) + { + return string.Format( System.Globalization.CultureInfo.InvariantCulture, "{0}, {1}", X, Y ); + } + + /// + /// Calculate Euclidean norm of the vector comprised of the point's + /// coordinates - distance from (0, 0) in other words. + /// + /// + /// Returns point's distance from (0, 0) point. + /// + public float EuclideanNorm( ) + { + return (float) System.Math.Sqrt( X * X + Y * Y ); + } + } +} diff --git a/Sources/Core/IntRange.cs b/Sources/Core/IntRange.cs new file mode 100644 index 00000000..bf7c3ff1 --- /dev/null +++ b/Sources/Core/IntRange.cs @@ -0,0 +1,221 @@ +// AForge Core Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2007-2009 +// andrew.kirillov@aforgenet.com +// + +namespace AForge +{ + using System; + + /// + /// Represents an integer range with minimum and maximum values. + /// + /// + /// + /// The class represents an integer range with inclusive limits - + /// both minimum and maximum values of the range are included into it. + /// Mathematical notation of such range is [min, max]. + /// + /// Sample usage: + /// + /// // create [1, 10] range + /// IntRange range1 = new IntRange( 1, 10 ); + /// // create [5, 15] range + /// IntRange range2 = new IntRange( 5, 15 ); + /// // check if values is inside of the first range + /// if ( range1.IsInside( 7 ) ) + /// { + /// // ... + /// } + /// // check if the second range is inside of the first range + /// if ( range1.IsInside( range2 ) ) + /// { + /// // ... + /// } + /// // check if two ranges overlap + /// if ( range1.IsOverlapping( range2 ) ) + /// { + /// // ... + /// } + /// + /// + /// + [Serializable] + public struct IntRange + { + private int min, max; + + /// + /// Minimum value of the range. + /// + /// + /// The property represents minimum value (left side limit) or the range - + /// [min, max]. + /// + public int Min + { + get { return min; } + set { min = value; } + } + + /// + /// Maximum value of the range. + /// + /// + /// The property represents maximum value (right side limit) or the range - + /// [min, max]. + /// + public int Max + { + get { return max; } + set { max = value; } + } + + /// + /// Length of the range (deffirence between maximum and minimum values). + /// + public int Length + { + get { return max - min; } + } + + /// + /// Initializes a new instance of the structure. + /// + /// + /// Minimum value of the range. + /// Maximum value of the range. + /// + public IntRange( int min, int max ) + { + this.min = min; + this.max = max; + } + + /// + /// Check if the specified value is inside of the range. + /// + /// + /// Value to check. + /// + /// True if the specified value is inside of the range or + /// false otherwise. + /// + public bool IsInside( int x ) + { + return ( ( x >= min ) && ( x <= max ) ); + } + + /// + /// Check if the specified range is inside of the range. + /// + /// + /// Range to check. + /// + /// True if the specified range is inside of the range or + /// false otherwise. + /// + public bool IsInside( IntRange range ) + { + return ( ( IsInside( range.min ) ) && ( IsInside( range.max ) ) ); + } + + /// + /// Check if the specified range overlaps with the range. + /// + /// + /// Range to check for overlapping. + /// + /// True if the specified range overlaps with the range or + /// false otherwise. + /// + public bool IsOverlapping( IntRange range ) + { + return ( ( IsInside( range.min ) ) || ( IsInside( range.max ) ) || + ( range.IsInside( min ) ) || ( range.IsInside( max ) ) ); + } + + /// + /// Implicit conversion to . + /// + /// + /// Integer range to convert to single precision range. + /// + /// Returns new single precision range which min/max values are implicitly converted + /// to floats from min/max values of the specified integer range. + /// + public static implicit operator Range( IntRange range ) + { + return new Range( range.Min, range.Max ); + } + + /// + /// Equality operator - checks if two ranges have equal min/max values. + /// + /// + /// First range to check. + /// Second range to check. + /// + /// Returns if min/max values of specified + /// ranges are equal. + /// + public static bool operator ==( IntRange range1, IntRange range2 ) + { + return ( ( range1.min == range2.min ) && ( range1.max == range2.max ) ); + } + + /// + /// Inequality operator - checks if two ranges have different min/max values. + /// + /// + /// First range to check. + /// Second range to check. + /// + /// Returns if min/max values of specified + /// ranges are not equal. + /// + public static bool operator !=( IntRange range1, IntRange range2 ) + { + return ( ( range1.min != range2.min ) || ( range1.max != range2.max ) ); + + } + + /// + /// Check if this instance of equal to the specified one. + /// + /// + /// Another range to check equalty to. + /// + /// Return if objects are equal. + /// + public override bool Equals( object obj ) + { + return ( obj is IntRange ) ? ( this == (IntRange) obj ) : false; + } + + /// + /// Get hash code for this instance. + /// + /// + /// Returns the hash code for this instance. + /// + public override int GetHashCode( ) + { + return min.GetHashCode( ) + max.GetHashCode( ); + } + + /// + /// Get string representation of the class. + /// + /// + /// Returns string, which contains min/max values of the range in readable form. + /// + public override string ToString( ) + { + return string.Format( System.Globalization.CultureInfo.InvariantCulture, "{0}, {1}", min, max ); + } + } +} diff --git a/Sources/Core/Parallel.cs b/Sources/Core/Parallel.cs new file mode 100644 index 00000000..068f6c66 --- /dev/null +++ b/Sources/Core/Parallel.cs @@ -0,0 +1,237 @@ +// AForge Core Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2007-2009 +// andrew.kirillov@aforgenet.com +// +// Copyright © Israel Lot, 2008 +// israel.lot@gmail.com +// + +namespace AForge +{ + using System; + using System.Threading; + + /// + /// The class provides support for parallel computations, paralleling loop's iterations. + /// + /// + /// The class allows to parallel loop's iteration computing them in separate threads, + /// what allows their simultaneous execution on multiple CPUs/cores. + /// + /// + public sealed class Parallel + { + /// + /// Delegate defining for-loop's body. + /// + /// + /// Loop's index. + /// + public delegate void ForLoopBody( int index ); + + // number of threads for parallel computations + private static int threadsCount = System.Environment.ProcessorCount; + // object used for synchronization + private static object sync = new Object( ); + + // single instance of the class to implement singleton pattern + private static volatile Parallel instance = null; + // background threads for parallel computation + private Thread[] threads = null; + + // events to signal about job availability and thread availability + private AutoResetEvent[] jobAvailable = null; + private ManualResetEvent[] threadIdle = null; + + // loop's body and its current and stop index + private int currentIndex; + private int stopIndex; + private ForLoopBody loopBody; + + /// + /// Number of threads used for parallel computations. + /// + /// + /// The property sets how many worker threads are created for paralleling + /// loops' computations. + /// + /// By default the property is set to number of CPU's in the system + /// (see ). + /// + /// + public static int ThreadsCount + { + get { return threadsCount; } + set + { + lock ( sync ) + { + threadsCount = Math.Max( 1, value ); + } + } + } + + /// + /// Executes a for-loop in which iterations may run in parallel. + /// + /// + /// Loop's start index. + /// Loop's stop index. + /// Loop's body. + /// + /// The method is used to parallel for-loop running its iterations in + /// different threads. The start and stop parameters define loop's + /// starting and ending loop's indexes. The number of iterations is equal to stop - start. + /// + /// + /// Sample usage: + /// + /// Parallel.For( 0, 20, delegate( int i ) + /// // which is equivalent to + /// // for ( int i = 0; i < 20; i++ ) + /// { + /// System.Diagnostics.Debug.WriteLine( "Iteration: " + i ); + /// // ... + /// } ); + /// + /// + /// + public static void For( int start, int stop, ForLoopBody loopBody ) + { + lock ( sync ) + { + // get instance of parallel computation manager + Parallel instance = Instance; + + instance.currentIndex = start - 1; + instance.stopIndex = stop; + instance.loopBody = loopBody; + + // signal about available job for all threads and mark them busy + for ( int i = 0; i < threadsCount; i++ ) + { + instance.threadIdle[i].Reset( ); + instance.jobAvailable[i].Set( ); + } + + // wait until all threads become idle + for ( int i = 0; i < threadsCount; i++ ) + { + instance.threadIdle[i].WaitOne( ); + } + + instance.loopBody = null; + } + } + + // Private constructor to avoid class instantiation + private Parallel( ) { } + + // Get instace of the Parallel class + private static Parallel Instance + { + get + { + if ( instance == null ) + { + instance = new Parallel( ); + instance.Initialize( ); + } + else + { + if ( instance.threads.Length != threadsCount ) + { + // terminate old threads + instance.Terminate( ); + // reinitialize + instance.Initialize( ); + + // TODO: change reinitialization to reuse already created objects + } + } + return instance; + } + } + + // Initialize Parallel class's instance creating required number of threads + // and synchronization objects + private void Initialize( ) + { + // array of events, which signal about available job + jobAvailable = new AutoResetEvent[threadsCount]; + // array of events, which signal about available thread + threadIdle = new ManualResetEvent[threadsCount]; + // array of threads + threads = new Thread[threadsCount]; + + for ( int i = 0; i < threadsCount; i++ ) + { + jobAvailable[i] = new AutoResetEvent( false ); + threadIdle[i] = new ManualResetEvent( true ); + + threads[i] = new Thread( new ParameterizedThreadStart( WorkerThread ) ); + threads[i].Name = "AForge.Parallel"; + threads[i].IsBackground = true; + threads[i].Start( i ); + } + } + + // Terminate all worker threads used for parallel computations and close all + // synchronization objects + private void Terminate( ) + { + // finish thread by setting null loop body and signaling about available work + loopBody = null; + for ( int i = 0, threadsCount = threads.Length ; i < threadsCount; i++ ) + { + jobAvailable[i].Set( ); + // wait for thread termination + threads[i].Join( ); + + // close events + jobAvailable[i].Close( ); + threadIdle[i].Close( ); + } + + // clean all array references + jobAvailable = null; + threadIdle = null; + threads = null; + } + + // Worker thread performing parallel computations in loop + private void WorkerThread( object index ) + { + int threadIndex = (int) index; + int localIndex = 0; + + while ( true ) + { + // wait until there is job to do + jobAvailable[threadIndex].WaitOne( ); + + // exit on null body + if ( loopBody == null ) + break; + + while ( true ) + { + // get local index incrementing global loop's current index + localIndex = Interlocked.Increment( ref currentIndex ); + + if ( localIndex >= stopIndex ) + break; + + // run loop's body + loopBody( localIndex ); + } + + // signal about thread availability + threadIdle[threadIndex].Set( ); + } + } + } +} diff --git a/Sources/Core/Point.cs b/Sources/Core/Point.cs new file mode 100644 index 00000000..dabb9e58 --- /dev/null +++ b/Sources/Core/Point.cs @@ -0,0 +1,393 @@ +// AForge Core Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2011 +// contacts@aforgenet.com +// + +namespace AForge +{ + using System; + + /// + /// Structure for representing a pair of coordinates of float type. + /// + /// + /// The structure is used to store a pair of floating point + /// coordinates with single precision. + /// + /// Sample usage: + /// + /// // assigning coordinates in the constructor + /// Point p1 = new Point( 10, 20 ); + /// // creating a point and assigning coordinates later + /// Point p2; + /// p2.X = 30; + /// p2.Y = 40; + /// // calculating distance between two points + /// float distance = p1.DistanceTo( p2 ); + /// + /// + /// + [Serializable] + public struct Point + { + /// + /// X coordinate. + /// + /// + public float X; + + /// + /// Y coordinate. + /// + /// + public float Y; + + /// + /// Initializes a new instance of the structure. + /// + /// + /// X axis coordinate. + /// Y axis coordinate. + /// + public Point( float x, float y ) + { + this.X = x; + this.Y = y; + } + + /// + /// Calculate Euclidean distance between two points. + /// + /// + /// Point to calculate distance to. + /// + /// Returns Euclidean distance between this point and + /// points. + /// + public float DistanceTo( Point anotherPoint ) + { + float dx = X - anotherPoint.X; + float dy = Y - anotherPoint.Y; + + return (float) System.Math.Sqrt( dx * dx + dy * dy ); + } + + /// + /// Calculate squared Euclidean distance between two points. + /// + /// + /// Point to calculate distance to. + /// + /// Returns squared Euclidean distance between this point and + /// points. + /// + public float SquaredDistanceTo( Point anotherPoint ) + { + float dx = X - anotherPoint.X; + float dy = Y - anotherPoint.Y; + + return dx * dx + dy * dy; + } + + /// + /// Addition operator - adds values of two points. + /// + /// + /// First point for addition. + /// Second point for addition. + /// + /// Returns new point which coordinates equal to sum of corresponding + /// coordinates of specified points. + /// + public static Point operator +( Point point1, Point point2 ) + { + return new Point( point1.X + point2.X, point1.Y + point2.Y ); + } + + /// + /// Addition operator - adds values of two points. + /// + /// + /// First point for addition. + /// Second point for addition. + /// + /// Returns new point which coordinates equal to sum of corresponding + /// coordinates of specified points. + /// + public static Point Add( Point point1, Point point2 ) + { + return new Point( point1.X + point2.X, point1.Y + point2.Y ); + } + + /// + /// Subtraction operator - subtracts values of two points. + /// + /// + /// Point to subtract from. + /// Point to subtract. + /// + /// Returns new point which coordinates equal to difference of corresponding + /// coordinates of specified points. + /// + public static Point operator -( Point point1, Point point2 ) + { + return new Point( point1.X - point2.X, point1.Y - point2.Y ); + } + + /// + /// Subtraction operator - subtracts values of two points. + /// + /// + /// Point to subtract from. + /// Point to subtract. + /// + /// Returns new point which coordinates equal to difference of corresponding + /// coordinates of specified points. + /// + public static Point Subtract( Point point1, Point point2 ) + { + return new Point( point1.X - point2.X, point1.Y - point2.Y ); + } + + /// + /// Addition operator - adds scalar to the specified point. + /// + /// + /// Point to increase coordinates of. + /// Value to add to coordinates of the specified point. + /// + /// Returns new point which coordinates equal to coordinates of + /// the specified point increased by specified value. + /// + public static Point operator +( Point point, float valueToAdd ) + { + return new Point( point.X + valueToAdd, point.Y + valueToAdd ); + } + + /// + /// Addition operator - adds scalar to the specified point. + /// + /// + /// Point to increase coordinates of. + /// Value to add to coordinates of the specified point. + /// + /// Returns new point which coordinates equal to coordinates of + /// the specified point increased by specified value. + /// + public static Point Add( Point point, float valueToAdd ) + { + return new Point( point.X + valueToAdd, point.Y + valueToAdd ); + } + + /// + /// Subtraction operator - subtracts scalar from the specified point. + /// + /// + /// Point to decrease coordinates of. + /// Value to subtract from coordinates of the specified point. + /// + /// Returns new point which coordinates equal to coordinates of + /// the specified point decreased by specified value. + /// + public static Point operator -( Point point, float valueToSubtract ) + { + return new Point( point.X - valueToSubtract, point.Y - valueToSubtract ); + } + + /// + /// Subtraction operator - subtracts scalar from the specified point. + /// + /// + /// Point to decrease coordinates of. + /// Value to subtract from coordinates of the specified point. + /// + /// Returns new point which coordinates equal to coordinates of + /// the specified point decreased by specified value. + /// + public static Point Subtract( Point point, float valueToSubtract ) + { + return new Point( point.X - valueToSubtract, point.Y - valueToSubtract ); + } + + /// + /// Multiplication operator - multiplies coordinates of the specified point by scalar value. + /// + /// + /// Point to multiply coordinates of. + /// Multiplication factor. + /// + /// Returns new point which coordinates equal to coordinates of + /// the specified point multiplied by specified value. + /// + public static Point operator *( Point point, float factor ) + { + return new Point( point.X * factor, point.Y * factor ); + } + + /// + /// Multiplication operator - multiplies coordinates of the specified point by scalar value. + /// + /// + /// Point to multiply coordinates of. + /// Multiplication factor. + /// + /// Returns new point which coordinates equal to coordinates of + /// the specified point multiplied by specified value. + /// + public static Point Multiply( Point point, float factor ) + { + return new Point( point.X * factor, point.Y * factor ); + } + + /// + /// Division operator - divides coordinates of the specified point by scalar value. + /// + /// + /// Point to divide coordinates of. + /// Division factor. + /// + /// Returns new point which coordinates equal to coordinates of + /// the specified point divided by specified value. + /// + public static Point operator /( Point point, float factor ) + { + return new Point( point.X / factor, point.Y / factor ); + } + + /// + /// Division operator - divides coordinates of the specified point by scalar value. + /// + /// + /// Point to divide coordinates of. + /// Division factor. + /// + /// Returns new point which coordinates equal to coordinates of + /// the specified point divided by specified value. + /// + public static Point Divide( Point point, float factor ) + { + return new Point( point.X / factor, point.Y / factor ); + } + + /// + /// Equality operator - checks if two points have equal coordinates. + /// + /// + /// First point to check. + /// Second point to check. + /// + /// Returns if coordinates of specified + /// points are equal. + /// + public static bool operator ==( Point point1, Point point2 ) + { + return ( ( point1.X == point2.X ) && ( point1.Y == point2.Y ) ); + } + + /// + /// Inequality operator - checks if two points have different coordinates. + /// + /// + /// First point to check. + /// Second point to check. + /// + /// Returns if coordinates of specified + /// points are not equal. + /// + public static bool operator !=( Point point1, Point point2 ) + { + return ( ( point1.X != point2.X ) || ( point1.Y != point2.Y ) ); + } + + /// + /// Check if this instance of equal to the specified one. + /// + /// + /// Another point to check equalty to. + /// + /// Return if objects are equal. + /// + public override bool Equals( object obj ) + { + return ( obj is Point ) ? ( this == (Point) obj ) : false; + } + + /// + /// Get hash code for this instance. + /// + /// + /// Returns the hash code for this instance. + /// + public override int GetHashCode( ) + { + return X.GetHashCode( ) + Y.GetHashCode( ); + } + + /// + /// Explicit conversion to . + /// + /// + /// Single precision point to convert to integer point. + /// + /// Returns new integer point which coordinates are explicitly converted + /// to integers from coordinates of the specified single precision point by + /// casting float values to integers value. + /// + public static explicit operator IntPoint( Point point ) + { + return new IntPoint( (int) point.X, (int) point.Y ); + } + + /// + /// Implicit conversion to . + /// + /// + /// Single precision point to convert to double precision point. + /// + /// Returns new double precision point which coordinates are implicitly converted + /// to doubles from coordinates of the specified single precision point. + /// + public static implicit operator DoublePoint( Point point ) + { + return new DoublePoint( point.X, point.Y ); + } + + /// + /// Rounds the single precision point. + /// + /// + /// Returns new integer point, which coordinates equal to whole numbers + /// nearest to the corresponding coordinates of the single precision point. + /// + public IntPoint Round( ) + { + return new IntPoint( (int) Math.Round( X ), (int) Math.Round( Y ) ); + } + + /// + /// Get string representation of the class. + /// + /// + /// Returns string, which contains values of the point in readable form. + /// + public override string ToString( ) + { + return string.Format( System.Globalization.CultureInfo.InvariantCulture, "{0}, {1}", X, Y ); + } + + /// + /// Calculate Euclidean norm of the vector comprised of the point's + /// coordinates - distance from (0, 0) in other words. + /// + /// + /// Returns point's distance from (0, 0) point. + /// + public float EuclideanNorm( ) + { + return (float) System.Math.Sqrt( X * X + Y * Y ); + } + } +} diff --git a/Sources/Core/PolishExpression.cs b/Sources/Core/PolishExpression.cs new file mode 100644 index 00000000..732a6c7d --- /dev/null +++ b/Sources/Core/PolishExpression.cs @@ -0,0 +1,144 @@ +// AForge Core Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2007-2009 +// andrew.kirillov@aforgenet.com +// + +namespace AForge +{ + using System; + using System.Collections; + + // Quick and dirty implementation of polish expression evaluator + + /// + /// Evaluator of expressions written in reverse polish notation. + /// + /// + /// The class evaluates expressions writen in reverse postfix polish notation. + /// + /// The list of supported functuins is: + /// + /// Arithmetic functions: +, -, *, /; + /// sin - sine; + /// cos - cosine; + /// ln - natural logarithm; + /// exp - exponent; + /// sqrt - square root. + /// + /// + /// Arguments for these functions could be as usual constants, written as numbers, as variables, + /// writen as $<var_number> ($2, for example). The variable number is zero based index + /// of variables array. + /// + /// Sample usage: + /// + /// // expression written in polish notation + /// string expression = "2 $0 / 3 $1 * +"; + /// // variables for the expression + /// double[] vars = new double[] { 3, 4 }; + /// // expression evaluation + /// double result = PolishExpression.Evaluate( expression, vars ); + /// + /// + /// + public static class PolishExpression + { + /// + /// Evaluates specified expression. + /// + /// + /// Expression written in postfix polish notation. + /// Variables for the expression. + /// + /// Evaluated value of the expression. + /// + /// Unsupported function is used in the expression. + /// Incorrect postfix polish expression. + /// + public static double Evaluate( string expression, double[] variables ) + { + // split expression to separate tokens, which represent functions ans variables + string[] tokens = expression.Trim( ).Split( ' ' ); + // arguments stack + Stack arguments = new Stack( ); + + // walk through all tokens + foreach ( string token in tokens ) + { + // check for token type + if ( char.IsDigit( token[0] ) ) + { + // the token in numeric argument + arguments.Push( double.Parse( token ) ); + } + else if ( token[0] == '$' ) + { + // the token is variable + arguments.Push( variables[int.Parse( token.Substring( 1 ) )] ); + } + else + { + // each function has at least one argument, so let's get the top one + // argument from stack + double v = (double) arguments.Pop( ); + + // check for function + switch ( token ) + { + case "+": // addition + arguments.Push( (double) arguments.Pop( ) + v ); + break; + + case "-": // subtraction + arguments.Push( (double) arguments.Pop( ) - v ); + break; + + case "*": // multiplication + arguments.Push( (double) arguments.Pop( ) * v ); + break; + + case "/": // division + arguments.Push( (double) arguments.Pop( ) / v ); + break; + + case "sin": // sine + arguments.Push( Math.Sin( v ) ); + break; + + case "cos": // cosine + arguments.Push( Math.Cos( v ) ); + break; + + case "ln": // natural logarithm + arguments.Push( Math.Log( v ) ); + break; + + case "exp": // exponent + arguments.Push( Math.Exp( v ) ); + break; + + case "sqrt": // square root + arguments.Push( Math.Sqrt( v ) ); + break; + + default: + // throw exception informing about undefined function + throw new ArgumentException( "Unsupported function: " + token ); + } + } + } + + // check stack size + if ( arguments.Count != 1 ) + { + throw new ArgumentException( "Incorrect expression." ); + } + + // return the only value from stack + return (double) arguments.Pop( ); + } + } +} diff --git a/Sources/Core/Properties/AssemblyInfo.cs b/Sources/Core/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..744bb883 --- /dev/null +++ b/Sources/Core/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle( "AForge" )] +[assembly: AssemblyDescription( "" )] +[assembly: AssemblyConfiguration( "" )] +[assembly: AssemblyCompany( "AForge" )] +[assembly: AssemblyProduct( "AForge.NET" )] +[assembly: AssemblyCopyright( "AForge © 2012" )] +[assembly: AssemblyTrademark( "" )] +[assembly: AssemblyCulture( "" )] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible( false )] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid( "f37ad0d7-d32b-4096-841f-3c03dbbecde6" )] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion( "2.2.5.0" )] +[assembly: AssemblyFileVersion( "2.2.5.0" )] diff --git a/Sources/Core/Range.cs b/Sources/Core/Range.cs new file mode 100644 index 00000000..3a5716e5 --- /dev/null +++ b/Sources/Core/Range.cs @@ -0,0 +1,239 @@ +// AForge Core Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2011 +// contacts@aforgenet.com +// + +namespace AForge +{ + using System; + + /// + /// Represents a range with minimum and maximum values, which are single precision numbers (floats). + /// + /// + /// + /// The class represents a single precision range with inclusive limits - + /// both minimum and maximum values of the range are included into it. + /// Mathematical notation of such range is [min, max]. + /// + /// Sample usage: + /// + /// // create [0.25, 1.5] range + /// Range range1 = new Range( 0.25f, 1.5f ); + /// // create [1.00, 2.25] range + /// Range range2 = new Range( 1.00f, 2.25f ); + /// // check if values is inside of the first range + /// if ( range1.IsInside( 0.75f ) ) + /// { + /// // ... + /// } + /// // check if the second range is inside of the first range + /// if ( range1.IsInside( range2 ) ) + /// { + /// // ... + /// } + /// // check if two ranges overlap + /// if ( range1.IsOverlapping( range2 ) ) + /// { + /// // ... + /// } + /// + /// + /// + [Serializable] + public struct Range + { + private float min, max; + + /// + /// Minimum value of the range. + /// + /// + /// The property represents minimum value (left side limit) or the range - + /// [min, max]. + /// + public float Min + { + get { return min; } + set { min = value; } + } + + /// + /// Maximum value of the range. + /// + /// + /// The property represents maximum value (right side limit) or the range - + /// [min, max]. + /// + public float Max + { + get { return max; } + set { max = value; } + } + + /// + /// Length of the range (deffirence between maximum and minimum values). + /// + public float Length + { + get { return max - min; } + } + + + /// + /// Initializes a new instance of the structure. + /// + /// + /// Minimum value of the range. + /// Maximum value of the range. + /// + public Range( float min, float max ) + { + this.min = min; + this.max = max; + } + + /// + /// Check if the specified value is inside of the range. + /// + /// + /// Value to check. + /// + /// True if the specified value is inside of the range or + /// false otherwise. + /// + public bool IsInside( float x ) + { + return ( ( x >= min ) && ( x <= max ) ); + } + + /// + /// Check if the specified range is inside of the range. + /// + /// + /// Range to check. + /// + /// True if the specified range is inside of the range or + /// false otherwise. + /// + public bool IsInside( Range range ) + { + return ( ( IsInside( range.min ) ) && ( IsInside( range.max ) ) ); + } + + /// + /// Check if the specified range overlaps with the range. + /// + /// + /// Range to check for overlapping. + /// + /// True if the specified range overlaps with the range or + /// false otherwise. + /// + public bool IsOverlapping( Range range ) + { + return ( ( IsInside( range.min ) ) || ( IsInside( range.max ) ) || + ( range.IsInside( min ) ) || ( range.IsInside( max ) ) ); + } + + /// + /// Convert the signle precision range to integer range. + /// + /// + /// Specifies if inner integer range must be returned or outer range. + /// + /// Returns integer version of the range. + /// + /// If is set to , then the + /// returned integer range will always fit inside of the current single precision range. + /// If it is set to , then current single precision range will always + /// fit into the returned integer range. + /// + public IntRange ToIntRange( bool provideInnerRange ) + { + int iMin, iMax; + + if ( provideInnerRange ) + { + iMin = (int) Math.Ceiling( min ); + iMax = (int) Math.Floor( max ); + } + else + { + iMin = (int) Math.Floor( min ); + iMax = (int) Math.Ceiling( max ); + } + + return new IntRange( iMin, iMax ); + } + + /// + /// Equality operator - checks if two ranges have equal min/max values. + /// + /// + /// First range to check. + /// Second range to check. + /// + /// Returns if min/max values of specified + /// ranges are equal. + /// + public static bool operator ==( Range range1, Range range2 ) + { + return ( ( range1.min == range2.min ) && ( range1.max == range2.max ) ); + } + + /// + /// Inequality operator - checks if two ranges have different min/max values. + /// + /// + /// First range to check. + /// Second range to check. + /// + /// Returns if min/max values of specified + /// ranges are not equal. + /// + public static bool operator !=( Range range1, Range range2 ) + { + return ( ( range1.min != range2.min ) || ( range1.max != range2.max ) ); + + } + + /// + /// Check if this instance of equal to the specified one. + /// + /// + /// Another range to check equalty to. + /// + /// Return if objects are equal. + /// + public override bool Equals( object obj ) + { + return ( obj is Range ) ? ( this == (Range) obj ) : false; + } + + /// + /// Get hash code for this instance. + /// + /// + /// Returns the hash code for this instance. + /// + public override int GetHashCode( ) + { + return min.GetHashCode( ) + max.GetHashCode( ); + } + + /// + /// Get string representation of the class. + /// + /// + /// Returns string, which contains min/max values of the range in readable form. + /// + public override string ToString( ) + { + return string.Format( System.Globalization.CultureInfo.InvariantCulture, "{0}, {1}", min, max ); + } + } +} diff --git a/Sources/Core/SystemTools.cs b/Sources/Core/SystemTools.cs new file mode 100644 index 00000000..cc528531 --- /dev/null +++ b/Sources/Core/SystemTools.cs @@ -0,0 +1,164 @@ +// AForge Core Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2011 +// contacts@aforgenet.com +// + +namespace AForge +{ + using System; + using System.Runtime.InteropServices; + + /// + /// Set of systems tools. + /// + /// + /// The class is a container of different system tools, which are used + /// across the framework. Some of these tools are platform specific, so their + /// implementation is different on different platform, like .NET and Mono. + /// + /// + public static class SystemTools + { + /// + /// Copy block of unmanaged memory. + /// + /// + /// Destination pointer. + /// Source pointer. + /// Memory block's length to copy. + /// + /// Return's value of - pointer to destination. + /// + /// This function is required because of the fact that .NET does + /// not provide any way to copy unmanaged blocks, but provides only methods to + /// copy from unmanaged memory to managed memory and vise versa. + /// + public static IntPtr CopyUnmanagedMemory( IntPtr dst, IntPtr src, int count ) + { + unsafe + { + CopyUnmanagedMemory( (byte*) dst.ToPointer( ), (byte*) src.ToPointer( ), count ); + } + return dst; + } + + /// + /// Copy block of unmanaged memory. + /// + /// + /// Destination pointer. + /// Source pointer. + /// Memory block's length to copy. + /// + /// Return's value of - pointer to destination. + /// + /// This function is required because of the fact that .NET does + /// not provide any way to copy unmanaged blocks, but provides only methods to + /// copy from unmanaged memory to managed memory and vise versa. + /// + public static unsafe byte* CopyUnmanagedMemory( byte* dst, byte* src, int count ) + { +#if !MONO + return memcpy( dst, src, count ); +#else + int countUint = count >> 2; + int countByte = count & 3; + + uint* dstUint = (uint*) dst; + uint* srcUint = (uint*) src; + + while ( countUint-- != 0 ) + { + *dstUint++ = *srcUint++; + } + + byte* dstByte = (byte*) dstUint; + byte* srcByte = (byte*) srcUint; + + while ( countByte-- != 0 ) + { + *dstByte++ = *srcByte++; + } + return dst; +#endif + } + + /// + /// Fill memory region with specified value. + /// + /// + /// Destination pointer. + /// Filler byte's value. + /// Memory block's length to fill. + /// + /// Return's value of - pointer to destination. + /// + public static IntPtr SetUnmanagedMemory( IntPtr dst, int filler, int count ) + { + unsafe + { + SetUnmanagedMemory( (byte*) dst.ToPointer( ), filler, count ); + } + return dst; + } + + /// + /// Fill memory region with specified value. + /// + /// + /// Destination pointer. + /// Filler byte's value. + /// Memory block's length to fill. + /// + /// Return's value of - pointer to destination. + /// + public static unsafe byte* SetUnmanagedMemory( byte* dst, int filler, int count ) + { +#if !MONO + return memset( dst, filler, count ); +#else + int countUint = count >> 2; + int countByte = count & 3; + + byte fillerByte = (byte) filler; + uint fiilerUint = (uint) filler | ( (uint) filler << 8 ) | + ( (uint) filler << 16 );// | + //( (uint) filler << 24 ); + + uint* dstUint = (uint*) dst; + + while ( countUint-- != 0 ) + { + *dstUint++ = fiilerUint; + } + + byte* dstByte = (byte*) dstUint; + + while ( countByte-- != 0 ) + { + *dstByte++ = fillerByte; + } + return dst; +#endif + } + + +#if !MONO + // Win32 memory copy function + [DllImport( "ntdll.dll", CallingConvention = CallingConvention.Cdecl )] + private static unsafe extern byte* memcpy( + byte* dst, + byte* src, + int count ); + // Win32 memory set function + [DllImport( "ntdll.dll", CallingConvention = CallingConvention.Cdecl )] + private static unsafe extern byte* memset( + byte* dst, + int filler, + int count ); +#endif + } +} diff --git a/Sources/Core/ThreadSafeRandom.cs b/Sources/Core/ThreadSafeRandom.cs new file mode 100644 index 00000000..00577c3b --- /dev/null +++ b/Sources/Core/ThreadSafeRandom.cs @@ -0,0 +1,128 @@ +// AForge Core Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2011 +// contacts@aforgenet.com +// + +namespace AForge +{ + using System; + + /// + /// Thread safe version of the class. + /// + /// + /// The class inherits the and overrides + /// its random numbers generation methods providing thread safety by guarding call + /// to the base class with a lock. See documentation to for + /// additional information about the base class. + /// + public sealed class ThreadSafeRandom : Random + { + private object sync = new object( ); + + /// + /// Initializes a new instance of the class. + /// + /// + /// See for more information. + /// + public ThreadSafeRandom( ) + : base( ) + { + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// A number used to calculate a starting value for the pseudo-random number sequence. + /// If a negative number is specified, the absolute value of the number is used. + /// + /// + /// See for more information. + /// + public ThreadSafeRandom( int seed ) + : base( seed ) + { + } + + /// + /// Returns a nonnegative random number. + /// + /// + /// Returns a 32-bit signed integer greater than or equal to zero and less than + /// . + /// + /// See for more information. + /// + public override int Next( ) + { + lock ( sync ) return base.Next( ); + } + + /// + /// Returns a nonnegative random number less than the specified maximum. + /// + /// + /// The exclusive upper bound of the random number to be generated. + /// must be greater than or equal to zero. + /// + /// Returns a 32-bit signed integer greater than or equal to zero, and less than ; + /// that is, the range of return values ordinarily includes zero but not . + /// + /// See for more information. + /// + public override int Next( int maxValue ) + { + lock ( sync ) return base.Next( maxValue ); + } + + /// + /// Returns a random number within a specified range. + /// + /// + /// The inclusive lower bound of the random number returned. + /// The exclusive upper bound of the random number returned. + /// must be greater than or equal to . + /// + /// Returns a 32-bit signed integer greater than or equal to and less + /// than ; that is, the range of return values includes + /// but not . + /// + /// See for more information. + /// + public override int Next( int minValue, int maxValue ) + { + lock ( sync ) return base.Next( minValue, maxValue ); + } + + /// + /// Fills the elements of a specified array of bytes with random numbers. + /// + /// + /// An array of bytes to contain random numbers. + /// + /// See for more information. + /// + public override void NextBytes( byte[] buffer ) + { + lock ( sync ) base.NextBytes( buffer ); + } + + /// + /// Returns a random number between 0.0 and 1.0. + /// + /// + /// Returns a double-precision floating point number greater than or equal to 0.0, and less than 1.0. + /// + /// See for more information. + /// + public override double NextDouble( ) + { + lock ( sync ) return base.NextDouble( ); + } + } +} diff --git a/Sources/Fuzzy/AForge.Fuzzy.snk b/Sources/Fuzzy/AForge.Fuzzy.snk new file mode 100644 index 00000000..fe71cff0 Binary files /dev/null and b/Sources/Fuzzy/AForge.Fuzzy.snk differ diff --git a/Sources/Fuzzy/Clause.cs b/Sources/Fuzzy/Clause.cs new file mode 100644 index 00000000..5216b673 --- /dev/null +++ b/Sources/Fuzzy/Clause.cs @@ -0,0 +1,124 @@ +// AForge Fuzzy Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2011 +// contacts@aforgenet.com +// + +namespace AForge.Fuzzy +{ + using System; + using System.Collections.Generic; + + /// + /// This class represents a fuzzy clause, a linguistic expression of the type "Variable IS Value". + /// + /// + /// A Fuzzy Clause is used to verify if a linguistic variable can be considered + /// as a specific value at a specific moment. Linguistic variables can only assume value of + /// their linugistic labels. Because of the nature of the Fuzzy Logic, a Variable can be + /// several of its labels at the same time, with different membership values. + /// + /// For example, a linguistic variable "temperature" can be "hot" with a membership 0.3 + /// and "warm" with a membership 0.7 at the same time. To obtain those memberships, Fuzzy Clauses + /// "temperature is hot" and "temperature is war" can be built. + /// + /// Typically Fuzzy Clauses are used to build Fuzzy Rules (). + /// + /// Sample usage: + /// + /// // create a linguistic variable to represent temperature + /// LinguisticVariable lvTemperature = new LinguisticVariable( "Temperature", 0, 80 ); + /// + /// // create the linguistic labels (fuzzy sets) that compose the temperature + /// TrapezoidalFunction function1 = new TrapezoidalFunction( 10, 15, TrapezoidalFunction.EdgeType.Right ); + /// FuzzySet fsCold = new FuzzySet( "Cold", function1 ); + /// TrapezoidalFunction function2 = new TrapezoidalFunction( 10, 15, 20, 25 ); + /// FuzzySet fsCool = new FuzzySet( "Cool", function2 ); + /// TrapezoidalFunction function3 = new TrapezoidalFunction( 20, 25, 30, 35 ); + /// FuzzySet fsWarm = new FuzzySet( "Warm", function3 ); + /// TrapezoidalFunction function4 = new TrapezoidalFunction( 30, 35, TrapezoidalFunction.EdgeType.Left ); + /// FuzzySet fsHot = new FuzzySet( "Hot" , function4 ); + /// + /// // adding labels to the variable + /// lvTemperature.AddLabel( fsCold ); + /// lvTemperature.AddLabel( fsCool ); + /// lvTemperature.AddLabel( fsWarm ); + /// lvTemperature.AddLabel( fsHot ); + /// + /// // creating the Clause + /// Clause fuzzyClause = new Clause( lvTemperature, fsHot ); + /// // setting the numerical input of the variable to evaluate the Clause + /// lvTemperature.NumericInput = 35; + /// float result = fuzzyClause.Evaluate( ); + /// Console.WriteLine ( result.ToString( ) ); + /// + /// + /// + public class Clause + { + // the linguistic var of the clause + private LinguisticVariable variable; + // the label of the clause + private FuzzySet label; + + /// + /// Gets the of the . + /// + public LinguisticVariable Variable + { + get { return variable; } + } + + /// + /// Gets the of the . + /// + public FuzzySet Label + { + get { return label; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Linguistic variable of the clause. + /// + /// Label of the linguistic variable, a fuzzy set used as label into the linguistic variable. + /// + /// The label indicated was not found in the linguistic variable. + /// + public Clause( LinguisticVariable variable, FuzzySet label ) + { + // check if label belongs to var. + variable.GetLabel( label.Name ); + + // initializing attributes + this.label = label; + this.variable = variable; + } + + /// + /// Evaluates the fuzzy clause. + /// + /// + /// Degree of membership [0..1] of the clause. + /// + public float Evaluate( ) + { + return label.GetMembership( variable.NumericInput ); + } + + /// + /// Returns the fuzzy clause in its linguistic representation. + /// + /// + /// A string representing the fuzzy clause. + /// + public override string ToString( ) + { + return this.variable.Name + " IS " + this.label.Name; + } + } +} diff --git a/Sources/Fuzzy/Database.cs b/Sources/Fuzzy/Database.cs new file mode 100644 index 00000000..c5b7d760 --- /dev/null +++ b/Sources/Fuzzy/Database.cs @@ -0,0 +1,80 @@ +// AForge Fuzzy Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2008-2009 +// andrew.kirillov@aforgenet.com +// +// Copyright © Fabio L. Caversan, 2008-2009 +// fabio.caversan@gmail.com +// + +namespace AForge.Fuzzy +{ + using System; + using System.Collections.Generic; + + /// + /// The class represents a fuzzy database, a set of linguistic variables used in a Fuzzy + /// Inference System. + /// + /// + public class Database + { + // the linguistic variables repository + private Dictionary variables; + + /// + /// Initializes a new instance of the class. + /// + /// + public Database( ) + { + // instance of the variables list + this.variables = new Dictionary( 10 ); + } + + /// + /// Adds a linguistic variable to the database. + /// + /// + /// A linguistic variable to add. + /// + /// The linguistic variable was not initialized. + /// The linguistic variable name already exists in the database. + /// + public void AddVariable( LinguisticVariable variable ) + { + // checking for existing name + if ( this.variables.ContainsKey( variable.Name ) ) + throw new ArgumentException( "The linguistic variable name already exists in the database." ); + + // adding label + this.variables.Add( variable.Name, variable ); + } + + /// + /// Removes all the linguistic variables of the database. + /// + /// + public void ClearVariables( ) + { + this.variables.Clear( ); + } + + /// + /// Returns an existing linguistic variable from the database. + /// + /// + /// Name of the linguistic variable to retrieve. + /// + /// Reference to named . + /// + /// The variable indicated was not found in the database. + /// + public LinguisticVariable GetVariable( string variableName ) + { + return variables [variableName]; + } + } +} diff --git a/Sources/Fuzzy/Defuzzification/CentroidDefuzzifier.cs b/Sources/Fuzzy/Defuzzification/CentroidDefuzzifier.cs new file mode 100644 index 00000000..790ec8ce --- /dev/null +++ b/Sources/Fuzzy/Defuzzification/CentroidDefuzzifier.cs @@ -0,0 +1,107 @@ +// AForge Fuzzy Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2011 +// contacts@aforgenet.com +// + +namespace AForge.Fuzzy +{ + using System; + using System.Collections.Generic; + + /// + /// This class implements the centroid defuzzification method. + /// + /// + /// In many applications, a Fuzzy Inference System is used to perform linguistic + /// computation, but at the end of the inference process, a numerical value is needed. It does + /// not mean that the system needs precision, but simply that a numerical value is required, + /// most of the times because it will be used to control another system that needs the number. + /// To obtain this numer, a defuzzification method is performed. + /// + /// This class implements the centroid defuzzification method. The output of a Fuzzy + /// Inference System is a set of rules (see ) with firing strength greater + /// than zero. Those firing strength apply a constraint to the consequent fuzzy sets + /// (see ) of the rules. Putting all those fuzzy sets togheter results + /// in a a shape that is the linguistic output meaning. + /// + /// + /// The centroid method calculates the center of the area of this shape to obtain the + /// numerical representation of the output. It uses a numerical approximation, so a number + /// of intervals must be choosen. As the number of intervals grow, the precision of the + /// numerical ouput grows. + /// + /// + /// For a sample usage of the see + /// class. + /// + /// + public class CentroidDefuzzifier : IDefuzzifier + { + // number of intervals to use in numerical approximation + private int intervals; + + /// + /// Initializes a new instance of the class. + /// + /// + /// Number of segments that the speech universe will be splited + /// to perform the numerical approximation of the center of area. + /// + public CentroidDefuzzifier( int intervals ) + { + this.intervals = intervals; + } + + /// + /// Centroid method to obtain the numerical representation of a fuzzy output. The numerical + /// value will be the center of the shape formed by the several fuzzy labels with their + /// constraints. + /// + /// + /// A containing the output of several + /// rules of a Fuzzy Inference System. + /// A operator to be used when constraining + /// the label to the firing strength. + /// + /// The numerical representation of the fuzzy output. + /// + /// The numerical output is unavaliable. All memberships are zero. + /// + public float Defuzzify( FuzzyOutput fuzzyOutput, INorm normOperator ) + { + // results and accumulators + float weightSum = 0, membershipSum = 0; + + // speech universe + float start = fuzzyOutput.OutputVariable.Start; + float end = fuzzyOutput.OutputVariable.End; + + // increment + float increment = ( end - start ) / this.intervals; + + // running through the speech universe and evaluating the labels at each point + for ( float x = start; x < end; x += increment ) + { + // we must evaluate x membership to each one of the output labels + foreach ( FuzzyOutput.OutputConstraint oc in fuzzyOutput.OutputList ) + { + // getting the membership for X and constraining it with the firing strength + float membership = fuzzyOutput.OutputVariable.GetLabelMembership( oc.Label, x ); + float constrainedMembership = normOperator.Evaluate( membership, oc.FiringStrength ); + + weightSum += x * constrainedMembership; + membershipSum += constrainedMembership; + } + } + + // if no membership was found, then the membershipSum is zero and the numerical output is unknown. + if ( membershipSum == 0 ) + throw new Exception( "The numerical output in unavaliable. All memberships are zero." ); + + return weightSum / membershipSum; + } + } +} diff --git a/Sources/Fuzzy/Defuzzification/IDefuzzifier.cs b/Sources/Fuzzy/Defuzzification/IDefuzzifier.cs new file mode 100644 index 00000000..f7705a9a --- /dev/null +++ b/Sources/Fuzzy/Defuzzification/IDefuzzifier.cs @@ -0,0 +1,42 @@ +// AForge Fuzzy Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2011 +// contacts@aforgenet.com +// + +namespace AForge.Fuzzy +{ + using System; + using System.Collections.Generic; + + /// + /// Interface which specifies set of methods required to be implemented by all defuzzification methods + /// that can be used in Fuzzy Inference Systems. + /// + /// + /// In many applications, a Fuzzy Inference System is used to perform linguistic computation, + /// but at the end of the inference process, a numerical value is needed. It does not mean that the system + /// needs precision, but simply that a numerical value is required, most of the times because it will be used to + /// control another system that needs the number. To obtain this numer, a defuzzification method is performed. + /// + /// Several deffuzification methods were proposed, and they can be created as classes that + /// implements this interface. + /// + public interface IDefuzzifier + { + /// + /// Defuzzification method to obtain the numerical representation of a fuzzy output. + /// + /// + /// A containing the output of + /// several rules of a Fuzzy Inference System. + /// A operator to be used when constraining + /// the label to the firing strength. + /// + /// The numerical representation of the fuzzy output. + /// + float Defuzzify( FuzzyOutput fuzzyOutput, INorm normOperator ); + } +} diff --git a/Sources/Fuzzy/Fuzzy (mono).csproj b/Sources/Fuzzy/Fuzzy (mono).csproj new file mode 100644 index 00000000..8634f1f0 --- /dev/null +++ b/Sources/Fuzzy/Fuzzy (mono).csproj @@ -0,0 +1,70 @@ + + + + Debug + AnyCPU + 9.0.21022 + 2.0 + {EE9833F9-57C7-41CD-8DAA-CC66F36813C7} + Library + AForge.Fuzzy + v2.0 + AForge.Fuzzy + + + true + full + false + bin\Debug + DEBUG,MONO + prompt + 3 + false + + + none + false + ..\..\Release\Mono + prompt + 3 + false + true + AForge.Fuzzy.snk + MONO + + + + + False + ..\..\Release\Mono\AForge.dll + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Sources/Fuzzy/Fuzzy (mono).sln b/Sources/Fuzzy/Fuzzy (mono).sln new file mode 100644 index 00000000..4442f818 --- /dev/null +++ b/Sources/Fuzzy/Fuzzy (mono).sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Fuzzy (mono)", "Fuzzy (mono).csproj", "{EE9833F9-57C7-41CD-8DAA-CC66F36813C7}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {EE9833F9-57C7-41CD-8DAA-CC66F36813C7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EE9833F9-57C7-41CD-8DAA-CC66F36813C7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EE9833F9-57C7-41CD-8DAA-CC66F36813C7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EE9833F9-57C7-41CD-8DAA-CC66F36813C7}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(MonoDevelopProperties) = preSolution + StartupItem = Fuzzy (mono).csproj + EndGlobalSection +EndGlobal diff --git a/Sources/Fuzzy/Fuzzy.csproj b/Sources/Fuzzy/Fuzzy.csproj new file mode 100644 index 00000000..2a56c9a1 --- /dev/null +++ b/Sources/Fuzzy/Fuzzy.csproj @@ -0,0 +1,123 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {B631038F-E12C-4D0D-8B25-FF7F62FE62D1} + Library + Properties + AForge.Fuzzy + AForge.Fuzzy + v2.0 + 512 + true + AForge.Fuzzy.snk + + + 3.5 + + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + true + full + false + ..\..\Release\ + DEBUG;TRACE + prompt + 4 + AForge.Fuzzy.xml + + + pdbonly + true + ..\..\Release\ + TRACE + prompt + 4 + AForge.Fuzzy.xml + + + + False + ..\..\Release\AForge.dll + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + False + Microsoft .NET Framework 4 %28x86 and x64%29 + true + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 3.1 + true + + + + + \ No newline at end of file diff --git a/Sources/Fuzzy/Fuzzy.sln b/Sources/Fuzzy/Fuzzy.sln new file mode 100644 index 00000000..741c96ec --- /dev/null +++ b/Sources/Fuzzy/Fuzzy.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual C# Express 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Fuzzy", "Fuzzy.csproj", "{B631038F-E12C-4D0D-8B25-FF7F62FE62D1}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {B631038F-E12C-4D0D-8B25-FF7F62FE62D1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B631038F-E12C-4D0D-8B25-FF7F62FE62D1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B631038F-E12C-4D0D-8B25-FF7F62FE62D1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B631038F-E12C-4D0D-8B25-FF7F62FE62D1}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Sources/Fuzzy/FuzzyOutput.cs b/Sources/Fuzzy/FuzzyOutput.cs new file mode 100644 index 00000000..e85aa8cf --- /dev/null +++ b/Sources/Fuzzy/FuzzyOutput.cs @@ -0,0 +1,208 @@ +// AForge Fuzzy Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2011 +// contacts@aforgenet.com +// + +namespace AForge.Fuzzy +{ + using System; + using System.Collections.Generic; + + /// + /// The class represents the output of a Fuzzy Inference System. + /// + /// + /// The class keeps set of rule's output - pairs with the output fuzzy label + /// and the rule's firing strength. + /// + /// + /// + /// Sample usage: + /// + /// // linguistic labels (fuzzy sets) that compose the distances + /// FuzzySet fsNear = new FuzzySet( "Near", + /// new TrapezoidalFunction( 15, 50, TrapezoidalFunction.EdgeType.Right ) ); + /// FuzzySet fsMedium = new FuzzySet( "Medium", + /// new TrapezoidalFunction( 15, 50, 60, 100 ) ); + /// FuzzySet fsFar = new FuzzySet( "Far", + /// new TrapezoidalFunction( 60, 100, TrapezoidalFunction.EdgeType.Left ) ); + /// + /// // front distance (input) + /// LinguisticVariable lvFront = new LinguisticVariable( "FrontalDistance", 0, 120 ); + /// lvFront.AddLabel( fsNear ); + /// lvFront.AddLabel( fsMedium ); + /// lvFront.AddLabel( fsFar ); + /// + /// // linguistic labels (fuzzy sets) that compose the angle + /// FuzzySet fsZero = new FuzzySet( "Zero", + /// new TrapezoidalFunction( -10, 5, 5, 10 ) ); + /// FuzzySet fsLP = new FuzzySet( "LittlePositive", + /// new TrapezoidalFunction( 5, 10, 20, 25 ) ); + /// FuzzySet fsP = new FuzzySet( "Positive", + /// new TrapezoidalFunction( 20, 25, 35, 40 ) ); + /// FuzzySet fsVP = new FuzzySet( "VeryPositive", + /// new TrapezoidalFunction( 35, 40, TrapezoidalFunction.EdgeType.Left ) ); + /// + /// // angle + /// LinguisticVariable lvAngle = new LinguisticVariable( "Angle", -10, 50 ); + /// lvAngle.AddLabel( fsZero ); + /// lvAngle.AddLabel( fsLP ); + /// lvAngle.AddLabel( fsP ); + /// lvAngle.AddLabel( fsVP ); + /// + /// // the database + /// Database fuzzyDB = new Database( ); + /// fuzzyDB.AddVariable( lvFront ); + /// fuzzyDB.AddVariable( lvAngle ); + /// + /// // creating the inference system + /// InferenceSystem IS = new InferenceSystem( fuzzyDB, new CentroidDefuzzifier( 1000 ) ); + /// + /// // going straight + /// IS.NewRule( "Rule 1", "IF FrontalDistance IS Far THEN Angle IS Zero" ); + /// // turning left + /// IS.NewRule( "Rule 2", "IF FrontalDistance IS Near THEN Angle IS Positive" ); + /// + /// ... + /// // inference section + /// + /// // setting inputs + /// IS.SetInput( "FrontalDistance", 20 ); + /// + /// // getting outputs + /// try + /// { + /// FuzzyOutput fuzzyOutput = IS.ExecuteInference ( "Angle" ); + /// + /// // showing the fuzzy output + /// foreach ( FuzzyOutput.OutputConstraint oc in fuzzyOutput.OutputList ) + /// { + /// Console.WriteLine( oc.Label + " - " + oc.FiringStrength.ToString( ) ); + /// } + /// } + /// catch ( Exception ) + /// { + /// ... + /// } + /// + /// + /// + public class FuzzyOutput + { + /// + /// Inner class to store the pair fuzzy label / firing strength of + /// a fuzzy output. + /// + public class OutputConstraint + { + // The label of a fuzzy output + private string label; + // The firing strength of a fuzzy rule, to be applied to the label + private float firingStrength; + + /// + /// Initializes a new instance of the class. + /// + /// + /// A string representing the output label of a . + /// The firing strength of a , to be applied to its output label. + /// + internal OutputConstraint( string label, float firingStrength ) + { + this.label = label; + this.firingStrength = firingStrength; + } + + /// + /// The representing the output label of a . + /// + /// + public string Label + { + get { return label; } + } + + /// + /// The firing strength of a , to be applied to its output label. + /// + /// + public float FiringStrength + { + get { return firingStrength; } + } + + } + + // the linguistic variables repository + private List outputList; + + // the output linguistic variable + private LinguisticVariable outputVar; + + /// + /// A list with of a Fuzzy Inference System's output. + /// + /// + public List OutputList + { + get + { + return outputList; + } + } + + /// + /// Gets the acting as a Fuzzy Inference System Output. + /// + /// + public LinguisticVariable OutputVariable + { + get { return outputVar; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// A representing a Fuzzy Inference System's output. + /// + internal FuzzyOutput( LinguisticVariable outputVar ) + { + // instance of the constraints list + this.outputList = new List( 20 ); + + // output linguistic variable + this.outputVar = outputVar; + } + + /// + /// Adds an output to the Fuzzy Output. + /// + /// + /// The name of a label representing a fuzzy rule's output. + /// The firing strength [0..1] of a fuzzy rule. + /// + /// The label indicated was not found in the linguistic variable. + /// + internal void AddOutput( string labelName, float firingStrength ) + { + // check if the label exists in the linguistic variable + this.outputVar.GetLabel( labelName ); + + // adding label + this.outputList.Add( new OutputConstraint( labelName, firingStrength ) ); + } + + /// + /// Removes all the linguistic variables of the database. + /// + /// + internal void ClearOutput( ) + { + this.outputList.Clear( ); + } + } +} diff --git a/Sources/Fuzzy/FuzzySet.cs b/Sources/Fuzzy/FuzzySet.cs new file mode 100644 index 00000000..08df2f09 --- /dev/null +++ b/Sources/Fuzzy/FuzzySet.cs @@ -0,0 +1,115 @@ +// AForge Fuzzy Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2011 +// contacts@aforgenet.com +// + +namespace AForge.Fuzzy +{ + using System; + + /// + /// The class represents a fuzzy set. + /// + /// + /// The fuzzy sets are the base for all fuzzy applications. In a classical set, the membership of + /// a given value to the set can always be defined as true (1) or false (0). In fuzzy sets, this membership can be + /// a value in the range [0..1], representing the imprecision existent in many real world applications. + /// + /// Let us consider, for example, fuzzy sets representing some temperature. In a given application, there is the + /// need to represent a cool and warm temperature. Like in real life, the precise point when the temperature changes from + /// cool to warm is not easy to find, and does not makes sense. If we consider the cool around 20 degrees and warm around + /// 30 degrees, it is not simple to find a break point. If we take the mean, we can consider values greater than or equal + /// 25 to be warm. But we can still consider 25 a bit cool. And a bit warm at the same time. This is where fuzzy sets can + /// help. + /// + /// Fuzzy sets are often used to compose Linguistic Variables, used in Fuzzy Inference Systems. + /// + /// Sample usage: + /// + /// // creating 2 fuzzy sets to represent Cool and Warm + /// TrapezoidalFunction function1 = new TrapezoidalFunction( 13, 18, 23, 28 ); + /// FuzzySet fsCool = new FuzzySet( "Cool", function1 ); + /// TrapezoidalFunction function2 = new TrapezoidalFunction( 23, 28, 33, 38 ); + /// FuzzySet fsWarm = new FuzzySet( "Warm", function2 ); + /// + /// // show membership to the Cool set for some values + /// Console.WriteLine( "COOL" ); + /// for ( int i = 13; i <= 28; i++ ) + /// Console.WriteLine( fsCool.GetMembership( i ) ); + /// + /// // show membership to the Warm set for some values + /// Console.WriteLine( "WARM" ); + /// for ( int i = 23; i <= 38; i++ ) + /// Console.WriteLine( fsWarm.GetMembership( i ) ); + /// + /// + /// + public class FuzzySet + { + // name of the fuzzy set + private string name; + // membership functions that defines the shape of the fuzzy set + private IMembershipFunction function; + + /// + /// Name of the fuzzy set. + /// + public string Name + { + get { return name; } + } + + /// + /// The leftmost x value of the fuzzy set's membership function. + /// + /// + public float LeftLimit + { + get + { + return function.LeftLimit; + } + } + + /// + /// The rightmost x value of the fuzzy set's membership function. + /// + /// + public float RightLimit + { + get + { + return function.RightLimit; + } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Name of the fuzzy set. + /// Membership function that will define the shape of the fuzzy set. + /// + public FuzzySet( string name, IMembershipFunction function ) + { + this.name = name; + this.function = function; + } + + /// + /// Calculate membership of a given value to the fuzzy set. + /// + /// + /// Value which membership needs to be calculated. + /// + /// Degree of membership [0..1] of the value to the fuzzy set. + /// + public float GetMembership( float x ) + { + return function.GetMembership( x ); + } + } +} diff --git a/Sources/Fuzzy/InferenceSystem.cs b/Sources/Fuzzy/InferenceSystem.cs new file mode 100644 index 00000000..bd27c4fe --- /dev/null +++ b/Sources/Fuzzy/InferenceSystem.cs @@ -0,0 +1,264 @@ +// AForge Fuzzy Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2011 +// contacts@aforgenet.com +// + +namespace AForge.Fuzzy +{ + using System; + using System.Collections.Generic; + + /// + /// This class represents a Fuzzy Inference System. + /// + /// + /// A Fuzzy Inference System is a model capable of executing fuzzy computing. + /// It is mainly composed by a with the linguistic variables + /// (see ) and a + /// with the fuzzy rules (see ) that represent the behavior of the system. + /// The typical operation of a Fuzzy Inference System is: + /// + /// Get the numeric inputs; + /// Use the with the linguistic variables + /// (see ) to obtain linguistic meaning for each + /// numerical input; + /// Verify which rules (see ) of the are + /// activated by the input; + /// Combine the consequent of the activated rules to obtain a ; + /// Use some defuzzifier (see ) to obtain a numerical output. + /// + /// + /// + /// The following sample usage is a Fuzzy Inference System that controls an + /// auto guided vehicle avoing frontal collisions: + /// + /// // linguistic labels (fuzzy sets) that compose the distances + /// FuzzySet fsNear = new FuzzySet( "Near", + /// new TrapezoidalFunction( 15, 50, TrapezoidalFunction.EdgeType.Right ) ); + /// FuzzySet fsMedium = new FuzzySet( "Medium", + /// new TrapezoidalFunction( 15, 50, 60, 100 ) ); + /// FuzzySet fsFar = new FuzzySet( "Far", + /// new TrapezoidalFunction( 60, 100, TrapezoidalFunction.EdgeType.Left ) ); + /// + /// // front distance (input) + /// LinguisticVariable lvFront = new LinguisticVariable( "FrontalDistance", 0, 120 ); + /// lvFront.AddLabel( fsNear ); + /// lvFront.AddLabel( fsMedium ); + /// lvFront.AddLabel( fsFar ); + /// + /// // linguistic labels (fuzzy sets) that compose the angle + /// FuzzySet fsZero = new FuzzySet( "Zero", + /// new TrapezoidalFunction( -10, 5, 5, 10 ) ); + /// FuzzySet fsLP = new FuzzySet( "LittlePositive", + /// new TrapezoidalFunction( 5, 10, 20, 25 ) ); + /// FuzzySet fsP = new FuzzySet( "Positive", + /// new TrapezoidalFunction( 20, 25, 35, 40 ) ); + /// FuzzySet fsVP = new FuzzySet( "VeryPositive", + /// new TrapezoidalFunction( 35, 40, TrapezoidalFunction.EdgeType.Left ) ); + /// + /// // angle + /// LinguisticVariable lvAngle = new LinguisticVariable( "Angle", -10, 50 ); + /// lvAngle.AddLabel( fsZero ); + /// lvAngle.AddLabel( fsLP ); + /// lvAngle.AddLabel( fsP ); + /// lvAngle.AddLabel( fsVP ); + /// + /// // the database + /// Database fuzzyDB = new Database( ); + /// fuzzyDB.AddVariable( lvFront ); + /// fuzzyDB.AddVariable( lvAngle ); + /// + /// // creating the inference system + /// InferenceSystem IS = new InferenceSystem( fuzzyDB, new CentroidDefuzzifier( 1000 ) ); + /// + /// // going Straight + /// IS.NewRule( "Rule 1", "IF FrontalDistance IS Far THEN Angle IS Zero" ); + /// // Turning Left + /// IS.NewRule( "Rule 2", "IF FrontalDistance IS Near THEN Angle IS Positive" ); + /// + /// ... + /// // inference section + /// + /// // setting inputs + /// IS.SetInput( "FrontalDistance", 20 ); + /// + /// // getting outputs + /// try + /// { + /// float newAngle = IS.Evaluate( "Angle" ); + /// } + /// catch ( Exception ) + /// { + /// ... + /// } + /// + /// + /// + public class InferenceSystem + { + // The linguistic variables of this system + private Database database; + // The fuzzy rules of this system + private Rulebase rulebase; + // The defuzzifier method choosen + private IDefuzzifier defuzzifier; + // Norm operator used in rules and deffuzification + private INorm normOperator; + // CoNorm operator used in rules + private ICoNorm conormOperator; + + + /// + /// Initializes a new Fuzzy . + /// + /// + /// A fuzzy containing the system linguistic variables. + /// A defuzzyfier method used to evaluate the numeric uotput of the system. + /// + public InferenceSystem( Database database, IDefuzzifier defuzzifier ) + : this( database, defuzzifier, new MinimumNorm( ), new MaximumCoNorm( ) ) + { + } + + /// + /// Initializes a new Fuzzy . + /// + /// + /// A fuzzy containing the system linguistic + /// variables. + /// A defuzzyfier method used to evaluate the numeric otput + /// of the system. + /// A operator used to evaluate the norms + /// in the . For more information of the norm evaluation see . + /// A operator used to evaluate the + /// conorms in the . For more information of the conorm evaluation see . + /// + public InferenceSystem( Database database, IDefuzzifier defuzzifier, INorm normOperator, ICoNorm conormOperator ) + { + this.database = database; + this.defuzzifier = defuzzifier; + this.normOperator = normOperator; + this.conormOperator = conormOperator; + this.rulebase = new Rulebase( ); + } + + /// + /// Creates a new and add it to the of the + /// . + /// + /// + /// Name of the to create. + /// A string representing the fuzzy rule. + /// + /// The new reference. + /// + public Rule NewRule( string name, string rule ) + { + Rule r = new Rule( database, name, rule, normOperator, conormOperator ); + this.rulebase.AddRule( r ); + return r; + } + + /// + /// Sets a numerical input for one of the linguistic variables of the . + /// + /// + /// Name of the . + /// Numeric value to be used as input. + /// + /// The variable indicated in + /// was not found in the database. + /// + public void SetInput( string variableName, float value ) + { + this.database.GetVariable( variableName ).NumericInput = value; + } + + /// + /// Gets one of the of the . + /// + /// + /// Name of the to get. + /// + /// The variable indicated in + /// was not found in the database. + /// + public LinguisticVariable GetLinguisticVariable( string variableName ) + { + return this.database.GetVariable( variableName ); + } + + /// + /// Gets one of the Rules of the . + /// + /// + /// Name of the to get. + /// + /// The rule indicated in + /// was not found in the rulebase. + /// + public Rule GetRule( string ruleName ) + { + return this.rulebase.GetRule ( ruleName ); + } + + /// + /// Executes the fuzzy inference, obtaining a numerical output for a choosen output + /// linguistic variable. + /// + /// + /// Name of the to evaluate. + /// + /// The numerical output of the Fuzzy Inference System for the choosen variable. + /// + /// The variable indicated was not found in the database. + /// + public float Evaluate( string variableName ) + { + // call the defuzzification on fuzzy output + FuzzyOutput fuzzyOutput = ExecuteInference( variableName ); + float res = defuzzifier.Defuzzify( fuzzyOutput, normOperator ); + return res; + } + + /// + /// Executes the fuzzy inference, obtaining the of the system for the required + /// . + /// + /// + /// Name of the to evaluate. + /// + /// A containing the fuzzy output of the system for the + /// specified in . + /// + /// The variable indicated was not found in the database. + /// + public FuzzyOutput ExecuteInference( string variableName ) + { + // gets the variable + LinguisticVariable lingVar = database.GetVariable( variableName ); + + // object to store the fuzzy output + FuzzyOutput fuzzyOutput = new FuzzyOutput( lingVar ); + + // select only rules with the variable as output + Rule[] rules = rulebase.GetRules( ); + foreach ( Rule r in rules ) + { + if ( r.Output.Variable.Name == variableName ) + { + string labelName = r.Output.Label.Name; + float firingStrength = r.EvaluateFiringStrength( ); + if ( firingStrength > 0 ) + fuzzyOutput.AddOutput( labelName, firingStrength ); + } + } + + // returns the fuzzy output obtained + return fuzzyOutput; + } + } +} diff --git a/Sources/Fuzzy/LinguisticVariable.cs b/Sources/Fuzzy/LinguisticVariable.cs new file mode 100644 index 00000000..23538e76 --- /dev/null +++ b/Sources/Fuzzy/LinguisticVariable.cs @@ -0,0 +1,204 @@ +// AForge Fuzzy Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2011 +// contacts@aforgenet.com +// + +namespace AForge.Fuzzy +{ + using System; + using System.Collections.Generic; + + /// + /// The class represents a linguistic variable. + /// + /// + /// Linguistic variables are variables that store linguistic values (labels). Fuzzy Inference Systems (FIS) + /// use a set of linguistic variables, called the FIS database, to execute fuzzy computation (computing with words). A linguistic + /// variable has a name and is composed by a set of called its linguistic labels. When declaring fuzzy + /// statements in a FIS, a linguistic variable can be only assigned or compared to one of its labels. + /// + /// Let us consider, for example, a linguistic variable temperature. In a given application, temperature can be + /// cold, cool, warm or hot. Those will be the variable's linguistic labels, each one a fuzzy set with its own membership + /// function. Ideally, the labels will represent concepts related to the variable's meaning. Futhermore, fuzzy statements like + /// "temperature is warm" or "temperature is not cold" can be used to build a Fuzzy Inference Systems. + /// + /// + /// Sample usage: + /// + /// // create a linguistic variable to represent temperature + /// LinguisticVariable lvTemperature = new LinguisticVariable( "Temperature", 0, 80 ); + /// + /// // create the linguistic labels (fuzzy sets) that compose the temperature + /// TrapezoidalFunction function1 = new TrapezoidalFunction( 10, 15, TrapezoidalFunction.EdgeType.Right ); + /// FuzzySet fsCold = new FuzzySet( "Cold", function1 ); + /// TrapezoidalFunction function2 = new TrapezoidalFunction( 10, 15, 20, 25 ); + /// FuzzySet fsCool = new FuzzySet( "Cool", function2 ); + /// TrapezoidalFunction function3 = new TrapezoidalFunction( 20, 25, 30, 35 ); + /// FuzzySet fsWarm = new FuzzySet( "Warm", function3 ); + /// TrapezoidalFunction function4 = new TrapezoidalFunction( 30, 35, TrapezoidalFunction.EdgeType.Left ); + /// FuzzySet fsHot = new FuzzySet( "Hot" , function4 ); + /// + /// // adding labels to the variable + /// lvTemperature.AddLabel( fsCold ); + /// lvTemperature.AddLabel( fsCool ); + /// lvTemperature.AddLabel( fsWarm ); + /// lvTemperature.AddLabel( fsHot ); + /// + /// // showing the shape of the linguistic variable - the shape of its labels memberships from start to end + /// Console.WriteLine( "Cold; Cool; Warm; Hot" ); + /// for ( float x = 0; x < 80; x += 0.2 ) + /// { + /// float y1 = lvTemperature.GetLabelMembership( "Cold", x ); + /// float y2 = lvTemperature.GetLabelMembership( "Cool", x ); + /// float y3 = lvTemperature.GetLabelMembership( "Warm", x ); + /// float y4 = lvTemperature.GetLabelMembership( "Hot" , x ); + /// + /// Console.WriteLine( String.Format( "{0:N}; {1:N}; {2:N}; {3:N}", y1, y2, y3, y4 ) ); + /// } + /// + /// + /// + public class LinguisticVariable + { + // name of the linguistic variable + private string name; + // right limit within the lingusitic variable works + private float start; + // left limit within the lingusitic variable works + private float end; + // the linguistic labels of the linguistic variable + private Dictionary labels; + // the numeric input of this variable + private float numericInput; + + /// + /// Numerical value of the input of this linguistic variable. + /// + public float NumericInput + { + get { return numericInput; } + set { numericInput = value; } + } + + /// + /// Name of the linguistic variable. + /// + public string Name + { + get { return name; } + } + + /// + /// Left limit of the valid variable range. + /// + public float Start + { + get { return start; } + } + + /// + /// Right limit of the valid variable range. + /// + public float End + { + get { return end; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Name of the linguistic variable. + /// + /// Left limit of the valid variable range. + /// + /// Right limit of the valid variable range. + /// + public LinguisticVariable( string name, float start, float end ) + { + this.name = name; + this.start = start; + this.end = end; + + // instance of the labels list - usually a linguistic variable has no more than 10 labels + this.labels = new Dictionary( 10 ); + } + + /// + /// Adds a linguistic label to the variable. + /// + /// + /// A that will be a linguistic label of the linguistic variable. + /// + /// Linguistic labels are fuzzy sets (). Each + /// label of the variable must have a unique name. The range of the label + /// (left and right limits) cannot be greater than + /// the linguistic variable range (start/end). + /// + /// The fuzzy set was not initialized. + /// The linguistic label name already exists in the linguistic variable. + /// The left limit of the fuzzy set can not be lower than the linguistic variable's starting point. + /// "The right limit of the fuzzy set can not be greater than the linguistic variable's ending point." + /// + public void AddLabel( FuzzySet label ) + { + // checking for existing name + if ( this.labels.ContainsKey( label.Name ) ) + throw new ArgumentException( "The linguistic label name already exists in the linguistic variable." ); + + // checking ranges + if ( label.LeftLimit < this.start ) + throw new ArgumentException( "The left limit of the fuzzy set can not be lower than the linguistic variable's starting point." ); + if ( label.RightLimit > this.end ) + throw new ArgumentException( "The right limit of the fuzzy set can not be greater than the linguistic variable's ending point." ); + + // adding label + this.labels.Add( label.Name, label ); + } + + /// + /// Removes all the linguistic labels of the linguistic variable. + /// + /// + public void ClearLabels( ) + { + this.labels.Clear( ); + } + + /// + /// Returns an existing label from the linguistic variable. + /// + /// + /// Name of the label to retrieve. + /// + /// Reference to named label (). + /// + /// The label indicated was not found in the linguistic variable. + /// + public FuzzySet GetLabel( string labelName ) + { + return labels[labelName]; + } + + /// + /// Calculate the membership of a given value to a given label. Used to evaluate linguistics clauses like + /// "X IS A", where X is a value and A is a linguistic label. + /// + /// + /// Label (fuzzy set) to evaluate value's membership. + /// Value which label's membership will to be calculated. + /// + /// Degree of membership [0..1] of the value to the label (fuzzy set). + /// + /// The label indicated in labelName was not found in the linguistic variable. + /// + public float GetLabelMembership( string labelName, float value ) + { + FuzzySet fs = labels[labelName]; + return fs.GetMembership( value ); + } + } +} diff --git a/Sources/Fuzzy/Membership Functions/IMembershipFunction.cs b/Sources/Fuzzy/Membership Functions/IMembershipFunction.cs new file mode 100644 index 00000000..04674b87 --- /dev/null +++ b/Sources/Fuzzy/Membership Functions/IMembershipFunction.cs @@ -0,0 +1,45 @@ +// AForge Fuzzy Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2011 +// contacts@aforgenet.com +// + +namespace AForge.Fuzzy +{ + using System; + + /// + /// Interface which specifies set of methods required to be implemented by all membership + /// functions. + /// + /// + /// All membership functions must implement this interface, which is used by + /// class to calculate value's membership to a particular fuzzy set. + /// + /// + public interface IMembershipFunction + { + /// + /// Calculate membership of a given value to the fuzzy set. + /// + /// + /// Value which membership will to be calculated. + /// + /// Degree of membership [0..1] of the value to the fuzzy set. + /// + float GetMembership( float x ); + + /// + /// The leftmost x value of the membership function. + /// + float LeftLimit { get; } + + /// + /// The rightmost x value of the membership function. + /// + float RightLimit { get; } + } +} + diff --git a/Sources/Fuzzy/Membership Functions/PiecewiseLinearFunction.cs b/Sources/Fuzzy/Membership Functions/PiecewiseLinearFunction.cs new file mode 100644 index 00000000..5d540b8c --- /dev/null +++ b/Sources/Fuzzy/Membership Functions/PiecewiseLinearFunction.cs @@ -0,0 +1,167 @@ +// AForge Fuzzy Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2011 +// contacts@aforgenet.com +// +namespace AForge.Fuzzy +{ + using System; + using AForge; + + /// + /// Membership function composed by several connected linear functions. + /// + /// + /// The piecewise linear is a generic function used by many specific fuzzy membership + /// functions, like the trappezoidal function. This class must + /// be instantiated with a sequence of points representing the edges of each one of the lines composing the + /// piecewise function. + /// + /// The x-axis points must be ordered (crescent), so the function will use each X value + /// as an ending point for one line and starting point of the next. + /// + /// While trapezoidal and half trapezoidal are classic functions used in fuzzy functions, this class supports any function + /// or approximation that can be represented as a sequence of lines. + /// + /// Sample usage: + /// + /// // creating an array of points representing a typical trapezoidal function /-\ + /// Point [] points = new Point[4]; + /// // point where membership starts to rise + /// points[0] = new Point( 10, 0 ); + /// // maximum membership (1) reached at the second point + /// points[1] = new Point( 20, 1 ); + /// // membership starts to fall at the third point + /// points[2] = new Point( 30, 1 ); + /// // membership gets to zero at the last point + /// points[3] = new Point( 40, 0 ); + /// // creating the instance + /// PiecewiseLinearFunction membershipFunction = new PiecewiseLinearFunction( points ); + /// // getting membership for several points + /// for ( int i = 5; i < 45; i++ ) + /// Console.WriteLine( membershipFunction.GetMembership( i ) ); + /// + /// + /// + public class PiecewiseLinearFunction : IMembershipFunction + { + /// + /// Vector of (X,Y) coordinates for end/start of each line. + /// + protected Point[] points; + + /// + /// The leftmost x value of the membership function, given by the first (X,Y) coordinate. + /// + /// + /// Points of the membership function are not initialized. + /// + public float LeftLimit + { + get + { + return points[0].X; + } + } + + /// + /// The rightmost x value of the membership function, given by the last (X,Y) coordinate. + /// + /// + /// Points of the membership function are not initialized. + /// + public float RightLimit + { + get + { + return points[points.Length - 1].X; + } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// This constructor must be used only by inherited classes to create the + /// points vector after the instantiation. + /// + protected PiecewiseLinearFunction( ) + { + points = null; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Array of (X,Y) coordinates of each start/end of the lines. + /// + /// Specified point must be in crescent order on X axis and their Y value + /// must be in the range of [0, 1]. + /// + /// Points must be in crescent order on X axis. + /// Y value of points must be in the range of [0, 1]. + /// + public PiecewiseLinearFunction( Point[] points ) + { + this.points = points; + + // check if X points are in a sequence and if Y values are in [0..1] range + for ( int i = 0, n = points.Length; i < n; i++ ) + { + if ( ( points[i].Y < 0 ) || ( points[i].Y > 1 ) ) + throw new ArgumentException( "Y value of points must be in the range of [0, 1]." ); + + if ( i == 0 ) + continue; + + if ( points[i - 1].X > points[i].X ) + throw new ArgumentException( "Points must be in crescent order on X axis." ); + } + } + + /// + /// Calculate membership of a given value to the piecewise function. + /// + /// + /// Value which membership will to be calculated. + /// + /// Degree of membership [0..1] of the value to the fuzzy set. + /// + /// Points of the membership function are not initialized. + /// + public float GetMembership( float x ) + { + // no values belong to the fuzzy set, if there are no points in the piecewise function + if ( points.Length == 0 ) + return 0.0f; + + // if X value is less than the first point, so first point's Y will be returned as membership + if ( x < points[0].X ) + return points[0].Y; + + // looking for the line that contais the X value + for ( int i = 1, n = points.Length; i < n; i++ ) + { + // the line with X value starts in points[i-1].X and ends at points[i].X + if ( x < points[i].X ) + { + // points to calculate line's equation + float y1 = points[i].Y; + float y0 = points[i - 1].Y; + float x1 = points[i].X; + float x0 = points[i - 1].X; + // angular coefficient + float m = ( y1 - y0 ) / ( x1 - x0 ); + // returning the membership - the Y value for this X + return m * ( x - x0 ) + y0; + } + } + + // X value is more than last point, so last point Y will be returned as membership + return points[points.Length - 1].Y; + } + } +} diff --git a/Sources/Fuzzy/Membership Functions/SingletonFunction.cs b/Sources/Fuzzy/Membership Functions/SingletonFunction.cs new file mode 100644 index 00000000..b821b468 --- /dev/null +++ b/Sources/Fuzzy/Membership Functions/SingletonFunction.cs @@ -0,0 +1,91 @@ +// AForge Fuzzy Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2011 +// contacts@aforgenet.com +// + +namespace AForge.Fuzzy +{ + using System; + using AForge; + + /// + /// Membership function used in fuzzy singletons: fuzzy sets that have just one point with membership value 1. + /// + /// + /// Sometimes it is needed to represent crisp (classical) number in the fuzzy domain. Several approaches + /// can be used, like adding some uncertain (fuzziness) in the original number (the number one, for instance, can be seen as a + /// with -0.5, 1.0 and 0.5 parameters). Another approach is to declare fuzzy singletons: fuzzy sets with only one point returning a none zero membership. + /// + /// While trapezoidal and half trapezoidal are classic functions used in fuzzy functions, this class supports any function + /// or approximation that can be represented as a sequence of lines. + /// + /// Sample usage: + /// + /// // creating the instance + /// SingletonFunction membershipFunction = new SingletonFunction( 10 ); + /// // getting membership for several points + /// for ( int i = 0; i < 20; i++ ) + /// Console.WriteLine( membershipFunction.GetMembership( i ) ); + /// + /// + /// + public class SingletonFunction : IMembershipFunction + { + /// + /// The unique point where the membership value is 1. + /// + protected float support; + + /// + /// The leftmost x value of the membership function, the same value of the support. + /// + /// + public float LeftLimit + { + get + { + return support; + } + } + + /// + /// The rightmost x value of the membership function, the same value of the support. + /// + /// + public float RightLimit + { + get + { + return support; + } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Support is the only value of x where the membership function is 1. + /// + public SingletonFunction( float support ) + { + this.support = support; + } + + /// + /// Calculate membership of a given value to the singleton function. + /// + /// + /// Value which membership will to be calculated. + /// + /// Degree of membership {0,1} since singletons do not admit memberships different from 0 and 1. + /// + public float GetMembership( float x ) + { + // if x is the support, returns 1, otherwise, returns 0 + return ( support == x ) ? 1 : 0; + } + } +} diff --git a/Sources/Fuzzy/Membership Functions/TrapezoidalFunction.cs b/Sources/Fuzzy/Membership Functions/TrapezoidalFunction.cs new file mode 100644 index 00000000..be091a42 --- /dev/null +++ b/Sources/Fuzzy/Membership Functions/TrapezoidalFunction.cs @@ -0,0 +1,198 @@ +// AForge Fuzzy Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2011 +// contacts@aforgenet.com +// + +namespace AForge.Fuzzy +{ + using System; + using AForge; + + /// + /// Membership function in the shape of a trapezoid. Can be a half trapzoid if the left or the right side is missing. + /// + /// + /// Since the can represent any piece wise linear + /// function, it can represent trapezoids too. But as trapezoids are largely used in the creation of + /// Linguistic Variables, this class simplifies the creation of them. + /// + /// Sample usage: + /// + /// // creating a typical triangular fuzzy set /\ + /// TrapezoidalFunction function1 = new TrapezoidalFunction( 10, 20, 30 ); + /// // creating a right fuzzy set, the rigth side of the set is fuzzy but the left is opened + /// TrapezoidalFunction function2 = new TrapezoidalFunction( 10, 20, 30, TrapezoidalFunction.EdgeType.Right ); + /// + /// + /// + public class TrapezoidalFunction : PiecewiseLinearFunction + { + /// + /// Enumeration used to create trapezoidal membership functions with half trapezoids. + /// + /// + /// If the value is Left, the trapezoid has the left edge, but right + /// is open (/--). If the value is Right, the trapezoid has the right edge, but left + /// is open (--\). + /// + public enum EdgeType + { + /// + /// The fuzzy side of the trapezoid is at the left side. + /// + Left, + /// + /// The fuzzy side of the trapezoid is at the right side. + /// + Right + }; + + + /// + /// A private constructor used only to reuse code inside of this default constructor. + /// + /// + /// Size of points vector to create. This size depends of the shape of the + /// trapezoid. + /// + private TrapezoidalFunction( int size ) + { + points = new Point[size]; + } + + /// + /// Initializes a new instance of the class. + /// + /// With four points the shape is known as flat fuzzy number or fuzzy interval (/--\). + /// + /// + /// X value where the degree of membership starts to raise. + /// X value where the degree of membership reaches the maximum value. + /// X value where the degree of membership starts to fall. + /// X value where the degree of membership reaches the minimum value. + /// The maximum value that the membership will reach, [0, 1]. + /// The minimum value that the membership will reach, [0, 1]. + /// + public TrapezoidalFunction( float m1, float m2, float m3, float m4, float max, float min ) + : this( 4 ) + { + points[0] = new Point( m1, min ); + points[1] = new Point( m2, max ); + points[2] = new Point( m3, max ); + points[3] = new Point( m4, min ); + } + + /// + /// Initializes a new instance of the class. + /// + /// With four points the shape is known as flat fuzzy number or fuzzy interval (/--\). + /// + /// + /// X value where the degree of membership starts to raise. + /// X value where the degree of membership reaches the maximum value. + /// X value where the degree of membership starts to fall. + /// X value where the degree of membership reaches the minimum value. + /// + /// + /// Maximum membership value is set to 1.0 and the minimum is set to 0.0. + /// + /// + public TrapezoidalFunction( float m1, float m2, float m3, float m4 ) + : this( m1, m2, m3, m4, 1.0f, 0.0f ) + { + } + + /// + /// Initializes a new instance of the class. + /// + /// With three points the shape is known as triangular fuzzy number or just fuzzy number (/\). + /// + /// + /// X value where the degree of membership starts to raise. + /// X value where the degree of membership reaches the maximum value and starts to fall. + /// X value where the degree of membership reaches the minimum value. + /// The maximum value that the membership will reach, [0, 1]. + /// The minimum value that the membership will reach, [0, 1]. + /// + public TrapezoidalFunction( float m1, float m2, float m3, float max, float min ) + : this( 3 ) + { + points[0] = new Point( m1, min ); + points[1] = new Point( m2, max ); + points[2] = new Point( m3, min ); + } + + /// + /// Initializes a new instance of the class. + /// + /// With three points the shape is known as triangular fuzzy number or just fuzzy number (/\). + /// + /// + /// X value where the degree of membership starts to raise. + /// X value where the degree of membership reaches the maximum value and starts to fall. + /// X value where the degree of membership reaches the minimum value. + /// + /// + /// Maximum membership value is set to 1.0 and the minimum is set to 0.0. + /// + /// + public TrapezoidalFunction( float m1, float m2, float m3 ) + : this( m1, m2, m3, 1.0f, 0.0f ) + { + } + + /// + /// Initializes a new instance of the class. + /// + /// With two points and an edge this shape can be a left fuzzy number (/) or a right fuzzy number (\). + /// + /// + /// Edge = Left: X value where the degree of membership starts to raise. + /// Edge = Right: X value where the function starts, with maximum degree of membership. + /// Edge = Left: X value where the degree of membership reaches the maximum. + /// Edge = Right: X value where the degree of membership reaches minimum value. + /// The maximum value that the membership will reach, [0, 1]. + /// The minimum value that the membership will reach, [0, 1]. + /// Trapezoid's . + /// + public TrapezoidalFunction( float m1, float m2, float max, float min, EdgeType edge ) + : this( 2 ) + { + if ( edge == EdgeType.Left ) + { + points[0] = new Point( m1, min ); + points[1] = new Point( m2, max ); + } + else + { + points[0] = new Point( m1, max ); + points[1] = new Point( m2, min ); + } + } + + /// + /// Initializes a new instance of the class. + /// + /// With three points and an edge this shape can be a left fuzzy number (/--) or a right fuzzy number (--\). + /// + /// + /// Edge = Left: X value where the degree of membership starts to raise. + /// Edge = Right: X value where the function starts, with maximum degree of membership. + /// Edge = Left: X value where the degree of membership reaches the maximum. + /// Edge = Right: X value where the degree of membership reaches minimum value. + /// Trapezoid's . + /// + /// + /// Maximum membership value is set to 1.0 and the minimum is set to 0.0. + /// + /// + public TrapezoidalFunction( float m1, float m2, EdgeType edge ) + : this( m1, m2, 1.0f, 0.0f, edge ) + { + } + } +} + diff --git a/Sources/Fuzzy/Operators/ICoNorm.cs b/Sources/Fuzzy/Operators/ICoNorm.cs new file mode 100644 index 00000000..ab1c5b60 --- /dev/null +++ b/Sources/Fuzzy/Operators/ICoNorm.cs @@ -0,0 +1,36 @@ +// AForge Fuzzy Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2011 +// contacts@aforgenet.com +// + +namespace AForge.Fuzzy +{ + using System; + + /// + /// Interface with the common methods of a Fuzzy CoNorm. + /// + /// + /// All fuzzy operators that act as a CoNorm must implement this interface. + /// + /// + public interface ICoNorm + { + /// + /// Calculates the numerical result of a CoNorm (OR) operation applied to + /// two fuzzy membership values. + /// + /// + /// A fuzzy membership value, [0..1]. + /// A fuzzy membership value, [0..1]. + /// + /// The numerical result the operation OR applied to + /// and . + /// + float Evaluate( float membershipA, float membershipB ); + } +} + diff --git a/Sources/Fuzzy/Operators/INorm.cs b/Sources/Fuzzy/Operators/INorm.cs new file mode 100644 index 00000000..f348275b --- /dev/null +++ b/Sources/Fuzzy/Operators/INorm.cs @@ -0,0 +1,37 @@ +// AForge Fuzzy Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2011 +// contacts@aforgenet.com +// + +namespace AForge.Fuzzy +{ + using System; + + /// + /// Interface with the common methods of a Fuzzy Norm. + /// + /// + /// All fuzzy operators that act as a Norm must implement this interface. + /// + /// + public interface INorm + { + /// + /// Calculates the numerical result of a Norm (AND) operation applied to + /// two fuzzy membership values. + /// + /// + /// A fuzzy membership value, [0..1]. + /// A fuzzy membership value, [0..1]. + /// + /// The numerical result the operation AND applied to + /// and . + /// + float Evaluate( float membershipA, float membershipB ); + } +} + + diff --git a/Sources/Fuzzy/Operators/IUnaryOperator.cs b/Sources/Fuzzy/Operators/IUnaryOperator.cs new file mode 100644 index 00000000..4d133ce1 --- /dev/null +++ b/Sources/Fuzzy/Operators/IUnaryOperator.cs @@ -0,0 +1,35 @@ +// AForge Fuzzy Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2011 +// contacts@aforgenet.com +// + +namespace AForge.Fuzzy +{ + using System; + + /// + /// Interface with the common methods of Fuzzy Unary Operator. + /// + /// + /// All fuzzy operators that act as a Unary Operator (NOT, VERY, LITTLE) must implement this interface. + /// + /// + public interface IUnaryOperator + { + /// + /// Calculates the numerical result of a Unary operation applied to one + /// fuzzy membership value. + /// + /// + /// A fuzzy membership value, [0..1]. + /// + /// The numerical result of the operation applied to . + /// + float Evaluate( float membership ); + } +} + + diff --git a/Sources/Fuzzy/Operators/MaximumCoNorm.cs b/Sources/Fuzzy/Operators/MaximumCoNorm.cs new file mode 100644 index 00000000..57e9be03 --- /dev/null +++ b/Sources/Fuzzy/Operators/MaximumCoNorm.cs @@ -0,0 +1,63 @@ +// AForge Fuzzy Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2011 +// contacts@aforgenet.com +// + +namespace AForge.Fuzzy +{ + using System; + using AForge; + + /// + /// Maximum CoNorm, used to calculate the linguistic value of a OR operation. + /// + /// + /// The maximum CoNorm uses a maximum operator to compute the OR + /// among two fuzzy memberships. + /// + /// Sample usage: + /// + /// // creating 2 fuzzy sets to represent Cool (Temperature) and Near (Distance) + /// TrapezoidalFunction function1 = new TrapezoidalFunction( 13, 18, 23, 28 ); + /// FuzzySet fsCool = new FuzzySet( "Cool", function1 ); + /// TrapezoidalFunction function2 = new TrapezoidalFunction( 23, 28, 33, 38 ); + /// FuzzySet fsNear = new FuzzySet( "Near", function2 ); + /// + /// // getting memberships + /// float m1 = fsCool.GetMembership( 15 ); + /// float m2 = fsNear.GetMembership( 35 ); + /// + /// // computing the membership of "Cool OR Near" + /// MaximumCoNorm OR = new MaximumCoNorm( ); + /// float result = OR.Evaluate( m1, m2 ); + /// + /// // show result + /// Console.WriteLine( result ); + /// + /// + /// + /// + /// + public class MaximumCoNorm : ICoNorm + { + /// + /// Calculates the numerical result of the OR operation applied to + /// two fuzzy membership values. + /// + /// + /// A fuzzy membership value, [0..1]. + /// A fuzzy membership value, [0..1]. + /// + /// The numerical result of the binary operation OR applied to + /// and . + /// + public float Evaluate( float membershipA, float membershipB ) + { + return Math.Max( membershipA, membershipB ); + } + } +} + diff --git a/Sources/Fuzzy/Operators/MinimumNorm.cs b/Sources/Fuzzy/Operators/MinimumNorm.cs new file mode 100644 index 00000000..518e36a5 --- /dev/null +++ b/Sources/Fuzzy/Operators/MinimumNorm.cs @@ -0,0 +1,64 @@ +// AForge Fuzzy Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2011 +// contacts@aforgenet.com +// + +namespace AForge.Fuzzy +{ + using System; + using AForge; + + /// + /// Minimum Norm, used to calculate the linguistic value of a AND operation. + /// + /// + /// The minimum Norm uses a minimum operator to compute the AND + /// among two fuzzy memberships. + /// + /// Sample usage: + /// + /// // creating 2 fuzzy sets to represent Cool (Temperature) and Near (Distance) + /// TrapezoidalFunction function1 = new TrapezoidalFunction( 13, 18, 23, 28 ); + /// FuzzySet fsCool = new FuzzySet( "Cool", function1 ); + /// TrapezoidalFunction function2 = new TrapezoidalFunction( 23, 28, 33, 38 ); + /// FuzzySet fsNear = new FuzzySet( "Near", function2 ); + /// + /// // getting memberships + /// float m1 = fsCool.GetMembership( 15 ); + /// float m2 = fsNear.GetMembership( 35 ); + /// + /// // computing the membership of "Cool AND Near" + /// MinimumNorm AND = new MinimumNorm( ); + /// float result = AND.Evaluate( m1, m2 ); + /// + /// // show result + /// Console.WriteLine( result ); + /// + /// + /// + /// + /// + public class MinimumNorm : INorm + { + /// + /// Calculates the numerical result of the AND operation applied to + /// two fuzzy membership values using the minimum rule. + /// + /// + /// A fuzzy membership value, [0..1]. + /// + /// A fuzzy membership value, [0..1]. + /// + /// The numerical result of the AND operation applied to + /// and . + /// + public float Evaluate( float membershipA, float membershipB ) + { + return Math.Min( membershipA, membershipB ); + } + } +} + diff --git a/Sources/Fuzzy/Operators/NotOperator.cs b/Sources/Fuzzy/Operators/NotOperator.cs new file mode 100644 index 00000000..eb593d6b --- /dev/null +++ b/Sources/Fuzzy/Operators/NotOperator.cs @@ -0,0 +1,57 @@ +// AForge Fuzzy Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2011 +// contacts@aforgenet.com +// + +namespace AForge.Fuzzy +{ + using System; + using AForge; + + /// + /// NOT operator, used to calculate the complement of a fuzzy set. + /// + /// + /// The NOT operator definition is (1 - m) for all the values of membership m of the fuzzy set. + /// + /// Sample usage: + /// + /// // creating a fuzzy sets to represent Cool (Temperature) + /// TrapezoidalFunction function1 = new TrapezoidalFunction( 13, 18, 23, 28 ); + /// FuzzySet fsCool = new FuzzySet( "Cool", function1 ); + /// + /// // getting membership + /// float m1 = fsCool.GetMembership( 15 ); + /// + /// // computing the membership of "NOT Cool" + /// NotOperator NOT = new NotOperator( ); + /// float result = NOT.Evaluate( m1 ); + /// + /// // show result + /// Console.WriteLine( result ); + /// + /// + /// + /// + /// + public class NotOperator : IUnaryOperator + { + /// + /// Calculates the numerical result of the NOT operation applied to + /// a fuzzy membership value. + /// + /// + /// A fuzzy membership value, [0..1]. + /// + /// The numerical result of the unary operation NOT applied to . + /// + public float Evaluate( float membership ) + { + return ( 1 - membership ); + } + } +} + diff --git a/Sources/Fuzzy/Operators/ProductNorm.cs b/Sources/Fuzzy/Operators/ProductNorm.cs new file mode 100644 index 00000000..e1fb4628 --- /dev/null +++ b/Sources/Fuzzy/Operators/ProductNorm.cs @@ -0,0 +1,62 @@ +// AForge Fuzzy Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2011 +// contacts@aforgenet.com +// +namespace AForge.Fuzzy +{ + using System; + using AForge; + + /// + /// Product Norm, used to calculate the linguistic value of a AND operation. + /// + /// + /// The product Norm uses a multiplication operator to compute the + /// AND among two fuzzy memberships. + /// + /// Sample usage: + /// + /// // creating 2 fuzzy sets to represent Cool (Temperature) and Near (Distance) + /// TrapezoidalFunction function1 = new TrapezoidalFunction( 13, 18, 23, 28 ); + /// FuzzySet fsCool = new FuzzySet( "Cool", function1 ); + /// TrapezoidalFunction function2 = new TrapezoidalFunction( 23, 28, 33, 38 ); + /// FuzzySet fsNear = new FuzzySet( "Near", function2 ); + /// + /// // getting memberships + /// float m1 = fsCool.GetMembership( 15 ); + /// float m2 = fsNear.GetMembership( 35 ); + /// + /// // computing the membership of "Cool AND Near" + /// ProductNorm AND = new ProductNorm( ); + /// float result = AND.Evaluate( m1, m2 ); + /// + /// // show result + /// Console.WriteLine( result ); + /// + /// + /// + /// + /// + public class ProductNorm : INorm + { + /// + /// Calculates the numerical result of the AND operation applied to + /// two fuzzy membership values using the product rule. + /// + /// + /// A fuzzy membership value, [0..1]. + /// A fuzzy membership value, [0..1]. + /// + /// The numerical result of the AND operation applied to + /// and . + /// + public float Evaluate( float membershipA, float membershipB ) + { + return membershipA * membershipB; + } + } +} + diff --git a/Sources/Fuzzy/Properties/AssemblyInfo.cs b/Sources/Fuzzy/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..e59d60c6 --- /dev/null +++ b/Sources/Fuzzy/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle( "AForge.Fuzzy" )] +[assembly: AssemblyDescription( "" )] +[assembly: AssemblyConfiguration( "" )] +[assembly: AssemblyCompany( "AForge" )] +[assembly: AssemblyProduct( "AForge.NET" )] +[assembly: AssemblyCopyright( "AForge © 2012" )] +[assembly: AssemblyTrademark( "" )] +[assembly: AssemblyCulture( "" )] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible( false )] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid( "a0a568f9-1cc5-4ed3-b675-d15a2a986307" )] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion( "2.2.4.0" )] +[assembly: AssemblyFileVersion( "2.2.4.0" )] diff --git a/Sources/Fuzzy/Rule.cs b/Sources/Fuzzy/Rule.cs new file mode 100644 index 00000000..4b90a8a7 --- /dev/null +++ b/Sources/Fuzzy/Rule.cs @@ -0,0 +1,483 @@ +// AForge Fuzzy Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2011 +// contacts@aforgenet.com +// + +namespace AForge.Fuzzy +{ + using System; + using System.Collections.Generic; + + /// + /// This class represents a Fuzzy Rule, a linguistic expression representing some behavioral + /// aspect of a Fuzzy Inference System. + /// + /// + /// + /// A Fuzzy Rule is a fuzzy linguistic instruction that can be executed by a fuzzy system. + /// The format of the Fuzzy Rule is: + /// + /// + /// IF antecedent THEN consequent + /// + /// The antecedent is composed by a set of fuzzy clauses (see ) connected + /// by fuzzy operations, like AND or OR. The operator NOT can be used to negate expressions: + /// + /// ...Clause1 AND (Clause2 OR Clause3) AND NOT Clause4 ... + /// + /// Fuzzy clauses are written in form Variable IS Value. The NOT operator can be used to negate linguistic values as well:
+ /// ...Variable1 IS Value1 AND Variable2 IS NOT Value2 ...
+ /// + /// The consequent is a single of fuzzy clauses (). To perform the + /// linguistic computing, the evaluates the clauses and then applies the fuzzy + /// operators. Once this is done a value representing the confidence in the antecedent being + /// true is obtained, and this is called firing strength of the . + /// + /// The firing strength is used to discover with how much confidence the consequent + /// of a rule is true. + /// + /// Sample usage: + /// + /// // create the linguistic labels (fuzzy sets) that compose the temperature + /// TrapezoidalFunction function1 = new TrapezoidalFunction( + /// 10, 15, TrapezoidalFunction.EdgeType.Right ); + /// FuzzySet fsCold = new FuzzySet( "Cold", function1 ); + /// TrapezoidalFunction function2 = new TrapezoidalFunction( 10, 15, 20, 25 ); + /// FuzzySet fsCool = new FuzzySet( "Cool", function2 ); + /// TrapezoidalFunction function3 = new TrapezoidalFunction( 20, 25, 30, 35 ); + /// FuzzySet fsWarm = new FuzzySet( "Warm", function3 ); + /// TrapezoidalFunction function4 = new TrapezoidalFunction( + /// 30, 35, TrapezoidalFunction.EdgeType.Left ); + /// FuzzySet fsHot = new FuzzySet( "Hot", function4 ); + /// + /// // create a linguistic variable to represent steel temperature + /// LinguisticVariable lvSteel = new LinguisticVariable( "Steel", 0, 80 ); + /// // adding labels to the variable + /// lvSteel.AddLabel( fsCold ); + /// lvSteel.AddLabel( fsCool ); + /// lvSteel.AddLabel( fsWarm ); + /// lvSteel.AddLabel( fsHot ); + /// + /// // create a linguistic variable to represent stove temperature + /// LinguisticVariable lvStove = new LinguisticVariable( "Stove", 0, 80 ); + /// // adding labels to the variable + /// lvStove.AddLabel( fsCold ); + /// lvStove.AddLabel( fsCool ); + /// lvStove.AddLabel( fsWarm ); + /// lvStove.AddLabel( fsHot ); + /// + /// // create the linguistic labels (fuzzy sets) that compose the pressure + /// TrapezoidalFunction function5 = new TrapezoidalFunction( + /// 20, 40, TrapezoidalFunction.EdgeType.Right ); + /// FuzzySet fsLow = new FuzzySet( "Low", function5 ); + /// TrapezoidalFunction function6 = new TrapezoidalFunction( 20, 40, 60, 80 ); + /// FuzzySet fsMedium = new FuzzySet( "Medium", function6 ); + /// TrapezoidalFunction function7 = new TrapezoidalFunction( + /// 60, 80, TrapezoidalFunction.EdgeType.Left ); + /// FuzzySet fsHigh = new FuzzySet( "High", function7 ); + /// // create a linguistic variable to represent pressure + /// LinguisticVariable lvPressure = new LinguisticVariable( "Pressure", 0, 100 ); + /// // adding labels to the variable + /// lvPressure.AddLabel( fsLow ); + /// lvPressure.AddLabel( fsMedium ); + /// lvPressure.AddLabel( fsHigh ); + /// + /// // create a linguistic variable database + /// Database db = new Database( ); + /// db.AddVariable( lvSteel ); + /// db.AddVariable( lvStove ); + /// db.AddVariable( lvPressure ); + /// + /// // sample rules just to test the expression parsing + /// Rule r1 = new Rule( db, "Test1", "IF Steel is not Cold and Stove is Hot then Pressure is Low" ); + /// Rule r2 = new Rule( db, "Test2", "IF Steel is Cold and not (Stove is Warm or Stove is Hot) then Pressure is Medium" ); + /// Rule r3 = new Rule( db, "Test3", "IF Steel is Cold and Stove is Warm or Stove is Hot then Pressure is High" ); + /// + /// // testing the firing strength + /// lvSteel.NumericInput = 12; + /// lvStove.NumericInput = 35; + /// float result = r1.EvaluateFiringStrength( ); + /// Console.WriteLine( result.ToString( ) ); + /// + ///
+ /// + public class Rule + { + // name of the rule + private string name; + // the original expression + private string rule; + // the parsed RPN (reverse polish notation) expression + private List rpnTokenList; + // the consequento (output) of the rule + private Clause output; + // the database with the linguistic variables + private Database database; + // the norm operator + private INorm normOperator; + // the conorm operator + private ICoNorm conormOperator; + // the complement operator + private IUnaryOperator notOperator; + // the unary operators that the rule parser supports + private string unaryOperators = "NOT;VERY"; + + /// + /// The name of the fuzzy rule. + /// + /// + public string Name + { + get { return name; } + set { name = value; } + } + + /// + /// The fuzzy that represents the consequent of the . + /// + /// + public Clause Output + { + get { return output; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// A fuzzy containig the linguistic variables + /// (see ) that will be used in the Rule. + /// + /// Name of this . + /// + /// A string representing the . It must be a "IF..THEN" statement. + /// For a more detailed description see class. + /// + /// A class that implements a interface to + /// evaluate the AND operations of the Rule. + /// + /// A class that implements a interface + /// to evaluate the OR operations of the Rule. + /// + public Rule( Database fuzzyDatabase, string name, string rule, INorm normOperator, ICoNorm coNormOperator ) + { + // the list with the RPN expression + rpnTokenList = new List( ); + + // setting attributes + this.name = name; + this.rule = rule; + this.database = fuzzyDatabase; + this.normOperator = normOperator; + this.conormOperator = coNormOperator; + this.notOperator = new NotOperator( ); + + // parsing the rule to obtain RPN of the expression + ParseRule( ); + } + + /// + /// Initializes a new instance of the class using as + /// CoNorm the and as Norm the . + /// + /// + /// A fuzzy containig the linguistic variables + /// (see ) that will be used in the . + /// + /// Name of this . + /// + /// A string representing the . It must be a "IF..THEN" + /// statement. For a more detailed description see class. + /// + public Rule( Database fuzzyDatabase, string name, string rule ) : + this( fuzzyDatabase, name, rule, new MinimumNorm( ), new MaximumCoNorm( ) ) + { + } + + /// + /// Converts the RPN fuzzy expression into a string representation. + /// + /// + /// String representation of the RPN fuzzy expression. + /// + public string GetRPNExpression( ) + { + string result = ""; + foreach ( object o in rpnTokenList ) + { + // if its a fuzzy clause we can call clause's ToString() + if ( o.GetType( ) == typeof( Clause ) ) + { + Clause c = o as Clause; + result += c.ToString( ); + } + else + result += o.ToString( ); + result += ", "; + } + result += "#"; + result = result.Replace( ", #", "" ); + return result; + } + + /// + /// Defines the priority of the fuzzy operators. + /// + /// + /// A fuzzy operator or openning parenthesis. + /// + /// A number indicating the priority of the operator, and zero for openning + /// parenthesis. + /// + private int Priority( string Operator ) + { + // if its unary + if ( unaryOperators.IndexOf( Operator ) >= 0 ) + return 4; + + switch ( Operator ) + { + case "(": return 1; + case "OR": return 2; + case "AND": return 3; + } + return 0; + } + + /// + /// Converts the Fuzzy Rule to RPN (Reverse Polish Notation). For debug proposes, the string representation of the + /// RPN expression can be acessed by calling method. + /// + /// + private void ParseRule( ) + { + // flag to incicate we are on consequent state + bool consequent = false; + + // tokens like IF and THEN will be searched always in upper case + string upRule = rule.ToUpper( ); + + // the rule must start with IF, and must have a THEN somewhere + if ( !upRule.StartsWith( "IF" ) ) + throw new ArgumentException( "A Fuzzy Rule must start with an IF statement." ); + if ( upRule.IndexOf( "THEN" ) < 0 ) + throw new ArgumentException( "Missing the consequent (THEN) statement." ); + + // building a list with all the expression (rule) string tokens + string spacedRule = rule.Replace( "(", " ( " ).Replace( ")", " ) " ); + // getting the tokens list + string[] tokensList = GetRuleTokens( spacedRule ); + + // stack to convert to RPN + Stack s = new Stack( ); + // storing the last token + string lastToken = "IF"; + // linguistic var read, used to build clause + LinguisticVariable lingVar = null; + + // verifying each token + for ( int i = 0; i < tokensList.Length; i++ ) + { + // removing spaces + string token = tokensList[i].Trim( ); + // getting upper case + string upToken = token.ToUpper( ); + + // ignoring these tokens + if ( upToken == "" || upToken == "IF" ) continue; + + // if the THEN is found, the rule is now on consequent + if ( upToken == "THEN" ) + { + lastToken = upToken; + consequent = true; + continue; + } + + // if we got a linguistic variable, an IS statement and a label is needed + if ( lastToken == "VAR" ) + { + if ( upToken == "IS" ) + lastToken = upToken; + else + throw new ArgumentException( "An IS statement is expected after a linguistic variable." ); + } + // if we got an IS statement, a label must follow it + else if ( lastToken == "IS" ) + { + try + { + FuzzySet fs = lingVar.GetLabel( token ); + Clause c = new Clause( lingVar, fs ); + if ( consequent ) + output = c; + else + rpnTokenList.Add( c ); + lastToken = "LAB"; + } + catch ( KeyNotFoundException ) + { + throw new ArgumentException( "Linguistic label " + token + " was not found on the variable " + lingVar.Name + "." ); + } + } + // not VAR and not IS statement + else + { + // openning new scope + if ( upToken == "(" ) + { + // if we are on consequent, only variables can be found + if ( consequent ) + throw new ArgumentException( "Linguistic variable expected after a THEN statement." ); + // if its a (, just push it + s.Push( upToken ); + lastToken = upToken; + } + // operators + else if ( upToken == "AND" || upToken == "OR" || unaryOperators.IndexOf( upToken ) >= 0 ) + { + // if we are on consequent, only variables can be found + if ( consequent ) + throw new ArgumentException( "Linguistic variable expected after a THEN statement." ); + + // pop all the higher priority operators until the stack is empty + while ( ( s.Count > 0 ) && ( Priority( s.Peek( ) ) > Priority( upToken ) ) ) + rpnTokenList.Add( s.Pop( ) ); + + // pushing the operator + s.Push( upToken ); + lastToken = upToken; + } + // closing the scope + else if ( upToken == ")" ) + { + // if we are on consequent, only variables can be found + if ( consequent ) + throw new ArgumentException( "Linguistic variable expected after a THEN statement." ); + + // if there is nothing on the stack, an oppening parenthesis is missing. + if ( s.Count == 0 ) + throw new ArgumentException( "Openning parenthesis missing." ); + + // pop the tokens and copy to output until openning is found + while ( s.Peek( ) != "(" ) + { + rpnTokenList.Add( s.Pop( ) ); + if ( s.Count == 0 ) + throw new ArgumentException( "Openning parenthesis missing." ); + } + s.Pop( ); + + // saving last token... + lastToken = upToken; + } + // finally, the token is a variable + else + { + // find the variable + try + { + lingVar = database.GetVariable( token ); + lastToken = "VAR"; + } + catch ( KeyNotFoundException ) + { + throw new ArgumentException( "Linguistic variable " + token + " was not found on the database." ); + } + } + } + } + + // popping all operators left in stack + while ( s.Count > 0 ) + rpnTokenList.Add( s.Pop( ) ); + } + + /// + /// Performs a preprocessing on the rule, placing unary operators in proper position and breaking the string + /// space separated tokens. + /// + /// + /// Rule in string format. + /// + /// An array of strings with tokens of the rule. + /// + private string[] GetRuleTokens( string rule ) + { + // breaking in tokens + string[] tokens = rule.Split( ' ' ); + + // looking for unary operators + for ( int i = 0; i < tokens.Length; i++ ) + { + // if its unary and there is an "IS" token before, we must change positions + if ( ( unaryOperators.IndexOf( tokens[i].ToUpper( ) ) >= 0 ) && + ( i > 1 ) && ( tokens[i - 1].ToUpper( ) == "IS" ) ) + { + // placing VAR name + tokens[i - 1] = tokens[i - 2]; + tokens[i - 2] = tokens[i]; + tokens[i] = "IS"; + } + } + + return tokens; + } + + /// + /// Evaluates the firing strength of the Rule, the degree of confidence that the consequent of this Rule + /// must be executed. + /// + /// + /// The firing strength [0..1] of the Rule. + /// + public float EvaluateFiringStrength( ) + { + // Stack to store the operand values + Stack s = new Stack( ); + + // Logic to calculate the firing strength + foreach ( object o in rpnTokenList ) + { + // if its a clause, then its value must be calculated and pushed + if ( o.GetType( ) == typeof( Clause ) ) + { + Clause c = o as Clause; + s.Push( c.Evaluate( ) ); + } + // if its an operator (AND / OR) the operation is performed and the result + // returns to the stack + else + { + float y = s.Pop( ); + float x = 0; + + // unary pops only one value + if ( unaryOperators.IndexOf( o.ToString( ) ) < 0 ) + x = s.Pop( ); + + // operation + switch ( o.ToString( ) ) + { + case "AND": + s.Push( normOperator.Evaluate( x, y ) ); + break; + case "OR": + s.Push( conormOperator.Evaluate( x, y ) ); + break; + case "NOT": + s.Push( notOperator.Evaluate( y ) ); + break; + } + } + } + + // result on the top of stack + return s.Pop( ); + } + } +} + diff --git a/Sources/Fuzzy/Rulebase.cs b/Sources/Fuzzy/Rulebase.cs new file mode 100644 index 00000000..f9d9e3e7 --- /dev/null +++ b/Sources/Fuzzy/Rulebase.cs @@ -0,0 +1,96 @@ +// AForge Fuzzy Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2008-2009 +// andrew.kirillov@aforgenet.com +// +// Copyright © Fabio L. Caversan, 2008-2009 +// fabio.caversan@gmail.com +// + +namespace AForge.Fuzzy +{ + using System; + using System.Collections.Generic; + + /// + /// The class represents a fuzzy rulebase, a set of fuzzy rules used in a Fuzzy Inference System. + /// + /// + public class Rulebase + { + // the fuzzy rules repository + private Dictionary rules; + + /// + /// Initializes a new instance of the class. + /// + /// + public Rulebase( ) + { + // instance of the rules list + this.rules = new Dictionary( 20 ); + } + + /// + /// Adds a fuzzy rule to the database. + /// + /// + /// A fuzzy to add to the database. + /// + /// The fuzzy rule was not initialized. + /// The fuzzy rule name already exists in the rulebase. + /// + public void AddRule( Rule rule ) + { + // checking for existing name + if ( this.rules.ContainsKey( rule.Name ) ) + throw new ArgumentException( "The fuzzy rule name already exists in the rulebase." ); + + // adding rule + this.rules.Add( rule.Name, rule ); + } + + /// + /// Removes all the fuzzy rules of the database. + /// + /// + public void ClearRules( ) + { + this.rules.Clear( ); + } + + /// + /// Returns an existing fuzzy rule from the rulebase. + /// + /// + /// Name of the fuzzy to retrieve. + /// + /// Reference to named . + /// + /// The rule indicated in ruleName was not found in the rulebase. + /// + public Rule GetRule( string ruleName ) + { + return rules [ruleName]; + } + + /// + /// Gets all the rules of the rulebase. + /// + /// + /// An array with all the rulebase rules. + /// + public Rule[] GetRules( ) + { + Rule[] r = new Rule[rules.Count]; + + int i = 0; + foreach ( KeyValuePair kvp in rules ) + r[i++] = kvp.Value; + + return r; + } + } +} diff --git a/Sources/Genetic/AForge.Genetic.snk b/Sources/Genetic/AForge.Genetic.snk new file mode 100644 index 00000000..a28524b4 Binary files /dev/null and b/Sources/Genetic/AForge.Genetic.snk differ diff --git a/Sources/Genetic/Chromosomes/BinaryChromosome.cs b/Sources/Genetic/Chromosomes/BinaryChromosome.cs new file mode 100644 index 00000000..6f2f08e3 --- /dev/null +++ b/Sources/Genetic/Chromosomes/BinaryChromosome.cs @@ -0,0 +1,216 @@ +// AForge Genetic Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2006-2011 +// contacts@aforgenet.com +// + +namespace AForge.Genetic +{ + using System; + using AForge; + + /// + /// Binary chromosome, which supports length from 2 till 64. + /// + /// + /// The binary chromosome is the simplest type of chromosomes, + /// which is represented by a set of bits. Maximum number of bits comprising + /// the chromosome is 64. + /// + public class BinaryChromosome : ChromosomeBase + { + /// + /// Chromosome's length in bits. + /// + protected int length; + + /// + /// Numerical chromosome's value. + /// + protected ulong val = 0; + + /// + /// Random number generator for chromosoms generation, crossover, mutation, etc. + /// + protected static ThreadSafeRandom rand = new ThreadSafeRandom( ); + + /// + /// Chromosome's maximum length. + /// + /// + /// Maxim chromosome's length in bits, which is supported + /// by the class + /// + public const int MaxLength = 64; + + /// + /// Chromosome's length. + /// + /// + /// Length of the chromosome in bits. + /// + public int Length + { + get { return length; } + } + + /// + /// Chromosome's value. + /// + /// + /// Current numerical value of the chromosome. + /// + public ulong Value + { + get { return val & ( 0xFFFFFFFFFFFFFFFF >> ( 64 - length ) ); } + } + + /// + /// Max possible chromosome's value. + /// + /// + /// Maximum possible numerical value, which may be represented + /// by the chromosome of current length. + /// + public ulong MaxValue + { + get { return 0xFFFFFFFFFFFFFFFF >> ( 64 - length ); } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Chromosome's length in bits, [2, ]. + /// + public BinaryChromosome( int length ) + { + this.length = Math.Max( 2, Math.Min( MaxLength, length ) ); + // randomize the chromosome + Generate( ); + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Source chromosome to copy. + /// + /// This is a copy constructor, which creates the exact copy + /// of specified chromosome. + /// + protected BinaryChromosome( BinaryChromosome source ) + { + length = source.length; + val = source.val; + fitness = source.fitness; + } + + /// + /// Get string representation of the chromosome. + /// + /// + /// Returns string representation of the chromosome. + /// + public override string ToString( ) + { + ulong tval = val; + char[] chars = new char[length]; + + for ( int i = length - 1; i >= 0; i-- ) + { + chars[i] = (char) ( ( tval & 1 ) + '0' ); + tval >>= 1; + } + + // return the result string + return new string( chars ); + } + + /// + /// Generate random chromosome value. + /// + /// + /// Regenerates chromosome's value using random number generator. + /// + /// + public override void Generate( ) + { + byte[] bytes = new byte[8]; + + // generate value + rand.NextBytes( bytes ); + val = BitConverter.ToUInt64( bytes, 0 ); + } + + /// + /// Create new random chromosome with same parameters (factory method). + /// + /// + /// The method creates new chromosome of the same type, but randomly + /// initialized. The method is useful as factory method for those classes, which work + /// with chromosome's interface, but not with particular chromosome type. + /// + public override IChromosome CreateNew( ) + { + return new BinaryChromosome( length ); + } + + /// + /// Clone the chromosome. + /// + /// + /// Return's clone of the chromosome. + /// + /// The method clones the chromosome returning the exact copy of it. + /// + /// + public override IChromosome Clone( ) + { + return new BinaryChromosome( this ); + } + + /// + /// Mutation operator. + /// + /// + /// The method performs chromosome's mutation, changing randomly + /// one of its bits. + /// + public override void Mutate( ) + { + val ^= ( (ulong) 1 << rand.Next( length ) ); + } + + /// + /// Crossover operator. + /// + /// + /// Pair chromosome to crossover with. + /// + /// The method performs crossover between two chromosomes – interchanging + /// range of bits between these chromosomes. + /// + public override void Crossover( IChromosome pair ) + { + BinaryChromosome p = (BinaryChromosome) pair; + + // check for correct pair + if ( ( p != null ) && ( p.length == length ) ) + { + int crossOverPoint = 63 - rand.Next( length - 1 ); + ulong mask1 = 0xFFFFFFFFFFFFFFFF >> crossOverPoint; + ulong mask2 = ~mask1; + + ulong v1 = val; + ulong v2 = p.val; + + // calculate new values + val = ( v1 & mask1 ) | ( v2 & mask2 ); + p.val = ( v2 & mask1 ) | ( v1 & mask2 ); + } + } + } +} diff --git a/Sources/Genetic/Chromosomes/ChromosomeBase.cs b/Sources/Genetic/Chromosomes/ChromosomeBase.cs new file mode 100644 index 00000000..97fe1fb6 --- /dev/null +++ b/Sources/Genetic/Chromosomes/ChromosomeBase.cs @@ -0,0 +1,116 @@ +// AForge Genetic Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2006-2009 +// andrew.kirillov@aforgenet.com +// + +namespace AForge.Genetic +{ + using System; + + /// + /// Chromosomes' base class. + /// + /// + /// The base class provides implementation of some + /// methods and properties, which are identical to all types of chromosomes. + /// + public abstract class ChromosomeBase : IChromosome + { + /// + /// Chromosome's fintess value. + /// + protected double fitness = 0; + + /// + /// Chromosome's fintess value. + /// + /// + /// Fitness value (usefulness) of the chromosome calculate by calling + /// method. The greater the value, the more useful the chromosome. + /// + /// + public double Fitness + { + get { return fitness; } + } + + /// + /// Generate random chromosome value. + /// + /// + /// Regenerates chromosome's value using random number generator. + /// + /// + public abstract void Generate( ); + + /// + /// Create new random chromosome with same parameters (factory method). + /// + /// + /// The method creates new chromosome of the same type, but randomly + /// initialized. The method is useful as factory method for those classes, which work + /// with chromosome's interface, but not with particular chromosome class. + /// + public abstract IChromosome CreateNew( ); + + /// + /// Clone the chromosome. + /// + /// + /// The method clones the chromosome returning the exact copy of it. + /// + /// + public abstract IChromosome Clone( ); + + /// + /// Mutation operator. + /// + /// + /// The method performs chromosome's mutation, changing its part randomly. + /// + public abstract void Mutate( ); + + /// + /// Crossover operator. + /// + /// + /// Pair chromosome to crossover with. + /// + /// The method performs crossover between two chromosomes – interchanging some parts of chromosomes. + /// + public abstract void Crossover( IChromosome pair ); + + /// + /// Evaluate chromosome with specified fitness function. + /// + /// + /// Fitness function to use for evaluation of the chromosome. + /// + /// Calculates chromosome's fitness using the specifed fitness function. + /// + public void Evaluate( IFitnessFunction function ) + { + fitness = function.Evaluate( this ); + } + + /// + /// Compare two chromosomes. + /// + /// + /// Binary chromosome to compare to. + /// + /// Returns comparison result, which equals to 0 if fitness values + /// of both chromosomes are equal, 1 if fitness value of this chromosome + /// is less than fitness value of the specified chromosome, -1 otherwise. + /// + public int CompareTo( object o ) + { + double f = ( (ChromosomeBase) o ).fitness; + + return ( fitness == f ) ? 0 : ( fitness < f ) ? 1 : -1; + } + } +} diff --git a/Sources/Genetic/Chromosomes/DoubleArrayChromosome.cs b/Sources/Genetic/Chromosomes/DoubleArrayChromosome.cs new file mode 100644 index 00000000..660ed483 --- /dev/null +++ b/Sources/Genetic/Chromosomes/DoubleArrayChromosome.cs @@ -0,0 +1,417 @@ +// AForge Genetic Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2006-2011 +// contacts@aforgenet.com +// + +namespace AForge.Genetic +{ + using System; + using System.Text; + using AForge; + using AForge.Math.Random; + + /// + /// Double array chromosome. + /// + /// + /// Double array chromosome represents array of double values. + /// Array length is in the range of [2, 65536]. + /// + /// + /// See documentation to and methods + /// for information regarding implemented mutation and crossover operators. + /// + /// + public class DoubleArrayChromosome : ChromosomeBase + { + /// + /// Chromosome generator. + /// + /// + /// This random number generator is used to initialize chromosome's genes, + /// which is done by calling method. + /// + protected IRandomNumberGenerator chromosomeGenerator; + + /// + /// Mutation multiplier generator. + /// + /// + /// This random number generator is used to generate random multiplier values, + /// which are used to multiply chromosome's genes during mutation. + /// + protected IRandomNumberGenerator mutationMultiplierGenerator; + + /// + /// Mutation addition generator. + /// + /// + /// This random number generator is used to generate random addition values, + /// which are used to add to chromosome's genes during mutation. + /// + protected IRandomNumberGenerator mutationAdditionGenerator; + + /// + /// Random number generator for crossover and mutation points selection. + /// + /// + /// This random number generator is used to select crossover + /// and mutation points. + /// + protected static ThreadSafeRandom rand = new ThreadSafeRandom( ); + + /// + /// Chromosome's maximum length. + /// + /// + /// Maxim chromosome's length in array elements. + /// + public const int MaxLength = 65536; + + /// + /// Chromosome's length in number of elements. + /// + private int length; + + /// + /// Chromosome's value. + /// + protected double[] val = null; + + // balancers to control type of mutation and crossover + private double mutationBalancer = 0.5; + private double crossoverBalancer = 0.5; + + /// + /// Chromosome's length. + /// + /// + /// Length of the chromosome in array elements. + /// + public int Length + { + get { return length; } + } + + /// + /// Chromosome's value. + /// + /// + /// Current value of the chromosome. + /// + public double[] Value + { + get { return val; } + } + + /// + /// Mutation balancer to control mutation type, [0, 1]. + /// + /// + /// The property controls type of mutation, which is used more + /// frequently. A radnom number is generated each time before doing mutation - + /// if the random number is smaller than the specified balance value, then one + /// mutation type is used, otherwse another. See method + /// for more information. + /// + /// Default value is set to 0.5. + /// + /// + public double MutationBalancer + { + get { return mutationBalancer; } + set { mutationBalancer = Math.Max( 0.0, Math.Min( 1.0, value ) ); } + } + + /// + /// Crossover balancer to control crossover type, [0, 1]. + /// + /// + /// The property controls type of crossover, which is used more + /// frequently. A radnom number is generated each time before doing crossover - + /// if the random number is smaller than the specified balance value, then one + /// crossover type is used, otherwse another. See method + /// for more information. + /// + /// Default value is set to 0.5. + /// + /// + public double CrossoverBalancer + { + get { return crossoverBalancer; } + set { crossoverBalancer = Math.Max( 0.0, Math.Min( 1.0, value ) ); } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Chromosome generator - random number generator, which is + /// used to initialize chromosome's genes, which is done by calling method + /// or in class constructor. + /// Mutation multiplier generator - random number + /// generator, which is used to generate random multiplier values, which are used to + /// multiply chromosome's genes during mutation. + /// Mutation addition generator - random number + /// generator, which is used to generate random addition values, which are used to + /// add to chromosome's genes during mutation. + /// Chromosome's length in array elements, [2, ]. + /// + /// The constructor initializes the new chromosome randomly by calling + /// method. + /// + public DoubleArrayChromosome( + IRandomNumberGenerator chromosomeGenerator, + IRandomNumberGenerator mutationMultiplierGenerator, + IRandomNumberGenerator mutationAdditionGenerator, + int length ) + { + + // save parameters + this.chromosomeGenerator = chromosomeGenerator; + this.mutationMultiplierGenerator = mutationMultiplierGenerator; + this.mutationAdditionGenerator = mutationAdditionGenerator; + this.length = Math.Max( 2, Math.Min( MaxLength, length ) ); ; + + // allocate array + val = new double[length]; + + // generate random chromosome + Generate( ); + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Chromosome generator - random number generator, which is + /// used to initialize chromosome's genes, which is done by calling method + /// or in class constructor. + /// Mutation multiplier generator - random number + /// generator, which is used to generate random multiplier values, which are used to + /// multiply chromosome's genes during mutation. + /// Mutation addition generator - random number + /// generator, which is used to generate random addition values, which are used to + /// add to chromosome's genes during mutation. + /// Values used to initialize the chromosome. + /// + /// The constructor initializes the new chromosome with specified values. + /// + /// + /// Invalid length of values array. + /// + public DoubleArrayChromosome( + IRandomNumberGenerator chromosomeGenerator, + IRandomNumberGenerator mutationMultiplierGenerator, + IRandomNumberGenerator mutationAdditionGenerator, + double[] values ) + { + if ( ( values.Length < 2 ) || ( values.Length > MaxLength ) ) + throw new ArgumentOutOfRangeException( "Invalid length of values array." ); + + // save parameters + this.chromosomeGenerator = chromosomeGenerator; + this.mutationMultiplierGenerator = mutationMultiplierGenerator; + this.mutationAdditionGenerator = mutationAdditionGenerator; + this.length = values.Length; + + // copy specified values + val = (double[]) values.Clone( ); + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Source chromosome to copy. + /// + /// This is a copy constructor, which creates the exact copy + /// of specified chromosome. + /// + public DoubleArrayChromosome( DoubleArrayChromosome source ) + { + this.chromosomeGenerator = source.chromosomeGenerator; + this.mutationMultiplierGenerator = source.mutationMultiplierGenerator; + this.mutationAdditionGenerator = source.mutationAdditionGenerator; + this.length = source.length; + this.fitness = source.fitness; + this.mutationBalancer = source.mutationBalancer; + this.crossoverBalancer = source.crossoverBalancer; + + // copy genes + val = (double[]) source.val.Clone( ); + } + + /// + /// Get string representation of the chromosome. + /// + /// + /// Returns string representation of the chromosome. + /// + public override string ToString( ) + { + StringBuilder sb = new StringBuilder( ); + + // append first gene + sb.Append( val[0] ); + // append all other genes + for ( int i = 1; i < length; i++ ) + { + sb.Append( ' ' ); + sb.Append( val[i] ); + } + + return sb.ToString( ); + } + + /// + /// Generate random chromosome value. + /// + /// + /// Regenerates chromosome's value using random number generator. + /// + /// + public override void Generate( ) + { + for ( int i = 0; i < length; i++ ) + { + // generate next value + val[i] = chromosomeGenerator.Next( ); + } + } + + /// + /// Create new random chromosome with same parameters (factory method). + /// + /// + /// The method creates new chromosome of the same type, but randomly + /// initialized. The method is useful as factory method for those classes, which work + /// with chromosome's interface, but not with particular chromosome type. + /// + public override IChromosome CreateNew( ) + { + return new DoubleArrayChromosome( chromosomeGenerator, mutationMultiplierGenerator, mutationAdditionGenerator, length ); + } + + /// + /// Clone the chromosome. + /// + /// + /// Return's clone of the chromosome. + /// + /// The method clones the chromosome returning the exact copy of it. + /// + /// + public override IChromosome Clone( ) + { + return new DoubleArrayChromosome( this ); + } + + /// + /// Mutation operator. + /// + /// + /// The method performs chromosome's mutation, adding random number + /// to chromosome's gene or multiplying the gene by random number. These random + /// numbers are generated with help of mutation + /// multiplier and mutation + /// addition generators. + /// + /// The exact type of mutation applied to the particular gene + /// is selected randomly each time and depends on . + /// Before mutation is done a random number is generated in [0, 1] range - if the + /// random number is smaller than , then multiplication + /// mutation is done, otherwise addition mutation. + /// + /// + public override void Mutate( ) + { + int mutationGene = rand.Next( length ); + + if ( rand.NextDouble( ) < mutationBalancer ) + { + val[mutationGene] *= mutationMultiplierGenerator.Next( ); + } + else + { + val[mutationGene] += mutationAdditionGenerator.Next( ); + } + } + + /// + /// Crossover operator. + /// + /// + /// Pair chromosome to crossover with. + /// + /// The method performs crossover between two chromosomes, selecting + /// randomly the exact type of crossover to perform, which depends on . + /// Before crossover is done a random number is generated in [0, 1] range - if the + /// random number is smaller than , then the first crossover + /// type is used, otherwise second type is used. + /// + /// The first crossover type is based on interchanging + /// range of genes (array elements) between these chromosomes and is known + /// as one point crossover. A crossover point is selected randomly and chromosomes + /// interchange genes, which start from the selected point. + /// + /// The second crossover type is aimed to produce one child, which genes' + /// values are between corresponding genes of parents, and another child, which genes' + /// values are outside of the range formed by corresponding genes of parents. + /// Let take, for example, two genes with 1.0 and 3.0 valueû (of course chromosomes have + /// more genes, but for simplicity lets think about one). First of all we randomly choose + /// a factor in the [0, 1] range, let's take 0.4. Then, for each pair of genes (we have + /// one pair) we calculate difference value, which is 2.0 in our case. In the result we’ll + /// have two children – one between and one outside of the range formed by parents genes' values. + /// We may have 1.8 and 3.8 children, or we may have 0.2 and 2.2 children. As we can see + /// we add/subtract (chosen randomly) difference * factor. So, this gives us exploration + /// in between and in near outside. The randomly chosen factor is applied to all genes + /// of the chromosomes participating in crossover. + /// + /// + public override void Crossover( IChromosome pair ) + { + DoubleArrayChromosome p = (DoubleArrayChromosome) pair; + + // check for correct pair + if ( ( p != null ) && ( p.length == length ) ) + { + if ( rand.NextDouble( ) < crossoverBalancer ) + { + // crossover point + int crossOverPoint = rand.Next( length - 1 ) + 1; + // length of chromosome to be crossed + int crossOverLength = length - crossOverPoint; + // temporary array + double[] temp = new double[crossOverLength]; + + // copy part of first (this) chromosome to temp + Array.Copy( val, crossOverPoint, temp, 0, crossOverLength ); + // copy part of second (pair) chromosome to the first + Array.Copy( p.val, crossOverPoint, val, crossOverPoint, crossOverLength ); + // copy temp to the second + Array.Copy( temp, 0, p.val, crossOverPoint, crossOverLength ); + } + else + { + double[] pairVal = p.val; + + double factor = rand.NextDouble( ); + if ( rand.Next( 2 ) == 0 ) + factor = -factor; + + for ( int i = 0; i < length; i++ ) + { + double portion = ( val[i] - pairVal[i] ) * factor; + + val[i] -= portion; + pairVal[i] += portion; + } + } + } + } + } +} diff --git a/Sources/Genetic/Chromosomes/GP/ExtendedGeneFunction.cs b/Sources/Genetic/Chromosomes/GP/ExtendedGeneFunction.cs new file mode 100644 index 00000000..e0ab4541 --- /dev/null +++ b/Sources/Genetic/Chromosomes/GP/ExtendedGeneFunction.cs @@ -0,0 +1,290 @@ +// AForge Genetic Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2006-2011 +// contacts@aforgenet.com +// + +namespace AForge.Genetic +{ + using System; + using AForge; + + /// + /// Genetic programming gene, which represents arithmetic functions, common mathematical functions + /// and arguments. + /// + /// + /// Extended gene function may represent arithmetic functions (+, -, *, /), + /// some common mathematical functions (sin, cos, ln, exp, sqrt) or an argument to functions. + /// This class is used by Genetic Programming (or Gene Expression Programming) + /// chromosomes to build arbitrary expressions with help of genetic operators. + /// + /// + public class ExtendedGeneFunction : IGPGene + { + /// + /// Enumeration of supported functions. + /// + protected enum Functions + { + /// + /// Addition operator. + /// + Add, + /// + /// Suntraction operator. + /// + Subtract, + /// + /// Multiplication operator. + /// + Multiply, + /// + /// Division operator. + /// + Divide, + /// + /// Sine function. + /// + Sin, + /// + /// Cosine function. + /// + Cos, + /// + /// Natural logarithm function. + /// + Ln, + /// + /// Exponent function. + /// + Exp, + /// + /// Square root function. + /// + Sqrt + } + + /// + /// Number of different functions supported by the class. + /// + protected const int FunctionsCount = 9; + + // gene type + private GPGeneType type; + // total amount of variables in the task which is supposed to be solved + private int variablesCount; + // + private int val; + // arguments count + private int argumentsCount = 0; + + /// + /// Random number generator for chromosoms generation. + /// + protected static ThreadSafeRandom rand = new ThreadSafeRandom( ); + + /// + /// Gene type. + /// + /// + /// The property represents type of a gene - function, argument, etc. + /// + /// + public GPGeneType GeneType + { + get { return type; } + } + + /// + /// Arguments count. + /// + /// + /// Arguments count of a particular function gene. + /// + public int ArgumentsCount + { + get { return argumentsCount; } + } + + /// + /// Maximum arguments count. + /// + /// + /// Maximum arguments count of a function gene supported by the class. + /// The property may be used by chromosomes' classes to allocate correctly memory for + /// functions' arguments, for example. + /// + public int MaxArgumentsCount + { + get { return 2; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Total amount of variables in the task which is supposed + /// to be solved. + /// + /// The constructor creates randomly initialized gene with random type + /// and value by calling method. + /// + public ExtendedGeneFunction( int variablesCount ) : this( variablesCount, true ) { } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Total amount of variables in the task which is supposed + /// to be solved. + /// Gene type to set. + /// + /// The constructor creates randomly initialized gene with random + /// value and preset gene type. + /// + public ExtendedGeneFunction( int variablesCount, GPGeneType type ) + { + this.variablesCount = variablesCount; + // generate the gene value + Generate( type ); + } + + // Private constructor + private ExtendedGeneFunction( int variablesCount, bool random ) + { + this.variablesCount = variablesCount; + // generate the gene value + if ( random ) + Generate( ); + } + + /// + /// Get string representation of the gene. + /// + /// + /// Returns string representation of the gene. + /// + public override string ToString( ) + { + if ( type == GPGeneType.Function ) + { + // get function string representation + switch ( (Functions) val ) + { + case Functions.Add: // addition + return "+"; + + case Functions.Subtract: // subtraction + return "-"; + + case Functions.Multiply: // multiplication + return "*"; + + case Functions.Divide: // division + return "/"; + + case Functions.Sin: // sine + return "sin"; + + case Functions.Cos: // cosine + return "cos"; + + case Functions.Ln: // natural logarithm + return "ln"; + + case Functions.Exp: // exponent + return "exp"; + + case Functions.Sqrt: // square root + return "sqrt"; + } + } + + // get argument string representation + return string.Format( "${0}", val ); + } + + /// + /// Clone the gene. + /// + /// + /// The method clones the chromosome returning the exact copy of it. + /// + public IGPGene Clone( ) + { + // create new gene ... + ExtendedGeneFunction clone = new ExtendedGeneFunction( variablesCount, false ); + // ... with the same type and value + clone.type = type; + clone.val = val; + clone.argumentsCount = argumentsCount; + + return clone; + } + + /// + /// Randomize gene with random type and value. + /// + /// + /// The method randomizes the gene, setting its type and value randomly. + /// + public void Generate( ) + { + // give more chance to function + Generate( ( rand.Next( 4 ) == 3 ) ? GPGeneType.Argument : GPGeneType.Function ); + } + + /// + /// Randomize gene with random value. + /// + /// + /// Gene type to set. + /// + /// The method randomizes a gene, setting its value randomly, but type + /// is set to the specified one. + /// + public void Generate( GPGeneType type ) + { + // gene type + this.type = type; + // gene value + val = rand.Next( ( type == GPGeneType.Function ) ? FunctionsCount : variablesCount ); + // arguments count + argumentsCount = ( type == GPGeneType.Argument ) ? 0 : + ( val <= (int) Functions.Divide ) ? 2 : 1; + } + + /// + /// Creates new gene with random type and value. + /// + /// + /// The method creates new randomly initialized gene . + /// The method is useful as factory method for those classes, which work with gene's interface, + /// but not with particular gene class. + /// + /// + public IGPGene CreateNew( ) + { + return new ExtendedGeneFunction( variablesCount ); + } + + /// + /// Creates new gene with certain type and random value. + /// + /// + /// Gene type to create. + /// + /// The method creates new gene with specified type, but random value. + /// The method is useful as factory method for those classes, which work with gene's interface, + /// but not with particular gene class. + /// + /// + public IGPGene CreateNew( GPGeneType type ) + { + return new ExtendedGeneFunction( variablesCount, type ); + } + } +} diff --git a/Sources/Genetic/Chromosomes/GP/GEPChromosome.cs b/Sources/Genetic/Chromosomes/GP/GEPChromosome.cs new file mode 100644 index 00000000..86c6fe50 --- /dev/null +++ b/Sources/Genetic/Chromosomes/GP/GEPChromosome.cs @@ -0,0 +1,497 @@ +// AForge Genetic Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2006-2011 +// contacts@aforgenet.com +// + +namespace AForge.Genetic +{ + using System; + using System.Collections; + using System.Collections.Generic; + using System.Text; + using AForge; + + /// + /// The chromosome represents a Gene Expression, which is used for + /// different tasks of Genetic Expression Programming (GEP). + /// + /// + /// This type of chromosome represents combination of ideas taken from + /// Genetic Algorithms (GA), where chromosomes are linear structures of fixed length, and + /// Genetic Programming (GP), where chromosomes are expression trees. The GEP chromosome + /// is also a fixed length linear structure, but with some additional features which + /// make it possible to generate valid expression tree from any GEP chromosome. + /// + /// The theory of Gene Expression Programming is well described in the next paper: + /// Ferreira, C., 2001. Gene Expression Programming: A New Adaptive Algorithm for Solving + /// Problems. Complex Systems, Vol. 13, issue 2: 87-129. A copy of the paper may be + /// obtained on the + /// gene expression programming web site. + /// + /// + public class GEPChromosome : ChromosomeBase + { + /// + /// Length of GEP chromosome's head. + /// + /// + /// GEP chromosome's head is a part of chromosome, which may contain both + /// functions' and arguments' nodes. The rest of chromosome (tail) may contain only arguments' nodes. + /// + /// + protected int headLength; + + /// + /// GEP chromosome's length. + /// + /// + /// The variable keeps chromosome's length, but not expression length represented by the + /// chromosome. + /// + protected int length; + + /// + /// Array of chromosome's genes. + /// + protected IGPGene[] genes; + + /// + /// Random generator used for chromosoms' generation. + /// + protected static ThreadSafeRandom rand = new ThreadSafeRandom( ); + + /// + /// Initializes a new instance of the class. + /// + /// + /// A gene, which is used as generator for the genetic tree. + /// Length of GEP chromosome's head (see ). + /// + /// This constructor creates a randomly generated GEP chromosome, + /// which has all genes of the same type and properties as the specified . + /// + /// + public GEPChromosome( IGPGene ancestor, int headLength ) + { + // store head length + this.headLength = headLength; + // calculate chromosome's length + length = headLength + headLength * ( ancestor.MaxArgumentsCount - 1 ) + 1; + // allocate genes array + genes = new IGPGene[length]; + // save ancestor as a temporary head + genes[0] = ancestor; + // generate the chromosome + Generate( ); + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Source GEP chromosome to clone from. + /// + protected GEPChromosome( GEPChromosome source ) + { + headLength = source.headLength; + length = source.length; + fitness = source.fitness; + // allocate genes array + genes = new IGPGene[length]; + // copy genes + for ( int i = 0; i < length; i++ ) + genes[i] = source.genes[i].Clone( ); + } + + /// + /// Get string representation of the chromosome by providing its expression in + /// reverse polish notation (postfix notation). + /// + /// + /// Returns string representation of the expression represented by the GEP + /// chromosome. + /// + public override string ToString( ) + { + // return string representation of the chromosomes tree + return GetTree( ).ToString( ); + } + + /// + /// Get string representation of the chromosome. + /// + /// + /// Returns the chromosome in native linear representation. + /// + /// The method is used for debugging mostly. + /// + public string ToStringNative( ) + { + StringBuilder sb = new StringBuilder( ); + + foreach ( IGPGene gene in genes ) + { + sb.Append( gene.ToString( ) ); + sb.Append( " " ); + } + return sb.ToString( ); + } + + /// + /// Generate random chromosome value. + /// + /// + /// Regenerates chromosome's value using random number generator. + /// + /// + public override void Generate( ) + { + // randomize the root + genes[0].Generate( ); + // generate the rest of the head + for ( int i = 1; i < headLength; i++ ) + { + genes[i] = genes[0].CreateNew( ); + } + // generate the tail + for ( int i = headLength; i < length; i++ ) + { + genes[i] = genes[0].CreateNew( GPGeneType.Argument ); + } + } + + /// + /// Get tree representation of the chromosome. + /// + /// + /// Returns expression's tree represented by the chromosome. + /// + /// The method builds expression's tree for the native linear representation + /// of the GEP chromosome. + /// + protected GPTreeNode GetTree( ) + { + // function node queue. the queue contains function node, + // which requires children. when a function node receives + // all children, it will be removed from the queue + Queue functionNodes = new Queue( ); + + // create root node + GPTreeNode root = new GPTreeNode( genes[0] ); + + // check children amount of the root node + if ( root.Gene.ArgumentsCount != 0 ) + { + root.Children = new List( ); + // place the root to the queue + functionNodes.Enqueue( root ); + + // go through genes + for ( int i = 1; i < length; i++ ) + { + // create new node + GPTreeNode node = new GPTreeNode( genes[i] ); + + // if next gene represents function, place it to the queue + if ( genes[i].GeneType == GPGeneType.Function ) + { + node.Children = new List( ); + functionNodes.Enqueue( node ); + } + + // get function node from the top of the queue + GPTreeNode parent = (GPTreeNode) functionNodes.Peek( ); + + // add new node to children of the parent node + parent.Children.Add( node ); + + // remove the parent node from the queue, if it is + // already complete + if ( parent.Children.Count == parent.Gene.ArgumentsCount ) + { + functionNodes.Dequeue( ); + + // check the queue if it is empty + if ( functionNodes.Count == 0 ) + break; + } + } + } + // return formed tree + return root; + } + + /// + /// Create new random chromosome with same parameters (factory method). + /// + /// + /// The method creates new chromosome of the same type, but randomly + /// initialized. The method is useful as factory method for those classes, which work + /// with chromosome's interface, but not with particular chromosome type. + /// + public override IChromosome CreateNew( ) + { + return new GEPChromosome( genes[0].Clone( ), headLength ); + } + + /// + /// Clone the chromosome. + /// + /// + /// Return's clone of the chromosome. + /// + /// The method clones the chromosome returning the exact copy of it. + /// + /// + public override IChromosome Clone( ) + { + return new GEPChromosome( this ); + } + + /// + /// Mutation operator. + /// + /// + /// The method performs chromosome's mutation by calling on of the methods + /// randomly: , , . + /// + /// + public override void Mutate( ) + { + // randomly choose mutation method + switch ( rand.Next( 3 ) ) + { + case 0: // ordinary gene mutation + MutateGene( ); + break; + + case 1: // IS transposition + TransposeIS( ); + break; + + case 2: // root transposition + TransposeRoot( ); + break; + } + } + + /// + /// Usual gene mutation. + /// + /// + /// The method performs usual gene mutation by randomly changing randomly selected + /// gene. + /// + protected void MutateGene( ) + { + // select random point of mutation + int mutationPoint = rand.Next( length ); + + if ( mutationPoint < headLength ) + { + // genes from head can be randomized freely (type may change) + genes[mutationPoint].Generate( ); + } + else + { + // genes from tail cannot change their type - they + // should be always arguments + genes[mutationPoint].Generate( GPGeneType.Argument ); + } + } + + /// + /// Transposition of IS elements (insertion sequence). + /// + /// + /// The method performs transposition of IS elements by copying randomly selected region + /// of genes into chromosome's head (into randomly selected position). First gene of the chromosome's head + /// is not affected - can not be selected as target point. + /// + protected void TransposeIS( ) + { + // select source point (may be any point of the chromosome) + int sourcePoint = rand.Next( length ); + // calculate maxim source length + int maxSourceLength = length - sourcePoint; + // select tartget insertion point in the head (except first position) + int targetPoint = rand.Next( headLength - 1 ) + 1; + // calculate maximum target length + int maxTargetLength = headLength - targetPoint; + // select randomly transposon length + int transposonLength = rand.Next( Math.Min( maxTargetLength, maxSourceLength ) ) + 1; + // genes copy + IGPGene[] genesCopy = new IGPGene[transposonLength]; + + // copy genes from source point + for ( int i = sourcePoint, j = 0; j < transposonLength; i++, j++ ) + { + genesCopy[j] = genes[i].Clone( ); + } + + // copy genes to target point + for ( int i = targetPoint, j = 0; j < transposonLength; i++, j++ ) + { + genes[i] = genesCopy[j]; + } + } + + /// + /// Root transposition. + /// + /// + /// The method performs root transposition of the GEP chromosome - inserting + /// new root of the chromosome and shifting existing one. The method first of all randomly selects + /// a function gene in chromosome's head - starting point of the sequence to put into chromosome's + /// head. Then it randomly selects the length of the sequence making sure that the entire sequence is + /// located within head. Once the starting point and the length of the sequence are known, it is copied + /// into chromosome's head shifting existing elements in the head. + /// + /// + protected void TransposeRoot( ) + { + // select source point (may be any point in the head of the chromosome) + int sourcePoint = rand.Next( headLength ); + // scan downsrteam the head searching for function gene + while ( ( genes[sourcePoint].GeneType != GPGeneType.Function ) && ( sourcePoint < headLength ) ) + { + sourcePoint++; + } + // return (do nothing) if function gene was not found + if ( sourcePoint == headLength ) + return; + + // calculate maxim source length + int maxSourceLength = headLength - sourcePoint; + // select randomly transposon length + int transposonLength = rand.Next( maxSourceLength ) + 1; + // genes copy + IGPGene[] genesCopy = new IGPGene[transposonLength]; + + // copy genes from source point + for ( int i = sourcePoint, j = 0; j < transposonLength; i++, j++ ) + { + genesCopy[j] = genes[i].Clone( ); + } + + // shift the head + for ( int i = headLength - 1; i >= transposonLength; i-- ) + { + genes[i] = genes[i - transposonLength]; + } + + // put new root + for ( int i = 0; i < transposonLength; i++ ) + { + genes[i] = genesCopy[i]; + } + } + + /// + /// Crossover operator. + /// + /// + /// Pair chromosome to crossover with. + /// + /// The method performs one-point or two-point crossover selecting + /// them randomly with equal probability. + /// + public override void Crossover( IChromosome pair ) + { + GEPChromosome p = (GEPChromosome) pair; + + // check for correct chromosome + if ( p != null ) + { + // choose recombination method + if ( rand.Next( 2 ) == 0 ) + { + RecombinationOnePoint( p ); + } + else + { + RecombinationTwoPoint( p ); + } + } + } + + /// + /// One-point recombination (crossover). + /// + /// + /// Pair chromosome to crossover with. + /// + public void RecombinationOnePoint( GEPChromosome pair ) + { + // check for correct pair + if ( ( pair.length == length ) ) + { + // crossover point + int crossOverPoint = rand.Next( length - 1 ) + 1; + // length of chromosome to be crossed + int crossOverLength = length - crossOverPoint; + + // swap parts of chromosomes + Recombine( genes, pair.genes, crossOverPoint, crossOverLength ); + } + } + + /// + /// Two point recombination (crossover). + /// + /// + /// Pair chromosome to crossover with. + /// + public void RecombinationTwoPoint( GEPChromosome pair ) + { + // check for correct pair + if ( ( pair.length == length ) ) + { + // crossover point + int crossOverPoint = rand.Next( length - 1 ) + 1; + // length of chromosome to be crossed + int crossOverLength = length - crossOverPoint; + + // if crossover length already equals to 1, then it becomes + // usual one point crossover. otherwise crossover length + // also randomly chosen + if ( crossOverLength != 1 ) + { + crossOverLength = rand.Next( crossOverLength - 1 ) + 1; + } + + // swap parts of chromosomes + Recombine( genes, pair.genes, crossOverPoint, crossOverLength ); + } + } + + /// + /// Swap parts of two chromosomes. + /// + /// + /// First chromosome participating in genes' interchange. + /// Second chromosome participating in genes' interchange. + /// Index of the first gene in the interchange sequence. + /// Length of the interchange sequence - number of genes + /// to interchange. + /// + /// The method performs interchanging of genes between two chromosomes + /// starting from the position. + /// + protected static void Recombine( IGPGene[] src1, IGPGene[] src2, int point, int length ) + { + // temporary array + IGPGene[] temp = new IGPGene[length]; + + // copy part of first chromosome to temp + Array.Copy( src1, point, temp, 0, length ); + // copy part of second chromosome to the first + Array.Copy( src2, point, src1, point, length ); + // copy temp to the second + Array.Copy( temp, 0, src2, point, length ); + } + } +} diff --git a/Sources/Genetic/Chromosomes/GP/GPTreeChromosome.cs b/Sources/Genetic/Chromosomes/GP/GPTreeChromosome.cs new file mode 100644 index 00000000..62ec74d2 --- /dev/null +++ b/Sources/Genetic/Chromosomes/GP/GPTreeChromosome.cs @@ -0,0 +1,423 @@ +// AForge Genetic Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2006-2011 +// contacts@aforgenet.com +// + +namespace AForge.Genetic +{ + using System; + using System.Collections; + using System.Collections.Generic; + using AForge; + + /// + /// Tree chromosome represents a tree of genes, which is is used for + /// different tasks of Genetic Programming (GP). + /// + /// + /// This type of chromosome represents a tree, where each node + /// is represented by containing . + /// Depending on type of genes used to build the tree, it may represent different + /// types of expressions aimed to solve different type of tasks. For example, a + /// particular implementation of interface may represent + /// simple algebraic operations and their arguments. + /// + /// + /// See documentation to implementations for additional + /// information about possible Genetic Programming trees. + /// + /// + public class GPTreeChromosome : ChromosomeBase + { + // tree root + private GPTreeNode root = new GPTreeNode( ); + + // maximum initial level of the tree + private static int maxInitialLevel = 3; + // maximum level of the tree + private static int maxLevel = 5; + + /// + /// Random generator used for chromosoms' generation. + /// + protected static ThreadSafeRandom rand = new ThreadSafeRandom( ); + + /// + /// Maximum initial level of genetic trees, [1, 25]. + /// + /// + /// The property sets maximum possible initial depth of new + /// genetic programming tree. For example, if it is set to 1, then largest initial + /// tree may have a root and one level of children. + /// + /// Default value is set to 3. + /// + /// + public static int MaxInitialLevel + { + get { return maxInitialLevel; } + set { maxInitialLevel = Math.Max( 1, Math.Min( 25, value ) ); } + } + + /// + /// Maximum level of genetic trees, [1, 50]. + /// + /// + /// The property sets maximum possible depth of + /// genetic programming tree, which may be created with mutation and crossover operators. + /// This property guarantees that genetic programmin tree will never have + /// higher depth, than the specified value. + /// + /// Default value is set to 5. + /// + /// + public static int MaxLevel + { + get { return maxLevel; } + set { maxLevel = Math.Max( 1, Math.Min( 50, value ) ); } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// A gene, which is used as generator for the genetic tree. + /// + /// This constructor creates a randomly generated genetic tree, + /// which has all genes of the same type and properties as the specified . + /// + /// + public GPTreeChromosome( IGPGene ancestor ) + { + // make the ancestor gene to be as temporary root of the tree + root.Gene = ancestor.Clone( ); + // call tree regeneration function + Generate( ); + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Source genetic tree to clone from. + /// + /// This constructor creates new genetic tree as a copy of the + /// specified tree. + /// + protected GPTreeChromosome( GPTreeChromosome source ) + { + root = (GPTreeNode) source.root.Clone( ); + fitness = source.fitness; + } + + /// + /// Get string representation of the chromosome by providing its expression in + /// reverse polish notation (postfix notation). + /// + /// + /// Returns string representation of the genetic tree. + /// + /// The method returns string representation of the tree's root node + /// (see ). + /// + public override string ToString( ) + { + return root.ToString( ); + } + + /// + /// Generate random chromosome value. + /// + /// + /// Regenerates chromosome's value using random number generator. + /// + /// + public override void Generate( ) + { + // randomize the root + root.Gene.Generate( ); + // create children + if ( root.Gene.ArgumentsCount != 0 ) + { + root.Children = new List( ); + for ( int i = 0; i < root.Gene.ArgumentsCount; i++ ) + { + // create new child + GPTreeNode child = new GPTreeNode( ); + Generate( child, rand.Next( maxInitialLevel ) ); + // add the new child + root.Children.Add( child ); + } + } + } + + /// + /// Generate chromosome's subtree of specified level. + /// + /// + /// Sub tree's node to generate. + /// Sub tree's level to generate. + /// + protected void Generate( GPTreeNode node, int level ) + { + // create gene for the node + if ( level == 0 ) + { + // the gene should be an argument + node.Gene = root.Gene.CreateNew( GPGeneType.Argument ); + } + else + { + // the gene can be function or argument + node.Gene = root.Gene.CreateNew( ); + } + + // add children + if ( node.Gene.ArgumentsCount != 0 ) + { + node.Children = new List( ); + for ( int i = 0; i < node.Gene.ArgumentsCount; i++ ) + { + // create new child + GPTreeNode child = new GPTreeNode( ); + Generate( child, level - 1 ); + // add the new child + node.Children.Add( child ); + } + } + } + + /// + /// Create new random chromosome with same parameters (factory method). + /// + /// + /// The method creates new chromosome of the same type, but randomly + /// initialized. The method is useful as factory method for those classes, which work + /// with chromosome's interface, but not with particular chromosome type. + /// + public override IChromosome CreateNew( ) + { + return new GPTreeChromosome( root.Gene.Clone( ) ); + } + + /// + /// Clone the chromosome. + /// + /// + /// Return's clone of the chromosome. + /// + /// The method clones the chromosome returning the exact copy of it. + /// + /// + public override IChromosome Clone( ) + { + return new GPTreeChromosome( this ); + } + + /// + /// Mutation operator. + /// + /// + /// The method performs chromosome's mutation by regenerating tree's + /// randomly selected node. + /// + public override void Mutate( ) + { + // current tree level + int currentLevel = 0; + // current node + GPTreeNode node = root; + + for ( ; ; ) + { + // regenerate node if it does not have children + if ( node.Children == null ) + { + if ( currentLevel == maxLevel ) + { + // we reached maximum possible level, so the gene + // can be an argument only + node.Gene.Generate( GPGeneType.Argument ); + } + else + { + // generate subtree + Generate( node, rand.Next( maxLevel - currentLevel ) ); + } + break; + } + + // if it is a function node, than we need to get a decision, about + // mutation point - the node itself or one of its children + int r = rand.Next( node.Gene.ArgumentsCount + 1 ); + + if ( r == node.Gene.ArgumentsCount ) + { + // node itself should be regenerated + node.Gene.Generate( ); + + // check current type + if ( node.Gene.GeneType == GPGeneType.Argument ) + { + node.Children = null; + } + else + { + // create children's list if it was absent + if ( node.Children == null ) + node.Children = new List( ); + + // check for missing or extra children + if ( node.Children.Count != node.Gene.ArgumentsCount ) + { + if ( node.Children.Count > node.Gene.ArgumentsCount ) + { + // remove extra children + node.Children.RemoveRange( node.Gene.ArgumentsCount, node.Children.Count - node.Gene.ArgumentsCount ); + } + else + { + // add missing children + for ( int i = node.Children.Count; i < node.Gene.ArgumentsCount; i++ ) + { + // create new child + GPTreeNode child = new GPTreeNode( ); + Generate( child, rand.Next( maxLevel - currentLevel ) ); + // add the new child + node.Children.Add( child ); + } + } + } + } + break; + } + + // mutation goes further to one of the children + node = (GPTreeNode) node.Children[r]; + currentLevel++; + } + } + + /// + /// Crossover operator. + /// + /// + /// Pair chromosome to crossover with. + /// + /// The method performs crossover between two chromosomes – interchanging + /// randomly selected sub trees. + /// + public override void Crossover( IChromosome pair ) + { + GPTreeChromosome p = (GPTreeChromosome) pair; + + // check for correct pair + if ( p != null ) + { + // do we need to use root node for crossover ? + if ( ( root.Children == null ) || ( rand.Next( maxLevel ) == 0 ) ) + { + // give the root to the pair and use pair's part as a new root + root = p.RandomSwap( root ); + } + else + { + GPTreeNode node = root; + + for ( ; ; ) + { + // choose random child + int r = rand.Next( node.Gene.ArgumentsCount ); + GPTreeNode child = (GPTreeNode) node.Children[r]; + + // swap the random node, if it is an end node or + // random generator "selected" this node + if ( ( child.Children == null ) || ( rand.Next( maxLevel ) == 0 ) ) + { + // swap the node with pair's one + node.Children[r] = p.RandomSwap( child ); + break; + } + + // go further by tree + node = child; + } + } + // trim both of them + Trim( root, maxLevel ); + Trim( p.root, maxLevel ); + } + } + + /// + /// Crossover helper routine - selects random node of chromosomes tree and + /// swaps it with specified node. + /// + private GPTreeNode RandomSwap( GPTreeNode source ) + { + GPTreeNode retNode = null; + + // swap root node ? + if ( ( root.Children == null ) || ( rand.Next( maxLevel ) == 0 ) ) + { + // replace current root and return it + retNode = root; + root = source; + } + else + { + GPTreeNode node = root; + + for ( ; ; ) + { + // choose random child + int r = rand.Next( node.Gene.ArgumentsCount ); + GPTreeNode child = (GPTreeNode) node.Children[r]; + + // swap the random node, if it is an end node or + // random generator "selected" this node + if ( ( child.Children == null ) || ( rand.Next( maxLevel ) == 0 ) ) + { + // swap the node with pair's one + retNode = child; + node.Children[r] = source; + break; + } + + // go further by tree + node = child; + } + } + return retNode; + } + + /// + /// Trim tree node, so its depth does not exceed specified level. + /// + private static void Trim( GPTreeNode node, int level ) + { + // check if the node has children + if ( node.Children != null ) + { + if ( level == 0 ) + { + // remove all children + node.Children = null; + // and make the node of argument type + node.Gene.Generate( GPGeneType.Argument ); + } + else + { + // go further to children + foreach ( GPTreeNode n in node.Children ) + { + Trim( n, level - 1 ); + } + } + } + } + } +} diff --git a/Sources/Genetic/Chromosomes/GP/GPTreeNode.cs b/Sources/Genetic/Chromosomes/GP/GPTreeNode.cs new file mode 100644 index 00000000..49629f07 --- /dev/null +++ b/Sources/Genetic/Chromosomes/GP/GPTreeNode.cs @@ -0,0 +1,114 @@ +// AForge Genetic Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2006-2009 +// andrew.kirillov@aforgenet.com +// + +namespace AForge.Genetic +{ + using System; + using System.Collections; + using System.Collections.Generic; + using System.Text; + + /// + /// Represents tree node of genetic programming tree. + /// + /// + /// In genetic programming a chromosome is represented by a tree, which + /// is represented by class. The + /// class represents single node of such genetic programming tree. + /// + /// Each node may or may not have children. This means that particular node of a genetic + /// programming tree may represent its sub tree or even entire tree. + /// + /// + public class GPTreeNode : ICloneable + { + /// + /// Gene represented by the chromosome. + /// + public IGPGene Gene; + + /// + /// List of node's children. + /// + public List Children; + + /// + /// Initializes a new instance of the class. + /// + /// + internal GPTreeNode( ) { } + + /// + /// Initializes a new instance of the class. + /// + /// + public GPTreeNode( IGPGene gene ) + { + Gene = gene; + } + + /// + /// Get string representation of the node. + /// + /// + /// Returns string representation of the node. + /// + /// String representation of the node lists all node's children and + /// then the node itself. Such node's string representations equals to + /// its reverse polish notation. + /// + /// For example, if nodes value is '+' and its children are '3' and '5', then + /// nodes string representation is "3 5 +". + /// + /// + public override string ToString( ) + { + StringBuilder sb = new StringBuilder( ); + + if ( Children != null ) + { + // walk through all nodes + foreach ( GPTreeNode node in Children ) + { + sb.Append( node.ToString( ) ); + } + } + + // add gene value + sb.Append( Gene.ToString( ) ); + sb.Append( " " ); + + return sb.ToString( ); + } + + /// + /// Clone the tree node. + /// + /// + /// Returns exact clone of the node. + /// + public object Clone( ) + { + GPTreeNode clone = new GPTreeNode( ); + + // clone gene + clone.Gene = this.Gene.Clone( ); + // clone its children + if ( this.Children != null ) + { + clone.Children = new List( ); + // clone each child gene + foreach ( GPTreeNode node in Children ) + { + clone.Children.Add( (GPTreeNode) node.Clone( ) ); + } + } + return clone; + } + } +} diff --git a/Sources/Genetic/Chromosomes/GP/IGPGene.cs b/Sources/Genetic/Chromosomes/GP/IGPGene.cs new file mode 100644 index 00000000..85389ddd --- /dev/null +++ b/Sources/Genetic/Chromosomes/GP/IGPGene.cs @@ -0,0 +1,117 @@ +// AForge Genetic Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2006-2009 +// andrew.kirillov@aforgenet.com +// + +namespace AForge.Genetic +{ + using System; + + /// + /// Types of genes in Genetic Programming. + /// + public enum GPGeneType + { + /// + /// Function gene - represents function to be executed. + /// + Function, + /// + /// Argument gene - represents argument of function. + /// + Argument + } + + + /// + /// Genetic Programming's gene interface. + /// + /// + /// This is a gene interface, which is used for building chromosomes + /// in Genetic Programming (GP) and Gene Expression Programming (GEP). + /// + /// + public interface IGPGene + { + /// + /// Gene type. + /// + /// + /// The property represents type of a gene - function, argument, etc. + /// + /// + GPGeneType GeneType { get; } + + /// + /// Arguments count. + /// + /// + /// Arguments count of a particular function gene. + /// + int ArgumentsCount { get; } + + /// + /// Maximum arguments count. + /// + /// + /// Maximum arguments count of a function gene. The property may be used + /// by chromosomes' classes to allocate correctly memory for functions' arguments, + /// for example. + /// + int MaxArgumentsCount { get; } + + /// + /// Clone gene. + /// + /// + /// The method clones gene returning the exact copy of it. + /// + IGPGene Clone( ); + + /// + /// Randomize gene with random type and value. + /// + /// + /// The method randomizes a gene, setting its type and value randomly. + /// + void Generate( ); + + /// + /// Randomize gene with random value. + /// + /// + /// Gene type to set. + /// + /// The method randomizes a gene, setting its value randomly, but type + /// is set to the specified one. + /// + void Generate( GPGeneType type ); + + /// + /// Creates new gene with random type and value. + /// + /// + /// The method creates new randomly initialized gene . + /// The method is useful as factory method for those classes, which work with gene's interface, + /// but not with particular gene class. + /// + /// + IGPGene CreateNew( ); + + /// + /// Creates new gene with certain type and random value. + /// + /// + /// Gene type to create. + /// + /// The method creates new gene with specified type, but random value. + /// The method is useful as factory method for those classes, which work with gene's interface, + /// but not with particular gene class. + /// + /// + IGPGene CreateNew( GPGeneType type ); + } +} diff --git a/Sources/Genetic/Chromosomes/GP/SimpleGeneFunction.cs b/Sources/Genetic/Chromosomes/GP/SimpleGeneFunction.cs new file mode 100644 index 00000000..21f99ff4 --- /dev/null +++ b/Sources/Genetic/Chromosomes/GP/SimpleGeneFunction.cs @@ -0,0 +1,248 @@ +// AForge Genetic Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2006-2011 +// contacts@aforgenet.com +// + +namespace AForge.Genetic +{ + using System; + using AForge; + + /// + /// Genetic programming gene, which represents simple arithmetic functions and arguments. + /// + /// + /// Simple gene function may represent an arithmetic function (+, -, *, /) or + /// an argument to function. This class is used by Genetic Programming (or Gene Expression Programming) + /// chromosomes to build arbitrary expressions with help of genetic operators. + /// + /// + public class SimpleGeneFunction : IGPGene + { + /// + /// Enumeration of supported functions. + /// + protected enum Functions + { + /// + /// Addition operator. + /// + Add, + /// + /// Suntraction operator. + /// + Subtract, + /// + /// Multiplication operator. + /// + Multiply, + /// + /// Division operator. + /// + Divide, + } + + /// + /// Number of different functions supported by the class. + /// + protected const int FunctionsCount = 4; + + // gene type + private GPGeneType type; + // total amount of variables in the task which is supposed to be solved + private int variablesCount; + // + private int val; + + /// + /// Random number generator for chromosoms generation. + /// + protected static ThreadSafeRandom rand = new ThreadSafeRandom( ); + + /// + /// Gene type. + /// + /// + /// The property represents type of a gene - function, argument, etc. + /// + /// + public GPGeneType GeneType + { + get { return type; } + } + + /// + /// Arguments count. + /// + /// + /// Arguments count of a particular function gene. + /// + public int ArgumentsCount + { + get { return ( type == GPGeneType.Argument ) ? 0 : 2; } + } + + /// + /// Maximum arguments count. + /// + /// + /// Maximum arguments count of a function gene supported by the class. + /// The property may be used by chromosomes' classes to allocate correctly memory for + /// functions' arguments, for example. + /// + public int MaxArgumentsCount + { + get { return 2; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Total amount of variables in the task which is supposed + /// to be solved. + /// + /// The constructor creates randomly initialized gene with random type + /// and value by calling method. + /// + public SimpleGeneFunction( int variablesCount ) : this( variablesCount, true ) { } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Total amount of variables in the task which is supposed + /// to be solved. + /// Gene type to set. + /// + /// The constructor creates randomly initialized gene with random + /// value and preset gene type. + /// + public SimpleGeneFunction( int variablesCount, GPGeneType type ) + { + this.variablesCount = variablesCount; + // generate the gene value + Generate( type ); + } + + // Private constructor + private SimpleGeneFunction( int variablesCount, bool random ) + { + this.variablesCount = variablesCount; + // generate the gene value + if ( random ) + Generate( ); + } + + /// + /// Get string representation of the gene. + /// + /// + /// Returns string representation of the gene. + /// + public override string ToString( ) + { + if ( type == GPGeneType.Function ) + { + // get function string representation + switch ( (Functions) val ) + { + case Functions.Add: // addition + return "+"; + + case Functions.Subtract: // subtraction + return "-"; + + case Functions.Multiply: // multiplication + return "*"; + + case Functions.Divide: // division + return "/"; + } + } + + // get argument string representation + return string.Format( "${0}", val ); + } + + /// + /// Clone the gene. + /// + /// + /// The method clones the chromosome returning the exact copy of it. + /// + public IGPGene Clone( ) + { + // create new gene ... + SimpleGeneFunction clone = new SimpleGeneFunction( variablesCount, false ); + // ... with the same type and value + clone.type = type; + clone.val = val; + + return clone; + } + + /// + /// Randomize gene with random type and value. + /// + /// + /// The method randomizes the gene, setting its type and value randomly. + /// + public void Generate( ) + { + // give more chance to function + Generate( ( rand.Next( 4 ) == 3 ) ? GPGeneType.Argument : GPGeneType.Function ); + } + + /// + /// Randomize gene with random value. + /// + /// + /// Gene type to set. + /// + /// The method randomizes a gene, setting its value randomly, but type + /// is set to the specified one. + /// + public void Generate( GPGeneType type ) + { + // gene type + this.type = type; + // gene value + val = rand.Next( ( type == GPGeneType.Function ) ? FunctionsCount : variablesCount ); + + } + + /// + /// Creates new gene with random type and value. + /// + /// + /// The method creates new randomly initialized gene . + /// The method is useful as factory method for those classes, which work with gene's interface, + /// but not with particular gene class. + /// + /// + public IGPGene CreateNew( ) + { + return new SimpleGeneFunction( variablesCount ); + } + + /// + /// Creates new gene with certain type and random value. + /// + /// + /// Gene type to create. + /// + /// The method creates new gene with specified type, but random value. + /// The method is useful as factory method for those classes, which work with gene's interface, + /// but not with particular gene class. + /// + /// + public IGPGene CreateNew( GPGeneType type ) + { + return new SimpleGeneFunction( variablesCount, type ); + } + } +} diff --git a/Sources/Genetic/Chromosomes/IChromosome.cs b/Sources/Genetic/Chromosomes/IChromosome.cs new file mode 100644 index 00000000..0ea89492 --- /dev/null +++ b/Sources/Genetic/Chromosomes/IChromosome.cs @@ -0,0 +1,87 @@ +// AForge Genetic Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2006-2009 +// andrew.kirillov@aforgenet.com +// + +namespace AForge.Genetic +{ + using System; + + /// + /// Chromosome interface. + /// + /// + /// The interfase should be implemented by all classes, which implement + /// particular chromosome type. + /// + public interface IChromosome : IComparable + { + /// + /// Chromosome's fintess value. + /// + /// + /// The fitness value represents chromosome's usefulness - the greater the + /// value, the more useful it. + /// + double Fitness { get; } + + /// + /// Generate random chromosome value. + /// + /// + /// Regenerates chromosome's value using random number generator. + /// + /// + void Generate( ); + + /// + /// Create new random chromosome with same parameters (factory method). + /// + /// + /// The method creates new chromosome of the same type, but randomly + /// initialized. The method is useful as factory method for those classes, which work + /// with chromosome's interface, but not with particular chromosome class. + /// + IChromosome CreateNew( ); + + /// + /// Clone the chromosome. + /// + /// + /// The method clones the chromosome returning the exact copy of it. + /// + /// + IChromosome Clone( ); + + /// + /// Mutation operator. + /// + /// + /// The method performs chromosome's mutation, changing its part randomly. + /// + void Mutate( ); + + /// + /// Crossover operator. + /// + /// + /// Pair chromosome to crossover with. + /// + /// The method performs crossover between two chromosomes – interchanging some parts of chromosomes. + /// + void Crossover( IChromosome pair ); + + /// + /// Evaluate chromosome with specified fitness function. + /// + /// + /// Fitness function to use for evaluation of the chromosome. + /// + /// Calculates chromosome's fitness using the specifed fitness function. + /// + void Evaluate( IFitnessFunction function ); + } +} diff --git a/Sources/Genetic/Chromosomes/PermutationChromosome.cs b/Sources/Genetic/Chromosomes/PermutationChromosome.cs new file mode 100644 index 00000000..33369ddd --- /dev/null +++ b/Sources/Genetic/Chromosomes/PermutationChromosome.cs @@ -0,0 +1,234 @@ +// AForge Genetic Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2006-2010 +// contacts@aforgenet.com +// + +namespace AForge.Genetic +{ + using System; + using System.Collections.Generic; + + /// + /// Permutation chromosome. + /// + /// + /// Permutation chromosome is based on short array chromosome, + /// but has two features: + /// + /// all genes are unique within chromosome, i.e. there are no two genes + /// with the same value; + /// maximum value of each gene is equal to chromosome length minus 1. + /// + /// + /// + public class PermutationChromosome : ShortArrayChromosome + { + /// + /// Initializes a new instance of the class. + /// + public PermutationChromosome( int length ) : base( length, length - 1 ) { } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Source chromosome to copy. + /// + /// This is a copy constructor, which creates the exact copy + /// of specified chromosome. + /// + protected PermutationChromosome( PermutationChromosome source ) : base( source ) { } + + /// + /// Generate random chromosome value. + /// + /// + /// Regenerates chromosome's value using random number generator. + /// + /// + public override void Generate( ) + { + // create ascending permutation initially + for ( int i = 0; i < length; i++ ) + { + val[i] = (ushort) i; + } + + // shufle the permutation + for ( int i = 0, n = length >> 1; i < n; i++ ) + { + ushort t; + int j1 = rand.Next( length ); + int j2 = rand.Next( length ); + + // swap values + t = val[j1]; + val[j1] = val[j2]; + val[j2] = t; + } + } + + /// + /// Create new random chromosome with same parameters (factory method). + /// + /// + /// The method creates new chromosome of the same type, but randomly + /// initialized. The method is useful as factory method for those classes, which work + /// with chromosome's interface, but not with particular chromosome type. + /// + public override IChromosome CreateNew( ) + { + return new PermutationChromosome( length ); + } + + /// + /// Clone the chromosome. + /// + /// + /// Return's clone of the chromosome. + /// + /// The method clones the chromosome returning the exact copy of it. + /// + /// + public override IChromosome Clone( ) + { + return new PermutationChromosome( this ); + } + + /// + /// Mutation operator. + /// + /// + /// The method performs chromosome's mutation, swapping two randomly + /// chosen genes (array elements). + /// + public override void Mutate( ) + { + ushort t; + int j1 = rand.Next( length ); + int j2 = rand.Next( length ); + + // swap values + t = val[j1]; + val[j1] = val[j2]; + val[j2] = t; + } + + /// + /// Crossover operator. + /// + /// + /// Pair chromosome to crossover with. + /// + /// The method performs crossover between two chromosomes – interchanging + /// some parts between these chromosomes. + /// + public override void Crossover( IChromosome pair ) + { + PermutationChromosome p = (PermutationChromosome) pair; + + // check for correct pair + if ( ( p != null ) && ( p.length == length ) ) + { + ushort[] child1 = new ushort[length]; + ushort[] child2 = new ushort[length]; + + // create two children + CreateChildUsingCrossover( this.val, p.val, child1 ); + CreateChildUsingCrossover( p.val, this.val, child2 ); + + // replace parents with children + this.val = child1; + p.val = child2; + } + } + + // Produce new child applying crossover to two parents + private void CreateChildUsingCrossover( ushort[] parent1, ushort[] parent2, ushort[] child ) + { + ushort[] indexDictionary1 = CreateIndexDictionary( parent1 ); + ushort[] indexDictionary2 = CreateIndexDictionary( parent2 ); + + // temporary array to specify if certain gene already + // present in the child + bool[] geneIsBusy = new bool[length]; + // previous gene in the child and two next candidates + ushort prev, next1, next2; + // candidates validness - candidate is valid, if it is not + // yet in the child + bool valid1, valid2; + + int j, k = length - 1; + + // first gene of the child is taken from the second parent + prev = child[0] = parent2[0]; + geneIsBusy[prev] = true; + + // resolve all other genes of the child + for ( int i = 1; i < length; i++ ) + { + // find the next gene after PREV in both parents + // 1 + j = indexDictionary1[prev]; + next1 = ( j == k ) ? parent1[0] : parent1[j + 1]; + // 2 + j = indexDictionary2[prev]; + next2 = ( j == k ) ? parent2[0] : parent2[j + 1]; + + // check candidate genes for validness + valid1 = !geneIsBusy[next1]; + valid2 = !geneIsBusy[next2]; + + // select gene + if ( valid1 && valid2 ) + { + // both candidates are valid + // select one of theme randomly + prev = ( rand.Next( 2 ) == 0 ) ? next1 : next2; + } + else if ( !( valid1 || valid2 ) ) + { + // none of candidates is valid, so + // select random gene which is not in the child yet + int r = j = rand.Next( length ); + + // go down first + while ( ( r < length ) && ( geneIsBusy[r] == true ) ) + r++; + if ( r == length ) + { + // not found, try to go up + r = j - 1; + while ( geneIsBusy[r] == true ) // && ( r >= 0 ) + r--; + } + prev = (ushort) r; + } + else + { + // one of candidates is valid + prev = ( valid1 ) ? next1 : next2; + } + + child[i] = prev; + geneIsBusy[prev] = true; + } + } + + // Create dictionary for fast lookup of genes' indexes + private static ushort[] CreateIndexDictionary( ushort[] genes ) + { + ushort[] indexDictionary = new ushort[genes.Length]; + + for ( int i = 0, n = genes.Length; i < n; i++ ) + { + indexDictionary[genes[i]] = (ushort) i; + } + + return indexDictionary; + } + } +} diff --git a/Sources/Genetic/Chromosomes/ShortArrayChromosome.cs b/Sources/Genetic/Chromosomes/ShortArrayChromosome.cs new file mode 100644 index 00000000..2210dae7 --- /dev/null +++ b/Sources/Genetic/Chromosomes/ShortArrayChromosome.cs @@ -0,0 +1,250 @@ +// AForge Genetic Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2006-2011 +// contacts@aforgenet.com +// + +namespace AForge.Genetic +{ + using System; + using System.Text; + using AForge; + + /// + /// Short array chromosome. + /// + /// + /// Short array chromosome represents array of unsigned short values. + /// Array length is in the range of [2, 65536]. + /// + // + public class ShortArrayChromosome : ChromosomeBase + { + /// + /// Chromosome's length in number of elements. + /// + protected int length; + + /// + /// Maximum value of chromosome's gene (element). + /// + protected int maxValue; + + /// + /// Chromosome's value. + /// + protected ushort[] val = null; + + /// + /// Random number generator for chromosoms generation, crossover, mutation, etc. + /// + protected static ThreadSafeRandom rand = new ThreadSafeRandom( ); + + /// + /// Chromosome's maximum length. + /// + /// + /// Maxim chromosome's length in array elements. + /// + public const int MaxLength = 65536; + + /// + /// Chromosome's length. + /// + /// + /// Length of the chromosome in array elements. + /// + public int Length + { + get { return length; } + } + + /// + /// Chromosome's value. + /// + /// + /// Current value of the chromosome. + /// + public ushort[] Value + { + get { return val; } + } + + /// + /// Max possible value of single chromosomes element - gene. + /// + /// + /// Maximum possible numerical value, which may be represented + /// by single chromosome's gene (array element). + /// + public int MaxValue + { + get { return maxValue; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Chromosome's length in array elements, [2, ]. + /// + /// This constructor initializes chromosome setting genes' maximum value to + /// maximum posible value of type. + /// + public ShortArrayChromosome( int length ) : this( length, ushort.MaxValue ) { } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Chromosome's length in array elements, [2, ]. + /// Maximum value of chromosome's gene (array element). + /// + public ShortArrayChromosome( int length, int maxValue ) + { + // save parameters + this.length = Math.Max( 2, Math.Min( MaxLength, length ) ); + this.maxValue = Math.Max( 1, Math.Min( ushort.MaxValue, maxValue ) ); + + // allocate array + val = new ushort[this.length]; + + // generate random chromosome + Generate( ); + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Source chromosome to copy. + /// + /// This is a copy constructor, which creates the exact copy + /// of specified chromosome. + /// + protected ShortArrayChromosome( ShortArrayChromosome source ) + { + // copy all properties + length = source.length; + maxValue = source.maxValue; + val = (ushort[]) source.val.Clone( ); + fitness = source.fitness; + } + + /// + /// Get string representation of the chromosome. + /// + /// + /// Returns string representation of the chromosome. + /// + public override string ToString( ) + { + StringBuilder sb = new StringBuilder( ); + + // append first gene + sb.Append( val[0] ); + // append all other genes + for ( int i = 1; i < length; i++ ) + { + sb.Append( ' ' ); + sb.Append( val[i] ); + } + + return sb.ToString( ); + } + + /// + /// Generate random chromosome value. + /// + /// + /// Regenerates chromosome's value using random number generator. + /// + /// + public override void Generate( ) + { + int max = maxValue + 1; + + for ( int i = 0; i < length; i++ ) + { + // generate next value + val[i] = (ushort) rand.Next( max ); + } + } + + /// + /// Create new random chromosome with same parameters (factory method). + /// + /// + /// The method creates new chromosome of the same type, but randomly + /// initialized. The method is useful as factory method for those classes, which work + /// with chromosome's interface, but not with particular chromosome type. + /// + public override IChromosome CreateNew( ) + { + return new ShortArrayChromosome( length, maxValue ); + } + + /// + /// Clone the chromosome. + /// + /// + /// Return's clone of the chromosome. + /// + /// The method clones the chromosome returning the exact copy of it. + /// + /// + public override IChromosome Clone( ) + { + return new ShortArrayChromosome( this ); + } + + /// + /// Mutation operator. + /// + /// + /// The method performs chromosome's mutation, changing randomly + /// one of its genes (array elements). + /// + public override void Mutate( ) + { + // get random index + int i = rand.Next( length ); + // randomize the gene + val[i] = (ushort) rand.Next( maxValue + 1 ); + } + + /// + /// Crossover operator. + /// + /// + /// Pair chromosome to crossover with. + /// + /// The method performs crossover between two chromosomes – interchanging + /// range of genes (array elements) between these chromosomes. + /// + public override void Crossover( IChromosome pair ) + { + ShortArrayChromosome p = (ShortArrayChromosome) pair; + + // check for correct pair + if ( ( p != null ) && ( p.length == length ) ) + { + // crossover point + int crossOverPoint = rand.Next( length - 1 ) + 1; + // length of chromosome to be crossed + int crossOverLength = length - crossOverPoint; + // temporary array + ushort[] temp = new ushort[crossOverLength]; + + // copy part of first (this) chromosome to temp + Array.Copy( val, crossOverPoint, temp, 0, crossOverLength ); + // copy part of second (pair) chromosome to the first + Array.Copy( p.val, crossOverPoint, val, crossOverPoint, crossOverLength ); + // copy temp to the second + Array.Copy( temp, 0, p.val, crossOverPoint, crossOverLength ); + } + } + } +} diff --git a/Sources/Genetic/Fitness Functions/IFitnessFunction.cs b/Sources/Genetic/Fitness Functions/IFitnessFunction.cs new file mode 100644 index 00000000..07fd7f33 --- /dev/null +++ b/Sources/Genetic/Fitness Functions/IFitnessFunction.cs @@ -0,0 +1,38 @@ +// AForge Genetic Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2006-2009 +// andrew.kirillov@aforgenet.com +// + +namespace AForge.Genetic +{ + using System; + + /// + /// Fitness function interface. + /// + /// + /// The interface should be implemented by all fitness function + /// classes, which are supposed to be used for calculation of chromosomes + /// fitness values. All fitness functions should return positive (greater + /// then zero) value, which indicates how good is the evaluated chromosome - + /// the greater the value, the better the chromosome. + /// + public interface IFitnessFunction + { + /// + /// Evaluates chromosome. + /// + /// + /// Chromosome to evaluate. + /// + /// Returns chromosome's fitness value. + /// + /// The method calculates fitness value of the specified + /// chromosome. + /// + double Evaluate( IChromosome chromosome ); + } +} \ No newline at end of file diff --git a/Sources/Genetic/Fitness Functions/OptimizationFunction1D.cs b/Sources/Genetic/Fitness Functions/OptimizationFunction1D.cs new file mode 100644 index 00000000..cc77b51a --- /dev/null +++ b/Sources/Genetic/Fitness Functions/OptimizationFunction1D.cs @@ -0,0 +1,173 @@ +// AForge Genetic Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2011 +// contacts@aforgenet.com +// + +namespace AForge.Genetic +{ + using System; + using AForge; + + /// Base class for one dimensional function optimizations. + /// + /// The class is aimed to be used for one dimensional function + /// optimization problems. It implements all methods of + /// interface and requires overriding only one method - + /// , which represents the + /// function to optimize. + /// + /// The optimization function should be greater + /// than 0 on the specified optimization range. + /// + /// The class works only with binary chromosomes (). + /// + /// Sample usage: + /// + /// // define optimization function + /// public class UserFunction : OptimizationFunction1D + /// { + /// public UserFunction( ) : + /// base( new Range( 0, 255 ) ) { } + /// + /// public override double OptimizationFunction( double x ) + /// { + /// return Math.Cos( x / 23 ) * Math.Sin( x / 50 ) + 2; + /// } + /// } + /// ... + /// // create genetic population + /// Population population = new Population( 40, + /// new BinaryChromosome( 32 ), + /// new UserFunction( ), + /// new EliteSelection( ) ); + /// + /// while ( true ) + /// { + /// // run one epoch of the population + /// population.RunEpoch( ); + /// // ... + /// } + /// + /// + /// + public abstract class OptimizationFunction1D : IFitnessFunction + { + /// + /// Optimization modes. + /// + /// + /// The enumeration defines optimization modes for + /// the one dimensional function optimization. + /// + public enum Modes + { + /// + /// Search for function's maximum value. + /// + Maximization, + /// + /// Search for function's minimum value. + /// + Minimization + } + + // optimization range + private Range range = new Range( 0, 1 ); + // optimization mode + private Modes mode = Modes.Maximization; + + /// + /// Optimization range. + /// + /// + /// Defines function's input range. The function's extreme point will + /// be searched in this range only. + /// + /// + public Range Range + { + get { return range; } + set { range = value; } + } + + /// + /// Optimization mode. + /// + /// + /// Defines optimization mode - what kind of extreme point to search. + /// + public Modes Mode + { + get { return mode; } + set { mode = value; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Specifies range for optimization. + /// + public OptimizationFunction1D( Range range ) + { + this.range = range; + } + + /// + /// Evaluates chromosome. + /// + /// + /// Chromosome to evaluate. + /// + /// Returns chromosome's fitness value. + /// + /// The method calculates fitness value of the specified + /// chromosome. + /// + public double Evaluate( IChromosome chromosome ) + { + double functionValue = OptimizationFunction( Translate( chromosome ) ); + // fitness value + return ( mode == Modes.Maximization ) ? functionValue : 1 / functionValue; + } + + /// + /// Translates genotype to phenotype. + /// + /// + /// Chromosome, which genoteype should be + /// translated to phenotype. + /// + /// Returns chromosome's fenotype - the actual solution + /// encoded by the chromosome. + /// + /// The method returns double value, which represents function's + /// input point encoded by the specified chromosome. + /// + public double Translate( IChromosome chromosome ) + { + // get chromosome's value and max value + double val = ( (BinaryChromosome) chromosome ).Value; + double max = ( (BinaryChromosome) chromosome ).MaxValue; + + // translate to optimization's funtion space + return val * range.Length / max + range.Min; + } + + /// + /// Function to optimize. + /// + /// + /// Function's input value. + /// + /// Returns function output value. + /// + /// The method should be overloaded by inherited class to + /// specify the optimization function. + /// + public abstract double OptimizationFunction( double x ); + } +} diff --git a/Sources/Genetic/Fitness Functions/OptimizationFunction2D.cs b/Sources/Genetic/Fitness Functions/OptimizationFunction2D.cs new file mode 100644 index 00000000..a678faf1 --- /dev/null +++ b/Sources/Genetic/Fitness Functions/OptimizationFunction2D.cs @@ -0,0 +1,211 @@ +// AForge Genetic Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2011 +// contacts@aforgenet.com +// + +namespace AForge.Genetic +{ + using System; + using AForge; + + /// Base class for two dimenstional function optimization. + /// + /// The class is aimed to be used for two dimensional function + /// optimization problems. It implements all methods of + /// interface and requires overriding only one method - + /// , which represents the + /// function to optimize. + /// + /// The optimization function should be greater + /// than 0 on the specified optimization range. + /// + /// The class works only with binary chromosomes (). + /// + /// Sample usage: + /// + /// // define optimization function + /// public class UserFunction : OptimizationFunction2D + /// { + /// public UserFunction( ) : + /// base( new Range( -4, 4 ), new Range( -4, 4 ) ) { } + /// + /// public override double OptimizationFunction( double x, double y ) + /// { + /// return ( Math.Cos( y ) * x * y ) / ( 2 - Math.Sin( x ) ); + /// } + /// } + /// ... + /// // create genetic population + /// Population population = new Population( 40, + /// new BinaryChromosome( 32 ), + /// new UserFunction( ), + /// new EliteSelection( ) ); + /// // run one epoch of the population + /// population.RunEpoch( ); + /// + /// + /// + public abstract class OptimizationFunction2D : IFitnessFunction + { + /// + /// Optimization modes. + /// + /// + /// The enumeration defines optimization modes for + /// the two dimensional function optimization. + /// + public enum Modes + { + /// + /// Search for function's maximum value. + /// + Maximization, + /// + /// Search for function's minimum value. + /// + Minimization + } + + // optimization ranges + private Range rangeX = new Range( 0, 1 ); + private Range rangeY = new Range( 0, 1 ); + // optimization mode + private Modes mode = Modes.Maximization; + + /// + /// X variable's optimization range. + /// + /// + /// Defines function's X range. The function's extreme will + /// be searched in this range only. + /// + /// + public Range RangeX + { + get { return rangeX; } + set { rangeX = value; } + } + + /// + /// Y variable's optimization range. + /// + /// + /// Defines function's Y range. The function's extreme will + /// be searched in this range only. + /// + /// + public Range RangeY + { + get { return rangeY; } + set { rangeY = value; } + } + + /// + /// Optimization mode. + /// + /// + /// Defines optimization mode - what kind of extreme to search. + /// + public Modes Mode + { + get { return mode; } + set { mode = value; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Specifies X variable's range. + /// Specifies Y variable's range. + /// + public OptimizationFunction2D( Range rangeX, Range rangeY ) + { + this.rangeX = rangeX; + this.rangeY = rangeY; + } + + + /// + /// Evaluates chromosome. + /// + /// + /// Chromosome to evaluate. + /// + /// Returns chromosome's fitness value. + /// + /// The method calculates fitness value of the specified + /// chromosome. + /// + public double Evaluate( IChromosome chromosome ) + { + double[] xy; + + // do native translation first + xy = Translate( chromosome ); + // get function value + double functionValue = OptimizationFunction( xy[0], xy[1] ); + // return fitness value + return ( mode == Modes.Maximization ) ? functionValue : 1 / functionValue; + } + + /// + /// Translates genotype to phenotype + /// + /// + /// Chromosome, which genoteype should be + /// translated to phenotype + /// + /// Returns chromosome's fenotype - the actual solution + /// encoded by the chromosome + /// + /// The method returns array of two double values, which + /// represent function's input point (X and Y) encoded by the specified + /// chromosome. + /// + public double[] Translate( IChromosome chromosome ) + { + // get chromosome's value + ulong val = ( (BinaryChromosome) chromosome ).Value; + // chromosome's length + int length = ( (BinaryChromosome) chromosome ).Length; + // length of X component + int xLength = length / 2; + // length of Y component + int yLength = length - xLength; + // X maximum value - equal to X mask + ulong xMax = 0xFFFFFFFFFFFFFFFF >> ( 64 - xLength ); + // Y maximum value + ulong yMax = 0xFFFFFFFFFFFFFFFF >> ( 64 - yLength ); + // X component + double xPart = val & xMax; + // Y component; + double yPart = val >> xLength; + + // translate to optimization's funtion space + double[] ret = new double[2]; + + ret[0] = xPart * rangeX.Length / xMax + rangeX.Min; + ret[1] = yPart * rangeY.Length / yMax + rangeY.Min; + + return ret; + } + + /// + /// Function to optimize. + /// + /// + /// Function X input value. + /// Function Y input value. + /// + /// Returns function output value. + /// + /// The method should be overloaded by inherited class to + /// specify the optimization function. + /// + public abstract double OptimizationFunction( double x, double y ); + } +} diff --git a/Sources/Genetic/Fitness Functions/SymbolicRegressionFitness.cs b/Sources/Genetic/Fitness Functions/SymbolicRegressionFitness.cs new file mode 100644 index 00000000..81954bf9 --- /dev/null +++ b/Sources/Genetic/Fitness Functions/SymbolicRegressionFitness.cs @@ -0,0 +1,137 @@ +// AForge Genetic Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2006-2009 +// andrew.kirillov@aforgenet.com +// + +namespace AForge.Genetic +{ + using System; + using AForge; + + /// + /// Fitness function for symbolic regression (function approximation) problem + /// + /// + /// The fitness function calculates fitness value of + /// GP and GEP + /// chromosomes with the aim of solving symbolic regression problem. The fitness function's + /// value is computed as: + /// 100.0 / ( error + 1 ) + /// where error equals to the sum of absolute differences between function values (computed using + /// the function encoded by chromosome) and input values (function to be approximated). + /// + /// Sample usage: + /// + /// // constants + /// double[] constants = new double[5] { 1, 2, 3, 5, 7 }; + /// // function to be approximated + /// double[,] data = new double[5, 2] { + /// {1, 1}, {2, 3}, {3, 6}, {4, 10}, {5, 15} }; + /// // create population + /// Population population = new Population( 100, + /// new GPTreeChromosome( new SimpleGeneFunction( 1 + constants.Length ) ), + /// new SymbolicRegressionFitness( data, constants ), + /// new EliteSelection( ) ); + /// // run one epoch of the population + /// population.RunEpoch( ); + /// + /// + /// + public class SymbolicRegressionFitness : IFitnessFunction + { + // regression data + private double[,] data; + // varibles + private double[] variables; + + /// + /// Initializes a new instance of the class. + /// + /// + /// Function to be approximated. + /// Array of constants to be used as additional + /// paramters for genetic expression. + /// + /// The parameter defines the function to be approximated and + /// represents a two dimensional array of (x, y) points. + /// + /// The parameter is an array of constants, which can be used as + /// additional variables for a genetic expression. The actual amount of variables for + /// genetic expression equals to the amount of constants plus one - the x variable. + /// + /// + public SymbolicRegressionFitness( double[,] data, double[] constants ) + { + this.data = data; + // copy constants + variables = new double[constants.Length + 1]; + Array.Copy( constants, 0, variables, 1, constants.Length ); + } + + /// + /// Evaluates chromosome. + /// + /// + /// Chromosome to evaluate. + /// + /// Returns chromosome's fitness value. + /// + /// The method calculates fitness value of the specified + /// chromosome. + /// + public double Evaluate( IChromosome chromosome ) + { + // get function in polish notation + string function = chromosome.ToString( ); + + // go through all the data + double error = 0.0; + for ( int i = 0, n = data.GetLength( 0 ); i < n; i++ ) + { + // put next X value to variables list + variables[0] = data[i, 0]; + // avoid evaluation errors + try + { + // evalue the function + double y = PolishExpression.Evaluate( function, variables ); + // check for correct numeric value + if ( double.IsNaN( y ) ) + return 0; + // get the difference between evaluated Y and real Y + // and sum error + error += Math.Abs( y - data[i, 1] ); + } + catch + { + return 0; + } + } + + // return optimization function value + return 100.0 / ( error + 1 ); + } + + /// + /// Translates genotype to phenotype . + /// + /// + /// Chromosome, which genoteype should be + /// translated to phenotype. + /// + /// Returns chromosome's fenotype - the actual solution + /// encoded by the chromosome. + /// + /// The method returns string value, which represents approximation + /// expression written in polish postfix notation. + /// + public string Translate( IChromosome chromosome ) + { + // return polish notation for now ... + return chromosome.ToString( ); + } + } +} diff --git a/Sources/Genetic/Fitness Functions/TimeSeriesPredictionFitness.cs b/Sources/Genetic/Fitness Functions/TimeSeriesPredictionFitness.cs new file mode 100644 index 00000000..52e90280 --- /dev/null +++ b/Sources/Genetic/Fitness Functions/TimeSeriesPredictionFitness.cs @@ -0,0 +1,171 @@ +// AForge Genetic Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2006-2009 +// andrew.kirillov@aforgenet.com +// + +namespace AForge.Genetic +{ + using System; + using AForge; + + /// + /// Fitness function for times series prediction problem + /// + /// + /// The fitness function calculates fitness value of + /// GP and GEP + /// chromosomes with the aim of solving times series prediction problem using + /// sliding window method. The fitness function's value is computed as: + /// 100.0 / ( error + 1 ) + /// where error equals to the sum of absolute differences between predicted value + /// and actual future value. + /// + /// Sample usage: + /// + /// // number of points from the past used to predict new one + /// int windowSize = 5; + /// // time series to predict + /// double[] data = new double[13] { 1, 2, 4, 7, 11, 16, 22, 29, 37, 46, 56, 67, 79 }; + /// // constants + /// double[] constants = new double[10] { 1, 2, 3, 5, 7, 11, 13, 17, 19, 23 }; + /// // create population + /// Population population = new Population( 100, + /// new GPTreeChromosome( new SimpleGeneFunction( windowSize + constants.Length ) ), + /// new TimeSeriesPredictionFitness( data, windowSize, 1, constants ), + /// new EliteSelection( ) ); + /// // run one epoch of the population + /// population.RunEpoch( ); + /// + /// + /// + public class TimeSeriesPredictionFitness : IFitnessFunction + { + // time series data + private double[] data; + // varibles + private double[] variables; + // window size + private int windowSize; + // prediction size + private int predictionSize; + + /// + /// Initializes a new instance of the class. + /// + /// + /// Time series to be predicted. + /// Window size - number of past samples used + /// to predict future value. + /// Prediction size - number of values to be predicted. These + /// values are excluded from training set. + /// Array of constants to be used as additional + /// paramters for genetic expression. + /// + /// The parameter is a one dimensional array, which defines times + /// series to predict. The amount of learning samples is equal to the number of samples + /// in the provided time series, minus window size, minus prediction size. + /// + /// The parameter specifies the amount of samples, which should + /// be excluded from training set. This set of samples may be used for future verification + /// of the prediction model. + /// + /// The parameter is an array of constants, which can be used as + /// additional variables for a genetic expression. The actual amount of variables for + /// genetic expression equals to the amount of constants plus the window size. + /// + /// + public TimeSeriesPredictionFitness( double[] data, int windowSize, int predictionSize, double[] constants ) + { + // check for correct parameters + if ( windowSize >= data.Length ) + throw new ArgumentException( "Window size should be less then data amount" ); + if ( data.Length - windowSize - predictionSize < 1 ) + throw new ArgumentException( "Data size should be enough for window and prediction" ); + // save parameters + this.data = data; + this.windowSize = windowSize; + this.predictionSize = predictionSize; + // copy constants + variables = new double[constants.Length + windowSize]; + Array.Copy( constants, 0, variables, windowSize, constants.Length ); + } + + /// + /// Evaluates chromosome. + /// + /// + /// Chromosome to evaluate. + /// + /// Returns chromosome's fitness value. + /// + /// The method calculates fitness value of the specified + /// chromosome. + /// + public double Evaluate( IChromosome chromosome ) + { + // get function in polish notation + string function = chromosome.ToString( ); + + // go through all the data + double error = 0.0; + for ( int i = 0, n = data.Length - windowSize - predictionSize; i < n; i++ ) + { + // put values from current window as variables + for ( int j = 0, b = i + windowSize - 1; j < windowSize; j++ ) + { + variables[j] = data[b - j]; + } + + // avoid evaluation errors + try + { + // evaluate the function + double y = PolishExpression.Evaluate( function, variables ); + // check for correct numeric value + if ( double.IsNaN( y ) ) + return 0; + // get the difference between evaluated value and + // next value after the window, and sum error + error += Math.Abs( y - data[i + windowSize] ); + } + catch + { + return 0; + } + } + + // return optimization function value + return 100.0 / ( error + 1 ); + } + + /// + /// Translates genotype to phenotype. + /// + /// + /// Chromosome, which genoteype should be + /// translated to phenotype. + /// + /// Returns chromosome's fenotype - the actual solution + /// encoded by the chromosome. + /// + /// The method returns string value, which represents prediction + /// expression written in polish postfix notation. + /// + /// The interpretation of the prediction expression is very simple. For example, let's + /// take a look at sample expression, which was received with window size equal to 5: + /// $0 $1 - $5 / $2 * + /// The above expression in postfix polish notation should be interpreted as a next expression: + /// ( ( x[t - 1] - x[t - 2] ) / const1 ) * x[t - 3] + /// + /// + /// + public string Translate( IChromosome chromosome ) + { + // return polish notation for now ... + return chromosome.ToString( ); + } + } +} diff --git a/Sources/Genetic/Genetic (mono).csproj b/Sources/Genetic/Genetic (mono).csproj new file mode 100644 index 00000000..4c5844a4 --- /dev/null +++ b/Sources/Genetic/Genetic (mono).csproj @@ -0,0 +1,74 @@ + + + + Debug + AnyCPU + 9.0.21022 + 2.0 + {0270DFC1-1143-4F39-A066-316C79C99AAE} + Library + AForge.Genetic + v2.0 + + + true + full + false + bin\Debug + DEBUG,MONO + prompt + 3 + false + + + none + false + ..\..\Release\Mono + prompt + 3 + false + true + AForge.Genetic.snk + MONO + + + + + False + ..\..\Release\Mono\AForge.Math.dll + + + False + ..\..\Release\Mono\AForge.dll + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Sources/Genetic/Genetic (mono).sln b/Sources/Genetic/Genetic (mono).sln new file mode 100644 index 00000000..5c71255c --- /dev/null +++ b/Sources/Genetic/Genetic (mono).sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Genetic (mono)", "Genetic (mono).csproj", "{0270DFC1-1143-4F39-A066-316C79C99AAE}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {0270DFC1-1143-4F39-A066-316C79C99AAE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0270DFC1-1143-4F39-A066-316C79C99AAE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0270DFC1-1143-4F39-A066-316C79C99AAE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0270DFC1-1143-4F39-A066-316C79C99AAE}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(MonoDevelopProperties) = preSolution + StartupItem = Genetic (mono).csproj + EndGlobalSection +EndGlobal diff --git a/Sources/Genetic/Genetic.csproj b/Sources/Genetic/Genetic.csproj new file mode 100644 index 00000000..5126af21 --- /dev/null +++ b/Sources/Genetic/Genetic.csproj @@ -0,0 +1,128 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {2EFAA327-1789-4438-B9F5-E83ACAE12DB2} + Library + Properties + AForge.Genetic + AForge.Genetic + v2.0 + 512 + true + AForge.Genetic.snk + + + 3.5 + + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + true + full + false + ..\..\Release\ + DEBUG;TRACE + prompt + 4 + AForge.Genetic.xml + + + pdbonly + true + ..\..\Release\ + TRACE + prompt + 4 + AForge.Genetic.xml + + + + False + ..\..\Release\AForge.dll + + + False + ..\..\Release\AForge.Math.dll + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + False + Microsoft .NET Framework 4 %28x86 and x64%29 + true + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 3.1 + true + + + + + \ No newline at end of file diff --git a/Sources/Genetic/Genetic.sln b/Sources/Genetic/Genetic.sln new file mode 100644 index 00000000..5199e87c --- /dev/null +++ b/Sources/Genetic/Genetic.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual C# Express 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Genetic", "Genetic.csproj", "{2EFAA327-1789-4438-B9F5-E83ACAE12DB2}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {2EFAA327-1789-4438-B9F5-E83ACAE12DB2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2EFAA327-1789-4438-B9F5-E83ACAE12DB2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2EFAA327-1789-4438-B9F5-E83ACAE12DB2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2EFAA327-1789-4438-B9F5-E83ACAE12DB2}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Sources/Genetic/Population.cs b/Sources/Genetic/Population.cs new file mode 100644 index 00000000..2cdbf7ba --- /dev/null +++ b/Sources/Genetic/Population.cs @@ -0,0 +1,638 @@ +// AForge Genetic Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2006-2011 +// contacts@aforgenet.com +// + +namespace AForge.Genetic +{ + using System; + using System.Collections; + using System.Collections.Generic; + + /// + /// Population of chromosomes. + /// + /// + /// The class represents population - collection of individuals (chromosomes) + /// and provides functionality for common population's life cycle - population growing + /// with help of genetic operators and selection of chromosomes to new generation + /// with help of selection algorithm. The class may work with any type of chromosomes + /// implementing interface, use any type of fitness functions + /// implementing interface and use any type of selection + /// algorithms implementing interface. + /// + /// + public class Population + { + private IFitnessFunction fitnessFunction; + private ISelectionMethod selectionMethod; + private List population = new List( ); + private int size; + private double randomSelectionPortion = 0.0; + private bool autoShuffling = false; + + // population parameters + private double crossoverRate = 0.75; + private double mutationRate = 0.10; + + // random number generator + private static ThreadSafeRandom rand = new ThreadSafeRandom( ); + + // + private double fitnessMax = 0; + private double fitnessSum = 0; + private double fitnessAvg = 0; + private IChromosome bestChromosome = null; + + /// + /// Crossover rate, [0.1, 1]. + /// + /// + /// The value determines the amount of chromosomes which participate + /// in crossover. + /// + /// Default value is set to 0.75. + /// + /// + public double CrossoverRate + { + get { return crossoverRate; } + set + { + crossoverRate = Math.Max( 0.1, Math.Min( 1.0, value ) ); + } + } + + /// + /// Mutation rate, [0.1, 1]. + /// + /// + /// The value determines the amount of chromosomes which participate + /// in mutation. + /// + /// Defaul value is set to 0.1. + /// + public double MutationRate + { + get { return mutationRate; } + set + { + mutationRate = Math.Max( 0.1, Math.Min( 1.0, value ) ); + } + } + + /// + /// Random selection portion, [0, 0.9]. + /// + /// + /// The value determines the amount of chromosomes which will be + /// randomly generated for the new population. The property controls the amount + /// of chromosomes, which are selected to a new population using + /// selection operator, and amount of random + /// chromosomes added to the new population. + /// + /// Default value is set to 0. + /// + public double RandomSelectionPortion + { + get { return randomSelectionPortion; } + set + { + randomSelectionPortion = Math.Max( 0, Math.Min( 0.9, value ) ); + } + } + + /// + /// Determines of auto shuffling is on or off. + /// + /// + /// The property specifies if automatic shuffling needs to be done + /// on each epoch by calling + /// method. + /// + /// Default value is set to . + /// + public bool AutoShuffling + { + get { return autoShuffling; } + set { autoShuffling = value; } + } + + /// + /// Selection method to use with the population. + /// + /// + /// The property sets selection method which is used to select + /// population members for a new population - filter population after reproduction + /// was done with operators like crossover and mutations. + /// + public ISelectionMethod SelectionMethod + { + get { return selectionMethod; } + set { selectionMethod = value; } + } + + /// + /// Fitness function to apply to the population. + /// + /// + /// The property sets fitness function, which is used to evaluate + /// usefulness of population's chromosomes. Setting new fitness function causes recalculation + /// of fitness values for all population's members and new best member will be found. + /// + /// + public IFitnessFunction FitnessFunction + { + get { return fitnessFunction; } + set + { + fitnessFunction = value; + + foreach ( IChromosome member in population ) + { + member.Evaluate( fitnessFunction ); + } + + FindBestChromosome( ); + } + } + + /// + /// Maximum fitness of the population. + /// + /// + /// The property keeps maximum fitness of chromosomes currently existing + /// in the population. + /// + /// The property is recalculate only after selection + /// or migration was done. + /// + /// + public double FitnessMax + { + get { return fitnessMax; } + } + + /// + /// Summary fitness of the population. + /// + /// + /// The property keeps summary fitness of all chromosome existing in the + /// population. + /// + /// The property is recalculate only after selection + /// or migration was done. + /// + /// + public double FitnessSum + { + get { return fitnessSum; } + } + + /// + /// Average fitness of the population. + /// + /// + /// The property keeps average fitness of all chromosome existing in the + /// population. + /// + /// The property is recalculate only after selection + /// or migration was done. + /// + /// + public double FitnessAvg + { + get { return fitnessAvg; } + } + + /// + /// Best chromosome of the population. + /// + /// + /// The property keeps the best chromosome existing in the population + /// or if all chromosomes have 0 fitness. + /// + /// The property is recalculate only after selection + /// or migration was done. + /// + /// + public IChromosome BestChromosome + { + get { return bestChromosome; } + } + + /// + /// Size of the population. + /// + /// + /// The property keeps initial (minimal) size of population. + /// Population always returns to this size after selection operator was applied, + /// which happens after or methods + /// call. + /// + public int Size + { + get { return size; } + } + + /// + /// Get chromosome with specified index. + /// + /// + /// Chromosome's index to retrieve. + /// + /// Allows to access individuals of the population. + /// + public IChromosome this[int index] + { + get { return population[index]; } + } + + + /// + /// Initializes a new instance of the class. + /// + /// + /// Initial size of population. + /// Ancestor chromosome to use for population creatioin. + /// Fitness function to use for calculating + /// chromosome's fitness values. + /// Selection algorithm to use for selection + /// chromosome's to new generation. + /// + /// Creates new population of specified size. The specified ancestor + /// becomes first member of the population and is used to create other members + /// with same parameters, which were used for ancestor's creation. + /// + /// Too small population's size was specified. The + /// exception is thrown in the case if is smaller than 2. + /// + public Population( int size, + IChromosome ancestor, + IFitnessFunction fitnessFunction, + ISelectionMethod selectionMethod ) + { + if ( size < 2 ) + throw new ArgumentException( "Too small population's size was specified." ); + + this.fitnessFunction = fitnessFunction; + this.selectionMethod = selectionMethod; + this.size = size; + + // add ancestor to the population + ancestor.Evaluate( fitnessFunction ); + population.Add( ancestor.Clone( ) ); + // add more chromosomes to the population + for ( int i = 1; i < size; i++ ) + { + // create new chromosome + IChromosome c = ancestor.CreateNew( ); + // calculate it's fitness + c.Evaluate( fitnessFunction ); + // add it to population + population.Add( c ); + } + } + + /// + /// Regenerate population. + /// + /// + /// The method regenerates population filling it with random chromosomes. + /// + public void Regenerate( ) + { + IChromosome ancestor = population[0]; + + // clear population + population.Clear( ); + // add chromosomes to the population + for ( int i = 0; i < size; i++ ) + { + // create new chromosome + IChromosome c = ancestor.CreateNew( ); + // calculate it's fitness + c.Evaluate( fitnessFunction ); + // add it to population + population.Add( c ); + } + } + + /// + /// Do crossover in the population. + /// + /// + /// The method walks through the population and performs crossover operator + /// taking each two chromosomes in the order of their presence in the population. + /// The total amount of paired chromosomes is determined by + /// crossover rate. + /// + public virtual void Crossover( ) + { + // crossover + for ( int i = 1; i < size; i += 2 ) + { + // generate next random number and check if we need to do crossover + if ( rand.NextDouble( ) <= crossoverRate ) + { + // clone both ancestors + IChromosome c1 = population[i - 1].Clone( ); + IChromosome c2 = population[i].Clone( ); + + // do crossover + c1.Crossover( c2 ); + + // calculate fitness of these two offsprings + c1.Evaluate( fitnessFunction ); + c2.Evaluate( fitnessFunction ); + + // add two new offsprings to the population + population.Add( c1 ); + population.Add( c2 ); + } + } + } + + /// + /// Do mutation in the population. + /// + /// + /// The method walks through the population and performs mutation operator + /// taking each chromosome one by one. The total amount of mutated chromosomes is + /// determined by mutation rate. + /// + public virtual void Mutate( ) + { + // mutate + for ( int i = 0; i < size; i++ ) + { + // generate next random number and check if we need to do mutation + if ( rand.NextDouble( ) <= mutationRate ) + { + // clone the chromosome + IChromosome c = population[i].Clone( ); + // mutate it + c.Mutate( ); + // calculate fitness of the mutant + c.Evaluate( fitnessFunction ); + // add mutant to the population + population.Add( c ); + } + } + } + + /// + /// Do selection. + /// + /// + /// The method applies selection operator to the current population. Using + /// specified selection algorithm it selects members to the new generation from current + /// generates and adds certain amount of random members, if is required + /// (see ). + /// + public virtual void Selection( ) + { + // amount of random chromosomes in the new population + int randomAmount = (int) ( randomSelectionPortion * size ); + + // do selection + selectionMethod.ApplySelection( population, size - randomAmount ); + + // add random chromosomes + if ( randomAmount > 0 ) + { + IChromosome ancestor = population[0]; + + for ( int i = 0; i < randomAmount; i++ ) + { + // create new chromosome + IChromosome c = ancestor.CreateNew( ); + // calculate it's fitness + c.Evaluate( fitnessFunction ); + // add it to population + population.Add( c ); + } + } + + FindBestChromosome( ); + } + + /// + /// Run one epoch of the population. + /// + /// + /// The method runs one epoch of the population, doing crossover, mutation + /// and selection by calling , and + /// . + /// + public void RunEpoch( ) + { + Crossover( ); + Mutate( ); + Selection( ); + + if ( autoShuffling ) + Shuffle( ); + } + + /// + /// Shuffle randomly current population. + /// + /// + /// Population shuffling may be useful in cases when selection + /// operator results in not random order of chromosomes (for example, after elite + /// selection population may be ordered in ascending/descending order). + /// + public void Shuffle( ) + { + // current population size + int size = population.Count; + // create temporary copy of the population + List tempPopulation = population.GetRange( 0, size ); + // clear current population and refill it randomly + population.Clear( ); + + while ( size > 0 ) + { + int i = rand.Next( size ); + + population.Add( tempPopulation[i] ); + tempPopulation.RemoveAt( i ); + + size--; + } + } + + /// + /// Add chromosome to the population. + /// + /// + /// Chromosome to add to the population. + /// + /// The method adds specified chromosome to the current population. + /// Manual adding of chromosome maybe useful, when it is required to add some initialized + /// chromosomes instead of random. + /// + /// Adding chromosome manually should be done very carefully, since it + /// may break the population. The manually added chromosome must have the same type + /// and initialization parameters as the ancestor passed to constructor. + /// + /// + public void AddChromosome( IChromosome chromosome ) + { + chromosome.Evaluate( fitnessFunction ); + population.Add( chromosome ); + } + + /// + /// Perform migration between two populations. + /// + /// + /// Population to do migration with. + /// Number of chromosomes from each population to migrate. + /// Selection algorithm used to select chromosomes to migrate. + /// + /// The method performs migration between two populations - current and the + /// specified one. During migration + /// specified number of chromosomes is choosen from + /// each population using specified selection algorithms + /// and put into another population replacing worst members there. + /// + public void Migrate( Population anotherPopulation, int numberOfMigrants, ISelectionMethod migrantsSelector ) + { + int currentSize = this.size; + int anotherSize = anotherPopulation.Size; + + // create copy of current population + List currentCopy = new List( ); + + for ( int i = 0; i < currentSize; i++ ) + { + currentCopy.Add( population[i].Clone( ) ); + } + + // create copy of another population + List anotherCopy = new List( ); + + for ( int i = 0; i < anotherSize; i++ ) + { + anotherCopy.Add( anotherPopulation.population[i].Clone( ) ); + } + + // apply selection to both populations' copies - select members to migrate + migrantsSelector.ApplySelection( currentCopy, numberOfMigrants ); + migrantsSelector.ApplySelection( anotherCopy, numberOfMigrants ); + + // sort original populations, so the best chromosomes are in the beginning + population.Sort( ); + anotherPopulation.population.Sort( ); + + // remove worst chromosomes from both populations to free space for new members + population.RemoveRange( currentSize - numberOfMigrants, numberOfMigrants ); + anotherPopulation.population.RemoveRange( anotherSize - numberOfMigrants, numberOfMigrants ); + + // put migrants to corresponding populations + population.AddRange( anotherCopy ); + anotherPopulation.population.AddRange( currentCopy ); + + // find best chromosomes in each population + FindBestChromosome( ); + anotherPopulation.FindBestChromosome( ); + } + + /// + /// Resize population to the new specified size. + /// + /// + /// New size of population. + /// + /// The method does resizing of population. In the case if population + /// should grow, it just adds missing number of random members. In the case if + /// population should get smaller, the population's + /// selection method is used to reduce the population. + /// + /// Too small population's size was specified. The + /// exception is thrown in the case if is smaller than 2. + /// + public void Resize( int newPopulationSize ) + { + Resize( newPopulationSize, selectionMethod ); + } + + /// + /// Resize population to the new specified size. + /// + /// + /// New size of population. + /// Selection algorithm to use in the case + /// if population should get smaller. + /// + /// The method does resizing of population. In the case if population + /// should grow, it just adds missing number of random members. In the case if + /// population should get smaller, the specified selection method is used to + /// reduce the population. + /// + /// Too small population's size was specified. The + /// exception is thrown in the case if is smaller than 2. + /// + public void Resize( int newPopulationSize, ISelectionMethod membersSelector ) + { + if ( newPopulationSize < 2 ) + throw new ArgumentException( "Too small new population's size was specified." ); + + if ( newPopulationSize > size ) + { + // population is growing, so add new rundom members + + // Note: we use population.Count here instead of "size" because + // population may be bigger already after crossover/mutation. So + // we just keep those members instead of adding random member. + int toAdd = newPopulationSize - population.Count; + + for ( int i = 0; i < toAdd; i++ ) + { + // create new chromosome + IChromosome c = population[0].CreateNew( ); + // calculate it's fitness + c.Evaluate( fitnessFunction ); + // add it to population + population.Add( c ); + } + } + else + { + // do selection + membersSelector.ApplySelection( population, newPopulationSize ); + } + + size = newPopulationSize; + } + + // Find best chromosome in the population so far + private void FindBestChromosome( ) + { + bestChromosome = population[0]; + fitnessMax = bestChromosome.Fitness; + fitnessSum = fitnessMax; + + for ( int i = 1; i < size; i++ ) + { + double fitness = population[i].Fitness; + + // accumulate summary value + fitnessSum += fitness; + + // check for max + if ( fitness > fitnessMax ) + { + fitnessMax = fitness; + bestChromosome = population[i]; + } + } + fitnessAvg = fitnessSum / size; + } + } +} \ No newline at end of file diff --git a/Sources/Genetic/Properties/AssemblyInfo.cs b/Sources/Genetic/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..7783c725 --- /dev/null +++ b/Sources/Genetic/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle( "AForge.Genetic" )] +[assembly: AssemblyDescription( "" )] +[assembly: AssemblyConfiguration( "" )] +[assembly: AssemblyCompany( "AForge" )] +[assembly: AssemblyProduct( "AForge.NET" )] +[assembly: AssemblyCopyright( "AForge © 2012" )] +[assembly: AssemblyTrademark( "" )] +[assembly: AssemblyCulture( "" )] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible( false )] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid( "2ff303f4-1c84-47eb-94e5-a6344a279c1d" )] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion( "2.2.4.0" )] +[assembly: AssemblyFileVersion( "2.2.4.0" )] diff --git a/Sources/Genetic/Selection Algorithms/EliteSelection.cs b/Sources/Genetic/Selection Algorithms/EliteSelection.cs new file mode 100644 index 00000000..c6e9ce1b --- /dev/null +++ b/Sources/Genetic/Selection Algorithms/EliteSelection.cs @@ -0,0 +1,48 @@ +// AForge Genetic Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2006-2009 +// andrew.kirillov@aforgenet.com +// + +namespace AForge.Genetic +{ + using System; + using System.Collections; + using System.Collections.Generic; + + /// + /// Elite selection method. + /// + /// + /// Elite selection method selects specified amount of + /// best chromosomes to the next generation. + /// + public class EliteSelection : ISelectionMethod + { + /// + /// Initializes a new instance of the class. + /// + public EliteSelection( ) { } + + /// + /// Apply selection to the specified population. + /// + /// + /// Population, which should be filtered. + /// The amount of chromosomes to keep. + /// + /// Filters specified population keeping only specified amount of best + /// chromosomes. + /// + public void ApplySelection( List chromosomes, int size ) + { + // sort chromosomes + chromosomes.Sort( ); + + // remove bad chromosomes + chromosomes.RemoveRange( size, chromosomes.Count - size ); + } + } +} diff --git a/Sources/Genetic/Selection Algorithms/ISelectionMethod.cs b/Sources/Genetic/Selection Algorithms/ISelectionMethod.cs new file mode 100644 index 00000000..e209825d --- /dev/null +++ b/Sources/Genetic/Selection Algorithms/ISelectionMethod.cs @@ -0,0 +1,39 @@ +// AForge Genetic Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2006-2009 +// andrew.kirillov@aforgenet.com +// + +namespace AForge.Genetic +{ + using System; + using System.Collections; + using System.Collections.Generic; + + /// + /// Genetic selection method interface. + /// + /// + /// The interface should be implemented by all classes, which + /// implement genetic selection algorithm. These algorithms select members of + /// current generation, which should be kept in the new generation. Basically, + /// these algorithms filter provided population keeping only specified amount of + /// members. + /// + public interface ISelectionMethod + { + /// + /// Apply selection to the specified population. + /// + /// + /// Population, which should be filtered. + /// The amount of chromosomes to keep. + /// + /// Filters specified population according to the implemented + /// selection algorithm. + /// + void ApplySelection( List chromosomes, int size ); + } +} \ No newline at end of file diff --git a/Sources/Genetic/Selection Algorithms/RankSelection.cs b/Sources/Genetic/Selection Algorithms/RankSelection.cs new file mode 100644 index 00000000..032b6238 --- /dev/null +++ b/Sources/Genetic/Selection Algorithms/RankSelection.cs @@ -0,0 +1,99 @@ +// AForge Genetic Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2006-2011 +// contacts@aforgenet.com +// + +namespace AForge.Genetic +{ + using System; + using System.Collections; + using System.Collections.Generic; + using AForge; + + /// + /// Rank selection method. + /// + /// + /// The algorithm selects chromosomes to the new generation depending on + /// their fitness values - the better fitness value chromosome has, the more chances + /// it has to become member of the new generation. Each chromosome can be selected + /// several times to the new generation. + /// + /// This algorithm is similar to Roulette Wheel + /// Selection algorithm, but the difference is in "wheel" and its sectors' size + /// calculation method. The size of the wheel equals to size * ( size + 1 ) / 2, + /// where size is the current size of population. The worst chromosome has its sector's + /// size equal to 1, the next chromosome has its sector's size equal to 2, etc. + /// + /// + public class RankSelection : ISelectionMethod + { + // random number generator + private static ThreadSafeRandom rand = new ThreadSafeRandom( ); + + /// + /// Initializes a new instance of the class. + /// + public RankSelection( ) { } + + /// + /// Apply selection to the specified population. + /// + /// + /// Population, which should be filtered. + /// The amount of chromosomes to keep. + /// + /// Filters specified population keeping only those chromosomes, which + /// won "roulette" game. + /// + public void ApplySelection( List chromosomes, int size ) + { + // new population, initially empty + List newPopulation = new List( ); + // size of current population + int currentSize = chromosomes.Count; + + // sort current population + chromosomes.Sort( ); + + // calculate amount of ranges in the wheel + double ranges = currentSize * ( currentSize + 1 ) / 2; + + // create wheel ranges + double[] rangeMax = new double[currentSize]; + double s = 0; + + for ( int i = 0, n = currentSize; i < currentSize; i++, n-- ) + { + s += ( (double) n / ranges ); + rangeMax[i] = s; + } + + // select chromosomes from old population to the new population + for ( int j = 0; j < size; j++ ) + { + // get wheel value + double wheelValue = rand.NextDouble( ); + // find the chromosome for the wheel value + for ( int i = 0; i < currentSize; i++ ) + { + if ( wheelValue <= rangeMax[i] ) + { + // add the chromosome to the new population + newPopulation.Add( ((IChromosome) chromosomes[i]).Clone( ) ); + break; + } + } + } + + // empty current population + chromosomes.Clear( ); + + // move elements from new to current population + chromosomes.AddRange( newPopulation ); + } + } +} diff --git a/Sources/Genetic/Selection Algorithms/RouletteWheelSelection.cs b/Sources/Genetic/Selection Algorithms/RouletteWheelSelection.cs new file mode 100644 index 00000000..9df0f8f8 --- /dev/null +++ b/Sources/Genetic/Selection Algorithms/RouletteWheelSelection.cs @@ -0,0 +1,100 @@ +// AForge Genetic Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2006-2011 +// contacts@aforgenet.com +// + +namespace AForge.Genetic +{ + using System; + using System.Collections; + using System.Collections.Generic; + using AForge; + + /// + /// Roulette wheel selection method. + /// + /// + /// The algorithm selects chromosomes to the new generation according to + /// their fitness values - the more fitness value chromosome has, the more chances + /// it has to become member of new generation. Each chromosome can be selected + /// several times to the new generation. + /// + /// The "roulette's wheel" is divided into sectors, which size is proportional to + /// the fitness values of chromosomes - the size of the wheel is the sum of all fitness + /// values, size of each sector equals to fitness value of chromosome. + /// + /// + public class RouletteWheelSelection : ISelectionMethod + { + // random number generator + private static ThreadSafeRandom rand = new ThreadSafeRandom( ); + + /// + /// Initializes a new instance of the class. + /// + public RouletteWheelSelection( ) { } + + /// + /// Apply selection to the specified population. + /// + /// + /// Population, which should be filtered. + /// The amount of chromosomes to keep. + /// + /// Filters specified population keeping only those chromosomes, which + /// won "roulette" game. + /// + public void ApplySelection( List chromosomes, int size ) + { + // new population, initially empty + List newPopulation = new List( ); + // size of current population + int currentSize = chromosomes.Count; + + // calculate summary fitness of current population + double fitnessSum = 0; + foreach ( IChromosome c in chromosomes ) + { + fitnessSum += c.Fitness; + } + + // create wheel ranges + double[] rangeMax = new double[currentSize]; + double s = 0; + int k = 0; + + foreach ( IChromosome c in chromosomes ) + { + // cumulative normalized fitness + s += ( c.Fitness / fitnessSum ); + rangeMax[k++] = s; + } + + // select chromosomes from old population to the new population + for ( int j = 0; j < size; j++ ) + { + // get wheel value + double wheelValue = rand.NextDouble( ); + // find the chromosome for the wheel value + for ( int i = 0; i < currentSize; i++ ) + { + if ( wheelValue <= rangeMax[i] ) + { + // add the chromosome to the new population + newPopulation.Add( ((IChromosome) chromosomes[i]).Clone( ) ); + break; + } + } + } + + // empty current population + chromosomes.Clear( ); + + // move elements from new to current population + chromosomes.AddRange( newPopulation ); + } + } +} diff --git a/Sources/Imaging.Formats/AForge.Imaging.Formats.snk b/Sources/Imaging.Formats/AForge.Imaging.Formats.snk new file mode 100644 index 00000000..d6472f93 Binary files /dev/null and b/Sources/Imaging.Formats/AForge.Imaging.Formats.snk differ diff --git a/Sources/Imaging.Formats/FITSCodec.cs b/Sources/Imaging.Formats/FITSCodec.cs new file mode 100644 index 00000000..8eb52ac8 --- /dev/null +++ b/Sources/Imaging.Formats/FITSCodec.cs @@ -0,0 +1,699 @@ +// AForge Image Formats Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2005-2008 +// andrew.kirillov@gmail.com +// + +namespace AForge.Imaging.Formats +{ + using System; + using System.IO; + using System.Drawing; + using System.Drawing.Imaging; + using System.Text; + using System.ComponentModel; + + /// + /// Information about FITS image's frame. + /// + public sealed class FITSImageInfo : ImageInfo + { + private int originalBitsPerPixl; + private double minDataValue; + private double maxDataValue; + private string telescope; + private string acquiredObject; + private string observer; + private string instrument; + + /// + /// Original bits per pixel. + /// + /// + /// The property specifies original number of bits per image's pixel. For + /// FITS images the value may be equal to 8, 16, 32, -32 (32 bit image with float data + /// type for pixel encoding), -64 (64 bit image with double data type for pixel encoding). + /// + /// + [Category( "FITS Info" )] + public int OriginalBitsPerPixl + { + get { return originalBitsPerPixl; } + set { originalBitsPerPixl = value; } + } + + /// + /// Minimum data value found during parsing FITS image. + /// + /// + /// Minimum and maximum data values are used to scale image's data converting + /// them from original bits per pixel format to + /// supported bits per pixel format. + /// + [Category( "FITS Info" )] + public double MinDataValue + { + get { return minDataValue; } + set { minDataValue = value; } + } + + /// + /// Maximum data value found during parsing FITS image. + /// + /// + /// Minimum and maximum data values are used to scale image's data converting + /// them from original bits per pixel format to + /// supported bits per pixel format. + /// + [Category( "FITS Info" )] + public double MaxDataValue + { + get { return maxDataValue; } + set { maxDataValue = value; } + } + + /// + /// Telescope used for object's observation. + /// + [Category( "FITS Info" )] + public string Telescope + { + get { return telescope; } + set { telescope = value; } + } + + /// + /// Object acquired during observation. + /// + [Category( "FITS Info" )] + public string Object + { + get { return acquiredObject; } + set { acquiredObject = value; } + } + + /// + /// Observer doing object's acquiring. + /// + [Category( "FITS Info" )] + public string Observer + { + get { return observer; } + set { observer = value; } + } + + /// + /// Instrument used for observation. + /// + [Category( "FITS Info" )] + public string Instrument + { + get { return instrument; } + set { instrument = value; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public FITSImageInfo( ) { } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Image's width. + /// Image's height. + /// Number of bits per image's pixel. + /// Frame's index. + /// Total frames in the image. + /// + public FITSImageInfo( int width, int height, int bitsPerPixel, int frameIndex, int totalFrames ) : + base( width, height, bitsPerPixel, frameIndex, totalFrames ) { } + + /// + /// Creates a new object that is a copy of the current instance. + /// + /// + /// A new object that is a copy of this instance. + /// + public override object Clone( ) + { + FITSImageInfo clone = new FITSImageInfo( width, height, bitsPerPixel, frameIndex, totalFrames ); + + clone.originalBitsPerPixl = originalBitsPerPixl; + clone.minDataValue = minDataValue; + clone.maxDataValue = maxDataValue; + clone.telescope = telescope; + clone.acquiredObject = acquiredObject; + clone.observer = observer; + clone.instrument = instrument; + + return clone; + } + } + + /// + /// FITS image format decoder. + /// + /// + /// The FITS (an acronym derived from "Flexible Image Transport System") format + /// is an astronomical image and table format created and supported by NASA. FITS is the most + /// commonly used in astronomy and is designed specifically for scientific data. Different astronomical + /// organizations keep their images acquired using telescopes and other equipment in FITS format. + /// + /// The class extracts image frames only from the main data section of FITS file. + /// 2D (single frame) and 3D (series of frames) data structures are supported. + /// + /// During image reading/parsing, its data are scaled using minimum and maximum values of + /// the source image data. FITS tags are not used for this purpose - data are scaled from the + /// [min, max] range found to the range of supported image format ([0, 255] for 8 bpp grayscale + /// or [0, 65535] for 16 bpp grayscale image). + /// + /// + public class FITSCodec : IImageDecoder + { + // stream with FITS encoded data + private Stream stream = null; + // information about images retrieved from header + private FITSImageInfo imageInfo = null; + // stream position pointing to beginning of data (or extension) - right after header + private long dataPosition = 0; + + /// + /// Decode first frame of FITS image. + /// + /// + /// Source stream, which contains encoded image. + /// + /// Returns decoded image frame. + /// + /// Not a FITS image format. + /// Format of the FITS image is not supported. + /// The stream contains invalid (broken) FITS image. + /// + public Bitmap DecodeSingleFrame( Stream stream ) + { + FITSImageInfo imageInfo = ReadHeader( stream ); + + // check if there any image frame + if ( imageInfo.TotalFrames == 0 ) + { + throw new ArgumentException( "The FITS stream does not contain any image in main section." ); + } + // read and return first frame + return ReadImageFrame( stream, imageInfo ); + } + + /// + /// Open specified stream. + /// + /// + /// Stream to open. + /// + /// Returns number of images found in the specified stream. + /// + /// Not a FITS image format. + /// Format of the FITS image is not supported. + /// The stream contains invalid (broken) FITS image. + /// + public int Open( Stream stream ) + { + // close previous decoding + Close( ); + + this.imageInfo = ReadHeader( stream ); + this.stream = stream; + this.dataPosition = stream.Seek( 0, SeekOrigin.Current ); + + return imageInfo.TotalFrames; + } + + /// + /// Decode specified frame. + /// + /// + /// Image frame to decode. + /// Receives information about decoded frame. + /// + /// Returns decoded frame. + /// + /// No image stream was opened previously. + /// Stream does not contain frame with specified index. + /// The stream contains invalid (broken) FITS image. + /// + public Bitmap DecodeFrame( int frameIndex, out ImageInfo imageInfo ) + { + // check requested frame index + if ( frameIndex >= this.imageInfo.TotalFrames ) + { + throw new ArgumentOutOfRangeException( "Currently opened stream does not contain frame with specified index." ); + } + + // seek to the required frame + stream.Seek( dataPosition + frameIndex * this.imageInfo.Width * this.imageInfo.Height * + Math.Abs( this.imageInfo.OriginalBitsPerPixl ) / 8, SeekOrigin.Begin ); + + // read required frame + Bitmap image = ReadImageFrame( stream, this.imageInfo ); + + // provide also frame information + imageInfo = (FITSImageInfo) this.imageInfo.Clone( ); + imageInfo.FrameIndex = frameIndex; + + return image; + } + + /// + /// Close decoding of previously opened stream. + /// + /// + /// The method does not close stream itself, but just closes + /// decoding cleaning all associated data with it. + /// + public void Close( ) + { + stream = null; + imageInfo = null; + } + + // Read and process FITS header. After the header is read stream pointer will + // point to data or extension. + private FITSImageInfo ReadHeader( Stream stream ) + { + byte[] headerRecord = new byte[80]; + int recordsRead = 1; + bool endKeyWasFound = false; + + FITSImageInfo imageInfo = new FITSImageInfo( ); + + // read first record and check for correct image + if ( + ( Tools.ReadStream( stream, headerRecord, 0, 80 ) < 80 ) || + ( Encoding.ASCII.GetString( headerRecord, 0, 8 ) != "SIMPLE " ) ) + { + throw new FormatException( "The stream does not contatin FITS image." ); + } + else + { + // check if the image has standard FITS format + if ( Encoding.ASCII.GetString( headerRecord, 10, 70 ).Split( '/' )[0].Trim( ) != "T" ) + { + throw new NotSupportedException( "The stream contains not standard FITS data file." ); + } + } + + // read header and locate data block + while ( true ) + { + // read next record + if ( Tools.ReadStream( stream, headerRecord, 0, 80 ) < 80 ) + { + throw new ArgumentException( "The stream does not contain valid FITS image." ); + } + recordsRead++; + + // get keyword + string keyword = Encoding.ASCII.GetString( headerRecord, 0, 8 ); + + // skip commenct and history + if ( ( keyword == "COMMENT " ) || ( keyword == "HISTORY " ) ) + continue; + + // check if it is end of header keyword + if ( keyword == "END " ) + endKeyWasFound = true; + + if ( endKeyWasFound ) + { + if ( recordsRead % 36 == 0 ) + { + // found data or extension header + + // make a small check of some header values + if ( ( imageInfo.BitsPerPixel == 0 ) || ( imageInfo.Width == 0 ) || ( imageInfo.Height == 0 ) ) + { + imageInfo.TotalFrames = 0; + } + + // let's return here and let other routines process data + break; + } + } + else + { + // get string representation of value/comments + string strValue = Encoding.ASCII.GetString( headerRecord, 10, 70 ); + + // check important keywords + if ( keyword == "BITPIX " ) + { + int value = ExtractIntegerValue( strValue ); + + if ( ( value != 8 ) && ( value != 16 ) && ( value != 32 ) && ( value != -32 ) && ( value != -64 ) ) + { + throw new NotSupportedException( "Data format (" + value + ") is not supported." ); + } + + // bits per pixel + imageInfo.BitsPerPixel = ( value == 8 ) ? 8 : 16; + imageInfo.OriginalBitsPerPixl = value; + } + else if ( Encoding.ASCII.GetString( headerRecord, 0, 5 ) == "NAXIS" ) + { + // information about data axis + int value = ExtractIntegerValue( strValue ); + + // check axis + switch ( headerRecord[5] ) + { + // number of axis + case (byte) ' ': + switch ( value ) + { + case 1: + default: + throw new NotSupportedException( "FITS files with data dimension of " + value + " are not supported." ); + case 0: + // the stream does not have an image, do nothing + break; + case 2: + // the stream has 1 2D image + imageInfo.TotalFrames = 1; + break; + case 3: + // the stream has 3D image - series of 2D images + break; + } + break; + // length of 1st axis + case (byte) '1': + imageInfo.Width = value; + break; + // length of 2nd axis + case (byte) '2': + imageInfo.Height = value; + break; + // length of 3rd axis + case (byte) '3': + imageInfo.TotalFrames = value; + break; + } + } + else if ( keyword == "TELESCOP" ) + { + imageInfo.Telescope = ExtractStringValue( strValue ); + } + else if ( keyword == "OBJECT " ) + { + imageInfo.Object = ExtractStringValue( strValue ); + } + else if ( keyword == "OBSERVER" ) + { + imageInfo.Observer = ExtractStringValue( strValue ); + } + else if ( keyword == "INSTRUME" ) + { + imageInfo.Instrument = ExtractStringValue( strValue ); + } + + // --- for debugging --- + /* if ( keyword[0] != ' ' ) + { + System.Diagnostics.Debug.Write( keyword ); + if ( headerRecord[8] == '=' ) + { + System.Diagnostics.Debug.WriteLine( " = " + strValue ); + } + else + { + System.Diagnostics.Debug.WriteLine( "" ); + } + } */ + // --- --- + } + } + + // scan all available data to find minimum and maximum values, + // which will be used for scaling. the scan is done here (not while + // reading actual frame) because FITS file may have set of images + // packed into data cube, so entire scan of all the data is required. + + // if is stream is seekable + if ( !stream.CanSeek ) + { + throw new ArgumentException( "The stream must be seekable." ); + } + + // remember current position + long dataPos = stream.Seek( 0, SeekOrigin.Current ); + + // data size + int lineLength = imageInfo.Width * ( Math.Abs( imageInfo.OriginalBitsPerPixl ) / 8 ); + int totalLines = imageInfo.Height * imageInfo.TotalFrames; + int originalBitsPerPixel = imageInfo.OriginalBitsPerPixl; + + byte[] buffer = new byte[lineLength]; + byte[] temp = new byte[8]; + + // min and max values + double min = double.MaxValue; + double max = double.MinValue; + + for ( int i = 0; i < totalLines; i++ ) + { + // read next line + if ( Tools.ReadStream( stream, buffer, 0, lineLength ) < lineLength ) + throw new ArgumentException( "The stream does not contain valid FITS image." ); + + // scan the line + for ( int j = 0; j < lineLength; ) + { + double value = 0; + + // read values accordint to their format + switch ( originalBitsPerPixel ) + { + case 8: // 8 bit unsigned integer + value = buffer[j++]; + break; + case 16: // 16 bit signed integer + { + short tempValue = 0; + unchecked + { + tempValue = (short) ( ( buffer[j++] << 8 ) | buffer[j++] ); + } + value = tempValue; + break; + } + case 32: // 32 bit signed integer + { + temp[3] = buffer[j++]; + temp[2] = buffer[j++]; + temp[1] = buffer[j++]; + temp[0] = buffer[j++]; + + value = BitConverter.ToInt32( temp, 0 ); + + break; + } + case -32: // 32 bit float + { + temp[3] = buffer[j++]; + temp[2] = buffer[j++]; + temp[1] = buffer[j++]; + temp[0] = buffer[j++]; + + value = BitConverter.ToSingle( temp, 0 ); + break; + } + case -64: // 64 bit double + { + temp[7] = buffer[j++]; + temp[6] = buffer[j++]; + temp[5] = buffer[j++]; + temp[4] = buffer[j++]; + temp[3] = buffer[j++]; + temp[2] = buffer[j++]; + temp[1] = buffer[j++]; + temp[0] = buffer[j++]; + + value = BitConverter.ToDouble( temp, 0 ); + break; + } + } + + if ( value > max ) + max = value; + if ( value < min ) + min = value; + } + } + + imageInfo.MaxDataValue = max; + imageInfo.MinDataValue = min; + + // restore stream position to the begining of data + stream.Seek( dataPos, SeekOrigin.Begin ); + + return imageInfo; + } + + // Read image frame from the specified stream (current stream's position is used) + private unsafe Bitmap ReadImageFrame( Stream stream, FITSImageInfo imageInfo ) + { + int width = imageInfo.Width; + int height = imageInfo.Height; + + // create new bitmap + Bitmap image = ( imageInfo.BitsPerPixel == 8 ) ? + Tools.CreateGrayscaleImage( width, height ) : + new Bitmap( width, height, PixelFormat.Format16bppGrayScale ); + + // lock it + BitmapData imageData = image.LockBits( new Rectangle( 0, 0, width, height ), + ImageLockMode.ReadWrite, image.PixelFormat ); + + int originalBitsPerPixel = imageInfo.OriginalBitsPerPixl; + int stride = imageData.Stride; + byte* ptr = (byte*) imageData.Scan0.ToPointer( ); + + double min = imageInfo.MinDataValue; + double max = imageInfo.MaxDataValue; + + // check number of bits per pixel and load image appropriately + if ( imageInfo.BitsPerPixel == 16 ) + { + // 16 bpp grayscale image + double coef = 65535.0 / ( max - min ); + + // prepare a buffer for one line + int lineSize = width * Math.Abs( originalBitsPerPixel ) / 8; + byte[] line = new byte[lineSize]; + byte[] temp = new byte[8]; + + // load all rows + for ( int y = height - 1; y >= 0; y-- ) + { + // load next line + if ( Tools.ReadStream( stream, line, 0, lineSize ) < lineSize ) + throw new ArgumentException( "The stream does not contain valid FITS image." ); + + // fill next image row + ushort* row = (ushort*) ( ptr + stride * y ); + + for ( int x = 0, i = 0; x < width; x++, row++ ) + { + double value = 0; + + switch ( originalBitsPerPixel ) + { + case 16: // 16 bit signed integer + { + short tempValue = 0; + unchecked + { + tempValue = (short) ( ( line[i++] << 8 ) + line[i++] ); + } + value = tempValue; + break; + } + case 32: // 32 bit signed integer + { + temp[3] = line[i++]; + temp[2] = line[i++]; + temp[1] = line[i++]; + temp[0] = line[i++]; + + value = BitConverter.ToInt32( temp, 0 ); + + break; + } + case -32: // 32 bit float + { + temp[3] = line[i++]; + temp[2] = line[i++]; + temp[1] = line[i++]; + temp[0] = line[i++]; + + value = BitConverter.ToSingle( temp, 0 ); + break; + } + case -64: // 64 bit double + { + temp[7] = line[i++]; + temp[6] = line[i++]; + temp[5] = line[i++]; + temp[4] = line[i++]; + temp[3] = line[i++]; + temp[2] = line[i++]; + temp[1] = line[i++]; + temp[0] = line[i++]; + + value = BitConverter.ToDouble( temp, 0 ); + break; + } + } + + *row = (ushort) ( ( value - min ) * coef ); + } + } + } + else + { + // 8 bpp grayscale image + double coef = 255.0 / ( max - min ); + + // prepare a buffer for one line + byte[] line = new byte[width]; + + // load all rows + for ( int y = height - 1; y >= 0; y-- ) + { + // load next line + if ( Tools.ReadStream( stream, line, 0, width ) < width ) + throw new ArgumentException( "The stream does not contain valid FITS image." ); + + // fill next image row + byte* row = ptr + stride * y; + + for ( int x = 0; x < width; x++, row++ ) + { + *row = (byte) ( ( (double) line[x] - min ) * coef ); + } + } + } + + // unlock image and return it + image.UnlockBits( imageData ); + return image; + } + + // Extract integer value from string representation of value/comments + private int ExtractIntegerValue( string strValue ) + { + try + { + // split value from comment + string[] strs = strValue.Split( '/' ); + // return value as integer + return int.Parse( strs[0].Trim( ) ); + } + catch + { + throw new ArgumentException( "The stream does not contain valid FITS image." ); + } + } + + // Extract string value + private string ExtractStringValue( string strValue ) + { + // split value from comment + string[] strs = strValue.Split( '/' ); + + return strs[0].Replace( "''", "``" ).Replace( "'", "" ).Replace( "''", "``" ).Trim( ); + } + } +} diff --git a/Sources/Imaging.Formats/IImageDecoder.cs b/Sources/Imaging.Formats/IImageDecoder.cs new file mode 100644 index 00000000..6253eed7 --- /dev/null +++ b/Sources/Imaging.Formats/IImageDecoder.cs @@ -0,0 +1,228 @@ +// AForge Image Formats Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2005-2008 +// andrew.kirillov@gmail.com +// + +namespace AForge.Imaging.Formats +{ + using System; + using System.IO; + using System.Drawing; + using System.ComponentModel; + + /// + /// Image decoder interface, which specifies set of methods, which should be + /// implemented by image decoders for different file formats. + /// + /// + /// The interface specifies set of methods, which are suitable not + /// only for simple one-frame image formats. The interface also defines methods + /// to work with image formats designed to store multiple frames and image formats + /// which provide different type of image description (like acquisition + /// parameters, etc). + /// + /// + public interface IImageDecoder + { + /// + /// Decode first frame of image from the specified stream. + /// + /// + /// Source stream, which contains encoded image. + /// + /// Returns decoded image frame. + /// + /// + /// For one-frame image formats the method is supposed to decode single + /// available frame. For multi-frame image formats the first frame should be + /// decoded. + /// + /// Implementations of this method may throw + /// exception to report about unrecognized image + /// format, exception to report about incorrectly + /// formatted image or exception to report if + /// certain formats are not supported. + /// + /// + Bitmap DecodeSingleFrame( Stream stream ); + + /// + /// Open specified stream. + /// + /// + /// Stream to open. + /// + /// Returns number of images found in the specified stream. + /// + /// Implementation of this method is supposed to read image's header, + /// checking for correct image format and reading its atributes. + /// + /// Implementations of this method may throw + /// exception to report about unrecognized image + /// format, exception to report about incorrectly + /// formatted image or exception to report if + /// certain formats are not supported. + /// + /// + int Open( Stream stream ); + + /// + /// Decode specified frame. + /// + /// + /// Image frame to decode. + /// Receives information about decoded frame. + /// + /// Returns decoded frame. + /// + /// Implementations of this method may throw + /// exception in the case if no image + /// stream was opened previously, in the + /// case if stream does not contain frame with specified index or + /// exception to report about incorrectly formatted image. + /// + /// + Bitmap DecodeFrame( int frameIndex, out ImageInfo imageInfo ); + + /// + /// Close decoding of previously opened stream. + /// + /// + /// Implementations of this method don't close stream itself, but just close + /// decoding cleaning all associated data with it. + /// + void Close( ); + } + + /// + /// Information about image's frame. + /// + /// + /// This is a base class, which keeps basic information about image, like its width, + /// height, etc. Classes, which inherit from this, may define more properties describing certain + /// image formats. + /// + public class ImageInfo : ICloneable + { + /// + /// Image's width. + /// + protected int width; + + /// + /// Image's height. + /// + protected int height; + + /// + /// Number of bits per image's pixel. + /// + protected int bitsPerPixel; + + /// + /// Frame's index. + /// + protected int frameIndex; + + /// + /// Total frames in the image. + /// + protected int totalFrames; + + /// + /// Image's width. + /// + [Category( "General" )] + public int Width + { + get { return width; } + set { width = value; } + } + + /// + /// Image's height. + /// + [Category( "General" )] + public int Height + { + get { return height; } + set { height = value; } + } + + /// + /// Number of bits per image's pixel. + /// + [Category( "General" )] + public int BitsPerPixel + { + get { return bitsPerPixel; } + set { bitsPerPixel = value; } + } + + /// + /// Frame's index. + /// + /// + /// Some image formats support storing multiple frames in one image file. + /// The property specifies index of a particular frame. + /// + [Category( "General" )] + public int FrameIndex + { + get { return frameIndex; } + set { frameIndex = value; } + } + + /// + /// Total frames in the image. + /// + /// + /// Some image formats support storing multiple frames in one image file. + /// The property specifies total number of frames in image file. + /// + [Category( "General" )] + public int TotalFrames + { + get { return totalFrames; } + set { totalFrames = value; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public ImageInfo( ) { } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Image's width. + /// Image's height. + /// Number of bits per image's pixel. + /// Frame's index. + /// Total frames in the image. + /// + public ImageInfo( int width, int height, int bitsPerPixel, int frameIndex, int totalFrames ) + { + this.width = width; + this.height = height; + this.bitsPerPixel = bitsPerPixel; + this.frameIndex = frameIndex; + this.totalFrames = totalFrames; + } + + /// + /// Creates a new object that is a copy of the current instance. + /// + /// + /// A new object that is a copy of this instance. + /// + public virtual object Clone( ) + { + return new ImageInfo( width, height, bitsPerPixel, frameIndex, totalFrames ); + } + } +} diff --git a/Sources/Imaging.Formats/ImageDecoder.cs b/Sources/Imaging.Formats/ImageDecoder.cs new file mode 100644 index 00000000..8159b50c --- /dev/null +++ b/Sources/Imaging.Formats/ImageDecoder.cs @@ -0,0 +1,193 @@ +// AForge Image Formats Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2005-2008 +// andrew.kirillov@gmail.com +// + +namespace AForge.Imaging.Formats +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + using System.IO; + + /// + /// Image decoder to decode different custom image file formats. + /// + /// + /// The class represent a help class, which simplifies decoding of image + /// files finding appropriate image decoder automatically (using list of registered + /// image decoders). Instead of using required image decoder directly, users may use this + /// class, which will find required decoder by file's extension. + /// + /// By default the class registers on its own all decoders, which are available in + /// AForge.Imaging.Formats library. If user has implementation of his own image decoders, he + /// needs to register them using method to be able to use them through + /// the class. + /// + /// If the class can not find appropriate decode in the list of registered + /// decoders, it passes file to .NET's image decoder for decoding. + /// + /// Sample usage: + /// + /// // sample file name + /// string fileName = "myFile.pnm"; + /// // decode image file + /// Bitmap = ImageDecoder.DecodeFromFile( fileName ); + /// + /// + /// + /// + /// + /// + public class ImageDecoder + { + private static Dictionary< string, IImageDecoder > decoders = new Dictionary( ); + + static ImageDecoder( ) + { + // register PNM file format + IImageDecoder decoder = new PNMCodec( ); + + RegisterDecoder( "pbm", decoder ); + RegisterDecoder( "pgm", decoder ); + RegisterDecoder( "pnm", decoder ); + RegisterDecoder( "ppm", decoder ); + + // register FITS file format + decoder = new FITSCodec( ); + + RegisterDecoder( "fit", decoder ); + RegisterDecoder( "fits", decoder ); + } + + /// + /// Register image decoder for a specified file extension. + /// + /// + /// File extension to register decoder for ("bmp", for example). + /// Image decoder to use for the specified file extension. + /// + /// The method allows to register image decoder object, which should be used + /// to decode images from files with the specified extension. + /// + public static void RegisterDecoder( string fileExtension, IImageDecoder decoder ) + { + System.Diagnostics.Debug.WriteLine( "Registering decoder: " + fileExtension ); + + decoders.Add( fileExtension.ToLower( ), decoder ); + } + + /// + /// Decode first frame for the specified file. + /// + /// + /// File name to read image from. + /// + /// Return decoded image. In the case if file format support multiple + /// frames, the method return the first frame. + /// + /// The method uses table of registered image decoders to find the one, + /// which should be used for the specified file. If there is not appropriate decoder + /// found, the method uses default .NET's image decoding routine (see + /// ). + /// + public static Bitmap DecodeFromFile( string fileName ) + { + ImageInfo imageInfo = null; + + return DecodeFromFile( fileName, out imageInfo ); + } + + /// + /// Decode first frame for the specified file. + /// + /// + /// File name to read image from. + /// Information about the decoded image. + /// + /// Return decoded image. In the case if file format support multiple + /// frames, the method return the first frame. + /// + /// The method uses table of registered image decoders to find the one, + /// which should be used for the specified file. If there is not appropriate decoder + /// found, the method uses default .NET's image decoding routine (see + /// ). + /// + public static Bitmap DecodeFromFile( string fileName, out ImageInfo imageInfo ) + { + Bitmap bitmap = null; + + string fileExtension = Path.GetExtension( fileName ).ToLower( ); + + if ( ( fileExtension != string.Empty ) && ( fileExtension.Length != 0 ) ) + { + fileExtension = fileExtension.Substring( 1 ); + + if ( decoders.ContainsKey( fileExtension ) ) + { + IImageDecoder decoder = decoders[fileExtension]; + + // open stream + FileStream stream = new FileStream( fileName, FileMode.Open ); + // open decoder + decoder.Open( stream ); + // read the first frame + bitmap = decoder.DecodeFrame( 0, out imageInfo ); + + // close decoder and stream + decoder.Close( ); + stream.Close( ); + stream.Dispose( ); + + return bitmap; + } + } + + // use default .NET's image decoding routine + bitmap = FromFile( fileName ); + + imageInfo = new ImageInfo( bitmap.Width, bitmap.Height, Image.GetPixelFormatSize( bitmap.PixelFormat ), 0, 1 ); + + return bitmap; + } + + private static System.Drawing.Bitmap FromFile( string fileName ) + { + Bitmap loadedImage = null; + FileStream stream = null; + + try + { + // read image to temporary memory stream + stream = File.OpenRead( fileName ); + MemoryStream memoryStream = new MemoryStream( ); + + byte[] buffer = new byte[10000]; + while ( true ) + { + int read = stream.Read( buffer, 0, 10000 ); + + if ( read == 0 ) + break; + + memoryStream.Write( buffer, 0, read ); + } + + loadedImage = (Bitmap) Bitmap.FromStream( memoryStream ); + } + finally + { + if ( stream != null ) + { + stream.Close( ); + stream.Dispose( ); + } + } + + return loadedImage; + } + } +} diff --git a/Sources/Imaging.Formats/Imaging.Formats (mono).csproj b/Sources/Imaging.Formats/Imaging.Formats (mono).csproj new file mode 100644 index 00000000..1ee4a9ba --- /dev/null +++ b/Sources/Imaging.Formats/Imaging.Formats (mono).csproj @@ -0,0 +1,53 @@ + + + + Debug + AnyCPU + 9.0.21022 + 2.0 + {C2FE85F5-37A4-4E44-87C7-4DF77CD13C74} + Library + AForge.Imaging.Formats + v2.0 + AForge.Imaging.Formats + + + true + full + false + bin\Debug + DEBUG,MONO + prompt + 3 + false + true + + + none + false + ..\..\Release\Mono + prompt + 3 + false + true + AForge.Imaging.Formats.snk + MONO + true + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Sources/Imaging.Formats/Imaging.Formats (mono).sln b/Sources/Imaging.Formats/Imaging.Formats (mono).sln new file mode 100644 index 00000000..8e2c1b1a --- /dev/null +++ b/Sources/Imaging.Formats/Imaging.Formats (mono).sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Imaging.Formats (mono)", "Imaging.Formats (mono).csproj", "{C2FE85F5-37A4-4E44-87C7-4DF77CD13C74}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {C2FE85F5-37A4-4E44-87C7-4DF77CD13C74}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C2FE85F5-37A4-4E44-87C7-4DF77CD13C74}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C2FE85F5-37A4-4E44-87C7-4DF77CD13C74}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C2FE85F5-37A4-4E44-87C7-4DF77CD13C74}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(MonoDevelopProperties) = preSolution + StartupItem = Imaging.Formats (mono).csproj + EndGlobalSection +EndGlobal diff --git a/Sources/Imaging.Formats/Imaging.Formats.csproj b/Sources/Imaging.Formats/Imaging.Formats.csproj new file mode 100644 index 00000000..60bdb6ae --- /dev/null +++ b/Sources/Imaging.Formats/Imaging.Formats.csproj @@ -0,0 +1,106 @@ + + + + Debug + AnyCPU + 9.0.21022 + 2.0 + {50050BA8-B739-4931-8DBA-D77A031537FF} + Library + Properties + AForge.Imaging.Formats + AForge.Imaging.Formats + v2.0 + 512 + true + AForge.Imaging.Formats.snk + + + 3.5 + + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + true + full + false + ..\..\Release\ + DEBUG;TRACE + prompt + 4 + AForge.Imaging.Formats.xml + true + + + pdbonly + true + ..\..\Release\ + TRACE + prompt + 4 + AForge.Imaging.Formats.xml + true + + + + + + + + + + + + + + + + + + + + + False + Microsoft .NET Framework 4 %28x86 and x64%29 + true + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 3.1 + true + + + + + \ No newline at end of file diff --git a/Sources/Imaging.Formats/Imaging.Formats.sln b/Sources/Imaging.Formats/Imaging.Formats.sln new file mode 100644 index 00000000..c3776a1d --- /dev/null +++ b/Sources/Imaging.Formats/Imaging.Formats.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual C# Express 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Imaging.Formats", "Imaging.Formats.csproj", "{50050BA8-B739-4931-8DBA-D77A031537FF}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {50050BA8-B739-4931-8DBA-D77A031537FF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {50050BA8-B739-4931-8DBA-D77A031537FF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {50050BA8-B739-4931-8DBA-D77A031537FF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {50050BA8-B739-4931-8DBA-D77A031537FF}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Sources/Imaging.Formats/PNMCodec.cs b/Sources/Imaging.Formats/PNMCodec.cs new file mode 100644 index 00000000..11cab483 --- /dev/null +++ b/Sources/Imaging.Formats/PNMCodec.cs @@ -0,0 +1,451 @@ +// AForge Image Formats Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2005-2008 +// andrew.kirillov@gmail.com +// + +namespace AForge.Imaging.Formats +{ + using System; + using System.IO; + using System.Drawing; + using System.Drawing.Imaging; + using System.Text; + using System.ComponentModel; + + /// + /// Information about PNM image's frame. + /// + public sealed class PNMImageInfo : ImageInfo + { + // PNM file version (1-6) + private int version; + // maximum data value + private int maxDataValue; + + /// + /// PNM file version (format), [1, 6]. + /// + [Category( "PNM Info" )] + public int Version + { + get { return version; } + set { version = value; } + } + + /// + /// Maximum pixel's value in source PNM image. + /// + /// + /// The value is used to scale image's data converting them + /// from original data range to the range of + /// supported bits per pixel format. + /// + [Category( "PNM Info" )] + public int MaxDataValue + { + get { return maxDataValue; } + set { maxDataValue = value; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public PNMImageInfo( ) { } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Image's width. + /// Image's height. + /// Number of bits per image's pixel. + /// Frame's index. + /// Total frames in the image. + /// + public PNMImageInfo( int width, int height, int bitsPerPixel, int frameIndex, int totalFrames ) : + base( width, height, bitsPerPixel, frameIndex, totalFrames ) { } + + /// + /// Creates a new object that is a copy of the current instance. + /// + /// + /// A new object that is a copy of this instance. + /// + public override object Clone( ) + { + PNMImageInfo clone = new PNMImageInfo( width, height, bitsPerPixel, frameIndex, totalFrames ); + + clone.version = version; + clone.maxDataValue = maxDataValue; + + return clone; + } + } + + /// + /// PNM image format decoder. + /// + /// + /// The PNM (an acronym derived from "Portable Any Map") format is an + /// abstraction of the PBM, PGM and PPM formats. I.e. the name "PNM" refers collectively + /// to PBM (binary images), PGM (grayscale images) and PPM (color image) image formats. + /// + /// Image in PNM format can be found in different scientific databases and laboratories, + /// for example Yale Face Database and AT&T Face Database. + /// + /// Only PNM images of P5 (binary encoded PGM) and P6 (binary encoded PPM) formats + /// are supported at this point. + /// + /// The maximum supported pixel value is 255 at this point. + /// + /// The class supports only one-frame PNM images. As it is specified in format + /// specification, the multi-frame PNM images has appeared starting from 2000. + /// + /// + /// + public class PNMCodec : IImageDecoder + { + // stream with PNM encoded data + private Stream stream = null; + // information about images retrieved from header + private PNMImageInfo imageInfo = null; + // stream position pointing to beginning of data - right after header + private long dataPosition = 0; + + /// + /// Decode first frame of PNM image. + /// + /// + /// Source stream, which contains encoded image. + /// + /// Returns decoded image frame. + /// + /// Not a PNM image format. + /// Format of the PNM image is not supported. + /// The stream contains invalid (broken) PNM image. + /// + public Bitmap DecodeSingleFrame( Stream stream ) + { + PNMImageInfo imageInfo = ReadHeader( stream ); + + return ReadImageFrame( stream, imageInfo ); + } + + /// + /// Open specified stream. + /// + /// + /// Stream to open. + /// + /// Returns number of images found in the specified stream. + /// + /// Not a PNM image format. + /// Format of the PNM image is not supported. + /// The stream contains invalid (broken) PNM image. + /// + public int Open( Stream stream ) + { + // close previous decoding + Close( ); + + this.imageInfo = ReadHeader( stream ); + this.stream = stream; + this.dataPosition = stream.Seek( 0, SeekOrigin.Current ); + + return imageInfo.TotalFrames; + } + + /// + /// Decode specified frame. + /// + /// + /// Image frame to decode. + /// Receives information about decoded frame. + /// + /// Returns decoded frame. + /// + /// No image stream was opened previously. + /// Stream does not contain frame with specified index. + /// The stream contains invalid (broken) PNM image. + /// + public Bitmap DecodeFrame( int frameIndex, out ImageInfo imageInfo ) + { + // check requested frame index + if ( frameIndex != 0 ) + { + throw new ArgumentOutOfRangeException( "Currently opened stream does not contain frame with specified index." ); + } + + // seek to the required frame + stream.Seek( dataPosition, SeekOrigin.Begin ); + + // read required frame + Bitmap image = ReadImageFrame( stream, this.imageInfo ); + + // provide also frame information + imageInfo = (PNMImageInfo) this.imageInfo.Clone( ); + + return image; + } + + /// + /// Close decoding of previously opened stream. + /// + /// + /// The method does not close stream itself, but just closes + /// decoding cleaning all associated data with it. + /// + public void Close( ) + { + stream = null; + imageInfo = null; + } + + // Read and process PNM header. After the header is read stream pointer will + // point to data. + private PNMImageInfo ReadHeader( Stream stream ) + { + // read magic word + byte magic1 = (byte) stream.ReadByte( ); + byte magic2 = (byte) stream.ReadByte( ); + + // check if it is valid PNM image + if ( ( magic1 != 'P' ) || ( magic2 < '1' ) || ( magic2 > '6' ) ) + { + throw new FormatException( "The stream does not contain PNM image." ); + } + + // check if it is P5 or P6 format + if ( ( magic2 != '5' ) && ( magic2 != '6' ) ) + { + throw new NotSupportedException( "Format is not supported yet. Only P5 and P6 are supported for now." ); + } + + int width = 0, height = 0, maxValue = 0; + + try + { + // read image's width and height + width = ReadIntegerValue( stream ); + height = ReadIntegerValue( stream ); + // read pixel's highiest value + maxValue = ReadIntegerValue( stream ); + } + catch + { + throw new ArgumentException( "The stream does not contain valid PNM image." ); + } + + // check if all attributes are valid + if ( ( width <= 0 ) || ( height <= 0 ) || ( maxValue <= 0 ) ) + { + throw new ArgumentException( "The stream does not contain valid PNM image." ); + } + + // check maximum pixel's value + if ( maxValue > 255 ) + { + throw new NotSupportedException( "255 is the maximum pixel's value, which is supported for now." ); + } + + // prepare image information + PNMImageInfo imageInfo = new PNMImageInfo( width, height, ( magic2 == '5' ) ? 8 : 24, 0, 1 ); + imageInfo.Version = (int) ( magic2 - '0' ); + imageInfo.MaxDataValue = maxValue; + + return imageInfo; + } + + // Read image frame from the specified stream (current stream's position is used) + private Bitmap ReadImageFrame( Stream stream, PNMImageInfo imageInfo ) + { + try + { + // decode PNM image depending on its format + switch ( imageInfo.Version ) + { + case 5: + return ReadP5Image( stream, imageInfo.Width, imageInfo.Height, imageInfo.MaxDataValue ); + case 6: + return ReadP6Image( stream, imageInfo.Width, imageInfo.Height, imageInfo.MaxDataValue ); + } + } + catch + { + throw new ArgumentException( "The stream does not contain valid PNM image." ); + } + + return null; + } + + // Load P5 PGM image (grayscale PNM image with binary encoding) + private unsafe Bitmap ReadP5Image( Stream stream, int width, int height, int maxValue ) + { + double scalingFactor = (double) 255 / maxValue; + + // create new bitmap and lock it + Bitmap image = Tools.CreateGrayscaleImage( width, height ); + BitmapData imageData = image.LockBits( new Rectangle( 0, 0, width, height ), + ImageLockMode.ReadWrite, PixelFormat.Format8bppIndexed ); + + int stride = imageData.Stride; + byte* ptr = (byte*) imageData.Scan0.ToPointer( ); + + // prepare a buffer for one line + byte[] line = new byte[width]; + + int totalBytesRead = 0, bytesRead = 0; + + // load all rows + for ( int y = 0; y < height; y++ ) + { + totalBytesRead = 0; + bytesRead = 0; + + // load next line + while ( totalBytesRead != width ) + { + bytesRead = stream.Read( line, totalBytesRead, width - totalBytesRead ); + + if ( bytesRead == 0 ) + { + // if we've reached the end before complete image is loaded, then there should + // be something wrong + throw new Exception( ); + } + + totalBytesRead += bytesRead; + } + + // fill next image row + byte* row = ptr + stride * y; + + for ( int x = 0; x < width; x++, row++ ) + { + *row = (byte) ( scalingFactor * line[x] ); + } + } + + // unlock image and return it + image.UnlockBits( imageData ); + return image; + } + + // Load P6 PPM image (color PNM image with binary encoding) + private unsafe Bitmap ReadP6Image( Stream stream, int width, int height, int maxValue ) + { + double scalingFactor = (double) 255 / maxValue; + + // create new bitmap and lock it + Bitmap image = new Bitmap( width, height, PixelFormat.Format24bppRgb ); + BitmapData imageData = image.LockBits( new Rectangle( 0, 0, width, height ), + ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb ); + + int stride = imageData.Stride; + byte* ptr = (byte*) imageData.Scan0.ToPointer( ); + + // prepare a buffer for one line + int lineSize = width * 3; + byte[] line = new byte[lineSize]; + + int totalBytesRead = 0, bytesRead = 0; + + // load all rows + for ( int y = 0; y < height; y++ ) + { + totalBytesRead = 0; + bytesRead = 0; + + // load next line + while ( totalBytesRead != lineSize ) + { + bytesRead = stream.Read( line, totalBytesRead, lineSize - totalBytesRead ); + + if ( bytesRead == 0 ) + { + // if we've reached the end before complete image is loaded, then there should + // be something wrong + throw new Exception( ); + } + + totalBytesRead += bytesRead; + } + + // fill next image row + byte* row = ptr + stride * y; + + for ( int x = 0, i = 0; x < width; x++, i += 3, row += 3 ) + { + row[2] = (byte) ( scalingFactor * line[i] ); // red + row[1] = (byte) ( scalingFactor * line[i + 1] ); // green + row[0] = (byte) ( scalingFactor * line[i + 2] ); // blue + } + } + + // unlock image and return it + image.UnlockBits( imageData ); + return image; + } + + // Read integer ASCII value from the source stream. + private int ReadIntegerValue( Stream stream ) + { + byte[] buffer = new byte[256]; + int bytesRead = 1; + + // locate something, what is not spacing + buffer[0] = SkipSpaces( stream ); + // complete reading useful value + bytesRead += ReadUntilSpace( stream, buffer, 1 ); + + return int.Parse( Encoding.ASCII.GetString( buffer, 0, bytesRead ) ); + } + + // Skip spaces (spaces, new lines, tabs and comment lines) in the specified stream + // and return the first non-space byte. Stream's position will point to the next + // byte coming after the first found non-space byte. + private byte SkipSpaces( Stream stream ) + { + byte nextByte = (byte) stream.ReadByte( ); + + while ( ( nextByte == ' ' ) || ( nextByte == '\n' ) || ( nextByte == '\r' ) || ( nextByte == '\t' ) ) + { + nextByte = (byte) stream.ReadByte( ); + } + + if ( nextByte == '#' ) + { + // read until new line + while ( nextByte != '\n' ) + { + nextByte = (byte) stream.ReadByte( ); + } + // skip pending spaces or another comment + return SkipSpaces( stream ); + } + + return nextByte; + } + + // Read stream until space is found (space, new line, tab or comment). Returns + // number of bytes read. Stream's position will point to the next + // byte coming after the first found space byte. + private int ReadUntilSpace( Stream stream, byte[] buffer, int start ) + { + byte nextByte = (byte) stream.ReadByte( ); + int bytesRead = 0; + + while ( ( nextByte != ' ' ) && ( nextByte != '\n' ) && ( nextByte != '\r' ) && ( nextByte != '\t' ) && ( nextByte != '#' ) ) + { + buffer[start + bytesRead] = nextByte; + bytesRead++; + nextByte = (byte) stream.ReadByte( ); + } + + return bytesRead; + } + } +} diff --git a/Sources/Imaging.Formats/Properties/AssemblyInfo.cs b/Sources/Imaging.Formats/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..bbfebfd7 --- /dev/null +++ b/Sources/Imaging.Formats/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle( "AForge.Imaging.Formats" )] +[assembly: AssemblyDescription( "" )] +[assembly: AssemblyConfiguration( "" )] +[assembly: AssemblyCompany( "AForge" )] +[assembly: AssemblyProduct( "AForge.NET" )] +[assembly: AssemblyCopyright( "AForge © 2012" )] +[assembly: AssemblyTrademark( "" )] +[assembly: AssemblyCulture( "" )] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible( false )] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid( "a613d00e-fc80-4c7a-9aaf-e2b06cf16de8" )] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion( "2.2.4.0" )] +[assembly: AssemblyFileVersion( "2.2.4.0" )] diff --git a/Sources/Imaging.Formats/Sample Images/FITS/FOCx38i0101t_c0f.fits b/Sources/Imaging.Formats/Sample Images/FITS/FOCx38i0101t_c0f.fits new file mode 100644 index 00000000..0fc6f7ab --- /dev/null +++ b/Sources/Imaging.Formats/Sample Images/FITS/FOCx38i0101t_c0f.fits @@ -0,0 +1,12802 @@ +SIMPLE = T / Standard FITS format BITPIX = -32 / 32 bit IEEE floating point numbers NAXIS = 2 / Number of axes NAXIS1 = 1024 / NAXIS2 = 1024 / EXTEND = T / There may be standard extensions OPSIZE = 768 / PSIZE of original image ORIGIN = 'ST-DADS ' / Institution that originated the FITS file FITSDATE= ' 3/07/96' / Date FITS file was created FILENAME= 'x38i0101t_cvt.c0h' / Original GEIS header file name with _cvt ODATTYPE= 'FLOATING' / Original datatype SDASMGNU= 1 / GCOUNT of original image DADSFILE= 'X38I0101T.C0F' / DADSCLAS= 'CAL ' / DADSDATE= '03 Jul 1996 13:02:41' / CRVAL1 = 182.63575416670 / CRVAL2 = 39.405675000000 / CRPIX1 = 511.50000000000 / CRPIX2 = 513.00000000000 / CD1_1 = -4.5933261390019E-06 / CD1_2 = -6.4628588916094E-06 / CD2_1 = -5.9688650253520E-06 / CD2_2 = 4.9734771891963E-06 / DATAMIN = -5.6454391479492 / DATAMAX = 83.697998046875 / MIR_REVR= T / ORIENTAT= -52.420009613037 / FILLCNT = 0 / ERRCNT = 0 / FPKTTIME= 50266.589604322 / LPKTTIME= 50266.589660746 / CTYPE1 = 'RA---TAN' / CTYPE2 = 'DEC--TAN' / / GROUP PARAMETERS: OSS / FOC DATA DESCRIPTOR KEYWORDS INSTRUME= 'FOC ' / instrument in use ROOTNAME= 'X38I0101T ' / rootname of the observation set FILETYPE= 'SCI ' / shp, sdq, udl, sci / CALIBRATION FLAGS AND INDICATORS KXDEPLOY= T / COSTAR deployed for FOC (T or F) OPTCRLY = 'F48 ' / optical relay: F48, F96 CAMMODE = 'NOTUSED ' / coronographic apodizer mask: INBEAM, NOTUSED F_RATIO = 75 / focal ratio SMMMODE = 'NOTUSED ' / spectro. mirror mechanism: INBEAM, NOTUSED SHTMODE = 'NOTUSED ' / shutter mode: INBEAM, NOTUSED LEDMODE = 'NOTUSED ' / led calibration status: ACTIVE, NOTUSED PXFORMT = 'ZOOM ' / format of the image: NORMAL, ZOOM OPTELT1 = 7 / filter element, wheel 1 f48: (0-7), f96: (0-11)OPTELT2 = 5 / filter element, wheel 2 f48: (0-7), f96: (0-11)OPTELT3 = 0 / filter element, wheel 3 f48: (0), f96: (0-11)OPTELT4 = 0 / filter element, wheel 4 f48: (0), f96: (0-11)FILTNAM1= 'F220W ' / filter element name for wheel 1 FILTNAM2= 'F275W ' / filter element name for wheel 2 FILTNAM3= ' ' / filter element name for wheel 3 FILTNAM4= ' ' / filter element name for wheel 4 SAMPOFF = 0.0 / sample offset (0.0-1023.75) LINEOFF = 0.0 / line offset (0.0-1023.75) SAMPPLN = 512 / samples per line (64, 128, 256, or 512) LINEPFM = 1024 / lines per frame (64, 128, 256, 512, or 1024) / CALIBRATION REFERENCE FILES GRAPHTAB= 'mtab$g1q1547nm.tmg' / the HST graph table COMPTAB = 'mtab$g1q1547cm.tmc' / the HST components table UNITAB = 'xtab$f7d1044bx.cxu' / table of reciprocal flat field filenames BACHFILE= 'xref$91b13148x.r0h' / background reference header file ITFHFILE= 'xref$91b13138x.r1h' / itf reference header file BLMHFILE= 'xref$d8p14556x.r7h' / blemish header file UNIHFILE= 'N/A ' / uniform de reference header file SDEHFILE= 'N/A ' / sde reference header file GEOHFILE= 'xref$c860927ax.r5h' / geometric reference header file / CALIBRATION SWITCHES: perform,omit,complete BACCORR = 'OMIT ' / background subtraction correction ITFCORR = 'OMIT ' / intensity transfer function correction PXLCORR = 'COMPLETE' / split zoom-format pixels UNICORR = 'PERFORM ' / uniform de correction WAVCORR = 'COMPLETE' / compute photometric parameters GEOCORR = 'COMPLETE' / geometric correction SDECORR = 'OMIT ' / spectrograph de correction / CALIBRATION KEYWORDS DNFORMT = 8 / bits in each data number (8/16) GEODEFV = 0.0 / geo DN value for areas outside sci image / STATISTICAL KEYWORDS DATE = '03/07/96 ' / date this file originated (dd/mm/yy) PODPSFF = '0 ' / 0=(no podps fill), 1=(podps fill present) STDCFFF = '0 ' / 0=(no st dcf fill); 1=(st dcf fill present) STDCFFP = '0000 ' / st dcf fill pattern (hex) / FOC INSTRUMENT DESCRIPTOR KEYWORDS LEDCOLOR= ' ' / LED color (a color, blank , NONE or ERROR) / FOC PHOTOMETRY KEYWORDS PHOTMODE= 'FOC F/48 COSTAR F220W F275W X48ZLRG'de PHOTFLAM= 1.442126E-16 / Inverse Sensitivity PHOTZPT = -21.1 / ST magnitude zero point PHOTPLAM= 2450.676 / Pivot wavelength PHOTBW = 234.9322 / RMS Bandwidth of the Filter and Detector / EXPOSURE INFORMATION EQUINOX = 2000.0 / equinox of the celestial coordinate system SUNANGLE= 68.75218200684 / angle between sun and V1 axis (deg) MOONANGL= 122.4902877808 / angle between moon and V1 axis (deg) SUN_ALT = 69.75344848633 / altitude of the sun above Earth's limb (deg) FGSLOCK = 'FINE ' / commanded FGS lock (FINE,COARSE,GYROS,UNKNOWN) DATE-OBS= ' 2/07/96 ' / UT date of start of observation (dd/mm/yy) TIME-OBS= '14:03:54 ' / UT time of start of observation (hh:mm:ss) EXPSTART= 50266.58605108 / exposure start time (Modified Julian Date) EXPEND = 50266.58949003 / exposure end time (Modified Julian Date) EXPTIME = 297.1250000000 / exposure duration (seconds)--calculated EXPFLAG = 'NORMAL ' / Exposure interruption indicator / TARGET & PROPOSAL ID TARGNAME= 'NGC4151 ' / proposer's target name RA_TARG = 0.1826357541667E+03 / right ascension of the target (deg) (J2000) DEC_TARG= 0.3940567500000E+02 / declination of the target (deg) (J2000) PROPOSID= 06308 / PEP proposal identifier PEP_EXPO= '01-001 ' / PEP exposure identifier including sequence LINENUM = '1.001 ' / PEP proposal line number SEQLINE = ' ' / PEP line number of defined sequence SEQNAME = ' ' / PEP define/use sequence name HISTORY The following throughput tables were used: crotacomp$hst_ota_005.tab, HISTORY crfoccomp$foc_48_m1m2_001.tab, crfoccomp$foc_48_rflpri_002.tab, HISTORY crfoccomp$foc_48_rflsec_002.tab, crfoccomp$foc_48_f220w_002.tab, HISTORY crfoccomp$foc_48_f275w_002.tab, crfoccomp$foc_48_rflfocus_002.tab, HISTORY crfoccomp$foc_48_zlrg_001.tab, crfoccomp$foc_48_dqe_002.tab HISTORY GEOHFILE=xref$c860927ax.r5h GEOCORR=COMPLETE END >]õ®?Ù=?’Šä>wÇ‚>v X=iv’=«Z`>£q>QèÌ>èÍè>ÒO:Íb(>±h>Ò@Î>×¢>ÜÙü>áÓð>ãUË>±˜=¶=5‚<„“0>k«>ßðr>Öœ>²»ð>Éf‚?*†?}׈?C%>Þr+>40› Ž>üE>Ëâ>ßv™>³›>‘>ê>WÀ>˜¶>ok>ÝÁB>ÎX³>üŒï?Ót>½×´>‘Ù>‘ý>’ú×>”">•fF>‚|>–6ü>áÍ=€>'E>¬’>¯|°>²‹…>µ¸·>¹ +h>ÙД? Ü?’Õ=^í~>Íð>ñ–‘>17>Äp«?b%¦?3=ë„ø=æ=™Zä>ÁZË>»Ù±>¶8e>¼=x?*™3?"– >݆°>瞪=#ƒ>1dz>DÈß?œÛ?'—›?¨FV?ÀY—>ãÙÙ=Õ$õ=µ“Ì=•›©=jn˜=(Ñí?$-û?f‰Ý?æ1>ë?T?o²2ì?Èà??‘+?.ç†?5>B?*LÒ?Ò>†>JŠ>ÔÍ>í)˜>íGþ>ídP>í~î>í›?B³j?QvZ>üõ–>íÿo?PVD?^É);¶ß¦=5ú•>ý©×?Oê? Ò?>=Žÿ{>w>ê9%?o +†?€‚Ý?› +Ä?–Ìÿ?†àá?"[@>_Ø™>ÜÛê2? £?F©?‹Q?˜žó?yà§?o¸=çü>ZdÒ>€¨º>E.>5ŠÆ>’M¬>k!?•{?*e?¢Þû?Ép¥@h?ôQá?jš!?EÁ,?%A~?¼t?Òìò?˜Šb?J!v>¿=ß?Ø?nê©?Ÿ@m?³…?"}ò>¼N>ÉOa>Ö—r?Ÿ\D?²é“>‡”=Œº >O?œ<ÿ?“Ò‡?n/É?k£?Yí^?{™x?¯Ñ?‹eÿ>˜ü©? €?…I?VŸ¥>í¡T?#cý?mŸ?;>ëðK>ð&Â?c>þÏX>í(8? +£z?A>¼1>YœX>¹í‰>ÉZ¸=ãÉ3?¸M?ø +‚?VTh>þÓ>îcí>ìa¶?Y¼:?`”?©ƒ%?± u?ä>ì?g%“?køÖ>Ú¡é>óUk?R#? ö=$)|>ë«;>Øþ=Ý~#>&¢x?kƒ?W«Ä?ËP?v?W·U?Pà+?J E?P¦~?Q?„ãX?hA?üê?°Y\?ªË÷?¡>e?¤˜?§ô0?\<‹´K ?jý?‹½o?ªHú?‰Ëò?8gê? ¾U>çØÂ?ƒî?Oï,?/Ï'>êí»?6·ý?j E?¥•½?Þy?±qº?ãë?—¢]?¯ûë?‚}<ªÀ?+x?[’"?+'?Š?ô1?&oô?:mH?4ƒ©?ðz_@(Uç?pzñ?Þ?S5/? „?öà>êœ>ë‹>6 <»¬à>ÂX?ƒñ?°uÍ?ÏQ­?@%>™šˆ?‘³?°ó1?þ‡?l Ï?0ÕB?,Œ>À¤–>· +b?i?z>âÎ;òÈ +:ôy?Ó ?á ?^.Ð?nY@ Þ’@ Ð?k›t?T2®? .”?ê¾>q¼?²Jj?ž™Y;˜¶ç¥9I?®…û?ó>Åët?gx?¢þ?ŸSä?£7¡?„ˆ¥>ï –?I¦?:®ò?5ÉÂ? ¾ ?!ŸO?4fn?‚Ïå?ª¸b?\–š>âBô?;ÎÉ?p¢?œ¦8?¯Šd?©þ?¤sZ>ùØ>XW?E/™?pÍp>Û’ô>Žq ?žS8?´Ü?´ë‚?´ý,>o'–>&ÒS?Åë?¹U>2ó>wŸ?„˜Ç?iÕõ>÷£?ÐÍ?r4F?ub…?‚Vz?z ¾?K'!?€˜>¶dî?&ï?r™;>Ó“Î>Ôn¢?6·b?gÇ•?„5È>Öþ> Mh?døX?ˆºJ?š>”?¢§>KèG=£™ƒ>è•Ý>òWM>óÏq?.zt?î›[?Û.ù?©¸û?‡â>ôi?x>?;5ò>þxp>(„/>ÆÈR? Ó?›Ç>ôq3?…ãn?¤ž?¥˜Š?¤­1?´g?Š×|>ãWh>Ä6#>óV$?§¹?ôrÁ?óðv?òà¥?Ñ, >ôqa?;¡?² ?‡#<>ôdO> p=¶^?¾Ã?‰ãã?²ÛÁ?Ì'œ?FÓw>Âbw?d£ ?ÿ?Aæ>âN’?vE?¨º>ôn¤>ü¾ï?¶Ëì?®nÓ? Ès?"öý?ó("?ܳÉ?¶?K?›Àÿ?ut‚?ÐqÌ@žÌ?¾#©?rgp?ª‹Ú?Á‰¢?­Ö‰?¥Œ?µÖC?¶¾Ã?eZ?BÄí?{\å?}Ç›xq>‹º?íÛ?"Tp?¡9'?œg?‘ó‡?šR?¹¹?Àˆt?ÇS'?³u?8×[?Y6?¬­·?žg;?njO?Ÿ.—?íÔq?í£«?íq°?Àr«?v‡Z?pd?©‚v?§ÀÞ?¦Ï?wN[?ˆë?Ž×??–”?êç7?ÈëŒ?¤\?›.×?Å?m<É?-?J'¾?v`±?¨g%?Ûê¿?¯Zh?j¸ò?’4õ?¾t? …g?fö4?^*d?PZ÷?-l>ÅÍ? +@ð?e\%?1$´={ÇŠ>Rè +?dB?cô¹?c©4?Xï¦>ã@>Ý=‡¯h=Ænô>Û1Ÿ>á¤?Tµ[?a·?r +^?x A?Õ†>ßÓ?r§¼?¡Ùÿ?|‚?8>“?5†Ä?2×b?Kfþ?{Lj?xg…?ˆ›ý?Ý +>äm•>íg?Xw*?["¥?#³D?4N?ˆ7¼?£g+?x,?9¢5?;œ?=‘ñ?FÁ=rªI?WM„?Vÿ>ìµý>Ö^ž>ã0ö>ãð}>ßS¶>Ú½^>Ö7>Ôr¹>ñ†?Sе?S„Q?˨;?Ó¡‹?±q‹?¦c?¦î°?¦Ê?’ßû?9„?J‡?œpq?œ7?Ä{¿?σë?¥6?‚lŠ?l?$–Â?,÷w?«­Y?©;¥?¢S?ªßp?µŽ_?½!ü?®!Š?ð#?”u?ÐGl?沪?Ù€?Êtô@@@pM +@r|b?ª ?–â¡?Ë«?ê„Ó?ð˜à?ú@å?ù”£@4z@ ¶B?ýäé?÷«@ +Åã@-BŽ@/¨œ?óN?ë·ë?üî@Š@cd?ìX?ïkj?mv?Dg;?ÁX@Aû@$×@Ä@ãN?˜FÃ?G€?–ëp?ø‘e?ùý3?îdM?êWŒ?®vH?Œ¨?˜7œ?©z?«Nq@ +sÑ@§?æ©?ƒÔ?‰@/v·@3¸Z?ññþ?ž—@?¶úô@•v@ [@Ó¿@wI@ +á9?Ï2Ñ?ÑÇl?ú'Û?ó}@L@4bâ@)Ј?Åò?Ægˆ?¸wú?­#È?¥:’?f ?d’õ@›”@1*ã@Ân?ÁLë?Ä•r?üq?þVÇ@ÏÀ@>="@+fè>›~~>Œ¯X?Ýez@tâ@AF@å@ìð?X‘ˆ?;Eì?A0?B´%?qNR?ò›1?ódz@Wÿ@6Jièà=ªIÐ=»z,>™º$>‡Q'<¡Å±>ä 6>éKy= 5==!ÿ`=2?x=G`<¯Æ`=ÚÙ>äz¬>ܤÎ=9ŸŒ=“æ¶>·³C>ÐÁ:>BòR=I@f>W;?‰ >éus>’É>%6›=ÊœÑ=º¨o>‹¶¤>«þD>^ö=Þ*=åU=ì_>þ²>¡%Y>ŸI«?RŽG?kŸÁ>×Û—>úv>0Ü?8Ì?Md>šÚ>—Èð>i·>¶>r‰6>†;c=жö=ÉzS=ÑáÕ=Éh=Àe'= 8­=—ï>(=»G<6}å=KS ="rd?? É?cÕ>lÓV>Ï/?d¸$?Z§B?D÷h?ÔL=Êþ“>åô¯>æ(›>æ[>ÝkJ>^>¤pF>M¼>^…çÊþ‰>èæ¸? B ?¹g®?ÊÐÔ?ÑWW?#?>É>÷¨˜>ûb>ìý>ê¢g=Þ!Ï>³8Ä>ëCª>UU¼>5K×>°êª>»Äf>;è>„¸>7ôû>)ó>©·9>Ïãº>Žæ6>c>Ž>®+>ŽðÀ>˜å¨>¢îG?þ~?ñn>ñz>íÃØ>í×Á>íóÝŒ->À£6=™ø->‚l ?”ÃV?xqÎ>œÆ>§o‹>îà1>îa¦>ÿ¶Ã>ç–Ô>–Ó.>¢c{>®ò>OŠs<Öd=žG< +q<­± ?g?`Ÿ.>ž5=ל“>©Ÿã>ëE‘?pL?+L±?a>Þé0>ÅìŽ>®Ä?f~®?R(Ñ?>Ø_?OV,?odR?D˜Î;p]Ú=êfš>þ„±?Ï‘?CÏ?'t3?S›—?<«?Ǫ?–B ?9h?0Ø?#9?§m?å¼?|”?˜Üf? ¸¢>OÕ==é|?•>O?²ïÑ>ã?8Œ=?6\4>ц?./?šƒ?ŠÉ>wF5>ü«a?Ø/˜?·P>´«\?Ã?ºž°?x¨>çØã?"£?m—ý?j‡?al ?ZŽH?Sªö?"1q>íBê>í6È>í'ƒ>?ª +>÷V?FÎ0>Òüê>Cd{?½Ä›@>?›Tâ?l›? ­>ì†c@³@6?Ä]>¿œ³?<îÕ?>žŠ?iÎs?l"í?”2?­=93!? ¹®?Œq?°Ïæ?¨?k²ö?iF??Y˜™?i°‚? ÛÛ?Œ…á?"ô?+Å…?0­ÿ?3õ¤?Xáö?†¥t?°µ?³³?kO/?dÙt?a‚Œ?@->ë< >–oÙ=£ô˜>&VÜ>ô÷>ã…†? >ñ¡c>†XQ>æˆ?!ƒo?;t?Ï?w s?´_?¨O?›T—?ÄÏt?é@?ª™?lr7?c­?Od>ÕÌû>XZ*>Àê>ëL?«_?ùT?A +‡?kc?—=º?±¨·?$:Ç>LÁï>Ôÿ-?|Æ?G<Ú?jæ>„-i;ãV@;Æš ?j‰¹?•Ê“?¶’ ?Ääì?1l>ì i?%Ð?Cô?Á)?ÆÐ?dâ=?PŠb=èßÝ?˜êÅ?¯ÿÊ? Ñç>ìk8>ããU>ט=?‚Çé?q¸>øqË>í’?Œ­?œ¥Ç?Ò?Í*ð?¿6?Áè±>í™^>í­ >í¿å?zg?ªÜ?”Ç1=gnÜ=³Êÿ>î72? –Q?^±K?*âv>l>>°-P>î±O>ê…ð?©Á?“Ô?.pÅ?3ô?,—»?=·>ï[÷?>>/?†Ág?4ª2>”7©?ª?oߨ>Î0?”?ë¹8?zxè?±@?h˜ß?…ÁÃ?ʪ>¤sì?O¨?påZ? +ØV>ñ%?Á:t?ÍŽF?‹Çè?ŽÛÑ?'ž?"w?Ûž?Ô½?[Š?†ÞŠ?ñp?äÐÆ?µOø?²]?°àò²ë?Oùø?“0ü?#·º>n_>Âô%>ó-?8`3?Hç?#s?ÂI?’È?£Œg?ä?Ñl?p†ß?i!K>ˆ±´@¤ý?íq >hŒì?`?¶û?žVN?Rï?MUt?H‘û?O›?Nô??Ó£?—âõ?gq?B'‚?³ˆ?ßÖT?ºU¾?µS×?Ï'Z?Í–|>GÔ=V² ?$í?%ä‡?ô "?ã +Ã?t…™?]È*>ôex?Æü?¿“>Ý<”=È‘F?\9˜?Üâ°?s²œ>©Ê ?nUa?­k?Na'>ú „?™ ?½ÿ?‡N¦?sò×?ªé?¤@u?„Œ?d?Ã2¹?­„Ã=Åèy? +æh?;5?¶‡?É â?óI?˜ÔM=R…˜>Œc!?˜Ö?#+ž?I&à?Ž4¨?§õ¾?ž*É?œSµ?4m`?Uº?Æ +?ñ³v?LÍ?qu·?¬—w?´ç0?ÄFŽ?̉Ò>È~–>¦Ae?³W?hÎ?ð9Ô?â ??T|ü?4W€>€Ð>>0«|=0ú?#Ž3@0hÃ@ ¬ó>î—¨?=×l?²Ró?t÷L=åÉ0>ëNm?„…X?“ºÉ?§ªš?…†8?+Üü?z™1?±7?Y­î>ÅÐ? ³?‚åö?¡r?Ê%Ä?±û?’òD?„Çí?j?„O?—¹1?]R >éª?Ví?ÿñù?ð´Ï?Ù³I?ßØS?çŸk?Ê%?•ó]?e´n>æ˜Û>¢o#<¹ 9>‚Ÿh?d¤ ?€-?«¼y? «q?dpâ?d' ?cÛ•?ZBå>ãQW>Þb™?Cª?I×û?Ôæ? Å?ˆÉD?—oJ?ˆ™“?€ì‚?>Ü;?È?Å? R§?<†Ã?^Dý?_‰a?i}?‡ Ð?µÅç?¢7ï>*k!> µ¡?|}·?~Ùq?`@Ë?Zàm?Š¿?–µý?NnI?r>ÿV×>úx>Óvé>C°Y>hy?_}?\ù¦>óŸ>Û‹ÿ?;Íð?V')?UØÖ?Uˆs?Ô;±ø`<…¢¨=1Øu=t$è?bT=?jÍ{>®$ë>=¾>U'->m#>ÔÛÂ?9Ù½?C'?œ¸æ?œ{˜?©^ò?¬¸*?˜«'?‰ ?jÔ?&1?-3??“Â$?•pâ?‹8?‚g“?œ™?¯­Î?‰M˜>Ìc >Ïøâ?–è1?˜±…?®>¶?¹H?ÅŸ?à%S?ÚÎ?Zaz?_u?8~?›°ì?°§þ?ÊíŽ?Ê/ÿ?¨ðF?¬7ˆ?.<>²¼g?ãR?@CX?LmL?‘Š›?“}>‹Îå>#iÀ>ÅìB>ź +>Å÷>ŨÒ?˜M‚?È-0?öÚÆ@*…w@),Ï?a¼W?DA?V© ?o<?‚-Ù?¤_×?¥Þ˜?cm?COT?¥Šª?þjR?ùúá@û@ÏL?’\‰?\?0§Þ?Î?–?ÒÖq?²¤B?™@?ÁO¥@N¾?þï¹?£?À7n?ñ©}?öû›?¼\?¶?Ï?·Îp?¹dç?­à ?=+à?>m?„&i?‘X“?_Š‘>Âó*>ÉxI?<%Ó?CD±?™°Ì?ÀÅ?ÖN@³@¥9?ˆÏe?V½j?Yg?VÏë?b–ñ?ŽJô?ŒÉ?îjL@ ‚@SÞ?ÏTÛ?̃›?ÛöŸ?ß`?²…ú?¢Z¸?º„9?é]?æÎ?Âu\?ÉÓ ?¼ ?¨ž®?§H©?•ÖÛ?—5!?ŽH.?ƒs?q?Å ?÷çë@ÐÌ@¥º?ƒuú?uw?šåX?«Øw?®¨?‘zH?Š =@a6@2¬@m@îf?º¹?ó¹>þÄ·?fâM?t¼¡?Œƒ,?ƒ{?‚øœ?™V?„$ ?mÅ?‡³?»~Ã?ÃjÂ@.¶@5(@i?Ô´ñ?«ðõ>Ì™þ?î½…@Uc?ÿDx>úL8>óž>‹åŽ>œ\h>,ͺ>ºŠ:%ä=½‡¼=Æšö<ëo,:ÄOà<¥:n?·?àà?4 <ÅP@><J>ÏÇ>ñâü?Gò(?D¬?Az†?>~ý>æÄ5>¹W> ’=úfã>°JM>®}ú>¬Û¨>«d6=èKÝ=Ú;0=ÝïÕ=á'>jëè>¥Õ×>Ü©p?%04?p>_Ã>¦-õ?,Ð?'‘Ø>ªÓ¯=Ø7¹=‚FÞ>Ìž>à—3>Å*j>¾S >:ÖR=j‚>Êó×¥?>ȃ¨>Ã>䳉>à$c>Ùù>X…>å)?GÖí?%;Ó?úc>ÈÊ>Fw0>‚ƒÏ>©D>ÜŽ?Aýs?"ñ>(õ¦>…ÏÒ?HáÛ?0à>;'l>/Š>!tp>#¡>ØËR>é? Xö? +£Y?KŠ–?[±>X_ò=HfW?@ÍŠ?jcÉ? ¦>ê³Ò=½a=#@`=‡®y?{h?8®>m@í> Hn?®,?=ÈŸ—>e¾>‘o·>ê">שè=>$?FºÈ?]­œ?Ó«>øñ•>íâ >íï>í³)>Ûxµ=!§Å>îX7?éz?°²H?“’ÿ>û{x? ½>î¼Ú?¬“?.€e>ìR=Îqí>ï>4>m‹>ïD6>T5ô?§«k@{?ƒi?•n>Ð6 >¡B~?µ7†?Íy?#6F>ïsD?˜i?£C?,cG?3ny?Ê])?Æ©+>Ö<>:7'?oe$?‚Üï?±?L?ŽZC>ïQ¢?2ÌÈ?˜+?˜{A?Ÿv +?r\ú?Ê–?M$?o|?fö?m[à?áT>£Bb>²‹P>Òó?·ð˜?î5M>Úå“?K¿?|U_?‘b?ŠOÁ>¡8±>¡ýÏ?Vt +?IZï?•~ª?‹»‘>3á%>?ƒx—?‘üÅ?©˜Í?¹ö3?çƒ{?¥]8>«‹S?mµÿ?Eßü?#¼>ß è>—àÜ>Ì2>íeÙ>íZ>>íK…>DõÊ>['M>¹Õ?&Ýç?Tfz>~Xä>²Aˆ>òÉÒ?M1˜?\Ù?kyÐ?‡‘>×,>”g´>Ç}>æßL?34U?=‰Ç?ˆ_ù?Žàq=Ò4=–”f=Ëç¬?°Ö€?ªéÐ?nÃu?WÇ€>ü#>9jÁ>oÍ>¿ø?MK?Q}+?2—w?<Ó?kª´?6Eo>~B? Ž?º»À?ŸC=?^W,?G >0­Î>ë{¬?<åd?‘Ý?gYž?$š‡? +O}>ëjs?Gµÿ?Ž4ë?ƒåó?†M˜?pß›?NrE>ÏJ¥=A&*<ò‚â>€äž>î8´?|b?ªj¯?àú?Ñÿ?žŸ?msÜ?Iõš?7ß“?£œ?Åi[?e˜?C‘¸?þ>ë³€?G9?kÁ6?kÉm?kÒ?k7>í¥`>ãT·>ÒÂ?wÈ—?Še?…z:?‰P??^ÖÞ?\©?<Ï?,gs>Öî3>¦§Þ@ ²@"ÑN?N€t?å-=Ypý?XöÀ?l×Þ=ø°=%4?Íp^?ÌB³?nÕý?k2è>"=>Z +ã?zÙ?s¡“?·Ÿ ?µ‚£? ¡÷?ƒü>²`j>Ë\®?¨f?܃?hl?‚Nˆ?²°N?ŠI<âÿì>-›Í? +B?„Ý?1B?ÕÂ>îà?1–F?‚\?mÔ?b¶h?a.?o[œ?8Ý>ï† ?WŒ? Î¹?Úc?ä“Ú?¨s›?pï?"?­Î=?ü?'@Vg?~`v>ð„‘?Rõi?p®O?ë>ðÛŠ?&x·?4Ë¡?1XŽ?)Ô“?”nö?¥T?=?0\ü?[”¤?d]?|ës?QÅl>—¥£?µ¹˜?‰o®=ðO >ŸŸ?"gÆ?[§?˜i^?¡ò?r ¤M?5ž¬?7öÔ?4 Æ?*-ó&Q?}ò¾?š*c?ø?”õo?$9? +ž?jœÔ?sŽ?s¤Z?sJ&?hN?fíç?‘s|?˜oM?µ4?¤.P?âcl?¬+F?&ë? ]Ù>Ùö¾?™«?@_?…ø¤?žâG?y–?H–7??>ü?5îz>æ¸7>¤íó?ù”•@-"?=?u¦@7K&@+Å{?vb?h›È? ³?xw>ôa²>ô]¸>ô[S>ÛK>¬WÂ? N?_„â?ei9?NGm?a É?t)±?( ?“Ú-?šL?t¾?S®h?Q2L?péë?sÓô>ú$Å? +õ?ó©q?Øaµ<».>ˆ¶?¶ŒG?§Iu?s€??³˜ï@@I»@¹>?À"Ô?[§²?'ó>ò“Ñ>áK°>ç>Ç•>¸vþ=ïú´?œ¿?ÓÒX?Šµ,?qw·?—LJ?ž|x? ôÀ>ðøb?KÎÈ?T@?»LN?ÅTI?ùöC?ùßû@ˆn@Nn?êSE?ÌÐø>ïPx>ï#±>ï?ü?jÜ?ÄËb@E1Ø@Oa?—wð?‰¥F?m‰ˆ?x|?†x?s°M?G<¦?G +*?MþF>ôÙ?Öx?°¤˜?—¤ ?rªP?x¤€?~•?wáÉ?j0‡?H†S?!­?Eu>éA??Ve“?®“ß?ªT#?¥r?·Bp?Õ*ž@£q@(‚ñ?õî>äëI>æ÷>æA;>¨±…;½À>¢(0?«å7?¡i5?d§C?W›š?Cq?B >ã>æ² ?‚—?{É&?˜;Œ?˜P¯?È¢x?Ê”´?“²?†ØC?‡îÙ?‰Y?QÕ€?)9”? WÌ>ß0?6'?†ÜÜ?@R5>(†#>ñ%á?Ê[+?¼Wv>œ1 > ·L?£¦ß?¤âÒ?Wyk?Fè°?bÓ#?jL¾?g©z?e`?^Òà?Ye/?‹ê ?ÙÄ?ÑÑp?¢¼?¡âe?¡§r?¡p´?mæ@?Vœž?¼ô>äÏ´?f™)?¾)?¤‚á?5-@ùx?”Úª?o3?9 {?ÄÞ? ~º? +î?ò>âÁé>îN¿?—P?œv=?îoy@¶I?ÀµÁ?OyJ?cæÂ?˜(x?–?‰V?à&?Î?ísz?®Ù>? œ?ÂÎ?™[û?™)Ê?k†?dm+?BbÀ?¥v?7ù>’ðB>„m½=ó®|=ÏD=r&Ç=/¿=‹ª=êHk=¢—<âŠÖ;õÀÁ>zí>Çý>ÇÊÁ>Ç”¿>Én^?¾l»?Äb?‡½y?AÑÉ?Ž©÷@ +W@Zé?*¾J? +w?PA ?‹|Ë?„ÅÕ>ì7½>ïMz?·½?ÑF¸?‚ía>¥h2>Í7°?„g?‚Ü–?y¡a?‰£µ?#O?¹N{?ºÄC?= ?£>Þ¤t>¹”>Ö÷î?uhÑ?z“Ã?¡Ü4?²‘Ü?¢›ø? ›?%?›É?¹gP?¦ôÞ?¯Ø?u‚g>Ãïè>Âol>ÂqD>Âlr>Ö%ä>í±–>ç_n>FQ> V#>·Lâ>€v>Ò‹³?6òú?9#¨>Š<–=MÂü>‰0Þ?F.‰?DÜç?CÁW?Büè?Õñ>Ã!:>ÞNÃ?BÛ6?Cce>õ>ÃŽ'?J™Ô?¿=L?¹Ý¾?YIH?V)é?§‹F?Ðc0?»/?Dm?E ß?…ìI?‰çS?¡2ì?¹âÎ?¥Ç?`q?k=?',ì?x•??1ß?h•?€*Æ?—×H?• Ì?”W£?¡(µ?¦,d?•‰?•©??•Ç/?•çý?È?|1?^g2?\‚ä?ˆU«? sò?—ì#?Øú@ +ˆ +?á\?…îÑ?–¦m?Ù ?ئ¬?׈t?ëû6?Þ–`?¾¾ç?¿¡ô?À‹Ú?¿ŠÚ?_;?Kj–>ÁÊí=Ôk§?"¤>?åf9?ÞõÙ?Sê|?L„(?Ý+Ó?ý œ?­âê?Ly ?µC2@L•@Oaa@|\‚@Úë?‘1*:Ð? T„@1a@9Ò?AÓÁ?<_ +?h·6?‚=‰?ôôú@î?àÙÜ?‘xÂ?¡É?Ρÿ?Ëf”?©© ?¤í·?Ò «?ïs%?âu?ºÆå?½Ô²®>¯€=>ÓÚ>ÐR§>Ùd?“®†?£ƒ(?’Ž>?&îG?";?!Þ^>Sô‰?²D?³íÑ>÷4—>×ûé>LZt>;@Ð<¡aU=fÀ5>Ì!å>ÎU<Œw>‹aW>å‡+>å.¦>Ýq:>«T<Übr=[ ;_¢Ÿ3<>²¦>Í_>à%â>|ì= ti=¸Õ<è9@>£P¦?w>Ää +>¯9û>Ç!|> dF='Ré>R>á¤>r$³>s©>ß–I>³ Ð<µ= "=,šè=Q"’6—4>¤nº>åAñ>Ë¢ß>¢‘>¶ >æ!>ÕŒ>´Ál>µW*>€ Ÿ>«(5?gL?Vo<>¼>2È3>#šn>œŠ\>£Õ?Ì?r‚>ëAá>és?P{+?]s+>ó‹ +>ávn?Yó#?j?jEc?jo ?î¼>ê½%???Ex¹?<ñ´?4L >£è›>‘ÂÖ?Wß?ÌË?Ši}?•²Š?Aí†?!±‡>Ñ¥>±‡ç>ž?B>ŠÅ6?tÙO?Œ“_>&pl=m +®>ô{Z>öË3?j³Ã?lé.>îG>öŠÎ?cßp?Uÿ>Ä£ >¿«×>îJ÷?æx?¡³d?Ž7+>ƒx‰>¯§Ä?-ò,?!Ø? ¹>Üaƒ>‹Ž#?FQ>üþÂ= ø5<<ìû3Ûd<7M€>ƒO{>Ѳi>Ó0? N?=¾?Hh1?BW?<<Ý?ÌÌr?ö–‘? +¶4>—ªý?Û?ïh|=¡Ç°<¿ù?ÖY?ïÕ?³+?«¯©?o^ÿ?ƒ6?³€‹?•Þÿ>ïML?&ìÜ?‹;b?Žuÿ?‘°¥?D5²>Yœ}>ìÐZ?EÐÎ>»%›?=pº?¤GY?AÁ<·Í?~%õ?³c ?+v>ÕÍ?V}N?n®'?«žà?²ó§?” ©?„÷’?”í°?–ê—?n_ÿ?`.µ>¬ÏÞ>±ùÆ>fT>”Ö ?bÑp?P_>íÿ?xå?[Bk?Uý>7|”>åÝ”?I&?">>‰@ë>uË6>8L>¾Q5>ífî>IËX>4à>&Äï=Uˆ<ÙÏà=q\>üv>f ”?½6â?Ó +H>ÈúA>`n>]'>B¨>âȼ>ì|—>ìrL>ìk¬>ÏÀ_>ÖB§³†o>¥åÊ>˜Gö>ýì>ëùŽ>ñ'å? ÿ‹?4CÄ?‡¢Õ?hËï? Ê}?aïd?ãj‘?žœŠ>ÈÇ>Ýü(>Ü ý>ë±ú>Ó~½>Ê_r>Ï &>¼v¦??ý@?ë ?”jê?© D?q–î>ëžÞ? ì?9Á>†ãÀ<…Wµ?> +?°¨)? =+•`?´?È×?inÈ?dè­?²[r?Ò­¡?–Û?kÉ'?«v^?ÓgÈ?`‡U>ëà?ÇU?¹þ?FÝ­?iú?lx?l ™>€Þ=8Un?*^k?SØ0?~ìna?Ã?qÏ?ù?”Á„?×ð?ãÁ—?w¡Á?gkP=š¼?`Æß?m e>×ê>Äš»?½ÿH?ÀZŽ?èó?({?I½?=l?–² ?”<?Bä±?IÆ?O$w?=n>(Ë>‚1‹?t¾c?Vé8>îFß?/pT?²Ð-?Ÿyò?J8? •Ã=ðpw>Í€7?nàÉ?w‰è?{9{?z!?¸ýk?¤ö?ˆî³?ƒÊȲö>âl@>ïÓg>ïæg>ïûZ?‡6š?²-?ŽV?„\?‘¯n? Ó>Õ]‡>o? Ãi?)_>‘üú>pÙ>æUÀ>ñ`?žô«?ž{×> ‹>!Ü?Ÿ,>?šæ™>ñ¥N?Õ*?´ò?ø5<œ¡=ö×Ù>€[R>È[Þ?.fË?–??ië°?#Z^?LŠf?rª{?r¹?rÍ?û¬>’Ô”?uÐb?ŸO?+âG>ó,? vÕ? ˜?ô)Â@ùg?ÀEi?¶ys>ùNw>÷g·?©Z?¤·? +›Å>ø®£>T¡•>ì©–?Œ#±?•i?¨¨?cÓ!>_í>³¡M>âÕø>>ã?¡?t:”?¯<º?Åa|?¨L‚?¤0Ü?Ï°«?àÆV?‚Ú?sr´>ú?™>ô^??p?`j?€§>ä.&=¢e?å6?Ȇ€?…¢ >?ª>ØŒ?Eqƒ?'ØP?$Û?aÚõ?š.?¹/ò?Är?™ž?ŽBÏ?bfE?S¨n?7¦n?)ÁB?m)B?sÈT>ß³›?l#?õ7°?ÜŠD>ó|«?(ë?¶ƒÀ?—Áý?àK?9‰§?”ÝÅ?­÷ë?ÐD×?h>‡¯•?7Þ1?Œ>Ã?©Y?²U?:Œ?MZ>ž-ý>b"0?(í?W”î?‰ +g?x3?6QÖ?-E?4Ÿ?-ö™?&›~?n„>>pü>U~@ E%@§|«?o¥?ZJE>ïO§??ôu?â)Ä?=U‡?ÃdÃ?‰¹&>Àí5?9)*?š…?c n>äx}?=¦|?—W?a+Ñ>ë(J>È®s>ž—Ž? 1?Jl•? á¼>M»È>ÎŒé?/Þ?eÑ?¡b?’¥†?p#?@i>çë3?E$K?­‘õ?j„Ÿ9X|> $>æhz>á©ü>Ñ)?E‡{@eG?áή>*í—>™ø ?vg?–ô?Š½?‡Ò>ßø½>ï– ?æ?íà?Û×Ò?Û€í?]·?'ÏV?x•?Šf‰?rìn?` P?#a>ßwU?c®k?¹°?—æ«?.Ë ?0eS??ó?'ø>0è>?­ªÁ?¬Œ:?‹E>Çm?„F\?¡ˆa?¢u6?£br?Š}Î?YÅ5?Ÿ-“@»5?îÓ>âlŠ>êíª>óc4>ûÑ;?‹“F?š›±>î.W=Œè?(F?«H/?šgÓ?U=?hÉ/?ò¹ +?ôwû?ŠÃ?wæ°?Å[> ˆd&>XKD?z6?!&–?ßÌÜ@¶?»”ç?P?pO?¨­q?ªga?.¥i?)'§?Š°“?¢Š“?tOÅ?$î?.”¸?sK?xŠÀ>²Ô6>}>¨?V$‚?˜Þæ?®C?ÓÑJ?Ëå3?FKk?GŸ>ÿý³>Ê;f?ˆä ?ü#c?ðË?–ó8?–Åu?•va?“¥2? ¡<È3\=§)é?ß”?ÕB>ðI™>ä« ? #é?=—ò?^?¦¨«?£õ-?©‚\?«Ù?‰L)?(I¸?6æB@8·@„^?–mê>ôV?4B?°y“?¯y”?,­Ä?”?#2’?Ce£?Bl?Î9?WN>Þ¼Ø>¥ÑU?'Û?T ]?E=>>òns?qì?‡–?´14?™Ì >YÌ÷>MO/?{Ĉ?Ž®ú?W‡à?o§?–$>ãÇâ>à«ë?Z+?+¦ˆ? +ïZ= +*¶<ã6C>¥‚g>Ã",>Åë‘>Å"a>ÓYÇ?A³?CMí?‚¦v?’‹P? –.?ÃwD?Ág?êø>÷t?uç?¼«D?´?‰Ž?‡Xd?a£ã?aæ ?öç> <>WÄû?˜r@?žØÅ?“ÿN?‡z?bS?³H?#?Ì?¼ŠÖ?ŵ?ˆº8?!Åÿ?ýÕ>ïw >ét…?T?ÁÛ?< é?v?!„?yF}?w\Z?q&>?~°¬?Oä?–Ù?ˆ‚õ?!ñö?#h†>Í\Ž>‰ø²?tr…?îçL??¥‚X?¡×ù?#ì%?KÑ?¯bð?ò~ƒ?¿ >Êž>Þú?‘~e?˜JT?Ž÷?Ž|D?…³ï?Y_~?Qxº?Hµ?I À>¾@>ãHó?LU!?iˆ?™]?–<’?RY;?L´R?þdµ@†$?Ý„A?‚C?|Ÿ>¼`>»Í?oQ?‹då?;Â0>ð¤X>ó·;>öÇ\?´V?ºÖ¬?¿^°?uêI?LDÕ?¹5®?ï?ë£v?Û¦?Ê ’?tŒõ?±$?«Hª?­(%?›|?¤n?® ï?­®µ?¯<÷?ž‰£?˜Ò-?‹q?0§}?Ý’?ˆ¤¼?²?Üo¶?ä‹?Ðî?ãyø??èö@?êRó?¢ÀÑ?Žqå?šö?$o?Y_?¥'?« ?SAµ=ã»>Åç?¯j?­œl?Œô©?<%Ó?4}>Ã>¬/L? V|?ƒ;ö?‚O¦?K?*ð?$mC>½¼×>¦h(>á©î?n–&?pÐS?=Û»>¦ÑÑ>¥°>¥ù>™/µ>–Ls?Ö|?¦¬?£Þ ?„Ög>¿ =Ôo¤=ì F>›ÿ>ý0W>ÿŸ%?ÉZ? `%?¯&?bL?"MJ?"ÎÇ?°÷?4?Ãí?u÷Ä?„…ô?Çj?u³?bÿh?6œü?¡>Þ´M>Ñ7o>ÃÒS>³[ƒ>‹>D>Q@‚>)¶>û¤=åä'=Êð;=¯Õö=”Û=sñ`==èã=0v<¤6;æÔP»Ç¼œ«x½çã½8è"½nF²½‘–½³½éV¯¾s¾9/t¾c~¾ŒÕŠ¾¤%æ¾ÃxÓ¿ +IL¿9‰8¿n~’¿ˆœ’¿ŠA¿ˆ¯Ë¿†bú¿•¶M:Û À@TM@6œ€?‰át?Ä>^G#>¾ +>Ÿpr>S[œ;P=@ø=Y¥E;×›P?^0?^’B?c'q?eèø?/å0;=‡Ü=ðð>Ürò>Ù}=fŒv=*ÕS> Ã>Àž>Üýà>áU9=ø\ù>LÔl>»Y÷>nç.>œª>½”‰>²?`â?¡õ?Yùp>œÀô>Ú¤D>Ý©3>àÊ>v >:w^=#C÷>×CÜ>Ós;ÒªA>¯.Ñ>Âó±=§¨Æ>ÍxÒ?&™Ü? kt>å…2>£\ó>) +Á>Ϥ>æ=µ>Ǭ‹>txÙ>f¤ú>qêÍ>’ÜÂ>çMÆ>ÕKY>(Oî>B²?MÐ? Ç;öKµ?hf?há•?ùÉ>üãP>Þšä>å`=#>Ô«>ñøS>úPn?b¢=÷_¿=¤©?OH›?k7>³–é>˜,o>šB¨>‹b?Tý¶?kë?<Çu?DÚâ?“÷è?›É¦?‹Æ¬?‡ ?Tàí?U-¢=ræ/>Ñ3º>åï;?j…½?mc?m—d?f =.Ý{=¾æC? v¿?Y?MëØ?2²:>,'–>ºr‘?—Êý?”ö«?ŒÕü?|´?n¦Ž?'òt=†} >!Í=–ú>M«¯>ï >ï`>éBl>Ýué>Ñ¢¾?(Îã?T‚Õ?ZÖ>¡¼–?<¾E?oOd?oW«?oZû?G‚r?C(Ó>»[k>~‰m?Üë?ïdþ=븳=`“á?±ùá?®Þ°?p9Á?e¥Ù?j? k?*åk?DÒ>ß >Ïðý?oF?Yz˜?7ù´?Æ'>ï1€>΢>´ë>0°×>¸>ï,?‰U[?²ì÷?CíZ?Œ­>Iܦ=ÆôM?þ ?”¨?†ø?‘ 8?¯“¼?¸Kj?BÝ•?D’$?*N£?)Þ=¤†t>h&?«¬M?Qó>¨1?ª£n?—½s?n?YFa?'¬T?g*?'ŸÙ>ö˜¢>yR[>Îœß?”B?]Ù?ô>«G¢=øU!?T%þ?®÷Ã>÷¸ë?åU?6ÊÓ>З>›`7?…á?¨-r?’.ë?{mû?Ž(>ì¾›?,Ï‚?$2Æ>ïâ >ì™g;øŸ="ÃJ?°Ž ?¢•?&¾?£Ë?QÊ™?JôQ?D"°?2Æ©>ì:Å? +?™?[­ç?,$>èž>¿^.?™_]?’7â?aݸ?i8G?kþ³?ˆ’Ç?©N“? i?Y]7?1 >ëë¡?sú?B>œ-{? är?§+;?a¿>ªê +>çdH? ¾?8·D?kÝ?-„)>ëÞ>óÅ? <>ð‘»>¿kŸ>øúÊ?Y ?´”>ëóß?ƒwu?³——?z®õ?@¬ˆ?K3>ìÐ>ìk>ì´?IÓŒ?l*?5>ì;@?ç5“@ *½>ý*V>:çü>Ž¥F?Nòh?l€R? +~ >ì“à>ìœç>ì©E>B;=þÛ‚?¦îâ?ÆDâ?¨Ÿ0?ªõD?{¥>í &@EÀo@C l@ J@° =ÑÌu>R?BÝ?\fÜ?Ä„?±¡Â?tî˜?¬‚?^óì?‚2:?²½Ã?£ó2?i-?j,?ì³?~•G?nÁä?Á>x{,?,q?{§¬?³eá?Ž9 +?D÷?4?µ?c{?(2s?Gÿ>çÿê=ÍEI>–‚ +>ïø©>ð Ï>ð ™?ü@n@)?´)Á?po,>Ô»´>•â?? Áú?P”?1ç—?4ýD>ê¼>ÅÚ2?sGÕ?jüô?­;%?¶5›>ño†>ñ†*>ñ˜">ñ¬ô>ñ½®?_?roÎ?‡F~?¥ÓU?Ž d?GÖ'?%C>òQR?:ãÎ?Žo?u1Å?=¡?xØ}?–Pg?i-~?CP?4ô?ç3?:9?Ê¥æ?= )>ó7#?_uö?sQ=Ö@`?ë]?îd­?kÙ˜?\D–>ó­K?€9?›=ñ?g>=ÊU¨>¼Ê¡?áâ?2èÅ?l>ÝÜ^>õ${?Rû>·Å >–6?)†|?t:S?ÂÉ?â­ó?A)|>ôJY=ž),:<¥’>ä3æ>ø›h?³È?·”¤@ @*f?Ó £?Éa?¶Ä?œFL?r4å?=ˆ.>’’µ?(`?tAî?U¨•?0i2@>@t>óu_>ûè¬?¿Í>ë†=¨vR?'‡?§Å‰?‰yÜ?C/Ô?6+Î?SÏ?9+ù?b¢?˜1£?µ8(?VQ?K!>ýÑt>ñæÍ>¸õ=>™'?{Z@?–MJ?Ü]>ºý®?–±x?¤«J?®„?°­?¯8?©ƒe=³“a?oô2?|…¯?± ?›Ç>ïW>ÚTó>™¾°>×Bc?+_J?!?ò>îY3?'óµ?‹˜?hµ¯?´8?QcJ?«J?œ™?2¦?Jç¬?‚?‰øZ?Kä?œ·?±ÿ²?…ó}?d>Æ ý=Ûñ3>’à×? +{Ï?7Ùö?y@?¡„?ÛÕA?œ¼U>âÏÔ?LÚi?®kx?„ >èW?iŠ?åœ?¾k‘?S¿x?4ø >æ“ð?"sG?—¤:?ƒ8¾?!?aü>¥JÇ>¦Ç_>߀D?L?‡F3?ˆB¡>ƒÓ$>|¢t?|êþ?Šå¥?½ä ?øü?)‡d>á|ž?R¸?}£Ý?‚‡ ?‚å?3'†>ßÂî?lOÃ?Ħ†?·•‰?œ.R?¨`–?Íc;?Âõ?]qN?_TÔ?Òkb?Õ°=>GÜa:d}??&¿?[[_?[ †?ZÍM?‡U’?¡¿y?^E? ÁQ>ú$_=K +m=ˆÁ£>Ø]í>Ø”>Œ ²>Tw>¡ÛÊ>Ÿ@b>ô=?++t?$¤Î?º?>Za?öC½?ôáo?g‚ˆ?T<{?#>Þ#?S³Q?ŸË?‰Á‚?cs?Ç>>«ó±>£Ç”?q—?Šd6?¬ßD?ºr?©’¿?“\Õ?ŽvÊ?±?æ‹?Íä>αÀ>0V=õMa=üŒÌ> +•™>$ñ?½b,?Áû?¢Y ?˜4Î?á5Ž@õ¥@÷ˆ>ËzÝ>Ë=Ó?>Á†?J<ð? {>êŸ?Ej^?Æ%W?ÅUD@!ü5@#e?p·Ï> Áj?‚Ðê?€žy?3YŽ?/T>>ûñf>ÇšÑ? ¾ ?‚å?„*Ô?ûH?Ë£?ƒñá?Ÿ?¦«A?êý?í* ?r>¾"ö?F?•~¤?’™¾?EJ +?E,4?>¡·?21>ò{Ö>wKS>•®??c§U?d6¨?n¼?§Ö­?„'=ʉ¿=½Ð??W¦S?|òÍ?„G=?x%í?‡CŸ@ `@ ‹?¯¤v?‰Ek?t$q?6à´?6Ò=Kå>_Ë>>ûX>ýš>ÃÀ[>Ãų?/þ?CÕ ?b>È=>â›ì?Ry?“ž?3­ë>þŸ>Î`†=LÍì=p‚>ûÌ?eè??Vc?Y#?Z‡A?E!+?Dã†?#XG? Ñ‚>ÅÉþ>»;Q>ÑåÝ?'8 ?*zÉ>­ï>»:>ÝT7?‡?Uj?„Ì>?zÿ²?1“ã?3?Ø?7?¤?Åo?kA?Y*7?‚L«?mŒÝ?$ +–?'Ð[?€©K?†¦á?.q>ÈÓª>ÿß´?I%3?F\_?3 ?4ν?”y ?¸,ò?‚i=jO>]G?¼Ÿ¡?Ũˆ?-Q>½.î?9É´?–ŠŸ?‡Ìâ>Î* +>Ñ3ò?µmg?ËÜ9?f¢ô>ÌF?#8E?™<?”hG?P3x?L—>tn~=¬F²>Œ#¢>á*>å‘„?)ŽH?1Ç5?Êd>ñ„j>á>E>Í,s>×­‚>þ(?Øê?2{:?.Ÿ>×͈>Ìøù?AÒ?-dé?)`«? éì?--?Ü–‘?á´l?¯‘?«i?‡Í§?,ƒ?$Ÿõ?n?‚e]?R˜Á?=¹? “?¶êæ?Ÿˆ?ŠKl?‰ø÷?Ä +¦?ÇÀ{?m&3?îz?PÓÏ?«KÜ?¨íõ>­^>‚¾à>ÒJ¹?¤?ß>:oª>6mF?~µÎ?Žû?nXÜ?=ÆŸ?>Öc?@÷?>–?<2\?9Ň?CIR?‡k¿?ˆ‚±>ú „=„a°?nxß?„1?‘ud?ªÉ×?¨#?(« >©o>§‘1>ºƒ=>Ëów>·%=žÊ·=R›Ä>µ7?JOà?FcÃ?A ]?xæF?³6?b¥™>•0<ªJX>±û¯>Þº>ؼÑ>ªö>}û>xÀÅ>zM€>é¹?Å>?ç*? +®>øû?F‡Ô?NÁ?JiO?@Ed?A>ô_i>éÛh>ãc>Üsz>Ñ^>¡§>h@Ì>O&>C,m>6Ã>)¶b>+Ê1>=j>LF(>M¶Õ>B´r>,õê>q=ÔÁ®=ƒR,<°„O¼²co½ƒ6½Ôh4¾¾-¾DʾRf¾V±/¾Oš_¾Y#¾r慨—ß¾È?o¾ÿ„Q¿¿;!²¿WÕ—¿ƒs$¿MÔ¿µ=j¿£J¿}ò€¿0M¿ÏÄ¿•¨¾ä!R¾æѾù|¬¾¸v¦¾]ÞX¾¤Z˜¿›~Ù¿àõ¿ˆ¬a¿•F¿Æ)¿iúÚ¿®õë¿ŠÓ˜¿Œ‹£¿•z¿±âs¿ á»¿‘-4¿µ{ÀdïÀ³M¿Ål‘À*e½À4à&ÀjSkÀsvÑÀ­É:À´§oÀ¦º¿¿ ÀwMÖÀŽ¬éÀŽjåÀ‘#aÀ‰¨ñÀ—¨CÀ®RËÀ8îìÀƒŒˆ?Ø@Ï@+é?ÁQš>ÞŽ>ÏNô?¸}?V>$Ü»=ëlÞ>fd>ÓŠ&>’P=U ˆ==8<³˜=jÃ>æ?>æ#=l£á<“Ò<‹¹;”CU='­w=2Ž%;4m¯>£Lß>ÇÑÏ>´H¾Ö˜?X#s?ä <ô/<íŽ>=5F=^„„]@?›û?ÏÌ>ã¬^>ãÖ@>À¦I>¼ +==ÄçM>•¢‹>©òí=Ä6÷>8*>žò†>x Ã>4þ>bç>€&C>ii>câ>>p)o>|­ê>w‘Ÿ>7õR>†Ö`?BÇ? ý´>¦6'>Á6œ?4_?1U‚>H><Ï?]iK?a.ž?ab:?hS<—™-?ÛÚ†?Þ>ú>m:=`1–>ÛË>ê”w=)nD>|T>ž~=%,>=Sö>f…>ë÷?ÌÑ>a=D>'9?ú ?+îy?„â'?œ×?3Ï>ìãé=A§g<0Ø/67ÕJ;W´V>ð.Ä>ód^=»ÈT>è_>ÁXå>Ì€9?Mo?V’Ã?œÉÊ?§R> É•?Dƒ²?f ‰?™P?¡mi?–³K?Vs„> C,>Àš‡?]´Û? ´75L<>´`= ¨ô=lœ>”À>ï+Å? ®?4Ö?‹Är?£BX?‚œ>?oL·?Ššr?öT?SÆã?81?:4)?G¹Š?Ýým?ë¹/?W1>èË ;Ú"¨=ÐçÁ?ã\?"á?š›?ƒV\>ïZî>²æÐ>“öx?oLw?C‡[>ïBÀ?K;?³Ò>«É™=‡å*<µJ‡>L!>ï…?‰ª?³@ ?‚ìä?W3y?8Ú…?$ÅX>ý!î>îÍ4?^Çý?n¼B?B ¤?D€??º?µø>¯¢¼>„í.>îu‹>îk >î^ó>îuì>áCÕ>éÕe?>ö?$™?´é?œi>¼ôÏ>­Ï|>sT>¦ö>éÅå?„k?†‘Œ?~Ù?n1v?j>½l«; ?Ö¦?UÆž?<>º[:?Ôò?Ä{>“4f>S5’>Õú>íè?Êü¹?î¤Q?cY>»q¼?— +[?¦?2\>í&;šHw> Ù>™Á>źT?*={?'”â>ìq5?©»?Š2ç?‡™?BÑá?æÚ>ÔAú>æCØ>íTž?<«?¯`?uÌÄ>I„Þ>vtH>qß~>±íB>ì'Å>á4Q>ä2û>¼”:>>”R>˜i>ìT>÷œG>ÑÜn?-ã?\²ž?i3w?lT?,u>ì¶>q«Z=¤H"=Ù$>׺>­J*>ì*µ?óU?0>d?U0ª?l:Å?6°G?-ý>Û4c>Æ6y?¡w?\—?M*ô?ljI?jSK?dl?†¡×?–@?P-?(IQ>¹:>ŽÄ<>Çìý>îÓ'>—T%>Ú">ãó>ìç²?oåð?^ Œ>\~h=ÃÙÒ>Ý7&>í,]>í9]>íEŠ?=E8?e‰>?›aH?¤Z)?uÎT?e³7?ö?v¤?™Òï?£:Ê?Q5 ?Eõ?MF?ÂÕ?î#Ã?ÉÃ/>ÜÞ©>´~=õï3?–?F ç?ªÌ²?‰gø?»o?¹T?µ6?!$?ç™>À 6>žŸ?(ý?‡ƒ‘?KF¯>ï…í?6\º?o¬?w =ܹg?ZFø?³ó2?Š<;.à>§vü>ðH‹?Ì][@Ê?àÔ?Ë‚È?J(ú?ÿ?_ßë?pâ? .½? ˜4?lïé?qï*@gú@¬ì=±Î=äør?)?¿§>ó`ª>ñÉ>ñØÝ>¾|=¨ü$?õ=?µ™º?a?$ä>Û +Y>*›¾?ˆRX@ª?¥~ó)U>ó5w>óEÎ?cçâ?s_T?s=ö?kNN?/š?(š“?sŸí?bÙl>ó·¯?Tù?Fžœ?-…ÿ>“~û>‰¿µ>€?È:?f­Œ?9(:?¤Ô>ëíæ>Œ§{>êXy?Ã^?bqë?‚ôL>ôQã>ññÌ?­?§o>1)¯>¾ÚZ?ÏÁ?·êµ?“»??éJ?¤k?sQk>K>\¹>n^>ñR?>zë?5öw?''œ?mQZ?’´Ì?¡»ÿ?©&Ø?árÄ?ô5?¢­?Š;0?DÊ>ý­J<¹’‰<ë(>ó8¾>ñ+?ì›?AÔÍ?¦æx?—¿þ?[Œv?ÿF?³žî?’xL?Hï\?Kæ¬?CEï?7T”?0¸H?»>ò†‹?`[?’]S?ýM>*ðÎ?d??8?LÒØ?V^>ï‡p>É/6?×+?ñ6j? Š“>ûÌÂ?hÑÕ?p ƒ>ðŽ[? öÎ?ìQÁ?à8?¯wÏ?™Ö>@¾Ž>ˆ«>ïcg>ãÚœ>³Z)>䟷?JE?F?C +X?V?÷u?á$»?µœ?Šœq>üHÔ?S­Ã?±·_?‡ôé>þ­Ð?&Þ¼?vTî?µu@‘;?ĉ?<Þy?1÷¬?mº?6”%?j®?Š @?ªß?¦`>éŸÙ>X?Ÿ*@,l#@Þ?_‘d?$’b>g9?Þø?£\Ñ?‘ð ?Lóý?Cäç?1çJ?0>~Ë?ÉâC?³F>…K´>‹Cµ?' ?)›4?)Ly?&ˆˆ>ЛË>½¾‚?·?Ï?ÍAÝ?6">˜(#>ͤ >á-5?Zàì?Ž ç?YHa?«ß?')]?>îX?V??uŠ?rUâ?q„Ñ?gÉÂ?Z¹Ý?Zœ>Ý0<>Üäé>Ü›p>Û•+?‹F*?¢dG?>,å>íþŽ>þd…? 5?#-Ü?G„ù?e÷?«˜Ù?¥ô?‡Qè?„ñ’?–Ø?”oœ>Ñ‘ç>þo> nß>(È@>µ¼ð?'Ô–?f0}@´@F?‡O?ƒL…?8hÌ?&R?(eò?*6ÿ?:Ër?S ’?^‡?ŠSð?ˆ&0?…ýë?ƒÒ{@,^@%½?@Ó?è8?Ïž¢?@öê?B¥ì>ðXN>áÐç?+ɪ?IKè?xd?š±R?‚k +?4—?M j?ë>Ú›??C?G{?G³Ö?“ëN?“]Ï?[×?=K?(/?—?=gÁ?éŒ?ëæ÷?eÿ?d3?4ï?f§ ?NÕ<>ƒxÇ>Š6„?N?`œY?m¥?VJ?fY[>]!¦>V9õ?@ýÇ?wâQ?£¼r?Ãã?¸&à?dÏ>úó? ðd?ÙÊ?!di?"ïf?'ö¾?ƒ3Ð?….‚? +Ô®>V£1>¬÷:?a'‹?f"Ü?:?2JJ?Ó-?€ã?þŽ?d^?˜6?À3ÿ?êl*?ÚI ?À @?º…>ÐP/>ÄNà> Â3;ŒŒ?‚~[?‘õü?oÕa??øæ?1Kã>Ó2>Ö–H?)À;?8^Ä?ªŽ?Æv?6ó?5¦‰?0Ýâ>ã…a>–ïU>™å’>Ä÷™>Å +Ž>ñFÈ?FØ?us?£“^?šq?¤#? >g>©¥‹>e{Ö>%_>2¢W>Ž`Q?v?ú?(õ!?F™Û?ŠäF?Àò8?¹në?=`'?2 Ô?/)?,6V?):¦?&@Ï?î®?$çü?+˜1?Ø>È~Ó>Þ;S?Ô?$A >ø>‡>ìú„?-ãå?IŒ¶?!æ+>ÉÕ>Ô~ÿ?6ò«?<8Ù>ëÊR>ÂÅ?D@\?—Äý?xF;Xp<9F8?2*C?KŒ+?qÜ>ËË{?F™B?Ì û?¼é¤=ª¢Á<ç6¨>¶)Z>ö$`?Uûu?’ÐØ?‡Nÿ?+Ÿ?%X­>Ím>Í'®?°â?4?V R?|X«?j[x?.` ?/9@?•Y—?—¼È?‡ï?†Žý?M ">ÍDô>Í6¶>Í&ù>̉|>S4o>GÆ¿?9ÃÀ?›_1?€– >à’‘? 4?vÇ+?t÷¨? >ÿ?DÔä?†Èm?•†¼?þî-@K­? àÀ?”ñ?©-´?± _?«T?‹ª±?‹Ü–?RCR?F?h?h¤5?‡Ÿñ?p½ï>8ü9>ª‘?tù\?‘–8?Ž^?ŽC.?Šâ5?CP›?>b?xÅv?~Þ?ŒÓ?Œ$&?‹j(?Vœb?:?:n¼?-zy?'ç=>ðÝ€>Ö-M>ÚM>î€>ûh?Âæ?nÞ?ÕB>Ð^P>§3C>¥¤>ŒË>mžž>‚æ*?!@¢?5ËÐ?? +6?e½g?c/a?X&·>çÝ,>­7¥>¬? ?á/?0ö±?,ûÕ>¹¹Þ>]¢>ot>š<>Š±æ>Éq0>Ê(ð>순>ú^Ð>Ü!>Ö +>ÉSÞ>‘+î>H-><×>67å>S®Ê>Ï™>tO>d’j>Uf‚>FbO>‰¯>óU>L\B>tÛî>~h>l` +>Xò¥>D\®>. Å>l%=þQ=È‘†=VU=,–0½-¿Úž¾¿V6¿d5¿LA¾Èr¾”<Ò¿xQ˜¿¨>Ñ¿‘51¿£ˆ¿%>ä¿—T¿7Ãz¿NL¿t)ë¿õ‘Ï¿û}t¿‘ ‚¿;—lÀˆ¿Ï½k¿žsºÀ @À +­\À(àlÀ/e{ÀdÇÑÀ-³kÀ;_³¿¼¹ˆÀi‚ÀypÀY²YÀq›ÅÀAµnÀ‡9 À‹kDÀHÿH? +º@ +T,?ðI|?Hø~?W'Ð>ú>¤>ä<Ó˜X=Q˜x=ïßd>×%ˆ>æ£ô?]:?`v¹?Ø\O?æ,Ü?’;ü?f6i>È9ã;l[j<[¢QÖÖs>Õr‹=G€ä< }=“£Ë>hX>Ð(Ê>Èýº>·hí>Ó`>Ô"ï>ÕN>? +>4–Æ>âL>á&­>ß4L>øä+?bEK?bR>êÙ'>ây >âÍ>áÉ> I>tò >ÖJ¡>Ó>ÏÊb?'þÏ?–šZ?Ž•¥?uú?in–>ä ¦>ä2þ>äVr>ä|à=4¿S?\º©?†8q>þõê>Ø>âÕK?U–>b/Ñ>¨f­?*§í>ï]í>Fg>žÄ@?ö>î+¾>çZR>þÁ†?*ç?îª=¼‹(=ˆÈÝ=¼ÐÔ?_\¾?[Œ{>ì¯,>ßÈÎ;jË8P€€9‹3h?M…?$“=<º›e?E.å?J}?#ª?–Ô>˜’G>‡7<€ê>K?ñ>FÐB>¯æ>¡ë?ƒÓ?/$<ë¯J=†=?ä*>ô‚&>ìÿy>êDg8l‰:Y(P=HJ~> …Ô?Õ1?.Ð>í¿?ß½?mí?u[H?’~??„–[>Õ ?>ªhl>)a>Ò‹=øøÙ? +JÎ?ÐÐq?³7ó?]ÅÛ?4>Já¦>èæÎ>mÔ>J+§>º>>Óô&>ï$Ö>ï,S>ï22??ö›?zÀ?SƒÛ?BUp?’›?£&‚?¦='?©X‚>_Å<ý'?¤P?³‰\<óF{<Ÿ =+=>ïdA>éI¨>ÝÑÖ>ýQs>ï\>Ñya>d">½ß’?CïFX?*@ˆ?o?Z?CÿX?`u>a+«? +›?e¾ù?36´?$°¾?[=Œ?nûá?nö +?nì,?A3É?0ZÙ?eº¦?nËc?¨>î¹K?Te)?b?ÚЀ?Ûnœ>î‰>îæ>îsÞ>îi¿>îa? h«?N#O?>>>6àM> p0=”§Õ>8=¿F=®ª†>é?<õ;?¯¼þ?aŠ*>í¸v?8Xµ?Y]í?"ìB?’8>‰à>Í:?JÇZ?}äŒ>Ðãú>W¯Ú>Ñí[>í<È?>—Ý?R–]>pÚ=Î×Ó>æu™>î[?«ÐàñÈ>ÑA-?Uà‚?QÇË?ukÒ?NV§<å’Ì> =>#>šžh>¨'ó>µ²G?!E±?и°?§ù“;‡NÊ>¿hõ?¯œú?xN >3‘~>ði>³“_? %W?e¯?t>]>h»§>F%->—æA>ìUË>ìW">ìS?¡Å¬@ Š¦?¿;BR=1¬p>”Àh>ìYç>ÍëH>¬l>ü¿ÿ?)?%zÒ?2"â?U”û?lp/?RL”ý+<ù€ ?€Ò"?±r#>¶‹\=ZÉ0?;xŸ?l°ÿ?l»£?l±>×ÞÇ>µ˜Ù>çÄ>ìã{>|4>>3Û>$Õ–> ‚Å>§ë†>À¨ø@ѽ@(D?·qb?±øó=Þ <œàÆ?a²x?ZP >í‹Î>øgô?m£?dôc?Ĭ?î4ÿ?7§?ßF?±„’9KñÒ>½?­ä¡?†Žá>î¶ò?åÎ?.$Ì?K|>)ò>Íöõ?;ñ?hÀD?“í³?4iv>3r>Ä& +?ðÝ?!]?"ã´?A·ò?eæü?˜5“?³Æ¦?M¸Ò>ù~ø?BQ(?T²9?´mÄ?Ê—þ?¡@í?œß„?Â/÷?Ì~p?QÇK?3¢ä?k’²?q…>b4>Ï®?L’û?cÅ@$?¾@ç–>ñƒ ?ãØ?´Q]?ª28?qCW?l½ö?gbŒ?]Aþ?GdŸ?XZø?‰&¬?Yx>òZÓ?%lê?Kxv?—;í?Ü¥?—??(5‡>ÞŒY>ª¬?U%?"ó>ÚÒ=ü4=>˾B>ó4Ò>ôYy>óPp>óà>û…‡=Ÿ.â>ÿ¯?`Q×?GWÃ>jq? £?âIë?²1×>óÑ>óÞ">óäÁ>óðô>ó÷L?Pø'?¡2ò?3LÎ>)Ø?%Î?t'¥?[°?V5â?Ÿ7$?´e^?æ'W?ôD|>‹²¸<‚Ø?زÑ?â—&?·:š?±à¤?Ah?7²È??DD?³ü>±.O?œ÷¶?vé]>òåß?h?£k?´?%8ì?‡ú ?­®©?I¬>ô¢?O3Ó?t¶?ɯ?æþœ@ü.@"?»u?¶ÝI=-ô“= |˜?i«í?e¶?a[ ?ƒ?æAX?Àþy?Ó?O¬Ñ?¤?;‘>óˆ?€ñ?Ø:{?§R?h*?DÃÔ?(Éþ?hy +?ì?3cQ>òs?} [?œãá?XZ>Ï©ñ>#0g=˜Ãï?Êq\?íø“?‚ñÄ?pùÝ=dW!Åï>YNö>¼à?¯.?—Þ¶?ž ?´ªç?ÁÀ>?ÓàÚ?¥˜Î?>ì?3Re?‹G +?ˆ-R?Ü?Y\x>þíc?HY?§V›?Q-¼=L{?BŸ?°F*?˜+Ù?jØ?;ûW>ê,Ó?Oÿ!?­ì?¾Íæ?Ú‘?º’?ŽúB?ˆ¾?h`k?§=Î÷!>·¡>á'›?´ˆ?ý>æq•>ÔVr>‡OW?-ð?ÿÒH?éOà>hqð>s•>}¬ >„A?5ê¾?9 ?`??cÝ?kãU?tT>”“=Ôk¸>ô+?e’?!Ë”?!þ?pâ–?(‹?/j˜< ?!©­?Ý”?ív @ )D?ëzÎ;Ý‚žÌ¦[>Ü­?µ™S?Ô”Ï?V^z>Û…r>|Îå=Á-Æ>ÉõK?ZZS?h¥5\š?˜?\õ¥?SÎf?Vžf?e¾Ü?—}6?žW ? ИÜ>ÚÐ?Rº?Oãø>û1¿>ÏO©?U˜Ï?›?~>Ê.v>ÈßÔ?Kæ…?M£ ?È«B?éß$?™-â>ꈃ>ñ?²? "·?˜?E¿ª?K˜ú?iûL?zi?„÷?§‚M?¨fç?Ë S?Ƽ¬?a³? PÀ?  ÿ>窬>Ý.Ë?8²Á?D&{?¼â‹?à\?¢$‘>ÈE;>Ðè?8_?4Ü;?£K³?ÔR3?¾·?„•$?…TM? Íž?)>³ƒ#>“ø£?C#?„:?®ö?Y†L?W1Ò?b>%âñ>,ü3>ÅÃé>ůî?€lb?”(^?©wy?ÅjÛ?¾q?GP,?ED2?E7í?E-i?ž÷<:>µ30>¾ó?€Š??·Î?¡åÉ?N¿:?PKŸ>ÿÈî>áÚ?=Ô?‚?W?dƘ>!â%>1¨?JÒU?u'a?#ëF>cu•>oì4>¢ó>l??#ªL?_à#?oû¼?Š«¤?ˆ¼?ã?ªs?[eE>Æh?#“7?«  ?§×Ò>¡Â >1i?P?•E?=?Gí?G ?¶™’?מ¸?¸\?†q??€×;?Yrê?^F7?‡mV?ŠÂ:?O ž>È>Û 1?­ë?¤´>|§>äÙ>¿ã„?@™û?@·?>A?A–>íêâ>Ê4>C7m<„»@?5ôá?K4—?J“ã?F´š?ƒ“Œ?Æ2Û?´”r=™:â=$?ø>'>Wx>¬ëÆ>«S›>úîy?…Àñ?‚é¯?]g?e¢‚?Z;-?M5¡?”Öu?µP?² )?ˆeÇ?‡ÓÏ?m8E?t”×?²H>¨Ñ˜?çB?”7Ø?Ì•?JÓÎ&>b!n>=¶A=Ÿ|?jRf?róÁ>°i> Ck? ’Æ?‰e ?kÀI=å·7>´.?O;?bŽÖ?k¢Q?ƒ®Õ??t=ˆ)=È~¦?3"ù?<£=?3À‚?5÷º?Añž?G?<ÎÛ>ÑA”>Çöð?Âi?õ–ô?ÏðÕ•ù?‡?"©Ý?· +>Ù&>°¤>¯\›>ÓÆ">ßg‘?ø?IØ? À? 3ˆ? s?ª¶>Ïf•>ãM>ã ã?{ ?™??"ö+?\?å=?n??°?Vñ>çõo=Ú¿Ä=Î=Âi·=¶õ£=«Á.= Àª>B:>áä¹>æñò>áR™>Ì!è>=E>}H>rq>`1>¬»ü>î¸V>ìò¯>æ"§>ßáœ>Ÿ8> Z<Ǿ.¡ž¾ºº"¿OÙa¿EÓ¿*¡¿„w'¿®u?¿¹÷e¿‚d²¾èl™¾ö>¿ƒ€¿8¤¿Ñmˆ¿Î홿—¢N¿¶Ä¿ÀB'¿ÍÝÀ¿Õc²¿çS¿ñN¿é•c¿›|¿ºb ¿YÍ…À#ÀÐÀ@îÀ"€À!ïÀ)ì ÀBÀˆu +Àlд>©?ú&?ñÔà?t@?e6Ù>¡ï¢>—d«=¡ì4>W­î>«ý¶>#B<¡\³>è[º>é¿…?\&ú?hÈÑ>™Ï(=`px<ÂÈÀ;àÈ9w =ñwP>å¿>Îs”<òê

ƒë>?Zu@??kc<€Uc"€>â¥Ð>²«8€;ª0 Õcx>â÷$=Ö+½<äkÌ<#N <Ù6=W ¼=r¹ü=‡¼=û $>xÞ!>¤Ár? +Ô-? +{>äe/>ã3>ü>^8ý:!>Lh>²XÀ>â™Ï>¤2S>RÙ“>è¸]?7¹$?DÊ>æçä?<úõ?œ*…?q4[>¯Œ >… ò=®ÅW>Ë‚>°˜€<å¸Ù=Ÿ€P>êQ?~ú?i/?Vžc<ž˜¥>Î^Î>ÁðŽ=­ªé=Î}:€”¼>–?¨>ªÃ¦?hd|?jöZ?qŸ ?h3o<仳>ÒÜ>O¡?E4õ?ND?k¡®?l:> Ú=¬q’>ê/Z>ïÁ ?±^Ç?¯i>ìûN>õ¦÷?R¤?;™><çë>Ìè>ì[>í·>ü “?.E?)Œê?\\?Pß?Y8?¿Î>îT>àí±>Ç/>êUÒ?à>¢€®<‘‹h=jA”=`=ŽJ>ÍÂ>0š‚>H…Æ>`‡Á>x »>´‹ƒ>µKè>¢L.>¬ûd?bÿC?‚}?fTÙ?fÕi?7Þ>ïY=.~=\”É:¾³Ø<†³ð>Àb¤>¨þƒ>ÁW>xÒ>±²y?1–?Wh>ïTc>Ø`y>¯)ù>Í—i>ïFö?*oÓ?o@ê?°ü‚?ï7?Ž8¤>Þ¹#>÷ ¬? ùR?Ñ¿@ÿ?Xñy>¿©?M-?4³p?;ZÁ?Bò?HªÎ?OW??BR?-— +?œß>ý…`:³H<þ¬¨>î™?±?]h‹?7¶ÿ=õ~>}w?#\Õ? ">u¨&>Ýß>¿3Ý>Â@á>î"Ï>Œí˜>Ívð?g r?m Ù?mçd?lBî?ehG?h]'?mÁS?Z¢ ?Iõä?%¥w? +ás?Kù„?t¿?>íu¾?? á?ɇ?<Ù?Z_5?k¸©?m7n?kî&? _Þ?A\=¼åô=ï­Î?Fâ?"a?W1;?PÅÏ<¯‹™>+ÉE>¦=ëY=´åY=}oe=&ô<™†å=åQD>ëaL>²Ä> Ñ>ˆò>·‚”>ÁT„>ì›?þ?a¦?s=öý•> \Œ>û„æ?'Ä?Ût?²â?3)~?lˆ>æÑê>d„.>Êœ”?! +?NaÎ?ÈÅ>ì“=?ˆÎ?´|?‹4a?l/?6‡ž?%s0?­Ï>ì­Á>×S_>Ù ž>éÒ‡>ìÂÏ>íê8?¶e?ŠMw?–‰ž?Åœ¹?ÍõÇ?…î?lù®?…nª?w¥>ªäî>ŠÂö>ã'>í-’>í5O>í@Õ>dœ> ?c'%?mi>ò¿c>ù2Á>Ûœu>ÉÖQ>-ŽŠ>Zk¨>¡”>-3˜>ºQ>è‰U?4Ç?;Ü?¾W:?·Ïþ?zß??|†å??Ét?9Pã>îd >òÄ>ðnT>îš>ê ?[m?çšß?¬^>îâ,?(ú?H»?1\? +»É?Jãœ?”k?zúe?]Í ?FÙ?Òs?cÎ?Ž4²?#‰?®-?Uc±>ðªÉ>(·o<©ª`>°"û>ð@p?±Ké?×Ë?Ê?dW5?2'ð?'»ì?¦ü…?´ô?v²¯?]vH?™?#†?_}·?Jœ‚?Zw?©û?¯D¼?¢™¬>ñ™¢>ñ­ž>ó¦J?6+Ù?°/ö?­‡R?ªÝù?ˆÍ_?&¨>üa +>«<>–#Ã>Uû—>êF¯?@_¦?Y­d?V—^?JpV?NœŒ?[ú>šŠ»>;³q=ö|ˆ?3Ã?hê¾? ð®>ó<ÿ?gH¹?n§Ý?i †?dm½?KÀP?jY‚@Ä7@ ¾å?ÌÈb?¶ü? ¦P?‹J>óÓç? +Ý?.Z[?=B)?OV?7î?2•?4#>ô½?:'w?fH>ªð = Ë?8Ÿß?t9*?‘â?†˜?ZG?Z  ?0 R?9°‘>¡²@>Éx??L?`Ý5?ý‚Ø?Éðé?çp?56?™·&?„û,?B)—?hÃ#?éR?…¡k?t23?̤Ú@¼á?‡s¸>ôÎ?Bß?fÚå?Bz>óóc?¥Gw?·R¦> úÀ=Ãêû;;܈ø>$Ò >§éu?¨<#?¤5h?ž¤?‰^J>óCF?û®?.’?yÓ>sµ ?z&…?úâÌ?Ãs±ˆ=Ï?FÝI?qSû?ŒÛ>ñ0 ?àcb?ëÏ?߇¡?פt?¬nt?¥½?Gå? b>µ0†>Ö³Ç?h?-$?onu?w¯N?‰5Ö?YT>v¬Q>Ô±*?xq?W‘">î#ÿ??ê?²Wí?²9?²\?˜†?J ã?ëä=¬ +`?[ûX@ +?Ù‰w?c@®??[â>ù¯U?RLñ?°W-?‚ ‡>ë)3>”Ôë<¸ƒ˜>d¶Ž? Œê?=¼j?†~5?Å D@€@ nÿ?öU?²Üž>¡m=?d¾?•­?Œ`Ä?}]?ws??qƒ.?Uv>æW?%N^?å D?Ðê¿>8K_>=ë>ó*>â y?É?:]?]éÄ?cN¬>L=¬È¶>ø&ÿ?É°?‰E“?£´·?Á'–?Õ0c?€9>âu]>àV„>àš>ßÊf>ߊ?æ?j_¸?k›?MØ?<ü~?¶?¾4R?F¤>Éw”?)Àâ?­R?N~?¥¼?yu•?Kò?s7?Kú ?P.À>~÷Q>YFÎ>¼B>Ç%z?¨·l?îC ?±¯?W 9?&Š£> ;>_Ä?[ƒ?‘9¤?•Sz?‘=“@öW@)dÐ?Ùºö?F?5Ðô?{aI?sû÷?em?a[@ø„@œ6?™W?>Ѹ>Ñ`‚>Ññ?Ô?СF?ϸÜ?dhÖ?KnR?"ž>ð;m>¢mÇ=?cZ=Ë3<>íÇ>ñ>`?›9?¯zk?íò?4{u?$)=ã58> »-?ˆ?ˆGø?u·œ?qü?¯t?óüa?ëŸv?áÊ?áÁ?šy«?€h5?–d?­u§?˜™5?—O?¿?š,¡?·g)?`{µ>€í}>Ï2¶?†,?†ê!?‡­Ö?ˆit?mäl?Gà–?Râf?pãº?mco>Éã>y F?_½N?ÚÑ?×4¹?•"µ?•Î?”þz?”í!?WÅH>Çõ >áË„?“ÈÅ?”¢™?·@I?Æ ö?¤‹p?Eñí?EãR?EØÁ?EÎ8?Ûÿ>´qŒ>á°ü?9Ül?8H©?XÝ·?f¸?[hé?Ež^?7>Å¢4>Åñ?AZÛ?a3!?GùÇ?E¿? ??‘VP?”U¢?9uÒ>ñtù? ™Â?+ÓL?!ß?+é>??Þ*?~Óš?”®›?’!ô?{^?|>ò™Ð>Ƙ|?ƒ{R?Ü¡€?ÇŒ>ÆöU>Çô +?¤¸p?´|k?jíš?‹?"_Ð?y•Á?}é?mÊ,?\GL?äL>Mv>iŠ‡?9ðó?<2Ã>ìE>Èë·?D Í?“Ë?•sN?—º?–“?<Á>ÉÝ>4C =ÆøÃ>Êjk>ʲ>ÉŸð>ƪb?ëf?À£?‹¨Ü>Ü+[>ð€;?JY?K›?³ê?Ì,?«D+?wÄé?K×>Ÿ&> ^²?(U™?1C±?L¢w?kÊõ?GPá?—M>ü>”ç0>œ×[?Œ.J?¥ç³?¨W?šC.?g¬Ä> Ñ>ø.‹? Æt?v>²”½>â^?2?e?6 ?=å?Eì>W%T> >|d¸>~ å?ú ?zÏÓ?\y>š›Æ>¤D!?-r-?8¾?Õ>îSX?<º ?˜»?‹‚>ÑÀ¹>Ê$>»®B>¾“X>lje>É…>ðÐ9½êI<™¹ð?0Û@?Gxˆ?GÉ?Fƒ©?F>?F»e?L²?Žtw?’Ç&?<³4>²y>Ì 9?Hb ?L¢¡>óMê> *a>ÞX¸RŠ>¹ÍÎ?%dƒ?5?Žo>³œ>±Ì>°O`>¯Ù>º>…ð1>–¾ã>ň´>÷PÌ>÷Ÿ??E(.?G…¼?AyÈ? ?Üû?è?&¹?6Iö?2ÎM? R>÷¶>ï +?>ÂF>µ¾‚>°±4>«¨<>¦žØ>¡—“> Ó¦>ù¾¨?†u? ‹Ý>þ÷½>Õþî>ÒiE>ΤÝ>̬>£åÅ>]ða>L/û>B>GZÉ>†.I>¢/å> —c>™g¡>’x>‹‡>Gq$>A=ëxâ=Õ$\=Áæ`=®ÔÕ=›ó*=ˆ°=OÀ=iH<Î(<‰BÜ<+P;¸‰Ð:Ý|à»»À]`¼,¦4¼‡WD¼ÆÐ0½ P<½?‡½f|£½·Ó½éÒ½§V½¼‰‡¾7´¾*03¾O¦N¾…ÞD¾×¯W¾çξÚí¾Ê=–¾‘Z¾¾¨“¾Ú|b¿ "®¿¿¿ë<¾·‹ü¾XY®¾'Sî¾+‚ì¾ñ5¤¿e5¿[懿K"o¿‹ƒ½¿š-¿sP¿L¢/¿0º¿:ïT¿Ya8¿ŽM©¿P7Á¿%çÕ¿Q–¿£55¿¤$NÀ¸À úBÀÀ,¿ÛN¥Àጿв¿®ù™À'*À5­À>®·ÀjþKÀ3 Àr6eÀˆõÀ@ü@=øþ?Â`…?AOç?ã`>õ@ +>½çÛ> ¡‰>‡„E>vó=šß>ʆ…>ê±€>ExÙ=”ý>‰04>Û¶`>{UE=y(R>æš +>ä½ê<:Žî>™Å±>äÕ‚>䣸>äx@>äL.>ä'T>´ûÞ<Á„¸>ã¬v>ã“[=3$T>ªþÙ>ãT>ãHŸ>ãBÝ>u1 >”…?`¬?7TK=Åø=/Žø<Áø>‚€>Á‹>.NŠ>‘ö>³­h>pRü>(žD?D;ú?0hÑ>Óx>ø>|¥Œ>ƒç?tí?Ò€>ŽNï>#[Ñ>Ž&>¿°C>æÓJ>æøû>ç!? O†?4)Ñ? +#=—ÿê=2AÇ;ø(+<£¯=̦è>è¡,?¿X?®#a?”­±=wŽ=¦4`=e‰>éËO>݈;®2G>ï?:±>êª{>íÛP?zoµ?u…o?ba—?h›Ò>ì–ú>ìÍä>ü¿Ä?á??£´|?”¶Â>Aí§>Œr'?(1þ?œÁ>“_Ó>–úM>í¶V>Ú+‡>…å>eß^=R‚=õ?>ccÏ? +²>Â'D=€>öþ|?²êO?^¦?e=…@î?.>ºjz>®¹j>¢úã>—,¸>‹Tñ>~ÚÂ>fø5>Nø•>6ߌ?2)?o3•>˼_>+?‘|?³wñ?ª·>ïS>ïTç>ïY?ÑÊÿ?Îf‰?‘„˜?†sÕ?Kü?9Z>-F>»…P?mS%?Ol×?e?L?ı>Ølô=¡%>hÝr>ý’%?+ÛB?oIZ?qP=â·Ø>¬SM>ï7\?§‹s?èø?Ÿ)?‹öZ?7”ÿ>îq}>êÑh>ïü>îÿŽ>îõž? {_? +ý5?Î'9?å¯Ó?µS?³÷?¯·S?¢Ìk?_ ?P¤4?ig?€N?M ?¨†>îx¿>Òë>‹h­? +?‰Î?MóÅ>Áª5>§,=Šø>dÂ>î?’åç?çVA?aV›>"¡¬?Sÿœ?¡q”?\ƒ?&¬?W…Ì?mÀí?m >í­¨?z?&¹?H5õ?\Û?›b´?­„€?E>î+Ö>ø¶?'á=Ю1=ÐÃÞ?(H1?n3>í8B>ù`?kž ?P +c>3±}>?—ˆ>íº>í Ô>í·>ó Ù>þ]?Ü’?lÅa?eÁQ?a¸·?pQE?Œ¬I?[ɲ>ìØ‘?&?|%¶?D¦>ìÍ >³Í> B\>nâ1> +ó?(ã=?ˆ¾?6¥?lÂÏ?lÅ?lÂÕ?)À†>Î…>Ú‡¢>ìÈ™?:)ó?lˆ?On·?6Ú?‘ƹ?ºG£?‚H†?Geß>ÿà4>’VÈ>È“w>ìé¡>(5è;Â>¯½­>ìÿ}?·, ?Ô~? Ê¥>¯¥?Kz%?tÿÎ?•Ø‡?–kq?ÈG†>ב!>íh£>ípo>í{×?­E?²+é?oÃ[?nè?ª‰ì? Õ)>íÅ”??¬h ?•ž>“—>oÐY>D–ý?²Ÿ?¡±À?$¢=?@p>D‰¶=ê-Q=ïUH>?[Àc?ì¥Í?õN@[?Û¸À?ª‚?h÷>ï¼? Dæ?(Áñ?e>ôN=?Wp¶?œ5„?EÁà>Œa? ¸?Xpw?¯Âq?ä?£?¦='?qiÁ?p`?næg>{Ø>°”>ðg†?‚¹?›§Ú?Hj>ð¯ª?2Õy?6«#?o¢à?µB? +ô?¡á? ˜Ô>ó-?ΧÍ?Ï?qq?rÆÄ?t ‘?\A—>ñ·x>½ÜJ=$%º? —Î?çi?¶l?9!?ˆ$>+ +n>ôh?K³?;)ú?+BS>þŽã>ºG?zÒ?¶ ?am?ý?Žü"?®¦“?†?ž?sI>(r=>Ø[>óK?WÅ?¨š>#b>hQ-?E³?; š?Êé ?ÐŒæ?Ū®?ÁìØ?™³?Y²Ä>Œ¬M>õ•&?JÒ?‹¡¢?¶ÿc?/O1>£€d?ç >ú}G>ô)o?R!Ó?t4Ç?t6G?tôBß? ¬~?Ù>õ^W>ðÔa>©;Ø>¿§ñ?E¡œ?€²r@m_?éM¹?tL•?tIÈ?tGá?C4>ôBü>ô<ƒ>ô:W? #|?HE½?e±ÿ?t!?-þ?LL>C<>Å~>óñ?§Ê|?¶åV>ôÊ>ÌŒû=Ûœæ?µL?¨‡¥?nY?‹?sa?e±@?;´?7¤ð?3”Ÿ?ùÏ>H"R?'2#?¡ ‘?_º>ò¢ä>òŽv>òyú?ž¸9?߇b?¥¼?„!??{¬?uc,?Öd†?ñ©0?8•ç>óœË?^C?hئ?ƒK¢?ˆ)J?‹·ç?,Î?…ŠÈ?‡ê¦?’›Ö?‰ °?«E?í>ïÇM>êî½>ÚZ.? /Y?u¼Î?b~Ç>îÚ>î±>î‡þ?.}–?™‚ ?’3?“‡¡?–¼Ž?™é”?­òY?Ò±?¡—?ƒs?P>g?®õ ?„>å>ì‘?}zÒ?ë¡ý?êÊ•?éH5?äw?Û¸ð?¬Ð¨?J×?Éê=±¤>‡“¤?ñ?^Žö?¸±8?ÒI?ü˜?ÌÒ?:†í?Z.@ýˆ?è?ç?—t ?­E?¥R?€?å?‚:e?§£|?žƒ >›s>µF{?O?Ý?L5Ò?Mï„?bg?ce? ²×>ù× ?—°!?¬ôa?>v?aõ#>Ÿ8œ>ýû ?`ÝM?*ªh>àYµ>=Xp>Çmì? t~?Ÿž?¡m?—8?.î×?)èÝ?×^Ç?ÝY¥>ÖJ>U ä>Ÿ² ?Jl\?Ž…‰?vö>?OgN?Gô?%2?+<´?S‰ê?MßÊ>Ùn’>Ù(ð?‡€ç?”,!?Ëäª?ê¦x?Å€â?š9š?w)B?Ï?Lô?Ve¸?V :@2@~X?=o?bë©?Ìý`?ä;ý@W>@ý?Óz›?Ó0ù?—!>Ò­‹?¢m?Ñq?ž]º?Lúl?Nê§?bLâ?eã.?Qõy?Pk¨?E=>Ïï×>½“Í>£Ä>ΖW?5mš?3f>­²Õ>ºrœ>ý‰¿? ¥e?)Cf?A<^?Z¡w?Öh$?Ô[#?Ž÷?µˆ?³£P?åÓ?Ôm??›îX?"™?g |?m ?Å!ª?ê²?·,Û?'>¾?'>ð=îzû>¹>Ò‘‘>ðªë?2\Î?6¢è?Hòx?HÊÂ?H§ +?H†W?Ù?ͽ—?Ê;]?¼¸?¿û>ñÃQ<¡Ëe>Û)H?•žw?•Š¯?•{§?•hÐ?hJ&?G Ë?‚m1?Å«¤?Â\½?l¤>ò¢>u>q=¨¯„>=ÏÀ>áüŒ>æ@å?¤ w?ª†·?T ;>ñÈH>ô÷M>øÜ>ûC>þoÛ?ÍH>îx->Æ5ñ>Ú>3?E£ô?F=Ó?’ó? é®?2ÜÆ?r@ ?nÑÚ?~´?âþ?W2ž?z_ñ?u[Ó?;Ûd?4<…?Å¥?.×?;–?Fè´?GJg?&GX?#1´?Zòï?dÃ?_­>Ç|?1$Ù?îU‚%}>WG>È*?´ù?Š¿á?V*?žÙ?]?M¯>ßI>Ñ—š>É7†>Ëúh?>_ ?Iš?‚sm?—d*?w§€>Êæ>Ã/Ü<âAÍ0ÉÄ>Ë ù>î”Ü?œ2h? Ì?_’†?8‘Ë?=¹T?Kó?M±Q?4³?ƒ +À?½G—?½_6?H+x>ÌÇÀ>£PE>“p >™îr> l^>§ +ï>Ü$¡>Ív{>=op>d6?]q?.Qf?¯ï/?±»•>§´5?žR?šŠ³?|š%>™>¿Î??B?N©? +YË>¬¥•>½Ì?v? ++?M£Q0‡=ap1>V(Å>â6>ðVë?CîÝ?Hm2?•º$?›¤Ÿ?;‡*>Ë\ >d{<Ây>¾‹“>ÉØù?rF#?•ûB?2Ý<í³=(®ö=ZŠ¨=†Ü?`‹—?Ž­„?xÖM?Cÿê=ÕQÕ=—¾?wañ?«¬p?…nß>Àw>£?k#¶?”¬?8Âb>»ì¹>Ââ?××?ŒŽ?rñ?7”?3s|>Ïdp>³«Ï>ܾ?w×?$>‹ ?>™=ùÑ>&Ú>GÛ>¬˜V?kæë?o/æ?L ?!c?#o_?%[Y?'# ?(ʲ?Lˆ;?O0?N$?"ª>é%+>êx?TÒ?'£a?!ªˆ?"mÎ?tâ?ˆ]?ƒîÃ?QÒý>¢¾å>kg<>eÔ>ŠØ>Êg„>Ôð>Îrm>ÀÛp>‹Ø‡>A‹Ç>5>0 >+Ç>&¿>!õ>ðP> +rÿ>Ò=ö&=æUs=Ö=Å­=²PË=‹â=kç=Küg=,¥…= Ðî<Þñ²<£ÄÚ¬¯>Ò.>öAW>õZî>ôvP>¹?>ž6Ç>Èý>2çø=q²<¤å(>J1^>é²Ë>¤:š] ƒ˜N>å–¨>„Ný:¢…€:Œ €:šÐ€=q̳>ãuK>âdÉž¯Y>ãò’>ãäs>ãÜ >„ëË> €<>õ:>ð¹ë>ÍåI>ÎãG?Hýß?FXü=¬Žo=m¤ð=Àp>jÐ>­ ¨>Ã>ä…F>ÎØ>“²>™Î;>Ÿ\>”žl<Ï:˜?‚ìÂ?|-Ä?3 5?,åš>ýmÁ>ø¶c>‰5(>=\¹=]I;>6ûG>«¾ù>²+3>¸µ>{+p=†0Ê>Pp‹>ççÓ> MIŠø>è{4>±Ø< +{= ¶þ=çÙ>¨æþ?•€?ˆË*?7M?ç>àQ> ?Z<§ (>†œ6>mML<Ÿ½>ê÷“>ïEg?Añ=?C>ªü>¯½<…ê’?Ÿÿ?®0?±˜?©Ñº<ã„ž>ìš·>úâ?^ Ê?T?(D?)ïÅ>¦çï>¯ŠL?$=[?"\t>í‹ð?€:?*ç?Qs>%9Y>//Ú>sb~>”¦¿? +}P?Ç?]Æè?C]H>îk7>î~l>ú¡î?SÑx??2?WS?Q? ¥ >îØ>îád>îî>îõ¶>ïµ>°ª>’Õ>žâ÷>ªü2?0¡?YB…?Síð?[×…?¦„ü?³u¾?àm>ïQC>ïS->ïW€?‰ýc?“ñù?ˆü:?†uû>¼ö>ænŸ?3o?Sû“?Ë»?¥:5>ˆzU>¸’?Dìj?/]Q>ÞÔÉ?"Ì?oT|? Ÿ==Œ8>xý’>É8Ò>k¨>»›? ‡ñ@ñÙ?žUš?6ñ÷?5Ï??mŽ?(·…?æh?7ú? „ð?TCê?gX¹?Yò>îê÷?®Õ?±Ê>(ÁŽ>s̱>\O>’¿¡>î²u>é%Å>Ú5“?!Ñ?*}¢?€Ã>áÓU?—î?ŽÁk?II-='I·>Äìm?nLå?·¤<Ù0?×:?‰¢I?6 Ù>­¾Á?=Þ?R›ë?-Æ>íö?Žb?}?of>íÓ5?O—T?mÅH?Cç>í²ã=¥Ï8à?È'k?Ý»ù>h «=Á~K?&@Š?!ãz?k—?l®;?3; ?3†?šŠ$?”5>ª“d>Î:ü?2ï?!²>í5Ë?"Ó?±âÞ?£ªN?m"Ð?;¾C>5Áó>ç¿î?ˆ¢š?|@¤?;l{?GÅ?tœï?˜ßÕ>¦@Ý>³c?¬>âø?lú2>ú» =Ó‡|=ã/6=ÓÅ ?]C2?±vâ?Dq>Ó‚Š?=Õ'?m_?3ÅC?UØ?1¦š?+t?†a(?¤›æ?6Ì>í"?’ˆ-?¯œ?+-µ>í8»>ºe¹>ÜEÝ?!qð?t„?µ?¾!\?˜½_?—Å1?d>?l´ã=¼+x?XÞ¾þ>éÓÄ?°n1?±¸ç?mØL?jM?[›?&{>íûÌ?ëà?¢Á:?¤Ÿš?tí(?OI>J>•>´¦)?Ÿ¦$?‹²>›À>ÊSæ?n‘ ?4"Ç<[½ß> =É>îɼ?†nã@U ?Þô=?W…ž?LŽ+?š¦>à}Ý>@&æ>¦PY>ï_@>y#–> Íå?'Šª?3`«??3Ô?M¡C?6Ä?QüJ?pQ?Ç5 ?ïgŽ?ÝG=¹ã¬?›Iâ?Â?/Z>ð‹?))?&sv?˜Ðð?šŽe?Èdz?Åæ4?/Ñ>ñÀ?Læ–?Y‹,?Íå?Ê >ñl×?Æ?s!Ñ?ïX?ñhJ?Òì½?gÖ‹?^â?H#?¥@ZÙ?ØF?G–Ï?˜>‡ö?…^5?î÷?²he?‡lw?™†Ž?Lc?«q@?¶?’®h?€öA?nvs?nn¥?sY$?s$?qˆ?hGl?u >ôa¡? ö>?™xþ?5†è?/D?J8??ÑŒ?,ñó?Q§Ã?˜B6?¡)ö?Àì¹?{7æ>‡¦O?F ?sK?¬7ú?4ÄÍ>/¯?1úÂ?}?Ê9>ô+Ñ?Æ9?î Š?»™)?¯c>^ؽ=lju>í_>ôH*>ôKC>ôKŸ>ôM¼?oÙ?3VÂ?Eèo?~©Í?ˆ‰X?‘•±?–ý"? å?fÅ>ô@z?†?6Í2>•wÚ?]Ù?qSg?¤³‹?· ‰?äú?ì{?·åé?ªç?†È?„Zá?y?—üh?0ëð?5Íý?£rf?¦Rˆ?³?!?3¤„?7§-?;¢P?aç6?‘S½?ng)?! 0?TO?‰9°?P@†?L>î¡ >Òk?Fú,?z”¤?Ȫ?ðÉÂ?ÅÚÆ?µi\>¤¢=€@¬@&Çü?‘ó?q7ï?q?pþ@y@ö¨?õ[?êÕ'?Ž4?çA?š~R?‘ _?5µ™?À±>[Þ>Lüü>?>uÇ@>îä5? ƒ?;LK?”\Ð@y$?æoD>ÄæÖ>ÕŸ!>íŽ>óÃ>ûÎä?$ßåà?GÇØ?Ðmq?—?‹í“?ƒ¥J?Z~p?‚âÇ?Ô5?¿-s>æD>ßXg>š{>‘îj?È.?)Í>Çì¿>Ì]?dR*?j\,?`ä?aýï?Ì Ð?â¿­?¾½?b7?_Cm?YU¥?\BÎ?a+/?Zí’?R[ë?#¤>¹¥±?Šú?w¯ù?yÙ“?|)?„Õ'?¼¼û?ºš?dÙ¡?iI> +±O?è±?[#q?CBð? pò?B[Ï?„w0?€¹?tÛè?r÷7>K8>”’Ý?§?:?» +¥? 2F?•—¹?¾~.?ã´ ?½4?h‰?e®¡?cAÜ?e°@¿ì@Èc>ÌXÖö“­? ¸‡?‘ÁC?ž¯?”)>Ð|·>Ð>Ã>Ðx?#Û]?‰ð:?€³>€ÓC>yçî?uè¬?‹Ž‰?€6?~7ý?‹¾ê?´x?·.?œ]Y?™¼â?‰~¼?„˜8?`Ä­?&)L?!ÿþ>‰¤M>‚fV?œ†g?¼ËÖ?~=Þ>ýÕ>í»í>Êžn>ÊtË?žÚ¸?±.Ñ?`Kµ>ä.¨>ý °?6!O?9jc?<µ.??ý?»žg?ùôg?Ŧš>Ȫ">ÉN2?A ?HQá? Ô>ËI9?Ä?L ]?M-¤=ý}ö=[P?9™È?›Êu?s?7Óï?6&?›6??žc?j¨ ?/wh?B+?¢³@?£u“?K®¿?'?³?…Vê?²Ò[?ªvt?¸|?‹Qí?2è?ï÷?€?wZ?…ó?I‘’?D›?. ?yw?1vŸ?7ù¬?- ?ƒ?!ë?-¥p?CŸ„?Bˆ?Ú'>þ¬(?$ n?,ð?”¡?­ N?–>Ý?nõÊ?uÜð?¿ >æ÷I?ê?»ÍW?”™M=’ïæ=Aó>À›Ñ>Ñ…·>Êb>ÈÔ´?Kú?ûUæ?úk†?Í©€?Éhº?YbŒ>É¥:?>–?Ç>?Á”Ò?XcÇ?Q¥¹?¤·³?º¥â?·&«?¯=?ž›(>¬Þ³>¦u?a2ï?‚Çä?iµ?d ?„^…?¯»x?¬Yj?¯£?4d?6ë?Lï?”ÕÑ?ì%7?ëpì?¯,ß?§fš?GýN?$­>ÿ´^>ÎÝr>Ö˜ƒ?Xµ?É;>ó‰>®×?´}?7ùØ?d½/?¨ÚM?› >‰/¡>†,I?‹Gß?š·ú?Øw>šë>Öj˜?! ?-ºˆ?zÏ0?€¦3?J™ˆ??°ë?AA¦?BÕâ?eÊê?’y,?ˆÁ">Òíë>Î?:¹¶?Lþ +?e>ÌÏÕ?f`?ÿ{Š?ë|=¡8£; );L¼? œü?ñÁ?zX`>ðùS>üï?~Š½?€<>?I› +?#ß…? €†? e]?X¼>rôÁ>LVø>ðÁ“? g?4 ? b²?¡ý7?‚VO?YŸ•?eœz?T?ŒÇ?&†?'Ž?ÇÞ?:ÃÎ?3q*? á4? ˆ>ø>µ®/>­dõ>¾ïf>Ù>è°>¯¹Á>®n>Ïد> lÅ>„]q>–¬6>§_ý>•©P=¦@=ŒŒh=€à˜=jÃN=T-Ó>…H«?Þò?D>ë£ =Ö²P=ªÖá>´Þn?¨j±?­£ ?°8¾?Þƒô?èPB?ä0?™g>’æ#>u†„>tj£>³_ƒ>äSÕ>ߟ>Ù) >¨…Û>\Y‚>Gïý>A¥F>*ýX=¦ˆW<×#!<ØÐ<áï˜<éðì<ïõ`<óÚà<õ® <õ]à<ò³p<íã°<æ°<ùGü=\Ð =”KÚ=§Q =ª&Â=—×D=qGd=3¼<èúP÷:¨>öS>õm•>ìcß>¥Ñ)>©ÏY>­£ª>±G=qïu>™Ãõ>í—â>Ö?1>È¿§>Êþ>ÍÍ>Ø“ƒ>ê‚>ÄÚ’<=j >Õ´>×è¹=@ÐÑ>¤€à>Û0>)3<,<¡%ؤ<Æ=Â`>yþ>äq°>Žò +?Sm?Qà3>&ê>** >©Nk>³Ú²=±Û9>Wdç>¦‡?>b>š> ,ƒ>ŠK>äëp>äþf>åœ>Ñ@`>†X£>dF ="É??«ëÎ?®†ë?;A'?3èš=ËM?<’@?h§Å>¶^r>Jr=ò°÷=Ú[Ù=(9¼=Ný=igñ>l:+>çÒƒ>åH>åÚm>è<>è[B>è¯>è£w>ªÕý=ÿj?*hó?-Y#?­?úü= >ƒ¤Í>’éŠ?.¬$? b£>COÉ>cIÄ?E¤s?7“­>ëG|>à†¤=¯ñº=¥Ñ >KB->0Ì,?hº†?s½V?±#ä?¨‘ü>á2ž>Ù?`>ìŸo>ÝÈ>Kü0>šä?IT=?::»>í3Ÿ? +Æ¢?s?^ð?*uÿ?NZê?´aX?“Œ>>íÞw?é–?Gn‹?Ymý?n'¡?#þð>øÃ÷?¯Í?€Q>î„ì? J“?+?1\~?#¼‰?§.>îÔ?Ým?1á>ÞÞÊ>‘éá=æ/ð>²>3äÁ>À¼`>ï,ø=Ýô?’k*?³t?!>ïPd=îÕû=Ü?+Ò?¼ó?& ?)£Û>ò±>øåq?oeW?}8%?©Ø?¤/#?Yy?%Y¶=k<}óÀ>µ×?oZÄ?‰?˜Ë.?} á?Pf? _5>—$Á??åj?‘³¥?»jú?Ëö÷?0Üø>§ƒê?½œ?BL?[–ÿ?eìà?W>ï 4=>3ý<¹dV>Õù>k°«?Œ=o?zåU>Ÿÿz>º¤g?|V??\=“>ÓÈ?¾?Æ ?´¶Í?¦ +R?l^¶>%©Ã>îy ?U!?±;Æ?r϶>ÌØ{>ðqz?€Í?¶¸>î9¯>î0L>î)I?ð?&è>£Ê>Þÿ>“Û%>ÄÌ?8%?_ÿ¨?Ì>íÚ@?šV9?¥e×?Š:ó?ñ>Úˆ,>¥þ >ª½R>ÅÂá?ji¶?lñR?<•e?CW›?Jƒ?AXE=®Ê”>ˆ`„?éI¢?Ñ~c>íeñ?7ý?é¿‹?¸>%ëh>Õ:)?}P—?Vé–?&NC?˜E>ôdO?2°©?zø¨?Gçe>õ×L>œž¾> +ôw>‘B>ýNý?cÇ/?±³´?äÚ'@ Ë?¶×A?<Õ? q>¡¥??2k?‡Çì?X»>YÒÑ?&?m@z?A)%? ?z‚¥?¢Ö½?GAC>úƒ/>íY]>íZÂ?U|Û?z/¯?aÑà?S´š>ÛQ„> ,,?¥úû?¹þW?Ê&@?×aµ?­±¹? q>q¨\=æëÉ=´=5¬?du?m×å<^d;Ç¢¸?{?7>ïØ>hC?PpÍ?:™>(¹B>zÍø?-ÎB?E¤Y?˜½.?“?F³Û?L ?„þ–?‹.[?«kÍ?žÎ›?kÖ(?nÏÖ?ny?†Í=*Ì>œXû?R‡È?&'> D? U·?„£Æ?)+ >s†j>â@Ï?(ı>œ¡E?Ý…Ã@3 X?È“Î?p*Ó?x7—?‚áž?_YÖ?CËÚ?ˆ.?šï?R)>ð®Ü>q:Ô>c 5?f¬Ê?ˆ[U?ùr]@?!~q?d?Ô:?yw?Ä ?o>ýeª?"¢ª?µ*Ó?´î?º'?ª‚J?qìv?5\>|?1‚?¸¥•?ÐòN?ßT?œÕÚ?2vÄ?„e?º¯Q?V¬í>ª­V?ƒ‘A?¿äÆ?µA‰?®°I?´Óx?¶> ?)ðN>ó@è~@0©˜>šQp>1»>ðŸS>ý ª?‰dÅ?†&û?#C·?(UŸ?-fm?&Q‡>óµ?.|!?°?‹PÑ?Kn–?h >tÂÅ?=”?£¨?«‘?(ç?œ³8?µ:@4á@7„?œÜ>ô/E>Å÷>…UÃ?¿x?.F1>ÅÉ„>®µ?Žet?ˆ I?B÷Ž?5’>ôMá?ó?g*ö?k Š?<Ô?u/?€Ž?±Ã¯?ôBÈ?šüª>Îý&?–:Ý?ïM*?O¢<šCv> ¢”>ô¡>úK3?±í?ƒ?%-þ?Õ,±?èvÚ@‰q@Ú?âé ?Û!ÿ?s¯Ò?Ž)@ +ã@°?¶œ_?šVw>ó[&?[?SþY?‰Ÿ+?Èã?™ö)?8™y?m×R?–2?€?WË >âõÃ=´³É?j?µ´ä?Dõï>óIæ?–ƒ’?µh?#iû>Ôص?·'~?ÕÝi?­ë=?¦Oï?Í•?Ì}Ñ?ﶖ?õJí?¿Hˆ?¾€9?.ží?=,Š?–ÉÀ?Å«?<]ë?;kÌ?$-ê?Cf>¤a¡>ÖæÞ?4†o?VÇ?§ š?˜KÚ?]cý?e×>%xF>ûïñ?Ž{?mGå?‹7[?±©N?›¦Ä?lO?#Ë›>@:ì>¡'›>ëÑ/>ëžà>ëlŽ?,´q?„Þ[?˜U?³nŽ?|Ã>«Hì?hÁ~?ów?ê’8?â@?¸RÛ?0ñù? ¦Ž>H S>ž¯?h »?fÐ?h˜•?J¸>í¿>Ô·æ?Ÿœÿ?“ç?7­?÷}?¤… ?¥sJ?¡íÂ?¤z=2¶ã}ä>ë=->úòt?Ia›?bx¦>¹|M=äø\?©t?ap~?a-ò?`é¡?x e?Šôi?€ãE?_Ü?@>œN’>Ô¯?›??mE>I©>K¢×? ?%‹ ?F]O?IXç?H¯?IEQ?$­ ? +@_?6¡{?€^ñ?cÝ…>ÚÄA>ÔCú>Wº>Dâ¿?6vd?ET+?Uæ?Xâî?ùá>Áäž?Bð(?¡ÝL? –}?žê8?¨.ò@;©@ ?|6|?Uø­?ýAV@ÄG@F@´Z?ÔÉÊ?GÑ?"‘½?bx ?d7Ü?Æ4¤?Ó0ê?æÌ6?îðg? ,¼>Ò6¯?aÏ?qã’?sŽ$?u?mÎ}?i³¼?e©?ƒ"ª?œî?ß?¢&?–9?­zŠ?¶ƒÆ?Bå<>èkŠ?BÔ +?~?ŽsŒ?šRÂ?š-õ??V?-:?>‘·?; ?8.»?Lq¿?N/?¡ï+?¢›ò?qt?KŽô?7r¯? +Qô?È>íÆ%>æ 4?8= ?Mîå>ãJY?rð ?—$B?N>ÉF>çS]?Iš?HñÌ?†þ9?‹ýù?mž2?HŽ¸?Tø?yá?síN?ð?–Ö?W +T>úŸ?0l•?ë†ú?ê æ?F…¸?b@?RC®?•¹Ó?•Læ?ÔF?€Ô?|–?‹ŠØ?u—N?@=ö?^µ^?•ž2?’‚}?±o>ÇdO?{?_ ?ƒÖø?4ÔD?*í²?^^Ú?…lþ?g +ý?±?–Ë>§8>’¹S?1f²?rXë?Z‚½?Aª?&ƒ?Õ>°?æ ¶?B—Á="’ >~âû?O[?MX?H&?H 8?Gþh?HÍŒ?Hé†?Hþó?Fae>×[·>ÉH?’HÚ?Êt“?«ïx?SÝÜ?Rt>Ù&5>Ê?6x +?dZ#?‚F?ź?“‘k?Èå?ÊâX?W+E?.ev?g×m?zº?X#,?#/?'_ê?OÈž?KøÅ?qÊ?‰í?:š›?"R?‚™?è?x¡?½xÆ?æ9Ê?Ê?·C?»<?š4?™Á?W¸÷?Mº?„I?q0?+Nc?N ¾?\ñ?š;…?šPE?\ÌC?N[?(¶Á? ?Â?Gµ(?‡ Ü?`>í=ëƃ=T'=9Áß=É =Ç’0><˜>Ølþ>Ó†^>ÎEÝ>Î6¾>ÎH>ÎŽ>Íìc>ÍΚ>‘SÈ=¦¤>ŪW>Í ©?=•š?a‚?)“8>¸ +Ý>‰ë>ƒÖ>Yu>ÀK¬>Ê!‘>œFŒ>’`å>›¾D>k}>h^ì>Äc >Ç6K?›“??î?+zù>ÿo×? Çî? ˜ƒ?6o©?#…À?¬œ? óŸ??P?B‚·?2æ™?¬?" ì?dV?ajö?+v>þÇ?â£?O‰?‚ª>q?k<‡ùW>÷q>°µ?fJ?rµÞ?rE†?§>©ÿ$>¨‘Á>§ÿ>¥‡è>ªŸB>¯âe>«L>ÃG ?Î?îü?@UÙ?– ??•Ä½?“Éq?‘½Æ?ª°?‚,*>G¤E<@ÇÀ=(ý?Ž¬?z•¢?r!¶?_–? %¿>ïÙö>êvÕ>Å•%=çµO=ùX="Úß=‰w5>­k}>á?>Ñ‚˜>ÆE>«¢{=þwå:3pz;;L=+«€=ŸP=¡À°=—x=‹Gl=|=^=>$œ=¢ =¡m<º*Å<-•8»V ¼‘/w½©y½6Vx½q> ½˜û`½»=$½ß1½å丽Ä逽’O˜½Ȉ»\°ºä@½Ë½ÿ¾H_Þ¾‰~¾>r¾Æ¦´¿8¿®y¾÷¸S¾ß“È¿‹8ÀOáÀ!q*ÀY4¿×µ/¿J®‘¾˜eп$å@¿nõ¾J‚¶¹ƒû_¾²–¾ÉîÛ¾¡,«¾F‚¿Õ6¿{Õ¡¿‚*È¿yØÛ¿ž.r¿©&ƒ¿*¿ÂûÈ¿ÅIÄ¿ëhÌ¿ã®)¿•·¿ýiÍ¿Ç$)¾²Ô%¿¥J=©Ò³?øçR?ø†€?E?2°?B>÷Cï?€È3?!›?…y>óä‰>ó ô>ò`G>.Ó?ÉQ?‹¿?$Ø=¼L>dÔ>íZo>º›=‘ÀS=ˆÍy=€ƒn=„9Ü>ÌÜÛ>ÏA=¶XŠ=@îè<jˆ>–§£>è¦>_ÆÛ=—%È=Ô1?t?G‡ð>æa”=„Ðâ>,¸/>¿š+>½W/>ºïr>²,><'D>G?*ä9?-6˜>öûí>ää}=ò\¼>“>å,>\ì=”Z>8`>‰Ï">åuÎ>å‰,>å >óáŒ?% ?Ž?í?)'>“U>‘ök>J>’¥Ä?‰ ù?¨é­?o>µ +Ã?e|?DÃ>p¢–>wuì>çÁ´>çá>è>…9ŽŠ<×À<Á=z4=U Ì==y¨=½¦¤>°\>>·FX>é–Ç>ËZ >1¹Y>Q ç>€ºî>®Bö?eH?P" ? ·? ¼Y>Û>Ðbr?’N¶?ð7>ëV—>î‚_?þ?b?è.ç?Û¿>ìâ>ÙÓ=™ >)I8>ìot>Ö—e=ÐËA>¥>¤v >ÜkD?šŒ[?”Þ?r,3?iŸ ?}a+?[j?m‹V?‹ ñ?Þ÷?¼s]>Ç| >—¬c>ós?n%·?n1î?hZ¦??÷¡?ºH? ô(>îJ>¡Ê>ëz>ÈÀ2?(;?SŽ¸?lú.?/ZN?ôG>u^i? À?Y1?t*>îŸ=ÐŒ¹>âÎõ?/†>Ü°=ÕŠ?rï³?qm(?Bvt?=Xn?rì?k0j?,×?…Q?&ö‘?Y=»dM>1d¯?EÍ>÷§ì>ï‡8?‹[@,º?Ø¡ö?oa¾?PÒÜ?2ôB?Uf?oZG?.•¬>ïSg>ïM÷>ïJ{?p̹?¤£ª>ÑЙ>Äñz>ï6Y>ï->ï;=9ï>µA)>³üÅ?Ü!?ÎT¿>M¹>™ˆ©?xë ?{X?E¦ù?ŒÃç@pË@ô|?nµ.?)3 ;vý>$@W>î•P>©U•>3>1Úý=ä >•·I>îh!>î_ç>îZ—>îQE>îK:? !k?%ÔU? +8Ù>î.>8”N=Sõ<?9)?gWÌ?w§–?L?qF?mél?ß•>íÚ<ìL˜?66ÿ?A‹U?AÜ?5Ÿ‹?>¦>?&¸%>íª)?Eì?²87?–è\<¦ÄH>»å?»†§?¨€¯?-²??h?“ ?“´A?”Õ?Os¿>8Õ?2øÎ?Ý W?÷\¸@ +%e?ÑÔš?y˜?‘^x?²D?– Ô?v®Á?)ÜÖ>áš?'^?„Þ>¾†Ó>D*4>ÿã‚?/3? +ºî>ír·?ºJ?1Ñ?¾á?þP?nßí>åq?»|•?ídÊ?’7ç?b§i?j¯?mŸ#>ÁÅŠ>“VÌ>J›²>Fú²?™Z†?µÛ?&ôÌ?é?ßr?í݇?<³’?Óq>Ù€D>ãˆ?lêJ?n ²?haÊ?i?I@b ?ðXë>¶"y>æþ?źN?¬h >„75>‰Ž6>î|ý?ºü? •3?œƒ?¤…o?¢yŽ?šK?”ƒá?fª?Jú>îô”?FJ?®«?“ý?DV?‡k>ïG[>‰¡w>Ìâ?jó{?8 ´>ïš‘?Á¢?Iba>ÙŒ'=Ô ½=¤ØÂ=ky¸=^ÌH<½Á ? Å'?ðLü?›ìµ?pT-?pe'?ps[?'‹µ?A ?bxì?p³W?¾L6?½T? +áe>ÔKË>½›Ð>¥äZ?y£?‡C|?qE×?mÿÀ?Vê?~Ü ?íÉÉ9?rDõ?“Gí?¼ “?¬#?¤:?|&>~[=:Ÿc?9??wp§?© [?¶K?‚fÒ?mC?(B?šŸ?È)œ?¹Ù =üìX>9h?#Å?M5†?ȉÒ?¤Eq>óª˜>Öó{>$8?‚@?¡Æ +?}©ÿ?ïg?(}ú?K”?ße»@,“'?ÿ“X?· p?RØ.>ôub?[Ç?ŠJ +?!í‰>ô3}=¦7?>\›?OÂ>ùác>ü8±?“cö?Œ×`>îõ§? Wõ?/bô?5ª?jV?;?¿¶6?ŠHY>Ps$?DNä?ÒÛ?p&È=Æ6U?O™ò?¶ÿ?Üáa?óÞb?ž q?lzÚ?Ú>ô ð@uh@üø?¨v7?›8Í?š¼'?¥wl?§çC?­±x?½{È?»l$?ÚŠ?Ï­_?SÛ·?F$b>óY?—²†>–´Í>nK>.ð6=Å‘´=˜É?»1?òw ?¤9k?tUp?oÜ?haz?yJ:?’8>Œpé=Æ?¬ò?9f?@s?G¹?è&S>ïÝL? Y?oØ?L,±>YQL>á`ã?©ä?£Šñ?‹|X?nJ?Ò£>¾4h:̧Î>ánð?²F?ŠÆ +>óTî>±§µ=ãÖ´>Ø(–?l¦?9Ëw>¿¹ë>ˆà_=ä˜P>¾º#?Hº-?Sÿ?k$ ?q|2?>(?)J(>É7£?“†ò?a?i„Þ?b{Ÿ?P5´?1•>è£Ü?,;?…;?Tó>a>©µ?Pñ?Z,l?w|M?pãò?[aJ?]B5?[ ×?[>æ¥å>å0(?d}Z?d³ü?Ý?âv>q+¥= •l?1w¯?U"ß?^ãÙ?b¶Ü?DÐ?1g¨?LK/?a³ç?8ÁÅ??¡¹@ +ò¿?Ýzò?`(‹?<Ü>z°~>¯EJ?Œ_ô?ŠøL?R »?HÃG?gÍv?rA?¦¤±?´Ö¹…ÿ>§>§6x>Ðö±?ÅÄ?B ?I—/?Kš>úré>îJO?Eåø?YKe>°ä<Ûöº?Û?¢.×¹C?"0¹@ƒ@Vß? wP>æ€Ò@F’@ tˆ? è¬>£ >ÅLÊ>Ôì}?ù{?“ö?‘ì±?…Î +?ˆ5,?tÙž?rÀ·?|d?o½?uŠ`?ˆ¬Ç?„ ?DŠä?H9í?Kâ½?O…™?S%?VÁ”?:>ë¡,>þnf?e¶?h:>¤<É>HÀ?0ï?Ÿ“?¦Oš?¨Å +?¦x&?R¯>ú«Ñ?“q^?ºœ2?œÂŠ?\&?kÁ??»em?½ò#?xx}?X`è??ÉCc?¾ø?˜¢¿?˜†t?˜i¬?˜JŸ>ßQP=ÿý¯>èË>ÅÁß?MÂ?R®¶?G­Z?=ð’?`ùÝ?™?Œh?[q?]¯Ü?í>ø†ç?CL?–»¢?t6>µÔë>¿¾’?Qð?fgë?ZŠ?~Xt?ˆ‡?^l?Uœ?a¿ç?vìÍ?bW?Gó€?F#>fûh>[<Æ>®¬k>§Ò?jîV@¨?ôàw>Ý›¶>Çö>êr¶? +ÃÏ?^q¨?±b›?¬ ?M'¿?Hƒ?(}s?!j‰?; ,?{Ý(?‚åÀ?¾¢ª?¦à?¿Ôé?ÀM?§Äé?HˆD?Fð>>Ý+>ÉÅ£?a£…?–¨ ?‡ê?I7?C'=FëA;ùÝ>‰¤>ÑÊË>Ó>ɨ”>ÓF?WQò?bCe?©M?ºÊE?f¯Â=”´>ZK6?³T²?³B*?;L1?Ç?L;!?ƒ|y?xŽ>Ì`>ÌåJ?‰á ?˜ÎH?>¾>ËùK?+ë“?Ÿž%?žt?d•Å?R÷­? ˜?; +? +½à>Í}?Ñ?̧e?Ì£o?hýÊ?M‡¬?V¥?nhÜ?_ +½?.“?<£Ý>îD¾>׊?ZÀL?}´'?u “?†gî?¹@?N‰?M +î>~6â>CMv>·i•>à†Õ??CŽc?-n>Ê-˜>äô?–}?›§?hÇ?Nšö?ï>΀i>Îok>ÎWù>Î@Ï>Î&Ä>Îù?(çú?:0º?:¦?@dƒ?g±P?¼Ã¼?¹›†?ŠÆÄ?„$K?AÄ?–>íÔê>”'L>Ó±Ë?›Ž?™Å>=Ã)>ƒ>wi…>x!ƒ>Ç_é>É.¼?WËè?tÂ'?PN#?i?-QT?l·X?gV?ß­>öÝ>ú >k©J>ƒk,>¿³>¾µž?.}?a:?W!L? ü…? æ{?E/ò?j”¾?[{t=Ô²=y>°? ¼`?Þ?«?&Ÿ? €k>¡w`>¢Ð>©$é>¨F!>ªy?´_?#¬Û?°>°÷f>ž°Þ>îè?¶O_?¿ †?©´|>Ùm¾>®aT>¼?Y->ûó¸>òÁû>?ÂY>'Ât>5>q§>©bG>˜G·>—T>•²é>C«>$Gr>Çr=§ €>J‚>T…>W·>g>ï¼þ>°p>–õÉ>?ƒ>€ú™=ßQ:¦¥4:1 <…«¶= “=i ó=—MÐ=§ó5=©Ò=œIè=€$5=BˆW=¼G<ÞÀº¢0¼˜S™½Rå½Q~½{u[½‰Û´½‹Co½€p½OO¸¼þ!–»ò™–ºƒ´î½ Õ‡¾P0&¾ÐK#¿!¥¿$Œ»¾ØD¾4 ½ 2«¾–çY¿ +¿Wƨ¿‘< ¿©¡¿_¾Å±‹¿RÈZ¿ºà¿Ð.f¿ÖÆ´¿±—C¿]A¿觾è´¿s`¿ ö#¿FG¿ªÇÍ¿‚QŠ¿õE¾®Ë¿O[׿v*ª¿˜…p¿ÀùË¿ô†-ÀÜÀ¿ø¿Ñs-¿»Ô/¿i¿NÔv?ºÕ?Ø®¹?‹¦?z[>ÐGØ>EÝP>ìIØ?Ù>êF¾>ôǽ>ôT>óA>Ì®“>°ì´?‰?2‘B?I>ºêø>ÊÜ=>î.Ú>åÉÜ>ƒä>Ä Ð>Åxs>ƽ=Ý01=ˆ'²>¢Yä>Êtc> +6"= V=eÍ°<ôR€=± >#Ø>yK[>¸¬+>¡ =ÅKû=Îîã=Ùò>×?)p?&µE>‘b >‰Ë>ÕL>åVâ>«Î›>’ÎÑ>ÄÈ>åwƒ>´ÈU>ƒG)>~:_>u«>joG>gÂu>¿ó÷?[–£?T•×?JñI?IÖ>”>ë?f:?-£V>–>5¨>‘R> –?k<‰?¨o‘?Å9‚)>çóÎ>è>è2ï>ã˜É>Øœ >Ñ™Ê>Êu\>yâU=èGÊ>­)>‰ˆà>‰b>t$u>鳉>Ó@O>{ÅÎ>iû>y† >µ'?T½M?D"ê>Ó×=âOH=›;>ë(¹>ëD]>ëc¼?:5?hOŽ?]Fv>ëÕ„>Úë<ãúÄ> ^?Jš:?6ì>ìt?>Ê×&=’ +c>ìÙƒ?×Ä?hÍd?}¬å?˜f…?‚ç§>œW…>Üm¶?O©Y?1u¼>e>>$ U=Ää‹<óuu>0>óï>°ƒ5=âH>Ù?TåT?* `>î}6?ß? Ù>ºÃÿ>pÈÐ?&Œ®?ƒ­È? +gÅ>P=;ÐÓ=2j¶=9³å=D¼;É6ß;ÀÖ>³åÞ>Ô-ô>駕>ïBa=SWt?Cºu?]P;?–§f?‘ãž?Q*Â?kJ? æþ?‘Èw>Da×>R>j>ïkï?æÄ?ojÚ?omG?mè?P4?4ù?~ÿ?¥b¼?‡¼?Eÿ®?WÏJ?oar?.ï\%?øŠ?v¥>”¾¼=Ìs<Ì* <æg;I&0??·3?lƒÕ>*ë¾=€%å>²#V>´CË>ìÚ>ï–S?FJ×?T†ò=­ó8?Mf‡?0Ï]>´>ùÎ?nØØ?k’º?iå?K…>íƒm>çÿ>>’ >‘ª&?è?*a>î…Ÿ>²Ê>†Ðî>”f&>¡ý·>NÐ=ÄÅ=>¿™¨?"ü>íà=>î)Ð>î#>äæ>ý\A? WC>‡}>~æ-??$zÙ?7··?2ûˆ?Qæ?9›>£E&>³S¤?²nµ?´ùi?矞?Û¿ù>íÖ–?"K£?ì9œ?Ä‘Ç=màô>´ß™>ïy|?"x{?)1ÿ?/æõ?lgŒ?½SM?Áß>§Ë?A¿?¼ÿ@Çf@cev@9Õ?íž¾?Òæº?²4r?H©û>$M¬?"äß?~þ„?.“Ë>í›»>ø ç>ê1#?u~s?¤1Ö?*"Â>­2Ì>€.ô>ä>?=ã;×ê??Ù¥Ã@YÕ?!¹â>/÷->c×»>‹Õô?¥hå?±Ÿm?T}>è±b?/×Ç?@¢C? (?¤?ÈY'?ÚN1?®7V?¯M=ˆ\<­kL?ìÃÙ?Þ ¼=Ü Ô>€]2?Í##?É5S?Gi?H”º?ˆÖ^?Ž‚þ?eø®?>Ä>˜Û7?Ç&?Ð:á? ×?€‡™?75è<"®P<úÄà>Ê€?¡Î?YÞ.?Ó¥?RÂ?‡V€?KA?>ýã?.tm?^Ûô?"ÿC>ïÅê? +µh?ªç? È°?æ!?}>ø\P?I#Â?p=ß?u}?€ê4>²·å>#Ö>üúƒ?Là>j >.FÜ?Ù?/t?‘¤™?¦d?“óÇ?Ó±?‹¸?„’">LÌ>QÖu?T®$?G>¯=J6=¥Àž>ñ±D>ÑšZ> Ój>™XV? œ3?( ?¯K?ƒD?ÝM˜?Ÿ5y? (?¢$?8’Ä>ÿÝB>”hƒ?@æÌ?‘š?Qe? >®Õå>5FÂ=µXÔ= –?Ž7N?¶Bê?ètF?ð#ï?*o ? ñ?¦¡˜?¨ªC?™)p?—ùª>ŸXû>Ũ9?‚i*?…Ÿc?¹¥Õ?°ä¸?\§Ö? €>²‹?²?¸Û?ž]j?`Fù>êëª?¡¨?s`P?ŸTÛ?·>ô¶l=›ä?«&?á­Þ?9iª>ô5°>»Áç>©Kz?ÐW?(ÿ)>õ¸§?ê ?˜Ë;?ŠÓÔ>Ð>¸>äs?IiÎ?6œ˜>ʪ–>Æz4>ôHD?8[û?‰Ýr?•=YàÏ?>I?·*@?“¯)?u r?1Œé?ò@>„ÀÌ>¼ =ÙWž=Ô£?èŸ)@ ŠA?IÝm?%Š?C›?BØÚ?š¸E?šðã?ºVu?ªF1>Ä"¤>¡&T>#=&>·v?:ô“?¨ >°?XÙ&?ÆÒ!?ÓJÏ?ê^2?íXô?ñu‡?ÑI}?µõ"?¿×=•m ?)?Ï?rDó?r+?r¥>¾’N>\}k?cº·?€¯¼?Qp?FþR?¤r­?¦€(?­F?±ŸÅ?˜/r? ‘ ?ŠÏÏ?3?6?Ly>#>\?5Ó÷?5™B?W°D?[ V?^a±?^îí9Ì?@s?²QJ?ŠÆ>íkñ?6aW?”>]?J¦ß>Q ?/¼˜?» ¡? ãx?m§ ?ï”?¾?•!â?(Ä?h§>êÕ¿>¾u²>Wê^>K–>?OÚ>ž¯†?#&?59Ã?rž°?H‚>­=Á? IÐ?Šp ?…9‹?UÜN?QºÒ?1'Ü?F}ï?°‹s?žª‘>舡>Ϻ%=ŒDK?«ÕÊ?©(ˆ=5¼=„È? 0???]¾?>Â?“Þø?ž„ó?¢?›‹Ó?FI?°á?q1j?•´Ñ?I{3>ár?V– ?³îé?« +?%û?|:÷?$À?3Vƒ?°‚?’º¸?É‚§?Ê}…?½ž>Þ¡?H?]‚>ÿ +|>šÀš?r§?ºz²?rP¡>ƒ|>÷Žœ?“9?ˆ¾÷>éU”>å¬?Z|?Z4™?Yö ?Y°/?ÝM¡@º:@Ç@êp?õþ?Í0ê?ºÖ½?zZå?l >Únw>Öà?ÉE„?ìp?§ØB?r\t?U)Þ?7,º?wk–?çÜ}?ã +z?ŒK­?‹w? k>Ó®Õ?h¦?IªÔ?xHÏ?žª?2>ÒM¾>Ò™?‰DÊ?‹Q;?vq>Ñ,õ>Þˆµ>Õ„t>ßô•?'“¢?#¢b>Ô>ϱU?IÀ?*"ë?râ|?¼~§?± …?1*©?4²p?L.F?MòÍ?‚Ðë”>Üh?ÊH¢?̹í?ƒc%?Lh?¼ Y@X³@í­@}Ñ@[?†î?7ýÛ? +l>Ën? V?×H?Žæ´?²ö­?´É_?Ð"b?ãÁ?ßtD?Ñá?Îu,?6 ?(H?LÓH?nbî?«À?r@t?j*Á?O'?–äí? +"l>A•>¸,Ü?K×`?RªN?{?t›B?¥ž>ȶ¤>ÇB]>”·á>™2'?‘“?”§ë?Ád?ù~?ÜÊ(?1bÆ?*¹2>“42>yß`?†ëK?׊?¹¨)?:Cz=—{H=4<Ç`>«øo?•?•!Û?P8õ?HîS?Hù”?IY?fwö?–ݬ?–¨?–È+?—~?mý?I}À? jÁ<Š•Š>ÀÆÀ>Éçú?Œ•*?¯º;?ŸFâ?Lö? o>ºq>Í^6?Š’?íÿ?Y®ô?Fÿ?Uã÷?(åß?&*j?ȇ? >û|}>˾?ô­?zãô?fQ?\ +'?J¸?~è2?tÉ?À!C?â¶ì?Ùð½?d+n?[ ö?d¸? +x??~?½8G?®Ÿã?ki?d+c?óî>þß?NÚ?PÛ.?• ?×B·?ʃÐ?¸›D?ºŽ¾?Þ5>õ0À?16Ê?NÈ=?’W?ËÛí?ºœ\?NõŠ?J?™=—åÙ>°hÈ?Oö}??tà>×Ú`>ÚÐð>Òžö>ηx?&ÙÂ?Að´?šÕ?â—?ÎF?ËÙ?Žx? É.>þÃ?fÛ?§»·?…ën?#Û?&íø? ë&? Ñ2?+®?$ôë?-ÿ?Ë ?¢ð»>`œ‹>f³Œ?Â*?}?Ÿâ?ªù?1gª?sz¬?qC#?oÅ?lÅ×?ts?¶?„ ª?Ej?K˜$>€†ö=×Rü>a€Ç>ÀÉ>³`Ñ>•ú›>˜nK>•œ:>8‹‚><‰O>Ðx'>ÎM•>Ê/>Æ? ´!?ÕW?Úâ•?yW>±n>¨FD=(SD=°S>ª(î>©xƒ>¨5{>©=à>ªXÏ>¨q>¡ÇW>  Ï>¾>ã¤8>êþ¼>ÂǸ>—,–>ž¶q?3D–?J¥?FP#>ã¤Ò>N&9>Fsº>>×m>xÄÎ>§ >z“Ô=øÖ¶=´³¾=¸~´=ÕÜØ>;€=üÎ9=ïL±=Ûâ(=CÑ›>~ô~>”j¨>“þñ>“V>§Ã=o©ößă>*¹P=³È +>(G> n0>÷ý>ä§> (z>ÉÂ=ý§>/{p>ð&Æ>ãâ=Ôbz=ͯ">çÕ%>íqá> æ×=¯ž6?Ê?BUË> Áê=nî<ö:x>+š˜>Ä]ë>…J¥>¹r>¾é?.×X?<^Ô>Ocò>+4P>æï>«LK<‘/?#ð?ª>¢¨º>“ʃ>ÖJô>åÌ.>†p>@ѹ>Hž<>P¤Á>¨¸u>å÷£>¸Ò>s;>l]ü>F¤>ãì?¬¾?•"¶? ÿ +? »> í=£ö5?4)Â?XËH?[û?_5'?eÅÂ?g¸2?%š>çï_>D;m<7à>~ÎN>ègK>脸>è¡c>èÁò>èÜG>ŽN>#·¤>é[X>Ξ>‹ ³>uâ§>]g¤>ÐJ?_â?<[ç>´bB>’>\Ã>\hû?J>ç0=Œ[]>×5ñ>àx>éXq>Æå39õâ<°EÄ<û[=ÕuN>É,>ë×r?lK¥?Yi>ìÐ>Þ-r>Ž=g>¯“˜?3oÐ?.ZÍ?)>? i6?£Ð?5¸>móu>t5¬>ÇuÆ?'¶?ªq?¯”ö?²g‘?‹·ÿ>è\™>äMý>î$±>’²¬>ÆM­?nbb?¸â>@ñ>ßw§?3G>çm>>?ˆ”>Ùvý?…e>äÿâ>¾f7>'á>¸x¡>ôD”?’&!?±Ä¢?Ôv¯?Õ³’?.©‡>ï7H?CÑ?IÝô=™wî?-ú??1 +U?Ì¡?ÃÉÚ>æJ[>ç™N?‘hC?†&?U!?M›!>ñ/t?Ò¹?ot?ow?ou-?gº®?Toô?',H>ð@^>ìqý>Ôt8?h.?9òÍ?0ÎÂ? U?:9V?TG9?&F‚?>O$¸<]?3ò²?lnÕ?üw??=¢ž=ûN@>$©k>?{¯>[)›>é“>Ä,>b:?££ó?Ví=ŽPÕ>i¬?s9õ?43í:–>‘Í3?c¬J?b =Åù®>© ²?"!>ýpè>Ï‘Ò?±?-/Ö>ÿ¤>¡Œ>…ÏÃ>U8=>2‹>Ôl'?>é(?mÞÝ>‘ö<*ÄÀ>³‰>î^F>3gK=î•ø>’„$>—u™>àÿØ>î<^?0Ãa?=¤g?ªõ?¹²v>tM=Ì( ?œ›¬?¦þÂ?±Ì?§þð>îÎ?#zæ?íÿÈ?Þ³ß?ˆd¨?\£ª>šà½>Ä+?6ë¨?'5>ˆØ¸?Eë?‰}ª?=º°=½)?-6=?ã‡É?Ò·+?²_?™Cô?x&ç?Àä>]°¶>b3?9H˜?²_a?b >íÖ ?;Ø0?mÙK?³7Ñ?ܶ?C7>)x,?2óš?uü,? S3?²q_?†7ô?_çº?„:Ê?•>‡ù?pÃ?¯?°öw?Ïgû?›<Ú?Ž·>ÆSË>©Iå?«¨¾?ÂèÚ?hP+?edI?uá¶?nZú?mi1?l‚š?îr£?â«>½CÓ>Òõ?‰è-?€ä>Ç(ˆ?×3?i|Â?lô?œÎ$?Åõ>Íx>„%?GP;?{d?³Lû?y'­>/ï>â”>Öe">Ê;?KK?orÕ?;‘5>ïŠÎ?%äÊ?e¸ø?†Õt?’R^?¢ú{?³äN?_)’>ïöà?NKf?€žµ?màÁ?j×j?oÁX?pN[?6â>ÿ¬?·(? – +?4µp?2·?…–ä?Š‹?ŽÞØ?„ŸŠ?pÛÀ?f8·?XÇ?9?uq–?‡0º?´øj?¯3)?bD1?MËö=;ìÇ>¥’J?ñ©™?Çkÿ>ñLJ??K¸ƒ?Hz\?SÞ™?löy?Œs?l F?P]Û?„jY?–F?O{>òx ?*£g?7G?ŽM?Q ?yMŒ?gž?¢¹y?±n?‡!K?so?Ý?ð$¸?ò†ã?ó2i?tì>óÇ5?ˆ–¨?‰E^?#åý?$jì>óƒ‘? E?wÓ?ožv?*òº?QÓ†?£H?wí‚>¹œ>ša>€—>Ú +?NÓ>q£s>Œî>õ4L?Q?· ?5‰™>ͨß>ÁÖ’>æ•ï>Hxô>Yî?Ƚ?ÑÁ?EWh?=–E?r¾Œ?j;ò?„9x?‚æã?J‹@?U(Œ?\?|Ñ`?·<?g ?œ?ˆÊs?î΀?¸•œ?tB?>ÞB¢<ÅIÀ>©ö?ôÕ?ªº?ÖÃ?6ƒ>»“C? è¿?*MÈ?º~Ý?ͬ}?‹C? ?؈N?Í +?GZ¦?]>Æ?‘_?Fº?-Ñ?z‘M?N\?C©? ø?bè@=å.®?qlß@Ÿ?Øì?rëà?4Ý´>ô\?×Ý?§Ó>Xjy?"æ?rHÉ?šüd?¦sà>™&h>Ì-K?ÛÆ?¯èt?¼Ê?±â?´±b?w³?qú>M·>Zà=?±U?¬ÁÃ>Œœ>ó?K¬’?R&'?Ÿ.­?“ Ö?Q? +}`>üõ>ÀSŠ;C`¼>µ Š?³ü?³}A?¶d??ƒ=B=#ž>±ŒÊ?~¯!?s·G?V†?&ÿ8>³Z½>õÕ?$5?ˆ£?ìw…?ã©?Ó¢g?Ã¥2?­5?¤Èþ?iE?[Ö6>ê÷]?òÜ?!1¢?9Üñ?fa??L~î?tu>Æo=OG}>Ë0=éÃi=]o.>2bu? &?{Ï‘@, +â@"ð¯?ç3?Öhû?f»Ñ?Y,>ÝŒ>Úß?7W? |7>Æ,n>Àˆ +>âÎê>ä¬ç?º/®?Ç;l?Ñx?Ò \?s*?@Zø?mŽ†?{8?6c/?¤d>É5‚>Z0’?=.?Zçp?€èj?¨Œ ?“ÇÂ?5T£?DÒ?‚ÏÑ?NŠ?†}5?ˆÅ>ðÊ>Þu?_ ?r´3?‹ýS?–?ÝŽ¥@C‰?÷ïç?Üe×?˜`š=Xˆ>([ +?[cØ?[×?Zß`?Zœô? ?¡Œ3?7c©?¤D?„(©?¯¢§?›T9?zÚ*?` ?r¶?p&>ד>×T¡?}ÍR?‹NB?·H?zU?†v~?Œ`½?ˆÑ?U?Ÿuú?÷:¼?óî’?ré?RQY?'À>Ó½¨?aTó?´fÅ?µœ¬?¬FÎ?¢Ñ·¤?9Ó?‚ù“?‚c?§²¹?¢-ù>õ£¥>ðî;?£ôä?ÃPè?Ž1‚?=å~?öÜ=r&¦=F˜Ì?J«š?N‡j?NV)?N/î?Müç?MÑ$?< o>Ø®>⣠?âÍz?õ“U?àb†?×Vý?½G—?‚‰º?…ù“?Q ?Kûµ?4ÿ>˳>>ìr§?ZÓ?'-Ñ?ƒVâ?„ý¶?5Χ?.D€?W†?~EF?‰N?ƒ ?‚ ÷?ä@?»!?~9ñ?°}ö?šÃl?í–?$é0=ñu(>¡T? ñk?‰“?f~[?i®O>±âÑ>‹§ >Ú®Ÿ??’?T2?×1+?ÙúÚ?PÚ>™ïƒ?„óŸ?ÑØ?¼N(?Š$Õ?Œ¾? Å >è!±>ò¨·>í +_?Ô?I);?H#‘>Ú*@>É@z? Úù?IP}?›`F@·S@àÁ?ŸP}?”›ò?³9ä?Å~Þ?™¹0>÷þN? nû?ádÌ?ãÙ?‰*>‚›ã?3`^?+¦d?,¥²?8¦Î?Ä‹œ?ÞY¡?ž®??¶?çk?‰ ?ŒÓò?˜ÇT?‹™…?~?ËŠ?]eI>ËÎ>Ñz?G ?F^?N?’ìá?†m?„¥0?ˆ.^?uÔš?q’ ?Ÿ×k?½|Â?±ªG? ?›·Î?Mr?I«?dÎ@?r¥?„-š?‡Â©?s:„?>¼”?iÎú@ @ ÌÝ?ûÔ¨?÷w™?†J >Þ(³?1 +?š—|?•uÒ?PMÅ?O÷?O ?O­?÷>Ïøx>Ñ¡Z>Çâ§?¥+?¿¨$?½v>‰2<=¿Û¤?w!??Ǻ?9d>ÏQ?/?·Æù?¶ß-?Q)?S3ƒ?@ÿW?#–?‘±d?á/ ?Ë 4?m ñ?t ý?v6?`Iõ?8q®?ÃS>ûI¬>Àí3>àÇ6?«x?³ y?;²·>Ê¿A? Ñn?J Ÿ?7û‹>ù9>ÿCq?˜ ?¦}ö?’sÌ?†Rý?…µ¶}Œ>~ã‰>”Vë>æ–u>Ü9F>ÁjA>À¬³>©)ù>A—…>†<7?†C™?ˆšO?W¹?:Ôº?9ßu?8î?7å>ïò>µÌ >˜F±;ëP:ML>¾ç\?*#"?øú=½÷Û<âø=hÌ=a=/÷à=Dü=WÔœ=k p?eä?MÔ¨?H5´>nZõ=¡Ò¨=µ ô?Lð?‰vC?‡?<ð³>ê—ú>äÛ†?þ«? +’?jI?=·nö=8Ëö>Mè >i§r>dB@>˜\]>›¥a>|pX>k~p>cV>…€®>yÇ2>e§>R+è>1¹œ<ó%)=ã=Û´=؈Z=ÑSç=ÉH°=ú.„=÷Î?=¯)Ì=hªœ= ,f<­1„< ©<0a;ÝX°;hö:•ö 7¤ÅÇ» 0¼>¾¼Ìæn½-äɽƒb:½¹q9½÷~ ¾ ˜ç¾~I½Î˽‡ýœ¼Ð˜R¼¥'þ¾¤ò¾Çþ¾*­†½´^½^tß¾±Ú¾‚7Ÿ¾€ýª¾¢½þ@¾w§m¾™kT¾{²\¾·…ò¿5÷Ä¿€Oï¿Z)W¿s+“¿­Åï¿EëÏ¿+å¿L +:¿02(¿ð'¿ô¿$P¿D3¡¿yŽ³¿²À¿©í»¿¬š¿¡ßó¿L¿Sa¿7î¾Ä¦Ú¿³K}?G?Ú…ß?Ž~!? _÷>Á=Lq®?-š|?1üI?Q1?Q´š=f`á=ÇMd=Öà¼<£Y0> Hô>Bð>>~ú>¼xå>Q0G= {l=¶¿¢=„«<;ÿ/?7ù ?7Ó‡>*Â2=ÊXÒ>éÈÛ?`b>9Áù>¾?+?!?[Ü>¦ìÌ>†’Ä>ýo>s¿1?ç4? +S :ÖWk>å–,>æF‘>V\>>~¼>Éêä>æ9V>È>cý‡>æWÍ>‰ÁÈ>F»ç?˜]?4À?‡Ó?lîm;ì!Y=Öf;=À6Á?O l?TÚd? +`q?m>ÛX>Úü¬>á^›>æúç?FÆ–?gïc?ë>è#ƒ?p'?œê£?5o=”º&>ŠN>èËÈ>™Îv>éî?]£?—¯?_`T>é|Â>é˜á>é¸>é>P§û?¬?¯¢?›?Fç{?6_»>ê Œ? +×þ?X¼8?9#þ>ÃÝ=Š ;šø:{<6Ä=˜´`>ÇÉ?[ƒ?•Wï?w>–c>™åÅ>>\p>žU?2ý:?/‚i?:u¦??²?Døå?!£I=ìÿ>“Vª?Zcì?+O =Æ[Ê>.‡¢>íµ>íËM>øÅ*>´¶=\Ôä>boŒ>î"ú>ÔaE>¥Ÿ???n` >ü §>qEX>î—«>î¥>î±2?+ž?Uìí>Óî¡=Ïu =¼ü;¨TÃ?¦›¸?î?[õö?g?y?¾Š?y>ï5?_¶Ô?oEU>žy+>i7º?5ú?B˜·?´$´?¼?¦  ?¬¨5?Ó«?½·lA%a?n¹”?3†Q=Ëï>ˆ Ÿ?hú?æØ?e¾>Ä>¦>X6«>Ûé>Û¡F>ïwy?fQ?6?­>Ðz?7ÿè?jÑ?¡Ò?²±t>À³=ˤè?6ÿ?UBÜ?2/c? n•?Ë?—ý>ðS,>Ö¤?@’Ý?>•n>°\>T,é?‹??uv>ûuw?'f#?³Hý?†Ÿ>Æþ@?§Îî?Š»¶?&,O?âÏ?)\Î?¼>ߧ4?=‡?Œ‹ó?]?Š?5F“?Niu?_Œ¹>º¾J;æ#3>›É>ðå®>VÖ?ج?RÅ”?0v–?Ï‹?6,£?7†C>ÿ5y>îc?EÃU?A|ƒ?‡š?Á>ÎI¯>Ö£bî1º?m`?¿–*?«]_>ìd?"®>î >ð??žÉ>Óé>ØÞ,?²Œo?,F?À?-^C?n€ù>ú)Â>­’>Ì|>ÞÄ°?2¶ >ù ‰>˜,"?W?gX»?j·ž?ZH:?0Ã?%&º?jy?›~?‡+ü?xCÇ?žÏW?²“%?;Ý ?F>VÉ}>D?B;X?n1>àÖB>–.Á>Àð>ã×#?.¦•?=Ù?ƒ¦+?ŽTI>ŸAû><ç;á ">ú:v>õÿ@ï%@@Ë?n–ÿ?‚Do@rË@¡~?–?zÔ>À%v>à0>ëXÁ?¾-?³3Á?¦nz?oú?XPŒ? >ËÔr=ºõ>ãÄl?³q!?³ö?¬[9?¥zÝ?¢0?‰.1?RLp?[ü˜?o ?…¥>Væ>n7X>ƒ,Ú?!g?hÞû?’ ›?¤Ñ£?L÷>ð!?‰~l?´-E?D°»>ðX…>òx,>ýQ$>õÓˆ>ð’?>ðŸ¢>ð­Â?\¼i?pÊ6?ŒÕ?@?Zˆ?4±?œµè?žhT?Ž+‡?Ž‡=ýµ?½Ü?ª†X>ñ‰x?!öê?µ=9?§xú?€*š?œXþ?ÖB?¥N?ƒ³?:”?rù?‚cm?’ã>?#âµ?QDx?ÍÂt?ˆ#Ì?X?¥ÑÐ?íƒg?˜ ?Sz©?åe +@…ÿ?kÙš>òû[>ôé~>þ¢š@ÛÈ@é?Xª?I¬ö?ï'i?ä½ë?É-]?ºÔ®?>ú—?/ùÔ>óï>óœ@>ó£ë?I?s¸!?~µj?ˆNò?6Ĩ>Ìä>ùXê?sí½?rxA?s¾X>ÓŽÒ?iå?iàq?zaô?„ ?sÏ>ô-¡=µ—j?½Po?ÐÓ0?: Ü?A¥î?…) ?ƒ'O?"ïö?9š>µ8?/ì?Ò¼?ȸ´?©ïô?˜~?p +.?sÚq?tG-?¸^ ?ðÐ?ÆÑÁ?¤ºq?Å??Ô‹ú?ƒÍ=?Sˆ ?U!ë?M™$?–öû?Ÿy|?jo0?i3Ô?–i?š<¯?àT?Ø´ã>4ì~>›¨?¤Lì?¦W€?¨]t?¡7ú?ƒìk?Z>óT?(:?w[½?AÆ>ó¥>ó4>öA®?8!?i=)?'%Ä>òÈ>×+>À:Í?B:?ñ ?¸ª?ÝãS?òç>‘õ?7C?D3ÿ?Þ…%?ñä?TNË?>Ûq?¤k?£É? å?)9?vã?šc?W•à?n½Y?̽M?¾’Ø?¤M?&ßm?±ñ–?§3 +?okÂ?oB¿?n*À?kš™?u¾œ?ZãR?šQ?'3Ï?E¯?0~5?ëñ?2Lê?m“?…¢¬?<²?bÂÓ>¹§? K?S?vE·?“™p?m-ëæ?,®1?†HÖ?˜È¬?À­o?ܺ4@Z¡?Â%;><v>Ê Y?rÍ8?Oy9>ðXå?L,‡?è:Š?ÛTü?­Úÿ?®q?¯?g?¯h–?¨«Í?¡ A?WÖª?O>æ +Ê>åË­>å>>åV©>åM>äã™?É?™'¡?zÂ?v‰i?ÜÑ>ãt]?:qD?^l3?‚B?†Ju?H£?lk?<ƒÓ?{±ô?qW´?_Ä?O0?ZÔ?1í?¨š?  ?߇?K>ß±Â>ÞÄû?¨—Á?·ç?(ž´>ÑtX?š—É?Û÷?ÝÁ?ܾ'@ @Å@@¸¬@!?[¿˜?R§ý>é”â>íÒÍ> W¿>&qi?r¦÷?‘6?s?pV??‘:?qd?4v>Ø>Ø>ç>Øi>×Áç>ž—T>¦À|?: ?VÉÕ?Š k? ½Ð?oΤ>ÕÔ?KPA@ V@²y?£¹c?Ÿ~y?{ŒÙ?]Sß?£üÕ?Ó¿Æ?ñ-‡@£@@µ>žY^>¢á>÷Á>úÖ(>ö¶*>ò‘Œ?c‘ó?Äàü?·ëK?PùÊ?PÈ?Kêý?Mwc>Ž‹ 7%ƒ‡>ù=Ü?›¸?”xJ?OA?Ok>íÉ°>×µ?'¸Ï?N^´?Kš€?Bž¥?Ylú@,ï@+yz?‹$š?#¤?=Þ ?Lõ¿?-M>ZþÐ>h÷›>­.>`ð? F?ië ?0À‹>÷‚>´E?p“ã?dg¸?¥K®?¸Ée?ƒ?8\?3¬y?rzF?l!Þ?OÒÔ?\ëª?,KT>˜6@>¹Ð¦?-:ñ?$Å0?ߟ?,‰î?^k>þa>Üš=¶°=©I©>·¸ >²0¡?"æ'?u2u?~r»?¸ò¦?»hA?ìÈ??õÜ?“Ù*>ÚðD?¼Å?—0©?—U‡?ïij?üß?¨#?I¬M?2b¬>É» +>Í„'?¶Ç®?ÂáI?ÉMŠ?Ô—?Æ¿|?—zÒ?—ƒÈ?ži±? ÃÕ?­0?©Ñœ?sû¤>øÉM?¹Œ>²‡>ŽÿV>Ô>˜?mÌ?œÿ?&†v?øï?}É>?…[’? +U<>²Qº?6ã?K{å?98?Lº©?TŒ¨?²Ž?¯áè?L;p>Ì+´>ÿ}h?cä2?kˆ¡?¥å?ª9 ?š5?…¤ò?ršý?{Â7?oÙü>Î]Ó>Ï?VD?H`?:î?^B?€(=RW=¯Ù6>ðaâ>îùp>ÏYw>Îs©>Ê[:>Ë“ò?ye?NÅ¢?T)œ?˜ÏW?›; ?yÞ>Ï6? Ø?O/ø?6€ö>Û—X>Þú5>Ò¹ê>Ïb!>  =htp>›ÃP?_ƒ?3Gã?$ë=?&]½?Šxð?ŽY,?…œ?{“¶?J€?Jy¹?nR?mÂ2?`Â1>Ф>Λ&?l¹?£"Í?•\‚?N +®?B™Ÿ?M:N?Pj>?%%ü?šX>ÿý>«ßŽ?8Eý?¬Àû?™“{>ÏœÃ>Ì7?X·?i:<>÷À±=Û]>„ƒ…?˜¾ÿ?›™©?5³Ù?!‹C?j~?Œ÷P?ŠŽW?‡¶›?ˆÍ–?I‡ò?<$ó?†A>ÉÀö? m‘?êûè?ï°#?_1;>¾'¾>çuv?éŸu>¼^×>ì3H?3d:?0ÑY>Bé==à¤þ?.X†?0öJ>ý/j>&ô>Žö6>ÿà?j¸? “2?9^á?3º§>Òˆ>—à>ž­¥>ü¯>Éí¥>Â>}û >úzú?¬›?Dg#?:‹~?6Ê?ß4>Ò5>ÚkÄ>ݲ>$¥F=«q¬>oŠ}>sõC>mÏ>yÓ>çM½>ëÜ>ë`I?Y?.¤?0¯Ò?,Òô?(œ.>ã¹Ø>¾3=CùP=&èÒ= v*=(/—>/9J>“W<>±•Ï>ªtL>¡÷¨>˜@|>‹¾f>h4Ê>7ªÇ>Éà=Þå(=ª…r=Äš=7_q<ðn/<ƒº®;€+¼ü´¼ªÐF½¡½Vù=½•¢3½ÈT“¾°s¾'/o¾Q¼¾q—Ⱦ„ô¾™A·¾”½‘¾e9¾¡Ì½~e½½Z°½^!…¾†¾ +¿aN¿Æn¿䨿ÆU¿‚þ¿ö‘¾ß­¨¾„/2¾™½dÛ&¾/F¿óÜ¿E¾4¿:Tì¿pX¿¦à¿š›¿†¾®$P¿IRL¿Jö¾ÅâN¾È½˜ý¾›¾óû¿—p À´}¿ Íc¿Wr¿é¿"ÇØ¿d²¹¿à§¿Füâ= (r> >»â~?8Ø?Å4>ŽÈV>¡®h?Vï?¼ê>›8>˜Ž=:$@ø;`qj?!#í?'s¢>¬Œ¸>Žü??÷?#Ë>ÂÛë>°}2=Ï×>߀º?3óø?@ÿ>´Ý±>€–}=Ü#=„¿"=°•¹>´Ž|>šš<Ò†Ë?1Ø!?0Ý-?gW\?hûÈ>Þ„?½Á?HTÛ>›^¼>`b>ŽÊ>±f/>çZ´>¤P³=êlè?d|?ùÊ>‹"y>‡ó">IH>Jóý<É6>²AG>æ£Ñ>·}>Vü> ú>.£>rW¯?Cãü?3Q]>æø&>̹==Ä}0=×eè>Á'¶>Æï‘>ç[Ì>çq0?X#C?cIt>Ä:Ý><À–Ø=S =M÷=ULÔ>ºV>sRé?<[?…s? +Ž6> +ø=ž@ä>â1Œ?…Tk?;7>g‘>w¤þ>ƒõv>Ì-î?ÎÅ?56H?xJ?ZŒy>ê~ >ß3š>ÈBG>×6$>êíà?Iw­?êÜ$?Ð.—?jEÍ?I‡À>Ù!C>£*t>5ž ?O¶h?GÍ?B?¬*>'‡[?:-?-ýh>ìêõ>Û«$>² Ó>É&>íAA>æLN>ÜÃ(?;¡/?²*?žÒÈ?kë?+g=YÊL=8\P=I¦@>éä? §l?ƒZ?Š½?•_|?d‹e?•F>΄>¤!R>Ò,w>î¯A>î½>îÈÖ?CRº?n߈?TJ>îC?:˜?Û>W±=ºJb>T»L>Ž/ð>âÍ>ï43?'?3ð²?_d?UcK?HÛñ?;†¼?³ò?À/?`û?K¯Û>š=?nòû?€Û?­ãÿ?˜A?>Ú ?!/­>ï–>ïÌ>ï€I>¿èV>aç>æbî?Dg? ô¦>²ö2>XéA=ˆÊ[=­À9=:ãJ9 ({:4„?.N(?z{ž?W)8?>±”?dg?oc6?o_c?o^o?oX?oV|?à¾?–G>ïHG>ñù? :?&7+?ã +?Ú¼º?o. ?XEµ?;…? Ä?EbÓ?R)@?ˆºœ?o«F?'s¬?S¤>îø²?+Œ?nî2?‹b?£À)?*ÍB=Š›>œq>ö'>îË$>îCk>ì¢æ>>( >D`>œÒ>·øþ>ÓO>îA›?®e?!¥–?¤`?šd]?¥öÏ?t!¾?nwú=s~<@½5>îjÀ>Ûçì=£¿&>l +=½ù½>xOÇ?‰Ém?j% >ªòc?Å ?•8ù>¦.]>d¡>¨Ä7? Q¹?œ–.?§¤…?±A?²«??²?×"?Øí¿?‰[b>·6Ë?Ÿ[v@ Þ?ÖË?#¶?I/Ï>î8l?Œ­Ä?Åüæ?,Ò"=Ë¢5>€è–>vSG?un ?²>á?>Û™>ú >ö5f>îSð>ËD¹>´Wº? lÚ?!2A>ÿj±>îkÈ>…·Â>MW}?áz?¶¬>ô>ô>îŒò?U_?aÉ6=R<±;úÅ—?²}?±-?»O¹?¶Ø•>'µd>®9¿?Ô¿?Ñrï?Ž‘?ûÔ?r¸?SÔ6?>ßÁ?^¬„?¡~?’?@¢o?M?YÌ?AÞ>îíl?¡°@18R?ßsÂ>9?^W?áÈ??ŒM2>Ÿf¬?!Aœ?oÍ:?u¨>_S>G?æ>/=:>Co=þ¬?D#?p0m?"mÑ>ðK'?m ?´Kˆ?;0>ð€·?Ž²Ô?£†õ?m¹î?TÓ?‹p?ŒH¸?2ž?,n¬>’ŠH>cÞy>ê‚>ñ5ë?H¯d?O©?1\K?_>Ú›>œ¬ã?ëä*?Òö>ñ©?q ?x@?^n*? +œ ?é?Og¼?‹‹Ó?¶I€?˜Ùø?r6ú?‡ªM?–Ê?eý?"é?Š|ˆ?Ìû`?“‚=?WÝ™>Ñåd>\Ÿ=«;—=+ì˜;•;N%<±èX>ÓŒ&>ó"??FÝ.?cÒÐ> Ú>,òÓ?¸ì:?¿¦?®8e?«íÄ?sˆ?f¼ ?* z?FÎþ?ŠKc?ƒ~Ï?ˆ/Ì?‹!~?šûn?ê‚?kDƒ?q}l?söÍ?1Xc>öU?=ÖÅ?^¥?jL?tË?-·—?5^?~´>ô2.=†‘>ú]³>ýQê?pB…?lÿ +>‘Þ>®mq?"?7Wm?˜Âþ?pÏ">+,>€Äâ?dg?m>?‘9>ôÏ•>ôKû?4›v?tE«?B_½?#Ó?c™ ?…Z?–Ë?™]‹?.„*>ô"$? ¡?*®Å?‹hô?– L?A¹ÿ?2-D?«­à?¨º2?©}?‹¨Œ?c"‡?[ `?s¤ï?s›;?s‹Þ?†pž?¬O°?Ž—4?Hª?UüÒ?¶dÞ?€Ñ>ó;?0¢î?g?3Ì? Û?<]#?W ?ku>òz?jàw?ŠÅô?„3¼?ˆZP?OHÖ?7Ñ›?jQ ?{ü?¶ö ?Áº`? Gé>ñM?ÙeÅ?àË?‡"©?…Õ%?Žds?„k¼>ð|A>ݲG=õ}v>Hûé?o54?o×æ?o¹ð?o°e?ovº?„Ép?®Fö?¬uá?ª§?x½=¾ û>µd%?nF;?™ú2?ß^h?¸|°?m¡Õ?]^ž?HF¥?5|œ>ø õ?JÉ?¦î?–0?„§?2Ü>*«K>Äì7?G4?ÚÞ>®ý?8ñ?°«?ŠCñ?ú§?E»?£ÑÑ?¦«m?©€à?¬—…?®Çê?ž‰½?hÌÎ?Kk…>ô2Ö?c/†@ M?ïÕã?› ?O’*@ì.?ú:à?f§Ù?jRñ?Ž+?‹¥ƒ?ˆÁ?…åÈ?ƒ ‡?€5=?)+?#7>>ô<à>ä*?K&?^èó?4ªß?"Éÿ?–Ô3?߯?”µK?_gù?Pqˆ?3ÛŸ?’è>bÝ'>Ï>'?`ÐS?w^ž?¨9¸?¤Ê?ƒâk?ÂÉ>ñ(ö>ë‚@Æ«@&ª\?®‘>Ùz>Ý—¢>^íÏ=OÒ>ŽA=?ƒK?„6>ôý?-Ò?“¼c?‘P½?Û\è?Öj¼?ª´j?£Ç9?™‚H?“2å?ÛP>õ{>ä^÷?sZü?U„‘>Øm°>ÚëK>ëj>á{ù?C±?W8²?Z—Ç?b¹ ?ZØ{?B„?±|?òPÿ?÷œ?Ô£?ÑCo?·tã?·ÝÀ?¹°„?»€T?«Æa?”„ï?z}ô>H‚>-_*?4ÁT?=LÂ?UŸ?YÜ?OXé?L¶?OþY?Q?MV²>Ñ­R>Ðì1>иú>ÎÓ™>Óó->â{ù?‡k?OÉf?Oy?Cþà?Av3?†sx?’vøÄ +?2P÷?̘?Ï~‰?ó#>ÍÏj?)°?M„ ?êª?Ä™?®#>wŸ">p_à?yíò?™m„?ˆ‰*?Sµu?tí?­j?t~Å>ó„3?H?“¼x?–@J>æçæ>Ë#à?(k^?Jü1?”Œà?ñN?ì5ø?æ'? 7y?4ù¢?JŒ¢?)+$>äÏ|?²?÷Sö?øßE?öÔ…?ø¿? ßD>Ê:G>ýØ?— k?— é?Àqº?Ê%½?˜Ô'?J?]P?›R³?œüË?¿:?ÁŠ"?¥)?‹½í?ªMú@j@,?«Q½?¡ÝF?Ÿô?—Õû?®Ú¬?âx?Ýö?„.?…y?ð->„ê7>@×,>à>5 u>Ë j>Ë(?.O&?KKV?h×>G\>F4U;<˜?we?‘¶ž?ƒë>">µîg?¦û¤?«,?„T?g»_?$ö?uJ? ã?3,?= ‰?©¡è?­á‡?Y&u?yù>î7ì>͘8?^¤?”Þ·?˜'D?¥ú3?£}?* <>Ó’??ã4?š×œ?‰`Ç>ÎÙŒ>Ì7=-?§>†ßþ>Ò§±?…l%?ýÉ‘á>ì!s=¢w|=¯UÉ:ÿ,P=¡’N=æh? ê?O›$?8Ìä?.έ?2'¿?5€Õ?;2m?oÁÆ?_+?†\ä?›[¿?d´”>Îô8>ÎÓ³>α•>Р×?A²?NH£?,ñØ?«&? ß3?1>?1 ?mXà?l¶ +?È??¯¯›?MÇX>™eT>ß_«?osó?qÉr>à å>¨Ôú>b?/=Òù=¶ã~=›Î=ÄP?7×?BÊ?¼5>ÈX >Å:ˆ>Äi]>Ëij?;Q?B~ð?y-ò?Õ}?€Þ>ÂÑ«>¾Ì§=üR£=f]>‡Šì?1"?.ôŒ?u?ƒ?i°æ?P—?j5>Ó­#>Þ’ó>àÒ>µs¦>¯}Þ?>?,ë!?- Ü?ÿ/?˜ì=?Ž¨ù>èr>¼žÜ>u93>ñR>—Ò´?$ë?@_¢?6¿¼>É;Ñ>÷ʾ?z'?cû>!à=Õ>)=óå©>0N¥>$Á>ˆß™>Ç_«>À> › =‹qæ=0H]>›ÍÖ>Ù‹>ÓTt>ÍÜ>lj#>Át[>»AK>´çÁ>ª`>Sß`=M9œP:—;†ÎP;J–€;†k€;ž“@;­ŸÀ;³z;¯è€;¿td;ñfØ;ã‡Ê;¡mf:÷˜ÈºÞ× »®´@¼ Ë\¼4DʼZ÷(¼ŒŒà¼®ñ ¼Ö`í½Jš–½¸íÖ¾t¾IŸ¾(µq¾>}ƾ?Ïv½¿)¤¼Þ ٽㄟ¾RѾÒxæ¿-´¿Ddz¿J\¿@7™¿(µ¾óŠŸ¾ÉH¾ŒªR¾wø_½ï^‚¾rõ”¿1^Ü¿O!½¿0o¿‹jþ¿Ë•å¿€Æi¾‰í­¿Vƒ:¿¾¾ÁѾ^±ž¾| æ¾cós¿&ÂÆ¿QWW¾Õö…¿Áà¿y»¿¶Ÿ¿à¨x¿¸ò¿"§P<0D?µ‰*?Á~>—0Ÿ>fäæ>ôF÷>ü´G>ØGÆ>Ç?:¬“?HÑ÷=± +>˜>£| +>˜A>¥ï>S¤P>yÉ>4> ñ0>yBº>¬Zi>÷3c?¡>Æ™K=ÿŒ =›•à=«Y>­vý>Ÿ ›=üL =äàü9’i@?ø?(->žN>ˆÛ|=j”>ÌK°?•…>ÜMà>šIR>( >#Ķ>çáû>­½Æ<ô‚>D;?>JU.>P«F>WB†>l<–>i@|>aæ>ZOæ>túh>ÏÐ=±±-=Ç*>(Cž>+>Û/> T>”€>dG>ç5Ô>Ü<>ºŽs>ÀÇ>ÅŒ&>».;1[l>ÜÞ‚>â÷@>çÞ>çÛ >ççÇ>ä°>ÝËé>×^ù=Ñ&9>‡¶ >¼µõ?O–{?ƒû?³ö¤?ÖÔÇ?‰ÿI?͵>ˆÊ_>Z¬Õ>錪>²Û8>GH=ÜOB>lÚ*?'\ >åÀ>üs>Ꚏ>ªo´<ò¸8>\Ø>ë^«?u®?m#?U}P>ÿ,¢?d¡>뤔>ßšn>²W–>Éçå?pÝ?º>ì8L>±÷4=\û1>GÆü>€->ìÆø>ìÚ¯>ìó‰>Ñ”Ñ>cç²>‚—‡>íH>£Ø&8Y +ê<îZ8=£ÁL=Ö{x?+"Á?¼øå?Ž´Ë?&Å:?<`Ù?X|Ü?ˆ$?²²Ÿ?‹Jý?Qq?xâº? ??ÏA>Šúv>î±)?8¢>þ +æ?E™Ê?nâ(?kX»?d¬Y?^¨3?X£í>ìŒË>©ê;>±Ð>‘iç>à6Z>ï7´>ý>YS?`É«?|Œ ?‡²(?ðþ?^Åô?\Kg>ïnê>Ñd=­é#?Û/>ìA>‰¯C>Ÿzô>V˜>½"t>ïˆë>Á±>wË>±Þ,>ï‹Ê?ÚÒ?¨^>§Z±=•ý>†ÃX>ädd?„õ&?³¥|?¯†?¥~?=?`Ñ?Ž¿?¡¤0?~œ ?ovB?’ñ¥?”Cë?6y?s>(tñ=ø…?8½? ¿?ynI?ff¹>ïNÚ>Ìs3=,X>§¶È? Œq?vìþ>š¦>œªo>·¾?µŒ?3¨Ö?K«>’˜>æ7?-i?FVÒ?[ž¶?$a>ãU??:»™?nò’>¾³®=–°=…¡*=»íF?Z@?$´ä>¿¿€>‰Œ>Û¿“>ÜÀ*>e¶š>&}Ç?5£…?R¡?cö?}-ü?o;t?n£J?n[?k?f‘Á?Xj>Ãü>ÙY,?|·?~îž?¾(?—ª!>ñ@ü‚?ÿüã?nv„?‚Œ?¡ÖO?iy<牕>(Ÿò>ï›8?Ûµ?3 ?x“?¿x?«ã ?Œ3ñ?¾š#@TI?ÌOð?PË?;RN>œ¶”?Ys?îpá?…ÇÂ?»õ?Ò=@Î?‡ ,>ó‹ù>ô_È>î…u?„øa?—úó>·aö>¾Ó>ÒEy>î›0>î >î¢/? -z?âJ?(Øé?7[­?$@Ò?µ>ðä>îÏs>îÕ(>çµp=—åS>GÛ?€ýK?q~ˆ=·a?PC¿?U\b?0‡'?M»–?¤¦?­.>¤&(?@'?„7j?@Eš=Jð'<Ï‘é;môY;ÕÇ >„$Ï?<žu?PD…?;¬…?C,Å?j¬)?nñã?P†Z?82»?6“í>öïÌ>•]©>ÎwÞ>ð.;>Ï>X>ņM?6Þë?féö?ï;>ð‘>ðÊf>ÿîc?P?a¿>À-û>¤có?¶I5?ÉÄÇ?• Œ?‘ãr?Y>ñè>ñ'¶>ð>Ÿƒã>¹¾:?PñÝ?IEí?£­?¡-ä?dBÙ?o ?q°Ä?X[>ñ̤>øA7? É?D'·?™€é?“÷Ù?ŽuJ?£«â?ÎÈ"?›“ý?6g?‰X?µÒô?’xò¾î?F+n?m?qöœ?ró9?W>茋?ÄÌ*?Ó€>dÿ–=Ò±Ì?LÉ÷?Ph?o(v?Yã?.ÿ?;”$?s†`?}€w?’5?¯v?(¸?±„!@ +;?îv7?¤jº?VÙ=Ê—~>‚¯m>ô%×?:RÉ?tˆ?™µH?«îÚ?P$m?ôÔ?¯ê¬?Õ‡T?¡Õ?ŽØ>?TF?BQÞ>¡µ>z°Z?jÇ–?qÝ ?\'?M>UŠ>¤ôÅ?µ­»?µÒâ?ßÜy?È}?tYš?tVj?tXµ?©Cø?ôRþ?¡Óˆ>ôP*?põ}?¯ÇÎ?Š¤Ü?\}3>ç‘>‚u?{7?¢q_?*}|>ô$º?1`o?9RK?Pé?±l?n;‡?s{;?Ÿ¥«?§€o?•{`?žùg?Î;À?Á¯?RNÔ?eK?‚.í?Yò«>÷+»?¥_@6'?ó&š?‚?5ÏÔ?e#?6n€?^?ˆ>òÉ5?Ce0?r¢J?ŸîÇ?®zÍ?~­€?c)A?eÔ>ò?,æ±?=æí ?#`|?ðGÂ?Ô)ƒ>ðn…?;WH?éZa?ÂÓG?Œ? Ì)?  +??ë?„ýˆ?…²ë?€L?tÕ?nX†?€Ç?™¥?¨y?¸Ò?À‰#?Í,;?§³??mt?ªi¿@ÿ½?ñ‹“?ÅH?™”Æ?»Å?Å­>ëªð>¤él=¡JC?&`?·,‰?Ÿl?jV?Bz°>ê,n>éöG>éÃê?\­?iÜ„?…m‚?«©ò?•h>èŠÎ?FŽà?ðø\?׬Ê?PY?^.w?Ÿ à?“òD>Š* >»ú£?¬ÑÜ?®m&?ñùi?ïñ?ÌóØ?ÊŒN?u­™?aŸ ?„¡r?„Pä?y…â?|cí?k½?cuâþr>Ì0*>­H}?«¤?Øõö?¯Õ8?t(?ldë?az?s y?›¯ï?­»!@ +M@ v?_¤Ž?_eŠ@X½@ TB?çXm?×*í?QDz>Ýî? ï©?Cf©?ÆC>Üô—? î¾?FA,?Zö?¤û"?¥Â?ÃÛS?ÅÞö?©?¤ó?b*Å?AŠ¹>õøå>y‰š>í?R; ?=ÄG>ØÙ>ñFø?„¯Â?ƒzg?[Á]?W«?'êO?¿Ÿ?ml¾?¡?”yD?sì¯?†òø?ô`º?úDm?€%¸?hlN?Y=?T·c?[¦?_jŠ?tÅi?—Ìv?ŒØué~ >¦i??R ?1VW<™ <Õð +>ÁHR>Ñ 5?Æa?»^H?–RB?PSS?3ÛM>-D>;»¿?K¬?››&?Š™ý?y7Á?Sz +?,"¶?4°Æ?(—o?&§Â?xÇ?„íò?1Ö?¨nÆ?› ?:Ê?Y~?z˜?‚U´?ÖÊ—?ø_-?Ê ¼?œÅ?šãy>6 > +Rš?"mK?U7?h ý?TFJ??¼¥?É?‘¬?,ý??8¦$?vç?Ëiù?¸Ò?ŒlÌ?Ž‹?P o?KX?NæÍ?N†©?‡@"?Êd?È¡y?™6É?˜]? CÓ>ÊƲ?]où?ÉÄ?ÈëR?Ê”¼?Ê®??z ?J¬ˆ?NÁ9?X6w?L†˜?ê?æc?X~\?`“m?T–Û?cÆ?ƒ¨?˜½?˜H;?¸ŠŠ?º8L?‹ï+?xx`?’?Ky?MbQ?_ +ª?VÚë?˜(‰? û??µR>NÃö>’?ï?xVa?xãç>j;Ó>ƒÎS>ç»Á>ü[?¨Ç£?ªn>àü >?+=º?gÂ-?ŽÐ³?è*2?äùW?F²@?:1{?@’>ìgð>ùú>þyJ?%y?Ä•N?ÆX)?æ©>Ý™ô?%1‡?M„S?¬²à@¼@¶j?U´d?N£> RÖ<g`?*¨À?—!Ò?p×ý>ÀC)>É´?@ä ?BÓK?:w?' w?ø¯Q?í>¿‹¼>‘¡=ïHc=¸U¶>„U>€©l? +ð?èê?‡ô¾?Š/Ë?le•?S÷i?d¢Ü?›±Á?¢Ó&?ÊÀA?È÷ƒ?n·>Ï.s>Ï¡>Îí€?jF?N¦ò?Híì?.Ä?0Qô?€Ê*?"D?…Ç?ƒt?„Ø­?`C?VüÁ=óï6=d=HpÈ=,õ=ì33>ª> à(?>ƒM?Dëì?GÒ±?H”æ?‘”>Ç¥Î>ã|†?E»ô?F?¯ô¸?½?ª÷â?-é?—Ð?çS?è–?Šnó?3·?ýâ@ +rh@ø›?´áÜ?§]Õ?|Â}? t>?bÏ?:9ý?7Nª?@>µ1V>´?Ó*?<¹? Ùo?+ù.?. ?@ªg?|nË?}‚?Á“?·)ž?¨º>¿•)>Š€>‹î!?ŠI}?˜¦?—ûZ>ÉA*>”P˜>_Ÿ5>‡­>’“Ö>‘]Þ>ßè>ù‰*>ø,m?2X?=A-¸ã=Oµ‡=*o>Ý„>ÐT>àæ>܉9>Ù+Õ>Ów>Í«Å>ǽ +>¾’Ñ>’">Gº2>.Ï >&sÓ>  =âNÔ=N-x;À&Ý9>¹@¿iœÑ¿kâ'¿d*¿ò¿N²…¿‡}q¿Œ¦Ô¿–`Y@PÌ@~Š?(x>†£•>º>]—Í>}¨>‘ì&>Êà}>Âþ==ÌX=îöT>%Ùµ=dB&=œ<ì>–™>Î >OŸ=¶~V<àêÜ>ƒ?>å“>¤Fß>£fÀ< > ±>ëé>‰i6>›¯®>™ü…>˜(Ê>b|8>*KÅ>çÓR?<]0>ÞÛM>_Þ>èeã>¶àB=UŸ>òôo>é >Ö,<>矎>•8X>‡[>ªŽ>¯çÈ>§]>žœ>›ë>¡3 >¥æÃ>ªµy?bÄ??ø¥?Ü¡>¿ª>•þ;;áÌË=RO<½þà;MË€Ï^Ö>èD¥?I?W« >D ´>¦š®>èÂç>ÖÉ>â ?¥á?4 Ö? +ñ]>ÒO\>© –>a¾‘>¨Ö>é³ã>Á|>˜®h>un9>¼d>cÝ>@˜S=Ë'N>2ê­>ødw>îS?>êç5??u3?®à±?«— ?«>(?‰1Ÿ>ë„ù?ò³?Nƒ²?`êP?Š"D?b÷>ì–>Èë>i¾Ÿ>s“ˆ>Fû6>T4{>WK>ÎÀ…?Ñ8?½>ìü‚?4cw?¥ˆ?‡-‰>íA­>íbò>èÌ>‰:>¨íö?`®?-C‘>¹Òç?Ylp?²ž°?˜s ?€ÌK?íÞ>;ö“>¸Ö6>'!û>åÊ>î´7?­å&?îÇ?m½?áñ?êN? ù??Ž˜?¢zg?`‘+?AF ?sF?rz?˜>ïi3õ>@Êù=Ï=„³¨>ïjJ>ïo]>ïuu>κÍ>mØo?žø?…>ªÀ…>ßá>ù¼>¨.Å>ï’D>–"•>…m?M£?'G–?FÃ?(ï+>þ.F>Tª9?F©?w7>å7>zq?n“?‘‡F?ærÅ?ûûÆ?5SM>ó*”?Ayy?^u<=¦nƒ>åð—>ñAB?cb«?pÈï?³I$?¹Ü™?êQ?Îàl?M ®?Oá‘?†Ün?OeH=)P>xéO>íÈx?o?8?" )> Š=‡%ï>—á ?žª>u'Ö?JR´?¯qb?Â4?Äla?<¤>©?í? pZ?'ío?c:P?jo®?‰¦?hþ?1h`?Ì?–?>D?¤LL?±z»?tüû?n͉=eÝ>Þ¥?©o¡?¨Â?½‘w?¯°?Ž~ÿ?žú&?î´ ?Ì´ª>¸¦‡>è®Ñ?éT?…Þ'?n¦Ì?Nòª>úyÃ?Ð?n¢,?jZË?dà +?ƒ0û?›áê?Äq?‰€Ï?v»;?Z¬Ä?gðö?u4?P¹m?"r`?HŸ>³™=?—Ë?æD?¦ƒï?uám?n°Ä?oë?mK?bþj?÷F>î¼1?'ÿ¬?C3>Ê®,>‰!¯? óF?/E?(‘Q?"E?Eœ ?Q\=„‘?¦Å?±*>õ²´>êǧ<Š“…="Î8=95¡?W¸?šÁ>šP!>°S??8/Ž?1ë¢?+§Î?úÐ>ïc‹>ÔÏ>WÕó?(ß?ÉtU?˜s>ï›Á>ï£>îlh>ã÷>×°+?qK?W¾?!´>’W>²“>C9å>Þ‘Ð?6ï?UŸt?V ü>ÙÌÐ> ¶¸>͹\?->@©>· ô>òœŒ?“n?²j?.5>ð½¶>b@Ò>PƒÁ?iŽë?wûÁ?3¶$?Fç?4ÅR?5Áú?/Æ®?)ªŸ?và?^«>t™»>Û|?ÔÑu?ÈåN>ñŸ}>Èšõ=Ñ’È>û$½?Dí>ñï ?5??šd€?ýÅ?Œ9q?z?‘Ö/?£FÌ?µÃá?t±>òsŒ?d!s?¢‚?/#³>_ƒ³?Jb?ažº?V“>òÚ>ö>òñÚ>óâÀ>ü¼¯?Éä?Ûò{?•jù?“£==…K%;Çœ"?r5u?pÒ?b^?wB ?•«_?€Üù?ÅÜ?^ÃÂ?Ýqì?Å¢Ã?šHü?Ÿb ?¤u!?€æ*?HÝ?hŒÉ?¶äu?—ãM?rgÄ?0…S?qÏ>¥Ãu>~ÿ>Øî>ô(Å? +¤?"þD?†Îº?“T?AŠï?6'ð>þpx>ô$?]Ï?ƒ>—l>=/Í?0ž?o\È@-kÎ@Ðß?t_>?t]â?t_i?t[U?t^¦?wdg?!i?yšy?dWß? !f>•³Ü>Œ¥>‡dÎ?—?àß?|\‘?“Õ\? ‚B>ô(/?0d?>ÚË?C?ál?G‚º?OÄ€>þ¤y>Ù<Ó>Åò>Ò¡æ>óÁí>Ë{T=U5Ö>ÿj?óå?ó…;?ò×ì?Ǻ!?‰‡h?Z½÷>ó7M>§“ó>@°? +w(?S‡>Ùøý>?Õ?(+C?r¥‘?„ËU?©Í?š1?mn1?;îš?+„Ä?'©a?#Ë?EX?N€;?“ÖÒ?”Œí@¡³@—ä?{‘?„C>ÞeD?ÓN?³”ã?¢à=~ˆƒ>þU=?=e?áüô?·×>ƒJ$>Ú”á?X7£?TŸÀ?QÍ?VÛg?nþ³?zïô?;Ö?x–K?)£|?õ”>îr?5áÒ?šËL?äæ@Ál?ãÀ‹?‹¥ ?‰î>?ˆ< +?u]?OG1?[ÊÄ?l!ñ?T¸-?'v}?>ëjì?mºÑ?âÙå?¾õ ?j¬Ž?B3ô>êO(>ê#>éê?}„ +@ +VÜ?æõ?y a?X]í>è´ß>â4>Ü„K>ü;¹?0ä?>hX?Àž?³ï«?UI´?M +í?W,b?aÆ,?Æ$~?Ê?v?}¦¢?K"F?N?Ô¤?ä ¤?¦J?„¨?0Ž?m?;âÆ? þQ?t^? „¦@j@1q@ \Ê?©c?˜î¼?lÃS?-$›55¢~>Jš7?¨R‰?¨%¹?§K?¥ã?@dß@ ˆ?¾…?­À–?âA7?ñ¥ã?¡žC?]ÌA?)/²>ÝPP?Lc—?¼Ü)?½ËU?ÊZ?Ã9?‚m?ƒh?¢xM?¤_1?Lñb?&»"?$S2?!ð?O¼]?}â;?<Ú>„4>Ù¾B?¶S«?µ¼?:k{?73L?¤Y?ˆmP?¦”Õ?¹¹U?¤/p?Œõš?hX=þŒl> uf?¥÷y?¥|?v~??`g ?‹£?žÒ&?hæú>ÔYf>Ô$>Óï'>Ô2?P«w?V¬?ÖØ­?öí?«—Â?R‡J?2N>µ_P>Â&Š?‹Ì?‰»?:^?0W?Gͦ?PÛ?YDÓ?Zþ?L¦ô?,ÒÐ?1ˆ¨?5)?8¨£?·>Ïb/>ÁÑÇ>¾p1>αs?³9Š?´'.?y?Dˆ6?Z?>ðî?¢9?&pl?(Y?Ä4?ß>?ŽPI>óDì>ã˜×?[Ê>ú˜‚=Ò"p=¬i ?çs?äš°?Áò?Š·V?…‚L>â`Ñ>ÞÂÕ?§P}?Æ?}Àh>ЯU>ôÿë?K³?K­:?“?˜©¦?:’.>Ì`Â?=Ð?ÉÂò?Æ63>è7‚>ËQ™?q “?žBú?µ?i< +?fÚ>õî>ó@J?7¾?K.ê?„0š?£ î?\z?z:?X?Žk/?–²6?8à}>æQõ?)`s?­fV?­ü“>£>:õ>Ö0¢?Þw?XRq?°øH?°.v?ü4¬@% ®/?-¯?«÷?H»>tß=ÿUÞ?<¼ñ?ynÂ?{¯Ê?eç:?;Å=¯ì•=º}–?“ó?¢A‰?•Ñe?“ ?g>Í^/>ÚpÎ?D´ý?HEG?hß?™\x?€ê?Mû‰?fŠT?š ý?—™I>è³>Îv;>ú=…L|=«/H=Dj >Lký?;òb?6>0—>.é£??=_ÿ?„¶?º?šG­=ÇÛ1=Ó»Š>F¨ò>oÐ?„„t?®”X?¨ Ì?˜ãÐ?sÌ +> ‡Ý>5;Ø?7D,?0G0>ƒ +>Bʧ?ú´?áö?pï“?Ÿuá?ŸlÖ?:ñ ?5þ¾?;#?@8N?¤¸Ä?ñi1?ÐÅL>Ï•>Ø©«?"{ý?îÏ?b{ò?LE?Ní×?¸ú? ¦˜?<ë¸?> >âïó>Í–·?ZÎî?‘DÐ?`y>Ì‘û>ÌKV>Ëûâ>ËýQ?×­ú?ý¸¢?t®t9°´“>ȧ>Ì|Î>Ö–w>ÚÕ™?'±?¼?Mm?ëš?u~?-ÎØ?&€>A ó>>p?ÄÍh@÷L?Ö+\?81ç?<'ô>ý¢o>» >”Ú>>“¨>œ?‡Ý? )1? ?3çç?2Æe>ÖÂ>¼¢>ÁC)>ÅÅc>Ê-?E?Z?؃t?ÚOž?¥×¯?@³§?:w‘>çMÏ>èFé>øߧ?Køú?Wô—?UAË>è‚9>°•z>«Öb>§ Û>¢IÊ>î>¿¸?K?˜{?¼a?‹‹?4>ýØ>ºúž>udž>n¹µ>vÕJ>ðm¢?&*É?"4¬?º>ÇK=ˆ å<{à<’i°<¥°<¶¸°B=¤†=Ø–3=à w=Ж|=À̶=°¾w= |Y=Åë=}•0=[2k=8 »=²<ßI”<–a<„p¹ïL¼*¨ ¼¢Y¼òB½"ŒÀ½L_½w ½‘>Õ½§I ½½Ê³½ÄÄg½® +ò½~½Ev•¼µÆoº)ô¼ÕÁô½›¼¾¯¾1)Ô¾`K“¾+¾Î`d¿ 0:¿»5¿>¿ +uª¾©bW¾á&¾©ÅM¿>ËÓ¿…}d¿x ø¿JËô¿¤å¾Ç×¾F¹õ¿9\¬¿ÕW¿ºB¿d^¿6¿ ¿Æsm¿ø¸¿ÍÕ ¿{°|¿Aà"¿6ß%¿‘‡ù¿Ù ¿Ý#Å?“A?áx ?ˆV?A 3>ศ>‰œ^>‚Å%>Wê%=Œºp>¤aõ?KÖ>™¼ü> €>žêJ>P˜ƒ=° …?ô“?™ò>³Ö>ž~Ð>(JÃ>#$a>Žýø>˜oå=hHó?@??ƒ¼x?*ìH>êH×>S.ì>9Ï`>È¿ð>’¢>>”?1‹¸?t­>h,¾>}Ç>õÈ>ü@“>KWÃ>E³k>ÛZ>è +‘>·!>¦9K?"J”?B;?Zµš?gÐ>ÏS> õÚ>‹†6?T°?Þ¿ ?œ( =Mnµ<þ1=”wX>äÄ(>Òðã".>Ý Ö>ÖÜ´>ÐH>å“Ø>è~r?± ? jR?(Ü?(Ò?¨.>èóœ?<7?Rž8>k>ÒÉ?%Ê1?Èž>饩? \¸?‘>¿|ñ=ûáq>`§¿>»ÐŠ? Põ?Lë2>þ%P>±U?jͤ?L²<à>FeÏ? »˜?W¸ã?°‰ ?Šý¾>ë”÷?ŠF?kÅÓ?bÞ ?W˜2?@ª¥>ì$H>ÅK>FIV>¼F?EV[?£8>‡=È?Y˜?<…Î>íñ> Í< +o°>?!ª>íx:>ÞÍ>½ýZ>VÓ«>§y%??ëp?"Ù’>÷C?K«?MÖå?)Ÿ>îGü>’”=Ü)û>·ð>Þz>ø@>”ÒÍ>î³~?JŸ„?ì ?l4?ZW›?TX|?NWÖ?F F?QZ?4§?0—?laƒ?'ò>ÃÁ>£…Ÿ>üá>KSÊ?‡^*?ƒj>â(¾>íƒ>ïlŸ>ïrL>ïx?ÅÍ?G>ì?K¸?ˆ;×?]N>7#ì>Pêõ>jÁ=>‚S>IØ>> ç>¶»˜?Y„Å>è…¥>ü?o¤b?™xw?ªç¶?ˆu`?o¢U? 8 >®ög?&Ý?Sª?ÌQ?î ‡>± ²=Çw=¦K">èÍ>ï¨ê>ñðC>ï…‘>ö/q?Û??†–@?ö?¥q?‰¨>§?Ý>±²>€È(>Û9?]fË??Y’?$´™?$ÿn?q4>¶iÊ=£¼š?i„?ïB?c>§·v?Î??–ÊÑ?ö‘?Ÿ•?…#„?N­;?3Wm?C0?[ï‘?‡b)?’g?‡c²???pø?o2?o1ˆ?nù§=’®œ=£ëV?K³Í?>Ö{?4v7?PGœ?É*U?Æ©Ñ?–o[? ð/?îÝê?ØwÀ?n×¾?J·B>ù1>Ã"Ï?nÓ/?nÒŒ?nÏH? V=n`Ø>…fâ? 4[>óî–>ÌÀ–?+î‰?n˨?TLw?2‰?h>îθ?$*½?N“?T"?©—¢?³à}?¶›?Ú(e?îÚ£?t=˜@?Ǿ @^¡?Z°>îíÏ?3š?>Fh?>?’zn?»fÕ?ºÔË?[T?OR>ÿv¢>ï=”Z°<È[?i¹c?o+ ?lØô?a‹>Ñ*H>µÎå=øËM?‹ %?O5?:GV?Ræ˜?­·??”%ÿ?¢á?-Kï?1¢A?4@Â?_29?¶q†@.Æ’@&p>ïÊP?L¤¡?©§Š?ŽÈ?Y_/?—ÝÎ?Í(?Ž)•?ææ?'€Ä?6V ?•§>¡ò?“$œ?ØØl?lŒÛ>ðnD?Rfo?}æ>ºÂ˜<‰_b?®Ú¨?îø?UY1? 4>8:=Å=õ?gî¹?|,9?O†(?Xç?ÿñ?òá—?wC?…m?Enú?XA?ñs?æ#k?]:?Y? +˜?>ýÁg>ñÀº>¾;™>n:®?cJ??Kœ>ò ˆ?^?CÕü?\Ƹ?rAþ?7P>î›Ø?"(©?T M?+ú>òf?@Ž?r¦?€˜D?‚D­?<žZ?aM>ø@H>òð?Ëè?ì«?µ÷?§U?¼ôÙ?Ã8>>£Žý>’fQ?quÅ?`J‡?sm±?gF¡>óº? æP?Â{ ?¬%>è÷­?Q5Ú@ÞÛ?Õ-?1A?4ü?4Sº?@ ª?sìØ?7Ç$>úç?B?†?t 1?i¬[?^šu>¯D?Uº|?Ž >ì”->Ž™ö? ý?6šg?Âh?¿E°>ÿsA>ðþx>F >ët>»—•>ð `?t[Ü?–rt?þÆ?×ó?s’¨?t_Ž?taø?‘'?³S+?± ƒ?®Äj?’ß?tUA?Q¯?.]8?%r‹?µ?ž…B?¿Ž7?¢ž¾?˜kç>ÚïÙ>ŒSï>èSŽ>ôÎ?ÀïU?ÈTo?9,è?8Ä9?Ó$I?Ä:,=Ö›Õ>ðw>ýÑò?¡À?s¨Ÿ?›VE?óŽ½?ó„?ót¡?›n>]4>ñxÁ?Y:v>Ùb>&Ϩ>§§Ø?*Çõ?VÝç?p>æS2?9¨?¬ ?‹Cw?…Œã?Ÿ9—?¡“§?`5?Qj?ÅW?9j?ÙÀõ?訲?m^n?g¨?´Ë£?®i•:ÔS•=‹‘4?pÖO?}ã†?¬·^?¯±?Ýðú?Ô=?½Å?˜ñ<=`b >…#:>¼tE?Îd?L®ë?›Ïx?®V}?Ùë?šþô>q`…>~ 1>…â·>Ïx?$d?)*>ív?[¦?Â7?µºI?¤ÈÇ?r‰l>ÅÝd?Öè?y5©?¢Ð;?å2t?¦y~>ë…ó>”2æ>)¥¦>îÔî?E·Ã?§À?«œ>ê +ä?*ky?’Ô?šG7?¢V?ìR?I1º?*Šp>¤B>æ)„?‚ðô?‹Æˆ?ÆQ?»žÜ?`%–?[›E>æÏ>ë‹@?4cÕ?6ùX>´! +>¦|2>$û²>qË?ŸWQ?¶Ùä@¥˜@ ³º?Øæ”?Æ?™;ë(?VÆ­?©‹í?Ò-^@ «?ÜÛp>Þ¿Þ>Þ/>ùbƒ?8Ü?¨/Ÿ?¨B?ˆu}?‹E¥>¹y#>Š”?s{?™±?ùÈ?^À?%Là>ݤŠ?6ÜÆ?˜D?«a?Ü´N?Ï¿G?\=¿?[þè?ˆk.?ŠkK?fþ?[Î?~?ûé?ˆ-?ƽŒ?†DI> [œ>ÞÁ³?Ù4g?ÔO`>ØØ,>Ø„ÿ?Éê³?áœå?íHÔ?÷Vy?št>×,F?˜F?]©?q ß?ÖK‰?ÖÉ?ÕßE?Õ§¸?‰ì?U@¾?T¤3?RZ?m„­?˜ÙJ?xå>è×W>ìˆ]@§–@~-?{ñ>!T>‹ÕÚ>Ò£p? +úŠ?´_?‘â?>Rœ?0J?j¢? Ý?õ?:Kl?KbŸ?_é?[ý}?¡»Û? 'º?&/k>Ïéÿ>üÙ? Ž™?xh?¹ì8?º±a?x»ù?kÖá>ÇL>5®ª?ù?>q?b}>ÿ×?«N#?ÍÄ?¦Õ>?p@T?\ñù? +? +±¢?9H³?D‘›?Mú>àÚ(? }š?O¹ë?LÝÎ?Lý?L8?Lp¬?LZÿ?wêT?˜«©?žAÀ?Éî×?Éz@bN@ Z?£î#? Ä?_@?Þ#v?Ùúù?¥ð?¬è?l¡¯?Œf?wÙ`?/Ê?*R?ü?v?¤7 ?˯Ó?ÇíÖ?®Ë2?Ÿfí?a‰?’Ô?$}²>ÖQŠ?%¶#?ƒQ?{œÃ? »Q?–¤?™¼?íÍ?…-¥?¸Ñx?«É8?—Oï?›&?U´?L`?Ššm?¤V?ƒ?²>ûÞC>ø’D>õS(>òq?~ûÖ?’?8Ñè>µE–? Í=?Àh‚?Á î?TÎ?Iú? ²¹>Ð6>ÍÆO>ÍÜ6>é¨s?MË‚?N!T?N2b?NLg>²n¬=c(l>¢KC?F‰a?Dì%?8îe?4‹È>Ñ»o>­ë?´ý?O3±?/á> g>¨›¿?H²)?O—?:z?Gf?à>‰!Z>…Ĺ>‚_>ŠÄ?Š9t?“ÿb?•¹È?—}Z?=æ>U>î^ª?œ2,?¥Df?¡?†Ì?pt?’o£?ƒk?P;º?/.û>‰+û>Ž„>¸ç…>®o ?‘Çf?¶L?pbt>ûè¡?Ráy?·Œæ?°‰?¿8'?ÁÄì?¤:‚?›Š?LŒ>è>Ü­>Óêß>Ïó>ÍŸ >Í`>Í#æ>ÌÚu>Ì“¸>ÌI¤>Ì'>ÙÂT>âSÍ=_ä¬>½„?‰?ŒÅb?Õî?Ô??=Ã>Æt0?,?uèX?iͬ>˳>Ãvž>þRG?\¿?±7?•°K?˜Õ?Q®L?þH>ù¹|>¼±£>ÀAÂ?‘¯?ÒË?B|?aö?^n¨?7Šq?4Ù?#ú>õò=ú¸Ì=ìÜ)=ß)´=¶=t>׎º>ú·/?*3?|?z8N?ÎÝ>œ»6? +…˜? Ä©? ô8?Å?‚v?]Y?B?ã6>”Ç£=þ·?‹¡?ÉE?¾ä>­üb>}«.>xÍS>RñÞ=†~ì=Šb”=žm=±I=—û;VSÐ=ž'¥>vh>¢ƒ>ö~=ðŒZ=‡`ŸüÚÁ>‚$r>™Ì?,\K?jP>–iË>—7â>—Ý÷>·„>òÏ`>´ó~=iSí?nïÙ?m×ï>Aw>2@N>‰í->’Hh?+ Ø?=ðS?Lɶ?RêѼ>m†=’Cò>i§ˆ>’ßœ>õ‰?!Ê?(¼? Î>Bø8>;Æv>ŽB³>’@>>ݲF>ès"?3I¼?ERÌ? >è=c?W?4<„>§–?"?®±?¦´Œ?˸?ƒ&±>ýàk>¹E=L}e>ß³ò>ÑÿÌ='A=YIà?S®?T—>ø;>è¸>(¥¶>ÁÖ>…r>¡ÈG>Zïã>>]?*¾?b¸…>úÜ>÷ðd?SÉ?L»>œ—Ó?V?Kh?ºÉ>½m*>mLJ=_éù=âü<®E›;“´ƒ99<ªsÐ>IKÉ>ÓÙZ>׎@>ëE>Îêž>´À>ØÂ>ë¥??&öQ?ª=>ì>ìj>ì0k?Yw?E ê?Q¨a?…PÂ?AŸP=™<Ä>8>ÛIž>åÓh>ìÝî>–‰c?&cq?Ô9?’Vâ>í|ˆ>í>í¡e>ʯ†>’È?ÕO?mé3?„<Ç?Š)?™í>å6«?KÒ€?Üê>îd?ýQÞ@JpC? þ;å¼€<õ—ˆ?lÍ?©Mø?GÒí?,>Àw‰>®âi>årú>ï9>»\>ˆX¢>”­D>¡ §>å¸=Õmí?vHÒ?}‰m?Ýé]?äéö=Ε4?­?›Ú>ï|,>ø!D?5¿?>„X?Šk?„¶H>ú°> #­=džo>B¬>%öË>>oˆ> v¨?•c>;É>ÿ§¾?o¯"?7ÿÁ?nø?á¦?Wö?*j>ï®'>‹ü >d¾?y@Ñ?šÿª>µ,N>®y>[p>6z?]? +§¤>õ{Y>óJj?oo?bŒ$>ï™?#?o’j?gÚÍ?G6£?6†Ž>… Œ>´¾?,Ð ?8õ$?pŸä?RêÒ>е?í?{æñ?qÉœ?o!?odÒ?vœ?‘øÅ?š7t?x9 ?PéL?Gh)?O”®?0HÏ?,‰‡?å]?Ã?|>Ò,a>ã´ý>ï0ˆ?“’‡?«k¿?0;?o&|?­”]?¯a?©Â?ë¡>&ªC>ËJ?³Kd?©….?MÎ?t¡g?¶Ð„?±ëÏ?oÜ?ƒ­é?­ïY?¡æ?n÷‡?nþ´?nûl?©r5?üŠ÷?ßS½?¿A?œE@?_ÿ?{ƒ¸?–E?…³/?ný?‚;?€éÀ?:Xë? à?5&?^šL?À­?ï? Ì•?}‹Ÿ?e>Æ[×?A‰…?}>‘?Šb!?„Ý|?®3 ?³§A?·Ô?À 5?èÍÖ?÷¸?Ü–>Ä©¬?nw?“>÷‡:>ð,?nýž?gÜò=Ï5w>e¸¦?™Ý§?’#?"£Î?'ÆX?‘P¶?Šç?7‹ä?m¡/?Ùéý?±ñ°>w^Q? +óè?½Ð?’Åä>ãî}>îº>ïçŸ?&”7?g–ð™_?ŒˆF?³cZ?àKA?ïÔ@9?0@JE°?ÑR?‹G>ùã>«]?€»-?ô?Eª©?6¿@Šv@%¼ú?Ü ?×Sy>ñz%? HÒ?Æfå?¿âÄ?ó,?&%¹?µp›?›ªí>ñá?/§(? ¶ž?aÂi>I&ã>£Ã>ò+?º?B®X?6·¸?3ëÌ?MÊU?M•?Ûó>¡•‹>Ÿ†(>·Âç?Z/¯?‹ê?¢Æ7?²H•?áÃX?òî?JÀì>ó?ã`?$ü€?#¤¾?+Û»?…Ù?‹B?¢N~?–áþ?¶ŽG?´B†?— I?ˆ/B>ó’A? œ?L•z?h²?™ý?š¥¯?Œz^?ªº”?ëk@*ø®@sÒ0@~7?sù ?2´·>ôà?ŸQh?Þr8?ºˆ%?§V€?²C>¡xÖ?•P¯?·*-?[s˜?7ni?BB>ôJª?×j ?ð „>÷̈>ýÛ‚?1Ý?W~=“J>WÀÜ?kUü?²ôÛ@6òº@ÓM>õ)>ü½J?öò?iBÝ?·I“?‡2ö?0Ô?¶V—?ûqÙ?Üq?Ç_(?tô{?/÷?²’¸?Ö‚ý?¨àQ?Î~>JÄñ>ÛÜ}>ô5?Ð|û?Ùù”?˜W#?˜ø?æƒ?{?lØ£?sSÔ?sÁ?s´?s¨J?x»‹?…Qß?›òL?Àtù?éÃ@ ·V?µÐu?†d>/>$žO>‹I?P›X?—A(?’ß?†—p?Øk™@ŒÏ?œû³?l ?¯XÌ?Ä=?:ôó?þi?D›­?Râ ?µ¯2?¹-ô?õ>÷΀?´öú?² F¾ ?¬¶?vÿe?:»?QTª?†³?{¯p?'mú?3w?eûé?gÐx?‚+?u²?i.µ?œM€?ò¨ð?¶æ?>Ä7¸>¶¸9>©Aæ>óEÿ?JL®?9 +>?Õ'?yßÃ>ë¡N?8â?_ÎJ?] Ë?_ñ?C??0…T?RHù?Wó«?iÊŒ?†*$?¯ Â?Ÿn?iÑ?€UÛ?¡Ë\?“0»?]åè?x¤¾?­Þ?û>çdÞ>ç0°>æþa>æÄ>掓>çÁ¬?•¸/?’ã×>÷(Ô>å|Ä?¶?æ?°³?ä#>×1ç>Ϩ?©÷m?Þ¿´?¾(?ªZ?‹$?bÕÄ?-“D>åå>õæÂ?›?c4?Ñ'?¥px=}ÕÎ>%²A?uKÅ?v™F>Nã±>`/Ö?aå®?l¯Ð?ô¶?”n7?vEM?^qy?![{>Ýù?Ìö?]„w?kö?‹¥?’Õj? 6y?œéš?„®'?ƒiµ?` "?[mã>«O¯>$º?]#?²‰u?nËÐ>¨g(?7ã§?ãÎ2?ÑÕ>¹>½6š?â,¸?öÂÅ?Éâ?RÄâ?»è>ßàê?=ôØ?¡_à?«‹x?Ö½É?Ôm±=H˜—=|_°?€[M?œG +?›M?™ò¬?J’>@.@?‚ ?᫯?Ýg?Àª?Å­D?«7?˜ƒ?¯ S?ÄÉF?•* >àDI?õx?©J}?§.€?C…?#À?Btç?UI??Jêî?Uô?lÝr?íÔz?î“z?Ž&J?bØt?\WL?mðƒ?}³ó?‹1ˆ?Šs6?½’?…:>G•±=ÁÖ? ü"?wÜ›?n³÷?_‚¬?]M˜?»w?Âݪ?Èö?Ê'®?Æëµ?ÅOÆ?¹U5>Ͳì>Í—O?‡zÙ?šP?µ7I?ÍBÄ?›ÕG<~c@=©°>Í">Û?µ>èæs>÷K´?k ?H?«?<››?FU¥?ÄŒ?Ò>u?Î-Þ?Ù_Æ?¿:é>ÌJz>ÌA?‹Ò?™(#?x/b?L3?DY?"Ù?C?^…ä?qH-?‰Ÿ}?–›Z?˜?} B?{t ?yÈ¿?x$?.ph?#Å?@E?h4(?v3?n:?l7ò?k|M?yA1?)¿>Ì¡i>öB?6ªw?9G°>ù¬>îô©?%_??^e?[€R?l„?ig™?iÉ?b, >5’<´L=>qû>Í£9>͸>ÍÏE>ù8?úßV@¦?Ø¿?Éh½?°F^?—{Ý?Œv/?NƒO?PJ?†àV?„…Æ?Ç8?çQ?›œ‰>úÉ?>àð=Ë&Ð=×Ó½>Jv;>s= ?B4y?sÀ1?\5?O°?NÜU?'˜Ò?%È?#ÒÃ?"&Ü?oÒ3?†ý?dé¾?PDî?[y6?€ú?|p>”°&>vê?EÄ·?ˆ¼¿?«¯)?ñ/Ø?Ý…>Ñ8)>ÙÌŸ?€Þ?ƒLæ?EGk?8É¢?h ˆ?’+z?ˆÙL??”·??§?5Ôd?9@ ?èÜœ@õÅ?Õ M?SÌÓ?doÖ?š+à?›H«?›(¹?› +š?mZý?NTj? ¶W>ÍáB?/2?øµ?ôE?ÆNµ?¾Íz?»ë…?¹â?”õ?+B|?'t?#ÆU?þ¾?DŸm?a´«?q–˜?µ?•¾É?r¹!?i++?ˆ ‘?”[…?tÄö?¬C?ó??¹ø?B±">æß9>ºI$>âØ]?kç?w >ÜÏ>½fÆ?!»‘?Œº?‰Âö?2…ï?5iÍ?H4G?6Ñ‚?5Äù?×=>âÃ>ËHe>±DX>°K>~pH=îØG=Û:?E?jf?F4<Åí>Ø{\?cðÃ?a'æ?%”Š>‘`>ŒaŽ>Äð1?FªÀ?IÁÃ?Ba+?íø>õáÁ>ïcª>¦7°<ª$8ÊÀ=²  >+aÌ>#—<>à¹=º·J==†Í4=‰z=”Sï>ߥ>vÂ=Å—=¸ +³=«>¥=ì©q>I¥ >JfI>9EO>(¾=>¹K> Pv=ñåº=¸2Z=†zn=‚?q=‚x=wÿ@=`FC=@=Öf<ÞÃZ<…ÃL;·*»™¸¼f~y¼´7n¼æÇû½±½ €½iZ¼ßá\¼›´â¼.g¼ +™à»ríù¸šZɻ˸ͽQ±Î½Ýªt¾0 ¾[Â3¾%ú„½Á5½a\½xÅø½ ‡¤½‘zE¾&¾‚y#¾àÒH¿r ¿9οìJ¾dy̾¼Ø9¿6–¿Q´µ¿‡7Ø¿­Š¿kž ¿ ¿gC³À’Ô¿è/*¿gª¿½m¿ +e¿lÑÏ>À_?¢®Å?N’?@ß?T\>tÈý>}(=¢bo>3K>Šè‚>OÂg>L¨œ>IÝî>‚Í>ô¤>Úòr>Aä>C%=>’„g>‡­;ž>Ä™>ê«>ÅÆP>Á9Õ<Üä°>Æi>í¦¬??ì?)Ð?"¿b?Ì>Åå>}<>ržß>bg=úT¨>U›>ê((>Ïvx>FµË>m+G? ø‰?èY>éMú>é6Q<às`>Œ¤«>§W|?tP?Æë>Õæ>¸æ>Cøe=˜Îj=…'=b)Ü?I?¥c£?MˆÊ>Û'ì?®]?ƒÀ`;“=Aÿ=gÌ? YY? ’M>LÕ +> k‚>’‘7>•„>ŽF>‡g =hMÖ>.´>~Ô×=ª->Tª>–¤ý><áÉ=ퟞ>›ßh>ê ‰>} 3=TbÓ>p³Q>àÞ*>é¬>ꧺ>¯>½s?RµÅ?'\v>ë/?>Ò™?’!$?Mƒ¹>œ +î>ë ?:w?5¼¼?0ú]?þ¡>‰{2>³—>ì@d?3 [?“äæ?SyD>§>…Ìþ>þ®Ç>šVô;äá`>;ÛK>ÔŠ?TTn?½”?ˆLÚ>í„M?;r?…Cá?`»^?5°°? s?«?6³ù?lÆ>ïo +?T6?Ëað?õ>ú Ý??Ñ>?n„x?l¥?aö>‘[?yñð?³>ö\}>*‡Ð>îAó?vù?UWßÌ­>¡9é>…Ë=ßÂ*>·©G>Ð'?¥{ƒ?°ª;îš<°Kñ>æ0’>òTÏ?€\?tté>ï„=>ï‡Æ>ï?Î]?“?Žoš?o e?%åî>TZ?_/?:Ôú?|5¿?qé•?o"Ù>ò¦¸=3, =÷?Hò}?—(\?6Äz>ï¿B?XT›?yié>€È.?„F?I=?ªY>$?A¨£?X¾¾?ªnt?³¢Î?s±?kÚ!?o²ã?g¥v>ﱪ?”ß?o«4?\A>ï¨?)­M?ªv_?šŽf?Œ³?J"^=â²?!žü?Ùr_?Í/?²ò?}»˜>òr>>”H=é¦ð>[¥>¨Úµ?í½?!hê? \p>ïpx> Œë=õA>£a?i3¾?›¦£?-×.?í>ö‚>ïSn?ÙRU?é¿>Ï6>dã$?ÈÊ?‰£?Gðº?;èƒ>…ªÃ>¡??˜½È?‹Vº>¡´>gL£?,Žt?:ç?‹0?€2ð?oÞY?M¹ƒ>ô»³?Eªf?«Q?“g/?mm??Y&l?+'¼²9”‹+>›¢`?w? 8¶? ±Ò?A’]?PB>žéì>0ãC?8³“?j+ò?¬–H?½ìÆ?‚Ò(?o^ÿ?„õ?ƒyú=¢?\Í›?oR›?²ÜW?¬8?’ó?6Ž=‚%?@yD?['7?›>Ä?’þ?o¼-?X¥@>ïÊ×?å¦?’æþ?‰ˆÐ?FþØ?’Íc?óð?¡¯Ì;jt<Ï.8=’[>ߢ?!wí?”÷?w ?DËŠ?>¯à?8™9>ç£å>ˆÐ>ýì†? Vž?:þO?T¤?Z·b?`Éo?î›>èýó?OÏY?pëh?¨_ê?¹•/?ùȉ@¼ë?mU’?;‰A?ˆâí?‡Ë?Ùlß?Ø +Ï?>¾h?<Ö\??Î?&ô?’ªQ?’Fñ[€>"òž?qÔY?’†q?ñ*I?Á7š>ò>Ì />,>²÷>«">‚C>:8û?$ä/?˜ìÄ?V>ò~×?orÑ?´š?‹Ž ?T[}>ÂÝ=›°?˜&?æ#?˜o9?rðP?×6q?óÈ?¹ñR?¨}ž?m™?Z§.?•1ð?“G>§át>¿HÎ?‰p°?SÄ?tæa?ƒŒ¡?Ξ?‰Š>¤ÞÓ>á9•?4U?"È? µü?vbù?æío?¾«˜?tÓ?–Ao?»VÜ?ž&?tð>âiÝ=­Ÿ¦?FŠž?™´ì?hâÓ?Mþ>±†Ž>MOE?}x›?˜­?}sµ?tM>¯ÚO> õ×?b?Äù?˜??'Lâ?·JŠ?¤  ?´€>ü +´>ôáz?>¤?¸cÉ?’ ->ôl‚?%¤?aµ‚?rö-?ˆ-?Ÿ“?’c9?[ÿ?˜ç–?¨£[?±E?o6??4’=?n +²?…Æ?U‹?KiT>k.Ò>`>ægY>ô ?_X’?[õ4=)5ˆ=ê\ò?oÇP?M»ƒ>Ro&?sÄT?UæÔ?]?oY?Þ!¡?Þç?ä©[?Ó@?Å'¾?hä•>7-Ë=¹AÎ?5K?–lX?>[N? Ì?”…Ý?Á[Ç?¬àL?£Î¡?È?Õä‹?FE(? àD?cÄg?r#>B!j=‡]!?âî-?ñŸÄ?uH?søè?´þÇ?´³:?¯›%?§O‚?M{Ò??=?;ý?Æ>ðpE?.ßg?É!"?¬a +?& ·?5Â-?aÚq?”>?уh?œ’7>…Fº?È×?³)´?‘ˆ? ê?2Ð?MÅ’?0Ls>î£?õ?Zw?]–?`±?ˆÚƒ?®²:?™k«?lÂ?êx>@NÞv@ g >òOë>ò×^>ë¿Ý>õ»ê°×>Å‘>†£ø>Æv??Žò?Búë?‹ù?f&e>ÌùC?aQ?¬®?sq˜>z¥>Ùrž?–#e?#D?G·?=¸G?Ü£?êg?ÿE?âª?ÀÆ?ļ>Öª%>Ä*?eÿ²?pžR?f€°?dÖò>Yâª;¶ý?#.?cùu?c½ì?cý?d<ª?c*?^·ª?Xæ?§^ò?û–ö?³ÃA>¤§ä>·¡>®9 >·/?Ù%?Ïó>™ÐT>”ǧ?yD?…Î?óù3@ ‡?Çô?ªí?mæ??%×Á?$ß?Ò²¥?ÓŸ ?ÕL˜?ű.?´‹r?´]ˆ?“{j?”zÞ?b ?[Î]?/ÑË?BÐ?‘¡?½<-?Y1Ó=õJ²?=I±@†å?áì‹<ÐýÎ<Åï<ÒæÁ;_ÏÙ>±’/>Øvc?Àþk@¼?ÛW&?¡µ;?”,x?eζ?prç?ï?Œ³?|Ç? Ÿ?‚ ?kP ?#«œ>¢7?5;e?ã»W?àžA?Ÿl*?ŸFá?¨6?‘I¶?Š’Ó?‹2)?cÄ.>êªó?.ŽB?îAÚ?í‚>ý\ˆ>ᙿ?`€?‡0?o)b?:í?zZ9?öš?ó0+?Ÿ?¡·à?Zn?½k?$OQ?8gŸ?Jô?x‘Ö?tµ? =œ?ïæ?¡„?ÏnZ?ºn?›e??“nC?GmG?Jï¬?“¤¬?šõƒ?¼=ùí>Î;>ì^?û®?üÞ9?µiŸ?žbå?­/H?¶xµ?³m[?¶æÀ?´7S?ó_>ÍI=>Í8œ>Í/—?\^?}@ˆ?y¼ ?³š…?º ?{yZ?Q´~?k¬v?dÔ¬?Zؼ?wU|?y™?WÇt?L°à?•+–?³!À?Ž'E>̪W>Ðè_?>^O?;± +?(R-?=$±?si?™ƒò?”ú_? p×?/±>¢±°>•õ?vÝ?›M?uù>öC‚>òh\>Í’>Í Á>áâ>å?4>?V®?RC¸>þ1<>ëRÌ?Ë®P@]v@ SN@@2@ t,?šY¶?›Kð@/§@¡”?’·>Î*¹?}?g!N?u|„? ÕÔ?¡”Í?(d^?åò?4×Æ?NÕŒ?‚.$?Ã0 ?Ääï?ÿxQ@†ˆ?¢Æ?v¬ß?ŒU>ˆA>ùó€?~?qÇÚÛ©>÷—"?³·Æ?ºJ1?£ïu?‘?‘¤ª?œlš?k(˜=cø=?fw÷?m]‰?à[?‰Œ?p8>¥YÌ?̨?¬O(?¬vu>ýÅ +>ênÔ?'/ ?=´ ?!n>ó³Ÿ>ž <*Ï=¤rý?LýÄ?P"?“R_?›Ç«?Ô7À>T>Ùγ?Û‰?—=+?–ì>ds-=6#>®Ñ}?"?M?^Ü·?£ƒ?£©î?¤L¸?¤ïß?4m?¥ ?'@?Jé?J€_?J?I°Z?IAÿ?HÒ ?4D?7mÞ?:hÛ?=OÌ?A ¸ >Àt1>ûk—? ^2? O?(¹S?I@ç?Ä=¼Ðñ=¼³ñ?!?7µ‹?RkÅ?b˜?\«?AÆ>ÚŽ¸>å;Ó?.Ó=?.³k? C>¸ô +>¬ªè=‰‘=9Ÿ(=…Ÿò=£Èx=#&O=É€>¨þ?a×?ßø?‰>Èe2>§&Ž>¦Çá>j£ <%8<n`>9ï>oA‰>j,>q f>Ÿ|X>}ª¸>oP>`(=™·=nÌ=À|=À,0=ÄZ(>,T>†Þ!>«§•>§¨k>¢}«>œB>ˆN>b˜0><6„>Õð>;> íF>ìâ=î=á=Øö¼=„=¨î#=‚â@=<Ø<üˆPŸ¦?ž¹?Èô>„|;>Kåö=*È>†&Ÿ>‹c’>aÈÜ>0Ù-=ên>R‚²>93Ni>I©>‡B>Š2c>]âz>P ò?4ÉW?IŸ >ñK>´ÔR>î6û>íÞ]>íŒË>5¶>¿ÕD?0Ž^>»Ï#=†‰5>Œ%º>œ/g>êL%>Ø):/†>è?)>é£=2=»{=Òjr?%Ê?SJ[>¡’[=ˆè>™7>èè>èày>è×Ð>èÓ >è̈>$:6s<¿‚x="å˜==a[>Áy>º½I>´YË>­j[>ĉ¥>ÙO±>Ÿ>p>“a?. B?7)ä>ýT›>éh¥=ÁÕ?ö‹?M‚?²>êZ>ÖöG>Ñ>êʪ>òÕ'>\Ð>ízx?fï‡?)Ðy>Ѩé>¡>,Ó">¡–¬>ëFã?7œÜ?‰»i?Thv>ëžó? ??0ï? uJ? ‹>Ô¦>¨±>X…v>±[>à:_? ¡-?(€’?cr|?h´:?l˜G? êŽ>´Î?U?(.S>í@È?­·?9¸¾?!8/>튅?ö?&yè?4þ~?9k>¾2?>º_>mº‡>@>@¨=“¼«<×ÁÔ?[?nl¢>µvö=:â?#D?n¢¯>•ðz? t·?Juk>Ô÷Õ>ƒ¼š>ÖŽd??qï?‰ÂÒ?Ws«?Qá ??‰+=ã)¸=¬s>é©Ï>ï\õ>é&>ݹ·>ïp²?’&?o}¸?R¾å>$”>r^>ï–‹?;f?o V?W(?D„>ècK>Ê%‰?†*Ó?”‘¨?³ò?zE»>ñ÷¹>ìˆÆ>Ô„4>Çc>º>ñ?G?Ï?‹àË?2‹§>ïÍÝ?"È"?G7¥>³pX> ã>ËÝ•>ïÏ>ïѳ>ïÎŒ=ŸÄš;t‹É>ÞÓ¶>øÐ?¬ù ¿/>a¾²?(Å ?’z>yg2? P^?Ó“M?Ë”?•<°?{¸>ï³>ï²>ï­]>ï­ä>ñy>ø©>爛>ÛQÛ>»ô>%?>Þý??:²P?3êÍ?-%ª>¬uè>Ls? aÁ?,Z¤?oQ>ï‚Ë?Nî»?nut?o|â?lJ >|·°>…n?8OÓ?3ú>$…>0)ù>É™®>Þ˜H>u{>´fw?Œä!?~Ú÷>ïbg? ʈ?³‡R?Ì͈@™è@Ÿ?³ò?ž°Ù?a¤?iú?…5?XPÂ>ïYê>Ž¸> )â?:­£?+ë»? ‚ø?1á?,Y?¨s#?ï_½?…³ê>ïbö?B~ +?j!T?Þt©@æ¼?Ý +ºMx>‹?c¯?+…2?å?!õÖ?g•?o‘?¶èy?º-Z>ëæ;Õ¢<¾ò¯? ›?z?ZRT?J?H>«i>ºo¤?@èó?J£?•¾D?Ók?@: ?Fïg?>0…?#>ðP>ªŠ?B^c@°?À'A>ª¸­?Nt”?BU?5Ç?\9U?V?ƒó°?p~§¹?EzM?‡?Ù?+.Æ>ðÉÝ?•?»¤> T<‰¼=Y”?“‘?´×†?˜ +?˜‘>Žð'>.ü? Q–ãù>¥7)>ׯý>¸œ˜>ñ°…?¯ÿ?dú~?Eͪ<‘1a>K¤ ?qø¦?¦(Ê@k ?ÑHï=¶»(=”¹>;¨è>òUx>‰}ï?ïã?›/'?U¥y>òQ>ÈÁy>´"¸>¿*Ð>Ê1‚>èa>òàG>÷¦ >ó9.>ó>÷Ê­?„i?!ñ?©Ïw?¶j?}lU?sL/?IÙy?Q ƒ8Øjø<`ÂŒ>t>í>“4/>ó’¹?rd?s§õ?Cd=ëŸ">ó°W?¶Ø–?¦–…?‚Ò)?KOÛ>ô…Ú?gÔü?¶+E?=ˆ‚> €?!Ç?t>º.˜?$í‹?t1í>ÆŒK>MÁl?ˆt~?˜9Ò?xFY?tO/?S¼?Žê'>6>a?ËÆ?Íðý?‹¿0?Ö/?·Q@?«7\?tnT?tq.?sY ?*>Z=óÍæ>á8l?a ?<°?Ï?^Œ?ì¤?g؈?‘•ù?iF?<œÌ?6ÿ¬?:áG?»‘?'8?$K¥?!æm>ÃTó>¶Fc??áÎ?<è¨??¡w?ô? ¬.>ýåm>Õ­5˜=ÄS(>ç+x>é·“?›;??>ó®Ö??Wš‰?¥4?ó{'?Î'Z?ž½›??fY>„?á?-æ²?¢ŠV?ÙþÁ?ʽ=Ót}>Ôª??²Gi?¬œç?2?0M\?ç*?Ôf?õ/?D»å?çƒÿ?Ä_>ðzw?Ûî?…WÃ?€ >?8*›?p>{?Ñ?¤L?zø>,Ôƒ?2x?³5›?c +>lk>>«>…?f?Âô>îW>äèu>Ú·í>í{4>ù€H?&;?m+›?mþ?lÛ(?G¼m?™í?‹ç—?ØêC?„-£=˜§ +>l|>ë‚ì?¬à?ðî? )>êÓ$>ͼC>“¬>|N[>E?¹?ÈÇ?“¯ò?P8\>fM´?X+?!õ<>UøÉ?‡"x?ŽÌH?½ûã?µ’ˆ?T?~ø%?{ôŒ?vü ?!‹´?&%=·»=e#Œ?˜æà?©‹¾?u/?e˜?dÚ„?drJ?cØë?d4Ò?|>÷‰@>ü|—?¸?(?™X>ýwm>ü#G?2ÈÃ?x`H?P>á‘d>á[}>áT>éÿ„?3Â]?1#?!’‘?$Ä?¯, ?Åèt?Ç[?Æ?ˆ{?1mi?©.°?üx@‚,@:é@h?>[³?D6?\Õ‰?\¸{?Ž¬2?‹%°?‘F?•ø£?^ƒ¡?+‘b?;"?TúÍ?”M?Ø>š?µe¾>ÙøK>óé‡?£%—?¢ %?b‰?T¦ ?d•Ø?qܤ?8$?Yæ?pí>ùB¤>ãO'>{_j>Œ‰‹?Ç»ð?ÉÅ?¼à?·Ç?'¹ß> e{?9¢?Õl^?ÒW?¿‡?¾V³?Š_h?†ïÀ?ÛØ>Ô? ï¸?S¾°?½¹?ñ‚?ãní?/@Þ?RŒã?ˆ~?ª?·åº?õNp?ë`£?Êè?íq?{jî?ŠŠÄ?OCÛ? ?i¸Ç?Ë.Ÿ?ÎØf?Û?Øü?Ó¥»?ц?±ùÈ?›Çë?V­=pô?šeŠ?›Y`?‹+>Äy÷?º}?Eôß?_W˜?§>Ý?¨¸D?fà{?_òï?¯Y?Î!?ØŠ?0ö²?>,±?1ÏÝ?/è„?“!o?›¤M?`"?0qd?3à;?7T©?9É>\^p>5Û?6¡­?~2Ì?™N“?²Ë?ú~>ß®>åûŒ?Ç%â?뙉?´õ?Y4w?T€?ˆt?‰M£>²´É>m"À?3?e  ?r%Æ?dà?XÑl>(ò> Š >£Ëö>ÍL-?8-?X>Ð?Fn3>ëP>>å?Ó?JÒ8?RB;?†±ò?š@â?¼hz@šk?ýÇÛ?θô?Íú+?€»?ZAá?·s?ûAÉ?Ãøl>l™ >‘±k?CfY??‰2? +Äç>ól.?I-X?›o?“ß ?5éx?4d”?¨Cì?°½?¿$×?ÏLB?Æ°?Àâ=?¸´¶?;`4?<Ý´>“:Î>7÷3>ë3¼?Eå§?RˆÒ?"@?$w?¶ Á?¹Nz?D­i?¯–?'žE?&S?;nÔ?œwŒMx>úƒ¢?ˆÍL?ŒyÌ?¯÷È?³î>IõM>o>r4>¾æò?LÌû?-q%;Ö¥o<ä;€?¾“„?Л“?Iå>Ðt?E¶s?›¡?1?T¼8?\IÕ?¼N0?»ÈP?,ðç>Ï\,?¤ˆ@‡ã?Û×N< ×?*×û?4P˜?RŒ? ò°?E¯”?mm?`h>Î9¤>Ëh2>’l˜>¤K>õd„?”ñ? +í?{`?è>Ù(>ÈF–?%çÍ?;q6?Wä¸?²??±_?†q§?÷??†¡‘?”~?‹âw>Ä2¨>ÁN?qƒ"?®æ?KL =•=‘>¿¸D>ÖF‚?߆?W¬Z?Po`?Ä]³?Ú(X?Àb‚?…Ž ?†/Ã?IšY?1¢?G¸N?«øÊ?­R*?Eì˜7íÊ€>`3 >›ùÝ>‘{d=»Z=rÝl>ÿ‹?›À>êd©>|cŠ>l}Ô>dc>Ÿôn>º]û>ºgQ>¦V +>ŒHê>Š->ûî:¤ùð=»ûV?¬¹?%û?±à? þY? +±É?&Y? äÙ>øè>Œë>)²>àð>n%>v>];…>jù>_žö>TJµ> +˜v=|ãO}Õï>FG?>–Ó?5¢î8Íî ;>zö>…¾>…©Ë;•©1>O1>…Pó<ª7Ô>M}\>^³\<Üh ? Óx?+ >!°m>£Ë'>îÅ/>§Lß>t[b=ÔÄ>€Œ5?¢>ê ’>Ë µ>¥5ò>?´Ý> +Ž==yg€>¦fa>¢Ak>ž‡>š>¨>â>±É>_[Ê>Aü™>­ > >ƃ>Ë4>Ï×>Ô«ð>âE^>éB‡>é9™>é.ç>é(ò>é Ã>™ö> +N`>Ö;ß>Ð_>Êm‹>Ÿ™ ï>Ç@>6Ú>M4?Y +G?i€)?Lz>éP>qkÖ>.6å>ÿ>£Ü=FÓ>¡Ç>êð>ÕÜÅ>ÒYa>7 /âœ>í¹›?Šå>ûgw>ë?A +à?Ûs?`ŸX?C#U?2,´?'`Þ>ï%>lvá>®aÆ>ëâ)>‡Oš>FÝä>ì6">`¾=œz$>À¶C?Y²â?7_¿>íÒe>ìÅ5>ï—¯>ì‹£>Õ¬ú>’Éç>25 >*2‚>Ñ>¾È>/‡é>ä±w?6·T?qW>Ó”B?;â? ªÕ>¹¥=óó<>çY?GÙ®?ZmÑ?f“?%ƒ£>îX±>7‹=œØ?ÚQ?ML’?ûª?¤Ã?‰!t?lø@?]ÿ>îÜZ>îåî>îò–>ËHÕ>«PK?1}?*>Êè3>Êë?XÁÑ?iS ?n¨?oQ7?mvÀ?cø6>ïj‰>ýz¡?T•þ?R-?o†4?U¤>‡O>’f>ï  ?ý²?ŒË‰?NÉ^=è[¦=| 3?*üÙ?ë +N?½k?p[?9ö(>ïÏ`>ïÑ<>ïÖb>ïÖZ>ïÚ ?@vð?oÝ?I‘Æ?/v|?[hú?Sm/? pÕ>ïâ“?u7?[?Ù³>ôÇõ>ïã…>îrÎ>ïnÿ>ïãØ?ù£?2‰•?³èw?¬ !?×?„>ïÜ¥>Ø-Ò>9\>ftÚ>ïÖ¥>ïÖý>ïÔÚ>ïÑ`>ïÏÀ>ïÏ«>ïË?&)W?eÎð?úè=»ò6>ê¶?J»ì?+ŽÑ? +«M?e‚ê?“Ã÷?F@ú?&ä?¬?˜Ù?†:%?¤ƒ¼?+·–>ï§ö=º¾ih>eýº?°ö?Ûa?£ñû?˜½>ïŽ[?Í¢?¯ ?Íì@¶?ý¡2?zÍX?]£i?e(>ó†>—ß´?6Ÿd?¢›t?4X¼>Ç#>›¹ú>—M›>eP?>Jß?¤:û?̽?í=¼?ƒ.>ï•?©Ý+?â>?­Êæ?Ÿ†?}IÙ?n‹Ò?ºlÇ?ÂJw?…áY?d+ó?œÍì?¡P>” ð=á£4?’Õâ?–q?à“?í^‚?x|?m´;/U&<„óÜ>ïãÿ?ZÜ?oîå?Z²î>2î2>i0M>åÌc?Z?ý¸?y@½>ðŠ?Fq?×?‚†2?i>¸Øq;o€?*)„?ñ—Ä?”üJ?/ã?¦´ ?Ë\ß?ñ+“?žM{?,OB?pÄ?’§?ëÑ?$77?: ?Q$‰?‚[?—Xä?-h>âc?“š{?´Éø?…úþ?dfK>/bb?^í»?‡ÅÈ?+}a?"ÏX>¢E°>…‡Ï>ït">Ùß—>Ž>™ì¹>í¢>S”?›xˆ?—K²?o’?¡‰>ñîù?+Ž?µ2®?Íký@²Z@vµ?üýg?Ø[.?„PL?8SD>™à°?â?|¦ô?6Ù>Z&[>ùDÉ?G; ?]„w?Z`¤>œ=£0Ë=¥JÊ>´Se>òýÏ?Uøƒ?qkK?l.9?fÎW?Éý ?ЈÎ?@?Š˜ >«ÿA>»0?„È;?€O)?u(´?Y@(?Y¹? P?"&’?7î?ˆÓø?]Ÿ€>̬C?7:Ð?­¢Ò?ÉžÎ?óõ?ÙD"?µŠè?˜ |?}«?Ê“?ûOú?¨²n?t&À?CØ’?!&?Y·E?t@Ù?PvA?6‚œ?ÅZ?äÒR?‡zÒ?t[c?¢á?§01?èM?Oª?.D?AV¦?ä÷?ã¿B?·H&?¨ù'?tx)?tzö?tz ?CÄ&>Ì|]>ìv™?yÈ? ¼>ôw}?#æì?Díî?^ãu?tnÎ?tlˆ?th|?gâf?YŽÅ?Ì{>èÐk?vQ?‰%„>aÿD=©³ü?Ìú?áo?¯¿g?µÙw?óÃÑ@l@6Ã3@$ñÊ?«eá?„?ó=)>;Y×>óË ?²"Ô@PŠ3@ ê¼>óš*?SmV?ª÷â?’<Ê?lW˜?u;>‚½›?4&?\U?Åó1?ò¡)?M×>VU?Ìt?*R?o|ô?£é@-{b@K X?j +>÷¦¹?e@å?r·?;E?,Ÿ?® Ê?® d?jæ?,K¯?Ï]Û?Å?–—1?£¥~?â¾ü?Ïà7?• >?ƒÔÃ>N!¹>À<ô?sJ?me?pJ?=¶>=³>„J>ïŽJ>ïjÔ>ïK?<Ç©?¥îs?’Êç?ZÜŽ?iq!?{ž5?HÓ>î.©>“¢—:¶x7? Z?²/é?±Å×?°6¥?Uâc=žTÜ>Ó6Q?\a{?IØŽ?9Æ3?—6>²qb?&€€?ÉT?¸s†?úR ?É“4?!S?LÅ>ê”;?óÿ?h~Ÿ?u±?•Y&?†ªó?8lF?hŸ¥?ÂêÛ?—\û> B>µyW? /?«)Š?Üþ?Ö@k?¥#o?¥Ê ?¡î?¦Þ?àâo?ãwÅ?h9¿?fé=m²Ö>Ëvn>ìže?”¡l?§)²?1V¥?{¬?Ÿs?ÆÍ—?%Û.=Å$Ü>’}¦>ã(\?‰î?£?A?… z?tæA?5R?pùY?õy=?Û›—>Úé>ä÷?ZÀé?UZ?P3?J÷‚?¨ä›?»àY?z§*?7P?J‰?^ˆ ?… ³?©©Ø?’–ˆ?ך? Ÿ??]2€?e&@Ð|@c5?"ÍÝ>æÞÔ@+Ž@?7?ºÕ’>Û:=>ÛŒ>Úɇ>žt<<†(>T?a8ß?c,n@+;@,ÿT?$±Ê>¤ö? ÏØ?BQ?@´?=¾-?4ñõ?Âü?]6?S?ù?Y@%?Ž9N?“ïð?·°?»‰¡?£Û”?›Š?¥²†?ºcÏ?º'Ç?ŸÚ_?Ÿ¶¦? é?>Ô“C?-£‘?T:›?•îÞ?Óáö?¯v‰>QR=ðÜÉ?.`?8ؾ?–y?©1ã?hwì>÷QK?)õ?’T?£P?,¥Y?k’?°[û?Ñcâ?´™;?›g}?ÓmÌ@6¼@5ý¥@ãJ@Um?êl#?Ï-§?š¤r?D‹?DNÿ?Yl?ZÊr?E¦a?@µ¶?Ie?OBþ?2¸?GŸ?…>Kl >Y•?ÚYe?òñÏ?Ubõ>üø>¶¾?N] ?I³í?_ÿÿ?hÞ?>÷W?˜\?Ë??ï? ¾>Æ´>¾ì>?)s?!ƒ°?lèÕ?›6¨? åà?_È?Mò‚?¹Ë-?½‘n?¾j»?¿IÊ?—Œ¼?M–?Z—?y?uœ=±í?11D?“ª¾?ƒãÓ?Cø4?Eó?¿4>ò ª?€²•?™Ê)?š[?šei?¤=F?Íí_?ͯJ?Ÿl³?šŒ×>ó­‰=³?hw?ž¡®?›´?Oç¦áÚ>€B¡>:›ÿ>He==ð®j=ãó?l*?›V?¸Ö?Íö?Æ›³?Ïgè?Íþ?“ª"?“äT?eF ?Gº?)k¸>Ïãg>àY>ÅÑ$>Âp?6\C?1&ª?3BP?P^º?{'„?œ[??¢UI?›, ?—ho?·Çt?Âgþ?•uÿ?ƒq®?˜»?§/?§÷?¾Ñx?À37?™1¬?–[ãêF>†wO=;K=±<”9=À±?ùòz@°n?K‰ý>ÑÈ?Vh?œ«]?z¯k>ã >ÞE=%7=_>ÊÒq>ÿü—?hw?”‚¯?–­m?¥~ƒ?¡_`?=Œ&?7jP?ª9Þ?ÅE?3(¡>ºYÜ?‰~’?€¢>Òo3>ͼ7?«‚?¿zª?\º>Ì—¨>›“<¯? ¥ž?±:?¦Ë?š>õÊ_>É*¦>× ?€¡ ?…·?q&Y?n”p?xÆ?_¥‘?Q¦g>£cø>š[´>×âü>ä£^? ™?‰íE?Š=a?¤U>¾²!>ù!^?8t?<í?Ôê[?èÂs? y>¸z‚>·~>¶r5>µlß?‰×?…¶>?„ô?TÈ>Óñ)>Û¹o>«S.>–ù¬>ÊŒ?í-?%t?Œö?7#>û”¿>·M>Ê›Û>Ï G? åŠ?¶ƒ>û¸‹>¡€8>–q>”1†>’HK>U£>Ž_%>² Â>´›>‰Xl>`£à?‡»?+t?+Åð?&"Â?¡Ã?vN?Ň>÷[¼>¿>¹ü>¶âS>³ù>°ê >­¬‘>ª&J>¤ø·>c¥ƒ=‡Ö<ƒ±t=|µ,=Ç=ôbî=ðHö=ÝÔ?=Îz©=¿K=·è=Á#h=Âlº=»³ƒ=­hH=˜§=¢?=Hi= 7S<õ§;ŒWŒ¼(£^¼Ä­½ÒN½@̽d½~ŒI½†¯B½‡é½„Um½c½™ ½¤t½˜?½W¨˜¼ÕNŽ».ñ¼ÿh½°4¾;JW¾—G'¾›nP¾Ul¾{À©¾žÒo¾ü?C¿$8¿0¦H¿ö¿(¤¿D¾×/¾qa¾€y¾ù]¿/«Ÿ¿ HD¾]½åŸ«½úáž¾Q5ý½í +‰·púo½(ƾ>K@ +ü4@,iê?Gœµ>íÅ÷=‰|>wžð>€ÊË>ù å>úéI<Œƒ%>c|>n›.<‡Õ?†þµ?œ z>Q4h>&üz>kÆ=£YV> ‡}>€ƒ?=ÞŒô=£Æ`>Ak´>©c¹?¶ó>û)>—; >†ö‘>d>Š»ù?k‡[?\ÿ>4>rS_7”À=´ÿ=² A?,O°?Ft¸>R‘'=Tê~ˆº8>é•´>é‹4>é~õ>éw2>émr?C¹z?ž€??W¥¡=†ô2>1¬ê>é\>Þ×L>¯1>¨¾»>¢HR>›¾ >•>Žc$>‡’£>€¨¢;»7½>è»?ŽŽ? žÕ?‘ä>÷0>éåA>¸ãÐ>³O¸=»ŽÓ>î>ÓŽ—> xv>–˜>êŠ><âú=`>–Í;>ê×o>êæì>êþ>ë=>ë&?. ?F†É?9*?'s°>æ+¦>l«Ð>¨2©>ĉ€>Í?ñ>ëñ>¾‘ô>mzÛ>ÌÿW?žÁ??>Ùê>…Äf;™ØÜ?­?°`ê?’ˆ?a•¿?\j?W3=?Dü–?,.B>÷-_>–¸ú>‹èý> +¼?1B?‘“H?‚ª¤?mº?Z‘£?Nî? wP>íþ>L)½>Zÿ>î;§>6­s<{À??ÏBÚ? µ>Zë®?¤rw?Û {?Y‘8?‘b?BŸ>îÝ>îæä>îó¹?:Ѫ?Oñ??6Ô?Gµ¼=°¨k>Ü8t>ïB·>ñ)g>þ-?o_F?iÞO>ïlè>õ?¯m?”>Ê>Ð:Ò>}uY>ŸõÛ>ï¤Ñ?4±Ò?³Ãí?ŒÈ‹>ËØ7>“î_< >­>9ù£>ïʽ>û„?ÊZ?ˆ«³?Íl€?{Ûö>ïßD>™{¾>DÍÛ>µWo>ùŠž?‡ +x?¤QŠ?õ¹ò@,œ?gµè>ïïè?“ˆò?¯iÒ?ö?oàA?>ïô¼=¾GS=Â×l?“q,?˜X?³õà?¬;œ?1Ùa?6É£?(Ÿ?/ÞS?a‘b?6 ç>Äsâ>Ø°>ïêú>ïå9>ïæ~?¥ô @*f¤?Ý`‘? ;>ŸÃK>ïÏî?oÚV?*t$>öžr?mE1?Ü?#‹è>yã‹?$ ïÊ[>ïÊÇ>ïÈ%=´ëy>íVø?'>»ã~>¢9å?eöe?o»[?7Ö&?!TÝ>ï·Á?!?‘ËŸ?”¿ö?oµ`?]Þt>ï´ä>ï±>ï³É>ü±?ì™?^žx?¨³±·ö>—1Û>yey?5Âu?’ĉ?; x>æC?=NL?oè?n é?dÔn?Há?ñ«?D2à?f?Ë«-?êã@ º@åÁ?·f®?ž¬?ã<Ð?ïã¢?xQö?>—Â@h@.…?ƒú£?pÚ?p +Ì?jÍo<ÝÜz>ð ? :?žÖÁ?‡sõ>£É?Çñ-?¬·?-óü>ëÙ>ØFW?²^t?ŠžA>î„›>üž)?Á«?9e?> \?ƒ?´| ?¥ +×? 2I?³ç÷?°OÒ?+ö.>7H?9©{?‰C?-Š[>ðúù>A¼Ú=‹U<¥µ8aPû?äŠ/@w ?›ih?qG6>Hm?SŸû?qpg?GD‚?=6˜?7V£?1x?pç?lª >œQ>†ç8>ºû½>Ëù7>ñãë?Ž?¯.?œ8h>ò?5¨Î?µœê?º7Ø?ÉèÑ?ë%<@‹]?Õ)ð?O,Ë?O»œ?<4»?†0²?µî×?ô4? ¥?‚+?5ß?±K’?Ütk?.ï=µâ?,r?rÈ?/Ê>ó;>Ž=·£Ê?–ó+?«Hä?Áq?ÇÙ?+VŽ?&zh?þŒ?{?—¦'?ªœM@€ï@Ri?¢IÕ?Ÿ®©?‰Ä? :?¬Ñ?wÒ6=›¥†>Z+>õÆ>óôþ>ûM]?φ?X?IÊ?t?‘©ê?©"X?Y?t1·??i?-|G?‹G)?˜•à?š ã?¹Ó?Uôi?K +?-ך?5S›?Y«?_­Ë?toŠ?„›ä?é6}?Ê58T¤!<©ÍÐ=‰Üê=²@”>Êé–?t}Æ?ˆ=î5&?Šš?\;?oûò?DL¶?]`)?tw)?ts)?to?Q«;?E…-?‘Ò/?¤Oa?èÖ§?ñf”?´6ó?­9?,Ý}?É>õ,ï>ô4Õ>ô+¨?Ím?u¥?†ÖØ?Ä~ó?Ú˜Ÿ@À:?ð8Ë?@#'? Ä’>în?,¤º?çÿ?­î>ó™*?“?o?÷e0?ÂŒp?ŽÖM?Oµ? °`>ÍÃ>š›?Õæ@TJ?¸?rßJ?¬á^?½p?ªÙº?«g¤?²Q­?µ›Ë?µÀ1?µ£g?ê??ëÊÑ?sLE?d?çÚ|?èí?üv?ñ3 ?Å=Õ?ºý[? IK?*íf?j’A?f‚y>ðÊg>òHM>ìJÂ?Ù?šKC?’æè?pR?eBw?C~¾?Yÿ>±üo>¸Å­>¿Šì?&dp?‘†?d&?¨Î?T×]?²åZ?„â2>î

îÅ>í?'y?tLÔ?³ >|Ù?Cìw?Åö–?µp8?¤˜G?Šc +?L8@?Hða?Eª:?•2?°Í+?¤ x?˜Ú?²q¯?δ;?¬BE?b«t?‘! ?ÒÈ?»ŽQ?ŠA¿?š¡/?Åê?Ìc?Ùíä?²¼>èÞÜ? D?UŠu?p*»?®ß?¤øY?`42?X±j>ò¬“>óàe?fê?f->æüÍ>ë ¨?Ô%?Ö;»>VD¦=S”ò@/V¦@Mä‚?Ðë¥?“®t?Ž$?)¢?.Ò>ŸnÙ? _H?<o?+ ?Üñ?÷!>Å|ì>õar?'`@s¬?ñ¤±>Â,_>»ÓŽ?z'È?~ÎY?·Å?„Õ?ÏgÂ?ß·b?£úk?Á?ƒã9?tb±? +=†U‹>ìí-? se?˜¹Ï?l_?f¬…?]™?\á_?\©ˆ?\s¶?\<?\q?¾µ>Û˜å?"VÎ?S$k?ÛH>uÉ?›_‡?˜œ6?¡†Ç?¦ÉÍ?Ίª?Ë +?Ùox?ߧ¡?¡; ?XvŸ?pÜ?Ž?„’%?+¤7?)~Á?‡Œí?ˆA*@¶•@¶’?øÞ{?ÍI?¤Ù/?g”?sq.?‹ÇN?Œºe?;¼»?/ö?H];?T¯c?šº@?ÆûŒ?§j"?.A5?0”?Z´?NãÅ?ºiE?̳g?’?[ùm?z=8?˜«‰?º #@6‹¡@7Ì™?ßí?Ñß ?Q>Ñ‘x?¢á_@‘^@Õ¾?¥Ï?¨yá?x? +ê?K«>îÏÙ?ÌDÚ@I]è@2 Ü?ο?ÔÀ?ŽÜ„?å¯?³²\?Ä¢k?¢h:?N(e?Cÿ'? ¿Œ?¤â?1Ç+>îªÅ>ºL->½ii>ÑZÃ>η>Ñœ?Iý°?N´?N}8?NsR?bAg?vl?_B²>ÎGš>ÎÎê‘?hÓ@Ôø?ùH:?T(ß?N/Ñ?ƒ +>דn?P.q??ž8â?šÌw?›Dš?µ¾—?±Ëƒ?ž,?šô}?ýÑ_@CXç@,Ò³?6u®?4r”?›Hà?¢%Ö?˜0ª?ŒcÃ?I¾2>…Žî>k•í>ãØ +>üVa??ŸÓ?c·W?xãy?zù‡?«¤g?èXÁ?Õâ‹>qBé>g02>nAš>uI´>äB3?)??C0•?š«ù? W?z}2?o9Ã?X ?gµo?¢¥ ?ÕÍl?Âù=?} 7?„%?!ìÌ?ï?¢ð&?ÅÕê?£Ý?pW%?ZCœ?HË¿?LÀ?Pšz?QTÎ?QU?QU£?QU,?QUP?-ü>Û)Z? O‹?˜Aé?–0g?`=Ë?[F5?Q?Cd¡?=t¼?.~ú?+W_?;û?8û?J¹?t?îm?#i??¾Ô? +d?0¥R?›ÂF?˜12=¿Èß?(µ^?|/C?z¥ ?S}w?QÍò?µ` ?¶æ¤>Ç0ž>fJ>²ÿˆ>¤Þ]?%|?ža?’,e?JÍ1?Ji‡?Žå?F?j?HªË?<­ï>Ê+>Ç#š?jͲ?Œ½É?@›ó>%¶>$ÌÎ?EC•?I­Ê?C$?Aœö?)‹y>À^ÿ>¿`D>¾•è>½ÄÅ?Î?<?;þ?:H‚?5ðS>á<Óðp=F.>³¬…>á†g>å¼f>²]Q>°Ðw>¯ž0>®dÝ>­ >ÊÈ'>ØPÏ?Íð?b!½?^°8?Š>£a>¡×Ï>e¸¥>‚Ø`>‡"ÿ>`ßB>H>T>»©>ÛAx>ÕÒÄ>·2š>ߤd>ß¡Ü? ˜?æÕ? ý"?z>ŒJ¤>~¹v>z >ŒÜ2>²Á¬>ª¿>¢Þa>‹Ý>[ߥ>Vr#>PïV>L³Ü>$š=a} <²äb[‡Æ>–’ˆ>“˜Z>ŒÊ8>…å'>l‹>> +>ÛV=è>=Ë•‚=¿Œ€=±q=¢ˆ+=’=µ=^/X=.~=ßC<°$¿fÜô¿‰^˜¿Œ¿,ùѾX8:¾ˆ¬¾Ö¾©¾áüɾèdï¾ðæ¿ Y¿LCá¿3Áâ¾´õC¾[~@&°@TŠá?夜?T>œ<¼>:6Ô>qä6>rË¿>sm¨=N%W?vóã?›©h>‘p|>"Ø’>fçÆ=šr>,Þo>ƒè6>b¶Å>S•>Oa>KK;=ÑÍo=ç³>—L¶>€‚X>!N¬=í¼ø=€ÂT>¨Ë‰>ÁÜ)?/’0?3 J?6Ì´?:“=Ààî=¢’‚?9ï?q¾>-‚=7Ök>»H©>êdH>|ô>†â¶>éì1>éà>éÒV?$OW?](´?Ùv>\Mx>‘µ½>¹W>“‰M=óá\>‹>Sß>xà-?>EU?.6Ì>Hkg>jV?0·e?-56>Õ°>ı\>@Ä>'^æ?É’?%Oê>úÉw>ê|=´¿;˜™€<ª^°>Ž¥/>Ï—>ÝNI>êø>®®=ümv>þø©?B¥}>ß`[>GMí>ñò?0^>Þ²¢>D”î>ìª?DL²?lS>°X–?!½ô?l.?ˆ=ã?¢O¢?4¢V;ŒÚ¾?'Óë?°Ã?=6¡>¢Ñ>±)¤? Ó|>ÊTQ>´>•<>ª¿>³%>V'^>l>ç?!y?b»õ?GR"?-‹¬?ö»>Ä$î>ßûX>îH>Mà :"æß>“·>îCš?7"8?QHf?}Í’?‘2?ˆ#y?s³«?•øž?©N˜>¯6n>º§>îä ?2l?Îæ?¼y? ¨º>*€Ñ=¹Áì2°>ë&Á>=õæ>hÀ•>?á>h?>“?0@Ñ>è‘­>ªVà=×Lù>ﯸ?$V¥?–Ý?e<À=¥y7>5å%>ïÎ`?3·?ãàß@çß@K?ù­€?^-é?•¾^?©&©?.CÝ>nŒ¡>T2¶>9Ö¶?_?λî?Âäß?Çúg?H‰j>ý|>ñ¼>ð?¡}©?¯¡`?Ô6¸?Î׫=¤a9?Œm†?yM?“Ò?Œ|‡>Š +>¬«’?$êß?Xùê?ËÞ?§†M=ª‚y>%dg>ð*ì>£><§kÈ>窔?rµ?vô >ïÿÆ? ÕÃ?ŒŠ?=ž??oû/?Áí>= +“?7“¼?ˆÜs?zZÇ?oõ‰?—>âvf>îžZ>ïî„>ïï€>ïíÈ>ÔÄ>ÂYd>èfŸ>ïæÇ?k¶?‚0þ?4> ?7$Ï?šW?›Á?Æ?ã(?&8'?#ˆÕ?oà\?\æù>ïßå?UÆM@¬\?øÌè? FÊ?‡ÐÛ?9ç‚? ÀY>¹Kz>Óð€>îŒD?C7¡?qã?vÒ?N&Ÿ?md?‚0ð?Òvš@M?ƒà?T?¯·ñ?¬p?©&–?Q)?µÏ>˜5Ð>?SÚ?±Ð?¶¸ ?í+—?ý÷8?€•œ?NûÒ?Æ•Ó?Ûüb@@ ®?¿÷>ð")?l£&?p-'?p1°?eŠ4=†ƒ\?H¢?UVŸ?´:>?´v±?£jQ?|uJ>§3š?8Ö?ÓFü?É®m?£Ìy?nÿ <€ ä>#9Ä>ñ+>£`ä=+K`>Ê‹è?YŠû?ñ~>Ž\?ZA÷?´ ?H?ô>q>(?whˆ?Í{Z?uÞ>ñi?mƒ¬?^"?\i©?|Â?Ô>ò +?SÀ°?kÖ6?‚9†?ŽÑï?(!;?wþ=›—Ø?ëÊ?+d+?–z?•¶Ö?=@?C#»?I?Kù¬?7ËË?.ô=‹=ß Ò>æÌ>¿C>w ’?jáÓ?NLp?Æ? + R>µŒ¤?h8??ß•?­-?=¡?pòi?•Óâ?ŠªC?ˆ7?¯ïD?Ð!¥?é%Ö@>—?«<&?röö?rÿh?s ¯?Ë>ô5>ôv>ó3†?‘ ?–_Å?‡oŸ?‰È@TF@ür>HÆ>†…p?™& ?–‚”?“àÞ?œP7?ð¶K?éH4?‰n¯?‰S?—ÞÝ?•á9?~*Ò?z[Ð?u.é?“K«?¶y?vè>ô-?1<º?_"‡>õ†\>xÒ^?kBË?¢“‚?…ñÍ?tBò?{ßT?t,?“9?²ÿ?WÙn?K?E+Æ?9Dÿ<œÃB<“•J?4‡?‰»?m Ã?a.H>ô‚ˆ>ô€j>ðqB>­C$>‚Í?JÁT?wØ)?¨H‹?„Œ?%ƒ‘?€ç[?·d½?–rr?t„?-Cu?þÆ?šL?¿‡Í?Bˆ>ôoË?WâZ?th4@'-(@Bk‘?”åM?i¼õ?°%½?¶9:>ù&²>ô:N>ô2>õƒe?0î?Wz?ƒ^×?€ ~?f–ä?^„¸?„×?x¸>›ýŸ>.q>PÓÓ>aP{>q·#?‡y@x?å&q?Æd&?œBt?~(”?gR ?VCs?•y[?«Ìö?‚Û?eÝû?Íhf?í>À”D>ÌÔs>õÿË??æ? Ú4?³p?½ŽÖ?v?´@XŠ@ ä?¬ËÅ?¯KÓ?¼É?†ô>ñB4?¬^??ïÆ?5“?1Ñ?FŒ?‘ )ÑÅ>$ƒ•>+à?`òà@º¯?äÒÐ?m4"?Ž3Œ?²õI?ƒ»ê>îQ…?$o?dTx?;±?!é?"°6??ûf?šHì?í%ü?ÁŸx?ˆ(ß?Xƒ?lƒ ?MÏè?&á?un›?°åG?„>åü ?{€ ?ë3Ç?˾ ?™Í?šô?œXË?—°Z?Ž–3?ƒƒ¤?NºŽ?lÏ ?™ïY?‡B? |?sž?1Î?5[7?ª}?›m>çéø?¡?çƒ"?ÞP?gC?oãk@!‹‘@øi?‡M1?„r½?Ç‘?Š(Û?¶—?ÆãS?’É?ƒ!r?nœ?d~>ÓËà>.ð ?¤X?c§€?i]?i ?²_>$4>âaR>ë™? †Ý?­?a‡~?]h_?¯_?=?b!?[ ¿?Ãrh?Õ! +?P‘¨?Â?…&¯?­sÿ?aÄý>Þ½?œz?[¢µ?‹ß’?Ýá‡?Ï:?]u¬?]>)?]G?\Ða?š÷9?¡¬>Ä©u=PXd?­Ør@5ì?ÎZ?/uZ?‹óË@g}@X1?”{?“B·?ž’´?¤(?Â} ?Ì ì?ä;>?êÐ;?ºÉš?„ð%?ŽËû?¢™?™&‡?,³*?2ÂÞ?÷a7@w?çÌÃ?Þ³Ï?¥ü{?2zy?- J?6¡?<Õ?„ÍD?†±A?„ÖM?òp?Œ„I?–çw?§˜:?ÀWò?âC³@-Ä,@/09? ¢J?œïY?Ÿ ô?ž–ø?LhŸ>Óú?(_ü?ž¼?•Gb=…º=‡kx?~¨l?•?RªJ?#ˆ ?Ž¥¬?öð?ã¶Ã>ÑO@>Ñ5-?-ªA?8RÝ?’l?ËaY?­‰þ?(0?7ím?œ?Ô?œ0;?îòt@¿?Þ«?¹žP?ªÐ¬?ƒ½ñ?„ •?›é\?šŒ?dîm?:Ûù>à>qíà>à"í??(¸?Pyº?Nïú?ŸZL?¹Â@?’ë?Žõ?ùU>=Iø>.WI>ÓŒ>ó @?wk?"NK?'ëš?YÃÀ?YÂo?ÂM?Èz+?Ê8Ó?ËùË?¢¤Ã?NwÙ?1‹Õ?…–4?š¨m?zÜ?Xöú?ŒYÚ?Ǥ¾?Åñ?¿{…?¼}T? =i?› +X?›8?›?’EW?{â¾?~?"Λ?ëî?¸—?øßÕ?ê]µ?¬…z?™zÅ?Z ?_`²?d ¥?iæ»?O(x? ­Æ>öIö>UÓ +>p>Í>È<>Áó?3 ^?A£‘?¼,Ù@ Áô?ÊqÃ<½S?> Ÿ >¡²>®)¾>ГP>õ’“?Ò?êº?v²¥?uâD>%¥á>$D>é.Ö?H;>¦‰>RO?oÝ?ÇÓ?À˜b?R‡©?Qüš@Øé@¯?i!E>$¸ø>ÑŒ#>ôß?QŒõ?Nå=æc.=ƒR„?­áw?îYl?‚¸\>8&Ø>v>÷AP?î€?·è~?¸ýá?qÔ*?Q'Ñ?’¡°?±P?•^?-ÑÑ?%ì>Пl>Ðx+>Ð^>Ð5?×?FÒÖ?*“>ST·>O÷¬?pí?´Q?Kü?^¥C?E`"?&*†? 7Þ>ª >³$?C_?L•?–üû?»’Ü?¨¿«?bk?ZSž?JeN?I÷é?I†Å?I8?2>È#…>ê#¬?FýV?F”í?Š3?“Jê?“Žô?“&È?tf?D½?B<&?A…y?@w“?#ñ®>¿Jƒ>¿`?-u¦?<Ü?<?;‡?8Ú>¿!a>–Ú¸>˜!>¶F>´ÑD>D=ÂND>–^?RÍ4?N5?%žÚ? Í ? Ë´?5Z?ç?'î>6œ> >Vw>!¹õ>O5=ƒ€o=–Ž(>ºÝD>¾pe>³í§>I˜ð>G21>Ìê?”ß…?œ+?–)ö? Œ >„¥>ÖÎ>—8?w»?(Çò?'°? Á>}á'>V6>U0¤>€A>»Î>Ì#È>Æ}/>¿>—q>Q)¦>.Ãl>*® >'"Ù><@Ÿ>l;Ñ>‡S^>€lÊ>qH >aÛ‡>R[†>BÜ÷>3n¼>$ å>ÀÙ>sì=Ögô=¯=Û=’Ì=où6=<ÿ= _õ<·¨Š<7·29÷‹€¼禼Ÿð«¼ò"°½,’ï½gh +½•@‹½»UU½å9Ͼ‡¾ÐÞ¾Nk¾,^»¾P‰Ü¾~Ȳ¾™Š¾¤ã³¾Ÿ@Z¾ó ¾+齜Dý»É×¾% +H¾pÖ¼¾•(¾‘E¾˜ 8¾§¼¾À±!¾Ã@ྻ‘¾¼¨È¾ßøÈ¿o’¿8n)¿%‚Ê¿«¾ì˜î¿üпK¹¿Q1¿6‰?Âêç@5l?ç”m?‰{Ü?âë>c¯=©ã5>DÍ>ˆ§ï>‡¨&>†Ì‚=Ä{>;Ó6>…c(=©I¤>Þ:N?/²3>Œ±r>n>*¿>‘ôÑ>“ã->&Oâ=ÿFk>íÇ>ÈžÐ=ýÑÉ=ïç¤=Ꮅ=Ä8í:C(=¤s=“—ê>Ä£F>Ï ?˜—±?¦®t?J`>àÓY>å‚‘>éå>[E>’Â{>ãÛê?—ËÁ?Ý`M?^%Ø=ap$=ÆO>>[€=ÚæX>!Ë>éï>«ê9=ùØ$?Î? ?iå?R:ú=AÇ?6 ?9äT?j#?j«?e¸µ?YêÚ>‘¼<>Pº>°ÑI>ÅÍW>#³¡=¤_e<úà< +Ø6µÜ–>¥þ>ß3`>Ó)=I@x=·p +>¨ ü>ëö>¾pT>™¹í>§_Ú>Ç”>ìk8>êDÞ?I/?:sq?F÷É?E@Æ?UØ>¯çT>¾Gg>¡È)?ÂÉ?a÷¼>ì5.;½¤0>íŽ?kÁ>÷w¯=úìü>øAO?Ct>Ó”¨=û.®=R">>ƒ™`?è°?[Ù£>¹¢ÿ=¦»f>ÕÇ>)Ê >.Fª=hšf>Žµ}>î b?@Í-?j-8?d_¦?`ÑÊ>ÉU#>HüÎ?6ªò?n?Ø0W?ù?P*¹>ò‹Ä>Bj>;f>Žú>©€C?>O?Xoˆ?^’h?d½?nsµ?o,<>ÿÊ)>èG?X$?Nª,=±¥> +óÏ?* ?‘Î?þÐ? wï?3­?: ?@jµ?.Âv>‰ÒX>œä¬? …‹>ÙÛ¿=Ó[¯>õ$Ô?³ÜR?d¾®<Á}H>é†?Šú ?ëÑ?€Lz?yWà?BÌ´?I˜J?i ?.ò¾>ðØ>¼%>©8÷?, ?YÙ‡>¥n^=KÈ?8†Û?pÝ?)>ðT?£Í?´Ø?VÛv?[ÃK>®@>“ž/?p€?m7?:©?2ÿ’>Òõ>öÙ=Ô+v>ìz>ð"i?l?r ü?™îî?ëá¡?˜·¡>YIB?Õí>Ô/>-Ì? îy?p˜?SæE?>Nf?_):?dó&?zì$?‘Ý4?’%O?† >£@ú>°ø>ð“>Fe=¡è·?€”?’P[? e}>ð ?©«?´ c> Œ">”_Ö?H§Q?NA’?<‡C?XB±?º0Ë?®èì?o¦.?[Üž>ð ?/¥×?Åš?ÑÄ?àÑ?ÆHÎ?ˆ@³?[>2>û©I>á¹>ÆtÛ?ò?{u?UQ«?)?aL›?¥IŒ?°•U?´•?³Hq?«.Õ?Y§?A?h%Û?ˆ-ç?)>ð#?4G5?8é>öð>ÂY?MÞJ?}˜‚?X€ž?;áÄ?v’?yåo=¸ŸÆ@è¶@mú?VZ?º?§Ä_?Ÿ´?$¯ü?!ˆ?prÒ?€Éª?´^&?ÇWØ@Jž@ô–?Ql?Q_›?Jè,?:µ>ð¬Ì>ð²)>ð¼>™È¬=W¨>I¾>ÆÒ½?GÍX?£ð±?tf?6[?7p?lû*>ÛÖ¡>öºA?Cûv?Zú>ñ3\?F-?ñ‘?µŠ?îiR?–¼î?p/ö?Ðí?š1? ¢u?©>ù¶†>ñ±>¤ ñ>¥?50?4à¯?|^?úF>œâÛ>®¸“>ñö0>Õ¥Ô=šh„>òÿ>Á2Ä>j{°?fªð?CHÉ? +˜?(À«?U¢È?BÈØ?" 2?ºò?×ì?„(›?³»¼?²?~?¶9?{¾»?\w?O ?rê ?#Òî>òþB?Nj«?sc?s‘?s(°?–>óèá?Ñ7G?Δö?Ëö¥?©qb>~²½>Ý­ÿ?–Ù/?fæK=®–u? ?·êõ?ϪÜ?ó[*? Ùv?º ?t¤>ô"B>¤èÙ>uì.=ا?w0‡?·6?¢äW?˜Ç5?™à²?ž÷?€aq?th?Hùb?9pë?˜¡à? 0A;*ô›=µÍŽ?³·Ø?§s=>ôˆ?ëŽ?rSÀ?88ï=;Ž¤>Î#•?—©G?pÏ÷?ÚŸ?+Þ´?JF?bŒh?tÊ?m?oz? ·?°ü?}ÛÅ?6r?ÁhA?úÂæ?‡R_?1cÝ?wµS?ƒŠ¹?©v›?²f“?F/>ö©6?p*Ì?tPU?qÁ-?mdß?i +„?I •=ž"ý>¤2?¨é-?˜SÓ?O;?3œ‰>óí?\±Œ?Å»}?˜á^?4'>ìÆž>O!~>òS‰?Gö?a@M?sn?p€>¤ ·>ìÌn? é™?R?s ª?8Ã-?:»?Y6^?rÆf?ù>íu>ñ'¬>òu¥>òeH>òM:?€!M?…Ø?Ń.?ÀvS?Ú7.?Õc?%L?L’@‡?æú÷?6gÜ?41L?F_y?Wû?pßÒ?nØV?q3A?l?è?9Ëò?2Ÿ`?+|h?59‚?]R3?`¨ê?dô?…Ó?¬hQ?±p·?³h?^Ƀ:–;>ýå?t´?ïX?¦o?ä?n"ß?;uø>íÖ?)ÿ?m‰z?ª9ç?í<—?¹|µ?lì?lÌ$?lg?T̯?2Áý?cgw?•×†?“Ò¦?Õs? ÚÏ?Á„?¬ê»?‡R«?|Î?jŸø?JEÉ? °j?¶?)²q?$îò?#oÏ?JçU?©[?Ç’^@?ò:¹>èsü>èF‡>è‚?om?væ½?†*?Ú"(?Ò‘â?Pç?^‚B?gUÛ?fWˆ?€Åy?ƒÝ?˜E?™]|>ôÍS>«\=>µÔÁ>À<|>—Ï>sÁ>û?Ò?,Gs?jÚl?‘r„?!Ø%>c¨”?Lâ>î¦> kû>wn?DŸ?NhÖ?‰xÔ?†Æ ?ù¹q?þî·?²ÆÛ?¨?]?„0œ?o4?¼~Ê?ßz³?‚¶¢>ßæ>ÞÚ˜>Þ¨Z?4L0?§¥ù?»6²@¯3?úPS=²Îø=×)ü?[c…?n¶‰?„TŠ?ƒ›*?ãå²@)?Ë(?[—?œ3Ç?þ°??þ~½?étœ?ã `?Æé?X3?y™è?†Ò?§ÑE?¿^?š!?XåÀ?~¶y?«5?§6 ?M2Ç?Bƒ ?»?È2?-‰?G-³?x·?“îF?„óä?DKO?<×?3Ø?+-‚?É÷˜?ω÷?’ñ‘?u®Í?+¢a>år/?ñÙ?Tñj?Ts~?TL?T#Ö?È×y?Ó£±?Ñ {?Íaø? ð£?[*3?/öS;/D?¼l? è>ë$ø>ÒNÑ?†™ñ?ÞvO?Àžç?5;”?3Hq?OŸP?QpN?QVP?Q>??‚(?'ï?xéÙ?õ¯ë?ïG?’¨ó?™ÿ?žÂç?ž6‰? €Æ?œ$w?•˜c?ÍÁ?’u¾?•¼?—À÷?UlY?î?=Vm?¢Rm?£Ô?j¨?h/u?™F?عÊ?¥à?€õª?y}º?O"h?O¸?O¡?O +Ô?ÒÀ=?øF ?Ê{§?™ƒ`?š‹?Nëë?Né|?NèÓ?Nêr? Y¼>ÐÝF?a'Î?Åô8?µ¬‰?VØ•?XžŒ?QÐ^?Nö?ˆü–?£’¤?¤tð?¥W/?© x?Ãê?Âk?K÷‰?!RÁ?†µ¿?®à™?ªØ²?™‹±?–ð?¶À?ºãB?Þ?í ?›ì>ÏŸ>Ï°F>Ï»Ì>ÏÉ1?2¥? Þ[?!A\?‘ü?&P?P›?fç?®r?­ç?œ¥÷?œP? +1ð=ÞΪ>µV?1_?&? +]?Q„?DC³?Pó>×nß>>¶û?H´§?[î·?œðó?;¬?ÊÑ-?ÑU¯?P¯{>Ñ}?öà?QP?(Ãç< =@>Ÿ>Ådä?³`?Ã":?ªà‹?–©E?¹·á@ø?öí)?„)?ŠK?†E?lãL?EZŒ?4&‹?;2?Ež?nF?#?F?„˜ ?’¥ò?Pp&?%Ç?>Rq?VÌÌ?FÜ–?Ï7?Æm?F­Ù?CÿŽ>ûAŽ>ÏÒˆ>øïƒ?BÕ? Nf? +Zµ? >¦?%^M?!´Ã>èQ:>ÍÐ ?#?c?Yÿ—>–‰µ>‚¶ô?jmÒ?’Qõ?qçÔ?AÄ%?EÁ@?Ií+?Ho¸>ßðú>È”?7–?G’6?G ¯?FƒS?Eï?E¶r?F¼Ö?F…Y?C„Ô?5­|>Ô™•>Ö³¾>Lã=_°°>. >á>ä‹u?3ù?;èË?6™7? Ðý?bË>Ññ>·:D>|p?»?VóB??õ0>¤ „>¤„[>‘Ô>.­K>3óÈ>®>’h²>‹ë>Ò¥Þ>á§í>êSD>®†ž>›; >V!=³·G=¦c2=™=Î=ŒKï=2>Ž?¡ÔW?¿@Â?¿v?E+‰>–£l>‘È”>†öQ>‚^>–Ð>x•=êf:EB;Ðmà=õh>Z™">Y >W"â>=%“ß”>>oó>9òž>4èö>)´Q=ûáÁ=¨Z¿=†þ=‡<0=†<È=„h=€•L={~ +=ª‹¨=زè=ïQ(=ñ˜ì=áë›=¶aE=‡Àu=6ðÞ<ÊÜ;^ã`¼‹Å½Ã@½t}Š½¨ãt½ØKç½ñ8‘½úEe½õ‡¸¾ãž¾"(¾+bå¾@Â0¾W8ë¾nÊA¾ˆöܾ˜¦ï¾‘:è¾…´w¾oS‘¾XŠƒ¾‹5A¾¶Ð5¾æ ¾õù†¾Ø0£¾·’¾ßÆÕ¿)RZ¿]S/¿GÝ¿oâ¿1¿Œú¿¥KK¿qîç¿8‚¿2¿, ƒ¾¾þL¾&ß?‚@"ŒR?ÍÃÕ?´>Îh\>“=“=ýeT=íé>]ZP=É>Ùó)?Bf1>µ›t>1éÆ>¸¦ >Û£à?ìª>½-E>&;ñ>!È>²˜>w>N…> +L>>@>€wE?2—‡?"¨^>¹3>Á®>í=¿>àé9”Ù”>ê2¨>ì<¸=‹f>Ã5>ä·ß=²}Ý:W >º‚>á7 +>åÞ†>ê¸>£…9>x´x>¨e">À”>º>>´N¶>X¤ê=Aœ> Ú>´É?VD›?~ã°?ÖL×?ÂhJ?j$8?V ¨>L`µ>gÅ?M +j?ED?EŒ†?IGì?­|Y?·yè?a@S?X­ü>U=ò—?>0¯?gÑ? ˜>ê£q?¿U~?Þ}d?F’°>êÖ[>ø;?m’e?­ðm?E b>ëY*>5+y>Ùk?:Sn>õwý>œº?D²?’­œ?;S=¤l?xŒ×?áŠÒ?‰ê>ìTL?5 Ú?kgM?iö?l”?[Ä{?D?$Ê÷?>Ý>çe>š=‹>¢n>„õú>¹S/>íP—?hý?ª3ñ?Ùº>¨¯? ”Ò?1U?VÒp>Á\Ö<F‘>”O>î>P•Ë=ÅïL>7Þ>?³P=D?`só?›0o?£DY?²A¨?TuM?TG>òïb>î×ò=«äÚ>ËK¼>ï b>ïN>ïb?e"?o5o?grb?`ú ? Ff?™¯?-j¼?%:y?ox3?i"l?1äý?(Z¸>˜¾>šQ >§ þ>Ú©?@;?Mm?ZH?…0[?³ÅE?oH=Dµ¬>Åö(?MÍà?!f>pVØ>äÑ?̸?bæ?0,~?.&Â?4h>Êiã>¤åõ=ùr>ò7>Ù¸@?KŽ¨?pt>T› = +&p>Ìá>ð+š?"ýÕ?5øä?Š‹Î?‡Þy>i´A>h°æ?±*? ùµ>›z`>¯Ñm>ð;}>üÐ?0ñ?A>ëÌ]Hh>O¼>›ãL?Gtƒ? _ž>ƒµŽ>ì¨?;Ü»?5Á>ð:€?^?ÖÖ´?Uì¨>>…?Ãî@×6?ØÓ?­âÞ?.âF>ð4Ä>ȶ^>±ì?2 O?QXx?œ:ë?™ú?JQò?Vš;=;×#ð?0çP?VÃ=o¸\>JÍ}?ì“ ?ר†>ó?8Óá?Ú€?ÀCË?†ª?Ž Ž?¡Hb?« A?´(Æ?³2•?¬_­?”¾†?p6¥? Ês>ðºW?|´E>üâ ;|Æ?E2?´1û?´4O?´5@?QØÎ>ðJØ?H.†?pNÎ?~‰a?xŸÏ?¤¥Œ?´C??–‰Ä?‹?•>ûÄ >–ÁM?Ó)Ã?ðmk?¿E£?´ÍŽ?5h>éãá?„ú?‘õ»?Ιµ?¿¬??6Ö?V¥Ø?œP/?”éÛ?p¤,?{ý ?<>?œgÎ?’­?‚)Ø>ðÆR>»û=‰¶v>+§;>ðÝv>œ>¥<Èð(>¶qB?Kc¡?!Q>ñ>ëÁ}?5?g1N?˜Ì¡?´?¾¦l?,~’>i?‚i?ÂÉö?lŒZ?yT?H$[?jû>u¡\;x?@Ñ?q’‹? à«>ñ¤J>ñ­¦>ñ·á?…'?†d_>yóÆ>l$?p6˜?nP¾>ñ÷š>òã™>Ã<§>µKw?"©«?äâ=ÞB=ÙRú>òCý?1?ið•?‘Ð`?â¨Ó?˜n=Ú.Ò>Þ=´?r“û?R–ë?+~‡?9Ï×?3Ã?t î?©ý2?œ¤á?Ù•?ŽS ?†Š¼?ÚY?žù¬?56Ü>úç»?SÛê?s4=?¨F?²H ?y6Ä?` º?Ù+Q?äPà?_Žz?Jns?E‹?Cî¬?š´?ϸ>ׂ?¡ª?È€Q?Ê6S?ÂÒ?·v„?sÝ]?6}=º\2>¹º3?sýy?Â;Þ@T†?ùÂS?»û¥?²Î8?£$?PçŸ>ô6O>É€>£Zø>™CÍ>0(?9·Å?sfö?}nØ?ƒµÍ?,kÅ?!U?lK?twÂ?BÜ?–†‰? ¸?J>=kõÀ=ó$ÿ?tà?t#?rG[?oD ?t˜ ?k/[?IÛ?yðÏ?·t~?©·à???sx?Cš?{9º?š *?KA{>ô— ?f?°ã€?Å0)?ІY?žÝ™?‡Âq?£–Ð?®]/?¥iÓ?©µs?€w?tkË?teµ?u†@39@(j?Bê? ñþ?¬ÌR?—5;>¹xÊ?X9?·[?¦ç–?tí?z‚ã?€5Ž?›ø\?Ø“,?¦?“:?xÔ?$¡?ò¼?Ôz?\Ì ?†­­?œà—?­—Ä?‡GÆ?ii"?ql?sú@/E¯@T”M?æÈç?³ês?³¥>ò«h?öžˆ@¶>p)«=Ü ³?k ¿?sI$?ñÿ¶?íÊf?"ž?þ†? É?€ôÊ?·_¶?»½¾?’ÍQ?‹1>³³l>Å}Ø?%¡x? l·=óÜ>æµà?´be?±‹?¬?‹ÄÕ?5ô>ûN±>ô?->šf˜9VP<Ä—Ð>TNÏ>Ý_ç>룥?ëP?aÂ?#Ÿˆ?úŒ?ç|?T ;? Z?bfl? šé?LG?ƒŸb?Û°?¶?¥Î®?“"¹?…”É?lk?W˜þ??@~?bø·?Š??‘ÆF?–³?™C‰?£6d?’^]?jÅ]?|™€?ŠhÔ?¥(?áë€?ö‘Ç@eR?àP>é\>­ @;ä¯p>t¦¢?bæ¦?sºÐ?¢Ç¶?ŠË†>m%>|ÔM?Š`Ò?‹%¶?Jûv?H›í?œ4—?šÁ,>±¦d>¦Æë?žìÞ?¬Q>àÃ>y‰‚>n®0>cÞf>À¤®>äÓ>¦§w>‡’?~¯Ò?Ãì(?ˆrˆ?<ñ?°a?DHÑ?FŠ±?=×S?&â‘>â!??g?Ò<—?Ò +&?aCr?a a?©™æ?«–V?ÖWm?à8î?à?ßÌÕ?œÑ ?]kü?ºBU@± ?¾®?õ•?U–?æ#™?ÔC:>´ž>¯áN?éŸÚ?ëd?°ç?¥…r?ÖöÖ?îg!?¼â?˜Ù?Ÿ®F?»D?±Œó?™`?œŒ–?\Ø\?XMm>îÉ„>ï´¼>䨮>Ù²T?,wÙ?YR$?8 š?ý?O_]?ÏÒ?ѧO?Zf?QÞ?ÆÜ?פð?Ž–„?WD‚?­èê?ù"„?ûüð?þ×å?ù‡?›Òm?²Ý@Vñ@ I•?Ô×K?  §?ŸìY?Ÿ¸Z?’ Š?TÄe?Wç?¢·d?¤?¤Þ4?¥ºa?¸×K?ÂoÊ?Ê%‘?Ó‘?Ä€Û?…}?ƒ‚ >ñna>ÒÉÀ?Sá8?‹† ?€gd?RG´?wFm?ÈC?Åk?Â:f?¿YG?¨æ?Q~¾?¨ w@ç^?ø|?sÌ›?n0x?#B?'÷Ù?R/?n¥®?0IÑ>~§>ÂÛð?A¾Ð?ù–Þ?2%Z?“Yˆ?_ö>ÐÒ`>ÏÃÅ=ŸlM>ð ?XÙw?Sº?O‡Ù?Lc9>ÕC5>Ïp>Ïm¼>ÏgŸ?Gk¯?šD?™¸ð?˜×x?—S=úèú=)©D>»_Ù?½?;—>ò”?NC?º6â?¸|/?v¹?iÊa?k‹?mS?v%?‰&K?Šé‡?/õj?(à’?GË?fe>?k­Æ?qE?–?ë ?ä®Â?›L?¡ s?€ez?CÕŽ?(”?w.?s>Ð1%>Ü5?™£?š³&?K¡˜?2C†?pqû?¨š?³ÔÒ?³¡ ?¯‰d>ñ2>ÐØ4?Œï?»|c?ªÍ-?’>?‹0Y?Iò?LµI?“ÝG?š+©?%žé>ÑmC?J[ ?# ?‘G0?Qœ_?NüQ>Ü!2>Ñ»[?ò‡Œ@ÆŸ?¿Ò?;Œš?Mt=kÑ€=¿ò? s?%cÀ?”[U?zÝ?| ^?q¸&?|Œl?Qö9?kêY?À‚“?¿'p?a_ç?QÕÏ?"Y>õ –>ÑeÄ>Ñ£©>úÖæ?Q}—?Qld?!N(?$?c7?†p8?t{r?PÒp?xS•?¯?­eò?U'à?G%Ø?'„ò?3µí?5]¢?7"?[oâ?›"?–¸>â"‰>Îx?qî?”Î?©±Å?ÅQÅ?¸‹×?T$F?O#í>ãCª>Ë)Q?!?JW0?-v2>Éu>ÜBº?¼ª?Äh?£æ?‘­s?NE”=«1€=Ǽ=âÏ–=þi>–‚.>ÂÇœ>àa¡?t×?Ñ>ÆþÀ>¿*™>÷\r?=‘ó?<:?V)?c>Äp_>9­>#¿í>Òü>ÀN>¬\ç_f>ÀòÍ> Hû>ä´>÷>߉>äÞ?ª»?P7?žj?8Ÿ?M+?Jzâ>²ãp>b>“b~>ÄŠ>¼›—>ºZZ?,8?õí?y$? Š? Ï4? +Ð>ç¹à>Šiù>„€ >y:=›˜?=^„>@½¡>hP¡>cA >‹œþ?x*?´y>þÆÌ>ïåp>œH>.o*>7 â>12>*çÑ>$«9>é=Õp=º.Ä=¬“=ŸE =¿ ß>>@½>p¨î>ˆ_>ƒÈC>plá>XÇÑ>@Õ>(ó>*…=êË„=¯ ¦=m³t=[<£3¼€n½)N½Ž2–½Ëâ¾ÚK¾ äz¾? ¾IÿP¾Aý¾/²Û¾á½Ó r½Sb0»ÝÛ¼¤ˆ½\)Ÿ½Ã&£¾µp¾<ùs¾°¹½ÜÖ€½\S¾¼îa½Ô¢=¾E5¾„3­¾Nͽö!¾ ƾˆ?œ¾·æè¾¼l®¾ÙK¿mŠG¿Ós¿ÝÒ¿ce ¾“±Ø¾2öd?;ÇŒ@/—?ùì>›6H=¤ÛŽ>R‰i>„G>”G<>q‚B>QÂ>PëU>OÕU>N{Š>Låu>KŸ>Hñ·=ÏoÄ>dã>™ >$9G>Šqå?Gþ?Pâ…?Ž|?T‚ô>§ŽÚ>©îÆ>¬n¯>ϱØ?÷? (;>·–á?åß?¦ÌH?’ É= ®ë>í£n>é +j>ãÔ">웣=4)‹8¨Ú<ÊHP=8ÃÐ>š÷>ëV>QÚv=OÌÈ=âPº=ùøN>þ<=µD=¾õ">Œü3>µêG?Æ­?CM1?•å>?ù—?´€? Â÷>ê\ï?¿"?‹ÂE?;>êj>êmÃ=´sŒ=‰”>ŧ3>×ÊV>ßÃŒ>纅={Áw8Ÿà?@ßY?dQŒ>¡qç>maP=ÿ Ð=ºýh>’ F>ªð’=¾UÔ>ù‰Ä?G®e? 2>ëqý>Þv*>ÅžŒ>Ÿ´†>›§0>U«m=óùá>¡W«>ë÷">ÚW>ÖD?04?i­æ?)¨e>ìbô>hó~=˜,¸?€ê±?Øáú? W÷?lË“?X߸?D96>Ý- >Mj*>û½Í?/²?)¹­?$W›?ö%>íy>¤èì>=xÓ?éŸ?a3ù>¿á<=?aEÚ?±‹,>ûJÂ=3ó¨>‘°>À¬É?~d?)‡Ñ>9»?$Bæ?k'z?Ãk>î¨E?ˆVô? L-?*Ð>îÚø=˜1>ÃÚ >ì w>ïu>ï"µ=¢ÂÀ=Êà?Õé|?Õpò=üTè>AU‡?«¬?š?—r7?Š’z>ïŒ>ØÜ>©=þ†x=Ë¢k=s8½>Ÿœ>ø´Y>¯µ;=‘Ð>_ì†>ÝV]?üŠ?¢?. Þ>ìKª>†Cƒ?jªb?´v? ˆ=Õ8= f'=WOˆ<Û_7;tMi>²(>ô…B@ ½N@/ä?G÷¸>ð;+>6¦œ>'¼ö?‡•û?“Æ>ó+í>ËêŠ>38r>wM=û`>i>ðN³? c?´;k?v„9ð=:¬´>bÌ>³ü+>¾½¤>k¬g>Ø™?+åb?2ž¯?/ 6?>Ú„?K!p?,ƒ?+ ?;[‘?aÎð?¼uM?îâ?"Ô=kX?9€L?dâ?³>ðS? øÞ?±TÊ?‰P~?yŒð@ +ãö@ȳ>õ:M>—:*=þö”=î8?«jl?¨|?ìè>×¹P;p1€>HRï?d‡H?Và ?CÁ…?4”>š6z>´æl>Ï?-ø +?˜Éý:=ò,C?7Ì…?´Kx?”ñ?mëÙ?1²Â?ë?!Fê?.p~?F:Í?H1?‰Þ†?™©¡??},”?… >?‹¨"?„œM?Š×ñ?e„?¥¶4?ä§T?ï¢T@õ@Ã]?xØ?cUÁ?Ü"‰?ÏÒ‡?¾?!r+?BæÁ¦ø>Ö¾ï>ðð?+—?q[²?GD”>ñý?G½Ú?œ Ô?g±ß?“r>ÇøM>%ã>¿âÔ?pö?;#¼?}83?à m@{\?Åé?oÉ…?µo?ßó$?¸ ?­'½>º³Ê:ƒ>ß6Ë? Ø>ùCG>ñÊ7>ñÔR>ñܵ?V„?•ró>ñC>Îk|?§?c>ò_?¦”?µ£j?¶Þ¬?»#? ã×>óâŠ>ò[ä>òe>÷ôh?[/?³@?FI ?…»?¨G?Ž`š?r³Ž?xa7?tØ?•¢W?¶$^?~ù’? 6÷?œ_?Ä?Žêw?¶MW@'ñQ@O‹U?È¥L?s9'?s@û?sM]?¬Lí?¶‡ý?¬27?¨ ?íÌ6?ó‚4?¢’?™jí>àã?¹?Ða?zçÝ?bê?;ok?Š¯x?g'>ÅíQ?*?€2?{/Ð?vÀ?t±?t?GÔM?®Ä?Y.?ƒÒ´?X c?5—˜? ”>ôDT>õö>Hk‘?‘Ó?¹Ø?0‡k>ôd°? š–?$1Z>«)³>€@m?2Œu?H²=´ Û=¢Ë_?|n?w&ò?t“!?ƒ /?¶Li?³äV?±€Ø?”_„?Ça?2?û?tžî?Bss>òb›?L€?YŸ?J?tŸX?wl(_¯;‹°W?`øy?tn’?th}?q¥B?:æ ?R» +?^§Ÿ?TÔ?6¸y?Bæ¦?MN6?pÐr?·+?Îgô““?R?sÕ? …Ÿ?Àë?¥ ?¶È?t-?] v?^Žõ?n©?„>V?|ŽÝ?q•}?s»f?©e£?¨K?0ÊÝ??ø¢?˜~¢?‰Ü >H½c>´yî?ŸŸ¶?™t?q*á?B°=á å>+Ë*>ÆÀ?*|?­yÆ?œÝe?i‡ô?lï*?oÂE?oõ^?oÕ—?mœ?f?‡?š‹?ØP?¿›Ÿ?¡ž?j#>îÑž?2|?Næñ?&ªF>îJÊ?‚à?×›Ô?Ÿï9?:{%?7#V?3È2?¶ÞW@Ùr?î  ?±œ%? ÄD?‹% ?M>ì2É?õ*?$*?ŽÁ?둉?´h?†y§?qäV?UXy?±mg@h?å’Á?j3‡?j ?iÜÚ?†vB?«…M?‰º‚>ÖZM?Ò?hÉo?lW¬?}Cö?‘ê?ßë‹?Ì™™?g®¤?[}/>–.Y>ªc ?ˆ÷Ä?Š;f?KÛ?@5Ò?ÝL?ç?ü?\ð1?/q|?"@š>ý”?>äÉÉ>¶ßŽ>“ôÀ?£\Ù@V’?éxÀ?Ɉ?’o0?î?d•ö?Ò‡?¬î>Ì^>÷QI?añr?aîò?b¹?aRÅ@ “ @ ’i?¸]Ç?©?1?2yá?¨¢>t«=´¾Ø?Kyë?·{G?—ð?J.—?Zƒ)?ˆŠû?„Ü“?@'Ã?>ƒb?¢t?¥Á?§/?¥ÆÆ@ ‹@ÙÉ?ËoÅ?‡A?ˆ`?‰X?Oý„>j±à>­?kp³?r !?, `?§Ü?Ì?’”?Vóå?xâ/? +¥.=Öò&>ˆO‹?¨ó?O®Ÿ@ ó–@ C +?¾&5?¿ò{?€_®?W®|?Tñ?S“¥?Uqé?Vß?Bˆ>Ö¨>Ý ?ÓdÄ?×Qx?ƒ¦x?Zÿ#?\Îa?^¢õ?€'5?™_>?™`?Ÿªv?ŸŽë? Œ?Çò?®Ìî?Ô'µ?ŸÉ:?c²Ä?]D?.KL?9±Ö?rN?m S?ž–È?§QÀ?“£Þ?†Zq?¸*à@@ hC?í¬C?î€t?.v>ñCŠ?—AÔ?Ñ¿Á?º½c?™Òn?–^>Ñ^™>ÑI¢?2I? SM?Ba>Á–Q?GÜš?ÛÅ?Ñ8{?Qª?PšÓ?DÁ+?EQ?FÐi?H“.?4¿Ñ>éHJ>Õ=<lß?žeÐ?Ðï?œZç?Oõþ?O¾]?Mk?P{?ñC\?ô!â?ÕX?ÊŒ?ÝkÇ?ôÈý?Ñu>ªØ;>§N >ÇO>Ï·º?O‚T?€„â?‹o?«3—?¦o`?P )?OÄ??OÆ{?OÌï?)ú?†?*@ù?OâÍ?Iªî>Ó ü>Ï÷}?=qØ?HöÙ?—ñ ?×.®?¿°©?:÷??8ê?˜½Ñ?œ9È?MéŒ?/¾Ž?F˜J??š†?eÄ]?ÞY?ÝS_>Ê5ý>¨*|?$,u?+_~?ŽÜ??ä0P?¿Â¸>½ÃÇ>Ã0ã>Ñ">Ñ6U>Ñ@>ÑL‹>Ñ]>Ñh$>›©:8V;Øó`>®ÏÞ>æÑú?)¨³?QÕY?n|?øü?“{Ó?ßlR?ãØ?Ƀ)?¼šü?C>Ÿôd>êgF?5qê?lýô@[Ú@?¡i>Ò*¶?ˆ”î?¨À?†ÞG?p$o?yî?R?N6.?O? ?¤¢µ?ª[ñ?wH?Q®ã?1.??%5?ž½Í?›çì?un?o?ßÎ?›;‹?ªp\?¹e’?±i\>úñ9>òh×>±>´©?G +?ŒSa?b,à>Ξê>Þ1Œ?G¤Š?LTL?Mˆ¯?M=ý?†j?Ì”}?˜aß9ã¼;Æ°<ÄÛX=%¨>’îc>ÉÛÉ>Õ‹? –á?¯?ö ?Ø>E=å—­>“ü®>ˆÿ=Ç‚Î=íݨ?Uú?B^?0A->Àú<>¿ÝÜ>’­b>¤—É>›Ã6>1ô>9µ^>ǘŒ>°é¨>Ò²ù?8­?6÷ú>›¯T>_që>¤ ¢?MÆ?P‚?L¬>¯rC>§„="ÙÐ=$h4>†y¸>‰òþ>Âœœ>ÓS>Êö~>)õ¦<Õr´<£=ý?ý?e< ?eÍþ?Šé?–d²?”—C? ì8·à=µTg>‰ Ö>ˆù>²l>ä#>é­>ààL>ýS ?"f? DÄ?º>¡©l> t>*µ>2Çœ>p­°>†@0>IŠ½>Cåi>>$´>8Sa>2Y‚>,F¸>& è>Íî>/‡&>`)i>””º>¨nâ>¡‚ù>™ªÂ>‘Š>…ïU>gOª>7Ï=>RÞ=ªœg=UÁ<ó¡<ãó}@C×Ð@õÿ=9¼ø>H >xÐ>›…z>@<>G£>|šÛ>™>™‚ +>™²>™»å>š>š‰–>›(È>/±=‰ˆ‘>.¶ñ=ÖEv=hJ >Ô>PS>ô>X÷–>¬Íî>‹}a>l—=º·^>*æ¶?<]k?¨Ö=ÝÌÆ?Iš?9Þú<’â>î )>íË=„<šÀÅ>Ù€î>ì<=bí1>Â:>æˆ>á‚H>Üax=ø«>…Ñw>Æ÷œ>O¿*=¾r^>sî`>°#E>.·<=‰ƒß>XëT>f•Ñ>aá>$g+= ¿>*u”>1 @>£·S>«>²kº>¹ãr>Áyd>ÉYZ>ê¨R>ê¬(<•<9Gà>ÊçQ>ÝT> 4=ñ7`<×8h? ëF?*Ä—>†tÆ>#Ón=@Êš>뇺?'Yø?5°D?Coý>çº >vH¿?»¢?5„í?Â>Õ.ø>;È;ÓÅ:Îj? +à?cx’?UºA?F1ä? ri>ìG’?Jç?l:?Nå!™?¬Q?>½„?t¤N?ˆ‡ø? ,>¼/5?,´2?`X?8_>èýg?CÇ?mwI>µ É=ò‰þ=aÛ„>¤°7>îC‡?+º?#ÿk>4v?/žµ?]Î>Ñ%É> ±F?6•S?SÅ3?æ]?k7=ËÉp<6 o:<œ×ˆ=0«™?D?@€9>ì|‹?׎>›Y#>¦3´?’þÝ?“y‰?}ûE?w³µ>ï—>ï¡Ô>鱗?|¤?#Ù¦>á•Ù<pª>”ô?bå? ¤> C >¢5>èÐ÷?+éÉ?<ç>ð»?û"?(J?zog?¥ªË?J6¸>ð/Ÿ>åf_>ëd>ð9±>îÒÍ>0=Oë¸?þL?¬®?ghr?H¾©>®Zê>†Æ?,,,?:gç?og?kêý>¬º>ž?!?k?‚G>þªû?!0?´Nü?¦{?^ÄÖ?c!=3l>ܶ> Vr?">ýQ>ðq›?Ù ?4?qý¦?¥r?ˆ?ˆ?_F ?%‡>ðw/?Cy?qC\?‚®>מû?Ã?">ÿz>ðw?hê”?‹X¬?wè€?|Ç4?ü|y@ Ó£?‚ˆ?pzÚ>ôcn>÷?p{J?€Îi?ð{Ö?Ò A>Ì#?p€ˆ?XY½>ð€à?cs?U–? Q6>òŒ?p†Ÿ? U¶?îu?œ/>º»>õåŸ?p}?–Q?´l¦?²Æ +?®ÉX?ˆ¼ª?X>ÈŸ?>‘È?-7W?p¡¸?mp?x ?@ÄV?#¶í?À->ð±é>p€^> +Ÿ@>ÖQÎ>ðÁW?¨‘Û?´«™?‚ðÔ?‰,*@!N¡@*?ÃæÂ?»s®=½”G?píƒ?q á?4å?n¦{>› >èM?š°ï?s‹‡=V¹¶>¡I>î¦ ?q‘d?ï^ç?ç‚d?Ûó¢?‰ÀÆ> B@>ˆVŠ>È!?ÇÞ?Oï?8?8Ä}?3?% ö?V•/?…'~?å]Ð@ !V?«÷@?q¦ú>O\?8€Ñ?d ?nA>Ëø4?GO¬?Râa?Lç„?Fì,>e¨m>\¸?”ù¨?”â‰?©3M?.o>ÙÂå>»ÞÎ>òCÿ?©?©U?ºv„?ñZ?äAù?´°F?ãr>òO>ò—­>òŸf>ò©œ>ò²??n +'?͘?¨Ë†?rØy?vˆ"?‚z?ˆL ?ûZ?„Ö?s?ˆ:t?‹X¡?¯hy?½(?¶¬G?¶ti>¤ž–=;êp>ã˜ö? +žS?#®?1ˆ-?‡7Š?1>?2’‰?Hvn?h~?bŽL=lqÃ>óËÉ>Ø +8> +(é>¶ »?Ÿr?x=K=Õ”—?`l?µ›V?· ú?· ø?œP´?t%›?9ƒ.>ô4k?;4µ?tB%>ò›æ>z?se?©üX?p>yæÍ?E?®„é?yç§?ON?–½0?š¬n?_Ðì?^R=Îd¸=aÞÐ>å +C? Mp?·s>?¯¥?t ó?…€Ë?·|a?·|Ø?·Š?“š°>ô¬»>ÑmÄ>¢??C ?Y4D? ñ:>|±?8P˜?•0a?`ò?&Çü?ŸvÑ?Ù±•?ÅÝé?·y§?Sq>LCÖ>øÓ°? +GÚ>ý¾>ôçe?« ?¶3Œ@Lk@a?t§¿?yç«? Û?˜t†?tWu?_ÿw>ôG_?±Ï?*y—?O¼½?–„Ì?¢ŽÜ?Ä|?¬æ?Z…?-I>óæE?"Òö?T;É?Wl?¨~?P†^>óšÈ>ž4> óÆ?* 3?s|?sTX?rç¶?¥§­?²‰?öæ?c{©?Ö±?ç/û?…ß??r¸*>Iz{>/ƒ?Hç?V¨9?rn÷?uB+?˜º?–Û:?8?ŽMª?© J?™,°?!–Ô?@Ä8?ªÏr?˜ùD?W#Q?H&9? RD>θ<=9Ûè>äz?u}?K#í>ð^>ðB>ñJ0?‘•@‰ü?È¥¾?ì2>Þ€&>§v^>üº³?.ý@?@=e?L|µ?6@? `Â?‹,?ʪ?ÈD¡?ͨÄ?—¹?3ŒC?iæö?žû?ܾª@O!?æ,£?Šåž?û•?‘ +?H¬">¸>?<Ò³?“Ë>?±>5?Þ +?ã ~?ç—>?Š¯ª<8° ?7ä—?ê´?©}e>ìÐ?ø“?jÉ?‡„"?¯@Â?›ò£?VŽ?A+? þÑ>øÂä>q£->ÅbÊ?º ?”ÄK?㻼?ÑqB? ª ?»G?'ó?*–ï?å¼k?ã·?¹ÖX?½'?†‹Ù?€†?†¼w?…æâ?MÖ‰?4˜`?hX†?€,ˆ?Vuh?5}™?JÐ;?cÕ”?]ü?WW†?`q³?iÿž?&ö°;ó´>/.õ?b:=?m2ô?©^¢?¨‘‰?¬ÀJ?¯œ?©¨m?¨š´?m ë?P`?A•?6Ès?%çÔ?"u‡?†÷Ä?Á2Õ?¾«r?¼.m?¡žª?iÞ?Tä>¯Š>¸ê? Íâ?¦ +‡@8Ÿ@OA4?ãó?‡ÆR?†‡Ä?…L{?4ÐÆ>'‚f>4¢Þ>¤>¼Þ”?ºØ?¼¿?OÑ?@ ;?€… ?’Î?D­z>ýÞ?GÂ?œP´?½eÏ@M®@$J=Ä~<µf?=Þ€?X?>×ÆD>×”€>ØQ>>Úql>×r>?g¡y?kz[?—î??™|“?på¸?UõR?…q? ;ú?xAG>q>ÀÈ¥?6Þý?4Í?§þ?ÒP?äÈ>ÔT? Â?(xø?&•5?H±í?LÄ~?´Ïÿ?¹ä?”+—?…ý?º—%?øý?Ûèe?€s0?…áv>¥dW>È?¦T;?Ò6?š5ø?<Ã~?V >ÑÖ”>ÜuÁ?‘§Z?“ä&?¶}?†x?ç'p@ˉ?ÝI2?X¬*?T >ä¤K>Ù&A>Ò¹&>ÐÐ??üŒ?г-?«hæ>Њ†>Î>àlW>íla?:‰?Pen>ñ÷=¿Ô,>Ö,?ØD?ØkC?Xì?z ž?…r…?ŒÊØ?± ]?Ì%?´ÓÅ?0ˆ?.ÅÐ?²'À?½«Ë?L³û>òÑô?$??P$Á?XØ?„WP?ƒuù?†—U?€Úô?y”?ì?Là>ÐQ>ö²«?¯LÜ?¯¸>?{ð¥?r$?u¶¿?yRÞ?„f?ŽZk?pþs£?œÊ?½Ô?Ž=©?A#?*'>ty>€´?ím¿?÷·~>ù#»<Ñhd<’&y:ÅZ‰=î?Î>Ñi{>Ñ}³>Ñ…ª>Ñ’ ?‡Tg?šdû?vÞ?Dà]?AVF?=ÎS?'Œ=UZç=vô/>ÔŠ‚>ø'í?>RJ?hÊÏ?Oè·?7úB?=k7?Bàh?HZk>÷Ä´>ÒLç?c…Á?ŠAA?†0[?ŸD»?Ê?$ 4?"94?”ár?œü +?M ä?Øf?Añ?$Aÿ?(”c?gX?%n3?þÖæ@ñj?ia—?0Ü¥? ¨>¯ï9é"=‚å?(ƒÌ?i¸X?Y¼`?P[?)õõ<¡ér_>Îè>k2L>Ê@?MÔŒ?NHT?•ôD?1?Ðg†?åšR?Áz:?ƒÂt?{2 ?8Wß?6õ)?qa€?€+c?’? Ð²?Ê‹>4o>‡•½?>oÃ?b}Å?9¢¢>ï7}>Ôb>“º~>­ø>ˆ >:øq>ÈqÚ?8Ø?0‹>j[g> ”a>1aç>æP>ìñ?U¼?W¡?.Š0>VÏf>GøS>‹*>³û:>¿Àõ>Õ>u>Ѓx>BC;3Ç;=0,<êt=ßûÄ?cµ&?rZ—?IçÐ>¤„O>¡ÿÆ> tn>žì->LÂ>ßîA?Ðy?î ?ìA? +Ôi?'8>ßñ!>mó><ô>‹@x>•˜ª>¢> >¢;Ã>¢øF>ÁxØ>ÄKÅ>¿ëË>E×~ Å­>ZKx>U„”>P/—>J°°>EØ>?u¹>9¥W>7p6>kx¥>“úù>¡4¬>›û>”– >‰:j>AÆ>l›=×Ob=©€q=¡QÐ=š+]=’;ò=‰f+=Þ=k=TÀÜ=<¬ ="ëÒ=6<Ó»˜<”ö\<%Ó8:¾Ã€»ô÷p¼‡‚„¼ÒûÔ½Çð½6ýk½]ɽ€b°½‘;–½¡¢B½Èœ’¾ •@¾1¾‚¾[Í:¾…jϾŸŸ¶¾ªö«¾—¿`¾‹é!¾|¾^í¾`–•¾m>Á¾z+辫qK¾ã¢À¾Ïɧ¾‡óD¾Y¦¾öYí¿˜s¾ù#¾ì,®¿ô¶¿¦Â¿ƒð¿ Ú=½OÃ@CH<@2B¿>½ä“>Ï‚F?øê>Ì“=«¬> Ws>`J¾=L@>6•Í=þa-=è>§Jí>†«W>ÉA>X"q>­å©>Â3q>óÑ“>Á °=ñãÊ>OÄÿ>ò+Ð>¾í¤ãC4>ç‡>ëµ +>íÂX=/ñÑ: ?GŸm?dOÞ>FÛO=š^=;â=dòL?”?Dò`>¦ =ÈF‚>“n>®FŒ?Ý?FñF?Uç_?aS½>ö ð=–^Ò>ˆòN>ZÉæ=q¾1>¥ +>“LH;ë n=È~Ì=—²>êØÖ>êÛš<.c >ÖîÜ>Üëi=£Ò¥=tS®?,òß?;¿W>Ð_>ª³€>•¹N>£Í!?k?´à=ù`d?®‹?G7?XÊ?¤ý?Æ)>ëÊH?"Yª?@Àø?­ˆd?Ú,ß?ÚÛ>•¨Ø>ì >.—+>£ˆó?ÛU>¨é¹>fÞL>š%à>žKO?ð?;'f?W°ß?m 5?M¡?=Ã-?Ã!>íQð?dN ?˜d‰?,ë=js²>ŸÈX>í³/>%mh8‹?Í ?mðÛ?Y'º?E]F>dEô?.??BÖÏ>­Ÿ >\¦é>ië‚>Q6V?Y4|?Š}„? ;´>«_(?›Ú?øI?Vˆ]?jra?ej>ïé>èn>Ü^w>Ð!Ÿ>ÃàÂ?µ´?T:É='ý?}¼f?hÃ?u? g>ïB>ï™­>ï °?0'?:B?cUø?éß?Ása>??Z$?Zq?oñ?Wíâ?&z ?,7?>N€?T‘?j  ?+ݘ>ð ­?ŠG0?ÐþÌ?ò±?Lý?!›>ú…>°•9(ØŠVŒ>6>êíL>ðp(?K+(?Jï&=åšg?¯„?«ß?p~ö?Gi{=–Ü)>a±>ª·?Q%¾@w·?Ï«Á>“a{>Õ!¤?4O¢?K>ðŽ>¦²»>U>Ù¡Ç?HÒã?.`e?ä>óN÷>ð•é>õôÄ? Ð>ùÊ >ð˜>]I>¸ä>Ìf“>ð™?¢ïÄ?­šÊ>ÔÞö>š ?aš^?pœT?p?pŸñ? v?ü²?p ˆ?z»¹?·¯>?°N?I0?EO¶?p§x?FT>:!£>ÄW?p”?0ª+>^¤7?,ö/?3Ež?!†'?7ç_?i\Ô?o{k?pº¹?râ?y[2?FžÇ?$í?U®þ?pã?:êê?‰ú?NQ½?pÍ‘??ÇÁ?&|$?"_–?.μ?Uû>ðÞ\?R“í?iæ?}>ðíw>ùÓs? «> -<>2ÈÆ@;þ@ô?J/½?QÑ?¹F?*Ï?;þ?5>ñ!ý? +U?T‘Þ?BÑž>ñ7>õŽ«>÷Éq>£³Ç:àí€>¾¿Ö?„w?D*‡>µ¤?AÊ?'ºã?BÈ?ÒÈ?ZcÏ?—§[? OÙ?™¤¡?št?q¥G>Ï÷×=¯óM?}]?µS8?Š—'?qÙO>bêÄ?Cë?qïD?^zø?UJ>©ˆÅ>£ö6?hvÿ?r¤?HØ>èµ?θë?ɆÊ?¸Þm?¿ ì?¨Š’?Ÿõ,?%,Û??À>þ"ã? F?s,¾?[ j?˜ >܃ =²Ê>½òq?Píi?l7Š?ˆÂ±?u:b?k% +?W|ø?=ÅV?N‹#?M:£?Aì¥?6§T?YP +?s0£?ÇÏï?ï6õ@ã@?h;ç?ºK>裻>ÔHï?¾Êf?Ëž?a©Ä?NN?%Í?/¾?‡ÙN?xÅ ?l )?Yœc? +óÁ?ãà?dÃÏ?A5 +>óóé? ?¬l?2°å?{œ£?tY@?tÄ?DúO? V!? U@? 'Ï?8t£?Wã_?f.~?tU¥>µ–­?¦ˆ4?ôk?[…z>ôtƒ>qC>+ ?5i?¦õZ?ìØ­?ô…? µl>ôš>ôœ>æSC>%èÓ?·~ ?¶Õi?±¦k?Ž&>€=M>6>¹Ø >àZZ>ô¸p>Ñ¥‰>¹W?*«?˜ß?u·?/ìP?¦¢^?ãÊÄ?¢ù?t±´>¥¼?Yš?ž|?®r?³®?µí?·j`?¶ô?smB?ymd?~iú?`@?“bÖ?[°?2Ø?ä{E?ÙlV?¢ûw?q>ôMä>ôCÞ>ô?‹? ¶r?½.T?5oä?£” +?…Úb?6öü?ÆR>óÓ¬?Õ‡W@,V÷?´VÈ>ÿ$J?ØéÕ@3Q?Üî?µõÖ?‰\æ?sGz?Ó"?꥿?H2Y?l4?H"?[¥7?Åõü?ÊA]=¦-¾>ï!b>ÿÇ|?¶¾?´¼?Ðœ?ʇÊ?¬tº?²b?·†æ?±´ç?q§ˆ?—/@ +ã:?èþl? _þ¼?CJ ?´}=?Èhj?ì†È?¾­ç?fš]?'°\>¥´¯>Õ( >ﻶ?½„?2âä?ç—>ïí ?š?;Æ?jQ>†–k?Œq(@ u?ÏQÐ?p4Ö?;;?°p?—„ª?k-H?E{?²kÁ?… ¼>ê>ªP‡>¤Ú?”Œ?¯_[?Èd>`Ú>õå ?š?x–ë?¹µ?6é?;A²?UÆð?Àð?¿ê?‘¥?HW?Š¾i?‡3?ðW?òßl?¯ý>æcz>¢«·> Ós?—an?¬7?—ƒx?”"V?¥[?«¥?»æx?ÊÙ?š~H?dÆ?3év>ôÏâ?N­W?ªw\?†R²>âäÖ>â©å>è¼-?#Cö?Þ å?Øeµ?n½4?põM?ç!?+×?V_ ?`´?ÍBÿ?ë‹'?u” +>ßì*?&µÖ?eš)?ƒãÕ?›yb?Œ=r?.5ú?.L?.PÛ?%#|?`ŽÕ?fuý@…@#P›?ÃÅ?ͪ?©Æj?¸ ?jÆ>š·>„=áé>fÑI?s:{?oõ|>ÞºÖ>ÚÛã?è-?ç?Y,¤?|$ù?jS?]÷?94>Úb >øà´?YA?YB?Ôéä?×-ô?”(?R¹œ>°Óu=)4>Lb>ׂÿ?*Ë/?Å|ˆ?¿¥;?¾d?Æ«?ˆÂò?’ñµ?‚4³?u»;?Rnf?¨&?Bq?U{M?VûŽ?€˜’?u†?Ÿ¦?§¾Ó?^y?T‡!? 7>bý >·c?µ¾„?´¬??³ß?+ý¤?Wx½?u†P?TìÙ>ÿª0? +·?RùL?RúY?ËK?ÒªÝ?Ã,º?¿ÊË?Œ?˜?Œ"?R?R¹;?`áÉ?]ä?Ó› @*+?ÕgÍ?.Ó? ®?ä?né?Îf"?ÎÞ^?nñ=§°>€]P>Ѿ>ö½Þ?D|Ì?B7é>õéx>ô‘?ZDA?xÀ?oE…?iŸ?–ïw?ÙÙÎ?Öþƒ?l? +Pe?”?<\?;Z]?pý?7‚Y?ЇÕ?Ð…8?ƒ!?X‘¬>þå¼>ÖÁL?;‚?œiZ?¡2œ?Ðm€?ЖÉ?]ã¦?F¤e?3 ¾? +Þ?8…?¢B¨?©ˆ§?XÐ ?Nä¤?2L?*•?*<’?>pÔ?MÓu?_è:?b{g?s ?mÁ?>ýÂ|>Ñ3v?£-¸@oê?Ãþh>Ñ_>àñ®?PQ3?Q‚©?¾“é?Ðˤ?’¿?MÇå?LG?JKÝ?3žŽ>×o>Â3??O×?R?„èÅ?“…Â?®ò?ËVá?¸“?‚P¢?€ê?PVÜ?R\K?=ï?-í?,"?*Q?­š>/E\>d=?™š*?êe?¾±7?·fé?‘D?—ß?\qI?%Ÿ@?>&Ó?’‚ó?‘>¯$’>‹›?‚ÓV?©!@?”P?–º?Û×>Ò->Ü’Ð? dÈ?¦ìß>ò±=ò­‚?*O?¢áÃ?‡á9>à®M>õ?Ç—?ÎÙó?€OU?P˜“?`>>Ð?O>Ð>ÏÛ>Úš?J?Jñ½?ˆ|”?*?¨_0?€é?„a?sœ?öÝ?, e?9”þ?q?˜èÞ?•?ŠQ%?“ƒ?ܪB?Úä?kêŠ?SMœ?P}Þ?‚=? +‚?9Õ"?>[_?!Ö§?µ>»Ù?=‡î>>ú˜>îä,?oÛ?®‘?™ ð>¿’ +>¾<¢>GjÅ=Òûõ>œÏâ?€ÒR?Ç?Mÿ³?8t?¼“>›Br>»‘?’?"­ ?==±–Œ= D¾> ¶>­$>«È=ÖýÖ=sÁx?‘Êà?£ßý?”ã?$J?Gý??r?U‘?Ôh? Iù>±¦«>±åÓ>²¦÷>šÀµ>‘Lœ>˜^`>ë"â>íæt>çË­>¥Iì>…\ê>ƒ5ÿ> ,>@¾> û>È->8@‚>¤²>«Á.>¥Ñ‹>mxê=ò\_=ôw =õþä>о>MqÔ>¿>˜Xl>•;>‘„Ö>„Y>Å/=>œo<è$Ï<ÇÕÇ<©sÿ<Œâ9¨=>™†>3} >‰“=š¡>§aù>{=2¿>'¦>>‘ù>—›>÷v>/>i¾›>ö-‡>Ç26=øº>7Ë >»c^>ÇÓ˜>ógƒ>ë-ô>Å ‘>§]…=Z¹©>Ѻ¨>Âvô=@²=!P'=±^<ýB>ïQ¸>Œ>Ð2î>ëð^>Æ8y>®.æ>èjù?@>°¯Ý>1xú>܈º>Š„='<»>mS>,==‰Ý?o!?h)|>ëÀ>ëo>ä±I>Üœ>ê" >ëÍ?=é„?;¦>‹%> Ù>&Ó¦>#¡þ<õ{€?‘•ž?°Í£>˜ûù?ÂC?ÂÚ¸?8îˆ>¼Þ[>±ä4>¿ä)=ð–>—ç©>æÖã> G>›×P>ìYU>ÚÊé>È™Ä>ÜÑv>ìšÖ>ÁŽe>ŸÄa>]ò'>C¿?Xª?1ÿ¸?ƒÐ? i¨>Í~¹>¢ ’>Õ >í]ª>Ò¦>Íø<>ñò">öó®>îO>í¼‰?Ca¿?^cJ?—{?¨ï»?‘>tR“? +‚ù?f>Ù¾>Öî“?#rá?!=K?"B‘?!>Í?Z_?o&?‚ÂØ?—Ïë?f`~?b—?/»>îòå=UÀè<õÝ\=\©½=ŸcY>è­>ï6Î>j;>>ó#? °\?ûK?v[=?krz=&Ü>°÷2>̨±? +‚x?XÙ3@Øn?ò&¾>ïË2>¸G= Òœ?ÙS?Ú8C?Ãõ'?¢¯É?Ÿw€?œAç?‹Ý?p˜? º¯?Ë[?Š<Ò?Ž?V ?‚M°>Ìlý?âÏ?pMÀ?Ø‹>ßÇÇ>Ò•O>Å`ú?›þ?ï°?“9¬?¨9>¼‚~>u:ñ?b ?ÙË>ð0è>ñþ?+~‹?î3=±Ðø?pŽÞ?_ò>÷þò>ÔY4>ñ]£?æ7y?Ä6÷?7>;?sÂ>ð¥E?+p€?dn¿?6¼r?ìC>–€=3ô?HÂü?´ƒi?Y T>ð²ú?€_? ¸>ç¡$>Ø`=$>*´Ú>sl#?Òë?þؘ?6Ú>‚/?a?p¾a?XÍ?e¼Ø?´W¥?®¡c>øõ>ó¶ü>L«>‡`5>sj0>±û ?$.‡?ýd>aÂ>ðТ>¥°î= ÎÑ=»»?Ž}?´¢9?!z>ðÛ*>ñà9>ü§·?<ôv?pä'?,|‡>ðê?AñO?pì’?DÌí?3 +b?‚Ä?âø?| ?pý‡>Äøì>5Ÿç>ì%#?5;>ò¡Ç>ñ/>ñy>ñ¿>ñ>ñk?Ç?…ä?žÖŠ?£®C?Êé?²­?±LX?šè¾>ñG>þáX?Ñ?ö?0 Y?º>åÍe?GØ?qlð?>»ºÖ?q…e?1„>¬¤j>îDR?'Æ`?P2÷?q§¼?S‘?@³ô?©Må?äìÊ?šÜ*?Y?1œï?þ.?—?µÆj?µtø?´;Õ?!7Ú>Ô¼Æ?—Òà?¨->Átð>›|z<ëÏð?j?pG•? Õ]?"!Ê?Ê Ç?ÄI?«H?#gð?‰á‘?•¶Æ?ëH?äÓ?µùq?³°O?± :?‹b>òÃ1>ß™y>²·>䃀?%¨?`÷n?• x?8§Ï>…9 >¨>>œè?a=S?¦L`?©$¸?«þé?…Ì¡?i®¸?£‹‘?¶vT?åSV?ôúœ?»"Q?¨o ?û?ýób?Ér“?ÈÝ·?-Is?+—Î?‚5â?ƒ?óË??íH,?¶æG?³~º?¤ø?³åÆ?æö?ÄßÛ?(5²?S)å?¯âÆ?ÌZ™?ô%Ÿ?Åô=WpP>ˆè&>ô@„>ŽR¹=ܹ¼?}ýv>,?¸ì[?ô{¨?L.=>ô„>´S#>±µõ?c8?t•¶?Ò°0?à~:? Q8?zj>õ)÷>Üw=¨¸Ã?QŸ?0ñý?„ôÇ?`øn>·E>­x•>£æ?m'?ò=?žb’>ôÀå?5£?tÀÕ?Z®ï?H”ë?¯ë&?ì2Í?¦›?t¹¯>Îi>nW>—{=¯¥?G‘¹?tªs?t¥?v I>ÕG=¦t=íu–>B>=®Þ>¤à'?öË?¸ì‹?£~ +?–;ú?âÚ?)l?9»‡?5hj?1?,Í?(…’?2Æ?N*¿?`©‹?t 3?‹LS?¡ÊÖ?\•9>óب?€·C?´€±?ŽV?s¥Ñ?s¢Á?z§%?*å}?•‰?\ˆ0?sLT?³ud?Ã’Ã>­jú> +o?:>>?HÓo?7Ø0?GUE?M= ?>¶Z?5)?A¿£@A`@?˜ö’?œ)Ö?hAþ?\ë?Q£G?JÍ?[Ê?€nÊ?¼Á?«Â?xÁS?Šˆ?´H?ÆñÑ?ðçï?¢Y*=hÔ?{\?ºR$?w=`>Œ?3¶¯?¼=ˆ?–+Î?O›?7~’?cÙ?Q1>ïM"?ž:U@"û?Ī1?nê{?tÝÖ?nŒ&?xŽí$/?†¾.?Ø,?ᇦ?èÃ?–ä>ì??d©—?°ô1?•þŠ?m^J?mϹ?kM?pH?xÖ'?žØ?Ìç1? Š?6Ôl?n(Û?¯zì?n,ž>ÊL>?®ö¬?ºã[?Ùö?¹z!?*½G?-q?0!€?Bâ?”³î?–©Û?¤b¢?§Kâ?†3K?ˆÖ¨?9}?1ú>wÅ=Ë'.?r?Žg¾?.í>åyÎ?‰,?§(>éÞÇ<}? *?dOˆ?¬Ä?ãìÙ?™³‡>ì–ú?C€˜?£K?ÉA¯@ Ñ@öL@ %)@?aý ?aÆê?ÞW?‹{§?.k?ÜW?¯Ö?Ï’?ƒ­“?4[à?Vx»?n¥ +?¨Ò?äÍ=?͹X?¥B?¨7á?¿{5?ºÈÎ?t{?láÿ? ?“›˜?Q Ç?<—7?²;*?Üæ„?qÆœ><×ê>¦p¦?Jë?3—|?…I?™½O? l³?Á[?•˜? uT@ }@#Ñs?èÁÁ?£™7?£w›?£ õ?Ç$ @Îþ@ià?Ù?Øè[?rŠ“?X–A?B}?2¨£? EŠ>×ìŠ?Æ1?†¶ø?•^®?Ï0?Êÿ?97›?5He?‚, ?Œo_?®tm?È}Å?œ "?¶I?<¿?Õ¢ê?Õ}?Ö„~?ÚYŽ?e¼?Tõ9>äñ@>‹ßÚ?ð?¡ó@?.†Ý?' +>æ3å>ÓÙ5?†g÷?È<Ù?ªLÖ?Sh•?b Ú?Äö?ÅÞ?d¥E?Iu½?ƒÇ?˜[`?ˆsŒ?T€?oÌ’?Òa1?ÒN@? +ö>Ò%>Òà|>Ù©>àhÙ>ç´?ˆ=?cü†?g–Í?@ú½?4ZÔ?:/‰??6Q?…Pì?»|:?¤!D>ÑHC>Ñ=ü?`U?&v?G‚Q?Q?W?€•J?~…!>Ðÿ>ÐüX?0¢…?+ñ‚?Aõ\?SÞ?€Vd?·ÝL?´®ë?¢g?¤0‘>¾2Ž>$o‹>ñû‚?HÒ¢?–•Ü?áæý?Öt>õ`3>äVß?6œ?Q¡?$K>ûÅŒ?S&ã?Øí½?Ý…?ÃIF?ÄËÅ?2D§>ôdw?`Ù?šd›?¾Öë@@£?óô>Öuå>Ñ€Ø>ÑŠc>Ñ”_>ÑO>Ѧé?má@}Þ@ —‡?bzØ?fY‰?æ=v?ñ¦ÿ?xÏ>ôû*>œï‡>8MY?‘LV?Æï?%Dç?%‘|?N©?p˜i?ÅÇ@»ç?ãµî?‰QÎ?ƒ®t>µ#>º»u?>[A?R­Ï?#+>ÍB¥? é6?†>Ã?…ð ?̦ã?Òè?°©?žÝ?9ZR>Ò¾H?EÎ ?³¾l?¡ì¹>Z">A¾ª?Þ?úæm?£[Ù?dax?.ã>î¯Ó?: ?ÇÒ)?ÄðE?W6;?Qù?»Ë,?ÑA ?•îÿ?Q‰ß?Qh'?QJ›?[ô„?œVh?›·É?†›>Ð|Ø?$I‹?Fî{?GgÎ?O­ ?Ous?_\õ?a®1@¡@Á5?•>?€Œ—?GI>ÍCP>ô0?¹.¦?º¿‹?„·²?rÎ?o÷W?‡ ?’Ô?T?OÚ>ÄŸ\>ËÇb? ¤J?!?0ÀT?„Z*?€GÅ>…Œó>d? b?’u?Š`µ?O–¾?TII?Pp?"„?$Š>¾6>½a£?"ià?;²ä?1¬Ò?'Ø¥?*Š$>Kâo;“£•;óW?*\?…Wö?‚f§?7ÄÛ?-× >ö Õ8sÔ€<ý@>[ >$D{?L!Ø?hœ9?Z$ð>B‘:>áÂ>+‘Î>¢÷n>šP>ŽÇ=Ï1 =ÅJù=ßé>£úM>Ç…ð>Ç¡>òÓ;>ÖÙ>Ð< >œGK>þO>ÚÙ> +'>'>>>Ó>‘ä>”âL>‘ö=¨þZ=Œ·w=c>ùa>h-Û>wÁ>lв>Zii>6Ç(>0á3>*æl>$Ò +>•þ>"8Š>nÜ>°}>}=ûûÂ=í̘=ßË”=Ñ`c=ÂÝ3=´=¤¢+=’çê=1§=_¥û==³Î=od<ø<¹M¼ÿ½–°½›ˆ½©Ï×¾Dؾöe¾©ž³;%¾¥$¾ŽŽÛ¾jù+¾Dy¾O*þ¾{B¾™.c¾Zy¾Â˾WIð¾¨Ô¾ÁžÁ?ùÏ@9ô?[”Ì?,º6>G9:>1+¼>¯Ù>¢¯×>%Î>M<™S>n,>?c¢>²Jè>Ö¸?5˜?$F•>¸; >ÍÕä?§c?ZÔ>À3¢>Ÿ¥Í=[u>ÊÂ>¼Ç,>Seý>.€ ;;‰“=(Od=fG=>ã‹ð>ç?6>ë +½>îш>ﶱ>ït®?gW ?iô=¹j;=…~x=½Êp>ÊËV>í°X>Ïè>Á]„?I…?Ù‘?)6ò?8u>¹Ï>Y0>&>1ù®=¯+B>QTÅ? ØP>¿ÛÀ=,Ê÷>þ=¸XÐ<’¹w=›¯£>€Æ÷?ža?ji= ™=ù›c?°j?¨-®ë?D>ëB¢=°y«=¾q´>Y-÷>€ýâ>¡:ù>™»Ï>‘V>ˆQI=Úê?}+’? (¤?T¿¶?$­½?ž•?,?zjs?8 >´•u=NÜ<'‹Ç> Ÿ³>ÝÒb>å(>ìrm>ìƒÙ>ì’Ò>ì œ>ì±î>ì½ð>ìц>¥èø>o„>¹>íB> ¾c=® +=Þz{?W–?:Mÿ>z¯ó<»ú}?"LÁ?m¬S?lš?gHr?jµ?méŸ>îë>¯8Ñ>±?Á>œ¿?Tþ?+kÄ?cn?\äZ?vs„?‡]•?:ïT?/5ÿ?e0¦?n²†>nª=zlÓÇéE>ÊÆJ>¾’ò>²Vt?He?C">f×>‰à}?5n?6Pç>ï~>ÝñÊ>A=Ø3‰=¥Ë >J,D?_”?RDK>ïÉ^>·}x<؆T>fœ>ÈÊ?/?YA?zþa?Ž¯g?ŸÀ?´Í?/È?‡d?œOb?ð3?©KÈ?YV?’S&?¯c\? Àq?lß?±Xh?„3?]Xø?>ðsÒ?7Û"?Bô;?/²~?3Ë?&P„?‚?cûÅ?€!'>ûC¿>ôYª?ž'=?žc=ÅW:?p©q?^Õò>ð°Ô?,@?¸äI?XÝ>žÏ>òt?p¼Ã?]ÈE?<Œ)?6Ù“?'ê?~)?ÊÅ/?¬>¶?|² ?7×ë>ñLŒ?<)‡?u!É?¸5]?Ö09?cØ?6Ø«>gJú?h*k?‘.ì?ˆƒX?ƒx?•@C?‰Àç=Š·<{)M?r@„?wLk?b§?Yœ?9¤ó?¥V>žñ%>¤ÄH>ðõÿ>î—|>Ó7->ãyI?þ>ä9±=Ñ··>€p?s¼?^Œ;?´lÀ?{¹3>ñ X?/ì?`¹¬?g9>?q?*§Ç>ñ?ôÇ?0e;?33?,,]?R ¥?v-ë?^^S?W¶¿?^>$?dÃÙ?oá¯?q:?0ò>ñ@–?¢;Ï?¤¶Ÿ>ÿÉÝ>ö%~@ó;?ùiÝ>Â>>ðœô?sc?g?”N‘?Œv¬>­á)?)Ç?ÏZ?œ*?àÊá?¦È6>¡´ ?q§?¯…?ýr¹?ªÆr?ÝÝ?2–(?E5E?fG>ñÍÚ?:,õ?q×+?+–Ò>ñãæ>ñì—>ñðß?66?a?Ž …?³Z?âË6?ñ«r?”Òþ?~•A?p>ò8?.™ÿ?BˆS>³¿ã>Ç<Š,;BD?;ù?Aj\>þªþ>ê_?Sÿm?Yõ·?_êß?… 6?äê¾?È}Ò>òºö>»DP=¥`>Ç<>^â>õñ9?TµN? ÕD>'A8>஬?=¯?6˜?:o¨?î>µ²>øÛ ?ƒ?Bìn?sQ¨?sXù?sc ?K>ós/?VšÖ?u6j?€hÔ?†ƒ?„:?…¼ ?ßt?.c˜?Käù?WEü?ƒöØ?€qâ?¶ãË?·6U?à ê?¿j’?ÿù?ù?XÌ?ƒ¬?¿Wâ?ʃD?î@;?}5>Or*? gÒ?7jx?SË?œÄ?ÌMÖ?.ÖŸ?‘Œ?„CË?R o?3öþ? iì>ô‰á?Æ ?²U?H_t?\>2ôa=Àú?uHÑ?W8>ú6? ”Ž@¯R@¸ç?¶x?¨È?^q ?Cc!>ôŇ?He¼?Ö/×?—›> úœ>‘@>ôÐ’?â«@Sx?¤Û™>‰¤›>ßK­?tž?9æ¤?@ ó?Iš?F÷ô?F$?T4l?eºž?mªO?ª!?·€?„ ?t·¥? D?”?R`™?M)Ê?D<«?0ð›=¿&}?wÛP?y“?t|;?]Ön>û®`?Æò?>\?€´?¾ªÈ?©hÈ?Œ¯??UÄ9>ô'H?2Œ?tÔ?6'ƒ>óûÍ>óñˆ>óã2?CWõ?sÉü?s¿|?s±z?ÈÄ?çåÅ?¯'?_·?ncg?sXs?C)õ?@ùt=Ói¢?][æ?rô ? +Cÿ>ù2}?Ñ®ß?Í!??íº?bm@"FÖ@¼º>€å>Ø-?È`\?Ïï>?Ý™Ô?¶/?ª±?Z¨g?îͱ?à¶??µ¥?‘£É>òŸO>·w?=àp>Ë/î?Tƒü?©.@ ½˜?¨UE>úŒ•?›7¥?°’1?ÅÑ÷?†yÏ>ï£&?5¶h?wÉç?¢˜%?Õw?_]?>¾vû?BéE?2UÑ?Cº?KÂ9?qÒ?\U?Uâø?Xûì?\ž?0hS?¬Î>õ…~>ìø¶?mÌo?±€»?mÜÁ>ì`Ž?0|„?pòö?èlq>ýí,?>Ñ*?F +ý?^¤%?V*Š?M¯È?DrÓ?ˆc\?ŒˆÆ?Û™?vä=cò>˃€>ð¢ó?Iú?dçÈ?®«>äõ5?£Ñ÷?ãa˜?Äçã?®Nº?¨ð‰?Ÿc“?µ] ?Û%?©…O?S +?U¤?[m×?f.?bE³?]þ>ÚÈ>蘷?5h\?5·×?F›ý?Q&±?±[?É {?Ä|ˆ?Ã?’?àBÔ@¸?ߢ¼?œ[\?ª¡Ž?Ë5?Æé¥?©ÇU?­xí?…{?z?ã?FØ?5¥¯?  »?À´ø?œŽY?yé¢?Iè?¥dk?•H‚?\,9?zŒ?Û6¼?ÛÕ>èd3>Û=t>Û[>áË?Ç›þ@“@îN@ÃJ?Ú?‡É?§ÊÅ@M#@ò?Æ)©?Á">æò?>_í>¶Â>ØY»?[lü?³Ûú?«É½?¨-?ªÚ?+‚S?) +ó?u§€?„Ž?Êçì?ñ¯–?·Šñ?Mwò?bì?¨ø“?ªwH?ŒÂ?Œ²&?D ¼?2IH>çbu>yAS>”¥+>Ôãâ?m[?ˆ,™?Š?*?W«´?A‘P?{ÔÚ?‘o€?y/O?Jþ?U(?e„´?[PÝ>ÙÜx>Ô>ÓDÞ>Ó,ª?^–Á?žB?z«>ݧ<>øòÈ?MI(?K6X?µd?ÁÍå? `=l”ì>TPÅ>÷?/èä@j@† +>ܪS>]t?Œšw?ÑÍ1?§ž?.Æ—?,è¸?+ ^?)5u?ÈÇ?È>úò >Ñ{^>ýÀ²?!Ú?!MÆ?„Ï?…¯?ÄáQ?ÉU ?«}†?œü!?“$?v`Ë?G¡š?ûÕ>à\p?a?àþ?åH§?Ûº‘?Ï÷?R ?Q`Ô?jìî?h÷ƒ>Õõ3=‚­Ð>›_®?Q~K?YÆ|?›—¡?-›?bD¤?Q£¸?åœ@Dù?Ìq"<jà=Ô/,?LÆ?Jp¸>ž=0õ°?ä«„@4?áu(>†Å>c'ï?@íî?H2o>ú¤>ÒQo> +‘m>ø>Ðj¼>íXq>Ò‹f>Ü +?fc8?d$p@š’@ ý?Û¸?ƒA?…sF?I¹ä?1Å? á—?%ÿ?'ÚÈ?)»c?+‘é?-t +?Žž>ÒúÐ?³Û?ž;›?JQ>÷.>Òòú?|…?’÷Ö?g ¶?Aàb?‡Í=jÊ÷?•?š6 ?g[ø?R“?S¼œ?Rµ?R^¶?RF·?^·&?q–?0Á?`o>×G>.[=P¥È=š*ª=ö¸h> Ò×=`X=°?³†u?¼¶¥?œÞ?E ?xÜ?Oˆ>?F $?€ÙE?…iÆ??wf?/Ûó>µ[^> -‡?ü??’.®?’Ï?Mäö?KêÄ?Tý?GQp?Ï:?(ªb?%“º>#â>u8?RóÖ?jýŽ?Ž6¢?ºG?ªù+>ÅÄ×>Åq´?˜O¸?¨ià?nYª>°{”>¢5Å?¥?®‰Á?`­w>ðtí>ïM–?4/?7I>c)‚>óå]?5ËÖ?&­=>Â^\>ÆÝU>ÈÕ*>ÁR>>Ãk2>¨Í>’æu>åýð?Š‰?…ÝÎ?°>x +!>„Œ}>ª>>aC¦>XUì=´ÚK=æ¸=ïÙd={ È;T•€?÷?<”a?5ÿY?¶?q? à>õr5>W=Ìb=¾w=±=£öæ=—)û=ð¥µ>œ>¯¯•>§ê>Žðó>«=Ë>Ç›ª>Ä÷æ>ÄF>§À>dZ¡>I‹Ò>?³H>:v>qU>•ÜÈ> t>š<œ>“è€>‰ÝÒ>a—÷>1.i>P=ä_=ÖyD=È%=¹xú=ª=›f‘=‹ü)=x§€=X¼=8Te=*<ë½+<§Öb®¿Ì>¯×v9§@<øzê>·›œ>¥<,ÀØ=ÝGv>F÷?Dâ)?-ƒ7;­‘f=€æ]>)L?£?šñ=›==±7>çUÉ>çÊy9sH9‹¼;ÏÀPîP>íÏ>í¦>íyŸ>íRÆ>Ðk>'Ð=}"d>ÀŒ?²>¼Ý”>r"\>eDß>X:>K>=¨>s->¢k>E[>1è?NÖ>Ñ'7=Ì!¹>ëyå>Â$>v?kiv?TKÎ=*8³=¨GL:ªs@=km=¾{_?…ô¸?€PË=˽?1—?:'??5É8?1ae>Œ=0>J >ÕÆE>ë¼/?Í.?«%¸>æR >7×3= £>´WF>ì=î,>>©ì>ß ?†.Õ? Á>Ô¿Ð=Õ$>¸†x>쥂>ì²I>ìÃd?#Î'?3?:>ÄH>ˆi&>“<>È•>E¾L=çTØ>²Ö>íZÚ?Ë=É@ ŽÎ?ÍÞ>í™ã>§=(gx>ÅFÊ?j ?Œ•„?¤‹Õ?Rf–?†8?66?;^Z>«>y»Å?eÊÁ?”Lò>üÙ¼>«ìQ>rüâ>+¨c?BLt?e1Å?k>[?nÍì?n¤Î?fsÔ=‘"Ç?L©?RŠá>O–>#X>»¿!>ÒÏ>mÀ>Š=[>ïqE>篨>¨×ì>µjú>Âv>ÓTï>ï®<>ÁV¦9t8>]LA?k/Ï?a^:?Mv?v²=ñ´&>Œ‹>,N·>¾¯½?0ä?Qc‘?€üÚ?Öè?CO"?Ê‹?wíº>Ø%n?=ÎS?p»ü?p] ?i{H>ÀÞb>Gm +?=”7?pzÿ?T‡ô?E}?fìò?pŒÄ?kgM?]Éê?…Ö?Žÿ>C.v=ÁWs>ɨ>Öâ=£9×)c>Ë?®¢U?¡¿!?WŠÞ?Tõ?lKá?JŸ»>P* >™`M?èù>îù>ÂÇ?Xà?T¿?/¼™>ðàô?l%B?´¬'?”ü ?o 5?.¿?r•?‘‘&?Âìu?†O“?G?>Õ«L>‚]¬>Ìer>Ï¥=•b>—%ñ>¿'G?®»a?º„-@*æU@4›^@ùY@ š®?õ$?ba?¨b/?š¾ò?¶¦?ÔW>ñ>ñ >ñK>þ#?]J?[ß%?¤1J?ozå>уÌ? rX?q(Ö?q(Ü?r'ó?’gÂ?§]n?¿ÉZ?Ö{A?ŸÔ°?q9Ñ?(À>ñ?´?lùB?÷?yÔ9?qJç? -`>©”Ç>¹§ð>Òãè>ú»—>õò ?`!??qbR?jÏ›?cà?’©?…öV?Qù‘?Jñ?˜Á?œg>xA$>bƒ³>}>©@>‘ß>Ž¬º>½½ç?:S?á(Ø?©’:²¤{>æH©?®ß¶?–C”?qǵ?‡£Ï?¥)J?v©6>ñß½?3¥A?qè?2*ì>ñöø?X¦?Â?KmP?*p?;Ç?<@K?NQ+?i&Ú?” +>ò/?*R?ºÀŸ?…@—?rQ?YÇ£?OéC?‰ŸT?‡?>þÇ(>ó9H?*™¾?EJ>™R¾>ËÕ„?¥Ÿ?ž®Y?"õÆ?/>ò¾g>Á7^ËA>¸ª=?±Bì?ˆä >Ñ´=?&?‹Ì›?;Üg>ŸºA>éà? 4?uD?´ä?Ž~†?W¿Q?3ü{?,N?ž-?Îõ.?’Òm?f}8?l)Ý?qµû?_”>ó~?œhu?±!8?«*?s¯@?¤7·?¦—?}¿?g‡Œ>ò¯À>û³{?sËö?‚-^?åú?—ê?L¶?GÞÕ?Œ£?+ ?/a*?y÷d?íÕ?ÈÁt?t<ý?sx?jéJ?kê=sÄà?(?tbˆ?‹K{?ž^î?Š'è?cÃ>ÖÑæ>c}à?‰"—?«i#?vŠÅ?T)X?J??߇?Q¾ç?[ú»?9Ð?&JÊ?®ój?²ø›>ö¥o>ôÁ +>ýÑ›?-Ÿ?·—p?™x5>$@,>á¡?™Vb?—;?¢cB?ˆ¸Û?¨?ƒ ?9¯?TP?èµ?7'M>±>dÙ > ¹?Y‡ü?ªÝë?ÁNú?Ô[9? ¤ñ=`"Â>½S>ôËÁ?¡õ«?·”a>dí¼=±Zæ?Gæ?£qŠ>SÓ>‰Ü?¦¿p?¥Jf?ŸéÞ?„îÆ>L”Œ>Ðdh?™pY?¥Aø?Ê·w?œík>ôd?[ ?ÖW¾?Ö\?Å#B?ˆC™>ô-j?<³R?™?<ºz>þ£¡>ô >óè¬>;%ô=Þh>»1ó?¯©?nóõ?Ž¿@?É~„?Ö|©?öQ;?ø¸¬?¾Þ—?¯ÚÌ?gÊ?NGa?2SÎ?6¥?°¹?°'é@ù@ +>ò°?${ˆ@…ö@"?rLÝ?b‚ƒ? ´? +q?[²Ñ?ƒ?³{Ê?µ i?µ4Ö?ÆA•?ð…T?É3?h/?_èª?P–?­K>:ÚÈ?A<$?Òáa?¡¬˜?%†©?AÛ¼?p*ã?[ó?M ?ƒ.¨?˜Ž–?‡aÉ?yqu?^nZ??+[?#I÷>÷³?§ÿ?<€ö?S³ ?ns?΃T@ˆÄ?¬Dr?¿Ä?3Î?o?:ã!?m]-?/_>í ?—M»?ë÷,?çv/?à«3?©¼?l0Æ?2:>ëßæ?N«¾?–e_?»zž?ë>p?ã^?ע?Ý9–?ãh?ÇÏ›?Ÿ;¿? U'?¬Ðƒ?¦E?“™ž?e³x>†…µ>Ǭ‰?=]É?/Å£>è–o?v˜?4b§?Gü©?À*+?Ä4½?È3x?ƶ?`¡ô?f£=Üç<[Km?D¢©?eéæ º>æ@Ô>å-…>s +¾>%Pä>0Q¯>9ù|?FBÂ?«Ñ?m"/>Í‹J>Ðk÷>¥Û?(÷#?Ô=¯?ž;?•—j?#>‡G>‚û?Œµ?%Œ>;é>f#H?ÈaÝ?ÿõ?Ük?ÉÌb?¡â?>«?V´™?s¾?IÏÉ?§u{?™ð?#Ã?#‡¯?‘kœ?“™G?Àö‰?È'à?L#ò? ´¤?¢Õ?×Ìž?½% ?¤>?‘Œí?\„-?sÐ?¥E?¨Án?Öêþ?Ór¼>6¨=eH>ïQ?%¾µ?.4a?6£¯?&ò ?®»?ƒV@#fR@ç*?‹¹·?¹µ?%ÉŽ?µÛ>å··>ؽ¬?QÙG?™ˆ›?¢†¥?¦·n?•O?!KØ?# +ÿ>æ»>í?¢$¬?ÀôI?–Ô£?qïÃ?]éW?2q ?; ™?V4¦?Uøu>àèœ>ÕÑK?9‹?UÙ?b?W_Ï?:QÖ?í?0€ò@Å$@Ý?4a >ÝrV>àI>Ø+ ?—,@‹?êôÃ?Säô?T3{?š²î?›*õ@=Ã@“?³r`>Ó@?5Š0?ÄN¢?¾õÄ?wq?{¡Ø??Ðÿ?"Œ?ÉI?¨åÿ?Ÿý?¨9ü?¨ª6>“>ˆJ^?“#?±ý¾?ŠŸ,?Rì?R˜?RË?D–>Pý>Uç2?˜?½ý?o¸5?•Ó?u«æ?)L£?2Ø»?¼f?À%r?·Þ?¬îŠ?¬›?«l?°Ä~?Å¢®?Ê4Z?Û×é?Úñ9?ƒ.½?`?°/?éÍJ?ÂÝ?JN?_LÝ?Ñaø?Ѻò?s\¯?QÁ?QÍ?QÏ‹? !³>cÑ$@P?ÿ©9?±Nú?©±˜?BѨ>º†¦?*2¬?•æÚ?†àO>¬}>¨Ød?ŽY0?¦s¯?7Ï,>šB?<#Ä?¢²ö?‡‹C>Ò‡ð>ω<Öðm?@µ¼?r’p?6J?¦ª×?‰Y?QŸŸ?_âÖ?î?ôµ¤?‹´2?Rûw?—Ðé?¾Õ!?š;?CÞ? ki? +’$?¸¶?ÙG?Þ?>G[?HV>?V«?ŠnÎ?{úÖ>ó‹'?Ž<@ Æ–@$î?kÐ>î4Œ>duø<Ày >Žáµ?Rï/?Rà ?RÒñ?Rí®?—’"?Þ™?2Óö>Ùäº?ŽJë?ÿ_?Þ°é?FÖ??DÒO?6*`?/àÅ?mÜ?|>é@f?­è?öã«?éµK>ʘ,>Ë,-? 4¯? €t?l¨ß?‘S½?v¾?!ÆŒ?#h*?'Þ¾?F +?20?MQ°?~š?’Ï?ˆ‹G?„ž§?…2 >(†x>ÉÔ>Œx>ïE?‰Kv?Šwý?&^Š? ‹^>ÂOt>¤2? ÐÑ?é5‘?ê/e?ÝiL?áT?•‰›>ºu»>ä?–?º¼?¿ÁX?®M>qWý>±>>¬§ù>Åé¦>Êg¸>=å=PmT=¬‡–>¯Tï>±åT>ï×>?@?»(? [F?# ú?.?•š>Ø>øq%?6 +?1°'>èb>/_·>'q€>ƒß>—Òs>–? wá?‡J#?†uz?Va>ïÐ,>>è8>–0F>ŠƒÏ>„v3>J¯/>LÑ„>NÊ>”/Ž?´ +?'}?&Ô„?¦ª>•€îâ>s"—>ˆ&Õ>Å1>ÐP>ʺ>¹Vc>@c<ÜÏM:’x;êÓ<[y<œÚ<È `<—‹„<ˆÔà<˜¸<¥=þI=ƒOc=¯z˜=ÉH‰=¿/=°Iq=¡N=’=‚¡F=eÆ=Eön=#^<öO<®A*¤K½ee<½†€T½šxÚ½®È|½Ãzo½Ør9½èp4½Ý~Ž½ï—‚¾!×¹¾R¿W¾„žª¾¡?¿¾§I¾›“¾Ä¾}ྗÇý¾ÁÞ¾ïK¾ÿF,¾â4û¾ºùú¾l±Ã¾ P?[]&?¼Ô¬?—eÑ?‚OP?"^Y?sk>Qlx> N<³ì/:ÏÈz=Ðø=ò1¢>Éz&>½ÕI<Ñm ?¥A>þ6o<øNY=šä>ë Ø>íw¡;”Ç=«õx=ã¾<Œ­p>P>AD´>¦X=ë/€>¾´’>íõÄ>|ž>!¾ã>|ÌÑ>Þä>ŠÎ]>„¦>üôg?0¾K?\~>ì”)?%nI?T9?:êM?\§?- +…?JÀ?ä—>lÛ_?EÛö?µg=9kŸ=ü-w>ã¥>¾~¶:Í\<éRÌ=SE@;¦]t?>bb?Fä¯<ŸmÌ?¬ÞÑ?±Á?Aa?8µ›>ûÚ>ëÉN?w ?Â=´_?#è±?OÙ>DEºº*>ì5=×?Ì>³:y>ìe¹?ϲ?)ê?/SL?$§G?†ø>ì¹Ü>Œˆ>b•f?¶?9£F>®¦>"ù>qŸž>psë>¤>ÆÇJ>ä´¼>íiÚ>}‚:’<~›Ð>£Yì>Ïpô>ã½*>íâä>Ínú>âë«>Â^>Å3?QuT?n7ã>µƒ‘>:…á>#+0> ºÌ>™¹7>ŠÚA?D[4?cgb? +f>ï¨>îÒ¼>óÜš?eL?n÷÷=f¶v? +ë?v?` +?KY«>ø¼ú>à $>ÇB‰>³j>ï{€>ÛF„=Ç =?r=«•ý>﹡>ïÃv>êÀR>èÿ‹?#æ?) ]?oð2?Xßž?c¢>ïÜa>„´>>×: ?-‡?%–>ð2È>{Ìi>OV^>ÓCÒ>R¢¼;ÚOõÙ8>¡þ[>¼i€>ÖÜ÷>ñXþ?ì?z.?Œf³?Eh(?-úÇ? ¹Ú?â$;¶µí=ed?pÇH?k±°?^t7?dŠÜ?´ ˜?¢ÝK?YÀ?y#>ðâÈ>²=ñµ—>±[F>z€=÷v#>}>e>ðøƒ>èîá>èÎ?nÄÊ?´Áµ?kÚW?¯ð?t´·?›,n?e?à?Fž:?4“q?-ð>¹ŸŸ>ƒÌÿ?%ã?Gâ >òÑê>¦íï>¢f0>fÂY?ØšP?ðor?}K›?yNÞ?u+??»©?ÐE1?Á ª?ŠA‰?‚ß2>ñ8>ÚÕ—>xœ>‰Tà>–§>žª.>ò©?AãÆ@Ä?±ÇÕ>ÀZÑ?qQ\?’£?¯§?˜N?„žI?§ð6?Çé?Ç M?¿!¡?X¤$>ñj?“Û?Å:F?Û6?ˆJ'?Ž?U?šË>©#b= êu?IÐÉ?qq8? „q?˜? + u?‡Y?V?y??#íµ?(3>ñ¦Í?‹ó?`ÓÕ?Iÿm>ë(>áë?<è$?!¾?êõ?Àel>ôŒ?tE?n)¢?œDð?ê¿?½Å?qó0?'’Â>ž ð>ÑW¶>ò ­@5S?$Ð;æ°€<øL?R•?ƒ3j?£´À?¥Ço?08M?%‘?ŽÚñ?•|K?7 Ì?1?žV?–6¹=¨ó]?DÎi?f’ë?°”l?šã‰>ò¹?S¦A?íD>?ŃŸ?€ÎË?žB‘?Ë3?œ‡?E‹u?9™¼?ýá?ªjí@`:?ÐZ?©åÍ?6 ?|—Ã>Ðû‡>Ô\1?5€? ã°?™–>ó·>>óÛ÷=ä®N=ÌÈ?y?#Sn>ƒN¦>~éž?†·ô?zp?¶½U?²Rg>óò”>éC§>Œß9>¸ði?K_í?G~ô?ìÎ?#äÜ?aK?ž7?㈻?Ƶò?tOS?À¤ë@ °?ÂHß?SÑ?+Õ?Cl?…U?¥Çö?‹\?t„?ÏSî?ùÀ ?Ÿÿ¼?`#š?Ä[ï?íó?£—G?“ê»?™o?žf>ø> >Ö†?ìD»?ó—Ã?uKØ?|3«?¶Ò?¸ðm?å€?à²?êÑi?¿õ‘>¹%+? "m?Ž=‡?‰k¶?tåÏ?Z߯?5Z~?ƒPð?°où?±Åš?¬hž?mr?.ÜŠ?ZÏ©?`ñ[?hÁð=§ï?;]1?tÛ>= < !€?Y2?€ (?Ypñ?Lb?+ë?4¼”>±+>µÙô?OÕN?^’?ŠŒÇ?|ÌR>wª‰>ÈxÝ?‚@?¡4?îì¥?Àbý?$>Ø‘‹=ÙØ¢?5sØ?Îã°?‹†>ß¼ ?o±E?µB}?·¢?·[?ÚR?nMŒ?î5>Øj>/½=°Rh?<´‹?s¢Z?df?l`¥?Ð;X?ä¾þ@ÐÆ@ +„]? Ž8?˜‘-?lÕ}?aÁr@[@[L@G@"?9ê{?Cp?©’C?¢‘•?aQ\?iuµ?{­í?EI><~³ë>lR:?qÔ›?™ì×?ïј?Þá?º”e?ƒ‹>Äî?7«Æ?ת?ƒ\W>àO?Œ"’?”çô? Z?ª¾`?º®€?ø?2¶?„pŸ?»%²?‰ÀÜ?%„?7\G?E€6?q׺?“¢?¥]—?³4?“?n‰?»¨Æ?ô`°?¯¨É?n?–Ø?²@N?‘ð‹?mw?Ô—d@Äò?©Îd?É.?†Ç_?¹öü?°ÄÄ?¥Ÿï?†8‰?N¦÷?ŠŽ/?°Èm?§.Ù?Ÿ%?'ò?=­P?_=?…TÇ?E>?l½á?Ž ­?©#p?„AZ? s?Pί?¡?e?xü´>é—>÷è.?%?6˜Š?®Pù?›+…>ÅB/>ÐÈI>ÿ]>î‡=HÕ[<ó²7?fúV?fÖa?f© ?f{ü?¥n?ªÅø>…ƒ&=pæ>²Q¿>åeé?lsˆ?Ž•:?\Ç?3ið?›W0?ÕgÆ?¾Ó?žCñ?®?Ç?̺ÿ?À=?´ÒN?¢[?Of? ^-?+ÁÒ?(!“>âj>áÙï>[úi>81–?•»`?·ýB?…^5?d]C?$ >à]x?B?E`Ø?o[ì?œÆâ?¥ h?¸Œó?¨ßš>÷Ä…>ò½ >Þƒs>ÞM-?Ân»?Üþ¨?Ž‡ã?]“à>»Õl8ËÐ?n(?£â?ІQ@fb@ß?tÝß?yuR?Œ¦d?ˆcG?{?Bý?§jp?±¼W?™åZ?„9V?Yu?´öê?®eÛ?Yì?ZÇ–?Œþ˜?‹éP?<Íð?&±Ñ?í5?"é?ƒzh?¿¦K?ªF|?G¦?: A>¥\,>š?‘Ðç?¡—È?Fù? +¨Í>ò¬5>Öè\?bä?‚I ?o¤…>°pO>´LU?Gz‡?Uú!@wC@-vú@UŸ?Õ|h?¯Â÷>ÕE©>Û( ?Sݘ?TëM?¿9+?Ô¨Ð?tS¿>îB¯>¬ÏK=ag=“s>*>òl@ø@äq?Ž(>Ó«Ì?'ãË?Ðý?]« >^b²>|öO?Ôgç?ÕÚ9?L¿4?q?>ñ¿?RäŸ?8ï‹>ÒÃÇ>Í Õ? ú?(%?!»©?ü¶?= I?Rk?'y>0^Œ>^4Y?.Ø?«4?‚©?Œ{c?Z¨?>?*‡? Ó?$«?ÄÐÞ?ÇÎ?¾þ{?¿·å?©‰B?–22?°6]?ð‰2?î$ø?–Çi?˜¼>_î/>qžS>Òo?Q0…?Ò ·?Ĺ>Ó÷»>Ôê´>Ø©>Ü>'>Ñ·¡>ÀÄÐ?2 ý?ªœ?«¸•?¹¶?µ¾? ª>ÒYÀ?’âê?ÅÙa?«¼ê? Õ?bÉ ? Ãê? Ÿ>Þ>Ò£`?2¯ö?fv«?xóå?aeL?w‚?ŒÑ-?ì¤?C˜?Zž%?Â.$?Ø¡!?“ +ü?ø&?CÎ?žX©?™Õ?SÞ°?S63?‡[?7?]÷?8“Œ?F÷ ?STà?MOT?@â?E¤?çlG?óÎJ?^†“>çK??G;?-Ë%>Îʦ>ô?gª?žré?cR?S3"?« 6?ÒUÈ?‘î•>Ü$¼>àxƒ>ôJÁ?¯#?»›œ?½žM?‹Uu?ƒÿd?IjÝ>ý”i?2P™?Ö?Œ—x?m&ñ?pÌo>Þí>‹˜‘?ý?™8?s9q>÷ŸJ?eù?[?Wûƒ?‰Ù¿?›– ?BËð>Þ-?K9?°ó×?¬*?xœ?sÍ_?ˆÌm?™¸?†×N?LD?+KÃ=ÒKÄ=Ðß>†"X>tË”?[ ?YÞÊ?rºW?œœ?™NÛ>Kä—=£ [?/G&?’ÊÄ?d¦;f=O(?3ž­?4 !?/¡×?+@²?&á ?.%X?,=?)áG?'=Ÿ?/$`?Tûj?L¸ã?AÎ>´ I>ÀC5?bi?jyc?7ƒò>®ˆî>­Xò>Ìë|>÷+á>ôvp>à§Í>ýbl?:>ÿã€>ébe>·N>¾‰„>Å͉?Wþ?Mš-?Më;?5­>žUË>”9>…¢¯>cX€>f,¶>gØ|=›âE=‡Q@>j­j>t³>€®Ê?_?6ìµ?3v5?$ÝC>zǦ: £Á:Ð<8Åð=×ô>@Ñ>7~>.¥ù>FŽÈ>¬g>Ü°>Òo>Æ.Ù>º <>®5b>¢¡œ> Pi>Ÿá5>•t•>‹ Å>€Ì>URg>£Š=Üá7=|%=r”š=8ͳ= R§<ÔZ<¬þK<‰µ¢¾Å›>íÚJ?Ô‹=ÙZë9r³0>Éì¤>Îÿ¹;c€>W=î–ë=Õ@=»h:Â_–;Í÷W?mMú?o¬z>ñTü>ò6<2´W?hMÊ?nP4>ø‡>å(=ÍX>½¾á>Ñ×+=q:²>L->²Y5=­ÎA?ÒÄ?Dü >{£š>š>Sµ&>ºÐ>íMû>í0V>íî>ìò«>ìÕ?*rC?kí?p1Ñ?ltH?2•­>¸:ï>vÜ<Œ»=7·ž> CQ>óäM>µˆÇ:’=ŒPÚ>Ô¤>ÌŸž>ÄŒa>«CÚ<¢(z>£~á>˜am>2jZ>Cš:ë®.?’³þ?ž§[?"n>ëÜË?½r?Pƒ?{ˬ?‚ €>J¼=k¯”;ÚÒ2>Âݧ>ì6à>ì?¸>ìMJ>Ûª¾>ÎV!>ä8—>ì{z?: Ñ{ž?LÄ? \g?E5>í!?(j!?DFÖ>VH#>´ý>íÓÄ=òüs>¤ÿŸ>Òò>ú=È.Ù>Ä:>ííä>¬\@>Ž€¾>ƒÇ>o%t? š?>Ô?ß>îaf>»v„>¼Êëâà?aÉ.?mªï?ÚÙ?ÛÐ?>x/*>FÇ<) +d?A£?=[?f‰.?s!n?oU!?hɯ? ˆI?$=·>¹Šr>Ææ>Òªk>¹Þ^=½â>ïÃ>ïÍd>ïÔ˜?a"?øl•?¯®Î>š>³¼ >Íq)? Ï?/àD?3\T?EF.?Eþ?4 >¬¾=:<üÙâ>‰}h>ïç?…?´Xô?“Sç?„¥Á?RŽ”?D)p?$Ú–? +WÆ=á>’£W>µÀÆ?‰Ôt?œBƒ?kŠe?mp¥:šà:r©€=O >5)?pâ¿?hJ¿?:Ñ(?9Á>ðóÖ>ð÷è>ðù>˸œ><¢> sd?-~ú?* ? äf?ãæ? bQ>ˆùa>‚Ÿ)? 7?>Ò?Z`¢?x²?Š«?2Ä0>ñ-‰>š +p>|º?}¹?x0>ðF>ñ;×?‚ŽÉ?šæÂ?Ýðº?íN%?¹÷§?µ'ß?uúÖ?qAc?^?ß?[Ç]?™a?›Ç ?qT“?VRÒ>ls§>|kr>@üŠ>ü>•Áô?ƒ‡Å?U¦>ñl>˜F(>Çã_?qvR?”h,?µx?Äñï?ÏH,?{²«?*?› ?Óm{?…5?'â©?"%N?-‘ª?œkl?µ5Ñ>©t?Bë?q¨=? 5^?ÏÒ>ôK>ñµº>ÉË>“c?GAx?>|ò>UT>nĽ>„<¦>¼â‰?‹l¢?”‹“?¦Ô²?Š& =ƒXÃ>»ñv?³ K?¤=?qœT?oO?r6?“ 4?Áµ®?€dw>“¯·??VÇ}?VF?²»ú?¯O«?µ®?µ±á?µ·²?µºº?µ¾i?Høˆ>ò`œ?O¹Y?rlc?BÔ>çÈ?Žd?›‚Ý?z¿ ?r”y?F|?MAÇ?E!?<—t?4¦Ä?<þ^?rÃë?rÊg?rÐ?\xl=ÉÑß=š#n=U >R\k?qVˆ?8Îà;’ù=ZÃx>HJD>¼Ð2?Ö ?rà?Èe5? ì?C¦T?7FÐ?4ç=?¿6¾@Wé?¸¦[?! ç>Ì:>_¬€= +Ñ?wg?´î?¶p·?¶ÄÍ?…oB?käE?ZÖÛ?M©ž?Âj?Æ#?…8Å?qÎ#?èj?ÝwL?mè6?~ôy?Œ¢Á?l];>(žm>i¯å?]ö?)é_?t7E?VNÃ?Õ­>°¥½;C ”?8V5?ò +°?Ú#"?ÄDŽ?žÁ¡?\ñt?5Ü +?M¦?ŒL?·j5?sÇ?1;?ƒnF?£B–?©tp?®—Y?—Ì¥?Œ™Ç?-vr?¬‹?5¸ +?*á“=LÑ;̹Ð?òd9?îÜø?tÙ¿?€£·?·§T?¸Ì«?Ál9?Î[?ôçi?ç˜_?º54?ˆƒè>Ãzî?ª$?5ž?A²>ôó:?J˜À?›p%?ÚâM@ ¦8?‚ÿ>=Îws?¤¦~@ŽÛ?ª`F?tì2?¦7Ò?·®n?‡I?tãð?¥a?¦;?Ý£?àUÂ@ƒ@wÑ?S™l?Dô!>,!>]Ê>ôº•>ô±>ô¬è?ó}?cÍ!?BK >ôo?v>?Q5Þ?Uƒ•?YÉ=?Oë?0qq>ÍH=˜ìu=ð7;œë>…™T>ô0->ý€_??Oü?s÷J?¹ÍŠ?ÑQâ>Ûiˆ?¡‰O?ÌZ»?–kj?‡Mä?¯Vf?¶’S?Ï–Ú?Ø‹?,V??¨?´éE?¸…õ@8î@¿ì?7;?Âã–?ï,?g¸¯?“1?¶Ïÿ?ª1ê?šÏS?eîx?À?3ã÷?Jñ(?5 ?³†§?X¤ï>Àò?{‹?»[i?˜ Ó?xYå?ÖY@ÔÛ?Å?nð?mø +?n»Í?÷‚€@*ò¡?þuS?¿‹½?oi«>ìþ%?ìV?*¡ž?‡¸~?±Qå?§ä·?Ûü?¦Ï[?°ßÏ?cC[>Ê@K?«½?7;n?aê?‰ƒâ?,Qí>C÷N?C4“?ÔÁc?–XÇ>”„ ?–4n@B…©@á¿?'“¤?(Ð?A‰?dç?§p?ñ9>'r>[×X?j°&?hi?gn?j=µ?­dì?¬Mà?jM:?f®Ë?o§Å?s°?»ÁÓ?Áßq?+¯Í>åžf?«˜?Öù¯?•Ô_?dâº?aE_?fà ?J}ô?/©k?«Ýq@]x?å'?cjú?I;?>ÚŸÝ>ÒUa>ÿï?”Þ>‰?>Ž Ž?ÑN?ðí?ˆ™U?ÕG>¼@=Ú\>ÀõÎ?½Ê?9X?½²? ™J?SJ?–çƒ@—š?ðÄi?[¼?YÈ>ÞÔž>Þžp?TØ?^Eä>M®'<ç„ <€Îà>é ?iÍè?XqÛ?Cx?S²%?\‚{?o¾R?ù_1?öþ?†’;?{è!?¨;ï?¶Àì?¬£Á?¤6›?›^l?q)?ŒFÃ?‹ò?…;~?WÅù?[ÒÅ?,p?(VÔ?¼µò?Ó„ø?¤Ÿ=?ŽNf?žÕ3?´°x?©W"?x ò?{„É?ÙC?Ö5?‡ëã?m !?¸Ì>×Oz?i[ã?Ð é?¨+â=ž²Z=‘¸Ì?GÑ_?N‰’?b‘>Ö—£?”K~?Õä¯?™«>Õ®?&ñ?Ò·É?Ð| ?k#?f,ô?Ý>ÔéÙ?Bã?‡7,?:ˆ<ØQo?`gº?j×Ó?ÿÐ>Ô‹>™;©>…1¨?~?Nur?7¾?Lÿ?UfI?M<3?1áó?_?È€?„·Ý?¶ž?¦åÿ?oÔ[?d–k?=R”?>„?fá€?ygr?1·>ÒºÞ?íÀ?£î‘?¥œœ>`›=Ì›+?^e?Šº?Š®q?”Â+?ž>£?¬JÅ?¥+0?>s ?@Þ?JdR?M??õ>ÒWï>ÒV|>ÒW<>Äع;S+->«7U>ÒZØ?))’?]ZÇ?|Ä?”§ +?—¡g?¿5]?¼t?Y”S?@)‰?º8C?ñ'¸?žo%>šw?Ç?¦—í?£É?§S?¯v•?k\?6‚f?â>ÒÍò>ðÅv?$äS?$´?XÏ?U`÷? ã%?·iÎ?χA?ðË?Â!²>«tˆ> …?hÚX?r@j?@K-?1³û?ƒD„?žû?~?'¤?3â½?iÐú?gô…? î? >:? ¼È?9½?9’>åñE?H~?iFm?_ˆÝ?Qî;?Sm$>(é‰:tË<‘H>§6Æ@*T?ý Š?ÕTã?ÓMh?¦áõ?˜Ï?oBî?@t–?vr?ÒõX?ʧ2? =?€ü>KÍW=ÿÁø?ré(?Àa¡?…Lv>žU5>ä…¬?d x?_Œï>ß.>ÑIo>¾˜#>Ód¿?µ¼?Y}D?XWþ?$l»?&+Â>r]À>ðö?(¶0?‹SA?šv?š¶·? –>϶]>ÍWC?&ŒÊ?8¹•?â +>Ëê¼?U?˜W@?˜ Î?—µã?—`Š?±Æè?Åe/?¸¤$?•íå?”%Â?M©7?FK>œÂ–=µI>ºË¯>¶ =NB‰>õ4°?‰~³?‚Ï>éªw>ä}Ë>ç6ê>éÞ²>ì±>ï >ñ‰©?.7?WK7?Ja‰>,÷">Ç?­ú?†Y ?„¨´>î@>¯Ï>“’Ô>9­9>?:¶=ÿÁÈ9Kà>µzB? v?Áe=È3=7ø?!ò{?.i#?#¨>Å™>°½ø>¡¶Ù=¤%^<î¬ý<ê^N=Pœ=›jFŽ>}û>~Ø>œí…>áÁ·>Û >Ñ÷½>¯Òá>^ù_>XKÖ>S'>Mïw>Hõï>‡™ø>Žë¤>ŽmY>•ö÷>¶Âó>Â{ª>½>·gG>±€—>º‘Q>Úä–>Ô H>©F¥>Á>„Ëà>rM°>[}S>=‚>nC=´L=u¢‰=>‹_=Ül<Úáb<ŸéÙ=?”iþ?„»›?dÍ¡>Âwr>€óñ>Æx=áv‡=ŸÄ,=Ó5ù=ÊòÆ=Â;[=¹-=¯xÿ=¥pd=šÿæ=&d=„Þ£;Ây_?_St?mMy?f^?h Ü=#_N>éäÀ>ôù<ÑD 7¨>áÛ1>í »=š…,=l–=#Ü=<\#;®GÐ?>(Õ>¸S>ï[Í?ÆÖ?Ö3?„\¹?› Ð?A]¦?ÿÎ>=z—>Œuú>í—2?¶m?%^? >íø>ž)ž>š8>¾°(?8å>÷G=–Ò=¡Ô=·X>Lv*>ô>?ø¼?l,@?NØ>ä°ý>¯`m=£•x>ëüÙ>Ñé•=Ýã=âô”=£;|?„› ?u4Óë,’>ëû^?!5?ôF?J£^?SMÈ?|ç?™õJ?¹ÿ>àD†=nð%:ÔÒ<ä\=òÌ=cj ?ƒ5?™Aÿ>¢B >• >B>±9™>äZ>ìÉT>îã.?ôF? nå?üâ?!•Y?,@t?.Vv?"Ý>’e>S=KÑ;´*›?5Ïê?lˆ>V†?w×?šÁË?‰¤Ó?|Eù?Ã7>íÿZ>‚È.>f¸"?t?†Zp?W +Î?C²Q?¹‚>îq=ˆh*=rk×<½N‘:–?Zu}?nÛÕ?·B%?¾¯¦=É_?tD?z?˜ªò?’u½>ïLv>øÆ?EÚß??ó˜>hþt>,ʧ=…2›=&3<ƒŒa9˜Pø=κ„>ïÒÊ>½†a=»¡É>çW)?®L? îO?U†>üóŒ>¼*F?p19?LÃg? ?_ùú? Å ?/^=O"·?×=?pnJ?)X<>ð|g? >K?$¶Á? À?¨d?þ‚>ð§N>ã">öæ=ÛY`>îã>Ê:>¹•>—‰=x~h<µDÎ>én>ðê~>épÎ>ϲ}> ‘£?¥‰.?J>/Œ>™Õ?7ë?Kdç?‡I„?Ki)>§Úp>ŠÏR=¹ùä>µ0?]wz?§¹1?ñ0×?ÓñÅ?«8q?‰¼F?]]’?2S³?íG? ¥„?'[_>¾ÍË>p†=!ü?†¿'?µ>?E`>ȹr>tòÉ=Ý÷µ?X[ª?qi?t,ò?zØç>£C>6c4>kÖÜ>¤c>«W">ÕÈ3?0í·?^ï=Ä‘ž>ñ‡F>Ò¼(>E.Å? ëº?ºÜì?¤°>ñH…>”¨D=4ú >¼>Õ}K?7m‘?–îÙ?Ë~?”¦?=“\?[?µH¢?·=?LÊô>¨[¿=¾î#?‚Ë)?¯ïâ>£ð_:&[]>ÉD¬>ü&?œS@?£HÈ?Éß?ÃFò?~ÙÕ?gŸh?¿d1?³?>扽>ÌÚM>³0>Ï!å?xð{?h•?‚£é?atË>ò?Xª?r%?OJJ?ó?-E†?r7i?4Í×>Í Ó? t?ð?V>¶?–ß?¼ù²?å]?Ù­û?È8…?©Žµ?v¤?£«F?©Þ¼?DUT>õê?S•ç?ršT?k?c€5?.&?0H? T? óþ>ú‘ +>òÎ>æB?U¢?`®å?X'Ä?;€? s?¢Í9?ŽNP? ‰?³ò>óW>ó d>ó‡Ü>õ7m>Þsþ>Ò²#>Æô9? +0”?Qm›?)¥$?¸k?…>äåv>¼U>‰¤ç?'RŠ?sŠº?^‚¿?U®Ã?[p‰?a,Õ>°eR=cZ?5I×?sÆ?"1?>0 $> +Äú>7¡£>dhê?“8%?¡³?W–?c3£?ΔÂ?ÎÐö?0½Â?K'?ÞS“?ÈŽá?é´?6J)?\?†}=?tUÐ?t\ô²?…?A>³ÔŽ>©Ô¡?Ÿì‡?·›3?\&j?R·?àŸø?íã¦=U’x=[x„?·Èè?ÃÅÑ@c™?ÿq6? :Ž?ÝB>¬‘›?E>?ôû?ÑJ¶?…Íß?g¯b?Ñt>Àzf>‡„Y?;­?—Œ9?y¼>^Í>‚èZ>ÀÕ? Q?Ñ>C±&?1Ÿ?tüX?Ç>ý¿[? “·?²;?‡ïÉ?„Àô?’¡…?˜!‚?µZ?Šê"?tÙ]?mS=? t›?>·?tþå?aEª?.Î~?B%?‹Ýd?p°>ô>ô˜ß>ô4?{? Ñ?ˆ‘?æï1?´%â?sc?3Ê>ô +ý?€ÙE?¯Ù˜?N³>ô£?!?ï¦?>X?Zhà>^?Æ?+ ?A©Z?ªûÝ?¶³?íJ3?ïéñ?’K?s\k?8™%?$ÌØ?Üø?”É6?˜¦Ì?¡?«=x?Ÿz9>ò¿1>ø¬?A?Ij?rpH?W4x>ózF>ýR?(®?h“??ñïm?á¼È?ÀC–?ÍÔö?âüÏ? .h>Ú™0?ä1?OÓ…?„Ê?«>Œ?Œóà?;ÍE?‚}?«#m?l…à?zÝ?C9?p'¶?êd>Š >ºwx>ï³ó?yú­?³˜s?){õ=al?{[Ö?àF†?Èže?³ Ø?\¼õ>îx¼>M<Ù&à?ˆÏ?äÆ?³–?—j@ N¦@9D?¾Í»>í*>ìýk>ì×±? ìÊ?IM?>¸?±0ç?x.ñ? Õ??0d?.›ç?0ñô?DÉ°?’_¹?ÉÆ‚?€6>꽩?8Aa?É?sõc?1Ós?{bD?º|Â?¬Ì‘?–`?dçÆ=«·¸>…ª=?cÁÔ?•Rí@%b@Z$?®?¡ð¤>íJ>ó)¢?;~? š=?qg?Ü+?`óâ?fÁ?ˆ\?Ž1?iN?Œâ?η?å~d?± Z?–w˜?ea?4ßQ?Ëæ>ôãî?oþd?É '?¬!Ä?c®.?™?ͤ?®pÉ>óÅ/>Ô” >aæ>í5?Bï?Eï'?Éž?Ö&?BÛË?ô{?7ÛP?S…?U¸ª?Wó×?.P>ï·%>僓>ßçD>߬Ç>ߪ>öŠÍ?]ó×?[`›>î¨Y>îËE?=Í?DòC>÷/>»$?¢M¬?ô|9?²Ð ?CÒ?H[B?\Ýô?tþ?È;ò?Êôg?Ú!ã?Ôö”?ªÄ?¤¿¨?¤Ÿ”?¤?•~?ˆ’?L?b)?pq8?y6c?p¿y?AÄ…?=nq@ W@#›ú?ÒÁ-?Œf?§Ò¸?Ë4¾?·¥(?‹"#?¢TØ@*[@, æ?±Á-?¡ûx?%òë>׺?W’·?œ¦ê?Ž7?XûÇ?9yš6!Ÿ?H“9?VKP?’Ï_?¢¼?Ÿ5§?˜¦Ç?wýz?oê?0¨F?Åð ?ÃÝÞ?WØ??ÍF?"13?W:>¸¶ó?Ãü@›1@€>×7>Ô~”>™lù>~‘œ?‡®b?Úé©?¦bñ>ßÉ1?îÁ?¸÷µ?·ú?dB@?F«#?›‹?ÒÒo?Ôß?Î~?Ô1y?Á“?¿›Ñ?®WP?­-?HdT?:P>Ñéñ>§1\>¶b>Òú>>ÖBÃ?á%?în ?Œè?I÷?­)°?ý+„?Âpñ<9P<<^Ø@>ͳ†>Ò½È>Ò³Š>Ò´¯?WÞ7?›å¨?Šç?G ?I…¨?”K?’±n?¸Z>ð·š?6GÁ?eqŠ?lCœ?ŠÅ?†V?‘4?$?³þ?Y?œ\¤?¯IÌ?³1x?Òë˜?¾E8?>ïP?Ckô?i—ƒ?[ó˜?ME>Óh>ýiï?!O4?,¤‚?`ŽÐ?gA?¦ÕÈ?ª¾^?œ\?œ¯?x7ü?2JF?Déí?A×?7qß?¿?G{?…µÃ?”®x? +ó6>ñ|?Õ4?’F(?’¤7?‘¼â?“6=ÚªŠ<Á/]?s?SÁ¤?ØqØ@ц?í¬‘>ÓÆa>Áƈ;0pë7¸€?-¼T?D"?@/@?‚ü0>|Ž(?€š°?—YÇ?mï7?%–?!Œ?T{?eD?GmB?@_j>LJ†>%`¶>á{î? Å¥? ²¾? —ˆ>ûn|>Ïîâ>ËŽ`<ÖT¿?Fdä?‘7“?^™ó>í!4>èÚÈ>ä™Ú>àK+>Üâ>׶Ü?c¾?šqÏ?˜‹ä?˜ ?”r‚>à1«>ÉeÞ> :*<‘aè>$ðF>ÒZ>âý†?„hU?ƒÌý?iÜ>ÄI>ìsY?kÝ?>±?‚Ÿì?ï³?/%N=Û¤“>‚Ö?'Å?ÊÓ?AÌ?¹»?³*?Qn?®Ã>4²)Á>±Ž?h >ùŽ”>À=Újù=ËÜ>~zò>þó‡>ö)„>° Ÿ>@«Ì>*äµ?6é?e‹|?dæç?10…?®?®§>½|'>• l>•M­?#ƒž?Zb?WY$?:@j? àp?ß>ô›–>’P>ƒÒ[>·Å>(b>ŒÁÛ>s•>Œÿè>!$¿=\ˆ=`œ’=nš=z¶=ƒ39=ˆ“H=vÊ=‘ÑÔ=­Ço>n>ÝÆ>™>Æ`>'Æ>w> f> ˆ>ŸÀ>Ÿý +>Ã4>ÅMù>”ºn>XU_>¹q> 2f=ú¿=Ýê =Â…=§0F=}<õ=&AQ<ú•€<ƸX<Žyœ<%Z;Hػð¼o[²¼À g½¦\½)Ì_½O§œ½uî@½¡‹è½ï¾¾&о^D±¾Šž¾´è˜¾ß7›¿þ|¿ ˆB¿ÂܾýÓ»¾éã¾ä4¬¾çµØ¾ÞçN¾ËF^¾’sC¾‚ܾ…ÇÖ>Ð*,?¦¢›?˜úo?Œ:Ì?›Á=öÁ¹>H9>² +`>Ñ*>ñÏ`>þ“>àX?>Ø|š>ÚŒ)>Ü´¤>Þÿå>ádÀ=d›ˆ>ÜàÖ>ø=FY':ß>>Þòa>õRš=<ŒH<»\€=§ò>Åë^>ÙV>Ô¨¤>Ͼ…?;7Ì?Eª?à?†_=åò¡>³â2>ï¦Ô?¶?(ü?N…?cÚ“?³]>ðÖÑ>¢‘H>RÖ>íÞ2?%%­?4ÍQ?Fs?«“>íWå?Q?d„>Ÿ‘ì>&ª>ÕÛú?ò?d–?kPm?l~d?Jx9>ó¦o>¿FÙ=6°@>·>ň»>ƃ1>ì)}>âLF>¤×>>œzj>”(>¥Hõ?_Ì?]ÌÁ>c]…>hÔþ?ÿ?… >ž ‡>¦öÿ?.?9F(>óQ >ì,î=”³Ã<×Ù©«bû>¾¨>«wä>Ç ”>«xd>–"[=J>ç>¿è%>ìÜ™>{÷W>0Å$>È>¬M<Áóí?}`W?¥« ?°/o?²`?ƒF3?l$œ?å²?Ƹ>Ù/>Á‡d?fõÚ?‡Þ?TkÄ?P8s?AVh?6\>œd>Né?}7!?žIÎ?¢ËJ?¤˜¤?]>>î{J=¼Mº<šX©?V«…?n±Ä>üžÙ>ÜÔï?¤ ô?¨«Ä>¶¬7>ÆZ<>Pê8­ò>Í,>èìŸ?>ý[?J>˜v>ª£‡>ïm?ýù?oƒJ?`Fæ>üRÑ>ñMp>ï²ä>¼©i=àˆM>ïÝR?xµ?,7U? g2>ºù?(‚o?•ÃÉ?fþô>¿?! ?p=?d3Ë?ZRÒ?4N?3[?7Ò°?pl~?pvz?p|A>Ðúá=~>«êc>ð™¿>ƒA>7‡?FŠ`?rõà? >À€>G?5> °ê?›g?#Ñ4?ß4?ðå ?¹>ðïÁ>ð÷Y>ðùå>ðÿÕ>íå«>¹Ð\>ØŸC?_?}·%>„}Ý>ÂFÐ?q%ñ?‹§¹?É¥:?ŸäÄ>œï >£<õ>ñ;Ù>“ʇ8J€=cuð>®ôô?’ê?M­?qW¡>úrL>/&?2ÐÏ?w¶l??QÝ?WÚ?@>ÜTÇ?f¦•?’Þ>Åö•=îœ?Êç”?ñ€Ó@C%@ò?´õM?«?ä?Ñ’?}žù<½kñ>‡22>‰I >ñžj>Èe=Òº¶>ñ©Á?µ/?q®æ?›¡?ïzÍ?›æÕ<>B•£>Ó€‹>ÆKÜ>¹¤?:êp?‹ÍŠ?ÙLÜ@ RÓ?ʈø?šÚ—?¬sf?µe?^V/?Çù?)Qè?"AA?V¼5?pºj?qò!?mY—>(¢«=s¤<>sfà>©6??Y¦ô?tz]?µ®?´³?—M¤?œM‡?Bsõ?HäZ?OPH?~V…?÷ ß?ó.²?¬dK?•>òB¸>ó€ú>þÌ#?l˜Ì?Õðª?¿‹Ø?¥ÿ(?’gB?g˜?c ?rr=?‡î?“8ä?­?·?µDT?׉È?xcö?ð"? J"?H{?•_Ê?µõ?†0?rÁ$>–. >G.9??Vƒ?M¼Ç?G¨´?A›t>ø…w>òóñ>Z¿„>`&é?ŒVI?’^?˜dÈ?©°q@…°?ô¦_?g(ÿ?V¾ +>ó;ã?8D:?®QC?¨kP?¢‰ß?œ¬\?–Ͻ?må€?%-¡>»ÿY=ïÚà>\ +<>̨?[?€4Ã?©¾{?d‡ó?"Ëû?õa>óÇ?PÐ?sÏC?sÛo?så„?k€w?dhÃ?’ˆ?ŽÔ1=¦éÝ?l5a?sÙ?={?;_}?t0,?ƒ@„?¾ %?²ŠS?¦_?›ÕÚ?\Úå?“VR?ôb•?ÎgÂ?toy?tu ?t}l?“`?·f”?‚Î5?K?"Mó?9‡¶?_/G?t©¡?‘NÒ?/p?8ý>ô¼ >ôÂH>ôÆ?ŠE>?¤UÄ>°NX=â?¡G¯?·¨º>"cr<ûá8?n¤ç?x'Â?·§?®Û?}”?‰ðè?Éá7?½T–?Xñº?!ù‚>D Ä??{?Š%?¿8Ÿ?†’?…´>̺_>6wH?Ž¨@)6?)¢>õ•>u÷=‡ÝÎ?f]?°;º>Øn9hŽu?:Jo?uŸ?‚q>õa?Õ&,?ê¸ @Öo@ÖS?©d?¢%>ôé\?2u?ÀŽM?¯¼Ö?7²|?Qø?}\?—|µ?tÁõ?HûÉ>¯Œu>Þ•?'µ?ËÅ? qD??A{?‚Éz??rz>óo/>ôl>õ5??æ?¯A‰?,s>Dw½?•h‹?Ï.? °>õà?#?3?J¼‚>Í<]>‘>ˆô¡>€Ñ?½¯@?Òà=?øz@ ¥?€6U?sdÖ?Î?N?ÏPs?2|?(½Ø?%ñ?ç¬?f¸?Z‡ú>ý #?&rT?µûn?¨î +?rx•?†ª£?­ô?‹=h>ò%Í?+ò?Œ{?®üD?âYã?¨ ?Ù_?A–¥?aÉ!?M´ž?ïâ?mô„?§Í“?Z¥'>ù|ç>O:n5Ü2N?RÎ@?³‘?±ð?­ A?¦Ï? u? ?‰çl?œl…?¥¯%?³üé?Ååd?=>ÜB>$e*>0Ùç?(§?~6?kšå?gB7?K;ª?&C?‚œ3?°× ?E +Ì>,Š>éÀ9??»§? +¥ +>¬Æ'>ûU.?'}Ž>Ñ›Â=™†a?(°7?Õñâ?â*<ðô0>—®k?kþ?J=>èôŠ>´ïº–r–?®6Ù?³Ï?ÖP=?Î`?œxâ?— i>çGa>çG?cñ?)È?º'þ?ÂPy?]Gê?EÌ­?­ò?ÔZ?³d +?¬?­÷?¬—?uw@?0QI?K??dI?d3?cëP?šBº?ù^s?àˆz?u¨Ä?oæ? ƒ? Né?2I²?*½ý?”6ù?›7õ?[Ò?NÚ?A>óTè>åJ>àß8?dþš?¨bt?‘•Å?_Eá?œèÚ@W?î–¡?_vu?_Â?PJ›?MÔÞ?˜uv?œR?‘¼?Œ~?ȯD?í5£?™îÖ?ÙÃ?€Ô"?Ù<%?²’?«þ?âY?¶œY?¹Äj?e[Ñ?[dï?®n?¾3–?›¼0?„ëU?B1F>Û ç?0õ’?´ô?³^?“T?” ¡?|Y?u9?¸å=?Î=?¬R®?vOQ>ÙE?.­?q™?Ÿ 0?¥uŽ?¤P?Žg>ØL>×ô>×Óý?€îû?דu?ÇÇ?œÎò? 2=c£€=‘œ>åöÈ?zÈ?FÖi?g¡?z©=§kâ>ÉSL?¬ôÆ?«ß!?W1Š?U¹’>üæ¼>Õ‹ã?YÓ³?ˆ™z?´Z´@ +9×@×ø?cj{?` |?Ü ?Ù?ÌbÚ?Öòî?—{Š?%„F?Q›ó?©5 ?¬j¥?Ÿƒ/?Ÿ?ÙG>Óñg?;6?qŒK?—ü??áɃ?Þœ\?²m­?µ6B? +?‚vá>îf>–³>pÞ8>ÓW|>Ö¿ø>ݯÔ>Ú"˜>Ùˆ>Ó~Î>Ó*•>Ó$Q?…a?Su?"¹h<ãó= ©?GM?K7$?£?žD ?U¡±>ñ{¸?ó?eôÏ?s+?±ýK?®BŠ?”G?.?q32?SÏ?[Ìi?v³z?uª?°ÓÞ >gZÿ>G»?SíR?\êY?Ñ'˜?Ó&T?3#è?à¬>õE>ÓõÊ?.wß?Œ£4?Š\?–ëÃ?••?Yz?SÙ?põ?…t?”dN?Üv÷?«? €?Üõ?/ó¢?,e?ŽK§?’ô9?~˪?€üŽ?ŒÕ?‡ç?ŒÆ?µÍi?±™?š°N?Ö?HÇR?!æ?^‘?o?‰ÝD? â6?F?0lì?5îð?cˆb?gÆý?JCV?!•¼>òÁ6=òÞÓ=þƒñ?HÒ?Nð?U—?SŸi?M¥À?Lq€?M\’?M[?O²ò?ñÈ?þñ‡?ŸC?MJ`?-½’>ÊOx>Òÿðm>ÇôF?EZ«?½5?·è,?9_d?,; +?ŠÇG?§TÒ?“#©?bî“?d&?Ë€>êÈ>Ø}&?¡%?)">³Ï>¸·ì>Ñxÿ>»˜>Éý†>ý'1>ã1¢>«q>¶j>·âš>ï…Ž>êþÇ?Fþ?b°?„o?.7Y>­Åt>¯Óî?OÄ?eýÊ?g´²?i_U?jå`?NÕ? Õ?‡?ºU?øå?m>–n/;nr€<ÛvP=4ý°=z–P=_¿$=€.=•€=p¸=>hÈ=QÚ†=dŽu=v‰ð=ƒëF=óMv>´:ñ>¥‚Í>k^>§Ùû>Ò[š>É ->½Âã>ª`">jRt>Q´?>Cî²>6ƒ~=ƺ„9P»~yÕ>²7Ã>·Û5>°E >¨jP>›ã5>vAW>-~»=å¢=‰ä=œ,<eo3¸ÀÀº8º´S»)‚¼»‰[à¼)Àϼۗˆ½J¦½¡¤ø½ìó¾$5¾Z»ï¾Š%^¾«Ž¾ÚEñ¾Ú> ¾Äݾ©`G¾„‘8¾NÝȾ:}"¾N}÷¾D¸º¾|¾ô>æ’? }7?Ÿöè@"¬Ž?Äþ?=ÌnV=Z",>îWi?UçÕ>¢ÉÛ>ªÀØ>þa&> +h>Ë ¯>õ¬r=”¶“>Ô">óãã>õŒÔ>õªÇ?WVâ?b‡>3È=^OÀ=‘†¡=¤‚=·*>:û>]õ˜?4?Á?P­x>6 +]? Tü?>í[? ‘¥>ï…>œêù>rÚû>f3€>R1Ì>ôCl?%Oñ?6@"?F›ß?/‹N?¦?&?œ8?0þ’?Zœ‡>øàZ;2:€<â80=Bì°=4¶=-µ@=Ùú›>ìf{>ÊNã> N†>Û3>.–Æ>«–á?ž?Š…ª>ráÙ>’çd?&ÀQ?ún>ì8—>èœ=õÁN=ÑDY=¬€‹=‡x”>ÿ$â>ût +>÷[O>ìs×)§>˜C>ÞûP>ìÅ.=“¿—>bŽÜ>’Ï>œ»>§(ß>âD>í%s=­Ûq>Á'>íYE?›×Ã?²Š>“”,=˜Wü?:A™?Y‰?Éy>íÆ?Ñv?!ó‘>þ=«>íûÈ?Z÷¤?n ?úì>î3;>=ãó=ñ"?)?Iy?|5>>î“®>?ßü?ç¬f?o„m?[Ͷ?+›?5¥•<Šf“;íA§?Œ{ú?yé<0ên>73>–^>æø>bh? Ðr?-?^OC?jÊP?o©?BY™<ÆuŒ=#Ø>Ww?Pj‡?>DH?$6Š>çh\>‚Î3?=ç?DY±?JÑ©?QH*?WÆr?6 ?Ä´?4 +Z?oå>Þ@ó<ÿ€?‡¼ ?ß…ð?¬\ ?‡KQ?&ÓC>ðª_>µH?`¯S?›(ü?<Õý?%{ó?4¥w?)aî?Ÿ}?¯}?å?ðÇã? +0î>ñÆ>ñ í>ñ‹>ñ—>ÿ»1?K9?SÄ,?›%Ë?‚í°>˜W>®ÔM?R×?)´[?7?oúØ?­V?ˆ;Û>ö0¼>ÙZ>Ç¡?U^Á?"tG>ñl>»ª>£Î:u=OÆ.?”°´?µ5ý?¢?X>pÜ<>¨ ?;Õ?‡í=?‹E*?‰¨)>R•>ŠáB>ñ¼Ë>ÿžU?$æ³?«î=õÑ >'ÀÇ>Îé/?Ó9?m¦?JzO>ôz?(v?Y£ê?Tä2?XŒÀ?z€q?Žäq?²Éñ?Øè?ãé?úÆ]?±<?qþ±?”†Æ?¦–Ø?p°“?Pƒ.?Àö?꤉?HÌY>óJ?Íu +?åÒ7?kõ«??‘á?‚*÷?x‚Ê>ù×S>ò[F?l4\?pS¬>ð>™òe>¦Ê·>³¢>Às“>§=ÜÛÑ>òcä?;2T?²]ö?šª«?bP»?R£°?O±‡?v|!?ýq?€Íƒ?e[Î?–‰Î?°Æ?–ü“?‹ÉÜ?‡ÀÖ?‰kË?uûF?am¼?g§?màE?ÐE?ò½Š?—Ž…?|îú?uÂ×?réë?°0Z?­¾?¡¥=?žÙ?vÖ…?s)>ö¹–>öëõ?%ôb?ÙÏ>ó,ó>ó3M>ó;¦>Êõ=üÓG>óa?¬˜?%¢?l­ ?¶œ¦?ƒëÉ>÷¢?fI,?¤?ú >¸fÓ?'l ?jVÝ?”Ê?Þ9@|V?Åtð?¦LM?8'>óèz>óð¹>ø« ?^³?t°?¦\×?ª•7?µ¦?·¨?)¯®?v>Òá—>ò+i?:-W??º ?EDz?v@‹?û_—?á[¢?B.î?<……?mù?r(?ö-r?Éls?t‰?tH?t–§?®@†?êÑW?ªžó?Vgó?€ƒ?Ž«Â?$>ͪ?EµÅ>ôÛÚ?]|Š?täX? ŒC>ôî·? B?®ÔN>þå?>ø“B?tõ ?m+g? |?,â?¯ r?EÔ?1 %?H0z?u?t4k?bX¡?%$—>ƒFô?wÀ@ 9¾?À_>? +‡Î?#†$?C ~?…„?ª_‘?o~Á?_3? ¨?{t>û‚Ú>õA ?Uü\?qcí>i‘(=²Xò>ÙyÔ>õU@s™@¾?²›L?´?h?QÑÌ?ZIÓ?@”x?TJ?Ö`d?ÀŠc>ôäj? ­±?I£C?N +[?Rp?0]6>™gó?áË?‹,ˆFÈ>ôlP? +­?.¤>öŸÛ>Áy¨?lôÐ?›Î®?¦? Œ?žÿ?àô>Êé‰>ivê?$ñ?1Q?Ì·??ÛþW?¤?£?«ˆ?˜ Þ?s``?w‹}?¢ñi?£$(?~Ä™?lK?(Ê?‘l?rÓV?’'#?ñm¸?Åì2?`Š?'Ûf?‚ê?zgT?Yk?}_é?¥A}?¡Yp? Ó¾?‘Zþ?\ñ•?ˆ©Õ?µ T?Œð_?6D9?–ëY?ߪ¤?<4>²¬l?J~F?¡Âk?âGŽ@¯a?¤t0>ðI†? Úl??”? ô?§·>õ¿;>ïZ?>™#?oc@?'s>ëëà?ƒ„ä?³,*?’>€BÁ>é¦?í±?_D«?ˆ—?|%Z?mž“?8 í?zz?2 ?D Ÿ?U7Ù?m(±? +ž8>ƒá?Ú?VÇù?‡žû?œÄÚ?‡ ˆ?\?|i*?”U?K¯Î>±/Y?e’ø?ÈVÆ?‰'¨>êgÎ>ÿ„r?ÂY>õ"ä>éÆ{?Aœ’?¯–?¾¿U?ã?Ô?µ`Ð>ÕªW?ÍD?w£A?}º?ˆÈ;?€Yj>Dé>ÏPf?·úô?³¿å?¯‹Ÿ?«\’?1†?4C?tª¬?t»M?,ºÄ?&º}?¦?‘,-?„ÍÉ?ƒË*?O0?å¿?VШ?…a+?xö?d*£?\m?E´G?³>6²>Œ{h?QUe?g¢?Ü[?Ý.ï?†™>÷µl=w/—;?…”+?©&¿?8>á)+?·‚@ øÌ?¯(‡>ô È?+/ª?…ÈÇ?ƒß„?_ú?iKÆ?›¬Y?šSç?)®S?,©M?½2Þ?Ì÷_?¾ ß?ºz‚?¬pR?›º‰?¢c–?·‡±?³þ?ÛfÀ?wp?[?g×?…ö??‚Šæ?‹Œ?‘•_?ŒY¹?Ž§—?ÌÕØ?ãk˜?†Ñ™>Ît?JÁ?_×±?zg ?Øå4?Ønç?`H?X;\>D¥Ý<‚AÀ>™í?V®?TN*?¡Çì?”÷k?7.:?1eµ>Ö­>× +>û,k?ƒ%?Æó?£ü>õMˆ>ËŒj>ÍÅŸ>—K^> Hé>Ú¢¥>Õïÿ?–Pñ?¸ F?Ù²7?ñ?½?Þû²?¹Æ ?Ç®Ë@.§ž@/Z?t ½?B3³?+ù”?FÛ?<úä?v©#?qu7?9d?… +8??O>?3i¶?_“v?€E>?zK„?dãü?7ÝO>º +>ü6ê@þŠ@—E?¬þ? ?<øÂ>ÓóÆ?©Ç?S Z?bÄ ?ž®R?ž"¨>øÇf>Ó}À>ÚÝÍ>ã2Y?fš?<2¼?;º?Sb+?QÀ®?U?†ª?›´?®]?œM¨?N’?}=?JÚ?Z ‘?Ÿ4?žƒ®>ñEñ>¥¿G>ùËÒ?Ûv?FÎ?†P?“à„@h@i ?žèÛ?xã?’n2?žŸc?i'Õ?“=?8ó?/W?6ÇŠ?š¡?—¿?»‡ +?Ç û?c+2>¥Š²? tA?znå?t/’?³I?¸ˆ@?›zø?• {?3*Î>ÇÉ€?3Qª?›D?•²æ?T ?Rø >âŠ>Ôñ>Ô(>Ñ·¡>Óq>Þ'‚?oQ?eÍ®?i˜¡?IZ-?E“ð> $ˆ=“/>Ä•Ë?Ši?>¿ˆ?n/Ÿ?m:€?Tu?QIV>ÝD¢>ÓÿF@S“@%¡?Õ$Ø?fÒÃ?(g¢>½RÒ>áÞ?Œl?„–Î?3øŽ?"±²?‡»×?¦zó?´Áý?ÊŸ+?ÁáÌ?‹·?ŒaŠ?VŠ+?RlP?‘~h?š=?™(c?‹6=?_ã‰>÷< ?ûo?”¸?–;|?Ì ±?Ôó ?– à?P¤?N©Ü?N”Û?VÍ~?šw?›±?c>Î?ÝÛ?üâ9?Õÿî?`d–?gîð?”:?’€É?%Df>ÊÅð>Ò8>ò)¯?u?2Òû?.¦?\ ²?S:?wR?F^%?=ï? ½?\Â>óÁ>©Ô¶>°ò>¸Ç>¿Š>€Ì>Lò@>ÅÌ}>óV›>त>©c_>»ôÄ>ëÛ¦?âò‘>·zÜ>à4‚?!-{?"´>_æý=hÈ=‘?d>˜ªm>T[>©ùè>¬Â$>«ƒ¤>ªF=>©>š:¸<ÍôS:?T<0b`=ÚŠ¹>•e¿>å&>@pH9Š:f>>>ðCÆ>éú>ï?¸5?,?³ô>î!>êþ?×?#ìÕ?ÑÆ?õø?J«? ?*m>ófT>´·>«>©Qh>¦\Ò>A‰=„¡(=lÙù=Vf=¸X>X×> ê>¡ªº>›¨Ú>”¡k>lz>…{=‡+é×µ‰>Žõ‡=¤&=,Ï[>š Ì>þ¸Ù>0b<¶d5<ç<³Ž*<|Ô'ÆD>ó8=Ñ î<Æø=NÚ=$UÔ>ãÁ? !?E,}?NbZ>ïj\>Äb7=˜ K?c˜?/fC>À=>š¥ó>ð>™)Î=ŸIÕ?+¡Þ?p8p>æÝx>t«N>eÑq>QÞa>¼wå>ï‰? Ì?¹r? +vU>îXÁ?šœ?:T?A3‹?H"è?¼@>ÖCn>v}è8å(ñ>M×>ÖÍy>TH=΋®>¶ö¬?Ý“?Žv‚?Z×¥><á?pÑ?iB >E+Ê>jcB?Cê#?Bäì>ì[Ã>éçL>¿§î>Ëb}?ml?c?h~?l7ð?¯Ù^?¯jµ?qT×?l†€=o—Œ?,<¹?H—Ó?Aœ?9>Žƒ%>uΗ>W’Ï>:©¯>š7™>ÿ¯=Ð$>êÔ’?°©=¤²@>Ç3>íiž>÷ƒé?Ò ?G9?GƒY?f?m·m>†²|>%x@?f0´?{‹>©Y>€)ñ?W<ä?n%?i0?WŽ>ÒXâ>Å­µ>Ä‚=ŠM>Û ˆ>î’¹>îž>î­Í?în?*Œ®?m'P?nâ¤>·á>$ˆ:`mÀ<ø•s?²õá?±î£>?×i>0ú >§÷ >´Xˆ>ÀÀ>æí?Y®?B¯>,6?o³¼?T›>ÎÛ >”kz= .8>§-ª?™õ?zú?»Ê>½¢Ô?oÜ[?\ ?I\N?è>Óú>?* t?nÜ¥>èˆvÊùé>V‘>m,—>VkÙ?Ain?pس>Íú>Z-Ù?’ae?­¬å?~_b?pÿ ?òp>ýß>òr;>ó‡?[14?OÂ>ñ(Æ?9ì?q3Å?g/ª?9«|?&’4=ÌMÃ>Àd>|ð=•¤F>¦^“?là?q±?q[;?j‹Õ?[iú?1;±?+`?4 …?K¶‰>²Bu?yÕÎ?Ù²a?ä9?àu?¹á¦?¶È¢?ÌHJ?Ù•Ø??å>ñ³Ù? °ù?µL?z*„?cýo?JUü?;‹_?Â?!a?(?+cÀ>ñÕÃ>æVõ>“œ®>ºo÷?.>Ù?(9Ô>ÈÕ¹>¥·0<è—Ð>NË>ñ÷(?IUF?¬jÁ?œ?OÈ?ë•?‡5?7ê¬?Zsü?¤š?Ô?ƒäž??¤üw?ËV$?[?r(Ì> ;¾?Ž±ß?¬^?ºcÓ?ÀÝt?ªZ›?¤? Š·?Ã?}¼.?oSx?.¿i?#J>¢Ç">‰”>^é”>8¡Î>4Ç–=º’<ŒT=ôšB>òŒs>ºO»>×O>ð¡›?rŸ”?ƒÖO?SF?’ò?œ`k?<+>l?‚e?ÜFÉ?˜‘??:_K>æ‘>pcë>Ð!?š>ôù‘>òïü>ü/¤?Ñ\>\i>ã?‘¸?¦G«?vko?~bt?b@‡?j‡?t¾?u)?ƒ-ù?m½"?-–Ù?/Ÿ>Ųê>Ö’>ó_ø>ÄÚK;5[ÕU>ó“¨?5?Rj?ƒn®?U2p?ˆÁ°?¸S´?l‚D>¿²? ?+xç?5ãH?+9 +?d™©?€Š>›%Ö;èÀ3>¹p=>ôÂ?WZY?h^ï?¥’?«—5?‹^À?‹@?µ^‡?¶=¨>ÍÅŒ>á +A>oŒ+>rdÊ>ô]+?LG?EÂJ?Eû»?tvb?B±H=ýê8>´a?y…¤?¹¬X@Þ™?éö?t ‹?t§Þ?t¯Y?¶Ø´?ô¸ü?‚(ç>ú?~Äù?·›?í˜?*¬å?tß@³F@7…Á?šÑ+?7–i?>™d?L{õ?±ò>õ>þ^Ÿ>ô:µóý=°›*?´¡Ž?Ÿ]g=ƒPª>š0M?·ÕE?§€~?P·1?l1? °?¦é?jö]?GÑ?>õ(h?Š«‰?õ+„?Ø0?·à”?·à«?·â?¡eý?Œ ?¢Z?³°Å?ŒTG?tÿ ?u'?s’˜?Õû?êC‡?$ýZ>̾7?Nr–?W§r?~Cð?Š£¢?£ ?¢œ ?Éžõ‰É?%Þ?··ß? W§>ôìÈ?ËŠ?­?;U?ÏŒ?M–ù^Æ>ù:Ç>âwå?3y„?bê? HÔ>ô_>ôT>ôKõ?¤AÙ?É:?¯²Î?­b?€2c?pY–>±ts>Zœ?0·Ï?EQ?Äæ|?Éùñ?®…›?§gŠ?æEË?âgv?`õ,?\Õ&?4®?;@?³›L?¿íy?òÿh?æ°j?´;Ï?šv?Æe?6 1?_R?G\?¨…4?¦’Ë?¤¥Ì?šÊ5?Ç?†ä[?qå$?O•?(a+?YÁ?µ)m?{(y>ñZv?uÖ&?¸ýý?–?pùÔ?€È˜?†ºð?¸ÏÅ?åÀ&?‚jU>Ó ˜?jï×?¨‡í?Œgo?nõš?'¿i>ï®ê>?®<õf0?`ë?d²?s(¥?€Ú?v1c?n½ >®z?nÆ?·,?ŒÒ¾?mù’?»€2?ÞÒ?›òõ?mt ?m d?rÍ?)?1>ìê¥?®Z? ä>ôƒÚ>áàÿ?××?L“¿?™&!?Ŷ™?psj>ÄÞñ?€q?Ðœ©@ +õ/@.UêÓ?…'@i?÷*?®y?¬Øé?¯6×?°Ä­?µb¹?”™[>èúc>Æìý>@©™>­P[?hRz?Trå>¡¿G>²±è?m˜v?uŸr?} $?‚Íã><@>u§ª?ÕDh?äÓ€>åù>J7y?¾Z?8™œ>[tž>ó›Å?BÈ?‚{ë?œß™?‚—¡?L0â?”Á/?Ú‰?ÂU”?†Öi?nç>?u?&O(?ªA²?ªÙ?©þˆ?©à,>ýu>áéU?Qs¸?f/>…=A¨?fû3?¶ÌŒ?m>à¾.?gkË?ÈþØ?¹÷ä?š¸?šóÚ?§ÇŠ?£>ß_ð>ß0ç?_á²?s´Ï?Ò±’?å‘U?o?T45?}Ðj?‰¨?²„Þ?ürA?×W?0Ø-?@{¨?¥¥*?¥†?búÅ?Q·>)d²>Î?¡Å?bèu?•ÅH?©±Ý?âúÝ?ËD|>ñ¤i>íQ'=È4W=p©d@ÈÉ@#+¢?v‚æ?©Ô2@>W@ pA=3žÐ>6¶›?ŸGi?ž)<=ýÕ?`ð?G>6?Wv +?m8P?‚‡K?•Oš?>†?:o•?8Tã>"G»> x?£ª?Ò/õ?„7[?Ôƒ?‡$?5+:?CóÇ?¦`–?¢`?ƒëe?‡^k?¯þ?Å´|?£RO?€²?§]@<:@ÞT>Ô€>Äs_?VÊq?r ü?†šƒ?“H?jF>ÿ‘?-þ?ÔÂr?ÔŠP>„ÄÏ> + Ð?j~ß?ŸYÀ?%¸MÝãó?Ó¾Í?ÏŒÄ?VDú?T?Tæ?S«ç?a3>Ü ?Z\?Э?ÎÎþ?ÂŒk?¿´‘?W3X?B?±à>ý—±?¬Î?†–?gR>Ó­Ù>Ùÿ/?ËMû?Ó¨©?üñG@a@?¼¦?j^?dîõ?€v¸?† ?g¹4?[–ÿ? Æ×?ùö?7Ø?^·¸?ž%?òÍ ?äï?mÖÆ?qœT?R´?VíŠ?Õá>sÌ>“>ÓÔ?*Bü?æv†?ëëf@ÿ @¡"?Bkì>!­T?W«é?Å}¹?ÌÏ="=™%–>ÓQÂ>ÔÏ=k[?ôÆ?žjé?{Jâ<ª¼€=Gò–?D«}?I=Ú?GQØ?Ej+?}Åß?•á?…²m?TXÇ?_\t?oCg?h¸À>z²>õ?S,2?(æ?Ò'å@»m?Ö à?(T»?!%Ó?¾»¡?ʹ?íN?U*¤?dó?Aìà? —R>ÓÊ<>èßš?e–?à?(#Y?0Éè?ñß?ñ‚?Ñ‘?·é?4K?RÊ?Vfœ?“ÖM?•o:?ÑNf?ææz?™îu?@eH?G<²?L¸?r6Í@±@oÊ?yÔÎ?PL¶?º°>ÏÒ†>‡Ý}=\Ø=pk<ïøa=i:?Š0T?§DW?…ÉÙ?M §?6g¡?«à? ï>š=Ôcº?Â~?+þ >ñ6>ˆÓ?>j>—ô>ŸqØ?-d?Fòí?Fg?ù? ù>=ïþ>5Ym>ÏfÐ>öáÀ>ÒGÓ>“í•>‹¥¶?Gv&?€Õ?]DÜ>óh>ëÜÔ=aªR>|LÐ?Çà?ô>Ñ>ÌG³>¿!ä>´¦¬>³¤½> +—Z<-fµ<ýž~>¦ŸÂ>®"×>¬ï!>«¼3>ªƒA>§¡U> ·+>žì? +·/?¯è?JÝ>¢Ñ|>Ÿš>žÊ>„9>nºê>‚ÿs? +—´?"Ò?½>æó>øi>ú)Æ>rà®Ð¹>Çs>Ì,¬>·µÿ>Ž\è>‘(®>Ÿ ð>˜<Å>h‚]>cÒ†>NÍ´>ä[>ó‘>»Æ>tÎ>WõB>™‡¶>¬õ‡>©Ü¹>¦Šó>¤1w>|è>7×J>ô?>3¦> Þ>ƒ1=þF=ñx=ãYä=Ôµ´=ÈBº=ºC?=«ÿä=v€=Žµ}=‘z=a+@=B4l="®’=ã‡<Å Ù<‚ç¿;ÿ~”¹óÞ¼õ.¼Žó€¼ÖB½c½4Ú½YL½~ðF½‘ùM½“ï…½Š±ˆ½v‡—½K,½4ý½8½i¬g½ì3K¾=ü龇*¾¬Öu¾«4ô¾„:H<&±’>çùÄ?›;?q^9?4;ê>—ß>àö¡>„é<¾.Ò=CJž>”ìÉ>ÿG>O~¶>œÑ>öT>ùv>û%™?V9?z">ƒÇ¨>»Îe>ø'#=ãe%=c| =öÀ>fƒ>BÅ£=ÿ´=é ?œ?/«?‘¾Ç?¢`«? Å>˜óD>Úx>ñ€i>¤*Ã>‰u>Ì8Á>ö@r?Ä‚?`.?"¦?%æ?"‹¸?*¶>~¿Ã>§CÏ?K‘>„¸¾<êÁV==¶ˆ<™AN9k9?Ga?­U˜?{š>×­‡>“«-=”\>3®3>·ü:>Œ> +AB>j«š?UÛ>ÙÖ=@—w>j®ó>Ye +>H]>^Š8>ìŒC>ìˆ×>섲>çÇ>¾«>ÁðU>("> ¯Å?¯ ¨?¯9>ì¦>îÀ´=Ž}x=ýF}?¾? +a<ÁôF>Qu>œÇ‡>åòì>ìÑD?(¨b?2§×=‘ )>ÓQ™>í·?%þ?6à =¿–?Neë?mM´>ï ?K¤5?fù +?±{>í•Ý?—óÉ?£ý¯@”@ +¤?EÕÁ?ýH?ˆyC?–'x>£Sh>5,·?4½ò?Le¶?íB8?ùmù>omÛ=)4?\6?nƒU>þ¯>î¢7=j72=p£L>èkW>î×y?m 2?nð¨?"o?ð‡=ƒî?©Àç?ŸŽŠ?CyÞ?/ >™¯L>XH9=Sæ=)àhƒÄ>ïÙ/>Þd>¡=î>TZ?°É?Ï°…?ƒþv?¬¬?ÃÂá?ÈÐà?λD?z‡à=yp>o,>ñË>ì¾z>Ù•?oc\?¨±?^a?$ü>­dð>K›u>q'g>a„W? xl?#±Ï?]ãÂ?pí ?K“Î?O#?u¹Ž?t¿?q‹?qJ?Bæ>ñ">ñ*>û³?¤¾€?š¿À>ñ@?ð ?qKþ?\”­>Á‰(>–øI> =p>ÂÖ1?ŸXý?ŠœÄ? x°>ù6>ñ‚e?' i?q‰’?»y@ð?‘6©> %Ä?ajH?Áx¨?›8þ?m Ö?gà]?q´Ö?°ü6?ÜÖa?¹=™VÁ>ßýt?Þ>ó:×>ñÕ6@ß¿@-bI?Eú?ú˜?l+ª?që><„×>fá?x .?b >ñùæ>þi?Ú>ßû>=XJ=Ü›=ÿ¸î>ò‰>§Îñ<¿ˆ? 7?µ™»?c—X>ÊÓ>–ÎÒ>ò.‰?¿>?7b¶?=Œé?WùÌ>ïfV>ø?îÊ¥@=C?Ø‘Û?‚øö>oŒ4ZÄ?:'P?eÃÃ? óþ?Øù?,Úz?9Ú?F׉?SË?X'>üNT?™YÄ?œ{¦??Š%Ò?r’q?l©?N‹ò?pÃ?®?™rá>ò‹ƒ?ÖR?hE8?}0q?“Ud?F?>M·?q©?ZUð?¾è @W?ž >¿?ø?Wõì?¤Œº?§±æ?ªÒ,?­óJ?±K?‹­~?s?=>ó˜>ói>ó#>ÌŽ’>¸\|?£îK?¶k…?R` ?=]À>÷¢¢>ò +?2?#ÃÌ?¨•?£{Ú=R Ú>…2>Vp>ðdf?\ +?p½,?%ä>Çá²?‘hˆ?7Ÿ>Ú«>»¹€?*`r?”?Õ´j?Á¼æ?«õ?‡½?síN>¿U?}ˆ?¾«?²X?³9}?6¬º>óáà?š¼°?­kÏ?;i?t6š?6†?:Úf>¥Ýp>¯RV?’ +w?‘n>w€>vØ>ôn >ôu >ô|@?!•›?©)?š¿Z?Q`ñ?\Q¢?gA$?lÀ?·~r?¸=°?½_ä?e³Ã>j?=]Ô?©êG?b/@?,¿>ëˆ+>“†?+‘4?pó%?ŸÙ?ž–?¢„´?¤·_?fû*?U+$? ±V?­G>R{=2¸]>Üfý>óq?t@?n¬û>ê†þ>æx?o8?z*>Â,m>Ü•?A £?,Šn>µèt? hS?–N?pFð>õ7ý>õ<à>õ;Y?UŸ§?©”#?¤£l?›Éô?§Û?®­I?ÒÇË?ìM‡?£á®?uè}?h>÷ÁÛ?Zü?u5â?‡5ñ?Žvç>kh=ésª>•1>™µ£?H™¯?IoÎ?·Õü?Á0×@,Ý@ ‡,>г±>êfM?n·?^~/>ôùi?$P$?‡©?›C?tá{?G9b>ôÒ1?`|—?·U?|t]>øÂÙ?™/Ò?æ…?£K…?bšN?/b.?¹j?¶K>ôl_?±F}?Ú×q?x—„?Np¶?\Ê>ï…Ú?\C?eëÉ?(>óöí? ^ ?Šâ?̘?Ö˜?ð„’?ø0â?­é#?§½Ï?Rx? Ì?qœ?aŽ>ó/Œ?‹~?}`?’>?¶.Ð?Š=¢ø>äµ,?§ü@?Ç‚ñ@Íø?Ý"?Ž¡ˆ?‡”ï?r#*?r¡?qöê?"ï®>_ƒ?Ü6?„¦„?\”±?"?¿Š²@Ç?¾t}?;/+?Ž€'?´¥u?½yR?ÁG?$À<ºÓ’^Ž>ð9Ž>ñØ>ïÆ*?7è?Vã?“9e?©Ëh?S%¾?š_?¿Žz?ù”«?_Î > ;«?n°–?¤ÒÊ?žáè?˜†]?ᯠ@…ú?«²P?m’³?!|ó>íK7?J‚]?r…?Ž½®? Á?—á?”†ø?P¹_? ÀH? ž7?} >„Æ='“<î¨Ó<Ž«êµ?£5È@ƒ‹?ÝÞê?t[?(ñï>@À?=w?Þ ƒ?º(?M̶?,ê>¦ê·>á(h?hƒŸ?I¼>0>zó„?6cÑ?7„è?m‹i?fþ~>ç3­>ç‹?´=‹? ¢?#Â>æZµ>¦7þ>7ù=§ú>Àº? |?@[?e—?ÿº>Å×£?OXS?«?*?Í-ï@»@ 2³@ æ@û ?ªtî? –0>çR>ò¡„@£@”?'È?b;?Izø?=V?° +?Õõ}?Æe ?·¢@Òz@,a´@%Æ?Íâu?»mD?„Ï"?|Ñ>ß®å>à{?h“ç?d³ ?ýAï@ H5?™›Ÿ?E Õ?UÛ7?s÷=?žÜ¶?ÉÌÉ?ª8Ê?5àr?BÊ…?–_ç?˜yÁB™>~d?MY•?Â??á @ñ@à@ .Ë?ìVŒ?]¾]?bþ?¤, ?¤#?Õ!?Ú|u?±+?ž‚f?¸F>T‰”>£5e>Â$±>¤jò>>rƒ>`üd>´rÑ>¬ðÒ?AIj?X»Ä?†‡Ù?“GZ?j¨?0rÌ?sK>˜­>¨Á>ƒq>~´¤?}º?–¥?’]N?‡a¨?o#?[u¹?‹\?Üüá?Þ¥m?—Ý?”Á)?¤Pà‡Y?äÙ? yZ?œÇ°?“|d?“ð?i?‚bg?di?UfR?L²ñ?I.m?‡¼‰?Ìë?ʲ?¤&?¢&¸?Ÿlf?Ÿ¡*?/ìj>Ô»>jej;Z¨>š ?†?šˆ>ë¹î>çM?7}Ó?G¤?(0É?/-?"Õß?(|Ø??Ñ;?’áÜ?‘Þ?í'>Ô;>eZ\>ýÚ>þV°?rx/?_²?fž¨?kŸ,?ƒK?“?E[³?æû?$ª? ´è?:+Ö?Œ¾ç?—r'?­*}?¨­p?T; ?6'?‘e¾?ÂÜí?¡)~?&ìú?{U>UeÍ>F )?:?*’>êÞ +>±²? ÙH?F¾á?‰)H@™Â@ÿ?™Ø\?™UÞ?T€>ÕYœ?_£–?Ÿ;S?wÊr>ÔT>ìbî?Pßl?M-„?‘Ó™?”?p½f?_Á¤?SB…?60Î?7+1?T~Ì?Oµ?¢x?ª?Z߸?q+y?¸øw?Øé·?½" ?Ÿdº?Œlü>ƒùƒ>…K}?•âÖ?Ÿ[†?Èn¯?ç8;?ï¨Z?ÒÅ#?¢‚0?0?åá>Ô>]>ÔQç?ÀbY?Ôâ?†2ä?.ûÙ?Yèü?ˆoå?bði>Ó¯m>ÖXS>AµÛ>$Hv>Hb>EÑ? Æ}?_ˆ²?XÇF?R¾:??³f=^·Š<îåÌ;Ž Î>†·ë>Ñ¢Ó?=W‰?œõa?¦ya?̓T?ËDÚ?ÆÂ?Â*±?z\å?5 Ý? H±>¬å>ãLÙ?šÑS?š¯¸?³úÏ?²j+?Fî>ÌÒ©>Žœ5>Œf>¢±$>œUÓ>b.>ž¬>ÑÈ>¼²¸?¶Ç?ª?Ùâ?ý3?Ÿ‰1>t’Î>‹K½?xõ?‚úÁ?N_À?'°??—Ã?nÐ"?iþŒ?!X‘?¬¾>ûü^=NÍÃ=.Be?„–K?¬rº?–q;?2ig?5S¼>ã†ë>µÎ">Ö† ?3eð?2¿y>˜Ë<X<àu•>¯>­*'>ÑÀ?¬~?¼(>«§>e> ;\?&!i?J²9?HdH?¿‹Ò?ɨ¿?½>«>ž¯>jä­>}²m>ùAª>çxH>᛿>;à=ˆs =ëa»=ÜdÛ=«“59s“<’‚8>ï¦>5Ôâ>7¶-><%h=z÷=7<úÙÇ=e™> à´>=„H>=3 >BŽH>¢K>ï± ?¬ê?qÆ>ú9{>âè7>¾ì±>`7>‹F°>ƒ´ç>x]²>gca>B¹•>©=ýÓù=Êœ=³[\=¥ë=–Ÿ‹=‡Ò|=qÃÕ=S'=4BÊ=ÜD<é¢T<¨·ýõ1Î<^íu=_>Ž= ó}>G`¶>ïµÀ>ñø‘>ôVC>s5³<”W´;’"~:Ý>©¶æ??ƒ>"Ì<ëzP==#°¹˜ƒ>´Wæ>¯/>}}>ž÷ý>équ?ê>úØv>ò[á>’·>`_®>kæb>w”§>eÝJ>R¼??xª?†?`šQ?HA?K]í?N‰q>ïͺ>Q‰„?K»?H`C>ÿTV>B2>•Ï>ä‹œ>w~>R¢’>èÎ?'Áû?x? ÐÚ=‘“„=^Îh= Óz>b–>’oÛ?Ø?-³?È>á Ü>mšI>dmþ>‡A…>°Ë7? bR?I=>ìµs>å•>¼u¡>¸Ò®=ïQ>4Ë?¨øE?¬Wÿ?l«‚?hùù>ì¯ô>èï=¾V˜=çtß;` ˆ>(<>CF£?0ñÕ?1û«>Å>Š[3?Ái>éü>颴>í!„>ß;=14;®Pü?Pí[?md?lz€?cŠý>.*Ì=ýù•=½¥8=× ö>³éð>ãï3?vßÅ?“˜b?ˆ>ò?clá?n,?n¦>î*|>·x8>½ï8?ý(‹@ ¨?ç%>ðî¾?g÷°?n“=†™=Oüï;9P7†p>ìdÐ>îøl?"Xp?&[ë>ÜÆ? AE?·X¢?¢u?²÷¼?¹à(?¥Œ ?¦QQ?œ0ú?•æÊ>é O??¾?³|?–b>ØU>ËÙu>¿S,>îly?K N?DÁz?>ve?ùÁ>g&¾?FUË?ð's?–J¡>DŠ>ðPË>† Š?e£b?ðyV?ìYí?âø‹?ƒØ3>ðŸv?¯?>x>ËW>@|ø=Žã´>©}Ù>ðà«?5 +j?Oúb?BD±?Ib‹>g~„=Tu?œÎç?´Ö?|0#?q+Ì>ý™>ñ9(>ñA‹>üª_?þË?Šyv>ñXl>óÍ? +™@?&{·?qpó?dTÛ?*Gz?ÔE?41?C¶S?´ò™?  ?l¡´?@þà? , ?^cð?¨lÂ?‚2„?…®?V¹°?”'u?ž2[?¨;`?‘Ú?qÔ>Äì¯=²}Ü>¢=â>ßþg?—A?µrÖ?&³ß>ñöš?7¸þ?a™{?YËÃ?O¿)?p?r m?é?àŽ?ÐIÿ?Ãèá?IT®?\äÜ?×KÎ?Éx?dšö?4ÞE;}—>Äm>ò;«??L?R?Å>°¡>r½Ç?ð?ž¾ß?q0?>=?:(ö?–)?Ec?>×?ƒjR?¨äð?ÛÞç?ò2?U>ìµ?Wø»?r‰R?˜Ôú?˜§¹?’*ˆ?‹¯î?…9É?}„¤>ù‚‡? qA?r¯^?rz ?ƒ6t?ˆØR?]°õ?@˜n=áÈ;ÿì<+`<ð£(>IöÚ? ¯z?>9S?‰ì•?J¹D>—Ã>õØ[?8Ã?šÎü?íÈ’?ª×?Lå9?S-ì?Yp&?_´1?eñ{?pDL?s/^?s44?s8?l…l?dÝ?^¶Û?X“>l¥7> >ûñ?Ï%?µF-?³ÑÝ>öZf>î”»> S>+¦m>ßt<>¤)=þ>òw…@UF?ì½*:gã<Ë™ˆ=©À>¯RF?FÍ?‰>Îu>5>^¼•>óéŒ?x?¿-?¸Àa?¶õú?Ÿú?ˆ•q>øö;> >’?¥‘þ?î&_?Wâ´>ô3ú>ôH`>ôA&>Wx´>d=>Q9>rÁê?ŒŽè?ªä?–$Ó?‰º?tw$?tÑ@?ckµ?XSè?M<?5,ë>ô›˜?,O?t¦L?0Õo;¡Bj8Ò>¸Í²?xø?~iý?éõ?¾­ðk?$Áø?{Ý›?Hð?0¤#?ÉÒ<@<?Î7?ÃI:?BE?VL?h°=?uÞ?»>õž;ôœG=X?µÍl?£õ•=e“Ç>@þ×?\¤?{k·?Átw?¥¶”?H»e?5F0?Kä?']#?uL¦?‚^?…îã?},Ý?nƒä?"}Ñ>­O>ÉR/>õNÉ?òw†= è?I*Ú?uE™?¥‹?©‡‹?ˆô3?}{Ú?žky?”q?.pÀ??ce?·àx?»•ü?ãå?äÀ«?»}Ï?’mš> +]>wHâ?Ý&?H{j?§I&?™µ+?tíØ?CQ>ôàK?2å?uþÓ?9˜Û>ôÁ?¡àS?ô°\?«ÞÂ?tŸ`>×Õ> jÜ>N>/&Ä?<â?‚gî?YI¶?9>>úžê>Õp&?s{à?‰÷=>É¿f>ª'é?k©\?sæ­?sØ~?o½Ò>Hg>M1?sž?s7+?r‹ ?bn”>óeq?$Ñ–?°SŸ?–#k?k\?Á1?$ Ç?1L„?8h$?V>ÜÌ?hoÐ?â:w?¯³o?,ú›?e2¿?˜ $?z‰?;‘›?…>ñÜ?"c¯?HZà?Yßù?qm?É@ +-Ù?„'=‘"ë?CÜ?©¨f?÷°A@t`?›ÓŸ>ðƒ×?Bn?möv?jOº?h?Š>ïÝŽ?¥3g?ÚÀ? j¹?…Øï-.?Š™½?µ±¾?—$Å?ƒ}?F(D?-¶?Wä5?på­?££"?º;¢?ŽF?m±g?V‰Ó?Dyã?°>X?Üâ?›Áo?làK?0Ýì? +Z ?;0÷?^pF?a^Ü?dDœ?%àø>뿼>ëÈ>ëv@>^®i<ð?4¨ ?¨¾ú?–ãÅ?‰1Ã?‚“¯?jD[?’VÞ?¸M°?¦1ö?“\³?_õz>È`>²CO>ép>ýî‹?#´ ?::x?}\ ?€ ó?­¼Ú?ªÍÝ?­Í±?©÷×>çiâ>ç<š?DrE?@L?[ªS?VPn=ö>ï€>2š.?J\?ƒÖñ?y(¸?qç>Ü÷<Ô}?%‚ü?ª°\?N#>¹2>åñì>ô>÷À>ý3>ã6>í.X?‡šÂ?‹0Ò?Ëàˆ?ÌD ?¤KÙ?œ j@×ó@-®Î@] ?áU?þ¶Ñ@^F?Ï>?7h_?LH¢?`P¹?M9`>ßÿm>ôzX?§¾¨?§œ«?÷÷Š@0ž?÷Ùâ?óô?šŽ?Zú?ˆäî?¦¢? §?™å?“ ¥?sÒr?t¼?”ê?–:“?b o?\Ã>0øG=¹ Z=—ª+?‡Ç¬@ g™??¤©õ?­›ô?ÚdS?ÛFb@::Ÿ@9h ?ï&s?ÔdÍ? ¹?:ʆ?»?¦ë¾?|:Ò?lÂ?<‘¹?:^k? K±?—l?ý‘Ú@£&?ÂœŠ?n¢¤?&ÝŠ>t;>Óåž?‹dî?„Åç>\“>dƒp?œåš?¹ ‘?Q:€>×]ì?0j¾?Ž×?™¼?Å«e?Ƭ +?ì¶î?ïº?Y)Ø>ö?Uî¦?–fÊ?‹xx?fñH?Fši=Íl·=²~Ò?cú$?j²î;Â?$t?Uƒw?™š @\^?þÄ­?U~?Vžk>õŽG>Õ¼?%ß?Bر?"ˆº?>Á?M*?èš%?ä:Ž?Àad?¾Að?-´'>ÔÂ?>+?6†?BêÆ«>·÷?Cå‘?h M? Þ>‡ã“?%ž?æëu?éHP?°=„?­‡±?•š?’Ã?„¬{?4C?€p?eŽ7?H¬†=W6$=8«í=Ü<÷*ì>œK>Ü2À?•Ñ@Œ¸?Ê^Í=HIN?›Üž?Ÿ*K?È¡ª?Ò¨e?mç>Ôž?‰B?T—V?7ê¥>7KB>Pnm>öñ!>þÈ8>ˆpM>GV ?2¼?‘"N?k/>Ô¶>òÖ/?ŒÚŸ?ŒMµ?C{ ?SñR?+t6? +ÜQ?%¢†?"Ÿ?>g0?ŸƒE?Ÿ~+?„O?yå?ÛQ?ÿJP?°?m?T?.«U>Ôo?…?µá;?¸+3?£b*?Ÿ"0?©‰?µN«?t ´>Óä?m?l°×?fÕ?[üÄ?Yå_?‘¥Ì?›ÿ-?{@5?Rö%?{‚q?ž¡?•£R?RA;?R]S@æ®@ƒI?¤?[ ?`Î~?l7ü?‚ +å?¥E ?¤8.? +d>ÿÌ?+£=?3ç ?"B?&S\?K¨Š?¬^äT‚?žª?€?H˜?C²÷?B.Y?>¸?I@?o­è?|lO?b"'@i@›"?q\ý>\q>¼›Ž?DÁn?E½+?&™?çä?aÝÈ?§@L?šf+=è€=ªªº>€%3>·›À>HÄ8c¿>$La?7(!?4\u>ñèt>Á>ÄAŽ>¤Sm>šc,>œeÙ>¯´>¯àŠ?S{W?m÷m?N ¶=p\<Ò'Ø>ªò>³^¡>ú¹L?eÐœ?o³D?Aý >&Úì>g>ƒì«>êGK>ër>ë£=žt >Š–É>Œ›Æ>‰•!=ø¡à=†"Q=pøÝ=V;|=<$:="®á=J]>Ù%>p€­>læ>]^=Â@‰;+Ü|:ý¶ =š­è>/¯ø>E +>DÚ¼>GxS>Iz¦>Iœ>:› >7Í“>4Ÿ²>1!@>-,R>'¶?> À=ýúå=ñ +ž=ãà=ÏÁ=Ÿ:ë=j=&0¥<ÿl\<ò¢t<ãâÐ<Ò.á<½Yå<¥Å<‰½ð>¾³³<ùÄÀ<Ô¼>óÿ¯?~a^?:–k>úòË>S¯Ä?E,?rZÏ>¬+,>vE*>µQs>FE?> kß?\Ý?Cê>ž‡¥>Sú>aœØ=ŠÐ?>->R»>‚ B>”U—>ÑW—>ð•ª>Æ¡>­®É>´:>ºÝ!?3:æ?oiÉ>Ô¤3?t~¹?éˆý?k V>bz>é1è>è€>î?T¯?©|¬?rs>ºo”>eÎy=âíâ>Çâj? ²Õ?”¥?lkE>…Õ>]hê>¯`?JÝ­?E²?z™>ùe=ÿ;Ï>9€ý?_Y]?Q™}=Ž¥>ô: +>ü¸G>ì͹>ëª&>¿>±Ÿ}?CÈŸ?6“‚?3Ä{?:R[>¿Å˜>¡³Ë?ˆ³(?“ÏL?LG>í6r?(Š?Œw=‚J:'Îâ9«X<Ø>ëïb?/>ÌùÏ>»B>°Ek>¥;â<×8‹?5 €?4å?>}Âû>D*?šm?"ä³>ö|>î8a<òxÅ?PïØ?h˜?n{…?n(Î>ÿÉf?<’<$ ;0öp?´ÇÝ?§z”>îâ­>ê>S$M>ƒ<˜?#ä¹?/yk@1E@>²Ææ>ß +)?oc?O w>=ÓÊ?xît?wê$?Yü/?(f> dz>‘½?&óå?ʹ>>þˆ—>ðÑ?N¼–?»ÓÔ?n Z>4Å>ÝÍ>€\â?”‡é@¿?µ#?2.7>ÅÆö>)w>3>5Få>vFÌ>x¦=‘]Ý>b‚é>©=ý>¶e˜>Ãs>hè=åƒÍ?MKÃ?q"Ø?q÷ë?wÃF?Üïzc>ÍO>q_ ?šŒ0?‘€v?/&Œ?P_>Ø ?U¯#?|2ê?µ--?£ýÌ?p(?$ùk<Æ-¨=¯‚P=ô7À?Uº?˜¯³?B$‚>§ñ?Э?0DÈ?|Å>ñÛV?-¨½?F¤ ?6Â4?>ôD?*™S??ž>Ý:¬AÍ>¼Ëo?ÓB?Vf±?`P«?Àà¤?Ãqë?¤–t?Ÿ` >ÙÌh>ç‹?áE?ß[?±1ÿ?¾:ü?Ó»z?½²?P·?H¢P>òL>òQ¾>ðöc?8Fð?¨Õ|?”´c?rd¯?W™?#£Ÿ?sW? F©?q6?ºÿ%?Zú»>×ñ?ŠŠ?ÕT9?„x?ri?,†—>þ¼?” +Ë?¶gµ?…Œ?e|l?oX˜?r­S?­•s?¶ ·?“®ˆ?“qò?´»0?¶?c›?¬?rÕ?a«ñ>@ß3>?ξ>òâË>ñûç>òxÿ>º0Á>¶Ä ?œQP?‡!ó?U +Â?\©œ?s¦?@"¾>óE?Mª6?”b…?4–è>¡d>Ó”>ó4Š?œÓ?¿l?"A?z¹?NŠ@?sU3?pM?N}? €Ú?°l?Ü%?j=š~Û>z_%>sÎ?¸9Â?À*T>óš >ùÞ?g¿?1mÇ?×íç?й»?z1Ò?‡'P?¶Ôô?‰½>e¸?KÖ³?RÊÀ?sëò?4+>œ}ª?`Ÿ?Go?è*>ô ·?!½M?I §?2w??—o€?Ác?Ùª?t=d?ræï?tI®?s¹?nßd? Œ/>ô`)>Ìâ{>»æî?¦þ~?¥Jñ?Tp•?b´š?²Ãä?²G?=ÿÕ?L!É?Œ¤?”ßp?§S‘?•'?¦¯?#¥?juE?%3-;J·?)?³íÏ?¯š6?°ý1?Æb?ÜÇ=?¾À/?®Ïy?ÎÖ|?×1?[E?F»Ë?­Žš?Ó ?’¸?u?TNì??Ï>Ù@§>ÄÉq?c/?u-Ã?e:Ì?nH’>ûfœ>û—a?oHé?x¤ö?î«6?Ôy.>Æ–>®t²>…Øl?Ê?¦-1?Š¶?uW?…o©?˜H™?€Õ?D ©?†Å(?º€?¹µ?¹ñ(?¯¿¨?¤ +¬?c!û?L‹>þò‚>õ^Ó?ç¼)@èÐ?¬+?„-Ä?L?›ŽØ?}!?uR:@l @°ý?Sƒ?ŸÐ?Ño ?ÌÔ?>õ?¥?ì??ƒI%?‚fÔ?I«Æ?ƒÄŸ?þ¾T?Ð#X>Â,ä? ç?d‹Ù?F^Ÿ?%v?,O–?tÚ3?>í>ôéP?ná?²³‰?æ @sä?ÞØf?ÅZ?ÏÙÿ?Ðù?ì†>TCò>‹I”>æËË>ôî?‡‘¶?œÎÞ?‘Œ?t;S?+¢‚?fˆ?!§™? ¼T?WÕ#?`ft?sáà?x[?ªò5?«›0?s¥Š?cÂ:>óç=?¾w?lP#?¸F?¶vn?Ê'”@Mž?ºs¶=òí)>ÉÜ?ráj?;¼A>—‰s>Èu9?W}?» >òh}?H@o?›l?‡z“?Tt?ü,>¥=]?-“Á?†Ç"?¨¥?qŒÕ?”ƒ?¬Ä²?v·÷?-p?§>õš•?δv@}å?–’ >ð•[?E’?p^ø?pD²?p(º>¼zl=¼™Ú?†¹À?ÂôT?*÷2>”#^>Ö×x>ïB$?°¶W?ßfy?¨-î?“ÊI?Vçf?/F ?+óL?()?7Ýq?CU?|ßÅ?‰*?ŽÃ?“üð? ß?¦ +—?€8ƒ?[q ?g˜×?l¸³?!¿>ìrã>ìO>ì)\>ì >ëã¼?žõ³?å Ã?¡ÏZ?VÆ)>òzÊ>B9.>Àuo? k$?>Ç?u?³Ðé@Ɇ?ü°¦?›³©?a {>‰%>ýÝÙ?x??™T>`•‡>öiá?±ðà?´š£?·<¬?²õçš?>éîB?u?ž~V?ãAV?æÈ}>ßè¦>c³?7d‰?X‡?»CÖ?ÙPP?¿‰?¯17?O^”>å!‘?.# >ä$V>ãóZ>ãË–?Ë?PÎ?`„É?ˇ¤?ÈêÃ?âŽ?âŸÖog?°'ö?ÖL4@ãH@#r•?ÑR?ƒO?Jó'>ç+h?‚¿?+Ÿo?9 Œ?P‘–?M:å?xü¸?~6²?Ë[‹?Í?‚?à=¼?ç?c?ÁÇ ?¶ +?§dà?›“‡?‡ÑÍ?^0@?|eb?Ÿ¢Í?Œ»´>Ë{H>Û­]?o‰?f)=Ó + @"D@\z?ù0î?b?dÒ¤?b+¶?€ˆÄ?©û{?¡ëa?FªF?SQ9?,šŸ?,ù >Ýá¿>§â{?rï?²‰“?­Q¹?£’?Œ±?»ð?j¥?/¦Ë?-á?®³,?Ægh?³¥’?¢¹‡?s? š$?uŽj?Ø}¼?¿Üy>0‘>'Ör?£âü?²t?L5? ®?3›'?W‡d?|n›?¡ò?Ÿ&?–|J?—j”?ëg?ôô?‡X_?? ?ƒ;°? å­?‘ú>?^$C?zS¬@œx@Ö¦@É^@¿º?ž|{?UÝÇ?µKB@”¯?üž’?Í ;?ËŽ?Ã%æ?¿íŒ?qš?UXj?´#Ž?Þ}í?É"Ñ?¹¹ˆ?¬˜Å?C’…?Iý?ÇF?ÃV˜?˜Á?Œ D?0lÅ>¬3%>þZ +?vô?ƒê?  ¸?ŸÎ?kU ?N1Ç?jMÙ?^Ò?–Vj?Õ(Ê?ÐG°?TŽB?T?©˜ì?³Ìœ?:.'>­oM?¶u?†M?œÑ +?Ô‡c?Ð5??X(w?Tˆ>)z?1ê‹?›{Õ?o«Œ>Ô•ª>ÕDP>ÕFW>Ôÿ?KGT?T¢¹?T¢¼?U@è?ƒ¨h?™ß&?|d¦>óÿ??„?¤$µ?¦?Ð?`öl?C‹a?K…‹?TÌÈ?–¿Ù?Ë¢’?¸ò?‚Í×?}Ó=ïM?‘’ +?Áž‹?ˆˆa?*t?'ßÚ?G+Ä?WåF?(ç°?"«á?Æå?áh?5•s?Tà8?šÄ ?Ê >?­±Ä?rYA?vD?z3;?~5?aæP?T®T?+^>Ôœj? üG?@W?VÌ?— c?—Œ®? þc>þ1î>Éò8>Ç#~?†d¡?ÐFO?ÁÛ[?žÊ}?“jÌ>Ô$è>Ól3>ÓyL>Öa²?2¸ ?X?WÚg?Rœï?-ô–>¤?Ž>ÅPJ?Uö¼?QÄ”??p?^ê‰?œµ^?‚ó +>Ð}/>ÉS>ˆæQ>–éÐ>Ð2>Ï'û?IxZ?šïž?—²`?«S?ÛÝ?NX?Lé0?—)k?®5?¾Èõ?ÒW‚?ÁŒÛ?*?)Ù?©â­?Ñi?„ýB<×Ș?¦/?#h?@êŠ?EiØ?Uê?…*Û?†Œa> ?é<ÏÆä?V?³J? <[ŽI>÷pð?;˜4?Gºt?…¥E?‚*M>¬íÜ=¥Ðœ>²÷>¸q>¶(Ó?5T˜?gA#?X¥©>¹ÿ®>±j?Üm?ƒn?‚A>¶–<Èפ>»˜ô>¸d^>©y>Šíp?:Ú?4C>ö³Á>œK`>šÀ5>À6>bJ>‚¶”>:Øð>Œ?>ÎH>†Ž>ga>j¤L>n®>‡I\>…£`>ƒ¨W>¥>"õ>zðv>v©v>rPÝ>mÒ^>iN&>dk>)8ö=öé‚v¤=²dO=á®=ÅÔ¯>öo>ø(=>úk€>´½œYíZ?ª>‹{*<©ûÀ>‚‰>êz?8/? +”ð>^‡—?¦ä?UáZ>‚>Ž>©>S¯~>‚|7>”‘Ê>Xj§> •C?c»?;ß>Œ]Ë=×H>$a?Ä­?bÈŸ>Í„J>úî?nûp>íñí>c·>îs_?&5×?\ð?BËÑ?)*N>ìT<>×>Sž>›zn>C›Þ>WÙÑ?F}6?@?c.>Èq8> ñ´>+¿­>¸ðº>í÷?[ÿ¤?`Þ?e#c?Iˆ¦9™Ù=Úôw?g¢E?Tœ->ìé#>Ý´=­µ¢=Ô}Ï=ûŠ¾>íp>šd3>zB>†€a>wÅú?7áý?G_×?&çm? rØ?G ?Mšs>òß³>í9‘>Λë>Ø,Á?¤ès?±]?s´…?iÉÜ>ì_R>Ôj~?÷ìY?ú? ‘r>íµJ>íÀ>íË>Žo’>x˜¯?ŽdÄ?™ 3?Š½>îg>‘(>a&>»çá>Íù<ŠÇ:ªKâ3€?­Ú@?®}>ò2†>í ?Wv‘=¢øc>?[b?‹?M÷P>)×?b(?F ? #ß?m?·:? ‹p>—>8º>d7 >+cl=×¾>¥Þ>ÈnÙ>ð@Ò>›Aä=@2Æ=Ò;¨³?,žŽ?®û¯?@¸>¥7A?'zï?S+í>«>/wþ>¼¹?UÄO?‰ö¦>¼h>ºJ>Í8Ù>wë->Dê?‘js?´RY?;°?q4«?bÞ? u?<;œ?RÖ?Mª ?E+¤? €@? .?˜Y?• A?EGÂ?1ã=÷m>jG>ÎW?([f?³Ç?’¦>òdz?ë0?Yso?&LÖ>¾Ï?pc?FD?'u>‰xa>ø‡¸?0Xs?)°(?#?p£?˜Íž>öG=u‡-?{í¤?´}@?6_ù>ï=õO=i À?Nœû?r/¸?cA?tݪ?\ä?fH8?5·E?û>ºYð>¸e]?]L?oŒÒ@u?åü=X T=âo>òkÉ>òrp>òt‰?$ýc?„¼&?’°?£Ë‚?½h?rd?³½?î²j?®(J?ršx?àö>¯>üÉž?L à?Y(Á?fAØ?¢ãœ?¶ ¹?>?D? p©? =?u4?÷¯?x˜?IÚ?[„*?rVÄ?râ ?€ÁÔ?ˆöÍ?¶4Ç?¯‹ ?<‡ë?K¬[?d¢'?X õ>óA>¿Æø;Ý,p>ŸÄ>Ö’J?u?‡P?K'¬>žÌ®>ó‘é?-÷?Éß>ó@w?@—‘?Ške?‰ =ûû>¤e7>óY‡?†€?³Jâ?߆±?óo?ÅЧ?²5k?.Q>óƒ‹?G¯?R÷?нZ?ÔÕI?aä-??-—?ñ?‰å€?€S?‹iJ?á™4?&zJ?¶æc?™ž6??°t>Ñ?V+?Ö›ö?žóì?#J‰?Tù?úÑ?‰–ì?š‚U?Tǹ>ô.o>ô5m>ô9˜?W”?…9ì?¹Ø!?ß ´?—&e?t H?lÁ>úà2?Ì5?åÂÖ?%þ2>ô'?M6¯?OW?ÈÀÿ?ÎçK?>hÑ?;Ñÿ?t¥á?xýw?\c?^vº>ôº‚?ýÂ?tÅ’?y# ?€ƒþ?UÆÚ>÷¸?&Mf?rÎ?¿UG@M÷@‘?éÃè?îFÀ?õP?ÐÔ>¯Ô3?ŠûÐ?̈Æ?Á£é?·ÖŸ?¾g ?Æ|’?|‘X?Q ì?T˜?žAÞ>zÞê=s|x?`êà?uAÇ= xõ;ý8>õæ£>=¿2v>>±:>¾»¹>5¢=é¶d>×÷‘?Àñ\?Ƈæ?Õh?¦Xc?Y#>?Lœ¨?#&Ñ>ùv>¸.‡>Æ:Œ>¦ÇÝ>ÆŽc>õlá?&Þ?ºe:?H³>õkà?^ô·?ˆ5?}¦˜?uh ?׉P?çzL?=`á?çù?ì?ýÍÁ>ŸN>”è'?˜åB?•îh?/žä?8¿t?~0?aŽ4?Rk?'jž?[„Š?,>nX>f€À>õ?'“B?tÌð?@–´>÷žw?¬¸g@! ?­?ËŒ?¶ ++@>T?„&?B=i?Ê+?¦ÑG?L¼/? +³8?]ì?t +æ?E?j??ùK?D?H×aÈ>ë8s?2Ý?f-«:º:¹=ëJ?s®Ò?•±@BÚ@“ñ?ã—@?ÖFª?¶}s?¤ÿÈ?wCÙ?Q®_>¤ÐM>Ö2³?(7 ?”ë>ò»>ö|Û>íÓŽ?"—C?a Å?dëd?rK—?Œd?£*?UW>±Ã™>€Â£>2q}?Œ‡?qœ +?kEƒ?i˜¤?àô½@V×?¾‘?qÙ?êiÁ@‡?µN?dð©?&a¬? +ÛŽ>˜~®>Lv?M(x?ƒŒ,?£Ç^?³Ø›?¢B?” æ?&ëv>ïWZ?‹‰Å?±Ä2?jcH?8÷p?Án? ?Š{l?ŸùË?._G>î"Ë?…&?¤}Š?X?>?!¿_?TÕ?md]?;ý‘?ÿ¡?R[?ozp?|>ì‘R>ìoL>ìI?ÈK@ z´?›[·?M?ƒà#?§}?³zM?¹Mò?º–j?¼±F?u¤Ý>ê‘C?®±@é@Ûò?Ñï~?£½ê?3î?kî?¯†?“g•?ÝU?'•W?hÀ?_©À?@Ó?H¿ð?\Q?Sî†?K‘€?E37?7?|U?É¥¸?Ï”÷?°r‡?¬ÿ?že>ð'¨>÷‚ª>ç®3?ÝÈ@ó?‹÷>åZÙ?pâr?¨&o?ˆžŽ?Kþš?tŸ©?™ß–?µŠ?ð1]?í±/?ó€ +?çt`?º±Œ?¶?úº?µö>Ÿ*>‰€?œÝZ?°ä1?õ¯€@ +É ?›x?‰X®?‡¥?‰-X?M¹J>àã6?%Î¥?”ªë?‰]?ç?Æß?¶ø±?µ±?ŒˆS?†Ëú? ^>ß!1?:Lþ?^Ì?^¢[?^€K?X»=?T–î?!Ìå;«ë>›ì4@&-t@%÷?ª’Ë?¢Ä)>©ñ>M†è?oÒ¢? ‹?&Kd=ñŠt? hñ?¤ò[?¡F8?™?ˆß??w?=9È?æ-Ä?òâ‚?H|?€Ž ?]ƒp?B[Q?Y&?iÚ¼?‚¡ü?Ä+í?¿W¡?Z=“?Tk›?–ìì?¢üç?€h]?YN?§%Û?ìG?Á +y?„Z?õ?wƒÙ?u`?’”ì?‘†v?Žmt?‹Wx?“fÏ?¡Ä_?’I‘?W~Õ?Uãô?Ntâ?P[ð>dßE=¡>Q?_[Á?¡(R?ºm¾?Ö·o?û5;«‡=â‘Ž?¤Œ&?¦¬ø?ŸA#?›¾;?†{º?4¬?X)?Æ?^õ?ÕÓ®?Óù^?[¡.?U¬è?¨ïM?¿KŽ?ÛhÐ?çÞE?›•I>KÏ>KØ?UZ°?^ëÚ?¡pÛ?ŸãI>Í…>C ©>Õq?&l?b\X?id¹?ŠZí?‹M\?wGW?uqç?n†.?MÆK?,o°?Lþ?%w?!÷ê?%ûá?¯³‰?³>I?5ÉQ>Ôˆ?~kù?ÔÌ?¼•x?\æÝ?SõÒ=„<á§?*€?TÌö?ôŽ>ÔÔw?èÊ?T­'?qc¦?Ñ3P?Îóç?c:Ý?TßZ?â ?†?XPâ?Ž?m_Û?€«?7†?UÉG?Tû‹?Tþ?Tÿø?ZV'?tñÙ?‘eÁ?ŸÈ‘?$E?;G>ó ?fca?{hq?hOÑ?UÂ?Z?OZ?ŠÒˆ?ÎFG?¾™?ŠŒ?Œl?”¿A?.?º¸’?Ù^¢?‹Ò˜>Õ¿>ÀÊd>£ª >² +J?+9ñ?/”­?'ùR?Bv?5þ? +*¤?¥>?Goü?eº?ž­?˜T<é ^>ªÞ>Ô0>Ô[ì>ÚNÍ?;]‰?™&Z?Ö=ظ=^åÖ?-?–y˜?kIR?RÖi?T}>¢ßV>Ù¼£?R2c?RV?4œ?/ºç?&¦ ?4}I?9é?&Òæ?DQp?hÅ~?Uïá?eQ?ã?væ?'ª/?GÞ ?^Ï/?dåZ?MªC?MOŽ?£?«Û?Í×Z?êzP?¬Õ±>šp+>º²z?\,™?[¥.>Žþ=\Ü =ŽlM=š_ú=ÐSž?Aü‡?FI>~Ý9Ùƒ>oLØ?C¶(?CV?Bg.?BƒŸ?o:»?‰%‰?{V]>ÑûÕ>ÓRÌ>á_‚>öSÌ?" ’?—ð?‘ÈÃ?*Â>¸:è>·K`? %Ð?u?óÐ>³`Å>´ÿI?=±W?Uç¤?>| >/mo>ÿÄí?Qô»?N;K>4]>*2=újÐ?Gøò?s’Æ?j>’}±>gyy>†°?+¤?7Óf?<‰Ñ>Êbw>©È>ŸÜT=ÛY.=vf<Ð5½>jC>Š7ˆ>ˆO­>†dC>„pÉ>‚nÄ>y=þ°e<=e^<}Z0<¦çV<̘r:̶`<à5´=Ü=ø8k=èÞ–=Ùäí=±(U<ÓÛÒ<ö9à=‰¯”==Ò=‡=œ³á>­>RŒC>0> »=Ú6=¹òp= ]†=ˆy‰=dÒT=/9O<ƒP;<[×;`¤;³'à;ÅÜÀ;³€;†l@;Û8(»²€»\§»{; »NN º“b ºf£¼)6¼‘{)¼ö8l½7¬Ø½~þS½¨ÍC½ß!?Ï´?@$?ä?~é">þ Œ>ç†â>º…§?Á@-?„rÕ;éE@<ºãP>[Íì>êì>ò‰>ü†A>‰¿“=ŒË>…!>Î’t>É£>Ä£ç>ƒ?ç?AÐm>ØÙ‰>‚Èk=¨ù¢?1ß/?ƒ^?€>¢È>£î>­¬î?K—®?‹ÿ>üLÜ=¢·=? ª?bêÿ?,!>>ü6>f: •>{ž>ò‰n>í)¢>ܨf>â9B>î©O>©·ê>C÷â>¥, >î7>Ðæ>)@>ä.>Bjd>ðž>[þ? <È>íYF>3{>ÒU ?Ž%?€]è?½¸>åª=­T> 7>í$R>ì88>ì:2>í½>éæH>äÈ ?vÜ>ñŽê=£÷~>"ï?0µ>?&î?É? ²2>Gˆº>[ˆç>o¤!>…Ü÷>ƒ>¯™`?FéJ?Kuí>µŸM>¿ÒŸ>ÊV&>Ôä;ã-< ¶ >ñà©?Ÿµ>îÍË>íŸ2? I?#g›>õsZ>íÊ<>O¾Æ>[’â?e„s?`¤Ó??‹Ë¤? +?:›?SVª?[“·=öw=cxá9GÔ9uÝ@>êNÉ>ßù§>g´>cr§>î³>íiÇ>¦>ƒ>¨Vj?Uœ?A®›?3È›?0><¤>{óÅ?dõ?‘]k?X€?N²ð>ÚW¼?*ÊÍ?ï\"?Ï9>æö%?‰?o¯é?Š¾©?Ãäp?s7>'?¨>‡Ø$>ïù>ÉÅ>SÅÀ=ú^¶>š€>¥Aþ>¯É>ðQ +>ð^Á>ðg?g®®?²r9?9Ã@>$ÇT=Ó_Þ>¯ g? ˆ?r}#?‡k?Mø ?/-?ŽC ?²fº?tz>déO?›Ä?Ò¤?¶@?²n=?! +j>õí?c£?qI¢?^‚M?VMà?»f?´õ©?‚S?˜õd?qÀ?uíÜ?r;?€¡k>­w>ºÆ¤>ȧ>¬ì<ïfÃ>}æ?qÁã?qoP?hÏ +?h?È?qÛ?BwÆ>ñèÂ>ñëç>ñòQ?6Ý8?n9Ö?ƒ÷?¦£?ˆ·?r?Ã>Ììm>èí°>ò'«?O«x?rTP?zÂ>ò=¹>ÔJù>Àèë?ðŸ?-š>a¯î>Mhµ?•?r?‘-Ö?ƒe?‰ßÏ?rm>?~D ?Ãà¸?º° >Þp\? ó²?rŠE?†Ë®?¯j?Š·Ó>ò˜?”„?I–?0m ?U°ó?KØÚ?4¹í?·á@o?ÎF1?r¿Ö?= ª?ôï>yÕ‚=[<®q’?×^^@aê@ ÍÛ@îË?ˆÈ?R +û?KŽ¼?E„?¿j?š·ô? ¬û?KO?P†B?HÈí?§"‡?œ§á> 0e>û>üŒ€>ó„…>ó1º?-à?¥™ö?­:~?ÏRò?ËŠ?Îè?šl¶?›?ø?5Yº?JÁ>ój…?a\Ÿ?“x?)Õô>ÇÁ?gÍ?(G?PçÉ?sŽ.?ÏüÅ?ó—_?f†O?|æ>Tík=õ‘Û? bþ?$ã¼?ØÎ?î!^?á&?›¡g?ªü\?µ.Y?¶åj?´66?ŸÍ?Ÿ*ž?sïë?HT@;$¡º=ß»†>ÿ¬S?$èË?e+~?·v?œ@É?˜Žì? Ï|?Sߦ>J^ë?Ieg?·-‹?‰Þc?DQ÷?Ká?B®?Ip>ô^?™òh?ÄK3>èŒH;Í$6>¹Lá>÷ 0?X C?hX?ˆ£g?’-W?íúØ?ë6z?.Äh?(ú>?b~?o€÷?t»1?ij”?¦x??E?¾; ?®E?²¬?'ö‘?tä¶?ÔÂ?¹K:?¢`#?tÅO?¨È?ëLõ?©W?Lòª?‚§À?™ÿ?‡óS?yIÒ?pÉW?PÉË?8ÿ¾?:EN?Š¾˜?ŸÅ?”Áß?}¹?Mz±?1 c?Æ»? a¯>â¤í>è·c?pî[?vb]?¶£?©H<>õe>ÚâÄ=÷õo?7G5?-"y?#½>áb<>Œ^5?ucö?¥QC?å»Í?§ˆè>øóZ?O<ò?š\¸?+Ç’>.b!?€Ÿ ?Ýmý?~v>ú%Š@£Œ@8 }?¼Û„?mXp?£²?¯C{?ƒ˜Ñ?uyí?–t$?Ÿ`'>}±7>8"7?[1Ù?iðç?9e?=Úõ?•f÷?ëÕ?uZ‹?ém?õP×?ä=h?¡—c?ª?>WÅ?A'û?m@,?GM>õÜj>L°<"P`>w‚>õ!?Oè²?–”j?È=Ûqò?‹?f°^?¼¼ç?Ø©u?”™o?t¿N?½]>öÇð?üû?·qè>ú@Ç>œñT>¥A¸>­‹#?fäC?tSb?ü_–@µ ?h?ë?c· >K÷>A ?óò»?æNµ?qê…?6@Â?øÏó?<_?1<™>Ä ?{T?:q?,çª>ó>Ç>ó.>ó¶>ó +@>òûº> z>| Î? t1?r°û?žõ2?˃&?¶ñ?œð³?©$¡?±Ç?£çB? Œû?‡b¸?d4m?wÂ?…¢Á?2>ò°?†å¨?µ%M?1ç?q!ä?ʸM?÷¤š@@ž@'r?85o=ÚªR=O?j?´_?˜×Ê?Ó?½œ?Îÿ ?‘­?lóý?ž'>ï7c?‘?$³?dkÕ?h¾?¿Qg?ÞqÝ?b\À?Å¿?dã[?€›#?¤u”?²PÁ?€É?`†ë?ñpî@?Õæw?±ºÐ?ˆýs?i*ã?eö +?bÄË?¢‡K?ÀØD?¬ Ñ?›)¥?^yw?-:¡?ß@@ª™?Íœò?kþ?3->êºÌ?RO? ¿‰?Äêì?ê#v?ÅÕM?(D?‘¼?–Ì?”c?ƒïú?’Í?¬t?’\£?Ï?;8þ?Á#÷?ÈQÝ?ݲ9?Û^ ?­ÃŽ?«² >ÔQ>ÙK"?£ÆÔ?«•?slW?fÉ@dw@,o?®*?v¿¡?—øù?¡cæ?¦ÚÛ?«ó‹?¦ôË?¡+$?¤üÁ?«w÷?¥é¡? ßª?¤Šà?¨0Ù?¥"7?†[/?‰fr?‡SÇ?‚s?mäñ?i¬?¼HÁ?Ææt?…¶"?nÆc?±€ƒ?Ë(þ?«T?”æ.?xÞV?7ë?B—-?`à~?YZ³?Fi ?`Œ?ÊÎd?ÌÀŠ?Æ̪?Ê 2?!kÔ>óž?D”?_?cφ?`Ú>è‹·>âÒ_?¦j¨?¯Ó¡?â¶?àå?¦1Ç?¦¤?PlT?>Á$?`‘Õ?pi ?Ó)@—_?¿”Ô?xvÿ?•¢#?ËÇ?Î\i?Ûë?×ñg?Þ%\?åð?YA¹?Ç—?Ä>Úȃ?}n?&ºÍ?lв?Æ°ú?À}¦?l ì?p¬?¶7V?¶´õ?{¨?YoÖ?¶@3?ðîð?¹Çw?>‹?mÙÄ?Äu?¾ñ–?èö„?î1@GW@ A?Â^Š?™û/?ˆë²?[á‡?@0>×-O?fõ@;‡ƒ@ÄðP>õ»Ç?c³Ó?e—V?gF?i\•?‘•?•rÂ?¦ÂÍ?®[É?šŸ?‰™+?ê? nÐ?)‚?œ¢? k©?½Hp?Ìr?—ì‡?0ºá>àé×>%Èp?ÓA‡?ÑM>º…«>5!>ánt?í?^æ«?“$ú?oJk?û;?m´? `i?to?’J}?±5?%3<ìã=ð>N?÷Õ?ú¬ ? 2>Çëå?›«¯?Ñ"?»·‡?ŸÉñ?ŸËC?ŸËJ?›¸Ù>ÜÛ +>Øï?ˆŽ0?šsÐ?·§?ËÚª?»#ˆ?¦^§?žæÚ?Uø?U¢Î?Šb¬?‰g?q*?o×Ï?YK¥?6›]?;¥Û?U0z?U4"?U7&?U6æ>|Ýt>0ô!?eˆ?JñÈ?Wu´?UC?L)K???²9?$¤?(–D?’›ç?Ÿ÷Ü?Ò1N?ø2{?Ì!?vo?€¢Ø?¸o +?¹•+?G®«?>]š?Ï>Õ1Õ>¶µd>m<ï>7s>«>†$,?ÊÕÓ?Íòû?Ó¯?Ô…~>þ³}>Ð ?T¬–?TƒÌ?Q†Ö?Eßê>Õ +V>ÔSw?<×?H€Ö?¦?Ì?Õ˜ò?×JÝ?°†›?Xã?cp?TßÏ?S›?ˆ>ÒÅž?F?ŠÕ>?hM'?l?'ÆÒ?VÌ?‰T?€è?‚½?ŒÊì? tU?é^>ð¢Ò?-Å>¤%W>–>ó4R?Ÿ?Oºs?„Ñ?gWä?4”?7´y?å0>ñ/>HMÃ=cÔ2>ö×½?œÿ#?•Gà>èº{>Ø_ËÏ>ÄE> dè=èØ=V^0=‹?T=¯z–>Û€>ûÃË>¡ŒS=”c€=£Ù =³4)=Âjº>e£Î>à~`?’(?#šw?À+? +×?YK? žá>¶X!>´ É>÷ï?2•ð?1Œ§?ƒo>ùŒŠ?3?}Í?€ðc?S¨®>ÞÁË>Ùnh>°+Á>¥«¯>¤V>Ø›=kdq=Lð =.Õ·="ð=% >ìRŒ?ôN?†?¾ß?¿Ç? ý>Ñ71>ŽŽ>ŒÆ >Lƒ†<ªÉ˜<[š<ºàõ<µÅÈ=R¶¾>}9>º|>†(>"›>‚=Å>¡–œ>œªz>–iv>+f>vä!>0}>[n>=ÚYY=aÉ>sà>ƒå>‹îT>Š*>‡ä6>…Ú>kR=>$3Í=Ó_ð=n\i<æs;¯4฾°ºÖº¸r».Š»AÀ»y €ºÇ ¼Cý[½g$ª½³øß¾¾/v¾c¹/?ñÎï@+ho?iç°?°Í=%0 ;Œm0=ë¨=wØ<¡˜è=^´=~FØ=žR=ò>êA?_ü +?(¼ü>ù¢ö>Pëª>KÂ.>¥ÁÂ> š¢Š>”ú7>=%? áÍ?3ž£?Ç>ô²>*† >€È(>½…‚?jh»? åø?z0Ä?Oâž>è:>]”ž=žÑ>¤e]?Pi>ú4q>ðy ?;úB?pÂ?oë‹?mY»>â±_=üÐ=E_¬=Š>äñ˜?W0>æ~è>N“>îiŠ>±¬G>?]Ï>dÚ>{£õ>j½¸>Y³¢>Ï z?[*‡?7±;>£sé>¬:M>µÛ>ûíÂ?Z/B?Bw^>Ù’>â=µ>ë •>¿tk;A <  =sz=ðq>í.z>ÍÛF<õ˜x>šl>Ë;û?m/L?_Ò>p‘Ü>\v$>H<+>F¯­?ƒÑ?$Ë(>²,£>·Ö9dâs:9cÉ:«O|>å`¢>Û1Q=nÖl=Ÿd>ëõ>íµï;Ýo?;ŠS?8é>yÜ”>[??MŠ‹?bbñ?²(‹?²™(?U”?YpX>ïç>ï +X?n6?l€ü9°À±9*Ö@=&6v=~ð;m¨>Í>0Þi>îÞï +>æ‡Ó>¤L¯>·£y>ïD¸>øßè?ÁÄ>ç=~)qC?sp?y Š?atm?JW«?Š>?~ÐÇ@ ?ç~%?LœÏ?Ç„>€ÉK>̬X?#H>üÓ{>r^Á?!e²?«sK?€g…>ùñ4>ðÓ’>ðy*?‘± ?ëÁ?¿He?ñ?¸?ѹ?ŠäÜ???‘d°?·4Œ?~\?DJ ?+>æ? ƒ?iÐü?Ð>©¿h=‚œ>Å'>ñ~Ç?žûª?ª1?{J‘?q_f?£é?çÖ?¢v?ªcÃ?jÜ?qxÊ? ¡ç?.'?µ<é?¾i=¿µQ=hcè=ÜÚÂ>ñÎ`>òv>ý„$?Hùz?«ÜÐ?kX>îÀ>¼ûŠ>ò>µ,R>l¥N?pX¿?ÍÚŠ?©AS?’fÚ?zàæ?\P >µƒ?=ÄM>¦·z>òFK?Q¥¼?rPn>ƒÎ¼=«^N>Ñ F>òfì>òjI>òq?y>ïY†?ž²O?ªù´>¢ºû>¾ÿ?Wñw?F ;'4è;_Ë€>•;Õ?´e?–ðÄ?MÍ?R­Ô?˜Y”? T>?²fì?Œ…¹?:²?4¥?-‹Õ?G;?w`‚?Z[˜??0Æ?LSf?Ys#?"øÓ>ôGý?ìw?°Ô5?í·>¦¨º?†][?¦˜>ð!C>ªÓ7?!Çð?1??•=¢?£À‚>^äh>9‚M?¶jà?±Y^?^Š¬?dú2?kjŒ?qšm?sR…?X‘>óZ-?T'­?èò?ê.?óki?ÖÒÕ?¨ +æ?zÈ=>ëó;?¤µ?Abç?5çç?V„?ÙÂñ@*3À?—ÿ=Ç »?›¬)?òæ²?É¿*?µH%?NO?(''? ö>óÌ{=¤Ê?-ÏÙ??b²?/Z?BH?tQ!?uU?n£¥?a<ó?œK¦?—zx?Ÿµ?"?y,m?Yñº>òcõ>¯ýŒ=CÝö=ÂÈ>A­Æ>ÐOÎ?Bh?Ú>Àï?5µ8?y5L?”±Ø?·IM?g½G>ôo«?yyJ?©Î‰?c6¤?$5?ÛW^@ Ú?ve>ô:½=ãÇü=!âØ?Â!^?ßÐ>½Ä>„?„Šl?–bì?Ï*4?¼ª>ôÔV?“?¬, ?›Ùª?è?è>ôñF?&Þ#?’áù?‰=Ý?k­?¤‹ê?õ¨?Å?ub?°SÉ?õ"J?›?h>õ)Ñ? ¨™?# »?:Šá?B¥?ZÙ?v‰ñ?‹—›?ˆX¼?ŒŸD?Ž\û?¡5e?©šG?¶2Ö?¸ +?’Ë%?†}°=˜^;•MÃ?¶˜o?¶%6?¸˜?±o‡?a÷À?YEˆ?9úÉ? >ŸÆ”?(”?ÃtÂ?„Ä-=£3¯>R\@?ðÜ?¶?¡ ?¸.ò?×JT?õ“£?¬<:?hŠÿ>Ô4¬=7Ê?"5Ñ?u‘c>¨¿&>0 Î>íÅÃ? ·Ü?t%…?ˆp?̦?Ñ‘4@ÏK@ ?gŸ?J«v?9öý?0¼8? †¾?IQ@ï%@î?uj{?ð6?Ûþ?ïl@²:@óˆ@0¸?ØŠÓ>õAc?]ƒ}?¶Âø?Ë2?átu?Á†]?¥* ?Œ,S?u m?·Ð•?×èÔ?¥Ë(?ŠëK?û„>@ „?Ä3C?˜¦r>à©‚>Oóø?eˆþ?‹ó>Új%>ŒŒ\>³õí> Æ ?iŸB?t`I>øj>õŒ*?|F?KÍ@”œ@H$?·Â@?¨‚9?nM?èá??«£?<Íf>ó²h? ¼Å?„Ô-?pTí?Jgº?-óõ>óN?*4??{Ð?…Èš?’á+?%&Ñ?ßß?£?¬ k?¾¢Ÿ?Ä,Ö?ɯÐ@™Ö@&åi?¸–”>ò%>ûg>üb?ñ8õ@5QÊ?ù×:?´?Ñ?S8*?˜?Éx?¦{?¹·°?ñÏ?ÙË?Ñ©?›NA?|þL?8J"?¹?yg?ëÅ?]>᜗?Qq×?vÊ?TJh?Q=?˜À>ïRZ?—PM?®Ž±@ â†@”6?è1°?Ê‚E?Šbè?n_„?Ÿ?­HÜ?´)$?´„Ó>»Ÿ?‚g ?²QC?²tR?±ÒÒ?®jè?«‹?©æp?¨F?­áJ?±8?“¼B?…6…?cd]?GeL?´Èr?ð?ÈWÁ?¢÷â?Œc4?ti•?OzÞ?.ß?k±?œ¿œ?’+? ?|–|?i·)?M='? ?„ã@W?Þk ?Q¶Ë?D,?ÅB?#û}?¨&y?©èe?­éA?¥À;ˆ’e9ã«Ø>äÀ«>çì?^ˆ‡?fÅÍ?­Qï?ºh5?‚°:?f$œ>É€>iªÚ?™RÎ?Ù1#?׿?ÖM&?˜˜?8=?.®?ƒ?4 +ˆ?d6 ?dQ?cá?q~À?¨y]?©ÍÇ?fÂ?‰9?Ø®é?Ø¢s?#>âo?œY?»ô:?¸Ù?°¨h?¹¸\?Ä'ñ?™è?JèH?=»´?lu?’t?`„ü?XÑ2>à3†>à ½?V:î?^Æ?_’„?_n>?â´ž@ j ?™¯ý>ÖýM?Ð?fî?OhŽ?Ég?6Yý?¦p?¥]B? c?¬è?ŒÞÇ?—ºÃ?£KA?¯¿Z?¹¿ý?·¨3?à¸@£)@ _»?òÑ[?ë¾Û?†È“?‡Äƒ?1ö?#P‚>¤#â>q +>áRÝ?c?!„5?Z¡?AI)>Ú`9>ñš˜?¹Ø?»ÖU?ž¿?“èw?¥?®U?T{8>µôQ?xf&@ãÏ@àï>Øç>Ùvz?Î ?Öñ,?=?Ô>ØŽÐ?fìM?¢(º?Kr:~ÿ>o'6?©ä ?­Ô ?±Â«?µ«Ö?‡ «?sYD?^å?E\?†dø?Á>?¨ON?OÌ?Æz?o¸Û?vxg?¤“‰?²Èý?¡O?æ?tpr?*÷‘?/Ç ?‚Ð ?ƒÀŠ?TJ?Ugå?¦Õ?‡‹Ž?["? ++É?2![?·B?·Kh>Ù>ÕÇ,?%¨‡?5Rd?Áˆ³@Â?ºës>Ä«¯?™ö?³/ç?ª=?2:¿?&)Å> ï>ˆ°ì>ñ»H?íy?e`{?E'L8£¥>½³>ÕZn?2 ð?V})?Xl?Z\Q?‘)r?øØ÷?öóS@°@ö¨?¾”ª?©Nä?a²Î?®þ?›l@Z?äô?'I–?-fr?±ë_?±<‘?@·Ý?ÇA?8п·Ë? K6?‰Gš?„9B>Ûò>Õsž?27 ?UvZ?;ý?“ÉV?p;‹>Õ}Œ>óñU?¯D.?¯¬?¥Òø?¬Âž? Q?”†?Š?h—7?KÚ7>ÕlÎ>Õdš>ÕbB>Õa?¹mà?Ú]ç?¹ƒŸ? õý?q,Õ>Õ/ ? šn?ŸÕï?ŸÔ“R>êuø?TKÅ?T_Ó?¢“8?«ò¸?™™â?–¡?¸6Ú?Äçè?°`Z?‹Ÿž?ˆ˜ö?,Cf?&÷P?7=?Zœ>ËxT>P¸ˆ?¢=?¡<ˆ?¢>è?‡> ?‡Öø?9ïé?*Ë!>ôÙ>‡>ÕiC?Oí%?J·c?6b?7ÔŠ?§P ?»uÏ?]«€>°K!?Dõ?b$°?[·Ñ>ü©>å#‹?œÓ?Ëf™?¸®?—µW?“âÓ?KMï?HÞþ?>ÐãÑ?/ö`?Œ‰ÿ?Š½?‚H?{´i?Ó¯>ž“V>ö›Ç?v²÷?qæ¯?Œ!§?‡¥Ž?I°>ýð>î)ü>onÒ>aó“>âšÂ?;8ä?:fÎ?9Ý?8 Ý?WAÌ?V3S?O9†?qÏa?x¨?X;‰?1ÓÅ?0¾ñ?<ˆg?Vö?Wÿw?!Ù6?Q±?‚$>ªRB>§`8>¦?>¤Å>£k=>›}>›üË>ž®>ô>œI¾>šÀï?&7ò?cWn?_™ð?[Ž>’·R>‘=>R*<Kd=´§‚>6ê>-mÅ>$âé>'_â>lçŠ>jæ>fkÒ>n#¢>žà >¡àƒ> ® >Ÿ\9>Þ0>œ&>šJ.>™C—>§m>ZV¼=ÖÁ=±»À=œƒ¾=H¢w9%>µ:/@;6hp9Ýrˆ»—½@&± +@‚i?³)é?ÕË=‘]B=…ÿ¬>ôþí>¾Šè=þÎ>ã/!>”ö=ëæ”>{‘&>Eƒ’>Ðü=…ß&>ŽTl>øÑ>÷š?>÷-¨>öÇî>öaA>¨ìÝ>z. >‚Ï>ˆ /=Í?5»#?Ž®?†@> Ì‘>°=°>ò ?&?Gò> ß»?·ð?bM:?%Œ·>?;Ÿé?pK›>橨=}t`="è>Ž02?}‰>òÅ»> õH?Œý??Ñ>Ücî>:.ì>î2i>É7µ>1U>€&î>Ö°>1:ƒ>kB>íÛ>sq>í³>±œ@:[ø€=Ò«1>Ü|>««D>±?QÌ…?H?"ã‘?̘=Ü¡?mHì?[¥µ>†`>&t>šUˆ>©#¦>»cy>’¬Ã;D®ç=&Oˆ<¨;” +=dÓÊ?é}Ä?ݯ4?¥g?ž5>¾£Ô>±Zº> ·a>#ah>’ð®>†œ‹>áÿó>øU?>‡®´>–•>ïîÒ>͸ñ?‡§¥?ªQ?O&?W@>îS >ô~?njÑ?j¤[>Þ+Ä>Éùq= Î?/Qô?Ø=cÒ?7^ô?1‰ð?;­?9‡Ð>ïŒ>Úa3=ÝýÏ>Èb?7P?%”?³ŽÇ?³–Ð?²õÓ?–¶÷?l~? §$?åã>ñ±¹>{>´HL?u[?Œr[?–ÑI?`ûð>6êþ>Á;„?Oß?_ Å?pC:?k>Ž?h¼è?nÎ?po[?ìÛ=ß >T‹>§pF>¼’!>ËŸ?'ÝC?iû?(½>ï) ?&³¬?AI½?-Ñ? µ?Vàr?q°? X1?° '?³Ý?´ë?³sE?­A“>¦¤Q>z­ ?›6O?¤ ·?O=¶?B3«>Øe->ö‡1?.r«?9'>!¤m>‡[¤?§µÑ?™†å>ñž>Á\\=ì6ò>ñâC>²·ï=~Ét?I;?µ®?€¼=>œæ–>õ÷+?:25?0t?~u?xÔ¶?¸lK?˜èQ?]Ü£?8ªò?º¬?c!>òÚ,>Q<™'?„L?¬¿ú?^¦ë?3’x?F‰E?E¼)?}V?w¤!?“m ?’<º?&ž}?nU>oÆÖ>Kð†>ÑEú>Ç£ë=%Ð=©9`>ñ.R?CÏ.?ì5³?­N=Ó#f>¥b§?H¥?œGq?òåÉ?À#?ríÇ?\ØZ?H§?Á~>¯š>ŸÌj>€Šè>é!=üÈ?H?rb?£°n?¶XË?Å:ÿ?¾I?Cª3?!Z=È“þ>S˜‚>‚Öí?&\«?%Å?CO¯?<›B?ªŠË?¥§z?ô´?µç>ôl>Æ´S=J¸>rý?aÁð?q ä?˜<÷?‚Ï?,Í™?:âÑ?1²,>Ѳž>Ÿø!?"{®?'hú?;à?£Û±?Üp^?œÇC?m¸ú?sÌ%?u`…>­¶>‰}=Ö +=Æü?>Ñ¥s>óî>©9ë>Ê!>Õ›Q>÷“Ð>Ýg>½r? .h?>Áž}?… ¤?ƒúÈ?‰åú?R?ã?‡¶k?Ùç¦?»ò×?¢²£?dÝ?ë]?B>«?b¢ ?–<“?­þ'>Á>V<C <÷œ>¸é>ÎG?²‹š?ÆóI?<Ús? ’¢?C™0?C±I?Ó9c?Ô®ˆ?bkL?€#¡@«?ýé?×w'?» R? é?m˜@´ú@ Ób?õž?Çg(?€eÒ?"ºî>GP?Q Ë?ÅÅ3?}î>õAÉ>õG„>õH?0r?6Ñl?¡b>õY£?¤E?£Á?µñX?¸?tÙ*?as ?£Â?®=@NŸ@"Ç?zýQ?lCˆ? +=7?'ì-?¸(?¨µõ?"?B ?!_-?­r>”€?iè?•º1?c#y>W[ô>Âbä?&£ÿ?‡uL?É(N?±nk? C!?ÆÅá?çˆ1?ƒj–>õŸï?k?¸8j@Î"@±7?ä=†0ä=Ía~?ç¸?Ž?š‰8?§}1@ç@#8s?¹<ÿ?µ6?u‰>?bNã>51¦?ÂÒ@-bÉ@œ?Z™t?_&Ç?c²?|´?Äús?¼BU?·Ð?‡ùJ>õJ‡? ? íp>Ó n>”-&?«Óc@ Ž?†9û>R§?Ö?_åˆ?‹x?•1?À‹²?×s!?–5??ƒ»Ž?>w­?%Á?BÓ?@/¡?m“?t—s?¨¾M?®F¥?i¥¿?i¦? @? —³?·4‚?«®?ìZ?üò=ñKû>“Õq?aá +?I~>ó×±?= %?ÀÆ>?Åf[?Þ®#?ÉŒ®?É.?†¨)?9õÜ?MºÃ?{¾1?š¶I?Â>‚?Œ ú>÷&?lC”?À`¾?­E?ŠÙ·?…a_?{\¸?Ž?ªs?h ?Lñ?Cñ?qùÁ?&b‰?ê1? —;? žw?«Ë¥?Ø n?Ž‚ø?Y¤1?¨Ò?Ä"Ï?9eð>áÚ?ΪÝ@$?~]Ê?+©¸>ûB>èõ?P.y?\$9?½˜?Ì£P>ªÕ8?U˜m?d¹?ù.­@sù?Ýz¯?ȹ'?ÿ³À@ ôW?¦è?]xW?g¸±?l(V?ÓCû?í÷³?’¨?iŠC??|õ?–iü?±é5?X?€Ý•?ABŠ?,%Ä?µ(Š?Ûíâ@,V¾@Ej¼@sx?ãeò?Áæ%?°±`?šXC?úH?´ìø?˾?Ž~ó?9·¿?¥æ>êuz??jí?:Ü—?ißÕ?^œ–?O¹H?jÅú?µß?tÏ? ¡?.åB?qŸÖ?lŒ_?dóê?xä?® +‡?£÷E>ç·O>öºÂ?àé.?ܽa@+ƒ@É?¶;]?¬ýÇ?¤ƒ ?¡PB?Œš.?‚^¸?‹)É?” S?KßB?‡´?Yéà?€[|?ˆ?¼ô’?‘pk?'·s?Kä?Üß?Œƒv?‹*?‡ï?cz›?c¿Î?Þlà?âºð?vÛ?TŒ#?°ˆî?Æ3 ?ü)T@ n@ù@Ù¬?¤Ù>ám?;‰ý?ŸìZ?”³Ç?\É?O¡ >àL>àRƒ>à*›>àx?Ss©?_µ"?ÇßN>íJc?Ü?NÈ?êýC?Ìû=?x<‹?wf®??|?= ô?zí?B_?ó’?‘6É?•å?œ,l?Óé-@V©?ö[K?ÀlJ?¸Û¾?‡ÒD?„´E?,¯U?.¹¤? ³'>óúØ?/¿²?[²d?az€?Zó{?)õ >£/>× ?Zw=?[Ç’?ðß?ö´7?Ó°^?ÌÄî?:K=_Ò>n–>ì¹Ñ>äaM>Ü g>ýŸë?¢Å>?¢´@Ü@³3?Àád?¢h°?RfÔ>Æ´€? ¦á?eG?Z¨Ô? »9?®m@õ@ +õæ?µ¢J?”Jæ?¶g‰?×o ?£5µ>×Ml>ÜWœ?D?7c>û¹?ÌŸ?¶‡R?ÜÜ?¯Ó*?†Îq? û?Ñ/ë?¿L?:¯?<|?sÑÉ?i?¢'‚?³CT?`£Ù>“Ði>ª%Û>Ö•>äéŠ?6ÿ ?1?\D?ibR?–…?¶Ëü@ ߪ@\2O@N×?÷ìD?ûò> á<±p?l£F? ?¼@å)@:ô5@ À>Ô4ÿ>÷–Ý?›˜ò?™­)?›ˆ?šù—?5E`>ò3g?…È?Þ¬?µÆˆ?¬|?,?sšÀ?q‡æ?­ž>Õ¼?¼l?@n£?ò¶?™þI?‰A ?m¼??s«›>ô7F>Õ™~?9Ä? Py?dµÑ?vÆH?vŠ?°AT?¯¿ ?Hº?Gb?KøÌ?U¥Ï?´†Õ?Õ¨_?ˆ—Z>Õªâ?0/Ö?¾"h?»n»?»£? ÕÓ?VÕ?cä?†ƒï?–¾«?ZòX>Õ–[>×ys>ØPS?Ž"@»H@ Ê@ +;Ø@e‹?軌?ÐÈÐ?Ïaµ?ѹ?ÆL.?šNÛ?›Á‚?ñ"g?ð^?Rƒ]?-6?Ëp>ÔÂs>ãl‡?×w>ý +e>ÉÐn>ÙO?‹º?‹3r?±í?ÊÌ_?©]/?ÐØ?{w^?Sb?WÍ!?bß? ʘ?W8ð?W#?%òo?+yÜ?L§7?tZˆ?f–¤?ƒ?·g?\À ?hš ?u°Y?wjè?MhÝ??v +?C¿Î?EÝÊ>#Ì<–z’?a„N?Ì°Ü?Í&P?ÌȨ?Ïe­@š;@”±?„Â>Û‚>™=…aà=¦qà=Y›=h_Ì?ª‘w?æµy?µâ?]?^~ƒ?1‡»?'ø?CÔ?d¡?EûÅ?u?ÉÙ?K“:?@_?d$>8o>?‡L>²ÖÌ>Î$&>Õ`>Üx>æP—?uÝC?ˆzi?ƒ€³?~Ó??‚º]?Y¯?3 ø?#«d>³E>¯ùŠ>®â½>­Ä>­g¦>¸øð>³ÝG>«ÔB>¥×˜>¦€>Áé;ULL=רY>Ÿ®˜>žLs>5ü>µÏ>º@™>ŒW=Az€=N{°=öC`>mÅ¥>Z€L>9z=<[%ï9†@>ø¯>„•/>ƒé> 8>~X>yñb>u±:>qk +>m,>h«†>dª>_Ž >Z×ñ>VÎ>QIK>LTª>g¼µ>Œ >§î}>¥~©>ŸÒþ>`Ý=ÂþÍ;øà;lJÀ=qÀ=ŠôJ=¼Ùd=áõõ=â«s=Õ3=Ä;c=±Æ‰=ŽZý=Uú=(ì<Ú€.<“Z<þ»Ô>øÏÛ; U|=5«ÿ?8*>×N=ðe·>ÿ¿?"d?QSÑ?…:>$Œ²>œ°Ã>Í©ý>øI&>ªd>>c˜)>n§Ó>yÝ®=Ìק=Ù 8>(m?*êœ?‰¼?u>¹r;>Þ,>ò½G>kd=rßž=:”¬=º˜<Ö²W<û:Å0?k?p‚Â?c†Ô?R¬¾>ÃV>ºÄv?3-ù>Ô[}>Ye>(cÿ>8Žö?CÑ?nÅ7?<¡c>‷>µœâ>Ž7:>záa>£Û>T‰>°Ò?  f?mì,?)±=JÖ>!Êo>í·?>®GŸ<>ä@=„Y->a[?9GC?úª>ÿ>Öé®?mi°?I\ =ƒó?Ü@?§^>¬¦Y>'O>Çœ>J7?&x?Œ=å=C W=tÜø>ñ >ü ?l¿?^ o?_^?"æ>ÇÄ>žžQ>Ê>+õ(?á«?2“>Z(>rfì>U$š>>ƾ>(Nü>-§þ?“ÔB?–>hš><)„?^~?eê>îeæ>ãœL== ¶> +{÷?\ú?U¼?3ò{?&á¶? š?%·?Ÿ>ü2á?8œ€?A– ?L@q?2—Ù>²Ÿß>ËúÐ? ¿t?'?c”.?ÉŠ?³›¶?¿z?ë?ÂGæ>ï©Ý>ﶫ>ïÄÖ>°ñ>A>ô>Ü?y{?p ++?G á>ð&™>ð/ÿ>ð=ˆ?Ãå?[['?5Ñ,>ðJÌ>ƒ°Ë=%º ='_¨>E'®>²Û[>¥ü>™>>Œ.Ü>~ƒØ=°×ú?;í?C×µ?u=u?„Ü`?v† ?q(W?mß9?pÿ¤?qj¤?uñ˜?¬F@?µ +5>þ´>³ä>Üåe?m§>Îô¼>è:??*¦|?˜)?q°´?cèÔ>´ö¿>çwÀ?qЮ?^Mú>ù¤H>½‘>sR?eNM?9Ú>¾|>»æŽ>ëÂJ?u™Ñ?År1? ?r5˜?ŠþÖ? Ã·?YÕ™>òNí?Â7Ê@ª;@¥¥?òe?¡ZÄ?p¸Ê?š¬?Ÿ°?FŸõ?1}4?"Z‚?"¸Í?góî?r ?=âg?L)¡?`?ttÅ?s=?tÚ?ƒn?k: =£åË>\ZŠ?¶"œ?±çF?¬ZA?‡Aº>¸W£?µ?*iÎ?,$º?A„$?d„h?šÃ'?†ù?E`Ö?5ó&?6?_ß–?™6‰?ÆB¨?é¬ß?ÌR?¶gE?´*k?±aŠ?´kS?¶ul?žµÒ?×f?^Óï?B(?D”P?2’ì>ÜŒ–>ºWV?mÕÊ?sø?›_Ä?žƒA?e'K?ƒ^¨?ñÎö?óŽ¡?ð·§?Ú\? ãÖ?;Â?s¤?>´> 7?%;$?Š/¤?a:œ?2M?Nð?[î?lmÔ?‰ƒ²?^‹=•'±>±³>çªÔ>)»6Â>±Œ?m–?@P?Hã>¯y +?8Zo?Epè?w8>ô?(½¿?qL?ˆ?ˆÃ>k?ßòî?×h_?tKÆ?tR6?tUÎ?>{Ü=Ø T>|ÿ?v–?1?6éõ?Š¿?ß"…?½#?•“?vóö?<Ã#?NîŽ?jå‹?a¢,?Te™?ZH˜?`&_?0'¶=7µ¸-?ŒµÈ?¯´?sk?S9+?Ätî?ÊgÅ?àã?á +a?/Üù?6¨«?ýº?ð(Ï?Ëð×?Á·5?·Ëú?ÌP¶@.ã@ là?™tw?‹‹E?u*Ø?t~ò?u¦?¾0û@U@ §?æƒ6?΃>ÁÜu?;â$?Œü€?A‰A>õ^«>õdt>õf@?qzJ?ØO?"ü>õtŒ>æ»È>Áì”?ˆEz?¢j +?¼â>õŠ.?¬Î>ù½ê>õ‘??ÕÌ?u–z?tȲ?e®?rO?¸9ú?š >Ÿ>éÔR?®—Ì??}k ?_=Ž?2ã?†‹?ÄÉñ?œf¾?uµp? Ã\?Ïö ?‰¼Í? +ì?^E@?…°[?*£=>õ´š?å’©@Ø'?CF{>—j1?ƒð…?“?IeD?0ó!?ŠU,?ŒZ‹>Ô,è>Õþ?³€_?¸¤k?œÎ?›àÜ?u›?^¾P>¬9Ý>¸!>¤˜l>­¡³? *?®,?Õ?¦äÆ@7£Ì@ o¦?v,‰?CD >õZÖ?aSÒ?¥´Œ?Àb?uý?ÛÛ#?íÜg?é¢=?“Ë?Ov'?‰Ð?˜À3?«®u?®Y‡?rôg?Q4?Lr‹?QþÏ?“cf?- ?fuÂ?b©~?fÉÄ?j§ó? +üç?Gô?ôlc?éëc?v»>?‘îù@2@«µ?›"7?²!?tZ?–Óô?ëœ?Åãà?y†?‚¤Ä?ˆ„Ä?sÎ?.™ê?"ä^?â?.h?Y¦Ç?R?¶ Î?»ÇØ?Æ”²?ˆŒ?ƒ5?ëÎ'@BÍs@OðÙ@^`Ê?éJö?Ôr?ÏL˜@bF?¼“ ?r >?lû›?gþ? >ñµj?—q3?Á²‚?®÷!?¤ì'?í¹š@“?xà@?‘*?Úò@ª?Œ_?pÛŸ>¿ƒ +>Uˆ˜?¯å?Øä@.@*=“?~µ?Â,˜?ö×p?ñÿd?ïFÊ@û@ ¢¼?’`?hUm>2½’>À>îUã?ÊS‰?î4?G¯Å?–›>A'=‡{?‹EN?²?í³y?üV*?ËÈ>?·ž¾?¿À-?Æ1ò?û¾@R?ËšK?¦"?‡ª?lÊ°? ÿ>‚¯D?‹º?Óúe?{fº>êæZ>êÉç>êžH?/ò?jTd?vd?€Ò?U„á?‹ö>Ö‡> é +?#ïÏ?à!—?ÔÉa?®¤y?“°ù>è‘5>¿ŸG<Ç8>†_f?ܬ?ÕÛ¹?´1»?µlõ?¿®Æ?ÂWÔ?ƒ¶??€ŽÍ?ι?ƒß@$G—@8`ç?Ðt¹?—‡p?ƒw?‡¢õ?­>?ËJ@Ì@wÉ@7†?»¶•?ÁÛC?Úa$?Ò6?À ?²ÂÍ?c¼†?ay?Cs5?EÇô?ÃòÀ?Êh‹?ˆ ?vCl?Às>ÿÓ?ˆŽ°?®u…?W8à>×ÿ>ãÕÖ>äP>>á:®>á°>³YN;`=?jŠ>àw>àRì?Ÿ?¡òƒ?5~ˆ?!ðv?ƒL>ßi,?UæT?’u?¢Ñá?Å_Ç?­WŒ?^†ü?‚éË?Ûf?Ôè?°e?}ù?Tö¦?Rö½?2P?%õ?ƒƒ†?©=Š?Àß?ÔÙƒ?Ëä?ºÍ¾?­)Ê?¦?l?°Åµ?´ÞÍ>ø +>]æÂ?` ?[IŽ?ž>fA2>ÂG!?ZÏ?V϶?E!4?I8b?€w'?tË7? +Û«>ÚÀ?k,Ô?£W{?£F'?£){?¢k?£¨?ŸS§? +âà?°F?¿ ü?Ò@?H%@g*ï?ù/>-‡\>²ô‹?>£‘?0Â(?2V÷?>VÛ@y@+ñ?´é†?“•6?t‰?+÷-?<è£?cõK?Q˜†>`gà>XQ0?ì…?@y›?´JÙ?Š;?ÊG @ %m?õæ—?|ìî?|¬²? ÇÒ? ÿæ?¥P˜?¬Gz?=‚>‘}ì>Éæw?ÍÎ?Cf?Î$E?Ìü]?j¿?‘[>Ú° >MS>þ¶5?Pð?/C>;s¥? í? ^×?]´?X×> Âk>'ï?šC?L?kþ]? e?©e?ù›W?÷¦$?˜öv?ˆÊë?¾W?†h8?º£.?âtC?»Ð?UÏe?Y’û?t š?n5½?šªÒ?®­4?¤ï&?œ î?„ª‡? ¸?ÃŒ?Èì?ÕÛ©?)å?ŠëN?‚ë#?UÝu?U§J?¨íÝ?´Ú?[€¨?êN?74ù?cÑU?|Í? c?žIt?—†?šŠj?åÊ>Ö€>>ÕÆÚ>ÕÅq?ös?U¹?V%ý?`]Š?oI7?¦×È?¨úé?{Aü?o5>õar>‡]n?Ìî?jb?ƒäc?¹ °?´°“>€^=ú?« ?ÃvÀ?“U˜?p?°?^Þ#?<.‘?)2.?I¢â?M¯?Q¾˜?UÏç?ê?èÙ?Ž,8?•‚ ?„i"?n±?qŒ|?¯:?´êÉ?Z›ß?"Öƒ?˜¨ã?Âbþ?‘j'?);r?;*¢?Œû ?û?ÊÔã?Е¢?¬xx?™a?g'_>Ͼ>Ï2–>Îæf>ΕL>ÎBa>Îo›>×t>ã¾>¼h=>?Ü>qLb=¤ff=c¶ö?9ã?x„þ?2¡š>œ>»X?Ï×R?Öi?+¢…>‚ÌÕ>ŠÚ§>’Öd> b6? +jÎ? ¸Â>Æ$>K¬É>‹ +?AŠ5?@íV>ïýü>žß)>mª4> 'Z>ZŽ=÷5Â=å»(>f›°>êº5>åMS>©Ð=ÙÄ>[Y…?5l?4k›? >ÐÌê>¿6>©5Ö>¬Õ>ì-4?,þX?+Ø +>wÆIŠVì>œq>‡"e=xï=n=;Ü=V +=p·>mz’?2é›?)Ö.?"å?-¢ï?-Œ‘?k©=ŒÑû=Ð>w> +ä> lâ> ]>˜Ü>¶¢>Ÿ*Z>©«½>£êˆ>–Èì>(•>'9V>)Rä>+0×>,Ê¢>.u>/¬>/Û >%}¢=®¯—M<¥ò<ÞÌ= è>ãÿ°>ãž=fÎ=`H=Å-]>ÿü‰>Ù³ø>Wý€>â >„õß?3õ¢? V>©ò>6Q®>s1>ùn¾? Ó??Ã|>®à=ë|ÿ>DÆ¿>ʼn?s£èù=íBž=0§ù>v¿j>Ó3>祇>òqˆ>÷Œ>õg|?>¶!?qIG>Î.–>‘’ò?J?@Ä?pVÚ?#¡b>µi>›Ë?>”Áè>%?&>ÖA®?nñê?AÒ›? >®­È>8£>î[{>ª¡Î=¸5Â>¤ü?RK?9ä>íöõ>íå¥>íÜ•>ìH_>âG®> û¨=½–>¼]á>Íá;? #>ú×Ñ>1ò‰?m‰ ?O!É>[Ùš>G»?>3‡Ù>‡6?m† +?ZÎ>¼°#>°"ç=BÝ>í–H?À?mŠ?W¡M=z{> \ó>í·è>êv>°·í>¥×Ÿ>šîN>š0?+mn?2ñ?&)—?gÄ>•›L>¥Hü>î"Â>ë í>Âú>å¥Ú?£sÏ?¡Àª:Ö•–<÷=>îxI>üo?OüÚ?8Eê>Xk>ƒ–T>›7î>Ç•ó?<,?5w¹?6Ð?@%c?QAI?P»?’‡A?‰W>¥¯Ÿ>®ò?fÍ?A6ë=Ï39?‰1?Z ¿??æÁ?Á ?¢BE?D8a?É`>¸ƒÝ?‘§ð6->â ¡>Õƒ…>‚Cq<îP>ÙÅM?ReJ?w/ +?Š”ð¾µ>ðÉu>ðÕ!>¨ä>…~v>ªÐh>¢øU?^n?™:?˜Pë?žÏ‚?!]?od?•Æ>ôÐÖ>Q=ê'&>s¯z>¦®j>íph>ñ‰v?Uõ2?Gô{?40 +?!†Z?†hj?Š„}?PÄ?E‚Ü>#h¦>oÅ?qç¾?qí-?qõS?8s>¿#?ª7;?m7Ê>ð-? +øG?œ!?•Ô‹?¹Ëg?–òÞ?E¡?”›ø?¸ÿ»?mÇ:? Ð,?¡‘?ê„¡?òP?ò€×?Ÿo.?ry?5Rh?*Æ>€W>6?*ØÙ??V?‘\†?•¹?O•*?-°>—, >~ý?…-¾?„O,?«éF?²ù?¶/~?¬?yen?€Ã?ƒTù?w©0?1J;?=3|?s·?s5?s?n#?[ÎP?)EO>ó5ì›°=ég> ,Ï>óN§@:©ƒ@ƒÒ@?ªqA>mÍ\?Ø@i@µš?m–?'™è?ËÝy?ØR?†É3?„·Ì?LÉÝ?NŠÙ?6†Ø?B°~?"Ó?ži>ó§Ç? +”b?t#?‰ræ?¼rÉ?™)Â>™æ>¤ÔÉ>“k>ÙV!?©O?Bž?š`“?§ÒÛ?¨òÞ?ʹØ?ýVú?Ô m?¬l?YÑ’>ôJ>Mü1?tåm?­}ø?‹??aGÜ?ça@&?Eg?HŠ?µòŸ?¼ôC‚?[7ç?råû?“Êí?£®=ÔÕs?iO¹?pQF?tĶ?‡R?µd?ƒ‰@?7¯~?õÉ?Ñ;ã?®6w?™Mã?t¬Ä?ax?šœ°?Bž¼>Ñ”×?!¦??ô—? Uï>ôÔ„?’ä?·Ri?·«5?³Š®>±}t>+ýõ?Ÿ×?[¾?’Í%?Ÿß·?2š¼?F?³¨?€øŽ?þU@@›?×½)?Ùi²?¦ØK?º1z@dD@ +@ƒX?ô…?wJÒ?I’á>øÑk>»Qg>}s\?›ó?A³F?± ?í‹â?u½>¶ T>äï°>õyU?"ý:?2X¯?£º0?Ȫ>??ø½>õŽa?¬Ø_?Ãö›?.µ¶?ÃÅ? }Â>ÿYž?³æ†?´òp<“c=%–Ú=ïb÷>Qî¯?-ß?]Z?B#Ü?1ç$>™í‘?9S?õ¾Í?Ä#q?FÐk?uæ?’" ?åûk@2™©@1?ˆ²?`¾Ð?,o&?Q‹A?uÈö@ +@8VÂ?ósº?³õ?U±S?3X8>ø¹>Æ)y?ÇÑi?å ¤?Dô?%ä9?Vœ¾?cðb?HS?;0?²úó?©æW?u®;?u«?uªÁ?V9j>`Ð4>ÏØ?›é.?›.Ö?„ym?¤Ùó?ô¦À?Þàµ?¸ðØ?‰dJ?¶,?f=×?¦‚?­Kœ?¸O?UÄZ>­àJ?MI?âÅ?Ú‹@ãz?¥?ê?vt$?”d0?ÑÛ?½4/?ɤv?«{?¦Lv?f¥Ç?IW? ¡? Aé>ÛUØ>âò>ÿEz? ,µ?ô‘?ôy,?ôy5?ìÖóÕ +>Æ›Ü>kª•?÷?‰²ê?-G>=?$ù¯?¢»b?ÄŸ?ðVÆ?à…‚?ÎÁ·?žîJ?bK=?˜ ¥?¶ª? ¯à<›b‰?·é¹@‡8?˜Ì? ó”?R¨ ?r;?rô?qò ?aÄ?WQ +>ù·ò>ɧò?,ãw?J’?ü½ @Ç?ˆ ?/7k?\ŸO?v‚ã?ÀOõ?Îe)?0°´>ðq:?V=X?v(­?Çw@?ÓI>ŽÇ¯?ÿé?hB?ÔiÒ?ï]?”ÑU?|Ò?ý¤>îêN=ž‚[>ÆŒ>îs{?ûëÚ@«Ö?¹à`?ŸQ!?X;ì?:Ñõ?ÃøÝ?ÝŸ!?÷7@ ?¶sK?¢tý?“ë?aH? X>à]š>ì«€>ì-&>ì„>ëãg>Ì‘Í>¯ÅÖ?ŠÈ]?Ã}å?†C5?5£ã?/¶_?)Åy?I\?jN?‘âv?¯§ò?¯Œå?¯p|?±‡Ÿ?²kÙ?…\«>éW-?> +?®È‰?žÒÙ?c¤B?0ÿÌ>#>V?„"è?…éj?}PÉ?ƒô»?Ú#Ò?ؤÎ?žŸÂ?›êË?m]›?fÆp?ý's@%?Ȭû?¬ F?©ÿ?ª}¨?›Í?”_ö?È…±?öã?åˆ?Ô&ê?Ýá?ãÔý?á¡X?Ó‡®?À¿I?cøù?aÚ?8@ ?.Ö?>:.?C#Ü?˜ ?Ÿ Y?t{}?b™"?Ã8»?âöª?2:?`ky?álÐ?ÉA–?¤?’ù0?N×B?K…Œ?RúÆ?P˜ÝÁ?9%?]N9?¹òO@r|?ßN?©8Ö?°ó?ª7‘?[!D?*qº<•Œ>=æ@Z§)@ZU?Içë>ÚY§?ÎM[@`Á?¹¢R?aóH?AËv?(©?Ð>Ù†ô>Ûõ‡?¨Ö?®g?ÃÉ ?ÖQ*?§»Ø?iÄÞ?[t?X­›?‡õ?Ѳ?Á0ì?y|J?…¾¾?9w‰? ¨?Dw@?WöÀ?¨U?îäP?ÌPQ?J.?IN?àx®?äa?“Û8?|ž†?‘ >?¥UN?™ ú?„ß?† +?‡ül?‰¶?uh>ýñ?Œõ]?¡Å?¡ x?¡?žï5?A,?‚p³<º³‹@@ ÕÁ?TÝ>j:¡>Ó Ú?SÖ„?Ó£r?¾ÛÛ>è® >ì®Ñ?‡é?‰ÿx?‘×?—q?ÆBÜ?ô¯b?ßB?»z?µÍ;?):?,¤?Š°˜?Ž-§?£vú?¼gn?¯*Â?Š5Â?…á?ƒQ ?‚wŠ?!\?!‹>ðoV>êZ?SÅm?F ?mª?V&?icy?±wÐ?±ö¼>±w>˜ÜY>üb^?X?w”£?´,Õ?§âõ?{02?h:?o?¢?ž#-?¤Èu?™Kƒ?™Ûƒ?ž-2? H0?[ϳ> Y? zþ? "ý?žCî?œ9Œ?*šÔ>æ}>ê‘í>î›->øpF? Ñ!?Á>%b>4ÈÑ?zÀ? :Ó?>?w?UŒÌ?¨B +?çß@?Ûˆ¯?© U?—ÑÇ?ˆÛW?Áó?¾5Ï?¼LÆ?‚ï?Unã?17s>Ô¥Q?T?Cn?>ÜÚ?› å?ŸP?©OJ?²å?Ž¾+?Bj ?©X>—–Ã>ÀË +?²ð¹?°ë@ š@„Â?rT=¤}P>gM>é“Ì?(´?Ïg¾?Ð?dã?Pb¬? 8>ÏÜÿ>}ØÈäN{?>ñH?R#y?T;?rÇÈ?hS¿?Ti? ã? ?¢b?'¤ø?A˜?@bÏ? ª>òb>ÉS×>’ºO>–BØ?C¸ó?XÕV?10(>¹XW>¸rd?)¨Î??hÉ?GŽ8?‡,5?†Ð‚>òYÇ<D>› >³5õ>µøt> æÜ>šë—>¶_=ʳæ?C'? $x?5Ô¶?7sS?9Ï?"ª}>ãÚø>Öb™>4¹=ýeä=íl>+É!>M!î>=˜x>"TË>Šž >Ýáÿ>Ýt:>ÎÜÔ>†ý=1äò=ÈÙ<ü·ò<ËY~<›|*­%>'‹>µY>$Ç=žqþ<ÝÙR9)ú:à¡Ð=j¸<û×€<ð‚ <âH<ЙH<»‰<£; <‡¨³ 6>õ$ÿ>ð°>ì#=ÃZg=€ÛÔ<‰‹<=×a”>,_ƒ>À >ˆ*ù>¨K¼?|¯-?L<û>û >‘-V>²YÜ?A!?CR>ø@ç>u^.>ˆý'>öYÕ?Z8c?“Ž?…¤Ë?töª?Óè>Äçª>€q>Õ=šQ…=d;>λ>ío„??]Ì?r,‰>Ô +=3MØ?÷?×,?~§Ú>ðè?E?¢>³*‚>åÁ=š¥t>Š«f?õ/>‡U>n¡‹? æo>Ë-c>'ø·=³q<><®r>î„>îrË>î]ë> ~ì<ˤÃ>&_p>î#?$ž?i°?d÷Ó?`>9?%l=õ=6>íÃt>Ç1¾>)¯>Q_>…?i>ªÞŸ?4õT?-{>í£s>ßS•>¤›o>Ôæ;?S]Q?8†;œÁ¡<¯1»=wŽ>í¯’?^?mºF?_àW>ÊNN>±…í=ä)ž>ϲ> Ä>M-Â>íî?¶'?‘Ο?ŠfÐ?›U§?“¸Ò> ¿Á>$7>¾qÊ>ÂV&>ð9=¢WŽ<|Ÿ=ž3ù?k_œ?WLã>î‰î?~Â?n V?Vƒ6=ˆ^?jÒ?|:?néÍ?XQñ>2¦>Õf?í?…q>ÀŠ¿?üµ?Øë½?Ä¿>ð >ïa->è(? Ö?£«­?ƒC>ã57?LðJ?È@£?³g¶?oãR?83å>XƒÇ?…©?ŸE?Í^ö@ÜT?Èê½>ðEƒ>¢.¸=-ËŒ99Öd>‹O¶?Bõ?(Ù˜?Cýb?XÀ>ðÏ +>¦ùß>~¬˜>c0u>/_d?,¸?qã?m†>ñ'‚>^>¸Òã>ñ¶¿?U ñ?eë >Š&?89?&u?§I?¥?/?nZÇ?xéÔ?T&t?gœŽ?BÌ·?0ßõ>ñ܇?Ñb?gkŽ?nBð?qþ^?r¿?r 6?P&>Ëe’?.GÄ?µ Ï?“pÊ?Y0?AèÂ?•qŒ?hÓÚ>òX[?—??×p?Äbß@P'?Цû?r„4?)ãÖ>ò{?Œý£?¹÷x?Hü?r©9>¤±à> +¹>ò>’ÝG>Î46>õN?sñ´?‡CG?Æãë?ÑJø?ˆJ?†ÿ?ÃðÖ?³Q+>÷Sî>ÓB=ò=Õð0>äØ>‡r??Lá?¡ f?†±¹?1|Ñ?M¹ø?s@[?“XÌ?¶y™?z0í>óVh>‡ØJ=R“©?Jˆ´?µHH?æ?pÅ?‘Î?³Db?¡ +Ž?Ši?¥¾À?¹‹S>ߎ>^ ­?×ìm?û8$>áv >¢è >ñ’!>ôÒ§>¨4™>˜0w?®ª ?§R>óÌn>õŽ?ðé>êýI>yïÄ>m¦ø>®àž?s÷¢?+Ž#>|Ë?:i+?¨Î&?žc?†Ñ?s £?g©÷?3~ >ú°?ÜÒh@‹W?†õ?–¯?•¬³?©Œ?Ï£Û?ßÒ ?Š.?tU§?¯K7?»~n?8z•?(Êæ?†åá?_‡Ò?.º9?~=àþ.=û4©>ð‚”?*?¶Â??Šú¦>c +? ?‘Áj?S ->ª_”?cæL?è«a?º¯·?tÄ ?tÉË?tÏý?Æâè@0ù?Òá?ª¸?Õ(?íÖj?bÍÃ>ïøÑ?U‡?uÎr?þ ?a?ÀÔ?”Æß?ÂÚ?ÀÍQ?¤b&? Ê)?Ìì?’”?y’?‚ ?u;°?c¥}>õF“? t¡?\Ù?Qv!?ªg?1¬Î?}ße?¥ò?ôö¨?Ø+Ú?­ô?j,@>Êb??ª‹?Túz?uì?”N?ýê?MN?¨>õ•?”:?ïª?€“?Œßv?Im>õ¨B?À­«?ßvô?è×?~/c?µ¶?·Î•?xäy?Ã?¤el?œ–u?”ÉÔ?€B>õ˳? …F?Iua?êá>Znä?¬j?»¹1?—Üy?á·?@«!?’‚“?½C‹?â?äÆ?¯y ?ÍÍ?ê°?¨SŽ?uâl?£ûˆ?½:”? >È?:˸?_ˆ>y/Ö>ªÐ?P±?y +f?žN>õÑ8>õÌ¥>ô‘ ?E’?gi?õÃÄ?ê-=?÷‚?ˆÍË?u¹˜?krK?N?"Œ¢=%‚?ŽÙ?ó«+?ɤ?v;ý?{t–?~ ?“·ý?¦š4?”H?‡ùz?b]J?A}#?—'?³?iù?/°™?[=…?v(,>êÒ’>Œæ3?N¥?u?Tîð?R*4?;ìò?@M¸?Èþ³?Ú#Ü?sC=?km¢=XF‰=؃?t±R?lA"?HM?*l>3Ò£>l62>i¢? Ɇ?ØÂp?¶-÷?¾´?kÖC?âÁ ?܉É?À`ç?†îº>n¤?e–?ˆ=ø?Åæ@Dß?Ùe?Grœ?h1?‰<»?lçA??ÚC?1P>óØ>æd>â•2?(7?µ­Ë?¶ ¸?µûj?X¬?xà?‹¯§?¨—²?‡O?r/„?› +ñ?§¥? ?;>‹³d?'š?Š +?r5?ƒ÷—?)¿?¬°i?*†¥>ñÎ>Üê>ɃÞ?ºMù?ÛÀ?P`?Ä.>Ø(ô>±è˜?âÓ¹@ó´>Àhi=€·k?MF?ª`ú?Þ ¶?ëZÂ@^˜@‡!?÷eÅ?ì ?äºÇ?ÝÚ¿?$²Õ>î`?…Y%?—f?‡=J?„Ýx?)¸?Ò¥?Þ?žñæ@ J@Õü?‚R?*ýÌ?‡äT?”Y(>¤!>÷צ?%Á9>Æ|·>˜ó6?:p½?kÈ?£ \?¿'Ù?¦ù!?˜Å‘?³øÛ?Áø ?–¬?j©ƒ?Rû?©©?­«?¯N?âáÙ@"Ð?ÞªŸ?g¢?îR=Á0V>¸š©?hë¸?`ª0?Br1?2œ? ¹è?4Ë«?Ê?Ér=?çÁ?æ–?­•?­wk?—·y?”òë?Æ­?ËDz?ÊWE?Èæ7?°¼n?¥õî?sÇ>Šga??b?†÷3?)oõ>4˜?v ?P?…5î?’Q*?‰%}?P0$?qâg?Íg ?‹·8‹?L>ûìå>òô3?VA7?bÚ¡?ô­ @ •˜?ƒZ >Ûd3?4§t?rV ?r4Í?n“Ï?kÕZ?aR©?uí¶?š˜?¥ÓZ?ðqÉ?ìM>Å*X>ËRò?‰°_?”ÄŒ?U…H?4¶h?Lž%?_lî?†Ð?£ˆ·?– s?]l£?’§ÿ@!@ :?ÑÂ?Ô7?¥ü?daŸ?=Î!?:ïœ?Þ¨?¯ü%?™;?\ÿ?„éŒ@.?ÿ0¨>ºqf>Åå?©ÿz?ªi5?¡î5?¡Ô¿?~vº?[²ì?[’š?[s¬?6&*>Û9ë>ÜJ½>ùf?u8?Ð1?Î?ÛM ?à¿Š?2AH>÷ö?>W?Ž¥?™R©?´Ym?¼ƒ¯@ gÑ@ Ìl?p C?Y^?s$­?€:o?‰Å?l?©?é®m?Ù–?*Ĭ?#ã;?ÜÄ?ýU>óÕS>õÀØ?¯UË@?Ú-+?ŽµÓ?¨ó?ž!?‘•ô?’Š±?“£?XŒà?5&â?%>×m?ãó?=Üž?2^7?JÈ“?MPL?–æá?šÜ»?¢Lv?¢zO?ƒBø?Vç? +»b>=–?¡êt?¤bY=¯…æ?@¦?L9F?(î±?H5>å¤=’QE>U!H? ×{? Ù:@ †@ °I@™ë@ÀU@$R@µÍ?× è?.Lø?9˜7?¿Ù~?¿R{?«8Ì?¤Y?ž×u? ³û?‰¢?VBÖ?K€?f;?{Ö?'2s??Uys?zÇl?–‹‚?šø?‰Ÿ&?qˆ(?[Â7>ºˆ>©C@?`ðè?gyæ?9ê?ãÏ?›Èu?ÚÓÛ?Å? ­‹?©Ä ?×ÍÚ?Ôá=Ìqò?,Â?VP0?8á>ÎÜÚ?.v€? ž?“?²o?x?†^?Ž™\?C—>Ö|?qPŠ?®½?µ¹Ü?¿·Ô?°ê?-&?Ž Æ?Zà?r?f*?ŽØ"?‚Û`?tSÈ?—â? ²Q?ÖÖ?Šy¬?Ž'ˆ?6-(?Ÿ~?lTŸ?‚ï¤?}ë?Ž*î?Š2,?€ûâ?ƒÛ?VÄ¢?T`?¡&þ?¶V}?›Þ?‡•ÿ?¯€?÷e@?ôŠ?ȱ­?˱Û?dÕó?Qcc?‹m£?hœ?‡}?Qo ?Œ®ì@*Ñ@ù?R>Ð8`>ÃKÄ>µ+ ?ÍÇ?O ¼?]0ó?¥®ð?¦}@?¢‘?¬ÙO?Á=w?¼Œˆ?ž~?'wA?'¹Ã?y?‚©ù?sª4?xwY?F/?za€?{¦Ÿ?úö?ÇG?·»R?³ O?—ÚÞ?#AÞ?%²É? ¥ö>ùo?:%²?oGt?X9¹?ü?®u>”Ê=<&•>~Úþ?±~‚?´x?1\¥>¸;—? {Ã?¸S?·Û7?šH™?ˆ€f?wÊò=+ÆE;× à=®8=<¯ò>“=õ>­ÉK>¬ª'>Šñº>€‰C>­¹‰>î 3>ä™=>&¬>ü×U?+E~?%7¨>‘‘t>›‹>¡ÊF?•0?!°ð?#‚f?;™>ÆÛå>Á$>ËÏX? m? c!?Eì>¢¦@>…ç>ƒýÅ>dÇ>a¥Å>dJD>mƒ‡>%>t¨è>k°¼>^à{=ߧc<” :”M<„6°<¥þ<ÅÍl<ãšÐ<óð;H’P?ß{¬@„pJ?ð’ñ?&põ?z{ß?Òú?¤\?Rj?[.ß='Ä!<סÌ>²=âC¨>N¦'?,7ª?p‹>K½->mQP>ŠRv>µ™]>öû/>½¯#>diå>ŸÍõ>Ëy_>>„>2Ð>ª‡f>°¿¾>·Ç?œ{?Cçù>«™>úUœ?^xa?"¦“>ì7”>LZý>(r>ûÀl?uÃ?£Dp?lu?3Ì>Ä[=Úþ¼>]2>ð·Î>e£>Å)>‰š?V¤¯?´Vµ?8ßà=¬t>-‹¼>–1¶>ï¡>¢zi=Îâ*>v*Â>î«´>î™ó>î„’>ïÖ|>î˜b>îPQ>îAS>ô?8r?F|Ã?§¿g?j…(=!Ý6>#µ>°ˆ?ÂÖ? _Þ?1a? ˜´>íÅu>íÀ×>íÀ2>¿¯¢=«.>í½{>É®‡<î4F=¥¯>íÁ>ËZ3<¢Ž>]‹?ªƒ?š+á>íÝ>úñ¿?#F€?Á­>t>uÓ>mô>´òó?¥??£³ø?#;S?)õ>î4Û>Ö˜š> “²?¯_i?²ÄÕ?²ac? z?Ï?'¬'?ÍWã?¶OŽ?>Z?@<>“gI>£c?1Ÿ?6ü9?<þJ?+ž> ­>:Ú{>ï+×>Ä9º>IxG?nM?O1~>ï²?e’?„¥)?u2{?#³Õ?¢Ó?q™?ke>ûöx?$^›?Pö;?Gµ?P>u?™U?ÓPi?Ÿ|ý?b¦?a¦C?´RÆ?v!†>ÞA"?(Ú?DÃt?v4ù?‘ë?kæÒ?A%‘?:½·?4Q>È~Ã>;à‘>…Õ»>­?@õñ?q$>?3>ñ9ù=òÇ+;ó†=!X>ãïí?…?3Í“?,Õ?!̱?(tý?çÔ?ñ²€?¾•>ïÜs>!ï>9z©?ŒÉË?ŽÍ?×]?=N>ô\o?ò®?rü?A'=ÿò >?>ò3½?gÞ?N?«?ŠNP?ºz>?@%?-=¨?&?ú?q»¾?©%P?`Ø>òŽ¾?D»?s[e?Ÿ.‚?±jŽ?ײ€?éÆ„?˜Fp?rÅ“>ðà±>™Õµ?)R?9]>“ß—>I~f?Õ?˜A?nèÛ?s•Ï?¶=?»ô²@ó„@Є?µ½­?žÀ >ÙŸª?!©Ð?¿6Ù?«t%?9?–’n?¶{3?Œ¥>óWð?)€?sbˆ?…b?˜ÎM?grý? +a>þ1E>ó‚O>G¹<Ì`>¯4Á?Ì`?Œ‘¶?©®$?²§¦?¶½g?†Å†?s±{?P&>ãz?vwÍ?‹É>±¥ý>w¢?Ë?ó?èS5?ßt+>ôsÍ? +b:?o<Ê?T°£>óøÛ>èH>·g"?,:?lÚÎ?YÅd?F¶?M~±?t¼?F…x>õnÕ>Ž‘²=â<~?,yÌ?Ÿ¡Ü?e¾…?±+?ׂ¬@Ý)?à3“?ÃÖ¹?øóÈ?ÿ[»?¡X¿?Œñ.?®Ä?¨y?k¹Ô?tz3?Ì_?"¶?Ž]½?Óà@"¸ú@%í?Òæ? ÜF?t¦½?HÆŒ9Ò? +8@Û@ÛÊ?È9y?»KP?·—·?¨\?‰W&?xVR?næù?—jC?®Ä­?”î?tñÏ?€Z¹?Œ¼?l! ?S7Ú?£›ý?ºb>È\8† ?Ä.?³A„?{#³?`cÎ?4¾©?;?+?ß?/W?4z?)›·?˜Ú¦?œQ=?,æf?1B?u[H?k:h?1ë^?Ô>õn ?B¬Ø?º­X?á=@l§?ì;÷?ƒ +x?œÏ¬?¸)#?”5}?W5©?6ºã?$%?U>õ£\? x/?Öö?ÜQ»?ÐÕ?ùg>y¯?¢ý?Æ?ÁJ>ÔDv?ÓÊ?î?êãØ?õ÷a@½¯@oª?uÓV?† ?êÛõ?á'?¸eý? …>õá‰?Å>?/÷¾>ý±>¬Âï?uèÕ?œšK?Ì"?Š2¹>õìf?ºfÃ@ bñ?Ð8&?cf?' X>õðY?Žö?·t7?L&M?˜Ì?Fî?J¾?@ÈQ@ -?¿8?£ðv?‹½?…ÑF?@òG?9·Ô?4ò?00ø?’?‡Ÿ?»4}?»„H?š§q?•e¨?ai‹?3˜„=±†%>_Ë ?6u>õ³v>ö€±?^ÌA?´Ck?R”Û>Þ?yÐ?‡Ë? èI>‹åG? ?Iš—?B¦’?Ràr?§2¼?·²X?4N>Œv¾?4n? ?ô©Ð>ð1‡>Í5>Äö>¼¿1?ið?ÉE™?¦úb>ôCH?(?bCj?‰?¶É?‹’h>Øõ?rèo?ëš©?ñnâ?÷9p?ä7?Åè.?Ãêk?Áï^?Û ?óPË?‘(ù?ù>mÒï;Å&?©?sO?uâe?yˆ‰?%¾}>ò‘)?+J?$]Ý?® ?´?qîb?‹?@a$??°?Š€/?œÍ?•1?•’ù?–Zs?~ª?k)Â?Z§4?Eæ?Fÿ?nÏp?€ F?‡ê?†_›?£*Ó?©¬$?†~-?~³C?µÄ>ÿp¶?j>ôž>ï¯_>ï‘y?Ûœ½?ñF?4#T?Âd>…™>‡“=Û@=º¢h?T6f?nlø?nP¨?n6$?Lœ?Cœ,?ÐôÔ?àBÿ@ +Ÿá@þ?Lsÿ>í3`?„W?—÷l?4ò?€?‰O?u=?MÑ>„¨?#ô?PÅÐ?#çŒ? +þ©?õ@?ïÐ?ÀË1@ l?¹ßi?n_1?*a$>ꈌ?m–2?¯°J?vdè? +H?g#´?©Ð¬?¢ïd?–Oí?¨Ïx?Ó8?›åm>\e>“£û>è…­?"õh?Áañ? Î?ÃÝ?Æ4·?ÏÀ?ÎG¡@2„1@.‚ñ?ÓD&?ÌMV?Í}]?ή8?óÜÏ?ûŒ.?+.È>(î?Rû?œ9¬?·Ã?Ã^?­Ãp? ë§?‹ü0?E³¤?+Õñ? oQ?[¯>ñQ!>λŽ=[ 2?㎧?ãfÏ@&]|@(?]ØÐ? Ö&?¯K?Пµ?+þS>³?á?aä +?pQ>Qq}? Z?¨ø¢?Ÿ¦?~“a?}— ?œe„?¨4Õ?”·p?Ž5L?µ½?Äš?iî:>òBÃ?+«ñ?q¡?»R@4åÅ@'ï¦?‚Â?jQ?Üö5?Þ-‰?QÓï?#T_? .†?4?W9?ˆ§ ?ˆŠË?ˆ^?O’Ú>OÕ>}0)?ÖbÀ?Ù?jÚö?\???\&àeÂ?®Ùô@uß@º?™µ?“ +²?y†?}(j?«…É?®¶y>¥UÖ?ga?wì‹?‚æû?ŽÉ—? ü[?Ü2N?ãVb?ÑzI?Î'N?mŸ»?Y}D?¦Žc?¿D×?¾&·?½%?³jÈ?¢º ?œg;?XÐ?Xºõ?+£€? u?qÑ£?‘\š?}6¸?XMP?c!?qòî?k1l?X:?WÈ·?·/r?ÀR˜?bH½?sm?Å;@y?â|>åïw>Þõ9>ØK >ØJB?ͪ?×G¬?ˆIˆ?W1ø? ãC?Ìû?™Ü¹>üê ? *~?<ˆ?8>>üU±>ý°¦?o%0?‰¾??‚0h?p#˜?4Å>»×¢>ÜÝ´?Ó9?’Ö?ô¬^?ÿÝV@ 4@m%?ÀÄG?{¡?e¢?Ö‹º?Ö‹ç?Ö„?Öƒó?”ï€?ŠÒ÷?†Ü?~–?E`´?M?J–?Æn¤?ÇYú?EðA?9_,?ÑlI?ö³?æã®?Íק?À7?Á€ +?½ N?›Ý,?žJ”?ÿi«@#B@Å@ññ?Î’·? Ñ?ïñ@;œ@@$ÄL?P`?LK¯?T¤“?Vcã>mÊn=SS >¤´? Ä/?R>ÖM>ù:5?oÅÈ?q ™>ëÖ1ã?/-ç?V†é?‹7;?¦ù…?ÃH°?ßkÔ?ÉÔ8?%²J?#óŒ?Vˆƒ?Sµ¦?`Ô>ÀÃq?jýz?É0?™Ù¤>…ÿ">¹¤‘?x²Ù?v‹?ËïL?Þ®Á?“Ú¡?TÖr?;âÀ?\Þ?9?D*X?B©É>×CZ>Ô ~=›3,?mJ?X#ú?,?K>ÓÙ>µ7H:„ü<¨P=>sè?W_—?™+}?jÁÄ?'m?>_U??öë??=r?¬H¶?­!ü?±_?³ì?„ÒÊ?&ñü?6?N2\?MÙ³?Û’Õ?ëD?Ü?Ld—?Uʨ?~=£?çÐ?PSž?JJŽ?…®?— Ï?‡Øõ?äW?…ÎÞ?T#f?TÂ6?®È>ÅÇŠ>åÏÇ?1;?3â?­Ô‡?¼JS?VÕN= j#=Wƒ™>Ê5x>ÇÅê>¿Xœ>½âÆ>¦£Ë;‘q<8ô`=CSp>!3î?=¢$?@lo? •F>›&>œ—±? ô +? YÞ>®÷Ø=¶Ðv=Ÿ¤>Œào>­'>¤«À>e¹>†º >¦Mñ>Fé>0õÆ>x¬ó?%Š†?'ø¨>Úb=‚Ãh>Jêâ>P>÷>‰ÖZ>Úd>ß8k?õ?v7?ÆÝ?·K> dò>ŠŠ>‡Ùé=÷U99=ŒI®>Ì´9>ú^>ö<·>ñw<>é·>ÝfH>Ó¯>›9s=q-á=7‰8>¼yÖ?çl? g ?^>Þ„ó>,¯^;&¢<Ó =ÉÇq>JP=î&n=Ö•ò=À$ò=ª´c=–Qá=cï¬= +È<À£j<¡C¥<„…ðk9>€~F=ÿØä=³¸ô= l ?bü?K,=Lʲ=JŽV>®‡>¨ÿ‚>£b‹>üS>JBú> ¸‡=±iW>u]9>uÀ·>h]¶>­>ù1ó? +T?Wi>¡Ò3>ò>šì>hZZ>M9¦>1ÒÅ>4â=´€:=‰[>ë«O?væ¤?ªÔ?hò¶?Tz>«a‚=Òyæ=R½ =§h¶>(5>o³â>Œh>s¡l>i ?þk?…!?'ä>3dE>ÀÐS?ãß>÷†7>¸|§>ç? øÈ>õ£É>ÛñV>çÏv>îªÐ?$wù?mí?@/¶>îeš>¨=Ÿ¾ò>ˆ?2 +Š?£>ŸêU>–-Ï>Œc%>› +‚>ê ?C*?mêL?[çž?:f? +œ¥>±¤£>†#=ž§q>á>íÙ%>íÚ >íØÛ? Ú5?jÊ??à =ê>’JË>ïT ?I!?º?%?†¢>dHü>wPÂ>K™>Z”>î'p>Ù==ä3³>Ïò?[Ä>èCä<ºKn=wc‚>îqª>÷ôÝ?€/?¸=»”>en>û!9?"c?CžÚ?3kÁ>îÛ>îèÂ>îôY>߸R>¶ÿ>µ¬8>ï$>ï,ë>ï<¦>ÉCE=V:ýdI>Øõ?äú +?¶˜Ø>ï N>ÿê? _?7xê?oÒ?N˜>ïy>ù}?*Ë?AБ?¢¦Ô?{Ö>ð4 >ðA¶>ðJî?]³*?´L°?GÀ³=’•Î>ü-‡?]¶M?r¢>}w? Þþ?QqÆ?F>å¯í?!,?>ÓÂ?_Ï>ñ +Ô> ¦Á>A÷J??àÒ?|w˜?Ìj>ñLb=à?‚Ýu?™î½>‡Õ@=ù¿ñ?Ä*?%'ô>úJ">ñ³l?yŸï?hÔ?R(l?A£Ò?bw?UR>Ï ˜>¨*1?iòB?qú÷?q=?WaØ?±×?$>¾0>Ä­(>òK8>òU>ò\?€4,?òl.?Éã¯?Ž\®?ƒ(D?rŠ–?]U€?SD÷‘9?©f®?ñ>‹?<Ý?6á?wGp?•‰?¡åì?¡¨¤?]ŒE?<¡y?wý?”pª>És¤>¡Ä?H b?Wµ ?ƒz?Í4?¶]µ?²]?s3v?z 5?|…ã?k×K>óIô?!5Õ?eñ?¨‰?¶‰˜?¶Žk?¶“óx?? '¥?0ð„?—‚>Ë<?6òi?z¥ò?0D->ó¤">=ëÝ> ÑØ>óµŒ?´ý?áìß?¢uB?’<¨?™ý½?˜I?«ÙÀ?©5j?£¯?’Ë?sû?sDö?VY?c¯à?t?ti?roh?J1“=â…~>=×°è>Ê«M?a ?£&Û?Ùò?Àiù?š¶À?„ëx?Ho?d‡¨?‡ÑÌ?pQ?3Â>ëo<Í4/?ºeƒ@À?»ôF?ˆL¿?†?…,Á@eö@Ñà?'›?tŒ+>»çp>|¤‘>öÔ?ó‹<Ú*0<Yz?—™?˜=>ɽð>‡Ó=¿][>5BI?tËÏ?ZK&>æf?w?—i5?hé?XŽþ?\Öó?Q;·?{p?–*@?A,U>†™G?‚¿ˆ?ß`L?oO?U•¸?«Ù>lvñ>%Ü|=¾æ`?¯Ÿ?õ/?PZÐ>è@?Ìî©?ì0À?‰œs?uI¨>T5>%N?¥? ÛÓ?f†?}×?Œ†×?ˆTÃ?¤"â?˜e?uzí?…”X?®¹ë?•=é? î@?tÔ!?õ¦?߀q?¾,Ž?¤|¼?u ™?€Vœ?ˆåé?Vò´?!ûƒ?:i?CG?µ>õ¿Û?€ç_?©BO@ÈÚ@8è±?kÁ#>ºê‘?¶læ?Ù¶„>ác>!å?i(?uæX?·ˆd?Àß@63@(*U?%þ?]?VØ›?€g†?¸vï?›"‚>õøY?!§$?u²)?A”3>Ì|ˆ?öÑ>S>‚;†\¸>ž©‘>öh?¨à?O?¹2÷?×xº>úgÞ>pÿÆ?¨?Ê«Í?Ïá¿?Ñ<?™yç?˜]?;Èû?EyY?“½}?S=?^À?‹Y‡?“…?Þß?%q½?©?Ëp?)ƒa?uР?âe4@W @@\`>õ¿Á?ŠQä?퀹?’ëb>»J>ùZ/?Fò?Tã4?n¹?mšÅ?u‡l>¤í?°ø ?ýþ)?mL?|?ŽÏU?¦N@?Që?/÷'?˜d?¥Ç>IVv=˜Ô?­N,?¸!/@@kF>ûEâ>î`=¸¥ª>gy3?`àü?\³?XŒ·?AFü>ô‡">óˆú?!Ÿ?5)a?‚É"?hò¡k?¢äþ>òP“?TÀi?r'ÿ?Ÿñ>ÎÎ?NÍ„?n–¥?C“?:Ã=?˜–˜?©Î,?´O?´ò’?Äú>ñ>ˆÊ‡>UÄÑ?—{?ªï«?u•·?ƒóy?cûÃ?\tñ? l?\Á>×%>¯\ú?Û?\¯?–(k?œ†Ï?v)F?n…?ÙÓp?ëRB?», ?µïD>â)=>ŠŽ?65?¡¶’?¾Dƒ?ÄÝ?­óz?®Ëe?„â|?lLÉ?l›>ÆnY?gK¼?‰%Ž?U ?yXt?$ ¹>íc7?ƒ¯J?°:Ì?Œ»<Äà>oG?#>“Áï=ZqÄ>ù˜ƒ?}'w?XE–?&•n?WO?“º?¶sX?ñ›W?¯ß>%¹>úDä?Ðþ8?Ä» ?Ž0+?• ÷?ʨß?Ï­Ê@5!™@9 ?µK2?­S®?†· ?…žÚ?Ø¥?ìÚ ?Kåy>æ7€?_µ?6|@ƒ@`ø,@á±?eMc?ØY @+¿c@ eí?©éà?›•ü?ddâ?;Gµ=ìn?¬†y?­#í>S2>€‘’@ Û»@Ò$?~Åþ?.”+?6µ,?0·?xà?„?f§ª?œ„X?gø>ì.¢>Ôäç>0j>mÁ>ÿTí>ü»ë?âCj?á&?z~¾?hV„?ñ@ ÿy?nõ¸>*ç±?°Ó?„o?’Ù€?½¡?³I¬?Š0p?Œ”?¹íÍ?½,%?©?ñ?¦¬Ü?Z°Œ?Ct9?ÌË}@ô@¥H@!ªØ@à ?Ý-M?¼x>Üñ?¿@w{@tè?˜¾?\Qý?þb@oÿ@+ã@<“‡@-õ÷@-,@ ô?ÃÍÙ?µº£>¦îš>³},>¨è”>–¯Ô>ô¥ä?”åä>ã$1?Rd:?sx~?ºÛF?Ùt_?Á,?¢õf?Y¡?5›D?B{”?¹B?»v?‘c?…9?v (?m”?€î¸?‘D‰?¥Y?rWá?l ?*ÀB?J?÷BB@Kd?›]E?Wè0?‡9Â?¡ÙÓ?ÓL‘@!'õ@‘=?`o!?df9?Z.Ì?Wx†?#ó¹?ð½? g†F>”Ìm>Öëƒ?H?ôK?ól@Ø^@F£?’æ?ys?•9~?íN?ߢ§?Â:7?¾d„?3Ø©?3·y?–!È?¡Ò? u=לa>öæ@?Š??‘œ±?°îb?´m?‹åi?ƾ@-£@I‡?ÅaC>Ö¤)?§?U÷j?V¤³?V *?XÈù?Ÿ6±?¡YØ?óÝv@ú?îÿF?ã&€?Ë•¤?š³ˆ?«>§?ó]ó??†[?}ª¦>ˆË=Ö¡p>—>ÖxH?0#÷?Hg?“y0?›?— :?,µE?(Ýs?%?½û?‡v5?»Áb?š¶g?%p?iÂ?úB?óÛí?]¯?UÜ?¦ X?¯i±?cr»>ð/?‡­?†[J?„S??ÒØ?B±?U ?U +Z?ÖŒ?Ÿ£ ?W4>Ôœ¬>×Gà>Ø– >Æü[;\GQ@èŽ@ÅÓ?š•$>Ó]?0ê?D –?_ÜÁ?» ê?¶ Ð?e|õ?dBx>¬Ãö=´>V>Žj?eÅ?ÆÐ?‡pf?ˆï?Tb?XU>Ðõ>',?EÆš?½7k?­í?²\¿?µZl?o!?Lßæ?h{J?ulÂ?rÂÔ?p?iº½?h¦¶?s7? Š0>KÇ +>_K>{«>Põµ>˜ñ>©÷¾>¿–>Å`a?íò?‹ [?Þ„?ƒ>ÂQØ?.œ^?¾k?Œý€>؃u>¾Þ>ºêF>°ö>ž=;÷\…>Z?â>ÚÃ>Ýì!>¾àx>¶ª$?àá?4̺?38w>©î->bl>^ñS>®¼š>®¨è>*ä=ä˜>9®†>@@è>F¥™>Lùr>CZ <¥.=4Â=¥F¶=”¸P=„a'=h…Ó=HÂ0=ùl?m~? -ñ?2{>£ÇÁ>Žóí>ŠªÕ=Å›Ï;è<°š=Á>4¸>Š¬ >‹[%>‹êê>Š/8>9Äì>-TÚ>$sù>¨Û>±-$>Òc>Ôé°>ÅA”>‡kß<Ù´°<…²à=æ`>7%p>:+R>:¦>:oŠ>4)ú>+Ö=óÜ=Ä â=®Šð=©ÙX=¤ƒ9=žì=¡f=„gÖ=M;!=í<íàG<¸ÔÌ<Žäòµ$>ßÕp>Úâ>ÕÙ>úÆÛ?G>ÌËî>Át<{9r<®¼Ä>3íe>>ó>Hn­>aóS>Ž‡Ã>ˆ“ú>‚’ +>'=E>?Š>úOG>ùÚª>ùf¦>®†©> n>G1>ý>ú &?\9À?_D¹?b_Ç?e?h°á?2/?Ac>÷~u>ôWu>óä7>î‡ö>\“Ä= &`=ñS´>RI>¬Æ=ÉRª=GŒÄ> ä÷>]7>s<¦>d û>l©w>[°ì>J©‚>9‚º>¡j>ïÙ©?!BC?R©E? ¡> }»>Þq?Y +(?;¶;ü´>BÅ >îÏÝ>šVy=!¼>ržÒ>îˆð>Ý<0>¶Ü×>þ›?Hô4?\‹N?ƒž•?@£Œ>ccž>.s$>Rp+?CÊ·??qÿ?-Ëœ?›;=®íj>1*2?€y>øœÃ>íô>íôÀ>íóW?[r?mô"?Aš#=€w}>«üÝ>­µé?ši?b™?7Ci?ð=ʇT?!2Ÿ? n?w? ÞE>îJI?¦õ?f?Z+>îr?þ ?hÜ÷?Y·?ÔÃ?­@õ=S,'>4>È#c?nÖ‡?Zˆm>îí=>îúC>ï'>ë8ö>¼I>¾Yj?K? ^>ïM??-ˆt?³‹O?• S>à9>ó•?3ÎK?HïÃ?O\m?I8_?C?8c?1²?7\:?=£™?mý®?¡$)?îÇ?Vã3?;„?Í®>õ.¦>îÁc?-Ôü?s‡?jy&?PúI?† Š?¦4€?Fè½>ö? ³o?:”ç>Ú͸>U8Ì>¹ÈM>ñ¥>ÅÜ¡>º' ?($¼?T+‚?žlI?´§?4®N>ñ_‰=ÎCA?”ì°?µ&t?­½?Ÿ:?Lxï?;ˆû>ù„>ñÇð‘ ™?[ÓI?&_•>Át>)I‘>CÕÎ>Çù?46´?Wï.?— u?ªÎ ?µñ?“ü?_s(>åy<½iW? +§ø?r²X?ŸøÔ?»‘ž?Q U>òàm> G>•ðó?3æG?_ +Ž?>e?9•D?|jw?ŠÎ>~Ú=÷“”>è?»>ó8³?µqŒ?¶pƒ?¶t9?¶cÌ?³žç?°UG?­ s?•¥8>óiJ?+É?'"N?)vg?/ÈØ?zÑá?¶«K?"?¤Ö>Æë=½¼Ó=‰Bá=)¦u?C‚ð?¶Åñ?Â3<Áwø>>Í’Ë>DÅt>­9?uŒ?§&ö? YÉ?™Õf?™Ô=?–?êˆ?ô7@;â@è?|î?nš:>ŠU=´Ë_?t$¹?‰a6?élï?ß›Þ?Åi?˜€B>«‡õ? +ØÓ?’µ½?”^š?™â?1Œ?‘üv?z©?@®>ðh°>2¬B?†û?ï›?‡õó>ô„Æ>@»=õ!f>Û‰? ïY?.Œ?lí?xhï?”E?cy>ßÔ¶?f%?flS>gÌä>'6Û>Õ@>²8P>ôÒf?"WÁ@¶×@ "?·ú?”©=é >1·¢>ô÷×?[K?u?hë­?L˜±?(ã¸>õ?ip?´´¨?}¿? +½Í?jÀ+?¦¯¿?ba³?-ì?…jË?­&=?³b?·¡@?Š$%?|Ï€?p„V?eò8>Ô{¾>ØL§?“°?!Q=ç„;²ß?tš +?€9ì?Í×ä?Äu½?É‹?ØJ÷@ðÏ?숾? 1?„æY?k“µ?‹~9?¸ ¸?äF^@¦-?þYW?¸Hn?„Ž?µ'??c?ë>À8%>?€Z?ϳ?5¼ð?7n ?0º?*³Q?%Li?Á!?æ+>©>ðÅ?ˆ@ ºÛ@J‰?»ë¤?³Ÿ=»'’>'mX>Ûé?g×?Y6ú?c×e?‘J¤?„à?^?j?]Z?:(?9€•?R¤¦?Wo±?K{$?]P?åÝÑ?œeY?Zf?<$h?iצ?.ŽÛ>úŽª>öP>õ}Ó>ô]z>ö@?W`?¥†Ñ?^Fg?QœP>à>¨Ö?ôƒ?+Xª?‘ž1?˜™?™´ž?’7~>¶ý>²“Ê?u ã?wY?¤Y?1*Ý?‘4$?”ÓC?²?´W?¶©ê?¤Bm?uàý?ªÉ:?ÿ®?ßðú?¨¥6?²µG?ĺ—?OÁï>~v>«¨‰>õ«ü?ˆ/£?¸8Î?tmn?7{É>ÁÑ•>TñV?U®%?‹¬?Ï?”_?Œí)?ˆ*p?“Ñž?œqf?2?àé?vdÝ?u l>õ¤—?w/?~{Î?„4H?ia¿?c/?M¬?+Èv>a~J>ð¢ß?¥M'?”LÃ?Gü(?6= ? +Ï?8îû?˜”Í?™BA?”Ï?kÿv?"?"j?i9?gx?n ?‘ËJ?×L?Ÿ¡g?eØ?i¦z?mw¢?r?sm[>½"õ<y@?oJ??ºž`?‹‚É?bô˜?B…É??ð.?Îö¨?ñ‰å?ÐVë?É >?<Áa>ò`Ë?¤‘Ž?½d†?0¹Ê>ô ?VWÄ?d€˜>¼‚;>”‚?Ôé? A?q*9?„_Î? +Ê+>ñ)?xl?µ?Vðñ?Y³·?®Ô×?´oì?wNX?pfx?° Þ?³¿!> „:=¯H×?Ÿàü?¥ß8?t˜Ý?oŠs?2Ó?Ã?­$?³Tb?·Ô¯?²Ó¬?Šk¹?„J?ï1C?õEÉ?H>ì8é?§_Š?²t…?”“?Ž‡}?­-v?¤j’?¯NJ?¸ßO?ÊÍ?Ð;x>Ã¥W=´á¤?_€Õ?†Ã–>¶Ó,=üs—?Ü03@Qx?ü-«?ë¬F?šÝ½?k^ ?lt‚?oì?×á@?˺H?Ÿž?EY@>¾LŒ?"Î(?jM?4õ">é½ê?$9¦?iu¨?Ÿy„?ñf-?ÀC˜?Dp?dd)@’?îíÓ?ï*?ŽÉŒ?”ÿ?”<œ?5p?„Ò’?­•3?­z ?€þ·?p+û?2§×?2þ°?9é?1±>9¾=õûä?òï@9Ñê?âˆ:?e…Ê?â!h@+¢¬?ù³?dí¹??Þ¹>èF`? ó ?V»Ì?U;Ã?oË´?qÝ?B][?=W9?ÄC”?Îz¨?À8¤?·Ãô? „E?™7×?g.ê?<k?x?¿) ?Œwt?*@>ÒŒ'>q6>ÊÍ?Œ^}?‹}&?³À¼?¸N‡?Z9ï?G—!? ¯?¶æ6?\íw?T¿?¢_t?ë¢?°êV?FR-?<¶4?µx?"ü?O–¸?CØn?¦ßç?¦å}>Š,“=¿²º?)4Í?^¢?]Ø?]¹È?  ™?Ýz-?»ú¸?Xâ¿?M3Ã?4Ò?D\>j¨=òÑ|?¡kB?Âs?™û?|~ù?”,Ÿ?¥óž?„§ò?äŒ?÷7?Ÿk? u–>ØÓÛ>Û-r>XÃ>;—ä>ŸË>Ì>U?TAÙ?¤|“?È@ +Ú>@SK?dG:?Y¡ +>ûH>ì?à?„º‡?¤ô?’žÙ?„$Ç?hç•?"©?.¹?pW?rÍ:?Ø$ú?Ù ¦?¥wh?œp?>j´>é‰(?zè”?ÔRø@ð@W×x@Qúß?Øž?ØOñ?·Ã>Ú‹©?ÄUZ@rE@»%@ Mg?æÈ?WáÞ?W×b?WÎ?W¿™?‰~?ŠoÑ?ùÁ?å=??§É?8,?‚Y½?éø`?ë'ò@ì@}²@‰é@­Y? w]?`Á?@s‚?!Êj?MÎ?Á§Ö?É4²?õÑ&?öÊ#?•ÛË?®?£hx?Ä«'?ªê,?:Ì?o›J?sâ?¯:?w¸»?€[u?œg>ú˜^>àÛ<>Öã¥>”ÖŽ=›yØ=‹³?=‡Ÿu=€‡?S”C?Vï ?¶/>ÖÕ°>ÖÒæ>Öç€?ÂÙ?Vφ?WoH?^TD?`cx?w?Éý@§ë@.—þ@Î=?ËÐ?ÁSh?» ó?±•I?tÑ?tØê>¥ie>ŽF>Á.ï>Ö¡ê?œT.?ߟß?ËtA?¹T?³åg?†ej?ƒw>Þà~>Öl¯?Ò@T?îql?Yn>‡>$?šÂŠ@2—~@Mž?V(?Zvû@Åš@HŠ?ä?Ë£å?}ó®>õ»î>ñ_È>ìö?˜º?d2w?_î~?›þ­?ŸÊ$?%ÝC>ÔÒ—? V&?T˜~?H=? C[?y‰?[)?‘®ç?lÏj?SHÑ?çú>­u?>·>PÞ>gT’?‡?ñw?!Ø`?,ª½>ð8@>¤l'>¡ÛH>5™u>KÎ9?&„L?ý?‹þñ?»¤@?Ÿdì?N`«?N ò?M´.?MY˜?±ØJ?¸òÃ?™òê?‹fä?n+>Ë¥>ÍY?Bjd?IªÖ?ƒCÂ?–‰ ?^s{<Õí—<¦ô³>´m>Æ>1cº=„Z>ÃÃh>Ã+b?v‘$?‘k?^–ƒ>ÀˆØ>ÅÇ?urÒ?}f%?rÊG?^”k?M•A=Ö0"=Òåš>ýwî?Xw]?O¨Ý>õJi>þ‡â>òâ>´4ù>³@(>²±9+>®Õ>'Àñ>¯—>Œ©,>½ã–>°yÉ>lm‚>H>6¢¢>%cå>V•>*À#>æÈ£>êEC>Õ›‡>¾¿ü>µdR>¬#§>¢ôû>šz>–_š>”È¢>“/V>Ž»x=¸Æ<»FŒ>G`¼>{†>¿>:§^=ŽcÉ=’XÂ=›´k=¤ð=­°=µì=¼œD> ‰@>+ =Ðõ=¿±b=± 6=¢Íë=”û~=‡‡ê=uò=\—=Cîz=,¸ð=þ=QR<ÚQµ<´'“<,=×<±å =D `=ŒÕd=­åÊ=Ä>Š=¿q=²\›=¥'¨=—uã=€:ª=JÒ}=iÍ<ó¶–<·Üà<‡ è<=ßÈ;öe@;‚†À?8É–@"Ü•@žö?³‡Õ?mV¯?­µ>€'„=Þ`>Рì?/ç>I¸ñ>B]<GÀ:éç>§ýB>»^?kË?B’=MZü>q>|U>ƒ°>¢, >Ø>¼Te>šëH> ê^>¦û+>­#½>³\u>¹©>À‰>ó¿÷?±8>ø—Á>Ú;¿>à÷>çÆ|?8õæ?tË?2+ >ôˆG>h† = rˆ>‚sÉ>ÒÃ>Êí–>ÃZ>»Ó>³+>«Q>¢âQ>šµ->’|‘?*³Û?z}/?§P>b ž>åLº?(Eµ>ñ-ï>¡šT>ËÉ­>ðú>ïáô>ïÓ?(h?bÆæ?êË<ëuü>Q©6>ïŽ>ía>îô¬>äNL>Í #?)?T¥N?'†>L >Ü!?nqh?h k?e+/?!x…=lü/>1t>{> >î&Ï>»Ž!=¿Š!>6lü>îé?16?jÖ—?Qž>î?>î8>î >õ? E>ä£>¤€?D}Z?C•…?G Ù?+G>þX>ô9n>1ô >qÁF?+™ô?6×Ù?Bô?>h£>î_‚>ïe½>ïPX>Ƈƒ…?«šÖ?›µþ?F1%?1‚°=«Ù‰>îÓ>ì@V>ö+K? ¡ï?%t? G?­Z?/‡?’/q?›A_?¤[ë?’>ï^ø>µÆ=kçh>¤Êã?^iÿ?=ð>ï¤Ï?>?oÁd?Y²Ä?.?F²V?bž=?5éÞ>ð +¥?1d?†<Š?FŽ>кp? ßæ?m5¤?+•;H²€= #ð=Êó$>i>Kqò>ü—ø?Dѯ>í-Â>L?§>þ-¢?8c?mŒ…?{s7?h†?Tż>¢¸=Žqf<{Nß?1º?q˜Ð?ú`>ñrÝ?<0˜?@^ü?¦âà?µ5U?…‹ ?ˆšS?v/?qÆ?.Ç?$ÅK;•øä<ÉŸl?YÜÕ?j>?µ‰©?¨wv>ò G? ¬¤?f»ô?Dù¢>ÌVq>Ø¿·?bÕ>æ…e>B}?v>û¦> ˜?ês?“á7?o?Ñ®>ýÛ–>òÏ:>R\J=k >B>w°ä?*’?Q (>_éž?Öœ?6š>®m1>“Ž?;4?>²=>ü÷>óD™?2@?ë¦?´ËI?¶‡%?¶Š[?ª¥Û?‚>?%¾Â?2ùµ?1+³>óˆE? _?<Žß?’>VgJ>ÿ<¨?ŽNa?‚êñ?Xh{?JÛ?$uœ? ¸‘>ù ü?=-?veo?Ú*@õû?€ )>óð‚>Á¾> œÕ?çû?0¸4?½2?Ò4Œ?dna?J»]?Çè-Ë>Ö?aêˆ?„Ü»@7-¾@(äè?tH˜?hk?6ŒË?pÔQ?ǽ?¦FD>ôe9?_Êb?ÙÕ¡?¦L?-En?y5F?·`7?¾ˆ?ÄC—?1?t”1?™…ù?¶d?YN>ô§m?©°í?ÕúW?­¡²?›²?g˜>?Lqž?gr>ôÊñ>üý>>å&a?¬Š?·¥É?(¼?óG?·°Ì?¯>ôö`? +‚?w?š!-@p_?õ€*>Ú•‰?$¹M?ž{??cg¯>•´u>­Å‘>ÅÎ`>æÕØ>õ3Ê?•Ð?õñ`>õcž>úŽ ?\òµ?upb?¥Ÿ? u>Çr7>­²˜?®8E?®>¹<9c(=Ed‚?—Ô©?˜ü?Õ±?Í.û?/,½?uùo@¨N@þŒ?ïlŽ?¼ ¿>ò°q?%Oa?w/Y?}?hæ?»üL?êh?’´½>õÚp>õß©>õá>¸GÞ>„Ƈ? /X?2n?`Uû?uôÿ?XZh?T9å?µP?ÃüÊ>Œ=C×w?Z$û?t\á>ÿ˸>úˆx=Œ‡<>6Ñ÷?UN†?JÉ?@Há?OU§?¥åT?–O”?Z£>?[º&?;ø¢?$Äe?õÕ>¹ŸT>ˆI\?42?~¢v?¸Ÿ™?˜€W?v*?4H>ýÄ?Gû‹?v)q?sh¸?nqá?Í€>ö+@?ký^?ˆÔd?mÄ>ö(d>ö&>ö#Š>c{Ž>c˜?—-‚?–3?„½?‰p^?S\?-õ>ƒ‡>°Ø«?v ò?”c?ï¨?Ï[!?lûý?tø?uù:?—=7@=ïpà>nè?#Pc?†ùò?¡'?¸]º?$Ûè=àv>Là"?€ÉÁ?¸DW?oM?0›l?,(,?'¸›>Ç¡5>­C\?)å˜?1‚?–Ä?¥Yƒ>‹,I=ñep?äú9?óÈ?¸Ib?¼Œû@2æ@ €¥?²ä?œ «>éØ>Ÿt?tçn?z!i?€â?kW?SÏÞ?wGf??³Ø?tˆ]?ty”?tm•?ˆGL? ¶>?^ée>”Kä?aî?Výµ?Zßß?^Â8?ã@)…•?ÁB÷? ~>øLÇ>ó¿?DKö?s}o@œ @DÊ9?øîÜ?¶i?Œ?sœ?^³¤?S!ñ?¼–ü?ÝC‹?¡ÑÕ?“[>Éçû>Wi+?þ!@)¯?–ÎÄ?r#\?¬|x?µv†>òG•>™€z?|P?ˆnÁ=Ù9p?? Ë>?¥Øv?¯¯º>2<Óe¡?ªYr?´€_=Œ‚Q<ˆj†>ü@7? ç1?žá?œ¬ô>€Øƒ>…iÙ>P’d>f¬a>ìÞ©>ïmf?ˆ +§?ŒŠ]?^Œ?„:T?±Ì¡?³?‘¥?˜§T?d÷þ?O4W?}™E?…}?ÖE{?Ù}3@/Ðg@?ác>ìÚÑ?ÍÌ?ì–{?¿³?²eF?Þûi?ì?ëï^?ëÐÐ?¿ÌZ?­œ?«ww?©çI?—3â?‘Ø?à}ƒ@e.?Æi?‘‰§?(š±>ó¿?-•?…×p?Œ±?—¦¢?’¤!??cu +>èŸÂ?>>Í?¹`‘?Á“J?Æ]?¶,P?h9`?x'ö?¦úF?œ ?ŽÐƒ?‘¸a@@Y@;¸>Ϥd>RßR?­¶±?Î?ˆˆY?fU?Q9>éÊ?:×J?e¼g?e›Ê?fÝ>?6€Ê>ïr!?@·?Z¯Ò?>Kö?y¼?%"?dF'?wõæ?Êé¿?ǧH?ª•»?ª©Ž?•çU?–ߥ?Kl>üLZ?Ê•? )ê??Iw?XQW?ý}?©Ñ¹?’ ?XÍž?sÀ?©$ø?Ÿìs?EhÊ?>ã¡?‚ú¯?…N>h!=õ?b o?Šú?o”Ì?`l?D=ö?"¨?ZùÈ?¡‚È?Õ r@7Ùë@.îÿ?§/(?§tw@ ÔK@ Ý?Šcõ?^Iò?^#°?^»?Žêý?ª?»€Ñ?Ю?ÌÄÔ?Ãv$?»o?…zê?‚#Ö?sa†?x³[?Mà”?<-b?N??\=ƒ?\Èû?O¦ƒ?63R?íh?*¸#?fëø?b°¾?©¡?¢Xí?›î±?•‰h?³I&?Èžæ?·!­?±Uz?µîÎ?ÆÞä?Ìà?´1ò?³f?ê >Ú “>ÿI˜?g…?†sT?¾½¸?²Q?£,Ð?ª¬W?Ôfû?ÔÙD?fEG?]Ô?]ªÿ?Yt?Xù?Xêv?-÷>Úöõ> }=v\à=îWO?P í?4P?%§ó?)ï>Þzc>QÃ>s&”?'’Í?,R»?…L:? ž?I¥?Ü? ïü@Ò?ùø?ÌgS?×@ ­Œ@!ã„?¨±?ˆë ?‡ï8?‚\×?Z?€Q¿?xŸí?Œî¤?“pi?‘§?‘äs?•§>×<–?Ð?0—1?9!w?W2·?2•u=íÆB=÷£-?]ùÄ?_á>õÔy>ÍÀ?+Ìí?WT?F‘?¡NÍ?¡J?¡H¬?œýi= s?<‘w¸?(®?N`ç?R?Vþí?Vþ[?VûÝ?šn<@!é‹@âƒ?ÐF2?×yc?wR™?I@õ?kãã?zPî?R ?ý?ƒç>ÖÚZ>à¦A?bL,?^HZ?£·?¼˜? ë?ˆ‰S?© ?ÍÒ(?±•†?æÜ?Í÷@5v@<غ?%x ?¢DK@ ~–?ðê©?•ý¸?³M?ñûn?õÈÙ?±G1?«,]?oÞn?UÕî?Xdæ?W¸J?’f?Õ…w?Ìö&? >? Õ›@ß¾@Ƭ? 6Ú=vn¸>âÙx?Æ>Yë>™˜‹>”>ÏÐA? +ü³>áHL>¡Ž>±p4?¢æ}?£?. +§>ÖRe>˜\À>D>ÃÀW?œ;2?œ–ß?“C?Vn?˜Z—?˜ú‚?^Æ´?.¯?An?èãü?ê·@?W'?*¼?Óy>äºV?›Z?B¥V?Déä?)ç?•°F?7ÖÞ>ÈcŒ>Çá>Çak>ÆÕ>´@>¼û©?z©?;Ó×?E‰,?’)ï?’Q?Sw„?-ïŒ?øÛ?‹5?&>µ}Ó>³ß >ÿ«>ðŒ´>äñ4?´Ž?-c?3UJ? IO? QÖ>½Cõ>µÚ>´¡Ì>³¦Ì>²ªÃ>áÿY>ëÁˆ>àA?AY0?V|í?E2å?¦å? xó? ž?¦©?¤š?s)-?˜b=?šÃ¢?¥é?ovy?mÂ!?k«Q?iƒ²?`¢§>SÓqNÖ¾>‹2>y"å>ð3‰?, ?$È‚>÷[…=‚Û=› w=¦Ã=ž¾œ;ÆÀ=*úÐ=úýD> +"> •">K >Mù)>I8q>Dd>?j_>:g·>5UA>0+ª>*߯>"Ãê=í3%=Š¿À<Û\‘:ŒšŒ;¶ <ãH =AÔ=ƒ"„=v¤=¯Ûl=¥=Ž;·=}¯Æ=`=C†Ý='íÉ=Á=<ÍÂg<™¦”<\Qx?!‘™@&¼ñ?ñü?2((>Ð2‚=Ùo®>Ö?>Ɖ>VK >À)<ÛŸ? ?%/q>RÀJ>wÓ?lPë?bÑÞ?¦b>ì^«>v×/>4O>l‚+?Jð?Æ>*m>V&É>ú]>'Í>Øò?gó>íï–>€Úy>ö{c>s n<ò£€>€ðó>Öª?*d?\ò?$äH>ó¹>“ÎÂ>üD>(à¥>8ç>°H>ñÏú?Yä{?—ù”?l ˜?*2n?M}Š?p¿>ë#€>p'>ð*§>ð Ü>ïë9>ïʦ>ï¯?.·?oxi?9Õ0>ïC3>ï/y>ï`?It?šûç?q (?#>ÿ"+>—õñ>¢úê>Ô^ >èð>îzO?ý"? +ý±>ö½†>îRT>Û¾ +>º÷>ÄZÔ>Ρ>ÞN>î2Ô>î+­>î-?3•€?«[b?™Ú?\L\?mh ?–?s#,>Ÿ…S>œ\÷>ÈËÙ?#1Ä?²¬ä?ïb={Ñ”>¦¶ª>š0=ÄÆÏ=yVX=¶ È>ît€? æ;?mv1> Fl>@Á™>Á²>µp¼?4Å? ý–>*Gv?J(f?I€´?=A—?)±Û>NÕ=¿ã;(@=õü)>ïp#>®Îb>ˆD5?oŸ0?e‚¥?Hãõ?:ì?+h?˱>ïë0?;`¤?žú?hì­>±O?4)³?¡M ?K¯)=HŽ¬>Y(¡>ðf«?,g¨?]e¢?š¯ž?ÄH?4aò=·‡z>?Z‹=·Ö>)ö>ðù2?”Ûà?χ?ÃÝ_?Æéø?]É9?Í»> + h??B‘Ê?I+‘?Nj.=ܸ=×?t?íä?´$?½m?îµX?Ó7ù?rK ?€éŸ?™4?zHV>òp•>ªØµ>Me_>í…%?/M¶?††ž?ýk=ÑeÉ?|&?òz?UãôÑB4>®z\?`?[?+|m??Åð>Š°Ÿ>½Š?‡•d?Œ?vv?dï@@cÇ>ô/?æ?¶ z?­¯?ZŒ?S÷k?Me?…eR?ìî$?Â[Ø?sµˆ?l;Í?R »?)ú­>óÍþ?›†? ¾;?zT?êw-?Ó¾2?¶—í?!X=¿ð$>“ >>ú¸??Ë»?Mó€>°P…>L—^?à¶?3þï?™7K?°Æ?J£>ô;Ä?k1c?tG)<¶ú²:·>9<kš=.? 0?QÚU?ãÆ>?À»‘>ôs?Ft«?ß\[?¯qv>ôˆW?9sÂ?©l~?Ž? ø.?qä?¨æ¾?¿DÕ?Ûàè?¨m+?pÇö?,¥í>öî‰>úk>ôËU?¼q?ôÓo?ƒ±$?Dy=?Ô§¡?çëV?eä?7 †?ñ Y?óâ?¥bÏ?¥¢g?WÛ©?`è?“(?›ñ>õË?¿?·Íž?”6›>J„?)ø1?ÓÐü?ÅmÕ?·ï8?¡ôE?d«õ?6A»?rÆ>º£·>ŒÍS?„ƒ?á2Z?¨Ì?ug¶?7§¤? Z"?CY?kÍæ>Š’Ì9·|<}<`=Þ?K{Ÿ?u’‹?Áô?Ãëy@VÅ@PÆ?Š]€?“;¯?s;æ?X–ì?\Œ2?_ÐÄ>õ¾‘>ì}„>Ÿ1,>¬?G?Mª?PžÑ?ºUò?v€:Eª? î?³|t?™>?uê#?aÙx?[iÝ?.¾f>õ÷D>õü=>õýw?Kì?n˜ó?ŠG +?’w?€VŸ?v|?,«N?=õ?¹¤I?Ù=Ì?!=>öÐ>ö#O>ø½Ï?´Et?¯Y©?£\?§Áý@)i?ÿ>?ÒÀ0?É (?¸¦ë?«¬?€[Ø?v2›?v9 ?0b>8”º>fà+>”‘?ì?\?•g?¸¯é?˜Ö)?{°Ê?w9Ñ?v@Á?v;s?v@‰?¢äO?°œ>Å8÷=Єæ?²3ì?ÒT¬?˜7?Šõý?†¶?40??R?,Iâ?ƒnb?„½>ö.¨?ÈF?ïÓ1?å8?v$?nû?X.Y?€®ˆ?³?}×?¸;@3¹Õ?èÉ>Ùã,?ð»?Gq¤>ø9ø>¢?£¢Ù@î?VnÓ?*ÕA?ã³?¢€a?¨_£?”™?'ë?¾Ä>ßc?š¥i?®‘\?+äÅ?¢­?®ëì?·?vÁS?mä=÷<=±YŽ>aÜi>”[É>láÄ>sçN=îö¾?ð}?O&?<ç? H??Ïð?rô«?·„Ò?¢ZÉ?t–‹?tˆÊ?t{ ?‹6?Ÿ ?ŒL–?tDÈ?8ê>ô,j? ?w?Aeu?n¾?œÁv?¶×º?XV£>ó¬?Gú½?sU?µT“?Ùv? à?†&Ù?{?s ?¹n?ÊøÛ??7Æ?CÆ?`üe?r­=>¿r>l¸õ?ÀÑ ?éçt?Ýþµ?ÒE‡?¥¸'?¢×ì?\Ó?S°Â?®á—?µD >¢Â¼>@ Ã?MCF?_[G?p¹Á?q"U?q£?põw?qZœ?tN¯>蓯>Ûس@!:‰@à˜@$ ò@"+ ?=7á?3Ç?,H}?%Uw>!¸>/#ã?n%à?oH>\B>bB?kºŒ?u\³?#¿[?Ì?ÑÏ(?Øœ?×¥>î/?ü …@@?N°d?<^¼?ëÓú?ö°²? >í6ã>ív>ìý¨?Ñÿm?ì¾?ì—A?ì|ª?ãŒ?s¤5?yrä??j?,Å+?æ?aËr?€f¿?3T ?¿–?d?$ˆð?jÕÝ?ˆ¡¨?"Îè>‘ÑD>Õi¡?¥\?zÈ°?¯[•?–?i‰2?b ?H«ó?S÷d?zC ?…¢?®Ã?­<}?•Á8?±K"@/¤@%?!J½?(«@[n@í#?¡tí?Ÿ[ò>P¾¿=BE/?>GM?fŠû?fg ?fAJ@F—@)2÷?Ë»Û?e¬`?ôå4@4e?ú·?e?Ÿ+B?îú{?áœq?ÈM?®3y?´>?0¼@4ˆ@ E @\È@ &?8––>üµa?PÁ?eö€?ƒK•?ˆ±W?|Ym?]°?nñG?P +?rR?Ð3T?Å!¹?© ?Éí>á;®>áï™?!Áó?5?Â2?×¹ª?†¯ä?SGÂ?«?מO?¦97?[ïû?9–â>ß¹b?}G?§f?£ñ?c!c?iºà>üÜî>îÂ"?³àÞ?ÑÊ!?µÎ?¦Šû?ªí?± „?ßú•@UÐ@ +~}?¦H?£ÍP?]4v?\üf?Ž¦L?‘)i?ÁÚ²?Ч?´Á$?¥@ +?…ˆ?&‚?;¬©?ŠÜO?²p?éá,?î@ a`@ÙÏ@ Z¸@Œ?®ø¬?:°?`:>¡ŒÑ?#pù?æÏÔ?à<†?Ø>þ‹"?K_t?Z-á?é¾@Yº?ìV? ›¦?¢Ý?£F?£8i?£)¹?£¼@ã@„®?]Q.>áùw?(-^?P˜ˆ?oæ?ÙK?{4>ú"=?×?Œ×¼?‹º]?Ì`Ù?ÙB?8î+=÷ ¢>æe†?[³.?K$¹?1=o?,ò!?)‡?o?*L=?&é°?t)z? Sõ?‘„?WáÍ?jø?°y?¶Ðá?„Â?€È?‰R?ƒM?²›?Â:?n Ó=âjÇ>~eÉ?W‡E?S(í>³”ÿ>³Bª?¡©ø?ÂhI?Œ…+?Mz?S{?W\¦?n±ñ?£A'?â÷<÷)t?+ÝQ?WKÎ>³?­=(?3¿F?Óp‰?жP?¿Ò­?º„?˜ö¡?˜w–?Þ’?ìf?Ï:Ó?½×?ÒIb@D ?åæÃ?0YC?9€+?z'v?qg¢?†mä?Šì,?SrÃ?&º?=?XB|?Jîð?^&“?mP?±Ãÿ?­>Ò?DU7?/I¥?”xÖ?ÅË´? WS?7«p?[¼m?É=Ä?Í +>„W=£—%?Š†Ú?¨÷õ?ÿ^Š@Þµ?ë#?]ÞÔ?‹Í@t@h?_Jµ?Vö?•`>? c3?¿¼3?Õ¶.?­­V?\$,?Míõ?z—? r+?<Áå?2 ?Gú“?TƘ?NÍ?’Lx?ô ?—÷L?ž,'?Ury?NdK>ÚAá>Ów÷?Y“!?‡mã?i™v?%ŽX? '–?†aB?‰”á?0¬?%Þ…?>?7U?W¹?‹.?i?£@?§;Z?ær-?ëÓž?.MÒ=•<±>׸¢?…Q“?|Þ=æºØ=®zX? < ?F¢ +?bt>ËF¯>ÊÜ‚>Êj>Éö·>É¡¡>É ì?œa?@wa?QÜÌ?‰AÏ?† â>p9[>¦Þ>¯ib?îÑ?ÁD?Df8?B\F?_~G?^y!?ºF>Ì3V? +›Ô?–>»í>>»TÄ?Œ‡¦?—8Û?SUP>fQ«>mÖÙ>àñS>ëÂC>?1`?2ø>ôˆ|>èü>“A=‹ËE;™V@<Õ"€=FÑp=Ó=‡¬ž4¡t>,}'>–‹O>”ü>;›Ê>nÄ>1ú>ÆëÝ>Õk€>®'´>¥³>œ9>“3ô>Š{•>Ý:Át0>ˆï>2gû>#v>‹Þ=6K> þT>%À>'èƒ>)×½>+u¦>,É>-Èž>.À >Œ¨=™úÝ<^‘;äP=;Ÿ=©1=çô>‹>{Ð=øýæ=ç&°=¶Èî=‰N’=GZ[= +D©<³§ñâ?@ +ùåÎ=µæ>Èâ=: ¼>…X©>¨*©>À%Á>Ëy<Œò;ù+j>k3n>ˆ—?³'>õýQ>Œ‰>a–Í>·î>ûÔ>â±>°>ùO?<¨*>éHå=qú=†Ž>€%>÷ª>…˜`< nP9‚éb;å'@<Çý@<†‘(=ÀX=ªxT?wÿÿ?ÖÆ?R#>bÊ=Žùb?ÞB?ˆ£‹?>9>tB{?‰³?>)²?)œ¿?¿?7âå?NÐ1>è×=Ê+ >vR³>Ï Ü>íѦ>þ®}>óçV>ïÔ>ð$>÷p?-îË?bnA?µ =²Ý´?à?‡tî?t Š?E?@—(?;¬á>âha>|Õ9?'Áì?Jf?Œy¥?‰Þ?h>x?¥Ä>=ê.z=¸5Ï>)}G>îN»?g?i>q?/‘>;#é>¥Nó?^ô?!p?A¼?#£#>?O>_ª¾>q”î>á÷ ?š ž?|U>:5=ÍžI=òÝ…?Ú>ÓMx=Ñø=ÏY4>î‰G>À×M=˜H>…ùr?Dž?? è?N?”>%Ÿ®?6ÔW?%Ž^?É>â"¡>0nº?/.&?¦¦=}=>õ ?çÐ?¿?¡>îLê>À®º>³ê»>rGR>…“Y>’ •?(ÈI?šs?4”€>_L÷?’Ò?.žÖ?p^¿?9 Ê>ðx*>þ/É? X¯?,ÏÇ?W½?Bˆ7?>vò§>Íô>HÝÞ?+¦ï?hž8?hÓÆ?q$‚>²!Ô=8ÃØ?*‰r?q,>x.›?(áU?MÞ:?ÂAg?ÒºØ?…õ‚?q®L>ëó>ä%±?9o¼?R€Æ?(¼?ŸŸ?7?*?ðW?ø?mYR?e!>ó}?ô?û‚?$e>I:š>¶¾÷?FÄ?NZZ?>ç¿?=Å>a²3>†3H>¬È)?LÃÌ?Å?³-f?¥cÈ?|Œ?oj¸?réþ?tÈ¿?,I8>ØÙ>‚3î>U´ >ú|ð?!¯>=ˆº? +µÓ?<'€>Àµæ>Ÿ™/>¬ÝÒ>º"Ò>îý©>óm›?ué±?u¾h?s‚…?lª=/t=á5(?$‰L?VÄ?Ñ?³LÚ?)¤2?vÁœ?óÒ!?ÉÄ?M ?KOùì?„ .?ïá¡?Þ[Â?É5^?D&·>¯›? +Ù?)§G?o>ö2—?®i?ÃÆ>úê>­Ê?+j~?'Œ;?‡F¯?ƒ¯‰=+À_=”ÌE?µðN?§úd?gbÉ?jM?”;i?|zÓ>i?m?ô¡‰?Æ?4^$?8©Y?5P˜>ÚžŠ>•º>ÿ$8?tÆî?OŸL?òð>ÿu¸>ôÙÁ>õWŠ>ôäÁ?A¦ì?_æ? Í?¯7>…ÊV>8’Š?`—|?’qó?™Ê?”Q@,@9,?aÂé?WÏw>õ*>èY”=Ëÿå=ºG8>õ<Í>÷…R?‡e?=-¨à?TÜ?ˆÝy?™É³?˜:¨?}?mÀ9>—<í>µfÝ>çÍ1?Žã?œNÂ?}¶?u±ó?›Wg?¤Ê?š¹? â´>÷›_?FË?§¥¤?¢rT>¢œ¸>œÊ½>õÜß?4qÂ?ÁZ?Ái?ÂC?ÍÌÅ?õôë@žõ@‘å@Š-?ì½Ù?äz?ØY±?àZ%?áþð?ªðZ?„¶Í?UO‘?7??im?‡V?œÌÜ?¥pÉ?pë?Z®?`k?ey>;Æ-==©Æ>åcæ>ö7ê>ö<†?"‚?DÄ?ˆÀµ?¸±º?µÆ ?­Iº?ÁòK?öIQ?Þ$½?–UÀ?«ÏÆ?Õë¨?´¿D?vO…?EN‰>öT½?Ok"?–ªé?e™?ÇÁ?‡OÆ?¸À#?¸ÀÁ?¸¿ø?àza?ñ¹ó?Ã=é¼”?éç?,Eÿ>¡M?Š~!?§qF?ike?gNÈ@ɯ@^j?Mùñ?X¸ª>öF‡>þõ^?Uä?=ä?.jO?5<«?v5¨?9%Ñ>å>ö(E>¡^ý?ï~?Ì:‘?î³>öÉ?TC?_?Tò +?vîs?¶S1?ê:?™À–?@mz?2é"?%nÕ?p>ó?‚¾î?¸Òn?Ðs‚?£;Ž?›Ñ?óbG?ÿzü?â?‹2á?´þú\_?2?_JÝ?VÁS?N9?c l?½B?¬M ?N?lpø?HVƒ?#ì>‹†>ÇÍ—?7˜â?xï?·P?—+"?GÅr?:õh?+ +?žøÃ?ôr>?¹S?tTL?NE¨? hB?‚'Ô?²4Ÿ?^2?>óü0?D¿?vtî?ˆT?¬uê?­sŠ?­³?‡Æ?†Ž?{`S?sV×?sBî?s2„?|Ô?…?_õ?Eˆ‡?Á{Ð?Ðÿâ>ë>ŒˆŽ?oR‘?|Xu@#J@#}¹?ŒØ³?r?1é}?%ç?¦P“?­Ü€?ªÛ?­S—= q;;õh~?lO¬?q8-?q%—?qf&?°Xï?­Ý>ñÇ>óç²?¤#ñ?¨ðõ?+ûŸ?Döf?¢tð? ´5?žøË?œ ã?Uø6?T`ó@ ¿L@Ê|;¸‹m>ïZ>ðÝC?œo ?žô?ŒR–?pf?]®?<»?¼”Œ?½ð–>RÑ>Ä?ÿå|@ +53?8—1? ?ö>ò´h>í®?¤K~?±Îê?äÀG?ìŸv?7e•?g?¿æé">î3>ó@y?Z;?,Ø,?VGf?eä?¨Æ£?׺4?ª«?eS?ƒE?¢BÙ?¹ãë?ä½ð?ÃÅu?÷?NEÁ@+![@++@@7Êô@8M×?ÕQ˜?Ä&è?­%Ó?ª`Ë?Áê¸?ÌT±?s+?GtÊ?ûôÎ?áúP?œiŒ?ŒZ2>á~>ù€/?¨éZ?¨Ò>?£ø?£ñ7?ü¯>àŒ?;_?_õd?!úB>àV?–Öd@ W@X§?Ü× ?Òö¿?¢„u?¤Îâ@S‘@ƒe@@ãX? ‡Ý?w¹[?Gø?*›?Žùt?ÙŸ”?·Å +?;Öa?;¤K?Š0? Ò?¤Š-?¥ÈP?œÞŸ?¢jÐ?•w?‹@A?E}J>ø„š?}Õ?½9?,?•b½?ÌÖ?¦K9?ªC-?§ÉY?¤™Û?4tÚ>ÛF–>´æÁ>q»o?<ìò?ñÏÇ?çRc?„»,?~ù(?Kšè€?0Äy?Z$V?„ëÉ?£{º?•±M?\‘ ?^ž\?nF,?taÈ>ýª*>ÙyŒ?zs?šp?†—Z?nxº?cáÎ??¿B?Y™2?Ê??É5@âD@?èRÐ?Î#?ÁD?¿§?¢;?X€p?Rd?$? ò*>Ù¬>çâ¨?h"?vQs?&R®?3I>á¦>ŒV>íí*?¡ÿÍ?¡ëï?y" ?s·?Ì5?ê†Z?{?Ã>°öÝ?àX?Hn ?,› +=³Š*=’´þ>Â˨>Í„Þ>å´]>Ý^?*åö?W”?ªÀ@·¸@jé@Á?þ¸ò>ø >è…ï?§4ù?¾:÷?­¦\?©ñÝ?‡=ç?*L¿??b„?pfÛ?v—?âÇV?æú?žú ?ÿ?¦ø[?µA)?½`&?µÆ¦?¢R?ƒ“3?„šê?…¥Þ?†±Ñ?ˆPU?„?@?£„;?·ì™?o×u>…y™?ã?ú—P@{è?»ö®?®®V?d ?w ?…?ÝB>¹Å=‹>‰>úë>ÖÏx>çð•?ÊÆÔ?Ð “?ÿÙÅ@¤?ÊJ®? Þ,?Š´?VaG?È?Õ'û?Ï›N?_2n?]¤4?ýÉ?Ñj?{0>öXV>¦Û®=¥g…=ɬf>H^>`£ç?„? +¹?‹lQ?Ÿg?‚sí?T{Ø?H?C™9?:<‡>D å>MN˜?Pž?' k?¬MC?˳·?‘¶Ô?-‚?è/?1³%?*¬¡?nÊò?n?O"¾?81æ?#›>ù™?”Ë?›ôH?šÖ!>ìÏ>Ï ¶>EU=L2n>õ©ü?š#|?‰˜C;cè>¥hÒ>ËÕý>P9Ç<ÉT=ÚXÐ>ÊS>Éï¨?©??·HÞ?Œ-‡?]?kDs?[?¥?Sç ?Ž!)?“ÜK?•¨‹?žÊ ?–_ð?h¹±?meè>ÄÓ=ä½? |‹?ÑM>ËÁØ>½ +>ìéj?š. ?Ÿ +l>ãSF=Ë7ë?"?Q?$3È?>ÒË?B,°?5¯=ìù%=_š2<Ýl<([Ô;ïô=qƒz>šA>—4Ô>’ò>Œáf>‡É,>À7É>ûNl>ñ]q>°">šgÍ>˜óO>EÑQ;– =‚Q>¿ß¯>Ñ`2>ǵ>q>” Æ>™?µ>}}n<O”9© >KÄ>³ 5>·<>¯ P=Ø1<<‚dz<¯ì^<{yA<r<lÛ=ŸÛ.>#Ë>AÖK><ä(>/Š+=ÛÞZ=,f<(D¬<‡9<£® =A÷=ý®ô>B?>d>>Bh•>01>!ƒ’>”=Ó|= *<øÒ<¯=À=—¨L=ȸ=ã%Ø=ëL¸>±Ùg@ƒ®?¿R7=ñl>ɦ?BÛ? +¨Õ>¶á[>ô>‹,>G‹x<þ”T> >‡Ì>`B>fxé=« >6>“¸©?$åË>ãQu=”Dþ>JaK=á…>7Žó>â +ò>îŸ >÷ºB>÷Zy>÷>{P2>åáj?]?D >ÍYä>;˜?&½(?Yc?ºí> ŠJ? J ?80?n‚>ã)‡>/k>˜m>g±Ý>ÐÌ>¾ýR?¬¶?(º? +œú>Þ£=““>ù"6?o–W?58>ïùO>„i]=1IT=¼¤j>#o¤>‰Ìõ>³”±>è‰?S?DD>Äzü?!Ý?nï?fØ×?J™?<~Ï?Fi?B>±¡ç?v’n@â¯?ÚÌ´?d…ç?ˆ?²b?s¹™<0T€=/6 =Ô—D>[Ø>¾I>ÅDb>îZº>ÃÌ>5 Ç>\@†>{ƒé>“y­>îc‘>ü»m?±)?º¦>²þÚ>KM>YÆ?gS/?lß‚?n’à?5üÏ<ÛŒd>ž>Éüç>ª.¢>oTÂ>Ýr?nÓå?5¾Ê=é=4?%c>ì?Ñ>*]n>ŸÔ=õ’>È\š? ¬Á?ŠâŽ>üºR>®ÀL>‘!0?g\?Fœp? Xî?LP¸?£Xd?†Ù?$ýg>ß»i>YN>–™7?AŽG?ÊgA?uhç>ÉçR?n¹?97K>öÊØ?eÓÖ?¤—?)sÿ=ä[¤>Ÿm!>ð½D?cY÷?™–2? U>V)|>ñz‰?!;l?‹o?¹hx?Š\e?bB¥?»O>ñN >ñZˆ>ô½î>ç¹>Ô³`?á®?7­?±£±?É~¦?H¢•?.nµ>‘·ð>Y_>>èA>$µ(?†ý2?‡6[?ªÊT?­Æ%?­=?©#s>ò8à>׊6=1V>FñG?\Ï5?*'9=*S>@Î>³·U?6’Ž?HÓ?W?K¦°?Q&Ê?Ž·\?Êe?” +r?¸Ú>÷->òúí?=+Æ?s ++?*‡‘>óá>Ëâ²>ªˆ?X ?„ئ>æÍ:>k+6>Õ$>ó[Ø>ê >Áø >ª==˜Åh>̽>çÌi?²ë’?´Ln>ü‰o>÷“‰=cN†>ó»²? #?~,}?ŽÒé?ë?†)¢?@j ?1%Ì>åüœ>Õ"Ó>óý°?,ra?t b?tì?t#?™,C?°ì?•kä?‹åå?iYZ?V¶Î?O]>ôI>ôK‘>ôT/?‚Wv?”L²?·3w?ÏW¡?+Àµ>Ò›T?¢ÖJ?°ª”?ïK ?ò›ˆ?·l´?³V‚?·r[?©/ð?·?"î?n?}m>”°?:b…?ôÄJ?Ã&1?Cíº?œF?ô×?«)²?õ??€ã?té•?ÚÕ_@øZ?éŒ>?²Š¾?¬Gz?¦X?H«÷?Њ>Ð&Û>Ÿ‘Ð?y]7?†±â?@¿?$Òô?–µ™?¢žõ?à,Ù?åq?+Zœ?f°>õMS?ÈU?¸H[?®?q¦à?SäZ>õeø>Ù(Ø>¨N˜?#Nâ?¡Âó?€X>Ðæ‘>»ÏÎ>j 6?Nú?d¾D?s»Â?bža? + >ˆEc?±Ÿ @ ø?†Á&>õ±y?—1c?²\l?}r?fG>¶Íº>¤ov?†d?λ?~²S?v L?…½?kðB>õæ’>õêe>õï? 8?uô¸?]Œ¼>õû.?ZÚÐ?ú£Q@ ú@8|g@Q? 6’?yL¦?ȉ†?ƒÜ>Ù*Ø? +G?ö$µ?Ö2?Å$û?À‘W?¸£½?yq×?B„à?S%ß?L›ú?Nìå?Xg]? ÝÖ>öF?Ê? ’ö?m™?vN©<Ðñ™<™B¼="U=ÈÁ•?ïZ?%9‹?ŠÙ~?‚UV?%»?QÖÇ?¯‘8?¤„W?vc¬?›<Ô?Ýf ?°c¸?N¾S?,ò‹>ök,?†~?Ù²¬?ôæ?¯Û?´ìõ?¸¡³?¸Ðê?¸Ð"?Xï?"ý?ÙO?úž:?ˆo?U…?0Ú? Ù¼>È>Òlt?xg9?tZ2@½@.@>¸ã>³Ï?¾?'—*?vS?†ÍÔ?¸¹’?ªä?vG{?1*ö:[qÛ>$¾È>ö9Q?{g?Þ;?›É_?%Éæ?r,’?š[?•aÅ?É?ë?“|Ÿ?€B ?ný_?x ²?€„r?—JÚ? õ2?±gK?¼ÔÚ?²è?¦œ?.]I?,f@"…@Î|@L„@…e?»Y!?µm<„Wû=™òö>õyp>â“©>¤>²ld?ª#{?­²¸?Éþê?µX0?Sœ2?v?bZ?œ¡Ó?™P±?l6ä>ôåC?C¦?¡&|?r“ý>ô²Ç>‡†ª?<£$?ËSi?±EÞ?%?ºÑõ?êúî?ˆ2H>ô'è>=œ!<>'0?Ä?séÙ?5ê4?ß2?™ X?¶ÁÁ?_Î>‡& +?J¸|?sf€?sT„?sB'?€[„?{ÿÚ?=ü¼??8–?Í?ä Ÿ? S?>«»?ËÐé?à²?Ó®;?Ö,?gÎ?]?ºÂ'?¼~¾?kÝþ?k›?s>ôµ“?pÝÚ?t>¢@Ѹ@*“?°!ä?¬ëÔ?€¾]?éä?Y‹e?Vç:?p¥?iÚ>¦Óö>ºžƒ?´2›?¶–?ÖûK?϶%?iQó?€K;@÷@'? ö?n>˜B >­Ž¢?‰ûÐ?ˆŠ`?q’^?dæ?ƒX(?íÖ?ÜCU?ߎù?ƒÁj?~¼…? ªÄ>ú¿Š@+æ@2Å?¼ê?¯íh?zá??uF?°òi?¸ ƒ?|À>ì9>ÀP>ÐQg>¹Ü>¿•X?jß©?ˆÀ²?xªã?x&?`Ø?XGæ?£§™?Ä\`?¹Ìj?²¾?¡ý/?–a½?½«W?àó3?çÊ?éâO?¾)_?[t?£$ƒ?½!B?«”…?‹@Ð?ª…í@Ij?ä—b?tBs?ƒþõ?´|Ø?£í0>ëÏÄ? ëË@É|@©g?çi:?å*ÿ@ £Þ@!r¶?2Ø?X !? —>æc ?â¹&@¨¦?Ù@á?¬_?o w?ס>êŠ$> bÔ?(E‹?ŸÔ?žçþ?’?£í?ý¸f?øµ›?³|»?ºÊ•?¢få?§»®?Àìð?¿vh?Î3?Ï>½?H÷>À(Z>V˜==Ùj\?\N?Öp3?§?>Ý›?7»2? +ƒ¦?RÑ?©?¨>Ú?aÞÐ?aÓ>úX>àÐD>à­ç>áh>á¨>àK">ûëÄ?dÆ??2³?{C?d€â?4?P Ò@'o„@'TÙ@ U;@ KL?­ëB?– ?‰ ú?€›G?'?„\c?j Ç?.ú ?lpÀ?ÌEk?À‹>?¦>?¥þÏ?^¸Å?O|ö?V€õ?\êL?%j1>î5Q>gÆ>Ã=Ê?­¿Ì?¢ú>Ü@>Ûö—?Šhe?”R?#³>ûyÌ?rÙØ?ž¯“?dÄ%>êÐ?„MØ@"©¼@;5ïÃW@2Ñ@?BÞ?°¼~?Zmõ?]4w?akÿ?`)?Z²?Œª?ùB?ò†%?:Ž?¡ž?¤o?̸Í?Ã".?»,?”C*?Y^»?j0Ò?’ÄÛ?™—?Ív?Ï›?È?ÍD&?¯ÿ? íh?¦Kõ? .Ì?•(W?„,7?bÔå:;,B?¶„®?ÅÉE?tåƒ?&!ø>ÈÍ>hÚS?üJ?•®?”K?Cñ?°?no'?fÅR>¬SJ=ýÀ9>‚>Ë’?xò?U—­?4|£×¯D>ײL? öÎ?,ü‚?"B%?†b?6·?9šä?~Ú¡?µlu?™ÿ?E ?({«?¯S¾?ªôˆ?‡²4?„Œ?Ž×K?Ÿ¼?‡>v?$ßS?m§›?ß©o?Ò-B?AËö?JõÏ?Äà?×[&?+€9?.NØ?×HŠ?úUq@Ožô@Nä ?@Ѓ?5ý™?¢§Ì?­ M?=š>Ƕ>Ë^e>ϦŽ?™ž?VÛý?^à…?ÕÄ?ÖÆ@RV@(E?L3´=Kè=¸žd>++v?2´›@®¬@ Ö?ŽàÇ?Šó‹?Š%>Õéä? Ž?ÿ+?tfj?´%?ˆþû>£‘>-?:!?Fo?³c;?¾¨;?9…;>Z;=?Á†?k¬?@(>*2>!§?Ç]P?är™?–NÞ?Rì¿?bÖµ?ƒ_÷?oÚÅ>ÒÜ>ÑÝ>ÑŸo>ÑgÎ?×xa>Ò;?“Z¢?›%È?.& >Ðý>‡@œ>??¾@ +?ºç ?Õçô?Ö?TšL=¥/U=Ôpð>Èê\>Ú·±>•¼ð>~°?¶´?k•}?zÊh?¨ùî?©²´?“Ýê?‘Pn?„£0?C|N??Â)>UU}>:™>Œi>ökÙ? +O´>ü^Z>ôé·>Ĩõ>ˆ=ù>[Õ*>jä=ûâo>~fc>¸“ª>ß?E?†æÜ?ˆmu?_ ?3Ž>?1"¹>ÉjÜ>±\>¯ï¸>«¾Â>¦|·>ä;T>…ª8>¨Wæ>§&>¥íi>¤­>†É÷>1U>Jr‚>¾>¡.o>œ³Ð>™<,>4_>"Ä{>Êv>‹—é>“ËÚ>’8É>'ªÛ=Ù=Èf¥=·€=¦æw=– <ê›õ;‡=‘la=l9b=3üÙ<åcë=ìÜ>ab>e<5>[¯F=þ,e<²w&:òd;æOBÓf>1>K=þžž=˜×J=og2=W"=?·Z= Ý<Ž9n;t¥éRH>èÃ>ÅÂ?"oÙ?ƒõ\?D™?5>I¼µ>^A>—+Ÿ=gžW>b V>‚šy?8‹Š?2•©>V«Î>I´ ><œ=>O ¾>¬#Ü>Ü·º?8¤³?3>†ú#?Rz¾?Ä>Tlc>÷äY>÷…Î>÷,ß>ïp>àóE>Œö8>©ô>§#>õ;Z>hG>&þ>¦ìQ>#Aø>À´Ö?3|Ð?‹ù>Ü°€>’ˆ>~kZ>·X†? ¨?]Ê?aWJ?e±n?oë¸?r¹?37¢>ñg>óž>ð">áë>Êþ>Á{²>·ë>?²½?JD?/Í><8Ö>hÉ>{3u>­ÂÝ?G±?q‡©?Ä_?—¬s?6>µ·ë>™¾}?Vl?7il>ê é>î•€>òï>«%¬>lÌ>Ãv¨>óo>Án>=þ>+Ïd>¿ð8?DB?#+ê>îv&?A?N'Z? ‡=¤ØE>}üp>+¯”=ž^£>¬>îõù>±]=i>ÁÇ5?›”œ?at =ÙL>8Œà>¡L«>Äʾ?)çÄ?Ýí>eÆ>·²?5ï¨?ö¨>ï>ý¾$? Ký? Q3? ©? ?oX±?JÔd>䶟>éå? P™?DÌ2?•üU?eä>ü"t>ÛÙ´>YjÀ>¡}B>Ô×[>ßDZ>ôèL?kä?SÁË?'½Ñ>Ð~Ë>׬ä>³;Ž?*Òú?ï>¤½Š>nÇ>JûJ? )õ?wŽ%?kè?P³s?a\t?qu?rê>“ >ȘÊ>ñI—>ñM >ñaM>ñlœ>ñ{8?IHŠ?Y {?S(]?L¯•?N×=?\óö>š T>|yö?$‚?%²í?††à?w?›?˜“Q?f-H?d˜>ñ‹ö?¶?mm?t½R?šÓ#?v«1>ye®>˜Å·>™Ê>Œ˜,>~Íø>p‘5>´Ã?æJ?Ëj?}0þ?)‘>ÀjC=-fl?2ˆ?¶?Í?-g<Ë°>¤9J? ð}?úŸ>ó6¸?/œM?EdF?YbD?oô¤?C?»?*þ½>Á)«>«St?y#•?”`?)ž?jk=KŠ\6­¦@?r£+?~ÜÒ?¨×ö?œíÁ?=u‚?5°?Kxð?R›ß?\?vµ?…€¿?‡D?N)¼?pf¾?¨“­?O?)ˆn?=¨U?[’?2+f?¢ç§?·^k?!q>´°?Ó“|?ì ?€ð@?t¸˜?· B?º‡q?ñ»å?ÞŽ¨?òˆ?3YE?U%ƒ?NÁ«?Hb ?eÐ?Ÿþ?¡]?Àn?¥fA?IÿH?ˆÈÙ?ÌX|?¦a­?f–q?lé?sC?uˆ?zº?¤E?·×d?hs?0?ê? hj>õ4Ñ>õ7g>õ;ß?U+?€„á?²ëH?·úó?X¨ê?Sµ–?¶Ù?·*?¨ãŽ?¥SÅ>û;Z?-í9?ôø|?æz?±ÎA?†Ë-=Æ…¥>– ¡?+«+?eÓS?¬ Ÿ?_&|>væš>Þ‹Ä?,ŽÁ>ü¼>— +C?Ž’t?èÏ“?Æen?±X?AM<‹Vð>¯Z>õÓ?Gq?_b?eÜö?uä>áF…>­¦œ?åɘ?õòã?|Sò?x-/?¼(­?ºÁ?)T+?.y»?cŒ}?N|*?GAÿ?=–˜>ö¨?‚'O@å@ûµ?»Çz?»TD?«Qh?€¹ü?,3]?7Ž‘?.Ì?%ˆ°?;^Ä?g'f?vF?£=?¸¹'?DJŠ>öPr?š’Í?¸Àü?VÚ?%ÿ? sÄ?Âl?©jÊ?¸9ì?{ + ?t¡W>æÆØ? K"@Ð?çý«?YAP?J‰?"þL?cÞí?Ïzz?°ÇÔ?vy?„‚Ó?•Bí?˜>ª?¤ß?s³.>ö€5??Q|? 2L?™>ü[>öƒO>ö€\>ûêù?“ß?¸àW?Ó½t?Ö”N?ÒZ?Ø!Ù?±^>¤Á™? m?.M}? +ßû>ùg?yý?…Ì]?…(Ä?r¦P?*nó?8‘2?Zí?Z¥•?Pã²?6?Áý?«d¢.T?šý?X«©?IÆ?H²3?Qß?[ *?Fµ>äja?KÁé?lÁø?5>öÁ?ñõˆ¦>ïp=>¾Ãˆ>÷Å?Œš5?y…e?Êé?’{@*•’@‚b?™ Ÿ?œPë?¥û?róè>šæs?5+—?ŸA>?€_?3¸>â +ü>$ƒÖ>H˜=ÈRØ?¢Ýµ@@?}»Ò:SHãá‡?¼šÙ?Òø›?DCh? Z?f#ù?râW?‹Ç?ŠÏC?Ͻ0?Ñ|¾?{2&?rp˜?÷£?AØ?åiB?ëç;>ÿ3¾>ýn@D@Î?íí=?îÃó@2lù@)¡ˆ>T%Ï>ˆ"Û?³?r#>{,÷>£æù?p¼ ?gÁ}>ð‹•?“P?Ö†?ΠÃ?“_B?Â>¹>­G„?›‡Ì?¢“S?Ý›D?ͺv>¡º>­ým?Ð>?Ϋ?ýœ'?ÿP?¢ãÛ?¥Q8?…ÖÌ?ƒLƒ?ïì£?îW—?íùØ?íÔI?´x{?¸5á@eC@L]?± L?©»W?‚ïT?‘õ?XÓc?Pfõ?20>?(?"d?ýG>Á¹×>·µø?(I{?7äu?d\?nå?h%a?bBW?Bùó?:PG?§r?ÊÖ¸?•Êâ?jPæ?´«®?ê?“>éÈò?ƒ^~?ßn¦?êâ±?÷Ú%?¿ˆ)?!ìÉ?L?¬·«?ÇëC@A½@ÂW?®Û?²PC?ê?å·x?õ–?Ïú?ðqj?øÃn?‚D'?fàš@®@Æ'?ñ*?Þo£?Ù£=?Òì ?D«¯>-3]>ºÖÊ?Óâ?W?'êð?…Üõ?ãÚö?ÓÍË?«y>?’Ae<>z°>$Rr>\ž?¤ø?±2†@;x@í-?¯Ží?’|¶?A‰V?c½?å”ì@;œ¢?Ýø<=•Ë‹>à?2?¤æF?§Ë ?©ˆ¹?¤¼?ax?aSÔ?¥ƒÌ?¥4?l Ñ?XÀ? 6i>à{?bÓ%?–Ìš?\ +?øb?ØÜ>ßĨ>íÄÏ?9ø;?QB*?¤ØD?¨! ?ʈF?ÉÔl?=A? ¼’?‹H÷?«rˆ?z‘?&vš?Œ,”@¼?óK?¦Ov?¤À?ò3?‘õþ?gV?]12?z{ÿ?†[>ïõn>›•?22? .I?yâ>ø—g>Ü!i>Ü ¨?R†.?[ؤ?[Ä¿?[¥ë?\7?[z7?š6î?ÛL±?Áª¸?Y?TÆ·?u½?W? Â#>ñÄK?£sQ?ÊÒL?°Bà?™Øž?¢±?»¼?³Q?vL½?wR~?LÓ=?TùlS>»I3? yþ?†-?¾l?½"]?¹Øû? ˆ‘?›çV?’8ÿ?˜?­?¬?¶6B?€›q=ðí?¢Žç?¢ˆ?Ý»F?éÿ5?”³?X‹?X…7?Xt„?;xÆ>ðœG? Á?–Q¢?™kè? Kn?¡R³>¯wP>fwi>Ø%ˆ?4o0?Ÿcè?•dÑ?cæ_?hšÝ?×>'?Þ á?ï j?ípF?»j6?—¼÷?gÚÅ>×âÇ>ô˜´?;%ä?9Îo?€Ã?}Ö¼?[Ø??WÊ¢?Z].?m¸Ï?ln-?58½?GuJ?»œx?»K•?+Ü„?%ʤ?Jˆn?G'?'[ø?AW?’rZ@(õ?ïæ¶=Í?ÑŸà?ׄj?ʯ>…¬ý?|?·?ÅsÙ?µ{ã?š² ?}™3=–MÖ=æ\Ô@z@b>Èäß>5ªº>Øyý?6T™?Öø`?ÖïÐ?ÛJ?Ü—À>š·h?,6?‚ŽÄ?ª@t?ï%Z?àó? Â¶?ž–k?7þµ?2wÏ?Üžé?ðÒy?»4Ô?­Šn?‡¡¹>ç :>íp*? ?"2ç?ê½m?òé…?æŽ>'üÒ?ÒÛY>ð?•>ù¯Ž>ðC|>è»r?“©»?œ9.>¼ H?9‘/?Ð/G?»n™?Rçô?UU5?þþ?Øî?ZT?0Ž ?^ž?£˜¬?¤q?°Å£?³$é?sò>ŽB>‰[Œ>„t“>!ü>uT~>k‹G?YB]?~%ü?WO?HpK?[_È?s ]?o\Š?LDá?DYt?ä'>‚¸ê>Œ +>€Q‚>HMy>Â4D?+“,?3å«?…ƒõ?‡ªÍ?c'?<8v?43]>Çnx>½\?@ôY?Š?‚ u=Ž¬Ï;m€>–Ý«?/-Â?,?(ò½?%ј? +%<"ª¬më!>FTÈ>UøQ>éÊã>ôòH>ÊÕÉ>$À>+GÒ>1°>7àÕ>=ó>CØo>I—Ì>OÕ>Y4ý>Ÿ>Žjˆ>ŒÁ">}†=©yÑ=s 9=]ž‡>°iš>ûâz>þÎ>¿šÌ=†mI8 `=–Ç>I»°>T“þ>J¢5>@×1>7;´>-È0>$€6>!Y›>[2>†ß÷>36>q¯9>\Â6=ïáô<©Db=CÄ°=’ý\=–ö=šð³=õò>.©›>^~=éC =«â?=†èÐ=gbÔ=CTV=d<§¢jí?ɯ+?½RT?¡`?… €?.©î>ä6j>?Gs>áæ˜?Ôµ?neÍ?ˆ6Ñ>kE°? °Ì?D[>ª·>«‘>>þZ&>Õà<Å*ƒ=¬áç=OW=!˜È=¯/='€:ä +;Üf@?"üz?°U?qd.>ö¥G>zoó>yǬ>õbj>jgÄ>¤Q8?€>‚¬™>Æ´Ð?2Ó"?8¯?BDª?“\>ŸŸƒ>¡ e>³Êe>Œùò>1èŸ>’õ:>Ö×9>øn3?Ûñ?wì‡?´Ž½?/cK<ã*¨>„‘h>ð=É?(ÍÒ?V4Õ>ö” > EÅ> ?$¿ ?“À?)%>ñ´>ïOx>ÜÁg>´ÙÕ?%…T?‰—?€‰A?nò·?ˆ9*˜>®¸?f$å?™P>$4">î–‡>Ög*>¨•>Áð?•? ÙÎ?:ˆz? ¨?>’\Œ? +½Ë?ç£?Qè„>²zÅ? …?˜/?kœƒ?nªª?mõ?'3I=† +]>’8j>±’>¦ô>³;4>îéÉ>îï—>îú~>îÿ©>ï Ø?RÆO?ÜÔT?³í?H–?#ÓÂ?b‹?…àþ?²_8?â&>ô:? d +?ah?€‡=ÕMN>¬7Œ?E©þ?«6>7ç’>ዶ?e ?Cø.?]%?„¬>?U-;>ð0£>†RØ>]D>ð`c?,ÖÄ?]æz?QQ?D²Ÿ?GxÝ?Nº?¯>ðÃN>²Ed>q#g>y†×>‘ò?ŒMä?Æ'X?‰¦Þ?[R?¾Þ?èK]?a˜>ñZR>°k<îý4=_9ž=£‹È>øû?E>º§>¹óY>oVÐ>n7<ÊËÞ?cUx?qÿS?㹃?ô’õ<ÊUï>÷A}>ÝÝ;Âè>‚0Ð?ä +Ö?Æç‰?0HS?95„?!#>øaò>W¹6>›8>ò·Ê>¢ô¯>4,>òÝ×?M´¥?§¢¿?sDi>óv?sGŽ?¶Q?­ÚÄ?žê{?}ËÚ?VVÓ?O¾~?I)¾?3ë?1{?5M??.ÊQ?ƒ' ?«•>š0k=Ôùú<7=J?XÈ?rð?s¶Õ?lZ?sÇN?€“ ?è";?Ï› >’sc?Ê?Â#€?­›"?wþl?AêD>È?¦¹Ì?‘?LùÌ?žzä?í»$? V>ôS9?9†?tS`?0gh>ô`v?2h|?gÁi?þ×@•¥?d ¸>n¹z?Fìß?t’è?Ìaš?Ù3‰?Ç ¥?Áç%?¸)e?·† ?|H?rˆ—>þ8?^}?‰N?d=ßïe>¶4?täw?d@?0O?X]Þ? Ð–?¢4?4±?ˆü…?‰Â¸?nJÌ?›½?õ¸?VF>ö»P>õv[?„»á?²…”?“kÊ?†J`?(v’>õI<>z(.>Arn?ZL?vf??8ß>ÅÍL?_pb?€w±?‹ø?Òs?¸$?±ÀR?åÂ? sâ?uŽÂ?u ò?„ Ö?ˆah?…”K?Fj>Ö\f?¡]Q?¤êh?´À&?‘Q?/×±?8rë?LÕx?RÑs?XÍt?š3Ä?¸cH?õF?uâ?uÙÜ?uÌ>z=Ú +?ˆ+™?£FsR>ý'0?"óZ?wy'?T…?`(?vBâ?¸¸7?{2ô>öQÍ>ÆXå>°ü(>§Î,>‡£Å? ÷Ô?=z?QtX?h[?9ŽŸ?þO?–¾?¬äl?¿)?¿X?}Eÿ?tF¦?„@>úîœ?v'?| +\?¨•Ù?§†?ÓÜ‘?ÊŸ‘?v‰À?\æÏ>ö‹(? )k?’«(?”„ÿ?v!?‘¡ö”_?2o?iË»?k²?qoß?*\þ>ö–Ä?JU_?m 7>Âç¨>jW8?ÆFÞ?ö’Œ?v;?JT‰=ß}?Øm=?Ý‘?xãB?sþ >ö†Û?;¤?Ïy?¿z>n–”>q?#œ8>þ\=©q·?'~‰@xx?ùßQ?vhâ?N5Ó?Ÿq?¤¼C@jV?Þ =?Ž¯?U ½? Ý>ÂÒ >;ÍU>¼éä>ö7T>øœ)>ç_Û?¢ˆ“?Ðù“?G1È>öž=Õä?Èu?­•\?ìün?õíã?zû"?m®?µ©¤?¸¸‰?ö$’?ð ?†J?ÙK?–L?¤z?Í:ž?¯E]>õ€ú?7µÁ?É‚ ?“Ì/?%²£@Î@ …–?°$–?ƒo">õú>Ô[Ã>“ò}?C-/?»X0?½xk?·›?”.?h,€?t³«?yÍ?.‘>ô4>óìÄ>픋?÷!Ô>Ç¿’?Oo?lÆÕ>³Ì>b°,?¨Ø?ÂÜ?vQ ?o£É?®­V?¬Ö]?‰—?Îô?ü‹@‹?…%(?~±Ü?¬°¦?°!7?rG€?uQ–?µŽ;?´cP?º0?´g‘><ãú>‹ð&?VÂX?^ö>½í">ÛB?”G„?‡AJ>¢">Ú0[?”í?µ(þ?;¦ì?;+’?n ?u>ë?-ðR?˜o><š>€ô?oÑï?„^¨?ø¥ +?í9B?8 c?[­@˜l?÷øÈ?gé? ó’?€ã?¶ã@òR@u@ð¸@«?³öµ?´CÛ?vÔ…?yÎþ?Z«?’W?$*+?'5–?¡V¬?¢˜À?Èâ?Èoã?éY¹?è;e?£)ž?™?ª€>ÿæî?„Zû?’æ‚?Õ7É?äÇ(?ª>S?™N?L‹b?û?Ò„@ SŠ?«u`?Mx ?³Êj?ê5‹?—À;Œ>lÍf>â"i>êãc>ågt?gj—?ÖN©?Ô –?Á!¶?œ•R>Ï>>@Ÿ7?4?¢ß?)ò +?$ï?Ì Ç?ÙQ?LÓ?Æ?@,®?X>>?¬Ùá?ÙÑ^?¦¤å?aVa?6Äo>â>?ký¼@ K?õ6†>ëj >ø{Ð?jøÿ?m.B?Ä???‚"?K°ž?g˜©?z=$?´Ïl?ÛÔ,?µÊh?…7˜?ž¡:?Ùºt?Á–-?_ˆó?_iÑ?žý¯?¢é?~p ?b š?”Ö‚?ª°Ø?qdu?¹5??r?wWù?—[A?Í —?ÆÍ?¢è?—?]¯?]t?‚G¢?xàh>‘<«?I$·?Ç\9?¥‹Ì?H´¿?<µ?>ç¥>êš ?]'Õ?\ a?\p?[ì7?”8º?¤N??ÁÝ?ÛW?Ƭ‰?ŸÉž?ž«ø?Ž²?œ†?ÀC£?¼ç¸?Šì?…¤Š?·BÚ4>Ú)2?=ûø?K^?·.>Ùãâ> ~(>U¡?÷k?ž 5?«\?ùd»?ù?ÅȬ?Åÿ›?aìß?1ů?œ†‡?Éøt?d}W>¿€¿?¸Ì%?²Ní?jòp?hª™?YÂÉ?XÄó?JØ?I©€?[¢ ?b±??»»=ŸŠi?X}‘?X{U?W‰Ü?S¡'?Ry8?QÒ¯?…Ló?¢=-?¯æ®?ÉlÚ?Â6‡?«§†?¬¨H?½?‘æ¯?IJ«?&΋?7W3?6‰?>vô?Xð?g ç?¢?¡¨s?"Ò?)?U¥?[&ß?—3÷?»¢]?°ªõ?¡é›?š +À?AÆD?:†•?Fu?Vž?BbA?7Ô?s ?‡êÏ?9¾>>×>ë e?ápº?Ý—·?”"¹?”±‚?}Ú"?i É?\3?W ?Y>?X"Ç?möÑ?¡– ?¡“?¡€²?Ÿe‰?c ¬?KÅc?¤S!?ÈS?bS?ö\?_K†?× O?Òvž?-Y”?$j?‘ŠD?¡Ð??_K?Ø%?E²?}$©?TÑF>¬%|>á’p@J/@=?j3Ñ?!¬?·ß?㯳?½ÊÐ?–‰?žÛ+?ÕMÚ?Ј%>¤'/>”5Ý>3j=Þ"$>àKÒ?=,ïî>êÒ•>øŠÆ>ïSk?pZ†?› >?‹©?»?Šà>ÑÙ>Õ £?“éV?–ë?qÈœ?a©?˜ÃÕ?Âä€?§˜ ? $7?ýc?Œ!·?Ž ?vÏ6?jí/?QÓå?)är?4]?),-?#y;? Òe?)–?å?>Ê;•>À}? ÁÊ?( Ø?#÷? y?5üÆ?ƒÅª?†3?e‡?`žÂ>³ˆa=µ#6>F¥?A?#k‚>Ý)š>ÀÞí?ëI??‚©?>]-?<¥D?=X…?<•è?;ÑÎ?; Ò?:Ò(?<'[>Ðé<¢{À?f€Þ?€é?K¾ >×/E>Úh>? +>ÿT­>Ý*?;òX:=¦“Þ>LÏX>Bán>lpÓ>§_Ž>¦Lä? N?#±Ø?q> l¢;ßÿ`>r²r>¦G> Øþ>¹¹›?¹[?[ý>ä†=Š²:1ì:`?€;€<ù 0=>ÏÍ>ö#?Èk? + >ö-Ë>Gî"=úz>âô>c >&YÑ>Rq=wÀ ­>eìv>zêš>u¹>p%>hT6>KL¿>+¿X>•7=ò ®=ÐÎ=Â(ã=µ€ƒ>,Õ@ú÷@?WÀ÷?w + ?—~¿?$Ù >Ñ?<O?9Rß?=Ù>6*=D0>þƒV>Ú‰µ=û•Á>ûˆ¸>·8b=‚=?wo?¹“–?Œï>ø»>>÷=‚…j>4H?6p?¢l?RiÌ>¹<Ü>y—ì>j#=žØ>¸ [?0²§>èýü>mª?è?@Ç2?Ã>Ÿ¿?*Ö¬?rš>ÙíJ>ô®¿?btù>æŸ\=Jì?F}ê?´ä™?´Ç„?´¬Î?+Wë>ä†?X´ˆ?bÃ?p*Œ>ñJL=¼Ðô>QÈn>ª->øê1>ÍvF>9ß?8s?IÀ±?”?Áu? U”?oi? ^™:’Þh>JmO?úˆ?è$?8V‰?¾5>î´`?Ö?=û~?5cí?2æì? >C,¸>Ž€>âvC>æ°?õi>Àâ<¡Ž=Hf:˜Sd:Ћ>,n?x>ùþ>ÃÂë>¨Þ>näB?B=ê?yÔó?¹üM?ƒ¦>ˆJÈ>Ê|?(|?E/a?—¯/?ŠÓ¥?O°?:qX>ï\\>ïfí>ñ8µ>û6¢>>ü³€?Y>þÊ>¨3p>ôv??Ç?$“â>î`ø>íÆ?uÊ?Ø;?å&>ÂØR=³`‰>‹#?>Œ;ä9ˆ;\>æ—™?j|e>ÿºk>Á:>Æ…–?–[?øå?$Zß? •Õ>ðÙý?;¾ß?^g>¡U?gŠÄ?¾x?_ÿG?[?WÛ?r”r?¤ÍR?± >¤Úð>™¨³>µØ¿>åRÿ>ñ½*? `?êv>éÆ«>ϹŸ?ß[>éIÀ?kÔö?r(®>lBQ>N_<ÄÇ“=‹/L?rD„?aG>Ý ?Õy?ÁÊy?´”?M‹?bE?œâ’?rÍB>g¿Š>’tu>òÒà?÷?ÁÝ?˜3? Õ/?@+>ýO€>ó˜ã>ó 9?xÎ?¶fª?¶m ?¶vH?‘jÀ?sXJ?ë<>Î~>>ó|Ê?T¡õ?s=?Œú¾?˜F‡?ÉÉ>ó¯>J}½=€š»>äl>õHB=nÍ/>mh?­²?¨(§?šÎê?¡£T?—ý(?‘¬*?µ@?žê{>ô#Þ>Þêƒ>’6º?7@?…Ö:?:‡ú>$ï>ä&?tRB?–vG?°µ%?æÆb@ +?˃×?–¡’?8Ó>ô“?Æ9Æ@Û&?oÚ”>ôª¬?|M¦?±@¥ @Ô?òµz?îþ+?»5ã?·£5?óý¥?èwŠ>ôé>øo²?Ë;?¾Å=Œ¹w>ÇÕ^>åtÛ>õ?X?X®„?xß‚o?=Ÿ}?³nò?µð:?·ø?¶¨Ã?°Å¨?a û?"F2?Žãz?§àd?–¨¦?‹7Î>æQš>‚Ì?¶O¬?Ò?®’?£Y= T9¢p?„Nû?„æ?¸;Ð?÷@†:@V?µL>?§\D?u¼þ?‡-?©'i?g)o?î¦?¸a•?«Ðo?—ï?Ÿ‘Œ?§3z?\“>õñ¬?&®g?7ú?’Þ‰?¸?o?vâ>Š’U=R¢(?®@Ö?Ñ[ã?‘Ù»?Šc?“ô?ŽÌ÷?¨r?°·?x<Ç?vµ?c”?X(´?wK?€b?Y8?w¬Z?¯ÚÑ?¥¾ê?|¨K?wj7?vYU?·æ={¡0?Gøâ?Ù¬ ?˜ÿó?7ûí?’u?¸`?n? ÿ•>«5ò>V˜>ÓRy>ö€H>Òù?'2?\!í?“^?’ˆ?îs®?øæöÇ<š¾= ˆs=ßxÀ>ŠVE?¸øù?¸øá?¸úÙ?¤ÒL?)A‹?!ýÂ>ö§€>öÅ4>áXQ>êã?ææ?wTÂ?¹l?‡è²?x½>÷Ö>Ù ? +K*? >Hzb?oˆÆ?±m>?°þˆ?°) ? •>¿$”?Dh?l©?>öªÒ?†ÙX?ƒ\?ñb‰@3ˆ?•y?‘Ìà?v©?hã/?v›j?v˜ ?v˜G?‰Án?¾öY?¬…?vï?+gÉ;k>[²e?¬?Ⱦ>öwU?Q™A?¤$?›û?|p?F-f>ö_û?^3?ˆ6ü?{w7?pý&?LXB?Dx_?­´Á?Í€ë?"'¥>¶Ò{>çá=µ‡t?GJd?hI"?æ?ó0=ÁŸ;õ“*?}ž?‹R?„å?:÷ú?V?Ž5“?x?DzF?³ÔÞ?‡Í.?„½?‰ +¥?%†‘>&j?L?·ªX?r¥¬?—?„še?·…É?·/Ä?³î¾?¯ê·?«ì¨@¥‚@=©?ºy¾?Y3>ùg½>Ñ’y?V}"?süe?7Éi?,FD>®ª/>®þ?#Œò?2X?.Ai?*qÂ?ka?sRµ=–׈@m†@R·?K >¼û>Ñ6Ø>ÞòQ?±Ôî?±á>ô=K>ü2?rVö?xû?µ¡:?­À½?Œ)?…Õ?J64?E(ö?VÙi?yÕ3@ +ð–?øã8?IæÙ?PÞ?A¤„?PÚJ?®·§?®óÍ?– Á?‡òy>Òjå? +c¯?¼õÕ?¬ Î?Fr ?E÷é?oï?kÏ +?UÉy?@í=›R[> ^?o¹?+ò(?°Ð?±¶?³(i?¢&]<æg*=·-æ>puŠ?²ªõ?¯Œ,?mø«?x5ˆ@2O@1?”×!?‘¾Ù?Ú¡ã?Ùùµ?Æ­??Çá?½ÀQ?ÁÕV?³ÉÔ?±P ?EÀ?4/Û?»Q(?É÷z?ÇÒÈ?ÎI²?š÷?ˆßï?¼mã?ÆÉ•?‹Ä?jèÍ?L‚C?4Iõ?¬]Û?â¼Ó?Єf?¾V?™bú?qö#?‘³?¯3?{Õ.>é“4?#t4?ið?hëÅ?hÉX?NÅ!?^?öq>è=w?%´}?úü±?ðÓ`?Ž‚Ò?‹˜Á?mì?ˆ•?GÕ‰?:´V?–•ý?¤Óö?< ?”›'?zU¿?]¿>âÂB>I o>Ø^Ñ?î?<»G?eZ†?”P¼?Ó [?¬>äÏå?ãs?dˆ?m…?«2a?« ¯?£‹Q?¤¨]?¥Éä?¦é#?#f¦>ãO,>ãiÓ>ã z>âìA>âÄ?$…±?^çÂ?@ž?„?q3¤@+¡?ü&ƒ?ÿ‚Ë?û4?ÀŽ¶?¼6à?&h¥? è?…7?—ŸÄ?Ÿµ?ª}?¬?¨:²?ؤÏ@ïã?õ¥Ñ>ÐnÍ?~˜?‹a5?Š+Î?Ž?–¶k?Ÿ¦i?›Fe?Šn‰?ƒ8?hª?ŽŒã?©€?èn’?ëŸ?îÒ†?çÒ×?]Öa?]¼ê@ @+­Þ?0r\=¥Üä> G>é©>{/ÿ;ÐKW>‡NV?\°2?l%?¥_[?¤†¦?_Í?\6C? åº?Û÷?LR?w8?ýÉ?¤¾ç?¤¯Í?¤¢[?ŸNŸ?ˆø?ŠNC?––ª?“ðÖ?¬ò‡?¶« ?·­,?¸§H?Š;¿?¦?>>Ú{C>æ +?$©Â?"ƒv?Oæ?Oa?( ø?íª?•Ôç?ÙìÆ?Ë÷?µI0?¹9Â?³gH?±¨g?•7?–"?ƒ9?‚Xf>ø“Ò=*?N¢®?û\¸?뾶?¢Ú¦? ºË?Uè?V(>?­ª¡@Œ/?•y®=ã1d>⨠>ô±c?X¥S?X¡¿?¿¾t?É3Å?]Þ9?WÇ?v¯o?®4‡?“Æ?#÷`?B–Õ?¸T_?¶8¶?ƒpü?wÕS?‡??ŒôÁ?uNö?X= ?P¨Z?Qð?zµ?º{?µ‹?…·›?ŠÊc?«?˜Œ?¢$Á?¢d?°Zã?ÃëÐ?¦4A=ìåÉ=ëon?2‰?1™?­üj?Î{º?—Å?Wë?u§?ù7@?ÝÏ >ûÔ >ø%–?Òžð?×Ã?‚ƒî?W¹ê?¬?×qœ?ÀÌ4?¡·›?–þ´?`)?e‘?›í?š1?€Z·?~m¶?^‘!??f¥?Æ­>âWI?-ä?Wd?[¦š? £ñ?¡8Ÿ?wq?~¶ú?X™?V·¡?£¯>Z§‹>ì‡??ÀÑ?Ç8Ž?y\$?m +G?ÆwÆ?îÀþ?¸^t?‘YÂ?jY?©Š?¢¼?1¼?ô>÷3Ç>ù+ý?ȼ?Yû?¾®?×K?Ø\?Sû‹?_©P?ž¥'?ž—¸?–>Ó ”?s‚?þ?c…D>Ò6>ÔêD>ÿƒœ?¨ì>'r>ÛM?7OZ?~d8?†0§?€X¹?cr¼?'ö—?,[?"!?*¦>ô^R>Í -?±X?šØ?{¸4?LŸ?Kµ¾>¾¯Ÿ>mV?cô?: Q?'K?gGô?f‡¸?L«E?G—C?Vn?€­G?~øÌ>µÃÒ>ªÎ´>*H¼=]X=Ú÷>É•Ñ>Ä:Þ?-îŒ?@N?G—>¿+Ú>ÀEŽ>Ä +>Ççÿ? +õq?;y»?|BE>‹bý>ȤQ>´«|>µ×>ñD>õ!~>t'o<}¼Ä>êºØ?°>Êß >=ˆ>Dðý>}²V>ÓaŒ>Új¦>Ñ!Ã><×ã>*~»>]c>iu=ëcÆ>àÏ=õ=¿GÕ> P?g?¢Í>¡¤&:/Šì<‰ŠÜ>? {>pÝÐ>fž>\r¶>RhØ>Hxa>:ëK=Š4>:R>eú‡>u=!>{±Ð=Cb|< 8€=Œ½Ì=ðf =ù1«=û¬Ž=ý›A=þ̇=ÿB*=ÿ z=þÀ=ü€=þ;ð>êe>*[ >5Ž;><±>>ÑÉ=×z@'" @!‰?åß? +Â?Ò«>ôáå>–›i>…ç>v»=´Ø>,T>Eœr>8,‚>*¤¸>ýÞ>%å¬>þ¤5>ÞÚª% ;>û«ê>þ\? +>û9{>ùí>ü®>ù5>ð-÷>Ýé>Õè>ÍÜæ>³«¹>«ø÷>‚¿M>+ž>qVª>œ¡î>»>6¥>ô”¿?_2?.çN>í"·>›9 >ž+:>©„?Ø?=¢n>®âv>pÿž>àéV?=ù ?rŒª?º¨“?ïä™?h{5>fÑ>™r˜>ÅÊ™>õ\|?5Œ?êe? ¨e>¡Áö>pŸ>ð >Ü-±>È?7>ŠÃ> é>le>³™D?l ƒ?Ѿò?ª8ë?eÈx?ß’:ÿŽ>ÉGá?gè?‰ü>?^û>îá >Â\>6€>‚î>8G>¿¼¾?0Lˆ?½/>î¿ó>îÀ™>î¼U?V[G?ÁÄV?¢Û]?\…U??ë<ß²³>¡r ?nÌ2?koª?`a_?±@Ô!?Î|=ñXä=À-n>™Ú?oÂ?”³E?Ù@?¯K…>ÿÎÝ?Dé?1ŸÉ}@>”u<ÝêB>)¡_>ïn?qy¥?ãÚ?¢<>ïš#>ï£Y>ï¯Ñ?AA?Bù®?kÉâ?—YÒ?‰ e?oó}?¿y>«á>¿çý?<£>?DBf?-A??t+?oz?•RÕ?°^@?2¿=ób¸>ó\¤?8ïU?ü‘>ð¹·?!¯\?;O?¶#>ðë"?oÇ?ŸïG>éƒ=çŦ>Co?.²A?qS?Ïø?ðc¼?˜X?~Ú·>b ?œ €?¶ÂÍ?6î>ñÏ1>ìPD?¿9?<‹Ý?Grø?t?˜ý?]I?cSð?«Î…?¬>òOø>ñ\Ó?-0?:°9@lé?ߊ6?;à¿?0:D>¹êa??$?—6?(>òÔ ?§ò?Ê?t.@Bi?ÐÂ?a,ê?nŸ`?s#D>÷¼‰= ?ë?„O?Y¿?>Σ>ÿÃ>¿8{>ŸQ>rØ? ÈQ?)JÉ?"ù?/¢?¼û>ó·S>Û_·>äK?ãÑ€?óØ¿?|d’?j@ô>Ô¹’>âò?·e?µAa?¡õ€?›G¯?Ô?“a!?t0—?JÍ%>£n­?@?tPw?…jÌ?¢£?ÅE?òý?‡$_<³¹0??‚3?nž?n™?ˆO?Pº?e,è?=¥W?œNí?·Œ‡?æ½>¢"u?€mß?›@±?Ìè +?ݸ_?»Í?·²c?·´?¸‰Ë?ôýº?ì‚X?`r£?C¨®>»W>Éf=’B‘>¦›?qÃ?‘àà?Œ„P?uL*?‰¼Ì?¤÷Í?•d"?v2>â$T=-Xð>¿Ï?!»? »>õ{^?iEû?hu?Êár?Ú¨x?i’ ?3U£?³½?Ƀº?¾gŠ?Æþ>!ø=Á;?«—?±=?·9?¡¢Ï=MªF>Æy°?¸`å?ªH?uÜa?x³?Žˆ>?tãŽ?YT?`+?¸x{?¸{É?¸£?Öôå?ö ±? ´?*;f?¤Ç•?äó?Í4T?¹;3?§?v%R?É­P?×µØ?ÅFú?Æ'º?¬©C?¥Pñ?ÿE²@³Þ?:è3?=E„?–Éâ?’v@? „?„¹5>€¹¡>—+þ?$–h?/án?vjŒ?Œ[?¸ÁŠ?âzL@Cõ?Ý@«?Uȉ?Sã>ÜõH?XÈ?’ u?±¢$?Ñï=?žl4?v’Æ>ò•!>L">‰ù>¦œ=§z>? b•?ù›%@1G@¨â@,"=‹¨1=DÕX?_‘þ?T×K?J¨?o}4@ ´–?þ}¤?¹ ­?­´6?‚Õ?{É?p“i?k¶½?v¿¶?Å<?#C?¹Ý?¥M‚?ŒPL?.¤=ÔØ?¸æÍ@;n?”¯Q>ë€.?% +?ø?ŸK?¹Ç?-<>öÀf?Éó?؇]?­Õ´?¢ßD?µ1?½,æ?x +Ò?yù?£¡2?¬$î?æ/]?Ú¤\?†úr?&?i Á?’yé??ÑÁÏ?vž¨?K >è}š>èî{>öŽ=>ö@>ö†Æ?d:–?§6Å?ÑH3?ñù?ÆTG?¥“?Á_F?Ø[Ò?Ö’é?Ò8L?‡ç¨?N±>?N~?U‘N>Ûûþ>ù^?"êà?'($?Šñ?›P?³0™?¸y¤>ûZe>î?Lò>þÍP>m@>¡å˜?¸bÓ?½q’?Óf{?Êe–?¸H¥?­ ¿?„½Á?“Wê?»ð?¡ln?½ó?¤â%?Þjp?Àa€?u?¾R¤@Iô?ð0?Ìç·?©³W?‡a•?›´Ü?²üœ?¶çü?· õ?’QÓ?x:ì?ÇÂÆ?îåÄ@z³@(Ø€?›ú??Ÿ?ºN?Ñ-¯?Gg?m“i?p#?t »?›œ¤?œã?F¾ ?1ä?<ë3?CN?Go?J¿±?‰í‚?ŠQà>Š§>ND¦?׶‚?àáä@c£@ù(=ã®?qÉq?r©?re–?x x?²Æ?¢æ>#¹>³àh?Òù‰?ÔcŒ@^?îs¶?q½~?ˆS3?ó¿†?ã±U?@É?/Át>Ý·$>ÿ+?6¹a?;Z‘?NÜO?]ld?p¦0?‹ÇÅ?ó¡æ?çh?”î?’íß?p?\UÅ>ïغ>ﺹ>ïžL?- ¬?ìê3?Ý'?o6?fìOÝ?Ä ¿?×G?$;$>ëÑò?ëb?’Zš@i@/Cj?é%?ˆDð?»ö¯?×HU?Áò˜?³’7@ øæ@.à@»?êÈ?éã×?éd?ËX³?¨«?§Oj?¨«Ä?•_Ú?höb?“?—*4?‰Æ?K±ƒ?k€?Ð+C?Ó¿ñ?Ô6h?Ìì#>ç#>çza?²Ê?²Íû?”ºq?l+?¿Á{?ÌX^?º´l?¶øQ?,"B>‘©G?%“Œ?eÙ?T4±?Eœ-?À·?«ù—?!M?$?%Z²?Sõn?cÇ]?Ÿ;? 1‡?d;-?dã?cò.?cÏ\?ç8>ãˆ9?Esb?af?Ä>âÿ'> Î=¼=´“ +=„?kŽ?ìÖž?ܪ?—á€?¡Tê?á±?á‘©?ÍÙ>áS?Òtß?ï!„?xmÞ?)‰?<Ñ?Vñ-?„˹?§Ìê?’¼T?øÇ?#œ?Bš?U|?ŒÌÝ(E?Iû¾?¤Y?v ;=© Ø><»Ì?\’?\x‘>ë>ÜG ?Bnµ?\?5ke?"­ò?›”C?ôÉ?ãŒú?¸¹—?¯ƒï?C ?‚F^?ƒJ‹?„M•?ü ˜@t?Ƚ)?Š®?wze?TÂ?BÑ?+…¹?1nË?Ž$G?v¦?D={?5Íq?°Û?Ú*Q?`ó?>v?‰¬c?åËê?ÛÉj?Š?l?‡D>9Æ=Ô ù>¼sŠ>룹?4$L?c#›?|ë?¢UG?¥x>ÙFi>Ö-B<1°?5Ê?i*?Z-?EïÙ?nðÊ?”ûž?”0û?™´‹?£¢¾@BIò@@šæ?N*9>ؼ„?À?-m8?8»y?3âÒ?6ŽP?g]?s(ª?‚Þ_?ƒàR?%G?Y‹?%ž¨?#Ýï?AP0?LÏm?œø @B@ +è}?³Ä? óG>çˆ>ØIÝ?±™?°ÀJ?àpã@#1?Ë?L?©Ð?ÂÖ?ÇÙõ?ÊIŸ?«Ih?¦ú?tpƒ?XÊ?Óž>Ø ö?aòÒ?×ú¹?×ù»?×ñ¦?ÕÂy>ô '>á‰ð?L«?j1}?.ËÔ?ø–?Æ>û‹¾?)Ÿ?¡»º?¡µ?•+K?“6Š?#…ä? î?‘}?®ðœ?‰×)?WF4?€, ?¿æ/?¸HÛ?§Õ?…ž? Ä2>æÍà>éb¢>Ö»M?ñf?-ïI?aê³?Ä^þ?ÂéE>ÈJ>¯uT> Ô=Å9>g«>­¥Š?–@hŒ@¶Ñ?`ã?^™¶?šíÀ?³?Çä>?Ô†á?™qä?T?\?TA?Tfb?aï?™­_?—5?c ?^éØ?¨u>Ò?3?<æ?ý„>Lîè>ƒ'´? ˆ?2öS?“»>Ͼ>Ïi>Ïg>ÎÊ@?GáZ?JE?aŸâ?ƒ·j?[€Ò>ú*R?Fð>ša>ÒÑ?†â?Æ+Å?±&k?€œf?‚ÙW?KB?HVb? {®>܇Q>•@ÿ<¹*.<·aµ>º~6>Äœø?çM?Cpˆ?RçŽ?‘ +—?j*?T%o?8‹>þ·Á=KÏø=pK=çÆ°>Jh>>,ï>ûš>ž ? †>÷þ>ËÖ>¶ù>¶?ë†? !>ç6¾<#3”=þÖì>̵>ÔÈ<>ˆÂ=鳌=¦&)=§v´???é?;—?.T?:—¿?f\?hb>òÁ=¢$.>ƒ7Z>€·>U“=9–¶=R+P=mEÔ=ƒÞ=³B=-b=óáa>NÚ >Àê>…Ñ=’·Œ;ßÌ;í[Û9±®™:¸Š;ýé› I>Äk?l2?î?nÐ>AmÚ>ƒÜN>¨!#>®`>´²í>ý?>ý5¹>È >¼I=¡¿ˆ> ¦>ü½“>ÿ«.?Š7?!X¢?zæ˜?yü +?vBh?]Ý=5~=rˆ=˜=¶ô–=Ö*>fÌÌ>±Ëÿ>©î>¡/@>È&½>õÕ.?fš>þÌÓ>¶?Ù>†y¿? !‰?EÃô>¶Au>Å ?9¦w>ªƒî=—M=-^<ÈU¶;Û¼ì?¨,!@g7?‹D>D>£•ì>ʵ.>h¶u=å]>¹À>Û¨>¦©>ðgž>¸§Y>z>ôg™?;k8?(ôô?±È>÷±þ>®¾2>pØå=²-þ>’»ñ?²>òÖ4>ë×}>ï<®>ì·ò>ØÕ=·D(>v8¤>ÂÿÅ>Є>îú*?)9?d9û?X">‚x+>¦åÔ>îÜÔ?ø?NU?'zÞ>îÒ—?hA?Ù¹W?¦?Næ>ó»ô>îº>ïBì>÷‚?{ä?4à?,Ú?šˆ?8Ž>=Ë>Š83>ø#?oX?ˆýë?¥I®? …?¢uY?iY >0?µ=®¯P>, N>ïkQ>˜8<£>‚™ý?+X?>ú5s=ê¬ê> ¸>&*ï>†|/>×C)?%*?Fj?avg?p£?,'¢>µãv>xáû=…V'?ˆ-Ë@?¶Ö+>ñKð?>É?Ø_>‘Üû?3Û¶?¡ýÝ?ycl??…?4Ëš?6õX?¯i>ðûÊ?E\?qý>¢›5?²E?jˆk?pšy?qda?w‡~?‚|-?'—3?yÊ>Í8>ª[Ï?\o?…oÆ>¬/ê>vÃ>YeT>8ò&?=€¥?;nˆ>Á‹>Ê_?´e?\O>öª¹>òUâ>òcK>òlþ>òy<>ò¶?¨0?(fà>ò¥¾>Û÷'>‚õC?³£?Çç`?÷Î? a?#Îù?? ?Z#?sE? s; Ï>fEÖ>ûÅÔ>ï©‘>ÐO@?3Ò×?sa}?\R«?G‚˜>ˆR£?$Ef?`Ž—?K&³?M€Š>49'>¬ü>ÜHó=²y;ãq@)mÆ@4KË?qü? 9>ô />üóÓ?F±ª?x´î?ý¶!?×áA>ô;!? ð.?Gÿp?æ‡>Œ †?b]°?0ý<ž1˜>ÌÝ?uHj?A.>“¦´?l¬?mÂÁ?‘Wí?RF½?-•?_?g?tÌ?^ »?g½d>åú5>€Ó¿?á‘?!.>ûÖß>ôý9?¯.)?·ÇÝ??Ôõ?‹_A?”'œ?©?”jL> .E>mÝ>2j–?#šd>ËþÖ>]à-?Å?1áj?eŽ?ÔM9>áJ>õÚ)>õÝ·>÷b¢>àÓ>D÷?*-?v^m?Ò9?¦cõ?*ë™?0üî?7 ú?Y?… :? žs?¸–l?¿‹Ž?Í–?¸â£?©©$?bD?c?æ¸d@yƒ!Ö>¸îò?Ð3õ?º‹_>¯þô>îS?vwñ?…Ø?¬¡ý?¢ÚF?v…¦?&5_<Ñø?KIÍ?ýNö?Æ”¿?v•Æ?X‡=?.€?‰dç?¸ù?u?/W?<ßÅ?@è‡>á-&>¡IÃ=¬ñJ=§“~=¥"?næ?…"l=À¦?lìó?€%'>åÖ>ë3?vÉ1?vÌÖ?vÊß?yµ\?=:?™>“?•\Ø?˜g?š©?‹;H?[ 9?o!î?vÖš?*ž?>kÝð?V±f?¯N?Òà,?é²#?òûw?öË»?̆? â¼?·b?â#f?Úƒª?ÒéA?—ê4?Œq×?£>öÓ?µXÍ?ÌŠ@ ܺ@ +/ ?z#‡?vÎß?vʸ?vÊp?vÆK??·? ÿ?¤ûK?©Ñ¦?”Ûó?î¸>²›í>¦¼”?v®ð?rXs?gŠO?6›Y>öž¥?€»Ñ?ÛG?ºÈ-?¸ëÕ?“ÙÛ?ƒ¬†?‘øz?š„?±T?¸Ø?ÓºY?àöA?¥ù‹?–üŽ?7ÕÉ?â‚?ȼ?¡'9?ÙØß?è¾M?¹?¸ J@¢û@‚Ó?êÒ‚?àfà?¨8-?¨põ†³?[ ?¸§?°Ð3?©+¼?Ž†©?_áÀ?ÆSf@a @þB?ð"“?ŠŽ…>ôý•?‡þ¶?·ªÆ? çy=¶¦t?D™@?½m?Ål ?àp ? ½‹?‚…Ü?qR ?{M%?a}ó?_»?š>ê#F?Ú“§?óþ)?Ÿ ?‘ü?•|m?ç?†H³?}c?—Lë?6?…]ì?‚r?s:˜?w4?½³?°º¬:`Ã>;c >H©?²]E? rÃ>- Y>Õ»?G/C?L‘ª?•º?•™?ƒäþ?‚†?#˜¶?.eè?\¬?ŠÅ¤?ù(ó?ÖÇì?+Ûi?Nb>ñ8?l?.JÓ?'Ð7?Kññ?O5?Rx9?CMŠ>ðW`? …?€m?f1 +?ƒ? +{? ¡?%¤}?³¢Õ?¾!T?íØd?ÎS±?>J?ˆo?}ƒ?ŽÜJ?ädÞ?â¹?á’?ßb?ݶ¡?à;5@)^?ñî?$"‚?)+ç?:0?5ÕÀ?0î?5b?±¹l?±² ?Ób©?Õ¢~>·³ý>œ89?Ú¸Ì?äfÐ?mµÅ?JÈ´?2k? E??I™e?Zá~?Ïë?ë4[?]c>ÿ4ö?¶í{?êÀQ?ê•=?êo?¤£Í?rÇ?¸ÍN?éð‡?—­¸?é%?Y?Ã>ê¹>OÎÜ?:?Ù.÷?Ó¤?ÃØ5?£J>ü…?"úâ?£k ?©»{?¸sì?´6¹@¤ï@PŒ?³!?­XM?˜f)?–Ϧ?Œp?‡>—*Ó>û„“?Hùã?ѹ>åÄR?Iºy?™Hÿ?žÛ%?¥ %?†´/>ä÷º>ç7Å>ì2í>þ{¦?dr‚?dJ4?d+5?dÅ@§±@ï?ºÀ ?¥|Á?Ã5Ì?Ì–ú?§-?Œg(?dò¤?1fb?Š3Ü?ât˜?¯þ>ˆa/?"?áïm?Þ§Ì?6Ž¶?3Í?­Ð~?¼5I?žÅ ?Ž—?Mw>n0¿>²ù4>àŽ4?JCQ?¨;ä?’Ô»?ªæ?@×Ì@P@5r?še?™à¯?OZµ?4^Æ?<øM?9L?SIº?l°?4º+>Þ‘™?TÌ?cI*?‡K2@ +°”@ +Ý?ÞþË?ÝÕ5?%ÇY>â4@><Õ}è?2³?¥è&?²?>Ce??¹?\Ô—?W£p>ÜÂ]>܇‚?Œg{?– X>ÒÄÅ> +þq?ÉÈ@-£@»#?™2|?‹‚Ú?`h?rÙ?!…¨?#™?°SI?Ëd%?¨8ç?”Ik?“Û/?ŽÂ;?m¡?:À«?Hy‹?ÀÎ?‹ôí>ßÿi>Úè?¤B? ?h^?¦À?Š‹Ø?ò!?úK’@¼ø?ý›/?g?cO‰?cíß?\/?¹yQ?Ù«?…6]>Ù»K?{Êv@ab?ÞÔP;'D?N”­?YK°?d…?™ËF? Ä>†¢^? Ø!?s¶?gàÆ?v¼÷?‡[±?…pd?{¹?vÔ¨?r“ ?ƒºÕ?‹Ó:?¹‰¦?å÷?¶B ?"`@?, :?0É?æz>ÔN>Ø”Ô?^.D?Ž³?¸ê/?ëL?¸[J>w8>zA]?ع?´$?§Q*?º3?ê,?þ˜M?¹ðÕ?cç¼?ZÇ»?Q ?lN?ÓàA?Öï?giM?X:­?VF>Ø/Ð>O¯€=JA ?'¿I?Øœ?Æ13?L.S?Iøõ?VT +?Wù“?©Ãj?µµ‚?™pê?†²º?;;>½œ®?'ç?Å»Û?À|¯>áS‚>×W?ÉÅ3?ï;?Ÿât?WoZ?fý0?‰Úqä€>‹ Y>­q>¡S ?…U?(f?IX>ÖÅd?GÏ&? óÌ? ã1? Ñ“?|p>þÓh>ôg>-–™=¨#§?€Îï?ÏØ'?¼B¬?žß(?•€æ?U:??W&?ä?Ÿý€?n?T^?…w7?šÌ?u„`?Oì?8¸?S{é?SFú>î#ï>Òá•>&>wì>>—a¯>Š·>…Ò>€îÿ>y,9?Rõ?Z›Y?/9?Oø?`·>Ï•x>ΧN?77;?>9?U­ô?Mòä>´7<>4Û¨?3C?9Úç?(Cë?Wž>É~ž>°_ò? ±Š?YÙÿ?RŽ8?EHX?G-s?ÛD>ÇÅ>ÿŽ?F ,?C2D>Üä°>Гu>ÛQ>îeG?9â?²®j?¯x:?VNG?*)>ô_ë>ˆ±>ƒt¯>|ë>rÔ>?ÿ>˜$ü> ÓT>i°>1þŠ>€Ã? À¶? ª!>x#À= >qo>]€>U9>¯L>­ú÷>{À{=û“=Õ n=°‡Ñ=‹´è=‰¥y>•ºþ> ÿ>£aŠ>¢rM>¡-G>\%:éÿ=ÄÜn>GÀ>ˆJÿ>8úv=)°p=aŒü>Æ`>àd>Ñì¸>¼ã=b’Ø;Q®€=̬x=ô„1> tå>Mm¤=æè=Ô[>70>2„_>"“>z=¢šd<™pí> +Ú<>„>©‚B>©’’>£<6>™¼A>OÛ>‡m>|$$>j¤§>Yœ9>HÞà7€2 @,1 @~Ï?:x?-„@?4N>Ô¢>€í·?ÔO?I J>¢‰Ý> ÍI>;».=IÇ>½WX>Æ5>Æ"I>ÆÁ=²Ê=é W>ýÜ?%š?,I?¾•?{R?9È"Z€„>×W/>Ï7y>Ç?³N?6–!??.Q?N—J?+7>Bïz>SA‘>c°F>¹?t>¸_b>C4j>}é >¤Ix>mE=dŽ +=±Ì^=b±>¼>ê€K>ñÃ*>ò(?(Z?7)>‘ ?>†HÅ>ñI@>Xnù?P?`»ò?#h>ð‰:>±)>ùÖ>¿^í>ð!>Åfý>ŒP„>5„=ÇIô>žù?z@?7DX?o…‹>ûËn9·ÜZ&î>È…>ÔÈÇ>ï$>ï†>ïE?°1?_>ôÄ">yWi??Sàà?iê??yÞè?'†R?0% ?UFQ?b¯I?m>?ÓÆ;˽€>³{a?b/ +?×D=Áò”>y­Y>ï |>—³Í=ž.>l8?'Vð?¨jØ?¿+?ï>þ?½ª?Vý?\?b?+>6ª¤>ï¥>’¨½=0=Фd>±(´?#<\>²óa>ž‡?+€ ?AÔ>³s•?NÌ?pO?>Šž«?f<>ö5S>ðcÙ>ó1Ø>ð|j>‚g=§†Ž=åa3?Tâ?B*­?3e’?2±¸?)>a?o>ñ=?Ht?q.¬>®D_=&o~>ª‰Z>ñJ?Q¼M?qy²?-^? ÒU?Ii?Q­•?K>F?Dʘ?>ñÞ >d>GÛ?¨y?ùÖ?“dc?·Á<™„Ô<“ŒC?i´i?y?µ4«?¥DG>ò{e>Ø_X=Í÷c>%¢Þ>¤ÜŒ>Œ0d>PIÂ>j§>‚‚F?6Æ?ï%?Ú9´?—WÙ?@‹f=…9ƒ>Ó»ÿ?s,¾?ñ%å?.—´?e²#>çC|=ÖÓ6?¸:?s|9?E!I?/×? ªT>ݲ?\ã?Œ³?öÉ>¹ÿ@>ƒT={+Ã=„d¸<¢×j?[–ž?p˜y?¿i?ÌýÓ?¢u‘?Ÿv?ì\ÿ?ÐFÄ>ô9Q?5d/@ Vø?ç ,>“ãê>´_ë>ôiË>½fÅ=¯Ò¤>€a?Á¨?¤c>ô–ã>öòL?z–>ŠK?>éËì?Ryˆ?}QÀ?’i?d„±?8} ?:’`?CÛ>ãÐñ>d?8Ç•?]ãÌ?´M¬?¼éU? O>õ3¤?p™þ?z®ì>õNº>÷ƒo?.?Qáõ@ë„@L~>õWx? Ý +?/w?rN’?å§?©ï>Å4^?oö?„Õ€?Hóš>õ“>õüü>õ˜+>ý=ñ? ’y?NŹ?u¬A?u¯{?uµ’?õÝÌ?õP?{ò?Ò^D?ÜgÃ=€-Ú=R¬¥>õþS?¥S?°­?•ƒÆ>ÍßÒ>ûÄå?UÈó?A–?1íô?FÑG?=ˆŠ?7~Ú?1vb?gï>¡•®?eÆ?¸°{?Z°®>Ñ›Þ?ì¤?ôë?â@öR?‡{m?].?‹?®|??ƒ¡W?vl@?ß?Œ¯>~N/>_â ?ug8?böO>G¬ë>£áå?ã`ì?É»>VXÎ>Ÿ¡?gNõ?Q°)>þI‹?!e/?v¥?£A?á‡è?ú…°@³¥?ìâÝ?¨mœ?¸:?v¹¶??»~?&ôX?ÿ,>âIB?9òÄ?VU>Y?Ö>5pí>;-µ>øÁ%?Ùb?Ýg?õ4 =Ü, ;›Lœ?´½9?µÃ:?ÜØ]?ÁÎ>`ô>Ùû›?¥ÂQ?Ž¥>öë˜?-:¥?›!Ð?zÈ ? fÕ>ã˘>(þ>»“s?7f?f@Û?†%†?·†L?ëøi?Žž•>ýý?Šj†?ºÏ?N ˆ>öóª? Æ(?=L*?L‚è?[´ç>ÌîU>¨ª=?;â?B·ý?4|?9£H?Ü¡Á?åÕ?vãq?€º0?²7Ø?¤ ?vÜL?pfÎ??4?&ž? ßä?!lj?vÏ7?'x>·Sì?vÃT?Jóý?}Ì?6‚L?Vñ?±îý?ö«€?¾f;?”ÿX?% >z^?1?fp?ço)@š*?®Õ?•ãk? -Ï>¶O?Miþ?e˜ >Œ¿ˆ=ù'ö<åt“:Š= D˜?á?&¥°?)lJ?4¬¾?+‚?oø\@‡p@ßë?£©O?¯m?ÜÆ?®(D>ëTP>ú®>õÀ?×ð?F§.?]‘ø?n„±?~?¸"u?¡Šz?…¢3?8<‡>ÚE?3J?oö^?t9k?u*#?Ÿ½¢?´¦? ƒ>G?ÝÐ?NBH@#PO@KÓö?î(n?·{?—>?Ь?Ç ?˯?&“>ôKô>ˆÚ\>^¶^?­ Ú?ÄA?ît?Ž­Ô?âÁì?ïxM@Š±@˜|?hã?Rú?¨Î?ª¢F?sO•?„0Ã@÷Ö@v‰>ñv?ƒ„?c)w?lX5?¶ +Ò?¹e?Å÷4?Âkh?ÔõZ?´Üš>’Ê>ËSÔ?F‚N?^~„?¦ }?š'¯?wš?Švú?Ý`™?Üy?µì?šÄ>ñ0V?@à?ß#p?¸Ì>¶í]>ÔÝÞ?…„?â->ðt,?.½©?´,§?¦d?mÁ?’e¿?ïÓ«?Õø~?r‰Å?H3Ú>˜ê>!>ï4¥>ö4ø? œÄ?KI?îÄk?ÙÚ?_PÙ?h˜?qÙå?…B6?½¤Y?³Ê‚>íâ?‘/?m¦ä?iÆ)?,"?+e?‚”Ö?†±ê?±¹^?±˜·>•’æ>€÷6@Ý@eU?Іç?ÍŠ?ˆ‰?zdº?&dÉ?ßA?ÏMå?ìÑÛ?½Ë$?°U˜@QŒ@›?†Á1?*ç?ª›Z?Þr?§]»?†‡8?qNê?RÑ”?Oóþ?Mn?Ñ>¥fŒ?%ªˆ?›ç´?ª®Æ?Äùð?®9Í?F&?ED¸?hC+?}o>?ÎþW?ÔÆ?÷®U?üüZ?¯U‚?­~?Š™’?…ãÇ?Ãü«?Ì“’>昃=Ò=>Î"f?=t?'É?2àŒ?kP>Ïþ=? &­?etÐ?>^¸>æÏÿ?ö*?dëµ?w„?ªæ?­VŠ?ÞA|?Û§5?%â?'÷"? Áý?ªÍD?²ƒ?¶0U@ ÝÓ@@< ?ý›?™Ô}?§›Û?¼Æ ?±<6?úÚ?²±ä@"¸L@;i?®UÌ?«¹w?Aá?‹ã¹?vD?— ›>î9è>3*ß>©ª>àÏ×?]Y‘?¨m8?£Fw?¢¯ ?®?ƒ?Åán?ÃÒõ?…Œ#?ƒ4^?Út?ß„…@$÷@m?ƨ#?¤qk?Yîþ>㾂?E,š?¦ö ?´+¯?Þr +?ß•?Þ/ž?ÞÅ?7}>ÝÞÄ?2Ï??dz?‹´?¦|?¶Í?ÅšX?ÃU?Áì?¯*”?<Œ@?;®œ?£êý?¥wþ>äWÒ>†7Û?²wé@U?½€ä?\¿?Kr*?#ÿH?!Ç“?“]?"ïó?‰*?›?f׊?b_?p®?}Ó?}È?†Ý?Žá?¦êµ?Ÿ]l>ÚÒ >Úõ?wì?yOô?jHô?e”¡?)i>õ¬Ž?F-ç?¡Â?®þ9?Ú'º?ÞcW@#D›@#n–?ŽÃ¿?a^}?‡°?›gé?¢Z?¯t?Œ}”>¸Þ¡>Í]I?YŠ‰?Y…?ž§Â?£ù?Žù>›—?A ¶?‘HE?n•µ? + ü?„u?‚z@?„r?¢–Ð?¢Ëß?‹À?‡±À?·~˜?æ×?ȶ?u=¬?p"U?úŒ?‹…2>“Ài>’÷G?%‘ô?:!?€º±?•ae?„?x?X¬¡?L*o?5,ï?>~c?" ?P\?6?›{?¢Í?£­;?Zý^>ØyŽ>Øv…>Øn!>ïèé?Xdÿ?Xié?÷?þ’Á?Òñs?¿¸w?y¦ñ?†0Ö>¾Âû?5L?n²ž?ª9‚?¢@»?žã?¤N¿?so£?W˜`?¢úA?´æ•?R,¯>*÷>{²­?6 D??¢&@,I@ð¤?UBk?E„?jeÄ?˜n? ã´?§A•?˜…?Vtþ?Wöî?`4Á?Y*÷?V ˆ?Uô$?‰>Õ¸¯?A(‚?že;?‰ºá>õu¿?_:?ÄÆ´?Ź¸?É9ï?Êœd?ÑÝ?;¿f??Ôø?SÈG?eVž? ×Í?¹?Wî¤?Aô2?)o?$ðô? ¥>ÑäÀ>ãžv?V7?Z³˜?F)>öçõ>´fÍ>„·X>¹C6>Ä{¼>³;?2µ¥?5_>_Ñ=£¯>vé>Í??'{ö?Á§Æ?Â0=ðÍ?zíË?Ê:??—>ÉVÙ>ÔÉ?¼öj?Âz?SJË>ØA ?Ç9?8Wá?5o4?2Ù?/“?ƒµ?,üý?3¢>? š?—2>Ž}±>—£>–]>$Ž°>-t ?`¨? +Çû>¸S>–þ>iÑ„>e¦ê;ú$>m¨À? G€? >©«{>”ê&>Ê>ò?.Yõ?-©+?%Ñ¡?'9'?) >'9 <­¼>’ëù>¤–h>£_˜>—ê>L¿>WAF=5þ=møØ=†¸@¨Èx>È‹]>Ó€{>ß–ê>¢K&>—­ä=zÆ=Àø>§]>´‹Ò>­†>l¢Ô>¯?Š>¹25>½X >jpã<„á–=-‡L=þË>>>z©>CS’>CGm>;]=Àãp=LOù=L =kÌP=oj=ã6£>$Ë>*óÑ=åˆü@&ÌA@ ¿>d)O>¹ŸÁ?I°?ñn>{@!>»úm?Ñw>©„}>E Ð>Î÷9?„Ç=ëw—?z³?–5Û>›v>,žæ>Ü`>ã2ó>êÝ? þ?x³?c58>üÀ¦>ý–!>윭>¡Bõ>*7>ùˆÖ>°—=ô¾ˆ>Em×>šIá>ªg¶>ºŸ*>SŸ =÷S4>o¼ê>¦¸>Ìü«>Ü>õ(>aôj=w­‡=Åj +>š¼>ó’º>k‚À<Ð.÷;öl·>‰ëc>ò`¶>i=h@<ù8Ð>ˆSá>ñk4>T9I>ñÙ?aâ¡? sD>z¾>­¡ý>¿[2>þÏý?ã?6~£?Tu?1­K? Tø?0"F?aª¥?l?o£%>ô¡¼>MÍ*>Î+æ?•?T±?Å?¶gn?®RÓ?¦5>?jao>ðHÉ?“Ô?[º?A ?4Ç?h®?†C?oÒ«?»/C?^¬g<’‚V>AJü>ïTC>î2>Û{O>êœ ? ¿_>ùº>­°ï?~¶?‡?9àâ>~»>•+? +y?ÇQ?ÀY?¶u3?ŒÕP>ïdÍ>ö…k>ø°©>¡™?9˜Ì?ߎ¿?ÒÕ³? ?Vö>‰òR?'9?‘T>ò6b?. $?ƒ¼í?o³ý?L)?Rc·?XŸø?p1>1ÿU?=ZÌ?´¿?l²’>ðxµ>ðƒ›>ð‘H?F»?4–>’„¼>áaü?9{?3+§?,׌?9kË?Ik¶?T>ñ%Ÿ?=Cö?c1.?$õ>ôq5>oá< œ€>Éç?#ì?JžH?U^H>¿•>¤ý¨?ZóÄ?qÙ¯?ðÐ>ñôŠ?#å?!Á)?lÊ›?r&ˆ>ø·û>ð|)9 \†< xž=ÓHå>XkM>ò’ù?Ÿ7?,Š?³m>ò¿B>Ùo_>pt>UÚP>;Ž1>µ}¡?QI?‘‹Ñ?Þ‰4?£`½>ó1U?-»˜?sFµ?:>óYƒ>š¹U>7Ž(>üö +?+0Œ?€ª¢?žÀ?s2?•Åy?\2S?E³»?`t>óÓ>ÿ °>Äœú?ÈÎ?îa?e­q?sð?…V?¿`?³„Š?µb½?7á?HÜÉ?”f¹?šCÂ?;€É?Té?À5t?¥ýa>œH|>±’û?5|?ß?-¥?œnÿ@dÏ@ Oß?î^ë?˜^i>ôǪ>Û$Â>¸¬?/ÖÅ?täÊ? Ñ>áé`?%B??ÿ$?0­j?"Œ“?G[š?Z +·?OK?3 b?Ú½?ó°Å?¼d³?µ6H?wgÛ?qXL>õQˆ? +Æ’?•"Ò?—|·?Ú)Ù?ÌÑü?8î9?8Õû?[û?œ›?×6_?Õ\?¸3ô?´ðS?²”¡?{ø>õ-h?wë“?³&E?ë/c@ض?¯Æ¶?uÎK?uÒÊ?u×ã?ƒ¦-?€ü€?v ð?uêÈ?â`!@7`?+µ´>öC?‚Ñ“?ƒÎÁ?bD?X9?uŸê?\}<‰^B>EkD?ƒ\?XžË=ædY>µáù?v:î?oÈ*?Qæç?™Ê%?îÞ6?ÁéÍ?’ Ñ?'J²>ýW?St?¸ÊY?nò?oþ?¸Ý ?GÀ?59?õb>ö€>¡Q>®÷ˆ?ú%?$6Ñ?`¾?• e>’Ï–>oü-?R“?d¯?NV??OÃ|?›E?—½…?dL?Wƒ?{?#gþ?vÀ}?Lç,?÷z?û?4>?P±þ?t„Ú?fm©?NŠ?i¥Ï?vØÄ>ÀS?#Ú?vå&?˜d¨?¦“>ÌhÖ=Ñ^â?_èG?ƒ Ø?x@?vóŠ?võ®?w;¬?oP0?hñ‹?¹= ?µ}Ü?•¯?’­?.VŠ?+y?Y“n?JÌ–>÷?2Û ?¬u?b ˆ>2š>Ñ>??Î*>Ç;Ä?DD?¿é±?šñú?yò–?ƪG?ö‚?/€=çZ?0Èf?c1”?”Ô?›A[?d`R?Ná×?•jÄ?’Žœ?8Þi?7Âr?oÄ“?e?V?vú?vý_?vú0?Øw@ZY@ +?d7 ?˜»@Y’@F:?¸ã?’—>û¾Å?OÃ\?§õ?Lm>,År?YxX?È)c?û?vÈ?}¿D?ˆp?˜#>?›ba?„[t?hÑ%?\‚?iŠz@jg@!d¶?pøv>öM>é,=è'?7?P?èªõ?ök?~}?r\Z>ë;}?*g?àƒÃ?ÙÜé?Ó6c?Ì—£?Åúñ?´‰þ?6j?Ÿwó?¸ˆ?¶Y†?µ x­=å.:>˜™>õTd?E< ?u;Ô?zh?€6?dÕ$?NËì?—*2?ª!ø?ËŸg?ãÌA@A@nÙ?”‘U?t›?¢w?² Ï>ÑãÝ>… +U?€tš?„å?Žu?Ž'¤?$†þ?}?O,b?C‰j?I1i?]`Ä@3_Ø@-ˆ*?Îé?‚R?s^*?„‡á?óÔ¹?á[>ór? =?röË?fȧ?'Bø?#ñE?&?ž„Á?’“?™Î?%žL?r-H?zö!?”E?Áz@ 'N@F•?)j?42?m9?tê?`û?kÙ}?˜á²?tÚÉ>)N’>Ér?†Èè?díZ?-?7-{?²ž?•y >ð(Û?Õn?xs³?zÍ÷?o¾Ë?hÇk?M ˜?y%|?Ëêö?¨:G>ï!}?ýÝ?›¸è?‹¬>î±V?>•?‚e?o‚}?. ‰?)>î? ÂÆ?Å.?—Q?Ñü2?ÁÃÜ?(†? …Ó?f›?’w?Qs²?Tz¼? ¹g?µ'?ÍV?8\?¤Á?­¯N?覠?쯉@@4~@÷²@ ô?o²ß?¬P?NÎÃ?\’6?7ô^?0·?å®@P”?£øä?óI?p0|?+?~ú+??—Þ?Oxä?i;?‰÷Š?®»Â?®£1?®‰)?™A‰?3˜k?R•À?£‹©? Ê4?žµ?šc`?›_7?œ˜¸?ŽHß?¢O@ e¦@_Õ?zqG?*s4?Hà$?YJ.?çF@â}?w…2<;>ãø?e®?eŽë?e\?dJÐ?e&¯?NWB?åF?¨²?€zY?}ü7=˜£=¬7ô?hõ?&Èë?5?ªÆx?«¤è?· H?´j½?ªe?—ß?ˆBÌ?…$²?„&ä?¦És?úÈf?ýnW?â+?à´.?Á½}?Àw]>ÿþB>áŒ>áq>áMí?:sÿ?P¿Þ?`b|?X?+f>6I>³à»?N5“?tÌý?Ò’\?Óèù?Í÷é?Òk†?ªmŸ?¦–Ø?yJÙ?_Sõ?’x?§S ?¦î=?§(W?–%|?ní?‚ý?¬éZ?©So>Þˆe>Þ!q?õŽ?'?Z$U?yM‡?Î+ +@yW?Ñ+y?’û?‹ìŸ?]%õ?i%¥?¥¼Ö?¥©Œ?–?‡ß?`Ý?]ÅL?aC?\Yì?ÑS?²Â¤?ŒÎë? -Ð?A!"@^ç@]Ž?Ðÿ³?ÌV}?—3:?ŠV»?R®ž?˜ +>̺ > L>XiD>õÌF? S>?ÑØù?Óð\?°XL?¨ ?¤t?£õç?R0>Ú?~Ö?]¼V?PCY? +µÙ?H?ÎÛ?ÍÛž?÷á3@‹?Ämü?£sŒ??¸é=ÇÜœ>ÆÊ?”¶C?g»?{g?}8»? Ÿ6?ݪ?…Úó?‚ÂÊ?š‰J?©#¨?œ»Ë?ˆÀÏ?“^¾?Ö×¾?Ôš!?ŸlÌ?š i?ó4>Ù%¬?†C¸?Ƭ?¦`§?Y „?8#û=âJî=÷Ò8?1îœ?-ó¶?m»Q?{ðT?X¯«?K§¦? óM> ë¾?ü@6B@/µ>Þs#>ظ×?ÀáÌ?Ø«Ç?ÇX?VåÓ?ƒç?œ\¦?|ÈÓ>ísž>ó …?'~ô?0F»>®ó/>«à?h±Å?ˆ†±?P?(‹j?‹çÂ?ëÏþ?ß*,?µ³¿?¶en?#Í??ÄI?YGJ?_éÇ?@»? QL?xƒ ?Ý P?Òè?‚)¦?€?WÑT?WÃ@! {@<º?·ä>ב/>׈Ã>×q?[…?j£.?fÅ=?W3Î?W)?W á?Vþ?±s?Ù÷–?ªPë?V¨Ÿ?ŽM]@ Û@…R>çâß>Ý~??Ú‘n?úÏÜ?£®?b²í?5Úµ>Õy£>¿]—>²»å>Ïþ¾?Ñ=)?ÔÁœ?¡Éè?ŽJU?r½È?T¦?~¥°?´‰f?­~Ñ?J-K?N—G?Xt%?RºO?#•>ÒFÒ>öî?Au>ô£{=èW@=à7¢?#ýó?„Ø›?`¬>ó§G>óÐ?ϲ>ùwA>Â<'>Áð›?JÇ?Léâ?!ZR;2>?75^?MþÛ>³2›<̨€>ô@??? m!=üú=“cL>™¤Ð>õ5>Ö³À>_XJ>r#«>Åç>ÃÝ„>Š%ô>L5>'w6<˜6>·hj?Ok>åqÎ?IÅÜ?QÊo?QÛ>¿í>0µ>™á>d’=ô$=gì=@Õ¬ +‡L>¦l¡> ×¢=è*Ø=³|=O¾¶>3Ò>¤JÅ>—åþ=&’<ônº>† +Ì>˜eÓ>«>nÉ>˜ä×>¡—É>š4K=å L=Ò˜ˆ>IÉ>ÞD­>êl@>óV>‡Àq=Òçp=² :<úk8éÔ€=x(>':]>Wþn>SŸ0><êO=Óë<Þ¡I<î€=EÙ=il`=tìL=0è=ƒüÌ?üâô?úP€?? ª‰?Û?Ü?Œ]>Õ¾Ò>žFu>¤ˆ¸>ªÜ“>±=·>·±€=µ0?[ H?oL=H,×=›=Ì£Ï>ü.j?Ú%?n„ë?dìÃ?QX¼?0¹">ù¥÷>œhP>†QÀ?7)>«°L>gL>Š©\>ßx?¦³? S5>õÇ>au5>]z>ÏÏ>æÚy>ó±;>óxs>óDì>óÔ>íoÃ>í†g>òX>MÏ$?‡æ?àþ3?M>>"î>Ïç? æ™>üd>ñ >T4ˆ>ØÍy?HÚ?Lÿ÷?Qû¥?#d¨>ð,p?(ëz?\RC>ÝŒÔ:ÒD*>öC®?o½“?.Da>Óð/>Ý\i>ïƒA?2 ,?olÚ?q}­?€‹–?ˆ¢ô?Á¢?]Œ&? +J?3ˆ>?k„?O?™¤?0¼?\BÙ?œî‚?ßÏŒ?Ÿ"ƒ>ï¨?…¢-?åö?„3Æ=‘2>Ì¢?Q`?mõ?Š?Æ?u¤?aH?#–>€Õd>¡Jû>­é:?ý?O¦2?ÑÏ>n*~>«¸c?šâ?,ú¸?o‡Ú? +µš>å ?‹G?RFù>üŽª>¥4®=¶ Š>_õW>µö?!>ã*Y>¡Dê>ëjG?!Ï>ó(>Òö©?‘dF?î°?’[!>öà„>ûÉ„>ð‰l?/7®?V*/?1‚?v£? T? K¿>òc?òb?K²Ö?qƒ?9Ý´?è>áá>Í®ª>øJ1>û=4?P¶ +?q °?O:>Ú=ô?Dñw?YB?kÿk?q¹ß>ÏIò>ŒèÊ>ÖÛã>ýÔ‡>šY]>˜÷Ô?…9?ˆÓî?ZåÄ?_ÄŒ?ãe>öžÿ;9‘ú<ð¯>è‹Ã>ÆK'=‚C>ò§>ÿýŸ?%±Õ?ñ[>eë,>€$B>Q$>šP>§¯¡>´á˜>Âò? °?~‡²?Fq>ó˜V?ŽEÎ?íŽÖ?® …?`pI?Kšø?3Q?SÎí?s™?µ1?Ö\ˆ?±"˜?¨¸ä?<òÈ>óÕ>óß3>óë?åÜê@k?ÄÄu?·ã?¶ m?³¼S?§t>ô3ë?å:¿?ß3=?L¢²?9o>Spi>¨^Ò?tpž?‡š!?ºÛn?œž?8«"?KôO?cÌÕ?¯YŸ@"j?ëµÛ?w ¡?T9š?"tw?yD?=R?NÓ8>ôðˆ?èä?/ñ?ƒe>ãÞ +>éÎ>õy?“é·?©?75‚? ®ï@xA@ì?0\?uõ·=ÝÖr> k–>’à>?xÏ=ø#$>¦â?ߎ†?Þê?Ýä?Á:¶?u–â?L.p>¢9>fìæ=Þ¨œ?2?°¹(?›C?uÁ>>ý¤c;Ïb€>:w?èÅ?š‚R?Ó?›ùª?uí¬?uðï?uöF?©Zù?¸~ø?œn?’.Š?yL5?`·?4p?¼?­£Z?²¢€?v,ñ?ltÍ>øã?ð?\J>?WŸ²?vHã?‰_Z?«g?{>Æ•C?2 À?šr?ƹ‡@‚[?íTå?¸Óù?‰6E?-ª8?Œ_ç?¸áU?#YN=ܽ?¦ºã?õwÚ?]E@>ö—œ?L*?\Ä?„B?€€š?;§>öªý?/X:?8x¾>÷™k>ï_ã>2ô>„E9?—ðÐ?ŽŸ>öÇI?·¯?ƒ˜?flÓ?ö½?ºÒç>ÿì˜?LÍ>öàø>öâ”>öåZ?Rá¼?’”´?DÈ©>öïÉ?lí?š©ƒ? +p>LÚ+?Z´?‰d?e•?Z–?4ˆñ?rŒ?Ÿ1?²K…?øL?w s?w—?r[Ì= ¢>ïã>‰Æ=>Óx³?wÇ?Š©?Ê™$?s4>\Ä>ä8Å?nþe?|:½?“ï?€š>?D¶?~m?¬OE?;‚ +=yàz?ƒ²5?ñé?ѳ?¹XD?á/×?÷ 0?bPó>ÓÂ>oE„>_.Ð?m{õ?Ž–ë?}¸!?w|?ëb?÷¼? å>øè3?ŸÇ¤? ¿Ô?w’?wˆ?w8?Ž@¦?âã¬>÷u>ùF>ùN>öÿ™>û?*Ç’?l–ø?›>o«>¨À%>»Ü?¬x?p‚Ú?Nÿ¯?+äO>Ï3§>gpy?5=ë?€ç³?g·ž?e~f?=m +?{c>Æ}G>½Ù6?Eáh?HT?ñ½>ö“ã?ßR?ô§?ö‚?õET?àç?Þÿ?«Oó?¤E?‘ˆ0?•ð‹?šT@?ž¶æ?£!?}Î>ö'è?û?,ì?9¾?<úT?}-]?¸vý?;›?& t?=kÄ?VbÃ?™Q²?ÓC*?lqm=é\-?øf?…?å77@l´?ÔÜ>õb#?IuÛ?uIÓ>ÇOÒ>„>7>WPä>©ÌŽ>ѪX?ŒÎ{?¢3ú?ØË;?êo;?©­?š#Y?zú?i¿>Š1Ø>?¥P?¦P®?¸Ä?¸?·):?Z*?[þº?ʇ?˱û=U>'6œ@sf@‰`?¶¶†?ªuƒ>ö]¾??º?‚~3?‹ú?¦4b?¬&¥?Ût?¼nQ>òá>ÄÂ>»^?&V½?:?rfè?ˆ§6?·ñ?Sd?/ã.?šÇ‘@6 M@'§?q¹¤?:M>¦©?"o?ãÞ ?¼\? û°?.­«?cžw?˜ÿ–?ô'´?Ïu'?q Ë?*ìW:¡>ã€?j¾ë."?Ùů@Fw?’R?NùÐ?¶é ?áÁ›?tg>ê,Ô?P‹Þ?‹!ø?[x'?&¡œ?GÅõ?ih‡?Œ±:?®ÛÉ?®ÃL?®ªÒ?©@œ?”/,?“MÛ?¬÷é?­³Ÿ?£¬Ë?¦Žà?‚]*?BÌ?R&¿?G|þ@cB@¦D?ç?á´?>ˆ;>ñ= @”˜@,gö?¢Ÿò>æ#^>æP>ê0>‰=fV@>Ľ¢?eZi?}˺?š /?€±?dÔá?`úi?.o¶?)bç?C’º?AÇG?£º?ªñB?ŠUx?}Xæú‡>i†³>ôg?b¤´?·(?âf?Û™V?¹†G?ºÁm?ÈÔ?`ç?ö”? ‡»?žaJ?½4Á?»e=›×>ûÊ?`Ñ?/O*>Ìg?¿Ò?{½-?R#i<-_;ÿ[ä?\ÎÖ?_ÆÏ>M<™ÉH?í @"Qú@ Š°@ÈÈ@&S·@/1®@?§?ݯ?E´ì?Cc?Aå?>ǃ?W¸R?]ùi?®@À?΂Ì?°YÝ?ì’?j­Æ?™­?:Ê?‰=Ø?ˆÊÕ?£þ?Úô?_¤¯?Kü?T8%?\–n?Àäº@b‹?¡^©>¼>Ý6…?¿I\?ÂÂ?±3 ?° ô?>(?#Èj?€5Q?—?„Ϋ?dÀw?h^é?jZ˜?b%Ì?[&½?j­G@#Á¿@$8Æ?¼<;?¤!:?4|>Ú¸ó?„D'?Ðwi?­vÜ?L?vž@Ôû@ Õ?RïŒ?QF?2mð?'¨?Vl~?br½?%ŠÎ>âÉÉ?Dkç?ÑC?Ê'ú?¹Üê?»‹&?t–?Y­e?Çp?óˆñ?ج?ºðý?ÂÇó?ä—‡?Þ\?žþt?¢->ÈÞÍ>˜T?Síõ?†È?fög?AX?/4„?&O?"0Á?ÂK÷?Å€ö?ȼ?ËùÃ?6ªX>áÈ‘?”Ø"?؈w?Ã=}?¢± ?¢­Ê?¢z9?,>ôâD>þÔ¿?LFÐ?XÈö?"LÊ? +‚É?Uª¥?ö?¥î?ß"L?Ö·«? 'ç?›¶R?‚û?¢jt?½Ð-?Àü?ˆ?Z£”?‘ÌF?ÀQ•?±¿ ?#»;?!tÝ?‚ša?‰Ëï?BŸ?¢(—?®º?µõ?•êr?ZzZ?{Ÿ‘?™ò™?–@G@$…ê@+?mïM>׺`>ׯÕ>×™Á?0 ?’§!?Ž0|?W^“?W"¸?Vz®?W*@ ­ë@!AÕ?{ļZ~©?üŠ?æ?K¥D?Oå?Ú•O?ß?¦Š+?•0‡?V÷?… H?<¬>•’ø>®GÑ?X„=?_…©?Am`?AÉØ?‚b ?‡y?‚ž?„šp?oÕë?Ë?Ac?'Ê ?*{‰?{? û/?3P?R4Õ?+çí>šÃ6>™KJ?F>? ;°?$ ?Ú?%Y¿?GLš?f»?– 0?ÜãÄÙ>å!$?Køð?K‹s>ÐŽy>ªz³?9—Q?‚k ?UÖ<>•Wv>]ž?Ä?&‚n>à:}>v ˜>sö…>Å=™>ÄÊ =¼õC>"¸(>¬ã>žÈ—?=L§?YÓ?'Ï>¿$>Ëô?:-"?=*>¬Q2<ëÐ?éú?$ÉØ?¾8>¬ù6>¬»=ž}>g‰ø?3ã?21>_÷{<Ù‹à>¡¼q>­>«;ë>‹d>…ÇÊ?x¾?N¹?HRÙ>BÛ=ÁV¤> ‚ >'¹w=†Ð‚;¤¹Ê>FòÊ>“Â]>’<¥>aQ°>[¥B>aOÐ>ïB>ðê€?•õ>ÿ'ˆ>x›+<#;I:sïZ:ýk<¨<Ú‰3=f»=`d;Ã;•>=‰×_>&=ùÕC=è’W=Ït<=B/ë; õ@9ÿ@!•Ú?F›? ­=Ã<¢>šˆ±>¯fŽ>½Bé>$Tÿ>*¿e>N6e=ìü>Ï~™>éÖŒ?|Æ>öÙF;Žp=öÌt?w–p?pö„?qÉÛ?q=Ø?{e–?^&¢?qv>äp÷>“Ü=¼Ô@>Àx>É Â>rL>F_P>¾‰5>‚¬> J>†$>¹ >0%¾=‡2=ºeÁ>‘@">îñ0>ó•ˆ>óbé?Òb=–÷†=‹ >ÅäU?=±?1 [?zë?(–?2?TÙ§?cQ>¼w«>²K ?‡>ëø«>Â{£>ßI@>ðGa>iz<¹Ï>€¹Z>îE>òÿv?î@?4uº?Z)¢>í_°>À‹? +»›?o…F?483>ïpÔ?ÇÚ?.Ï÷>ßô>0‘¿=¦à¦>­!¾?CUW?%•>ï7ä>ƒ·? M?¯À4?™"Ú?†ž°?GŽg>ºP–>è•Ü?”)?6©F?Z¹¯?ld ?lŽÃ?§>;Ú>Úw?L_?*ó¼>ïk¨?Wþª?­÷÷?°'ô?³3³?~Ç1>÷±{>Ïò>€I? q>§xc>È´(?J9>Åžš> .Q>t’Ò?ú”?pâE?sR-?¨ ?ˆe?päÂ>°„á>Òú$?,•7?KÍë?[²Ê>®äÜ=‹9Y?2Qœ?qf7?Ñpr?é›-?´j? jt?4£Œ?Ž“?cÔ,?qÌ^>Ÿáè>n„È>`lÓ>Ap˜?CïÒ?0å%?”]?ŸG¼>ú@>öD!?u)E?re˜?o‡©?Z«É>òŠÔ>í[B>¼½>žþ>!¥µ>–Mo?=D ?6{«?$=N>Õ°Æ>wk?*Õ[>΋Œ=õù?¦_?µTt?œry?q[=?%ˆ>pu>|T\>aÅä>‹J>¥µO? ³?0z×?`"±?‡²4?O¦?"Ê?4äX?1R{?)å>ô$?C >úŒö>ô>ÿ‘? µ]?ê +?[ç`?Wvˆ?Õõ?©FV?èAº?Ê:1>pé;>–m¯?Epµ?‹Že@bD?à@ >&þ“>x#i?#;?'=Ê?tÍ^?“¡?²ú/?“ßh?^~ú?’—1?·¾r?:©r>B+Â?S©?7ˆ(?5d?2°?\ì\?c¢h@¦5@Lr?œe?uT?â?²?õak>&{¶=x±à?TbU?L)f??Pû?9ÀP?xu[?sè?¯—/?»›í?Ý6„?Ò‚?‘ñ?{'?6JÛ?1Qí? è,?0?ož?uB?ußÐ?´=‘?áç?€¨þ>õöØ?Y~H?Œ±ü?ª³?v Î?m¤>ñå’?ž±d?¸–K?“úZ?’øš?³øZ?ý ?€Ê?v^?o–7?u9’?vJÎ?u¿˜?lù|?X>Ð?ÎH?c»>‡vÂ?ì¿?©Jú?j>öe?/*?°¬?•úë?vˆ?€y÷?Ðà?œÏŽ?¨7‰?«G?±Õç@Àm@8¡0?ÄÀ®?…ö¤>`¶=³èQ?´Ù[?ÔiÉ?fC—?W”Ê?F?<í¶>ø9è>òB>–É>Ê4G?†};?h’u?:-?0?ða?AW(?¶hÚ?¹4F?º?ŽÏ°>ööb?&¤?^½.?˜•?ÁÔ?¤0 ?’ôX?nÐ+?<ã??b9ä?ƒ?L +{?&ŽM?ô~?©`?>–ô?aä?šjú?¯‡ƒ?(Ý>ö®¬?íÃW?ñû[?ÜM?K?N—{?8åœ>¸ò‹>Å^ž?%{_??ý?Œ¼/?E¿?q)D?†"Ê?¹gž?¹go?¹h?²O€?«%@?•¨W?w7?Bvº? +Íö?F­F?w6p?*+’?à6?™­?Áü?¬¯?Ÿµ? +¥¢>¯e·?‘ Ô?¢^ƒ?~Ñå?w1?s$b?„¥¬?3Gõ?-³0?w)?~Ÿœ?œ!?“?w!`?G™y=â¬^>ñBÕ?‚ø?và¥?Jù/>÷ u?? Ì?UfG?r~?EW?“Ñ0?ý^>; î>ºÙÌ>öê†>øÃb>æØÿ?O?+Æ}?,á7?4»?À`½?çßz>¬¶4@^©@Pã?.Û¤>ûYÇ>ö¸>ø0ë?|•´?….ü?¬€æ? ?þ?%ן?8X?ve:?v`¦?vVÓ?vQe?vH?{O¯?€0?SMŸ>çǨ?c?,V.?QÎê?Î?,Í >‰?š?>õÇR?G5Å?²Ç?À´Ÿ?õ‹Š@ ]M@uk?º|?k*$?'ïC? !+>áÑÚ>À&? x£?/Î2?'·M?©ð?£V?·´b?ÔTw?׌Å? û¸?›–µ?ÌÁ“?Ïx«?`M?J¤d>øË,>ôR|?Šæc?‘l>ʃˆ>˲4=Sbû=Ž´Ç?1d?÷ž?¶ÛS?½…l?òÑQ?àÌa?jZ†?X¯? +E?EÊÖ?çGá?ÄL>ù¯ï?,M?Á/?|ù}?|? +u>ò¤m>í§µ>ïŽ?^*b?òV±?É–‘?CD?i7–?¡ná?œC?‰yÝ?‚Ó?a¢x?tÞƒ?¡Ç¯?±B¯?Ç®î?™kÖ>ü‚Y?‰Á£@Ñ@$K?´V#?žÉn?c0œ?Wo=Ô?œ?ºù?ª2¨?·€°?Õv?²]’?Nõä?y”Ø?³¥ö?­•‰?œ¹w?‘B?oo?ŒÂê?Ϊ§?µµ°?7¶ý?†ƒá@ß8?ü´Y?®—ï?¯® ?›@›?É.?À°Â?·×ö?Uœ¤?usä?äjÍ?å Ù?áAÙ?áÊT?ºyú?·Æ?ì$¥?ëÍO?m9N?lO=øn#>'gõ?`B?kα?¸^ß?Ã1š?¡Ë©?˜Bý?ÀÜ?Î7p?‹^?jÒß?Lì„?GŽ’?“‘ˆ?¤L9?_x?)>Ì?Tƒ?kdP?g,[?i“x?ƒ ù?–éÈ?¡dÉ?®ÊØ?³I?ÅþÂ?®òÛ?3Ø)?"Ô>Ó3O?¤s?®¸?³Þõ@@@Ø£?³•'?±s?«#?¬ n?x»´?fÜ£?f¹ê?g ÿ?Á –?ÞÙ‡?0ÀY=!0ü?&Š·?•©±?]Ö?ï?˜Ÿ @3?òÛ\? ÿ?Izp?énè?ÚkB?3˜?–5?¨VY?«/?ŽØÓ?‹ú|?HæÙ?*¼˜?(;é?%´h?­>? s»?@ëÌ?†•¶?•®ø?½'®?³·¦?…y?uј?*R?/=o?aã3?aÄS?1ðÜ? úM?CB>ø?2¿Ý?ZTC>鮧<S¹?‰uf@D@+ö©?¨>v?˜-z<ëÂ@=>Ë­;¬±0? ×?:éü?¢á­?ÄÍù?uq?¦À?gT?(n@?&[>?K"?¯Ÿ?^„?^jb?ˆ¸?©Ó?†à?‡3Ë?Ä]?à‚ò?š,k?$z?kL?¸Žö?¦ü?H0c?FW@?¹ +c?¸Ô?ˆª>?~Ž¹?œŠ?°¦m?Š?9$ ?Q±?‚Ã,?Šú“?ÃÔs?Ç„–?Ð$?Ò=Â?#£©>æƒö?€7+?£´´?ܬú@ 2 ?Úõv?[_?mÇà?©Í³?®¥[@;@Êg@¨è?õå?á“(?ÚÓ\?”¹ã?5û?_ó ?è,9?â-•?„zï?‚K¾>îY>ÚYA?†7W?£³2?¦é3?œÏä?§Š6?Ö-u?¾¾Y?$³Ì?0`û?†þ¿?„¿>?”‰?£üh?ÙrZ?í=&?¹¤«?€”'?ubç?)í?+_˜?)?%Â?cá?È»?|¸>÷Æò?)I2?YZÕ?@Hè?*™>ð^Â>ÝŒ>Ú‰?R”(?Y,?|->Ú¤‰?’®€?Öë‹?ˆw?¢Ç?…w=PØr=­uÕ?—°[?˜ã.?“v?Š¥÷?EÅM?%F;?A»?o»‹?qß ?\)Æ?hIF?\·?‚O?á2?ðÔ”?¡z¯?]ì¾?œ ý?ØH?Ñ$h?±öR?§œi?0ë?€ Ý?ž\Á?¢Dé?¯âç?¹­¢?sÚe>Ð6I?a º?ø³É?òy?Ç*ã?ȵ±>ô3>×á>Ë?>Í#š>7¤´;9ó8>¥öò?W‹/?C¾>×~õ>Þë?cd ?pD?>Á'Ê?ˆu?¿pr?š Ä?V¬#?\m5?„>f?†ŒÓ?v-??v<ö?=+X?4¥?îç>Õ°÷>ÕŽÎ>Õj>ì¾Î?"&è?¡ô?€ˆz?‡a°?CÜ?)d?ƒv“?£œ?}\g>Óœ>×ïÞ?5Öp?8ì¥?&u?(Sæ?iº'?hn?ŒçI?Œa¼?’$/?œÑ¿?œŸ}? +¤x>ÐBŠ>3=øå¨>ÌKÝ>Ç +>Ù 5>ß“Î>‰4=Zêp≯t?L—È?KR²?4Y[?1…?Œ<$?—íF?!¿¤>S>%¡g>¡Ž¾>«E>Ó7ö>ÇG->üàp?û6?°þ>)Sõ>¸>­0>ÿ‡j?íS>Â2Ÿ>Á“ì>Àîë>ÀE>üÚ?/‘?/ˆM> ø=„£§<Šsä5¡|…<að?_"`?„ ?EÔB:l/ <¿6P=’®r=¤´­=¶‡=È"Ì>päp?E'Ç?I~?}Ï>{íd> ÕÀ>–—Ó>Œtú>‚b‡>jBP<6°:=ðØ>g¦>n8“>=ü=2¸9=®=ÁÛO>‰rh>\3>‹¤>>Š;>ˆl>†|ö>‘< 8K<…‹>à>S÷·>I“’>?X>5J->+kj>!©‰>Ì>´>BÂÚ>Smi>NûÐ>ÓÂ=žŽ}‘Œÿ?0›>¨¹¦? ?X"o>½?w§¦?~É +?|Þ{?‚1&?¹îø?¤! ??Òî?>ìö¶=þ^É> Å÷?*_>ÏÝË=Å«S>Ihš?QŸu?¹t ?!?vÚ>”É=Ù"=e…Í?:Þ?o@t>Ñ}º< €<Û’8? \?sS?Ëp>¿M˜>÷>=„´>˜7Ø>²¡­>Ú£ì?Ì ?1Ô?`“V?†¶W>è >òôâ?VÞÅ>»ºŽ>z2F>åÜÿ>îûE>ð9,>^=ëÌ?×?]L‹?2i/?-ù>‘–>?æ˜>ÊãN?h£?1ù®?48?@>w?[]û?dYí>ÛÀ= Œ=^Èñ>jÅ>éöi>}93>åõù?{'“?I¬ê?ì^>»Þµ> ­>ß?AÐ>þÅ>g· ?+z0?š€‘?bÇ >ïkI?è{?,ÍD?ˆe>ï‚?-æ2?o’I?9V>ôÐ>û_¶>ï² +>€¸?—ÞÆ@‹ú?¬ä>Ì??r‘º?Ò>9ÉÌ>!4,>’m>ÛAü?D«Š?X¢÷?fñÝ?µ°•?ðg4?Zë=Vé=ÏŸ¨>û?©­@…?Sòä?)h}?‘ß]?Aƒ|? ›> ¡a>û-=*¥™>ÛY‰?œ??Prž?p¸ÿ?¥±Ï?³ Â>ç0>‡åA?e8?‡Ê?˜æ?Š†¤>÷C>ß×=ná>Ü¡>ò½?Òãh?í ì>âñ>ØLj>ÿÑÒ?ë¥?µÐæ?«é®?†Ü?Î?žŸÃ?‹q‰>ò»>È >Núr?rém?wà?ˆ¤â?`ªŠ>äJ?k3c@9?ûœJ?mæ?r°k?sy(?®lP?èn¼?Œó >Ãs?j§f?¨ÑŽ?5,>–س>óÊû>Ù>³«?y&u?™º®?’¸F?›,˜?5G?Ú?¤1/?¶Ø€?±é ?«Yr?a">ôV÷>Q”>¤>}?tt›?u y?å?”eÏ>ô˜ó?|ö?l~??ÏNF?»ü?hòc?p•ƒ?tÛ?tå?tëÍ?L-ó?KÏ?ã*?ýé?5#”?S›â?C>‚ +Ä?UV ?”¡?÷F>œ-7?¥½‘?Û@Ý?ûf€@ò”?—G›?v_š?üw?*•>äÓ>Õå?ÝÜ?ÎL>7>å”´?¸B?®ˆž?u»â?uÀí?uÅ÷?´æ?Ê4v?‡‘—>·à?uë±?C0P>ö#¡?pÐÓ?µVq?¹¶?²?® +¸?™ý?Q _?'5K?`r?v-÷>Ókã>WØ?föû???"Ê>öIü>P9U>ØE?[œ¯?jÜ0>÷va?¹„?µüÀ?£ÑI? 1÷?ˆõ>ö~V?\}%?òkg?·,?1ð?"#">ö˜æ?j‘ ?Ê??¡ ?«Ê‘?.>u1?¢K>Lûã?/ç?‰¾o>ÀÀ³>›>¯æY>¸ù#?Ž¤?¦*b?TÛ¹?@]Â?t ~?w´?b3Ÿ?Nõ>žÍä>㶊?î‚N?ãÏC?f~À?„r¥?¶Æü?„¼:©ï?TŸe@ŒÄ?߉í?aò?h¢?wË?Hže?/c?`®Ý?w#\?w'š?w(z?G6L?)—‚?|Þ÷?X?•ˆÚ?“\©?_ÈØ?]Ó?r¼>÷:ò=b·;¹? ªL?ßµ>÷CÅ>ûI$? V?3C¾?’=9?iÿ(>Gú„>´ þ?:•t?qÈU?Ã^?Ó¶Ò?ã!Õ?ÀFú?šk?Ž¸ô?wRY?oÑ[?m?×?œYN?¹>à?“*t?wOÇ?q…ÿ?j.?¥ú/?¹zé?”¦Œ?Œ}ò?µd'?µ}Ì?·žø?¹xn?ž>œ?™hY?]FÏ?Cr™?Jͼ?SJ?w@ ?ƒÐo?Æ!?À›Z?w8E?Br=;–gú>¤£g?w(?r`é?fŸü? +ä©=Ñ/Z>r×±>ÖbØ?$÷Í?V\? §>‰†g>t›>€\O?C+?E Ê?j­?ví?¢™?¸T?°«?®=>…nj=MrÓ?Ó%B?ñ8ä?‚|?v¸#?tƒ?xî?ër6?ß Ú?…aË?qnï=襂>VÍ6?!-H?½ó>» ?ju?B?š4…?›Að?’ž?v9Ç?Œ,P?¤ª?¥š_? …´?V0R>ú„?~?eó|?:Æ•? +6?§Z?õ¬Ð?†_>þÕ˜?Ý*@€=?¶~?uƒ´?e¢›?[=€?<—>õQo>­Vø>©Š^?è|@p^?Ö?·ÂN?é¡? ®Ó?~&K?tɆ?ìê?ô¯_?§Ü?§}®?…Ào?rÈ>§"Ü>€àA=i«>ÿ>û?S¿?·?¾EÚ?òëÚ?é5ò?»‰p?²=N?sšÈ?oÀŒ?[6r?U4¬?X„+?Do¬>¥[¼>Ú…Ã?UÒ0?Pg‘?.Ë?F9ß?sl?8è8>VÂ^?J²?ÃÜs?°?oŽù?…Êø?©º$? ¡?›ô¯?ÄGð@ -¸?ÎÇ$?n?¡m^@/Ô@ Ü?q6Ì?F’Ê>ùä÷?/Ñ?x—-?w­¶?p£p??ùv>Æz‡?;ò ?´1 ?È­×?ð>?D?œ?‰°{>î`?V³@Z?à1ë? X¾?[ª?' ??9{u?§ñ†?¤×?u=? E@1Èß@&øu>ï;u? 1ƒ?æ˜:?âT?U(?N´Ë?j“?k÷?Ù=?Þî?µPf?°¨?°†‚?°oL?¿j>­`/>à.•>êÀ?ÏÚö@îÞ?“—³?.;¦?^ ?É>µ?ÐVS?йh?‰>ä?¹p?sìm?®í˜?cÚH=ëpÝ?n ?®ŽE?´÷w?Ì‘¤?ÆëK? çC? h?`â?mä´?ã¸%?ç L?lu?gUã@Ý]@zÌ?½æI?©:¾?ˆ\•?€$r>¯Âu>´nÉ?!­?f.e?AÝ?«´þ?Ý¿?ÆšÄ?…çý?¶ô@2å}@#Â?wQ?xãö?è×i?æ<ß?×'>ð.H?(Võ?2É.?5#Ë?7q÷?§‡¬?ÑÆW?Åœ +?»†Œ?°ê ?Æ’?•¤ì?‘1§?~y’>ÐF>1¬?b!½?bH?ÕFß?Ý´{?‡ô§?dðæ?öß>áJ§>á+>á ¸>åQi>ÿwv?HÕP?¨s?‹`M<‰ì>¿ˆž>ºãé?‰{#?¿j?¡&?§²&?w¡??D|?<ç­?:‹?8?C?5ãÜ?I•?O~?Šb?¦ì/?¦×ç?©+?¥°C?¦ó ?±xH? +w?0J¥?—áš?ì©?ç +?ÊÊž?ÉèÓ?ÝSÊ?Üú?Œ:'?Œ6`?M§ü?-þ"?¤ ?ÔV?Ù?Ü“q?©%ç>Ühâ?ùp?g1¶?`‰&?\&ó?\±?O>Ûä>ä +ë>ö')>ø‘D>êÖ?4Û¯?¤œf?«Úï?ë”°?íªÜ?NÔ=?H]=?¡V ?±Èä?$›D=úNÊ?'ä‹?µèÄ?¼\î?ÆÊ&?ÂŽù?oÚþ?k8µ?€…??†‹!?ª:è?¿ƒÍ?µ†/?£´ö?ˆc?â¿? )?t›F?yå^?!Úp? 'g?ÑU@—¿?·ØŠ?o}?ƒG?£ZÃ?¹¹ß@ ƒh@!4?—5•?˜Wƒ?`Ô5?S +w?d5?b;‘? ­?Ù}Þ?ºZÚ?Ykµ?Nk >ÝÊ">âÇ>Û)Æ>ÙLm?ˆ´??©…?oÒ?j¼ˆ?{ŽP?ÿW?‰ñb?Ëõ½?ÉO›?-üÉ?.h?uØ\?zÈH? M>ØòÓ>Ø÷—>Øë'>ê\¨?(0?"³?ˆ,ô?ŒOõ?ü›@¡ ?Æã ?®½?À$C?Ö«î?ÇPw?‘ÿ?œ2å?Ìå_?Étù?NoB?Bõc?¾…ì?àÏ?ÇŽL?®|9?œˆ?o- ?Vé=>Þ)¢>بÒ<ºÈ>£©s>×¼B?(JK?W¹Q?UŸÙ?Nóý?)ì\=Ôþþ>_²>Ö¦2>×:t>±…¯>È_H?¡œ_?ß÷ã?ž“3? Õ?%ô?x„?¦þ?•_Ñ?±N?Œý\?‰T˜?Iù?Ø+?$v?'MU? åÎ?·'?£?€N;?q–Ž?©‹¤?Ï¡q?Š*J>Óñ¢>Å{¡>­ >´?'=ël­=¸mG>¼ž>ßœ>T:,ľ?%¸?’;¢;òñ;—£?¢Ü±?Ããò?Œ?A?D{U?[¾?‹-í?†ë?'ÎU?v?:'“?M9ê?,l\?|x?-«>ä‘D>óc'?k½ô?_/(?8X?—U>ýÃ>ÈC>Èi>Ø”Ü>øœ>Ñ«x>…¶3>™W¼>`>C©>cô>œÓµ>¡a‚>¥ä¼>ª`˜>®Úæ>³Dý?µ?@k?;=°:m>ú‚>·Ë‘>´¯T?"-n?&Í;>ÖÑ>$Ð>AT? n? +Õ#>î2f>•>t—÷>i£ï>^ÉE>Sõ¹>Àýá>ùùY>çùÙ= +ˆÌ=U†ð>ô>Ì:>Óå½>Û•£>ã>„yH>~>Œü·>@>’ûX>“d>‘ä8>f4ç<ß•ˆ;ÒØkb>b>)c>{zî>wÃÌ>sø§>e~U=ý¤ÿ=Êo=Ô³Î=Þ}=ßË=)Q<^ÚB?²•&?Å>$?¶ï±?¢h>Sf`>,÷=‹=g=øÃ=.÷ƒ=ô§=½þ;:€ >÷S?4$?ÓÓ>úþ´>!J²>6ÍÅ=ª¾Ÿ=Ê¢2=ê´Á>AéŠ>¯èR? ER?yý!?¾²=¡>T«^>§®>÷6^?¬€$@L?¾Å?A„à>¼?·>rÊ>å'2>ð¶Z>ô€Õ>Q¥=´tl>8ì>+Ì>:¯=iˆ>‘)f>ò/G>­ á>lܪ?Úú?@nG?=>ñZ!>D•d>e®á>˨ +>M>’=8-<‡€9%£2>‰Zñ>ðXD?/È?PÔ/>âS˜>R4Ö>5J>Ç3>Ì—.?q$>Ä{T>ubd>ø­?=?«?:Ê>ï–?}ÂD?Å´?H³í>[U«>㟠>n]6ï>eer>ÞV?*ø?od.?b8?Oç`? <>™_!?=;?oj +>üÙ–? -?Œš€?J³_>?h_P?³§m?{˜X>üœ?1_ù?o§->ÿ©»=‘¼?Uœ«?ÏÞ0?©Ç{?ÓÂ?ƒ– ?ŸSÎ?˜ªF?t}©?hJ?\Ø?OÔ(?C?9í>ð9z>_Ù‰>zTR>î/C>T)Â=Dé >˜2ª>Ñjø>$²‹>Ô›?Kžo?1Jú?%Ó>¦|Ù>„ú>^Š>'Y>»˜>ñ)‚>†F’>}»?w‘)?¯¼¯?6›>óbÎ?™“"?µ,›>–~>V¸>›ÉÙ?€Tv?’à¡>º^?ïk?J¶=ã>Á=‰¶a=+I±=!Š”?rY(?k0ž?ãÇ?*U?_9»?S¢Þ?:QV?-m>6b>\‹M>zçì>®›u?A_R?&ó¨>ª¤?Ä¡?ø÷?_ß>óF£>ö6>ók5>õ|?··?•ö¡?ó÷?®"?RJó?bÝA?‚¼Ö?‰Ð?x©`?„ó?†zŒ?ZB6?P!$?î ~@ ©?áq=t?”w¡?·*?ƒ$î?|*? žŒ?$Ù>ùTŽ>ôn–>£:â>—>×|>ÿ=Ô?%Û®?P¤?N­8?hy±?É/Y?²`å?Rp? Ù>ú¦µ?%?t÷ˆ?u?uš?> >õ{?”Ôó?á†à?–¸…??·²>ÝB >…"?I~+?Œâ?‘¬?ug?R:?S ¤>i0ú=©y?Ÿ ­?·Ô?²?«…µ?ùå>ü×’?šÜ—?˜d®>œÚ>¤xc2Õ>åÞí?r”Í?–óØ?¶?˜@§?‚™s?RÚÎ?2|¥???K®Á>ËÌH>Sb[?qEÍ?˜ H?!jâ>öUq?ÏN?a>ü+Ù>öib?bQ,?m‡r<,œÅ>&ˆ*@6T±@%ÐÛ?¸ê?›í=ÔRë>RS>öžD?zÕõ@Ô˜?õã?s§§?|+O?…·n?fç¢?RІ?¹ö4@Tƒ?¢Ü>½µŽ?*G#?v'˜?õí¾@²’?™ç? ~?†°?ùˆ?_hE?O ¹?q~z?vùŒ?º$?¸07?Íš"?Â}æ?£¿Ï? b?W£p?B¥“>š¼>CD­>÷]?‹[?w"N?O>ê„?–âÈ@{À?å^?w4k?w3.?w9²?Dà?/?H~?w@£?Tä?F4 ?“|É?¡†L?¾xz?ÆÙó?Óú>?ßÕ4>²Xˆ=]~j>ä+>>÷Uï>ïßf>ðhž?ªÆ?-˜>÷^½>÷_>÷b ?8`?ß½n?¹ƒF?JÈ?Uû?wdá?wh‰?weð?¦“W?ñêÁ?¬¸ ?Ñm?TŠ?ˆMº?:ƒ…>÷h†?F¦¦?x@×?+—ù?tÃ?WÛ??wf™?ªÏÐ?¹ŒÓ?G}‚?%Mˆ?z¬?‹‰L?r—ž?w‹ý?€Ñå?‡±~?à D?×oá>÷Z?RE?ˆþp?c)S=…Ôw>~¡?wLÞ?wK×?wH§?O&M>íg > ¢=ê‘?(f™?­=²?b>³C?W ? Å?1¶ô?BÀ?,u>÷>èØC>ÎE¤?¶"?%±ê?ažm?vþä>G¶?ˆKÝ?˜†?ñ?>øš¸>öÕì>øóý? +)?´ž?²º·?€„?Â2m?« ?œž5?,ý?]ö)?ØÙ7?¦+7>‰ˆ[>ä£X?y¬ ?~œ ?vZ9?eå?Kº@?’q¸?ÔM @ Á£@7´h@—é?åBÿ?‘à#?S¹?ƒõ?¸oæ?¸iB?¸ã"@'»@m¨?¼C?•?ËÉ_?Ûå½?µ9?§0?jf?KhÁ?"n?-°?Ík?îÀ?ÚØT?Ôò?ªÃP?žQë?„ ?Ž¼\@²—@F?uø(?|ç*@%£@{®?ç/’?ئ/<²—ù=ÚŸr?t7-?T¢ <ÄdŽ>V¼)?ƒ“?y=Å?Ç?3D@?s­¿?sŸ?sŽ˜?V¹Z>ódè?r‚@ÿ9?ëù7?€†?l3?µ«æ?°î?¶n?¡N>ò¥,?*s?K¿?„º¥?Â…Q?ØÕ?ý à?Ã~?´Ð?7ÿ?qÒa?y9ñ?}¼Ä?F'“>ñv½>ñi­>õ? ?S¬?¬a?–PI?pñ)?IÆ?oŒ?,@e?Sæ?hËã?‰ÉÕ?¡ê+?Èü3?ž>?(,€?áï>ïÂ/>›[Ž>z7?:ü$?Ä‹T@L¨®@"f ?mÓ\?.ü§>…`6>ˆ„ü>¸Pn?h"@ÓÈ@sz?nQ?“Y"?öo?ÐÉE>÷°¦?2¯k?ídú@q@O¡@7Ä“<ùgÊ=«¡“?tC?"q½>Šß>Vyj@.ðO@+;?]OE?\$?‡B>?‰µ?¬Ãi?°Œ¦>áz +>„îM?‚v›?•Ö’?Ô»>?îF}?™Õ$?jm°?“´?¨|c?Ú E?ÿ[ ?”‡o>Ãùš?J/Í?¡y??`ó>½Ä?7°£?¦Ù?†>)>è«Ë>ðª>þj?>òî>éi>èâ>çä˜>÷Ìî?¬mØ?« ©?´©?·×?ÜB9?ß4?ˆy{?f¼}?E•4?2Øá??j?GW'?‹&?¬xñ?ša¶?‡VX?–)ý?¬k?¼…µ?ñÊÃ?ñd%?É ?Ã=q?²‘å?¸½W?yˆ?fèG?! Š?BE?vÐÉ?¸?¹¶|?Ý¢]?쓦?ð–Ú?ìªK?ðu§?½ +1?$ +J?-1º?b–??cåñ?i«C?höà?ª•¿?©±®?©i|?©OZ?{½5?`Aü>¢÷„<½f?`‹U?Ñ8¨?¾ïV?¨ ?yÅ=ÒWë?H $?C÷{>«G>ºúÊ>È—Å>Ö& ?yW³?“ø?Rô#?em?u%>Ä´M?Ì“?ŠQS?ê>?÷(?ïì?xzÙ?u?? þ$>ÞRN>Þ6¾>ÞÐ?+ª?iÉ?¶•ú@ +•Ä@Ùº?éz?Üú?^?Ó?Þ ?ê-õ?±ev?¡i ?Ã0?Ú±ã?•øZ>Ýl ?b1@ Í›@x ?¤âÙ?£¿~>úÍ®>Ü1?:«Î?PcF?¼´Q?òï³?§u?\ü?+W?7„3?Qrñ?°Á?¬Ê?€ ?~¥`>’„S>Ì;?EƒÚ?@mÛ?A:Þ?€ßÙ?Üèm?Ö †?'¼f?(lÏ?}›Ç?„>]?µx¹?ÍeÀ?£}b?}1ì?q¡?.ؽ?4òÐ?¯²?²ºü?Á´Ó?Ä)V?÷t$@ 'µ?Õ¤×?œàE?}íî?†H>ùB>Ù×>Ú25>Û4>Ù¾œ@ ¶@#EÄ?à^R?¤Uß?<Ü)=R„>‡“?N•É?L^J?J'P?GîÌ?»?Îrt?!>R¬x?nÍ5?ÉñJ?³]ù?Îd?˜¯É?ÒÖ?š19?Ȭ?ƒ¸Q?sk‰?`1?°’? í˜?wÉá?YÑ?&\ã?E?=b?Ý×N?ç?¦~Å?h©?k÷´?XÎ?rü®?„;Á?¥î³@<@ +†~>öoÆ>ñTO?õ¸û@SA@B@Uê@<é@6ã{^>ب?<?Wãú>á2 +>¡?>Ù?Ôé©?Á/O?†DD?ƒ_‘?Æ×?]ý?¤ØG?È€G?‹•?*ûS?(ƒ?& +õ?BPK?»›Ë?¼9w?¥v?§µ¤?xÏ`?Uí|?2y¶?Ð>ÑJ=ýÑâ>¡.??ñÞù?:ž?C>þ&>ñ .>¡ÏM=áñS>‡äÂ?Wñq?U‚?SÀ¹q>Ðå­?¡Eå?¤hŸ>Ç-ì>&gš?;OF?›šñ?s›‹>uÁv>„Á—>Ž  >˜‚(>ËCÈ>Íž? Ï…?"«ð?–º?€×Ñ?…©Ö?«Îˆ?¬;"?iB>>Éfi>Á8Á=ø¿=ß;‚ƒ?À?4p +?2]=¤SÈ= ~;ñm&;`-V:E±#?[C%?íø?c ¹>·56>±Žù>·wó>¼fb>…|G=ÿ˜ä>Ÿ? ÿF? + Ï>¼Ï>_OŠ>qùá>A/%> p˜>‰º>‰Ž>&x>·òÓ?×>ü¥ó>»Ï@>‡Dq>c”Ç=äô©=Ðp=YqÍ<Óù<ÊB—<}ü¸:±¾©7§@;›`,û@(@/—§?'€V?Ûß>§Ê>”œ¼>%Qa=ºÑ¯>Mª1>ϱ>Z}^=—å<œŸ´>Í„ +?B=x>õJÆ>þùL>þ{Ö>äÒ¼>rã_?ˆu¿?J˜å>,Zµ>zb0>Í;>½-º>ØÞ>r>`\À>vÑ>™šÚ>¢<Ž>ªí0?n¸N?Ëã?K5s=·I°>d/=L÷ ;ÈI—>Š8Ý>ôŸ½>NÅ?9ôM?˜{Y?06ë>·Ñ> Û†>ä ?7fd?T´5?ao4?Ïo>ñºx?$ÅI?8•>Œ…=J=5g?>†]>îhh??r“?lD?%9Ç>ðtÖ?Œ?a<>|IÀ?ÅK?b=n?=b?/`Ž?2õ^?-Š>èã„>šƒ:>¥‡Ã>°•@>ðåh? ;â>W_=C…óæd?d¿¯>ä5=…öâ?dc±?ÓLà?qV•>žÀò>жq>ï€6>ë©>û“>‰â¹>ïØÐ?Œø?S5Ñ? g"?gØ•?©ÿ„?“¤½?o¯r?o·³?o¾?bТ?LL@?r#§?•Ã—?¼(?Úó?w›¤>ƒ³†?9jn?™:'?‰?Š¸|?‡¶ý?ˆ?Du‹>ðO«>‰Ýs=N÷V:²ÞÍ;$>‡ >ØÎê>ã^>ð©>;÷>?9Y>­¡? ,'?6¸>Ãpï>6TX>½Â>ñ$@>ñ1>ñ>ì?F ?iïî>y³õ>¹:>ñ‰$>Š×>„èò>´4>«®8?‹‡š?‘î²?É>ó¤&>xûø><’>œW>ˆ¾î?Îc?ƒº™>öÔ>ò >ö)ˆ>òwa>÷KÄ>ñ=v>Ö>g* ?§Ì.?•UK>òÏÏ>àïž>…‹>­“?//ì?4a¡?J¶¯?td=Û¼?öl/?]€Ý?³®3?v¤>ó‘-?M) ?—?9‰›>©Ä?/’?<2€?av?‰¥„?µ5½?Ìi?hŠ¦?Úž@Xo@=¿´?~ç>ò>ôS3?~®?W3? |?š?™]I?Qw›?Ib°?BÙ¡?==o?2Kj?+mw?‰=¥?“'+?§¼?’a>ôá?6lb?°´>?£D?u|?H%v?Å ?‡j?ÝÙU?A…>õ8"?sF?ÄÀ?¸r?uXH?C=>¼÷"? n?!?HNÂ?`7t>Gç?K¯€?u£? /k? "Â?±ÖÎ?¸-&=ñ\>2Q^?uÒ/?„!Ü?Çû ?£'Á>aÏ*>—i!?&¬7?7ƒ?v—?Š×í?¯t‰?ÍC–?øßA?¡ü:ܲ>ù‰œ?€®m?}Ç[?vA‰?Þͺ@ ??ŸÊˆ?EcW>g?CqÉ?‡¤?ø¾Ü>öZy>ô#Œ?/ĵ?8MY>ˆÃk>Ôj?0†?CMb?‰ÁH?‡Au?–õ6?”Û?…a?®ò?ã +y?¥Ói?2!?\½ç?ƒ4—@%è @ss[?Ùô´>ø–Ç>|^ô>qc>âðô>÷;?¡ð?¹KQ>÷`->¾­?k¬R?w§?ž¾?©E[?×ë¾?Ýw§?Ÿ?…¬ø?A2‹?>7?w8º?Xí™>÷<Ç?EÅE?·Ï?Ÿ?hŠ>?‚õ?¢ë/?_?!=Í?‘´Ê?ÆiÛ?…“?7ça?‚ö?•Æç?1â`>÷a ?¬ˆ]?Ù–·?ß*´?äº'?;ëÚ?S?¬e•?¹•²?¸a§?´DT@¼a@0Ÿ?)Ul?9ø?UÍ—?3¼>2É>ç*m?³ l?–{Ö?4?Ó`?€#?råZ?²H‹?ˆâ.?/Ca?`Þ?Šô{?¹¿Ó?î!Ý?ˆè!>÷‚ >ü› ? >ÿ ‘>÷‚)? ·³?¼ü>âØÕ>듬>ûŠÉ>÷{Ã?œ r?û>“MÌ>Žô?, ”?,êU?’Â_?J¤?‹e?:t?ð?¨2ª? œ ?"óö?w¡v?wb?w_%?t'r?jž²?™ìÊ?Êk¤?Ó¤[?ç<È?Òq?¸«†?©Ä?ŸÉ+?±¨?ºbð? h?¼n?}»?w'?<Ôõ?2%å?;}O?DɃ>Kø =}Öß@f!@0õ ?Šå ?vö?v˜?wj£?ê +1?ÙYU?§Ú?2¥x?ˆµë?Šð ?(û?¤ ¡?ñœ?ØŽ0?hŽ>ôk’>ô[H>øi¿>Ö5»>ª°r?âÔ?½bÓ>óê9>ÕåL>€v?:D?¢õ…?›M?‡»?šªŠ?ß]Ï?Ñ?˜P4?œ›ú?«ª?œgË?cMà?6¹ï>¥¹:>øso?8 r?&œ/?€v?Áä?ª ?dw?°l?œT¸?uC}?¿@ß?ü;/?²_y?—N?gÎ9?ºÝ@•Q@ +Á´@]ü@F?ñ©è?©v?¢‡?b¤?žè˜?r:Š?à?Et +?xp*?…“?’{h? +¡?LÑI?6ˆ”?$?¶z¬@2W¸@*àã@#D×?ú R?;\ï?'ü>ÂÙ€? +Js?„z/?zµO?gæ?¯Ù@15¶@éa?²TZ?² Õ?³è¶?™¦p>…X´?À@Ó?ïZ?œ>Ë?œd ?¶Ø?¯>E?ÈíV?Ñs3?²)…?­c(?âQ?ß}ä?²æì?°ª?¼ó>ëOè? %—?µý"?ž=?˜ll?[xÑ?@Ü–>âþƒ>¢-?%/?2:?tÍ¢?–fã?srÁ?B£ ?aí>_ü‡>÷ëN?it?G:Ö? +S?:8?®o†?¡fL?hú?TW'>è•>×ñ2=ù«>,Ë¥?­é?­”?ã~™?ç0ƒ?Ñ;£?Êié?…Ø+?f¯Ê?/2V?íì?Ì~O@ Í)?¾·M?eï?‹ìâ?¬?P?˜\¡?emm?–¡·?þ“?æc?N;7?a=Ü@#)@mà?O;j?BÝ—?ÌÌÚ?ä y?:‡?PCl?Óî@ ŠO?´L?6ëY?’^Ç?ã4?½´¯?^—¡?wÔT?©Ü7?®ÒÎ?âXç?â +I>ÿj¶>ô ½?–‹µ?¤´Ý?lØ“?EÃÝ?,Œ…?(2Ø?Q‹Š?x4`?aÙ‰?)Të?g ?èA—?Ô];>–”>‘éþ?«$)?ªÄü?¿ýî?Ç»?¥¯>?ƒG?}ýÂ?Yá?R|?_<ª?e¶?ÆP?Êh?KðÕ?@™®?4!•?3H ?[—? ©Ý? @ >ùø?’o?ö±ý?ö‘?õ'"?ä˜?tÎÐ?z"×@ K@"Vñ?å?]È?•‹)?¥ÈÚ?¥¶Ï?¥IG?xº¦?˜°?3®Ç?¥o¼?ªµ»?øõÀ?ôt,?xg†?\2+?¤ Õ?½<?mŸ>Ûí?ƒí?÷x³?ÉÞê?ë&?$2M?\Úq?[|?ˆ,>öÊ?8}?&Ý(>¡÷>ÑvŠ?°Õ=?®“ë?Eª ?BšD?Ûgm?ÜeÔ?åèÞ?ð+Ù?ªŸ?`u§?ió?‹y`?ƒI?)V?!P4?J§?LÓ‹>œ÷T>5ãe?+]Ë?c™?¤˜£?Ùg`?¤!>ÚÑ? â´?£>Ç?¢R@8à‡@=f@„ì@·x?…»>»Cº?Z8ø?Æ Û?¯Wß?Y¦?Y¡?ˆ´ê?‹xU?súž?\ôß?P¶Ã?cb–?„?6???'h? õ?ˆŒ}?‡i"?‡ +ø?Šq`?·!Ü?ÌÌÎ?¨¹Þ?€•E?ƒ¸?‘"D?Ž3~?I/ +?@t·?ºeÊ?Àø'?‘®™?ßa?´Ê­?Øåö?ªˆÊ?XÔX?VŠ?S =?fž@mª@lÍ>“æ>’k>ätL?[¨Ÿ?Ÿ>=?ôË>íú?%'3?ïPÁ?êŒd?­?À?­g?ÉÕ?¼†?ÁÕu?Ÿ’h?5?Ÿ?NmÝ?Œî¯?‹«? ×?½b?{#Ê?†©ú?kþ‘?Vöt?j?ŠÔ~? W?m"? Á;?3R?6#?P9Â?UóA? íî>©|? +(?—`b?™ÝÚ?ŸÏ´?Ÿ±·?gZ2?Yv¾?Œ»d?ží?Ÿ ‚?žæe?‡FÚ>ÔÅ“>Ù^E>Þ+ô>âéÁ?C8D?_mâ?% °>ÑéÕ?x³?hll?c2Ì<ÓÿG>÷<0?.ÿ¾?ÖË>|éÆ>™3ç>çÃP>Ý.Ò?L2?Þf?5ðy?Z?:¥I>Ì@>ÓÈO?•·ð?›Â}?v¯>•¯¥>š€Í>ŸJÍ>¨£Ñ>Î=Ñï§>ó >·Q>»³0>À^Œ>À È<Û§>Øpû?A–?.h‰>ת>áÇD?'BR?2Œ?/gg?,6a?)ñ> 6X>?y¿?v+#>Ó&ª>ZÇË>·H=þ<>$,Ð>¨>¸T.>Þ‰ì>ç-É>ï½ÿ>ø3b>»…R>„bµ>ŒOk=ä7¿=Ed—<Ȩ=žH”> XY>¢ñ>\¼#;#Æâ=Íìa>° +>‹¦ >6ï-:ï.é=T¦>YF,>Ts¾>I³–>? Á>4†%>*n>…NÉ>•Äð>‹Ë!>óZ>pA>]€ÿ>JÙe=•åÉ8cÊ€=Ûô >fò>†Ã{>€Ïì>?YÑ=¬š‰<P@$„€@?_E?“üY?„ƈ>1p¦>\Š‹>½y«>!=ëvx=XB>°¥X?ì:>*½æ>ËU?”3?o“?w£r?A›>ù>%=€Î€=¤=o~ñ>¼1>äHˆ?NÉÎ?=²¨U>ƒ8~>µÑ=>ø»D>¬>=ëD>Èáð>J™?8dÌ?± Š?fü_>õ :>Yw‘<üiÀ>‡ý×>Ñ×?G‹‡?‡^O?º©> +W={t„?^ÿp?°„ˆ?„F ?c|a? ¡õ>«½³?^²?œb.?Th=çl>¤QI>ñ><»é:‹’>š ?éM>|eÎ= ïz=Ëa=ö T=g(?'5O?’1|qz?½R?BG>­õ¦=|tH=½à„?ý2?c*?*Äh>ï©ð>ï¢Ù>ëaÅ?4žò?o—?>âS™>ƒót?<>íáÍ>ÛŠ?ô?4¿>ác >B–Á>Ö] ?©j>z¢w?ºb?|ñ?9²>òÜ?5\ä?oÀ‡?6åä???>Å?oÞ?B—f?R?,Í@?Jã?'íª>ð é?8ëb?p!?xn>®§†>#†l>¦7?P%?‚ž?´XºÄ>m>•AE?>*¼?tŽa>óø·>Ž+?|—?P?>ñ4·?ê›?ö*>îÄ‘>ðð+?T??fµ?œ‚v?¢÷Ê?W,»?3…™?…ܧ?‰^{?‡›Ã?‘áR?<91?^>¡éé>¥¿9?ƒïk?…¸ï?˜Ë£?£š?ào>üô4?rIË?eôÍ>ò”">îÑI>ÁÖ±>Îx|?Dc­?O?T?@HE?9Äz?3Aì?1às?FgK?€s?Æ)ï?•R>ÎYE?™I¬@.Š@j*?s°?BÎæ?³Î?<#Æ?Z„¶? ˆ>™8p>¢U>ŒÛh>ÀãN?Ui?{R?fý?K¤ù?t&?Q†\?P‚`>G<7‘„M;€?Ês³?áeA?Æ>ô|Ó?†è)?Èá?tÖ“?meg>êõ™?~t?… ?€&>ôÕÏ? {°?\ É?M% +?«=>ûm#>ôÀç?N[?´Ë°?®Àì?¤º³?°+Ú?È +á?­ÔÆ?Š¸f?2„÷>é:H?¥€?ª?‡Km?¡)?sou?\p?S>ÜŸh=Õ¬,;a¸>Ó:á>þØ×?£©Ç?¦äæ?/—r?6­>¬R;>·ž?uí ?’$‰@½¤@C">–Šg>ÜÒS?SK?i3F?†0ö?Š_?Ž+½?É$M@ã÷?ß:?gð]?«ÿY?âƒÙ?Á?ê?¨÷?¢KL?®,B?@å‚>æ\Ô>ðÈ +>Ô€î>ê#N>öŠ?Eµ{?Zdµ?´Ï?ª•?p•Ð?sés?¸Þ?´sU?p?iã•?c¾Ÿ?82×>^ô?vÐm?‚wê?—Q?…Z«?2ìA?S=?}{Ù?„@?™ú˜?¦#!?¯¦&?¯FÓ?²"?ÝÃö?÷ +…?ËÌù?°Ñb?|Õ?NGB?W*®?VÕA?ˆlê?‘©Ï?“ª.?‡<‘?C? W??_õU?KT>ª¬˜>ýl?ÆÄ?Êë´?ïÈg?×P?sãW?TΉ>÷U¯?'k«?g?/o>7XJ?6ìÎ?¨_?°+?²ÓB?ÕG„?÷oÎ?h•>ˆµ@?‡{5?¹™F?](k?©?7—Õ?Ków?q¢5?w‚G?{Û†?x?w ?zÆ =ê(Í>0©>Æ×d?¥h?šÜš?Š½â?%wÀ?ч>Ž‘0?ÈU?š +y?rÃI>Ç>Ñî>êŠK?ƒF°?ü“+?ÜÅ?°Ã§?ÐÀ€?ðF2?P¥o;s²€<¸g?#õÂ?ghZ?–˜É?Ÿ%æ>µÉf>ez?U ^?fÀ?¢a(?¡ŽÌ?ñZî?÷ŽÝ?QW›?< &?S)?‡û4?Ñ|?'½Ã?†I%?›öu?ýa?é.?·Ö?¹™y?¹6?t†R=«•ø?O?¯QŽ?ŒäC?VJE?ˆ1·?£Šñ?’úõ?ˆ î?Uw’?1??­\û?Û¼;?»ñ?²Ï¦?ŒRO?w6\>Úê=Ö”b?—G? ï1?­ð?3a?E>÷ÉS<‰›Ù<ýži?v×°?km7>È–>¯:R>öãN>ãÙ˜>‰~?MÕF@5ñ“@. @,ß@h>ö«?4¢ç?–£?€Å?Œ'Ã?˜?ŸEx?”e?ˆã4?¶ò!?ìûÒ?Ïm?³¢?%ÛùõÙ?ŽÂR?—nZ?âˆ?ô‚]?‚¸‡?u4€>úÅã>õ”>õ >÷_ä?Œ?“È?Žü±?Œ–º?±ÿ?µyÜ?·rJ?¥“n>ôxS>ôj>ôX?!±ã?T?•ÍË?’Ñ9?kä>T?"T?öŸf?ÜQè?¶ÆÖ?Áun?ØU9?♞?ð¹?ÁŒ?sB$?.Í0>5u8>'L>’0>s^Ö>¹Ó:?L Ï?Áê~?£z§?r{ó??¬m?™8ß?tè÷?“@M?µ~1?Sñ?5>·se=ù9?IÖ?q{ç?†Æ!?œŠ»?¡‡ó?¦‚?¾õÆ?Ùù|?¦ßÔ?DÛÎ?kp\?‘9?AÏÊ>|Øè?>¾%?´D?Í¿?ïør?Üí?Ä#•?¯'ì?Šbv?î˜X@HÚn@&Õ?Ö®ë?Š¥=‘V²?F°‰@ L±@yƒ?ë«©?µå°>î«9>î21>î—¤>ýìW?*?!±ï?xÌy?\Dv>Ë%?+z ?øÂh?à§Ù?0Œ¤?9ø;?_ó?ipt?l€•?tº?È|¬?Éèà?åI?è,?5š?6˜4>“¥>… +8?-°?=ÀÈ?¨²Ü?±/?>¦ŠY>Š›$>cÈü?Lö¬?Yr?4$Û>éþA>×å=>¥^?ƒ>O?ßý+?°T?j.?ºþÕ@¡‡@¤Ü?ç¡à?ås?àõ +?ÒE½?¡V‚?²E‹@ÑS@ +.?.?€ŽT>åŸá>ù?R ++?`q¥?´®³?½r ?ûÊÈ@é?àë}?ÚO‘?:°?+§‹?É^?Ç ¹?Î$ ?ÓLT?×i¹?ó„n?Ü™?…´s?•ä“@=£@ 7?*À¸?%‹t>¼öh>ºÎë?ÜgF@¥?é¢ë?ÞK!@¦S@$–&@ ‹ƒ?â§ó? F¹>ã>âåä>å`·?@"b@ B²@O#>âP‚>â1j?Ï$“?Ùf?ª›3?žfÇ?³³o?¹ÑN?ÕœÌ?êõ1?ÖW?½VË?³˜t?¬áÊ?‡ó>à™Ò?2Ý@ 0à@ -v?•°&?Œhø?¤±@?¬·y?®ì +?±§?zÖ,? Œ>>ûåÓ>•€¬? ´i?å•‚?ã~·?yv ?€!?8ÈG?3™d?Ây?ë‰R?¨ã?j­K?;£ +>þi?R´ +?Ø‹(?Ô?¦>.?¦2?¦˜?¦7?rÖ¤?a,›>´•=ÇÜF>ò-Ò?P0,?V¾?mæ½?‚ZP?º÷£?¾¹?íý†?édY?Uyò?/~?nS4?€I‹?½0¢@“º?¿%>€Ô³>¨ò>?[º˜?Z*™>ÙÜ×>á‘L?ó?ž³^>áóà>FÿL>Û7Ý?dÜ?’p?œ¼Ô@Ûü@W?ˆ#ë?}ÜÊ?Ó€M?ò×ø?›õ?gs?w8É?Îù„?³U>è÷[>þC@›Ä@~¤?ãá?ÚV%?]+‘>ÛO>ßO’>Ú,ý>àŽl>û÷>òk>´Ÿ>Òë…?®)?¶ö ?tYÍ?B§?£NÒ?ÙÙ?±.4?YÊK?: >”¹–>¢-q?>>X?Dˆ¡?6tµ?)Nð?«áC?Û-q?¦‘*?YŠ|?Ià?9;¯?BbX?.ø`?1/ ?3sÄ?5±ð?¨4j?Â!B?›CÏ?sÑI?#¹?Ã9Â?»S?jÐ?h$Ø?Ç®Ë?Ζ[?ÐÖ‡?Ó 6?˜‡†?Z8ý?-·>Øç ?øÓ?XØ‘?\ºp?R"«?LÎô?¼i?ȸ ?­y˜?¢k™?4Ð¥=ŸâÞ>éø:?ºû³?³3›>ØDH>Ø9>?‘4?¢Ëù?ŒÉK?€œë?}œ?gÊi?‰oõ?¾SQ?­<>Ðì÷>Æ»™?#á×?<8ø?Ld?“™`?Jñ?ºÃ>çU=ñs6>š¦>Ö‡³>Öþç?bØ$?h>õàù>€cî?ô?e\r?{:?ž–É?Ÿ¤y?ŸËï?Ÿªß?jS>ÖŸ>Þæ$>è¹G?-Q?I¬@?Fù—?DGÖ?AŠª?P»ª?RÆÉ?²Š>ÒTñ?GÃ?QÔh?F•>4ô>>ñÓ>Hô:>É ü?ßÑ?!4?#…‹?%ÖÉ>àIî>ÍžÝ>ú€?Vì?{R>ýSÒ>ïË×=³Öb=…[8<74u>€ Œ?<Ù$?9ô¡=­i=åaÂ>À¶%>¹NB=¢•7=¢‘4?å?‚Ôu?bá>¢µ>6sà?ô3??™.?+@1>yå>nf1>õ¸Í?.i?JCc?>bú?8f(>è•t>¡’>høB>Z´ >jØÝ>¾yÓ> ª>ùÇ=o=Ú¡Ê=±rS>E®ã>¬*Í>©É8=¥1f<Û>¨>•—>¥E>ˆ«ýšš>ž8z>žR>ôA)>ãìø>œ•=›Â=Ò>†=â,=ñs>BÕ>žé>Cºx>•Ó?>œªz>Çe1>Ýd>ÞŠ}>ß××>‰ÂË=†%P=bw¸=Kï©>Žo˜>ÕGÐ>Ù¥é>»&q>8;»0?Í [?ñd^>¯uO>¼~é?eÛ>ÖA©>.>‡`]?ù>†CT? ?p·U>˜"u>Érï?p=Ö—ÿ=•%Ù>ôLâ?IQ?SæÙ?9½•<¬²°>ÞU>l`>ûäw>¹•§=ó;‰> K†>€Yæ> ·#=ôÚ.=Ð$a=úàa>D=”–±<îìž<2$x8¦®þ?KØ?³æ?Ë,?Øò?t@>ôaT? Ño?‹ž?"ß¿?ø>ež?+™µ?‘³|>ä9}>ÏN¡?(Z?@M?bâ?#òÿ>ñ1ó?@ÄI?d->¸O=‡¤N?:çÀ?‹ e>Ї>6ž›>ŽEj?*<Ã?pÅ +>Öˤ>ð†>Ša=Øã>Ëý¶?ÑL?*>ïÐ>ïŹ>ïÃG?7f?e¯n>ïNé>+kÜ=¼Åì>®Má?Ôý?ª‡>ï©f?8Z?o«–?c<>ž¾³?pÑÀ?Ä©ä?Ju=†ì?:’R?®× ?“˜{?o‘¶?n`x?oײ?f^u?YE,?Ä°>ŠÙ·?÷?A)E?š„>óú<>¬«>Ž“Ë>òÍ#?'-‡>˜js=§<==‘?R Ü?³ÒŽ?XÊ?? (?#>ò¤¹>êô^?„)Ú?œð¡?4_I>ðå¾?r;?šû?"“>¢Ÿÿ?V°Á?†–;?6¦>ÒÌ?U©ò?sî>c¾/;Ú€>ͤF?3?›÷?/˜>®­l>  €?‚7†?“jV?Dd!?0$Ó?TT?lƒ=§Ì?Ž_Ë?<Ú=;VA=LlÍ?µÙ«?­ø^?“Ä?Eë?^TÑ?LkÕ>òÅ>òÔ›>òßR?“i?rúQ?AÎ?‘ñI?rÛý>ó,Ã?Uüg?ܧÜ?›µ=—è‡<»öª<†ð`=zIø>‹ >ó¦n>´91>ˆ‹ >‰"?›Í?tç¡>õÏ=>ASž?/ w?‚JÐ?iÔÇ?^%K>ˆm¤=#Ã;yñ>ȵT>ãq>…£\>­9j?Qk?QÉw?ss)?r«´?0å ?/ +h>ZѼ>Ÿ¾“?jÙ?u–á?ù9?Ò)?PD?% ?pOÄ?'ÔN<¾@? ?·êñ?·ó;?·ùj?£·í?:Ù?¥°²?¸_?dƒ2>ÞP»>ˆCú>*a?ŸL}?æÎ9?YŒ¾>õ°å> ”NËó>ó¹Í?Öa·?áÛ8>¦Î>eÊ?—D~?yY?HvB?@Ú?5eh?aæ´?åÖé?ÇV¾>œWŠ>—Ö?/Éd?^æ«?±á¾?õ±@76@±×?»é·?„Ô? ??ŠJW?Ç#?¿Î?¸Ýx?š ?ƒEW?Oñe?+Rù?_í¹?vŸ?P½?;™-?}[>ö´ +@Rã@kÐõ?îy>þ~Û?y¡^?k8=ò£ñ>1È?và0?iLµ?'iØ?2Ð?vðÖ?…„à?™"]?Œ}B?w.?–!Ç?ÂŽ?ò.?rï?EÛJ?wÇ?2¸>øG|?Ká ?€o)>ÏQ>Iª²>ý°¿?Vy?—Z¤?¥%T>öSè>ÑÆ ?_ñÄ?€{'>qa\>R>‰?u˜Ã?s(y=ðë >ºz?÷e?éÉ5?¶¡?™è>÷qˆ?"0L?oWU?Ÿ›?ãÝŠ?€yí?Dð?þi?qQr?W^•?¯†©?Ú>à?’²º?=X©?Œ„?§¡Ý?w¨×?^­¼>/°?jL?«D?´‘ë?¹E‡?•?  ? ZÞ?”Ç??ë5?AëÜ?:…?‚>>÷­w>÷¬z>÷®ž?DäÝ?¹Ã?¤0ñ?w°–?}äà?Ší>?Wž>÷±?B)8?€ÜL?zV%?w²?¡Ò’?µô?†èˆ?\r^>®&>@1Á?•íù?¹Â‰?a>žRâ?§Þ?¹À6?·™Œ?¼÷Q?§Ã?®Ûo?¶p4?¾â?¹¸Ø?±‰´?w?ƒßg?¬[Ç?Ì“Ð@Wè?݆Ç:ùF€>K«? ¶?þŠ?Òžä?½”?¹ ?“Ã&?Q‘›?c~Â?wri?3û?€h~>·å?Æ?d¬ù?Z½»?G¤®?j"Y?wJˆ?$M>÷A·@Cü!@eëÅ@«l?÷-?¼ü?¸êj@FY@`÷? +Hš?Nð?GR‹?O*©?˜U?‚ ?t¶G?“ëò@ ùF@ NÕ?òÝx?Àô>ö¾z?RA?¹ ?˜Ç)?E¹ƒ?‹y?ËÓ:?ÀI=?®õ¾?±ø?³7×?–’?xûˆ?vUå?v7Š?+–Ž?Ç!?DØ#?W•>>Íf~>Ì{?`õ,?Šòú?}ñ?uÞ?}„ø?†u>®½¹>bpk>r°'>qy?sèŽ?†)â?[T?N{¹’Æ>Æ©g?‚"? +…?Xæ¡?”·@Ü@\¡>ôä‘? #æ?vÎ?NpP=Ud>Ëè)?Ú°F?·!?+ªò?zý>5°>ö|C?v³|?›ò¯?ýÊü?à$9?•5~?– ^?™áÐ?ËÔ!@v`?õÚ›??â?}ñ—?EZ?tÐb?˜¼E?™Sb?ªn¥?Ê4C?òÁ2?½‹I?r”h?@£>ûcÊ?gþ9?µ±Ë?µ‘ã?µ6?Ì'Ú?áK??gÎ?‹@rÔ?×Â?¥P?£ŽÀ?¡Õ³?ã“N@&h?ò¤¶?½k6?ébá@ +·?¶íƒ?/ñ&?S[Œ?ƒí?—`g?°*;?™c·?oæe?‹&Ä?¤êÈ?±ÕR?¿DÜ?¤˜¸?€?Gly>ïÁ>ôF>÷œ‡?Pp¨?²ü‡?ž-®?mÅë?šÓì?äKþ?Ï?¥ÍÎ?¤äa?¨ö¯?¤©3?™k[?©“C?íV¯?ãÝ&?¶$?±žÊ?­s?œØ…?&²è?4BË?‘M…?Ï?m÷®?söò>Ñ­ >Å¢? +Ëy?áº?gžF?gYr?á96?õ¦Z>Ö¯ÿ=Ô +?P“7?ƒü>ÕNÃ>7ZK>¸ò>ê(š@ t@J”©?Ñq>é«ã?ll?¯ ¤?•öÈ?vÆÔ?Q}»?*Ù?~¬?è²ë?Àg»?T€?. ç?u²C>Ü A?—6'?™Èû>ƒ÷«>Or(?b`?tIn? ,>?ªøv?ƒ×¿?c¸m?’ˆ?ª›½?7Žq‹qí>€õ?J$†?`X?ŽD­?–•,?S&…?&Ï?0»?B í?U‡˜?x'õ?a(>¢Ì>b >|jø>X&¾=ÈNŽ=Ò¹?|lÆ?­‰?ª'?§°?u'ø>Þ&??wº?Ýia?×’ˆ?¦JK?¦83?’@>õŒ ?2Šq?öР>ÜyA?dÖš?„±?§¥2?½Ü ?žw§?^‹?hK?‡á?}XÏ>½“«>´µc?” ?ž‚é?.^Þ>Ú ƒ?B–?-Ç?Hžø?vѪ?{‚Z?„±C?x¶T>ÞÔ>ÎÀ?B8D?ZøÕ?²¹Y?Óü\¬>þ{·?'…Î?%ÿ‰?…öL?†ÎÒ?´c;?É*Â?‡%à?.äB? –œ>å¾>ö”'?0@á?(†=? ò?¤Ê@ב@H?Òƹ?«ìo?ƒiÐ??Ö?höñ?ž¸?›Î/?hèƒ?_žÈ?Y2?Y+:?•\Ï?¢Ô¯@ ˆá@8Û•@¦5?ž¹¥?“ÃŽ?Xêª?Xß}?y‰ ?€„>Èo_>’ +?@TÛ?m‘d?DaÌ?0"?9÷²?1×ñ?C†X?ÍZY?ÉÀy?1½U?•„?S^?%ß?b:Ÿ?þ?’“S?b&?v!”>ä“þ>Õâ?•o—?©E,?>ûG>Î`¦>Ù^Ê?T*>íàF>ÖŶ?A>?›s€?œ ‡?ùQE@L\?ä†i?ÕíÙ? öÔ?U¦¥?„0<ͳ¨=«ÌË>ÕkÆ>Ôâ?®¥Ø?¾¦?¢Õ\?•Fj?“ߟ?’z”?‰&è?SfÈ?R—>à"þ>ÒÁT?þJ?Š~>â× >eÕh>[@ô>P¬$>K©>»â>°Þ>¸ÏÉ>ÏÙÊ>Ï>Ï;£>úµ„?<(|?3ÿ-?Bùó?MÆ?Yk?[Ö”?< +p>ßu‘>Ôº<¥H¶>€?HýÌ?Bxû>Èó">¹ÆÞ>½¬>Æ–?¾›>½o2?8¡|?rŠ;?p?c?;C¼?9°™>¼½?=Î5]>(©?‚áÁ?ˆ/^?áí;“±*? P?,nw?ã¨>²”ð>®!´>­n>¬º>¨¯>¥>¨ß> œ=QXw=Pà=¢~=³Àä>1·>Vxø>gl@=6m|=‡¸>EÙ­>Lÿò>{ÅÐ>ˆQµ>†¬í>„j>Û<Å5<4Ât;FF?¾d•?ßÐÈ?0ò$? Ø#?(()?w?µR?_Â? +>>ˆa¦=³Úo=¸]íÍÔ>ãX‘?e¹Ï?iî?~´Ë?h¹="»¸>Nn>#‚É=“>aý÷>OóD>=Øb>m=ê>™fÓ>ò.¢?6w•? ƒ>ÏÈ?)\?lj4?5Å‹>ù q>ö.>ò,?¡Þ?ï¸V?–d“?98¡?Púž?Uðœ>Ñy.> ò:>ðuâ?+ÔÇ>ƒæ=èü>%øÞ=ZBu?h?µTÈ? ~Í<v?³?næ?("˜?Gn>LB>ã!'?>gá>–CQ>”ew>ðt³>öÎ7?þz?ò?íµ? +I$>ðî>ð³>ð4?nÎÝ?§¹~?Wr<>ïè->Nøá<Ó ?F‘?oÐŒ>Ί¡>=¥ü>ìW?''f?o¿Q?,Ó>ïÀ?â/? …>íý>P£Ó>ÆÊ>ðhl?‹>ó¥®>ï×Ë?:Uã?o߀>ôû©>ˤ?O"Ì?¤y?>™À?&ÚÓ?p¡?ˆu?’Zº?5Ž>!4ü>’×>¨A=ãg&>YL>ðuU>ð~½>ôÝ>ø*â>ð “?7É?W2ƒ?tÚ?w?­|C?Íý·?.OÈ>}Ã?ë’?Dz?€*Ò?ˆŽP?Œ×Ö?˜˜>ÆxÉ=O…Â?‹?µ}?(…­>Üøß>ëí(>ñ­?ˆ0?‘Vh?.‡?'?-?–—²?“c£?0Ã>a>qÑ?•.>ÌÂ=ayT=@>ïÆw>òÊ>ÿ[0? +öØ>ò§ ?Ôƒ?rÁŒ?y¼Ü?‹ÈÏ?dc>]Ëã>ÈP’?s™?‚ýÜ?¢m†?‡Í2>óC?µw?Wø?fÿÿ?rQ?s}_?lB‹?‡€$?Ž?(É.=ïü>ÐH?£‚?‚?aY?hNµ?œ¼?#ðÌ>¥A2=Þï)>±\Ã>ôF’>ýpÞ>õýû=µ)?H¡Æ?c‹=§:?hã?tp?,¸?-ª„>}Ð0>Ÿ× ?(M"?F]?àVo?×7°?ac…?‚ ?´C?‚o :X<‡È@?_m@ k¢?°u‘>ÝSª?Ô ?,ªƒ?uŽ­?š@¥?ˆ¾F?uš»?&>õ«¤?‰›?­Úx??„?ÙÃ>÷\¸>õÛE=¥€{=Þ?¯û?Ã…™=~þ†$">à¤Ï?ºê?‰p?vFD?‚ÿ\?ž$„?”q?lRq?EVI>úqù?AÆ?ï?”Ëi? {?ÅwQ?ä¥?àî`?ÝËô?—b¿?w¶¥?ÑO>?é¥ó?䪙?Õ¶ù?»t+?¹Ö?>àS]?f¥˜?vôÑ?¸¹?­Du?½V?!3?•Îë?‰Í?vþ£?wÖ?w ²?c“ã?7ï ?{+¾?¹Tj?˜&#?PSt?Œµ>ÁÇ??ºR?Yöæ?vø?|kÊ?¡ô ?¸™?M•a?È2>ä(»>Å&?>Ð?R]¤?P–Ù?]aË?Rä?=A>uˆ\>WZ†© >€œ>÷}+?6X ?çüG?Óá?w C?SŒ>÷Ž9?Mp“?±?££?—Ž?S–>©N/>úËâ?.]×?f|?w¥]?žh?¹¿?¦ô’?¨ùŽ?£J ?—ù1?ÚÌ>÷³¡>9=:dê@ +¯*@ÔÊ?†ý?}õ=d·â>$Õ?¹Ð ?²¥Š?wÄ‹?Š é?É?­­ð?>7Y?8Ðe?3m ?o¥?¹Ö7?©~é?Œìã?4!h>;?²> ;÷>÷Éý?ƒP?º÷:?”Äe?wË÷>ÆMP>íñ>àëî?QL?î¼8@ +ñ?ˆ_?P6õ? |m>÷Ãã?œØ?›:`?D¾?Bµ>›øŠ>¸ËO?Cf5?G’¸? Ñ?ž ?w³@?\Y·>÷°þ>÷¬G>÷­a>úÒY>ê¬Ý?e?gJ&?”z(?ÆÄ^?–PÌ?C‰6?œ á?Éûæ?›r½?w†¿?µ£?×£?0)>+â>Ÿwƒ?ˆ3¾?ªXþ?… ?w^w>ÿ+ö>à a>é_ >ò¥”?í¹?ö÷??}"}?‚~w?Æ“;?ÈaÏ?£Q?™ÆØ?w?}+!?ÀR?£?f?ÞC?ËÜÔ?œ_?™Á©?—…?[ÑO>˜;B?Q¾Á?ÌM¾?ÂÍS?¹f?Š¥‹?%Kü?K3k?v?r€4?rÉ8?Ÿ~¬?¸ÐË?·ó&?µÏ\?Õ·ˆ?ฒ?e5ã?Þå?5>•?7Ïò?!ãh?"wZ>Ër©>¾ê>oŠ)>_Èv?/º?0N¹?V Š?Jn²>ø€Š>õŽ†Õ>“Ö“?WU?{p=ž'=½â€>ôÚ¸?5v0?òy?Ì«á?°¼?Õµ?RœØ?.¹>Å,ê?%)k?— +v?Žˆ?wÑ?c+T?X¡!?“Œ?Ø¢&? *>øx€?-ª>ó¶"?ò|?FŠ4?…ãí?¶’þ?¡4i?ˆÍé?ìO@7º±?ýpi?Rè]?¢?åz–?²§]?o¿?–uÜ?µåQ?vb¾þE?U—¤?©,P?›Ïf?Œ<í?s"?T ?¥Öa?á>O?Ë/?³qž?æuƒ@V?Ú"Ê?h?J0E>ða-?[º?>^ó?bÒŸ?†U*?}9Ñ?oÌð?¢•Ê?×Þ@?É·ô?³‹7?~>ï.Ó?)ôí?nù?§¤:?í×·@z"@¬?»óC>b—Ä?I1?äÎ?µ—?+“C?|?݉w?ànt?íw®?Éú?0ßg?K8™?†j¿?ƒÆª?4Óº?9Ý?l’°?fàÍ?(Ì£?/YÜ?¢×¥?Ÿšè?°Üý?°Ð5?Ù,?ÜZù?{?kFä?³ƒ>ë ?œgM?°K?«é«?¬‹?:1à>òÞÍ?Ø™œ@M"@6bì@J©1?Ò¨¶?IÝ?Í¿?ÙË?)nõ?WŒ ?G V?9#W?bTÜ?’;‡?…*F?FÛ­?Fö]?hMG?lÄ«?KÞÇ?SZí?¤ñÑ?§} ?äÚ>ç<Ü?Wlc?fþÓ?4îÏ?#®Ç? –O?ÉÛí?¤+N?†ó?6o¯>ÅO@?(Ÿ-?}Ö÷?š·?æÝ?¶ ñ> «>6ö„>þnM? Æ?øÌ?ñÆ_?áà}?ãì?³j”?«£?*–?>çg‘??¦r?jFW?%»>ÌŸˆ>õ£ì?"Cå?pÂ2?É»Ì?Æÿö?ªe?´ãÄ@ fP@ñ‘?>íî?)‘:> :ª?¡Qî?¥B½?©qE?±ò?¿.¸?ž-?‰ž“?öñ?\ø1?§Ÿ?³*Ã?ÙÒ?Ø3?ÏlU?ÓâT?iÀ‹?^Óð@±@&úx@&èp@&¡›@ @p?׃"? òˆ? ü?ã)? Ùý?W?”–?’&=?Å?Où?Ú?(¨?fÇ?„‘?ŒÔT?§E‘?šs ?2«|?0a^?.¿?+׋?V í?\Š?èÑ?‹À?› Ï?¥6?›Xk?Fm?ƒÎ¿?4Ð=?0¹`>–]>š·µ?–ÿ?¤Ìö?‘H…? ?1 ?‘]¡?¸?ñ¡?Öì?e´ó?bå¨?[4N?[&†?YÒ©?[ã?‘aS?¤9)?Š|?ZàÅ?}fn?©³Þ?ª£*?•›?‘©J?BÜÅ?9H?O·Ð?ZˆY?¬M$?Úuþ?æAÄ?ód?êˆâ?ÚO‘?Ö,Ï?5&‡?1$H?Qýý?Z,\?¯¯ï?ÕžS?—)Ñ?#‹Ù?kÚþ?¸Û?¯Îj?£y1?£ma?`ûm?YßT?$ñÅ? Í?tøÍ?£U4?p•?–Ìþ?Ú³?Y²?b Ö@)÷@-|Ã?öä1?Þ?6„ =ÏZu>Ö‰r?YN¨?©WE@# w@Ì\?YWo?YP‹>ÿ‡y>øo?Þ?6¶?'é$?žš?-üø?Y½?Y¬?XýÐ?Xó?CŠ?Ü~?aa3? ¿?(­v>صö>úûí?É?Z W?Öìž?Õ¶€?!8?›„>wë>.Ks>§‘>Ø¢?Cv?^“ó?p&?„ú2?‡Ò¥?3 é?,,t?½™ð?Ï!ª?€ï?@ö?Õ>Éæ0?ê$?U=q?VªÎ?VŽÅ?Vq?>î”*>ß«ï?8î?UíÛ?N'+?>iÆ? Ãó=…Lç=ò¶Á?~^ ?‚«ä>Ý&>¯·ª?=ip?v…\?„±ë?‹!€?®­?&âþ?$ë>× Š>Ò¶Ž?3¡?IJ?í>xÓ'>äŽ?ö®?Šv>ਓ>ÐbÅ>Ð7>ÏÉï?E›?³"?´@Ë?v°‹?n`?‡FÛ?’9?tÃe?KúS?þ~;ƒIì>ºÛ>ÃÁ>+8—=‹à><‡H>Èöð>È]>Çÿs>Ç‚!>˜ÏÑ>¡·½>ÝóE?cë?m +>wv£=ÑIH>³>ÜÀ?‚;?Œwb?Du?9g>í>ô#¸?ÜÅ?ñÄ?##o? ¢*>¾ç¦>¹›/?"¤r?rT8?pfM=ÒàW ©>³¼7>³·?·?0aó?"D>´hq>®w>]yÈ=N~Ì=u'À>eÊ>€­è>uË|>jK.>^à˜>S’>HN>= ~> Q8ÏrË=Y@ë>N¬>:@…>dP=’r=|óe=T®1=³0e>sy>}ï>ïö>„Š>†‰X>…æ>ƒn9>¨>zÖ÷>\¡`=©êD:3¤?ò‹ò@@?äÆd?ÙP}?in%?MF>Ø:>ßiÇ>æ¡¥>y_ž?·—½@!Ã{?QLÐ=X¹P=œs?„›‡û>j¯Ù>Ø7>ïH>Çb>”òë>½c{>ùºZ?Ú?X˜è?ƒ–Ð?£o?9Ú=])>…K>÷?;í¸?vhM?1ÿÏ>ö{>ª{>Ž~d>ÖBx>õ +?CÙX?t—;>½%ò>$°>büc>oÂ>\Y>G¿;>3Zv>‡`B>­ˆ=þú¿?\ëÉ?°=€?µ7{?´Pð?M²Æ?!Ø>û_>ñ4¶>Î5ë>±ž>Zj³>)Á­=‡Áó>ûí>€Fe=ÌO#>dI>Âj·>õÁ[?Á…>U7;nUé?[}?lâÆ?—Ã>Òþp>ùƒâ?ÚÒ>âÝ>>¥\>ÌÛR>ïÙ’>åe1>ò'*?9},?WY€>®ÍŽ>®>A‘>&3=Åmî?Á?oé?+E;>ïï›>|{d=ôg=‡¿Œ>Ù̬?F×(?H#s?<•ÿ?X´Î?p1?Œú;?ž |?…êü?W»D?Em?ª…?_=eŽ?>™è?>ðŒ³>ð•®>ð¡¥>ðªv>ð·>ž’>ˆ™s>ØŠ±? "ù? l?1ö>ÁÏ>BÄà‡>ñ-$?”]X?´ô>ç%Q=¨\_?6Í?qP»?¨G*?µ-‡> g=˜»8?ªŠ§?ÁÛx?_jû?R‹”?o˜É?qùä?E@è?Sîƒ?ˆ‡?(Z?^š?°Ä@hY@ +Ðh>èE°>èf}:Õ`=«²°?fŽ?`;?YŸû?Wx4?rÙÍ?zt‹?“³?}+ +>d­>¿Î1?s)?_¸Q?54ö?+0ò>ó\>¦²±<šR>9‚º>ô©Ú>ÿ—V?bó?rç?¶Î{?d²>¦!Ë>ü”?-ûö?¢™l?Ï@?—f!?t}>¥0#>Æ ú>üïª?[˜?s¤?hP?Z=l?¥L³?ªR~=ÀŽÖ?nm¤?u´N?xëf?c}ð>ÈÓ>¾ð?*ìÂ?@ß=¿ >>;ð?QÝ?!¼ç?u'?) >×ê>Î:?@0®?««ã?AÞQ?*¬?È?L¦ð?|?~Ï?)?"ý? +]?Y þ?uØæ?uã—?uê£?€A>õùg?š?²W?ãùö?æ¶V?‚ŒÒ?q/ ?Ÿ™^?™G'?v<Š?Z 3>=­Ü>ö“V?ÛjÂ?ÈÅI?œ ð?P +¿=áÀ<5ŸÄ>QNs>ö½?Ž5]?âEc?ãLD?æ)È?½ê?¨ëU?˜uÐ?”èF?ƒt³?dÂŒ?Îô‹?øBf@8û@.r0?äz?Èrž>_È#=ò{=”Š9?óW´?å]i?c^?H»>À?Ь?£2J?~˜?4â?L/.?iCÜ?qyï?ŽÁ?n?,>Þm>]Mû=—:à?“•?÷VÀ?§»¯?€g0?ž+’?¤,A?s‡?V·?+/½?(ðd?Aûø?>rÿ?tYüÌÇ?Qn?”gß?” Ó?DsÁ?B§´>÷œD>üò¯?pÊ>µ$â<=">öÌ×?¬öõ?®©¤?¹Ãç?ÇZù?Óì!?›ª÷?H…ó?iyf?~mØ?¡öV?ÁÒT?¾^€?¹Ö@?áç=û@?š?Ïh?>sP?ñ1?l?f?wÞ¢?y„ð?ƒ×Þ?´0Ž?¬jÉ>Ì<Æ>ãk?ŒR;?…¤s?'¥°?A+k?ÝÁ?™T?™2µ?…Ó£?H+º?k·|?”ï8? ÜË?¬Æä? f ?‹“ç?Jó0?O?ªÌy?÷ä?¨Ó®?wåÝ?Û!>ÒZY??Ú¦?Z¯÷?‹dN? ëÞ?bv?E÷C?½ÄÜ?½si?™Ó?•ó{>ø·J>ïÜl>í>‚Ì?«Ïr?ž‚2? óª? 2¼?wÊG?Yr>øÝ?‰ê +@˜$?ѧ¨>÷¿›?ôp?×_?}?¹Å?¦?Ž@P?œá?±Ð?º‘Ž?¸Éñ?ÍÑ¿?Ýçå?¥?9ø£?w‡Í?²òö?´ê=?‚´t?wt> |<ƒ©;“Œ,==ú3á?4\?¦>xÌ£>°/D?7[h?IäÑ?w+`?fÌ?+Œ7?8E4?cé¾?c˜+?E¼°?„Ê6?¹8ø?u]>N?Wd9?çS;?Ì´?­óœ?Á¼??ÍV÷? [ö‘">BS=i,Œ?ʺ¤@R¬?”kÌ?<®Ÿ?W(ö?XG?ÞÜb?ùÍV?â,—?Õâ>ôÊ>‡¡‹>~²è>n9ì?pjc?…?¬ä-?´íö>±€’>±Ù?7~t?Bª$?u|˜?{ù,?©?¹Aˆ@3Œ@ åR?·õ/?™Å;¥ýP>X ?ƒ{ê?šú?Û¬}?ØoD?ÜA|?š›?ô—?àœü?¸õø?Xû?^}?ÃÖ5?ÐPo?ô?ÌžÚ?ƒ +€?i«¯?SãÃ?Ly‘?E?^é?‰*à?3úþ>8J ?ˆ#?s8ÿ? x= +9•>Ž™¶>ÿW>pìk?y&?ðG?éNi?à%n?ëê„?ûÔÛ@ +@"á?²¦>ññ ?º%F@ §»?¾ÇÉ?q˜¦?.òE>ñmj>èvØ>ï6Ž?=£m?q´?93J?þW?Aä¨?n‚?3•Ö>ð}1?”’L?ÝË(?¿jå?©zÕ?•XN?~³'??N~???iŒ?°š„?u£¼>ïN ?.U^?o§?¬œ?îãC?ij©?Ž£[?”~æ?’[i?²[?îF?¯*>î +r?5•Û?žÃL?Ä0@ ”?ÐyJ>…ä&>™TË>í)È?Š?‘óu?‹Ê?l¹³?f»?ATè?c=#?þì?øäÌ?±”?°†Ó?£ûE?¥Wš?[5N?ZR;?ƒø? xÃ?›"¿?ªmê?€/#?k+Ë?¢¶R?¯ÜÜ?†¨7?tkM?;…«?*MÖ?‡É!? ø“?O >éˆð?-m£?iE?7æ>é +£?)’?†Q%?V›Ò>¤G>Þl?9å[?"(Ò>N}s>²Ô?êñ?ã¬Ò?`D?Z +Å? »-? VY?oV?†?8²B?:h¶?†Té?¤$?Ž-g?†ÅÄ?à“ì@Xt?¼•>ö;?ev~?h«L?oP“?¥îã@€ŽX@|M‰?eˆ?dõ§?§*ž?«H|?réP?Z§¾?`‰?cæÝ@Kœ@YÄt@Øð?¿tÖ?‘ÿ6?++u?^]&?ª<?±Œø?ã|º?å A?}³Á?xÑy?¥[?©ŸM?x‰1?aîA?«z-?¾}?¯Ê^?°Ê,?¯¨!?¨ô}?¨ßÜ?¨Ì\?™´³?¡?[w?ÍÏä?ÓµO?‘Ž?yÆX?oÒ†?rnN?‹V?šBX?¤ú±?¬U­?§œ?£ ‚?…R\;ɨ=1NI?_#?_s?£Ï?¬d?¯±“?³ç?)>«>Hð>¨3À>ÞR˜>ÞA>Þ%‰?aþ?wëG?yAö>åŸW>Ý»A?nï¯?~?N¶?A¾å?_e?¯R¼?~jâ>É!?3ìÕP>õ£ç?(†¡?0{?}õ’?‘\W?k·Õ?8Ì?:Ò÷?,Lz? ž>Õò>Ãï?˜?šùq?Ëï>Û͵?id?%Í?Ó-@4š@©?¢zž?œ¡Á?[f?Zøx>ãØõ>ܳ/?FϘ?`C|?ŽZ7?Ÿ†=?AIR>'Û!>óØ(?¤,&?£ì>?˜¬V?—ˆ >™A>l`†?#>?SRš?ŠA?¦úP?ʤ­?û¡?ÔI>½ ¬>Ïʵ?‰¾š?ˆ®‘?5a(?/à?Mbí?I»?®›!@X¾?ùÎì?¶ ¿?·=?­¶»?©$¥?—ZC?“>?Šm¶?Ž‡ ?‰VÃ?zŠ?eG=?N3?^põ?‚=:?x>¯@N‘@­Ì@Ï¥@#<¡?žÓ—>Úˆj?Oæw?ª–þ?ž\?Y|Æ?Rkæ>Ù‹Œ>Ùf?<±è?D ?»>›?Û—?³í?“Œ!?’Y#?‘"?|®6> À±>«?( ?ÏÕ?Wù;?]é?X;?S^\?‡TD?¹Ô©?œã ?·?£\?}^?¥´?(V½?'2¿>•U'=Äß®>AÆ>°«?úç?ºmH?½ƒ?˜ Q?šrç>O—<úë;¤U>JD">× >ØÝÌ>Ý»×>â£Ì>ÖΣ>Öv¾>ëúã>öK’>„­/>(À?ø?r©?7Ð>yÉB>‡ <@dè?*×?Tˆ‹?m2?‚—?aÓÀ?üü?&›¸?$œ?bÉ?“¹ˆ?ž?TF?µ×?\ìu?ÃÉÀ?±ð…>þ0e>ø¹Ú? +„Ø?&!>Ì&P>½yQ?o¥”?ùl@?ç«;‚5;y>Wç>Â>9>¾&p>ËèÀ>Êî±=(ÜT>h¥Q>ÉÍÐ? í?sƒ—?li£=šJã>S®¢>Æn[>¿ßB>NÚ¼>C{d>8/8>,ïî?–R?¯²¤?­b³?ßÐ? S>›×<"‰X>‘Ë >žY>Ç-T>ÏÜ->¹<Š9y>4“>·øT>·Ì>¶KÁ>µp¸>x2 +=cp¸=š‚h=–fÊ=k(€=‰{ä<Š³0;Þˆ=Ö¥ú=ê>h>†p¸>¨Ñ_>§¹D>¦ž{>¥z>e=rå;³s€>±ál>ìøÏ>ò°>¡:>rÿ>„0ø=àSà=N>ZDn>†ø·>„ë1>",Û<š›Ö?ñ¹«@[?P¸t?@º/>ÒÇ&>¦ŠT==±þC= üöB3Ó>îäO?Ú?~ÒÜ?~¨Ð?ƒýY?~ ¦>üû\>ãúl>}H>¼›ó?E%¯?[>3þf>d~£>²<°>»$ÿ>ÄŒ>Þû­>ømO>퓶>è_>óTÐ>÷1?<S?v 9?2|z>ö}>RL8=—`>¼š>{p>®ÙÝ>ãÉ>¦A>iÆ?>Ãf >óxö>¼B¾>§t>Lêk=Ý7=´=ŠˆŸ<“ÿò<³@ð=©ªT?"$K?_ÔS>´½'=â?‚Ià?¶‡ª>ód>¨°>î´°>“iX>B©A=}mÐ>ÇÙã?R>#Dú? þÅ?h4-?%¸>ï >õƒ?õ^?<×£?Y´|?…ÆÌ?’4_?8BZ>ïó$>Ì+>c—D=ų?V½$?³ðx?%„¢=ßW"?$Oo?€É?xe?xZ?p54?oúÆ?(ãt>ðp?ñ¾?Àó+? †?(Ý?°Ù>ð$Õ>âÕ©>ï¤j?DÞz?pAÆ?=ßW?(Ù?œ û?Í8M?ŸÂ?{Œ•?p~'?pCá?#+Ä>ðŒ>G j=…¸=¿¾=ñ–~?4“@?iª>‡ ?$q„?RFà?,èt? €ë>Ò÷Ò>º¬W?„æ|?¦jO?E ?oqm>K¸æ<“…`>åî?ÛX=Ú:z?„U­?¡T?TR?|D>&ŠJ?7¤û?2‹X?ZO"?b=>à'‘>å;¸,À=HÅt?I~? C©?rÑD?fy ?(~]?/®?5¡‚?E´?Z?þ?W’Þ?s;ì?4j”=±±>K˜Ñ>óo@>ó`>ó†¹>òªv>óŸ›?V‘Ë?¡[?’¢¿?‹2º?qQÛ?D1…?=§§?7 õ?šu?Ñ&?°?QUW>Ó4s>-ç‡=uz?; à?tv?t‚Q?tc? M?Tn>¸.‚>Òñ/<Õ„:&õî?0/™?=.¯?œxý?š8°?K¦?Cï>©£Ë>™§Û>õ,½?5Ù[?¹ á?•ü>ùìÛ?!Ç?VÓó?,ÿ>õw­?0£?u‰µ>üî‹?%7?¢œK?)1(>)j>i¾+>kyV?Hoñ?ƒ.ä?r}?ree?uùM?vT? ”Œ>öÐ?Úòø?èÛ?Ÿî?¡aX? ’ +?!~ž?pŠ2?uÍ?B±t?;£–>öc®?GBQ?òÊx@î@ß?Ü(>ý~ò>öŒ‰>ïx?¸k@$¿&?çyñ?˜1¬?†0 ?wÄ´?Ox¶?1uÿ?)p>öÖM?„â™?£ï?„Æ¥?vîÁ?$÷0?Ο@¸K@8È?¿z—?¹G?´Jo?¡à‘>{i-? –@n?óïr?¦x¯?Í?dÞS?a‰¯?6fX?‹nW?è ?¨°?À?Cäã?w]ì?¯;?ª7y?I 9ì“?çÕ?_‚?1ñ¾? _õ?n¾â?ŠŒ|?~¸x?wŠ®?ˆ&§?„Mº?™/I?™4?¥Z?‚¼õ?$»/?!¿?66~?y>Rz>ZœI?³Í?9r=?¹Ã†?¡±?+xW?íZ]?š¤D> W?Txž?§±í?¦¢©?žCW?šù~?5Ô?q+Z?IÙ‰?„½ò?—+Ç?VÂq?*ïr>±<¼>DØÊ?NKu?u)?´˜¹?¸à ? +Ñ^?·‚?î˜X?æ?œEË?Ÿÿ?ÏN!?¯rj>÷÷^? DÏ?9ˆH?}°^?ÓWR?­ +„?KãB?Nóµ?S¤‘?\“¬?wøþ?²¬?ì"y?Ò½Y?¹û?\¶Á? ”±?’@¢?±õ­?Ì®e?Ð8D?°ÖF?§‚£?“|?Š¬§?œ‹æ?'×?Õ2È?á¾Æ?ˆr?‹¥â?M~¾??È ?Žò?.²w?š°ô?‘·„?†`§?€jæ?wÝ»?Å_†@7j(@ æ‘?ºš?œD*?¤¶?<’\=ü§>‘ð<>ø$Ø?„ßÑ?¹ÍO?€´S?8žX?lS!?ŒÊ(?;d?ãl>Ò(Ò> ?Û?Ñ%?Eù)@$v½@A{?›ò‡?wƒƒ?\>÷yF?ñm¶?èËN>ãÂÕ? ¼³@Œk?ó<¹?>Ùó?:Ã’?Qçl?4c>¹È2>²Ü >]áv>ŸÉ¿>ìp{>ÿ2%?uJ?Oúv?¤¢ó?uT8>öòÏ?Síµ?¡”?‹šø?gþ(?ô_Ï@2ñž@ û?¹Z?’a?râÚ?Ó´>Ýõö?ˆe?ͧ¾?¬¶:?›‡`?=P? Õ™?¦Û?À*Ç?åª?îôx?%TA>ö|>ö×>õúù>™Pì>ž&Ø?"§´?*x=þ¾=ù>Ž>‘ j?eæÅ?^]å?`M>ûxj>ô—ª?:b3?ô»?üÐj@iƒ?ãô,? +èÓ?3CŽ?’™r?‰.û?Yë¸?9äè>¥ªä?p@ ã?ä-È?€¬;?´^ @ ªí@ÊÝ@!rÉ@³v?Àd?Á€c?¶äü?¾`?Åí&?€äô>·›‹?hX?cÁÒ?x•,?‚à?<_‘>õ÷?¼˜¦@Üü?ë Þ?­Á`?”ai?…õx?XtÂ?4 Z?–„Ä?ÃT?¡â?&Ó?w´B?I»6?¸á?üô?±µ#?q¬Ó?u?q$ý?f_×?U»¬?ByÈ?Bl‰?b€> 7²>PÚª>»í?ÂR?c¶Õ?Ù–m@ãg?ÅêE?TŽ[?‘í?°P?’ Y?oÒt>äWŒ?–í.@V@XE?ä¤-?ƒ›A>†Pü?¦ëS@?æ&ô?…Û?²?îa5?˜ªu>%.8>æM?móÔ?§jî@/!?ÝÉ?mÆ{?w¯[?‹’G?Å:?áQº?ÈY?lØŽ?f+w?=´d?eL–@Ó}@x)?™Å?›ƒÅ?ˆ2¯?„I«?uy>þ×­?¦ 1?¬?@u>ëd?¡x?°·>Œl|=€î@ÑV@$Ü6@–@Š?Ûn7?¯n?óv¥@ -?ìŠÓ?È°ü?ªVÀ?ˆËö?>±h>­Á?P?‡9?h?Ç?*:°?#¬>ãz‚? +û?ôãö?òqˆ?PÖÉ?Xœh?§>æ)ª? à?‹ +?|}?‘4æ?E°?Š_>Ù\=J®?PU?²ÝÉ?E|=oCH>¾CM?hY?“”ä?åg0?Úq†?¬º ?Á«@&Éÿ@#´:?rÙ`?pÚ¦?f^+?dT„?d6¶?dx?ªÎË?Ðc@¯@ÜI?ähž?…ÿ?ƒ»?†?S?}…€?Mš9?Zò?ŠÁ?‹ßo?š?Ž#?:Þ²?/Ÿ‚?ÞøS@#f?£ô?Â/?M·À?„àË?‡'Ú?‰oà?{;g?+pþ?#©¼>0óç>':@7úS@<ä°?Èw9?¨<Ë?6z:>ëÕa?™5O?ßêË?—!Ê>߶ó?P’?^ä!?KcÎ>è’®>ê;f=àµ1> -ø>$RË>?v€>§«h>µ¿m>É +>Þƒí?VÅð?²#¥?“!‰? ‹?>f?7” +?5E1?áÏq?è©?Â."?±Ü—?¢ëC?¤Á?Qœ6>P¼Ê>Ƽ£?]'m?N€8>¬±>¢[Ä>ˆŸŽ>“ð?(ð?Ë­?RŠ ?\‡?Š,Û?°Ì?µ«·?ÉÇ4?Áͦ?j,&?gÜ?Ã:>ù=Ò@6¦@$1D?}Õ²>BEœ>Û©ë>Üvå>à,w>øG?T²}?Rnb?ÇÖü?Íà?ŠÇ”?mL?O›G?.sG>ÿV> Ñß>Òj“?,R?4P¶??ç?gš_?sA²?1)?I¥?¯¯3@¢¶?Øe,?  ?3¢8?¼N·?» ¤?D¥>ü!?2^?W!B?¤2?Ï Ï?Ëb?½éö?ÕB,@Ð_@I1@œË@ê?²‡>Á}¶?î?ÒY?Š7>ìBè?¯wð@Yçí@@·Þ>ÙÚÂ>ÜG~? å>?ªî?¡Y?š,¥?Iù?eU?-<?Yœ±?Bh>Ù¸>ê|}?”ßÀ?“þå?˜ÓŸ?¡U?s'?€Ý?a¦õ?EÏ?&j>m¢t>¼'?£tk?žœ0?ž -?¢Âð?¢¶›?¢°(?´¼7?Æ{?£*8?#€å?).?ˆ¸?ƒâ’?Š'M?ìô?Ç>ØU$>JLk='½Z=—ìl=°‰> fª>ÚYc>àÝÀ?VñŠ?W‘@¹r@qø?ÑÓ`?™¦Ž?—?”wO?t”ü>ÖÑû>Ì&+=·Ÿµ=Ë°2?Ro0?eº ?64Ð?25 >Û8ã>yêJ?sl?f‰?ƒ—ô?„çj?ƒz¿?‚\?+ .>Ô Ó>û=¾?.·?6 Ÿ?}šn?N`?˜¤¬?£Oý?–0!?‹O>?sÁv?7¾‹?JgQ?•B?—½w>0Pû:—°e> «À>Ëù&>ÆU >À¦j>ºú!?qÖÝ?‹%Z?þé=¡‰j>W>O?ÚÁ?+H?%4ü?)0:? ¸1?23ä?88é>âï>Ö¤¼>¹Ki>Ça{>“ô>c^e>˜Ÿ=?SÀ?@”?@ùŸ?lìß?+ÚÔ;]`‘=ˆÃQ=e*ï=“qh=Œò=…¤?*´¾?;Ì>Áan;M呾>”‡r>B"ð< FX>R +>Jæf>J‚Õ>ª¢E>ªôÞ>©ç7>¨Öp>§†S=ä2×<…œ=µ»£= õò=aú<û%<å<”êd;ëÂŽ;çÐ>"F—>ŽöÝ>‰¯>,B<ñ5;=$ªã=F%Á=(äÀ7¬ð€=®õ>+)>!!?>ÌT<ÿúy?¤Â*?È?Á>Ìÿ>‘(¥¿„?©? EÜ9 1~>#Í>7U>Ãp">Äœ[>Ž>­Ç?~ã{?n_ñ>Lj>]™Û>näŸ>˜ÀØ>ü1‹>ûɲ>ûa>? + H?$‰¯>ýÚ0>oja=ûUÇ>Y¶>ø„ó>‚üE>yPÕ>÷IC>ƒýõ=µx¼>£…ü>ö0_>O +>&‚>wÓ¿>|q >Œit?öd?#Kž>Êë]>y€ë>¤¦ >ÉIÇ?‘?ü>–>Õ^4>s2>G=–ê8>ßm–?9Š¬?ý,?mÝ?’“ë?1N9>ð½á>Ü‚ >´†4?²î[@h2?=öC?W?hì÷?¡ä>ð-þ?ÿŽ?7>ý>ù÷i>þL>ð ç>ðÕ>Ü›H>ñæ?G´?¤)Æ?J2O>ðY?s$‡?§þg?Õá?ð Æ?ÊR1?°/1?PKM>ð€>ßIÂ>þKô>Ï”E>¯Ž˜?Ÿç?81 >‡ ?èq?pXÄ>Ù½£=Ûã>ª6Ñ>ðxÆ?„ØU?±³ý?Kš>ó¼P?DŸ?bù‚?‰¡?FC>¨Í?½¦?_m>ߊÖ>bp«?iå?¯Ž?ˆ¶û?q7ž>j¨Ú>¨™>åyù>ð>">ñÎ<=¹Å??: Þ?Zl?ª ?¨µ˜?zíD?qì>ú>›>ùHŠ?×?ù >¸¯$>°g°?±ìŽ?µ¹®?"¨G? +Í <Ñt>ë5+>ð†í?QI¿?G Ê?U×?GÁh?$= +?T¾>_h;>y— >‰ãu>÷qs?ŽÚ3?„ˆÜ?>Uã?0м>ón~>óyi>ó‡ì>•°x<€iè>còa>ó¸•?=³ò?‰ Å?[¬?%_b?+ø?2“ˆ?Zè×?tº?|E¬?o¼›?1ª[?=e?IZg?gm€>«< —2> >ý¥{?k4? U?”ß?˜¿I=ª_x?RŠÄ?@M>~§Q>£Ã¾?u Í?bÊu>³ÙÏ? þ +?·ç¾?Ÿbd?3?Z‚¤?õO¤?»“D>õp›?&“¦?uó?h˜ž?P‚&?ç¼>Ès‘>òaH>îÛ–>é >õËh>õÔé>õÞk?:×2?a Y?šên?°£?4Õª>öö=ߺ=•öX?•Ý?¢[ï? ? ¨É?¢üþ?œ‚ü>‰n>w¶>†–K>¯Š»?&X6?ùÛ?š«>ÿ¾>SP€>ÉS?vg?§êr?õíV?Õý'?­?h¥€?$>íe2>•Oü>×)¾>öÝE?“*?·œö?«Ð?žŒY?c?Sn?A—ì?H6b?cb‹?li?rZÊ?vë/?·äa?µ†I?ù?“¤>Ç!?)ø?²6é?®ò ?†ÖÍ?ƒe?:jµ?I®—?wd0?¨g[?û¼?µ ?]<Î?l—?w~‰?¿Î=L÷>”WÄ>óªŽ?‹-U?²Äb?=•Ô>÷œŸ>›˜ >–ÿ¼?ž?-| ?'æ‡?8‹”?ŸM?‡i?ʸÆ?Ï|?œ¿Á?—°?¤­?«°]?µÃ?ª™Ö?wàP?4FÆ=Š-À?*hì?Õ6Ù?µhà?˜Ë?VU<>§9>ùvÞ?/½D?zÎ:?›c?ªé.?­hU?|F„?H;8? þ*>÷üz?Ÿ ­?¹þË?íú2?ø¬>Su:ôf>ý +?ëŒ>øŸ´? Ï ?ÇK€?ÈOM?º ‘?ĉ%?ø,?Þ-´?}Z¼?cu?BH?z4]?·™i?½@-?ºù?ÉÜv?â’T?¹ªv?†Üg?<Ó>ù›³?®3„?ö¹?ȇ'?¬Ï‚?ÚB‚?ì4?¬;Í?ž<è?ØŒ?áÂ<@ó@@ÐŒ?£dí?œ¨e?E¸¾?GÎH?'c£?+¼O?˜Ø…?—Ä#?`ûÏ?òÏ@a@ G‘?ó©÷?Ô×€?wõÅ?“¥?ÈFÿ?š!›?kð>èI?>¯÷‘>¿¨ç>©•Y>õ ??«Ì?/ä<>Ü55>ˆšw>þ•? àè?7Ö4?D ? Å(>÷¶„>h'C> +Ä/>ôå»?ºA?vÒÕ?wÕ†=Ëi<à.(?ƒÃ`?„ >÷Ô?fÁ?ÔÝ?ÊÃ0?wg,?wd?wZ6?_Ô(? ‚ò>ß…Ë>rÖq>íÇê?w3è?‰Åi?£ûÿ?¤O?g™?^ì«>÷P>÷l>ö÷Œ?ˆ|? +[ª?J’ý?w²?vÑ?yMm?x­­?v³ý? th>ö¢-?gô‹?‰_•?‹yÌ?ä>®Õ>4FJ?«}ý?Àâ%?|ëÌ?vå?p~?e=>ý…>ö÷Ù?uuÒ?XÏ ?U]à?V9­?T7?"ßB?¸IY?«? oÖ?Jì?v0R?I;$– <ò,`>™>ÎQý?’™,?Èu?]KC?aa·?tö~?2è¾>ÔÁ>øº?ˆ²!?j}?ª ?³÷"?·[>?¢ ?Šòn?Öx˜@1c?Äù¿>–ï ??«?§ÌÓ?Ô ?ÿG ?óâJ?ëÛN?—ɪ? +wå?Ÿ¿?òɽ?°ÁY?s0^?œûb?¼-;?¹ýô?¶2š?hÞÜ? _Þ?<‡¼?W¢:?—r²?µÔï?Ÿ1g?Œæ¸?~Ãw?rû?³¾§?Ö»(?œÐ?qÆk?ŒÇ‚?šÉ\?²n)?ÃR=?bTÆ>ñB8?,œ¹?PZ??ËŒ?,Ÿ?ÞPÔ@OS?Ÿ’ò>ð€ü>Zˆ<ÏO2? *$?oµH?pF?oò?·ÒŸ?äõ?'?&“Ú?b‚?‰¢Ú?;iÍ>¾³Ã?ß?…@Irª@¸? ¿Ö?Âú‘?î„7?×e?°›?†V%?-γ?rþÚ?³¬[?¿ ?ÌH®?½éç?¨Bž?Êþ@ +6Ä?÷zu?˜°;?‘‡?‡?’ä?±g%? än>ìKÉ?N4?æ©„?áÂ??kÔ1?jW5>ë÷O>ë€z<‰=š;Ù¿ >èŒá?$ ?Lb?Püd?‹œR?š*#?vRè?lìu?àÇÁ@•N?ìâ?ã³?Ò.?ÃV–?¦"Z?‹„,?›œ?£æ¾?”9?Ž¬r?€8?+ %?*`ì?7Ó?]£9?¶"3?¥ ˆ>èc >ܦ ?ŒJ¯?ŽÐ™?ãî=?çJˆ?42d?ðþ?Ë8?îkó?wÃÃ?—)?¦× ?ãÔr?¨`Ý?fB?ŒPþ?¬bU?˜‘‡?jÈ?’ä3?á“X?âSi?ñ®Ï?ïþš?¢ë¸?¡—u? FZ?žõ2?p‡X?dIË?d..?d ß? ZJ?ÀÓ>?¸”?ª°À?„ T?"¾Ô?ê>ã#ä>ß k>êK0?R?b°ß?b‘?"Cr?þI?š1\?©—(? ±>…‹>µ_Ó>á±d? +[? Ig>Ü. =˜€9>{s®?of»?€Kô@EV@ó?´3?«o?vøæ?`X?º±>?à!Þ?ÞÖo?ÚäÀ?Ä Û?£Ôo?¡‚v?›&¢?˜\0?ê¨?Šnð?7Ž¹?/Qm?>ï×?B}Ž?@$¤?=Êc?ž/©?Þ,?Ø;Í?ÂK?º{?¯Éá?¨{Ü?õ;d>ã6n?Ã?^D?ÌC°@AŠ?âUÜ?Ͷ¸?¯æ?{«G?ƒ·ñ?¢Kõ?£ ?£ +3?¥s@Ÿ™@ ‰Æ?Á¦Á?¢‡O?Hai>ÛÙ‡?fX?Ëê@?³¾O?[¡¸?`¹í?®A„?¯zj@ e@8b?^ç$>ujÞ>žD>æ»?Ÿ­N?’HÆ?[û?YçP?LK?S4J?4YÏ?#€ ?•ãh?Ç3 ?»›9?¤ 4?²Â|?Ú­Û?Ó8¦?’þ?“$*>°]þ>gûg>Ž!Ö>©s? C?Zh†?„Ôy?«^S?´Z?ß—i?ÚÈJ=õ¦r=kî?4§?Z*5?³ Ë?Ú5?Ú&s?Ý7_?²b¨>ÙþB?á?£u£?£o<>ˆÆ7>VÁù?$¤1?C;Ù?­‚û?çD?±n³?9´þ?Oò=?£??¦H¬?ô,û?î ?´ðô?¨â4?a²À?$ ? >Ù_?Bêr?áòD?àïv?¢â‡?¢á?‘Ûm?’¹?ŸŽ?¢¿1?Å0´?ë™?å#×?Ïi4?¾Á»?©÷? y5>ê,´>å*>Ó¬ü>Õ³ž?”ã_?Ø9©?ÂäÊ?¡òé?ŠÊ§>àò‹>åÝ??¼?(M@¸@É?›u?÷A?ª?Ö_7?¼>?aU§?R¸?1Â?;4N?l‘„?g->©s2?)Ñ~?Õ­ ?Åþk?ˆëg?Š# +?‹Qt?Œˆ±?Rq?,Ä?&©©?!6b? \>Ó¼Ø>Ï_>Úö=âÌè?Yr? ˆ\>{¶Ÿ=$(>µ®>Ñ©¼>æmr?Qu?O«ò?JR?D¤\>§$¸=2à>+æ>Ï á>μW?T?*P>4 =¿¤>Œð4>°@9?s~?æ >á†>Ê“ú>ö¸­?”?")Æ? × ? +¿¸>X©a>®á>έ?FN!?8,Ë>œ¸Ÿ>Ÿé>Z D=Óa™>¡ª>ÂfÇ>ÁýÌ?/æ?@wK>ç:TÐ;%B@> ·>·ç¸>·]>’ù>nÏS>bü>W:x>K}=ú]$>-¦H>7LÂ>@àz>JS¸>ƒCq>¬¡>«ã>„ê®=³Œâ=§G>£ûÉ>ÞDZ>Íý=¼nó;øÀ >kãC>žc >—j[=£7;Õ`>Gçì>–s>”µ´>‚:´Z=ð(=ã~8=òPÐ=üg”= hþ?£Ð™?È<?»'­?ª'=Õwc>óbp>úîÎ???>¢Î?€Ã.?2ú>ïâÙ>p???hÅ?][ã=tØ+;“Vö?/\ø?+.>Œï‘>bÛ{=iž>”Å>œô>¥ÙB>æ/Å?7À7?J’Ï?aâ™? 6f>[q>ø˜½>‚…>{¡Â>÷^>è;v>Ó”A?*‘?Zóå>²Äæ>›—«>ôpÄ>–<>4Z€?å·?Pç©?B¤6?B‘ÿ>µ9=ÞÞ¸?~'?¶??F>ðò”>ž›?ÅD?\Œ >‡iÏ>c4Û>›Áû=¹‹G?$¼í?q!¬?]Bà?bÊÀ?ìð>ðÔç?upÀ?ï?;˜r>ð– > Öt?—S»?áNi?'7Ñ=Ó¥>±·K>ð7x? [‘? )1>¦ >txˆ>ÜUÂ?“?;>Õ ?šg?@¥`?+k–?ÏV>l‘Œ< ®o?ÖZ?wów>æ Û>>šÊ? )§?TE+>—¯º>»+?ÿG?ëÂ?8zy>†âÄ>ØV?1²&?_>ð~²?:y>ýü1>ó%Š>ð­Í>+l@=¦@>Å&õ?”Ì?h»•?‰Ç? Þµ>’xq>Ó¦Z>ñ +? %ê?(ª{?AX??•'?M5?ZzH>w_ç="£;f;€ßÀ<Øå`;îÒ€>úà@?G×?•²ª?¦,¾?|ÂÂ?rç=:R?Z´O?{߸>¼Õ=ÁŠš?™ÑC?¦5Ž?í¦T?æÓ!=Óʸ?©’T?žÏÌ?rËË?r×~?rä?^±R>òÿ2>ôs>ãµE>àvÔ?¤>úu×?z¥>ö4w>UT>ˆR>üÚC>óÛ{>óžµ?$ýú?Zc?VLÍ?Yä@?8ð[?!Ð?6¬¸??Ï ?+v>ô²??R?˜n?Ƙõ?´d%?œç?7í ?²?›q?¶Î?°S8?ª0•>t +=Ó‹?-…n?I“å?a? ~˜?—6l?›1?z•L?_öŒ??vNŒ>?™ >»äÊ?²‹Ô?§“?uM‡?T®?ƒÈ?ai>õŠ¯?F‹?…%?"?(™·?>î“?@G»?s-¼?”x8?ZÄú?!m?×?)¾? ±?wW?Š§>ø +?ÏT=?î•?ßèE?ÒM:?ÝO?Š•Š?1 Ï?),?_#Á?nið?s¦“?R¾Î>=©ñ>¤É@?Œš|?ƒn)?`»~?Šg±?Â*‘?¦ôg?vº[?JÒ…?×O?ü;?$d?7™?4>ó¹‘>›g÷>q9X>io»?íq?åê8?ÎÝ?ЮÃ?väæ?2´û>¡yY>5P*>Ó‚X>ñÔ>÷;ò>ý‡è?¹C‹?±ñ>÷Q>÷U$>÷\?.Úa?ʺ?­ì¦?>|5?mP¥?²F?“s?M'?Eâ?;(X?C‡&?1ûÔ?C¦Ì?k§á@pÒ@9œä?®ø>÷«—@î@B¿‚?Ödð=wçl?'Á²?%DD?.½?Iùè?Æ‚?»^O>ݯ?\È?y˜Ø?‹ÄG?¸ÚY?¡/j?\v-?¬ç?÷øÀ?ÃXî?x4?˜?¯’ô?”NJ?|™Z?0^]?7±?»ãÏ?ø»?³9?›È ?ˆº>Ò Ó?—Pÿ?²B6?ì>R?øà?@˜>êÇù?ã ?Ùë?ÐùÂ?º ‘?«Sö?ƒ,­?:£*>±™?.qâ?•U‡?‘LX?ƒV?¸WË?ñÛF?¯q•?w›s?¥†?¿Qn?<¢>{ƒ?ž‹ð?ÉÖG?õ*õ?÷m3?“¿V?Œg?Ç×Ó?Ú‡?¸+’?­ûç?*7?)Þÿ?x!3?m‡Ó?®?—Ï? †ñ?y†>øg>øt>ø£?"M?(Œ?62²?„:?½v@—?Ã2É?‚¶?6ÝE>÷ôW>à6%>á°Ï>ø¬o>çHW>ŒÌÚ>@’–?xZ?¦¡ ?µûb?¹ÝÊ?Pú?"¶Þ?ŽÃÌ?¹š?—?yn¦@õQ@og;ªž;je=÷Š¸>Šd^? ñ? ^x?¹¤,?¾/?Ì\?¬ï´?/ô,?TR?ÙDs?™,˜>Œ¢q>ïø7?Jì•?€ H?Ÿæ?ç +ú@¹ ?Âì«?âº?o? Aö?‡:ƒ?¹:M@ªl@NÈ>Í ´>ö³Ì?Å?Ü‹>¾`§>° ¦>ž g>¡‘?¢vš?·ô ?™ +œ?Ž±ª?…¸;?ŠïÎ?'$ü?&˜@h[@‡?`0?RµÆ?uâ¦?€z?ªÂ¸?±Ÿ?¸D?¸9Í?¸{?¨·>?fF?(Ç4=*Ñl>:‰>Þ>a?u$ð?ˆºU?¤[D?¯tÅ?½Ö3?ŒÑ€?"{¨?f¡‡?˜ 1?•à ?œì–?FûH>5¹&?R?tLÏ?‚Xt?‰Q?t5À?\ûW?Å„³@ ¬?ã‡Ø?²£®?´eÍ?¶ ç?¶¨V?¶¢?µï/?³v@?dà~?òí?Œ¸?¶Bû@-º¼@ZœÐ?êÊ?r²-?Ÿ©?µæí?µÚX?µÇî?¥'@?š(-?¾&æ?Ôr”?½ò>?­Mÿ?‰º>?qµ?†¦Ç?Œ*?trß?X÷B?·5>ñ*¯?xl?¡ñò@>ü@%V4?£ÉÕ>ûò>òõº>ðp•>ðRM>ñ ?„U?°Û7?g$æ?,$?¾fg@´´?–èè??6¤?O¦ì?PD?Õý?ð‰ò?þ—,@ ND@ò¯@÷j@{>÷Îx?¹à?¢>þßë?/‹?­ºk?ªœ?kú„?e…m>ëÀ9>ðq/?¦ùz?¢Ô\>úGt>ë+?SÎ? Ôê?À¥?ÐÈ?uÔ?K I?–±Ç?¬~ÿ?°`X?¯‚°?˜€ ?ŒÄí?§(?iˆ×?®P]?éyÛ?Ã+¨?‰IJ?|•z?hËü?S&¡?1³ãÜ>À0ö?ÒP?Õ_?‚f$?t%y?õ— @¥?ïó?åxa?¿P†?¬âa?Š°À?fGþ?¬ð?ãtÌ?àtE?Û˜?̤‰?³Æ±?¿Ð(?åPÙ?Ì@>–Ég>°×Q?t¸?‚ž=>¨eÆ>•£³?JÚ«?d?>ÿ£>>¼„ê?£i?èÉR?ž½9?*ÑP?id?¡¡?…¾¢? ÄQ?%?båa?g’„?–å°?”pÐ?qf²?xcâ?<]?.ñ?H,E?D9Ð?€õ?¡8Î?r>ø+l?2ðC?¢M#?¢«?hÒv?jëŠ@ a @ ve?‚Œå?`Œ÷?fû}?m{”?2/ ? ?Q¾?‰ö?š ¸@‰?@Ý?x€õ?^X?˜Éã?—“2?–a«?•+½@ö,@!¦?Öj˜?œÁ0?š9Ä?›lx?¢';?¥™æ?Ià?#[†?" +>?¤”í?¦ƒt?KR?5?Ù²ð@ +‘¯?Ñ«Ô?Žœ?pð†?%ì?Dx¡?»@À?ÂZÕ@Ã@â??ÆM(?± '?•Kó?‚òd?Ë@¼?Ö„t?\†A?0q‰=\?§¶¼?ª{q?ÿ?¥9?:7,?MÀZ?2g¤?&@Š?^ø°?™8Í?Š2b?%Tz?)Í?”š?žS1?{%Ï?TO/>äC–>„q?OÈ?}‘÷?‡é ?Š,;?†¤?V».?R#?‚Ó`?„a?A3¯?1Ãþ?sßö?‘Üá?¸HA?êÙŠ?Øì_?–‰Ï?‘ä¿?„1§?ä[>CÎO=5v?K†á?‰Ÿ0?§¶·?Ðgm?çÑ|@ƒ´@‰ù?Ú`®?ÙßM?bü?ZN?_e?epv?ÐÑÈ@Í¢?°æ3>Ú" ?8E“?ÐIT?È–«?)©?$¸h?‹Êç?“Ê{?{Ãí?}Cû?P|?½†?<"U?ƒ°?’>}?îχ?ñÂF?bV?Œ®Â?+.>ùD‹>ð½‘>Ù„:?Y[?µq“?ªªr?“#?‘x¿?>.?@¸?‡½?™:?ˆƒ?vUì?8]?§Ž^?³T,?Ô!ý?Éc$?XX?X”‰=f«R?#˜"?_Á¥?(˜>û ?gFù?Ë÷?·.È?3?‹JŠ?\®?oËø>¥ÊÖ=ûÏì?E?雇?£ô½>ú&?"‡Ô?d²w?[­Ó?M¯m?XLæ>ºsí>=Ó?PëO?«Ô4?†Ç¥? ”?'<Ç?tà?ru?œŠÄ?Ÿ¨a?Ï?AÂ?O^]>í§}? ¾ñ?S¾¿?b’Á@ì@àÅ?²e ?û0?ºû?›©‘?q¯º>à]2>Õår=ÌyŸ=÷ ?`;#?yë“? ’K>Ï©É>Ï\‰>Ï>á´c?…p«?}%?rÆ?f¦ã?8FÉ?<}?0Œ?#þ?Õ?^? +õO>úE‚? »f?O$>È÷a>ÈI?DK?YÇ??÷=B ÷=¢î×??èÌ?D±"?Ž>Ú>Âýµ>ÂaŽ>ÃQt>¾Wá>´4„?èœ?|?pql>¸Å>•È›>ÏΣ? ³G?E…>±ú>¹€>‡ë>=>"Ö6>«)f>µp?>•;A;¥¥,=»XB=ô~V=Îjf><ªI>ý>†™Ä>‹$±> }>ñ¾Ã?d !?k>ìæ¦;rÆY6<98@>gz>‘ó³>ˆ =œ°t=X8=}U,=aÖT8e@=÷U{>9º>-ÑÑ=¾dv>(5(>k›ã>N=Ù?¯*q?Õ7`?“í?€À7Ö >ï¼*?‚v>ð‹»=lÀl<¼à@>™>Ý>ÂÀ?^?(}K=@G—;Sgb>þú³>þÝ>þ H>éï1>_)×>L’d>9êû=ú(h=2=Ýst>ˆi ?4­>¯d×= +l£>lÛ>ùô>÷j˜>ï€?lDª?«kÐ?$WÚ=¿N>6—˜>†®f=ôR<>Ÿx>ì >§¡i>“Ñ?ûX? xƒ>ßaØ>»´£>9·W=Œ‹y??dø?¡ŽY?¶p?C`(>òF>ßö>Î¥X?0Ï?€Ó>Õ‡>£:µ>[’‚>HpX>v3ë>n¹L?›»?@•1>îK]>–J>¤bR>¼9 >þ­u?ƒù>ëÐN>é>²ö>šZ>Ùã>¤>µµB>Á|;>«ø£>Ö‰Î>ðKü>Û?>åP>é7ð>Ì€Ñ>t•²>™Ô?M%µ?˜„Õ?Í=ü„?xì ?¶‡?´+H?²ÿm?KùC?>>*‚> …ž>;°>Þ¥>î•?_Ý­?–£?wL>‘ë>T»,> –›=!²–>¸Z±?ä?Iî¬?ps?¡OH?®×S>ͯM>ªs>>ðÜ+>¯?>¬‡Þ?%8?9Q`?3 d?,Ì–?Oµ?!ê~?’]?§wW?'éi>ñ_ó>ý_1>õM=°${>º3Ë>Òñ@=i•Ñ?€TÛ?Œhò?›C1?š”?—_·?”-“>xº>%§’>‰ÅØ>d)ù>ïû>ïñ§=‘ÿ =xyP?r‹T?m †>âYZ>ÞÄV?#±©?!AÕ>ˆ¸ð>¢Éq>¼ßÊ>Û¡>ób>ùb\?µ¼?]x+?È?³Zn?„Âh?Žoú?­’ ?žZÞ?sš}?ÈÂ=þ°>†Ñm?rT>Õv>Š­^? Æ7?D/Ì?>óÌ¥>ýã>ô3Z>ŽmY> ‘Ê?'ç?%½_@ù4@.µí?áÑ2?·më?1€6? #)>€3”>„6ê?/?.ƒr>úKæ>ôð¯?/’>?9Tü?uO?ƒ2³@}V@ñž?›Œ;?›•ï?uQ?t?s…?Vé>ú W?f¶’?Þ­%?ÃK!?›èÚ?A©->%r¡?6Fø?¤0N?šÎ=?œ£¡?ºµ±?Ͷ"?šs5?v;?gOù?ev?¡»'?¶Ãë?¸žñ?·uf?êF?öF1?`Y=?J½F?t¥û?vg9?* ¡?+Êì>jÆÊ>Þ¤@5+?ö >öœ_?*új?¹v?œ±Ð?Ñë?ˆ"Ø@ $?Üê>ýô?´[@$Ý8?­‹D=ç>:?ïp?vÿ?ƒ4*?ƒ³?z¿s?c6±?jY?w%+?¿ó>¾”X?‰?¹l¢?¨Óê?¯6=øô78r€@OÃ@,˜?ƒ¦ö?’s¶?ü·À?ÖT=>÷w?7—?ÔN?®›¥?X“?÷~>Ói>„Rì?vm[?èÃn?`Ï-:¥‰q>3¨?IY? Öµ>÷ÆÃ?eŽê?˜6g?d‡?Oü}?4.?1Þ¼?pòK?wá>á§F>ºÕ6?פ?„¢ù<(Ñ»=‡A]=­&>«ËÛ?¹îv?É´é?òûþ@2 @=î™@ý?ʬ?¨®?x_?ƒi]?’SÀ?¬rˆ?ºT?*kQ>4UÉ?½Vs@…W?dl`>ø,ø>Oû=³ªž>éí>û §=9ì=V½h?gæÀ?nÜ?ø;x?çh4>x©Ù>‰.J>(f9>ž¢?fC¥?€„Ë?œÿ?¦êƒ?º3 ?À±¢?ÑÚ™?Œÿ>] ">”T>¨Þþ?Rê?´Ÿ?LF?r%?xC?ˬ?ï>œ?‰n???(±?=Z?J1è?-›? üw?SŒ„?þ&ç>÷”Ô?•Uw?{Ú?+3,?8ø$?[ëG?d‡Ú?x2?x-`?x+Å?XtÂ>ø'B?!ÀÉ?s~L?Eë>ø +>³èž>D½$?ž?t@ ù?áZO?’3¶?HBL>øÌ>°>>pt2?Z¤f?•0)? (y>¦|Ä?Q%?wêL?¸x?Ä°ˆ?³úc?³âš@+ Ð@7ö’?þ%Ö?öä ??ûì>Üœí>ùY"?—v*?C ?‹ã?†=¼?Nwm?aÛ?‰ ÷W”?gG¦?¿¬@&Û+@t‡Q@',?¹^Ù?¹Z:?¹Ræ?¹Mù?¹F‰?^B?Æ?ú>Ôw!?¢¶Ç?Ã0Ó?|oâ?Td–?¬Æ‡?¶aä?6¸ò?ù­?˜b«?œó!?³Û?²`x?_–?˜õO?Sá¸?KnZ?0?“H> >á@Æœ@ä?„ÚÖ?ZÏH‹ Æ?¸Oº?¸FÍ?¸<„?¨ó˜?uˆ?jÙÛ?Gê5?zý?¸'æ?/c>™}€>Ç5Î? +W"?X?¨Ø¦?Ÿ?t3?…tR?¤¹á?‰PV?Fá?tK‘?‰ƒM?|fñ?t^Q?’Ð ?«“A?v³Æ?©?Hïô?sôÑ?sè ?sÔ?s½á?sÂ?.ÖÑ?N?QÍ’?€[?n¨Î?^Ë2?œ#½?¶Pe?šÀ ?›£"?^~¨?"÷Ã?DUÀ?Z]]?Ÿi?µÖ²?µÈ?µ·•?¤û?¢e?ño@‰n?Ž·]?%+?—­ÿ?µ4a?ÔùÇ?åò?€€{?îî?Aˆ?–Y>üy>ðåI?JÍy?p¶? ÇÐ>ðˆ">ðm >ðRä?¬•Ž?éOJ?¼Hm?Ÿá?›•x?Ÿxö?€Žo?Nß?/>ƒ?˜›?MèŒ?o$q?Ùé‘@Vz@…O?ê2?àÚY?Ò¢‘?§•¦?nT×?‚‡¼?— k?…1??AÞí?§}Ô@ ¯«?Îrì?*Ñ?4Œ?€^ß?Ž¦?±ÃÊ?¾tˆ?åÄ?ÍõÖ?j´À?VÌ­>ìW?äá?l4?€À ?ßͯ?Ó97?Lt?è^>ìr%>ëQ?Nw?OHi?¶˜Ü?ÀÏy?€÷º?jœ˜?“”µ?™™#?jJ4?X½í?g +º?içz?™á~?­ +æ?Ž^Ä?x¶}?§Ò:?Ò?¢Û?Aq?Cªä?F;É?HË8?K]F?ƒ÷?è;×?Ì>~>^Dz>eï5?Z~Ö?]³?¸Èf?µ±Î? +*>ç'Ï?˜æ>?­1Ÿ?­B?­Ä?‡O?fuM?´(?æ4›?Îhê?µZ?é2 @9«@óë?Ž‚?ŽÕ?uº,?k#"?e˜?dç÷?4~? +šç?Š,Ì?’_ ?² ?²G@}‘@)­­@­?í†\@{Í@V?ú÷C?–¥?[ê?c8?x>ß?ÓÛï?ÔŠ>¢#Ù>ˆ^"<À‹%?Ȥ7@·À?¬)€?aÝ;?[Ô»?ZXB?5Ç>áv%?zO‰@(ï@Î +?i;n?pÒ_?×Á ?×Ä?*C>>ý>}?9uO?MX?Åí>à"?Iê¨?¨]?µ8?¾ø»?¸–¯?§®þ?¦ü±?„¸?…¿´@¼Å@ N÷?±#§?^ðÞ?!/º>ÞÆ?dˆ?- 1?<¥µ?^oÎ?n0,?ºš ?¹hè?Aò^?0Þð?¬q÷?Îu(?Óšö?ÑÓt?¾qt?¦2„?Ê?)Š?0†Š?–º†?›b@É}@ +.ò@Lç‘@\÷h@ƒ?¥žL?+Y1<Šä >’N?O6q?M€7?g£Ÿ?mJ@'jª@%Ø?_ÔÊ?Š]>ï¸ð>Üá?T¶i?¤ø¦?„’¦>Ûܳ>ÇF>!Þ>+7[?}?…q—?©ï§?ªé¹?ƒ+?Xžz?=`L?6hñ?…û?æðþ?ãu?à»?܇ ?˜?ˆæë?3(;?"€?œÆO?âb¢?æëå?ë{¹?é÷t?Ì^?Î0®?#Ãÿ?ð[@ Øo@=é{?«¿Ð>Úœå?›ãì@˜å?ÓŸò>éÐÉ?Î?Ó>x?ÐçZ?h$I?Zb¹?æÊÉ@rÏ?È{p?Œ#?–èí?±Ë?¥ ‚?Z+Ì?c›s?êfç?èƒm?Š­?m\¡?hŽW?cÁœ?‰f’?£Šï?ü?cF¢?l?FŸ?Aài>ý‹G>á׎?Mï? —n?†4ñ?½¯Ÿ?–q4?+‹ð?/'?ËÆ? Xd?Jû’?N­˜?Âú2ª?Î5¢?É$.??=>ò;¸>âËÃ>ØwE? b?0÷ ?k^M?¢"h?˜åV?6æÍ?4Cç?6`?4!?|ž?™¬‘?ŒÌ?b“?‘d?Ô¹Q?¶S7>Öêy>ØEé??l*?C,!?VK`?™>[în?SU?¶h•?¬ &?E}?‘Ü°?kÕ>÷«0?@JV?[“?UL?T'³?SôJ?S¿½?Yu{?Ì,?žT™?prg?^/o?!G5>Ò'Å?4,Ð?¤ìv?—´?ÚV?%au>öÍË>ÐB@>Ï÷>Ï® >ÿK?sh?yÅe?Pž?[#ƒ??§C?"Ì·?%Lå?'Ë?*DF?,¸ß?//`>…²=³Ðm>“û2?\å?ô?…`´?‰Ù?V—>ÑŒÆ? –?FLo?Ae¨>ÍÔ®>Ä°7>Ä!>Ãz>Âþ>ÂbÜ>ÁÈ7>îýW? +´q?Æò>¿<>¿‹€?.Ú?=0X?MO;?I¶ñ?B»>ßa8>³æ?>–pÕ>·ïÇ>·#ç=Ì=<Œx>{ö>‡“Å>$>Wƒ°?(¡o?'‘æ>Ÿùm<,ÉÀ=H°X=‘¦>n †>mé¬>]ç=&ïW=>0>K¤>è>¤Ø¾>ˆ“q>u‹@=æot>’L6?„?$ª?·?¯¶™?߈?¸@˜?¨Ó&;@=À;‡l¹<î[Ð=³ô|=GéX? ±?J,!>‘ >D¾>$Š >5æFÿ d>ô¯o>†Þ'>Ÿ>Ã>ý:„>ê–ª>ª¢5>•œÅ=ûGE>ióÒ>úД?*í?zÛ?Fª<>ùhz?4x ?w“2?α=)ÿ$>·'>tC:? T¤?:§a?0‹¯?&g'>"#>¦:â>û-D?"Á\?@Š7>ˆ(r?"ìS?t6f>#«>’{,>ÝôQ> iŒ>ªÒ¬?yÆ?L‡–?dsm?4á>òYX>ò7ç>ò4>€«ë>9ÈÏ>à'>ýöj>ð5v>ñ{Æ>ñg4>ñQm?g6 ?‡ªÌ>¾==—“÷?e(?aß>Œæ>¤q>á¦>é™Ì>ð– >r«=Ê&>'ó?Dl?:è¸?5k]?%%?2§L?Dû¿>ór>±&~? P? ?JOš?hh³?Ç…?ðHt?$ =Á –?˜gœ?Ò?3?DEÖ>°)`>¤ª>—þê>Ðv>ðb³?ô?´Só?0_>à±>ýT +?y²>0ÑŸ?”?k‘?–>ôJÞ?P4?rÉ?‡É?Œê¾>ÁC±>þ>>…£>‰ò¥?°?8³è?¸?‰Þ>dá?+~¤?^Ô®? d¶>ñxÖ?\Œ?qb\>¤0>ÏQt>ñǧ>¼iF>¨cÂ?ƒÙ“?‘Ȉ?nMŒ?uó?š˜?žÅŸ?Ø>òFÔ?V|±?]g>òq >úÑ/?pZš?zYÖ?´N?°S7?¥@Ö?“H>òÞ|>çÌ +>BW>ÔŽ?Dçò?2‚r?.6‰>þ{>ÆÁÜ?¾Om?Á®?¯áÍ?‰G”>ñ‹>>—_6=?à?´9?$s?ƒP?U¦5?eÆê?kßJ?5&>â™>ïZ×>ÑÆT>§ni>¥ñ?ës?qÏ?ŽP?°Ðx?‡qè?sÆ?C?F?XÖ?c.ž=øp?»Ìø?Éý?LBÌ?ÍËZ?Þ*?unô?Y1P>õ®ð>ú’>õšB?/Ñ?’¹Z?“G”?XÞ?h ?âû?S\?›øJ?Žw(?uúä?¶Ñà?å 2?£ì?v $?>^?r:?Wù?vDZ>qõB=Ýà2?¥jµ?ÃÞ½?Êùþ?Áê«?|f)?u›P>Z¢æ>f„Ü>v5@Ö>@ ¼?î©??—V?°1×?¢ƒe?qÅë?Mþ>úª@>³û¨=?p|?Ò¬?¬È¦? ¨¶?_Ø?a4? d?®€’?¹`ª?š??–)®?†“?wFŽ?”Å—?¡øö?¯RÚ?´Q>0«È:r?¨?iD`?k•N?*¢å?G`?w‚î?†˜â?Þ.v?À"B>CLÕ>Á:?v ++?Geã>Iâò>mÝÎ>™€>²UÒ>÷½s?\®l?«Û ?fÑ0>óØC?̯Œ@(2?’Ùž>÷àÍ?̃î@Á\?YCV>÷î³>÷ñÉ>÷ö?6½Y?9ÿ-?>r´?EÙÁ? q?4Ž‹?ÊE+?¶9b=¥«_=ú™Ü>øÀ>ÅP7™mÄ>„M?~’à?eY¹?25+?_ž1?–ÞÇ?ˆßv?N]®?hP¼?x8i?Xÿ?8*h?´œÖ?ê×Ì?m¶7>øFR?äô@®?š´?E³³?$?aŒ?³=?¹Ž =¨@i;¨¸k?± ÷?­E ?—ô ?‘p³>ª´>º^3?³Ä?%&æ?z÷Þ?+Š?–mo? …O?ºHï?¢N+?xbk?¢ƒ?†3«?Ë_n@¡`?¨¹À>ø¯ ?ˆ³=?³•A? I?x_–?¯Ï©?Çå?U ? U$?½p>ø]Æ>øZâ>ø\­?5oK??’õ>–›8Ã>%&_>+4ª>º+¢>¯û?øœ?#a¶?y +?|çg?xG?Sìœ>øA–?v‹µ?ì-?¤—Í>ø8a?Ýa?8ß?°/@”4?Óô–? :À?ŒÔH?y +H?$·>øe?fN?¸?k$>…un?9öm?`C;?ÃÕ?Ûœ?~„?n˜Ù?¶‚v?¹ç^?ž?K?æ€?Ö¾?bå??WØ1?8X«?K5®?w¼U?‘_à?Ô=e?¯ð?=Ís?rc?¹¯¶?”?Qþ?‰*|?÷{ƒ?­rµ?z¤>ʽ>&ž?ܨ?wQÑ? ”M?ºþ0?¹w?¹cº?VóS? ç$?ÚéÞ@ +Œ6?kþƒ>öý ?Ì?öìw?ØÕ?Í5?ŒÔ&?ˆäð?Ú½?Ü}ˆ?×gm?Úrd?ÃYJ?ÆÙœ?_;ö?E®ì?•Wƒ?œ)?͉X?Ó¢c?Ë¢·?Ä«‰?³3c?¿’?ô±Ó?Þ>¡?uíl?sÔp?|Y?c”Ñ?@>?r‹ÿ?ßI?½d‰?u†?³‰q@ïm?ጱ?gÚ?x3›?Š~?f‹—?8 +Ô?…ù?¿&#?›ô$?V¼?òh>§™ +?ŸÝ:@ _È?ѯ”?‘ºq?ô•?Š5Ã?¥âû?»u;?™xx?y?Ã?t¢?së¢?s×´?sÇ ?½•s?ߎÙ?½¿‹?¬Uç?Š>_?sZ9?Krò??+K?i¾d?oá?ß?…W‘>ã±Ø>_ ?:âÎ?v£»?’{û?›øÈ?ušÔ?Rª°?æR0@£À?ºF>ñõ?»ô2?ï83?™…E?h‹^?½¦n?Ú˜á?çòh?ðH!?‡ñö?.¿ +@?ð@'Æ3?§³*?Ðþ?$R>ïyV?k +h?™=z?È2•?íç?î3S?äÝž?ªaÉ?‚yI?| ?nyx?3aj>ÙŽÜ?K±ä?£m‘?¾Ñë?á»ß?»?Ãa?Žæ–?«ñš?­Rö?®º ?ž?ló¬?Mr€>ì¹ä?+a¿?­qq?Œr =› >’Ý!?¸¿ü?²äî?V´9?N¼Ý>ë”Í>î^v?Ÿ÷œ?žÕû?‰¼?‰áÚ?™`8?˜ñÜ?«îv?¯éZ?žAÌ?”rî?wŒš?j ?±Ü’?Ñp? ãf?vÝ? g«?ÁùË?€)þ>é#>ÐÆ>²³ +>Úâ? +Â?j¯¨?øÒÚ?çÞÕ?®%˜?ŸˆM>ÜEH? ‹ø@-›Z@-³?õk>çXÊ?ŸÀr?­VW?. Ø?ä>i–=òœ?3yg?‡oÊ?µ¢6?Ùƒh?ê ‰@ ©?ð“G?Â`Þ?°œ?†â ?‹5?•Jl?GÜ?$«¢?'%?‹aQ?ä?Äð?Õ@@¤*@$„Å@¿@Ë@ V‹@Ê–?ÖÂÓ?ÍW?…Ps?ŒßK?LL?ŸÐ?Ÿ@‡?˜˜Ž?šê>#Q=¥'5?Ž_¼?©¶a?€ƒ†?aE+>¼5Æ?¼:?¨-ƒ?–çb?xŠ*?RC=§X¿>Z#8?á ò?àóc?Hy>à»×?ÎÚå?ðŠÓ?ÿ{â@›?œ‘~?\?k`ë?¼E×?°x?†{¿?}ƒ¼>Ç B>Ð-Š?¼ œ?ÃÌÿ?2‰?_%Ã?W:?KI?FiX?A¾Æ?U€E?™°?’‚?Þz^?Ûû?¦ÁN?¦­K>jî=£í•?i»M?ž~"?£¨@?¦Y¸?Ô +Û@ +„»?Ñó'=2›>MÖ@ +Wœ@ +N7?á<¬?߀ô@ @Ië?Šlw>Èp?AM?ž2?[½?\¥O?kË?Ôþ?ÙsÉ?Wþ›?=Êk>ÿzC>ÜBš?o]S?¥Z?”ôý?qÅs?‚7?™=Ž?ŒÝ·?[Øþ?[Ñ4?¹5’?ÇÞ??w°å?A¦™?)Tý>ô??…Œ¾@ ‹t@?X?ú]n@Ù@ š~@ ÝØ?+ÕÈ>Ÿ²º>»xô>Û!5>Íe°>Å›µ? +$Y?Zúb?‰´f@"¿ @$@@ + í@Çñ?æÞ¨?Ø ?Ù7?Ýê?ÃI?˜é&?‚Þ6?ŒÆ?=N~?ò‰†?îý›?¿£c?¿T=?­ÿÀ?£Íb?³h?Hô?u¹Ó?ZPÇ?‡[ @hÄ@é‚?¦Õ`?£¡?£›°?£˜?ÅHi?ÚÝ?’xr>Ú­?$ëÉ?£x?¡b?“Ä»?”ö¶?Šîå?„Ûá?dZ?Y¶~?ÑC>)?6>òÉ +?•r?‰0->ÙÊ>Þ[?ŸöŠ?£E?¢ý¡?¢þÃ?Ò£?Y1D?S¥s?Fi™?ø +>eéž>“ç>Ù‘>ØÊ ?¥È?°#Ñ?jÔ?8nÒ?zö?¢Lç?vLþ>©X>ØUu?XA?Wûö?Wå´?WÍ“?“ë +?¨0Š?­°ç?¸ñœ?”:˜>×1e>ç/|?7nI?9Üz?"†Ð?'‘Õ¾*>ÿSˆ?Ÿ?ŸéÜ?Îýõ?Ôî‡?Ø,?T’?€À'?›`?tˆ&>|M>D'>÷ûš>ýZs>âD>Òªç?2•?Io?'Í•>ÀÊ>=F&?&4×?#C^>æ¸b>ÐMË?D£?6™>â‘ë>pc<>‹û6>é?òÿ>ýÄ«>÷¨>ëâô>ËÍ{>Ëfk?pùq?”O?71¯Wé<ÅËP>ÛN?ŒŸ?„„¥=Ë¿ú=ˆÔ=ŸÖ=µ;È>!ÓÒ>Âo7>ÁÒŒ>:T>qá?h?°yö?«]¬??›}?B'?)02>Ü“>æ†s>šÉÀ>{%>U=77‹<+·¸;Ÿi8<¨" =@îÀ=ŠÑ`;–)ð>è—>ÿäæ>ó†W>"¦=Ó›‚=æó=-=èò >»½å>Ä >Ã>=Â=ŽL<Ò7Õ>ïº>ó7ø?Éó? –ö=æ%?Œp>ª,Q>Q¸>„ü>¬±v>­°\>¤jÍ>›$Ü<¤üx;Ví>Ú‘>zý=–! +>ýD¡>ǸC=ÏÙ>È7»>ÑkÆ>Ú¦?'o¾?€Mø?G†>ùvŽ>üA?d€>ö—o>Ö¸>ÌŸ!>ÂÀ?+Ý?ò&>ë2Ì>¹s +>ƒ?@)[?–ò¢?YKƒ?(ˆº>^ˆ‚>ú\O?B%>{Rl=?8§<ÿFe:«ô¯>­\;>òöO>g1!>) >Êõ0>òm³>sW>*ã´>ìY?¾=>ò ‰?9?!üB?%þû>Ïz>­IÏ?b—Ñ?’­T?ØÛ>ÙùÑ> (;U™>¬»–>醗>¬œ=põ0=¦B$=Ôß>ú>¤#?.? [E?P8F?p{?Uÿm?Z³g>ûp1>©DÞ>‡6o>>#?ˆÚ¾?º7:?H6‹>ñÖA>ðë®?Uƒ?CÒ’?PM€>øç[>à}p?6®ô?HF#?N>ðo>?"åt?0á?†[?ž˜@?nø­?Q=?Wf?]–>‚‚„9Xp<‚ÙP= p=€Ã=²œ?O +^?‰áÞ?wû@?[‚¥>³™Œ>o©»??}¡?X»©>™Ùæ> ؃>Pš»>6Žê>ÑÉÌ>ñv>ì$>ñ|Ô?^Ç ?q¨E>ûÕe>Ê{"?I4£?QkT>^¬>5Ú?b â?r+?T>ò&#?m™§?rAª>¸ðÔ>€O>òjã>ñ½>è«_>ã±L;‘u8=I}§>O>c;I>˜ši>Æ-3>òòŽ>Øù>Mñz>£¬W?Aœ]?D^¢?5¥>õÛØ=ZKµ>sH>µø?i×[?ól;!@>Búñ>Úfè?Ѿ?-‹ä?ÃB>›¦?@5ç?”È?ˆ½–?c­b?GJ•?Huï?(;>õÝ ?Uq?ƒÁ?šÍ?yð?–Q>öQª=üË=QÂü?“#—?ªˆ->ú ?œe?¯é?:Þ»?@"?æ×9?äf>>•hJ>Í'h?Ý?Áõã=³;>k¯­?u†ç?Vh>õ7>õ¥þ>õ²?&>?uÇO?Tši?(mœ?N„Œ?uìÄ?¥†>Ÿ>óEÞ?)†?‰ŸŽ?«Ùg?ŒÂI?v9,?Î|ï?õ§1>íÅ=|<]@ð?Ìw?8}+?g_Ø?}Ç'?x'h?r7œ>r.ý>@F?n¸ù?I=:?Zò?$ÿ+?`£l?c›o?cúœ?LQî>öõ%>¢rÛ<ô ? ¼å?šÓÂ?6‘+>ƒé–?ˆê¨?à\œ?Ý>O?Úä?ÄeP?¹t“>åZl?8Ýh?wa?%ò? Â?`$M?tžæ?ëó>ôAå?t:?‚Õ6@ ¯¿@™?+'?4sî?’,¸?|{>…¸T? )Ø?«&º?€ƒ!>÷Æ?*­?Y›Ë?3ýK>÷ØÍ?e?ʘ>emË9Þ<?h½±?Ä%>?2ä?aÃK?—'`?¯S|>á:¤>8­‘?h¯ ?ì{?w?;?x“?l>÷B>² >c‡?ß—_?ÓûÐ?"‹Ü? [>õhÛ>ø6a>òÛî>¯¢[=åH? Í,? I§?Òî‹@ aÕ?õ”“?Ôjb?¡n?xR¼?Œí?–NB?ÀlÓ?䦤?Œ[2?7K ?¬¨é?Óà @$>Ð@5C@JU@As?Œ ¯?€>å@€>Õ'?-l?5¢Ñ?´1?7Õª?‹ÑÝ?yײ?5ºó?KR´?‚’?€8N?n?{Ý?©VÏ?—½À?xxN?³Î?§¯T?&˜_>&Ó>.Ái>C²‡>X—²>ív9>øq>ønÅ?Bœ?šv¬?†°á?a´ç?e¼V?ºNY?± H?‚âØ?ŒQ?·À?¨ó?xZÅ?Ob">øV™? ÛS?6Ûl?zç¯?œ®?Šˆá?xJz?“ïq?­{5?Ž!e?r|•?‘.?ž•‡?]}?)yÃ?Be°?Ct­?:%ž?D +…?}š? z„=ÔaÃ<Ü%)<ù¨è@ð@qÛ?nu7?lf?ŽÜÏ?Š÷^?/v?˜‘>÷Ù?ÒÏ?wÍ£?˜Ÿè?ñÉs?È2Ž?<ø?’#m?ëVÃ?ÃÈî?‘+[?¨±ˆ?ÈHæ?štŸ?Jp=?n [?‚…þ?€Gž?|?Æ?÷P?öš?ôhi?Ä?T?ªù[?œ2V?ž5?Ä:?Çs6?‚‰ ?t}G?>Šæ?CzÓ>‘æ+>el¹@Ï.@ Ó`?Š T?ˆ +¦?’R÷?ô×?ëõ?éŽv?ƒ\?ZÈ>ÎZ?)ÑÖ@@më?v2‹?‡*˜?¸’ø?ï€ @P‚È@<Üa@¡ ?Ùâ‚>õË`?pFE?õ³t?»~.?ü?p¨T?¾H"?¡¢ö?dH|?<º?·*8?á°?u#_?DÈV?µ^?r$ª?¤,?'ß?f#?Ï]w?×» ?ä.À?ù°ë@ßi?õ%I?òǨ@ ©@7Ü@–Û?ííÛ?x‘§?F?h3?Žmr?P®1?1Iî?¯Æ2?Їç?¡Øt?Œvì?eP’?[ž×?£¥,?¶:h>À£>´=Ô>ò¤X?Ž„?¥¾´?‘À?% ?™¡ ?—Ñ«?ž²>ÂG>?g=‰\¦?¸þ¦?ñ¦6?“™P?m±Ñ?¥Î`?´õ’?´Ù?²‹Ü@qg@^Ü?}Ì>?¶¸?æÊa@ä?ÛÎÆ?Âd¸?H[õ>ð)ý?ߘV@¯ ?c³\><çY?<È–?|j'?lÌ/?o?°-…?Î@?ûdn@ŸN?Ñ1?ŽJ®?‰5?ˆÞA?§\?ÁHl?›K?n$×?œÖÇ?Ã^e?·'¬?¬ÕX?—1,?m„:?mc?mJf?m-_?m?HŽ†>ìØ ?uh?wÝ¥?YdE>ÊaW>þ@?wŽ?‡Ðg?¢¾Æ?Ÿ÷ +?Ž°??‘=o?þ¨À?ûpf?¾e8?» ,?°!’?°1€?°S?°?²"È?µßŸ?«Ì³?¤'Q?«,ð?¯º?¼é?Å»ü?Òc?Ú>ó?œ©‚?@Š>Ù½=ð >±?Lì?³ÞØ@)ëH@³ ?¬g²?Õ>e€4@òs@ð@CÃÕ@?ð@yÂ@ +]·?®öÃ?›Áò?Ûa™?çïº?òXö?ö¡Ç?ž1H?U‚ô?—ZX?¿~?ÐXÒ?åÝ?Áø?e¥t?oýú?b?ŒSP?dS¦?_Èo?ŒV)?‹Ó?V?ãÓ>éÉ;?b¼x?b²-?¤×Q?©ÛÍ?!+È>âUá?â¹?£‘¦?ˆs¬?j?³5¬@òë?âb¬?Ù¤?Lå?´Uø?²òB>ãMÌ>àí?åx?,rA?¿e.?ãã?¿†k?ž´Ï?Ÿã[?¨$?•’Å?_ø?Aºâ>YU>‹«z?ÙWÛ?Öö­?qàB?_V>?tWY?WÚ?¥%,?·ðê?¶¶n?µ€…?·ë'?Æ€î?š ?g?ƒÀ>æ>ø>ÞEy?B×ê?V?Æe?£r?ÞÜv@ +Ÿo@ +•ç@ +Š*@Ó’?Þ­?Û~©?k^3?o£œ?}¬­?ƒ#h?a¶“?JÐ +?¹NQ?ýbz?£Ã3>ZŽµ>Él?|‘š?yÖ±?Çr?ïÍ?2°’?14ú?©·?¥:Š?Ƭ%?Þó‚?äOè?øƒ;?êËç?ž?˜”•?/æ0?2'*?Jåy?9€8?”Šç?µÛ?³Ñ ?²¨J?Žú?P?ד?€\X?|Hz?׺Ð?ÛT½?8Ôš>é]¹>Eöœ<™Ôº>ÂÛÓ?[K?[Ê?[ r?qq?Ü–™?ݾ*?­ /?©E`?ªkG?«“D@µ“@+ßÚ?÷Ðí?Bx†?P?˜Å)?šë%?2ÅÄ?5aÒ?™ÖŒ?£æª?–t?‹?‹â?Š®h?ž˜Ü?ÚÚˆ?Ô<Ä?‹ ?ŒAm?CúÉ?I7ç?‘˜‡?¢gÖ?‡ÈV?N }?v,î?£‘@?šõ)?p‘8?qŽo?Çß÷?ÊÄD?kzß?OžÃ?‹ç?ž!?&VÐ;·Ý>~Ä>Ù¤e?æ?£,Q?¢ì>;=Ç>Çžè>óü?2ûK?Y=Ç?ˆûÂ?ªJP?‹1Ü>Ù[>çŠ?²å?´´?6y? Ä?^¨ ?ƒ~»?JÕ®>â¹?îP?XJ?X2K?X¦?X?~I ?~|?0@8? Å? +*?Wh>÷~*>×;Ë>Í•¡>H =ã–Å?¶äu?ÍËÙ?R`>ä«>Ù3>Ö÷? K?UÈ$?Fæ÷=]öf=ÄÅ,?ˆé?™ì ?}šü?ežJ?SX§?'>ñ?$µ?7ض?4êó‡†>Ò®ò>¬£´>h @>’m?jã?ëW>wû{>s? +ýN?*`G? º>€¡‡>„®D>žaO>‹¯?ÓE?*æ?:ˆi?A[¹?"ì!>À&>Îø²?Hô?KfL?JýÎ?J•t?$&>Ú‘>>ðÞõ?6]s?.ßš?CÇ?Y¸Á?Oæk?U?rÃ>š >ƒû+>œm>ä>ïx?!ø?K±?V—”?—\é?ƒ¥—>cë3>n—õ>BE×=í—Ð=oÜ8ÆP=‰YŸ=nÞ)<Ýûå= p>ªYZ>³¯>N»Ý;Cß>DÊ >aê>I3‚:ÁóP=óº>F¿=ä›ê<Ð=ºŠD>q²P>yú>4us<… @,‚†@Y<4?Æ^À?®Û:~¯vK?m™>û=/>|kS>¶>Wºô>Âì>¯à8>®ç‹> €<É™ê=Ÿï?=+Ì~? +ô{?»0t?Yö©ä,?kÙ·?fŸò?ah >î?ß>òÜ>ªí">÷r>½¬~>-ƒ=Î2X?%4\?†T?c8P?Mº>ã½5>gÝÅ=}ˆ?+Œ±?sªÈ?§x>æ t>KI=ŠÉÌ>šÅ>º&>á›;>òƒÏ>°:^>Ž¥Ö>ÇÉÁ>òÿ€?W?z?G?%¥ß>‰‹e=ÖT<=©O =xWÔ=ј<†L¬>±½Û>ïÞŸ>ï%¾>ðð¶>×Võ>é +=Ë]]>®žá>ð¯7?OF?pžà?p“—?pÝ>‡àT>Žz§>¦æÈ?0~ÿ?`zL?Å{5?ì_Ù?šèÄ?o°j?ë`>ðqë>uqÍ>?ê'=„®v?û%ý@(??ÍWÒ?–3?‘¹?$?_Ü?MC>øÈé>Â4Ú? z?&Í>‡y>c >¬q‹?vrx?”c±?>Ñ_×?‡(¶?¡™?î>»ù?W§ˆ?qs€?T >í±ª=‘X <&ª`=‡ëÖ=õ!@>ß>ñÖâ>”Wû>£¦;>—¡>†„Ç?g1è?r#N>ûlP>ò;É?pYò?pŽm9·»ÈßÍŽ>ß8};¹=JlE>®çÕ>•,“><>`•>uø«>ÎÝ?roØ?(?f> ÝF>2ý">†Ö>ék’?|ì©? nk>;°->ãYk?ßv?^‘¿?-OJ>óûh>Ê@_>•q>ýšÁ?6¾Æ?…®H?«Âè?oTŠ?r ?§´ ?ÞS¥?µi?©ÙÝ?³¥«?·‚¿>¨—#= ˜Z?„e‡?—@j@¯`?‡(l?_¶ø?º?¸3‰?Æþ?·ÏŠ?Îm²?¹ž`?X‹ž?_!+?e²P?nͳ?xEŒ?u—?u U?rËý?fÐ&?`RV?YÙ,?Os>£õ‹>Óý>õôk>õðV?j>¼ÜÑ>+þÎ=ö?(äæ?ƒ«?lü ?nZ?v;Ä?xc;?þ˜š@ u{>«3«=è„€>6?….?„÷z?v7“?s¡Æ?/”=?IÎ!?ùm4?êˆí?\@]?\8 ?3Â>óPh<ì.X> ÔÖ>÷Æ?" N?W:@?ib?‰èV?9éÚ>¤­š?6-?Ž¬p?«)Ð?¾-«?Šåo?mÀ‘?Qî??w}ç?wƒ?w‡·? pÏ>÷˜ë>÷©Õ>øß±?w\Õ?vMð?„R?Z?O7?6M>ÓS?.?q|'?œS @¡Ë?Äÿ7>÷á½??(N ?*? †?~/á?¹áñ?•R×?k·;?ÂáÀ?îôT?x?E?‘üt?¤üÿ?¸h,?®Ðó?EÀi?F'Ô?«ÃS?ªFÈ>­ÆÁ>½hŒ?5 ?.ËV?gé?ˆ¡l?ðÔ%?ÂÊ“:Žn@>ˆì&?mÊÕ?”¸?Ìè?¬R`?w?½>4?þ<Ë?ÃkQ?ú¤?q­C?@wÓ?˜ž ?ºTe?Ì ?_À…?š- ?¯n~>±ªõ=(ñÁ?™?¹ùë?‚Ò·?‚˜%=ùÝ>U>ø¥h?ú?Xu6?„°¶@ÂW@ª?—Zû?„x">øD?yˆ?\«º?&®u>•>Ë?%d?‰…?‹sM?‹óe?üw<>ˆ>ô>øgü>ü ?:>å2Ö? ]?Pöå?Zcß?°QŒ?»“>öd´>’)L?»Þ>ú„Z?htš?eC-?„²?…s@"cÌ@#Áæ?Þ÷?Û¹?²G‚?³È?´_Y?˜yý>øwñ?q-:?ñ^?¬å‚>øl ?Q:?ŸXž?ÿÍá@4gò@ çå?É…t?›D?xX_?Þm?”&?“h?”?e3?R+:?›W?«ø˜>ñÄf>a –?]" ?x+s? +N >ø÷¦?ñŸü?ñ1Ž?‡ /?8j?x +î?aÀ->Qv>>,J>÷÷>÷ð´>÷ìê??g,?ÁÔ?²’z?›‡?h.T>½Û?T-É?àÞ»?¨œ1?*Ý?3`Ð?D¿¬>ïŸG>8å?cyœ?¼Ø7?¹'?¹—“?ál?÷bÙ?©HJ?ˆ‹µ?¬ä,?¹qØ?ùãò@Äö?±Š?¢Ï?a¾?Gˆ¶?ø?Þ—?8°"?0»9?îÇ ?özµ>¡c>³çq?¹ñ?´Éß?S®­?Kbj?v‰Ø?\{V>›*>¨ý?¸ÃÌ?¬q?vE?¥ƒ}@žJ?ô45?FZ3?¨‹Ò@»?ó +?YT?wäH?Ÿ[Ä?«¥?³$±?˜~?u’ƒ??å«>õs?,Ó?>Yä?[)2?u8¥?fÂ%?E¾ó?|•{?šc[?ÀD=Âa³?¤?Í@ ic?³ä\?b L@&0@SD?è_±?tc»?¥iô?Àv?fZ.?!°…?Q¤?_nK>ƃ>]Îw?¶Ä?ê¿œ@ƒ@!œd@Xœ@©F?Ž4/?;Á?‰I?™=?q©?M>$?x@t?~SC?Ø4?ò’º?˜÷v?s&m?·<=?Îк>¯\>ê›…?  ?ÈÈÅ?înÆ?CÚï>ñ\?X5¼?tAÜ?¨Ži?´æ¢? > +˜>åäP>ðÛ£?«§3?Ñy>?›ED?‰ò‘?!Yâ>ðDÚ?ˆfL?¨.â?v-÷?Dƒì?[hÊ?q<ð?m«_?ahŸ?¤?’0ó?œŒ?Ÿ+s?ß(õ@>æ?ÖË«?³!?Õ?î{o?£;|?N½ö?ÉÚÜ@ZÖ?Í¿õ?fkï?l;¹?m¥;?m†k?mk ?mN@?m6•?š¥À?Ùê?·íˆ?lÄ?f÷Ü?T>ä?€¥Ø?ÎGÌ?Æ*Õ?±'?¥„-?HÀù?rv´@Ih@?Êâ?ÌÝ?“Zº?”b?wªë?zjÜ?C6?=K%?Ò¼ÿ?ê`÷?®Þ8?žR?©2?iéw?£k?ºäÑ?ÉQÅ?מ›?„Ð>Ð_0>|üê<áSý?2V¼?èÀt?Å0î?h…4?M“t>å,?”?|t*?|æ(?<W?M)?ïÃ??ñ\9?ˆ©©?€¾?—Ây? …?Ãvo?Ð;ê?ÕŒ?Ï¥A?â:í?òŽð?Ê¡?¥St?¬“?®ƒ?£_?Ž +]?‡µî?u(?‡™?Ø:Š?ÔÑ›?„H‘?†³î>¾>6?ñ±?ñÏ?>`?ü?Ð?6@¬?D½Õ?c©B?™è]?çá?¾²õ>ÞR±>ú‘–?bü@?c_%?©ˆ?ª ?mÐ&?[šé?š +¢?©±8?¥`X?¡W^?–î?‹î?Þäµ@+›W@hN?é»?‡ÃÌ?¬n?¨äe?¶"h?¯«Ô?¦M"?¨‹B?¹++?Â"Û?’è?`c…?•Ù8?½-?©â?{ôû?Š¨ó@`+@uÉ?eº?_…¤?N>ßXµ?Ž0?¸´?ÝœÞ?ôÏ?ÁSô?o68?l×É?jo?^îà>û >ñÃÚ>èr›>ßìÐ>Þ4ý>Þ&?y¨Z?§˜ˆ?Ö­?nå?¹ È@!$·@èw?μ¦?Ìg?Ê +Ï?ǯ´?2ß?Ö™?@€²?i°Ž?t³´?aoÜ?p©Ÿ?‘³S?×Ç?r3ü?l +?Z½Ø?\• ?W«?]ð'?î‹@)i?àHO?˜ˆû?±×È?Ü)?Ï"©?YÀ„?Q”?¼ër?Êy-?Ðü€?Ï©ì?ÉŠÈ?È æ?|½?L˜ñ?ƒNâ?Ñ+Ó?ÒT ?Ïö+?Ô’‚?kˆû?[g—?[]N?[SA?Œ³ô?£Q{?¢"B? ï¶?–]K?rL?{lâ?¤j\?¤F:?{`Ï?rJ?›Wê?³}”?ªfá?“Ç%?…È"?ZÊ©?>¯Ó>(Ï>4w]?DNU?PQ?û?ˆ\'?q6u?cÙ?•eB?º©u?¥GÀ?Zx1?[Õ•?uŽ?º³?@˜E?BÕ6?™‘?ªñÜ?žË›?é£?™ÑK?£Õ?˜°Ž?Q3·?QëÀ>ÖRõ>×Ù>Ùød>Ùê(?wy¸?£!-? ¥‹?ž¥Æ?Ó]?£H?â ?<-ž?7³?BúÜ?C4F?Q¯?Yf1?§ÌÈ?ÙN>?¬“ö?3§Û?;²#?ä$?ƒ!µ?.?&Š?LŸ?XÌŸ?7ñm?) `?+—è?.*z?G4ê?}d_?yb¸?’Æ?“†-?4Êï?(bd?<Â?ENÑ?r;>×€Œ?”(?f‘?^¸T?Rc?V¢?š<¯? ÿ†?z ‹?TkÐ?S©K?Vl?R?<ß?, ó>U˜B>|¢Ü?A€?TýÏ?$=j? +SN? ø2?I?+Ëú?‰^Z?‡¹Ò?*É·?ìç?ñÔ?ùË>Ñ°G>y]>¤s>_>Åa>†»ß>˜?<¼?9­k?h÷l?“]?{‡F7¿Ü>µ-Æ>Î1>(ó>oÆÚ?L h?IM>Ýå­>Ûºë>ÔzÅ>Ê ƒ?&GÑ?…u?…˜¸>VjÓ>`˹?ý?Gdo?êE>ˆ¡>,µÇ>Á·Ò>Äϸ? /Î?Lm ?MBD>ÇQa>Áïµ>gˆ)=ë6×=áç¶> ->•í¾=´¼_=Á#9>»û9>»>¼=ÂóI;“T <¦¹P=zZ>œGŸ>˜™>$c>@^°>Žns>‚ˆF>]Û¬>¢ö_>¡??=þèk;îb=EÌi=ó<Ú[ª6º4¬?c%´?‰¸ï=‚Þ™; c=ò>1b=±z„>_ãy>¾Æ>ê-Ì?T=õšÒ>Âþ>ô²1>…à>cS=`§O?'¯?øï> +”>û·~>­± <8i>¾Át?zœg?D`ã>ç&>“ׇ>‚h>Ãê?Ó>í³=Ìn>CÖÊ>Wû;>l,Ñ>p*ä>WI>Áï >õ²Y>õw†>õAÃ?;Œ€?^pû>‰{6=D³<ƒÈ>¯ˆŸ>ùQŽ>÷’>óka><º?aÒ??“°>ͱÈ>7ÏS>Ï—>òYl=ï?'#H?lÖ0>t'>¶}_>ñ‡>Ý\q>àøi>ï>ñD>ñ0æ>ñ#Ñ?Œ€®?¢'®?qO½?RÑÉ>Rœ«?E)?~¨?qç¨?p²s?Lcu?Dî¾>UHÀ?uü“?ª_–?*¤Á>àL?Nó?p…|?p”m?p„å?eêû?\¦J>ýæ^>°¯>¤™Ö>˜‚)?DÁ?à¦Ü?ñ¥?ð˜ ?’Nâ?qÊŽ?æq>ð¬­>wXZ=òMS?€Ry?°b©>²¶Ç>˜ý>¼I?¯??#\à?Þ”? +\Ú?'ùk?8Š‡?>ÛŽ?E1ø?,íÆ?2oB>åœ +>–Š.?J?kck>Ž:ð?J&Ž?[Åš?•gj?‘Ä£?rœ>ñê?”å?OÓ?u>ò¼?m¥j?r75>§Ã8>±˜ã?W—¥?Xnž=\ëS<óòl<'ºD=Jc>뀲>ÇÕ:<»!Þ>*1µ>TlA>ƒöê>qè‘>‰A_?C:H@?é3_?/š*?hI?½šG?¸…f?¶ ?ŸÍË?lV¾?ˆºæ?¦£?_ ?söe?9^>ô¸>©°>>`n†? ·«*Ó©±K?7ŠÃ?-÷>¾+r?Ém?@Cs>óyï>É&?o܉?°!>Ù˜Ð>¿?B?¢?¯K¢?Κ]?ê ?Ýàð?ÍЇ?½Åž?hÑ?t°u?vÍ÷?vÕV?vßh?vå·?víé?`>öý¬?kA@4Ú@Ï@ +\@í?­Ó$?«lõ?­NE?d? ‹=?9]b?EÌú??ƒç?9=ë?‘ÞÙ?¬´z??¡L>Ú«?‹+§?­¯¬?~_?l"º?všO?w¡Á?´)?´tÐ?oÙ?_Žž>?R(>fŒ6>"«>àa?wÕ>?}v´?| V?{€? Ž´?£ W?¦³Œ?ŒÑ™?0ª¦?wfª?²íP?²žÿ?¶Ùc?'H“<ÎrÐ?¸4Í@x¤?œ)g?JŸ°?õŠ>ø2m?Óë?•0Ó?ª©À?º9-?YÙ>Ȫq?Ù´e?äP¸?"o?Nö?Ä‘I?²f? î8?S>øcÎ?˸?júF?FWÒ?”©?Æx>ïÄD?9ÿJ?xz·?«úÁ?Ýõò?‰ >îÇH?U8?†…Â?—²?§ú?Ë¿õ?ß?v¡?jc¤?¶>þd>ø–>üó¸?¯g8?´eß;€?$“?L·§?Öx?Þÿ5?ºÜ5?¤á?c{?_f?ÎÐ[? yX?=^?„Ts?±?Ì"Ò?ìj¬?‘>øª&?­D¸?ïø7?ÂïY?ªq?ÁC`?Â|L?­K?§§ç?È**?Ò¨?`Œ™?=ù²?s¶ð?xžÛ?]Ì?wí?äÇ)?Ö¬y>½ô]>ò™´?x–?{ ?€±Ê?\þl>øþ>øj>ø‹÷?„?ø…{?×VÚ?¢e?•æ?f?ÍiÄ@ sW@¤l@ »;?Ín€?šKT?³Z?Ƭ?ïƒð?÷)?mt?ý;?PmÌ?c)a?¢0È?®²à?v?t\3?x9?wf@?,/?‹_î?é†â?äË ?à@?Én¹?58Ô?T’?·çƒ?§Áx?…õ±?¥A?¹>?¨=ƒ?wãÕ?C> û2>±W¯?2“å?ˆóð?¯ë9?ÝôF?Åôn?±Š²?ÙÂ'?÷4Æ?Çå?«^?•äà?¿:m?QO?¿ê?麡@ /,@Ö@ýô?µ'?¢YÕ>ý¢×>Ú²Æ?í–[?ô)«?„¹Ö?…”?ÆÁÖ?Ç©>l¤>L ?š^×?¦ƒ?ëƒ)?ßfÒ?‚T ?‰â‹?¸á@?¸à ?¸Ð:?¸­[?·A?©£?Œ…Ç?qÇã>ö"X?|«@ð´?Óàû?uíà?‹(b?¢–.?¤ é?®S9?ƺÍ?Ú™?·;x?í±?‹ã?…5K?K¸_?$ô?§K?ñ‚t?ÞCS?ÏÎ?uÜT>ôí8?=®0?k$I>϶{=-~†> o¸>ô”Ù>úÕÎ>ÿ³8?¹Ýg?íÈ?•UÔ?_Ђ?&}m?œ=>Ö?u>®1å?cšó?ø?Œ2J?“}@æÖ@6“˜?x«>ý5ò?°¥¿?Æv›?®ï×?° ®?Æyr?Í”n?ÐúR?Ô\¦?þŠg@Þ?2‰*>ÑEG=ê¤=r™?¡ƒæ?»b?ƒ“û?qÖó?qM,?nF'?p‰j?qzK?|_Ÿ?€òÜ?¼p?ÂÉl? ·?— $?Ðô1?ÞªØ?Z†ý?"Ýd?µË%?ʇƒ?^Y?/f–?µÅ?Ñ0?Ee0>ïÌ?:*Î?^O?ó>ì„é?^ëå÷?mß?ß{}@)öÖ?Ûù?À?<Ïê?Š|f?–H‚?¤Êö?•[?lª–?Šòç?ÃùO?¥—á?0?K´&?èQl?Û¤?Çat?Ç +Þ?“¼ü?’Úd?7-4?:–K?ÝñQ?Ó¬í?+ÚG?x&?·L×?Êú?ž1È?"?NŠ?Š]?Å\$?áÔC?j!?i˜B>Òÿb<¤T>r–¯>é—?…`3?èå ?è*Ô?å Ã? >?_† ?¬ø@¥?ìõ½>çöW?ÀÃ?çºú?çž +?m²?g`›@Y[@fÞ?¦¥ø?ˆ¿–?ÃVŽ?Ü®j?µ–Ô?£T?­–`?¬r=?·šü?Ëà +?¯Ìœ?zb«?†dg?{„?Î?ÔœM?Ö«?Rrß?Jà®?{žæ?}0?û¦.@ ñ™@úÿ@§i@ öW@ê@?¾Pr?h‰×?·|©@Ì?ÇÉÄ>¤Ä?àÇR?Ó¶¼>ÿÒ:?¨c?Ÿ3±?¢Ã&?€\s?u¢Œ?wâµ?z'æš+>ßYÓ?Ü +@lõ?î#Ÿ?ž¡Û?¢R?¥$á?¦%?¦õr?¦ø—?¦ä†?¦©'?i J?Yï¼?aæ?g Ô?Ž!Ë?Ÿ¸”?Ò@2@4è@¥|?ݸZ?ÙLt?³Ú+?´ð¹?ô>Ýcð?bzX?~_]?©âŸ?Çx(?¨À=?†wT?™+T?¨Š?¿Zþ?£µÞ?¡d?'Ê?°¨?·T‡?âb:?²Çû?SK?‹pŒ?«–”?·ÒÊ?ÎIZ?¾8?–³¶?¤û¼?Œuš?~'?.A1>颻?´ÛR9>Ýõ?Ã3U?Õ”Þ?X Í?Í—>©×ä>6ßf>ßkc?[@?]ï¿?sÓŽ?x{¿?½Õà?»dR?÷Œj?ÿ°4?“'"??ט?Qšz?ZêÔ?Bø2>êûn>èÂê?#\=? îH?TqN?Z¼F? >Æ>Ú´?‡½h?ÈÖ?­‘ú?zÄ ?–Çh?õÑ‚?îfc?¸â?¼‹?? +N5>–:c>¥ >Æ,!?Qiü?¡#Á?€\š>Ú7<>¼©²:w™À>Ïùd>Ú ’?³¦?Õ»G?™¹?gx¼?B»p?ï?(ÄÑ?YÅ÷?Sñý? Ž'? ÷?«¢O?µ9“?³y?·Ó„?a‘•>ºL6? .W?YJ?uÛ?º,?µŠ7?,v©?-(×?ò?÷]?&¹?.â±?IKÕ?†w?„`~?Xbˆ?U-ô>ÔÙ=é[ü>·±?>×óó>×ÚS>×Âi?xŸº?׌ß?£³­=‚îO? ‹?¡8Ÿ?¼?›]©?w§|?VtB?/g1?\c>÷Îú>žUQ>žØu?Qÿä?U_L>n5>& .>1)W><3Ž>¡}Ñ?¼g?3hT?SâÛ?S§r?+&Ú?, :>®’†>«]>³½ƒ? c>?"q>ƒ>_25> ½>¶®+?+Câ?P`…>øÿ=W?w>Ï á>Î;>Í)>ÇX}?…t$?Ä>ò?¦ÍU?=»*?6Òû=Õ‰n=¼’*>]8">¯Ù>ùíù?¼¾>õiŠ? G?Æ6>k—=\>[kQ>f£Ú>qËû>|ïˆ>„a>‰ˆÇ> h>”„>™ö¬=øøÌ>‰´›>½}x>øq8s„>Ë6>­ÊP>…¾]9àµ1>ÍÖe?!©‘?›µ=\9ª>!=§>5©>>¼Ö7,gF>l?&GÏ?(¾&>ëÛé>xu2>€ñé>Íš>%(>—±M>šô:=ÿ²Þ:dû`>Êž>í´>Š€>•_:­Ø›?­5"?ÎoŠ?{?*W? N>À¥¯>çý>ÚÊ>Ñ(¤>ǽÚ>xDô>àö>ɤ‰?Vð>°z^>Ž×=+{>ðŒš>üúÑ>=Ïú>ŠØ<™O=’ÍF>P´U?ü$?ø>û–i?\ìÏ?¹Ñ?³ßq?¬F?1<0>}à€>ød>a¯ª>§¶)?ÌX>±OT>gï??Du?„ØÝ?C‰‘?çÂ?ƒ??×8?"Ö>HA«<¥ƒk?ƒûñ?¶ÍÞ?‡´¦?jE?d½Ð?_0š>ý%_>´î=?óãé@°ó?Ekè>ˆÃ…?{˜?2~k>"l>…"!>Á>ð!;?$Ñ=î†V>¹Ž >ñ]û>ñKI>ñ=‹>˜*>œUÇ?ˆ‡$?¡÷Ë>˜N>üB?6y?=¥–?@êà>׶°>¨ŒÕ>1;c=Â.o?,vO?dB‘>…r<œf?4;˜?pžß?['? ?µB?Ôà ?ž?HÌ+? I`>ð¥z?)m²?(™è?z¶?˜µØ>׺G=ýÙÿ>>Éä±?Fòâ?i¹’>_9Æ8´>µjæ>Ý·ß>ÑQš>Äé>噥>ñ•?4°?'›v?-æÛ?44>°¥Ø>f>â?Ë>ñ_q>0ûx=¹½!?Î~H?ñ‹?'#Œ>ñtÇ?Ù¨Ã?ä’+>>œ>•»O>À¡N>ñ4>òœ?…E?“*?•Ê>ò4æ?¹®?°µ:¤<&L8>ÍÙ÷>Ûãì>ò“ˆ?n>?qÓê?\î“>òÇ»?ºi?@Ïx?&DÉ>¦ë«>µx ? ~>ãË>€*‘>²{§?´?9Ë?Ä+¡?»µØ?šða?·VÑ?èÉâ?Ær1?t2’?HÒú?(Ñ?mËä?¶ù ?š`B?tú?î­>N¾?éÂ?,wÔ?yï?¡Þ?¯Þ™?·[?]°¬? ‡7?Å…?´ð×?·i•?¶¹=?®”A?¤Èâ?,Ëæ?-ø?L¯X?ND…?¶(?Èr±?FÅò?4:ò?ܦ? 3­?udÎ?h6H>•³s>«Ä†?†­d?‰ø0?·¼ì?ª]0?{‰Q?~2µ?uÕÝ?uàk?uìî?‚_w?‘uF?+4Z?ª0?•'1?uøq?Téï?nI>lÃ=‰2.?R:?7qY?ÏI?äˆ?êtñ?ðêˆ?xÝÅ?ffÈ?F…½?LòA?Sa’?U[¤?IYÏ?K™i?à4?'ÃŽ?w@ ?âÖ?ÀŠÕ?ƒ³S>m±œ>œàm>ÂßÃ?r§?³³Ø?¸~7?½µ?¥ §?–u$?äà +@?Ä#?«Œ6?lû%?Xš?lc?•Í?i¸>?wÂõ?¶^7?¹Üi?°%4?¨¡\?7Ø.??§Æ?Ÿ-s?Žå??wõ½?ŸÒ-@ Á?Þ„ö?MCä?_Óy?xö?™÷õ?ÃFp? éÁ?x%ý>í>¿:n¼>÷C>ä"M>º°ˆ>Üúä?Bß?V+ˆ>£IÀ>8q ?á?6=—?«]‹?ªç?|2Ï?xh3?§Y4?¯æw@ùT@.æ?ò É?ê÷?¸ù©?¬¾ó?u«Ã?r±Ñ?xˆ¨?‰ì(? Fž?`é>­¥?¯?xšj?kT?sD,?yM?x¡i?»‚™?äZ*?žNµ?x¨ö?VY?Tðª?A>ø±î?fe3?x³†?uûW?pcq@,9§@)§?F†Ù?+ô¢<±ŒR>=C–>SZÐ>ijÙ>ýSJ?¦5Í?¢ú +?Ž~€?ªo‹?ט[?‹Ó>2mÛ?BÎ?xÄö?7I>øů?« ?ôæœ?†c]?$6 >»×°>ŽG>Ûlm? +'w?Ç–ñ?â3†?ß“?ÜïG?„„0?x¾m?x¼ ?v¿T>ª¢´>Æ¢?Ê®Ë?´(>ƒì–>²”?‚49?Ž¤H?¼?—#O>øªç?#•?m%(?|_É?‘èÆ?óí?Œ?›ï?¥Ÿ:?šÅx?–À?¦I?¹´?½s>?ºc¹?|êÓ?Mc ?÷›È@F?£xô?xn?}‚>øf?Mù?~N<åË3:º?uØç?s¥å?ƒ»?nÛ?‘öÄ?£ëæ?ø3¡?ùÜö?ùDN?üpk@—t?í[?r­?Tì?éŸ?Jå?“,é?*ÜÂ=kÃ{=à×­?: I?°YŒ?mÐt?ï>ý;Ú>÷»J>÷°J>ýz>ÿ_â>÷›S?;? ™>?RÙ??\K„?)[¶×:>Ë€?%?+9?±mH?±³s?®å?´­o?¸Ô‘?ǘ*?õL›?Ä0€?[D?UC­?¯fŽ?ˆÖ>ö9u?`Iå?Éù‹?ÍG?ËIú?°ÉÆ?”J·?‰çÆÞj?0Oh?`qD?^õ?S˜? />àœO?”?i?áˆ&@ü§?²&6?o]u?k"?gÌg?„m?ŽDå?î»@¹?XßÅ>ôi?žz¶?µ?‘h°?…ÅÉ>McÜ?Þw?øo?6[ä>ÍCÆ@vÑ@­?…ýò?CîÊ?jYã?rì"?›äC?œE„?zÈ}?r›>²jƒ>=»>ï1>üøŽ@;x­@SØ?¡Â?qó»@‘@>™?!©?q–ô?qƒñ?qia?·u®?Ä;?[¤Þ?B!&?iÊM?z<@?†[?‚Ò7?ðð¸@Ez?ÈÛ?¯~V?µS°?¼Î‡?4:>ïíU?¡¶?uk?ËØÅ?ôP¢?ØØœ?Í™ƒ?²B?©jt?¥;?¥\?IÎÿ>ýâI?Fhé?pJ?nmµ?nNð?¹†¿?ç-£?¨šä?mçý?ž}Û?ÉN‰?¸ ?œÕ?Ÿ `?¤^m?…z?8o´?ÛC>›@?>?Œ‹÷?vØ?í?)øw?§¹Ê?¬˜Q?’,~?”…q?¨‡H?™Í*>‘†&>Àç>@Cí­@F£ô?i˜?„èØ?7Ä?8 Ì?ºl?ÌÐ&?Þ¶Ü?ã}?¼ÿÁ?¯~©?…~t?fsÇ? çÁ>éˆ?5Z?h×¾?þ3@Gº"@÷?´˜?x•>Õw?6il@<(@Î?À+?¶R?“æB?—£L?›0Ì?™ÎC@@Pj?`Ä?%„ÿ?PEÀ?a‘;?@·o?*€?vâ?›^I?Ž'¦?{–?7Ü>–bv?.Ëh?Èi{?¶{ô?.6?C‡ƒ?̨°?ÍÐ?˜CÖ?ššÝ?ʘý?ÒÂ?‰C›?k™?ûf>ñ\?zaÕ?«h?g‹É>ç®>šú?ж@  @«Ì?›¡=?—Ôõ?vë?xÈË?eÂ`?b¢ì?bF?bg?nTY?l?†w[?€yˆ?cÝ…?Ld9?K>7?/æ?3ƒ?abÅ?bóÖ?¨ƒ.?¨Ñõ?µ ?½ì?‡ßò?`¸?†Œ?–VÁ?Ÿ•¾?¨E?ÐóE@ÄË?ú0é>ßýÃ>â%?=#€?AÛR?¸>ô +Í?ŽÙ?ªQ™?Oáp>âíü? Ú ?_ +?>“F>á®Ê>ê§ÿ>óÏ>ÿ‹Ð? b? Çd?n€¿?^W>Û{4>€€ƒ?g+—?ÀŽí?¯ ??’b?y•´>ÓMc>àTP> *>(pç>îÂz? Á?4?M,É?>¡È?&}?R•,?‘ü.?²L§@+@Vu?—4æ?”ÑÉ?CË?1ã€?ÄÊ&?ö—E?§¼•?7 b?^×~?›_V?ƒv[>5º~>38T?š÷?œö†?ýÄo@Ð,?¡Š5?[÷@W>bê?ôL°@ ®?š½0?,gk?eíí?–m?•=h?”n?•sˆ?·O«?¸xÞ@ã@s?U™v>Û™? +}/?#ä°?=8?[Q?gƒ)?„Až?ŒµG?ç„?à=•?oµF?Q¤Ÿ?ƒÞl?•Ïž?žIÞ?¤ Ò?Çã¨@ ’×?ù>ß>¾õV>ËÅ5@yó@`ü>Ö˜;»µx? c}?Zl·?)<·>Ú^F?Cb?е´?¸ý=Ù=Dì?œäC?¬G–>ñ-‰>2ü?c¡?°Ý??“7ú?Yð?T“\?4Eò?<“á@ ·@ ©›?´é‹?£<“?„é?TÏr?dP?„º?£eÖ?úPG?î(?7‡?2?æ?qq?v”±?—5M?¢´?[hd>þ…J?o¾?KT?M½c?PTÌ?Q³<>Ù9}>×€ø>Ø­>ا?,$?[ æ?/²Ø>ɉ§>ÌÂ?±ˆ? +ß?Ã?êG?‰šX?”æ?Š~Ü?2j? ¦>Ò%>r,ÿ?µé?bD>‚8>^´à=!¯ƒ>Vè$?-éµ?74]?+HH?%iõ>Ù¸>ÓLÄ?†Õ?°E ?Ÿl?‘hÑ?}”Á9 t&?:æð?Qâ>–¨»;"³`<‰Ë¼=æ?E[?A×;>̤>–«&>‡ˆ>Er>° +?á?­²<®F>4‰š>³_õ>öž8?L?ü3>¾8ã>¤<>˜-¥>‹äT>«iÌ>æ±C>Ík=¾:,=OÐ=ÔS¨=Ù-×=—p?<ðaä<¬Ù<VV=†ëQ>¿ '>¾ù=ágü9 +=I =xúP>aÛ>aL>UË>NñÖ>n°ü>¶X<ÃÝœ>D7 >8m>Pò >±Çj>°Ø²=äû´;±²>ÑÀž?<ÿ>ãB}A¹Ø>;>•$ž=ÕΤ==A¸¬=V8¸9k@@!‹Ž@G´a?-a?x¡?Vu?¦Î>ã÷~>ŸØr=Ô†:>™?-?v>_f>–H>UêÛ>à¡o?Ï*>öwŠ>âl1>ýï>ý€×>«æ>¢Æþ=æ[>ü—©?BÞr?º ê?¼‘^?ºÝn?g™>CÃ>¾ò?'¨? ¶u>ºÂÿ>Öî_>øpˆ>Ã÷u>‘=^>¾Ü>õïÆ? ¿?/o?­×Û?á»?’¤p?WD9?m!q?ui$?–ì¿?©×Ø?=-->ôá6>÷yp?6®?Q—? +DŠ?˜i?î•?)ó>óIŽ?f]•?’Þ*?YÈo?6Îõ?dT6?r„Ä>TÚÃ>›ý>¦§é?xïÃ?œ»¦?s‘M?g‹>MÒÃ>½W±>ñpó>`=¯œœ?Tã?.?C>2þ$>PaT>Ïó>ðßì>Ô†Z>«˜>üäD? «>æñŠ>çG©?T–?o¦¢>__=·û=©_ø=¼"?m*E?›î?GYá?( $?Œ>ð¹W?^rj?„Aé>þEt>A1>ÖÇú>ðÌF=Õµ=Ÿ>ð!?>ð(>æg´?‘^´?£Ï?µÿ>ñ>S@a>*§á?%‹è?9ÿ??‡>ñGè?/9>ñ¥<>ìxb>ñrÒ>ÍÓ…?ÊÞ?ìÛŽ>_iÑ<`?§Dh?¼È>ÒU>¡ý…>¡H>ìës>ò$>uè¼>„;„?(ë6?#øu?çat?îY‹=¶È4=y›c= Ž%>ò¥^?c?ë9J?Éï¥=£òt>4È?õÛ?(ré?D–¶?dŒW?·¯Ö?®Q?“Q?‰©Ì?¤Ë?„L9>Å\> ‚ô= —ì<¿>Fk¿?Ž¨?.Nö?_6”?rÁÔ?Ší#?¿‘?êÔ2? Œ»?:SW?<"q?[gh?ž6!?°.?–tš?•H?ÌÎ?jÞ@?qv_?tÄè?v{n?|Ñß?µl?…’?˜ÇÙ?•¢2?yÁ‹?u'¼>駀>ñ„v?”Üè?•$é?Ð-?»¦?:I?Wvû?¯ê›?¼àÚ?óì9?Ãz™<úœ>›DO?uÙ?Š +ë?ªÑº?ˆðè?#Lf?G³‘?vS??É>ã +Å?R;?¢ÎF?EMÐ>¸­]? ò•?úk?n¢>ö~I?Q¶$?uë?þlK@·ˆ?ŠU?CÃÙ?Rm¥?Pkj? #?º†?¶(z?º§ç?î1Õ?Û5‰>÷[>îŠI>ÀO&>®E=j7>ò~O?õ/ˆ@­@?ÚÞ¢?Ug?3ã*??^¼?2»K?&G?TêÐ?ØŠ?©(?½¶V?­"Ó?£â?Óu1?ô#?“µþ?cy>e|s<øh?žõ9?¹ÝÏ?¸qñ?µ[\?¹ª?¹ï\?¹óš?°’í?$ €?Bä\?°j]?¤ „?<¾Ó?„GA?ïŒ?¼Æ>ø%?*Þ†?x0?¨ ¥?è…R?¶š8?x?†?vî¥?lŒ3?hP:?f]d?‰A¯?E >ûm>¨?> ‡ù>Œt8?)ë?6†·?ªÿ?Â|?2‡½?6;ë?Š•?‰²Ã?©?®Ñü?²ÊÑ?¡Öû>ù¹ú?!¾ž?x›œ?ŒÐâ?¯W›@±W@NNã?íþ>5×q?s?x²â?Uyï?'‹?4?ð¯?—ºƒ?ºõ?—Çe?‡-³>‘ke=$\k>É_Ž>ø7ñ?j¬*?xËŽ? +Ô? ç?¦Ï+?¯õ?xÑ?ffÓ>¡Bš>°Š? ¼>âäñ>j">iBä>™¾ß>¤²Ö>¯¡@?—?_#£?[Èþ?[ ý?eó]?p¿é?2c‰>øÜ5?Œõë?¿§°?²=¡?¥ï?â >º&>¯Š¡>¤ñá?•õÝ?°ê$?˜AA?œ´ï?~T‰?z +î?ª#‰?¡?Uwc?näÒ?ÓN?Õ«W?º—ü?·ð?³ðd?Ûo<@k¹@µø?±âs?›¥?x»ˆ?#´§>g?DÎi?§ ü?šÿ“?”È3?feð?7*œ>ÛG6>‰x­?œ'2?ÑNêï˜?qjÎ?xqP<¡pø'S?¬x?AÙU?mº?¦gí?Y-a>qÖ?àú?P?f¿l?ð´?XÔ?zÒ°?*¹,>÷ËÁ>÷Á>÷½÷?³ò€?Þ¤ò?‹"Ï?^ñ?Ä{?¨…û?EÚë?!€Á>ýÐ`>÷hü?£ ?¶a½?÷ˆõ?þ4C?“!?™ö›?tÖ‚?à@(“×@¬:>8?ƒÈî?€¨Î?v×u?Do;›š<È>ãÀå?½¨r?¹!ý?§B$?ˆZ¨?.£>ü >#0?ˆ›z@KS@ +‹?ö?­Œ¤?4®Y?t•m?—£ë?¹iÃ?Ý +P?¨ª€?uªk?*i >ËZò?m–²?«Ï?ëø@ zý@¯O@-K?lÖÔ?§Þ½?ôúç?õsç?÷F@ Bm@·e?£C¡?t•Ø?t……?tu9?ž¼?­Ë“?˜ã?m?À}Ä?Ï€_>v4Ñ?|–š?‹T÷?Ràh?EKY?Aô„?> (?‹—0?”È1?É´C?Ô\?Ú¥?Ç(?›O!?Ž>^?7Ÿ?ê¿?²Ò~?ÐCº@ê@2â@ì@c ? xß?o>,?'Ip?̹?S[?pÝ€?Ÿ¸?²ùO?²"?°‰(@g@H~à?Ͷ1?”ü?œT?â‹Ë?±q?…®?›PR?²R?é¿ð@Uf?É +ð??yÙ?Úa¨?¢w>å Š>Ñ‚>\.Q>Ø„õ?˜jm?º\E@!u[@ +Òf>]Œ>Š]I?ëe?é?£5?¤oI>¹z(>‘#†>ßHz>ê:?£Bw?³N«?®‚Ÿ?®Ò?3YM>éç>éÉÉ>é®C?~ž9?«Ví?ð·[@2@zM?ßå?¬…?9½”?\Ü{?Ÿqˆ?ªF?¿<3?ÁÄ\?ÀÎ,?¸i¤?Š#¥?Œ¦}?çZ?ç~®?¹$ù?®k*?©,°?£íê?Sc¯?6ç´? ‹ê>æÈ>æpQ>æX:? —?"P!>ãà¯>Zó.>íJ?•î•?•?Bë“?G\Ñ?#wZ?Öá>äöÓ>äÞÃ?ä?«wŸ?×ß?äi‚?äæ?âÕ¿?ü¨A@ײ?ÁGi?J»„?¢É>­ÍK?rÖ?yG?zØ?c£?bÑû?ƒ†?ª@?ÿÆ?Uè>ú. >âb>?’$ð?ÉàU?’$3?,¦•?<ÿ?aÃ3?¬?íÛ0?ܹâ?’l=?“ˆà?!%'?™}?þ?LI?dÖz?}=Š?”³Ê?¨fÅ?ãÖÊ@µ£?ù£>à*±>Ëx=šWÊ=qµ)?ZwÙ?_µ½?Ìå?ߊB?¹R?§„é?‰ Æ?_4®?‚ÕÃ?žå¢?œ†9?š"Ý?”'€?pdv?r§?íž®?ñ71?—§Ñ?uÖž?¬Fw?ÍG?²“T?“OÐ?a¥>‡Å>Ö…?žƒ?—¦{?0DÕ?(“Ô?NÓ?NF?kº$?{9™?t,­?m$^?¢•$@ °@¶?Ì’õ?Α?´ÂÕ?²ˆ¨?’÷¨?b?¶×?Ì Í?§]I?tf?‰%j?¬p%?™óÿ>æ!>ߪ?¡ê˜?¥&Ò?¥ø?¤w?¤o?¥;?‹Ãm?[òŠ??Åi>újï>úp“>³Ïƒ>¯?•X?£ó°>þ +å>~M°?¤[?íä)?Ü?½?ÆÒ[?´…?„¶à?‰F?½ê?¿ð?Â÷˜?·÷±?RQT?lZ?To¥?‚½?*F?¤SïBË>¸Ç=©S>>9N?£‚o?£ýø>õcª>Úœ€?‰PÛ?¢)U?EÇŸ>Ú~÷?I×W?ª–z?› |?5W‡?0Yd?qzÞ?tb‚?/ì€?äv?9eú?YУ?aÚà?ZÓ?Z ™?Z3?ƒuU@Æs@°B?Ž¯@?Š”Ä?£Žö?­fˆ?Ž·Å?xP?§*¼?Ù…†?¾y ?p™?~r+?—`ä?˜«ñ?™ó¸?›A`?v˵?XúC?!‹¶>ØÖÙ>Ú>ƒ>ØË#>»&6;™@>ÌÙ¼>ØDŸ?„Þ–?œ¥æ?—±U?‘žú?{ÁY?Aêo?? ¡?<2­?9P¶?rÕ†?z©ä?E¹ø?=’º>­£H>¬‹?YÒ?>¦>Õú9>Úæë?„K°?s©u>Örã>‹[T>¤ß[>ÔÌg? ^À?xÕ¾?zs‰>ÔÏã>ÓÊa?ÌÓ?òv”?‚×´>Òà>…g=KñQ>Ò,>Öž=hñˆ?hr?´¤ê?²ò=?¼D?§ò9;tÓð>o@>‰‡¥?w?Mˆë?!2™:ûÂð>BÊÔ><Ø?$‹‘?sÀ7?bË@?IóY?JÆê?e q?b1?‚5%? ò%?Žÿõ>¬;J>±Ù?'&±?=ù?lV>Ãö—>Ѓœ??Oz??+‘?‘>Á>¡w,:îØ;KEÀ=ß6=÷Û='=ªL>J÷>Uò>`Ö?>k«Þ>9°.8C¥`=Š»=x‡Œ=š:;×`;8_;3‡€<ð÷p=$dÔ= "ð?¤­à?Èýá?(?Fš=Wªì>/2~?«Ÿ>ªM]=Šä>!‚=”>Ë6)? ‡Ë>ŸYÞ>‡~.?gÊ0?€Ow?§‚>úëi>ŸP=å¿<[,\=‡­{>/Ó³? hí?öÄ>ûØä>¯N¡=ª>S”>ØAO>âŸÙ>ù½L>ùhB>ùÿ>£uô>=@>¸?¨>÷éÝ>Inx>õzb?IvÊ?‚yØ?•üÍ?7„„>õé˜?6Û?Z’î>—Du<­´?2"´?sß>†ïÓ=C¾.?.9æ?\é>’—ª>Êy>Íxõ>ó]-? Qÿ?V>ö™?Úø?ðr?¯>º10>€h?Œð?«Iž>‹W>¿<¹>åk>톽>ñ†==ÂL^>bl>£J?-;7?<­->­è±>awá>Ô“Y>ñº?â?F†?“ì}?ª6G?{Pø?gÔ’>OôM5ñ~p±Y >ÊK +>¾A >²/‘?¨§„?Åb¦?h[·?9= ?>ðÎD>ðÐV>ðÔÁ?r¶¡?†‚ª?‘>Ñ/„>WÂ<ßîN8Ù±e;¥ìÀ<ãs =U ¾?æ{?,#?L ?Jç•?^†?Q~·?;q?•K§?>=|?%j]?…·?”ó}?'éÔ/G>Ýþ@m˜@$U?¿‹n?ªç?×ý?Í!Ú>ÿáH>ò-4;¬‹Ë;7G?!¼&?-x­>òl%>ô›Ï?Ì•>ñ7Ì;éJ­<>ÛL=WñÌ>~¾>ì´1?Šá;?z ÷?I,ñ?LyV?s'??ŽW­?Øjò?Ý^‚?òæ%?ÔÈ?<¨Vœ?s³d?µ}>HO>óê‰?08â?t´?"b¥>©E?T?îŠ?âên?Ò?F(æ>"ŒD?‘Ä?ìÆ\?B(º=çžB>Áü£>ø?>ôÎA>ûtû?L_? +à?sX?b?ªr?·ß5>ô59>ÞÐr>Ò©>Xš€?Ÿ·±?¨ÀŠ@×i@µ>)Ô¶>e(?m€Ö?…®?¸Rµ?·u(?ª ?smŸ>4É>Ä",?BHt?/f>ö*?Ö?8Éb??Nq?EÖ%?w(ï?Œìó?&¦>‡7ï?]çæ?ª|ö?F•Z>ö˜k?T×~?v«ë?EL½?Nã?s–&?vÓ?黧?î£ç? ”é>ÿÔ¬?| Î?ŠYR?ñ°ö?è§:>÷ «>àE{>´Ê>Mªî?×?év?w”«?7‰y>XCa?W]l?Ô.·?•x,?íå?Maa?w?~--?x|?s¤ž?w­l??C#?-BI?"Ê{?™6?w\>÷Ó›>÷Û&>÷á?iÍ?|ŸÙ?o2?„Œ-?‡©õ?…*1>ÖLT>èa€>@Hß>—…¿?8w?/>ø*f?9ÓÞ?£@…?ú‹?»?Ce_?ƒ„ÿ?CåŒ>øSn?=O?x\p>ähØ=Ü2>ÓìÖ? v?rÕª?*e?¢ì>”É0>h‡í>wIn?¢u?®Ð"?Ì >çı>‚õ¬>0û?Ïa”?¼Õ?³ >âv88†‹>Þ×?î¾?ȯã?x·w?=Ž>³Ð½?4;‡?¦Mû?n‡Y>Žd?cb:?¸ä?·M +?º»?‡\?8x?„'›?¡;’?¦ì©?¬š¾?)o>øßU=ˆÄ*;¦þ=N\—=ÄKÎ?c ?^>¢?„û?8oY?ж ?»ýV?EŸ_?=·H?:Øè?¼>’ÇÐ>ˆ$> t8>pÒ >¯F>Ò(‰?Æ>™i<î¹Ì;Èè­>•^Â>øõ&?V@?…1O?«Õ?º¶J?¡M?“ùI?Bl>øïò?+÷?8S??wÊ>øí¡?vÚ\?z?¬Ò?ª78>ÀÆ>>ÑÂA>øâB?+–+?¶ñí?Š’<@Ð=ç6–?v¼6@Œ’?ÉcV?xg?)F?0…G?üv? +vô?%ÐS?4…?Â’>øº,?8‰?7ô?µf$?åeú?« ?»X?¢›$?§v?Ö7?åþ³>;D7;^ð¬?´bß?·îù?i9M?oM?Þ­•?Ø·¨?ݽ8?ÇyÍ?T?“?qd?À‚?®0&?[¢9?L$*>øF?I8L?£U´?­.?ÎÈ ?½J?œH’?Š~%?x[?ËUö@ ?áº?µ +ÿ?¹)=?¹ñ@?PP*>÷ßÏ>2CÚ=n4?Z4L?“ž?æÊ?w®õ?¯Â?¹¶9?ƒÿõ?wŒ7?3d>÷{û>÷rƒ>÷Šõ?·ÈF?µÉA>. :>($Ë>‹í¡>¼§8?Ïi8?º?=sº>’)C?´j?ª…è?xPª?XõN>õË>î†>æ:ë?P€?ƒ?hq?,è>÷9ÿ>ßt>c€>¤ÏC?ƒþ2@ñZ?ÞÚ‘?³Ö™?v“ì>öa?_K}?Ÿ@9?”\u?ÖÏ?°>?Œ=0?¦%?¸96?§.H?—“Î?–±Ì?‘À?‚¯K?y)f>”ïç>µZV?‡H?gNæ?†L“?á*+?þv6?×,>UÂA?ú…®@PÕ@"×@"·?¬æ?’z;?”E(?–V?FÉÞ?9Õ?´ÿv?É|Ê@ æE@f¨?vfQ?N2Ô?!] ?ü˜?^\z?V˜i>þ‡Ž>ó™?uÕ-?|; +=¶¼ <äò?b“{?ržU=”$=P1C?dµø?rKž?” ¢?œÄž?£k¹?ªÔ?óÛ?ïÕ²?@‰û?&?¿a{?Å{?|iê?qC³?òtg?öØ?ÕÒ?Íeœ?†.n?‚e5?4hè?#îµ?•÷ŒF?=ÖÇ?VzQ?œE–?Á?ý?˜·”?m¼.?-–y>økè?î³?ì¾Z?Û¡Ÿ?¸÷?¼èh?Ψ%?°¹Á?Wò??~ª?&)í?ˆŽ?Ø5?ŒOO@5P\@ô6?Ÿ?.õm?Åò1?È7¯?œxÝ?–ú=?Ö[æ?Ús5? :?Ec?×æ?ê7?‡Dó?jIµ?iŠ?f(­?cU?`ƒ„?™,?¯5\?Öˆ+?ólŸ?îϹ?é&¦?Ü­v?Ê'ç?˜.+?aT?U¥g?®V’?ª‰z?¢¤?ž¶¦?gý ?m^æ?¬Ìz?¯sË@ª@ܨ?òÆÞ?ó"d?_Px?!q?xÆ?Ô?>² +?N8 +?¹yR@T&?ÆC_?f ç?J<­?åÙ>ÖÑ‘==>µÐ±@ ­1@˜r>å#}>å M?¥Ï¨?«˜Î?kŠ?êÛ?“ + ?°Y»?•… ?ˆ¥ø?±‰?Ïý;?Œï3>²§>ÊhŽ?o±?Í#?(è?rì>ãâ>âøš?t˜q?w#?rª?m,e?•Ya?©EJ?‹•=?b#L?ðZ?Ï»Z?æÃM@øj@ +‘k?;Ñ´?CÂ?$k?Î>Ë!ñ>š ´?€ “?ž&ð?«‚h?°©,?ǵ0?àf?§Ì•>ûn?$s?`$¯?`F?_üö?_à®?£Ì?¨ÒÜ@'Ê@<Ôé?ð'1?¡ÑÕ?£ÅÊ?§hV?—¦?sÏe?š¥H@ Äk@4?œ >?Ÿã]?ëé?ñ"¡?“4?l ?z?†@í?/Š?‘¸Ë?–e…?ÂJI?Å#R?¦`*?¦P–?ÑÒ?†6¨?»­¬?ÊA?¿ªŒ?» %?´0c?¥îÉ?™°?€o;?Ž'H?Ý +ç?Üù?>êÖ>Âlr?IŒO?eIÂ?­×ö?ØÓº?òb©@ Ö-?÷?¥XÖ?®æ@›M@h*?ÜèA?וY?±p6?¥Ö?…r:?\d5?q±¬?°ü‡?Ë_×?Û–Œ?¿??‰}?‡»?cõ¿?k #?ë¦*?òQá?‡|Ç?[O¡?qtc?‚Ç?<?–‘?‹[?[(?lK•?¾”µ?ÂcÎ@¤@q ?æ«~?Ðì?•Œ?Y(®?›L?ÚÝ­?²›`>ÛyP?‰—?Ÿn¿?œîP?¦¬?™b>í’A>Ú¢w?‰´n?Ï{»?ªìu?Z‡l?„¿Ü?à¤N?ØÊ‚?+è?>v*·>4$<>ìt ?IÇ?Y°4?‡ø¾?§Á?©†Ê?¦Ëm?Z¯?Yø??Yë,?YáÛ?" “? Á?ˆ&k?ÀÏ?†”›>jÅB>¯ú?KCÄ?OÀ?b>i?_‰?Y¬'?Y0·?§<>Ù^?S1`?¡¯|?€Rù>Ëú°>ÇK>Øš>Ø„O?˜¸Ž?¢A¾?Á„º?Ëe?X >x^½>¼,“?sÆ?³µ?W…©?Vùº>]Ä>IÔ?c„‹?€!?[²,?f—‡?4 †>†ww>áp†?ë§ó?ò7?=áI?"šÜ?"4?ó’>‚c=]c»>ƒ:>Ôs>Ê<>ó§9šìh>¬%`>ÓjI?b¦Š?™¬O?„ç‰?I•=?F^”?40?.NJ?®æ?/C“?g§X?…ºC?…2ï?N?>`ô?%A?"ä˜>ÇwŒ>Çë9>æÊ >»ñ)>¨BÃ>Ìç>Ì+\?5°¿?S2Õ?4µ[?bõ?7:?„xÈ?†Á =ïŸ'9J(<P <Óñp=‚˜=àgP>ÂÏ>Â]P>X >6–¼>d^²>ã#>>#¹G=Õ~š=ôYm>²8W>±Gr=æ’<ÔiT>šx>¬Vö>}KÑ;ôj;¡£$>™,>#C_>Íý?]È¢?‡¡³?€¡÷?aÊ=øZ?¦ >¨ä[>£ û>þ´0>™ >_u™?$W?$ˆÂ>µÍr>¹·Y>ÿ5P>ãf›=Çfû? +m??›?¼»T?„‰<:“@?@¶?¨úc?˜y?czd?2Çž>ùÆû>ùrG>ù${>Ä1è>°D>ÆÞf>÷õü>£Ï>FÛV>†¤þ>¨·¼>Þ¢r>ömu>ö-Ò>õø4>â%?0e;?u! >‰Gç='¦<¸èh>áQ?Ó?(Âu?"<ë?;¶´??±©?4å ?8^#?$¡½?¯¬>¸¡œ>‘'{?[?@ç?KÅ?W Ù>&@y>Å}>ñ½(?K@}?X„ >à‘ð>¨.É=l„Ú>°©¡>ï´>›ò>J>àb>ñî?A +‹?W¿E?löÌ?púˆ?\¿>ô8>ðë>ë¦=±G?0¡ ?Uäã?OÛÉ?IÎb?tçs?ˆý?zA±?pÜ5?§š>ðâ/>ðâ>ðè$?ž§?´²l>œ.P<þW?C¸G?qµ? W>ßGS=“=¹Ñh>5i?Q.i?q;È?* ·?0’ö?sE?ƒÉÇ?+‹¬?(%€?v¿?Êì?Vœk?f;=Ýe:‹ð?[­?f =Ûï¼=”Õa?…?<3Ž?Å?ËZ?€ç?Ž>øB“>ñRY>3wZ>)ß?Ê>Ó‘.?ŠÄ?Ж?rœ?g62>òO}?úa?\1€?@Í>Âdb>Õ^?Cÿy?He?+Î|?2Z?8ßâ?DjG?dä?=%>ˆ>#Ë>hQ‡=ÛŒ>³d+?sÈè?n}ñÓg>ŽæP>øI??Kù?›2?ǵ?€?ˆ‹>‰X™=™“~?,ÁW?t½¸?t³?t‘¯?Pk>ôó/>ôþ'>õ à>õn>õ&?‡Ãu?”í>¡öë>jM%?‰6—?¼ ?Ž>?‰áŠ?u–3?s˜ê?hÆ?]$3>÷Af?Im?z¹Æ?€¦Y?ƒí8?Š:?Š?pÙ?J$? +î“>cÿI? ò?elˆ?AÑ?#]þ?mµ½? $?ž7\?£zb>ù_b;Ð<•>¬^=>ö°ù?ÀÀ»?æ†Ç?;úe>ö×m>Æ®>¨º?úé@ 7?{T?u…>÷”??R»?ML#>÷:ç?Æ.?wMQ?‰ÚP?¹mß?•ë*?ö´>±€¬>ðéK?›jÂ?gm">÷šç?-?4Å??€ÑO?ž¢Ë?§œæ?¥¡t>û%H=駕?NeY?„J+?ˆ>÷í>÷øŠ>÷û5=¸Ð…=ËM?¬*?­}ò?ªhk? z˜? ¿˜?%‘?L)?9â ?3ßÜ?-¿»?'¡2?€w.?è°?á&Ü?¾æî?­Õ ?³gB?w–î>øl™?¢s?îï ?ÞÝW?ÍGÐ?ŠNæ?VÛÈ?0Š¸?)÷ê?yrã?€Èñ? |Ð>ÚÌô?¹ž?ÍÛÌ?—ì?›(´?x´/?‡†H@ +í¤@)Ý?õ}]?à(D?s‚?r.l?Š¹N?‰à?xÐN?`zº?-?D¬Ã?ašÀ?—ƒÑ?½‰j?š:‘?µ?’J3?’ +?Ónk?ü¨V?†„Á? 4">òTB>ëîé>øb>ø÷a>ó;Ö>çà}>Ü¢Z>Ñg?Æ2? >8?Tnz?h¿ô?ÒœŸ?Å3Ë?y]?ƒDÎ?CQ?k ?Ü>í3 >ùC?b†â?ºÇ‡?––A?c2ã?8}>ýb +>R&J?ØÝ?jóå>Åú&>FdH?_<>?Ž?Ó@HM@+Ò‚?Ã/}?¤ ý?~÷Ê?o'ü?1ö??,`H?y‰?l™z>y…Ñ>Oþ€>&Š²>BÉ>ø÷Ð?±ƒ?x÷.?1Ch>>‰?^äa?yð?Ÿ7F?o•µ>øå|?¯®?'Æá?!.î?#^?HÖ?¸df?%ƒé>’~ ?ø¹Y>øµ>ø²=Ae< õõ?mŒï?uC…=–Ý>…Þ@+¬@Zå?E.—?Ec?,Y?L›@#[?ùF>ÒŽÞ>ñ í>øÓœ? ™F?1›?¬x…@0?æ,=?x@k?©(J?ß?¨+ò?hg?&{ó>ê%/>÷5ç>ø Ã>ùzD?¬óü?&è#>̦? +ºÞ?ªD?h"ý?w¿f?Ž´Á?”?@ F[@"¥?O>÷‘k?fŠj?b™C?Ð&³?Ì&ÿ?™? ?×®?‰ªˆ?~EY?+ ?[>÷%i?H0?wN?ŠŒÞ?¹4y?·89?²4&?œ «?g–-?Fz?Åô? W_>ö¡.?4‚c?zÆE?^ÁN?F³W?/å“?';?tæS?˜ÓD?¢Z?¤nm?–ÿ÷?Æ-?Uh9?Ÿž?…PÞ?ªrÍ?»Œã?ÂL@@X‘@&1‹@2W?ë¨q?¸?Š€¨?mÉÍ>zd\=4rL?ÝÎ<@ ò?úƒ>?ôâj?& >±i??G’?v5$?ü:5@ )?¯‘l?›oa?{t/?t4È>©Æc>ŒF?z’A?€·?‹GÍ?‘@¯?&Û?G9?ƒƒÓ?…kð@Cù@ Õr?Ä+?èê?º-ô?¹Ò)?Òx>òÞx<¼×=|?¥Ìñ?¤ô½?sôí?r`–?ïh?îÊ>j>|1>@({X@+Ü¢?Í44?ÄéE@,|+@,ÐÅ?¡ˆ•?˜@«w@ +¶Õ@ å„@ +40?nôù¶=Ê,ê9!lö?Žž.?³tö?9ð¾?¬?YÚñ?nÜw?F'œ?B%à@ûë@%[‡?|±/>uÒ„?Íú(@’?!7>ªnX?$ª“?Rù²?£o.?×A¡?Ð0~?Ï÷=?µd?ÄÛ?Œ=î?R@?Šq|?l‰Æ?9ç>Œ>ÝQÈ?l]?kÿ?kçI?SŒã>ǵF?&"˜@!-Ñ@™>ë7M>ñ®—?°¡Ž?°*(?p8?kn™?’K>õšæ?XO??j0m?ÄÇœ?Ùy½?ºÄä?¯RÛ?ÚXz?)Á?V•Ú?5f•?àå?R=?ƒZ¡?mù–?U\£?LÉ4?)ô?Rzm?­'ã?£ô?gê±?ng1?ÐkL?Ñ¡U?¯¢?­€ì?V!á?E±­?`Íœ?f߇?±Wü?Ï—R?¯C³?šãÝ?ƒõ„?Yc:?ƒ«=?¤¿n?„) >å½a? ë?eƒÌ?WÍ8>åKÎ>éià?iÞ)?l?\ìI?X)Î?žÁÐ?«gI?Å{—?Íß—?ŠkG?D‰?"_í>ãÞ?,J?…¥¹?`X]>ãs6?-Û?wE½?mw˜?•¤?" +â?ˆ0Ì?ŽÅ?MQ?Šj?˜Xý?òô?×wö@ ŸÔ?àÖR?†Rï?{Ô?-m‘?/Ì„?‚ïˆ?‡Pž?©â?¨ë¹?cÔ?SŠº?·ò?Ø#Ò?Új÷?ܱ?Ɖ ?¨`²?—H’?`Mñ?N[>åzï>îØ6?fÖû?i–{>Ëëh>ÉÂÞ?Ðeê@)ñ@ï÷?ÿo¢?Ò™ü?™/>?§G›?Ø÷Á?Ђ/?^æ¦?^Ñ­?«LŽ?²|Z>פò>Eª½?%te?^`e?˜¹I?Ä e?±??†å?y©F?LK?Rµ/>£Œ>­Å?¯^É?Ås8?‘«L?x@?ŠåK?›%J?L@e=ˆ¿±>ÕÌ?ã`Ÿ?ÙÛL=÷­§=ª&ë?[?¥VM?}B?\Ìœ?!(§>ãÒ^>ñO>òçú>×ä…>M¶’>œpþ?Ünà?Ü]ú?¬íÇ?¥8y?~t?\4å?\*µ?\H?†Y´?·-£?Ã<>?éè?å#c?(i>öãO?–a?¦Î'?×@?—@?µ‡??Óÿ?¨Éz?6Ï?#âÒ?€Š¢?~v™?;G??=-Ö?.X? oÒ?]«¬?‚&ú?nµà?[EÀ?Jâª? Œù?CŸ?Þ?ÜÀÀ?3Ý>ÛË>Û,>Û&?fC?¥Ù&?¤?œk?‘Be?hñ?g¨º>ݸ`>Ú΋>ÚÇe>ÚÁÜ?Y²Ä?Œ(ª?"h?Z¦ä<)?ß?£Q*?¢ƒÕ?\9h?Yc¤?¾>ÙCú>êÄ?¯?&*F?I{(?F¨Ó?C×}?H?¢s±?¢q†?mm? ¯>Ï +Á>‡¤°>K"ò>7m>uòÅ>͵ž>ÉÏi?‰j/?£”¼?s‘å?4[³>ïfJ>u90>iõŒ>¤·B>ªN×>N>ùˆ?‚g?•ó1?+¼->ÕI˜>×à·>Ôçã>Ô½>ÔŠ8>Ò”Õ>Ó¿>Óì÷?®?_?Í1à?wü>÷ñH>ÅÓŽ>Bâm>×Ðó@ +|-@¶‡??¼?¾Š?'ªý?Blø?<ž)?úk?vô‹?(éË?g>ͽ>ª,>‘Æ>ðìM>­ÎŠ>ë`?5ˆS?.ê[=çôÏ>">Œ>Ä9:>¹FD<—׳=]>¾V$>¿iN=üE=©…>»å§>¼|=õí%<’Œ”>ž8Î>³:Â>iù€; À<³è= Fñ}>6 !>)*->gg_>¡ò>œ$%>KÑÝ@"ùî@>ËI?Šu!?kL‹=þÜM?¢g>ëJ¹>´O>3•ö>2Û>r"Æ>Œy>œO‘>Gî+>"ÿ];³¨‘Ë—¼>¼iè>,Ýx?qé?zóó?|ÎÕ?Uò•>꙽?((?†õb?5_{>fåp>ºAï>ùÓÏ?$ɽ?Gî?úò>ø˜’>´u–>‹¹a>–ì> ~©>X¦|>9>ÛÃì?S†>ë_2>ßm>¤`;p´z>´">üà|>éã9>×o¡?3ðJ?AH¬>ƒ_Ñ>$r?I`?sÍÔ?=‘?4Uµ?â>ó>J?tVå?—=?_ZÜ?Um¤>ÀRÏ>WsF=‰V§<Ñÿ;–•ÿ>Â>>ßk©>íjÓ>ñÒú?2w?2ö>þ W>ñ>ž{Ó>‚2ë>Ø]±>ÕZ =„ý8?VP?3ù±?²‘? +\ò?K†ñ?eX¬?o©X?pÓ0? [©>ðüC>Õ}>ÃΠ?‘R?£a2>øŸ1>»?-?6¡?8#ã??¢?)A?ŽC>ûü¨>ðÿa?¨ +ë?ºþ+?Þg>ïjé=ÕÓ= »H?‘Q?¤e?U@h?6™ž>à >¦b>ºAì>Ù\(>ð-g>×"o>ëP¬>ñuU>–Øg>dÈÕ?IÊ¥?a¨‹?ó">þÙO>ñ½ >î›?©¦P?®bí=Œ8S?)Œ©?"ëM?ý©?FÐ>g1>b >òJC>ï(ç>©W>Ñù‘?Âã²?Ì™5?«™?«ú½?r³½?rl+?l#¢?Xåš? u?…ç?Rpì?L¤?E‚?MÞÄ?w´j?]Si?+¼r?i>Y¸>…ö?ÝD?KÈÿ?«²]?eÉò:Ád>¾}G?sá˜?¡Í?­C?}œ5?æØ?‚Öñ?¯MN?^×–>ôQZ?€À?:ˆ?{á?ŸGó?Zy?†Ià?“Ñ>ÞüP?QúŽ?tí ?æ?rT>Ûí= ƒ¦?9žœ?Sÿ$?M}l?FþI>áo>íjN?¸c?ˆ9i?³t[?ºåø?Š&?ˆk?dµ?` ? Uô?ÛÄ?tü ?=u=Ó*>†÷??È? ün>ë„æ?7§?/cµ>Ñê”>ü“$?‹æ?™[_?›2v?U7¬?I¹>m%<ÂP(>¦í>ö.>?OD?k=Û?‡ôi?“è©?™í¥?“Ü>Ëx?¨®?º¢˜?y“²?r„>÷3—>ý÷‘?¥?¡ >÷Xl?:?}]Ú?wp¥?yPò?U`š>÷ˆ€??*?‘Ú?`S5?#‘Õ?]û?…fK?ÎX>‚(?07r?wÓù?³?Ö$ ?CíÂ>Í| ?õ?±E„?*àM>ø Ê?g\?o×ã>ê æ>Щ}?éÞ°?å?º(–?®’®?/Ä.?KTà?œ"b?£ns?¬ ?ši?xd.?‡ãP?¢å;@£g@ƒUP@Ĭ>ùþ–>ø†>øŠ?Šd?Ãþ?¦—?™»6?¥¨Î?¥¿¥?-ä>ø®«?]#?;8?¬1Ï?«_?VïÔ?UÓÆ?ú?0Í?V=?I|H<²#;€;C\€>öNH?î–ä?Éïý?xèð?W¼^?G?F+?xñË?™XT?º»É?Ëœ?ãœ?EÙ?n1?_ú ?)&?BÔ?’–ç?°læ>~­:›ó`>ÙÉ>ùF?f†Ú?iw>ûZ>ùU>ùé?H?¤Ïè?¥î?º×?¦dª?>Î#?]E@?šÎ?—˽?„fž?[À°>ù#E?s¯?ƒ?G¡û<åÍë?ŠÒ”?ø2ø?¦¼ ?cÆ’?'Ò?e?}y?Š©ý?Áàþ?Î\?­M?ºÖZ?ºaY?¼ƒ”?†à•?ˆÿ?y¥È?t?4NŠ?B —?aà?cPŽ?]Õ?P(@>ùS?=Z?yD?³éÅ@ª@ˆb?äÎ-?µOâ?yM?<ëg>øþ>øø:>øö£?E†&?xðO?•”@?°/-?ZƒV?*‰>mIo>»E?ÂØ?H#¿? àV>øз>ç”>ïÁ>úœ>ùÓ?ôZÈ?é²L>à0Ö>ÔK?Ò?Dt€?ɸ?¿ ¼?¦àX?¹#ð@€Ô@ Ø–?áþi?¡›Œ? + ?&Tº?JŠï?¶»@@?ÖѼ?xV?lÙî?f ò?B…µ?l¬>|D©;Ü•B? Jô?vX?qŒu?mÆ?0f*?#þÙ?æž>÷öø?­>?¿Mî?„)#?wÔ!?œê?ž.Ù@0¬=@;Ö°? +Ï?< ?Ñ?ÌÕ‹?¾.)?ÎÔŸ@ï@P?®÷L?¦nN?j§?^@—?¸ª?y¤?w%þ?®™P@"?õÊ.?‚nã?]õ_?–]?0†Ê?Xt$?TU»?P8–?‹É?¸öI?›~­?v„1?[×*?5¨X?Xš?„2@„š@0-£?âÁ*?“î@? š?‰g?~Ã?uç¨?¼×a?âc?Æ4a?¸C¢??h+>õx?™ à?¸k?ˆÐ+?uRè?¶1>ÐÚp@*Œ@Iš†?ÁP(?›¤ò?.[>ôÔŠ>¨tJ>”Г?NÁv?hÒT?pÐ?wS?v¿?tMÁ>Ù÷>´gJ?ÔRÚ?áÊ?KŸL?7YH?pÇ ?s½Ï?«Mš?®nm?hœ?j + ?s^Ö?tɪ@5“@5¦Ü?sœ`?mr…>ãj@>Þf©?€œ?>-‚c>in9@TJ@ j®>¬=J>©¦[?ó¤?øÂ'?©º/?¬äï@7Y@²@â¹@oÿ?µc‡?´ôA?ÂS?ÆUý?É<ñ?ÆÎÀ?µ&š?´‹®?§Í?¨·`>z½J>ö>>!vÿ=ÿ}°?¢L?³û8?~·?oËS?o®q?m"Î?r?v˦?ÌÓï?Úß!?F€–? #O?Fœû?UË?J`@?^I—?|[Ä?tQâ?¬Žf?΂@?Ádo?­Z»?`[.?&™0?qPc?™t?wµ?}e?™‡É?±Ô ?Vºr>ÛQ?#èÆ?©-?™S1?„JÀ?‚Èn?K?Ÿ^?|¨­?HÓz=®ði>JÍ?U >ô›b>ë[? +ûÿ?ë"T?ê°x@dc@ Xt@àÔ@åG?ßм?Ø&‡?–ô¦?Œ³†?…€„?ƒ}¹?Hx™?$Â?6>éu@@\@h>D@=Ø?®½®?}Çñ>èÁ¼?0{? ?’­b?¶[[?¨©Ã?;q­?W¥m?Õ9•?ÏÿÀ?‹ž”?Ž)?ì>çI??Uª?g +??J×?GN?C•>æ˜Ø? )?ùŒ>ó–>ç\†>æz>åëw?4?«ü?©Eí?¤­Z?ð~?e@#?dØä>Å>;ñ?ê±@ƒ‡?É~‘?ºB£?¬Ò> +Üõ>Ÿ„«>ä ?4ð¼?ˆ,;?JÔ>ErÔ>¨Ö™?^w?]N‘>Ú>/>Ðf1?Ÿ ¢? £þ?§Q‰?ª?Ò¤?â~?¶³?™oê?hð¹? »?M|3?©mW?Šö»>6>OA­?¢†·?£¥?T>ùJ?IÎ?_Î?`ð ?`×?Ž3ž?¨‚„?§¾?¥™¾?‰Lÿ>àQ?S?Ñ)Ô?ΰš?A-Á?3ÐU?Ï°”?í—?šF?m} ?“ÿ?§‰ ?™yÓ?„â?€óô?_?^ýé?^ê¸?^×Í?fðª?XÄg?“”m? ºF?“¹ñ?qÜ?‡«ˆ?}kÓ?QÎÆ> >€–®> î\>§­@—W@[Š?ëš#?Õ¤?*í?]Œµ?(ˆ=>Ýq?w}Å@ 2Ã@Ñg?Ýl ?Üzx?b;Ç?] e?]6g?\ò‚?¯Þº?Ï??Ìï?Èjd?—H?¸E?¾Z˜@}@/?~Õ%?z”A?$Šß?ü?ÖãÅ@*ø?ÐVw?„K6?¥ ò?ô´a?Þåd>×åI>á{6?¢Qø?« ­?'ŒÍ>ÛÚ,?¬Át?ÿ1k?ºø?9Í?WN?–ã?“Ü0?½Š?и?‘YÔ?œ*?´D,?Ã?œ†z?iëN?—ã§?Ù™?åñÎ@ ì@³š?]*ˆ?Y‚>û[ô>Û)X?=6?fÎ"?¤_:?Ò¹¢?¿ê&?™h¸?>~?@6…?=©ê?;f?8‹w?£¼’?³g7?°×O?®D ?«ª\?©*?¦} ?£ã?¡‹ó?Áò‘?Ã2þ?Qá?K!ð? ÀÝ?Ö ?g½i?”DT?’¯Õ?h æ?O¯ç?S‹r?A™ä?J<µ?M¦?aÑ4?a1?X{¤?X+Ê?Yä4?YÚˆ?ŽY?Ù¯?Ñkð? z¨?Ÿ2?˜ÇÍ?•o¸?Ùß&?él½?œËñ?Y;;?z?“¾¡?ƒŠu?3¼B?D2p?‡²?€Â?0½ ?&ú;>^Øa>F`Ï>½S >葨?&f? Æû>fZ>ÝQ?€¾?“ê@?s;•?W?¯:=øÇç> [=?`9‹?U¡^>Þ >×ù–>Õäç>Õ¸ü?€?Ó0R?¸ˆ´?˜jª?€@Û>Ô¤Ê>Ø„Ã?sÕ1?€ ¿?ˆe…?‚¡,?"û>$™>ÑÐF?‹Á»?•›€>PIÿ>Ce>Á|N>ÑVc>™+¤>rúF>z­=>“Ž> ˜9>Éá`>Ï5 +>÷¿S>ú!>—Yg=wäê=EÍè=¯<ÃAâ?€É?˜ÏY? —»:„Ôp>¢<>°‚E>J‘Û>&V>feO>–6>P:>² >Å{›>k™=ÆÙä>[~>€{Â>¥–>¼c>4=g>Šêà>Rx=M =€"¥;¼fU<×]<>¢„Ô>¨¢¾>D“š>,äF>ÉE>¼>‰Äó>¨,Ÿ>¦šÙ>UHÕ>Nº™>`IÀ>A}†=ª¶~@B¸×@eɬ?"û5?Ž,=¤œ>_>$ä1>7mì=Ì%P>%'¾>‚³^>Ùêâ?T>ÔAî>µÄn>¯m>¹¾ÞMý->ûó~?‡b?*>²av>jˆd>ùàD>âˆé>Ý6È>óÂU>ø¦ >áÎœ>¿ÿ>½>pø>>Áúð?,$¦?W*>ºÛ=œÏž>µYÇ>ôÃY>óî¼>õF>&˘=ªGl?†Çw?§Ff?J0V?±?a-?sáÓ?B÷›?2.R?©>óS0>²y[>¯ŽŠ>éo>òÕÄ?¯Â?¥ƒM? ›P>óaC>ñ”û>è]“=ÖŠe=ƒ„Þ?<Ë_?Uéu>sÍv>o>Ú>‡>ñ¥Ó>ñ–ß>ñ‡6?S%?m3>ûžQ>Ìïð?“åe?©Ñ±?fDK?\……>¢ê:ç;Ϧ=C¿,?I#?¢ªÌ?œ¢v?–”E?PùV?M)Ù?? ?œ?ˆNÞ?“q$?ã¼>ñ +˜?|Kò?‡1’?’­>ñR?ȽG?ê"à>‹oi;;È>Äôä>Ø‹5?ƃ?*'Ñ>›“>”þú>è­>ñ[4>Žf/>i€ë?…‘n?¥½?OûL?;6?ü™?ƒ0?Ís>ñµˆ?«nA?µWí?u£8?hsi>\óh>„÷Œ?µ ð?¬1â? Š³?‹Ì?s>óÞƒ?/O ?'¿>òa’>åB½=B%>ø1`?u%?rÌd?r×Û?ræù?_H©>óð?  ?"gž?Gä’?›~¬?‘C¿?^þ?@?£Šy?UL>óŒ“? ò¸?s¨ä?FL¬>î%Ü?Vÿ7?³¾}?R7‚=ðx$>Âý?2:2?y>ô1Ö?j«h?°hŸ?gˆ>ôjÕ?m~?¢~É?Á‡?×äø?½Q‘?¯¶¢>ðNð<¨zz?†Å•?¶>²2 =t¶ >ªÊ’>¼cx?œ¶?$s?m“c?uZâ?<þ7?%0É?Áëá?È× ?L„?Eû=³—Í=ïÊÂ?N°?L'Å@­@ ¨±?´Eò?‘ô?>Ë"ƒ?þ£?S©®?"aó>—8`>ëÔÏ?9Ív>ùã>F¯…>ycš>­Ö?ƒ:µ?ÒïÇ? +?kØõ?"¶">ös>öÍ:>öÕ?”å“?¯O>ÞÏÍ>‚› +?£¹i?¹Lz?e·Ì?CŠÇ?:Ù-?Fæ³?À‘Ô?­K£>´õÕ>æQ?wdÂ?a§p>÷t¡?Qu?÷…Õ?Á_^?‰¸?r¾Ç?Õú?ëG@ @V?ÁŒ…?Gú•?VqÜ?tÄú>ÝÀq>þe?Qš‡?j?ˆç¥>ዼ>ˆÎ>ïuf>ÿ†°?ܘÃ?òˆ¸@D°y@Dðó?Ûž?Ò(ï@?$Ë@.úÆ?ZŠÞ?WØx>ø^ˆ?,{«?°Û?¸î¥?äk?À?\§·?K+ª?´?pî¶?¸´Ô?ºpÛ?¹.ö?&c=P£t>Öšþ?.š‹?c p?x»!?ÇC¿?à&ç?v'¼?;–¤?5Ÿd?/«ƒ?À*ò?у?Š—>ÿ M?xäÁ?gß;=é´=è¢N>ù8É?,Ä÷?±oN?’Ã2?2?7?s³4?«÷?‘ƒb?O˦?”ó>ÓiZ?3³?}b²?aÉ–?H€ð>ÓDB>xû?‚å7?ÅǬ?’àë?y& ?#Þ½?kr>ù,B>öž¿?f­?lëù@ 9 @LÞ?\Š?O7±>ù5è?v6?ºê?­Ät?yÂ}?­D?¤F?T„õ=EÊí=çÙB>…b>ù=Ø?•ü?õ¬†?µÖ,?y>Ê>Ø…[=ç&È?y§X?±ñC>ñu=åØv?_m^¶?ŽÂõ?—PÔ?‡Hu?}êÕ?qM?‡Ìœ?X>à•T>ù1'>Ø$Ê=Ï¡>Ó>ù)€?Gë¨?·ab?§ÚÑ?–]à?„D£?N°t??AÏ?"‡?²u‡?þ –?´‰°?'?¢ïº?µfK>åhÿ?pÎ?¨;À?ˆH?i¹>p/?-¢? ‰¹=bxÜ8>Æz?¶8?´(5?†?ª@?§K ?¡G?Ac?«¦@'V @&ø?…üI?¿Ù?˜ùb?± @„3?Óz¤>Á4? +aó?J' +?¦7g?øy?³£Ñ?cõj?,·Æ>ø^Z?¬½Š?øR?Щ®?¹]w?¶í +?µ¦q?F°©?l?.>øÚ>C+>N˜? ?¨¨ž?£"o?Ÿ5?˜²¿?›­?Ù¶`?ÜDÏ?],>?`°…?ã°j?Õþi>÷›`?zq?õN?‘G?i.†?^÷ý?¸8?X]@9{½@'ĉ?óÝ?á1°?ÅÛ)?®I?wÆ?‰ŠÝ?œ2‘?M X>”áÆ?fq1?Ém ?ôæ8@ë°?¸gp?8Óg?@ó¢?P–{?Aj”?(ë{?Ù™@ãM? ‚I>ö4?† Ò?­˜¯?—·a?‰ ò?3+?¢@?˜Ø.?¸S+?‰˜ú?se°?×îi?ð•>æ\ï> û?@Ãã?\C€?Üã?øýì?Nsé?"?© +?­Âå?èý½?æ'š?¡§p?—sq?¬9?¦Ï/?ªe'?§º5?Mc?Mø¤?‚'#?ˆ¾º?ÄÁ?Â>Û?`[?eåí?¡xr?”ëd>ÿÝ>ÿ:l?swG?{vÓ?ôeÐ?üø@.c,@%ø?d#?a1õ?rÔ`?l->¹œ$>É®x?¿Ó²?ÀñI>òS{>ðλ?‹?'½{?º«?¶±?µ\t?·†H@ þH@ˆæ?µû?´ n?qR.?tLù@·H@ÙÝ?ýá?’@Î?rÚa?p¦x?cƒc?fZ§?·ã?·õ°?´‘?´­?z?oéñ?oË[?o´@@n@ +ð¨@%ºX@):¬?“7?T€–?¼¢w?Î8&?]x)?!<Ì?˜Á?²â§?)ñ©>ÊÏA?‚ƒ×?¬Ïe>þgô?Eʼ?—R©?Whï?#= ?šðë?Ø‹?‘åY?C ?“W?ò,¶?ÑY²?œVû?©Á?¸÷ ?± Î?§€ª?œ/À?kðk?‚ªÝ?°ÊÓ?z}>ë€3?F?w,Ý?|õÖ?†ÌÀ?Š¯i?:B¢?D“?‰ÞG?Ž‰W>«‚‹>uóŒ>…Ýo>·ü>›‡?>¦N;?O¼>?€Cd@,£E@zp@6õN?éÓè?£”ö?*¦?^?ß? g/?‡0?Æ?ƒJ?¤(?G[‡?ñ©.?ë: ?)Ћ?$5Q? }:?ÓÃ?l©M?uh>W|!= fã>³é­>íÚŽ?§¿Ê?æ??¨?f1?1÷>æ>ð.é?<9? :a?2‡?õ•?i¯?Qõ?à»;?Ú^~?ns?sÊ?è«´?ø´¿?çb2?؉æ?²Â?ÉØ?„П?d±?Rôò?+ƒ€?#µÝ?%þ?>6? ñX?žÌõ?δ?Ï%ë?œ(A?˜«?ÆêO?Ó¢.?¥]?Šg„?…?v’w?‘5?±Jù?Ÿ»€?l{?g)Ä?[ãÅ?acÜ?© ?© ¶? ß>á9t>ãhÙ>èƒ?ŸoÝ?Ü´4?ª¿û?m´2?”$?ÅÌi?´º ?†¬J?“G@ Ø&@ +j»?™FÓ?’Dï?‰?€¾?–Ãù?§ªh?h?Qà?¢)Q?ÇTë?´r„?_ +?_46?­s?°I ?Ÿ&¹?Ÿþ?äl·?ñ?¬úF?py?y4?Š¹â?dÎ>ˆõ*>À—^@+ªP@.—Ž@DML@J£U?è?j&Œ?"Ç$>à‘Õ?y¬&?Ý{´?ù´@%Ô@f±?£{Ï?‘+¡?Û‚°?¥|!?[z¹?\ˆ)?cZì?Z +\>ê>ï–¥>ÝH´>ÛLD?в~?óÞ)?H|?9 ?§>µ5 ?x?[}?K>¡c>«k?¯ñD?¼9¤?½?¾Å?ߢ?ôwð?ÞÏf?ÃÔM?ÄÝ?¸vÛ?´âƒ?ï ?)>»wþ>¥ÜÕ?*±?Z‹ @‚—@S±™@Cý@‡@¤M>ç>>äŽ(? Ö?£«?“¤>Ú >+à7<è ?vqµ@õ@ša@èÍ?í‹¡?Á ?1G>ý>?? ÜÆ?NoS?Yw?C<ì?;b??ƒ?,d¶?= 9?žÜÞ?¡›?^!l?XÉ>ó>¯ºê?!\¢°'>»2Å?lÕ?iž?X÷¿?Wnø?cý²?c®?„À6? ãf?“ø?VœÔ?Vj–?TF?Q(ì?™§º?¥Ïx?ÃK>IÑñ>ìsq?>`Ê?-žK?³? ñÔ?+î1?5X?h|_?fJ6>ÕÊ#>q§>Ç,u>³¤È>ÎzE>Ñýð=½íÉ>µË®? @K?¿p>¥ @>­OH?- /?6÷ù?°¾>Ϊ'>Цi>ÎhÀ>é´D?MC?MWÁ?Gõ??L¡>¬¥>V??7“?3ç>²Ã >¾p>£îÕ>È/ó>«¨y>">.Wÿ=eJø=µ,é>*}> +ÖD> +z>ø>…;|Ìœ>æ½>¾‚F>™š:ÇYª=uCÈ>±# >¬„ > Ÿ=EKn=´Ì>”™>‰ÅÊ> °:6Õ>Œª®>´¿>²–î>M0ò>U¢Ç>fí>Ì>…¡Z>”­m@` ú@‚òB=ña¦>­>È_.>¾nì>´x'>ªÈ> ‰>–f>Œ”*>ƒÔp>‹Ù?ddö?Œ +Ÿ? ð!?úÅ>ÌoÅ>ßW¼?¨Ôó?V"‰=òò²=Ÿô>o‡>ùå >nÜ >Ëßw?0îg?u³ ?úq>ÿ—M=ø{õ=ÍCy=¡ôÀ=m)=<ä?¬" ?õßÈ?\S6>õ¸æ>GÒ=‡>Á<–;ˆ>Ÿ×U>éSÃ?]¤ ?t>Þ?tb?sïN?è?of?ˆH?‰\_>¾æÈ>Võ2>ÛŽ:>òå>J'<þUü?Oz=?qy > š=@XR< Ð?Pq?qø÷?*é¶?)n?•³‹?™é>¿™—>ŒŒ=%Â?cü@?ŒÝ¦?gµ?bx%>¬<9óò>Ï’ã>í¥[=7?`{?…lX?D°Ú?D)ü?žA>ñÈ?(ß@?6²z?w°™?†¦ù?0Ü?u?¦€d?´ÙJ?‡¾>ñ( >ìnÆ>ñ-‘=r±m>Óò>ñAé>ñJ>ñOµ?°ô? @?v§1?v·–?6êñÇ™>ò›#?t×?q? +ws>ÄÙ‚>µŠ,?dÈÆ?yJ ?WÆ?(>R?7dú?;Ú?=G?#L¼?sÈ?ËÂ;•œo<ïr+=íy‘?r½«?Ü??±x?¥“?rùY?mX4?NýX?H‹6?B¿?t†E?Ô@è?¸/Š?VèP?{ ?ÁJ?qÜ>óžÎ?,?1?wÚ?‘8‡¸>]'C?vt>¬ì=>Ç u?OÌÖ?pŒý?…ÁQ?Ž|ü?˜T?cÔö?(Ü*?$ú©?1}N? +ª?ŽØÌ?lí1?eô¦?r8+?tØO?œ?{Û>å¸>Åü$>"³‚>žâ>áÎì>õU?k‚•?uoW?›ý¦? £Á?u²?rú?? ?Dt>õÇ’? ãW?uà?HÇÖ=‘O>Tl?[ò?6û1?Xt¤?B\Ž?%Õ®?4Â0?>šü?R»B?vjß?R°?$Ä">à r>d…ÿ? +[õ?9Úé? ç>öÄQ>"ºÁ< (€>µÌ.>öë“?kð‘?‰r?CÑÂ?%€ˆ?Š†µ?–g?wîê?€Pý>˜ˆÎ>½Å?üO]?ò>–Èx>ŸÙ6?^¼?SFš>öK®?;«Þ?¼?u?¹Jœ?§øD?¯¯E?É É?¯Å:?”=–?V{>ß.ä>µ>ˆÖo>¯„ >«âR>§ ˆ>»3•?‰«„?±Â?´Du?·hØ?ì¿r?÷Ä?Šç?‡Çé@78æ@?ïÆ>øÃz?&@ÓN@ùg?ƒBò?ox?5 ?aÚT?Ëñß?ºÐý?‰óS?{‡‹?$v¬?h›1?²– ?›Ðœ?x®ú?|µt=Œ¿¼>r€?9¨M?xÒ ?Úë&?øÚ^?sš`?AWk?rú¹?xì?Ž:ò?ŒoL?J”³?=ÐÎ?Šq@?Š_?¹©¢?ºÆ?¸ª—?šUã?)?5ý/?_–ë?pW†?"‹?q +k?-\>þþÙ>€]¥>øQ¤?1:/?+xš?%»ž?ü©?Dt>0÷^?> ÷?y:ß?®ò€?ºð•?‚¾­?pÙ÷?xbq?yF?¢C?«–ß?¨´¾?£§g?‹AØ?ˆ|k?šØ?‡iU>ùO"?n¬ð@þ>?º?>å>_V>Íò>æÌ¿>ùSÔ?|‘%?ºÿ³?—}]?yTA?¾Wê?ÜTF?ÂÄ/?»/?'p>±]+?W2?yS¾?’©Ã?™MT=í%4?Ê?%[?»Ñ7?À¢?œtš?±b1@Áe?ÿ{?Rv?XDÄ?ù@Õ?Õ/¿?ufA?¶e³@·§?¸Í>BŽà?W„?ÅuÒ?| Z>ù-ü?]C*?¤?ygM?B,Ç?£¸®?ÇCu?UÇÃ>ï^Û?<?[¨?óžE@ >Ð{=¥?­èA?»0p?}<Ä?v€?º¯ ?²ìƒ? #¿?, +%?º¥?²õ*?ŽYß?sà?×)f?ÀNÔ?Aäì?…¶h?Öw¶?¨ P?Eû„?]Ö?x !? ?ªk/?Ò$3?ø‰™?“Åê>ø}]>î»>ïŸà?³Y—?øbÆ?ÎqÁ?º??º:t?º3õ?ÑÿŽ?ÒÞ?36>ø*?m¨?sÿ`?œþ‚? @à?—ú„?š("?·B?±,.?‡c?ŠO>?vS±?…`¬?©;¥?¢ô]?En +?xF@ÅN?ó÷½>÷….?ˆ•Ô@9qç@†Û?½x!?Š;å>0?¢?…F?•û ?«†?°%k?¹D‘?pL>žÓ“?(Ùt?Œ ?Ãý?´æ?‰Eã?2O&>Í·>;µh?A!Ë?Ž±å?4iÒ>ö]?\?)5?\tÊ?v*Ù?ÇÙ“?ë!?Ç|°?¸˜{?¸m'?¸^=@ ¼6@ÄÄ?Ðyª?ÀŒ¬?iÜÿ?D×î?Ÿ—›?¨O@(‚@/4?Ä Z?®Ý>?Í,^?ÒÞ’@œ÷@=R?¥qT?¤œ0?Í'5?Õ©‡?ÊÔD?Î’?dÞM?Uùj>_ =>cJv?Õ ?ÕŸû??1Èv@j5{@egV?s©¡?s™?sŠ?kèv?L+?%5?—:k?“8’>-¨Š>…(?räÅ?xG?’®ù?‰[v?#m€? ,>Cw{>‘Aã?ƒ Ò?~ÕR?·??¶F?FG?ˆO?µL©?¶½â?Èž ?Át(?Q Æ?d>š@R@h>m«>E ?…FÔ?WÐ>ñB\>ñÀB@¨@;I?ñÌÜ?îè?ꆮ?ç/:?}˜ô?oÌG@ +@²?‹{ ?€c??u>?o5m?Ü:5?ï?­§?œEt?åˆV?ö™w?¶¯?™ß?Pò?.šQ>²ÅU>Eüo?´š@Î?Ùx?¯)J?Õ%£?ù,È?­¶?STA?Hðÿ?2c‚?!è?·5?ˆG¯?èLg?¬þ”>üEÀ?é ?l'?•“?êø½?ôK@ äÉ?ðäs?¬Ü?q?§¯?©þ¡?õ…ñ?ï°ß?l—è?jžl?ÇþŽ?Æz>ê~Ö>“¯‹>Ž%!>ˆ¢?0†k?`ó7?Ôx0@™f?×K`?»Á?š9«?i +?5¨>èÔŒ>Í,?>Û?Ä?¡Ù?‘G?OW?]l¬?š²?›ô?g°Ó?g–é?«p?­„V?[i>ç%~?Ne?fçæ?ø:?æ±æ? ü¼?ftJ>ë¬=<²Ä=eat=†÷|>  l?Oݪ?tèý?½#Ä?¯]ð?r~0?„¢?‡å?„VY?Pò ?]ù“?¢©¬?´}r?îì¢@+?®oÛ?d+?˜Ýü?Ãë¤?”öÄ? Ûª?XŒ³?ã…Ð?ó£f@$@¸F?F} ?G^?–L?ž½'?Â~O?ÐÂ}?¾• ?°I@?ÅÂv?Þ-b?Ë‚M?©‚½?Ž§¬>á×ö?‘]?áž?àÖ·?Ûã8?Ø ?zF²?V)‰>ÇŸÎ>|4?¡9?`Îã?sb?‰ ý?‘Ï?™Me?ŸOª?Ühy?áU @°Î?ü@?±Úa?§äk?ÕÊ?äGÑ?À¢U?§¥-?§¯«?±_Ø?¦>t?_8j?d»…?„9Š?‚ü?=– ?3Ó1@Lp@?¬;@½Ú?ñ3d?Ùß{?À’›?µ©?—“?“/Æ?^'Ð?]Ø7?—Ž>÷ð3?Ãû?ÝÓË?’L?]»Ð?^ãÜ?d$?!Èõ>@3™>è;æ?¦Ï?¡ +ñ> Ï«>i?Â?ï?Ý"ü?¢Gô?‹ë]?£rÖ?¶Ç7?¿«~?ÉX“?ÁtÀ?›!8?”Èš?\?\› ?0…B?$Ë6?H²T?\oŠ?$1>ÜZµ?TØ?×fD?ÎNë?Ml?~t|@­#@Ÿ,?äÍ?Ü’?‚¿?JÀ?7U?ì?°#?K¢ª?z´y@þh@©=ÁM>¬ a>áÄ +>ç›'>牮?N»?Ÿ+I?‚Éj>Û~(>ìò¹?FtŒ?Cë¶?´º2?Á ¬?—áê?‚æà?Bø€? ôL?]úÜ?¯x ?¤h‚?rí?Zþ,?!It?)¡?^jl?híÏ?‘µ¿?§.4?«æï?¤3¸?ïÜ?û?ïoU?Í^£?Î÷Í?°î?­’A?c~L?M? Û>üÞ?%Õ×?Z¶?Z‚»?Z|ø?Zw ?Zm‡?\Ÿ>éá>ÚGØ?ÉÀþ?ñ~?È„q?µŠS?¦(·?#£?#·>ÙíW>ãQ'?>?d?„Ræ?á¡?” ]?‘ ?‰ž ?ˆª?{†?YB?Q&á?-§B?0u?36V?63?ë=?ˆ.?7¹?2N>ìù> ÎŽ>¤ÿÒ?œ=j?œgÉ?Só“?Tå¡?Ã-5?×¾?•@¦?Wv3?øq?ž{/?’¡?V³z?PÖ>Rþû>s÷#?‘äC?¡VJ?“2?Á?ˆ»€?sUö?y¢?’xÎ?p?}ñ³?„¹§?½%>º„d>í¡ð?*ô ?V7>Ž¤õ>“…f<;’?7Š?šj?—É=A<Ä@á<[O>Åíe>Ïtô?/½¨?N-³?"Ð}>Û~~>È–=Ï•v>í=-†ü=¨ <>e=Ö>sXÑ>  Æ>i>ÀÞ>ÉD…>CòÝ=6•Ù>,8ô>ñ>C0r>ƒ¤ >s =Ó¹Þ=¹PC=žç£=„Š÷=T†ê= E=•ŸÆ>¾Ò¾>ÀŠ=ø:>c<…?‰ $?„'µ? €Î>»E0>™œ;÷÷=#Ïp=àë„=ù_F<¹”<1.…>éò,@%é@70&>Ó÷Û>ÒL?2?áë?‘^>É;ø>^_>qU~>‚,,>|w>\Þ²?rŠ +?¨jŸ>Æ_>> Þ2òÃù>è&>݃í?D´#?¼þ>?…ž>²ã%>¨4d>ƒƒ>Æ<â>ùðì>ø&>>å&F?ží?J7ž?iÝ°?„‘½?E£6?ªU?¢? ‰? h?p=>œ<ÒHÀ=,¹=G7¬?š?ò>áë×?_¶”?r¾? Ú?Ò/=‡JÂ>€’ì>©lá? 6Ó?/Å?©ç-?º°]?/ñâ?Ë>ßúK>¼H]=þÒÊ=›¦'>ïÝ?5h>÷/¤>ñ\•>ñ1s>ñOß=käT?çb?Þ>X($>5Œ">Mçè>fJ2>ãZ->ñ0ï>ñ/>ñ2 ?)ü??<·¬?™Ø}?§? >íÊÄ=T%òÈ¿>Ò-Ø>í'ã>ñXæ>ña>ñf¶?f?qt÷?om?{þŒ? ¾?qC?% >ﵩ>Á±¥>Ïy?`Ë^?m!>û\û>ñß1>ñç^>ñó™>ñüÚ>ó f?•€Â?ó³?¯‡? ‹Ç<«bH>ò[ô>ãÆ=bõô?@>ê?<3Œ=ÄzÄ=Æ^>ñ²Q>ÑË+=-{L>,Ûj?.?7Æ?sõ?bò?%Ý£?G>åÎ?LbŸ?Ù¬ë?¿t–?yéÛ?^wJ>ó˜¯>ó©Ö>ó·‹?zë?òº?Û)ä?®ÍD?Då|=“ÕŒ>ɦ?51?%¾#?&»à?Hœ¬?m‘Ð?z° ?ƒæ6?€cÔ?t—Ú?):>ÊÜ¡?¤ ‚?è„?“€;såÎ;]C=4¤h>È"3>õ>õ-Ê>õ9€?!÷-?‹u>qÏ>gë?4H?A×Á?u:ô?tQ¨?UŠ ?L&®=šÝ?3??Mõ?uû$?ZèÍ>ÞgG?"(…?ŸÃà?«Ì«?Ð^?´up?…Û#?Hé‰>ÿ¦†?i«?©œ?ðk?vž?Zwq?Mɺ?Ó‹C@¶$?“->ö߶>ð^M>â‚“?G ?_é">·Ž>0?ÖÚ‘?릆?LÚß?9_÷>ý¶">öt.>*Ì_>FÒ´?wq?€dª?¨‚??ˆÉÖ?t2?HÛx?,a#>÷è¢?!&i?4¨ú>y ?¥?UÐ>³.=´M?]­k?‹%S?y[-?x8>)ƒo=â“´?eÈP?x\Á?­˜?»çÚ?¿?€aî?ß9…?×a«?ºfM?¨˜G?G}¸?y$~?³Š?sOû=Ä›á? +e?®*J?Yí>úwö>ù¥?ªª?hî>øÕ>Üx +>¿Ü€?ê¡?'ÅÞ?Œe? gÍ?—¾œ?Ÿ!ï?Àv>ùn?‰ïØ?Žˆf?ªië?¯øï?æؽ?ìÈá?ò³[?åü`?y.æ?¢ö}@èÆ?êš >ù.\?$à?y1°?8'0>²Ê?/òˆ?‚œˆ?;€Q>ùBÑ?^² ?“>?pf_?W—÷?Yà?‡Éo>¼@=­]Í?Aœc?xi?hu?®ƒ=ú$Ã=ý +\?Þ9Î?Ø>‚Ê>®ïé?Tí?_¯Ù?jÙÔ?vÔA?yhä?!›?…€=?ƒæµ?–¬3?|«Ï?9>µ8†=g >“þƒ?Êm?‚¬Ì?»Ö?cb?ªÿ?#k?=ð ?£ª?»?59 >ùn?ÑÀ?æý÷Ô½>ùeŒ>ùes>ÿ½†?×?4Pó?»°?­¼?y[Â?žcÊ?ùYr?½ØA?œà? Ï?Qwb?+ØJ>º}7>êþ?&EŠ?̺>ùEZ? Ç>û~´>ç`Ê>ÓVú?¸g?ç¹?à +$?ºá?E ˆ?”?i/S?y”?q¸€?u½k?òô¯?ø0p?yêX?yq#?ƒ„2?rn=½PW>M±…??W?RqB?xéã?†Ê? |Q?ž?›ºE?»¥Ë@æ×?¸ _>ø¿œ?2æ?x¶¦?jd ?_ì?¤ ;?ØÌü?ˆÞ\? ³<>LÃÄ?yUN?¼´}?»™?ºO?’\/?‡”_?»kÉ?ʃ?)ø@‘?ˆÄ‡?”â˜?—U?™Dµ?›/f?—œ2?©6ž?°~~?•cL?ƒN8>Œ³>ª +?wÑÈ?ªÝ?÷¿Š?Üé®?n~z?W1¯>ûFQ?‚?|*©?ƒ2¨?€rã?OFF>Óºp?Yb?wI¬?½ê@ H¡?û?áÄð?µÿ[?†h?Éü ?ÿ"?©>áHZ?×?F…‘?PO?K¬?n +?ˆ¨¼?ìn>Æ …?Ÿ2}?É Ë?“·?~«”?JŠ>ôtâ?Íãs?õ¨Y?”Eã?~Q>»¤Ü>ž•£?W?)Ø£?m’™?u›?Ù…¬?âÝ@1š@ +'Ç?³¹^?°< ?˜®q?™‚?Ö£î?Ùë6?bL¡?W·T?PT®?K×ã?÷?šÿf?Éîv?ÉÝ‚?J¹?MV"?Ü?ú¶?°GÂ?®Êã?s ;?sÔà?sÄ&?s±c?s h?„ù`?Ýr ?ÓEŒ?«­Q?§2x?‹—i?”ј?ú­…?÷ª@®ó?ü¯^?Ío`?ºëÍ?D²Þ?\Ó¤?òY ?àÑË?> ù?9°ó>ò×? Êd?¢4?«…?ñ©ü?âŽÏ?Fd?Âï?qND?s´õ?…«?‡æß?ííÌ?ç•÷>ò.ÿ? øæ@4Yp@2Èd?ðrû?ðLÔ?ð2?ð /?êÝ? äÖ>ù¶«? ´»?O)?M8Ë?kp?oUX?œN?¦Ž?²6€?³2¸?«~h?°àÞ?åB&?óuã?Z4?=°”?N˜?LO]?}ks?‰HP?Üé@5Ý?¦Ø…?T°?+×Þ? Ž?£Ëì?ó˜ª?ÍW?ªc?­1)?¯ÿ ?Ɉ?ìnR?Öº°?¯¢Æ?{ü?&Y?n~?òó~?íx=?Í—®?½æl?‚p°?“@ñ™@Ž¢?ÆE??Ãe-?³:Â?¸Š^>›Àr>I4O?ˆMY?–ˆŠ?vll?d¢F?Ÿì¼?·J_?13Ô>˜8? Ms?A³?ÊÐ>èù'?3ŠF?‚¾Ê?° *@¡ÿ?ݽ=?*i?"i6?pr?Zo?oa$?oc’?¯øý?­Òo?±A>çOp=µM<æzè?°H;?æÜ6?n²@?-`>âI">Àr*?ˆlj?ãb?£Ð?T?; Ú?•ô?5½?ª½O?ŸÂÆ?K*?Oý?I5?<€¤>ò ©>äÃ~?»iã?èñ?T7?4¡/?±G?ùub?©÷ó>â='?0:ø?²—×?øQ[@‹_f@†Á4?M=?R?]Û8?bú°?ë¯?2C?»£A?Ú‚?¿±?©Ëù?©µV?©¤F?—¦P?`k"?tYç?¬Å?ªÇ†?x&?|ѧ?Ÿ{?ŸÅƒ?TõR?2±X?MÔ?`÷Ä?`á.?`Î ?¢?ó6?ÖëN?…_?Šh4?ÎCP?Ò÷«@ä ?þé?Ìý°?ÈI‡?¥H,?ª$?b D?+©??_b?‚ýô?„¦3?–‡É?˜Î±?§O?§@^?¦Ò?Ep?T”†?oÇÎ?$1Ú>Þ•¾>Þ†€>Þq?`®?fzN?'@ +Ûì@ +Ô‡=ûî<Â@?¬.Ú?×™Q?k¢>óÚó>á*F>¾=?Z@)Ý?è_Ÿ?*½Ü?%£¢>糑? æ?ĘÅ?Ü‚e?äÝÙ?ê>D?áµR?Üö?ÓA?¿|~?Ãœ>?¿<Ô?»š³?·é¤?´?¼?Œ…é?ƒ(e??ŸQ?Ž?1¡2?\k ?†Šº?ÀW ?ºë’?ºý=?¾£±?ʹÿ?ÍY1?A>ïÚ?•K_?×û?úM;f¤z>V£?[ëm?cËã?¢2å?žu}?^ð?R‚ë?Oý®?MuK?¡òß?Ò8?…vì=Â8)>D^™? Ý?3>?}{ä?€0×? *?¤”W?–!?:?ƒÞ‹?… h?œ•³?Á É?­–Ê>¼—z>·¤¾?‰fù?…¬>Ó:¯>ˆv?P¾–?•Ý$?Èý¦@Á3?õΖ?¤:2?¦¿…?Ç_.?Ë\»? I/>ääm?‰¡Ñ?£ÿr?ƒâH?Z·˜?-²æ>ßhB?$0é?  A?›Cë?MRÉ?J‹^?«ØÐ?¹'Ë?èÿ&?ö Y?~Q©>\ >älÐ?4Cè?)qê?j§?*Œ?M?TtW?Çþ?Ù¿²?¶È=?£6È?Š?Y€?^›q?Sã²?F¼ª?%á—? )>\Óx>À'?Å?ß?“¶Å?PGé?Q./?S€?FX‡>Ø0>Ý^d?Ò â?×Û¬?ƒÕ^?WŸ6?]ê’?f<?¦¦¶?í¤‘?Äœ>>¡B’>ÞØ?†S4?ŽñZ?Ÿ9e? ‰¡?QÆt?]Ë?SnU? |b?™Ë;?&Z%?)KÌ?SS?T[™?>@å?'ÕA>Å•=Å­=Þç>œH=ᾆ>å}>̹î>XÒ€=¹”‰>Љ’>Í_î=šá=¡?@B?>‘ì>Üs2>f½>~Ê‘=Õ]£<íä>LGv>XÑ=G_ˆ=å5R>…W¢>z>´9ï°>k¿Ö>¤-Ì>¸ñQ>Ä÷ã>Â@q>¼‚ç>Ây>³¶>Â>¤9-;Dcð=i×ì>x(>†`Ê>¾Y¹>¼òÖ=Ú[ˆ<§k<‰1£;˜y >Í5Ô?)Uf>Åp~? Þ,?i°à?Hˆ>%¯e>¹&?T'\>ú©`>¡&?Ó>>ȯr>Ÿ»">´üy>Æ&Ä=ª‘= «)>÷ ×>ØÔÑ<Í = ~@=/Ô¤=»=ªRr>6S>½Ðþ> X'>( Ç?9í ?«ù‰?dk­>ùøÆ?^?Î'>ÞS>§æ–>Z¬ý=ìzJ? Ex?Rb¢?e‰?ox’?¥¾û?¹Ö?9é>æv.=ÖU>˜¸¾>¹Ž0>®KO>£-=eí5>À®>ýP{?/ý?yò>Zk·>V2=òï=Åi?´,ò?Øúv>‰¦9ÕµS>øË>ôBI>òŸ½=Z%/>ž›>¦©ñ?}¯?B>ôh$>ñþG?í? ù?d–Ý?~‹÷?•˜¾?#[? Ú?íO?[6M?oÛù?®œÂ?°’Ì?"â>ñd[>Èž™>¸J>ê<Á>ñO(?¾À?fÉ=K¤#>€É>šÒ‚?/?’î>Ù¾=”Óý>òÎk>ýÆö=A×):Kž:@u€={ôP=º­’=ì–S>E¤>创>ñ{é?iœIm>’ûÇ>¤ƒë>ŠÜS?ÙÝf?æ­n=j>äýµ>ñÝþ?mèD?iÚ7>ó5Æ>ò +">òs>óùR?Híg?T^;?Rê¥?a„z<“à/>œÖ;>›±T<Q¢=ˆÜ·>Ê?nÜ?Pͽ;’À>nÌ?¡æ?£Oˆ?ËVÀ?ªST?!…?É>óC>µÄ5>æXÇ?Ì@¿?‹ÿŽ>?T²? (¨?±>ül>•"H<„>ï!?€Ó?=øF>¾Êä?x¾?̃?“b??ŒÜ?9K?2‘–?,†?%•Ü?'äY?8+°?²xù?ã˜(?œ—’?tç4?tò+?r€Å?Ÿ›?£v?q„–?ZIf?SÎ'?MP?,®?/Í%=]W¯?'[Ô?&"p?PŸ{?UÙ3?*å?ïQ>«¨ä@§÷@B±?ï’?ÍâO?b,¦?k>?‹¤?ut?8$¨?X#Ð?qO£?*Zß>Lã…?-‚F?ª1?—î?v·Å>ý– =ÆRP>¤n6>öã_>$æÕ<¬ž@==“4=’dR?D$?w!¬?8á"?k?÷Ç"@ à?ÙÕA?Ä«>ž¡I>¥@¬>²=>ßOÕ?†¼?sG÷>÷žS>Æe>ó&#?ç›?—ÔY>´ä/?wãË?–6??²TÚ?˜ ?}å™?›èÞ?ºo?3Rü>'>¹@>ø55? +z•? +ÓÕ?ío@Zý?Uã®>ýYC?Ò)Ë?Ú”s?±¯Q?¬˜?«û?!;Ò? Þñ?*l?•¡©?™vý?„ÓC?rÌ0>ø®˜?Y§)?î¥?º]/>øÅ;>ñH>ïpt?5Õ=?x0Ù?rú\?lïô>Ø)=À£Ž?^û?TËñ?3'?,· ?£Tª?ºÇá?œqT?Œ»ñ?ƒÈÝ?u²¡?ÆDi?ÈÊÉ?yÂÒ?y*µ?y,n?xæ\?xëW?y˜€?y;·?##?–Wh?‚>ùHM?(ÙÔ?yL@?2DÖ>ó†>ìÇÅ??_Û?]ƒ(?_Rè?`¡?¨$y?HP™>ùhê?µt?³¡a?>??|é^>, o<™€@ê•@,A¤?ª Ñ?˜V½?É1?Ë„ƒ?©g»?’M&>ùø?5?yxŽ?Œ§¡?É¢ò?ħ?ÑSr?¦ñÔ?îÜ?4Ö®?gYŒ?7üf>ùˆq?~Þn?»$ä?ºíØ?»$Ì?î"=‘Eö>»Q;>ù†n?œ*l?»%§?·??­ö,@ç@  ?†<ƒ?gÚ?Æ‹~?Éès>®êm>ËAï?2T.?0vú?i$Ô?„i·?»6?«jº?ysv?{þð?„qþ?‚t?gj?†‚?žÍü?3à˜>ÑK>{~>˜+A?“?>¦Y?;k¿?Ap1?FpP?KnŠ@(Ð@-@j?Ôñ?­ö+?…,o?y:·?y7£?y5Å?>ù-ì?jz?h ?ÔÎ? ¬L?]?k/>»â©>¿Il>ù ­?åh?xÿh?`j¢?1¶½?T7?‚ë=?¤Áž?ÑÒñ?‘U>øÔß?UÛ‰?˜ê?q“?3_>Ÿû=h?bnÕ?¹ø#?‘ƒÂ?s´?(N3?_ü@ á@*çb?€ÝÖ?Ú?:´h?Ia…?N° ?HÎa?0ð÷?4ˆ?8ì?=c_?ƒ~¥?†w?)½s?@ˆ?þ¤:?øo'?˜:á?ç/?dL:?Œ!?ìÔo?ÅjG>÷Àv?A,?¹‚?¤a?wœ?¢ûÝ?çNZ?¢ü>÷s4?Ç?™Ó?Í ?@/(5?ÝQÐ?Eº­?”O“?¹R?ÛÇ@ƒ§?¨PH?EO´?5Q¥?$êæ?x] ?—”ó>îC!=Ë«>OIà>Q÷­?Õ] @lg?ÎnÊ?·Ö>™\ó:o2?É“>?ö?½{ ?± ?žÖ*?–€e?ò„W?öµò?­¡?¥OQ?ðu?õˆÓ?ºÖx?¸ ä?½©?¸êf?µ Æ?¯0«?Vcó?fý³?·»À?¶‘«?¥}²?©Í_?×Æ(?ÎÑ–>ÉAs>ÅJÇ=æ’Õ>2Ö?{|¯?jmh>õð>ôh>õC—?:Ù@×ÿ@Ó»?s·q?x–Ã?7 ?˜#a?¶+?¯ˆõ?‹CÓ?Œ?‘Ð?¤'T?ç(£?ß5—?¬)Ñ?®ùþ?˜‹"?Ÿ%ƒ?¾cf?¹F?€0?cNm>òA>ÿ~?1ÿ@?r @;¼@ñ?q–«?o–K?e+À?€Zý?èžò?ç¼?´Êô?¹À»?ïôÒ?ôð@4„Q@1Lò?ð~"?ê¡å?2OÄ?=ƒ?VŽû?TDâ?Ü ?ÔZœ@ Š˜@ +•Z?êÃê?äbq?ŸÏ?˜½è?4÷±?2PÁ?e½"?c^?’M?› +ß?º„>ît¿?ˆÒ2? Ç?º¾Æ?ÁmÙ?¿ß3?¾L–?hA?bp¶?lwU?yvÌ?ÙSù@–;?¤Ž(>ìýê>ìà{>ìÂù>Š…Ä=ˆ^°>ŒÍÛ? +¶?,]?\s!?“­?ëç1?ßѸ?¾7«?ÂàA?Êò?ÂÀm?®½E?±f?¡?¦óÓ?ÛÙ?×™r>•¾µ>o¿'?¡;?³Ùe?Çý?ÇùN?™®‹?Š˜Ò?(ðù>ã­õ?l1?5µÚ?«è>é*?X]¨?£Íø?¥ o?¦O§?ºz*?âè¤?ãå?âv?Û±Ò?­°?·-Ë@ÚÚ@üm>ñ >çtl?NÁ?QËN?wjÜ?ƒ_‡?•nX?˜K?•n×?’Êë?O£?G?>>æá?Oü?¼‹Ì?²?¡3­?•lº>årE>éÆ]?c\9?hI)?‰í/?…-7?·2?ÂM?Ž¾?kØ¢?©?ÖOu?ĪÉ?« +#?…®Ÿ? s~?CÙ?µT?²=r?ª”ï?¨—?N ?RÀN@l¡@ 1„?V¨Á>â¼]?‚V?©éÖ?ãûR@ j£?ýïð?Ù7«?ʈN?©v­?¡ß¾?aÅü?bÒ,?¨žv?©?p˜?aQý?ò®?—¹?Ù'ç@z]@ÁÃ@ {z?Ùúé?";?J+>Ú9é>ñr¹?æL¡?ëuù?¦D?`z?€>ë?„J©?W™J?;Å?~6?§§?“.A?E­?^.²?²(}?°S?Põw?P¹ø?«þ3?µ^³?D >è>ç/É>àp?‡i•@ ò?ô­%?d}_?bnü:pW>(>`n?Ýô@ó9?™m?>ÝÅg?YR_?—™?»²g?•šY?Ú?“.? ¹E?ÀP?ÓK?½»š?¹ƒ{?ÐùË?݆?°jÓ?e¨/?‚t_?¸ù?¾éÞ?ÖD?Ùá7?u}Y?e†ì?{®D?yŒ2?’¾È?žVá?¹Æ¬?öå”?Ñ‚g>ÜdŒ>åî+?\@º?\F[?Tzj?X‘¦?\ D?\%?‹Š?¤—Ë?Rkl=”L>‘ïO?¤ùb?¨'@»@r©?G¡?d¡?&ƒS?@i½>Ñ% >ÚÌO?£? ?Ÿ ?ƒ™?kk?ƒçÎ?†óW?a»¡?\²‰?_u?O÷‰?‹¶$?º‡?°_ð?”p¡?˜Ã”?ðŸò?ó=|?†%ý?tì?_ÿ?[5)?b@>Û-q?G ?¤U?Ž8>þ±”>öIí?[Á?Zø½?Zô½?[uæ?[¡±?ZÜ-?Vt½?O¯?yZe?¤ ´?¢ž4?™ô?œ×˜@#t\@! r?³Ÿp?¢Ì?‚u8?Ké`?k¸Ò?ŒY ?KÈ>Qj9>µ‡þ?ƒ3a?|î ?r©Ü?„ÄÎ?±I?µÒ$?fT,?k?o‹?³€?ªÂû?…©a?‹g‘?töo?nü­?µ—>ã '>ßÙ:>Ù)[>VÂÆ>ÍÚv?žïV?£OÐ?ØQÓ?Ø#~?ž½?˜Úå?+7þ?’?0Ì?d‚¼?Gú½>×9->ß!±?®ð?+\? :?ÓA>?˜/>¯XÞ?*Ol?Ãô>Õvû>÷º²?tú?p±ì?‚W÷?‰Ü„?VÀ>µ·!?ü„?Aö,? –>”Üþ>Ê>[V=#‘Ä>4î>¯ƒÀ>¨×§>ðAu?1>Å=>Ž¹>‡h>€²7>R +!>3£>AŒ5=Z‰È9R¸=ÓtÒ=ÀL=¥tÚ=Š¤1=_«(=*Ž<éK¨>• >Ä­>kþ&=/å?8?=P5>ÿù>¨â˜>¡Çû>š«#>“”=õu=ç>r>F >néù>`Ÿf>R™©>D¦:=î#­=›N=Çì=¬»<<¢`Ã;º“Ý=S'<šw–=ŒiÙ>©¹©>®¨g?!–*?€??{ŽÁ@ S±@À¯>’G~>ß«1?C?L8â>Þø\>Ž)ª=ø5>]5ô>‹vø>©Š`?8^Å?_Ò}>}³d=õ4;×°q9´’l=™"ñåÏ>³‰”=ðêž>ÆÚ`>u¬ü>ÈÉc?i}'?Žå?·¦4?Y“Í>‰µð>p̓>5=…Å©>¿ó +?V>nný=G2X>Â~[>ý¤q>÷b?íÝ?Sóˆ?há>Pd1?)ÐÊ?Q—>’9s>>T‹?4@Ù?>Ýt=á^G?B)?sÌ&>ÜX@>¹(õ>íjÆ>ó™,=f¥?VÅd?r×£=êSˆ= ‡>Ý>ò´?5.¥?0!>úÈâ>ò]?'=œ?1½Ã?i·5Z>Ð?oÕ—?v‚2=«øÝ;®€=ŠŠ°>Ç >å"Q>ñz?K€Z?MT?>^é>A}?$¸š?5&?=~»½?—kð?›¹\?«d>ñ^5?c¾”?q(¡?ï”>åÅ?Pßá?L=†>ÌŸò>³O¼?p?gƒÇ?×I?zK?à¸? l¬? +Ê>í¢?l4Ò?qÀÊ?³³{?µ\f<Ï3®6<Š£¡?q¾Ø?qî?[¼’?Uh3?O…?HµÁ?BXh?1a8<ü_£>¾Ÿ¹>ºð> Pl=Ì#s=„rª?x5>ø(|>òÓ·>ô~µ>áŽJ>ç.#?$¾*?$ëy? +@9?qê>>$É>®¿’?6Õ^?Ž>ÀË8?AeJ?áôA?«á8>±ãï?h¢?sÇc?sÚ ?sç‡?oÿ‰?b“??M>.$Š?-ð6?”ZS?…¨ú?„é?b}?7/B?=Âœ?DTZ?|lï?‹î?<9ÿ>Ýq€?U|%?ƒˆ®?vlÜ?u1?§AK?³\a>á»>„­?Xú?uPü?Ép?Ÿûñ>[>t÷9>`Hx>BË?sfþ?t`ö?4Å`?3Ñ?¨~ô?š˜Æ<¹lI>";½?|š^?v?(Z?zŸ>`ß>¿E&?$PÞ?"Ñ3? +,?.(ä?k‰?tFÃ?|ÞÍ? Cû=ñá? +?e†‡?}XÁ?©ô?'ºð>öÿ?FM^?\26?OTÂ?Bz4?jW¡?w<`?½ÉÐ?Ã9s?Ô«?ÚÐ?îð8@^9?Fd?#¡ä>Ö'^>â³”?²½n?¡ÎŠ>úÓa>Àr>—û‡?Œ8?‚}?=÷#?+„ ?%©Ø?yYx?²Z?¹s?ºi?žo?ó?TRc?0?éµ>øP€?WF?x\¢>UÀ:¬…>ÔÈh>øyî@$Á@/ +‚?’Ô?œŸ?º—w?¢ëÊ>0ià?•— ?‡B5?XNø?8>øË >»!ø=«¢>šù?!d>¢R"69Cp>õ‚$?xøè?šÎ¹›F?¸Ë¿?õ©D?Údª?Ǽ/?»ç?ºÝ?Ä™m?ÌdÞ?Ò`8?Ø[?Ñ$‡?×Àt?„'?€ÞÒ?yI‚?fçÕ>ü>×MŽ=ÎG–>òÄG?®´¦?—p?U ?_À$?yi?a7?=Ìr>ò²>Uÿ_?2Ðê?‘&W?vX ?[ ‘?.<>ùƒ–?OÓÀ?qúù?¬˜?») ?pp>éÇÓ>¨F>æv^?ˆi>?Š*È?El?Sþæ?…h#?‡m†??^?G£Ž?„…?—O‚?ÉçC?¿»x?NŒ?€?\?c¥¦?8¨¿>ù¢6>õC2>ø0®>ùó“? ‰?±š ?ò^Ë?·ø0?•9ð?l[?U‡}?ˆ©j?”9w?ŽË?”¬f?Ô©"?ÝIÛ?½?º~s?y­‚?i>6‡9?»1P?¦I?¤?9ºF?»P?—Œ‚?7É?T&†?³Å'?±2T?®ží?Ì[?Žcä?d{Û?’-?YÒÃ?ƒ?ó¡?š=À?9 È>ùn?$?#¥ð?J5j?\c#?aZ?fJ?w~µ?yR,?urâ?xù€<ج=v.N?ì—1?ÜéÈ?g ]?H·³=ÞÎç>ÁŸ?S­>?sÐ*?²†"?žxž?yH?=rF>iª>îè•?^gt?¯%ý@]>?õ2?Vé}?£Û‰?ä Í?è«ü?íJˆ?„ç‰>øÈú>øÁj>ûAP? Å?˜À?º/·?Ý}?Œ,?‚°”?(n>ø…„?E&}?K×?¾Q”?¬?E>?9´Š?mKA?drö?[œ«?QMž?Q:Ð?Yÿ³?x U?‰Æ]?×ÁÌ?½Éÿ>÷û™?ÂS?wé?U^>÷Ö‰>ûÃ??4R3?w°P?ƒUU?’ÂD?8ét=ú•€>éD@?OÎa?ˆ9 ?µ£?¦Q¿?†õ·?wä}?|C™?3.”>÷£?Sú‰?|LO?t‚Î?vçä?v³ª?f‘­?]º>öµß?”@Ô?³Š¹?6;>üTE>ö²{>ötB?]IF?jŠ?‚f›?ˆü@5@ý]?íç§?çM‹?Ú?ÝWî? +Ž†?¨|?„Ë?‹Ì ?Ù×?×)î?×µ›?Ø~Þ?ÁrŸ?À5b?2?ëv?·Ì—?¯Çd?9µw?@ýÜ?H?ó?8Ç=ü*Ã?|B/?„*|?¶ç?®Lt?sϘ?Šµ?é\?ðâÜ@vû@{?…?5¬ò?¨¨Ž?²!V?áñõ?ÌŸP?sX ?„W +?©àù? Ìt?•\?‹¿ø?4fµ?2^Û?>’h?UY?ó£?m?ß]?Ï­Â?xÏ`?J²ä>J?2$h@Q<-@=?q°ú?a!?Î\>ù’5>ñ6’?e_?´á€?¼1S?ðú¿?æ;?“r-??œ?¾cI?¹ý³?V??Y·™?£ôƒ?£0?Ú¶™?ÜÿÖ?Ñ¡Ø?×Ë«?Äçæ?ÈéŒ?µZ²?³†?Õ>ÕF?r&9?„ v?¡? {Ê?¼=?¶B›?d÷v?Q\B?ÑàC?î'¥?õž^?öz@(e“@?RÕ?ÿž«?ºb?W?mÁ?'D=>í?™É°?äË×?§K†?Vd«?V÷~?[˜.?„4x?¥é?­>n?¿"Ì?É$)?ÚãV?´ê+?ɳ?7y*?k_U?„q?Ú"-?Ø!@|ç@Éö>ìE>꟰?ºñ?¼nò?§f)?«7{?ÐÎó?Óîë?·j™?¯J!?¥s?¢T¦?Uu°?Íã?:ñþ?i ±?híÔ?hѺ?†æ?¨OÌ?›´?hc›?hBÝ?hG?K­^=¾O6>VÄà?£Ì1?¡á?iºÈ?g_!?š/?¡æ0?ª`?­2@ +@#?ÔmQ?™Ñ?KF>æC7?bÿ?ÄÄÉ?¬»Ã?eÔÁ?g¾+?cPÂ?QqÇ>åd>êgê?ã•s?åv@s·@BÅ?ÄeO?²¬?pPÖ?*ð†?šP(?Î/1?°îÅ?ˆ?ŸÁ?ÏÃ#?Ía­?³Ÿ?¡Ê_=¥RË<ÄS?¥ªÞ?ªRc?€(>âåp>ïú>üÏ?¤åò?è4þ?Ηä?±à ?¯ø`?©—?†C?aïN?cY#?€Dú?o‘?¼Ï?»n“?«1®?¨ö@ LË@(ÖV@ +Ö?¿"?]ô>àÂP?)¡D?–ÙÐ?…Ï?2ý\?5X†?7°?:w?z«?†±™?fôE?EP(?zud?›óÕ?n³L>ߊö?2Ó ?Ñf™?ÈÈ(>ß=ì>ß*¼@ël@%R?£³Ð?^ä¾?³K;?Þ2?Äún?«Ü‡?«Â?¢?˜ˆ2?A\q?>F÷@yR@mL?\{×?÷þ??”²?>ŸÖ?[­Ü?€óu?kjº?@­ ?KÀ‡?]•‹?Z¦?Tê?ÙŒ?Wõ ?]S?Û¡õ@£?·Q­?DÍ#?Ö%>”…>Èž½?\ô»?Z"â<<’Š?‰zü?¥Žz?ù?¨@f2?Ñ^t?\•§?M¯?Û5?¯>?]·_?[Nx<¶"ž?Ýe@Pk?‡µ6>ü¯¶>êR´>Áô?"ì«?¥?­Wó?ó(Ì?õ£½?6×>Ûõ?‘Øí?¦K-?Wé\[>Û£Æ?Ê¢Q?öJ?ùk$?ÿ"0?Ù›“?­÷\?°^ó?¤–ã?¢š?°q?“T£?fÓS?[Xè‡Þ?]Ny?¢‰Ì?ËBO@ œ@O?Ú8?ÓQ=„e=‹>ÒÛ—>÷Åœ?º¡Ž?óü?´>}?t(È?\Gš?*èÍ?1ù×?}°?ˆÞ,?g[7?Z«á?‚n?Eø?BÙ¸?\™ä?âÝ>?¼T?ƒ?Å3 +?º|ë>’:8>†ÊÍ?ÈŽ?Ú…?‚+=±‘s>‰6ð>ÙÒR>’WÌ=)m%>®ü#?ÒqZ?Ó¹å?[„Û?YV?š?¡ú?Kˆ4?RCä?eyA?kþx?}Öž?rO?pùÇ?sÝô>õ»J>Øj? ö?0J`?-& ?*ò?;Õ§?[¶Š?H +>Ç2>>ºÁ>®=I>¡½½>¼}ˆ>ÖGº>³.0>ž:©?!“?•jä?;,>Õd >ÕE=eŠÕm>ª1s?ù¢?7!?"¤æ>Ðؽ>Ï!>%N‹>)B–>® >ÏG„?_“?@³É?#ÓI>¥¹x>˜7^>à%=úh½=7¦=Õ;>Ë"1>ʶ>ÊH½>ÉÖ…>ÄJ$>Æà#>¨ŽV9¨Û@:(Ú>šý>ºfÿ>`ð•=ʇ=ÿW¼=¯ûæ=´SŠ=Î.=è«=ùb:«ÿ@=ÈŒ >5 O>AÒa>N,>[C=‡ä>;™ +>™Ú>‹ñZ<)ß²>6?X>´S>³†ç>²«ô>±Æ|>ØßZ?5]?:ƒ&>΂Í@Øß@*V>·M>ù?ˆc?`nñ>Wûº>òhÞ>ºƒ9> ð=ñˆ >Gë>Çg>ù¥‡?Å^=?%;Ì”è>øóÊ>ç¹n=ª£q>þas>õþ>Ñ.>×Ç5>üÇ> ï>xÞ7? òè?3`-?=ŠY>ºdH>Œ˜>ùi™>ÙþÁ>©¹Â?HA?U²d?"óE? Ì?•f ?¹Ió?;ب>ö̲>UrI>%O†>¬g@>¶_%>›Q>«¾õ=…µ>?ÎÎ^?ð©>àçD>6fÐ<®&Ø>”¥<>‡¶]>äÏó>ó¥³=Ñ};¼tð;v³=(KJ;Ó4=¦ÄÐ=ä=¸>ƒîŸ> äS>íï•>òk?3±Û?2‡÷?–¶:?žÙ@>q,>S1>ä—C>ñæ.>O´S=æÙæ?©(ª?µIÏ?wAÞ?cI`=s9Ï?éÖÇ?ï)?€L?q°=ƒ×H>á, >ñnˆ>Nx>!àJ>Å.æ>¨î–?éJá@#]?$Ìè>ÿ>ñy¯>ô¹>òæ>ñ|s? Ç/? +Ž>æ>*y?Š9’?’tÒ?•,?˜Å=—Õ?ÃÌZ?Å0x?Z ?^®Ä?¡ÎÝ?«%Íò›Ú>Ô«>{?oÚÍ?rÔ[?o?|À?¥‰Ä?•7$?Ut?F•Æ?B?„?$w? ºn?>Op?DÓõ?K`?nÔŠ?›Œ[?´ ­?Þy?¿Ú¶?vÞ?sí4?sùû?t…?t?²„é?æ“(?žBË?P?$>_ù¤>¿Ð>ô†î?g>]?v?£÷»?·8@@…Ê?þé0?òà?[¾º>ý W? ­?­F?×ä¡?çRÅ?H‘+?%äO?X·?kIû=‹Ïh>“>ªÃ?uÂ?y‘\?£ƒX?žb<>æ?Ž? è?v \?DÕÎ=¢P¨=è[=¹R¨>‘<æ?-ýŸ?iÊ>öt?)RÅ?v‰¼?}`ñ?ˆÛo?µâ ?å$l?¥$D?>÷?3S? ®ì?±ª²?öþl?vLG>÷7?Öœ?È>œ$«>‰Sÿ?‰¹?*Ýî?QÌ«?pE-?›{Ô? 3S?+û¢?,g‘@z@"'?Û^]?Õ²…?w½ß?wÈØ?w…5?pñl?`ôl?@h?'ñ?]Rž?§•È?s°ö>ø?6Ûv?x&¸?ŽqÔ?¡‚¯?ÿ?E˜â?OeG?`&a?|Ÿ>øg‡?Zw?xs¬?w‚Í?m^\?¦È˜?¨bå?«ðÛ?¹B]?{BÁ?|[?­mž? n]>ËX+@´@±‡?ºŸÐ?­k7?~¹ñ?F™Â? +J÷? &j@ÐÉ?Ä8f>óÇ?uSÓ?³=ä?:ŠG>£Q§?fÞ??“‰Ý?u¼?€m´?Ûë?úK?Çu™?ºí¤?b)°?Sú\?™hQ?••°>úgÒ? ?¾Íw?´‹L?y_4?c*?>ùf>¾ `>ÞÛ‘?»6?´/î?¥9S?’Âd?y%?y‚ˆ?y„D?R9~?*ëÞ>ë>´P?Ñl?+ »>ö‰ü>â<Û? ý?0ü=¨wþ=8(¬=3ÖŒ=rò4;‘E 8Jò>€F÷>«‹Ä?NH?fQø?Êç.?­¶?>›l?2²%>ù¯,? ëÚ?y¶?BE?¡qÔ?‚ÞR?ƒí?´>ù·Ÿ>hQ¶;$b>— l>ù¶s?cÔÛ?’€ô?Ó*ž?ézb?&ùð>¬Ô«>ÂH9>×°¿?p?u[?Ð?Óÿò?¥+?¥õµ?y¬T?``ï>jé»?»@o?®w?y§ +?y¤Ð?zï/?Y"?¯Åf?Ù™f@ è?ó0Œ?»1«?œð?y”™?Ïù†@À?°õ?yÞ,?_¢?YåÆ?>I§?&Óp?GÌ?Yf?|¶å?kB¶?áµ?çÓ?h?w¦?äå?B6?²œ3?©h?‹øR?Ž±Y?yIa?QAL> £O?(ñU? +K?ù0þ?ÜêÓ?›#ÿ?‚Ù?0-Ý?¤§Ö@’@ë@¢?ûÜh?íJL?¿\a?‘‘e?€-¡?t³?(˜Ý>øÙ}>øÒ>øÍ>?¹±á?àµ@!9‘@-õ?`úŸ>ø¢P?­ŠÅ?·Ðá?£”û? T6?’¤5?™­@??ŸJ?MÊñ?ì&K?åȧ?ÎÁÑ?À&A?<¬-?>ŽÏ?x0 ?g³?‘?Ì?rQ?!†?wøh?í?µ¨¿?‰ }>÷ÒD?UŠ?¯3y?˜/j?w«Ê?.Îg>«’?uV?É.Á?zeý>÷kö?è?º)?‚ ?0:Ä?„ -?–¥Ü?Ó´&?÷Ñ?–-'?ZÄæ?ãû@ .j?tà_?‰£?dŠ?zÝo?vó?vô?­Ä™?³éA?"#‚?ò(>3Ъ>$iö?ÁrÄ?Ôâš?h;?fé¤@¡5@ã1?¾‹¥?±°q?>‡Š?>G ?¹V"?½G?¸_?µØ?‘L‘?ŽÎ?’)Õ?Bè?Ö5{?À+~>·Ï>•(ä>;¶Â>ë=È€f>Ž'¡?·pš?¬ä-?t«p?ï²?í°{?Ëب?#K“?1]Ï?M>¤?G7K>óä?0Y??‰‡?<4?'$!?U¢¨?ž7+? ?±2&?§%‡?sP?se?rñ ?mÜN?T]F?]å ?CR?Žrl?…êÏ?Ÿ›¦?ï³%?Ü)Ç?r?X1Ê>ññ:?.Ë?lb†?ƒ…ø?µ's?“T¥;…ÅP>…Tý?´òZ?› ê>]ç>˜W? ´ý?½˜>Ÿ¨>ì\å?£íN?›b{?F[?Yqt?´C?°Ée?oñ@?rv?–éy?”Ù“?—›r?™9J?©í:?¦7§?3„>ï®?Ïà)?ݲ½@6Ï®@DCw?Ç„?#¸´?Ò¸b?îCy@+@íÅ?\rÄ>å%.@W@2;×?fP|;¼Á?8ó?fÉÑ?4cÉ?6€?üÿ?¨šD?l°é?Š?­?1 +Ô?{ñ1?±•?·r?ÅP1?­­¯?VÞ?u¢®?·•¾?°âÂ?­¼?·yV?ÏȆ?ÉÕv?&`û?#?ÍÒ?ÓçS>Ï<>¤ +@J7@If?¥²?‹6°?X¦ø?DJW?TІ»? ;v?ßUk?Ù•A? + º? ‘÷?(E¾?/§‰>Û¼Ÿ>Òì®?Ù1@ó@m@É{?¹kù?t–?\?¬¡ü?·ÖA?Ä‚É?ºð?¬M‚?¥Àd?wˆ?t%E?¾VÜ?ÀË€@´@Y-?tÿ‡?&ø¼?œ5?¶ B@<à@#*}@<‘@—Ü?¶=á>ð[:?uq@ê@ÿO@*¦@%W?dן?g1ó?]ä¦?Z(Þ>Nò–=\ˆü?4†?ƒÿç?€Äl?z?µÖ)?þe?Ƶ?Q%?!Å”?aßZ?_ET?q{É?xúŠ?¦…?©ì?Ìß?Þ±ô?ŒäÚ?,_‘?\T*?ÚF?’Mp?ÐRû?»"â>à[>æq?aÖ?æG?Af›?=½ì?šo.?µã?“™I?pß?Z±»?3îà?45s?YM?M¸0>óq¦>ãŒ?^sB?_$?_ÿ?_:>£]=ö +ø>´Å¤?\(?~‘ã?Õïç?Ò­ñ?ÈY¶?Äœ’?ܤù?áiY>ë9b>™Ô•?8uj?^ +#?]øM?CŽ?<Ü>vïñ>YV ?›8ó?¥£Ô?vÍ3?\Ç%?`&?_ôL?û5¼@\ [@9]?¥hH?­ü{@,@ ?³×h?°uà?Ÿ[T?•?p7S?GO? Þ?ù^?åÀ¥?´¼(?¬Ž7>=V>a?¦¿?ºöb?M ^? ˆ?G—¯?]šS?-ž,>í‡?>½?ln? .?‡” +?‚_u@{„@'ÙÐ@!ÈW@êï?¿R:?×õ?J‡á?­ ?—8?>Ä”Õ>ÍãK?e’1?bm?[ïþ?[m™>œ Æ7#€?”ÿ?¨”N?¹Å?ÛGT?æ(ß@@ óp?R"­?D#Î?É”®?éVY?†Ž¿?{¸?$Bê?3ˆ?&åÞ?îp>ó„??úè?"¿!=tck>1ô>z?(1?b­™?€ò¤?£á ?àŒ?#ü?0ÄN?¹B^?½°w?çû>¿©“>ÔxP>Ú Ú>Ú0>ÙçÚ>Ùàd>ÙË >Ùº¾>ÛòÎ>ãªÂ?]WÕ?ce?|Ö>ù+?7Œé?YX?~IK?”ËÛ?}-Ü?.—?¡ù>ظÈ>Øj±?I¼?‡?ýF?"ùá?‡ƒ9?¹/‚?™ £?.êZºû=“Ú>Þ.9?V×?;J_>á<*>Ì·ž:õê?3Õî?SÂ>š”’=€°>«†Q>¤&=Ó©j=ìº>TJž>!>ˆ±>)í¸>!2;DN?;?x|?EC?‚[?‰ÉœÜŒ>¢E¢>Šq2>2ñ›>eÿ >»æ§>ÂEê>Èï>ÊÅY=oQ[9¥º;™ø 9Ž =G=}¨>“(6>™µ¢>×Èg? _Á>ú­ü>zŸh>kÝÒ=€bþ:—©º=6=„¦±<×Þ;¤æ€<“+`<ýP=„hz>¹úà>Õ£Â>©­t;¶P?ÕÃÍ?꺠?[Ë?__ú?„2?L>„S?¡a?‚ßø?VW>4ø =f[^>ºü¼>å±w=ºok<Üe:I®=cJ@>ñ†µ? +?m½?€tÃ?¢`¡?ý_>üËè>Úð¼>šIË>[­>„hä>~¯G>Œ2£>sA¸>1 >±xX>ùs?tÍ ?¤o/?3ü>2’‡?3Ĩ?wÌ“?W†?F?”]?©;V?é[¶?ðk??¤ö>õÿ^?>ø?ÂÄ=´Qn?Æf?³æ=>ìV$>¦–,>}Ž=Û·.?‡Æ?Ÿ? 3b?{?«Ò(?µ ?°õ>Úú¤?“på?’”°=œýñ>•hà>”1=?5Í?7}$?{¬? ªŸ?‹Ê?ŒP >Æ>½3q? 6?p2?£K ?±Á?µbå?µYú? Ãt?\s?Ewk?æd§>'h>–àr?AÊR?:Ä(?— 8? yË>* ]=„€ ?«¯½?µ$£=ˆ<=Ã>éø>ñ’ó>ñ–t>ñ™ °E±>’ š?ÒzI?Øò>Îø>Ù£= Qœ==v%?ð†ó?ßø2?ª0?áE?XΘ?T0,?r>_?iÕ>òSà>ò`ú>òhÅ??µâ[?ª¶æ?2ó?6RØ>ò³J>ÕŸ=C0;¤ Ï;-‰€>SL¸?rý¸?w$c?…æÂ?…{ý?s3?ƒÈ?+Ò?ˆÁk?9S~?*Ñ2>ó†æ>Û®W>³M(>Ñ ½>ó½>óÌè>óÙ +?† ?óžg?¤ëÔ?âþ?iô¯?ª²Õ?Õ³@¢®?‹ö¾>Là=Ëpì?˜+?T¡¨?À>V@Þß?Ä?¤Žº?Íì?èçé?^¼">÷lv>“=@ô$>Ê(þ>õGt?˜w=?³ûs?_!W?B8y?DÒ>õ˜È>Ò\§>µj>­>mø?B=?I¸j?Ø—>ã7 >%êE?v+H?ƒãk?h¹?\%>– ¯?vt?dSã?=T¬?9S*?AŒô?9Á†?#„Y?‹‹A?Ƽ?Õ +0?è¢c@åC@Àá?\µÎ=fïp?-Äy?f¬Ç?`B9?YÛ?6·Æ?"Ã9>ÿ˜ý>÷m¡>ˆÜ…>^û?mã?wã?S ?]E)?‡¼¿?|ñ›?ëÅ?Ø?w¯þ?‰mF?¶¡u?•-Q?V§?†ìÖ?öÏ?Ç\S?’lÎ?Ž•$?€Æè?Yzø?B!?‹£q?¥µ³?›r?N=?>“>øq[>ꓼ>ð¢ü?]æ?xI>MÛ=ÕÂ?Ù=a?ëÊ?€–’?vÑc?(Æ4?) >ãs>ÙõŠ>Ö¦º@¯Ñ@ä?«[v?Ö—K@ ·?ÿî?y +^?CVy>új?˜Ïú?éM¿?¯R?‡í$?`ò?3žØ?B‘É?Z^Þ?Z‘ü?E(”?nÒ”?…A‰?È*¥?Ïæ>ëx>½´ ?ÐL(?ÚûE? ½°?.ÞP?ù ¦?æá­?yy¥?_p*>ù‚o?-R5?‘â?ŠÖ$?…n?„! ?c ‡?6ÎØ>û6p?%‹?G7?Mh?RÊ™>ɯ˜=Ú¨²?yðc?³VZ>Ô“7= Tô?ûÖÖ@|†?%À?cd?ž‘?™ Ã?‘(O?„w¯>ªý2>±5[?/‚ã?OÕ?º?´`D?d½÷??þý>ùÊÙ?c¤?Üû?ª?"Q?„8?ÃÜ?z…>ùÑà>ö²¼>ë·ñ?‚HX?©pE?‰Žè?yή?i„,?s‰Ü>èü>•9¿?¦E>ÿ¦Z?s×Ç?†¥?ßFû?ãžq?¢9?˜Ê?^þ»?Jûj>$Z>¸d?¾9…?¬`?yÀ8?UZ÷?íz?‚ÓH?ðƒ.?¥?‘`?3}?JÇS?Ç¥+@ +ã?ã\g?ÒÉ%?Æ?­™? +Xù>5Ä?Í+?3&6? +ˆ>ùè@Ê^@7U…?—f™?yƒ÷?æN>ùþ +?uæÂ?wãð?»´?ºHõ?¯ûx?Ÿ$M??$C>¦Lj?gT?‡ØX?‡`†?™bç?©«??ºî)?˜©@?LOÚ?½#À@Ä?äd?yU?’Éà?ª$®?ô-?@"?˜¯>øû?>øõ>øïŽ?‘IÜ?­ ?X^ê?@°›?zª©?ψ?—;?‘¥?‚‘ˆ?‰\?*¡?0”>ýQ'>ø™>ø…µ?+|°@;²@01E?ç2 ?ßÅ?­p…?«´\?•z#?™bÔ?º'?¹+?¹’(?“EÐ>üÑH?.3Ï?tú?’ky?¦~ì?÷È?3±Ë?-+»? .x?cË? +?›è?°Ç=?ª6»?›¡H?h›Ì?A/À?¢Vt?À«&?Ô.þ?éeL?Òg?Ê›Y?pBŽ?&»G?o?2?‚B•?€:N?|jö?­f?¹K?„Î?v¦â?}gÌ?À?Ö2 ?ÙY³?š_?ú2>ÈKá>ÑvZ>%ó7>2_Û@U@ +8?î€Ï?ï;?™Ž-?—¡ó?•´•?˜í?ÏC?Ȭc?¤Å‘?©Ÿš?ªx|?«Šö@q‰@¨ ?ÔMø?Öp?¼???¹‘Í?¶¹‡?·«?·‚°?ª·‘?t‹5?`bE?!û.?È"=£á>Á?X§á?>>óüR?e#@¹?ãW +?’Ëâ?–¯Ù?¶£L?Ȫ?7æ„?Yñ«?“áa?Ÿ£?¾ª?²?¢º¶?ƒ§œ>²ŽÍ>ÅáW>ʶÅ>˜©r>Á>Â-?‹i?k??²>ù=ó>ñß^>¸ÑŽãü2?â/:?¼X?ö»?À>È +)? ‘?™Ë?”é?‚ 0?™²‘@¿V@ò>ðoô?¸a?`q$?h}ù?p]?}a7?Ϙ¿?É’Ü?o°g?p2?¯¢?³·j?N?Y?ë΢?ê†?•2?Œ÷„?®Ù‡?²ðb?ÖK=?àI>•¥>:ȵ?5%?sô{?Ç¿I?Þ½k@\ß@ +j¬?©J£?Zš?p÷?‚à™?Ø–E@ YV?ϯ·?'?­Nd?×Q‰?ÕÊ—?ÔGÙ?Æü'?°âË?¦cÆ?“£?‰C?+m?52A?€§Ú?‚[?jú?l©?c a?ZqE>½NÃ>©uù?Ô¢°?ëìû>²(m=‰ù=hE¦=<¯t>¹GÊ>öEÎ?<óÜ?gWò?•¼Ü?®Ñ?‘©ú?c&w?gŠã?ym?[š?§?24Z?UvZ?\Ž?‹ûÃ?‹ÿ?J‰ø?GÒµ?ES?Bn‚?“áx?’×Î?{–f?€¾|?Æ^Å?á;?è‚!?æŸï?Æf?¬À?½Kç?ئK?Í7?¬m?¾ªË?ø6Q?åd•?eyw?eI +?(ZL?#%ˆ?™[?¢¾?Ê¢-?Ö’o?Ôáb?ÖØÌ?8×T<‚ä²>Ù+”?d&?š|ô?ãçï?ä¥i?ço?ÕW¨>ôæ >þø?Ôƒ1?Óâ? A>¸ù ?‚~?"Ù?œ?bžk?‰%?¦Áø?ر??ƒF[?’Íl?‡i?n1õ?i*I?ŠX?2?¹©??¼-z?ÕœO?×9?±m?¤K?Uñþ>nŸ>€»¾?ä? B&?Š*?‡Ì?Þžœ?àF…>ß>#Í?tTh?§ùˆ@ ?@>ï¹?þ@€>ß°Ì?‹ó@C”š@7fv?¥òV?¤¬Ê?d•?_'û?KWÖ?@‡Ú?½o4?îr+?ͺO?³€>?´©^?µÔ„?­Æô?€†Î?´?8Òö?4|m?ˆ0?N¾?pš0?^ þ?˦F@ pü?»è#>ÝÔ?£Ž?¦KW?¦ø!?–È5?”;Ç?ÁÖ>?Æžy?V¶Ù? +H³?J?öª>ô>S?P?#ª?Ÿrè?¡b¬?©«å?¨f,?s‘§?^x?”ô/?¥›ì?ˆŒ&?fÿÂ?°Ú@’¯?ø­ ?± m?°õR?Ç ? ~?äy?û[?¶Ás?–«“?—éd?¡˜p?¦Ý?¥3 +?D7>ƒUù>|m?K½E?V<„?¸¢?¸ì ?¤½$?¥ ?¥y?”Âr?ŸýP?Ë@ ?Æ–Ë?òĤ?õŽa?ø ?ôÌ?ð8‰?ö<?®»k?w.5?šy‡?ÊÛ4?›Ô¢=”°á>BŠ¤?Ûd?Û–?j¾#?[?’9G?™ËZ?ÙC@Ûà?ÞIo?­’¨?‘ˆs? ¨Á?/Q(?– +ê?”¨D?Wò{?\ÿb?¸µ>Û5b>ÁF¢>À³8>ËÇÒ>Öíœ>ÿªË?µ®?="?ß>ú_>£>1Z?•‚?ËŸF?¿»R?°S‘?bäü=´¨9>ô¬A>íEÒ=»Ê%=P33>¸j>ÚI1>Ú=­>Ú%T?RÆY?Ÿ=ø?«~?ʨ€?Æ?ɬ?ÆŒw>öæQ>Ùè?½¦?á3ƒ?l¯ >ÞD|>¶Ä'>,N°>¶i–?c™?U¨J>ج4>ØŽÉ>…ç>€ÃL?‹(×?ÅWã?…"/>×Û>°P7=ǯ>žS?Wë?W,Q>ó' >ÖáÛ?*±9?Q"v?V?V7Š?:îº>ÔL^>Ä=a¢Ž=¤ð>¨6m>³†? ï°?&2‡?ÍS>Ô +>Κã>‹o>„]<6ÝÀ>>ìš>¸]Ï>¡Eo?“ü? o¾>HcÒ=èш?È?t—E?$×$=±1é?Œé¡?’ð>>Ë6ç¡Û8—à=£Ÿø>À©K>¹{š>²GË>«ñ>¨¿;™ =èb†>¡^>s…3>œa#> Û>7 Å>BºË<;O¼=8Íê=áv%=ÄËæ;eÖ½=·›Œ>©¼>¯Yæ=‰‚>b°>µÙ>´>u>„-§>]7ú?·§:?Àê?74??-•>ñ€?;0?@›Ð?,2¾? QÆ?Rû?K%>…-‰=íŒ<ÃÄ?w~¼?€Ni?|_ª?€!˜?³Ì?¥Ç?~ba?S!‰>È}%>ìwR>üͧ>üp»>ü¼>û¹2>û_>´YÂ>E}e>°ÕM>ú’>ùÃå>ùz*>ß:>Ø– ?«å?îF”? q?wÖk?>÷Y^>‰¹7>…D´?J‚C?€j/?Ìa>ö ²>Ñqs>ß“ù?-°J?&Wµ>|î +>/»Õ<”r>«YŠ>Ê°>T=“Wã?£µf?¶Íï?hf?i?¢ÃR?£ ?4)v?6ë >¶H->žî>E½8>XÝù?jX?r‘×>géØ>-;“?œì»?¦ >=š­z?iE§?r Á='7\9¼@>÷­? E±>ôy>ñÏú?°q?ÌF>ô¯æ>ñ´M>ÑP%>éVÉ?ë>? .à>?ç¹>§?? Ãt?¨i[>þ'Å>ñ˜§?g©‰?pat>÷ˆ>?<7^3=²«°=èŠÆ>ïç>ñ³á?Ib?;>ðê?£?Zî–?mpK?+LI?8œÊ?[A´?]Ãõ>w½=µ»ø?r É?tžã?¹k³?²½÷=£j€> p?O? ¸?'!?(Ú9>òiÆ>æ°Ú>>>ËÛÇ?‘#A?„î=¿À>EŽ>òɃ? ;?r¯?pô§?e`?j@ "®?ÓO>‚§Á>ÄçC?'D-?)®³?/ÎS?,²>óª>óá>óº>´ZÒ=Á°~>JÍ=>ÝcÓ>ìµî>óï´?/S»?€Ü ?Jzø>ô*X?ŽM²?ãÒ?¬h*?‚ æ?$;o>|Ú<>ñ“•?•¯?_R?’^b?˜¹?’‰a?.ìÀ>ôïÞ>&:Jª?5”Õ?n!à?¿>Íž>†ž>¤2?®Ù? þå>ýÍÌ>í:7>÷q~>õ±p?¤Ð?ž,=>õÚ>æ²Þ=ÕôY?zòC?QÖÈ=Ë‹?N=?âž?/“n?9É?( â?l$V?ÂVò?¤½?v¨Z?Œp?˜{?„©6?vÕn?¨Kó?Ùý÷?¤6Õ?p¤ô?* –>ùE¼>÷8p>àî>d>CŒï?‰È?¦ÛÝ?D]2?-í?x/Õ?u)ù?hcB?[š?£÷‡?›²â>÷»¾? Y„?¡ík?«…é?µ?¡òý>û¿b??0ß?º ?³K‚?žêˆ?±u +?á÷­?»ö?x<þ?W›7?Cy¶? +I>›J? ?ůw?‚Æ9?&Ìô?$Oš?‹4>#<>Îø—?ã@?P=~?N±?“¡f?Ú5@ O@aÊ?DÊ@??¿?4.?½Ç>¾Îþ>ð ?y—?i#ò?JÄ_?ûÏ=.‘í>ÑE?yeZ?xz½?s=ë?GÓU?2ëŒ?aóó?yE”?yH™?yO'?"(p>ùYz?œüä?»?{¢?YI?²E¿?Åï>Ôqƒ>†ì©?0r?$œÎ?ðHŒ?ñ¢P?»~ +?§¦ú?o&?<«•?£Êr?уX@ Þ˜?õ¨S?y¨í?EF·>ù°J?S?$"?!ØW?'þ?"ùÂj?L¹œ?q*¶?u É?yÍá@ ú2@#3>­¦?>ÕÄ?'ši?:-É?Ž–?‹Cø>ùÚÉ?Õ)?£%{?ŽÄ«?4áV?a´ò?»k1? ˜?@WÃ?Eó?c@Ù?ˆ:?©úË?ð,Q@ªì?Ž\%Š±º>:_>á¨u>ùåÖ?lˆ?yæ´?·Q?Œ?øv&?ìKþ?½h?½æö?LJ†?GùX?†E„?œGÐ?ù¤]?Å,ü?Šê?OËd?¬]‹?Ÿ'?–>j?a‹?2ˆ¼?Ù]>ùÆœ?®iK@¸(?¹Á;?r%¯?äOÌ@ò"?~;$>ù´o>Z ú=ãE|?Jñl?Xì@É;@ˆÙ?†°¡?y_×>þ÷?„„?yŽ(?z¡ö?†[ú?ˆË™?‹8?~uy>ùvo?"«?ŠÅ[?©%?ýÖ-?Ϩ?o†?„P?£)?‹„`?Hüq?þ¿>eÙ??m—?™—W?Uª3?†v?Toj?{ 8?& >ù_>ùü>ù…?œ´ ?ºº>?-;A>øçè>øãP>øÚ¤?Hʬ?[Œ}?¼*>ø½®>ÿBð>é¡»>ø¨'?2?)À?g?~@JÉn@=ø¼?¬uï?©vÄ?:p?¬>Ç@í“@¶?» ?€f_<­p>Mgô>øÌ?,¯?x ó?VAÄ?0°?Žè‡?Ä&‹?¨–??Žô?£áW?¹Ð?ƒ Œ?7lI?–Sñ?¿¤á?;é¤>˜+ +?°Àæ?úÆ?o:p>÷R?#™/?)á$?’i¬?ªL÷?¶òS?¹Fe?µÕ?¹\?Uþ?34?i–Æ?v»N>?Õ·>Z[?èŸÝ?ö…{?Aã?>½i>°zt>¬l?›ŽM?“AS?°‘?²rœ?™TÔ?›2? Ú?œ/?‰/Ã-­?ñK ?Ùñ‹?tåq??=ƒ’°> 6?t¡/?U2$>ôzq>çöK>¾e1? ^?t2@?i—¼?Jøî?°ýò@6ï@GÏ?°ëÌ?˜]5?9à?‚î?ÁP?·f+?¶zB?ÕG#@.†@ A?ê‚?™÷þ>ÿÅw?Ö‰3?»sû?fq°?¨gg@mT@Ÿ@?µ£‹?“E*>ñùw>îø>â0á?m´X@pU?÷Dè?\­­?*ŸÓ=ÙÏO>ÓmE?´Õh?«Èú?Œr?š_?ÔýY?ÌÂw?¢>?n¶?5 +?:M?p*Ô?~ z?¿8J?¼?oÍŠ?môØ?@n ?7øe?3ß?<Øÿ@,üÝ@1À–?ò=?îê?¶>¢?³?!9u?”©=uþÍ>È—*>éP‡>õ>þvz?eÝ–?…´?RWÄ?FÇ.?#¸?qÀ?Ÿå1?Íw[?Žô¨?`ù?˜bš?±w¯?†hT?Bòœ?¢ô?ì1°?Èèm?“þÂ?Š N?^m?‹1!?Òþ?¦«d>™h>Ò«ä?kÞ?}‚?êå ?ç¾?£èª?¥5ù=Ý0y=~’ >îÎý>þôS?(à>ý·Ê?S.]?iõ>ÙT9jP?Z§h?®í +?ʱÙ?ß< ?«ª?hȧ?„6Î?šS?Œ7–?hXœ?|}`?žË?£V“?÷x?ÃvÍ?ã‚'?ß{ª?¢MY?¤ÛM?€¿Í?nœ? ZÄ?­/Z?ê(@¿?ÖÔ?–´?…—?fE&?‚7U?šñš?¾Rx@!p?ïíÓ?L³¶?[ì½?¬½?¬;”?‘y?Šå3?WÓN?Vª²?NZ>ð÷‰>åRr>äsÍ?/Ù-?d>©?‹!ä?­ÿ/?žáò?y e?…v˜?šâ?`?ãnÅ?ãWö?éŒÊ?ã„?÷¾?úŒW?{Çù?l?¡|Þ?ÚÊÄ?²‰?‰Ý?ž¿”?ÇÔ?¯ºë?,³?@uv?£a€? ßM@+Ç@ ø$@6PÑ@DÀ»?ËÂA?3 Ú>üF >¨c¯?Ûw?`ÖÃ?DB?Äêß?ÉQ?ÒãW?Õ?d?£}«?¡ç:?¥È·?§^ˆ?„ev?_÷f?_àn?^Ù +?„.Q?³Nd?Èâ—@_¡@6$>þmË?Ó?Tñ.?_%T?©ºž?ÂÛ[?-æ?QM?€Ö?‚Ù?¥=®?ù£k?é!Û?]—?Ž?}!~?Ý#?Ý*×@ 2t@ +Z@øñ@Ň?É°1? ØÓ?ÏF?„M‚?­ r@"ù@@1†@-s?ìB??쬿?smh?8ÈÏ?R¿?\mÆ?QFò?Mô?mµÆ?‡w?“Ç™?ÔŒœ?ÌË@@,ƒ@5{'?¤Áa?Sˆ)?׿@¢ð@Ý»@Ï@Z?$°?•>@Rø@ð2?xoK?Q'ù?¿þ]?Þ•Ò?K+¸;úÜ?~,­@$Ò÷@Ú@ÆV@}?[Ý>?[°™>rïø><Ø?ˆ×“?¹Ç?‚V€?"Õk>Ûx;>:Y;?€w`?ƒ#p?tÇ?mŸª>û’í>Û[‚>”òÌ>SŽ§?Z¼*?hÎ:?£ý=?£Ü?_‚ ?XûS?VM?Rûã?\J?g’º?H1’?&ÊV?^0@?°=?¬P=?:»A?7¨k?0[?HûË?%mI>úÒ>ª ¥>auC?+8¤?»ú^?¡Öë>Ù5>߃Ê>ç|>Ϙê?y÷?”4ˆ?FÔ$?¨?Üý? TÅ?MÃ?E~?Go >Ø¥í>×Sä=†Nd>‹™þ>ÞL>Þº—>Ö]Ø>ÿ–?4âü?&ƒ5=´Šž=Ò2Þ>Mø>ƒ Ï>S£v>>*>7%c>˜ª? ®Ž?“)?9P?-‰´>úçu? PÝ>°’c=À­#>ÿ8 >öé=rÈ=gy>Íct>Êã—=š¡ >L¯¿>Ìí>ðv{?5±ø?1|º= 6&>Ñb>wÈ>*ïó<ÚÞÄ=êÂñ=ÎN>LÊz>ž/„>€›>·O> }>•ø=Þ+=Ékq>·”a>·t>>>"Œ*>.…?Pª­?tƒ™?¶q®?‘õÞ>…´:>Ú&?Nƒ? ¥%>6Ú? ì?H¬?:¥?¼Ý=çÆ?¹˜[?¶‡Ï=fO2>$éï?#.ì?ã)>c'>A€´>*=¯>üΫ?y??±–?zË>Ž6ü>úè?(Ý >ôR>¹SØ?n?>Œ!V=¡›<‚ h;ýÐ=CÃ0=c«=Š^o>¤y¹>½ëž>é‘E>ö€@>m«d>L(–= +ÞŠ?0…F?]u>Äs_>ª3–>h_=ÎgÌ>`t`>*&ª?[´ã?qŽ^=†àz<ë¤0?¤s?¨•á?*ao?-U >ù<>>ó&”?Dþ?A›3<ÑŒ¸?k6?r£l>¦ÿ8>©ç=?3]$?AÊ®>öšE>ò=Å?c\Ï?pq>ö`>èzU>ñ¸>ñóÖ?Y@«?TÛ >ô…î>ñÔQ?…"?Ê¢>—¡>\µ/>Ã*l>«{?E­?^Ó??÷¶?M\£?Ýò>ý-ö>òË©>ò¸L?k¶t?e“;ƒU;YѼ>ñ³^>ô”$?qÉq?nëM>SiÖ>5û;“ý…=Ý»=ÁD >Ô˜??íXõ?îÄû?´7?¦°n>9Sý>¥”µ?‹d.?w©>òVð>òa>òiM>òv>ò>à >'RÉ>>”]>ò¯ä>ò¹R>òÇ@>òÒ[>òß¡>Ī|–?sû?Œªð?Ñÿx?·½6?"Ú>õ0>V4ß>(ë>¦›>ó˜>?ü? Ý?h(?}m>Â.©=n>KlÄ>ô +>üå¥?áŽ?» >ôAt?/D?tÞÉ?ãÓ>WØ·?@?1Ž–?Ó?¢f??sƒd?4ÕV?©C“?ܪ?_U >õ™>õ1>ðó2>#î=ðt”=Ë{4=à¾ý<¨¼<>ü\d?"«B?:šˆ?&Ÿ>ö7`>÷3g?Ñre?Ѧ>ÇóS>Ê^û=ïlW>f?¸œÑ?¢ˆF>æO>±âx=© F>Q`>öuŠ? ?*q1?„ å?×_?©9?D‰‚?¥;C?ü¤“?È&­?‡¢_?Wé]?Ä_?/q>ø ¬?ŒZ +?²Ü¥?†e?cÚ/?IÔÕ?6·q?Æ»w?àÛÙ?“s>?)Ê?{X+?„Õd?‹D9?‘‹È?´A3?¹r>Íû¿>ÊϹ=Ä<»Z<ä¸ü=“>¨™?‡/}?Š`¶?’ç?°NV?àt?Áìû?œx?R§¡>Í(°>#ªV>¾š?jk?”±£?ºpj?Ýèd?õÉÉ@£N@ÅI>Ê´–=Êu?ž· ?¬H?©1?§‚›@N@ÖT?ݨƒ?ÔÒ¨?ÔýX?½&y?Pè?g¯û?Š~Á?;/8>8W3>ù2°?g¤=?º(â?šê…?yI€?“žE?¡a6?Yáª?"jÎ?^O›?yiI?Qs?zs?S1¼?]£·?Ä%?Δ^?]Õ>ùŽJ?¢ÃÛ?«Ý¾?­„û?¥Ï&8ÒÒ>'ÍÍ?€nŽ?‹ïk?¨AE?œ?Œ/?¨¦¾?®´@? <&?ž/Ä?— r?¥³O?»Z/?‹òÀ?Uë„?njè?yØ ?0!? Î? ÿu?Á÷=½\k<³Ž`? •?5Ñ?R.?Fã"?›Œ[?• z?yòV?lp±>ùóS?Qç?ïS?ƒPÐ?I?rZ-?¨ Ø?¶:ƒ?ÈÍÀ?‹–>ÚÐ>‹:Ð=Ï?CuE?»æ€?•qÚ?eo +?‡L9?œÄ^?´9è?»€v>òìò>+V{?¤C?ÉÚ?6é{?9«–?“Ùó?•þQ>ÿÞE? ¼Á@o˜@æa>»Ã^?^÷@À˜@õ®?÷€e?ÙN`?|›ñ?’/"?¯êõ?Å=U?îö?ѳ?«Nú?“»¨?yáM?`7.?Eû?‚;†?œd+?žì$?¡uºwa>Ä|>Î~ï@Yî@5y?3¹H>ù´&<— ­<šÏ‡>ù­1>û¨? -?ä#?Äñ?+{?y““?¢?Âã?ŒJç?˜Gœ?£SŽ?¿¨W?ØV¿?íšø?ÎÔ?¥±d?½ò¯?Ú†9?š«?M+˜?ÆR@ òÅ?âÐH?ºë˜?ãȳ?øæùU>žD >¡âä?Š>E?–£x?·N|?µ+?? >øáF>øܧ>ùí”?@?@™·>ø¼M? ±?x¬ž?Štu?Øz¨?ôú?xŒ¼?–žÂ?òC³?•0>ðøI?nd?øWa?ôè?ê@€?£::>ø4¢>±œk>A&¼?…k?Wk?3ºV?$V?q½?”²?ªÑ;?¹ß'?”\¯?oM3?¬D?Åï˜>ùÝÎ?ccœ?œ¨b?¥á>Åæû?’ÛÈ?±)Õ?3ñ?!8?£[Ð?¸ð_>LNQÒd">ÅGq>à±`?¥Ü?•2?‘ÈÖ?´+@?¯ˆ?Ò°Õ?ÖCõ!ô>ùä:>þ<>ûßk>ÜÆ?MÎW?áuˆ?½HÎ?Z&÷?V†Ý?Ræ`?u}þ?¢ç™?”‚¼?t(?²§P@RÚ@ ,¹?ÔeW?œ"š>ÕDµ?ƒÛ•@â8@ UÛ?ñ¹n?Õœc?²¶@ þâ@jÔ?@ Æ>¨²>œ!?F? ˆG>ò”ì?!€{?rbf?µw@ÂÈ?ð…`?j:|?fÝ9?c~ ?Vvþ?L–??}N?§yË?ªã?­®`?“ü!?Iá?l ?t?›Í'?š'œ?‰¬?1³é?F½Ð?pu†?yÜ­?Z4?‡]?Eïƒ?dGü?¿ÉI?¶S*?¤ìÜ?ŸjŠ>ëNÌ>˵d>ïMà>þyô?ï5?îä¥?±AH?²˜@_@!?»aÒ?®&@!Pò@'JI?¾–¼?£}?бt?Øè?ƒsß?RÝA?OÔc?LÓu?ˆæÕ?œìˆ?% +>”Ⱦ>Þ~ô?p ?|ún?œèˆ?’Ì–?–Ò‹?‹V1?le?Œ¼(?°éš?ÎFí@äR?àÄ—?àÄ? ©?N¤Ž?u%?߆É?×Tî?jÎr?i©¼?õf?œª?l1?mßv?¨ó€?¯…è?ßxÒ?é.±?HÈû>ÝÊa>û½I? Cù?V¼5?…9-?u>/èš>ÊfB?*ùô?%›s?×-?O¨?®2u?ª`?Ÿ#=?›VA?q´'?…ø¢?ðY¤?êüP?Ê¢1?È @?±?­J©?Ø”¨?æ׳?› ?fŸY?fƒN?fim?W³q?Iòù?”}¿?åø?¼ú?Óž?%³‡?²’¢?¸.r@&8)@(o>HF};¸Ðø?¾y??äÐ??ãÓã?àÛ?ÿ@½{?öšî?ݯ@$Ø9@xø…@P#?ØN¡?Ñ÷G?¸¨H?¸¤?¢îŠ?¦¶B?̱…?ÒŸv?ËÓv?Á.?ÍF?Ü*-?¶ÏN?Ž]?¢¤O?Ƕµ?£oz>Á C>åõé?¡V?¥Hß?ó ç?öBæ?ø–t?úö)?¶Ù?œ¬?<Îq>¨ƒ…?y/?€¢j?^õ?N?µv?`¦ò?_ \>ê$ >àqP?Qe{?`>ó?˜?¦Y±?PÇm>ð˜å?ªép@ð~@f ?Šì`?œX˜?éyû?äg·?c?$?_G¿?y¡?? Q4>ŸÛ#>ðóK?F¶?sÀÆ?ÒÇÏ?é@ 9>@ÙÊ?¦Þ¿?¦Ñ?ò¨H?ÿ¯/? tá?e{ÿ?•ž„?»–?Ë(ß?Ýø©?Ó½W?¸ñv?µµ÷>ÝÆë>Ý·?m}?v³?–·?¢ƒŸ?„s¤?[.?„«†?¦‰?²Ñz?Ý@°?Ù®ä?ªÖ×?­RË?*s“? ^Y?[Q–?ntÃ?f8?\æO?ÀgØ@¼;@ +øH?©6P?³7@?“üÆ?–ƒU>•6*>5W?,%ª?\‹R?aé?[ψ?Š½?Ãœ?àõÊ@*N@(ûÏ?èb.?îÀ$?ƒ¸>{ÌN?(. +?\4ÿ?‡í7?˜Á?K)d=ûì.>‚œ ?qâ?iÖñ>òð>æ*?î´@@ ~…@ x”@ Œ?Ûû?¬Ãî?žþ?{¥V?‡3y?œß¤?šÐã>»q->«ŽB?5Ž?¤Ê•?oM‘?8®? ">Š§­>ŠC>¸ ? /?ÁÊ?À9Õ?+R’?›E?CPt?F5ü?ƒ9–?¡…k?J{Ç>­¢?&j?ͱ[?ºžH=«øn=•c?¾f2?ÎLÐ?-›F>Ìð4>׉á>Ûè?6}?Zîµ?Zâ°?\y§?M5è=oÓ0=§ +ö?‘ko?›Æ¤?.:(?‹I?)zï?>(:?QHL?|Š?Væ€>¡Y>Ædq?<¼ +?2êÖ?¡?$Wÿ?$÷¢? ?Fö­?‡WH?u¨®?‘?®Ã?p¢?zàÚ?sÈ?kñË?Ž¾®?Œ. ?1Â?›èÐ??F#:ÈÏ=µT>×áü>×Âè>Ðá?>Ê=Æ_[=Rl8?<ƒx?…F?ŽLù?“Úõ?v¨F>”ó|>™Cû?Jù”?A7>¤+ç>f©×=§%Ñ>“gª?fXE?jÕÐ?‰R}?è>Ž²„=ØW’>#w(>!}¤>®û4?7€å?#((<ͳz<>Ä7:j8;²•P<þ”=5ùÀ:߸ =s=È×> áv>¯>¡ n>|º*>l¶v>¥¤>D:y>i–P>4/=俈>#Ê>žü>—;³„=g =¼öŒ>¬Æf>ýñ£>ä›5=ÿ<>"·‚>lç’>2êS>"lH<5»‰?Ý7Û?â-Ä@—õ?ä€?Aþó?±V>Ÿú[>ª«>´"%?b©"?¥Jß?2>Üš„=¿%?|·Ä?)>æàÊ>Âö—=º$=±Y@=ÃçŠ>¤KÄ>ño²?Eq?Y†?|D?’K>¬ˆó?/~>ÂÈí=Ó¢$?å(?[?q^Ž?xõ«>š?w±?H]Ô?T ù?T.><;>8ao=ÑË>L¸j>XJ >A!ê>)ðN<~xÇ>Þ´H>ôº3?›£b?«ü? >>ô-À<Õ¾‡?#?#›>÷³•>óoå>#ãŒ>1¹˜?(äŒ?1È}>x{>U0®?@¿‘?Ic¹ü”v;-³Ï;Àë?kPÀ?fª>ò¿>ñ¡a>q >’'?G¸ú?AÅ?µ3—?´ô™>òe>ò?Gþx?MØ´?7 É?B>W8â†l<UÏ?m2M?q•â?p¹o?ilV?Êp? •">¾ø>¶¶X?%õ?eâ??]¹?8u9?7üÄ?;êð>ñé>ë >¬±=øM|>ò’>äš:Q>Hø?|ŸÞ?ˆ ^?Ãðè?ª´>ן +?9 ?…z?eÁ·>v.½>¤ +Ü?(1?ú“>òªw>ò¹>òÅ×>î>>â&Ù>îÏ#>òö>ð«>ßÈm?!™ƒ?«c?«µT?¶pï?›c ?*%I?ßA>q%m>WG£>=aì>£ùS?9z?%Ç?Hý\?…%G?²¸D?µÊW?·µ?³QË?­]n?l5F>ô8>>ôIü>ôY,>ôdÖ>ôu¢>Y[ò?‡^?t¬Á?t¼o?tÉI?™¾?­È?8¸™>ä€N>ôx«>õ5?–Ç*?®ß>Œøà?g?‚>Ï“>sŽö>rž×?xYq?ˆ²s>ªPM>¶þÎ?YÒs?T ³=ñŒµ>[®i?¶l9?¸¦ª?¸¯? ˆ›>öY‚?%(þ?=ë?`á>öŽY>ö™7>ö¨?A•Î?h¶?lá·>öÙ?5¸õ?vï4?>Ï?¨ÆÒ?Òfk?óŒ¿?ÐúN?·­,æ-?Aàà?we=>ÛTY> ¸¯?”º?°Öî?¹l¯?¹»º?Žýû?š??I÷2?6Ÿþ>Mù~?º„Q?Å–(?îñ×?Æã*?U2?u½Þ?«*å?seb>ª»?fè?Õò‰?­£'?‚ù?iP?Lܳ?-<Ð>ø‹a?DJa?xŸâ?£Š ?·„q>¸Fæ;§>òµÜ?)ï>ëx>É)\?°]5?º²?A1?Ç?™†?­†§@)ù'@Qš?â¥?É(Ý?=ÝGf±>ùMä?ë?@e?Jwö?yb¸?QuU?>ä_?NºS?LHô?ý2>å/?]¥?ƒ®[?·>­ö¿?¾³ì?ÚI?)?¦_?,%?‚ï;ô—¦=ï:?tAØ?l( ?yÁI?‹è?»UÄ?¨˜?yÏ?ƒ^?‰˜ó?©ï¡?Û!È?±~Á?’3?¹ªè?ÏŽL?lÜ?ª–?WÕ¼?yðí?j7Å?n‰ì?ÝÓ!?ùµë?Œ= ?fn?¥´r?¦#@†<@ù#?I»œ?XŠ#?z ›?hy>ú Ê>÷î>Óѱ>Íl<>ú?!?<´¤?“ +m?æw7?‡‚d= ;Ç>ùêI?zk?71? Ë ?Q¹?zñ?zê8?Z¤Ÿ?a°/>úlI>òGê?nÖ£?z?Š ¯?‘Í?ŠÀ?x¢€?C½Õ?sÀi?ú ï?ëÏ?²j1?ªÔÌ?z ?S³?·†Ã?„u?!Íï?6 q?SB¦?|ºò?‡Œ?ež`?.Rð?3pÊ?8‰T?cNˆ?yðÀ?yë8?yëÈ>ú›š>‹ãç>¦Ù£>•=Òƒg=nk¥?Òn{?òkT?Á>ùÊ5>ó]•?ÂÎ?®:|?©J9?¤_ý?˜î?Y,?m„p?¦ K?•Í±?eÖ?]b“?:‹Å?e¦}?ŽÚ?§€`?à#“?Ö62?Åô?ó¢,@u]?Úb=÷=[>lŠ=Â\?tBÔ?ºûB?M‘i?Šˆ?ž­?ºêÒ?«7Ž?¢r¨?‘ÍÎ?ˆq?ÙaT?ã´t?Ó<#?Ô§?§5å?›ý^>øï ?$&?`Èå?WÎé?NÞM?Bæ?8N?u7?ü(?ê{?ƒ§f?”ç?ºm?ÕÎ>­Õo?)X?›Hc?Á í?Šò>øH¢?–˜?:Ó‡?–Ûô?Ðô?Šhþ?ÑU?t­Å?ø¢?šµÒ?œ%0?ž2œ? Am?Ö(?õHÞ?dß½>Ïæ˜?ô#?÷ø?oG=’ ??+Þ?m<Ì?v2§?wGê?w>ø?wwå?®;Ù?®P@'Kß@)Ç€?®U>öäÏ?Ëí]?Æ£Ú?0’ö?( ?Q1¢?[W`?‰®(?UF?p ?}ee?¥*Ë?¤cK?,~„?%½²?"†ó?iþ+@ µ@ Ý?Íá?Èß?¥(?®å?¾á?¸ ?±¾}?†Xv>Ë‚Š?³æy?Ž¶&>õ×?<5û?¥&9?Œ;?G°Q?|”h?§f?‡ã/?"Q8?l9?·F°?”|E?0Oó?†x½?Õ¦Pµ»?9™â?É ?¨ê?sÎ?¦/Í?ðv?­„>òïX>ò˜–>ôô‰?.;Ð?„èV?_‡s?Å?/‡?r£?…g‰?™ß[? ªÖ?µ@T?È~¡?ñy?ÅÚ„?Byž?[Íî?“*.?¦¡*?Ó*¡?¹Äü?Z'°?;{:?4Û?DÖ?´H‡?œ²”>ð0:?B2î@Vÿ@›ñ?h?À»@†š@x„?~?"Ÿc?è1Û?è¹É?o?oœ?³µ¦?¶Ûß>_Ü=ë^?,í†?Eø7?«|á?²•Ù?¼ê¿?À7Õ?„Ü?m·?–Ôµ?ž~×?œùÖ?›t‰?b­ ?:Gç?‰;!?š¾/?Ø+@â‚?¹?ZÞ*?‡Pé?¢°l?Ë;?“ç?ˆŽ?J¤/?‡B?н?§¼º>¿œÐ?0D?¸Á?®Ç¦?u¡¸?‚Tœ?íHê?êÿ?¯é?¯Ê?pý±?l°>9 ý=é}¤?ˆÂü?¢’r?ÄÖŠ?ÎR—?±l)?£8?q¦?/`¨?òÌ,@Aš£@ ZD?†ýn?’ò?®L3?Ÿ\?h/ñ?Wa¹>òó³?'{?ÑU?×B?„wì?ˆwI?Õ™?×™ ?²?¯Œb?†>Ò?fÃÒ?f§„?fS?6ñ›?|T?ƒíQ?Þ +˜?¼n×?eç¡?‹œ?âÂ?Ý‘·?¬œ?¬º/?äù?ä›{?²c†?®4›?6JC?v,? \á?.„o?©6‡?äTú@Ç/@±@4Ì?ºI?¯%â?ƒcÊ?‡!)?–¢?•V +?©P»?ªk¿?¸] ?Àõ?² ?ª#?ª?©ýÕ?žQ1?’Ì2?®ÚÍ?×ðC?°ÿ>ât>ú}}?™Øî?› 5?µ]¢?µþ?|Nä?awg?µn¿?Úaj?Þ…æ?á ®?ßÖ?Þù©?ŇY?`È?uÏ ?à¡—?ÞûE?Üß?Útð?<•?Â2?:ž]?P[?õ +~@>Éw@ +R?›t?¡m†?ÆÞ?Ç/Ž?•üÆ?”¶Õ?“qo?’+ª?`\?@[²?{g?ƒ?±å‡?Ûã,?æé¨@¢@ ¨£?ÎÂ?’«@ EÀ@ +àÑ?Ù +œ?Î^Ž?’Ÿ?^4ò?‘Þÿ?½5?•ü¡>Ýýó>í¶O?!? V?Úê§?ݼã?‚5?]Ÿú?pZ>ÝŒÒ?%û$?`5ü?ÈÅñ@;æ@«ô>äg>?p¥?K9?Hã¹@$l@7$O?ÀúŒ?]¡?³ÿî@,-?æ» ? *5?ˆ$ò>¶Á§‰>.>d>?<š=?\©ƒ?f?Ž?M?’ñ?¬õå?ï(ó?Ù°}>Üq>Üjc?>R9?DðÙ?6Z‘?7÷—?ÝÒ@Oê?ÙKû?T›Ä?‰_²?Ø»%?Õ¶?¥y?¥Ë>ø÷(>ò¢Ï?T«E?tŠi?oé|?i‹?<È£?êu?8!­?¤õû?£s?‡(S?„k?æý“?ìØZ?‹›Ð?[Ñ£?Ï>ÛÇÄ?%8ø?]h?hÙ?©ì¾?©xÈ?[­œ?[£ì?±z?¶Žá?[v>Ÿ‚µ>Å—2>Û€Š?2y­?’&?ø>Ûf’>êE?bg[?_|Ï=߆s>•Ì>Û1 +?)»x?[Ÿ? “·=§©†>+~#>º2±>´?&?D)?û†?>žæ?;z;?O*?Z¥ÿ?Z˜¹?Z‰=?TW»?3›?Là+?¾™¨?½íC?—iØ?r?€£–?€)>ÞØI=ÿä>®ÆÀ?&9‘? Î>›3S>»™Z?©zÚ?§Õ˜@/º@:Y?‡ò>ØÂS>Ø¥ >×·"?_¹Y?Π?ÀXÜ?•!°?ß]?3Ñ?*g>°)y>®±±>Â?~>ÕÜÑ?1/?m¦Æ?eÔŽ?ƒ7?ƒ1ù>xlõ>j‰ä=‚8­>nFñ>Ôýô>Œ´â<ðY>ªFr>°è¸?9N ?HÍ>št0-§Ú>ÒPC>Ò ×>Ð\y>ɨ>Âlµ>»8Ê>³÷ò>¬Â”>Fâ>T}Ÿ>Íä>¡1Q;%¤>µ’>Êò>.lÄ=Šq>'& ><ä¼mk >¢’>íx>»X>£>§ì>º÷>a¢‹?ôÁ³?ô{æ?AK?€í? †3?n0ý>¹ØV>Ëš>Öa¢>çãl?8]>Ñž<Ù¨<`·Ç9–(??w?~Ê=;> 34>Å·¤>Ù>…>ý‘û?!¥?;t?@°>?EìÈ??—>+ßê>u¹=þ>¨j>ú#Z>€á=”X›?%È×?xÝ?uUÂ?j›? æg>Óe? Ÿ‚?{e>±©æ>¤L[>ݯ>º–="/>ÖM>õÌ€>«>g>­b\>´ïÑ>’%f>ë5>ôÇ»=^Ôq;¤‹•>è Z>ô50?[ç&?T3ã=Ø0=Ý-ƒ>ïæ>óh;íBâ>aæº>} +J?-Ðþ?'hÑ>¢ >®.–=ãmâ=·•>ò‰ø>ô??j@?of|”V©> «K>­J>¶Æ=°hï=}‘i=(î<ÙUM>ñÜÝ>îR_=|b=ÞvÄ=¢ë”>@µø@ I…?ÿ->µ±B>Üa?qêN?kÊ>ñóÈ>ìÈt>¦} >³#Ö>¿Ñ@>Óû­?íu>÷´;¬R=$ž>çz:>ËCA>Â>Yk>öÑ?lV=šîˆ?)[&?!Þ“=ó¤—?Kzè?BÙ>òÀ?E?fC>à“w+?a±˜?€6,?¶mä?«v?Va?ŽÁ?|‹Ž?]}\?.?µ?¾&>óªO?<|"?”p–?78Á=Y4>ÑK¢?sý{? +P=\†ü>§¼?Vc?@ø™?U¨w?#©^>ôp?!;?;ËË>Ý*›>R3? ýN?MGØ?}>Ï?‡«?{ð*?tý>ŽÀÅ?6÷?pl>Ÿú;>VL?,ph?7¢G?©§(?¸)—>Ñ‘Ä>ƒ˜Ÿ?ôÏ?ŒŸ%?+™ë?"9ð>…y>hàs?CJ?Ú?}^µ?fñb>ö©–?œ³?€£‰?kP?^Z?8^)>ݶ+>Ílä>G×®>ά?7Ë–?#ý?â†>þÀÀ>±ÜÈ?Æ&?aký?3Û?@ù?F›˜?w9¦?Ê)é?ò¥ ?”I?Jñç?—×?¨?FOË?šÒ?,;¹?8¯ã?ÉõÞ?ÒäR?¶ü½?¿{£)²?÷Ír?ߥ>DÄÔ?zÁ?­®?‚èg>â=¨>݉‰>“£À?3q?zL÷?A™º>øŠ“?0T? Q]?›¤?Õwr?œ¦†?xº?s!X?xgó?vþö?k×Ï>?Ju=—ØÁ>ä+à>ø÷5?Cëõ?U\?î¸?kÛ?xÃ?ŒZÜ@‹”@¶’?à]è?Îòƒ?®[^?¬ñ?§™ð?a„ +<X>ÔÙË?uTÝ?oBã?i1ù?8V4?#Õ?@^A?Q±?jI?y“>?SüÍ?4p`?Zù‘8?Aâz@œ«?þaX?yÙ?ÝD?»h©?ÐÝÛ?ô]ë?Ù‹?»tŠ?ÉÍÀ?ÝÐÒ?tX>2¨Ó?»˜?Øé¶?—ÿY?dwz?eX?‚ n>‰G‡:ºH;<8è€=·U@>ù Ø?-b@ ÜK@ ì´?Á!?ÍŠ?µìÃ?¸Û¡@à(?ÙËp>ú&'?-¹?L:3?g}d?„W?(0K=½‰q>ã[õ?z+E?GÏe?B^>ú/Æ>ÿ•>ÿž¨>ú0{? —·?_Ð?Îú? =n?´ts?ÅÏr?œ…?™w?M?,Åf?rí?z,$?'Ù3?/3¥?úÞ½?îUH>sÏÓ>îQF?ú%?Ä0»;,®–?«Í?õ»ê?Ì•Ž?„z„?UÖ«>úA>§K>Gá>t~>·…/?3Ñ?AêŸ?6>ú ª?rðC?•@ÿ?ggŠ?S§Ø?ŸÓ?§`?¶” +?»wÒ?'>ùïø?È#>úv?¸a¯?°f=÷Ê>{§?†Ñm?‚_?8|?*hR>| ? «x?•j!?œÚ?¡Œ·?¤·—?¯J©?¨T‹?³cÏ?ƒß>ùšQ? €Ö?‹¦?Œë]?ÄHM?•ÊÕ?pšð?È‘ß?ùº?t8=??i?¿+r?æ•?™áJ?‡Ž·?‰Øš?Œ# ?Oy?Lö?£ÞÔ?­ÛX?m‡Œ?qî©?».ð?½{&?eÆ?`p??Ï?ÍŽ?†•·?ypD>šõ>n€>Ýó>ç¶?º‡8?º€ˆ?º{ò?1 >òý$?S€¢?´¦?ŸP·?†B+?z~?[²l?gÒÝ?xI?’EÁ?©ÊC?æ8Š@ûÍ?ÁE§@>÷Œˆ?->þÖÕ?h@?w\ +?wT?wBr?€D?‚’®?Ñ6”?Ú…?`wT?W|C?`Çþ?e†‹>¦s>°QN>E£H>•œŸ?•?wï?oü>?Vl->Ê¡R>Ý>?KJ3?(!¤>µÆo?ÔD¦?®¬Ð>õéÈ?ßJ?:Vš?4Ñ?õ¨£?¯âs?µu?ï?ëVl?ð c?¡ü,=Ž3Ä>ÓCí?‡»?:^‹>øê>x7Î>ìx>ÁQï>:%[>±6&? Üè?2G=?7§Ò?~ð¥?· ™?š?XÄ#?‹<è?¶€o?Þªð@÷É@Ìö@š¶?æ@y?U€?ÐK(@ µ?ßVo?gÎ?‘€œ?¶Eâ?¶#n?´þž?»5>òšÓ?*™5?rqI?k0á?]T ?cxý?r?[#Ç?= +[?Îû@?B@Ä?;â‰?&k³>Õ‘Þ?¥…?4_Ö?L=y?„3ò?’H­?¨ÑZ?ƒÙ>&£?àÉ?Æ?£ü:>ðKì>û•‰?Ü¡?L6?ïêG?ìyS?à"'?æ¿?ï…J?ÜK.>ïT‘?·F?o!˜?ÌÆ@-¢p@)ŠB>ÕCÄ>ÍƤ?X#’?X 2@U_@o @L-@©Å?­»É?žU¡?®0‰?²4Š?–Òì?j?|d}?m4¤?³æü?ÕPP?÷6E@À³?ŤÚ?›“ë?±ƒŒ?ÆjÜ?¡kX?l"?F]Í?yP?'s?Vß=?,}ÿ>sÔ?ƒT?á²X?Ø‘ç?ªM;?½Q@Æ3@ B?k-?l«=\’'=‰àû?Å.ÿ?Íê®?9‚ð?ò®?2{h??“?sÖ¥?ƒÛŒ?u´ô?i1Ø?é¹Ô@'¾b?ä& ?PÿÔ?V< ?[wW?d-…?hS²?š†?©ü?›…?$‰×?ªÓ>--ì>"–‰?ß?ì‚?^cW?/ÂG?X·V?fçË?v;Å?zUð?má?fx}?”èö?µóZ?™w|?aó ?‚íä?¬d‚?¬J1?¬4ç?°C­?ådÿ?åLm?­úì?«Ñ±?èÎ>äã ?9;?N–b?yl?[µ?ÏØ?’E?ž+??«p?¥½F?•Ö“?…Ü‹? T•?¬Ã?‹Än?Œöi?4>?-×?_»:?r`þ?›G ?ª?‹ó?b™*?¶ª@Ü?ùŸe?H*ò?PÝÄ?•í?‘R£?×½??Ù}?|ÄP?aš +? ??Ÿ4?ÅŸ?ßG?ÇR,?¨Ôl?–ì_?`èä?b³?lK?tÍú?­Ó9?¯À? 6»>à]i>ýÒH?%—?RS?‹Ýt?‹æ¿?€_2?ð?‚¿ƒ?Ží‘?ÊEø?È°?§»v?§Œ9?Ùæ„?à-A?·û§?«]»?è(®@Ûa?íJn?’= ?‡Åˆ?9ã6?Uæ™@2Ùþ@4 +q?¤V?Žm?¸?qÄ5?Câ ?uJ?Æ,>ÞM?=\?Ù‘y?Ü +?ÝÛÄ?ÝÚ¿?oän?]¿ª?[c|?X:£?ZR=?]—@?NF?K€[?nO¥?‡P³??î]o?ê„@ ¨@µÔ?œÚ×?]!}?Ä|f?þ²e?áCv?½èË?§Ðâ?+ ~? õ(?"Hâ?´à?€ð»?„q ?fZÖ?\´é?rn¤?~bÎ?¡“…?Ð;&?¨ >ÜŒò>à«m?Iu>ûI>åª=¢…?.Ür?f?!€n>ÜY~>ÜR>ÜQê?ŒË?¥2†?§¸¡?Ï·M?Ë­’?¢ó[?œí¤?vTº?\û?ÜUÇ@Á ?ôí%?¥ ¶?R??…ï×?ñ~d?ó'Á?œJY?‹?ž¼l?  +ü?‘º'?•u?œ–Å?—?Ö?Œ*‡?[Ñ¡?_?Ëû´?Î)m>«K=«ã>ºx¹>û%Û>õdG>ï‡>ó¯”>ôÏH?§Ë?¤¢Ÿ?¤Ÿ‚?¤•;?¢ò?Ÿ˜¬?„?xO?[Mû?K܉?4 ,>óâí=Éí{=áÇ=ù¬N> ñ¯?‹$?°`>Á¨>¸÷Ö?3¨í?ZÄ?‡¡0?£ÿ6?´Óâ?Ú’t?Ó‹ë?ÃëF?ÊEv?—æ$?•ù?Æc>Úñ>(x¦?+›ü?ÊeÐ?Ó¬?Û‰?ÕŒæ?£Ì?¢ÿ&?U>Ù!ÿ> ¼9=j>¥¼?¿œ??©T?n»ƒ?o?f?X5û?XÙ?Tn? +‘>¸è>zI?-©8?…yÛ?{E˜?VÝê?;ã>)1> gÎ>´>€d>¶º8>Õ“¬>vLª=’ ‰=+ë=Ù\>ËoÔ>Ñûð>ÓÎð>ÓŽÉ?-Z?OÈs>öç˜=# b>6ô?@Л?<ˆê> 9=Üš>âÚ}? ]×>—°~>(<>k’>ºõ=H3(>‘ˆh>˜p +=ãÖ>Äñr?4_?Üܲä:>ÇôÅ>5ÛM<â(o? ÔF?¤Ë>ÕP>=>„‹?<Û÷@N?ì->cXn?n¥.?]§ª?3‰ƒ?m\?–??:Hæ>ÜÁ>X>ÎK?>>ýþÚ>ò =J>ú=‚Ö<<Ÿÿ >Ù#=îQŒ=ÿÞ>_w¦>u.ž>…t£>¾n’>üž?&ì~?H‹? +Æ·>Æüª>Ñó•>Üôƒ?C‘`?vG> B<ƒÄ€>ÄÉ~? ‡i?d¢>÷÷>K…k>Þ?N²?dŠ? + a>öŸ¢>†ÕÝ>S©4>äÄ +>õ×Í=;E?ˆü?d>ø<>è—²>ôpÐ>óÞi=\©=,ºj>´r>4œ?ŠÅO?ƒ?h?KH¿?ES˜? W?b>?fDì?LE²?üÆ?"gÖ>ÿ¬=ä»^>Çç0>Óóv>ßÿ>åÒO=[–Ì?©á?œ6Ï> Ú\>^~?jë?4F>™$>ŽQ>ã3à>üUq>Ï¡l>¾tÕ?7™?8 =Ùd =É>ñï>ñé>ñê¼?+›?²t?¬$Ø?ž€}?—Â?ºV'?®ZT?É¢-?ËË–>ˆ(ß>Ša?:~ä?8O>œB>œ;ôi=Œ®C>,8¹?µ 3?¯»ô?p\¹?eó?eN?EK¦>†G?x"[?ZšÀ? à¿>ëx>džº>*´=ÝO?âÊ?c_?1`?Ec?°m³?µº??µzë?  ?Z†ê?>Ae?Ø»?:²^?ŒÀ?”jó?þ??¤?zÆ?²#?s£?bæ?9[¼?ŽbL?ê{™?¬? H?0Ê?t?Ìx?¤x>?\¤#>ôK|>ºï >š Æ>Ôþ»>ô†¼?âð?:ðY?HN>ôÀ„>Åj>µ‹3?Š/¨?·¹Ì?‰"?o} >‚½U='Π=Ê® ?~óÙ?‘|›?z/­?uˆ¿?Ò}£?Û¸Ê>´É»>Î~?¢2?²†š?È·ý?¹Ì?‡»?‚}J?]DS?xï…?¸ez?®À,?p„?Aü>P{>ó È?©ˆ?Ž=—??'Ùt?D¸l?y?°u?CGÚ>sáä>Ö Ë>ÓSï>÷ ×?B£?w8‡?wDÔ?wRU?;ï?/Ï?—YØ?ªŸ?eu?Q’Ü?5ñ?3—W?ÈKM?È ?òz¿?÷Öî?(µ?4 >þÿ?wù©?‡k?½Çú?¬N³?PO±??§?=4? .>KFH>ø¼?N¹x?ŽŠo?Y¬Ö?%U ?SC`?x³Q?)ËÈ>øÃæ?F4/?r>yx0ùt>9I4>a©È?6+ ?UÈ?Ö;^?Ë€m?¥Ê ?¸qŠ?ûž?Ý‹Î?g9?']/=„=>Èzh?x‰Ú?Ë +Q@P0?Ëp¨?y‹j?1»P>ù–?L*K?y¢?y¤Ê?y­9?M?†sì?ØòX?ä&¾?ràò?\çy@\’@ S?°óx?Äàp@ZEÛ@Nö?ñª?Ù¯ò?î?F+?%ÄÚ? Ä?”Àÿ?¸¨;?Š~Ÿ?vó°?käH?`}>¦=Á×^?l±9?ˆãm?Ðõ)?Ä¢£?\?¬øc@¶@rº>ú>ž>ú=Ï>úA+?ŠhA@t¸?Õã5? Þ}?6ÙÁ?t–Î?»…Ö?úO?mž>úFŽ>eÍ=¢}ä?ì¨?[1?Ì\à?ä¶;?ç~Æ?ð–ñ?«Ãe?›àÅ?…¯?ˆô½?ªr]?¤€/?Ž~‘?‰G~?En}?I Q?§iÙ?¼9ä?÷C0?Ú©6?x?wkb?ˆR_?®vþ?ä’÷?œŽ>ú22>ƒº>Ö‰?;öê?^+?dýO?£Ë„?»”Ä?W0º?µ´?ô±Ç@€?Ãíu?µÁÿ? à¸>ö¼ï?¶ëý?¸­0?€X§?…œt?¢?‘"?kÎ?G‘”?Ã~·?®2€?l¼—?yõE?Ÿ€?›Íð? I?¿7?íi—?°ˆ ?% A?žÖ>ù¯‰?#s?O>?¸jH?ó¹„?ƒºû>ù?PJC?{?Î?ÑÚ?ê³ô?m-r?6Ž?o6f?ybž?ò˶?ÿP?š¸Ó?Œ=7?ÂÂH?Áü>û·’>ý"s?Aù]?PªE?£½ª?›Ï2?!³&?;1=â*>¥SO?£É?–M?cÌ+?Š k?º–?ºb?ºŠÝ?¸=…?±6[?²Îi?ºpo?µ>?­+?ïóã@1°?µá?'Øõ?W‰µ?xJ ?Õr@ +† +?¡ê›?Ah?ž:?º +:?¼?wùË?ˆÌN?Šø?~†>÷Í,?¸–?Î'ý?5÷U?¦;?g2š?w‡Œ?³ÂK?·aâ?µXü?³Ja?±A`?°Ú@&Üz@b1>N >·½¶?º¬D?¨¿–>–̘>Ÿ%??½?'Ï«?Öä¢?ÐWy?¸ë‘?­¹?vvÿ?e¶Ô?À-?"±=ç”?ÌÇ@t¿?Ü—×?ò?—câ@2ë@#q>?õ´‡?Î<Ð?qÿ¤Q>™@>λ? +¹ß?Ø>øÓ ?,Ÿ?tj¡?• ç?·1?Á!?Ë’—?Þê-?þ@ †@gç?ð|Û?Õˆ ?Úž³?ß±@f>@R¾?£3š;lÍ/?^Õª?ò—¼@µû@ +û@Y}?Ýlø?®.Ã?rˆ³?rqÐ?r^Á?rI·?r3?b€B?I~;?¡„i@­?êÂ?¨e2?u™Á>ókt>¾O)>„K? Ÿ?o¸?y)Ê?U:?lä?X?‚Kó?ÿ¦?Ç„@>ðg:?Ôò?p8“?ͤ?åò?ÇDÝ? ?:‰‡??Ô¼R>ïoû?è}?o<þ?|:?ÈJ?È4î?ZØO?WÈ[?n¡?n°[@FD)@GÒ +?\ M?Lg?ŠÞÉ?ŽQ +?¸à?‘ ý?äóª?ï ?¦È?‘í‘?T¦v?÷y6? @?j½è?_»¤8ª}?&¤w?3‹>ù8Ç>éüŽ?„p`?£í?™Éó?œžß?€†t?iT³?¥Ç©?Æ».?ŽšÍ?3Ç0?LØ›?h.ï?cä†?htV?†‡S?¹š?·bÁ?Õk?’/û?fŒ?Þ6?gŠT?gv»?+û?¡Ë˜?S¬r?Bõn?š‚d?­q?„õ?_?ÏY²@e-?¸Ñ`>æ-f?°“¯@H'@1r?⧓?ÚŒ0?±ÎP?®o>D׿>cG|?¹ò?Àÿ-@x@#ß²?ê?Â?Öº]?âÊ%?£‰h?Jri?78ç?‚£?Sý?³74?­^s?ÃÊÁ?¿Ã?„4?~Þ÷?P”?E—2F 9à÷º?L"?ad˜?è†0@&ž@âÍ?ØÝ\?ÉTv?¢g?¡sr?¨ˆ»?¨}7?’ç—?ŽðÇ?¯H±?²Ë‰?rÏ?<éí?¢2Å?Û¾º?×÷¥?Ô/õ?Ò|?ß»?àþ?à¶?Þˆ@±M@ ’?—‘?_Bæ?ÀË*?ò׌?Ù)|?´Vl?…è? Ý?C¡h@ 6ƒ@ +Ó¨>ó{¢>Þ”÷?Ÿ*?²ÇÞ?È9ô?×d¡?Š÷g>åîâ?ž?^#‘?qTj?¦×?§å?^Ø‚?]Ü$?™|·?ŸÊ³?:‡I?÷N?ƒ%‚?ºßÈ? ñw?y¶Ò?fžä?&Q¤?5l?b- ?iHŽ?«óh?¯H @&~@8?Ù—=?Š¡ú?‚e9?is?vÌR?„}ñ?·?|Ò&?f¾?e¦Y?\Ð{?‰“?˜§á?ù‚ @*°?ô¤¦>ܨ&?Vû?p½?k(Ó?aU?^§X?ÉLq?Ü·?_Ú½>Ütµ?V)¤?Ÿ„z?ŸcJ?¥Fª?¦ +?­ƒú?®_¾?D×?`?‹£9?–(n?”²Z?¡ ?»Ø-?Ç´Ì?« Ú?\$Ÿ?šÈ?ù,1?÷hm?fª?f”Ê?ÍÕ?æáš?tZ>Üe?cef?» ­?¢q ?@²Á?QVî?š$Â?›}>ÎíÇ>Áë©?S’n?j8ò?\‚?Z\…?Ÿñ,?Û¹b?œ`¾<™Ù¼=Y‰=²°ü=øÿ>ɯ>CÊ?¥;9?ÅQ+?ÂU ?¿Oø?Áu§?½k?ªœŒ?‹#?r`t>Û9Ê>ÛJ=?-›?# ^?H<¤?Zý¸?«ˆð?Î5ç?µTÅ?¥`?Œ ^>Ú°>÷??qâ?n­x?on>öë>Zˆp=´º>‰‡v>Ú ?ŽiÙ@2â?Þø,>ãÕñ>ûÉà?Pׯ?MO£=˱q=aùl=É4R>¦Á(? z?Qx?‹Œ? ¶—?X[y?WðÔ>ä\>×÷^?déŽ?ƒ˜?NžÆ?/°?æ¯>×>ì§?<¸Ô??46>ºýá>¶áv>Ñ|—>ÕÄX>]Kj)5G?Ч¸?Ë=„?l>í±z>Îùè>«ZÇ>yÆ4>Wˆá>`šà;#pø?><ª?QFÅ>Ä=æv÷=Øûü=»†=ž™=%š]>y¯>Ê“M>‘_Û<^' =ÞH>ªÄî>«oP>£®ž>›ìÁ>^,$<˜ð4>,°j>Yþ>Ý»†?º>ÿü¬Üðá>Ѩ¦>Æ]†>ÜE?/Ãü?Mž?™.“?A‹~=µ¶!>Wû>ÑóÄ?(¹ú?‡îÅ?¼(?&½0=Ðí=ŠÝu>©>¸>ù•Ð?‘P«?®¶\?ƒÆ?eî?_,N?Y9N>,ms?5Îò?f¿ê? ‰>ö©ž>ös>öC>öh>õã)=ÌÛ=€ío=5òË<¯dX; ’Á>졯>ô–ä?[XÁ?QsË;ÙD:ó£?‹>€?õ1?(é[?-‡T>ëÐl?¤‘?ÙïŒ?ׄ¶>Ôj> Æ>òú¼>ê;À`<™…f=‚èð?µÙö?­;ô;ǘ.>²+>Eþ->ò7#>ìS>d_P>]ê?žm?2Žc?Ñ´?ϧB? ô§?ýK>òæ>ñü1>ñþ›?;À?|%5?{U^?&M×?UÈ<@#çT@6¥?rv?mÌ!?5±u?&&ÿ>‘ïÖ>¦Ó¡>Ô›ý>®Ÿ8>ˆ£à>^™É>ÞL?Ýa?µª?µ{¥?±Ð™?š§×>$£>¤?¯Æ)?”H²? +c¶?îÐ?4@&?&¹>˜9>ŽáL>Üm>›µÈ?…ZR?•(8?âm•?ÄN>óN?‹–?z=?EÁt> H2>5¤>å?+>Ê?ë`‘?¿)U?oç?b_;?+¹l?#¥?)Î?{^¬?¶áˆ?¶ên?¶ög?ÎÅU?óÐÈ?¡zò?R“?Brc?„Cœ?©-˜?Âr÷?Xó¬>—Ѻ?~V$?ºý0?W×4>ôº3?/«j?D3(>€à?e÷?¬ö3?8Òð>õù>ò‰v>æ^[>Ùb¢>Ìbº?r#³?‹‰v?3É6?)n‡?Æ{²?Ö$w>¡B>H·?N¥œ?H}@ +‚(@n?¦ï??{= »> +Õ?ws†?RK =Ù|X>Æ7ø?þ§?b{X>í?cÓ?/ø?L?~žˆ?žÏ>?Ê ì?‚È_>§Ú?xÌG?ä.?‹„•>÷9?E1}?wQ²?ì¼Î@¨z?¦Sš?^¢·?ƒ¶ü?Ž¬þ?Q”>÷¯›?lª`?tµ@IÎ@"?Áxô?Ãë®?Š‘{?ž >;ø=Ì\²<‘£8>/=Ð?ÿ/?DF>]N>ªûg>øs ?$b²?UÆÄ?%3ú>ø˜Â?g¡?³˜_?£©r?\?süd?cã§?3aÈ? 0x>j³?ŒúÝ?­ '?SJ ?Rð?¦î§?©ÏS?ä ì?ÙRã?WÄÅ??…Ù>ù?ý?jº?Ê©?¹0?3z?ä¼e?R—,?»A?º}Õ?·Ï?¾úÖ?Îf?¤&T?y¤a?‹Ê±?€?óÝ>Ý +e?V„'?yÆ?ˆ€ë?‚Ê0?趾@ù/?„ùí5?-/?½ùa?µÅì?#-ƒ?,œL?Œ+?NIì?©bb?™h ?†š¡? f?»”l??Õ?2µ—?,å-?' >ÛÕä>sgÏ>E,É>ù??£š?€Êm?–>ú;9?c‡Õ?z@{?M? ‹>Íû‰>ºùŸ>°k>XÑó?‡ó?Š‹0?>À)?f_¦?ß'*?Àæ‹?(Ti?CÁf?}1?–‚ê?ÛŽ?µ+—?pŒ?A£…>ü D>þŒ? +¤?©|?áì@?[‹’>Ãð >“ij>˜s&?œ™Ÿ?Æž7?N>Ï?3B£?xÙ?… ?5]Œ?*ïË@}›@ŽÝ?­Ê?µo?à[1?•S=¢¿>y]€?zSú?|¤Ø?zQj?9?²¾‹?ÍÛ??úL{?¤ëô>úH?9#«?d Ë?,­§?~›>÷>ú9ý?“ú?»§á?ÊRÃ?Í7]?‚ )?a'ó?¯áÈ?»?ƒÑ=?z!•=j[ž9· =$0…>y×?zû?{Þm?ˆ£?~g©>úG?JÉì?ùø:?Õ»¡?f7u?¡Û½?úS?È$?fÒ²?’x?½ä¿?­Þ?ž¢¯?eSó?ú>¿$ç>07ò?|+Í?À~V?TdÓ>ù¢¼?TÒ?y—Å?…Þp?$ô?Ë]5?Ó?ˆÀú?ywùG`?Er?^‡?SBÝ?Qt`?UéÔ?Z^E?Uq+?()ë?}i=ÎöÔ=™PO=Dëô>ùb–?º¤æ?ºž?ºš*?£s|?„;«?†`R?ˆ†¤?Š¨r?ŒËi?Ú¹…@ ¹?Îçj?ˆ;{?©˜¯?½Ê[?ár†?ó[t?ˆ¿ý?,Îî? ?¥ñ??‡¿?xÌ?‹Óˆ?–rç?>S[?È£@ƒ@6;¸?Ì(F?¹¡ö=ùª^<­JP?ç¬å?òv>U¿>f`E?)K«?B¯œ@"AJ@ YÄ?Ô(á?Å­á?ª"[?¥Œo?@†æ?Nr»?šÝ?ü™?Áb ?¹7Ž?‹Z?‹S?vŠÜ?ƒ…S?™oç?ü?¾Ý? í×? +‹?JŠ†?´Ò?£CØ?uñ?â!?¸û=?£¼^?uµ¦?,öz>‹<>Ý¿d?)\°?„q?ÇJß?Ø”?æ¾A?èXl?î®?½É¡?ƒmP?Œ`ß?™ãé?ŠEA?tŸÀ?’þ6?ª÷æ?Ä’‘?àãä?Ì©?ÀOQ? –R?tš?ÔÍË@$Ê?Àw>óÁ"?ŽX?p|?9QŸ?sŸ?¶TŽ?ñîÒ?˜Íù?/ ?UD?Ž_?k8ý?7Ct?›¶#?×[Ã?’ßî?1?EøP?rL?œî,?à Š?©9?.yò?Œ?ÒÌ{?£!í?;-Ò?³É>¿ËÓ?] ß?Ú†×?öÚÐ@ â?ç¯?†Ì’?µ•ª@ ;¸?Ï©_>ÐM?nÝ?z*á?vðf?s¹ô?–è?ïï ?Õƒ&?tIW?‘NG?âó?Ök*?¬EV?žCu? ¨!?7âá?¥ñù?žP7?ïå?¸û?בÐ?Þî}?…?x?µÒ?¸ÉL?xKá?m׬@ø@$Å?÷ÚÝ?â?? +Æ>í7?Mÿ?mv?°$>·?¦@¯?öBJ?®ä–?l`(?t°–?yt‚?v~4?s‹á?<Ǥ>çÜe?HŠ6?°¢×?Ž:>åôì?=å³?Þ»v?Ò|?©B“?¦q_?“ r?‹¤Á>êm >êU?Ž‚®?Ž›Þ?Du@?AÁÍ?Gð?Lsh?¦Î`?¸E%il=3åÀ?‹ÕÂ?­6»?5y>åÌ?¢Û??æ…ù?Ž‹ù>æOC?Z*'?¼t?ì}å@%ß°@Ì—@r'?úBè?6Ô²?1 V?ŒÛ\?‘ˆŠ?âº?óÅö?êÉ ?ä¿Ê?ò}¹?ûš¥?‚àú>L¥Ä>Úò8?-¯O?§Ê‘@8%o@&<Ö?½H?Ä)?Î<Ÿ?Ïk|?‰¤Ó?‡kÓ?b­ò?KpÁ?~ù?‘:‘?‡mø?v”Ò?†˜Z?›?Ýž±@>¢š@"…=U£=lG?á·Ü?áÞ?‹I>àyô>å0Ç>ìuï?†PI?¸¬‘?ž°#?òÞ½l>Þ³=@ÖO@ Ë?šs?^F?Ó@?¦À«?¦N?¥%”?ÀRë@Ç…?ûÿ?^ À?]÷Ç?î¶?Yè>õYÍ>ÝÏ=?µé¶@Þ?ÁÝÑ?] ÿ? K(87>>Boß?y΋?‡ç°?¶c|?Êjå?¶_?;L?‚1v?Atÿ??»?^Ô!?a[ò? 0? +ë ?=«¾?E¸–?HR°?JéV?þ"f@4‰V?ìÅè>úi¥?Lh¡?ܺÌ?׉ ?¥ ?¥}?ðF>ïÐ,?A|B?TÛ?#ãÓ? + ’?‚÷C?ÒÙ¯?ºáw?u-?mý>Üj«>Üfž?›ˆž?¥C?[I6?0ŸÇ?U:Î?€äà?aøÏ?$Û¢?ZîÓ?Ȇý?Æi£?c?‘‰?¿È)?Èú?QF§? F[?7¡•?\À?BŒw?¼o?%?Nì|?Ie²>i×=³„A?ÄÏy?ÛôX?F +À>Ûðš@&@†!Í@(|¢>Ç_:?Ñ°?Œ¯¤?„Àï?/¼Û?)Æñ>ÝŽÙ>÷T4?œ8h? Sõ?š?,(¯?¤E? U@?RÃ_?UÛ’?œú¹?£ç—?+QÈ>Úb>c1'=ÓtŠ>ˆX¶>Ú«>¸?î>þ>+ˆD;æŠÐ>…N¬>”u>¼ÌG>Ù<è>˜>>¡±>¦zì?"©œ?)< +?”?)1?†ÎM?‡Þ?8„½? +9ª>íŠm>ד>×`—>×9q>·uó; =>ÎòN>Ö’×?:‘?Uú)?>Ë Ó>ÕxØ?%L?@¾=šÝÈ=µ§)>ÃW“>Óù>­È>‰é„>¼²g>öŒÓ>Èߤ>ˉU>Ú}R>wê >-ß>S|>G=…¡<ûäT>¥G>¬kñ>Î,9>Î|Ô>4F< +© <Á0>€æ_>°3>®($>Éì>ÉqÀ>Èþ>È~5>ŠÎ>‚Ý—?oÔ>ú*ò?f˜ê?v¼…>àf<°T‹?Ç”·?¶+J? »3>ë­>*n +>Ò=ý")=ÑF=¥q<¿pb>Áú?Ÿß=ž> <º>| Æ?©R%?ÚQ?]¾?Nåç?,¼ì?MÑè?“ÄE?cj>n¶t>Ñت?.·??cB]?„?ž}Q?¯ÉF?8ºA>*/?"0?wj·?&׎>ù™Í?[!Ú?ƒÜ>ÅC>KÖß>y‘g>“ªV>¢)>–Ð8>c¥¯>oiÕ?%Àx?/UÆ?{{%?sß>É`Á>¼ö_<Ó\¶>éˆ)>õ=s>ô‹±>óÕ=ÎÈ=D^?sO ?s¨—>¸Vó>­ÜV?#ÞØ?(È>óÆ?>ôjª>à?§>Ó²?ŠŒx?Њ?}¨?bå? I~?Éù<óµ˜=u— ?r®#?diç>ßy>åå?„F ?„œ/?-ó-?Óï=P7ƒ?7ze?-HÊ>ò8+>í‚O>–Xz>“ƒó?Xõ?]ÐB?X¤>?\?z>ò>ò>ò2>âQ> ÉD>xo{?T`?V?¦è?°ß¢?r ?l9ƒ?<Ò?BL*?"­f?S?™¢S?Ÿú¦?¦Yˆ?—S»={u¥>üéÁ?)Œ—?µÊ‚?©‡Î?:5á?6OŒ?sþÜ?ZÖn=¬ë(>ò¬ˆ>Äk=üÜ:?ŠH?2”•?Ï?ŽÆ>óB?ˆ?q¤?…fÜ?¯„?³<¤?»Øp?ˆc>¢ I?Eîß?ìE›?ÉpÉ?h&‡?‹ñ×?¹/k?uJG>jõ?' +r?®Î›?µa?¸¬1?I)þ=€>’ø>ôB/?7€q?t\?ºçó?ôy¢?ŽNŸ>ô“÷?—ã?ßv?<'?$’Ö?x¨f?šÜ?Vq>âx>ÈR>ûO=úê<?ˆ¦œ?¨Æ÷?rÏ?Y/Ð>¶¸|>¥lÉ?Ÿr8?¤N?Òxû?ÔC?!ê>÷n`?¸$ ?²vã>7WÄ>(í>âd¯?ź?vO7?ƒ™Ø?´¡?£_?KÈÖ?%Áù>Î<'>Úüþ>—ü»>ÞN>qsM>°X6>öï±?U&? ²Ë?“4I?‡±F?ˆ×Ò?†ô{?8U¢>÷¾Ã?¯ÖM?ð  ?ø]V@­ô?Åž?©iã?…Ä?w²t?M%Š?=yC?t'·?… ¬?Ú!i?ãø/>ÈKg>Ð}§?º’?¹ ”?²-?ŸŒT=±A>ä¬ø? îï?aÚ¶?6Î,>²?ï‰?Š{²?š—?ºw?›1Æ?b˜!??/æ?"é+?ucÄ? ª?<¨â>ÞÏ?aÝ?ºŠ?;£->ðÂ(?¡‰Þ?ºÐÒ>Žÿƒ=è¸?­bË?ºéà?Êx?ÊiÏ?tñ ?€:7?dùÖ?O€½?)ÀI?Ãr>\5L?‡?³ß?zJw=Íë>D8Ÿ?ÄV? À¿?öû>ßì>j¥?kú?¨?³UŸ?»VÝ?—Øú?yaÃ?sè?;T?’\ +?­B½?„‹2?yòì?üŽó@ +"?{þs?rž>ú? `?ê?nã½>ú½>úF>ú?HuN?»œÄ?›ëÌ?Bôû?;?H¸õ?OÕÝ?K®?Q€­?WMÃ?KÌd?K‹ñ?blú?nuÑ?£§+?ºdÁ>Ÿ¸t<ƒ”Ô>è ‡? ¹ý>þDC>ú^â?˜E?•Á?s¢ ?XÌ}>úeŠ?ù?zh{?›Ç@{Ö?Øì!?zm?¬T)@ ³¸?È­U? 8?sÃ>úu ?½Ýã@Ô?¦Qå>úu?²¿?BÁû?½Š?™Ãž? Ç}> ‡?–‰?5‘?Ũ>ê“?‡q¢?†rü?%Lb?9ê´?ùas?ù ?‡Ñ3?uUþ>úok?0L?»{æ?Šg=<ñÎp?%RI?ì#Ç?Öüu?»Ìž?ÂdD?ÍXÇ?Ûoß?Þ*?Š,…?'[?8 ©??:?§´>úOá?QÉ?µ ?¹-î?Ï6?!>Õo'?¥ Ù?·€k?€ú?z%È?xÞä?x.?æC?ÏÁ? n®±>åÁŸ?“ç?‹†¿?ˆ°á?‚°?>Ô{?}]H?ÈDa?¾Ò‚?¤>ç?Þo@K@¾m?Þ§h?«,º?yÙ¬?­¯?Ǫ¥@hœ@÷î@3?ót«?š>²?y¬Ý?y©?y ð?V±?]1)?x{î?y‹?¹L?£ù[ï?~O?Ð#/?½ªÇ??=©?*Î…>ù0?*‡d?£³r?ž^¼?›?’.c?ºÀE?…“?Öï?=B˜?ƒ'k?2V?xÐK?³>vS°?$2'?xªä?NÚ??Þ?„JÁ?˜€’?®ÿ?½/v?Æ/?Ðá´?–Øê?xKF?>´?4Aù?k—y?x!v>1})?“Àâ?°à?ò‚W?øc“?_†>ü'G<È®Â8¤v¨?½7?¿–Ç9Þž0=!+ñ?ZC]?e‰‰?Þ­T?â™Ý?æƒ9?Ü}?w&ä?–8ì@ , +?þ][?¹3b?±ÌU?’÷–?‘ñ`?ŒPq?zù¦?W?“f7?ö€e?Ñž?vd+?zî?~öç?yÌ?v'E?v?v$?wÅÞ?}mï?|eg?uËL?³ T?û? ?q=íe>Ìo£?D¢?p¶N?•ÂF?À ?ëK ?Ô”Ý?·¾j?š ?}ð?‹ãž?“Á?”Ù×?ŸÐé?ÆU ?êíÒ?¬qc?NëU?wÆ/?R ?:؈>×kÔ? +ÛÕ?_}?ÉU?¶j?j†`>ôi¶?‘÷?0Ý?œ¶Ù?ÞÒö?¦¬ü?s L?ˆ?›#B?³?^cn?/&é>òŽN?^¾í?ž[Û?‘Üâ?Œ«?p ?6##? :ì?æ ?«2Ì?Xðy?„»?¢PÏ?•¡?‚?­ ê?ñ(3?Éup?“=Å?Ÿ6?¬š0?bá’=æ§>õr?°è¨?³±É?´,?€P*=%ï(>ž.Ð?o×c?“û?ï¤õ?Î^Ü?!±?c?ôû¼?Øê6?9¯e?Bå?GÉÍ?M"w?œ~Ž?ãÄ?Ý >?د~?Î9ú?Љ??–ªD?‘¢R?§fî?²»ƒ?Í~™?Õñ?qaQ?=æÁ?Gú?OW?ž?±±8?n?,ïš?>bŸ?SšZ?‘ +û?­Ý[?±Ëç?²??nƒ>C=¯>úlß?Il}?§E$?zÌê>n„>ÜBÉ?n(?ˆ4Â?°?®"n?v™?Ž| ?ׯE?Öim?Š(d?‚j?>’RA>J½?¿†?镳?À4“?©)G?’ˆ?…:c?³0?à]¾?nzÓ>8Ìp>è|m?ÒÖ@'@Œq?ôh?åøÂ?V$°?k…û@!Q@#áÍ?þ>ù=+?œ/F?­AÚ>¢;9^¨?—|?o…Ú?*µ5>æq >ý0?³)?wM>ïdé?c·Z?ò[*?ûìÈ@ ý`@?Ã?‚Ê?ƒGˆ?ˆ?Õ8?äá,?Ÿ[ƒ?ˆÆÏ?€ßò?`{æ?B*}?=p?šk1@Á??Õ' >’WY>ÛLß?ªÁo?ªá?O9h?EØz?ÆÊs?׳Ö?Q,I?nî?zßà?£¬€?høñ?…?tØ?ârä?ÈÌ?bDd?xs(?âš?áÿO@O)@†?†N}?U +à?•)L?©p?½IV?ÊÃÎ?–¾?'¤?4_…?@–?7ç?Ù?‚Î?_èv?`–î>åU>ÇJZ?’ u?ÂJ”?·ý?«È“?Íõ¿@'É?êø„?š9?“a«?_¶É?_Ÿ…?í Ë?ù¡‚?ÛŠ?Óó?f>ßÕŸî>á^ö@ e@ ,v?¹x­?¦šÉ?¦y?¦Øê?¦ÌÀ?¦Æ?™É?†˜J?…÷ƒ?^*?[ [>Þ±>Þ@ ò@#‹Ô?™øí?@3'?“ À?²3|?“@œ?:’B?Lÿ?Žšh?…n?Vpù?QN8?¤“Ö?¥Ÿ ?׌?ðÅp?½¯?•@?K ß=ãîã>€Xœ?]M?Ys>ÝW±>Ý>óØm>ñ5Î?…&!?¥³æ?¤ÀZ?¥ƒ?¹må?ÜÖ8?Ü°3?Û,??×™?Uá?Q†"?¿Ê?Ì‹?„BŽ?F±Õ?ŠM?³%?ªÊ±?•?‚—¨>Ü…ê>ä­Ø?¤‘8?¥XÎ?«Š?¨ˆó?Z†?"ûc?TýG?{ÔÑ?x­H?‚ý?s¥ß?8U8?:ú¬?Å¿_?Îw‚?¡9¸?Žõ#?`% +?L ¿?‰‰?šµc?xIy>å›i?;9ú@ Ž@3­?_t?^¹B?Åâà?Ñg·?§&é?¡å¨?ŠÏÏ?I)½?Sî¬?t·€?cïÅ? §?jò?]†ø?RÝý>ª)?>€1?Syá?Šø?9€>çZ?2â_?¾Â?„õ§?3¿Ê?;9µ?}3?yõ‘?¨<±?¶øg?»¢É?ÀP¯?œw?fÞŠ?‚.z?¡¥B?×>ÛKù>àñº?Yý#?\f¶>ý>Ú¯À?)E?=§ø??ƒõ?EzÒ?\¢>£g4>ò.¾?–&v?Žã?/Þ¦?-ú¨>íXä>ÙŸ.?‘1?ë>öŠÖ>Ù1">àYM? ×Ù?rµ?9}ñ?<Êú?W£Á?XT[>úy]>¼ Ú>ÂÒ>É¡t>I€:ôáŠ=ç;?W;?Ur¡=°Ÿ=zß°=pV(=m ˜>ƒAã>Õ¿©>ÉK2>›u?>ƒIm>³ >*???%ŠÂ??N?S¨Ø>ú#S=|t>‡ìh>Ž>–)Ó>I>8¬=–IÄ=pþE=5gy=§©>ÏËÍ>ÏVÈ=[…>a£}?4§F?%Ô=­ +=º÷Š=؆@=ö$> ËÄ>Žý>:€è>o>LÝÇ=C}>ìâþ?Go? DÒ?F>Ù¸£=1©<‘¼‚:(G='Y¥?©—Ô?§NX?•ÌA?rÖ°>¼*>Æ>Ñk>Û‚‘>åüU>#)>Æ$í?™X=À>ÔîQ>ÏJ#>«öÖ>Ü?'žü?.ä>JŸÉ>`£Á>v°>¯£÷>ýˆ'? ÷û?'„£?]º?ŽDƒ?ˆ“±?{l‰?–ß‹?¯žÜ?T'>ú1–>ú‘>ùo>bE> Ñ‹? wš?9kl>Ò>¡ò&>ç:ð>÷•=7H?,b.?I´?³ +—?ÃuÎ=è‘y>í9è>õHÏ<^©<ÝË9Ëëà: >E >{n >ôKÌ>ô.T>ô ¨>îW>qøt>‹Ó?óü?“K?ò?~»?Aå?M'·?Y?o?]äÑ>õMÚ>òÚ¦>ûõI>õ©R=†3n> ¡j?ršÃ?d>¥†>ºI$>‡Cý>K?;¢?CŒ¤?Nèe?FÛ—?r;Ë?dùV>Î*;>Å«d=:ôô>ò(¨>ò#,>ò%>Ùlá<Õº(>•B{>Æ{[?@AÄ?9 ?7™G?5ÄÄ>ò1û?qD?ÀJ?¹\? Á¯?¿=>òQ”>Ïï>RU?«´þ? ã?„ª2?l^;>Ž””>ëìœ?…ƒo?NøÇ=Z²>”DR>U¨> §¨>˜æ?rìa?BŸ=ÐWñ>Æ>ó6?'ã?s2º?=1N>†±->öë?cß4?€Þ?†DM?’Ïø?¶°–?­?Å?ŸC?К@»–?ÙGò?^O +?jž¸?t#?°™Q?ô K?›ûÔ>àÊà?&Ãc?]›Ñ?©Ú>À?/àª?†\k?…¼é?sEX?O‡0?ET+?2%Ú?0Œ?!È`?ï`?UvF?u!;?vÛ?u<µ>cXt>û¨?(Â`?œCq?¦'>ßÛ>“wÁ?ÃÔ ?×r;?Ú¾Ö?Þ€?QþX?B3D?œX†? Wj?v2i?\Ž‡>~Y?vg?x¢t?ƒMÅ?pÄ«?i×?QÛã?¢‚n?t È>öÒµ?Ù?&$? +€á>÷?‚Œ?Ùf?Ì#8?¹jÑ?ÛZ„?÷S´?­Ÿ2?u¡„?6úZ?'*f?€´Í?—)ð?²7Ã?¹Å‘?§3ˆ?ŸIë?KŒí?=ç‹>ª¦<>š ?œ,?š Y?Oå>à„?º#?­@>øBÖ?Ÿ†?nûJ?MNB>ølG?ði?\ƒ?Lƒ‡? ³?€2'?kFõ?wö¦?‚O(?yAf?rJ?}+×?xÜÌ?.F>øîê>f=>ô9?3;r?yt›?€>ù >„–¶>}>»Åè>°,Ú?³,‚?º‹]?y{œ?qHÏ>ùd??4ôJ>±‰ÿ?Q)o?h¼Œ?€Ço?”8„?»>?ÐðÉ?ëê™?ȯ‚?¥ì”?G½ð>¶µf?óY?»a…?‹#g?pyq?•n/?§;Ý??T¢?W‰=Š¹–?4¢ã?S°—<û<ÖU?zj?o$t>ú }?ª‘?z)Ð?…‹º? ?òž>ú7'?PÑ?»®`?½ÝD?»î“?Š!»?gÏ?=Û>úTu>úWØ>úWu>­7d>D&d>ÒW‘?Ü=ôÝø;×8€?ÄfÎ?ä)v?€øÁ?càÚ?^1³?WùÏ?KÈ0?gkš?áø?Ó9î?{<£?|A#?— ?ª P?þ&J?çŒ'ù>úŒ×?r†?¦R?ͪ€@ „#?¤òÅ?\‰×?Iõ„?O?õÌ>úŽA>ú7>úS?ÃÚ?Ë?áó?äz®>Æ!>†_A?dp?0 ?Ã#Ç?¨ÐÌ>ú†#?g??{(Ð? #”?å…?ææ&?ú}7?Ì‹ ?Œñ¯?¤$É?»ÚÀ?«Ä¹?¦æ¶?ÑÁ>çì?1³¢? ñx>úf.>nzH>ZX?*:9??(> Г==Š?]Ù³?xzÃ?ðÌ>ýÅO?Ì?ç ?Ä?Â¥Ö?¡%æ?‰&>±lü?™ô?”1d?ˆy?B%þ?QL@?z³?_5.?.ª'?&?*W?±ü?Ì{~?¥3?y÷U?wX?‚—§@ .›@:ƒÓ?¢vl?g?f? ?‡‰±>¬öl>ù?½Ô?Üeú?ð¶¸?êîÿ?=’+?,›>š 6>ˆGÇ?:".?Em}?¨[ ?©z?V·?kÇ?ÕnŽ?Î~?  -?–äh?D”Ã? Bs=‘/%>ú³Õ?º†À@ +h@Wªn@  >ù'>§ì>k>ÁfŒ?óZ?…-@?®‚Ç?½@q?Êü?J´{>ŒU>Äü%>û^.?Sõp?x„è?„;¬?€Ö–?XÜ%?TQŸ?E&L?&I?>?Q…l>0kŒ=0ÔX?ÏA?4Í@¤Ö@ì?‚UA?p«-?¨a¹?¤ è?íþº?âˆ>À¤>ÐòÀ?w…Ì?‚,?¹•@?´"ô?•]?˜ª¦?›Éé?«ŸP@Žo?ôIP?ˆ¨?’ a?¤Ì/?½¼f@yž?Ö1?.?€$@†?ß©?…=€?”‘ë?·Ž$?¡€º?v;:?’Á…?µeÀ?„ö•?Õ?ŠHS?àž=?×Øý?Ôòî?ž×?-¤ã?„o ?´Š]?mày>õYÙ?SÕ +?—1?™AÒ?›?Téè>ôð¹?KzÅ?Œ`?‚W?X”K?Pß¿?QHu?´¤k?ô]^?êX?åC¦?ggé>¬’?³;–@-]?Ǭ™?tI@¹k@.¾.@ +Q>?ß­b?é?óQ„?ÉÅ¡?©½?ÉƤ?âHD?„M³>òÐ*?Px[?‡RQ?oÍJ?c½a?sÎÓ?sÞ?Å7@ÿ«?þI²@B?À…ä?m£5?¢æ˜?Îj²?î^©@„¸?ø^­?ÚêÚ?Œ‚Y>8¶?Õ½?†Û™?Q[>ýå\>ò‚j>ð†ö?Møÿ?´=ö?ûž?Þò?ºÅÕ?oó?™(ñ?ïÀt?Ã(Ú>ï +?8Wï?Õ¼?»ŒM>ï.Ø?yÆ?œsa?kØ?³ê?±—?®‘9?±?C?>¼?HÄ?²Ÿ%?²‹º>Èñj>£°E?[»­?_â?¨PS?²°? >¾¦õ?ŒØ'?©ö?Ú— ?ìÏû?&²Á==ÂÁ?ï?láh?Ú)@›?¨¾>Í +Ž?ayz?LV>>¶·?HÙK?ðwð?Ö¢ì?¢Ï?’KD?6œv?<n?A‚5?ClD?.GÑ?:?Ž=?Žò‡>£s>o%Í?±Ý`?Î7?Àm?ÂGÉ?¯MÚ?¨FN?b<Õ?G²?¿r>ÂÐï>ÉkË>èœÑ?‚ª@úu?Ò–?Çò?*Ž?â?GÄ?g¾Ü?i™ ?®ã?­’i?Ÿ>êˆ?•<û?¤:Ä?ôY“@ÒZ?ÇDoí‰?ºÆ?³Y?$ÑÔ>‡Ü3?y>ÍsÛ>S5á?Ž9?”ŸQ?Ëò?ÎcB?¤ p?¢x?€Z ?nd?q^,?nÄm?‘w"?©.t?´™?â“‚?ÀØ?bew?„ŠO?â5|?â%–?è&x?éS4?z^?aÇX?á†_@©O?›"ð?IÉl?Ȭ0@?ë•ù?•á?ˆrú?4SÜ?3iW?`Ç?`µ€>þƒ?>Üó?}?.4?…‰¡?Fœ?ľþ?ô&ú?æ3^?Îmd?½¤?AÌ8?H†?³ÿÌ?²õg?±Ÿ?°X?5®=>ßX˜?zã*?²q4?–à?ag›?*“î=Ðàº?§³:?ª \?mÁÕ?f©G?ÁC6?؆?G;>YÌ?Uq‡?Ç6Ô?дÀ?ë‚?Íy§>3#>]0?ø?G@oü?fu}?ÝI?qëÝ?¢?Á\p?Üíq?âpü?üa)?úr?ÒuÃ?ÏÏÆ@|@ +Çc?ߧÁ?ÖLñ« >ìU?XSŽ?]Z?š ­?¥È¬?BGF>ßl >쯉>ÿ»/?Ù~?ÖÛ?-µ?bë?œ ?„R>?†ô ?(™]? X?~ê?¥ˆ…?Æ}‹?êý×?¿ý¶?.P­?C î?¸í?ÁKÔ?Àµ6?Ãv?¨)ƒ?šç#?Û @Ç-?ÏFn?”¤ö?ŽÜ£?]kØ?BßÇ>„Ë>g„w@Âú@ ¾‡?ZU>ì>ànÁ>ÜZ°?ìÓ?\Pm?=ÈL>åF?e?¡Â­? JP>zŸB>z6B?ƒ]Z?š`±?³«q?À»C?gÌH>…q4>|ÓL>P&>²l±?Åb/?ü=?1‘º?%™Ê?{p“?Œ07?Ú3>-”?PÆ?€‰?sP¿?KÒ?LÏ÷?˜]v?š/?a®? ¡>âù]>Û‡Æ?sÚÂ?¡Î=?‰ø…?[WB?-Å?Ù¡Ú”²?$–?˜mÞ?’&\?óz?"£?%3i?/È?/,?Gpz?ž‹>Ù”]>¸Ú>f!>]Vj>­[>ÌúÈ?gÕh?dLC>‰²<’¢;à”€>\›u>×$>ÕUˆ>ål´?íþ?;dà?4ø>·zª>¥·ª>à]>ÖZ]>Ö(B>Õô\>À£Î>sãÜ>Sãˆ>Ó^.>áþ‚>ðT}>þ™Õ>RèW:Hà>©/²>¿çæ>Çï>Î<1>ÑÑ>е>ÐK«>ÈÛ>À•g=«=”î¤>1ãL>%"=s̈>^ßÅ>jˆ Ä4a>§¦ý;™Pè=Xê?„ôk?UÛ?\;ƒ?Ùz=9Áy=­³ +<ôa»?I&?|¼&=ð/¬=²\a=Õä|=•¢%>ÿêÈ>èEœ>ŽÍ´>9¸ö>«Ô?_¥>òåF? öö?{lã>â¡™<îMQ>¢wä>ú3h?ŽgR?¬—ñ?q¦¬?DÖà>¹Cf>–Š5?›É?®NP?ˆƒm?yñ!=ùOœ>Œ; +>§Ür?|ß?Ìt="=—2‚<øäÙ>ñ>>õT{>æF]>ßÈ?š˜?’Ó?¶…?¤,ï>,äŒ>RÕ0>ô’>æt¯=ˆ„a?s²?`éÜ;Ö!Ü=CŽ =²°ž?r’¥?wÊB?ª¯Œ?žå?CTß?<Þ?r«–?Z¹=C¿’>òÇ>ý¡Ö?)rh?8fe?µÅm?¬*¢?C”-?8ÑR=Ûr@?kJ[?X‡ >ò93>ë½">²+I>‘9 =°¡·?2R­?0+D>ò?ö>òDª>òF>û& ?$?¹>?œ{?eÓb>òfi? v?hÔI?Œáò@Çö@ô?¦¾Ö?”®ï?Y½?;lw?¶M?8W=¥Þ3>½!z>üU‘?Vò?¨O?´Ø?¥²Ü?nöR?…Ý|?­æ?…T>·A}>ù±?HvR?|æ`?¶¯9?¡½n?ä;?‹V?Ø›?µ*Î?óâ0?¦i>óýƒ?3ë?uzu?–Õº?¹[¹?éÛ9@K1?‰Â(>sz‚>'Þ>šC?7 «?}ñ¥?w8“?‚ï?Np‰?"=ë>•kq=Ö@*?f¥)?– è?uÿ‰?rË?¨ý®?µ­ ?"ó7>ÒN>˜=õܦ?/y?Rf-?j>õÊÃ?pËý?ƒ_ ?ffÍ?y|æ?–ÿ™?™¹š?£¥? +è?‚¯n?Y-=°/>? 2? ”+?‹?•Þ>öµ~?R3”?Ò7?•è˜>{"ç?P`?‰†´?iW?_Ó?F™?w:B?£i?Âwì?Ý´×?÷m?…dâ?ùT?¬Š?Öq0?b5j?ØC?‚Cô?“Ó|?Ïþn?Ù†^?ƒ@B?`Ó+>dˆ%>„`>µ\ç>ÙHê@ @î?·Zº?©¯ü>ø\?)Ú?xp?ZÆ÷>ø…0?2,Š?”Êð?i\—?ü?->ø½¡>øÈŸ>øЀ>q)†>ûhâ?aV#?8ˆ8?¬?P¸4?x¤E?†É?ä?ñ¬N@»T?“å>ºHQ>òÏß>ùWf?·éb?»–…?ºáÚ?¬C½?.‡?.ê?TN?säq?¢•†?`ùþ>ðµ\?º'š?Š¹?st?|Éq?ÙT?À¦®?»bÀ?56ä>#í.;?­ª?Äò…?²(T?­#’?Ö3`?Ñ,ƒ?´³/?¬o?·-ì?®mÖ?O…À?k0 ?û?b@5>Å™?w.?°±Å?‹{f?#8? +>þÔ?ÿdî@Uuq?õž6?k·“?YYÅ?dâ*?9 –?"$Ù?Fd?JðÖ? +ö–>ú¦?2Ñ=?5Fé?ùˆ`@ =?•ûÆ?—¬õ?]‰Ó?`cŸ?UÀR?ƒ7]?îä[?ÎGA>úœ‚>üVl?öB?¸‚ü@Ne@"ÑŽ?É¿`?©ì?z’T?ˆ4?•€@?þJ?")?—&>`ÅM?8€¼?z€Ì?=U? ô1?¬>úw?Ò½¥?ò¾¯?88?Ù>úÙ~>þ›ã@U4@JWí?æ”?àå,?îÂÐ?ÍÒ}>ÆN™?þÅ?Ï.?{¾X?1Ù3?6ºe?;™Ý?U|ù?z0$?z-?z&#?(ô4>†¿>ô6?,åW?_©Í?„4Û?¨`?½î?å@‚?úÝ?®\<õ}>ס}?Ç>Þ‚¬>Å>?H9/?h?³œW?ÀX¿?Rõ‹?D^?€væ?q# >ùV? AA?†0?ƒú?§Î`?¡ß}?yu?h†l?%îê?|4@×í?ý8%?yH"?yB8?y­x?š¢ ?Ì?s²Ã=‹:?Oma?ÄÁ¯?«žh?—ãf?œ¦ñ?§î ?|yÃ?PS>ëWÂ>r‘ž>ušö>\·ø?@Í?x˜Á?É­?ål\?)@ÿ>¼ßÖ@dÀ@‚º>ºï>íÃx?äœ@ÄÌ@*?ùö?¡/?ü?ª?ïö?átÚ>Í×? p½?˜Þ?¥…ë@é‡@¿=?¹¤?®Ñ©?wgš?jx?D­`?VÙV?`?L5`?%é½?Obr?ž?•yâ?ˆ×?—cE?¹·@žú@Lmq@.a?ðâƒ?ÅQŸ?vlÇ?vÉE?vN²?ߊŒ@/*?ñ9?aõ¹?Q{?Mœ?It£?@Ø?_ K?u¶¹?}ê?‡¾ª?ˆ?~|F?œÛå?µ>È?ƒ²Ž?AÐñ?Q^ß?RÊÂ?K•³?Deî?Öœä@¹¡?ò½?ÇW?äת?ôtÇ?®C ?}Ç?é0T@,1@ìä?ô +I?„ð<>ÿ‰n?èC?9IÏ?6EH?4Hè?>kÕ?HŠó?x½C?Š0?–¿Á?¡@B?­AX?­W¿?Ÿ?Ø=&?µ“?™0—?–d­?šDI?ê¡œ@a§?Ào?H'B?ÐÈ>€?Ah?•½¶?«h?À\?¥8i?ˆ¯o?¶¹†?ì]•@å%@Z!?öÃp?´™Á?´6Þ?±?ǘ@?ëÐë?Ä]8?‡Ž!?Ê´‰@o>@DC?ÁÄq?œ»>ï¬?6 @?³›?ªñ?…|o?‹K?³N?¨ŠX?kg?cjo>î­>ø$«?8i??²µ?²æ«?œÃþ?™z£?ÚwD?ßw’?ž™2?›y’>¼¥.>J–?`í\?—?ʈ?å|?–HP?l¸Õ?ä?±C]?ùR¨@±?¡n+>Õ¼}?] ß?¨}í?žpf?³?[Ò? 8â?>…ˆ?†l|?ž(?×tË?Êš›?§Çò?”ò>†@5>Žâ¢?j^ƒ?jB‚?ªšp?¤ñÎ?Ú°õ?ß?,Ê>éœ ?Äð?k1>¿/Ï>z<ê?e6µ?®¸+?fø>è¼æ?%«Ò?h†?‰ùû?³?À>K?êE^?ÕÚ!?gÓ¤?€Cy@µ³@–8?á{?ܸ@6u8@=x>?»áÛ?ŽoÖ?¥\?­ù?I†¡>ã&"?=a7?t°Ç?žÝu?槒?¿¹?Ðq?5Rþ?‹V?” /?è«e?åþ5?Éh•?Ê¿?‰Ô>¾l6?>-_?d½u?UH?:eA?F‰÷?dR}?<I>ب>»f>¸,z>ï ?‚¤?~å¸?c^?cpà?žT‹?¦e“?ÔÄç?ã|?mbµ>ãV?ÇÎ @'ðW@U²?ÙMD?ÀŒš?~І?xÒ˜?*à}?2Àà@£¬@¥}?Òß?ÉÑ?à?<ÆX?Š?Ù+À?»»/?ˆN?‚ÎÖ?a‚?i E?ŒMA?‹zÒ?¼@Ñ?¸‚_?Õ8?ä½j@'(–?ÿ=¦?§hã?¸vl?Ù–?Äv?fÅC?gí>ú™N>ý•…?Æ9b?Þ®Â? ór?…â?Û?¤t¤?Ê™?´qù? ªG?äm? ©ö?n?×8?áßêéŽ?—óQ?æE?Êâ ?žü~?¥oÝ?¹~?¾{Ž?†ÈG?‰^â?Kè‰?5‰D>>íY?a—¶?ÐMÅ?›•ð>ü??¨†?]G†?]<Æ?]7K?]. +=ßu=5 >§0P>ÝQ?ˆé×?ȇ^? A?Iôä?O&Ä?u^?sWØ? HÚ?ù?6'?6ä¨?a7??¥?’ ‘?Öx˜?Ô¸@?ÂZÂ?¼Ö?à ?Ä>Ñ?¥®?¥€ë?Ãå®?Êcc?èOB?ýªl?Í~?”36?®eÝ?쇭?ß^J?—~Ç?žÑÇ@¶í@( ?‚±œ?\}Ç?HL>Ü|é?e +?£Ò?´x©?Î0x?Ásj?¥Mx?Ÿ– >²ä>¬:@_×@¹@?t¯É?ã•?ž¦‚?Ì•[?›9$?:Œo?M4O?¤?¡ì¬?*Ü?-'L?03?3;?š^>Ü?Z¸?–Ä??£ö?º†7?®‰?kðñ?o«!? @?¡‘Û>ú_…>ÛÀˆ>Û´Ø>Û©ˆ?q¶0?¢á”?mú„? Ðè?#Ÿ?:y?FE›?ÆàW?Ë­{?o?B? p1? £? +s7>Úâß?Ãd?!Õ#?' Ë?v;? Óü?Zp?ZV>¬±I>„Öw>ìùy?V·?5AÂ?Yü?¸=I0>•ÿ¬?šz?™æ>Ú3>Øø;?J€†?SÙÞ>ˆüß=Úl?‡Ë?‘?h·j?m?j$?‚ú¤?~‹.?5?-¡?)ßÝ?&c?Û;>Ö+>•"=ݱ =ËÛ_<Àqn=` °=¨.=#SŒ8}€>“XÜ>Ñ’¥>Ñ=|>Ðë‚>Î50>¦D>Bz<“ci=¾Ä<>^2>NfÌ>>•¿>.ʤ<Ú³A>æF>_Õ>ć>yKÒ>¸€>ÆéD>ȉÝ>½y<½%«;ÂO <7 @=öhj?Ðcì?Ã5)?²Þ?z˜=ßXX>’e(?f>\7œ>Ù\? #>æÖm>Ôµ;]¶g=î{B?²b?‚Ó>Iðn>ÕÊ¥?©¶?=$y>Yq•?òð?¨¶/?M =ú>Æ=R*[?€ï?s=?¢®?¼m?P/>ú3w>Šè>wþ>k¬·>€‹s=wÚH?a +ü?÷?µV?¹¸’>¯Œ%>4>©<^£?M_œ?aÔ=ÂK"=Ÿ?iûöyÅ>øqÞ?g@Ë?_5¡?.? ??Ê? +?£¿ö?Y!4?Aõ6>ô'y>ên}>@jù>(P>ÅE>-] ?D +Ç?>#7=8¬Ö=íßÐ?t™œ?eû@>ÿHT?9]?3ø?2%Ä?rÓš?iPØ?$OS?ö!>„/>p›’>‡Iß>ÒÉù?¢uE?›Q†?™²?¾>I&= —Û<ò@`9û>ñ®?rM¯?aÏ=>òJY>Ú¸> +>q3>òR>æíÞ>³®#>çŽÖ?_¿e?zn?²Ü¬? js>òy >õhJ?yc?DÍ>ùÎo?Dˆ“?µø?©mº?r²Ð?^‹?™©?„Ä>´…%>möè<Ûw=›Qk=O<Ñ> Vt>ô†™?gM?ç|?Ä™¹?†I?`">óuê? `•?,cª?0úó?>ÇS?ÉÖ>™,?&ä?–¬?¬Ž?ÍC?šjq? !?nµÁ?¶ðì?zøÜ?:?3½»?^t,>ÞÒ¹>‹E7>ôŸÈ?™I?Ô£ý?J +<>š~®?U®?ŠÏ?KæË? Ô_@°n@0BÖ?7“÷;}d>Öì?Wô?ÿ>õ‡=•9Ó?1UÃ?BKU?;Ò©?5\>ú >õý>>î±>â?>ÂR>àþ×?iZ?…?ôÖ(?ÐÁï>¯ +•?ÚãÜ?®áŒ>ö°W?*^´?Œ£ò?‹qõ?˜,f?DzH>Kxg>÷ú?LÞ?@ÇI?W™ú?i +?Øx£@ø²?¡`Í?‰G>q=†˜&>’HÍ>í«‹?€ù˜?C'?B)X?3c.?ßÊ?÷úª?ì¶o?äñj?‹ß¤?sú >P»>Pô>ˆÊ>ã?x]Z?x”£?qlœ?nFl?xˆ?qM[?X' +?®“?âa?¦?$ ?.ë?hOÝ?„¢H?ð‚? Œü=æGÉ>Â? À]?”á ?¼°4>Öá;57—>û­£?ì>ù×ì?t`?»le?ˆžA?DÈX?gMk?fÞ#?cl ?uHÙ?“ñ?—rP?‚6Œ?z?ºnÍ?Îîã@n@&‘,>ež=¥³€?yì‚?n³ðÆy> YM>¨È?\Úÿ?VôÖ?Q?‡ Œ?Å[J?² Í?›ph?xI¯?-ÿ7?=ýŒ?G€ß?¯–#?í¿z?¬@?­ïG?…=,P>¾;š>þòh?ÿ"H@á?Æa +?»ôÛ?EdÙ?FëÆ?§KÒ?ª‚º?Žáª?”iŠ?z¨ã?jò²?Öƒ?ê?IvŒ?>Dã?31?Fýë?z³?”Cy?·hò?»¹K?»€E??UÐ>•ØË?Aª?z¸À?'Wb>úº+?¼Úú?â=!?Çä?z¼¸?Ÿ>ú¼"?<ÖŒ?Iw$?ãbÓ?à4u??¨œ?0^5>ú¹„>æ/‹> Š+>'2ë>ýyO?ÁR?wì©?r¦Õ?m`u?œ·?ëœÉ?´ª¨?A׈?Bþ>²¯Œ>ÇtÞ>Ü-Ø?B‡x?€;?.ëÐ>ú™H?6 ?S0‚? I?©”?«Ù>Ô|D?ªv%?»å9?º%C?»Ë?ûh>ûÁÄ?7›?[lJ?í?‡ö0>í.|?ôÿ?+Q9?U~à?»Å£?«·Í?€›?7–>‰åÉ?$¸H?”]8?~’©?UqB?yõ—?Š©“?’ª8?¡Q–?³só?»˜Q?â¹.?ú¿?n‘? +îÍ?¿¥Y?ÝÜÕ@3Þ@Äu?׸?ȶá?Á´ø?º¸?~ú?yê.?Ÿ7³?œ?p™?¡·Î?£‡›?¢ú^?äë9?ÑÙ?Y;0?W¯í?Jåq?ƒÂh?Én?âñ»@ý?ôe,?yY8?Ä C@9?È&*?yf?Ž?ÉÁ9?“Ôø?]Û^?›ëÀ?ºÇ`?|?.?Û>ÛÄø>„(›?;?eóÁ?ai.?^?·?o¼#?xªù?­F\?ºrÏ>± =¼pÿ?¥ý?)Åe=ƒc?dqú?x7X?¸+:?½0u>û›S>øƒ>ø? Sw?Åè&?Ã/Þ?‰îÆ?„“ù?èÒ?››>?Ûæm?Öç?—Ë ?šbi?™¥g?•.?º%?x??rŠ?‹¥?w+û?˜qZ?Ú¸?ÕáÚ?Ã?Á‰õ?¿––?ºj£?¶t²?…æ>öV?ŒÍx?ò­ú@A@I^’@& I@”Ÿ?Å‚M?v%?Šé“?–À?©Z–?¸"ó?©ŠÂ? "?Ê¢Ë?äè?ÇBí?¸"P?» ?Àÿý?ƒ ‡?'ÀN?‚Ó?¤Üø?‘‰>?‰—u?swV?]5â>ñ»Œ>F^µ?šÌÝ?ë ‡?ÊÜH?·J_?Þ±«?ô=h?ôOóñÜ??Cþ?`Ô?Œ?œñŠ?Õâ?ï<?„bN? ôÞ?žß?Å$“?²·?®,Y@ øw@'þã?Û…*?Ÿn?š<ë?‘£ü?L÷?ð!?hÈ?ƒË2?u2?qû­?¨ O?Ïè&?äÇø?ñ ˜?çFì?âà‰?Ë·?³JX?ogK>ñ!>|7"=P>÷Ø?z ï?S^ƒ?'S? «*? ÷Š?€üÚ?Þ?â#Ú?Þâ5?™}¥> ý2?"Õ#?Øh?¹®Ó?`tQ?‚Û?³a@?›y>îÿ!?$é5?¶R¡?±Uó?Èrá?ÂÞ{? DH?£xù?ÏÅ?Òæ?²°s?²f&?GB>íª?®8Y?·MD?ØæØ?ä2?6À>í Â?QW#?lÒ)?òr@Àš?ܹb?½NÒ? ͪ=v>+l«>Œ?([P?„]ç?©5Ñ?Ð@?¸•æ?œm ?‹xf?d“‚?Œ½?É͉?³I >ê· >ôëW?3wT?9#%?Áð2?ÇTè?÷E?ûE·?G¦a?€‹?X ?i€_?A½?7âð?’‡T?®Î®?ZR%>èÙx?F—‚?‰o}?©,¾?åZ?ùž@"Û?â£8<žÀ>OÄ8?´ ï?²ˆ'?Q?\¼?Çã8?Ô`?« ? êœ?ÊÉ}?×Ù0?œ2?pyæ?OdE?CÝ?…?Þ?¬¢?´%?º#;?£þ€?eÉ0?yëg?Î/¹?ÒiQ?¬+Ï?«ñ˜?GŽ0?<:5?|¶d?„@y?Õ'_?ÿW ?©*B?K"¥?VÃ?Åÿ™?—6>–Nû? +Ú?ÙôŽ?ÓR?^ÝZ?aSV>픓>ã`(?—wR?ªé¨?ÎÓ??ÙÛ,?â~å?íøø?êo1?⣅?¯ùK?wÆ?Ì’?H?Lñ¹?؉½?Ü?&?ÒÃ6?Îpk?¡†"?“S>?NŒK?!¡Õ?aè?Ž ?pz?+xf?P¿Ã?¨Ãs?¦.æ?¬6š?²{!?®Â·?¦6A?„L¹?k¨ï?^»¼?`U—?IoG?6Äã?lbÓ?¨ +Ó?½ci@I@i?>ír“>å=…Êó?"Â?`˜Á?®ÏD?ÜϨ?È+N?¬ng?’ŠF>ýa¿?Âv?J¼%?H!ˆ>ÑÈq>Þá?¬eå?Ã÷§?£¯Ë?“æ?‹"´?„Õ`?“u#?®Á?¦V‹?fæ¥?\Œ¢?ÀÔ²?ÐWü?Pš*??]?~W ?¦x/?wRJ?D>îâ¼>hÄ.>ª£‰?~1?mø÷?áèÍ?å›—>Ǽ4=+(Á?­„?hK•?‰r9?¥­Â?•'g?]a ?>øþ<³žÌ=4Ð?HBÛ?G¢'>@.=5À?+IÚ?„;?NÈ? s_?>}b?•Ÿœ?—óÑ?¤dG? ?„?fæ> Œ?v‰\?ÀoØ?æCÅ@ +‘?ë®}?g?ŽžÝ?€¾°?ƒ•3?•å?—Xh?@„(?öx?Ч4@7ú?º|Ë?«Q?3>þû?ÏM?¥&?¥U”?_×ð?\œŠ?˜p?Ÿ>­?ãbÕ@ÙJ?Ù?€!y?Ž|÷?¥eê?›Wh?>âi?:"?NŠ?g(E?©¯ö?¤R‹@Õi@%P­?Ú$+?_F?R.'?,ÇC?7‚ï?A L?9.?~?d?“\à?’D@?ŒVŽ?‹Ûh?JŠ~? 8?HI°?¡q"?—'™?Z„?V×>ÜÈ>Ûög?L˜^?U¿P?Ùî?Ê>Žº3=—öh>ƒöµ?J©?8…c?¤ªe?£„?|#ôïL>)>\*R>²¶p>Û d?á@?1ÔÅ??»¯?ZÃ`?Ví±??(‘?Bƒ­?2€?8¾?^Ïà?dTG?”>ÙïÀ>…Oy;±`<›¬ =ƒ­-=¾5ú>¬½d>²ýz?u‹?¢pÎ?[În>ØJ{>Î^9>ñ¢Š? +29?DN?Á¨>ß5>èÞG>£Ä)>‚ß +>e·]> + Ž=œÃæ<Àc4>®@1>µ§£>¸…=„›~?Ù?Ryì>ò>(;Ã>4>ÆÒ°>Òf§>)ò=»\6=Ùš>=÷à¯=öô\;õf>anE>W2ü>ë5×?2Ð?ß? Þ~>óéz;²Ë¬?)?KÒ‚>á®±<0–0<‰û7Ï2µ?Õj?H,™?/«>¸YÀ>¡‡;Ê$¢> §@1u@U]?¦ƒá?„)y?¦¬?+>>FZ—?I°?r@? +¦D?&,84éP=n¯?2ä¹?2xÿ>è>ÃRõ?IU-?)oc>œ¢ >ëœ^?3.?ô>üÃ;>q +¦>‰nñ>ö—)>9Òg="I°>¸C>ú7> +->€ÃC>•X>涌>øþ?q2\?†û?‚&ú?p9=à’>¶>>ØdÛ>ä#Ä>ïã7;>€<ÿé?mš?aK>#_Ž>NÙ+>¼>5#d?&¼Ø?+Î?)3’?6?>ô5ï>ëÐa>¡ ?>ÁÒ?4sQ?s=ˆcÉ=Èñ1?S?1µb@1†@ã²=Oî=˜³Ò=Éá÷>;@?ýÿ?YÑ>òÍÇ?öÑ?4vƒ?: +“?i^è?\A€?® –?¦“c>Çá>ö=\?i6±?o…¯?rkß?\ >àí>Þ…ž?zŸ? +'>ví>9&”>•mÕ>ÁQ›?r_?Ja?¨9?¤§ú?B»D? Ψ>@•>N‹p>òyd?÷Ü?rì?[:>òe>ò“p>òœ¨?3Ì?1è}?-šu?S¼@?Dþ^>èÉ?)¢?@P?FÃP?M:q?;4>ÆÀ–>±N(>ó—>öþ’>ôÏ&>òú}>óDÙ?)F¹?Œø—?u“!?öî?‡è>óŽ&>ó˜Ø>ó§¤? Ÿ‘?$>Ãá¾>±>f>‚>Â_>c€w?g½J?ô}T?¸¿%?zêŽ?r”²?`¾3?' T>ô€ ?ï?.¼?}£‰?œ”Z?ŠAp?£Ã?$øâ>–UÃ?dž†?Ÿ:ø?²_?·ân?7–>ôб?Wå?g?aÏ>õƒ¡>õ•>õ¡B=|Äâ>¾o”>ìo·?®ÿ?­ÏÒ?€ìê?k›Ï?9´?%Ô;>Žº>/ >븄>Ô\+<\`>!´Ø>Üew>ôQC?I›¦?„Nj?¼++?¹P?c™?EÉu? !>Ôx×>6 +¸>¹ó°?2¯>ÌdC>Uä>Ä8H?üÒ>ýD>ù“X?®1?æ\]?Y=9>Æé¾?¬º?-@Û? +ùˆ?j×?;?8üæ?³Õò?Çâ8@·£@ f5?ü˧@ZU?©öý?°±a?¸ˆ~?²?×?xxa?c•†? +É‚>ñït>YÌä>†Ov>Ÿ±”?2¡?°ý·?¬O¾?šÜ?§d?Œ"¡?È,~@${?¦Fb?'c‹?MýT?pF˜?ÐM?ù8í?[a…>ç§?¦‡E?Ū ? r>µß!?ù?*ô…?‹4?™þ?Ù'3?ÎJ?y£k?æ¸?—ýó?”#?bÃÕ?SØc?Lá??>ú–?[¤û?´Ú?•úK?g*¤?Iñ?:èC?`q?m4?Eã?%¬ ?Å´>ú ¤?D™›?nÖ?¢6?õÜ?ÓA>úCk? Ü÷?Á?¸ÖÀ?´è*>ý?¨é?m}?Ql—>Èî0?áµ?zuU?aÙ?-’Ç?[¾?˜½•?‡ë?WW¸?¾?§?œÙ£?¿v?ªÁ]?²¨à?Kåµ>ú¡^?Ç­^?úŸS?õ‹”?í¶? %A?œ$(>Ér/>¿¿D>!5«>X +»?£‰8?š¾?>cù?U±ß?³2?¦B?‘˜?¦OØ?˹æ?ÀØ?² ;?£ÚX?†^ñ?G>Ô>úâò>ÿµ? +Iâ?âJ=@!ê‡?ŸÁ¿?ÞŠ?}õ>úÒˆ?¿«ü?îm2?¯½[?‰d?GÔ ?2ÒH?Zœy?RKû?ìüa?õ)í?¡—Þ?Í´?º?<Ÿ¬?ÁM=?®… +?z˜,?xP?zÉ ?zÊþ?zÇÅ?‚Œ>?Œ– ?}}t?QçŸ?¿´}@¶Æ?£??C;?5¤?2ÊS? Éš>ú±_>·Ô>¸ÞY?áo{@ ¡i?êM>­’?¤,,?¹…Ä?öŽ?}uÌ?µ¼n?°¹8?«µ.?¡µ¿?z‡—?OGž>bí?z{c?„L¸?™#ß?éÜ?€:Ø?bèŽ?rá?\K_?§¶q?kšë>úQ$?[&?œŠÎ?-`=2ýµ?nm/?ºÏ’?£“?}c&? ˆ¨>ú Ú>™¿½>£g???©¸™?sº?rlÐ?¦$:?­h¹?6k?5fD?:Ü&?HÎQ?D`,?hôd?õË‚?øع?Þu?¼®Û?ïR>úû^>L¿‚?Fñ£@ç‚?Ý–û>ùë,?† +U?õé´?÷'Œ?ÿ’»?¥øi>ùP?VÊ|?š˜¿?´&?¿$ÿ?‰³4?[U“?"¤å>ù ?Rèï?t:^?ƒªÛ?’VÙ?²ïz?ºž©?‰ªM?xÁ?£)W?­Ÿ,?T &?0e?Ïe?æˆù>\ <‘]Ç>ïýë>ûNT?7ý? +Ä?jrÂ?m~É?¤$¦?§K ?èþ?Õ$+?H[U?Iä'?*-q?<]#?wÃÜ?ƒ%Ó?š§õ?‹ Þ?Re?Š9N?Ùà1?¶Ìþ?!‡Ü?FF?Š¡]?l?`÷5?šOd?ácÞ?ë1?ó–è?ÁáF?vò½??µ©>ö´i?;‡F?…S?“Š?§.Y?†]ö?Fv?38í?¬ë@ î@Xè‘@!Àõ?õû?çI?Ú‚?¿ªr?º?›/?‚±ä?ž9w?¨òµ?²º‹?µ\?l?u2ý? °_>“}`>ÌÔ>ôîo?ŠQE?²fÿ?“•z?~…ž?¤J°?·]$?Jž+?³?Ç?o™?²ƒz?Ø…ø?eè[?&?•´å?¶Ëp?Ï>?Ýw?`9>ój?]”N?‹6?®LÉ?¸'<@˜@*¢¥?ÐßÅ?†ƒ4?”™? ¨Ã?>ÈD>×É×?³¬@[ô?¾«=?æ‘?Zèý?*Þ?±1ï?ñ¼??p?šE??†?q^¡?Úñû@²œ?ã:Þ?¦¶D?6ú?pÔÚ?6­8>ð¢?#ë2?TNº?kéó?‰H~?Ä¿‚@ ë¡?Êjù?­?7|¶?ŠóÌ?³œ?òã?ú«Ÿ@š?ãA¡>ï?W/¥è?M Ê?kì¢@Ü~@ק?ûL£?ób?Åœ?±e?:{À>¼Ô>»>ýnÈ?kãÑ?£ñæ?ÙÓª?«ÀB?S?%ÇÚ>‚Ì3>ý I?’g?€šm>ê×}? îd?ƒs ?qëé>êeq>ë6Œ?‰Á&?ŒçÊ?n¬$?iØ?€Y™?€¢>a( ?iŽ£?¨‹ø?Oú±>÷ˆ‰?ò¶@JDL@ +&?hŽ?>åE>ú¥\?ŒoÆ@"§@Y?áu?ÙþÀ?›‡?˜Ït?­„?­ˆ?­t1?­^ã?Û÷?æò8?Ù,?ÑÏ?Ë£€?ÂN?³ ó?¬»?ΠÂ@hæ?á¦z?%K?•æx?¹‡Þ?³¯¨?¬!?¬~?¼¦?ª½?hCE?€li?˜3[?Ÿ»Ä?ˆmò?ar¡?9r?J¼?šWé@ Ž?í÷?j'ç?TÝ>ãÉÿ>ï´3?ª,È?§Çq?©ýP?ª~S?®rE?°Û•?ÑÀç?âò³?²Ä2?ˆ‹W?y¤ ?F]ã?5¥?xD´Ì>Q©Ü>P‘a?F ±?êŸ?×¢÷?™‡1?˜4˜?m½a?d©é?¼‡×?ÏtÀ@ +Ž@bÂ?ö?^š&?˜ò?Þ?Ò§Ë?¬Ò?³õ{?¾è&?·¿?¤Ù¦?¦žs?À,æ?Æœà?”}«?]ýr?q°v?„†?±­@1Ìd@2Ì@Ú‡@{§?#°Ê>ãÙá?°ƒ?Ý–ˆ?€••>Þ§–?G[G?£„¹?”ÂA?HV?=Dú>ý"??[?€ t?‚ Ð?&/m? ÷@?* ³?:s‡?6 ¼?>ð.?][P?œ2?£ž?®!m?¨¡ü?£Ž?™wÔ?¡6?¯b1?Ñ ð?ì'j?µ“9?:{L?,0K>Üí›>óÓý?…ªX?‚Ôg?ˆ£W?‹²@‰@!@‰?×Ü?Ûâ$?ÜÌN?µñ÷>ÞFÌ>è/k>èV>î x?›ç2?¥Ž0?ÔÄ\?æßO?¡ûO?\®W?¹J@ l?êrK?\¦Š?P=>„¡ü>}H?dË ?„|‘?˵…?äX`?ë.>Ü“à?ò‘?Vù?P¯£?µØØ?«@Ù?\|Ù?\vg@7&O@BLv@ ¨Ç@`?Ãh5? e>?‰ ˆ?\Mò?¥”:3>’r:?ÔJ?Í®;?]©ù?\I?’Ã?‘¯?ƒ>¤‡>¼ï>Ûå?!ª«?‚iï?k‰‘?ÑÍ?«ä?[û²?[’«>p9>6ð>ïéÝ?nÏ?K? Q?'ø¶?[«?Cqr>ÚïF>Ïâ:<Ñ ?ŽOd?£a}?,T¼>ÚTh>Ù!<>Ò @>€f©=¾Ÿ€=ã±&?‹î`?¢Íq?Š­Q?o°t?5Ó>éJ¯>Ñ´Ú>Ø4â>ìF ?¬š>j5>Ö÷É>¬9=‹dŠ=”Üt=žMi=è-e?Pøª?UuÑ=Éñ«:²;åD@< +ep=¯ì=ÎVÂa>x§?!zD?+‹L?Bs?®©>È|Ê=v·Ô?3æi?<°>"O‡>ÄØ›?K0?G?J_?Ià >î²¼>ÈËH>X«K>‘9á@(Ÿ—@.?êø?¾qÜ?c >>ëÑ_;Í#=Þ*>/ÙD=ìò>V{=0œ°>uQŽ>A‹³=„™V>-r>QÈ'>|Çz>Ȩ ?R#>¼û=v<ã-+=¦Ê²<ѱŒ?¬jß?Ç)>? ‹˜?’ãf>Áj§>žl¨?Ÿcy?µãÁ>‘hE>%àþ=sc = å8”ûn;—ºŠ>ð* >åì? ¬ß? É_>¿™…>³q>§J;>–H>Kž³>f¦Ç>m)]>su?)7·?ÿ>Ñ/¦>ñûQ?Â5Ý?®Ô>Þò`?Ûü?¶…î?®DÚ?„àï? *>Ë°_>¤í´>$dò?‰Î\?hL>c*Q>³½ê?rÇt?‡|?ßè¬?Ó¢k?Gú>¹ Ð=kÿ§=ÐKï>íõ? û?r€V?^IÙ>ò{²? È?V D?XBv?pž‹??¨à>V›Ä>¹d_?rtv?\è>òw÷?ƒL?‰ˆ_?‹x?a¬Õ?OÈ&>êXu>ÀXsî›?dÑ?^ Ó?WÄ¥?1¦K>žñ¦>ÅG>òÎ?Ú^?(?A>œ–>Ï9?Ø|?X•?Ð4û?¯“‚?´¼?DQ?µ?‹Þ>ó\?D=×?©0t?‰Æ?KÐð?)æ£>ó¥‰?©?2?zÔQ?¶âÝ?vù>·i¹>VŽ=ŠMµ=›¼0=Mñ‡?³o@6oy?î9?t`‚?>‘[?xH?†p>ô™á?nv?œâ8?¾×í?ØÉn?‡?WBX?b™ú?u @?Tí>õ*?“B?µö->¯€ß;Ýn=m8h=èd >ØiÌ>õœŒ>õ®4>õ»%?”? +ƒû>†™>a#?¾x?Ê“ý?¾÷™?Ç|?¬Ë7?«Ñ?vX¥?Yc+:$†²>I$?g6‚?]sÈ?b_?r‚ß?—jƒ?‹<Ÿ?ƒ·r?NüÒ>nšá>x„Ã>K©Û?ñ5?m•¾?MÊ?E)?l˜Î?ÉÑ?À›|?÷GÞ?ö’O?îf(?EäÌ>˜H\?7Z?Wâx?n_?wæ?_è±?G {?m‰?xï?x!¶?x.Í?¦~‰?¬ >úq’>ø\v>øež?û¢?x|'?z˜à?x’ü?^—>ø§º??z—?³le?Œ˜? ‡?!¶?8u ?[‹$?†çs?x€?Jøt?^ù­?y¾?›Þ˜?³×Ú?Xô?'â?–Á +?¼Ñ¸?³æ€?ªåÝ?·\ü?»¬?œ`?’{?°i^?¨Â¼>ù±ñ?vå?ª•«?°Ri?‘Ð?ˆê?Qó?+N>ÚFÅ?8^~?¶$€?»mg?¹¹—?‡•ð? ?Ë€?ýo?<ä ?Sû ?  ?–5h?îe>zçÞ>‚Ú…>”âŠ>Q¤œ>—H?„Óÿ?¡[?$¥:? à¬?ƒY?îé?zjO?{ñí?r_ê?N¨{>}>Ö«)?œ3?›_É?¦"†?‚'Æ>ú•?"?7ŒJ?'ç? ®¬?”®>?é4w?ˆ#9>ú°z?Buf?nÿy?(/¡>ýú„?ÍŠ?úÂÇ?ZÏÂ?-D|?sŽ‘?zÊ?<½G?+Š6îËe=›¤!?™Xî?œ„î?šŠc? bŸ?ËäÄ?²e?!*A?t¤Â?âX¬?À/ ?zæª?­Ï4?öVL?½eÜ?xÀu?2û#>úé ? +å?àyš?lÆA>úê>~Ž¨>8i?š :?¼1 @[h@ O[?‰úM?zí ?‘µ$?–+>úêÑ?±’?a'å?bÖ?ÀÐ?Öh´@©›@ LÙ?¹wv?¤ÐÎ?zâû?Ñ”?®é®?„ +?"dË?'T?,п?ÜŸ²@(Ã?Â>?Lki?‰/°?”ãØ?Jìk?"o>qy=Ó¤¼?S?zÀƒ?¥ñ?²Ú±? ¶&>úqË<̬µ=¨8? }?6JÉ?»üF?²Xõ?z Z?ï?Îì¿?ÎÞâ?êžg?ã6ß?Û×*?¨Z–?2¿?mú?¦·?”$ç?zp?*`a>Ê6‡>¯â>gl‰>°öù>ð•'?P³+?z[Ü?©7‰?·Ã—?3ƒ/>ú8Y>Õè>Ä®úË?è*™?ãd!>úh? ýb?Z?‚Xi?…L.?„žÒ?¢ûÝ?¯€~?þbO?åwˆ?yÖ?ŒÉ?µÚå?Ž†®>õä ?+Ï?xƒ,?¯Ø)?ù…õ?à?Äi?›FV?]ø©?¨({?Õ$?Ïí?ÑjY?k ·>ù5°?)5?:æ´?B+Ð?Tx?(“b?]«?¿¿0?ßCj?šnü?Šv>?gg ?e#³?ò ¸?þK§>qTÍ=6m”@R_@«Ø?·Eð?· Á@‚Æ@ú–>´•>Ž†3?Š.i?ŽAc? U?¡¹¸?©ª?‰™o?…'?€ H?wÙo?„?žI?ˆÑh?•°? í.?#a“?%Ô?8B?lãF?¡£€?„‹â?Å¢?0E?á›?i"?¸Ý°?¹8œ?¸¤å@žÌ@K ”@=ì?°ë'?ÊÑ?ÞÓ?¹y"?™“’?HNC>öR ?ÎÅQ@!‘I?Ø&ù?Ö/?~<]?s˜È?sãA?Z×I?üy?³Þ?¾¼Ò?ÍyÀ@J­@!™Å?ºœ¯?uLP?•ªw?¥kÖoÒ=+8¼>¸ýÏ>ôHZ?(C³?C¯Y?¯‘K?Äá’?™-ê??¬ \?¶Ä¿?“¶y?‚Ý–?Niz?8ÞP?T?º¿ ?¾?ÁL½?´§?²MÅ?š<Ê?‹‰º?¨6?µæ_?•¯`?„Ŷ?À?á‰×?ñ«u?÷š?óF€?ñÔþ@ ºÿ@0@Ã@µl?Å´Ó?†š«?ßø>@à¤?ùŠ?Ûè?Ÿ4­?T‹4?¯T>‰­ó?ˆK?ïˆÛ?Ô.1?¾Ab?•?,æ@?eï‰?—H(?ª]ì?ãÁh@ù @ á¹@?L™ª?xþV?ÅyÎ?±v½?R÷?/‚>C/>l°??þ?ÿ/?Ý?iJ?gxe?k¥?²-C?²E=?²'I?¯hÿ?ý›>ü|š?«(«?¿2»>ýÇ>™=x?Ú;—@vÌ?¹[?’½¡? —½?£±!?†Ó?lõ?5x;?—?Hï?wž?q_¬?k§3?SŸà?5Öf?'K>êó²?ˆ?–Á?“<_?ÃÒ?t +>êMe>êf?h~?iù?—£C?ž-í>ZÉÛ?<ïR?u¹­?iÃþ?hFz?¹A?èäˆ?h†Ô<à¸p?k*?¥zë?šò§?”ã?žÊ?·ÑÝ?°T‰?€W?J?‚â£?„&?¬`‰?­v?÷¦?žØÇ?¡ið?£ùú?âÏU@ÃO?Òeo?¬Ôs?¡^ê?™Ä­?£ÌK?¬‡l?½óÇ?öÒ3?ôïŠ?Ïp@?ÉÔ?eiÝ?eQ>ˆ³>1Fó?p+©?‹ç<@M @6tá@wþ?á5F?á’à?âß?ä:m?äN?¿#ô>ãíi>Ðë)=«Ùd=é-ß?¦'÷?ª—>Â&£>ní(?¬4…?ã¼? ¸†?bå?–|}?¿Û?ß¾?ʾ±?ÚÁ®@Ê@W?¼‘ó?ÀU/?ù´?þà?Özk?ÏMq?çŠÓ?øÀ¥?÷]#?ò ?Óyj?—©?¡,?âY?Ìne@s‚@Lí@#I£@$^¼@ jï@Û?·9‡?z[Þ?eåá?]X?”±õ?à%.?±3>ãc>óL[?«ƒ?¬…•?zKU?n/?û°>¸x?‘Ú?Ù¬v?¨??f¯U?v‰z? ã?}%Î??‡Ž?D¡k?„/Ã?‡P‘?Ô1.?ó}"?Ûä—?¿ir?šâ-?|“l?:$?š0'?¥Œ÷@v#@²l?ž9m?—ÆÝ?æ®?ý?¤2’?^W?ŸU€?Öû”?Êà\?ªÜ?¯€?Öåv?ÛÑ$?ccã?]ÃØ?›ð£?§`å?>ú>Ý¥->ðî4?ŽÑ?Eª?E?Œ—:>Ýwu>ܳ%>ªc'>¾6_?.²¢?8=õ?}2ª?´»?IP>ÝBû?%A+?‹,q?Þ“@ +>@ +<þ@ô@®?”T?]·?©ïÚ?Åñƒ?†9‹? ¡?5â?gD?/ñ¾?Ý?ÛÐ(=Ž53<Õð?·¢$?Ýoó?_ñŸ>Üñ?%I`?aË—?‚Tþ?w›?’0¾?NÞ5?ID>l©®>ˆ¡?œ¤ˆ?³ñn?…Ïg?\κ?Z˜?rÒŸ?¢æj?ÎY?¿eÁ?Ž'?†˜>ÐB¶>ê0? Z4?1ä\?! ‘?ü?9?\±÷?˜ùN?ܬë?ÆaÏ?nÞ"?k·”?h—?esd?\ââ?\–è? +?>Ü‹ú>4þƒ<: €>I~>ÌÔ°? bÐ?x×í?|»!?\\º?\F¨?$çö?*Þb?;æT?7U–?4Ã?0´ø?BŠZ?\•?<«3>Õb*>Õƒì?-EÈ?.÷R> >’½Ž?(¼5?=ï;?f· +?rg!?O 1?;fƒ?%73>ÛDN>´aô< 0O<Ôo?Y,=?Zû.>úßY>Úµ¦?2(¾?Mjì?>±÷ú>ªÎŠ>£“>œYè>•·>‰M~>íÃ?qå?=¸? ?MS§?Y&?À¿>…±e>Ôƒµ?^b/?YC»4N€>&Ø>¸áÐ>À=…>Çž;?'&?V8?Óº=Z¥z>Ëo>â1>»Ì>³ïÞ=ÖFC<2m€>hŽB>YLF=[£=f}4>”N>š±<™÷<Ât =|`=½ìÄ=ýÀ$>hœ=¾¤Z=Þz%=‚>gM ?Ù O?¸yó?W*a?sÍä+>Ø[û>Ì“:?;ç_?1!>©>æ>±Ì?¿¼>ÔÅ=ûÒ>ŧª>Í×>þ2?(bŠ?cw+?_–€?`.ç?)–>öë—?J¦¯?t¦É>ÇÂÌ>4™$=…÷>ŠÄR>¬ÑÐ> ØÙ>”â²?—gm?¹Øé?ÀŽ×?ŪÆ>ôK=òC™=Ô*P?Yݦ?h^W>éíþ>ð'8ùâƒõúÿ>õÍA>õ§ü?€7?T×?MåÌ?G»ì?CLd?BûŽ?%oÒ>‹»>²(ö?KÉ?`s}?¨ðž?¯Îl?Óé¾?Â/><ìÃs=ŠµK>û©$?^M?ì +? +±à>óA>Í [=²?Ñõ?ð”>g*¬>–°c?E„Q?7e>±½?&Õ@`…?ì´“>ò¤Œ>Ç.†9Š]<¦Ìˆ=¥kÄ>‡¾º?[¡ƒ?J +¼?È(?W†?pW?´=>q×{>…·?òM?O°>òŠO>ËWP=³>'µÇ?ïJ>Ãâ(5ê6ð>XC?a^?+ËG>+€¦>Çç.?rÅ?6[£>ƒ€d?t§?%F?Îg?“C>XÀÂ?E'Œ? á=!D>é ?¶oº?wÌ=È~ˆ>ŠD>óoo?/´"?Šàº?¤!€?ÄnŠ?ŒS>ó¹Ê?+®?sÓ‰?sK”?H?u>Ž2? ³%?tÅR?·,Þ?×Î|?ý þ?€ô½>-Ð>¸6}>ô‘û>–öþ>?0n?£_R?õ%S?Ì è?·¬V?Ò H?ë/P? Ac?uá?‚–>â>š?U¸(?u]?§é?ª‰†?jj·?IkW?>õ±õ?Bœ¯?E¤â?qIÂ?uìÐ>—¢¢>”Ü?J˜-?S½‚?RÜÁ?Dn?ƒI?€P?y¯Á?v|Ø?qï²?}½ ?±am?¢í†?vÅ‚?QÍ|>÷F_>áÿu>XË#>ûíƒ?ane?x|§?”¨Ù?±ê“?è f?q‚y?EKD?¹ ¤?¹©Y?ºP?j)?$¿è?Eb?BÁ|?f.}?wäC?wòx?wü7?”‚?œš^?€¹à?x,?S‚Å?Víw?wÁP?tÐ +>Ü}>ꊧ>ûÙ? ?ƒ?x’M?xœŒ?x©¥?…BM?5Ø?š,d?¦tî?µ¯?Â.è?–•G?5™ø?/Q5?) ?‡]?ºØ\?¥£è?ö?‚":?yG|?¦ßV?ºÎý?E!ƒ?™P?ùß@5¬?ñËb?ç˜c?ÍÊ?È?Ò“‡?Ö·Û?6¾æ?5)t?Wõœ?o½N?Ü•Ù?ÓI?Ðñ?£6Â= +ó<Ñ?@¶;?õ­ú?£>ú¬?^Ûå?š€•?··w?Ìñó?™Ê?z;ƒ>ôÝ•>ŠñÇ?Â`?ä >ö?>ú\Ç?hõ?Õè?rŠS?z%?ös?ú{Ê?÷On?êߣ?´\B?¤‹Š?D¶Ë?:üB?JÌv?Vš›?be?vK|?{k{?E+Û?ô?F‰•?€†Ù?¤e?¼õ?mLj? ÒU?jÒ>úÍ3?šþ?»zŠ?>ÿf?n3?`¬0?d Û?xM?zßâ?zå*?{“»?^aÒ?J07?<7?CWw?]åÝ?qa­?zðû?zõe?zôö?sR3?i"Ü?n¶ì?tLE?Ñ9É =*=:Ä=žõ=žð ?zµà?¼@X?ƒNf?Q)P?'ž??}¡?Šë?R @ +@ýw?žiŠ?‘Z¾? Ö¢?L>úþ«?>²6@.ÛZ@)úù?ù¡À?ÎÓ{?–Ê?Xj?¼:[?“n?ý?$Û/??t?NZ™?Ow?"A]>úí ?d’ˆ?Ÿ(?@?>ËQ¡?€«4?§çz?vó+?\™Í?MŠï?9Œû?oɉ?zÒÛ=¨±×>ó„‹?ª/?®À?£O?g³µ?v´P?¼ e?¸Ý`?¨‡Ô?¬l?Ư9?Ø¢Ý?öÁŽ?ðòa?ä0?¿P^?z–U?TÄ¡?02Ä?j6g?Šþ ?70>²‚?š[é?î+Ñ?(y9Õ¸>²J?×Ý?elØ?„>g>†J.=¼çý?Š£n?š©€>¿wd>©ˆˆ?‰ …?‡—8?Ы?Õ@Õ?sèÇ?y¾?Ô%Ä?Û"æ?Ðú_?Ùe?ê +?ÀYî>Ìa±?Rç?Š›¹?€Õ]?pp«?iØ8°>Ï÷ý?y¨ö?‚l¡?ŒÁ…?¥Üˆ?»'?Ìæ­?×Ú}?é¡5?ùgp?êÍž?ßÌ/?g•>ùHJ?T`?y5:? KÌ>¾L7?réã?“ÌÕ?ÓN ?ë¹?¬»!?¤·Ú?Bȱ?$÷ë@£L@—?û|?øBÅ?¼Þ?»?‚ê?!¬Ñ?—”?¢¾ò?Ä/?Æ’*@{¨?íðv?¤òŸ?¢!?|à?DSR?™I˜?Šø'?>p?Bu¹?Flj?r + ?¥Ã?¥ ?Sª?†ˆA?3kÍ?/æ?BÜÝ?u ?ª„k?—÷^?w3Ã?w'¦?wV?ÖXÀ@Ò)?ÞQz? < ?±™^?¹ü?Û­¥?ö¢-?ìÐf?ãÔ†?ÉGæ?³?0˜?•IL?ï(>n¯0>ÈŒ$>ßøy?’{?ÅIQ@ŠR@[o?ÂG¬?‹ÏO?ö­ @´Â?¸NÚ?„qZ? ±¹>õ:D?”C¤?µ: ?:—õ>ôó°?VÊ ?}XZ?Ö^S?ïº*>ã´ý?+ch?\’ý?ùV?˜x0?š6t?Ÿ˜¿?Â4¿?ǃ×?¹§á?¶ÓX?а¾?Öy?¦aC?–>Ä?VöÞ?@ù$?D@€?G†¸?,—"?]?šÃ?¶Ì?¶Ò?µ÷³?®’Æ?­N¸?ˆÓÆ?rGT?ôÝ®@Pß@b"?ñê4@ Ï@_@)ÿ@2à±?ÐÜ?q`›?‰Õ??™fÿ?u6´?M°?Œ!^?£g?úú?Þf?™ÛÒ?¯š\?»9 ?mð?4æ?š Ì?ïá´?¤ì>Áùß?p9‹?ó%?á?Å›[?Ƭ³?ÐïÔ?×|ï?âÕÈ?ɧ¼?\œ'?uDÿ?¬Ð‚?­š&?¬û?¤Oà>ð ?pî?²n?±Î‚?s;m?u¹X?¥wÍ?¤ ä?°3>?±à·>LXg?ɇL?üaô?ÄÌr?±f´?Ú?ô?ìRµ?¸†™?˜ì!?Nk>ÿúè?pDØ?°ÃS?½Y»?Êêý?¥ØG?S~c??Xj?Óf?‹˜>Ž«¶>¾ùx?jŸç?]»?>êgÞ>ò¦¾?j1‚?jO?Ì8>ÿ; +=äÕ=&K?»½f?éT¡?TïÊ>éYK?BúÌ?rR‰?)·x>Ô¬,?[ت?®q¹?„ã?øæ?.è?&0?lÙ>?jP?)Ò??›gT?–³c>ü!? d>ÅÚC>Ç¿¥?Î&?*¬?€ C?”M ?¦k?¬ê¼?‰©‚?Kå[?q×?™Ä?¬ã?Î@p?Ñí°?ô[¾?í¼f?|Ó£?yñn?eR?e<ù@0@ ’ä?fP>îð ?„3¢?«ºn?œ?dn-? N6=m*à?Háù@ù@ æ#?GæÉ?;ˆ>e(²>íº?+Ä?-Ùù?¢>a?ºQr?ÙµI?äQð?’®Ž?(*J?^w?–æF?¸ù<@ :@]?©Ú?¦—?­Ÿœ?±ß?Á}?†sí?“Ä©?–¹Š?´.§?ÉåC?›-G?EÃõ?OË?a7 ?m²Ó? ¨?¡è6@Æš@°‰?µ—¥?¦=á@ †×@(G?–ñÄ?5-Ý?à?À?ÝÕã?ÒÔ*?»E˜>'s0>F%ž>¿€>- >ÇIà>ߧ?‘<¬?Ç…4?½?§åÐ?‘ðP?_Kô?L™*>ß+]>âc»?^b0?_?µŽg?¼`?Õ¾Ý?èt?v`B>#Uè?ð?©4?¡Þ?@'Î?L²5?¡cú?œ?‘».?•„Ñ?uä?^3:?áÙ?¦—S?ºÚÃ?ܼ +?«Ú²=[A|?]ç-?]Ü=?Ï*“?Øâ™?Ιæ?Ç?¨ˆ;?‘¿´?—ÔÆ?¦6k?´?Ö\æ?Ä ¤>”s>Ž¦,?†c?©¼?‡¨¹?‡ÜÜ?6)P>ÝZÎ?GÑ1?¥ý&?º0H?þ´¡?þ‚?îOº?ñb?‹n¶?{½?à t?ãþ?£ä¯?]*?cÏõ?j?‹ê“?ÙyÙ?ÎÚû>éd¡>Ý@¤L@ +$w?èJ?ÕÝN?—•õ?]Ÿ?…Òã?¥Ã?¯ˆh?ÆÍ?Æ¿ä?Îi?Ƽµ>áM +>Ý^k?ô?H]??O½>ö·P?d¢õ?À 9?µMu?’në?“ŠI?\æ/?]Ef?ƒ¼=?x3ù?\:}?\à¦?Kéü?F¹*?Œ9„?¼þ[?¾RÊ?¯Ia?ªù?¥—_?¤€¼?]”ê?\Á»?[õ?Xêë?æë>È]>Máu=„w>Á¿¶?\›¡?ús?¿†?±Â¡>܉4>Ü|û?ˆ³–?Žný?jMY?\`?:À¾?)*N?,ym?/ÎL?:X^?9z¦?ô=÷W„=Ùÿ‰>£ â>²‘N?p>™?( +>ãü³<Üx>Vw>ÚÄJ>Û„q>Ûq–>Ù¹>äúð>ëêw>܃>Û±>øÔ±?æ>î5»>Ú°³?œK?5ÍÍ?I>/‡ë>±½?gÓF?TŠ™>JÍå>;¥ù?6ú—?Yv‹>ž k=cØ=ÄŽò=¦Œa=ˆtH=T–_=T<·¨;öÿ’5ÑP>˜E|>Ø$>Ö”l>È0Ö>ÅîA>Öã>ÀzP=µc==Ôº<¨ù´=õ,¼>b‚~>eHÕ>‡à~>¨>’`¥=S¼;v8Ó<‰¾ý;$0é=‹_M>±ê>ª«??‡5>b1=ßþ{>”á>­„4@ ~]?ÉEó=ƒU=_&D=W:>¹º?Ú­>K¹=š"D=”Bð=¨G>è?mî>›$ï>©ù>E¸">”?=¦?#‘8>^ÏS?4 ?•lm?f@">þ)l>çY>Ô¬¿>sà= Âö`>¤YÀ?Ûw>î8Û>Ñ D=ÚùÀ=ïÓx>1k{>Héš>`n2>åé”>ø£>?j&§?x*¤>µÛ×>‘>ïßx>÷N'? Œ ?ªc<ê56<&'ä>ïPÀ>ö˜H?¨ôk?œÄ­>õ¯¶?&?ua¡?u;š?uc?tR,?z3¸?s©5>¹ š>¡¹>°dl>Ö«o?HÃÑ?7‘À=õ> V ?sÅe?\ê->ó›¬>Ðú=§£6>”æz?•+p?z§+>—Ê>‹VU>}¼>k•Ê>Ù>©œ´>òåb>иS=ÏpH>Fºß?!9? +øp>ð1ö>Âà›=­.ñ>Ïæ2>°Ðé>o½Z>é.‹?‹Z˜?p–Ý?<>ð¡â>ò—>½¿=Z>º¯Â>Ùv©?ˆ‹?k~?u)Ö?U´>ìxŠ?+kù?®m?ŒCX>¹do>þÐj?rØF?1—u>©‚Ô?›z?¢l•?´ìG?±>dH^>0Á}=újp>J"˜>í¼Ä>óL">þ²:?M¸œ?žñ†?™–ý?™ðÃ?šg?¡ßóÍm?BfÊ?Ž7?8g'>bÓ¦>fÜ=uñ‹?-”ž?³€'?q ?ˆú?Nº,?ŠhÖ?‘ÞY?‹“„?g.}?JeK>ó…#>†()?“úÆ?à÷ÿ?©Œ ?Ž¨;?0¾>õz?RQ^?u3¥>”G÷<ˆŽ¡?>dÖ?ur+?~?ƒ›?y„?uª×?V U?K!n?.EÒ?2¤Û?r“¥?vñ<µS2;Ó.1>ö-Î? +η?à…µ?â=?´l?·­Ø?¸ã?££%?>ò×q>ˆmh> :§>Žíá>Ó˜=?…£?5d?wSª?˜°?Þ·?áç?í!??Ç7›?–î¥?#MA="™—?O¢ê?¹¯E?aÆC? Aà?ˆêS?¤¾?¨*r?¨íÚ@úè@l3?„n˜?7½C? +g?•Ûe?T[Ü?Qƒt?]“h?Ioõ?P§Î?T@ˆ=ZÇ =Úý@?xUM?bª¤?žÐ?#Ü?x¿~?€ƒ_?ŽÄÑ?cA->Å”J?2…¸?›X~?“#˜?y‘?¥”I?Ç i?£q?•í,?É|ß?í.â?¥¶d?y^?yîR?"J?rK·?gM"? å?fÐ?¿îŽ?ÐÊü?(Ôì? +`f?vd?„ v?–Bi?•!¸?¨1Ò?¾¥@* ?ë¯>‰ÅB>‡Óœ>ýpÈ>¢>¿=“‹È>}ˆ¬>ζà>ú/ˆ?"7;?M†I?ÀLY?úI?¨Žz?zRD?<3?ñH? É?»Ï¤?&FF>úsÏ?L8û?a1,?yùÔ?x m>ûXu?mi?Ár?³UÆ?)ks?C)´?z©ý?B¼7>6Ǿ>Ç?AB?UAÁ?ƒåG?C_>±èÜ>A?I ?±†í?‘7Ù?zÜ?#XÆ>úâÃ>ÿÚ¨? +Ãî?]â´?hÅç?†\? ?v!ˆ?y2>ºì”?À¿?Ýñ3?Ë +S?5’²? >T˜Î?Y{?oö[?ˆ¯?hª?P?×Ý>ûÐ?xºÓ?µ©É?ÍR?Ü“?Ñ ¥?Æx?<á>áf?ß\?.¦?’²“?ž >?áš?{g?d7d?s9K?»Tv?¹‘?^ɨ?\ù&??MŒ?„k ?ŒRÏ?¼Nñ?»Ýi?´gÕ?¡¨û?†Â?Y7}>û Ó>û +Ÿ>ûc?†5ç?Éw?Lß›>qxØ?/“»?kÈ?QE`?N?†Tü?ŽŒA?>úñå?Ü™Ö?úí?†æ±?wfÜ=K¨³;å#J?uñ?ƒ:‰@¶@ ø?¯hð?§g˜?U?}>®?ù?‚ÆÜ@Ï­?Ô÷> ?„°?Æ‹¥@ +9@Ðå?™‚Â?-Æ>ú€‹>÷~å>ø>ús|?›m?±šã?Ä3V?¾¤?Sb.?K®¨=W>Ô: [”?•·¢?™Ax?z6M?‚XE?»ž?±Õ‘?U4?Zý’?ŽrÝ?“_ü?®©¬?‰t >G¾?3£À?ö#õ?ŸaÑ::ç>Èü?q+ø?pÝÖ?y»?y±ù?yªE@]¾@;mM?÷¦û?¤‹¿@) @Hò&@ þÐ@ “¥?–~?7n£?fê?yFy?Ud«?O¹>Ü'>·T{=]Ñ©?Œ†ýð??æ?™Àö?…' ?/[ ?­¦>÷ê?DRb?ŸGð?ÊòØ@ ’î@Ü@@)þ@.åô@Ðb?¦Xš=<²ç>ôxÞ?wE!?w8‚?w.]?ÀN +?ý¤¿?µÝN?vð?L*N?46¤?ž!¬?Ëí?²ùó?¦ÄG?Û ?öxW?qPZ>進?Mä[?ebë?šá?¬üí?©B§?¥Œæ?£åv?¦Ãõ?œûû?œ[˜?-è>õ’?™êÃ?¸¯?R0ß?Áj?\Ù7?u.A?ªlO?µß¨?†Ä?tá©>´¡>>¯>Ãè3>Æ©? +ä?!£>Üöb>ÜçÈ?°ûP?Ès…?­æ +?¬„â?í(b?÷{¾?ÁÖm?¹è??ÎL6?Э?¦›Y?•;?Ká>ó/ã?‡«Ø?˜Iî?¹vd?Â4à?°f¾,ó>-Òl?•¼h?Õ7¾?gn>ñØ?%̆?IÄ‚?…dm?’óÒ?Íä>TaP?ž‚Å@g4?ß>Æ?®¿¼?¿ƒ–?׿T?á.?á»?êÕn@…Î?휓?³[?£ y?o1|?ƒ`¿?¡[œ?ŒJ¨?Æ?q?hº?W–…>ñ¢Ž?)Ù?²a?ªxˆ?s­‹?v.î?mɉ?m­Œ?~¶f?€âI@J]ö@L¤?ñ.­?ب ?xåÌ?gFµ?‡1e?‹üÛ?Q s?D$Ž?Z4?c€ý?¯#?Ì|ô?›aO?yÒµ?¬P?¦=4?­•`?°…°?¡Ý]?‡ û?w@|?M¥Å?c‡ü? ;?„b*?=­?9£¿?±­?}»e?x`?ry¸?jö?iÀr?¦õN?¯g?¬Ì^?©D6?Ï1?Ýó²?ÖâL?Ð +?Õ÷‡?ݸ^?åå[?ëë?Ü79?Ç–×?•b> +_> q ?‰’?¯ò?§ø}?¡P ?×Ô5?Îäæ>¹1>w+2>Ò;1>æÝ¢?Q­Ô?ìT?Ànð?å?½S¤?“›‡?Å­ë@Æy?øœ\?ˆØr??¼ä +?¶´ß?eo€?eXt?Úc?ãV\?ˆ‘N?dïP?êë+@Ã:?˜"j>ï#Œ?Í•ó@5|§@Š‘?‰œ?ÉšÖ?Ï4?Á?b?/öô?*Ç'?˜è‘?™Ò?†Mo?„þn?]aþ?[Õ?qP?—?qÐ?h_?ƒx?©ì?¤Çb?˜Üs?JÛ?‡ ?…µ?¸6(?»Ž?¾?ÂÖ@¥>@zË?ÇÂ?Ch?M"9?pÖU?q †?uë©?w”‹?«` ?ª]?jØ?`Éÿ? Áã>çg˜?Ÿœ?Õ?¿S?­®ƒ?žÂ0?€n?yøl?5ç«?.2>«‚>¦K?1ªÉ?=Òû?’+_?§·à?²øH?½½´?’¹?!.?NÊ>Z)Þ>œhý?‰ƒ&?ˆ/?߶3?ê¹4?¸3>?§.F?sï?2{I?-.u?'æÂ?ú?Oc?<æƒ@”0@†B>ïUÞ>ÊÅô?L|m?bÌ‘?’q?¦£J?Œe!?^!g?Á?Ö ?ÂaÁYK>µí®?š¾?Ï·¾?§ 1?=? ›?…Pž?…§J?16‡?0×?àî?à[Œ?Tå¬?(Ïà>ƪ>~L?E¹?¦«?Lk?•O?˜2×?‡(?ŠA?€º ?„ð4?í…>þ³?N‘ž?r±?Œ#å?£jî?¤•?¥ÏV?¸oö@ +?c@ DÊ@$yª@$š?™KÒ?vÞ/?'za?9?<à`?u ?€Â?Œé?Š×û?„?…`>‹>‚Ñ®?o °?ˆã?EhX?'œh?*ž6?- ƒ?<¯?A;d?@ØÙ?]?háW?è’ï?í+?c¢?Iµ? ®­? ÝÆ>…ê=nCŒ?k¤ +@è¬?ö1`?¥´Œ?¥ªü?¤8ó?¢–”=õ*.=Çn>¾õ>ÜÝó?†šÞ?ªDÐ?Å\?ä_ܺÕ>Ý))?Sé‹?[®ò?1vX?+œÀ?#Í;?Œ°>ý0;>Ü{·?*iÚ?ˆ‰f?p†~>ÜQy>ÎA‰=q†=:rf>F¢=—ªv>®ÓM>Ûþ[>*Ž:ïh>ÇLŒ?T²?3w>ÛœŸ>Á3œ=©®=Åu1=áå$=þ`l>Á®Y>Û ]?`â?Þ?)+>ɸ?©Ú?ž>ÚCÅ>ܲ?V8·?Yæ!>-cç>ˆÝ>ÙaJ>Ù<Ö>ÙÕ>Øó>ØÉ,>Ø¡Ù>Øvz>ÔŽØ>Ö‚V>×ó:>!Dú=‰+r>…g>×-?>ý»,?ºŸ>ñæ>”ä>Õ*Õ>^Ú˜>WPh?T÷?JZ <Š5E=÷Qˆ>Ñ]Ÿ>ÄUŽ;ôýÐ>ë >¯¬G>¶ÍI>ÎÉä>ù?Mÿï?K£$=¢xn8ƒ.>s¸>ëw>òþ¼@,h@)¼? J?Ã)?y~>ggü§Ñ->ç]r?Œ„?››ø>u¶a>Ué?*™Ó?$=!Δ>„P£>À~>›.¸? +0â?…¸?\mŒ>þ$»>™ÏC=lNº>Ÿ‰‰?AN?Ha>?u¶‘?%ƒâ>ûg >û›>úÎ(>ÉW->­A^>¡-$>•›>ú?W>ùý­>ö2/>ø©?3'?+xé?U„¬?]uè>ÿH[>÷VG?ež}?t`?¸ý×?¬Ö*=“=³ç>ƒ1Æ>»•?SÅ?QG+?unJ?mÃh?4ɹ?,8>Œ¼C>¹]Ç?LÜ,?=Ã0>[ª²>kÎ=r€=ÓÕ->îl>óè\>ù½‚? ˜>ó¬3?z´?<-?Cm=?·¯?€¤.>óAþ>ó57>ó%à>ÖL{>0•“>‹Â +?8·¹?'Gš? ƒZ?GL?åÙ°?½´:Ú@>Räë?[6¿?<Êh>òµ>¼ý–=ðš?ð×?8){?r«:?n\š?Uôr?#hq>]ê>ŸS>&Ú_>˜Øð?b‡ +?†ÇŽ?¶ Ä?³T?«Ç0?·êì?çF2?¶¼ƒ>òáa?®?*=º?B>opÚ>½U?D[?%>®Ôë?FÎ?„:ú?yoé?jé¯?8–€>3ÄÊ>óo"?-mŸ?…Ph?š+?¶´H?—Ç?[íý?—`?¶ÙØ?‚`>óå§?D”±?• x?… ¿?_!i?6¯ +??>vž—:3”?©b?iÆn?ÍJ@Â?£ô:?C®M?õM>Æåä?î?6(?][x?tø¯?<}ø?/%?(Ša?#ØW?]‚Ž?uLû?t¸À?u0Æ?´Ç?ɹ? U`?ãR?œ-?¥Åç>ßÿ†>È‘?8]õ?6Î? Ï?|>¢š>Š¾û>öG‚?Ѩ?hF?n¡@?tä¥?d ?”? ôC>ö¼?9ËI?ºk?–$h? ‹³?Jr¢?2?¦P?À¿?·åã?¤´¼?‡œ/?4Ö >ÂI=z¨ª>Žd'>÷–ó?Cľ?ztp?t]?h()?ø]?Ú¨%?à×ì=D;Ç=Ä•l?y)‘?x?x¬D?…a?§ïú?»»?ÄÁ? yq>° >çmè?˜ç?PŽ?3º ?{gO?§)È?àp@@ož?ˆ'Ž?wb?ye;?ynW?yy>šó·=Îþª>ó?;¼>Í+B>­â¨?­k-?»L¾?~=`?x¹å?4à0?>ÞM?»k½?°;?Z®/?pDÈ?Ÿ|?ÅÙ¡@î:?ú ?yí\?(?«Žc?¹ìn?ÌZü?€MÈ>úH×?Z‚»?Œz?¢\¯?¸— ?{¬?D¶D?¥…Û?»Ùè?»ßƒ?»â¿?(>úŽ©>&”¦=‰%Ñ?w€g?€Ts?¶¿w?²-?¼‹?¯.Í?]»È?K î?&2Á? ©>‘”"?’Ç?›ð`?Š)?`ú?g‡ª?zá$?Ÿ=Ð ‡? #p?zîç?‚´·?€Nƒ?˜ö>úüü?Z(?mŒz@Þ3@ +/è?w~4?V¨:?'ùd?-Æ^?Õ?/Ð@ ¸ý?ùÅ£?I´|?4ÌU>˜ö>ì‘Æ?i ?t?Ì +²?ÖñÔ?ôYÞ?£:;>û)>ŒH>Õ??ûìÊ@K.Î?ð‰›?žºÐ>À,>2×>\@¿?†?ž’H?² >?®]P? ‹Þ>ä|²?«Ì®?ªyD?>üÃ?:™W?ƒ é?—z?û-?ë÷œ?¼`¨?ˆv>,žÛ>N‡®>G™@>ý$•?W¨…?Rh?M)§?´€–?û5?Å +v?’Ý-?˜÷?¤!?wÆ·?I£J?²Ñ?Ê.‰?B:N? U?Ó´ï?ðT?)¬9>úÿS?·¸S?°*?z÷ ?Š†@ç?îT4?<÷9?cžd?§Nº?˜Ûi?]SÆ?‘>y?ø…_?Ð?ik‘?™Øù?Ò/x?ÜÐá?ôœq?üâ?úµ©??ë°¿?ÏL¡?»úð?¼ú?»ï{?Að>ú“Ç>=‰9A?WS?»à@+@„?Áã>úhVɳ>²r\>†v>VĽ>‚èÑ>[Èe?jwp?yÊ=ï¡=ç[?ºB÷?»­~?ûs“?êÞ=Øi>lÇŽ?x´h?mâT?8n%?€Ó@3¡?úºk?²Êq?£§[?ð??™V/?šH*?ŸšY?º$?œïG?J»Þ?0Ž>øÉ?g â?ËÕ?û[˜@¤?ëߺ?w«¬?—È?¶Ñl?¸½˜?¹œã?1@Ô<ôèp>UI?.!?«E?÷%[?­°X?w|?Ž˜ô?–»Ù?3§Û>ü ?QgV?v«ó?¶Ë–?Õk•?™<ü?k,¡?ºÉù?Ü¥~?ªZF?ž\õ?â?ч?®â?‰‘ ?lú?R‚P?5±é?&Æ?ãŒ?´o-@ +Þ@ï•?f ?uG>^üÃ=¿J¹?–s?°63?go´?H¸P?§ò>ô¯Œ?Fˆ?P‰?¿Ië?Æ8J?ŠU´?‡º˜?šØ¼?šÀ?¯Ð¾?»Ó±?fV?“¼½?Ï–Æ?Ý)ú@é™@Ÿ?Ekû>óHÏ?Çæm?æÅ3?ߌŠ?àîS?Çx?[úÉ?oE¼?rŸ:>Q?¼ X?òFÆ?•ï`?r @Ù @5r4?QOæ=¬ô&D?‚,}?¿Ø?Ï +?Ø&?Æ;€?´±?ø¿@$¹?â_¾?3Ä?(Åû?!?)?oN~?Jn:?>É?R]¡?¾{Ð?—7>ï%³?€…È@2YD@/R«@.2ü@' I@ Üd?ùC>—M>z1W?Ö½?Ò>’?ÍþÏ?×æ ?ÖÐ4?ØI?'Ò>ì÷ ?‹Æ?˜»\>~й>¬¹z>ìSœ?´áF?óÈ|?„Y&>ëé5?=6ª?m Q?{ùx?Ž_a?‘”?“â“?mN>ë Á?ME­?Ù…÷?è—…@ Æ@ ·ý?á(L?å5?èÂ?éÛÛ?m+Ú?iÞ¢?±b?Jò?«?¯h?´’?·¼×?1‡>¸fö?Œ³?èÑ?Ž¿?§ Ó?“R/?iËX?ƒ=[?Å?ƒ©B?gïÎ?‹ +L@ØM@þ×@HÈ@â^?Š»ž?l*¼?'‚ì?]þ>úÉ>æÉ€?Ñ6 @†›@S¾?Ùo?î[ª@Œ@ué?õK ?÷Ûe@P@N¸?`ÀÛ?cÑ×?«Jt?«ñe@!}d@*+J@*„@)ï ?œf#>䨺?„Û ?Í»Ô?Ã_?«3D?”˜¦?Dš>?C†è?š?,qì@!o'@ÇB@1.?ú„?O0ç>ûø?€Á?©CO?œÒê?Û?‡‰?u>²?L þ>Ž¸>¿‹ð?„¼Þ?‡l°?Á\ö?Ä×J?ŠD?zp?ô½F@d@\@ ÿÜ?åf? {V?²$Ï?Ür?ßÛá?á!H?à¹N?©QŒ?§pÄ?Ñ[Œ?ÕS,?¸Mï?®Ù£?áTö@VŠ?Û/?œ¶G?¦\Ú?Ä?³vX>à>ßþA?g—?¶?sÌø?†ü¾?ˆC?‰ƒk?cl ?&ëù?Fóq?y ?o¸?‘?“˜ ?»¼?¹º?š²?—}?˜¾¡?š ¸?´ü»?Ƙi?£Åè?^´—?l·ƒ?—WÚ?•ÜÞ=uë<ê¸Ë?’»©?¦Ë’?}ìÉ?_.ÿ?_£D?^<Ã?®<Î@ü?êê?^?WW³>Þ Ï>Ýüü?"Z^?!W9?yµM?’¦h?¾à;?×Î?¡Ÿ¶?//?'Æ}?"åŠ?-ì’?ªv€?¯öª?cp§?HÕ½>âÎÉ>Ú¯?ƒÿÜ?Èf?½<[?›¦A?‚%?IxÍ?7¬>ª~×>Ž@Š?7¾_?LG`?À?Ý_ö?œ¶X?]Y¸?.ä³>àw¬>ï|?c©?'¬Ð?¸Ay?¼˜¨?jš®?]G“?K`¯>Ý7ð>î8Ä?*Ùó?'Þ0?$vŽ?)éÌ?#Àß?Ôw>ÂÜ…>ŽÐr?E±2?¥áÆ?Cv?B2þ?@×ý?3‹â?:^K>ý|>ô0Ü?‘J)?£7P?}ä}?] ?"Ó]>ÝW?l€C?Ú‰h?·ÔË?€Õ?WÕ?9V?2í¥>3p=Ü ã>„ÿ?äù?*Ä?Jh®?Ny?-íY?*£ ?'T?#ü¥? ©9?Âß?Ebí?>É%?4šÌ?;O&? ûQ>Ü·V>Ü©…>ܨä>Ð2>ÂŽÓ>Ͳµ>Ü€S>üa?Ü&¡?Ü`s?sº2?ZÅ?RD†?IÂå? >ü‡Ê>¦=ºlÁ>†0j??Ë÷?‘A? Ù>0Ý>AL§?–6?&¯€>Ð)Ç>:Üä?%£´?”Ã1?]…¸>ší8>¾Í7?B6?F^>-"ž=Ññú>¢ª;>ÎÂ3>Ö4>Ù–>>Ùt +>ÙKÊ>Ù%>Øýâ>Ç!K=uô=™²!åN’>°ùÈ: ¨\>Ãݵ>ÕÝË=úÒ\>µ5¶??Òp?ÖÛ=Nxð<öMd;šLÀ<µè8>Áâ>µà!>’–=¨q=К=ñ9>í¤?oï?O`?”›? ƒL@6¹ä@k"?û?¸1?o?Jù?u:Ý?smˆ?pîŸ>Ù4è>»Å=$¸É;CžC?1‹Á?,»S>‰OP>zÆw>bìý>ô +>³Pþ>±Ô>·>Ÿ”&?ë?£>ë s?©Ï?½ƒ=?»Ö?¸–E?!=¥ŠÆ>Á2B>úÏ@?>âq?Mã> e>`Ç>åwÑ?±?X G?U5)>­ïÄ>BÒ>¾¶Ï>Ï_ú>÷o>öY=™ô<}Ö?@?vä? Á>?Œr„=h;(?#/)? íq>ÑÔ|>ë8¶>õ2k>ámX>6—o>P¦>ô°–? À±?_T?U6˜?¹w>Í›^7ï =ǺÂ>óå>˶N=¯·>Q8¤?(»?"Uë?(»?^c>l÷(>‚òÞ>k +>®6L>ó!¯?(ˆ?©à¡?Ÿl.?fÀÉ?7š¹;ê}=átµ>æ«>?%œ–?¬À·?Ù>òÈ>à>>šÇ:>Ž·>j>ì‘r?“``?Ž¾y?ŽÈþ?tS2>½¬£?ñ??ŽT?E»E;°j¢;Ê€=`Ä„>}I6?dà?g?ÅV¹?“gÅ>,Ž->F?´>_ùò> Œ±>ó\>ó >ó!.>ÍMÃ>WX?kÖ?¯t&?Š>öG´>ó}>êOL?yá?bi?…‹¢?§{­?¬?¶Æ?¡Z?|âª?‡IÈ?œ¤þ?eq†>óþ +>ÕÚL>¾Ýa>ðíN?¸y?9ë”?s#$?sÞÇ?jZU?k‘y?t¢?110?VQ? !>ô»Ð>7§>òøƒ?@°%?G;}?MÍß?T]Ê?Zìž?– ¡?ª¼ö?‡9—?ue^?Ã?0û>ùå>õ£ø?¹"?˜Ï_?±#?¤r?Š®M?‚Ë–?ñ8Ø?vEž?pé?R?€Œ>ö}Á>öŽ%>÷,ÿ>þk¾>ö·)>Ê8=Å>ð>Í?¡g?Ž—H?.)‡?^Œ¯?›bm?‘Å?wCÖ?wS2?w_?’†¡?¯«?s& ?.>úÍx>÷°ü>ý«?>úX>8)V?)p¨?Tù?Ø…>ø”>ø".>ø.Ä?e'Š?xF?Œð2?•d?‰³>ø¢f?f3µ?i«™?<Ç?pÒ?¹ý½?¥fê? š?RE?0Ki?CS/?RS?=š?iÛ?0âá?yí?bC?I:Å?£^Ù?ç”>?Žy{>ùY‰>L“|?\A?y`?#pâ?if?¸5Y?Ña¤?ÏÎë?ÈÍP?hWÏ?L¶]?’éö?™¢ ?=Àô?KõU?­Öµ?©Ã_?»€‘?£û¹>É¡æ>¤‹>­ñx?z:t?Qöº? ´¢? ¸>ïã?¶ò)@@ ߢ@æ?µªû?z|:>økS>œþ“?ŠçW?ªT?­•U?°—Æ?,>å#‚?¶I¤?ºøª?z¶ª?{TE?ƒt½?•\ ?îÆ?ß-·?ª-u?–µe?K+ƒ?.þ>úä?0†â?…õ?¶·ã?æÁ¿?¥@?\?'ýâ>û)?E"ƒ?sbú?Ôj?û.?X¤>û"? ªE?Ã?WÉ?o%>£D>°³?J‰Ð?Mz?žHp? F?ÍàË?Àxƒ?([ ?9 ß?{6’?¸”@’@?û@4?ɬÖ>ûna>ûóã>ûBÙ?¸˜W@ò‹@93¥@[Ý‘@É„?¨—«?P>•è¾>úÑ„¨?€¢?¼iw?è¼h@ËÉ?Ê»?§£H?ùla@Øt?ç½?å²Ô?”Év?ƒ-?í:? @—‘è@—Ò‹?¼Pg?»Ú§?³LŸ?³ª-?ÊK?å­Ï@"c@ •Š?¼<»?§!?ŒaŠ?ÀÆ”?úß=?¤V“?£›?¬œ¦?úÍ?¦Ÿ)?i%ÿ?¡¨Ç?»¨ä?èjT?ø»?ÂÑ?®+ñ>S÷?R"?>ì?Öo6?æ(L>~Ðí>X;˜? ñR?Ö?ta?q7/?Šq?Ÿ¼@ü¸@í;?ËœÍ?£‰î>Ìûâ?T„o?ì±æ?ʤê?~‡?Ũ|@BÇ@Eæ?·º?šÐ?y÷y?D<$?l}?¥Ö‰?èªE?Þ?#h¬?NT>ù¶½?“?œßƒ?Z&?4)É?¯‰û?ÂÁÍ?P…?S>@Å_=ë=œ?†Õò?‘|$?Ç^?Ç9?‚È#?~¢Å?øÈ ?örÏ?ºÆÇ?¿‹?ýq?ÖÂb?¥Æ?°q+?º3Ï?”@?#q ?-˜Ú?:à +?'-?`v?E?à?T^ù?‡DW?|é¿?wJ9?wœ?y¥³?rK6?cÄ×?’6÷?§öÀ?˜Á·?”ÛÚ?¤ +?¨æÚ?ÏG+?âÅê?´Kâ?–Øn?š?M"?ÇM&?×"}?íwV?ö‹f?¶ ?¢y? Ñý>—Ń?iM?Š\ñ?Ãõ#?Ͼù@ ·×@´Q?úÚ?ñnþ?D¼?t)M?u0?v|±?vY~?u^+?¡²š?¢çÏ?2˜Â?$«û? ­ ?©¥¨>‰de> \©?¸H?ʘZ?œƒ?ŸÌ?Ùô>ôSÈ?9‘?™m[?Ý÷]?Úž„?mÝ'?d¹d?Š>b?ç´?©:±?³Un?MT +?,n¢?Ÿ]‚?­c?tøª?gÃ>žYk>Ý2?Nïa?r¸˜?t>ïÕ?¡Xk?¹é>¹õ=ëø6?-¬‘?c°?MGï?:˜?ž¤°?µ@y?òÆÜ@¿Ç?Ÿ×?qU7?ºïR?Ö¤›?Â`Ô?µ¸Þ?²„N?¯QP?—Ñ?…´?‘.5?Ÿt? ’?¢ Â?ƒ­Š?Rç?'¶?³ÚG?ýÌØ@*ܶ?ýê?ƒO ?Ñ??Ñõ?ã%D@Pâv@!¿¼?n?û?q V?ƒðÊ?zÝ?4ƒ©?T=»?’bÞ?–ã?Žfÿ?‰È€?”Õ+?–£®?m—[?nƒ ?Øé?×@?Jô°?:ÝJ?Å~?Ðã>ìU>bé?ÓÁ?)©?gwI?„i?bÆÓ?Dºâ??Ê.ô?Ü=?-³E?3Þ?8Ã?i„>ë*â?—š?júL?‚½!?ª¦(?—˜M>ëD>ÏLŽ:Õ@=:ƒ=¼€=tÏy?ÒüO?ÖC@2+@ª?Á°9?¯ž?cÏW?.%?Ch?]1¨?‰÷Ú?šb?YÜ€>è„ø?\fê?ǹP?±Uá?h?#O@[!?÷{Õ?HöP?Sžé@PÖ@e?·² ?¨¢a?R!?/…Î?ˆ­? ¬q?¡ïº?£/ì?¨’é?¬¸?ãö@!™:@ˆÐ?i^à?S¨ý>å® >ñó?f O?hnÜ?/ê?ûâ?~§i?xW?™e‹?˜âé?¢˜ê?«nê?–… ?€º=?”¡-?°ÙË?£Ï#?ƒšÇ?—à(@6@6Š¼@ …@ æ ?‹âú?cZÍ?cAŒ?c*“?Ž¶Z?ŸR­?q?s>å/þ> ¯T>>Á>âwW>ûa?–°§?’Åi?“øñ?˜G?u %?aá?Ö¼@  ì?©Ò“>èd€>áž>ádø?CÊ?d­n?b˜>ü¡?lú?T–?H¦?¹ØÍ?Öؘ?Ž²‘?TP?‹Ç?¨Q¸?­@ ?¹Ûp?«ö™?7¿ª??„^?ÿ>s?÷Z€?´…3?ªwv?§Ô?¥)?…Ít?_žO?Ÿ„ü?ì’Ò?àÞ(?§ú¦?¤—?¿[?Á–¯?m¨Ó?_?€†h?‚œ?âøO@ýÛ?ÜMÖ?^ÎE?!•}"ó?¦û®?¦ðÖ?c±e?a`Î?_’U?^lA?ìB>ùyX?ÒÉ?ç¾À?í£«?ñK +?Ìaü=í›>V˜?Vi?Öf?‰J?@ ?sâe?˜àI?—ÆO?‹Py?ŠL.?„UØ?_$Ã>‚Sc>Œ?¸gì?¸ù=?˜¢;?Ž¤ù?ÑÄ;?úÏ@;¬]@+`@[~D?þ‚ê@ê”@ÍT@Ñ=!(i;Vš[?¸‘?Ý{/?\ñ]>ã,>?×…@4Öƒ@õä?O +ú?bŒ`?¦ ?¤íK?]ÜØ?]cÒ?´Õ?”¢?“*›?‘°Â?WÛ~?@¨?&3?(ÏF?<»,?ˆ¾?„­S?Ò¬?ÇY?xàè?14>ïøº>wßÊ?".{?€°­?UaÚ?\‚>¼†=” ?P´Å?VõÅ?]ßb¢?›Tf?ÒVc?ìGž@á?@ ÙÈ@ æv?öD?]<“?]?q?wç?òi=›>7öC>uœ?1ùÓ?‰úÜ?{—‡?]#Ÿ?tpÄ?˜ «?ŽgÏ?c9¤?mNn>ösï>ÜýP>ÿ]…?O?‚6?cj>Œ‚:> Tr>ÜÁ”>ܵ_>âUÑ>ñzØ=†{´=´Ãv?Bá/?\wx?Mª?B÷ ?N>›:d?!`9?‘F4?{äG?Ø ?Oƒ>_w>PËê>¾kU>³_õ?z,?/„?•ä|?ÌG%?e“=÷OG>Úç@>ðÖÕ?S8é?VxŽ=BëÀ7=€<r`<»Ö =´=XfD=Šé×>u»?' Ù?§½?Bwƒ?XX¹?!‚?Í?*‚Y?'ä¹>ël<äxÐ>—¡ê>Ÿ† ={>‘>¿'r>Ç>Îý'>—[‡=!ÖÌ=¿Q^>GUý>‘~å>ˆðÝ>€[Å>o‘{>žßk>Ò·C>­‡m>*ÐV=ÂÍ|>œx ?¶é??ôL?« ?b‚?× @–>@;?ëÅF>¡ª4;u—Ø>WH>‡L?§á?"Ú:?"¦?m¨D?0Ùy?ëÚ>Çø?!m?_µ>ø)¨<äÃ@9rçÛ=Öh=ÏNÒ>.év=’x@? +b?Tz?·?È>‹œ?9?ɳ?eQ?€Ùà?=É?CªH<â©8â,à>æ[ù?Ý?öÿ„?æ¨v>ö̦>ûi4?'Æ~?,Û>±<Æ>¿—k?G/Æ?:?Ï>ÿÀç>釞>õ; >õ'>ôøÀ>ô×Å>ô¹å>ûH4?¹8?h?tL?\bŸ>쌥>¸b,=v >ïtV?é8Ž?¯jç>$$X>}°ª>ó|å>×ïÛ>^Ýo>„?=¡M>µüP?„‹?s?\¾W? ºJ>õg(>ñÕ?å?eíê?j*ä?†>æ?U ­>$>€*J>òÕ>Ñô>~§…>×Ë?e*=?^ð¯?¯3>Öº¶?Þß@Z¦?èð>òë>¥äé<½/l=Äáu?á•?àCƒ?¤TD>Žm >ª,>éw©>Ý+>ó%j?Ti?8”?,ù.?_Ž_?f ø?lŒn?reú?s?Rþ==CD>Ö‘?s™é?\_?EP?RP.?_Q¢?„5D?™È÷?$’?F´¹?HòZ?: H>ûA>g³¤? /æ?möà?2xÞ>õmÍ?/?ŸU?Hô?t–B>Ä:5>÷âñ?AT7>×7d>g±Ó?Òí?'oH?z™>õ%ó?BÄ?F1?©Ë>õ_'?Z¤Ú?uz£>Mh'=MMÜ=šÉ(=Îï­?£uþ?¸a\>ÐOñ>Žö?¬”C?¼F?g*?Sû?}¼ ?ˆ/Ç?vZî?s^ ?]Z?\G>ö“?²õ?pž?j/‡?c½U??Î×>¶ÒG?“ˆ?wz?OkS>÷#ý>ü é? þP?v‹Ÿ?·<,?‰wŸ?Aß¿?a¼?wô?wŸ_?wª¾?/Sâ>÷Çp>UdÜ=‹Þ?«íú?êÄ?nbK?'Cð?@yt?@?"ì>øD‰?´\?»ÉX?Pµ ?7~?ù”? 01>㡪?Â@`Ý@kÎ?º”ü?š =£ÐN>¼"?™†Ó?iýÈ>·€Ô?´?7n?=tz?CÏ?;®9?%pW?{#?¬èY?Tgü>Ú>W΂<Ç#É<•W =$÷Ø=l‰®?jgB?˜"õ?Äî-?Ï8o?¨ûÖ?¡MB?|8~?y™?3(W?>jm?Ð6·?Õ ¥?ÊO›?¦ÐL>N4ó=ö!ö=ÝØ; 3Q? Ô?µq;?ÄþW?Õ,Å?­µ?„TÕ?€"ð?“qg?æ +²@ æK?±¨]?z’|>ÆR&>l/?Ok?z¨‚?z¯ü?z²ª=šàÄ?¹Ù?¾Öß?ó¨Ä?Õ¼ª>Gÿ>— Â?Z!Y?…þ#?¼.Á?©Ï»?zô?eN6?8® ?Ú>û?™Œó@Q?œÑÇ>û?#{? +e?X >ûb?dzÖ?û$0?ï'á?ä?,¬“>û/#>¿Ô¡>®p[;Ü0é<À?5ÿ?Gß?ŸN?£@á?³¡?‰X?WR?\Âî?baŒ?®œr@Éä?ç£?}Û+?šü6?ºdD?0¢1=R‹Ð?| ?Ô½-@ðD@.»2@e@÷i?YGõ>û]!?f ?{[e?•…?•è?’P%?C¬?:z?1?Tê?b@Z?{ZQ?d# >û¨?zÖ0@–d?ç9>Ú‘?e!Ù?å\µ?¤@£?!‰?òß>ûOš>ÁÁ>…ËB>ËQü? +Wß?g,'?Ž]Þ?ÎèY?ée@PáÎ@n‡«?Ëë’?ŒÉ??­‹?·sX?¼Å8?»ß?#UŒ?Lµc?í??/i?‰±C?”?¼U;?éPP@Gc²@!v˜?j ?x…Ù?x6“?C³a>ûÁ?'?'Ã?‘ów?Û!?±ßT?ˆ|¸?ÆGÐ?ô´Á?4µš<* Î7ÛmèܾS?ª±?vEÖ?‡[¸@ +d‹@ÊM?yrÕ?S´ž?SD?^×>”¿g>–«±?zÙ?†k?Ö¢ê?Ù“…?úu:?æö{?˜ÚV?¯Ø[?í}&?´tA>FÝ^>ÞŽÎ?€ØÊ?”ßÜ?»•\?Ö="?üxw?Äk2?ƒß +?L^ÿ? -?u|?›÷?PWë?!³?£—4?Èž×?±é ?¢Ãí?²“Î?»I?m„?HH¡?Øæ{?úù¹?½ ½?¹wr?3ûY?%o?ÚY¾?ê„Ú@F¼@%î?¹DB?½j©?ù/?ô]S?ºÔB?®çB?02?6j»? ?Qí>LÊ>yO ?(P?]/?¡`º?ˆðN?/]?À Ø@KÚ@B?_Nç?‘ø/?ÎýÑ?œ }?5dÌ? ?ÆÓ:?žÊ?f–Î?šOÓ?¾·£?úÞ{@{?­ëh>øû¸?0?à?Jhì?w„?ï‹?‡{¡?€€H?wMŒ?‡PL?ç?ŸŽ—?©û?ü @ ÚO?Š[a?85?禦@óW?ÁÛª?°K?ˆ:ñ?vz#?vkˆ?v^ë?Š†&?“½—@â@+É?ìKŸ?ç +?ºn»?µªÅ?K¬>õ½>ùðD?…ª?Øö³?èŒõ?ŒúÁ?„¤¢@(Â¥@-ç½?îÍg?ãó!?B"?"ª‚?uò”?…@¿?…–‡?€u|?>sË?6À?9Ý@?>ÒÏ@2@>S‰?ª·t?Šù?#wá?Çk>…ó>Pèè?¨c?¶šP?p%?f¢.? qƒ>ÿL@%µ @6?”?–y÷?rͧ?ª¿?®1?… ?€d1?—–e?–à?ÚC>ò“?·]Õ?Ð;Ã?Ûs?ݶ~?¢ ™?™JÊ?îí8@J*?ÛØ?Òq?¿¿?¹×2?ªïh?§ŠÑ?ÙÒ?ð§A?—à×?L&d?…ãþ?–9–?À?ƒ¹)?°3?×^š?Õëþ?ÞST?êx„?ò=ê@ݼ@~°?Ë6Ä>÷.‹?.”¾?nçV?š†ë?â78?· +? m¡?”K:?nP´?Oà©>µšÖ>ðÒÏ?mçX?u¾Í?FB?›2?¦ˆÒ?©Î¹?Ù?ÓÆ?²*ëE ?Л?fZž?Ed>êð—?“n?j2f?TÕ>ÞüÆ>ÙS«>Ó²>Ù'?麯?éßò?]@?XÕL?€Èu?ƒôá?™a?œùæ?f½‰??·=?÷É? /è?( d?4?—áÏ?éE?Ò§=?©W+?¶°?çùÝ?Ìwj>©>´Ï–?° ì?³ûi?þ¡@d?¯_?¡{Ã?*G?…›?{‹"?s{ï?¢?¥=£?o·ú>ê®ù?@%*?¬}¯?¹E†?ãE?ò2ç@@/@;”õ?[øØ?Vb?ÇУ?Ðö ?Øe?~4?Õˆì?ÿQ£?ÈE"?™ô?‡±|?lêõ?‰W?«K?°O?ØŒ?ß0?ã»Ó?ã¤?“Úß?ŠƒV?®¯½?´$?мm?ã‹?ÄûZ?¤H¦?ƒÝ;?*´Á?78>³¨f?õ&@îE@ zÌ? ´?f‹?Z—÷?g:?˜d[?©/?©L?©=)?Ðz?^c?]¼?aV?R;«>á4/>áé'?Lú*?Kb¾?‚Ü?‹+­?©êè?°Æì?¿ x?Í÷+?¡E?DÊQ?PÌé?`Hv?qú+?óÃ?ú7?z™º?qâ*?ó •@*?›X?6¾H?‰’|?¹ˆ ?ÐH#@ù?ïAÈ?F=Ü?HØF?Kp³?N +î?¿§ö?Ó?ð?NÃX>Ñìz?'J)?^æi?6òÆ>ÞÎÆ>ßß>ç">ùùœ?^¡p?^š/?q…>ý¬?yp?‘àc?‰×w?‰†?‘e?ž¾²?ˆà>“íÍ>¤h?xk?r” ?¯¨(?°4?*‹í>Þë?±ñ†@{ƒ?ßÌz?²/Ê?•â>˜§Þ>¼ø­?ÝÏp?ÝË„?öä?õñh?¹ðz?¦Hæ?Óæ?P¿e?S”ú?Vc¿?sjs?¤¤?;K>ÝšÁ>ÝlÙ?X=´?g>€â^=+H>ìƒx?Qš™?b—?]„½?c”Š?y–U?‹{?•#Ñ?“«²?çù®?ê ì?ç ?ä#’?ŠSÔ?&Ïí?=:ó?]oS?~ ?¦œ?›_´?7d?:gÑ?„£Ñ?‰%í?e?t=e?‚>…?€?PC?R÷.?"î<‡ÿM;” T<Úÿà?]`?]k->ùrä>ÝmH?‹G5?­óA?š«º?åC?½©?ùð,?Ù§Ò?]e¤?L‡ >¥ïž>²ö?z0ì?m›_?/@ð?#}P?—LK?½­?~ƒ%?Js?S,?¬§?š—J>œOž>‚ûÆ>¶qM>½}_?8¨™?K*Â?¸<€?Ùôë?7¼†>¿<•?Z#¼?V k?SZ?A>»-0>´?IA? ÍF?‰n??”5?†‘?we”?V»?P¦?`S?Z7S?-è‰>}“¾>‹½? cõ?»V?i?#x?ˆ!ù?šcU?ßá>ÛJy>Û->Ûß>ò ·?Y¿&?R´s>Ö²>ÃHD=¤›ö>S§>£ó$>ËØš?™Ò?"û>„FW>g¬S>É`|>Ù >ÞRc>¸>€}>Ø+Â>w”=ïŸq={Ò:– µ<®©´;´ƒO:ƒ=¦’¶>)/y>9¿{>JJ> s>·3N>¥ÃD?§@?ÙH>Mò¼>à{?b'?[?ç7>…&ý<Ô¿>î^À?L Ë?Û>﫪>Êb1>°ec>¤Ië>ü=ÑÿÛ?: B?QX€?¤uõ?sÇÉ=!Ø=¯ŠÍ=éô=îêk? ri?}TÓ?x'T?kòC?£Ê>Óp=öl:>f‘¬>°{?4&{?`4Ï?Úý>ãh»?O–å?oÎ3=¬2 >Èï>¡ü=j+K<þ,=ƒÁ?pï?U>öÐä?ø+?Yõù?@ðà>"ÑÃ>xÏ‘?/Õ7?>ÍM?uˆœ?b#€>õBì>õ‚>õÒ>ôàÑ>ôÃ$?ûd?tŠÃ?tqo?tV?Zdt>ô'ü>¾¶>\ðH?ƒf!?€%•?NÛ?æ2?7^C?1š?*¾D?U„>Ì +>2¯>!\>½m'?\ªf?“À&?ò¸R?²ûÿ<æ÷= 8>݉>Q~Ù>‚E>_0=iŸÊ>g£é>¹±n?m‘>ò'Ð>˜=£>ùb?†?>ž =H4=0î;ÿ;pôÀ<€=­`>›,Š??¿?G¿ý>eË>«õÊ? ­?+Ô¾?FW?DAw?YÏ?F¼Ý?Èv?±>ò+>–Íi=C¸€=[$À? /æ?¦¾ù?oµ>óÂÔ>µî\>gö†>ñ¾?@ö4?6ªø? e?Ùx?·Ê?À â?Ã88?vëµ>õò‚?ôð?°£­?‹¢?`ס?®2ã?Óê¿?› u?eÍÁ?iÓ?täú>ú=!>É¡?M«?)ì ? «É?3?ãÔå@©?f¨¯>õò=Ðöå=eX?9·ù?MIÍ?@Mæ?3T}?ˆÉ×?’?¥Ø®?ë??–œ?C$+?lQ¸?zâ•>y­u>v}ä?d9×?To=z´6=–ˆÿ>ö¨Æ?'Q?²\æ?ç>S_ >þ‘?‘ØK?Á6@»ì?ç?p•?Fñu?ó~?|¸?äHu?Šñß>ò…? ù?jw®?v??w¿Ê?ÁT_?æt?^½>Æ_V?Lp ?‰Z?'Ï>ø(x?¥z?¸àß?M¿U?,¸@+=@} ?²“‰?¯* ?y)$?lðvÁŠÍ? Æ}?¸?•’?Žôš?T ”>ù5ê?]?*å?:Ê?W¶…?ló?ypm>Îò? …&?y—‘?sVT?fÚ9?–M{?št ?€ñ^?yÎü?³]ö?»iR?þz>?ý$X?Ús?Üð?z ¡?l‰?ŸÚÕ?©°\?ú,W?èè•?±y÷?¦{n?zK¿?wM’?k£4?qj™?†ý:?rÑ'?\ë?-=^?à?¡µ?ψ(?¨ò>?Ÿh¼?HƒJ? œ‚?%Öô?S»?S½ž?eÃÎ?^†—?hÇ3=¡dû4µ?Íu?û9?q‡>±Z?”(±?šÙ?Xœ„?PÌò?»W+?¤ÜÃ>ûR×?uç?—†?«‹ê@ªç?àL¯>û]y>û`™>û_p?Bd†?™Þ?Ï?¼Œ?ÚU^?÷?Šç·>Ô¡?q?;9¬?šcï?¼c?§1?¨^G?Œ5Â?yÅl?y[?{på?Lp?”Rç?Ͳ6?Ê‹’?¼’ç?¬Q>F >~H?€C?‹«‡?ººe?™Zi?/bâ?+)Ç>ûkU>ÜŽu>ɬ;>ÌMÐ>£?4P’?…ç?€ª´?vá¿>®–p>­=Ä>ûYœ?kíX?LK@á¾@)P¦@b¬?ûN¬?íü>ûH¬@Uy@•Q?²#|?¶|d@šë?ì¢ã?é?KQP?¼c&?õŽ"@O"@ û?>«?S1Å?…$¬?-?X%.?cuJ?{ ã?,®?—1¡?¼:?Ô"A?ÆMb?¿Qü?P º>úé±?ða¡@ˆ?Áë=„uÏ>ûà?ñ?„?Ú?—³ƒ?1öM?*m7?ŠÊ?ˆ2”?Âùè?±bï?A×?QÌ?›«8?¬¦’?Ô^d?º?&Å?LŸç?±÷?´>[?¶?·x?¹{¬?]2<¡‘H?‘pF@¸? Ik>iæ?¢n?]z;?ÑH»@ ‚ê?—ʱ?*Ý@"9@1@%?ι¦?ž}R? ¯U?¡Eã?r ?S±s?š ?Ÿk>³äk>P›‹?U)?h +Æ?lK?pˆŠ?ËÌ>ÿQ2>ùW? +ks?‚ÿd? M©@/Ë @d?£§ ?±}7?øF?» ’>vÀQ?e,^?—ŽM?þ·Ì?´‚Õ>o»ü?o²É@,?îÙœ?Ž¼`?Å(Ö@?§†>¥ +?ƒâ?îxº?–„>øu?¢¯_?ùÒk?ø&¹?÷ê¹?‹b>÷Íq?A ¬?i¸l?š:ö?®Ñe?¬Ù¡?ªäN?ÇÌÌ?Ò8??“ïe?wB²?w8 ?w'Ý? ëQ?µ¡é?5-½>ßþx?ý–È@>­?’!4?MI?mx­?v'?‡Ó?ˆD|>iè=•¬–?¡A&?¸¡+?k>þ'•>öW—>õê>õÛŠ>õÉD>õ´¢>õ£Ø?$Þ×?3Oª?×(¦?Ûhq@8@a—?{Su?r¹g>¾¢³>¼<¬?‚ŸW?“"?kÌg?t3á?=”æ?>Ú?`—F?Y'?þª½@R:@.›½@3ò?k]ß?Xîû?\DC?_ŽR?«hº?¯õ¢?#\? ÇÑ?l}ö?s7%@-â‰@6Ow?Œ¼î?râN?°Ÿè?¶ ?!\À? ž–?%|Á?.ß'?Pûh?Pâc?•¾? Á\?ƒ%?«·?OÛú?=)y?ÿ/ñ@+Ì?Ðà?´ùm?ã?ÂK ?_®Í?#Jö?Îò`@‚?‡q¯?‹?¬±?äW-@'?R@I@£@QI@Tå‰?ãã?îZ?¹%k@µ>?ñ¢?´G÷?ÌôŸ?å<_?⩺?âVÑ?¬10?/Rõ?ˆ(æ?âN ?ÐK?£ˆ•?®ËÄ?Σ?Î,˜?êå?ݦë?²V-?Çs½@<ý@2ýG?íÐÿ?ð‘±?r[²?mô?¡ü‹?ªsä?âj?î£?œn`?†Ê?sS +?l6º?¸Vù?ÐÉu?ïç?$N?†–?°³?klí>ë]¸>ì:Š>ë,¡? D?j¥?hiæ?j¼m?Qf>ê‰R?É«?ž#ë?™e®?Œ'Â?ŽØÆ?Oä\?Jj½?¾‡?Ä»ê?‘Ä—?‰ÎÝ? +[>¾ÙË?'J?=ÿè?‹¼”?®1>?Éq¦?îAŠ?Ú&Y?¹dð?µ1@?©í×?³“?»í?«óÇ?1?.Ý•?Æ»?Ãûm?žâó?•É‡?ʇ?Û(´?·ö»?©Õ1?V½b>ñT´?,Ô?fL5?‰¦Æ?¬w?¼Í–?åá?Ä;§>¾QÄ>öE0?e{3?e`S?ß+?å.·>ú >‡[?¹ÌÄ?÷^µ?‡»¥>þ4‰?bÁi?M?“ é?Œ{û?ŽÆû?Ž [?’.½?Ênš?ËÁ¸?ïØ1?ëI@Z@ ð…?âÖV?ÂÈ$?ÔÊ^?åjQ?È°?Ÿ)B?z>§!ï? çÃ?â|¥?â×?ß0j?àhÀ?®Œ2?©Ž?{¼A?b6”?å°>öX)>øéé>öFK?„>`@@?éd?”@o?‘óA?›åS?šˆ´?gª?`ës?\VÕ?e,?Έo@\d?³W^?/0Ê?(|D?&³Æ?2ä?`;`?bš¨?=º?1ë™?»ù’?ÚIcÍ*9²æC?zÍ?^þ˜?¶(Q@.‘@ ™@Cè@zt?ÏßØ?Í'+?ì+?èo¿?ÄÚ?zÓ0?Ž¢6?•ýF?@Î>œ‡1>º å>ÞQ!>óí;?S/2?XûW@1÷{@2~5?× +1?­Ðz?ø«@‚×?Ï«?9Ǭ?R¨Ò?|” ?Pæ?êkB?è¸|@ºó@ìî?»c4? àu?8¡±>ÝÄ#>ÝÃó>ݾK>ݺ>ݶ?ƒc?Y†?Vªû?]T ?]«g>èŠ:>¸š1?¬º¾?ä`Z?s +8>q-’>òÓO?]•¾?r^?¦-Â?¥ F?¶­Ì¯>³í²?‚ ?*ò?¹¾¬?Ìšƒ?sùd>æ–C>ÝÚ›>Ý‘•>Ý~ó>Ù‰Ÿ>»«½=„´–=·Åâ>Ù«¥>ÝŒã?Y>?u»ü?0-„? \ž?€ +Ó?¸ªv?†Á«>®:>Ñ®>òíÏ?»@ ÖÐ@3A?”7ª?„áb?¶#z?ʹ½?f«,>¹9B>Ó¿+?ÚU?={?¦n?¹=(*<ñs=.²#;Ìu>º‚>ÝT&>Ûl¬>Ó @>ÞÊ>ôÑß?#ÜB?](Û?n½p?‹õÌ?~ñ>Ý%>ÝÌ?ŸË¹?¥®‰?‹Ö:?‡Ø°?t» ?VÞ?W¢j?q??%r<õ^B=ðüœ=äÇæ>5Kâ>Qô?6g„?Pœ®>fãX>{c¤>Ûª_>ÛŽª>Ût9? ®B?[B4?PÕ>Û¤>Úë->®Ô7> âó> u >¨ù>"Dn>1Ý>A‰Ð>Q7È>/2]<Â.¨?†? õ>éH[>ع—>؇Œ>ØV}>Š¤ï=ÀûŸ=†ä= +š>×h>Õ²<½Ð¸>§•–?R?Bã¼?ƒ?#`Ë=º>“›ä?‡÷?Tî~?ÛS>yÍ@>©à?Âô=û¬}>’>:ú_>RU–>n#Z>“>>³Äs?€šÔ?M§f>"Uç=¾s¨>K”ˆ>þÆ>?nX,?ºö?œô?}Q?6Œ? O¤>|>Í=ÏÌ>–Ð>¯zc?«K?ôj>¥9/>|ßy>ùf)?ÂË=„ZI?ÜÕš?鮣>ùˆT>ð~Î=¤À‹?´G@?£…=³äÝ=ý(h>Šß…>ŽÇà=‹·J>õÝü>øÒ0?úÌ? 6>§Œ›>¿…>õ }>üD9?jj?] ?q[?••?ïöl?¡>ô6t>èe>¹\>¾ÒÄ>óâœ>èEZ>ÙI>>òNú?ªÃ?*ן?s~6?\]Ü?tt?;5¢?œÆ@?tÖ=îð>±R>ý?ÏÔ>×Æ?dh?=¡„>ýèÁ>­?ŠÅe?3[Þ>Ÿ#?ŠQ¿?”$÷?˜œi?–­Y?£á{?‡†c>òø=?FŠ?´Ò°—{?xBâ?tî ?‚°)?’r?«È?W >0Ÿ¼?Ùx?—7³?q&>ó]Ÿ?T@B?³ÞÒ?ZûÓ;€¢€>Àé·?Xú?!e­>¿ >?Ž@»v?©ÿØ>óÙˆ>óx>¥xU?%ÇT?€H8?¨Aš? 4?¥a¡?è­@ëP?í/Ø?µö?g ??ˆ?R­B?t¦+?¤£?¢od?¥Ú?d¡L?s'?týD>Ûfµ>-TÛ>±Ï >µç{?Iè³?uSÒ?}A¡?yµ©?u”ó?sÖw?f›š?X§ò?óä?nU?lÿ?uç4?ž?³[?—p1?¡‰<>ý(>øN>Ýx>>ÈÍ?vl—?iU@>à°ý?þØ?¸àq?¢Æ¢>öÂ|?Y¢?…Ñ??e”Ê>³}‡?yÄ?’ë?¹Ä&@ræ?Ú¢÷?Zý?iÓ?“ƒÿ?4Æ+=É(g>èA?_*>Ùº;Zô?‘Y?ñŒ]?‹ý?5‹ò?4}>øÙ>øË>ø*‡>ø5x>øB?iÇ‘?Jì?Vó?OµP?ýuD@DŽ?åQ?wÐ,?gâ?j{ó>øÈo>õSG?çˆ? K*?«h?/>ù à>âJp>¾Y(?@W?¸ß~?—€¯?0f?:w?R?%?)úo>ùxÚ?7?k‰T>ÊȨi»>.?—p—?»cw?†ß‹?yè-?_"i?hÎñ?Ó +¸?Ý®ƒ=éîÙ?¹Q_?°ý?Âï?ÐÛa?âþÏ?¾ì>ó×Í?$?zf?ziY?zru?MÊù?ÉN?:‹?SÕ·?`ÇF?_<˜?äè,@׋?–Ú£??¶?+ëh?·Æ?bj%?zÌ?K>ú×=ŒÆ)<Ê?¸† ?°“Û½?ÛÄ!?ç·O@#Â@¸³?V§?S??5àØ?’Ü>ˆ3¬?áì?Ž 8?§+T?¼g?qˆ?>û7Þ?€Ê$?±«;?؉?zˆj>‹—Ì<·öˆ?ó©ñ@Á?„³å?Aʯ>Û¹g>ñuÉ?yuá?jM?õìª?ékÉ>ûl£?Mq?Žó¨?˜þC?«m'?’†O?Í8? ×?-#9?Úñ@Zp@/æo?ùO?Û×?Ä0t?•9Ô?aQ´?[Ëz?VEÎ>ò›ì>Ád?`_?¢±x?¶Îá?¼§2?šðv?” å?PÁ?Cß3?ße?à¤Û?³Ï†?¸Ú?ÀÆ?ɼÈ?û†£?éä?¼£Â?Éy8?ß[´?Ä•‚?Ÿ?h?’[€?€³ì?9`_>û~:?ai_?œ7ª?žÔå?¡nz?Oªx?ͺ>ö›Ù>ûpÑ>»à¡>‹x¼?LfE?ns}?ã6'?÷RZ?i¶>ýl(?‡p?•jÈ?óù?æ¨?¥œò?¢<•?V™±?Q^C?[q?¯dy@(&|@¾Ñ?¸•&?bs?.©µ?ƒ*ü?¼`?œô’?{$Ô?µÅ?ç‡@ @4ìÞ@3ú?úÁ?ÎKë?¸Íð?”­ ?‘?g8²?M¡p?[·j?Z¶-?UîÄ?Q-;?Œ–Ø?ˆx?™Pþ?¡‘g?ýKf?òƒ9?bçú?LÊ->øµÄ?â?Zt‹?t;v?”4h?Š3?z„d?w¥|?uâ¼?²B:r>fq/>ë?\?Ìi`?A$þ>´¶2?¸À?ÇZb@ó€?®ry?zÎ?ɉq?ö%¼?^¥Ó>ùð\?`pC?yá_?x³7?ƒ "?Àx½?΋v?¬f?†ëC?×y?€V? YÊ?˜£@Ó@§Î?u’?e=W?ú?GBÄ@þÙ@?ºã:?·þ­?´¯ë?•óÅ>˜î>ëF ?hd?•ÂP?Ù®8?›å0>Œ§›?žò?Œœ@?JY×>­4?†µl?ûBƒ?ßÜØ?ºLš?µÝ?³hí?nu ?Æö?Ê:@Ã?ì™?¼ ©?’F?kÊ”?¾Ýø?ãæÆ?¤Æx?‰ªÄ?«¹W?¹±·?©;?¦Ê}?‡ô­?wX®?–-n?œIª?Sµ?5Gr?=Œ?DßB?é¥@?×8\?Ê£Š?Uáæ??[Ø?®z¨?¸æŠ?$ß°?l?­Œö?¸³Ô?€?v ?j½>öÄ?áà?æ:Ý? r>õºy=ÄøŠ=Æ2?Jß?Z`@3Ó@’¬?·sÿ?°.?’;?Š¡?•œ{?˜¶Ô?qn?gî>ô¬õ>ô÷â?‰ë„? »?ÝfT?Ùa1?·&o?¶2>ö{$>óø@>óå=>ôï?‰‰Þ?…~?óÜâ?óîA?xŽ$?sOÖ? MŸ?¯ú=ÐKà=Ó™ÿ®)>òy'?«? s‡?jQ?r1?æõ>ññu?`¾J?qÀ®?Å(¢?Õ¢B?»†$?µ ?@ +lE@Ã?¢ã?q+?òlZ@æ^?»OÇ?•4?’V„?™Qw?ãq±@lB@A1¸@f=¬@Žz?´?Õ‡.?ðý?²då?v/?´Ÿz?ïMØ?À„±?ŠP?WÈÀ>îæì>ç…(>õÑN?4#r?‰—i?¬c‚@Êî@ AÑ@&xk@]c?²kC?Ð0Y@Q\@MB?Ì€%?ËDü?¼ýb?¸Š >ô‚¤>ìö•?‚5?†‰?¸_?¾ª6? Ú³?•G³@ ¾@%Ù?ÿ” ?Ýý“?¿Á|?­2?^ð>ë{?gƒ?®ï=?Û|y@ Œä?Í™Ó?+?7>?¨‚?•8/?$+??j7ê?f4-?ë¿?œº@NfÕ@Pïí?¶™Æ?–Èé?%¦v>ú>9?o=?’Bk?¦¶j?µP?¦@?—r?æã?íÌ^?®´ó?,ß?E¶@Vl@ +¨Ô?¹ïî?¿ió@·b@¦¤@ý @ +x?pS?gà?hÐ ?g&Ê@-,@,ñª@g‹@ Óq@½æ@%{E@¨"@ {?ø*?Ž($?—Þ1?øè7?ôÒs@{@ý5?‡­?dq?¬ž+?ÁŽ?´2/?£r?Ž¿ ?Šk?VcB>í•!?La„?ÃÙ-?ÂpÃ?ÁJ?Ài…@ê@y0@*Îô@/Êá?¦æ'?cNe?(†(?v?>jc?r3—?¯¥@:Ü@xg?ÝÒç?Úú?©Óé?©Ã¨?©³m?©£G?t]Õ?bA?‘Ü÷?k,?~°Ò?P…¦?Š4?¿0?¯¶»?}?i°û>ÄÞ˜>Ô½¿?H?&&>ðÿ>àß¼?->?¼ïù?¦Ü¤?ŒP2?UìÂ>à{?!·8?šô?Ÿ„ø?à4{?à$Q>Ljî>€Â?wëï?š}Œ?à˜Ì@w”?ãÈ?¯ÜÎ?™b?T£º?h­7?§–B?§’„?§¹¾?§y?)â>ݶà?ìÅ'@!R;?Áx?ñÍ? +dÄ>ÈÈD?E¥Ä@¼@ñs?˜”Ê?œªË?™Q—?•'|?‡¨?ƒÏ ?j©[?B6„?c†-?z,?ŒQd?ˆ1û?ˆ¸~@"o@%w(@y—?ýƒÑ?´I?•qS?Dv{>Þ˜?EÈx?¦Š ?¿­Ž@ +¿Ñ@FÓ?¦xÔ?¦tg?c'?Zˆ^? ¦–>Ýß>ÝÞë>Ý×o?q© +?Ô 7?¸}?]ÎÄ?v'+?úÇ*?öp?\Þ»?Cob?X($?oj?t·>‘¼Š>‘ï;>¯x?G\?¦CV?«&‹?Á‡G?½ w?b±?]®c?:ëE?5… ?8†×?;Œ¡?>—¥?AŸ?• +?óŸ¡?Íû =|êY=Kš=2<Ñ\»=Õ;Úî‹?`ûÇ?¦D‘?ÁÀŒ?׶…?Òü*?ÎBë?³Œ?<}$?kTÜ>«Ú?)qí?CFj?Ëö?ηÝ?©&?¦Fª?Š4?‰E1?Œ¡s?m?jÈŒ?>¶R?uØÕ?¡èï?‰Ä_>á0¸?ø²?¦1p?¥®’>ó¬Ð>ÝŒ>Ý…Ï>Ý~ÿ>E†¤=¥Ð?(“2?˜*2?|µî?4nö?N6·?wåä?c>?—e?ef?] ?]??B:?Iú>?2zH?CY>•ËÛ>.ú1?IS? ²?O²?PœØ>Þkn>ÜX>=o +:ìÅóÅ?Pil?x|»?›/“?k{K=Ö¼>ŠD>Û@{>Ûû>gÏ>|{W=GK>Zu>,V!>4{=Ôè<¤f>«Ç‰>³ÓÐ>ØvÄ>Øäà?5öD?V>Ù>ÆÕ¥>+µ>×µþ>Ö >½ïz>³n<2¼‰=º)¿>a^Ì>*Ëf9ÁAØ> }> +…?*c?l˹?D>îθ?ÈÔÇ?ª—?jÆ?4=æ>åQÛ?Cõ?iX>G‡°>•*>›£l:Ò;‰=1Í’?¶?:¹?QÎà?5Ѩ>¹å>” €=¸¬k>eN'>èÊ>÷çò>ýÿº?¸½?Aø?²>üœ>Ø›®>¼£Ú>Oͧ>.¸‚>±™@>ÞËì>ùC=>ú9i>ÒbÙ>´[¶<×@>KNº>$+à?fèê?nf¸?‡1>÷Ã4>ï`>צ¡>D”Ž> fé?=•W? ê=)B¾>‹Ð2>}+ó>‚ùi>˜ë§>´Å>›†>‚2œ>zCü>Ìëµ?$‡?m=Û?;}·:ÈÃ=IŸà>.˜”>Z{r=»!{>—…¾?P4I?IÜÄ?Cˆð?¤%>sß»> |—>a‰4?OÒ ?]ó?ss#?-že>‹8ã?s$O?MÒU>ó8÷>ó/Õ>ó*ó?:I‡?¥’?z‚â>–– ?€Ë?´€‹?‘'+>Ç-C>à??‰u?q/§?ÚÍ7?¨oÖ>Ü2L>éÚ>ò‰5?#\?zWP?8?J>qk¥>¥Æ¬>±/¥?8Ö?‚7? w?¶j·?¼¦Z?Öîà?·+½?CÜx?ò~>Ãï>é¨Ð?ûÂ?-Ð ?sV&??uÍ>䑇>òy?Pß??­>óÂ%?‡£'?åR¥?¨¿º?8??a“>ÆH—?&Ò‰?t}?Êhâ@ ×)?±þÊ?û ?]D>ôQÊ?ƒîÏ?·eã?\¬9>ô¡+>¤|>‰–?9\¥?tÙ?#‡,>ôõ?(ðš?CøÆ?k>2?fàm?™Vß?¬py?†à¯?ujO?©á?¸"ƒ?…µ3?u£e?u´ +?u¿œ>XxZ> Tþ?Ÿ1?*Þà?³Z…?¸•7>“ªv>•«Ø>öHÔ?ëÙ?›$Ç?ž~î?vƒÁ?[hü<êл=˜ÿæ>ÿn:?.x?gË¡?}ë?«2Õ?‹g">÷>æÀÑ>Ø©?׺?>¥ê? +}ù>.õà>–éF>÷„Ç?ç ? ¼©>—¼è= °Õ>¥=>õ€5? ?$ž?RâX?]Ÿ×?‹•±?’Ïý?©Çz?ª%?X ?7U÷>·>9yå>ŸE+>µ_Á?èOÎ@gI?„a\?uóQ=¬ >F•a?ó…?Øqu?hTÐ?9¦=êÂV>¡·³?On?"|>‹Ç >«Âw?DZ?(c¤?L¼Š?)À >ù{Ü? á×?J¥?æv>ù¢ø?LŒ?yGU>¤‚=°ñ8?)?JÀ[?ƒ¨–?Žý>ßÜ>Áö”>ø†‚>ú–?>»þ?H,¯?6:¨?P¡¬@$´ê@Q>ÐéÌ>¹$R?b>¾yú<"€=EX>êå?z‰÷?A +Ú>ú˜S?jÚ?¥,˜?cb4?-V€?»?úÁ¯?·£?-£f?ÃKG?ë+J?x´+?T-æ?7og?øÊ>üG'>úß? +Õ?˜Z>=ê?™ ž?¥´Ä?Ìq ?ºÉm?Gã;?B$?<¬?[ØÙ?}òÍ?62Ì>û@F?[ß?¡?V¢>ûOÝ>ïÛD>óL>æ<ÕÀ?‡XË?©÷?^‡ñ?]V>£>‘>“w?%%œ?Î?1ÆÂ?@V?¸‰?¦}£?¼öb?•AL>­JF?I›?{Œ#?tæÓ?jö–?¹Ç­@Ø›?Ë6;?8`?¢—?û•°?öÝ?ð̤?ån=?Úò“?wÚK?)?Wœ?UX>?ݪ-?û-?Å'Ð?¼¸Q?“Ú‘?–Y™?›Ç?Ÿ¶é?{Ÿö?{žE?{ž6?‘ÓK?úƒ?Ðò? 0¦?2[@t@ùa?ÉAt?Ÿ9°?E1~?H?¼± ?O2Ú>c»?Q?›¨?˜r+?•Ö?¿ù?Ï„t?Ce/>û…Ù?¥•?¼£ó?=K?a?t½>û{Í<Žˆï=H ? +K«?1÷ø?ûn…?èQ?{i2?{cÌ?{a?Z[>û[?_é\?Ûì®?é#;?ûNn?±\«?%P_?‡äS?¼o‰?šßß?{9É?{31?{2S?£;’?ºyÏ?Jy¼>þW >8DŽ=ä\Ö?PHå?{ ›?$Ð{?7 @wú@x@;x@ U@{?÷p¼?;O`?FYƒ?…öŸ?– +?Ò~L?Ô(¶?ß‹Æ?¸6K? ?h×Ù?á0:?Á)¬?rÐÄ?I¯i>û>>ùs³>ñeg?g×*?®6Ž?Ï\?ïˆ?K ?èh?Q²R?∺@?tßð>éOÏ>ƒÜ>†M”>3>—×y?”2Ò?¥M¤> +<=üßò?&—à?*Ãq?­M¨?´ t?p²¼?wý8?¹Ã?­¯…<×ÕÊ>^…?¶?ó?³Ÿ?¨Ü?—ß‹?L…Ù?g&?Ž 5?j_è>­AO>üÁ%?E€Z?AT§?=-ç?eË=?˜®(?Kpƒ>@Ý2?”D?tˆ?´¡=ÿgr>ÌØ?+ú?ƒ72?²u&?’g¿?p–˜?yÝø?y ™>ÄkÇ=3®Ô>Á?I¾?€?±7?›2?•´§?„ŠT?w›?èÇ<@,K?»²¤?¡2 ?ÌÎ>â<Ó?‡j?›¾ ?˜ÜW?•‹?gÿ?T'€?›Üò?¦×P?ÐMî?Ù—? +˜H>®yó?£l?±Ä¢?j›?hw/?µ Æ?¸Ã?{’t?v6¤?pâh?lÿ’@äî@Š$?¥ßC? Üg?ÛB?‹¸~?îƒ÷?åÄ?áie?åѦ?õX1?óçä?Ó—­?ÒX€?u ø?qŽÃ?OûŒ?g#ü?ÇšŠ?¶S²>ô˜? %«@£“@›?·63?´œ?1µé?%F5>óùù?ëV@iÊ@»¿@J-@é$>ø§¹>ÿ<{>ós>ö_?žbo?™ÐÝ@î@p?@á?©·>ä†>60?¬¡ö?®vÀ?â4ù?á,?†y?vÉ??®’?±X­ß^>ðŸÜ?¯#’?ï¨@ 3@5Þ?Ã,&?o—×?·”»?ïfF?ÌTÕ?¦ý@?@ëa=ö©&?"0¨?¥.Ú?D?"?Bã?„ž(?½uC@"…O@4¦?²~Ö?ÂÕ@ ‹?ü D?¾ßë?ÊP@[C@ÑJ?‰?ŒJ?‘~J?—sR?Åf©?Î Ó?ý²@(ò?À{Z?¬¿'?A'¼>þÊ >î?>ëÑ\?XÒ?®™?eÇ?/ž>ÆÏ&>…·T?.Œé?:+?‘×Õ?§±?˜œ?j„®?‹î?ïd`?ÚL>êR>ðzÁ@G´@!Öü@Û²@q~?§Ý\?ÔZ?ups?i#$?„õ'?‹€?–R«?œk@x'@FCã@{?.È?UÏF?‹VŽ?˜‰î?Ö¥?áƸ@Ç"@ Ý;>熱>çV­?]ò?gq?£ Á?­+?‡ž?|5Î??âþ?!>÷jI>ÀC’?\À?ÁæÑ?•×>ŸºÈ?·?¢´û? Äÿ?9áÈ?G +¬?ªw?«ç?«× ?«Áv?¤^ý?¨Kû?‹L%?]g¦?:v ?«õ?w£¿?ä@ª?ßH+?Ñ??ÆåÔ?C‹×?F6º?ûž†?ûÿy?¢p?ŽfÉ?pÞ?c<1?ŸÎú?»{F?š¶?i?dQR?b³D?vÿ²?©ç‘?°ûâ@%€@#{~?…%?b ?n.­?t»/@(Ý@'–?@ê±@Rf?Ø%{?1å?÷x?ž? Ð/?4K$?1  +?.ìc?,=4?”É ?¦Øw?¦2b?¨‡?k–>à“I?HO*?Í+×ê ?ú®?§©„?ªá¬?ßN¹?Þ.?pŸ?W{õ?£Ø?»&Ç?¨†?”ij?º4?ƒYg?„ ]?›z©?“hQ>‹*>•é²@†,@Ú5?Ä­C?®H9?ºÈ?æ(?Η-?Þ…­?×K?Ç?–?Ñ8?ø} ?òí§?ƒøs?~Êœ?¢TS?¤ð¾?: +K>Þ-Û?h²N?¶GÜ?É•@Ç ?ûc\?­Ç?¨¦³>éH>Ýÿè?‘†G?¤%?¡KÕ?žgÿ?‹#Ø?yv¿?V[Ù?8?:aš?êˆ9?ëûÚ?Ày?»Æé?V¸½?5æ5?‡í:?™3?PM¢>ìÁ}>ýA?,îÒ?Jîm?ŸL?§]D?^Ù?]Èê?úÇ? ?a"¢?qµå?HU½?+s?¡Èì@î2?ú7u>üÝ]>î*š>Ú§Ù>Ýȶ?S?¥ü,?&×n>õ€v?DR9?v?À?%Ñ>”7ö?½4?™î?™úg?¦_G?¥Ÿ˜?Íý?ÛÏ??'|?M¿’?\x?]Ö±?@c?!]O?Cû‰?rw-?9×#>Ѓ>w¯‘?µ§Î?³ü¹>üU>ÝÛ>ùŒñ>ù1Ó>cã=Zê >áÆ?]Ôp?]Ïš?]Ô?G´>òIÁ?A>ݾÂ>ÝÃ7?´Ín?»Ø~?O>¢jd>¯§@>Ü\??:Ž?t¥À?Ý?ÄŽ?°DÔ?fß? 5R?JM? +\=z|?:"Š?wè~>ãËÍ=š#(>·åM>Þ:»>Ü¿ >ßÅ1?W(–?Q€"=õãà=´?<>&Ü.>Ùù?'3?>Û*ô=Ë5*>Û¦z>ΡD>P\>_ÜÞ>YÒ>6žW>h%z>—>ÁèX>Ú‰¯>{Ó+<ú@(>ÏÁc>×q >Ù>ª>Ù¹=ìeE>lÝP>ØJ¨>•G&=´±¦>•Ø>™>°è;RÉ–=ëñ2>qPÐ>uŸ0>?8>A¯t?_t?yØ?‰¤?ŽÑ½>ÎMÕ<äCç;Ù.K?P%Õ@%cÔ?·¢V=›-„>®ÙX?5µ>ž‘v>…«í>°E>©ÚN>ú}}?3S<ê0>•~È>ÙA–?Tš?]2>%»>Ü(Ê>‰çÊ<¯áz>‚g×>ýùp>jŸÄ=S.„=™âL=Ê(Z=úw´>a>}>˜‡è?5Ým??½¿?5¶¼?0­æ? {ð?+?Õ>”–ä>W2c?ƒ=÷?ƒU>ø»«? !ë?÷õ?îÉ?¯Œæ?šr<Ú@¬>‹'(>ŒÇ´=òtÂ?:Ó‚?<žô?Læ?9'¹?Në×?UA?[%Œ?.þ3=îÐÿ>÷ò>ôU>êîR>ÞWå>ѽq>ø(Ú?8‹¡?)g)?$}†?*¸‘?0õ ?%ga>óܦ>È, >'B>M€>¹bp?ˆ‘?Š6&?B‹ï=q«9ìs8<’Ä >BZ[>óK¤>óB>ó="?F?J>ß?7ár>ó%D>ón?¤?0?$?sx?s×?s2?k?aÀH?Ë=óI:‹1×;ÓÖà>Kíf?Ïò?"ç?<úF>ú”ô>â>ï*à?sB·?…/Í?š‰Æ?Rä^>+ð>û¬ë?‰s%?5—’=‰2¯>Ê*Õ?k¢??D<>÷Yk?.õ`?eX?1°Ž>óÆ?Jvv?ŽLL?žãù?¶õ;?‰ß?<š¾?sî?Gw?‚å ?t4§?›>l?·=Q?× ]?ò²?MÖk<¤`>°V˜?,º?G|f?XC”?:èÈ?!Õ6?U^A?tñT?t‚?h\x>êo,>¡Z3?¿¾×?õI?”9?e‡Ç?l´?r¨?\?Æt?dÜ­?u¼{>J+>hh?$Ü??!ʉ>øÌÏ>öc?qðá?è$>Ãw]>¦S$>¯„p>Ä·8?°ÿ?-8?‰zÜ?YE?vºÔ?GÖÝ=š>*Ø?Ç»?7Ñ?.T?X>Aî>H¤>†D‚?-,C?²#>®i™>Ö>÷ž ?:3n?wº‚?v-Ð?w¾?v&«?p²?$YÐ>ø )>šŸ±>†…K?*Á›?Y"·?¾ßB?×òþ?¼åã?°@ä?g-w?JÄg>3E=Ó¼õ= ´B=¶?©?Áíü?Å8 @V÷@ à?‡ˆ?0m?Jã>í§F>衧?È?•ÚV>ùTé>îæ¤>Èìœ?"~Æ?mª„?ù½5>ú»!?zÃ>íJ¸>Õ¹t? ->?ŒÉ?!Î?(’=“5°?–™—?’ÈN>ú3ñ?ü…?æõÔ?ñÞm@ݽ@—à@M@H?ºëÚ?¨ ®?s/Ž?=3ß>ÚÁÑ?}Ôä?Þ€—?oèô>!Kõ?†ÃË?àú?ä0?Ô±€?±nš?±ÒH?ºâô?Ãð¾?³k0?¯èð>ˆF=I³t@ :P@Ê? \$?(?pÌ?sÒÇ?š¯)?Žœª?{-u?h+‹?+Æ_?1±{?7š6?(/ó? …?uQk?ËŽ?ÅO®? 5 ?f ?'Fs?=oe?4¡ý>aD^9ªY>²:É>ì–V?h¨¦?‡<þ?õT+?ýf&?î³?{h¬?yý™A>µ¢4?{¤V?U>Ä?÷p?_y>ü3:?–5å?òúÒ?¸Pç?ŽÅE?”TJ?™Þ#?½j?ÐRt?†#é?I™?cÙá?x ;?¶#º?Åã8?’Þo?‘Ý]?ã“>û·Q>û¹/? ŽÛ?…ÆM?‚r“?{µp?b Ù>þ „?& U?q›K?€­Ê?œûë?­‰Ù?¼Æ£?d¦|>'Ûš?X˜?fÚ?6`È>ûT¹?q--?¢…?´÷Ë?¼¼?ÝJë?ëÚü?H(>ûœ»?¢ˆ?·@Ð?í?ú?¿ª?¸-S?ju?…Cy@@˜@&Ê#?TPÜ?…Þ?Ôó?¨>ÃìÔ?{m?@t?R×w?ƒÎ{?Xþ?¼Ù?Z ">“Â?0°á?“àÙ?'l?†K¬?y Ÿ?sÄã?yëÉ?{AH?yù?uNô?•É>ÜÈ?Ò?¯Æá?kãg?X`å@!P@'ùŸ?àF?éºí?ö²|?ë­ä>úö-?Ú¨?-¬y?M¦Ð?À“H?Ú%@ þ?ï'£?f~?F¸¯>úºÅ?V ?ï?ŽB›?øp?Õæ?±sB?xØ´?$YÜ?;:?RïL>¯ÏX>[,Œ>¹õv?›®à?Ð9[?€Ó/?6¦(>úÍ>Ð$ >_ }>,òJ?¹_^?׬>ýR’>Æs%?¿b?Ãí?ƒýß?~Û²?4—>û¤+>ùú°?(cA?ëhÄ?̬¥?-?$v”?,àž?hÝ3?ȶ¬?Òj?úl?¸@#>–ðR?ú†?ž*?…,8?>>«?„¬·?ºÄÅ?P?&áý?i?Ö”¨?œ-?0¡E?}Cs?¨qÍ?¸×?nŒu?3SF?E©?°P?÷Êd?ñ&?èV?¾ûô?ª*_?ØK?ì+X?½tà?ª, ?‡$K?wØü?̼b?èã?áw?ÜAâ?plÏ?8?|ú?–æ?ÉÁ?Є9?ôL?ó&?¦.}?š‚'?aÀ¸?_wã?Èå×?ÖÈg?€ƒ¬?v´K=Ž =3w>¹ Ñ@-ìg@)?Ä>?}¡'?Ä]?Áж?·H¨?º¢Q?ç‚Ñ?ÞÙÁ? »b?W >ô¸?Þ˜@Yb@L?æÞ?áÈø?ܵÝ?Ó—N?„ƒ³?ˆj“?àÝê?ã+€>òíŒ>ðµÔ:•÷M;’wX@ +\´@ +¿i?ªŒq?¯ä8?™¥c?™Ä?Óœz?Ø°û?¢}”?ŸK¥?èm@?õz§>ömN>z^\?¡wH?¿Qµ?¸„?´È<>ÙPô>*r?9ýZ?jŠ?Ñ~]?ð{òŒ@ Á@"×?¯¤Î?%\Z?B±Ù?x ?’„°?¥|û?‡œÉ?7Â?“_Ã@Q•@A`@®?ú´c?úÊ ?â&n?E+?yeÎ@m@[?mHÉ?l›? §„? +™œ?¤T?®R>î­[>ìŠ_?b±?qÚS?Ñÿ”?ìó?[Ï1>ëíY?Eãª?s÷"?išž?]’¾?Ð-ê@ø@G@g2@ b?Ìu?°3Ü?j¢m?¤qV@%WÉ@T[>ê2>êWm?ãQ?'X¦@@"¹Í?’‘?z?±Ñ‡?·f7?íõ?ü¾ô?ÕÃC?Ç\?Ò™ ?Ú æ?‚|Ñ>3Ï›?C§ì?o>çt5>çW‘>é`U?Кx?ãÖº?ÞÖß?Û ?Órº?ÌðÈ?ÞSê?çÞ?ŸBx?*©Ý?.û¬?#Ø:?{º@ú?éÔZ>ŽJW>‘IÇ?ÌPÜ?ˈX?Ê!Ø?ȳ>?„6 ?[;–?”ǽ?«Ž©?Ÿ`b?–‹þ?¿át?öŽ?Õp+?Œ +ð?ƒ±P? Å,?#±@{~@gÌ@ ù@î?™sC?j›C@vM@DI6@çÍ?âý?·è?bÐ"?¦Êq@$›¤@ ?ŠM?E5?þní?ü_ ?­5E?œÉ¸?è=û@@?ß*‹?¸å|?‰Lâ>áþ?E(S?Ôw?Ìc?­ô?ªàe?,ò?,&µ?ž{½?±P¸?¨Õ?“uZ?_?Nˆ?X0?¨fä?¤ù?›%Þ?øZ?ÀÛÞ?ÄÊ.?(zÐ? ïù?‹³?¤0š?ŪÓ?Ý£Ð?xÂÙ>Àft?§»±?§ö¾?«t?¬Xê>¬œ=îºf?J‹{?sš¶?<Ö?#®?QÀ.?~> +?[éÉ?<>û‹z9!?Œžù?–ƒŒ?¥ã?§÷?©¾?¬x„?¢{¶?›Ÿ?“’‡?œ7?¢•‰@¾¹@ºI?¦Óœ?¦ÊŒ@÷Ü@8ä?—óG?&¼R?ºT‚@ +åˆ?Æ6o>÷î;?h@@&›¨@#¯ø?Ü$?×Ó¡?«op?¦Œà>íwk>;»C?õß?^4?Tªá?BÌZ?‘RÁ@÷÷@¯?•Ó?˜Æ?’w\?Ž›ò?›I@?¤ŒÉ?lô??*wþ>Ç”ç>“d>ìІ>Û*ª?þý?!„?‰É?‡KÅ?ÿ’@*%?ò@–?ÑÃ)?ŽŸ@>õ»“?9PD?¦p}?Œ +Z<ƒ,¾?`Š~?eµ‘?V¯ï?OÛn?Œ¹Ù?œDê?mt??(u¹?Š?ÍcT?ÂÏ?¦yè?¡ ?/ö9?,¹Î?`¹?]l¨?.w>ùUô? i´?3ñ?¬ôb@¼ª?¼à}>Þp?[?Çøµ?Ç}–>ß.T>Þ/?PÈž?^ ¶?_€?^€?^Š?^?†–“?£ ƒ?år?P¤?L¡Ö?IÔ?E™p?‰ä?Ž`å>}ƒ>c?#Î7?Cجà³>–£Ò?iÈ?‹Ÿ2?$D>Ýd‚>^¢<¦Âz>¸U ?],Ü??8«>Ý,>Ħ=°=ío<*°>þ¦Ë?6Uz>¦aÄ=‰Z~>V÷Ä>:pÚ=<œ¼?þá?çú>)MZ=àŽI>‡Žª>³(³>E Ê=;y2<Š½S:JH#­Á>XY>&¿ð>ž™>á½8?/ è?*Œ>À¢>Éfe>×3”>ÓÆ==ø0’?8O?Éø?‰c>ê/J>hË=Ô\H>¸à>¸Z@>O`¹>I_«>až>{œ¿>u‹>@,p>„?œê?`ÛÕ<Τ•=C¤e>y¨ >þ§?ABo?wH‘?%v>×®Ì> –ñ>}NY>¥ä”?-m9?D1¯?mÚL?íO?}0‡?z5>½F>…x1?;µü?O3?«>?¯da>ó‹D>ë|ê=zÐŒ>B&?R?q>–?<¾J?|K?õô +?Ïý>õ¬ +?IŠ?¥ >ІK>uÜÔ?t¤‘?QŸ>ô·o>¼ª +=¾†q>ÑÁ>‘mµ>ë?1?CD~?*o>u÷©>çUÂ?Y¯j?4Kê>óÂ>¸…:=´$3?!ߟ?î¥*?ñQ?ów'?¡Ç5>•”ª?]µ¥?¶> k>‡< >ó<ù?xª?7W¼?æ†>CÒ&>âpÝ?s+€?i' ?[ÒÈ?<Ú>ó)ð?$7Ö?s ò?o!_?bØ?4‚‰>ó5?¦Ü?ªˆ>ÅêH>Š¸r?5?Q±›?s^…?t*?eµU>ø;^>iú]?æþ>Mô8a”<9€= ÷¨>Ž“H?—í?3Ûî?Q%‰?&hJ?)?eFÖ?˜ZÞ?U{À>ô?P4?“Í?—Y?yè?¤$¤?·J¯?¶ß?·^4?YäU>árJ>駈>ô²5>¤Ÿñ>Žþ>¨§c>½ ?!Y?8@§?ט?·×ì?B•> +ù˜?“]ñ?Éê*?GÓ?m€>÷?>õœŒ>õû)>õ²? ¦!?¬¾¢?J!?-bŒ?%!@?,V#?>:?7Ïì?1V?+h?Mc?I—=áûï>C?X?‰Þx@lÑ@Î<âºx>q ?UÙ“?f’ï?›À´?²’??õ*k?¸mj?I->Ÿ«´>Åø?w|'?(Õ1>k)«>© ø>÷±^?Aå*?{fJ?0ûX>üd¹?ˆË?²}?I>øÂ?"–U?&¨#?Òž?î]9?Žb?€œÌ?»áè?Ë™Œ?ˆÍÇ?Š@œ?O3Ÿ?6 >øÈ3?Ä@ØJ@ '©=Ø—?Ðx@@-?ù¾?Ç ‚?")œ?=?’¨•?sS–>ùhÔ?0± ?y€1?¯S?êC„?¥¢ ?U†â?Ú×"@óÞ?˜^C>ùД?N˜ç?mWN?Â˪?Ô^Ú?Ë—?Áº-?>úÑ? 1>ú¥l?¾I¦?ÄØ?)>A?0í?œÄ?”o>?§ù?=>ú|@?©Š?z²¨?¦Da?ð:?¦íc>ú©ó?&‹?fJa?x‘à?j°Þ?€ï>?—ª¾?ÌœÍ?ú6? ù?'f>Öz£>¿/ì?_ÿ+?{H?>ïJ·?sJ«?zÒ<·Ó*=Ç??Ø?%Ë?Œ/Ý?ƒ'|?&¤H? ú>ûJð>Ño^>H—>Òßo?Í’?Œ?5K?ÞZ¸@B r@\¾?®b£@$M8@X&k?ß0†?v–û>ƒ_»=`Ê>ô—–?SB?Ê¥?á¹—?¿„ò?¼¶%?¡Ç ?žCà?ž¡Ž?¨Å?Õ(Ö?ΔK?¶Ñ?™á‹?2Fz?NyT?ŒÎN?‡1R?—…?{ä"?zh?€lµ?Š?[>:¯>gÜ>‰«?¦ú?¼Õ†?cõ§?6\?=©?8VÚ?CÒ‘?LDL?>ü,«?[lÃ?EN(>Ó›? t ?¼×¤?²­?{ÇË?^ª+>ûÈû?zE??L?7×d?{Ä}?c ?IÎ?…y?›ai?K¬÷>ûÀö>þ«? +i?6??M„û?•·«?ªäE?¹ ?¼Ç9?\ŽÝ?+?€Æ¦?‚ Ï??O>þ|Ð?»¾?¼…ì?µb\?²FC?»ä|?ºÛ?X¢¢?€?´?Ó0ß?¯Û8? i*?@¯ì?œô?Xm>–¡>©\>£:v?XÔ?\‚D>ç7=¨¡\?i·?¼‰-?TVt>ûX™?V«s?{Qß@?@þ?Rw6>û=,?€‡Ñ?+Ÿ?~i +?{)å?åù'?îÍZ?Ä'?¼R¼?¼9?‘&>“¡>×Á?zú:?pÇ??dC?q¦t?ȱ?˜I´>Þx>óñè?‘Š?e_?¼ ï?×ÐU?ú°‡?¾•c?…‚?µ>î?Ôn;?”é?X8?qÛä?upP?©t?¶?‰@s?z]2?­ G?»¸æ?²%3?«SU?>K?" +?pè]?z9>Õ>Ÿ–õ?îuÔ?ò[?±º?·‹V?»f?´NŠ?uaº?‹$?ùº%?ÍÛx=«ƒ”>=Áõ>ù‘]?Ø"?oœz?„Dà?›ª+?›·?„Ê?‰Pú?œ@!?p3Þ>ù+5?RÿË?¤d9?‰q²?TYW?„d+?˜ïÛ?©Ê?º›W?{†Õ?ïì?OÀ?­?‹x?ºgà?Wê?‚?ít?%Å?I ?º+z?w 7?TÑ{?G8?FË?˜?£]4?Ói4?Ýc.@1¢@;'±?ºÁ?ág?Ít ?Ñ–r?Ë,î?ÏÝ@˜¬@ Û?Åè|?Ä®µ?a? :}>4/³=öJ?sÏ?v¼´?v‘y?{7‘?õU²?ï€â?€ ç?°5?vOM?{qf? L*?šÑ ?ŠË²?†ˆû>õè3>üs^?(Ä?;”?º|?’÷°>úÔú?>p?Óά?Ò h?Üñ?É6­>¢Ö>ìîw?·°5?Âb:@ 1[@ .Ð?ßôB?âzr?ÒØÆ?Á±]?mdŒ?†F3?ó¯T?æˆI?sÅ?q¦ ?…VU?}t>eFd? +0?@ENE@?Õ@Ûæ@b3?>)?Ad>òýt>ø 4?ù? J?†¥)?’/3?¶v~?®Ž#?;Xz?? ?œ–M?Ÿ1S?£?Ÿ$ï?›ßì?˜ž?° «?«^?8±>ä°T?œnt?®xf?¸A?·éè?,¾t>ó§í?Ê{²?ðŽ?•V?pZù?iN|?c¯ê?…âI?“ë?SÞ£?)X?–˜"?ÄÐf?Ñã?Øe¼?¥g6?o0?‘e'?¥°‡?•h?ôW?”‹ˆ?”v?ª9/?Ô$C?ÛWa?ðôy?æ &?²zæ?œAU?ƒ?ESº?á¤?ÝzF?‚‡?‚Ù'?˜?‘ÖÔ?aÊY?d”ï?Çë>öjš?Øká?ìk×?ìMç?ì4 ?JÚ>ìk?Gôà?kÇ4?•u*?¦¦‹?¾•L?×n?Û:„?ß_¥?ç +m?êò—?´æ?ç>?š8/@/â…@k>V™ê>ƒ>çy>ë¾>?Ï»?Ñ^>¯,Ð>‘Ðö×c?\qÃ?¥å?«J?¾Éá?¬ë:?^_?oC?R¢U?]j?3Ëó?1‘+?£’ª?¼>ú?D>« ?PA?1¬ž?n +V?À¯?ÊÐþ?ábÿ?ß³ü?†\?{‚?9» ?86?Wy?`â}?9wS?$‡8?Ni,?ƒOS?„€Í?så½?gmv?]¾?U‰?©ñª?«&y?|?b>Î?`Š?_ï]?^ãÌ?YŠ‹?4ý?æ‚?.›Ú?§³9?§]Æ?Š®¡?†˜¦@Ù9@ 6?‘7}?>p>ðõ¢>™¤? Ž?w6¬?g,x?;F?'NK>cEè>X9e?€L?‡­?i)—?^¿ö?Mx¦?:*e?4÷?.û~?6¼i?^‹Â?muµ?±/i?¯À?s®À?j—?çHQ@n@ +H›@ +²@u@&³+@í?j²¼?g>M? š:?/¡?ÒÈg?Õk÷?Ù4>¯°•?,)Â?^?7ãŸ?Ý?›ê@&Š<@oó?>Š?Ž©u?ýhˆ?ùí™?ݵ½?Ò\?çÔ?æNà?“¦-?Òï?KÓ½?¦}?œ"?3dÕ?ˆV?Ê>Ù?Í|?šg?ˆá?h•?]ù²?Þð?¦w?¦y¢?¦‚°?}#=M(>÷Š>ýÄè?X’?^ý?q-É?zš1?8Öo?óu?Ñ?%fa?%›?mh?'G~?^N?^Dv?-?>ŸM>!c1?CÚ?2ƒ"?½>@ ‘-?Ó£I?@z?B-ñ?kÆú?\ƒa>ùo‹>ì2?Zô6?^1P?”?¥ÀX?¤“?¢L™?(Ÿ>;7C>õë”?^)?^'µ?^ Ñ?KÞ+>’¼ß> î£<»Â’?,?\ ^?>™5?9R†?^ú>Št?3a?¢çç?jü=ÿò€?œu#?žJ?>G=‰aR>ÁAö>ßîÇ?9è>?]Ù?"ßb>çh&?w?P¸ ?1…h>´¡ú>™),:(¨À>‘Qô>…?“!?Ý®>Àú>[™u>K ”>;›Â=Ð3¿=æä?u}?(”+?ž{?[Ã=Ë[o=%jà>œ)Š>Öî¶>7P>N¨?@œ?.}\>¯·>¦s¼>ãŸ>•MH=„wë=*`>Ò´>%‰;æ1ß;5Ò[>eú?T¾¹?O=4î>ÄW?‡ý ?¦T=œ[2=è?%$?Y®Â=ÿ*þ’§¤>†£I=ö»¶?>­s>Ndç>ÿbo>þþP>þ p>‚ðî=ÂǸ>µ¡‡>ý5†>ÒÓï>³Ý?0ä?K:›?8{@?:€i?j)º?f N?Mö?RD´?› ?˜^:>JÝŒ=ôt™>øÔ>ïJ9 +âjµ>±û$>½ø@?ß ?hy>‡.>Œçí>öIa?#ü*?¨lA?•x§>ÁD?›j?gȧ?0y>´>ÿ<>ÇOF=vž>‘L?8Ì?+nX?Å€?h?1†>ûªý>éê‡?¶÷œ?=>óÒ]?4G?9¥r?_é ?±ß3?qJ=8u°>ÃÑ?TH ?…>b©x>/Ì:>-i–>óNÌ?μ?óAb?&mÿ?s@ ?Mâo? +)ƒ?ß`?þ¢>–Y~<™¯À>rXÜ?Ôé>¾ë`=àœŠ? CJ?ƒ"??'ø>‡–Á>­€§>óg#?,æ8?stD?ŸA†?Öuë?w: >ËB?mPo?;ê >î«>áT>Ô.ø?|™V?ȱ;?Í?sî?Qß>†u5?;  ?•-”?I˜â>ô/w? ·C?i?˜cá?ÝxÓ?È¡?¶2\?’‘Í?xD?šè]?¦ÍO?„O=îæ=<¤¬>Æšs?N½> ÎÊ>‰Òï?D|?·éË?PHê?Hº>@}=ieõ®7>õ½Å>õÊ>?}¯s?Š(á?)Ò?&uþ?CN½?=¥x?˜’?”áþ?G:?GüÄ>²?>¿J¡>ÌWÜ>¼E=ÚW>?w§?ggä>ás©? +`º?wA?NÚ§>Ü)`?Š0e@†@}á?š/;?O:D>@jÔ>àr¸?Td‡?N +d?K!~?'àW>÷Êî?ŒQ?¹í/?“?n¶Ü?¡Gö?ºó?Ÿ> 5‰?œµM?Èjª@ ”à@š­?$h˜>“<{?c¦?x ä>?ï-=ÈÆý?Öã ?â6Ù>ìô©?ü?zû8?w­«>à °? ‰Ã?Ô±?ºÕ-?=x˜?z/ ?¡µå?|úµ>ùl©?Òj?-™?^“¶?Ží¬?œlÄ?¯k–?1YP=±òj?I³?z?öò8@/‚?Òù–?±½F?mí? ¨@³@%]Z?5ÜD>ú8V>ûWÛ? +²!?©?5µm?DzL?¯ÂÒ?/ê?3a@?z…¨?]6v>üuØ>ûJ’?sg?:›â?Ž·¼?_ü;>úÃy?(EÈ?Q.?”¶ÿ?¼'6?„–?8Ö?– >½w?/zñ?WÎð>‹±2=¹ˆ>?fIQ?ƒ)H>¡1;›¶>õÁg>þt¥=²×?cV?b-n?{R7?‚5’?ŒÖý?eså>ûd?!?#O?]F*?§@?¶Âp?Íõ?ºÌƒ?©RY?fÆ3? #?þy>û®†>, ß=è?2ëj?RŠù? Xþ>û¨•?B0É?TðÐ?•„Û?˜E?wGÁ?|˜Ñ?EøÅ?zîÈ?ûÁV?ý¡Ý@ Í?÷ñÁ?²ïL?ÏÚc@ {?üpß?ûÏR?£¸¢?\F? +ò9?„V?p€„?RN?Tú?*LJ?JN?e?„>ûÞÂ?‹ù±?˜ˆ>ɦ±>©`>´D>Íy]?âïz?׿>)r”>“õí?·çê?°?{ß«?;³H=>‘>óK?¦Oû?3 ?(,?`a?‘º?±Î?Ø%?akž>ÏÇ>t7>J!U?ÇÉ?%þû?J['?^]?­o/?¼Øa?à–q?îG?ùb ?û°o?úƒ?îá ??Ã>y(ä>ËìŒ?{³»?†¨H?¨?}?«}?¼½¶?´?ž)ž?’þ?†1?!…¶>È­y?X¹`?Iéh?/¬y?z8? Üm?Ö/?¼™½?L#Ã>ûp`?œœ?åÍ?Û=5@&?ˆöº?_Óú?¦¹?©ì?“?{A?—D?ŸN?û1¿?ñhì?™3R?‡~Ç>·F³>ù×?ÀA?•Iz?®¸È?Ã÷M?òÑ?žœg>ŵ0?z˜A?C•î?mŸ>´$>RG?&°–?zº?9×?œ¡h?\kA?%žŸ?èÆ?Õ?ÄØu?öù?š¹Ë?zrÖ?š |?£(V?Ç|â?ÑæŸ?†·ø?zAƒ?`h?cNQ?Ûè«?ä>f?»‘?°¬>Œ +?»v‘?ºóé?¶N_?ʉˆ@q¯@ Í?ÃE|?²Ø?—‘?tê->ù“`?/5ç?†®?cc6?6FÈ?@ÉÉ?A²ß?RÜ2?[Uu=Ô~?tÂ]?x%ž?µŠ?µˆH?xÒ)?q­E>øÆ? ñ²?½E?º)ù?vŠî?m‘j?;?!qo?Š3s?=€?¥í±?¡à>?‹û?ˆ[x?„½'?ŒÚ>?ØV?Äö×?<¡2?KŠ?‘ºz?¡ÌÆ?Í^Ü?¸ŽÐ?ä?0zž?Ô‡7?Æ… +?–ï9?–Å?t±È?§‡Ò@Mû·@5k<>ûz—? l?u?yd?tj?c½?f"?#§?˜“$?wÞ?e‚?¡#?èÈ?ß]T?K+?Pl?‡¥×?†Bþ?›”•?–<¢?8ú?>ÞK?øõ?õ2K?)Âà?&Q?H(¬?KÄ=?¼DÅ?Álµ~ý=ÁŠ\?G¡½?pu.?½? +Ñ>‰ôå>D„N?fŸ­?•<¾@1@#ÂŽ@ ã¬@E/?®I?oIè?¸ôl?ïf?ã û?ÎH”?Éà®?ÍM?Ö%æ?áo+?¢<‹>îIˆs±>ÖÐI?²È? +)@&õŠ@"â-?ÐÅ>÷J¯?°–±?±Œ@Ê÷@t@*›ï@,±Q?Ç&t?¢J ?Ë4¢?×_Ü?x(s?*7J>ó0w>¿ ÿ?ñ?@–'?¸“?ÅØK?Ê>BÈO?C˜Ÿ@¯°?Æðä>P?j38?sÑü?¯zL?®†>*Á>Ùa@ XG@Ùö?«r?è7@çG@'?«Ÿ?ƒè(?÷>H 5?iá(?ã܇?»JŸ?hF?Füü>ìBI?+O-?°žj?ÀlH@(%ƒ@&d‹? +‚6?¼Í?ôþ†@#Ñ@%i‡@,?ºäÃ?fœ‚?y®Ø?Š¾1?Z=?Š#?e-*>ÿg?…?+r:?>?ˆÚ}?„|ä?î`œ?ñÀò?¡Lû?˜j?Z9¤?BÊÓ?o)ñ?€ÂÈ?¶|?·""?‘|—?@(¿?Œf²?ýQü?ìb´?\‹à?eyh?á±}?ã—§?㡘?ã|À?B +1>ì’©?{n? {­@á@7q?í— >u£?…c?¼ Ú?¯gs?C{ÿ?@Ár>ç·J>âBM?”Ëþ?©’‘?uù ?>pA?l·É?÷p?ˆ ?a£?~µs?²?²#?¢;Ç?¦.à?i,?V¥?B C?DOþ>Ð[->:{Û=õuV=Š6?a^?®¸Õ?¶qš?Üá+?Þ%{?ßm€?àCÈ@ @ x?›ØØ?` }?ŽRa?¢áÃ?žËy?˜WY?€â¦?µé?Ù?$}P?)æd?ªZ#?´µ@?€dØ?_^ ?‡Ó?„‚´? 8’?ÅÂV?Ä\c?Âô(?ÂQ?³öZ?¬B»?¥ ·?§2X?0¨ù?FÅ?g™?ˆãª?„Œ†?‚$ö?v%?Kªù?y†Á?Þ˜2?Ý~ÿ?§ ò?¦áZ?psÓ?^„k@hB@&ʳ@N,@ 0å?Û’¯?^S¹?[ÔH?N?Oĉ?±ºy?³)?²>Þ7Â?v6ð?”[L?ˆJ‡?xl„?xÊ5?Þå?•¹?[m‘?wfJ@ ¬@—þ?ÌïŽ?Ï'»@" @:Õï@ º9?Ïf?¾úê?¦‘?Ò±Î@,/@"‡Å?F¡X?LÁi@4. @?3]?©¤?^1?µP?Ý%?©Cê?fYû?~ÔÔ?Ý/?…}(?I_¶?Dmi? ¾_? ^s?‹y¨?”LÆ>ãs¡>,Z©?Ki?™à˜?[\>ÜF"?J-?^:Ô?húí?™à?•ÐZ?€[?ocË?ŽÄ´?š'?o%û?K›‡?³ZØ@ø:?ã J?¡-?¥ _?¦ÁÑ?£=Ñ?^U ?^Yu?¸?Úõ?¶¶è?Õ´?¤<›?‚ax?k ‚?^V?C]×?‚,?¤?dz>øzŽ>ê&0>Û¼ >n¤¡>}·D>¬ùÃ>¡¯>ó×æ?cµ?‡i½?âF›?—ÞŸ>":?Hdý?PŒ±?Z®ï?]²¦?]ïÞ?]ÐÜ>JÀ–=Qb@>ŸD>ݹ\>÷?>.ÒR>*â=ìšš=Øa$=€˜²?0!?,ô>á,H>Ý£>ÜüØ>ÜçÏ>¤žù>‘«/>f]>êÎ?Aæâ?EdE>Ò›ˆ>ÙÝ™=;¿K>ž„>ÎéC>Æx>½úÜ>„b·>6óa>‡Ú>Úd'>ɘ +>Ç!>/¶Á>ÓÌ>agI=5A¯=Ô÷>œ>†ö>‚à}>Õ2ì>Ô>,>槫>ÃïE>.z>b9> k>Ïô?„,‰>üöµ>‚e^>Â4i=_oì>xÃG>d0³>KSŠ>A¥=ÌD÷>Ì×.>™“¬=[Dq>w4ï?I*>þó_>þ–~?8î5?Zz`>·ð¨=ï[€>a>(‡W?4ì?4K9>©F>…Ñ?EE?l@_?.9N??S?ÈÙó?Ù*^?|—?vŒ>þû¦>ê’ë=Ž6±>÷Nè>íÚ„>Ôˆw>ÖnL>ƒÕ>‰Ÿ>›÷£>Jò=ÿcf>õ|Ž>²?}>‡óÂ?iŒ?>м>ıâ>ß—?ôø? Ÿ>Å>ã­ê>ôIH>£qU>¦Y–?‚¹^?rü?&5 +?•zÿ@OŠ?Àû€?Yß?¨tc?Ye>1ì>‰“>­u…> ©>>“Ýf>°—>ó_°>ó]2>óV? 0ª? ?;Ý?sPb?sM6?sO?’™m?¶|È?XÄ?Z? p«?“Ù‹?‚ ?d??Yoù? Ø>s->´œÞ>ózÓ?/TA?sˆ:?gMÕ?]u>?ù1=’ºW<ȧ6—>çí_?ió?0”D>ó×â>óγ?*?%Ž?*Ìí?6T5?6Eg?^E?‡å)?m¤$?>¡7?I™u?_ ?%Ü>ôst?DA{?t¥>ÇoX=¬g¤?4+[?†J~?ˆñ»?€]õ?è¦>‘(­?@µI?uÍ?5›? ¬ ?ŠÅI?§5€?…76?um?!>õŠ[=µ;‚:ãä<©¾P=7£º=ö‡=ľ?ïU“?û(w?’<¢?…ù¨?»`n?µmá?Rak?bÅÑ>ögs>îÈí>WäÑ>ãÙ=_÷,=Ë/ü>üW_?&l‹?¶¸†?šÄþ>öþ9?2§ +?©æ…?eØ??~&?òPp?ì%«?ÔŒZ?¨qì?MÒ?1ðm?ò >½™¢=óCØ>Ÿ>š>ü¢‚>÷øŸ?i?Š¾¬?±àÕ?$M8>¯©B=î«V?MBÃ?›š?³zØ?À—?ºr>®~^?E°Î?Yß*>Ô^ˆ>Ô÷a>øÞt>ì­%=WQ?Mì?(¦s?§_Û?œ¢k?Œº|?€ÎT?‡Ð?,»?oßT?cg&?3E?t]r?¦µ°?•ã?F×?D?…DÎ?~ÛŽ?yÛŽ?¤“Î?ºŸö?ÀxE?Épô?d¹à?1éç?™?=?…C×?šL?†Rü?wÙÝ<žh<|4$>«!é>ô4·@jÞ@ö?²Ù¥?©Ïþ?zS?z£k?zE?ÞÁ?°²?­ÊÒ?°)?LÇú>€l>Ôý›?.â?{ÀV?›Õ¬?nxc?FYk?,UÌ?)â?X¢x?S4¡?.ø^?¤X?²òÞ?¾¯Ý?¼A,?º*J>ü¡ê>ë“8>/žÅ?­øíÐ>áþ—?‰ñÕ?¼R?‘{]?w½?j@‚?\°ç?t(?{¹œ?ÀýÑ?Áêœ?¹T~?¯É>Þ&–? e?´pá?¢Dñ?\¦F?xüÊ?×Ð?Éö?ŠKÍ?‡zM?„«¥?Çz#@o´?èL¬?€—?œ@ ?¯ «?\a@>ûìé?«-?ééÈ?ØÔå?ÌØ6?C,$>ûóÕ>ûõõ>ûôf?–Ó?¦Æ>Æô +>ŒÊÉ?îà?Ù?¸?§÷?µ?™—P>ð ú?ô?ÚŽk?¡ÍŸ?ÊØ¥@û?ÑÞ?T‹?zÏ?–ø/?¿4¸?Ý«S?Žz+?$¼î?Fã?V×[?n`‚?{æd?sG~?\b#?—·?©a?‡y>ûÛ™?µÒí?¼³Y=Ö9>L3ß>ûи?ª€?”Ÿâ?š•$?ÖÓ\?°l? .G?Fj?+Y6?:b2?Icp?^¥Û?_O ?ë>$Ü?QÇ?qW™?”~?³1Ï?“ý?{’j?¦§"?¼|á??wÍ?%X>û|0?®÷ö?È{”?Ü™ò?Ùüd?#?Ü?{J?x;?6ö³?W“2?ûFô?örS?Õc?¾gŸ?S6]?ƒH’?Ë©>?¬LÕ?P¨?‰ü“?ÂI¼?sÏ +=Ö\>Yzê>üâ>Œé:=‚ø?oa(?Ôé˜?Ÿ;?zÏV?AQ%?"}Ó? :¦>ú³ú>²Ãà>Œw¿?H„?}QÎ?Ã)>?ËÓ0?œm +?’ûp?ÂÏ?Žˆã?_¼è?`s^??Ü›?0u?°¿?ù?·†?©¹=’ª? Ø3?<Õ?»xá?¿Ö??Óí?Ô€?ËÚÖ?»Ä¡?‘”?«ÒG?Ôjo?«à’?q(C?.ÀÉ>hûƒ?¡?‰??Yú?»~?¤û?T€?o`?• +Í?¬ðh?ºÌB?g-Ð?mÒ?´)^?øbœ?Ï‹?¹Õ¤@ëê@ø?ýØV?ïâP?˜—‰?x~V?¬–o?ºKY?ˆAþ?xJÜ?ß0¤?ìñ?Î=??Ðù»@f@ +ç]?W\?/×%?qåÝ?w¿ñ?å5?•+G?Yè=?Z“»>ùü}>ùvÃ?Õµ?Wã?€¤H?~bí?€´p?ƒˆF?öÖš?ø®Q@°²@ ?¹ ”?¸ï?®R ?«»?œCu? Ñ ?Ò„­?цz?à­•?Ò¥}?”*ø?Š;‰?,3¤?m¼?õÍÄ?Ô¯Þ>õ¬>ÚUÆ>0’´>ü??õcl??×,ô?æ±$@ ©Ø?í”É>€œ\>²í?tÈO?ˆäã?½Õ?Ã?ôe~?Ú3?tT)?^Íq?Žz?¬t?`ÊX?e"¿?†ãÐ?ƒº¥?S Å?L‚0?HL?ƒ_¤@ž&@˜-?ØïP?×6k?Õ{:?×e€?îJ?äõ=?µþ#?³‚?Ž¡x?‡|Æ>òNÓ>ùôí?4§·?0= ?„¥a?ƒ»Ï@RŒ@+ô@E@dñ?ñÌ+?ð¹@0µ9@4Ã@3{Î@1Ùc?:Z`>Øãð?[sŠ?pŒþ?_T™?X >îD>³:P?ö4?³ü9@.æb@QÌŠ?Öì?s½'?LÞÓ?.y?uÌ?–üÙ?¾(ë?â¯w?í3*?îƵ?õÌ`@Ì"?ÑDÜ?€Ü;?°Bÿ@k*?ó=‚?Ëåó?Ë()?ºµµ?´ÇÉ?§J?¢$H?mZÉ?xÍ+?±Ô?¶Œ-@±@3÷?Fc?ÄF?ºÀO?Çú?ŠfÚ?€‡ô?°œö?¾E^?À0?»dÏ?iøz?²‰?†L­?©úß?˜+h?Ž/A?Šâ ?z˜5?¢‹?éî?¢†0>º£+?ÐhŸ?É/?È?½7?9²º?4 ª@8×ý@BÊ?ÞÆJ?Ãn6@'à@=@º?ò;¦@Ѳ@ ž&?Å·þ?h{©?¿¸-@n“?ã7Ÿ?a¢Ÿ?c<Û?sº‹?›O@-ºÏ@)½å?–ܳ?”j?Å7?Ì(?¥A2?¦Pj?P¡È?éñ?W;>惶?Pùˆ?’˜Ô?‘/P?È_?Y·Œ>{³b>ìš +?·ä?¾Ï¾?éø?åÔ?šž?“¼Y?)g?Dh?eį?Š?©ÒË?¡á?ˆ÷²>ÑÒÜ>oG=IÒå=ú…>æ,>ø%;?cçc?e".?ª)o?­¥X?Ð?Ò´ ?_AH?”?wÙ¾?§úà?±NS?¬Éó?Ÿƒ?‘¿?‚›©>–¥´>¶'d?Å5q?¿¾ñ?Ç+?È¿(?±œ?©†à?ˆ°ž?kåô?Œ7?žös?£+û?­áà?š[?,?xÇ?Âæ?Åé?CÀá?^N?YšÏ?q|¾?6ÝH?´`?¡-?ÝËä?Ñ.¿?¨ù?¨^c?¨R?¨¾\?ß»‡?ãbí?‡ +o?`#(?iMí?qH?F/ã?ðÂ?-ì>ßËt>ÁÂF>k>>¦¸?Ý9äÿA?LÜò?b…ñ>ùYs>P´8>Ž³T>Þºw??¦ñ?¦vå?üÖC@ ±§?¼hÐ?˜u?xVë?^há?ˆQŠ?Æ¥K?¿ß‹?¦Â¤?¦¿ž>ôÕ÷>ÞNß?f]Â?…2g?†§A?ˆ Ï?K‰€>Üø`? +N?Q¶ù?]bn?²Û¡?µÕ{>¨6>‰wù?%Ö¾?A×O?} ½?ZÒ?“d‹?–o¼?††è?J +?/+±=|{=k?]î`?^0=?^4´?^2?¥? Üí?t½ü?ž–?w±B?—?1ü9?^AÑ?\(b?;?7êÊ?Âs«?Çéò?9Šß>ﻕ?±oâ?û*D?¹D?^VÛ?^W–?^[ô?~úA?Í{Ï?Ð?úÑ€?þ,»?oPº?MO? C%>Þq\?0ž¬?^r²?-S)>Þu³?0{?`$?rô»?¢œQ? åö?—ª;?“ùâ?¬ªg?³Ñ%?#§›>Å]L?0Ø(?^‚?-æú>Þo?#Ú?‹Äô?€š@?,ªs?1‚â>¬â¦>›Êj?)™?>ÐL?¨g~?Æ&þ?Yyè>¼²>Um$;Ñ)‡;ðÝ=ŸvS>Þ=Ö>èÔÎ?^ ?^&ù?Ik©?>¾j>þ5>Ýþk>½oÝ>ŸÄ.>t=ÃÚ>€cÊ>·'ª?]”¢?[‚? æ?þ©>“õâ>”²^=•ù¸=5@==ÇÃ<øÔ«)>Ìé­>Ø9i>Û³:>Û“…>ÛlÙ>:ƒ”=]êx>$RÐ>VYã>nÇc>Lë>hQg>ycß<ïÀâ<ˆµÀ=ÿ>‘„>Ö©>yô]> á>lH>>­ê?úµ@1?£ë§>ÌL >¿¤>³Ç= ´82>ŽÁê>›cB>§gl>)C>))+>ïc‹?6ÛŽ?>ø(=.ÍÌ>·ç«? >épN>¶.ñ>©—Ï>G>jr>oþ¥>r !>U”i<¼õ’?'ä?Az+>ÿîÔ>úQÙ?f#­?ry?xót?l)Ä>妣>ØúÔ>ÌV£>¿°p>³´>³ß†>÷Q:>É@u=¼Åp>Î’>µWK>œa>‚Ý7>SFE> ‰}=\ƒN>,>>ûj >­ïà=¢¸>U> zÈ=óI*>¶´“?IŸY?J4 +?G»)?"»>ôT+>ßtø>¤uN>f«¾=ã¾>ùMõ?Ÿ~¹?”x?n??b=O4°>A.‘?bM?èNÎ?ÔP>ó†>ó~>óy³?(¾?0+ê?.t>ód*?ñy?VŸ2?] L?c{S?pBŒ?vd?Þž¯@43ß?̃†>ãa°?ˆ$þ?‹aÙ?Ž9?90Ç>Zñ ? J?XI¤?6{?"êh?5®Š?WhC?Ax5?Ie?;$O?qaS>ú:=:«x>:h?6Ëœ?™)»?9Ñ>žpû? Ï?éf?4g?"cD?oíÞ?œÓ?@À>×÷ß>ý²>ú¥\?FãQ?t£ý?•Þ—?œÎ?F\—?NF?9ß—?RWù>Ê&á>cô4?¦Ä?@¡º?‘–¶?¤3«?„¨8?ubl?V6‰?Z–ù?Ù™>ó‰Û?b{?j¤¾>ùH3>Яä?:i~?6·È?†Î?–ÚŠ?ýáz?ù±o?€O}?‹‰>7—Û>;~?&(?[×?b± ?\s¨?Ix?$Œu?¸¾»?ž:@?q?þ÷>÷þ?>ûR?¹cA?²X? ã?6C?{ˆß?ˆ`?™Å&?¥}Š?¨¿Á?›5d?†hæ?qÎ?g‹X?t!`?wç¨>Êiä=) {ä>ŒÃj?Ò¤?/ŸJ?"Ñz?ã>“®>x0‹>ú¹²?ÊÌ?œÙB? ü°? åm>øÎ=¢|=Yþ>ï~`>æ“=ði?ka ?l£n?‰Üô?“ŽÝ?§fÿ?ŽNÇ?0•Š?9Ñ?8øE?Nxx?y™6?ªõS?è.?„Kz>3~?f¦?ÀV?˜)8?yúc?Î(?õÜÁ@ #@å|?¼ßé?šR,?\+?X°y=ϯ=?5ðþ?TQs>Duz>qN—?¡>?—ŒP?z ?w¹î?oFÒ?vè…?{­?Vx?Ô¾?8?"Î?/ +c?;D€?dó?w?¥¯?„ô&?¤~F?·n?ˆ)ƒ?Y‘m>g?Ä€z?û5d?¸úË?²‡„?ñm£?û9ð=« >ÀX?¯"/?£sr?HËN?YÜÆ?¼–?¯Ž²?ˆsk?Ÿ6±ò?±¢?W´ó>Å(ð<Ê·Ü?%Zù?{ü ?©j”?·›N??$­?Üì?Ÿav?¬§?¥Wä?ªèa@%Å@ e> Y>¼ +é?ìMæ?äì +?“ëÄ?«‹?^=x?€cV?ª‘)?²'??¹fv?ï&Ø@|`@ £ü?ó¨?¶ÿ;?ˆ ?vŽó?\À¤?­Š?Ò,Ë@dh@+^?`ý¼>ü>’h>–¹?kC?| Æ?¯ð3?«S×@ÕF@ï?é4g?Ö£ˆ>ø`>ü>öYD?>°?Ãг?Ã>?½S?£µÂ?„ßX?BB´>¶.É?}Tm?ÃæY?ó¿:@ ×ò?ï¢Ú?Õm’?µ +Û?©Í^?{$A?`ø?ø‘@L>¹ß¬<çpë>è +>ûîV?öa°?ñÑ’>ãÆ>ïÓ?e;Q?hH‘?ŽYk?”ÁO?¨äS?”ϼ?º1?¨>û80>‘T?JÿÑ?çŸK?“w–>û»³?·ùË@Ôg?½•?n¿?sw?xYu?{F?|u?«–O?·‡?‚+ ?g…Ñ?²E¶?¼£?q2 ?s¬@?(Z°?†Z?¡½á?¢—ƒ?»âZ?¬¨?‘I…?ž÷u?¹íª?µz®?ƒ).?™7†?îÑc?¯÷Ÿ>w¡`?LE?ñ×ù?ÞZR?¼Q ?º%÷?µÊÆ?ßZ?[°û?€‰r?–ú·3>ú®k>ú¨ ?ú¦U@öÀ?íü}?á®t?¾)E?»Ú6?Ëø?¦À?êX?ìgŠ?»»+?°Yz>úO‚>ûa^>ñ? ¹Þ?lô?ƒjÐ?»†¾?–U>µ_ž>ÎÒü>è;?(q×?yÌ­?³¡@ +¿?çØû?™Í³?us¼?1[F?'`?·Ù?±ú?©i?¢…h?Ÿ=¤?%̳>r¦?oAâ?ºÚD?Ž¹ù?ryÿ?¥úK?ºÎ)?±?€ +?BL=?9ù?:TD?A´ ?žú?ªç¥?ÛŽ?åî?®´1?¢å‡?¢C0?«-0?Kû>ù=÷©¾>õµ3>Гd>ñ¨?¹‘‹?¹A??·E£?È°9@9c˜@+ò[?€hU?„›Í?åÎ?‘ZÊ?…;M?Eô?1Ws?e™¥?ågî?ß3æ?Í›æ?ÝçÏ@ ½8?ìÖ>ßÒã?3ü?o +?÷¦?Á'{?§wh>õÁ ?º ?n2¦?‡‰¤?ÖÍ?Ê?“ +?™?·á?¿÷z?à;'?Îó•l?5 "?áÁ?Ñ€Ï?hü'?ŠÜ!?Ö´»?Ý^J?ýƒì?ï¡?Š}±?‹õ?|Î,?|T{?±ß?)¡>?Áªâ?¾]&?¬º?®EL?¯Ï2?°<¤?vsZ?s²²?´¼£?µö?¸F?¼ÊÚ?öw>?ü?ÞRu?Ö)÷?®\ª?¨yg?¦Ûl?¥@Ý?–*?ØÞ@œç@2!@ @ +„?³³õ?‚c-?J‹ß?2ÉÚ?SˆÄ?a€ù?=} ?&cÔ?§ú,?îÝ ?ÚG?ÄcŽ?ãaI@¬S@ýY@ð?ëe?)l\?…-[?ø´å?Ç%´>÷Ž?Ó›?m‰÷?mU?n"?{‚]?¸p?·ïÙ>ìÏó>ìµö?y÷?€Î›?oÈ?lK$?§¢>?± ó?žrE?œ>}?Ô˜?ä–U?Ð(Õ?Ée]?­t?”ÉÙ? ²P?²fí?ͦA?ò› ?²ÂI>´ã ?=ø?üª ?ü[M?Ù2r?Ô?¡P“?¡|I?SÞ?U¾§@ø8@Pû?ÄÆ…?³EQ@A4@.¾6?šO]>èÉý?â†@,¿¦@$ä?µrš?ðT@!x–?óA??=Ø?Ñ¡?Ähr>­Ê·>¿K?8?=Æ ?An+?<Š?”¢p?Ÿ?09c>æšò?ܨ?/Ã?Û…?¬¦?ŠV(? -ª? µ0?=$?}0Ç@,5M@+&š?Èt?ʈò?³±z?¨M>ͳ =ÿéw> a=þÁæ@¯N@vº@-@ù?d?dDk?d$Þ?s-å?¨ÍÎ?§hd?ªÓÚ?ªÈ¥@¨V@ ʬ?´q^?“‚Z?z í?c0|?/*€?x?KÀˆ?–©Ö?„²*? ++¾?¶?Ûu ?Þ-?«v?ªªþ?«¸?©—¢?Žîû?w‚?¸ 3?õ‰&?ÞÖ¤?Äïv?æÒ?›Ã‘?’Ÿ©?JY?L³?µž÷?¸ú?°\?­¬£?ª£?¨« ?¨[¡?¨Ç?Íä@ Q@[?Ýÿ?×5 >'h>Riù?LH?`98?`*^?`ý?°¬™?ÝŸ?·"?…m?Vm>À>™§5?eæ?r¯t?¦ñ?§§?§z?«A•?Ü-?ö®à?©ç ?»³?*”*?_2Î?h°k?˜cz?™Ãæ?Ý(i?ßu@߀@RK?׎E?¢²?bG>çêk>ã\À>ÞØ„?7?§ú?¥å=˜Úø=ÃA?Zo¡?„8?×02?øÃá?‚ò¦>Júø?x>ÕƒD>Á +¼>ÔzÏ>ÞF>Ž2÷<âøÅ>æ+Ç?ÞEZ?Þ)µ?Ü ?ØóM?i“ ?^K?Rñ¤?L‚h?*œ?\C?]8_?ˆSã?ŠH(?”`?ŒfQ?^\u?`ˆ@?¿/M?Á7¶?«“Ô?£?¨FÀ?± ù?Ž9’?^tP?^sr?^yº?cOÁ?€w?‹‹(?°[¡?®©S?„ÿ?÷Ñ>ëx\>â¹ð?:K?^•ƒ>Ós“›V>¤Š½?¢ì?¦ÿ¤?7í²? ¯T?Ó?ï?«>Þ¨ä?0Àœ?ŽÍÔ?iÝ>Œ\d>¬Ê?<Ç}?@rš>år]>Þ£ ?+ß??¹›>«Ø]=¿²„=Kœ¹<¿b>:ï‘>Þƒ? Ñ?XÈ·?t@‹?ÑÕ?ÊMk?*«?ñ?‚£Õ?†-ˆ>ºZn>!¡? …Ñ?<Úê?ƒÒ>Ý÷n?õ‰?.Æ—?)¯?šç?m©=úÈ=×°;¥$`>ˆ(È>Ýw>Üï·>ÜÞ9>Û)’>Ó\3>¨q%=ON~=¨»y>Ü>Üœ>Û÷t>ÛÔ/=ð°=©4>m¯8>Ee<‚NŠ>·ik>¯›º=ú[=æ\4=b§@?Åf@\ Ä?Âc°> k°>!Ä>:7=q<¸¥…>!‘ =×ÑÝ<Ä•‘=v™Ë=<>:º>î¿Ä?B ?˜™ ?¦L|?Iq±>ýÏ;>ýsÄ>ý!´?8`,?G#9> 8>sC¯>›ß >7t…> *=æåï=´¯à? D5?öïø‹Ð>߬=ÞÇ_>>Ø>÷¼<>÷‹à>÷Xé>Þ¨à>h×¢>’ŸÑ?’`?M=+?œ?ˆ…‡?M”d?>W>õÐL?Ci¹?·ÚÏ?Ž%>ÞcÛ>Ѥ>Äæ>¸'Š>«eá?#‚?žÕ?ƒ<Ž?:0p?@ß'?)¦ ?Al0?t??<¦÷>ÈB‡>‡4=€þA!>>ZÀù>tfð>¿F?Üœ?wp>óy?ð?%ä«? ¡>óu?a©¿?¶—? ;?zM?ÇM¯?÷cC?£ÊÒ?pš?#ê?*aÉ>¿"A?1Í?ÄS#?Àá?­Iž?€ô?$ŠÊ?z½(?²ŸÙ?t0ý>óôÜ>ð¤G>Þmo?SÒ ?“`?5)€>ÜVW>£Â/>F÷>÷ªr?8Û³>ôCå>—Ÿý?`X?S 6?ªÅ>ËØŠ>cæœ=hª?h ö?·%¹?ÙÎÜ?èêü?Æyw?·¢/?¡±è?‘Ë*?_åq?B¯?{>ê'z>í ³>õCt?­L?4c-?UØ’?b7>Nþû<Îþ;F¤½;0>â¢"?‰F=û†¦=Í=4?‚­?¥2õ?N(Ú?BoÓ?,?¡>Ïrr>³2«>¨»P>Ê1¬?\¶Ó?Y—?=J?\4?w—+?’Â?óê[?톙?Ú{¾?·Î°?W#•?€A?¹w?¡¶?o³?w9W?eR?%,>Ÿy‚?p÷?\ÈÒ?fß?²Ýu?. q»P/? Â;?'Ž¢?Çã`?âOB?h¼`?%¾‡=ªÇ£?¯ŸŸ?ÌJÑ?!â«? ‰n?•‰>ýRd:³¬>`z?®ÝV?#Õ>%Ï¿>ºSý?yZ ?Yh? +ež?ŠêR@ G?Òù^?—z‰?o–?(9Ý?;?ÉlG?¥¿‚?„¼¿?À-ù?õeK?ùÿù?÷^Á?R?*™õ?M¬‚?kÎ×?¯Ýë?»¶z>ºÝ¡>Rw +>„Ñ>p¦>Wá±>N;N?&ßð?8Uj?ÝX?ÔX}?zªJ?d„Ï?§3?@^?»t.@}¼@G¸[?ïÒó=Ëj¢?Ee?‡J?Ïã„?â"0?¤vò?yb?¼T?áj?¹DL?¨µþ>«è¶?º•Y?ëÿ´?3 ‰?ÿü?s„?¯y?k®È?u+¢@-&@w_?¥?JwŽ?¼«?ë¬>û˜m?^m?Þmh?áeµ?äX½?"v>ÑsÖ?h½?¼ÌÓ?B£æ> +xµ>¬Çé>ûÌa?Sëü?{Õb?‚BÜ?†\(? nÎ?  ?¸Ü?¼íÒ?Í^ê?Çæ?Ž?šLÇ?7h?42x?MóÅ?K-ø? ±ô? >ÍDH>íÌ? + V?3ü?}Bê?™¤¥?Á$ž?§Wˆ?NJ?†Éi?|¼?|Ä?|õ?Å™?ãЃ?î¯>?ø¹ +?­®V?’2¥>õ'}>±ì½?K%b?Z˜8@¸Ð@Î#?£;? v¸?Y{>×J9¦Ñ>³FÀ?´ß?³^b?½Ñ?«$5?EO?[àx>ü!Ñ? ¤ë?Ñ1?‚ƹ?¼G+?ÄWé?І©?ÁP—?»àE?mŽË?;YS? ïø>üþ?u?ƒÒŒ? VÑ>ü ¿>ü X?ù~@_R@àŽ?iŽe?†Ðæ@µ?ï;Ï?{÷?›T?ñŠ|?ÔÁ?ŸqB?§ÂV?¶Úˆ?}.J>»‘Ê?‹{s@¸¦? ïe>ûÓÌ?‡K?¼Ùu?j*?? g½?U>û¾Ž?õƈ@w?Ôx?¼Ãê?³Ù ?¯Éà?» r?¼µí? +´?Xþ@‰’@%Å?¼¤Í?¿©œ?å?²?ÔVÌ? ÁÇ?¥Q?IQ¹?‹Lõ@ËW?÷/ã?²ö¤?Ë¢ ?öi”?­ü…>üáu>‰¤o=®Ð>£b?î?Á§q@ Üë?פ/?­?'Ø>žw?h›?.t?gáî?z߇?Jt|?86?3µ@?/<>?ÑMÀ?æ5ê?ï(2?ùã?¤«Ç?¤j?h$T?l»\?zx×?‚Œ?»ÌY?³Þƒ?x±n?„Ž?±u?—à/?ðB?3Å?ŠÃ6?™ù™?²8#?€_”>¡2?ŠØÞ@¡m@ +V??ùÑ5?ÒÐ?¦Êë?Ò±?ò2^?²ky?p±þ?]XA?["?SPõ??ð?HÖ?]sœ?¬íN?Æ~¸>ÿ¶¦?0Àõ?}×î?&"@? Là?R¦`?d "?_ÿ—?[ûm?¬£ò?º~è?˨?гê?u)‹?e ??¬þ?|"ð?9x?(|">øCD>ø' ?Íw?ÍÚS?Òòp?Ö_Ë?Ì1?ÌFê?\G? Mã>^8>„ü?°*R?¯~?wd]?wÝq?Íq?C¤?´Ò?²5¯?°Nw?®gJ?¬…?³:>Ÿø>Úåž?Ì÷„?ÊF”?¸åë?Ëõñ@Í›?Ûd°>uþ¶?"Fý?ö?×e?uø˜?m?JÔn?}«y?ÔÜ/?»g?[Í8?û+?â®]?ÙUz?·ó?‰ÿ=—ã? O?ôõ ?õrè?û°¨?Þ™‰?„  ?˜»l?Èì?»^ª?’?|JØ>ô04?g ’@Ëñ?ýÔÈ?ÝËÝ?Ç¥ ?ƒÿ•?}q ?sƒ?g ?-Ž?@«\?œÜ­?¬üü?⵩?ÁŠ¶>òÖÔ>î‹æ>»Ø„>ç4‰?’ä?›l?òMï?åëÚ?}ø«?y"æ?l…ç?w°c?µn??²Ñ.?s(Á?yäá?ío)?먬?‡ÐA?‰æï?½?À€n?<¢M?4´?«íÇ?´kÅ?[„?L…ð?ÿ @;å?Ë??³ùå@xf@$m5?°ªš?o’?Óù2?ú2?Ïjí?µ ?§ÌØ?©P?·Þ ?Ãmw?½zÒ?²îi?—¼å?n[)?§i?î*ù@ oÊ@18Â@8 ?mÏ}?”)²?ìœ?ô{/@?š@[X?yÁ?zºí?ZxÃ?UÇ?v?hÙ?h—%?lho?ô¸@O9?Í0¡?¿ª&@‹@@$Pº@§8@èF?ä·µ?̯Ö?œ¼F?k Á?çD?°0ä?™-ù?j³M?:6N>§m?¾?“Òî?•ÞV?‹F£?ƒ€ ?‹R?¯N?ÖWÅ?Ý2ì?ëû?ê¦@#ÖÊ@.Òµ?ß-Ì?¬WÁ?X?’W?P ¥?uÕ?³Dñ?û{?ÊyŠ?OÄÎ?Ž‰7@Û?í·U?qàá?wÛ•?õ™Ý?îª-?p¶?g!\?¹Xä²j>äô>åE¦>éù>ï9¸?'9?«?¦û®?tE?v«Ž?¼Ž?Âë±?ŒPL?€J@¥ @S¢?±ü?Å{?|ÈÅ?Ì5Y?Ä`¿?¯ø?¾9@&@ +?/‡?1V?žðX?©«2?ÃCX?Îö?æQe?ùÒ?–Sô=Ûy?$:3@?ð?3:?(Û@@jæ?ë?â°©?º$‹?¨¾~?ŠQ?aè"?‰2À?®ÿÎ?—©¼?à9?!b?=ëü?8p8?b|? ™r?¨îp?ÁR×?“E´?€²w?…¯—?„áü?™H?¹L6? ÿ4>ì„D>â·?¥î%?§º?¡ÕV?½?îYÛ@ ¨ù?Ýô?¢Î\?’ü¬?{Æ£?stB?_9Ñ?c‹?ÅO ?Ƀ\?¢ ª?ž‹‚?Ýú?e&*?_Ó}?^ëB?šÐ«?Ý$P?ÙÛO?Ûb\?ã¥S@,ôù@'ç0?­Í?œnÊ?µ&d?Áë‘?²o#?#)?•§Î?“©_?ÀÔÒ@!m¿@ ´?^„Æ?^{?*R|?*Pæ?…£ã?™#?´Ò?ƒVÌ?›˜n?³¸U?³?Ï\ë?ÀÁ‘>1¯–>’Å?ÉtŽ?ljD>Ä<8=§¹±>žNþ>à9ý?\"„?¦Èà?` ¦=sÝx>¤üŸ?«Ì1?­\?žãn?†?›Œè?™ýq?'{1>Þpô?ŠHy?ËF€?­Tq?…›?‰Õe?Fó?Š¢–?Œµ?²î?kS?†È×?M[â?99>?RÖ8?^”g?Bì¦?.^&? øå>Qyµ>ï"Ð?Þ©?Û˜Š?£?¦:“?iÚ??^¹`?^ª»?^¼?T’Í?Gþ>öÔ>]ìw>ø’Í?x9;?^œÿ>÷w>°š?Ë9?ÉU×?•–Ï?ŽR?pä?[Ô‘>éÓ>€Î +>ò£œ?7¯?è(> + >3ž>ÞØE>æüb?É? žu>C]>=Ôé?‚h?¦ä“?§Þ?¦°?Vªó>Þ»ç>™¶—=ê¥à>4åš>²~>ÄÊ=ð {> 4G?~M’?„Ñ>.9¶>Û–Q?+ïG?.ì®?N??ù[>õ×y>nÌO>Y»>²l>¸ø»=dX=æâ:ä#„>¤Zµ>Ýe¨>ÝF´>Ý8x>€Ãc=b×0>œ*?/¹? Ã=÷˜:>¾Ï>Ü[8>Ü;=a½> fÃ>D“e=Îö=€‰Û=ýL=š!Œ>·†>·Âª>ÝB€?>ªz?1,;«±Ì?Ù;¹@g8?ÖíÖ>¸XS>«•w>žØ=A¯z=PØ>¼%’>¤Ì=´ò>Cjï>ì“Ñ>ø¬q>ÿߧ?=R´?4„?£8«?¾Úx?\ÑO>ýÄâ?v ?<È?œæ1?ŸÞá>kÄ>úŸD>üS>÷¼Y>úµÍ>ÍÛ¶>ÙG?dºí?lX>ùoÑ>ô,4>çzë>Þu?>ø‹·>Ô³_=ª†Þ>÷½¤>÷Þ>÷[A>ݽ,>Ž¯ã>Šk{>å¤>ó ‰?ÀÎÆ?’r|>'L>ÿÍ >öÖ±?é…>Ê&R=¿>õhm?™wI?“ ü?Œ¢ô?}SÚ?iÛ4?0f~>WoË>ônÁ?tmâ?tZ}?tIÈ?$®æ=÷ø±>gŠJ>î—+?+ ?l«Ê?†a;?ž?s?X“K>éÓ>¡Þø=ó>…åØ>rá>XUž>‡2ü>¤×m>ºªm>ó†ó?IœÙ?Ÿ%?pKÑ>ó„c?0@?w6?ȹ>ߪ>ŸbQ?«œ?4ð>óŒ>ó‘¯>ó” >·£^>U²Ð>ðªL?K-ü?¢J¨?ëÛ?ÓÙ?¯]?“ãk?r "?÷ð@1$ª?Áä»>óð?"?79->®æB>ae>‚Ø8?Œ?.>À,>¤f>®d>ôn>; ý? £?r Í?& Ü?á?Æý?2Ñõ?vº·?ŠcO?ȱÍ?Þ‘¼?vé—?4‹º?ˆ¹¤?”f±?fPÑ?GÄ+>€‚=Ì‚>Ð88>õw>þý>öÐ÷>ô*>虼?[Ç?bF=‰ +‰?‡‡q?‘ï?w‡ª?u´Ï>çpw>Ý?‘§|?ˆP.>¿?û>²Yú?3ùM?-`?vÉÕ?†%ý?¸À?ŸÀ1?"Ê?6Jæ?IÏ­?‹–?Ð2H?¸˜¢?•µ??±›8?Э…?´©¬?¢Ëæ?“T¤?w·G?H‹ +?é1?=:e?pÚ•?w:Ð?weÀ?m‹?`·¼?(J6?»¸?= >ø_Ù>‚$š>IWd?ß±›@ Ò?6?Š3m>t©>&‰>êãó>øæZ?e×Ñ?qÞ?·#Ã?¶"@?t˜'?kòÊ?„™?œUÒ?ò’j?Áߨ?%Ø?&\G?v§?d)«?åïÅ?áÛx?»F€?chI>¥Y?PhÁ?Ï4H?Á<ñ?²±«?^¢>ú G?’Ó?ÀW8?H¹E>ú6>ú=s>úH >õåÒ? Øþ?ȘX?ÅrB>¢Í>‘Äj?[ÂÉ?Llò?4ÖO?Gɨ?z®?}P]?‚~Ë?2-?»ý¸?…ëî=·)@?€‹'@&Êq?ï³w?:Éæ?©~?Òs?Á¦¿?¶ ¨?ƒõã?6Œf?qÆ¿?L?lÙ~?ZzÀ>¶§>&ª?|‚£?ŠÕ?€µË?{o?{v)?ƒÃ@.L@ü?gíL?lZ®>û—–?f+@×?ïâç?=Ž?R¥?ˆ×³?Ž½¢?”ë?š ? \?±Ÿä?¼Ü6?¶ÿí?·Â[?UV=>ûá&?–Y‰?·Þ?ÞE?äªA?™ï¨?b?We?Z—“?ÓÝ?ÕOÖ>z§>}à…?Ï3?ñp>ü¼?ûŸ?_«°?1FÒ>à½>ÅM8?vF”?—"?¼ïÙ?ôÞ@kæ?Ð-Ÿ?|(x?¸@-?Û…?¹b±?§CG?‘?‘C??Q(?E~?ˆß-?™¢–?–,?‘Ge>Çt#>ÉD?Ò?©P>¼->²NE?ûÊâ?á²'?s€7?—ÈÚ?ô«º?ñúº?ïO?¯?–?"˜f?:¡ ?M~?Ö>æÝ?iŒå?›ð?Iô>”›?G¡f?l’>žªH=Óx? 0? ?­Û¨?½I?îY>ü~?v.Þ?tMu?“Mg?¢Ü^?ã­#?ÖC"?±í¬?šYÙ>²ûº?5_?ÐN?¹fl?Þz?§Ø2?âw”?·—Ò?{ô?†ÎV?~Ê?4d3>Ñœd?–(‚?ÍÎã?ª¡?½§Œ?E›>ûÐð>mU>v`¨?½?)öÅ?3¤¿?=RF?Fõâ?P•z?O £?J™V?Ã%¥?Í ?€2F?€9ó?H“F?vß*?Ñcþ?Ï ?Ì£?¸²?‰ ö?‰¡m?‹?šj?º‚e? ¾$?zìð?tŒD?i©ü?‘âˆ?ªh•?¢²·?¦IG?vÖ&?F ¶?nîi?p’9?žõ¦?©s ?…Íd?zðÈ?zç$?zâz?z×Ì?zÒø?Út¾?ßaÿ?†?gU??v‹?3?2H¡?(™É? Ö?…ó?»Ùv?ž+€=heÌ>ê +?òbÙ?ÑÕä?aƨ?ø?Ù'$?¶„\?yÀÝ?q ‰?H]?”h?íßj?ß5µ?¿Ìƒ?…×>ùϳ?«Ð@&?ÿté?ؘ÷?‰eÅ?Žµ?œ'?ØgÐ?-§o=…˜:@ý½@Y®-@ˆ?·gN>ÌØ«=¦|p>Í Ÿ>ùd?™*¢?­~?Ò ?Öq?†°>ýÑä?­î??ºyC>¡WI>hR?±„?ºU2?ï{z?켕?…IŸ?{g?½¹¹?Àk•?XÓú?Vû>÷ò¡?ïö?ƒÜ€?s€?ó‘?×e¬;iÇo> 1?wvé?dž1?_r?1œ?¹lO?¯^š?‡U?~)h?9Y®?eÐs?ªP>?ž K?’&m?;-?¸ó°?Úr5@ÏÅ?÷î›?3?j"w?ŵ?²É.?v .? í?¸pƒ?¡13?Z‰ól?9@Š@4 "@(„‘?qªG?† ½@.Iª@)÷¡?ªüÈ?¨˜Ã?,üx?3?¶>öVò>ðÑw?@C?Kìt?oø>ðnê?œÅc?®;í?´²?´ ò@#8Ô@7£?³IÝ?o¦z@Jø@î'@’@ ¾X?Ï@>éÑ?Ç ?<³x?•§›?Ä ‡?Ÿ³à?yÁ?²šý¢">òZ$@ è@à¸?•©?tÐß>ŽBG=Ê».>³æ>èÅ/>üMÞ?Å"?–?èV?˪?žâ?«ìÇ?ÑÞ&?Ý>9?øEy?÷Kž@ )Ú@ "o?jŲ?g8µ?õÁš?ÿø”?ÎM"?½ß@ 'H@uŒ?lje?fd¸?w'T?ƒ¶à?³Kí@Í¿@4B?Ï|…?áë@/D@2Û•>ï(Û>åSv?WŒÙ?e+?ži?«´b?«žy?ªlZ?‹XÌ?^!? ŒÚ==ø€>•>Ž?ujÁ?Z­?Ÿ´ï?žãs?Õ“\?Ôlu?įŽ?¿“À?çA ?ý4U?«=_?c5ø?ÆK³@El?ôþi?ªÎñ?Õ@9¶Ž@/ó¿>ˆõ>l–?t€ ?„¢?”ï§?™È?ˆHF?‚—?oºP?DEí?t˜¼?°ýC?ð@ +}@zx?€ªÓ?n=Å@ó­@ Äg?Ä%l?¨Ï?†™?`ñK?¡VK?Ú<½?¶˜È?NŒ?N"ù?`’d?aJI?‹¦?ˆ¡?^ û?aVñ?Ie¡?4÷"?mÎM?°B?ž¿?ÁDN?ºÅ?Šõ?‹þ{?¿)³?½º´?Èñ?Ì}?÷Z@ˆ»@7…@æ¡?ÛÚt?œÍØ?™À”?‡cŸ?v6>ß:ª>ß/m?ñ†>ìpl?ºFÂ?ßÏ?šÖ?^þ¼?4Å?it?L@r?®.¶?¸é»?üˆQ@eÊ?Ô°?ЋÀ?Ï?ÍšT?¿ ý?»Ý?œ*?Kx?›¨*@;ý?û%,?^™Ö?\š(>€ÿ>… +W? ×?˜?_Œ"?†C?¿×¨?ý[‡?ÈZÊÅ"=Šä>aRÏ>Çk—?3+?¦Ú?¢x¢?vˆD?yª?|Ö²?€>ªÅŽ>b‡?ê€@0OZ?Úç…?#ñ¸?o¨?Á?±Œ?^™¹?_:|>ìMŸ>×[¸?\·? ¤ ?2ö?Güƒ?ü>€EÌ?9ƒ9?µ”?ºµM?ÚáV?É ì>ÞÍV>߀ >ä‚B>ë9&?‘—Ù? Ÿ>?:D–?]>>Û¶©>©,`>Ñmä?NX? °>>Þïš?{0?Þög?Þ*`?(F ?/ä3?‡Î{?g]?PÑÕ?Û>ò_ª>ß%>Æuâ>¯Fl>Ã:>ßp? Ÿä?™/? ¥·?Ý.7?Þý=>M Ò<=r`>»¨G?AA>n÷&=±Ü>ÇÀ?/¥_?'ô? ;>ì*X<Ž²Œ>»WÙ>ÊþÂ=]*>£ >³ >ì¹?ìÂ?/…?Aªr?E¨v?I«o?ƒ”=GÁH=©Wi>Õ{á>ÙRÎ;Ãç·>¿§Þ>ݱí>Uœ=uDd>èÖù¾’>ܶž>Üw2>WªJ>A´>ÆìD>܆=ü55>7;Þ>¯›2>]¯æ<åm<…+T:Õ +@>ò>¶½–>ÄÒç>Ùˆ>î—Ž?´?zý>þŒ>Ú2@ü'@˜û:@1ã?Äz?¯ƒ>b = Ó>×v9>´â˜>¿C?Æ®>­!<™"V:^I4<¹@?B'?·ñÌ?{?5Ñ?p¬>ý»`?A+‰?fȹ?sÃ?>V>´Ê>D›?–§—?ªBD?(b? ">÷=¬ÿn<övÄ>ùnÓ>âÌx=i·Y> 5@>ø~?"!R?¨° ?ƒ!ï>QŸ>Ýÿ>÷_~>Ôk„>8ˆÓ>P¦>³ã¦>‰Bô?r`?õ€#?´²>õÐ>è2ë>Åz:??<´?·ßË?Æ1Ü?ÜJˆ?ªÁñ?6¸ö?D¨—?Y_=?M¢?QÀ­?MF?H…Ð?ZòÐ?k£? ‡B8Ÿè?ª?±ïš?œmé?…jú?œ?¬QÙ?Ž_€?[Ü?'ƒx>ó¶®?(²Ð?Xß?^×Ü?s ?<ƒ!>ó—Ì>„Q}>_Yæ>ó”ô>øÄÄ?.f>‘C–>­ î?+´>Ð0é>DÙØ>î]?5yx?.ÿÓ?(†?" Ö?“Ÿ>“U1>ïN\?l8?23£>ôW?JœŠ?ãu?Ú=ñ?Y«?N˜½?¬å>!>Åj\>ô@"?Îï?6’?!³?½a?˜û>ô‚}>´„>xÈ<ˆÑ`;¨€<ñ¨@=KR ? n‘?[%0?kô?u·?›ß?®në?eøÍ?4Cž?µIq?ÎMì?3b?ˆ©?j”>õŠ±?œo?\i?enY?t©¤>N"=Y}?cÎ?vŽ?7•??&Án?s9_?w»„?Úýk?Φ?vi²?uwµ?€ +_?‰Óë?“œ?¥V¹?äá«?Û×&?w›?H-=ªom>Ùý)?¥@©?…þ>÷ÿ'û?Îðª@¾?»&?x?Ò?få²?XÍñ?Rn‰?L ü>; 7?NúD?Œ>ä?;D>øʱ>øÕ~>øäl?ÌZ? <ã>ù Í>ù%à>ù$\?%h?ð$¸?Ù“•?yVò?wÕ|?ƒdG?…j~?JQ1?Ÿ0?½¸»?Š»É>Ñ5°?>~Y?§}õ?pA=>ùá§>Œ¶V=hÜ·>—̓>ú§?k?·Ùf?Ñ>CO?‚ƒ?žòæ?˜»0?’†Û?-Ѐ? @+ï@‚?b?=?§²ó?ù7=á²Y>C]?[¯?Ž?¶¿o?‹<ÌUP=pcØ>ð>Î?¥W?_¿€>›Ÿ?‰’?cv?u{E?{8?ç?–Ôr?QÞF?#ù ?M‰´?L|?Õª?“i@ +¨@äû¥,? *À?NÁ£?Œ6@ú?Ø>È? 1Þ?C’•?ƒ9ÿ?Sžd?´ +?Û¾?ë?„HF?·¹«?Z a>ûv—>ûòý>û÷ ? d?"(Ç@NÒ@W?Zz?'.Ï@;#@ Qé?.th?={W>ü`? õ-?`?ˆ?0'>¹*Ø>Ä€>ÏÔÎ?,Ñ?|/(?Lö>û'Ì>þ’D?à>Îìâ>¥ÎÊ?´}¬@ÙÃ@Ó8?ü@ç?íš?ãKò?Ñp7?Á\T?&5h>Ø‘Á? ψ?‡a?}… ?>az>N%º?\{H?v–?¸(%?¼·.?½|'?¡Ž*?šR?YÂì?ÇÒ~?¸¥?žä?‹yn?QÀ?c´Ž?|J$?G>y•¸?69ñ?‰[)?yʳ?N³¬?Âsþ?ìÓ@?s%»?'Ñ?±æx?Â3&?»]¢?¼é5?ØÜ>ø=Š=|è>én?1ã?8…c?ÌIÃ?¶ù.?&•†?Xˆ>\Ã?:Ð?hü¤?‘Ý0?Ÿ¢¡?½ ¨?¨¨Í?Ÿf?ž±;?°b•?{x?ëX@:;@§ò?ûß.?\‡ >ûä•>æ0F>×e?RË‹?_ÿ+? >ûÏ>ûÇ>øæ–>ÏÓW>éY·?¨£>ý˜Ü?4÷?/Ö—?+?V3Ê?Åå°?Õd…?î]?ß´ð?¼¡Y?Ïíl?óÕ©?Å]ö?{›–?:=(cè>Ÿ”ç? */?¨¯k?ïn?ÆK–?¬³?×âX?æ?©y ?—¿?È÷e?ÚPÉ?¨È ?™Àˆ?V‡?Kr]?v¹u?zç?ý¸ô@r@ ÍÏ@ 9Ø?â?ì¬Ø@ +@vù?»÷O?ÅnÛ?øo«?èc?¨†¬?§ƒ?’º?ŽŠ?¬³Ÿ?˜©B?q‡?…T)?ŒzT?¯‚ ?å1Œ?§p·?9ùü?…©q?±Ä?RP?)û>íVI>*?ôj?BÀŸ?g]ô?y¦'? [>[±?6ž ?yx?ÕÓ„?ú?ËÁà?ºöF?*nÁ>Ù;c?MXÉ?a9?…ê ?Œ… ?ý\?¤lÖ?¢¼?™ ?¶¥ì?ºˆq?Kø ?6"g?F£%?X£Ã@¡Û@ÕU?Ï/‘?Ï ð?`S¿?T³$?I?;CÇ? Ë?-zÕ?ª^1?°Ôe?¸wW?¥êp>÷P?:†?ðÃñ?öüœ@ `@ +ˆs@´õØ:?<›@ï?îê ?uŽû?¤mc?ôS?³þÙ>û*E?-¿?un?¦'«?ôõu?̲µ?…3³?µóá@–±?¸XS>Óf©?£W?$-?[Ù/?žÂµ?O?›J‰?¬N¿?Õñ~?¹"ü?dX?y*K?Ÿn„?š¨¡?ŽÁ¦?—&©?¥Ó¶?·[H?Þ(?µ9¬? e«?]ÙO?ù`ï?纫?®ç]?ßCb@RÑ¢@?D?µ‡?ªó7?†Tâ?ŠGÃ?qÀ>?w_¿?Ÿ”?§ˆ«?µ †?´¾?”ê?”aQ@õª@ó¥>÷ðè>ðºc? bÊ?ŸêÕ?—ª†?–Næ?°9’?´¶?íóË?ü?¶ì”?¡“ã?¾{?ËúÓ?Ú×?࢈?ÆÐH?Àj ?àd?îôž@@e?é~Ú?µ‰‰@{j@2¬ @ +óT?³ˆ?‡ª?¦?P¢ä?«ñ?»1?ä<’?ë[Ë@üù?âŽë?3¹?dµÒ@ øé@%úû@ÍÝ@vn?§^œ?¨¬?±Gl?±­@ +“v@u@âs@lF?i÷#>ë…?@³!?kLi?­ :?Ú›?Ôz%?Ï?ôŸ@¬8@ â·@›Ê?ë´–?twô?\…¤>ê1?Öv?¯VX?®ìß?lÝ?s²?ÚaÍ?àM ?zÌò?L?û @‘ ?çÿå?ÂI{?Œ‘?Q”?Š¾w?®.œ?É‘È?÷õ‘?í{é?Ýa¾?ìo¢@6×@ ô_?ghÖ?gMé@úr@”T?Ð×­?É¥”@l[@75}@h›?Ä{!?´Pw?¬¹ß?ý ?æ.?¿_1?E¶¦?@ïm?"9?¥Í>úS>ï^è?^?e5÷?þ±0@Ì?f¯?X??™Œ@?×ͤ?Îà?¿úg?¢óŠ?dF#?–ôT@RÎ@ Í×?”S!?–ø´?™ž6?œ>ê?Ĩ?Ë•]?s?&ˆ?Ý?¯|?²Œú?£Ð?µ?ûן?æF@>û«>}.?;‘?ʆ?T'Ú?bB/>È«Á>±?•5@‚,?øÿ²?áËú?ßy?Ü“8@”Í@}µº@}?}=.?lL?²¦?¦¶?C°`?a4?r—«?„dÉ?\Þ&? È?hã@ £í@Â$?‚nW?ƒÅ¥??Û‡?3ÑØ?Sôž?`B7?ÇNó?üáé?¯Î?-ø?yø0?ÕX¯?Ó~A?ßÛg?ßÎg?º˜¶?·|ò?¿ÛÌ?ÅÜ6?È¡‹?Ëlü?—™ü?B|?™&±@ÿ?ê þ>åŸ>ë4o@ +÷è@ ‚ÿ>´í=€ø¸>²ï¡>òÜ?¢^S?÷ÖD?Å©y?t1ð?{p¨?Šuf?‰|”??µJ?´!?˜å·?Œ:y?‡ ?Æ\>T×?%¢s?§1? 3D?†¿?~dÚ>¡}ç>•ŒA?4?Òã?)V¢?"¸>š˜_=š»À? b2@8Ëõ@ ·}<å»|=„‘h>âíq>ÞŽÜ?¡Jö?¦êm? Ö×>ì >Ù½>Ä–È?ŽCÀ?ïÅ?áü%?ÑÕÅ?²¶>~C[>ŽÑR?g[?™×?œKâ?Ÿs?ân`@ÍÕ?¯Å¯?" ?h}l?²aü?¯Ú?•"}?‘&o?—o5?™±?d€–?^Æ©>ïî>Át,?¨‹ì?æÎý@ +Ok@%ܽ?í>Þæ@?¢a?£P?Ÿœ+?œ1*?˜Ë?ž? o>÷zê>ßB?"?;Óý?\JÞ?z‹?sü?lÁ?w6?È]?»ý>@>1ª|?*`?9òÔ?©Je?Á4’?R—–>ß,0>€g=t[­>Fp¢>ß/>ª…;2 Š=ÅhC?_5µ?ch?T‚®?KàO>ø½ó>ß%£>ÂÅ>­_ö?#CN?_S?_v?_5?/Q+>}¶L>Ž£P>ÞNk>Î…î>¾­é>®Èî?\½?d>w—=Ý]?Ê?*‡?â>Þm>Þ:>ÞpX>¦i!:¦ö=8zè=ƒb«>¡é®>¬=û>y·Ì>„Ó>>Z>&©?>»:L? Ìð?– >Ý )>Ëü±>†Ü>’°>Ü“È>Ün\>×Φ>¨õé>( Â=Ãúå=4bA/¨­>Û<>Ù›&>ÑO&>È$ï>¾ô[>µÆK=Íšo=Úˆ=þÃö>ˆ>£ >Ù +@>ý +Ö?"ãq? +[@yã@„@&?‹wm>ûüA>Š¦6<ä"Ÿ?3a?$?,>•ªé>J Ç>&þÏ? Óä?É+?k?7\ß?p[p??Öj?(©?OÆô?]¢‘>ÂtY>4Úû>M¾ÿ>f¤¶>…C>Œ/ö?!â?)Ct?09?=àÕ?xå]?z­I?zgØ?oÜ;;:¤q€<ûcb=È‚_>Ю>Ë­S>ø‹™?+v?‚?z/‹?Jó?ü ?0—?io>÷ †>±šÕ=9B=éÓ^>N͇>ö&>÷(A? )t?¨d>õ¤>õ…>õi®?“?PbÅ?TÇÁ?^†*?†$|?•n¤?¡’R?·?| ½>»À±>„8+=x¥Ö>u/>ù±†>Šrã>]Ñ?)W>ã«‘>kGF?5j?¤3_?}F ?%\²?5yO?/¼?YÉÖ?Ñ(?2?Wž§?$± >Õb">x y<ø°9zè<ƒä=)b8=ˆpØ?¿?‰»?{—z?sª—>òîè?7Ö?®Í`?s+Å?#Ò?A·Â?XϹ>åJï=_ÐX>‹s>óç>óê>óõD?|>¹·?&ey?€X>ô;'??D?a¤{? ‹Z>šä5?2šÉ?t|™?1¤4?òa?ÿ‹-@6¶™?n}¤?6 ?MŸÝ>½”^>‚²÷>œÐR>¶ò?å–?5fÞ?Ÿ¸:?­gL?± +?¼Í¿>÷Y«>E–>Úl)>õŸ ?`€Ø?uuÜ?°¨Ì?´£}?e½ö?LÞ™@Æ_@÷‚?0Ç?)¡\>Ôî£?h[@ ¾D@L ?J†ä?HÑo>¹Þ>‚Du=¬ml?g‰?@›y?õ…”?»2X?,“@%ï@E_?OIQ?H×ì?Bk?;û ?5Ž"?:C?3zo?§Œ"@â?µ >ÑÇc>gòˆ<Å¥?°¶Q@Y1?€dþ>~„>b9D>Lϼ? ×?ÑøÕ?èù]?é¯Ë?W8>p“5= Q?äb?ˆ?2ñù?(¸?’)Ñ?ˆ$O>ùì?ã;?ôh?Іý>+]>ʼny?^`?Ž2>ù‚Š?J*?ш?²‰?¢?š?LA¿?cTh?yà?{ný?bÏ??<[ ?A2?g.>ú#\?Ry2?‚^Î?¿yµ?Ì?d?˜Ÿ?Žô?’ß?•8O?ŸÕ´?°"?MßN?Z¾I?´ÛÚ?»l ?z¸ ?lÔ8>úÉÌ>Ð>H:@ç4È“ø>pØ>éž+>Ýdº>Ñ.¡?ŒÔ@¶?ÄN??p«B?,R*>ûûñB?óŠ?ø _>û¢Q?Q£?` |?gSÜ?•Df?‹Îî?{Â?…¤?ƒ·?{·×>ËŒì?Œ@?Ôã?{ê«?q6"?l9g?|sÅ?€¢>³;¼ï@?.€¹?o3³>ˆ¿%=Ã_»?S+@?†õ?[Šâ?L¨p?µx"?ËÙó>u¢°>™rd?Š +h?™Ý²@ú?î¦P=Ú1¡=¬êÇ=`¥>¿r?€yã?R¦;f5>è¥É?p¸ž?D$?›>?NÁá?)“N?Žš?«0?u£Ê?`bÒ?¬Aç?ÅZa?‹ŸA?|\?ÊP\?ÏÓñ>Ö5°>°ª`?Æ·÷?§yI>E-á>>ûÓy>ÿË!? ¦°?KE·?¬Êã?À«?îŵ?®Ó¦?$×?t0x?¤ÿœ?¢Xš?Ÿ°S?Ne,>ü[Þ?_]?ƒô˜?Öß0@*?Ñ^?½@ñ?½>?½= ?ð;Ò?ú;o?‡'¾?}4?výO?q:Õ?\Åì?_ã£?£1 ?“‚‚?Fó?QG´?MÔ˜?†Ó1?п? ®Ê?9’Ô?^ª¦?™U1?à@ËŽ?è$á?½%?§ ?‘ú>ØÏö?¦Ã·?û–? ÷=‹i(?½!Z?æ¼?2áB>ûñ +?¢Sx?¬!s?\“ñ?Pšù?KÁ^?H¼†?L£»?QÖ?¸…É?«>Æ?{Á?{¸å?{´—?dG?òy?sü…?ÛÃ¥?Ç'Å?±^?z*?yŒ?ðõ"@:æ©@_g?¬.Ž?²‘=¡Y0?œ¾Y?ûWñ?´vu?ä4?±I¶?Å"?l/?6@¢?Â}ˆ?ÚK“?À¨÷?¼P°?mr?Q[¶?Œþì?ûI?{Mv?z-Ø?g1i?gÛT?ú?t>úÂP?"Œ®?¼!?õ?@pÍ‚@>Àž?"=Ã?Á¸@jX÷@9A«?»Îé?ž¢¬?N„?oÏk?—ƒ-?²!Ä?Øí)?±@Õ?z1?•r!?³Œ+?Š²?,¿ª?Œ=¹?ªU`?¶>/­?/#?y·G?ó‚ç@ì‘?°ÖC?y‹=×°?wàJ?Äm@oSÉ@]Ë@3Ž¦@d™?™z?Äè¸@œô@ó ?¨\?£lG?¦ò±?š"t?Eš?x­¸?¹)-?¹ ?¹Ü?«ð{?‹É©?‚D¸?v|L?K (>á˜^?&Ýý?ŠN$?Æ)_@}7?ݺè>õìq?ˆè~?þ×è?Î6?˜?E}e>öɾ?-äl?nßØ?º9é@0§?ö<¦?ÁîÍ?á'@ªQ?ßö?­j”?Žb¿?"äp?ƒŸö?ÒOè?Ãi+?·0i?Ã/0?Õ¹?ÓÐ ?Ò¡?Ùm?æQ²?Õ±u?·?Ìú?`+ƒ?rûC?•*l?ÁÊ„@%@;7?d?Ÿ|ž@ ë{?éI>õ:ì>¹ði;°þ>#üH±\>Y$À?Ï$?Ò-D?{ÑÀ?{oë?€Æï?ƒÎ?›+]?žîê?ä9?ïÑý?Žq?ožz?¥ÖÕ?³”_>ân9=Œúf? Ž_?éA™?ê«C?ìë?î î?î ¹?ÎO9?´ Þ?µ!¡?²ªH?|÷>î9?yìÞ?äˆR?¶UÎ?@ ,?æ?ÐQ9?©áÊ>~ +>–Œ ?‹s³?’<Ô?Éo ?ÈÍÊ?l‹Ä?lq?kdŒ?rbÍ@ +ëN@‚®?ÿVÐ?úge?ŠJ?Bój?u Þ?†?ŸQ`?°d?—S ?€&/?Ç@ÐÖ?ÛÞ?`–€?…D«?±àÌ?–á@>êÒ>êÅ>î®?Ôý@(¡S@%ÀS?‡¸5?ƒ±±?—V? )P?³M?ÕäÃ?§Üè?”—?Ú»¾?ÿÖà?¿L‹?‰€Ö?œÔÁ?¼N4?»j×?­ìS?Ë3+@• @X®?Tõ?‹éÉ?­Q?­c1?yQk?c‰ð?‘(¾?(œ?þÐ@ª?ô4ð?·6 ?ǨB?Þ}Õ?—™À=žL¾>²B?¬U_?¬Br?¬/µ?«ñ3?fÁH?eK;?©y1?´3$?Í«?ÐB¸?A/û>™tæ?cEN?·³?ž|?dZ¨?“?¸Ó£?É–µ@<æ?þ7>»ÔD>ÃMÿ?t<·?Š1Ë?L¸?'Ì,?Âì>šµ?Šxû?ø©0?Ó0ç?„O»?dÞ>¢( >¾F +?™…æ?•f$?›•?–x˜?X±"?GÈ#?f°Z?q~,?§³?à¼É?«6>á¼#?,?¯cH?²œ›=p‹]=£Ø ?>‰ƒ?Q‹Á>¤4l>)IÒ?J§·?›n?¥×—?°´6?­‰ø?»Œ?¸m’?`>?`Â?" ?# ?³ +­?Ã"s?´zÿ?»M?‹’?6:?yÙ?Þ7s?ß?ÏtØ?Ñ•?ßÖé?ßÍë?‘”Ç?‚¶ž?h‘?_¡w>Þ¿k=qTS>¿&L?aP²?_yL?_aØ?ƒ±¾@B N@@°8?€ß?I±?‹{Í?–†w?ª„i?½ëâ?Ãiù?¯b?”×>ˆ¥t>ÜQG?²Á?«pû?`åJ?^àÌ?^Ü¿?^×ˬy?N?t3X?—2¡?Î?À±t?Ä“?|ç>­ü>:ˆ?„ºD?ž ?7>Þ¥è?ˆN?Û¼n?¦mz>à$ì?Ód?¦ð?¢ªn>óc›>ÿ`b?Hþ?PAá?¨½ó?¿¹z?¼i–?ÁÝ0?Ïl/?Þ©å?×áM?³—P? ^F>Þ±„>Þ´X?éö?úy ?LõŠ>÷³Y?<±å?^Å?^Ä?^Ä¥?}®?ü³×?â0j?^Óy?^V?N-ù?Q„Ø>‘Û>~ +?í‹g@&´‚?ÏH?_#?‡¾¿?¡¹ò?„)Ç?3º?)˜§?§Iõ?¦Z =ïér=ìŽü>ÈŸ>ß"? 9S?"Ë?]¿¬?ˆä?|?—?cæ?‹Ã?¾Ð×?°,,?>ÏJ?6Pâ?;? _ö?=#…?IÛ€?³>ßR>Òåy>Ñø3>Ý‘>ߪ–>ßVL>ÞÄ°>Û¨>íŠq>õÐ>ü *?G>㋺>ßQÈ>5ë!>ý{>x^>¥æ>?#¨’?_?¤?>dHÏ>·èÖ?0‰›?4{?8qÌ?:äO=ÿaH=ÕAu?"ï”?'34?¤M?Éþ ?j‘>çÑ2>Þ½>Þ®Ð>Ž.Ç=¼*>³ r>ª=¸=î÷ >ô¨?&ø?ˆ?-b^?35>ÈT>o Ä>€l>ˆ¸ >‚©3>Dy>î>«`>º t?É,`?Ñ?pzŠ?WÊ?d¤>Ûì‰>Ka“<³õP=!Ù=iá=™Û=½6d=ÜØÒ7 ·>¡Õ>Ù|H>žp¯>mÑ>./;@es@ƒÝ³?º¡½>X•™>q\¢>… J>nî>Mº™>4Ú>`Šß?B°S?!*˜>˜Ý>?z›ˆ?™z?¿c-?J¼Ä=ѯ=ÛIø=ÍBô>QÄý>˜Æö? x*?D¡>­À>}Bä>ÎÄ€>ʃ?A;?V‹>5O;=È_?b½q?nm?n‡t?xö~?w';?Sºì<; ´=Ò\l>p—>·->sFs>ø)b?H»?wÈh?]%u?•9?$y¦?¨T>ô >*«¸>·•q?e[y?HpE>ö1/>ö ç>õî@>õÌŸ>õ°B?·?Q€?+«>õ?d>’ Þ>¬ªf?_öN?Š†¼?¦?WT>0Â>‘D>ôp?0G?tKO?n±?_å¼?+µX>ôô?B?,F ?#Ql?*¹b>ø Æ>qB°>ï€j?Drß?I–>®à>Õ¼j>óÁ_>xÑO>o}^>óc>ë-Ì>Þ;?PÀ/?“?õ?Šjþ?Œ2o?`)s?+„?<+>í +f?b ’?®a?>»> ë>¾Ô>óàÄ>óèÕ>óîÆ>óó‡>óý?;:Ä?hç?&Œ“>ôC>IíÜ?$’S?„ °?ªé>€a??s?Š[Ô?l¿?T“?k?t•?|:ï?z„?"¬>þ÷I?µÆt?Ùü5? #>Sýç>¤ü>¥òq=›'‡??°?l€ +?ž%‰?³‹‡?* –>õ~±?M6ì?cÆÚ? +VŸ>õ¸ª>õâ>ù#Ü>þ/>-? +w?ƒ"?I‚J?s)>L">eÜE?==;?/×O?«Y—?²å³?‡Ò`?€!?¬ýc?˜YV=1›>‰ÄÙ?¹6%?ŸËn?‰:>ú3×>ÊdŠ?¿™x?Ì2?Èvž?©?w‰å?w–?w¥ã?žlË?ÑÂ?S>÷àÊ>®Þç>Tœ>—¥Ÿ>÷:>ÿÌ¡? ¥?è}>ÑË?$T"?7u?!Äš?5gÊ?wŽ?‘…¸? à‡>øÂy? +t>óEÖ?…Ÿ?Š`Ý?£×â?¬4ˆ@ñ~@ü¶>ù9Æ?b ?À!?¥§S>0Ú¿?V ¾?;V>ùk?/v¸?™¯÷?i9ê>“~>ÃÓF>ùä ?Ek§?Šy?ô½Þ@1OT@#Oä@é?œ>ú>Ã?Rd®?zTI?”É>íö’?4?'xÕ?nöq?zŽ£?<šÛ?I[¹>m'><àÀ>úÁ? +!>?‹X?{ç >úå +>Îã¼<«n]>v>ôôÿ?@w?­D?“¢“?_ þ?ž¥€?ä-`?¬5?eˆç?Uׯ?;;þ?†"º?£ÓÎ?BÙ´>à;R?¤?Õ‡N?j›s?%¨(?­ M?¼´Ú?‚–A?wk?‡Â?’NÑ?Ú|”?Ój?Ù°ÿ?È~Ý?”æìûé?Wém?|%L?SÛ¥?>¹X>_|r>) è>¸¢>×8;?Á>ùíà?5U‚?Ds?ºœ?Ã#ç?˪˜?¯´7>üW`? w?’_?däU?½F§?†4Ä>ïH¢?6÷ü?|gr?„èÆ?Œ­ ?%Y†>¬M?0?1_U?IØ?@?fR?h1Ë?Å»?“;„?Á‘ô?Íôâ?±ÿ?Ä(J@~Ÿé@{Ê|@ç¨@p¡;Ÿ`0>}*?p¹?U¸=?+Dú?ƒü?Íú?Ü´’?ãÊÊ?Ìx?½Yë?™R©?€@m?=è?Šé›?˜?¬nü??^í€?š%?ªAR?¯rÎ?´¤¨?¾Wñ?½W/@8‡¹@3é=µ†>JÆR?|_©?Ïø?ìk ?ÙÝ^?“-”?Š Þ?|PM?·T2@RŽ@‡€?˜þ9?jÂ?ò„?Ú'ô@IÇ@ZÓ?±R+?ä +&@…Q?9fš?¹[«?¬kÜ?®Hy?“£û?‘@<>û¨ˆ?¼t@Ü?øêÇ?¼© ?È2ñ?Çâª@@gE?oÏ>°uÄ?¡á7?Æ!6?|?|d#?³Î2?Äåg?¾O¾?¼cl?©io?ª(v?»ïi?¼;À?”’À?Œ±¢?ÄÙ?2?õ˜#?ßOI>úÚ\?‚EÌ@TÚ@Fëô@(:@ù®>ú¦?Dö@÷©@ ¼,?åá_?¬t¾?/ž?pj?žŸ?ÝÃ?zK®?³ÄS?àóÒ?‘}s?&±>³ý>x´?ÅÊ®@;¾?·Ø#?ijN?u»_?yÏT?|`=?z;1?«Ø/?¹Þq?èß‘?ô…?J6Ä?µ?ˆ¦Æ?—½—?©àí?©i?£Œÿ?§¨¡>Ç©>Lü?d˜~?sD{?:ÏÁ?+H,?C$Û?MÝû?´ì?Àxª@dÍ@ +Qq@ 9r@ç®?)?!M,?‘³? V>ê!Û?(üü?¹ðc?¹õ”?¸šŠ? †J?D?£2@I]?ýB? Æ??#öÆ?Uë?Çå?m€>÷9ë?UøE?À-‹?»*Þ?¹;z?¤+µ?ƒ9þ?ºGM@Ë?Ôh ?v”?|±ç?ˆ¨ß?°l®?Þ?¡Í ?m?µ&?¥m?¹›@3@Dϼ@Wü@ ì?³-M?OŠI=À&¬>Ä~?Fv?·K“@ G?å +?«~?†ÄÎ?"…?A¡>¹Ÿ!?Žýå@L?ݘh?˜#á?¿~?ô0>?ɸ“?’¢?ºY¥?ñÝÖ?ïXs?ê>?å÷1?Öë?Ú'ˆ?Ýe’?´Ø´?7œ?‰>óê>¬ò<@>Žõñ?r¢ô?.à.>èa"?àç‰?Ãh?` %?\ÓS?YŠ›?i‘?¦ýž?¼µ@ Nõ@_€?ŸYX?¸Ì?œÒ?”¾©?EÒ? «@ »@Ô$?-J?)1á?â?x=ã?œ´o?œŒç?æpª?ïëÎ?{Aè?W“?¯L¨?¼ªt?=˜ß?•B?—'Í?¶F_?²0ò?²ë?Øóë?î¸@?˼ž?²ä?•‘Û?zÇY?nœX?[· ? ,>¨È?6 ?” M?dqÀ>Øx?•ç?fa?}G*?½I +?¸œ$?±¤}?­2^?l§?rH¡?ÚƒÚ?Ñ–¼?Ügr?ä§ ?¦i(?­¬?‚(?fÂ?&?•ªž?¸{¥?Å«¨?È?ÇzG?Úžè?L?ŸÔm>âT?nóV?êk£?êTö?è&¾?ãÒ?ß}4?×òÞ?ÂEà?ÈÔ @Ð@È?n¢ä?N­³?3w?4Ô£?Ê4?êƒj?¶èã?¦9Ü?Ž•I?hmæ?Jt?*Y:?l ?®É?Ë»Ø@ßö@ Ðë?Ä@j?Áfº?­ˆ`?­uÃ?¢Ã?¨“A?¢ ?š®?†>¡¸U?¬†Õ?ü‹ä?Õ‰?±Oòo>÷ÅT?h³æ?sÚG?‚¥?†ì?U$£?1åÇ?…ŠE?«|W?¤QÎ?™1“?ŒÌ?dKÇ?t\n?®É†?²® >õ׆>êÜo?$3)?'"?’¡¡?¡~§?¼RÜ?Æ7?Åe?ÒV?Ô‡?É“?¢ ž>›2->Ùg:?ü»´@_²@%~@—³?ßM=VÞ÷?•®_?à@²?Ä?t?©{±?“ª¡?^¨h?¡³E@"Êö@ä?ENù??É•?›?×}?¼°>©–]?Éù8@×÷?Ø„?—FS?€P·?¸Ø?EWÄ?®çb?ªh˜?bB'?\Ë?Ôª·?çò¶?…N>?+ðä?YêG?‚ÌK?tCV?`"(?t|ñ?šô\?¡‚x?Õ°?×P?߆ÿ?ßÌò?‰n?_ºv?[Òk?^%‘?‰O$?§ªx?·p?Û¤“?Úáÿ?í¼º?ò?ÑÝÇ?Í+Ò?ˆŠk?w*#?˜åq?§fµ?‡ëS?Z_?J’Ô? ~°?Ay?öš…?÷Ld??‹Cå?‰Çð?ˆIì?Li$?35·>÷K}>“_ä?G¦ø?×?Ù;Ê?Ààb?»£b?:¿?ž¿?j„Þ?^Ç?$ +ö?6?p¶Ç?§x?½º?Ýí5?ÀS=?e.Õ?]ô*>Þ»˜>Þ½?} ?Tv?»º.?Þ¿Œ?ÕOË?Í~Ÿ?Ã/f?»| ?Ã}‰?ÖI‘?ÕÎ?«QÂ?£Ð7?©•Ï?®ª–>fIÛ?‚O?Çi£?“Ny?^âÁ?¶‘Ž@¥@“?jÝ™>ÞûÚ>Þþ0@ž›@ ]=?Lw¸>ãˆP?Æ?F@O²@*ð)@N—@l›?J­?=‘s?&W7?#(ü?k?uL{>®v\>Ody?$ +J?_S$? ¼„>„'0? ]?¥½¿?«@8?§¬?ŸiU?/Š…?6Ùô?Ñe>ù`›>Ó8¼>ÔWE>ƒÐ0r€>õëÿ?^”ñ?ä=h>‰ëÎ?O¼™?Zz??•?‰¼>߃ó>ß‚U?‰úÏ?ŠJ>lÔ>Ï­À?)ëT>âT>6˜->ÆÜ3?;l?!S?>ßY=>ßOÃ>ßIý>áh?Îû?Õ¯!>ç’<2"9?s?§Hk?™Ý<¿>RÆ{>ÂJç>tõq>$Û??™ê?,6?†ˆ?#K‹?SôR?h€+>¡W>1ß*>Ýv,>£C =½oB?P\4?Wv•<Ê–V;þ<@<Ìب˜@c>W@+>ÅG>Ùí6=åë#@ tä@rS>?«Ë¹>[I=:¼>ôxp?BÏ?x>Ýœø>$Ø>ýÐÃ>˜_=‹ß?<“?¤%’?>ôÕ>Àï=ÿ‡‰>rÕ>à³é>—Û+>‰iØ?5I?Odë>ÉK‡>»w\>øç&>û03>úêí>ðõ=@{û?µ{? åÿ?è?ŒŸ4?8Àˆ? Ñ/=Ú>ø*R?7Ú5?±¯í?y˜>¹ÝÕ?—®ž?‡¡?gt?0<#'r9§ø<†ü(>Nð·>õô? Ç?WïD?>R2?%Kz?ùŒ>õFÇ?+¨ð?Y®÷?>–>&*?;„?tÁº?aôŸ?U ¿?-‘ƒ>î®k>ôp_>û­>> °O>>°>¡½¾>ô&? Û?$U$?5˜@?<Ìš>øn¦>ˆ3à>Âï>óã`>¼•!>_Ä—>“´ƒ>ÕÇ>\ + 9Ëœ<‹ðÈ=-¡¬=Š« +>Gå,>µÐð>´¿@>­&6?:ZT?}'G?4^˜? +º?R±>óÜ°>Ð^C>¾¥í>˯Í>Ø·}>ù >øÁ>ô>ô#?çî? Ôû?³X>ô.6>ıÏ>š‹F?}Ó&?·<'?O >Ìää>¦P|>¨¸>ݳ¹>ô“?4Yš?\s°?¤ÿ\?·ùG?CÌë>ô×c?g–?Ž¾[?Z_>²ZŠ>âµ>õ&Ò?÷>ü…?5vâ?Y¸“?ŸÜ,?š +°?.\f?Ѥ>û>õ®á>ýÆ>öÕ?h9Ž?m¦¦>é ñ>Ëk¿?TÞ?SÊ¥?ÌI†?ºn=Š)?€š0?…µi?QÀœ?`Dò?÷à¶?õg?Œ£~?v¨b>ÿgš?,UÆ?¹EŽ?œ¶<>÷$µ>êùÑ>¿†õ>¨}ê>£kÒ>ÿ ¹?W[š?C#*?£?dŸo?§ò&?ˆ¬ë?X«×?-¯>÷õb?u +?´¯ë?y;˜r@?’‘¼?ãíƒ?hˆ>øj6?ˆ?#—–??@O=ÜiÛ?ŒÈó?›JO?Ù1?Üz#?¼Š}?ºËß?°Ž>ù’Ì>ý:Æ>ùn>ùOp? íÿ?…ý?`_–>Ë…?' ä?4™½?BÆŸ?Q2y?oƒî? Ót>Y¯Û>ùø¹?k'Û?±ÇÃ?±«B?´¢$?_Òý>üÛË?Žo™?°Sþ?ŠÇ}?zhþ?‚>±¨œ?9B‘?I®ü?sµ?z¤Ê>Ó'>NŒ¹?)’¸?"†X>úÖX?þ ?ƈ‘?¯Ùw?Ob?0‰?{?œÓè?ì±f?ÖÛJ?¼bÖ?¹ +?µÎ?_èz?”͆?¢}?£©q?›Ü÷?™@Š?mäd?P~0?{ t?ŽE÷?L ç?#Œ?Ó)?ôÇ`?Â%?¼Ä=ܺ”=ÅoÌ?{Âì?w/L?S¬…?r$‡?¦jB?ªõf?¢¿ˆ?ž°??žx?§€J?¯úQ?¨‰"?¯˜V?­Þ?˜…?n².?*mñ@ +÷@Wê?ï{?~qA?Îrã?çiO?Xæª?ŒÁ?X?#ø?žB§?›Bc?ȃ?…?ºš:?­¿w?KV? >æߣ?!K&? ;ž>ü€t?3JE?CCÀ?òJ@ ++¸?ô6?Žpÿlè?UWå?Yÿò?·?m?|„¤?d%”>î£Í?î ?|â?0r’=ãÞ2>Âe&?L¥Á?’ å?É ÿ?¢ f?w7Í?{ í?l®p?º4ô?æ2F? æs? Õ?-–È?1Ñ? |f?FJ??ðTt?ûy-?Çð ?Ç{í>Ú‹>Â&%>[£ÿ? 2»?üm1?äu×?–$ñ?¦ +œ?ÂZí?§Ç”?ˆGÕ?£YÅ?½Cã?½@¬?½@?œÆ¹?|N?o€Ï?jSs?ê_Œ@¥¤?ŒÞ[>ü&&@@uT@s+Ð?P¼?»ü?çÃ?ªö?²PÌ?½M? >þ¹Z?{ø‰?rHÅ>íô“?59?„? +`?-SÊ?V»?¼ï1?ÅÞ=?Ù9Ö?Í ¼?¼ÞM?zîT=ãrõ?%ðï?»Ø›?¼a?¹"Í@ @9ƒÆ?¬b >…ç?«Úw?ûß?Ë[þ?º›>ØDu?&Aúƒ•?q!ë?»Ó„?ŽÊ?Eq³?Ä}Ê@?C?ÄÕ?z3©?{LÊ?k³ñ?Û'°@ È}?¹?v?VϾ?w¾?¬¾?»y?»è?»HM@%†y@3 w?QNE>ù†t?Ë,á?ØéP?WWÜ?MÅÇ?Èv?ȶ^?\³«?JMè>øœ ?†Ÿ?ž¯?žhÅ?\î—?L~‚>øÊ?Z9?ª=?®:¬?ºo?¶ô?©]¶?¬_?¬]*?Xxei˜?xöÂ?^Ÿ? qú? %ñ>÷ç“?OŸh?Ñ(o?µ#?XÞù?IØ?+¨?#øÀ?)e7?xå>÷Kï?ƒ5?÷.Ð?êÆu?Õ/g?¬b†?\fê?½¡Ì@<ª?Þ;c?TÁo?">Ÿör?˜Nl@•@6?²ˆ±?˜4[?pî9?à)?fi?û L?§æ—?ãŽ>žtQ>hx*>õYS?›Í@t=?¯• ? ËX?\ý²?Šß?2.t>Œßÿ?’ç @ +2—@þ?ë²?ëzæ?ôBZ?§ ?‹?À?Ozb?;H£?¡Æ?;–J?s˜`?“[?Š(–?Àáu@¨¾?Ïpû>ó?$gE?ræø?r5?rºž?¾B@%ͦ@0g@0@ÊÜ?©Ú?œVÙ?r2? Ý¶@æ?ñ¶?*¼2?qΔ?üÓ?ù•ó?öQo?ì\?³“?²'ä?åƒÙ?çÎ?B=À?J]Ó@:g@vž?ðx?ð5/?âé@?ã¬À?B¤?è#?Ña»?éo ?á?u¨œ?Ó)’?îûå?Z(>ð÷ ?Ž¸œ?¶7?´ª‹?²ò-?̆P?Ü.µ?¥i†?n5 +?«Í?Þ>â?Ç"?²V§?€6ž>™Íà>ãÁó?V)û?– ú@ÒÜ@Žë?ìÉì?ß—?ö ?—hì@§C@"q^?s›:?l4‹?)9?*”¤>R‰Ž=×8v>Áñ‹>ë’]?áKÉ@T@À•@)'O@ŽP@×ø?™¹N? ùj?°±¦?ÃÅ?êM™?ÑDy?ûm?©œ<@:è@0(?¥1!?ª¾ƒ?¡Ýõ?ž¹ã?Üy?ˆ´v?ãìÛ?þÈ?Žµ¤?7y.?S”?h„é?K¢ð?,ñ?qÜe?®½?Ê7x@Â}@h|?Ô »?ÍWÐ?ŒN?Ž× >j á>I‡á?ùZ›@ nü?Öß?Ê‚T@%ýæ@Ep%@ùÕ?äÌ÷?åþà?æ,ø?¿´ ?gµ?ì?¬S? Û>å“Y>åÄj?ÐqÕ?Ðu©?¦]³?ž­ž?;÷b?1 ?)š ?<¬L?—ðð?Ï?¢?¹Aç?“Gý?ª­'?ï?Ü41?˜:?Œ*ñ?»°õ?¸B?ÛÔ?㑧@Ô@–ë?»DÙ?Lù?²q@ êŠ?÷Ñ? q±?ž“+?†Y#?€|>Ñþ>×?XÁò?cRõ?¶R>â7¼>MOÌ=KH(>€’I>õZA?C@)Uu@#Y>?ûL?ölx?Ô>ë?ÒõÆ>±¤û> ³Ö?¢_8?äɉ?áªN?ÕØ? š¹?-ò?P´Þ?¨äë?£Ë?:$=?BnE?ÏÐn?ÒEæ?Ì«Ó?ÎAä?·9¦?¨93?è¾?`4?u•v?ž?Fs?¨†?§÷ì?Ó[ù?Ø"'?†$?`“>é]:`h>y×>óë?™;?& ?@D?¯àµ?¯H…?…úõ?ˆÞ=?½~I?Àb=?‘$\?‚÷?33>ß5Í?Pôl?®Å ?·4K?ßÕ?ßÇõ?Ú´?׶?•n ?’Õ?Ãs>Þþ¥>ƒÊ=ô[Ý>–ÆÐ??v½†@ Ož@²\?‚«?{!ï?Ròª?X6î?ò~a@ DI?ÐjS?§K?¨T?ªû¨?‰Ár>ú¢Z?9ø?îG“?æ§>â >ÞÐg>ú–? ?MÐ;?mºü?¥é?‡¥í?{¬8?]&`?ƒï1?ËXn?Ï Œ?›(|?—ïõ=Æ­v@.@<>1?Ø$?^úë?€Ýú?™á?­‚??×u?Á`_>ã¼>ß\>߈>é—q?N5?W¦?th?…܈?µ:x?ݧ²?¡¡‘? 5ü?LY…?ª†?‘ð>Š\¼>…ft?†ß—?Š1Ä?´%>ÎdV??2ö">šdD>E;>ß‚?‰î?…\}?nþ3=øât=îßT?_Šì?_˜'=µ+ ?+E?[ì?[þ`?_¥¤?!9<>½å>Ó®[?Q¢?&¨+?É"?‡Õ ?£ûÕ?êî?œ°9?£>?uÍ>Ò^p>Ô>p>ߟb>®x>–€?&Ð?ŠÜÓ?[z¤>µý¡>¾>Æ\>åQ?hƒ¿?`ëD?_^ú?_1:>7åv=¥§Ü> ˜ã>Àɧ>Hi=¼"ö>Vd–>Ÿ'À>²V>¡Y>°Ò°>zÅ>nœ9>Þk>Þ|>ˆAV>Œz9>:•">¶ =ÞRŒ=»"Ê>a¾>À§[>w¹4==£~>×È>ÏqÚ?B8š?Ñܺ>©þ =Ê%=™>-”°=ü0Ê=kV?9± ?0:|=nI?ã–L@>w;?zEâ>€>x¶$>X¸á>þ,ˆ>þg>¾fl>ºZ7>/_6=Ú¸¥=¨¼<áf:P;÷°@?IŽP?¿ÈD?Ý-?ZŒ€>üŒ]>œ)Ö?e®À?‚M\? â>ч?! 3?%ŒÅ=SYk>óvy>û,z>úç>ën¹=ÅšF?md?lƒŽ?‰Q…?m¶?"i?8=íNÇ>ø+ä?&ŽÇ?˜Ç?gT?mÁ?ÕÙP?¬¸±? +önì?#4{?a¦€? +=¸Ó(>žŠ?Æú>ã‰I>BÖŒ? ÐÕ?tíÖ?¡±?Ýu?M=>®O]?Úù?^a? p=ä]=)ò8 `>oÕ€>ôg–>z>:>Òñn?Pds>öº >BÚŒ>éW?7¨Ò>¹¼ê>zr8>óòY?+: ?^g3>ç’¢=†»<#ˆï>vÊü>ÝÿO?ìY?D „?h ß?e?Áô>š?DRq?™d?&„û>8$Ÿ>ØÿQ?ý5>€'<äÁR<ß]?X!•?¶‚Ú?¢·=G >¡Ÿz>ô1¶>ô8i>ôB#>ôK7>ôRß?Ëi?Aõ>?&è?w>` †>æ¨æ?)>vÒã=+\X?ØM@W…?©:?fé¿?%T ?–?E3â?L÷F?€v,?‚±Ã?D¹â?<û >™ƒ>>-D[?éäU@RY?‹)ñ?dl6?w>þ$Õ?iØ ?s¶o? ¦È? +û>ø0ò>ö?Ñë?$` +?œëQ?¦*Ò>y ÷>~pì?,®?8ù¹?¸ûÌ?«¢u?Ì?<5T?ç??Úœ?wA?ˆ|?¹U´?™ëá>÷:¬?Þ?T¢Z?ZÙâ?d'?>|p+>ö›Ã?Hâ?rm™?­A÷?„ú?W–?HI>ø ñ>óùë>÷¨?Cª"?i>Ö>ìú>£8Œ>KÁŒ>–?"*Ý?JxU?’ ù? +û>Ðê>RKö@ÑÔ@•ùf>ÿA?Sz?! ‡?15?Cã?ŠL@?oY|?:Š??mWÆ?¢÷?fœÅ>˜G?M›?Ibá?Hxõ?`^·?+ù–>ú=d>úJk>úRM?¹«¬?ñ`•?#±[>t–„>1~p>,8W>µÿL>Þ&?n–Å?z»*?o¯>ÿ$F?zؼ?v‹Ë?2y“?S@#?úüÿ?í×y?ºM2?¼Ká?ºgì?̨ ?û1¤?äé’Û>“„?”Àù?¶ƒÛ?‹ž +?}½À=¯›Ì=v?f?a¾Ä?V7?û´?"?Xíÿ?YΖ?{òj?­¨Œ@!ij@ ×U?µ|È?°ôL?º‰?rG*=ÿ~ã?sÞÀ?ò®?ôü?÷è´?‰:>ü6å?“ƒ?¸í¸?˜.8?’Aý?Èo/?ÌÉ >®ß{>,å?Ç +:?ؤ!@[ð@ +Àp?Æ û?ÁËf?S÷>?^ºæ?º?°BO?üy2?ã{=?°æ?¢ ¨?|€s?Å?‚U?ÌðŸ@Y?ªN?@ž8>¸d.>$¹?P­Ê?‰5ç?Lš?=˜0?ç‘‘@ },?…@ë?P>ª?•±¦?Ÿ§Ö?IûŠ?/y=ÚX>mag?½xð?¦ÕÅ?wº?©Ì>ü¤–?eM?äñ ?Ã(„?‰Ù¥?KŸP>ü£8?;¿š?|¡w?7‚¯>üŸ=?‹ñ¡?½w@?®Ì-?ª %?@œ>b‰ ?ˆX|?«š×?eI?…·k?{fâ?|’? s¯?ü?„ ^?…¼Ñ?eŽ?j˜?‹„Â?¥)@ó©?î/K?3ç°?nP?üwØ?³N>ÑM?ES?¨3?³º?½O3?©d£?”j×?4‰E>ãÐý?× ?½@V>×…á;óÀ?Î6ê@ ×-?’±:?f½]? ôá>ü6Á?A+T?P8o?¼ ?‡¬ì?5“Ÿ?Iø{?˜I§?ˆÏ£?d¬G?tŠ€?§Ç?¤ñ{?¬àœ?ÍŠŠ@ fŸ?üg?¼íþ?»b?ºð©?Kñb;Ìu>–?TÜ?—Oú?Ø‘`?´€R?“%G?sG ?lµ¿?¹)J?Ív_?¿g?°Ná>êÇY>u§^?·×ê?Ì9?T©˜?-=?¹Kœ?ÇÙ©?·ï?Ô5?±ù„?µŠð?Âd?ª*Û=J;=ªæ„>üZŠ? %¥?kX?<˜?i=ñ?”!u?àyd?ìü@v @ì@1!-@Èû?Æj‚?µ)-?Ÿn´?›YÍ?Ÿå€?YNA>úp³?E0o?z[4??«ì?âõˆ@"?¬På?zî?­‘Ö?¾U?<ò>ùõN?aEw?V×?$W›?0#?”öù?¨lV?V2>ùš\?–û?¢º™?V‚°?Kl)?¬¹ë?²‡ð?™¢?œ“Å?–T‡?ŽP@?y?€'S?¥N÷?œÑ_?g¯?)d‘?xÂ-?‰\Ü?Ä,x?§Î!>øš>Ãð{v«s?xR.?UH&?'"?eTA?ã¢f?½ +?bÃo?¨mÃ@ ‹;?à ™?wÀD?š|ž?ËêÜ?“^A>÷€‹?/x?<ÞR?qø?Ú_ã?Й?Ä»n?·â?£»Õ?ËB(?þô?°1Ð?×y?q +?®S†?G¯‰=௠+? è?‚ (?=|¾>ö.?8–B?r5š?wk¬?ƒël?{&?eÁ?X:?Gš‹?Ö¸>õoz?$ÿ?xû? Ù^>õ#~?—?Û° +?­4 ?|]r?˜p°?½D@ñ;@*þ@ T„?Þ2?Â4ñ?¤Gä?h\*>ô>??my?†/?CÎ?s­ö?µ€c?þxr?ȱÙ?€'o?DC>ó-ª?Xó‹?´–„?dàž=œôl>ô¤ì?™é‘? +?›\¦?˜ |?‡¼t?oLy?œú?H”?¥W‹? %•?Y½Ã?Šä@jb@ '@%Ê@ul?»±W?²šÿ?'Ÿ–?-*€?ró*?w†@=@É´?þY?üçö?”>´?—}?«MŸ?­|å?ª|ú?­ [?°õ?²ß4?³ŠØ?³¡í?±/c?­jÝ@P¸@WA?² ¸?€Nc?ˆEá?)9?Ç‘>oŽ?Àùö@)™?ô؆?‹Í‰?™Ð”?¦4ý?bš³>V?BL?@tt?øFm?½–¸?¸„m?‚-?Šˆ?±tU?°ßo=×m¦?C°•?Jfe?>¼|?30?íêA@Ç?Ùp?´5Ô?÷„e@åM@]F?ç%¢?Ë×H?¯òG?Ø­Y@1q@sþ@5U@Mœ?ƒòM?Šë¿?i¿Y?gaQ?<4Œ?AÁ‡?GHÝ?LÍ?š/½?¦. ?šFø?’ý¥?‘„#?‚?a¼E?6{º?nr¹?—ý%?µÂ?çöƒ?⇞?ÎèN?·ª ?Gw?Ì ?‰œ´?†ÈN@Xö@"g>¦=?Ñ!O@)2?Ùm)?¬Ôr?É™Š?æA?ÎÕÑ?¨˜(?¨“}?¬cô?šÎ~>å©û>îPÐ?‹ +ó?¼â?Ðø7?ÔíÅ?2Ôô>åå>ääç>äÑ9?<n?‚ga?–kI?«WS?ºž?ì)e?áçç?tQ?‚žH@I‚@t?É&?Àƒ‡?°øã?ª›¼?Ö^?ïd?ùǸ@§õ?Ó#à?Uá4?‘TÃ@ Âè@=å›:Ç– ?Ò“Õ?â5Å?³XM?¤|¸?â–ï?ÿÞ°?€6V=¼þ?|?Éùœ?¹-?]¼Ê?rJ?¹‹I?ºà> !?€-–?¨òÅ?²å?¾ª?¸Ë¶?§b?”8:?`àW?NG >®¦ç>£œf?Ý Ç?ãêÍ?¥k¸?™‘?¤H3?¨I@?~|t?;¿g?¢5T@÷¿?ù÷?³¼?œE‡>çQ>ßô,@2æ¢@C@7*@š?]pX=?p>Á/ù?Míƒ?mL…?§¬Ã?¦—$?˜ý›?—‰6?¶\?º‡2?€Çs?_Zš?BëÂ?-«É?†€#?Ã0‡?Ý.?@¶s@YŽ?¾Z ?ÄGõ?fžM?_u?9ýå?*Mc?5Ö´?5 Z?O3ƒ?p^Æ?¢Nø@í@Þ@%g@†;Õ{>Àtz>õY¼>üö)?]A?<ÈK?n +Ž?@M!>Þè?>×?챺?åþÞ?=?9æ‰?«~?ªW??ääl?ñI?ž‰s?^ï?-íÎ>Þúë?Rg?^ø€?v£°?Ìò,?Ît˜>¾¢=Ò>j?ù‡c@„®?ªE©?Qú?$¯@>ì÷?ý ?^Õi?x¥ ?§JÃ?—®;<ºã€=Š@o@l¶?º«c?œ +È?VÔ¡?+"&?`Ú?‚ߢ?‡ ‘?›P\?ŸBe?“€@?ˆ?)jí?,÷Å?„÷ç?…z?o>ß‘‰>;:>1®>>³ü>‚I¼=h{Ý>qÌf?X‚1?\|?_»®?_\Ú<¯ñ]?<ß?_Én?_Ë?_É1>Ô†ˆ=Ë÷‚>ÐÖƒ?>µý?^¬5?“x¸?„Éí?B[?MB¬>á=>ðÛ½?-ïë?3ûµ>ýU>ßË—>Ídm>§³P>¹ä»>ß¿’>Òô4>Ž2ˆ>w>›@ò?ßžý?×OB>æâN>ïÒ=¶n>±¼ß>ß`>º9_>ËÈ?0qÇ?|jE?E€Þ>÷€Î>½b>h¾×> È"? +•?ùU>ÐË=üzn>þº ?úf>åŃ>Þ?Z>9ˆÙ<¡¬”;OX;×¾@=DX¹=Œ[n>*m°>N­>Ù> ¿Å>†bá>„3÷=!\>4o>—·„>Ê?‡½C?†üq;„-ä?·8’@Ðk?B2M>xªÅ>ó!?¦µ>¯Ôí>±/Ù=íNú>ub{?as?M +‹? +W>Ÿ :?i†?Žd¤?S$q?)G>­ë‚>YèQ?–c?ÁâG??;Ä?p¬?s&²?|I©>†1E>'”ê>ÛÞv>ì_:?*u?K??ïv ?Öu¡?yà?YæÂ>wÔ;>†Mm>.à>”q?¦¾>÷lx>ø+1>± "=©òÙ>hÊ3>ŸO"? Å'?QÞ?´ ?g&_<`ùP>iU.? y>«-Þ=zX>(>jïž>‡×›?}³ª?îü0?² ?q—_?(ûµ>hëš>¦î³>ôÔôq4>qB>>¢ÐM?$Ja>î­O>…ö¾?Y~?fÕ?IÅd?$"+?«Ø? Š?‰ú? +£?‰ï>øFC?×è +=‹‹j?Ñ?sæ?*óè?SÑ?,¼b?;uˆ?8=2??u˜?…B>óõÆ?ATX?sþÉ>Ç1j>’L=>ôÔ?DÑc?z4r?g{O?Mú?“>ôBB>‹1ð>4å*>Oe>i*=®$<=ê –>A6=úQÀ=Ƈ?m/n?«ÖG?‰þ=?tÎu?"D?GN?aü¸?tþO> £À>d¦?ë?)…ò?ZÍ[?r®†>Ë=Ý>’5ç?6é?QŠ>Ë€x>ÆœQ>Ó¶,>àÏP?l3.?uáÜ?ué³?uõ&?^>öo?™ÑC?•RÑ>öl>öPn>ö]V>ï)Í>‡9>©2?Kùp?hÜv?ÇÜ?¸‚y?f6"?VßM>ï¯Â?ICC?ôy ?Æ\a?¸Å?R+3?œîz?€ØÙ?%Aæ?pì?¹ªÇ?¡É"?l‚ú?ŠÂ´?¶§ù?^Hš=ôj>ã˜c?TÊ2?$ ½>î´ò>O ;Õù?d»`?³t>ìŸ>KÙ>¨zê?N‡ù?x°¡?t=?ëD?/Á>øçö?æ£+@ÓŽ>¬)>"ˆë?°ž?¸Ý[?÷Å:?ôB¶?¸œ?­Ë?gçÁ?>h=òK_>©|¢?y­W?^9I?'_?$þÆ>ùÞ ?,œ ?yøÄ?jt?Z§·?›×â?Ô{ý?LI§>”Ú >úR-?‹bV?¯žf?âòw?úö??²È>°7•?WP?c2>®. >}g?7šp?GïQ>¤èÙ>ÄO|?Ì?˜Á?¨BH?·†è?ï‹£?ÏJŸ>û›£?'J>?‚Í¢?m…Ý?A—o?n$H?÷?ˆ¡A?{hJ?:pb>ûy?IÙ?†Nø?gû?QWa?‹+*?ž]?¿ÀÊ?Å×âÌb> hy>Reñ>ûíh>íE>¥I¯>ú?|z?Æk?@MPÕ@#‰?™¸ÿ?ÿ–?Hð?=2ã?1zÎ?v w?¨.‚?²þ?ºØ?•,û?y->¼pû>0ç|>û¥t?„@\@Eq? Ð>™˜ ?µ´µ?½¦?â2?Þ/T?*¬?EU?½bÜ?Àù3?Öo‰?Þñ?çpu?Ÿ‹×>G”?»—?;÷Ó?|›>?-e›>ø£»?QAn?|¤7?™Í|?žQ"?F`?.Ç?=jÄ?7Yø?½Ò?•Vä?¹…?½„8?^*?M÷ä@,?÷[p?tý?†Ò?½‡’?¢þá>ü¶?Ymc?àr]?äí²?üµü¬h?Ú.N?ù3?%4?¥??ïÉd?âU‡?|¡^?„^ ?¯è?§Pˆ?‘Έ?»žX@Üé@hT?‚Ä?ž÷?à+R?¤¥î?<~?O°o?|Î?Žûø?¢Ð¨?À1s?ÛTœ?,T¥<Óé]?ƒƒæ?½MØ?¹¹=?±þM?‘z¨?‡G> hÀ>Y5}>òJ’>üI?º¸?µÐ–?½,Ó?Á¸3?áÊ?Ýý’@Ä×@u?¦:_?­Ä|?ÅËÖ?¶J?|Å? ?†Õ?–!{?µ3Ž?žsƒ?{àç?›¡P?´Á?‘q¤?mi?€?‰í³?«cü?¼Òä?Kk]>û¸Z?­†0?Ö½?·àÛ?¸m·?\6Æ?5·º?Ûv¡?ô2?Ô1o?Õš?&•?‰b?.s£?/ó?”Õ¡?šç?÷ö†?ú $?û/Ã?ÇDÝ<´¼h>‰£w?{"?=óÞ>976? Í?NÜ?¨_m?º-'?Ú†²@ác?óöf?ØáŸ?»¯Í?¡ü›?h[?m>ár>¦T»?€ á?¯¬7?óŒ#@ÛÅ?œ«?/®Ñ?k‹'?Z„?Úú¶?ùÊ ?ÈyA?¸ÝŠ?, õ?Ùº?]ªm?fÌÇ?ÖÃï?ÞŒ?%v>ù¬g?õ¹î?öîö?ðÔE?éÀZ? +æ?¸i?< Ú?IÌ?©D&?²»*?À¦—?½?ÇzW?±šÔ?[VÞ?d›?xÕÙ?‘9?ãÀë?Áºë?Š>üÀ;>ø…>³UÊ<óN0>?ë\>øJ±?.á˜?%}?œjk?¬º³?Ì›=@ƒd?ä‚Æ?¥ ?•¤R?‡–ô?v+_?? +K?†aÛ?·‰ ?¶??¹8?œÒÇ?w1Ÿ?™-Ö?´…?¦7?™Ô?ˆág?vÌd?€Bu?ƒBv?vŸÝ?mÞ…?¹ƒ?õ¥°?“Ý‚>ö>>?}Q ?´è=?³m?±Db?l1”?Ye?I¤­?u¨ý?‹X?”¾?†Œ`?qµ?U2û?DI?ž¸¿?ÓÖQ?³ú§?™ä¸?‡Î?cÁ?×N—@Þ ?üÙ?ÊÕ»?²z{?šd?Bt>Á ¢?SÕ?¤#ý?%?g ’?è‰z@3õæ@'Ð-@#Ø?ÂO>óA²?cYã?¶L¬@±G@9²[@^?Üäy?µ*¤?r‰á?2Y0>ŠÞß>¶÷>ò)”?@·?ª¾|?Ü+J@.~´@ˆ?´õQ?Æê?ý“Ò?äU?AO”?SÜL?Q*?–Ê?ß1ž?à †?щe?Òŵ@–Õ@Ã(>„ŒÍ>W[ž?v”%?wCÄ? +åò>öý>ï©‘>ða@Çã@/o+?ÒºÜ?³_U? ¥Î>¯æ¦?‡õã?§E ?ļl?Ðö@-@P.@x9@9‡?Æ&?&jN?©âõ@?w?ái?”Øã?æÓ@G ­@¨‹>íP>í´>ìåì?ü4?w‰¦?ƒ:t?¢_Ý?¤wB?nÝ»?_ûï@ºB@õ2@ + +@ ,?õ@Ç?닸@ +ß@~?³J?põ—?›`ä?³ÿ ?Ìþ2?ãüï?¿{Ê?‘Ñ?X?„¹?]&0=òô³>ž…¡?])? à=?ÐÃZ?Êò´>î­f>éL–?# ˜?,'£?…åˆ?“œ?”[…?•´ç?ZuÌ? 4R?XnÁ?‡K ?Ä&>@ È@‰@WÚ?êûX?gŸö?~Æ?çk ?è0~@f@g"I>ôny=Œc?à<ð@6˜?ùªµ?å?Ç·?±?‚P?§?4Kj?yn:?–§Ý?í4ó?Ø¢Ó?<¤?ïY?ZÕØ?f¢²?¡'L?¢ßá?)éÙ>äãÓ?ÂÏ?-¦^?{ß?«g@?Xò?"e‰?)®C?Gy?UÛ?ùW?ÿÛè?ŠXY?€K¡?ŒÌõ?“Q¤?ãPA@6P?ÏN?žK?pÄ,>ð¥Ä?k9È@ Ü@ +(?⽑?át?llõ?nÏa?½–?±?"Æ?5Éß>¬b­? /@)|î@^ ?@ á?`˜#?òÌb?ïõ?Pl?Rk?Èaî?äº?¼0r?¦ˆÍ?¨þ?°¿9?¤/‚?…Ñe?„a”?‚ó>?€C:?`·Þ?`«?‡÷>?‡1ž?žô·?¨Vœ?,„]>9¹?Yħ?ã1s?¤g ;dL^>RÐ?àq?Ý‘ï@ Ð@@¦-?ŸËá?ƒ’,?¬ %?ºÿ?¨Ï!?›z²?‰S?~Ì?³É?ÍvÎ?ËE?„Ì©?†3¡? +j?Ž/¸?IZX?(P—?eTL?Žï?ÕO@'só@þõ?:[?4md?_/ž?_+v?•4`?œ:—?Å´}?ÖþR?¹sô?¢<­?q³ÿ>ß>ß>ß S>ð3?]|?Wˆ@]².@fœÐ?»žÅ?N®Ý?WE?^û#?z$Ç?Š}?«qD@œ}?õd4?’—R?ÿŽ?Óœß4>õò}?l?<ý?™Ì?—C€?sp?+®?Ž=I?›Yx?1>ô£K?3Pÿ?_+r?-‰k>àR–>©?Ç=§¢>‘_þ?’à†?Ìc?ÄÝC?ËrË?®w?§‰š?!?Ö?•Zþ?§šx?ÀK?_€ú?\A?júù?`[>ƒ«œ>ýA?“Œë?–? +!©>߬L=òõ£=$€Ë=XçS>s…Þ>ì=>âò>ß­²?ÍÚ?_Ü¥?ki†?К‹?És?ô$?ÚÁ>~ÿÚ>S³Ù=«½¼>°Y?»¬?Jjö?ˆ·?|¶»?$Aÿ>ÿÌi<‚~?¨µ?Œ>¬B&>©¬Â?qéJ?”Ñ>?I°–?g?Á1@#?Í”>²?ªß?œ ’>ßÄ=>Û@É;wÅ>ÇC>ß’€?)2°?5‡ã?jÌ ?ˆéÙ?z±š?_HŒ?d >j[G?_!?OÝM>Þè >Þö?: ¦?Câ˜>ögp>Þi>Ýòü>ÞH>*jñ>Eúp>Äg>ru>ÍæÆ>ܦÂ>‚ë±>¶¢v??yS?šr>µþZ>¢£÷=A<‚Ga?EN'?Û>ùRO>“ñO> ‡â>«¹=œDl?v>椫>üi?»E>˜Æƒ>ÅX>‰àú?&X?Oµ¤?"@Ç?hÎ?a¬‡?}ˆ²>!¼?d¡ä?|Fß?fó•?j&®=Î=Âô¾?»úT?¬7 ?—K?,<?âµ?»!>¯õ¡>ŦÁ?ùý?æ©>ùË?#/?^6t?«C>|i>¹ïñ?`DD?f’$?lÜË?G9æ=›<[›@<æð0=³!à>^¤Å>¯† >¢Šv>•’k>ø?8žD?{ø?¸—¾?„í×>×Zx?ÕA?^?'¨+>àéý>hfz=AD°>óÌ>¾„=´øp>vF>­Eü?:òj?†·Î?\÷î?6ÃÌ?AG_?_HC?š®%?À?•Ž˜?^j?]'F?b»7?p`?sä>ß2±=®ê¨>‘%¿>Ä?3¯š?súû?@†ø?É? J?9t?î·>ôÀ>ô N>ô '?%Î?LPb>¦fv>—­>ô+">ý\?ÎN?N/x?tI*?^ò“?M‡½>íÝ,>Œ¡½>/>eÒ>©tR>°ß>¦K>¶QD>Ãl>ЇV? +º?z¦?Tbò?tæ?×>õË?Wë ?uÍ?‚á?vˆ?h >õH©?`0Y?jQ? 1v?©å?€“”?‰ºÛ>p?©ñõ?·%ý?Çj? +¬ì@çP?ú§>ÔW?’?Fg??™‘?9™?-v~>Ã>±Ý >öµì?*Jµ?ëb-?Ï‹?>ã*¤>¿*W>@?¦¬? >÷L¨>ãŒh>Ô~>Á/Q>AGÝ?,#U?¹¿…?£I„?ˆ8½?TaÆ>÷äÖ?™‚!;â­Õ9ë§Ç?\?­ÿK?K ?†Ã’?”]>´¸-?/Z?Iå?­?½%©>ðs>ûá?EL?JÞ~?UÑv?^µó?¢Ùz?—¨?yG?yV…?z»?vÿa?Òè?-±)?y•%?lß?/ÄM?9mV?yÈ®?.»>§7™?`û3?S#S?T¬*?JøL?.¶˜>羯>D=©Ï;÷ìN>›hª>úm‡?ZÓø?†¥g?·Y?Ë—ƒ?—Š?Nî?Ž}?™~Q?IF?6/ê?0*?'UE5Õ@> ¸w?ûÉ?ä )? ?ík?™$?K÷?v¥Å?tQß?{Oó?r‡Ñ?^C?¬µ{?üP]?ͦ?¡ß¶?1ÝH>ƒh~>ÐPŽ>û£R?P·Œ?i€Ê?,•”?´+?Îç§?õéù?Czü>ÿ¹‰??›æ>þ>úú +>ÌU >ÆÆ>üH>î¹Ç>œÑ> ×z>íÿ?pd»@a?Ç0d>«âZ?VÄz?ÌÍ8?¸…W?©»?5ȃ=»;±>¢’‚>üz÷?D.?„õ?Fãh?RŽ +@ ú@,"»@›@ÎK?(.>ü†ð?u¹×?~Î?/?1{L?“M?‡Û?®Í?–%w>ü£K?¡?du>ªø³>Òøb?t5‚??¹@?Ï?iœQ?36?‚ %?|½Y?¹g§?Ø'!?#¼>x~«?Û?—í6?yd?xð?º<?½~?ØÆÃ?æŠÛ@ÿ-@qˆ?P¹?+’”?½š;?»2Å?¯¦?“gÄ?Hž?{‘?¡â¥?±¥?·†±?’`¶?pË?5iÌ?÷?2a?Ly˜?Qä?Wy?¾ºï?áˆò?f˜€?ìb? Ǫ?´ +=jþ:²Ä?´ºq?±d¦?(?>&?|¹µ?d€>Ï3?Hí0?øÂ'?ÜJ7?­ ç?˜ñg?CS?” +Q?׫?‹/>£ÿ“?3þE?ÆŽ?Pl ?8†>ë=/@>­¡^>ü…g?ššÇ?½`>ÎÀW>Ø>?šú ?±×„>û–ò>ºâ˜>3>.™µ?¬Þ`?·Õ@-?ôþ+?ÈI?Ϥ?±ŠÉ?¢jø?+Äw?/Öˆ?Ê?(ñ?QÌ1?ˆ·?·:–?…T >ü >üæ>ÿ\”?‚˜.?¼þŸ?qò~?@N?éEœ@`O?ä_?¼åË?f[?Œßt@Tm@#&ë? šž?uv?”¦…?—+?ªÅ?§??}iv?zÏZ?_•Ä?oÍY?Ï‘­?ÔI@—z@¢è?ºó?°lß?Õï?€k?eÙ?ë2?²r&?˜²?Aðj?Q_¢?{?Ÿ‘—?Í &?ÃB?¼*N?«Þê?œô-?vô¼?3!ò?»x>´âŒ>£ã>’ïò?«å@I¬?ùî?§õ(?ä\?ú]`?ÈLŠ?º ¥?»  ?»Ú?‰È2?„@G@ ‰>¸Þ>C€ä?G‡ ?^¨F?W}…?Q Æ@4@.Å?§ñ(?¬jk?sœ?y8>ùn­>ùfÑ>ùU8?#Q?Ój|?çé +@©¢@6O?Ìo?,ÂŒ?„±…?r;F?'¶a?1c«?x·r?S®€>ø? »?f,¼?cø?g„? J)>Cc>Ðx?<³?u–?£ŒS? _?Yÿ©?5 +>÷Ë??4b?wªa?ŒÜƒ?¥Õ–?™œ°?Š„?„øs?wK†?¿£@;ú?ðá2?ÝÿÁ?°PN?„Qð?•5¿?©NÕ?^¨$>öžø?ƒ7C?¸ß«?·v›?³A?ö›“@€^?åYØ?¸‰d?Ž:?[?«9Þ?ÓêK?n{?Lkè?SUÏ?Z1ä?me@?uQ*?‹¡?™U‚?nô?>Ò•?„ÀÝ?Ÿûö?ÛŒP@³L?ôjD?ã±î?åPÈ?æìñ?vá>q]>ûtY?/’Ÿ?'E™?t©?¡'?ó°é@¯˜@6V?ó—?kœ£?È3@Õ?Ïz'?vd9?ÊŸ™@ìÏ?Ú6z?r¡h?w =?sÅ?yK?‡h?„gÄ?Œ W?¿Iæ@ƒå@A¤?”p?’Î ?‘&$??»˜Ô?©_#?Ä?™×ÿ?´´ú?Çh§@ZÑ@‹ @8ü@z¡?åYß?æÖÈ?±¶Q?³;)?ï"ä?ïÚX?zèm?j­›>„w5>… +?e­š?€8+>EV?Iø‘?† “?)4‘? ûé?§âÞ?ÞQŠ?ËM?½æå?±¿?ž` ?¡«¸?±„›?м?ó"á@òV@TæX@„Ý>™;Ä>³Ï|>í²>ÌsF=ñ.Ø>tÿ-?ŽŒ¡?•ÝŽ@#x6@%‡I?…=‡?Yr?ª +?wQ?ØÓý?ë¤ð?¾w?²Žâ?×0?ãvÞ?¸ë?°>u?™>^?ˆ“+?O0?jC?ÅH@5ä?òá:?!®?3 +ß?‰å?‘?¼Ï?¿ß†?t o?nBð?1uŒ?+¯1?^²¡?hùþ?†)v?ŠC>?@É?iC?bÛY?Ów?æ}ì@)ž˜@o ?­ô$?Ÿ ?g¼?‚B*?ØŠ?æbÔ@`º@dÌÞ?õž2?ç{?çRï?è–m?™x!?x´ ?8x ?X¦?dæÃ?˜•´?ˆ›Ï?fè?zï¬?¡þ?—V§>å¦H>áyò>(L >3B¨?ÐGQ?å/?p“0?-7Æ?Œ¢?§þ?§àü?«z’?è±?‡@=?†_?«3Ë?£Mu?Nê?FˆP?ªM?ªÝÖ?g›1?GaÀ?› ?°i°?`.‘?Â}?-JÁ?cΩ?cf?cZ?‡ÉÞ?â×?â¤h?Øè?Ö,?hD[?PbI?ÏÙL?ë°_?Ã{E?§êé?¯*—?Ǫ?±¬?aß;?t=?× ™?ÕÌ >Í]>ØQ^?›&?¯§È?±NH?±Û™?›"Ò?…x"?‚‹‰?„¥ƒ?µ3?¨´I?¢Mµ?`Ï)?`Â`?Òª´?Ø~”?§NÒ?ÌÅ?ÌT?âê`?üšz@ 8Ë?à5?_²Š?p\Ö?ªäù?¬N ?³L–?¶1¦?£in?ž?["Ö?<úš?Ÿ\?Ð(?¹5Ž?•)®?œ‚?½G‡?º4C?_™¸?_“ò?ˆ#@?Œ Ú?›F:?˜l?Šï?„ËÀ?·ë@QÐ?ê}?‰F‘?‰àÏ?_FG?_Dg?MÀ¬?PH?7A?žHÚ?„,W?b9ã?,Y>ß&Æ>œ}%<—`>I¬Ð?£A ?¡´/?Ð3F?Û’L@ ¼ +@¯ë?ÄNÈ?˜aè?žÿ +?§O?§¹„?¯-[?²j¥?§R›?¥Ö¼?‹o?Œ³^?­Z?¹6Ÿ?Ÿu?“%??ËŒ>ß'Y>¶„†>[Q6>¡@º?5lÎ?< ?BŸ”?I<û>öÍÅ>çõÉ?’¢?§s»?;c¯>áôÏ?(.™?WO ?OÁf?AÌ??1•]?á?ýÍ>ª–>¿8Ÿ? '¡?§Ÿr?§¢Ø?§ª6?~R?Y<6?Œ˜m?£ÞŠ?_w>3ú>%É›>Ï>%§Å?"E¼äø>·õö=š¤º>”¥>ßàƒ?*)I?_ëº?¡é;œA <É@è=‰[V=Ú‰â>€„>¥‡_?¼¸Ø?¶þ>6ºÑ?#~Ü?P9¿?K>àX>ÚA¥>èmd?5œŸ?‘´?nÚb>$¯>a`7?~†?z,“<Ì‹ú>¥>Ëk˜?…å ?¦ó·?Ýz?È? -Ö? g?mqø?j-ë?J7v?0‹ã;_¾ô?6§?5®?d–?"ý¹?'= +?+z‘?M¸Ø?_€Ô?xÇ> Q!>™Ý?+¼ˆ­>°;%®>Ùî>Þ¿ë=…z”<¶x>™!ö>É2>?¬á=³‡ö=qRx;´,X>l r>~—L>ˆ>‘×1>4cV=ßZE>™c)>ÛôL>€ä˜= H>"‡>Û.·>¶ÙÛ?oI­?£ÕD>eî©>ÿÙJ>Þþ1=ø†Ö?\Ýæ?.ª‘;Ë£€>]–>äÇ?YÓª?—½È?cÜ¥?/ù?+I±?3úÖ?̹?™d?OD?=¯Ó?3Ük?N¼é? v?é>ô¹p>çož==‰F>(#²>úY‰? }›?\9u?2V>)Úð>rÁþ>ݨ>³1©>¤Va?Žê"?pÑÿ>÷Óc>÷¦'>÷w>ðŽn>îkÅ?†Ás?ñŒd?‡s[>[ü_>ö‹??N¾?‚/-?Z–±?=áó?";>ªûï?9”i?š*À?P(>Ó‚>hòä'f“?^e?·C¨?¥ú$?•N?"&>° m?bå?¥? W>s—…>nZ>üÅ’>íže>ÑE ?c­¾¿>ÇÏu>áåÿ>®Ûì>‹ å>˜ >¥*a?¨m?v0>Ê{>U°g=ƒ¢§;wST>›éu>ô;l>ôC~>ôJÞ?J@F?tZl?•¦¯? ˜?h$X?9öl>Ë„>8?Aã1?tžª>ê©>RÄ> ˜î?…‚Ã?·Zª>½¤Ó=€µT>Ç›„>õF?Z„:?u*À?ÌE/?Ýž?4ì>õ\?jó…?†Û¸?±ä/?¸0?žP¤?¡a> <ÆŸ;8bð¨>ó5`? ¥”?cÏá?_Á?¥š?®jñ>¢aô>5!?2=Q?8ÎÌ??]O?JÕo?v¨L?oÎŽ?5Â=?P4–?É]Î?žÜ÷AË>÷S>÷`µ?Dr?£Wà?Bw9?É5?¹Î’?™1½?QÃA?DÝÁ?7ÿ¯?{«‡?¨õº?"lÌ<†¯b>’,>ô³>vþ>2¨€?:=,?xŒÃ?_Öx?Põ?3Ck?1âm?¿Ä ?ÛÔ¦?s¡3?5At?Œ–?šH|?:^?$%¶@1Âã@3«$?x3x?o·&?1Y>ñV‘=‘#>£k?«Í!?¨ª6?¥‡³?Ú™?57E?:/G?(f?l!»?»Š?PÝ?ìh?lçJ?©jÄ?×>Y?úTµ?ÕO?ºj@&S@Gø*?Ë&?z˜ ?¬º=?¼ê?POÛ?/«s?–Õ?œÄ*?™¯?–œZ?OÄ'?NœJ=þ>x@ê?ÔGä?ÏÓß?tÎ?Ša°?¼*Õ?ȱ™?ðH?ê-ƒ?ä’?¦©?!Eñ?¨Ìæ@ ³ò?èc?¼²»?egŽ>Öò€?.ðß?Q!â?¨qZ?Ïlu?Šÿµ?jR2?¦þu?·lˆ?ódü?ú¦G?ºxZ?° ?=–N5=õ¼<>ü,>üû>ü? º&?FAÿ?1=f>ñ`Ú?7Þ?|Aö?\¼?2¼Ã?G?ïÏú?“¦1>á¹U?„ŽÆ?½LÏ?½?k?¹x×>í„ò=wÂÄ>éhq?W°?YÓ=?‡G²?àë]?ïœU@ïÞ?ÿeò?—xç?ŠB‚>À{?DŸ?t³?•_q?“…N?ŠËÓ?tÆ>†4W>¼4?š–?¥l~?3¶¸?HH@æR@ïh?|ÐË?Šnî?½¨L?Ÿ—h?&>ü +[=ô©H>«Õ5?'Á¦?3ðY?Pk?/N>üâƒ?<p?T?>ïº,>§ºÎ?'7?>xÃ?kÌP?|Ú¨?«ÎÎ?¸+?‡åo?}Õ‘?¹²ù?¶Î=?6†?.Ù?ßcû?ÆxJ?Tƒ?F?¬d ?–lÍ?| ×?“Ït?¡ÓÂ?¹Œ¯?Þ^Q?ÊÍ¿?Ï<ž?«~?|°†?§»D?Ê.s?–õâ?mPÿ?-qÉ?¯‹>ýØ>ü˜£>#ŠT=Õ;š?=ž¹?WÉ?…h¿?Œˆ´? + ¬>ü|k?&b?¯÷?|ol?‹¬Ã@ ÙÈ@>™?!Ó ?K?*|¦?$ˆ>ŠúÉ>þ+ä?Š½Ë?>eL=ûTñ>ài?uð]?A}À>ü$û>~«2<ãP?XŒ?½ G?þN?bC¸?àVY@€?bE?Vt?!ò?˜¨*?ø[@ .Y?™ò¼?† ¹?ÏW?ÓXÓ@z£@•?Ž4'?‡½Ý>û–¼?*®@Îw@ö?„½\?O¼â:¾>µæ +?¸­?ˆºR>Ò@>¢U˜?0Z?.#²?ŒB?irW?¦ÿ?Ü43@®?Ýï?›mJ?Ìíè?ïg±?«h…?zÓ9?`'?RÛ?W0?[CZ?’!>ú—?2ªì?7y±?Î@¿?÷W²?˜&)?zZ?äH™?÷´Æ?¿‘E?´ô >åâ>×ýˆ?'?ŽÚd?Y[ ?Sˆá?&z+?,Ïï?‰‰G?ˆÉÀ>hfb>ŠJM>êÊ‹>ë?N?/n=?+kÌ?'fW?)”?-Ðf? rŒ?2Q€?BGî?† +…?”M?ÀU4?î[¼@6vu@® ?xÈä?w_Þ?qÝS?!X‹=çöP?µX?¯E?¶~ö?¼Øù?–"+?Ræj?‚Ûª?£§?Ê­“?ñ?¦ºŒ?< +‘?9Ù??Y?»Ñ>÷žã?C‘¿?y +W?˜Cõ?¯=*?©° ?¤*è?¥-ø?¢üƒ?­ +?¹9¤?à>‘ž»>ö²Ž?F>#?zlu?ÅM¼?ðèF?ø4ÿ?ÿV?Ô ÷?¸–¬?’³?vZ?k½ö?p”?*²þ>õ®˜>õŸ]>õˆt?éó?¹^{?oR?u?©Š?…÷\?¯ú?»1?Ê(e?…/P>óA?1ý¸?|…j?0²>œú¬? +!Ú?T¤À?¹.¼@­Ÿ?ÏØ?7ªó?`¦6?• l?žÉ?µUj?¦˜;?‰ß˜?ÖnÉ@Iü@&FŽ?TsŸ?`„ö?œu¨?¼nÏ@"œ—@)Â@CÝ@89”?jí ?mìX?pë?züÁ@±-@Ä.?t=º?o¼‰?Ϫò?Î=y?~¡é?oX.?Úh•?âç}?Š3T?nð>h†{>å¤?&?˜ìG?¹ƒÞ?Äl#?Ïúh?ŸŽÜ?c†?›Ùá?Êk?ÈÚ*?ÇFÝ?„ õ>h”>Š¬?ô&?ï_?ìÐ?A½”?ãY?Þnm?ªõñ?®Ow?åY„?è1¯@ýÙ@q×>yð³<ûÔÀ?’t?°œŒ?Œ±T?ƒ'?åϬ@ K?˜Äc?d¯?>Îf?j¢¡?˜Y7?Ð ·?ùÀy@b@@¥‚?ºN«?·_Ü?´t#?¶#~?é;?åæÔ?—ø?D¬?mué?iê?£ ª?®¥†?1ù•>ÁJ}>­¡>³N”?<&?‰‘?’±C?¦]‘?–e?^#ù?JÝ¥>ç›>ý…Ñ?gh½?g>ñz¢>þÈ•@18í@Bì=?Ù®Ê?¥~Ü?¾4Ð?Çž³?žV?€6\?R N?±ð?.§ƒ?eè?ŒÒ?íèà?è]»?é~?ßJž?§¥€?« ±?O€>÷œ?¢Ž?ÍZÁ? á+?‚ ²?„À”?‡z6?Ÿå.?Éšè?Ô7'@«,?þ®y?¡bÝ?¢² @hÓ@"¡\?r>P÷>×S>á`?HœR?aZx?”Ç?¨ìr?’¿‰?g°?€eX?¨Ã3?¤ëÀ?‹Ò§?‡¢]?¨„?¨ˆÐ?'\•?H¦?ÖÒñ@ U"@ J@ CÆ?ë¥b?¤ù0?€nÊ>Sÿ>TÙÆ?"4?ä¡?¡G?¨ø?dÅ‚??wm?”Ë`?» ’?³—r?§ÛL?•7?SÈÌ?kn±?§Ö9?¤ß§?‰o2?‡[T? a ?°sî?®{Í?§Ÿ[?yÚ;?$ôÐ?)×Ç?+r?*›?€â>?z‰Í>÷WÝ>ïŽÝ>úk.>ë}?ƒÁA?§q¡?ÃÜ}?ÚšF?®ôc?LÈø?uî5?×~:?Ï[3?º=? ëª?ÂD.?Õ¹ ?µúî?§^)?’ê–?…Oÿ?_ä"?!]K?_îm?ÃÄ?»ýÀ?ˆ/?†Ó>H•>a ?‹Å.?¡ ?‚Lc?YVÆ?T°ü?_;¬? øs=Õµ=‘ãt<Ö‚¡=®?_=3?_X>?_e¯?a®†?ái@”¤?e£Ï=ü 4>ìWÎ?_wÝ?„ÕÚ?³^¾?›J>–ò;>”¡?êßË/>á^0>µB>•ÓÒ=ö¹0=¼–=õ{=/3>¨§ª>ßûº>3A‰<‚Þ@>[d>Í!†?$ÈB?Ž­?l¢Æ>¯¥ü?€?Jù?[Ž ?Mãù?HÖ ?Vph?;áº?%V>>þ@Ì>µ§#?‚z?`Eb?3³o>¤óæ>òT¥?’‚>?kÜ=Û)=š±;YA?4ré?`?g>;³=‰Àp>)¸>;ög>3V.?ø!?˜·‚?¿>‘Э> ‹?_üØ?_öU>ëÑ>ßàÙ>ßÛ >ßɺ?"¢÷?=VX? ç>ß“Œ>µ*=>J?S=Ƥ!=ÂV>ß ²>Þâý<˜F±=m=·J1>ˆ<„>žd:=ú=D>'±N> +ú÷>™Ìd>¸( >ÁŽ>ÊñÖ>Ô`X>Ût¶>Û¯Œ>Ûz>>š E?Õr¡@¨3?ÌEï?¥ +h?™Ö?™8ó>[VÁ>&çW=å) =`|&;ʳP>:î*>ôá¡?.«?m¦ì?]f?À5?y®?,Þñ?–: ?§íR>–*E>ƒ’>qãg<*Ž;%Ù?pàb?j 9F•=j\ó>ç²Ê>Àž +=³¨¯> ãû>U>€êB>§Ê>É·\>ã‘–?!‚ý?êY?UÆ? ÁÎ?-G>¡k>ÔH?„®?x?K›u?hÖf?…!ç?ø¬>=Tv? 3?sk½?Xžz?,~?N®Ë?ur/?'$²>Åû“>E†g>‚âþ>ôõ>ïtä>âx?$§³?HaD?nÓß?‚»?R“>”ø¯F?7\,?“•¾?·??IwC>Œ#?Y‰?^:?ÔÈ?©¹r?Y3?T>%?¬Pé?¥ÌÏ?ŸCe?ÇL??á«?\•Œ>O=̘>Bü9>ƒñ½?]Ê?`?¶?¹è?éím?wÂß>òå5>ñb›>ôMù?>!ñ?Zƒ?±X4?Í|È?ˆ‰Ç?bM?¤ú]?³pV>̽>õš?6©>OÐd?€… +?²ËÛ>±ž<®¥À?3‰ü?W©c?•Žª?œl?€*Ÿ?u>Â?À‰?Òþ ?‰ý?j÷?]é?Oþ?|‡«?‹ìN?!@[? aÇ=Ÿ%a<[šU?gŒl?p *?lFÃ?f©?uÇ?s7>ŽwÃ>¥¡è>B¶¨>¦,€?×l•?¼»õ?+Òí?/^µ?v¾U?†ã'?Äi?ÓÕª@û?ýD >÷l?8m?c›?[°7?`Š°?ŠQ?ÁÄë?¤óÓ?‡í?K‰§>xZó?”²?ˆ²à?µ%×?Þ7ú?É£$?º ^?p&¦>ø,>ø=g>øI„?EØq?o·,?’ÆP?š ÷?7C>‰Áˆ?ÿ5?+®?ÿ_>øÜ?jwÅ?‡>»?×k?幺>÷ú>ÅQ?Û“w?Õ( ?ïÝ?ítï>ús¸? Ó??mxâ?d'Þ?H b?až™?»Q?»Z•?»e.?ª W?y.…?×?»‹?»’m?»›ó?¥ÅQ?‰HÇ?Le ?êÞ?¥L¶?ù‹5?ÓÅ=?»áÍ?ƒµ±?qW¯?7ý*?/H?¤×c?¼¹>Î_i>c ?/¹?O«?¡h?¥‘‡>ûBŠ>ÿrQ?æò?5+=P%½=àê>øôÛ?:+a?¼‚?‹Ôr>‹®p?o0ó?û{è?ÑÓ¾?’»r?ŠÐq?5?«ÚV?¼Ãµ?‡:¶?LQž?ons?‡×¬?*Õ‡>ûÚË?%Œ—?­?T>ûø‘=€×=Ð$F?·¨c?¼5?˜h?Ï?˜»ª?Œ]É?Kí ?Q˺?|@3?|F¬?|I{?†H:?“[ñ?:µ„=ôýY?(yà?ªj=?7Põ=¬¨y?d$?½]@‡—@ÓÄ?£Jî?QTï?[t?[cV>Õ°>£x?V¹?šv÷?ÖpG?ì^&?ÇØ?Δ?ÒB[?ÀQƒ?X~.?µH@ùò@‰/@Ï«@;«?½š’?`þ=“Ö@>¦q·?æ´?On?|ÜÒ?'‚4?†Ê?L"ü?YoÎ?Cu6?;ÖË?¯èÉ?Ê•°?sÚA?M_?BI?77?YÝÓ?Qô?ëß?æLè?€kK?}³?|ö +?H Í>2+>Þó?cRó?/è">´.?RM!?¶H±?zøy? \Ö>¸ž>ˆåÌ?¨´r?üô/?‹b~?h?¦Í?°Œ$?Ö?m‰?{;Â?|î?·ÿ[?½€á? Ûó?ž?mï¸?†/}@»¶@„â>j>…R`?7pk?fME?Œ±X?•…ã?À«†?ýdÀ@1Ï@”|?|ɬ?Z¼?A"?¥È@?ßÊ?‚¿»?$ê?[b§?}Çé? Æ>ü¬¯?Rtë?_Àì?¨2?±QE@<“@K?ÄÙL?ºÏn?ËÉ“?Æì›?Â?¸Ïi?¥N ?ªùÝ?¥i?žh?|iÿ?|dÇ?|bh?“GO?½C?§Ž?ƒJ.?JkŠ>þe?yÒ>?¹ÿ?&ßd?`gõ?½‹?”·?|?–÷x?¦z >òzÑ>F®?†¿?Ÿ‰ä?P¸}?Añ'?3(>ûÚ‰@@Ó€@™¤@éý?¯³°?¨ÛÎ>û©U?(›Ì?ï;î@=s@òa@þù?ó‚?íþ–?ôç[?É›¨?O±Å?Š–'?Íi,?£j;?SíH?Qþï?]“Ü?®Þn?ô÷9?Ú­ó?¹Êö?ãÑ @Š•?­úÍ?OÅd?NJa?Bœà?%—è?~ñ?¬,>ú¬%?ö•¾@L:?Ñ©ú?ºÐ?ï±™?øHþ?“%|?‡›ý?襑?ðíÅ>þê>Ä^±?‰A¥?Ž—z?zt¯?ƒ@_=?î•?„ n?s¾à>õîë?•?²FB?¦%Ö?y”$?y‰Ï?y| ?¥)œ@á@.?ÅÃA?¿.?´F?Èx?öÊ?»çn>øú›?(“Ÿ?xÜû?xЋ?xÂF? _y?щ?®v +?‰ü±?§Û?ËÙÈ?”Ñ;?&Æj?½I{@…Ñ@½¹?ïWÌ?·àŸ?wð‘?‡ÿ?Šý³?"'£>Ÿà[?†èœ?Ó?ðï@Òô@‰Å@ +C@ßõ@*ñ¬?û_ã?¼ÜU?´&;œÌÃ7Ö@<ë=DP=’þä?9g«?‹“Î?„?’ž¬?¬ò%?¸¦ï@Ù@ý?ˆM>õè?--‚?B<Ü?Œý?ìt?Âd?ØÇM?¬²?“Ý??æª@ \X?²¬¢?u’?Wh?˜+w?á5Q@¶¡@•@o/?Ñ¿›?­Û½?ÿA@ò6@v.*@˜|ø@TXŽ@p@"Ãõ@'ÆU@Ì‘@æ™?âÌ ?¶}A?§g?–«þ?y} ?LÄ£>ȯ >hÕ>òy?˜óm@È?µ.A>ÿÅœ?z.@?Îå•?Í9ª?Ë‹.?ŸT#?»q?Àg@TŸ~@5^s?äµ™?ºQ©>ñ8?!£þ?‘•ö?†üG?jl?[†>ðˆÓ>ðmO>ñëª?9c?‚]L?ˆ´?­o¢?«Ó±?¼×ö?¾ÔÅ@'(@j«?Ö0?ÕÉ1?¨`>¡£e>ž‰'>‘õÖ?T(c?}@J$@$Î0?Óº¤?—IŒ?¨ +K?²~L?Ñï^?íÈó?÷'{?ÿð€?¼<?40½?CäP?m'‘?y«Ò?‰Y^?“RŠ?¾‡?°ÿ?l†Ö?l¹{?mŠ]?mÝÂ?± ?²Ýš=¬Þƒ?™3‰?°¬F?ª)È?¦é@š›@÷Ã@¥ò@ ̹?‰hÑ>‘Àí?=ì”?šÏÔ?üú @MV@2Où?ê)?ã5Ä?Ìú:?ÙvÁ@ +G@Eu?—ìG?™Iâ?Š}’?‡rÀ?·xZ?¾¼?Èa?Èî?6ˆŒ>x˜?’k ?ïÒO?ÁŒú?†å‰?P§y>çâ7>çöç>ç¯z?&?åöÅ?Üžs>çGA>ç..@%æ‹@1ô?Îe&?­U?µTò?º=Ó?;è>€Š@ +›Ò@‚…i@<?–å +?³O+@ C|@ÍZ?ÜH?仇?i +o?eV!?wŒÁ?hÓc?«ôy?À3?G ?\Ä?C•j?-è?FŽ?ù2¯@ Zø@9¸¯@.¡Ñ?~:ú?x?± ??¯“=?ØÖë?ã•!?ã?ãyÀ?£®ú?i3?zJ>̽>žÓ ?4ú¿?h¢€?â×E?áfù?G¯5?CØ>öû[>âtŠ?(×K?Dö%?Õ•p@æž?ѤÛ?[Æ?c`¸?]’Ó?PU?!ˆ‰?M…>‹ëÐ>‘??iJ?õë?²y?ÅÊm?ÔÊ€?ë>+?Ý’?º>Ô?Äö5?ûçØ?üMã?¥¦/?§@„G@ n4?˜i©?eɨ?nTÚ?vã¾?HJè? +Ÿ ?–Û>º\Ã>¹º>à9>àMš?¥or?¨??6œ?E#?5‡©?J( ?OüW?UÔ«?t­Ã?Š˜Q?sØ?Ç(?Æ•Ö?y$?~÷)>ŒUó> 07?8|?ÃýE?LÓº>2oÞ?. ?—U¿?¨û?ÚQã?Õª¾?c‹Ì?`‡?Ô(¾?ßYÜ?HÏ>?@”?G7?„7™?ÎêÎ?й=?ßAF?Ò¤&?B{€??UŽ?4'p?;ðš?ÐØ“?ê•…?‡%s?"eð?Có_?\–·?Y¬?ß@0?ÖGÊ?§nÕ?§”?²®>ÿü ?Ü-&?ý›/@oú@ê?´áŠ?_R‘?bÃt?eþ?G^W>ßÂÇ>óO’?_f?_nW>ùN >óo ?œö?¸V?|”¥?0xv?Œ!2?Á7â?É,©?ß–L?ÌŽß?w0ß?s¦Ò?¼w?Á°G?nr&?Tkê?gbÏ?y5E@V@@(¹œ?üIà…>ÖÞ&>Ë?1?NlG?€A?¨)å?•°??q€?7Y?pb?ƒ?Ot?XI>˜;>n©k?np?3§>?kù¯?‚£?_k!?Cdç?žw>(‚Š>zŒ? +Y@? =|?[e?\R½;½k0<˜ à=RoP<¡5X>o\3>²Dã?-½¸?rgZ?PÌ??–ƒ?1£>à;!? ¿?‹ÎË?‰!0?MÛY?E51>éj+>ß÷d>ßïV>ßá¨>Ã@ +>¾ÚÉ?^Ñ'?£î6?>¹H9Ü„?=¡˜Ä>ß=ó>Þ­">¹to>°U÷<Ÿƒ=æ¹ú>&%=}pú=žn¥>œðÚ>úQ<Ï):·1;—O@<¹-à=)Ö¸=rŒ@ª @2=@Tü@zª>Òˆ >ä3?n*D?tBú?z^??YÆA? +m>I6=;8ì=Üi>E4t> ¦O>á]Ø?5Õf?M@?‡?ž˜±>¤¸>âÎã>âõÓ?6?KI!=Àß=x¤å? ‡ì>ýX¡>ö·>Ð58=rë> +ßš>ž>JŠ=‹Ü>fßfÝí? ð ?XÃ?Àî?Wß?_9?_Eá? jà>½ZÕ>„Ú? Ü4?u¬?uÞ?uy>üßy=Œ[d=¬ùú=Xø>ˆB>ôþ>ôèÁ>ôÛa>ë,>bïÈ? 7?M?!]>ô„Å>J{? å,?.?_ +«?:Û?$ð? Î>d’Ò<)U?EF?kü ?0š0?`Ä?eû-?‰+‰?{}Y?{Üæ?/®À>ô'p>£%t>R¾>Ñ >í¯*?åå??"B?FÍ>ô<'>üì>öO·>ôK#>ôQx>ôXÈ>ô]¸?‡ÏÜ?§ D?¢¤ +?§»À?ôŽ?ÀTó?ôŸ1?ED*>–+ž>¨þâ>’ÁÝ=l—>Íøç>ö)>ñ=¹>ä˜q><'õ>*†±?Ã5??nÈ>ÎëÎ>¾?†+?™§?ÌX?ЧÎ?•~?”=N>¨k1>7qt?F®?b6?¢÷>õöÊ>ü7x?©¦?¯ Ÿ?«r>iÍ>‘:Õ>¡Æ³>ž0n?Å«?Ð?Í??Ò;?L׺?]_Ã?‰×.?”åº?ß'è?ßAM?º½f?ªÄÈ?s±ë?R‚s? %P?«?0n?8©ý?{.o?;í«>]Óµ?í5?jÏ;?H¼³?&6?œÒ~?úÅì?ؼ0?±¾N?e%¥>øA>øQô>ø^?K,…?x|?ƒä9?Šg}?O†L?&‘>“(>WÁÙ>ߟ">øñŠ?'?›‹?³²ð?ºÝè>¾âŸ>hUž@Fñg@L4>ûF:?/?|@3ºT@lI?z¢?Z >{J>Ïœð?U`?|Ô?ÝY?ÐsŠ?»†‚?»G?»š’?»¢K?»«c?¶&?²Óè?—3K?zi®>Ísú­Ÿ>úº'>úÃ?E²Ú?co>·gº>xë1>×¢é>ÇY?KÄÆ?WbØ?[nY?MžÈ?{5¦?h[I>ûFŠ>ÆÜë:éÝ@?ð ?õ¢ù?é@=?ËÕÇ?Žu†?JN?‚ý?¼¸V?zKÃ>û³«?IȤ?‡À?8Ý>ûÓA>|î‰=蘹>ȨÞ>ûîŸ?×óº?ûÿï?.íÀ>ü L?âv¯?âWˆ?$f§?/?;t•?\Óû?½+ ?ª´D?4d?:Ž^?@ ?VÉÙ?|\J?/}?Ïo#?‰)>Ës>è¬H>ü ?‚J?¼/?]ñ?8Ÿ?"?>·ž?#Ç?p>¨ÙH>!S?¨A?°y-?€c‘?{ê +>k ,>xcÂ?Mê—?oqÙ?Ù[­?Ù_æ?̱·?À+_?|Ù^?,ùc;Ê[÷>DZ?RT?7&?^…Ä?^nQ?b€ª?9‹¡?$>ãÀ¶>›oû?’_?3¡õ?o·×?|ûV?Sbè?PR?£ŠÁ?­P?”¾†?ž{M@\°@ 3? +Á?JÍ@ò?@Ög?WE?^# +?Ó¼—? 2Æ?ò?~Ã?½ÉC?²Áì?³fÃ?½—{?½zï?QOƒ?ŒÅ ?ÓK—?åQ?íp ?™K+?}ž?!Dà?©?o0¸?}a?}“B?€“ >ý†C?…S?èZ?çïÑ@8º?þeÒ?ªyˆ?‚ã­>•ö:?4å\?ÜŠt?±Rœ?FO|?` Ö?|àê?j;®?Z…£?¿>‘¦d>ÝN‰? ¨?e+õ?„Ê$?ØW?ü ?™7?r§z?z9>?|·’?âUÍ?íÈh?àI?å!_?üÙ+?öù2?„?ž»c?Ýi>?ÙQµ?¨{\?—éÇ?|…›?|ô?||£?‚§“?Š)™?¢O?Ë©f?¿³ã?¸l«?žÑ?|J?¾T ?÷þF?ÉOß?¢=O?°Ü ?½(c?eBÑ?"­?°8Ô?ÎDé?…5?Tî²?äG?úÉñ?]f%?2˜á?Zæ?Tò]@ !@ +ž5?]ö`?f4V?ˆSd?³„?-_n?†¾?Å5>ûÆ?“?„?@×M?ñï×?4Û]?Uø?{q?›Ú(?Î~ý?›`?*K?;‰?Eï?Yº?y|H?Ätó?û÷?°£ƒ?{Ý?×t>¯?M?‚bY?­,?‹Ò-?zÒ”?5X?6?ض?üª??Ðò>û@š@ +Ì*@´‘?—ß?zjÅ?<Œ¨?E2?ž¼?›Á?yìi?rý²>±¶¼>ñ+?æL?â]?v8(?uñW?A–G?\öõ?±q ?°·?ì?†®¹?YXü?Þ @Úà@þ?ñ+@?Ð` ?€àw?“®s?»K¼?Ž¨>ù ?ƒ^Ä?ïGa?Ôßð?±í¤?¹Ak?Çþ?¦0}?x›=?`7u?Là¦?P’Þ?H} ?‘ãÅ?È)?µÏ?š¥y?R,¥? Èñ??ÉÃS?\~P>š¯!?Zƒ†?›?ŽãL?‡°G?k?wdÄ?oKk?n Ë?ÅýE?ô?8?Î3;?¸}O?‹ E?h= ?¼¸?ÙÅ?B>,ú>즦?ó³?1çÛ?B¾í?a5B?€‰m?)Ò>õû¼?šxW?½V?ú?ö@ ›]?åäô?Ò2g?¿(?¸ +Ë?¹â?³î>?‰ô?uù?Æö?èª?Ž?Qwc@7qJ@z¿ +?Ò¾ä>ü’Ð?¶Øs?ô?-?Ï!S?Å-¯?Ÿ¬Ó?Šª?“k¥?œ‹†?ùØ@;P@éÛ?ä ¸?¯L?Œ# ?™a$? {¬?Öä?ù›?¢æ±?:*?S ?w$~?:a‰>Ï6ó?‡E˜?ò;?òj?ñïÕ?ÐoQ?™_’@;µ@†§&@N¡þ?—c?„*»?w-?’ø +@2÷”@Fÿ>ýí’>ð°ø>ðžº? +f>?j<Å?h,?p2ý?yN?³ÿ˜?°y?)4'?/}f?ÐÑ?Õr ?¶.°?³yÕ>ÖfÞ>“5½>Þãw>îä_?´0D?Ñ´\?þ&Ó@ ’ð?â³~?ÀøÓ?µÌù?²Œº?¦ {?£ç?È?ê¾?ÚÚ†?¾¬i?˜›?FÅÐ??æ`J?÷jL@)@1?l˜ +?{·'?±G•?°oÁ?±!@?±Ø?ÖÖÄ?Ñ.>IÍ>eÎî?bÜÉ?‚0h?˜€&?£¥c?–x«?•Ô”>üíH?6Ñÿ?¯ïí?Ûk@ uŸ@¶Ã?Í>”?äZö@ ȯ@‚ð?õÞf?éë?dV?ë’?®YÅ?®ç?ã(N?éª?ñˆ4?ùÔ™?Æ„7?®qG?æV@þ8@pù@*‹Ð?åŠ>çôª?~Àp@³@„Ç?ç”#?êýz@¬@±’?É;È?ÍkQ?Š²T?€ë¤?‚CC?ƒœ£?þE>š:y?Ö–@C€@9?ŸÉ?cC¤?ÇÇ?µÆ{?)hš?3>?¼+?·ë¤@ÖD@ Ü?ìÚ›?åM?ÃÎ%?¸à¥?¬?Ï?Ÿ¤??‘´?v û?›Io?ê“\?èL*?ä'$?å^e@ ^@lý?"’>é*©?‘É„?­ß)?Pé>ûb?€ÔØ?Àx?­¾ó?“)Û?—Ëü?¸‰ÿ?»EX?Àwq?½œ=?†¢ë?~{Í?Cµó?2&ú?“AR?¿$v?‚|¨>â·?`˜w?Ùml?ËÒ¼?›2\?“¸å>’fÇ>‡ -?µL?Å0á?ïܽ@­”?’÷â?JÜ?•Wo@„µ?ÁÖ=ò–k?bô?`ÛÚ?a‡É?h„2? r>ñTx>bX=á`è?*(8?”?¡Iß?¹ë¥?½»ž?Ù~²?ÏLá?‚¼$?„*'?>à?¶K?,*Ž?i˃?‰Z‘?‰3“?—dN?”'h?z÷b?zt?P?Kß‹ø?/šS?©Aà?§Ü­?§™Æ?§•¹>ýHu>ý€0?Œ÷â?œhu?tDv?N!?<?6,õ?‰4s?ßT%?ÍÕ?_UU?a“–? =´?›;Ä?Ì~£?Û/P?“]?ZØr?^KB?pŒ:?9?ºH?”O?…#Ñ?Œ3?Ãw7?ƸÚ?— +Ä?•k?“ [?–@¤?€›`?_fÎ?‰k?§Žm?§”Î?¦¡¶?«â^?×ð>?ÔŸ’?ÊH’?ÅO?ø†B?ÿ j?:gÙ>yË”?mŠ?ºÇm?Ùâý@‹º?Ö<^?W·²?gß×?Š\s?ˆœS?¦Âµ?§ßy?Vþ?6£¡?Ÿ´-?ë ?‚Gs>ü·â?KÂ?`S?KÌÈ? +YÈ? +>Q?_Á¶?^¿ª>ä²>ö%È>å½o>à/§?7ú??M¹]? É›? +"g?Büç?€ðÆ?_=P?Ré?9‰>Ã*>â­Ê?'ì%?$d>SÎA>0\`>‚‘¹>—ò¦?m˜³?š-?SlF?¼?$™I?T ×?zXŠ?£÷M?™¡>à‹W? '\?Ú_ã?Ò/à>àå>ÁÎ;=hñ:=œœf=ÿFÆ>øÆ?@ë?µ}>àoc?÷Ð?^D1?Jùþ?E7?QÜq?^¼?k@â>ª£²>®le>·×>¿Õo=Áçþ? ?_¼°?%Õ>Ý­>€¡“hØ>ßA¢>ßP>”û.>‹I<©¬;‚{Ð?VÒ?Z4¿?“îc?•1v>­å§@R:@8” ?Ò‘>’ïm=ô +>‹.?7É?ñ,?Úò?“é?N™>–Æ?_/?£°5?aÃ8?:Ë? r£?œä?® ´?¾ ð>?ýÕ=šjÿ>úä7?kÓ?ú‘?ák‚<ùú,>-õ©?Qôƒ=ö•>ŽŽM?dwC?o ê?“Šœ?”bö?“kÌ?h8v>ÞOÍ?*0?w€Ø?@±f>èY>‡>€=£Rú=×?`>“.>ÈD‰?)ì? †>í[ü>¶ó<>Jã?ð$?P ?w,?‡U?C|?#`?‚Óï?·Åÿ?¸Å= L? +M?_aV>´4ù>‘Mþ>ô®Ô>ô¢¢>ô’á>@æ½>ÇÁ?À¦>jn +?}p?jëš?(0P>ô9?Fq?tB)?hÕ}?\¸“?i÷™?t5‘?Wèœ?B?<Ï?5}¬>ÕÓ>—¤`?tF?¦–#?$!…>qvþ>±½ô>æ>Ñ?L!Ð?sµª?ç®>ôdÂ>ôla>ôq˜?(Ο?H‰?ªÞ?l?Ÿ>‚@?ªºŽ?Þ§W?q™Å?6¸_?™gÖ?®ªÙ>³ A<šäÛ?À#Ã?ò.ÿ?A.M>õá>ÑÇ;>½d>éà¡>õOI?´C? .„>óþc?rÚ?Ëu ?à_X?<‰x?E?_ï?ƒž>®(<ј²?l™×?rÚe?la/?eåZ?†{õ?‡ +ª>®œ>¹7Æ?‡çA?€Ïî?v’A?gˆé>Á1>½ÑÂ?©î?3ª7?¢ìh?˜Í?N?Wšg?÷)i?Æÿ#?ÈŽ>иU=¹>³VB?Seé?0Y¸>÷£Þ>ÿòE>÷?_Q!?¹ê4?“ˆ³?T ¦?*Že>øÚ??â?x<¿?.ÿ>øP ?­Ü-?êàF?Ÿˆ€?x“º?x¤ª?x²A?;ND?,ñ?>ã>ÿ²²?*¤Q?/§P?©£?¿œ>?Êâ¡?Ç»Ð?±ö9?´”?yn8?ywe?xØ“?w©3?•Ëq?’ʬ>ùºz>ì˜>­þ›?D½?ˆ×ä?¦êä?ú ?÷?Ï?ì¶÷?Õ‰š?»¬Ã?§½Š?—Ò ?‰Óò?o2?y¯J?zÑ!>À©…=™ Ð>9Î>ÐÓ>úÅw>úÒ>úÜS?y¬Æ?‚üú? +Ö!>ûÖ?‘Ûk?’kE>°øX>ßv?ÉWâ?Éì?n±’?`&>ý<(?TÄì?ð#?º=?3‰?"oq>ñ_†>ð|U>¦Û?7W1?™(š?¯&??µ4:?U—6>ûÛÀ?2Üø?CȤ>õ~¦>ÎG€>óÔ>üT?×­£?û°¯?Š-Ú?u#k?öç?ú‹\?¤7L?š0š?WeÜ?]þ×?–ˆ?††>ü]á>üdØ>üjÔ?(‡Å?|u?¢#?ÞZ¨?¾É=“cÿ>‘ÿ>ü–ì>ýYL>ý +?g]>ü¨ >ü®¤>ü°Ì>ü·¯>ü¹ß>º!>¢j?¤ ?·AÆ?€®o?}20?g ?RFÔ>üÛ?Ö?AåK?33>‘Ø>ÜAÙ?|ò ?PpÉ>üš¤?‰£ ?î*2?šžˆ?ž>?O +i?} ?0C„>ý¾>ýú>ý k>ºë?I¼Ü?}?\u,?Kç{?xã?}>¸<>™«;?„/Ü?ˆ&?½gP?¨Õ?–©?G>ý ?Q=;?Ë _?™ìý>ýL?Öï×@M6Ý?çž>êww?¸µè@ âÌ?Ò‹y?œš–?S-ñ?4÷œ?Ž+ ?¤NÖ?~D?n]?{ˆï?}9?|ÛŠ?}?¹¢?¸Nœ?­è>?¡fÞ?MF‹?\¿?l7*?{£v?…†·?ò?CñU?S±?‚ˆ™?@à4>šàC? «7?V É?€g¸?‡Lì?¨&E?Ç?¡Á?‡6?þŠú@îø?‚m?~¦?hâ¡?|ÕM?"€z?à @83@B´!?`2a?YJ?Š%?‹¨ú>üµq?ÒÑ?„’ ?ª­x@æ @?Vùz?eLÏ?|’Ð?˜6?Æ¥z?éýË@Ø^?Ã’ô>üwN?}:”?»?îB?Œ-Q?Të^?,ß ?vǘ?Ž|ß?lwD?RG??{;?‹ßØ?µZÏ?½ ?Úaƒ?æs×? dO?•®ª?‘½Ó?–Ð|?›Vå?ž„Ã?`Ts?Y?¥>?¾@Ê¥@ F?{Ã,?z(p?u¹8?]¨6?92à?vsK?¥2?Ê@‰@Û×?åÐè?¼˜Î?‚²º>ûeÒ?`Ï?Ÿ1È?uŠ?8Û?ˆé2?°ˆ¶?¡9#?’&–>ðx%>‡û?&Q?bß;?XOÓ?[¡(?¬ƒ?¼¥@µT@·:@6í@@6§? j?M€?~-?z€?÷½>úmp??Rç?Fò³?&©@?$× >–Þ…>Ó‚&?ÀSÈ?ª>ú>ùýå>ùîC?2??Rð ?VïŽ?†Ð$?pá>ù£§?U$Y?Üïu?ÚŠ?ÆA6?¿ ?¹[?Ñì¯?ù!5?Þd?³¹ö?‡¸å?)&¬?[ ß?‡Àô?‰¨+?‹‹ø?±Db?ÒÂR?™öê?K +›?¬™¤?æå?™¡q?;­Z?€˜É?ž1¥? 4?A¬ò?A3Ñ?O S?—ÃH?®"¤?äŠÉ@bƒ?Ëöœ?°_8?ˆüq?l,=?/ ü?¡>ût_>÷4\>)_=€)>Ê™I?/@Ø@I)$?Z‹?b5p?–çJ@ñ>@÷Ñ?†µÿ?ÿa?5|?>ño?·?×~Z?Æné?ÇŠo?Æj?ÆÆl?œ^¶?8<@È@Q;?ËO©?¡®¾?°„ê?·½G>ô_Á=ÅìÒ=ƒ=…½?1x–?t€ò?´*?$º?”6z?·! ?×áª?ãù‡?à¿?Ý( ?ÓÒ9?Ô•?énð?óxÅ?ôð¢?ðÓ?â6ˆ?Ú¦ý@†j@Š`@kU?ð`t?‹ø >ò•R?Q½?pV?Ê(@@ÿ?â%“?¿²â?½Ç©?»¡?ä"Å@ ¨y?Áû >à?J9?¬åŽ?Õ7Y@ÏF@/T@p¼[@J!«?¯#?·àþ?äàš?á­ý?Þ{?â[¥@ +§?ý ?=ðüž>:¸Þ?ÝŽß?Ûä£?žA?Žcz>~ö>MÈÌ?Äa?˜Âb?­¤?¶çC?šôá?-Ë@Ú@úü?ÙOé?²ž&?3bâ>} ? Ë?CÇÐ?Ž»?Æ8h?e/Ü?Dú?±Õ£?Â×o?ëi?Ð å?l­v?Š®‹?êF(?Ý(?v‚?uâ?&Cg?.ôô?ŽÝ„?‹˜y?ïA-?ø†à?W 9? ?sQ3?†4'?i«¬?P»ù?¡œ?Ïám?Ý3€?éÊ3?ñç˜?ýæ¶@Æá@ÓÎ@~?ìA”?Î)÷>‹aV>‰ã?‘ñ®?”ºñ?ðd½?ó\Ö?I¸ž?ü?I@?©ñ“?FBÒ>ï\Õ?5h?hA’?h?eü?j¨~?~ëb?¨Àä@ u2@ ½‘?ðè¦?ò¸?Úúy?Ù}$?Êb ?ƪ?‚†?fÁj?Jmv?:zæ?V¼?ßr?h>ï“$?@{È?¬y?«‡ˆ?£}æ?¬ùâ@|Ý@iæ?®Ò¿?±‰?Ñ,ä?Öªf?85?8[ž?C ò?Se? +?±x@?ÕÉ×@¿@O+?ãT?Ö^Ë>ä>ïlš>åº>ãÏu?•G}?ª¹i?;×€>ãyâ?­Kû@ô?æÁs?ª\R?ªP ?ª>!?¬·?¾g?¿¿?ªý?©õZ?uÙ÷?b{§?;“£?&,@?#K? iØ?Œ¥U?ðì^?àøT?¬P?©~?CŠ?FWN?ìÞo?ùw?ºÙ¹?©é?‰ø?k”æ?h¦?eÀ,?R8›zù?N›þ@‹ùÖ@…ò>?`ê9?`Ù_?—¶?™ªè?\ÉÀ?7JŠ?X´Ø?{*?„ÄÄ?ù?ÐJ?„Gû??´]?±g”?tv¸?fÖâ?…²Ñ?ŠÆÑ?®Ÿ~?ÈD,?‡°ô>ßôu?Ž?7.8?6“7?_Û?_Ð(@ @5Z?üØã?îNù?¿Y?§À?c(>ä…‰?`»?ß”¹?üÆ@@ÄÇ@=3ð@}s@–¥?¹¶=?§ù?”\>Cb?†@n?ÚË?ÈŸ?¹üŒ?ªñë?_kÆ?rœj?þŒG?üôx@Æ@º%?²u¥?Z-?Sqi?«±?5Ÿ?I2?(øó? +Ã:?N?_m€?_k +>厾>ßpe>2l=„h?ZS?_}%?ÆZ@ +Ô’?ÿ?ÛXÞ?Ð4Ù?¯8“?­Á•?…¤+?‰ +€?eþÛ?pù?mמ?ZÔŸ?Gy?KtÃ?­g£?ú6?×Á?†?‘?{d?ubì?~úµ?”Ø4?–£&?ŠÐ?Œy§?]g­?K¨q?ãÄ@å7?Üo?eüô?ª´·@ ƒ?Ýäê;äÝ0=§=a(=<‡û>Ôék>àM?‰>?šé½?/i>à`Ò>·Ë´>§F/?Žà?/b?Ä9>Ütö>Íkl?Â?t¹??“Ã?7³¯>6Øp=ÞÇå?øá?L²¸?e|,?lž ?)¾J>à«?>ઞ>à±k>¢ºÒrØ1?®kâ?²I7?±N?¼|?8"+?×=î›5>—ÒP>àše>ä£>fx>>åÇÆ?F`û?v>/>ê*=ç,©=¯Ñ„8#p=6Qy<à„Û;eôÌ!>ßè•>ÑQ[>¸Ó>^D <ë\>T‘>MÀB>ßHà>ß5}>d“ >Kðw<žˆ:o+€=?¨ =­¥?ÊÝX?Òg.>¢»à?µ$Ñ?퉧?ŒBÕ?~Ø•>ÒZ>ß$p>ëìü?_¥?…,?(gj=D\=>RùÅ>º¬9>>äØç?7"´?D`ô?IM_?kÞ¢?‚H¶?‹íÚ?•’è>å_m>á±²>ür->êrÌ<}€p>€j>à—>áyÕ?Æ{?ì‰>«—ç>ëÃß?YÆN?£ >îK"?º¼y?×>ø˜?>­L= tñ=X;<ßFv>×&Ë w?B(>õç€>gË>êÑ©?'§?! ?uê?u” +?¥©f?ŒÜ?oõä?tôa?w?—Õz?¡â?R|µ?%È>ä1$>£hƒ>Ñ0â>ô¼‹>ô°×>ô¡>˜>)¨“?¿C?W)0>¼p!=êp>¯Ð|>ú®¸?‹ÝM?³”¾?Q9¢? +ë>?Q—Ú?tJÿ?<;7?%?µ}Ä?ÝSì?a¦Ò? +9ì>ÜRa>ŸÃ™?<¨?tT ?–¾£?©‡å>ÝÁå;•W;˜ €=Aÿ`>¹¡#>ôx ?>÷W?T@?—)>ô–™?GO½?oT¿?>ÑÀ?2?ŠÉî?¤Å=>Ëgž=Äb"?5]p?i|v?ý>õ?ѹ?õð>Ë=ªØ=ßG> Ý>Üki>õfN?dú?u~÷?L¤O?÷#’?Ø`Ý?~¼§?b9v>÷a¿>©ém>«F?w?,‘ç>^ÜÚ>ãc§?@Ÿâ?é?¤Óä?y#Ü?sÑ?ŽV>ø8?BY?xUß>Åk=<1??/e}?‹ê ?¥}¦?¬?T?ˆÜü?xÉâ>½ðƒ>Xýó?T÷?yˆ?’G[?’àî? >·>ù<²?Êh.?ܶ.?|DÑ?yt?yƒî?o‰+?Ù? {9?Þ^?ˆ>ùÓ;>ùá®>ùí\?B>Ä?»…V?Æ•?Þ{¦?Þ?ãh??Éy2?¥9?3ÈQ=ŒEÉ>‘  >ú„>?ˆ>7?»7?OÕ¿>ßOœ>ÒÙ +>ÆbÒ>ë- >úß9?~ã¢?‰ ?8}Á?>Ø>£’‚>˜E?Žñ?’ê•<Ðð>_~>X{P? +U"???zØÿ?\Ù?!³¨?Co+?cap?-|?>²À8>„EU>B½¥>ëMŠ?:Ç@?Êä@4C?²dŒ?O—G?ˆÏ? Iy>ªª&>Êe>ü²>ü)?ƒÙ?t ˜?|<é?ëi?›ô3?ìÁ?Ý­R?|_Ì?nåe?5"?,ˆõ>üuÁ>ü},>üƒ'?C5?X±†?^™b?d~‡?=aZ? +µ>ýËM>úpþ?Œ®?¸”-?ÙÍ?ãÛ’?Ž-?`“í>‹Åc>>è\>üØÐ?šÑõ?ž>!?›`Ê?š±j?½²ö?°`ç?!sç? 1r><ņ? +à\?ä…š?Ë’¿?~GV?–c?¹IE?»A&?Å®¤?Ò ë?Ô—³?ºõx?ª¹¥?™åÜ?ŒyÆ?¸ë?ÃpK>®®M?‘ŸY?ª„ ?Ì,Ï?ÎV8?i¾è?jY ?ä?秪?µœŸ?³È‡?}· ?fÜÚ>ý3˜?9_Z?¨’\?vD/>ÀÝÒ?-‹?RO>?´&q@½§?Æó?:ãV?™ë\?Õ;·?ß×Ë?êrØ?Bø®>s¬ž?S?ƒ”?R +>ý1?rUy?}k[?U?f>Zä>bu?)´?Fæa?ž#?oÖ?Sh?&ž >Q¤9? +£+?ž„Â?t(á>ýê>º“ò>.@†?-Gû?’Ù•?ü¾Å@2[@RÆ?ö\?öUX?ù²r?¢vüñü?gS/?|ëƒ?eò8?]ö%?ûÒ`@’v?‘¥?†ª&>üÓƒ?Ýû?;¨%?-cV>üÁ?X/þ@ L?ëâ?_+J?q6^?•»?¯ÿP?èêP?¡,X>õS•>ü9E>ü?ès?%‘>¢Í>¿P>ɘ>ük?jŒ?$5ä?’Œš?¥™/?'N<>üK˜?dç?€Îµ?~_2?|3–?£XÑ?§ø¥>¶{>ТÇ?”1[?’ê@@>Nz4>C%£>þÇ?S×­?ù€g?õo?ðˆé?Æ™Ý?g?, q>­™‚?p%ê?ân¢?­ÿõ?Z·y?1ð>û{é?”7G?Û}Y?Å ?²à˜?p£?*6¨?¦&0?Îf?Q­>û#´?0ÿ?6PÇ>p!¯=§FV?™U­?»+@ôC@ÄÎ>½eƒ\?à6?èÈÆ?ýE?i´?\så?`4T?À©ž?­aÚ>:ád>lÞÍ>úJa?(’Û?Û%±?ÆÝ®?3 +–?Na.?šMÌ? ¼¼?Î^U?•Ô¦>P¸a?(—8?øŸ? +¾ ?”ý]@p?íÉí?yl\?–v?½?Ð?‹Gœ?÷Ó?ÁûÂ?÷e“@Üd@AG?£º?b #?es?e@!@Ï8@?hŸ?5é©>£Ì}>ëU'?¡Xâ?ȃJ?e+¡?0.?Üu?ø€I?•\ø?€Ø´?liÅ?\0÷?nGa?u²ç?oÀN?bÎ?û4]@nì@?ï@:?Ø9?¾Ëì?ä=?| ò?§Î?¶òž?‰]Â?t–®?¤"æ?¯`j?‹¾î?rÜ?‰–¥?^=?×¹õ?óéÎ@ +J@Þ?²‰Ý?uL?Ž)°?œL ?’‡™?Ž0„?8¸?s ‡?¶?X?äË`?¨ß?œ‰?šºI?¡Kñ?ígS@oŠ?´qµ>ò›>ÆF>‚ák?Z;À?Ìm?÷}Û@~7?ÓÑÉ>ëîL?M8?´á•?Éú(?ú’?Û)8?{“þ?Ë?¼ñ?ÈŽ«?ðao?꣊?ÑŠ…?æ>@(ÚÎ@“’?ïÅï?ðUA?ãÅ;?ß? >úæm?âGs?ï”?…¸å?nâq?¼±0?É*ôî—>П>’z?ØÒ@!mf@!Ì?Ëžù?ÇžB@“@-Å?ÔÛÒ?Ôñ?ÙNÅ?Ò<™?¶Â?°cx?°Q7?°:2?Ôä?êÀ¯?ÝjŸ?ÖºB?ôöÓ@ áÍ?Ú2‚?Ak˜? ø@&³e@ÿˆ?i²ú?gab?:ù?1¹Û?õ¤?þtÒ?½u&?³FP?Š‡¯?vR}?j§?hŒ"?ºŽ?æ z?ã6‘?àD(?žÉÝ?{ì?i¯e?ñP½?ß?Œ‰‘?’àä?¼±e?¾¾?¿W{?Àªø?~-µ?f×?ÙS,?õþ#?Ï‘p?²þG?›ÛÚ?ŽF?t¨^?HS?|ªi?»-ç?Æ¥™?ú ?øHn?Z?C˜?¹ç?ÂÓ‹?ÄìD?ËØ?€,3?!=?›÷_?ä¬$?ú&¯@€Î?ð9ž?dn}?Xa|>ä!²>çÈ¥?Ó‚œ?Ð+?4àr?\6?£½Ù?¿.?§*4?ž¡Ç?ËH€?øwø?ÝðÏ?ªNz?°ZU?ˈÅ?Ê o?È”ø?Ç2?¬R?¥½j?1/?æ–? +‡ ?(º?H$x?†>Ù?Xã>¦»è>Î÷å?8®K?/‡Ä?`êÈ?a«e?°¶æ?·Šz?ª«?§'?¨¤J?¨ÿq?¨ï÷?§=?Ž’w?/–Ç?UžÔ?¢]? ÞÑ?Ó•’?Ö[?©-G?šî®?ÿS@=µ?Äè¯?&¾?#‰?3½W?a–‹?ÿ,¹?ý8?ÄêK?Â"?Õô¶?ÖîÒ?ÅI?¼.?ŸGÖ?{ƒ:?mÓz?yS\?| ?_ðM?aðÐ?€È•?{~ @nM@#ùO?ÔëÆ?¦÷Ü?ˆÜ÷?_¹W?5Bw>õš{?£¡@*+)@,§+@?©ï@>âq?jg?xÇZ>úm‰> ° ?‡Ç{?ÍM”?¾ë?§ŸÃ?Ž®Ÿ?!ÿ^?FZ:?à/ÿ?ã\p@T»@¥Á?¦ÑF?ƒX–?±VJ?Á©…?Þm@À²?Ùƒ0?K³D?X¡—?za?oÜõ>úAÂ>í#?Ë?ß‘“?Ž^.?_‘¨?-Äx?z™?¢?@Ë·?þ¡(?ÔY1?Æ-??_¯¨?_Å"?¨úÕ?¤C?ÂH ?È€ž?tø²?*[Ñ?—³?ÆL?¾BÇ?³f?’ŽÜ>•Æ>³Å3?A™?E/C?8¢m?+×?iô>ùH??¬c?`%Ê?Ž/‰?¨$â?¿r?àö?Áì!?NÈ|?9’â>À Ö>ºÆ?HŽ?EI?/_`?5ò?rëâ?{áC?©Ï?º¨‚?ÓÐ?`— +?`˜X?`Ç?M,>ê\>ã-š?s-ä?õ>¿á>¹Ó)>öÚi>÷ÁÀ?‡j0?¦Ô9?K.í>àÌI>ocê<„[ð>&s>ÈD>Õ¢?Vÿ?ž^>岕?j?baš?`̃>°—|>{Bï>Ä´>àÀ>“Ë>7bÛ>&@z>[>€"y>àŸ/>àšV>à>Ç'÷=³ +i=ƒì>å/>àb9=´3?*–(?J¯t>G÷=³ =Áµ”=åÚ¦=•¾¼=¼v·>Æé>ŒZ>ßv¬>Ô†l>‚¯­>‹ô¸ Š>ѵ>¢S^=Öe‹@̤@}|>8›ô>Û¸„?\é??:ç?Cë=£«L=\ô<äÞ©>S?£>¨í,?Bè?˜Sé?‡0>!PÊ=ƒµè>ÉŽ>þžk=h>œ7z><±=r¶Ý=R³Ó>üg6? _d?p'Ì?TøÂ>ûJÄ>ûI>úÅM?8Râ?¶Öù?”l?-ãÜ?¾> g ?{¶º?cHr?·ü? S(>ø5¤>òã©>ôÐx>øêU?د>¶\Æ>e¯Ù>Þ’>««?<Ð?FÀ?vj ?qÐæ?b¿ï?€¸?ŽUÀ?r{‡?\*Ø?%æ>õ’n?Q >÷°>øCà?Dþ?S‹?„éh?3'ú>ôûX>ôéþ>ôÝÈ?%ˆ?8ÙL?2E§?+¯6?%G?ˆ ?:Ì>ô…0??Bð?K?tj>µ7ã=îÃ=ÑÔ&=¸S†>ßÆÇ?N5?rh3?†n?Ÿ Å?¹Ç>?B¢a>ºÙ&? 0Ž?1&)?>AÁ?Keï?ÀS>ôgå>ôl$>ó^T?[¢?¤¥‚>ÈG=̼ó>ôd÷? þ?{>ô¤*?Z5­?m#â?“³?¡o7?M¥e?6uÙ? c½>ôê„>ôöô>ôýÃ>õ$>õ”?Ç?&à?âYÇ?ìêv>‚ƒé>Õt>õvÙ+î>kP—?§\?ƒ¢?¶G„?¸}i<Ì0Þ= Ò?³–Î?±2“?Û?Ûvñ>׿á?Ý?ÄÌ^?À‡?8€m?2h?+Ž!? Þ> ´e>Ù?ëáe?Êó[?±8?W|Z?÷6Š?ŧÛ?ø‚>Íí=º|T>I¶^>®õû?øÿ?w¯?Iá™>ö}+?øI}?E 6?xg[?ꛡ@´Y?ŠöZ?}J?pØ?æž?u™>¿«ž?ò#>þàé?3Ÿ?F+?‰i?”ÂW? PÐ>ùO>?,³? +<Æ?lùü?x ¹?y–þ?xÀ¯?lï?Vzë>ùËz>ùÙö>ùæ=?Å?G?;«?>©Y?dÅ7?ŠÄ ?^Ë*>úLU>úW÷>úf>úpâ>ú}„>þ”˜>ûº?±"í?öäò?vœN>úÃÍ?Dze?ZFõ>œ#>4=º?ò!?šFƒ>µA¢>^_>>E˜¤>.`:?"4µ?cÎ=Åk >f?¶^´?¹xp?¼5º?ŸÀ0?¿Ž?ñs>ûØ>ÇÉ>sþø?É_?Që?3ÔI? õµ?q.>ûãÏ?­ÌÎ÷Ð>GG=¨@Á>ÕÁ >ü1æ>ü9È>üAÏ? +ÞÖ?Y?ã§?Ð`-?ý ?,x±?/`Û?8|n??rá?9Œò?3¦_?-Ã*?'â\?"l? ç?++?4”?S(6?|¶^>Ô#ú:Ø|?(•?ƒào>þåØ>´Ç=?\;?|ÙÕ?:?!_Z?ƒÈù?„cc?œOð?Ÿéä?‰Çn?‘²E?©~Ø?¥?Þ?} ?x"Ù?kT?2d:=L2?Ñ)?½ªS?¼»Ö?½×k?ñÌõ@dÌ?¾ŽZ?a¥?Zx?V¤?.¿6?%Œ‡?‡‚[?¥¾–?!?ô>Äíž?ߣ?ý<?îƒ?ï¦?E‘U?,Ð >ýA>>â,k;n;Ê: =+µD>ÇR·?­»?1?4¹?€s¡?±?–Fÿ?}G¡5ø>«Ïs>¶ho?iG¥?‹•?€¹Ò?}C?Û >ýA??³j`?½Jè?ò—M?âÇC<4=Øb9>ÍQ«?ê„ÿ?ãH€?͈«?Ãå ?«¦ª?©‰Ø?½â=?–•?.Óî?)½é?$©ï?È×@!Û5@s ?ýh?Ƀf?±þß?am?} ¾?}?}  ?I>ý?Ð ?â~:?†#?|ôŒ?¼õ?¼Io?—û•?’Â>üã³? U?ša´?‹‰?,m?Hb?™ 4?µã?ïH³?íÓ?ë]ž?«†? ûÁ>“BÑ9Î\ú?BPÇ?·ŸØ?’ ³?mJô?Žçl?˜f¼>åö> +!?eGõ?’@è™@Ø?Ÿ¹•?~Ý2?uÕ?lh?y»L?|B©?»L?²0å>Ár? +‘á@VÔ@Dê?møp?šg@ʳ@ k¯?{àp?ç¼?ûèq?ÇÔÝ?/`í?øb?ât?˜óþ>·j? +¤+?S·Æ?Rû?®®?‚¡??)m?cö¯?ŠÙ?¢Ï’?³]r?„Þ?Sî¸?žùÍ?½žª?X +?àÍ?ÓJ¸?û ñ?£Ì°?ˆN?| +?zø->V=ÿ{?¢]/?¦r?J–?”l¥?`+ï?\=Ï?z›2?Š6Õ@¦@ ©{?·TA?¦°~?tc?wLé?‚·?„ï€?z*?ŸaÉ@él@bÿ?Ù@²?¯çà>÷[?.#?¢=ã?•ù"?pè?wÇw?z¡w?¦î%ü?†ó?EÜ©>ùF—?: ¼?y,¨?8Ÿ¦>ù õ?L'º?ƒV?ÚÙŽ@|¬?«žç?@Ö¸?ÌM~@ Ô»?¼{Š?…"÷ ñ?›%Í?º;‰?F€??eñr?w7Y?ö]u@ 8?éÒG?æhc?& >¬8÷>¥™>Ú ?/³?CA??k³?;Ö­@¬g@äR?Tår>öý?¶•?Î+ÿ?Ü(T?Ö?Ò›Ð?Ø!}?Û¾?Þäó?ñÿf?õOH?ðAÒ?ð¿2?Ç>?¹«Ü?*óè>õåº?hÕ?´Ce?Š^®?€Ôò?ö¸¡@ Ç?è´s?Ù–t@*l@<Žf?²Re?o8?ZN?E.?AÑ?>qu?ŠŽ¡?™÷³?”û´?[?Rsè?*fœ?±Gä?ïÏ‹?Ÿ\q?N¯?´ß ?ô$¥?’Éü>ò-É?b<…?¤ù@Ð@2Òb@>…@N¼Ã?ð¡Á>B\ò>ÿªö?18®?‚h£?8ä?pÚj?v*H?ƒ…?ŸMø?ðp¶?Ñú‹?=¸E?`h ?Ë^?È#¬?ŨA@æ•?ö]?‘Y&?î?%mç?4ñ?Öó5?ÖÆö?ºÂ?½!-?yaX?`c”? Ñ@?°FÁ?Ÿ•à?œ ?sPI?;ëm?bx?†íy?DŠ®>¤=?hsN@ +ê3?ò¹y?ié?øÐ?Îð™?Í|Ä>ݧ>Zéß?×?å¤z@%i×@.œ­?Ú#Ê?­O8?‹^R?x]?}ô*?Àñ?©S?š°s?eˤ>Ǥü>îñ¾?c +?Ny‰@ab@l¥?ˆƒ}?‰ÝT?l­?fèA?ß9=@fJ@u»@„m?×Á?¬¼#?U ¹>)Éù>ã¨Ý?…X×?‹à›?¬Lj?¦V«?L ?NÑ@;´@ˆœ?r!ãÆ*@U¢@0OE?‘òb>g>?xÍó?Ô.o?¡?? ?/x?ˆ4Ç?”„?âÖ“?âÂ0?ùïü?ù¿?-W·>¢ ~>Çß!>ÐÚ»?þm?+B‚?­f>ºÏE?üÿ?ÐO?ÎÉ?mª’?jº@O´@%(Y?¨/}?a|6?’k/?© Ò?ØÇÙ@ó"@ê?þ‰Ô?ßΈ?€?OÜ@0e@/Ó³?ƒ¼?3í(@˜Ã@2kx?Ëí>à›Š?FÓ‚?­6§?³¦j?áý?â?¯Bg?²1?ÓTÇ?Ü©?Å‹¹?½ü«?ÎÁø?ß»h?˜PK>…0>Î-¼?p%´?~÷?Úâ,?Ü\ê?ÚÙ?ÞSc?‰Ô2?_Îÿ?õæ½@#k?øÍ?@·?£ó?ÀÐG?Àm?©q?°À?ž¸?9?™HÅ?¥óÜ?>óõ?Q?‡ÛË?Æt?”Ýf>ß‘|?!£“?¿¶Ž?ÁšŠ?Þ³®?ÑÙW?Ø H?×½.@p/@*?ÒÍ-?< ü?(ì>ø©†?D_R?Ù˜¸?×ü?§°ð?§±m?g^q?f5?ÙT?Õ» ?®ý?—#c?H¬¡>édÞ?6Ô?úX?“Œ?•Z?–?ßË%?ßÍ‚@ q_@ Ï#?c]>ôrÁ?`­x?’Z?ƒ¿Ê?_ø¢?/û“>n4>„ÇÃ?«i? n?Гž?Ô?ó?ƒ{`?i?bsB?`7?M>ègb?0\’?s§?/Cv>“>^ÉÆ>àlF>ãÓ?æ\?ª§?8jå?5Œ?{»4?‰•I?ÕO@?ÿÛŒ?§v©?2OÀ?$7â?w”?P`?¨c?ö=·¶µ=˜š=p×é=1CF?F†?]Â?`»y?`Þi?”ë??¤?KE4>ÇŠ$>Ít >àér>àêØ>àíÎ>óŒØ?%l?2Ñ?`êÔ?`éÚ>|ªƒ>in¡??l>øN>à×…>àÑ>àÌ!>ɾ>¹E–>┳?Y/?*?^oj?`”³?`æ?^tÿ?S¤ ?J„–?N£?}=þCÉ>N¬¸>”$o>Šø³>Å>^Ñ>aõ>™ +²>ß>¸ää=Š‡=Tÿâ;ÔïÏ>8»Å>Ýàó>žò5=’Û¼?/f„?Gçª<ŒÊ ?ïêô?ó‹Ä>{B>Z¤?’f?úr>ÿǸ?)Sí?}.i?ù?@jú?Á.j? ƒ~>B´>©<Á>”n¢>k?Ÿ«!?­Ž>ý,¢>ü¬v>üad?YÖ?·0º?©_¸?bÖ?4ðò> ö>í·?¯²˜?ê£?7ó?˜õ>À]à>Wߎ>­â?bßâ?:À¼>ø8ï>Š)Ú:©u>qv>÷Šs>{ ->A¯È>Ìj ?€[?¶K¶?˜:?ŠÀ÷?†)?‡[ +?=׺>õÌt>çTk>èšj?ˆ +¹?¶íž?^c?g–>Ýf >VUâ?ƒè?M&9?,>ôëA>ò<%?W?‰Ê?¥”/?^É“?8xÒ?7>ô”P??Ô?lÚ?!~>ú¥¡>$­¤?ƒ^?´Æ«?PS?&š§>Äqž>‰R +?B§f?ti>êÎS>Za=IaN>±‡w>ôz’>ô~Í>ô‚? "? e?:ÎË?4 ?‚l?Š^É>ÌÔð>iÎ?R »?„—Q?{p?tÛ=>HÆ>¨×>ݪ+?wË>öš™=³ÃK= ?¥j?¢³®?ÌUw?Ú_ï?G$¼?y9>ø¿Â>õŒÄ>“½>“t~?d«?‚I—?wû?uØ?¦K©?®?³B?¸?ë?o¹?f1@?¸«Ù?³Å\?6u?Aä}?!{ ?i>ÞKd?¯9?–³?ˆÚ´?#qó?,½ã?%¼?3jO?¡Ìn?žÏÀ?t|—?‹ë&?»f?˜~h>÷lf?Ý÷?;Öì?øa›?H1?xï?«\|?ÊBõ?÷4?ýŠ€?œs?x×…>ç¹>ŒÆ?"ü‡??Îë?2£{?)q?EM?<Æ>þo¾>ù„'?‚sÒ?vLã>S˜z@.ù@’«?yÊS?cu1>ùã/?€•?M^!?i·b?žê`?eÉO>\|>ä5?R1_?6Œw??ÜY?›&?%>ú•E?F©S?y ¢@ oý@5‡?áÊ?¡´¤?…Z!?zóy?r˜?^YÖ?´Vi?»CN?é_>û6l>û>Q>ÿXä?\«?`‡C?4ûÛ?2±•?ƒÚ‹?}¢?|P?æê?°|[?p|ç=Äü?µ¾?²M?c•D>ÃË×?UóÅ?ž],?P×°>ûúŠ?¤Ñ§?çÃ?Í»?7 Ë>œ¬>xÃ?M²Ç?|<¶?38>üJ@'«Õ@,fV=öy‘>Úü?\?qì²?x¬À?UM\>üˆM? u,?Ae:?f1ž?•ÿ +?‹ÒT?|«ª?Šg?–/ èI>Ôx»?} ?rµD?Nž6?F·}? +uÎ?)p˜?|&e?})??UN/?¨? Ï? ðv +>ÚKG?9IÞ?QÌ,?Ûç?í?³®ã?³š7?åRœ?àwÇ?½>þVê>ûΊ?A«N?ç=:?Ôé`?¾š?¤˜k?\¨?bG†?€’~?ƒÎK?}\ó?;úŽ>ý^²?ŒÊq?ÊD°?lhð>òË[>a­=ïp?‡q?ª°î?˜FB?‹âE?Ã>ýX?xG‚?‚’w?Ã݇?Àty?PäY?zZ&@ ?î´I?W€?‡c?“?Ô¦´@.@i?½ò?¢É¬?}>G?XÙë?;Þø?c™Ÿ?}4¡?Ë/ë?ý-¢?3¢<ž‡è>¶†>?¶ã?­€? +¦‰?œÈ?§Ñ×?šSA?žk{?«gä?©d?åœÕ?áÐÖ?Ä’µ?´AŠ?:Ëþ?Dz"?‹Î?†ÂÉ?T ??*|>üßK?e-Ý?ÓF?µ¼?Šy‰?šäÛ?¹Å?žº?yH?žÊ1?½†}?¸‹?³45?,@>³±É?± ++?Ù{M?¢p?–Þ?»²êP¯?wë@<ë@%|ù?»O?ªn˜?ŠÊe?† ÷?f>?“~C?Ì.?yÂ>j¢>ó™H?KŸÄ?s?”<?Ó< ?öM?]o>N5M>†þÃ>¥´¬?' v?BAÓ>»p7>M¢?\d{?†86?ߺ¡?öä0@._ê@;“‘?™À?{ ?mNÂ?cê€@×@7?"þ?&K°?Ún[?Ö?ê?Ò¡?ÐH?ìÊü?æ —?°®v?¨<$?C†Ô?>ż>úW…?™?"ºR?Mpv?—ñâ?’h²?zÛ?´™É@kI?Æ^Æ>:Hß>…™”>ò_­?f§w?». ?6§>ëž?3.z?yv?Çäy@A?ïÊø?ÚæÃ?›gA?SX?c¬>ùô?—ÔW?Õd_?‰Ø×?9oT?ùæG@"íˆ?¤·??,l0?kÇ?spÑ?§þì?ÆƸ@¿d@&ÿÒ?Í=0?—)º?†àø?OÖ?Ù-?ö3ú?Mò³>÷¶º?Ϫ%?ôgÊ?C7>÷p ?`Vù?wL™?ër`@›Ë?ì¿Ñ?åbþ?Ÿuù?Ž·_?¬ƒ?¬f'?FH?3ô)?­_¶?¶À[?ìŸ?öNÀ?Á;Ï?®ê¾?³¦Œ?¼†$@8-V@GuÔ?­\d?‡³?ŽOº?Œ-E?Ùú?êãn?¿ÖÈ?·êY@Äè@(’@©{@1Î?øöÃ?îç?æ÷ ?â*«?§Gi?ŸÞ?™‚H?™í?èé2@úè?u¸­?·x?¦À?À?cyC?4ø?õ¸‚@?Ü»?Àç?±´ +?¥7?rÞù?M¤¼?D§j?6žA?@îv?A°å?+®!?…¾? :?Õ?¼è,@Â+?Ò?q²y?{$>Qà9>ñTó?À…@?ð+@Ø?©õ?¨M†?¦¬P?“îv?^*²?ašJ?H,?Dø[?AÌÎ?BÔ5?Jt"?R†?³Ë?­Ž~?8y??u?³zT?³jÌ?Ø6ã?Û2@ ˆ @‘(?÷e¤?î·?´iÛ?¨Ð?Šª0?}| ?ã»7@ x +?¯´ô?g>ë?(ài>팿?4–@?w ?N`t?_?rtÜ?¹@ß?¯Ž*?‘ûô?C?‘)Õ?–êX? Ò¬? zz?žÍH?™\Ú?ë×ë?ëʼn?xó†?kŠÈ>Ÿmp>kÛŠ?‘s²?°Vi?ÇöS?ǘâ?‡ˆ^?G“#?A¯¯?;ÍŽ>äûe=ë´+?î?Æ°?³£Å?iØ"?W{ô?ì?-AO@*Q2@, Å?n Ì?i?¨ßá?²)›?¯þD?®…X?ÏSß?ÚÅt?œ€^?hHœ?í@@1þì?çGð>ªl©>åÍš?CJ„?{|…@¿‹@á?#KÕ?& Y?JÆ?‘3?ØP?âÅ£?•^?yæ?·QÄ?ׄ?ˆð>æ1y?"1„?|Co?A–?¬[p?ŸC?a(?§I@.ÿ@.ÆÍ@ y4@ /‹?ïVü?ä ?Á?«Æ›?‘c?j8A?‹T`?°õ?¦˜Ì?ƒ¯?„ñÆ?z›?}Z‡>Ú=÷—ú?…õ?¦¯0?" T>ÿ?4ß?‰œ?>(>pmÿ>ÐÉ?^L–?g®¤?²B?´øO?ÄÊ:?Ë;?bü?@9?Ÿ½?¸P?¨T3?žEÇ?¶d?Ù”{?¾N°?V¦µ?f-6?©gY?©\V>ùD>á¯C>â‡>æž‘>óDZ?VÖ?l†?)Ž?‹Òo?ë-]?Ê[‘>á$b>ßåì?\–?pù~>†FQ>! ò?®˜2?íÀ\?­r¦?i º?žÉÏ?à™Ï?ßÙg?ØÞø?Î 6?…|:?ƒ÷à*&?NÏš? WF?¡Ô–?£Sÿ?¤Ñ?¦Rx?§˜@>è ~>à=8@ t@"ÉÜ?žÁ”?(:Ê>áé>Pé¨?vè?§Ô8?•V»? ¨`?:›?;²>?8“c?dñ[?xj>òçˆ>pØ?—Ĉ?úˆs?¶ûm?Aâ?`= ?ߤ?çlq@6Sc@<ÇÐ@%:@OÖ?À_&?§·~?ëûâ@ Ç=?ÎÞ\?jU¥?c Æ?_©?p/ß?§À ?¨o?Øæ?ÕÐ?ŠË¦?#¬?;¯Ç?ä?V{:?sT¬?d£5?_ÏF?zðu?§âd?°‚#?þ/˜?üx?°;?¹2•?Bè…?Ê´?…?¦a?â?}>}?\Ý*?3ó¥?LbV?~?uÆÌ?gì9?d\Ø?Ú‰*?àC‰?à9?Ý´M?‘<þ?VnÝ?%¼q?„Û?=Fc?ƒCÑ?lB$?@Sõ?25‡>àŽt>ß;>»NÜ>ÌZü?Rwf?`­?¾´§?ÖzÆ?žÅ?—>ÛU»>sKš>÷¹(?†ÇÇ?x'J>þ>Ð>ø£%>ûÕq>ëàž>á7›>àôR>ã$š>êê³>Sbe>Ðe=ôMl=©Ó>ÝP?C•'?"7>á >ôÐx?“š?ñr>Ù½›>éé­;Sz?#¿ä?<%n>Ñõ>¨y>Ñs>àî!>LðÞ? ?¥zF?…‚>àÅ’>ºZ=T•À=±oë=øÚˆ> <¯?DXœ?CrR=ä\š?B¹?1 þ?ä2>à¹>bb[=ÎÿÆ>•¤x>nn+Ì´Ñ>×Fü=G6s>A>¿Pã>[6=ɺÖ=™»€@ˆ|¶@›ä}?ô?Êž>ð7 >ÀÌ +9êÂ<Øc =³=„>…Oˆ>ÑyX?yÀE?Á";?I‚ù>›4Ð>ï??ÿ=ØQb?/®?MÝ1?¦>ý?Œ>üíi>ü¤5>üZ>ãE->JË>ô@=?­v ?‚´==Þ…€>àŽ?$u›?ƒ§º?d ?‘éÞ?=Ê7=éÌ;>‚})>ø˜>øf>ø:p?5·|?n½Ç>ô¯¨=~Ê=2ñÌ>žãs?Ç ?hZf?¦­?YqÞ>ö=Â>°Ö>V³À>ÏbK?˜¦>Vì;Ž!ÿ?À0?|¸>Ý(>âD>žœo>³“?Ú^?(}ã?g·™?yP.>·?V­y?ª‰?›á>?®ª>©O½>Þþe>¸~<:“ =‹\>œR>Ǭ>º‡„>­e³? [?B¬ê>t>šæ>½$f?VU?0++?=Mb?Jsß>—&™=|O>º +·>ô‹í?Q‘:?h|À?¨8>ôŸT?X5S?tªæ? Q¡?€K>u?2 .?S±\?/‘Ÿ?5ç<>—:h>&$=½Vé=(¸8?Ͳƒ?ò–*?´ú¤?¢‘?ˆ8‹?ˆ„>?Iï?LY'?r€Ð?u„‚?wGƒ?jI‹>Ö~\>ª¡A>Õm>±s…?B£?Tñþ>ù¤…>ôÓ5:D=xëI?v4?|*?¸»¬?½dJ?ì6Ý?Õ¿A?vŽó?ifñ>õ +Í? nJ? ÷€?â>ŒæÊ>´[Ã?`Îr?5§S=/>Þ‹>÷N?7;?b‘?2ÿË?`(É?‚lÎ?§‹N?md}>Å^°?>Ø~?›H?lÃÁ? u>÷ú>°• +?. Ë?x:Ä?½s?ó`?Š~»>øé?‹‘#?µ½÷?ûæ>…­?C½Ì?„‚Ù? #ï?¢¯?[÷œ?<*?5Ì?/pX?!FÚ?- ®?–§Ú?¡¼ú?Ëð? ¡y?¸ä?¯X>)yv?È<ô?ÁµÐ?yá‹?ŒV;?ÀzÝ?¨º?z®?w“ž?|~I?}Q»?^´Õ?t ¿?—š?¢1Ë? ¤ë?†íâ?oŠô?7ÀM>ûò?IêQ?zÅÙ?‘á?¥ðH?•\6?ÙØ?A?*ÀŽ?«"?¼W-?½K¿?ÃÀ:?!;>ûL>>ûT ?"M?.Ϧ?EïÕ?õbA?÷ßy?ú{¯?Ñ:å?[?MnQ?¼ÊJ?f}>¾`é>ä¬C?+»é?.‰º? ª†?_z?IôŠ?`ü?[(i?«tü¨ ?@‚j?¨Ö?“ˆ£?_#?« +Â?óÛ~?³€ü?pˆU?¡Ï•?½e?OX=´?.UK?fk?¶®¼?ÎþT?M”?8HÁ?d±?qÀ)?»)b?Ãm“?˜dê?ˆÓp>U?}+ý?Lü=‹€>>ð¹?}:@?Rj>þ(ë>¦C:=«Ó¬>ýóí?gJ?ƒxü?Œ!8?1x@?Gà?†¸?¢6?Ÿp ?œ¨ð?]ü.?L~t? Á>ýdÍ?¤€j?°¥Ý?Št1?ƒˆ>ýj~? ‘O?|”#?|‡¶?w–ä?Eà>…·ÿ>£kå>¥Eh>ðRë?% ?Í#>ýqr?<ø?}qE?{£?o"×?tt?}qŒ?©:?¾_?X»?×?/Ç?(&‘@Ü@êl?(x…>ýk·?·þQ?µÞj?‡^=?˜©’@ —J@ +ôF@'âÇ@ +Á«>ý_ð>ý_¦>ý_R?€­@<?úô²?ÕÌ?Ó$±?É}?{1Í>ÚFð?kKŸ?¡!?Õ4B?ù°"?¤»>?}=;@X(@¿ü?™)€?k»½?´A?½áa?/Q?#ч?åµ»?æDˆ?ýœ?ý„?ý?êX?} ?wÒ…?Y?Dæù?"@?0hä?Ln ?žS»@ –ë@ê·@$à?…$ü?Æ—Þ@6©?Á¤?2®?—Þ?½Œ“>ì?‰×?Á $?ÔÊ?|š6?%Ç>ü +?Õ ?óï?†} ?|§R?O†8?NÄ?Ýh?Ü+ò?§aà?£Ê?Júf?„(=q%Š>qQñ?~šŽ?gˆÇ?&(?Z‰??;â?|í?„£ï?Ó¿?‰Ô ?tJ¡?Jê?35,?„{€?ž»Ä?é}»@mŒ?„n*>ž¾>¨9_>—+ã?…É8?® ?œŽW?’P?­c?¶}•?µX~?¸éb?Ì(>ÿ¡Ž@øñ@Äù?ƒ?yÀ >Ï›„?Ú"?Ÿ +’?š?¢â¾?¢18?ƒCý?€BC?!Ör?& ª>ú—ü>Þ‚¤>[ì>£ø?,?ù<>è3e?T?Xúl?J—.?Lþ ?äR?¬øo?Ê-j?ó^”?%:Lƒ¹>kQÄ?Cý?v>ù¥?²Y7@ +?ñ0 ?ÖÃ?·K? {?Œ¾ÿ?y9L?† +Œ?‡ýã?„Ä?™Àv?°\z?²Þ–@;p@F˜?àæ?‘Ü|@  @(¢c?‡R¥>øk7?›á{?º5ñ@ üÃ@ž?Ø?¼ÔÊ?¹¦»?¹í\>Š){<ƒi€?[°å?‡@Ê?Ig>÷ƒE?ÂÛ?¬‰Ú?Ãüç?Êþ?¥ãy?£ö?·qþ?¹9˜?Ï›?Ôxö?W„­?8äj?æ|?öŒ%?ös¸?öbš@ +ÍÃ@kZ?Krr?B=@ñ5@ šB?­§z?¥b?î)ñ?õ¢?‹SÛ?zÙï?°;?·øn?¸@I?»e?0Çî?"Ÿ±?±x"?À ?R~‰?A ²?É$À?Ö._?Dû˜?&ª?êP@Â>?’Ô,?sú‹@ >Ð@e?¢6¦?n{ˆ?ݘh@à?úm¸?ê]Í?ÏV…?ÌŠ?šx#?yQÃ?—™Ý?©R‡?ÙÝ$?ò‡Ú?Ñ7ð?»ÿz?·¤r?µ'?´Bù?µ>]?gÌv>ôÖ²?”hŽ?áÏv?ý´>ñhG?—Ýû@þA@¹¹?ãŸp?òŸI@ù?ÓI"?IQ ?Z¼?Âë7?ȨÚ?ÞÁˆ?ßV`?ò0K?àƒ—?—áÌ?˜Ã›?†„^?…À¦?ÉQÏ?Ç8é?³d?³S/?‰)Æ?…ˆU?û™®@bn?ƒ—Q?^z™?šá3?¨Ä´?6øì>õÒn>ÁB>’9[>í¡ã?šP?ä´Ñ?ª¹3?^Œ??ç ?±?hÃy?±˜Ç?­po?¡9ÿ?šR4?‰R?£ºµ@ @@7/@ör@ú/>æ“Ž>êÝ > +>TÀ¬?–¯&?°d²?ûºÆ@xÍ?ØÇ?°ƒ?ÌÆL?܃?ƒ*_>º&>â¨?'’?Å¢?] ú?bz?i¸¶?zJ.?°ZY?¬ÏN?iJ÷?i0?më±?pú!?Ó|?áêW@ÕZ@ €'?E÷? K¢?»?ë´à@½@C!@N@«@0T?£1?¦~ü?—1²?“‰@³­?ýÄb?×?Ø´6?>Ѽ>楹?ÃüÑ@éü?¥H£?è¼>ìèx>–z¥?W?™A?–1ä?sg?†©M@DÐk@F%²?‹)Á?eØ7? 23>èñ?DQy?jÏm?‘¬?¥¿?’Ž¨?u ?¡˜E?û!U?éD«?œá?œDÃ?ŸËž?™íw?G¾G?9 ‚?ÚÎR?ýfÔ?·È,?šV?2C>nv+>˾É?CÓÔ?cÜ?œ •?“ùÀ>™:˜>žêU?&ÃÏ?)¬³?´)?×C‰?”§]?Q¯1?†üÍ?©¦”?ˆIµ>ìPØ??ü?©tÜ?«n@(y@%z¹>ÇÑ= ¸æ?“Ê?Ë?’¾R?LôÔ?AÑÛ??{?\ï…?ˆÎ8?ˆ:Õ?•5ž?Q·>¡xº>ƒ|æ?¢r§?Ɖ°?踺?ùeØ?» ·?€Ì¢?ŸÎ?ÙÆÔ?ÓÉU?–c\?—ÿÝ?¨UÓ?¨Jƒ?s31?`R?Ç\>à==?)ÏK?`1¬?`*/?`&??`?`x?h€á?ÛñÔ?×YR??Œçƒ?ƒ?Žý8?§â?Œõ‘>ßÏÊ>åÖ?Ϥ?õÃ?¯*?®ùÁ?z-‚?Z=Ô?´36?èÒ?´¥à?_¸³?t ?›©Ð?™6A?&ÿy? …þ>ƒ‹¼>V) ?‡†˜?¢‚?ë²8@ pI?ù¾!?ß·â?·¸|?_½{?`Éë?g¡I?kM`?|ß«?ÌB?d¬Ë?_Ìn? ¶>ßÐ)>Õ/‘>å/? +Q?÷Ó?J?´~?Hó?È5E?ÎÃØ?iÓ0?Už'?Rþ7?dñ?ß•@ä\?½7$?‡¼Å?OĽ>­IJ?#%Œ?Ѹ—?ÑkF?§õ¾?©]j@ Ü<@ pçkŸ>k.? òë?GK^?7lÚ?1›©?_V‚?”_M?Ž—£?q…?_Ax>d3>TϘ?S)L?`ÄÛ?³JÈ?Íb?õž?~îÑ?P?&?4n->ûº=å¯{>”1ª?T ÷?nM¯?¨º¡?¨Ç?§qu?£~ò?œ«>á=¸ÉÌ>êõT?%­4?‘??eŒ“?›²O?n³y>á(|>´»1= (µ>£èë>’Ø™>šÁ>¨Ø> +:=›ð<>¬xJ>á +Þ><@< ù7‚à>°¡?Z(?7t¨>Á‹>›“;;ð@>†c>˜~@=hè>¤Jý>ár†> á•>ƒ!k=óŸB<ýŒÂ=“ Ö=þKì>ÍÉ>ÃÒV;«z9ÍC >ÖTH>Ó =v#=f5ø=ÈT=GÃh>†#;?¾>õ~s>ázu>¡öŒ@¿I@5µ>à(9>Ît=-‚;ân>, +c>âŽÀ>ë Å?#à>îPÑ?X`?‰?UÂ?-= ?E ú>'ȱ>¸Á>¤;Ôg:¶>ü O>ý…>ý…>üŸ¦>üVI>Ó_R>‹?D’ ?E~?ˆ±>ïE>}±½>užN>•™Œ?\¶—?ßÜ×?•[X>ÉÓë>ÖÝy>ãéŒ>òÒÓ>ø=³?8?wç>ñí¸>EŒ¬>®o> ÓÑ>““5?uÇ?:/¬>ðZˆ>—Ò×?‰…?C#?Aª\?ag?_9©?fY½?$ÉJ>ô†ù>ü +F?_m?7#n?Aàß?JÄð?N]0?—‹û?§ó?^5?Cg=>ÈW‘>0Ì=>hH?<=9?ƒNb>—€Ë?gÜd?šÐ >×ék>'T?cnÍ?†¼,>ƒ­?5P°?t…±>®‰1=ßWÙ>Rs”>1<ô?5ŸB?pì‚?~>ôžQ?ñS? ºá>þð(>ô°ì?Z®0?t¾ú>Ô¾|>v=8Î?bj¥?‘g>Ñ›×>I[„?D?i +?o¤?tÉ*?¬Y?-+?ô?$ŸA?Ac?Ò2?®&?®¨!?=KM?7.=?²1Ç?¸I#?*’¥?-J†?§n?¬Øï<ª¬7;. >õâ ?B?³ð–?¨P?vK ?‚Úq?çÀÓ?ÛÊï?’dØ?–ü®?2Ȫ?S+?²7à?§É8?WÍ?ƒF?=fn?3Ï>׊¾>ë»Û>üËÆ>÷Kö>÷W•>÷kT>÷{B?GHö?ªÊ’?žŒ®?‘D™?l]?9ƒ?2±i?wôK?]$?) Í>´o=êÆÀ?±?gâT?–²?µ2?àÅ?ô ž?79M>>@? h??[_?LÇ`?ORk?§©"?ºÄ¾?‡ÈÀ?y#h?M\‹?LƳ>ZYo=ý©®?pP‡?[T‡?ˆëh?‚è&?z[î?ojY>ì£á?b?†”k?‡]Â?yøÄ?xj?–?†Ñ™?z,q?QZM>úF™?I}ö?¦Š›?Š¹?9 ¿?³N3@ž—?³Và? £Â?¬£Ë?ø1I?§Æû?zÝš?2ÙÍ??bïc?{ +?«Uì?­Þj?›í:?–¶?OL|?J 3?T~Ó?D^1>¾^>ù@É?Åи?¿ó?³ŸF?£bÙ?Ed?Ey??°o‘?°}?¼Ü?ŸØ?W§>ð$?Ñì?žb?L¤>Ò[^?RðŽ?”¢ä?Ûp;?ü9ß@ º@‚´@‰–@‘…?Ip¹?*?€Õ?‹å?Ù¿?%¤³?ì«B?ÓQ‘?€r€?ƒ¬v?E:?>«H?A§y?2z™>ü¾k?*x?|ËË?HÂ1>üÚ2?v“â?½ª-?4^…;ÝÝ>š™? ‰f?IŒ?Z©P?& a?T?Ë…#?èâ°?ˆE—?_Ñ??¡ ?îŸ? +Ûÿ?)Ï?‰?Ž/R? ÈZ?Ù?¡3[?‡tº?úI?.¹æ?}P{?|ÑÍ?x?m6??\Uƒ?̲?°'.?œ×ß?’/‘?"f">™›?:Äg?yUÍ?‚=^?‡ÉÍ?Cp?)ô˜?$n?í‰?•Oá?“º?®cì?¬??:'>܃d<ð>nð?}…P?ˆLÂ?œ¥Å?„‡Ò?;9 ??§?Q˜ô?š9Ç?χ??%9?@, ?‡M>?¤Î£?¸™ú?ºÕ1?–¿?‘þÃ?„ñ¦?}ˆ+?ÖÅ¢?ñ÷?‰Çì?}y*?óõ0?ñ€§?„î?ƒs?Œh?”‘?%ä¬?Ô@ ž¼?Õæã>WFf> f>ýtó?C,S?˜ì@?®±?Ó7H?û"@ýŒ?ú,¬?Ñ„ÿ@àv@5#á?û$—?¾îÍ?„?}Sr>®bÅ>€©?bγ?}IF>È5á>ÄC?êE’?ä‡e?†ˆ?ªm?·æ”?Íyþ@W@äÝ?É7õ?¶=¦?•ÅÎ?/?^®?•3?Ýæ?Žƒ†=²¥É?gò@n}?»0þ>÷†õ?Œö?ÏôÝ?¼$Ð?¨è?“µÁ?î?SJ?+ðØ?)FT?0>?³¤¼?Á¤­?¼ÐÍ?³4±?>o?/?z8‰?} +‡?šd²?š-’?HÅÄ?O‡c?0w˜?Š*Ñ@QN0@CM™?ü%?¸ZÂ='cà>±Ï?n,?BØu>ü%õ?1ŽZ?|t?S|Û?&Ú$?Tµ?ã'}?œm?Aƒ ?•ç?Á¯?¥?ŠÇ;?9È•>øG³?nrÒ?Ž0Ù?ŒÁ?‰Ù?ìY@@£Þ?’§ƒ?{q´?rÐ>û¦î=-ˆ:<²?…æ|?’ÀS@E–±@9>È=R:?Aý6?ª O>ô?ì?‰ZF?f—>„¼´>²¾?7{µ?3^V?/A\?hçú?»ò?Ïœ?ÿ+?î•?à¹Ã?‘Â;=ŒoL>–Ñž?±"?@š?{¡¨?·›¤?÷';?Ó=é?² Ë?ùƒ?h›ž?¦mÄ?Ô+ ?ò"?>=!?ÜÇt@?¸fÕ?yN?ƒö?˜¾?œM?›,?Ë/]?çC³?ÀQ¡?´YÎ?«*Æ?§„·?ÿ}@ Œ¹?pÞõ?3=?ª)?Âr@ÞÔ@(û?ü£]?öø¤?æ?ỷ?©í?¬$’?±º]?±‹?Ôx?Óå^?KxN?9Üë?ˆ¶@?ŽÏ@T×@Zõ@é@ ?~¼s?s‘?fG?¿w? ¤ô?¬“?Ý<?áV§?”î?ŒÁl?¸Bœ?³ay?Ÿ¸ð?£`?? ­?åÛ+?ò?º9q?·ß? J&>ûoë@9é@N@'x¸@$ÕQ?òÑB?éêç?¥}Ò?šÓS?™€?¼È?¸'ô?µ0?™Þð?ž±%?Ÿ3¹?›P¯?ÆÃ?Ø"[?qf–?Mðª?‹àœ?‘ L@Hp@•?Ä?šóa@>O@+øë?¥â?JDØ?¼ÇB?ä×Þ?äŠM?ç{è?Æc?´½ÿ?V®x>ôƒÊ?£Û¢?糂?®l`?…øH? {¸=›Î˜?u +3?ñGP@ \@$É,@ À?±ïí?½O ?ÄM?¸,¼?«b?«ùØ?®W?»§û?ÖÀ3?½—? +ŽT?DGG?ï³p?í;Á?ÜYˆ?ØH?ƒS÷?ˆ!Ž?™^j?œYö@$¥>@*³d?'—á>Ù<ê>ß8>å.Ô?Tqœ?n#Ò?E†>駟?@Ñ?e““?»lû?í’?“\Ø? +¼>¬ö'=ÐCP>®ùã?6^ ?so(?±?¬TB?›t[?ªL]?ûœ?ùw?É9^?Ê4r>âa¢>Öƒú?ƒw ?‚qæ?½m£?Å]í›>ör“?j9?I£&? 5ë?©?jȧ?žÄù@/N@(ð?äXÂ?á2Y?k–?iÁ?¯œ˜?¸Të?$î +>úã]?9›?I¥ó?- ?®./?Ó€N@4Ÿ?í¬?ɇS?¹÷/?gŸù?xgË?®ç?¿°@S‚<@QJÇ?›}ã?ˆŒÁ?pÂÄ?`®Û?Íú?õæ6?¨s§?fX ?ƒ¦‘?™Vg?…E*?)G{?EÒZ?¨f•?´Ð—@ QR@V“@+i±@+Z>ÏlÞ<Å•(=yðH=½ˆ¸?Ÿ•?vLØ?Ïo@H»@œ]?È)?Í\P?Óç?Õ)9@„G@¿?¼J?³,@#_X@8Z%?ÝÁ?ÅÚ?(4£>?ï>ž³®>ý\×?/b?¾›²?·Ð)>õ¤ð>Þ˜ì?Šgÿ?“úy?–̾?™£Û??Ž’>÷kâ?g9e?©¶}?•Š”?b'o?yy?©„¯?¦–ú?{¼ô?ƒ¡’?Pøä?Cf?Á]š?ážÛ?ÓLü?Ʊ†?—½ˆ?@Â\?‹‰?ó¤?ãG?œí”?ŸÙ?38E?+Û“?±)?Æ9H?ðÿL@ +å?±ô‡?%êõ?2Ì?`©Â?uFë?œˆ ?˜¨?¨de?¨Za?Ž4í?…ÏU?M‘>àR)?5]'?dË ?`jÈ?`:´?`1?`)3?j¿O?¬ÌN?®R'?Ï¿>à Ý?ÔDë?ÿ+ª?u¾>º8>Ìâ€>ß™8>ÄDd>.5>`8E>ßÝè>ßåu?¿Å?ÈÒÓ?cëD?DÜ"? áZ?»Ì7?ö?ÕO>Öƒá>}½G?§Õ?¦ð×?™È ? 7?rlN?dž?˜‰ª?§×»?§ØÄ?¨ÃV?’ #?_ÓÀ?EÕA>þÙ?!A‚?Êè?Ʋx?›=?—ò¢?ˆAÖ?1Ê?2j$?Òú?Y?+‹}?(øË?üo?7Œ>?½?¡gt@ Þ@ ?%mw>áªì?šÅ…?À~P?s©=_ú]?™­£@®Z?Ø;VsI>5ä@?`Ê4?kG–?¯u?³<ì?ÖêC?×`_?!ép>­Aª>ñƒ¡?`]?£:*?ë‡]?°ð•?P˜/?w?í?¨T?žÌ€?!oQ? ´?˜æg?•ïÐ? (4>àî'?n5Q?’ÆÓ? Ù…=ám>þGâ?m`¹?‚ 8¥Zç<˜‚<=…ä,=æŽ>#ÌÚ=™–ý=®:¸>‘à>¥Gw?N?Ô?(9>á>j?2?[oõ?*ç>}>Hâê=¨öÄ? ˆ±?%N8žà°>±€â>Ë­>è[>å3é>á&">á«>@>Í=)˜=ú©8>¨=ÄЛ=·—Ì;3ÓV>r§>_é!>Mo~>:åÙ>(M¼>¨%=3Ýý=GS{=”éÐ>oèx>ò!·>¥6‰>o?]‚v?Inª=$®x=qä…;ïÑ >CþÀ>…²±> ÁN>ج“? DŸ?.åJ?fH>’ï‚>S¶ó@)6@mÖ=^ž>Xá}?‚qk?€•5?sîÀ?@?ˆ?P?Ä?°e?!€÷>®4{>t˜C>‡|>”¢Ì=i;—? ª?êû<È;<AÀ>ýy@?~P?{@b?U©a=hÑØ=‡Õø>Hš@?R?ž?Xæ¶?zµk?fÉ™?6ù÷>ã‡?-+?é­ý?“-m=tm<ÛÒ¼>pÌ>ø:§>´>aô>üäÉ?=#l?D9¦?Lç¥?p“?¼?.„*>ö¾Ã>š0´>%öŽ>ùy?=Ã?ï">öß>,ÔÊ>¢,ˆ>õ²ï>õŸA>õ‰Œ>•5é>}×’?'¯?'ƒ“?“¹?´š¿?g‡?€?]Ø?lít>ªÅ!=ǹí?‡‹?·•†>Ö'–; å«>®Ê€>ãÄs>Ö•†>Éh¼? y??Û?g`6?_Y?…šH?˜Ç? vÏ>À?/[Ÿ?Q´Ï?âÿ>ô–q?•õI?³/'> Ç*:ÚB<°(Ø=8šŒ=è±=Å„~?xµý?‘¶Ð?= à?-h ?9ƒô?4®Ñ>’f9>4 >™‚+>µj?3Fƒ?O\ò?.ƒ>õ#>õ->øN>öƒ@>õJa>õX#>õaº?K ³?Lý›?<ÊÅ?Vƒ©>) >…Œ +?T¸?o¾‡=_·?…æ?‚á©>$K"=/H>ö+Ù>÷å?7i?ýò>5 Ï>±ï'?ʵ?ÂC@?EÉ¥??Lc?8Ò^?e†k?öÔ`?ãœL?•Ê(?tõ/="°Æ=á3!>—*V?wHˆ?PD+>÷i“>÷|Q>÷Œ²?I ?DS?:®?Æ‹)?£y€?wéP?wø¹?xÔ?š»ä?ÂUc?páÙ>ÊXB?Õn?O#>\Í8:3ð>°ñ¿?a‡>ýz>ÌD9? Ï ?‹–?±&v?Èþç? {ì?šøT?Sbb?FJé?-DÂ?"Íú>ý±¾>ùq‘@$\‘@- §?ö{Ë?õO ?ºØ«?ªÃÜ>ùÓé?+C?šl?/Φ?z Í?QÔ?ˆ”N?•,?ºŠR?”¿F?-úð?(ò?2R?wU?¤H0?›R[?ˆc?Âîä?úl?Š½×?¹ú?·£ß?æ¦?c¥?Z9™>ÛS\>µ¨?šô€?·V +?»¶n?µ,>»u–>¥7Ë?„ 3?ˆÕ=Ä]S>† ?õwF?ÐR(=㬠>û¼È?b®¨?òŽG?½$,?;~?[“¡?{÷&?‰â’?šË?J?Ÿ¿Æ?œzÅ?•Wî?ƒµ:?ejv?²ßá?ÚÁA?´0¾?­ÌB?¸iƒ?½-¦?#±>ü|k?äÜ?é@6ú?ýf@µî?ò¿ý>FÔ>¸ÿâ?|¸ž?]£>üÆ„>üËk>üÐ?.ú?|Ü}?EM>üìV?xD»?º®/?™†ù?{ÈŒ?uûE?q ú?,Îu?˜K?Ö,m?÷·?³eˆ?¬ÒS?›¦ö?›}\?€<ª?‹çé?N=É?5ÙJ?&»Û?M?îó—@ÏŒ@&úD@¯g?¾e?¨Ùè?}a?–’p?¸ó?µÀÃ?²ñÜ?·«õ?¾?}É–?+j™?âð>ý|,>ŸÀ>…ý+?GÖØ?`?R–¿?Wï?Œ­?Œª?ð?ïuY?õ?!ä:?¾7?Ç‚?ñ8h?Â11?ÛÔ?!ñ?6ž¢?VQ—?}˜ ?üò?¥tN?¹yâ?Ù%ö?ˆà­>ý˜?ÆH?#4•?Èî›@’ç?Qæ >Ñq?c÷—?…s?µ>ý”Ã=(N—<‹y€@_N@ÍV?µB?¶Ìó?Ó3Â?Á+P?„AŸ?¾'Ÿ@Lš$@0 >‡¼>ÓÎõ?8 +?Zsa?•?€q˜?Xžd?}>>È$>¹cÖ>„áN?~¼?ºÎ?èK?ýb4?A|?}c~?þ>‰@¢D?éÐÞ?á;À?’è?„ïÿ?Sóé?{Çn?Ó ?Ĺ‚?ž§?±&B@6q@¾@úÿ?ð€F?„ø®?YÜ ?½?Y?¨ƒ?Fĸ?„Y?@I>ýˆÍ?¤“)?ñ!@ ÑT@g­?â—¹?½±‰?‘Pk?|ß­?žªæ?¦ÓÚ?c ?EàH?ì?Ÿ~ ?ßÙ?ìˆÃ?ƒ¸??|¨:?|¡þ?|«?Wò_??OÙ>¥ø±?š#?ü~?Ö’Þ?eÍ>¼; <¸> >­¨ê?g¦?›aG?èúÙ?ß°Q?Ñçy?”¾¾?#+?e·?%z@ åI@EO@&(Ž@ g?¸?p™?î>ûÚ€?v£ ?˜?´ÛL?¼È?ª;a?©¦@O@·Ý?–*.?}~?ðáÁ?ù¹?@p>èƒy?´zW?²S¹?¶/?¾V©?óÚ?‰q¬?• ?‡»L?ÝP?Æ­?'wÓ?SÓ»?šÁ.?Ž€þ?z¾|?zµP?zª°?¥¦ö@˜@Pr@7Q”@ ê>?za§?M~? ³?”Æ‚?ú2Û?ÜWÖ?»—?}Q?>²•«>+8^?fu?㧃?ÊiL?»E.?¦jm?•my?ÓðŽ?ÿc ?ÃË«? fC?1>ó¼ø?—²€?ºÛ7?5N?y ¯?<Üâ?% ï?€Ê¶?Œï8@*þ@ŸÆ?˜&/?f˜ ?Ðwâ?è¾Æ?•íý?€£Æ? {>ùÿ=® þ=[8?h¨Œ?ƒ?)»?&ø‰?EÒ?RX;?–é«?•‰öüj>ß7É>Íëð?ƒnø?€1s?¢”#?¦GÍ?§þÊ?©´þ@#=@'UÈ?T³e?;k¡?g)_?lÔ7?®¥ý?µ?x²Š?uëü?rƒÄ?nÜK?ˆØ„?ŽÐ?ÎÀ{?Ö>?ô=&?ôô’?GùÔ?> ?¡?£0³?¥*¼?©€Ì?Pݹ?>W?fZ?s?ý?’y”? ý?˜­Ò?G—?i»¬?q ?P§p??W9?âªñ@­|@A›@WöD?n<°=ò +?9Dà?r«©?'2*>ÿNi>òª >ò¨ç?Šoå?°?’[Q?„ðA?Ñ4>Âö?9ÿ?n?Ù?|@f?í{8?Ã0Œ?¥>À?pñ]?ªþ?ð¾Í?Зi?˜cW?] º>xð +>§h6?Ð3?6 >µ¬?’Þ?Èá?ÎR?Ô§u?¾Ÿy=Ö{#>å]?J)å?=¼?åÏ8?éX>V>ž=€dÌ=,˜í;ŸH?“®?±éÛ?.~†>íþ +?J}ð?mÅl?A|Œ?1OÌ?Jä@?SÞ©?½:@µ„?¹=¬?GÄ?b ’?Œs?£oÕ?Óê?Âà‡?‘­¤?“¸[?’—›?‘?„>?\­?§-Æ?¬&Ü?Õ0¦?Ù)?©#˜?¡ß?ÏÏ?ÞŸ ?˜UØ?j±µ?sÐ?wZU?oˆÎ?jG’?¢*9?ç £?×`1?¯]ÿ?•éb? ®?6?´a‹?³¡?i:-?iL@Zš}@`?‘I¶?+Aí?VX¬?h€6?˜ù`?®:R?Óýä?òI•?°Vý?2YI?@Èj?g®‚?g™?g~?DÅ@K×´@OOÍ?Œ"g?ˆË0?ÌrÆ?×o¬?îý˜?úË??Ÿ\¿?S)Ò?"õí>æ7 ?ŠVö@K?çó¬?iû©?T•å>奄?³Ž@Jè@õÑ?xSq?MÒ?°Ÿ,?Ál@/ü,@XtX@(@@ä®?Ó×?ƒ¢Ú?lfü?!ä ?\55@—¢@‰y?§ê#?¨¥ ?ó.ä@­ï?¸¥?3Ø?\ÖE?o™?¼€‹@ ê?ÜÓX?D·Ð?bxÌ?ÊVð?Í ?Æ?V:? —?¡)?JI?fÖô?Ï»?©Â°?’»ç?b5Õ?:Þ?©!?£v?aø¹?aæ?aÓˆ?aÆ@ ”H@Ÿø?Çø?‘ß?_ƒ?°Ä?DùC?‘ý½?Šßû?#Qâ?) Þ?a †?aÁ?¸TH?À>2?®—µ?¨ª?éV@@ +¯Ó?â¹ø?›é9?°üö@ä?û/5?Ÿó®?¡kÙ@oh@Y7?M°ù>ÜÍÔ? \Ú?àR@ 0@$`¥@z?Ö@?éli@4Ý@0Ý¡?Á8;?º +ó?2Ç?â >ÞJ[>”i>Ö°ÿ?ÝÖ?/V%?vW?Pì™>ßìè>æµG?_âª?_ãå=å1p?Ÿà×?= >¼dÂ?§à:?Ÿ+ +>ûÿ”>îá¤?Ÿ¢)?§áP?§â(?§ã?§ãÔ?§ä|?m>ÿ'¹?Tëš?¾gZ?©±?Gœ?Vý{?ô>úÐ>ë±â>àôž?Iæ ?§I2?s„Ž=tÓH>rXC?¨]¿?¨T£?†Ï?ŠL9>‹…>Æ7>µ±>à¨Q?o7?±P!?ªXU?Œ¸š?€/Œ?o¼8?c¢ ?±Ø??ž,b?¥î‹?æüÇ1?1Ÿo?U$:?ªo¿?á@?á#3?Ý‹?˜û-=å?-*M?$ýš>)Íd>tú>Æ:>áQ?E?dR>ü>E)E=Æ £=ü\>IÐ>y +'>Ž€Q>`Ü=ñæ°=«aç?B}ä?a=W>j Ñ<Øï@eÔ>ôó>”ç >‹Ñõ>›$ƒ>ó>Ô£ >s@Î>‚Ðü>Ýöm>à•æ>¨|Þ>§Ùè=ÉFÝ>lF>ÍP?ØY?^ã? ݇=èýª>ó¢½>ö°>¸Š>«¯ :4;>>?#>We´>^ý>=sÛ>ÂÂ4?3ñ?+O?]€r?*ð8?šWg?u†»?áŠ?\¢?‚h#?6Ìq=Ñ=õ‚p=ÓÁ°?èi?ZU~?oº—?€ª>?†ƒ?w»]>O5> Á> ^á?Q¨/?i :>@™É=åQ>ýrv?*Í?ºG?¢ò‘>ÔP>ïÀ?9B?+ª?,‚?Gß[?z³g?S?š›>å„>Ä´=›¢à>?VÈ>àYb>}H:ÔwÌ>z£«>ø=ì>i6™>F >‹Ò'?ÊÓ?+ȱ?*á"?7é?:®ç?,P²?%?ï˜>’Ÿ=³Rs>èEy?›(>9ë~>§¸>õ½ˆ>L8n=Ä8>íI>ªå>Ü?<>õOD?R?)?u1O?”;#?¡%T?§JË?´»!?Q” ? `?‘ +³?±æÖ?‰‘ ?qp@>­?=iô?-ž?Xòµ?RX"?K¾š?‡:?•_K?SO?1]'?Ã? âb?;~-?3²§>ç >ÕžÎ?XÜ?t¬ê>EäY>±í->Ñ'ò>Ä>¶Üé?1Èr?R¦k?F½,?;“?j†_?tíò>ε5>§HÓ=PA†>‚¢„>Iu>è»u>öT˜>õB/>õJÔ>õW5>õ^î?QÝÂ?SÁá?&Â?)¢G? Ur>ûXÑ>j#Ã>Fì>,¼b>Ž•>pnÃ>C2 ?§ ?¯¢·?ðH9?ðZ ?s^«?|Ð?Þn ?ʽc?óž,>G^>Þ9‚?·ðª?ݱ @ä0?î+.?fÜÈ?=xö>÷£F?¹?ME?‚®?³–:?À®?xë?IÉ"?#:º?&Q:?¤´>þ‡_>¦!_?càÐ?´ÌŽ?Y>òç¾>ó°¢>øº?…¤L?žš?m»?Ox?~?É„?Np??ÌÐ?2ž˜?)Aw?q|‰?ym ?KµW?5ó€?‚Ûò?‚\Ÿ?º@?»¡?»[þ?ª™Ý>ùì >ùøê>ú×?´?z#?ŽtÇ?»­¥?Ú c@ +ö]?ã·"?’?$âÐ>/,?¼…?:â?óv‹?(??ƒ¤?Mò²?lì¬?ˆï8?˜ó?…½M?{?™)5?”:£?D§Õ?=–W?ˆ~?˜À>>_bs>@^>öö>È„Þ>û–Ì?„Ý?¼À5?™i.<.°=F>‰§¥?Gã(?•´>Œ-?%=w?¤|ü?«|O?»[ô?œ¼_?|3x?–%Ä?¨ïQ?ìØ@D:?ŽÞ•?/J½> ƒE>Ôá?õ³>þ¸Ú>ü’]?§Õ?Ê}?Ý$•?ÙYy?€Ž!?€Nq? Ê}?*r?›îH?–â?†¢?C-h>¶ a?÷?eI‡?7Ü>ýH?A«?} }?£Ñü?»o?¸‚?µ6?>í}>ý,T?$3?J‹>ã0÷>ÐIT?2½¿?>>d>ë‹>äÃ?Ï„±?Ì1Ù?}Y}?‹Ú +?Ƀ›?ôþî@L^1@0™²?½ª$?_X?!%??ëå?‡å?£Yá?¾"¬?¤ií?’[e? !^>Ix“?è?@ +ò?9j>Øu?x6Ô?“%q>è/x>½™`?œØõ?©Ù?¦ú4?¯Ôâ?»öµ?ÎÅæ@ó³@=?"C?$6>ý«Ó?bP?\7¬?¥~Ä?ú¶Õ?ýà@@ U?¾‚ ?}®?4ÞE>ý®k>Î=?>žÿ•?£[?CnQ? KÞ?´ýÄ?· W?ºC?]>ý«Æ?´ ;?²??‘õ??œ•{?¾>V?¬•ƒ?±?W­6?ç¢J@@G@ @Ñ?{7Ó?`± ?I¤Æ?@–?(‡î>ÿjÓ>¾r}>km-=«fm?™ØD?÷Þú?§#´?}‚>‰‰@=`P°=Ÿå4=Ø:@ˆ[@iK?ªk´? @ fn@ר>*_ú@ 1@÷;? •??ÖÄ?Œç?ŒSŒ?‚ï›?°Z9@ Û?äȈ?ˆ›û?—o?³?½‡¹?¿xR?6,¿·í?%ÏÕ??†Ï?XÁ0?¬ö>¿÷?ü1?'ÞÐ?§¨í?½°3?ˆ©ö?|Þ÷?™Ü?”Ð@?KÀÉ?M?|¿Q?x͆?8¿«?Vc??×s¸?߸²?ìñô?ïŠO?ïg²?é™ò?½c°?©D^?o—˜?H2×? £$?J>8?–?šÿU?ŸmÑ?gžÓ>üÂéc?Ç6?%ú¬>Ù*2>½0è?žñ%?¼Øl?Vê.?( Ê?Ì?ß+?²¸²?¼±?=Ý÷Î=Ñc€>ú˜©?¶?¼‹†?´ªŸ?@â?bÜ>×Ç??*UÕ?å?×–?¢â?zt±>¿1å?‚¨?¢ x?wŽ?iž&?¹^*?³7?­?‘¨à?bפ?ƒ†š?”²?‰¶r?€ûà?º•Š?úF%?uJ=$~ˆ>™h0>ú~?Õ‚=@—¨?—s>Ù„?Œ-?»T§?ŸPN?’6Å?É +²?àLÓ?¬å@?™Øº?°Ê>jþH?{Ç€?¡fA?…Ÿq?y D?›õ? 8?ÁÐñ?È·Í?g˜P?:Â? _î?Oí?Â? ¿@ ®@?÷>}½<ŽM¤?Ÿ[4?¨S>?i?:¤?Íé¾?Ð z?a•:?Uâð?àœœ?ã š?˘”?Lj?çc?ᇼ?=„+?:µ?Ìð?Än’?ø…u?îº?öµU?õþ‰?Ÿ*ö«>ò6]<„ <ìÁØ?ô]ª?îÆ.?8? gb@(ÑX@$Ð8?'¯%?-ã†?óðí?õ-?Ë>ôàÏ?K°¹?Uª.?-´¶?.£h?˜ ??™ÁÅ?dc>ô5s?›%?©y@QX@Ÿ|?1|Ý>Ú)Q?–q?§¾ç@/Ý@JÇ?ÁÃ~?®%?Žâè?ƒ9?€.®?yÃÕ?Ô«g?ò‘?šc?n%?¢:ö?µ¦±?°á½?¬ì¶?Þ??óoª?®s_?‡Â5?´Íe?ÙG0?§ •?q>?‹!ý?œ_?²§?Ð&(?߸¹?ï…|?ÓO¨?ž;Œ?Væ>9ÙR>Þ£Â?Œä?Šr?ˆéd?£Ü@Ó©@À ? H¸?.‰å@ ί@ 9¡?©ý¼?¬ÿ\?³ ?³‘@“@ç?ÁÏi?²´?%"3>î°>Wšn>â?´6–?÷Så?Yɇ>vÄô?kø:?À:?rý>« +)?6ÿÞ?™@þ?©8Ü?̽=?­è¡?2ª-?Lýx?—BP?˜¯¾?š\?˜¦~?°î?«?‹µ`?‘¢™?†é?‚T?Ø?¦®I?fM?‚¥¨?—ê\?¨‰?ØF?mte>ÿž9*p>²DÂ?nˆÆ?m t?_R‹?N=?í?—z? +›L? ›ë@@‰g@E²;?–&å?hÉ?ÏXñ?ã -?¥.õ?Œ†?½:R?ã£ñ?¿?~?`[?˜Æ=?¦à0?ŠòŒ? (5?3”?¿îð?À"¬?;è?Oš?¤\!?­&§?}ü«?f­–?9’ ?É?‚¶>æJñ>‡îŸ<‚k¾?ó?åê„?äÊ?àEŸ?àµk@wa@iÉ?àY?‹·?vl?Š*¡?º8'?Ù +ö@7ÌY@imÏ@ó?d‘À? í®>lèk?ÀD>?Äs(?Ž%ú?Œªî?ný?“«?ò!>ã¨?zL9?­‡ä@ú@CcN@Gl?"c?-w%?u¤ê?t€ã?„¡Ã?€B©?žé[?¥ð?©!?©ê ?‡¬Ä?cÝ–?dvo?bJ¶?¡ý@ÏU?ò[ì?b Ü?aùz?aè›?aÙî?¤y^?³ë)?‡¿?ažƒ?J™®?4De>úùã>L™W>í·?_Ø’?^~‹?‰kl?‡äú?Åòå?̸4?“Ó§?†Û@@/I@ö?àv?ÎÝ?—öœ?–è?uª +?o_ê?¡_?¦Vc>exÝ<˜˜À=Š5È?˜tV@Ö·@ +µ@ (@ãÃ?Õ³?Õñg>ç¢ø?=°?^§à?]Wv?Å.9?àÈ^?ŒB?`ÿ?[f¥?d‚”?`¥5? ‰?&¡{?…9?ƒxÔ>¬‡þ>‚@?›|L?ÅÐ?Ýù?ð½?§ðé? +Aâ?=ˆ$?¤ n?¦—?¨)u?§Ðú>èQ!>ë5Ü?SÛu?i^M?—Æ©?§ó_?µóB?½Í@?·b?¶¸”?®M×?ƒ»E?~ Ÿ?Ž{?”ïÓ?¿ƒ>à >àé>à¬>à3>à¢?¶2?:2ÿ?V/¦?‰/ó?¼?ˆ`?…ú?¨1Í?¨98?̾°?×)Ù?³h?¨*Ý?¨LÁ?§hÌ?âP?hz{?!¡i=ЀÔ?˜?,ý?™qÞ?—š¹?%ä?=Ð>é˜Z>࿲?<•¬?`”Ò?}?˜C?‘)?Nº?:h>„¦q>‚ì„>ËZU>¬"Î?IÕE?SdU?_F?a"Ž>|ìÂ>…œ;>í'«?”?`?(ô×?=#X?5h?,ð€?2¢D?—Õñ?•³m>•¸“>ƒæ#>Ññ—>áhl?‹ö?>T?L{ÿ?Bf">·Gà>‚Ôo?1Úƒ?YÆ?™äE?–>1?ZéS?UýT<’o =W1 <‚ =h>)È*>›á>á+>ÞÞq>ò¢E>òþh>*Wl> ?n·? ô-=N—';§?€<•¿@>cß>߸Ì>¼=Û=è(›=ÿØ`>s‡ >gÖž=Ч>=É>>’|Î?FÝV?ŠÂR?c Á?:_È?&=SÎ8@ŠíÃ@{‚u?ÏŒ?½Z?û“?h>ߘ®>Ñ°¬>ÃÕ>©ù>³±ž>Î^â>èûÐ?œ¶Ú?ÇÅ‹>÷í·>,y.>¨€*>Ãäà?)Õ? u3?¹ÁÎ?´Oÿ>ýi?{Â?‘?i(>ü?Ë?4?{³ß?B]ð>O²>Åø ?>{X?a>;õ>´mŽ?Eµ>î]>pVB=»9/>wó‚>õÓ?5é[?jË?Þµ>Àý? ÒÅ?&=.?5‹…?Amk? M>áÊ—?"ª?K¤Õ?iVÙ?vï?3”E? Â{?³9»?ñ˜?mêJ>íß~?FE?d…ü?Llû?8´­>˜GÖ>.•T?Ô©?<‚ü?~7? ,?\¬û?u!??z>ш??[Œ?hr?*Æ>ö=Ë=ûÔ=nòð>°×¹>Ëx6>šœ>‡`Ð?lÃ?)fµ?eÅ?t³…?I ?CÁ}>•eX>ñ¡?f¬z?•³³>Äö4=à£Ä?G§¢?t¼â>2Åý=k>¨=À1?6¯à?O¦‘?P£>ôâÐ?*Ë`?:î?ûì?v6=³U?Í›ò?îç»?‡1€?t'X?n-t?g£%?Ÿš?5x?%Úô?"Ëa?†øD?ƒ Ÿ>÷[­?¦?>÷Ã×>õº>¬&å>½?uüT?rr>ö´>öaá>ökø? +‡÷?vN`?fñ>²U? ÚÚ?§3à?£ùÄ? ¼#?˜<—?vÃ5?JSô=ÊÚ >öÿá?†ê?†êÎ?…‹¼?…RÐ?}'´?wZÿ?Y7T?#»e?ŒË?à”Á?±„÷?S¶‹?Ó>Ä ñ? ‘†?9ýÛ?Z7z?xd>õmd>ÎTE?Iç[?É1}@f…?j®,9º”£?ØÖ?o‚’?iE?b½f?ƒJ`?ðc?Bíw?,Vš?xÿ?|c›?>àB?/¾y?Œ5Ÿ?Ûÿ?{xÏ?yƒ)?ö³'?øIˆ?»AG?²ÿŒ>ýÁ?Ú¥?ƒXJ?“ãg?Ó¿ã?ÊBñ?ÀÉl?Ç.m?ìiž?׆?»½w?Á^?×/?Â?F?—‡=?9G[=¾MB??š?z¼?3Jê>úN ?®q®?ïfˆ?2$>!¤>S©N>‚ÒL>›Îï>´Ç +?x$e?•O­?»?lÞ2>×$°>¬Ñé?jÔW?aw?Ö–¸?Ñ’Œ?„‡?/ +w?¼=?¼\?³”f?Œÿ>Ö÷¥?/ì¾?žDò?:ãÄ>Êï?lg‹?8¯X?±À?Mè8?|G«?|N³?|V?ÙÎì@Lí?ë ?笘>½”¿:"ÑM>ÛÃ/>ü™1?g/¨?i6?îç§?çva?‘*ú?…K>F¨>œxª?;Õß?|ì?ØCD?ÓRb?Ó”b?[=ì¯%>‰Ë>ý ? 7Ã? +ÅÇ?FñG?} ¥>×ý]> k?HìÄ?Š(†?À'¨?É/ÿ? ô~> ®û>•!ø>‰›a>|¹>‹e?\?%*ÿ?UO?VkX?D˜?y(:?Úì¤?¼7í? +Žˆ?)åÃ?~+?N˜ê>ý‹:?ãÈ?%,?\½X?š³?†Ì(?}ž³? +iR>Ú?Jç?Aùú?¢Ó²?¯e ?D½"?$Tú>/ͨ=Ó©_>öÙ,>÷œ2=Ÿqˆ>äl?}qJ?kôï?r{?;óÐ?lu­?+„=á2…>œ]º?%Ùœ?‚”ø?É‚?Ñ•¬?Ù¤Q?Ý(²?Ò[ý•?SyÌ?}ÃÒ>Ý\9>=É?_X?…të?x®?{$?}ÀŠ?{;i?‚¦?‡u2?µ3?³ºÑ?¾N1?§2>¯²>ÏWX?Ep>?È0@ Ä~?òhL?¡Ð ?¥¹?œÂw?€;?Y5í>ó&=Ò[;>Žd#>ÝM¼?˜óG?ÇQI?’Û?}—?ÀÓ>ì +>âƒ>ØÃ?O0|?qŸŒ?~és?}$Œ?XW?tþõ?[êJ?e\Æ?ݶ.?Ë=Ñ?G½ ?fÎÀ?—/S?WpÅ>ͱ>½%—?dÐ?‘/?½ø]?‰Ê|? &¨?Ýܪ@=¸­?¨£? +û?jëý>»Ÿê=Ý‹ô?Rj?†!>¶•ê>: ?¿á?'“M?í¯i?ùp?¬IÁ?®ä?cD?R²õ?V´e?MÁh=ç>F Š?Ms«?I¬H?ƒ«²?L@Ð<š­”?,9«@£z@:«?ñm?Á»?hG?nh?|n¼?“€§?ª?‡Â›?Mg?e]ä?|@ù?·±Î?ÛÉj??ï>RA?<ºŒ?|?_ó?Xøç>EØØ?šË°?¼ç?ç—µ?ò­Š?»ñj?»„Ó@Àa@Ǩ>üCE>äÖ>û‹? Ôº?¼šð?¯®>ûf`?'N?~)¬?ˆw¹?Õ½?ÑrÊ?¼_?•æ>nð`>ß?zýö?Xì?À^?‡†Ò@ ;X@ +<2@„×?À Ý?d?«ÿ@Œv?õ p?º~ê?Ü'w?úY%?’-¥>é|»>ðP8>ú-Y?;=È?v&?[§»?9ÇÂ?·J;?åâ_?*é?y¿?»‘ ?Öôà?yë?;ö"?ž¨Ò?ªP?adœ?K.÷?,³â?,RÎ?ì2@ÿPþ>冺?) ?½ ?Õga?ÓÏä?Ç`ã?ÉŒÉ?!”9?"»]?z}!?ƒí?ˆ}]?Ž54?¯¾X?¶3ƒ?wV°?‚Q%@>@^@ 5û@ [}?½÷N?Æ7?öé?ñm(?¡;~?¡*,?U)?d/ž?³ê¼?¯¥?LF? $Ö?¸:?±A%?>_?‰ß!?áÕ!?Ûc ?ÖRÞ?×à3?Zh¾?l(#@Ské@K}£>õ â>ôó«>ôÜ{>û§P?çߤ?ßg?@ 13@A?£4>ôH­>ô/'>ôû?iìÂ?{õã?Ãã¦?Æu ?Àâc?·zÊ?ôÓÔ?üm?|(O?\21?ÔJ®?ëšó?ïΘ?òÓ®?’ÜK?x›á?þXr@s*?¨çp?Œ+?¯¢ò@?0?ô“³?æþ?É7¡?´Ô ?Ä–Ë?Ò̬?Óˆã?Ü ³?äT?ñв?¼N®?!qP?_ÂÏ?´Õ?¯wÁ?¥Œz?±Ïm?Ù#´?ÈB/?_"=?q«—?®^£?¦è+>ïz>ùÏÈ?³)5?³Ÿ?µä?¸ñ?åÌŠ?èMB?y/?\ä>6˳?•$Ó?Ðx»?€|´?%)3?M`F?mK½?Ù¬>ŒáN?(T%?‘u?·!?ëßÌ?Ã^z?^ô”?u†S?¤~`?©p?ÆÐy?¹E?kÑ?nKi?‚C‹?unw?–°?œÖä?®3?¥Ž³?Ôˆ?æð%?e—>ê¤Ç?¢0?êlð?‘µ%>á¦ô>èFµ>þ8[?’ì@mè?õk=­¬>Ó†>éa+>ømŽ?àÈ¡?åY?¡Á1?™²Þ?ìû}@<À?ËkH?³«?›áÕ?‘­Ä?„ûj?u¨°?‹J?£Á0?–Ù=?Eó:?Eð?„ž3?€fÑ?K9H?NI?ªÊ?­5º?x¯ ?f¿?»·U?ÚÒ?s›>æ]À?+‰#?f,|?<þE>ü&1?V +9?åÍy?à!+?»[6?½ó'?Sì?Mœ»?ajú?e.¡?λ?é}’@+ò@T~ö@¿ñ? çÝ>רG>rJŽ?Ž7­?Œlc?‘îÌ?“U?³ä’?°e,?]²D?9„ë?3°=?-ÕW>ú¸à>²ü¶?BS@?³¨Ð?³ý?¶ì?¼Øî@ '@ Û¡? 6>âÃñ?L”?dYÖ?¸¤K?Úíš?¾s?£°?™F?õª?‚KV? +#? A?í ?Óã?Õ{^?Þ¦ý?_©¼?wä?H5#?a—z?f7è?]: ?uD ?©ó?©t?¨õM?¨íƒ?»{¾?ºP?7FS? ÔZ?“¶?¿‡¬??“œ>i +å?¨?Eóˆ?ÚŸ?ÖjÎ88€?ó#H@h|?¹å?˜ ?Â݈?èð:@ÛÁ@"y>@ Dq?}®~?„AÐ?™?’ÎÅ?Åê¥?ɹÇ@Gû@(a?µÇ?)ž¶?T‹Ë?pÒú?^âü?`Æ?tÂM?¹»h?¸s?bÔ?`?‚­~?ƒGg?5þF? ?a…p?¡¾&?‘ä&?_µ?…|c?ßˬ?ØC>ßû>ßü ?”ùü?ŸÁç?ƒ±‡?w.Ã?e‚?¶ù?¡?‚VÌ?„ ÿ?…¾c?†ž ?k™R?dÄ¡?‰Øa?…@ ?0ͧ?¦Š?0?·¬???¾^?w}?VÇ?M?ǃ³?ʳÝ?¬õ‡?«0?¯Š>àw=¹• <]2€?€É?hÑ?f5?`‹¼?R\K?2µ¿?ES?Š)d?…??ƒ8º?…x?c_´?`Äf>¦Ci>b0?³‚¯?ñë? Øï?AÖ’?:W÷??ø=?L{ ?aî?v}’?¾å?Ânú>ôkí>ì–S?Tô?a5š>IÀ8??Ø?W*Ú?S)å?O(Ú?T ‹?a[¥?Jð? I?)Z?† 1?‡-?.…Ž?*b0?&6?" >‡ie>#†ë?X¬k?˜ï“?7%= w*=t˜ˆ>& >Ô?g>Þ2—>á‚l>ø…H?]µ?TA4?Kh?Bb>ÐY>°Á4=žÅ|>Âøe? ÅŽ>s)>¿«€?XÙ/?,î”>«©£>•´)>±Ï>³m?0E«?9—W<æ ~=a°;úw}>„Ûw>Í‘>BñÐ>,ê%>ßÐ}>Îz>’æ >g:äP>gsN>{Œ5<ñ4?€È?˾È?J¿°=Ú³½@ ñ³@ù?ƒ9Œ?>5=ôÈ>iÉ?Þ|>¥¯4>~N>…MR>ô=È5£>Ð¥™?eú?Á<>ÿ³ë>$ßv=Â}Û?§“ô?²xÝ?¬?f>é<‚u=ß7Ö>üÆ>Ó[=ö^Â>=>>°l>¸â >ˆg>|~÷>?’>šz>§¯G?+ì?ŠÍþ?šä&?³É.?9À#?Ç?qÿi?7Ÿ?a>Ÿ"h>•4>ãð?*.…?0»–?7Ev?=Ñd?DYS>ô†>¬ +5?/Í?^~¼?Y«Ë?`É ?çL>öC«?PÇ?lú?%¿ÿ?…?\±?u¤Ž>õ¬¨>’]ç>Ëmí>ûê>’»•>:›à?9Ð?2^|?³·¤?ÖØ!?C]j>ôýX?Yò?sñ2? >Ùع?FèÖ?Z?8¸õ?$ó&?šíò?¥®?P'é?<¶‡>À¨)>ŸG>æÈA>ô¼>m >kÍ?éï?²½?#Ôj>üsN>åAà>ÒÌo?5ç)?8tM?j>¡?tæâ? Ô7>ôór?-ʸ?/:ù=©e>hŸ;>SB„=°x¸=Sço?dq +?v%(?uOâ?u\H?­O?®*?9Ñr?=º>ýv’>õœä?’P>?˜–Ç>wu >HN£>€–>¬|”>tæë>Y e?vã?oó†>ö+C?  ?¶:õ?¡;ž=øQv>¦?½C=? Sí>úA|?3&å?¹ ¼?®$+?v×M?N¿¡>)ô„>`šA>÷?4¿V?±-Õ?ÆæW?÷QŽ?ÑFë?wo?Œ«)?©UÝ?ž'?™+\?ç(ˆ@#ç=?âÓ$?MàÇ?Û>ˆ­?öU?x, +?-T>³²>ŒU>K&À=¡G<€²m?lú&?¶Œ¢?Mm€? à¯?Xƒ?ÒÕ?´ *?ÏÛ?sÞî?CW?³R?ž?—³§?“r?‚sÕ?ŠøÆ?c9s?g"?òÙí?ó}"?ºjÕ?°>ùß)?Jjc@(s{@Œ0?œÌ?™H ?<º?‘õ¬?°Ü'?²i¸? Ù?z†o>ú‚‹>ú‘>úœ¹>ú«Î>ú¸?:*G?u½Ú>Ò¤–;Ë;@?u2a?Ã0~?D… >Æ_=Åب>þ4~?œ:?–×?›°?¸0Œ?¼™Š?€‰‹?{žã?½±¿?Âm6?#þ?2$D?¹¬¯?¥ˆ?>þÚŠ?B¦z?¼ð??·/?¤xà?n°[>Üú?s¦?)¶?k š? pA?-M>>S#2?)è?|\ ?|d–?|lç?"YH>ü|¹=ãŸS>Ó?>ùC?hæ?o j?{Ð7?ž¨?ÍZÙ?Íi ?§ÝÑ?É'?U ¾?5*œ>üîÿ?H†Ù?Í¡X?Ä{F?¢½?oŠ>ýb? ö[?£=?‚vu?¼ú1?½—L?»û?‹Š?Z•?p½®?}LU?™É‰?§'¨?Ø ?Ô•à?©Æ‰?þN?gØh?R–g?‰›ì?u,^?„5³?SÇs>7þS=ÚÝA>Ög´?¼éZ?Ô'+?ø)ê?×ß²?­|ü?9+~=àü?¬?}­?}¬/?}³ ?'¸F>ý´n>ý¹q>ý»Ž?±µ ?Ò·\?šä­?ŽÜ†?!Ê?Ô¬?}Éà?m¹p?*¬?1ó?²uÛ?Ø´<@'–3?üÜš?:Ž>ø¤ƒ>1Éf?.at?¢Ã¬?}4°?@á}? {_?ØËf?vL‘>ýÖj?WW?}د?³f?‘E¶?°N¿?º|Í?í:>ýÖ.?ç?Ì? –?!Â?¾]Œ?¾\?¾]?®`„?QtI??³ô?lÞ?{°=?ýÇš@ù?ÿýµ?ë±å?ê_ÿ?´òŽ?\‚ü?? ?(ûm>¡œ3=¯ ’?ü û@=""?Âe?}ªi?©©`?°;b?zÆC?e¥?`©†?[® ?&|?.2[?j p?aL³?œ¦?ž†9? úx?ÍŸ>ý?]äü@R”?ÐFà?Ì~?( É?8è›?x<•?´Ck?ºå ?½þò?¾‘y?Äp(?l¤>á“#?cf?ô ?7È?;›œ?CÁ–?S >Ø~²>•êÅ?O°?1O?Òð?îÛ>¿9>¤¢U?½‹.?·¨?“*?!`w?F4?se!@?Å@œ{?·ð.?¼Od?½v‚?ôWT@;¢ö@.·?ŽÒ½?k&ô?Æ?GT•?|å?d£ž?Tß±?Œe?£2P? ù¬?ž½’?ŸsB?§Ä¸?E³Y>ü7Î?YGÝ?|&Ô?5àÓ?$K>F‘=«r9?“ë$?°*'?‹+µ?‚!»=‰¼;^l? ë½?$©e?é`à?Üaª?fîR?]$P?8"?DO?Uôó?†]_@.ã?÷ÝP?¼}Æ?¼sú?¼n1?±ó?‘ ‹?Ÿ.?ÃcX?µBÀ?©¥?¿6?ÚX ?°¡5?zÍ ?`?„Mü?w8?nõ†?xbë?zˆ??}¹?‚‹.>ê±R=Tè´?éÍ?eú>ÂJ#=é>édR?"G?^¿œ?¼6?ÒÞ?éTI?ø{n?û¿š?®Þ{?“lA?ÿÄO@´Ž?Œ“å?O#Å>züÕ>6 @r@=¯?¾2?±Ÿn>®ÕV>+•–?t‘ +?%÷?y02?yË?ðZã?ñ¢ø?s÷$?iû>úa<>û‚?Æ\Ÿ?Ǩ\?Œs?›Š?»Ê?²‰z?HmE?D·õ?Ax?F*¬?š¶?™5?@Çì?W +?ß“G?×î? Ì?>>öú¹?kP?à 2?À§Â?3¸f?«4=»Ö>÷e?q²i?€~;?¸­?¬Nª?ij?4«l@7J@ +N?Áoµ?½òµ?‡\%?ˆð?us?„9©@ v@ ë?ŠB!?†Íè?ƒZâ?‚£®?ð‹O?ø^ó@ ½@BS?‡Ñø?‚aR?P(?I`u>•;>ƒÜ©?À¸P?Ì]º@41 @<š @ã9@`>¢êì=›BS>éÍÒ>õJ¬=‰kè<Éj?LÜ?r¶Ó@ü%@•ÿ?"€â>'ãÕ? ¢?Ñ?³wÝ?¤“˜? ŽÀ>¡s2?¸Oà@j @&O@çQ?¢GM?1Us?­2?ðû¤?µ¥?pÇ0?xÇé?w¤‡?‡¨±?œV´?©?â?©Ùõ?oüµ?d›q?Lù?AÛÑ?ùƒ?pŠ?t^ ?bÎ!>ï'T?ã4?íåÈ?뚧?³[?²úÀ@@â)@Cc?“—;?n6[?‡ï?†U¡?¦Ù?²WÃ?WÐù? C>ææ@>½Î¬?†R„?½š±?Å–P?Ï#|?µA¬?£<`?¶÷?Èë\?¾st?®¼È?ÇÏÂ@ø@Ь?kâ?çT@eŽ@!‹+?',Š?-W@]»m@yî¢?î]E?®ø?6à>궷>ðJA?óC@(r@Y<)@ +?ŸúÉ?­žf?Ï~û?ÀÕ×?†pa?“/?áχ?×­½?®ò"?®Ù‹?PB?SXþ@c$@#»à@ +À@–™?¶5?åÈ? ¸þ>ŒÐ©>’Œ²>˜C ?Gœb?ÝÇ?ÏÌ?‘lö?‰™ñ>çN>í¹?½¢Í?ºüƒ?ŽO?ƒK¡?(g>êõP>æ¸>ænµ>çà‰>í™Ç?P`¢?£÷?´’I?åß!?Ü'¢?¬CÂ?©ÐÚ?e€e?ei'?eRô?e>Ÿ@HC@kx@U`?ÏÜŸ?fJ0>Q½X>¡•>ài ?&=?«G’?¡.a?7ºï?:¦Š?à]ð?çU5?§T=?›ã?¦ðE?ª¼²?D(U>’7\?d×e?ãX“?óP±@ üÞ@ ÒG?â*Z?â;#<Š°ú;üg ?@ñH?b®w?qÕ¯?}Ü"?—ó ?©Ñ?¥J7? + ?‚/>â.½>лÃ>g@> ,`?ìÒP?øÛ?ú]î??¬8à?Œ](?›‚í?°vÿ?¸=Ÿ?¾ž*?¹,Ú?©©?«r¼?ðÅF?ï8r?‹;Ü?wð?L` ?0DV>ØIß>EK:?pß@ ³I?ài2>àʆ?5E?¥zR? Ü?:ñ?3x?•bù?¨h?lœµ?6êQ?*Š?«·Ÿ?“'ý?'Á?5÷b?½[€?¾ã6?n?…€¼?æ?ÿ 2?°Ï»?¢n?œ>?ÅA1?¦¯?=X?cz?Ãv_?Ä-?Iä„?Mu?´ÚE?Ç#‘?¨÷¶?Ÿ$e?Mݶ>ß¾P>à û>á3ù?^ŽN@ +NË@\?šƒ—?—24?Ñfð?ÔS?¦ûÐ?˜ñŠ?ºLl?Íœ•? _3?`\?`ÿ?` Ã?s8?¨^?¥ë@?€¥>?‡“ò?F+¢?:Ü ?o¯³?~¡y?\2Ý?Hï?Š²f?¸‰]?’?>à`?è?Þ_‚?à(Ç?cQa?_Þ?˜ó4?›‡ã?0×s?!ð?8 ?`w?P>t6c>ÈãÌ?<>A?>±?Ëí? + >Ó®á>âÄ+?:u?€P?Èß@(M?ÃR ?˜OY?Wxw>á ?G!?aU?3½ =gv=Äs?a5_?a>B>ê©Ý>嵫>ØzÝ>Ìðï?<.N?a\Õ?¿¢ ?òJÃ?³g +?apr?TÂô?6Òf?"\>Ë¥;>èd’?+ü±?0-£?4_î?8™Å?[ýC?R_ã?/uE?1‘B>½„^=÷"i>ž´Ž>üÚ°>‘aÞ>ø¤‚?ÞwJ?¾Û§>÷@É? +8?s2?áP?ˆžX?ˆn>Øú¾>_o?]?#Ãd>ˆåÂ>耰?{HT?iY?? Ç?µ ?M·a?_ü¬?ÿ³>ΰv>"Ïã=“ßÞ>r•>§ËK>g߉>võ>*ö4>>…¦>[³ê>YÀ>EÇ>1«>ÿa:Ý-9??UH>µk¤> »?úÖæ@û˜@ J?Ö1]?gT´?b|=?g{“?}L?ƒŽÎ?TU>\ˆä>yÕ>p8R>T¿,>9Pa>åE>ÿ¨,>Ï™‚>ÙŽ?ßs?E?¾y—?µ#f?j†?Lí>ü¾ì? ø +?3Ò¦>ñ5H=•‚>{O>Ð?²:>™¸?|?¥¤?þä?pqð>ðäÒ?ÇÄ?xšw>ìýù=Ì9ž>ñ1?*Pö? ƒî>÷{>÷{Ç>÷V>?ö?(„>Tø»?7?2@I>`ÒŒ< Ø?0Æ›?s¥Ì?t2X?v¿?dæ«?XÖE>Öa§>¨óâ>qh>]à¨>Õ6>Ø?LK?#cß>t Ì=Û¹8>ʆ4>õ4>õ[>õ9=Юg=Iý?><Œ?abp>ªB—>ƒÈ>u*>·ä1?˜Æ ?µœn?&è¼>ôÐ>cƒ>Ã?u?)?g?tÏ€>DªR9gHq?M9×?jã°>=ã4=¹Z0>^œš>‘{†? +?, ?;{v *>“Ø?xtŒ?„·œ?u>õF?®K?·Ÿ¥>Õ=ÑI/?}Iê?‡ß´?W?N/Û>ùK?>õ¯ý?¹Wü?³‘B?-¯ß?&É«>àïÎ>ñ5?vŸ?u-À?jßÑ?i('>öà<>â•ÿ=ÐíC>–ÓM?˜$.?ƒ–? ž¹?$ÃW?­Ÿ?Ût?u›?u??Eª ?C4?À.? Fb?)øz?:Ý*?€¸E?¡ôƒ?÷b_?»c?]h?•B¸@uÜ@7 ?ÔP?ê(N@ ˜=?×Ñ?wF?:¨5>Žû?*½²?xA?–X%?®zº?±Áí?µ +?YñE>øÄQ?È#?R>e==®Â>Äü>øúÕ?Žn¤?¬á?d>ñ}ê?hTK?ySÑ?Œ$è?”m{> j‘>Or>õ¶;?P ?´Š\?±°D>ü¤È?/–_?ç(?Ôù½?¯ŠÇ?®¹-?z.‰?FŽ>J¢Ý>ì Ž?xë·?qøL?z~Ü?iõ­?F›a?,Ý;?kí>ý%>ãÈJ>ô¾]>úè?F[Ÿ?l9?3×?%‡\? ù>û06?cä ?rr?9À?7 ù?±#Š?ÞU?¤1?‘3?£s??˜8A>G\è>„[4?°;!?¬òq?z?aõ>ûí?R‘?"•?OWÈ?P ?2 >/U>Ûñ4?X+¥?£×A?]ãC>ü^?LkÛ?|r2?‡Ò+?‰–?/¬?çI> ë;!ý÷?×]^?ñfñ?º¡{?³Î¶?~?t± >àÁÊ?®õ?—% +? A>?½·L?™'8>’J¥?˜j?}ý) ?iâr?´|ÿŽa?Sg¦?„RÓ?4Á?}W>Ùy¡>Š†f?E?,íï?½–R?ÕiG?À‡b?ÄÝU@%ƒ‚@"×’@>'c@6Û$@æE?ü`Q?}˜¨?D’Ð=üé<)¨;ßË`?h?ÃË9?ª(?Š»?;`>º„ë?j>J?§æ0?hn5?6éß?>ØÍ?:›¬?^Æ•?`¬?Sâ?XL‚?™#?£ç—?€¤~?~b?ƒéé?»?}ÝŒ?}f´?whk?ˆb?¾lY?¹ã?·r?ªjI?}èì?žíÊ?À­\?¹ ?¾o5?teú>ýëÚ>Áô>¤%ó? ‰õ?!0`?à"?¢`¢?Ì´M?ãßa?ˆ²Ò?xù9?¸ùo?»´Ä?x¼˜?gÉ+=“•*>—I?8º?BU@ +Œ?ùŒï?¥•ß?Ž‘y?:ç!?–le?ýÛ0@ ™Ë@$î?ÓY>ýÖß?‹‚ü?ÖÐü?ÑK?ÆGÔ?”17?x ÿ?}W?~Û??" r???uË?ˆuä@Â@¯Å?Þ0—?Ö* +?RE¨?Q€V?™Êž?‘Ì>ÿ?'¡7?™gð?‚÷Ü>ý’Œ?C†è?±P ?‘ó¹?M…?¥#‰?ý{?¥“ý>ô l?~Ä ?¾²?›ý?ƒbÜ?Á¯•?àóš?”ðÚ?`åÍ?½Ë ?×i½?¡k0?Ž¦’?‰ð,?…=3?›„ª?œÝ‚?>›B?1Ú‘? .?Ô?½Ç†?¼Åü?¨²b?©š?à†T?Éœ?‚?ã?Uœ>´o¬=%%È>á2c?—X,@dE@\tÌ@¡Õ?^,×?‹NÝ?©¼?†§?L;´?ZD?p‹Ë?¹M?Ûkµ?ªBs?Œ5q?&‘ª>üKi?]˜w?|:k?d}[?bø?1¼Z?¡?ÌQ>üt?í æ?ûÓð?½áÇ?¶^'?´=ù?­Ä"?Ö? =´@ +€?ò"³>ûŸë?/Ð?(4+?I;7?¤u“?¹Ð[?ÝÕ=?Àä¹?‚:ú?‰e?—Iø?ÆLB@c?à‹ˆ?ŽEd?Ð5@‡ó?æÑ?Ž˜­? 1ð?·‘Š?4< Uê?Qwõ?º×?f[÷?x$?Åw5@Ã?S¨>Q ?ö?6%?ƒ-?‘­@÷@(;?§t7?ÎK?ËL?ÞÑ“?²?«ð%@ œ@Õ:?É ›?»ä?7Ñ·?_Å?çÀª?ù9a?|Þ=?k¬?èB¸?ó¡?öÙ²?øÜ?ø·?ôj?ø‹p?÷'3?xÀ?~YO?Ö|?ÌÔC?‹Q?‘ª+?Òw¸?Ë)`?© ¶?¬rR?ŸÆ%?—w(?7t\?fM×@QN@#u?ˆ|í?‹{ü?Îó?Ìßg?Óå_?ÌØ?l;?T}›>ü3?«/?áìÓ?×ì‘?oÐ?c·>÷ ð>Õ[-<à+Ò><")?l×¥?oÓ8?“c¯?„¡?)HÛ?!>p•?b÷@5í@ ³L?¸Æ?³î/?“áp?¢ôŽ@ Õ@ë¹?$"?kŒ?»`?¡#?Ƕè?ʵy?·?å?µ¼K?t)µ?t¿I?D>*?9¦?`5ñ?e·?hD$?k|­?³/%?¶‚4?î—?òs?·f?¬Mñ?~Ý?rÊ?C&û?G¶?>žÞ?×ã}@&ž?Ê!½?µ‡;?FÇ>53?F3¯?‰Ñ+?¤B¬?²ª?z· ?)5^?ËÞ4@ˆ¬?¬¢?‚ƒ?‹¯q?ËOd?¾½q?²^ç?Ï„Q?ð?Í?Ȉ¿?G]?FçÅ>uHz>¿E?i˜¶?ƒXN?³”b? $¼>ï9P?k?}Ÿ>?‡k?èØ?æK¼?Ùv?àƒ?ªðe?¤eh@Öí@Š®?Èæ;?²gR?æ·§?ï§!?ÏÈ?x A?έ;?âÆ3?ònq?½ò&?o Š?˜ô?׳š?«©`?ó—?,^™?l+Á?l?kôP?y£Ý?¹»1?·ª‡?ª³H?¬²?r±Š?k4ä?jä5?jý‰?ÎG•?åï?–$Ú?aBl?SÏ’?_a–?e>|2ë>›>¡´>é,Ü?62?J¦?‡T/?’?®ÿ ?¬³ì>é-…>èÿè@E@?á`6?ÕD?ÞaÝ?ÜE1?_yã> E>ºN/>Í·i>ýÂœ?,Ï?©? +n8? +îW?Wý?$M€@ +ù}@ \È@%€@*BÝ?œ|R?f²å?eËr?bæå@Þ^@;x¦@"KY@CL?ßL–?‡Ûª?›îP?Øoê?Íèð?e’m?ez0?¼Äq?¼Jã@$Ø@8³¢@ðç?îmu?FƒÄ>˜õv?2Mx?I?}µù?”?f N?`Ý ?£Bt?žÖò?ø?{êâ?JÎ?˜’?¾b’?×.¦?ÞVY?ãhx?ô¯‡@ r#?ü?þ?cAú?gø?XÕƒ?RéÄ?ú +~@W8?báH?Þ?Ó#æ@¯Æ?ȳ?0Ì?! ¶>â@o?l?‹¤?…N?Ààò?Ä‘?ñ†Ó@ýR?¢Ûê?pËð?kÖ¹?až£?”ÂA?ÏÖ?ÃTl?™¡? "ª?èŽ?îZ?¦{ç?¡?ê:±@ +¸@$@ øú?ËÕÜ?`ë?€ñ3?¦N«?ñl=Ëž> +|>ßdä>à§Û?? ¬?Ï¡@׬?Ê m?–;Ô?F?5ë^?Bîk?ˆ™?‰\ó?)EL?&e?œœÊ?¨7¡?°(Ï?·z?’r˜?XŠ2?Nê?ECæ?= ?J<?IàS?ÿ±?}}> ÙÏ=ˆhj='Ø::꽂;F€>É8?Xê}?Òò@ 4@õP?t—F?x‹?Þ²´?à&ý@û@àˆ@#C@M?æÇ?­VZ?Ÿí?‹Mð?ŠNX?f3?‰ÿƒ>"y¥>’¨?â?Q1?‘Ž…?¨>Š?i[? }f?ªDi@ þV?Í>>ä/ ??`xŸ?h-o?¥Ï?¤•?u¡@?p!>”Û=ººŽ>.3}>u‹ +?^Íÿ?¹«M?“8?3>±?<’ö?g/Í?Tg—>Ol#>@O?hXc?€?a?.áÏ?[E?M«F?a¨?\È>¾]1?‚i?tT±?O >똰?\Ö?aI?_²¯>á¿2>á\??H |?O,?x€?›í?Oµ ?,°?x¡j?“Ö@?UBS>ËWX>¡åÀ=Æù?E?°>—Íè> C0?·p}?Éu>èûe=úy?/Ïø?oă?’7$?©@™?;">Ÿ—?víñ?`‰ñ>á¡P>ÎJK=âY>Ê>Û—">úv©>êþI>á>ˆ­=>od“>¬å>®Ò>ë¬?å?™€>á;>šk9z‹à?[S.?`«í>ÿ¨6>à…ž>¾‹Z>©Ê>ÇÿÎ>à*‡>Z3K=…7>…û>bl>™Lp>Ÿ|¶6}€À>¬Õ…>Þ5ç>¨´=…Ýù?¶þ?Y(¢@¶?Ç‚?ß>àj1>„ÝÅ?¾ž?^à}?d’ä?N&…>Ì>§>“Lò>ì½@?+2>Ä&í>ȶ)>3ì«>~í?´h$?½<å?¾rß?¤œV=ë½’>Ÿ&U?`ŒG?yo?¨X?}|À>ÇX>(šÍ?ú?¦ +?^Þ>r&z>¾p‘? ¬Î>ü`{>ò›Ë?>ùî?pß?1\æ? •>q/X>> |>±Ò*>æCM>÷ B>ª)2>ŽR?^Èd?.Ö>Øó=ÏU¦?žƒ¿?ãÂâ?^/s>÷f +>úß?dû>eþ/>,Œ?–?ÃÃ>Z>ÖÅ7?/?Cw?R‚ ?#vÆ?.? Õ'?lÁ>ùÌE>õë?™ÕL?¥S?,ºo?Â?¢F6?§e”>èi«>Œå>Ú|?{l>úù&>ôÝÖ?ð?(B?“.?¦#R?pm®?lS³?ä-?ïž?/ ? +‹7>Ò\>º\Ê?"ï?ú#?>‹Ì?=PÒ?’`Ø?•YÊ?NåÉ?Lµ^?!-?Ùø?œ^’?©áP?¿f>ò®a?o-Á?{Š‹>èí~>ÎîZ>S¸ƒ>Î??¢??¡a>÷«é>÷ +?Ÿ/?©^?‘'?Ž²œ?¨Û«?¨¼?cï½?eï?Sµ?·š?¶¾?©‰ë?X…?:ã>¨^j? úû?¤RÇ?™†»º>¾‰P?&‰H?5°z?w4?ƒpº?Ÿû•?¬O`?·‹Ì?‘{D?V¼?z ?ßÊè?Â,Ä?§1Ÿ?©v•?¥ÏÚ?ÂSd?Ü…ç?vm>‡Éü>àý¡?!È??U^'?xV0?xf—?xt$?r…?t¬?x†E?ves?p?i¶a? Ûv>ÀóZ>èé >ùb?_É?y/Ç?J;°?.%F?@ió?L%º>¿çš>¸‘?sðT?y+Ž? +Sr?Ú>ün>ä¢o<¿¾ >=o?5+È?Pο?z(?‘X?Î#1?¹~?ˆº¹?‡“¿?ŸüÎ?‹£·?Oo;?{Ú‘?uª?þ?zÉ?ñH=-ˆë>’xò>úþ?Å–?  >obá=ЬÐ>Tœ>OE?3G×?cÊs?w?z'à?Èi‰?ÈÒ? –4>þØ?Ì¥[?Î÷§?Uëž?W6¢?‡1>Ñ|ì;¢Ž >s>ü>>ü>üá?*'i?|*?X§|?ÀÐ?/‹è?C¡w?w>üc†?kñ?'.§?’®?©|?¥º‘?¬¦d?Ža?€´”?²³”?»x>†ý—>V•”?é/ò?íÔÑ?ÎN?Ž6>¦PÓ>Ê]^?|ý?„ŸË?  +?† ±>¾\<>á™?50?L’‹?e.à?9£è>ý=\>…•ö<[r?Ú¼?wëc?¡°€?µ{ˆ?²•j?¯³7?¢_>¬Åñ>î_>ýÓ?—T ?žhò?·`?´—@Ϙ@ q©@m@5d?Šiœ?„Â?qæZ?Ë:?½Îâ?§¡é?s.?f>Gܸ?Âÿ?}Ê?kDk?V¢?œ³¹?¾_¹?÷|’@Å”?‡êÅ?G¤>?¬ÓÃ?¾j@?AûU?>Ïáµ>Ô})?†3Þ?‡?¼/?¶Ÿ´?}ñ¸?}õ©?}ô[?œNc?òü?̧M?}úd?}ú¨?}ü¬?ÒÛp@¿?ý‚G?¾~f?MŸ'>™ƒŸ?*²a?EÄ’?6pÉ?D,ü@ùI@#Sš?)Âù>xc<ÌÅÎ7¦?r•©?ƒÃ?~Á?‰]@¶?êš?œNT?•Zó?˜œ¶?³¢Ÿ?â€?­†h>ýñ+?†ù?ýíä?¼ŒN?T³”?,pØ>ýé›? …?Æü?ª%.?í×=?vŠå>ÿɽ?\_2?}Ø·>n‚å=eÑÚ?÷Œ·@ Zè@N"@xS?|ž*?‚O?}¿?‚3¾? Áë?‡4Õ>šÒ?¾Aj?¨ˆq?K?–ó©@ ?¸Ãý>Œ¡?Y/¡?ï¡4?Ùk;â'†>‹K?ˆû?­›õ?ï?±‰¾?–®-?Iq„? %?²H¹?ÓtÔ@].@*“?ŠéR?y÷?KÀ-?Tû)?}¦Á?~` ?© +A?©â¯?pN?¯ÐV@ ǵ?ùB©>ýL?3gŸ?¸á?¼ý«?½i8?‘Ô>ì?yS4?ëcÜ@ ˆ:@1Ћ@/u@dA?Ýäó?½~?™ð‡?|š©?/£>üŠ8?”(?Å%T?ɇj?Íä1?)” >°Ú`?ZøŸ?|M ?'¡´?p~? ­h?±w?˨>ü?¸i?½#?€¸?‚œ+?„¸e?†´?{ÙM?‚» ?«Ÿ7?®Sî?•Û9?o°1>=>¢>ÔÂ1?„ýè?¶ƒ@›y?æV½>ûd(>è7>´‰ ?%h»?—ŠS?”«°?‘[I?º¡?æ‘r?î…í?ôÊ»?º€^?¦T?{ìâ?z—?{]y?€Þo?æi@ ˆ_?¡Ç_?YrÌ?‰`ø?P?€ +9?zH?Œé–?”v‹?Ç2Z?âEF?¶^?œ‚.?€4?yÛÊ?‰'?„óÍ@4OI@E +?±0@?›—¨?¦\]? †s?ó ‰?ùK½? ‹s>ù/?vNÂ?yG?yc?z~ ? Ê*?'*@=c@ïd?x¡Y?€Ü?ÈKš?Çôr?¨¬ ?¶6j@$å;@tR?¡"x?™¢°?nh˜?od®?7`í?gæ5@¦Þ@ +™­?Ç?µGx@»?ïD°?XÓ?Š+u@ÐÝ@æÏ@-"`@Œ)?€ ? +GÚ>ú˜Þ?¿ó?uùn?ƒ@?­êÖ?ª†O?±Ž&?¦ÃÒ?v?‰Ž˜?˾ì?¼ŽZ?ƒÏu?©(?öÿÞ?ò|“?¸ƒ?´$?œ3?­Z@¯‡@û8?…™?„t?ÀT—?²AK?L·§?`H?ÇÛÃ?Â<Š?‡Q ?ŠŽ ?ôu?îïO>óÞ >óÉt>ó±Ê>óé7?µ]›?¶‘=?·fm?¸ûö?ëÔ¤?í:?ƒ=j?rÞb?œoZ?`¬>,PU?²æÈ?Û=Ó?öX?c?5ÙÅ? Mµ?ˆi ?œ¸y?×L?qŠ/?Ħæ?èYÝ@@?Š¹>uÌ?åæ?p¸¯?$íô>›ÌE?iÀH?Ü¥å?Þ„B?ÕžZ?óG7@‡?夊>ñ´ï?5>d?³ S?ÊN<@=ä?÷æ??Ô?'q?îã-?ì–ê?³ª?²í‰?‡e?ˆÝ?á™à?îvê?¼v6?²sÚ@ÑJ@!’,?ÍÞH?—ü~?}w®?mN?™Žú?±Ñ‹?Ëe?è<£?É¡Ü?Ÿ:Ä?ñ?lqŽ?l\y?l;è?gI¦?Y‚?}·å?åÊ?à…?k™û?k~Ä?keá?kG·?Y“>ðçS?ÉÅÊ?êÛ¤?â3`?Ûñ?”QG?UÞš?[¨>µ^>þƒ?)xù?’y¿?ÿt0?Úò?ƒD:?k›ˆ?0J?ðz>é+R>é ?ª`ñ?®¥ä?‘ñQ?‹2?ˇ?åÚQ?‘cô?Eže?ƒÀ‡?Ÿ¥Ó?¡z?¢ií?‘j?VˆC?nà“?¢L"?¦gù?°,Z?®›'>ïâ>æõ0?WmT?fÄZ?f­?f‘u?Lf?MS|?+>Ï÷þ?hô?Ëo?Ħä?¼ˆ•?¿$o?¿‡ò?¼÷?Á´??Ãh»@ ‘@¢ó@VÖ@¦ë?¡CZ?&æ?.|µ?Ki0?c7¶?†~¿?‰nK?³4?º}%?ç;^?ìýü?¯öš?ªóì?7çJ? +–Ã?7J?V¢#?ªÆ?ã¦?¸‡€?c£?4C\=%îÒ> m•?cZ?bö{?¶¨³?½øI?œé¿?Iè@úà@)ëk?ÙøÅ?<é²?ƒ˜‹?Ä ©?½–`?ÂLH?˲¸@üp@9»?'˜Ú?Yí>î7>áË„?c æ?•“ü?«+4?ÇáZ?°çÆ?z!:?q¤2?;°?.Úy?jå€?j±÷?$„>õNÓ?;õªn#?’X?ŠÄ/>àÊ>àºÃ?§¹Ö?³3?”ʳ?“„p?u‚Þ?EÚó?¬v@"?éLc?Œ¬T?Æ ?¼ (?·DO?~bÍ?~‡ð?ƒjP?wJ?“ª±?§ïå?¹~V?Ê‹_?« V?á?(²9?ŸlÝ?¢¬Á?¨$ñ?¨(@žÁ@ +î7?€ËJ>ÑM;?ƒí©?Ò?×Äl?êô?Ä¥>[%C>ŠP?’4?•—?Î8ö?Þ» ?¾x`?·³¸?ÓM„?à@?²Û'?q®Ã?… ?˜—,?‰z`>àS½>àR?BÞç?IY4?Œxî?˜Sî?Á¼m?׌4?ÝžŽ?àv?µÇ?`†4?E‡Ï>ë+?>óé? `}?¦œ?]ž?`¦Q>,OÉ?PµŽ?”^ä?‹¡®?“q¸?} ‰?%Šù?EŸŒ?ŽÈ)?ƒ´>ˆuž>&Ä>à´×>á +>(¶=Éû?Ty?OÀG>ßö=æ¼7?Wþ?â# ?áDã?áL¥?¾¶J>íÀ+>ô·@>á`|>ánû?=d? +ó1?'gZ?5i>Ýz$>Œñ?\NØ?©0—?‘ö€?WD6?%äü>¶4>ïä»?ƒeK?o]<=åm=Â?F7?QÓÔ?V#?Zoa?ÂH?á·ª?¾è{?©N ?(ŠÓ>úØ5?Ÿ·R?kn=àÂ>#d>—Õ÷>†Ò0>Òá¼>á’™= RÀ? £?aré?s©?{C?5…Q>áK>}1=^Ñ<ƒý =„`>ÚÂz>ÊG=Ê-¸> l>Ö÷x>à•,>=C›>ôï>&g§>9é›>¸ ">Þú>œ›N>7'T=×¥ˆ>ºuú>ÞD.>ku>®è¬@#åI@NF?Éx7?®Tÿ?kÏ„?(ž>· >}>Ö>OB·?b×5?¡“?RµÄ??å>»)^>¸ZŠ>y2G>1ñÎ?Z¶?cæ#;üu=wmµ? Â?Ôk>Õ01>à¦`?Ú?1æ?[ïå?.Hl>qJ$>|D>O‚f>¼ø%?-ÿõ?d¡?‰{þ?{b?nrÛ>ç->‘`?‚×>ˆ„Ì=»>R>ˆeB>®Á*>¡A¢>“ÈT>t‹Ô>}Šë=°L?/ËØ?†ð?)x¿>öÝÇ?¼ˆ?+.?W9ª?u,¸?nè?h*ª?Q §??Ry?¼¯>õã\=Îõ•>EçŠ>^f>þÐ%>ý®Ò>ðùK>õbK?MCU?eŸÚ?Ô[ü?ñŠ¦?8OÃ>õÏ?£ìò?·Ìà>ž}=ü ?OŸ?€a?Éí>ôò=‹nÖ?ü›? kÂ?2å?Cz ?>ôçÉ=n¯Ï=JÀ>5è?˜o??¡ˆ?b Ù?QžÄ?(O?+%,?–+.?˜ç…?ÍÝ=?Ïžù?·>õ3Ë?9V??JýÃ? ‹¥?Ÿ¿<¹_::àL=4|®=Ä?¡åÚ?ž¸¨õË>õÔ—>õâ~? + ?Þ¹¶?ÓŒg?‡˜?|’Ï>Þ2v?#[Š@”!@r·@øN@†3>)gâ>–ÂW?2?3á?„Ä(?ða?™ªÝ?u;ß>´™÷?²Î?™°è?_eÙ?"JJ>‰T?wnö?Ó?°–ú?ï‘ù@.µd?ìME?À?‡î?ÇË?«›?™´X?Zs>ÇÞ->­þ)>”!e?º¸?`N•?\ç8?b!î?'ü>ùB>üî—?Ò&? K‡?ÆN?‰œ?˜’¿?’-‹?‹É”?ÕŒ?ݬî?¾‰Â?» ?>~P?#Þ >˱>ž Š?vW?yPá?r“?x”l?y_…?€€å?©JV?¡ií?¢¹´?ŸÊ?¨äà?¦û‰?¯q?À†?ÛQ°?ÅÔ¥?–º?‚bÄ?Gyt? :•>úË?<?zÞ·?zíÉ?zø‘?/u˜>ûÌ?‡—?¨»B?&H„>ºún?ŽªÌ?¢‡>ë >db?c:ô?„o.?þœ‚@Yf?-`5?!t>ûÄ1>ì÷=Ïu}>@Á?zÌ@?–™•?ðŸÁ?ºRË>ü†>ü#ß>ü,1? $ì?(— ?P f?|Tñ?ZÛƒ?Hœf?&_>üy»?K•`?|Š?ÍÁ;@(?l¢U>ü­?¥9$?½µD?&"? î2?[Á)?V]ƒ?–1{?š0º>üòß>üý™>ý?…æ?;?\KŠ?™dñ?ˆÚ¬?SS`?=Ãó>ð†Ý>ʶñ>ج\>ï+Ï>ýR²?C!3?|g?z{O?}j–?„ž÷?Št?ø†ã@ :ˆ?¯¢=?#@ùl@ÍÅ?Äu*?¾.Ò?¯N¥?´õO?OÂ?FÝ]?`®(?}™‰?µ€?œÊ ? Q§?(|$?~KV?–Ú—?¸é +?Æcž?ÑiÈ?Ô¢+?Üdý?½á]?¨±?„ç4?nÅ3@"¶,@O8`?§¤8?/½?¬d ?¾yà?”.&?ŒLN=8Íç<ìo=?´g?´p?}`œ?~Ðp?~?‹7$?µÚR?ó<-@I ð@'dš?Öý€?Žÿ6>ljÜ?=?—¦P?²'Ý?¾ŒÏ?º?·½?ùÿ?MKV>¿5@È@.F_@ìø@·?æ?xq+? ¾l?–Þ?~?‡‡Õ?ÛL?Ìh—?Mß¾?i}?Œ¼6?žÿ?Ü–£?ÇØð?”ZÍ?‘uÊ?¡lÇ?‚EÊ?#(?^H?€$?jN-?nI ?.3?Šç?Yú?}’Ö>„Fm=—{:>ÂØR>Öå?–½è?«,?ml2?uA·>ÿÃ=?¦Ã?}ÒÔ?Ž¹h?ýù?ÑeÖ>Sšn>ûy?¾P3?³F‚?œôS?Ÿ!ï?–v?Š\X?}©õ?CS¼>ý¢?¡uU?ü5?¡è>ý‘V?a=L?’;n?G3?ºå?šÒ>ýv¬?B¶è?^}J?€Ã¹?:I?ƒÝ&?v³R>€Êˆ>O ]?•+¢?’@?};ò?z‡E?Q?H¯a?já6?]@×?¸Ë?¶>ý £?ŸŒ±@:?î\=UIØ?+Q…?ÈÛf?ºÒà?­xn?ÊÎ?åìF?»\ ?–ü?´vÝ?‹f?Y |>ür?{ì?—…O?fÐ[?RѦ>Ó›>ƒ£1?q}æ?ŠFñ?~æÝ?|PQ?r?ð«>ü|F>üíè?|ʯ?|¸”?áY?'qÈ?éž?ÒXÉ?×±?Zæ˜@å»?ñÕQ?¼Õ +?l9>«€~?œß?Æn;@ôÊ?Öñå>ûwV?@%{?‘Ú¥?“ºÒ?)?5êµ>*è?$À?…fw?¡±ù?¼Er?ß“Ž?úðÆ?ŠúÞ?FÒ?Œ*?¶=?Äi?Ïäô?ÕŸ?ÐÀ?À~?»Ú*?ŒúT?z\ ?¤Ë>ÎPÀ?k(L?€3È?äЮ?þ¹ù?¿q?®ø?Û²Ö?ä·¦@6“’@@¨á?,”>ù›F@ãÿ@ðÎ?ä…ë?çþ­>ÿf>ü¥ç?x±Í?}@–?¹mþ?±E˜>ø÷?â@ÛË?üz?­ê?£É?=šõ?YÊY?ºU?·’¿?´œC?¾#?º#®?±¶?x¨?‚p¯?²œ%?°ƒë?¹Ô*? ?$> QQ?!n@ +C‡?ðiE?N“?Cm"?£㵄>ê¶>óÃü? Òu@6KÀ@3Ék@Ðä@ ²@‘@Ëä>€<4>9@ÈÉ@è.?º°{?ª`è?Öœ=?Ý?¨œÊ?*?Óaì?Û~6?Òæ1?Ô2?ºÿ?­’Š@‚…@. g?ìDê?´æT?jäØ?Ë?nfì?“¥™?–ÞÕ?Ÿ…?–Yø?†Ñâ@ @iñ’@_Sa@O^@…?o¸?½To@/»%@ V²?%x}?¤1á@iØ@Q¾?¿¿?¿¨ÿ?³¥?¯’*>Ü>œ ?­¹?²©K?$ÌÓ?ba?™*n?­Å¶?Êy?ÕŽÎ?”á"?ma9?S£?œ&v?“2?‰(j?˜ü?¥XÜ?šÓ{?Ší?” ?œ±‡?€¨H?RL?&>ñ?©¤l?§$ô?nOÿ?k‘W?kvp?kYO?§Óó?¨f?à°ö?êî@ÐÚ@&ÿ?Ù©q?¢éŽ?~?J|‰?Xl ?j?³µe@ +®€?âç¨?Wy÷?KÑ>>öP?š0?Ì?‡üZ?ys?Éa?ªì\?®ŠÏ?Ì?hˆr?qÀE?hØÐ?r¿?np?r ¬?gèé?7ÃÛ>Ð{ƒ>âùÙ>þ—£?*Q?æûä?å—C?¬ÊA?ªõ@¤e@$?ð/?×ÇP?ÎÓ ?ÇzÆ?Õêt?ݼÝ?ÊRU?¼©\?¬Y?…ñ~?ƒÿ?v3a?Šß@Dt@N,@—L@Øg?â l?ËÒÌ?§B?•Y?–¾¼?˜'Ÿ?ª(?Ë^'?«‰>äeÅ>êÜz?R.?Bö?š§?žšÿ?±• ?±gO>ѱ3;C)Ž?A9#?ª¹®@¤@v¥µ@a„@3_C@?cª?bÔ?_ø?%€@KÈ@EÙ@,]@ ¥@Ì=?ÙÊà?ÕÇE?ÛAâ?Â3 ?_íø?ˆL÷@.k~@1aQ?Üu>ª½>Òo„>áÜ›?™² +?ÒrS?á¿)?õ:—?âÙt?²d…?ÀZï@³·@3Õ?¥å?§]o?Øü9?á6U?‘®¦?a )?aã?a W?ÞÁ>ÊNì?ÖL?Ì'(?En-?BF¬?Q¼?^p?>à³â?@sý?nk?¸À¯@ Äj?ý6ˆ?¨dÜ?©§?À‡™?Ææ?!b?©©?•#?¨K¬?#Ñ=¬ ”>ÝJÞ?Q=‡?‹ÐŠ?Ójk?½Ÿ>ì´>èå—?¨-Ø?¨4A?{gÜ?w7=?¸’?ÊáÖ?Yø>§/"?&.\?‹´Ø?ž6E?šR?¶ Ê?“­±?’–?M|?Ž™¢?oʽ?\\T?ƒô¨?™u#?ƒwõ?@Ö­?†â“?àYT?ðg>àes>âê?æ?<>ù#Ñ>ò?FÕž?b1`?± à¨b>à®a? q?9ý=¨àÕ?*>í?yfn?TN¶?+¹±?Yh?…ð¥?‚~è?†¡-?k(j>’²Ý>„Q=>áã>á?nŽ?†Q>îü>á9 ?uã?¦"þ?á„œ@ ш?ïÏÈ?¬û?‘D8>áiÓ>ÊÙm=°¡=ÕÅ‘?BT>??U>ô¸¯>á”7>á—,>áÖ?4 k?fmó?¸û¹?ø‹É?Ë÷$?ƒ(?‹—Ü?©N;?›Ò?ZØ?l>ù¦¢>ñq>Ü«•>á‚?‘9ó?ª>û"+=ñ<=”­r>ŒÞ8?(1G?ës>˜¯>>91>5ü7>m,(>ée >Ö1ª>yH>ˆH‚?ÑÜ? ö·?0êÅ?GF?y`„?´Ö?Làª>ðr?!›È?a2*?¯;Ò> =@°’=xÃP=ï½<>c<ÃVÈ>Ø‹^?1z™>úVÓ>–›>>C’¦<¹L=ƒÅ¦=«¯>ÇR>ÞO=ÏÍ>¬4Ð@­ +?Äz®>>zT>Èê?Çb>Í„>- j>…ð>Þ>ض? Íî?|ôÄ?”!¡>Ý>v_ý?Z>q?mâŸ;q¤¡= + è>þâ>ö1>ýÛ½>Ô¡á=ÊÆ[>cê>WF>ê“8?ˆÎ'?W¶ƒ>ðaÇ?¡h?,Å?Üa>ÅCÚ?F]Œ?¨J±?n‹ß?¯ð>cod<»³ =y.? W?>ªw?’³>øEò?-Ù?@C‰?›T>Û8æ=ìDì>µßØ>öâ«?RÄ®?u(s>m!Ö=P*Ì=Ò½ê>¬ô?ìþ?2 ?¯>õì>>Ÿl§>|ˆ`>Ý÷÷>õ¤Ö?[jR?z~?E?½?(ó±>åùÜ>ẉ>ó>õ¦b=¶û=.r ? õP?*í‚?‚å&?<Á>‹°O>Jà°>äCD>ôÿ#>qëÙ>4ü¬?:Äc?Tý>ŠÃ’>ÒX>Ëc‰>ê=Kú?r¥b?ˆ¢n?ÌCÆ?Ëœ?m}>õ?¯D…?·Þ?­ ?·è? "M>õDû><A=ðÔþ?e?sdx<Ê>]?Z“ª?Pu[>•Æ„>½Ræ8ÎX<äÐ$?ž¤a?–¿O>!;>™"?(7G?79Þ@³Î@4&?¸œå?§ª™=; »=s4?Ë?ñ|?45 +?=h->¿ÛÃ>é¶Õ?v³?mhl?A9?:€o?>%a?8™,?(X?Yª @w?ÖŒ? Hû>À´<“c>¨¡²?w„?¼'d@#(@ Ý¡@ +¢?á­Ë?˜S?‰Sæ?yã?v­ó?4Ði?;ƒN?LqÚ?{›?‹¢k›^<¡Ìÿ?"æ²?vÛß?ÇñS?âõm?Rv?>øýú?„t?ºÖ?ºß?ºì©?ÑûK?ßÓî?’dl?Oº?X±@?X’*?«Ð?±?ŠÁ›?€Ù·>ùÞ×?,Ì"@õ@”?!“å?S\‰?»¨¬?±™1?“ƒ?tð>áx¢?C¾?O#Ú?•Ò¹?Ñ̈?ήà?Ë“Ô?¥?áê?E¯ú?zóì?{ó?{ ;>Ån3=RL>;¾>š Ø?} ?–XD@Ë@#Aé?Šnk?< ?1|>ûŸ´?Œ!¯?—6¶?às?‡³?Lh?2?Œ ²?kk>üöÁ?Wý¥?ü¡?Æ*2>ü-;?_ëq?ÆÒ?Šæµ>üT|?Ÿ*?:É$>õ×9>UîÝ>ºÕä>üw?“ãÍ?¸Ú‚>Óõ>з?‡š?Ú° ?ü W?‰ä1?oÐ>E>QYG?®-? óÿ>+íD>këa>ýQ>ý¿>ý'?>½9?½æ´?œgç?"ÉZ?‹b¨?ñs?‹±´=J '>˜ÁH?u>]®Æ=$Mè>½Uu?Ž.?]’?}‰t?¦*¹?ºç±?xÆh?f"@ø?@.#x?§ý?Šƒ6?[’Æ?ZpÜ?¬ÜE?ŸAT>ýdz?"¬?„ñ@?’RÇ?½Ôƒ?èá_@Ñ?éä«?‡+¾?§Íæ?ÌMœ?¶Mw?¥ôÜ?¶žÒ?¾yÇ?À¡?@™§?׫:@ 2?‹ùS?R­·?’SÉ?žCè?£ÊŠ?©R>3=Þ´6?ék>ã¶ð<^à>]ˆ¦?~Ó?Kæ?Ši‚?à ?¤MZ?Ž=?1±§>ßW\>Å»ü?7=e?$?¾›¡?*„½>¤ÿ>Äï¿>þ%f?Ÿ.¬?¾œ¡?8b?Þ=¯b8z@tš@*@JW#@9ºZ?~"@?u(T?C‡¹?O¦ò?Q}˜?>™œ?%G?^L¶?Ÿ·è?ħ?þ¦?ÁJ’?MÆc?Z%à?~5?évI@$ž>?¨ìª>þ i?U&û?~Ò?ÜY‚?ù}?½ÔG?¨Ÿ>|€h=ÄÓ§?Ï?Û^+?Ìû?E?Œô+?ƒjì?:S“?[¦?Éë}?ºžR?.Ï5?K?˜F¼?}¢/>ýÌ¡?ƒ;œ?ôtð?Âoý?}¼??dž>ý¶?×?Ü™? ž]>ý¢n? ?As?ˆåC?œ53?'å¸>ý‰]?€8?‰E\>}2?p÷ë?†óã?4°?0øP?©uü?©µ4?Ž“B?•ûç?Ûbò?˪M?AÏ?]ï?½àP?™O>ý!)?‘›@©?¢ÚÛ>—hr?4þ +?†q>þ©?ÿ?XØå?DÏá?4…i?Wú?|=?TÛo?4Ö§?³fÑ?ÔMÖ?à?lܬ?ˆ°º?ŒNn?À9æ?Ç +?™€6?Ž3î?wQ·?z<õ>ÿK$>ü\{?7?Æ?®pˆ?³uq?ü¾?æ\æ?\K]?s¹ë?º4Ÿ?¬„Ž?_o?P“? Ö_?'Œ»?{³ø?‰ÿQ?¢¡¨?™%(?€§ý?…Çw?™Á?ìÜc@( @û€?²è¡?¸Ç?¼e±?ºžÕ +Ù>HBš?O.M?‰·¿?¹H?ÌO·?áô?æ@U?³"ï?£“®?3-j? •µ?§«Ä?»«?»¢T?»–b?Ý9‡?ãc?˜Ôp?•öþ?Ô˜L?Üç?;f·?(¾¬@=l@ ­>ú<>úØn?JÚ>ú R>ú4G>ð…)=´Ô>(IÈ>ù }?/]@ìè@ W?º• ?¼€B?Àx¼?³è]?’¯â?ŒÃ-?D+A?:η?2¥Ó?m=?Ö¶à?Ö=G?ß š?ؾ(?¹ãp?§è#?Tk7?t†?«¦?œ…?M¾a?…öƒ?âʽ?ÐÚý?…Uö?`„¾>÷_2>÷PN>ü¡ö?;üÀ?´ C?–Ì9? ;ä?3ˆå?“%¶?˜oò?™¼ø?‡8d?*W½?6«É?uä„?uÑ%?uÁ?¡éx@ ÈR?÷è?“z‡?ƒð×?B³Ÿ?q€?ͦG?¼Ý¹?i?ŒIe@ë‡@‰?]5¦?„¢?ü®@Ùâ@24b@ †‰=*-1>óØ ?]ö?øÌx?öÑ–?‹Tô?9¯?•i?šCƒ?Â9F?º×$?§r=?­JN?Èà?Ê€?Ì.?Í•w?÷eˆ?øã @"@¬?—Û?~Sn?ÅG ?ÙÊQ@ %@4BÕ?Þ®v?£x—?’??†ÕÞ?À+?åÀ¶?”Ö#?(S?žãŒ?æÞw@Pº@WÀ?Ü¿»?p‚?Õï@/ÁI?ÿCô?+—R?'f>>ïq»?yˆ•@,9‘@1 %@4F@&7 ?³ ?°/8?j j?d>Ù@!m@G ? !§>ûg>‚¨>yM?M{?mª?I÷E?Az?Œ4n?œâ²?¨)¯?±Ã¹?ÙS·@g£?ô¯a?âŠ0@%†@´`@ê+?|G_?ZV²>ð,?*q?ëºÜ?üÒ$@€mà@{ƒÈ?µÙ5?°h^?9ñ‡?/ãÃ?áÕœ@R@d@ùp?©”Y?jZ¤?j?q?j(h?‰$Š?¥Ó“?™œ•?q+(?“g•?å5Ù?ÎØn?„¸B?‡†Ø>é +>é7?–5s?œÕÒ?²·&?¯%?Úæ)?òýe?ÐJ¦?·Æ?›ð?û—?!Sª=ÄŒ–>⟳?­(´jM>¯c?¡9ü?·>Ÿ?Ù¶Œ?惾?¡Â®?sSo?‚'Q?…ý,?€cs?eòÞ?`à?Ý s?Ö<?üßN@ 4?ë #?ëê6?tˆ?Q(±?&ºp?w?F±ç?dÌB?Cý?g>í?Œ>äx? ÿ?™K?x_¯>ä$ò>ä¤?ÿÈ@ ÓC?bd>ㄧ?|V?ª¶ã?ž |?˜¦Á?ÿ¤¥@_ +e@U§Š@* @ æ¦>ã +Ë>âô1@ݦ@.@m@ ­Š?߀.?»˜ø?ÑÚ{?ãŽÛ?®Øê>âQ?¹?´å?·]n?<óR?=e©?±•?ˆï?[ ñ?„™U?ýâ?t!Ä?H$?ÛnC?ÑhI?© B?¥/?b½Ì?a^}>÷nÈ>ò˜Ð>ò`Ž>óB^?tB°?¡>º?ÀýC?ãèú?·À¬?C(?o{q?æzo?á½>ô}m>àΆ?ˆÑž?–¦e?îOÐ@ çr?ÑJ)?Si?é3?’xn?‹Çk?;d‰?8¿R?®~?¨F?œ"?šd?;c¦>þq?‹U?96?sø>ì%`Á=æP’?ÐôÔ@ó ? o?(è+?aQ.?— +5?¯û¨?ôãñ?çÆâ?ˆ?‰Õê?§ñÕ?¨@7?ÒoÀ?×r?Uȉ>à`u?Q­g?—Ÿø?®Y?Ó:P?°”>¹¶m>Óc?`|Ö?`?`F?`…ñ?›·Ã?¨k¡?Heq?µ=?iÌõ?¨|Â?¥¹÷?žD?‰Bº>ภ>à¾&>àÄ>àÉ»>•–å>…N?cK?+ÊÆ?K‰|?`ëZ?ÒG?´§?¤£W?„Ö?Ši6?®?„K?˜?-Þ?£8v?¨ê?eô>áJ>Ù]7:=6ð=ð( +?U¿ø?Úzˆ?·?%?KŒã?4§%>¥–Æ>¨Âs?a“?a—Þ>rl~>IGä>Y¹>j;R?$I?LÜ—?˜Ð¶?ÎÛ¥?®(D?zâ@?‹ˆ?žó"?—öc?aÔÝ?aG5?^!Æ?a”`=%(k;’ð>Ñ>›?MŠ?5t6?=z>û=>«a–>bõ>s*>öÈ¢?x§]?Q—È>ësô>Ø…‹>ü^h?Yg>"¡m>C—?—-¢?«øâ?1Gï?T2>8‚ñ= {?g/?a# >éå +£Ë >”jA>(ä¬>=ñý>r±Ú>•> +‡D>ï¥>ßeð>²EË=T¸@=šo¸>—d÷>¢¼Y=¼º¾<3 =ßÊ”>¶Y>ÛŠ>‘> +X4>Ü°@?"Öc>¸iK>w¥â>y.>U„¤>ß¿%?w~?T'w?fŒT?$ó>ù¡g<Ÿé=¿É:?{ç?sß¡?l¿¤?4 à>?Г?$Tà?I\"?šÝ?†ŠS?DÛ°?_ æ?{k?ƒxæ?’Å$?cn? +÷?JBî?{Êj?0ý>ê;>Üb>ÎÁ/>ÛÊ>Šã>Ùßs>øGÝ?!˜G?9En??ßÂ?Fv>bR±>(¡¶>2:º>Ì;>öç>öÆ‹>÷gø@Ú@&„‰?SQ>Ã"Ñ>/¨…>¤>ÙÚ­>õóØ>õâÃ>õÎì>¡ ^>³¿>1Œ‘=õ–?ŠÆ?¦Î>c9¢<}yF>Ôc>õJ¾?S?Ÿ?S?˜ìâ?™Æ‘?Г?>S>ÃÔ>ƒÄß?(“¬?/#?Q­„?I"±>Ç"Ã>Àõ?V?è?h@Â=ü²“;™@g?]Ýu?e{Ö?XA›?K­>·õ>‰F?j¦þ?„‹þ?? >õ-ˆ?±Àú?·ê?-hl? a?uO?Ý?r˜?ueþ>þ&>õÊÇ>ì‚>Ýté>7>I~Ã>·j6>¤ýã=®,¹?ùÎf?åžë=£É.?Ž•¶?ˆ’f?\°?q +R?¸«â?±mK?vTW?dÁ>ör?†Ö?¤„ï?t>öªO?^;?*€?0›Š?7.Ç?HfÈ?`ËÍ?r³Ç?¦‰øál>ù?81?m?Q¢j?¾Íé@Is?á‚?“¸?yŠÇ?;™‚?W°2?x7)?L“Ô?!Þ¤?ƒ…?­÷V?‹ˆ§?l¼8?&NÚ>ø´P?PŒh?xÒá?‡*ø?‘7K?œÛš?™-ò?`v¸?Y™á?Ò†?šW¾?š”±?–öË?6}·?${×>üϾ>ù¬C?xo?€6_?î'Ö?é1I>ùôÛ?ÄÊ?Ç,M?µÂ¯>ú.¥?, ?¬´?¡ëZ?Ȩ†?‘òá>{P•>˜—>ÈÖS?lëc?çí?ÖÃ?ÈÄ8?Ÿ–Î?b?t?{ +?{—?{#á?i9•?Të˜>pô?èñ?V Ç?,ç?©à¤?Vo[?O9z?5_?*3>ýWŸ?š°?–,?œ–-?{ï? @;ìm@õ>ü®>ÖÈ^>ŒKÐ>ŽÂ¯=î[0>ÛŽÀ?|H?OÉ@>üiÄ>½˜>„áM>‘ >7>©^¯>µ‚ž@<`@7¨ ?W[é=6ÕÕ?Lu?}Pô?‹è? E?txõ?|ø¥>Ôæˆ>Ј˜?½Ë³?¸¸?ixH?I¾ >ý-«>ý2(>ý=c?RôB?Ó{?¨/U?@]?‰\Ÿ?¾ 0?‚õ>ýoÖ?¤š*?üõ?ÐHe?­÷?ó9S@ .?¤>?}Ê?9;Æ?,†¥?FÇ5?Dpß?˜å¸?¡EÁ?6ɹ?4.s?©í¯?£àÜ?C0?DG•?å ?EQê?¾k:?«&¬?~Qr?[b+?)ƒç?„2&?³ƒO?Ÿ9«?šë?,!>±Ô¼?¡õ.?â7õ?œË)?~M?“«J?—“]>ó‡>².¿?QÝ,?OÂv?A$?™?sË,?‹x8@pË@¡ú@"?ó­w?BT?¸ï?(?C>þ4á? ~?¹ß?RX5?…#Ï?}{?†Ù?Œ5š?‘ñ?« ë?¦ÓÇ?1]é>þ:…ÙÈ?Tx&?ðJœ?ÆÀ|?¡-?Érž?õ—º?Óoˆ?¥ÕH?Yù¾?»|?5:>þ¹?YVŽ?~?±Õ ?Ã`D?‘C?ˆÜ?U#Ž?B³q?„ä?§–}?»aQ?±2Â?šBe?‘c‰>ýùÅ?»?hiR?ZŸ?S?H&? /?l¤>ýßj?gÖ?¾c? Âƒ?}ÐJ?;v§>ýÉ_?¨À?îF:? ”l?iÕ—?e è?`De?‡;Å?’F?c¶£?M?$?c—^?r[ý>¥g>naU?0‚¥?0k@?Oäå?T‹‹?Y0ä?po¤?¾ +o?¦Ëz>Ùâó?tÕË@5p@!I‘?¾:?3Á<° >€”ñ?(§x?p+m?›2?šý?­ã?™7?€c?†Oá?‹¨?5ïƒ>üà‰>üsÎ>êKö?R™W?|IJ?îí]@’1?Å®„?¼~¯?¾ÕÏ?½rT?Ü<³?æ¦Á@­®@ä*?¾ù?Ëã?ºùà?²ÂÏ?qd·?dR ?% ?^Ó“?ü%^?í*Î?ªÏ?¨¬o?¦†Â‚ç=ªÐ ?2†™?züÍ?4>Ïÿð?zÔ?­_Ü?d0W?H3{?™n?ª¬q?v“6?gÃ$?™ª¶?<¦?Ò.?×Ñþ?¦Q"?£xà?º3B?»’&?O\?>{š?¦¶í?¡ªH?›f?ŸVë>ù°ä>ø¯Ö>î +?Ã\?ùw™?ò}ú?¶J?¥«Ç>à (>Á¶À=ž§Õ>ŸÃY?ÖÝ?Õà?º¤Ì?½Ø?Ϫª?ɦ?¡¢L?§¯?¿yæ? ö7>ï[[? 3?©„e?±ì9?º ,?´ÃÆ?§ T?‘ßÉ?ow?0`É?w£²?Nݸ> Ùˆ>ºÏ?I?ŠkG@¢&@ Ï?vC”?rÕ¯?o:?rf/?‚ÁG?ŽJ ?£+#?• C?vs?™ÐÌ?äjá?¹câ?%Àa?),\?,“|?·‚>áæ²?xÍì@oÓ@z¾@æ ?æ•7?VÙ?ƒÕI?á³s?ë†/@V?Öì>ÂC9>ýÄÕ?VÔa?…Ûw@å+@Íñ?ñÁo?Ï™6³=ö]G?p€&?‰ê?@Òó@r@ ½ñ@ŽÛ@i,‹@\K#?RÖf?\“o?7\? öº?MŒI?UXÍ?÷éL?ú¯%@@rá?Ä=»?º[%?LåÂ?*EÍ?¶g?ʾë?¹ÁÍ?ºèË?¤ã?–¯t?¡j»?© +1?±T?´³ú?Õš›?ëD%?´S?ƒÑƒ?º.Å?ðY·?Ó1'?² £?…Ç?%ä·?F7?`Nµ?;Ê>?aAf?ý0ø@ˆF@&fð@à¸?‹~}?Œõˆ?Žo°?˜…"@/2@0¤?x&£?n$œ?^1?Np?97?ûÞ?“N?~s?¹äµ?Ì'*?¨»¶?–Àì?}*,?Wã ?‚"Z?›”?d-ö>Ú©l?l ì?êÉF?Ì x?l Î? 4?²Ï?¶9?Î[H?ÕŽÈ?{4ä?~?X›™?RQe?HŒi?Qas?úî@¥”?”—Ç?§Æ?vZ5?—~?…Ñë?j?hFä?lÿA?¤Ù«@ ?åmw>3Ïå>eæ?B¤„?<ª_?„v½?ƒ:@ ¸@"b0?zÛ?’¦?·§—?îz£?êL$?è C?æß?ç +?«®ß>蕶?,he?ªÐ?ª²L?¸Ø™?¼°@•I@ò?á…P?ÙÊ ?ã#ÿ?æ“e?oÚ>æaè?UáÜ?–ð`?•hÚ?“ä•?­Èå?þõ&?óª8?Ͳ?Œ{ß?¬D?¬ +>æ“I>œß˜=Š¤ ?!®?€%*?À/¦@,?Îoã?0Ä>?ac?߀r?Ó¡o>Ü >âC;?]Á?dAH?ÊV•?ÜI?j¬?ùÀ?©Úr@wß?ñ¦¯?㸸?òR|@57@]ý?‡š§?„•?ˆè?ô˜?å_¥?û‰*?Ë ¬?«Ä?©û.?³”ò?–ÄÞ?ë™?17%?„ø«?Yå?´Œ?¤Ü?p‰+?zó?«V>“g?U?£'Ñ?¢ÆA?£Ý?¦ô ?©e?µÍ)@ ®ü@ +¬ñ@9ï!@7…ˆ?Ň?™®÷?KŽÜ?y}?œãH?îð?Ï |?†éí? š?ÐÖç?Ñž€>;àŸ>EÿÆ?Œ??¨4´?û@b×?ÔÔ?†N?j#Æ?;#l?W?˜èå?¢Ä(@í¥@TÌ?f![?B–«?Zoý?`}Ó?Ñ F@ Î,@@M?àqû?Á’Ì?i–Û?b|+>öÅË>ýY?;’?6/ ?«w3?Ä?j5i?©¥?(]u?BŸ%?‚Ý?ÀFˆ?Äo?ÆQš?½ž©?km—?rLª@“r@ Dä?„<>?‘´?§l?+° ?~K#?²e?‰•2>E¤Â>oi?kS?dS?`‘ú?`—ù?ù5@ ¨t?ÃÛY?›Ô¸? ú6?¨Š?¨Št?¨Žð?ƒ}©> +>¾Õ>'€ü>6S˜>E1‘>T–? áYØ?ˆ;k? L!?šd?”ui?8Àk>­¿œ?H¿?aŠb?I†>á•O>èQu?Æ?"ß)>ñÑ>ÚR>ÉØÆ>¹Lv?lcá?–T¾?f»ñ?,+>Ûšþ>)”>Âl?U)Ë?W¥»?YšÓ?SD}>áçÅ>åžð?WÅ*?Ogw>ôåU>áñ½?H@r?aîn?¦?…Íö?EL8?ÐÒ?uíú?Ç Æ?˜Žy>ú0U>ÖÁõ<Òá¼>¡•ä>ªÒ£=È¡ =‘½r?9·€?X¼E?!>àÓá> ”3<.|>ê Õ?Kîu?Öñ>¸¿­>rÍ<ÏD¢>û”>%3f>hj>“tæ=¨Ð}<Èص=OÜ>/A7>ßYq>¦à*‡N¯>÷=9óÊ?'ES@2²|?ã[=Î,Œ>ÏMí?5¯?-T?6ò3?Á>ù%¹?Mp_?ae >Û‚>¼,—>û7”?–>äî­>ò>ý>ßo.=‹È>Lb\?8¥>ë’=Ñ'¨>ÅЯ>àØŠ>ûÓÄ>Þa&>˜Ø?.E?{C?)^'>„F? né?i;¨?Àº?ù Ó?«bJ?l/ˆ>Ç«¹=Ôêš=1ˆü>‰¼>Uää?A¢Ù?n<â?jí>÷«\>kX=ðî=?Bb?w&½?ß›>öì(>öÌ>ö´þ?*ÒD?TèŽ>}p-=ú`ÿ>™'>œØ—>[^»>gñÝ?#š›?.„Z? *á>åJD>îò¡>õšo? +r¹?=>÷*=>õi=…oj=½a?\Pp?u@Œ?< +ˆ?B?)\s?+Úð>ÿŽ•>õ Ê?ô¸?µ?Š° ?–kx>D‡z= àÖ>þ†?]ê?k}ð?rà—?u&?P?oJ¦?u Ï?5e?$Ù>÷&Y>õ2w?s4q?jN´?µ‡Ü?·ö>?T¨ñ?WïÉ?…ëy?‚þ?upz?uw¦?ur8?o–>õ’Ó>úvM?EŸì?2f•>ÓÛ>'*¶=ª¼¹?¼«Ð?º®Ý>ñ±?ɉ?º-•?"ój?,ÿ¡?®‹+?®Ì3?vgp?c!^>ö…9?¸Ï?ˆ’8?Úy?‘iC?d’¯>S >”a>öõ±?.›Ù?£?š@?w/k?Qe)>÷R ?l2?ïOÍ?öõ3?ôîÍ?”£=hÑ„=¨4=Ü–Ø?|™@E?¸JŠ?1 ã?W¡º?x)“?x<â?xMI?NƒÝ?92U?Ž\Š?¡¤¿?M#ë?àŠ>ú¬”>øÉs?Sró?xçû?xùÃ?yÑ?òê”@Ü…? +D´>Rf†?$÷¿?>*?™ÆÒ?£ëT?ZDþ?W÷é?…W?–u?kL»?kpw>ýƽ>úªa>ú +?Ì{? m ?\" ?̪î?ž¬r>¬f¬?>?—?×Ãæ?TW>ˆìl>óË€?N{è?zb?œy9?AJo>ˆó>­Ë=Ð/>?q‘?{ˆ‹ó> Ó®>HsÆ?6û©?=´&>ð¹²>Ë_~?£O4?¤XE?_Uç?B§´=Ÿƒ’>Õµ?lÉM?†Ä¬?½‡•?Íêö?ëz‰?²¹¥>Ítr?Ì?5 ð>ï|I>?‰>í¢£?@hÇ?°>Ø">‰µU>'š >hs+>nk? £@ B?f]o>ñ~Ù?¥ Ô?½%f?ë’?êº?%ž?Tô?^“j?Q˜z>ÿ,°?îœ?k~Ç?abh>ýAN?÷‡?_“(?—u„?ý\¢?Ÿü?$ı?¾=?ƒ™¼?…ð?†‹ž?À‰U?›ëü?‡P?½`~?ÚL2?¹ W?ªn?”ùà?‹ò?Ayõ?=¸à?´¾?²œ¹?}Ó¬?z­$?Z‰‰?A]h>MrÄ?}ñ?•ï?¿*"?©kú?}þƒ?yU³?mèÓ?M#:?5ÔU?`un?~ì?I6?PÞ?´9?¼')?Ò°Å?ÑM ?­“?¨Ç >¨ÿ>qÇ?ÄCÔ?ÝÝÜ?©5Ò?•¿Ó?%Í>ÿ-·?@3?‰¹?-i—?3¢=³í—>éÌ9?SK?‡ß!?R"?Aš?6-?Œ1c?À÷?uû>þMÏ? ¨?' ^@Ûb@9þ??ª‹?6â£>”ª¬=ÿLc= +$r6®ý$=ݘ=ËYC?¾H«?¸Ð¶?]üy?{¿[?¡N8?žAT?‚o½?—P/?¾¶ñ?ŒŸd>‚ž¯?_×r?üšJ?©uÁ>¤îH>¤™_>ÀB¼?²9 @M•?¾V?~7q?$¢x>ükK?B?¼V”?@|?kr?¦æ>?²Aì?,bî?!Ãü>¡û>Ù›`@gƒ@ \? ÈM?”ŠÇ?8 5?i…ì?Öd”?½1„?pÛÞ?€‰»?›*C?†Œ±?H»?‡ƒŒ?¾pó?žÒm?}ãî>ää<´™h?r´?Åû"@…ƒ@%‰v?µ³?}ÀM>ë>¯H¿?"9‡?4Ò?ÌÞ>ý¥“?o ¸?lA?Jˆ!?J’³>¬ž>Ä("?*M?7@M?³˜?•ä'>×°>£w“?y¨ ?¸,@Û”?ô:Ì?i½5?‰ÞÃ?« x?±\w?½âÂ?Ž´ú?HnŽ?€Í?•~¥?—¸/?™ðŸ??ýö>üõ¨?VZ?|å2?X/å?Oæt?ße@è/?C•#>Ú’Õ?—¼ +?ªð“?¥¼?#Ö?$ø?/Á>ü~ø?uÑ?¿Ö?ƒSé?|^Ž?j“å>üM(?x´œ@D!™@*ã?½L?ÇÄŸ?ã8|?·÷”?83?R2?{íú?[ˆ?64?VQÏ?¦S–?À.b?ÙHN?ŶÍ?¯£v?ÂÞ2?΃"?ƒ>? ?´-ž?üÒ?Ójÿ?»u\?=k?gÑ?îró@PŽ@@‚e?Èå?AÌ ? Pá>úÇF?dÒj?z²S?£’V?£œJ?›±m?ž)´?ò‡?ú_?›~Ô?’÷t?óþ{?ñAô?»™Q?½?¦@;A@'´>EYp>;§:?( œ? ˜ö=Í¿I?}C;?‚*?qF?k¹?hD]??‹q>}?<¥“?g!??º³»?ÃUë?áQ?Öö9?º€Þ?¹=¿?ºý?­W*?xg„?eL:?+è?l‘_?ÎPÁ?À?ÿ?•#?ˆ×Ÿ?zQ?R‘V?¤¨@7Æ@ô¢@˜½@©i?¹vW?ÍRU?ñÂs?¤U=Ç}<>Ëúq?vÔ‹?Œ#?¹?ðýµ@-Âu@ 7`?£¶‚?ŸŸ?‰,Ñ?]DJ>ö 6>ûfr>ö­? +à×?L`?Ÿ ‹@ …?ó÷?Ÿ?¬Äj?ë À?åe±?î"a?»µ”=£¸×?/@-?]@’??ºÞ=?¸C?¶q}?«ÒA?pìb?¦z@K$Á@4Ã?AÆ?›¡0?Ì:O?ØÔŸ@Õ.@ŸI>ó@“?ƒˆ?%?‡º>òߣ>ô*@_@â?ôWc?õ—?‚äÓ?r6^?G.?E™*?Ì7H?ÞÛŒ?„ûç?WV‡?±µ +?ËÇ}?}Êq?KÏ6?žCF?´ÀÜ?½‚c?½— @#Cî@R*Å@ îš?µ')?µ:§?´&?v€2>ïÿ?Uú2?©Ÿí?‘Ëá?TóÖ?¡Çç@ f:@ Um@SÈ?÷¯)?ÁÓò?¾¥¶?»zk?»‚°?ìHM?îøž?®Üî?«·y@l=@œu?S)h?!0¬@ +f@!?Àvá?’»ù?„Â>Á>+?˜¹?6^>Ÿbº=œÞS=Xúc<ð—£? hÄ?±:S?±¶?¯ƒ+?¡½‡?tþ?wá@?zÆŠ?ˆÃž@\Ê@ õ?¤,?¡Zü?‘=Â?ŒG¡?ÇC?ÙÚF@Î)@–³?Y}? Úˆ?L¨2?jw?g ¡?\Q?Š±?Æ »?³$?k©!?gÏ ?9›?’k?¼¨V?»o?ÐÈù?ÕÕã?ŒiI?u}á?èw}@ á»?÷nž?å´„?­Û¬?hÿ?hÊž?bŽ?¼¼?âQ?Ïò‘?x6Ü?€§ò?Ïng?Ó»·?½ðÿ?¼ÝÀ?¾A=?¿£´?˜W?¯ ?„Й?‹ Ò?b +?$s8?xN?ýå?ô^b?Ü­®?Özò?¬(ž?¬?™0¾?”@o>×LK>]‰Ñ?tÛ,?«²[?«¥æ?«ç?ÝÖ$@Ù*@8P?©M ?•À-:IÖì?§2Ò?¨‚ +?Úoi?ãâ¹?±ûö?™ð$?ÇsW?îø?åÀ–?Õw?µç?Y—¹?Té>ó}?¼?7Ì?˜©e?îªÐ?ÿÉ0?þ6‡?ü¢ë?’ân>â‘ ?-™T?…?ÑÖ?º™Ô?´bU?}Ûÿ?z¿¡?°e9?²ÊÊ?Êÿ€?Õ‰„?—ÒÆ?aÕ¯?/Dí>ã•Â?[?ávË?ÆÎï9S>â?Tô?`äï?ÏÚ?ê€ë?µ¿û?•Ï{?{‹?.š/?F4?‰ß?‰Pp?¨zç?¨v">œ£=‡½„?8.{?b‚!?·c?à‰À?’e>ü6X?ƒTÃ@çd?Ú+r=Ž‹s=¾Ë?›Ç?šsŒ?A=?58k?;«?78À?3ز?0zˆ?˜Éð?þ‚ý?æ±M?³R@?³²ö?ûý?l?ÔTK?æ…??þ?`©>ȾÔ=›©J?R:4?ÚU?ÞµÅ?ãD·?ásª?à›n?ܦÍ=-q(?›š?µ?N÷ß??Fø?&–`?t½?¨›^?”š? On>âô˜;t±`>_`à>Py +?›N·?´eå?šU>?–ìk?Y?Ð?<Ôõ?w’?[ÿ?üß?-!C?Ÿb?¢Åý?aN?aY?_¯›?[Ï\?g4?nóÌ?5" ?®3?)CÞ?& j?8¼±?aš‘?jR?w)Í?SLg>WGR>z¶6?Š=ý?ˆ9›??“'?;eZ??•á?CÊt?o¥J?ˆôÅ?u#«?TÂà?.Xk>áì¨> ×â>gâ?¤ÿç?ž ?aù?aþð?‘® ?6í?jÍZ?aûG?˜ì&?©{Z?i£˜?%ìL?F}\?wÓÒ?).0=ØÊ>>l`><>Õ‡>áÃ\>ὑ>á±ý>áª5=°: ;^á€?f4?M”>ÈÇl>ÓÐ>œ”ò>áE—>É'ò>“Ó>PT•;§'i>1¥ >Áv~\>ß(a>€ÚÂ;øÞ€<‘6=Oë¡?/?•”>°Üà>zÙÍ=?G9?°¨S@©œÐ@nD?•´Š?W5?¬Õ1?ƒŸo?H÷ƒ?ò—?÷?Yô±?€hÄ>š=éæn>ñ’Z>þ§Ô=šT;äµM;u" > 1?b•?-–„=ÜŠ”>DËÄ>ªË->œïq> >àpÀ?-Bv?—~>°>øÔ»?>p-?…Ö ?«H?-Žç=kG;_=£LX?);%?yT>?¤ê>¸½±>«>xÌ?+î1?CgÑ?jôº?†j?#…Ð>÷­ö>÷'>÷k©?\„:?w+¨?I >öÎ[>öÑ>ö¹¸?•oë?¡GÏ>F܇>Ñ»`>ö+Ë>“—*>m#˜?/V{?H2?Œ.?—ØX?'P? ç[?_'±?oÔI?C>õs=7×æ> G@>dX@Ôì@£g?+{>õ4O>„Kc>ˆé <¥âÿ>å­§>õ#Œ?!ßÐ?þ?aaF?rjo=S—¸=NFþ>ìÇ>õ'©>\>ƒò)>žx>¸ÿâ>Y„þ>n ?{_O?†¾?ne?Fú?7°w?)ª¬?žÒ#?¨Rq?|©O?r‡š>üت?³!>õ£o?I?©AO?œpü<¥¹˜>„ù>Œ%â?0S1?&êô>ñ ¸? å1?èª1?åg)?¸³ô?žµ§;óß>!ŒD?vzý?`Ÿ>ö—N>ÛË¡>‚k÷? æÇ?¹`?áH?7W>íNÅ>÷ »?ïù?P¨ˆ?W@ä?]Ôo?A‰>÷f˜>ô±>öxW>¤äU=ó¿ˆ>•Ã>Îu€>Á…>´‹‡?l_¹?ÑXi?›—?øÞ?º·V?äõ¤?”’C?yï?ï€Â@ç?¬ê>„¶>èÚ>ù{ã?Cϼ?Q+d?Ô$?k?cµ‹?g}^?v¶? Î?yÚä?fç;>ú»>ú0/>ú<Ð?%ê?¡–U?†Ò˜>˜??#f ?»îÐ?—w?¨í>äl#>®:ÿ>òLF?&¦?FE³?{È?À¿?úz?° ?{4e?ë"@%N?«?{i€?c¡>¤a°=m«F?W.?ƒfn?ÜË»?×Þª?®)€?»œâ?á}?Ý’¨?6m˜? SÐ¥ãª>ïÀž?G??Ô?|“(?©©­?ƽ•?e3F>ü»?Qx?|Î%?.­? +r¥=îÊ1?UÅ?¬@?.V?5Ž?£< ? ÷?Øߦ?ω5?œÇª?Ô>p‚õ>Ï¥5?kýë?pÄ4?“4²?¢F?¿_?|º=š)¹?+´?¶¡?Ý–ª?ýK¨?WŒØ=÷™ª?|;é?³FF?—7P?®?a2•?YZ’?$ô@?*rÓ?zAO?tH?ù¤=?úK¾?“Ì?Žþ?Xü?*¶ =“‰â>„K?vù?£°?ýëJ?úª ?óÕ¸?¿£?~h?pgË?]Oˆ? ¾s>°Rð?B¸”?~/>?•¦^?jM?ë¬B@%ç?ˆœµ?Wà$?'Ž´?l—>×)Ž>è¸@N<§@Kk÷?}½L?[9-<½ê>¡+?­ß¹?¥Sï?• ?}é9?LxU?fC?~\L?#î>q!…?$j?~_Ò?nçì?Yÿp?nS>?~`?‰”‹?‹7Ï?ÎÁO?ê?ª?ò4J?ú!=?ÄÝq?ºèT>þNL>ô 8?¾È'?Á†ø?Óê?Æ¡(?« Ï?¬«Û?³Ñ™?±Ze?¾Ä:?#9?*J¡?%ê>þTÅ?MR?‘B[?G´\>ÏžÒ?98ñ?~LW?~J?~K>•ì:Öu=Fï¸=ç +>àÒØ>þ>E>Ÿ¹1>²EK?Ã8¼?À]9ÓŒH=¥Mó?¬Éº?¼yF?ÝâK?Ï°Å?™e??¤b¢?ÓB ?Ò‚Ú?̃Ž?ݯó?òj$@# @8õ?ù1,?Àk>?œþÓ?}÷—?žV?®Ÿ”?¶±Î?¾ko?\ÚÎ?2/'?¾hH?Öœo?×>œd?šäý?¦Œo? >ý¹Ã?Ÿ» ?¥„Ö?ƒE ?nÚq>×lw>äª?}”r?}4?}‰ê?Žàá?Â,Ã?›ÏÕ>ýÄ?©`<@<¯@…§? ??Iù?Š{v?:7>>ÄF??V­0?”-§?-Å!>ÊÐr?H?}?ÓE?í*"?…G„?Kåé?F>üêÂ?HÆØ?]xb?Çõ?ÚåÄ?+É ? 6Ï?w¨(?€.Î@zÆx@rO,>ü‘‹? ‰l?|„?ŒÉ¨?è +>?Æû„>ü`P?(ÝŒ?¯ƒq?±ÐÛ?•«?“MÚ?«ò?§À?½jb? -q?|?ƒ!â?Ž:? g>Öh$?^?|×Î?ˆ~?ç„@ðñ?åE(?µ!]@¦h@!m?¼Ø?€üÀ?-©? _t?ÒÛ@H#?Çh?»B ?{ ä?Th?Pó?L:?2ô&?4+ª?ñ,?œ®$?NL? ™?ñvÖ?úpð?¨^-?¨—È@ ôB@"@? Z?« ¡@iû@n?»xÍ?ËN–@5?®@$O«>N‡C?·î‚?¬âÍ?y‚?Ý!?㦎?Ñ?Õ?‚í ?T^?cÖ?’ž¶?‡ ?N­ø?sÞÚ?™è»?“$Õ?xž¡?h«ƒ?F?;cy?"4ã?”i†@ ùŠ@·ß?Û¥ˆ?ʬ¶?¤Ï(?cóŽ=^*Q>¬TD?jOï?£øÁ?÷*p?Ë]Ÿ?zW\?ª2(?÷4²?Åy?T¨¯?“Ë?Þ¡^?šF’>»á›?åö?†Ì?Šhº?vn»?žÁÞ?Ü)Ò?®¨H?:õ)?7Î?=I?[;f?yöI?t?ÊÍ?²i?gKø?ºL«@0 ï?û&°=´ >D¾u>ôîö?7‹v?®¦d?Áç?òkg?¸ÜN;jf`> /£?‘Q?T?H¬Ù?9úg>ïQ?Dâ@#ú@3?Çó?½ëd?KÓ ?VzE?¶[Š?¬‘§>R!>ˆ?6?ñÇ?õ$¥@3@V?¬ó ?§-T?Â>ò%?ˆ?ß?”YS?˶?×*?W{U?!&D>p)=ÜäL?˜æs?éò@‡†@4a?£‘Q>÷§—?ˆ¿Ç?´^‡?ÓFg?éÑ?¨>ðh?·žX@ ÔP?ÅíO>} x>Ô¤?={?Xƒø?{¢‘?rµ§?H¨c?{H?ÏAÈ?Å“?t$=?‚ÿ?Õx?Ö„M?üý @ ?Ý–n?Ü<”?ëÒ;?í£Ã?í‘?íni?+rÉ>JŠ?…‚‹?¼‰?”?q€¸?mY£?l“Ò?9Yó>õt/?xXu?èî@¶@"©n@²@ ý@ܯ?ø¥‚?û%@ô’@f?ÚE?Öiž?ÔÓY?Ó=‰?ÏÄw?ÙŽ ?ž­N?i/ +?±²À?Ý«h?¸Æ?˜I(?¯ó?Õä?ÜO1?é>?ɦµ>éQ? iÊ?Ç`X?˸ê?~¤ä?v]î?¢üŽ?ª›—?F†?f¢Ñ> Fù9b@?>?Ã?«¡Ã?’¿?gÆú?pjE?„<ü?4”?¢c©?™w˜?+õ‡?1ÃT?«QE?­*o?ŒË&?ˆÃ®?Š/E?‹–÷?íî?‘}'?ž«³?¤$?ËŠÆ@f@ e?ɇ>?Ìš=?¬4š?¬"o?Ôm?×U/?pj†?O‘?˜j¿?«¿?¯qÚ?°»‚@ƒ²@B±®@¥?d|c?QUd>àâ>çw‹?«#@?« ?±?³NÒ?­l'?ªÙé?çïô@!û?ÀˆÎ?YLA?p·?‚ %?jˆÝ?\V? Ša@Ò¿@·?ç ã?ç‡z?êzë?ík»?†¬>â£?2›q?‡ÿî?–gt?¸³N?µÿ¯?‰(Ü?°v?Á :?É]?•(»?œ?l±J?bðt?ñ?©=?ã)Y@&F(@ò&>áŸA?aë?ØV³?ÖÀ½?Shk?C %?ê[S@ Ñ?­1?9 4?k»"?žõ7?¨]ª?° A?¢Å^?a Z?`ÿ?3ËÊ?4ó?Üvâ@ƒ?ª©&?`Ó’?„<þ?œ69?¯WÏ?×—?Î-Z?–Ñ"?›¤F?a”–?`¥†?ŸYt?¨uû?΋ó?à™š?Ú Z?ÏÌ8?²©?Šö?…V9?/­Ë?'Cw?.x‡?5-A?~û0?~mX?eÿX?`(?<Ç£?&ût?©‡}@0?áøÞ>à„‹>ûiì?`„´?`†ù?Æ?Š×Ý?{¾©?t#—?;iâ?÷K?hw?¢öÿ?ÏKg@ f½@p…?à«€?Õ¾Ý>Îç>Ç»X?Ê Ã?Öæ‚?8ub>àÊ>àÌË>àÖª>ád6>ù¤ê?¯ˆ?!sã?5Le?`(ü?Fº¦>¯Ä>‡_q?Sïð?a/?Oç+?2J€?&¯?5¤?ƒA¬?¨ïÈ?»vÿ?Ýñ +?­´>:Š ²=%Ê>äQ£>ì{?Ñû?Ô?F?ÐM?ÌYu?¡?Œ?í´>”À¤>ä.?l?€ïô?ä¬Ç?»Ž„>Lä +>u„¢?“Þ2?•ðº>ú¿>áÚ¹?–™? >v¶=Ú~m>§RŠ>öŠÐ>æ ¡>áø¼>–% =ä`Ý? +BÝ?–©>*½C>N³€?§³#?©‡Ê?pØi?b¤?‚óˆ?‹,Ö?.H–>âÔ>œÛ'>*‚A>W^ >†²>”Â>áì?yè?RÊ·?Pzô>íN+>äFH>á»ú>á´/=…»¡>»Ü(?o_>ÔñÐ>¨ùD>_‘>TL>*¥|>>>r;<Ùb>à·¶>àœÛ<Æ)L>˜EX>Þiv>7R.;­À<(íà=¨éÈ?^‚?^d >g ¿>fUj=+Wt?! @ ­2@š6?÷9?µc?„/?2Â?@à¸>m] >«u>ЃÏ>Þ[>ì?þ>ÿ¯j>ähw=Áã0?H†>é§k>xþf?N®É?Gš{?@…?š²\?ñtc?¦…É?..­>¼©É>g9ñ>äŒ?‚ñ ?»"?‘sH?d €>ÌPn>@£à>Í’Û>øóx>‰ô‰>LK+?ñ?A—?í8>÷ûÆ>¼1j>¶»7? á/?©•?X‡X?qº >0I<Ô€?ÂØ9?Þö¯?Ps7?5Ói>Ë…g>¡F>R}u>`@Ù>zÿ>ŠÝú>ëį>õåÕ>¹¾>ÀNJ?D8`?Zþ‚?×Q>õ‘z=23ž<ôå&;nE?„ÔK?„~? ü3?´‚ >”Ô/>sþ7>_¡?>A+`>òRs>ÑÌz>ñ[W>õ.W?…ö?«`Ö=‰^.;^&?ªe¶?¥Ub=ÊÁ˜=Í6?…ÍŠ?{‹?µI? Þ‡>ÿ8¾>ãÊ>ß«>œiï4”!= +:?Ü0%?Ív9>k=íÓ›?õ‡ª?ê…Ú>õ¡£>õ«k>õ³?ä¥?ŒëÝ?…«=¹ÜÒ?sõ$?s€Y?ªZ-?¡—?–q?›Qb?™(Ÿ?¤â#?´ÐÃ?£Ø>õsœ? %u?v‹“?I¶Ç=ÌE)>³š?)qš?+(?c &?€ç?˜Ê?zc>÷K>÷,!>÷9 >çq3>Іì>í"~?’>œX´;•Ž`?;Í?ÜZ?yAH=Õ²Š?i ?’;Å?ß?–i:?s¼¡?=Ý@?­†ž?ç¡v@åŠ@*¹@#Ý…@0© ?ÐrÇ?x³¬?$äi>üŸÿ>1"Q=RÎ4>t>Ð’?¶™©?Ò:ú?°v€?°}B?"Q>ùoÝ?††?…<.?Fl>ù­Ø?û@½>ùÛ_?†?we·?3å@!°@gø>ú2>?V¤?\¡p?JN7?'šZ?ñb>ú‰¹?‘9@Í@Ó?é +…?’û>yJ>÷<ú?ScÕ?_ÿ:?lšc? Ri?¼¥Q?bQ? ˜o?~?¢eS? +‚°>“ÜŒ?4­,?J N?¿>B?¿ÉG?é5>ûÄs@4@y<<¸N3=+<ò?g_¹?‰±f@h@ aV?{éJ?A%L=(,–?$…@î$@͈@ ?+?¸Ç>ûb?B@ªö?èªY?µÁ?ãÁe@®?¦™?;PÜ?Du?X‹?~…b?£@>Ií–?ZÚa?};?Ú§¹?Ù‘?˜Ë!>²4>ý’õ>ý˜>ýžŽ?D÷?ƒà?Âœ‡?Ý÷z?}8¶?5ð ?mÎÚ?}ÏS?®ÈÓ?±·'?&5?>C?µ›?½à]?žÿ?¨²?ˆ«2?›],?å•!?Îò‹?&N?+}?Ïô?z?þö?綛LÌ>™½>ò§º?_?‡gÚ?s[?xí`>é$Î>¼*ê?oý?~Râ=»Jb=sÞ>þZ>>þ[æ?\?Q?gõ­?6ö>„Íi? ýž?¶L?¤­?¼• ?Ü?5í7?C>vßæ?û4?K{¯?«vó?ÒôF?¥ ?Žy?È’?ÑÀ¥?@ÇÖ?„7?9s>þyD?xxÖ?ƒg?qЩ?`íÓ>Œöÿ>ãÔ¢?¡.H?š W?Wÿ•?”;?þnÓ?ê¹ö?¾Ñí?´N`?¤ò…?„_?(£´?~›?¯4á?êoÍ@ ªV?¿¬ñ?‰ò#?wv?~\Ü?}Œ?uHZ?ÓQT?á@?ƒ ?e£Ô?¼ý?¸é9?¥ð¼?©2?õV?t?ƒ'?ƒW?§¿›?§,?ŽÝˆ?“åæ?’N?_ƒ}>ÅÔõ?AèÝ?¬1/?vG>ì¿? L¼?þ^Å@ñU@j€?}y»>9q?K¾?‹|C?wü?Šœj?Á K?Ôrë?qžM?HPK?¯ro?½åÀ?Eï:?7?ÉfÔ?ÅRÓ?ý¹¼?ôÕÏ?®´Ü?±wû?ª}?š5¶?}šœ?½'?ø‰¢?Õ9•?|EE?XVc?1ßð?V‡[?j›?Aj?ª>ú=X>²_?|b¦?½ó?nÙ2?MÄ?Un?})C?äˆ-@ ‘Ù?ÁÏ?˜o?]†Ñ?E‚‚?N`>üë>Ô‚'>Ù õ?uYÜ?|ÙL?€ÈÅ?€þÆ?¾œ?ÀR)?tÁ`?qî›?|“ª?qðT?IÐ?XX!?ZÉ?*H]>(²¢?è!?É¡±?ŒðÑ>ls?zÃÕ@ó?è–¬?—ú?‚óÈ?Q|ñ>ò±<>šà>¾è?T?ŠzG?¼Î?ÞÓl?÷_Ã?:¢®;µÍ?Òšh@.p?µ~À?{d?oÕ$?gß?_?™.?ƒÝÇ?{Š?¡‡J?¦ˆ?‚•O?zëš>— >mÅ>}Žk>†«åhç¦?µøo?¨W?‚rú?˜H?æÂR?Æ­ß?Ká,?fk—?¢#?ŠÉB?y4s?N ¹>׬>é݈??f>úç‹>þÿ?<ùF?–ô ?™;¢?™Âx?O‚I>·à?v¡Z@"åu@L\?x" ?JQ>ø¸>÷ëÏ>÷ܼ>£w<À +å>A,ÿ>ü]>ª€?=uó˜>ò-l?ŠtK?8Æ">/U?=Ùô?Ç·è?p~ç?)!Ø?ȺÒ?”¥l?-D«?‰Ul?Õ>–?¿Q"?˜°&?~4?/?#?ª< @©?þ$>?¡5é?½¥Ä?õ„F@w@~Þ?é;2? [ì?QÀ>õ>ôî;>ô×?º?t©ž?R{p>ëj8?mk@ sC?ßi5>ôW? U?BÙ?‹MW@ #]@ø?à±Ã?Õ”œ? `ä?—©º?_Oè?eL?@gn?AàÖ?¶8?¹Dx@¸@Fº?™¹Ç?ŸðA?pê“?a.o?ƒ•?6‚?'?ƒÂÿ?¦%?­}?zq-?hg¨@5sT@Të{@&Yu@˜g?…I->ð¾¼?®æ­?êÃÖ?­ñÏ?Š”?  =Àý*>¿¾)?6;4?™i ?Ð$6?¨J?fÙÑ?SVÚ?>Mé?Æ…>€Çô>È]n?r=?làZ?+?~?*í?\ž}?lÆ•?²°¢?²™ä?²„ª?²pt?ÂðI?É•õ?× N?Û‹?Ç­?½ÊC@êL@)U?ß4-?±ÛÛ?`Aˆ>ïXA?¨@ ^À?éí?_Ð?‰E>?ÿmˆ?é¬?œ á?žrL?•4?™A?­Å`?²-5?¡¡ ?£×±?Å^®?Ê>Ø?î2>?ìÞ?ÓP±?ÏÙñ?ê½+@?¤RÚ?Ë?_|X?ÈT?·sB?éA?È9f?#h?è>ƾ#>Ø>§?¹ôü?¶í,?x‘q?jûÏ? +æí>èoÃ?‰\?§ì%?ÉïŸ?âþÓ?”ç?àÈ?)øÚ?g¡½?¤;@É@YG>p>/?BX?HL"?’#f?”îó?tÙ³?f‘ï?˜½ç?¬ËN?Ð4 ?öÔª@v@§?ê6?„"Ï?—?œ‹c?žl?¬a?¬ +?/×1?«I?Óe?¦~°?Ëe]?âŽS?¬þ?d·x?†;ö?ª˜–?¨€n?£º?¥ J?Ý|2?Ûë@/|…@1â?Ï–×?ªãÇ?¤)Ò?¥W?—Õì?‚[ÿ?Ž¹µ?ªè?ž=‚?cGÔ?q²w?ä•*?ç‚O?ƼÃ?ÁR?á†Ó?æY8?oµB>â±}?ØÖ?E<?LdÚ?^£f?1Ç5=üF¦=Òp–>;p=Ò=­@'^@DÝø@ Sƒ?á¬?à +b?ÞåÑ?¹=ü?‰4?…ÊW?Ok¤?QZh?‰;µ?ŒR;?IäS??¦û?ÒŠU?õ`Æ?Î÷?²þ?¡8?Ží?¦8ö?ãÅë?ѵj?1Æä?5Ì2?Š³†?ƒ·^?¬Î?¯%?q÷Ô?HÏ?wÚÀ?Œ +Ó?“@?¨™'?‡×P<­d,=5Í£?`ÌY?`´?ÒãŽ?Þhý? T>1¨>fv˜>±”?XeA?È?z?ÄêG?Á“ø?¸×9?‚µÇ?~µ%?Iü$?O÷>ýu`>Úu?y*?#$²?”BÍ?àz?±h?eÖ?¬‘?`”Š?bßa?ÔØ?Ö½³?¡& ?›»#?Ê: +?ÝË÷?ƒB–>àÉÌ?y³?ှ?«‹ò> Þ.>Êh?ù?ñä^?>Mc?@¼%?„ß?†‘(?‚ë/?~‹A?< æ>þ¼¿?: ´?Œ©Þ?ˆÙJ?—Àå?“zÝ>¥X>–Kï?Y~´?a w?ý”@}”?L¸ƒ=k‡É?<¯_?¨øH?¨Ší?¨ç:?©ç?§:s?“_>ás¶>ãx¤?/Â?…ñ@ç·@Ç‘?Ue?:g#>ïŸ>‡ê;?5AÉ?’/\?ª°Ù?æ‚?ÁCo>áÌ„>çÊN?†S?#ð>åO’>áçr?2\s?E‡Ê?c¥£?g¬?” +Æ?©‚?ã?^–Ê?/$Ã>Éê#>—@é=¦->?Kû?' Š?ä>åê€?Bý>Ų>Πa?ø?-¥Ÿ?Ÿ3>â L>âc>âÈ? ÃË?/Äž?Êv>Â0;>ÐEt>áã¿>ýCÙ?aÕp?`_ß>â)€>áºu>ÊB¶>¾ R>×ì{>áÄ>á«>áp2>²–Æ>„)Ñ>E¿=›§>«›>µc);°ÃÞ;€>‰U >Ëð>>n=ª±¶?"qæ?&f¬:éÃh?:“?ø†Ò?¶õÚ?S ž>Ð3¨>¤¾ô?š> ¿Ë=@ Š=H@Z>ÿG³>ý¶Ç>éßÏ?W?f’?=Ô¶>±¥þ?ÏÅ?}?cèf??Žƒ?‘žp?ܽ‰?„¬>_œ=Ó³ü=œÍD<Ëj->”ÑË?ñ®?ÒS? Ò`>è4>¾Et?.‘?Mè*>Úê>‡‚D>s´>XuÔ?Ÿ€?$ƒ£>oE€=׉ê?÷3$>óÞ–>æî?}L+?Üö>~– > ¯_>&†W>A[†>ÿ£>õ~v>ÚŒ£>¿¡H>£™õ>±M<òA¦=Srî<óÆ1>èR>õº>è•>Ú¬ð?GÊ,??áù>Ïr}>ðÓï?†»{?‚ƒs>Šˆ>_J–>œ–> P®?D?Œ8z>Ò ‹>Õ =2gm<"µÂ?µ2Ý?°yè?·¸?·­-;ºË7;‡®?‡Ø?Š?.$’?3†p?†æ?+Ý?ðŽ>á‹Ì>{/>æÑ@*ƒú@+;y?°Î1?·è-?¹t»?°Å=yÞÂ=±Ò×=æ²æ>²>¨?V>ÌÖ ?aB???‚ ?–{?ö ?Úo9>½Õú>·¼ =ð” >a?viè?IWE<¨÷ü>ÏM? ¼g?¬a>·ž>ø9¾?vÚ6?WÌ>öö•? ?„¹ý?V?J£†?)8k>÷N¦>Ôa7>V„;>ç%’?y‘)?E³1>êQ*?ˆ×?÷Ëï?ž;{>¶kt?^,´?ºã?âTÓ?þ¬è?’†õ>øHÑ?±õ@‹ü?ðq?Þ?ðž¸?øªa?¦Pö?xÊ8?"(>øêŸ>åL +>Ò§`>ÅÔH>¸ýÔ?®k€?ÑoÖ?©]w?ž#?³ëŠ?ª†z?Æ?Ð]Ç>ÐBt>Á5ü>ùÒ‡>ø‘„>ç:P>ôR>ú þ?/É?%â?EAÃ?c]‰?OH? Õ{?FÈË?‹ŒB?u0Ø?=›p?åT@õÌ@?ò?ëfB?¹4?`w½>ùí–=^ÒÖ<ôÀ¾;ϳt?`Åß?¼t ?VXÙ>û_¬?ø?6?p'?xÞ¤?wÊ„?{«I@Ýu@.Kû?+> b†?··)?¹ûˆ=ÙŠ‚=þ?Àù?/?¾j?±€D?|CÎ??]G>ÁGd?© Ø?Ò{z@t!?Ü3.?ˆn~?×2o@ö:@.ù?Ë‹? °?†Lƒ?¬ß[?½«Á?!Σ>K–h?–n?½ÆO?(ã[>ñ¸Q>$> šš??¬?œåÇ?šK†?•/†?¶J¥?¸6?AâW?Jþ??ŽÃÅ?ŸÀÒ?ªBn?µ¸Ê?Ý×å?Ï÷?´<µ?€áÒ>ýª->ý®ª>ý´¨?‡M?¹vË?-?ñ>«10>ð¢4>ýÙ!?’â?¨)?_* ?`ú$?C‰t?BÌ?»B'?¼›¸?'ÁÄ?•L=óËE>cºL?kF?“&ë?ö€ˆ?×â{?~ ?U”Ä?=ž?2?¾ª:?¦Ä-?Jp?Ú“4@ $¨?¿2?‡ìI?[³Ã?7‚b?2Êû?13w>ŠtR>›[>y²t>^…Î?p?}õz>ÿTo>þo=>þob?m?xóˆ?_ŒB?¯Ä?Z_0?Ǿ?‹g>˜ý…?X}@ÉA?í7D?¤¦f?yˆj?7Ö?…ƒS?›Iê?¾±?Ûgn?³¥¨?¦qt@g½@º?ŸŒ´?€ÞF?~’•?|<à=¾ø>%,„@„Ú@‡?E[(?ES?~…þ?ŒRê?´SÇ?¹M:?ÜÏ—?¿K?…Ôœ?šÇY?­ü;?•È…?~|(?g|?™o˜?ù€2@&Þ\@Az?þrÍ?¤úO?~q ? `Ã?¹&>‘ìm>œ¯ö?Ò U?àÅ$?¤7Ö?¦Æ/?~}?x¬ ?5ÁT?9Ak?A?6ƒÌ>”Á\>ͧŽ?* +J?[˜æ?®$?tó¬>:q”>–î >þ2Ó>“ƒ<õ½½?íêõ@]vˆ@e? +î?x®ƒ?U‰¹?¿\$?à1~?¢vÂ?’²Ø?"î +?¨£?r€?}ðM?B„?B¿?}/2?ƒ-ã@Ž@ “˜?ýÎÖ?éØn?ce\?ž¸ö@-4+@ÔG?u×q?WU½>þbª?,T^?}–Î?Jåz>ý‰×?gà#?² ?o.á>ýrÉ?Ò}@if?»’?eã?Iä‰?:Ôd?jñ?}>[?ŠÛ?ˆ-w?ò€í@ +Y‚?®ÁM?žóÜ?D—?*{>.ïÉ=Ô8?€?p?‚¹?¼µc?½|q?½—>?©:5=Èè£>‡¹0?|©K?wŽ÷?^ш?b¯Û?|…}?dpg?ÃÝ?'ƒ³?]J‘?/º>yƒ[?o"?ü7¤?ë/±?Óàv?ÇĬ?½ Ì?vj'>ûþ‹?D„?{èÅ?•Cm?ªÒ?·â‹?¼ÍÞ?’Ç?zóÍ@ÿó@:ù@wÑ?ë„?Z%?À±?Âßo?Û)¥?üªë?ý¾÷?ç=^?ã„Ý{>V[¤?0'? +J?’ÿ?‘Úä?»é‰?#Eª?,½@ ã—?Õ,A?K?@Ѫ?œDÌ?uD>à3@?4X?¢Dˆ?É‘@É»?É&??nÔ?ºDÓ?¡Ó?x7ë?Q÷æ?Â|? Ué?‘?e:J?¹Ùû?„%>÷§|?†Û?ÞÊ"?Þ¯6?ãÛ‡?{Ê3?#NÁ?¹J?ÆÑq?ÎÓk?Ól&?èÇÆ?ŸÌm>ö•1?Õr?öZF?³É}?MÌ?{J ?’Õ?ËÙ‡@á@·?äï¢?Ú_Y?Íl?ù”a@,F?ø°\?uBØ?N­ž?m>ýÅþ>ôë:?#äÌ?t¼S?‹Ýa?® È?²¥W?ÇIõ?ëgn@Î.@ ?Ö³Ä?Óø°?ÚÑÌ?ì5R@ ¤µ?÷7`?[ò8?Q§>óI‚?c…?˜¢? Öû?ÐC?Êl~?žì:?›Žâ>ž±+>š?á¢Ü?ãFp?ˆ¸?„º)?¨ÆØ?¬â¯?|°?q5?è ?»@}(l@–ÃÕ?´' ?ÀR>þÙ>ðÑ!?RÌ?)·Ò?®-^?Ù¥×?ªßÃ?ˆ”ä?›Ö?©c…?©º´?¶1`?§Yá?©ƒ?¢=e?¹lá?¢—†?nƒ_?X­6?,¬²?7µV?nÀÂ?f¼í?"ìI?-¢S?ÕEx?Ђ?¤fM?¥ß?W3ç?C?Ÿ?u¾?z€½@`@£Ð@ Ý@˜¹@%â@É®?¼/2?fH¨@@H±1@&G?žµ}?ÛC\@$Æá@Ò©?ÍQ^?Ò†Ç?ïº?â)¶?›O?˜¥?k;b?k»?¬[z?°+‚?üèk@ â_?‘x??Oæ?GP;?@W™>×Lï>ž&?,ÁÒ?¡ËJ?¾.?õ”`?ÞÄp?¦7?Žn0=¿zG>J¬'@ !$@NI?³w?®†º?­µå?ªÌ;?ýÝ@ qÌ@35@&]º?Õü4?R”?YR·?g³?…:?¶?±?eñ¦?qšÇ@ä +@bA?‘÷º?ŽF”?ÁG2?ÆæD?Åy’?Ÿ ?£Ré?‰q?íÞØ@6¨@ Èê?ï—Ç?Ö{?1í‚?H½ ?Ô +!?ÎF?´9-?±w$?~->?eA?—hš?«§Ó?«¦?ªì÷?~ö¾?ÓZ?;Š#?«Xó?¬!H?´Ñœ?¶=?°R4?¸QI?ô”–?úÐÒ?ÐG´?»´›?°Òd?ª³ä?Å"‚?èR]?ΰÎ?~Q?ˆ¼Ü?q¬?w¡?õxR?÷9X?õ²†?þo¨?’ä‹}?M‡ ?m~C>ìâ\>>—H>´R{?ú?Ï? .î?<Í?ì:í?ç¢?d’2?a„?mä¢?{àó,?©ˆ@{:?Þ·? ?•?Š0¶>àÒL? :Ï?ß¡?Ü_€?~#b?v±Ö?ÂP>½‹©?£Ò?°Ar?›ð?6·:>L,1?FÕ‹?†l?”Yã?¨¥³?Û¨? Å?uÄ“?`¦Ñ?iç›?¸÷S?µz8?ë->숃?C)?¨‡ +?Êj?Þ˜J?¬Ý?qØ•?-(Ò>hCÄ?¿Š?Âí>âõÓ>àá>ÞÜÿ>ö×Y?¼×H?è±€?P>ß©é?W†-?¯äQ?—F?2Þ??>ýF?B>q?,´?3³×?Kß}?R"? T³>áJ{?p-G?¨†¯?‰b?bUr?f?jÝ?‡@?ÈÖJ?¾?ù?a‹ª?a–N?ÐÅ5?ßÀK?–ºÉ?y¦¬>ãGõ>R, ?…f®?áÂf?Á&H?“^º?†ÛH?8X?‡8=ÛÜ=Õ8?ø>ÿ«=õz=Ja³?…QX?©„E?<Àø>ío>ƒ=Š=·5@>ƒÉç>â¬>œE=Þæê?³k?Þ”>ßx>Ô­->‰¡>‰ÈR>Ìü¯>âà>âç>âX>`‘ð=ø98>áà>áð¿>çe7>äÇ;=BÑP=‡>?Aµc?GH +?Bm0?=X?$¬>áy„>ám\>áWÙ?Ši?µÈ>Ÿ¯;aP<öÉ<)õß6Ñ×x=§˜=—ˆÂ='¯Ð=ž–>qM +>‚Åõ>!G>> é«<E?£óý@f=C@‘$?WOb?€ >4>ƒõ•>’†>`ÿi>(St<¬’';ÊZ?(N>é¦!<P= ¨={Mê>LS(?¢Ý?š+>ýªì?K?7sé?$X¢>üƒ‹>üB4>ûþé>û»å>û}Ž?,@?s>qKÉ;°/À<÷ñ0?}U?dX?§>ùT¿?Ëä?,ûÇ?p_4?xçö>Ø{Š>— +x?…>?1úø?L ò?<&ú?1k>÷xH>õ…d>÷9ç>÷>÷3>LŽó>X«w?&­@?%„ï?\§ñ?OµŠ?7í‘?>†«?rŠž?vD?Q~>æS=ÏP“=ušÊ>ê>õÁ5?o½?oà@ Ì°@Oû>„—>‚1à?%B?›î?’è?˜U:>Œn–>‘@.>®Íå>’µâ9uï„:§.‡>H¾=ñ±>ôáË>ø¯?·ñU?·A?ƒd?‡Aß?‰Ð¦?|®`?&ÂÀ?)ÑR>e>w°w=–d?{à½?‰ÜZ?¡ó?˜Ù?² Y?©ž;Ð×z>n'@2³@ ®f>ʨ/>½v”>°EA>‘»c=Pb>ô÷ö? 9?+¦x?Bž1?Áþ?¬´3=²Ê>V@Ø?mNâ?sã:?v~†?Cú¢<‹¡<=ÃPi>•|Ø?QE ?BD±?.(@?Zïe?—N;?…· ?XÖi?uó,?¨¬p?…Ê->÷dÆ?{C£?ð¸?ö<‰?öÿR?§HÌ>÷ë?rù)?ÆÅ8?e +>ûµ?vz?Þ?n?Ö‡?àÃ?‹×Y>ø_?`I ?˜é? ?d +?½Â®?íVó?¢EG?xàã?kÔ>ùÌ>ùI>ùÑ?EÆj?S0K?TŒ†?b‹Œ?”О?œ¥ ?÷Ý@îð?™/É?ŽŽ.>xª$>8z>Ù|>ØJº<]p­=ÕŒê?vÃ÷?€ºQ?«“G?¿Ñ?za#?qÇ–?Pðã?PÁ„?i̱?w<.?z·?Vã? ~? *Ó?¶O?q•?/$?1>û(ì>ü•>úÃø?N:y?ƒC ?,4G>ûv|@Ñ‘@%Øö?˜é°?_(ß?…E>ô„ ?¶'?Ò1?KBÇ?ê›?ˆv>?’B?>d`??/™?¸”@?Å\2?üC?ùææ?ò™Á?çÖö?Ð]ª?®CR?|„Õ?[U?:6?[ {?sËL?€¦?†î?‘»M?”{?3”=>»uQ?xÆ)?ª’Ú?ß(œ?õó$?Èú7?½×?¸û?²‘à?e?NšÚ?{œÁ?2 ?¾Ž?µ>À?H:Å?@ç??Д?1ìÆ>Ç<ú?8|°?×—7?¶cµ?cq±?ajŸ?`Ð_?:\Í?–>ýÅ©>ýÍ>‰×n>6©6?–›1?Èï?¦6?—ï'?g‹.?c:m?‹@;?‚¢F?=¸å?4Óä?¥VÑ?®$Ç?þ4?éOI?/&?*Å?((žE÷?/e¡?~WÌ?j ‚?t}É?J‰S?4Yõ?­„?¢Üô?iŠÔ?Q« >Úb>»æ?Ul¯?gä.?\Ó@?dâV?N¤?@P>þ…Y?\Þ? þã?$f?hã©?{“À?ŸÖø?Š Š?'¶Z?åÍ?б¸?-rÌ?*,??ºÜ?NÝX?’7“?„Ô?bH?^ ç?YQ'?:æ¹?ä ?@Æ ?~ú?=$ã?" >?cÏ8?~28?5ò®?)i?σY?þ·?™¦^?~¦>S’?&Úà?>%[?;T>?6Ñâ?—Ѫ?“)Ó?ï?”Ï‹?îe?ÙF??ñ ?JÔC?‹M?kü?Vå?“@;?×l? bÁ?fÚ˜?ª†˜?ã'æ@ã?¦fC>ý†$?b‡&?¤+\?å¬?E‡>Í$‡>»¨?KÃ8?}R ?á6V?ýCµ?ús?ò‚?_¼?3x?µK•?½Ñ1?€®?~Ý?·Ut?²/p;¶@=ÇqS?‡?^Ç>Úhú?ä­?|¿€?|²?|¬—?|¢í?|›C?ŠÓU?£¨ü?€ò?Ž2>ù¾‚>ü`¦?’9P?üMK@†¦@Y³?Úõˆ?¬Öd?pÕâ?A¹?E„;?lm>¾Ó<ôrŒ?{ß8?¼¼Á@6C!@Vök?|»·>xL?Ëœÿ?ûŽ­?´æ?Ÿï{@ ˜+@ìÈ?Çæ§?ÀÆc?ÓÐ.?ÖÅÇ?¸SÁ?ºE“?ü<É@}Û?k{×?`P·?¥ªÑ?ª%?Α˜?ÌŠŠ?ÊŠ‹?Õ`ï@&•¾@"Ç?æ&?â"(?³_?¢g^>ú.Õ?i ?‚-Š?—t?`T?W¬?c)¿?i!ì?QM?R¯ã?2Z?‡@Œã@ ha@;Û@NU>è• ?l?ØN!?É„ž?¯÷Ø?È¡?ê‚ ?ÑšÖ?º…÷?§ À?Šê?˜œ$?¯bü?¡Óx?Š¶i?—Å?¯8o?š|?x??Fb?1¤?8Bø?mè—?æ:@11¨@ö:?÷m×?˜S>¸Ïð?šZh@L…?÷¸*?æ˜5?ÒÏ=?¹÷?ž;?{>¬?Ò @¶?¼“¼>Ç›=?]¸?¸£ú?ïõ½@ü)?í¨£?©á?€‹[?øê>û5>ÖûÞ?+ç¢?}ÃÅ?•8ó?·ß€?‡¦>ôþu?U.´?³öi?pƒ>(4;?CÏw?ê¶?ä?àO«?²SÂ?<~? )E>ô$š?W5÷?æZ?ôa@J?Õ‰E>ó[§?°°?<‡x?ti@ä@ä?á ù?˾G?,ÀU?;á»?§™†?©&“?ª²¨?¬C˜?t +£?qåS?v?}%?ã4R?ñN¸?½vÀ?¼û?³(y?¬(F?¨æÉ?¥¨´?/“>ð²v?–úâ?Â1?¹ë¡?´4‹?¾ï!?È%ò?ðd(@tÁ?ó‡ò?Ü”þ?ïPÄ@ï_?ö>?η¸?ª8‡?>¸ý?Xö4?Œq?™½e?ܲ[?ãoê@3Þ@¥C?š.s?•T<@Ñ@ +¹?º.?²8à?àÝ5?ë“~?9Ó?m‹?£B„?·#?Ô¬O?áOú?}†ó>õt?u,Ä?±FÚ?œN½?…f?›?™œ?ªy ?Úl°?×#?°Ÿo?¯-ì?•«?”ð?lZ¾?rŸ¿?>ó$?9å +>˜E>+=@?õ?>º‚?$q?Ð?©ýÎ@Ö@Bp@±E?ì“L?ŽA7?„M³?iL.?iÎy?jÕ>?gè8<&= *£?þød@ í?ÎTÚ?½t?ÅóR?Í63?· +¸? §A?p‹š?q¨?2[i?g—ð?€S6?­‰r?²Sc?ñM?øv?ÏÔŒ?Çñ—?Í`P?Ôá?ã*?æ…4?©Œ>?†`Û?Î&@±u?éx?eùÓ?A >uI,>ï'ë@6Õ@:ì?ážå?ßÛã?„ve?e1¡?6¢>èëR?ùÁß@AYÐ?ð?>ä¬e?S¡â?Ûr?Ù‰ ?×ùá?ÖVú?Åo?Â\[?ˆÙ|?ˆ„ù?™;ƒ?Ÿª?”PÇ?‹µM?À7¨@6®?ï»ä?Ã…M?·ß?u%£?mPì@Sú@>·?c˜à?*œ½?£2?À]?§µ˜?™³G?ˆÁ?B¦ð?Yˆ?«Ø·?°_ê?âY-?âLz?ÞªÕ?Ùê@=È@…Ž?›–?>.?BD?IÄS?)²í>áÎP?%½?ÍÜ9?ÓÃŒ?ü¼–?öd?Ï…>á»?>äG?eç®?Ó@#?çÚ?…UQ?‘ ­?ºf­?²¸ö?F$j?sÎ>àä9?'Þ?àÚ ?àÕo?£zÉ?Ÿéð?•Ý?Žh?Œû?ü?‰Ô?`».?fHi?„RQ?Ž%t?‰Æç?‹û ?©þ.?­iª?Üi>à°X?ˆÇf?¨‰«?eç?¢?r{—?ÀA¹?¦³—?O÷ +?uÎ@ +T@ +êà?o +?`¤I?9Q?¨“ò?‡—€?q[Ý?§ñÃ?Ñd¡?¦©Ò?3”¸?o½ª?û8?öJa?ÎÏÂ?Ç‚&?¬>æ? ¿ž?ËR?à[š?/œl>Ô•{?aª?z¡½?“2?‡·œ?As˜?4èZ>èç>º:á? JG?$þ>þÔy>å¢W>%nq<§À>Œ>ñÅÆ?!Ï?a€M?•@U?ô™è>z>‡J>ë‰b?‘?äg? ‘>µ ?>RåÇ?`‚¤?µIm?˜ë^?aÛ‰?ƒ68?©oÎ?•kx?žs?šK?aýp?b6?bð?b í?bj?dE`?r[>âÎ>9ŒI>¾=q?Eý¼?Â+>˜Sl>ÄÁÕ?4kR?*eŒ>éÆÄ>Ö‰?/Ê–?5*Œ=¨Ý%>|`P>¬su>Ò¸¤>â½>ÏŒ=†º3<¨ø2;ï²p=ãRG>áç’>ÌX¸8Œä? 8>±†¾>²Wô?ÃF?+@T?ÂÑ>á]ÿ?h_L?¨îæ?DÈ0<ã=H*=;Ф>àŒ‘>às6<§PŸ?%³Ñ?<Ÿ¼>Mb¬>¹¯î?û¥>‘ËÍ=":>'L>* >Þ2É>Þj<°›? @V{Ý?óñ>ɽ8?%ö?C~Ý>h >†fY>¸N=Bü:>86ø=øÍK?0=>â®<éXè> +¤\>‡•6>ý m>ýW.>ý +ô>ÍÃ>—‘>õ™l?"Þ? §©>ûvî?‚n?·Ã;?/„>—'³>ßàã?y?š§?ƒ>c?’¢Æ?^{?C +?i’? R?aª>¬³>-ƒ¿=ìP-?´™±?ßÓ‰?-’ã>÷y=ƒÊ<µV¤=FÉ=™i*?„Â!?ˆü?*| +?)rù?Ò;+?ئi>²«í>’ A?D»?QR?Ó#o?ÞÛ[>ð0ç>â€=>õ‘>õȱ?ìƒ1?ê2ì?GÞW?^aÓ>¼$Ý>©Å? ¿?žk?5#?= +?LFM?0)D?O»6?Tæ=ÂN=¼$Ž?¸¾?µR >õsM>ü1C?V?¡?ü`? Û×?¸§?²¸<>õfy>ð >mç$>SYä>8É>2¢¡>Å„°>ÖÝ_@éÐ@ª$?hÖ‹?„Äâ?òäÛ?Øø—?BÊ?b7?Z\p??Pò>"Óâ>$ûè>,?v+^?g¬ø?¥…? +|¹>Õ¯¢>è²®>üÐ >ö™î>þ¯a?9U>Ô9—>Ǭ>ºÄ>Õñ?&ôå? +ç >b™…?ÖR?ÁY}?´j?º ?U‰?wW?XqÈ?àÜ?2Qd?tW?x|î?t«?Ma>÷Õ0?AæŸ?‹Ñ5?Âì?÷k?”¤´?Q—e>øQ¤?1¢?M(?,Ô?Ð!?]°?’ž?ë®>øÓ‘?–?¸J?°@r?¨˜>?¢1¤?›Ê¸?y1?yPí?NxÀ?@’”?rQŽ?y‘¥?¶’>?»DÜ?©åá?¬>¸?báY?a—>%hh=Ô°o>úL™? _?z:ý?}E–?ˆ.1?{Ž“?ô$?<Ñ?z‘Ú?T}>ú®z?;q?F/%?l¥Æ?”+½?d?{Ž?{É?{ Á?>­X?Tr?H@a?vãx? âß?´a?C•Ž>û‰Ž?\¹ú?’ëº?e<Ø?EKr?z„Û?lë?ŽC>ûð @ ”@ Y>C@²?ðøi?|A¬?|KŒ?[º?sôb?,¡e?{i’?ËAó?Â#@?©sV?f`>”D«>¿Œ>üÀ¬>üÌ‹>üÕN?FX?…*?¢#X?°ì'?Q"‡? -?k¿—?€DÃ>8"=l&&?©–? zº>SùÐ>pƒ`?¬‘¨?§î„?–z?•Æƒ?}|ê?Š@?¯­T?¡œ?”ôé?†2'?]%+?3f>ÔA;>” Ä=ŸŒ?OÀ?}Ò? *º?µg?H¡6>ÔŽÁ?u'O?ŸO?¸9=?¾–?kfœ?F„!?±Ü ?Â&P?œÂÏ?•„§?(É:?OW?þ.Ç?éÊy?jrå?J^?ñ¶%?éc?¾µö?“j?9?”dg@FÓ?Ô·?C?âðs@ÜÜ?‰~(>’+=µ ?:‘?~~À?`ó??Ne§>a7ö=ãÇÇ>ï >þh%;²ˆ=k'‰?Èl?~&?y¦c?^¡Ç>þœš>ÕW>V—z>øT?~¡‘?^ÐŽ?/å?‹R`?Ã@j?žüT?…Ú¤?!ºé>¡âÍ>ÙÚx>Ö‚? +DA?RÛ?¶ÔW?âu?9>þ°¥?qE?€JÜ>PŸÐ>ž»F?‘%?“|ç?b„²?FI?>š•ÿ>ã[‡?M–è?Hd ?C/²?}ÅL?¸Ñ/?©LE?–ç„?”÷¡?š#ˆ?ŽG4?~¢?+é>Ø>шÔ?  J?[òœ?"T?¶4Q?ÌÌë>Âî?ôp?®†?öc?ý/H?•}ä?—­u?ˆ|}?‚¿N?~}™?…¿R?¤Z?ª¯Š?½À§?±›?Œäs?~-…?.&»>Íó^=[j >÷„3?z^©?9‰?VŸ?ˆYb?´£?!@>"˜>ÐÁv>þ:_?N×É?uTÚ?¡Ó±?¦&Ú>ÑÏ>‰GÉ>z«>‡ò·?Ïi)?Ça7?¨…?¢H2?š?tS?±Py?À…?õk?ù&k?ýá ?ý…?ý»?ºl?%ü?Vr>ý¼?ÄIg@+ý«@<§Â@M3?Ôrk>ý—(?C¿?a¡?oŸ?}~>é: >dÔZ?˘j?÷Vü?ÄP“?ÂOO@ØB@'?ÌeM?½èÁ?µœÃ?·`½?ƒ…?vû;—‹=¾-?t?MØ=Rt>—œ'?§Ú?¼º @1 @ðì@´ÿ?ÔG?|ª,?‡` ?šRÆ?‘b?F?¤ü‘?©—©?ÀÅ;?åøÙ?óŸû@d`?½3?|8?™âŒ?¥j‹?;yë>åR?4«?-Ç?V¦>?|¿ +?´uÞ?Îw·@F‡ @YÂ6?ÇVï?–î3?L [?@64?;f¸?Nr§?Æ¢Þ?Ê ?p”¨?pGo?=6?>DÄ? +ˆ?Ž ?ì’Ì?àO5?RÙ?oÓk?úЊ?þ2À@ ¦!?ú¥U?z˜¼?oí?* >ø¿û<#ŽI=ØxÙ>ú?‚? µ?z%A?š#?è¥)?Ó¬?¢lg?S®>ùÌå?^Â?Ñ{±@€á@3×â@"ÿ?ë0á?ÕŸ?šÒ?£m?ÂÀ‹?±’‚?›)”?ñ·7@2K@yþ?Šuý?¶Ö?ß…ü?®ù/?x€'?­o‘?éX(?|}3<­w¿>ó%?x?¶Be?íŒ?Î5v?²£%?¨ ?§Æ?ˆ¶?QöZ?YÌ6?S‚ª?uhï?“§œ?‚̨?_|ê?…``?—óc?‰f?{]?ÀCR?ÿäF?¾V?vg#?šO?¸±­@¹-@G¤q@ Çh?“aâ?wæ?Rºë? £•>*?6’?¶*Á?·ª.?·ëÇ?œÑ?oÜ1?‘—?·¦Ì?®/?›zS?Í“@y?ëû?Š8 ?s¨Ï?& ^?æò?+?S5%?¶ÕÔ?Ë-Ì@"V?ï’?jÕ¯?d!œ?]u ?‹ÎŠ@ H@ÒT@&ŽÆ@.R= _`?ZÍc?_c?rAÌ?r,?r?qøƒ?é¾?ð7’? y!>öü?Ð?ÝÉ?¥Åk?´Ü†>ÔÅÍ>n—?ç…?še4?TE`?9=V??xð?E¸Ú?}.˜?Ž–V?÷©ä@"ÄÓ@tc@Ò@Ìh@®µ@ @Ž?Ç^Ó?"öc?Y‡ì?³*>?¯ ?£ˆ“?¢•Ì?š%?¦í2@gf@að?ƒNx?€)Ž?­ƒª?°¿¼?z.?m|«?mlX?mDú?£4^?±ÉÑ?’Ǽ?†ä^?dº½??†Þ?a^½?„„ð?‹Fð?Ž}X?ƒ¡?kþ9?bÛŽ?SLÎ?€Û?Ñ21?ϘÙ?Φ?ɇ€>ë1µ>ëã>êíw>êÑ%?Ä@@?Ñ~P?´„„?¯Êð?‰ÔL?j+ë?¡ª£?ÃJ?¼IO?¶¼?ç^S@%°/@ -?gÂk?…£P?é1?Ýg”?­Wå?¼–*@¶þ@=?È¢ô?®*ä?®Õ?®·?ˆüT?Aõò?1œ?›*?.[Ž?W!¦?r5?¯ ˆ?«Ó³?ÏÑ:?Ô5h?Pc¡?9Ç|?ÙGÅ?ú¡?^»n>¤iï>9Ñ>Wú >òÌ„?f¡?€Q‚?¤á’? ?S¡Ð?Zÿ?h…ð?eÌØ?eQi?e>ð?bX€?^ši?h‹?‘‹b?Éo?ùß?Î]'?Š±—?¨Bè@*D@]½@‘@Än?¬Ò?Ÿð#?AÜE?%YS?t{$?Ž?ªl?Êlv?»DÂ?¡?®&å?Ð@áÛJ?ûX?Fú?Y»?ÒŸÜ?ØäÍ?EmŠ?'2M?ŸÕ¸?°€ú?¯?·¾*?³6ê?©#?¯œœ?Äw‡?ǧ,?ÊØd?Îû@Ç¢@a™@ÿ@ ›q?óž?á0?Ž`’>ßOÃ?|Ö@T~?Ú·H>]‹±>šÄÌ@Vt@¥ +?år?EÏ?ÿv@L[?ý õ?×7}?¦Øý?9bâ?+ï,?)Á7?F‰‡?èв?àHá?{ÀT?b ƒ?d0«?t,“?‡“?ˆnz?µyÙ?öÈI?À”­>̦?î3?ßE ?à>>çS>âÁù>ñ`”?Y?Dè‚?`Ú?uQ%?†ÀË?<”‹>lVÆ?;Œ@ •,@AL?„{?—Ý/?Ÿ@´?¦£o?”½5?Ú? ¦¡>©Î?-‹À?‚ >?’Ø[?¸&?ÈÝ?ë$^?ñ76@"ßÇ@$Ó³?Ýø?ß®©@ @ p+?¢µš?RÓ?º ?úÓ”?«ƒl?0M?9™ ?Ÿ×?ªç?·²?ªç÷>JãÀ>U<£?*ºû?K8ú?„h?•Ûþ?sš?E@3?‚Y^?³žÇ?¡úÀ?b¼?b=?b?b F?bb?b>=‹=¡E€?%ýÃ?Os,?u=a?€‡–?kÛ?b,‚?néA?yf‚?ZhŒ?&è/?+a0?/Ó +?4Ja?u.?ñé=•—=—Î=”å%>”4V>ÏS‚?,iœ?`ÉÞ>íÑ>ɸ?ÄiÈ?£TÄ<)‘:>áÃB>á½=! .>¸l >ûkÐ>²3X>‘7z?:/è?Š¼¨?&îæ=¢…=%Û¡=ĉé>ßOä>à¥ö>à‹ü>ànq>Ê6Å>¿x ?? +›O>Ë>T¦Ð>¼í6>N˜¼>å[>­zÝ>¼äß?ú?Ø>²†>¼¡m;àTÂ?KË*@h?¿æ”?`ö,?EõÃ?G6/?›·>¹š>9Îø>ë<ƒ¯?®<?¶tì?€ý?y­ƒ?gR ?B„+>ÊÞh>¼¯Ù>®³>‹ch>Vg >¬a|>ý0>¹A>4ÚN>ýÊn?\Ÿ°?+bó>ûqP?Aý?wO.>ºKG?ù°P>ðœ? > +?Œ~û? Ç>ëJ;>‘Ì?—Ø?,Ü•>ر„>ÇßÑ>Õ\þ>âÓú>ðO´>÷x?ax­?`غ=žÂ?+Ë]?GÝr>`uõ>NßG?Ž«¤?Ÿd{=tœÕ>íÛš>ö'^?[/Ý?dž=m’Ò<‹>óT8>õŒW>(5ê>‰mS=Â.¼=üt>õ™>>öæy?`(,?këc>õ~ç>ý÷S?±Ž~?¸Kû>õkí>ùæ?´¿?}¹?°T?µÐ?rÝÙ?b<=ü†>D7”>õfÓ>ó\>þ¯%?ØÄ?=¯N?7 ?0g?&$K>õ‚¢?ó¤?Ÿ"?²žµ=Ý!T=^¤\;†s“``?a³ã?F¨ü>…qé>¶‹È?Ãì?_j>|¶z>>ËX>)_w?v:û?kže?G÷?2.ˆ=úг>} ›?v~”?¢.²@'j?ì_e?_•?@µl>öÕç>öæ=>öô©>¬>žû…?w.Ü?Z–é?pû?EX?†‘:?ËÈ?¬¥1?T÷:ðH>súR?l6?Š®Ù?Ó º?Ž*Ì?! 5?"^?Ûú?‡>øEÁ?ò?+·À?r?—Ïl?ñ?‡#3?£³}?¶8#?K­Ÿ>øæŒ?[cX?‚}>Ðœ>½¹?&—`?F§k?/&/?.–º?–, ?›À,?~}Ö?y¥:?u˾?„´…??*h?H¨½>ùðd??óQ?òü+?¹/?¢+G? LM?&Î?zk?Ž +?½©?™é¢?2—µ?OÇ+?t7Ï?g¤X?[É?=½N?¶§?H ?{?sÄ?r ? Ý?¼lU?^ï™?ð9?bf?‰"'?n }?XYð?rÉÀ?jW ?u¥?{ÑW?¸ È?Æ›½?>*î?&ìŠ@|«@Æ=³­>‡¹¾@–…@ #?|bã?JÒd=Žð>Y(š>üq?/i?-?ÂPÑ@?Áˆö?Bã¥?<ÖÑ?6Èà?yà>üçò>¾F>€S?; +??}D?i‰¤?m ?àÅ;?ý¶?g§?hGÈ?kdj?fÛo>Ìü>Ѹ?’ïª?¦Ð@[X@¤ô?ÜÀ?ÒM'?×®>?ÆG*?ƒûz?c·¬>ýº,>—ž>õ17?€°ò?Âgh?û& ?ÕCÊ?¾sî?Uªü>ýýt>£ÖF>–ûõ?|™,?—·‡?ßô?âB9?Unq?Gi?¤íO?¡¾›>y„4@ o?ñS¦?J? \>þS¦?rû¥?üÝÒ?à¹P?°rÈ?¡|–?˜ã\?–Š‹?‘´®?з@–é?Œr¨>þ„&>£ð)>b=?M¥÷?~u?£Kƒ?­¾º?1ù«?›->ÝË>âQl<×­^>ƒ9?¾Ôz?ª‹Ð? l¾>ç£=¨e¹?ºi?¾Ä¶?¢@ƒ?~²»?j¹‚?Iã?x0"? má?­2“?§Û{?ŽÞ>%ee?[—#? lÖ?‰tl?~¾Ö>P:>ÚüT>þÁÑ?´xg?»ŸÛ>í‡>êZ«?~¿?~À>?~Á_?q,Ü?'|k?!¿©?5kÖ?&D?âZ?>q'?•˜9?¬ÛÂ?¿ ?‰‹æ?OM?R ,?~²Î?~´n?~°Ä?¨sá?¾IÝ?í½?úª*?XV9?‘4?PÜV?N6Ÿ?œ¤?œ´Ð?üA¡?ý'j?ÍRp?Ç"\?¾ï´?¯™A?Dr5?ù‡?ß²ñ?ÄÀ?ŒR¯?8µå=ä4?%¸†?¾Ø?Šë'?#ô?fn>ÿR?†ÿ§?¹¥@&U€@O/r?ÉR¯?LRf?é>þK†?E•?RS?8¼?™ñÄ?^„>þ0Æ?j‰[?[°?ó“?óGQ?“9£?œc÷?îÝ?àúZ?”§Û?—P?²%¶?Ç,®?÷ËE?¼ýã?³r?f­©?³«?àKÙ@ +¼Ÿ?Æ;C?‡û{?ÏrÌ@A?Æߎ?V?ÜŸµ@i-?¥þê?}²?ð¸>ýƒN@ì@=l?“+v?D9Ž?³[ˆ?¾½?©§?¬èÑ?ç?€œY?½åÃ?žSð?ÁÙŽ?®) ?• i?mN?<žÝ?U?dÊ-@ @1É£?‡Í-=ÛLÛ?†¦?½}?ê7 ?öͺ?Éh.?¼å@ã–@-€­?o¼?\?ºqÅ?Âóê?:£v?Û@?Ìòò?×{Ü@7Lè@,ü>ûBM>ò:…=¼C–?ÌH’?Æ‹2>³1?xí?Ðæ’?åÞ­@"êä@@t?ÁG?·^@7n @‰Z?zHö?v ?sÉ:?S™? T¦?9ä¬?’ò?’Å?‹Ã?F?É>›À>æŽ?†è?žÕq?Ë;#?¯—Ã?y|Æ?½ð@ ~w?×áP?y:Å? +Z?,X?ºº”?ŽÕ?%W?ÚŠß@:‰u@š8?‰(?BöB>øj°?;g??xI×?œ*?·ÔË?º¥•?¿åö?K¨‚>cäI?\“­?¬±æ?ð*@u?‘G>¡º[?DS(?‰í[?<Y>÷7?Ž?9ñ?9W?2/†?Œø_?¸ù8?—D'?vtØ?¦˜Õ?ÉšU?é@¬@´?ð6J?Ø?¬?vå>Nš?„l—?òža?¸žJ?u²?u¤v?xUv?—Wx?²éÆ@=G>@—ÆÐ@Z+Î?é\?¶,ú?rŸD?¶/?¤é?ƒÀc?%Œ;?(Ó¦?,z?ƒ|¹?×k?¶?—œ?†»[?Qô?‡FÔ?Í:?À¤ÿ?¥Ô#?±+¤?¹Œ?œ#U>˜ìø>¥Áº?2g?/F ?rP4?rÚ5?x q?q«ø>òGs>ògZ?±UM?¯¾Ý?¬x?©.n@9!Â@@Ë°?ŠS??¿g?|š¯?‡å?¨Þ>ðši?1»Û?DËK?ˆà´?›1o?ó®@û‡@ WÉ@{|?òÛ?Õ÷Š?Ñ«ø?Ñv¿?ÂÙþ?ž%>?œê¥?£ ª?¨rÍ?«vc?b>î…u>épñ>Ó¼? ¨Ù?ñÇ?îë?oˆž?mÁ5?åðð?êp¹?* »>ÿÌ +?ï J@ ƒ[@ u@÷ö@ž~?þ‰ä?¯ƒ??l{Ú?âß@' ×@Èt?¾W–?3#?8=?ƒÝÚ@ÑC?úÅ…?µ{a?µg?UC?O ?qúH?iŽ@F¶Ñ@_.?øF?½ 8?‚æ¥?U²[?Ï @@ ²@)?î M?¦™Û>éÙ>逧>ée^>íÞË?ÈN?“??Tl|?W¯à?gà?–y4?¿vD?¥Ú>?m7Ä?ƒ(?Ëó²?ÇÆÿ?g%?fÿ›?"³R??̹ˆ?íÒ±?=ów>]?' ?{â?hE¼?Vu•?U{±?R²q?4 o=ff¥=µ)N?¬)r?«ê«@çÈ@ +ÕY?T>ýŠ?¢«&?Òþ‹?~%>?nBÛ?ƪi?»=â?¨1Ã?´îr?ùO„?ú»–@²«@ÍÑ?k@?*äo?¡,M?Ä=þ?œ‹?|¯?Jg'>ã…}?(·?ŠÕ?Œ[?}ŒÜ?zjU?cæœ?c +?žÂ2?ª2{@ ¼Ÿ@'¶Ô?Æ„>â®·?2?f2ý?S5l>ÒoÆ>Ä$’=cMø=Š‚5?©¡F?Á,??°Ü0?©˜?²øô?»¤?…%>áè'>áÛ>áÍ~>ú¤m?a¼?a®?»go?¹gÅ@Éü@¨:?»4B?aq?‹Öø?©R?šþÅ?x Y?nÂ?Qü?U\À?£éu?¥¥.?¤ª8?¨HÎ?Ï·Ÿ?á`?£ù?ZO?f×Â?„Ôb?X×=§R?˜°?ª9?½hu?¼ ·@Ù@"NÃ@ µï?ùý@q@ ¬º?ê—?“?ŒgÚ@–z@åg?ÔMu?ÑŒ>Ò·=Ãm?•¸#?àÍT?”Ê?SR>«Ž¥<[>€…?¨Ÿò?¤ßÞ>àÚ>àÚÝ?¾¨o?ÊÁM?©œ·?¶-?‚‡m?`ñ!?!ÈÈ>˜!.?è¸?²g?¦fÁ>á€>à~>jA>xµä?Œpz?›yã?xÒ?a&½?jóã?~Â?]–‚?<´?rèì@@½^?ÜR ?ßfŸgO?¡e]?Ò…ˆ?d@Ñ>䜳>ø…:>áš3>Ær>›gú>WÆ-?H¤?Lû?‰§?–›ÿ?²ùÁ?Ä‘m?vÕn>áïO?nZS?ÕWM?¼ŸÞ?fCM?b“?b¦?]ë(>ì3›>ôÆÀ?@òù?>Gh?”Í?œWU?#®>Óåÿ? ÊT?4?6ÍE?Zý´?c1z?W£?1­s>žB>±pB?b5ž?b7¡>›ö>kEÄ? Q?ê£>$@;…Ñ>kn>Ï¢ú>Æ5Å>¼ÀÖ>¶’m>àªã>õêÙ>–¢->‘“S>áÅ.>á½>áµu>Ì~„>V{¡>%Nñ="þ>¨ôl?+“>ãY>Éóë>†¯¸;ÏÒâ; ñ@<œ8€=<Û=Ž”þ>àP×>à6Â>EË> = L>môî?…?,”}?FËÖ?2ŒC=Ï#Q=mtx?|' @ ]Û?ç÷?Ãu¢?\hû?Þ»?>çš?YœÂ>æEã>Ì ,=Ï¢q=Héö<ΑX=£Œ¤> ¥>åÕ?Ÿþ?|]³>þ-Ø>¡‹Z=àš>‘é>ÊQ1>ün™>ü/f>ûî2>ç'°>ã Ô>ð¡r>úzù?I× ?fQò?&áÉ?Ùö>‚[8>õM?nw?Ë?&*ú?B1ð>úòâ>¸à=SOU=¢W/=ÃË:pÄBõèè? X>δ>º‹ô?ŽCL?^*>¢³L>„¤?2„ê?/¼•>AÙ>Çø>ówÚ>öÀ£?3]?Žt?.h>ön\>õç4?ÌE?ÕŒ(?Äm">º˜>®Ø'>õ¥k>õŸ¥>õ—¯>ð>‹•K>Lu>õ&>ü!Ô?/H?+ª^?±±$?ª¸¢;‘m}<£jÎ=ƒƒq>(]O?JQˆ?8&">õv’?HE?_~u?CgT>öF¼? c’?E¨ ?@€N>°f +>þ¸#?Õ°\?Ó{h?m¬Á?eu+>ôš5>é >>Üd#>ÚŽ^?êJ?²‹>§…>·¡L?/|?AAà?m¾4?SaA?sÁ?"ï?Š¢r?[ú=Ž@ú>©?•?±û?›º¦>ü?a|Û?þ£L?ëÂ?ª•{?•½C?L¸=?/êˆ>÷ ?>ÎW>\YS>ɸù?MCK?`@Û?waÃ?2?±°Ç?^ÅÉ=b>U©>îïâ>‡Šþ=‹†¶>qºo>óÙ˜?«c>øÄ?>’@?x:?2D)>ø[Ý?Eã4?xyØ?+H>ø˜µ?u§?ªÀd?Œl?xÛÇ@L@5~ú?߀M?²GÇ?:¦>½9~>ì®M>ùZŒ>ùkõ>ùy ?3÷Í?MéJ?Iãœ?N[–>)Ûi=ù¡>A¦Ü>:Ý>ã&p>ñËì>ûÌ—?Ä5?Bo?oð–>údA?†­?ôq?QS¢?«µ?ƒî>lXÂ?‚´?†z3?¨¶Ú?оg?šÚl?B!´?Y1J?kHÖ?:êN?SÖ?®»X?ù©í?ʱü?¬ X?Š¬Î?{™¨?8"^?&Ùü?mm? n¯?”y³?›ö0?˜ã“?•Îì?}´³?{ŽÕ?/u?»>ÚÃ>ë9-?”?*Ý?¼(Ð?©}Å?_lí?;·I>ü˜'?)›®?|­´?‰ó„?¥¾s?È‚/?ÜÓ,?¶Áe?—Û·?aM?%-í?F¿?bz?h_?n Ì>›»S<ðF?š~ï?¿üÈ@Ô @QŽ?ˆñ+?}m?[ä›?aæÂ?Ï”Q?ËW?ìû“@­@†Ô@È£?,Ø>þÑ™>®é>âw.?kz?0—=ž5ê??9h?¾Võ?œÖ ?‡'¡?ˆc?ˆï>Ó$¡=ü?@?'ÛŸ>ÙÓ‹>Úè×@8/@â-?t??~(Õ?n÷—>D‹>Ú_Ý@$ùû@¦ã?º.s?œn>þÍŠ?M?0?Orú?‰2?]º?0Y>èàç>¨Î…?Y®"?šÅ?k­{?=òû?Jž>þžJ??rT?VM?[Ü»?ak?|Í0?~°f<‹­\<Þ“â?”£? Íb?6?oË?>þ½ó>ô0>Êm¶>ÔÐö?B1?)GÇ?/R-?4Á!?:*d>ÿ>>‹$3?˜wö?÷ë‡?†0›>þÒ¢>Ô —>Ëi?[3v?~Ô8>QÏ<‹=Ö>âøÈ>þ×2@ 5@Ñ/?å&´?Þè?ã0g?×('?¬M?©ps?¦Ól?¦×3?¦T'?‰]Z?.…?Gÿ¡?np~?‘¬£?¿?ú?~Ì;?…?‡Ðe?|?#?x"?}Ód?~ë5@Ú`@:¡y?hW÷>þ½w?±é?i’?¹£Å?¾f^?«k\?³]?Ú L?ØÄ?¾ÿU?¡#~>“î ?mòƒ@4~@.m¸@?弶?n?oUÕ?·è?¼Oê?¾ã?¾ßˆ?½ÒÌ? ²=úò*? ¼>?wÞ6?Ð?~h»?Bå>þ_V?–¬²?¦S8?Eg[?9‚Þ?|a…?uJÎ?«))?±cå?~6Ê?R6?šç¼?Ù?—˜?° v?õ—q?Æ°v>þý>³4¶:Êßä? ¡»?¸Tà? 9"?†¥m?@'>õ [?9ÿñ?\3'?PáP?TZ?‡º?˜ÃU?©Dí?¹ô?‘(€?}¤é?Cë«?.Ü€?—ú€?¯J{?늃?ëoR?´À÷?³cˆ?HSþ?0ö@?m{?~%[?½Òñ?°4q?`÷?2>ª?°?}?¸”z?æÊï?å¸S?í?ón@q?Þõa?¥š½?£p5?¡G-?¹yÓ?Ü(n?­Y?gº°?ìG>0æ?O-?ižH?š>[¦>ܲb?1?ûû?·à?ã³K?ùÕ?Íé«?½¤?í™ ?üs?œp?†æ?Ÿ9?!Ö?•k?š©ì?¢Oì?¨^?¦ˆ?£…²?»Æb?»è”@+ˆ;@1ï{?‘Ï?‹a$?lš?AdK=eþJ>¼‡Ô>±È‰>úôä? ݘ?<?„S–@Í@Z¢?y v?±ê?º:ñ?É,?ï\½?ÆôÝ?g’?¨Êÿ@‹Ô?ØÍÉ?z ÷?•g?¦ ?˜*k?Š¤?‘A~?žâë?ªëø?¹E ?ú€Â@$n’@¶@ Ò?ªÚ>ã© +?m_Ÿ?ºÉ=?ø@×@ïJ@#û@ŒO?ø¤õ?”>ú¬c>]mgÈßi?œ•?èm+?Ð(q?Ç?¶B*?ˆ?íÀê@sB?ê>?¾²—?“dE?n4F?0Yý?TL?¨ê?ä>C?¼©‰?Ÿsñ?ö-„@`á?Å×#?v6:?PL?(Ø\?¢Ê?é[?Î?¶Î)?Ù„?ô˜°?³¢?u\È?™ÝÇ?·ãÁ?ÛŸe@Z_?Â/k?NdÜ?W,L?Qð]?%on>ø|?³Aó@ $Ÿ?û¾E?¢™?½V¤?óëä?ÔKÃ?›Ö”?ƒ_ ? ¿´?_Šî?ß ê?®‘&>‡ñÀ?EãÙ@!¯@_?¶ä?áC@mv?쬨?€ïo?ƒ,?´at?±¤_?qG1?k!?ãæ? _D?è­ò?é+©?­ä?²3G?* Z?ð;?½uƒ?Í$Å?ÛJê?Ø°?aé?(ž‚?ɦã?õ£™@M’@$Ë`@ eì?ïØ0?Îèa?³¹4?®M? Q?µ~U?ÞR?¸ò??o?¶o@#,³@@‚?38? {í=Œ*>œbJ@î»@»á?²tz?±o?ìlŒ?í÷?y_Ð?_;?ßa?÷Rƒ@ ™ +@+’?ù1.?Ò±?›Ýð?lŽ?À¤ @G€?ñ$?Ês½?Äu¡?³'B?§£À?œõt?—}c?:Œ-?IHã?›©?œ®“?Æ@ð?É>{?Ì0b?Ïd?Ò5?Ôú¥?rÚ1?#’¯?—¥?´Ja?ì{@|A?¾Ä>é°I>é’ü>éw±?r`Ç@#$@‡?i\?k‹?®¢€?®»?ó3ó?ôîƒ?Èu?À}\?΀~?ÍSˆ?‚™O?$\)?”¬U?ä(?çýú?å*M?âï?Þû†?Êï–?V›?U¬?A‡è?D„ì?bÓ*?f²?fš?f‚O?ŠÅ’?œt·?aŸ>ú§ù>¦¡+=Š>Ø5Ï?åÊB?凈?äi?âÑd?‚fq?ƒÐ´?š‹?šuñ?¬Â¼?·}F?´D?©ë­?­¸‰?½C±?¨ò?dŒý?{U®?ÃŒ?Ä…3?à–Å?ã¹?U[Ã?0¥{?š`§?¶Ÿª?¹¯?®7¨?…­É?3´5?6*F?B#w?Tœ“?¿ v?¼%Å?¾Ñ?“ÀU?¨¾ý?¬Ú?ÑÎl?âÛ?Ä:q?¨ D?»yK?Û´?Êë?œ Í?”<$?:JO?4:@"Ãï@(ŒÖ@+?÷?ܸQ?Í?‡ý>áøX>»dÎ>Z5Å>•ßü?-É‚?2@±@o³?Ô™h?Òô?P*??›oï?´¦Æ?¯]?© Z?›2›?7ˆN?$x?hy¸?bj½=ÃXP;ªÄ?|Hs?¬*?ÅG?Óä%?ø~Y@÷²@›?¬?¬iv?ç¾?â‚>?q`O?r_?ª9†?»YÌ?Âr°?Å ì@Ý @,R¨@H?¶È ?²æ?‚ o?Éa?Œæ?Ëü?ád?W?ªE?ÛiŽ?¾ï"?¦·k?zIÔ>àâ±?$IÍ?¨¬A?£ùh?V%™?R–"@Cå@Ko‡?º&e?}¬Ò?²ô?–Å8?Q?,>áw?A\?®qÑ?›??'??¶~­?Ï4ê?¡_¡? +â>Úñ#?c?¨÷æ?Š¸¿?’? dV?acû?YÍ@ åI@ƒ??=>²¾?O·?%C>Á¾A>„á>R0>…m5>Õ~Ô?‰¿±?ˆa>áËò>áÓ=?w˜¼?ƒI?‘•a? €?_ ã?L, +?&{>áûè?#ö3?b ?ƒoV?©‘b?©N?§s“?©"û?Îê‚?È~[?h‡›?b0;?{7V?‚Wü?5í ? Í%>ðÀ>â@Ô>âD>â?‰? ú?|Øí?Yn„>‰ˆ> †÷?b@H?b?‘…w?˜s¿?ŸW§?¦C(>”iÓ<îã˜=Œ2ö? W¡?ŽI?nª4?I?Ã}>áß²>áÕ!>áË>áÒ³?`$?a¥Ž>»ù>Ÿð‹=£9?ü³?TO>ÒΪ<;p:>:I +>ඓ>™ý;¡+L=ç’à>NÎ<&-Ö>Ìc>ä~{=ÿ¯>Q‡I?&]?9?VIÃ?SÝ_?Â9@KC*?ð?‚N3?½>ž]‡>¬Q`>º?+=IF>÷¾a>öWv;¥A=sV`>ï©>á-à>ÒÚW>õ; ?GÝY?r>Hra>帳?<ƒ>ìü—>C]?Û?fo?4(y?Ìê>ÌÙ<Þqˆ;`>U;îûÀ>ºÀ? §>h}”=é µ>•¿—>¤ +?í?5%É>ª¡0>Y„[?~õŠ?¢ç>Š Ê=×(W= _P=SV?ZŽÔ?wß= ¦|>ç‚>÷Jâ><¡> —>ø|F?âì?€¢å?ti´?@lJ?GÑH?#É“?•×?Æ?þt?Ûø°?æˆË?t¿¨?l°ú=ÎÅ=¥Ój?<1M?H¸g> Õq>8)ã>õ±Ö>ýHß?7•?)‘>=J¨>,‰>±ÁÜ>èDÂ?ÂdÑ?ºúø?Ú;?wšT?s.ª?T'êZ`>’ 4>õ† ? ?fʾ?g©Ë>ÝÇy>¾+M>¡V–>²X6>¬ýÑ>”)>õ³v>ù ±>ÿ{>Ô(<¨6<>0x¬?cZ¢?\À‹?V*Ž?3¹>45>™Fö?;Î|?ù@ÜZ@µ²?Ëâ.?»¼5?“ç?†¹Û>öz&>¾ ;&Üè> +n‹>ö­d? :?<›K?bÅ?Œå?z£…?+? +¡>÷P>÷)Ô>÷:Ÿ>ÙÒ>¯w???wvO?}‡?€ÌÍ?˜ŠÇ?¹¿Á?š–±?m‹œ?+Ôœ>ÉR¿? `?/^¨>ÉY>E‹Â?mÔb?¹æ?^L4>øqß?b=Ÿ?Ž3V?3Xo>ø¯À>ã >äÞ€?Q„?xðç?ƒà? ³>Ú „>‰½Ï?‡4¶?—$a>¢O>Bìƒ>\­µ>vmb?V†­?I~W?(”+?"iU>ùß:>þžÂ?U# ?R‡8=5=R>j¬Î?÷Ú’?ÔLq? ;? =é>úzT?UØ÷?êD¥?«ô>л`>šÜ|>‡Dm?-e6æ>´œy?Ô­?…5¿?¼v ?—Ü}?†ð1?‡ËÏ?ˆ¦—?“é?{°R>³½>:ÕÇ?x ‡?…‹D?™Ìà?¡Ï?p[Y?|*_?}S?{ ?dÅÁ?W¶4=2 ~>"–Ü?|iî?|'³?‚2Ö?jsÄ?v/>â«h>­@>ª?+ ?;Ù?Cø¥?|t¦?¬¦þ? ‡1?y©?xY¯?[ëY?1„¦?¨?Aw>ý=È? ÿc?½ñ5?ñ.ñ?øœ¼?[Ú4?TàØ?}hž?xì>ôÍ>íÝ6?×ì?Ädr>ý«Ú?Db)?ï¬T?Ýô?’ÏV?€EË?6þ)?ºÈ@.)x?þ4³???<Ë?å¢? Kå? “ˆ?kõ?Dã>4Êç>… +Ò>ÁæV>:¢>†!J@6¢@ïn?Ù¥?Á_Ì?’Pµ?‡¸>þe? È?-az?0Eý?v%?ÉÌæ@<g@`A?±_Ê?ÝT¾@ x?ªü¦>þš>c £>„H\>êˆì?€Åf?œˆ?S#—?-³?ìD>þº¨>þ¼¹>þÀË?“?‹.g=µÄÿ>4BÀ?þž·?ßšÔ?Å_?!îÇ?jƒl?I³[>þÙl?M½?ª–?sL +>þÛî??]Ý?~¯Ý?…ç>SZ2?1O?TÏ¢? 8>þèF>µóÐ>x+Ì?_o#?„xî?ße>ÿ¶°?s*†?x®@?ÿSË?A®¹?g`?Ïy6?¿dû?U‘8?Me9? }½?V/?Ÿ”ƒ?Q3?^Îm?­?Ð?þYÇ?ã*?¿+?”É¿?hœã?§íõ?Å*{?Y•?OM?]²?~Ø…?=.·?CÌÆ? Bú>þÒ->¯Ñ>k#?Iv}?U¼?0E“?:th?uŸ?”=Å?ù?Ä’?>B‰‹?!0'?ðß0@Ó@ñ ?êé§?~¥‹?x“¾?uP3?žÁÄ?¾òø?¾ïÁ?¾îÑ?VGµ>à<¬?Bä=?e·‰?.h?!§R?´>þux?p? ç?)N>þb¼?ü1?£Ë;?Š†?‚®à?~Kh?€wÐ?{¦ˆ?FÌT>.+>î˜m?¾£c?™Èž?:ýÞ0?!7m?7C¬??…‰?> ¶n>¤óY?®Ø"?ŸB³?#´5?wþ@™q@ëJ?½ÏÔ?ˆÒ.;v >¢l?,?…æ?Œ»Z?›ûC?°,’?½J??Ú‘Ó?ÉüE?¨Væ?·Ç?Ò–S?É­½?»l#?»_™?»V?®QÒ?¥‘†?Ó<Ç@r—@+^;@PÖ|@PL?ª1K?¤;? ÌD?LÏ>Ó¿V>€¢e=³•I?‘¡?ø¸\?°R>?x|6>ÉÑ~>ºpq?$ì{?p…?è;?ºï?Íõ.?¬±?Ÿ'y?Ú>c?öd?Ãòü?­J%@’R@9ì@í-?Û`?’œk?T9>¦”d?¦n4@âE?õÑ£?æÊ|@D“[@vv@\Š?d–¬?µÓ +?æ=?‰Ž©?u©>ùŽÿ>õÑÆ?ECò\‡?wm?²ï1?©”*>ñáó?§×@´@£™?Úd²?Õ? +VŠ>ñ&ø?“‘? ø³?× ?ãb?vC7?;dF@î‰@%cf@ ?û‚•?æAê?×í^?Ýð)?Ýe×?ç]ž?ý\û?îÛ+?Ðs3?´€o?Ž?»? Ð?Ñè?Ùw„@ ‰?øæK?j~û?miÆ?n7?‚ˆ?ì1š?ìè‚@-m@+Íy@"µ @ m@Nï@ û9@Bð@,Ñ@d¸@KÜ?rü?!צ?ÙÒï@<)@ +")?ï’‰?Çó‰?—“—?„¼¯?Sd?Ùé>ëŽ3?6ÿ?Ew’?F6W?+¡?1›Ä?7š³?=—Ø?víó?{™?ÆÎï?ßê +?âÚé?åÇ??Çqà?¯vé?¯*?¬«]?€7â>é‰?=—l?Åi?ÃÓ–?¤y? Ž½?ÎM?ƒ>Ì?£_?©Ï/?ði?øÝJ?­3W?™MÖ?ž/?—Ÿ ?‘0™?‘²J?ªýº?Öò?Ô Þ?ÈÖÍ?´ þ>¸$> ñu>¦Êí>¬»Ï?œ±»?¡Ê?hò?U+?UÂæ?@v?WÙ¸?uÁ?kÑ?f*?eú.?ik4?–»@([~@%–Œ?f÷?en›?#p²? a‰?÷—@".@%n@.³@j³@ ÔÖ?ê÷M?“ôˆ?­K?ŒÂÜ?Ž:q?´û?‘0ê?08¯?ÙR?sžL?…É}?ûE*@%Çä@x,?ª½h?±G_?ôŒ?ÕÃÔ@ +YÂ@ )@Uý~@Z‘ë?øJ\?â«X?âüÙ?âëØ@c@$¸1@ tj?â²?Òê?©îÍ?´?ôI>?@×Ä@,@ jZ@EŽ@a:?â^?œ?+áì?(‹µ?r¹?3¼,?”§*?ŽKõ?º7?½C>?M/µ?,ã?®‹È?̈A?ÊëN?ÐrZ?¹ä?™: ?á.£@ZJè@Uv5?áV¡?á ª@mªû@oeé?›þ¾í²>›gh?û?rÝ«?r ?R¸¼?a‘ÿ?‡N?Û5?y*)?n€ß?ìÝ×?ý1?‹Ý?=>—?Ø·|@!åM?ö'Å?`ð—?‚^\?Åzè?»£û>àî>àít?G8?U??›i?ªâ?ˆE…?`ð£?ˆ)s?¥‚]?¤?¨¸%?³ô?ÿ”?ù°´?åi@?ïP7?‰¦Ü?aÒ?{Ã?…éT?_vÝ?/?f¸K?ª?±ìã?¸&É?§üù>¡‹>’$/?a¬c?zÅè?¯^A?Á4?\;>Â>á?\ª?²[Z?Óù@ Ø5?è†ä>å±">ë–›>ͼŸ>Åñr?Ã=?œæ?ñ>¦›4>÷âl?G†?Iÿ?Ól?k¹?,FÒ? +ƒí>v[h>˜6>áÙ >ãd?ðM?Ö^?ª¼ê?À^?FÉÀ>þŒn>ö9>íÐ2?*ú˜?b­?bO4?e“û?iÖû?n!?h· ?.Áu?<(?b÷œ?b;? *ƒ?k´?RÐ?bE*?dk>âI:?<²—?v B?9>âLn?°¼?|?m@??ðþ??üú= }®„Ð>ý„å?7À?ÿ“>³<Þ>Íë>áãæ>ÿôÙ?R“£?G(Ô?: ??~é=‘;>>Ø>àvF>á,>|^“<äÉÀ<ù±`>z*þ>k¨>Õîq>þHú>,%? +3ï?Ó)?®©²<2 @?C4@I!?—n9?=ý>•³]>6Õå>=ú’¦<›Œ9/ð>þïy?—o>ÿ¶n>öaÝ? !>ÿ½>ÿgi>Ƀ>%Vœ>i„Y>§e?žU?„t…?MÛq>üðs?÷À?ÞÎÐ?2·?\¤6?%­Z>ûf™>ùsg>í("?Gvy?eÏ“>k{I?`Ëx?‹`>ÁçŠ>wIã>åø>ø÷ì?„Ê7?—>Y>óý£>ÍU•?£ä?Õ€?Á‚>ùóÓ?b·!?[d<=äªe=Ý^¸?.áI?$›?ñŸ? +?uY—?š>öŸì>ùqJ?SÑ??Z‡ª?a:A?_¯<ñ•m;¤86<¥Ô=Ë®?Z.÷?AØo=Úèw=ÿ„= =Þ>õº >þ¬‹?>‹?;n¥>¢AÝ> Ì>X%?ßOÓ?é?ò …?é ‚?u‰?\9|=¥j?3~Y?ý>9‹H>T>ÿ>nøƒ>£Zƒ?Cæ?5‘€>¡›>Þ-?¬¸0?¡„6?tÙ?&*½?¸FE?—§ô<Ðñ@>B3>ü}–?ÐmÏ?²Ëþ?eä? “T?;/ú?$–@aN@ Ÿ?ÕÇr?¨‚´>~Æ?qå?)Œ?s‹k?£üm@ м?ÀÕm=܆!>Ç|?vò÷?œw?ƒfS?d\é?4"J?-œ?'>ÆÌ>¤¬«?Tóü?õ?·Ÿ?ñŸ¸@TË?¾fè? ?8µŒ?ZÞö?g­4?x# >Þpª?4––?¤vk?RÝc>øƒ~?O@?ºy}?^]Á? {Ñ>%Lî>µÂú>þí¨?šO"?²íˆ@ ®î@Ìš?É@¶?» 1>è€e>Œq¢>ó €>å¦!?½†E?Í%{?·Ý?ª…á>ùò5>ë؇=¿eÁ?ynb?y¦a?„;â?¤K‘@µÞ?äÎ?ZC?g¬Î?™&\?yÒ@>†ëÅ>¥+÷>Û`”? «{?PÆ?vl±?Œb?||R?j(±?p}R?vÓT>Ìžè<æßð?(ÁÃ?{0?3°Ó?9÷?µð?ÓÞS?yª>“U?„È”? =?›T?–jr>\Z>uX?]¢?a??!â†?;¬>ñOX?äO?||,?bg? ÅD?FÞÝ?£Á}?ˆn.?0ĉ?K•>üØ ?uàä?¾}?p=˜>Ï’Ð>àY9>ý ?'ü¸?5îè?Fõ?^[?å ?7û?d˜á?€1f?(ÿt?+Ê£?ÔwK?Õ¤?­Õ‡?¤ªº>£½³>ÉT?›F£?ŽZ>ý¾•?4“W?­.G?®a£?¾e?¾lM?¾p?ªC¯?‰èj?ŸAp?¾%‘?šùf?vâ0?+èï>þ#B>þ'Y>þ/Ë?&Ú,?)àŒ>½’>’¶??“£À?œJ?ý}Ð@ÇÚ@&“$@*Òå?ßÝF?ƽ>þwE?JÈ@ËJ?À¢:ðò¨>?iå?$`ÆC?;ÿH?¬b[?M´?UYb>®jø?›ÞF?Þ~¸?™ÈÏ?Šª'?=vð?,Cñ?D[ä?;¯µ?2Â?z@?ó9š?ø7…?¼Ÿ\?¸Œ*?‚àœ?¤‚?°½I?º7û?å†n?¾÷?Z Ò?Äl?®žn?Øm>þï$?^Î?¡áŠ?X5>þó+>þôÎ>þ÷^?%h?ì ?¹ûm?ÖÝ_?º%É?ºø?†ÈR?}ý>?¸Ý¾?ºýÖ@;ÿ@ÖÎ?¤Ak?œÎ©?’:o?ŒA?O +÷?;±S? +9…?)ž9?tëd?6H>™Ù÷?2æ©?˜‹M?;?vš?3å??½Ð?ûNò?¤Â¨?~Þ®@5Ø@T —?y 1>þä0?[·ô?bUg?‹u?ƒý¥>þ¾L>ó/ü>VŽk>¬Y1?Ï?ŽÜ“?í¹'?Óãy?WG"?5q¬>þÄË?Œ?òžÝ?Êb˜?ÅÙ?O“?þ)?…eW?¾þm?ši ?„e@>Ê\Ÿ=ž‹z?=ÆÄ?~–*?ÆÃ>þŒ¤>f±w>B}Ð?†ïF?Š-?>â?vfí?špˆ?œP1?ç·ã?ÛÌ¿?ZiA?_ž@Oã@Ž\?~I +?‹è?²Ûå?¦cg?~eŽ?#„>i¬?y%?†¹?^?0ò?ÅÓ@ ñ?ñÅœ?Ó6±?eŠd>ýïd?ÒAc@Ï”?_ùQ? Ìö?ô{?®ë>ö¶!>¯ù?©:ª?Ámr?œ&°?“ø?¤:ø?­ÞÇ?ñ›_?óN?½èT?¤¾=%¤>òC0@ìK@Ï?•BP?Ž¸ø?]ñŸ?Ž•A?Õ=o?³·U?}~?‚®ò?„­ß?í?¶U?ß©Æ@ „á?¹Eç?Pÿ,?ŽfÆ?«áæ?¸#ð?ÆÖ£?qÞy?ÏU?˜0š?½aw?‘•?~?©?ž??c?n¦W?ˆw ?€`?|,.?›´Í?¦4Ü@N9@ÄÜ?‚ci?+à?…©Ò?Œâ??…¯x?€Ñï?ž$?¯–5@ýÓ@v0?ÓÜ%?É£?ð?‡@m?:³¯?Fnƒ?ˆä?—@ù?Ë·?£,>íV?cáB?ú¶û?­[Õ?!.Ë?îuá?×ý?±ò?´1?»Ñä?»ÈÜ?»¾-?Π3 =ã=k?/\µ?†«D?Èê6?øé?…’ˆ>ÿ•*?CÖ?bõŒ?Û @ +–?¯0U?x8œ?!ó‚? +Î?‡0u?¦D?é¢@™¹?Æ‚V?ž¾œ?é&ï@ +œÒ?‰LŠ?N”>ëzÇ>ÁÄ>ïU>÷Ï?¦Ù›?Û^U?¥ h?8 @'Òÿ@]I?Ö^Ÿ?"Ðî?HL>ö6?²E£?öz?Ï`ï?µRs?³÷&?³J”?hl2?O+>ž•­=¼½†?Ž£?u&”?ÇÓo@ÆÑ?ÇÆI?‹·?€í6?t› ?R\Ì?3}»?ã->èº-?>Ä?@š½?µ¿M@VN@Â6?ÉÎã?ªŸa?s|…?\Àð?+9?$‹õ?çš?hù?9u?€š%@îø@ *?µân?ªÔ?nêõ?}ý%?µ˜?¹ñú?Ùb—?Ó?Ìa?Ï%?ÃÄV?ÅGð?R½ ?Jc?À¤Ý?ÃÒŒ?•z—?’*ë?´V*?¶ºó@ y­@H^?–Sž?>Žq?¹´Á?ß;ª?ÛJ@?áêi?”–?ÍS?¬Òp@ w½?ÿ‘Å?æ+"?ùa<@ “‰?éFû?y€ß?S?o>?&[ð?±1?¡ðº?z?2Á>°È>Õ?ŸŸ»?¦›€? €j?£Ä¯?š…0?š¿4?Ë2?Ûú@+@ë€?óUö?Þ¯5?É¿*?´Dß?Žœ?)[¢?i§?°Û&?–¶E?Ú9?·Q?™q?æ´?ö÷>ëÍ>x!Ü>SW?šÔ¦?ª4?~ë"?jjÙ?mGg?j{C?™*9?¯¡?’M?q….??L:>é–->þw=?;³?‹Àð@2çKc>ê‡>×Bâ>¿ò@²]@Iõ?[±±>þ%†@$9@`¾U@2¯°@¾ª?ìÍQ?«ÿy?‡÷<>ô+ë?›L?8g?—9Ã?ÒUi?Ï<Ø?À²‰?ºà?òë÷@¼U@ 1@ÆÞ?ä¬y?­Ky?™Ç)?[V>?GÓ>êAü?mÁ?dWÞ?dGC?†ß×?†5H?£ZÒ?ªö©?¿‰è?Æ×ð?¶äg?ªÇ=?€àè>ã)?<íF?ãk0?Úëá?`Ú?bÇ\=‹»3<&»€?7Üõ?pQÂ?¡°ª?½{#?Œ¹"?*š?‚ Ü?ÕîK?ØÒã?òTå?òl(?ªœ?®Ç¬@Åz@A?ä?Äx“?ˆb?-Á?\†•?’-Ý?£åB?Þ¬?Új?aИ?aÆæ?¾jO?Á]B@ Àû@l?¸5{?KfÓ?}=’ð>pÐ>ás>â[Z>ðTí?þÜ?ŽNÁ?›ç?Ó?ÄÍa?>”6>®T>Ä:6>á+;??îÑ?¦´Á?¡¦*?œ›Á?”þÜ?Y`X?`%9@¾@ü†?q'{>¬WÿÕY>øØÆ?ÕÁ>ô­Á?ºÎ\?àù‹?*µÝ<«ÌÐ?#ÈÃ?¨¿"?¨¿µ?¨ÁP?¤u.?”¢¬?š +?€LW?ûÃ?“W&?“µf?tC¼?aú??¯?)mß?B°­?a)]?‘N½?ðš?åÎ?a9œ?a;´=ýóá=± ë>ýº? ½l@ Da@@C@3š@(Ôw?áj>íj*?6Äó?ŸçJ?Š|=ˆÞ=§p7?^0?a›?F,¯?<ô7?ζ>á³? °?%˜?’Šˆ?ÙV?Ÿ¯;>¯ïW>Õ7|?\d?O̳?aò?aôÙ>Ñè¦>öc?`¦†?ve?eöQ?bº?Ë¡@ hm?ºÿÅ>øN`?ÅD?b0Æ?B%»=âe>u>??m›?qoŽ?oJž?4 ü?,n?'u‰?ƒ„?{ò?«¶ö?yÿ¯>âRŽ?GÕo?¼É?—§°>²v=Önì>á.W>âFx?\N‰?Vƒ•=î5H>2æ>“y£>ÎV>âž?N?6€?Q">ï{¡>Ýד>áäq>ÿçO?YRÿ?fŒ?.!z?$Dè=Ž¦:Ëì¾;}¾€<µ›<£K= @{>ƒW«>oÝf>aÜ >wáê=S}=;£¨=o <‚=7;ò? +òÍ?‚ªõ? ÙØ>•åÝ?Æö?*‰? +“?Zà= BU<ä¢>÷º×”Ã=“1x>—áZ?^èÑ?.úo>¡Ù?6è?‚6Ã?BIÄ>ýyë>ý2¡>üè£?"f@?K“>¿=Õ=&µ©>¦™>ûaÒ>û#s>úë—?XK}?zyÌ?™l>ªŸn?"”?»Aä>ì’â>f»>m7>¡œ‡>¯>å>¼áO=Á ?]B_?u’§@q–@ÿj>5D>a>Á×õ>´Þ½>žP>ºÖh>Õöµ>òF”>öÏœ>ýØÄ?PÉX??èÉ>ö{‚>öjN>öV}>÷ ¯>ú‡Û>å±<*L>Á8>ŽÊ?†þÜ?rœi?ø±?AA?9àC?(TÂ>’¦Ì>˜€>H[>Nœ>5>>.þ…?Î>Þ£ù;Œ[>:†?u“+?cí>Âá,>ô—•?¤ÕÕ?‹ø„=ÓmÐ?,Ò?1T>õ«ì>êÄ>¸Jü?¹Ñ?ŒB:?Œ@}?²=M?£1{?ïÚ? ü>ÔZ>¢'ÿ>¡˜?Î:/?Ý\,?ÿüÊ?ÒÊ?0X?å˜>  ×>Îo4?[™??œh>ˆ*>¿ñ?w¥ +?2C=`€¨>’6Œ?L.C?WúÚ?4,9?'/º?* +C?[£?™i?w™?µ ?a2u?¡[V?Q)>D²=è(¡=8*f>妸?w´o?·÷?ü?õ?¹ÀA?b +{?Ž?¨•â?¥]æ?¢(~?~o?=lw?1dS?.fU>ã§.>®!þ?m™O?•l‡?‡Á >¤£Q;!]ª>»Sß>ù‰>B>ÝÍ?ÃBr?îÔ²?y·?[š¦>“d>q;¯?‘W?–±M?{>@?z¥@–p@„ä>ú<>è<ÞÁÇ='‡>ûîÚ>á‘=Í¢>»'_?£’e?¬ú¾‰?*Jñ?xýU?IN‡?Ÿ@?Hç°?k?}?… Í?¤gÅ?uJ»?‚6?Só>úÅ×>AV2?'x=?{¢Ä?—LÄ?›À ?¢?«tî?X¹?‚ñQ?CË?5”â?Ëå;?Ò²¤?‹3‹?v0È?ÇV?!®?°øÄ?ž<¨;Äv0=Ë:Æ? 8>×¹c=˜T©?}?½Ž=?–äi?)ó}?Zrå?…í6?Z[?Âq@?’×z?N¦È?8ؾ? âÖ?Üì?²ÎÊ>çîh="—?Aŧ?}GA?«/?0K?,Ì>ý…Ÿ@AǬ@Dó?¾8Z?¸ –?KTj?C[É?=$k?*U>”L?í—?Àxy?ÊØú?ÍÓ?ÎVY?Ï×H?ÝU&?øpg?œW?oœ?Lo¡?~&~?-u>þ5U?Bí…?Zhö>ä&¾>½Ûì>yPª>l;:?“0?©…‰?¹ +?‘¤E?~v+?ˆl|?ø~?ìäâ?0ƒ?‚;ù@™ä@êW?{¶°?£<Ë?ëÆä?œf>Îß?-‹Ú;?ÁÓ@×?»Ï?†°Œ>¥Ü¶>¼÷?€T%?™ƒô?Šõì?†g×?²<?²Dž>þð.?O?~í9?kÇé?&c·?k<>ó;?8k?(ɶ?M¸¢?~ý?‚Y?€Aä?ºã#?êí ?hs¹>© ·?"Òì??óØ?W—*?iƒ™@j‰@<‘ç?r'„?¦ ?s§? +œ?„Â?ŠJ½?Ô ?æê·@'dÇ@ G·>©c—?(©•?Ê@?ºÜ‡?ŸªÁ?ÈÈÍ@­?™£«=’NK>ü?™- @?î?ø;J?òM"?Ì«?¼À@?Žo?~û4?îÎI@ O$@ ­@!É?9¡)? Æy?½ Í?¿©?¶_6?¨{Õ?OEu?hמ?ܹ¶?Æ-?~àD?‹#?«"?“Û‰?:?‘?ó?¿ï?ßx¡@Õ]?¾Ph?~ÀC?6Ø9? ‡ ?D¯?·£F?:-‚>ÍÆÌ?*÷?!h>?ŠÌÆ?“Jµ?sP3?^.í?‘ÿx?Ĩ?¡ŒO?¡2Œ?fì³?ƒ ?ÓCž?¼ °>þl’?@Dî?è]¬?ÌïÚ?dýÁ?(£Ó<׳?7^Ø?üɆ@ @—á@™E?êVL?jˆû=èQî?YnÀ?¸P?æ1n?þ +M?üE€?ðC@ƒ:@0È?“X?¦m?Éññ?è>ºœ"> +e¿>h¼â>M`ÿ?×µc?àØ¢><<=û~Û?Qœ>ýóÍ?ã°?-ë?¯®N?¼bX@LŸ?òÐY?°{Š?®K…?¬7?¨Ýh?ªúž?º’,?È1p?ÁGž?½ÒÅ?Áq‡?Ò54?ËÀè?Äg?£Ð?tªÇ?J²ª?>ëF? \h>´Ë?D”?|¨¯?«Ç2?½nŒ?½fŒ?½^'?1<…>üj¦?1>? é?‘?>|[ +>yxª?„ä?¶¶?_->ÿ Õ?HdF?H¤Ã?›½c?ž·Ö?‘…§?‰h?£­Æ?®®?æ}â?Ö§H?‰i¶?˜¶Ÿ?¼„O?·U7?ª8ø?ÉÂE@Å?Ôõ¯<êÿ²>¤é?Ú>?V'ñ?®ãp?‰´?/!³?–ì$?îq5?Äw?Cf?w #?L£=?‡ ³?¬~¡?+¬?„£?!-æ>yÌY>²À>>Û\|?–Óí?ñU¸?à3C?ÑîÒ?“OÑ?=ó?ƒˆ?¢Y?“"É?…?;?v`]?oP5?íÒ@l9?¾Úñ?zk1?)Žé>ø·3?²2?é]t?ÕnÃ?ÐÏÐ?mÜH?áy?•‰°?®:I?–û)?’Á?ôaÿ@j?îÛ—?Ú{Í?¬ôû?œ‰þ?¢õÙ?™7ÿ?_Éë?KD6?¡Õ?¹L?ì™î@ù@?#?×?€‹?¸ðÁ?çF?úÊž?wg>ùÚ‘?¹RS?öà?¦>©?}|@¶Ó@-y<@®²?ÕŸl?‹Î?=+?ÁŸŸ?þ&F?Ä~?¤2@?„G“?[Ft?Ñh?½ˆ[?ª€Ý?—À?£XH?¯Îh?Ž]í?Wæã?—\?Ë °?ÓÝi?âü’?ÄáÂ?”¡ã?¨¿Ô?ÊÁ¢?Áom?¶`˜?Èm?ïwÍ?ÎÜ?t?S‰ë>ø¦å?4¥?±Äâ?±Ü?µ£Ì?¯Ib?Žõ?šOÈ?ä B?Ùxµ?<'?F¹²? áÈ?Ÿ4Š?¦:Ë?ªiê?œWÝ?˜ˆI?å…·?ð§ß@¨¯@)?µY?•ïÁ@$M@Ì?»5G?x©i?ÁKö?÷Ó…?Ή/?©Èÿ?«Fˆ?¬ËÎ?˜“M?uâk?£ÊX?íü?ÊH²?mH?Qsà?SK?d³@!ùï@#!?Fê ?Dp8?¥pÏ?£Ì]?pá4?m[Ð?š[Ã?RT?­T¥?±±æ?ÚkW?õÄš?ÒE’?°ÏŒ?š³…?Š ´?‰Â:?E ?šiÒ?°å?žzj?k¨R?yÃ3?‘µQ?›w?úSw?ü÷ +?¨aÀ?©Ôð?^®?]ˆ”?iX-?jx¨?ÍÉÂ?é†G?®S?¯‰÷?b3?­Ò>ž´=–Z6>]Dn>émÍ?Ihó?ì¤j?ô!8?ûs¤?öÀ.>èÔœ>è·“?†*N?Ž5ÿ?ðë@µ?Æ!û?¨1B?|~ ?8,ß?µj>ï´U?AÉ?­§Þ?–²?u ?)Œ%?Ñs?ÔhÍ?y®¸?su?pS›?m4Ó?Ê+e?æÐ7?ŸñŽ?hì? Ú=™¿|?ð×? Ø?“†­?eÈf?†8@ê%@Vï?À7Ù?¼Ø>?žK?šS?¶ ?ª–?oï”>äÚ÷?#¢ª?c-K?j'??{;>?bg\?8Pð?;kx?—{?™´¼?¶I[?¹QÍ?Ú?ïñU?Ñ?²ð¿?ˆ a?õb?YDP?á‹u?Ï®#>ãW >ãòz>ÝŒ©>Öðú?œv?¤ì@Œ}@<‹?³B>>âÊe?Lì:?¹—?Óý`@88@›ß?¶Åa?³.@ã¨@ qB?ƤÞ?©¨Š?kï`? Cl?Mø1?…f˜?“¥=?µ¥B?£É?*ñ?0‹F?ô O?þúé?ºçp?©C—? !=£ßÜ?bq?á??¼ +J?_ƒÞ?\1§?Xá#?\Ìâ@áü@·?œÑ?‰¾è>Ñ•=þ¶>š=3>á8?ðë?4ŸX?Bs?O?`UŽ?\X8?U„Ï?Í·U?ÔyU?ˆ>?a³?³€ ?á?î#^@*j?øª˜?Ù?Îö?sM?l>?§+¬?¨ÇÖ?u¾F?eGÍ?\+?NšC? M1?Øá8?¥Ôœ?‡E?DW¨?™rE?—¦ ?•ÙŸ?”ò?‡äS?ˆÿh?¤x?¨ï[?G0¹>á0á?8-&?…`¸?Žã\?¨ïf?~ä?F«E?KÿÆ?<ë ?-°¬?˜1ý?¥4T?Ñ6?áf¸?~ €>êáb?*þ!?Xý¥?Œ[Ë?Ùdå?ÃÖ ?1`c?)ìã?a£ë?a¥{?±™ü?µÎ1?‡?jË/?Ú`>áÉd?¨ à@ù˜?ñ6€?ƒFÞ?’Oœ?Ó°R?ÌoÛ?MÃ_?Që’>à‡=w ¼?å«@ Ù?¤ƒÍ?bâ3 ?NÇ?Æô‹?´|Ç?g™ì?h¨?Á&?¸Ð?_¹`?dØ2>¸ +j>…ié?5žó?bV/?HÔ>âS[>âV€>âTù?yxP@|'?ÿî?àRx?ÆhC;¢<•3À=”S.=ßbÈ?€q?†¬·>ö=> ­>Ɉ>âÓ>͸P>Ï$X>âRÃ>õ‘8>Þ~z>Ž þ>q‹Á=¶ƒ2?‡Ü¥?>S<ýER>§ò>ØÞf>é¯>¼…?0Û?š >›}†>S¾K<ðç°>\Ÿ>khÓ>ã ‹?^P·?3µ>×±X>̺„>Á»è>¡{Û> –¾>; ’=žy:?­øv@…0?7ó?H£&?ÀC?…?U <¢í·< + =ý">Îi?Ñ ?–C<>– ¿>ˤ>þ­]?/Üw?€ö¡?1ÛP>ž«>¬†ª>ºVˆ>']>kÔ>ûÛ)>ûšØ>û_ñ>13œ=‹®?A­!?zy>§¢z>3ý,?D×w?rVÁ?“n†?Œ¡a>Y$>kJ=û•=Äai=<¯=,k™>ó6>øB¿?€—?ŒÍØ>ÙÎS>ĸ”=üÞY>a>œ‚ñ>“È?é>áZ>‘ +R>³øM?“¼ß?“¬Ž>Ç2Û>Ô¸!>â8¬?¼ß?v'?\~‘=S>ÃýP>ÉÛ4?HT?Xå°?uÞÂ?g” ?ñË?`(>/Ïs>>½L>õ·Û?}D?d¦ß?lcÐ?u©m?¤“@O@1—Ø?u¡Ç?ó/?õÌ?Ô\ ?Sž£?IÃ>‚"A> Þ´?Um¾?e2Ø?G˜6?Ýk>®Åí?õÎo?Èlú<½ž=œô>Ô>õÿ?éö?.qL?,€(?]@“?N?÷Öˆ?éä»?’è?Š®p?v`'?cɯ?%eÓ?…˜å@:ý@¿?¸°?%>Ý5(>œQ¢=Ï·Â>“«.?" ï?¼õ>÷¥?)*y?w2î?RÉ?b?RÆû?·Ã?¤Wl?wŽK?@ Í>÷­?60¾?wÊ?œå?Á=ó?TÜ>]q’?h,‘?ºÉ?r®á?!M“?4×Þ?Hg?•{è?¨µ×? +T=ûóÿ>Û_–?ò!?¼âè?óKß?ÊVß?¸Ú>®(Þ=gòØ>®. >ÂŒ?ðÞ¹@½}?/ ü>ùŒë?=’²?0W÷?ƒ†„?^:?,„¬?9z¼?yúì?pôø>Þ¶>ëõ>ú9ê>Ö]<¹h„>·ed?ÕjH?¸C ?z—ú?‚$?“Uý?†o’?B.6?i¸-? !ò?}—??˜lª@Q«?ª°?#?€Gä?¶¼-?õ9;¹À?M:?`K”?pAv?{¸q?Š ?‘>©?_{>Ìšm?áÔI?ûjr?bó?J‘?ôP ?üBú@´I@?‡¼¥?{Ö7?Â?ÑÍ?{]?XfV>ü¥}>ñÑ™>Ë™Ñ?\Œm?êl ?Ötœ?³W÷?³g8?½¿§?€ÏÔ?áb?Yçç?yƒî?…›%? ?gª?[µ ?7S?¶N>ÿ'à?·>ÿ.…>ýˆÑ=ç&Ò=Ï +Ä?›$Ç?¬¿ ?pÙ?/²†?Æí?«^B>ýÖ§>Å68>Ž&?iØ„?•wa?æ.ï@cÖ@¾Í?ÜOö?}8¦?}L?x—?5hq?íå>„£ú=ëΔ>ÿÊN?(Gv?#è?ò>œõÏ>{¥í?c'*?f˜?ƒëÏ?}MÛ?²¿?™¥ô>5â>Þæn?í·¸?ç™þ?¾©ï?¾éŠ?»ÓŽ?{Û¡>Ϻ?R?a·¸?Ž?`?ªíÄ?ƒ¾Ð?K;ý>é3>7m>ä'r?½?Œ½Š?ªV›?cåa?=Æ=ÿ?±5e?µä<à9Œ=Á°h?|w…? Â?ñ€Î?ݪÝ?¦ÐÎ?ŽÓÓ?8I?‡ò>ÿ?5:j?`?ŽÛq?¡ƒ%?á4±@ƒ?‹Ÿ>>˜4ò?Œò ?¿V¦?`¿f? Ý|@üÿ@u8@¿@æ–?ŠË˜? p?"y?ƒáY?¿X«?ÅyÊ?ök~?Ì•ù>áÛ?Ü*r?¿Íp?ƒÒ+?¾ *@1?µxi>›8Ò>Ålª>ÿç?Òdb@p?Ìà†?‡‡Ÿ?-!ì>ÿ#$?a ?í?68›?5,?š!?©n•? 4J>üÞl?ï£?$Æ?ÙÈÿ?Ïg0?}šq?Š6÷?­?¦?­…—?•À˜?“D.?Ë]?•Ã^?¦c ?¯aÎ?·¬Â?ñ»â@ì?Ô‰?~Õq?1˜Ö>þÍá?Þò¾@‹?Ê7P?¢Â?q|×?X é?±?¿Ž?x¨’?rø? £?xRY?¶yd?©ÁC>·á>þ¾ä?ìe¥?Ø‹—?Oï +?U?‡þq?SÜ¿>DV‡>Ê£š?~%?®a?…?ŒAÛ?•å‹?ÌÕõ?þEt?ÝïÆ?»%N?“–&?~,?S°²?O?±N?×£"?ÈñA?Äå"?€×‰?l¡?µc²?¾sç?6NS?¶?y?}X>þS? +Õª?¶^;?´”—?}¯Ù?j7¶>ýŸG?êÐ?ç:?(/›?C*?€”î?¾¢?Í|?éIj?¿Ö ?}M?…††?•c ?º©º?Ü2Ô?–Nó?6Î>dÅ?|óS?Ùéå?]u>Ÿz?®?ó¹æ? qh?|»Û?ª?¼ +º?½u@?½mó?·˜j?²¸?| ?iCX?Ïæj?ÓB;?‘¥ ?‡ÒB?¿R4?¸;”>üc?ù=?¡ G?¡Ýâ?»îá?¿Šj@u?í1Æ? S?d±>?õa¶?ÄN@>n:ì? „?ÝJŸ?³2h?lÅ>Òá2<¿:ê>÷˜¶?¼W?¤Þ£?u¥Q?’}¬?¼.l?ÊÐa?ÛWÌ?º¬{?š [?tEH?!³1?…Ï‹?¸M¾?«)ð?¡áøÊ{?j;?ð'?¯e?ºbU?çÀ|?ò'î?µª?¥yE?ˆct?x#?Ï£©?ñªz?Çv˜?ºÁõ?ÍnÍ?̱?ûƒ@ +éû?‡ý(?#4K?è?¹Ze?–pr?ˆ-þ>Îör>ª4?•Ùÿ?ÄRÙ@)®@σ?®¹ê?vY?§iœ?»/?MÊ.? +b?ÉrE@^s?üîÁ?õ¤ ?¤E—?uw?i¾?Œ Î?U$?(½ ?:½Þ??ÿ]?¤Ò?Õb¾@ Ç—@$:”@ ¸œ?ô`?Óæ]?·$Ã?Õô[?ôø?Öö?¶ÝŽ?Àýä?Òr?ìá#@uŒ?ì¨?­[ ?³Nÿ?·„ý?ÊTc?ò ñ@`Ž@Š­?å#y?~f?_1P?è¯Ú?É¢™?§¶?*þÌ?™o?’à²>ñ§:?›Ÿ?µç?´:š?qT±?q%µ?-Û4?6©g?Ëq2?Ö(I@Öå@QÛ@^@ Ñ@ +·@ “ú@R;@ `?›92?".v?X=?~LÒ?{Œ?wÈ^?˜»Ä?¶˜`?šØÁ?o[?Ia=>ùÖq?:®5?¦òÈ?•£?Q}&?c¨'?m÷”?õ@^±@ò"@"Ë@?»ª?±è„?±ÕÇ?±¾¶?ÑŽ?ÑÍç?ºÈÑ?»®t?̈‰?Ôu?ÚVï?Ú¹ ?­?w–#?‚™5?„}Ñ?“ê®?ÈÓ²?·­p?– ?¼Ð?uç?r¦ù=®&&<Ó +3?Q£M?j‰z?¥Í?²¼?Ö¬õ?äFé?øG5@q˜?õ€ð?è–F?ŸH„>é~™?PLx?×U?Ñè?ÃÇœ?Ì`ë@Î?þaó?näç?h”?ð¬B@ñl?¹Þ?¡­?³î ?¿Z?·ðU?­×?´~?¼i?§>æ?ge­?p€ß?Œm¬?ˆ m?¢Î´?¥És?®£ž?­¹@j´@ Ù?¯›?f_ ?\ÉË?NÓX? `ü>U[?“Ê?Î+?ˈ?Ù4?ÝÕe?ÔK?Ñå¤?ÝÖg?Úè“@=‰@% ?Û,5?ï?¥`?Åÿ?Á0×?Ä:?ÀîÙ?†m?}áK?dNµ?d8f?×k?ä ?wi¨?$Þ=?›#?Ó¯Ž?Ùݽ?ß"?Ñ„H>f0Ã?€à?z^ˆ?¢Š?©P?μq?á”ô?á  +?áŸÔ?߉•?ÙŽ?Ö;?Òç¿?Ñ?ö©a?ùó_?¥‚ß?™lç?B½]?’&?P[ª?x¾Q?]Ó?7áR?-³è?#ˆ}?&K?‘ 3?’¾b?ÿd2@^,?‚{?B™ƒ?ªŽ?ÕPƒ?¼~? ~í? 5˜?Ÿ#+?¬zç?ßÁÕ?àW^?¨Ü?¨ÔÎ@9¢@ 5ñ?L«ú=û}>Þ€?5,o?¥N{@B?èÙ?¨×£?¨Û?¨Ý?¨Þ§?ç ?â¬À?ŸÊB?–±ô?V:ó?æ‡?: ‡?ii ?gí?£4?…™>áS5?Š$@½µ@¨²?…ñ?dâp>â{F?er˜?bÊÑ?b?då?e ?b%ø?b2??b1Î?+§}>â>6?$"?Y¾í?oµ?†î?ŠaT?¡h!H>ÉX>ýw)?&åF?'‰g?˜¾?‡?l">ªaŠ<íü=ùe‘>ã#Ç? ‹0?R<³?Hëã??–è?66í?&WÂ?/ø?=T¦?9Kº>­hB>I¦ß>b[>T!¿=ÎÝ«=VIß>g™=å¢j=¾Sr=–ãÚ=^–±= ²<È}=JÈ4<¶àÀ>˜ §?bE?+O>৲>×€? ª?šuC?vò•>Ý×í>¿&-><4Ë>n¿> Ì?ç‘£@F…ä?qÚ…?x…?E¦ ? ÕW?VA=Ÿ$K<Žú÷>•Gö?ä E?Ç·±?œuq?~ï>ª+§>ˆ^_>bRO>~@o>®>ztš>)> É+=áƒ>»)=ám>¸BÖ>ý¥ƒ>û–L>û\=>0>9À`>‘ÏÊ?+f?Ž¤?pçƒ?vxÞ?Š—?›~Ü?5ßñ?ŠI>Ì×>Ò61>ßÙé>í{å?tàˆ?u‚?°p? Ž=>÷¿­>ñ„<š§Ê>÷A3?‡ê?ñÌÄ?Õ4<Ê/„>·>¼O>š%=¨Ž =H¦>ýBç>íS]<7Âœ=ôp‘>>‘µ>õúP?³Ç?›§0?ˆ¶>OL>GUs>©¬>¶rC>Ãê·>Ö!r>õº? c?u´E?gÕ«?5Î?pÐë?¬£È?¡ð°?†¶Å?‹¸?C«*?HY=?q¿Ò?Dúx>8Mœ>­+g?—Ë?ùò=›ø>Ô?òÖ ?Ã(Ç=Ù\L>öø?+5ó?£ÕÞ?‰ +ï>ö4#? +µf??8“?YšÓ?ŽïÕ?‰y:?Y×?‡k?À˜ñ?–áX>òF>÷ì)?ê?-Λ?dS?3éô>·Œ²?Œ?J+ð?)D>÷(¼?+φ?wE€?‚®]?’9è?;#k=ÑÏ4>ä·?j~À?;•>ùoÞ>‚•„=i¤È?œ–?†,?1ß–>µ@³?K +?Yå?0w-?XÜ>¡Ò˜>NÏà?zÂ?¾G??ÿ´>Å'I?@}¡?lS?zÎÐ?yÁÍ?r‡? *·>ì +è>ÐÏÍ>+š>zß?¡¿¾?ÁÇT?>ù¡“?—+^? ÁW?¨>ú.:>‡»ç>tÕø?OÅ1?KÈÑ=†Ü=ŸK->úN‰>÷ô×>ã}?'{?Èe? ?>“¦½?5pÔ?É-A?”È{>ù: ? H•?ó,?j Í?©af?ÒI?@®œ?ij¦?{\,?7!>ýI‡?Š¶M?²™È?P'˜?> YG>~7?ê6?*3y>»þ>Š§?ŒvÚ?¬òà?B ?*—í?¬C+?¼ˆ˜?Õo?ÛW?¶ˆ?±­1?|‹?e3Ù?Öm?Xŵ?â‘?«®ð>üÒ‡?e,b?ÒÖ8?Æ…?µ*?¬Ã4?Ÿç?Qèä>¾½?¶å?Çß?¨Gr?šÀ>ð¤=¶¾?íqð@>åà<è¨L?œh`?ªï¥?™g?ˆ?XGÈ?Oýj?rC?3ð‘?Üî›?ÇyÍ?4ñì?3Ø>¨›z?EÆ?îÝÿ?ÂPä?k‡?{b +?‚{???ÿí>ÿ\X?H€ ?~D&?½ïa?Û·×?G ÷>¸ðê>êÞ >þj>Øû>çÀÊ?7¼x?8ÿV? °b?¨‹?Ö?ß[ +@ aV@V?ˆž?z¿ï?$=I?'µ‹?‚?‚IÌ?…!Ñ?’ÖH?œ×D?¢³?®°?‡£9?ZF»?Fº?8i?4>þì“?Dl?;>>r)!>Ò?™H?²*Õ=×ZL9ùV˜?|±z? J? q?…„n?»‹à?»}È?ÈŽ5?®(¿?:gÉ?ˆíî?ÖÈÁ?Š÷>LÞ¬>ãß6?= ú?C ?Hrá?MÙ?S:‘?@]?<Ê~?‘d?¨èf?»F?¿eQ?¿dp?¿fA?†PO?†Š?¹†?µì“?5½?…¿’?¿g)?¿fÊ?¿h?Šb>—9m? :{?žÐ‡?³eB?ȼs?™¦?RÇŽ?ju®?/j?:&Å>ÿ.­?Ï!@¹Ñ@?ûàž?ÿ‰?ûÍô?ÇÙD?¹(Ó?€5T?h˜¨>‹>‚„°?—ŽX?—ˆº?Ç’X?· +Ê?œgó?•ù?;X?*C>ÿ w?-ú?—R=?–e ?’*c?jYü>þûŽ?:?~ôä??#Z?k®@ »H@YSÏ@ú–?°Þ\?xiÏ?_Tþ?ˆ‘€?:ø?§ Ô?©{e?™Mñ?™ËÛ?‡¦5?€±ê?H;?ab§?åSc?àHŸ?“õr?’Æ°?Ÿ$Ä?³ž^?ó^w?âû§?±Û¢?ðJÆ@;(.?ðŸb<$Pà=8ž0=¦e¨>¦0?Ô£?1˜C?U­G?¨ k?Ѻr?ž(r?~>@?k?Tš„?s´v?z¤?ªÙï?³Ç­>Á¡ú>.Û-?àM?òš¤?“¡R?‹ÚÆ?}î!?zr? Z%?N >ýÐé?²Ó?}Â?|Œj?tµ?V1×>ý¢ú>ýšD>ý’˜? (?Fˆj?ŽcÂ?Ô[æ?Â} ?£qG?£ç)? ©4?¼hL?áU?Ï b?½âs?Ì9?Ñ~?~^F?8¸? V?§x?¾†Ê?Ä‘0?–±B?ƒÕ?w.>üõ°@9¥š@V }@ 1@<Þ?¿Ù?±œÝ?É<Ÿ?Í'r?‘›ß?’%@?ªá?¯…,?­ó½?¥ñ¡?œ+S?¡·?ÂY•?ÁO?¤$?”Ï>ùþ?X‚Ô@Nö@ h¿?—Eî?ÆÏñ@+@VZ?¼2?’‰>÷ô>û??`¯?b”ê?·vz?Ïh@?ò56@(C@aŽ\@'ý?«ŠU?jé>ú£?ž¡q?ú†j@y@v?£öí?<Ûr?’Ê?²áw?ñ±O@ˆ»?·åW?ST’?W ­?ZÁ=?À®?íçH?–vÑ?Y~Ž?i P?pÚ†?Íwˆ?÷z™?jñ?}l@I¯@8jl?â5û?©ø8?­Ì#?®‹P?Jã>»¥1?`¨b?‹)@?ß¿K?ñ»Û?8͹>ÓËÁ?Ðû¢?ùÞÈ?—8„?wÚú?âÌ$@©?› ?w… ?š‰?žÞr?™ßê?T¼?ª\ä?®Ëe?• È?‰dS@ú^@6ˆ?§vK?v%?vw×?vhu?Ô¡c?ñl†?”þ?e’•?öà”@Ö3@Ä\?õ³à?Ÿ¨?u†Â?YÙ??I|>Á‡ù>J™>²!>å R?ŠË#?·š˜?è#@@ÕH?è]i?Ǽs?¨I€?‘=M?Ò@Øz?ÓËQ?ª¥ý?Qc?Si?.·u?',? vð?Ê7?‡~Ó?óÊ?š„d=ƒŠà?8 ?ø ô?á³?¤±ž?Žù!?@H5?M}?SîÓ?6`>’ª]?í ?×î?Õgç?üX?ïê‡?0™/?5lB?/XŸ?$öç?–cü?œS›@{_@ Ö ?¡’¢?›?Ãé™?Òáá@|*@ "›?ÈÂQ?«Œ¿?±5â?³¤ô?µs,?µjS@Å@3Rx?úÖI?nçl? Ël?ß-ˆ?ÍôC?²Ø?ºV&?Ìh?É| ?Ðüç?Ƚb?«ÇI?¶eÀ@)8Œ@*°…?hA?\v?ªá>?±Ëæ@°>@#Æ?«%‘?XÁÞ?¦¨N?ÆÑø?Úxã?ð !?‡Ü=ôÐw>õŒd?Œ1Ä?€vW?,Ž9?RJ5?¼ù?¹s_?¶Mú?´¯®?ê¢G?êÏ(?³6,?­·S?Ý,•?å£@` @1¾?ÃÙ?—Ú?ÌŒã?ø)?¦À>é?3ž6?š?“£?R…¶?m‘ä?ÙPP?ã”?‘÷¨?q=?Þ“š?èmÿ?ƒïe?H9?‡ˆF?—áï?´“@?Ë E?Êb»?Ð >?µSÐ?gu?=K@"Å@—>üN(>ðp?ÝSŠ?æËb?¹?±¹^@ ÕS@!ú)@YH?ÕPÎ?És¤?¸ +ãß?(òN?c¦ÿ?¬C´@ bŸ@Eÿ?Û„R?ÖDì?±–˜?³|?qo€?c!î?²@ß?Å#ß?}Vð?û?„ªY?Í:?±Æ??bª£?4?á?ä;?륳?ò™?œn?†7c?F?—ÝØ?Ç3l?ð¾Ö?Ö:P?©[?¥’—?™JÖ?ŸWf?ݶ?Þ¯ï?¶P¡?ª3C?€2?c•`?“Ï?¬õ%?„œ%?À ?m•·?ጣ?ضw?‹þB?Pj>⊧>ß’ø?KAr?aaä?¼vÚ?æöÐ?ÕëO?Äð?ÂØF?Á%{?º•i?š%_?–”’?½P¼?Áþr?7‘±?âí?‡¹Ç?¨â,?‹®¦?a'î?<Ǫ>î“?Ê^?¨Úí?ºJÛ@v®Q@qd™?z(4?;ͦ?¥¼Ô?´Äd?a¾=êúŽ?P™õ?ßÅ?ÊÉ?†ƒé?ˆWˆ?Š,=?Œ@¸=@P²?‹f8?F¸È?qø?‚t8?<—>áG>ôsÿ?ä’?Œø>ÇMå>ú!½?©?©å@ ðÝ@ Ê?À#À?¬™Y?‰J!?p9u?t%ô?x½?³ñ°@pÐ?×/Â>á±ê?öÃ?œ|:?–‚?ãLf?ÞX?c$‘?FÈ?pn'?‚Ûs?„;¿?€*Â?fFz?KÍ?9U>ýÎ[>û-|?¹Ú>÷Ún?©“e?©hƒ? R>òd?³$?Ñ•l?’=?b:Æ?RÎW?@€ä?<-‡?7Øc?y≯ä>ñK?&b0?!|ú?6?:x?9~¨?/!ÿ>ÄGÈ>ƒØ?]@Þ?œá¨?¡nh?¦™?© ?©Äí?§"Ž?£Ÿ?‚Yx>9§>_A?bMî?bH?A*¶?:½ì? ðÜ?"Þ?£€>Ú;>›Iª>ˆVÇ>—Ív>Œ‘…>¸ôu? +M?D>áÉq>ä’Ÿ>ìÚ$>ÛI_?DÝ?K=>ç}D>¶ã>=ÛX8=§tþ>&>:½>OÖ>oþ<ÆÇ<ð>o%r>Éþ*?Eæ?s2½?6º=ÿR=û@ÅC@LžM?Žy—>¢(‰=75>Íiß>ïÌ +?y‹•?fÄN=ü­K?:GA?@Ö?!t¸?S¢æ?Øk?$è >„5ß>ýgâ>Û–->ÎÒ?Fõ3?|P?{U?zû,?t¦x?mqý>]ïg?¨&Õ?ÂÝ?TGä?OÖ=½7×?F7q?]7Æ=7Êë:…˜Þ?¸A?µp?hÍÌ?^ˆÏ>÷¸x>ô‰ð>¢jŠ>šm#>÷Fœ?¼@Ž—?üð2=–Á?iÎÈ?TŽÇ=í˜ì?mYR?d<?I'L?;z?-ý?QP>öP?Ü?=AÜ?CÞ+>õâº>ϸ<b=›>ºz?Ì?p>?uÀd?sÓº?fPé?h.,?‰Hô?…Ó¬?K{=?i÷`?¾?¦gî?O!Í?M“i>õÎà?‘}? £? n¥>õà“?-¤?¶×ì?œ˜ƒ>çqÈ>¨-=í¡†>öï?$U±?’®¸?‡¼“†ñ>¸ê>öká?e ?0á?eï?ã)‘?£8â9¨>, .>öÏ6?IÝ2?­?ewô> Î>ïÕÎ?wo?yä¸?sQw?n1µ?wW?t€¶?`§Ú?*Gä>÷•"?™C? +Á–?;T ?w?”q1?¦nÈ?`Æ>?~?<“È?Q +Œ?J—N?D"(?:dŸ?=oð?ÀÕ>ø‘F>ÄÃ>¶Šˆ=êûÂ>Ùê&? +ÚY?œÇ?º_ã?´Ã"?­ä?y3@?_k>>j?ž/?0}‰?|‹L?uhÞ?DÙ`?Jh?&Ý…?"B6?z?mJJ>:;_>Jå_?t¶?†T‹?·k¼?›Ñ–>ú‚(?7Ó?»ø#?ˆ±˜?¹³?×Æ>?‹ô'=¢¸Ç>3Øz>ë¶&?Z×7?;¤t?t?BH?t5Q?z(ë?zã‹?2¾i?nG?²3O?Ö‹>ÙzX?d­?‹/J?O[?=ÑS?afß?M†ã?L“\?UG > ‡²>iU?'.Ì?&l¯?‚Vë?~¬¡?|Ÿ¹?aü)>ü¸&>á%>º%6>íÖu>üç)?Åá?^B?q²?}Ð?È>~@R¾?Âò?“Å?ÄE?YG“>Ŧo>G?/o?qSN?{ôÉ?€iX?s¿ð?d\ý>Žvx>“Á?‹4¬?̉?}ËÁ?v«Ù?5m¤?:o9?G2õ?`™?~?ryu?Y'Ò?ÜÁ?¥{?ƒS¨? lÝ?vª?½Ì?¾]?¹ÎË?•i>?~YR?ŽGz?›xæ?xð?–ê'?#!ÿ>þ}?E"k?@sE?AŒÃ?Iø~?¬Ø`?¥¦X?[GŽ?mi?£6ß?œÍ?¬X?@\çŸ@|í='‡¨=®¦„>¾?iV•?ðë‡?î•?ëOÐ?ÏÚ?³:Ï?|ÆŽ?AC(?>·>þþÐ?v±?“Ö*?|¡…?`på?”œœ?”½[=ᥦ=oxû?ÝU?qB?·?‰$&?¿[Ÿ?ÖÅš@Âí?Ôõ¸> l9>à!/?ƒ¬Â?C?×>Žö-?=†¶?šÈÜ?ƒÒo?cV•?X“ß?MÐœ>­—›=âí>ÈÐ/>ÿB¼?¦8”?¿sÁ?¿sF?¿u>‚#=šúX?†a4?…Ž?í"?.")?‘‹8?¤ˆy?è!Š?²a>c>ÌÈ€?BÑc?Ùîá@K÷„@â?'WW?Q§ ?A¦?Qt©?%ÖQ?šW–?ÃÜE?˜µ?È?$ ?S¤>k’¸>LÐ? éí?ÌW>Æ·Ÿ>¶nÒ?”}?š&k?Î ?ÆI ?=ð ?Ng–?!§?_E>ÿˆ?$±+?i­Ñ?+žÿ>˜þÑ>Ø ¥?×Æ?IÚœ? ?/?~©+?Ñ[@V?µQ{?ˆä±?(Ýç>þî²??%œÓ?Qï?N3>Ýjà>åY>?uéy?p99‹²=²¢ª?§ñ#?ªJ?¬¤L?£ž¤?Qs¨?e_ß?­ñ?Žww>íf–?'Q#?~KÆ?ÉÃ*@¥?»HP>àËŽ?b˜m?¦Ãc?†¨Z?]#ç?÷)>þ¨(?XBe?~QÝ?¬½v?¾³ó?nFK?Q#?£oâ?µ¥è?œÄd?Ž7[@ ¹@š?©•›?¨-@?mÛ?s4=?ƒ ?s-á>ÿ?ø?(Jž?»¼Î?”‹Ü=á >¯˜‹?fà¾?€d??ž­³?ŠaA?USf?Sá??`’Â?•d?¾v?­™R?¢†Â?´]?½ýÈ?½õe?½ïö?ÌÓ8?ÚE`?è…¶?ïæb?yS?uM?¾–è?î©q?úŦ?üàu?Bú>üÌ¢@S"@#”0?ÎÏ>Ã…?…mO?Œ.H@#8…@!“?|†W?x;y?.~&?YöÆ@ ó@šø?»’?ª4Ž?F±y?]u?”Ÿñ?—"?ªLn? Õ×?{Æ?’ùÄ?ÑH½?¿@*?„fÍ?”Ѐ?¹ôÓ?n8<à>J,Ë>ûDe?7.W?„šä?Ò´Z@q@øŸ@D@ þ?è%c?q<‚>4H ?Thù?²E?ìû¯@ WŠ?ªðW?6ZL?Šƒ?¯ùÝ?‡š ?PÙ×?0y=?L)?D(Ô?M.q?‡Y(?žxÏ>ïY©=»”Û>Òm?Ah>ýŸÎ>ùÈB?˜ñÉ?´žÚ@M°˜@r:¾@Å?º°ç?º¥š?º—ß?mý>±i ?zÃÛ?ù?¶iH?ÇTÕ?š`/?…™z?«¡ò?¾ø·?Š‡?wíØ?®YÀ?¹Ïi?‡DŒ?w—{?Äp>?Ø—Ö?M?_º?cÀz?w!#?ßt£?öôM@Uö@ T? \+?v¡H?ª‹:?µWƒ>Þž—>_°>øåÛ?õ?°Ù•?Ô?ï?©oå?ˆ?ô?ÛÒþ?ï—4?ïd…?ñžŽ?Òê²?®ØÎ?²ei?º‘??”º?!×+?Ž¤p@µ@Hî?î?âÒ?žnT?¡ I?ànÃ?â¼5>ñfþ>íVû?á$“?êÌþ?ðÇ?õpü?¯óÍ?›IÏ?¨Åñ?³$?_•?lBS?>D?Ñù>³…=œï?'7/?äæª?ôf@€P@ö"@l~@ ß°?kóh?q\ç?®¾ ?¯þk?2µG?#ªí?ªl‡?ÅAÚ?×n?j +Ô?[a†?Z3r?»‰?­Ú\?£Kp?˜î?™;¹?›=Ð?‘©·?iqb?g†?®—[?®…Ò?Îí×?ÒñÐ?ƒ¬1?m”÷?ÈN?èé?é[¾?ð‚?ï?†j?…úù?†g„?`Ÿ“>Ú¹©? ó.?­—7?­K%?æ q?æÚ?0 ´?;)?*D?C|?—Ïï?·Í×?¹C?º¹?³y?¦ƒS?£^ð?‡v?™—@2ro@4ªb?ÚC—?Þ÷ˆ?å-m?׃_?í£?üK@í\@÷É?ìóç?¶”Ý?š9?*? >¹¶>¿8l?`ø?d,Ý@$·:@?ð4?©Û>çx>ã×Ì>åÑŒ?‘;@D®?÷ +H?~zD?Š%ç?Ù‚J?×å?Öâ?Ç0?¢ò?¼ ~?<‰>§2ÿ?ÕA?@ƒ¿?i¨ü?ŽÎ?ƒ–?6€³?E?¸?ŸT„?œD?§2®?©Ë?Sñn?&{y?»À8@†ž?ãµ{?¡"í?ú?6ò?Y`?¥ž4?¨µ @Wsô@a<£?” À>ï>G?6G? ?ÊÂ>á©Š>ÕÉØ>Ô¢è? »?ÀMÿ?¼ï+>žw>Šß„?D\§?ao±?¹B?áØe?Ö%þ?ÈÏk?Ê€?Ì6´?Ê'ˆ?½é³?¾¶â?DÊ?H8Ü?‹ÃÀ?‹Á}?¤ll?®{²?JF?inñ?‡þ$?¨ãÊ?¨ºï?¨å3?ªÏ¸?É6?ÓàV?_ÏÝ?K¼è?çý·@˜\?•V±?…@?mõ?¨ëÁ?vì>ɇ*?)–Á?Þt†?Ó«?¢¸®?«ø?¼ç×?»3x?¹U?·~;?ÀO²?Ëè‡?·ÔË?›'??m=l=—<£>L¸’?©??©ê>ù¾Ù? ¥?šG/?©*M?ÀK?a—¡?‹ƒ>kZâ?.’S?¨È1?¿êð?áˆ/?Ó¹î?ÃñÛ?Å°É?ê×´?ózŠ?ªs>ž3Ž>þ˜-?]¿?‰*ï?µN?u•ô>âÔ?ɵ?[j?…æß?âí?Úœ?dö|?i3ƒ=Ì%T=x/è?ZÎ ?‰&á?tñ?bBÜ?bG?bO?EEq?#'-?*fÙ?#?d?8ï?4Êl?2JB>˜ôe>¡åÙ?‡êR?’†¶?— x?›û?5QN>챦>ä/Â>âhõ?&¡3?gÈÃ?IOê?~¦? +Iß>²i0>¢D>…by>˜‡ü?² ? ¥è>ï},>â0Ë? &-?3¼>‚• >¬ü ?, ?>^?P½â?7:ç>áÈ +?Jä?a¦i?a,d?XÆ­?N¯?™a?;>.=ìÈ=ô¢>Q¦>y’–=ódè=‚£>&"p=á@è<)çK=£zï=r}:ïË>½Ñá>ß>Ù*»>Î;m>E±=˜xš>⹬?^ˆ?^J0?R:ê? ¤ž?å «@9—X?ÐÁ­?“êá>€ÌÙ=¨’ö;@ü=¦‚>í@>·ü=ÂqÃ>¬ãè?YfÁ?9Ha?ß¼?Î>rq>UÊ>9<´>ÙCµ?û>snU?Þ?x~?#íÉ?H? ßj?¿,>ƒG? MA?±?£×j?¹½Ä?ÉH3>:¼´>Œ?/—¶?)| =™©3= +îq1ÿÃ?}Ý? jb?—— ?ŠÑK>÷K?‰­?9¼ñ?.§?\r?¢ƒ> +¦™=Þ“è=§íË=ï¸?¥ >× <6°=æãJ>fŒà?Ô?+¡”?v$‘?z!†?wÎ?V`>YœB>STn>¤,´>‘`»=˜ë>Ú»? Â]?uÐv?†T?´“q?œ8”?ÞÚ?½`>‰§ä>æÉ ?uɤ?pò·?tø?T$>zÖâ?ƒ@‹?iˆA?`]Ì?Mm(>õï‰>»Ž;ñëÐ>+‘>ö +2>·šÄ>úy>ö-^?n>?v=[?vGN?vS»?.å0>j<¢?8UÅ?J©Â?ƒðv?.|n>¦q«?oÌÑ??°Ã>ößï>Ó>³^>ÅÌ> ê³?, +?Ah?Ž‘?ƒCï?rdS?NQT?‹·œ?¿ŒÂ?‘µå?Ÿg?x»¯?·ÛÏ?¹¦?·µ?·{µ?ºù?i©à>ø!?¬\œ?ó©?‘Ù(?6 ²?^^Ž?fú©?Z €?M?„„>¤žQ>šêï>gã„?ˆCJ?¸Ä?Š¬‘?~âb?*ïô?!ò>Œ(->|ƒÉ? àª? [?AòW?@N±?˜ðÿ? T?`~G?Oî?V~œ?aÐÂ?“¾°?b¥?±»à?ŸÂn9•=²=ïµ>€L#>ú•Ä?$Ñ?œ?~q?Œ…?uß'?܉¦?‘BŽ>Pò>ÆïY?%l?À­?{ó?It¥?{gÀ?;èÖ?¬>üT©?!À?±J3?àýð?ÍüW?Ì?&eÓ>¦Fí?Žò?™¯|?Cß?Šj?Õ*·?åM¾>ÆQÕ>¼´?—7?¥ô?¦ÒE?±Ñ?¾Òñ?¦³ì?€š?;¸C?­*‘?£•H?’œ{?°s?”Éá?Ž´u?ˆ¢R?¨?}(?Îh@ú7?ñva?½ûÞ?¿É(?˦U?¥Ï?‹‹>gX;—£;¹S€=>ŽD?_ÇÌ?}´ž?˜‘è?‘`,?}&s?y G?.Í}?.¯Þ>ýòÙ>æ±D>]M#>–??'ã?-ÆÌ?¿Å?!Óí?&ç?;«Ý?möã?yª»?~v`?Mµ?„=»?@ ??^/y?~w¢?ƒ¹?Hž?à>þ‘…?3sJ?LÐ…?k?V†?é>ò?à-ð>Â%Ë?&-@Ðœ?÷¥Ë=m%Œ>Wh?Ä?ŒO?êE?ˆÁ­?Š÷u@?ý`?Õ^0?Áˆ|?·¨?}ëù?B?Ù?Ã÷>ÿ&>ÿ'>ÿ8?ªh%?Èf?ç†È?îÞ‹?&±~?~?¿¬?°Òb?ýø?"-n?ˆML?„7‚?pôñ?…zv?„˜?L"‘>ÿDµ?^8?£Ê?¯¡X?ÇwI?Å-?¿y¶?Øw…?áÇ?ŒüG?F`»?(¢:?r˜?¥aŠ?½AQ?¿€>?¿ƒ$?sCÄ?]o5>¿>ƒëÁ?aN?E>¢EË?$÷ß?Ù +É?±ËÍ?\?S?7sa?½@2 +@>o?‘01?žQ6?¤Ãa?·ë¦?ƹ5?èªç?ý8s@-Õ²@=ùÚ?³C>ÿK??O?SÞH>'éÂ=þ¡ã>ûý?Ã%?.y?;! +?;ô?…JÒ?šÄË?ˆÔØ?L†ð?:ŒÌ>ÿ.Ú?i«˜?àT?äê@?ÞÒA?Â~¾?®£o?–6û?|)”?¤W??½Xj?æš{?ÿ ¢?Ì ÷?³–Å?¦t?ž8†?™b?”î>ÕBî>–kS?…¼i?ƒDp?šM/?‘&=?÷?=Ì?”Uz?Œ?^l™?ŒlI?óJR?Å G>þ¹Þ>À‚‘=†s¾>E”?Qœ? —?']ç?ýÚ>þ’)@A@Zè»?ùé„?~|‰?3[> Á2?kÍ?7'd?6ð×?C#?ö>Ô2I?#ÄÜ?+!#@d@ _æ? ö>þÛþ?“?¢?I:?&³Š?¼¡0?ÇË?ün +?ß±Ü?ƒÂ¥?©“@¢e?¿¦->YV+>ÓÅË?F¢…?ª?§òN?sÀâ>ý•á?‹ÛÊ?Þ˜ ?š¸‡?7¨?i¤?ŽXç?…yc?ƒFÍ?nGV?^žÌ?¦?²Ð? {‰?“e?)kX?Ãà?ØÅ„?üó§@—‘@ÐQ?ŸÀ°?•¹ð? ñ?™Ãì?®]Ž?­ía@5)@Ô?|¬?xô£?GÌÚ?Qý)?¶>€?½¼Ì?¦Z™?»¡?êþž?˃?“þ8?šÜ¼?žôE?Š®Ž?Iöà?#K>K_P?$t?Å·Ô?§U!?y:p?ÉHM@åó?Åço>ûUá?z+?î©?Ö°6@5Îr@$Ó@hË?É> ?z^y?M"?+?N?z«Ó?uí¹?_¸?Úm?zqì?i“?Wªä?Ÿ—Í?»¦ ?Ó+?za?¹?Ø/?1þ2>oZ?<l?r6S?©¼º?ºîÚ@ ö @´à?qÁ¾?Ô?Qþ?zU\?±´?º¿¹?“öU?Œ¿È?•,G?’œO?²¶$?ºn?¥S$?Ÿ¦?s´¦?v€3>Á-€>‰œ?]º¦Šä?š:*?¶ÏZ?¸W—?¸èí?Å>Ñ¥¿?I?!?\êº?ƒ’w?‹Š@€Œ@U=?ŸõH?‚>??Ò$ê?ìÑU@ +É’@ Jã?åI?Óýv?Å)?Ãyø?ÖÇã?ßkô?œ~b?t“?„ÃÉ?ˆ¿(?Âì0?é|?ŽcJ?U›?£¹í?êÙÊ?®ún?s¤ÿ?·ï6?ó>ê?õÿ?ýZ?®)þ?À#?7²ö?_'Î?~qN? «n?‡Ï?ú%?,?4?JýÐ?™@žË@º?=£Ú?C¡^?q£Ž?q‡?qlb?v"?‘-Ü?Ö?Ÿo“? þe?´Ö?´ˆO@'l×@-½á@N¥¥@W%Þ@.¯@2y?Ñ~?·è@í`@Ç·@PJ@n’@I?~í8?‘jê?tû?W¼?3,¥?ÉJ?`O»?¹eŠ?³kí?®"à?°_o?°wî?¥m³>õ"ï>þn³?uð1?xö„?¨„>ê„Ç?À÷Æ?Ý Ñ?‘×?j?Ϊ±?þ€?ÈÂa?¡2?·MÃ?Ð ?ÌÍy?Ëk?ãwd@J @‹Ý?®¤ ?®Ç?…õ2?ˆNt>Œo-=ÿ›·?šçœ?Î\/?‡¯\?.òT?–¸ß?ÚC¸?óãI@ +²?щ>?ç +í?âÛü?rÛ ?xÞ§?”®>渴?ªGW?Ƹ§?sk–?)Û"?[žØ?ƒÑd?ºõQ@íp?úd6?Ú¾V?Í«i?¡%?§/.?ixá?V¿?ö¶Ð@ ?Ó?àª5?ËÚ%?¼; ?°e?íA‘@-@ m¯?¶½ž?:>v=݆?c´?d;ï?aÄ?cL@ +“©@*`®?°ûÂ>ãÓ+?ZnÀ?·uØ?Ádì?Иº?Ê#Ž?·5 ?¸À?Œ´Ÿ?‡µŸ?£s?ªYk?tÚ>„¿Œ¡>îÚo?DÇ?ªð?›·Â?;m?7:?º1o?½\Š?»äÏ?¹.µ?C|>ò"”?A?ÐŽ8?«ŸÁ?m_?‘£??ÝtŽ?ËåÒ>â‹>â¯Ü?¬8g?¸n +?$Í«>áÛ?¶??óÌÙ?ÀÂù?l#?Vš%> ›!?7@?á› ?ß’W?3©Ú?08ž?Y³d?a~k?ÐlI?óäÈ?¼3??“ˆÀ?œáõ?© ?£ÕZ?ó+?†§p?b +?l ?ñ±@Þ?è·¿?ÞÔ`?ßÜ^?áCè?ÈwD?¨îÀ?·ï:?Ü>%?Í¢/?rZŽ?uñV?Çwr?ÅhO?ÆÝ ?ËüJ?oç?aCK?4/1?±+>øþ>_?°z@«ù@²œ>$m>8{?Íߎ?á\Z?Ûé?¿Ûâ?—3U?p6S?F×? ¥i?C;Ÿ?©?˜?Ÿš`?bãM?q? @ÞÙ@ m?¸^±?©3]? 'ž?šþt?µ‰ð?¿FG?…Úf?1?ƒ +?÷¤Y?å?i]U?q±¼?aÙË?aäæ?@µ&?Ap•?q º?zB’?©1g?ÉìR?Œ½¿?]4>òo‹>âÒ? _t?ešs?l¥?b+?b5ø?>]­?4vÔ?Y°À?b@x?¨­9?º72?Ê3®§l>“ê?ôt?Ô +>ø›9>ïƒu?C¥?bnÁ?bö?^gÆ?+5œ>üàü>ø…>âe +?U¿?B|1?-ºx>ºZ>‡Èâ>âH¢>â>u>Ùø>‚3>Ð8>â%>žÉ=Ï8Ä>Ê>rÑY>Ïò.>ÙÊÕ>áL=>²>ª<«íø=uÔÊ=ˈ> Å4?›í?&«>Ö>\>•*Ý=’…r>‹*>à¿Ê>Єe>­ï‘>™^>žUO>{lÞ=bÉN>ßÌf>ß"d:  œ>ÂOu>ß >[Ì=ˆ>åùÈ?&¸É?úU?·O´?Þ?½;?pF?V¯¼?™?Æ?¹ÜÄ?ÃÔ?)Ä?¤%=*¬Ü;öšJ;Îg=oûb=ƒl„>QΚ?+l? +Qð>‹êI> !>m>r>«tZ?u†?G^Î>³÷æ=Lîø>¶øs>üøj>ôù=#à”?7~I?c¤>'| ?®Cû?Æ_ó?O?ï?>ó1?u-?y­(?'Íß?Ï?Ÿõ¤?©tA?éŒ?%½?x¨?iO€>à!h>í]_? -°?˜'t?¥?‡¤ì>TùŠ>’[Z?>‘O?3ÆÏ>,¢>>ˆ7>öîª>ñÌ>×Ð?¬?t„l?bq£>éô>¸dè>ÝS?TÒþ?Uf«?v.S?s¤?tÛ?|nc?\äe?7SÍ>Ç>9ç +>M]??uÜ?w­8?u=?‹%³?Øð?‰}?%çy? 8n>ÕŽm>Ô1°>`~K>1j>æ<Á?ø´¶?ÛWä?*å©?y°>õý>õ†U>ë¶ >åȽ>öì>çmQ>¶„¸>»ü>4.>¯Wä?5š@?+1B?à>Öwa>íÈ—?¸é\?°«ž?§jé?f1È>7Eÿ?‹î?{Ï?Õpò?{q^>F•€>÷'K?ÁV?9»·?í?·Qú?âã?7r>Ö´s>3~?9Þl?°‚¤?q=>ø>`>I>?*F¡?ˆ6Z?<® +>ø3Á?Œ °?ÇÙ°?žÞ?u®!?ª?Š°‘?‘6H?—¿ü?žEì?¤Ëè?Þ¶h?ô…Ó>çU;&n=%î=µô*?E\?a ?°ô³?¯Í?8’‚?.â]?5Zü?;Õù?–öŒ?•O ?¥õ—?¥UŒ>ú Ë?ÿì?é ?Ú„â>ñŽt>ú%?>ô¿Ÿ? +(ã?[jY?$h¦=âab>2Q>¤>î¿?3)Ž?}"Õ?¿èÂ?„@N>ž …?ÃÁ?{B?`ï?P±(?{ +?†„ ?£Ûß?¼‰Ó?Vþþ>û·??lÀ¿?•@ö?Zqö?Eª~?Ë2e?ÚcÖ?G>ó+ˆ=uN¬?›Œd?©È>@ÿ>w‡?P‹£?J=šN«>¤€?ü§?ÈJ•=â>£ p?‰\À?Œs,?ˆ…?‚Á+?[5?ƒií?›Ù3?Š?}<”b?§ÍÊ??OHt>üÉ~?_Þ?g/ø?zhí?}ÇÎ?ŒÖ‹?‘V4?©Ï?¡Ñ½?HÑX?9Kì>þv>þN>þê>èÔ€>™/?Ö?™šs?™Ÿ?¨šð?J¶=2€9™Y˜<å¨à?ï²?~oq?pu}?c‰t?u,r?~Œ3>ju•?%œ?@Óa>üÿœ>×Ù—?,Mu?/Tt?¿š?±Ø>—o>ÐFx?±V]?«­•?د?‘¤ò?»6?¦îœ?ŽÐÿ?Ú ?@J_ô=³±-?ˆ¿?‹îŸ?ÿ*#?õη?€ ?r3“>ÿFš?RñžÊ>Õþ?sqK@i€?ñÀH?ˆƒ¿?Ž™Ö?¢šÞ?À0Ñ?Ì<¨?ÏH„?Ó©k?÷ä¬@ yl?ý×Ã?õý}?Õ¥3?Dzl?)f">ÿ~Æ?xÌ4?ƒéS?¸>¥?µ1¾?›0A?œ|a?ܤ%?À(H?$×µ?,ÛÛ?o= ?{??ka?Š*F?™E??²žÄ?Óî­?È’\?¿Ž7?òË'@‹Þ@Yê?ð£(?Í›!?¿c?‘ÁC?‹±„?}5 ?o0•?|Ѿ?\E?½’?µj>þà¶? +³W?‹ø‹?…ÙL?N‡?€€+?«?‰1Ä?-Ê)?NŸ—?ˆDÅ?sD›?dè?Ìm’@&µV?½We>Ë<èj™:~€?j ¨?¿\a@ï©@6C‚?í– ?¿Rk?šº?’KJ?”±[?—>?‚È>ÿ°?o—t?ˆÍL@³Ì@ö¨?¿2À?Áýe?Ñäù?ºæu?7eM?U¡?¬‘Ø?“Ÿ?¿?…Dª?þA?ýp?÷ +Î?Õ&$?°™¢?DZ†?Û'2?¹—?²¸÷?˜Q=?~©>äg§>LÜH?Sæj?‚„ö>ÐE>g5ú?g'?è?Õ-?“à?šfá? œ??w}?líá?zâ’?¶Dz?²›F?~I?Re¦=£Œà>£=Þðl? ×z?Õ'”?³8Ã?>è4?C|K?U—@?\¨?åG?Ûw€?Ê?Ï}s?ßDÐ?Êv?²Í?XÜ¡>ýw>7f~>¬†B>ýPÃ?z-?ƒ@éL@&Ë?‹3?zÆ*?QŠ?çÍ? +??,qž?¯…ú?³½?4 Õ?6˜_?>Õ|?PI?ѺÄ?Æ»í>ÂÀ\?d ? î??›~?tÃ~?f.Ô?h6O?¯‡o@ONO@(åž?"ß?dË ?Ðà€?š©I>%ÔÄ?m´?©Â_?ãžK@R¾?º¨H:`€?*0¯?À[?‡¾x>ûh‚?2 É?dÀ?ßÍ@$•‡@¸?âu?žÉ?M™?9ªª?3D?6ÜL?:§Ï?_.o?ax÷?‡‘ô?•šÍ?®ôÝ?»Çf?®ª?ªÿ?ªþ?`Mb?(E9?D?Ó'?ÿ?=?_Ž?V?_w§?z|?Þ?‡è9?×@Î?ã‘?…è-?b÷€?®z†?ºÍ7?¬Ç}?¨;Í?Û“ª?â®ó@þ,@©Â?†q!?q¨!? º%>é¢>ÚxÊ>Ëý¤?,?§Ìo?¥4?§Ÿ8?ÂÙ^?Ë¢T?È:Z?ÄÎe?àÒÂ?èH–?#7Y>÷@}>÷-j>÷@ m:@"Ê@JÄÊ@O(?¦–À?ƒ-$?hßA?_º9?ró¬?]Šê?ª?d? ý?P¯?¥L?†WC?rQÔ?N ç>ò®?)¬?™Ï?ƒg3>ü©Ì?É‘?q}?€ ?´ö8?³ç‡?ž°h?šMs?”üÓ?˜"‰@'Š@ Y@?¼µû?´A¾?®Ïz?¯….?ãëŒ?ïíÛ@t2@Ñ^?´Å?‡ëA?¦>?³vè?òò¶@éW?Þ¬¾?šÏ?‰~x?n¢w?°kü@»j@ |@©@ H?­’?«ìÔ@{@ JZ?rZ­?z-ö?ÓІ?Õt^?ó1ó?ï´¥?l”è?ë‡?g9 @6“@ +û ?ÜND?àfÞ@9~@5¨? Èt>ê”ì>á­”>ú×G?S¦v?j'?°?§sF?SL?i¹Ä?ño.@@ùs@ò?“—*?´Ô@t@ãp?ÙI?Ôn?=«?6šl? É?.E?Ai?SeÜ?ÐZâ?ýþw?©÷?VÕ©?‰v™?­¸‡?­¥9?­¸?«Ì‚?¯â ?°èl?§ÆW?¦,:?Ê×a?Èp¦?_>½?Ba)?J<‚?Eí?N¼?™^Q?Êj@@ iA?ñBý?ŸEˆ?šß?,°#?,k?±öÂ?´ÿw?@#?‡Æh?6vf?‘ú?ij?AW?oö˜?µÍ÷?¿T²?ÊÈÚ?À”y?z„™?rõ.?_¨A?b±R>ûW>äi=?’l°?³g½?ŠR2?X?bê÷?uä*?¢¿?ŠF?‹:0??‚®?„:f?…Ç)?Ä<\?Ëá?Ôªr?Ð7G?§rÈ?ŒŽ™?—‰§?ªë?¾#?÷^?扇??ÞÁ?C Ê?¥g×?°d?ÚÐ?쪰?ªÝœ?zW ?ŽéV?¦ô§?—$?b9Æ?OØÁ>â­>ã¬À?jr?mÉf>GIÜ=“?OE]?–‰?l3?0d?4>á´a? +ö9?xPõ?}í„?$¸ð?(4?†¥ø?ŠÔ?×+ò?ú†-?Ðç‰?¨>«?A'?wÑž?š›Y?áe9?Ü€“?±)Z?¯i1?pY¨?g?›Hô?¨ô>öº<=„`>ò´6?jyÖ?R:Z?!€ ?%µº?ˆ? °??LM¶?W?Y?¡eë?¨ú¤?± z?°œ¾??)ö°? C›>áUo?3¦O?½ûÕ?³[2?5·?.Bû?æ>?í¸?wý?/ÑF?†q6?¤þ•?à7@ ðÊ@?á+»?õ Â@!»@A??ÏÁ?S3q?Î=N?Óé?’Ûƒ?‚€|?I]?±¯¥?rkk>áÓ?@"@?©]ž?‘p^>áÞË>ò?aå‘?að‡?? +hp?wã?­ˆ??Ù?í—?–“œ?∘?žBÆ>â#.?D_@ ª +@ >^?†?Ìì? Ã?Xî?«0?õC?ˆô? ¥“?ŽÞ]?Œ‡h?•fØ?š?y">ì@~>ý‡h?Cò¬?S¦I?”J÷?˜N-?I‹À?R{?^zH?bM’>T<¥à°=eãØ=¼¥H>úR?M[(?%6Ï>âeÊ?v?baä?f³â?q"?\ø>jæ>~@< +ä>¹Þ >â#Ë>L,¦=¤AÈ? Öb?aöå>î«v;˜F <…Að>¹*Ç>ØåÕ>ä>áu>’1¢>_|>µ?Ã>൴?3ž?=€æ>é’¤=x +|>Ù9[>Û1= p=nļ<’=\>¯n>’5ú>û]c?=¹Œ?r>Q E>¬¡<¢Ü(;ñ÷?û?Ø ?Æt¾?à ®?fô?c>úÌù>æøY=×/Q>¼k>ÝJ>Aåå>åv?@…Ò>÷Ém>J\>-hL>ÈS=B‹¯>¥ ù>üÊ0?Víù?zšª>tJ ?Hc?{Oï>$ø¦?ÚÚ#?úr?W1L?2ït?tú ?y¬r?YkÑ?_>0>Ôš>æØ?sÄ"?s/ >ÿžo>ý¨=Š¿ +>2\?‹t?ˆÊõ?(»ö?÷U@? ç?lŽñ?Jwø>öôû>ÎÅ‚=¨‹Þ>ööc>Óì@=:Ä>ö‰>ÃØ!>óa?vN½?v@s?v6ˆ?\ÉÊ>ö!?/]?¸‹[?«8?vj?DYP=ƒsþ=Æ*<;±ú:àJ=#r¨>DÚ~? …—?Êt>À5k?º$?uà?l ¦?@S? Œn>õèa>¶· >Võ?Í +?fÔú?ðÈ¿?Á÷û>öE?ÍÇ?k\‡?FÜ>ö(¤>À‘¼>Ÿ>ÊÔ?YDÈ?/ac>ö\{?6_ø?‰ Ï? 0¿>ìwû?¯Ew?jß<Ä/ˆ;PÝ>³”?h+u?|ŒM?—r¨?:Hô=¥w>YbN?(ë”?ŒT=?ÌÆ—@Rµ?×ðª?Y©¹?k*?w¬¸?83j>÷Ë ?>F?tñ?(Èþ>Ö@¨?:dÒ?x&…?Ù. @n‹?{pÜ>àN?Na?ƒA{?m‚_?P®?C¾C?6ÐÛ?:Ù?-:$?š,?·w?0Á€>ñƒ?–Xœ?¡ƒT??yiý?Ä z?ÐŽr>ŸŠÈ>^«Ö?r?mŽ?_n[?uÚ?zv?rwô>ú `? +Î?‚í1?^Xc;¥Ô<a = þ>² Ñ?±h>?ši†?7ö?*jÔ?ÅM?#—;??ÀÆ?S"»?{]?ƒT¯?v0±?g¸¼?{V#?zj>>‚B?“^?ùèg?‡ÔÁ?aô?Ozï?k~×?,ÇÑ?Ãc?Jâ2?R³a?³v?μò?.Iû>ïz$>Öµ>½ìq?u‚Å?|kå?|{ƒ?mœ=„È$>((î?‚‘?P³Ï=+…€=˘P=Lñ>Y¾?]?} +n?j£R?Iru? Oõ>ÿ’¾? ÷R?#ã?¥-k?ïÐá@ÞQ@kÅ?´?o>x>yñ[:C<<£Ø>ïâ–?kj?u¸–?}Ûþ?}åÛ?uŽ?–3»?š|¥?¡VÜ?‰hF>Œ…>˜e‘>¤C@>ùÜP?],?™¸ ?èð‘?“ús=æ;‹?>HD?¾Î_?ÛÍŸ?ìüý?§Š?~ƒª?;o¶?`¡>È %>®êw?¤žf?´¾?½ŒÞ?»Ï:?ƒJž?~¿ý?(·õ?=š?¯KP?³¯Å?¿'Ž?§Ç‹>þìÇ?^×/?þðV?üy ?ú“?Ê[Y?z?Uˆª?=û“?Øq_@p?ÈJª?kÿ‚?€AÓ?{ß?œ?²Ãt?wS?Wk‚?¼ÐŸ?Ô:0?2Á–?:v?íÜŸ?øÄð?þQ?øÁ|?¼ê3?œ/;=> =­&È=Øú~>æ?3H(?¢×)@-4@ 2‚?á‚8?®è_?qÚ~?¬ŽV?âÀ?Þè?Ûï³?“Iþ?f­@?Ÿë?±ƒ4@ s@@°?Íô“?½]?ô—‘?ïTJ?$Žó?@=[?¿ž×?´k4?v7?“µù?̓þ?¬Òâ?Cü?T3V? +?„׫?‘ ‰?Çz?ÿ|4?Ý£é?¿›ß?™¶Ü?yÇ?1úÅ?þy?q•?pú? .? +S‘?h?{Z>tk>w+8?fZ½?~ˆ?‘‡N?‰ž:?oØ ?p†¶?AÇN?(¢>Nrî>·„×?U¯)?¨@´ƒ?Ί?„Š>º¯¡=À$?¤Ó}@å~?«F‰>øø#?µþÝ?øÃù@®>@ +çÛ?H/ì>ÁÑä?âY?)ˆ?â:?¥r>”¥æ>tÅÁ>z6> H„@=…@òŠ?~è?­¶?¼Ý?¾’G?§—}?ý? ¨¤?TDù?ºS?¦Ž?€y?0Š>È>Ñ’?$ì2?–h?Í ?•^?Yq÷?p<.?~¡B?6’Ï?zô?Ô +»?ý}?‘¾›?jB©>‘ñ>1ÆM?¯ûN?¾Êf?#e?3ˆ?@óD?2La?»?*ú?ëN3>§ç$>U‰*?4þÁ?v"à?¬‘q?ª\Å?¨( ?ÍZÀ?ýÊý?úÜ?üë?ÌfÒ?¢w?¹õ±?ÍÉú?‘Gù?M8Ó>ßA¡>up?B…?+?¸¥?áóþ?”0?}<”>)s:Ž–?¤,}?¶t?Í>ýZ@w7@ª²?Vû? —Ã?Æî?»çÌ?”·C?†F#>˜§[?þšÆ?ôòo?ßó ?ßéË?Õ²ˆ?Òr/?Ó‚?¾!`?|,¹?o'`?GÊ$?Kªí?ks¥?!ux=Í4Ç?‚o?@Sz?Ë‘K>õYV?p°2?¼³?Ð]þ?ßö?ú-S@ u@¼@FÜ?¬žÞ?RN4?Žûö?£8™?FÆu>úíT?zJ’?˜‰Z?ØN?ú®¨?­Z+?o5?„™Å?„Ä?ió?]â?(Ìz?»À?o”?„@"*@Q¡?Ñz¹?»M¤@`G@ß>ág¼=ºãÞ?§©ý?Äž½?6%?„?ÖKØ?è8?™??‘‘?¦®‚?¬ä@@ñ„@qË>Þˆ>{ÞŠ>ýá’? \'?pàŒ?xB`?ž$?© +a?‘s´?Œ#ç?<É$?.5ú?Â÷‚?Ó Q?ƒo?w{D?”ñ?!>û™M>÷)@ !@`6?Õ¨J?Ó@J?„²?v«{??A?®/?º? „Ï?#êË?k«´?uøA?™¨£? u?OÎî?84ï?i“h?ut°?UØ?’p³?ÀÍg?Ì4F?v-?>am?N?Y‡ø?š‹™?­1Ô?§–E?œCâ?åÞÃ@¸Æ?§A_?ræ?ž?ñª?ïù–?ï.?gÐò>8‘?ͧ?]*Ö?×`0@ ËÅ?Èz+>òÆ?^Tµ?µì´?‚©>ÀÖ3?LE(?ÁMy?ÂÌ?Óa,?«1Ô>Ôís? œf?¾Ðx?±[I?ŒÕI?™Ù?àL§?ךK>ðò£>úi­?Ó……?η‹?»ëÓ?¹Õí?|ó?p0h?ܾ?ïÿ—@m¼U@…%?埗?o‘ý?ŸÊÝ?³‚ +? õ†?Èûë?¾Ãì?¯bÖ?n?˜%@k#@ ´D?_‹¡?`ð(?ɸ?ÇkÇ?üîJ@ +ì?®@®?¢y¤?£öB?¥s–?‹i“?~Aå?_<†?U,?0`"?„?Žb+?ë±·?©á•>ë–?;B?¹??°þ?„?Ý?’Þ†@¥@Bc?–·ð?‘êÉ?4CH?"¡?‚@?pO?5%‚?9ˆn?‘O}?³7-@"‚@N©R@"kÒ?¦•?ï? LÖ?TL?ý³õ?ù˜?4í?„),?ç9?ŠD@±y@F6?£˜q?#‹´?­Â5?c­£=6›Î>î ?âRK?Ðœž?Á?Ü@Ø@ ðs?îH§?á]ª?³ï?fxÌ?ÁÂ&?ô˜?¼-p?„i?ƒÄÄ?hˆ?bƒõ?eÉ?b)¸?713?:>Q?¦Z?¬a?}‡§?e1‡?e?e ü?&{Þ>¶†y>Õ·@?Nr?Qäˆ>äV`?¢º¢?¦y?ýÐ(@ [?QÔë> +)F?4çß?Ÿ?ŽN?c¯$?cœ¢?cˆT?l,ü?¸Ú:?µœ#?À·ñ?ÄyË?ÙKÁ?æ…©?Åf6?ªA®?ª:N?ª)D?¹îk?åñš?ÒÉâ>â³ã>⥬>=0|>vá=—o@=NcÐ?œ›è?åŠìÙ>±of?y”…?™ô}?¤êÇ?©e/?•ˆð?yø/?AH^>LJÓ>R?^Ю?WúM?»Wí?¿š?’ +ˆ?ƒ¹c?Ê”õ?úâ¢?¨Ïû>ðð?>’?ǹ]?Ìó?Ò,¾?×d•?¦¡¼?¨Ãï>eæÔäÒ>ÈFº? µk?'ÃÑ?SÉ ?‘ø®?oìz>”Qç>µGz?CA‹?G^ù?a§í?bŽ>Àçc>KO]?x¥_?©’j?éÏÂ@ CA?Ïj?Zj3?“GM?òeù?åÎ’?þó?ŒÀI?ˆyý?„0C>ù”q>âPB?–Šó?«~Ï?\fæ?·o>Çžs>à?G(ƒ?¹Ãü?›÷?.[?RL>âqz>Ú!e<ÑÇ;Fã>Ð{>åà?BÀZ?MÜ”?ƒ?ŒŠ÷?“\?›eI?]Œ¨>âfÙ>þ&‡? Î&?#»Ÿ?+H?85³? ¿>ú# <)¸Y>Àj‰>â"7>ûÞ>û?>;—?d•Š>âEH=ÍëT>»Mx>—Â?sZ?*eé>÷¡º>àã¬>©Ã>–Žõ> íø>«X>Q<(;übÀ?)-¸?/Ͷ>— +>´x’?½«?M5?$S>íXd>†,d>cò>¦*>ÛT>-B7?¢ÏL?á#?àæ?Ø È?úV?&b;Ôd=˜O´>í:>®sC= +>μ>j•>”ãð>¸³û?AÕ?#â?,À1?%gP?~>È">Jv!>¶ÁN>÷Uô>ý®m?†D=ô™->6£$>Š l=67l?¢Af?»žÇ?­Ü?‘â?&nÊ?4b¯?g¯?õ{=\Á==÷W>÷@P?N?o¿Ñ?pŒõ?˜HÚ?‚,C>‘â>Éš??E¡‘?V?»?»¥?®W:>÷W’?%}í?Æžü?¸ÙÂ?>ä[p=Ÿ:¥zÔnÕ>ÑkT>önã?'ÿö?¢œ—?—Nv?v=3?Z.->ö%ˆ? ƒ?’{2?Ž(´?]?N K?þç>üª!>õÓ;>³­Ò=úÒy>õìð>¶)v>¢e?uê?clÍ?AD9?;­Ô>õód>Æ,‡=ý¼d>½C?„* ? '?±"Ñ?¦#•?s(#?pŸ?v#@?P;>ö4? +/´? \Z?-&Z?k¼ö?aø9?0ÐÖ?¤5@t­?à >X R>Ûçß?hÖ$?I@î>ý>ô¤Ù>è©š>ôó?Ë›?lì?Á>ºœ?Ow?é]›?Ööí?¹Ÿ'?iûû>Æòí?)¾;?l‚u?0ï–>÷Žb>ü¤z?d6?À>ø¸?›— ?Ô¬ ?Ðë??Ýat?#þB>§>ø™q?PÆ?ƒ›.?¢Øà?®Ï?Ôt\?èçÈ?Lr>ùD? G?±OÞ?‹!Î?‡ò‘?)Y? /?o?ˆ?Wq>þžI?›Ê?¡µî?P÷>ì(‹?ZlT?\ªn?"×»?/E°?µ¥A?Å9?÷{¨?öøž@ ;?éM­?Š¨L?x“n?$Á2?De?zïG?zþÏ?{»?{_?{.u?Êa@äP?Ï\¾?MgX?0|?²3F?¸‡Ž?¼¤Å?ºa1?³–¯?²ï]?²ê?¤|Ž?š¼?ƒQ?|Œ?|!È?|0Ø?|<§?|IÌ?Ox?RGi?X…9?`-?| ?q>ü¤?57?ü•¶?á–š?lÉB?Dq«>ÔS·?œ?;ê|? Pç>³.[>Ë¢…>ä ©>‚Nt>¢·?õÊ?n©?’c'?ã:a@ú?†ö?áÿ> &5œB´>Ë“>ê?0?_È5?hà>€6ˆ>‹9Î?}ø?„Í*?Êa?ÑJ=@çI?êå³>Î>‰E|=î>ÆJM?(ð%?‡Ký? i ?Á?¾ð·?¾Û©?Áv?ÅÓ`?»âœ?²,ã?¤ÿD1?@Ih?Eƒh? üð?|?w¿è?Xú?[5?\F?í²?‹K?¿‹W?¯å?Up}?=–>XJv?*”å?7v?Vù ?…é¡? Â}?¥qH?¥v??USŸ>ÿÚ?;æÉ?`¸Ã?RaÜ?;ýœ?X`? '”>úçl>ÿ.Ê?v €?ƒa5>XÀ>¨ÄQ?¨‘·? Ûý?˜®?³0â@c€@˜?¶k’?”ñ?-"?Km)?™ë?Ý«?}{ö? !?Ð;#?»~V?ªm#?–@i?…??†6a?T–?~õ¤?zb?urž?p[ý? Uí>ÿÆ?>ÕZ?9ÏX?î=?Ü*…?dÝ•?j­ ?BÜ’?=Û?8×—?' y>ÿm¬?fJ?Ô¦Ø?µ¡i?¤@0?ÕÀ?\ŠÚ?q±8?\ ?€‘?]Þ?ÊÐÆ?óî ?†Ñ˜?3§?‡YI?š¬Û?J>µÆ÷>AF>9t?ŒÕ9?›•*>š})>{HÝ>ÿ!g?v?¿R¥?¨¿ù>»ø>8™:>¬G>¬;4>ÿü?*#Û?„kÛ?Y@Æ? ï>ÿ÷9?÷*?6n?c3«?cåÝ?g¶ ?ø6>ÂG?§?ªG‹?§ö2?¥¨â?Ø ?ä„´?ø,@ô>?³ýs?¦Hñ?›Q§?þ¡?ÿ:š?ü¾2?P»‹?Oæ8?þ`?öõí?µþä?»9F?¿,!?¾ u?¼@b?œAî>þ)ó?XŒ\?Ñ+Ö?« ?^Ì?Rè?Nûc?W¬Ô?`\q?¶k +?ýÛ©?Üwy?¾W:?‰øÖ?IÜ?„[á?”£ð?¼Lª?϶z?–.ˆ?}†Ø?•If?£æ>£Õü=ó?S}ø?}K7?|ýÜ?vÙx?)¶?·Q?iìe?i$ó?¡±ÿ?¦Á>üñê? ¡Ø?§/?«4Ý?¥#À?‹^>ƒ¼Æ?Á¶-?ÁL?¢÷Y?¢IÔ?£ ?¤ãHù?^û?ºÅV?PèÌ;®à?”Ò@ý-?ÓÝ›?…u?`¥ª?C"ƒ?ÁÓþ@w @F?ûRd?í‚?Üé??•'´?j"R?%ã>úüÃ?«N??ß¼?©‹Ô?š³.?T;?%¨§>¾tŒ>‚¼×?FêU?aov?‰¼}?Ž˜Ó?§V¢?±²?‹¦à?~»ê?yÿÙ?zóg?êL?ýöä@ ù@%q?• L?ˆf@?dZ?Z¤™@ +œ|@Àýï?yý_?~1ê?î±?÷F@ç¦@;A?ÄúÈ?Þs@ +)@¢?µHð?¬â+? ÁT>öŒ?á­j?炧?•Ã‚?‹„?wâ/?v ^?jv¬?p±k?vÁø?u«¹?‘þ½?“Þü?l¼À?mô4?à!¿?õ!ñ?ëúæ?ä3—?@·>ôÁ¡?W9_?t“ß@++Ï@S€¡@|¡ž@ˆM?­Ä%;%?s€É?º^?kµÕ?!6"?ŸaM?ËáO?Ò1T?ØÔî@³A@Lg=@ÕG?·§?¢Ó?\ª?¯‚ñ?Í¿w?ÆeK?ÑÑF?à!¯?ò_?ÎÇy?qÎ8?”@>?î›E?ÛSš?cæ—?dÍS?—ª“?—6Ð?SlX?]k9@,rí@-ÐÑ?ìoW?í) ?ƒ¹Î?q°§?p"ñ?so?æ¹#@5@5$@?‰¹@{¯@ 0°?ìxÜ?Ô®?·7ó?©¼Â?aÕN>îÒD>Û˜>¸]á?°Ì?nQx?F»¥>êrÚ?2?²jS?Ë°l@ Æw@E÷?ís´?ëúæ>ï3×>í#p?I'*?S7•?irŠ?l³Ž?£LQ?±[Z?#m=]ö?‹!?ëE ?°ËÁ?m±r?mÞµ?d”4?h%m?x©H?‡v¹?¦°V?”Äj>ÌÜ0>ùJ!?°,?°æ?qøÚ?jt‰?ÝÛÏ?é€ ??™\>Õ&Ú?‚<û?°W?µLi?½}h?ÓÝ1?élÌ?¾Iµ?Bdà?z´ï?ß²p?È.S=Óf=º•+?Ï^©?×`?xg?]cÄ?ò6»@âÕ?\ +8rµù?1,*?­ÌM?”ºZ?Uê0?¥w4@&@ :?˜9å¥>å‘x?ÊA»?Ëæ?M‘?~Ц?œÀï)0?‹†ú?ÿÕ–?ÆcX?cºï?b™?ÝýA?Òׄ?¡À¨?¤ç¦?Ž¹ ?Žnø?%‘?Šaú?5>?”ºW?©­Æ?¼…š?¨2ã?€~?dûÅ>â¾—>èœ??sÀå?poî?ô>⃵?Ö†L@ ˆ?½4G?bVø?:­û?‘µ?EW‰?½ÂÂ?Èâï@H@—U?—‚ê?‹s´?Hèè?:q"?˜üs?¿?¶ZF?©Yü?€é9>_®f>–¯À?p\ö?w'?ʬ{?Î7´?¿Ÿ?¹*?›[A?"1?ÖgÌ@ ö¶?ÊÆë>ËA>Þ¯E?:«>ç×[>ás%>ãõ ?•:U?ú?Œ{µ?®p?´Å¿?ËÆà?¨:Í?€C5?¹?¤:?¹ª@¤w@î??º~È?­†Á?MFÅ?."?Oªz?ah°?Ú?–Ñà?–gª?Çö?•ÒV?Éy??Ã@³?Ìcü?Òô?€Ó±?d8ð?Â?አ?ƒƒ¨?ëò?EÙ? BŽ?>÷_?“Ãb?šÁ|?á¬t?áˆ;?‚à1?Š{3?GS?0Õ’>KõŽ?‚ý?ˆí¿?{GŠ?aæ?,=ÿ>0ÿ?¸Q?R?aÞx?bz?øZã@ +(D?Çv?©˜ž?«tB?°„?Ü E@/Ó?ÕX‚?ˆ~ ?’Å?©³?¦›*?…f6?‡‘?t?hŠ¼?‰Yh?•ë&?ÆÜ?Ô6?I i>j6?&^Ä?±‰À?±ªT?¢ó?3×>ïdb>æ^$>ây>á­D=6= ;Ç?ˆUc? ÜË?†£¦?}²Ô?"÷ð>Ûm?Ý?4n‚?ãf>â`q>÷È?¥? +}¶?_™³?mû;í‡5>ƾ{>âÓ?Mì?f~ï?•ˆ¹?©qã?YÆŽ>Ó;J>p8}>ˆü>á“>ÖZ¨>–z>„Ï$?l„?/zf>ú­¹>àÙó> G>Fà>€£þ=t¹Œ>€$K>׋”?IŠ×?F?7V±;ʸ<â[h<¸?‚ß{?¡]±?ýp•@A? •?w­È>ÿéU>õf‚?÷Q>ÁûC=êã&>¨)a>ÿòÐ?E[H?¯8>ÛÇ?g¼Y?§½æ? æ?}á‡?¢PQ?¸«>ßÂ:¡«?;ö?p¾×?H<>Ș²>ºNš>¬ Ç?Z¹ë?Wt?uà©?zqÅ=--5[k@>£i=ý‚æ?Lpì?VÓ?)Î>ëéd;rÀ>¦?³i]?¥ÖÙ?3Üw?(£'=c_ >Ý©O>ù&°? +PZ? +­¦>¥¹>³hv>Áâ?D7?wR?vðÍ?vÛ‚?Xô>å-Á?P³?`+Î?.’ñ>1Å>SÐ?ùß?+D(?:d?öº??j݃?3u<<%8<Æ>@>tˆò?Xw˜?/B†>Ÿþ^?>1?œAÈ?YÐ@=·+Ó>¦®P>ÆÞá>ö +Ò?:ýØ?«µ­?uê?îó?íºg?¢±L>.Qº>›lZ>öG? °v?+¨Ñ?ãÀ>öl*?á1?Fae? S>°éÍ? È?a÷ +˜>© o>TÙ>lŠ@>Ž¨ù>¼·P>èÀX?vž™?¿P#?¥½L?™ÁŽ?ße>qÙœ>ìi„>Z¤‰<&À?‡ï³?ážÐ?›'u?\&;?§I¥?ÎÇf?š®?xn?&™~>ä7p?¦K?(m0?3;`?“G?[Ž?xð×?!r?¼¸?`ûK?vå`?Ô‰?„ÅÏ3? “Ü?ÏÓ?²ýØ>ø^>Ò—Ù=ÔÞ$>ŸÄp?JâÏ?O3?€Œ?ݳ>úçÒ?(Ó3?{r?KýS? gù?-Ñq?PÉ?VÛÔ?]7f?÷x>ŒÌÀ>Ý¡R? ñy>ýkÅ?Be?”Y%?¼á¦?e߉?4L)?@Ñ?MW‡?»§?È +?U¬»?>¼Î?Dú–?K9?+Qå?#ÿ?à¨?¥ø?‡tÖ?wÅ™>ð×q?(é?¾TÀ?¤ü£? Ñh?)‰÷?cgÇ?“eB?×Ah?¯Çí?e†è?4>(?²&?v•?¡b?–.×?Ò'=@ƒý@",Ö?º¸§?m¶?„Ï?‚¼?}ã.?wÝ—?‹œ>ýÞ?rÓˆ?}òÙ>Å,Ÿ>ºÂ—?~P?‡^ù?Û€?âÃD@F®?ÿ €?­©7?\±? +Ö3>šàC?3ˆç?Õ&?âžÙ?þE«?»Éï?‚çœ?§lÂ?¾÷â?x)Ï?<‹ò?ûž>ýu?ÄCë?ãÚ{?Š¸¸?(-?û99@C=S°–=¹Y@Å¿?øT“?;¾?I…?ô»å?ÝÓW?ä +?\E¸?Ñu?‰n?å2ü?Ún?¿e'?dž3>¦+ˆ?’›?JrF?êD1@¬€?Ø'B?°µ÷?\àZ?(ìÊ?Èì?°xî?9?‰5n?å? ^?z”¿?r‹?uŸ?‰´Ý?¿9?™Ö >NJl>0PD>Òq-?o?žkå?­-6?Ÿá©?—Š³?‡-O?–E? •>µâ2? +Á1?ëi?Ñæ¡?ÿ7?“Ð?zãù=û·¢;¹ @?qVš?€ìð?ÝQŽ?Í9H?²š?ŽÁ?¥{?\'?ÒKU?Û:9?Äa™?Ÿ=œ?.[ì?N®`?d?¨î?Ç¡×?œ¢š?PÒ[?4åÀ?!6T?“ÿ›?¼Ä@ úb@ƒ@“‡?öÂ?ðÿ?ëé½?})~?aÀë?Ù¡?Ô™H?™ç&?›oÈ>ÿ‘Ô?1‚?‹Ñ?fÓ¸?+S?16_?U.?ÒÔ´@]àæ@?£?-€E>Â¥È=P.W? s|?Oø?ɘù?ý/À?H±>>@?©§A?Þ½m?»i›?¯ÇÜ?r‰î?V2?pùÕ?f¨2?ã4s?äjP??¥î?6é>ÿ71?®?”+?¬º?CRp?e[Á?¿X£?ž¥f?‡¹?U˜ç?¹µû?Öó¨?þwä@ î¢@‡?îÑÁ?¶#~?tL?Ûº>yoÑ? é?[2@ ¡•@'ív@ @g? YF?ˆçØ?W2ß?Qœx?õùF@$z@& @-²?Ñ 7?ÛN”?ê?à?Ù|>õT^?Yž@¦Ö?ô¾=Ù >~gY>þ@%?z¥/?þ2¿@%¬>@_Ô@ìë>0Ø>ªÆ>þÅ?5?Ý@­?Ìþ²?¾hÿ?‘hØ?_ ÷?’ë®?ª•?´&×?¿ë2?}H3?Pî—>w‡€=]M²?$?ÉÁ?n Å?}aÉ?}[?}PV@DžE@Eõø?ë¦?àÆ?Ò?,â>ý ?bc?+N?*æQ?3è?RP>‚<§>•ˆ©>ü²ü?E X?Çc_?–ÿA>¢A¢?5ò"?ÍŒ]?ß#P@XÝ@ Yç@ Yï?­¢ =„F³>íFi?| +Z?{\Ê?tÊn?žç/?È`è?¿j?³?h´?`X-?#ê +? |¸?Qýx?~*?ÇQ^?ï.œ?‘ÚO?@º)?ŠŸG?—Ρ?ÄKa?Ö?W§É?³?zwb?x]?gè?^¡?þZp@W@-«?úW?/ò•>î­ð?ßË„?úY>€´=$“D?ßæ¾?ùÓR@0•@-?èè?Þ??-ýò?–Q?°~,?»þ‘?€g?y"i?…·Æ?Þ¶?™*­?œá@»@õÊ>ÐÆó>¶&G>¡üL>­¹:?öÜØ?øbœ?Ö Ï?Ñ· ?º—?º§e@NgL@Q5?»?¹Vë>û…>ü¤ß?¼‰{?Á +­?ña%?ïÝ8?ËŽo?ÎÍ–?3 O?4:?VñÅ?S[?±å¶?ºõ‡?_øN?]ò@?vø?vž?šz?—/K?°à?¯À?ÌëÜ?Ï.->ùÝ->œSË?È>?å8@&ßD@1kÖ?Ãë?2) +?qEÚ?€9;@ÿÏ@4Ó}@ @®{@µæ?ëÐV?ž +ó?~¹ú?¾¿£?Ùx¿?ˆŽG?B!m?ºÉû?óNG@b®@*Î@fg?òè?ÉU«?œÆ·?¼(;?ëS}?À;¹?rK®?°\@Îi?ññÓ?»“ó?°®X?ž´Ù?³é´@‘ ?ßÓ~?*C|?Wr>@ð3@ +»?öÃ0?óEG?¼‹¦?·œæ@@ôÐ@e;@f½ª@?ïåe?Øíæ?Ùж?ω¯?ÌûÎ?‡î?VÑl?Ã×?ñºM?”û‘?>Ù?Œ>‰NÒ?$ÅM?–T1?k³Æ>ß”Ð?AÒ?€ðx?Á-O@`JF@U$•?Û?Ö¡^?3°?þb>î'b>ìú£?z2?“þÿ?¥¼Ø?­%Î?‚Œ/?gÎÝ?l¬?leU?•Õ?®'Ñ?¬ƒû?ªå?–Õ/?ky¼?Ÿ@õF?ì”v?.U/?OKá@(ò“@%ÇÄ?žP?˜þÉ@)@"á?cýT>ëÒ³?fë´?NS?= >é²X?Y~à?­#S?ˆ@>éL;?ywó@'Üœ@?b?”å?„?h©Í?h“Ñ??‰?IÈ?ú~?è.Q@A…@e$@3Qõ@ ü@t@ç@΃?›ª“?¬§¥?Ú#¾?Óý—?yŽ?p$O?–@Q?œû¹?£Ê?žè"?•pR?‘Ñ7?8~?Ž™"?oO?5^k?K»Ú?r0ç?h¹Õ?_B?UØ?â|Ô?éj? å“?—™@?²@6Ûw?©W·>ƒ¡>圼?cNø?¦…ý@Ç@J+@%Œ!@ ì‹?Ÿ#q?›çF?¨°«?«%?_±?, ^?±6?+´£?MJª?cÊT?ƒôî?¸l„?Åò?êe–?ãêk?f‹?cZ? ¡#?ªl•?‘òÎ?„eß?«ïe?ÓkÑ?Ô¶O?Ï$§?¯Á?£0?=N?µ–¹?²F'? æ>åþŠ?1#?©üÿ?QTi>î,>ìG>âMð?/—¶?©­¨?¡7`?X8æ?eŒ—?¨dP?©Ž?¨y?¢6Ì?s¥?Szë?Z?>?`ûà?RÎÖ?#?@6q?¤’ý?Fk@k?û Î@Š(@]u?¤ªç?PLî?¯UO?û¯i?«æƒ>´á?»Ä@ ÷­@É?^›9?[Î?£EÄ?© K?6wö?^4?»]ä@õá?ÒH`?†Š?Œì?¢+Š?˜ùv?”Tà?ŸFs?áÀ?å~´?ZVÀ?²ž?›q:?»å>?š§ö?££?“‚f?¿{d?à;@%[û@%v?›‡>ø|?ŸtE?©1Ñ?©É"?«­é?¥x?œ›Û?®äz?Ã&?©*?}Ïò?y*!?\¬(?k<%?{ ­?s&$?,+?(›å>÷þ>Äó©?9?€4T?v²~?aô?PT•?#?#û)?Q/w?USá?YwP?]ž>øê•>â ?It?gaÁ?)ÔX? H¶?ƒdÆ?¿¸¨?¥°?bFS?}‹?©»r?§x†?‘å?¼„?)¡‰?6K ?'?à‡?Åód?ø6×?¡ôš??*ƒ>ÐU<=ˆT +>¯£ª?bW?b}Ý?bõ?yù¦?Þþ?׶Î?NÑÈ?AÁ“?y¸?$yo?F ?)’?Þ? ÛÀ?1Á‡?bl1?"¾>|ãÁ? +Ô¦?©Áÿ?–¦4>v E>OJú>(k*>aô>úß>û™?‘d?©†Á?=fq>÷¢?iUŠ?™ü¸?yæ?.ë? µ>á>ůu>6|I>b,ß>ãC¶>Θà>…”´>Žrø>˜Çf>£$¨>+×=¢¸<Øü´;·¾ã:¡&=¤À¯>Ä Š>«ù>2>BÊ>æ¶^?8Hó>éÚG?íto@tÅ>§µÞ=»·ê>ûk¼>èØ<¸u0=PŒ4=¢H¦><ý>»¯[>Ëv?5R?†m??80?*-š?#Ø?~ˆ?É.Ì? +Ñ?S—E?j‡_?vum?…È>÷ÂÙ?Ÿï?©¡?À>û¾è>û™>ûHÚ?DH?0)\??Äi?Eã>D>Â> >ùÝÕ>ø K>‹ Ù>[»Â?r_F?mfå>î)w>Ъ7>fÖ@>ÂÏ?W6Ë?0Ô+=¡·>ň*>™³•>Bç=å\ó=®>«>„h?wæ?võ?vßË?Y}u>ö¼,?Ÿà?v›l?NL'>£¸->–ƒ>ˆay>x”>‰6ù?Ò]?•?¥¤?è?ºÇ™>ö`>ºèÎPÒ>æ.Ù>šHx=~Ú>‹ÆF>ŒÌ—>A°Ÿ>³Gð?9¬ó?RÌ>>©“>#Ër>ïÝ>–4”?$® ?LH?wk>§M?>JÀô?$Öw>ïž›>“”ˆ?M±R?‹„È?È ?™Ÿ?3(Ó?>?PˆÉ>òÀ>‚‰J?‰ML>¢å>÷½?6œÇ?lÿ?.»A>÷N?pY*?°gÙ?·Ï'?Ò˜?”²?@8>Âu>ÈÎ=ŠN;ín"8T?gD¥?ÄV?¶\f?©gí?˜Šq?“~É?Zóm?7íæ?f/?x›™?8ç?+t?Ï4 @êá?ž´?yî?y^?y!J?y2ª?yD>s>%5?»öJ?Ç)'?¦¶_?«I?>¬š%>ƒá?vªX?v1’>WÀ>Á'®?Í°?°)>xÑy?›@5Ë@Hä;Œ€>˜‡¯?©ÊD?•â?aãÁ?vw?–”Ž?ƒ(©?H´e?>©0?<€…? ó>Gí>¢Í1>ûWÀ? ±˜?†«?—ª?ãÉ?ò]?û ?ùwù?ð‹”?}ÉÕ?&K?ŽDý?œ}Ú?$¾>ü# ?~L?•Mû?–(?n¤´?Çð>üs°?/¶?BˆÁ?—žy?“Æ?°Å?¦<ó>×R?ù»Ø?×X€?j[ù?/\¹>w.®>Êœò?,‹¼?Oâÿ?mX`?z˜ã?}_æ?×LT@?îoP?Ú¤ò?ªw?Š8?5–? ™ ?ÍŸv?ýŠ?FC?Ï=íJ^=¡;þ?;L?Ù¢>’>bra?~"?|.`?{­?zœè?Hý?‹û ?þVå?î•×?Ñí§?–C»>VR»?¾þ%@Wl@/?¿u@Öá@2¯@AÒ?ò²¶?o¡•>þ¿ä>À‡é> G“?Õ„ç?þÙÌ?/€/>þè“?‡g?‘ƒ9>!Ïh>‡$Å@ +1p@öƒ?š?š?£?±äó@qú?å>ÿ/¨?9t™?‹†`?pv?Eçõ?¢}r?Ë )?Z*¶>æ½’?½D?ÿ\ÿ?›YT?^ã3?UF¨?Zû?¤ôw?¥´ ?ªŽè?±^?€¤³?r]ü8«> £?†ã?‹{¬ p?%Lj?™ýO?—»¬?žº?Ö˜?ÿ¢ò?Õ?•NZ?xWÅ?A*À?…œý?•MÃ?ÚŽW?ôét?CkG?GÑ?q¤°?sâÁ?¸Ú?³Ø ?AH?j”©?ßU?Ë ?¶??ŒŸ5?¯¡¶?­‰ÿ?¿µ?¸oÔ?¤ÿ½?ظ?V8_?Šxt?¢e½?¹‡ç?Ý÷ç?È ñ?¹¬Þ?Ž§?{¾d?¯y‰?Ók?JÇÌ?)æ:@ ²z@¿O?;«Ì?"&C?tÎ?~jÅ>ÿ¤»?»ÿ?D?? ¦?EWá?3­>Ác?û;?™`[?–Ã?*?g0D?­(Å?z4’?eï?…xZ?¿x?šT3?†]?v(ô?^° ?‰ÛH?™Ö{?’x?‘œS>ä²>µér?X¿?mæ\?”=ü?£Þù?¹Ñ¡?©?æ>ž°>³ÔÕ>ÿ@??*dÕ?°ž[?²ù@?µSû?¨‚˜?„îž?X‹o?lµ?ëŠ?ÿZ?åK?Ìd$?ªfõ?Š³ò??…Ï>þö>8Zw?I¢«?œ?Ìa=?ñtë@2p@:j?ƒ?1F?r(>þ±Å?yl?~/>¤ >‚”ƒ=’ =Ý};?Ž“>àšq;Á=áZ?¯x?pÕ?ããŸ?Í–?¨¨È?²›?Î Ö?á·@ðA?š:=Òoh>dY?‡z?Ý ?Ê)ž?¾t³?ÍÀE?Ô_'?´€ ?¢<à>®T.> ’ >¹Ô>ÂG\>ê,°?êLy@M?ĪK?¼‰Ž>át=¸,?¢b ?¯Ð?FÒ»?U+$?\ÇÎ?Fž~>"É%>†Ý1?L ß?%+>YKì?xw°?p7ä?gÿ?†ÓB?ÌD ?´Q?X?”Óx?à$ý?­Ž³?&·§?–? +[å?E϶?„]+?}æÀ?|Ô?|?{ÿû? 1…?¼êî?ù/@›‹?ù`Ô?ÜI–?‰/º?-°>ª><9=?+Mú§\?¨’?»éK?àê8?ì‹Ý>}µ;Ö"T?à+s?ú'A?ïÔŒ?çsÞ@ø$@ý†?£¹Æ?¡/~?V"K?[¸È?—ž??”Ø?¥ +?£Ï»?¡î¼? µ?º?º6–?y+Ç?y£v?ò|?øŠ?Z?&­‡>ãL>Ý“÷ ƒ>öß4?p?"­Œ>­3a>»¬?ógÎ?ëmT?ÝÇó?ØèY?MI?†Í·?¿ì?Å(X?³:a?·¸?’‰©?Œ&?ˆve?õó@Ƙ@š?ûNó?ôä]?ÊÔç?¿Ú?æÉã?óž¯?Hç©?6?Ê“?ô!¦@ ¾W@ ý?µj™?­Ý?2ŸŠ>óŒÖ?”?Èe?¼³?¸¥?ñ´\@ Æb?âôª?¶X?ˆ¡?6®Ý?iJ?Éþ?åIH@ ¯@d%?ÞI˜?é5Ã?ñ»á?ñnó?÷üß?ëC?ªÅ•?¤ªS? “?’ ‡@üW@wb@3>@2 c?sÙ/?}D©?úÀŒ@ÍÝ?òÕ©?ïðr?çL-?ãÿ:@:hË@J-?¸&?Kc?E +å?TÈ‹?‹±Ã?š¸b?=B?›äz?•f?•õâ?‹*t?np ¿?ö2@¢‘?¾ ²?v,??y,º?|4h?¢³Ü?ÔÚÀ?ÏJ×?Í]8?Æ£1?žÈà?™—?n-?œ„Y?!#?ŽŽ?¨WÛ?­å¯?˜·?.9?¸é?Çn?ùÇl@s"?®H?;¦ó?[^Ž?ƒ[[?±²@.Þ@X?ô›?ž9à?^5@?a7¾?¦Àõ?­ö?Þ?è9n?ß?‡Ÿ?å(í@äÎ?È7!?Q”›?Ã?¡?¥„g?½"?ź?ûˆ4?øO3?àF^?Ú’^?ÿ>8@ð ?›¿£?iA-?–›1?¬´ ?ŽF§?JPç?„¸?ÓFr?Ô¿k?Öäá>íX ?ˆæ?(ÚÄ?ˆ†ç?µ¡?«VX?«ED?ÔcË?ÖĈ?‰‹¡?dQ?7R3?›Ã?W:2?“Ú=?{?&H¿?kŽ£@3Å@–;?c}?cf]?Çl?Ñ2ö?Á2¢?º~Z?¸ÔU?·  ?ÚÙä@ t“?ÿæë?—9g?¦÷.@ /ž@ ¡¸?vÝV?b¡¡@OX@&8 ?Øþ>âso>†T=‘"¨>¸Ï®?{¤?´à?Š.?†Ì ?©c?©–^?Ù¾?â Ë?\éÐ>áø;?c‹×?ž¿?’;Á?‡5?¢¬s@ K¸@ @C;@F«J@SR‹@Z¨X@+÷H@ú?Š“Ô<Æ0+?¢X—@E9Ž@>(X@(¸È@$¿¨@B“@—ç?€”#?u$>œa=ÕîÂ?R­?£žŠ?…žL?C„?¬Û=@! @/p>dQÔ>c¦&?Úˆ$?×2k?£‚Î?—qÓ?ÛŠÅ@Ž?Ö}ó?©%­?yŒ>áŠt?X:M@˜Ž@Cœ?âÕc?á›F@?üð@A ¨?þÔh?Ûè½?›]®?tÛ–?Äëk@U ?ã ·?—îý?™Çj?¡âp?œ? ?©\Ú?©\þ?h8?UìF?8û&?7gW? @Ä>áì±?FS ?‹S¢?‡õ6?ŽDÞ?~×>Î#ø>ÚD>ﺉ>â?¢‚®?¥ÃÞ?u‚#?b3~>«l!=¥0ø?A»·?©³m?²û'?¼Ÿ‚?—,? +Ð?É–?$É?2îJ>ÆF">´»’?Q}¢?bm†?œ))?©Ú?°ãA?½6?/>õÎ@?·?`­Ä?bq?bƒ}?GÀË>"G§>q +?Ÿá? 3í?…¬q?ˆ¤H>´¦Ô>*FG>œ¢>ÏßK?,¶Î?bkœ?÷C>(æ>Ï S?‰$e?†©€?KXF?P-B?U ?Yã4?¤¬?©Š??\ò>ðÔ?‚Ñ?œ·?X 0?¾Š>ìoÊ>…çø? +a?{R?J¯>kºQ>n¸>ÿÿ5? +Ba<‡º•>£‡>à‰Ð>@B&;Ë›>U¦¸>ÝÅA>Ó‘>ÈÌB>'›=±ÆÀ=É2 >7Ðl>L%²>´¼ >Ýøˆ>ÝÆš>Ý’É>‡Œ>Šû>©Œõ=ýu¼@ @.Ec?ïO?y’W=—ò">í\,>® +À=$=l>€>;F™>Wû>ò\‘?;g¼>áçð>3þ >Š¦Î>Á\ß>>³'°>ý@À=ûàÊ<í»Ô>Ðèj>ü3`>ûøæ>û¼>M7Õ>G/”>ˆ>vnž>ö&÷>ù1`>©~R>º*>ùÞV?¡à?ç'"?ÛF¦:ßt>Ä£?nVE?V>P>Ƕ•>±P¿>™$Í>”£è=CJ1>hj>¢Ó·?Ku¨?78e>ºÄ>Èy>Ö( ?†ñ?w «?XV?&ƒ>ÏÖ=›(R>¾6>„Aó>ˆåK>:Ý>‘„ø>öoÇ>¯»á>§é{?•?—Úù?—ªÛ?‚¹Y>ö(¸?köV?ô£4?µ:>öæ>¨È(>_ä»?%^‡>ÏW=ŸËâ>^âÂ? –?’ r?P ã>¼t?1Á3?©2Ó?œ÷²?v,¢?»^>/ê¯>öBð?á½?4Ù?E½?vax?ŒÅ?´©?¥ŸË?v‡?“¤`?¸ó?‹ž>ï ®?HÊ£?³Ãß?œÙ¸?vÓ?vêÄ?vòÕ?f_¬?G¿¯?I(Œ?RHÒ?ï²?¹s”?½ƒ^?¶˜c?·6°?ÈAT?Xê>b¿? \?wµ@?“m?®½?”“?v„>À2d?&$“?‰,?Œa ?¯>?ƒ¨‰?xoƒ?|‹?r}r?sÌÕ?x®²>öne>„’P?HÁ?$ÖG?oàý?€'¸?{¥Ô?y4m?®l!?´g?ŸÆ¯?“éÅ?›§µ?£ÕÎ?SŸ?y¶x>|ÞN>„ÿŒ?yÞ·?o“…=ÑÉý?­’Ô?°Ó_?´€?·M"?º‡ˆ?¤/ì>ðø>öz? hÿ?A?zÍ„?k÷?SiP?N‘ ?54$?;bä?6Ð$?0‰æ?*E?+ý>ûkt?%T?T¤‰>Ή<ÜqÍ?\¦?}©ø>Ùn>MÄD?ï‰?£±?]1„?IÌ ?PÉå?IÜþ?R¸>üR›?zÌ…?Š_}?:>úÐi9¹Oh=Ñ„?è£ ?Þö?%À?ó2?{ñV?D·¤>9úN>íÜJ?}ž?IŠ3>´á>Qá8>^0>ýZ7?Z¶N?™³š@4M@45?Ó49?_âP?¬¨z?Ǽ?Ž!x?x+»?}Dî?€vb?y +v?p£K>ðH>Ël?Z ?X>?'§›?#´:?~50?v?wAô?J6¾>å²?Îé?µšš?ÿë>Í?þ?B¹?«¥–?›MÃ?~˜?=ìz? +Ž*?˜Áå?ÙX?·A?V\¸? p>þÓ>‚Ý>Q?K¢%?cx?w›‘?g§ +?/)š?)‰ì?E/®?@/i?K?‚(™?‹}µ?„Õc?-Ì?€•ñ?ˆž ?gª>ÿBÑ>¼|{>e Ø?Š3W?ï'µ@ m«@šÖ?»c?Cƒ­?¶ÆR?äs?É~ +?¿™É?M_n?k‰?ÿì¥@G#?'+x? +®¼?(?k„Ä=ž‰? 'T?DD¥?¿·È?¤Ü ?F`÷?pà?‘‹©?oÊf?8ì ?—¡>o©t?–½–?ÿµ?ËßB?¬¢á@§ö@$:Ò?ýá?æw…?Ôp?y•½?¶n?¿59?ƒê!?€f?¿m?·©þ>ÿÆ÷?$é?ÒOÊ?ÄvÓ?Æã?ƒç ?–ã’?©_ +?»^é?¶(y?°ôË?µ?¿ÖZ@r“@5QN?ÉG0?ä“?WBŽ?Ãí>šŸ9ž2ä?”?¸?¿Ò˜?´mõ?­Q‹?Òƒ6?ÜvÐ@žÔ@ èn?SäÙ?UÙ$?‰Þÿ?“v0?߯ó?±ï{>“í¢>ý×?©¢?U>ÿ¦Y?2BW?¡¸?Ed¥>ÿœ?FÈ?ò?63±_> àž>¹«{?Æi?Jµ?Dy?D ?•! ?¿l¢?¿€ ?¿H]?XN >¤0?X±¶?¿Tß?óÎx@ nˆ?­½þ?[€?u`ê?w?Žu?š¢á?‰ì÷?m @¸ @,›¦?±–°?–E‹?0Ù1?$ .?}*ù?ÓK?¿æ?¶"m?)¢¬?*x}?~—p?~“š?}ÂB?ZV>þ|i?,-~?Ÿ?~ò£?3ªF?–?ìÍž?¨Ø¢?*ðb?¥Ó>•!^>Ö£È?©û?K` ?‹Ñ†?z½µ?kža?ÄÖ?ê“?ì&?îBÏ? []=µBW?NÖ?}¾–>`tU=3Õ@_? @}É?CÚ+? .?ª8£?¨3@|“@G?a%•?N >’?>¥4Õ>£Ž¬>Õê­?}²?tM#?C˜?9ƒ?P„Ñ?k§˜?ŒáG?b± >¢=‚>·…>ü£v?\Å?KüÏ?€Wj?¥ ?˜ã?‚Bó?Û$'@©Á?˜ï¯<ôtÐ?ˆvg?ðIv@PÑ@˜@ do@Öy@-¬$@Aª/?Óç™?{ª’?“{?•=?)ÂÖ>ûn@?,}‹?8¤n>¿Ö>”È…?d‹?åý?¯›ˆ?¼8”?\}“?5ˆb?-Õ/?&#ˆ?®pZ?»ö?'†Ú?‰?6k>úT”?´¸?¾™>?÷%@?úZ?š!?œG‚?¯d¨?­#??Zõ?VÀ©?ºàô?»'ž?»È?¸¦ä?i “?s-?›Ys? ÷?ÐÀ?Èðb?žú£?’˜>öl…?0á?ËW\?Ä/?xrî?z-®?…ʺ?|Pâ>êî>º=X@rÏ@-D?¹Þä?¾!ž?÷­v?ïH?wÛ?†(V@ Ì@ +Ä?ˆÐö?„3X>âû>x-@@Š ?þæ¼?c²™?aóù@'©@'^é?×!?Ü7€>árî>Í”˜?CŠ?Igh>«&Ý>ª˜?¡e×?¨Î¶>Ç€Ï>Ž·?Æå«?ÑD˜?ÞSÇ?åɼ@r÷@úw?–L-?tÕy?ÛŒK?ën ?—í¾?†Ï +?P-?—!!?<|ü?þ,?D?RÞË?Öí¹@p—?«¬K?s6Ê?¼Ï?êÚ*?Îv˜?¶†?•?h|¡?´4?þÄ?æu?Çßn?¡WÀ?@{]?Œ§?ã8?¸Ñ?&&?+ +;?Q91?yÞÔ?¹ª©?­Ë?måc?bþ>ñn­? ë3?pŠX?poŸ?ƒï÷?‡DÇ?ºˆâ?¾Ç@zƒ@%áî?ŸsÂ?‰Wd?øí>¢É.?9ñþ?Y›í?V?b4¼?¹o?îºà?Á½€?‘á“?`|1?Š’?nͲ?ÆË?ÊWò?Ô†8?Ó‘ë?ß¾L?ðYI@)Ò4@#(â?±ã‡?±Ò‹? ò?ºm?ÖMÞ?ì˜?Ž¼|?g½?ñå‹@§?˜þ¤?ÝÞ?íÒ? ›>ôÃL>Ú§˜?Iƒô?°ˆƒ?¦NÜ?‰tà?·x?É? ú4?j»l?jŸù?1áÚ?2¨?lC@?|Tô?›‹?©.@3œí@nTœ@ÁÌ?4?Ø›D@¹±@&¨@9Ù @ž¨?mï>ÿ~g? /b>ýQ>è–s>è“Ø@J©@@c?±?¡Å>þšë?¬©?9É?®CL?òG?å f?Ø“Í?ÁgÆ?…µ_?‘T?ת0?Û¢1@XÝ@HÀ@Õø@Ëc?¾Û¨? b?–EÍ?–Ih?—Íg?™P‘?”ŒV?Œ4Õ?•·?¬\¶?­P~?¶“?´lw?™Sz?œÇT?&Xÿ>ô®+?Ñ€^@-ÿ?‰N¥U?bÎ/?bÂe?b²ä?b®ß?ÿè!@:8?†Ìé>‌?sËÖ?²á?—|%?bS¸?x"ø?©±7?¥2|?›ƒ? ¸õ@šP@‘È@ <ú@Ò<@ +%H@àÙ?Ï t?‚é9?“L¦?¹8?¶ÿ"?¼½Â?ÁíÈ?o.?aÀ¿?1æ?~ë0?(9>äó>áªa>í@?HW?µ {?¹’S?¸,7?»¶¤? ²? +s¾?–&‡?Ÿè.?°Ü˜?¹a?߆r?üæ£?åæ'?ܽ?Êʽ?#­Ž?+±þ?î`K?òÙ?³Ž`?°Þ¿?s?ò?;Ì(?£Û?±ðÈ?…Q¨?Á€?=¼Á?©6Û?¾¯Ç@)/o@'íI>kîã>Ãù?ëæô@V?áae?ÈR?ƒ}?'w¬?u_ ?©T’?–1Ü?D×)?aø¨?©ez?©e†?’u?“‚Í?«UA?£Ï°?EÇÝ? ª„?}ér?ºðÞ?sÑê=5¡ê= á<ÆŸÛ>{qâ@ O×@ +߃?pŸØ?m“?bŽ?W^>΋F>ªä¾?d¥I?©¸s?ƒR?3ß?ÉÏ>o%>‚¦Š>Ìd[>ÊÚö?†f¹?„3¼?‚?›? “s?©ß¹?ˆ>»Ô? +çI?g²?1ÿ;½>‹ë:?b‡‹?M­§>¿BE>·ÿ>â†L>â„#?3[?BÞ >¾ËQ>|<ž>i_›>Vhi>ñ®D?6V$? Ãj>bf>Ë”å? +t?h`>âF¼>â<Ú>â:x>â,m?]a?c»9?›P?ž ¢>ö)>€u>Ä°M>áÇÛ>jÒ>Lfr?h?->á\S>Ñž!>!Ûß> Íæ7^@ >§º^>àR>àav>à*>gã="Œ=h”L=Ÿ%!=˜1L<ò/>Œ@V>BŸ;öVâ>RKJ>‰IÓ>Æ!˜>ÝáÈ>ÂÔé>µ,->dÂe=¯Ã8>¶À=js,?…׸?’Ò)?‚S?qÑ};×Ep=wå|=…ˆô=ø2>Šˆã>€v?mh>ç¬ >®ìo>]Á·=Ìw|=ñ˜ =²hI>¼ˆ>ý5?›9?ªØS>ŒÖ¼=Õ#«>å¯|>û·Y=DÃ>ñW>üTL?ˆÉð?uS´> ä>£?'D¦?åë>ù‚¤? ß?u@?K =ûË>f,>ø”}?j?!^? +2>…uô>“jg>÷Ö>÷¸¢>÷Ÿ¥>çæ}>–•M>IÕ`=´®ï>‘âú?w1?5>Ø=/ŽÄ>&)>ÅmÕ>ƒ_Ø=¶Æ>Ž†e>}ùI>ƒOÞ>çµ>/­á>­Ö|?7¸½?à›>`r>nc?Hs>§på=¤©X>ŒM&>ö!H?2a¤?ˆAó?{N?vS?Q,ý>ÿP? Šâ?-f-?Œ2i?üQ×?¼o>»‹3>³r>ö.›?'Àq?v8j?qFr?_rm?€Rì?Ÿðz?Ž=´?v[ï?X8€?.À?76=?5ž`?#xé?uh?lŒw?©¼?ÖÞ@ Z³?ØÁ ?vÔ·??Ál>ü::>¢Bq=ýþ„>·Êê?ªÅ?P?%ó–? Δ?&¯ ?Ô?Çi¨?˜*×?MÀ?#›>÷¥ƒ?Ap?wÄã>Ð+î?‹¹?xÄ?–x“?ž’ó?Lª¤?’]?Z¶Ð?xa9?xq?x~œ?QÂ}?Séº?s&*?x¾Â?xÒˆ?xãn?¥'–?³bJ?³ž?¸å¦@s}@7?ÉF£?» Ï?CÉ?;ãª?%‡8?)M ?ŸH×?ž‡ÿ>yðð>p´?yûÍ?j6=°0’?c„Ð?qçÏ?ŒØ?‚bÕ?zŠ¹?I}Ï=#!L>-Xû>ú¿ ?Ië?!Ù?Oš¶?‹ä?…—1?~’?vžK?{<Ð?R‰[?,ÉJ?JŽN?MÙ®>¦ø=b×>”sa>ø+Ö?N?{Ô?›ë&?¡¯?SÌù?;j9? çó>ü-(?f„¥?|It? £Y>üe:>›Ý™>¡F?KÆ?=4S>YT>_ú6?_¬?–Ú@9Öü@+ʽ?»n?µaÿ?¤ƒf?„EÉ?±N?4Èì?Sá¤?:#,?.x?@¦Î?x”?c†â?iÞû?¢hÃ?¾57?[»>ý±å?¼ØÌ?÷~?[÷ú>ýÙ´>ÿÖƒ?aø?¨î?µKÐ?§š? 'ù?$k?)p?/l»?=s#?~Eâ?™{Y@¥X?í?”D?_¹¦?ìÐŒ>Í‹>e^=¼9í>ÿ?~©=?{o—?tV?£ +S?¿?«àD?& ?·hA?ºz«?AUA? †?p>ÿ«+?<–O?¿ÂÄ?µ{?—Î|?”DÍ?™NL?¢//?£V?y‘{?7*‹?,Ç?¦Î™?ª ?¡š ?}̃?hÓÊ? dE>çF›?ôs?š ?ŠØ?ä? +ä?Õ@±0@ 0? å­?’ä*?Rö?wÕ?ñÄÀ?¹V>ÿÚ»?G¿¯?­^2?µ/ ?¼ûº?¸³-?®È™?fê%>ÿ×ñ?XÅ#?†²?}Ó ?|Ž ?®û ?¼ ?¾¼?¿Þµ?Aïî?-É?¸œ‡?¿Ó„?žØ¶?¨'?0% ?CÑô? ô?ª¨¨?æk‡?»–¯>F„>òÙ¸?“¡Ü?g§û>ÿ¶é?@#ù?‰± ?Pvæ? § +?…ù÷?¿qå?d}÷>ÿ¤É?+Í?ø?Ÿd?¿±M?}@2Í?ôeà?õ¼à?Ô2?ßñ–?ºõ?´Mï?¦Âì?­n?»Üt?˜/9>tÅB>ÏP ?ZZ?†Ùo?‘+?TG?¾V?Út˜?ýÌN?ع‚?­?7´¼>{?mM?Þ5ü?¢¦~?D?4Y?˜2?TÛ@?:^?àòh?ûI?oð?L>*?·ÏË?¿'A?“©`?7§?~Ð?…˜®?Òª?Ð%¢?êÁI?ß +?Ø ?Ws?½q?É”?ë†ú?Ä‘ð?~}ù?OYý>þqo?·J?ª©?eÃí?ŽÐ)?nh??Eœ'?©Z?Û¸Ø?J%<>T/æ?0ƒ?]íz?•a%?¬ŸO?£2?£K¥?*Þ>ýà’?h’c?}Ï?xÌ?|!?~v?‡d ?xP?Ì~?õO›?í ++?^M]?µ?Ý! ?Îõž?W?oA¼?LYC?C¯}?7µ?JQ?€¤A?` +$>Ó¤’?7)I?®øÐ?O?XFe?D„Á?· +>¯uj=©œÎ>ó1?EŸ¬?½U´?þ¬6@³ý?й‡?luG?¡§ã?Ň?Ía?ÔÌ?Ïɯ?ÌË!?ÔF)?àÍ?»·º?¥%?­*?µó?:ù">û{–?1j"?Dm?u–Ö?kØ«ÐË>Ç»¨?­Ko?·G[?¹ 8?·>«?²»™?·c?v_Ù?{>?­×ë?¦—ä>žwv>§·>“ÐÊ>…*?sx?uÖ?¶e)?¸ +b@'æ:@.T®?+Œ þ9?b£?éia?ɱ«>ñ v?.Õ?ë­?Ñ!.=ž:S>fÎ@=æX@9Í?-Dj?+ù‡?Õ>°?äv$?ù?s#9>Øø]>•%]?Fñ?³f1?rF?5&G?¡W¬?Ó*ž?о?ËP¼?ÊW>©¡Ã?YP/?Ü?åÙ—?üïj?îâž?²D=?繫@V}@uïˆ?§XŽ?ªˆ]?±ÅA?±´E?±›b?±ë¬?ß1?å‹?kØ?‰öý?/B»>ì?Üæö@'È_?ÀLä>«°­?9Ç÷?°’?ªªn?š0y?‘Á©?jüÍ?jåJ?jÈ ?k\Y?š8?ºWž?8®o?!ê]?¹u?‡€?OÏÙ?i×^?7Qt?ÄË?X°¼?›dÁ?§&O?µ d?¤‚h?i*?‹´Ô@Á@q>詨>è†ß?²%&?Æõž?‚~°?XQ?ª”‚?Ælb?õÜ@×Æ?åÍá?–[?n¬…>¤-?”%?Ï”i?Ê O?¤¬À?ªß•?üä0@@Us@§Q?¶2)?f^E?fHR?f2\?E=E?L??K¾?¬d?±û¸?Þeà?ßáB>(‘^=£B?‘ŸÎ?«ù\?ƒì ?l”m?d¸¸?ST¾?ž +ñ?ìhÐ?øŽT@ *?ùÀ©?Eù?Oƒ?Òo°?Ñš¾?ÄÍÇ?ÉËÒ?åRB?ê΢?į?ª¡÷?˜u?|b7?«óç@˜Û@ GÏ?ŽÆ?B•?@f”?GbÛ?q­¬?x°½?!üû>ã"Í?-]h?kT›?Dmí>é¼?¾W?b×Ó?fÀ?ܬ ?ÙV¬?»$J?¹ú˜>üÞ=µfn?™;@0G?Ï5»?b]í?|X/?©·»?¥Q)?>Àú?4 ?Ô0Ô?èuƒ@áÚÅ>áÖ\?€>A?{(@C@(—‡?åcr?¨þ©?‹á?Zì$?”É>&¥>©ÅV?všq?zp?E•™?AðÆ?UÆù?ep?pLG?{æ?¼¥”?ö?V?ÈÕ?Xÿ?I¦ç?4Ñ#?Dµ¥?©0X?©/s?6? )?«ß,?ÎÖ`?É“ó?Ë!X?ÚyÀ?ãw~?Ð5É?©>¯?²Îú?æÜ?ê™?–m?8?Þ€w?íò ?Ç•?¹l#?"J˜?+?8?ÉÝÉ?™lý>dx•>¥›?Ô†?’Õü?cV¨?aì@yâ@(¢V?ǽ ?…õp?# =̘’>iM >âœ?â”?b +?ˆª +@ Y@ j¡>þS?Û +>ç÷F>âCX>âDÉ>âG“? RÂ?G¤c?i(‹?uO?=Y`>âdm>èûd? +{ê?S?˜>?šoC?„•?¿Ç??¥õŒ?£bs?¢Ö…?¥Ý?ɬR?â…ß?•ú^>Õ¥>Û™>?+?³‚>≕>Ör> j§>0?š<)?™úŠ?BPû?(·‰?#ú†?3î?sÁ?£Z>¸ç™=Öß>ª(Ü?Q3Ž?A»m>ñ>ç¾>â6>â(|?¥nþ?¤Ú ?¨œÎ?©}?©¦>§)c>È‹[>áÀù>`¦=ˆh&>‹èž>–/â> ‚c>ªÑ2>/„>+r=L§ç<øÅ>®>àqo>(É<Û>X>^Ú&>¼æ +>² ’>§,€>lY¦<¥Áö>Gk>](7;·è>Ór>æ_>­˜>ÝÌ>»Ù¦>gÄx=¨4õ@ý¿@ +¸—?‚Š ?¿>?wþ€?Rû¿>ÙÛ£>“&Í=öz†>ž:/??@…6>µ¶‡=À²E> n>>– ­>Õ)I?Sèl?}Ë>sÈQŠŽ>ÁÿÑ>¼Ùã?Œ3?Žú[=[ñ+>ƒdO>œ ?¡él?©Úw>ú?? ½?£Ic? A_>õ.I>Ø=\T>!6Ë>Ï4Š>¨Û >  +>§?xW*?\Ï>øS?¢?+’ê?°ö>÷¨U?):Ì?›¾x?—ÿ«?q.T?v±Á?wÑP?o+?={—>öš¿?h«?Q<•?»\>©#w?#×?ŸÀÛ?™û”?€ÖN?‘ɸ?¸Ÿ?³÷m?¨ð}?½Ÿ?^'Ì?Ni?F9?_2öÁì>ý€?Bí? ù½?kœ?¸ÈR?Ž—??&Éx?5ßß?=»?9‘›?A—É?R›>´b>ÆyÐ?AùZ?WwÖ?iºl?r•ÿ?vç¦?=:>>öýí?'A[?Lv†?Mœq?T¤?N‚?G„²?$>1>úφ>î¶O>÷ƒr?X5?†±z?1íB>÷º¯?D ò?wÙ>È„Þ7Ìçë?c€4?´¹;?fýí?+¯?>¤KA>…ô?7Ý?xw]?I?;OZ?+3?Ù%?<#Ž?U‰W?rBØ?xù ?`&_?f\R?†>ùÞÓ@$Œ@8; ?^`?,ß¼?’z>ùd>ù°Q>ù¾Á?Û\•?ØJ'?4»Ì?/`?Oç?Ik>q9Ù>dý>úRñ?IN@<õ@B°?ºˆzƒ>úöÎ?:ð­?˜f`?µ&?ÚÐ?¤É©?L¼²?%éD>Ì#?¦MT@€@?Ÿ‚_?Û>^Y:Eê?'Z?{ìI@!¡S@E „?²,A?X,Q?Ùá>üDä?îd2@[B?†,E?gø¯>ÇÅ>¡ôZ?šÊH?žÉþ?fÈ·?VÐÞ=š0Ù<Ô³¬:$>½Øm?½È¸? ÔË?*±J?$Ó>ý= ?N,ª?¦º£?Ã>?ä©Å?¾çX?¢:·??8~?ž­Í?CE}>ýÉ0?šZŒ?¾f³?7QX>ýò?câz?r€×?*h?.µ?:„?EÀ >þ9Ç>ò;X>U‘F>˜Èç?@{[?~`Ö@HÃ@µý@Ö@}@+ü@–Ù?~¡.?™ë—?½“Æ?žÒq?~À-?LP>–# @À¶@Ž>ÿ@o?4Q3?¾W{?­Ô?Uÿ?OÄ(>ßù?Šå ?û£r?¥Å??Î8?+û¨?í-?%K>ó”??–2.?¿©?.™\>±òð?{´û?{M?D‘?,Hx?0О?!¶í?¼Œ?¶í?øù?%é‚?¹êð?Ÿ›‘>ÿ¢>êJ\>ÊQr?/Ç9?–8û?­ˆ²?ÈD2?±4;?£h?…wÄ?M(:>ß‹Í>œ?¯z?ÿáá?ü^?7-U>^ÁÛ=vùB?b¤?ËL?·ZÓ?¶Ú[=Žºÿ>=Ç@2ú?ùáÖ?FÿÔ?R”F?Qâ%?‰™°?ø~¦?àú"?›o€?‰P?e¨?nƒê?x_†?Œ2¦?½O?Z‰?h“?‡>?²=G?E3Â>ÿ…1?c²Ã?ƒp7?å¼°?÷S/>‘Ø;=ÚÓJ?Ša?’_œ?UT9?W\?‹CS?a/?Á(@?¼!?·ú?šK?-á?U'»?œ¢€?vFN>ÿÌk?jÙÔ?¸#£?™¿?z:v?!?€0?}`½?uâÿ?"›>ÿ´#?s(”?Žƒ¸?›5z?˜¬ô?ó„¼@hË?9ÈÏ?/²C?¡v‹?œ©s?ä ç?à÷5?­3Õ?³óÅ?÷¦?ç&‚?Œï½?­È?]– ?¯Ì@C›?íŸk?`?+â²?0|X?5ú?—ï´?¡?¾‚½?Ïh5?•K?…œØ?§)Ê?¬4?Í„?“݃?~ç`?“©ð@"ÿ@ H=ëb>©Êÿ?¾ùI?®kî?ƒJà?‡†Á?s?ŒÓ×?~”?@ +U+@p—ý@Ôz?{æâ?gz?gBï?µÄ“?â϶@äâ@€d?‘™,>þ8A?°“ÿ?íí?žì}?~à?Eü?-E?4×?*§=?_€«?qÖC? ‡ý>ýâØ?“r?Èú>þ´>÷½Ò>œ€|>Ô[ÿ?a™k?t@BŽ]@06u?¾ ˆ?¢?^>Ó·>É×>tÀû>çNC?pàw?nÍ°?}!?Æ]@)b(@ir?`U?Y?dl×?@=ÿÎ?3i?µI*?º#{?½œ?›5&?„U?Ç9w?ðc/?Ï¡ã?½'?œ9œ?‹õc?ê?Þk?ý\«@TM?œrô?dÅŠ?xeO?{¬Ñ?ç|>û:?ãÓ?‹H‰?Ìù?ãÔ×?WTd?4eÝ?¤!]?§—?®Š®?²>°?ý>â-\@ ²i@}?ûLQ?ú’H=–ʳ=ÓxØ?Z;? /P?êN?Z³?z,½?v9ù?>~k?K¹—?‘ ò?™Gâ?áôC?Þ«?¡[?Ä)?ù~ ?ïhˆ?‰uü?}ë?y2%?ƒJž?¼¤ª?ÄŒ?×ô?Æo•>Í.µ?&5ƒ@(Ì@#áÿ?íK?ß÷Ü?xG[?–ù@'©@x?kA-?‹ ¯@ dÏ?ý"?c +u?G'©>]g*?‡#@Z@ X@Ÿì@o>öø?é?Úï&?ɺë>ö¦? ;Ø?–5?›;?öJ?ì>íó.>Úü?4z’?>ÀÃ?‡Åµ?…Ý^?¥2?¨¬?²?³§´?„"?zf+?îrª?õfs?¼vF?·‰L?óQ#?û¿ñ?õšð?ôU}?¬0Ã?›9'?4¿Ì?Œ ?aË?s¾ ?s¨k?sŒ­@ ô•@068?Û’?—Ç3?Ö:x@z?ßÉ(?¿úw?×Gí?ò‹=?Á¢é?“øf?õ­ì@1æú@äð?ü5¦?ð‰…?ã´h?Õ³«?µ T?’²ë>õJö?³É?oÆÑ?Y»?Æâ?Nh§@˜Ñ@-@ ¡Ñ@ 8‘?U.?QÅ:?°ÚG?³ñ§?³Úñ?³Ç@?³$>ï~™?|¾W?“—Ä?•Û?”(ƒ?¸±?ÌŠ”?Ñ”K?Ømü?”?"vk?jt¡?¢Ú/?”r'?mû]?|g?–@?Ʊ:@@D@16?ÛÅ? +?±ÒŽ?±Â ?h?É?¦²´?·+¾?„¦û?l\¹?• ?™ +4?Ç·?í–Î?ªÈš?GY?“_õ?Ö?¥n0?+¦?l ‹?ò?ÛŽY?jØó?tˆo@,[@®?ÀJQ?±]?5s?–å…?ˆ™Õ?‚ºF?s=ð?i³‹?@¿?¶?€;?Ü<Ô?Á0ó?fª2?œ Ù@.¤¡@-æB@'×l@#ß@ ±U@ ä$?¸x|?£®M?’žé?0’?› @?¦f?£çy?™àŽ?{«W? œ\?I~Â?çCé?æ] ?È„?À­-?鶂?ðض?ìk?ò§Z?(¿?fní?x6Ñ?r?Š©(?”|>?®”?¼b?¶/ï?§‡4?ª þ?ãù.?åJû?³ h?¬?ª3ø?¨ ?ÅYÖ?׋?Ŭ?µÓ¾?»ö?ÆD?¿Ê)?Š`6+T?›W?¼µ?»§?’I£?Žüf?(T]?ª?‘Òœ?¢rÈ?8.>ã43?iÒ}?«Ç?ªho?ªE +?¨â+?§¸2? ê?¯??¡(m?ª›?[É?**/?O¥?|í^?œ¤?¸É„?ŸØV?Qõõ?_¯¼?Œº?Žiä?·x?¼?ƒ'‰?•)?Nu?c?3p&?Fò¡?ˆÓ¾?×êÔ?Á°e>ü<->÷Ò@Úu@ ÖÒ?ê¤H?áÔ\?á9Ó?ßQ?]¦=ÊÏt? ‘?º.ð?·Ì–?ÆÊ?Åbl?æù£?á“Â?ÉÞz?ÀBä?cÛÎ?-w¼?k ?‹.?Œx»?’7e?˜(¹?™ L?˜?™H?›x?|¼ÿ?u²è?J¼?HÊ>šì_<Ÿèì? +U@ ¼?¸Ñö=¬©²?¯¡?°½n?©Kd?©RS?ÛñL?áǪ?·Œõ?©]#?1qy>„Å1?1 ?Šg?jI>áæ?È?°Ýu?©»=?‚C ?€B3?Ç;?Ë'†?Í6´?ÓÄþ?`Ÿ?h+-?0Ìy>â$j?œ´?b*—?TyÛ?!T ?01">â=Û>âAC?ªï?°›j? ?€ >ïÏù>IB?C…?¬[?uÕ„>‡2O>¨£w>Ý6€>ÖµÒ?FoD?JÕþ?ñvñ?ý¦ñ?”6Œ?sä?"R>âŒ>ç”?ZL>sO=b >L¥¡>âÅ>â“Ä>âC>êÑ?ç7?Â?Hƾ?_…"?e1?b½?€û@?„n%?‚ “?=ï?,We>¼>Ù)p>õ8’?n ?c*ì?SÛ>â6Õ>ãÔ1?nUa?sZ¢?'ߢ?'z>ÿRr>áÞ?)Ó?2a>¥=žÆ>3þ$>[„> +Ÿ=ë¤D=Áö=Ãf€?Eh¿?OÓQ>î…>à• ?G¸¼?[ï?Oÿ?AðŠ>Ʊ™=Α„>úO??ƒ$œ?:Mh>'z>›[>’\>«†>¶>ÁÖ?¨üŽ@=@?¢~£@F w@X+™?hi?‰Ö(?½<«?žÛf?@q>²¸">HˆÎ?~C>ýuŽ? ]B>øm¥>³ ¿>«ZÝ>™>BÙ=z¼+?1Sº?z„?V×>ìß>>ÞN¨>ÏÆ?“?˜u?Z8?c‚ò? ¹>ðœ%>V,Ý>CF©>ŠŠ>ú<×>â=0Ü<}|X:0Í*d÷?^í±?+HW=®7(>×$v>Ô¨%>‡GÚ>ÕŽ?Mf ?;6>÷ªò>»ì-=k‰>9–X>üÑ?"b?wÉ?+®?¹;Ž?›L9?0?3wÉ?]„?ZŽ6?8¸?hj9?¯ñl?}sÔ>G>vŒ>ö`?LF±?²¡?¡¦–?x—â?U¶´?²$>ô]>jÃ\>´Ù¨>ö4Ý>åðS>ᣘ>Êø)>‹ÓÔ>ßÁ ?"Ë?@%‰?v9?ï¹?ܹá?Ò.x?·é£?…Ú>öTª>öXœ>ö`â?;©Ã?Œþü?{Ÿ?E‡]?:°É?9™¥?!] >ö §>ö¨:>ö´)>¶v>(`> Êå?(?7¸Ë?võ‡?nÚ=W h?8â?«ÿz?HcÉ>ŸÈá?-#L?wZY?¿²•?îcè?‡¤§>÷‘‰?–Õg?è%?ž9ø?1‰y?P•?s&á?* ‡>òÀ?àX?Cü>y=逦?z¢¢?£×G?T×?3ž.? ؽ>ø¤Û?m‰µ?©1?#K>øå ?rÄO?…Æ>v™=kŸ>Õkà>ùKç?ìÌ}@÷·?}éH?\”?¾Ú?º(Ÿ?LT?B›?šñÞ?¢4=?G–›?H/p>ú#?V?ap2?XM>úc{?*k¦?»æ5?¯È?g?`ϵ>ÐþU>ýn8?7ªO?Ž>ûß?½?8™á?‡‹õ?ÅY?•=¡?'Æ?Zº?‘ˆ÷@ý@0œC?ý°?¹7X?äâÈ?ô~ð?ÈÛ?´â—?¶E?Åã‚?´2Å?¨Œð?bÉ^?F¢R?ã9š@Ee?ªÝ«?¥”g?“Ûi?Ž\;?}e?–¿>üÑì?Ñe?|êÌ?NЕ<ñ¤H>3l?I@ ?ÊEr?U×?tôì?˜‹\?¦Êð?¿&R?£ný?}”¾?ŽÄ>s‹?Â?NvD?µ)>ýÚE?šžÂ?½;¹>™O–<’:>ï1Ó?Ÿy?é%>þ+k?Ç™w?½õH?OÌ$?D×)? †à?æ|?8¦? >¤^œ>ÛS>? ‡Ý?W,]?©‚á?›Z?~²!?~ºw?~Ãß?>œ?„·ò=¤'†=Ò×ü>ÁC?úî?+Sœ?¼²t?Û?¿Žå?ÅÓµ?óvy?ðZ½?.Å?6M?? ?#0=¢U> GŸ>ÿQ†?=?hÕ?“'»?ºúŠ?µ/}?«¢?¼öm?ßr»?ËȤ?©?b?cP€?¿‰>º>x—õ?Ne?ŒÂ×?¦™=?§Ÿl?×·?Ümö?·Ú0?·ó?åÍÁ??ÁÅ?tLê>ÿƃ?Î? Æ?!nÔ>ÿÓ½?”¿?3i?eç\?§BZ?Ëbë?ÿßb?À*õ?qÓ\?Jœ9?.P?(²¸?#P÷?¾¨¬?ó¥?ï4K?òp?‘ä³?|Á¿@öê@ÄÍ?Ÿ?¼Ïh=Ƶ?uW?”:¾>ÿþ2? ¦[?2ˆã?•”T@;Œ?é?Žòx?žZs?¨òg?ÉÀK?î$q?ðº??óPä?º¢¹? c>÷î)=¾ ¤<À;©ó@=8ÚÈ=µ¹î?|.”?•ŠÑ?˜rï?aÞ?¬£B?­/??ÑŒ?Æ7}?œws?¤AÂ?Ã?Áw?³“„?°# +?”e6?‡¥›?\¼?. à>ÿÛ?=Œ?Ö^?@¡?½“?³u?û‚a?€êÝ?_?Sˆ{?gä½?+íË?!xJ?FÂc?Vx?μ?ê>–’(>–!â?ÿ¦g?õ™?Œå]?¤ƒ@ +·?ëÖ‘?‚ó?Uh+?¿¦¶?ŽM>]=ðÌÈÚ~?n?‹Ï?…Wü?v1>wrø>òxŽ?•…?f'7?Ž48>ïË^>A½¶>Û”M>ÿ6?¦P?Âes?‚Íö?fÌ¿?Ý°r?éÕ™?_‚ ?Y ]=æâ>*k«?~öl?ž)@7„@4š¡@æÑ@òÜ?€îg?£ªû?òÃþ?·­?7ä?f“é?°l@å›@OLH@$Ü?¾æœ?o«?Fc?“œ.?Á8;?Æj4?Ȫ!?Ÿ¾‚?ƒ H?[í?GÄh?o>Ù?~&Z?¨ò$?µ•?æù?ówÌ>L¢?n³H?{fÆ?w"ç?rÛZ?n›!?p‘×?šæ2?Œ†|?Åþ?=)?¸[¶?Ä?¾¾?¬5U?Q;™?ðc>çš™?½éL?¨5?}ˆ?¶7@²Ë?òiz?Òú?•¤>Ôp>ësf>üÄ?'??¶°?E.¯?}ñ?}¶ûª?²þ¼?ÌŠ)?Š¿=?sI‹>îǼ>¼£Ô?ïÏX@BÉ?‡X?{ý=¯µ±=ÑU?þ>þrA>û…^?ý >í=«>Ý ¼=c÷`>k?¥ü‡?˜X >jF×>žøi?USª?f(÷?Í¿?Á²ä?‹ãC?•Ñ?·Ú?Ä .?ùn?î!”?¸Hä?´2?M¦ª?^@ù?†Èå?w·û?\¶?‚Ã?ã,?×Tø?Š®?‡í¹?†ë?Añ?y#?´ž@@ +Pw?xº?“^@S²@øë@M‘@>Õ?æ®?Ȧï?hÜQ?—u?î3º?á8H?B+Ó?jš?öÚ*?îÆ?®ÈÇ?©K?¸â#?Ƕï@ª@}P@à ?øp»>äï¬>íS?Ã0€?¼D¦?aÌ?¶h?‚¡Õ?€ge@óˆ@7’@6w@51é@LÈ@JU}?š'¦?ŒæÙ?E1^?FC¿?„ÙÞ?Š$Ï@%ÛÈ@0!T?Á2Ø? 6?Ø4&?âP¥?í¢ë?óeí?Ç?¶e†?Ÿ?’C¢?Éûä?ï<´?Â&Å?|Q?R?QÜ?]ï?r.6?Ó«@OQ?ê?‚¡°?•(]?¶ÃA?µF/?´ñb?³ +h?²S?Èr²@ +|ì?ø`l?”:è?ž×¡?Íj*?Ú(@*âd@&b,?Ý?Ûhy?¶'?³Ð5?‡¬Ù?{s>?« ?³ü?*˜?˜á¶?±ún?Àw+?¬yÈ?Ÿà?wéø?'ÙÜ?xUJ?­kÐ?¢P;?–&?bÝ>ÀÛ>ƨn?m’ƒ?€QÇ?²Ù"?±ñ}?±ÚP?±œž>ñø>ìÒ0?mR)?|¢Ô? ¬;?¦$Ô?¸->«žÿ?NBx?‡m¢?}¸?k¿0?š×Ö?ÈZó?¥Œ¬?@ß?˜:•@!ê»@©w?Ò?‘¹?Ô.Ä?Õ­@Çg@Ze@=x?øÀÒ?­–?˜’ˆ?4þ?…uÓ?¡ò/?¹tâ?€è•>éT>éQH>é%>¾C=¸NÅ>¥5Y?òÒh?õã@)eÑ@)s–?Å1£?®1w?EÕç???2¯?V¸œ?Š)?”‰?”7?§[¢?çL‚?êƒó@à@‚Ì?ÜÄl?×Þq?“£K?‚uÏ?jÊ!?fyñ?•¡[?¬º3?âå@×)@ B @Âí?óc›?sžõ?pH–?¬9ò?¬Z +? •>þŸJ?”HZ?«ëÍ?dæÌ?+°ª?™N?Ø6\?Ç“ƒ?«˜#?£VU?…p(?…­Þ?x-5?€äg?ÿrË@+?¾Ö}?«1?‡ôÙ?d ?W¢8?B’~?T5Ä?‚Åg?Ž¬î?Ö +H?×,g?ª±?ªš?g)A?X™l?$Þ“?CÒ?˜f¶?ã$J@»V@'ƒÅ@$ù@"tZ@ör?ÉYº?ÄNø?U?}¾?)D¿? Æ?†j ?¥á?Îèv@¿©?á‰Z?‘rÑ?N"?¥‘Š?¢!î? µ>ü¸Á?n»¹?‚²º?HÒ>©êÚ>Ö ?hŒ?EõÈ?¢O¶?œ$±?pÐÖ?bPÙ;ÿtÉ>Ët‚>ü"á?¨|?Dc>÷*>¼°È>ý)i?=ï7?Œàÿ@âd?ûÜÜ?ˆƒÛ?À4?Ô»?Ü1 ?hé?+z?T™?sàg?Â!?„Òœ?¶§q@ú @žT?‰ö¨?†-¤?¨ÅÝ?©DÚ>Ÿ²>=˜¨>¤„>áÒÐ?iN÷?«ã0?€|ó>ÍMl?‡O?s¨Ø?Š¹ +@%@9‹?À¤A?»ÿã?‘Љ?‡|ß?T®ê?,Ýü?D/E?Xý?@¥ƒ?÷7Ÿ?9ºv?Åëm?¿œŒ?¹P¶?²ùì?º'x?½Æt?®7¶?©ÄÚ?¤>_Þü?~LG?ÏÏœ?‘IÓ>ç{5? 8=?zL§?rÏì>âƒ2>ä]y?oò?8?þT½@ Žã?ÅÏY?¦­â?Z?V?©?Háú?7ªR?•>â’ç>»ÄG>µÀ>km¥?"ˆý?'0Ž>\tÔ>G2?$Å“?:f?—Å›?©Ö\?™–>?”™» ?bS?í"?árÓ?Ìd?Xé?S\¹?b±?bS?F®©?>Ý~?„ý>á׃?<*'?a¸?ðÚ>=P³>»›>ákG>óÄë? D†?x >áÚ>Õ†Š<c=Y´=ʼ?!Ñ?`›>ÎBÛ>~˜?I~?]Â8-fÀ>š¨X>¥ìH=D Â=uW÷=;:ï>€ýÏ>Ý1Ý>à Í>ÌXö>4>*É>G7u=Óý?¶ò†?¶a <®(=‹éD>7Ý9>Øá¹?dtÞ?é¿>ªèU?EÔœ>ý~œ>ZK–>âæ­?/ÐÕ>ˆÐ¡>±Ó>þTÏ>]Â;F[>ÐÀ>ý/¤> p{=Ûi¦?Ø0"?çS¦? ·±>û²š?<)Æ?A;ß>ûG?Pÿ?6L?ú=.>÷‡>íø¬>øÜT>ó]Ê>å0w>×Ð?ÝÃ?«$?€í¤>j?‡ñ>ʉD>M!¦>\U>­7r>î_«?*²Í?@C?OÔ?Ma»?¹¾?Žzµ?x$?\$?¹A1?³Ü?¤öZ?|dÁ>öÁ?æW??n?)òA>ö‘>Ýh¼>¾,3>é¨e? µ‹?û>û·¹>ù%?¥h>²dø=¨Ž¢>UŠ>°ýÖ?âÚ?Fš>åJú?Œ?°–?ifè?SÙþ?Zœ>?aY‘?‚²=n×µ< äÙ/@>»ƒ^>‡[P? ¬Š?Oð? >¼Ê~?Hi¤?’ïr?ƒz­?ví”?9ÄÕ?{>ó¿Ä>Ñy?Ä4y@!W+?¿´?©¼>÷ª>ê8?›hp?ñRL?œœ-?"£->ÊÁÌ>M`Ó?ž¿o?÷Ûm?ƒ¢ô>÷øß>8¡Ó=Óø?f7¿?¤²?&h&>³8Š?Rù?>j?FÚÀ?;Þ?_Þ'?a€‡?ñ>ø×Ô?þ?l?‘¶?©_š?€8Ê?x«T? ð$>ù^?„ðî?’‡?}Il?y¡°?¤{}?¬}1?4'$?:( ?6ê?-5•>ú¾?Ê/?nà?Oô?$@Ù?˽>úv¬?0i?»ô8?ºæŒ?µRe?’=K>úÜp?%Nð?zü?N)?>û ?·?:ëÔ?¼F?Ƶ0?•TÉ?Wb'>ï›k=¼ý?L—û?±Ùq?Z=>û×?Vjá?†çÓ>ça|>€³1>wª‚>‡Öï>á•¡? T—?mûË?|i«?E€Ñ?EŸm?”No?“•n?½D?ºnå?|ÇÚ?naE>åb? SË?}zœ?b#Ò>ív‰? pÍ?Uû?sõ\?¯-·?¢‰”?}cW?}pŠ?}zZ?@Ä9>ý“¿?^ :?•ªó?Z1%? r?¥êý?Ýœ?jú?eÚ?_P?~g?á?êÝœ?åâ*?ÝÁø?Ñ>ý(„?ˆ?;lx?~^2?~d ?~m{?„‰4?™=?y>Q> ƒM>è•?bO¨?P¶Í? x?C¦°?~Æ?~ÎH?~×#?7ëë>þå‰?5;)?Ll>v”Ì>¾~›>ÿ4?§0ñ?¿W±? ‘Z?“\›?½Ùr?Ð&£;…žl=«íB?¤ƒ’?š™æ>àSë>îõl>ÿdU?C?¾Lo?ÐxŒ?ø‚ù@ò@,°Õ?ø B?’;?g©??‚ê?Aá®?:ó?? «?9Jë?3¶?.!@?Û›˜?ÿ»²@Cæ@ ×ë?ŒÕ°?Ê„=ʈG=œ+Ô?Ô?ï?uÆ(?pK+?jÎî?ŒÖ?Ï×ì?¿q?ªsc?±,?¿ò|?ŸaA?}¦?—º0?¥Æ,?ƒ) ?Vcï?Æ=?žÔ¶?š\ó?¡à¡?Žg?„´?¤Æ?1€?¦€?Ø?Do?1>GßØ?ÞM?ͤ©?“Ž;?w€?˜?‚áî@ £?ðz?‚Pd?`án?V[N?Ç×?°c7?«Áæ?«Ä?Ó´>?ð ²@/@d³?­Íz?u ë@Ò9@ _Ç?6z?€€@ w"@ 1ï>ö×’? ð³?Ù¡ë?Å>õF\?)î?œP]?¼e?];Á?cŠ5?‰8?µDO?ò™Ú?¨JR?½>?XI*?ŠJª?¥Én?¿ÆC?À…?Ä0Ò?RW>ÿÝ?`dÌ?Öó?™²?š9?_°Ë?PBð?Ðó? =>u¡>Ÿ¤q?«T"?©?.˜?yQÁ@Ê5@ ðH?¡Ô?Žéu?¶¦O?आ@@3?ÔÓD>ÿ‹l?9áÅ?‚M?’­?·å?‹C‡?Mì?ëM>ÿe>ÿ`8>ÿY ?QŸ?aRÌ?èh>ÿGE?å? Ñ®@ M@A9?®!Ô?«ŠA>ÿéÏ?2•?bÉ]?Ss«?o@z?ƒbª?¸y?¯P±?~úŒ?BM=cç >Ï ?q?ˆJ„?e××?¥Ô?íÓ[?Ô.Ù?¿4?­˜?˜üt?Ÿ‰v? Ùa?oÌ{?9¥?„^œ?˜ Ñ?Ïb…?éÙA?×ØÛ?Îã? ?~9?mà?o?‡ú(?… =ÆŠ˜8?>û[>ÕR>¯fª?‘ã:?©¾Ø@"4?ß_¼?x’?4 ?F?½õº?•Dà?+:ÿ?¾•{@&bÅ?Òé'>ý{>–s=ƒ”Ô>›Û?¿ˆ?…:_?½;ƒ?Ï<<÷; >±Mò? ++Ÿ>pù=Ÿp>!ž>^Ð\?›;~?Ï(?„Ô8?Prb?–Ë?£<?¡;?Ÿ=µ?·P-?Á!Æ?ïA?c†þ?w-™?{“l?ÝŠ:?éÕÜ?¢Ãµ?¡µ?Ll?8ñ?hµþ?nÏ8>ì€þ>ù²¸?¼/Ô?»ùž?¹L?¸T‡?ê«ï?ä{Ü?Ö'?Ìz—?»Ñ•?·Ší?‰Ï-?p{$>¢þ‚>óÜ×?­5Í?«†G?ƒÈG?„‡C?›Ìa?•¿o?ŒÄý?tÄ[=nŠ|>ª—?*çB@†Š?æ=?ve?&öÀ?xÛ ?•ˆ?ó†€@WØ@;@_¡¯©>ûõq? ~n?¬A»?ßzþ?Ç‘? £?–<ö?å°§?ÿ³@, x@'ÜÏ@:Á @=³!@Fö"@Bä«?ö×?ôÖ;?í +®?ê:²?¸?5?¼‘?õ€Ç?íõ>õÌ!?X@¥g@$A?š§l?¢Z¯?®{1?¬#?ë—>ôq×?Ç[O?Ђ?¡ó?«Ër?Ù,x?Û ·?Ë…æ?ÎI´?ÔƒÆ?ÖE?ýõÞ@Cû?•ÀÓ?d‰Ñ?qøß?rÞŸ?°hì?Ò§K?Þx°?åÆñ?Ý;?LÌâ?áœï@,n@™?ñÑ8?ñ(G?ñŽq?ÅD·?tÈ?±Ì @Ï7?ë7Ö?: f?Oø¨?pÅ¢?t~?†ô:?Ž)(?ѳ¿?Ý`™@ ƒr@ +§¡?’ò?‘Ù]?k2L?l`N?tµ–?Uû?¤‚æ?¨2?gÐÚ?Dá1?–qä?¬Í`@ @2D@*eê@'UÙ@ Bz@Ìà@^&@ /2?ñ…˜?q7ù?Žý?ík»?æ?±å?°¬?añÏ?^«˜?k¡Ç?l¨ø?Ѹ;?ß þ?)ù>©ø:?èÅÝ@@_?à "?kÎP?“ +?°±ï?°›â?°…ë?º4j?ÖL%?ÍR1?˜ÔC?—ÜÓ?‡¢ñ?‹¡À@š@¡y?ô}¼?ó˜á?ww?+ÈÏ?¿™?ïÄ7@Uí@.J?´h[>éa+?H!'?¬ž?›™?Wؤ?€L­@ ƪ@ +Ôó>ýPÚ?†Œ?¥pº?®:?´B¯?°æ?¤Ê°?d]û?W»7?J}?˜%«?”Žý?ú~?×z@D¡?ÿÞ?«?ž:µ>7àl>Fg0?Àí?ÅRj?’ú×?s\?=zR?0ä?`‘¸?˜T?¼Xµ?ü;½?ð5Ì?ήß?Ð¥Ó?—ÿË?§?ªY?©˜ã?€µ‡?`w?®\?ÝX]?Á@?˜Ø–?~À÷? ^?,´Â?ÙGw?ß&/?JR¸?HAI?^åo?aä¤?;ƒ#?,f-?ÂÑz@ ¯°?ͳ?å¯Û>ïfŒ>ô?Cù£?˜gD?±ø®@ÿÃ?ú‡§?W‹[?dL+?Êk? ÇÎ?š6å?©ÈO?áM>€ZÅ?µs@ª•?æ§î?ŠEñ?OȾ=¶_> €µ>â‰*>ûÃP?à ?â%"?¯ "?«kì?.¦?5¿?¢†ª?Îÿ÷?„N? ‰?$ìö?<˜5? Þ>6É?’q?…™Ê?O©Œ?F*°>ð%a>‬?vß2?’„·?`Tv?'ØÉ?ry>âdš? g‚?bQØ?ef?rT&?eøß?Ç? Óx?b?b l?é4?ß|>óìˆ>áÑÉ?—e•?»^„?DHË>’Á >õ[Ì?*Êä?5Õ¸?a<?I;>оB>ËóÂ7Ü<»?ÀÚ?6¢h>·¬“>|TÞ=ÿÊ=¤`,>Tmj>%¦8=A» = +³€?Òè?]‡5?σ? jy?9m˜=…¸ô=~!h>Cõ>‡÷ó=å]9—9Ý?ƒUØ?m¿>ƒØ?¤<±?mß0>‹L#>Rsˆ>NJX>ÿÝÜ?.?ä>™ ¿> ú`>5ùÛ>"òš>·_–>ò¢&>ýdË>öRö?^?ð?kú?M²?;Ý?o¼Þ6?7‘?3Ÿ`?Tˆj?2Ó›=YV…>Üà>Ç]À<2åô=Á$l>ù‡@>Ëȹ=±X‡>.0+>Øñ¡?¦Ž?^˜2?iuƒ?šBÜ?„£Ú?*:ã?ÃN>€Þ?Æ=?žT{?—.¹?sÄ?Lå +?1©>Ã*´=Ž ?âöÇ6>Ë£Ö>‘ü>á’=?î.>Є7=·”>ñW¸?„/?– i?¸R?›8÷?išú?/å>Áª^? f?Nen?<–?0˜«>ÒÇ?iùâ@Q?Ñh¿?5i ?§¤>öP ?1{2?vXÙ?uU?jl…?“é_?‡?$>´Ðe? .N?W¹?Z«??2?*ýa?öu?:jL?Š?(Ù>=hq?“ÑÌ@ïc?Ñ?vú?6Ôæ>÷ò?3'?^ÿÏ?KNz?`ƒ2?P?.X†?=nÁ?3b?*¿»?*t4?V]Ê?w°ß?ƒÖ²?†@?Ä»È?ð±š?}·>øñ>&63>ãs?1Ä%>žú“>Ÿ¥?lÂà?Ž‰û?î?"?ŒRš?£ó…?Ô®>¸Xâ?H¬4?eº>Œü;W£'mØ*>= +?—W\?ŽìX?$î·?-Oi?Šªû?Œ±,?­‡ ?ž|•?¹w>ükÕ? QG?m¬C?ño=?¹­ì>úí ? +Äf?)´†?zK>û,(?L^Ì?™°Ò?À¡@?ùŒ?žúÔ>û‹e?®¡?"vš?m)?¥Î>üî‹>ûé·?ö=? %[>ç©|>ÆÖU?%DÜ?-ñè=åc²>ÉÙÂ?.4>ÿY÷>ü——?¤’@?«Z?½W?¸s?iùŽ?S_F<ÑúÊ>ˆb?½<«?«à¥?p;P?QãP?Óî?=Èu?}]y?}fÂ?}sõ?}‚#?}‹?=Â>ý¥ì?YW¯?•¦ã?žvn?›vâ?FžÎ?pX?_ Ì?}ÿª?¸—?©œ?{‚?±?FÚ?Nì—?í??¯H?wë>?g¾¡?~n6?~v®?~~ž?‡e?§hÅ?©~±?¢Šû?‚Øç?Ê|?bó?³j#?œ;¢?}o¼?Ÿß{?»·…?“¸?lW>?v¾Š?? +ÏÛ>«5>é¥>ÿ"D?õlÊ'>ž~>¦þ>*k:?,ü?ó>!e>^%$?&ˆ>» Á=¯aL>¨ U?7ÇH?„—Ì?»Í\?£·}?žr?æš>–zS??R™?ÝÏ?- ê?&?!Om?,|?áx ?ÿÌE?r:?Y ï?~?€­þ?½Ä?ÄöB?ü:Ñ?ÔM=êåˆ>«¡Y?ð?£³@?ÿö!?Û#‡?—Ã?‹-?tÝ.?~¤—?jѪ?m€(?€µ?K“µ?%!?±ûî?å·>?,g=ùŧ?Ô?ÀN?ˆ8o?~ h?µÊÈ?²Ê=‹'>/öF?–Tú?ä×?¦tj?§Kð?˜†´?‚´ß?h?+l×?…ë®?¾!f@5V?¼/ó?%ht?Šéw?¶—?…½â?B¦?‰»?¬?[Ý/?€¿w?m?€ý?“[>?ž$Y?(ÓÑ?JN?ßÙø?á\>¥/Ž>É“Ž?›Ï½?‰¸M>y³›?‚?ôl?Óù3?•¨å?nŠ2>Ân\?/\‰?žO¶?Ÿ +?’Ô&?í”@ü?Žþ= Þ´?ÑdÉ@”?ª ?i\–?zÚ?ç ?—?”òG?ËÀ»?Ì"Þ?¤¼?žGˆ>vðû>fh>—‰¡>àNl?•%?±p_@”@-?h7:?„ˆ”?›Òó?’ZŽ?ˆå?J¨ð>ÿšþ?Õ!g@5‚™?®Û4>jXÂ?˜–Â?⢥?/S+>“>+Á>=˜þ?=¬é?pò?¢?{]“?k¬>Ò¬#@ ›R@–?ø@?ß(”>Ãv?5Ù@7@¢¸?.”Š? ½?E„>À³­æ”>ÝP?_af? t?°–q?Ÿ$µ?<žy?4ÌÚ? ¶?Evâ?³Å?0!h?„‹Ó@ÍŽ?Π—?'å/?¶ž?‹E?Lˆ«?|ç?|ý?},K?,ÄØ>íL>ôü=>ü™S>á4>ÌØ.>ÄÓx>¼Ð~?m¿’?’?ƒ£?|3?’µû?™Ìç?·’C?¼ÿ=?¹Ž?´±a?¤v?¥[?•rƒ?‘_c?‡«ø?£:?è ?GÄ?äÈæ?êN? +-ø?-<Š\µ=™¿ ?¼>P?³×;? ~A?(^?Ã[­?Êä”?úžn?àsd>²_£>ü`6?ÌX?vö8>&ä€?z=?äò?šÃó?¢í?»Y¯?¦.?n?'Y>¬8:>¯*O>Ö Í>öÆ?\èÚ?fN$?y¾?xþ'?xì‚?ù ?Àù‹?ž[ä>ù?<>w?¼fÛ?ºð`?®ìz?’ý?eª{?·i@Fα@'ý¶?ŒH›?!?ͧC?À?Šµª?Š1?–¢,?´=¨@ +Ð?îsÕ?&™†?. ?vÑS?¼@•@k¿P@\t¢?öyá?ÞÒü?ZÍ?‚ + ?ë×Q?æA?¸n|?¶˜m?®SQ?¹Â?õg5?ë«ç?rQÁ?iiÖ?"`?6 ¦?¯d8?¯t"@%íS@#_“?`V>ô"?býo?sK=>º>•î*?½Ÿï?ÑÓA?öÛ?ô¦”?ïæƒ?íF6@^—@‡?.>÷.?2°w?Pl2?©l®?¾í{?½ýÎ?Àxè?0,Ñ=è”]?Køb?±™?З?ðˆÎ?ºÌ¬?sÚè?’{É?±M…?¢B?Ô?—•Ë?¨è~@Á@kö‰`>柳?N‹À?JÙƒ?Á0?Ù6?'&L>£\?¶c?û‰·@8@`èÌ@']ÿ?å#1?÷õj@׸?×<ê?hPj?ˆ¤/?²O7?²CÖ?³~?££-?ê@?$gV?Ý‹‰?ÚA?o–ž?l³×?I0?•‘G?³ Û?³ØC@j@)€Ë?ÉÌÊ?kÙA?ë«Å@%m?è<?s=ž?QD±? +?=em?Ÿ²r?‘!Ê?>?ë?¯í„?¯×~?¸ù? ï?²û?ι8@•_@ ¦?Õº?­¤?gºÜ>émr>—ÊÖ=§ Î>eCŠ?Æù?.¸9?Â*Â?Å•u?´ïû?®Ž?…ÙB?…Ð?–Øù? õ?ÒUJ?çõ®?©ÓŠ?ob?â/Ú>걋?ê?‡ž?µä?²à]?´L)?]3?‰jn?™£±?LÙ?¨õc?¹¬¿?Ÿv‡?dä$?E r>ä¾?ö?É&?Ço€?”éh?™ü4?â&e?ò@Ó?4ž­>þ4>ðž„?Fö?…#A?¶•?²Ô?ªÍh?¯ŸÀ?ã¥ø?ãŽÉ@  @ ¢Æ?èZ?«¯ø?L¯0>ò×?“û ?øÕ²?òfÍ?Øx%?¿gõ? Mè?V?¤Â ?ªE¥?9P6?×? 7?¹©i?Ž2+?b?ra*?€ï?rt@?biY?^w ?š^?%Ç?«ðY?µ·µ?@¨áÔƒ>õg(?=oº?EHÿ>ä*r>áãœ?šœÅ?¨X?xþÓ?O1?ëë@1 „?õÝ?“?0¢ª?ˆ"?€¡Ï?S'?W?.=Gò7<'±l?Œùj?©Š¦?6¸>â3 +?_û?š `?ž7×?©±{?±nð?Ê)I?Ï>^?É£?Àfb?m#?m¨U?c¯?nº>Êo*>(yð?oy^?Á?‘”*?"mâ?@a?$>ýÓ>ýã)?0&?©ë ?ªœ?©ÿ?©ð?ð Ã?÷äÛ?Š+p?A»k?tØÈ?…ìž?uE'?b—?CöP>êž?j˜?±Ps?´=m?–?˜c¬>ÄôÕ>¯–->ÚJ¾>âsJ?Â@Ú/?˜½>â_¯>‚†}=;[ˆ=¬a@=ûYü>\J„>â+þ>ÿ@?—¾“?•7ç?9¡8?/97>õ\^>áÉ‹?–@¬?Ælá?+Ék?4ê?žs?Ž?V„ž?,ça=¬±>Ü *>Ñ`®>Æ©i>»íû?5Ê? ü>/6>Â7ý>ÝÙì>ݪX>â—Æ>ƒL¨>&Bé=üîÈ=é=Ö>>¬=7³…<ä²Z?Ã59?²H3>ïÔE?Òê?Ž=?û3?3!¹?$[?â>Ž°K>)’ >¦†>â¡ì>ÿ‰ª?97?_ìñ>}ŠÆ;¸,ú>Î'„>ý¸@? ² ?™f?¤“?#©@>C}|>Wb9?{ãe?{±?{u²?z\?‚{ ?ƒS>Âe>lÀž>7ñ5?xêG?o5È?l]Ê?_ü$?BÅÆ?ŸS>¦xp>ë/í?j·}?x•â?ƒ6[?m7ý?%ÿ[?TÅ?‰‡Þ?=1;=Ó,>t>ýÿ?T-?°?¥À%?–á?uæQ?EŒJ?öá>‘m‚>²Æ–>öÓ³>’Xø>ê$Ü?‹ ?HYº>ÓÇ¢>›=üˆ.? w?v[??Ú->öWV>ºç¨>K²?¦,?vVA?¤nm?Шj?†Ãë>á6?0y¸?vgß? +Ù=´6p>¼BÓ?,§>?qn¹?’É?žËÂ?©Mq?DZ?}(-?…J?‹ý?V9?##x?— õ?OØ?’›?=D£?w ¹?4G:>÷$§?Ò»?Ù?&¾?!Ùœ?Fº>÷n?"æX?O©™?5Hâ?$äF?G‡?[s?¥€Ê?ÁrÒ?“sé?wþD?w‰Y?r3»?ˆ“>Ò-?>@ N>†¿?§®? +;?–oh?¶ž?†sÐ?Sõ?ˆš4?mD? ¯y>ØX>íi >ùó=éd³<7Êœ?\ëÕ?l)?_G÷?RhÇ?^ð>ù¤1?âÊ?⑘?»b¨?¸5¹?4»¹?0®O?»•y?°©J?4þ­?O”ª?›«?‘!R>èc?/E•?»½Æ?¨‚Ï?o„ë?‹õP?È(U?®º>ûB?È?I¸ ?'¹¥>ûBÛ?T8«?£e?‡Æ£?U5??Z´F?Jùc?‰©*?¯ªÈ?”™'?|þÏ?zÝž?u5‡>¡À=š†@>É©>ü9h>­(4>±Bü?gš? +â®?75¨?+%þ?‡öu?ô?/W?Cï?°‘?¨fS>üñÂ>þœ)?:U>ÌHÕ=‰Ý¼>Ì|>- >%Î>ýYâ?,†‚?}uÏ?ŽÒ~?¢ÉÁ?ŸÇn?œÃ¼?T•å>ý¼¾>ýÇô>ýÑð?°/?ò ê?œŠÓ?r}:?x‹?}’ô?«ˆ>þ+œ@«?@5%?Ü=œ?Îóð?™{Ä?“ š?—÷æ?“Ø?<«ö?B¡?H–˜?NŒÍ?T~Ê?ˆgè?Ñ0X?¹ +?~Ì'?Iný>þÞé>„¾Œ;ļ?¼ö?…dH?‚·~? þ>ø'ñ>Œ‚æ?2XM?Pg?ÚK>ÿ9œ?mž?G?—ËÏ?–½”?)X!?$l¸?9ó?Aíà?®š?ÖXP@;—@h?~x ?v°œ?g†R?cd“?h=‡?›s>ŠÕ?)Ÿí?µë?†®¿?†‰k?”Öé?¢${?Q e?”ã>w¯ú>!1?²C ?Ù>ÁßZ>1²Ý?yÛˆ?z¼þ>ÿóx?:¿:@ìJ@y}>MÅ?AR?V|?©5Ù?¬?¥ÿÒ?¥äf?¡ŸX?¯Îï?Éá4?“ùþ?T´3?r°?€q?€¾?€Ý?s³?tþÜ?¹–t?Áw?¿±C?½Cf?c»?>ÔÔ¶?ü?À%Ï?Ĉ?ÕcŸ?´”Ð?5qk?ÖÃ>NÌ>Š->”Œ?(é?”Àï?ƒÀ?_1˜?âM@#Ö¤@ ãI@ ?“é?C^?H÷?¤?¥"¨?¹¨?†Ík?€Ù>*fI>!9@8sŠ@)"Æ?=?ó‘?€ë?†*K?—X?¡ú?ßÙ?¬]~>³É?@Ó®?±ú?\e>9*?¢ÛÃ@Ý@EÕ@êl?àÔ>ñ»?Ÿvu?Ðüå?• J?€B?1½H?$yŸ?ÆB§?Ñĉ?´-W?·¹Ü?7Tv?>j@>Œ£á>žJ^>À¼>å3?†5¼?£Ÿ%?ñZÍ?Ãe¸?I‹?°ÖÖ@=TG@>Ÿ@?[e?ì‰>ÿ°6?W~?œV‚?„ ?Pf¡?=Y?µÿ?*J*?+ç>˽>˜“9?-cz?BÅn?±™?¿‘x?Zôà?N¶¥?µ;?zþ @S–d@Kq>@ò ?ÇÓ–?Ö˜@´@?ˆ?=F?|rÄ?r¢Ê?|ÅH?–;±?rÅ°>þ÷Ù?:ý?AP\?1GÙ?'?Í+@Äí?ÄÔ?Cdñ?‡'Ò?˜Š?¶&?Ì?ñ¥/?þ¬?«n¶?Íu>T°Ÿ?!¾?.Á?òËê@ø?#ñú>ÿ@É?lò?ž‡?ŽEG?¡’/@!.@ +î¤?i?bRú@ óñ?ò `?Q÷Ò?MÁ?IŠè?1G>ýªi?P°5?¸Åˆ?®? ?¥H[?h‰„>ª—?>楹?¶ý>ó¡O>ý?U?…šl?ÆC‰?ÀÛk?½Éò?–‡ÿ?{]E?/Õ?h?sÇ?±Þy?ˆ?híz?j©>ü–k?E µ?XÄx?s¬?|^?|T¢?|Jh?›Ò[?ŸjÝ?¸±~?½N?«NÐ?¯ª?®~!?¨÷Ó?ƒM?‡ïÕ>£€>[-î?bEÍ?i”¾?Œ?‰u?{O!?s•¡>ü¤P?OÔ?¼NV?¯RÎ>úñÿ?õˆ?"•?_>Ðúñ?1ƒ?å ?ÊÌ?zqg?K^U>‚µ?Ÿc?nw?<ŒÛ?Aî?TÎ?ls?Œ½¸?‹³J?y–¾?ŒÀ3?»È?´7?“¶l?„OB?y*œ?yi?y)?¯x|@Kþ@ Ç?¹Š +?È”Ý?ô€‚?Òk>?ƒÕÆ?‚ÖÑ?x9?ѵ@Qª(@3õÍ?Ó)™?ÉR-?¹Ìª?¹¿á?¹«r?Øý@ ?ýÉš?¼–?¾ã?¹K„?°(s?‘²þ?«?“’q?¨T`?çQi?Âü >ÇmL?Ôñ?¸¡?¸‘?¸~6?›­Þ>IE¡?¸‚u?¹u?´†U?ÇiB@A¬P@5bS?·ÊÓ?±ÃÑ?%p)?=/P?RPæ?NÖÈ?K[†?Gé¼?Î"å?ÊÑÙ?·?¶þÓ?íkß?ûl?äyÖ?ä«o?òF+?ób:@ è¨@ ‹Þ?•DÌ?T¦g@õy@<º5@ ‚z?á‹Ä?¥ +d?|¿®?€Š>?}v ?t&;?qü‰?³³V?ì{é?¹«È?}]i?Q;F? ^?7ðÑ>ðAµ?góG?aÄî?ü€ @[k?÷o?ï[$>ÃÊ?,W?nØâ?n¹÷?n¢Í?™±(?²Íâ?Jü?¹„?Ò6>ø B?si>?íMó?½Û?&?v¢>íQa>öóR?2L÷?;~q?´ò?ÓD?›Ú?Ÿ‹4?œÙJ? B´?˜°Â?›ÕÒ@'æ@)¬N@;}Þ@OG¾@ò×?(4Ã?.o®>‚ª?FX?r)o>¢˜÷:\?=Ì7?©Ï?K?RŠ?pøf?œã?”?€I?ƒ/œ?’â?•þ"> ä§>Ÿýˆ?ÇFŒ?ÜÐÕ?ûà @Ü#?Ði”?­ßi?žÜž?é?tµ?;8~?Œ#@‰]@ A?G¨×?J¾Â?ïïD?ñ»¡?¿„Õ?´±Ù?Ûã^?êûç?„jð>æM¬>æ3ç>æmF?§0?`ªô?^Öc?eÌ?eã?w¼$?zã:?ÄS‹?ɦÕ?“g1?ƒ´¹?‘V ?—‚ð?¶Uc?ט«?¬f?/I!?[¢æ?䨢?àðñ>䃑>ärƒ?Á%ñ?Ñ.^?*“>¥pB>Ì8¹>ä ?q5 ?ѽ??ËYì?°¢h?µ_ƒ?ãµÉ?㟠+>ùÎ>æŒ?R§Ü?iÕn?´Wµ?Ϧm?Ê_?,ø`?vS½?·ä?¨yM?AÍ¥?<Æ?g?À(?Ïg€?Öõù@ ‹D@é?¹Í?1n?~ÿ?·Ï=?­ÍË?ƒ)?|eâ?Eyö?Hòú?ÏÉ#?Ù¾?Ž¾Ä?mÄl?)F®>ô2¸?&~O?b)µ?b"Á?bm?"î?× X?Óvp?wŠ?w±x?±ƒ?¶¼”?m¤\?8ÿR?…=?©q\?š™?„,ú?¥µ’@ ˆ@/B>áÙö>áÚÁ?¬Òg?»Æc?®ô?©_?©\l?©^³?ã +´@€õ@YR?°P?¦é6?ag£?aÎÄ?¦ý…?¬XÛ?2ÇÌ? ÷?¯?ìx!?œÞý? êT?’ž‘@ŽE?ýÁõ?Ÿ?–ìŸ?-‡L?)—U?¹n´?ÉŸ&?‘Òi?€¿Ã?¯—W?ÊAæ?¡©?b ?‰Xî?É<þ?¹¤>òð>êÁÝ>ãe¸>â&¬?š3?©¦»>Ì1Î=_Ü?R·?x“’?|Æ?€‚q?‚¡ü?„ÂW?à©?¸¿@?¾«™?©{^?­Ñ>?7]à?,¸?6Ä¢?7¹?<`?H[?‡*F?©âÆ?“„-?YÉA?xpÊ?©ðT?´½@ Œ¤@ +KÀ?x *?rTÆ?Œ€ó?–Ž?f£H?@™6?æ2?Î1>óX±>ÒL?á©?/>ø?3ôI?8¬©?=gØ?B)Ñ?Fë>S¸g>>>ñŠD?ôU>KŽ9ñ ;:â,‡>ÿ7ž?†°"?‰.ì?Žìg?Œ4€?]+0?Iwš?»y>á¤p>vÉ,=½(î>Êü«?FàF?.)>á+Ä>­Ëý;3­`=&l¯={Qø=¨2Ø=Òá™=ý¤ >E*==±>Ûs>TDZ=Ø`§=,¯=øñ=¬ž>ö >ÝÈ">¦J=/ZÜ>åÚ?0fF?(ý>™Að>PÅë>vYŒ>ª é>Ä+=KŸ~?‚ã:?––s?í°?½î?Få?ÀÅ>±°à>Ï×>ìAÔ>åÅ>yÿ>Ìøª>+@w=)ë°>Å·>ýG =Íú=Xv=¥äL=ßo¤?OÏ?R\e?Zy?  >þ’~?½?{r ?c^â>:5>ºdg?ðùŽ?Ê=!þª:½_Ü=Y=²¥ˆ>¯y>IñR>q>†">9>¿<Ä?¹? p>ßíì?£ê´?”"?g‡À?ؤ@8ý?ô?Â_?vöñ?¹k?†ìÅ>÷5>÷¦>öõ¸?¡?179>ê±> $Å?&cÖ?«Ùe?Si…=ɲ‰>{'I>ö„’>Œ95>>Ôn>ÈÍ>M¸>âÕ\?vc?¢>²è?&É—?‚+í?bæÅ?V/e?À@§}?™v >nV>ü–Ü>óót>Õw‡?±ÈV@ta?éæ?¸ð“?³¥P?´¸?‰fÝ?0ƒ&>õˆD>§&Y>ljï=ÓÏR?•Áê@ -"?Æ>?u~ü?œµ?µ9e?bú>÷2S>Šþž> ³?P×¾?¡†?!"É>uE=Ðï>žaþ>÷Ó,?·½Ð?÷ð?£õ;?x a?&wª?G>X'ó=Âz?RNë?‚2ò?;Ôt?.ÆL?Ž´?šµn?¹É4?ÉD?¾^P?º°ô?×gm?ãH?gN>ç–À?l ¾?x˜=ø¨=½÷°?m;#?y”ý?ö2F?ìF?Ñ +ã?Ñ}?o&[?x ?Qøì?ióï?‘jà?ˆÔr>kXŽ>*==–[<÷ :1=2=Ø2>¥¼>T{„>¯!Í>¢j>'¦ã>ûù»?{3u?|Ã?rd¾?XîG?M²ž?'»i>û“?Ÿ·Ø?ñhÍ?ŒQ³?ï`?q™?¼´r?Q)T? ø¤>駅>ËEr?…sQ?˜D’>ðz>™‡Ï?‘(~?žpº?…?‰_?¶™?¿¥”>Èn>¾ª™?ˆþ=?yº>ë|P?»?|ìR?A3D=ð$F>Ï/,>—Y€> C^>´“õ?.O‡?† +ñ?¾4õ?¾?–?¾GK?p¨›>ýÍÝ?Þ#?¥]?€K8?¢ŒA?Júä? 0µ>ÿ¨‰?ç>ÿ—Ž>þ<¿?ó#@I’?¢}L?¢©?T'G?hë¦?£¯¡?¡8—?›!I?‚>þ§ª? +OI?$±z?ü>þË:?"Û?cX0?? ?O?Ÿõo?õ2­?ÏL1?¶ÿ3?d'ö?Ö™>CŠÆ?Ê`?¥¦ó?\|x?@%B?C6c?Ja¯?Ž>Ö?•®?8Ï?MÕ1?§`E? Õ3?&?G‘×?¿­ß?Ðþ3?úAÕ?¹’Ö?ŽF?ŠÈ?ã¡þ?k ã? žî?Ũ?¦† +?¿Üˆ?©'M?›PŠ?µ”!?¿ép?oo.?@ßm?lŠ?Qk?©JU?µ}j?vé ?v·ä?«?»?3G+?Kœ^?Psæ?g—ó?M9?ž¤¡?©:‹?’dÅ?qCQ?›â\?ÊÅ?“jø?Nf+?;Ãí?'?†i¿?œN~?l5?]DP?¯m?Š@ 2\@ì{?éÓ?…G?0>óó=вf>ø?’u½?™#?¯U?ŒÉ†>fÔ'>)ï2=¨Š>F G?â?utÌ?2?$*?æ®?$äd?µñ?ô.Š?Ц“?À.˜?8°ý?"0?õN?%Î?«¶e?±ßÐ?B:?<Á~@ ôx@Y>Wé2>â=?À+ ?°,!?”3A?ƒ!%? >Á²ú>ü >õTy?€$?€2?€?íã?»àø?>ú<ý1Ð?,}®?tÉ›?ƒèÒ?Šš?ª“I?°›Å?pžU?WmG?ñR@?„æn?zuþ= ‘>Ö5ž>îé?í¹?T³9> †µ>òNg?¿çü?«§ˆ?Öf?Ä3@ïé@lG@?߀%?¶ác?¶Ö?¶¡ô?”Ê\?­â?Ý`>µµ\>¨z>¸ö,>ó×õ>ÿ ?¸?ŸIl?ÕD*?Ú‰ÿ?Ai?,O?­Iõ?·TM? ‡R?™,ê>ƒqy>ü&"@•?ßq²>ÿ<¢?@a?¾¸Í?—š›? ¿¾?69À??°k?£@ù?fØ©>þøv?V?#zµ?¢_X?㚉?‘<‘?>²·?×ß?«½µ? qª?–¥­?Ä_F?ظ…?ªM?¡²>æHV>ví?Èl?æ}E@ØÜ@Gœ@\ûi@Wæc>þB ?¾&?~/(?šP›@8õ@ xS>þ #?2¿?Ž>*?›?¦‰8?¤lå?¢N?‹ÿÇ?=MÓ?µŽò@'h™@2º?•±ò?o?:|?›XN?ýdÏ?¢Ã?ÅI?¯¤@×q?×ò ?»q9?õ; d?#Æ|?u`é?ÏK¦?õ]?%æ>=?6”t?]?-Çè?%Û@w(@!wþ?vêÊ?5œ ?°÷f?½*‰?¢x\?¡£‹?lN×?\é?àc?èKF>2û >ƒÉ?_·Q?d%??8÷a?>W?û~.?ñ­â?w%?zšæ?z÷½?ƒ‰À?¼Wº?ºÁA?­h2?©Ž×?¥¶¹?…–h>ï–@£U@Í@"×Ð@L™?=Á?1ó?›M?œ¼¨?”éÓ?}àó?_‘?-;[?|ó?h¨Y?Vc¦?kîŸ?‘V‡?ð„ë@dÙŒ@6Á>?‰Çn?þ?s7­?<?º® ?Î¥?öYÄ@ „ @4ov@/ú @'p?äÑ>S?Ò?e[~@^ô?_i?«´…?†Cs=›×¿>Õ˜à?Ënò?ªj?µÁL?”j×9ÂBñ>©PH?ó¤?àAö?€P{?“Î’@'—@ K?†÷?{=—7ˆ?¤W?¦¦L@ +7a@JC?Ç4ü?Í ?ö $?ór?¶…‹?¯&ƒ?|³W?s£0?ãZY?ópV@!ÒÓ@1?Y@ ºù@Ã?¿nA?¬S?ŽE§?“?8?¯‹?þD\@A~@(5@2©@¹O?º ?èÿ1@ +ý”?áTš?žxò?Ÿúà?¦UG?®ñY?Æ‚J?â=¯@ñ²@ 0Æ?$?0?zS>?yŸW?“ÎN?Ž ?™çÀ?›yF?ú%=@‰?ó†Ø?ûï»?vê>iÎ?œ$N?»“7?¤s?—Õu?¢aq?­ò?ïÞÀ@O@´×@¼È?ãÒÓ?xó?‹ðß?¦Ÿ©?¯?Òsp?¿?TÕË?QŒÜ?NCÆ?Jøã?ÖÈ~?Ø…%?@K×?$µ›?mÑò?x–?é‘_@Ï£?û¡-?Þ˜Û?ßÁ5?ÑÆ?ê`Ù@ u-?ëge?Ÿ¶«?˜Tâ?`Ë?K=D? Í£?éµ?-žÃ? Ô ?×ß/?çã@ Sû@8?ú’­?â—?¢¡R?ss?bî?¦ä??º ¦?ÝÙî?·ö(?Xº?y‡?’?ëù?•­ ?•?´ô†?Àœ@xa@ +Ÿ?³;·?s,R?‰7?–ÎW?U<ƒ>˜‚?A}@‰?먠?(ëÑ?&ÇÏ@G£@‹Ø?Ö+´?Ñg­@„@ +ÌD?‘ºê>æY(?ÀøÈ@'äq@ !Z?§gÈ?‡ 1>øð>€ÅÞ?Ο—?ËUI?”?“m=@ +n_@­ ?Á ¢?‰_ ?ÓãÈ@?ìxâ?Ž[ä?™ ¦?Ì ²?Ìæ€?£ÿ>?›Â÷?ÍÑÿ?Û±¼?K‰=Ò7Ç>ÕO?`a?Uÿƒ?Œ ?¡¢b?ࡺ?áðÔ?ãH:?âå4?b2?^‡/?ö?¤¹õ?‹Z??„ Ö?ñ·ö@!6À@6?üL?ë£u?¼H?¬zÌ>58Ò>BÄ~?åb¤?ýZú?ì'¦?è][?€ñ>⪔?5«I?ƒñÊ?ƒÊg?‹ƒÏ?„/»>âo[>âo,?ž´?£Hl?°[&?¯¯‚?ªI¾?©§¬?de­>çI?=’S?¤Ï»?”£?#,T?,<‘>>Âv>[0$?8ä?X»ë?˜'’?£Pº?¤ú?©x¹?Š¨?)¥"?[žÁ>âü?ÍE,@ßâ?Æ•–?=†7?6¼T?z ?×ä?d,?b'?aÁß?^C+?hÅh?nkc?¢$>¹+¨?§ ?ïu»?í’?— 9?”ñP?’ÒÊ?²?Žü?Š½ú?bio?bqí?„n¹?ƒÌ(?‡†?wã?>„W?ØÂ?n7!?©ç?|Œ>âI?*Ë ?©ñk?Å@A¯@?C$?¿«? @?Vú +?bŸÇ?*=??€¨>ÍàÇ>{]>h±T>Uø.>²M5?a?³ï>b>¦ã¬>°pã>º—?Pñ—?Wá)?¡D?©×{?-™¶>ßp >ÕâW>Ì +G>I!=ú»P>¤UH>мL?9:ËæÐ>à,ï?jn+?u>@?[+½?e P>ôƒº>­6î>ÐÀ>áw>bÜ÷>' Û>á#A? Ôã?Q`c?;Rû>»öù>±7i;y²–>0°=>`#>®…É>ß*>œµÞ> a>;½>±'>Ÿ¤Þ= d? +p>Æ¢>'üð>­˜>©@^\@KpB@e@” ?`¦-?)xz>ŸæÊ>Ñ[Ú?Õt>åÁX>Çñ|> _ã=’æ=£Z>³YÁ>óRì=Æ<|À;˜D°?¤Áš?¥ÝÇ?¢Ö?˜¼ >å|s>Òñ?%…½?:|`?SLõ?T¹3?¦|B?¦˜û?|)?u¬J?g¬6?=k>Ë >¼Ýz>®ª^?«à?[}½?-™j?’³?)æL?m¬ì?#Œ> Ì/??ëg>Ô= +Ë”>:$¾=6>µ/?>y?KÊN?G×Ñ?"úx>öúl?ùT?†”?4Òu?A4‰?Sió?v²0?p¿Ë?o(?;éã>ö‹·>‚xµ>j¿>övê?d¿?"‡>ü~>Þ15?;™?"B˜?`¸¬?¥X?‡úÓ?16Ú?xƒ>?«U:?5„ã;ÖµA>xè>ö~£>ö€¥>öˆ'?GˆS?•h?™Ì]?“Ÿ¾?m##?9]Â?#†u?×Ç>ì°>Š[2>žž²>Ìd[>ÙÀ‚>ç>R8¦;éÉ>¨Ðí?}Ï>ž¾9=ÕêT>„+È>§Q%>ê,K?Ó®>ÔŒÏ>dü»=˜ñÈ=½Åo=÷&ÿ>µ<8>÷áW?¸Dø?õ´ ?n!5>þ¿×>ü¶“>ø:Y>U?‹nx?º\?5Âo>ø›?‡ùÇ?žÉL?ƒcG?xÜ?’»?4?áK?yJ=çZc?ªø?¸óx@ 6@x>{÷4>qå@.Õ@ɤ@oÚ?ùâw?zSG?b÷>Ç`‰>¶ÆÎ>ú<Í?É?•là?‚ 0?´Õ?Õ ?zæý?8I>½ý?›´›?e K>¶In?18 ?œùP?‰‰:?{D‡?Œ°¡?¡íW?|Mq?&e ?hè>û¤¶?jt?¥ø?’O?~Ѷ?(øª?”>IÐ\=ˆo>>Èn×>ü=k?7ň?RI'>–V|>Z!?6?ŸÉ0? + ã>ü´½>üÁp?R‡?¯s¦?±–ü?­«¥?™ÂB>”iæ?¼J?§ó®?]£?Xt ?aN{?o ? *?cäæ?I b?ŒºÛ?¾B ?¯ïB?¥Y?‘å?p…À?_Ü9?d..? +9«>‰w?‘©½?½±æ>–µ<®Iœ?R“´?lÙ0?H#¨?W~p@gŒ?ù­ ?O%¸?D™£?1ׇ?b:¢?Æ3?²Œ¯?+­r?_‡?°+z?Œù?(àU>óyP>3O½?‡ý?~îâ??>3„?8€ ?ŠBò?›°S?žTž?Šdæ?xÉ;?eÉÁ?pB§?G6Â?C’I?7Å4?/öŠ?d†?Z…>ø#á>Ð$e>ÿ‰K?9Ð?ïW*?ë®ý?¿¹û?®N ?‰Ûø?†2,?jXJ?]×Ë?b¡>ñ¯E>bsð>Ý$X?0b?¿çÐ?…í?i6?ò•?˜è ?ª‰?–x?4g?ˆi?+ê?á¬;Kþ®=[ó1? 3?m»?nÅ—?š¾š@ +×h?é{I?“¸4?qzg?”ó>î^>tS¡?‘g?H +k?" ?8?hæå?‘f1?ÝTG@"i?©–=Ñ?½>Ù¤e?%–=mOý=œx4?vñ¿?}{j?(Ú>ü ?>ÃfÒ>νK?)/‚?RP©?¦y?‰p?<#>ó‡­>Þœ›?j¾?-d{?°™p@àú?¶ï?Iˆ)?‰#–?«Ú?I3?+ª?Ÿ§?ÀB>¢Tì=G“p?˜Ûü?©ŽP?@ÞÙ?B‚V?­O5?¦mð?`Tˆ?`’ñ? è‚?V¢@«?ÛLÖ>G]N>ýïc?¶°?q¥z?;Ò>?j*{?”þ?‡þJ?€%?<›~?qD>?ãA>¿M`?‡?dп?€È?ŒIa?‘‘x?©Í?©·†?Õ"ä?Û4Ô?=Æ©?A}?1]í??(]?ÊBÏ?·Ž?þV?r¨/?<ªû?`8?«! ?¤.}?‹GÒ?ŸI?ÀÙJ?¿øœ?Á§o?Áœí?¿Úï?ßl +?ô(?Š*f?‰h? b>ÿ±Õ??, ?;>ÿž?­XÜ?¿®ö?ùäI?ÿ‰á?š0{?’½b>Ù ë>Æu ?Å(?3Ô…?¿‰Á?Þ¤s@8ÐŒ@‹»>ÿK°?HXS?¿oM?€ÉÁ=aÿ\>Ü!©?#?…³ +?ƒ;?S!å>ÿy?px‘?¦hy?Ùžc?þìZ?`çˆ>†jú>Û˪>þÏÉ?00?¿?ÉX¡?Ãc3?£F>ËëŒ?À2O?ÏŸT>[ÓÉ=¢œ?³?¼Ö‚?·k?*?µNë?±³´?µ·ö?ÈÙ@%v:@ø¡?ÉÖÜ?¯b?Rƶ?”5g@æ¯?äf8?œêw?´Ò‚?ÖËè?ì±@‘|?ÿîi?¾7I?Ê6Ó?ÛÑ?ßäÙ?ãöu?Åk¨?¡@w?ñl@¼ü?Ésë?€?©?|·’?vw?y^?|ûÿ?CôS?8Ó9?KI4?EÔ?çé@TÇ?E†ƒ>üš™@ 9@$Ææ?Bß>ühX?±@™?½6#?œ2È?—£ ?›ä?‘áû?¼í?ºÉX>½N>Çm>ûÆ?è{?ëÌÇ?ï›l?óg?ãm™>ÿ¾Œ?I +?{O¹?jž^?Âe?T:N?ñ´~?ÜÑ?ŠL?¡(W?äÐs?ÜD?åod?àdÞ?Ñwb?»G%?5Ÿ×?9TŠ?=ý?ƒæ??ßCå?äòÏ?éĤ?ѱ?¬6õ?” ×???>Íï? ”?ñ?ðÃ(?ïýï?µú™?N?T @?º¹Ž?yQ$> %Ì? +#^?œ0»?{ç¥? +âJ? š{>»¬[?K ?Ìâs?±Rm?x?š&¶?Ó¾?ÂrÃ?œYÖ?º&?û}T?çúŽ?¹€2?íîÝ@.tÆ@¡"?ÒeW?×Hº?Öªá?½M ?†—˜?gTr? +Á5?Žzå@2J)@ÇÖ?rå?¥$f@÷@Š£?¼o:?»Ï›?°•ë?±Óï?ö?º!R?u(;?mòÊ?-§¥?8•v?·•?µïå?¸3?½â³?2(w?6nÖ?שÉ?ÝÒ?¦Ê?ª£?{™-?s°o?Ä=à?ÏÑ)? l >­‘k?ìêÈ@ Õ ?ªèþ?ˆôC?®m×?ºnê?QYÝ?ê?Œ¦Q?¶N%?–¸a?†ù˜?£ª#?µ`n?£\µ?—?§”0?µK?´ú¬?´éô?‡mæ>î½7?%¦Ì?¥6?¦ 6?ÿ@?ß)?nµ}?u:?ƒwp?‹„Î?×L?óŒ?žÖ7? ´Ñ>ðÑd>¼²a?…zV?ˆ%@.A½@N¤o@>ÖÏ@6 8?Ëö ?n*?»7?îA?îW +?ïší?Ôöÿ?­¤ ?Ò”@ ‘?ñ¡?Œþx?ƒF?D­?eF?‡Q?"e\@ÇÊ@3[?^^D?9‚&?×øt?îÛ?¨ìM?ŒŸâ? +¶b>‹Ð9?­Ùá@Ã@0U@ï«@÷h? ·¹?¸[x@¦;?úkž?jºJ?xRÄ@’«@ +|?²ÁÌ?¯;@Îa@?ç?Ñÿ?³lÇ?ÎI0?ÛÕ?‘"ë?^q?Rž3?Ã#?†Q¶?GvаÔ?4þà?»°±?·½i?­c?³%Å@¾p@ ãC>#—<»(5= @Æ;Oë`?•6g?ã5?Éè»?¹œ?ÐN?-?8}n?Œ#³?‡ç?ŽÐq?’@«Ç@wP?à/·?àíœ?X 9>ÊSw?¡#ó@È´?ÖïK?’9Î?“Í«?•g–?¢Î*@(g@”Á?Hê+?)Ô‡?#1?‹§?¥éR?ψq@ýG@#w@ ++[?ªêh?”óç>çÖ?à?§IÎ?¥”¤?ÖD±?ÛT@ @è ?É>µ?“á·?ô¸‹@4<@[6?À>?­å?Xkk?k%­?Œ—E?“<³?joº?>ös?’3ú?ÉÛm?¢#b?#%8?ª>¾‰Á>Ç£!?m)?iݹ?ý‰h@ E?¦ÆÙ?cnW?(±Ô>â?¦?h´?Ú‘é?Ôß:?À£­?¸Ž\?z«Á?oÝÉ?AZ¨?9Æò?cnÐ?‡‚?½S?ãºe?½u`?Šq¤?hI6>áñN?Á#?—YC?™2 ?3Áð?#>ôñ>áæ"? +D»?=T?£ ·@ +Ÿt?ö·Ì?©‡„?³Wã?Ô U?ÍfF@ yb@©ï?Öà?Èã?ãlç?ò±ƒ?¢[f?C?€†K?³Y?°U?ŽÕ?˜ô¥?Á†ã?¿‹Á=¦–? $†?)5Î?ÊX@ ‡ß?Ÿ¹S>>[»?/8?ÜÍ?Õ·F?© —?¤â%?b2¨?b6>0ŸŽ>>?o‹?Ž—l?˜±Ì?¦~•?«B?©ÂŒ?’mš?ZTÊ?oƒ?È>?B?7×?;ej?¦8K?©Û€?E ?fO?kë‚?„^ê?”u ?§ÿ@?uòý>â”"?V'?iĦ?WC>âí'?ß?IOŸ?D¾Ç?^ʨ?b¡5?A95?2KÀ>ÂÍg>f +>ãGž?–¸?UµZ?–"?pæÁ>£ë >wŽÏ=÷~=WGë>âQ±>â~ ?œYÄ?©Õò?z  ?Y¥?-þ>â\">Éx>©)Ç>zà>ç>’,S?!šB?Í4>Y”W>GÞ6>áéý>á×ã>Í÷Ç>¬½÷=Œ-j>DÕ>áog>[K>.\Ï>á§>³"Î=ûpâ>KŸ >à°ì>à”»>–­µ>‹“û=‡„>-ïY>ç>ŠËí>•®*> “?>«‚>sÙº=š>×k<>ÕA•>‚lØ>ܸ¬>yö¶>2›ý?Ömº?ìØ@ ?×úZ?(Åë?=U?LNÇ?"tu? J…?4ï)?S Ô>ž`T>•=>àHÖ=ÔâR?œ“Î?±w>+–>¶J3>²§d?¼Äõ?¸6‘?1´?As¦?ü}?[›>>>Ï3.?ï/Ä?ô=å>>ê»’?ùgE?Æ(Ù? ë?E˜´?žô¡?]üÒ>)(M?½þ?˜¢Ê?J2 >¨¦e?GÊ“>èBÁ=ÏwŸ?hgs@ +ò?ȯ>÷Âc?*r?aâ—?€µß?”|?)Ÿ>9È>…<Ú>Ñq>ïžß>÷Ñ>ƒi1>ú Û?Œgt?ƒt?f«¿?5tä>öªi?r²+?²ºx?‚¯?NË’>à¶>Û?æ½?v}/?³á>zÓ?;¿=? `¬?s¢? †²?MØ|?˜&?Z5>ö{á?;Öm?tÑ8?m\\?i§?bXŸ?[¥¬?%y[>ö£b?fͬ?žÔ?.Q†>†z7>â&E?HÎ?;?váj>î`=€}Å=azã<°Ù±? f?d‰?¿@È?å7_?“?J)•>ìÞ>‚| >~¦¤>ƒ{=ÖB§>ÏSÕ??‹ ? ?–ìx?º `?¸?±”½?7™F>øLŽ?.3»?2Õõ?F •?\s?¹‰>ø­C?ž–ê?®½"?cU³?S™„?>[`?-9O?~g=?‚G§>}b;âa>óçÍ?xó?:Òq?V ”?AÒ‚?5è?Ð/È?Ò£Š?Îá,?Ô#?žÈ†?žD?z0@?xÁ?ŽLÅ?Ž×?Ý̇?Ò`?€sC?ŒÖÏ?»<?Õ«÷@ 1?¿œÅ> Éj? ^¡?S•i?‚)©?±Øî?¬Ð ?œ Ò?‡5?KTü?{“?’€?bó´?+ÉY>•²Q=&c`?mñ??¼Ý‹?MB:>üR>ä Ÿ>Ïí…>ðâ>üR¯>a6><€? ™?\ª?qfj?|«à?1l‹?&ŠA>µZ%>ÚÄ?Š+ç?€¸T?«>äÍÿ>aÕÀ?‚è•?i™ ?ƒ!>óTQ>„N>üÇ?Yd•?Ný?xXZ>þ ó?å€ @6‹?©õZ?~^?­û®?¯5€?´âê?³ž3? OX>þuõ?öB?•,ï>Ðâb>ËÌ5>=XW?~½8?h»d?/À?²:@_@d¨?¯AÔ?î~@U?ÀÀœ?O_?¡Ù?â1?ãšg?å Ò?©cä?’‰(?lnX?b‡”?•“>ÿa—?Å@?’‡L?—Ig?•í”?‹¶@?…Ç?ØŽ?ËF>ÿ“>Ó%M<ßÈÀ9úJ>=l,? +®}?¸|X?m÷Ù>P˜?ÞQ?ZƒÞ>ËMÄ?,Ði?ˆ(“?©V‚?¿÷à?~/a?6¿ÿ?&ȼ?"‰‹>œè>;7ö?¡ÄL?³Ãu?ÀB?¹=â>þñQ?',5?ïèM?éJ[?ê[Z@ @gš$@(^Æ?+ÝÓ?)B?ïo?æ>úhç?4Ú¹?g­µ?'Ž?'w?yf©?¢þ?̱e?ã1 ?‘vE?w ›?ºè?G(?oëT?oÎC=ò>kå”?Üe?Îj?~¼?ˆF?4??|h?ÀN¶?¬I!?€5%?ŠÒ?™æ…?—L‚?”±F?êùC@ D @ÂÁ?ì3õ?6½…=9ø>²k²>ÿo?Ó$‡?ý1?»Wˆ?§?Ø?8!?¨? s?š„Ä?•F~?Œ[‚>Q#å>™åó?>Ç?„ѳ@[E?éR?„§€?²ˆå@]S?ç©V?™¦?¿ã?蜗?±_­?zgö?¥?¿¥›?¹Ž^?±”×>ÙÓ=œpâ>.g>jºË?¿¢,?Ù?œ\?˜?šè@?›°L?Ø? +]W?ˆþ[?˜zñ?å( ?ФÊ?8C€?j»Å?²Úñ?úÓ?p?…õÔ?üNŽ?þ\ö?ÿí5@´ˆ@:B§@p¥?¿ê‚?†‚Ò?Nã”>½gÚ>ži?‘ûÇ?¼Và?‹×³?ºÿ? üf? „­?ðH"?öéX?ž¡¼?¤(Ø?ÔÇ›?Ñ ”?¿¨Ù?¹¾?€Ø?†ò2?±…ì?¶è~?½ å?„L>ÿ^é?P.µ?¿~,?¢»t?[/½?9ÚN?‘b?©?#mt?£Þk?åt?ŸwD?jš\?l@â?yV +?{Ö?a|"?;dh?/ ?•®?«¬”@}¼@(mÄ>íªc=¬¾@Ña@´°?ƒí;?y¥9<6þ< ì<˜é>&QV?¾Ê?ÅùR?óm¢?äH?¬€!?¤ÿ-?s)©?~‹?~T?– ?Ò6?¹æO?}ð-?Çп@©C?ÇaŸ> Ñ?6-Í?˜{?cÒ?}t?¡ Ñ?´ü@/@)Ú·?öw¢?¸±¬@9á@,å?ãðé?ºP(?Žþ0?} ?–>üû¬>Œ<>zä?˜Þª?¹YÀ?l˜1?MfD?ÈíÛ?Ù{?X[1?=\f?· s?½D?½9Ì?½QC?9?w/ ?Îͧ?Âû¬=0¯?Êø?(?ƒëŠ?€u?{˜?Å?û?ؽÛ?òs?`I@a'\@AãÖ?ÇŸá?¢<>q/È>åGÆ?Š,?‘ÿ÷?”"?©?«oÝ?›¨?($?dû?6™|?’Ç@DŠ@ ˜ú@K¾?ÚèV>‹ÿ£>ëÞ?^6d?´Ô=¡`Ë?«(?Á‚µ?¨-B?~Íï?”ç£?ºâ®?¢¦_?~Y$?v˜Í?_·Õ?;.Š?.?xe?Â~ï?‰ûâ>øe?;»¬?Ó +?ÇĨ@ ‡Ö?Ïý6?k=?žv7?Øa?À¼-?ž­Ò? hú?¢ô?À³é?ù`÷?Ãð~?5ª?¢3:@ãï@O?¹ +ƒ?§ê|?ù?‘«À?»Ã?…4Æ7¼€>‹<Ù?‚ý‚?“½*?¸[n? 6m?!?eq?èn“?ì-@£Ã?îlè?£ñ»?Ÿ‡J?‘¦§?ž?éáÂ?ÙŽ?v³„?i5)?q·?ä?žCé?—\ê?IÚ¼?MZ¡?‰ O?‰˜€?±ó9?¶‚Þ?­ z?­Ií?á Ë?í4ó?õ?õ$:@]Ð@•8?ÚzÏ?µ¼?S ð?$W?ÈZu@W@ ²¾@Ùç?­Ýª?6sˆ?cõH?‹XÁ?iÕ¹?)“?¨øk@*Â@„ @õl?Ù@>}Ðo>”i_>Ȩì>ÐãÃ?e*À?p-ˆ?oÂ?o¥?¢Ûi?¥òy?ÒŠ4?Ú}ã?*¸>Ò†U@ct@I2(?Ö|?s¹?›Ý?³Dº?´À±?¶H“?œe¦?{¶?…þ”?•+¼?e¨ï>TóD>¸=­?L=;?=Ë…>í?ª#?öCr?úöÖ?yÇ?l{ð?Á· ?ÒŸ$?çß°?ìõ?‹9F?.kC?ˆò`?°¹õ?Å(n?Ü +b?ï2¬@Ö?îp2?žO +?9ª?†®p?ob|=v™š<ºaý>æÇ>ëÃ8?$W?VØ?ÁWÕ?ãê?ƃ?¸ÁJ?ŽV ?P +Ö?’{„?Éy—?Ÿ]‡?ž°?qäc@ Id@ûå>Ë0©>×è»?g¦M?cä¡?›?†?œàä?Ž d?‰x%?ž_Ä?­Ó?¥ôÊ?ž¦o?³æs?Û“Ÿ?ÐÑ!?¤ÑJ?¡šZ?\F6?_g@>ñÚ?>æį?öd$@0¿?Ð{:?°Xî?’Ij?sº2?hØü?R.œ?[€ô?€(°?­¯?eÄæ?eu??šwÝ?£Åú?™^ú?“‚ô?YŘ?1?r?– A?ÊÕˆ?œ#4?7_?iÄ’?­bâ?¨q?«{H?«oð?ži†?Ÿï.?‘GQ?“,@/eK@_m¥@^^?fêÑ?‡Â!?ªó‰?—‰?^q^?TZà? þc?ªHš2>7_?¡“Y?¦Õ?©Ï—?ª V?± ?bVN?ŠÍk?œ?û7?…ïù?‰€?Ã?™Ê^?÷Œ ?óíp?›lÏ?’˜‚?–2]?’;p?Ñoä@&÷?Ú›G?©ƒc?Žû?Ο?/Q?aû?aùÕ?³9‘?³G?\……?+®û?ª´B?Ý»Ò?Œ>áð°?g•.?ßm ?Þr˜?áôß?ÜxÜ?B/µ?Q“?He™?PÁ?ŠR¤?˜ T?mh)?2‰b?.ž”?*°?5œ„?T•p?Yi¡?£?ô?©=Ž?0vÁ?U²?¢´?´zb>ý$Ç=[K±?l ?Ü—l?ŸXÏ>â1S? ¦÷?f³¾?_ßâ>ûŨ? <Ë?S>î>ÊØ?<àš?b\ó?WÑ)?V¯?J¢¬?'0L?2åÖ?bp“?hÞÖ?‚Ä?r£Ø?µâ ?µ­V?“H²?“»î?ê:@ +;?¸<Þ?b–,>ÿZ’<£¤>˜q?b ??}?´=?¥èè?ª|?Dd?\áÚ?b£ð?‰ôÍ?ŽCA?Hì?Ž%?6í‚?b¢7?‘©9?ÄþÂ?¹èe?•á?‹hŠ>â•)>âÐï>ä¨M>âX?YBÒ?hì?™Ö!?¡¬#?8si>â]ü?L–?>62? >å>†‚>»ÀÊ?*-?¯b>„p:>‘³n>áåê>áÕÈ?“"?ž¼–>£Á†=+6g>’Úq>ßØ)>S¥&>®»?T:?/È>±©J>¯¦•>à¨>>Þ3(>3íâ>Iq€<Îúd>Éü>ïaƒ>&J2<`Õ<Ó›à;¦ãZ;ðJ€>‚ûg>Ü£Ý>Ý`6>Í°0>‡7>Ò"4@8òÅ@°>èå¸?)«’?Wœ?Dëv?;Ýœ>¾‚ò?#ä?Q'‡>„]z=Mc¨=,b];™ˆ>òæÄ?mß>ÝÌá>ÅT>¶È>8ù?b¿?_ÏŸ<Ç^>>8/>n2 ?ÖM?4º½? $?‘Ô×>úž-?=Ã?¾°?«Ý ?fØñ?4¡_>Ç#$?Œ?¸?ë”>õ:²>Ò%ñ>D(½?>*2?ß(Ä?Ì}?‡Jí?C–÷? Þ©>ûIx>÷Îå?¡U? ¹H?¿ÿ?7Ho?Ý> †>’,r>„M>µºw>÷ ‡>ÔÉ’>šC>@Šï=ÅÖ²>|áŽ>àÎì>î}>ö¡ ?Še?ú*>ÀW>HL>˜•í>©EŽ>ü´?/†…?Âv>öƒÊ?"3?J±Â? Çn?ØB?eœz>³[>£”ž>üê¦?€‡©?¶TŒ?1c><$>Ð|Y?p:?:¼?I%?~B[?˜ß‹?&§ù>Kå·?O4¼?¦V±?z7 ?FtÈ?ÎB>á8²?BÖ¸?w ?'B>â)?Ûy?„½?‡gP?³oÌ?sdU?.+å>É:Ç>~ÒØ=»šÌ> SI>Ê.D?{ßn?š½½? ±‰?®ø?¸Â ?ºu?äÚ?ñ]Ú?±q=×o?G +?x|g?ˆb½?…`&?Ifn?6‘Z?œÜ?µÁ?Bi+?®R?­>É?º×‡?¯’¦?´¸'?ºÒÉ?¸S¬?z>ù‡,?b˜²?^0?y°º?{?”\2?“{-?8Ä=?JÚ?—A@?‘&Ã?zA`?›Â@!ä@ ÆÑ>ÞŠµ?-µ?ºu¹?«·?€›?©ki@>ø?®½¾=ì^X>²‰?"Äj?{NR?ŒMÒ? ¸À?‰È?Sð1?Š%Q?­‚?°´¹?³ä*?RMä>ñ4O>(–<Õ>½‹…>ü+û?LÊÊ?a?’RS?•œÐ?4AQ?0Ê?38;?>ðÿ?yŠ›?|¾‡?©V.?ž‘ó>v,£>”EÍ?«Tö?²Cs?ºÉ»?™ZI?Éä@4\?üú?¤L¯?ˆ ?1~¼?XU ?‹û—?L3‰>ý¿?"]D?IŒÙ?U& ?ORŸ?‘}æ?°yS?eùD?Ý?UX?v?Œ?±J?½@?3Ò?š?)?5žË?šô?)?‘ÏÃ?~kò=çž+?/C¯?2N—?~Ðn?Dvõ> o?!¢Ð?ÜzV?£9ã>ÿÃ?“‰Ì?þþ?›ô„>ÿ(Ã?Zx«?’Ñ=?˜¬—?ž…ö?Tã?*01?Gª/?IB)? +è\>ÿsµ?ÒÈ?æG˜?ÁR?ÁàÚ@"o@"k?“;?ÛÉ? +(f?¿Í?wP?{H…?oÿ£?L é?&rb>Í{?'ã¾?ªúå?o‡ +?–Š?qç;? §˜?¤ÃX?¥×Â?û`Û@ +SÙ?›.Q?€ ?•—ë?’üÙ?6m?7ð?½ÌB?Å`?ùÉ?ÑÈË>tܤ>Ó¥´?OÛ?ïý?Ârµ?¾[½? Ð?†ˆÆ?€)@?be?F?ˆ¼?¨“h?Sé?/…?*Ó?3Û¿? +l?5*>ñ'‰>÷¡ +?°a–?¾P¤?ƒz·?^>ܲn>ÿÑÐ?Ξ&?È$?“Ë"?„q*?=#?2†ó?žQÌ?•Â³?€=ù?š<ç?À^1?ÊÞ?Ò¼Å?óµ½@ ˆØ?¿³º?€>û?1Ó?ñ3>Ù+;\?Vt?Šè¢?‰*Ô?Š°+>ŠT>y ?¾ûE?ºuz?. ?1ã?Ž±?ªL?{˜Â?ŠI>?ÀS?Ô Ô@6k?á÷V?°ž?`ãm>-4T>Áõž?¢?2q?.£?¨p?ÀC?^†?Ï>öB>Ñ «?‚?ŽH@ù›@*¡C?Žêç?€$é?Æ?¾’ÿ?y™Z?oïx?fM‰?dŽ¸?|”e?Q8>¿‡>ùk?i»”?Mº×? ç0?lã¾?Àî?¢id?‚ ?W/}?9¯»?š.?¿öø@M¡@ø?7'I??C›4?xB?ÍŽ?µºƒ?ÃDÙ@<@ô?HTI?+…W?Çc?Ñ–?êGË?ÒÙQ?Y]?QéL? öu\î?~<?°/ó?7?~ó?_tp?[Ò­?‹ÒÍ?—B?;²¹?"Ç—?·Ù‚?¿‡? þ­?_?¾ ¬?¸y?²?´·?õæU?ìÛ±?Ë–ý?½?~QP?^™>þ>Ë>êk5>Ë¥q?63ë? ì3?ª¶~?ºaf?â׺@ò?ªòï>*Ñò>¤†©>ýñ‡™>ýj)?U[?‚è?Ùþ?÷Äq?á\>5?‡˜Ù?¢´–?‘úT?‰ +Ê?3^Â?)„Ï?¿õ­?ɬ¢?y±?tSf?œºô?›ó!? û¸?£™@?¥ŠÃ?«ªA@ëü@ ªA?Üm??ÓD¿>¿/F>Ñ*?–Á?•a ?¸´3?±Û?~!?”«?û’f?Ö +=>ûqB?-w?µÕË?³³?ŠÆû?X½?‰^Ð?•?¼©†?±®|?£ŽÐ?ÓÚD@¶ó@ò ?»çA?¦”B?zh­?²,t@ v@{‹@ªô?ô4Î?œ3·?€FQ?,t^? £¤>ØûV?}¨Ä?ì Ž?Ù²¡?º<¿?‡ó?]Y?6Ì?y;?Ãe$@Dt@ol@ýl@ tö?ø£±?ÏÖ?”@æ?™‚‹?£œw?ëPr@(/³?Ý‚@>÷øH?}¼%?Û'«?À>?”äG?‰›Z?wv¿?w_h?wLv?I·ä>æ U?fó?á+Ð?Ô°›?¹¨?³t'?­[ò?ÈÉ?ögÁ?ö9ò?ñŽX?ɇ³?v I?ºS@,B”@ÔT?¡,7?„nÙ>ï¦D?FÙµ?ÜÄ“?À³A?à‹?_È?,ã…?_ä<@­Ï@ ?z8z?{Ý,?Oí?&ç@#»Y@"Ý?ˆ»€?ÊŒ?â«Á?à/š?¸eN?¶è?‘Ý?‡Æ@?ªÈq?²†#@ A@PT?¡Ää?xCR?§lb?µÆW?øWã@/B?žs¿?Pb?]FB?jpf?3<>ñ‰Ü?ö²?ÇÏì?£?qƒ?Õå&@<²À@%MÊ?Ò?ÍÌ^?¸+Z?¦Mi?#?†=ÿ?Ï?=’?oÐ ?o?U?:?Xgæ?“ss?z#>¼Œ¦>Hâ®?’Þ˜?³!ñ@kð@2ð¢?ð…þ?²ÎŽ?Òr$?è\7?•_3? Œ?ƒ5”?Õ;2?¹H×?ƒÄî?Mÿò>•Bœ>ʸÐ?A^a?D÷?{?‘.?m„?l‹-?ôk0?øa@+ž@SÁ?Þë/?Ĩ¬?Ð=?Ñ‘m?ÎC8?Êø&?³ðb?œ€'?ƒÌÅ?‘x?iï@ næ@ýê?°Ë/?®Õœ?i'?eÜ.>ý²>ê·?ž ?¸’?‘Þ?€¡³?@†Û?±ô?rQ?ÁO? I›?>hÕ?€Ö?ø7c?ß«þ;¢;]?­fÉ?®L­?Ô]˜?ß ¤?Ûà?Ô]ª?¤¬*?õô?‰–”?€Œo?ŒaÔ?¤†?—EÓ?Z¿Ç?Sgo>ÿ_£>òe>é>ÿ>æÑ6>ö¼Ï?¿>púF> Åm?†ØË?Ôö?¦ã?f&Ò?© 3@ CÙ?ø C?eÐŒ?jB{?£_]?žn±?ŒæÙ?­Ÿ?¤Ð)?«ók?(?x ?S>ñ?Š?kj@?ÙH$?ÒV«?Â|?“ÕO?‘÷,?Œñf>tõ¨=²d{?çÁŒ@$sD?òÿ?«´?“ |?gÊ“?Z[?Ù^M?åÂU@-wÐ@(b-?äÐ? Æ?Ù×?úN?Ñ@?ÃQB?®0¢?˜„?yÓå>ã0·?7ì7@M@ø?žÛÜ?¤@ B‹@µD?ÕÛÒ?ª‡?ɲ?â¹I?³`3?Tƒ?ƒ®ß?×ßß?ÍÄO;»žª?š½ç?©Ô¹?Í®^?Ö?X?ßC?u™'?Hä? †h?SkÚ?À±?º%¿?®;³?³¥?Ê%y?ÈWá?ÅQ÷?Ç?¨Ÿ5?›ØP?¯‘u?½FY?˜S?!å¹?2µÁ?bî?c™°?áÍ«?áü@Ê©@#•h?´À0?aýQ?%Œ>áú~>ôEŠ?å/?I·?²Î¥?¯jq?G­‚?CÓô??ö?<ˆ?Wþi?bø?b?b•?H­;?.t~?c°4?©…?›{?·ü?%@@p@jr?ñ1?ééô?_¼>ðÿ­?2£Ò?b-„?b*¶?_’¶?]—õ?b<5?SçÞ>âD>âKM?©Êa?¢È²?2Çt?ñý?“ä&?±°¥?À1?Ä€!?çD?3Ä?[o?—õÌ?¡ì®?ýû@¦ì?×ôÒ?Ú{>ˆ}=Pš?.™ƒ?c3.?“L¶?¨qõ?‰¼i?Jšq?MFù?b§é?ˆd¥?â«?ÓI\>[]>/Ï ?v'?&‰Ÿ?ZJ?niY?wÇ?€–ó?sÅ?b¥Ë?b§Ì?bž?JC? +þÅ>ûÜX>Ü-w>î,?b@?^o?pË>þ%ò>Ÿø>Žn? =,?@Æå?(–J?­ç? žõ>â1O>å¥ô>þžo>ñ6S>ÊÊ>¿H? àX?±>?8g‡?FÕç?bÞ>áŒÃ>³; >ì*(?L­? ~>&³@>‰Æu>à×ú>àº{>àžT>Þ ¡>m+H>W^â>· Ç>«Œ´?Yœs?‡íI>ÓAÓ>Ï >ÞÈ>²2Ó=ò•Æ>^1>±/-?â,>ÑSó>‘Å?ßÑS?Ô7>?"š?hÄ×?28Û>ý >}ïå>|0t>JDj?0«¤?‹)þ>Üb=¥ô/>Ê6`>ÿmí=¯Ám>âLˆ>þ7 ?^Ïé?[É6:ü<{Ô>Z >_ùÌ=úÀ?SKŠ?B»?Búé?/—>&.>ùFÄ?CE?»²h?‡Š§>?ÿ>!›L>tÿ÷?0ßK? óŒ>hÜ«>ÉŽm?(mê>½N?¶b[@\XÄ@'ÿ +?¸÷Ø?€ê±>÷Ö>÷½)>÷¨A>œb‚> CK>¢âÂ>÷V?>Žê?uÖJ?M¤?*Є?c@C?Œ8G?^™Û?"Ìæ>®<1a=]¸=ƒj0>è’?:n ?)L>ö˜t>ö–Å>ö“Ü?:ú9?cå¶?%7a>öŽ¢?.xy?]h-?Z˜ð?_Xé?láß?vCÂ?5Ê?ïj>ü‘©>Ç¡?X>ð?“Á¿?ƒQü?v¾¥?¡gS?¶£•?Zç>öÚ?.5f?VqS>ê]â>Ý=”+<¸~€?I[?w)Ë?›ø?©¯W?ƒ¸?ZJÔ?2Ö?&(? ¨>÷‡‰>õ @>Û½×=ü[O?:eÆ? Y?øwI@H±?6XG<ݸ?‰ÄÈ?º&»?¿à?ñ™?q†ž?8Y¼?¸4?Ëgk?Ǩ?pÚ?Z&?¬à?Óu>øñß?’&æ?—˜Ô?ÒbŠ?ÐŒ?»¢>ùSÖ?´¬Ö?»»?oÏU?erà?æÞ?“t>œYE>¿Æ`?0ù??2c£>úS?§I?ieÿ?oìÐ?5ZÏ?Gˆ?dÆ?=¼Å=Žš>$$>ûñQ?I;?¶_a?—i§?FWŽ?nÅ +?„Óâ?V>?Й?ZºÄ?Sa?dŒ?1u?z÷?©±J?H?HÎ?‹zÔ?—¾%>é§Pªƒ>íÄž?L£M?hŒ?)z`?fº?†â?”—?¤¿?|˜F?|z?oÒ'?®–ñ?©Ös?°„Ž?¸?æ?c(?]W:>ý?L?{º…?˜Ùä?ðõë?Áù?H‡§?0md>¸Iß?uš?)Ä?$nÇ?%y°?:p‰?:yA?P°Ó?]ÔW?ƒÐ–?›+m?g–?fØÜ?—¹ÈH;I ¶?œ2Ð?¾Çó>mÊ= G8?W‡j?^¥À?˜Éí?—‡?å³o?Èß×>7–´?‰o$?€iG?+0ø?%ø_>þöm?±n?Ì?Pƒ>ÿ>„°Ù<Ã=R?=C™”>¾ìg?:?i6?#B>—P><Îà?Ä*?ç$Ò?ba'?9&[?`S?uÒ½?ûut?îW™?£þ?¥Hˆ?ˆsÄ?…˜ª?‚Âb?`ÙÕ?Fr?¶.? iu?3Û,?h`>ü—+>}Ö? ]ö>ü >æät>« ÷>‰íÍ?%14?P9?Þõ¾@‹z?z>?MC?×è?ê{¬?8½>ù€¯?)­?!?ˆÞ?~®–>ØÒg?6T•?ÒBŠ?¼ð?–™®?“ø›?š|Å?ŸŸ™? þ?]0f?5ú?I‘Ý?€8Í?FYy? ‡?•Md?µ˜?gB?+nÐ=íFq;8aè?à2?µ«O?­J¾?ªò;?ºüË?Ϻÿ?žL®?jbS?‚ý?†5A?ƒ ¾?×?Å5?wc2@yT@9´?Â8?³â?”Èè?Šüâ?”qs?“Ø?NÆ?Pòy?€C°?€‹á?†Él?’ò?¨š‰?²„1?È0?µô£?Žz?t×?n߯?›Š¾?¼€D?i†f?:a>R…=ÀùÌ?­©?å˜e>=ÝV?òæZ@ ƒb@'[™@,?®m3?£‹Û?½Ý‹?½¹?‡pÔ?æt?¨ »?¯G€?Çì=?ÂÇï?¤-"?‡ŠÖ?ù?&¡H?nHÿ?˜ï?Àœ?µc?Ï?‚B½?°¼@ @-_è@Ʊ?óQ?¥äq?}Wµ>æ)ë>–EÈ?&$?>ë?Îà?ÔÜ9?²G-?¸ë?ÔôÛ?ÐÆ>¼i¿?É@!;@ µè>9+d>°­#?‰WÇ?“¢Ø?¿šv?ª è?ƒA?Yp_?!c_?*S“?3?>ÃA?”h@ È1?À´¬?Žpð?• ?›§X?‰j¯?r«ï?Cò?0MŒ?‡›?“„¦?—»Â?ô™>_ã7=´Àð?¨n?¸(,?ºM#?¼m)?¾zM?—“?üÂ¥?áE>‚¨>«^b?”*]?½¦@(Ì…@äº?«Ýl?ç]>9/E>Ù$?YG×?t%?žœ$?ºz­?âDn?ûEÏ@ +Ñ!?ËÇD?sÚ”?Bÿq?˜ý|%?Äî?öÊx?Ï¡„?ÅVÈ?*è©>Ï Ÿ?Ìå—?í²f@Õ„@ š`?®?N ~?ª7q?µ;Q?LêÚ?=ò>?Ø$§?Ù:u?²L?«ñø?|r?Z@O,d@BÒÿ?¨,?©qþ?çôb?óuB@9Œ@×%?€=F?¡Ò@*É@'¹?„õÑ?„·?l¯\?‘Ú?äåß?Óq¦?­bˆ?¢õ›?oK?¥Ð‰?Òîw?³–ô?g)J?¸ N@”ø@¥X?»õ\?šdÀ?H—?^8ö?zU·?—û7?ÅÚí?Þ†f?úë?Ú· ?±p)?R»Ð=IÂ>~­?Š?62ã?y|?xÃs?sŸÃ?tw¬?y+[?-¹+>Ê‹‹?0üÚ?‚ø‡?“!c?Ÿb?ý”\@/Š?@Ÿc@°ê@ ó@ b?Ä—¶>ø v?ƒ&_?Ô¤:?¼c•?¢ž3?›úà?Z§?|HK?WKi?›Ž¥?Þ4Ç?»éu?„v¸?1b?¨Ñ?\¨Ç=9w ?8Šm?öwÆ?ödH?öHÇ?¦Þ$=ÒÞ¸?=j3@Þ?åav?ˆ]?{.?1Ë»?F’¥? ø?_ãÏ>áß@Æ"?ñÚL?·”v?¥Ü>ô‘l? ¾Ó?‡È?”!@N"@˜?þ.£@.¬@)Kz@*êò?íì?àêu?êë?î2?~â?l"Ý?­¢Ë?¶Gü@ +ש@5,?£Ê¹?¶?²Ê²?Èç?­“Ð?›¬f?=l>ñÒë?)í?Jî?„®°?¦QW?£™{?šÊ¡?”Ê¥?”Lj?í œ@=K±@,ð”@ËD@ œ?´;ˆ?¾‘ê?ð†?棊?”¶K?*?P¶µ?CŠ±@Að@ I @¼²@?ÄIh?³”?àå?ñœ? dÔ?wá"@2ˆ‘@x-T@Q¥Ÿ@.Ê>?åä¬?M,r?k]?ˆa…?[lÌ>š-x?(Öó@ÚK?øùp?Ö3?ÏIä?“#·?‘x ?ãÙR?ö0ž@ +6S@’L?ܸe?»Ôw?à£X?ûùâ@ã@1¹?¿×ä?3û?k–¡?°QÆ?Ÿr1?erI?‘Q-@›¥@ ¤ˆ?j{T?j]ö?Ó3?Ó7?‹ w?¤ì?pŸ ?i¾Õ?…œ?Œ·n?ˆdÑ?‰V?gîA?#ÅÌ?F¡º?DK?—+?©? ?œ\Ô?xðÃ?Bë?‰×x?ˆA?ä£@'´?fGÀ>±H¥?eù(?­Ç?œìŒ?‚s?V¾œ>çX,?·q?¬§ã?±=•@,tl@(žÒ@ aÌ@¥@BÍ?ö¿€?‘?8Té?~R¯?ãW?ÝsŸ@,„j@ª?»Wœ?º¤º?å³è?墬??âË?-ŠÖ?…/”?“SË?56¯>å1?QÇÚ?– ™?…#Š?JÙd?+¸‚>·¶>éó +@Ì>@jµ?‚#•?dmÕ>iùÐ:KøO?«€©@ €è?Íus?d \?/`.>yžÖ>ú;‹?×€+?Þ?È?¹¯w?²÷”?‡[7?‡Nm?Ej[?¹ˆ?ªD?ïk&?º˜?]šL?y©R?¸7–?¯éå?j?_ª=?Žy¶?<ÿ?«í¶?µŠò?¾‘ÿ?Ël?—b&? Àx?Ÿ>é®a?ØŒüõ>gÙ4>F†?ŸÒa@'Q@?½J?©½>¹a‡>È+“?à‹?â4”?É 5?Áã?’[ä?lœm?—¶ ?ÀS-?ŽŒ:>ž32>Îxh?túÜ?xJÅ?Ü\‹?Þ5??yGÒ?aœ?bR?bf?«á·?Ô'£?÷=±@j@ oe@þ?üÆ@?ê*?äOø?lÊ[?b ?¾Àú?Ìë?¢Q\?‹½É?D2¬>âß?/]?–ËŒ?‘m.?b?g,?Áè{?Çüá@ G@ \®?™;?_°o?b9Ó?b9r?‰‡?¥2Û?£!U?¡Ý?–&é?H®Þ?Cbe?W5Ç?cÞÔ>Òp>ºÒË?œ ï?Åpk?»=?¿m¯?‰È7>âxô?CÔb?ÂcV?¿t8?ž4è?Ÿ©|?”?šªœ? x>í±ñ?åV @ Ñ+?ŽŽø?¸?7Ì?b¦G?Bkø? MÁ?jÏ"@h|?þ‡±?§”7?œ>>týÎ>pï¯?:áï?HÔÊ?#à7?©c??ð|?bªK?tÉ?€™O?‹Qü?©ôî?‡é~=!š>ïÒ>ùLS>ä9£>âtÑ?# ?$K\>Ä8>£ý|>‚©Â>Kòù>` 2>t0/>±ñ)>ûQá>дì>¢¯>¹¶?7)?Aso=­zz<¹Q>ºVù>á…ê> À&=w^à>9Ø>~.Ñ>§¼È>ƒ“u>0–>2“®>H ‰>fÙá>àZ>à;«?Uƒð?_ö>æÇ©>¯ä/>(«>5ù>Þ¹§>°Àh>¾ü¡>臱>-õŒ?€tÍ@›¦«@m\V?ÂÙo?ŸÁ`?M?_7>s„A>Á;(?·â>6+7>¸œl?Ù>ó">ü-=“§?ZfÔ?fÞ¡>½!>”hÍ<º>…Ø;>ns4>QN`>ªó¢?—Ù?{%R>µH…?¼At?ˆ’1;‘ç€>Bè?Ñ?3X?@:?1¹V?#oD?`ác?£„†?iö¯>øû¢?De?êU?˜.>D¢>âM‹?2|M?x1·?—’?­Ü?¦Ò&?ŸÎ.?sÙ?'Õ¿? s|>÷Yn²>Ë´!?4e…?v§1?1C>öž½?l³(?˜ìè?‰;á?‰µ„?*oê>³N_>Ààn>Îrñ>ngä=PÆÅ;ºš°<„ÙÀ=8f=vШ>¢¦%>ö¯­?&àë?P!»?Œ>ßa*?›u—?ÛÅp?[öl>¥i;>ÛÖ)>öô?/ù'?[ +M?Q\>ô»í>ùÖø?)Ý?²Ç?%gÔ>º*>ˆ¾H?#̤?H»?Ajm?:ÓB?„ä_?”¾~?NÃD?‡>Ý8?ür?´ßÔ?¶É?¹óu?濬?òÉá?gGØ?,HÏ?šœ?§Æ?L|§?I&?}M?vXä>þ]>¿ÞÙ>¦GT>³ó?¾IW?Ø/z@&Ø£@1õ?ôà>ùbd=œH>J©>qV>Nʆ>ùµï>ÿoy?!v:?¤ª?‚_|?q)M?4?)®·>ýhç>¿p=ël‘>wn$??ÎB?>FÌ?~ƒ&?Žoã?¸;—?µŸ¢?¼.£?T=ê¼~?%2~?¼b7?²?ÄŠN?’5{?JcV?Q$>6–s?QŠ?Z ö>ÚFK=£Ö ?Ý>ÿ@5 £@}ã?úÒd?ÈtÃ?°ö>ãù>E•E>ߦ>Ê£> YÕ>Æ´ô?.‰Ö?Ó3»>ñ0¨? ÿ.?‚>ý×?\»?ý_7?Ö +Û?f"0?Ë’>éj‘?ŽoÜ?x2?H”3?[!?}ã]?tuá?}"„?aŠ?<e?@ Ê?6s> ï†=ÍI?IíÝ?{å™?ƒ?…£v?^Î?LÝÉ? {?&~ê?”³þàÆ>Ò¬¶>•>4µ?Ýn?5Õy?q(?A”ž>ÿ'@?¿Ì¤@Õ?Àðì?]}œ?²Ê?Ô|¼?‹S•?W1"?lè?c­ü?¦ è?¾Ã\?]0Ê?JÍ`>^â‹>=™@:v@âœ>ÿ¸æ?³?¬é‰?· +V?¿ß†?Ðy®?÷dÂ?ÇêÄ?næ¹?±Ï>bû>ž&†>°¤Æ?*ò?g,ü?ñw>ƒ¦>pØ{>Zn%?q?¬ž1?³¸æ?°†1>¶¿">)F«?¬? î=Ïâ=D?'?^°? ND?OŒ4?Ü%•?¹-”?iˆ±?„Šî?—:O?Ì?(@_B?Æ’J?ƒòó?aGž?1Ì?‰«d?§‘?‹°Ï?€@È?ˆfñ?ˆá@e£@Òà?F½&>ÿS.?mƒ*?jÚ»>ž‚´?ª5@R±@&»?’Ö¤?„´ã?MH>Ù2¿>hä?=c?ëÁZ?ðÈØ?èÐ?¹›>?€NÃ?Nˆü?³?297?6iÛ?›ŸN?Àw•?Àv?Àj¶?ïE?÷á˜?e¥t?L7?¹×Ð?Àt˜?ÀuÃ?Ãü`?þÙ?äçÙ?6Þê?Gæ›?€JI?b0Ó?H¤?RB•?ÁŠ?”á˜?!Ç?~vò?Àh[?…ãÈ? ×Á?OÄÚ?‚R?€S¶?~HF?ËŸ_?èY?zYì?Aá&>$‘à?l€7?’ùf?m€?Ð`@®?û†?AÞ¦?9>–­;>ûq?«^:?“»í?!Âü?øQ?.Ú? #?+¬Ÿ>ÅHò< Ê?2”S?À )?zÃ;??Úy?&Õg?±qb?ë6z?®jœ?“Î?•dÊ?—¸c>Ê„¥>bЫ?j²²?{ÿ??ÅÑ?ÖL? Mž?@õ?¦å??˜êÐ>²ù>žýž>ÖT¿?$W•?¿Æ"?ßqW@É?ß_-=B@?l»?¹Ö?a0¸=¥6¦?%u±?¢4?yóŽ?2j³?¨÷ä?îãn?…} >ÿM–>ÿGJ>ÿ>”?…â?¤­?ˆ÷¨?# ?’4™?›L@ &?@Û?[‡×?%&'?Šø5?‰€U?~Ü?~ÐÚ?~ó?:†?†ñ±?µ3?¦Çš?´£?óÃ?xö@ÔÞ?ðr?Rr^?Ia.?Eq?Œ”ò@¶@?Ù-#?@3?ª°^?¾™´?Ù+u?ü7€?õ×n?ìXÉ?Áas?™ç?š +ó?¢N»?’*Ý?„*?²‰¦?¯?H¥¼>ý‰ýA>ôèÈ? +Nï?¼ÛÌ?Ó¼?‡x?|õÿ? ¯}? ]>ÿÓ ? =Ñ?ü‘²?üªÌ?ü—d?÷q?¦IS?¹5 +@T2{@PC‰@‡ã@›?|-í?z#?sf„?‡\O?»l?“„å=}ˆ>çB³?·RÊ?µ^ ?³cÈ?©#,?—ôt?´€ã?êa}?ʼnC?{/ó?“5Ò?¼L8?©1è?ƒ”n?®D»?úÐE?â Ì?»þ.?}:>ž8¶?+t|?‚h?fàü?F¾?™Æ¨?úÑ?Å‚ ?…ú?LU?Ä?=,?{%p?¸¹C?÷c‚?º,Ó?y[Ë?—æû?²‡k?fø>Èø?NÕª?›`š?g‘¸?"è?f_4? ?¹V?Ëz?á»a?ö>?»?”†?¢Ä>?¦et?‘߉?„žš?L³·>÷iI?);?b?–?ÀU ?\Ä<áŸß? q?¹{ +? 4"?|Ħ?)bø>!¥Ü>“èþ>Ô ?'ï`?’ù?!h?¨ä%?™K’?u™Ö?’Y?ÈÀß?¸Ì?ŽA2?£È4@ @q&?ðì(?×Z?_0 ?XE¼?Q`ú?@m¦>ô<}?Ť?µà??®¯›?ÅŽ{?Îèi@[ @` ©?Ç{b?¼¸þ>pµ;–Ÿ@‰±@3/?œGû?ˆõ?Êéf?ØN@W&@ ?d•?gl?¹jÇ?¶ÛŽ?æ>ò Ó>@¤=ãÙ>ÑÐR?Úx?‹ÇG?½aÞ@™Þ@" 2??‘eä?g¿?99?^®?¨¤h?¯½‡?ß:?æcÀ?ìc +?é« ?–æ²?˜rN>VÜé>.Lð?5?@HË@Ôþ@1ù?Æòž?ö ?¶bb?Ô ¶?óXº@ y,?ðI»?­òÑ?v>ô>>ì?uÎm?ie…=¡Ö=Õ)Æ?$Z?0G?›†‘?¢mâ?~XB?iƽ?Ð_?ýh?±ÕC?i]?qØ?vWo?Z1¢?.—?iýd?õ`V?ö‹g?”ö ?Žu«?¾6å?Àç?°ÝR?®P>óþ +=µ±S?„€?Öa5?ÎÕ>?ÔÈ?¨_É>ô^é? +iw?g.u?\ž=ó¹(>G¨h?­ž…?»Ûw?å†?ñ8?Ò€¤?¼´ ?œ8Û?„Cò?¸È£@ms?þî-?ÄØ?Éû?å¼?å«Û?b½?† Œ?rë? ^´?„,q?—ø6?ªsÀ?ÅÜ??ÃÈ?Àî?™`Þ=JÕ>0J?±9?¯`Ã?xÕW?h+¬? +‹>âáJ?ɱ@ð@ +Œù@D?½Fæ>º¤9>ÍX?(¸Š?7Ç?㻦?㨸@K@›u? K}?nèÃ?¾Â€@P¹?ÙÖµ?’ -?ªZ?òu?ðvÍ?À!]?Ã’ð?Ô*è?Ö³?è¥Z?ë¤!?cC>÷Öü?†Ç?àþç?ѵÜ?©þØ?°2=?ßòŽ?Þ&Ð?âZò?â„?ùw>´MJ?¹ª¨?øç1@ìì@ @Î@&ÒÅ@LÆX@%E>tô©>r)¶?‘Uú?–ÑX?œLh?¡Î?йN?â-´?µÞe?3+?•ý +?©•u?­Sê?¶Æ‹?²Ò?¦»¤?¨™£?ñ>âæ5?Œ›v?¥ÍZ?ÉBµ?â Þ?ÁËo>Ƕ +?©(?ǵ\?’óî?tnš?JJµ?yû?1&L?b?sç]?”/˜?‹¼?=Áø?)~»?ü”O@ +?à?œ:BT?ÏV…@"¡?ß‘C?qœ?™™¨?Ö|7?Áþ—ÿ>p%d?±|ó?ÝSe?' >´\±?5µõ??cB?b„Û?f–•?sJ?b¦ë=¾Sþ='Ùæ@ØÂ@ †¬?˜Ôl?y‘v?“̸?™UD?UÇc? Ì?#‰??Ús?Q$7?°˜?¢Ä?ßBÀ?ãà¤>Òß >¸xÓ?†zÔ?—¥_?x–?b®?oïa?tdI?¨0²?Þœ?Í!è?©ç{?-?ZŒ&?Q½=?TÆ?OØé=æø=ãú›?D-»?bfR>ã|Å>–‹=ųj=¶W[>2]G>ç+È?‡*4?aïÔ=Á =—Åc=\½š= ¯>ÒÜ(>á„o?NoX?\Ò?ï+>Âø?Õs?-ŸI? _±>àó£>™žu=-pó>Yºe>PÚ‹>àI©>à-t?Vµ?_äS>ƒ5z=4£<Š8¸<Qà=°Ö=8JÐ<¨£>½ç>’4k<Ã"C>û^¥?*éÞ>¿Åo>à=—ãá?3Ü@@MBÈ@!`P?Xb•?r¡?z3?f¢?”Ák?YÂ?)Äñ>U* >¿Ë…?/=º}<:Øò:ÆøÀ>%X>bØÙ>¸û>±¶®?z?59>€§Ï>Ÿ*ð>üWf>üv>ûàÏ>Ì×ò=“ù§>Ð4?¸*·?©?oè®?<=œùJ>bØ>‡Tö?:Ô?y˜Ë?“–!?º¾˜?ˆøˆ>ùÒ?Gé•?˜^˜?AZ^> © =ÐËG=@ã®>xí¹>þ)«?}Õø?¹çe?ZK÷>¹š•?cŠº?£:Ë?0³<>j¿?gŒZ?¹p{?~Öé?,¡”>¢M9?£¿?mOæ?.¬ð>õìE>êÜf>Ý>>aýK=ÔZÚ>Ut> ëN?HŸ?@Èi?]Ò?‡?#ö§>¢C°> zS=F¨0=pIµ? »¼?zŠ?t¶¦?h§ì>®X?@Ã?— ?;²>öÊ.>²u;>yå>?8ex?ˆz?L«>¨š>û»ñ?(¾>`&<ö); + €?"Ë?ä?Æ?”ùö?]Z#?@Õ?(Ø?[Å›?w‹#?J»?=®Õ?xXÏ?>?¥Wò?¸ÅY? +:>ÝA?8þ™?rä¼>f = _>û1á?,Da?¼>ønL?7D?PÚ)>jf?„ô?ž§?µ?xðØ>hº¸=ï²>½íS>×hR?]ûô?q|‰?yMª?uj5;<…øÓ?JÑY?:Á)>ùÉ‘>ÿð­?.< ?:aK?yf•?}?‰?H,Ê?\ [?–‹o?ŠcÛ>úvË?`<0@d@O?»û?»€í?¼$ ?ªH•?ˆQ%?0Yâ>¨á_?[Ð×?¯?¹{ë?bÂÕ>UÙ>à¸#?&~£>õcx>Ö2?g)?,¤?ZÎj?| ?&º? ô•>…RW>MØ>¼&+>Áµ>´œ˜>¨1x?WŠ?]ß>ý ¯>ü¼?Ÿ?¥ø8?|í¼?‡^/@òß@VŽ>e\>å—@h~@¨\?÷Í÷?Õ:T?Ž³A?z¸v?¸?6×>¬¸—?-Gê?™:s?Ûý¥@ ¼W?¨×?? >âê? ?±½Ä?Ó±±?鸇?ð%’?úºî?—w¨?~mš>Zf> ò—><Ý„>l¿,?YfN?Zšî?§F»?©´¥?ÜÑ\?Ú}ô?¿):?> >¦cü>Çv(>ÿ ?+„ø?Ú?EÑÑ>íI¾>ù>ÿ;>“ù/>E\?4µö?`z?’‹? ï‹?ŠrZ?€¥?ÏÚ ?ãR×>ór±>ˆW?]¸O?`L“T>Ń]?¿ït?Šgà>"û¬?ž?€î?gÑs?>G?Fnô?Sén?/¢å?&^[?éx?1?&?2J8?äXA@hÌ@Õ'@KX?x]?^Ç ?•Y»?‹2ü?~г?~­?yßæ?taÂ?nâv?b+Í?Uɯ?š^R?ñ¢U?Â|Ç?€??‘·X?·éš?¢‡?pu‹?–¢ ?­ŒÇ?Ç $?Þä?”¬)?hà8?§É)?¹ö÷?=¨?1ƒ?ësç?údl?… I?ƒÛ?ØbÇ?ÔC@´@Í»?)¥-?A»>OmD>¢÷ ?õ +?­ú?7ÙG?tÜ?©ý˜?–èO?€Xå?€Z)?€Y…?¾“I?ëÕõ?dz¾?»#*?À_e?À‡š?’ãæ?4Î?—?Yq@;LO@=V£>æTO?!Ý@ z2@Yã?Fî?3«c? €%?ÁÒ?1×6?ªµX@*EE@ži?Îâ?¥Ì/?¶´™?›~G?€MŸ?¢S?¿»’?]î?±?ÉgÏ@Fž?•åÃ?f¨D>î¬?>¹3?J›?S>¨A>ž@8¼@ &X?µAÐ?—Ô~>C´?@2X?è`-?çª?‘ž?€*±?¨î?ðY?¦@«>ý©©?~-s?À.à?º­¬?²Jø?V‘]?_?h:d?f¾?HËm?* +g>Þ7'>Í)®?ûI@é?ÅQ”?ÀÓ? â™? +ª?‚‰?…ê¾@‹1@Ô%?²ân?™æä>Mª>ÓS§?¿Ó±?âš@¾·?êh×>òºI>¬A}>9¾·>üÕ?N°?@¯‘?B‰6?‹ÖÖ?ªwÚ?†H¾?fw?'o@>ÿa,?+}?:€ð?p>?/Š?laŒ?5 >é´•>¾ c?¶+?X`?ÀíF?ÆÒ‹?óh´8?¹n?¯?§?‰N:?‘5/?¢–×?žÇ?¤.K?•ÕÉ?Q+¦?C=†?5ò?a¤$?›qK?°‚D?¾µÒ?Êú?ÖÃÏ?©Ü?~Ì?«Æ¤?ÎOæ?Ñ¢š?Û ?>Jð=ð<ú?‚×`?¾XE@69°@]êZ?þÂ?¸Nñ@ ^{@ê*?qQo?+ ¶?Í%>ýT?ª¼6?°ªH?•p?} m?}«?}†?¼p?½^r?4Ë]?2X?â¬Y?䞸?憼?èuB?êce?äHì?¯Ï?­0w?žYÅ? (Û?Šæ°?rGÉ?v>Ä;°:ã3@>Å®¶?²—œ?¡ª¢?…-}?‡á?ˆôæ?m]©?¶M?Uè‚?£Jž?s–>´ÎA?‚ä7@‘:?Ê??v0Ö?Ëxq@8‚?þ®V?¼ Ä?Qª©?<ò?ÍO +?¦Ëà?zPÛ?­èX?æ2¹?Òñ3?»‡? X?‚O?o ?»J÷?»³¨?¾%Â?}ÞN? ñ/?OÕ?†è&?Bz»>ù ?O‘g?Žý?’ +]?Oâ?õI?‡{?x$?vFj?{Ú·?y~?…Í?PI? ½s?ˆí?ш?sõí>|ËC? QÏ?v!ã?EÍf?m?žá?÷?¢Ý ?ü?®©0@3?ÆÖ&?C >øŸÿ>Ú€·?FÞË?£Àa?¸ ù?Ú5?Ë~Ë?¸bE?±ºt?£li?°m?ÐYn?ܦ¡?õCv?ÜŽË?˜·?µÑ—@ ¯s?þ„”? :ú?¿?©•?ˆí‰?Ã?Y|@0‚@#Lÿ>ÙÝ>#1Y?g>?nî@m @Ó?¹îž?µOÒ?¹¥ž?½rÄ?²¢¡?¯?Ñöß?Ó¬ð?ºÅë?µÀZ?L¹–?ñH?rßÐ?83?œõ†?§ö§?pr8?.s×?sF?–Æb?üÍZ@1„"@!Š¢@Y?ÿ[?´ïƒ?˜Ç{?Næ?%Ïh=Ù…G>7 à? –Ô?JÚ’@0P@*0ó?°¬?r@L@c@QN‰?’$o?j<á?žˆ/?¢'ÿ?uØY?\Ê×?$ )?j?™ú]?ÑLí«?$r?HBB?o÷?•®Ü?™”‡?±Ã´?±Z˜?§|ÿ?¤uÃ?R§?‰Æø?¬þÑ?±2ÿ@”’@#àX?Ùþ?°ßv@ñå@@Åg@ ºÌ?ºò£?™²?i×Ï?°Åã@ÎM@db?¬ œ?›rA>ÍY>˺ï?Uk‰?RÙ?©x?¯ŠÙ?ÃmP?ÄÜ@´…@Ž?ÓLõ?–,m?¾?ëX/?¿è +?`VÇ?tÖ?£Ó^?¦…b?åmt?ê->?ÆÝ¡?É3+?¦iµ?¡Ê?Z²?*v²@U1@Y9‚?åG$<¤ö +>ú*Þ?­‘U?­6ô?«Ì½?Ÿ@ÿ>Ó— >Ìüø?q ?zH¿?C‡˜?AOO?A?Á?k›D?™4h?©?Ã\:?«ÊY?['½?y¶ +?ɪ?ËZ:?城?åŽã>ÒQ/>¿E?Ñ×0@,Â?Ãeÿ?e#Î?>é?2]?ÕQ>þâå?#(õ?á‡Ï?ã!‹@ øv@Ë.?ël5?ÜJ?ì?„pó?`™?=Ü?˜$ ?éŸ?¾rJ>ãâQ?â?¾xÈ?ÀÙ?ÿÂF@Ï­?Üp†?Çb&?Ãÿ%?½‘9?® ¥?Q´?˜¾&?˜¤?”õí?c#™?cÅ?¨D?ªB?ò­×@Ÿ½?¨nc?bÜô?Œ²Ø?ªõ?eP¯=,<>"Á’?Z?×­?â›Æ?â6?ÂÒY?·¼“?±Ä¥?¸¤?ªá6?œd?Ç6µ@ *‚?þ5Ÿ?(ã‡?(\–?Qñý?J›x?C5V?;Ñ€?Œ x?¦UŸ?Ó-R?ír+?ijè?“ü?´¦K@Ò/@P©?bšƒ?bû@­@¤z?Yž;? ¡ö?Z{G?…üô?’»??›A*?–î@"¿í@%ÐM?|ç>â<“=µŸ:?™Ñ2?ïš?áƒË?̵™{>Óô?³“?¯U°?m;É?\rR?ºÍ?׊—?*»?Zg?…÷s?©â¶?™jf?uƒ®?€½?ŸÂ?¤e.?©>Ð?©ô?ÿ!?ý7?B>ÿm'?QOD?zY?ž?±æ ?ƒøž?É>ÿ®ú>K‹µ>Ðœ?4{Ô?Cë;?b³?b³g?D¥?D÷?I±?Nu•?‘åï?©ýi?¨Îˆ?©[p?”à|?d3²?g?b˜©?W5S?EZ? *Á>¦¼9>šàR?†¸?’ïw>ã í>^éï>[öY>=[>ÂL;?>?ý4>â…>ë„?›F>ô«â>ÕJ>ß+Ç<³7;ðt@>ÍÒÀ>úN>êR×>áNû> ˆ>…×>¹rY>àí >¿W>f ³>€o«>à~¸>Û5K>˜éß>£Ì ?V?_Ú?^)>ß–>4c<€> «b>7Yµ<…]x>A05>‰C&>”·¾> '±>f7=’¿ =?¬?CQl@;6Ê@`*?’Þ³?—Ô­?¢Å¼?µ~M?θ?…‚U?8½w>iÊ©>²PÈ>ó= B>ÓÔ•>Ú(v>Ë7»>Ú Ü@ )/?ýÜÅ?¢§Í?Ž€L>e9>¡/Ï?S}[?.°¢>àè>Û>ûnÁ>øÖA>ùäÙ?Žç¦@ø­?ò‹Ù?–ó¦?.¡ž>ŒU?1±Q?T_?yN.?W'Ž?'òK>ÿW¯>¾5ž?-x?x‚â?xh'?xK>ñÃÿ<ÿ€ >²ÎW?'àã?ðÓ>¯ì+?w ?_\? \4>p)8?:?h€]?ä>Ö=Êá=“˜Ó>›ÜŒ>öû,>öî=>öç4?=³?dù¤?ð>·£/>ãÿ>€`/>ë¨ÿ>©þr>K+¢=Œ³>Yþh>c×>ÂîQ>ö¯=?¯­?öl:?ƒ˜”?l’?Ý¿@°?¡­ ?I‹w?•v>öÕä?MÇ?nKŠ?`âó?Sß?.-M??y‹{?Ÿrc>ê²ð÷Êú> :æ>Sá|?F¶?xÇ?j?>ö\^>ôÚœ>èO÷?À‰Ì?Ø´¯?Çe?V?—?ŠÑ®?‹ä?ZÙþ??±?oqÆ?xàÂ?bË?n)>Ø—™>Çp‘<ÇÔ¡>ûÜ7?´Ý>Ú‰ñ>ÐÉ,?WT?#³?Psw?B¯³>ùü“?æƒ?•F?ƒÛX?*"ù?#Å ?f°?!‰?7{$?ø>úªQ>³æä<ŽH>ÀD`?„j¦?–¨?®÷ú?ž‡?QŽ?b ¢?G<ô?=¼Ê?>‚-?¯{>šî!??WùÖ>ÙÎ:=¹<?‘¼Æ?ì?¤ð:?|@>˜€=.H>¬8½>Ð'»>+¹> +bÆ?€Iª?ŽZ«?=Äþ?9ã?Â>üν?K?QR+?5@í?NRŽ?²t?«ßú?fË?…É?¾%=?£™Ä?_q?Ÿ"2@)S +?ÞV?>HÃ>‘Å1>ý½`? õ?8n¢?¾Oò@?±£:?yp?P•¹?T?zúF?i:â?=0?ÿ>ð;t=¦X=¥ñ žŠF>­F@>ÿ]?6RÉ?‡Ÿ/?m½<Šy<:)´Ò<2Ë?M?bcÇ?.þ!?å&>½Ö“>—M>®“Q>ÅÐñ?»¬P?Þ>à?$Û>Üåú?Íq?Õ¨¬?ÒÐh?ÄÐ>SÚq? +³G@M½@BÍÌ?üST?ÞÖí?¤Š?X»j>â¨l?ON}?³ )?š„3?€œ?¬ö?σí?”GÙ?L”]>ÙÔ¹>ŽH ?(Ó³?R}:?õ?'³>Îóe>ÑT8>(>=Æð@;“©@6(å;tp>U½?ºçé?­ù?€>7?`U?A‚?˜G?[?Zê¦?7¤?¨>>z¹ž?EÒn?¦‰J?³ã$?Ãä?¥|[?p˜?+ÃK?T…?ZC²?wë?éL @Lª@M½@YÒ?¡A?"²?Ife?YMF?i0X?bÆî?_²?í¤?¬•?"!?Bé‡?sß?šR?ƒ?WÒƒ?oÜ?€aÎ?€c?€bm?-äU?d>n?Hùý?ƒ»ý?6J?€ao?lÈ`?e—s?žÂ?±ôs?«Øô?ª×¾@_è?ñyé?¡2´?–±?^L©?=$k?%¬ü?ö†@':@ øè?óñó?Ë}À?—¬\? ?…ö‰>̯´<¼ ?~DG?¶JÏ?Âu(?Êy”?¸óK?±‰? 6»?˜ÔH?Îñ3?Ï7¼>nœ¬>£¹@@ZË@ +~?ÓAœ?Ç’?-Jv?uœé@;u?÷ç¶?æ”À?ÂÂÍ?p×?I£é?ù´>ŽÍŒ: ? ß?„OÎ?Kä?#™>™{I=Ù ¨?~~é?­ëÜ?5L?>®“¶>‘ç @øo@0‡Ç?éÃ?ÛB3?7&Ü?:œ~@ +(P@ UÒ@(lž@&æ?–:Æ?ø?†„s?—G%?È‘?¬çF?ìµ?™Uo?µK?– ?Y5$?6“ä? ?‘g?Çà*?§ýù?–Ì?‘v?ˆµ¢?›BI?ŸÎº?†´}?bË>«C>9T?{Ï2?’ju>„9­=怸?UÈÙ?k ×?ó ?÷|É?wúk?t9>ÿ£>æóˆ>k™?¿$?²l ?~Êb?‚Íä?jY?™aù?ª°Â?ÑŸè@ ãƒ?Ñ¿\?E’?&ÿ­>õ_"?Ü÷?ó´‰?öø?þCŠ?£‹L?5Á*?¨ýÍ?â45?¸Õ?ü ?„i§?„¨ ?§Ì(?»C:?Aè?¦„? ±F?þ@”„@~?Meö>ý‚n?¿`k?Ê…0?ÏbÔ?Òõ)?©¼8?¤æô?¢Ün?¡œ+?Þ ú?Ú€n?½¶Š?¿Çz?ÕìM?Ê"m?€šÃ?‰ú?œÂú?˜è½?c±Ò?K¸;>‡§7?/Š?ó/?ÙÌê?|.Ú?{ìû?vuÜ?‹¨y?¼ô‘?©V"?{Л?±ŠÄ@ Õê?æ’©?› ?®ºU?Ò,á?¬¬S?fN_?”…Z?ÒRó?²ZH?x„–?Ãï@É`?áÕB?Äÿ?,¬ >Ë?T?Ë¡R?»mz? Ö†?Œj?z=”?”bÝ?®H÷?ÖTj?ø~å?”Sà?h?I­?£æ?9ïé>ù|ì?B”²?yXÐ?ø?›XC?ˆLØ?y +v?ŸØw?º©]?vÉ?3¢?Š=?¼A?•I–?m\Ž?H2Ž?-yˆ?³ÐÑ?ùLô?¦æn?Tßõ?i#?w´ª?æýw@$ìI?÷¼?«åÂ?Êg7?êÔ?Ó”›?¹&X?{6? +‚8?@_7?kÞ?¦$¯?ÛϽ?²ùx?‡€?ó¹G@?•t@a?Hº?¥w¬@ÔÝ?ço¸?¸$Q?ªÆ^?–&T?¤a]?·Ùò?¹ä€?ÃT7?Åe?ºrx?£?$?Aø?R=ý?—/?¨|@ ‚m@<?sõs?kÏ? `?²ª>ó‡5>õÁ?tA˜?w¨C@,§µ@-èâ?ÂdÄ?¶”?ëVä?ò™¬?™r?ˆËó?^è½?LT)?é^û@þ6?ŒU?+û:?Äø.?ùœš?ªe?qRN?ìjp@-²­@äÙ?Ÿ&¿?Áe!?ö=,?Ê|l?QÔ?G•?=š0?E6?€Jã?˜ Õ@bÒ@é?°KÉ?±@Ð>ð[l?‘?àÐé?æ,8@ qç@ û?üC>/Dt?¹Üp?ñ.ž@ž”@-„J?â(w?‹¦Þ?›Ã–?¦µ?\Hƒ>€ÿL?Z©?”ÿ0?©Ÿ^?å6z?Ø‹N?©ˆZ?±BU?îA€?ó¯?¥_Ó?¢ï"?ÁpÃ?Êô?°Ós?©ƒ?¦‘?§Ÿ‡@W™@.š_?¹|:Îõ?]|_@å9@ +IÔ?äšÇ?à_–?ÎQ@?Ì©š?ÿ ±?úm?C;à?:ö8?a Z?q#?lÖ?š Ñ?½æž?Î[ô?é«@Í.?ðýÁ?Ç‹V?«a?½ëÜ?¹k?†‘?„â?ƒ6"?‰?Šv.?ˆ@¾?·‰Â?̽®?½ñV?±pë?jMÎ>ì9\?NV?­šþ?Ÿ$§?o"K?ŒÞ@ ?ý€J@’–?üS?s< ?HD?,Ô?Ò?\Ö)?‰ +?©o?Í?±ö?gYð?~Wc?Æ&Û?ÄAí?Ï='?ÐÓÖ?|l ?[p«?n‰W? X?Ãf?’ïö?ÉS?e‚?a§Ã?\³?q´À?ªÒ{?«ðÙ?äΦ?æj?·%¡?°†³?¨Lw?¢ ?X¥?L;©?„?ók?ДK?>q?AôN?ˆŒ?‰º?Æ¥…?Èek?ÇE ?É_•?À•ã?Á]Ý?Õ +?ã^_?Å?¾?ld?zÕ?c/×?d7?Õÿ ?Í?§Ÿ?-X?f¥?bx‡?'¯">ê !?1‘?Pð?„ÓÚ]>C?­÷¤@ )ý?˜`>}>â-¤?ù?©e?§³Á?zîf?‚4®?]¥7?O¼?Z‰&?b#6?™!?©›m?¢âz?”¦?ŸÆh?Û¢ì?Ú®]?gŒ_?wP ?º¼?¿I±?È ²?Óõ|?yá%>â0ü?n·N?ÎÖu?ÔïG?Ü—(?Ö·Ï?¥x?©z?àÊ?Ý´s?Ô{-?ËÁ @ ¤€@ö¤?ôŠ?·µa?ÙÍ@k,@Á@þ7?öº¤?¦h‚?ªª®?‘¡÷?’?­?o°f?b€Y?ýÒŠ@"gÎ?æ@?”²«?¢sB?°$’?‘fã>éÌÑ>üèµ?bµr?eÆá=LÒj=Aˆ£?3 "?M?­ª?ƒì?ŠÎ?½«Ÿ?“µé?2:3? >^ƒš>šÞx?9EF?(5±?b¶|?b¶Ë>öà¸>â³u>þcÜ>ý.¾?~UÈ?¦[J?Œ:)?bÖÓ?dex?bž#?.>Ù> üÔ?µ?ˆ,Á?ÁŽŒ>Hy>°¬Ÿ>â>ƒ?îe?D^§?Ô>» Ø>÷Z‡?O“¹??kB; „n:i`8±<À>Ãápè>á]>áF´>´Ü>ŽÒX>fÖ'>OP”>¼aÅ?"ô? +Ÿ1>’ÇG>‘«?2¦ë?IB£?%Y>߉ã>S>Q«1>Â?T>¶×‚>«bx>z=ìv´>q‰=Þe=¯B(>Œ„?/Å>°ã^:8W?Ep@,@c?ÿ÷Ë?k ?XÕÅ?J—å?rœ1?¨>åcŸ=üçp=ÀÍ=„ì6=€¢ <~Ot?¥< ?²ÿ÷? £{>þ½=ôÛ +><ƒ?†ê>? û?¾²?³\j?g^?gäŸ?—f‡?oNT>{ ?X>¯lŒ;§ñ€>yÌ?9ª?D +æ?7ß8?É¢>¢Ä>‚ +ó>gÕ>óa?DŒè?K„M?R{E>Ú1x?¢k?g”?y ¶?xR?p/A?^Hž?[âÿ?]T?Uô&?NèË?¯5>÷”m?C5ù?ií£>íÖ“>$É>ˆ™ >À‹>ÎV»>Ü€>ðk>÷\?E"^?mÓß?qvß?vâb?cÏ ?R@>üXú>’BÄ=ÈaÕ>œ>>ö½^>»>€³Ô?`po?¦y–?J à>ö¼Æ?JìA?}Þ!?žò¥?§úe?ɇI?ç­?–·ò?J»w?† >öå(?QÓ·?„̃?©¸Ë?¹@ï?¤å­?• ï>èÊâ=Ãr¢>­c÷>ö~Ö?»ë?œ§>é-¸?âî>‹ü>‰‡?|Öƒ?­:+?[Õh?<2T?–â?¯ó?V4?–K?w+-?†¸%?pX?oÑG>H°;AŒ<ÎMÐ=Pq ?qD?–dU?5yÜ?#“„?K­??«?®¯Þ?º›Ò?‚¿ ?xók?£›í?ªaº>ðZ>ž¾p=k}H<Ûtù‰8>ù˜ë>ù«X?õÙ?XMú?MÑ…?+c[?+µ¼>úÄ?+3Ÿ?ßÅ´?Ñ°?zTù?sº?_=U?Œ!Ý?äñÎ?Àƒ’?ë?Gÿ ?²ñÕ?›e¨?{f?`P?<Òm?&²? +Ü?C6ü?{h&? ƒU>‹y‡>áA±??¦?!ñ’?;Œ?[>ûêO?&v?¸-?UP?|*ý?ø/U@ ’ ?k„=×ü?j6?‚*?´L÷?½$?“>üÅB>üÖF>ÿv.?UEÒ?D&+>ºAþ>°ÊÚ?W¿ú?B<ÌȪ>ÐÉš?ü°&?Êv.>ý€Ž?_ú$?äª.?Ê_G?…x°?G¤|>ýÒ©?B??žÙ?cj„?‰ú}?=?ª`ç??ŸÕ>ª +¿>Û»>þN?Æ%?ú)_?˜Ÿ?xQ·?¨¨u?¨Mf?]?Hˆá>‰3k> Û?3ú_?Eb?>þÞo>ëi¡>‰ ­>ËL§?P3?V#Q?\)?@ç/>ÿ.˜?]Éb?¹²Æ?…_¤?ãI>ûòu>ð˜_?DÀ·?u¯>ק=ö f? +Žæ?*ÊÚ?\6í?]o?°µM?¿Èé?¹CO?²›g?ü87?þƒ?Þc˜?Øʯ?Sä€?cî,?õ"?‰Ë?€æ?’žD?¼&.?¶¾?¬î ?Ç,^?ðêt?å>2?Öe?Õ"ô?Ú¸Ð?¡<§?€e?$k§>Òu>ïw¯?-L?:#u?<ÄÒ=¯\?e?| F@_Î@ëE?x!®?X°?Àf?²ñe?€G?]r?K^>¨iŠ>R²ê?Q†?a?:Ç‚?{1å?˜$í?Bôè?Yõ?‚(í?¦ï?d)+?.8O>þ ™>÷›`? +V?U—?/l?$¯•=ƒÛ>)´?dDÑ?QLâ?g´?#½*?Žóû?‘Y?¢†»?‰Û'?:&ñ?HôJ?sgŠ?‰ˆB?‰ì ?‰m?¦¢?„Ê4?€lJ?8Pû? ùh>­²=€=¬Câ?c?€kU?!6Z?Hž>eq>p?·?®çê?³ùE?¹ ‰?«Mo?H*š?i»ó?™—Ë?lª¯>&;ú>i>Á¯g?XÉÝ?µÌ(?õÛ©@«Ó@ â¾?þ¢?®ž±?x2c?/å¸?³>¦Â>Æ<>­27>ÊŽ>?C%?W_Ý?ÓkÆ?ÚÙ¿?RÈû?XËq@! ?òm?3 9?ašÞ?Ò®Ä?àVñ@ž?âèY?TvÈ?@u? ºa?9¡?}z(?€1m?{º?¿F?ô?Š?ê83?à¾?Œc ?BjÜ?ƒcÉ?”Mó?õ–@'e?:Ì‘?-?7mÎ?L‘¬?ß9÷?å¡N?R>Ü?ojï@Ù@N¥?²3?»±Ò?ä6?ßQ¶?»B3@Ó@_‹ú@4ac?½hA?¦êµ½?#¬?¿2h?È~Ì?ã—?·Æ?#.Ý?P"»?•~­?£½õ?Ãw;?ØÙ»?â€É?–§æ? »?€¬?ÂÀÏ?ÏD?ÕgW?†¨§?\N?Hƒe?~-û@6æ'@}Ý™@ ö?²çn?D€>ÿN?_Z3?xÇQ@»@\r?­ˆÎ?žãÉ?ц³?ÑYv?£U?¤Ké?å­É?æ“ ?eEî?pâ¸@®T@ ¸?¡·¾?¢Þ­?\¶‡?v Š?¹z?®_G>Þ>ïþ®?U¤u?@H?~ê?Wâf?ï"é?Ú"#?‰3‚?F?|>ø?|0Ñ?|&.?¥©?…^?–M¶?±òl?¬Ú?ªU?´í%?¼»ð?³Ñk?ª´É?´ŠÜ?¼‹õ?Îê«?ßßI?Ú’T?ÙG½?°V‰?ŠJ?6$f>¥{°?þ£?C¥J?+¸Ï?ê?½ï@w?ÎÙ+?ƒ|æ>ø1p=&Œæ?è ?zý?ŸÌï?µs´?Ö%•?ìkÌ?Ãܹ?¦„P?ŒFÿ?ykH?T¢Ÿ?C"‘?¦Ök?ΕŒ?©o8?•\;?c$ñ?5]Ý?€ÛJ?žgt?w†?…q€?mU?xG¬?ÝTå@œÔ?µ¡?:*?[B¡?wÅŒ?`g:?U–÷?4U?„p>và ?‚a?wи?v?oV ?8h«? êO?Ú3?ö‡?Òîœ?ª}^?âj°@¯?³M$>)æ?Zð(?餯?æ4ü?Ù~??ªBå?6ZÂ?`HK?ŠO?“«/?tÿ?–ª¸?ä4??Ýóª?·tü?¾ .?ÛBA?Ý`È?Ò¦¢?¿3×?hƒ/?|R?¹5å?­e >óš<>ó¬0>ýV?™ @x”@³Ô>œ”<>‚®¨@Ù4@‹ ?µ÷?¤D“?<ÍH?"ì·?µÁ}?ÙëS?µÃ/?Ÿ6?ùºµ@H?ö?ÇU¾?³ f?¬Žš?Ÿ¹¦?Œ?š&v?©Š?°Ž%?ÉØÁ?ÒDÙ?Ý&@?×î?ºW¬?Á~?éçÃ?צ²>ðG>ý&?lEÿ?håI?ìÈ@?ï:?öR8?ø¢ý?t—¢?:¥ä?^%?yI@pÎ@(e?¸if?$?£Ì€?íÈE?  ó>í’?\ì4?Ça ?χ?ù)_?îš?¡€?• V?l³v?mIè?Ÿº¼?šÇ­?g¼C?O†_?W™I?`)?"_>áò +?‚Ÿ|?°¡ö?¯™2?ª½Ë?—DÙ?„ûT?oÈ7?'®?=@ ÞÏ@±›@(m7@'Œa>ûÇÍ>ê)K>ê ‹>éñy>éÖ >éÀz?«ß\?鈵?ÌÄ?µ¼ž?ú?Òši?ÄU°?šÿ_?žË7?¾?¼ÚC?»$¸?¹rH?Ün?àj±>ÀÚ‚=K&?¡Lï?é3Ç?çÜg?çr®?@÷>ÿ6M?Aèÿ?§F‡?˜óY??{+?V%?óºu?õF ?¦a?›dõ?xÌÌ?f‰ó?‰(«?”•[?œt|?ª$?Êé9?üÈ!?ùÖ?ýNà?üB?ü£5?õëë?§z ?©.=>Ç‹=»Î#?™'¦?ô•*?¶X?ZÿÌ?9¢J>äî¬?¬?dÍ4?b6A?`? +«?ÎJØ?ÜÆÚ?b»ž?lm?²ì?ñì?¢§?Ã?Eû+?•¾?Œ„?cãx?cÎ?¨´?­r ?ÕÄ$?Ú™?™òò?j÷Ð?Žm?±?Á?§íÑ?È?z?c;F?tü @Sš;@Wô¼@-j@(ßÚ?Š>ãÚŸ?”0]?Ø<ç?Õ!G?Ô™‹?µ®»?F·?GL2=ãú´>\.?aÙ?©ô~?T4D?:!]?vÛ?Œ& ?j?bxZ?Œ/?×Ó ?Û 2?¼r?´¡v>ó° >âRl?]…?u%?·š‚?Üš?}Ã¥=ÕHí>YG>â=Y?*f?©ªÀ?©¥Ô?£ ß?¡å?!ö? é>¦åŸ>‚±?W7h?©£?©¡6?©§y?›Ù¹?`â“?a.…>ÅGY>µu€?¬-“?¼ÆV?sÍ>§X>ìž´?‡‚?6A$?oŽò?…Õ@?©±ò?EVúÐ?šàu?²y¹@žg@)Å·?ÜÊW?‚A†?”t®?±?Áhÿ?ë%?ðÇ?¦òÌ?¢«ø? ÷¤?Ж?Vë†?bŠ ?·¯?àmH?Œš? W?}Î"?ܪ[?Á…8?b¢[?q|†?§Wy?¤HÛ; +"®?‰>âÁV?l?§‡µ?ªÆr?b½Û?bºb>Ë‚>à +š?8ɾ?V+`?QÝ>⯯>å“û>î¯>ø`®? ¶?ÈÔ?/;?'j;?8I?>A§>µ!ª>É4?%”ó?&!u>­ñÜ>Œ®‹>÷ŠÎ?Ų>ýg;>â$v>ˆÔ;²K¾;è¶k>ÊK~>¿·à=õ&=Ûåò?!?;)ç?`4‘?p>ì}/><Ì? ’3>ùþ[=øÇU=ÌÆi= ¬‚=hñ;  &>´ØÏ>ß~4>”Î=Ï=²v>k>>ÞzH>«i[<Õ£>Z‰>CXÑ<`O)>×£?Ñš?Ù\>÷¸‰?MtM?¢¢ý?‡tŸ>׎>¹ÿ ?OIë@"Ó?ÈFÞ>ex?o?+°Ë?:“$?Xv?ˆÊ?«Í>ämC>èÖ2?fZ¶?fƒ?É¥?Õp=ÍpŸ=Ú®£<à!¼>šaE>¦Ÿ­?@Ã}?Vx¬?l$B?Z%(>º1ö>ž¨¨=”á> Jò?s\2?¨s?ïÝì?¥©<>ú¡ä>¬>ÐÙ?8?±H^?UMÅ>xÃe>²>ùR:>Ñd†>µ¨=>«çE>j'?[­Ú?ºgy?' }<òì?SŠ³?±-ÿ?iá†?Ç(?"µF?)£þ>Ìÿ—>n© ?\t?\¤«? š’>®Êv>°Xo>†c›=š)G>› O>÷ t?‰¶.?².ó?®·y?«C×?^:Ü?$ôã?¦RÒ?Æ l?QO’>Ùñ$>§©P>¥?˜ ?@Zs?#/Ä?ø>ü­>öÃ>4{=‰>â³€?'šº?tTŠ?:'?M˜¢?,E>¾B9>ziŽ>Ô8C>öú?S#Z?†HD?»o³?Ø3Ä?öŒ’|;Á À>´«B>÷V?5½ý??¿?š_?¥0/?OI?2F ?i7–?`cõ?3õ’?&Æ3?d?wçš?£øù?±ÉÒ?A@þ?é|=¶5?Œm?Ÿ5?Ô’Õ?ÙO?$Ö +>ø›Õ?Qc?Hψ?•ÆÑ?Ÿ²¯?)4?xþ?y …?y`?ê&Ú?ñÓ?õK?À¯?º±?¬[í=I‚Ž>V*?¡½£?˜¾ ?yÚ)?ƒTl?¬Ý5?•Xã>úX? •?g«H?j?î?43ò?0êÅ>ú†Ö>ú•Í>ú©F?jº³?ú…˜?âÌ?¼2æ?’\s?]9?I¹>û1{? ì’?ÀF? Óò?;µï>÷{>L‰ª?3,M?–C*?œ™j?¢ï?L>û÷í?Jf?y–f>•è½=[>e4>Á¨²>ÐÙ!>¼¼y?˜?”z ?¹HÄ?½‰B?ׄ>üÓÖ?0ÅÀ?/™õ?ªvå?­–Û?°¸d? {N>' >.äV?vM>Ç%A=¼¤ø>¢Ý=‘\?.ëù?ît+?¸7§?T1H? ?«“¶?ÁŒÓ?Øäþ?ñ>þ3?K?~.¨?•«ä?§&?1Ђ>ç+?fˆ«?Ž—?¦ ? Ï?}*¾?‰4™? ê.?¾!?³s¿? Ö>›Š«>‹Ÿ>v@d>­ø&?"+™?#E`?T³?=ÊÖ?E?Ôû>ÿ=/?9Á¹?ƒ9?žã˜?¾¬j?Úï?í~¢?¨ò?‚Î?Oy>¸ûê?ǪB?ù'J?¬>Ä?!?S'?RX?ôÊ`?ÿÓŽ?ëû?ë÷r?«z—?{L>6¾þ?€Ý?Íô@^‘Ž@! ¿?€+?L¡¾?‹ÝÕ?•X›?£_?’º/?…^š?}½q?s?V©Ÿ?;ŸÇ?j€©?€0Â?ãy?o~í?˜Ýò?¦^£>?_ç?ó?€:µ?–õ•@û"?ý0Ç>j®>ºb?˧?)©?Rl?HJ?—ìà?Wû ?X‰?@ùÛ?€\b?‰eú?•&¡?YY–? ü¬?¶–?c_?È?6?õ­ô>½&­<*ÆÜ;á<Ãj>ú/A?B8?T±¢?ZT^?°Kz?ªgU?•fP?›¸Ý?À§È?Ë!}?àºd?ÆU¦?›D¦?kÿ?£2?˜†?ÿ†é?ß?À«²?’®?tÕª?¥Žð?½÷5@u@å„?÷»?ãMA?êìÜ?çÛq?k_ý?W“Þ=ydÅ?2ïv?7þ?='?%?7>fç»>RÄ$>>¡Å>Ëþ`?Kªð?AjÕ?%¹#?9 l?o-ˆ?™|?¸è,?b0Ä?“¡?W}Û?€cÑ?væH?n¸D?Yy>Éœ?ª­?µlœ?`w?QLE@É@œG?ŸV?ž–?‡Ô5?—fá?ÆÒ?Ó J@½t@~\@2À?ùx >Zš:?B™?€Cy?ErÙ??í? †?»¾?ï&?ÈMÀ?HŽœ>ÊØ~?(Ã?"î?¸ ?ÔAÁ?þCz@,„?vsŽ?A”>Œ¼{>`¦¥?ïô?é!¸?*gó?:õw?Îx?Æ|ý?h%Y?R‡Y>âj§?G"?€è?¼!¥@ .õ@ "?¿ñ? +L?©a?‚J?¿ß«?®Í ?£Ä?;õ>²Rr?‡Óâ?Å— ?­E?>#¤?À?RÛ?í*û@ ³ù?òG?æ™~?Ãq©?¿ë?*é?Šl4?­H"?±I¶?>ù?~Ðê?~M1?†çB?¼½›?á?êYê?ÄÀ?,<~?’yþ@—™?òr?Wj9?bB?~ÅQ?j"9?FX‰?Áó¶@%?ÁIÜ>Øh>û¦p? ,?† ª?·1?Ëü?áS ?»?ž ?Mª?ÜŒ>e3¢=F¢ð?‘Èj?½²T?ì¦ ?õ6?Ѥ?Ï2B?6”s?×å?”¶3?Ÿêa?-b?'ðŽ?©â]?±(?­‰?«ß@ ì}@ [O?•R6?‚^x>Eb1>ŠÛ‘?Q7á?ZR?œ7?²:?ü¼ò?à/È?|¡H?yPr?rÈ ?¾¤n@:s>@ ^”?¼>?ºW?¸ ?¢_ ?|°?•Æó?¼óÿ?£Ã´?{г?…³™?’Pß?pÞÆ?.ZÖ?(e?(Žw?Å‹ @¾?ýî±?Äî"?¨Ì¤?„¾?RUP?L?fá5?œ?…®?b¤è?œà?»Þn?´¥¡?²Á²?’»s?x¡¡@ Ë@9WÝ?¸N‹?)(?”®ô?ÃÐ?|oP?-qÏ?Ë)x@/?†s•>ùMx?µ#-?ù%¥?Á‹„? ?Œ?{ë†?t—‰?mJ ?¥„ ?¹+u?ÈëW?Ð#?Œ‹b?U_a?œ¼?¹þØ?¢~”?YT? 0>¬¦?p%ê?¼¶4?Ï9ÜÌ>>݈>ÿ¡R?‚^,?³ŒÈ?­“I?¦À¦?ϦW?ö‘9?ï?æ=Z@!ßr@NùÛ@‹?Àç?·š?¸^»?¶ë?¶È'?¬¯D?–¨"?žäL?«@?Ÿük?†“?††"?cÂJ?‚ˆ!?·|{?§u?tuð?¯Á@3Ú@ù¸?é?<üá?ò^?úæ©@3E@0(?­»ñ?¨ÁÊ?û­?•ý6?Hx²??“ü?if?zÑù?±ÊÙ?µÞÉ?³¦»?­·@ û +@[$@ +>z@h™?¦G­?|!?Ï؈?ýKF?ÏVŽ?¤Ï€?©gý?´½Ý?Ï×/?ô +±?º­Î?9¼Ø?FþZ?pZA?–ç?ãGí?Ï“S?sÓ“?VØ?²úÍ?¿4@,fÆ@' Y?…_B?ˆšm?‹Ð'?s?v'¼?n·W?®€?·”?ÎåI?ÝÍl?¦DÃ?€î¡?»È×?íÒ?§Âe?/ _?@ñò?ôÖt?±àñ?Ê…š@I0@ tâ?l¹ð?uŠ@÷@ ¤@Ô>@ …?Së>úV*>(…‰!´Œ>.¢Ø?o3¶?z½ª?MU>éÈÁ?Šÿ?³ÍN?iZÏ? +ëŽ?Yè¥?š‰y?¼0?ú?ôø“?èÅM?æCµ?Ó‰¨?Ö»F?¯ÚÒ?®7Ñ?úÒ>ñp–?à/Ò@ôe?ÿŠ?ç¹²?°a"?]H?“2 ?Þܽ?Ù"ö?ÃÞÉ?ÇOˆ@4x@¦?‘9,?‡Yo>øÔG>¹õ?Ãît@?©ŽÒ?.Ág?δ^@DùI@.wõ?à.?ìKB@´r@ Òu?*"‡>þT?”°?mó>V×Ù=@@®>™&¯?mè>îY>äôÐ?>˜ ?ápù?ÕÊB?Z“Â?W#Ð?Û(Ð?ä~1@†M@ }3?®`D?yk,?/æ¾>’ÝÙ?\*?‰½h?‘Ïà?­™ß?¨öø?/?2z—?ØwL?ò=ï?À°=?®€a?‚½½?*w ?kˆ>¸›ß>ò»?TèÓ?`bÞ?ªbN?ªX ?ª‰R?ªJp?+fõ>âü?œ²¶?âç?¹]?„Þ¼?MÑ==Ôõ>[B?n­Ã?cÎ?ëEŽ?î¦ ?t9>u•.?#Ü +?b‡˜?ˆß|?Ÿü?Žöœ?bq|?’÷1@)Ìá@)Á+?éÑ?÷M?—ùâD¯>èÑÅ?Ø´?5Õ?u>—?y 6?>â6Y?Yè?•«í?‰»?ˆ ?Šª?Œ ù?”†|?ŸKd?“$ï?b:Ê?b7%?‚I?€àç? Ö>¼)C?t?CSo?}M=?ž§?¥Ð²?©´š?Ÿ-F?\f•?T3ç?Kú·?C¼É?¡›?©Ã ?©7n?± 4?»Ì&?ºN?—†÷?bjË?va?ŒŠl?Œ"ë?³ê?¶3­>º,> +‘?HZ*?bŒ•>ØÌz>M"Ê?H?ZIn?^µ?bJæ?@.ú>è6? ‡ð?n…º?wÍÖ?¸þ¡?¯õä?©—Ñ?ªw?œÆ™?œî?¿£?Úæ)?‚±F>x´>…V>Ž° >¸‹e?X?\ú?yñØ?u0—=»&Ð=àr=&…À;pv>ÝZ>â®B>â¯Í>â¦>⢞>â?.iH?™¡*?šxF?¢Åm?”ñ>s'Ò>_?ýõ?ˆ q>ZGx>ÞqR?/ã?ð:?"]>‘¡¤>På>áÀ >¾•‹=Ð[>.òQ>á >ጘ>¬†>›Uª?=¹™?a7÷?€õw?Œ°q?@RA>µ"’>MLï=ž%N>±¡0>¿Ÿû>à(>à­<À›‚?4«s?W¼õ?’Ã>¹N>%±¤>*ç+>Þi8>ª4ˆ<ŒZ>€bÃ>‹Ï<¯J®?cÛ×s>­Ûô=l=a˜?ûy?È•,?…/ð>‡É%?MÓJ?§ÚÇ?4Ãç>·f—>Æ,s>ÔåŸ>8^%=fp¾>Ýõ,?š?­Ç?­“ì>Ïì>³Rþ=\)}>ý×>Ôõ= +n•=âTú>/o?gñ>¼!=%&>&< ><±Q=ÅéØ?c?,ùWë>šâþ=æÃà?41ï?¤›‚?¯ ?¸ªé?”Ɉ?füÝ?7y#?)€?’F>÷öú>÷Þ²>÷ʨ>;’Ê=¿g—=úðï?hìó?°±×>û#n:o´<§ù?/Y?…·?P®÷?=+?L`-?Hcß?©#K?Õ·Ù?› ¿?vÓM?%:>×XC>‡ã}>2 ¹?3fš?vÎY?!vÁ>öÑM>ì)E>Û»_>ëh¿>öÚ?QJl?vã5? ‘(>öïå>÷÷î>ß”†>éÌ{>÷ Ê>«*<>h ¹>³È†>êþ >×¾=œM?ƒÇ?©1t?JÅ?8§>²d>mãÍ?„—X?«È?lÁ°?Q÷ä??ð¯?FšÓ?pˆñ?x€?ÜÙv?÷êW?Œß©?dŒI?&Ë8?*Q2?Q]†?h×?¢\?‰2Ù?n_È?y@=?–®a?”ï ?‘·?Ž~…?A1—?K_(?±©©?µüu?·œð?·Op?ú†?/'?V…?O[-?Œ'ð?„8ˆ>­Ô>âFÅ?a€m?p•Î?4èá? ">«ï´>¡Ó>µ>ÂK—? S?6>ú½s>úÍ?=N?†ÛQ?òÿ ?¿Ä"?^_Ú?Xþ?QÈc?>Æ?3ã??>û‰x?? +?,Þ?Š7>ûÌ€?Ù?Ä?½>ü >#y;X–;àà@>ÏQ?>üé?k©ñ?|­8?·ò¢?½˜Ñ?Amp?3…?•‚A?’‚?t?‰¦5?g¸¨?€wü?¹f{?¯Ûc?}??wP&?h0½?[ùÌ?OĨ?LD?hgá?$æ;>=˜É?‚×?ýõz?ÿ„’@)ú?¥—Ô?*6Ì?Eè?_5 ?®9>þXe>Œ]-=Þ&p?ÉË?ýŽ!?õ@”?ëõŠ?/›Ï?É’?^#Ô?Y¿?~~?…ß^?H¤V?:^V>õEÔ?9â?Õ¦?™M‚?¬‰¸? ì?>j?G‰r>ã?bWo?»ìú?Ÿˆö?‚"®?ˆf›?F!?¨‡­?±šÚ?¢Í"?—ìŽ?™…™?¦Ó^?‰?ʤ?ªÃ>ÕDÖ?ÇW?Õz*?›åã?¨ÉÉ@hg?õNù=Òaz>u,??Žf+?Û>µ?uhþ?0²?}*t?›Åç?˜ý­?–5?ùd2@qæ?PÀ(?ï>!Yd=«*†?þ ?y/þ?&G?H9³@ fk@`Ã?Ñ•?°b?]ñÌ?;Áý?\Ü??bt†?|˜X?z*è?[ÿ«?NÀd?!ï1?h-?)?ã?Gír?GÐÈ?5ˆt?x´»?ƒës?¶ñ ?¿ò? Ú>ìd2?El?µü?ªc?=Å?À°Ò?¸-¾?˜(_?šÉK?l?ŸØ?¦×õ?µŠÁ?À¸’?¬l·?™‹S?G-ž>Çl¹?€ð~?·‡ø?[?Š…>Œ™:d?=ƒTž>+Ê?¯ÀJ?Ê$?̯ø?Ï;j?%Ÿ-?C<µÎª>Yá~>Ük>? .?‰úî?6Fv?&>©p­?šÅ?Ž$?Þk@#B?Ëýl?7T?µ9?Á‡>A +_< o ?ƒ®¤?º™•?Ž*u?€jý?jÌ‹?av?žW!?©ìj?ª ?¦ùþ@ +.¶@ »?€`&?‡@—?©å˜?¬3ø?êx!?ÞÕç?”#t? ãÓ?Ü«I?Ïz­?² ¼?Ù?{¯¹?A%Ù?IÓ?‚ó"?¶?ºã¼?ÀcŸ?…#o?F9~?ŒÞ2?™ÓÝ@ÑÈ@(dk?–Ç$?r†'?žß?Ÿ +à?uï¶?kÜû@3@yý?“pT?‡«??Þ€?(œQ>õ4Â>™ðé?‚?(ßš=†cÀ>ý»”?†2ý?²2ì?ßÕT?™¡?<ºš?e·#?Ûž?ËZ=?îëZ?¨…>?†ªÌ?‚8¼?{Œ >Êq¶>S÷¤?¥P¥?Ñ X?íDé?ø¥—?Ó÷?Ìëa?¿â?½è2>äs(>ý-ø?Q6?cük;¦2@>=ñÁ?„á?aq>‹z,>Àöµ>ÿ?#:T?„Ôà?sAþ?*‚û?MN„?~Ø•?`VG?;^*?|`·?«?µ§\?±Öã?ªuß?©Ø/?ìqÖ@*?¹³ë?~b ?ãÛ5@ Ôž?Ñà?µÖÑ?¾Ñ5?¿j?¾‘Ôô?'Ô?ž»h?¡¾1?€i°?}²?¿‰Ñ?¸{1?/„P?;·?·Ž†?¾Ö¿?ÜèÆ?Û)P?â]*?Ôsï?Z$"?g€r?ªàƒ?´‚?:0H?qÉÀ?æà˜?Ìa¤?n¨Ú?^6?4î>Á'j6À?/@a?ùkZ?¸xí?}z?6W?€g?tG3?½@f@.Sì?òD$?{ÅÝ?©“J?Ò0{?š&?EàÕ?Ž°ð?Ť?†#ì?èš?†œ›?º†õ?ìRÅ@\§?°U?Q;?d>ú¶Z?w?¨Í?Wpì?¦—?6r>úL³?T?ˆÄæ?¥Ü?®=8?µ¶T?»aÖ?Š2?]¶Ž?µØ“?ÞmÇ?‘ˆ¥?NÊ(?“Ù%?®v8?ˆ7Ê?nÀZ?vŒ?œ›o?±g ?º;?õA@ ص@g@òó?¦‡w?:c[?üy?®ß?Äiò?ÖS’?½ä\?°$@?ÚÐd?õ©?ƒìÁ>õX(?Bi?o9õ?yЫ?ƒ?£-A?¹o?¤­Þ?˜[q?ævb@­@ÐP@9?õÆK?Åèé?ä6B?ú…I?ËÀe?˜f£?™ ®?ž *?¯ê?Èc?³½l?‘’`?ªír?ÕV?Íùÿ?·ˆ{?«ƒ)?‹Øý?­Âà@ øÊ@ +¹i?îGý?ÏÞ3>ô|ë?&dä?¼¯i?¾ò¦?¶žk?¹öÌ?ßÚ?×rÚ?·,?!¸?ì|6?æ÷d@´@!!?Òå?ÎÍ@Éì@#G…@û!?ô[ ?•ø?_€›?z: +?ˆ„ª?ýç¯@"¾?é€?¥.î?`›>ðØ!?‰<å?ç®V?¿ÇY?{£ß?SX\?Mý?XaÂ?ï÷¼?ØÒ?taù?z}?Ž1?§Ö? oÁ? «Ù?ÔZô?Ó^ü?. ‘?ˆð@Oó @m-?ù5 ?²¿?›„O?‘åÇ?~ÛR?p¹É?YÛ?9}3?w€M?©Æ?½Æ}?ØïÄ?Õ“{?Ò2=?À¿`?lÇ-?wå)?ÄÅc?ÁkU?"ñR?½Ý?`½?l&?ÑáÝ?ë‰Z?ê·?ë˜1?å÷K?ß®?’”³?h*?•¿c@ †h@¡–?êÅ?Û«º?šI?ŸK?Ý¢? +Mx?礚?î“?¢9#?Žyv?tÍÿ?i$>ñ2Þ>+‚½?¨?†ÅÎ?³"/@Ê?öñK?ÆE?¾¼?Xo?\e¼?³4l?±¦?Ï0?iÁç?Ÿ·®?¯Ü6?öHn@ÂÄ?•I=ï«È?ƒÓ2@"Ëö@k?ç>Ã?寇?áGB?æ$?p?fЯ?Ä®?p5?­¤U?æž?˜´?&Å?³^~@#Øù@ +e?eú=?eåB?eÐÔ?e˜?àô?ë%u?†Êñ?es|?`Ú>óߌ?˜‘ +?äÈ3?Ÿ^Ö>å>íÄã? j?¯¶?SÝ?¯¸@bY@Ù#?ƶ)?² c?²·”?ª2 +?€é?6 ä?ZÐ~?×y?ŸjÊ?ã÷]?Þ}í?!³î?-š?Ÿ¹W?ªÅ?H±c?"*?oÙ^?žó?d½ž>£á>šÐÂ>ãO?ì?©R}?ª_T?ßsê?át4?°¥ð?ŸÛÖ?©š+?²üü?•µ?bà?QÏ?# ¼?*BL?„ïr?†¸ü?÷­É?û§?8c>â¥d?}™?1×ú?“p†?ÍÜ´?©»?@…j?…tø@ïÙ@º”?OY^?Sä?œ#À?¥á>Ö‹3;íhg?Öð]@Ff@Æ?Xò?>¼9>âL?2X@i@ 2ù?Ïé>âB˜?K™¢?u¯?G|?$ëÌ?Bb?bAò?…)¡?¿¤ ?¼½+?bE†?b?ç?™©k?œÝŽ?Ö/?âJ?x=žÁ=$+u<‹`B>÷0Ö?©½\?’C³>ôU·?¯›?b]L?b^È?yŸå?€ ?“?–Âë?ƒ=A?|Ä(?v ?bvV?f;È?~»?ƒ¨È?b‡º?_óV?É;? x©?Xü?b–©?¦ýú?´¨a?L é>ÞÏ'>â¢*>äY‡?:í¨? M?Š©¾?¾‹?_ò@×.@´?Õ0?Î0B?U¼ó?#›?Œy½?§J8?¨>=í¿>Z>ËÌv?bÁP?jÏp?™­å?žpŽ>ë„j>⺣?˜äü?¨j?Ê"?Ó0Ð?¯F_?•ðÈ?QÖf>⟓?Ì ?@¶x?aKË?¢äÍ?Ÿý>â}ã>âpã?ŽÉŽ?–ˆ{>§)=â™=¹°e=­Ç>û4?ZT—>þÎÁ3CºÀ;+=À<´÷l=ÏSª>Á†Ð>¸ m>áŸI>ᇥ>0 +¿>*.$?9æ?a3.?>²?0p?5ν?;&>íÒë<˜0…={Ñ=£…>ÖØ >ß\>ße:>×3>íö#>þlÚ>aä#=Õþ¸=esh=$>Eno>Y~€>I +÷>#]ƒ?^›?[òŽ?,k>Û{å>¡ìæ?BŨ?øKà?›±-?Ï¢?, ò?Rì¨>ý2æ>‚¦™=` +?IÂ?}üñ?xo>ÿò/?„A0?Š­1?a?V%?%0î?PC?Bž&?#bÁ>S›Ä> q‹>o\«?DÆ6?d×?¯r-?lE–?6O¦?Ü« ?¸yç?®m?Š×‘?“)?Wç>ù÷¾?@ û?†±o?.Ñá>¬Ø"?™ +?Dšx>›lg;Öç;óA@>©Vå? º‹>‰4Š=Ü¢¬>³ä<>÷üL>÷ä)>÷Ñ4>¦Cw>Yyw>=Õ>!¤?I†è?€Ó?eÿ?j­R>£³:¶¨è?rZÊ?ªÐ?‡ìš?w +^?"H3>öúÛ>É? >ͬ"?!T–?<‘n?Cgü?J;?sSë?Š®]?tM?e‚¤?lP?s T>µ\<ž¨=;À=”â?—ØP?ÆÔ×?¬©?¢i¼?e Œ?;èP?<ë?.>Ȳ>¬?!Wâ?Fø“?¤b?¹g÷>ÅmŽ9½M>m®ƒ>ÛQv>÷Ô“>¸b">¶ò>Ó&=ëÓ?[’ ?~±`?=?Ê?×ö‚?é‡0?%ëW>ø>1Öc>$›?>9?"Ò?{>øÞ~?ƒÝÄ?Ž¼ƒ?•Lh?›Ú™>Xtà>Cs?y'£?uÖÍ>øùN?Òí?ëBÁ?Ñäf>4C>š{f?yÛÅ?o)ì?5k???Cè?0c??GTù?W°?zd?…?¢šX?© Î?¯•?’C§>ý{¦?xgY?î±­?±Y{?ûu½>ûŠ>ûš—?wFÙ?§Ps?:š>Â)ò?6ù…?kµ†?< ‡? ûÝ?X ¿?t=‘?˜_>ÛMm?9ÖÕ?BjŠ?¶”À?¾T›?„g¾?|¾V?8ô¥?G_?}ù?€ÿ×?Ò~G?Ë^Ú? Ë!?›`M?aà?3_?xðK?a À?à? æ?5D?WÛÛ?°rñ?„6F>ýÐà>Õ¯>•´®?ä3?€žS?—´C?¥NU?¶¦ž?¸Øä?;j*>É‚?‡q? Î?È„Ö?úø">ÀÌÌ=¢i ?à§?þ±B?{¥?a½?"¾5?;6@z¤?é@ÿ*?9Oa? Ãù?‘î?R?£=Ä"<+×t9œ´>‘¼X? )>š>((z>M5>Ä`?¹€?é•È? N©>_±¢?a:D?Ü­?âµ?ê²?• +?‘>??U?3Ýœ?(nl?)v?n•¥?zrC?€©?Z›Å?W>¼:>(%4?"Ð? :?(Äâ?†•ð?÷<?œ#ÿ?>Dï?u8?ƒ?“¶?˜·@ +ÀÎ@7Ï?© ?‘·?†9?„šV?¿Uï?¯î<ÀGð>´û¸@œ?òCU?œbp?¥‰Õ?­ƒ?“™É?NßE?nãQ?‡.é?­B»?Üý¬?„Ös?o)?2N©?F¡©>ž*L=˜O?½Å%?ú R?Ä­K?½Õe?Ö³?æ•?²çÛ?²[ ?­ +è?žC»?~#>ú+©>õZˆ?>ÍÉF?/°¬?¡É?ˆ3 ?8‘)?K¶?xÀ–?X|ã?#±;>ïeˆ>”¨ú?¦à?d7Ÿ?zlã?€…š?€ƒ‹?|„Ã>1Ls?Û£²?õ§š@}¤@=[?„´>ìK;=°å×? 3¶?RÇú@‚]?ݲð?€ ?8èJ>s¸>yÆŽ>³ž?–;?<À?qXà?Z?õ¢—@ r&@ +',?ôÍ@£@š—?¥Ñ?€sP?.,?$ø>±Y>µl…?–¶ô?[;?À õ?º’`?€hx?\ñ?ÞÕô?Í“ÛÜû>¢O¿?:Ÿ¦??b3?ÛþŠ?èbz?¤(L?£Šn=5|=áFÈ?a»?ô?wµ$?rh–?B/?]¬>Õ!%?%ò?¡¾w?ŽZe?Xêô?5VÓ>þú>éäG>Üvç>·‘>~@™>ºÒ >Ý—ï?pAð?¸;™?™l‚?~›?±ê?Î1?‡‚=?Rµc? @3>ã=@? +,x? µ?Õ-‹?þJ?–£h?‚ã?„é‡?†ð=?n#U?eêk?¹t?¾`â?¬ås?©¢¥?«2?¨îs>Qyý>„#¿?;(Ý?aöP?ýf´?耼?e4?qô?}Ç?‡\¬?°x?˜çÌ?½¾±?²Þæ?Ú ?püR?æà?¤mÀ@<* ?øµ>Å?‡­„?ÅÕ>@ u?Ï*$?c1r?yü?Žf™@¢×@qת@/.?{ÔÏ?¥g,?Ñ{h?ÉKb?¼­Ù?˜j?k=^?²N>¼x“>¨)—>¬*…?¦@ës?ëœá?Ê'Ÿ?wψ?;!>…A½=•pá?-á?~8›?Ïב?÷Kl?)·=—7@>Þ<Ó?¸5?¾C?íÊä?Ÿ ?y¾=?æÕ¾@Š+?\Er>¸Ñh>Ç`m>Õì?Yj?|6Ï?LÔ)?@n’?ìB?¡ü?˜-í?‘JB?ô¼?xsâ?‘Áý?ž´/?“?†7+?ìe>RSÔ>ÛG½?âõ+Ï?U?=½c?‰öˆ?ÌK1?ßÝ­@¬ ?Í^4?D?!Ü>ö',?­?q f?DÃØ=éSJ>Ä5?‚8? ¦ç@C{C@<€›?óêx?ì„@¤P@o@Wù@ Ø?c5?“í¿?ÊÌŽ?Ó¸Ã?»&?µ{§?¡*?™;?×î˜?ßN$@ ;a@¬?¿Ò-?qð?!®5>Çœ?u±a?Âzm?¸Ÿ?°®È?±¶Š?³Y¯?´?µŽ?¨*|?oÌt?^ƒå?þŒ?6QÂ@M@µ2@^Ü@ }s?aø?H§>?¾þ?߇D@ +À@ [ ?»Í?•½0?[öá?$'¶?ºl>í¶?]æß?£+?ÖŒ@‘@'?ýÆJ?ê±?P˜?Ž¨A@ Eþ@ ‘?ãÐ?æåê?‚õû?l1Ý? ZÆ?y+? +2?è—?ïw„@(Pp?À­>ë8à?FeF?¡ÏÊ?”°‹?a†;?‘y8?õ”Ý?Þ:½?&5 ?)hÇ?ѵ?Í%õ@ ¨‚@ÍÍ?d¡?i« ?T£L?AÜ?XÚ4?}ôµ?_ë?¢²?…ν>èÞô>òÑÿ? ÝÆ?êr?è{?èa©@¤ö@åü@p¹@ Ú@?_²>€öj?ª7?@¸?q9‡?§Î¢?½Ìå?çL4?êi?ù°Â?õ Â?!·M?$ƒg?^”3?f­Ý?f•ó?f‡-?+¶×? Æ€?q9G?®xS?ž$ÿ?ƒsj?„B³?‰?ˆ*{>ÂY¶> °d?Q]O?eæ?a?r?bų?”<?«þ®?’xÝ?^׬?[c?Wð³?Tx¯?Q?Mʨ?ýH<@Fù?Š‡?duC?À¿ƒ?äYA?§;ß?d>Y?“R?ÇqÉ?À;x?²9Ê?±?cçÎ?cÔë?„ðB?ŠrÃ?™’×?—Õ{?pô?Q6é?¶Q2@ U¬?Ùü(>ô.þ??cCl?d˜h?«'Ù?®•Ó?ý°@!+?ËE›?ª?W?ŽKè?bé‹?HYÿ?‹^?@Bí?¶x`?´;4@>E@iÎ?Ÿ‡e?„Ô£?Ÿï?¥.H?˜üS?—ï?w'ö? Û[??S¼?¿ ?¶ís?5z*?"°?YÝj?boK?š©~?©Cö?Ì>N?íRÄ?¼Ä?bWÊ?ur÷?“*B?™¬Ç@N@8"? +°">âKu>âL'>âJÖ?;Žì?`bí?,äÒ?ÎP?RŒ?ön?,«‡?‘ ?dV? Üw?˜Ós?Âx?ЯÉ?dZ>ÿwŠ?m¡-?©«6?½u‚?Þöž?Ú X?ËÚ‰?½ÛC?bf‚?bd©@é@\§?¦ä ?‡SB?“Ë5?“zc?~ÖŒ?b}¼?U’n?.a?3‹t?‚¼ë?z×Ç?. "?6Åã?p¾?oÄÐ?ì¿@ +\Ô?LÎ8= >Þƒ‰?[®?`ñ?rœp?žç³@ +â(@iq?Ìà?Б?}6`?€-î?r=?bga?ˆG?›ä?-bx>¼T>ÃñG?F<Ï?Q Ò?bÄ[?Xæ+?%c>ÿä>æfá>â¾Ç>ía¿?‡?^ ®?‚¡ +?IöÍ?'k»?_³?…ê?gœ€?3Øã?”)>âÖ_>þ·ü?ÄÏ?°h?_]a?bb¡>ܱ>¸ß>×ü;>â4#>â)Ç>âI>â ã>ÜÕî>ÒU˜>ÇÔ >¡×½=¼+œ=æVÎ>QÄ>ç?<š>ú•H?³w?-R¢?C 1?BtÄ?%[?uc>¹éÖ=˜®â>°>àNS>Æa;žÛ@<Ð6í=AyF>¿Æ>ßYÂ> õ×=¸"‘>W»¬>R·ì>‰=Ÿ>-B=õ¡Ê=Æï´>;×=Ò‚‰=¿Ž;ͱ,>„Ýp>à® +>ŒëL=b«$=d•¨?hJ½@@}? ­ó>Žfî>Ù7r?eÔ?A¬ÿ?f>Œˆê=N,>Òó˜?9u?G¥>ÿí»>#&¼>€˜?~ûd?~±6?~dg?~x?}ÒÙ?VÔ¿>œô]>’;>Ɖ?!M?é‡F?ŸÀŠ=Ll9Hm°>Ôâ?9b?<È>Íé›?7fo?zOW?:¤h>ùú¥>À_õ>š(j>k·è>Ôr?Ñ©?ï{[?E1C?d ?pÄ>¼[Ô=“ü??7?7WÊ?CI;?I“k?BÈ?;rœ?4fÔ?-[Ë?B°?Bä+?ôÄÝ@#ïI?“v >÷Q >øû>ôÇ?V·î?ƒÊ?Åœ0?Ú;¹?S†ö>÷¯? @?PÄ>ö¶4>öí¶>´¸>§j¯=ƨ»>²¾!>öãu>öá<>öãê?¿"x?ã+ö>èˆ ?bÿl? r0?´/õ?¹;Ý?‹]Ÿ?w¦>ËK>8-„=!U÷=™£\=™bÅ?† Á?³¬s?‰…ð?qÝð>‡ñí>“²>6>kcu?zpo?ŽïÂ?iŽÂ?kÿÌ>Äš*>ŠÇm>˜Y>¥[ü>.cü=àT*>û4? +Þ`?ž¢d?·ch?¹[&?³œø?:¯¿?7šô>2)>ÎÛ>¡±>œ‚w>rƒ>‚bÁ?0},?0›Å?VaÈ?J¿–>ú(§>ûj¶?†b8?‚×T?rÉ€?l8#;ÝÖ(=“×¢?(:n?=Eç?Bò?T´?ÑŽñ?´ w>Õ.?',?Fc?PôS?+8£?Bo?Ù?g Ÿ>Ѷ’>Þ’£>ël?M¥e?»6Ã?º`?ÂÄþ?¥&I?a]¶?Aá6?$#ˆ?•Ê>ÌÝu?\Z”?›©8?LOì>û­H?“C—?×(:?NFü>@zø>Õ¿@? ‡?éCt@Dp?‚‰?õ¡?5>üp¥?(q? ?À)?Ô¬s?I`:?9.`>‡\>]’R?K?Z=Ž?Æ—?­ô?û_?ú?e@–?]&?PJ?â`?u·v?o¤°?i?v¥9?«?“Ó«?‘ÔZ?uk@?E5o???.5”?7aÿš?cp?kP?Œ7?•G?"¥ ?!>þê•?”Ð@Bh@ +->}ÇZ> e4>ÿ%²>è³ò>®]?H|Õ?âªU?Á€ê?cÕ?Hšô>ÿv}>‚¾?/?qËj>¶È…?[?5qž?,ž™?Cð>ÊçN>‡!$?¨œ»?·ýŽ?ƒFK?½_?…wg?Ž~í?—×?¦¢?Ïð^?¤…ñ>ºJ?€K?1Ù0=`:Ø=:ãH?lX?­ñË?R8d> zó? ?ÀZº?–áƒ?€B®?%Ÿ?Fz??ù?G+?ÁÑI?Ü.ð?䉳?ìÞ?Á·Í?º¦£? v?0Îõ?ìGˆ?çY@c6?ÈZ|>€æÕ?Ô ?–p?_…?€må?›V«?Áp±?Æßê?ÌM¤?^b>­`??š?À·B?¹˜?=- +?ž²ø?·=g?(ž?´?‡Œ?‚ƒ?…àQ?‰¿ì?ŒhÌ?‹¯ç?^­v?1hŽ?¿q?à"?¹äe?€Œj?"&§>&s‰?)<«?&i?«ž,?ÀÓ˜?$œQ=úú¸?=°w?€Ë?T?Ç?Ÿ"?¨˜µ>Χß?€Œd?‚’?×ó?’¸K?€‰n?Qô„?ˆ¢?|VX?ÍË?ܾ?ñÌ@]U@ \@ Sˆ@«ô?ƒ=œ?=j>ÇHB>Å­ð?³A?±íD? n8?™Q@N@ +º?ÊuÃ?À×æ?ò™?Ái?Òñ|?­LR>¦0Ò?*™*?Òz»?ËoQ?Àžo?•Jb?ë6?küÙ?¹™P?üO‚@ Ov@-ÌÝ@6#À? ù=Ž"¶?hÝ?¥K°?Ú¡¢?îSC?È.(?Å6©?–N-?“õ?ß²?ßÉG?æI»?íî7?Ž—?‘~u?ƒŠ ?‰PÍ?€16?‹Öã?ÀCl?©¹÷?4Z?<Ú„?|e˜?SjÙ?9?mßb?ºÊÚ?Ùc2@¡?ó|ë?ãbÜ?hÎ >–ªü?#ÉÅ?Q_ý?od?íâ?…Ëö?~.Š?ø>Ú²T?z\R?’í?akŠ?Z²æ?Ø)E?Ûúä?¼Žx?¬C=qª^=Ÿ†U?%Å?f?rû?žÂš@Ç?ü†?­?*wÔ?f§C?˜€š?îš?ÅòŒ?e?l°?LÖß?q H?‰Ÿ•?"Á?qU?RùÂ?Jõ +?!N:>þÁ§?eûL?ݶ?ØoÈ?þ—Ü?W”Q>’ÖV=x¼~?’ç?½Þ?-‹Û? P?ª¬b?¹ +?„êä?~c?ß½í?âr#?Dåv?Evñ>î}? {A?}Âô?p¼.>ÜÍ>¿}J?§P?K?Ʊ]?µ.×? Eo??•>èõ?1bC?ÍAf?Ä*ý?²`4?ÄF ?î +À?É Ä?nϸ?©°?ý #?µ¿>ò=?,%?|~?d<?QU?=Ð?®ëƒ?–®P?| _?º+Z@÷m?®€V?1˜?¦ò„?áÁM?¸Í¤?ŸG ?ák@½ü?³«³?{]â?êc>ôî?‹ÁÂ?Ð?GE¾>z!n?7-Ë?zÔ©?zÁ¥?z¯?ÑNí?ú‹ô@pò@1?Õky?¨(ñ?ÏÆ?Ûu·?ïô??ùö†@|½@¿÷?Šê·?Ty[?1¨7?äs?°Ï¤?ÊÁí?Œ-k?}G7?J<9?1p=?@–Ï?K4Ž?•N`?§Q»?•?‹Ò‰?$þŽ>øW²?‰yA?©h/?Ôéi?é³J?Æà ?¸­?å@ ?ö{–? Ûî?w{ô?¥µà?¹|¡?q÷=²íÚ?œüž?è;›?¬Ú²?•F?õ]@3@ @Ì©?¢x?<Ú·>é@{>jïF?AQ¹?ž|’?[Ê>õ›T?^iž? |?ˆ½ª?WÅ>ê!'?|ø@D @+›@Ijý@0}y?ñ-ê?ὺ?¶Ð‘?†Ù=V°=vÍp>47Ç?sšt?u•a?Žž?žËë?Ø4?ÕqÁ?s?~’y?À?d?Å<û?¾Dx?¹%'?í§?îÔÛ?¼—„?µ… +?Ñ!à?Ð*¬@?Ú @a± @DÌÅ@<–.?à­Ä?„OB?x>I=Æ? ß±@i²?ØQ¾?w\?A>ðÝ$?$ ?v?˜f°?ãJ5?òžƒ@Åq@¿H@•¯@^°@+OŠ@*j/?Ë‚?Ä´?º4Ñ?°†?œ— ?¥»“?²‘R?²¥ö@&f@ŸA?­ ƒ?"÷b?¯õ@ ­2@æi@õ?÷E?‚²»?‡U+?Ÿò»?¤(8?«î"?«Õ?lu~?l[å@@³‡?:¼À>ëë?³}y?Öh4?¬ÓÚ?Ÿ.¾?„?P £?ZH?k?'g>! ?È?öW?ðzß?šŠt?”_i?j6??j ;?ëß²?ÿùV?·p?¸õ?›Ÿü?ž?½‰=ÝtN>çéÐ?iª?O?wQ?6|«?²{?´¤¬?ç0•?èoD? éð?ØÄ@*M@E°?áµâ?“ãª?‘?g²Ì?gšÏ?g€|?£L¨@Oû?üŸ?µ"h?·‡A?4«v?1L¬>íŸA>ðç-?v¥?‹€ ?t”S?Pæ?ª5Š?üȈ?èÜ}?º±.?¼èÄ?Ð]&?Ö]ô@€ü@û?z‘?`ßv?Ëœ>åe»?£²ú?ã&Ö?­?e~?D¨9?9Ü?(^Ý?ŸYœ?œ¾j?‘´§?•z>Ò­Ñ>¦l|?~È +?¢¨6?¬°?¬óz?ä.Ö@ø›@X?žëD?”?>æ?Au¿?1·Ã?(·S?ÕØ ?þ0?‡·Ý>þ@,?TÖ?æž?ÒœÆ?ª?˜/>é>ð%(?‚? ¸(?û(@ ñ?e„>§Y¤?#µ\?bór?9›>âæî? ,p?ƒ? Ü@ ÓÐ@¤Y?’þj?‡¶Â@Ó @)ÿo?ÔOH?b Á?b–y?b‘õ?•áÝ@²@ jŒ@!žQ@%` ?ƒ Ç?bxC?cÚ‡?g£?ÖvD@ +J±? P·>#È>Ô—K?~‰V?ˆd|?»·¬?½ ??=rÚ?2Ì0?Õt?æ;?º‹Þ?©¾Ã?‚ƶ?(&?%€?@;C?cX¹?»0÷?ÄtÕ@±t@¸¿?Bu>ú=?Ý'@ y’?t +Œ=Yø>’þR?h8?WU.?´L'?³tL?›*–?™:?ñ (?ýŽ×?§šÔ?³A?Çø?⃅?Á/œ?Ÿ.Ø?®l?Ïà?ÄÅZ?›”©?‘ÛÔ> Ð=úZ…?œA?¦‰?yÎg?b§]?ç>Ù±ü?Š*2?ÕHÃ?šÓt?¹©?P=Ò?Ù&Ô?Òzˆ?B]/?K{È>ê¢P>âÃ~?Rã±?pT0?:J??—q>âÍ3>øŽm??V?'ðÝ?{ƒF?‰S­?á]@?âÀ@?áߥ?ÛÈ?s.>⾃>d]·>A”ž?E¬?ˆN?–ßR?©úÛ?‰Eè?'³?¢»=rJ?Ÿë?³á?aœ´?ba>Fâˆ=_ö>GÃ>Úì[>áñ>â©>~ +=\À><Ç1>áÛ±>Öéß>£ð‡>™Jó>Žœ>ƒæ?WeÄ?aTÅ?.Pt?î†?a°^?‡>¬?\¿Ã?3ºŽ?¨>ÉŠv>Ô{T>Þnå>à%æ>Ùç0>Πö;®@ç>¼n‘>ßM×>•u=Ãy»>‚b>RÁ½<ûœ>¯ß<>»Zf?@m¿?R`¸?Äü>Ûî.>7­ =&!>@ÿõ>®é>¢ÆA>–£¨>€SÝ?‚Pr@Ë?‡ÚÁ>RbÂ>µŒ¯>ï¾$?ÿË>éUJ>ðÏm=€*`<}=(=ˆƒê85î ==¨g?&È,?#8 >Øô>õR? Aö?ª:?g­>Ñžæ>ÃWõ? IR?`+W?pE?{3E?k(>_¥1>û +þ? 4?,/>ýï¼>Õ‘†?_Õè?”‚X>÷ #>y)>ùb¼?m]?¥-#?c÷?€ò?xŸ1?bJM?J?'K?![r?(Pæ?/G?‡“¬?™I*?d¾á?KÏ?‡NM?šó=?–Á%?Œ†¾?›—>ñz§?SýÉ?q''?¡Ì¤?¯lH?.R?Úg?@Ä{?G•D?ñ¼>ôËD>üVÕ>ö÷:>0>ÌÅ?d>ø†K>öî ?&¸?'Å^?EÇ¥?>K½>ÂÓª>§†ž?¢Û?&:Û?hi?w˜?<ž³?$¸ž>±ng>]©? +=x?2Á?Të>ùûH=åM=s¨¬?„£ƒ?š­?¶ží?²àF?”ØX?“©?†²Q?yœ>­ô‹>FtE>åíe>Ú@×?{?+¯?wž`? +[> CO; á1?Ú®??òœ»>|À}=Å£–>¯Î/>¬æB>:V>KûF>ò‘v>ø܈?@¬I?I¶ú?¹Ü|?ºiÏ?4)9?,”?ºüŠ?´Ë$>õŸN?™û?±™K?£^ÿ?f^L?nÑð?«<ÿ?§’õ?ª<³?˜¤W>…ÉÅ>Šb>Ø6U>Û‰å?'îÉ?TÉq?Ÿz«?}¸X>;lÎ> +x+=ˆÚ²>1É?²•?~7?!H¤?#p1?6Ì?8Ü:?P{? ½/>‹e˜?CTÚ?¥ýG?_ÒÅ>û¾?Iv?{à}?{ï­?|†?k‹?n¤? ŠÑ?µ?\ܧ?nÏ;?¬°>ü‚M>ü“Ä>ü¡í?NZ?dí?G¡?=^$>Ž÷²>ž-V?*äç?$¿t?$?-ÐÂ?œ.Á?wú<ìN? 4Š@_@Ù?}¡Ö?}²ñ?}¾À?}Î7?}Ùz?ˆI!?—™þ?xò™?þF“?+a¬?9Â>«Yo> Ôæ?D×Á?~?åtý?û/Ä?ÂèI?·ïY?%^"?© ?I?˜ÿæ?“´?‰)?`S?pOÅ?2ÆŽ?G ?ŸTE?c9¼>ÕÕ>åN=?‹È)?ˆÛV?…ðÿ?L"i?â­??_ö?ro™?4P ?Ž?:\?CÛŒ?k ¥?ÎH?ts¨?`=s>©#Z>°?´¿È?ÌY?™üÖ?‘¦f> §Î=åp°=·ŸU>Ò3@`'?øO <´+> ½?ä?*O˜?[­Œ?PX|?E +?¢@¸?ëôq?pX­>Q³?UZ¹? }?ŸE¯?›ê? Vå>«ää?†FP?¡Hî?1è?pQ?S9?7 4?¼ìj?»òM?}dè?|-@?Ž×ñ?Ÿ\m?ÍYA?±®»?8 ?J z?€sã?ží-?Ƭ:?“¬O?EœÅ?‚b/?˜½Õ?)êS>–È ?n’"?¥Ù·?Ë2?àµè?Qæ£? l¢?q6Ÿ+¤>”¤s>Š!g?ê?©Nv?½b˜?ȹí?ƒöÏ?•?i°?¥žv?Äü ?ÑÂ{?ÁXå?½œj?oz?€–_?|Å0?w>ŽKá>uD?Ü$Š?á\c?GîÆ?RFS?\rä?Nw¬>`V">ÈÏ3?€”ù?=Q>Š¤?VëX?7³?û?†v’?ß×Î1ö?¡ÓW?ÀÇ-?ÀÈ¡?ÀÃð?õÞó@ +?–õ_?“7¹>‡ö?—b?ôF?Ð ¤>¦{R?.B)?àèˆ?Ð<?ªEÛ?Ÿ“¹?†Øá?TÎ$? +Më?®¤? +ƒ£?gT ?˜j˜?;n_>ÕÒ”?I¯?>•?ÙÇ@W"?ºn?§¬À?ÓZ?…„°@8Á@ ^6?ñ5b?Üûd>¤@>­å6>“ D>в÷?›î'?¸Ý?· %?ÔŸ @á?å$Ê?à·?_s?ºü¯?^¶>+TØ?Š{@0@Å@?P„>àž,?2;?¨*?ÄãK?×Ø ?áòÙ?NUÕ?¢;?}iA?~Ã->Ïg3>¼Ô£@¹B@“½@A £@>óf>ÿ¡°? Þ³?“?lO¾? š?:“Ï?Ê…¹?«[>ÿcb?Ë8?ÎQ?v‘þ?ÑÉ(?’2A>´ïë?iR?É_O?¯5¥??““ò?L#?h É?/Ôñ?˜z)?·—G?ÃÄ?ÎÖ_?ï9„?þ¦ç?þ l?þ“C?¼Š=R ¨?N/?~h ?XÝ>þTl?ž?‡@ L‚@ ­Õ?Î3?Í̉?\ø?`rÀ?ÑDO?¾?2B–?0­‰>ý»r?=fb@ §L?þ_!?}‡Ô?æý?’η? $#?½þ³?Æé?áí•?Êa3?ˆ:Õ?ƒÐÃ?}ï?)è~=)ˆ?ÂXW@{Æ'@D³å?ï¡ó@õo@,è +@ó?¥ +A?®ìT?½;¼?¨?|2Ô?©Þ?̘M?Ï&…?̘¥?õAc@ žH?¾ P?{²Ñ@Å@0¿“?Ò®f?{nî? çý?®d)?2)Õ>ÉZ%?‚44?ªíK?ƒC +?gHò?‡F£?„AS?! +?Z?¼ï?!É—?ʉ?ò +¹?‚Œ?E,?±^d?Ë2õ?Ú>??âÚ?´¢?˜?Jº›?2!´?ÌÀz?õÿ?[Å?5U?<•?JÓ?‰UY?’m?Ùl?äÒv?©_~?žÛ%?+VJ>øf?{U?hº?=A?ß„?]vá?wðl?ª¶?¼*š?·šò?³¼-?Ù%?…)?’S?’aá?•G·?œŠ?ÁÜI?ξ1@äÁ@$i@…Y@»/?ÞE›?¹>¾?\°Þ>öé?|S?«U?sñ?#ëÅ?’—6?Ó[÷?Ï4ý?̉å?`ŠØ?”ªè@-ªß@’˜?ƒúy?y̾?t/?$Lb=,ú4>¤,?_4Û?t=?°?½ÓŸ@²Œ@ÈÕ?òªÈ?Ýôª?Œj³?†»k>ó '?Êð?¿ÈÐ?»š ?’·?˜Hê?»©?Ä.ø?¸„L?µŽ@X@+tâ?Û‹é?À Ï?@æ@>ñnÄ?}yú?¡I–?³|H?»5²?´\?±x×?ÐmÒ?ðV?Öñ?±¯?ñ0?æE?Ç +¨?ˆp'?²Ù_@“ @Éò?ÂqÊ?ªâ?À+$?ÇYv?È¿X?ÊCï? Ðy?¥ B?Uú3?4@F@Ì@:Ö@'ö?Ám@?E¸1?oìß?‡‡7?pù÷?R„ ?ˆ'ß?»ÿ¦?. ?ÑÂ?*­?l¸?lÓm?m5w?liî@.Ń@/Ò?Œ‘ù?`*j?/™Ÿ?,æ†?Žj?¤7d?ÖéŒ?÷ r?¢:?|A?¤­¾@F@òö?Ñ3Ù?Ä4?ØM?—ûÏ?ªG?¦ì?ô?„h?ÎvÃ?éæ?‹ ä?K‹ù?HÅz?:ç¹?Kó^?i(â?†Ïá?©ŸÊ?ºÆ¦?ì^I?Ü«¶?hm?ll >ì´>èKï?…P¥?™ôò?‡†?}ªU?qÇÿ?g¿?‡˜{?œ.?ºã?ü-Z?èço?•MÊ?˜tp?Î’X?É‚ô>üÄÁ>Ê‹ð?Z»t? +|?Ð0?úÛR?î5¥?Úb ?Ì{›?ÂŒä?¶ö?vèù?pâ?[žÉ?^è·>þj>ç]™?ñ;D@ M³?‹2Ò? Gü?>%*?e#Á?< g>å?"7*?«§?²að@lò@óÞ?™Yú?‡»?ïRé@Eò?Íb?®WÉ?þNÏ@0*Á@Ñ-?¼?º:à?‹—,?‚ʬ?_Ç?”`?aiê?TEt?†üÒ?Šó,?Ë×Þ@ ŒÇ@(ð?âöÖ?¶:‘<ýí¸=ѵ?̪>?Ç@˜?˜’º?˜M¶?ÿ~í@ çV?¶Í)?bÿS?m-H?uhÿ?n«?fȨ?bÅm?•ØŒ?›W ?ª2>ñŽ?ògó@™+?Û-‡?—q?ˆ›P?t‹ã?‡ß=?¯$ ?¦0â?_¦f?bbD?Ý–?ßl?‡ji?btÝ?žV?¼"ï?º­þ?®qF?•úÛ?bj·?PÄ>ø³? ‰õ?±Pð?­9Ð@Za@+ø€?Àìw?zõ?¿‹?ôŒ†?¹]ö?)ïØ?!íù?è`?Ìí?zôØ?rÚí?¥U?©Ëå?ÔqM?ã‚C?6Ö>K4?>âkd>þ@s?'Ç?/x»?7ÑÁ?@« ?©Äg?©Úl?kæ_?aü¿?Ô w?ú»?ì{Š?âŒ-?Ò©8?¹†“?¥.g?b›¢?^x”?G?OΈ?gLé?cŽÚ? Nñ?©¿?ƈ?WÚ?m ?…&T?tÙ¼?Eï}?h• ?ªú? 1?3ÊÆ?/2ù>cù>sŠ>‚Î=>Œö?7oÑ?bÍ~?A!>±Œ~? ûi?qþP?”I–?ÚLÄ?×¥?ªv?¦E?¿U?:Ý>êøø>âÁ`=Æ~?]&Æ?ª?»Xý?É=P? >⛫>Àý>)íy>»f>}ª=Ùê1?5e\?@7ä>ø÷k>âLÎ=ÿ´©>‰õ¥>â¥?†??¥œ?AÙ>áÙç>¿˜f>ó8>]Œ?0´?+JŒ?+Ï?1*?6æ?<=Õ>èÛL>¬ÿ>xŽ0=賓=—dW<û±4:yÐß;5€<¤†È=+f#=‚bü:*x@>¾>>ßC¬>Ÿc¿>u|S=É°%<´ +é8%Q;çÀ<Ñõ°<‡-0=3Ê„=ñ¿ +>—ü>([\>0ñ(?—¹)@"¼”?­³z>ÅiÐ>¦ >‡õW>Üw¯?üí=¶GÄ>ÝNZ>ËÒÒ=P¼i>þöu>íùé>‰w>t*L>Va¡>ßq²?—2Ê?X==ÔÆô>;ˆ>s³ >þ:>úyR>Ýqô?R…¢?žÖ”?Šû@?z­ ?CIì? q?jX ?«?JFÎ>˜ç1>î…M?žô>~ع=ÃÉ;ØÒ“?#Š?x¤ƒ?ž¯&?¬SC?|q?N01?BL>ø#?UÅt?„Á?ݶ>§ñ? µ?¹Ï?´5w?å˜>ÿÅ­:Ká9<ôN˜=¯ Ä?Žiì?¹hü?e¸–?*?&Π?/ÝÍ?=c’?,bÞ?# >÷Ê>©Êö>pGK>9—ì>ó¬?C8d?vø‡?¹v>öùõ>SÙ= ß>=Rs>„Öf>£¾Ó>™ƒ¨?3/M?=¼ ?;{?E\Ê?L”?Rá;?pÛ=?w<,?šJp?«V,?†(j?vèU? #‹>ÞlO?±i?/ƒ~?‘š?£ ?òc>ÒBI?^Íä?ªÿ?h—*?Us©?n8?š{í?¡^?—}c?«$Í?µš?Ç·>ñщ?~Ùj?Œ¥È@Úß@ +?PŒ>ø¯?S ? ì>÷ÙN>øì3>øýý>ý{w?ºÒñ?¹ê?¤ ?ªü³?¶??¬@::u=ßà‘?‚p?„œì?yÈ?q$“?GD??g¢?¢~§?“DV?;-?DEz?zP_?Põ>‘µ_>½W?,…Æ?c>l?¼ m?ù©Ò@;ü?ÿ¬3>û¡?(õ0?dwg?4|>ûFÖ?Û?-Ó¦?!Ÿ>ûŠd>¼·O>“>?wÒ?%¡ª?Dåï?`Í=?YêI?^ï'> ”Æ<‡¯Ÿ?:?vˆD?!mÌ?Š5?”¶.?žœk?˜jØ?’8s?Qò{?Eê?<Ê?B*Ý:õä=Dšp?} µ?}/Ë?}AX?—e@Ö@3ï?üØ>ÂÒ0=Ä|?çø?µ¯×?¦(?V`?F?}ì1?8 >×{6?]ݪ?›N?h g?0+?)üü?#ú;?¢ý%?Ë1ù?‡>Ï?e,(?uô?}ƒÄ>CUÊ=ÚEx? ÖF?%æ?cE?ae@#_@*ñ?—Ý ?ˆñJ>7l?ˆGp?¦q?þ'²?Ñ<‚?4»?Z )?«Ø?±¾¾?·¦º?Ÿ,M?.?Àd?ô§ª?Ja‘=µB?2Ú*?Ï3?@gæ?-ëj?\´z?s%ð??k^?{µ>?€ ´?ªAˆ?¨–ç>Ãøñ>ÔÙ??.Sm?Ã϶?Á í?¿?ÿ?‚n=4x>€C2?Ú^?ˆV?"3Å?©â!@B+?›ˆ?ß?Fº?\?¯@²?Ù)A?–Î?e¡?';á?g0?O8t?`í«@I @R©K?j?;²?l? -q?€r_?›)ñ?ò M?À¿¦?)+?LOÏ?€|>?ufØ?yc?u?o Ý?‚ö‹?”Xo?z•Æ?_oÙ?EVÐ?.GÛ>Ãì=‚?œô?¿F:?s#?ÒU?íz? [?Î]?"ýQ?aX€?ŽÊÑ@#e?ûû?L8}?1¾ ?œœ?,Ž®?mÝy?—f]?Ó"O?˜@?"Zš?-Í?/MÐ?Ú7ä@ +¶?µç?€žŸ?‰G?f`>¦î=àî„G6Ž>ŒNÇ? Uì?Äý?€?ß?r]ã?+8?>´]B>Ùÿ’?™Y>ë4‰>Ü`4>M¡¶?Äv†@ µ?¿ÌÇ?„d ?‹¬Ø?’¿?eFn?Jq>>Ú”ä>Þêa?½4?—÷ +?5j†?>ñm?ƒ@"?mÁõ>å¥? Rœ?˜LÂ?‹©n?[#?_Þ ?d§Ì?Cg?zT?\·Ñ?²ó6?Ù#]@!Æ?—Ý.?n…?Mïå?€kp?)”?§z†?~z?^=×?oèÒ?‚;?–G??šýÓ?Oì?Ÿ¢ä?§b?µ"/@ ¨o@IV=¶nn?=ê‹?ƒe@J'?ëvL?‡·‚?IÒ@=èžX>Á‹I?òµ?™5?ÀB‹?å[>Ü“ñ?‚ºÀ?Í¡[?´q?£ú£?¬t¹?¦Ø?rõ?JYà@ +@ µÖ?«Ç‚?‡ˆ)?AÄ>¾pq?Ó¯ò?ìƒY>€H=ï¸.?ïà?ï‹4?°²? OÔ?ìÞ?6??¢8??yƉ?Š—}?¿¢Ç?«Kõ?haY?CÅ:>ÿcj?<5•?“Ã"?/:É?&pÐ?¸ÒÂ?¯¿¤?œŠ,?F«n>Õ{¶?\cJ?•ïÜ@Á@(Eš@t?þÌN?í¤ñ?êø;?ïÈ?ó:ñ?” ¢?{s²??¬?öÝ?j˜4?tmÕ?pC?lÿ@¤@¸?¿r\?ºß”?%¥º?1qŠ?œø4?— P>[KÂ>‰ ?>ýÉ?A,)@˜i@Eò?ÞƒÒ?Â"P?v@?~&z?ž7Ÿ?—mŒ?}IŽ?W]?µï+?£?}å?•éù?½/á?¿"C?È{å?x¥'>BÒl?6Ä?¦G²?œ¿?Œ$½?¾ó©?ê›??Æu™?§T?À,ÿ?Ö—¶?ÓŸ!?Õþý?ÜÄ?Þ•?¢‘?{Ã?ØŠ}@"â?¢Rƒ?VÛÐ?âa>@˜²?Rƒí>+wË>Ç{:>ûÊ>¨Œí>1¡@8Øb@z¸°?¬\³>ú­Ÿ?–ò9?¯; ?U“¡?9w½?[Û +?^¸»?ÏÞ³?è¥?¢è?’?åe½?ù¤?ÖÃe?Æ5@?£Æ?šýA?™Í?—@n?•H[?‰™L?ðù¬@Sä@NI¢@aUÑ?­Ø?Dm—?ÜÛ? ˆ?±½‹?È:@ +„<@ª%?Õ9î?¹UØ?ç@Æ?ó §?ÇAã?¹³b?HS?@î?p¦¤?ŠjÐ? ×V?¦õá?£ó$?§•?Ôý€?ë³p?ô>y?ö€Ý?Íÿã?»Çê?9QF>,¾?•?ß°C?Ž–?*ÎV?‘]*?·¹Î?‰CÅ?A:)? VÏ>¥ÍŠ?J@í?²Þ?æhr@5K?¶E;¯Ý@?1nµ?åºN?«Kü?7¦?N-?¶ð?Ù¥@E@Äû?­—§?©4:?sM¾?mÏ\?Co?DÎÖ?ŽôH?”T,?pîh?j ò>ó³>ò\û?‚%$?ŠÊZ@* @3j?aû?#?:Ùº?<]\??ä-?7êl?»Ì‰?ñ ?¬jë?u¨ñ?pâ2?qò??º¸?b²?=V€?…ÒÑ?d*Z? \[?<˜? ]m?¨L•?³¢m?¬DP?oJ:?tÝv?³MÎ?³=Î?>çN?6?gž?u¨{@ Š@$2~?Ã:&?ŒkÁ?Ì®>¥ŸÍ?IµÓ?”½v?Wfì>íla?€ c?í4T?Û[t?±¾C?¦…œ?râE?z¹`?±PÚ?±_?òf +?õÙ?á˜C?ܾ?ÐÝá?Ê?׫M?Ýî?ÔÔ°?Ô?¯@A?†Hú?ÃÞN@â @K7?¬…?¤âó?dp3?v¹‰@g]@…2?4 ~?§?”ª¢?©?1BÂ>雹?“-?̪¬?š<?P!º?Vª¨?]+?¯ý^@.“Ò@&Í?åž@?àc?^Ñ)?[i4? FÅ?$? +Þ*?„?¶}Š?ð˜Ú?ÌZâ?­³å?§æ ?¡ºÇ?·=ÿ?ìiÒ?ä¨9?Ìp}?ÑdÛ?n~‚?fÏ¢?âÉ>æ¨e?GÈÇ?w­B?Ø,ð@Î^?Ö +Ë?,—Ø?SÕ?¬~Ê?ž“î>ñé>ê8Å?ª ˆ?«Ðÿ?Ý3á?èÚ¢?¸3#?žsË?V%P?ó!?kNl?¼E +?Ÿäü?6~¿?F¹ð?Ÿd?§ò-?£}l?¥z]@ "L@Êæ?Λ°?ŠÇ7?ºC'?óE?Å%´?@ðÜ?ƒp@ã@ff?1hQ?&ÄO?ÿ€>øÖ$@!—m@^|O?Ï Â:+;?^hd@ ·?ïû>?Iw¡?F*Ú?…Æ?‰VÌ?›?šñk?÷·@'¤?º'?cL?‰Çê?ª=*?¹“ñ?ß·Þ?Íâ?’­?Þ…?Ùë?‡ ?ªóñ?¹R4?Úð[?ó©?Ûú_?¶ ä?Á§Ä?â›6?Ê%¢>â™>äœÜ>þRP? +»n?T®B?b~ +?–×ð?©Ú0?°ë?¹”a?¯5{?–9¹?ŒL÷?F­â??_Ö?Å6?Ç)x?äW¹?ìfý?‹š?>ˆ5?©j?ìñ?Å“?‡¾²?˜ÐÛ?¸s‘?¸#Š?ß ?á'M?­qÞ?©Ò‹?,Øê? h>ZM×? Ïs?‘E©?c¥Ë>âvº? Û|?€šò?vo2?Tz?]­?`Öí?Vøú?È=T?ðå®?Év?¯ÿ%?Âñg?ÖP?´ìÒ?Aãƒ?0Á‹=sœÝ<å ^?©‚ ?©Þ#?Ø„:?Þº?W›?b·­?¿Qc?ô1W?ílÑ?æ¦0?ÛÞ?Ì Z?Æ« ?­YF?§G1>Ê÷f>¸r>î›ù>ÜÝ ?)Åv?G]À>¡9Æ?½õ?¡•ÿ?‚Ã>㙟>¶èZ=<%®>Hœ?U: ?P^L?K}ÿ?FžÁ>ó‘?Â?Pöˆ?wªŽ?F`?_¦c>âšã>â”õ>â‹->âp>â;>â>>qý÷>à>ÖÜž>ãI…?ùå?¤Q?~Fº?T!’>úV>Cbx>@}õ> Ô;><ת>†™>„²>àÓ²>ö80>ã3ò>áKQ>§w/>¦4†=Ñð¯>â¿?Q¼ú?\’]?`zu?¢y:Ú}->¤”w>™,7>Ôe>ß;ï>ßz>ÞâÈ>B!ñ?Oxë?WEÖ>;²Ä>V½>§ ˆ>2÷x?€K@˜y?ÊìH?˜"µ?v\Ô?eW¬?)Òv?ä=£³!=•Ý¹=ü‚S>»îÓ>ä4Q?Ž—X?soé>þ^Ï>ã?p>›ôx>ªŒ>¹v>¤«`>Ô2?{2Ì@[Ô?ê£6?v­?òü=¸z>ΟË?AÜé?ˆ·t?£¼ú?s£S?< +>?Ít>úÂ?0”?X6?_8?f;=?9? \Á>(5>º·Ì?¡?l€[?ŒÇ? ÈŽ>»S¨>í•Y>ø>¦«´>•©Ÿ>¥&8>Œsy?3\µ?b}ì?WÆ>÷ƒD>÷w]>óA4=ܨX>VD´>±…½?®Œ¡?ËËŽ?±7Ï?¡fv?› v?žùá?&òú>÷ +Í? Ê?­ók?yúB?kv¢?u„q?w?s9”?l¨?ù9>Æ ?%¨.?*í¿?¯‘>÷¿?Yü©?}Ù’?¨>÷+Ë?9G—?:ŠI?BYŒ?SAÒ>@sß<’Üš?Lë/?wiš>I‰=ŠëY??'ý?XÔ£>¿Úø>°^?Iн?GZW?™©>÷×¼?ª<“?¹öq?߶>ø ß@–¯@ÿ±?.Eã>ú*œ?æ…“?ì7?ƒRƒ?x€®?ƒDÓ?”AÕ?U[º?I%w?âú{?ÛÔ›>ˆð>—/?(©»?' —?«U ?©¨æ?½Ò?&?oCØ?‚@ã?¶‡J?¡#l? ì?!l[?y×Ð?e”þ>ùú“?Ëà?˜ƒ¢?‡£?¦?8¥ø?“m ?`K?;5?{¾Â?»þ.?¸‰…?¶k?ŽSz?Ïg?@Á~?l]í?¶ù?®­Ë?sÉß>ûX‹?Jòò?‡·Z?=ES>ûš“>©bi>>jü?M?Xݶ? Så>üÏ>¹;°>EmX??ÉÆ?|(@ +@Ý-?Ãß×?¦^%?NT€?E^ö?Qãà?^c-?8ab?:é5?;?0þþ>=¯>H¨)?7 à?FÉŒ?f•e?|ë>?®q?ÅWË?ý\ô?Ç›:>ê“?§>n@H?Å@@7>ýá¤?3ëŽ?}ýã?ß®?HÈZ?Å¿6?ŸT¶?~P?~[O?~iï?Ä­ß?êJf?èS=Ä#o>ϪÈ>ÿž +?bj?hÍ?§æí?§ØÀ?"7z?$öj?¦äÀ?µ?¤¾à?™‘¤?;”X?–>™äï>ÑG?1˜ç?Qºõ?r~?^+@?qx?\o?Ô€?u?Ã?WhÚ?I„?s@£?I¤X>Ôú>šò>>ë´Ø>ÿò^>‹HB>wÈý?•@s?®HÜ?+6Y?+z?€ß?pûC=Îxæ>a´?â™?UN +?úre?ï?ÀM{?º¶²?¨ÿw?¹±Ø?Ø&A?¤8H?ZRD?nÏ?Šht?‡{1?€R >° Ê?‚ª?¼ý¿@ …é@Ü?‘(G?iìŒ>…tü> V´<ÇçÖ=‘?r¨?,’p?ïYQ?Ô ?€zû?”§8?јQ?ëåÒ@ðý?Ñ€Ð?€…¬?gQÆ?:2-?`þ?™–?Š l?yÆf?i˜?Yk=?°«I?ÊK°?Š.·?y ”? Ì?äK?í´?ó^@J»D@> ?Ûfs?âÕ@ @T?ïWµ?àR?¤zÒ?—„E?{N?~©S?ŽB1?\2Ý>ñ4?(q½?cto?š²?·?s?“½*?€§x?~äy?€‘@?ÿ/?§d>êêv>Ýt”?øÀê?û,?,?®?WC?nUi?–µ?ªÞà@io?ðA{?€¦;?žÇ?è:?œH:> +šw>®²?D5? ]/>Í$X>(о=~ð?¥\Q@j?Ò#4?»:‘?¼`?€š'?,?­%?7d?/f ?Íò?Ì4ë?Iœž?N1ò?¡1â?¢èý?›Z]?—–?”ä¡? ?‡Ü?q?J„¡?%Ü®?‚o>Ãñ=0ù>‡®…?ÚG>}È =¸H?'W´?€sÒ?ÐÕ?ò}{?œS¯?€ko?Û¦?h?-’¬?9FK?|'$?€`«>ì(^>ä ?˜x?è­>éê€>Ã_Z>n!W?%øð@J@ “?Àhê?ìË4@"N@ߊ?¾±Ÿ?ØWã?ú:^?‚ÜÞ=«M?Š3‰?ñ¡?Û×?'³?elã?ˆœ~?¹ ?Æá“@ëÒ@!(8?‰l©?5¾?r?–i?…Mn?‹ 4>Ñ`Ë>Ö½?Ö6?˯?rz'?w¼P?Áý?¼£?³å?­?¢Ò?­µ@Ä‚?õnH?„.?‹G?œr›?V…m>®Â˜>Td>ú·×?=?¢s‘?ÄÞ?žYf?p?ŠÕó?•É’?Vâ?Ü ?¹®A?ÙØ»?ˆ4?^'I?oî§?v¹+?³C>ÿ]>þ•±>þˆq?ÇÁ? ¥@?°Õ™?³î±?¥Zù?®Xú?íF§?ï[@ +,?ýCA?ŒY'?ŽÔ?«¾Ó?¡0}?šXß?œ›¶?¾O×?Ô1m@Ís@ +)?Ù'½?­‹Æ>ýs÷?8ºe?“$?”Ôk?—”?‹%T?€Ø??HÀó>þÖ”?s6à?½¯•?´Ò1?¦*@?iæè?Ç?M˜»?|K?ª·ë?ÐÒ¦?®"?•…'?­ü ?½':?«?þú?ÄQ?Ùy?­”Ë?–)(? ‰?¨ZÏ?“ ¶?EÞ?©j„?¼“"?¦kl?˜Ÿ??)—>û$3@)Sv@XÀ’?õkm?¿FE?ŠûŸ?r?Ž?…\J?¶a>úp:?èÓ´@.a?ÖÀ‹?ÎÌ,?Ð`'?Ì8Ù?²Gp?²#?Í>?×r?ÁÃ?»!Š?»‡?»1@²²@%µi?Òrø?ºÆ™?ûr®@²%?Ô{&?Ï¢ï?„X`?k6O@ •”@78l?g·˜>ø o?¢û:?¹þ^@ ã@î_?ü¿`?î&w?‹j‘?]^Q>¿JŒ>„¼?hp?«ù?G~”?*»Ü?ƒ¥e?–‚û@ @)Ç?½È‚?vZ|?Ž->¿?¢Uc?áY;?X¾M>‡o¤?ÊÔÂ@$Á@Y-?á|{@@>#?Ó£?nô.?9lm>ô΃?/×?lVé?¾QM@×?Ó-Š>ô.²?JjÏ?¶ú8?–)?iÄ?V?£‡€?¡Æ?Ÿü?ž7²?œry?—¦¦?wK]?€’C?îü?çu‘?*„&?'å?/ ?Š¬±?øÇ@j?‹hÜ?q¿®?ÚWþ?ñˆª@ zŒ@Ñg?ÿ„R?îq.?ï!E?ðÜc@»@7Œ@‚í?à„?ÇÀ?«_?¥µ³?›Äå?¸RÜ?ýlT?è["?³­”?°‡`?u?~ó?³V¸?³¸u?µºZ?²:×?ýl>î‘Ó?¬Òß?»e3?‚t¾?p¼‘>Ï{½>²ý?­z?CpÁ?"Ù\? £V?…?àù–_Ê=á«’?=¢?úN? U>?ªv>Ž33=„æN=¦sö?hÁÌ?9´? ¬B?ÑÂÜ?ðs~@ †H?ñ?«òb?ªq¿?gI?gœ ?ŠR?ˆIý?J½$?9Gì? ¾í>á¢õ?0oý?f\„?ž{Ž?׋•?Ì­Ú?¬‡i?£àí?h'¢?grí?¬KA?¬@ÿ@VÔ@&u°?´ û?w`?,¡Ï>å9¨?` Ã?»ÁÅ?¤ ?>;µ?1„ƒ>äÓÔ>äÄ®?$úŠ?*?\?‡SÄ?—d9?†“?}Ä?¡Ê™?½èÍ?‡*,>§ey?Z[?Ÿ_ú?¢¦?Ë„{?ÐÈ-?q·œ?^%?bâh?c²:?b«`?\Hö?eÀ?ô?§½ @­O?äï>IÚ>eä?Èn?ÑA ?ˆ#¼?s/U?‹\à?‘?€jñ?e?@k?Ó&œ?dž?9êË?=—"?5Úâ?-!?ˆ@Â?‡3?+?DÜ?¡€@Mÿ@ž¦?âÔ?Îã=?`&†?]çò?ŸßD?œØ?ŸÈ9?Ÿ$?‡¡r?¶§?XÝã?;»?y¼?©ÚÊ?¢Í·?‹~±?’ÓÊ?Þµ&?ÚÂ?Öѽ?ÒÙp?³_“?©Ð™?o¡?0F‘?º>L?7Ù!@ … @ ?¨Ìž?©Ó*?ßí?ß¡m?«©c?›÷?ï/¤@£á?í†Î?ÓCç?©Mm?;³9?,râ? —"?ùÛ>â†Ó>âˆV?ˆˆÍ?“}l?¤ãO?©ñ%?]à‰? ôè?zÝ~?¼ñ?ƒ„Ä=£æ>=™»?a&?r+@aÁ@[­—?f¾%?íÂ>‘4ä>;Óž>Õ?"tV?9~?OÌ]?€ï²?¤ ?¨«?­IÆ?¯Í?bÐ,?bÑ ?”ž‰?š÷]?!.l>âÓŸ>)Ù“>d›>î”?B\?¨çd?£|ý?š)†?˜”Ô?Î~ ?É›´?j£?bÅ‘?É5 ?ÍÁø?q¸õ?,÷?D«Ë?R¯¸?Áu>•U¿>Å÷? ÉQ?û>â~˜>ùî`?âjt?â\ï?xþ?az?Å͈?ÜÖc?–òù?b>Ý8'=ã Ï>h¢>v3Þ>SZé>f|ê>D÷L>/X\?é?ª>3]E=°`Ð<¨zÈ9ú,<æQ== ƒC°>XŒ>o>Š>ƒR>PéÍ> TÕ>)M>5=ÏO”:ˆŒ:Ñó‰=W=©U><Ì18=Žî8> =°Ù?Ù4l@Cþ?õjž?®‰ç?+“†>Ñ ÷?d{?€÷¦>©=>åõ>í6Ò?œÏý?…->˨>q­¬?ÈF?jš>‡ù">ˆ \>1e=Ì÷>×´‡?r?œ9ª?¼Çj?…æã?Õ?1a?J¡?¢A>û??Á±?8xÇ?6Ãg>æWR>£¶Ñ?_Œ?¡*>î¡K>Üd?² @?÷) +?mÑ>æY;?CÚE?a>É>Ô”ˆ>– â?E ?Y¢Ç??ïº?6{>ðÄ·>±z¼?/?;õ>öy)>ÖçÇ>äÍ>ò‚¥>÷}<>÷n®=Ò3?EÍO?†:?«±?¹‡¿?f ~?G<Ú? ^c>÷[@€ +@Â.?lC?Fî>3ºF=ê‡? ’÷?&n?à>÷z>÷$û>÷(->©•Å>¦ù{?†Q?žË–>Š.J=S:ó>èì>úPr?d×?wt”?\b­?K¤>™Gà>ŽMÏ=-Ì?NK?xlT? £ú>÷ä6?‡œ?–ä +?A“>?'ËŒ?pzž?x3g?tÏ?w™Ò?¹ƒA?ÀÉø?-w?x>?˜õ!?“<À?xÈ?xËW?ÔK„?ÜO>QŒ¾>Cþ!?*j¦?<éH?‰Ä?†ŒP?ƒUt?iÛ;ø¯´=Œ­? £?2ú¨?¦pé?š˜?yæj?rY,?KDs?_c?È-?zÏ>R-p>Ãhÿ?€@„?Ky­=×Cú? ÷?´ú¹?ŽA×>þ è?,Àl?tJ¦?(«>®Š?á´?»®?(ûî>3®;? +¼?q>?Wú3?5Z£?‘ä>ûË>ûÞû>ûïñ? |9?Ëy?ç¦@¹ì?Ý }?»æ]?ÄÌ?̉*?•±¸?Œ#ì>†1é> È?©=3?­ÖÃ>‹†ú>„êF?™öŒ?’Êf>ý#Ò>ú1>¶Îr>¨‡5?×>éDv=:Ù=ûQë?Å?QŸ–?°&Ì?œ‡Ô?Ž¡ü?‹ç]?WQ®?e^1?~ ?o? +…æ?~E¸?c@=?V‰`?\ž;?bµ ?hÇó?nÙÞ?¤M?¹yš?-¢#>þÄ ?nÇ°?~Û >t>¦×í>ÿÓK?Ù?‘–È?ˆö„?rÚQ?~Ź?…U ?XF7=1íœ> ñc>¯Í“?R ?Žë•?¿°Á@ + Ð@?X5@ õÃ?·±è?¶?å?µô£?’Â?àÔ?¥bM?©Å1?Ͻ[?Ò >ª>æ¬Æ?<’9= x”?è?Š]§?@Êî?NÜX?»4­?“ò:Y´>¡"8?„se?‡MQ?Š&]?P!I>ùB?F}¨?€Lê?´ƒb?Õbk?ˆ@4?APQ>ÌÓ¼>P¹Á?vvÁ?’9D?Ôê?€i'?Oëá?8³Ê?®G±?·iö?v/?6#?z´?Ø?U?œh­?³Yº?šuJ?Lè?ŸþV@ô|?Ååù?<2a?ž=ª?ÝÜš?¢Æ‰?^û?ºÝ¸?îú}?ñ±w?ôe +?ï:?òZ¤?:ä>øð–?²P–?¾^¸?Šã&?‹’;?ù|?!&>é€y?@|Ñ?ü§f?þ´?è%Ú?å…E?âä€?Õ9%?Á#? ]•?^U”?”Üd?Á{?rØò7²>=3>ÝC¥?ÝÁ/?íg»@Ð@ äQ>ÆB?/ø|?€ª @ +ø,@PÂc?÷Hv?€¦Å?gw?…ÜÑ?†æÁ?ˆ2$?‚–â?€¢4?g”v?^u4?}øˆ?€?Ø+Á?Õé?;Ó™?@¯ž?E‰ó?`’T?§ä?›û9?Q".?G~“?=ÚÍ? w?ì ø?¦†K?Š?CŽg?‚wð?¢ðÄ?¼ÈM@(L@,†I?Æ2¬?€zä?Üö@wŠ?œÓÜ?€s8?9Ë?oa?n;?k?>C9U?Àb`?LI?/é;?¸L`@?ÄqÉ?¢#j?‚5‰?Uh3?ì®?$A?Í=?@²?Π?ÅÇ©?ÐTö?ÊT÷?—¹¹?—e?-C>ý²o=Ûcn>>Æú@£U@Ö?·¿?ì?Ó?ʨ?Ák?ª®4@=:?Þ"µ>Ö¥>Ì0C>pT?=!f?¿¡ð.h?-‹?K‰?c˜?›>?t1?P£Ÿ?8›ê?%šp?Ózå@ "¿?R?¹ß>©4{>N‚“>û’Á?‡?nî=?}ü"? 4Ô>þ–v?«Í/?® +G?‰ñò?Ž á?á68?Øù@?¤{@?§þ?±Bž?¼tM?¾“?Çñm?ü4D@ W‡@)ØÖ@T9@Ì?Þ H?}µ¯?}¨ ?} )?SUè>ý€o?z/?ì]­@ |\@2ž#@~?½ã ?¡£?y¼?}}?„ ?ö]m@/\ +?ùØg?¢®â?§c ?¬"Þ?µgá?½^d?— ƒ?|_ ?";?›‰?œòÑ?ž×Y?ñ5™@ 2¶?¤ö\?r€ò?ªcÄ?¶‚@ +ƒ @?¬?Ü¡Ò?¼Ö?ù‰t@ +ßõ?qeÿ? —ù?£î?¼Kq?¼>õ?¼/)>¦|Å=ÂP?—›ø?²*‘?ûãF@ƒV@ r@v?ó=Ú?åDä?Õ¬?ˆZQ?Ÿ ?Ÿ4?<Î?›W¦?„t›?…•È?Ë,&?Ò+9?Ά™?ÒVÑ?¾v2?ºÑ??¡0?ˆšf>ž}>[½>ö?¯?×b¯?ô„d>$®;–»@?ž :?º´?L +?9¥~?²öl?Å ?±ƒÒ?ªÒJ?²×^?­Ü¥?¥ZÆ?£wi?cÃû?D!º?Žî?œ(è@ƒi@TY?Û$^?®“E?‰£?v:4?Î •?û˜.?¿à–?™1·?’Q­?•L=?…p?e{?Ù7Y@—Þ?®gb>þ»N>õ7ß>ôÚ«>ù‹1?F?EZ=?1{?†v?^»-?mr)?ˆ-§?‰å?‚p?jÞÀ?M··?Tx©?[.º?}Í??¶c?ÀV?ñu’?÷{¬@$ѹ@í€?0?Ž=.?ôVé?ùÄE?þ¸ð@؈?‡ö+?qÉ@?ÖÒœ?ê?ë©Ü?í8º?ÃO?´ +?IL'>ùP1?ŠC?¼œ¥?J8Õ>lÄ?Þ?‚Ø}?„s¢?†o?¾Ø¶@ãÌ@õú?³µÓ?ÂJ?ûE}?ë@Í?’Þ¯?“ñn?—~5?œf~?¤qÃ?œ/‡?Ü/v?ëž;?[0O? § ?’F?<‚?™„s?ÍU´?Ÿó?mƒž?ƒ~H?‹s]?À(Î@¿è?öð³?næ=?…÷$?¼ÌÒ?ÀÈ€?¸c>?¹òÔ?x?™ i@ן@!ë?âcš?Æ~»?Ãÿ?¿¶`?׃?ódë?Ÿ#Ó>ë ˆ?yÚd?ï‰T?ÀKŸ>½N›?+Ò?Øxâ?Ò0%?ž¤Ö? =…?jÆi?U!?±ø¾?À©O?[?Tâ?^Œ¼?e4?h¬ ?i]?ÁKK@-oF@&b»@‹û@é#?®bçSS>ë×?By??˜ã ?š„~?«ƒl?­ u?Îr€?Ú¯Ã?›'Ñ?fd¦?y6?‚]ï?‹â?±™š?¸'?åáË?ã“ +?âæÊ?á$?Â-ž?Ä ¶?«ÎÐ? ¦y? =í6:>Éo=?;›¶?d:8?– ñ?¹ç?r·?nG?È ?¿`2?l s?O¤&>Û™á>•Æ?uk?æ,?}ú2=Ì×U>—Aÿ?v¥¿?hÖ?>ãù¦>ãò*?Úû>ëPú?Hðû?c»é>ÀÕ_=‰ld>‹/˜?…A?~|@*v@e4?' “?Ý?¹S?¾ñÒ?Š²£?tGE?ÀY‚?äWX?Žn >ã¥?5Þ=?œÈ±?ˆ¬Ç>âð{>å¾?›Ø@?Ï@-@Ÿ@D³7?ÕšJ?v#i?2ûÁ>ëAË?‹^À@ †Œ@¡1?Úß?Ò±Z?qþü?uÔ˜?ô€G@&¿?Ór'?¿ëú?:»>)zÅ>ݽÓ?U”>?mN?ŒàŽ?”÷‰@³|@¯È?âwâ?åÚŠ?”~3?€–‡>Ή4?"+P?¯‰Ü?Êö@ +:¬?ù”Õ>ã%,>ï€Ë?pL?yW¯?tkõ?v#N?´Wè?ÓÇß?æT?^Ò?0=Ò>²«‚>Ѭ–>ð¨ù>ßÃ>âŒP>âŽH?Wƒ?„º`?¡F›?©ô?ŽF7?x;T?¼6Ÿ@ùG?Ú!?fÒ»?MMÕ>âÐð>ÿ¼ê?¼|Ï?Ç¢t?fyœ?Mõü>AQU>Bå°>•-’?)·ð?‚û!?n¸?bÍþ?bÌÿ?bÓž?`"ƒ?<ùU?A¥X?+û÷?35Y?-Œ?‘>MÝ÷?h7?âÐB?·»?j~ ?›à/@€?íëÉ>Ø4l>ÿ8t?a†º?bÆú?£ûU?¹¢Í?‰Xä?b²’?n¾B?€+‘?2ͬ>}Ôà>¹ q?7b›?/>ËÅÃ>øfð?àw¨?â[ë>!L×=m!$>7G`>ŽŽþ?”S?ÅÄ ?™¨M?^o‰?E¹–> Œ#=fò~>áå>ápÞ?`¬/?aB>ÞÂ\>û-=á.Â=æ:\>³¤C>=…f?²Ùj?­3>´éi>G;==G|Ê>€q>Þu¤? ìç?@,@?š=?*H>Úð°>ÏÆf<±c…>°#‹?I(>š×>]ç>+`?øOÿ@k÷Ò?å~†?"E=¡®A?N&?|üD?€‚?uóx?slM?gö¸?8nn?:º>©i¿>Ò‰Ç?PÁ ?+f¤>ÚA?Ú*?N.Ü>ûß]?4°å?í¼²?Án?}>¸? ,Z=i(>¬ø†?Óè? å>û>Smò>ŸùY?Œñ>en1>ø F?I‘g>žaû=M5;À +Û¼v;>øï>‚¹;>aJ‹>¦^ +>£÷Y?tš?˜SN?)ë2? ºã?>½$?PV>Àõg>Lõ˜>•=º6Ä<Âc:5ø`?C®Y?l$?UÀž?D¼B>Ù&Ä>¨ÿ?r5 ?„yê?–A{?˜á?C2?&¬è>ÈNº>¼gc>ï6>÷M?pƒ?{`k?w +?wÄ?„í>÷)>Ȳh>²äQ?:è?Gt^>—Çõ>tûð?"Kø?,oÿ>À ñ>^I?;‘:?=JQ?KÉ? ‹?¨î¯?¸£g?µß³?²ÓÂ?)Í`?ÎË?1XÝ?&çÆ=…´~>ÞÖt>÷ÞÒ>÷èÚ>÷õ¡?îá?]Ê?›é3?©¿?„$b?|(k=LÌÊ=Å? Í!?»,?vë¸?x »?äñ??âÄ?xçU?xÝž?xì‰?rH>™Ë<>§w¨>Š]µ>—‹?¥k?¬š?¶ÎZ?²ì%?xù³F?o,?04å?GÒ¦?yú)?…)¡?¡Ñþ?–(J?~ ‡?XC>š»ÿ>»Ùž>Òæ>Ø$ò?‡1?3Oæ?zË?{¬’?z¨À?x´‰?{Ã?;û/>Ê×\?Tú?ª Ã?OWÊ>˜7ø? sê?=H‘?5}?—M/?@Âý>ûßã?&€¿?1_“?TÚæ?o Ò?u_è?{1>>}]f=° a>#'[>n5D?a©W?|ª„>Óg<>£"?„Üè?•-l?hJ>äø'?cÜŽ?x!‡?qQ}?iúú?¤?¥æ¤?ŒR¿?…¢±?#Q?\™>ý²ú?¶÷?$R”?…aÇ?Ï}›?…4>¬¶„?)¿>î?¢?!o?NæŸ?ó#>·¹ê?C“?\€?Í? +—Î>ðr;¡^>Öaõ>þÙî? r?Åø<ãÙº9èi€>îõ>‡Ó?¿`‰?¼Þ¶?¢(Ê?“ÃO?k"Ë?4X·>'¬þ>€Îf>ÿ‚e>íy>òµ?$áÒ?µÏn?žßi?‚2p?È£À?ù–ª?c”>Î=>Š³¿>É?P)î?‡y?àÁÏ?ûY>ŽÝ?&ƒç?.W>£šú>¢Æ•?£v?¯f*?æch?Ü3{?†!ª?b„›>ý|×?#ã¼?€F0?.³Ö>@>íO?9øb?¿>º‰£?n¹?³ûÏ?Zü??e?qiä?ˆM?Óä-?÷I`?ˆ4õ?g!‘?óÄ{@zc?< ?…õ?q!?'~Ã?ó¯ ?ÙPR?€‰½?ƒ³T?L?r®v?¢?`³v?ÀÞ0?ű.?¦?Ýc«@šË?ÎYK?«Rr?¢? „¯?¥ê½?«NŽ?—t´?‹’S>]Õ°<­?êf?þS?¼dÜ?·´¨?Ÿ@5?‘…??ù?YÚo?Á »?½Rü?¶öÛ?ç’Ž@ ©ö@¾+?ö±?Æw*?–²?‘¸‚?C)?w¤“?C-…?qõH?†é?´Dk?ª¶ûü>£ N>Y•É? €ä?p3Ü?F2?h¼?Vú?€±~@,7Á@V ?Æd÷?€®Å>©…K>eHê? 1¨?­Â-?4—?2—M?›;À?–º£?¤µ? 56?8«Ž?.µ£?$ŒÑ?ZÆ°?®”5?°û¢?³_q?˜Ù?^C?M¿^? #?¦XY@Žµ?¸xÜ?„Y?]Aˆ?Uæ'?¡u+?³„-@§Í@¥˜?Å&Œ?ª£?`?JAT?E’Ÿ?@â?>‹‰e>¢ˆÀ?IÜ=?Wo@iì?é¼Ð?`ו?€wH?µ3„?›¸À?|8?ƒ{?üF$?¶g”? Ï€?O ;?…vT?HZ?Eo?nÞ$?ªæà?é†^@3™?¬¹k?€5z?‰?ˆé?®ÀJ?ÀqÝ?8j¯?U§?Þr?û" ?ƒd?6?ê·õ?îËR?0 ž?8£à?ÇŸÄ?ÂòU?¶@›?ÓK@ØÂ?ög°=qä>Á3ˆ?˜/i?žÍª?šˆ ?‚?<ÁQ?–Ù4?ê’M@ê¥@´-?§ +à>‰B\?M[?¼¿? cÉ?¥¬Ÿ?ƒo¹?Uã§?…æ?ì«?°©?´Œ?Qq?m‰?Ú¾ì?õa8?ɶM?¿Æ#?÷Ël?û_?»Jº?³Õ?ô±y?ñÚb?¢œ?ÂÑ?>ô?.”?Õ¡.?Éx?ÐÑ?‹ûd?›—ü?¤:k?¾‘?ÐÙ@ {`@ó@s?þÑ?X??\»?` “?H&ˆ?qî?B˜Ú?…’Ð?I“w>ñë®?o›¿?½òŠ?ŸB±?}%.?¹?îmý@ òX@#²Â@ ;›?í¬º?ÐvË?½‡{@©=@ê?†H>Ö>]?”‘î?¿ c?xî¹?C´?ÃÒ?ðø%?–ã!?PŸw?×Ï@Û×@4N@²P?Ä€c?©åD>ìÝ>2î-?•ô¸?¸Ù,?¼Z@?¼ZL?îìŸ?öô¾?*v%>Û½Z?wÝ?ˆÞ?¡Ý_?«™@`¸@­Ë?×£¸?Ò[Ï>²5>R¹A?Œ‹?šül?¸ &?»Yc?E`I?.ú·?ÿ­@q¶?‰šã?yLü?¦¬=?¬Ê¨?Ð3>?Ï™?ƒâç?xÐ|?o½S?rHõ?œ_>ù®t?ªç>?³N(?¸Ò ?ºÜ>s7Ä=—}»>tˆÎ>œe¨?ymŽ?Œe7@* {@:H/?lºP? û0?H'?žº?}ìi?v:#?ž?Ô{3?Ú$´?Þ‹²?¦¾û?‹?ºú?‹í?Þ3Å@¢Ú?NŸ»>ç´>ð‚?!¼?Š†¯?µ¾?¹•{?·ó?)Ÿ‘<Ò`?Î"2@Eî?ëk? ‡7?;¤´?tKê?ŸVo?Ô1?æƒø@?߸?‰!«?Éþ?¤×?•&?p?‘òñ?ø<Å@È@”W@ I?Œ??Žñp?rhå?rEÛ?UôÎ?Y<5?p½±?qÛ#?´W¤?ºæÂ?²»^?²É(?†Öj?q8_?Ê ?éB?ÆB?´•Å?ã;R?þSl?„•Ì>IÍ^>µs?ó?Rè@•$?ìŽb?³Á§?®Ú?£}?£¸?o;ö?o£Î?dq‚?\Ûá?ɵ?уú?Y®œ?H»ø?žFÈ?°)t?‘XÚ?ƒ2>?T$>Êec?F@µ?Õ¶@c @J0@*_½?í#?ÚŠÀ?¯9Ö?®vÏ?±…ß?«$?~ ä?†„y@¤±@¢?”ß?‘“®?¼ö?Åj?‘º?‚–à?‘W‡?•J?,Ÿ>sÖ?wb0?û +ã?ÖXn?Šõè?žÕ£@A?ù$A?jC7?j-‰@ûR@8–@šŠ@(•??ÑW>ï4>¨oÕ>êÜš?É0æ@,PK@¥?ò*`?óÐ^?ð³…?ÞI?!Kû?(\ ?­í_?®:J?øö?úI,?ùÝ´?þØu?Îc‚?­ÏÃ?‘4_?j ?X˜n?%ŒH?ÓÅ??R>õ«É?B¼Õ?Fþ?¨[Ð?­¦?£þU?£L$?Ž®š?~€?Ò†E@] @²ãH> àè?Ff?d[}?>B?ý?7NP?¤ñ^•>ê7@ $”@Kß?ÀB?§¬?ÀKÊ?ȶ?—‚É?NñG?N(s?a?ˆ?SbÊ>Œaþ>ž"k?ªUõ?ªÃ?hÈ%?\+ä?ù%o@8Ä?äÄ ?“ÿ”?«ÆÜ?ãr?ÄŠ{?A‰?ã?z;2?vwï?«? „ü?¬²Ð?Üî? ?ª?Ö;@ ²ó@ )@ +j?@|Ö?b¨Ý?b§·?—þ¿?¡±¼?™â?™J£?(Ñè>ƒU>eÅ+>^gŽ?|q?©è?ªôÂ?¸»?¼’|?I¡?DŠF>£<>/²9=U!?W“¡?ß•?©ãÉ>âƒ?S?¥Œ? úˆ?£]d?¡P?Ÿ>˜?,¸?ˆ”?‚!?]ˤ?8nœ?!O4>ûG?=?¾!?³Î¢?Lâ?DZP?‚vÖ?‰–?˜Ö?Öm?™–‡?š`M?‡4V?b­/?…çc?ª Ó?‘E—>â¸Ô>åµ? z§?k5?™4P?œ”|?„å?h+t?‘¾ø?Ÿ/‰?ŽtÃ?ŠÃ?ú?Šk}?re?Y!?s˜>âÙÎ>âÜŸ=ÚZB=ŠâÆ?®Mª?Úøg?Æw:7¨ø>ô%œ?l82?mKé?bÚv?ZUŽ?QO¢?\ÌÃ?dI?’;?aâ˜?bÍc?4¶o?(cœ?v—?‡ÞÄ?Ü>œ¸½? k?Iȯ?¼=j¥=¿D㾈>úí‡=+ï?AÐ?”wÏ?¡Îè?©x?‰M³?(Ö‘>ú°á>6 ¢>4")>œ&Ï>§ås?1ʉ?<¢Ý>’ã<êVœ;²ý>‚—<>ÑÅ©>YÚ†>*´>à)Ý>¸î=¹‰?¤!?©µ¸>ÁÐå>ŠÀh>6Û•=ôÄ:>—Ë>Þo³>}´;P==fÙ€;pÈ>qM<>Ò~>ñ¢é?ÈÄ? ¸¥>Û#>£ñy?cÒp?Ã6>ú?ƒ>¤Mr>ã`R>ÿPþ?óù=ZÇ¿=¯ËÊ?.ô?rï?b?óÓ?ü>?… ‡?|r*?¡âC?ãô?¹þÝ?‰Ñ?_œ>¡xB>«¤u>üÍO>‡Ú=ô°>÷H?Ut(? ª‘>ûxµ?- «?JÞ?>›¹> +Š>@ù?>$ N>/>0Ö7>L->°RL>ïG|> + d>¸ˆ>øò¹=ôNÍ>¿¸>ø…¦?]+?xTû>Nü”>ƒôÕ>²#p?.Ü?N¼?[öÞ?ißü?¿Œ>òÌK?Ÿäÿ?±†—?„7=?wj‚?X//?Kp¥?«Å¸?¹vø?ÒW?Ó}m?ˆtR?w-µ>}Ä’=ÄöV>ö‚™?|H?Üìz?öý?3ýA?<>ûÆ–>÷%i>÷%4>÷)–?#8~?0 ƒ=¿[>þ 4?·?‡:†?Šó?ß|´?îδ?·[?µæþ?‚¹­?|e?žL?„ûz? +¦†>÷¢Z?œ³c?£5ù?²z±?£|M?? ³?0j?~2/?p‚.?Š8¼?ˆØõ?[†>ø8f?²và?ºˆ?’->åÆ<=Š:=µ…n?Û?"Ðã?ϬÌ?ÐÚK?xØ?s8w? V? ”Z=‚Ê?[_}?ZKi? ƒ\?næ?}SÞ?yš?yŸ?w«ë?hUá?sÝß??‘ :?zÎ?‚Ø@?™74?”­?m“?"$É>»d2??–©?z¶b?w^«?v«?®ì?÷ž‚?ØûÈx>ù›T?-U?E;ù?‚´ø?›Aw?žÂj?¥¾?Kg>ûï?Šþ?²‡ö?L½F?œÅ?ËÙ>ýeK?XoS?d‹ì> ?ãœ?#S/?NC!?KhQ?¦˜š?Ÿ±?|Ä¿?sóP>8*>—k?Û˜?É;½>Ò­©?3î`?ôx-?ëÝo?¾¯?ííG@0•ý?÷ï>ýÞ +?ˆ|†?ýûÑ?¢w>žµ¡?DÃ? ´a?YÜò?&? +O*>þj´>‰T{=÷[¶?ÀAú@ F?°?†1œ?³)'?½Y ? #Ÿ>þè™?Õ×H?Ùé¿?Fv/??ø&?ÔS€?½,œ?l¿?€ì;?£ƒP?Ÿ.?jõ|?q:@?JæÉ??"Ø?3aÍ?YuÆ?à‚?áp<–¥³;KB="»°>jÊ>†6>Ã6À>ÇË>»xÉ>¯ßß>êY¹? ”?©X1?À1?º|>Õï?ìÄ?-‘‰?\J‰?\ú‰?Áj??8ž?M'J?þªE?ÝnH?{?·§@¼ü?Á¢>ÈEÎ?¬©h@À?Ì{ó?hÁ?$kƒ?eê?xÆ?’ñB?«1?¾ï1?7?wÝ?yg?{w?äs¨?öAÊ?¹z‹?³Î¹;ÿ°P=Ô«é?'t†?EÁ,?€‘?€’œ?€•U?V~À?˜¡?H²?¢?½v?æ)r?Ú¬p?Ï0®?‡HR?2Ä»?*ª¶?$>ìŸ9>Ýæ ?Õ3ù?ýÝŽ?ɶ?À/B?‰R{?‹þR?ù€Œ?îöñ?îx?‡’Ž?%¿}?vo@1¬S@à?€»;?·s“@ —@I¼?Þ¦•?í>³-P?„W?¬Ú?­Á)?øS#?Ë,?¹"@ðâ@ ßý?H=Ô’×?YÌŽ?na^@ ×ö@ +h9?Á?Å,û@à?ó?7š?e?Á!ø?ž[ß?¿}>Ënü>.OŒ>4,>!>ôãÒ?iôË?=Š˜?BK?µ)Ù@º^?¬ U?€¸?»#ô?ÚE?Sœµ?/á?C“’?@Æ’@üs@ Ío?Y§1?O;¹?€®Ï?„½þ?ö?ˆïß?pÑ?ÈÙ>« 9>Ö Ý???eÒ#?Œ_e?0òE=Þ\?áÄ@ Â[@‡@˜?Ø­8?»K?S¿Š?8?ÁMG?òÈ?ˆ?»ÆÈ?uTÑ?bG?¡CT?££ö?ÀÃ?»Ðž>á>÷˜Ü?Ññî?Ö‘v?Û,?¿P>Çæ±? bÎ?€hÌ?•¯ ?Å Â?­ú?‚?€¹?{øé?™¸Ê?¹”f?²Wq?©–D?+ô®>-Æ?žö?éHû?ShÕ>Ç|ž?$Ê?Á?&Y?u>Œ;7>N3ž?@Ap?U•\?rØ¥?eûS?Î~Ú?ËÞ?À&?Ä4ˆ?îRF?ÑÀ=”) >Ñd:@‰¹?ï!~?¯‚-?¾¬ê?ì:$?þ7š@¼ø?Í0ç?$²©?Mº;?„ ê?¢è?ÆËW?•Ñ3?Aâ?— +?¿‘˜?—}?Z¯?ª‰€?¿uÀ?Ì#“?Ï—@jg@(lŠ?næõ>ÿ ?s¹ ?‚”ˆ?îÛî?þÙM@8ùÐ@;Žü?Ås?¿ +Ñ?ȯá?Ä«>>þ–Ü?f?6¦[?a"Z@ü4@ ìZ?ä1ô?Çãv?;{J?k7?¾™Š?¤=3?1ƒÚ?ŠŠ­?þ?´qš>¹"i?S‡?h(û?gÅÈ?}¢?‘%L?®¤þ?G ¸<˜¸–9tTQ<Ó.(? +u¸?}0»?†±?…°?ÖSt@ó?¬R?cS¡?¾ÂŸ?è F@ û@ç‘?zbÇ>Š£Ô?iŃ? :?bK¦?3ëŸ?†x?•À?ò²@ +Pß?®€?Hç?Ï>Ã?䱟?l–T?,??ÙUN?÷Œ¹?Aùh>þðÁ@ +Á@ø@2 ?û Û?¶7­?©:ø?”9?z ?$‰ê?2Z?fè?y)2?[(ò?^–T>ªÆq>‰÷Ÿ?•-?›Æ @–@M¢?´hR?«™v@ c;@ƒ?k)?YKi?—§?•YD@©‹@ +4$?åÅ?n±é>ûù8>òפ@/fC@9&ö?Ƀ?€6Ì?èë4?ð]@T6@ež?Í÷¾?¼¹«?3¹? [?òÄ@°?T¥”? ?‰m)?˜|s?ÎÃx?ÐÜ?Àf?ÃIŒ?ƒUÑ?l¸µ?šõÆ?¦4?Í€?ÖÙÛ?û’Ž@MÒ?ªxØ?u¿;?À$?縔?§!:?yÞï@,Þª@s§…@Å„?«œ°@)P}@pÿ/@ 'Ä?¡Œ–?èZd@„’?îâ?«–?¹v?á_·?Ô¤[?¶È+?©6J?òX?¨y$?ÏÝ@?¶‹a?‚ac?’²“?̳?Éz:?¯cù?ž"¬?3Ÿ—?>*(?tÇ?cÊ?oÓá?qè9?×ñ¸?æA‹?ŒÑk?siX?q^Ÿ?qCõ?§ˆ?¹9 ?Úàr?éÅ?µaZ?™ÄÅ?â4Q@ËI?’Œ>±?z¸Ì@ `Ã?ôpø?³É5?¸÷?¼†?Æ]Ž@?ïF?€¡Ï?ƒõŠ?OOM?Hˆµ?„Æ?~Åz>Ý#l>£!ß?Šé÷?¨JÏ?>%ö~?œ/ô?ñ2s?´ÙÇ?q Ñ?ª­N?í-3?Ø‹?±·{?¤Aâ?|=E?Ž ?Öi?ع@àE@¡#?”Ðn?Š[?zu?¶&>“i>OTÒ?ÏO@ƒ?¯Û¿?®´?¯!i@Câ@q?œrÝ?ž À?Ÿ ù?™ ?6¬¾?>t @ ý @MR?‰%?iÊ£@kÖ@,$'?í¬?®•7?°ôf?¹?ŽõÈ?»?z4?èÐ?Í°>èœD?s@Ž¨?ý«µ@)'f@.Ù@µ@sÒ?¥Õ??ez ?/$˜>眞? ³e?9áÚ?N©‰?†±?ƒñ‰?|.? +ª?5?¢?©?ŠúÅ?‚@~?Æ6V?æ}N@Ö—@+¸?Îf<ßÜ>Õæ?¨Œ?®–€?íA?îé%?=,?>?Ÿdü?¬Œ?ÆÅ7?Ñï +?ªBs?‰z×?‹,Ö?ŒÝ·?¹­@@0gª@,†>?‡œ>1zp>I¤>•Ug? ›?Œq?!õ6?5÷ê?Nˆ!?dNŸ?d7Q?d1F?dÅ?d“?d 9?â¬?åð>ÅÖ¡>*>ñ0E?(ðœ?ÃtL@+µ?éLÃ?‰à…?X‚X=™¹U@f@LD>áL£>iŽ?ÄpÙ@g¨?ÿ46?óVŸ?öXT?ó«n?ÔFP?c¢?i+W?¡Ä?¢ü$?¸AŠ?´‰?06_>ãA½?vA|?ªõ@ûŠ@tk @<Æ;?:¤$?Vk?ê?›?fþä?b£|?©’ð?µBƒ?tj¡?-oy>ê2|>Q%$?o‡?À!?µñF?ƒ~?‚©>åñï>â‰Ü?pßb?´»>¦Ç?0Fn?ª4º?©áó?§–f?¯¨­?ÝE!?ÑçÞ>`·X>‰&b?jÿ?€Ù£?¯Qm?» ü@Ã@+Ï@ÐÚ?ª<`?¸A™?êÈ·?ãA@?•ÿI?˜&s>­e>¬™?8ÂÏ?PS\?W>Ïj\?-Wh?cÂÁ?‡Vc?ª Ê?¨1o?ŸDÏ?­Ð‡@(Ûj@".ïé?3·x?yÿ[?†‚0?Ä´Ï?âÒ?˜±?&T­?AßÒ?|äZ?X·>‰¥«>ˆoç? +Ô?ÎÜ>ãÁ¾>âÞÕ?J†)?aYþ?˜¡è?§ ‰?Â$?ש+?–IÉ?Oa>Õö*=ôÆv>Òš?bÕ°?`Hx>Èæ\>ܯë?V.(?bÂB?W#?aT>¶ž½>Zâœ>â¢â>ò»³?Ö=>ìÍ„>â¿>àÈ—>âk†>â^w>Ã5ó>·HJ=y·“?OȲ?”I­?v“[?[;E?e׎?p},?F6>• >f²=Û‰i=·Èò>F/(>NN>ÌJK>á }=ãò»>ˆ¯ç>àžT>Ì(Õ>¬\ð>ƒ>÷> +Å~<…ÁÐ>ïi¿?Ô>KÄâ> +i>‹oi>°Êv>¼Gz>ÇÈÎ>kû¨=þþ>7´ý?Ïì?UŒ?6(?,§>ׇÁ?ï›ò@5˜D?\û²=Óàü<„›±>éÔ?ò<<’ƒÄ;(=²ªª=îÉ0>\>s¶þì”?o~0@(?¸æA?17½?åì’? Kø>üÍø>€úÏ=—Ƭ>>×À?÷¹?U?i}›?{L>¹â>Eå>£0Û>âGì>ú?7<1?\>>z¯\8"À?1Gñ?a“c>Bƒ(?!v×?Dàk?m'^?xZÔ>7<¾>t}>qðÆ>ƒ¨>B—'=¢ +<–¶>ÑÊY>÷¢]>[ѽ>{‘?_‹ì?wsS?wi?waj?l5?xŒÔ?ÐhK?ßæ?n‰Ô?U’?dʈ?K6•?d?púÕ?çš;?÷-"?ê@?Þî?¨h?›Zž?\U¡?K’]?DÊ)?>©>’/>Src>®©³>b•?| Ô?’»Ž?­ýq?³]|?;€>øCp?­ 3?´È >q­ž>9G–>í’Ý>÷¯H?°äˆ?¹ÕÀ?¯•?¼û?€·:?wø=?Þˆ/?ç¿?”A3?š× +>èá‘>é ?uÿÖ?y±G?q,?i£á>Ïc>¾ß>ø«ó>÷MÁ? ýÐ?R.>ð‘(>úOD=DõÑ>ùLY? R@?mH!?‚Dõ?ººÀ?°kÀ?y®ãD>|Ï6>ú£=?*+`?zÆ“?JWï>úér?5¨?…‘&?_²ê?'/ž? %&>¸Dþ?YÈ?õÜ>û8z>ëÔŽ?ˆÀ¾?¼Í“?¤ŽV?’¿©?LËñ? ?l +Ä?†O,?x€š?x[¥?ß6Œ?öY|>Ù!Y>}.>¼‘d>‰ª?Ž¡ç?” W?¤'Ø?¢®f?úðÖ?û»[?´l–?¨1ö?(!`?${ø?CÎ?4i>Ù¥>”àç?ƒ[ƒ?~É?€yG?šhb?ÕŸ«?Üá5?ÔQ?•Áù?âÅ?uv>þ(ò?¢Øq?ýx`?yuÊ>J¦O?0½Ã?rúz?67?̹>î³>áÅL?Æ“?ùÚg?•é?‚°?uÝ?mÐX?”©?œ9ï>¤@>Æœ?Æ'M?¾‚a>ÿL¿>é}c>¢>¤<Ô>´A?Í1?Ë?Ÿà?´ú­?Ò_v?úØ‹?ÂV?Ò ?xŲ?m‰?’Ì? ^Ç>õ¡>ÜP?'Î?SÁ?£æÃ?¬Á?€ao?”¡ñ?»£]?ÁÓ?Õ„Ž?îwU@?âˆú?×­±?å Û?å\#?{05?nÇ?Š²Á?´K£?_,e?(bw?[ˆ?VÑg?1ŽH?#Ø?e Ð?n¾ž;¨}Ü=Ã{e?u- ?ˆÌ?ç«S?¾÷ž?—?=jo?€ž6?–]ó/u?yÛ?Wl?”}¿?ÅãÈ?A$>b9?Ze?Œúˆ>÷P8>]-Ù? ì?¿…Ÿ?Á…?Á˜?ƒ¸?zÏK>†Ç>ûë‚?±ö—?•8F>#Ÿ*>Þ–M?´"_?±ƒ?€Ã ?‚“?ˆã`?BD>¥òÆ>ϺG>Ô4`?©n&@ +?Úâ¼?¹ã?JRÝ?È÷?£d$?ÃÙ?¸W‰?®= ?%?­ï?§£ ?¸_@$„N@£ç?E“?xª?É ?-Rp?£$?~ÜÌ>›)?-»?x€ó?=ˆ´?Æ‘? ¨•?¢?Wb:?…µ?ÏxŒ@w?©-Q?€Á$?2‡5?!>J?Q@?¾g?£Ï ?¯"(?S¯?g#ü?¨ +®?¥PÂ?¢à,?¨Ï?äü?ÎØš?C†¾?[›{?§ãŸ?tN1>lw'?¨ñ?­ †?žÝ›?…Ôx?ãF!@ Ít?ù~S?ÊF?(4F>0Za=øâ´=ÁLô?'þ'?efÈ?5ÝH?+”º?‰›^?Œp†?þré@ÍÞ?Ã+Þ?Å"?€‚2?€†?€~£?zÌ +?^°º?8×=È5 >´dh?ˆZè?«>-?ú-þ@ ·y@ Zå@ƒœ?¼zL?Úw?øÏ@ ˆ¿@C ?­)ó?9ó ? ??ÿª>ÄÝN>•ï‚?¼2Ü?ãA#?>dHq?$Ûö?0[b? ú?)Ÿ?È®?Õ¤:@ %@Ï3?ÈÃþ?¶G4?ÿ0?{cƒ@?¾D@0p@6?þo‚?øÊs?ùÌ«?ÿä¶?¹%?é?œ³‹?ïEM?¿6ý?Žü‹? ¸'>eQ­?Q«?ž¾â?zBë?_1?x¥-?k×?ž>º?­I?ºô°?Ç?¼?‡‡?k—š? ? +ÇÔ?©¸„?¼gÄ?„Òˆý´>èc@??ï ›?«JŠ?¥ãŽ?ž€¦?©$?¶ÆÉ?®)?~µ?£ßÉ@̽?ÚHX?Nèv?§ëB@e+?Ø¿3>ºB5?‹ÏT@ø?ä•"?†ZÝ?í‘=`Ûy?8?}Ä]?ÝÚ@o¯?ʸ ?}A?}65?}&?!ò»>éCÎ?;S?Wò?’&$?«/E@ `@#=D?fÓè>qR?u $?–sÔ?—†?—dh?÷ò?’ca?†Ê—?ˆxÎ?§©?¯E¢?•ì?‡Á‰?☊?õ¡Z?Á[c?ºe–?ò‰Õ?úغ?'[?ˆ•›?¼Û?ÿ@c@±ó?·Zb?­4b>S-©>j?´„'?·x?ìà>úbZ?@z?>¹l?¸6?»ˆ×@®ú@Xi?¶‘ ?¸¨Ž?¾?ј?DVÓ?6 °?èÇ?î–þ?KÂq?4»í?¡~? +C=$8H:ú +c?´äñ?ÀâÀ?·(™?´‹…?Àçf?Ä +?ªØ?¯Â1?›ºŽ?œð†?¾þp?»‚ë?ÝN±?ßæn?K=R?1ø?o]?w#)@q@+ró?´Äô?“aö?"$ƒ>õOÒ?<íÜ?T–*?ûX·@.Å?¥øU?vd?uêl?uÍJ?>óŽ?aY?ºb&?õ`¨?ƒv©?uR?’Ÿ?·Ã?¯i?²Q?P(.>˜ Ò?`ħ?ºÒŽ?o¼#>œºu?M‘?¶üæ?šÀ>?c“S?šÀ=?Ø3¢@ —^@_î¥@6Œ!?…NE?œhd@Õ6@:e@Kº@7e«=ÞE„>i°k@%üÆ@'ê?Wx†?\s?ÓŒ?È*?ÝÂ?ñlÕ@ë†@i@¤¦@_Œ?´^E?‹Æp?B)}?^ø?†ú’?¹³0?g·>¡W¬?úõ?f‚N?ƒ“ +?’C©?šÎ?²´ó?ÓÞ7@Í@ “}>ï–?UX?Ÿ ? ¸í@ ¡@ “Ê?á…Ä?ÕË?—gÕ?‡¹‚?°A:?¼h@1%@‰¯@F§3@m%2@%é?´üò?ÉW*?æœá?ÓÑ?§áÉ?¼æ@ Vð@¼;?Ñô?Ô·¹>ï2x>ÿ®·?Qâ“?N +?°h?¹çM?ÄX»?Ú‹7?倅?àôj@(e@Þî?Ý9?GŒ?JÞ•?NË?>l>‚†!>‚/Ù?ÓŽ,?Øyœ?…†ç?sã¾?,:>é Æ?E'«?m«Û?pñ:?t%Â?>ë>é Ê?&E¶?Œ³?n÷x=÷¦Ü>Q˜F?¬²q?±­B@O’@ î¶?Ò'f?Å’'?yðT?*¾ì?'M½?#ß"?2®•?F4¸?*ˆ<>çK•>õ,Æ?/ß ?7s½?{½§?xAü?ÅŒY?ÖÜê?ãF\?æ‰C?‚˜>æ§n?„=¡?Ûõ?÷ (@#=@?G?¶Ó?·;‹>è‘>å³ ?áT?úp?µ¿c?žü?À@?Óí?¨º•?e J?rê²?‹¥[?‰R?t@L?i¦_?”zI?“â?ƒÒë?~02>ÏÉŠ=”Fˆ?3€?{2"?j¹R?[ ?bcž?dR?fš?­  ?¯a±>FÍ<=^À=¹¡ò?K–?„úÖ?‰¢™?„¢?a3>‰W>µº?ñ´t?Ñ0¤?NfŠ?R œ?UÞÐ?Yt@:é@'zé?¤˜?bÿ?µ ?Þ³@ ò\@6¨@­e?K0“?‰¥`@;¥ý@6ÎS?›®?”v?‚]Ü?„«²?t#?b Ã?u©€?~Ì?œ3V?⛟?äÿÝ?èx?Ýt¤?S_?O?¾nš?×—Ä?Ø'?uE;?âZP@'ô@#ý”@ïÑ?!¨]?6VÔ?…X ?~Dë?à÷N?ãíž?ªE8?žƒÛ?Û2@¥À@üd?ü2»?Úeë?”¤Ó?™ÿB?¤q>?à?ý>ý‹?Üû?¥4>ˆš=“™??‹J?©ð¶?’×Ý?j»?’0a?ÚTÖ?ÝQS@»@!ö>> :>K‘?œ ”?²iÄ?Ò‘b?â×*?À‹¥?  ?g £>âÞ¢?§”?bäH?bßs?báË?bâ£?Ì?o>ä{G>ãÐ?‰Èß?ª. ?®?³ ?¥ñ{?ŽµL?XÌa>˜u©>Ãh?bÖÐ?_›º>â K>Î/‘?+s\?94ù>Çg;>{õ³>‡=ªôñ>’[>øÿ¯?EÃÐ?¨ºž?œŒ#?_ÿ8?P +>âlÑ>â^Ï?Hv8?EÆÜ?fS¿?^1?–Ì?©Œ?1 ›>pñá>«´L>áË>²˜=ù<>AÛ>¹–>ÑÔŸ?Ÿ¸Û?¥'%?¿ú>áà?à™i>à{‚>à_™>”ª¬=9>_«J>?7^>Èб>ß*=ß¾=ç]¾>Å0>£‚??+f?ŽŒ?sbz?;ÿ?0²@,Ö@p^?ÀL°>ׂ‡=œ‘ ?kRâ?}°—?j"F?K.>©ë?@?kžß?TÎM?>èŽ?7As?1ƒ>¬Ìã>‹· +=Ϊi>hÄ™>çOÃ>õØi>üÌ#>ô#Ó>à™¸>=kÔ>-r>¬o??7‰>ÑW>Uì=pû=>ÝS®?Œ!>Öˆ>æ$S?‹š?. T?$Qß?)Õ ?4žœ?mè¹?x_È?D1Á?“;?fêê?x $?™™ ?¨™è?„µÇ?wž"?­Ä?®h?a¡?DOÞ>Ÿ5>û?·$’?Âb?§>÷X”?Sc÷?rÈ?Jg6?5†9?ì¡Ô@Û?(Q¡>÷5>þs¯? ›?µÔ{?Ãù“?åû!?å×Í??‘Z?+û}?q3S?wCy>¨1>–üê?C™Q?T³a>-$=©6Ê?Xu»?oÅ.?w7ö?vÐ>6ß>-χ?DR??áÎ>)Í7>%?ú ?ÿ!Ã?äÓ?kâ†?v¡o?xg?¸d+?º×>NTæ>C@=˜§n<ág?x ?v›O?oM? ¦r=Ë>>[C?¾ãn?¯i‡?iÆ? ;?2Þ?_X=p‚¡>ùXÿ>ùf“>ùwÚ>ù‰8>þÏÊ?“™?y»æ?lÞ?Ñ¢í?±`&?Lä?Y‹¯?fƒ?AÞ>ƒH©>ìÕ?Zˆµ?4|>ú >è_¥>У}?(2@?ˆÑ?IX>úø?œ? +ûd$?l„?£4Þ?W‚Õ>ùL?N| +?‹3â?‘Ž"?—æõ?°ÆÖ?®ôç?¶go?½'?üW;?W?ú?˜F?¿å>w²>[>áˆT? +M;?Ýõ?ß6±?¿1è?ÆóZ?ä{R?Ü œ?XDÙ?Cç=Åy¦>_Ÿ?dÇù?—`v?þÑ?È6?›Ö?Úö?&é½?c?ž?Ÿ7¼?©4 +?¥<×?]â >þ8!?×­Ú@-Š«?´Ó>þn¾?“V¹?ËG»?†b?h‰V>rÌ<µÈ :—¼ã?ZŒ(?~ó?~þ0? {?5?"i??0Aû?ÞÐ>Í„Ä>ÕR×>}˜>…Å«>RKÐ>š?-þ>ü„P>À …?²ô?þ?—2?À%?¾ác?sN? Ÿ +>º{>—îŸ=äÒÌ?¾OW?÷UB?Áe?¼G¦>IÚ}>=í{>5d­>ê÷ô>Úæt?€8Ê?}×æ?pA2?_S¨?Ia>¿PÂ<œ2>¾-i?‡>R?jÇh?2¨g?/ â?6Kê?¶€¿?ùl?ÏX?»u?¿?´©?=‡M?}?ÂÙŠ?Ú0™?Òµ,?Ûðp?»#M?¹ÿ¨=þ`ö=[ËÐ?Oˆ? hõ?€™p?s Ã??ž‰?TÃò?aF×?‚)Þ?«€9?¬TÉ?¶„â?•²??Àú?kg”?„«i?Ò«@ Á%?ªð=?aúv?¡üç?¶¾ ?ñüF@½?šÐ›?m…?S¥?ö6@,ï@h?Rnã?‚¡@'ˆ¼@‡=>¨»>iáP>¨:?€Ë?Nì?ÌI>Šó´?ŠN?‘ÏÞ?WoÄ??QŸ¼?vË?!Û]?ÐÙ?¦ÑU?Á8Õ?Á;Á?Á9G?dE?]t@°Î@õ@Ëå@ +]é?^^?'þ?‚ñ3?]Å)?ËZ>ÐõÐ?ë8?Ë9§ÔQ=Ÿ¥d>Ô{?Ëç?±?g^?P©ô?!Ž‘?|©ˆ?º) @Nà@ ÖG?õ‹\?Àüe?ýû@ +  ?d º>Éê€?†ù‹?›ÎØ?”?˜{?H¦?'ŸØ?Õ.y?áe½?F† ?S! +?™99?‘ ’?Xôš?f¦ï?{ÕÖ?V¨Ï?ó?Tùz?º¤?¤¦?ze—?šæÜ?Ã!?‹W?–?d|?Êè?¶Ç4?¬ðÐ?iëä?'U>T’>y¦>bÊâ?µÀc?â¶Û?2óv?>Ð?t@”?€7€?,¨?$" ?´&?<ã®@4â¢@0b¥?ùN?ñµš?À#x?ÀÖ?Á!›?å“Z@ËX@ +îÝ?ÈØ]?Êþd?Í è?¢ ?9ö‹?cHV?—Ø?ÃØÚ?å°¦?¡(V?I‚ž?«Rr?Ý©??H´>Hg¾?>?yi?d"?^@>¾øx>E®P?¨2? <Œ?q!R?+B? ³•>ÿg?x9Ò? —@Ëz@¸W@ hÒ@G!?—àg?™M£?ái#?æšn?éU?ÞßÈ?²g·?ª,z?¡`´?À, @ ~c@€s@ +«‡?ìs ?fû?kg?Z<¿?ˆ+ž?°”t?Ër[?åÛ‚?Ìsc?¸r‰?œý7?}¥ü?ÀàJ?üv†?ýD@ëÐ?×Y2?µœñ@ î@%G?•Ï>¼(›?€¹Õ?©–%?ÃÜâ?ÌÉ\?Ý:?îô?¼ª?œÆÃ?µï?ÅŒc?ÔS?ÔÞ?«b?tu(>$Å?SÙM?{ÿh?™ã ?¤E?º|/?¼Ì?„—I?{‘°? ðŽ?ýÊ?s¾èv>©|~?õ¼¬?úŽx?ŠòŒ?ÿU?µ¾µ?°¥=üÝt=« ¥?å¼Ð?ð”g?ñ°Z?ñ’A?‘Už?‡y?Až”?9ÉT?½¨ñ?Ùß[?­¬P?–€?q‚?¢e?«m ?¯‚U?Uï¼>ŒY@?Y›¢?Öþ9?ȱ?­$W?Ù¾Ÿ@1Þ@a>˜ì->ÀQ?níÍ?pÕ¢?Â@(?Ç-~@>+@R:@H»?ô”Ó@ *R@”@Wv@…ñ@15?ô:Ñ@»@*n?Ð4>…~>ÒQz?%G?šX @@ ÿ@.9w?ˆ‚??»5?²­J?_¬_?`Nj?ìG„@:É?†Å­?܇?³na?ùzC@¾@1=#?õ†*?ˆÄ?#:‹?¾ªi?»9Ò?æWœ?è:í?†Ñ?hb?A’?5B?…"?Ÿ¢ ?£ã?­ŸŠ?™“Ú?Ns?&åÊ=º€]=Ýwr?”„µ?™šS?+hK? 1Æ?»Æ?æS?Ÿç=?cG‡?7ex?Å?ƒpò?öùº?ì^Ø?¬t¿?¯G?áöz?Úþ?Œœ£?‹`Ë?vwr?enû?ê@BÞ?Ö?0c¡?bù—?«Åm?°~M?Ñ‘@?ÓB¹?Ô÷š?Ö«™?ÇŸI?Ào ?_¨œ? þò?’'·?ÝŸÜ?¬1;ŠÃ•>ŒØ~?©°V?ª§Ù?ß h?Ý/ü?\N‚?:K°?t0?€Ï³?³”L?ÖÉ?¨Zæ?cŸ$?…é—?¸Â?ª6c?d ¢?k[m?Dep?L‹V?ÃÃD?âø}?·ä¤?›8?ƒHª?Ly?9±/?)é>úÅÛ>ó5.>랈<»¤§7Ã>»ý¿>îc?ÉeŠ@ +nŸ?Öí?›ˆ?„®¶?&ç?e¹t@)p@+¦G?ˆ_æ?‰nE?­9?«e„?·ë%?»Ž +?ðà@‚É?ùg¶?ÀÿI?Þ<Á@&9 @& +-??_?Gjª?O€?W˜x>týæ?ßÄk@BGß@åô?¾0·?ÄÆJ?Áùã?µlÃ?€M#?‚eY?¨Í?±^?´§V?¯¥H?D½½>â@?ŽŸ–?íàº?ÍìÐ?ƒÀÏ?”´x?ðî?ùŸ¸@ 8Ñ@"`Ý?å?¬?Ü.–@ +@@ ³?—Ö!>÷B{?,ÏË?bÇ ?„«?µŠz?·ÌH?ºê?¼P;?Zœš?KÝŽ?ëD@!ý@ G@ +C$?Üü?ºk|?”+j?/¾Ž??Æ?x´†?o2I?V‚?^jn@ Z½@ Ë~>“˜É< $>É&¯?©Â?Oïù?{*ø?“3—?ª)Æ?‘U‚?7C?;uá?bÕî?_¸³?0ñQ?5í¼?@×Ò?7ö?W­#?bº„? W÷>Åx'?+\ß?gQ?73Þ>ãœ%>ðiD>õJ¾? ×w?ľ÷?¼Ü±?À¤?Ÿ¤?œ¸?©Ù?©”·?©Š?G(·>¶>ÀI >áÈ`?¬:? Ǻ>üv»=PÏ»=CY>ÝH>á5÷=B(«<é+¬=¹K><Ù>®ñº>à•‡>–/%>#Dz=îŸÞ=µl)>ßÍý>Ó_>Ê”Z>ß +w=Øìz<’ˆ=žàæ=²V>¨‡?Ù}>÷M>ªÕ¯>ˆÑ?Æ ´@ +Æ‹vR<ÛR>ö¡?ª>6>,›,>Pƒ?Àï?·l?žra?†Ý£?n>×\>y(˜?*0>¦H§<Í]f:ÿçüúÙ.?9ÃÍ>í„9>œF¤>u4>xYµ>ÖC¾>ú¾™>½m§>‰pã?3d—?f0§>„Å|<°\:ƒå±>³u…>ÔL ?Œ)?š”>ê}e>»y,>ó>>ø–ÿ?6V?GE)?›õv?²:ê?p‹?c&É>š<ܹE?¤m:?¸˜ ?†jÖ?„ ’?yä3?w™y=¾L9?{_—?”å^?—?‹£,=¯O–?~n¼?• +÷>’˜r=üò>ú >÷Iû?h¸/?kŒ?´5??¹r?h0ò?r·?Žj>÷KÊ>ïh\?F™>clè>-êt>ì„À>÷e>>÷m >÷t >÷yÊ>÷ƒ?qX…?w“b>êã >ÑCF?€å?r¤<¸Œ~@3Š@ +Æð?¼Ë?¹ûu? öM?,Œ?Š¯‚?”Ò±?Tª?aèÝ?}2?ukü>ÿËC?–?©‡,?a >¼ƒ÷>×Fµ?Ð5­?ÏÒ2?žy‰?•†÷?Pœï?[e+>ûsË>î;Õ?-3O? ®>ùi«>÷1ô>óÛ¦>Í <± ´>Å?j_?7º•?œs´?‰ú÷>ú)>ú&e>ú7Å>°Â÷?è?åëÌ?º-æ?Uv?u>E&I?'´)?ºZ¯?VtÑ<‘c>|S>û.? ܤ?´ >Àc’>+?¯?lÂ#?®Ñ?š·§?@‹Ý>ûÞ‘?C ?€Û@Ä,@3"¶?܇Å?²$¹?4š[>üie?Ÿè??°=À>È‚ù>š +ã>¼Ý>°z?>¤Š>—«V?ø«)?ü´Ì?Ôq˜?Êþ?½î+?­T»>¼?°>Øƃ?øú>ïbn=¾P°?'V@fð@LÀ?qª'?ˆ¢»?¦û?Yë§>’©é?HUª?¯÷¢?PTE>t@7? ‡@ÔÙ?²ïÒ?S¾?&Ü>Âýö?M9?"ã€>ãu=儱?SÁr?zßq?³"}?¸OU?µXe?²aL?„1?ªÑ?A?l¾ü>ñc>]4(=â—G>ÿ†Æ>Ï >¬>¡ŠÐ?s9?&Uf?rÈS?·B!?ÿä?œ»”? aÖ?KÖL?n @?X—Ð?Dý½?×è?­Ë®?€”Z?ƒ÷Ô?L„c?@„ª=¨¸?'ˆ€?+ ?R? $0?€B_?oÞv? m"?Õ´>þdâ?…·@@?ÿä?·›»?Ú'@B,?°Ñ¤?/Àº?JÅ»?•U?`—??¡?¼%»?ïõk?`wÉ?†Á@´‚@),Å?5&À>ן'?x5Í?€ó‰?ÀЖ?Ê.@Òv@rÃ?¹ö»?žæþ?§Z? 6&?$?8q&?^yÆ?SÌ~?:€¡?}÷?£ Ê?¿•]?ßp??¶6•?š½,?j#?7í€?\>ô?p¯_?ß?ûqb@8‰@@B?!·a?¾w?Ñõ‘?Ôžü?³„Ž?³~ß?ÌÏí?¿®¸?QV?fÉA?‹oÜ?U|Å? >å¸g>Ær>§:?†Šq?µH½?R¥÷?Õ?Ä%?Úx>&=ëhá?ã;?)?¤Ã!?¡[¦?‡Nš?“Æ ?®Ê?Ÿß¯>ßD-?$Ý?¡Ô“?…ä½>Ó(ð>¾ü–>ªÓt>¥dE>Àc'>þ>™?z >ªªo=ÊTÎ>¼t?28?û¯?7>÷Õf>æ{>úÆ*?ÐÅ?Ûì ?ðöè?Q,Ö?W×Ý?2c¬?@>¾?º“À?´*?>2?FŠÅ?€ÆL?uù?W®ý?aÛM?aJB?Hä0?-Ö?‚Ë$?Á‹? l?¶Ý?¾ê? w~?”Ê9?Á +|?§Þ?¡7ë?¦™L?¡Ø©?¹ßa?Àø#?$m.?¡‘>)v>Šc>ûÒ? ·¨?˜B?X}?’çs?‹>?Iìk?‚ëÒ@n¬‘? <ø>ŸV=oã€?]øÜ?À ’?™w8?€eëz>šw„?’?ƒé?‚`?õð>Êœt>›Ï?J$ë?Wµ?€-a?~íS?d:¿?ʃ?ö°3?ñÎý?ŇC?ÃÅó?º?¡JÕ?RÉ?8+&?’p?“ä?Š‹?´›Ô?ñ/?•8§>™%]>Ó‘3>ÿäÐ?{Ë?·\›?ª>ž?ŸÞ)?ÜÆh?ÿ­º? þ?]tw?sŽÉ?Š? r>ö?v{+?Škl?·A¬?¿}?}9¢?uêE?F>ÿ(o?|/ø?4¬?’àF?œ\Ñ?ÔfÚ?Û> ?ð%?á·?’9-?ˆªá?7zÔ?[@³@ ó‰?ÿð4?ìK ?ÒêÕ?À5?~R?œ§…?ÕB?«]p?@0Ÿ?J3*?eƒÄ?ý+ß@QÔ:@ ·ø?ƒ$™??~}!?ÄéÅ?ý™¢@ó˜@e~?ì\a?¾ Ø?“ºŠ?…™?˜ÈP?š4?±¢†?½È?ë-j?üñÙ?Óå¬?Á§z?í ?@3À?°¤»?˜Š?®¯+?º‘–?áÜ-?ê6œ>ùª1>cÓ?w«Î?ˆlD>•Žœ>H?¬Ø?¼×L?„Ö?{£ž?TÊ>û}‚?u³‰?{\+?jM™íû>loÐ?|ÐL?pé;“çX=²X?øÅ?õøŒ?’_i?™¡›?øl?øX¢?ÛRµ?×*?hkR?sƒ¤?yJ?wÒk?çvô?äg@?;'@:õÙ?œ˜>÷B>Ó¿Å>Àõa?ï2?$¦]?nÜ9?v°e?ˆ•é?ˆ¸V>üiE>Î’Ñ?ë5@ V@™@Í7@íÛ?õ«ô?šûƒ?u„?ËŽ¡?éœ?|Ùú?ä´?Œ¼e?ªäa?9dø>í?coÝ?¡¦¥?®Ú?·8_?ÂŒ&?ÆØ?¬µé?—ìæ?³ª ?Þ C?¼kK?suy?™¹?Þ¥?Ï|¨?¥µ?»ž$@F‰?âõ2?7?JÛ²?Êq«?ü­?²)µ?±0c;žg;Œj?¯7š?¸pù?ãê?ä2v?.<>ñ3z?.Æn?HŸ€?}A?‰ã?_á?H“?¶·=?ðP•?¸7­?}µ?ñî @B°m@:ëò@0=(@D&Ÿ@}$@NV>†Î>Ñ(?˜!?’Hÿ?E?:ã>Ê~>ÎÖó@@±‰?™(b?k ©?Ì‘,?î#/?Áx? jz?âü~@1þø@üI?’þ¢?aï>ìãH?<»/?Ë)?Òß?Ãîy?Á— ?à^?ã–?Ÿó?–8`?“9?•¼?ÑD™?ßõx?±\ÿ?œ(÷?Ü@ª@y/?Âc5?O±r?q·?“öž?—„?›F.?¡Ãw?¯­ƒ?¯˜è?l?j}?s-´?€bm?¨-½?µaÍ?Ñ{æ?ß¼i?¨Ýö?i"¨?±±G@ êz?þçE?š!f?f?~]f?…X’@ @%÷?¸3?©DŠ?u¤Ï?P»§?;?¬hJ?§Ç?Lø?·U?ç_ô?ÆZ`?£Ó>ù}J=Âê«=ŒÜ@ÙV@<?V.«>ëƒñ?§ºX?Þðq?ØŠœ?жô?Ãî¢?·C™?£$?+Xe?RÅ-@#™@"²ï?Ðy>å ?±â.?Ð:¢?ýò3@]?ÁÖ‰?"Üo?vÔ?ÔÿŽ?Êø?«¸¤?«IX?žã‚–>ãxC>´iö>¢_c?']?B'?ˆ—»?˜!—?cÝï?ñÞ?D`,?‘w†?„Hë?i7?cº?©›ê?¥T‰?l„¦?X+?|áÉ?D+?˜·-?ú?¤[„?¯åL?±y?ÓÉ¡?Ôü?bÁÕ?b¾¨?»Ð…?Í<ñ?Ó)u?Ù ¤@™¤@m?ù8#? Z?‰ž?…™)?s@=Ë,=‚×7=yd‘< €}>ª°æ>ÝVš?ÃW@ +ö?Æ®?gø??³Z?Œž>?¡Ð±@Uƒ@+˜?¸I?²o£?À?ÆGG?t ª?!‰­?zÉŠ?ª?°DÞ?¹e?¨õŒ?b¯Ø?l6?Î ÿ?Ô“n?qÃm?aÑ2?œKJ?¬Q?Nd­>âÄ?2ï?ÎК?²’?Á{?‚!ã?„`Ð?†¨ô?ˆíl?‹6N?¾Êž?̃Y@h9@g€?²-ó?@¥¸?x”0?·;?£ +ª?ª2Ï?—¡G>ï>óñŽ?ª1ð?¬?@`?ÿ`?Ôت?Ã[j?©k°?šÑE?x,Ñ?Brú?Szú?bá’?Jâè>ðÏ–? )^?s3–?d/“?¦+?ª'?f•T?P«6>½ƒí=½š?;5´?©û´?K¨Î<½ (>Ѷ>â‚x>ôèš?AF×?Pï!>âç>âI¨?|ÿ„?‹–¤?tU?pYº?Q?;X€? þ>ªBå?hÓ?˜\·?ˆ°0>Õ®R>ÒhG97(<]Ûd>¿w®>Ãé@>¸®Z>­b5>ËPœ>à”)>`h«=b”>»j> v>¬µ>Ç¢=ŸI>45>¾Ž>~ÝN=¤éc=äL=²ù&=Ô=í@j@`¡…@ +È ?ïüÒ>dØ>úD?ú»?WÑ©?HNï?8Þ?CJH?™‘é?ƒºC?ÔÏ>çÌ]>:Ñ0>UÀ,>}P:?}@?mÔ?7nû>ùn>oÞX>ª>–’>à!Ï>û‚‹>ª-ö>kŽ2>ˆÛ>¢+„?iÆ`?Œ?~´>Ûz`?Œ>>ü§S>õÔè>çæ†?Sõ?b.ö?®aG?ºÆÚ??pV?Ô°?o5`?q²T?65 ?(¼Ý>ë©Ö>¶Q·>Ãƪ>×~>õìÌ>÷ö=\º=ª?ô?Ê?éÿ>}¸ð>‹Ò@<Èê?r$‡?uá'?¢™¦?°™Ë=½×è=È Ê=+t?©6?¶‰ð?óTÓ?ò‹ç?•?wNÒ?¶O?¹{š>VA+>0ˆ>K½Á>fïÍ>o1~>Q}3?$ K?"ˆŠ>ù8>÷s/>÷zÿ>÷“?–Ñ>øsÒ?´h?´€Q?–>÷³§>÷½¬>÷Å€?o69?[Д?ÕJ£?Ù¨?„Õï?‹rž>ð^>ÃŒT;›«À=׈Ú=ÖN?¹Ðl?°Áó=†Ø=¹&ö?'h*?0¯ÿ>øºµ>ø]Í?·Ã?#sG?7*^?G?þ? ß?#D?ºèp?ͬ4@"Â@Q×>ù{d>̪ô:7v%>J¡ñ?eg?tdÜ?¤A´?¡ ì?©rÛ?”Ê>D=œ>^ >wøÝ>é[[?I;3?ž0ž@;À@ Ñ?â K?ÌqÈ?ªTZ?›•?z‘M?—PY?®¢÷?iX(>û@^?/2;?XÇz>¿ïx>‘ˈ>û¬z?Œ&Ì?¼Û'?V{’>ûðc?/ü?šÜ?Á ?ÝZ6>ê÷ñ<8¹€>ÉFÜ>ü|¶?3?!­Ì?H€`?@a‘?U_T?R6?‹`ó?†?›×?ª”}@ h@ +®g?KÕ?x:¹>a 7>žØ?mÀ^?‰i?¾BÅ?›oP?P?gžo?¶#•?¤[˜?s?s6Œ?+þ3?wî>ÕÀ>üÜ>öë4?2à?;k?w„I?™e;>ó&R=ËçM?‚?±© @ }0@®J?Òsý?¼”>Œáú>Z÷Ô?+®Àcª>ðT¶?Co›?1(">ß…ø?DF?Wô?@äj? "õ?¥éW@&*Q?çX*?‚ý?~3?Àh?uÝÆ?6? +jv?$s?^y=?€j?z§?„!?3äÒ?dv?8xÎ?;Ö>€Ì„>@“f?|2Ñ?|õ?3¡?"Ý?m¸?wa?„\ž?Fà:Èu€?ED·@ |„?ýg?‹iõ?š«?²k?³R`?ªdþ?jÑ?;:?Vüo?{O¾?‘} ?™¤¦?m”ï?N©º>é7é>§t¸<ázð?l¤˜?$ž?À)V?»GS?‹ð?‡¬¹?$‡Ì?®tÍ?3_W?Šj?‡èÓ?…jt?ªû°?ÁLÇ@ ºÀ@Ôc?n²4?ÚÒ?Yˆ¥?f±y?ÇÍ?Ó´>ʹ’>®õ?°¢?‡Ýq?€Ón?n’k?å?#Æ?Q‘;?>¬â?Ì£?mJ?äÙw?Ô}Ÿ?·•?À3P?Åäˆ?| +?.3?¾š?½ü?[…s?ˆà>ÜŽœ>I*‚?jˆï?‘þ?”Xv?–±5??«?CòÂ?AmU>u5¸>šçÜ?¨?’/?œ?>ž?â3ñ?¾kì?0¹#?!êì?i¼>Í[=µ¥k?Y¿¯?ÿÄÒ?¢Cþ?€?pð ?¥+,?²ÏÑ?À­ë?4p˜>‘àH>£éB>µî?3ûâ?JNR?=-õ??ÈŸ?ͳ?Ü‚j?4{1? :ë?R±?Jæt?= #?EÒ?2ç?>?°>ý?Áh¢@1Ú@ž@ '@ì4?õä’@¤æ@L¦(@=7Î@'Íñ@+}@Ðz?Ê™n?,Þó?´¼>ÿö}?qŠ‡?¢Žt?IàŠ?‰?mÚ?—Ž-?¥’?©ø–?Šù"?›¼>ËÐ!>U©?š§?¶^?¸l?º¤$=æØØ?v7Å?|È?»fµ?°Ë>VX>v…S?‹»à?¶)'@^:À@CÛ4?ª«l?…´>înö?øL—?ó?ár?¹’”?! +º?:13?~d,?n@]?XÛ+?‚T¸?¡I¥?ý‘?)ž0?¡ÑA?÷_?Ü£Â?Á Ì?¾˜?¾2Ø?¿¢?Áý@©g@:S§?¹ç{?-Nˆ?lH>ýUõ>ß•Ï>êg?›f(?½Ó°?—Ê?‘8&?ËÕ{?ÜÛ‡?Ä\Ú?½Ž¡?’O!??„Ò?xE”?³vº?½G ?…_s?|=|?­aI?´PF?¶-™?¸ +?´-C?¹‚_@¡Š@½2=µŠ=òÿ?ë Œ?é¬?{ØÊ?|×?®$J?®L•@"@½a@ñ@ ÞÁ?èS?, ?šƒC?ŸôX?ÜÁB?Ü…l?»»Õ?Ä:A@,;7@1cQ@¨@!ÿ@7b@E?2#?†„?)Ìÿ?PàS@Ti@NJ½?ºŽ¶?²0>ñÜC>íä9?êÇ?&^?h9?(˜@û\@ùb?Êxs?È)r>ø!’?8«?¢’z?¡5â@ 1š@ +=Ú@e±{@ke5?J‘>÷O¸?§ò^?¨l|>hP5>øÖ?e¶ø?vÂ?Ë_l?Ðw>ñr >ƒºA>á\”>ö*Å? ø{?·K?‡+E?xK‰?©)À?´\?QºO?(:ò>|³=±ð??­s?‰Ó? +û?×ý^?›œ?tY?8@D?W\?Wê0?ž?TvŽ>ýüm?OÑ3?“¡m?|Ò#?Fê??u·!?£¤)?§ÀY?§ÂŸ?À-@ Ö¨@i?ášê?õ÷´@+ w@"úÛ?r= ?l=ö>ñI¶>ëYÚ?ßs? ÷z?æO¹?ñx,?«9@?Uè?gév?R«‘?´Ù…?˸W?QøÝ>ð—O?ªyÑ?ð_ö@Úÿ@ /E@¥@ã@/Hh@EoÜ@8·@b¾@ §r?‰xZ?™D?ï +?îíg?îÔÃ?ì{K=}‚=@ãb@N¿o@dðÆ?xZ>î µ?Âò?íÓo?ÀÄÊ?§+D?ÖÝ“?ÿ?òß"?à÷i?°ðã?MÜË?ƒû?Æú^?Ëui?ìƒA?âê»?¯ø?‘ãþ@ôn@8n?YXÜ?9‘ó?Å?åCž?Ñ“A?¿#@þ@(Ú/?Õ¬Ð? ¦½?Žg@ +sð?Ù'Í>©v>‹·Q?±5ô?¯ÂÉ?¯iN?­ñˆ?½´>ýji?¿rÑ?áNA?æ+?éa±?’RQ?”¡?TÒ?™54?½Õ±@¤}?úœ?Y%?™ÊW?ç:z?ê‡*@‚ø@VÛ?œµ?ƒÃô?+G^>çË÷?‚[?Kq?‰ú?Æò?´îã?Xut?^ 4?oO?k9@ @D£?îí€?ß2Q?mƒà?ÝZ? K¦?æXÁ?½À¥?àÚ?š'¾?Þ_˜?ÏŒÆ?œ?I?¤ìR?Ââ~?»<·?¦£½?«,H?ÓÈÌ?åd?«ª×?eAÈ?½,@!‹'@Oã?œôÝ?ž-¥?ˆíA?…VK?u¹9?p€*?lÚÂ?i8.?e`K?dx?ÒeZ@(½€@&@N@!ü$@ì×?,rQ?7Có?¸nÞ?¶‚K?ž§­?˜£?Ç›,?ãÌé?½6?°&? u?È{Ï?·»‘? ©Z?[t?˜Óä?•q¨?D‚*?*/²?ÁuÑ?üüÑ?Õ[?ªoí@ºY@Y>í@J‚å?ã[?ß#¦?g–/?k^?dd?c/?bõh?bó7?CÛ?0+ +?¬öï@˜@@¦_?ªò?¨ÈN?Ž¿û?ŒÅß?9ë?3ß!?Ww?b¼ ?b¸ê?b» +?Šzû?´»ë?ÁuH?Ó»´?Í0®?[Ò˜?_Ýö?ÛÇ—?á¯?‡K™?Z[@ èË@>*˜?ã‘>⬅?.q¡?™Ž¯?¢·8?çÐ@?íø2?£fÛ?§%œ?Á±ª?ÄW?šX[?†žp?¢â?»"?¸Pi?¼©|?¯áœ?b¸?![ç?à>ãö>ãQ—?‘‘Ì?ª¬?¡¿e?™6?Ñ Æ@GÂ?Ê"?[ÿ?5?×?”$?Bö?bÞÓ?bá²?ˆŸQ?ˆ¿w?)ç?˜& ?@¸>âëG?1ö ?u¦U?‰6¯?ª6?Ÿy?bn²?bé>?f`?k#??,(?8ª£?€-?Œò?'ß²>ß+ >íœå>âë×?Få©?ª°?‹E>º¹Ú>Ó¢H?«Óˆ?³Xñ?ž1A?ŸPS?>âÁ?ˆœÈ?ªµ:?Šœ&?e v?3Â>É&§>“þè=¸Ì>$gµ>âqÍ>ßI‚>0L$>Erk>Î ˆ>ïâ‡?_wE?p,Û?3Tm?Ž5>‘‘>ËQ>ÎR>«Ðk:Z=€÷ð?W ¼?Kà£?OæÂ?K9Ù?`º>àÈé>d’>0× =¾©(=‘H¿>4µ³>ªÀ>Œ”=ÞÇ›=°Mù=º>=ž‡½=’:Ùÿ¡= +‚L=º$Š=Ÿc=õ'Ü>+>Ÿú>Û[#>ÏÅ>ÉàÃ>Ÿÿ?ÝÕë@ …›?F/ð?®×=UèL= P=Ý0 +?:?!~¢?(áƒ?0;†?7‘j?$€>eGM>šzº>þè9?è}?HV?5…6? y>‰»::¾ÜÉ?‚è?cö?»}>Å+!>ñÒ?Íá?B˜?;RŽ?3äG>¡kÿ>ï„?tÝ?¢ž+>‘(š?DÛ>?yTß?sn?l$ ?À?U?=‡"?P\Ü?3ƒ?4‚\?s±v?„am?Q4Q?Pˆ`?•^‰? m+=ÔMš>ÝàÒ>÷È^>>àp?]Ñì?^Õ>ÃÇ«>¨€@>š“·>Œªg?²Še?¹£È?5×_?&VL>"Ir=æhC? X? +¶W?kN?u»ü?æ?? @?(Ÿ?3[;?Aö¹>«X>•Î>ˆ4 >u>‰?/ƒÝ?+s?u’>?wq ?4)³?% =>÷Ä*>÷Ž„?·er?·Ál? ¾u?Ö>øwB>÷¾\>÷Ç">øZ+?]#‹?kï¸?š÷a?œ6…>ø ?»f?–´ï?—I€=)•D?fœˆ?s¼1?y$?u&}>Þ–Ï>Ô®œ>ø©b>ç¦G>y>$Mt=¼ùü?0z|?%S¾?loO?Ž—4?Û¥"?Æ„Ú?yfN?b:,>ù‡†>ù•—>õÁ\?ó?yË?Mf×>¦{L>ý6?Nro?;= ,>j]?)'?̹¬?ÚV?ê'˜?Ð-=?›ŒT?,0/>_ƒŸ>ý«m? ­?ôO?DóM?`à6?;i+?$â¬?#ÂŒ?Ö?{"š?šÝb?œQg?¤Î?z±Ç?F+Â?¹©?䟥?‹Š=¯/Ê>ÑkÉ>üÇ?Õfk?îÝ?†$K?f‚@?yí¬?|Ë}?|Þð?|î?hüÜ?w*ã?x’?vX[?ÌÜ·?½x¼>3W>aÅÝ?N +Q?FïM>ýž]??Ž?¾ ?˜VÚ>ýÞ-? +c?)$?*W? L&>ÿ`>µÑP?"‚‚?PŒ?b£"?~nS?A¤?éR>ǹW>¼-x?"?)À ?x>þÝB>þèŒ?N{?s­F?„Ï3=¤Ž}?ŸÔ:? \î?ÿMñ?ò÷?b?WlÌ?~‡?‡?“-?}Í{?ƒðÿ?zƒm?GŒª?:/®?BÈ?xÂú?¿ï¨?= += ¨?lg?qyÄ?—|¤?¥ØÕ?RŠë?&Ü?„ÂÇ?Žµ?HN€?=G›?C2?Hà ?†?™ú?“]Ñ?Ž=?e¾Q?_ÃÚ?À?9 Ý?¾ˆ¬?¯¨Î?zâ?€ + ?–v[?’P%?€r?);Î>•e‰?qÝ2?À¾=?°¥€?¢× ?p,ñ?U]ˆ?f-7?v÷‚?£Á‡?¯W€?¥å?¨òà>3]=N Ñ?N¾?Œ@?Úó?,4?€®ß?TKR=®Æ>ÞßH?°«y?¤?‚‘?ª{Î?Ô|J?‹bç?ÃH>ò‚ >ÑSñ?Ÿr?*MÀ?b_T?€Íî?”mŒ?£Kº?¶³r?¼ a?&v?üê?³Ú¢?´ÿŠ@M¬@¨?Íz?ÔÅ[?ðB”?ÎäA?.of?VY1?œî¸?“sº?…@s?£Q#?ÁY)?¶‡?¬°ÿ?ƒ ?DÏ?µEê?íSÓ?1ËR=¢Á>ÒŽä?ë?Ú­Ô?úö}?û'ô?ùBK?Îú?Ï”2?ñ¡˜?âý?ëª?…s?›bÜ?£ä5?¿ÿÅ?Åâ?Êí?Ï*z?Ô7?Ù? ?ÞC?Óf?Á^?Á\a?Á]*?ÄG“?Ä Â?Á¸%?ÁWS?™[?‘›@½r@ lã?• œ?€âv@4ˆj@9'.?¿âÞ?¶¯?ÁJ‹?ÆÞ?àéX?ÍMW?‡¾?Zåo?Õ†?Ô?Ó3?:ºû?s‡?‚¢a?qòP?¿d@Nc?h$ª; K€?í€?wñ±?¥Û?·–4@ {@CÒ?uë_?&º>?+qc?0"m?‰Ä?ˆ=#?€] ?‡‹Ê@j?û)R@Ž’?øf@?'Þ$?zž‘@É©@ +?Àç©?¦Î?jp?¬X°?ÿõç@Ž‘@Œ,?¾ž·?tu8? ˜?ÀÁ’?¡–?Û—?Ë©Ý?Ý©¸>éè?žH?Ç +y?+þÄ?dæ?„÷?—I»?¨`2?ªœõ?¬ÐÖ?ªï>óçV>ûξ?ªÅ?I„>æ×?B«?úbÂ?ßœÅ?‚x)?F£€># +°?ˆS"@)?ÿ?„ü*?Þ½•@ T?Ê£G?,á–>Ökˆ>UºÇ?’e?àô?G•ó>eª‹>üdª? g?³?/ ?7x¡??ç¦?HTd?P¿?iÑ\?p‡ò?~‚°?q†=‚¾·;«dm@™@Êå?ÍÖ?,•Ú?¢F“?¥ ?ãfþ?æwF@ †Y?þ8û?WÂÌ?Ž?á&ë?ì@¦?ÿf?¹ö?¥òT?Œl?’¹ô?”cù? ;?„˜?O5?E ?ên?бb?¾—?´{D?Ú`?úÚÍ?Ž§\?bW?Ußè?„43?ÜÏÊ@Ù?„˜B>ý€?¤¬÷?ÉÌ=?*Q1>¨Ë«?uÎx?—šý?¨dè?¦@ú?·Âö?½°R?Ž%?ˆ•Ó?w—>ü«|?œ0[?±ž“?ÝW?·Æ?˜i!?”*G?m ª?mÖÿ?{·d?|l=H—:ı7?¼HI?Â*D?¯>›?ª”Î?û?÷k¹?{há?w¦ê?=;™?Fa?sy‰?†eM?ë%?æ?U‚?_#Í?ÜÕ™?Ùø×?ô,?í”3?Ô ~?ÌØs?‘Ó?ŒL»?ªš“?ŸÞ>Äø>ñ„u?†g²?N½?ó®?õÆ?ôþ=?ëi,?y‚^?ƒÕŠ?³éi?°4¯?¬‚ë?¤ ?cV»?fû†?§.»?ªxý?Ž!?“e}?·¶¯?´Aá?Þï ?Ú»‡?µ,ä?¼<±@ÆV@½?0l¬?,¤F?õ¡b?÷*¯>¿µº>²=¿?•Ð?–«@êe@ ?òU¨?ïß7?,nk?"ð?eˆ„?v?àV?ñ-”>á¬> ¢V?±©÷?Ù»?¦†£?‘°?O?uS?¼6y?ß?ŸÒv?tœ?ˆ^?‰ã/?ºf­?ØâÅ?€|>ÜÐ?—Ýj?þéL?§)å>óŽ±?FÎH?›äg?¼§é@{§?ï+t?«ýí?žÎh?e*!?jO?r~?qÕÖ?q’Æ?‚éÂ?ìå2?ã6&>ñÛÁ>ñ½$?‡D?/y?ݼ°?ã¯á?ÕI?Ïë?§©Ç?¡&¥?½0?…\?ßš@¶ @3Ñ@Q¾÷?ü »?;–?²(@ @h'@Ù>@Æè?Ãy»?Ê÷ž?ï?í?å¢??à<ö?=>ÿ2@? +®>ûw>î0È>î×?\º¿?~?î¿/@ ‡?ýÂr?ímç¥æ‹F?K"à?ŠJŠ?•Â?©À?žgÉ?ªyJ?´ˆ??Ç“Î?ÀŒ…?ç‡?¦$E?I¯8?(;š?¦á?Î; ?©‚K?†K=?Ð(ð@(M£@ë?~#Ð?„[\?Ûê†?ݤ? y]? ¬Ï?¥ÿO?ª¶?ˆ\ ?dk?ÙD>hâ?H:[?õ-’?Ýrï>ä*4>ä…?À?• N?ˆÃZ?‡˜?Ü<@üU?ô“&?ã·Ò?Í€º?ª¾È?¨Æn?›Þ?˜lk?Àâ:?Ä•]?®´1?ªŠG?á?‘d‡?œ!0?ªuÃ?º’>åm?<Ê?ã$¿?ß¼Ø?¥q?£ž?m!{?c‚?óEè@ ‚Ò?Ä»è?…¼ê?«m.?ì‚`?àxo?ª$ ?ª$‘?ªj?ª„?,°>âÉ ?+N?A +Œ?†"&?—û}?[H²>Ômñ>êôê?Or$?M•²>õMw>ⱈ@ Œý@ V?» +ê?£?û?Ÿ–«?§É?kCl>â±p?=†‚?ªf?9À?NÝœ?X2š?b°Ù?b°–?zÿ?‡Î¤?…,‹?…"æ?ÍwG?ÿ4?µ"Ô?´7?)€?m¶|?‘¢(@DÁý@Fkü?zì¨?]Ÿê?Àç? sH?TkÏ?y½m?b?¡C0?› ?¼Éð=ú)R>¤µŽ>âìË?Yä*?£ï¥?§r?ª71?‘û¸>äR\>Ý6=›‡=è6¡?Dƒç?JÎ>®R:>‡i(?]Nê?‹··?{î›?iâ?‡oU?°Èj?Ÿ7 ?:¹”?:ßK?? +‚a?tð?qÁ@?-†Â? .O?±ÃY?â›”?¡_N?b§Ð?[×L?O?\t‹?z»?IXå>!—>Ds>øßZ>ã“ß>Î1¾>¸Âj?r9?›9H?tß>?I[R>ᜄ=ZØ=(û5<­n»=Çéß>Þ˜I>ÅZÏ=Ä–Ã>º>;E>gòB?%Îe?8>rXI>a29>ÅkÓ>ÃRñ>à é>ßës>ßÄE>ܦ>Â3$>ͶŒ?T¥ù?_r>Dˆœ>rVÊ>¸K,>:Ù>|}>© :>â/>õt(>„Ç@Só@‘ˆZ?\Z?«Ï?z„?nLŽ=X©?¼?Ž’?cÔ?8¨? >ÿΠ>ÿ~:>ÞI>³ó>†=´ù]?Œë?}Ê?}†s?wÒg?v!8?|Ð?l“Á?\8J?™é>žl5>ÄH~>õ0Ð?[„t?{"'?øe>úÅþ?Þ¡?â->?-€=FG;GÚ‹<é‹P?W+9?y? íP>ùMQ?‰Æç?ŒMg?JWV?<,²?¨I^?¡5Ý?/ßÉ?•V>ûâ˜>øNl<ܯÑ;NAŽ<ý@>îdu>÷ä?R×?*K?Qbô?K€Î>úêª>÷›ô?zO?…Î,? Œ?+x–?™?í;?ƒ„?€é>úHî>ø£?p³H?kÑ?ÙÂÖ?Я?W'?Oœ°?HÊM?A¼w>÷n>ö°7?G1?"s?ê?Š4?®,‘?°²F?$¯>üà{>úÊ? +??j¬n?cÿ¸?]PA?[Úz?¼s?­ú±>÷çU>ü ?>˜Û?D¢^?(ø*C>è÷å:1‰= Z>M™`?¨Úõ?/W?Yêä?YÁ?qP”?JÀ:>†«ë>°jã?„‹‰?q—O>$¶â>ï@¹ž?õœë?[AÈ?O°–>õ5¥?P6r?ð'ˆ?±ú>Ô@>|¡>¹T¥?à¹?ŽNV?RTW>…Δ?,=?®?ƒƒÊ?zˆ!?ŽõÒ?­Íó?àd¡@õ°?¯.=SA>jš;>ûù>û)f>û8X?tˆÛ?­ W@z§@.?¬A¹?66ä?…ÐÊ?¦‘?žó?”Æ?ˆÏ,?šä?vx?i#[?xØN?|Q'?|ȸ?z¯„?¶s!?Ä.>¦ß6>Tõú?øƒ?%‡é>ºöÏ>Î2r>g››>‹r´?R´t?gÂi?}Oó?q1‰?b!?@Ë=šÑ,>ív>ý¬ü?gX£?ý*¨?¾sÄ>ýì[>ýù‘>þ ²?&©·?XŽ?Ø¥>š§ú?†É¢?ßbÝ?–±ˆ?Ie*?dçü?nÈ?[á>g™L?™ó +?Ç’?Z@¹?…?Yæ>ÿÝ?¤Z?eÕ<üdm>âª?TG?¬bž?¯k?œ×?“Ýz?DB ?=ñÛ? ®!?xB>Ã">GœÁ>“f? +Žï?äQ?Ÿ;?ÀxÂ?v°M>ñåC?G&‚?€U?Mxù?<ìî?U™É?V?J?šá? è;?{¥'?~8Ô?r¶ ?g6,?/O«?,ó`?¯P}?¨ðf?%¶?*…Á?‘nÃ?ˆè?€½ï?]â¢?Ë6?5z?€rÀ?€u“?€zp?]Í3?.K;?Ž¸À?ÀÉý?«j`? ~Ò>ÑL¾>Õ&B>ýãd?Ÿyt?¯d?Y>Ù+˜>äG>ò Ý?zt ?Š¤!?ûÓ‡?ã/3?€¶¶?‡˜Œ?š›?’=?“7?p È?Ä:?›¨¶@k®?´Ó{?ÊÝ?2?±T>?«ï?¦‰8?jÑ&?KÎì>¨Üí>o÷?qµE?‰ `?ó?€÷?„ ?…¶?FÒë?a¹ˆ?Žóô?£nŒ@çT?ߎP?P‰?[u“?€éû?;s>jTÀ?i»?‘Id?o?\4~>çÑK=Ùî¼?Á/?qÅ?}÷î?€òJ?±ðí?À©Í?î^?‹vp?ös¬@òº?‘ºÚ?”V–@ô?óÉ?S‰¼?J‰?9zä?.ñ‹?Y?BWD?›?‡‡á?WШ?lœ?€ñp? å(?Áiv?ÁgO?Áh?åÞ!?ÿË¢?ÕH?Áb±?¡S?€ëI>ûñh>ñâ»?u*m?€é‰?±ûN?Äx?±ªw?®"?/ ?YJ8?É?Ò¾m?ÜuÙ?Ò%?’ÃÓ?bÚŒ?ÚD?[ÿÓ?¶Sz?µ?ÔÒ?ÀÊf@½?¬Ÿ3>ú©[?Pâ?€Ì”?ÔáÍ?öQ‹?Ÿ>–?J9?l÷?XC?²ú?µC¨?t+ ?y +•?AÆy?s¥ó@f%@S +î?zw?Ë[?]lŽ?y”ñ?¦Rt?®{?¸<?xÅ=ƒl??"r?À™?†û8?÷t?ˆ[°?¸ß·?¼·=?ÀËh?p;?"“E?›6®?Á ä?ɤÂ?¾é ?š£³?›Ó½?R¿3?:Óœ>å³>ÅÞó?Nɼ?YfP?€Z´?‰ÖH@UV?éÃÝ?µ‡?Ʋ>?Þä>Lt[?@d?HKí?½÷È?{–7>íº?¡a?¡‡?aoÁ?’â?»I?“H©?P>¬Ü}?k¹L?Á8ê?(ž?6,c?}Ýq?’8r?&Uª>ÞüE>5Õ5=åuÈ>5l&>!Øò?I? ”´?Š„l?†‹š?tz?| ÷?ˆ¡á?Œg?pþ¸?p¶ñ?Šè¢?‡U|?\6+?¥íË@8ß@âœ>þó™?€¢¼@5á@ج?þØ)?ùô?âó ?Ãmn?†™Ö?‘Žñ?«H?æž@:9?Óàä?gR^?ÊA}@ô?¦÷>þI>ûŠü>ýÌA?L`ä?wñ¥?¢û…?·b?œáø?”¤è?zV?_Õì?ùcU@š?—X?Oã·>ñHµ>ÕÓ?ƒÍ.?šä!?ÓUÿ?Ú‰à?(qS>üÙ‰>üÌÂ>üº0>輡>ͨñ>¶oy>Ÿ??ÐZ5?àË? $±>ü:f?s0 ?x£±?|¥?w5ƒ?{à? ?ž¢?*O?Æ°ø?Ê– ?ßñÿ?â‡ç@°û@˜?P˜?]h˜?¼BK?¼8·?¼'Ý?¾ûÇ?Þ½ò?çè³@ k?ÿØE?Ìî#?Ö?ÿÆœ?òÙÃ?zÈ?[ ++=¹´L>…Nã?³i}?´]£?²¸?®èˆ?}b?…9?¹€?¸?º×Ñ?Áßš?ð4U?ót-@÷@b%?Ø«N?Ù΄?ûÖ$?ú!@“@ý$?Ž4?• +»?›™?¦g°@6à@/Åh?w„Ü?}´?÷Q?ö}å? Ö>øvd@Éz@h?k‰È?eÚT?®Ó?³ù‡?‚´×?xíŠ?vdõ?v|?‚s?W>ììÙ>ו}@'—t@FCN@çµ?æÉ[?•®?uÛ?¶Ô?©¤?‚ü–?ž–ñ?yz?bÔN?À¥i?ûÔS?©Õ?@wÛ?ëÄ]@6Ü>?Ô ">¨Ir?@ í?à©?‘k??ŠžW?ó?^™ +?jý? r‡?6å?JUq;‚g =Ü°=ßÊÔ>o„.?§·?£Ü?q¡g?qA?L…Ô?U ?:?C…?²Žû?Ä”Õ?é?^wÄ?ÄXþ?î%P@™@ô±?â'X?…s?®Ûä?ÈÐ'@b·@7Bq@$à¨?ïW,?æI?ÎÃð?Í*Ã?«Éç?¨ÇN?f¨;?j„ˆ@´Î@ö:?»¶³?­t?Úð$?â ?É…^?Ä×@.QE@T+Û@+†?Í<ç?˜·G?CèÒ?‚V‰?º|ô?¯¾ò?‰Cƒ?š»~?ÏTê?ËÖ…?ì&é?ì f@ ]Æ@÷? ¦?‡¦Ó?²I$?¿7?¬É‰?¥S?Oœ²>Ì>>æk¥>ûü÷?—T§@/?@no?lx?_Eë=wK=±P?0Y?Èš?m2„? †?¹5?Êè?éìõ?ýy{@!@0ú @p•?ž{?qá{?h®±?hÆs?‚PÓ?‰ý?æ¡?è<?§Š?¦?kSN?LÓ +?ø>ç¬è?Cù£?™¸–?¤R$?°­¿?œ0¬>èb/>ÿHl@*ó@û>½Üû>"æ=ÌÒ4=£ôš? P?fk¿?tvö?„R1?€,_?fì?‰]'?þº?þMÀ?j2±?c”?¶¸=?¼]5?ž¸Â?—)?®–?½lJ?µ"’?«äh?¯¡?¶œ?´Ež?²p(?°™>5=-ã¤:û·Š;9€?’2?Ýi±?íWz?ù¼q?Í27?‡³-?œc?ã£A?ÜeÞ?ç·?á{ª?Ûó™?Öd¹?Óa?Ãy ?×ûÌ?è?Ê[2?”eM?™™¯?«®·?® Y?cˆ÷Ä@FX^@B„`@(uí@'X.?Äçî?ª $?ƒ¦?b³Ã?'ÐP>â´’?k;?IÀ?X«ž?kz?b€×?bµ÷?b¶=½À£?†{?/ê\?»É\@³?ñÂ?¸ à?°!ã?§q.?°ôF?âÌ?æ«>þÎ>øÎ@pÅ@Eå?U+¿>fuª?µº@AÙ?Ùî-?O!~?=&¢>ßÊ? ±å?ª,Ç?ª-‹?Ñ• ?Ç­„?%™(>âí™?&MÎ?0¿ó?>P2?\6?…àû?ª9’?‚¨P<Íhl=éƒn?BùÁ?9Y ?î-u?íûË?:>’‰¾??¡ó?ƒÁ&?›f´?ª1ÿ?‰¾y?7@÷?(˜>âã.?" ?bݵ?bØZ?£C?¥ê:@ù¯@*ó@ ~?â´y?‚×?(ö?S§? „x?e¥>ܦ? ø4?Fª?;"~?ŒØê?Š(?C?˜é>­>cÓ‹>í߈?1 ? 8ø>üvè?6?a ­?*gÂ='î=øð ?:u7?/7f<ßzþ>‰¤Ã>½ªþ?0þ? ¥ ?#VÉ?6??xÝ>¢ýÁ>®p>¹èS>²è‡>Ñï5>äÎ =È©P=Yí=Óñ*>S£œ>‘'é>9Ï^=•k2=E?º?`©±>õHk?«(Š?Ò& ?#+`?ªá?5z? wg>Üš>¸Ói> Q>ššÀ?OQ&?4¬?!>ÿÏn>ÿ$>˜¬>i^x>þW?;K`?z˜Ó?7n´?Õê>”FG>/º ?6ë$?|_Ô>Ûõä>MÉ>€b->oÀê>÷Æj? ¢¼?»+>úËŽ?=~x?Z3À?oW?x:? u±>ét9?ï‰?VG>+Eñ>J>÷Ö´?,õ?6M¥?=­÷@¶,@/¢?eyf?Y¶?BÒ? Ô<†8O>ð‡ >ê;/?ª‡?¥ —?ž%?–ñ?%ÍÛ?,Ý8?@iÍ?8’Ò>÷ø>öB:üÒ;b ¼?BRˆ?Q³?³:Ž?µTv>ù&Â>÷v>?äF?¼2?“•-?›®?¦ÉÞ?¢·?wm“?tÖü>÷r¾>ô¥ì>5b3>20_?™Ö)? Q?„ê;?2u?r×ü?sb>÷¨?)@ ¡f@e[?ªU=?¨³}?Ð!?Éc¢>gNì>ˆ‰º>ø ?3E?P ‰?Mý>Ãǧ>ÅŸb=ÏR÷=J~#;¯ =ð?‡jÂ?‚ûà?ÂÚ?,3Ä?]Ü?n²?zƒ?cãZ?.Dx?'ÅÄ?!Aø?3!ð?ˆ{?RX:Ãj5:kø>!+?©¡? >ÊB>™®—>}3>À"Ä?`¼`?Gmä>úMë?\F?Èè?Ÿ›Z?1'Ü?>”?Jí?ŠY?¶›Þ?»þ?¼lª?z‘k>û&7?5§Ôµ³?ˆM'?Ïh'?N×>>sX>Ñsd>ûÛx?kKã?•9\?6Fž>ÙŠ>Ëy9>ßs?Y1‚?z8>?±ÿU?ºcƒ>¥ƒ³>^Žü>ÅYä>¾´÷>Ù·>.d?ÎJ?´<‡v*>Oúf>Šîò?}b²?sp?FÞÍ?MdS?+Øs?h?šz?Õ?]>Ø£×=‹Û´?9? Þi?ve?)@>á?×>XƒÊ?——p?þsÚ?­d=?`ð§>˜\G?Fì-?‹½ˆ?ÚÐq?øm@uò@I?G3>ÿ¨>ÿ$ñ>ÿ0±?—U^?ŒÎy=©Nƒ?qã?{­Ió>¡‹ë>À³A?<ѽ?¬a?›º!?÷¤?¾—?ÿÊ¿?Ø?´á¢?´”>?´·Ð?§ìâ?°ô?L–É?.T>Á>Œö’?ªv?ÀaŽ?ñ×½?ïÝ+?ø?ƒe9?­²±?ŸŽä?mïI?›¢¹@ÍÎ@Ý?ÀH&?©ç?u‰g?$+˜>5Ìž>ÈÒÃ?"ñ?TÃ?€Š_?¥Ds?ÀØ’?—éÎ?€˜>åÚE>FFe?™–ú?Àó×@Žü@.î?Ø>¡Î¿>Ñ=y£<Bû<¢{`=ó ä>¬Ñ±?€¿l? ë?Á(?‘A>¢9 ?DÆ??´a›?²ÛT?¿5[?còv>’‚\?ˆ&Í?Ôð:?æÝ?ð¾Y?4á6>9h€?PîÇ?€ã@ x@Ú9@ ªŽ@62?„,z?†+2?âž?ç‹™@!ŽÇ@ Ò?Ö q?Í ?¦ìçxÜ?VZi? ? 9?‚åð?´êC?ºhÏ?É«•?Í™ó? ¢?8¬Ê@ýƒ?ür?Ð^?¾Ž°?…aL?o±¶?0:9?| X?ÙÌ2?œz?û¢?Jâ¯?¢F˜=½zR?–æ?¸ˆ‚?¢³ +?—éÓ@@ Z? Ô?40?€î¶?n”—>…Ù…>’mŠ?ë>阊>¢çÛ?aõX@=F?áí¢?U;4?sÊ?“\å?X¬K? ¿¶?GÕ4?€³p?4S ?×Ï? Ã?8×?Ø?š±º?Ș«?Ìœ?ŠÙœ?€Éî?­±k?¶ð_?L¦æ?AüÑ?=N?^Wþ@³)@T>'—É>aüæ?³Õ??? +†?CX¨?ŽÍz?†ó4?€¥?sÓ<\°0?AÐ?¶Òˆ@h„@MÒ?ò“Q?Ž¶¤?šÌ +?›vã?d>¹|®?ç„X@VÃ?J9d?y³?=iç?I¼E?—?–?—Ö?”0?ˆ¾?_ãœ?{¶ +?è´?Ú£J?q{‰?ŸÓO@7?ú¼Æ?HÆ?O¼å?À`Ë?vÿ=ŽD>Jôr>m¨(>ˆ$ñ?{?Õ•Ý?º¬l?¦‚Ï?-ƒ,>ˆbP?»^?DwN?‹é?™„J?O-ô?*xä?š%?®ä?V˜Ö?2íÐ?u¢–?·Û?g¾%?n\¥@6;@=Þ?‡t?y??sS?eÊ?\g?Ž}ï?å}Ý?Ìùý?]#?g*@ úš?؃2>J+*>úW#?—Ö°?Ê#×@ \J?ïˆA?¿¨?ÅdÌ?Ò~h?¯…m?~O?­FÒ?⊌?2¬>þ]^?Ž©? +å? +ÿß?ö>F¥\;›ï€?%ª?}òn?:+4?! )?—³0?±ÎA?¯Ê–?­Ãg?³ˆ×?»ê@…W@ l•?\“}? ^ú>²8>€…Œ?Ç(Å?áÊ?|½Ÿ?[϶?,vk?%I?¦-Ç?­ñ2?ÊIüT,>ûáÑ>óïu?å?|ð?„U7?ïú +?ÞbX>ûË? ÄÐ?‰kÌ?–0@?û…ð@Í@&«ã@"Ç9?õe@?ãwå?˜)ó?£Ü¢?Ü“R?Ú¦??ÓDF?ʃÞ?»øÓ?±Ô]?zz»?ƒ¿Î?Ÿÿ´?™Œf?ŠÈf?tó>Ò ?&·?–'?#@>ù­¶?Rý@äÙ@¢«? z?60¦?ºäk?ÄÖŽ?øÿ°?òós?Öšâ?Ê Ä?eò?B@ÖÔ@³7@‹é@M¬?R1?rNü??¶¦?wWN@1&4@0??íî8?ßy]?ªo|?²_Ì?È8Œ?ÑdL@,€E@)+Y?œË?ݯ?ˆºÏ?„Þ¶?³js?¸ß@·’@ŠØ?)¤à>õîC?›®å?¥ß,?ÙO?êû@ ƒy@>`?{l?!ëG?\¨Ø?d~e?‡Ô€?”öê?Ÿÿ·?›J?]Ùß?1EŠ?jÒ¨?…< ?ÑE,@ ºÃ?¶?çj?¬´+@Né@£w@ç?ó†×?ü(?«×ò?ydz?ÈÚ@Sçp@.il>ëÙ? ê?]ù?cÔ?µx™?¯®ö>A:œ>\q¯>ï¯)>ñcy?œúG?žèB?¡_?̪Ý?8‘H>ð»6?¨M/?ÑÌõ?”}Í?`&›?°„?èQ¥?î³e?ïØ?àÙ?Ð"?Óe?Ö®e?´¢È?r¬?+›ž?‚¡³?oà>îºÑ>ûÚá?²ë|?´ç"?è“4?é¾à?í6Ö?íö?À6“?²Nj?~uà?hXÎ?Ùé¯@ ]ø?©ëA>íˆ?BL¨?™7?™l5?˜Ñ´?žæI?Ô8?سV?ÓÊ?Õ7T?œRÑ?˜Ñ?î‘:?ðtÝ?ߺ¾?Þñ_?¼„-?£S›?‚h=·ô>ãè??fR?E?ê¡?Ї?jj¨?‡J¦@Åâ?þy?0º?™˜£?¡.C? ú@ .C@r?@iV@Ò@5@,?ï×0?Ár?’«?Q“?„ù¢? ^?`?çà”?èI?Jú²?,u>á¸>ºý?ÓÝ?3ï¡>Èø>Ãà>¼&>µý?h­;?œýF?hzÚ?Ø?6EË?f(?ƒ?ÆÎR?Ç`{?¬cñ?¬X™?¼FÍ?Å·8?ÇT?½âƒ?¾v9?Æë^?È›°?Ã>‹?¿i‰?ÄÇ‘?Ì»#?×}A?ÜÌY?â#s?äÏ9@ t9@$ÍQ?gU>:õ?¼;È@&ž|@(à?ö0…?ñ~?ôñÆ?ðæç?Š€b?‘Í?¶ƒJ?¿“#?³fX?¨Ô[?¶ô«?˜n?©w¢?…Þ.?tÎV?2åð?2‰N?|šÏ?xÍÝ?ã¸ú?êOÔ?Õìá?×™@"]@Fãå@F B@A¡‹@-¯@/Û?ù·Û?ã)?ã!?@Òø@Ìn?å¡¢?Ï£^?è›þ?úK?Á‰"?ˆ˜?RÓ?‹¶?‹‡I?¡ø%?§ê’?­Ý}?³Ô?Å;?Ë}=?Ï~l?Ó†P@ +»ç@*ù@у?âÃË?ؾù?±¬z?¸©\?‰WK?‘Ž?8Â?{ü?“Lr?™¼5?GÍO>â½…? ¼ú?1`æ?8,•?dô ?q*g?ˆëÞ?†Ë?#—€? !ê?sS¯?bž?Í>Ldß?‚?e@h–?áX?c%Ñ?‹¿|@ ã@ îï@·Y@&@?¯jê?¤ÐÜ?Z°-?‰7?«ön@Ç‚?´d\>âåÃ>áÐ$>Î,•>ôŽö?ª1Ò?ª4P@µ9@àä?Nw>âô§?ÊŸ@üf?ž›>âü(>ã1%>ïYû>ô(1>ɵÅ>Þaö?bþ:?bû=@ À.@ Ýà?< Ž>âýÝ?Gw?c²­?#?’œ¹?~ÝJ?;ëÂ? )!>âç„?Z?sø¹?nO÷?Tü?_G?£Ö?¬ñK?®í ?°™?…_Û?L'ô?Fçá?A¤¤?\>‹¤Â>¼àú?]=«?d6ö?Aâ”?Qæ¨>Kþ3>¥Ä?$_$?L}È?‰$?žÊ£?¦EK?©W?P‹}= +˜ð>²‘?’Ï?‡ L?aLÂ?a2ø<ܳ? ÿ?-T)?vc†?‘>”?Cºº>àQê>‡Uëç·>²Z•>¦Z">šNg>eâÆ>7qV> m>˜5*>Ç«?sΗ?¤n-?eÇŸ>Ì̤>×j?ëøx@úð²=¼oš>‘4ª?†éÌ?Sж>×¹3?¸K?;)”? ßÍ>ÿ€ >Í®±>e¤s>–Ê>ã“>ñ¾·>ý §>bô =:â<Ì3˜>Øix?'[k>ÑÁ’>Œd8>~PÅ>Œ«—>¶«¹>£ \?C"?Kã=öñ—>Ýö¸>úÉ—>ú§§>ùãœ=ó±=Ø™l>¬ >¦¤Ý?ƒ?? ï„>øí>øèä?•ÍÎ?§ÒÜ?eÅ?K¼?Ž{`?ˆE=B²;6¼;>÷h¼>ùÓO?…-É?ˆ¶|?Œ/>?Žg>÷Ò´>ùm€?8%î?A[?_3~?MèH>C#>o<>¯ëÈ>‚µ=?g&?xu§?¸,B?±·¾?ªÛá?ž^Ð>c{>™z>ü§?O2?3~Ù?:«Ä?2ü?&¡">¥î—>³€->Á>çáI?²Ù%?¯Š>õ¿û>í¨Y= SÁ=ÏÊÇ?Tˆ ?~¿M?æ ‡?Ùå8?]û‹?^ç”>vr~>‹´§?\è?KŽV?}? ¬À=Ƙ?oõi?vwm?v†7?\]†>ÝŒZ? ÖV?­+Å?š)³>øÕe>øàÙ>øó]?Rä?€ˆ,?€>‡?Kþk?R˜D?Y,ò?ppö?žtd?ƒÚ=‘tD>Z>ô¶'>íÉC>ùÖb>ùæË>ùû>ã­>§TW?)w?…X°?:r€>†ˆ˜>òZ¬?Mqº?-> =õ0ž>Ùó?tKÑ?×ñÛ@ÿ‹?Óþ??lÈÍ?rVù?{[´>×·D?*ªÂ?ˆT? ±Û>rE>Ìò >ûí°>ûúÊ>ü“?¿Új?ðÌ.?7ö=£Ðø>Ö®Ñ>ü¾k?a?0'=ŽÄ>ê ‘>üà>¬È°>¡Ì?¢²¹?œá8?4Ö?ûF>ž>Ø+¤?}uê?YÀ>8¯? +B|?øY.?Ú”Þ?~ˆ ?S Ä>ýò¯?IX-?ÜE?|NŠ?C&í?)1>þNÙ? ò? “ã?ˆj ?ÅØ‚?¤·Ä?’b¹?0¦w>Ã(Â?‚§?ª¨-?»Œ?¿:c?ò\&?ÿM-?,ï>ÿ,]?§**?¨Â?:gc?JãÊ?Ál?røq?„&?i3¦?úÔ?3 …?™Y³?–jØ?“~«?U0>[ë>»ñ8?_Q?B¤?|»?=æ‡? +ü–?q:?À+?nIû?¡Þ?Ó;?í¯?QO?7Z?;Ð??Î?–ï¶?¤öû?ÃÔ?Òøè?5Ds?Y7•@6?ü? ?DC¢?À¦?Œý;=@°?Â?¹©?‚û¯>˪Ü>ß9ð?J? ž?1Ü’?—Ï1?Àæ–?Z«?…µ?d´?¦´?†¸÷?žuì?¤ + ?©\@Ê7@ƒ6?ÈÐ.?Ê_@ËJ@ +a>ê§ +?!û‘?µô?·“?Á5·?”†>ÞŽ^?“[H?Ž¸ª?€Û?qMi?OMk?fÃ?€áù?·§?Ðu?ƒfÙ?Zåô?Žz¶?Ž§>8¡z;O¸?¹E>?Éê”? ‰?tf¹>Çpm?“¶?È 5?³?+? +]o?‚™ƒ@ä`@éÏ@üÆ?ØHÎ?š§‰?˜ êf =œ[>ÊŸ?^d?¨â8?½Ï7?4«?$r”@*N@*Ô2? q)?£ìq@%?ûâç?ÜGä?ïz +@ͺ@uÝ?Ý''?Îd ?¾O?…¡Ï>»Û?mŬ?Á„?ó–@:?Îg?‹%f?‚??©I\?°r÷?¡l?‹Ÿ…?çüƒ?òhˆ?Ža·?’•>;(>n _?8 ³?Q3I?ŸÉK?ŒöÉ?6Áÿ?*>°XH?/!?žÿ:?Â5>?õyH?ó•?ò±M?º~)?€æ ?8~?à§?P;…?wˆU?#É®?Þ[?b¸?€Û2?k¢ ?tÜ¥?¦Æ>?©1H?‚ò_?€’r?>ú«??—¬? +ï?;KŽ?Ù p?ÇÙ?t¤Â?f²C?XÈf?TšX?mU?¦­Ý?ûôà?È?}æé?D_F>øà?‚dŽ?À÷×?–,‚?ƒºÅ?…ñÀ?€š?Z•?QÅj?rŒ3?lÏø?Š±?˜.Ý?¢ò?›§ô?A¢K?4xÇ? ô?˜<˜@h?ýäY?lã?Zã?€g?ký ? ee?ø9?À?oDÀ?ý (?§„ä>®_>åZv?Xʬ?•…x?ÇU²?qêŸ>µòW?_$M?®¤?£Ä?›_•?Ž&é?…?y–,?pÿ ?˜zþ?¨p?‰|5?þÜ?Žuñ?dD?¹/$?¿ãŠ?Ðù?†Ûà=¥£á<Æ]>?ï ?Y]?û£Ä?÷j?ó6Ñ?à´Ð?mê?ž1@[ê@ ÜF?¬×ä?¯ä¦?¿a;?©Øs?]?M6„?A_?Èåh@BX÷@:/?¦{?ŒoU?UªÕ?‡%F? 8}?”Õu?‹ª??M®¬?î÷?\Ä?‡Ñk?¤ªn?½cq?æb}?õ•y?v~ÿ? C`?5?ª7U?XÁý?7,ü?ƒé.?Üô?‚ñx?}’ß?Í9?æK ?c°?:Fk?>ž?1Ÿ.?€¯ã?ŠvŸ?¤qÉ?§õ{?€ás?|Û›?]„€?aË?û‹?û‘?µ7C?³Íf?“ë?³À «?ø ø?ð^8?“Î?ÂCI?ª%Y?­„×?áe?á:$?û–×@.@%Ï@©@Ž@ ±…?{&7?“! ?úü±?ðòý?Íeÿ?ß¾@ñ›?ç°9?Ò? +Å?Ú»Ø?Ñ¿ ?£qj?‰æ>ï?,“æ@9ã@Qu>ýÞ?c?Ïf?¦p²@y?ô°?w?yíË@¬8@-¯?:çN?f±l?¿˜?®”˜?‚£?ˆž?_º?¨»á@ ÷?öÕÈ>ãA=? Àµ@Np@-Ú@:@MÐ> ÒA>,ì”?3µ¼?P+ó@\ð @]s?ÜÁ?– A@M@Ã?_ÿ>ù·m?ñ6ÿ?ú ?æÌŽ?ßØ@ 1:@»Ö@7±™@:É@ +«H@¤-?G˜¬>õ,Œ?õ²{@z%?¾ºÈ?›Dë?@ +*8?œ/ÿ?@œû?üH?±T?«G?ŸÀ”?¸äÒ?Ôè +?£Ì?[¥¿?éM@Cï@0† @e¤?ýí„?´•>?¤&N?u?©b@\š?òSÍ??ĸ?ƒo2?‰·J?ºr%?²â>ñ9¶>ñre?›ô?¥H‡?“Ÿ’?’:Ù?‚H—?t¿r?ѵz?ðP?Ç·•?´Cr?k{?ŒÝ?éÙ÷@¹%?ð-ÿ?¡Á”?œ˜þ?—m*?Ÿ??º–t?ÂÒÉ?ç#?ÑML>îÊ>îÊþ>ø0:?Ë]@|@Âr?óÇÚ?îÐ?äÙ?àÆ¥?ŸÙ˜?Š?Nø?E}ò?LÝ?>ç@?eï¨?ìs?° y?ì³?Ðòý?l€5?h³?Ǻ¯?ÅÎ0?¯i ?ª?S@6Wz@@êäV?”¢@)?ôsp?jwX?¯t@jN@F#?Þà®?݃?ŠÑ?…*,?ñÃÊ@t^@c™@Øî?ãµ×?®à0?ŠQè?-BÔ?NÝp?•¦?›N¥?®q…?­Ìü?²D´?·]G>çðd>šo>¨5[>–£%?¶Y!@ëç?É/c?væÖj?‚@æ?ü©?V)r?;9?@p˜?;g7?|§„?´@í?¯›?¬‡?®Ø?Åê?ħ?iy>å±2?àÈ@ +ö ?Ä!?ŒÅš?ÆR–@Ø›?½Áœ> ôs>+ô >÷Aä>é0›>äå„>ïõ?Óú?í¸?²p?“!?üºÑ@+a@1.æ@8xg@Sº?dBW?r$A?{’5?t$Ÿ?ªº¿?«¨/?¬dÝ?±ºâ?Ñ9à?ãÜ#?¹ÕO?‡‡Ó?‹?j?Žú»?•‘æ?ª¶G?ª®Ó@ ¥‰@0>úÖ¤<1‹@?†û?j»ä?±D”?ðëò?Ó¿?ŠºM?d?Š?ßv?±?¹ ñ@ ÖY@h?Î\[?¥"`?c›«>Ø(7?#Îû?“'Í?…F>âïq>æÞð?LÜ?@¾?61?>|Í?c?l÷Ý?çå{@)!=@L+?âÏ*?Ëö{?kâ÷?on§?bÉ?bÅî@Ê©@ cT?Åç?ª>?zöp?4c’?EM?bÇ,?Sì?# ?,¸Z?•GM?—j.?¯¿?·¤­?O4_?£ô?‚*Ž?¤bù?bTt>âЖ?<ç?©ºá?ŸÆó?~‘^?ˆúf?ôò‘?ùl?‚’ò?bà—?ÅÒ2?Þáô?ª#“?Š<-?i×—?(Eˆ?Cü:?ˆG‹?Ö ?¼lP?ºu?fZ?öU??¼? ²?…ÿ·?¦‘B?Tç>ãG?x¯µ?Õ%g?Û‹Ò?öo?Ûûñ?cy?bîI?„™µ?ŽÞÙ? õ>ãü?ltP?ÞB?e ´?:"??q Á?šÍ ?†ü?úU?*¹Ð?š=i?’;Þ 9ÛØ?˜+¹?ªŸ?=£c?î¢>µ~G>iqŽ>‰õ>ž‘ï>˜8>⌭>â{c>âwX>ß]‰>§e>‘ò>Ü3>â2—?:>ÿup?—«>øX?jYY?©Xà?¤år?˜9}?}Ú?Ÿ3?š>†jÌ>œÕ ;ðl?lQ©?E?UÇo?9jk?ö">©"š>S€8=ùÆ=>ècÕ>ßõ‚>Ýço>Óe”>õ&í?7ü?9Ëy?A­? +‘a>Þ?'>dS=¥O¹=l®‰<¶? +äÕ?]™œ?R=jUT=m…è?>b÷?-U?»R^?º:?sn>ýØ¿>Ê-r>ä!0?W2u?)4ó>1ÙÖ?Ñ1?E>°²V? 9?Ngs>Ôæö;3ˆŸ;Øv@<&j@?7*?>ôy?K42?N¿E>¸n>qò>oÎì>KÖ–?u¿æ?º?Ä·ª?ÚOÐ>¯´=dœ°?]ƒ?wOÃ=ÿû=‰îx>½¢5>ºw?Ž”>?)•?4†È?8­1>ŒÊI>””">­ñH>+`?½ñ"?Í3«?âp/?ëÔ?xP.?nIî=œ¢=¸´?xˆ?twœ? òà?&Rô>÷Ù+>þU?6òÐ?3Ç|?Œ˜í?”‚j?›s?—u±?Ý`?ÚïX÷‚À??E®–?D¥ù>‘é>kü»>5Ò»>?ô¯?w§B?d²Q;<P=¸?]AT?Hâ·>÷Ð9?¾à?t[Å?tH,>V0C>žŸÉ?n8Ë?`g&?pêÌ?{(É?;Q*?0Z"=~V>øm®? Hø¤¬?Qò»@# Ö@,?Ž5`?u>øþž>ù >ù^>ù.F>ùê¢S>ÂD>¯V =é¦õ>Ñ?¸†g?˜™>ùÂÉ??eñ?A0}>úP>ú;>ú(ª?‰@?%íg?bè?™-ã?+w=p2ê>vÓÇ>öh›?>ïi?†¿õ?fÉ>|>Ôé+?U>>ëo>¢Ü$?+Qå?oö?zp?nF˜?? b?)y?#K6? »?ù?ªÂ÷?ˆ:;?|bÞ?|´ß?z(l?t ì?mØ_?š8?” 2?óMó?쎿>EÊ>o.§?›Ï?šZ?TÃÛ?Lש=åvä??w³?Pœ>?jëÔ?‹–?Á‡¸?öû @<¦?óV=]r? "Ú?¾™*?°²?˜c{?’Qá?ŒF?`,g?=è?f Ž?~•¾?-H.>þ±¶?Œ¹?°ðÙ?JñÎ?À??¢¡^?½ Ÿ?‰q?ƒE> ÑJ=xM_>z”t>«0á?]ñ?jsÍ?èÊ?Ø°K?’Ø?sÝ)?0ú?oK½?î·?ÜÁt?¿âr?¨ÏŽ?íº?”g?´ca?€þ ?m?RÝ?>o?º=› €?u’Q?°¾]?ÈÍê?Õ¥8?ŸB?Šq>¶^–>ƒ£;?H¯>$~‘>†ó£>r»>Ô6í?Z?»5ð?½¸ª?À8µ?šx{>ñS?T4Ÿ?ÀÊ?ŠtÂ?Ž/>§Ñ­>'µ‚?‡F?×!Ì?Û$Â?á +ê? Ë>Áf÷?­Ð?Ex?iž?0!?'ñ`<ò¨é=-eI@ôæ@|¢?Åj/?¾—?rW?vqx?ò?jH>>ßY•?b\?!cn? í{?Þw?_;?žYÙ?·#2?Ѳ"?“Ïs?\…Á?¿Nx?çT‹?âH=|>@ +"š@#¶£@“ï?ýâŽ?ˆ¼Ê?…C?ò×?4?HÅä?I™¹?€ÿU?làë?wQ?QϽ?¹#­?·f?ª¾;?­MT?©­þ?¬K?®èÉ?aà?±>­¿G>E— >Ìó?  ?d 1?€ˆ??ð@·ä@ @ Ê‹@ ¥g?“^Š?˜.^?¯ãÿ?©$?sµ?•u?èiã?Þ{˜?´n³?¸®ò?¨Á¬?O7>}?8\î?¡&‘?XL ? +ã@Çk@@Fa?Ÿ™V?èa@NÚ@áà?•š?2?] º?h¤9?\£…?QºN>Ÿt²>â>l=È?Äí@ü›?Øù´?I?3³å?Y6?I©V? Í?{J?Án@?¢ÈÍ?€ðP?€ðk?€í}?€É¬?}Ïh?μt?ôB\?À×½?ªH+?Ø ú?á;.?~LŠ?WÂC?“«0?š‹ê?ȵ*?ÀÆ?ÔÞ?¿,?" L?B†N?ëBª?á ¬?ºÌ¼?Ð#E?ôwè?Â?"}a?j·š?¹n#?V—Ù:ª9?C‰?yëé?C?!Ý-?o¾?§J?îÎÚ@*µ?ƒ>?šà?L(?j>˜?£q,?¤cÖ?Ú„?ä1ê?Y|?P¤I?-?ù?*~å?]‡ ?Zÿ¤?ý›?.¶g?’?Œ_n?„Õz?ƒ¢?€ô³?ZC?L? + >äL>û´g?O ?dÙü?Ÿø¨?0½i>!„u?$Ë%8?5}?‡¬B?€|?T=x?ß\?ÛË?¿}l?î/y@.½=@ —?›ù…?‡J?@†Å?¾ã?¶í/?™–?P½o?Sï ?KK¬?¨ç‰?ïÃ?Ï2„?´?›FÏ?† o?Ì>?û•?4†e;6§€>ÀWØ?9^?¾ e?çÊ?Ǹ(?¾vD?ƒ@?^—à?Ÿõ]?ª¸ù?Ëfç?ΔT?‰–"?}…W>£Gh>zã;?:Ùt?Sšë?hëä…?Oß2@¬@¼,@.@ À‰@/{@# :?à˜V?Ú¾³?ÝÎò?ÏCí?‹l?ªÀÄ@y@ RÍ?—ûŸ?˜ov?‹y^?jTþ>Ð!? K ?lv¯?¤›`@¥—@QÅ?yÆs?xÆè?y›ö?›'t?ÿ¾Á?Ôf.>ùJˆ>ö™?ê‰?=LR?˜DA?Žp?yl»?„Ò—?‰ˆÔ?…á7?‚4D?‡4Ì?½Ô»?·MÝ?Bsª?oõ/?ðFi?ÜÓ>÷°ì?å'?Ç?…?ÒBâ?Ë°Y?°®?À^e@Jë>@I ª?v·½?v \?u×Ø?r§?»åŒ?¾/Ý?¿àü?Á\?[ñX?_S??ns?»Â?Æ\ã?Ë š>Ç ¥>8Mß?šH?ÁØm?¼o{?·›„?ÎÏR?Øçó?µ{[?â”?¥£Õ?¤ˆ ?Ñú®?óú‡?¿ë}?•T“?p"?7E?„¡j?¶b?œZK?sÕ?s µ?rè"?rð1?r²˜?›l??÷Éc?ó)x?Ø æ?Ä^&?r*?cß>ù8†?Ìh?K¥¢?H(?Pû?œÛ?vÅ1?q b?m19?sçE?¬IÖ?¼Ñ?¦§?Ô·?Ÿu¬?¡"@&Œ1@h$4@9)@ ¢r@ GÉ@ çô@;r?ß*!?Åø?g1‰?X5M>îÕ}>>îŸA>ö?ô¤­?ö`f?îü?îÉ?Ç?Ë?Á:Ñ?¶?²6×>÷¬©?U3¶?»:2?·Äj?´IG?»ñî?ÑA?³@?êíA>ö&K? T?Qøˆ?©‚ô?µ€Å?ôÑ?î‡?_ç?’¶Q?žÙÛ?á@ß6@+ì ?µÝ}?zƒâ?‹}ê?‘Ð?‘×9?Žç?­½?ç ?Ý!7?Õt¥?Ë p?Tj?J¼?ä¸æ?äWÇ?ÞWÅ?àŸ[?—ù¾?gÎà?Í5Ä@Ç4?ÛûL?kWŒ?m9+?^h™?T;b?2ßk?@½?–L¿?’ãC?@e¦?5ÔC?w,ç?„°}?Kv½?"kù?i=‡?©WŸ?´fd?ÇsP?ÀLø?Ÿåg?¥+}?o½®?^ß?bÍ?e–6?®°?ϽF?¶'?sù?¨K?³@f?¯•?¬Pñ?«¥C?© °?¥hú>‹zÝ>WǨ?òÛÝ@îQ@#å¤@+h@…6?ñì±?Ð&û?9²Å?7æi?Vù?]WÖ?¨u|?¯ õ?“Kä?ˆÇ½?´I?ÐÔÎ?š A?/$»?r9?÷ñ?#ž„?ª¼Z?ª´ê@cæ@ 9?ZL?ceƒ@»k@$HÆ?Æ)?uü?:¢ ?cFÒ?r™?›Â_?šjª?¾4?º0ó@,ìA@:†4?ÂI¼?c¥?G_?1þj?F,z?býÜ?DÑš> ¬ž>Àð?ÉËE?ÍÈ\>£_,=Ðù;?f»¤?¢µË?È-?âÝ ?ã¤C?âÓì?Ô<è?¢ñã?¤s(?Ì8?Èà?ÖYi?Þ§­?ðgw?ðÊ?w |>Ït>ßö>ðáÿ?*WZ?‡¼A?‚þº?bÌ ?bÌ@?{“¬?ešÏ?–¥?¢Ð?~æo?\õâÕb>ç j>û._?B.u?ÓóÒ?Æk\>¾ƒ@>âC8?‘AÃ?—‹¤?Ä6?ØxD?›ú ?bï&?JÚ²?1þã?fÞW?ª4?¶ÿ?ò6 +?íµ??MÐ9?Rza?œð ?¦±Å?0X>ãk?2y7?]2 ?ŠD#?±ö?©Ï>?–ýÈ?Š1d>Š­{>¥za?{½]?qè¨?h?^=ˆ?“î^?÷?n(Ê?6u?96Ü?J„?n5 ?›Û|?„QÕ=w¢=5<|?aú?Ymƒ? DÚ?kk?A¿ ?I[Œ>Ž_/>&¤m>âŒ>ËL¿>‡>§x'??^h?D¹î>éhT>â2Þ?8èo?Rd?¼Ô“?áöX?¤Aš?i ‹?‹—F?©<?¢5¥?‹¦·?|áX?ÿñ?¨¸:ï®$??˜j?`‡>í³> ›¶>Šÿ>pÚ,?_¿)?DÜ<ìè=T‘à=™o³=È´Œ>ó˜??W>úèô>Þ>">`©Ÿ>À*]>ÍÌö=›äõ?ˆâÖ?Ñ]–?_KT@Wâ@€€@C}±@4 ?qÐY?M2*>³Q>œ ?QÅ?9x?">–7h=É(>qU=ÄCâ=*?º?rJÑ?c*ù?T‹?ld„?|ÖŽ?8¶>Èmˆ>£4>tÿ>‰uj>ž’Î?f?Œ¬ß?*æ/?žù?eæ?wÅì=Ãòk=jj´;å ?–˨?—(h?¹’?» +L?lw>ù('>UZ>>ÐÎ?xÙò?tm=ÂÙF= †¨>ä™>ü,Ê?xUý?lk&=Vl$?x?p¥S>÷÷°?ïÔ?@r]?4ä +? +§õ?±`?M/À?S?ð?êB?à2>÷›c>÷\>ö•w? …e?´Ÿä?§·¥>÷‰L>â¼=[èI?-¡?Zn?q¬?_\(?)!Ï?* E?wšª?u[O?eik?l37?rý¿?_>JÅ?°õà?§´?X ð?[v_?K?n˜=ö,{?…yK?€ Ç>G>bõM<ïñ>E²> +Ôæ>÷Vt>ÔFÐ=•Mh>ÛA?b!Ý?vå›?Ãìˆ?Ķà?”ïô?š™”?›Ý/?t¯>–‹2>Ý1v?E2?Ö=¹wr>Œˆ–?e>«?-¤µ;$Ë€>6 >ùÎë?$CR?yï@?‡ß?–-;?f©n>ú5R?õ‹?éSý>Óëm?z¢?¨¤x?ã]Ì?£\ý?Bk>”(ì:o”G>Œ¦Y?#J>{÷=Ê>'1>)—ˆ>Cp>Èæƒ>ûÂ>?ZŸ_?‰Ó?¢Äï?¥:à?\ö?FæH?$">üN?_Mz?z´/?³®›?º¥?$$â?‡)?/t?=¿u?=O?\ý©>˜P[>ž˜?}/|?pg|>Í®î>Ùô8?Cb­?Æ–>Ö>³>àÊ?]Ê>?ü²??êŽ*?Ç=}?ƒ¤á>ær?ŽB’?P¿>ÿG#?9Š?l°0?}”å?wý?x±?~¤÷?×Ä>¶X7?<(.?fµ9?zVy?~ø‘?z[y?~EX?¶Yº?»‰#?míè?Wîzøså>Òe6?;£Ó?]˜r?+ü}?.Ë)>¡Ô,>iö!?^ î?^"ð?)?$Ôà?E6˜?9‚µ=’ä>{ú«?‡k?c‚v?{!?."A?u*?Tr?.ÿ¾>ç!P> + p>€@>¥“&?c\Æ?²z?”SÊ?ˆœo>÷ð>D²Y>Ûy?µ"?QÚ?f‘3?°ô?¹¨B?¹¸?âN?la×?w$[?±f5?¥üê?ª?‹P?¦Ú?ƒ”s? ? +ª? ô?¡ƒ?)Íö?] ?ñ?VFÉ?/«?‹mæ?®6Ü?Hâó?äp?ð?˜ƒà?¥š}>ïÚÖ?íŒ?­Œ²?ŸgÛ?3l/?xPý?ëû?½…?;†×?HKð?a¼f?±²’@Ë•?ô!£?«cI?1l1>|:>ÁÖ? C°?˜=>?Á¼2?‘„ë?yÑ[?D?Iâq?!Ž¢?#?› Z?›•?€ã1?z³'?¨>â¹:>Fͬ?[!?€>¼vu>ßž{?&ku?F?€þ?˜t?¸iÚ?¦èØ?»æ?„1Œ?€ô…?€ôŽ?€ñï?‰¦{?‘ÊÇ?¶„?Áb?õÀL@èž?‘'©?€åÇ?7¸á?7ò½?Þ6ú?Þh‚?šŸã?‘ú¾?Ž}1?“"œ?—È?wÈB>¨%>Ûª?ž×b?¥Ã›?¬ªø?†Ð? «Ý?›‚£?þJ9@ €@ãÞ?nÂ=žqî?²ÒÍ@ñ|?“©&?cØË?“ ?¡c??*¬?I2ï?°žÜ?Á˜9?Üê™?Ü%S?×µ©?Æ4?€†à?s>Àoq>ô  ?€z?•XÉ?òZU?ìB?É=ü?Õ‘Ç@#¹?»¿x?_u?-Æ?o;?;l‰?P?@/ø?€GF>è ??€8*?ÒúØ@0i?¨ û?…g{?á³?‹ng?]­\?Vy´?²‹?Àj?‡X?€ž?í$?÷Û†=`’ <ÿå?ú‹ë?ïüf=–—>€!?°€i?“‡à>:~>¡DÃ?d«˜?‚{ ?¿–ï?¿Ä?¿‡ ?õïÊ@9bÑ@i\?¡p?’æF?vs¯?7¸e>Ìø??U‘v?mE?œ9ý?¨zœ?±ªÇ?ˆÃ³?YTÒ?¨’½?Ét)?¿¤S?½‘(?QÒà>ùf•>û'Ä>þ5ú@9=Î@k§?ýri?¾ß?‹ªÍ?}æƒ? +?˜>ý…à?wo±?ŠŸÉ?âDù?åöw?XÃÉ?6²"?*áº?o@ <õ@ ®@úÝ@¤º?}C§?~6Í?‹I§?‡÷7?jØ?\»z>>@J}?D°@Úà@žö?I­?œé @:@ú?HÜø?™Ò@ ±Ù?úO|?¥³s?ÁB0?û)“?ýpæ?ó©?ß\Æ?³5%?¿\÷?Ð?A?²Ï?>øw?y·?Õ>?¨¬>³U¿>¬éí>ú(H?_Í?öàa?×öÙ?yÓ¥?Œå?·ý?‹¹>|’n?ø?£èþ?œ¼Í?Mô?‰I?P‘?y¨>øÍæ?[Zh@V,?ïC×?ºUw?˜Ý‘>fÕ>á=b?¢Ìy?ž7é?§´?Ÿ¼›?…Ó?Ÿv„@+G@)œD@1!@ Ç?h¼[?l6û?o¯ß?s,Ý?v@?ª?òÝê?èó{>Z^>/¯*?ƒ¹7?…º’?ŸMî?œ~@7¥+@7´¹?'B>þ0?\¦¿?[²l?}mÝ?~à¢?’Žÿ?š/?†Gï?ƒi„?Î\ö?í÷ö@m@·?ðq®?Ôõ“?à£á?çÄq@ä2@ +ð†?â5æ?¶‰³?˜ù?oéß?r¾c?rò»?ŽhK?²y:?´à?¼ê ?¤¬½?7êÒ?åÄ@{)?éUó?,¢!?Ï +>¥Ç>»t\?µ b?´üE?› d?——?”µ*?ŽÿX?Ïõ ?Øè9?|6Ã?GD?‹¥]?š¦í@kç@(sp@‚ +?¾=¤?Ä!Þ?È«@?•:? +>¹Ûk;ð¦>Iºµ?l ?‚­ +?à+“?Û–\?îl’?îQ—?’E‚?‘§7?®Åù?²eâ?’Q?ŠåG??Ïå?¨Ž?¨Tö?í6’?ÝÎÖ?Ïîä?¹âf?—ô1?zŒ->ì“?Vc@\ò@ +1­?±©?°Âî>¿ö¬>ÂÈÜ?C?{Ø?[Ôt?r9'?h»Þ?jJ?ø€Ž@,M@)Ã?¦F0?–!a?{$?m±Ÿ?;_O?eYó?÷a[?ò5>羓>ò‹#?˯¶?êé«?¢ ¾?z¯>?jj +?i?–?nç?{çó?ÅÄ@!Ô^@x#@«ß@z+?Úq­?Üä@EÆ@M¸}?Ä á?õ6?†^¦?o^Ô?'5>è~Š>óL8>ó›[?;MH?¦úÃ?£ëÐ?™aé?”Ot?)bp?0X4?C±E?AN¯?y9ß?‰‚(?7.M>æqz?%¦j?fEw?Œà^?ÍU?À…E?GÕó?Aª@˜y@•`?/+?eŸp?69?„8?4h«>åWv?Žo@ N @ :@üþ@ ,)?álé?ß’5?ø8?ñ…?Ò¢ƒ?Ñ[±@~ì@þ5@/\@ €?ý¯«?dZ?]x±?-¶A?)ùu?Šö³?ŠDé?·]?¿{Ÿ?½˜f?»®M?«2?æ_?ˆâe?>ðy?_l?ªÁe?©þŸ?fÛ5?cÊ‘?æZ>êb$?Ùm…@íË?º5=–º?DhT?ôi‰?ØU«?‚¼!?ŠA‰@@„y?ð&?÷Û¡?þ’N?ósÝ?Ê6ý?¦ß)?yƒ¥?Ôè? , >`Ïã>uÈ ?w?rüÏ?)?…W«>Œ;;[a—?F)ž?«¾?ÃïÔ?âÙ&?ÔØ?ª" +?¸üc@1 @,?Q¡õ?B{?óâ@ Ã?U à>@Ô„>¿)"?=Ý?–xÔ?_³?®Ïæ?¦ ò@ýG@ʘ?¢Áš?~?(­ >ê ß>âÜ`>âØ0?i ß?ÑM•?ņµ?´uO?³‚?{Ï·?nb5?È`?ÍhH?±§_?ª20?˜b¦?‹Ð? ?Žù?’;O?ª6´?´‚?ê†Ü?í8>ã>ã‘?L‡Ÿ?`n9?ck?`©?+ñ?¤Q–?óô?xˆ¶?=ä>y‘>‘CŠ>‘Zl>Ÿv2?ɼÄ?ÇB?•G??’60?Ÿ&è?©Àÿ?¶k$?¸Rt?iø_>¾Éè>Ø»>òÙþ? Ho?béj?`äÎ?bß/?bÙç=û¿=¬Z?8í(?b¿@?1/"? Ýx>Ã9÷>qmS>Å ?"ÿÎ?!¬H?½?‰ó>â[°>âO¡>âAË>â2u=’$?mÊ?«b?!íd=â̈>®ô•?#a??.~è?9¡ª?H¡—?aN?_âì6% +? ~?Wl=@û<ÚÒÎ=úÈw>å¡?Ó"?B j?6¶<|kã=þ¯X>1=„>´@U>Þ:Í>žG3>*Ï&=Æ–¾? ª?~=î?5qP>žÞ>Wù}?s’¦?ƒ?Ëi×?ËP?í¼?éy>*“ÿ?4Íõ?<6É?Cœ>ø?§>ØE/?`"]?v.'?~X>Ë}Õ=£-p>Ö–Ó?ºZ>¹U>ŸjÇ>£ôŒ>K >{Ñ>Š^Ý>¼ô>¨3o=$2?Lpé?nû?Ñò>ú¨o=¿Ó?Jêû?Eˆn?Œµ?‘?“­?$P>x>Š'[>˜ZÄ>¶ Å?~”?‡§?$ é? ©%8²æ<ú…¶=á‰Z>ÔI->Íïÿ??×$>ør>ôr’>ï­†>ýàb>H`>”‘?¹Ð»?¹ÌÌ?¹Æ?®¿ò? О>åÅ(;©°=‹³>/>â*4?üÚÚ?ÚTý>£>»]_?w“D?~wÛ?žuo?šðƒ?N¿Œ?dÍ„?¤Çn?’Oø?Yj? N4>ùª‰>ùâÞ>æ2§>å”Ý?(vž?2Ò?¬è?6ñ‚?”’ ?‡œm>ué°>‘>Í?,7*?+ùè?UnÑ?9uz>[2Z?­ù^?—„­;‘ƒà><¤?]?D¶ ?h¿?0û?xÞK?[@Q=?ç?¢*F?ˆ™ >3€>¾Êß?‹Lo?z‹¨>ùw>ÄJh=‰I§;³\>—ÆO?jÔ?'†˜>f߀>§|€>úò?A9‡?„ï\?¤ [?Î\?„Q+>²›Ó?÷}?z²Ñ?Žkƒ?™ò¶?½Ã¡?ñ¤a?¸€¢?v˜§?/ì±>ûA%>ዦ>Ä»?œ Ü?Õ\y?CWÙ>‘hÈ?‹?9ÿS?~uš?†4œ?žË‰?¶U5?$M>…çT>ß’a>ü_üñb?q²)?ƒÐè?n=T?eLð>¤> å>¨õÝ>¯Ä?«!?œY?A¼Ð?GùÇ?N8†?‚Ê@Sc@Ä@s®?ÈÂC=£…»>ëå?¾]¦?¿ve?¾‚S?i°é>Üðz?~C ?,É£> Øa?5@ ?ƒì2?€B·?†Á¡?ƒï^?~·º?7O—?:ë?3%$?;…?cH¾?w +v?i¦?Cs?èÆ?ùU?"?U½?D{?8]d?S+?PÊ>Ös¸>ÙE.>‚úÔ>ÑÓì?h§?{¡þ?tFô?˜‰]?äöQ?¤Â„?Þ?8?|”ß?€$?‚.?1Í>|Ï4>fH >[—ô>«o´>²V?v?r?¾‰?%*Ã?!0?«ÅÑ?­G?ÈP?•ì?“Ù?„¢=—š2?w?M§g?üi-@ů@ZFÂ@Z?Xe? ÝŽ?—r?J".?‡PR?ÊŒ>FÆs>ÆFL?­>¨Ý>b)¹>ìd>¦³ô?^w?"ùm>׳v>ÓMz?gS?uLÜ?: ?ík?Àè?ËY?õÝ;?Â=)=¶»?!Ή?þó?Ôpê?—EË?`ž>Þœ›>ù•ª?ïg?ö¨ @NZ@8:@0s&?¼ g?<âÛ?Í£È?øaU?’¡ë?y‰§?4‹?†?âã?-›+=iæí>¨? +é?Š³?Á”¡?Æ’ñ?Ó®?ÊãÛ?Á›®?Ÿ±þ?>£X? +j>œ¨?/?sµ·?\d¶?cÿŠ?¬.u?ËŠ?†=–¿'?‘¼F?ÁeU?½Ó°?¶ ±?”Û?W?}R@?€„à??ií?H»Z?Á®=?¹Æ²?‹ÜQ?°Ä@!Ý@2Ì?ø?ªƒ‘?î•H?ºˆƒ?i¨9?Áí.@ÈÆ?È]Á??†Í^?…ëÙ?ÚúR@¥Ì?ÍÖö?»Ê¶?„¶?l–0?Ï ?Ò÷>ò¾ó>úú€?/I«?)_>`{>xçÑ>}P>Ø%?…Ô7?–£Á?Ø®?»bP?’'?‰è?³?Í?Ý?ÛW^@³L?Îi?€ý±?€üø?€ûI?€ùá?€÷ú>çd«>±Åì?‘q‰?¨ ³?=÷ˆ?1sÅ?ŠÐË?‰hZ?âƒÃ?Ú¸V?¬hè?²` ?Ÿ˜ø?€kª>µ2X>Ïé_?ÙJ>Í°>´c>yøÇ>§ÅJ?CÖG?¿É˜@q¹@Èš?ÝDr?•2@è•@œ}@0!@ ä¨?šâ¶?/ð?Àñ?ªƒ?l…‡?€¤ð?õ>C?ù‰p@ 4¬@ g@&Ó@'O?¦£ù?“Ëk>i` >Ÿ˜·?l¹[?q—?u†ö?¿vê@=f@.–?ƒ¸?ƒÒ?tú}?ò@Fñ7@ `ü?£=?Žõ9?€P_?ÊÃ?ôû +?§:?€@y@`@ hG?±bf?o·?¸DS?Ñ \?Y×?&À/?Î÷ª?Þ;‘?x!k?j}$?£Òˆ?¬å>6£­=ç.Ý?Š? =“?vB?ˆ”?ù ›?Ë…¶>È‚Ø?á©L?áå¦?ìf*?Ýtµ?¿“8?ëN@– @ Ó?ßÃÈ?·¤?†õ=?[¶×?ªþ?©^î?ûC°?”ʉ>þâÔ?Wm¬?‹@}?'5t>œì?Ýw@"áW?½dù?}õv?}Ë?xÜ´?¥­¬?±*Ý?ÜÜ‹?ôt=?söÏ?:‡?&5 +?$eÙ?+R‹?#3?¨ ì?­êƒ?£ìp>Ür?@<Þ?Qÿ_?²c>?©q/>ß>Ò—=d«f>‹&o?üq%?ë@ ?|m ?y6!?b”Ã?Vt½?P?`B·?_êi?v—ô?»ø +?¹ºZ?wÈý?•xÌ?û™\?Æ+„>†ÂS>Þw}?€«Å?–ãO?Ñlë?®“„>û?\QÖ?è<—?æo×?Ù¿»?çØ«@ äó@P½@Æÿ?é³Õ>ú9¼?$\í?zúØ?Ö2?¹K +?§?s?‚©|?ñ)?ÓªZ?ôy¨@'[F@ Ù?`Þ?–Zf?¦`¦?©‡Ç?°Ä\?ŸkM?Š9R?¿ôo@óÓ@*?i?Œÿä?ï[¿?ëØu?Ïû«?ä@®`@ +Üž?ÑCA?ÚV?î6 ?ÙS?(p´?‡4>÷Ã>öò >÷“Â?±“?ö¢×?õs ?Ú^Ð?ÓŠô4?e.œ?´le?ßí?}_†?¶¢L@â'?Ûy>ò]H?Q}p@á¡@ ü@8ÕÏ@*öd?½êó?°v?`0?fó{?´4i?´Ýï@^!@Tb@cT@?¦nF?j?¾eö?àºO?q¬à>ð +Ö?‰ÁÌ?Í#Q@…@+Õ3@ m?µZî?³¸Ø?²ùq?¡’¢?nïX?Š®õ?î¸ +?⚟?3a ?=‡U?$à?M™?6·Ý?@úD?“h?œdæ?€Î?m|?Àæ°?íCù?ÍĆ?±Èƒ?®7í?¦¡?‡a!?%?Šcß@,õÔ@(x?Ù¶a?ÏÐâ>rau>IQ?hLŸ?u˜%?¨æk?²X>ÑèÍ;Rð?°h[@•éÂ?Fg?ksš?˜.°?趺?â©f?ºqg?¸C"?y¸ž?uê >fž,= ¹¹?¬ÂŸ?çåV@9"¦@b @ZY?]aT?‚ ¿?­…~?¶^¬?Û$ï?Ö'ý?Ž- ?Š›¦?j(¤?fÊ¥?æÿ?×Xƒ?h2¢>æ{¨?C¸+?cì?ŽR7?•ô=?ªhð?øâ#?ôèb@NžÅ@Q:œ?®?(?‡÷?¾Í/?Øv¨?†(›?;e>ñ®ø>åa‰?P?çD›?â˜ì?±‚z?³JJ?ëÉþ?ð"?–>¿?7¯?²‰h?Ðzà?Öj?áa?ã’Û?Ïñ¾?»/?dIM?b´?Gl£?RžŽ?Á‘ì?ÑÜ:?È}0?Ǹ?¨ÉL?‡D¿??»c>\&6>ÍK¿?ªÉÃ?ªÁü?ª½?ªLp?l­¨?[Uß?êäý@.…?²Ý?4?Ü?“…?òþe?ߦ«?–í5?›ö?ú®_?üŸ ?ÏXS?ÄÖ@$Ù@/7@D=@9Ä?²ØZ>º¨A>à$l?Kì?X¿?›2b?Ÿ<î@3Põ@AŠ?²Z$?a¾S?õÚ@#ï@¨E?²oI?¤1u?{¯n?…WŽ?³©?»ðÁ?Au²?5=±?G¯?¤Æ8?ƒâq?KÄ+?‰Ì?±ç?žf?‚\ÿ?ž&C@*›@R;?ºÈä?¶o¡@Y@ +6]@!¿b@)§‰?ï|Ë?¡¯J?áþ@!ƒJ@ßÈ@…Z@ ðÇ?ª1ÿ?ª4@xb@§ì?g‘]?-s·?Ž÷?ªþâ‚=&Š«:§¸<ç” =†D?Ëâ?ÚI?w9Ž>\xl>ÁŸ?’û? T:>ã“>úBT?ªUS?¯?Ž?♳?Ú@3?5µâ>ã ]?ƒ}Ã?·Dn?XU6> #>¿}S?bö[?{ñ8?©[?™~=Èi> € ?¿?€X?fø?bü?b»ö?b¹ô?±>nFö>¶qÉ? hÓ?\K?ÒPd?²œ?¶¨?B‘>÷’t>ì•~=‰WË>°¹¼?þ%>nŸh>ø\Q?‰ò?Z¨>á|)?©‡?aR?^2‡>:6¬>#GH>é +>¦-Ö=»š<Ê´?<ÂN#?EÒ½?߶Ú?š× ="ïð>2ì?_s´?_Ln +>>~|6>‹?k>—A‘>SJè?{ø?[Cq?¢¹> =ùÏø?ðûå@lÇ@@@ ›¢?o{>ÐNy> Eû?·>>Õl>BØ>7§ì=ØÌ=/´M?Ç +?~Y®?&Ù}>à’û?@yÄ?_ØU?ŸóM?¤MN?_|–?An«>¦Ah>Q‰×?{A?0V¹=´`º?[è?ň>ý½>>ú1<Ÿt6?¥ð?¡:?"¼Ð?&ûñ< U>i]>l7?/³å? _ï?º®Á?¹Óü?²Î´?¨~|<Óº=±M7?aÔ™?Z½?S°.?D(>ø +ê>úË>îXà>ÖÂl>÷ÞJ?1ü?š?¢r +?°ÝG?µa?»Ê”?ªè>í†? „h?$¤?•B¸?¬þ÷?·´?±æV?Q?7ôc?\äy?ÆÚÙ?®L? @×?IÅÕ@õó@œö?µ%ñ?¯Â¹?w d?€ô?¬œ¦?2)=ÕéE>Ý> ÀÖ>ûq˜@hÐ?ñ„š?°L? ¸v?‘ó®?Š"$?WF€?1!>ˆž>¦d@5?n‰Á?fâù?x°Ó?s ³?YQo?H„9?)%Y?a ?ÎíF?¶Öh>ù(›?Œk?%ˆ?HŸ>[4â>…Ž£>ù„·?GN©?ºpJ?’*>ë5Å>óa_?@€>Á–K>¹Ô ?s‚»?ªWx?òà?¼n?RO¾?we¶?‹ø?Ì +Ý@%@?²,?‹×?¤@U?ô ´?ŠÁ}>ûPÏ>„>1$?̤N@?N?­q?BBC?ž¾X?µ¸? 2?¥®ý?(Ÿc>·ˆØ?Š¬ ?«3Ù?A¨Å?«ý?kÆã?yË$?{òÓ?|³o?|ÉK?|ÚN?ŠŸ­?‚H@?·O¿?«»M?—¶£? Âd?’B¸?}°Ò>ýs‰?"Ó¾?g?½¼@‘M@Ýï?}Ô?UÊq??F?9Î×?†1å?wÞ?Iÿ?˜“ú?ב?±^?‹á5?¥à ?¾ì5?ƒX?3dš?E<Ê?VÉÿ?°Ö˜?ÔûG?æ9ê?ï¶?;}D>÷M?mÊ?{<€?ˆË?¡J=ë> +…—?x˜?tºÊ>ÿ”?;²? KU?©#?iS¹?7b5>º#B?3ó?ËϦ?¯jI?i?E}? Xö?y?-™?§õ?ø,0?É>ØË–>Í1>Á›_>Pº >,*ñ?´(?ÀwR?àÄD?Ý‘É?éïú?ôù¨?aC¾?TSô?¯ín?¡Y=°å>–? ¾?§?F–?1Ÿ"?•V?S=9¤?HϹ?ÒÌ?ÆK?Àû^?VÑ>–MY>ÕŸ +?µ€?y»?e>„?ñ†?D¥>3Ô+=šòù>÷”¬?Ôj?Ö9?"? ôè?NZ@à2?ëÇð?™…?›^?¹.¿?‹!`>ÁÍ7>ù}ë? 3ð?5Í?øR?cÛ&?¢(¯?NÞ›ï?€ƒ?§/ü?¤«å?ª(Ã?.A€?äž@{»@?‚¨¸?p<ê>Ý­¾? Ì?³.,?«J0?”ÐÜ?ˆ—æ?Hk?ˆü?Á¨J?WØ?H2.?ÂM>>8§?¦¸@“Ú?¢û$>ÌÝŽ?¦p?éÏœ?¤–?„ ?ƒ ?ƒ?uú?†ÃD?twù?lÇ@ ˆ'@ ?&Ë?:à–?˜²ï?›h>>4  @ÑA@(»Þ?~ÁI?iŒm?5ž·?*¯Ó?Pª?Eîœ? „ö?Q?yì?ì_?Þ2û@óå@7zA@¾å?“O,?‰ª+?lçÎ?q³m?v>>ñœ<Áî1?ÆÍ??0¹?ã ?í…×@µÕ?‡Äõ?@>?wÒ?€ùà?V}3?N&z?p=*?†€Š@¸c@Íg?6ª$?hM¢?ÿ«è?Ó D>Œc>Ä°&?47?Q+?‰"Æ@P–@s[@ï?Ö?MX?Œ£Â@iô@0$w?ê:?µ[?‘;(?†Øí?¥ê?ªîe?ÕÂO?×ú?P>ùIY@ ºŒ@÷?óÃ?ö›a?–’x?šß?Þ2^?Ý—‘?´¾8?•%>Þ¦'>íF?…?E{?Øk?]Hµ?½ž5?£Ëƒ?€oì?—?»‹?_m?AH?j?>¤3?–¸†?ã¸G?¥zš?€Gœ?ï‡Ý@bø?¯íG?‹›Ä?9%_?(O?œ%é?£¾3@•ò@ #Ê?¥Õ¯?ŠU>=ßQ=ècÏ@¨@OV?¿¨Ë?¦kr=}¯D><Åk?0Ñø?!²>›Ÿ'? Ñ7?ÌHc@iü@—Á@ç²@¡*@1Í@ÿ7ƒ>²¶Ÿ>4Æ?§ÆN@G?®9>þðö?“MÏ?É|á?þgt@Ÿ*@Cë@\†?„(ˆ;Îô€?=ˆ?~sá>°õV>Fð–?ÉIï?ñóf@›‹?üœÏ?͆-?ÁTz?@¢`?/Rž?ÎQ ?Úv8?Êä>úñÿ?•bÕ?‘,,?1§k?2z?©»?§("?¨ò4?–ç>Û@Ú>ÔÍK?ibÛ?SPð==¬ù>t—?t„?‡§£?½ÞM?´ +?|{Ñ?|m?|ZŒ?‡8Æ?¥™°?¤Ôµ?­y?²S8?ÁÈ?¼è?¼ÙP?¹Cû?³ºz?•ð>û•?D?‡?°V%?˜ØÒ?`7?Xm+?PÛ@?€5Q?¼,O?Ú¤@bÂ?ìˆÚ?z› ?œ¾?âïƒ?³Æ?Å?{öj?ù¤?ºß¸? ¸Å?!R? žË?>Ê"?’á€?žûÜ?·€é?©k/?yCl?¸k"@Üw@Ö½?¯«Û?‡ðµ>ƒØ¸?‚o6@<-@&û?†óƒ?€]‹?L ?Yÿ?x˜?™|’?÷Ø?Üÿ¯?kÅY?q§+?ªd?įx@…c@|÷>ù ? ®?sÏ?¼@¢—@¿&@J¼R@?j¨?“º?–&É?›¿i?§ÏJ?ö!É?õÈ{?¯½™?·Ön@š @þµ?Ä·³?´”¨?µâ¢?·ºÎ@õ"@ùÌ?ÁX…? Á@,¾@Ì,?¢}?Cl ? -õ?¿¬@5u@H'l?òwü?s~R?sb?rË?•àˆ?¶Ko?ËV?äæý?ÄÉ?˜“½?‰Ý?š ?¢–¡?ÆôO?×£@¼@M:?å¤C?á­œ?{ûØ?s Š?t–ù?{^„@8 @–‰?æQ +?Üš?Î7Í?Î +?Çq®?ÂÔ?˜Bv?ta×?] >]Ÿn?IÿÎ?°<?Ì&C?ï*@ ë!@1ß@³7?nù§?„by?»|ÿ?©u¼=¼ûû>áZ?íë?æÃ?’hÿ?‰Ý¸?-ò?1ý?XÿO?mˆÑ?Äßð?íNI?Û%ž?Ë;‹?¸Ë•?ªó/?šì?l®?Šª?Àr?Ò¬"@¨á@9×?¹A¢?·vP?µªÜ?³âd?ãèS?ëM?¿1?ªÕ¥?öbb@é?Ç“?Ym…?™Ç‹?Þ…T?ÌÏ? Js?±ßH@í@œ ?÷Æ +?ô<@=¨f@@vV@{P@ö@?¹ÇE?‚C?‰\D?ŒJ°?(à>4D?OÐ?Û5­?âéÊ?ü´Ö?ö9{?®K¿?®7ñ?®'_?®À?Ú­k?çís?¦ˆñ?‰šì?06?¦”?¹‡«?ÜÍ«?Ó´?»Šd?¸µ™?…'E?†Ü·?%‡?!+»?Á2—?áËT?lJÔ>æ„P?fèÆ?¬Äg?° Ø?°Çâ?ÓCô@8Re@7¸º@´ÿ@§Ø?â?ݶ´?ˆf?\Ê~?²É¹?ãP?Ëx¨?ª”»?Ú &@'‘@!œQ@6¥@Wõ?Š¼È?AÙ?àcÊ?ê¿Ã?ØO?Ïé«?ž¬?d†¼?Žs ?ƆZ?ºY?dT®?f3?Wfv?D¡„?‘Ñ?›(?ˆ!ù?|Hv?¶; ?ãê?Ú/]?Ñ•g?Ì·Ò?©G5?ªÈP?ªÃÆ?ª¹?põ>ývA?q$Þ?¶²?´À¸?Ç?Ðô?ã_¼?Þ*k?Í`?Íš4?ãGª?ãB„?Ì*Š?Ðèü?³7}?²ŸØ?Ž¢'?cz?˜".?Ävâ? BY?½­? +a|>ãX>âÿÄ==°+@¾@@!?ÝÆ©?Œh2?‡¡y?xžz?=Ç–>oàr>ÒË?—D?”ß?c Ü?bäc?e½?]°Ù?«.ð?Ìò?˲Ê?Ñ`L?Î"W?¸ju?»?ÇþÍ?ÄÚö@1@ +\s?(V>âòà>‹—=ù„?‹¬?Ûä‹?Ñì?Ì‹`?»Ä+?ˆU½?‘±X?…áé?ˆ&Ï?º™­MÍ>Ç«è>ãG>ë}?0~?5m^@5@%˜?>Ý >¯²x>Ž +\>;D>?;c?§…d?”{†?bù@?‹Û?ÞžW?ÔÙ6?½C?…õC?¨fS?ª D>úŽ>´->ÉK>Þ=>VŽ‘>q>‘Ùl?ú‡?R?—¨ì?SŽ’?Yß?bGB?b9?>þsK>Ö„%?8,n?Q%è?¶I>©î¦?!Õ!?„fŠ?ƒ+_?m‡‹?br¡?aU?]É{>áß>á‰>sÃ=±î¼<•öN>Š…n>àï9>€7„=´;(>np‚>¼øñ>Ú1?_v…?_M!;ký?Lã?ü¾>7~<âœh=z?Í=•™>žÀ>‚‡,>"d?z×¼?†h?<ÿ§?N‚è?n/? Šµ?zV&?F›þ?¶È>¡BS=bÑ?=­ú¬>Ñ;>þè>A×8=I8=j¡Ð=˜5 +>ë*? m?gzø?ˆ?¥?ÃF>ý‘w?.Út?-üŒ>a.ð>äˆ=ÎöÏ=”J?vÖ?~Ñ$?zDÊ?t^É?_É??O @=ÞvŒ> Qj>)±>>ì=1º?2‚5?8k;?½ßÉ?Ã4ø?”Öˆ?šL8?b«ò?…c?÷Ú¹?ÒÇØ=‹?—??Åê?ÏFÎ?Ŧ?¥½ +?Ž¶û? ¨÷? Î?Nbq?E*(?MÛJ?@%'?jSž?‰ê/?ö\?ãâì?mõ?LÛ¾> +²>ȼ›?!7?Aº?®ÃR?óy>0>ù 2?Úg6?Ö§9?w´v?k…Í? ºš?!°?n?…ák?·Ãh?™°Ë>T’›>»Û?9“ä?[ÿ>ž½Ò? KP?ð'ÿ?ò;Ó?ÌöÑ?Ç2?~…ô?˜d?Þa?ãP +?ån÷?Ê Ó>ù¤‚?ˆÃ?x£?`¥Ì??´e? Tø?5Œ>øùÒ>ùÓ>ù;? IÓ?-Ĩ?'j©?1++?F¡?bnò?Oæ8?¿?+U9?yÿ?(éY=:ùø>¼Ð•?aOV?+? >®Í»>Cëô>¡ðê?:Öé?Ltî?^Ø?Y>²Á?hY'?¼?ƒ°ý?(¹?ƒ›ó?¼$J?._‰>.SÌ>!=½)?ÖS?2Áë?}¦|?¡p?¤En?òß?Ž]h?”õÑ>ånî>—ø?{¥r?¢Ù£?%`ä>ü^?Ö‚¦?ú8?ŒûV?|¢¦?|µ÷?|Ä?|Ùõ?|·ž?JÖç?Xù½?‹d ?‹Î>|¿>×qb?ÊMI?¼œæ?%V?m5@nc@O‚@‹?þr?{ë?}?T?wÅ?‘IC?µ[2?œ~?~B¿?¦µd?ÔA3?Œß3?%T‚?”r·?¾÷™?†MZ?Nƾ?6ª„?#Q”?2Êá?/.õ?ƒk˜?‹]Õ>E¥u;+aK?bŒ[?I•?µ å?µ[†>Í÷ >ãùâ?Ù˜Ò?Ñ\r?´ß»?¶w ?ãž?Ü*y?䬧?ʲÔ?ìç?láï?=’?1Öz?&‰?>úx?qŒð?ŸT?¿A ?1v>A’p>Òó +?9 ?D]V?]&«?8x?"¤è?[š?uy ?œØõ?¯L.?T×?—àñ?À’ð?¼Zº?€vÈ?m([>Ü´H?*®?€ˆ?‘-”?¿°|?»µ;?ºÏ“?°›1?³ä?°€?Òc?á9Ã?êUº?œr[?H®? S?¾?·Õ?éu?nC£?q”><è =ÕêA>ï&÷?Õ‹?ÝÖ?Ò?x¼?+¦"?õ^}?Ò4]?:½„?^}]? ?›¢”?¬Ñ?ˆ6÷?¬Ó?CeÙ?€ü?^ö?8>ÍØð>1&ã?Xæ?  Ÿ?Lvh?Æ#>g6œ=¿üv?U' ?5?2µ?Ã@xä@\¹?le?`àß?Aöô?WD?9?hg?Ö?0úf?€­?kL@?7­I?t??%Û?‡š?? >¾¤ =¹Í[?â»?'±ù?¡r?Àg@í@X?D¯š?Ý·?|}ç?‚j?ßÛ?×áU?.¸?Ò?3²??8Ʀ?=ÛU?eŸè?˜$?³]Þ?úŽ?Õÿ?”DJ?‚Þ?f9¶?èƒ?Š:œ?·¨?Íì?Á‰.?Á¿Ú?íŽo?õžŠ?¹Áä?¦'y?"ñ?) Ñ?¸o?œ·?×4ø?É' ?5ý?bø?äßT?ѧÝ?¥Q:?“(?0ð?–*t@¼?“ð>¥ÅI>Â`­?,?T_?5 ?ŽÝw?Á’@?¿¼ã?½Ìo?®i?pü?Ág—?Ü%Š?‘?[>ÇÕ‹>¶_?£¦t?¤éM?FS?Yæ­@=K?ôA—?OS|?Sø}?X ×?†ýî?ð÷?¦‰¼?²„?­Uj?¬Œ%?«¯Í?–w?·@@å¼@ó=♬>HÆ??Œo?*¸‚?€ ?—®š?À½Ü?Ö?;?îðV?„v¶>UÂ,??]c€? é”>¨‰? Žæ?5 ?sù?¡ÆÃ?‰³>?†½?º/é?¼e[>oÏ/?°“?Ïw’@‚²@ @‰5Ó@Š`È? m ?¼ ?Á„¼?À™?À +?¾A¾?¯‡è?ª¾/?¬” ?±Ñ-?Èr»?¡ ¼?#ÜN?2›Ê?]~€?•§‹?Πb?î^õ@ g?½M°>Ꙅ?)À?2 œ?EÔ‹?TÞ?}’þ?Ž>?Qu?Z7?§Ò@?äRp?…à¿?A?ôÀ9@1À?² ?w/>‰@/=¹Tª>¾%²>×6¢@ =@0î?4×?†žÂ?òì?þ›?ûç>ýõÓ?gQ%?us!?9U?*ô?©À-?°ïØ?®²>?¬?j?Õaõ?ãÌ}@5`@3pm?ñY?ÞÕk?Å?]õ>üô˜>Ó~l;™Óó>BÀ?½z?—ú4=´©R>ѵP?³Ôá?´¥î?½4¡?Éx?ëå?Ö5¢?§Ôï?¥Ù?–Ÿ`?”Œ?{³ÿ?}1?xbh?šÁà?é®?÷j¹@Ù-?æh7?¼Uß?¶Eg?¬©@?¸T?ÇéÜ?½s?¥°ë?Qyò=‹+?¶?»¿6?»ÌÙ?½*ª?Ó˜>ùÿ >©‰'=Ž¨N>…“ë?N?€iž?Ù?ÅY?§p?íí7@:߯@é£?¡À?µRê?œo1?Ê{×@aV@çÎ?¶©?’²“?%Ï?:!X?x;?‘LI?Ð/„?òê@&…@ #Œ>÷‚ó?1>º?¹};?­Uƒ?wÃ?;¨?ð®t?æØÕ?Æm6?¾­8?v‘?€=8?»¤?%ŸÇ?•ÿw?]W?wøš?‚Öñ`U>ñ=Ë?Õ·r?Ú”m?’\?Ž¡¯?™Ýü?—Zƒ?гA?äFÞ@ÿó@84h@?ê·?±o +?zCp?”Åï?³Æ?äY@6%?奢? p?#˜?•Ò?Œk?¸:Y?²5·?Ô¿Ë?Ø„@9Iå@6Çú?‰o*?K¹ø?¤šµ?³Ë?Úx?í[o?Þ#S?Õˆé?”Yð?Ëx?-˜?KDù?˜å@‡?óVE?±6+?·\œ?òw$?ð €?èÝ›?ê}@¦•@«?ŸÀ=?r˲?Ȇo?òE"?å”?Õ´P?ÜêÏ?ê±@]%@±·@ +ï#?Ùw¯?Üͪ?à%N?ã›@ü@!C™@ +ó@9›?¯f?‘2¾?ºCá?Ù;.?ªðÒ?Nùˆ?nxã?£E?ɹ @.u£@(YZ?®SÉ?®@Q?®1=?® ¸?€n[?p†?l†?gÌ ?Çѳ@¢î?Ù (?+?¸’ÿ@@@™Ë?g{?g Ù@»d?þh?¸å¿?­ X?ƒô¨?YØ{?`k?¬Ì¼?É¡ +?úÖ¡?ö]?äµ?îï­@ +…@ +ðp?«¥â?¦o?.î>÷°õ>éÔ>冨?cj-?¬?°ôãÞÌ?#»‚@ B¼@ O?ÒÊŸ?É~?§ãÜ?úã?®" +?»*2?«Òˆ?ššÈ?¼R©@ì8?ò#7?­ ?“–q?‹o¤?ˆ:v?9ØØ?=?A}õ?c% ?ÂCà@ ñk?ö?£»{?™0?Ì >ðjš?à±.?Þ«?éX¢?ò†?¿GÖ? òr?ˆ@$?bóV?Mi?©ÏŒu>àn?±Ûz?ž¹?‘®Ö?Ïö?K°?BT?‚Õ%?âå…?ú´‘@&‰À@"×?°³?«¯ö?Þ?àD?…Ó“?MˆÔ?’ûß?³ù?ˆŽ·?*cÐ?O >âøè?ý›?´…Ï?¯ù ?Ž…Š?Œ3Ö?¥-Ï?ª?v?ª@?ªE~?š¿?|J?Xq7>Â->˜^@> l?ªNK?ªþ?Õ +1?Í‘4?ä ®?í?T?°UÊ?Œ_ß?9üp>íÏ^?ºõ?RM>ÏÁà>lψ>œi ?J|Y?@‰à>éo>ãß=ª‡i?[´P?¥š?‰ãW?b¹)?‡¤V?§Üé?Ž"]?Œ?+Œ¼?$03?.‘æ?¨ÁD?ª"8>VW×=Íi˜>"l@?òß?€<?mpA?Os¢?H¡Å?‹ñ>ñm?bJ?b<3>Àû=I-Ä?r„#?«Ô? ù2> 0P>nï˜>¸Q>ñ «?+Ñš?9Úf?5Gp?7Â>á!>á 1>»g¨>Â_<=ÅÛô?µe?^üì?%”'>Æ}Á>ÇMo>ßÅÒ>Ð1>‘¸#>¨ùD?_8?FÖ +>·ív>QÐ=Tqf>eÊ>Ìï>®?Îñ?$lG>Ìh>ŠöW>ÊD8Ðvx@\v@IU`?pzz?hWï?`9š?X;?e æ?6ž>‚vû>,»>ˆ +ˆ>ÿ}?›B?×>û±N>íq1>ãç>¼ï‘>ýXc>{ùS>TME>v>iÀ?arx?|? +]_>ûžö>ûpÚ>û?û?­•;?»!0?÷‘?>Â>Cƒ(<‘XD>œ‡<>Ž>FM>‡”[?GñŠ?K$ ?°…?öØ;²/ñ<ÔgM>Ò?~ã8?vé¢>Õú>ë†_?YÅ?VÄò?‚ +T?Œ…?–þË?‚ºñ?—a&?Õ~$?Å\[?ñ¼>Ò.e<ˆ,°>‚@K?w½l?‰{“?¿Û@?¥ÞŸ?N ý?BÃ?35E?Üy=±i;>÷¸ò? C¡?\&!?vD?«ÏÌ?’ó¨<šf=ÚÞ? 9*?%,¯?K« ?%´Ì>Žf>שb?Gý?K¹4?x!A?iÁ?,Xß?‰L>Ñgm>ÛAR?M:5?Gxj?‰!?Ù~?wl°?•Sè?êÕz?È'?]´?‚Ÿ&?¼tO?‰œN>Uùï>¿æ?6ye?E¬c?yD÷?CÌ+>}Ô">Ã}¹?4Ń?fÖ;?¸gÒ?b*>ÿß'?Qze?£Z©?xµ?:?Â>ú+€>ÐRa>Œb±?.DZ?™ã>?Ë æ?þ§ö?‡`#=ý+—?4?©Q_?¯Ã¿?¶7@?jrŸ?ü>fÇÒ>ýì?C†M?.?¨W7?u¿?FR ?f‚s? F?cŒŸ?<ö4?Ó·>ü& >ü5ü>üIk>â|‹>é[H>û>þJÜ?ѱ? ¤=?®Ž +?±¹•>‚J,>”+2>ý Ñ?Î?†ë?tß*>íõ>ï?N‰?c`T?œ?¨ÆŠ@K¦@3:?Ã]‰?˜ Æ>þ1«?ƒþ?ó­4?®¦.?,e¼?+©?"¹?=)Ü?]WÝ?Árö?î,ˆ?“r›?V,§?#s>þË™?>ƒä?_×?˜ø˜?«xª?ê0e?ûý’w?ä? Р?»W?½+y>ÿ€?Qœ?Ô°³?Ò€!?µº?Ǥ@Ì"?ü­?ÙY?¯N›?2Ô,?Œõþ?Úå€?È´H?¸•.?G„ÕŠ '?ê$?FGm?`Xð?ÙЕ@¢=?¤]V?€Lƒ>þÐ>Ë“?™>O?›‚'?œÞr?g>É?K)Õ=eKû>bõ?‚¡?’ºU?Àç"?„.Ò>?¼ƒ?‹?ŽN•?u ?Má?¼Öú@·Ï?É`Æ?¢‘=??aK?Æ??NÝ}?z‡Õ?Ù_Æ?ð“I?G¥…?áº?Zá?‡?÷é*?ûUf?À³?«Ô ?$ÑÂ?@0?jí ?m€}?€÷/?‡Ô“?—iË?»2?~?F?Ä?c[ç?N‹?ˆV'?‘í?^Ïý?<æ4?\`Á?nû|?c}?Š>Î:À©À<„×ä=Díß?<ˆ?Uª-?"??•¾È?úé`?×”R?'c?U\>ä`¾>ûÓ?+a? ¨š?OI?£¸?¦n?|m=ñÆ>¶‰K?0Ì?¹˜5?ôDÛ?Ÿì7?x +? ¾\? }x?àV|?ç>g?ƒ®ý?¨?‘ö@?‡y?V·Å?QœU?L†?XEÎ?Á‰?œÂ7?æè³?¹?Uƒ?‰Â$?°d‘?qtÖ?5_?’?³é@7â@:–~?a*{<¶`?š=]?DZB?J¯?,‘V>ÜÕÂ>Ã:ß>×äÍ?/S?ØíÊ?Ì,Í?+@?yì?¤Â_?˜¼??L‰?KaS?— K?¤È_?Á¶Ä?Dz¤?Íé­?ˆt=??ª‡¿@±?ÚÂE?Á¤ð?˜q?†x«?¬¼?·vy?•±B?ôô?¬*ð?­ñó?ƒ:Â?pþ¶?šD +?¢1­?äRE?Ú ?Á*?¬÷?üÞ?Jg?MAè?)¨@`î?ë" +?ð"? GŽ?”:?F,?ˆº?¢óª?ÃÏ^?É·?ÏoN?»vÃ?©þä?È€ƒ?Ñ?`Êé?*Bb?‡ôž?Ž«?¹¨û?Á#h?W9? j?á+?€ä§?£çð?¥[Ô?5¼¸?_›™?Ïmµ?çj@,ðb@¬+?†+m?`ÈÈ?â)>¦Æ<Þê°>êœÌ?†¨?¦tÃ?ËB?˜˜+?Ej®?¦µ”?Úiò?”h¬?Q¬F?L%?_„?%SÒ?A.Ú>Ë>‘úó@ +ñ½@)??*Z*>˜› ?7ë&?;lHú?æ ?TÚ´?¿òƒ?¶›?ž˜1?„Pz>ÿÄÝ?+Ìj?qªV?48>Þ;-?häÆ?¿£-?“Œ ?G» ?€{?—eJ?”Èk?˜0‹?Å*?ÞmÑ?™­O?h)?<Ëß?o?ÄfÃ?û‰A@2l@3?zDê?ÜÌ?Ç…Í?ár„?4X>þrü?ÏX7?웸?y=?W¶ä?Ë_€?ÕÑä?9>þ0?ƒ@ç?€™?s T?bÉŒ?h…4?mñÒ?ç# ?Þ˜?Xhº?`$?}^½?ƒ±ü?¨€«?¯E?½×^?§ø?cÂ?]ä>ü±A?iš¹@§V@&°?_ÿÊ?Jùq?**?Mh?Œùo?†Jî?mÊÂ?–å]?Ï:!?¿ ™?¢¸3?‰¶s?9Øc?>¸?Jƒ ?v}ò?—q?½û@‹A?ß3À?†ó?˜µ}?§¥»?¶„u?ÛöŸ@¸ó@NA@›Z?€?–X?»É?ì Å@O(?Ï¥ô>ú Ñ>ëî>>Є>f$=âz?2O3?Ìó7?¶ž£?’?Ì)´@±É60?«?ƒñm?f3N? §í??®¿?·Ä´?¹o?¸=Ñ?ÏÄ@æ@r¤?î„?ñ¤Ö@yÌ?êÊÄ?W¦·?Zy³?Žî?“J.?²¯?¬4ò?®Ì˜?±« +?5ûa?9-Ê?É·ì?Â]Ú?ðû?õÎ?ÞÑ?ã÷­?+c[>ô¨ì?|‹·?‘à­?°!N?·-6?±Øæ?±ŽN?[ŒÚ? š€?J¬ë?sšP?œ¶ö?³* ?–&ø?€k‡?Æa¢@íN@Ý‹?íº?ùK”@ÝF?×ÛW?rM#?=>@Ò >µÜ‘?qÛN?yÕ?—ÇÓ?’?è>ñmK>úŒ?Ë^.?ÉŽì?°ž2?£ô[?®m¦?¹NT?¶Æ=?´Næ?+¡9>Ôy¨?…çÕ?°}^?øü@·¾@$š“@1!ê@_½?†ð?‚IÞ?^?F ?Lñ?,J-?–S?§©@¥ô@ÂH@"êï@&É ?à·?Ò‘³@ 5N@Š +?üB—?ífw?¹-I?œ?¨ò ?­–è?‡”[?2Š?®øó@1g¨@þ.?±?Ñ?¼ÐÝ@ +bA@ ÃŒ?°ì`?°Ù?­Ÿ?%?Y¨ß?k[¨?8Î?+Éš?’pÙ?¼¬p?Òõe?ê»ê?öâë@˜f?ým’?¯¿|?§Å?]Ú?dÄF?’…?”D)?Ȭž?Òà?o +¡?!?-À×?7+à?é?ο]?¸1Þ?‡º ?³Lž@(Uµ@ ó(?¦cÿ?«“‡?®9?®(b?¬Ø?©âÝ?ƒÆf?gغ?ºPb?òÍu?½ý·?gu?†A6?¼VÃ?¸lÃ?g'D?g*?ðqÐ?ú`l?ëí¦?ãf2?…JW?LdÕ?v‡?¬Õ?¬È‹?¬´b?•sž?&I–?CEp?æ9?åí+?C|?t݃?¡KU?«íŸ?…ÚÔ?bÅL?ŽÔ¹?¬ ­?™í¿?v‹?uη?e k?n@?Å-?Á]ˆ?QÆP?9çt?¯,1?Ë’º?×tz?å*Ï?îvK?í›?àÒf?ßh?ß8?«<£?«0ä?Qî¾?Mc_?Ðé?ë©Û?•Õ?êo?9Á>æ¢->ãÛ>ãÒ?èü?é'Ù?ë§?‡x?ˆ'%?Ș?ÔŒ.?…­ú?=uø?vC?“Â'?•/?£Ø$?§‚Ý?‡Gü?Ve?¿¤6?¾¥,?ÜŠû?ã9»?—¼ö?c.3?Â@ áP?Þ  ?cÝ?¢½£@FEÜ@E·@ "¹@ Ï@ ¼@ + +ä?Šr? ÌC?“Ê?Ãj?Ìø:?ßO¬?ÍO?™ù,?‘ "?)-ø?zu?Ñ œ?âì/?ƒÅN?7µ|?o’b?‹þ??¨ý_?Ù÷ø?ê|Ó@ ‡¤@ ‰Ã@ oÖ@ Êl?æP>?âïv?‰û?bñ«?p>£?|Ü?™€À?¯üÎ?…Y©>âý¶? ”D?†Êc?ÎP?Þ›¾?Ú +®?°¡?ªBó?ªDj?ªKI?a¢×?•Û>» H>uJ=™¶œ<´%¸=^$ˆ>쑱>ÿ²?Ùÿ?#?¥=?·t?¯Ç?ªU?ˆ¸‘?KÈA?›Y>ݬD?¦?Û1??ƒöò?ˆïR?a¥?íT>'<=T¿˜? ?_çø?$vB>åA5?&3?n7?Oc¯>âöþ>ú,Ñ?C0Ä?> +=?©È ?ª%¥>Ȉ>]³2>«ïŒ>³%Ä>šŸ™>ž†T?-p?’¨¹?¢o?œ?(J?§Oz?£ñÕ<±¥@=„có<»>fÁ*>¶Ÿ°>Å\=÷¬µ>oóº>]!=²LG>á\.>áA +>á%í>á Ü=h<†>à=‚V@=¦=ŸRb=ΓÏ=ýï=÷»„>›®Ä>ÞH÷>t&=SêÖ<â—M;¥@>í‚1?µ?()?+¢t>àË>DÁK=öTî<6r?1¡1?Wk?Qn? á¯>›èå>úqÁ?KÉU>ýL¸=«­!>.’i=•ÚM>Žý;>ÿ~;?I]Y?~c—?¥V/?±ò@>¾|?(##?R´ä>ÇÀ>Šq>€Ø>M„?@¼?TÌ>?Þó>û¡×>Ú¸>ç°;×EÜ< 5Ë>úÁ¶>ñŸ§<±ñÆ>°Í>œ* >L4v>”L?8Aè?%¦©>ŸH>çS?›T?‚X=ƒÈe=ÒOª>øÊß>Ó_+=pÅô>/‡N>ø}g?;µ?áÂ?-@à?F…¥?'·Ù>~Õ >†aø>9€í>˜>¼¯>y¢D?FŒ?9´?s.†?_¢Í>î= >ë#€?uË? ݺ?S¯?-çà?w¿ƒ?Q >o×>—D3>ÉÒ>¾D—>÷Ãß?³‘?Ï?hä>ä…}?Eûw?ö ]?Çì`>÷ìÕ?Nç?wû?Bˆ.>Ñî?å÷¹?¸Õ?¸$?)®?xD+?Š¥8?ºD,?’ÿÈ> Ò‰>œJß?xŠ?x–¶?x¡Ñ?bË%?3 ?S(z?xØØ?_K?2­s?â>e¹æ?C¢O?;Ø?(_}?@)r?^ ?–Rï?ä +?ŧ?{J†?À +@À ?¸

t«‰>fʼ>| >Þ¸é?Kã§? ú>m'±?Q‘1?»à-?ö#™@Ö*?¶]%>Ä ?1j?—C?ñ>ûá?‡ ?µ­Ÿ? +S?®Ë’@Ú@8´@ú?³¡z?{Ç?M³?5’"?Šk?¦Õ?J§q?‹L?IB? D=íhY<ª£>á8[>üž >ü²n>ü“?†ªM?Œr?9(?)Íy>ý…?øb?tí«?€xÑ?}^!?`×a>§ú#?žƒ?¾:f?¡W?E?qc¸?ø Õ?½ —>þ±? +˜ø?*­ä? Ð:>þC‡>¥uƒ>è|?YÃ?KZP?ž}W?ݪ^?X·¢>O—Ž?…"?'Ce? $W>þù´>ÿ Ç>ÿ¡?¡}Ø?»¡R?¿EÕ?»FÒ?}("?o@5>ˆP>­0;>ÿh?s3?[ˬ?kR?ÅÂ?r¹ö?Q2û?wT«?£$¨?‚oâ>Š•¾?d0±@vô?ÕÞ0?…µÐ?½Â?à·?šl ?€Tã>äܾ>“02?Z>®?„«Ö?½\æ?À«µ?”ï?–P0?!âÑ?%}ë?XSÛ?>ä? 05?KØØ?Á¹?­K´?„Øž?TPQ>ÙÊ ?*»?€±?n¨1?WE?¨˜Ô?ÛðV? Z:??Ò?+Z?ÍÕ?-â]?&`l?€R?“•¨?ZÅ?[ýµÖ>ó‰>þ…¦?¯yä?™¡Q>gö?·Ì@ +?ýV?¨Àà? #?‰7×?~Ïõ?uh?jê7?`vû?Ò…@¢??Æ»?Q‡Í?4Õ?!û?? Cm?Û b@£÷>—Л=3©¬?&êX?B@Š?´‹,?®Â]???‡­?ªS?Çâ>åq?TC3?àÈ„?ÔÝß?ÁÝ"?Ž)ê??+?=“4?=•?=‹?<µ?<Ä?=>Kž “~Y>4ßD?UÕ?iy…?θb?Î?†”ñ?‘ÿ?š¯?‘4?3Q?m.>ð2£>Ü°Ì>É6µ?ð?™,r?—Gú?“e^?·€Ç?âvS?–´–? Åä?¬W*?ÿ;O?°2Õ?ƒSI?‚MV?Û>Ñ}>ŒËì?îši@¥Ñ?¶~>þˆb?âÅÍ?ç†?¥R9?«±$@ˆr@2?÷E7?Њ?¶?VnV?䎗?®©?üz?Ž£?wl?nE`?º)º?¿†}?ÁQ¦?ÀÞP?Á]·?uûÀ?#WB?ä~h@ëh?ç²—?Ód?ƒ¥ ?U'Õ?‘Oƒ?›—Ø?Öû? Ê?|[·?d[v?šþd?’~p>®òÉ>“‘Ö> /ë>âï[@®Ñ?èÿé?‘¨ ?˜Á5?¸Îå?©Ê‹?+?@±=%8x=ôˆ>Ì‹Œ?0›%?_¨?€}Å?APñ?%Òø?16¿?2‘}>»àM>k?!Ùc?6ñ|?*„?õ?ÎE?ê¼¢?uòã?]Y¸?žK?˜_o?¢I?÷.?‡!–?y>õyÝ>ßD<É >¥Á>ï>ìK?? +ãƒ?2’¾?OF?éô?—Ó­?ÀãC?­7ª?™=?R¶Ø>ŠžÎ?Sœ{?¿¬Š?¸p?©c?¤™Ú?©HC?q°W?#ù?Ï_â@q,?>ÿ?¢Mq?Ë4?¼M’?»w>?ŽxÂ?žþ?ÞÑÝ?ðz?ûU„?þ¢h?4üê>þ‚@Eƒp@T€@?VÜØ?(Ÿ—?W‡)?aì…?Öp?«Ü?›â?¢ Ç?á?ÞÁ?¥d[?¥?”<å?Aš? ì?!Ã[?HΡ?FÀ9?&à?:%"?½âª?¯ú?z"?_»Ü>üêb?f:@;1æ@(AM?ë`y?Õ[½?¤p=?–4Y?|a?†«?”õˆ?‹±?†ÈÌ?lc?¼øŽ?ƒ_³>{Þ}?D‘?]P‚?{èŒ?¤Å^?†y%?%Ü(? ºp>ÃÌ?”GÌ@¢Š?Ë8a>úéŒ?[¯Š?±ôú?·õd?»ñ?¡&…?|5:?ω@jn?ýK÷?«Ê?ð:?aüa?»Øç@ _‘?² >çË–?2!3?ymj? ’?Õ‘Ï?§P?<“¡?€lŸ?¯ž¤?²Ä?ÇW?ÂMý?¹nŠ?‰>²ÅÉ?_&ì?êfF?¡3=¢LÛ>îò@?¬Ë?²ëå?¹´Z?—8›>÷†’?¨Ú?|£–?åU?ÅÕê?ÓÃ?öÕ—?ïsv?ÓÌÌ?Ðe?§âä?šVÊ?$Ë?8¾’?«?¶L @L¢?òè>õ¤M>û•º@(@þ‹?ÊbN?Ê,:?–ú>ôê2>ºm>»î>õ’>Ùn?¬¥?Åñ+?†Î?l_E@¬@6æá? ,7>ùº?Š+d?¶‘Ï?“{ç?s5÷?„h4?‘g ?¤f¸?¶‘?™·?jˆc?–²ï?ųé?ÉË×?Ð’Ã?³3ë?qëA?“r\@Ü ?äݶ>ñxy? Ýà@?@Û@?@#õr>âÊ~>BQ(?šŸ¢?´X¬>ÒòX=§Y…?*çä?p§?ÁÄš?ïù(?´4?…[a?R§›?Ur?|s?Úœr?·Œo?S‰—?CÁô?‰|?kF°@FaA@B6?Êg?Ì8¾?¯Vi?± S@‚Þ@ Ò?å¹?Õòk?—†7?m;,?Æ@d@Œ@?Ú2‰?¤y?æÐ)@,˜§@–?ž™Û?”P³?0º?d?°ñm?°áT?¬l?¨¯e?ª²?©c? ŸP?šžÑ?\‚»?.Ï…?¢_?êÄÒ?Û½›?Å"?­ã™?WÉ5?„•Õ?ñAè?ã®×?ña?Ž%z?–j)?™ˆ?È”T?×>2?ÝÍ£?Û ³?£?iž?¦B#?ðs?ëÄ÷?ä|”?ÈH<·‘ <‘â?æ«E?å§z?µRÕ?® Ç?¨+}?¤LL@l@ ¥­?õp?œÿ{?›.n?™Wç?ŠÚÁ?#©?(õß?g À?fòm?Ýë?î8“?•-ý?Wrã??¬Ý ?Â|}?×Ã?»ÜÃ?ŒoI?CÅ?Þî²?àï ?ð]Î?êØ“?„ŸJ?fQ?Õ>óÕ?–Z}?ÞLv?땤?þ?`?Äã>g7Ñ>´k?½ç:?¿´@Û~@íV?Ýí*?Æí@?¶ø5?«|W?æªQ@B"@ +_Í?©ÿ5?«»‹?×¾U?Ò)>ôׄ>ä2F?àa@ž@ÆB@'2>@??ã1Q?Þª?ØHÒ?ÕgU?ãÌC?ãàø?ú#ð?ôj?z¢)?ZË?Éã3?êé ?£wM?V†Ç?…[^?§Ã­?°±ý?û#ë?÷g?»¿Ì?¿·)?ñV?ǯˆ?¥ft?Žâ¶?©Yª?ÌK]?°¥v?fs×?ˆµª?ãΑ?èëo?ç ?é( @ +îç@ è¿?Ø‚y?·ú%?Šœ¶?`k?}lè?“…œ?‹ñ?§H?«Ÿ.?ª:;?ª8ö?¶Ï?¼{Š?¯·—?ª8O?Ägä?ØP€?ÅMâ?ª4á?¶p?Û)”?Ûwe?ª‘“?®†?®‰¯?°—]?Ë“?Í^U?gn?¸?‚Òq?½ük?…‡>BU>˜o‰?)fä?4·o@ ãû@ ã´?Ǩ°?ºÄ?ÂÏ?Áÿ‰?†T ?FS³?ˆT ?¯Dê?»p?âÙ?Å:æ>ãj>ãcó?QG?L—>Çít>ÀñZ>ÝþP>û†? )?ÕŠ>ÃŽC>»n?ªYŽ?Âè?ßr? Þ ?5Ÿ?@›z>è¾}>ÔÓ!>æÎ8>ã>ãšô>ã ?MJP?¡™@?Ž‚??GLì?.û^>˜f¹>¹§x?ë/?åÃû?:Ã>âÓ•?9L?"Ö>}•¿>Q§r>âŸ??\…‡?ßš?·§j:Ë `=× Ã?›ú?“?Þ?A”˜?. +n>È ->—ŸÄ=Ñáø=ÙBU>nÅç>'qº=ƒçQ>¤ßÞ>³õ>á*K>á³=f>-¨æ>ªg>Tµ²==â„>s×?>UjT>ðr>ÞOk>ÒG+>Òß>Üb·>Ü·‚>§n=üÃH>*‡ª>¥Tí>Üš³>åÜH>ÚË|>˜«|=±Ìq?ò?í\à@l?Ù˜g?,8 +? \1>ê«‹>ÐÁó>[,ˆ>Bõ>²¦>unò=¿—Æ>¶D?q>>:o<“_à>ØÝ¢?!ˆ†?Cä©?=”ê?™»Ã?¦†?‹²„?Âm>²>Fê™> }¿>¶DŒ>ÄØý>ÓbÂ;û 79<ó»:_©:]÷°=A{(=ùt2?EFO?1Øè>ú,>àÌË=kš.? x6? ‚ë>"Ô´>®ðm?Ñ£L?Áw'>àÆà>îè6>ø†?Ù-?`Þ??V€?^ä?Wh?PQv?4²x>Øcf>ÛDH>`>>•2M?&§?S?¾?n3 @ÞÍ?úï +>ùï6>ú†>÷Ö™>É„k=·–ç>Ðá˜?®`Ù?‡‹>ɽ§>±9>´y?Á ²?œN>÷ÎŒ?Œ?dõ?7»¥<©à,=æïë?œº>ò`o=‹?ã>UCî?è?1>Ÿ^3>í~ ?~Ó?‡Q‰>Ó‘²>Ûq?)<Æ?^rg?­2ƒ?ôm?^²Ë?pXE?yáö?W²ô?«Ù?Iæ>øÉŸ?e€? A8?$ì`?ü¯? Üm>ùzÂ>é+(>ù@>ÁN>¬m>¦-v?*ô.?3 ð?9#©?lZÁ?»(&?n_>j >»®ù>Èžõ?-D?ƒ?w–"?zHÙ?mK?SÌ?‹%9?‘Ÿt?˜¼?1­ä>8êS?X|r?·\?f(‚>û6Ò?Š×&?¼tÚ?‰:¶?KéŸ?’q‡?´?”L°?“—?ˆ‚U?{ÖË?Q#?Hñ> ß™>J?R÷r?|Dó?†~?… ø?ðù>ÿ{ö=B̬<æf>ñjQ>üÒR?ä +?#Éý?ªó?žW>K€M>Äþ?}PÐ?bru?x„?§A>çèº?"Ρ?¾Fî?¯¥?…ð?ò?}õ§?}ug?w®¬?½{@ =?ÇÄ?_v»?F…u?(S½?¨Ð÷?ë]X?–ƒV?3Øó? ™“>þÐ0?x„?7JY?&w?M>ë,_>盶>üÞÍ>ÿB§?uS?ƒÊ@@,xC@*† +?˜r]?Š@&>ÿ¡? å?MÆJ?QÂü?Ö‚?mè±?"Ó‚?oJ>©þ >ú p?a_F?B¸×>ä" ?_ûW?À9¡?z¡ï?1{?çZ?›ä?Ø©d@x¼?·u!?’ Ñ?…W?€]?âË?fÛ?9'?.Ë5?^Þ>?t¶¸?}š? ¹^?U¢?ŸP@†V@ku?ýÏ6@E—@Tì?­h=à ?”ñ?©ƒõ?”2W?€¸è?S£K?.Û?€)&?uh?¡¥,?šÃ ?/;?Öz?¥J¼?ÈÒ½>é&n>V…R>xbO><²Q=ôž¼=ÚžÔ??»è?€÷p?Z6ñ>g*ž>®Æä?-Â?,ýC?*6‘?=.? C?6:ø?ÿ?a‘?8Nì?©Yû?éí’?…„è?u•>Oé=¶Ó[?6*k?jŒ?zhM?€^®? Ñ`?*?,? D ?Œx?Õ?‘>Â?†@Ë? +¡?˜U?ÁÑä?Àx?ÁE?ŸÎ?_¥õ?ƒaé?•¤§?o +ø?>ëÁ?´)O?ë ?Ê4u?»aÿ?»<ˆ?¿=£?öÑÿ@D>j(=–2>¨ðIÀ>ÝÝC?qĪ?@¹?eh3?u;Ñ?–¿?“šã?6 D?2N?;m?7ñ8?º?­ôk?˜È?Žv%?q{?.ÿ>¦€ >ÄÝì?1Y?Sü³?‰¨º?8¹T?7r>EwÊ=qœx?AÓK?%õ?î‹ë@(Ì?ãäÄ?åƶ?Ji‚?' “?°@½?¸ÉI?Á¢N?¾Ã?¨! ?¹vl?ö²j?Ù?*YV?†ýo@ Lô?ʤ>ÔŸ‘?)†¤?€ÿO?Qi÷? ž?„ g?Áqq?vPF?/ñ?Šâ?­ð?§mï?­;?á„Ì??“c>¾?–?˜&?¤õ?¢±Ö? lÎ?¨„\?±h¯?Á.o?¹2V?XǾ?U8†? Œ…?N<á?Óœ0?Þ¹\?ìUú?Áö ?}p?Ÿ¨È@ ‰?Ò[>î<©>ål˜>Ü +>ëÝê?Ž'?œÈ?$Cp?d¶?|-'?%4?vr>/¸?†!?S¨?œ*û?§ØV?å‘?éU*?€DÅ?a0>u`>IJ­?“°²?’/ï?ÀSZ?­‘Ö=DÔ>—Éú?ú4?Ä=˜=7i>‰r‰?lAë?h +Z?cÐA?j1*?ù?¾Æ2@´$@’×?Êœ?™ãZ?BBã?Žj¹?¿¸’?ÊKv?Û·ß?ÄÃÓ?©Wv?o¹T?<Ší?‹Y?¦9Ÿ?Bþû>ÿ+þ?íñ§@õ'?‚•? ?%å?Ì?Z?$§E>£kX>£§!>T&=ã´ø?Ï¿0?ìšÓ?ÅÅM?»¹n?OÅ6?L¤a?©»è?¡ü?~j?ƒfb?¾wJ?µ»æ?NÚÃ?C6Þ>¯„÷?\ô?ÌàŽ?¦+>;'m>±"Y?ŽD?“mX?¶$(?œÔØ>ÿ>ýþ±>üù3?,·î?—zµ?ªwî?ǦÀ?µsÍ?Œ=’?¸$~@5?èæü?½7?ºy?¯øÂ?±Nœ?½š?‹î†>ïùq?wšô?ረ?¹F?{‘´?—ËÕ?µŠ?ŸÜõ?ñú?ÍT/@¡~?¹c?À?ñu>}ýz?&^Ž?­í±?…û°>ø ó?æ?#å´?`er?¹½¸?¹°€?¸9à?¤Ià?wGm?>ßr><÷>°,J??Ý?Z(x?ŠR%?“È?ãû‹?Ôä?Œ›J?†Ôó?v×?|·q?®·v?±pL>õ±R>ýäÐa>>™Ë^?êÿ·@C“@—@—ö?]ÅÃ>ô¢@²÷@6ð:?À)¿?miþ?ź?ìÚt?¦4?sCA?˺@†q?Å?Šw~?v¯•?I“?šéi?ògœ@˜2@‚Ä@ŒÜ?´:Ž?é¾V@`“z@C›Å>ñƒS?R+?àü?æàÅ??[T?k±?pº?¥”?­`£?~ $?i.Ä?nåß?p x?Ÿ š?µ‰Ü?’é©?oœN?ÁþD@ˆ©?æk&?¿[1?Öê?ür`?Þw?]W?¢ZÞ@¤¦@ØQ?Ô?’y·?4%4?4–ƒ?A2M?MVq?¶K„?ÇÝy?¸¶ù?­v^?Á¿Ü?Ïku?®c?"ï?Á'.@ þ÷?Ë%=Ž">—­D?°*J?¬ ?mV×?pª3?sÿt?wV@v¶@ Ý°@-}@Sã?°›ˆ?J¬7?•§D?ü?­¼?Œ`ã?§¹#?Û +s?Ù¢¸@xô@HË?È™y?ÆÄT?·­?°Zw?¼ê;?¿u}@¿Ç@Á&?Ç ?V}Ô?®^8@ù?òWÍ?©úL?·³?般?äj”?èb;?èK´?…‹?x>´?ÇAŸ?ÜV“@³9@-ϧ?òöÊ?†p;?¼3¥@ H­?í=?3͈?;ªj?¬K?¨éá?Ú]å?Û[j?Þ8‘?åÒÓ?ÏP?¼ÍÐ?åÁÌ@Î?ת¹>Ð>…>÷ÐI?j>?ªF›@F]“@Hý«@/#Y@(_2@#>¶@,@ÚI@ +Ê?ʧ?Z +?AMV>¢ÒŠ>Ä'ë?†Ñ?ˆ¡{@ æ2@g#?߸u?ÇEä?“ùe?wV³?~Ç?ƒh?¥C?ìi¿?ý{|@®©@ 7’?)>ÿãD?Sv|?d#:?&T>ä(?.϶?m0G?OêÐ?Ïà?~×ë@ ßX@¤ë?ñ¡\?óƒ=?h÷7?<:´?¨!S?ÐDð?£êq?gd?ºt÷@×Õ@ã+@n¦@u1?ƒÝ?ñ?~¯?z ?Û¸@?rMß<Ò¥&?ož?ª\'?ů???jî?}4í?‚´y?M`Y?W;è?åM]@z ?Ѻ?£ê ?g0Ã>ãÃ>ÿI€?,e ?;ª1?“.–?•Qr?DŠg?A­*?ë?ãn?™â×?š-…?ž„²?¢ÞŸ?jý:`´m>†~~?àŽü?ÞQ²?Ü%ý?Ùë{?_¶?BŒ¼>°CU>Üï?îØ?‡üë?.Ž>Ö÷?ïuþ?å–@™>@Àª@•@ å@ Å„@ í•?läI=‹Ð?„×9@ Û?øšÌ?¬“V?›f“>ã!>ãƒd? "N? ð??dζ?b—è?0?¤ƒù?ji?(0?EPˆ?fм?_Fo?†ã?‚ã?.¡ ?7|=­ª=2— =2 ä<!¦?¥!j?Þ†?uËð>ãA>±ùó>šÈ>Ͳž?~>ýzZ=Qd?á#õ?æge?B¯?ÿ>‚AÑ=þöG=*Fù>=s>Î'?8‰[?©‡Â?ž$x?XJ?Bœ>A,Z>ËŸ?Í‹?ÔÀ>yû>/À>f})>gÝ>PJÙ>9u8>"“Ä> Ÿ3=é;=» ˆ=ËX·>á.G>á%<ã+B>© ”>˪á> +¼í=iaD>gÉ=Í…=¬qÀ>߈…>ÚšÏ>&©…>C•=ë‘$=º…Ý>“L•>ÈK§>9(=;ezÀ<ÍÃØ=Ô >‘ +×>¼A>Á¤>ÚÕã>–Ä×>]í@4?ôòô?²Œ?¢¾(?1 '?ÆÚ>„#^>€£D>œtð>x> ö¡>¦ñ¬? Ú?NT•?}X>§l-=,K(=¬ ì>ÿˆ?#a@?Oô?eXK?—p{?Ÿƒò?pÿ‘?Y]>íã¤>·]k>:™L=øÅë<–Ø–>öô">÷( ?Yé]?F è?,©??@>ú/G>ìÊÚ>‚eó>”Ì7?Cž?ßÌ?!ç?/>ù;'>Ë©ú<J>ûq? ˜e? D?¢&?4#?xjÌ?aT?ge?p¬?‹ŒD?€R#?xy?~Ý¡?‡âÖ?Éô?° ß?¨MD?w0ö?9úd=X9>³>Á=ì>ø§H?w?möœ? +?/? s?&Kò?dP?÷?Ô‚o?ý?v?'’Þ?6>÷èà?Vj6?ëš?Ãù¡?L0?.‚ó>ø>ø_>øI?"¶3?wЋ?eš‡?xD|??Š;> ç¢>Ã…Ë?‡+®?Aw= qZ?»ç?÷˜ ?«€ù=Zu0>¦+Ÿ?]ïÄ?ç7> ~V?íÖ?  º?§†›?¶«&?‰»>ùKñ>ùWì>ùky?G¼Þ?¨U_@‰Õ@S:U@\F?|Å0?up?Yñ?+‡ð>úá?EùP?’A?‰¼³?zTˆ>ÿË°>zb>ú›–?á?ì?\.ô?†â—?ƒ»?€‘0?{Â[?x­S?£¹‚?¼}7?Ú>_Õô>‰`ì>¢Ñ0=Õn?  ?@ ?7nn?-?-?&þí? ¾K?Ï=?‰3ý?¯F´?¸“â?G?|J=@¾=ˆxä=¾×1=ðÏ >RËÐ?½Ð·?·µj?Vǽ?S–? f>?•d? ¥À?0nÛ?¾7Ÿ?´¡?œíq?°ÇE?Èc†?¬?~8?OÝý? ‹ë?‚ ?Õg¤?'>‹¶ô?W|e?§R@?¨“ö?¶;%?†°ˆ?VO®?B]{?+MÒ>ÿ>¾ó.?C4?kJÑ>˜¢~=» *>ᨘ>ÿPW?u¾Á?l8?غ]?æea@¯–@ +2U?À©Q?¯Ýu?ÉE?rs?A·i?hCq?¦ÌŽ?£bô?“Y?„uy?P¯5?׌¾@n‰ˆ>=ª‘?%Ì?,Å¡?šõ?’(?—G?71x?½æJ?œJ]?lñ?âØ>á…ø>¶·>>£ˆŠ?›£@t?ÅwÖ?_'?„z?€Ï©?„Tv?†?T´e?.J‚?‰¨?ä?qáÏ?€ë?µ^‹?»Z?¾"ì?ÀÇÜ?ÀÞO?¾LZ?»Ž§?(>ÔK?ik?>hÃ?A\|?UY†?/œ?æ?Z??Gø?g?k$G?Rìv?¬š…?Õ¾?MÊJ?'‡>6“É=Š5 >è8?T?yÖ?uø°ß*>Çâm>¶sI?Aº]?Gî?†Y ?†ë?„É?ñÔ?su)?ˆø?àµÑ?Þ«¶?Ôe“?ÁêÁ>È??^'f?ƒ?¾àQ?©A&?V+?oðH?3[p?\¶>ä«?WµG?ƒÏî?&‚?Q?b,ê?vîÁ?ب?â%úš>‚\ÿ?ýßÅ?ê¹ ?‰ãð?„üî?€¼?äË?ÌÊ‘?Å=°?«ß³?·üÁ?Ï N?Ìî:?ÁØ>?4.?8?«D'?ÿ¾Þ?ˆm¹?3?“ ??±ÃÀ?B$Þ?d´?–JÁ?­¿d@  @$RÍ?ÜŒ÷?Ðùß?!Ø?€jY?~¨?‡j?•üK?‡Y?R—Ú?W=›?[æ¼?`ˆ¬?e+û?$Á>[ô?Ÿ¡?§7?Á£S@?˜ú +? +öÝ?O‹í?sÆñ?¨ÆÛ?Ákº?’Û?€ï`?så4?}s ?Èf?ÃÊ ?¿Òï?ÁMŽ?ƒcˆ?…º8?p†U?lñ=?©Ùf?§$‚?r!¯?os-?0…?_3#=Ÿ—>>ç”?µú?ª£ @?ë§@Õ?†'ÿ9?²j?Àðž?7ýæ?#Åè?ïê9@v@í3@¢å?šiè?˜Dm?ïýê?ï-ï?¼Sú?Ææ®@#?ç˼?†®?’bO?ªœâ?šäf?€°?°Û?°~ø?ž ú?€Œ?‰\£?Ÿœ°?‹êT?`m?wÞI?Åa?°n?Û`?j¨„>¡¨@?^?ì!š?XÜ>t;D>ò—¾?ÿ?ƒ>ÿ7™?Ÿ?[?¿Wœ?ïct?þƒ?”«ñ?w§f?œ}>þÒò?ÆÚ:?Ð]?W·¦??àb@nè@‹¸?ýÞ?ûþí?2{C?AUã›?¨™p@)+>@Ïî?ÂJ?¡äC?v?Ù4ü@]?¿VÀ? ÆÝ?Q­?Œ[‚?%Y>4 ì?ù\@?ÁûÀ@.ƒ6@$°@ˆg@ ž¤?öÚ?Ö/S?¨xÑ›?xË?]£?x…«?¨‹]?¤ÿ—?£i³?ª¡G?¸ÃL?´…?s?+À?™þy?Š¶¤?1Pˆ?)G>½E0>Ò© @#ãK@%Ó/@l}b@mó?Äg?·˜k?C”?(‹Ì@¥@1:?aÝO>öàŸ=Ôw©=p1¤?<X?s½†@/‘@H· ?¼[?¦?µ’!@%M?¢ƒG?Ê’?HÐ?r§@?\Ÿ°?Lã¬?‘¶A?Ò¸.?¹(’?‚ ‹?¶b¢@(OZ@kv>ñŽX?ÄË?>°Ã?7íg?U ¦?XnÓ?pB?pÅù?Vó?[2Ò?›u>ÿG‹?T)M?pí?ïò¶@î?Üx?¬î?ž¾?–}?w£?.aå?KXÛ?€F]?“P¬?³¼?· i?ÊåÛ?ÄMÛ?nRœ?n$?0†=?,Þˆ>q™=>;¹ ?‘DÅ?±‘Ò?Ç3¼?Öë?úq @"þ?ò,²?Ù¸«?Ê-Æ?±€?œÂê?g'M?k°?l??Šê\@Î3@ %j@ +}L@Óï? 9>Þ'?ÿß@S1@vÎ@ F?¯”?KLØ?ŽBt?¸Î¨?Ø@›v@Ø8?j?c?uP¾?»ž4?¿é(†>üÐÖ?¹?<0>ñÌ]?"‰c?¯¬s?ª, ?¦•?/„?cç@?h"?«|~?»‡À?íq@úÑ@x1@´@a@ ã|?û:?‘¾*?•0e?Ì~?ÎP ?Å_?Ì(Ÿ?µ?§Úå?ºÏ?Êʾ?öë>æa§?™€6@"¼Û@¸„=?–¤=Ö¸?¬}æ?®RÚ?åŠ!?íÙÌÊ>‡¤Í?e”?e ô?ɨð?ÈøP?›tƒ?˜K×?TÈ?Ú®>ãƒZ>œ¬`?¿?Ž¥ú?—0u?Ϙ ?ÑîÑ?Œ4?„ê ?l]¸?eèÁ?d¨?bšp?Ždü?¦p½?´þñ?ʦ^?Ú‚û@ŽŒ@™?’;º?–þ?ÙM½?Ú„ü?Œ…â?c–v?¢UK?ŦB?Â&5?Ëî?Ùö‡?ãm ?áåµ?È–é?Ä ?¬]*?ªz}?€Ä?cBs?&ãÇ>êD¢?!]Œ?dÇR?›ÏD@8õ@Æ @_0@:e?™ÛÑ?‹ìÖ?¼ÿ>?Ñ +>?²Ã? ž^?i.*>ã  ?âe?T ?N¥o?cQ?ct?s–·?bÞ?_Î?c¾?þ=>âû5>âýK>âû”?;‹Ë?¨ +a?¬ð+?ãÔ?âü5?ã?âÿá?káÁ?B™?YÓ?X]G?}]å?‘ Ý?[„7>Ø ­?B|3@]m@oA?Ñ7Ù?ÓŠ!@5íŽ@Bjf@ +¯?üÈ{?§þR?c^?¨LY?ãšÊ?ÀQ?mU1?~.à?–˜Ÿ?‘Êó?ŒûÕ?ˆ)®?GCÐ?I]?¦7?Â6?çlÅ?õ†?Ûò?ˆ0?¹>Å?j›Ÿ?;Ç>!ï»>‡™>÷tE>íRÕ?VÚÜ?b¬v? ü?®ë÷?PuL>ãv>Ë5_>§_`>´wµ>ãj?VŸ?{›?gÒ©?«?’¿I?÷ì?w >ùuø>âËO>Wž˜=j ü=!w$>æÕh>÷¨Q>ùÊ_?v_?‡®“?~ ¢>8bB>¶™>{­a>yD>e2 >w¼Â?Ái?@ å?”V>©aC>È^‡?:n>ó‚€>×b}>àj¡<µš'>´­|>à¦5>,">ÖH>Ð>Áî>k\²>Zæ=>‚"Q>Ž&>š2ó>¦F¨>Ù°²>Þµf>DÚÛ>”´ø=Œ¬ ?@Å"?rþ5?°y¶?š*J?NçY?bÿ>†‘ì>¯©L>¸¶>ªÆ«>ÃZó>Òj=>ánX?Jm?~‚t?y1â?id„?jË>ʽÓ>6ã~>#ó>åþ>ýcå?6ã?DçÕ?¡è?¨ÑÅ?‹tG?•¥•?i1Ý?h€I=Ϭ<þW>û(#?aš?±»…?¬eH?˜ª?€ö„>F×>†:3>ùô4? +ç?ŒÔÖ?‚ƒ?y{Ý?eˆ+?`û>ÚÍÕ<^º¿<`V`=¤¬ò> ž?Uãº?€ §?Ç´*?Ÿ˜Ý>ûñ?ø&>ø +9?»?:žº?Ÿ+­?‹^X?XDŠ?Q\Õ?J}_?dËL?œY?©“Ú?Óxø?³¶Ð?RfA?Y=?`³?“*"?í­º?Áñ£>÷ùD?”–?!«¯?Fèf?xS?nz?PÚ?g>Té?K*@ +ŠÊ?ßk?L E?.Ë>º†à?!"ë?ŸòÕ?‰Pö?ž%?Jƒ¨?¼ÞÃ?É›4?Ôáã?¯ð?xåõ?$á;>Ÿ®?oÊ”?Š1Ç?¨[?gc?%h¦?â,?bÊ? +&2>ùœç?2^Ë?{€€?zu’?yÛ«?yïf?yþß?ŒÂ?š\¶?k\Ì?+X?U.?zg­?6m&>Ô¸?Ç—?%¬Š?@/Å?_PÌ?— ô?´Ýü?µúr?ºK¬?»ç‹?¹&?cå_?$”H>÷=>»-{>®…õ>¡ßÚ?’ë?ªÃÁ?*õ >ûö,?¾ÅÖ?Ô=]?x°i?]¼¥?¹i?«VV?ƒÄ­?|‰¶=›&D<¿qà?a ?]º%>Òhþ>¾pF=b¿V?[ö9?`jL?1bù?Ld©?}mÇ?†(-?¨Âi?«ã¹?¯î?k?;Ae@Ê@Bg?½eÒ?ç·@X?¿°ï?4®?»¾@e_?­^/?e•Š?>F>}:ÿ=Äú”?f1?W +Ÿ?ÏA?éF?C–¢>ÿ+ë?§AC?½ˆ?û>ÿdž?x³Æ?€l@.ãY@'0%?áÉ?àȳ?­Ó•?ž´.>çJB>þž|>ÿù?:??QŒ?u½?]µ?¼`Ð?é:x@3¨@»í@ ñà@Zô?_Fw=è?AÙï?ž!è?‹Å‘?€X¬?Y*?VŸâ?S¹?J+7?±"?¶ù?âíT?ç˜l?/Òæ?*do?_’?Lî›=±X>E7?¡å?¦R?«Á?)á?yë?HÛ?¼>è? ¦ñ?”Þó?›hÇ?›’µ?¡}? ëj?½?SÔÐ?ry5?€è7?R§µ?>P?caÕ?nQf?‡›?…>~?‚~Ð?‡‹·?Á„?ÁŠÆ?ÁŽ9?Õz:@ß?¿ì>•˜‹?s«ö?úB¶?µ5q?G)?>Œ1&?3ø[?&À?ËM?‰Ÿ]?F Ð?Ô>ë»Â>┼?cã?}9Ì? w¶?8ˆ@Ã=@_ž?çh?̨¨?@ð?á?OÍû?9bâ>Ç]F? (?=©Ö?)>ižû?B_ý?º³X?’öM?;l??‹ŸÕ?´mÁ?Œ 9?qôÞ?ªù)?¾Ò«>yÌ;…k€@¦ª@iž?Ð'N?ËÙj?P¤f?^ Á?9ZR?Syâ?ÓÐê?£¼0>ú£´?á8?¥½>ÐA?%ýW?¿?°V=þã#?mìÿ?Ìë?1³â=¼ýÐ?ˆ'á?Âò{>ÇõU<ÐX>å\}?2a>°;¼>Æ?8úJ?FŠX>³æy>»AÇ?vö€?•fb?å¯?Çâ„?NßW?Xk™?Oþ®?c÷u?G¿?OÈ?F?a%?¬b¸?kö?B˜?‹?À½.?Zª‹?=p?dÇü?ˆ?!uš?5¸?¡´ ?±e ?Ÿ ?ªM7@TR@E~?ÉåÇ?Èù}?ÞÝ‚?ÌaÐ?±b&?™wf>©v>²nˆ>»¾(>Å>ÎOŽ??NT?š®?Ü#ø@Ã¥?»Âµ?€)?KqÀ?z “?ìâ[@aœ?•­˜?5}@©¤@²?Úî*?¿"Î@) Ï@4B@Ñ~@Õ‹?½àž?°n{?Œ…?Ác?€ÚS?Šê}?Í`«?Í'É?´<¿?qÓ?"ÒÑ?!ª?!Z·?Œ]g@º)?æã?½Àe??‘?qój??ŒM?О?EÞÇ?`R’?QÑÞ?SÕì?J?Žl?–â?»€î?¨ +Ï?žîÔ@§È@,y?€K;?.†0?SÅä?]ÁÛ?ðë?þ T?ß_^?ßÀ?‡)T?„…z?€Fu?Šš.?À¼Q?Ál?»ß?»}µ?À<å?̦ß?æ‘ó?µ§x?D*u?` ‹?€ ?I¤`?>̤’>‰ð ?!é?Øo?—ž!?±-Ü?Á»?>—ý?›ÊÎ?Šb…?|2?mó?aÎ?M«L?,÷„?©|ƒ?ÀýŒ?/NÖ?º[?mó5?~þ¦?«1I?¬õŒ?÷Že?þÏi>¥>‰°?µÉƒ?¿S©?Ö”?ל?­%?«=?ß@Þ?Íf? B?.$¼?¡Òô?ž[º?Àp?Î{?ú™?ãô}?d<?J„>ÚQˆ?Hž ?é×`?áà@?½?½ôï?½ìÖ?ù¿q@;'C@ Ýù?ZDŽ?…i?¥‚˜?‡à0? •?[ÿ?”÷?’Æ?–·}?E€Ó>b¡*?›ÜÁ@”h?Úja?WlÁ?(Ë>º=.?„-Ù?è4Œ?Óû;?¼¦?–À?cŒÛ?–'Ÿ?®x?ÐÇ;?ûÝ?Ûݽ?¼Þq?œ¤?‚EY?-Å=+sH?C Š?²À©?À'?Ç-?„7„?ü?ˆB>ùîÁ?A#>?…ì“?Gó‡>ù– >¶xÍ>y 4?_\$?Â0?®v¥?”a)?z¥-?Pƒ³?v‡ ?Œà8?O±Ê>ø„g?ßà?Ÿ?-Ýy?aÄü?váw?çÒ?HÎû>ú%U?.€Ø?w” ?¥—ü?ð?ùoÅ@«¹?öàA?ÚÞ?Î +Š?¹ö?žQF?&ˆ?FS"?”`s?–¨?—Íå?¨ñŒ?øúø?òÓÎ?®Cþ?¥v`?u–G?‚å~?õb„?ùSs@G‡×@I.@?ºMê?·¥4?â~ƒ?è[r?¼DÐ?·U?ƒÌá?t4œ?¨ã4?®|2?°k ?°€-?ò`\@Ê@)’?úÛ•?óŽÙ?ó%Ä?»Ð?šR?[|?(å›>ü>…ï?O.?Ó•?”ßá>Rò±>Ën;?qÖ4?alp?‰à?>¢Õ?ÄëŸ?·ˆÊ>¿¡á>Ê‹?LO?%`>†>˜>a%?š)V?³œš?ãM'?ìø¤?ðëx?ôû¶@¹u@ R¼?¾ÀW?o½?bQY?PxÏ?nC¯?œŒ?¢š.?ØŒ×?înx@W@ 8 ?nc¼?vzŠ?ÇõÄ?¯t?0(ü?"cƒ?AAì??ÖË>ï·">±e+?‹²?½,Ë?¤ž?ý?™N§?­/”?…w>솪?†Š@/œý@,¸ý@.ìÖ@+µÝ?ó—¤?õ6Ù?Sá.?7ßÊ?_þ%?x±À?fd¼?nû?.üÚ>êêÕ?ŽçÁ?êµ·?ßµÕ?Îü?Æÿ?¦îä?‹ã?jQ?iT™>£±/>©g?«ÿ‡?ÃÝg?Ƀ?Î:?q +7>ÿ]e?km¯?®ÆX?íæß@.tœ@¸=–óœ>žpC@ó@_r?¦òº?¢,Z?‡®?ƒ„‡?‘(ð?š¿?¿ëU?äÍã?ë5?çd?è +?åÂ?Û/U?­cG?­O,?¸E–?¬c‹?üë¤@}Ì?·`?‹ +?Pz?*??c"b?±Sc? 6Ø?dD¿?{õâ?åYä?ãxº?³ví?²|>âÔ_>kÆ?edT?ž°‹?¸Ï?Ô@}?³‹?ZÝ?Rã5?e,S?eÐ ?« Þ?®¿\?’½>äàa?~T>?™’e? +7Z?²'?Ì~…?»Šˆ?du_?)ê@+C¶@+:v?¼M®?«(­?üŸ@ +!:?ó°¬?Ý=)?£ßA?2 ?˜×@#¤”@×­?Ö#?´ÿ?ŒÈÊ?šCœ?”Óï?ŽwU? ¬Ã?²9©?„ѳ>øQ/?U\?ô)—?ôÝ¥@Ì+@ÉÂ?±â?ªƒ­?êÔ?hiB?”¥ë?ªq/?Á‡ ?ÜÎœ?À›#?‡I?”•ï?̸a?Òí?û¿·?ø’‘?¹€I?ªX›?¯Î?®úê?‚£A?&ˆŠ?;“‹?{ž ?‚®7?ƒ~W?Zÿ?ã6Æ?í¶0?—ž|?Ïú?+Eé>ù»Õ>é~>ãz?A¿?ªD¶?«p{?²´?µô{?ã +?ã +2?7õD?KI?:…×?O_?2R?ªJ^?’Ïz?c“?E‰µ>ãe?#´?›<.?ŽD?SP¦?Rä>ŠSX=¤bº? ?c!_?.=¢?Ó?uáÕ?Ó5Ü?Ç7€?ªcë?§âƒ?ƒ)b?…•w>ÿE>ã.7?H›?c0?àe9@JÐ?¸¡Ú>ã1|?Y¢Ý?ß:?ÒYî?Tð¼?ZYŒ?c.…?c-‡?¤¡ª?§ÓÀ?5« ?Aî?9™+?Irp?Ñ>ã +>²N>:†>§ ±?d?x?bûg?bî>åˆ[>²þL?›p?…}>ø‰>â¿´>ä0¯>â°Z?B???¢¼Y?1æ?—¢g?Œ?+Öœ?6ò7?Ç0? *>æ >â7>A? Üÿ?˜éQ?PËR>*(>“”ß?NB?B +¦:'8<;¢±@>˱>Ç•>Ú¶î>à®Ç>¶ä,>—Üâ>¸í³>à)Ð>¶fÿ>p e>Nf;ÿF=Û2=ª%>±®í>ÌÙñ>ßÖ>Þd‰>9Ô›? =?N)??‡?[q­?!ÿ£>Úé->’{ã> +~>|T>$-F=ú• ?kAF?rDÍ?–*?…â~?9y?'`I>åóo?h?-œÛ>¬n=*+c=0òï>´ž2?§É>BjÍ=ð÷|>ØßÙ>þbÐ=¬Jš>Þz>ýd2?5;I?23æ?y.?| [;¦âÜÞ·›>üƒ€?zªŽ?`3U='çÎ=±?>–`2>Áï!>íbT?oþ?81>þÿ’>ùøx>ùÙ±>ù¸é?±á?]ºøƒ?yÐ?csÔ?U6ž?Fú?x؃?Ñœ3?ÌÕw?Ôå²?®Ý–>äj×>ñ— ?'4y?=&?ppÙ?T…T?8§?½þ>ûAÏ>³Y=C(=È >„å¶>Ò’Þ?æÙ?ž/>ÆÅF?1?zÉJ?–W`?Él?° H?>WÔ?)n¬?ˆ7?*6Š?w÷&?wýD?t±‚?‡µ?©/Š?ˆzæ?j;?,>¯b ?ëÌ?Hm#?•Ú!@ ÓV?Ø3Þ>ø^Ç>ú¨Ö>Õ‚ú>ah!>£æ?x£Ù?PïÈ?M)?!‡??=?^Îä?xðÎ?YÌ?±?8œ`?z$?Cm>ùIà?é?TéS?[€Ý?bf?NQá?í¤?olª?»2?Ó=Y?îm·@,è@ ê?¢Ûg>àÇ'>þs>úR >ð…ú>ýú?(˦?I™U?PË?V’³?%s±>úÞd??à?pxº?,¡ƒ>ûÑ°?T,s?ƒê?tY˜?cÕ?]„y?W=t?ðß>û¹«?q'A?šdt?X™X?1‘}?ún@#ƒ?/M“>Ç|'?AÃÕ?5§n?t•Û?|—o=\Á°=ÐÃ>  =ÎÃ3>´|>°mÛ>œãë>KÒ>Ð$e?¾e©?©Jt?˜Lj?‹ø…?VÓ?] Á?cEÏ?:\Ú>c'¨>Ó½?=?ˆ +^?úûÇ?µtú?IY?7=ö$p?‰|?ÿVp?–<|>þ£+>²Ò&>p_ï>X8>@7?Œ[½?«¨¤@K @!gÉ?s‹? !?oë?W? +Tú>ÿr^?´ï[?³¢Ø?€öü?—?ì½ä?á`J?¦ñÙ?™w·?FÄæ?/W>“†>žïF>ªÀ‡>Ðì?e??1-?‰ÂP?‰¸Ö?‡¶Þ?ç§Å@ È?ɹì?h} ?-Å2??cø?€` ?Õ$ ?ã?E?_[½?:ìC?3_? #?‰*^?‘ÃÖ?€b?y»S?o +?j%? Ò?îY?²µ?:?²b?+És?€¹Ö?’ä:?©Òm?^Ï>¼Sø>õ>7“K?[:ê?¤¶ ?¡¢?£2?Ô™L?é#Š?—6’?€ïŸ?œ@*?¦P¨?%d¾? /?Å{:?Ãê_?Áˆ?¸Õ,?… Ø?‡Ð¨?Š“(?r[G?ó¤?2Œ'?0WŽ?aòÈ?¨A·?›{ß?#è?”š>^C[?jŠ?­íÒ??!Q>ËÌÞ?+®?Tþ>Îâ=Ç‹Ç?ž´?Æð?õY'?ùZª?‘wV?”ªa?A­X?E÷ø?GS?aè‰@ šr?Øý?#?".æ?BÜÛ?$¼?QÞ?R­?T?¤Óx?ÿ?´+…?Vh?ÿ->çïø?féõ?‚Ý1?¶‚@?¼?É-?ÐZÕ?ï?ŽÉ?¤V5?—€_?)M¸?KK?³‚Û?¸—v?¬¨±?¡L²?ª_B?Œ#6?!$(?õ‘?Üœ?¹±Î?ˆYh?Ð @x?³ +?]t?Ù*â@A>íÆz=2Oð=U¤<‡ü>úx? H?—O?‹ð?š?5c*?¿©?žj›>dð?¢Ä?Ÿ£å?ž +?§ì?¤ò?U•;?<Ù?&-w?Rë?I=?Q ?FÕ?Ö÷?÷’’?ž/˜?A*>†é=Ó õ?*›þ?Hø§>QA>7PS?òMº?÷,Ÿ?߈-?éM}@ŠÖ@8?4_?@t>&RÆ>?±%>ä>5ÆX=·°?†‘@‰M?Þ"c?}º6?£Õ?¿ÇŽ?hX? Ê?{'?Ÿ@S?‚*?d½?P*_?fXC?Èì?Ù3ž Â>æë†?©Æá?{>ÁÒ‹?Qã?ŒV!?™á–?Á3?æù×@· @I´@À?äÇ?Á9@ \Ä@.¾1?Ùõo?fDe?u?€¤h?Uì?”cô?gÅ?Kõ§?=H“?>k?Ç®¥?ÝÉá?­h?¨œ?ÏÓK?Ø#!?Uc}??´Ó=áq=ûÕn?'Ð?0Qâ?°>M?¯›Ô?ƒÐŸ?P.Ç=bN>ÌÕ?†;?q-?(x(?8ð.?U¿þ?±>š¼>»˜“?-Oÿ?‚îD?¯·=?ºÚ?ÄD?›ÏÑ?äŒ?˜êŒ?£ E>íe>§ý¯>ÿà?0›#?MÓß?e?nÅ~?þÅd@ @]ð?ýÑÃ?“?z=O?K? „ƒ?çLj?ôiƒ?Ê?œ† ?Ž™Ï?‰‹L@äƒ@hN?—Õþ?©ê@3ád@$uä?ê9?pcR>™x?ø,õ?â­¨?KÐà?KF$?Z~§?H]‡?,+_?ëÛ=ìÓþ=—R5<ßl#>£e?}ŽL?-I_=Šæ>¡¿m?Bó?\^¡?gÆ5?Åïþ@ ·ù@SÝ?ÅÌ ?šrõ?VÚD?˜mK?ȉ(?Šñ???“?˜4@"F? Æý>ÍA‘?,î ?{à£?‰§ù?˜¶?µVc?Êð9?“Á?ùú?Rl°?ˆÃñ?«gá?Ä1ƒ?›;?mùf?O\$?E+=?„í«?¤s“?aÑ2>øì—?hj¨?«…§??£?‚wS?}¢?ƒíÆ?ì¾=ƒ•t?‹è1@»´?æq¶?tˆò?[=§Åø’Â?E0¢?›ˆ•?µ6¡?ãFé?ÉhC?Š´€?th³?0 š?b¨?¹ÃV?¶kr?¸ˆí?ÇE@þë?þ +?£ú3?¨z…?õm¨?öòm@ Î+@ ÿ?·Äé?·®›?wÝ?t²ª?±å?¶Lü?îX?òs„@*%_@0lÐ@-±w@*ü¢?–±†?>dD?Q,?¦yŽ?÷0@É=?®XH?Q«?LúÂ?@?ñiÇ@02×@MIŒ@6&’@-B¸@ Þ?ùí|?Ê:7?¦?AmË>ˆ«N?„H@çu?ÒÚZ?ƒ¤5?¾l@0Œ@M?nnÄ?Š–8@:Á@8?á??ÃD?È_?ÓN?Ä•é>ì'>ôs¥?ð?!8 ?2‚˜?‡]@‘ˆÅ@Žn®?0?8[?CKÛ?G?_½‚?^Ûä?ŽöÝ?ŸœŸ?Ã[&?êÀ˜?½O­?u€?·<‘@#J¾@ ?¯±4?¨ó:?@,?+Ô?;Pÿ?5*?œñ?ƒ?V!?wêÕ?–x?¯¤?ܲ˜@O @ð?Ÿ]°?—¿s?Ž©?“GŽ?€´ã?‚ ?šÉŠ?œš?}™?gÞ$?gË…?g³ ?z6€?Ž2D?”÷?žZ+?¬² +?ÃùU?ÅÎ~@]¢@[4¼@¼5?æÎ ?Í~?É–?ÃÝ ?¹Mx?Ãã{?Üò?³Ÿ€>æ3?ñ„?æ è?åøÐ?x»?v;K?‹?ˆ©?”>º¡í>ô°ú?÷s?gr`?«ûÌ? at?e2C?e ¡?eü?e~?Qâ?Gf??À·2?äÊT?hAÚ>Zô?7–?xJ–?p£?d~§?„®¼@%»s@*7!?‚ì)?fì÷?£ Æ?µ~°@UO@"?ôÕÙ?‘u?–X?µBý?©ñ£>%Ú;>5„Ù »e>뢽?c0,?c/¯?ní[?e»z?š™Ì?¡Öî?®ÌL?¼ÝÏ?{ä>ã1³>²©÷>÷†>?K­>óÉ4>øÒ?c?c1ÿ?háý?nX‚?YUŠ?M±:?Yûâ?cB?*_‡>ã+>‘r|=¿ÜÃ>È÷ž>ɨv?býÎ?bðr?‹¤µ?’ªé?˜ Ö?r‡?7»D>âÂ?,Û†?_úÌ?9ó? º"?Evø?©ß‰?™'U>”4>%ëŒ?µX?%Ñ|?(?">×áX>–tó>ï´Õ?-Ž„?9?Dƒ˜?M,=:ü=Ø›'?]2 ?Q‹ >åGë>àêé>"s=û™>D¢>-~>¤S«>à.ø>°QÖ>3\>­><>î°>ßM>ß& +=½Þÿ¾`?>O[E=—Ä>‹–1>iœx?2ÞÝ?X¿‚?t´³?tW±?*>Úôž> =Á¯l>P± >#ña>ÙÜ{@%â@ô÷?Êm?…8‘?…£q?fTP?Là«?ͬ>†õ=ï=±;c>® ? P?˜À°?»pz>´õ=°è> x<¼Rˆ>Lé@>€k“?“÷-?–5 ?U0M?Yš>Híw>µ=-¨I>ý ?)}?]¡S?@ªQ>À)K>±~Â>¢Ú¾>Ÿkm>é'ë>ëC—>‘T>Øá¿?H§¢?%ôž>Êã>æ·I?Ù$>½Ö°;«dP>Žä|?xïS?A¤Y>idO?'{?Ð?·7}?nôÕ?zèÎ?xhZ?k•?Q ?’‰?ø7œ@ «@^©?ûu?wµ?(?>ƒb?C ¬?ve> ÞÁ=ÿŠ¦>iÈq?4AU?&ë³"Á?x°C?"‰R=Skt=ž¾`=Óºd?4«»?ÑKZ?»ÿ? ^0?œvp?©2?€T?Wt!?iˆÖ?}ë?/Ë­>Ó"§?‚å>?í\˜?£¥@?NK?µ @M +?¸`¸?lø?¹]>¦ê ?50‡?…)n>ìÞf>ûrš?W$?4Š:?f^?Ô?§9?› ? +PJ?Oä¸?xå´>»¯'=ð8Œ>ådÓ?ƒ–?èû?&Q ?D6ž?F•ú?àƒ>ðN‚?…º^?•Ä±?£Ò? ÿM?$Ãõ>ßP@ö:@ì÷?ŠŒx?|¦$>û1ü>åS9ÈY1=€&?A'k?S(ö@ÜÅ?í²?™Ô?Eo¡@x¼@ øÀ?Õµ>?«Ö#>¸¦>âk¥?d/?p¢m?éˆ!?à/8?¾i0?¥~[?‰m?ƒœ?gÇH?S–?8òÿ?až?¾îË?h/R>þ³w?&šÅ?7”i?1’??+“‡@ Qã@7X?ƒŠœ>ÿ,?j:†?Hâ?}´?eÓ?y©&?s~ô?ˆ‚¡?ˆ_D>ÿ¬3? +‚ ?}Xx?¢Ç¿@¢a@qe?Ž{?rå?ñÓ?"‰@?Bb“? úÊ>Ê0?cД?ÀGb?Ûú‡?ü¼d?Ýr?Ä—•?p¸?&:?Na?eD’@ç @/àý?Ÿ>E?}?z?§Æù?£¬\=Ë!>šüˆ>± œ?5ù6?H ?€Ÿ?r<ë?1è?.Å+?‚aä?¹Ì@”õ@ô‡@2ò?¶tŽ>¡ÙG?Lƒž§V?]îi?ŸD5? Š'?c?‘lO?“ž¬?¦ \?££?0ð5?@?jóª?xè)?û ?ûAÂ?Á”Þ?¸ ý?m?R‡ò>4^ >‡Õ>¿5Ý?4‡k?«{ë?Îg?Jùv?!?p¾?‚‰?¨×L?À0?Ùî?±øÕ?£KÙ>ÈZ®=žO•?oŒs?ŠR.?óÓÐ@/?‰˜.?‰ôg?JÉ?‹+n?ÝKù?¼?O0?GÔ?Š!÷?†(=?9íÎ??1`?Dur?)„Ü?Z/>ÓÛ[>°!þ>º“ >Å¿?K—:?_4>½èÐ=¡©j?•åz?ÁŠ§?€?Âe?Œ] +?Š/²?¶aS?·Ày?òO`?åx€?–ç!?†ð|?6Éw?{½}?ท?»AN?9 ?>6xˆ?2Ph?¤ñ=?ñWy@"<Ÿ@%ó@$œ?¹Éé?}Nø?#•²?Í?`nT?l9)?Ò‡?ØcÃ?žŠ¤?“fV?^™ª?^C?˜M?’Ÿ7?9 i?=ìo?BÐ\?D²?7ƒ¥?”ìX@ y`@i9?ß÷c?Þ8dz"?Sµ?[œÞ>µÃ}>ª ?›ÇG?ž!? y6?™¦…?W¤_?Uß?"yÎ?7LŒ?Nj?Y™Ð?+°?F§>ÚLK?Xö?±•Ø?rŠE>ÿ6?KPK?ƒz©?¤ç‹?³¬;?S­Ä?(ú?º(?!G?4Ôµ?/c/?²9¿?Á‚­?Yÿ‚?F„,?~L±?‡`á?Án ?²Yû>;îô>Æ?ÛÍÿ?¹¨I>h{}>÷ö+?­$?¸{»?ÆÞ¡?”fž?Î.?p±? Œ£?»ÕB@½à@‘?àà­@hO@ +hì?—Qˆ?'\Q?Ï›?˜UŠ?¿ý‡?É$å?¨œ>yò?ªº°?Éé!? Iñ?—ÉŒ?•ŸW?“tm?¯ G?°G*?KªÄ?Nk?À˜/?ªi=À‡c>ðä„@ @ã@6Ã>ôV?9Í?¹“?’Ió?6i?jïü?ÑIq?±€¥?„˜ö?FV?i?p™!?¸u?ºÎ'?Á_¸?ŸÔ?ò’?Õ8@ˆÊ?C†{>Þ’?> Q>0ef?ú.?)U°? ÁV?g¡=ª¢;­S>çÈ·?VA@=ÎÖ@Gy£? ¸:?—c?±6?¯9 ?¿Ú?Á +=@yA@Ñ?ʸä?Ì´`@ +s¬@ ­}?²Aô?˜‚?YD?5tQ?ª™^?§nó?¬¿L?ºDˆ?â9å?Û[0?¾]ô?°-ª?ŠÖ?e˜ç? ™?V#-?½–'?à¹>ì$3?Mù‚?­‹w?˜}7?}™?ÔsÙ@&»@ &à?ÑU ?yE7><Ší?„Ø9?ü‚0?ðY[?Ýß>?»ä?¡?ùk?|9?¸»X?äk?üi?!~?¤ýJ?îÐ?ä§Ú?àX‡?Â7[?M‰@<¥M@‹eô@át?~C?5ú>úÚÌ?Uár?ä¸?°'*?Çã ?â$k?ú?ØÌŒ?»¥T?êçO@Ï‹?ë£'?ßò@ºV@ Õ@­?Ý:X?±[|?ˆÎ?¾>#?å'%?¥Y»?cîÇ?j8?xÌÓ@e@J§é@KU?ºP??ŸÂó?fì?¸3V?ø?öÚh?ñšr?ž¶ >ܵ:?C)ð?¥‰?vã>¿Œ>¢Î4>Œ O?@yö?ÎD?¼/T?”-?›y?¡Ý?³ç½?öIõ@Í@¹÷@tÝ@®·@üŠ?Ï“4?Úš@za?ýe¶?Ãߎ?¤Î?ÈŒÍ?ÃÇ9?tÛ?tÁC?yªö?t²Þ?ë˜?ôP‰?É©k?ÉP?Î9k?Ói?ó«M?‹¶&?¦U?É´?Þm’?ÜWi?ÑØv?‡p?/V +?u#˜?—€ò?Ü,ó@z—?ð?É?<æ?µè!@ß?ÝÔ?Qpy?Gɇ??9*>̵>ó¯¦?©¾?¬…ë>û?Œ>ò—?g¼e?m™ø?*S~?3‚?±‘"?Í&?Äš?¿°ÿ?œ1™?‡K?,H‰>¤Rj?+æÁ?”£¹?pNÉ>îèI?G€ñ?ή? +4?ny7?†>M@û@p¢>ñÍ>ÛÚê@ +kù@³?׶?ËqÀ?³Th?ª7?É}ø?ßóÆ?§ß?iH¤?l³6?jà™?gI ?c´f?`Š?\Š?v;@ŸÚ@ ¯?í†m?äŠÀ@ß©@Ó?é±x?ÓÃ]?ø£@j?ǧ¨?•ã?”²?„ù?½b@*§u@%$ñ?ïš-?ö$*@ í@_ª?î>¸?é°k?¿ë¸?´y?ÜàN?ìé?é¯?èó*@ yç@,ý&@ u?vŸŒ?ƒ—-?£ë>?Ÿm;?@¤? ?Ç€?Ôº¯@ ,ö@ž?´/?gÀ(?0Ó>>ç¿?Sí?U ?*9?©rq?¹ßÁ@Y‡@]÷·@æù@´Ý?ˆ°?2^?Èmh@ Ö÷?œp¸*?dK?tƒ"?±M×?²J?/>?n<@£¡@fj?mi(>Ÿˆ?pƒú?´4C?×·?VÕH?…aÃ?È>ª?¾EÈ?‹Tk?‰m-?âÅ…?å=?¼I‹?¶Üý?á…?dµ¢?“¦2?ºßþ?­»?‰ƒ?m°>çÖ>æ¡Ë>ë{ñ>òv«?W®ð?s"?É{?ú¬Å@x@)-k@`,?½ÏÜ?ŸAÚ?Þé‰?ãÇ$?8ÒR?oB?rÑ?–¦F?elÊ?ìA?E_Ö?žšæ?¨Î?ÓwÍ?ד©?‚Ml?rž‚?Ð…ü?ã-@8¼@W‘ö@zò?cHœ?Gc?žG@?¨Ö?ÚÈ[?Ð@¯?C„í?Kî+?TP=?\À>?b +Ù?X¢b?£_(?Õ^{?µ»?‚Éì?Žàà?Ä1?ÀD?ÚwÈ?Ü£L?×{>ÚÁÉ?B”^?caà?l<¹?{Ù—?xÆ?c—?Þø?·M¼?®æŠ>ãb>ã7?í|?H‡?€Ù¡?‘?®& ?ÁÇÁ?³:^?ª?˜¦¯?F›?KC?OèP?U&Æ?´ ¾?¯Š¸?È>ã¨î?ú®"@$>X?äfî?Ó?£Îa?Çæm?ºõ(?™Yè?ˆö? <ò?%ô?‹?B?šq…?£²?©MÈ?¢cA?_ÕÀ?!Â?'%?c7À?eÊÉ?gî‘?P;Ú»Ã>—¼^?ŠÇ?2¹­>Ù´>™(µ?‰å?”yš?cW?b÷(? öè?¤·>úl˜>ïŠ]>䌀>âÇ?.¤Ÿ?b¶·?5(>⡾?"b?€ç·?p©>…ý>‚CJ? É?‰E[?ˆ?†E¬?:›²?$Õ>²¯ë=›WÝ=•Í.=z$;?-M?á{Ž?¿„È=Œnû=êd€>ߺ_>àòN=Ï}=ùŸX>xÃû>©×>ßñ>Ñlk>¬šÏ>¸¼f>Äã>Ñ6?T–Ö?^Z? >à>ó¦í>sÓ(=¸V¬>«¢ð?•Ë>ãX>@Uä>E ~?OCL?“)5?@ >Ñò>4ò>Ö®S@£?ýjÎ?Ȭ?~mÿ?k?7Ä,> %Ò>Ù*¹?²¯>ãöã>Üì ? +#?]ú?]›œ?ƒùe>m6%>ŸêR>±¯=Ý?\|^?y1f>üºJ?éy?gm?[ú_<Â`Ï=go´>û‹R>ÿ/A?£8?3z?šŠ ?ƒŽw>úŽ >ÿŸð>úX‡>ÄÒÖ>@RÈ>àî¡?ª€Æ?(>wT>?ot¥?UÙ¾>ï¼>±€>9m>­¨>µîá>ÂÇ?¤Š?A w?y™T?MÛ/?@R?=÷y?cÖ–?ø.>$¡¿?'? ?êãi?¹á>þ'?n ¤?ÖP~?Žý¸>u…©>ÔF¥? Ö>òuM>ƒˆk>¨b*?åa?õÂ>æ'Á?)áV?¡G?aý¦=1SF?*í?÷¿á?µ’>øÃ>¾w²>Jæ¶>þ/é?x0?x5q?x?u?é +?Ó­¥?¥Ák?Kjò?•¿í?èª0?Ýò¸?É?Ž¹Š>îň>›?2=à=@›`?È„?»ŽŒ?ªÞY?¨mõ?•Õ?nÓŒ?yùû?yBh?>j?¦o!?ÊC…?ÿ¤'?œ…=ðÖú=ˆr<ˆ->ë°ä?s?„¾‡?šÍ{?RN0>¸kP>Õ¤a>úI?¶¹?0[»?0˜>Ö4 ?1¥í?}íl?Z?ß?Cè?i]?zù/?žvõ?¸Ñ.?’É?{D'?#>Õ ÿ>>Dñ=ÿ7>Íî->û²¤?^×ö?{Õ?–Â1?™üÿ?Ëä?ÒÊì?¶a?¾›•@"@ »?ŧK?½k>?b?|²Ì>ÿX?+?Qìº?NØ»?¬ÍO?¤ÇO?‹L?”›f?9‡ó?`ô?¾š?ËÀä?ý—s?Áy=öeé>Õ·¿?‘qï?<ðe<ÇÅ·>Ãêƒ?€"{?"/=äº? Gâ?~a ?N +*?%ö?sÊ‚?˜ÂŠ?Fý>þÀ£?-=Í?Jº?P²Ö?VÊh?ˆ i?¥?.c˜?Çè?nÓR?W–? cß?§ä? «Z?HK@D\@0o>ü>J ë>ÿÕr? £Ö?¬Ÿ ?§ê³?:¦`?B×Ð?s¤?¨}?ú‘?¡<–=ºõ˜?3{c?º|´?b˜?€Cs?}¨?„Fê>Ö-¥=œ®F>å†Î?˜›?™HJ?ÀŸ>˜¡±?‡Ž#?£#ì?šs>Ìy0>µŒ3>£ø´>Ëe>΄G?jÇ}?…éç?Á@?À+ú?À{ì?ÁåÈ?É?ÎÊã?Ôy«?¦Pb?Ds@?qÝÙ?•Ê[?”/d?Œ0¤?-c?²š?ˆ.»?¦¶?‡—?¸[?½˜Y?ÓH ?|c?šžÝ?—b?œ¸'?nÛ?¿¨?J’ï?/‡?–¿>n´?qNz?ÉLJ?‘„?\’"?a?R°‡?1Èž?"a?Þ?üÞ?Æaý?ÂÎ{@¦F@–è?Q§?{M‹?V×?„—ª?ÈnÒ?¤© +?ëƒ?XK?¨Ðµ?v3?_=?2Üð?bKÅ>÷ÒL> 5>Pþ˜>\Á¾?´š?``ø?jÀÍ?uû?!û?ó^? 7¹?„8>je>-K?5W?Aù,?nã?‚1¦?˜¢?N?JB.?C«g?D/?‚»î?µüU?•ÏF?VXq? ¾K?âw«?™ á?.#h?JõÝ?j,O?É7>þ!Z>ºD<@X?UñT?j²?C´å?J^ê?Ž’g? >œz±>¿/²?2[a?:»ò?Hñ?&“ƒ>‰<>Ûç¼?O©?¦é?Ö¿À?¹¢Ç?‘4¢?lQž?-_?Š4?»×Ü?¾V+ä?Üu‹@ P>Çä3>¸ç?Î?ب?½s?²„e?CÔ?rûþ?ù?ç!>Ù~p>ÆÂß>´ ¨?ò’?ž%}?‹É ?M­©?âÆ>Læ.=¦]ž;˜›j:Øj<®íÀ=vX ?‚ò?Á¨0>ûÃ’=Ð0=ô¾á> E?¹*?ÕÛ?æè4?çgÜ?Heº?@×?}nH?ƒþÕ@W?õ/ÿ?-)?1¥?^·P?j"/?€èn?]é?á?|CÒ?ùO??³«ì?†0?9%¯?{&6?ŸM>˜§T?DU2?ŒÇ? pí?±ðo?¥Lá?—ï?†u?€©m?ø?˜²q?ˆy5?t?|@R?€’h?ÑbŒ?Ö­˜?®3B?®mJ?b'}?tÞ?꣥?èí?¹Âã?»ÝÊ?½ø¬?¿ýÙ?ÁSJ?£ë~?Pû?‡MØ@¨1?ÿªÅ?¦ ?ëò0@/4n@(÷@ SÒ?ا?M\g?˜ý?ÄõP?G&?y#?Xg”?K¿? ÿ?©ñ?%>ŽÑ>?I!Ú?¶é?‘`ì?“F?Ün??ôqÖ?Ÿh¸?…‘º> ïµ?¦È#?´ä¿@ècÿ? À +?–Âw?Ÿ8‰?Ú^c?ÔÅÎ?Ÿ–¸?¨¿š?ð¥?äΕ?Žý?Ÿô?Õ}‹?Dz½?u[?t?‹t?–N?µád?ÔA@Ä`?ík­?¾:ô?p¹ž=.xÀ?ø8?²Þ?Ì?ó¥ü?ì7?â3“?óSë@"ô?ÔµØ?“‘ö?š¾?˜¿ž?´õ%?Ú7M?üȹ@…í?Ø‹ä?˜È7?–Õ£?”ã)@Î +@IzZ@aì?Í?˜²×?¥ð?k—…?F»@5ï@má@,æs?û~?GÕ)==H?“ô{?èøÃ?Ƴ?²WÕ?·ŸY?»íõ?²ç?AÃ?~²Q?‘õ?¥ Ã?¹/3?ÎN¸?צ´?ë”ü?ûâ?ÖB²?»+Œ?àè?ù`¶@ ðó@©Ó@›ê?Ùq2?¶É?”§â?ÄÔ’?ð38?Í ¿?°»?Û±Ù?ûÏñ?ØÍ?»?Mj>½\?<6T?©UÜ?“ +c?w„Þ?k±¾?Xy8?FÙ?+œ?r³?¹6÷?°‘Ý?žä3?¯?Ö£å?½‰Â?…‘?Êøæ@>¦©@,Ëi?Þê-?Ôû»?Œhô?äË@}S@‚´?˯Ü?×îÂ@ l@ >u?nK#?sî?ô#n?óß?ƒl?‚6p?²íã?·R?·?¶ò¬?É_v?È?Û¬°?ál’?¤¿Ø?5 ?úS¸@éR?‡‡™>dcØ?“OÄ?ï<¿?×ÞŸ?Ê›H?±oC?Š|º?œP?µx«?•uN?ø]?/VÙ?ƒË?]‘Ö=ñÔ> “?›J?®ß?oµ?pž?°»´?±PË?«5?ÙŽì?­Ã?ƒŸ1?Ú?œð ?ƒ•þ?4ñ„?jY ?ÃhÆö¢?Xµ÷?yŽD?"7Å>íœ>Xx?6Çv ?!Þ?®ßß?­ ??«9Š?ƒ»«>²>åy@qM@¿ñ?§y¡?¬¤½@ ÞÛ@(éó@Y\@i@?¯zÆ?’?eÏL?*nÉ?äu?¼¯¾?àCî@]Ê?öèï?ÄÁ?¶:?p¢—?^ß?Ôy?Û ?ßò?â†Y@›Å@.e7@ ««?é&Ñ?ºÔˆ?‰˜¾?m þ? +? œû?%Ïf?*¼>èe>èNn?ÚŒ?è×@*…@:a?§8P>ãS??.QF?[pB?s¯·?—J?‘É®?c’ö?mÚ?ö P?ô7Ý@4rB@;³3@ t@cî?ÒÂÓ?¯&?­Šö?¬¶j?„fo>ò§Y?&6â?¬–#?¨eð>åù5>åès?ꆎ@Ýï?«}Ÿ?„Ü·?ÛÓF@qß?¾³Á>å`X?yñ7@ƒÕ@s…?|ø]?‚:Ü@D†@ ¸í?€Þn?'=Î?Yƒo?w…?À)}@ U/@$0Ö@`:Ø@SJ£?ãÈ]?ÞÁZ?_¾s?XÑ-?™o¦?¡‡?êó%@Ö4?Ò‚~?¡aÄ?²²Z?ÀM>?²‹ ?>iz?2'?¬,?°<>cb ?‰R?c§Õ?C‰¸?,…"?<“ß?Pò?VÖo?c~Ä?lV=@']ð@*fÑ@ @ Ã@{?ü‚6?¶kö?cMP?l—“?€2Ã?û«?ÏçH?ÑŽc?y"¾?p¹w?T4>ã.p?‰~V?ª^?è”{@ ÷x?ö„ü?¹³?¿Øg?ç»:?í’j?¤9ö?¦f>3À(;@.2?(k4?c§?¾Ÿ?£™á?Yn?cÙ?jU¸?%L?R:?:îÍ?6kç= , +?b?B?ö ?Åým?ãå?«Zã#&>ôH?@ S@ ‡Í?¸ëw?¦"*?OÏ®?6Yô?-s€? 2|? ‰?±&?gdu?ã9R?Êãì>Q[•>dï1?ˆ…?ˆáÂ?ÏbJ?Ëm‰?ý@W?»‚?RÎ?[žµ?c< +?rÌ?ã=‚?ÏZÜ>Ó†Î>ÉJ™?,~?Û#>í,§>ã-5>® B>‹|?9ª??/??y5>AÚ£>ç> ?ªQ?ªØ"?c‰?büû?bñ£?bíÎ?bæ9?bân?ü>âË>ï/m?òQ?"ÿÊ?H‡?u¬>—H>ÇL¬?1u?+ª´?’y!?›hu?…Ÿ?…ÌY>ÆSÕ=Âs>“ +¨>áÖv?3.?^ææ?¡þ‚@ ú·@I½?‘™F?ˆ3=Ú¿b>9<®Ø*>+_ä>\q¬=±Óf>pp?¿w>Ødp=“øf=5†;K“=*9T>µÂÁ>Þ>*ý¯>…-?œ\>嬂>»wý>ïä>U©õ8×qj;#"€>ßí"@/Ÿ?õ“²ø>« Å>Ç>‚‘a=Úï^?„òf?¿ÔC?c?…S?™ù’?•u—?ª>þjG>¢£æ>Š9¯>v4£>Yl‚>¹ô’>¥¤ï?=ja?)$>Û®>íôS?#ˆ>ù…®>û“û?|é?cò@?E¬>ãˆ?4>ú—â>ø¨?–?  Å>ú ? Œ‚?>ö´?:=p©¾=2©£¦0>ù0>ª±I> ÝÃ>øÙö>Ú^>‘!±?¹˜?8÷?dPe>1~c?ˆ?»²ò?­kã?xL*?( ª<ðða>2DÛ>ø(Ô?3¯¡?‘+A?B5¶>ìY’?¡¯ê?‡å?9”9?¿Yh?3Ô?—߯?v#ƒ>ø +>ø>ø6>ø˜?»â?55?h?}ë?Âe?C2q>¬b*? ?xN?•>á?Ê Ã?¥Q ?$ü¸?WÉB?žúò?½»B?ê‰ü?“ ¬; ˜ >AÛû>è_>ƒ±Õ>¯g?e"?w-?yG?aJ?;åa?"Õ?þp?50ö?Tb©?/2“>ù’Œ?F³€?‡Âû?Ò‡?y• +?ú=°I?FUñ?¯Š¹?Õe-?î¼3?Ÿá†?H_1>÷­>yCÇ?it»?®Â„? ÔŸ>p‘=?Z?+àÄ?ƒì>¶0ì;6ì?.ãK?{Vo?!Åg>ûzº>‹9>À‰y>ûÄc?a´µ?{çS?þa?‰Ô?±§?Á$&>š•}=ÖkK?UbW?n;?µè‹?¼‡˜?‚ ?{C6>üÔ8>ôa,>L-3>£õ„?‘ŽÂ?‡ÄG>˜_‡>ˆp>{€[>îÜ?¤hÀ?¬?Âí^?©w?Ád?t¡'?è?±Wj?e?2sx?~4•?r¶?YÙT?¥¨?à™?Ÿs\?Sñõ?Ó>Û>X>¥É.>…è†?ƒü?/àÅ? =>ÿˆ?€5?šæ•?m@?f¤?x ?~{¡?}Å?w¿!?é3Á?ßÓú?À¤?ÍÖ?´›J?ŸÂd?Nlˆ? ˜ù>¡To?›}Œ?ah¯>,k(>ÝùK?^7Ô?7õä?ØK?Kí”?„9 ?€ÜÐ?€MŸ?7Ñk? ?Bh÷?R$ç>›‹Ã> ±)>Ùƶ?y8?~? áã?f1??HÚ ?S#õ?€œè?„ f?±Ñh?¡u•>Û?'Ë?¹g?›®t?o7>ÆÑ‚>  ? î?ŒF…?aÛé?#?(´?.[%?Rän?rRq?,°G>ô&Ò? ÷µ?2‚?Ì×?î¥6?sä>Êȯ? ä?Òá?ÆJi?ÇÊb@h?ïÙ0?z¯ç?…É[?¯(Ä?‡X²>±€>ÑöI>ò¡?4‚&?i~É?mDe?9¾?=“ ?=>£Š>5F>Çîw?GÑ?¯¼ß?Þê]?Á„=?»p€?…Ÿ}?€#É? ÑP? ±Ì?Ѽ?’rÅ?Qß?cwŸ@“W@1g?ÛÐ?œëö?ÎŽ?Ðÿ…?á¸É?Ÿ1a?h±?€+ ? é?s–„?me?R¢d?n²>tB<Ì+6‹ÞT?4«?¸Ò0?·?®‹Q?í‡?e©x?¡ªª?Â5O? n²<%Zå:Ÿà>Å^¯>ó¼Œ?mW§?të?ng´?g|ù?"£*?#Ò×>®yG>Ô9‰?Ž"X?”³c?Å +e? ®N>çQ&>âÆË?k¹?r”ä?ÜvË?Äî¨?¥p7?ªEH?¯F?’úß?yg®?‚°×?ß?°e”?Èãí?Š;?añÎ?»Ç@?Îúû?›Ú?ŒÞå?$Lê?6kÕ?²ð,?°áæ?ªañ?ÎtM?¯%Ö?Xmƒ?W$ê?BŦ?1õÿ? ¸w?\ý’?³¦y?G8×=¼4>—B°>ÿ_”?G‰ð?mU?ö[7@‰?ÁyT?–KE?¸w>¶å?h‡×?‡B>?Ž x?”Öì?†aÌ?ƒLø?ß/÷?æ~¬@(bþ@¼?X´o?o¨ô?‘FÉ?Œ"Å?˜R"?…U?:Ç?QÒ?†yû?(Ž?À}^?Ûv?ø` ?ìOŠ?Ýl9?M0u>W>>ø­ž?$g!?Ÿ%G?Á¸?g½á?5ÅS?}¶ù?ƒBË?·®ª?Ç Ã@ãÛ?ü•"@?i@û¸?½ø?Í?8§a?7|?€}ê?~õ?uòß?z+´?~e{?¬ )@Ù:?ôÌí?Z¡?9׺?ž’Š?®°ç?Ài ?­¸Ê?œz?§ú?±pŒ?ÅQ?Ê¥W?øÈÜ@¦™?ùΕ?ÝÖ?t]^?é?—ÌB?½ÐN?ƒ[¤?^ìÑ?M”©?NUG?ß„Ü?ÿµv?›®l?ƒ÷—@*Yk@?¢?A0 >õ?a´?H]?Ôçº?Þö?8? +¬?ÌÔ§?Å¡?«î|?›zð?0ò?1Ã+?,~²?N-å?  +H?”Ô?5(9?1Ó?-¥?HÈÒ?’! ?¡²Ê?ͨh?ωC?ÔµÜ?¸ýZ?†?ís\@Y@@,v‚?¾ð³?cûñ?¾ž?ª<ð?”žh?Þ%@Î?è“e?£ñ?“ £?|ä¨?—Æ +?³'Q?§Úd?œ…Ç?°Ç?ÂO?߶?ïÄK?¨ÂU?y´“?Ì—–@$?ÉÎ?¡O;?[ïB?æÐ?ÇY?¼²ß?kƒ¼? mš?Þæ@óð@#%?ì|M?†à?)ç?™'?¼…?œ ¨?Œ.h?5ij>ú{"?“h?)µ?‘ft?¬8ë?àpÄ?ý+-?ªq-?Î?g(?]òk?›\ï?¸JÏ? 3®?†mw?›?§˜Ø?Ç4Ç?ãŽ?Ìü$?ºŠß?r¨þ? ¸±@äL@Y\@Nö?º È?нi?ߟi?Éî?¹Ö—?´'ð?¬bb?ÕIè@B¯?׌²?¤æ™?‹Ë…?[Ô ?G`_?%ëø?G›?x0À?dr×? öN?ˆ-¦@C?ÿ  ?Ÿ©?¦j#?Ør?Æ.?‡E?kdV>U¨á>VÊL?DÒ?¥¼>íÐ.>üU—?v6—?|¶ú?tÒ7?tkˆ?³æ¿?·*è?‰ðv?†™|?ãÊê?óÅ@?Ñ5Î?ÊN?ç=ø?êÊu@ ä@)Ù?ŽØ>tßV?›?ù<ö?Úvv?²M…? 5?!&ú?~™’?Åÿú?ª×À?qÑ ?†;o?«»N?¡Ü?ex*?iç¿?q%¿?iEÑ>ñ +e>õÔÇ?u~x?yöÃ?¯î?´Cl@7@ǹ?¤V?oæ??¬m +?Æ_À?ÔDå?ß½Å?ïÛÇ?÷÷Ý?ÕÁ¾?±€k?”øŸ?-ÛÙ?~~?úÆ ?þ†@À,@nÊ@°@Ì%?”°?ÉV>‚ó=þL©?yr?²P?Wô¤?Õd?C®?¯'h?n}ê?®”?„I?ä¤ÿ@ÈÓ@?M@)´?ΡË?Ôè¯?ïíf?ê‘?¸i?¼Q7?ùò*@'{? cM?b7R?A—¢?9iÐ?SMŸ?j³§@ +C@‰ºÀ@Gw@>çZ@=´‹@*H³@*™·?kp?iÅR?oªÆ?lñŸ>lÙ:<:¥?Ò«?w’?@Š?Ë?"ÔÔ?SkÒ?;K)>裋>ø Ê?DÏ:?A&?á¤à?è.b?¿„«?¿Á]?#?Vý?ž7?› ?>ÃD?‡°Ð?øŽ?ú®ã@zt@l^?ÖÔo?×½z?AUã?" +?¯#?æ˜Ò@.øó@bç™@!?\"s?t«×?¬ †?±»Ñ?í¤Ã?æ,”?¿ +±?¾cª?6âø?k‰?òkŠ@/f„@°†?Û©?µ†‰@–ª@2K>å/z>å#ƒ?’eZ?V?›ZQ? ”Ì?¨h$?«˜?®ê?®ô‰?¬­ƒ?«s#?¬|?­|V?¯]}?¥S=?£V„?‹ä?{Ú^?jCˆ?o®ƒ?4\ý>ä8?DÓ#?«½?ªøó?ª÷]?¨èâ?cÛé?cÙJ?4´?K??{ÇÜ?å +?,±¤>‰ßk>Ç?mO?""T?\Ê8?`å?czÛ?g£¨@¥H@(K ?•‘l?%£Ú?™1U?ɽ}?¤ÿj?cOq?} y?ªx¶?®çó?écû?å)ë?un(?Vç?©†Á?¿B[?ÞUw?úÔ?í=?Öâ?ª X>>·Í>Jüƒ?[ñÂ?`N[?ÚÂ?àðu?B%>ö‡½?¼U@¬Y?ÃnY?cÏ?cÞ?cŽ?“­?×Ø?Ñ +â?7£-?#½?,8¡?5¯¼?µf–?ã%á?ÓƒK?È#¤?·ÎÈ?Œ/?qÚ;?Uš>ñ–'>ã/¦>é9Ð>øÀq?(ì>ñj>ã6S?Z +ˆ?„A?ŠÍ>ÝÐô?Âœ?º^ù?^fÖ?JÄ ?’wÊ?–Ñ@6uL@QQo@Tx?òH>?›²p?/z?-ÄŸ?dO¼?cwn?jlƒ?pðs?Ur¾?PQõ=ßèt=êÕ?•É?§ºò?ŸæQ?˜É?Ÿ8’?ª] ?…Mÿ?å‰?6Î>£Ç»>ÒŒ[?cŠ?cø?Xò?^Qæ?b¸k?bëÃ?6Š>âÔ‰>âÌó>âÅ]>²c;>„Q >–ÂÖ>Šp>êNl?Çß¼?½Vµ>â]²>âL>>¥{ê>§¹>Ô©n>â°>Õ)À>Õµ6>uÎQ;Û>?ÃÄ?2:?,Á?kÕ?&¿u>fŸ>qQ·>g\f>€#R=ë«E>¤dÌ?H7ÿ?0b‹>ȺV>¼·•>ȈÉ>ÆJ> Š²=Ç%_=/ºì=¦?Ò>Gâ3>P? 0I?Xϵ?[h?Upz>û‘?ÀÙ@1¹?÷[©?—r?†û?Jò?R?Y‰>áè©=Ç‘È?6Õ?mÊè?|LX? +l?%èÃ?«?,Î??•€?<—>þj»>þ*ö>ýæË>ý¬X?\P?Rë%?bSL?¯é ?¢Z +=Gg>[7è?¼­’?šy†=MË‚=Âñb>\>X(”>‚ºç?ƒcè?8É> ù>ú°>±²>'>ãíQ?H#ß?º2B?r³n=X” >¤Òn?AŒV??è?Nû?b'b?‚Œ#?xp?xžP?:Q†>¨'Ù>‰/=Ñ-·>¸™’?_ûç?ŽH­?¹ÜŽ?ž^³?lº1?mdf?x$.?‘¿`?©Õº?‹„?eàŠ?\8ü?>³ñ?ky²?‘Üa?mp?z?Á>×ké>ë >ø\>ø C>ø#A?,iÒ?x.‡?]èu??ªˆ?\«"?f’V?Gwo?8îI?P›¡?`5m?bèÖ?xwû?F)á>ø?5`×?I ?Ha[>÷Á?*ÊÕ?lN?0š•>ÅUv>ÕZP>ùR?30?0Õ ?q¾?š4º?j²n? +5? þ”?°?/j±?8d'??ïŠ_?¹*Ã?yÞ·>ïìÿ>¶wò?5Y®?i“ ?ÓG?=¸,>Ø`…>õQ>úŠ4?‘7\?ÍLï?‚ac?ñw>½ +=ĺ?nÍ"?µeÍ?BX?wQg?w¿µ?{c ?l>û‡Y?)£S?+—À?C¬Õ?GY?®Üä?º„®?"ó>üG>ü-G>ü>*>üQ>üb‹? ©•?‡˜?tµŽ?|ñ=M|=ÉÆ…>üàÛ?¡ ?ò;?Ó²?(V?'è>ýP">çEÝ>o‡O>Ãtd?}•¾?R[T>·A«?ÚŠ?fëV?AÌô>誢?-UB?~B?˜PŽ?¹ºD@%-@(¢’@:H?Ð?ìQb?ø=?‹ƒè? ^§>ú–¦>âpé?.–Ã?Rs?2? ‰>‘¹$>$ß=è/=ˆR–>ä*â?Q ?da? .'?Èu™?Ç$?Àù?rç8?%‘~?:Äi?5@I?/¼?>û ò?-òÂ?¦é?L?'„?ˆê,?ä»?ÈO‰?˜!C?¤†?¼,Ž?pV?Â?]A?^‡?IÛ?k¢>àQ>³´Ó>R®>Hº®?ent?€Š•?BîÅ?7èm?c^˜?W¥9?["q?]ZŸ?KíH?1ÅÙ>½X?³?'Sô?}»—?¤Ñ_?ãMs?³¾Ñ?€Ú?q„ð?\Æ>ïâX>D??@SÅ?…-«?€Âî?€úú? ²×>¹+?„“„?žIô>é7>‘ e?„ëq?‰Çd@?ìc˜<1 >3v? )ý>úkÂ>ƒú>ç­?@y#?Á>ª¤½?QÓe?Áׂ?¢Cu?A?zÂf?jÈl? D>®¨|>ëžQ?N`>ÛÈ›>ÙÀç?iÓ‘?V9? +Ë£?ô?a=?”ˆ@zþ@Ÿ“?b1?,TG?Ç)?¹@x?UZW?—÷@kT?Ðãõ?ƒ= ?iÞ‚?5Û˜?‚òx?­.‹?ƒøþ?@Œå?y±Ö?Œ ­>Æø«=¬†x>Ú”¶?[{=ÈZ=Õû†=dul=‰’Û?UðÖ?G!?{Ì?S¹?,5?7çt?N3í?h ? øÏ?•Ž&?aª¾?D5Ð?/Íg?™ùó?Ü?‹Ý?«ç?+0?º)s?™#<Å*×>Áü*?q£?¶H?}@?ªÏU?·ìÈ?æI?ã¨2?_®¥?Zœ?U®…?^UT?á?¥Š?ÂW‹?¬cÛ?Lð?67\?r??5-k?pì?F¼b?nH?ÇW?!a? io?jý?À@ ˜?¦aŒ?†M‡?+žñ?¾;?ƒºF?ÏÞ?LÍ’?Nh>´ƒŸ>©<3?5è’?4ÿ5?T?à?>ç¼?Lg§@ YT?Ù†Ä?I8?s4;?ßÊÖ@<<@-Q:?á??Ù?¦?ÿ[›?S§ì<‰u ?ÊU@]?ž*„?[Í?Cì´?@¾Ú?ZŽ¬?YW{?Tȃ?P:#?K¬?F‡ò?¦?ˆ~¹?ɧà?ËL?ºæ¾?«U¯??}ÑÛ@+[n@Åï?÷¦Ÿ@A@‚E@f ?ÿ b?ïM=4¸?‡.@Ý?…‹>§HL?$l¤?F@ý?‰z±?š½W?–K?˜W{?eõ ?I— +?7§?A˜?ßÅ?]€@#ò@2F†@\O@}é?‘ˆÃ?‘•Ñ?´*ø?®ÃŽ?pGÓ?c$Ó?³Ý?x¬?¤a?¼a?‘æ?c3Ñ?²“?žL?€U?…Ê.?ø®?–™}?˜¦¸?¨Î ?¸M>?³|Á?¸??ºÍ¿?Á©?ë@©?“8î?.Ô,@ +ò‚@3Ap?¦X%?¢UJ>0S?Ì3?øÚ+?ȉ…?¿¼-?†US?€ ™@1”@5¨E?Ç?­@ëŠ@]0?ÔëÂ?Û%(@D +)@6M?«Áz?¡rý>þåÆ?5W?N9? +Q;?C‰?xÈÿ?̈?®@'?SDR?ˆ;o?Ð_h?Ó‘½?ââÁ?ôL@ `þ?þR?ÄAs?×ý’?üÆ?°4ò?¹7?°>ý™‘? 2í? ²?P"Á?}Y/?”Õ?¯P.?°t?©¶ö?½‘k?Í ]? N÷?|Í™?|ºù?|¬È?ZLÈ?Ec?ãîœ@¼^?‰¦¬> a£?‹Ô?¾õ;?Eà~>ÊCœ?S×ò?†…?µÆ‘?Ëû(?l?/ Ö?’ìÍ?«¼F?~Þå?RŠk?ž„|?³CF?á69?ú,E?àïÒ?ÚA?h >ùÕ>™×>?þ>‡ÝË>¨N_?Øí±@Ñ@×@>Í?ËíÁ?Ž÷µ?¨‘Y?º“?¾®ý?¾J ?ºè?»ÛQ?.¦±=¼º?$} ?‹X?[i/?(Ž»>û—>±E?\‘ç?²×¡?‘ø:?S|ê?sÏ?†/¯?5Wb>‚St>ÚtJ?5Cg?bµ¨?Ÿzü?µIò?à}c?ô³|@7â@fæ@ ì¤@Ã?ä'¼?Ò½ÿ?©=Ÿ?¦ Ü?|è{?^ˆ¾>2í?ñDö?ìJˆ?²a?°F[@(+7@'G>?5÷q?Ix@¨@ä?È3?¶³$?¼ð?÷æ@,’@F®®?¿º—?3š}?‘¸$?¶ô@F@åƒ?éFm?‹™e?¶òº?ò;?Îûy?¹I?‘Úk?˜R„?…½¢?-2?)I–?t›q?Yî<¼x=ž?{¿?éõ?z|…?ýH?öš›@\9?Þtv?Îm?}î1?HÏ ?˜’?³žx?©šã?¨Œ_?²Pù?±¾€?„ˆ¦?vN?@¯?œä ?¢²ö?²Èu?¶w?и??ÌJÀ?ËUÍ?Ð~·?†Q?z%Ä?¤Ä ?¯Fr@BK @m*ê?Øz´?­«?o¥Ã?¥u©?he?/…?sÈk?Äa©?Ò ?Û‹Ú?Õ?²ï?·6ã?o#?kŽ˜?¤iy?¯4E?È“?Є?c7K>êìÅ?^œ?œ6a?ôNí@B×C@2ê?ÿ÷a@?Å@ ðú@ %ï?tX{?p¨o?¬ûl?¯ˆ›?û?aîž?ÜÄ;@  Ú?Ôøß?œÌH?o‹?¢^?‘^£?Hk„?>÷×?¤?*ï?ôÄ?Ç9®?Ÿ’Î?’?G)=?aÆ?sÂ?¥jH?@?ƒ¯Ñ?¦[Z@ 4Ý@J&?ôg?û›¦?i½Š?föÈ?õr?©‘?Ôëï?æ¡?Žâæ?"í³?⊺@Qz@"[?:Þ?D×=?ô‰-?öRU?L±3?C>*Ñ9?d{?À„@•V@é,@ey?Ïn?»M6?°?ƒ(?Ö.?Ø9â?‚<Ê?dì¤?™Õ¤?«/?ÌÓ¬?ç\m?Ï»P?«x\?«k?«c²?²3s@ @(?ˆÝA?dGË?MG¹?@py?e©É?~ò‚?hxR?Yw?{¦ö?ªûÇ?¥‘?5G‚?9Aÿ?³š ?Á6p?æû?ðûÊ?È7Š?ªÀ«?¿ €?Þt—?ºj¬>ôÊ>ôÁ™?c‚?c{%?²Ì~?¿6v?êÖR?ð5¾@ 7[@@Ã?¼¨¡?¬Ž?‰/?£Á@H2E@Cõ`?èˆ?×Øz?À;¹?¾Zé?½Š"?¸ŠK?Åš(?Ñ¡?Á!f?ª_‹?é >ç’_>ã%R?`Î(?o¢?^]?T[X?žeâ?Âf?²-_?šv?‹ÿ?c#õ?mÓ?ô¨?§s?ö©?‘¯W?4šÈ?Ę?¦º?Ó­P?š2?MzÉ?¥do@Ë·?üIS?¨ã ?££>ã2·>ã3«?ôy¡?ýƒÁ?­*?‘™4?…ÍZ?‚Ôù?S‘[? +ý]?/J¼?Œ‘í?˜?ÊG/?ËtX?;/?@!‹?“©Å?Ýô?+Ëß>ãLþ?šE’?ãFo?Ë «?ªIÒ?™í?cG\?pÆv? –?ž ¡?§Qq?œÆê?t2?z—‡?±h¾?ÆyÜ?·oà?ª_Õ?€ÁE?´®>ês±=ôô?T\p?Y^6>ú1 >㯈?SÌÑ?bî'>Ž¡=Š>j=¶n´=â®>°¥c?½î?$˜>☓?׉?´ˆ?½,?â?U!=€¼¯>¨ºþ>â Ç>G²;wÁ¿<†Âp=ŠÞ>WËd?D>O?:äÇ>->ƒ!,>Ô͸>àÖä=î[l>pµV>®Ö³>Åà†?å{>¶œ<éå:*JT=MäÈ=œ ë<”‚0>9#ÿ>…²> G=_š&>#ž#=ðûK>¬5w>ÛÀÒ?.ÇÊ?[6?‰M>ÎÇ?Ç£Í?ý’>w›n>‹Lƒ>š¸ž>ªŸ>¹l)>éé9?³ >'52; =;ó@={Pô=¨ê$=å‘(>Q>ðeX>þl4>þ-1>ýé>ý¯l>ød>±“>Üj?|Äë?l¦;>üY2?ð?~q´?i9è>Ùz>õª‹?;Úc?AšP?m˜Ï?Š¨„?Ü?æ?£_>GäQ>¹ˆq?Cû÷? åñ>(I=Ýv@=U…>0‘‘?«â?,C?UÄá?6úþ?v.?#ƒM?*‹s?F,/?tÇJ?Rú?ƒ"?þÀ>Ø™>ε²>øq> C%<ÿù´>L‚?g>·EÊ=úlð>ûäH?x-Í?P½ó?-J„? +9>dhB>å>²”?2í÷?¦VŽ?2ù?ˆ÷€?%H=B¾i>l„>ùÕ +>ø+Ÿ>ø.`?/Pä?x:?ˆ\â?”@2? ›¾?º?N?¯j?—°? Ä??ºV¨?—ól?X +µ?4à>ø›»?c/?· ½?Ÿi?uf¶?«ò¿?è5?˜Ç~>øü¬?$&¢?Mæ´?%Ò>ù0Ï?9(d?ƒì¿?•üž?¦¢?‚=Ê??Ûˆ?¯þ÷?ùª×?›#t>ÿB…? Ø9?ó¯8?Zr+?iø4?ÉÌx?4çì>~£ >†‘?¤k?3xÜ?@•±?Qgß?Wãõ?^ad?Vé>Û¤X>ÿ¶\?x:>üVq?Ô? ì½?U[>]áå=úÔ_?=9?)ð¸?m@^?{ÞÂ?²á‡?Ãvú?NÖÞ?* O?#Ȇ?†ú? +‡>üqU?jþ—?vM#>ÿ{K>û«ú=VÈõ?gív?kÆœ?°Åy?¯ï\?OKÔ?<óF>ý_n?$ $?“S?Q?”¤@?zu©>ú¨š>íFÀ?->³GÁ?²f?½Á}?¢kS?†°?˜Ãä?³N?¤ÚÛ?’e½?¯Ã“?ÊñÞ?´VY?ŸÖi?‰æ?~ñj?D*G?(IE?O¿?bwÛ?{„?O«?„D%?‚D=šg.<\„?p ¹?mžK?*”Ÿ?DÙ‘?¯9k?¦ðQ?xdÐ?aþe?Fþu?@ú‹?Dð‹?ŒÅå?Þõ?ÌÞ?µ¯m?› „?€7 ?ÊÉ@ ?±à6?O_>[È!<íYX=Sß =˜ >ÂáÌ?rC?F™?V·?)GP?h?˜4õ? ,5?¸ _?´#´?ÀïŠ?·óÀ?«¢>î65>9,Š>$‘õ><(ë>­-9?€ÉD?€u?€Ðî?†hi?“”§?>mk>p->í×?*6°?'ø»?ÐÇ?–+y?Áw?“­@?(?*? +?TCK?@²v?¬2g?·Fd?Á„Ê?Ãõ)?þj@f?ûh6?Ò5³?-¶?0g?›ªÖ?`E¡>‘yh>‡+}>=&L?k6?ånÆ?Á˜ç?Ÿh#?ƒ#?o¡«>²0|>è•Ò?5>I.=‰c?ro•?‡Ê?=®0«;¤BG?º[?­lÌ>©|º>ýÙ?gC?U´?'—¨?C|Ó?o5?‡*à?™ g?‡.%?=#O?“ÅÛ?ËH­?”˜³?\.™?¢œ?Â:-?Â:2?Â=–?fk?{aº?€Gå?Hð?³ß?³uï?j¡?XÛí?Ì«?@Mx?ü¾D?Ýά?ULó?[žý?…©?…¸?†½?Þ£?³Ú?Àu?Â\;@¥õ@0òm?ñ˜?×?…(?‡?.?¡«?dX9?<8?zB³?uM^?ˆÿØ?Ua?€™? ©?'÷M?5j8?€à?vy¿?;š]?@}Ä?Eb?ETÂ?5V§?A6¢?U¶å?‰\?²µ?„v?.ðI?‡q²?µ­?aC[?ë\?Å°}@oË?Êl=Ì&>ÞÁX?kM??!6Ù?[=A?X:?>83æ>†Ì?Š•[?…Û?ì?}úÑ?Zdÿ?Yx.?l?ykƒ?¦ÎÀ?±ü„?Á©?–†«?Â-?­ê?-’ÿ? T`>ÒZ +?I>G?€×í?[·\?S>¡?ší?¨6?UGa?;b&>ª¬c>u³þ>Ù8×>ÒûÍ?¹Fë?ÀÎ ?€ë&?Ã?¡½?¡!›?j’L?^¹ž?‹?`»?€‚5?Ÿi#?ÿî&@ݳ@Å´@¹§?À›1?”å?s?GÕ¥?€Rá?že?Àm‰@h0@MªÓ@M·?¢»‰?Mªª?+?Í^ñ@ 7Ä? D?TQ@*-@ûæ9?.?7Ïc?~¡m?õ›½?ÆîÁ>þ%?i Ô?îé?ʱ?~B¿?fg?1A‘?Ž¡…?ðÁp?Ý8×?½QÊ?½ÕY?º8Ô?›)P?q¸?…=ÁZ? +Þ½?}h?}S\?}E*?‰;L?” :?£ ¥?±!ï?€¼é?8½?b©â?|¶§?R3a?2ý&?Ö[@ƒÃ?­ªƒ?HÚ=?ëÖî@cí?o8|=°¹Q?‡{Æ?Ä7@ ß@7”}@&+Œ@4Ú?ºâ†?ˆ‡=?AÂ?$lç>/=£fÖ?¾Ç?`‘é?f)'?ïQ>ù»>ùA>⢪?Ø5@A”?÷Ï?â)ä?þÏ.@SÜ?ÑË?¶r@(@‘¡@ã?ö»Š@+[»@Fu·?é®ß?x)?k§C?^§Ú?Ìpé@ ?Õ§±?¥É/?bt>÷MU?p5S?¹T–?Ë­?Ù^7?ц?Íá9?ÈcÚ?Âí[?»Âa?¸·ù?°«³?œii?Æ_¹@9 @%MD@5¯@­?qÀ?4‡¸?·ôz?žY+>=­Ò?ôÙ$?ëj#?–”?åi@z@H&>@J–=úy½?pÒµ?‰°›?e@?/’?Ž€Ï?œ^Q@C@¡‘?Ú¨i?°œ?€ç3?\F?Ø~@ ·ç@Ü ?èyw?ã?Ø?ä¾ ?Ý? ?Ôb¤?ú&1@"Lú@1;ó@OÌ@?¨„?ñ8t?Øl×>æeI?åû@ +1@œ}?u-Ø?pnß?Jy#?Qj·?[Ò¶?f8Â?‡–?ˆ2?ÔZm?øÀ ?¯]`?s½>?£ä?Ó˜®?§øg??§d?(T +?ê½?6Ï4?€Å?–s@Êü?þƈ?|ä?fÖ?¦ð?­¢°?y+?k@¶?mLE?v6a?îó?©=ô?¬ŒÊ?±–í?¨Ï÷?šèl?«‚•?ÎÔj?Èæ+?ÃZÖ?»Lö?ké?m.¤?—…ª?•°¼?q+p?kc­?£ãO?°a.?€m¹?J[r?­g÷?êÇQ?ÊpÄ?¡Ðe?•_?j_„?ˆâ?Ü2}?Ü‘;?¯{«?¯cs@;/@¾ ?•N?ix ?€D$?ŠlÊ?ÖÐ~@Ù‰@H@({?ñîÝ?ÄÀs?¬c“>è‡ >øî•@Œ@Ê4@¥˜@ÊG?·E?|wP?-Ø>çºÞ?“í@-Ü?í%?Àº?²¯?ŒF?7?PÒZ?XP?‰N>ììH?¸ A?æªÆ?Àª?¢%Ÿ@…@fd™@4gr?L±ì?u@‘ì@˜0?‡®ð?€IÅ>1©Ô>ž{¤>ÞôÛ?¤#§@ šp@ ü»?ý.Ã?Û×v?e@k?hI?Ÿ,Ñ?¡”?—‹?Ž+?“gõ?«T?ˆ)Õ?,0k?FÇ'?‘ë²?Ý??"y?Ø?}¹?€÷Ì?ã€d@S5?Áe,?•ãÀ?¡Í0?ªº'?ɱ@=«@Úš?cˆV?cƒ°?Šï?Œþ?Ê|´?ðÅß?—÷?R.‚?Ƥ;@Ш?ü{V?—¼?®§²@Wª/@ZÜ6?Îj÷?ÊäD?±+;?¡¥z?¿øé?ׇi@ ”¹@0³"@¶?§b?¡Ç&?c-m?`ÿµ?c?c+z?_¦?gç?‡$Æ?ª]?‚î??<ñ?~Ñ?´y£? lz?+ld?(ô?‰ñ.?‡¨»?–i³?”Šè?˜6^?‰š?C¬>Âcl?;§?£Xp?š¡‘?c3‘?ddô?\Ã!?Xï>±”×>ÏO·?’xŒ?ªq!?Ÿ<8?–qS?¤Vô?±‘œ?™ƒ?cKY?„”÷?ÖË?Ì<ò>žjÄ>¨]Y?=–î?OÔl?!ï>ÐÆ?šSé?âùŽ?±É?heÈ?K^›?üX? }4?$ç?1ó,?¼o?¿ ¼?„ýq?m¤?›6è?ªj[?‚{m?ZW•?#é=ñŽ=Æ&'=›G> Þ5?«©>þÈQ?âÿÒ?àoÁ?;>üx?.HH?3³ >ìˆý>nÞ?·?b¾?e8X?a¹x?DOg>âƒö>該?@üî?F­Å=Ÿfæ>7þ>Ù F?6¾â?_âü>áÌ–>º$}?…(x?ežë?’¦?à:?1rN?+U{?%A?a>‰¬ > +?$qB?†ç-?€À[?`ð?>‘|>ß¾­>¾1Â>’d>ÞHú>b§¼=¸éœ>™ü›>ÇÖ<ñ‰p;ÌKï?-(3?WX?2”>þWA>œJK?¢4@LE?÷Š >~¿E>_–>?gŠ>òÓ>›t>µô4?²’>#™??è«?ký’>å?'ë?.Ñ?àY>þŸ?~º%?i2Y>›¾.>†‚=¼]w?Vݱ?U >üZé?Y¤?{ûx?`ÐL>ûž>ÛÙ1>‰o? FÊ?–±Ð?¬N³?Üt ?¶V?*üO?i‡?»”w?žÁ?X?iO?w6?x5b?qÊv?Gâ?‹n?{[6?Âé`?q—.>IÚ>§ÍÁ>øÊe>½^D>7¥³?…þ?š”R?e‰>ÔÕ>êhë>øc¯?dŽœ?´O"?ª{Ea>_¾N>DC­>ã¾´?TËè×?ò=?õ˜s?º:ÿ?i1?È>d–¤>ùï1?PV‘?ŸÐò?Ü‘Ô?±Šo?Š›?›…€?¥~P?‡þ´?5¾?\A>ø¥g?;Š?|ƒX?xâ“?xÔb??ů?`‡¨>=1>Ƚ0?+ÚÈ?Ãà>ù;À?4¼ ?bœì?h¥V?yvI?Š=Æ)Û?l>-?âPÿ?³MÅ?z§?ÁXÙ?ù÷?‹Ô>Ën¬>ßį?Ho?$ŠŠ?Ãú?]#>úR?(ð5?Hb>û„ >°0`?/3'?FÞ&>fP¥?/Í?zÚ;?ú>ûS¿?Oð?dÚZ>E1š?(åý?K±Ã?—Q?žŒÑ?7N?è©?H«ð?T5²?Œ>Ê?‹â…>ã }>Þ½‡??’>üµW?^ú?cæZ?I›â>G¨ê>èÙª@%?Üß>ÇzŒ? É}?‡®?ŠŒ“?É|G?Äè?ªc­?ʘñ@Çy?Òé?_›=?‡<;#?#4ü?¾®?…×±?ßë?å?%‡?¶ÿÈ?ÿ(?®½/?~¿1?OŸ}?G'+?L”0?N#?T?Z)D?Cé,?1ƒE?b 9?rim?²m¡?¾Hú=¡µN;g2?~ÊL?y$C>ÿÃ?|Ý?’r±?ŽÃH?aÉ/?€Xn?¡­T?®@?ÊLj?ÜǸ@yÔ@¼@=‰?Ðx?l3?LþU?ø?î0?Uõ?FØ5?jŸF>– p=¨‡À> ?g?‹ÿ^?©ÔN?¦ùK?¤\?½ç‡?Àæ¿?°§?¸Ëà?«Åç?¤m%?²ð?ô–?mß+?”’=?ùS?ÚÙ‰?€ÐÉ?ªæ‡?ö¿¢?Úi¶?¶2?=h>ê~ñ?UM?n5½?€ú?~«é?ƒ¾8?ƒi? µ? 9?´?›“‚?¥Ai?r´ò?pï?¯¿r?´m?€™B?d_©=Ûª@>€8–?5?* Ÿ?¡©?€Ë(?2þÛ?¸g>5Å?wx@?ೃ?ÀÂe?¥‚c?€ ?8mº?¹®>ÓóÅ?¢©F?¾ÌÁ?<Íe?:?à¥ü?þK?)k>þÝ?†5|?†ü)?ZjÀ?W´Ï?q­?zÍc?Y|R?yŸ”?¨4¢?i©©>yÿ#?I"ò?¹÷?É›ë?ç°w?¯˜ë?lJ?£á`?ÂCE?»mh?ºßÔ?:£Y?…™?ˆ\?@¨@-à@8ˆµ?½|æ?½bS@È@D?»†¢?·Y$?‹ì?]º~>ì$„?Çd?F¼¸?DZ?3ÐP?šj?ó5?¾Â_?yøb?©v +?Ì]u?¤/r?‹ŸK?ƒbž?ŒÀ?‰å?Œ?‹k?‹·>o¾¯>Unº? g•?/)„?˜Ô¼?›Ü¥?Ï¢?¾ž­?…1b?ˆ\¬?˜º-?• ì?™ö`?—T?›?Úfz@"?è4?®m~?hͳ? ¥ê?Wƒl?yu?°-e?ÅB`@6 /@G}?hPø?qÓ?ôh7?þY?2s/?4 5? ó‡?-.?/!+?\bš?²?Â?ª?»ut?¬Û?¯‡?"Ö?‘Ïâ?ö’K?ëÕ ?äÙö?´#ä?LÍ?§¬?Àã?“z=ŸçD?×îÛ@*ü?r=â­@”;@/Ø?¿aœ?¯Áy?W…?+?<Ü7?Lj?ÊùZ?Î+@?šQ?ŸY÷?Á¥:?ÙÌ?ÐÃ(?°;Ý?*?fõ?Á‰?¿Ù?¾l¥?†¸‹?ƒ€?|Üô?´+¥?‘??p/?·&:?Ú1?œª_?€Ý¸?e%Ž?U¶Ê?­|?Á6ë?.%?Æv?ÄA?¿?•Rè?™»1?ìí–?çù?“6?ŠÊ ?¢1?­Í?|Š?ZÀ?"?.h?€‡ô?£"@€U@#k@VÈ?Ú>2?Šg®?Zˆ}?b¨?e¹g?® Ì?Ëí1?ê@$¼@oI?ÄCj?{÷Ã?¦¨?´Ç?ÙC5?õ×B?†Š?)~?¤ùç?Àú?¢ì?š¾Ë?yÄ.?oO”@ ¬k@±é?í?~|N?¹_>ÿ¦Å=4Eï=lÈ?nô?|ÊÜ@ ~@jØ?ÿNØ?éû,?)Aq?:2‘?A?—u?þýK?ÜÏg?9Q(?Ap6?~È?Ws?­?ˆ|Ÿ>þ‹±?U(?¾Òû?°ÞF?•?µK¹?ð&?®2y?€É?¯U>þz?Ëž? —¢?ÆL?  +?l?œˆ#?Š3 ?}q?}`E?}O ?–Õ?§ €?oVŽ?3âC>ÕÞŽ>t*B?6Ý?|Á†?|²ö?|¡˜?²§?Ò-^?ëäÛ?ñ1@?— +¥?a1š?=¤%?$¿?²ˆ¨?ä[°?Ì ?¾ã.@ bÕ@;ò?ÝÝv?¸xk@ãÌ@(Õ`?¥õr?L´0@nI@4ˆ?Ì0o?ž 5?§R5?ªàÍ@iç@ºÆ?Û€Ù?»´Q?@0†>ú?dÌË?‰ŸR?—+_?“;?­ª¿?».y?ýQ@ +~ý?±õÜ?†·\@ ÉX@1%E?Ë‘$?~\X?xìh?xòY?~hµ?‚Šþ?…É>¾Á?E<Ç?xä?™z ?«ã¿@Ìà@9ÊÈ?Þmb?PÚï?y #?‡Ã?°Š?Ú°—?ôñR@ ­@}ÐaË?¼–v?»*A?¹ÀP?˜©Î>¸ˆ‡@2çO@&ø»?d T?rñB@+zT@){w>À³>¯y]?‹„? =æuö?xÒ?•wä?¯üð?¶q?º É?¿¡>ü!Ÿ?­¼Î@ \@Yu@¾?ü¤d?µž?‰ÑŒ?'8>Ö¢°=äÉ£?Ý\?ïŸ?dz >ùüÐ?)!â?¬R¡?¯lƒ?øŽà?ø­n?p©¡?py[?UC?OJÂ?­Ìó?´,?”ºb?` ?üì@¼v?áÅ2?³†á?оc?ç—?è“N?îçþ?°y>á³ >Ì‚Y>·Zž>án?‚áá?†•+?Âøá?¿^?f|P?gÊ…? èÈ>íʽ>ð‘>öôH?Ά?±Å1?íž1@ +‘h?ú±?ߥ)?Â1ß?—Ü?¶gç?ÿDñ?ògÍ?¼ý?½½‰@Te@œ¡?}ù½?kl?º,9?ÇsZ?§²Ç?œÇe?¶t¡?ÊýK?¸€ ?šT­?ÏÔ?{öœ?{>ó?¢?‚@?¶ '?° ¢=VI²=šÌk>ÜÔ>ÿ†˜?Šg-?¥è0?î…E@³Þ?ûÑÐ?Ï-0?³\N?kJÌ?˜†@C$@ õ@\íä@Z"?Ê œ?»¢?ƒÊ>H>Êu>çÃJ?Tôl?ŸÂ?…÷^?·ç?C3?´Çt?©çY=¯ u=-7@7[@IcG@t$@\m?×Çh?¬ì‹?¬]ü?µr?Œ‘–>k÷â>ò#L?ш§?Õ1w?¬²Î?¬o<>ÒŒ—>m$r? +Ó?1ñ½?5ªø?9h??¥òÇ@õË@?‚«?‹«¥?‡Ì‘?ƒòË@ŽO@$wj@¢ž?åâ@3Ž@a0@Ç-?à Ê?ÔqJ?¼~ ?¿PÍ?·Ê%?¹³Ï?m~)?dV…?dL7?dD$?åpô@MÛ?ÞHŒ?ŒñI?ƒÕï?d‘?cû*?cîÚ?cì®?š Ô?ž 9?±Ü?³œˆ? z-=Ðx?ƒ8?ªª?™÷?jØ?X”þ=ª ¸=ì#?Á$?ÀîO?g] ?OÈ?db[?]û§?lIú?Qî?—Š}?ó¶? ‡@ß@ 6À?s8•?] D?àâ™@n¿?ç/T?φ-?ŒO ?*ø?!o??aö?c7n?c/Y?c1ë?c.Î?c0ï?·]?½æÞ?’h ?‚y?aK¸?8f}?‹;ÿ?ã/3?ÆÌc?.}Ó?<)î?À(.?½ß‘?Ï[·?ÔS??c3'>ö¤è>‘î>x·>æÄF?<¸?c7ý?nu?¤ö?¢!?‹j?ƒ0˜?>¼â?98?r +7?ˆ]+?—‰­?¨Ý?¡¹?‰õ?˜N¸?âÛ?à‚†>¬ÓU>ŽáÓ?Î? 7l>4ÿŒ<ëóP? +Ç?ei3?6ô]>ù#ä?ÕB?N#Ú?*àÓ=ü—>$¡¤?Eo~?OåÔ?£Šp?ªq?„ê0?yý¤>ÍPÇ>9;>³ +Ô>ÈÙÊ>ã"¶?â?¦±B?¥æ >ñ#X?ð'?”_¹?—m7?Þ‚?îÍö?why>â×4?'žâ‰e>Þ´S>¬ƒÜ>·û¯=Z<îò:S1{¸DV>¼ÛË>*Z†>\N?',Þ?-º?\è?`ë€>ãDJ>©VŠ> òh>Àó,?Z›?ðš<„È<ßu >ã5š?#ŠŸ>Éôý>e=´3È>×<>ÛÌi=óûw=»ùô> î¾>Û_ì>{@?_)0@3 ‹?ê!‚>Œ-?å?-ß>øÁ&>Êœ>ò¸D?´+>i9.ßz?Kð?€z?š=D?“så>µî¸>²l}?H)Y?Am?IeS?R‚ìú–ã?0?|¡?]ž)>û¦B>é2ü>«6V?õ×?zû_?‡M?Ÿä%?–ƒ?zg—? ?’Û?EÍÃ>M׉>ûu?u›?n?Xj>ùN?L…?¤Ó„?ƒ ? #M?gÿý?®e?€æB?&%Š?Äð>Á-&>ƒE½=[&U>xs>ùì?kfˆ?ºG?¢Ù?ˆ#? Xx?º2²?‰XN?ùR?;wö?q„8?c½½?V?&´º>ø3ô?—÷? ¬¨>¤Ðu<û×2>äW?²Y?SA>:>Ž®Â>¶ëÚ? ãþ?J&8?§,?ømv?Æñ=?VÝ?Dd¶?-9a?u–?¢-Ø?kM:>øµE?•‰?ø€L?û=¹Úü>°u?.I?8Œi?,Çþ?6“l?EÎ#?Ã>ùLá?,-û?iZã?P?5æ¥?–>ù§8>}Å*<õ2??¯€½@÷v?‹²ð>f d?b¾j? ;Ü?h?Õ?)Š˜?›§õ?ÅX?Àn?´£"?&,a>žkâ>X9<>0?Ÿa.?æs?Àá<õåJ>ºý >þ/`?˜›?®©¾>׸Û>Ul>­>¬ûÞ?±`ú?ÇÈ?Úu{?Ûi?3“>Â`? Ø?"3å?¨n¥?±*=ß ç=@v‘?º°ô?Á•µ@°@ ca?Ýò?%J–?’x¶?ˆñ?‘ûí?‚ô.>ƒpš?ŸÙ=?ŒµS?2‹?5IÉ?YÛ? (–@õ?½˜]>5l>‹«>ÿ³?ej?È?D"r?hé¹?bÝ°?\פ?š«†?Ä3?ÊÒU?ÄĬ>ùtN?%Ù?Z&?N+?Bg?—[­?ªHã?éÂ>ìÿå>þ£I?s?r?j ó?¹?~„?bû?Iþv>¢ÿ>ÆÔ¯?ê?,Y? OQ?ÂB/@ [m?ë",?€.?†Ü,?Žjö?oÛÖ?2@c?¢4?öµf?¶i?}®?3=Ë?"Ÿ?AÔ??LCª?„W.?‡àš?´‚^?ÀÕ+?àÅ ?â¬à?‰D«?ˆá¡?“.?|?Z|ß?U)÷?¼£?ÂÛ?ÆG?ÅE?|åÔ?Z"Ž?ú5?h…?È‹?¯€?Ìë?™?‰àâ?±ÈW?ѱˆ?]`,>î³>©ÿw>h}?U²æ?ö?=ÕÔ?:c?#ݬ? 5?š]? ^“=Ô=c*M?¡>áäj>Γ*?⤛?²q!?!s?&íÚ?,eŒ?>äÆ?L™«?%Ú?¡Ä¨?©°?YÂ?ᘜ@ t?èo/?Ò]@1f’@M$[?«C?x=a?÷%?ÐÄ?p6?dk?tz?w9?ñM?/Ñ¿?{Þ?mõ?.#3?[ôï??yŒ¯>ÿ;?•#ï@…˜?ªƒ¶?,h°?š+Z?Òi®?¯¬ë?¡?%?—Ï?>d„>Ó•—?ñ¯K?õÆX?Ùg—?ºñò?5Š¯?Cj>†í.?Ø©?–ÊH?Ÿ"?°Ñ=?ŒÙñ?Kß\?Ô\z@8Æ@ ^?é–"?í/U?õ ,?Ÿ×õ?•ô?ïï? r>-X >:Ó>Ì´Þ>Ä•®> +o¨>s +?—ÍT?à¤?·×J?½ñŸ?ÂY?Üö´@}I?ô¥.?«WÐ?™Ïä?nT“?ˆûÎ?§º¥?cr*?†â?W ?…(J?‚ÀZ?‚ñ?*³`?‘(?“]Ä?¯öq?"ƒË?zÃ?ªk ?¹Ú?Ý?'/?Ü|?Õˤ?ˆb.?Šù?Â!Þ?´úê?»’?¢6?2À-?U¨Ú?aY?’A?¬¬ö?3û)?N•?|ý?¨ÚŸ?Áû1?Ꮇ?èü˜?×q}?×çÀ?§¤a?“/Á@|x@+žÇ?\©×?2•¹?L‹ç?Gú´?CmŸ?9kõ?*ú?3Ÿ?©¥S?°<­?Á²ü?¥ ´?L4?+ õ?W­ø?Šóü?»nG?£Âs?R??IS?¡ñ=?ÁxÒ?ݘ/?í„@?hJâ>éyÂ?|;?&Ùå?+5D?/„?ËÊ?åýK?“Œ?q?˜*ö?”nz?Œ¡å?‘õ?ë–¥?òÛ?Á±?µ8ç?xÆ?)æñ?‰>p?ž¤Í?üàì?ÞÙZ?€D®?]l?¦Ï?oHà?ÇÙ?—Âé?Ï?_ ?k€?|È?À“ª?µá^?°5ö?írx@<{?¢Tp??ûÊ?Ë›Æ@™Ô?˜æ9?QTå?u,J?€$}?—w?¡¬‡>ÍG®>1§Ä?Yÿ?ö&?´ þ?¿ð¨=×ç;LA?óÑ´?ó›?­ÊŠ?  M> áô>Žö@?ªÑ?®A£?£úy?¥¹¨?“‰?“z«?¥1¼?§|–?»åì?ǵ«?ÜÈò?Á/á?~ÙÄ?Ÿ†Ô?é.N?ªkü>¸O%?2/7?£ª˜?Î#d@Ÿ?ÊM9?rß?±8I?øäÃ?ý¡í?ûu0@ ±º@*0@4D@ D>?É>?‹d„?Sb?¥à?#~Ý?'RÑ?wO;?–Í»?¦ip?©v?Kaß>úñÁ?'r"?EÑ×?‡Å?•ÿM?¢Ü‚?¥á—@ñ@ZC?”¬>?l¸?†³t?¤E>ÛØÆ=ýj?µüÑ?ù ?Í"ð?Àõ?¾1 ?¼|@:¡v@WPê?ÅëN?{+*?ô=—@9#?•G¦?Qñ°?pGk?z­…?¥?µ?_)E?=‡í?hŒk?j%?bž¿?[%/?änÈ@T”?Ä‘?«'@u™@5?Ð +þ?©‡é?À‚Y?Äãÿ?¿ ¾?¼ å?I=n>ü^?ÊÚ?gº>9»?³ð©@ W6?9÷?9àw?Î÷?gÉ?Éã?Ú«÷?°à?–Ã?ʶ3?÷6È?ç +n?Õ‚ø?¹»?¬«¯?¨ü[?¥Po?§ðF?¥÷?¦Åæ?¸¥)?™±ë?8ç?"þ?>?d/)?@Ø#@QG?óÑS>¡À:@¹,@Ëô@#ñH@ÎÝ?Ä(?‰,?Rƒ{?Nݲ?Ü–Ë?Ýdž?oñ?SLµ?±QQ?¹ °?¶*O?¶}&?°Dh?ª‘?ð>'˜Á?\ÃÈ?œ‘?©âl?µÖ\?ÂQ’?ÊD?»ù?®¾Ž?°j–?²*?Ÿ‡c?q)÷?§\¶@FÞ@à§?´Òø?»×?ðäD?öЭ@2‡×@.â?Ó”¹?Ì-?£Áµ?£,›? +Â\>È€?Ðî!@-?ÓÀ?³’¾?çý@ \N?íQ ?Å‚Z?¹1ÿ?¡à?£Œk?¥:ü?¦é/?¨œî?¶u}@3þ@pÁ? ^·>ýn=?Þð]?뻆@ +|Ú@ %£@ Øé@ ’”@˜t@ Ø?«V*>êHÀ>Ñd>‘Dý?ÿ@&TÛ@å?I?ye5@!½[@"ŠN?oî?ëN?«q¶?À¢ó?˜õú?‡GŠ?wJ·?jßã?ÀŠê@ ¨?î?¯Úg?¾‰Ù?êAt@K«@LÏ*@KÏU@ 2@Ç?°ßÏ? m?ª–œ?¯¶?¾ªo?ËÔ ?— ä?<¼^? DB>-6ï?±i@ »7@ ôw@@%_Q?­E?™)Õ?F¥B? ù%>ÌKÚ>¥ü|?ËÛ?NÝ?†²m?¶¼ò?º)&?Ñ—O?Ôp?©à?¬òŠ?p{Â?y¾ì?*­M? Î@'xq@g™9@÷? =%?u?#tg?0©«?‡ˆ-?Œ6 ?Íßê?Ëè??}­2?aŠ?ZZ?€ýé?¯ì>•_=>öKn?3«?f·˜?Ì‚?ÒeT?å2“?å(ª?ª÷©?¨û|@«Å@à@B±Â@`„Æ@-Ú?ä»’?·ì?ãõ?S±í@Hx?ü”ä?l\!?dc?Æ Î?Ô@‰?À`?Æ[ ?Ù·È?Üb?Æ« ?›x>?‘ÊN?cûñ?cùM?1ŸN?9`í®]?*A&?cÇ7?e8G?c¨¹?‡ù?ö}e?ìÖ?ã~?㈳?p´"??Ü?›B?ª–A?LÔ>s§? ?‹éÞ?5 ?ªƒ¯?ª[?¿Ü/?ÄH5?Üp?×H‹@!•@<‘¹@js?à¾Õ?§b >ã‚2?oõ?¦•?¡Ò?‚?Ç?Íj?ã8à?“x9?c2ÿ?„†‚?’}D?˜Õ1?ªƒS?ŽÞP>„ +‹>­J0?©–Ú?°«?«¹ï?ªlÁ?‡0 ?rzã?’ÄÌ?§~§?ù?c3?#õù=vÅ8=Õ$>N˜ž>ƒõï?§^m?ªy?R>ãJä?jÔ¥?ü?aÄÁ?.ht?Kη?~ÚJ?„.h?‚??€»/?“Ld?˜Pk?Xù?¢`ú?zÃm?c[>®§4=O<ˆ>äÕÂ?R¢$?sÌ?6?y˜==I?3‚û?.K>?`ZÚ?pÆr>àÍ>”X>Jä=æHÇ=»Wä=>*>KŽÊ>ñ˜ä>ºeà8Ï`=¤jÊ?Z“@?UW?¤¤Œ?ªC/?‚VÃ?>ÿha>=JQ? +Tù?bËÜ?K–U?Ïé?QÖ>â—‹>ÕÇ|=¤?X=kþÈ;7”9?†6?¦|?4^)>ÆŠÏ?+“Ñ?{bd?#ö<õæ>u@>†¡?1‚Û??Üe>.„$:Õ¤m5¼<=÷@>ëxE?1?1˜>Þ ²>D; z<½à;ìà=†ˆº>”6=§z?z±Í@(ø\?Ü©?& 4?5uù?[<>Ô„ç=¾×O>§|Ä>ðÔÂ>ÿrº>ú–>wm>ñ?~ö?“>Æhb>BÑ>ÞT>ûE9>_UÉ>/±ô=ƒ›ê>ý?j>ýý>üÐ*>É*¸;tk@>¸38?µ™„?“‡½>û©>È_«>0»‘>ˆT>êõ +?®?F“Ý?lãi?ûË?/¾ë=/üý=‰éÿ?M«?öÜö?i=*p=¸£"=ñ•Ü>·‹ò?(÷d?Pr?xÿÄ?¶µ‘@¥L?¾ç!?SO>édÖ>ãE?Þ±?8Qc?wt ?C4?˜Z?–˜?ÜAE?ÉU?º8i?œ§?xC +?\îC?P‰ª?{p_?‘OÝ?XúØ>ø;N?%hþ?]Dª?r,›?ya?=qÆ?Ðé?.‹µ?IÐ?…é>ø\?Å?.®?M„¾?5?Å·@Ô/?¦,,>Éœ~>¶«ð>Ð4Ž>õÄÁ?A+>ú°?Èq>‘Mã?&ú[?Ï—?8Ôã>¨Ü?ï¸?4 {>ð¡>‰I…>á˧?® >Œ³=îT>ºnã? ?ík>ùÓ?Fße?… G?4a>ÕEs?g1?;çÚ?0Êo?)Œs?œ:?¶”–?æ<˜@Ù?l{¯>¨«I?6À“?Um-?\Ä?jƒƒ?ü>ó¶Å?\n?v7f?R°?†¦—?Ã÷>¾j>ï Â>ûÀ*?|Ä™?“B?€¦5?‰gŒ?RÕ?Os%?UÑ?\)ã?I‚&?UVÁ?þü??|±b?~í?Š#?†ö4=¢g]>f¿”?Žðg? tß?â$¹?Â=Â?O)a?=àÍ?DÖB?.Å{>±Ž>¢£q>½¤?9?:dÁ??ïP?ߣ?½dD?›©%?q<’?>“?•k?Sáy?~ŸS?8@>Æ¿»?¸æå?þÞ²?€ú?Ž`Õ?¿W\?£w?¡òà?3ü|?-C>ƒ—ò=Üz>òo>ÿ˜S?p%"¥>TÎM>‚8>Òcˆ?z°°?Dxå>a-±>œÕî?DÝ?S?æS?YHÐ?’pl?—ï2?§£g?ÌX‹?óŽÖ?nÿ+<˜Oà<$@=U¢0>· „?s‡? ?jÊ?@ Å?SŠ¿?‘Yè?› ?×j¡?á;D?%_?½]?/„Ð?)ÒÉ?$ ?"wË?0Ã"?;z>èa{>þ~‹?C¢?|÷?÷×)?šŸ >W*C?má?€òn?cû?QóÃ?”D#?´½—?^Ñ?1œ> Ã?"ç@?Vc¢>Ôõ?Rž¿?l°µ? ’?}‡2? Rê?,[?9d?f@J]l@¶ê?KÑ?Ÿ>–>Öùd?T3I?CïÃ?:¨˜?@ã?E‰J?k8J?`ž?·A.?à`?ð4?ôk#?ÄŒ?¹T?/P†?Òù=<˜;_-˜?{Ã_?q…â?¿?LB@/?ê §?‚º?`Gâ?„‰?F¹©?¥r?•;p?‹ª?Ìã@‹?» ä?[`^?:ñV?ç\>‚ís=—ŽÃ?°6Ý?ò¿?IMË?¸ì?—¬?™¯?p)?iðm=Šç¨?FÙ¶?~@›Õ?Ívm>\¹>ó¬E?>?˜B±?Ìí-?Ñùì?×`?âGË?ä’–?üW„@¥H?–·#?Ç}>ˆÎÝ=ƒG>Ê@?ƒø?h™[?vaƒ>÷¾>Õ¸ö@|é@:>¸·>¿ë2?1i?5ë‡?:Ðr?>}‡?I[?Š¹?ÚTá?¶=4?XY?Žs?ÀcA?„^ƒ?±? æ?–’?Vk?½çI?ÁèÞ?Á$r?=®@?‡?l¡ð?„ü>N,›=÷ËS>‹8÷>¤û×?}d?*Ù@8@]÷?€*£?ˆÃn?Š3X?‡… ?^˜ÿ?wÄ>èA>óí¹?go?G×D?d™>¥Í =ߤÚ=a(ì;ë^˜<¨q`=™=V>ö´?0ö?ühÊ@??«?®?’=,?¶-F?ÁÎu?`s?N.“?9TÂ?F_ë? øª?”ü?1’? 3?,·?†ˆ·?H½?¡Lh?œÅ?`.·>^M>öþ?xŒû?|ög?€Í? y?–?9°>+\j?Jí?˜»?™!3?‘›>ÏŒ[>"–ã?¹c?ßyÝ?Úòå?ÞZv?ÿÇ;?ÿNÔ?ÊÖ +?Ì?€?µU?’:?)#8?6÷x?Á^?¶´ ?j=×?„–ò?Àý4?¾ÜØ?ºí9?›zÊ?´?óÒ?? +—J?"ò×6>üÔë?yep?§Jš?ÐÀ?ö=?×H¿?½`œ?—(7?‹£?l^á?S£˜?O6ì?Xù¥?¢¢æ?¯?¸}å?¼Ñý?‚S\?{ ©?†P?$Ó?øhï?ç”.>Òv? Ù?à±A?ÎÏE?kÝ?’ô{?çÑõ?ÕDñ?›°?žX¶?ŸÒR?°XM?âÁÆ?µ:³?éÑ?~ª?ÓX`?‘¯z>‚³>íYz?IG?¬›â@[f?¼ÕS>þL©?ÿ+?å?ý?À¹a?‡]?/»~?ºQ$@èc?׸þ?°_ÿ?Y¬–>ýá?©ü†?æ'2?¢Œ?}I ?¢6ô?¹P£?¨Ì +?œŒœ?8lt>üÞ]?k µ?ëë?Á®8?×£À?ßÖ)?Ö ?’lm?|K +>Î I>'èÆ??w?u›6?Èë>ü;‰?µï? +D?ŠÒ? à?W»à?|¯Í?§ê?®¥@ô@Ý`?ãõ@?ÏA0?ê Å?ìÈ@¦)@g?—¯Ì?m…?Á‹n?Õ‘Ê?À…?»‡*?›“¬?–ƒÙ?ª/t?© “???Ñ?Ã? X?ò@@½å?ù-? gê<“Ž€?Э—@tË?Ç[?wà?œ²?£Û¦?Eü%>ø:?BÑ?ºO??Ó.'?é÷N?¿¿ª?ØÏ?«ó±P>¹˜>— m>…X¾?²?´+?wøù?IÐø?œ?ÁÞÑ?¨ˆ?Š¢ç?– ?nÎ??n­-?n?nrì?n[¿?};Á?­ +?²yV?ð΄?í÷)?{ÕÌ?vrG?±%‰?½Ç?š2-?’_n?¶¹?ËG;?ŽÔ?+oA?$H?î?Ž(ì@ }?îÇ?…?ß6?Ñ&c?Ö"@?¢6m?„߇?±óD?ÓÏF?îú@ +ø¨?ñ0?®}×?«eY?ª¬?ÍÎ@SŠ@'F?ݵË?Õ¿ô?fL=é°_>Îq"?Ž?€Ö ?ÑËá?£“D=ãfÛ=Ñûð>ç0õ>éc=3Y<=rý8@‘R@U@Áï@\µ?Â+ð?H¢Ú?–?çî4?êg?ÿ®È?óóì?Æ·º?È„ã?•øì?’ºÉ?›þß?¤!h?‹|²?X¾?hÐ?§Ú?›D+?¦¡?¥?Þ­±?à“t?|@ä?i¢–? ´ã?­Û?¸÷?Ä`ä?ð‡‹@ +Ž ?ù€ ?¾kÉ?ºô€?̾ð?Ñ)”@«t@sy@Cº?þÞ?uúÎ>Ô•Î?œBF@RÜ?ç,Ÿ?¬qï?¯ë¸?Œï?–kO>§qÂ>†Þù>ÑGà>ãפ?Düï?ec?)@Ù>ê3`??c¬&?~’œ?¾të?ÄaØ@:C@)â?Ê-Ì?ºéÆ?õ~x@Ù´?ªu¾?)ûí?- Š?E×¢?[Î?ƒR)?†ž +?D¸-?I _@Z@0ר@ܯ?ãK6?ÆÄh?«›?¿?b?Ýp?Îê?ªn_?¬B?ÃC?¼fü@&hù@,³–?åUÚ?·e?œÂ?Œ +l?Úº?‹q%?eê>ªS>¹0?vÐ@?dRÇ?šlÊ? »Ž?£8?¥fu?Šm ?f*ƒ?c?ý?cA’?=Òd>É;Ä>Ü ?6)Ì?,ãx?ûÍ?÷'I?°Åï?LÂ?,Û?Ú²?yű?P„U?g ‚?ƒô?}&?Žã+?Ž©Å?&ˆQ?vg>ôx>èXl?Kéš?c]‹?Y"?Jô³?SV?cYò?…Ý5?ª…ü?–]'? õ’? ?cP=?cZ5?˜žÖ?‘*y>pýÐ>ÖÚB?>? d·>ûAB? ]E?d•î?c?[ÈB?Jöd?5ƒ?´;?#)2?/ý€?yí?­œ>¬Øº>°è{?2J ?(Ø?sü?£>⟴>âË>â¹>ât =‘Z<ûš=Íñ>¯¹&>â†?XjÃ?™[z?;Ä=äØ>ã;>>Â=Ø>2Åÿ>i_>šp÷>¬Aü>Ho7=á±<Þ—×>\gp>Ø Æ?ì¯??ss?"ÈÕ>¦$'>™r>Œ´«>Úu<ýƒØ>œW*>Þ|6>½kl>«o>f½ë>–ÑÃ>§Œ>ýä? ¶F>‹'o?PÂ@ÂX?ü_x?¤ª?…®—?$ÍM? ½Ý? C>V’>É“W?_ª=šIV>[¿P>–õx><4>P™s=PÐë?2ÑP?’==žD>ý@Ä>øzm>ï¬ç>ÁŒý>‹/ö?‡5?‚ð?ZØ?_† ?h×?:}&>ú˜å>éÝV>ú¶œ?]Oå?»Ô ?jê=—–e>×?ulŠ?E ?Y>² >¾ÉË?Hªy?<@š?;)s?càþ?Šø†?R0©>øÆc>‘?>Þ(?mŽV?:»t?Ÿ4?3¨>øm¬>æNß?¶°?2Cð?X7]?K/?7ùÝ>ö >J&‹>Ó̸? íg>úa‹>ʦ>qÜL=ÄN?>…¤?¹¿N?ѽ(?ã­¸?«e¤?xX"? Eœ?»m?Ä"—?ÉËÛ?;“?%‚œ?¤ñ…?ŸIŒ?œèÿ?(Ñ‚ð?B +“? Ÿ?1…’>œª0>ye˜>mæ>úMØ? Ô?]‘‘?”;…?€V£?J/?_‰µ?y½.?5€×>ü}&>þç‰?bU?wÄ>úù?9o)?VØ-?‚òc?‹gi?R,’?:–ô?HÐp?^Ïš?9“,?.^‹?·[?áŒ]?qv»?±°>=D<M<©W°=¿2?¾ìÉ?å±6@áP@’>ïD!><ü»?rÙz?z?9ïº? Eq?Vbå?OËq>¿°ä>ÃÏK=½t§=¡q0?³ùÆ?·oV?|¾?s‰Q? + ??->%??}'ë?Šm¸?ÈD´?Í(?¾.?¥[]?3°Ö?*˜3?,’?òÇ>bP ?AíM?åúm?‘‘=4‚>h@?‡ü>«¹>Qv>±?>þŒ\?´m²@2æ?Ž™Õ?åj?{à?¢B?/.¯>ÇHž?w|}?™–%?<‚î?p;?_Ô%?qŸ%@aK@:R?†W?y56?sO6?l2?O.R?,Hñ>Zå?`9ä?6žÞ>MâÊ?) È>ìµ>2c?U6?¯êa?…8>?sõ?:ÊÉ?m¶É? «W?À:Ò?[î>ìV¦?GI¿?kw>£ZÖ>î|>Üs?¼?,à?95#?wð¡?„t?:‘Œ?0\Ñ?*¼Ž?=¼‡?€À>?‹'°?Á/!?aÖ>7 $?"õ"@³?¨a >!28> -P?[±ƒ?áH? TT?V?fV?¥ý?k"W?CjÜ?‘Í>ÎGX?н?)•k>OŒš=êæ(?&ßÎ?%Ùø? )?…4Ô?ÀŽ?¸kE?|x?ƒ^X?«Ÿ ?¦Vû?f³‡?5Ò}>´ûÙ>®Ñ7>Æðú>í` ?\t?`j?a3?0TH?S¯ë>Œ’?„ìM?µ\Ð?ƒ…Í?t Ï?q.~?z˜5?rŽ>øä=Š&˜=Õ]ï=š'5>ؾ?®V?•VÔ>¡Ø8>ý…?P1??sÓ?8“?F e?Iš´?¡¨Œ?åÍQ?€T¡>¹å?HV ?˜è?6PÍ?v˜>_eŒ=„8¢?£¾?À›ü?ƒ«å?w5t?uÔ?0áR@E[@‰A@Y@ +æµ@¢á?Ë +;>'ê>Õ?L¡?‹"?´ö}?šï?¦?ÕY®@z£@üi@M?í‹S?Èb?ôÝö@úb?Îm°?¼—?¼hM?ºŽ'?ÅÎ?[ó?ïâ?ìm?¡?¡?Ÿç?un?GÝ?Aó?3•?M#?œA?Q?)ÏN>ò>tA> PÏ>Ù8?YèŒ?ŒÃ]?6½•?6q?`-Ð?„'ˆ?­bè?³’à?ˆK™?‹?•Ê?•?7\Ç?29Ë?’=?ŸÛ@>@*í>Þ÷Þ?àM¾?Ôæ?ؽ?§Sw?#æ?IhÇ?mô?MøM?A?†ü@?¾Ò¿?ÁH?ÁDf?䉟?ðp¾?]ö8?Yï?Žº?ª™b?ˆÊƒ?O4?N9?J?6"´?=nJ?©oÖ?­W@‰P?ôm«>šèw>Ö£,?W¦­?XDÈ?D²À?ƒ³?ÝU?Þ=?ÑŽ½?–‚y?þÝ?ÈC?at>„Ь=‚ ˜? ð?à'? f?d?R}Ð?F ?ÂtÉ?ÖH?¨y?¨”¶?3P?zmÏ?ÙmC?éõ?…ìK??]¢ý?W˜?€É?‡æÆ?Á!q?®nQ?=I?=,«?µ€?™Ë?¦®?£?œ>«Ï3=0%?ŽÕæ@(tã?óîY?Žzö?QȲ?wÅ?¤G?'Q?¨”ç?æ4£?¥›>?€YJ?—[?¨è8?@?E¨?¨eF?½Šr?ÌÉ?ѳ?ß ¥?ç Š>½«>ÕÀ=^C|= >þKË?Ñ @=Ú@4Õ¹=‘Ô‰>0ª?‘$x?‘ë ?fJ$?|V?Ðl¬?ËåÂ?ªÒ3?©”Z?±IZ?ŸNŽ?9D`?”žø@!?é®á?‰d ?L 2>7‡?7Iû?Øðº?Ë£{?¬8ô?»×‰?ݤ? Ï?SÌ?Ý ?™?Cak?~"?=Ë?‚S?|,R?o,+?Äc-?ýÚº?õ¿?î„ç?ºt·?—ý?®ôý?êò?˜ ?}Sj?Äúº?àd+?›ÉÈ?„XT?³Ò–?»…?^+?(e?IŽ4?ZR@5?F@aÚ†?Ý()?‘$‘?¬×x?·x¥?H§…? í_?£Û·?»¥ @ wq@Œ?Å®W?¬Xƒ?Ó¥¾?×£?á™>¼6¬?œ7Q?·ÖÕ?Î88?Ó\?ʆ»?Îr@J@[ú·@ aã?úo?£€?˜L?¤0²?¦½S?€Ðþ?c€¼?ëm@Î?¤à„?†qç?Š­-?ˆ ò?²>Ë?½+€@ Ú]@ @.,â@/‰n@–S@h–@”;?ípÉ?6?xBo?a–î?S€?0‰?/BA?Ps‰?aò?Ÿb§?¹šÍ?¹ŒM?µÒ?Å· +?Ò½—@eÔ@P?ÉÖY?5´¯?<9É?Y`¼?h--?vFA?À”@uý?ä–?nkM?ßWK@V€@(-À?uuŒ?™¹=??Ëìá?1†ù?ˆ´«@$€ì@sÆ?ô—?ääß>ô`ì?¯?·?· ì?u›"?sÕÄ?ÏÄ?Öð’@\@-j§?íMê?ÙÝð?ÝÄÛ?ÓJ5?»òò?¶M?Ž=?r‰þ?Ž)?–G•?¾3d?êžÝ@ ‰@(š?æÛ?jNî?p ?ˆË ?›gX?ƨ?Ä\¢?¨Q”?ŸV]?Wð?w…‚@S\@P˜z?4*ð? XÓ?4&k?7ˆd?¹?Ì~ï?„ýæ?ED??ZË?oEc?‚÷›?.¤?†íÀ?nØ©?€ì?Œ76?„ª?ncL?s=R?.V?À…@2,£@1óî@.'•@*|È?•W4?|-A?ŸºÒ?¦ôX?ì×m@¦W?´^È?l¼i?›)ˆ?Á€?èq’@0?ö¤?/+©?2¦ ?6$q?=¿æ?hãz?VøÇ?——?™2?ó~U@åÞ?ŒG? o*?2J?÷?¥r@Îù@ i@ +?øá ? «?5$=?éëñ?éÑò?xj?iŸR>ý'>çX™>«Þ1>yU?de‰?µ†Ñ?ô’¬@&úÆ@‘U?®ƒ¹?ºcQ?û<`?ôß´?Ò<Ÿ?ÔÜ?“ÚÉ?)€?9i? wû?jê?›¤²?e1#>ç‘z?V#õ?ä?ÍRÐ>ç9³>é5…?¡~¤?œ"F?è¬?ù¤´?íRu?æ­~?¦ËÐ?f‰¢?¸´ƒ@ü\@'@?³UÕ?¸³Ö?+?‘Ò?½Õ‡?º™?I‹?¨s?±;Ú?ø­?°³Ê?#©Þ?¤+û@3Á¿@) +?«ïa?¬% @Œ_@*Ó?“[?k;Ý?àÁM@Ý?äFq?Ák›?±,š?ÿu?˜e‘?«rÁ?ª¥?ÁV†?Í0`@)ê@ظ?¾ýc?Š’7?•Éü?¦ì?íÆ>äÅ?7åS?ë©A?òw’?Óeƒ?×rú?"V>ìz?±ý?ã„(?ü¬2@¢C?Î8.?c°ù?{±‰?ªº¸?±è/@"Ž+@!zì?î³×?ã‡Ð?ïçè?û?ÐÕJ?¥]?Xö£>,nË>~¢œ?9?²à?%{ ?Ù&?y9]?}$?Àá?ß&8@aµ@ Ò·@ {=@ äƒ?åþ?}¿ß?ñ½â?ø²?qRp?c@¤?c@0?cAË?Þ@ Ò~?áÚ÷?¦? w>ãI ?V·?œ‡?™æ?ƒØO?†˜?LRN?PF”?b ?cP„?„ƒ:?•„s?Ü“à@ ?ü‰S?ÛX?5Šb?ãY¾?ã^£?laÓ?c\5?ø€g@\ê@†1@®ù?œ€’? âm?x­s?Ð9?¸¡?cZw?^UD?-(?2u¹?ª"?¼q?ù)>¥˜¥?wpª?ªu6?ˆ?W5\?…¤·?ªMj?›÷?c0ý?Y2Ô>ã˜>ã÷?†#„?„á.?…Ø ?‰ÉÆ?¤[>Vu³>×i?«ñ>¹xÁ>¢¡?¡z>ý¦9>ñý]>æ{H>âc~>Û·±?ˆìò?“‹?°•‘?¹Óü?­Ä?©r@?ŽZÁ?:ÈÄ?ª6>úx.?*–>•[>¡qS>UÉ>>÷?; Þ?`Ùy>™ª½>cƒ >àUô>«8é>9Nø>RÅE>ÑU>'þm>A9>Z~­<䀦>UqÓ> „>z>¼…å>Ü*K>µï¸>ºÄ>X’¨?Œvú@¶À@Êú?ñų?¡Ì]?cwÚ?2äA?©÷>MïR,Á´>¯Òõ>«‘È:aIÊ=Âaû?~:X?_ÌM>êÈ>/4m>ýGW>È›¡<%´;+€>%K_?¥?:i?{³õ?p9K?f{’?^˜e?@y?d¢o?€•%?„Ù?ž|­?i|Þ>Üx >ïð²>ùúš?kõ?±{‘?¥éé?–ò ?j>¦{ +?11£>õwÚ>…yG>ÅJÓ>øí«>Õ¡>½ÄË>Á÷=÷W=£Ë<¨P;õuÀ=HX=vºP=³J>ÞW;?/çl?9 ß?FE>>óü}>œi>•_>›WW?¸?WT?éœ>d—Ò>ž@V>íT?ÀŸº@»?óÊp?Ã-g?V#z>{ ¶?|¦É?ÐÊû?©*a?’Š?-ò?4o?£@‹?e·È?ä?"KÓ? ìf? ìï>û=?Ay{?xïŸ?nßP?aE«?8@¢?!–>Äh>I8>x³ê>t¶É?o¿š?»d?cçˆ>ùµ?”†?ãØø?£6?q ?£?ºrÒ?Ùg®?åüÕ?oܤ>ú-8>®R">~Y?/“?eæû?{ò§?uBí>‹ì>g–£>‰,—?H|?zý­?§S?¸½?º’†?»Ü>’^G?â‹?Jò,?ŠPû?Ÿ f>çï >•?!W,??ˆ?œÔÂ?¤T¸?§ˆ?ª¹4>ÅÂÝ>“ž}?"€7?;«>ü§é?~?¼×?²­ï?mfý?V]†>Å A?%mH?ÿÒ·?Ö‚„?3˜¥?H*_?€³}?yÓX?L"?*†>“:J>ÚÎe?LâK?4±,>þÚ?gAÅ?½~Ö?ö†”@?©ŒÍ>ÕI>på¡>|H?;Ö.?™Å›?ÕùA?èÌ?‡'‰?9­¡?kÎî?ï?Yvi?CÚB?E4…?S Ø?…þ? â ?óQœ?ÿªL=zPE=Ä`–?öÅ?EÈ?äÏ?i©>°AÝ>õ¥k?ŒY\?m:þ?ƒ?5B?¥Üó?ƒK¾?6¸?'À?c:Ä?i L?oW>òlñ<½È°>—h?àJ? ?v>…òø>Kiv?!†þ?7Y?N§¦?Pü?† ¾?„×?~=??rÈ;?š$?”''?‹b?ã?€Ér?Œ§h?Á=Y?ÜAÂ@Z¤@eS@æ?úÖ°?æÛW?¬*?PR?"Å?T7?Xãƒ? e?DyÄ?/ =>Ͷ%>‹y†?“Ø]?±\k?n"E?]4Í? Ƕ?1É?¼UP?À}ö?…ö?{?Õ8>èæX=”7z> ¥?Nå?dºO? …×?ƒb?Z">Ùƒ>˜½Ó?)±þ?‚7õ?6˜-?j+? <ù?-XÒ>›_>f?MA??y0?@ûv?$i=ûúŠ?Âxª>T\>=fòË?²2î?¹Ë=£Êr>eÑ^?ð>?ñ9\?Ó¡?Â¥?K¡¦?E3E?¬o?mÜå?ÌšÒ?­ß(?¢§è?¬ +Ž?§ôg?¢£«?¦Oj?²U§?¹mI?ßÑh?÷î@ÄZ@" ?ÙR?‚k?ƒó?Â?rRÚ?g¤3?’s ?‘Œ€?Wæü?FÛ?¨“?½}?@²Ù?kLÿ?¦ ?±\G?¶‰B?™·Æ?£S?¡ä? ¶?qA>Xû?,•?ö¬ì?§ ?N?gÈ?™ò?†ë?Ša¥?'žÃ?²®?ÒÞ?“`°?+x?8Òy?šöý?›ñù?›0¡?ˆµ<>oU£?[nì@038@ …¼?îs·?ánS?ÀêN?š‘?l†T?q);?uÊ€?ziÌ??N?‚€@ø–@<((?·T§?m¯Ì?© ?²ë–?‡]‰?WÝ?©<{?©®º>\>‚@Œ?xhå?Œ6È?Õm3?Â+•>Dc…>¦Ïú?QeA?ƒ³?Ñ^G?§äè?-x–?¤×@?o?þCk?Áµ,@""@_º@-?±n¼?¾6,?Ëh?š5m? ?j*l?\Ì¥?¬Ü»?Åóð>ÞËñ>Z׬?tÈe?ø³?ÖÖ?Ö?Qè?„_Î?×*£?Ë•Ù?^€‡?t¢?³ëü?®æ?‰µ:?pŠ? +?ÄÐ?°´?”Ö~@¬ï?ÒŽ>>å÷Y?|Ð#?â w?†Yï>tw²?™f?ZZ?nY¢?€v?·x©?Ü„H?·IÅ? „(?c"l?8>õ? ¦†?M¹@ J¨@/kE?çaV?Òû?€jÎ?i¬—?mÅØ?qק?#Úi?Ÿ?€*×?|Ød?·?9‡Ö?èd?˶2>ß>³Þ±?±Íp?ªA?‘ܼ?×`?yX?+Ñ?3êÑ?9Å>pó”?He@ 4?Óo ?2àX?QsÃ?€µ#?yp?~å?½²@ +¹Ë?·< >þ§?rÒÍ?¹+?Ùº¡?úÙþ?˜H?ä“>‚˜I=™¯=Øi¨> ‹z?¢,B?ýéH@?»@[£?äI…?¾<¥?¯6­?¥ØM?£à?¡á@fR@G]?¯” ?l<ç?Å@?î%?œž‚?|Ù°?6Á•??Àâž?ä†è?èN ?ì +w?¢èt?‹0Ò@ +RY@¬S?Ÿ ò?ÍÓ@ +ò@]V?g¨›?#Îè@ÚÓ@‹&?{¡(?78ü?…¤?§–.?–‚ +?–q?D&??5ãZ@j @-æÅ?Ù]?Ä–"?<‹? =‘?—ç¶?¤¸?ÜÛ`?ê:)?½Éy?¬ýB?·…r?»4g?Ù2 ?æñ”?ò‰:?÷c?–÷º*?£Û~?Ù3?ëD´?÷[$@ e@›–@®a?÷|¬@x@*úq?ëÌ?~º¾?|Ï_?„¯õ?šÛ.?¸–€?‡Æù>ÿ&¯>÷ç;>ù«?Vr®?´¬§?…!>aP?<5@ó @ Ê@7¦¶@"ƒ®?dÌž?b‘>ômä?(æ?’ö ?”nb?tp?så*?Ðó´?Ñù³?pÂ?XG€?³Ûz?µ$-@ ¦@#3}?éõ?É?ŸUë?‹ÿí?ùê…@$bÑ?Ù »?r#ö?Ñë›@0?Ⱦ_>ÿ]?Páq?®8Q?®Þº?´íf?ª«8?†ut?{¢m>ðÉ/?ö_@5Ø8@8f±?Ã[ø?»³½?{Åb?pÍ@@0…V?ùŸÀ?Øw¯?™°æ?oRÍ?gª?WkQ?]yL?nä?ÄÃ?Üé$?Èõ?Œƒú?¦c@å@ +áÖ?p‡¤?‚:l@N- +@M6·?l?mrZ?Î>?১?ÓG:?Ñò©?´é–?ôú?×-@Et?ì‘~?À™?»ŒA?‘kÏ?Œð?†›(?‡;ö?ûl?þÞÔ?Ûó¿?Û+@@p{?ÒP{?§4ª?­R?°a?Ð!Ö?ð é?®V†>î:c?1lË?¨cö?°rk@Ÿ5@ ¨š?¨2??¢¢‡?ˆ£?|Üï?qá?fêt?±:õ?Ýc?³e‚?‹nŽ?š ø?®ŽF?¾÷@ +®T@ ̘?®Jñ?®7u?e„c?KÆ?^p•?gð?+Ì«?[;?‘¾?'ó?':>?g»{?’gÀ@ ~“@õY?á_á?ßm–?|P?Š&?Ï?湞?£O‚?f•À?Ž#M?¶Ó?¡1l?1¯Â?Ü\9=ájd?9aï?¬)U?›Í?r2?€P?©s°?¬Îà?å6B?ækG?ß´?Ú¯®?2¤Æ>µnc?ÇÓ?&Zè?"¥+?+ý?c(Í?ô%?ëÑ?šÖ?”n?ô‘ï@@j@ j_?®}`?;KD?3)ø?+Ü?[?i? úì?p:V?lö?g÷ò?db0?MÅ>ûB„?ƒiu?¶ü?°Èä? “0?˺;@*t%@!ã9?âkÿ?è¬?¦Þ?£ƒë?Ö Ý?â2¹?Ãð ?´r?ž1?e.Å?kÅ©?–ð?‹Ž?•NÉ?™¨&?èÞ+?ë†?‘àË?cîì?Õš@†?Äü?'lŸ?%©×>ãJh? ª?í=7?æˆ>?Óø?×+§?í%?é]Î?Œ- ?0¨?Ó÷?Îy ?ÄÎÁ?¢>#?•×›?cC?cD·?“ˆ_?ˆ}ð?hÑf?cIo?mØ?Ô¯?@[ý?qTÿ?hWú?K»(?bNM?ª|À?©@Ø?Ob?už@?eŽ>àäs?†uF? &?o>?>Õ?ºÆê@©@ 3‘?‘¤p?¡"U?ÜÚæ?áÏÓ?h‡?ceŸ?¨Ã?·à¨?¼ûw?Â!Ó?t–X>ãcû?=•¸?žÃ?‡? >Û"\>ùÔ¢?" ?ÃÒ>µê>°¿?t€`?”Ì;?š,œ?Ÿ’,?ƒˆ;5 æ>°¤Œ?h$?Qº’?uà? H>ã)«>ã"?:ˆ#?H¶‹>í†>Û,¦?:œ/?PFˆ?VÖ?bâ?9«>D4}>ÀΦ?|¥Š?n¨µ?_p?bqÅ>ç|Å>âlh>jôo>3´? ÊÄ?U'ˆ?só?©|y?„w·?+­Ó? +© =‰•>ûã>ÉüÙ?7…k?G9t?]Ø·?`ë>’²›<Ó(=Œ*B=fì>t”>Å>SŠ¨>AíÔ=„´æ;’?“:#§I?eBF?xö–?q>ßÀy>H€Ó?º‹1@XL@¤?ØÔ?Dø?c-?N ?vŠé?®Iƒ?¿¥R>¡R>8±”<ÊÏn>öÆ>ú3e<¡@J>kÂ>‹nF?R²˜?DÖ­>Äñ€>ÓÄÄ>âŽù>òî˜>ü¦ê>¯Ó¨<ØTÀ=Ù2‰>ØË?{¸=?hñ4?BçÖ? Ù>Žl?D)?¾õ?…ÒÃ>Çáô>’õ=­:>TV>ú,?tÃE?»Ya?_ž«>©U7>¾Á>¤|r>ÉÜ>ù=>ô,I>Öþ²?±¡?$¿>”¸]?)´§?“<’?¡õ?¹ûß?ed1>ߎT?ˆÎi?ç§?~×?$‡j?+s?2Y¯>¦¶ú=ÔhÐ>)âa>©|>ø[j?y&º?²¿Ö?*èÁzÔ?vËð?Ä<?—û£?c)×?³4ý?ì(?ö ï?öŸˆ?® +ì?xü@?™íU?¬î‚?#e”>$ã>Ù'Œ? Ø>²¦™>†ï}?}õ?»ã?t¥?ÄI?Sé?y¸¹?+F‘>ùÙƒ?¶P›?÷Ó0?Ó“ð?Ä=»?X–s>ú:Ò>!I¸>­e.>ú{A?*ÓØ?O°Œ?0>¬ì`?Y€?« ¯?•Ì?†O®?mf6?qŸ?‚‡?âÇ>ïd®>Ùº×>ô¼t>û›²?ŒÅê?’~Ì?Ñ'?ÌÔr?Q‘ +?.òI?v$÷?|4ý?Ë)c?¿Ö/?”Ê1?žÉ–?¯G?®U >üµž?)í?½¥b?¨D~>ãð>œG?]NŠ?d]?—ßZ?•®L?DºÈ?OO?r#ÿ?e×Ô?Y‘D?k&s?t¿?C=8>&G¨>ƒ%Q>íâ>‡ï*<¹?®4?‘„?QgØ>þˆ½>ÚÞ>µzy?Y'3?ŽW«?º`Þ?ÚÌ?±Ã?šÇ’?eór?T²?¡#Œ?°=">Iÿ?\¸ ?y +[?ù0P?ÿ%­?´$p?¤ç)>ÿ×1?Ô³?•w?-ù…?T’¹?S‰?4‹í?>?ÛÂ?3Õ(?1f£?*™¥?Y&?Ôm?kƒ?rÚ?w†?}é>/…>Z¤>¢?•çÃ?¦ç?|q?á?¢S|?¥Ž½?‘9Õ?œH\?ÝÅ?Òkƒ?h’Ø?ˆ+|?ȯ?¡Êu?ä»?-C7?†Š?Œ5å?‘â»?ip?4à?ae?†[Ë?O“%?3Ä>€Hr?0Ö?`*?¥GÙ?¾ò ?)Ýv?2+?Nòð?Ex§?· 6?»i?¸ƒ?Ç«5@ñ?Ö“ +>éŠq?J›Š?ë(d?ÑV€?Ÿ–®?«Ÿ?¾¹"?ÿè?hÿ?¦©@:D?Ž1¥?r;?V&?x?%w;?{Ô?{×?‹Ð?ņ̃@…É?Ä%S?ÁÏ?†&/?†±&?ˆr?,ºH?§ô³?’‚">´ë?%{Ö?Âg2?Ï}?æ•´?»ßÍ?žô?—g?¶3 ?ʆÑ?ÚY3?Ô¸2?Õ†…@Ë @.[F@¬:?ïÇ^?ƈl?Áìù\I?Ä#G?Ûè@·?¾œµ>µ©j?¢*L@ +ŒR?¢c­?`?i™ò?‰Y“?8;2? I?Øöá@+5?I®ˆ?(%?#?,úr>]ÆT>ˆ=)?&( ?5|i?°Ï?kœ?°ê?ÎK?At™?S³?¯(?ÈýÎ@!Pù?ﱑ?ªã?˜l?¦õÕ?£Ž.?«©º?QCZ?¤M?ÿ??ª,? s?pà?ž(?l~Ý?eM&?%£À?'þ–?–F?¸?§Žƒ?šÏ?DÐ??\‰?:§1?SVC?’—Æ?¦"h?ÂGk?ð){@û?ÄÎ>Û˜â? 9? ´›? äI?w*?•Xš?¿yã?¡€‡?ž¡s?‰†s?i§?P¹?‘Ü»?3ü/?+r?•ý?›éÏ?“B?Œì`?¡Yl?Ç?&r÷?+A?GÉ?-¬?œré?¾É1@=?âju?®P°?…P(? Çn?}­¿?ÀåÅ? æô?Œ˜§?R8ß?üÚ?½;À?÷ ®?9ø(>x—¡>Ü>Ÿg?¾‹?1l>¶ËU>Mµ?³'?Án’?Ì +#?Ö  ?²ÇN?±þ³?í&þ?ØÐØ>À”Ê>ê¦?QÀW?8ä?ÈÖ ?´F?€½î?€Ž?€˜"?˜Ì«?È»?ª¶?qj?Ní³?2q? ÿ>¾×’?hXÐ?¬ÿ?‘VŸ?€|ž?‘Íö?žø?ã<„?þRå?¡š[?€_‘?CÎ1?-T£?p£?€Iª??>™? ?OL?L?&:?ïý??ùðV?À!?¸xÔ? =?"‚?ÿúO?ôXÙ?žD¤?–FB?*?À?³s?kΗ?"?æI>ÿw}>Ü*¡>¾÷?&Ô?¸pý?´d—?°Z¬?ÄIK?ꨫ?Åão?Ú?€èa?f”?@ä?/?FùÛ?~’—?z ?|8?}¸r?zF?›*?¬_Ú?„œq?V +? )>ÞÐ’@!ûk@c}@™Î?¾Fm?¢mu?˜^Ž?šIº?œ-è?Ì?³?â–º?³H©?£½Ä>˜*?&Äa?X?[Ý?_£r?cf‰?g+b?ynN?|p¨@ +2@ £?›eH?|j¨?礪?õ}L?RÌX?6:i?e%I?f >?tv?©‰L?5Ü?"aÁ?°Jµ?¼fF?D~C?12¼>‹Nü>l’$?Æåƒ=QÚA?Ta>?ym@ +(u@>?öì0?å£2?óò?ø¿f?Ž.?] +?„nt?•Ô? ÿî?¥Õ?Ðâ?ßL³?ŸF“?9C?¥)½?»¢?ä?÷go?÷úï@»È?›/?*ì)?õÇK@9+ +@3P/@-/³@`i?Àè©?³–L?«?šu8?y”n?Ds5>õÀ"?~'?ð¬¹?ùŠ@*­?ÿ˜W@—×?Øþƒ?;uù?bÓT?‘%é?„×?‰Ý¼?Œ5À?¿«Í?¶µ\?5¼z?9»*?׉?Ùóß?‹râ?ŠB‰@\²@ǽ?N)>ó¤?¿CX?çd×?ö¹6?úƒQ?\F“>O +?4?pª¤?˜®æ?¸{?µA&?«–a?˜²Z?'ï?²‹@ +ÞR@)?¤@‚ïÊ@fp?á +?Ý0ì@’ô@•=?¬Gñ?¯¾~?xŒ(?p-@< +@QØâ?ê¸P?³µ«?Š‹¨?o_(?¿Vu?ï&Ã?«¸?Y8O?\§*?`,?»/„@+a @t’?²¯Å?ªˆ¦?n P?t?Ç£¢?Ψ +?xÁb?m~›?Ú¾W?íCþ?Á@Ä?±Ëi?~G?K}2?”ÜÛ?À¾Y?¦àª?q.O?}äç?š½³?ªoÅ?ÔnÂ?Õ«?ÄÅž?Ââõ?°ë”?°•x?°€Ã?°kÄ?n­2?M¡q?¢Âß?¿G@1@L0@6¬­@³@rb?äà?äÂŽ?òü|?ôA?ó¾?ƒ<Å?óƒ¨?ÿï ?ߣ·?Ó¼;?®«â?Ÿ0Q?f7Å>èö2? >*?Bä?am0?˜j1?ž}?Ó ?ÏAU?Ø1ø?ÛV%?¬üù?˜pÐ?tdÅ?\þ8?àé@+0<@• ?­Ea?¸´Ð?ë1?ì«9?ç'É?çc?§æË?Ÿ÷Â@ x'@ ?Õ±¢?˜E?†!‹?fu×?yÌ6?ƒ.?ŽÏ•?“‚?•k³?žŸë?šœÜ?Šj?Œm¬?(’â>峯?mÝ?¬0þ?¥v1?žáO?™€Û?eRý?r +?å:m?å(¾?ˆl?€ïË?ŒÎ„?Š^*?Œ­?‘b?QŒz>ä¿t??kB?ÙYˆ?Õ«þ?‰Ð«?ÃØ? å?yu@ÓØ@Fª@À©?«2}?±Ð?·A‹?«kÍ?Š/è?‡G?§?©–?«E?ª¬õ?§|?¢™¢?ÄY„?Û…X?š?#£E?’K&@í½@°’?†¥?ˆ¸Õ?¯OãI—?‚ +&?ÏW?ä^%@ü@Ù…?cGƒ?cžö@;<±@AѨ?ŸBÞ?cM‰>˜íc=‚>û +×?cQ»?ûÂ?œ,?¥Ç^?Ðî?ͳ†?ËG?ÈÛ?@é®?0|™?Ò…ô?÷ßý?„‘>ãbK?—'?1+Ü>÷ËÙ=±Üy>4h\?d¥Ø?d?ßz?Ú¸ú?±;?ª”°?‹@ø?€Rî?›ˆ?¨(?©“O?±c?ŽP>Ô¦u>ßü?ccÓ?ch1?DW?HË?}Ž?ƒ? w?±<>æ4·>áÿš>㪆>ùk>ú >ã@.>÷¼Â?B8?<¢>å¼ä>ã†?$J?¬?87 ?Xá\?>¯?'ay?2Ò‰?>N[?1H?Õ^Å?ÁÌÔ:Ó="ð=&é%=”‚Å?=¹‰Ä>“çß>äç?á„‹?áa<¿]á?<ï?`ú±?WÕ?I +9>°|Ì=÷[æ>–f~>U<…Ëâ>Fn^>,®5>r©>¢œ5?(³?<7^>¢ú>:†’>Ùý4>Ìÿí>¿©Ç>¿Dc?$è.?wÍ>ûq`?Äj?#Šš?+"_>¨m8?Š@õÜ?„™>Þâ>Ô{>ãØ|>ó$l=Ϙ^=A bÿd?˜¦? S>í7>‘TŸ>®ü>þA}>Ìôè<ÜL×=•4>iO>üáè>õÐ4>Û™]>Ì J>½¯Z?S®!?ÍÖü?œ,Ë?:=—>à6¨>·áú?E‹>ùì«>*2j>öí?l±–?;]z>ú ? f ? Ø`?FÑ>¹>y-X>: U>¶Bw>ùFW?^Ž^?•og?†ké?y^?+Çj>«Çæ?×Sð@6áq?ÅH?¡¢?">øžA?&.?W¥½>ô4O>1P?ƒÌ?>Hº?3Ê?½)?O½?o£s?å[>Æêâ?1nc?m[¦?z¸A?wòû?uU¨?xjï?lÝþ?^šì?k%?x~8?£>Ó²?cÖ„?ƒ3?yì¿?L?? 46>ø·±?…ž?›f? ¹?¬î>P»ß=¤IÈ?fM?±@1ˆ@#Ö?ÿs?Ç}?ªhF?ä>î?¯?0+?’þË?›­‰?—á4?„Äñ?yÇÛ?$H%>÷>Ø?Ši?¶ö?ÄÝ?'˜Ü? “>úJ‰>À†¡>›òf>Üþ>ú‹b>íÄ>ÐÕ?tóø?‘™?߉¯@Qþ?ÎÛ?¼Sä>•¥>λw>ûc¬>ûx >ûˆ?”AÚ?›G¨?WÐ?ZK‹?£qS?´Áq?„Z{?†–¤?Nà +?R @*…6@+\8>8¶»>¼>ç†%>ô¦œ>üý? ^®?ƒÍ*?‚úÔ?NÀ?<÷?"9?13Y?MH§?1nN>ñèx?†l?ZŸ ?m3Ò?ÆÔ?›•Ð?¾pZ? ìû?lùX?Œc=Œ¸>óÅ?væü?:s?()?^×>þ™Œ>ŽëÏ>!(í?{Ñ?hQ?{"â?~ûš?®®.?¿Uô?YJý?&wé?o£?\7>ªLk>2z,>áƒÉ>ùÊq?~‚?…9F?…——?|t =º†Y>¢Òs?Ë6ž?®Fû?/%&?9üH?ERb?@h/?Fêc?C¡?-é?|Þ?GG?‡-¯?ÖÂv?Þ??ðâ¼?´’Z?€-?}Í?w½>®Ä=¦³È>£û>ÀK!>´Àñ>©;Ž?«Ö±?Àþ—>¬ºm>†[?GTY?Péè?Y¹Å?Oo?`ŽÀ?U2‘?Ù=?`ý@ F?Í ÿ?6F?.µy?€öÌ?R®Ñ?LI??5g?b€?œ Î?Á›´?e‡?f?d›–?—?[?³5y?‘@?~*?!U?;š?Þѳ?î¹ß?ˆkÑ?xhs=–éY?ÊE?0ïß?ræ2?µÝ?œ"?‹½ø?LÇ)?—l?Úk²?¶W?†²³?Ùlº@ ð?«?1Õ/?-?7؉?)o?YÇ?¬D¥?ÂNå?öÊc@3Ì?‹O?ÚÀ? +È?qz?qü?¡7ì@>ïë@$RR?´®µ?˜ÎŒ?eO ?}?¾$?˜á˜?H‚®?Aãô?2,?^€ø?­F?ÃÁ>Ì[?VÐe?²Û>…C <Ù; +ÑS<6h ?ä]?"FÀ?ÈíÂ?Æ»D?69?HµÐ?»?R?†ç+?›´Ù?¶+G?¥Ì?§Œ¸?u>È>šH‘?‚ ?Xû7?Ã@ Øã?¶[#?m|?µeR?Ï,?Âgá?Ág?ÂÛƒ?Äô>l¼0=iÈu>öfx?¼>È®6>Â8?¼Š? MÎ?ªW?¡êZ?‡U?`óƒ? ?9KK?¶Å?¥‚ñ?×LS?­’Ù?³†?ÎR!@ s?w Ú=ÆþE>Õè? +?`ï\?Ný?­‡ ?´ã?¸%?¶æ>™P>ƒS©?]½Ï?Y”?TV-?H„”?)?E”?™b?tuÇ?LÅQ?8c?‘o?DåC?ž®H?}24?ÜŒ>Áî½>$Ý?{õ?÷kæ?ˆñ?¢£?(Ô?¥?gË;?vÛ?,b?é…?u°‰?l->a°>2õ ?öíé?ñD?ßC?áì?惧?ë-2?Ünò?³"º>ªò>É•Ò?J?o!›?è°??­Tç?(n?=;Ð?zwƒ?€+?7ã>í ÿ=fa={uè=€d>?O…?šQ?g\b?>ÔÁ?|Ýÿ?í„>Ÿñ¾>LΚ>ñžN?d?šü?£Lª?;:š?8Sh?£>m?´š??ûT?Ù >´á>P¾>+~?+¾@Îp?ìÒu?‚â°?V?‡?8ôî?…Ù?W›â?u>²ª‚=Úb?E+?]{ˆ?Lo?ÀÕ®?±»ê?¦‚Ã?¤d˜?¢D,?å‘Ù@ô/?q:ð?'Ë?®þz?Àæ?™€Ó?‘eµ?-p?#c?C¢?‘Ñ¿?Ñà?¼n?bÕ? -³?À+õ?ºÁ•?wy?wò?Ú?›–˜?¿÷…?³©M?Ö¸?Èÿ?•?T^Y>Å?3Õ?©ˆó?£ve?c?§â|?É?Ã$?¹Ø¿?¶“A?¬4š?ÌÿÄ?ì›'?–/å>þßH?7Â?pqª?y™ô?~¡,>éÆÊ:ÔÀ?¹Ôò@ÔûÍ™?Ã? ··?6ø?3v?+½µ?$ð?„)Ô?‰oA?µ÷b?½BÜ?½¯?¼bÕ?‰äþ?‡ ú?¬A?¬:?%;Z?Ê?þRé@d.?s¶?TÊ?Úá?ãÕ^?‘n?…ÿ)?O‰†??·?Ñ5Ø?Þ°?˜2}?™Tð?8õj?&Y:?ð u@)º?¨›H?¡^€?ŸŸ³?™¹?~̃?yµ³?ƒlœ?€ª¶?³2³?º„ë?¾Ä­?Ô?EÃô?+*`?6!å?Aå? û9?†P?eì +?xi¡?bê?qK?Í-w?ø=@#ãÚ@-¥à?ú×9?Ѩ¦?ÅQ?Å‹­?ZÛ>÷>X>½r>3k? í?Õ%J?ßþ?ìAß?é}¼?èð(?i¬?gË°?öo@T¯Ñ@¢>4@ˆÜ@Mx-@&¬?ËÐŒ?¼2š?•‡[?_úà=Çžü>÷bµ?=Þ3?Ü[}?âN6@ +Ô@d_>ô?¦?¶ë?¶Õ¹?Y¥>óŽ"?9J?+…ß?M$Ï?Jüu?ˆÚ?˜1Ý?÷¦Ò@ +@(V @4i¿?±M€>ò]?=ïj?w›?˜wà?µVä?†wð? ”?—[@Õ½@ +•“?æ‚?ú¤ð@²@?ÿ§j?ÌŽ?Ê€™?po¹?pS?”H?“9W@  }@ê~?«Ü?‹·O?‹†P?ˆ(™?¶ Ú?Õué?ƒ‘û>îþÕ>ûþÉ?Þ&?*4Ö?rè·?‡ê?²º™?²J#?¯5C?¡—»>&>PªZ@‚@«®?¥¨ó?–A©?Œ7±?‰ç¨?+÷q>ìâÒ?_¡n?— ?“ø*?”9?€î?)%é?Qa¡?±w?°sÅ?´æ$?»a?Î4,?Êh5?²Þ“?°vi> ë?@a@I`è?ý¢n?lJA?’ð¨?¶Ç?ÖÎz@ãh@¶?ŠhQ?‹í~?‰Ü??êaã?ýM€@­–@®«?xzö>Wåè?òò?c +–?iÛ¤?oyˆ?i¼¡?ˆ”ß?è´?ðäˆ?öS?±ò?®$ð@U¬@*]x?“»>Ùx§?lÍ#?­Ä%?Ãäñ?åº@i=@uë¥@^aÌ?,r+?7™ +?*¬?/ÎQ@†@-y?êˆK?¬ÿS?Á•?Ñ )?Ôæý?㬦?Á¹ö?µŠ?Ys?ÒG®?Ô'.?…(y?c4"?Ç!?:æ?¼þ?ÅwÍ?f¼ô<›À1>e ©?e[Ê?eýØ?rº?zwÍ?Ð8n?Ò¥y?ú^C@ø¤?šöÏ?6Ä”?>Oô?:º½?bìÕ?«…G?¢&'?*§ ?& )?nÆí?]õ?¶@1?Ôüÿ?Û—j?Õl?ÓÎË?Ú6à?êz@ª°@Ò¿?g°?dU?Þ¸%?á¦?F +ò? K*?YQ?0Óg?Bn¼?F{o?—êÍ@U?þ>>¸[@>É8Ä?UÏ?k—?-×? R?¦…\?ã‰E?¯è?cƒ?ˆ—E?Äé?Ä¢Í?ž¡4?£`?g*Z?cht?Ÿ¼l?­4?h–½?8hx?DQõ?5Lÿ?†=^?óRÀ?íQ=?¾÷ž?Á:I?²Æ?¬Ñ²?FŠª?#´0?<ä¦?Cl¤?¡Ï8?ì¥g?óK?úŒÛ?æ9½?V:Þ?[ ù?no"?cè[?Òu¥?Ýñö?Ñ´z?Åšû?uÇ? +i?|8þ?ÒU?±åš?.År?L·ä?§W?¬5?ê{>ãd™?É,b?ø?Œ°0? s²?…$‡?Ó¯”?¹?i?waŸ?ªv„?ªŠ…@ ßJ@ +–c>ö6>“/Z?;çC?crè?hYo?y†U?n”?^óã?_Ÿ?3ÿ)?>þ"?chõ?crI?&Ì‘?B?WJÍ?cg?À„Ð?ã7á?Âwç?¤Ä?iy\>ãOV? +¢=?GaÈ?;¬Ö? Þ?@k?1K´?+Xš?‡w ?“¸?HXŠ? &>ˆè©=¼€d=+=6<±ø;ðª=ŠJ>ضV>Ìòs>Á&>µR >©lƒ>ƒï?L?uß>‰4M=¦¦f>*rð>%Ù?$ì??Rºƒ?Ïp¨?ÔÔ}=@QÏ;˜;¼Æ€=DC?$ìQ?`ÌÇ>ÇÞU=yæ*>.ìã>QDa>^k>Iìb>Š3‹>–÷>O =º‹ž=†‚<=$²åC G>Þú>«»¡=°JI>Ϫ?Ù•?W‡=XÝ‹>¡?­>Ü >HÃ?»c|@4û¿?¨XÚ>‹“µ=–Î]={ž~<Û¼â>Ò"é>ñ<¿>áo=>ѵõ>}²š>ž}h>ÿÛš>ü#>öˆm?8k>J¯;>gÃn>þ@Ú>Ý;+>"ŽÐ>¡R?r¼à?W +–>üáò>ü¯á>üx—>µÉh> üs>ýfw?‰ÙØ?`>ûk?>é/->¹Ä'?HJx?¬2¦?‘oÚ?iG>ööó<4½Í;‘­`<ô¨?æy?cÛ¾?)rÁ>ù¦>`,ä>ùÿ>k"?7¥‚?"±?†o?y?½¸„?ð,a?îC™?óª¿?¯z•?r!?•Ó]?¥ïÖ?‚Ÿ+?VÕ?f¸2?cËn?F>ø©ä?th+?¢4,?¦k4?³p@?)·ÿ=¦* >Îua?s?Ó—@Hã? Ôè? t >®ÚJ>nœê?0þe?x„Ë?g{Ð?J!H?_A?x¥?IÇ’?$Ìk? +@4>ø¿‡?{£9?¬ð¯?Ž?wâd?t3?fÎÌ?x?ºÍx?Ö¨$?ð]Î? :x?t–?yém?xû?GäÈ?%«?›£?! [?¡ð‹?Öø°?žy?yϺ>°œ.:åÍP?ͤi@(s?6„…=É<¦=ý:>—·?ZjÕ?ˆ¸?›ú?šwÃ?\?J^ß?ˆ­A?˜¤ ?S8m?*áù?§]0?¼[~>‰67Þj_?Onn?o˜“?iLÉ?bþ#??–¼?Hwy?PÀ?IÚX?;B>ü >ü>ü)Ž?*K}?'¬?Ü…Y?Þ‡ ?|†¬?mð=ÙC=óv5?z½]?f\£? î ?$¨›?}ð?QTh> >á·;?¤"t?‘1æ?;©;>ìÂñ?Pl?±¥_?ƒK@>þ[?<I?®6?¬0=lÈ€> >þ‚>þ‘3>þ£µ>Î`6>¦Þ>nÆ$>`d$?GñË?Ç?‡¾0?¨?¤û?¢â%?o«?h&Z?© ?´]È=´û.;¹@š?;Z?Æ/?Óï?{m­?J+‰?S!t?¦Ìý?ž›7?MŠŠ?D0à?>œ?fSj?øÞ?…Æá?€?m?J/$?Lž?žýÕ@÷Y?ª Ñ?„å?Œv©?¿ÿ?]®@? 3Ï>*Ê?xíá?$?fÛ’?QÔÞ?¶ï?Á‘>£è|>qR?_?‹ß6?Õ¼e?À8ð?Ôõ?,¶?-Ì?’^ô@<&y@¿|?€Iy?PÊ? U¨?îÃ~@X¯'@Fµ?°!? 5?˜+??Cc? ?W¬m?‰ +?R?2ª»@ Á³@Š?Qâ2?Ž ?~$w?‚¿·?¼’›?­pÆ;:¥À=ê>+€p?f¥?8bN?eI?T´?k»?)Îú?iÑ?€u?Â3O?Õ‘;?æ÷È?ç"?Ûì8?5y>‰Í?>âœ?k^È?§Q?µX0?Äé¼?Éø…Ô=)Í=óP?Ï~?Y¹P@@ö³@¥>?ì7»?³öÔ?·xØ?ÃëF?“I?9u¯?‰Xí?¯?u`S?=•…>…GŸ?0?ä?uK[?''Ö? W¶=ˆê=ÆØ=o÷‰?'?.T]?¾›?È\?)2Î?\ð>FG?J@µ‡?¼ð>ˆõÚ?\>ÞD¬>´J*?'Žý?e÷x?(ÇQ?Äe?æpE@?¬U¾?4?·©??¦°?±¤é?¨q?oÎœ?av>4>:WŽ?Á£?aa?iºc?‚D? £ì?¡#²?‘p?uc?S y?­}°@»?Êöê?:?Dî†?¶?\X@?†Œo?ÚF@aO? x²?° ?·NW?†?’´?ŽŸ©>×f>¾AB?)ψ?=V{?©¥‹?ŽZ\>\}?ž»?~{r?i Á?@-?—¼?.Eº?d‚¡?‚á·?™6Ë?¿j?ˆ¹]?Eðj? ³P?•]Ï?À±t?çÀ?òä?Æ?¸A¬?€?eÒE?ª\@?¯4>ÆŽ>¥åc?¨Œÿ?°¤¡?Ÿç1?ýË?_ð?Š%X?·Oý?šp >¤ù>á¤?AÊg?Sñí?Jü?ˆÐR?˜Õ?PR}??|?E½T?8©?{.?nΫ?—¹ñ?¥Í4?ŠL?$b?!'?6?[šv?[$0>ÉÛ}>–•‹>jæ«>yù??f†?K?›¶Ã?’ke>³8?%B@/U­@ å?¥ÞÃ?£cè?ŠJx?óÇè@‡ðˆ@\l¡? ®?‘3?Áº?/?ô?Òb^?«·N?†x–?E¶?.äO?&Úæ?xØû?—ç]?€¿§?n¦‘?ÛÔo@çZ?ý—³?ù][?<–É>ÁD_@[è@ xu?¢’Ï?‘t?.?‹÷Ô?è<€?ñjÛ?Àé?¾?zì¢?€v? î?yY"@#Š{?Õ?:²~?.½U?"É"?cSù?‡ñ@Ä.@\º?Ò b?$è?c?~Nh?~=¦?~1S?“J?Ÿûò?x…?U.4?äsÂ@[%@ É@ 2?ÿi²?ý†’?ùþ¡?ôú—?Ü>³?Õ†?{Ã?–hû?‚õ:?|üW?¨»´?±Ÿ¹?³~ñ?µZ¿?äÞ?ï“ÿ?ÃU?½H¥??ý?HÊ=ÔmŽ=ºþs>4ÐU>gT/?Ì·Õ?Óô@JŠ@hŒ?†²¨?{r?ÎI-?Õ+þ?›¯V?š?º±v?¼6n?ò³×?ñ¡ >’ç‘>8ö?Šú©?}I?¯i‹?«±Ú? +¯j>úË@ý|@í?;y?h`»?ë_K?øæ²?ùJ9?÷¢¢?õ´ž?óÅ@@ +„@ g@«µ@ò?8˜Ô>ø¢Û?En?$oÛ?"vá?=4?µ‹?ÕrT@ "@ ™@´|@ (Z?»ÊÔ?“XÁ?MÅÀ?#‚Ÿ?qrü?‹Ô“?Ñvl@–?ß&å?Â1?™£?vv·>ì9¬<_ü7?™Òá@ƒ”?èZD?ŸÁË?Ô* @]l?ïC”?¸5?³w?© l?äñ?+,è?bsô?ÃÓU?Ædã?ô“Ž?þ&“@·@ d +>ô&? N~?Ϥk?ͤ?yG?m¨¼@I@dæ@þÃ@¶l?.è>ªê”?K²j?r¸?ö@(´@ÉL?ð§?Ê«N?±A©?–»†?€½u?F(Ö>ñ›ì?—1@Û@ ¤?ã‹?»æÕ?0!=?{¬P@3„@ÓÇ?2gN?5—?C 2?NI0?Ïì?Ð:º?†"0?f̾?¢ Ì?³—Ì?‹ïë?o:«?@"x?’u?N‡»?ƒú?’×á?²Je?²×Ç?²À&?ßß@F|L@1 å>Ëç->Éñ@§x@¡L?Ô†«?Ê\?ÆäQ?Ã=V?¯´ø?£bh?‚‰ù?f™0?¡=8?È»h?œž4?<}¨?_4ð?œÅ,?˜ ?Yå\?\a@Gy@2Ÿ?¹à_?°|Z>ÔéÐ>fx?}-/?±Ç?ÐÞð?矎?µC‹?tÐ?a'Ç?;bé?ƒ5æ?ÿk®?í°¿>éãö>éÍË?aüì?u–?ú²@ ÍÔ?Ý<ú?±lŽ?3d?v?ÊLŽ@ Ž@ ?Z?Àý?·¶?ƒ +î?"‹?¢nÖ?¤ðó@eR@ „Õ?01Á<äÿ?Cç©?­È?®½Î?±‚W?­‡Â?¨Æ8?¾².?ó»†?ì"=@ @AŠ?ïè=?ë>?«e?‹ÒI?¹¥@?åhŠ?óM%@62?Ù`Ô>­ÏJ>¾GD?¬“8?¬‰:?îF©?û??‡)*?DÑ„@Q@BfO?øšæ>ç¬?5e?ea²?q˜¸?¦›h?¤œÈ?´+}?·ˆ?Ãt×?ʵ?¢e?…w|?‹`J?”‰?£ì?É«¦?Ç©ÿ?À¬_?ºŸ@#@"â8?ˆ'}?2PŽ?àã!@G~?ô ™?«.?©q‹?§Q»?©í`?«o?ª£…?­9·?¯Y?Ê¢Ÿ?Êdx?¦ö?‘Ž?”¢÷?™ÿÙ?žR?±–?¥óû>ýIl>ìKY>ÛB“>Ê6¶?§'[?¿°º?±¿J?±vÍ?ª7&?–ãé?iZ¶>ãyÄ>óþ?e;?î?bG‘?cjù?^ ?¶ƒ?Ÿ4Ì?ÇK?°t?œ¡§?—éà?–h±?Š6?ª[?ª0÷?¨kÔ?­«?®P?ˆ>~?ƒ~x?†ø?{¨?cU¥?r†c?ƒM?hg`? å/? ã¼@ ø@ -°?éRY?ãUh?qÙW?-©š?¶)>ãYŸ?}«°?ãZ|?²;†>‹_>±7ç?¨´š?£ÐX>ùÂ>ãgš?…K?›]³?‰_z?wÌ?]ÌŠ?N¿î?[?©Ñ ?ª†û?ª”Ë?©s?‡½D?iˆ?®O?§H+?AJ·?1…?{¾?—ÿ?9@K>QGF>†¯>ãr„?NÍ?cmˆ?cÌ/?–3½?›“þ?oªZ?ci(?šÁ×?«!–?ŒÃÀ?o-K?Wð=¶‡ >weŒ?­?)T?zÅ\?ne?)ÝA?/‚O?5"X?:ËX?½î?©Iž?H

À<)>p¸C<¹:w>Œª!?a¶?j©Ô?žº…?–f3>â—©>âŒ>âv•>âj¦>€À[>S(ž>\v•>A >a+Ý>™ÇÏ>bÝ>8Ò?a¢S?aç?aÚñ?_W´=ÞÑ•?"•?`Ûx?;eÈ?É>Ÿþ =wá¦>|÷l>w© >¨Íù>¾vÌ>ËZÞ>Ø<²>Þ¼}>ØîÏ>s—Ý=~Æ\=x¬È=J6¡>ÝR¨>Ý8>Û³y>Àé>Ð >Ü"¸>>ï@#^@x•@;Ä?d§³>«øf=pãh?K/!?i>(5Å=B=žæö=Ü‹ ;I7Ü;Û >J>Q.&=4»<>¡zQ>°vÒ>¿jê? ¿+?}ÊÂ?6¼_;×”$S„>ûǃ>Ã1>‰);?º+?P¯ê?GAÒ?C2a?%`õ>ú‘á>õÇ°>ùmF>ñSÿ>âÏ?fú?ð@>®Û">!-+>×L? r–?"ˆá?'Þ¾?#wY?&XÔ?-%Ð?AÝ®?‡œ?¦uD?TUc>øÚÎ?,?ö ?Z,h?ˆ›¡?º­®?Ò.?rË?íô>Ô”c>hw>Þå?ÞÝ>¯—ò=ôi>ìÀ>ÖÔh?©å¹?õW?¬ŠJ?†?äŒ%@G?€^<>´ö¯?:æ?x’å?YÞ?š½Å?ˆÖð?xªˆ?–éÖ? è&?f{6?*ªÐ? Õ‡>øÝ£>ûZ>úNm>bI=Ð9?9h?‰¸?È?g?˜—?¦9?W€?7\j?oµ‡?£ò?n™²?Y@¶?-MŽ?'å?Oì?s©¹?Ó¨?ô«?ùU@j@7÷?ð;Í?; 1>¦W?:¬?k9÷?Ãã³?Ýò?±§?—¿0?þ+>úí?®su?ŽŸ?¸‘õ‹3?§H°?´Ér?±©u?®†?J>ûÅ/?sà?{íx?Bˆì?9“ù?3P"?, O?*õc?9i?`Uâ?f«Q?mè?… y?ø'2?Ü®œ=6új>dÏÖ?jÓ8?|¡‰?®Š;?…o>ix@?mÉŸ?†wº? Äö?}×X>º8>¡›ü>‰V>æt}?R %?,¦²>ê­k?vìŸ?¾’?ØŒ}?èKY?…À>þ’Æ?u2?›—Š?¹>>bP?(¹3?KBô?Á?­Š?UÈ>ÿ7±?°[?ÏÖ??;Y ?l3? x~?‡w>ÿɵ>ý®g?†?^?ã­?†m¦?°ÉÇ?¥Ë?€ê?€?€Þ?o F?>[ê?\¿'?›”–?ŽÊq?YÙÖ?BîP?UÒ>æ½N>u6Û?'AÔ?‚F*>ÇYJ=YºÔ>½á×?‰¼> +µh?Ãp?OCò?4”?3‹?lœ?}‚?{„†?nx‹?Ÿ@Ã?®©O?Ûëö?ÉUÙ?ÝY? f?cÝ?ˆGV?»ø?Öâ¡?ý•ï?—ži=zô¬>¼Y?W¸\?»Ac?ïL?”}?2”«?D#Š?Eª)?=V$?,þ?l¶+?8»@8ÞÌ@PŸ?§=k?S¢?_‡? ?{?b™ò>²Ó?ì6~?¹Öì?hg?*oÚ?m©?s´°?VÖ›?-™a?yà?„ð?Â?Ü?Ó=9?Ü·‰@,¶O@LÔ”?Á?cë?+NÜ?32?Ûo?™*?ï2(@JW?¿°?µË?göP?Q% ?¦ ?"Vå?“S?›Q®?¯Ô?¦ô€?”ÃÄ?ª?N£·?¾#N@ºZ?„ùe>¿˜„>0Ð=¬g!>Ìî?Á—?°¼%?ÃÊl?ù¶)?ö††=‡¯&=œÿê@ N@î.?¢ƒ?•… ?Y2ï?5É>šs³?R™@Êþ?­R>c·?Âé?“ÛP? ç>»ˆ?†?%H¨?#2å?fg}?Í?€|?¨b? ø?Žþ?¹ÊF?¯ˆ?‚s+?Žör@%ª@+ž?V›®?Q®Y?LÄ?3;¿?.J?O;?¹â|?¤û?]?§C(?ñŒ­?Ùì@?£R?x=Á?Y™?›ô|?Æ?“¸Ù?‚Lg?"«Á? =¸?°nr?Â’­?‡O?´ö?bÞÐ?aÅã?—¨ó?Š(?é?3Ä^?K©S?{AÆ?ÙV·?½…È?‘e®?Ž×…?x°é?²V[@›ÿ?ðÑe?ã¨??Ï‚¼?¼€Ñ?¼Ý1?¿ä¥?V]«? á¿?êb?)®ç@>@1WD? l?¶?Nl”?S?Ï?”šÙ?0g?‹¡˜?c?Ã=?´÷Ö?hÈ?r°&>€ $?¹? ©ä?Á…?½Ü?–?›¢o?σ?¸&*?í?<4?¹)b?¦[?r+¢?©|B@›[?Í,È?z¼?·?K@Àª@ Ÿ§@ûn?ÌÛ?€®ú?5ÒY?¥"?ƒq_?¨Ra?­”Y?ªÆ±?Íh?ãpe?Ó?ç?ÔÑS?ºà ?®I@ „A@"´>ö~:>igk?ÁÒk?Êëú?rÐ,?w+´?Ä ?¶õŸ>—å@,@ €e?rŠõ?ŠnÈ?ßV(?³„ >´ì?$(?™Ô0?­â5?è¼t?ÉŽN?‘cÃ?€Þ ?;4?v„]?¢óp?°‡?¿ì?˜œ5?V C?·Uø@Ž¦?ÇY®? ?¹7Ò?í°^?ñž{?õ‡u@"Á@>T1?à„#?‰hW?8 >þ}Ú>}&>n*?Ì@ +,%?„Ž?"‰•?Õ¬J?ü’ú@¯@ ²9?ïRØ?ïç ?°y?£At?Ý>u?î*x?¾Ÿn?ºO•?#Àj>ý*³?“‡²?›³Ž?U9Õ?Qñ;?„±t?…C?>Ò?g¥?³ú?½S…?³ >üKa?ai¶?_¢Å>â4>ÐI’?EÃm?V*²?ˆä?¢Î¸?,Î?*>„@«)@}B?mR?{+Ô?º¼_?¼B9?åÖŽ?íq?K“>ú¬ ?Ë ?ÍÛJ@%@b>í0¨>Ð7Ä?‚&’?ƒ¿n>?ä=B}z?¯®g?»;¯?¼]·?¾'$>‰Ç<>XV?»XË?ϯ}?ÿ¢‹@s?0þ…>ø±?óñJ@Ãl?bið?.YÖ?ᄈ?ü«i?ÇÌå?·*‰?çæB?÷·y?íƒ0?æ.O?˜¡?wT}?±Ù{?ÈKú?…÷G??6·?½1…?ö¸³?°6ˆ?~Š·?9x–>ûØç>úRô? ú­?}¦·?²óà?Ð_?õ³í?Ü0>?¸c?•?±?;¸ò?v>žß{?à?šõI?“—Y?XZ?—}F@ÁÜ@ Éc?/íB?9w ?®ª?³a?¸¯Æ?½÷û?§~I?¨G"@éA@©ò@ ƒÔ@ 1Ž?‘p7?d¨œ?¦N–?¶…?Þï+?òUe?ª‹2?}”}?™Á?¬B?¤Ý@?›†;?Âk@ë @Êw@Á?èÿõ>’ïN?> @4’@&(T?3Wð?=À@Á?ñ‡ð@$ÜC@)±)?Ý*\?ÍË„?¢9?˜Ö‹?‚å0?oI ? mž?¹‹P?쇲@JÝ?Ý?n¬R?$Âö=WN?$³@aÏ@J¶?YÍP?[Áâ?¿íÜ?Á§í?›¹º?œ¬@ˆý@Y/?æ[/?ËÕR?=Žl>mhÛ?‹>E?óß’?ÛÒ^?ªs$?”‚h?l¢?…J·?ÍÒa?×UÊ@NÌ@;1?ÅAª?¼|…?íCŒ?òA«@ +ŸÔ@ÇÈ@3¬×@H“¿@«?©>?¤É?šÑ?Žb?eãè?y¨¹?‹ýa?ˆIù?ðEm?ê‰t@Ï@h@¿u@1i?´,@?U!¢?¡[:?÷ð?îVã?Ç<?ÈÜ­?»rX?¸ÄÞ%P>¥€>þ©°@ŠH@à?ðÜ?øyv?™¬?Š?©‡œ?²Ã?G¡?‘l,?´™ø?ælU?Ô»?šÐ9?•; ?Œ¥?w ?€ÀÌ?zSM>¹xJ>oš?Œã?ÞjJ?®û-?eol?B7º>ó ¹>ày#>0¾>_*?yÀ?›Ì?¾r?ƒ²1?…£á?‡šÿ?¼4å?ëÛ;?ÒÎF?¬Š!?Ã(@æ^@Í@)Õç@,ëÝ?ÈA–?«O?›\Ó?—}3?§ ?±K?œa??jð’?šå@*mÚ@&ÐY?ß™¨?Ý~Ò?¹Õf?µ ÷?‘5?€É?À~?ö¸l?Æ/á?cÇí?oµ?T?.?‹í?ˆâ2?Ê'?ÐÜ?¢AÓ?Š?ÆD@ +]?ÊÉÕ>ú†î?Z‡@'Ùø@(ÙÔ?ct[?cr²?ÉÎ>ãq@X2@KÔÃ?i9?Ýø]?Á–š?VÁM?f†»?ÂÀ’?»éu?¿Qn?¾¬^?Xx*?ÄT?IëÎ?y.&?–LÊ?Ê^%?ÕÓ?áÊë?Øšï>îáY? æT?oÞ9?;e?‘†?‘mê?hO%?@©$?‡ÙÏ?Àºó?®„ ?hÛú?zäÝ?ãgS?ãl¼>ú±]>ãlø?~§?ŠÁ–?˜s?£°?0LU=n¨>(ñ—>åŠ)?S_@ 3(@´·? Š>?ó3?ܼì?ã€p?DEd>ãzÙ?³í¹@ £?–ªw>†#V>ºñ>›\2>×c?cwe?b0$?—‹? aC?UÓ?cT5?dé?j(b?gÄñ?ceì?u›?~Æþ?y-¥?‚¡-?Š—M?ÉÀY?þ ?$êH??>ì\n>ã'^>GÕ=¶ã=‡îñ=3Zƒ>`Ü©>âñV?9ö$?§5r?¥w?ª'?£šÉ=ë=x> U‡>ÓÒ>âx|>ëO>×¾Å?S¿?çÐ>ßc>lëä>;ß›> +µ>p]„?a³±?e–)?¨‚½?¥…­>ùå>º$?=~Û?`îP?5¸?Ø>¶¢ã>;;>=ä.é<½2>EÖÒ>`se>õ”? +è>î‚>ÜG>3œÎ?ý Ý@c½®?áÅJ?7jn>ÿ€Þ>ì¯R?f_? + ?µ&>áî>ÑO`>¾™À=m±?\A…?<¤¾>çí>·sP>*˜8> “=Ûo>žj8?q~°?SX›>üÒ…>òÑ?9Ÿ”?îC„?Ó%1?¥¤?Bú?AØA? *>Ô¦Q>Û9>û'#>s‚¯>k6»>è¼>Y÷;Î7€=ÖÌ=zì=¶u¢=ïÖÒ>êUt?!+Š?Q{ ?y‰ñ?´r7?Õ?‚Ja?-¢+>°ÞÓ=½,q<Ú„Q>›];>øâ?EØí?j@ý>ßPû>c÷P>êzs?)šÒ>él>ˆš>Ì,™>ø„>”¹Ã>!‰Ó?sí?1ƒß>k =Nmß?—=?x­?ð@r¡?ƒ·Â>ñH(?@(?RÜ ?i<¹?xœ´?NCV?=Š?Cà÷?J¡è? ;µ?Çз?¹Ð1?±$?U•™?S—?Nƒª?ud>¤p¦?”ßa?ÚöÅ?šEÇ?yD5?·•D?×c?cŽ? ãõ>È–R>¦F”>ã?'>ù¯g?T_Þ?yÌš?n>õˆ>ÿå]?”>¨ý>žý›>ûË?$iÉ>™ˆÚ>7u€>QdN>kKß?‚Æ–?¡9å?½®Ý?Ó¹Ù?Uk¡?b¾?Ô‰ß?ó“G?_?{@ƒ>¸<ÖZh> >idŸ?(?>6Š>F >3˜Ö?s+?{û+?œ¤®?˜ëƒ?.[?$ m>“¹Q>‚0>ü.>ÿ’‰? +-Ó?ôÙ>ýÆ?¶3?j +?wo?²Ù•?” +2>Î=³?¡M?o™?€:>?¤¨¬?œdd?šne?†’¬?Rå?fæ–?}ñÄ?àÓ=’у=Š3=C—?A¬À?¾Ã3?ÁP?Æ7•?pÂÓ>þ¡˜?¬»?¿ +?k_Ú?{h?V/u?~,×>}—?0û?OãÝ?Cìv?7ó?w9?†û?Ž»í>Ì+ñ1>ù£@?‘%?ª n?Âæg?xw?V™©? Ê?³Í?€h%?~±?‡½?‰ˆF>·Iü>Ç×e?€Û£?yÞ!?E÷|? ‘ ;žø¡;b„µ>R£ ?h@Ç)@w£`@ùË?Eª¥?X!l?} Ž?h¾œ?M—´?@?A¬?“e ?¦ÃS?jšÆ?Wyœ?Ö}Ã?óVü?­ï?¬Ê»?s\4?p¯„?µ?{?{ÏP?a%×?,Ãœ?fî;?¨Á$?Ú{ý@ÛK?êô?|K?†ê ?ˆ)?É?þãC?Íyè?¸iÚ@E–@1÷‚?²³]?Vnª?e÷h?q¦ý?Ç—?à?Ì?ãÔû?¯šb?¹¶R?ÒûÃ?µþp?‡ A?xâ?ŸÞÀ?]¦Ó?¾?{Á#?´¹T? Lò?—*R?Xp?'?q? + å@ ±@"Ì?•€?‹=˜>ë1e?1?ÛP?ÖœB?“X?‰>7?/¸?; \?L.t?tS?ã‡í?Ò¼?­?€Ï·?-Óf>ï%c>‡¾é?h¦´?¥¯x?±+B?»Îó?‘(ð?ÕÄ?Ïì?€2á?³i?µŒü?ŒÐß?@ >0@¶@G¿?ôåa>¿ >ôæ?;bÉ?¡o>yÉÿ>ÃF^?´?v½È?²ñ?¹›F?²?´|¢?¶çu?‘S|?u§³?Í ?úþµ?béî?h?¤•?¶fm?,?Œ¢†?#«?û¡>D¾>¶ë?\Ò{?rò™?•bg?–ËÁ?ŠÏ?Ää?ÔŽ|?ºâ#?^‰c?–O‰?Þ\Mì<Á*P?08o?ˆ³e?ª3ë?µø±?˜x?‘zƒ?ûÐV@ ‚P?‚Û@?P0U>…Ÿ‘>kb >þ Ã??f?¦%?©Vq?±_?ÕjO?¼’¼? ?Êå?ôy?$žÂ?€ë¤?;us=Óæî<¶v·<€Ý>î¢&?€Ñ?‡—„?’Ÿ²?§?jN?îú@Bò?ƒÍ>,øw?Yo?šv¾?–”˜?š`-?éap?øÏb?HAß?ƒ?Íì?ëB??íN?ïXo?¥Ç3?›”?üó®?ÿ˜›?+€œ?.6‰?÷ƒK?ç'=–Ê? ]?*°?Kø?2”h?˜j¢?Ž¹z??%`?U[?”Kn?D-?°¥L?™,?Fþp?1…>| +>è;ˆ?H¥—?‚ÝH?¨*à?h™?&€b?Qëw?<ª?pê‹?hWñ?€”Å?†èÀ?ÒÎ?~ä?ͽ©?þ¶þ?ƒ¢½?Ú/?QMý?p^?_Ô?QÓ?¹‹?ÜÞ‹?Š¥R?X1ý?‰Ë"?›á?­ë#?´„D>æŒÓ>uM$?¡¡ª?²ã?„æ?}€?7x2?(ÜE?$ñæ?!¾?ÂZ’?Õ ‹>ÈA%>c¿?£¦F?²Mî?|+â?y +?ºt’?½\µ?òXš?î“Ê?ªŠ?á*?¦ñ!?¤¢Ì?Ñ44?˾ñ?"B‹?&Í?‘“%?N?¼ïè?Ç›†?||9?{ó¸?¼;é?»ðy?{>J?zÑc?*c›?&g”?Ô¿X?Ù)Y?|_?ztÿ>¶Z¢>“Aþ?¸™Ñ?»„ì?‰+ë?‚+2?¹o?»>–?».q?»+@$>k@"Áœ@„@ñ°?¢„?›VÔ?a<(?R†@E@ Û?}îO?CƒØ@ +Pï@U?Ñr¾?¿gý?Ø-Ì?ß*Ñ@?¯@¾·?¸Ýc?Œò—?ÍãS?é—?Û Ÿ?Ù˜?Þ{Þ?ãÙó?Å*÷?³—€?Ûuè?ö#\?Â>ö&G?{|?¸u#@â³@`Öe@/ ?ˆÒ +?¢9À?À[‹?†á²> >µ¢æ>ôáy?#÷¤?ƒ ?£H1@É@ ?>?tB,?kœô?%Îz?"$?}?¢«?—'?“&?A4?1W ?jãÜ?s 4>ƒ®¶=†´?¼˜?òV‘?È›4?¹io?×8?ãÁ\?ª*û?ƒ¶ž?æl0@ËN@çñ@ úL@ 0Ð@Yo?Â<Û>Gëj?(lú@ñÅ@ u3?”X©?¢}@c ï@hMÙ?ß y?ß»¢?J°?1á?0Æ×?'Ul?‚ ?u?Æ÷Ñ?êi˜?¬m›?nã±?­iL?ì×Û?ª >Üvé?3Û=?ÂÐ?¹v?mÿ?i õ?3·°?:Ó?ç?ÙÍ?þÆ\@Á8?æg?ÑMá?6L²>_bÑ?=7à?™!w?Ôž@B©?õTL?‡!Ò?vã¡?6@;?[•?ÿ~´@M @I@zû@Gj@N.Œ?Àu’?ršš?¥pä?îš?ÖÆU?â|?©Æ?%Ö¸?x‘¶?å?ÒÝì?ˆnÝ?Š46?Ð6£?Ør4?ä5?è7O?¿x>?®ü¦?®êš?®Ø•?•XQ?d¼S?…?=?°`¥?²a®?ÝNÐ?ߘ?èg?èO?‚B·?l ’?h‘?gù?¹_D?àU¾?§üè?X§?—>ó?é'w?ë¬ï@ü@oW?­^#?­Hn?¸µ¾?¶s?ï÷y@©?¾ïÑ?Œò?‰¬t?@?¡â?Âl7?µ72>æ-ð>æ"œ?ž¢r?¤4"?¡z?£™k?Rª_>õG5?+cÀ?e˜`?bð¡?Z®à?Tï?@ ·?6åK? Ì?Ì?°ç|?¾½A?‰?dÿ?‰]»?¥­h?¢=Ù?ŒyE?§—@ëz@ Q?À—.?Ä™‚?»pƒ?·;L?I¯"?у?•H?à–?áÎ#?ãðb?Á©á? +iÑ?"©¡?~`£?ƒR¸?¦z ?ªú?½üÖ?ÁçC?´6z?±V?§±?cÎ??ƒœâ?Æî?ÂÐè?ªÇ"?ªÃ©?»‘?»CR@©ø@$˜æ@lK?ÓÝ„?±³;?c†ã?cºn?c:?eS†>ï‘d>ød²?IØÖ?P é@‹ˆ@#TU?­AQ>˜øÿ?3šº?·p?®‰?fzÛ?oq2@¼@¥?ÅÍî?¿à(?ctÇ?.áo?ˆ$À?ª‡ ?e÷û>5Ò¦>Æ?ª‡I?œÞ;<Ê“@=1+ ?S§å?ca•>ßüê>µ˜?2©?cc ?ØÇx@%~P@ ²‰?ªŽ”?¶9?ù·^?÷F½?^ ?J÷n?ׇ@?íQÝ?”5?Yºš?ŽIP?ªË?±Ð>ãxì?n°'@&į@î?% Þ?/Yö?ZðÚ?mHi?>>ãr?¶7Ä@H,?‡/H=¹½ö>sA¾>± ?w,°?|™?ì`é?æõ$?à€>æø{?´¶U?ÖÜV?´Må?žÆþ?£Ò?ªŒô?ž°-?ˆ™M?Cé?ªµ ?«M?±ì?t?ƒ9? Á…?ÿó?:Œ?;>÷W>äŸ +>âüŸ>íÑâ? «—?b_?!'Ú?#=Ò>ÏN”>âƒû?Ÿ +?2Ö¡?/ç?z!?'Ô?3ÐÌ?EF#æé>Ö€~>á@+>šˆ3>›?7l†?jSo?ô\>@~d=ì'Ö<€'=±Í0={Sø?˜&›?£šÍ>eÄÏ?R?=E>²†L>†…>´{>¼?ïA1@P[ï?ùvû?«Ì{>­¶É>Öòÿ?ª-=ÃjÔ=¡I‡=ß]>,=>©õA>¸2æ?tùú?y´þ?IV?6n€>±v|>Àq_>Ïd>ÞE–>í#_?SS‹?»>Å?›ß§?Y¨¬?vNÀ?žÁo?¦a?­Vž?‰â!?;Øž?Cå?JK?%gÈ>û/>ç=Ÿ2@=—ZF=+9:Òn>ƒ§è>Òù¨>Ķ>¶Â?`?-%?4.)?;@u?£Y?±Lß?»> +>Ñ°û>b¶9ŒŒ<ŽP=à|>ãÈ?Rͨ?‰ìÏ?Š>œü>p:Á>pÉ™?4&?`Ý€?oˆÒ?i¼°?ƒ¬å?˜Vß?Gl“?JZ>þÉ >û&à?/w?6Õ>†¶ú>Õw>?%ðH?,º¤?3€ú?wº>ø·`?}ñ-?’ü?[—¬?5ùî?Œ„?›6å?ˆ?}BŒ@jd@3M¼?^P +?Qbm?ž²D?X2 ?,Å?'°o?5Á >Æ{Ë>K×6>ÕÇ>âò!>¾i‘>ÈP?Qͨ?yÛz>’9÷;÷à>º§M>ú7>ß[ë>ÊÔ‚?oŽ›?„¶Ö?v Ç?b±Ý>ĬI>z±l?'çE?Hñœ>á0>Ò³?WN?{ þ?¤Cß?± 6?€§?z×i?s¤?f„â>í°>Í)î>÷°ÿ>û¾Û>«A`>š“š?wý”?|°?ŸÐØ?¡ÿ\?74I?%—?9îm?BÁF?ù‘?ð?t‡Õ?z»¯?{´Ò?w‰'?|ýA?‹M?½Ûx?œhë>±*º? ~ ?—õf?™cŸ?»*?¤Ì¡?¤€Ž?‘#è?M?+r?§?`½Á>à¥x?>Ú4?®#?âÂŽ@ó¨@Ï8?õd@?MØþ=óðü? Ã?T¶d?>Ū?6Dh?q!Ï?xÒÑ>¼¾¡>Bpv?~@Ó?šæ‡?»¬?¿™C?xO¦?rñ`@fá@<>ÿÇ4?æ^?¹o?À9@g&?ï(^?%‡+?!ª‡?ÿ>÷‰ì>ô•P>³2>Û)?€Iß?8ºï>Àû>ýÈÍ?V?‰í[?À«{?™þv?€Í“?-’!?‹Ñ?’6?™S?ˆ²­?£/ø?‡IÕ?€±æ?S3?GØ?.û?¢Ó­?6¾!?EU ?ÕâW?È _?¯Žß?´^B:ž?u >ü°R? z?‘Ë`@4ú?È?·?R>?”ùP?†£f?0Ê?'ÉR?8º?‡¸ó?š¼)>òq>²ßã>"“¸=æßït=ŒÛð?¼þ?Â4Z?²ðz?£h•?›Àî?„¬?¡È&?ÂMÑ?Ö©v?í¢ð?“?0OY?‘[e?¥’Ê?ì­@ 0?@^G?¤?wDK?¨ú?À£3?¶^º=¼u>Ö Æ@JO(@)©?FÅv?oI?˜Y?¯Å?Ž[?˜Ù—? »x?†íü&_>ÚÓ>Ré.=ГÓ?ƒÏ?³î?Œ)??Ñi?­E? +%³?}?Òº?r-¦?pŸú?µ†?ˆ„Ü?'Ìê?#bi?ÙÓ?=.Ý?¥œÐ?–÷?…cä?Á¼ú@®÷?ÁlC?Z‡ñ?_&?d–¼?׊}@ 8ª?¬‡.?x¡Á?‡{?ƒ×)?·ƒð?¿Ã¢@Ôµ@VÁ?ðš ?䥊?}*•?‰ÍL?–1Ù?Œ½â?¬¿?"NS?G\½?VRs?yPÜ?jóâ?oŽ½?ˆñ'?š~;? ??Óâ?Ò1?Ò>?0\‘?Ï$>û?•š?½Zq?ÁFH?¬À?ˆl?Ç?ÖÉ?ãÿ>¶¢>´½+?¿ð?4R ?ßnÇ?Ó[?£F]?©Î??«KÞ?¶:>?Øwÿ?«‡?`äb?5f?«~?=0l?s|C?äáõ@ܽ@Ò@!c-?¼}T?”]•?wƒ7?^ ?›Ñž?«9¥?.?î?y—]?„¹¯?4$2?F¶Ž?¤kN?«ªÎ?äŸd?ÕÊ1?Ž:­?—Gn?Â+ç?­Ž?lÄ?Æ’ã@˜`@ +?ë@.?vFG<×ãN>’Øõ?V†>H¢²?z®?¹7?¾ÿ–?Áâ2?µæ4?°Q?©Ú?­ %?†Î?-™?²5‰?©#!>‚›h>Œ¬>”Íñ>Á¯ï?ß?‘g?ïnÏ?Þ s?YÜ?s‘‘?üG?#¯?vx?Á×ñ@ m6?ôÔ?{8§? o=¼Öl?œYd@ÇË@ $@,Û@¹/@*=„?ÎaY?xý¿?˜‰ô?¥îx?Žm]?‚k~@ @$Ï?…æÉ?1Ü'?²”ü?ÀÁò?Ÿ ÿ? |?á\Ã?èªÈ@e;@ ê?ôÔ?ë[D?‡¹?Ü9>ü8>ö!F?7ã? u?m¼“?V¢„?å×?ó?##?BF?€+?ü ?óŸ?›5û?Ä›”?™$O?³éÎ>‚>îÆ>?þÊ>‚>¡Áã?|o‘?ŽSæ@µ@)æÏ?‡åM?=T@ñŠ@»#?¿ýL?®F·?^gš?U²Â?®Ò?®–«? ™B>ý%?­'¤?µ|›?-?ú?Þ¬>ýk¦>ü±?»7t?½M¬?™W?"XÂ?­ÃE?«²@ @©O?üE?øôD?U”µ?P¥ü?Yy}?ia!?϶Ÿ?Æ7¸?ž—?Ÿk'?õ£"?íŸþ?{ +x?y)‡?Pº?Ti‹?X$?[Ãs?_l?gØ°?ð‹>?ò1?Ǧ?ÄÖ@Íè@šh?ùîX?÷À/?:õ?vâ?Î ð?׋?_GG?eú?y¬ã?xýé?¥ P?¦-p?ƒ‚à?†e'?¿Fÿ?Àïê@/Ýs@9Î ?Ñlé?±õ¤?·¿j?¹ßî?ú´¸@)¸?±©ì?™°?²j?¹oÂ?O˜û? Âõ>ÿÆk>öÔ? T?£^>öíœ?þ¹?…S‚?¯yT?m$f?Öq?Wrý?7ê?ŒA­?u“N?œ²ó?Ë?¤ÄX?Gé?D4š?@ƒû?‹ ?ô»¦?ügÏ@ +ðS?ø]?tM«?t/]?t?…7p?ßS»?Ò¸P?ËŦ?Ñ?é å?ëp|?‚cz?s"?à`Á?ò+]?Â(S?·wU?àÝ0?í_þ?¨¶?Š^Y?½¯™?Ù?ÛIœ?䧜?á©4?ÛФ?ÖôM?Ëâž?— ÿ>‡=?UàV@%¼]@¿©?~Í?!^@±Ú@Ñ>ðé¦>ð^>‡Þ>_á—?¯^S?È*@ß @74?Ù½T?³b¯?“dÇ?oŒ?pòÁ?x‡ú?å’æ@>–Ÿ@œÉ?€Á¬?‰º`?¥Y5?™)@>íÓ>ï´è?°iq?«@"ƒT@) ?ç¥Ì?Ï??·­µ?¤œ«?£*v?£¿t?Šçš?p*?‰´ê?¡´í?}¤Ø=½¼> >l?E? +$¯@@vh@EÖq@f±~@kC¦@Óß?å8Z?ä¹è?äN?ÌD ?º,5@Wx@PqÉ@'ƒÁ?©‰l?²‹R?¿ÍD?ºö?– 5?”´ö?â;?çpm?»}J?¯Ê?ç³X@Üz?ßcc?Ç0?îÕë@³@ ‘ ?›cå?¤Mt?â¤(?äjl?±££?®#õ>G,<ä<>¾Ú?Œ?vÝ¥?¤wâ?®ãÙ?Ƕˆ?ç"S@%1@‹ö?ˆ/4?Šh@‡Ô@ó‰?Æ;?±ò?á%–?ôaj?²÷?Gts?N̸?ƒE³?hn§>µ^>½|?Tµê?Y=?ó?åö@%Äf@e‹î@ +6?e£ý?…À?¤Ê?¬|ú?ÎÝj?È-?Ž!?‰q?·â?ÀüÎ?º5[?²Ãþ?[e\>äéK?`³?òC?Ç}‹?áËÉ?âA?‚H|?€:a?ä¥?îV>?˜´^?oíÛ?’bŽ?©?{ë>êE>ù9l>ä-ë>óV ?dœ?d/@",ß@)–Ö?âb†?¾n?§û¬?“ŠÊ?WåÏ>ÜßÊ?+·ˆ?±¢?º.‡?é+¡?â´#?âÚ?ã«?òÛ!?þ›?µ¶&?nØ?eã9?aŸ?}ß ?©¹Í?§S]?Ÿý¦?›Ž>ƒO>?¹õ?™¬ê?Ë~?¤ëF?€­n?…¦÷?‘ä?Ž‘?ºä?œ¹@!I@ô?°÷Ç?ŸºZ?"Ü>«H?\ ?¤‚?í%‰@(‰r@Áã?ª‹›?´šë?ÿûY?ôá?ÏÓ¢?ÉÇ%@@ T?í i?ØçŸ?Î]?Ú›?×Å^?ª’í?¼ñ]@'¦@ ¤‰?·6?¾«Î?ö©Ÿ@FÅ?w +>ì_ ?nb³?ª£¬?½9?Ó­ù?³?Y«ž?w’?‹ž?†`À?> +;?4Þ¯>ý?s>ã‰M?kð­?žl?Mœ>ß >Ûç}?JÁ?`I~?•™’?¨TB@(<€@*Ÿö? ²>ã‚/?ÝÂ?(ï‹?G?ª™+?c™”>ó_ˆ?Ã?%v ?Ar|?‹®?‚¦?>7Ó>†f ?;èþ?MÕ?F}•?N +ñ?’, +?ª1™?cÖ >ãº>ã>âò©>½]&=ñ—>2æè?¶’?ºR>i;C>oéL? é?ix>Sb}=.f™=…¢t>3´>ÙIâ>°þÛ<_tÈ=«rñ>Å¢²>¹Š>ÝuÄ>áW‡=ÊÈ”>Å={?.oß?p™>àžG>˜j}=”ØP>à€>Þ"Î<Y 9ÄÈ;Ý`>±ÃÆ?)C>†yÆ? ÉY@•?‹>-?–f>\±O=Oé;µ˜À= Ç–;€;¡}h?A8Í?4õ?Q:ï?R†´?lÁ?^˜¶>ÿS>éÙ¾>ŠÑÞ>âF=¼f? £?@ô¶?|òå?Rêi?"¶„?OòÊ?|/ê?=‹è>ûÕ—>ÅÔY> úÃ>׫Z>û0ü>û Œ>úç?BR]?xáÐ?vQÝ?h&6?"/>ú)™?7¹ý?Tc>Ï'Å>P¦ˆ?9®ÿ?qœ¤?’ñÒ?–¨&? ©Þ>o£=÷šY=|ÿÙ= 7;ú1a?]“ä?™ ~?Y­š?Ef? %>øº˜>ÙÌ?\Ó\?£Gù?Ä4"?Ø?@ª=–Åè? ¡»?nUj?¦åÛ?µÆx?CCö>ø›Ê>Ôæ0>¸ÆQ>á’¯>ø¨…>ø®¯>ø²#>¨Y>‘t?¥Ð£?êE"?Ìk1?º¥‹@[@,Eë@ +‹÷?ø›=?¨ÑÍ?“/g?Ä?Çáá?…ü?yAê?Y*ó?F,:>Ìí>qñXn?0D?r?yÓ?vž»?pÄ0?k©­?šÓ²? 3¬?Zwª?N1L?¬ Â?»å?¥‹‹?—‹?°÷>úȘ>úÝÕ>úíW?‹¥ ?‘íB?Õ?3n=iªÜêhÒ?½?Å?%ÉE?½?¸¢ç=ìjý>>¾?|˜ ?kÌ:>ü½ý?;çK?ø?Ü^ª?}å?˜.)?î‹u?Ö‘â?”Gª?•6?£b?‹wH?;?)Oï?Ó2?L4?ˆç?Ï à@ ?ž¦?}½?ýÍ™?ÝN'?ȉ?©9x?•/¬?0v>ºœW?gN?ðÅ?`G‹?D¨ú?¨]º?¿Y%?±–?YÒã>Ô˜Ä>½-ï?¤åÑ?µ§?)Ç°?ÿ? ? Îœ?º›/?°’‹?ˆh?}$b>èsÁ? b?%?'`d?‹tê?e%œ>þu„>—t>óo`?”c¯?Kø>ªÂO?B’?p ?¢N3?À³?˜–(?€…Ý?zt5?rd4?l¤–?fé ?zú?€©µ?¥ ¡?¨Zf?ƒÍ©?€Â ?€È2?€ÍY?€ÓÃ?¦@€@}m?ü¯®?ì0?€ó?,É?¹Æ#?”¶ˆ?s?14>?sæC?€ö?Ü&?\Ç?%æ?ÎÃ?ï¨?`Nã?6œ?S^÷?<#?—N"?ªV>õ>’ÂQ?Qüˆ?N9D?¬W\?¹Ä@é]@ò?°O?v\@5ïƒ@ƒ +>j‚Ø?@Î?.jò?ƒˆ?‚¿Þ?Í£[?³3?¡´µ?|c?Lµ\?Rü?W„‡?Ìr?òÅ×?ê X?í?OFÌ?¶q?u«?€ÇÝ<¶=s=–e@>»|'@-ƒv@0/?¼¨?uqâ?Y}¡?AÄm?Ä@?T’?¢7Ä?zÿ±?#:Š>ßé>«¦†?‰÷t?¸µ?RU!?ÑO?Òš?Ôß?yŠó?„V ?‘¸?~À4=Þ/â> +°u?6„?Uæ? uÐ?/©ƒ?ZìX?~tÈ?·=-?“ˆ?7{¸?ÎB>Ž•=?)`¹?’VÁ?>L>¶ôÁ?P?>Œ? +?.?âÂ?Ô¬?çs@ãõ@"%0?Ô…É?ÂÒÃ?™Ã0?á°?I—z?YV ?b0ì?J0>­¯!?!°ñ?Î?ÓX?æŠ?Áª?‰¿x?}c?=2ƒ??Fa?M…?Uå?gÐ=?z$;?×È?>7F?úW>›ä:E­?›sÖ?¸œ??þ?Š•’?!U\?Ô?c´?SŒ¬>%t›>¯æÐ?·Gù?Èä@k¶?ûù?¿?¥³?øcw?Þ3N?°ð ?ŒÎ?!›I?*b¸?.ÒU?µê?ò]>vU<ÿ˜‚>´ãq? {“?i0¢?¢B?¯£¢?·ÚÇ>³ËØ>r†é>/>£?so?ŽÎ??aá? ¦/?®€?ß`?æÝ@|ÿ?ïß:?Â3}?¥ [?cÂÉ?ž¥õ?á Ë?•GÑ>èkØ?ñæ?¥a?ÒÙ?Z>:̽>ßë¤?)–?€FW?£ù?‘Ö§?”Q?Ïnü?Ô>þ¦’>ÜSÓ?³.^?¼Øå=¸>ÑP>Û±á?V q?cåT?E•?š°¼?´p?§+8?jÎ?PÄ—?6ø¿?•–@|?Ê|$?€æ?>¾õ>å=³?ZºB?¢ôµ?©M?¯¦¬?wûm?Fƒ›?¥lˆ?Á?Üa—?åê?üÖ}@T3?¸Ì?®DŒ?e…¶?R6½?·á:?Àȳ?…S?zx?d‘a?o÷È?ïD?ìdñ?…z?ŠJ¿?Ã#?¿¥D?»Ì-?ÍRÈ@t—?ûØ(?€/—?—wC?Ôw±?êU@uI@™9?ûåï?Øâ5?¥5á?Ö¿°@‚w?Ùb?Õ?fM‹?M…?© (?êˆú?¨?]z?:¶m?Ÿ\?°$R?ö@@šm@÷‚?»ˆ?~üü?~ò2?~Ýü?~ÍÂ?~Áe?œäÔ?¡üæ?+æë>þ€â?Šù?›À«?ˆŒ?|¼´?Óã(?äÊM?ùª @ß?Êøx?¾b°?Äœ?ÈÜÜ?¶I?¹þ•?_#Í?IL<@ ‘@%³?û:>ý,ù?yÉp?} +»@Ä@H?]Ž>üÒ?¸? ÏQ?r+â?r[Î?½A>?¿ìd@€Õ@†Ô?½»?2gp@)r@°Ô>A@0>‡1?®—$?°¤X?> €?dâ@ª@æÅ?¬¸¶?¢7v>úã/? U?=Œ¯?7¹ö?Gç?C*ù?³=Ï?¹N$@Ç™@}Š?ºtª?½y?ùÜÙ?úG@ÖÆ@ y3? IW?'`'?¡¡³?ž3Ò?ó­? ”N@¦@Ïg?’ÈÊ?‡¸¼@($´@-Ô»@ ÆÓ@Ëü?Íçh?Ä´Ø?§²J?£è?Ç`M?ÌÀ?g?“˜ ?¸Âí?#«<“e`?º`0@öó?Ü¢,?¥k)?×òz?þ›$?¸êM?u!?—=?¸a?û?*‘\?.É?1¤óª>÷Ðn?¥ÿÍ?©‰?’“–?‡ú`?±š‚?¶3”?¶*H?¶Þ?Ž´ô?†3h?{ͽ?r:€?§77?Ã$þ?^Ù½>ΙŽ?m|³?µ)^?åIÅ@}}?Øþò?9G%?”x@H”@ û¼?‡’H?Y¶?ëô?ëÐÀ?ïé?G¶?ƒ—G?„t½?æåz?þýô?é€E?äÌ?Àü?±°@ØS@2S©@¾À?¯2?¹ÿÖ?Ñ6?é'@=Ä?ÛhX?1ïÖ?]ä?àÖ?ÝÛï@AÚq@>)‹@ɇ@ˆe?ßñ¯?Î>?ÔÑ?Ý¿Ó@ q @ ?ÃÁ+?/ò?<Ü?l@9?R57? +t×?\Ò?ƒ}?zåG?4?íª@ +€Y@l??Ê¡ ?´Úâ@ž@'ùç?ÙÕ?-U?âK³@1‡(@9„?œl?›A˜?¢Ÿ±?©(â?Ïp›?Í}%@|¿@Äø?›‰?–;@§{@/Šª?ø|Þ?“þ?‘Q]?—†Ô?‰ô½?#9/?1Æ?º‘?´áÚ?¯(?®(œ?8w>ÙÖ¹>á›h>çß¹?’V?Ü T?·‡…?‚™Y?»J?¾ ÿ?Áòî?—?• ß?õŸ,@¿”?sø^?' +5?ûé]@-¢@Îü@E?þ¯?»ß?›äÿ>%†5>"Ž? ß? ?Ðû?åç†?æ©?ëpô?Ž>úþð?Ug?¬$f?¹eæ?åjY?Þ??ƒÒÐ?…Å,?¨°’?«Û^?@—?½º¾?‡—?—0?¸¯¬?³ê ?–g…?•öÎ?¹l¬?·]Ð?úG™@u?¾?§Ÿ0?‰=j?d‰!?Ã<ŸQ(>ë&–?ÐG?Ï^m?ü½o?ömÖ@›È@˜ã?²Í?‡FØ?6ü?ªì6?“Ы?Y„?BÀM?5ý-?SìÓ?ø—z@­*?ÌÆo?Ëq?óù?s,ý?˜ò;?®®?y‚y>ã|?çh?ißÔ?[Í?>6N">kªz?~r1?Š3?C¸?<Í¡?ÿ? ¯Â?Nˆ³?‰¢?‡Ì{?cjá?xý?à›J?炃?Ñ­Ò?Û}?Ó~Z?ÒÌÔ?ŸžK?qÞ-?Œ©o?ªŽ(?œ^?j&À?†!Q?ë‰Ø?íì\?G¾[?M!@É@4¤?ÞÊõ?œÍø?©ù?¡íÞ?“»r?”€§?¤¥­?èë«?íI?:³¹?+µå?Zß?cy?f–?cÈl?dt¸?i6Q?Ž¯E?²••?”_¿>ã„d? =ž?ª¨Ã?ª¨4?´eÞ?¯iK>Ý3>zŸK?=¸?NL?>?c‹?J£3?ø>â Ë= ÷=ïãZ?ª¤(?® š?¾>ã†_>ã€Ï>ã~—?™?8Jc?LÃô?Iåº? ‚;>ãnm?(?Nàq?](ú?BD?G·k? h;?Ô >¡@ã>ã +$>âúá>Ô< >š&è>ª /?bÊ©?b¾H>xΗ>;ÿA?ì??ªÀ>Î?Ò>4¸¦>ˆø>Í®>ˆ/9 ñ§>NÐ=?QÁ ?>ø>ᶠ>ᙉ>Fþ>Ëå>wÏÐ>qä>õm‹?Û+>Çê¬>›N>[·d=“/b>Î݇>Û˜>ß³}>×8ó=V£L? ŽÜ?@Z>ªk`=–³> áW>…‘>Tnç>¢t<Šƒ??Ò?‘†?Ya?‰/“?±Ó©?Ái6?ÖÐ>èæÐ<‚à +<½d?$bE?+í?3o?9w?GVÿ?jºÀ?„õV?cóy?AJV?Àl=xñ>R'õ?÷?-=?rĤ?EÎÄ? t?†>ü’,?K¨?5>o?i>ûÝ­>d#Â>SSÕ>Åæ„>ÿjï? …Ç?-ï>û…§?M û?zm1?*/û>ú2é?+À?&Ëv>ز>‰¥É?> @?„¶#?±?Ó,?»,?_A½?L‰>ù2¤>ó¤>ø_ÿ>îo>àa)>“Ù>ÍÏ?twØ?’b‡>æLê>XŒ>wïÀ>ay?bäð?‘šÞ?j5-?[êV?Ÿ>ø¥€> ø;?…?o?º{û?ˆLù?by¡?±ˆË?Âüè?}}@?GVØ?¨þ0?¹ E?Wfe?öÍ?7»T?A?ŒGg?¥“?L×O? ði>ü¾“?‚a?—Ê0?³B×?ÀQ·?É%»?!s×>§A?„1þ?ŸŽ>þ µ>ˆx?r1¬?’}”?ù'#@|è?mÞ>«gK>Ý@p>ùò=?^VÖ?z¤?©…Ä?²„T?RéÞ?;¸ý>ˆÉÂ>1³?˜ƒ?+´Ü?tˆ#?ŒZå?A†Ø?'½Þ?Rœ>úû€?н?êtÑ?´s?sò?Œ>ñ¢?ýþ?!©>?.o9?;1m?š ?«mŽ?Ôâ?å_[?>Ö®?(ò4>̹>±*½>¯oâ>Èãò?&É?gá?oF/?e¨ ?† ?Z¤?†v"?zÈ?ß?p„?ý>?Ós?Y`S?•Ÿa?॔?§‘˜? K¦?Rá?+=>§ur>s1?%?Ý?ª»?8†<óœ¿>‰e‡?W?SÈå?…ãe?‚ÉQ?~¦B>Úöc>pÔ?‹X&?¿2Ý?6þà>÷{c?=#Ê?]èw?²ôÄ?¿|>Ý i>m?nµ›?‘ÿ?²C ?¹0"?Áã?möY=ÑhI>(üñ>%G? @S:?áŽs? ?Dj£?ÀDÁû ?Cê­?®Ä·Å>meŠ?(Y?)ì?`d?› ?Ä·ý?Áfv?ÙA?ÍA ?˜Œ?˜*¯?¤á`?ˆ1Ú>DÂÞ>¿q?‡š¡?;±„;þÉQ>=öó?)?³Œ?‘1?9Ï?Ýü?æ?-H>Éla>œê>Êv>ù}í?Ÿ+‘?¹~?m)?Uùß?9@,??!?ì8?öŽE?4ua?*qe?|Ø'?€õŽ?€t?Ž÷—?Õ‰Ã?¾Š’?STT?0êA?†@?‰?è‘Ú?ð.õ@“y?Îëö? ¶j?˜â½?ü!?l¹ñ?RÿÊ?ªë©?Â{ö?—…O?‹L¦?ÈO?˯?$¶>þCº=-‡v>åH@?! ©?ÜU?ÀCÎ?& ™?¸¼?É©?V¯/?­•P?²Äß?¸ ?Ðíã?Ü|þ?n,¿>¤]?~7˜?³lÖ?2¼>ÛN? â? Õ"?á¤Ú@ƒ?Œ 7?æ?é3?ܽ²?«Ÿ?™h?äê?-°?­'?·££?Ýŵ?Ä/-?ƒÛ¡?[j?'nU?&Bw?/¡ƒ?¨›>Õâ™?Uñ0?Ž¸û?@É?„?Ø'v@RÌ?I±Ê?¸ª?ë“?þ Ù?ó¸Û?ëºÉ?ih8?xêœ?߈Ý?Æ<º?'‰r?(aL?_ÑÍ?ª³@Va?þª‚?­·x?­ç?ÀÏ’?»qg?±\à?ƒî?4]?oƒ¹?‰ª¶?©’š?¼Ø/??e¿?Ÿ?q,?‡*'?¨Ò?D?•>ÿÞ +>‰ïÛ>  Ê>«ª3?¬?Ýlw?Õ;|?¼§?¾ôr?ž…¶?“7„?ÄI?NT>è9e?Oà«?ŸÝ?©°B?¸’2?€?mó´?~VÍ?±-?Ýn?ûyI?ø„é?ôØI?YÈË?1ö=’ v?².?¯‘ý?½Y‘?¯§ð?K?Ot¸?f?—^?ËY¿?ÏÛÛŠª>«Ä?>+Á ?Ž?iY?3ô£?b´?´þ¤?ç¯?ZX€?U½?A? >?rì¡?H?Î8¹?ÚEX?)õ?íq?Æ¿Š?¹£?/³?+§l?'?|¡V?Sj?7µÈ>ÂÙ­>ôÆ`?jO4?ÌR÷@K¶@RQª@Y€r@D•6@!@?Ì…À? ¡?¦Q?åB? ÉÞ?W?¨Î?ßÿ*?TÌ‘>­Ux?“/F?ÁÎ?ÕpÙ?Þ‹ì?ß—Î?åµ¼?ŒÑy?jq÷? þ?—ÿ¹g?½¯@j?²Ïn?>öã?r›^?‹|?™U?¨|>îòV?2YÃ?¶Ñ?ØOO?ùÁ@Á@á3?ƒžF?*Ñè? +Q>þ¶?§?¾Õ8?šÛ ?•ÌÃ?¬ÂI?´8`?~f>þ '?±Ò ?¾mi?-Û?˜? ;Ò>ý£³?Ýó??àÿ'@M2@"é‡?4§h?%rz?|ÖÈ?‚ E@7çŒ@7D~?}e¢?‚‘?ôøo?ìjp?·m?²0î?ˆje?‹É?š/“?¤r1?áøƒ?×¢?ê í?êž?aFÝ?`×y?¤o?’¾â>ouú>×<ù@ ü@:?äÆë?Û¥?GÃ?R½…?Êãì)?ð ?z® ?‡°\@Þ@å?/Ö?@ÑÊ?eb2?f?ëÙ?éžÀ?Äûÿ?¿"ü?ºÏw?Áo-?»‚–?º„Œ?åÑ·?ôØ?¾JT?´Sˆ?€ø?x ?x ?wè¢?Ö]Ý?æ·B?Î'¢?ÆùL?‰Å“?wT!?±Ô‡?¿UÑ?太?ô!?ÕC?w*Ñ?òíf@úµ?š07?5F'?öHò@(8î@,Æ}@1)Å?Î=|?Æ?Õ ‘@+O?þ<>J¼¿>Úg?;%®?Mjâ?|†=?‡â(?“U6?‘tä?™?‰öF?Ϭ?ŠP2?–F–?Œ ?#÷û?«¥?e›? ƒ@M¶@Rˆ@x·?ò>ý@*FW@/”Ô?¦ŸÀ?r…Ã@Ô€@7I”@õ ?âýÃ?öÙù?úã/?ûP]@É"?ý‹þ@7I?Ñ%S?q(¿?‚Ê?™fæ?¨ÚÎ?Ùb?ÒÛG? dó?›\ð?ˆ–d?†» ?¿ûP?¿m>?pgó?ŠåÔ?s´Ú?nŽG?qI ?~¾?ü>lô>µ:Ë?¸?ŒøÝ?ûw?íÂ,?½`?µ·ã?²|?½ŽE@·õ@*´?™ÈŠ?“‚¯?à_è?í%u?ºœ?¤íj@ ü9@1½«@?÷Ì!?Äe?lK?l-~?l×?‹Jœ?æßJ@Ù@ˆu@4Qß@Õ¬@Úk?¹Œ?w{2?׉?þ› ?æ?ÏÂÍ?Íoe?Ò,?»„?‰ó@?–ŠI?¹3í?¹²J?éðþ?éÓ@°@3i?ƒ l?HèŸ?Ùy9@ñ…?ÔùD?²»í?‰?!ú?aÖx?è·Š?øpœ@-6@-ô"@=Å@› ?·Ò«?£q²?Ÿž?›Ì3?PQ?Ž£?@£s>„÷ >êÛ?gk¤?uþÏ?­tÁ?­]¦? ×?‘já?G2O?6ä=?Û$¬@Ø¢@b}?ÿ°¢?ø¸Ø?æqu?Ô‚ƒ?Œž?‰ë¯?º_Ë?´x´?ÞßH?åóð?“4Ô?s§?‘Ü'?Æ9?¢ü?{ï’?XÑê>òJX?ˆ°>˜à…>¨ÄØ?GÏï?Vì?°Çõ?ÉÊZ?¼¸¼?´«”?B?<°¢?…ß°?äÃd?ä·‡?ä«7?䤱?o9±?d‰¶?j$K?gÍ ?•È_?ªÈµ?¦ Õ?‡7?‘ R?ƒÆ?Ž£M?Äé5?É>?ÍDM?Ño®?VDS? ×?œ³d?ÈC‘?¯q?˜½Å?ˆn}?ko?¢c>ãȈ>ã¿%?Fâ;?OÛ¿?¢”k?°O?Ç×?Þ÷_@ QÕ@(-Å?ûµ±>ùEr?ÂÇ?<}?3$¿?*y¥?49?=q3?9V=?A?;›?FÛ?cuj?† K?´ B?£My?@_Ü?Dÿ.>PŽ=©1?8ãƒ?cjø?·ÞŽ?â;à?’»9>ì1–>¸2é=º¢<>R?1N??¯{?‹ü¯?†÷¼?Öfÿ?î„'?Ë[8?®F7?ÉbJ?ó]?ÂÖ_?㌠?…æ?†¿ã?‰Z?¥‡à?«h‰?9ñi?èÞ?^=?ƒLû?ˆ\/?Š#?”€?£ã?‹Æ?>ãé>ã˜>í‡è?¬ý?™«?—¿À?’8‘?Œ°ˆ?'*Š>ã„?EÈA?‹â?\ „>ãyÚ>ëí>èøÇ>ÏÝŒ? Ø?W?–YÔ? a(?>âï ?=³ ?c4 ?'>ãù>ŸG¡=õj>ˆ¢>*[>Wý>Ú3>ò?.>Š'é>‘Cõ>ÕåÂ>âö?>Uí?bl8>Ñ0ð>2†ñ>ݺ7>Û¾)>ÿ%J?r‚>áË8>á°:<“–I? *?&?XJ¦?œ ?5 µ>¨ ’>+üˆ<µÝq>ßó}>ßÌë=Aê\>8r>–Uz>DÈ>L8À?]ýæ?_Lƒ?qG?iû~>< ¬;ÈåP?¤Ì*?ërj?ã?½%ü?.¤è?Vß= 2Ó=„ƒ(>Ð Œ>¹R>"Ý>†î?IWB?A˜Ë?,¶9?=°Y?« +Ó?ˆ¬ù=Ö¼g>_…E>þUüýa>üÌC>ü–A?$SR?A-à?`>ûâ5>ç°>Ë=ðÊ7=¶'™?!@¶?zöQ?zO¿?x¤?-p?-Ž>„'=úË>?U†?Ô¿?[éÌ?=Þ*?6§Ð?/xÈ>Fñ>ÚôJ?â? Ç…?¯_> 4»<À>¹"Å>ùö>Òù>¥ÀØ?Sû?Ôü?ÎC?”Å??§>\?‘-ô?“Ùh?, ¡>ø²0>ø±Á>ø¯Ù>ØB9æ‘©>Êv'?">øV>P9-?6«?s;.? 5>ÔÍn?ÅÌ–?ýSv?ºÎ\?¤Št?§ë^?«L¯?$Ë?>ÖS7?Ž—?´Þ¡?;ã<>ùZ?ß?"ƒv?¡äE?ºòO?Žs{?mgd?,¼ñ?0`ö?‡˜ ?ƒäõ?l§’?«O?Pd·?1Ü>?ð"Ù@!$?d $>ûõx>ÿ E? ­>úû>„¹>êÎÈ>ú`H?•­/T?>™?j¿?lR?zäe?'û?O+?N.’?a4¢=Àeú;gH?®çÂ?³´Ñ?­bn?§Ç?aj?YÝÜ?”%/?ŠœB>UªÌ>Oí?ŸÎ?ŸÉ?|Bd?gð*> Pÿ>S&ß?fC»?b8Ø?§Û?aÔÂ@ž&@¦?}s?^ø¢>ý$K?dÌD?ýK¸?КÖ?L}2?~´·?¼$~?ܽ>Ô~?Ûù?&?`H¦?“³? Y >þ(ž>þ6Ã>þL¬>dâ<“D0?‘Ç ?íÄ÷?¦¦?~µ„?¿ü>¬˜Ž?±C?ä[2?×i>xÀÂ>`­ð>H§t?€‹Û?™]J?ƒ Ú?…?’Ù£?Žô?Jb?›!?Ц?t9>ç›O>ù8Ë?Oî¸?Žby@)<@Ê7?P†z??¯T?2ÈO?D~¶?V3œ?\ÈJ?S`?j“?€^}?[ ?+õŸ?(¥8?Ð?¸åÿ@vH?,‰ =ü>ÚE? ¨??ñ´??e>uh¡>2¥?lñ?€Ç?ܸ?âÂ?îÇ_?õT’?×g?Úî:@î?êš?‹ªR?’VC?²u ?‘ùØ?ÃÛ?/@8?xÌa?s2‹?m–x?3½´?*Ä>™…ß>,˜q?-¬?L »>׃>~ø¼?·[«?èM?9Ö”?W½>›ºÅ>s±_?¯æ–?¹]©?ç.?áu}? +,?+´Ð?¿´?°ÝP?‰{­?˜¿v?´×3?¬«?œ„õ?½?óD?êØa?à/+?«ý°?‡27?¤ËÀ?ºy?¤( ?œÌV?®ã?µ +§?À½µ?‘ @E@\C?†7 ?{q5>ô¡m?#Ë?°™s?Öz­@Fy @Ò1?\bY? ·«>GÌ?90?›M„?¢¡ð?¥7?ækÇ@è?²‚?]|ñ?b³V?gè³>½Ë­> ËG?Vʯ?ä¥?Ž?e?}Nº?‚á?ÊÂT?Õ¢@a~@ §˜?Íx`?ÅPŽ?Âå‡?·?ž@?¬?ijÒ?Æ— ?Âè–?Šá ?-ïù?l{Ô?‘‹ç?¡Éž?¬ ¾?•­B?ˆdô@E@Š‰?TLM?óy?»|a?Êú?@N˜?H”(?Õ?6–²?¨ð?ž3?2Ã×?B˜Œ?Uç?YyV?ˆØ›?Ëر@wz?Í*s?+ðe?1p²?C3Ú?£ü1?Î.?ºç®?µá$?[ð?K•?Cæ?â›? J-? +?h9?ÝÐ=ë]>!*?9Œó?4€Ð?U +?Tg?qáÔ?€™”?€¸V?ŽRö?·¨?¡¿)?V ?‘ûl?­p?Û?ö??¶/|?ÀÀ>òæš=ÅqÎ?3½Z?¢/?„yí?‰}€>¿¥>ˆ0?Y€0?i(R=ÿ8šð?uܧ?‘@X@> ´@-›?œ?˜â?—²?ˆ:ø?œ6ï?‹éò?VÜ?£•@A@ÅC?èÈ?ˆ”7> öÇ?Â4@‰¤?¸Ú?K?0Šš?i¿?_Õ?1I`?+§?\E?‘|? \¼?¬?©?¬¾??šÛ?šãk>ꇧ>ùY•?ÁF0?Å¥?‰¤"?Œƒœ?-ë?„þ¿?šøŸ?ŸGµ?£˜²?èP?‡­?§?°¨?;<¨?}Õç?IC.?éX? ^?ô&?ñ3?ëÉ?{u¸?¥Âß?¡Q1?¤æz?ü ?”µÏ?sŠ;?jª=?s,?{p?šêí?ž,’?»Î‚?Àü?mL|?Tó:?}üC?€xs>ÇÚ>Ùu?€‚e?„Á?³¯ë?² +Ñ?…(v?‹}?Ãk?Ó]ü?òR?ôáu@ i@ +Á—@}ð?¼aH>‡ìœ?à.?•8>?ÆÛ»@ý?@íï@â&?Å|6?‚lê?Ž%?$a?z-¡?ZœK@ÏÜ@mB@@Ÿ?¿¬%?¿žË?¿“¨?â=Óˆ•=Ãt³={ß?¶zš?þf7?£šh?‡Ê¥@68ª@Vám?µª7?f™A?Â^þ?Ηð?™à?“,M?¦fX?¦ê›?Cm3?6£Þ?žýu?Ÿ ?×OH?Új™?Øl?Öe®?wÞ>ý®.@ +qk@ ðp?b)?f›?©)?¬YÈ?‹²t?‰À?¸f ?¼,Å?½xW?È{Ó@9Å@.‘¾?…íW?‡Ô?|p—?ƒ­?­û?¿\u@3”{@#µ•?+¬„?FyÓ?¼Û`?»Þf?º¡?«Ìó>ˆ©s>úÎ%@*Ï@a¸?¼aõ?¹õ?ªå)?²§?ß«Ë?ä³?ðÕ?ýXŸ@/½\@"~"=¸ÛÉ>KUµ?ùsk?ì¥Ç?ˆ¶u?ˆ’Ü>ùÃL?V½?y–ð?v¨Ø?Vø?e@å?¢o?¤?)]Ã?.2P?Þqµ?ÜË-?Â>ø‰é?ÕS2?݉7?É,Q?Ák¿?ZÎ×?Q­?‚ Ô?Š£?ÝÆ?ëƒX?Ž2Ä?w_M?ÚW„?òsª?¿áº?¶ ?:A>ûý…?Ć[?û~§@¹¹@Ê–@Fòî@iéD@ º»?çý?c©Ü>²Ê?«7d@]ä?Êb? +ŒÁ?PØ©?™„i?‹I?gÆ“?ˆGl?·{"?½¶¯?Ëb$?¦ÐH>Åt?ù?ÚmG?ׇv?­©¡?¯ò?¶¨Ë?·EÊ?ïvÐ?ò£.@3¥@4'Ä? ýI?6@2ì@#RÉ@"†@$Wó?í‚å?Æ î?ÄDŠ?É4â?Ä,?¿Â=?ÎI?Ö9Ã?®˜?q41?‹1ã?¬BÌ?˜Ñÿ?c•q?ÖÁ@•W?÷Ý­?¥7=?§…É?ÙF‹?ÜÌE>³]<>?ee@(Î@JyÑ?’Q¥>ïÏ?Gó7?oB?bxá?Rùù?‚‰6?Òm?–{¤?“‹d?—Î?š /?¦'Z?Ã;Ù?Át^?ÔÅÏ?ÒÚv?25ã?3lå?ÜZ?í18?ÿi@TÓ?Ë‹î?¶£Ø?¯ö?¡lV?–Ts?‹¢È?…Ê?zEb?†1k?­‚ŠA \B‰>´B‡è@/„?ÉXÃ?(G?*@qH@ŽÃW? +ZM?hì€?–¾?ä\Ç?ïp@[€@“?±{?´Ê@,@ +]@Pùû@d{è@B2?Ê‘§?¤í?m8?ˆ®’?»â?ª»ð?[ Ä?frë?Ç•ö?Á±>?Aàæ?×y?‚²P?š¿Ö?¥•0?¬õÉ?¾á|?Ûíé?å°€@©i@ *Õ@(‰)@+j"?Å>õ_ð?ä[L@×ì?²—¢?xŸ?·Ä?÷­Ê?·õ*>¡9U>™9†>‘7>‰-Å?nÙ?k¯£? ‘>øZu?B?dúâ?TŠ?:í¸?‰ô¨?òÔÃ?ôAì@DK?üZi?iÜ?d‘?Ÿ•Û?«B²?ÏçÎ?áô +?”Os? ©e?±¼ @CÜç@*˜?d?ƒ(-@ 2R@ g?—£”?oßà?ƒ§€?’\d?‚ê?M—V?Nι?cÝV?X;ì?s,? +e?¾4?\?¶ó‘?Ù—þ? ¢7?z?(‡^?´nM?±Þ7?›W‰?‘Áÿ?cC?cŽ?׳Ý?Ñ@ dö@ ¦Ô?¦¹H?a^ã?ŒŽî?¢ˆ?¾º +@D*?îr?¡? v,?EŒ|?3_Ö?XM¯?cpÞ?˜%ñ?ª˜ˆ?©'Õ?£Ž{?uü6>Â[U>ÿåŠ?}B?‹Ú)?ª—‹?ª•å?ǽ?ÊXÆ?rª?–X?uó?7š5?<¿³?5¶é?X›5?¿rï?à ý?•™Ë?%v?¨/Ô?ª‰Í?ª©Õ?ª§ž?ßI>ˆÁ?&á½?5Ú?>­ë?*’^>½4F>Óê?c”þ?cš×?w2-?‚„s?‡Õ†?,¢?²–?ÐͲ?ª^¨?[”b?CgÎ>ã–Ê>ü’¬?[tœ?Uø¶?uw¸?|6è?<ø??97?×$¸>Û$=›Ê‘;Øj@?ÁÃ?c@I>äˆ#=È ”>§rÝ?_ü? kŠ?nd>êË°>Òª">ºuö>$x¼> ÄÔ?×?µ—?5¸®?N¾I>Â…—8ä§>:Ž>â1ª? +îÈ?Lú•?1¹>œ²>ß>„â$>p‹l?púŠ?ˆQj?!Ö…>á!¨?=˜Û?ˆ¨¥?3`o:õy=4É=G¿>£š¼>¡=ö=”ls> ¢>VFÌ=Û=l>"=v?)1?Kû?Å4?´)‡?Ø)¥?Úl>åL%@í/@=s?¸?¼Ž?¹=u?½8t=¢è < [?Ý*>ûvé>©ª>¡þ>ì<½?áP?ŠEö?b7k>úŠ>Qzþ>ÐôÞ>ó%ö?é>?3M;?}ÞQ?K!?+ö? m—>üÿ”?U4X??®?^d ?=>ø^Ì>›=B>Ù¹ï>û’Ã>ûi>ûC?TÇÚ?F§>­ #=KØH>¸Z»>úy‹?+Ú?3Ì{?ò>?•Î¶?)I>ÿZ­?4‘ì?Jæ>©dE>-_?,Þ`?g#?}Ää?}|->z¹?1 ?eõ>ÿ×#>´í¾>¦ðì>˜ým?Mü×?x×Ó?¶:a?Õ’‹?i›°???d>ø¹Ã>ãù‡>ê¯?[7Ï?sƒi?S>ø¸ï?7/Æ?= o? -¥>ø¿X? ?Ä?]ÞÚ?„¾µ?8±?(Ž?¦ÿ:?²b>¼}=Xµ=εÌ<“1Þ<;„À=¯¸?6”D?bvr?…;?Ž¬Î?’?•[½?-hë>øÁA?ÀM ?îxÚ?JVp>×=«?“sR?¯ùH?‡<?yëú(è>Ùu>ÆÊ‚>'çu>e?f/þ?Œ;¤?¥Z‡?—£?ÍÅ‘?Óÿl?fí{?WþE?^}??dõ~=†¡‹>èFÝ>ùøí?ñ†×?õ9A?(È?0nê?°5?&ý¿?”Z?`)=Q5?CÑ>?EgU?$À¿?+1þ>üt>õ¢d>×9?1U?ö“Æ?Õû? kK?P +¯?¶.‚?¢£Ÿ?aƒò?D¸Ñ? kö?4Dœ?3CS?9y??»Â?E÷?L+æ>ð¶2>ê¤?~å?Ps?¶I?l?mS>X»>Ô‘ì?<:F?l½B?~ÁA?Î7§?åc? Ó•?”ÝT?¹ È?µF?{L?]o?-¥Ó?"pÚ?ˆÖn?‹'õ?Ú¾?èXá?·‡?Ú²?ü/‰?õ³?èŸ7?Ðò)?€ A?”Ž¶?ç| ?ÆGž?3Tˆ?‚†ú>ö@­?Vh?ÁÌ>­d?):¦?€dß?•à˜?®6Á?à­@€?Ø9ˆ?Á«ú>ñÛº½>¡æo?œl²?£‹¹?“­?‡2>?€Þ?‰+×?Øæw?çò@XC?üøÏ?ÁY?‹ù(<Ûhe;·ž†;¾Á?~Ö?»cœ?¸šŠ?µÏC?ªì—?ž³›?ŒÁ|?xÈØ?–±è?¥%~?6ÕË?M‘?KŽ(?oiC>Û¨»>µ×ˆ?9Q°?Lc?W¤?WÌÍ=­•þ>¢@Pó?ÝÓ?¤+?Ôù?Œè?d³q?ÂTI?æo”@ H?ʧÑ?i?sê}?~Ť?Ãü>’Æò?6#?/*–?F°ê?G,Ý?u%`?µø?±­#?»ïê?ºí`?¿Æ|?òô?z¡†?Ç?%ß?°ç?ÃQð?ж»?ê#@@°Y?ìéÁ?ÀüH?„ìF?Úï?Àd???¬Žç?ÿû†?‹±¸?ã>Ú‘&>ÑÃÓ?BÑ?f~ó?€Í?êÉ?ÒÅ?€X(? ÈÔ?l?ú“(@á@;µû@#Äþ?w?ˆ2v?š‘¡?¬%z?ȇu?ª|A?ök?Ÿo(?ÂóG?€1×>ñŠˆ>ÓZy>µ;Q?º¼?)@?² +p?Ò@p?6ør?=é?puà?|çé? Mu?% +‚?­?¨Ó?£%O?šD\?øu?i$r?ö›?5ã? ›÷?€õÏ>ëŠU?~À*?ëU?º`K?ñ“?Ø>m¹?’0?åÒ=?zl#? QÊ@U\@"f?e§ð?é6?Ü‹{?ì%>:ý =Ñg>Ç¿õ>ÔÇ9?à!?x›?2ý»?Kkc?ˆ3Ñ?œ¦(?äÃÃ?Èt?ŽTã?wÈ?,Úà?—ëÎ?äb„?ɉ‘Ðû>’Æ??Ëx?A™Ñ?lÓ|?XöÎ?(@U?/€4?%ŽØ?9é7?p +•?xÉ™?”1#?4ø?·*T?‹]”?ª"?woô?½)/@)á@k]!?Íæ#=«{J>ð|?<Ç?•|«?®3?»ã?Á@±?¸›?®¡¹?Œ•D?kz?éÚ?ù°¶?€lä?qfÒ?“¥^?™L?“*é?Žê>£Ñ>¤î–?ŠE?€iø?|Û?8¼?ÿ¯¤?èÛÅ?‚*)?…0ƒ?ŒÍ?2Þ?”H´?ŒL?pæ®?…s(?‰Ñ+?‚zð?€,z?¿¢3@ Bà?ì'®?¹o?‚O¶? ?¤•?ÿê?Ï`?ªV¢?ïgò@Z?êíù?¿³’?¿¤?¿œS?”?`a?¬ü£?¿p\??ÿ#[?^A>? +-x?½Ýo?äWH?’÷&?~Ä(?Áù.?Ð+Á?Š7*?~†ˆ?Kk?7?ø„>þGe?´è?ÀÁž?àFA?ã;Î?›ã9?¢¢V?+1?%|í?œ=Õ?Ÿ7ª?Ms‰?@›D?# q?/Ž@?÷ÜÝ?ìe?ˆ?%–?½· ?­[à>oÝ>â+Í?´ª£?¬—K?|yí?ã§?Ž¢?—rm?Ï$å?Óc"?³Ø¡?ºŒÅ@’J?ì]G?{³/?_‹y>\é>ÕÔ?Ô:?ÒDí?ÐSƒ?Â})?{á??‰ÈÙ?’¤?Í1ƒ?¿7^?z„?•>Æ@v¥@)?Ýv?ây?ï­n?Úda>ùÌŒ>ýI0?.?&•…?š{I?Z8?û‘¶?óZ?²…?¯'š@ Ü”@ s¼>y w>ƒ­À?¸ã?ºK?ÕäD?ÞÛƒ?ì#>÷þ†>É,3>­‰?©æß?¹´6?‹ÄD?‚Ε?´¯S?¼ÔÏ>š.†;T²?=ñ¥?q–y?Õ¾ƒ?ö”Å@½@þ@%Æì@.(C?Ù¹»?Œ'/?&+…>¢Ù?ƒ,?Ðò@4Є@t”W@>ƒŠ@fø?蘽?·¬â?¥×?ŠÊë?¡Ã+?Ï 6?½Ö%?‰÷ ?œ­?…w?ƒ•ê?·?†¡Ï?¿|?¸¥•?t?sí„?ô~Ç?ú­?ƒÆ§?rÏÿ@$×°@5óº@Ð=@zc?–9ö?@–Š?Ý+µ@ +í?áøô?¿˜¼?´ü7?²Ö?Ï™?èÿË?ðé³@¿q?Ï4É>ú(?WÔœ@Z,@ Á÷?…ÂB?„ƒ?‹úÔ?ˆO¬?ëÌ?ïÉÞ?7—Î>þ"à?™ï?± ?Öù2?åhß?Cc>MŽ?JÇ?²þr?Ó ‹?û²?Í9ð?n7r?ˆ¾ž?É_Œ?Ë‹?ÌÏÞ?Ï.Ì?°žÐ?©Fï?ýÅY@†c?몃?ëǃ?Ë«?®³º?è½ë@ o´?õÛ®?ÐÔÉ?à }?¦~?›’ß?h<åACm+B§e`B£té@N@ j?" >ë4@?^žž?‰À?“\9?–Ùì?¥Õ{?¯õ?¾“´?ÒR?Îr ?Ëfñ?À>y?j$?i`}?€±Ú?„\ö?K˜1?F¤?ˆ•™?œ@?š™–?¤¡¹?’F+?uâ5?Œß9?±J–?£¢q?h¾^?vl ?®R»?®>Ü?éп?ðð8@M1@*"Ã@ J?çÎS?Ë»¸?­¼¤?©ã?£¨?™ U?/Êí?3<”?Ò]ô?ØP?áH?fòô?€ù?ƒçí?Š?û?“¼Œ? tR?¬àØ?–;C?#H?'x?¬ªv?¬¤T?h¿S?_µ`?)º?+§ô?U™ ?eÁ÷?a`ä?jÍ–?šï??ÒüŽ?Å%Û? „R?š[À?«ZO?«ìÝ?n¡>ÂV?T–‰?†»Ï?\„?›Œ?±› +?á¶?ÿð@4=³@8%¸?]&G?a Œ?dwÆ?etÑ?äüh@ …H?ŒB=ŠÅž?I-“@ Øä@!ß?†?¾kÀ@,ª@Bèrê>ã³8>ߊ>>ìö¡?¥u?0ä‡?wf¡?wÑë?c“Á?c’?©Ó¢?±$/?ú¯Ø@ž‘?ƒÔÎ>ã€ç?T é?¡7i?µ.?Ñÿë?ȉ[?‹nA?‡iv@íE@Mò?“³4?j\?åÅH@ úî?§Éˆ? sV?(Žà?NC?BÚü?/µ?9V ?C#?L´K?ÔtG?ã|¿?sËÖ?"Ü?*¶Â??rÐ?hðq?œ(•?ˆ†Ý?´=>íÄQ=Ž‚Ÿ<öòG?T?d×­?iÂ7?nÖ‹?„c>¸ƒh>ÈEv>ã“>ûå?–?'0?7q,?)[%?‹?ˆ~Í>ƺC>ž ^>Òt >ã û?G6A?~A?C 2>í3>¤fz<5Òà>J½ú?£Ô¶?¡©?d³e?c˜B?¤é?¥m¸?–f?]%?ŽÄ(?‘¹ü?‹¯?„$?Ž°?ý?™õ£?cs‚?csÁ=1©½:KÈ?¥6>Ù—è?‘?Á4>ÛØ>>óã|?ž?m©?P? –É?’2’?¢¨>ºðð>Ç>ÝT|>Kç=oç>V ,? ›j>û®i9á ”>à¾ó>á¨À?8¤‹?XÁ?+„? W +>qú%<ôÁg<«ºÖ=¶>»ùø>®”:>ÛÎû>߶Q>™‰¿>q)>³^6>ß¹>u>2>± 3@RÔÏ@]Ã?&+?5>ßó?Æ<@¨j?©ü?„ây=ý–X=ÒG9?\›]?H®Ë>©>Gh|?ž>í0t>‚’Y>®ìL?1º‘?pÂ>º§>¶ôã>d· +>ìB?z}¼?H^÷?L$>¤Të=²Îì>œS'>ýÀ?2s?>Ý>Û,C>…¦î>oh‚>1ç±>ç m?†á?>Ê>ûMŸ?’t?¼D >íN?"Ç`?aÓ#>Ú}j>œTû>¹á>Õªm=øšj>ºÎÉ>ù¼ÿ>ù¨P>ùW>ù~>ùnN?›‡Á?ºmÌ?‡ö,?eƒ½?Ìu—?á= ?…N‰?S,[?L) +½Ý?ÂØÈ?òk®?Bç?dÃK?'!? +g?Ò<>øÎ+>ß÷q>ó2>£­K>”¥x>KîU>™ü?úº»@#†Û?pÔ>ùÎ?ÿ@ÂÞ?›¨X?^Ô)?îg?#Î>ª/,>Ÿ3b?Yò~?yv†?y€˜?y?y—÷?y©;? Ž?«=?–?†wN?ƒ9¥?öû?7Z?sÃ>ü„Á>ú8>úJ&>úZX=„1’>,8h>]¶\?©šÛ?Ço ?àdõ?äÍŸ?;ƒ ?Ì’>þ7®>û$ý>"Ê=ˆ¡l:"<\êò?…ѧ?—ã>ü>öPy> 8>>NøÓ?{ðª?o¨6>‚²->npV>’µ.>—š–> ÈZ>OP\?é>üë“=qîž>Yä?wŠÍ?|èõ?v§Ÿ?[a?$"?~#€?ÞÍ?”y5>ÀµC?†>?Œ#?–ÿ ?FÛ^>¡§Q>‚°>G +?#œ‹?”¢ø?«òø?Ã^?âEé?ýªá?¬"Ž?gS³?–1?§9s?÷+>Ë4?lÌü?Ÿè7?2Gú>ÿN?ª¬µ?ÐdJ?ÃÂÅ?¿†›?†}?}n?£éJ?¬Uç>ßÂœ>„^Ê?~&†?Hž?‡ ??|të>—²ß>Ù7,?í3?Bb8?•}h?hÛé>ZC>¥gç?Cë?TÖ8?µQB?zhµ>š$?0-å?ÙÒ?e¶?.ç?µ¼)?ý†’?ÖÑÁ?Àâ#?´Òr?¨]w>Ú>_ÓÕ?#?(DØ>o±>L1{?– ? %?=¶??îq?™z5?“ôl?€ó?¡Ä@¥$@ @†?º +@?—¡?ȶ?ï>ùTE?8£5?‰“?¦A.?ÁÈ´?Œb“?M®E?»ˆ*?éП?›ã?z‡ê>æ +¾>É>Ÿ>¹Ü(>7`Â> ”O;Ã¥Ý=–.?{!n?‰‰Ô?£ó?©Gì?‰M?}??(&?CˆJ?œQÍ?îJl?ê +;?Ö¥ƒ?€¶?ªe>ó<û>ÕDu?/Aí?XÞ{?‘ß ?¢Æ¼?{Äl?nc?sÀ}?yþ?ŸÅ?/°?Á]’?­²v=T‹Ñ>œ7?¿?ÊÈ“?á<§?î$!@ –?ÿÒ6?Õ*,?˜\0?äÐ>€&§?¬?éõ?HH?"†e>§”>1ØQ><æ>‰?lˆ?ƒžO? o?áq=A÷g=™1‹>ªú +>áøÛ?=ž?Iš¹?ýK?%x?ýì?¡Ð ?â†?ÈîS?žÞ²?¢{µ?«.Ž?¹6ó?Ãù?¥j3?™¸x?x›v?`üç@ÍÀ@9š¸? +Ú-;>ð÷p? ¼˜= žâ=í£Ù?ÃZ?ÇÓd?òÇR?ÞXŒ?‚ã?x–Ò?MÞƒ?0•ì>ÿ± ?b{î?ºI?¥t)?”l„?ƒy?__?uÑå?ú•?#·ë>àüP?Xàä?÷I@ +Â!@"kð?X´Þ?ò ?‡µ§?”SŒ>äo >îX|@ @5¶?­Åö? ùc?P"Í?TFQ?|/?‚Åm?‡x…?bË)?ßA?]’*?ªiÆ?Ðv@?³µ?WçÎ?uq]?Ïö?¦~?½Ã?’ؼ?€Û?<¸H?A†•?rº?—·>“úœ>y!Š?€3G?·½?³Ì?Ú?m§q?ˆ2?ÄCÝ?±Dz?t­¨?y)î?‘þæ?¥3C?ÈM?ÉŒŠ?Â`?†-k>Ö(c?(H ?v¡ß?8Ü?…-?1&–?U?? b¼>”P‹>yj2?¸nS?Ög??dNß?NE¦?0*?0™P?äš.?ãØÀ?FD·?AUÄ?FgŽ?Tù?Žq?€Á™>ªóI>ˬ?>OI?’¯@j@,?é,N?­T? =Û?—1@ö?˜¯?„e?õS2@,¶«@D?Ò`í?%J>#½??Rmù?ªß+?ÁMß?¸¦Î?º{ÿ?¥2’?¡ÐÏ?àè°?ðjT>°r>7œ§?MÂÏ?K¼(R=¢B|?IÛä?ré?… +?‰ò?¬Óñ?°´(?“š.?‘¶š?5X?+àÎ>® L>•œ%>÷E˜>þW]>ÿ5?E?†ç?Œh?=ÉÄ?,›U?VcS?]¦z?}ÿ?yÃ?å±V?äã?­ô‡?³ã*?ÆZ¬?»jÌ?{i?|”ú?€Ú™?ˆS[?«M?¯ù½?ò°X?ØÎ?õL?,<µ?|k¹?Œ?ÑO?Î[+?ÖRj?Ê5Œ?‘;’?›Â¿?›ÿ/?Š>ûž‹?@3Þ?ûmä?óû?ÕÙÝ?Ï€Â?›e“?Þ˜?¼0ù?ÌŸž@¤½@…D?lê?–Ô@&´@ì?¹q?¸l‰?ÁïÞ?Àˆ“?§+«?eÄ?^ž?L“ö>Òƒ9?:zZ@Yr@L¬š?®o?³kí?ÒW±?Ô]?3OË?)0Ë? =û?¢fN?˜œ?uB?‰Æ?› ?Šþ.?’L7?׊?ÖHÕ?µ#Y?³Æ…?ëø?õ¥?³&?u?ªÂW?µ?}>í42>q— +?rO¤?œÎ}?¢4Þ?§ž›?‹ö1?v + ?)©>õÐR?¯êh?ÿ•A@#fÙ@N­r@A@)³ ?÷¥D?†U¹?{5f?N‡@?†j?¿Õc?‹?ä>[ó¡?­[?Á0e?¼@—?°mv?Áq@R@Gn?¶Š?¶ '?ó5,?ój?²åC?­°U@âƒ@³?bE?µ­?G•Í?K©½?¬\^?Ôv?½#½?­ÊË?€þç?4ÝL?ŠÃ/?ÉÅi?Ú2x?è.è?Ûs¥?´£Ž?Àjó?훸?ñu ?ØËê?ÒÂB?Ö”à?Ûø~?ë Ð?ìÀí@áü@Â?ùx?ì´É?ÆÒ?¹± ?綂?ù Þ?µû?„ç?”tŽ?ª»?œ-Ø?nF±?˜˜¡?øÏ‚?ïÿ¯?ÑÙD?Ï5r?Õ˜?Úø@º@tÌ?§î?‰-¿@ ”º@Ghý@Š›?ÖT? 2s?B£?—G>ì6©>ì>ì€?3®@^ @»1‚?»¤b?¿<¶? s>ëBß?ªCÏ?¿½?§Üë?Ïg?‘§Y?‹Z$?ˆem?‡³ž?ŽVê?’‚?„ê ?Mg? Û~? T¯?‡9?| +ã?u^?ÚµÁ?õ´è?¨Y¼?zNE?’j9?©÷B?Áh?g"T?gF?go?Ÿ?­!?…—?Ië5?|HÎ?¦9?×Ò/@&ÑM@LU?¬´l?¬£5>ø*Ý>úŒ?¸D?ËK?^¨\? ¼¿?U8>åª?‰eÓ@ys@Xc?ƒý?Šn?8?‘‰2?¡p„?ŸRÂ?˜²¬?™â?Ž !?€°–?Ct>¡¡3>Ë-?p½”?g¦€>ÝBx>ãý)?œT£?© @?°ÑÅ?¸mx?am˜>¹‡ò>þÓ„?K›5?„‡Ü?ä;E?ç«Õ@uË@] ?¤Z8?Å¡?æÝ@…¬?åÕ‡?¾šR?«-&?€N­?wÉ?cÛz?fwq?¥?]?§jº?uH?cÁì?a®?]Aþ>Ûb±=uWt>ýí‹?ž˜ú?¤i ?ÂeX?ºÞ"?§? Žn?ž ÿ?ª«D?8A>ãŠ?µO?\Û?frß?¹Ïö?ÂP?î*?él4?¤Ã*?§ï@¬-@-‘?Î6–?±ÆÚ?¨°è?™õê?ˆ"Â?c}!?\™??¥Ñ??É?z)?ps?×Ì_?ã„Ö?„ +H?RÕ?‘š?ª¤·?’¶?cˆ?q~z?†ž‘?}c ?k0o?cã=ZXÇ=Iã?i=?«òé?ŒHÅ?4?7•í?eÓÕ?vd×?Á^µ?¾¾è?%hÜ>ê³õ>ÿ¸ø?sw?’Ë?Ôö?Æ{?ª¾v?†Þ>ÒÎZ>Õ¶á?¡ì?$´#?›‘?˜¼î?¹ÉÈ?ÂNÞ?œe˜?Ü?~–Ø?c›k?2Ì/>ã—¡?\½?cŒ@?c†c?c€þ?cƒ?·v>ã5s>Á”ä>QÃ=>Uñ¢>¡?>Ž¬œ?%?x×?eð?bˆ>r&>…âþ>â„é>y×Ç>pbÏ?@9y?'šî>„»$>v÷E?&tv?ûx>ûž >Ìæª?'šª?L3¬>²{m?i ?¨N/?„õ>ÉY>ªî=Ç'=üD@>ÎÔ>3†ô>NR4>i,Ù>¼æº>ß.Š>iÑX;Ã+;‘Îù=Z½@=!‹ð=t]¸<š<?v?/g³?Ûó•@¦>÷£:àr|?Š?e>¹¡ˆ>žŸa>N+>‘üC??%?/U?$#1?_¸=ó÷3? ­ÿ?¯ñã?…#í>þ^ ?7„¹?r¯†?Šä?–Å”?G´©>ý +>Äè[>ŒÆg>{¯y>]äX>ÂTÉ>ûòË?%q:?GÙQ? ×H>äß\?‘¬Æ?¼E6?@Ò>Þ¢A?ŽôQ?­¤R?\wb?$~=?ƒ(è?‡¢Š>iù±?ý0?$ ê?à?¸Á?™?yð?`Òÿ?zƒ?Ú¡ê?ë”1?¢Ö?˜=?Ë>?Ïfï?è‘>ÞLÝ>“23>\ ?ˆI#?¦|>·Ü>=ÚŒ©?Ãn?ò u>º>ÜmŽ?Èt?¡?1Ú?úœ>øÔä?}Õ~?‡¢«?RÔT?3§,>“l>9‰ä? se?hÈ?Q©1?e‰´?1>ìî–>øfV? +Ý”?ÿL@(?Žäm?['?63?"[û?h$@?y€ ?ü¤? ù?ˆÄ.?‘©Y?b2`?]Pâ?¦Õ?³¼Î?³my?¹#¿?ïÂ?ïƒ> ð= öô?Gãb?YC}?/€ß?Gþ>Ÿh·>„yâ>´ÿ>þ?±…ý?¼/d?A­Ý?C°#?*.Æ?Sè?µ7½?»a®e>­}?1˜ç?,bI>€“5>£~Ú?˜->õY„>³">ü…!?ŠU5?sUN>ü´Þ>Èjo;R,ý>À£?¸ÔN?ÑAÔ@æK?Ö +y?fö?@ûÍ>Ÿç? /:?œ—3?•J?ñ…?Ã?*rú?,L-?;¸Æ? Ùd?ìI?ò@9?øpÐ?³É&?‚2?ÊÄñ?ï†È?ð¾"?ñÅ?PÆ>°Z?0‘ì?KÚ?ÍÒ>ÿ&>Ÿ|‰>—hm?À ?Ó‡Ì?mͲ?c‘?8U?xJ@x(¹@pUç?¹?q? +k£? +ý4>Óx>ûnf?^ +/?b—?€+÷?w11?S0??+Rˆ?J>ÖP®>¢Ð§>ÿÖu?:NU?‹c}?´ä(?á0B@‚5?¯?o?€î?.XÃ?»+?ph½?Š|õ?]ˆ6?Cë>l†¬>+í<É|?6aÖ?BR?H_g?Y3;?ªgq?£Ý?_Y‰?ŠR ?êË}?ÖŽÝ?ŒõA?…"?€•$?±>ˆ?öå±?ñÄÛ?ï€>?ºÜú?DÐ?{ú?Y-?Ì?ž@KO?@ž™>~ÌÖ=zÉX?XzV?dB?$è?m±=ó"î=ª”ó=} =ªõ_>ù^*?€\?ƒB?kaž?°?!ÿ·?jý?d³?_Fv?~X«?™…?ÉlÒ?ü0¶?¦¨?>ÝC?hµU?µ·?’þ ?(9?<Ü?«Ê?ª9?Æt?ȼ?Ìp<ê¯Ò=Ã’Ÿ@oT?çà >ãYÅ?G¿_@ñú?÷¹¬?qѦ?€Ô??ˆ¹8?™[??¥¬ž?…$?>þ?;Œ>Ê…? +ÒÄ?3u¨?§D?Ü¿?ŽFÀ?‹²)?¬¦Ô?¹ÕN?öaH@ʵ?‡n?{2?hB?qÔ?ÓÂC?ÑS9?ï(‰?¾vGM=ÏÆ$=mû>Àb™>úIc?pH?5{?¶t?¶°h?©F ? Z?¤£?Ÿ»H@°?ë´M?‚6?p.k?:Áë?•·>~³?XH3?é*K?¨tþ?.X?Þz?D?N÷±?‚Ÿ>ä-Ä=ï?;àr?~¬Ž?´Î¸?ÄÆí?ˆ÷o?x•‡?ꉛ?îü-?lk?lûK?È[B?ÐCœ?ÂçÏ?¾SÐ?§Ív?•(û?D7½??€r?:ÈV?I¶k?`Ùt?Â1@îØ?©TÍ>Ê;‚>åu>pS?'*L?yŒ> #‡;Š×>È”?Åi?e/±?td?±9X?¶wK=œ9È;xk;?'³€?,uþ?1Ö?98‘?K ?[²!?£ð?¡'Ò?‹bd?nÛ‹?§l?à=?K²´?Šþd?Âi?ðœA@±È?°Zº? ¦„?Uä?‚0D?-Ãé?…›?€6?~þ?Ž¼c?Ÿ{)?ð¼C@q?.=?ja?ße¿?àI÷@°\@ê¦?Ãö†?¯4>Žçä>Êxñ?c¸?ct?B?H6ç=ýä¬>‡åF?Fï? _é?+‘?:Á ?„ î?½ùˆ@ˆ?¿f-?/@(P@tà:@ *?›?—Yä?Š?)Ó\?ís?ÿeÌ@®û?¢e§?€Ú??JV]?E,½?—s?šÇš?  L?——ñ?¿Å!?½h?»§?²;=Oì>äbt?H”P@&»@^?nã?AM?¸†?¥øi?€hß?^N ?÷ï?›.„@þ>?ÓY+?R2ß?‡iÐ?§Ç†?¨ ™?²±?½T?À.Ê?Ã;?É}|?Š`?.Šo?*zF?&eê@YO@/Ì@e]?Þ8Õ@8'@4öM?ÂY?‚âv?€!?šx?ßH…?ðx§?E©…?â6?¥M?³žÎ?‘J?ð>·¼*>œ&&?Œ¨?£?Š=>þ~œ>þlM>þŽŒ>ôV>á°Ï>þ)? c›?þ +[?ö¢_?IC(?Wʯ@˜1@£×?‰—½?~Ú@>áߥ?./¤@Nn@ßÿ:Þ¹Ü>h‘?ºD§?°b^?…ÐX?‘ÿº?ÈÃÕ?Ãâä?Ÿc*?–*„?|tG?kÁ]?55=?Y +H?˜‚Ó?wÞ[>}·?Ÿê¢?˜×©?bOñ?…¿?æ&³?ÖJ\?.A? \ý?íg"?Ýï„?ž[U? Ò`?òJ?f‹=› „=Þ³å>ÿNU?5äp?»²Ø?²"€?„§‹?Ÿ‰¡@Ú†@ ü@@~N?èz2>®sÊ>ñÄ)?Û¥æ?âpÝ? ²ç?¡Ù?½A/?·z?ð}?ž@ó?x–Ž?~ÅL@ Ð@ÔÅ@ ç@ hÎ>‡—:>?P—@Ù+@)AH?Œ¿Y?w„M?µ|}?º^©?ƒ÷=?wå?ßxå?ñ¹Ò?³(H?ž†R?ÐG?݆?•{?vCò?v)Ü?vº?Yì«?G?´ôu?îF@?žPƒ?8'©?»»"@ º?¥Á>—qÒ?IÔ‰?·•™?á¬P@IS?ôn?[}õ?™ o@ÛÈ?ã1^?iœç?nñÌ?vµ'?†X"?ò¯a?îc·?ºÕ¾?¼“m?êLŽ?é$@»j@±W?¡+?‚¹Ú?27 ?"hï?\ Ñ?r§?»Í¶?Ú·p? ÆÇ?l£Ú?_#}?JxÏ?‡D·?¹‘.?´Q®?´ªÄ?”;'>ð¬6?[ä@$5c@s3?”?¢~?³ÿò?³èŽ@Ý´@ÈE?È#ª?·»i?GM?°?žj–?Êc?NY.>p(ª?Ä…›@6ª5@m?ÁÓ~?¾@¢?Ä¡?Å ?±ä‚?°æñ?m¦Ð?m(@#Ùá@'–:?ÆûB?±Ôx?±Â¢?±«U?xÉ?Eƒ€?êY(@.K(?ãDÜ>õÿ>îz“>ì o?#žê?­~?§µ@?y³m?}Hô?È—©?Åà?ä‰?ë?£Ò?‰`R?|‹?j³Ó?RÛð?3â.?CÂw?jI|?ztÉ?ŽõB?¸?iè?iÍ„?û@‘M?ö^À?ùÙ?Ã$?¨½?’#?u–‰? ?®£ì?¾Oz?è®'?îuÔ@ +ÉÓ@Õ2=ø$=ÃŒN?Ÿ„w?¾*?rËY?FCÖ?£š?Ј?Ø=Ù?ç’v?ç ?ì)î?áŽÝ?9é?=²?eZý?gy?­" ?º,?í d@+?Çúd?pÐ&?n„?k(?fib?h-%?lP?\e ?X`T?þ/‘@ +Qž?Øh…?¹zÓ?‡ÏD?@(-?‹a”?ÙµŸ?Á]^?/îù?.žÅ?eZÁ?eLv?œOT?§ÝÑ?ªÊÈ?£ ©?ó?†óÑ?Ÿà??ÄH?ÈN1?·©Ö?¥ôÞ:Ïy¨;Bº?šcA?«pV?†`¼?u—x?aÙ?JìL?¦J¶@ãY?áWO?œw~?£]š?×Ã\?à<ô?È V?½¬•?¿1?¿í?²¥ ?£¸ç?¨jÙ?·/ä?¨TÌ?s—Ì?oÏQ?qÁŠ?hç®?¤U×?©Öš?Íúº?Øé’?•Û©?üÁ>öÉ@÷ò@!¶À?êì¾?ª¡?¶Œ ?Äv?£ûÌ?rÖ?()¬?Šó§?eÆ?õT˜?ûß?[ÈÉ>èàL?‰?lj?©sª?„­Š?ªÔF@ ‰@ ‰X?ãRü?â)Ü?]K¤?L½Ž?¤l-?µ‡¤?GW>ã  ?RH?œ(æ?q[Ì>Ó(ñ>æ’i>ã©é>þðV?»¶b?Á ð?«Üâ?³ÅG?z-?V|‹>³·Š<WŠ>Q+>ïÖÔ?ü5?U²¢?@´x>ã°>é“?ƒâ0?†¨,?‰rn?Œ@7?rý ?c¨?c§ +?c£?>î2? Á?#‹&?c“Þ?dÉw?gc4?c~?c‚•?czæ?oª}?võu?ÌB?Ý’×?‚çÍ?ä#? ñš>ã??°š?ê£?&Í:?c+?eÔ?ŸHÒ?¢Q?e‹?_oq>aëJ>Š i>â–%?;?€!Ä?Qô3?”³?=>â"y>åéf?2á*?9C^?gzL? \?9">ánQ>6Í;@9=uo¸>`Žv>à´ð>Á;e>„„‹>q ²=ó>”Ê3>ßS×>^¨>”©?Ú©á?ÌÔ<°Ñ?µð‹?óc><.<¶v?fæš?[}í=ÂðR>MÁn?YÐN?’\Û>‚£>g>¦‘>¨*i>9>Ê*>ô"2? +Ë?Œ>þaÀ?uô?¶çt?Q^>´XÍ?'Î$?Pm?sÄQ?ºo?ª`>•þ?&‹ ?G¡Â>¡0r=°¢=kÐû<íZÈ;˜*#=!Î >ŧ«>úÍå>²Mð>Âö?DO?+äI?ƒŸ³?š½>ã¸@>F¬?Pˆ?yÊV?y¶E?yží?yÖ?y}Ù?yo…?y^,> Ë>‹…®?]™É?y,Ê?*ño?5¸b?“?QŠ?+£Ð?/¼’?"V?.4?¨>øà§?˜O?°Õß>qa<ÉÐ=^\=¥¼F=ÜPÂ>Ú`7>øߪ? ?$4Ò?–?ž›I?oËá?QÕ]?‡+B?‹m?#÷>ùð> <ø>Ð|>ù5¡?„ ,?›“?‚Ø?yZ³>×<ß>¼âé?cÌw?yŒ®>fC? Œ”?»O‡?pÉ?Go?qG?yõ—?´]>úìJ?t,!?‡Ø¹=ï»´? |ï?"å?Ÿ?½?£ ³?…à˜?z™>ðQ[>ÇÖ?Éž†?ά¦=^<Û?§C¦?±e?r ä?w@6#@) +¾?{–‡?†b¼@p×@Ño?’ko?ˆ„M?DÙµ?7¶>èíu>ÿH?•«?{ú>uG?¨ár?–ê¡>üÁ?ʸ?zOz?ªG½@xÒ@?¥_|?¨1µ?—¼W? $¿?±x?{Qó>üS¶>Î/>MÀO?mGt?êY?ÆIE?£¨ç?—Ûr?†tÂ?ƒmÉ?€mÝ?~nG?~ƒ9?‡Ùt?‘Ó!?$‘D>õPN?‚ÿJ?”c"?J’i?6t ?@Õ‰?“>BM`?À_Á?Úàã?Mp§?1 +¨?kgþ?}$p@y@ÿº;ý +x>R +?²A©?£•?f‚»?}aá?­tÐ?¶ r?Ï´?Ò[è?áôT?Åli?“AÀ?HàÎ>®¿È>Þ¿I?r?W~ç?”Õ8?ÆïÑ?ôV?c•?++>/D3=4Ÿ¬?Fæ+?€±¿?0W?#*)?ò˜"?øˆ¤?.ô¥?Æz?A‰ï?<Øï?7'U?:'?€õ‘?f>ï?ÃÜ?m÷ž?ŸF:?ýÈ!?½Dé?–S?‘â @*G?—þÄ>¯©@?Ä?"rÌ?¥3R?Ö&?×éB?ÝÈ}?\AM>ú]9=½:*?aï?2ÿ?&†B?Ѽ?ƒõ?•§?4ÒL? 0Š;õAß>‘Â?¿CŽ?¬}?r-?tC)?žK?^U ?(–?zöt?©É?Žè«?zõ÷8¼?°Ù?"¬?¼MÁ?¸ˆÏ?žw?(Z^?œàÆ?¶Vë@ M?ãsù? ?+Xq?‚ «?x ?¦YÂ?ª:–?¨áž?•n?‚m?X?¡ÚÕ?ˆ•þ?‚?$ܸ?1=û2<}r?©dü?À’a>O,ì>;Å?Œÿ?…—)>n•d>ñ.Ë?ÖíÑ?½Ú|?3“mG>>­Ý??Ví«?©xç?z?1' ?V¡|?aU(?aËT?múÅ?„Ýá?ˆ>0?*5?Õ?ÆA? +–L?°?¼t?–på?™KT?ý~?úÎ?ú?peÔ? ”6?,AÅ?sDn?~’Ñ?ñ8?‹òx?&È?«?Ââ³?øÛÁ@1È? ³=ÒŸÄ?=!ß?’ãÚ?? ¯? “„?ï°?®ò?d³?{F@ +”q@©?Ëf‹?´ ?JË\?‡ÃX>Ϧï?6v´?!ç0?®Š?IKª?ŸÌ´?ªþ?µ›ë?–³p?r„?vü?{nl?©`!?ÂJ§?R ª?Œ??XH?ri?9i?4}?ë@wl?¤ä?—3?ž_/?§Ÿ?ŒÇ€?˜K ?¢EE?›3¦>ÞA?û0?ª«?wÙ?\r6?~Ý×?˜ö?ˆù?9¾?b"e?%§E?|}?¾5z?Á‚Þ?Ãþ?}Ý«? lù@'å£@.?éµ6?ln?ž¬^?Á{i?‚Œ2?T‰ç?É‘Ç?ì“@qÀ@?dˆÅ?;?¹†?Á1›?ûVk@ïë?‰[|?ŒÝ‘?GÉE?B§•>u|$>:Wý= '>ÖvZ?ýK@\?ýÄ^?é>u?À¹º?›Q8?>ÔÑ°=׊>êi¾?†O^?’µë?•/^?”c?™ñ ?\?/‘?•äÜ?Þ{‹?§Ñc?€?«Ä!?Âp??•þ?õü@0›¶@fä?Æ},?'þg?–›?³¯5?½Šã?¿¤Ê?ŒèÉ?eT?¶œç?ÄLT?„M§?mP?2]Ë?2—Î?Ôóâ?ÝxT?FLš?,!M@ ×@“,?±D™?¨Ëè?æ‹?yzM?Cóá?JY£?d.?cÄ?¾ }?À{Š?›˜/?Ÿ•W?™øÆ?š†ü?¾@R?§¥ô=¸ˆ>‹€^?ÁÈ=?´zy?yà?„ân?½ÓQ?²Sõ?|ïH?žŸ/@ Þ@öC?Ž„˜?– Ï?©Y¤?žA?k„˜?ƒ”k?ÄèA?¤™>ü®ø?k?{ש?ŒrØ?¼ÄÝ?¼² ?¼£²?ÉSF?펑?×+d?£HP?……Ì> T{?"¢Þ@Ĺ@×?ú¨?Òˆô>úzÛ?y3Â@4Á@+@–@ž?ÔŽ¾?ÏÑè?­µ?®ú†?“4À?n•?‹§?‰p„?—ÿæ?•:ò?x¶û?‰rn?³I?©Nz?I8 +?S~X?¦Y.?¨Õx?º/??ºÒÑ?ºñ?±•Ð?xœb?wÀq?€Ëj?~;ž?ë~ ?÷*D?$ö??w4·?ˆYé?Ý~Ï?ì Å@ Ît@3R?¤{7?vQÔ?9m¢?%&Œ?(¹³?,O6?•Oý?¸GÍ?¦M}?˜+Ð?Êyu?õAô?‘üµ>°Ãç?.š;?’ÀÙ?žòi?¦£ò?‹z?<í@?¡½V@(2@ +? L¾?.™?¶!¤?žô÷=‡‡¦>~d?íŒb?ë¦?ó ?òök@,Î@.­P?Én]?µáT?&ã>òHÆ?…2ù?›ñ]?ŽrØ?’(?¼»b?ÐÒ?Ó›?Ùt,@g“@?P‹@už?¤à?Š§º?Zç?/Äæ?˜O{?¡±H?¹êv?·Ÿ«?±õ¨?³‘Å?íû±?ñ¨Y@á*@?•T?\Ññ>áq÷>šL?ð?,ò­?ÛãI@3A#@…!?Ê|7?Ü1Ù?÷Û‘?Ýg?“ze?—œ ?Á]Š?½Ç@Sº@NQÜ?¸@G?¢8À?ÄÅ ?É ì?4öt>„Æ?­C«@8ò?ÑãB?jv8?",<¨>oAÇ?u²µ?£P?¨#ö?¦3j?Ž'ê?‘ï?ºÜP?Â1#?¦¡ª?š°Ü?‚Ê?j½u?”£?°ºB?˜dè?jU¶?•æ„@*ð?ÿß¼?‡lÞ?…€Î?Ÿ¡ ?¢mB?;e?ä ?w®N?‰±é?»Ü4?çšâ?¶”S?jCt?‡öÛ?²ùu?µÊÔ?¾Û5?ÂT?8¡]?0–ÿ@,tÀ@;Ì?? 6?Â3?ʤ@uá?ãÇß?‘€Æ?‚É?­˜¬?§Ò?qA?eƒê?eÖC?g”?Ýq?òÀ?½9?¥Ïv?§·›?©¥*?Áb?æ‰ß?Ùf¾?©üX?§õ¼?¥îÏ?£å±?V ?XEy?ˆ€è?”7 ?˜Þý?—¨I?×K2@¤=?úç ?e;?sgî?¼©A?¶‡?+E`?±Ü?êi@2c?ƒŸ6>%_J>e‹=Æ¿?4H˜@%d¿@_‘>ãmU>Ûäª?ºÕ? Å>t±Í>(Ñ*?ª?dl¸? Xn?ä,W?ç/9?׺‹?ÔDñ?è}??ßÞ@ ¢À@’?â\¾?Ñ;Ð?ôµ @Am?óëú?ϵ3?É™‘?ªêF?¯­?å6Ó?ãÕê?yåB?j­?vÀô? +ê?=á? ñ?0âz?c§V?~ò¾?ª¼X?²Ij@ZD@ð]@@7¯?Ë›?ª­5?ª®×?ªª¥?xÕ>ãŠ?@[­?Ý-?Ûx?©k×?ª£æ?Úý–?ØÜÌ?mÂÖ?DÞ†?5ÿ”?&#o?_Ô,?•’…?Š?6?6`?Bä?¬EÖ?§b,?¹ ?ÄÚh?£>?™µ?Ùÿ@?Ð?û§¡?ê‡?ä¤[?ß»à?Ê-C>ìy?ή?¤br?¢mm?8=¯?'qÂ?<ô–?>}þ?{z?´Ì?qX»>_'É>˜8Ù?¡?"0p?ƒ)Í?€Ä>%M)=”«í>ʲë>óJâ>ìm>ã´ž?%4v?[/`?:LP?[…?1??E* ?D]?•õõ?“%¶?XG?†Î?plR?c± ?6?"^ˆ?E©5?cª!?lxP?vßW?~,Ò?ª•¼?£Ÿ‰=znà=Û!>öšR? 7a?zó?:¨N?A»$?2§?ùZ>ãM¾?m›?:ûÔ?M—Z?,C?vÍû?SN¹?YmÛ>üc>âè >ݨÖ>Ю,>=fm=¬–n>`iw>Í~>ê‹}>âaÞ>âFÎ>â9*>ܲ5>Ö^>¶Š>ä»=¨Ä">´þ>áˆÇ>.«->2>àÓÜ>¼;ç–>à7ï>àX>aLÁ>|>ƒÄ>«1©>+'6SÊ>ƒÐœ?1.?#>=³s@?=ùv?56?xR´?z T?í¡?£>>Éòî>Ì“?,¤l?@Í>lÞ>Ï_>VÒÞ>©8?3„ï>óa×>Ê–6?wV'?2¹·s?¬³?/O„?.ë.?>¿t>“Ž¬?I€™?›ö‘?'¿‰>ק>囲>ôˆ?Yï?l¿?¼R>úÒÓ?{li?…¾Z?Z²>ú\í?3­?9VÞ>¸c€>ž/ ?éï?œ…©?Zms?VÞt?}ÉØ?|¾³?yvd?yeJ?žëB?›)«?Øä?y3b?0ýÅ?¾›?hÕã?y g?ë†?ôZ=¿#?vo?N†?)û•?Ê¥=—=ã>Â6Ì>Õ¨ã=h,?4{?L¨?W4°?Fe?nÜÔ?xõ?žB`?§Aë?œâß?¡C?=V>ùK?^ä +?xi)? •>ù?x?¢"?®Õ[@qt@mA?WXé?°à>ë5l?L*?™A?je?šG£?ª-ù?Ø•_?䱦?ˆ«ñ?yÿt?wI ?x~P?y©¡?z;X?™ªü?’¦U?\¢g?RG?¶jZ?»öq?œÚ?žŠã?K?Lµ#?ãÓ/?êW4>Z=§q>úÞõ>öŸ(;ÌhL=O"?C?’š>%>†r?¦÷?Š°¸?Zo?XEk>êðŠ? +›?Eƒ?e¯W?¨u»?€Ik=ìÒæ>GJÉ?i·? H’?Œ+>»žE= | >‚Š?B?d$ê?}Aõ?j°f?R:?–Rë?Ù?T?Žœë>q0Æ>®Ð>ýÖ@?eOú?¬œ¿?z.?Žp?€Ô»?³q„?ºÆ†?¾Á?öÅ=›Óì=ý=>/GT?L?:´†?Hb“?[ßó?P‡c?DÎë?®qU?¸Ûç?" >ÿa°?ŒZ:?bë?£Hi?©³>áOe>á1vX°?¸-¦?©›ß?ˆ”{?‰1b?€¡?rf²?QÀ?¥¯®@¬?ÿto?À²?ÒW?æš??Ä?” š?¨Œ?ÇU)?ß\º?ïÞ‡?‰ Ý?t>,§R<9ÜP>°…Ê>äXÜ?ÄÍt?ça›?ÔBT?Él?®¹?»6Ç?„ÌN?ùß?¿m?¹½†?´ X?¥—?Z:à?A¿>bõ±>±0?E2„?iÜM?¹w?À–A?¿5"?‹±-?*‰Ø?¬Ò>Ðd­?b '?£L?‰g?‡Ú@?²ë?Â?A ? –î=Üw?V¾ò?ha?^?4–Í@„@ n?÷Ó?OT?þœ/?ºÞÓ> vJ>L)’>wň?Q*y?ÄŽe?¬U‚?œ Æ?0G>~1ò?„|µ?žÌ?Õ>2†R>â>™<>ÞÜ”?Ïp?–?W»?/ ?Ùv?àY? +Õ?#£Â?3[?CpZ?Wal?cfE?€Wé?¬äJ?£?*?‘1 ?¦ù?Àì³?ÆŒ;?ÂõÅ?!Ÿ?VÛD?µ??áFv?žUm?‚˜?,ÆX?†=£1è>ðTÝ?‡ÿ@YHÈ@HE=šwà>^Â?‚ w?’Ç^?Ö÷“?¯þ ?? ç?>%¬? ÏP>ŒmI?WÚX?³Ù2?®ÒÎ?©Ê @R~@/½U?ËÂï?‚£?,ŽÏ? ¿æ? +TÜ? ¿?L­?ln?h?e„[?·Ý¡?­‘à?C_U?<Ë‚?V˜”?6‚;>PTe>v…8>ˆfÞ?M-3?Ó(?Àƒš?²¾‘?mÕ«>éº?˜K7?æÛ2?…—ø?¦j?•UŽ?¹!^?üm?‚n?ì{Ú?ùáú@4a+@6Ê?‡½Ž?±? ¯_?/…‘?ÿè?WŒÏ>¨S?«IT??F½?f$Ï?Žë??±Ö5?Ø<7?£Ba?bœ ?.iØ?ëw?¨ ý?íãa?Ÿz?y!Ñ?‡?¬?n^?Úü?H„i?QâJ?½·û?Âa&>‰aí>¯¿¾?Ëæ?“‡]@0å?ñIª?|B?FS[>½¥?šð)?‰|k?Tv!?,ßC?­å??ÃÄ?¨Æ?=œÝ?¢(>øI>ø[È?•J?Âc?½ö?¸F¨?pÃ?Šã>…#=Þ‹þ?Jû"?ol?Vhš?\HÂ>NÂ/>_wY>œì>Ÿ&‹??mó?<õa?Ms8?fZ@?—×?‰³^?I9?³LÑ@9xu@Êÿ??¶?º*@°?­KT?¤?ƒë4?Áº²?™ô?t5?6´•?1GR?_>Ñ?ch¸?î@ ¬›?ÄÖà?©¤5?>àd:?ü z@Ú?Ç¥Ê?¸Ê¨?kÒ{?u é?¬fd? zU=M>Ÿ^ +>ÙÔ?Á±?»˜?™]^??‚5ø??Â?„û?‡©8?†Øü?ºùí@ ¢à?¼Ð¡>Ƈ ?dô?[c!?¹Y*@ ¡¤?Üu…?¥‘ä?ºµ?B£X?ÜèJ@NÔ?ÙÀ?™/?ÇÞ®?ì?³Pí?ø@.Q¨@_Œ?ïdK?¥G?Qo0?3e?§?Ã?¿¬P?‹+[?oá@ Å&@›Ä?•#?5@TÜ@Œ¯@ñi?þ÷í?… ‘?~Ö_@ ±Å@ ±Ä?’ß?˜ ¡?}½õ?ƒ!?otÐ?mYš?¦Â?ŸYÉ>þ!?$»?@,m?QÄ +?ÌHœ?Òd±?ÆÇ-?»Ó?ˆA?¢è"@B@ÿ\@P@ 2z?½Úœ?¼?´ c?¹ÄÖ?ر{?Æü¬?|«V?—˜~?ç[‚?Èo?b&M?–§Ú?ü4¤?ý!j?÷¹~?ÒŒ—?{â?”ªõ?Ó•?Ʋ³?©±Æ?Ø9C@-_x@ ã²>û7?"õ?…#?°À@á¥@Ù~?ú,/?Ü÷?uxÜ?|ôZ?–E´?ƒ€ø>ÈRó?-D?»}·?ËI€@ëß?ñOƒ?»7:?­9ç?`UÜ?†·B?áº@?Á>o¨5>ΟÄ?Þ¦,?Õ à?VP4?U]>?1?Ž‰y?«(§?²°Á@7Ý@;Ÿ°?x7Â?wÉ#?¸›[?¹³(?|ð?yÇ?s©*?o"0@x@ÏÍ?û¥²?öÃH?ŠÝ?seÊ?Ÿ±?¦¶?”êÁ?‹ý?[¥Õ?Bh?Ç\?÷ýâ?¼/]?›øë?¢Æô?«ÙÃ?”(B?uÍ?ký?̤?ÊHO@êï@ +ô2?ê¬?Éi?€K0?‹ø?±ôé?šæ>ôè ?:?eÅè?b­R?‡Ð‹?ƒŒ?Áæ?ÂÂ5?²Æ°?¹ñÞ@@é@H§?BòE>òTQ?G?dü%?’âT?•m?º¿ý?×s(?©®Ó?‡ï4@`å@M,è@Hó?Ru+?^¶8?p„?>ž¿=þºû>À ?ç«$?á¾u?n²~?p3þ?v=?}C¶?†ðH?ŒÐö?xô‘?oKF?©ù¢?µõæ?Âø¿?ˆ@ñ6@(4,@ Ú?²Íì6Š?¦y‹@(Ëy@³3?Ý?%'y?°ÅT?¯á?k~?k`?ôý5?ÿ7¾?Þ/|?Óáì?#„?*öå?´Ÿ@]?õh9?Ö½ ?¼è£?‰¹N?—îž?òæ„?é—í?OÃ.?SJá?¦–á?¯ @ µ@'µÍ?ðZ(?®¬ÿ?“èA?hñÎ?©Çž@ `Ñ?÷”à?|cµ?‡k³@äé@@9ì+@A‹s?¸¨1?gøS?Ä–Ç?ÿÄ?ê'?ÀÓ+?¬wà?–„¥?¯@v@ ¨Õ?gy»?gŽ?óëA@ê?§Ô?q½ü?ch¾?`x¥?Ìî©@,8÷@6‹‡@ZðD@Hbþ?8Æ?"7?á +Ê?åŽâ?ª•>“ßN?¹\%@ +“¿@]Œ?÷Xl?Òu:?/Õþ?N¬G?Ún?à|b?r5?e>?× ö?øÏÈ?šéÏ?C`¥?QA?\`??#Ýôd̪?Þ|8?Ø5´>ÿP>ä¡}?è@È*?ö÷Ö?ëNh?¨˜±?F!?‘‡š?ý†`?ÿ1Í@Ùý@ ;?Úa[?Ýá¡?ãæL?ÝWÏ?Íž]?Ë08?¡m[?Sç]?}H?®’y?¸*ç@a8@ ö?+“>øóÃ?èÎ?^ó?0Ð%?GIŽ?‹[ú?¾;„?µãz?ªÁ4?±ë^?þp@y»?ý£'?ùØÄ?ž®*?‡mÂ?Œ ?³?}¢@?4_ +?O´t?§8?£Æ|?c‰¼?eа? ‡¼?Ã>ø >㊓?¢©??Þ“b?˜IÂ?Wt? !>É02>÷D??pI‡?õ²?MÈx??¢Ž?£q¸?«Çƒ?‘´z?Ž'Ž?Éy§@D?ß ?cÈ??œŒ<Émî=7ª{>Fl>Ëz?¥õT?³·4?Óé„?Ý?¹Ãž?¦–ç?“Àf?VöÒ?rë#?­Ö?«õ?ÖÉü?ÎÆÈ?%[¥? Vb?PÖ?c¸ð?»%?ß#ì?‹óÂ>ÿ¿×>»[ð=Ȭ>ŒQB?c¾§?aÖ(?Ph£?[™"?¥ê ?ªÊ¢?\»õ?=X½?š>×Ú?%I¥?s!#?–a?Ûóƒ?·Ô<Ʀ,=ÝfÜ>È0u>¼fõ?ˆI?‹?«>ðbU>Œà>®©Å>Ý!š?g? ?í|?Ñ/?2&Z?Ÿoß?›,>ãå>ã.?Zæ'?`1?YØô?S†é>’JÃ>}{?‹S>Î÷>Tÿ>¼)Z?Ob?9Óa>ˆ£Ì>]Cò>ÿ”>ÿ >Új›>Þ;'>áî>×K>ɸ£>¼X!>†=ýùQ=ø9Ì;À‡ˆ>ja(>‚­»>7/>Ç—=½/ø>‰«ê?Ä@?w? wñ?c =w¼@QlÁ@€Uî?žØO?€³½=„q=ÂA>Ho>oá>>vX>+nç>²c?Aî>ü½>ÎaÌ>pô=˜%ì>nÌö>÷jž?;þÝ?o$?zqV?ŠTž?x`?WÒÉ?øó>ýË>4­i>ãË?D‰>be=hZÙ<åö“;Yå?@òþ?{þ?‡>úÝM?2MC?M?M× ?D!“?oÈÞ?z7f>£Ê >(¥Ç?›Mƒ?Âþ>¾O=Ú‘?×?º…—>f1=®J”?m?‰%õ?,VÊ?#•p?*‹Û?1‚¤?qC|?yî>•5ä>/FN<Ž&m?[bÂ?x÷<@„Z@–ô>“ÙÀ?ÇÒ¶?Øô?욃?ßÂ(?D2?-Ú?¶¨?›í?P_ù³>ù#ç>ù*=j혦‹e>dÀ?zì´?s¾?\ô??["?a¾B?h[1?~?~’é=üF=ž=·½L> ?±ù?»Ð8?ªª?¥è>?“Í?*ôx?›?™#?a Â?Rµ²?»°­?»m?,RR? Œ°?'é·?2>û1?— +?{Žg?€–?˜‚‚?~Ï?—üü?‘²Ð?‹h?eŠo>>Xô?‹ç¢?ŸúZ@©@–i?L­«?Sk?‹û?” ù?¼í?†Ë>”Û?hÏÑ?—ñ¿?Ü…é?®žž?P>ª?Vj÷?r ?‹¡Ç?”Å‚?‹“F?‚`Ï?SÛà?=\?WD?jÍ?=˜ ?ò?P2È?ÌÉ?v +?d]D?‘ ¿?™!£?„}?~æš?ŽÊí?·?žCl? Ž'?½¼V?Ée?7‚>ÿs›?¦Ì ?°´¹>Øi6>×Ü’=ÀÜé=°”«?fE?8?„CJ?…æ¦?€/?j-? [¶?3³4?TUz?”5?øAJ?ÏFˆ?€QÇ?¦È€?Ù +w?®?ˆÁŠ?8†\>™ +?$Îþ?s±?­?ÈA>Ÿ&>À?³”?‡?úê?Ì ?Õ”š>¤>Qy?7°¼?Dm[?¨±~?±K…?¹ã?±Á:?%¬?;v~?¶´?¸]ì@ea?ÖL=Ué?L!U?ÿ”§?Áœ|?qœC>û¦”=à­þ?8™D?”õ‰?>‹?V÷?Q€ö?|¶‚>Ö‚š>bm˜>L>è>6Í>˜p>>‰áð?7c?3ñ”?ŠÓ?ˆÜÙ?‹øa?Ž¾4?Á “?¾ºÃ?Èw3?žÒi>ÕQÿ? á>??‘ë?zE"?®x©?Áí(?ËÛ?¶Ü?žG€?Ãk!?ÜñC?\ï?Í=?9¶‰??ù’?ÈX?8?k¥3?z!?wí?g&?þžÓ?èêè?uÀä?\\Ï?îÁ?;Ü”?±O“?’!~?/·??dh?K²g?e½Ò?€@t?‚ùÅ?Ž2…?CrÁ??…%®?¢ +e?¢?nné?†èø?‡¶<>,ˆò<P>ö}?>n>¤nõ>ë-»>Ø-t?¨?³÷?´Ãm?Ã$l?Ád?µS‹?†`È?÷>“3?8í?½xn?Åb?̨??–>X¥Ü?7ß?s-\?oœ?v?¸ËR?Âh~?Ýø? ­?EL?‚¤‹?Ž¬‡?J¸?‚!n?Yìè>3;k>ð ?–üÚ?‹„2?‚Â?«?ú¥?í€æ?Ö]?Ã)º?°ê?•µg?‚6?‰@r?Š¨Ù?\œÆ?/f?«²í?Âå-@É2@ E_@%¡Ô@']Ö@+«‰@‹?b÷P?V÷j?,¨©?oéø?éÅR?ÓÆ,Õ>Ï}>ØÍ>÷It?ðO>fìa==’B>Éæ?؇?ªw©?¼@ >Vóð=³¶?»Åë?Â!?ŒŠÔ?zÁ>µ1×?‘5?ÓpÌ?б¶?¤O?g•>¹îÐ?’„/?§´¤?Âœ9?U¡?ÅÄ?\¿È?Œ9°?SÖÉ?Ýf>‰+=!ë?„S“?Âq9>ñ'>§§?W·K?“Õ?Ä?Æݹ?Í›Ù?È¢a?˜\K?” â?Á`ø?­y?v\?¤?mÈ?Š?¦Æq?¬ “?×5Á?Ï•O?ÂX?¤‚Á?Lo?bcÐ?‰m.?Óų@Ó˜@@!O ?ú?ÁÆé?¾æ?¹ÈÀ?»4>Ü"?"”?Á/v?êüD?˦?Á‚>ù^>?ì?-+"?HM„?Ýã?æë²>jž¶>] +½?íè?ÞŸŠ>©ý?œ—–?¤`ù?± Ñ?æe;@Yxÿ@FE”@X¶?ÛW¸?€’8?5tö=îóì? +ÖÀ?£=¥?}S±?p2?9/®?€c›?´@&?ð@±?Ùd@?Àrþ?œÞf?€=•?ô°@$@Á@‚‹?Ø,?ž…"?w’?œþY?°-?¼(¡?¿õâ>º#?¼Q;?ôZÄ?̱*?À?‰r,?]?ôP@<0?Œ¤«?C±?¯øI?»°¨?Ð-Ï?Ò@þ?-r?.rÓ?±#×?±Îø>þ²ž? +õW?œR3?”Y‡?ˆîÑ?‹Àõ?~P€?t™ ?%HB?CuÇ?Í´Ð?ºå«?ÒH?B–??ýÃÞ?üÆx?ú!ù?ãx§?~±?©~y@U"@ ?½æ??½Ôï?½Æ¿?½¸À?½­S?­n¹?|ºµ?”cR?ÓÇ??×?Òðž?ÅDi?ºù?ϯ–@„?äz?{ñM?”’œ?ІO?Àú¦?¡´?Ÿ·ƒ?Ñe?«G>ûF÷?;ù?¯u0?é?òòÒ?Ö[?{˜n?°eœ@ _?ûè‘?zg?UÝž>ÍlA>ì!b?8ËL?dÂ??´õe?±€?“;–?“³?†è÷?‘GB?Ö?Æcòe,?0¨?9†¼?³N•?ØÈi?Ã*Z?µL?–¹}?x?‹“î?›À˜?{kY?0g?:V?\UÖ?daÖ?p•ß?p{?p\`?c(¬>ð<Ý>ÿÐã?°ö°?¯¦@y÷@ ü?¸¡U?§q¶?—æI?–þ˜?ÒZX?îåê@I¯@ ®?ïç?‘Û?´6=?ï1h?Ú”?˜ç±?¦áþ?Þ-ç?Ñdk?=§?}`?Ÿ{u?¥@?Ãõ>íº?˜N×?¶é?ýƒ@áà?Žvù; ×€>Ö›S?‡Dí?…>‰?[úÒ?o“ä?°ÐO?¨ï0>v$,>‰ÝST? Sh?‰vŽ@ã@è…?Ç>Ü?Á7ú?ŸC?£ý >‘NÜ?T ?³ù?Œw?+y?N4F?„aY?xÓ?erÑ?eeu?eW±?eKù?yÚÀ?zx>®•>{ùC>÷èM?‚„É@|?ýD´?tí›?}?2?Uº?P +T?hj³?ž?›œ¿?ª}L?«B?Ÿp7?Ä–s@‚@­Ý?«7-?«-ê?ˆZÒ?…"™?öõa@ © +?¹ÚÅ?x¼?7‘k>ä[?VÈ??â`ä?Ôéµ?h¨?uÀ +=ç^=m™#?tü?“3?yÈÝ?cÂ?c“?o8¥?¨&z@¡x?÷›–?ªÁq?ªÀ…?× Ç?àw?s9?/h ?K—>ã›N?‘µŠ@4?á®X?i½?qˆÚ?©—Ã?§6˜?ŸDô?š=‹?•uæ?®$?J¿Ó?2*ø?“„ý?ÁÎ?“›)>êß•>æ¤Ì?º’?òî?”ý¯?™¦U?øÄ)@ …T?PË=aÓê>yN*>ã›?@b?ª Ã?’4œ>Ìþƒ>Õĵ?¸‡?®8š?`–?`ûò?» ¹?Ú=&? á?c°º?~Gñ?”%?ªa¤?艅?õAª@¸Ï@Ú?£½.?¢ç€?yB?cÄ-?˜Ý¸?¯ä?fã$>ãÇ¿?e?&Ã?0w?…°?"¦¼?.ùì?)Tñ?lQ ?}g€?MµO?3\é?¨"Ä?Ù´?ÆÉ?¯­Ñ?`]¸9µ[÷<–.@=é@Ï?ÆOï?½qº?=šÇ?ãŽò> &€>æö¼?cn?o|?}¼?C”?‰fŽ?u ä>ê ¸>ã-=;3š=Î3>ÚÈ«? A>;4M>.*v>»{ô>®>Œ×ø?•rF?“)Â?F?Lô'?Ei‹?QÄa>, :…>—5¥>áâ>árd>áW·>É,Š>”UR=a ñ=Hù†\>¦)ÿ>¨z>-Ï*<‹~4?ÛÑæ@®¨?TW? Sÿ>Ú¦Ä>ʘ,>º¢O>ªº¦>šä">‹ Ì>vÓ?+œ?³\¾?˜¿¶?’ ø?i¤>ÿi>ŒI;n‘›>‹±¦? +¡Þ>¬H’>SîÎ>ö<0?(92>¾Á>agô>xÞŒ>\Ù>>?P>!F?‡³?I?@(>æ*’>øÖ¬>ùtÒ?`+N?{#Î?^'>úâV?F›+?Nÿè>ë}>èæ?[²?ª?(ߘ?#xH>=´]=ÁSù?{V?†Ï‚? +*¦>þ6?£x?¥.Û?Ü!I?ܵA>—eó>*­K>FžW>b†Ç?g"×?y"?†”>ù==éq?Oë…?lƒV@ ·™@Dö?Àÿ?©Àa> +!>Èí?"×?A9¬?N ;?DÀ?sCX?yj?7‚ß?)²L?Mÿ²?Yh?z?ÒŸ?›?oG==° =«{8>HÏ>ë‡/>ùjX?š s?©¦Ž?G?y—?Ê>ù°1>£>©@>¶n~>àñ>ÐÌ>Ýõš?·!ÿ?¼@´=¡W˜?Ò«?Ï(°?Œþª?Ž‡M?ãäÜ?âÌ3>›1¨>‚à?ºð +?»v¨?Ž®?•©K?«ô¢?®³?¨‰â?µ.ž@r@\É?y/³?j;,? ÁÂ?aj?5Aõ?Bj?NÀñ?[|È?h4X?b¯Ù>ñVö?4Í +?üTç?æ”ç?Ø?™íÇ?ÏBÔ?ÛÙÄ?èkY?Ñö˜?} µ?VÊ>æ\°>ó®]?jM?3‚ž?ke„?|ŒÈ?}Ý?eÊ?@ d?™‘ë?ã B?æ4A?éUð?ŠëE>­ÒÐ>æQ?Þ?Šþö?¼†P?¾¯²?¼½ä?WÊ|?ÓÐ?pQ˜?¹Ÿ?B“?(?Æ?S„‡?iS?—5Ñ?  ?VÖ~?L»6?ÂR>ÿ~×?;h ?Ji>ysp>_-7?„Nõ?ÁŸ?þïx?ÝË ? Ë ?ÁÒ?·m?\Ìl?Ëh?£ +I?/ƒ¡?Gê?vxa?€x ?€Wl?¢Ò?Ó¾?‰èW>̇?]Q=?ªS˜?aÃ…? `O?“T ?ÀˆG>ÜÑH>ÅÒo?¹p?jò¢?€Ç±?SMM?XšM?mãŽ?[Ú>rñÛ>…¶÷>‘,h>Ë¡¤?ƒò´?†²•?³q?°®¨?Á ½?½0)?¶Á1?éÞü@!^?×J?â?+o?P?6¯?D`g?ß?¬ÖW?µ¾?²}?:Mé?h?‡Y‹?‘3Ó?>ã?,ª?Y™n?cz ?§²ß?®c/?ºÒÇ?Ì…“@öx@ „ +? ­?¤?–V?b ?¨Ÿ²?â6E@Ä¥?á³ì?º_?϶?¼>)?Á_b?Ë~5?ᙤ?êÀ•?€ ?(ÏÖ?žOÔ?´¥$?’ÿT?Š¨›?-Õ“?B4çbY? `?ªƒŠ?˜é£?GÚº?;¶£?*‘?r•¾?ÞÌê?½à¬?Ù’?‡¦ÿ?ˆ±?!R{>«‚>ãÒñ?%?XÔÖ?‚%¤?$æ?%õ>\@Þ=‘¯´?«:‰?Ã;l=ðBm=z!>?‚%á?‚'‹?‚&?–ë?ÞÏN?ªÊ>üDZ?ßÉé?¿W‘?ƒü,?mCù?7šø?rIÓ?—þ?€8Õ?b;\?Že?šv‘?¨7]?´|È@9Ý\@]_î?ï‰?Ã'-?Ézã?ÎÖ‘?MŽ³?Z:Ë?¶( ?º\a?‚ÿ?oèÊ?¡?Jãó?ïÍ?ÂDŸ>ÿÓç?‚Y?~?,å^?`‡?–#? ®?6kW>d8W>P=™ ü>¦U>ð‘?Ìè@z?PNž?î“@XqT@pnA?»½M?ß?<Þ ?JÄ?•ã?‹³>¤t¥>¾¯V?:“ò?{R²?ã¦|?ÅLÒ?[”Ã?BL¤?/Ä?cŒ‚?Ùi?¡²2?ƒG?»r9?Õ]Ø?À¼ö?¸µ?À5o?˜?PžÁ? 0¦> «„?—¢Ø?¶¡Õ?ù}Š@’ú?€ên?}07?˜|‘?œtq?Ó?Î[«?C̘?f×F?×Ç8?ão@“K@YV?Ƥ²?ÏQ?Ѽ³?ì=~@ °€?î´÷?ºëG?¦ä_?‰nµ?‚½÷?‚ì>?D€?H"?–a?ÁÀ?ªÃ?™¼ø@{4@µ6?’Ú?XXN?'y?U9@Ã@ãô>)#Ø?žä·?§¼K?_½÷?_v?ÁH9?³Ô>·%¢>)‰=±OE>3z­?\¬?J‚’?Áý?%'<]ÿ?M™€@j@•Z@'™?öðë?€|??ª?ŸŒ?£ãc?«¸s?µUÀ?ÀŠR?¬MÂ?\ï?MÇB?mÔ?ÜÕ„@)ž@û}@ —D?ê@ ?Ú‘;?Žh?bŒ?™çŽ?ª…H>ç>!c? Ø?mg@ aW@lÌ?—-•?‰i?‹¦??"?ÿ¦?{s=?.r?‘G?“†­?Râ ?M +X?3u¨?=v¤?ƒ,â?Ô?¥@? iÎ>þ{m?ü?•\?›Øù?ǃ?Ëßà@ÿ@×v@N÷y@>]?äÀa?â93?¾=è?Úí +@ºZ@ö’@Z«@#ÏW@1¿Ú@Ð?Š‚J?}ÉÔ?=¹|?nÈÕ?©ï³?®@_?½x|?ÁB?ÐO?°Éá?û~ë? 3?!ö¾?"Õ‡?'àî?*´?„’?Ië?ºý?ª–O?‹ð?‹XF?zpU?ˆ·*?¢ô}?¬*Z?ɺj?½,Q?§•?¥¥?£µ·?ŸÁ?˜ ™?·¾z@ «ï?ìr?AúÜ?‰‚@ª@ >?LÏÝ?‚s°@#Ï@W=>øaŒ?qW?x1j?‡´ @`Ò@- @X€@E?¶Ûx?±1›?Š+ç?L?¯»ž?¯#¨?Š¦"?‰E4?é¿!?ö¨‰?²u¼?£¬p@`i@ €Ç@8Sc@FÃ?ÜÆ?Î?ö»)@ºÊ@ +{?þ|Û?Ä ?Ÿ(°?ªã_?·¸ø?ŸÂ›?…Q ?*»ø>.v‡?ìØ?³£•?ÈÜð?ó{?ÒÜ?}‹?¥N?¶½¿?È´Ï@K(@‡c?ÞmÜ?Þå?rw??J2?Rþã?E3D?>Y?häå?r8å?»ÌÕ?Ê¡”?ËÀ ?ÌÞG?Èä?ÉÊ›?Ꙇ@Ãî?ÜÙ±?´Î…?Š,Z? +1G?+S™?{?ÌïG?Ç);?Çùº?×.›?ãáF?žÏ?/\¦?zqÙ?²²â?¸E1?¿ŠC?Âb!?ëà?ñD±?Ûq¯?Ð:Ÿ?StS?VÖr?DÕ€?2·ö?Î+4?ð¬’@ 7j@œP?ŵÍ?d;?‰Ä£?«_|?ˆù ?ÿ•?pjŒ@@Y@ï`@ \s?Mõ£?>S=ñðÓ>÷>ì?1Dw>à z>†ˆÝ?SFw?¿òp?Éÿj?ØÍ?ºº‘>êG?ÿ#?’¦ç?Œæ®@hx@(Þ¾?ûêš?èm@Ö[@+Wy?Á11>ÿb`?Žù‹@lì?ÙT2?C£*?o#h@Cz?ü–Ø?µ¤?¸}È?`b?“hT?Ì7?áæŽ?Ìí¨?º¡?¡õá?l1¼?ió·?Ì-?›Ó?"ù¶?Ø?¤’„?­B#?„A?jÔê?!‰r>å@>â¢Î>æ?yÎq@@Þa@N@Iøˆ?ʆ¦?ÁÖ&?|õþ?T‘?‰£…?—VE?hß?)NË?vÂ?Îu?Çãß?˜Ø?“¹ž?)“E?1Å3?Ÿ_`?«çc>ð?_=ÄV?+íô?ª ³?«úŽ?¯D—?±&?¥¡´?¢7B?²s? +ä–>íœ>ä›Æ? Ž?¶?Nµ8?„ U?Ϩÿ@+CŸ@Î_?ÂÁÄ?Àš?—÷™?š?…}ã?}v—?›—Q?« ?{Ÿ±?0¦?GM£?ªø9?™¼¯>ïh/>ø>è?F"‚?=ª®?%Š?* +?RLÓ?cÅ?O{b?5žF?Š{3?ý›¯?÷tá?ªÃÀ?ªÂ~?ê Ü?ÜÀ€?¾Põ?·æÒ?€ÄS?5â$?Dà?è?`,?ã‹D?ÙÓê?ª®¤?ª­i?ª°W?ª­4?†ÞŠ?ß?@È•?ó«?¿F@*·?ï?=?-›T?U??ÀÀ?½§?An?FSõ>ÿŒ>ã–÷>ãžM>ãœ>ðua>åÊ_?m¬9?à”T?Ðâ€?šj¥?›¯ƒ@¦:@WÂ?bZÆ?9‹ž?ÇJ?èý? æ?c¶X?ŽÙ?®(%?—ô'?cÀõ?fÀÿ?v”¾?q8>èߘ>ãÈ(?—W#?©_Ö?ÍZÆ?ÜßÝ?P?Jê6?q(¡?˜Ü#?ˆ”T?4¯¯?.D?,Gi?1ê >—–þ>–µA?S‚è?‚+œ?Ÿ#ã?ª×?ÌŒ¬?çÐ^?¤U>ßÃæ??H„@?Tr)?ã°ì?ã­>mn¾>,Ûo>Ê£>ã›ï>Öa¹>º+>ë?ÉZ?VË?”v×?´¿Ø@ÄÌ@|ì?cAR?`xþ?Qxõ?D¦³?°©”?¹M*?&(í>‘þo>…6 >pÍ>•Ö>½R¬>Û±À?@!ï?âV(>âDø=/šˆ;ìS>ºô>׸Á>Û›4>á¯ÿ>„ã=ý}è>‡Ê>4`N>UÂS>W§W>+Ê¿=Æ Ý=œL>¡‘J>Ô>*ô>Ì{w?¤<î?ŒªòÏs<‹Ç¾?p ·?ƒ=>=Nˆ‰=:á=À?­>«/?ÆßÚ?¡‡¿?Þˆ?¶¿?Ž-?vŽÂ@éà?§ÜO>‚”Ö? -ß?dï>üøø>qcÎ=s)\= k$?°Z?PNM>é§">„é¼>ƒT™>•Ë?JÇ?"Ç‹> L>ȱ¹>ûp½? ÁŠ?³'³>ŸÃ;>È ?[1ò?z¬Ò?)_>ýõl=^é‘?8©6?WVi?Z>ùëÕ?ÛÃ;?ó}ã>6\<†­ô>þ¦>[Çj?ºœù?Ë<¾>Ç>„_>€š?we?qÙ?PU ?Eƒ7>‡ôi>5h?•?Zƒ>ù¦b?ó˜>˜>3Ì›>ÇÃî>¿±K?+¶´?$lŽ>Ë>ߘ°?p`·?y û?L(’?O‹«?*/>ù$ ?p(„?y2Ô?y8?y?¸=4À?K†?M–V?Ç#·?Ä¢*?€Ÿï?y‰6>íJ +>÷>ûÑ>ù»Ã? >Ü5>r=¼Žp=ˆ¢='p"?ë,¾?ùäK?ú£>â l?3 +œ?H¤‘>ƒfí>˜æ…?a?‹Ek>û'Ë?-Ô?׉;?У?'xñ?$Ñ„?{?uK? ùI??¸÷°?¬eÅ=6ÙÂ> +]Á>û¥¬? +>d?\›]?IÌÍ>ûïz>㌿>bIŸ>ÚÖ?šÍ?¢ +†?ÐT?ÃÁ?»õ?s°>g'=íž™<—¢€>P}û>ý -?œÀ@ì§?Ï#ª>ýl«?3·@?}?_AB??Iõ?Žš?¾cê?³]!?«‘ ?·#Ê?¾š¸?Ÿ ‡?…Úõ?zÈ?{wˆ?.‰ˆ?› >aø.=ž™Ø>îK°?f?ê£>þÿ>¨_>`Í?bá—?G)? à>ÿjT>±}Ò>¸ÁÐ;ö¬7=Õ?®Sm?´Ur?ºX?°? Uç?ų???¯?L£?ÓŸ?§Z?>ú?GŒ?Nè?òe?Jn!?Ÿ¥Ž?Õ«B?³j$?¡Çf?sÚ·?'( ?TCí?y}Ã?(—P?ÿ(?W?h£O>vg{=¿á?^ˆ?€ÎT?\p@?R¶?½²6?À?B%s?5Én?UA©?W¢ü?Ã%G?Ølm@ +ha@¤Ý?Á«t?œ|—?|?6üg?‚‹ª?ž‹?¶9>?q¿È?GQ>²¢™>ˆa>Ñ_Ü?å?¯¹?ÞRÏ?G??BB?Ÿ×º?¶Ö^?ˆ¼Æ??(½c?À–?/ÏÞ?-ºÒ?‡¥V?„”ê?ž†?jˆÐ?¤ü?AáÛ?°¨?¡Š??¨yˆ?ÑÚ?Ä/%?©bu?}v²???A»·?;{o?Å €?ñ¬„?œÅ?Úî?Þ$?áé?ÄF±?ÊAþ?÷ýƒ?üØO?‚ ?f2k=5Ë>»?¹$k?’°~>qm;>èÏ?[HÉ?‰¬?·-–?«àT?¤/‡?a’€? ’?›7Ô?Ï\Ï?µ1Ñ?°–æ>ø’=Õb&?-ê?Cl×?½<$?É.”?1Œ?ð¾?|¾x?i?Ò=ˆ`y>*L(?8±;?]{?ºe?v·>¤÷=?5ƒ?uͲ?ðA?…ß?» ­?÷@ª?‹ª>¨3þ?1„à?b2ß?„#(?+Ñ?2‹9?,²?àÀ^@ª‡@;ïK@?;@?ºZ?¨Ÿ%?q]?12³?´2}?¯¢?ª-Ë?„ßœ>Âçæ?ŸýB?{H6?+2?<¨?‚*¿?—Ó*?®˜j?tµƒ?!¾á?Äl!@%æ?ŠÕ?&÷Œ?h7&?€Ñ?¹? 9Ã?¨×?‰.>=¼(Z>"m?´ò ?¡Ée>—ÔV>ºøw?ü?HL&?Ë?ð?ž +¿>þè4?êŠ?8\”?{û?¬›\?‹X„?II?g9Ñ?‚+?LI~?#ÃË> ~=r¸Y?F"è?‚B‡?žf?õ«?ÑÜ?ïˆê?’èô?d½?d2T?ZüŠ?*³Ø?°Z>G¿´>¨uT?H¯?dé?£ê–?Ÿ«x?šf«?g˜?X +U?VcM?FÝk?¢nË?éÿT@t‚@Å‚?§§?yß?™¡q?€t?‘Ž?{R">PÈ(?Ž?51á?Y;ý?i€ ?¡?çm?1i¦?AV*?¥üm?¨0X?Áœë?Åö?ð¬/?óù„?ë—Q?ÓüÂ?Œ}^?¤Bu?å•“@ µ?@-‚Å@U?3Î?é ¤@#??µ&Ù?n{?Ln?v¶Û?ƒð>?‹WÙ?QÐù?:×Ñ?‡ »?ó ?q¯?TT‡=ýØx@ +¯ê@…ë?‰7Ú?g,ê?Jyn?\Ñ@Ž ?ý?æ&?ݸE?ÁA?³©A?PÈ$?lèG?Æóf?Ã@æ?¿d ?­Ø?{¼L?XB]?,å…?nq?§:?òÇ +@%;½?Û2¹?H"?©ØÑ?êàm?½ôð?šr3?Ê,?æpÉ?’2_?3§R?ßÙK@ŽÉ@ʘ?ÿ‡?ÂTþ©>ðEî>›‡s>â'$?•+$?¶TŽ@%a-@"±5˜?»¾?®LÇ?ƒM°?r\;?)¹Ô?>û>Ý·ü?'î[?}o?V׳>üûÍ?œ?Q}u?rõ¾?–ïŠ?´ó?æaœ?ªè +>üY??fªX?Ø*Á?ÚŽš?äÕÙ?ØXH?¼è?Ü9D@ Â7?Ñì£>ûŠt?FÏR?¬£?Ûº@×4@H`?ºå¾?»êñ?¼!Á?àUM@â?í¯u?z|7?€Ö?»¿H?ÎP?ú J?Û¶ö?’)?ž¦·?»Rw?«y?y’1?©I4@á @ +™µ?fAD?„1ˆ?Ü›??Ј3?Ò?  Õ@~¥@ €)?Wôt?N–Ö?x;Î?†“÷?ï÷ã?ï•j?¹r¸?¼á+?õu?òŠ?w–*?wT-?„ÙÂ?†óú?x¼¢?vê*?™âý? ÑÊ?¶x}?¸ß“@u@/>?ò¡€?ñã˜?™}ä?kd§?¶XÉ?Ч‡@È @7GF@mÆ?Ât?Ç»?Å?ÔàS?ÞS +?ÌA?½oÿ? ‹?taÑ?H3Ï>÷3…?mâ?ì€?Ág?Fg?L+€?Ì›j?ÀÕW?42i?CsŸ?‘·%?Ž*õ?±°?«ä?œ¼¤?š~Õ?zºP?rDô?°Ù)?Æõn?ùp$@F?ª?q“è?°Ìp?ã\?½h^?“<Ä?’ŠÄ?‡…8?’¦Ã?°£ÿ?•Ê+>õéW? áŸ?p8ç?qlª?ƒ~?‡/_?³»°?³Àí?‡>>ïq|?ª»ö?Åô?€7 +?P9 +?®¶Ø?Ôó%?µ¿d?–ø?u”ƒ?FÅ?°œ>@ .³@}ù?mâ?š2R@Nü™@PXm?S¼i?Dظ@ÄÒ@!°@E~@‡X?Õ2?±àÄ?±HÁ?­ÂÛ?H¬Ï>/P?Zˆ?›n?ÞS?„ˆ¹?™ã?úrn@æ-?œ†k?˜{M?xú>ø] >ê;#>êëB>×,˜>»é¨?þR?jƒ?ŠKf?¯¼•?¤Óã?nI§?t™?úÇ_@’?ª*(?©ù&?{³N?i¾æ?¡2Î?¹!!?Ìl#?Óp«?È÷²?Ä· ?­ý?KÞ?xxÇ@S¤@E ?m^Ž?hE`?^ðâ?eD×?ï5™@c@´j@ÍM@€}@¸„?ýá’?gs5?m’X?™1û?¦?¦Øê?©(?§»?¬ ?ˆHG?bÎÏ?»Ý@ÜŽ?‹Îm?ž%ê?6„I>ð‡>ZúU:ù=€>Ks?RW? ¬¡?²? j?LˆP?HG×?Ìà?Óþ3?IU>ä‹,?7#?jÕ ?Åoç@+GÃ@>F?¹Fº?»¡†?d=z?d7?ÄI=?ËÙ?¾¼¹?·’†?èõ"@ t?ô¶©?ªý…?Ÿè4?Z X?U–å?cã¡?càe?Ó<ˆ?Ü1F?;¾@>¥[>ü +K?$J÷?vüí?Åô=?¶êä?{Nm?‚æA@6Š4@<›¿@˜?îµ?ûéŽ@Ø?Þš›?¬I9?—¹?gIF?€™s?ª±¬?ª²÷?ª³"?ª±Û?uól?c™?c‘?cšä?¥S*?ß=?½Ûk?TS¾?a&¼?¨€l?¬Ïü>¨¬(>²¦e>Þ¯>㜔>ã¡œ>ã¡-?´ÓÆ@ ¼@-ï?㦯?À±C?l;?$!? c?7è®?Ô?Õ×À?­‰?¬H®?z!•?6Ý?™"è?è")?ÚÕî?¢›¤?› ?ª×†?ªÀÊ>ðµ'>ãÍÍ>?v–@@8í!?Éþº?5â?$¡#?Dºz?e<ë?•&?Ÿì?«?‘¶î>¨>>ƒõ&>™FÛ>"L?cb\? ãW?þ„N@*ªë?ÐÒ-<ôSP>„s?cÆT?` ?O|’?aK?=t?‡P>¯oÛ>tu1?íá?;€?AK>ªMi>ž‰>ÃN?ßÒ?ci‰?cet?cV:?cL ?Io?…?<‡«?W£b>Â{>:è>­<©>âàk>ôe ?´?U¿>â>Üý®>Ä>ÑÃñ>æ3>áÆ=§ò0=9šx>©fÁ>áÏ6>F@{=Üü>s¼Ø>§«’?ÙE?«Å>±hÊ>ÆÈç=¢©8`?ÊP?ß!E?ƒ¹>ÉŸ~>åúª<ë•;*X?ñ#?ýå>ëÕÖ>Ç—†=Ã×?-Üö?9Ó¼?Ý0?'?6´ˆ>ÞÑL=FGq=¸§«? ?ƒ’:>ô"ZtWÃ>¹ù? ?/½=?ã’>ý"…?A~?>þ?‚y:?Ž¢¨>ñ £>XÃô=}îÏ®>ûuT?¨·n?¼c?Y¯X?1Ÿ>£²>ÌQw?k˲?zzÊ?'!«?3ô?æe?Å>ýÖ–>ùñÌ?_ ø?tw?w ?iÞ±?[²æ?MŒï?ˆ±?Ž½?x¥?_í? šˆ?™K3>U;>:á?²Æ›?ºÝ!?”?y‡?b½?n©8?m>ù å>âu>Ó̱=æ™J>/ƒ>˜mÕ>·¸ð>” n>‚?7ø ?EŸí?€e\?nm´>ÅÞÍ>È5ì?Pm?c#?p‘Y?y"°=<‹w?ê?5Ö?™^·?£Ž?1†'?0àô<ë´À>ðèc>ùÅ‘?·yï?»gµ?„>ùùÆ>ßmÓ>ì8ž>úh?Z>úè„>úMË>ú]'>øœ8md <3Ë>ú­>õþò>t‰¢>–Z?”'Y?ž@O?T~¤?XËä?GÆ#?ZŒÀ?Š…®?{–>ûkt>è„}=ñ½?eÁ2?U˜4? ’°?;ð’?¡ý?wX? ?! Ö?¢yþ?‘üÓ?* u?T>bî1>ð—?¥À‡?u»U£Ž?qŒl?B>ý*Ñ? 1?7²¤?3Še>ývW?ß¼?6;C?=UÚ?9õº?3Á?§;?z˧?8öÑ?~ K?,ƒ?¸â?ÃÍÀ? V; ø>°`Ò>þ `>åWô>Ðâ>ñ ¨>þç>þúŒ>ÿ +À?NmÆ?LR×?v—}?Rå? +->ÿv>ç¾>ÁÅô>Ñ‚>¦9>ÿÈ ?…\?Y¢?6\?ö_?âêB?­ìú?µ*?%Œ>ö¢&>ûCü?>¡½?Š·†?Unó?TB?1dó?f¸I?Óú@#)?»ä1?Ð?€°?°¥ï?eTE?b/?bÉ?« ?å$?¹Wƒ?¤õz?˜6?ÿòÏ@%?E´”?2ð¸?›¾¥?œ¦n?IÎÊ?mš-?϶?Á(ó?'ôi?0tþ?fã?‹*?Á´ ?¾ªŸ?¼Ó“?õ/ß@R?®d1>/o?ã?h¿¯?„­ˆ?Šk9?ýƒ>¢?Ç?Ë%j@¿?…Ty?H‡?gMN?a$ô?’‚â?“ê¦?e@Í?kîƒ?£þ?­¢0?½Ç{?µû»?± ?e ¨?«ž>ÓŒÍ>x“d>‰ ¡>|ê¤?´'?À³?ÊàÓ@?—ý™?Ï_?¶?a?ï›@.@ ?s?¥_}?á?lN??mš?ßi>?ñ¾n?|Vl?†A9@E’?üq?ìo­?Ü Ò?Âü`?ÄûÞ?Â5t?µ™?­Rò?®@ö?·úç?¯ze?¢DÕ?m’?9Gj?êа@+ª)?Ù|=?“M1?¥‡>Ô"@øØ@9‚@ „*@!ÐÜ?o…>ÿíG=––m=ÓÍ(=£`h?)p>ùÁ >ð„Ä?7h~?‘è?§?Ì©ã?¦— ?yˆ?Šî„?šüd?‹Ìd?‚1ì?À?æç0?½y,?¯Ò‘?Œñ?‚3«?¶D?Âçù??’¬?ÃÁ?¸Má=¶Ä>s»\?’„t?ˆ4Ô?,®º?G^>›ÎŠ?Pù?è\¿?”y>µƒ? ј?SÉ´?šËr?¼~?Œ›@?g.A?͇V?ú•ß?÷³Å?úwG?R£½?¡â?q¿h?}\û?HÒ?¤Ô?YÓ–?UŠÕ?‘Œø?ŒŒ†?3•?V6S?¹€]?¾xÅ?àÊ7?·i{?FÉÇ?x¦m?œv?ƒã?YŠã?‘ž?²xú?–uq?‚ F?¦³n?»Â?Ü?~½¬?Hh?º2?´Å?úÉ?f%?*D@ £<@u×?#à#?Žª>,\z> KØ>“úI?¤*ö?¡â•?Ÿ—«?N•>²[6?T~”?‘á?·ð?’s?Tûú?h’a?u6-?Ó@½J?¨zœ?‚pÐ?‚;Î?²=? n7>Ý ?›æê?¦uî?iƒe?^bü>,]>d ?N=?2î?žûb? Çÿ?¦.›?¯ÖO?¶¦Ê?°b?«ý¡?éº#@3§œ@.æ?gͺ?~¦…?ŠŒÚ?¼;P?øýŠ@1@aeè@)wÑ?ú‰ò?Ñòú?ºé?“?ê?6L?nÉ?cT‘?_ °?ZÀ—? ˆ'?©¦\?›®O?‘-0@ ±~@ÚÞ?å~?å%/?gÓ\?v²9@!(2@ ß¡@-Š@Â-?§&?ÄB¼@¥@½³?óEº?×£š?^„?•Gê?¾‹ö?Ð3ƒ?ím&?§³Ÿ?²?H³\?Š”À?VÏÎ?€³?BÝQ?…fI?Æå?ï#?ß?Þ”?ô¦?ú0>?Ò ?Àb’?£Ü?”ì?ºz?ÎKö?‡½¢?fñN?%¤Ñ?2V?§¥?»nß?1eª?£Ž=„oÅ=™mÀ?³›?¿¸7@'Çñ@%©é?燋?à)¥?A +?Hð?PÙí?Y%¢?N[?Z‚m?¿6¢?¾È?¿¯D?µó?6’?&Á’>½QÒ>Úõx?N!’?qŠ…?Έú?¸Çß?fh6?•*«?þ +ƒ?Å'Q>"ȧ>O–ò>ÿÛ?F˦?»–*?¦åû?p{ê?„^W?žò‰?€§t?ûÚ>ê7Í>fÒ>Šd +>ü××>ç?>Í·"?BT¨?µG#?„9R>…`j?PwQ?âO?ÕÁã?½ G?Äj?Ï.†?Í4?Ë9Ç?££õ?=„S?/p>à"ü?PA€?¹e*?n$Ë; ì8?‡F@7 ô@6,@8oÁ@)cm@ +š?ÔI®?7õ/?ƒð?Îá?µÓÝ?yÿ’?„-W?–Ϋ?¤œ›?¾Y?Ã+?Ø^?ÁV4?ˆlF?þÔ?”IŸ?'ê?Ã`o?¥'â?l…Œ?ŒàD@ÿ,@‰\?‰Dü?…ƒx?¼2?{òõ?x8?{’?‚”ö?ƒëï? Ýû?@VÙ@QYë@K»O@FŸ?݆”?ÎÕ7@%*}@(y¶?ârk?Ô Ð@Õj@Jú?Тç?¸r?›¼È?˜ø‡?†WÂ?u|s?<ã—?;&?¨Ÿ ?èî @jò@E`Ú@áÉ?æW÷?¸¿ +?tkI?‘Þ?´}”@~R@Mý€@*ƒŸ?¥Š&?¦]f?¶£É?²FÇ?–™0?ž h@W2@Êè?§ÝŸ?«p?(8|?,Ù?Ì2?:¶?~ÿ¦?†Cò?à¾ë@A‰?Àèl?›=÷?g\ð?"„>¸.®>à+?TM‡?ÞZ“?º¹F?k«?ªu@Ù@ xÔ?éY²?ÙYX?p¡?zÂâ@#°@ à@¢i@ +ò0?ñD?‹Žé?‰MÍ?„>?ß:J@¤k?Úø?µ?•/+?HQà?š‰¯@ò¦?îÍ?mê‹?~•?¶?Øq@„$@…p?¿®?¶zØ?Œ´?uñÛ?¡ñ?±Œæ? »?v¤%>üÚ>t±?( +6? mŒ>ëß ? i=?‰Å=?DJ@ S@ +9?¡N@?“/>ã¾b>ƒúç?•óq?Í/'?œ ‚?j‹Í?’_º?¾ ?Ù½‰@yÕ@ Kø>XU‚>oâ>ÿ‡›>ñÿç>é¨>î7E?5ñ?®ô³?•C1?†5Ò?š?®®[? +?h½+?‰Âç?üâÍ?ü¾[?hcÈ?hM-?ÄÀ?ÆZ•?£*t?Ÿ}ã@Ë4@#¸Ç?÷Xq?k?˜†?¥;J?“pg?\?? n»?[|f?b+>%Ðj;Tô>£3>õ©Z?±t<@%õ@@,u¯@õþ@Þ5@\Ç?ˆbx?f?LSú?Múñ?®²O?Ê3?ÝÎÀ?ð l?Á¢—?e¬G?‡«?ÊåÍ?Ë**@ Ä/@ +Å£?F=§?Çp?PBª?fåÒ?’î»?§yA?p<[>äõ•?7~D?Çd¿?¾§Å?ˆà?›f?ÊM«?ÔG‡?–†?t4Z?B/O?-˜ú?ªõ!@m@ç?™>Å?“ÌJ?PÀ?~:$@#¤ð@/o`@(k@ +Zý?ùÕ?ã³v?ãºw?ái\?²åÞ=áR¼>3¬H?cæg?cãT?âþ¢?öÁ?ük…?ï?©.4?hð?÷?&$º?ª³ÿ?©j?} ?€éç?hnc?cœ?3¯æ?#lµ?ƒ ?¨1â?¸V¼?×G)?²¢>ãšó>êÕR?B>ìm>øÁ>öïÑ>þ/G>çµ?™ßr?æ‡?Ñ÷é?²¼>?¸`r?¼MJ?«—ì?ƒ?c?‘(Œ?¡g·?#Ï£>ã¾N?*|š?BöŠ?M¯Ú?cĸ?«¢x@©È@L—?ž??¦d&?ªÙÖ?¨6C?Ðg¼?Ïs&?­ý??¯lŸ?aî&>ãÙ?.Ð?xU?y®É?Žù%?“£–?­vÓ?»©¯?„X ?QO?µjÈ?ºØŸ?8¾¯>Û"°>L˜©=+Jˆ>ØAÍ?I#Ý?a?žK±?Š9Z>ý¥>+Ôn?€Eµ?‹Z“?L$>»eo>™˜Á>žN ?E?”F‡?Dm=ò]>”Ź?cz&?SïÜ>ôá.?2==«0è=Ü‘¹?+J(?:ô>Híg>ÂÇÜ?!+è>­@•> %í>â·H>¾*»<†‘N?b7r?]{é=Øg>¥=9>áí«>´!‹>‡ôÁ>¨ž•>áø?õ¬?8›+?)ò=×N=Ÿ«'7>ŽY>Õbµ?šã?‚vn>]“P>ÔF>‡ýÿ?ø–Ü@¥(?³ „?£é?CèW?3à°?#ð¡?¨±?Þq?x‚?NµN?˜->8s¢>ÙCÔ?jªä?¹“é?pñÙ>ïÛl>7Ã?L]?˜Äl?4RD>ý}>Ÿ¯>‡Í?s¬ì?¤¬?žƒP? '[?žÜã?§‚z?*#í>ýI#>ûS·>û|ð?«è!?¼i¥?7Ä?%Ô.>®Éí>4?’:½?™T?¸ë¨?»¿9?‘Y?ŠÈ?3r? +%<Éúì:<?±b ?µ~>??pŒ?qn?$no?¸:œ?» ?Øa?ÜÌ>§á>£ ž?”¹?¬,?ef^?iÀÓ=²#Q +>–O?€Cð?wnX?iãŒ?\ZU?¤ˆê?´jã>é«=§Y>`m=祥<*O<›L€@ 6N@8Å?ÉY>ù{9?vô?yÄ>þ)û>ù¡’?yŽ2?_ÔA>øøú>ùÔ$?–7ò?î½?,F?®§=ðú‚=6A²>ú&>ú=æ>úNÞ>ÿ®­?`¹­?YlÅ?-%M?¾>N¹R>{>ó E>Ò&>?(>2#¾>´õf>µ•Ü=±Út>q^ç?èu ?ßs>ûyŒ>ÙÀK>[ +?{¿o?f‚‡>ûäh?K?c˜ô?d@ç?="?71œ?3?œÐ> N>¸Ú?|¢P?6v =G¸Z><^·>þzÓ>ýì£?¤Á?0ØP?gªï?}A^?‹ ?Ka>ý…‚>ý–}>ý©p?=í?}Ðe?¥x?À8X?K°X>yï®>Iu>!Þ?„Ü?÷•?)å¨<É‹=d[l?1‡K?dhÍ?“ô‹?˜­ ?aÏ-?Ls?jöâ?}È?K…À?JO>°ë>­¯—?½a?Á?ô7¶?ê¡…? +þã?;?€++?W%Ë>z¾?¡Ž?À-Ã?’»>íÃ>Ø*ø?y’s?‚&ÞÖ—>^È(? ?=T?­«ö?¿Iq?xÝ?1c>ë<.>û./>j²Í>ÿb?#y¡?6S?^7¼?Yá ?2NS?o”1?Ècã?•¹?6O?“Fá@Ö“?ÀCù?_jÜ?5G?$,?rœ´?•_õ?•D£?ŽíË?ªC?Þô_?Û™>’í¿?Œ|?•S+?šá? fš>Î%h>ËË]=‹9C>5~?ˆÄ?-é?Áœy?ì$@2À7@Ûž?TZX?‹ˆ?¾¢•?ÆUI?ÖD´?Ð$?ÖJ?Ðî&?¾·^@üÄ@²Ù?ÓÓÔ?®"A?™¾?‘B’?k>ÛØÑ?ë§?Ö½=Hˆ2=n“? Ÿ?Š?-p¸?9Ë?4"d?Œg@ +w?í¶A?ÃÜ?˜@?:²J??ññ?E.Ê?*Áž?E?'Ê?¬JÎ?®R?³Mõ>Õ%Ü=«¸?Ó+‰?þ¾Ï?þ· +@›E?ÃY?·:ª>ìSÿ>úí®?WÝŸ?eÙ?¢ÒÖ?˜õ?ƒOQ?qpM?kÙÍ?»ª’@ôö?øÑr?ÃT3?ÃSõ?ÃV&?µDÖ?§@À?" +?‚:›?$wÂ?;¾?~"?‰AX?$]?ûÌ?Þ@?2;?ÃZ,?·Á•>Ò#? Œq?±Íî?7ÿ>3¼x>G]<>Zý?\¦>@ðÐ?¾kW?'Í„?o?9À?¥h3?ü’ï?SÒ?7ϸ?›@•?º»ò?öÛ?‚4.?µ^?ÂÌú?Àßn?¾|?zÌ–?qê?‚,W?zL*?#[ò?Fa6?­ã?¿ò/@$q?ñ ©?Ã2Ê?Ÿ©¾?=4·?ˆ5J?Ã*?Ž4Ð?*e.?FëB?e=“?yäã?‚¨?‡µk?ˆ6B?±>þ ì?üì??l?vÎ?­¶y?¬§?Ý„Å?Þþ¡?ž¾î?—­?}Ê5?p>?b\k?‘ØÓ@š?Ñ%ç?Yþ‘?¨1>ßj(?ˆ¢?ŽÝ¤?•Ÿç?ÚB=¨ºO>«¦|?ʾ?ÂÍ„@ÄÛ?l»7?R? Äk?5h?F¾?´°?†¯¡?Éh@Ke@G?@¤?r™?j(!?lˆ?>¢=?N‡m?yÌ?˜Žf@†‚?ÝÆë??Ð0@8Ÿ\@+*?3)Å?Ù±?º!?ž“Ü?a?Çm;@a[?¸H?ˆÖ¶?ÕŠÍ?úƒ?|¸–?ä?&Ú?"cž?&¢þ?*ÝP?²,?Á´?–”?˜‚ê@[Å@"‘6?ÂÂg?¾ÿà?4?”c5?˜‘x?£M?ÁÞ??«ŒÄ?I'”?hÎü?ÁBÛ?Ÿ&·?Ë°?Oòƒ?Ár?ª•¨?„C?ˆ¯|? +¦RÃ?‡=?.ÍŠ?P¯ñ?¤ ¸?Õì?¢O=?€c)?Ø^‡@˜û?û•Ã?ïçƒ?ëÆn?ç©?LÏ?+ß?æƒ?=*?†õÎ?¿?pD.?rÏ@hð@·Ä?Š®}?qêö>$©c>3^?Ùˆ‘?à4>?PwÀ?n˜t@úC@ Ø?¿7?»#‹?Ìsp?ÂÁ +?œÈ·?Ÿ?ð„? ©e?´t\?«âm?•ç?”/r?™ ?¨‹?Ò/`?²«m>þ6?^_S?÷3Á@"¤@8@FÒ?}w ?Wb? §(?6j??}€z?ÿ¬?Š!³?¥Ó?ÏJÓ?²Ý@?„Xg?Nç·>üä®>×yÃ>‘zm>%—>u'?|?e6ß?l·j?‹•Q?]å?“$F?·ƒñ?êÒ?ø¥_@?þ4ä?ò@?›jÉ>Û:>äzñ?{FJ?J÷>øÒ?bëÈ?ÉÓr?ä±T@²?½]´>ñ•Á?‰_í?ù¬G?þ£_@Íf?ÜO?z M?yñÐ?yØ@?sàˆ?vF?¯%¯@ +ªü?×Oò>ùJ)?t@„j@0£@‰ê @{ˆ"@—ý@=»?Ã…®?Ê?òè3?ô?ª?ô¿G?÷¸?ö3?òiJ?î—?æåa?©|?¨‘‚@“r@3¼@×7@xc@:¨í@83¥@ 0\@"Ê?ÅB×?¸Ì~@7@J…?·G?…!? o>¯¸Ý?'s?±”? ñ}?—ÍÄ?’ô?—,æ?«ì=?·­â?ßí?tŒ?;¤—?t'¦?CRŠ?tA?¾?E?F‚?!‰ ?„lŽ@ +«@gÁ?¶ƒ@ª@ÿ–]AçðAHÊA?:ù> Ö:>uYk>Þ ¹>×Î?¿ñC?ÚÔ?߬?Ü {?Ýðô?áÂ+@ +•˜@¥Ê?уD?q8¨?P:‚?rQ?“˜>ðÅ?Ýn?wo}?;¾?¹ `?±_¡?pS?n8O?qnL?ܼ?à;’?è–?ͯ ?IJ£?ï€"?øç‚?ì¥?ìl£?íÄ¡?äÁ÷?ÌÚZ?¿ Ä?¾°'?²ÞÝ?¢àÜ?‡0t?išµ>•ÏO>ØÖ™@%<@'µ'?ë¡û?êí@AcM@OM.?ìvº?±—3?óŒõ@ + +r?¶C?CS ?EË?P('?3Xä>ëë¿?@O0@æx@Ò@0 ª@0Ž?½\ ?°dÎ?mã}?AÖ}?ÎÚ‰@9Š?Ç­ª?…í?¢Ûò?о?²Šý?F?rj|?ß™L?áï½?¬•õ?¯.?tõ?cöV?Ÿ€ÿ?®þ.?ÇýÊ?ÔK‹?ÖKæ?Ú±Ì?©†¤??ˆ¥;@<°‰@0åm>ΊL>Ýÿ¬@@ ë›? j•?NŽ?±‡¤?ê–?œ‘Á>箌?Ž¿˜@(Jµ@0?´@Z?±›)>èr¦>çD=ŒAx?½Ì®@\D?øm0?ðö?é~?⬡?àSÌ?¾@³?Áÿ ?Éë;?ÁÁf?m>ïÎê?IÛÌ?qR×?yt«?€ÆÆ?zf©?eµú?–Û)@îP@mv?åuµ?åiü?àxÈ?â"?¹.!?«å…?R>ÿ¤é?V].?œµt?‡ƒT?8Î?Böö?29Ü?:´Z?C&Ÿ?K­7?´{R?Éû?f¯ÿ>Ñß?< Q?¢¶¢?³ ?ÒÑÜ?Òâ ?¸hË?¶2S@*È@7%¤?Ü —?¨ée?Š¶?e¨?B? èý?SS?¿ŠÄ?·çT?Ⱥ*?Ä6?nè“?l,Ó?øþO@J—?øfè?ÆLÞ?°¯?“ô²?—-ƒ?–\=?”Ú:?ÖÂ?Øo„>Lï·?¢ÒÇ?ã¨ç?†1>ì3 +>÷2·>ã£{?7‹È?Ùt1?ÏÏ5?Ê2?šž?ð®É?üxC?ÉÊü?°ä?›Òç?˜ù×?¶¨y?à´ž?Ï\¡?i¬©?tøÏ@*¹³@*¿’?‚×i?^Ä÷?ð¡@ gc?™‹¯?¾©?Ÿ¦@@Ýa?îû??º_ö?¬—>¦D:>»Ø>ã²>ã¾:?Ä?ù{?y™ë?™?qY6?25¶?I%/?cÖ¬?<<ÎAj9B±³<ì”À=½ñ¬?e„z?„Ó9?.º¤?à¬?›¸?ÊÅã?¨îG?ŒK?|«’?1w¤?"î}>bx>Ÿ«?œ¡í?Ÿúã?ïÐ+@¦?%±•;:Rª>|¾¸>ÕO>â\?ý0?+ r?_c?x»$?Mµ?Ó?‘«?ˆ¤ñ?gô˜?cÈ–>¿'>|?V·?Tº›?¦—?™°?c¸?Q)>ã}o>⾆>¬¡Î>Ÿðï?Qtñ?cFü>Î9E>Y)?9\?9—q>ëÿ°=ãÂœ>Pkê>âÖa>¾¬<“-Î=`—^?§‘â?¤0û>ìLÌ>±>1e†>úY>«æ»>áà·>áÊ>á¦f>ÈVà>Np>ªý >¸µà>Ãh>tØ›?!í?^à><Ók>©f<@mð=5;€=6†ø@ f?óÅ(>jÓ8>Ø‚?Šô?\Ü5>ËÞú>ÇÍÉ>„ô>”a¨>£¿Ý>†;=ø×­=Nч>—”f>þó@>åЧ>É°?"ˆ?Qá°?j>ý–)>žUÚ>]_{=2Òh>–/ù>És!>Û=+r:?RŸ?zº? §>û…t>’ù >±?>øyz>úÿü>b‡>i²î?t·Q?‡j?qÑ»?‚›|?«0Ø?¯¾½?]¶?fö=(èÓ?ñ‰æ?ò$Ñ?ؼ™?Íœ>>`>.YÓ?•$n?™@í?}Fi?…¼­>¼s¨>ž/?Ö?Èm>ÓÆ>ã‚?Zœ?xý?y«?y%ú?Sw&?D±\:CÏP;5Jb?Je9?Dª?š Þ?žc?î?æѲ>™11>v'9>øNc>ú·k?óGÓ?÷v?yZ¼?mïZ?ÇDÃ?Î'z?`jÃ?WÈÏ>œ¶Æ>¹Ÿ>ùá`>øúÑ?ƒ”%?ŠŸ>ùÖ>ýW%?>e7?3¦‰?§ì3?®µe?¸[?µ6µì?­CÐ?¢]¾>¨¼Þ>Õˆl?RŸN?C_ž?zØ­?k€Ø>¢°>¬ÃZ>|ô>a`©>Õ¢ª>È\<ÀÀE=“"„>ûˆ@>÷ðA>ÛC>ßiï?¶ƒ?<­m?“qØ?'?†ßO?TX°>…·¾>» œ? J>á¨I>¸; ?Çé?|°‘?OÍ”>ꌰ?&÷g?|3h?J½½>ý}?1Ý?}HM?­Û`?êÄŒ?­ö7?KÚF?„ã¨? Ø?šGS?™-?Ù%ˆ@ +¦r?¬±?F7+?lfn?~MR?‚ +‚?R?}¨ú?sÞÎ?í>Û¬?? ed?u?„‹?”gâ?Cùj?5xŽ?œ¾ò?œXˆ? –>ÿq>ÅÝ?¯¶³?²ã­?µên?´?ƒé!?‰õÊ?¿n?¤ÙŠ>æÆ?G/{?ô‘?Ö-á?‰½G?–_2?Àg.?ŒD’>ïé¹?x?9 +R?f›À?“´.?­ÿ–?ÀÃK?›4•?€‘e?…fk?…¨?Ø4@˜?jø?ÙÙ?Ãóˆ?ÖU¸?´@?`‡j?~I?€ä ?Q/z?F'U>†0<>†$?A>ë2y>1QŽ>‘J!?C«?`Dg?¬º?Áõá?íµ?±ƒ +?P>¡˜ƒ>w`?¥R@De?½)?bÿê?—–ì?¬¥Â?Mâ%?"H`?:_c?Bµc>§³o>T°8>ðDI?º?’b?K=Ì¡Ÿ>]:?Ñ?GVÛ?ýêO@j@’»?òÕ?ÙǶ?›'ü>RÜò?jÛ?q€.?ª7Ì?ÚÅÏ?À?¥P?Þ(´@Bó?Úš?ÂØ7?³ "?¨œý?½4œ?Âê$>Ñß->OÔ?ó×?€?Â=c?»=+?}uÈ?e‹? +£?2½Ð?§X©?”™?tçu?‰õ$?š{m?i•º??#ò?>‚>ÜÔ2>GàË?“[±?ܺ,?<=?‚*í?5Ë?,1?ªˆ?¾ÿô?…mÎ?‚kº? º??‡ž?uÕ,?dŦ?Â?…ܼ@)¶@ ÐÖ?˜Ö?‰ìK?MO?wT?£Y£?™É?Œ´ã?„-å?€}à?°…°?а +?¦}R?Žˆi?4ú??Ï’?àj®@>@[@^?½q"?´»ì?‹*?…|ô?DY? ÒÀ?MV—?†Œß?ÏB.?Ã?¶¼ô?§‹â?£¼¥?¦+í?¨›a??YìQ?#Ò?@?©×?ÛÏ/?“:?u­O? +?‚d¬<ÊÐp?´Û#?ÃPú>Ç›>t˜Å?¶O?«ð[?`Ýú?kTi?˜³0?«¡¼?ÞÀ?Ì×?¢!j?‹`??Kë?\Iž?x2É?˜D?¨)Q?Ï›?t×Ã?yC^?‚?µJ«?È)¸>ÚA<Ì?×'Í?úÀ;?–?‚ Š?À§œ?Á•Ä?¨á?’òô?•:0?ž9?Âùë?²wÍ?sgS?˜d€?䪣?¦‰c>\&\>ÛÉC?7äÅ?! >Ý™°>¡„>_M/>¾P¸?ÙA?oé?¶¬?ÆŒ@7R?Ñl.?¼åê?ˆ'f?tØP?p`?këä?€šq?´ù?Éeç?Ðkž?\ôr?U e>YÁÈ>Ë!?¤jR?žÔ®?¥’u?¸Œ’?ê® ?Ë?‡@?i¨?D Ì?‡<?¶Ôa?¦ä·?ƒÌ?„‘?}_×?t?‚”?‚æè?W²?‹5?“‹?ó™š@ÍÈ?’)?_&,?ZÞ?V”·?^ÿ?iÆ\?M‰ž?E~Y?¿K?Æ– +?Áš…?¶ïó>£§J>ÊZ™?N/?““á@I7@8,ö?öÓý?ë¢?ÁLº?ž.W? mô?YN#?Á,$?‘Û? õ7?o?/?ž“@¦Ž?ÊX?ïÁ?ªW–?ÁÓº?™®œ?€?€{ ?€tà?ÖB˜?ûÖ8?äM×?ÛN@<ß@ ³u?÷øX?ö'&?h¨Ð?R+?E$…?V>J?Ý}5?ó:Å>ˆÌ1=b²>òÞ?¤†?òÅ+?öÌ ?­[Â?¤Ö?)ôî?0>x>ÿÈ?$Ð@(ãý@%æÎ?ÿR/?ëïk?SGï?|¤f?ÂZÖ?®L¯?M»?|]…?ËÕ°?Â:?“îÚ?Œm£?E¦S?5í•?‹?B?} ?*ú?²ó“?¥m¶?}ûß?}ë?}؇?¦Ô?ïS§?ëî\?ì9¹?œC²>HƒT>è@S?`ûä?‘šþ?½Ø^?œ%‡?LÈí?f¸¢?…ÉH?4îÚ>{_å?Cñ?ÅYV?¤«°?] +Y?g°”?u`6?Œ/ß?¬õõ?ØŸ‰@ ;?òéÉ?¼Ã?Ç"t?Ï ?ªéò?~`?zÑE?wc2?JK?$o?"ƒ?6 Ç?‹zP?ÅÎé@ ÏÞ@J0­@/Hñ@?Ú3u?z ?Frï>á“ð?'ÎM?tô? A|@8õ?ÈMÅ>ùV¾?“[£@,œ@¹p?º·g?·J0?®Ü²?Ã[@Gù?ñþ>?¾†¡?± À?yO¾?ydÈ?€ Ú?‘²~?÷Å‹?è%£?!ª?TóÀ@]n@Sì]?§/?ŠÁ@Áú@ G]?š0J?•[Z?—$²?˜î8@Ëj@'û)?رs?·á ?©[í?¤m?ñâõ@o?é\1?Ú¥‡?70>«}?a÷†?±¿¨?÷Kx@Ìà?¶à$>õÉÖ?¦ÐÓ@ƒ@†Ü?݈?µÀ×?]„®?vk~?¦Jà?®Õ?¶ŒÆ@]š•Am•ùAv…‡A»BÄA¶•Ï?7ÜŽ?4ó?‘½ý?’æ7?‡ò?‰ ¡?ÎY$?å9O?ÐÞ?Ãè?‰s?[ªj?_7¨?bÌR?É£@SÊ?ÅU°>òØÞ>ò\ÿ>ú‹B?Xl%?ê4?Õ4e?p&'?n@5?Tè‘?QA9?³û?³®M?8Ï%?5vÜ?’lC?¥0ý?õç@(=?ë³ò?ä |?Õrà?ºy?Ý#µ@ ¢¶@)Ì?Þî®?ÎP—?§F~?ª e?²1|?²)p?µ© ?³²÷?æ‚Ž?îÉŠ?“¼Ý?u_N?CNœ?6BÆ?Z?lkÄ?‰õC?¡®F?ŒÝÍ?E˜N?\!Ñ?­’X?¼›?@U@g?ë¾þ?å|—?À4†?½™P?zá?Dý#?£¾–?Î7?¤7ï?jv`?+% +=ï‡>‹íJ?ƒ¯Â?qÚ6>í*>îU7=šª&=‹:>@˜<@"Âw@©™@ ½†?¼Á?S´Þ?‡ù¿?­­Â?À¶X@0_@ÊB?¸ +ã?¬P|?´:Ê?¿E?{§:?^ÞX?¤B ?·§@?{ç0? ÔÕ?€´U?ýVÖ?þ/‘?âV?ß;=>ø¶.>ç4:?þÝh@i2?¨Ÿ ?ˆöÎ?‰–??‰³Ú?šSÐ?¬î?¬ßµ?¬Ô¦?¬þN?¸â¿?¾ç¨?±Á¿?«vž?M‹†?#2ë?Eó>åÙÌ?F +E?’¡U?“-·? w&?¨5û?ÖQÞ?ÚmŒ?§Âz?©S?«é?«íÒ?HÑH>å¢?„Ký?ÛŸÎ?Ò B?¼Ê?°…"?‡çw?ƒŸ>SÖ¨>B?Ñ¢@ž?¨2,?d‹Ä?÷]?ˆî ?‚¨®?Œ~?¡-¡@5Ò@²F?UÒ?mtu?iJ?dîx?µú”?ߥØ?•ÊV>ä!?2RÒ?¶1¾?¸gB?º¤?¼ãï?Q->ãé7?‰3?§÷Š?¬Œ+?±š?¬RN?›bu?²ƒ¼@ü›?ùùÖ?¶?Z?³ç >‹’^=Ów>?¦‚É?ã7M?DTH<·À>ºIX?Tfy?2~i>ÆÇ>íe—>ã©>ã¦ð?ûÒ@ +[x@ݱ@˜?•£x>‰XÌ?øµ?c©¿?œ–Ý@Gê@ †@y2@ †â?ëU>âGÕ>é(?ð„?¼qó?ý©Î?Èõö?˜€?‹7a?:‡?GF?J-?:g_?*\¡?%„í?W¥®?cÐ?‰ES?QØ?.1\>l„n>Ó„ƒ?ZòU?`£ª?cÝ$?_i?T‡±?I™??ñ ?ø¥±?¥ôý?‡¶L?´C?ÙW¦?Ȩk?ªNW?ƒÒ(>ãòÞ>׆•> ¥8>¯å€?MÃf?SˆT? ~>÷eÃ?ŒD ?¨Ã$?Á¬ù?ÐX?ž?v?K8*?Nèð?cîœ?XÂÖ?"|õ?(Ân?r7?…3ÁÊ«=·iW?6?Y*ª?,e0>ã´Ü>£žÊ=…J&>u²U?N³ü>ZÔ>¯âJ>ÒV÷>ä5>ãJ‰>ã;~>ã,>ãœ>ã>âùë>âòK?±ƒ?bœŽ?T9?e×?¬t?Fï&ð6>3>h->®G>J >KÉí>È}’?]xÃ?)r9>Ž¶¡>Õ/”?C‘@>ø?Ý \=§›>j¼»>KI¿>+ð+>yo®>ɶ>>xú +=?XÑ<ˆÓµ8Rc3>š„×>þó>o³=ð–>kJ>4tê>ÕÔ>ý˜¤>ýf×>ý1c=Ìž´=¿éÈ=®Ü%>Ãý›>î%=y9L<ÿs0>åå™>û‰ã?A}K?8ð²?@>ûà? ÒQ>ýVí>Œ+>˜Ï>ú>›>Îÿ$?[ù›?eûX=k»Ú<Ùá¤?xʉ?o•*? ­?5JR?Jlj?^aÉ>©Ç>ž'Õ?2¨~?:M\?5‹w?0?yYO?w(Þ??K?H<4=GïÜ?ù7¨?òƒF?qÂ?ß?y/?u«Æ>°³ >®Ì?¡òI?›Åa>ýâè?ðq@úC@IØ?5!û?Ah\>ùLh?{[?³Ü?¾0.@8G¹@.ëd?„Ê2?…Dã>k¹>—èT?$F?õ~?A£?;Œ?&¸A?Š+>¥¡>¿‘±?š6?•–^>úÿ?8Ÿ?z,?„!?í Ü?Õª¼>Ó(Ý>Ðï8?>‹?Iv~?^??ü8?š¯å?—Â~?Dý??™Ý>¤'v>®ãf?^ðâ?HôT=vÉ=æs7?1?k?tÓ,?Z‚!>û¶Q?`Q?[¥?SÑ"?WÍ_?d…Ç?q8þ?\w>ߪL?æ—?‘÷_?`*=ö‰>ÃêR?|»8?-y=:D`;–ב<Õ_>pÿd>ý)>¹Ì{>aÏT? Æê?x¤ó?7Ä>Ôj?­0?ýÃv?Ìä?¥Õ ?œÛê?™”«?4>”]K?Z?‘ô?¬/†?¾h»?‘Àü?~¥ ?sPË?j?d½?^ó?/š¡?,Šz?H3?FY?Òm×?âŠ?v9Ï?\Îz?rˆ?`ä?¯?~#r?o!’?‚ N?½‘l?µ‰[?‚Î?šÙ,?èuÚ?Û¦?Î?½¡’?“úè?ˆ‰÷?fà÷?,²”>‚Œº>ÀÅ?§•?'£È?*dü?xeW?¢‡/?ˆ‹Ï?nŠÊ? ¬Û?¹î0?‘–?‚a ?­[ˆ?´ +?˜Þ~?™p ?„r&?€Ü.?0D ?0³C?ñ­¯?ßô>³ú>³w?j‡?_/V?SÛê?ctÔ?£¥ð?‹Î?-¿>±L<íê >ÕÙv?€¤™?˜†b?¯¬©?¢ë§?¤z¦?j$s?$u?œí?Â$D?%·«>‘Ÿ?'ùØ?>é°>¶:0>žfn>©}+>´W?dL?Q®…>Õµn? ¨D? ?¬W‚?†ì?€–?µ,?i1u?¢µ?Ž…Á>ÉMK?iI ?Ç í?ÖšC?êB¿?©`?}/Ã?—Ђ?¦ü?»Ó?Âàê?å??ñæx?Êâè?ÂôR?¹ëC?»ªT?}Ôâ?€?‚6?ƒ¯9?‚ +9?‹:?¯EA?£I?‘F|?ˆ7ú?[G?hTQ?‚I?H~²?!a?„‚^?»ñê?a6^?*?Yr?‚,¢?mo?iºž?ïÈ?2?tná?‚5“? J?š?:/?Á?ºÉâ?® 3?i"N?„ÍB?ÍUÍ?°÷ì?1ú)?çl>çrL?iÔ?@_?X:G?j¯Ã?¢L>¨ý?œo?"c—?˜³P?¸a?‡Ê?xvy?³iƒ?ÁD?ˆ#u?‡§”?‡†?…íÓ?ƒµ?%×?f}?a‘?\¤8?¦U @"Ý=@=ç?”æN?”"‚?‚IE?rD?›â³?‹A?…/Á?R`€?"Ì?ä'†@Æ6?}­ø?C?lô?‚B)=ú? åä?ð>Þçx>Îót>©é„>Ù`–?(Ê?Rƒ?«¨¾?°—†?ÃL?•C +?n¢?¸À?,b>·€Ó>4Ÿ´?kq½?Ξñ@(œ@vZ?»X?‚ Ò?Ý;ò@(‚?™¨•?Â)@@ {S?4<œ?ÆÊ?ÁÇÀ?½‘?!Šo?&!?*²`?7'?e É?Tð?ý?(ËÍ?øö?‰d"?E(?”á'?¬B?»d§?Âß?Ÿ¸?å7?5Áå?ÞK?Šÿì?·ô?‘?íß?´¯K?²þ?7Œ?›¯?a?u&?®Ì®?°Ìí?¶œ?{"?¯­>ä6ä>…Ý?Âûý?Å!ž?¹Ó?ªz?“›×?žƒ?§”E?mxy>¯õæ??|}?ºköH?>þXÞ? %’?žŽ?¦ÙX? hõ?c}?Îí?œÐ=?ÐàÆ@SŒø@6‹E?£ƒ?±è ?ÇJ?Æ??Ä1?Áe¿?Á3›?½á¸?µÓŠ?Cº?µÝ?ž æ@«I?ßzé?Àïp?š{à?‚µr?´—?Ì•¦?ƒ9ˆ?=Ù?¢çã?Î_?â±?ç”?Üg?Ö&;?} E?Fšâ?A|Í?JVM>‹²Ï>ž +?LP?jyq? T?‡T?ùÌ?ûE>í3>J¡b?ø>­?óH/?¨žf?ˆÜ>ÿ™Ô?y?ºZà?½¾?®±8?ž?]>‘^J>ðÅf?¾\?œ‹>>)¹?!?þ.K?)Lx?~]?”Ý?¼qì?’Â?"ï?-žU?96E?o¾'?•Gñ?_A>ýLa?f´?½ßI?£31?r¬=?›l¹?ÃÌ9?Ÿ”â?^—?y%U?‰ó?“rP?¦Ïá@@U$@. Y?ûY?Âu=?{1…?Cµv>ûH?„ç/?Û1_?ÐJ?ÊP’?¦Ü?}#?Éûa@„Ò?ïlÔ?¢˜?`+P>„¥?Ëì?¡š5?·ÿ?ÔÉq?¸Äb?½?æ>d@k#@CóW?º½–?¬ÓÇ?†ût?®c@‹Š@9Û?øeé?ëÛ?º*Ã?£q¯?dm?*ê`?À´?¬Š©=©Ä>“ºE@UÍ@¶?¯*Ø?¥j‰?RJ×?Y˜ü?w#N?v°7?v‘°?v}¥@-@8²Ý@ “@ ú\@A…@³ã?®x?˜~~?¶¶u?·~Z?‹h?u0ó?}2j?~…õ?ÄšÌ?õÓ²?Ô*¸?´¢;?îW&@³.?Ô8?.†Š?)ÚÎ?Äd>ô•³>€¡'>ÉÓ¯?H­š@Ñí[B.JBô«Bœ]BŽÐâ?rÅU?r¦­?´•m?µÖ?…–±?uo‹?*ãý?á?Ê|A?ñ¨?Œ~?2‘? š£>ñNŸ?<ż?u•g?¯G?ïô÷@ +¸À@*òÙ@ +J?‡/O?›1 ?Ùן?Ëp­?oõ"?r‚Ì?³Ì?³¶,?™D'?=J?H¥}?7»ù@}Ñ@% Ê?­?(–z?Ȩ@ï?þbÓ?Ëú·?éž@&@u¾?ŠII?Ž™€?¾?»ã?ï£à?í¹ý?€Ÿ°?tø€?þ @ }X@ë÷@á@t@ýe?ïæE?±+9?Æ‘?é Þ@(b@8óÞ@&5ê ?Ú©2@Ç5?½à?F#X?–Zg?èàß?цx?…?”8D?Ëi$?Õ ?Š|÷?-S?²E ?­!/?ù†·@þÏ?×@¯?~l“?jpv?=…Ô?P¦l?­’G?´ˆ—@€Ã@°?îK ?ëì@@ýP?ÿÙï?ù½«?ÔçU?¬ô?¢ V?ˆ.l?‹Äž?“ÃM?‘«˜?«ŠM?±8³?Yˆ¡?9Kò? Å–>åßÍ?‹{š?åÄŸ?É!.?†²£?‚ƒ?|¢?t@d>õý>åó¼?QüG?jô?az­?W$??ý~?6&¹?zFz?»9s?º®Ü?«¥Ý?«ž >(#>x!ö?§e?ͳÚ?´l«?Ÿa?Æ?ù“Ñ?Ô'?_Vò?‘°@WBp@a ?µ¾?«/5?¬>:?ªòb?¬?¯]u?‘4·?R›O?&ÑÝ>ž >>à‘|?ƒ¸i?…ùq? >0?šKq?D/Ÿ?,(^?nhd?‰)›?¯§¦?ãÍY?ìí@ä®@ ;?ÇØb?Îáë?©x(?¨‹™?( %>ép¢?™ ?Ïf‚?¢Íù?c¬l??^É>© e>¥­´>㬭>ã¨ó?×y‡?ã«ß@5F@ŠD?¬Qm?"5¬?qs“?¯"?¸ÎT?óOb?í÷?Y~?^(Ë=aCo;D?/ƒë?Y¤«?|o/?MR?™ù?›}Í?_Š>#ï…>µaz?ªÖû?ªÅ?0«Ï?5?\ý?cÓÖ?¿¯Ù?ãÑÃ?»ªÌ?œ<à?s¢—>ãâr? O±?câO?\k->ýžº?Oé?â@h?òž7?Aö¼>ó?4Ù?Yf÷?š…é?Ês‡?«">?AQÁ?-2ù>áõ¦>¶ë¢?½§>ùìù? þI?«9>?.˜±>ÿ5ú?†5“?´HC?]`>rò¾>ÁÆà?C›?0a2?ijà?U$f?œ„°?·Û.?U’ç?ø>÷~>ãÐó>ãË>ãÅ=?¸?Gˆ?Cdß?c¤™?ZŸ>”qï>‡ªs>u±ã>\;>Çàê>ãc3?±¢?+Çš? q>ã-q>݃—>ÝfÐ>¯RÊ= (=£¬å=‹dp=À×Ì>o“¹>–î=†Íä>>Añ6=¤K¤=ß¼=§+¯=_(¬<ßQJ;^ë}?ÒÃ?ûÝ?Xï >ñ2=´c=¦dÌ?ù`¦?â Ý?hÁ?rf#?««Ê?“˜>žZ>Î>“¿&>É—?Ž3>†ù>ˆ%>ÿù²>ÿ´%>ø«?E@?lU€?R6?:ý¿>ÜÏN>œ{q>ã>ýš-?*z‡?.£>{n±>Ué>ß]>ü|‡=ÄG,<\Ós>áb^>ì—K=³š$=±ùÛ?!K?"nú?ŽJË?‰?8åÉ??–>Ö(ò>µm?¨F ?«VÍ>ú[Œ>ûb?ˆa>þùR>ý$+?,¢?âÜå?Ò^©>ù½j>ù¬ß>ù¡–?¹|?¥²?r p?D,?H½¦?*µj?1Š =Ë–ä=”2y=9Æû=åÔ°?ù"?ðº>ù:˜>ðœÑ>Pßk>ŠZ>ù3%>ùqò? >?3QA>æoõ>èÙ#?Ðû0?ÅK=ôz1=õK§?××?>?Yƒ>ñ-4>þ>«™W?y–?w9©?7¤‹?% «>¹þ>Ó¢S>î-:? 4~?‡@Ç?ˆ‹9>›Â}>z.=Îc=Óÿ>úÒ?£p?xõÊ?q½÷?CŸ?*d8>úqS>蔸>R×>]ˆe?.i³?4ì?;o˜?9—(>úíÛ?“à?/‹?.ϼ>ÉŠt>æZÖ?ºÆ?2q?¼Ø?®;u?{œú?wüK?dã‚?PIº?!„ö?¬>üë?,??=—?KåE?|T˜?dFW?&Fê? +5?Ñ„?81?|ÆÙ?w´/?wÎì?zÿ?oÆ?éÈG@@çè?ãù*>¾Rò>Ö >ý„? ?N? V?ƒ‘$?Ã’Î?­¿?•÷§?+ú‹>º£’?qð¸?©.$?þ…–@4?¸¦Õ?'D?«öø?¹—?¶(?³"_>ë9Ä>hê>B‘j>@̦>ÌBš>ñ!?Ò„?Û6Ê?ÀTþ?¾`ä>´ñÌ>׿[?™Xb?Œ†ü? ~J?Yˆ?€ç_?€nh?€«?RžH>—š¡>ñ—?=Ãè?=Kî?*Øm?C_?P?Úƒ?>˜¡??Y>Ê*.?!Y?Z‰?M¿¾?7 ª?n±? ±º=@°>ôØI? ÷Ç>~‚Ã>]n?ø„@¾Ç?˜ãi?Žêƒ?ÕÊ?Î_É>,qš?¨¬A?«Œì?®m^?™'Z?I,?u ?3? ö1?m”?pÿ7?À(?¢Ïí?ˆßÇ?£pÒ?´ç$?Št6?]S?‰OÃ?™ÈG?°?†kh?›('?žÒÎ?a·›?>&Ö?×ô>Úh£?òÃ?ň>ó®>‘Y ?¾«?œG–;ò—?"¬Ö@¼?áõW?+Ëq?IN?c»Æ?‰=û?¬–?œÖí?‘M?IŒæ?å4?~"?Lÿ?‚}„?€à”?Æ?ÓŸ\?¬äü?¬V»?‹—?“Ì´? 1?ŽÆ?„°?1ˆ?‚S?q«?/?1¶¯?#"?(e?-§Z?2ëœ?8(ù?Bpy?CÐU?™d¡?Íñ?o¶x?0s?\??‚3¹?7qµ?QÒ?4GÎ?+’Ö?rÀà?€|î?Ák?¼—†?{?yVÆ?Œß?ŒYv?‚D?lêü?*Q¸?;ÉÏ?RYÇ?7†´? ág?[ë®? 7Í?±Î?Ãr´?*ß?\è?‡ç ?‘& ?—¤ˆÂ‹>òƒü?Jî?‡Ù?«ë?G¶>œ©?)PË?g°?ÅÀ?á$Ç?`a?¡¿?iS?^]?€NJ?wR?@¡?D¶?BÏ>ÿ)¹>ÇI>Éëw?>þ?+ñ'?› µ?‘éí?xR‡?kl?90ÿ?2vÌ?6‚ô?Ipê?X Ü?9I?#¼¬?¢ã?·$g?’â‚?‚',?³‹?Ã5«>¡\æˆm>~Ç9=µ&=>Æï†?Ú? Bª?÷˜?¥÷v?¯» ?«EÓ?¦Óv?ñXÛ?íP!?¼/?ƒ¬e?¥Å?ze+>ö!>Ò¿¸?¨k?›…+?è?Û¼?°tâ?²G¿?Í9ñ?Òž¦?ÏíP?´[ê?”®?ˆœ9?zm?}^l?€?øV?„ T?~˜e?tçd?~Ï?XÝ>Ä+Æ>wÖ3?Eï2?[ +x?~ç?ˆ¢æ?¾¿`?ÁÍo<ýËj<Éþ[?…¾d?/—?Î`·?Á ?–ˆË?ˆv½>¼Ã­?6eè@n ?Èöï=Žú?g­?øKb@ôû@ 1?÷l'?ƒ\Ã?…kŽ?‡w}?ÏV@ CJ?Ó±,?ž˜ˆ?™4€?“¶z?–U?’Š®?¾=L?ÜŒ?‹âa?BI?:Ž§?,ÇA?·’÷jØ>•ù¸?‡BÛ?‘Q>>ƒ=ó@NÎ`@^ñ£?ˆB¬?„:‹—<Ä|m?3®h?E¦…?Œ +?‹Ñ&?^l¢?iÿ6?« ™?œ›O?0ËÏ?†ô>d T>Ç(s? f?F…$>GC?;+Ê?WÑ2?°ôÔ?¼Ö?½S?ÓX®@ ´¶?ò;?Žtú?^©a>ïNN?*ï?~bd?9ˆ?þ0?Þ%@Äâ@æ™?Ý=?÷ù@Ä•?Ñq‡?XDj?¡¤ð?æÍù?”I>ÑÕ]?pF©?ÀÀô? f*?‚øO? Z?½jà?sÈ>¬—D>Ë á>ü=E?:R?m2‹?š‡d?Æþê?\ý=Çæß?B“Ô?¿[?F—?é?Ï­?ÇÎ?‘#?ãrü?¢‚‡?CZ#?B"‚?; x?†d?­Èæ?Ô>Î@¥?¾V? 0â?4"?=?!YÅ>ùÊG?™éª@L[@ +o?ä¯ý?æx¯?èGß?Ðá3? [R?±˜?͉N?Á“`?¯l?ÄpË?øq¿@aÙ@‚ +@ñx?ëU?Àˆ¼>ArF>„ì>È(?/^p@AP@7?Ì™9?Éâ+?IN­?C`õ>ÔZ >ã-N?Ör?Óê»?äB?ðUû?´\±?§Cµ@ |@zó?on¼?, @y°@@×>?»Û?X/é?›°¸?´8?þ÷@¿s?í‹Š?·qÅ?¼.?ÃÛÙ?Ïî|?Ö7¨?—gÙ>óêô? †5?.j%?Gµ…?Œ Ö@’ýuA›ððAÊwÊBhüøBeê¸?rÎþ?t_m?Îæ +?Í?ï¼Å?ò=z?‰h^?r °?ù¼Ç@ +ø8?óM?é??vXŸ>ñZ™?}!@?³â¸?—ùÐ?v«D?ÅY•@ü\?è)K? Ú5?-Îø?‘©?ŠY»?^V?"!Ú?‹À ?Šk?¥Ài?ªƒ¼?~BÆ?o6]?ÕPö?ôÆH?²Eÿ?Ž¢“?¼£?ï£a?¸í‡?nRM?j¿?WWK?„pä?ÝI?êÆ @ü!@”È@`/@H?í3E?æU/?•q?‹Ú"?µÍ†?ÇBj?ÒÍ°?Ý:‚?ŸËH??—B?žò‚@$@ ë+@2øB@%·€?1¸Þ?A‹+?Ññ?Ó¿‡?Â:?ÞÄ?ÇQ‘?Ë c?•’•?jµ-?¦éô?Ùøv?¼™ã?‚}Ô?‹&A?±…?¯ñ¤?´ŒÀ?º;?n?ƒÀS?OÇ|?<1 @¿[@'`?Ó$?i¦?µH@ª@~.@7Æ@¼B?b'1?ZB¿?Ï+p?Ò¸@Te@j¯ú@µ?ÉFæ?¬-Q?šqM?×h@ŒJ@™½?­–ä?­‹j?®ºë?²‘q@ +òŽ@ –?«×Ä?“:°?z%²?h6?¥àÞ?Óÿq?´·>µj?Q ?¬Ås?¬µ—?Ž[u?‹Æá?Y¤Ø?ES?Îv?œ.í?¦Y3?ÀÝ?ÛHÑ?þÈ?óÓ;?áu?âö?¬>#?ªç?V¸>ø >o"!>mæ?†F-?éÐ ?²-”?8ˆ?[xa?«¨?«x?o†þ?fÜY?Ÿ,¸?£ç]?¯Ç ?»²Ú?ÙÁk?뮘?ûd@ŸÏ?û\>/M=õò§?¯¬÷?¬—í@3KE@D û?Ó+?p±Å?€9? Oê?ˆ4?'ö?3?—7Â?”ì-?Á ¦?Å‘ñ@íµ@z ?² +?€9?–ñù?²CK?›kB?!Oí?:œ?ât?½Ø?Z¬?c +–?ö¼a@ Q[?“ æ?q¥?nZ?ž³—?»Ü@?ð“é?Å®?»ï|?Ãçñ?ÇÑK@ý¥@È«?ææ]?ѬC?úcŸ@?,?óñ?!ÒC?|T>ûSu>è6ø?¦•@?£Øp?!4?°?B):?c¸ã?Ÿñ?ªÏD?Šp€? ±?-JX?ÇŸ€?Âóâ>ãÏ>ãÎ-?4l?DÀV?½à¹?ã×½?òÅ?*>ö¤x>å¾?B¿»?ÜÕÑ?ÍÅÑ?QáJ?Lc>òpZ? +r?Nó&?L ?]r?cñ‡?LÔŽ?Lñ?^ò?o4?ŽÎ?Í1Ð?ÎG'?oTU?iŠa?ÙÄ?ã‹>à™´=Eµ,?Z|F?« +?Z=B>œ“>­>ä¦?a?«ñ?£½>'£—>I¸>Ÿ@¾>´Ñå?vÖö?š¡?;Ä>ãH +>ãÜš>ãÖÆ?«™?cȸ?PîW?ÊZ?Ô„>6“>Pn>Ý—÷>ãŒã?¹ ?¯_?mx¼?“¡-?CøO>ÏÂu>…Ï8šh<®@>Oy>^èˆ>ýÂ?*Í>‡™ >Ò‡>ÅBw>Óå>ß’|>ÇÇv?T?„°?P. >ßØ‘>¶Ë´>?@@Á?ð#?â?e5Z?‡?V?DRN>ë»>–Ó!?$2W>Ò=2> Ÿ:>´5ö?£¥>ÿÍ’>ÿwG?S¯š?~øS>ìñ>•“â>éÞ>þ Í>ýÖÜ>ýŸ¸?<?PÏš>ÙB>Áè >Ðó>ßFï>ú‘Ü>ü.’>ûî>ûáI?R3?GÝW?YN?Rì?”m÷?˜ù¯?=šX?7H0?•ÕQ?>G?5t?B {?XØ?¦?‚þ~?n@Æ<˜þ=¢g?5­Â?@(¨>l>6¹Ñ>ù¬j>ýƸ?7) ?FùÌ>ù}æ>úS>Ö×ô>¿Cþ?>w?&µn>ùS >ç£=&4>kæ?«þ?›ñÚ>½ý>ÂùXä? ?:?­m?°!¢?ypÛ?v ˆ?f?Sjv?á?!vš?yž?gO +<«û>˜„+>º.ö?VtM?TÎl>úü>ü·?X›>ç²´<*8=ÆÖc>úb)>únþ>ú²>ÝCâ>rº?‡’q?p_1>úÝs?¨r?…q%?jB¡? !£>ßã>«ÄJ>ßð)?¯…Ì? {–?0n?lKç@+M@›Â?¯¾ù?¨‚f?–í?uܯ>ü?!cˆ?|fZ¼?~ð?eZ\?¶“¼?œ‰Û?Z¡=?TÜ?NbÃ?˜` ?Â(f?‰Ú?FÙZ?™º ?¾ƒ›?(U =ô:…>˜_O>Ù¯¯?Y‚?‚HV?ÚÄ“?ûº ? ™D?†ãU?@6õ?5Èì?<Ä{?0x‹?$qÈ?lI>™sì>€kx? -¸?±¢?’ W?”Œ*>‰7 +>¯Õ?ô—Á?鞤?ë6ªZ>N=:>eÆb>·ë³? +i©?0B•?Qf?T2í?HHý?™È—?Ààm?œÊŽ?†öD?)9T?³>ý»Ì>òoD>ý9|?Î >ÖKÕ>Äô@…­@!#=?hŸ²?ggþ>íAb?•ú?i#I?iºž?°]?‘Š?^²{?…?±±?‹pP?%/?ªv)@!˜“?ì·?„¬ ?„Í?\Á?WE>®õ? ™m?)É>ê°!>Î?¡Pá?ÂH0?© Ç?¦nû?âÅ?ìÐ…?±ãw?¯Ýõ>©_—>«r ?ŠN ?†ÿ?})?Žõ£?¿¤-?½Ú7?φ±?Ž‚q=½ûp>¥%©?$tí?TwC?ÞÐ?g·u?K‚$?F#—?@Ä3?wŒÊ?ŽÓÄ?Ó>¥€×?Ì"%?ôªÐ?,_~?@G‡@Tx?€Û?x@â?G?«÷?‚ ?u\?k'v?˜&?Ÿ”?Sœu>8‡¸?;TM?¯j¦?Èoo?àÚ\?é‡A?ë•å?‰Écß?%J?ÄÒÖ?©Yü?‚P¯?‚R/?‚R?°¸U?à4?ÏY¬?Ã?Œz>?Lñ}?š€U?µÝ ?Ðä-?â'?ºë?¸‡à?Âéá?ÂÅ=@å@†h?v²?:T?ë±¹?×®(?“Ç‚?„úµ?2Æò?œ,@ìs?ãî‡?Dg ?$Ž?WÍ?{y?°èä?“²Ë?‚VD?X‹ê?8°ý@R@:¸d?ß":?»”->gR<;Mßv?rRI?‚9c?M>örè=ºâ¹=àþR>ˆ}>Ü5?Äùy?£{Ó?6 ?pUß?¨j?¢‰?¥›p?¯†Í?´V>?–”?†=9?›jí?¡“Q?ƒ ·?n\ð?‹Ø‘?Žè#?·;-?Ã@Ï?ú¦?ý¤?Œcˆ?‚"¯?ŠœÌ?’(€@ËX?þ”?=?@jÿ@WY?ñ(?Œê?¯„ù@ÉI?Ò"~?uZÎ?Ïç?²•­?…[? ù?qƒœ? xÊ?ø#=«ùü=ÞÆ=È8„?¶ å@Ó?[2Õ?ß¼=çQ`=C&Æ?­¢"?¿?‘e‡?È?¤ ?¦†!?Ä +?‰As?›D?¬MÜ?·5?3a?°W?”ú?Â}?ü<¿@7Êm@y¥?E[?Ž6£?ÐÆ?ÙpK?âÕ?¶. ?‰Z!>á‹Ï;‡Ã?Ño@K\?DÁÎ=ÿ 8?MÒ÷?`>E'+? §?*á÷?Žãf?Òì@ªà@d>>…¥>‘'?uÌ?‡Û)@ o@ÅÉ?é>ÞŠÆ>€Z=ã\í=ÁÄa>†ÿÊ?0„¨?G/è?„®Ò³?)œ¬?»Íy?Žß@>\Ç?S.ó@Í$@?‰Ïø?±°Ò?þbÏ?¡ÚÌ<¬šf?‰%?¾>÷?¼e÷?ºgn?Ø6ò@ãÿ?ì\b?Êç?ýõü@w€@ž…@܈?Ù Ï?…£³?~r?WãÁ?Ž8ð?¼ºj?"º>üô?±Ëƒ@x!?ìi"?»Æt?aße>¹™µ?¡D@ +V?ÿ»_?éóS?¾û‰?pê?Á“Ð?úB¾?Û´?¹×Í?u…¿>ûF)?É?3Ló?™^?¢´Ü?apE>úÁ7?ÁJ3@'§4@[C@yw?ߌ?‹?€µŸ?z?‡cò?û`?êç°@;<Ä@Xç?§z?¼üƒ?Ú­Õ?¥õ?ºÂ?‡Tµ@µ?Ôû¼?‰m?hR5?öËo?è—|?½¾»?˜0>/‘‚?36é@Në@4ñ@ùw?ÿõP@³Ô@Ë"?ùÖ?™pw?ìǃ?âzk?KÿA?@_Í?Øjà?ß w?<æÝ?,à?Óäã?á9¼?âõ ?ä¸Ü?€<»?Z¹é?¨Œ×?¸ó?µ>rðð?<ñû?yÒ?vq?v¬±?6KQ? ¢>?½£Z@="?ÁsJ?=JÔ?vðé?™9r?X1ý>”n?%Ó{?¶¥5?ÆÌ@å@£@3×½@+FÞ?;á@?P‡'@ùÁ@$2?àƒá?à1?„U[?r@#ÄÐ@>F?ð-b?¼O2?L¥“>ñgs?B‰­?qÙ?–Âå?±ø‘?‡B˜?+Ú„?# ž>ða?‰/%@/°†@£>ð ?X?Åk?ÁŸC?½Òµ?º +í?C˜ý?4{¶?¸+j?ÌñS?‡ç?bËæ?ƒ8k?‰tÈ?—æ®?¢mŠ?Ñ @ƒ“?ëÿ?`ê?y$?«ð? $î:~P¹=)¢=¼ÄÒ>¼ó=ðåŒ>Ó6?°#v?àlþ?Þsá?Ü{©?±å“?‰Ÿl?ñi?´Å?‰¹¸?‘Bg?~ôz>^®G>zµR?˜–‚?šj¤?L‹?Fœ4?ŒSU?’c¿?Žñ?ŠŸë?rÇ?]?²É@ ”@¾@/–¿@j4?pn?s1Ô?+!?Üû?˜w?¢@`?ë—A@d¬?ù ?å™V?Þ£?ß®î@7Ð@+¦@@"4n?”Œô?–w?˜]?šHA?õu@g@)@ñ?¤¦u?$Yc>ë=>DG¨>ìþÙ?®Ò›?»E£@U´@ Iô?¼È?½Ø?7|‰? +#?5æI?F3?!•?ÁZ!?˜éþ?ï@? •Y?eº?p +‡?¬°¯?¬¥N?¾Ÿ??¿]Ü@ @\?䛸?ƒ<Ñ?ÊTø@2®ƒ@$ÿö?¬/?®z?å7?ã >€« =Pš¢?КY@ ª9?¶Y?jn?ev ?>ƒÍ?.)å? â?©z?a o?jAD?«7?¶çØ?sf`??ŠZ?ùWª@@áà@5“°@!˜2@*ÿ?µû ?³V§@ fa@¢?“)?…?¿Ô[?Ó¢å?Ž(†?% ð?xK£?Áƒ‘?­Wô?IMj?R›/?ŒX½?Ž§ø@7’ß@U¯@?˜Y«?I]‡>ãÚ?Hø‡?¾YF?¾V?Ù³}?ÞiR>÷§>äÄó?–?9Ë?¡¦s?Ç`ê?Œ>¦?*â9?;z?e?ƒÝ?˜Â¤?¢…Æ?«R1?ªÅ?ü¼8@ Áð?È9Ã?› l?—m?•X*?¬HÂ?ØRŸ?Õâ?ªq?ªƒ_>ùs?†B?ßd +?õ…¶?zÁ¢?Á„?vcÉ?ªÓé?®†Ü?±Õ?±+?Éw?ÇKJ>ãÕM>ãÔ>ãÙ>ãÞ?¬î²?Ü-ë?ËRq?´Ñ?Ã^?á¿@?Ý)A?ãîŒ?áï«?ÌÃ?Ç?«?)0?P„?Ηú?éÿ¨?¬Ql?‘(?¨y=Añ =ç±>i?A'*?T²?¥*õ?ªL?Áß?‚¸>Ý¿—>ÀOÏ?Bkº?€éx?c]+?:y˜?K‹Ï?jéÈ?mj ?’ßæ?Àô?:?ä>˜¦®>UŸ8> ƒ =‚@í;¥2ž;½@>vˆë>ãìò>ô? 3}? +aO>ãÒW>è}Ü>øÂÍ>ß +T? ¬Ë?©?tAb?€´‹?Ök>ã{Ú>Kùs=B >¦¯Ü>˜¹}9¾Ÿ‘>ÂW>â¥/?F!?^>Û—;4v@<­™À>‰œ>C²U?I'Í?¨P?pš*>¸†>™ˆª>M‘¶@?ô?ã8?$C? +>Hx7>›†…?oZ>­˜>ñjH?€?t¸Ö?p7?‚4Ð?Ša?-ò„>ÿ{ ? ÊQ?eË?3:…?,zˆ>”lµ>`%ú>åRã>ý¦B>¬Ñ>«›O>‹Œ>Oª>žc=°¢Õ>åî´>ü6ö?nôN?mÆ?°*A?­ã+?#5Z?)¨?0Ø?:ø?zÿU?xë?pl?zõØ=÷Ãð>vŽ?iÂå?€ªÓ?÷Â?æ9=!…d>ùò?›Q?0³×?m>ù¸5>ï8>pßs>o ñ>ù‰ð? Ì?šË™?§À?æûÄ?Ý"?ä™>ùgþ>íôU>ýÀ“?†a¾?‡<Ý?X,V?]GÐ?£“«?£˜?¼ã“?³¾“?¡ªü?•˜›=g0§?TÇ? )‘>ùpz?Y°?y}a?yƒÐ?yŠG?mÍÏ>ù™ñ?}è?§O„?›º~?d9?'¸>éãá>ÄÊ'>5¢>Oje?ê?Eí?#y? ¡ã?tRw?y´Ë?r±?Î7?á$‘?¼³J=ïÑ>ˆ¾*?wUò?c©-?m æ?fAK>úì@?#Ûœ?¹[C?ɘÆ?ë°3?ìÃ?é)b?¿%†<«‹Y=Þûª>û–J>ݹ³>¨WV?î9?9 Ö?u y?½!?¤8?E9?>z´?A¹?„½?Îm7? ï >ü—X?”x?RÍØ?…©¥?°ò5?Ôu?ú¢Ì@44@I¼[?ò•>?J·?zxx?«û?’æÀ?}¡?ž2›?½®â?˜,‡?fœõ?‘Iæ?ªÄU?cAã?vŸ>™ŠH=òSÂ?„X?»é ?Žò?…aB?*I:?™W?WTØ?`žÍ?£‡*?ª?ÊN¾?ȶ²?N>ÿ]Ñ?Wn?‰øÐ?–6©?ˆrÀ?`{§?r©K?¶9ö?±ý¥?ƒ±°?j9k?Gs>Þ©Ù=T>¶>ãP?³ºß?‡>݆z?XÍ?3Á>¬Úª>¬(?(œû?&Fu?- g?‡/X?°aŸ?«"'?«¢O?±y¨?·R‡?Câ,?º±?ÐßV?ñÐh?9_6?Õ´?Z¼Ý?`:?·LP?ÄÏ?P%Ã?Aëu>…”D>Ç(Ê?Ê»?ÔÂC?ì5,?ÆYy?+W?—\ª@7·@îf?Ì?ù<’@!‚X@w/?½?.??ºW>&Sn?@Ô?Bã5?º?xß>ûÉ?Ctƒ?‚7C?!á"?o?¢Â%?­ox?¦ÂÇ?¡)T?µÅ?¸‹í?»P?©õ?å\? µV?„?†ÚÏ?‰š??“ß4?›‹?¯?ËÃí?Ήª?Ó¥@?ÅÞ?<æH?BO“?Gµs?…‚Û?‹2Ù?AWR?6€m?²ÿ_?à Å?tí? ó?Ϻ?/´?î?X¶?}®i?zËÑ?‚ ì?vL?µe?¨Í~?•D}?|P#?"÷Ë?…‹?àãÝ@ëý@Ÿq@ùª@¶$?³[Ü?\²?4Œc?·?A^ê?;¡½?ƒ E?†°Ò=Ž—<Ó¬?oó?Œ?v>ž?NÖ=Äçe>5Šý>¿ ö?%?¯P ?„´¬>Ü’?5 ¥?‚YÝ?—š?².†?¢zF?–”C?››%? ¡ä?Œ,?‚^¶>ë‡ï>nòO=¹U¸=$Z?´ªÓ?Ñt?Ë\?Ί­?²h?ªY?¼V?’:ý?'–´?† ?ú °?È<6?‚a²?K7?¢BÌ?€»v?8e³?D¦?ÂIö?‚r?‚]Ú?®Í?É4?å•Ÿ?õnA?^_s?MÛ?v¨E?€–ê?@î? c?T?>/?Ñk?À7Ã?ŽÈ©?l¢?®î×?µ^3?³v;?¦…? n†?±v?»šz?ª!?¤¬?Éç?ne?ʈ?oG?U?¾}J?ïM?Ó· ?Ågç?‹É—?ˆá?ºÚÁ?»M?A?$?Ÿ\?—8Í? ?"·?™´Ž?ˆ[?(óT?˜\A@že@G ?Ã?Ô^Ï?ìÒw?äÁc?Þ—u?ã»?ç” ?‰mß?c—?hÝy?‡*_?‚æø?ìò?ç›Ã?û½á?Ša'?g+ð>jÙ>‹?£*?!à?&G ?Y@*…ì@¬?"Nx?BïQ?ƒ»ì?Ý?·¨?u=?©ág?ë_ˆ@,5<@Ò ?¢˜P?o`ª>ç‚É>•ãT>-¥?”¦T?úW@|@€¾@AÇ@ÒJ?›8Ò?^è£?%ˆ½?óÙ=Ò±Ë?B`Z?W ž?¼Ð?Áñ?°Ýò?·éÖ?A©à?BÕu?‰Ý¢?ªz @0¤Z@!Gg?É1£?§lÞ?>Tû?!U‹>Õ¨(?aƒ5?ô+†?ã?¾²â?¥N?Í?û•_?˜:?bôw?Õ“u?î.¡?€Ö?cš?ÄRó?Êêå?åþ?í-?ˆD ?‚Â?¿Ž ?½x—?u™$?v•?À•?Å#?õIþ?ðk?Ý8Í?Þ€0?ÇÅœ?Á>°?¿µ?ºº*?¥n?©ry?¿…H?ÆØY?ÒK$?Òe“?äÜë?®#N>þø™?N?E ì?2º?F5?aÑô?µjG?ÏkH?øØ?²ÝQ?Þ|?4(?€K»?Q^?vÇ?!Î]?4ø9?Šò?¾Ló?ÌY–?ß¹Ü?Á´i?¦ƒo? pµ?Œÿ¶?Ȇ¢@Þ³?­;_?>Ú©?¸È×?ýJ@ È@"¿‡@¯ @Ë?Ã6 +?;†?±¨?¡t§?‘Z?…õY?ßÑÀ@Eš?õ®?¼ÁÛ?v ?„4?ä‘?°…?äü{@ç®?ÈCÕ?‹O?³¶> ÍH?š“Ã@°?÷ ×?ÈžÎ?ô7‚@ ùž?ÐøÜ?zÛ?‚ûl?‘†~?Äçl@‚!?ã_ï?¡ÐÕ?Û¥@×G?õ@©?‡‚?K"¸>À®>êÜD?qÅÖ?v°>?xÎ?{›³?~+?‹—D?¦C@?”™?c\[?Œq¸?Õìs?ϧ?ŸQ?—ú‡?&žã?7º?¢?«xƒ?¹1µ?¶oe?<}6?@,@ò]@áS?¼€°?¸¨ˆ?¨Fû?¨pO?J ?,3?”Ef?¦ðÓ@ÔN@á?×¢¨?¶ª?·±Õ?¶W³?²H6?­yÚ?zƒ??ýä?Uì_?[l?l?·?Ã.¯?Íä‹?¦˜?W›.?‡©5?îÐ?ºÐ?¶Yl?ª ‰?-ûL?@‹Q@½@D›?¤Ü6?¤ÎG?˜Ð_?“;?¯Â2?µmê?Òz7?à=ð?sª]? —ó?­Zº?ð`Á?d Ü=ÁŒ*?+€Ø?¥ ?¡XŸ?„?£jK?ÃÌ?Á?Žl2?™Úq@ +¨[@pÖ?¬AP?¯çÿ?˜±´? Ê?Çý?ÖÉo?5f:>¤È?g2?¢*_?ãÍh@{@1n?÷„õ?º¥R?Ÿ?óK?ëj?³“?°V?©¡E>Ü,Í>Ôg*?½Q?Å0m?˜nƒ?‘Òš?²¾{?Âé”?Ëì?K©?“ã?Ã2š?›A?/}]?T›Ÿ?¤„°?—SÀ?>ar?B>ó±>ë:T?›•?· ú?Õ ?á¨-?‡?s>ÿØ‹>òÞ•>êf—?`Íg?ì +?Ðâ¬>ýp?ñ +?X?T§ø?¨B?¯&?»M?ÁP?ÏÈÙ?Û1¥?Ǿ®?®À?¯lÖ?¬ï?ž•?h O?h˜?hsB?h_ü>þë>è3q?‘™ž?®¢?Ç ?Ú÷9@ë@(Ú*@5i@J/Š@.5 ?ì ?#%à?wË?{Ñ? Ãò>ç ?{‰?›%A?ËB†?ôNø?Úèé?²Yr?¢,g?`ï…?X½:?|7¦?‚0ù?Û·?æ?gŠX? á+@YD@Oé­@²Ø>M_>¿4'?«2H?¨Rp?m‰â?uê‡?–µn?“o?˜è?¤çð?U¬Û>å o??7½?–®§?‰¥®?? å?5”?`‡º?WÝQ?8j)?:µa?7Â>ä¢ã?¸¢›@ìr@¨Ÿ?ä?íF@ ¢Ü@Xt9̶=Q³„?K}J?dA;?6‹¦?/­P>É™b=ìLà>À©?a·?!8ù>ä ±>ì¤?Ž“Ç?ŒF?Öœ!?ãïß@,Ù@g?µ~§? +ŸÔ?‡_@¿*?õ™Ä?]ð@?c‹?ãÎ?Ý™T?~MÀ?VW?8&?7š:?EqŠ?BØ]?c !?Ž‹‘?Žé?³ùÂ?ª(?ªE|?ªËW?™oÜ?˜[ø?~Þú?c¶¹?JNp?$‚å?1é?c¹…?c¸_?cåJ?hÊ|?¡åC?œÈ+?¸Q?Ã!²?‚-Ø?A"/?†Âm?ª×q?)+?Œ=ý?ž2_?ÂÍw?¸îÌ>ãÞW>ãÛ•? ¶á?'ä?˜ï?ªî@%m@F•´?ü~ƒ?ðâ>ò– >Š<*>úýâ?¹'b?»ï·?¼àQ?·@?Ö:Ò?ãJÉ?˜)R?dR?*áý>Ò™›>±„U>´ÍÓ>¡¾u=ÁÌÌ=¯½è>äŸ>ææo=G O=:A?+*ê?L¾Z?#kˆ?Yø?M«?!JÙ?%V?1¸ï?`qR?œÉ ?‘Á?E›Ç?K¿?–z­?Ÿá?¥5µ?ªrT?;`§>Õúç>],=œÊ>½x ?C–?*+Ö>ãéÓ>ÿ¿©?cÞB?cÔà?8è‰?>÷¤?“6?žçH?.Ï>ã™^>GñA9O£>>@†>Ïú…>‰`$=’°A>ã'ñ>Ýèp>`Ûã>Œõ=œ4=LËõ=sdF=¬Æ;Ì£Â>«-?U“Þ?%nˆ<&#>œ•e>Ž6Œ<óή>¤(]>à÷ò?^x`?š¯ü?5ÿ|>¿v0@8D0@/²@Bà?Û°•?†>ÞÈY>oU­=ðÍ>Üêƒ?d¼¬?/‚Û?DE?²Uº?ÿQü?-ù.=d»ä>ÁPð>þú ?Êt?+à[>¿X0>†Ð >çöÉ>ý¥–>]ˆc>÷Ù?1kŠ?P@¤?l¿Ÿ?u=>'V´>Dö?Oí?: -?$‡è?Êí?zqâm>î~V?_ûV?f–Ý?§X@?˜E>ù½A>ù°>ù Ñ?¯?'†§?>¿ÙŠ>ææ@?[‰Ô?y"?ºIÄ?ª!O>ù_õ?%¤­?âmÂ?ÊŒÛ?!HŒ?@¾™?ºýÔ?¶Vó?ž**? Ä >Tu?ymc?i„Ó>ëúe? +w[?y… ?_ ­> ¬>†üg?[¥Œ?SXš?Sxf?Q¹ +>âd½? /?BË?9½ó>¦/†>Ó—?]QW?wMx?»›l?©ü<>õ ?!)?¸+2?¯?‘y?‡¾“>¸U>ÒØm?YØI?mL6?€æÄ?_~>úô?Uÿ?&ð?E>€?®”Ð?¤Wã?lZ?Z¡N?s>ú]º>ûžn?+S?Sz#?Nm?[ ¦?l"?”ÉE?Ý¥?|.Y?z¡Â?lÈ#?j½(?|{?[1Ú?½>ÜØ> ÚÍ=·Ñ©=(Ž>ÝÞ÷?‚ƒ÷?lŸ?a(?Ä}E@}ú?”âÉ>÷…ö?¶Î?4vÂ?:¬ÿ?@æ?ªy?ÖËÊ?«È6?‘Cë?„m?~@S?r:?reÑ?.ËÉ?ù-?ýÈ@Ië?]Är>þ×s?ž¨ ?®‚??–dÎ?–V–@ t:@"<>°¾>‹a‚?¯Ö§?¼‡@¯œ?ýMQ>ÿ¾_?êU?à?‰?½Ò´?¥¡F?€?7VN?§ÀÙ?©rA?ÀNÇ?®-Ñ?„}(?\«?4 Ç?€æ?¢FM?Ž?‹rx?vg—?Wqë?r–?€’°?[ºã?7©–?Ë?pë?yã?¾Ë>Nh€>Vçb>ñ@?ÚQ?Ô¼¤?ÝXç?­™Y?§CF?6§¯?=†e?@õp?=Õ?M |?ZŒV?ƒæÖ?z6#?Q?oè?ÝMª@‹@ó@̪?Ãa%?ˆÌ0??C0Š?S¡?´(F?àÃ?u¶?U &?bÅ;?YUü>³½¢>ˆjy>Õ™“>É>í?M‹?\ê?Ð ƒ?Ó·Ž?²‘?€´Á?w¦?Šý»?°? ÔÂ? (Ò?YBp?¹žm?»¾f?Âʘ?µ_¥?©áÝ?Å6Í?ÜJ†?—G?FE™?Ðu?ùð?¨™Ž?Õ%š?<ÜB>ØëÁ?“ÝB?©™Ï?\Ô?=G¶?¹q?¶|Æ?á&?$J7?¾£)?°b¾?‚%Œ?…´¿?‘H·?[Zj>¢ÿd>¸.>Ìó”?Rœ‡?¡°?¶;³?Êaì?—D?wªû?Gûš?'˜µ?<«Š?Nš„?Ƈè?ãGG?Öã?Ìþä?Jé?Ê?~ 9?ƒô?»ý?—™u>bÇ©?_u…?hÆ?‚[–?šÌû?¶?§Á?¡»†?<õ¾>›w:? Lk?,úæ? +?d±?Nž?n6ù?Õ£?ñæ¾?Š$+?„[?‚µC?‡6?ÿÖÉ?îey?*Æ?ý>mnÜ>Ðby?]F¢?€²²?¼‹ñ?®ÀJ?‚f?‚Ž?†…?pÅg?Q )? ©Ø>°²{?GÍd?‚cx?°d?ÑC?‘Ù?‚`+?ð/@]Ã?Ž(Ö?‚] =hÍr=•ø•?YG?õ¦?ž-0?—S*?MÁ?6{>»Ui?P™ò?ߟw?¥5o?MÚ?zà‹?Íld?Mí#=º÷Ñ>’p=ý¾­=ØdQ?.áÌ?rÄå>¬s¸=Ê2@ ›;@C?Gƒ¦? +*}?÷Q?ùþ²?­w?©ø.?³¿a?ÄF@¸?í¼??3q\?/ 6?Ys?=?J”?Ž«J?Ã%?ä©Ï@ÖZ?¾Ð?‚ P?‚¢?‚j?ˆàò?Š©è?¤ ?¶fð?‡x?ñ‡?„³-?‰^R?ƒ<8?å¾?¡¤À? Þ?ÖØ„?Íã¤?œ;\?¥ŒÊ@´¿?ÿ'÷>“C >¼\5?BÌa?ç?¹Çj?¤0A?´Î?ÍÔF@%šN?ßË:?wá?¯“$@ á¸?ìÎÚ?Â^Ð?u¦%? ú˜?–Oñ?ï&@9F@Z +Þ?ÉÄž?tû?¢&}?¥?S&?8ŽÐ@,#@d?žµj?œ5p?HFÛ?CG?Dg?@û?8O?U)@2Âa@<-b@J´k@3Q·?³U×?‘Õ©>ÊUª?O?v.Ë?Y7?‚»=?œRî?¾Ž=?êú?ãÀ?Brn?€×á?:¿?Ìý?` ?‹+æ?žeÎ?ªö4?˜Ÿ²?Œ“‡?Ê/“?âì?€ß&?EU´?‰Ùè?£‰@@@¹±@vå?õ•?%;”?Zý?èq?÷K? +º>ëZý?¼å?½3y?€M¾?«â?€h?l{a>7þÄ>Åë?˪¦?¼ÈÏ?>£Á?\üÊ?§5?¯a?¿»?® ?n4¹?•8q?ßÐ?ñO@J@ú¿@³Á?Ú´ç>þÿt?Wµ?¿&È?¢‰H?eÒ?yq?‡ÒÑ?šL?ºCÈ?º_?¼±/?‡ j?Žè?8ë]?qÇf?Ñ!?ª]w?€¤j?6ˆ„?mN?šP?$/>-G{?[«u?½ÿ*?µ,T?´Âc?›sf?v¬-?íÿ~@.Yó@ +à?ªï×?©¡£?²Ä+@¡@5ûí@%7{@C9@Õ»?Ø«¡?Á'è?¶½Y?»_Q?¼Å%?˜…~?t„Ì?žSô?¼ƒ°?Œ1?V_k?ps°(˜?çÉ?Òq0?§J°?zwI?ÜÃ@o»?ëw²?™Úö?k¥µ?^?/0?QÃÔ?žÏÍ?è&@Õ;@"±Æ@ +¦?ήk?úï0@!Â?ãÅÇ?)*?QÍç?º £?’ð•?/e?Ko…?º#.?šO>÷úÐ?œ¤@i3ê@BóJ?w•O?cJ³>÷]6?k0?BŒŸ?Bë?s‡·?nð?­—\?§8@@ˆÓ@Fô°?«¶)?¦ ²?²„?˜Ë?´Q‘?¸W‚?A8…?šÛ?Àuü?æj¹?˜ÁL?u¥¡?vgB?yõ°¹ë?ZT>ùˆ>Ïh?«?QÒÊ?Yvø?BJ?{Òâ?κœ?Û’M?ïêŠ?ë)Ö?Ý£”?ГÅ?‘ì?Šz?ŠÕ²?ˆêÄ?Ò;¹?Ú)Œ?¨´K?¤ât?L@õ?c?é¢@¥±?ßÖã?¶‹ã?_™ò>ÛÎó?Ù²@@®]@r£?ã߬?²vŠ??]âæ?Ûÿ«?Ïø?›FØ?¨e´?ùjË?ñÜŸ?œc?Ÿ¸¢?z<Œ? ÂÔ?‡ý}?j¥;?4þ">ëY?ˆóG@5Œ?çÍ=HD¸=øs!?iÜ™?iÂp?«+Á?¯+ð?Ï0¼?Õ•²?£â;?ŒL?Ž4”?A?œèB?³m?.Ñ? ¦À?'??¬™é?¦œ?Tð$?A?Æç?ÚAÉ?žÊ?{P¶?l,æ?f?‡Z…?³Î1?¤&>çhP>÷ò¤?Ôî?Ðë@½^@K ?´¥£?‡À?¡WÚ?ºŽ)?¶X:?ªä>?§Ý ?“U?Ž#X>æQ>æ>?çÚ ?õx ?°–Ú?” M? ŒÈ?¬iý?¿%A?Ý7Ü?¶1ž>æj>>ò> >ô´">ýƒ?m‘¬?y¨?&&)?d?éÃJ@#Þ?Ý} +?N@N?xm?«µ^?¦P?p–‹?yEõ>û“ø>ä».?>Êš?JÐ ?qþ?†û?«wÚ?ä‚Â?ÊÑ?jc?u1‚?à=õ?×G‰?¤F?›I?Äßû?ìS?ÃDa?¡™?‰QÕ?V\˜?RýÑ?n›¥?mP?ÅŒý?Ã=®?òä'?÷j?¨•ã?Ò?š·÷?›š?–9p?ŸÁK?ˆ1>çC>ä2>ù1? 3?—sº?¡Úˆ?—ut??»?“¯?˜.@?½î`@•ƒ?öb¡?Çn?ÏWJ?Ú Ø?Õ–?¯ü?¢r?‘°=?ˆ?à?¤ÞÜ?Ë;?±žô?eó•?7Û<Ö‚Ø=õzé?Üøf?Úem?×ÛU?ÕCø?þ ,@uõ?½¥ ?ŠÎ?oa»?'?E5~?£Pi?£u>ãà>ãÜÞ?Šà¶?ŠdT?Î`?¨2H?nþ<Ë—`=¬0<=5¤¨>Á«å?‰uÅ?iÊÿ>È@>êM?ž!e?¤3Æ?sr4?lð=?) ¿?–X?€8?«Á?`·>Â>}D?Vš‡?Uy>ä'>>ä'½>Î>Ât?Kk ?d-é?€ C?‚YI?2#>ä0x>ßšó>Äóù? Z?šÚ?›Âˆ? +íÅ?ÇÖ>ý+«>ðÍ +>ä7¿>èE?>®[?W±)’>˜&ñ>˜ƒv>˜_¡>K>“3ì?1·¬?7_4>™qô>¦Ze?'ÜH?@}q? Fƒ>ã±ü>ã¦>ÞHš>ÚøŸ>㆜>ÓÊJ>¨±Ó>Å’»?8pm?, >d ÷>I94>-¾>!º>™Ë>µbM>ÂXÀ>â›–>â…h>á¯ð>˜ ¿=ÍqÜ>GÃk>¬ >¡s–>áÏû>ᬀ=V>V÷ +>šAÜ?;”™?u³q?ãm<Ã…y:Ë*ç>¯½O@$G?øYn?z)?hŠ>å†ý>п‹>‘ï >¬¿î>¡¸s>¦˜ù>Ï’L>ÞÚJ>îó?'8?Ï>þäÛ>Û²>òà™>þÿ.>nîµ>@Ò©>ää¦>þò?/a–?/ŒB?ä>ýG‘>FG=–ú>ò€$>ü’¡>ú¢›>í­…>ûïÏ?s?Ïä +?ÈP«@K1?üFƒ?7öê?>øÿ?2N?+?#½¿?8½Ÿ?â±?éÆä?ðÕ^?é$?zHÈ?xìÇ?jÉ5?s×ì?¬Â?¥Ç‘?’»û?0?@,?0±­>ù­Y?›?RSG?GO†>˜*l>@. >ö¢?yìâ?ZûÖ=Jb)>±p ?ùe³?äðw?QPùdJ>ë(y>¡Ïh>¹›¶>ùq?€?Wä?F©é<Ö$s=’áY?t¢?$ÕY?%?‰Të?=?½>:ÚG>_‘3>Ù>ª,W?dbþ?7M‰=˜]&>ús?% ?©@Á?–5;táƒ<Ä8=ýW¶>Îl‡>±B?ŠyH?»G?zÖ?jëj>û2?_n?Uõ ?\rR?bé?Zää? ZF?Imî?¼fk?˜¼ç>û­??K?±%2?Ÿþì?{ô}?bDµ?.Û.?zƒ½?¾Ã?ºƒ’?½H¦?•£?-sÅ?FŠ ?a§;?oõ|?|Ô£?yø”?zÕ¥? IÓ=f|`=ÓX=æ?6†?®ÊH?›8Ì?wÓ?,~Z>ý¸ò?$Yf?8´?°J?çAv?͘`?¾ ;?Š??i;8?(À÷?®?þ™M@Eó?®—C?‘Ü…?xq?fr3?´¦?¿Ga?@YÄ?0>d?ɨk?Úºt=P‘a;Üö®>ÿ‰G?ÉC?©ü?|[×?KLþ?AiE?r² ?{’T?œf?GrV<ﬔ>§ÿ?‰ÕÌ? ?ÀZ??ŸPP?V0à?yí«?‰ÑÕ?Ûr?Å"ì?o{’>œcÑ>Ùb?Šs?O€[?€šž?ÝD@„·?©Îï?‚¤’?Qc?Æú=´´\>↩?áù?Å|?rt?Àò¬?¹¨ >b5¶>‰* ?ûn?ŒS>žÌÞ>—–’>„–>­ƒT?g]c?19f>=Rž?4z?Æyu?ß­)@^t?œxK?eà?…>F?´÷Ù?¨ Ï?§ ?#’>ÂÝ°?¡$×?ÂWF>†ZG?€?$?Tã?I $?²‹? +_™?o\9?irè?1Ú?'v˜?õ?b9’?ÔA?4qÙ?ŒUæ?IÖÂ>¾ÐÊ? jt?,0?¨£4?é,Î?{á`?Û?†u?U?c©?‚ @?—f ?¡€à?2ßê?@L@GÙ?Ô>ôqº;©D=àE}?ƒ~?úS?i +>ÿxR>ƒÜ>äƒ ?-à4?†\?¿0í?šÈë?‚@t?¤ÎÓ?¹äÐ?!ûR>4î,? §÷?>Ús>.S½=ƒ3=c’A@,d@?’™@C4™@5? b©?‚?(ç?9?IË¿?8þ¦?*Ö?/Ü?41o?}Ö³?¹Ø?Ââ8?Ú®?kÔk>É4‚?) Û?\’c?7§¶? ¨F?A°º??%?#°?úš=»Í=;Ìž <•Fà> º­@úk@úö?n»Ž?dÜ?Däg?M°a?‚nz?[h¶?m™>ø6m>õ¦]?Š?ÕY%?–õ?3ñ„?0|"?=?Eë?fµF?¥XŒ?¹bC?‡Ç4?yúä?ëA@@_²?ïü? ìû?î–x?Ú=?a«?">??´ŠÆ?®šX?œ¦?]Z> 'r?wLb?œ?3®€V?Öñ?$^? wÑ?I¦>ç}>åXª?žÙC?½?Ša??„h1?¹¾ƒ?¹?É?‘6(?vÞ>‘?fí@/ã@ ´K@V ?Ù›Û?(?UØ&?ǾÂ?Ÿ¯a?5Q??þŸ?lr?Û­Á@#\Ø?òY¹?£`x?šG?‚ +þ? ‚Í?³¼M>åšõ=J‘m?NÏ?ùY?ëqç?úeQ>WÅ>O'?¼¸Û?à ?Ò²k?ÏÆK?–%¼?Œ®ë?*ù?8ì;?ˆ‡„?xªˆ??¢œ™?|??·§3?Â,V?ˆ²w?iE?ú³O@Á+?ƒÂ'?„PÈ?ÆIc?¹´ï?=¿ ?H­™?Ž™K?v‘þ?5)?_¸?*È?‘?©%™?Îûí@9ò?Ûáª? ¡?m¦¤?ÃÐ?Þ +Ž?ÿ€Ä? B?êƒ?÷n@Fºs?çA¯?còÀ?çW>ã¿ý?7+ˆ?]Ï?.¤4?#3B?ºÑ!?à@o?”áÇ?t;?»'H?Ïu?Ó|Ä?׆@.ç@8W“?L›ƒ?…\?Å=®?Èÿž=Œ5¹=aæ ?€?â?ƒ¡«?¿¢>?ÂÌP?öü?Ý‘L>݃Å>É«>˜ b>à] ?^–O?O¼W?);2?]VX?¿Ä¾?¨§!?F[„?‰®?ÿoJ?ëêê?¿}5?»F?®@F?{ ú>±™Þ?.ç]? _p?yî>þÊ3?`ù?·{È? !3?~…? ;Ë >ïky?w¿s?A@ ? Z·?íä?òçá?°?_òf?mÊ£?}­³?~y}?t-?‡†R?™;M?µY ?Âì-?ˆ™æ?Mr—?mI€?|æ»?¹Û†?çu ?pXú>‹WÏ?¡†@¢?õKq?èÕY@4Œ4@_„|?å+0?b?Š#?¼Íù?—ûŒ?{“ì?ã´@Ř? ö”>û<)?™ç¶?Û,7?´ñ?”²^?¨ßõ?¼ Z?® ã? ß?—ý+?›5m?‘º‰?„ Ë?»é?ëaå?ÜÇR?Ï´?͆ð?ËŠ@Ly@(*Ï@$/o@À¯@1W@RPB@ÿ?Ÿ½?“HS?ºwá?ß®ø@þ@ º(@G…@-p?^ã?~%Å?ÀT!?©­> '^? ”É?°5ó?®qR?ÀY#?ÁŽ?ÖÆì?ȲÐ?®>Þ?¶ú»?’gC?Ù¾?(ë&?0Mx@8N@‹µ?«°ª?¤S?§ýD?« >¶#o=¥/6?Ž`Í?·±‡?A@{?Þ”?WYÚ?ÊD?df'?H'Ô?OF{?V½?¹ÄÏ?ÿ7?¬UN?) +?pp¢?¿ëý?‘ìç>ìs&?ib@ +;b@¦Ä@B*¸@@<¤@5á@.û±?ÆG¦?ÄS??\M?\¬×?#U?/´@j6@s?¥ õ?qŠP?$HÉ?p>ÿ6!>ñ¯?-áž?sãN?Û¥¦@&z +@¡Ú?ãÊ?‡TÚ?x˜œ?0â?Çt¶?ÎP@C[@BVô?ñû>ïfI?¦Á?³dí?Ã)å?Ë£?°w*?¤âŠ@i@T…F@ÔÌ?êd?7±ç?nð?nQÑ?n`)?†³¿?¼3?ȶN@að@O|?·e?±Ò>ÑS >„¢?©W¼?Øa˜?¶¤ñ?¦VR?³uK?Æ<&?Ú“?ð?_?ñò¦?ëÎ4?ߺC?œÅ¶?¦Hc@.7^@2ê?Ïw#?¿?FÝ2?æ?GÀJ?oo“?kÓw?iúA?´fÌ@pÅ?ù#—?Ki?=Jç? 8;? +©?Ô© ?Ø(‰?¥Þí?Ÿj'?Ë#)?×ÓÉ?Ž¿…?.Ô?¯“‘@J/?á~ì>þb'?¡ë@™@ Á?Üð¾?ÝA@;- @ROt@ˆ`?ä¯Ñ?­„>çÌ>îÏ+?pý>ÛÝx=eÌX>+-Ç?çKL?ç6&?'¤?¡rÇ?‚bD?fêˆ?›‰V?³ó(?–ö?fžÿ?ˆ8±?»]Ô?§¥>æZ/>æJ—?×4r?é @4§@ +?ÐË??§$h?nˆî>ê-6>å¹Ù>å«’?C‚2@8b@1¹&?©5¥? ©?µ?´®T@ ¬@-ôj?éí?3Ž2?No”?þ?Š[ø?"r?·R?>•Ë?7qM?Ý_©?þl/?ó™ã?íE?å´¬?àƒÉ?âeˆ?ä=Q?Øâ?pH=?y,î?Èî?Ç3d@%¡ò@9€’?î>H?—‘Œ?¢È?«?£m¦?è=?’MŒ?²õÁ?·•c@ Ô[@{I?B„? Âa?Ƥ@@€ß?Ùé>ñÒL? 2ò?cÉÆ?[,í>ãÑÊ>ãΓ?e¼v?zÈ?A2Ø?1œç?œ$J?Îùl?ѵ&?Þ û?×R?¦›}?¢-³?Æö&?Ðæ‹@ +3@X›?äYV?Ñ×i?\þä=úM+? ÝÏ?ªÍZ?¨a°?žâ½?˜–?³î ?¶’?*[?¿?…š~?§,€?ŸÏœ?–¯?—Ü?¢½7?„‰0>ãàz>ãÝQ>ãå³>ããl?þkl@Ám?–#?cð¬>«pã??\½?ÃA.?‰Ò³>¤nh>Øïž?ê? ¡Ž?’2„?d€?6Õ ?!{w?U0>ØKº?j?–?«Í?“] ?d(Ù?)w ä@Ë?HmÒ?Ë‹?{ÿ>¼Õ¥>¿ô`?d?Y?d?‘?d9ˆ?d=> ¢<ÄŒP=®=\>€*> :=ú>V'â>Œ L>Êu?+“Ó?m>>ä Š>à0=ú©=ÅÓÎ>IBä> ">¶È‚>ãÒF>5mj= D=w¼=±nÂ=ç"Ü>†Ü>…?"ãL?%”I>ãMÃ>ã>å>L|>¦Ç?£k?Ê”?SØ!>ÞÞ>ⵘ>âL>Œ+®<Ôgx>…p>?€w>âÈ>áæ‡<¯3=çs’=åå?Xƒ?¡Ò˜?X÷>ߤ}>{D?¶–@MÏÞ@S5>©)>™z>‰ >r2˜>Rwª?g ?€Ü>æ¬Ì?ª`—?öÀ ?Ï=«ÄÒ>ÐT +>ÿ?|u?‹?:<¾?;WÙ?u‡L?}¯2>˲1>Àû­?PL? ±Ø>üì/>úªgGÅ ?ûÒà?ðÞ>?l¾¾?‚nú>ûO?wá?IÊ%?Z_:?ŽÙg?‡çš?f49?nÅ„?z{?h»ä?Ì°?ß­?íN? ì>Å×j? Jð?yë½?cê>ôSí?â>ù¶"? +Õ5?D€S?NÖ?¥Aö?ÒŽ=(>ËÉ?¹ç?ªû²?YE¢?lê&?Éþ“?Çà?¥Q?•ŽË?5Ú?;ï£?2­(?‚n=úÖ]?2…Ì? +lD>!G*?x½E?t?ê…à?ÚÈ5?»@T?½Ûê?›?®8þ?`n7??|Ä>ùâk?öU?‹%?wæJ> Ãú>78«>ú&>Ò¥=Ž>BXZ?wÆò?k¯?^«ë?^“y?Š¿k?t¨>ªÖ? ¢?¼Þ?§Ö¯?9°?Õ€>”Q>½(s>û-]?Œ?»)?^%ø?êÙ%?Ôût?}¦?}¿D?mÃ&?t³±?‹Fl?‰Ý?|"?QÅ>ü$?=Ò? "Ï?œ:-?ŒrÚ?R4>‘`°>°ï¬>üºâ?5Nî?|áÒ?Cô>ý5?q€â?®HÎ?[þ|>Ϭì?hY.?¬z?µ< ?¾7e?gÚç>ýÅ5?Lôõ?}ëÅ?‰ö?”&ä?Ž@?‘eí?3A©>þ[E?e°Y?‚&?á½@#„?Qü¿?ÒS?ê½?>Ø3>íád?£>ÿ;0?6¨??»÷?.ü¦?Qz?[º:?M:?;¤à?i_?ôÉO?Û“? +<ž?R‰ ?ÿÓÊ?ÌRÇ>ëD€>³xA>2’¤?'êÅ?Àd9?Ár?»ÄI?‡Ü¢?- ª?NÃ?qý?,r?=v÷?ºº?Ô??ÅÖ?i"X?öÇ@—?â‘®?Áà ?6^?Í>êR’>Û=³?\)?c>Ä9l>®²×?`èV?qÏ?‹Eù?_¯=ä? »w?.1«?™£?kÝ?> ?KC?®l+?ìïõ@ HŒ?Ég&?’{?À3?lÃ>¿ ˆ>®áH?MŠ?8?@,?.?&?;¸’>¦œ>_ÍE>Á,m>³®È?«A +?®¡B?:f?-?i?3?NBz@ÊB?å )?Óë?€‚?wÉ?£¦?· ?§]#?8Ø?I97?ò§?YÃ?•ÿ?~?|˜R?Œÿ?¦?c ü?Zgî?PT?e?“+¾?–~*?²ùˆ?¹Ñk?Ã7ó?»ùÿ?}}?¯¼ƒ@N…¾@ä)?4?VÉ»?½èƒ?Ù‹?0m?¡Ç9?û¥®?¾L?‚FÝ?œÕ?´Òá?ta?-7?…—?É>ƒà>0õ,>Ï`j>í?}?„9º@@%ƒ?¸ º?»¼x?äI\?ȧÁ?‚f€?^bÈ?gÍ? ‘Å?P§©?Kš!?F‹[?ft¿?‰›E?¥š¶?²jš?O´™?p©?wl?ju?Ùš;?òóÿ?Ë­?í?„³&?õQ?{§à?eƒß>‘Së>í¢ï?‚uo?pˆ?$¸ë?öc>°`5>¢(Î>W‘c>ôW?H_ˆ?±b@ +¤?å‹?±Âƒ?¯€‘?¹®þ?i¶Ï?`0?†€?”¶(??yo?^F?7?ÜA?º­x?½ @j6?òÃî?gÆ>õÅÂ>ÁI5?Þ?—@*?qÛ>žd“?.ŸØ?©Ìo?‡±}?R'?†aŽ?›Ìß?¦:´?«Úù?§+Ã?¢|?O*M?"Ý>š^µ>"&Ó>î]>?ƒ½?'µ?:µ@m¹@?ºúY?®ì`>Ðp?_?·ó?¾ñr?ÃKå? öþ?.j?;AÈ?žþ?ŒŒà?Wí?g`>Eƒ€?yç?†°µ?ÆëŽ?ô‰â?¤tú?mÝ\?0J&?Tü?´6?Š§?‚š®?ÿ­?½ÑŸ?È»Ù?­8öñ¨>Ït>úçX?»?"¸´?$È?°rÒ?ö‚¤?ÓŸ¡?ÁïG@ ùF@+±?àô?Ê>Ù¹î>?ä^?ªw?‘¿#?­…0?­?˜ê?œãþ@ :~@¢?á/µ?Ø’?N¸?•º…@E¤?Ú³Œ?;4?!Äœ?1?¥¸ü@†=?þUG?Ú-?Ÿ¿?4?°h–@ ë8?ç??‡Ä*?HÃV?ðŒ?G??#ºš?°…?â 9?ZW>±ÉÀ>åàí?ÂM?·Ñ\?Ù~@"ðG@0¤U?ö«i?ÜÜC?r§‘?Qn¿?{Éí?€Á@Î@æt?‰í?€g@äp@†>ê™m>ÿjg?€El?€GE?Ь?„A‹?‹i{?›ýR?ãEÖ?Ò?{?—A?—P©?®Q—?“—W>ÿÝG?A#á?¿Í?·üæ?¢¯?³s'?á*?»9ø?a}?žNY?èÝH?©F>Ü_>Üþú>þùZ>þä>þ×??>‡ê?…åX?€×?y[‘?~QÉ?|®?zï?~H_?w“?mÖE? ÿ?Êó?½6ˆ?®sì?u +³?&~? í?¾*÷?¯m?¢u?ÓöÝ?üÁO?¯ÜW?`*?”³Q?®À$?›’?• 3?žÏý?Ÿª?FH +>üvö?KŽß?|OÃ@+=<@rgÈ@>€~@ø¯@?‰@—í?ÄÊ~?{¡¾?‹Úg?™éo?ÁД?Ó°(@Âd@q/?è'?¼/?¼")?¼æ?»û]?»îƒ?‰%ã?6þ?¶;Á?ùbµ?í–?óÖê?ù…µ?ùÕÏ?à*è?˱ã?¹¥œ?¤?î)V@¨Ø@ \?í@HÜ@:S@ 9?}‘`?™5E?ƾ{?™Ho? ?ƒ@·@  0?ì]?Že¼>µ:…?Òp ?Úµ%?÷Fø@H¨@*‰°@f·>Mæ>’½b?Î÷r?ʪj?6l?#·l@G@P8s?;%C? »†?{?€ ?ÚÁ?õve?D·¾>þcš?SøŠ?kR?Ä-”?ã³£?¿dN?«-n?û˜Q@Uß@S ?ò#.?ª??(´Û?rÀ?¯ûB?¬Ô‰?–”W?Á½»@!1þ@®$@@#m@:$@:€^?ò˜?ñbs?q? C?­÷°?µ†l?ßKf?ë‡@?“4?q”ê?;>ñ]T?^?¥.Ñ?x^=¸Ñˆ?šZ@šË?ßɸ?‹65?ŒVÄ?†Æ?‡êö?¥¨±?¶«@C¥@ iÇ?,r?( ˆ?–¬Ó?ŸÕ?_ž²?MÀ‰?ˆ‹&?‘H?—vB? Ã–?¿Þh?ÞjØ?¶ ³?ns?œŒ?ì?èà¾?éh?ã&Ž?Âý‹?Ư‡@È~@;?’Ý’?x +?Ð:j?ìµ ? r]?l{à?™Õ—?²_Ê?‹QJ?F/0?ŽeU?ëÙ*?Èu¡>Q”>.à?¢#…?¤…>†öí> +fò?4ñ?a[2?—zg?®7Õ?íž@Us?Þ|Ó?…GÏ?TÕ%>çt>œz?•5ë?‘4Ì?Z!?f˜#?µ–?»Áq?ÔÒH?ä~¯?ÈhJ?¨« ?ïÍz@3Tê@%?®Ê?¬?žÀˆ? ¿v?¹ûZ?·êÛ?„è?s‚“?›(â?¬P¸?] r>çÏO?t76?ÙRß?ÝšM?õU?Þ©?@»æ?LÔº?¯÷£?®UC?¸Q-?¸ö2?Ó©i?æÌÕ?¥)5?1©?M‘?ÝÉ?Ï5)?œ!?j®?Fy•?:Ðñ?»aZ?Ö… ?šŸ]?mN?gßD?eϧ?h¯<ÇŽì>Ér“@Ö±@ëE?€©^?€p{?R?–£ ?oFž?^Í5?¥Á‚?Σ_?¤¥?0P¬?4£8?8î[?=H?ª*8?«–º@ *Œ@=@Ég@O”?ã+÷?«lh?šhÛ?f˜‰?R>=œž‘=ä`¸?£j?‰o^?]?š K?†53?d3B?x©÷?‹[v?•õ-?¨]?¡5?ˆŽî?†‡'i>S¿ª?ŒÔ/?­“ù?É›g?ãÉ?ÀšÓ?·#?—99?³dÖ?°[«>ãÁ3>ãÅ6?øua@|*?ª[?~£Ÿ?°(¦?ÞÉ”?Ÿ(8>íC?»û? +ö4?#tÞ?ª×ä?ªØÊ?{$Î?b¯3>¬–Ä>C"3??Æ4N?²c›?¡Â ?•÷?4Ïì?*z?jb?§&? Ÿœ?§²u?y”?cø ?î>ÏCM?]÷?2$?õ>£+A>ër´?•C¤?“$ð?«§?«ã?G‰Õ?9Ýí?xŒç?ŒAs?‘ÿ¨?—¾Ž?„½‚?T“®?`/t?cà¦?L%•>ÏÅ¡>Å*¢@I¤@´?HwG?øn?€)ú?‘RO?[»E?$lÝ?g Ã?«!ù?¾8Þ?Ò×?¹ÖZ?I2Š?UóØ?h©!?dN*=ï= >‹^©>³Hý>¦ž±>™é>lþÎ>G»¾>º§~?<[*?Eæ8?j—?àÏ? SÐ?ÁÛ?–Ñê?¥y»?#¾K>ãð¬>×ÖÀ>ÅìÆ? +„?+A?¼>å.>væí>]ë€>‡ãvº>ãeÜ>8$=¾jp>£)>ãê>Ke9ç>€- >âÍ->„âÕ<Å ¾>Zkž>wÜû>²X>’ºƒ>Ðú‹>ᦠ+?5¥6?Z >É ô;©`<†?À?Z q@|+‡@?¿ñ?RÖf?Jœ­?BqÙ?!Lö?-?X@º?‘~ó?¡—=Ò=Ëý<>N=È >¾>³”>Íqš>8¾> âM?°ã?Ç>ã?Û¹?Ô3 ?…#@?}²d>œvÃ>U(ï?eW?p²•?y?W¾?n€Ù?S3M= +‰?3?%çÿ>•ãñ>£*h?:´?9M­?Y0ˆ?Xq?œÌ +?”™å>ú°?û±?wÆ~?‡?³¤î?™Èç>ú47>ï+>±5¤>áj?yõH?dD>ñ”M>ÝÂ>ù¿ê?úá?šÖC?ŽYË>ù>õüÿ>ð>³???D{?©)?y€ü?~Ö ?Zù?ÅÞ?”1³?†r>ùu->ýèê?Mm?>”&H>ðÁÌ?»&Ÿ?™Hô= Ü£=Öi®>ûR™?²u?ŠBû?¬ @«ƒ?÷Ýx?uMë?€!|?gÏû?R?•ÜÊ?zlÆ>ú >ëbH>ºWÊ>Ú‚/?ØÑ?2Ñ>ï>ùšù?Up>ßÌQ> šÁ>â‹??¬Ú”?›z ?Oƒj?r7‡?¼"é?ž‘? +JÛ?‹^?uQ>Õ4>½éÛ?yv?W©x?*Š•=s'@>—_ó?{¢S?{±á?{ÅZ?žÕ÷?Ýý¶?ªJr?(£l?8[?Dê?&¾„>üTÎ>üg2>üz¥?Û;?:I-?&6t>üÇ ?2H?t½??P>ý÷?B¿Å?…cf?{N?cc´?p>æGŽ?·?Cï>ÉnA>|o?¾ª?²‡ ?H)Î>þo>¨%>XÃ>´­>à˜¬?™Ù?¼,ü?5ì­?m?cñ®?l\T>Q<Ê=ôÖ>«Og>©½(>HÍE>[h>ý?ß?Z{r?r‘j?ª=?ßy=ød4>Šq÷?¬Æ,?©?€·?Ž«?Á7?Ÿ»Q?&j?=èÂ?šfs?€N ?Ju¡?hZ@?‰y€?>…4>‡•J>‚>°T?’†?êÓî?„4Ù?—;?B?èQ?“šý?·dq?í€@ u?–1ý?w?©x?«9Á?ƒ³f?€ï?[®D?[\?µØu?ªÊ"?à$?–ùø>Ýæ¸? +•à?•ž×{6>·¿•>$‚?€U?Îl?þÇ?yT¾?sÂç?n6>°ËW?o«!?¬È?[»ì?7¿>ëÜ?…dÏ?ÀM?ÝÈ?Ð?”Ò?‘W~?›ôM?,ñ?eñh?°Û?ýÒ„?Ñu&?F»? ¾)?4à?Ž¡ÿ?ö¼w@6@'"ó?¾b·?ù ?þ»?Ë?Àó@î?Èoû?¹LÂ?Z{E?)G\>ÓÂÎ>Ë2C?ÔÚÈ?éhM?\Õ?bC?ÂC3?©ÍÆ=D¯Œ>¦L?«ý©?¦o?i8¨?“qÜ?ÖEM?šµ©?Eƒ?œó?0&?–dÏ?¿uË?_„§?R™?[ä8?‚VX?ʉÖ?檂?”}:?‚_^>ƒÈ'=âZ?‚oŒ?…­?Åe]?ºˆÂ?Æ?f]@m#?Ø(t?$¨Ñ? ª?o³?ß?8ø|?> ?Cs?b˜?që?Êæ@ww?‚.b?w‰?¡‹s?÷ ?ŽýŠ?‚z3?·#g?ÀÛœ=¸œÞ=Ëí?‚|é?†Œ‚?ª…Ô?4¸>U]>_—Ï>°?ž5?¨JŸ?ž¾?”´ï?†H?ƒ#?Nh!?GH?}†_?ª¹?M‰¿>ÔŠá?>ài?k0â?Õa?ôÓ+?ù¢?þnE?& ó?sª?Á<?»>uŽ>’Š=Æ×0>*.‰>Àˆ?J5'@"?Á¶W?iö?|þ?âýY?¶Af?hÖ?{tc?’®?£ï6?µáG?੶?õ«W?£ü?‚W?¨½…?¸ ¬?‹D®?‚P×?÷^"?ý ?1ض?>ɸ?‹¹Æ?‘[?§N›?¥[‘?°½*?•Lß? =³?'â?5•?¯‚?Cº÷?;|Ý?)R ?(‘î?1…?¹Ì>å×Ó?“K#?ÑÐr?’í?S/5?\@W?m“ @ˆ@@*C?¬?n?‚R?ô¹?y?%úc?,î=×v> W>Žó>ÙÝè?˜3ê?¯¢Ö@ u¯?ô’M?Ü€?ŒfÅ?«Yƒ?ÁbÛ?ÛÇ?šØ"?È +?zÆ&?Ÿí?™˜%?kƒñ?¨#›?Ê&í?_ÿ?>ö/?Ì@?Ø}>Y'/>/ˆ>1:>PLü@ £þ@5Ið?Cb>‰úh?G(«?W‘-?üw?ô?ðÿ)?ñêþ?¡‚á?šÊ ?J™?—:½@1j@5­?xA‹?{û´?ÔÖ?chþ>¶”@?–µô@/¬°@€Ÿ?DZY?‡ðl?úÆ? +ÿm? ¹Á?Eež?pãí?€„?›c¾?º˜ã?ÒŸ?b;ß?ÔÄ?;˜?O|d?Ë1G?õO2@Ml@$ ö?¯¸+?•MG?qð?\(T?‘ð?“T°@bä@+|?œHª?–²2@1@ =‘ïm=è‚?pû?€C¾?€<€?€7?€-ö?Œ`?ÊÍE?Þ…Æ@to@ +r?ícx?´Á,>4ò[?;ž,@CÍ?ÚþM?z !?¦?„òð?j\?*?E„r?”­ê?¯ç?Ðů?¥uù?P;’?0Z†?s-?~n?¿Ä?‰V?’Ñ?ÿÅø@[^@/?¹K?w¬?`®?[j?Œ“?ߦ7@ ÀŸ?ÎqX?”®Ä?HX?$á?K Û?põw?x3?€&?ÎŒï?ý%j?íw?å×þ?{²>üÑ ?‹À?¿ ?‰ƒe?C‡+?dfr?|[?Ò„Ü@¨?ûì3?ûÆ^?­Ä9?†P½?;Í? =?Sƒ‰?{}?Ú>ãªÀ?G†?4Hö?™ó ?¼8•?¼(U?¼à?¼?»ö|?à†ö?öÂ@#½ù@Fî0?øÀh?z?«@*?ÕÄ›?¡ª?Rl7?:®ð?&®f?Ï?D@-?Ý¥ù?Gï?o; ?»È?¢¿[?x· ?”Ó?ºbQ?‰7Í>Ì8¿?Yô‰?æ_É?áŽÃ?Ìo)?Ã&×?žÓ¢?²M@½.?õ ê?×'E?ÞP¦?üó?ôXÒ? A·?šs ?¸ +•?¿Éß?ï’Û?õ9 ?@¹Ý?Ha?bX3?fd?É ?Èpž?ë¢Ý?ô¯ +?óë?îoj?¿Ýõ?±Ëµ?áð‡?ôÞøê(?Îì{?î_æ?¾fÓ?ªXå?V£ç?éy?“)?½½?è÷‰@1?Ù°?p€+?~2Ô?=?Ž,N?yQ¹?hÌÔ?6»??P¸?‘2?Ž¡C?È¡á?Äw?;d{?+©?»Œ‡?ãC¹?yãŒ?Ö??n4?>?:Ÿ?oï?ïV8@in@?»?‚é›?…¦ ?€ ?ƒJ]?Í!A?Ðس?ÛD=?Ù±Ì?¬@&?¤{`@*êî@Lpá@1œÑ@!ë“?ú±*?“‘à? u\?×%¯?¾"?œò? fÓ?œÐæ?–ù-?ˆfR?„ @?Ç4>øa>ð‡&>êýé?½Éq@›2@ÙK?Ü·?Å4?xb?iå?¯4?±Í?Ú5¼?ÒHs?†_?ƒ{ì?Ôâk?ëº?È"4?»a?žðp?hôý?€aù?œt?”¤Ø?LU2?UÛ?ÞJ/?à6 ?¿qT?¶a‚?…—Ž?h3?ö™_@(S?Üù??„.>ÐGš?F?JnÇ?FL€@—Å@0?Ñʾ?ÅàU?Œ8?eÕ?jg•?V¶ ?G -?=0+?;?$MN?-n:?ÀùÈ?Çk>?ˆCZ?r;z?›ji?¬{,?Žîü?eÖH?;vÚ>ÒC ?ב?¾kæ?Âq¼?žÃ?œ—Ë?-Ë•?:0?sb?„ìÐ? 6 ?ǽe?£àì?#˜?M³>äîI>äü?xdÛ?‚å?’øÓ?™=÷?¦Ž«?«|®?«v´?«p?«"'?© 5?•Uk>É7>À*(?a§Å?dU?¨ @?­õŠ?œàŠ?”?’1c?â‡?Ÿ „?ÊòT?ÃGž?øÝ?†Ÿ¤?)ê?-Ú?½Zê?Ûe?á<º?ãï?³Ð]?dnö?€Îß?§‘Ð? ÀÊ?tî?xã?þ¡š?ù¤?o?k?¹:ß?ãËû?§x?-߀?K[`?‡ê?…²^?zJÕ?fW:?γ^?Ú>Y?ן²?ÚŘ?zot>ãÌP?PéË?£üv?¸Û[?ú?åaÍ?7Ð?‚1?¨W–?ªá·?Û¯>qá*?i +?±ì‹?hŠh>•3!?«?œ™î? ½¬?ªõ½?ªõ/?XõS?`gm?üe>ì±>A>Ñ=tÞÄ>äÊÏ?I¹B?8?Ò2'?ÈÞ‰?ËÊX?Ê‹†?áDo?Ûž8?‚¤§?aŒ?9,’?%Ó?0>ä3É>ƒ{<%qß>‹ãÍ?dGï?ræ]?›¦?”•?_°ß?wrÑ?Gá?7â?NöŸ?dÆ?‚øÑ?ˆ‘g?Gs=>ä]ã?rÍÀ@ Ïô?ü‚‡=¾ž–=§ ý@}ˆ@ +é•?ÔŠ$?Án?›ý'?ŒüV?/ +D>äRi>ðôË>é]ý>¬ûs>5³È>zä`?#gM?0so?=?J°í>ð¥è>ä!ò>ä8>ä(>@€”=¨øÐ>- +>ŠU“>¼f>ãÐË>Æ,>PWð>XgË>ãœ>ãF¿>²¦y>À…>ñUp>ê,V>ã,A>Ú¹ö>IÁ8=’É–=XkÜ<3ód?ƒç?&:>ɽ^>ÃBŒ>ç5Ú>ä¹>8'?5‹x@>9.@õP?6HÁ?"oA?A˜>æCZ>§_É?‡ÈM?Ð%%?nÿ?Ž­?jŽ?Ç> h=„ýX=ä{>¢›>§‡™?;Äq?kLÕ?Ùž +?íÆò?aân?WŽÛ?^â(?e´Å>ýy8?l?¼è,?¯ó°=§m)>HmÉ?IÑ"?( =Ä?EHq?FQ.?{\ ?ƒ`Î?§)†?ž‹ë?5N³?#•ú? +ê ?¶P>ûÂa?r?Q_?h >ú=V>ú(ö>úo?õ-?yýý?l¢ÿ?@ç€?Bz?'Þÿ?k >ù¸ >ù°´>ù¦Ã>ÃgÝ=ëãe?ì§? Ìó?­h?ˆ¿?!bi?9„?yƒ4?{_œ?vf¸?Ynm? ³–?ä¸?œÀ?—…É?ÅEž?©Ö¹?÷.?Ä4?vDƒ?ZH’? ¢A?N?ÙtÎ?½‰u>ùÒˆ?|²?‚¦4?ŠC]?ÃÚ?«:>>ús>Ò &=äÀÆ>‰q—?jÇ¢?>¶<én‘=ìS<>ún6>¿8˜>0¾ü?@VÆ?C?+âÂ?R£Š?›-^?ƒÊ¸>ÔoŽ?À?”?\LÃ=Ša>/‹`??¼§x?»i¤?¸êœ?í²@(rG@ hW?͈ +?ªé#?NJœ?$¡Ð>éàV?m?5EY?/¼?(Í®>·°Â>ˆ¥“?ò™?ùÐ>üú?}›à?¹“–?7~¥>˜Œ>7Bò>hßp>¢z¥>ª>žC§>‘ú‘?Š^?¶)D?Îu?åÈö?‚Ht?#R/?c‚3?~Oš>˜ ƒ==·ç>Ë9¸>þ¢V?dÌ ?uRý>xß•>,Rh>½s½>»ÃZ>ùç>ÿ0?N? Áÿ??R0?7 K>Ï >Ù–‡?“×W?1}?T+?8 »>ÿòï?~j?€ +’? d?À)‚?šf?-?3ê?Ž\?ƒ¹G?X™l?v!?ŒÅ¼?†ñ2?P?Qu¼?¿J?f2™?—:?ƒE?Z™%?`‰†?nô¯  ?@-?dh³?!UÒ=–\?Nös?û$M@“@¾e?Üxƒ?¼ K?Ù‰“?ë‹)?dèé>½Ü?/9?]?Äkà?ÒI +>÷Ð>v½?Ÿ60?·dï?2¢Þ?8êt?š1?²&ù=mw>CE>RÊ_?Ɇ>ÁyÆ<áð>¹-ë?qä¼?3â>æP +?™##?þdf?ƒ™Y>I½´?>ð{?…Ò²?™ÃË?­÷?<ª^?ƒ?IÎA?_ü>¤æf>P"?$ìÍ? î?SË?;Š?‚n?rC>ó+\?H9??ñLú?®ÅÑ>m¸,?9d ?Ãlw?‹Cñ?K×>‚+Q?‚ƒ’?çJ +?ŸÚ‹?cí?xZp?‚\ª?‚_j?‚b(?qÁR?sp?¸<Ø?Àõ@–”?ø]þ?ZÈ?fÖ?n¥?%m?œÙd?”Ø«?`T?y?¤?”÷Ü?_º¹?xÚ?Câà?€Àú?ƒ®U?ŽG(?»Óç?Ù“¸?c@‘?'?+G?¬]È?v8î?j'ø?°?‚â?Ábã?»k?‚ƒù?‰¹ ?ÃÄù? ‚º>?Ë6?7‰V?/&|?B=³?¦V™@ó?«x–?ƒ„?ýw?Ü>­æ/>+Ñœ?wé ?³”?+ÜG>ÕÈ?u÷˜?‰x•?Š÷ú?†Öw?¿­?¿Ï´?`N?v›=r0T>Îð·>û˜Ç?`h;?„½Ô?Çi|?žû?pÅ?3äq?‚÷?¥»š?̱Ì?žÖµ?_ß>Ü7»>r¿?fWT?§ŒÞ?xBã?_W`?"d?[?o˜?‚D?„Æ?‰lå?yXŠ?|)†?¸þM?¾Á³?õ‚ñ?Ø\t?PáW?cÿ¨?ugÞ?H4£?<"?LŸX?¡üÃ?¯`Ã?ÃL??¯"]?˜ÝÈ?¤fø?±?¾vç?ͯ¾@`Á@íg?•á>ße;?“€?] ?©?¯ø?³ƒ³?å”?Ú¤Ò?JEm?Ac?8Š?JBÀ?«£¯?•ŸF?&d?6i?Bé?0º?Üá?Z›ª?»f?’Í^?);ï?‰¾!?©L?ï‚?C¼Ð?¶~Â?öv?2'<”Ê?·_Â@…?™Ê ?mÜw?WT>ܘ‚?*ü?Cï?Þç?‹¦?n?r?ËKÉ?Ç­Æ>æàM?3ï@³ ?ò¨?Z—?tï2@1ºº@íW?·F?µÖù?¤„C?¿Lq?íwéAe?ªÖ@F±?Äàî?§?AXÒ?wm2?|‘?€ûa?¨„Ë?Ái?¥Ô?Gæ?Ì ?ÚI?«nh?ÍŸƒ?‘z?€Áw?€¼ ?€³]>«Ñ¼>P_†@Å@ [Ç?Æ01?ÀÔ¬@Eg@Pì}@Øz@¸B?ñ€â?îh+?‡™â?ܦ@Â?ýŽ£?ùtG?ëäG?¸¿q?®ã?‹¸‰?ˆ”­?|Ä­?¡B?§4Ö?žÈw?rq×?¦]º@ °P?ÞÝá?@ ¢?&Î>ÿ%?uô?×úä?½2-?‘‹‹?¼mÓ?ÿ0¿?åcå?Í?º?™^?£(P?µåT@ ‰E@=›Þ?Ø[?Ö?^‰Á?…c¨?=ØŠ>þ8·?Ú1_@"‚ò@Õ@¶Ø@À*@¥d?¨Fv?î?…l=?¤Ü1?ŠÐ?vbô?©h?ɲ?Ãö?½Ä]?UÆâ>üÛ_?P?(ê?´Íz?ñú?« •?„æU@#ˆ@#WË?éðu?½EH?»ó”?¹Ò?VŒ?lo?u_Õ?{ˆ~?¬Î?¾Zõ?™ö?ƒ:"?ÛƒÍ@ `@î@/¢?Í­?›¼~?ÅB?ãÌ|?ó{?úF"?¾Në?‘ß?ì&?úÖ?éÍ@O ?óÒ}?Ä™è?¢Ž|?‚T{?št?·Ý?ôé…@ÁÖ?ÆÃ?í?]?¬_?¯õ@p@ +óß?èOƒ?ׇ;?¹øÃ?Àiµ?Ñ%B?Ùº ?ï¼Ð?åÌ·?¹†*?¹n=?¹YK?Äòó@É¿?ðQ>>ö¹"?•ª?;_?-–½=Äq =ª ¶?-_?"ðè@BÍb@O¿³?—ôù?u÷Á?ã·ä?õW?—!Ò?´0@p@,Ñ$?›l¥?‚š?ÿÉ>ôwV?çØ?Ò'Œ?Óã>?л ?œ¬6?8öC?O™F?~Dá?¢– ?ÙÂŒ?¾­á?Ï?¡‡á?âdI?ÞÁ?¶?·fž?ÇæÛ?Ä ?~/K?xó1?°zv?µnÚ@ Å @ž•?ÑF?µå?©T—? HÒ?r¥?LÅ)?¸2Q@F?Ù°7?žç¯?œöö?›€?†åƒ?-½‰?Ko?ÓÉ?BS?ú?É?ôyÙ@ +þ @×i?mé?o’?“%9?ž¡¯?ŠŒà?{”ù?ÙN@ü@Çî?íê½?°5?) +#?‚²C?ß ©?˶?m‹š?nVy?…˜ˆ?‡qð?šš»?Ÿ¾A?œ×¸?™/@­G@I’m@-‹ @1ü@7†@I¥@à(?קÛ?·˜?…Z‰?šˆ@”Þ@ v±?Ýg¯?ß—à?ŒÉ¿?rº¦?kð?i®ƒ?ºû?ï³?íÑZ?ênŒ?æôÈ?Þ^?» +ÿ>Á L?Ò@KØÛ@HÒ?—b ?væw?äø?±yä?͉1?ÍÉœ?½R¦?²J#?™AL?hÐ÷?cE??ô"?Bï?ÙYt?Ï=u@–@ F¡?ž*ú?h“>Ùf>¢?ÃÝ?Ô¼L?Ù¸?™ºn?ȉ?T¶?$À?be?•Ùw?…S^??oÝ?'Qç>²Wš>šy™>æUÐ>æ:ô?žA?¬—Œ?¬Šš?¬‚?¡ =Op?SÙÍ@ei@ +:@38Ï@)· ?â¿?„?…Š„?€ê«?ÞÈë@ZÈ?´°ª?e'Ú?@;? +!7?-¯Õ?‚¢¾?jŸ >¤©y>Ç…Y?†¨ ?«~ï?«´Ä?«u%?«j~?«e£?Ÿán?S ?M†>? –¡?*E?‰oc?š? ?¦ßê?«-r?«)þ?«&Š?»][?Ù„é?½E>ä€>äT<"AÉ?‰ãt?ªù™?Ï/?ãô'@ h@)Œs@;º?n±ð?e€9?W#? &©?¨ÿN?··%?N`?|zw?XÞr?Y°j?–¢)?µ„?£¨W?–þs?£õ‡?þûh@ÿ„?”k2?”Ï ?uæ?cÊ ?fƒ>ãÏ>>’¥)>Mç? ?À{T?»éB?cÔh?cÔ?`µ?Í…>õ 7>ãÜŸ?x¿?Ÿ4(?[-˜>ÏÍ3? Â?{Ý»?…,s?¸#N?²¯Î=eè:Gœ?;êF?ZÈz?œ>»™!?"h?d0?±ÚÁ@‘@"?§¹£?±F?ì¯?ñÃ=?±ÇJ?´ S?šß0?–™ð?<¥=>ä=»>äG¿>äE>˜]=‘ÔÄ>‡¾?y7–?ÙI?³>ç?ªOd?–\?‘ô ?H†E?%«g?sÛÕ?—¨ÐËx=ì¨>•?§½R?¨Ÿb?qù6?‚d;?/äÅ?8Oÿ?tÞê?„;È?+O>äg,?<?/Üu? ã–>•:>‹=Ô%˜=‘£1>Ù\>ä=1>ä1½>ä,!>ƳU>­›Ð> ü>’ƒ\>®3È>ãô_>Åäö>ˆ:>¡á•>ãð>á„S>ñm=±ào?K‚?cwê?_Ñõ?X©Û>¡”}=m&= Å…?0{£?a2¿? ‹>ÄäŽ>;½È=9ØÞ>S„˜>, >ÆI\?¾v»?˜ª¤?×d?{$?-~|>È·f>'Ï?}Ö¹?Úf?l[ï>ëðD>ý•Y?Fš>¼>¤«ž>¿^>=v’><þõ?H?Bä?BŠª?L^ >±ÿ0>¸^/>Ç3;>Õ÷ñ>ä·??}Jã?w2u>à›Ç?¼?®ÑC?•e=lxŠ>ç©?p?|§?.Âû?{(±?ƒŸ?£µ7?Ÿâ“?p›Š?w© +?yCw?…·$?¬ÑÈ?¥¬‚?žŠ +?—j4?S\?†©î?z{?ƒL?Žã£?{Aõ?R9A?Yü?IÖR?,ßr?šø>Åð6;ôð=H^Þ=›=Ä=Ò;v>™;Ý?Q’Ž?V:Š?yí?j ?IÖ¾?†Ä5?Ñÿ?É~½?»/¥?Â.:?àOT?êiº?ô‰È?êHŸ?·ê²?¥áÏ?e¦+?>¼.>ȽÁ?o/â@u@=Ÿ?»sÌ?¥ºq?FXÓ?D “?#Œ?>Lj>íØ5?V?Dž½?»x÷?¶c ?±)S?}r¦=ˆb>ø>‚¸¦>úÔ¬? €O?<,?R¤?{Æ?I>±D?y?)¬a?FÁk?±$?·\?¼G?~;>©¬>Ûy? ¨?Þh>Ùæø>Ýô®>ÃôŸ>‚„>¤ùD?H|>?bŽ?|“w?ñÕ=×<:>äªà?`ò?3Â~>ýS>€4=±\>›øé>Õ¯6?WQ~?Æ\?7a|>ýšÚ?†bA?¨S½?´o?Ïâ0?·vh?§×‡?{L$?]ì?…j2?‰°#?Ql>ìÕ>ù>þ¥Š?ì? Ö«?—Ýš?š_I? å>ÿ°?P; ?Nµ?6 è?åti? ?~„÷?¢“À?ü‚?¾÷ã?3r?S­Û?°ÕS?Àd?Õ¿2?·Yå?›½ò?yÁ­?G<å?XЙ?j]&?¸>³¡?˜xb?؉£?P•¹>â=‚?Æ©?û|@?Í0 ?¼„g?RM?ˆþ”?ƽ²?ÏBV?ƒ²3??£?ds?åñ—?ÑÐí?>n±?CSq?eñ?9¶,>šœ>¬?D6?:?!~ä?A‘¸?}ã¦?ß9@ ׇ@.:˜@7¢@%´@Z0?’3¦?‹×>…l&>AŸÄ?ŽA?·Ú;?‹Æ?wÉ+?À¸?¸ë¾>?uö>AZò?£e?š¯Ã>vÝ°>õ6º?ú +Ø?ð4Ó?Âlæ?˜_K>ð‘½>ýÃ÷?o“?1-?E:­?U?>ýÆ?žÃ?Š?Ã(J@±N?½!?9¨P?4Rü?.üÌ?J M?FŒ$?˜º+?™µÌ?ʶ÷?É;|?¿}â?´p?+÷>âE=1‡®>©yY?—é¤?v÷K>ÄAÅ?ô°?WžA?ýw>Tƒ6>Ì™>…Œ?€ˆ?˘}ˆ?‚zb?ƒ?°FR?¦F??›¢?…Ø]?I×*?‚þ?¥!Õ?YŽí?ƒ&?9^?[âl?Læ?…Ñ?+1á?,Ù'=À²?qJ¤?‚‰F?ƒTb?……4?‚Š¥?ƒ®?,R?‡n¢?FÖß?›Á@Ü|?âlû?¹?rNÑ?¿Ù?„áË?Šê?7k?p +0?§·?’åÕ?…%?‚†|?")}>ÖÐ?›˜ ?·î°?ú)@ô9?ÆNT?ÇFÕ@é@Îx>ÝØÌ>Üu?|Þ?6÷?°jØ?”*‹?25?\=1?Š)õ?PG¸?tŠ?&`Ë?NÌÁ?Ž•Ë?­L€?:½m>¾1|?8W?PZÙ>{©S=…X9>Ü5?aú?_>?ãÏ?÷é¹?øö ?‚X4?ƒ_?Ï?™ÊØ?Ó;?ʤ?š!1?‹º?g2ý?Jã†?B~?¤õ@vâ?Çð|?ŽÜÅ?¸Ò—?Ùv?¥M?‚.ï?(<Š>ʺg?`Ò?ŠQ‘>}3?Ÿ‰w?³õ?‡0'?{“é?¿R?ŸÊ?—ð÷?žDr?³ã?·@y?ÜQã?Ƭ?bñH?j©©?YêÒ?rñ? ±?…VW?8í=? —n>§,þ?'%‰?Ôô?’vÊ?¥æ¿?Ý Ñ@Ä1?·‚?‡rƒ?-ðÆ?´è?ÜO? ¢¶?kÿt?¤×@öÎ@ Ïì?ôÎ>Çš@ ½Û@¿¢?˜çd?”4o?¨­ô?šÍÊ>‹«?-MD@S'}@2iÇ?`h?H?Z +é?,ùl>™,>è‡8?S«Ö?fœ$?ŠÀÑ?$i=*˜Ä>îMr?}±/?¡†ò?½tG?0, =ÈW?iŸG?·É?u¢§?;5?Vêì?\qF?XDÙ?T¸?ûJã@?ö–F?äÑ?x¸?€¸©?C[?­Ð@&‡h@7?“;Y?Ž Ñ?z?n$.@gß@l?€rÞ?‹F?ûm¯?ß ±<„ >i ·?‰9Ó??"=–?To?³º?®Z?Ÿà?“”ô?€ è?†ó?˜‡?¼L£?ÿÙy?ÝÉM?ŸQs?„¨†?6²Ö?ˆ³?ÐŽ”?Ý«e?ñDS@¿¹@^j?™3>8Á?¤@ŒÆ?¢?™ã?Iþ?~g?Äxy?ôÆ—?¯˜è?~e?3®›>þB ?à}Ú@&Sl?ÑŸ=?‹ „@qÙ@* ì?å ë?£›Ñ?™–Ë?šôJ?mÜ??NKÆ?ŠÀ©?—°Ñ?Ïþt?è)Ð?¨9?„s-?Ö23@í?Ö»?½ph?Ǻn?ÈÄ@`­ë@Œõß@D~@”ç@ã6?÷ ?¢ÿT?{½¬?¡±o?°:R@Cù;@r,@I ®@3¯é@ A?ì8?Ïþs?Èùa?°«Š?œ•„?‡ð•?z„?»‹?â¶@?ØÀp?Ïhl?£ ø?‹| @Îo@U+ü@ ?èÆx?ÑuG?» +K?{¼A?¬)?›Z?úáo?½ÞÝ?mz?¥qZ?Ü`Å?îä+@ ^?ÓWµ?a‹Ì?½œ +@‰?ü.M?”Jð?–?—êþ?™¹T?›8?£ÄM?¹c?¯ÿ2?ŒP?9è?kT?o»Ž?¸éö?²„õ?'ç3?&õ)?î´?ðuU?{‰?uψ?v©–?u—?æÔ?õd-?½M?¯—†?¥´?ªA?:‘W>ô»¯>ô,>ô‚·?«/‰%X?€ë^@A?ìbÉ?Ͳ?Kü?¶7?º€Ã?Í= ?Ñ0@¤1@rï?­…z?±/µ?µÑ×?µw†?‡ ž?… n?ÖŸÌ?é±Ó?Ãÿm?´ó¿?£õã?–; ?×õ?jx?b\?SEa?Z³³?b>?]©Ò?2ðú?W|f?Õáq?ÖÿÝ?âÈ?íLŠ?KÛä?NA?ƒ¯C?„UÍ?5Åú?]?™|ò?¸2¯?“ß?tª?•Fr?³É?±vÚ?¨¼×?ºXü?íÑ/?ò¸@ÇJ?ú[K?ÌÒG?Èì3>··>¯È³@ +üæ@®þ?¼K)?“â8?˜ B?ŸBÝ?¶«›?ÆüÅ?ÚåÝ@‚v?õ&ô?¾îÖ?»VŠ?°­;?°Rv?k©i?kB8?ØE«?éëŠ?Ov[>ò°²?J•?}?Xצ?/®Á?|¡Ü?½U?¨¡£?#á)?>ê8@Üó@#»â?vGZ?b4è?; J?*Ø)?÷ää@)qË@†@¦Ž?è}c?ƒ† ?•ü–?ݘV?îI´@SLè@Y=½?…?jN?h*•?hh?÷Þ>Ñî°?j›V?Àç­?È]Û?Ì`Ä?Í”?çn?äΕ?J©ñ?RÑI?e¿ÿ?g N?ê K@ +’?Åû?ˆðk?œî"?¾]E?¸ÕZ?¬Û6?§GÓ?9?Á+?¯>?©ìO?¬8?¬ˆ±?ÇÛ?Õ—e?Úx£?î¨?ÓÐÃ?„öw?“>f?›Kû?™¨?ÊÜ ?Î×?Ùûa?ã=,?•J?2ˆñ?$«Ç>ûIN?Ip?ý#ä?ôá~>‘‘B>n¥>8Í >k}?€åÌ?¬ˆ†?ê^@ Hº@ã?Þs}?Æq¨?d|‘?gŽ? ù?ˆw’?µ K?¸e?Ä•×?É´g?Li?:ô?” +‚?ò¯?Ö(>äý>äþ‹>1;>eP?†@°?¡Yµ?Íž?㣚?ÉlR?²ø­?’\ì?ß?GSÁ@ šðÄ>œVT?3ÉZ?Sœä?1>ÜûH?˜ð@Õb?æ»?cÓY?rÂÕ?ªÛû?ªÝD>Ñõ>%:o?;:!?cÎ9?bæ€?^8s?Žl?“f?Ì¥M@-34@°ø?˜ŸS?–e? +]©>öðK>ãñ”>ãáJ?w ¢?¦ûø?“T?| Ã?†L?Ž&9?ªËh@ +J’@ bå@*öÉ@&Pö>×:Ý=áqð?…O?JóG?V æ?du?z› ?—Õ¹?³¶?,½å?@»¢?«"9?«' ?\¨É?C{?1ÆU? y3>ñŸŠ>Ü—&>ä,/>äR×>•ú½>4Vn?d_ù?gžš?˜Fs?žCv?`Àr?b_O?öw?b?-?BŸ?U“?d|™?_ÌW?[H?3 ê:qÀ=ËÎÌ?d~Ð?dˆ¢>õ»>ä„–?…Z?–{¿?ƒJO?i‰ˆ? Pº>‡â>4Nû>>Ýt?0h? K{<íè;;¤‹;Cà<й0?8°?Pd„? m>ä=3?»'?5?U>ñùÛ>rYÆ>6á=s `>°V³>Ê€?X?^øB?cŠä?c¥s>ƒr¨>Òb>“94>¤­é>§”>È.~>Þ ¡>ã ˜>>é¦G>áç¥>QW}=cB>…>‡”Þ>ž(¡?‚0˜?Qù?Õ.?@ÝO?‹í@?5z¦>µs>èd„?ÙÎ>R%B<âßt>º³´?F >ë®>×o^>öžÍ>ÿƒy>³Ä >™é?’þi>êjÜ>·T=½¿Ò=Úñ=Òͽ=}bÎ?x>õ=‹F>h$ú?Ž#L?6?mÕ¸?3sy>­ð?4”?3E>úúÌ?­’? +ãœ>ýÎ?v%? Ãß?"²?ôÅ>Ã_Õ?!M?”lÛ?‡ã7?9ĵ?d‚A?®˜ý?¨éß?i©?…à?ØVÑ?Æ÷Ä?y»?7lÚ>q«!?YâÒ?L?>]c?„Þ?öÿG?Åîß?5ËZ?*5[>Ø·ý?ü?¨gÇ?¶˜Ê?»8?š¸>ù¨^>ü Ô>û€…?W?æÝ?ƒëÖ@ +‘Î?Ò„ž>°Y‘?"š»?Ô°+?Ê‚ë?{³?UŒ!>™7”>è?Vç®?7ÅV>„‹ï?‚ž?²Ç-?¨(¨?{¿ï?a§?$c?vð>Ä­Ã>ì1{?*Éz?Z£?«nd?¡Äö?˜O?A?Li ?BÒ>Î?…«R@Aœ~@ÖU?MP>ªû÷<™(°>]¶Ÿ>ߧ?+%?F\]>âAN?m¬?“ëK?U‡9>õˆ >ì]=>üz±?%ž?XPr?!wÁ>Í)Y>‹£r=µSJ>™š>þV/>öý>è>á>ð9c>ý]>ÑIá>ÓÅT?f0¤?Ž‘?Ž]H?™~O?9Ã+>Ú†7? ‰{?)PW>äþö>Áâ"?•ô?µÎl>Ë–F=Œ)à;±šnIZ(>å?ôTÞ?ð »?E¤m??®‡?9¾”?<v?‘­?‘œ?*«\?!"?èÌ?S°ò=øã‡>,Â??,^“?Š•ò?CáÏ=±ìÈ>ýä™?‘O2?Š;ô?„âw?i7Þ?9ú>µ–>r…>¾IŒ>Úk>׳à? Ce?L>Wñî=LŸ]>ËàÉ?ÉŽ?mh”?„šw@ "@Û«?ÇK1?Án—?ªÔ?|K)? + +?Ï~?™AÊ?’ª[? ê?4P?’ˆB?‘¿Ý?>?aª¹?ö?cÔ‘?´›Ø?ƒhG?c‡?F0H?‹K?— ?¤ª&?¨`0?¬­;?I+™?’6?ã?>?[½K?E%°?¶??‰&@ ˆ_@i?+GÃ?&ˆË?;´z?F‰ ?°¼I?¬Ö!?…e?cøL?Ùô?1V¬?w®£?rGž?lßh?‘RÃ?² ¢?W:>ª æ>¹Ÿ>Þ?Ó;s@¦:?Ú"©?·5|?rôù?Yß?·Iÿ?Ã@?æþd?ïGe?ôž?ò1š?Br?Šhû?Àj¹?–5i=+Á>@Ž1>¤K!?O ?&Ç?Wœ?a§>•¦;?X?¡Í ?¡Þº?¨’J?ù@ PÑ?`G>ÇÕä?‘Èš?¬©•?~àÂ?x2ð?‚S]?‚vs?‚ +Ö?s£(ñ?Ã*?)|™? ªŒ?Œã?¡[?º\ó>½µñ>?÷§?‚Î]?‚‘?z–¹?)a?¥,>;²Ê>c>…9P?&c@-ý£@÷å?‚š?FIû>úɃ?#é”?<±? F>Á˜(?Ó’I@‡º?ª/´?h?üxç@¨?Vå? JŒ?¶úÅ?Ãxf?„Î?ƒ\?39?=·r?†c?„æ?ƒ÷?]:ö?ð¬c?¶ŒÁ?€f?-œÉ?y²}¤Ÿ?Z›?àçµ?I'’?k)?i¶?i ?–¶?e?Žˆ?"â•?*? +­È>Gº\>€”3>Ìí5?mM?—ûD?˜?]?zk3?G?Œ2ÿ?Îrq?€†F>Ÿq‡?_ª´?±†™?—¼?‚5?ÐmÍ?ø­ž?Ë4]?¼ >Ùð=®!>ß´ú?d?îÿ?ù®m?üró?ÿ¤@EÈÐ@2óg?C…G?D?&Y›?`×?¸[š?¢’y?xf°?•^X?ÅïÙ?®øå?éŒ?=`>±5?( N?Úü?=6|?Ò™?¨?ñ[Ï?ÏÄ»?½Þc?I?¨)?¡£D?¼«@ q@6¯?°ð.?¤Dè>YU†=ýL$?-Ì?MÏT?ÂQ?Å¿?è‡â?Óf?z²?Lie@1?þú?eê?i›ú@å²?Ð I?`˜}?›$?èñ·?Ó)?°§Œ?ˆ¬?§—>¢«—’ ? :ä?ì¡Ì@,ê@ _?ö´­?À©‚?¢|h?ªÉ?­ÇJ?˧?ÒFÊ?ì›$?ù˜?àxh?à»Z?Ãsõ?¹[?F3W?1ž?¾x?˜Ë•>ä=>Í­;@º$@…›?ŠeO?ˆVÅ?†GB?…\|?‡n,?€ß?{:’?I°:=­1^?+î.@(Ä@=b?ÀHã?Í™{?îÈë?˯ü?€®?e/À?2÷^?^ƒ¤?˜U§?’ Š?‚Ðl?‰i?šV§?­á?„û?WŒ©?$Ë?£öP@fJ?ËfÖ?Š-Z?½ãÙ?ñ¯Û@zK@M!?‹§C;Ó?¸½@?ëóý?¶²ª@‹)@:\ @*D?Þ‡Ä?´2£?–ÎÅ?Ì —?íä7?8~?mW{?RÖÈ?>˜Ñ?ƒÿ‘?Œ2?½ÐL?ÖË@ß@G@K@•j?®}å?{d?¨ø?½x#@Â@¯7@C$ü@Y T?×S‹?ƒû1?±²?ÂÄ©?¹Y„?³6›?ÞC?î*•@Õ‚@(ßK?ÅÒ*?“{¹?ëù@ ?Æà½?¤ðê?‡P?"ì?Y#?Eºq?­_O?Ò_ ?íÂ?ÁÒÀ?~ëä?Ë{?<h?cq·?qÈý?y  ?-N?·xH?ÛOë?ùl@ Â@/¶?׸?x×Ç?W”?;?¥œ#?øsî?ãïº?ÂYz?ó¾a@%âG?ôù°?.Ô§?uÎÛ?½Bâ?•«¡?­Ö?*w¾?‡ý?„Wô?QÎ?a!?°SW?³º?;É? ê ?¤š?ªƒÅ?˨?Åpa?v28?uÜ@-í@ é?Æþ?½¿W?Šøž?„-?¤íµ?ª ç?c?•Ýí>攌>$¤½?ü1Û@=|Ú@ð?¼à?¸Ý\?±ñý?Žžï?KÊ“?·?¶•?¼kþ¶A?ìo?ðzç@(™Œ@*Év?׫þ?¾+;?“¢-?…ii?¼+?à— ?š -?Hbó?Æ_>ð¤?jª?8ù’?1?м4?ÎÀc?Ìà +?ºMÙ>ûùŽ>æ–È?'“?Qï?Å–?Êes?ƃ)? î?ÕÞË?ã|?é²?íì?8=?Å?¡¼æ@™V@Íj?íÛ›?ðFž?ûo–?òµù?™ë?¸É?ä e?׿Ü?îj‡?þ®?ÇUÄ?®Éa?gïå?&ò?–ô?×Àm?²è ?~_‰?­¶?ßÝ?Ù\y?°µ??®„ ?a|ð?eE?jà?kP¡?Í"?àÈË@W@Çz?ë?Èûp?»÷*?¯¸N?—=c?W?@NŠ?éê¢?éÒ ?=Gi?07?†f¿®w?Uî?Ѻ•?¯†’>ä n>õþ?ÈÕ¯?Á¼?Ïl>äR?‡2•?«A‹?ÇšF?ß@J?µì?PëÈ?p7Ë?ÕîÖ?ݬ?ïã? a?b#ç?k´"?„.š?‹o½?Ž›¡?–NI?‘Ôñ?¹?àï?•½l?šÈ?Ýy?àÖx?…˜H?cÓÉ?•9@?¥Ý!@=è@3è@??¾„}?ÌJñ?ÏV•?Ì”W>Ð>ã—?I¿ö?O,ø?D‘ +?9î.?"±‹>üÙ>Ÿþ[=è<Û>žºü?©,ö?©Ž?mïÄ?çz?Qý¹?>2S?W%Ô?dz?d)?d%?5Cs>ä&{?|f?VüÇ?Pò€?„#?‰Ì?ÆÕ?Î_?Çw¬?Ïœ‹? :èµä>iÂ>ä[u?qœ?=1,?=÷?dl)?Yl0>­ò>Å‘h>n¸>uÐk>JÏñ>"›4>¬ˆ*>ä‰?69Ë?t¦0?Ea>ëúå>±žX;ñÜ=ü\”>0§Ì?±Ö”?°v?_¡C?QYR?^,‚?k„? +¶>#ÍJ=§û¼>Ø?Îj¬?Â)²>è )>ã‰>ØÊ>Ëh”?÷Å? )>ôœñ>ä_·?Èú?'@F>µ)%<«-™=œt=§iÂ>ãÿ>ãð–=(Ãè=•3<«£à=ªö¸>[4=žæ&=­-P> +>+iD:)5Ž®Ò«>â,÷>< ?t!?Õ"¿?„2Ö>|°>ÆRÐ?{Ç>þrç>ѯÐ>ÁN >Û@&? +ñü?ÍÖ?_Sã?x& ?¤ãÂ?¨?›?nžš?X|Ô?©h>ÿ `?w–Òã8>õ¡?|8|?f£u?Hð?$]Ï>ôåg>Á]Y>:˜v>Œí>™b>.öÍ>׋I?- ?·w?‹¸Ö<ñˆØ=jµ=®/Ñ>Â[?…ÙË?KÖô>È+ÿ>é£>ú~>ú ‚>ùþÓ?<2á?¸4?¡‚5?äl?/êù¢¬? ¦?yŸï?J½>•Dß>üâŽ?—?‚†>å¡?¯0?xôÍ?Š?® +Ê?–d?g ?[=>ùã"?(·è?†"¾?l׃?7kj? †>4Ê‚>z>ú2ÿ?7ì¿?¨×?Œ2²>îØx>¯0¢=c >«;¢?iia?bõ3?\}?}O1?¦‚P?¸€?`¦À?zŠï?Š7ª?q|W>û*ì? þÜ?^.?Bžï?†«?•"ƒ?·„?ë¢Ù@³Y?ߊÊ?jœÓ?Eƒ?æ•?ï¢>¦â?E:?µbÙ?Ÿ…R?|aÑ?œó?±Û?xG?<>²z,=¥æ?'?‚žw?¡j?¼dÀ?"o=Xð>¥Îì>ýh³>@k-?uÒ?¾Fo?Æ„Ò?¿4M?v¡?JcÁ?;èY?œã>h×Ö=Ù“z?Mƒ??~uÇ?¨ýî?º¤±?#ņ>ò!˜?°!Â?¿+?*? e<æ¨È:Œx?Æ»h?ÎEs?<_¢?O•?¶Ú3?¡ñn>©c©?À@v×?÷Õñ?Y@œ?g?¸“à?‰¼X;Ô¶@?!•z?óu?—È~>ѯ?€R? Þ>B ¦>ÿ{‚?D¢?ÿ>ášz?%ö?T];?ŠCj?ŸÉ?q®?V9œ?#óÒ? +Æw? ÿß?t?nqà?€Þæ@J½I@Vº\?Ë)²?À Õ?(œ?*ñC?5?$á£?Ç?ŸÔæ>_šã>e]ù>©I?º?aB¯?]®?V¢?33½>í;Ë>ÿŒ£?åš?EÀc?vé>úª>!ï>?9ZA?‹?•5?—ÖÞ?‹„§?‘Sî?úõÒ@¿é?­Kõ?§¢ +?²&}?ªÐƒ?^-@?l?¨O?£4×??ºi?Z«?ÂÓò?Ôå*?þ/?ã9l?»”¢?Ï<†?êf­@®@R­?¤ÿa? ì>JÑh?,‘Ô?‰ƒô?”D?žúµ?)>Æ?*í?•’?¥ù¾?›N]?”}²?‚;?z£??Òë?Q? {?Œ8>ä´Ì>›·>êŽ?ž‰ß?T´û>½É"?‡]?Ò$­?Å +?Ƹ€?œÙG?‚iÑ?Û´î@ +Å?Ôr&?ë}?*n\?vš?wá?yà?}þv?|Ñâ?0?‘ë?x.?z‹ô?Ž%?±’d@Û}?Ö: ?˜/Ï?Þ8¡@UÙ?áûˆ?€õ?DTý?ˆu>¶¯µ>;è?¥?;­Ë>ô̪>ϪÈ?t“?›½á?ï|n?þX*@ºT?ù°€=< Ã>noç?´2?Àß»@2–?ÈV>¾>þ?8X ?Æ…? ¾I?9ª¼?GlÉ?ECå? úO?'5?[|â?‚—?Ù†¡@–Œ?€ØJ?…;?oüñ?‚”?‡õC?†hÄ?b?‚Ðß?‚‘æ?†Èo?µ£? Úd?Œ‚?-Œ÷?¢Ž‘?­õÇ?Ù*S?´JÁ?PÚ»?L¼?GbÄ?bºë?‚‚;?gC¤?RðŠ?&>ô?t‘?Ó?5?tå?84?Έ?ƒ\? ;b@ü¬@¸µ?»/«?®G?dß?*°q?Îße?².9?£ÿf>/&?mè?Gup?Â\Z?ãm?’'V?wá?åƒ8@gs>}JÈ<` ?»?ɆY@z?ÿ”P?‰j?ÃpV?a|?VO6?-!?P|Á?¶S@?—ø?ü¼?©M?GÚâ?‡o–?µ8¸?ä0?YK?‚,Ø?’Äû?xM?Mi?w•?‰ÿz?‡Ñ]?…¡9>–Ð;â @.ÿD@[C±?ó©Á?Òå ?ì ö?ê]>ósÅ>ÀJ?7æ?+Žè? ?+9[?¸dk?¿|_?Å p?Õ6@¼@˜ã?c¶?ªhû@#‘Ã?ÿjp?AÉc?U¸Õ?M‘?Sh ?¦Û?¤Mš@¸Ú@àÚ@Øñ?ü$>?ömÇ?à G?Ùþ ?Ò¹Ü?ÍØb?Äþ©?2@@?S(º?~^¶?Š|í?×' ?äñn?«×¾? U[@ÎÞ@(©?jWŸ?Rà³?¼â?Ò¯?Ñó?ÓcÉ@ £Õ@=ß?ÀÏ‹?Às?»Ów?Ù@?a®@4’„?ü*?Эð>çKè?>JG?߀‘?÷/‘@Þ«@ +€@%™?Õì’?€ó?nÁ?KFæ?+Ô>ÿð?3Ôê?vJ“?eÙð?eü›?L‹¯?)'=?‘-¬?Æ6´?Ž}?6:ü?ˆ>?µ²/? É!?Šøä?î!õ@p?ÍØß?yÔ?ƒ¢Ô?ŽÎä?‹xÑ?ˆT@¬@+÷h?ôð±?¾¦s?Ü_?é@"?Ë?¾pº?€P?D›T?kþ?} ý?ÜÈd@[¯@ á@ +<Ô?ä1æ?Öœæ?—a?|ûò@×ê@ ×±?ÓÀñ?®5Ž?‹O0?|„>Š]ç;Wñ?=C1?|/§?¬ö…?¼þµ?Àb>~Áü?rv?š³J?x´É?k<ö?¼ÍJ?ËÔ?àŽï?ðâ?Ç(ï?¸Ëª?ßÝ>…Ç»>Z,>”ë‚?¶F(?úhú?aI>³ê?Æuó@K%? °U?%œ…?t^‹?ö[?‡¼é?ç¬?¡ÁÐ?»O!@y„@8Õ@zs?ému?oç{=·øþ?y,Ù?ø{²?¼›*?n9±?¸…@lu?¿Ó#>÷åÜ?O(=?¸Uá?“l”>ßä?6Z&?¶[4?µ=U?Ížr?µ +?%˜?\´?.z6?ö€>ÒW@?–K@3ff@1Ÿ›?y¿?v ?|¯ª?ƒêò?éÞ ??‡óÌ?u@?„Ý8?ˆÅv?Š’ž?Œbi?Â?l¨¾@!v@UÕ ?ÿ6º?”~Ô?»LU?Ü•‘?Ýð«?Û`?ºQt?{#?ÊôG@?Á@û¸@"¼7@ @~k@ p²?í·?îdÎ?í-?ñ[ >ÿùž? Jm?%n5?9‚6?Ôwx?çañÆŸ? +¸©?“‰?#£i?ÑR?Ù c?1-?lð#?¦5Ô?¶ê?®D½?¤I4?µk,?ÄZê?‹à”>ô?/”Ý?¥…Ö?§e˜?©C?¤X>ës>ëW ?cB)?k"Ó@y @s…@Jh?óoÊ?»“?Ž|#?ŒRo?…°…?zúß?AEm?m6º@ä@þ?ÏÈ?É>Ú?›1Æ?–ùÎ?*j>éPÊ?<}S?|ñ ?Ï·@‹­@®·?à¬?ãgŸ?蔬?èyö?®ç?®€±Ú=‘¥?ŸHl?ßdï?……E>çÓÃ?+ô÷?„•ò?iÙ£>çG>ÿ??Œž½?Ž¥Ò?#Ñ>øñr?7!­?S}?žÞ0?Â0ò?¸+å?®1}?£\{?f‹?~)?ÛÍ?ß%“?çŠ/?æAÝ@5G@BçH?¹ân?ä?znŒ?¸![?¥ /?e¶ó?™@Cƒ#@9À?øï ?ìèJ?Î…‘?Ë)?¸m?«í ?€!L?• ?Q¦_?žÍä?£Ï=ˆ€ò=IÈô?`mÌ?h€Á>P <×@>²”?7Y?ˆ‚®?Ðïá?»¦T?ŽýÎ?ê?c±ì?qcn?ˆÿ²?‹ø·?r¹x?dK?Ú4?ˆ*:?Éå·@L¨?øÏh? ln? Ut@"8@"ªæ?C´~>îm˜?²(ù?â¶?Æ04?±¶?ò\™@*™ý@ ü×?3~+?@³?•¯h?“9*?dÛÌ?dZ?n:–?x¤?\±?>ð–?UÓ¦?‚‡E?z¦Í?Åb>ÿ?ªÙ$?ªâª>[=fô?k° ?ªäÖ?9i?ƒ2y?¢òO?ÀÁ‹?µÍ5?Ÿ|$?¤Cõ?-·r?âh?ˆ$ã?•ëg?Œ?‹—[?¹e_?éX¸?Äm—?d1?c{f?cÆi?„R¿@Y.—@Pý9@xS?ùz´?i y?è/?o¨ó?”q? lO?ª®?•c¬?{Rä?xðd?;‰?‚æ?a»?dP>>º:z=üØg?Õ@?aPW?¥F?ÐàV?–fB? ?7~g?˜þ?Žûv?™>î1>Öü>½Õ%>Ùa>䕧>ä•ä>ä—€?im×?«v*?•-È?dR?`ís?SÂ?2{?Q Ë?kŸ‡?AyÁ?/pÛ?(ÿ?"‡¹? (?†³>¼>µ=°Áa>4v=>ä§ú?Ä?da‘?_wö?XÈU?Rg>÷ +>äŒ+>búz>6D\>¶j>äv>ÐZÚ>¤Îƒ>aK=ÚŠ°>-ѹ>ä>¨>ä2N>ä+L>äK>Ó:u>Äž=_•Á>[>‹#Þ=Ò p>P +¶?/ç®?$ö=.¨á=¦>âÖ%>ÙVJ?Ž• ?Œ`G?Ñœ>âvŒ>&SQ?¼º?Ü›à?«Hë?=î>ðí>¤O)?Ü?Ñv5? hÚ?ƒB©?¿;??ŽoM?€Dœ?6ö@?6tV>©Þ&>©èÌ>Wb¼>f‡v?›ï?™ýN?.;5?&e"?>(?U³?¤Ü?©Ê¡?{ +ï?],=—”‚>¥5?¥-T?‡6>›™\>’{’>% œ?AÚ‡?eŸÔ?•kJ?sÍ?f„>î¶ =åëø=Q;jkk<Äêà=ï#³>ë¹ð?& $?W1?·„>†át>”á½>¢Ý!>ŽÛÔ=ìÅ™>ÉKí?„Ã#?¤C>?öÐ +?¾ë¬?œd?ù²?)æ-?73 +?Yù?™5æ?Ô<Ü?=?>~iì>Úx ?J û?iZY?Ýó?GÔ>=¤J¦=©Œ=©`l>%¸ã?³>ÏLT>F§‘>ZN=ïiF>dÁ>- £>Ð /?n#)?g C?BßÙ?1{ô>ú&}>äñ¸>À•ú>ÍÄÂ>Úö">¡Æ&<'–«>¶³?kå?EN„?©?XiW?«Z¢?’­H?Z,¾?š>$£÷>Õ '>ÓÖ>û5~?7ú„?‹vÐ?œXæ?¼–U?‹«>û”o?c7?Nû?PMÇ?{Ýß?>>#Ï>æC‹?NlÀ?nz>é| ?_? ý?¦ @ä?Ãû?^‰Ÿ?!ÏÝ>Ù}0?x½Ž?¸ˆ?!Å}=Hà >žw7>Ü >Zý`=è +8?;¢ò?€ î?0> ?!9'?÷¥?@±9?…Ã>þ ×?Ÿ:Ú?Ç]?=Ø>þYƒ?tûi?…Hg>7z;9Ù¥>߬>þÈ­?€·&?Š&î?6#>ÿ¿<%ƒ<òÓ?35z?6f>ÿm¥?38§@&îø@@§>¡[>¾l’?c‚A?@Ä>êÝ>;î(>öÛó>ÿid>÷–?U3?Èc‰?¹qˆ?–vá?°Áþ?Øòš?‚†>™×?Mh1?¡s?yOŽ?Kq^?<6»?*•‘? ú?¦>î#?F P?€ÅÙ@j–@\Á?Íù?ºÑ?°›?¾FŠ?‘·š?‘þÈ?XVZ?R©?MW?_$í?Á¸M?°ÂÕ?/Ø>ØÁ>'©%>ƒ®,?Iß>´f=šÜ =íµ=ÂØs?¶¾?€óó?€g3?| ?lì!?US\?-°ß?#˜?Fh,?[ñC?Tؽ?K S?Éè¡?é:?¥Þ?›g?½?ÂX§?$¤«?Ž?Õ=?X‹@y@ÂN?Ãæ€?é½t@ ×L?ü4?Š˜?’uo?ž?x—x?B‚6?X¹B>@ßÆ?; ?MJb?x=?7É?þz?ÿBí?y…Ê?†„ê?Ãi´?Ÿøî<ùÀ>%ó?R2? H.@1žÇ@û +?–ò?tð?!)J?§Ä?ÿÙÊ?ÊÆñ? KJ?¯—'?³Ðœ?}$È?]àî?˜1-?¦ÿ¨?2½Â?å‡?9w?Œ_?€•>ñh <Ÿ1=<ÕÔ=óâ?PÅÌ@D¶…@(bã?çdn?ž[õ>6Ð?9}f?ºc?]&Ž>ƒÑ¨>è|>Úe°?V Í?„$Ø?877? +:±>¾‡è>“oi@ U·@›Ö?ˆo;?{Ä9<•²> ˜³?·Ý~?«yW¹™?SÂ?˜¸S@ t@ƒO?¢ !?lSñ?q'%?uõ?¼y?Ããô??Ÿ”?‚—Z? L?ýc?ÒjÎ=ÎD!?9Ï@)`|@¹?\?S +&?8Ç>?=}ë?B5Ñ?‚˜?ŸAr?•î?‰YN?¬Mž?ÃÂ?ð s@ÆŒ?c™°?zÆ?´y'?É?¾´:?Â)Ä?†ÇC?‹h?‡¬?{câ=ž >Íö†@gd?Ýü?(xK?ÇU><ì&>ç¹?su?`Ô?‚Tü?•}?°ù¨?½Æu?Ãq“?›_?s6*?%Kµ>äÞÛ?üÌ‚@*Úq?~fµ?7!?tî?ƒ +4=ɺ?PŠ?,‰á@9Ñ-@0 +?µUŠ?³‰?°Üö?œûG?/n‚?HUÚ?‚­?°?¥‡É?žêu?˜Op?Î 0@P›?Ç!Ë?SIo?„…G?¢é6?ŵÖ?àæ?ÃMn?´9á?µ d?¹éß?v?€¤¾?¾¤þ?ÕÌ|?Æ3“?‘É?Ì˱?Ïêu>1µ>%gÕ?®œÅ?¦·Ü?"ÔC?&@š?ŽÇ?…Ò?¢÷†?Ð>@*Äø@$þ@”œ?è?®ªñ?¤v™?”lß? œ?R^?ŒäE?•¨=@ãZ@AÞ“@ !æ?†ù@*v«@Z¼@ á{?Á« @½†@%ä?lMØ>¼¼ç?< š?W§?RÜ4?N±?ª¸g?¼Jë?UÄÌ?JÙ‰?Íú?ãfý?Ù;?¼Z?µ ? ècQ?Àmc?ªSÄ?z§?C?tÏ?C+ì>º—¸?ó(?6±Õ?>ëj?A\q?\ùl?†ŠI?vøÃ?Eo•>æÿ}>%ß?§(è@1§?õJƒ?²ÆX?¢Ì?‘ Ò?À#?ëÙc?ù w?þô¬?°Žý?~Ëo>Ñ´Ï=Ãd>Ð@ä?K?ì±d@ýh@l@  @ïº@ïh?ù©?äQ]?´Áä? Ó?žÒæ?œÙÏ?´â?¾×?øyÜ@!u?ÑP?µŒa?ŠuÅ?}Á?Ue¬?=͈?2&R?&~²?ˆ¶Ã?=¦?€ëU?{@l>|á =z‹8>6•>:'Q?ª—?̓ò@!J@0ð?³„>Õ ?Ò”€@ 1?Ò¾4?¼_Ð?Žš?zþ?Iˆ>â!£>‡P >C}€?‡gm?¼™L?CB>\l?^Êz?¡–4?¥U~?©Û?ü‘@±‚@.1?ùÄ@Sâ@ ›?Ñ•¬?|–?®}ð?Ãs1?Ég!?Æ›Å?óãú@,Ê?Ì]?P9b?”ÿÔ?Ñä›?¥/D?@ÕÜ?S.6?w¶e?v?±tY?Ó6V@ä@¹Ý?ãÑ?ëÒ¶@6@Úˆ?Ü1©?Á—>ÞÜ5>þWl?öB2?ò¾j?¹ 5?¹ÖG@3àð@0 ÿ?Ä¢?À—?õ?uK@8u¤@G Ñ?Ñ~C?¤Ž¢?l µ?U–Ç?å6@ÁZ?“¦_>ô2W??Û?sùC?Œ?.?Ÿ™P?‡‚?G†?grV?—&­?Ÿc?ªk-?¬9{?®=?±Õi?ºV?¬2Y>òg@>õÐ>ò/>ò?`Ä¥?b’.?ˆ3ç§6@(Ç@}ö?Ãl£?ÉB?ätL?æC@ ‰v@30@ËÎ@/ò?…p>óC ?ɘ@û|?ð4?²œf? 7µ?ƒ“Ú?CC=ÿÞ?E ?JwD?½-ù?¹>^?tÞN?lø?Œý^?ò)?ÐF¥?ì…¢?Êm?¶ê½?Ãã=?ÐIü?´ç?kâê?kË1?k±¥?c¾È?gŠ>ñ—2>í>ôE…?npÉ?ˆ w?ˆi?‰•8?~ï—?j˜ç?‡ÔK?ÖÀ?³+?ãµ?ôa›@2ë@-ÀØ?±€ ?¹eý?Õò»?Ï}??<>éW.?4ö?…™?Zº?¤©?°r?ÂZû?šX?ã…t?æ7s?®XŒ?®C=?hõ-?OßR?w1*?ˆQê?‘"?‘o«?c~å?z‹?%o³?:µ{?BŒa?“´?æ,?*¾?wÞ?R¤ª?QI?o>ö?„#W?2Ž¼>– ?Ày?Œ+?„í?n–;?j@>@Qœ@Ž]?÷U?ôÏ ?5_Á=’”°?½t@ÅDÓ?{p¢?ds>äø¬>äìU?¬óÒ?¬;+?ª W?££5? $¼?8p?mÊ?‰¥Ÿ?ªÄ‹?í t?ÖƳ?:ä(?6GÝ>Ò´>Ýlb?¸ÌN?ÕE¿?¸ÜO?«4¿?ÝpP@ÿ ?ÿW5?d(‚?kÉ0?¥!?§oˆ?Üj`?ãöF?»b?®ò.?æ™@À¨?㨤?µÏf?Ð%?ùÊ ?èÛ?‰Dâ?‹´^?9{×?&…Ñ?!“†?œ$?¶Q>ãÜA>ª>5[?cØm?g-Ü?©¥7?ªä¢?ÕŒñ?Ò»ß?´¶W?ªç$?†©?F³Ç?Ë»?ãÞÄ?ÓëÖ?‘ç +?Õ×?kÜ?u§Ø?By?>uÂ?6bÿäV> (>øë?dP?I²4>æ¥ò?ª?•ü­?¦„ +?—jx?œà>Ò–>ºó>Évy?²ò?¡t@¥¹?Ðî?¯/? P?G%6?Lëy?dM?dVú@Q@*:ç?¸5Õ?dd~?ž>‘a0?,1Ž?X=?g6Í>û¯? ?kÓ?j]?7nC?:r?XIJ?Lt? +‡¿>ä£t?]^r?£°b?zS>è‘Ê?ÄS?dµÝ?S¼ƒ>®Ë!>¢f>ã]‡>ä¿°?SÙ`?dÃ+?Aþ”?:G?@ÈÒ?GQ™?$(?>äÁº>äÀ>äÀ>ºáš= f¼=± ±>$\>Cü'>Ø‹>º?-j±?<q?)û3?#<º*>È$Û>Ö+¾>â…}>äVs>áÛ=ná2=°hÞÏ´>K)¹>`#.>BÌ=¬!u=’1=™vÌ>À>ÚÄÍ>ãH|>ã;Y>ã)ê?pž?}y~>–ÿ>&>=xd?ÙÛ@@•4@ÅA?à£Û?c‚º>/uô?†°[?ØCÊ?58Y>ÔX=„<,À0?Q ?€Fl>`è…=õNk>©âÇ>£¹?X+ì?Fí?ƒ\è?ŠƒÀ?RÄ™?Oà÷>dg>ÁÑ=Wûë=µ)Ö>ý¦>܃w=DrP>¥®\?/äœ?Ñ¡ý?¥m? +C¬>Û¦K>ŽÀ1?:'Ý?þxb?ÝàÛ?aÓ~?híÜ?pr?S{a>ù&?ÝL?^02?Oâó?Aœ%>õ«>“µæ?n“ç?(š=ôãi>¡,à>˜ò©>ÅZ7?1àÛ?¨Ùz?‹ác>ü2¦?|G›?çÁ_?º-ê?_ö ?M”T?*©(?M B?—{*?b»T>gõ<>üùê?,?‚Aj?œ{?+¦>ùÂW?Lñp?¹mà?¦B?srÀ? i?;k?·žÊ?€²¦>>â€è?>Ds?$“°>ú!†? ÔÇ?#ìÜ>æÍÜ=Í>=ÇÌJ=ÈN–>Z{G>ü¢T>¨Š=§Ú|?0Šo?×`ô?·|­?«´?‘ª?Š¦:?AGI>|?“_?–¤Ë?VB~>°©æ?*y?—ÏÈ?¤Ì?°ð6?…¨€>üX’>û¹h>ûÉ?Ö?gc>ÿ¼Ù>³Í>«/¤>Ã:Ó>´,‘>rÊ>iÈx>P²?yñ?uA ?.}Ý>üņ>†ÞÐ=j®¦>™Í&>ýy>ú‰>îÉy>RÕû=¶?I N?Ž?aýV?Wœt?cØ?R{4?£õè?É ÿ?$Û>¢½H?2á›?BË? l?€m?«>*?¾ìŽ?ñ >ý`@ …i@??¼ÞB?³=?dïH?Z†?*–.? +ª?HäÅ?Bò?<ÿ¥?u@Þ@:³T@.í±?¥Q½?¹?~'?)!“?rh?;OÆ=[g?H·@ä?íЬ?‰¼Æ?o×b?=Þï?1©¿?*/ˆ>ð2»>Y*˜?#^…?‚BÛ?|Ôâ?fF6?tï?€Ÿ??8?V>Ž:W>ÅS?A6?x€>$¿º=ª>q? ú*? v{?}:?5p?°ü²?¦h9>±¸#>ëÄ?@?lÒM?+€?2¥±?¥Ç•?é–?FŽ?-ó?qS"?R|*?3?…Sd?Â"?¡¼?wþ?>†Ï?ÑH>¡99>KÃb>ØL²?›?CQ!?SÝ>ú_j>ë] ?;J?=ŒB?‰!~?’2Ù?XÍe?X¯?²X?Ÿú†?,¥?eÞ?þ•£@Có@’Ž?ÛhÆ?Aß?p?»?yÀ¦?³É~?…¦?1kv?- ©?6B¤?ˆd?¡˜I?Ž†?Š½à?Žž?…ÔÒ?–®(? *É?d¬f?KÊw?æ_?å ? +ç;?'"ñ?ÃD?ÙÕ @8·?å6é?ZÙ?[é?Ðe=?’P>¦¼P?ST]?©r?SR?™?˜3?¦ò‡?²˜5?¾Hû?$©Ï>»qÈ>ù{?-?—ÚL?šÃ?¼‡Ù?¼Üe?žÈ?$¡>ö¢T>ìmÅ>â? >ô*Y?Abƒ?YTf?N+T?…!ù?¥UR?~AG?<£?EO›?;yã?@º?PËû@@-Â?þ”?äÛc?ªD ?¢Lé?ò-«?ÿ K=Þ„À7zq|6&Ê=FCF?s?B&´?¹ò?ÉY?ûÛP?Ç?R£?œÍ~?숭?¬¶Ó?=ôÃ?"åá>öe¡?Í—¬?H7•?ûÞ@?à(U?•Õ?ŸÙÚ?°Ðb?™Ã[?‚1 ?“ ’?¨t?Â>«?Öþå?¾Ú?±pa?Wý}?ë]?=¶?8Àª?àù?ü6¬?&å¿?a¼?±½?$¸Ü@Áê@àŽ>Ùœ¹?!—˜éw?cUZ?­Ù?Ë|j?àØ’?ïõ?÷3ÿ?pž?‰?]? j?­7s?Ÿk?„F?uÓþ?xi—?w€6?«xÓ?ªÓx?=9/?‚Âö@r,?éý‰?ê?R³?ÌÂ?Ľ¡?Ââj?ÇDÕ?Ë¡å?ùP@”ô?íRE?¯€ö?˜€K?zn½?¿>ØöÐ?:?—>/,“<Ö>Ë~°?šD?à¹C?ýÔ¾?û¥C?ùxÎ?”*?û.<={Ê=D{r?–b;?Žzˆ>Çø>î؈?<+?\½?œ]ž?¤z)?ÝIþ?ï~ù@§¶?î÷?]ÈE?# ¢>e9?Ð+?n€ ?Ö!{@±‘@/Ã@@5…?ðŸ?‚Ó0?Ür>¡eØ?Wã{?‹†?)j? Ú-?°Ý?Ëk4?²kØ?«&$?Ê$µ?Ìóu?;e>ô×?k>íÊü?#.ü?žÞ>ÿê"?ô?N}©?P‚§?ÁÈ?¼O–?‹äø?æë?Àá‚?µ¤Š?zÙn?˜w¢@Xk?Ô†f?ßÍ?šš>à?Û?Œž?j*º??×?;`?1L>Þ/<>ŸU?$;?G³Ä?{™Ä?ŸÎç?€!4?7‡l?žgM?çÿ?¨àA?Nû¸?e²¯?†¸?uú?d’?ÉÕâ?ÿCí?RJ<ù§Æ?›tÿ?þ?…v(?™ò?Ššì?©ýÅ?Îýû?ݽ?µß?«Î÷?±¥X?·vŽ?½F?Ã?šn?4A@íÿ@´o?Õ4]?¾Hù?”À?‹Çç?{_A?|aP?×Ë?öú½?Ž±?bm?ÖÌä?óIâ@Ÿ@!6@\e&@wàº?üš^?¼K @:I@K­ê?ªF:?Y63?ݶ ?ûì×?”h-?€rR?ï‚8@¡?ùàá?ûe?‘Ë=?lãÅ?–Z?œªí?]G—?DCÃ>Öf>œÕl?0sg?KÌ4?]i*?\š?.²>Ên>ìÛM>ùïe?r#?¶ïþ?âpx?ùñ?†a•?c?SCX?y*ù?³@U}§@Ttw?~b?šÓ?p¬w?uXü?ñÊ@ Ë?£°³?Ž¥‘?Œ«e?‡ªý@õò@/S9?ƹ?pψ?oÛL?t ?º#J?èhÄ?Õ¹?Éb?©ag?n è?±¢?™Þ&?Š?€ts?”Ò?ïzJ?Ú]œ>òw?]\?¯V'?«‚ä?®ZÖ?¬Ÿx?{õ¹?q­=>‡x>³·?—gT?ÉZ?Ÿ¾?… $?Šëÿ?”x?U|>ðŽ~?`‡á?Èœø?ŸUV>©ç?*ŸX@õ@o¤?Hק??ÞC?³’þ?³~ì?¸Ôm?·HÙ?&?nAb?m§e?iËø?8ÄN?).U?‡ø¹?²§?šp,?n˜?Zö¦?&õî?-µœ?m +?‚ƒò@©s@¡Ö?=é2?4¹?C°X?Q£?ûs@Ø?¡é?"3?M@?‚§Í?j}éÙW>éÇ?Û+?ô%–?„&;?9–…?¼²?ûì¯?Á¯¦?{T¸?À,œ@$fá@h¼?h©*?hÇé?k‡?oz?i`Û?hAæ?h!Š?h¡?–—t?­ìü?öŠÉ@"7^@ Yí?·¡ü?®)‰?Î#?‘Ö„?“Ûç?•år?ö}u@¿ì?Ùôü?¼Jf?§^?—De?¿’§@l?ÿ›á?ªmÀ?«˜ñ?hƒ0?tÿ?©“ ?³.»>äBÒ?²ÿ @,mÖ@ + +U?™Â|?©þù?éž?ó ²?eŽÜ?e?šÐ«?­/ú?À8S?»ÞÂ?ZZÁ>­¯€?)aÈ?¢c?’:¤>äÿÙ>çwÆ@ e@ÉU?HÙ?=^?O"×?v°b?CÇ¥? Y‹?cBù?Ï—?Ðß|?·1Ñ?²“¡>‰Ä>\U??íHk@^a?èî)?½s?´ª?«.¸?•}0?@ö*?QÚ‰?‚SÂ?q™5?d]?hœ‰?Ç‘?Þ[?ÉŒ"?ÀD?Æu:?ÄÓ–?¾ój?Ãʪ?Ä×¹?$¬À?)”?.‚“?3s/?ºôA?Ò@›?oÐ>ãå>œ|`=“¾~>jQÅ?[ˆ%?`­z?cÚ²?fŒ^?¨C¶?±[À?­F?ªìë?‹wŒ?cæ?Eì?ñÒ?¤ÃÞ?ªð„?¦¤?"ä¨?‘Œ>ìê>ã÷x?q?”Çå?Ö´®@ð)?Я?d ??©Ãn@#æ@¡?´?M“?¿íý?ÂÐQ?žÀò?‹.N?X|Â?/û?•ŒÂ?ä=ê?ºî?@ a?8~N>äQü>å³æ?Ke?V´)?#T>ê»Ç?Häx?dr[?âÈ?µÝR?«Ÿy?«gú?­¤Ñ?§Çg?—tƒ?êÊ?’õ? u?-?²P¡?Ì|?M>?>ä·å>^ɦ;®AC;ãQ<èû>7KÂ?B¨?¢W>äÏ~>ä׌>äׄ>ä׎>èo?D™>ò6>äßP>ÁY:>µqã>¢L>ÏÔ>Ý·>äÓg>µOm?XÄ? ºè?|!Ù?@Ë?4â?ûF>á>ª´—>s·õ=p!–<ÿ5J;³tý= n>ä‡{>ãm‹>¹ìÙ>«”d<Ò·>*¿Í>«S>íw>9>ʇ<>ž@·Lg>…=3p?©½%@Më¼@O¡?Ë4?™m–?ROñ?¿>Ñé?ˆÕ'?³æÃ?7Ý >ú„­?˜¢?þ•?E‚)?;á§?z@>ÿ‡T?(Ï”?@Íï>þÔ=?ud?'mÇ?%äó?dÙä?[•x>éVÂ>÷ï7>ý?³?'®•?¥S:?t #>…*T?šVÉ?‹4'>ðÕë>ÃnP>¨“ ?m?b^{>Ï>åi:>û’?vÝ?õò?µ`?ï§?7‹?z‘|?|u?mâ?9ê2>úOÏ?!Zš?L3?L^e?z[?4Âü>8eë=Ø y="„? u‡?¹¥û?tÄ.>tɬ> ú>hŠD>Ï`?'°²?I=M?yÅž?xP™?jiI?‡¬ ?»ÿè?¦Ÿþ?O¹ö?&Þ(>ùÌŠ?)ZU?yÖ?’Ìd?¶šþ?h.>šŒ`?jk?k±¦?HWú?&$>ûçò?gŽ>ú(Ã? v–?2î‚?%Ð>ÍS+?U?g¬w?‘?ºÃ?ˆS>ßW4? t +?M^Ž?iJ?zÕÀ?•ƒŽ?¼5º?˜Î?9s? +N?¼a‚?‡÷×>ÍIð>u‡¨=«Cn>ˆÿJ?gÞ?6'·?zBè? ˜°=\Ñ`>èð’?at+?/z>üœ>θ>”„õ?£C?;ã¾?n–}?ˆÜ%?¬ê?ØM?…$Ù>üÐ0?±f?!€†? J >þÞf>ý/@>ýC$>5¥”>öü?DËi?µ,>ý³Ä?L?vV×?M¥„?5ú¢>ç'n>« +¢?h;I?ã|?ƒ‰š?~rä?°­?»Õx>.n¦|>êÂ?ÈÀ?Wo?…K?}â£?¨ÏV?K?\ÀÊ?M÷?O„É?inÔ?t">‹n›<ùëX?Ü?óØ÷?,¤?ñ×?~»?@l?’Û?‘è?#øZ?lÜ?;¨!?A[Ê?¯8>>ê7¡? i?Z ?‚(Û>ï4¸>˜ U?Æó??ˆç#?d¢J?áÒ¢?ì2Y?I#? Å?…sB? H@!ê9@¥:@{š?â¬ý?m¸ô?‹}q?²×1?JÂ`?Ïc?«?Tô?tü?/&·?MÀ>î6u>«I_>à6£>Ï_>ø:ÿ?†@{…@?¸?5W?€¸#?‚Wæ?áE?öôÖ?úz7@“~?çãÖ?I… ?k.Ÿ?›í?²³ ?Üúš?¥àl?I 7?Dçe?Rßã?HY2?4ï@Á@Hàˆ?ïPŽ?°š>ñe>sË1?«§t?¾Ðý=AIC<¢Æª?D”? ‘5?ym?fž?/‘?yò»?ä?³@Œ?«ì?9Ü;?Ž¿•?¡Š(?©H?‘Ëa?‚¬¯?™wÙ?«F?®©|?ªÏÞ?Œ(3?‚ªô?÷^@~¨?J-ß? ßV=ÿ™w=x?„§?î%?Ã÷´?­ >ÊÚ¹>ûB? b?ŠW?Q8Ø?©­@ +àØ@$à@››?Õ6’?¤jh?Ÿü?ÒéÕ?žÏŠ?‚’r?‚‘w?‚V?n þ?kŸa?É{à?ä¿G?Žñ_?‚…Ö?Àck?Á1}?€€?zÚ?ÒÇ?É5?mc?J{ˆ>Ä|?1?®µÉ?‚~ >Ì6>Þt">ðª¡?=À²?|Ÿ?L´ê?s?8¦š?Y»ð?‡Ùí?“JÌ?´ëm?Ãw +?‰r(?t° +?…å(?…»H=ã{;þ¼€?¸Ü?½ô?‚7 ?‚2?‚0+?‡2 ?£ßÛ?µ÷L@ 1¡?ÚÄ>DCC?v@?»öu?_4?DºÍ?aÃ$?‚Š?¨8­?Ö2u?Á5?§ ?åЇ@ /ƒ?kˆÑ>ÿ‚?*k3?måS? )?Û?×ø?Ó5@Aó£@Y8I?q^L?C=÷?³)7?µ»?í…m?ØÙ?,ì?&CT>›¶O>ðÖ1?¨Äº?¡ðÕ?«÷h?»â”?Îɤ?±§?W0¿?eF>?kjš?a¤?gô¶?cUš?K*c?§-?óšÅ@aË@ Ô?S·°=¥(>¤QJ>çÍW?é?Ë+?õž6@Â?¿´?§M?šJ¤?˜EÎ?Ñ,'?ÜÙ‡>ÞôI>ƒæ,?:"?H4?¾¯É?ÁN(?„y?€ß8?Á"%?Åi ?ìru?àY^?¶™²?¸€?º›Œ?¥ÍÖ?ÿâ>É}/<ô:ð> ci?vß9?rÄó?n­Â?Ìõ'@?Ýè@/?ž1Ó?‰,à?V.õ?ŠSå?´ì)?š¨1?€z?`I9?Fª?¬‘Ë?ëü?·îz?’ò?–ž?™øe?súÉ?CçÄ?i™Q?ké?Òjó@!N?=? š>DÂ< M>±gR>þâÙ?^òC?‡O¹?D(?—ÿ@ +µÈ@Mü?:œ?&Š=?“p?§ +?ËD?Ïf?µ©T?¼??‘ ‡?…ò}?GÖÕ?/U >ŒÁ¬>"ó´?(Y ?@Á?¢îo?£ð?¥h?¬O.@"õ@6Y©?ÛIB?¼„5?,F?G@ AO@#ƒZ?j.¯?d?Ûòà?ûõ?Ö&·?ÇÆå?ÉT?Òja@¦Þ@#™’?¬ê¿?‚à-?y0+?æS?¦A#?¨»?u²>´M?—ùÈ?»æ ?¸¢ +?¾ó@>þ€ =°t>Õ°v? i§?]Óm?€NX?ÎÏ?ùX&?öU?ïÌ@Œè@D ?ÜŠf?¯û1?èI3@ +õn?|XÑ?-»Å?¤8?y‡‰?/Îf?"9?Ò è?ç{÷?÷Ñ’?þÇs@ 1?¹^Ä>÷fò?T+?Àm›?g>VÆ>²·R?cz?‚Ô?¾És?´ÛQ?ƒ‡»?y f?xµ?y¶Á?/šx?I?Û?§ý?¤)Í?wâ)?ud>ÕǺ>ÒQS?Ýmd?ò_.?à‘w?Û¶“@+«]@Cõ?ú~w?·6·?²N4?«A?ùK@ ÞF@Pm@l'@{É@ü?@®£@²*?ñH?ª{£?®õî?³õÉ?£,>ò‚"?2Ô?zí-?30?µzH?µv†?×v/?Ö<?XžÅ?+tX?¼Òk?ÛÿÅ?ÀÇL?´È¸?¸u”?·5Í?”Äž?f›*?4->ð]?žQ?p"—?\3®?/|?;5¿?×’?Øš(?«"0?¬øa?ãq?é­#?/„>ï\?¿?çS|?nïÒ>îw^?±þ@ “7?Í\#?n {?mêl?mп?LZ->¶…€?Z@^@ï~?Íõ?ÁŒ³>3ŸX?Ú_N@Ür?Æ{ó?…\q?”?¥æq?_å>0K>W¾>Þ@>Ãsu9(u=·Ð/@‚·@ ~î?é U?â"k?—Pv?‚Pî?„:’?†*?›Æï?¯Ù?q 0>E´®>‡€&>êg>ô”?( ’?$’•?s¸;?kª.?¢¸ž?¯Œ?šq?ŒH?’œ?Ÿcô>ü”ë?P¾?^i?Ž +ƒ? â?f Ò?9$¢?yò?«6®?¨³S?†vE?ÊÑ?ò?Ž~?»¿o?µp+?Í?ÕT8?×]æÍ‚?­D?f¤È?i\1?kâ?tí+@ HŠ@ +É?‹†?vß? +ÙB>´º?ŠLë?Þ×Ï?È/?—=T?¸?e±X?k½›?©ûA?¥1?sˆù?Qôá@ ô@#³¸?®¾Y>‘ªd?èü?ty·?]-Ì?ÅÄ>ð§³>æ[ò?y{?ð¿,@}#?8©æ>,¬ˆ?,ø;?ŒÐ?”V—?«t?£o?‚ K?‰¸?ª?ŸÎê?œà}?¥S*?¸LŒ?çÆ?º1?«0ÿ?Œ¦Ô>Üi?‚ï@%È°@*¢ù?±èð?§öT@‹‹@#%b@$¿?×M6?Û­Ç?ãÿ?Å—j?c÷ì?YF>ãô¡>ãðå?Mq°?J²@pû@68[?ÃMÈ? +Rs>ûp>ãç.>çž;>ì'l>õœe?cÝ}?cæp?›H?]8?’ÑV?ªï?¡X¡?—ôó?q¦Ö?"[V?4×Ö?gÔª?qz§?c÷6?côû>÷R7>ãù_?%$^?'{?Sy +?q±š?fØL?dæ?’®?î€ý?ï=1?ÃýC?»¸Ä? ܯ?Tÿ?.¶?E'Š?]¬Í?kI?—e?º\?˜Sv?ír? 1Ê?pî>ùLÝ=uÐÈÿÕ>ät>õ”?ÒäÆ?4½À?co?Wé?K\†? kˆ=Êì³>jqš?>Êy?:¦Ô?q’»?d³Z>ˆmÅ>0¶>ˆÑ>¦¯â>›"Ñ>Wõ=ÂÉ7<˜Ty:£;<2s€<Ù =7>©²S>œ& +?Áý?$€ª?[ÄÆ?dì6>ÀË|>l‚=N«Á>7/4>Ó í>àºó>ãÅ]>°Ã¿=TV‹=£9 =Üz> +ö{>Ž‹>‚#¤=%îi=y@W=¨'Ç=UX>‘º@?Á.t?«>ò>¢Ê>“Z>„/8>i|=/Ý?¤eó@3ð_?ëÌ?Ê„?Ž*!?,þ>Ó>ÎÏ×?‹=ôõ0=°ÿ©?ác?%yÉ?ÎD>ÿO%>†áá>{$>þÕm? +¤Q?~e?qçê?Ê>òŒå<ÙUD=Áö½>ýCä?’×?ˆA;?LC?‰úÇ?]²ñ>üNÕ?0š>ùèN>Ü >¿lB? ÁŸ?Š±Þ?W÷Ý>°–>lx¯>û¶?*N?„Ö?^˜ý>úÁr>Ê{ >ŒH`>Ȭø?¡B?â>úYO?NCÀ?²‹–?£èØ?z%)?zü?z ˜?N*ó?áû>ûF+?mO>³O‰>O\>¹8?Fþg?´Æt?|¶>îÕ5?4ûŠ?‡Éß?^éâ>ùËß?^dH?È÷¯?¡~ ?Ã'?29?yÓc?P’Ô?Š‚?3dõ?E— ?E* ?RyÁ?]¾@?z?pý>…Â?*Ïô?[>‚ç>u)´>h”Ý=îþ¶<ÈMÀ;9ØÚ=2 >ƒ¡>ú¨}?M)g?žEÀ?ŸVÉ?¦ÁW?½.?ß?Áñ÷?™ú?¦Ø?¼k°?¬Îø?]Õ?cœž>ÖÇ`?*A?vð?®Å=>=ä¨=¼ö$>l\?4Ø?Qêg?$XØ>üK8?ê¥?A¿?}6? AI?w¢ô?9k`?h +>üÜQ?¬äI?øª‹?Ó®?¼©3?U‰‰>ýNÜ?8?JCÐ?Co>ý™`?t{?‹þ&?$Dß>ýã€?3Ì€?Iþa?P+,?VY{>…Üõ=ÝRø?[·ã?~€,?n]±?wðœ?¸ng?¶A^?9"Œ?G{Œ>PÞ·>]…?¿_?¿n,?¿z?¹8»?x´?{´?7`¾?1v¯?+‹á?7º¦?à«?Ti#>núø>¿?%ö?pÙ?bt>ÇÉ=Lž˜? ?§Ö3?©¥?®W?l°ë?jh?nHf?¢Ðü?OR?Šó?27C?SÉÌ?RI?DT,?+c(?ŒM?{7?76?ÝPù@zø?6û*?Ú ?n@I?lÄU?B?&1? V?´?Ë?nG ?)Ž?)WÓ?ŽÕ¦>à_Q>ë¤F?9pÚ?€ð?6û?r?2Ì6?ÿÞ?º¡? 3?­/?­Ÿ‘?9?„'?èK"@Äô>Õ„>•çG?bóa?\°í?œi“?©ì?è^š?×Aî?båù?ÐvR@|õD@Gö?€ŠS?—ŽÖ?à *?eçì=ÄÓˆ>ÜŸÒ?HîG??’‚?'σ?o9=?Š?&?šÃ:?¡i>쬨>O-?ÀR?šC?¹÷?Çžè?‘r‘?‹z?<|9?=—?¿‰U?­Kì?—?_W?Êý8?¥Eå?¾™?R^Í?”XC?uÄ ?(M6?+CÑ?;4W?C¼×?AÐw?<¤Î?7x?;ñ?*|q?}Ÿq?“[Z?`Þ?D‹­?¶0?߆?Ç3?Åë?%í?/uZ?É»?µË?Z +?—s?å7Ø?æðÅ?ð0?Ê8€?œÈn?ã_?‚¦;?‘0?hÙÛ?‹B +?šÀ•?§}\?¨Ö?üuã@7Õ?Ò1?ć?‡Õ&?‚­<²€Î=FA?²u?ïA?‚³B?€¥õ?m'ã?]"t?FÙò?T¬?Yƒí?vF?Ža"?´%X?ãÂÃ?ž-û?K܆?ˆÕÿ?šž?ÔáZ?òPØ?·:a?Ÿ+ð?4û_?‡¿?yi’?‚®ù@pJ?þŽy?Û\>þ(Å>Ò®>¢ñt?XÈ5?nya?¤3ª?Ÿrä?š³X?™R9?¦ÆŸ?£ßØ?›‘p?a™W? -+?š×j?ßA°?Ó±€?Áü ?“?=?‚–&?a4¨?IIÝ>7ç=dF?m¼l?‚Œ*?Á¢?ðb?¼Æ?¹gp?ÃÄ]?Áù±?·¬?¹2c?¿³R?Õyý@ /ÿ?ìÚè?› +ä?°Šn?Í+§?£8?ˆW{?›ÉN?ª~t?”J?}Ä?žß'?³|E?¡¥5? äš?:^?eT?©sô?¾T­>Óˆ?¾ùD?Àðý?‚=_?— @+1@é€?D”¸?U‰ë?€'É?r(?žÒ?ƒ"?=Ì6?)2Ç?Â?nšp?¶Ý°?¦h/?˜{?§ˆS?½há?¥An?AË?›©8?œ¹9>Í×S=’È >ωÙ?àê@ +oe@íä?â¡°?à¸@ lø@ +?;Ã~?H¡J?¸pŸ?³k?±s>ìÈ>V3‘>¶`?xBˆ?gš\>ì%:?)^#?šÒV?uŠ?‚ð?šÕ!@CY?¾ù*?nß?½¾@!½ñ?À¼?øÁ?ùß5@A˜Ü?ºÚ>õŽ?´Xø?ëÜ ?¾ÅÇ?ªa×?Ú4¾?ñAO?i%·?)?t4-? Q?)%º?)…?%Ï?ô ?—”?”(Ö?Œ¿K?“¶®?Öš?×å?¯xé?ÂÕx@,±s@á¼?nT ?y÷[?‹{4?…œˆ?~m ?€7 ?y´ý?¾Qµ@4êò@ ç˜?€g?clñ?CyF?q¹?Àn\?Ê?ÔtG?åF[@,?Å9,?€6?%ß?¨Ê @%ùò?ÖÑ*?Wú0?9€F?#æÚ? ¼1>àl?B^L?vi?äí@m?ççæ?Á…#?”§»?{Hš?w²Ï?u#d?*Å?–?ô=?×@)Îf@V[?Ü¿?•–d?Óìü?å¹?ïùŸ?÷[&?‚äR?;*?ì>ýÊr?‡·à?–,?Ï°>ýyÎ?Ô¬?ì§0@uu@ˆã?• +I?Ð?¯ÓÛ?Á‡0?ˆs ?|­7?±úk?·‘/?ÄWØ?ÊÃ?ßI?ÜZß?l‘¨?T¦!@"Á@*–›?y7?*»?ÆÍ(?åmñ?‹•‰?t™;?–õ?–€Œ?ì†T@q±?­[ ?’ï)?“ßN?˜~Ù?D>¦±I?%àÀ?9€?r:¦?ƒA?¥ >?¶€A?H#ñ>ÿR¡@©f@6è,@—?Êç0?âÐõ?íG.@t±@ÀÕ?Ér?€ƒî?ã4?ºWs?sœT>ø@“?<æ\?yœÀ?˜ 0?À°¡@Ÿ{@-Ùi?÷%ó?#±â?¢Z1@!#ÿ@…]?‡é?{SA?@Tø?vRû?ñÄÖ@Š9@76M@#®j>üç¦?*ˆÎ@×é@ ?á@b¸@sÈ@%×@ac?º]?ªÒ½?µ„?½f?¯@?®—m@4|@(¼?£ü²?I…h?’4˜?­Ú?„AÕ?L?µCT@È?Å p?ssÁ?C‚š>ó:”?²x?x?%â|?rÅ¡?Žý„?í}V?ô%î@*Ñ’@"ä?ÿÜ?%ü?E’Û?RDŽ?#7¤?_?°[A?Ëo?¢–ç?’Á®?’H?–,X?™×?šÌ?wþˆ?%ZC?LNm?Š×£?‘½ë?¤¼@?œºÊ?Ž Ó?‰tZ?~º?z{?|è\?u<—?¬?±W?ˆ¤?7?m–?]? ø´?ËãS?ж?ÍAŠ?,­>¢? 1?Do?ŽXï?Î6?Ï‘?Ú2Ú?ãÌ?/½™?ß?·c÷?ÉA}?¿ ±?¿0?£4Ù?‰ýJ?’%P?¤ý?qƒÈ=HÒÃ;ðø=é.ø@"“@H?HàŽ?3|Y?•Š@?¡ë¶?ƒóí?jº6?”}?¯ã?“zC?BÌ?%÷\>ê¶?#?¥Ôv?¡Ä?çˆû?é¥K?m|?’f¢?ùöØ@f +?œÎF>éH?&jÍ?mJz?K¼ >êÁ>ñ1Þ>è>èyê?™@?™¥@TÍ‚@n³i?Æ#£>çõù?N&L?Œè?Tm>ç¥ñ? ÿ?­$?±ˆ¸@”~@‰·?»¶ç?­Sø?­E“?­8£?‡•?@®É?D½2?f«:?›®Ý@ @ Qv?éÙà?ëç??"ëN?Ñ ?<?IÊ?Jx?¬xê?¬m2?¬al?¶%?Í¿6?ÉŒ?åÁ?åŒ@*W@,Và@ð½@ée?Ø+?«ð@?¥ÅM?ŸöÉ?±ÿ‚?㘈?äöû?á"?ÚSH?‰.?Š•ð?@5?…Èÿ?€µ¶?ƒ~7?…Ãñ?ˆ y?š—?Ó¯?Æç0?éK?íìO?ŒB…?e ??ô?«ôR?¡­÷?¡z&?úik@ZB@A?­>é!7>ìïŒ>ùâ³?<?4«?T­ÿ?Lü=?JF:?Çç4@nì?þ¼u?’ƒ‘?€Ž?‹Äá?„UÌ?¨<?ªõ(?ÚE?ï{?žU¿?O°¢?/Rr>ø%:?A¾?eN?x¹?ÝÎï?Ø·ü>4KE=¬?HXz?å«?.,•>ýÄÏ?FË>ãî]>ÆÞÇ>}l$>²*?…ýÓ?ƒQú?‚O´?i­i?Áx™?Ýs-?Þ!?áÂc?—¶>ì;‘?Ç?7c?/À?@^>?Q?gn\?UÓr?„¨>ð5¡?8@O?S£­?B?>îÖ?Z#?~?Ê?qá?VU?\0C?dk§?dDŠ?`R¤?Z£ì?½?•½??8a‹>ä’ÿ>ä—Z>ä¡—?;Íâ?«±?—‰u??Ê‘?íBæ?öyP?µ€?«›ø?.BJ>äÖ?zé3?¨Ø?Ž€?dç¯?T*C?'; ?(½ª?dóÕ?cþ?ct?pe‹?'´ª?¢>ý?Gf[?Ÿ??^ >溂>‹«£=Æë >¹x>²ø>å¹>ä¯3>Dù>`}?O4G?e¨?.<>å +Ä>ÅÜ>·¹=œåZ<²™p:W–<¨½L=•p=“Ü>¡¦>’¡!>â@;>ä´U=ƒþ>a +>ÇKï>gº;@÷Ï=|«¨>¿‡Ó? ß?ƒËÌ?x6ž>lpÂ>xQ•=<€?ªÜ‰@2Æ?×.c?R?!-Ü?qî>E‰<äQq<<öÀ= çn>Ç·>͆U?Wó?WÉ>Ei©>vñ ??¨¯?.äÌ>a“>ÉÑ ?\Û„?`‡ú?Y3?SÆù>ý h>Çï@=¬F>7 ?a,?% ?I’F?=ÏÙ>üQ2>ùuÕ?¯?D÷L?”.¤?L6‡=ð3ð>Îä?{X1?TžÁ?O#?,4S?zóf?"‰Y=Á)ð=”§ö>w¶ö? ?”Ù?7Ô=?0¾Ë?)°æ?)I÷?=È?T5?i}?s C?zí?F‹®>ùôŠ>ìev>Î^‡?„?VYi?cµ?ˆTÉ?cZã>ø[? Aî?-Mc?& +?¶>¶ø?—º?»gÓ?‰2>ÿS?]’ø?«ó?•_¾?yþ²?z5?z ^?>$ì>à >”>x\0?% ?2LJ??#?„ T?³­?…o9>ú‚E?.ÿ-?löö?8D>ú²=?=¦F?Ù?ZÝ? ­?rDœ?¸`w?ÊHå?×@?µ&2?“„z?`Y>ûey>¿è©>7Èä>¥[ë?ý~?8e ?mkq>å°8>ÈRo?:à?‚^e?¦„ ?[²:>üTÊ>üdb>üyV>¤r>,¹Ý>hbH>um>úg}?"Ù¼?“1¨?½Êp?_*=3:¨?îÐ@)ÑB?á/ ?¯ÙÝ? J%?•Râ?oZy?iey?ëƒ>ýî'?*gK?07m?*%2?$ ?õ>þdJ?Míö?eE[> Þ…Q=MÐ=ÒG±=}e¼=ªS’>ÉmD>¼Å>éÒY?ù‹?’?5êö?€–5?nSh?JÖ ?HsÑ?.“?Wô—?œøf?¢ ã?À U?©Þß?u“r?•¤;?¼~??Þ|?a[Ê?Es ?6ú.?oo?“éR?SM?o‰?AKg?}”¤?‘-§?‘ÈF?‰}?€i$?¬Œ?Á`@Ð@(¡•?Þý‹?Á5b?(ÒW?i2?;?íã?³ÐÄ?²öÇ=ìå>‹Ñy@Ÿ?ã‡j>Ñ{(>ì§{?.í?!Ê?‹Âz?f +n>¬ø^?I†?Ód_?‚²b<ve;ŽÙ=&º8=¬ßx?lËö?¬eô?Sš?"¾¦?…P?—ÉÁ?:Žf?ÈL?8¦?D%Á?fÆV?QmC?šv?¼Îµ?Iª¡?Oà¤?šÛ ?wë=à•Ä>âv?ÁcÇ?×·ñ?þ±4?ŸÁ£>B,¼?ªV?N!Å?T§Š?^gB?@2?2Áç?[­ ?xç +?Õ?‡3?M20?3¨+?²n?C·>&>a_?ªŸ?¸è2@½%@ Ô?[ ?Nï?úÞ?×¼R?Š÷I?D¼=Ý ¸>÷±¬?‚rô?‚tt?‚ww?g«?Iû?Šg?¡Ë?‹W?‚†o?ÂA?ܬ>Ý€š=ðÆ?Ó,²?ñVÙ?ú™?ýÿ?Á­í?½91?€Ë\?Š%h?Ãíà?—s¼=À>X?w?Õ Ÿ?Æ`p?®ûµ?¯®î?¨Æµ?¦D?£¿8?”¿»?•&"?•Z?•õ½?»âÔ?ÏHÚ?“]?‚´Ë?²š™…>¶ÿb?‚¹è?{ÿu?aQÃ?K'?0¥ö?KàÏ?r!‘?XÂd?D^¨?i&§?qËd?—‰”?­)ô?¯”ñ?±þy?Ï(u?ݯe?¬ÀG?œ?”ÏÆ?›˜@! ?ýω?€ Œ?Œ¤?çûô?âc$?í"Y?·N8>Êeñ?N%È?ÄW? ^8?P¥?mÍt?…àÑ?ù™>lƒ>‡¶'>¡ËP?¬«?õÐá?£ŸÓ?‚šù?Ë‹m?ä§â?0[¥?•b?¤‘?„j?‚¼¦?„²$?†ÿP?—þ4?ü%?ïvT?ÃÆz?àñu@à?ÿˆ½?œŽ?º#?ß?@è^@"eà?²Ü«>‘õÖ?)H?Tsê?Úî@ 8ç?»Pt?‘„½>Ø8{>*#—?@Ûú?lº?*¬Ã?‘Ü?|œ²?{ÐQ=É—>9Ö> ÒÑ>Õ4÷@JÉ@ +‚?ÏíR?É@L?˜°?ÝÃÇ@†G?ð^v?…¸U?3l3>Œ… ?§ã8@™'?ëòä?­î¿?j[A?*¹?›8Ÿ?Ïeb@ ²k@l?±b=?íY?òv?ã?èö?"j›?î•{?ûI²>îwë?£ã?¥ß?›*G?'ú1?1Í™?T§*?G×b?Á¿>ÚÞH>TlD?Içù?wIŠ?©ôŽ?„±·?‡³?¡ôÎ@j?Õ´Ë?0Eš?»1l@Åá??¾ÅT?ÂFî?ÂÜ8?ÀdÄ?¹|š?ê×á@=¥?«~Ö?ª?Òþ?‘ßH?j_1?X >ØgN>ÇòF=1‚?8‡:??xÙ?þ©?ÿZf?e$Y?azP?•É9?Ž?>A2?WŒo?§¥?žÉÅ?4”ø?m2 ?ü·æ?ÒÐÎ?9>¿Mš=- >ÏÈB?›~;?—1c?€jÝ?mu{?Eb©?…ìÚ?Àu5?¶ðç?®? 0?Á¨?ué?=é>üEü>iGö?s ?Í»?º‡?ªÆª?‡~?]y$?¿S?òzx?£,a?m%@?&GÝ>ÿ]Ç?íâ@;¼?s¥Š?:Ï?îĶ@­-?{$«>þ×?®Ç?£µì@H˜@ É?·?”°?É,Â?ØÀ?¦ û?œ[.?íÂ6?ûA?µ²?hmt?ïWÝ@ÑÃ?}U?Hÿ¨@8c@/Y3@6‘¤@=×?EÇ?Ú–?˜±?¸ƒ?ê7@ë4?ø¸ÌD?Ù^æ@Ú?Ѩ*?ªh?ÀRZ?àf?Ât?¤·¼?½–H?Ø|Œ?­Û? ‹¬?y !?õ³?¼}î?¡²¬?¡üy?ªEG?°v?¹Ko?à("@G@4œ?Ì4?Á-±?¸ÒI?ÃÅÄ?î@?Ý7?Žx©?€?LôÒ?ctÄ@ @!]õ?Î4?ËR?¦b¼? Z?½0Ï?¾x)@ ’X@99?À$?‰ >Áèt>™«a?6zÐ?jåY?‘mâ?¦í-?¡/?›p²?a‡J>óCò#W>ò +?—nÎ?•C? ¡v>ñ”Ø@ã`@#ü+@#Ž¥@þ3@£š?ê¥?Ã÷þ?ªÎD?›ê&?ŸÎ?“Ûm?¢™Ö?¾p±@g?üŒz?Ò?ÔâA?¹ºÏ?·ü;?í¤?îÎÀ?oÃ?ÈE?_Û¿¢?ËžÄ?É*?²‹?²eû?¤Mw?œy3?…Mî?ˆì<@)þ@HiC@_f?ì{Ú?ø_v?ýˆ?«ç-?=?N¬?°Ð?È:k@±u@Ti?ñ6¯?ó?eÝ?SË™?£6æ=ù?‡˜Ç?œÊÏ?<&>ñe„?$Y¾?T»?¾Î?åî‡?ᜲ?œög?£…Ÿ@ñÄ@'æä?ÞÊí?½êþ?»ÝÏ?´¢I?Õ’>õþ‰?/½G?«Î!?º#@(²Ã@&eº@¢?@Fý?|Lƒ?+öª?O{é?d¯Y?€Lâ?“é˜?µìi@î +@zß?u€?~Ñ?Ø5?äb@Àk@±—?Ôdá?dG??–ç?Þ¦?âº]?ã’Ý?Þ_á@ŸU@œÅ?Ø ?À ¤?0õ?B±? †y?ë³j?ð¦?è È?Û&ô?°Ñ®?µÅè?ƒc¾?†½9?n?cï?)( ?ø?,½ì?cï0?’ê¤?ã=†?Ì@?Ú†? Já?:pû?0^?g?#×?lî%?†ª\?tn1?c›Ò?8‹˜>¸èÍ>ì"â?¼È$?ºX@¨@‹è?ÍU•?¯VÉ?‡5æ?d4?‹À´?¢jå?|·ž>ä$5>þ¹Š?Ede??Û¬?†Š ?‰á)?ÖS?ÆÈ?@S?~…@?t(Å?SБ?‡¹?ÀRH?¡„??%? ë?dhO?d|?d?d…4?Áðä?×6?¦põ?„ÙP?]3@?2 ¦?wý?Êáò?´ÌÃ?ÇE?#|–?I’}?O»†?žbc?§NÖ?,Ï«>äæ„?<Ô$?oìï?mTL?dø•?€¶;?™˜Z?%«?e ?XÆ +>x.d>‰Á?[[[?e–>„/¨=ž¿ +>´$‚>ò_¶?nû?ª{¶?n›D>Èwl>Ç´;>å1¦>Íaå>%À6>Z[a?mêI?Rj{?7-Û?>p¥>Ú§4>³ˆ²?*ZG?Za?b†K?e +?·ð=Èò‹>±Œ˜>¬‡‰>äü>áÏ×>Z¤×>wÎ>@=s>9=ó\ =¸,<Ãä>lÜê>âH>‚}h=À®S>§#3>¡v«? ‚¸?!UM>Uñ>4M¢<R?c +3?çí ?™ã?/ò„?Þ¡?qc>Hô”=gu>ÑÝñ?Ÿu>ö Â>æ:±=ät=æã?©T-?­#c@)@?éÝ’?ÿ³?ŒÉ¯>5¯>5½>Áõà>²™©=r|>Õx>ÿ´>ú]$>æu>âl>ü÷Â?Æé?S¶Ÿ?L=_?DÆÚ?ˤ>_£ð?ÒW?¨9%?æ¾?3Vç?Fœ?{aý?­¢R?ú~_?–` =ÒJÔ>ž‡>Ä­>µ¿ß>§e>쯢?4ý?;ý?Bþø?rI†?‘Õ?1 =Ú¾Î>„z‚>ú¢?59Ë?z²?.­=2Ê$>_Ç>ùö7? Zï?#°?J¾>ùé.?x?? z?/Þ+?o¦?=à?Z;Ó>ÿ›v??&?¶Ò?…ñK>ù÷Á?îä?#<>öËž>û>œ¬É>·X@>ð‘(?äy>»¡t>RÐÙ>‚œ>þ[>QÍ=Ò­6>ï1?z{’?F|ù>üO>–j€=žœü>v7>úÄ +>Áþ?>àÃ>7šŒ>¥V ?;wæ?šàY?áÖ.?–ù*>ûSØ?)+|?I7?‡½?¶ˆŸ?»û?½ ?º[³?·Æn?f¾Ü>Î(ÿ?3Àz?|]?fÛ?^¢Õ?ÔV>sš!?IHn?ŽD?8b>ü­?sÇb?š'Ó?¡¨?®sF?´»ß?»’?’£u?oçï?´ë?Ú²e?€»Ì?=¹?¦={?¾E²?õà>`£g>á½r>ýþç?fÄ?­cÎ?…µ¢?~Nä?$£>þt=Ú§E=¸ê?¬3•?¾5‘=z¶8ó°>ÙÃÿ>ÐjR>ÿá>ûNS>«¬Ê>®ÒM?Áï?'ÙE?¿©´?¯í?1ÜÍ?À«>ƒÛ?yš?ÿû6?íßß?Àñ?…<øœ1>¾Z?ƒrÄ?²g??î;O?ËcÐ?¢lÞ?p‘?*7\?á?w-?(ÄY??Ñ@?É?³¯È?¬ðõ?±&n?š+Á?–OÃ?-Þ>ߤ¨?³0Á?ƱŸ?Á2\?½æ¶?€z®?rü?ŠÝ?‰m>èZ?ÂrÉ?³‚#>”_Ž>¡[Ó?6ß?ö9?hZ‹?4ñU>¡ k>ÐÕË?_R>ìÀ=Ž l=BU<Ñ_ë? Ó?~¬D?+"Î>èyB?]ÿL?Ü?ždÎ?žà‹?I;?0mH?œ ³?¥¸?PÊ"?>¶"?Ççï?Òcä?ÙŽ?Ðè‚?¡Zö?®ÂK?â +¶?Ñ_J?xJú?€Ä0?ƒ?™¶[?Æí6?Ž4Q>Þþ?èé?ƒÈ?$ïU?*X5?FÕ?Qbø?L'?F±°>È +À>ä9?7!Ü?Uj[?1ï.?&ÄÏ?CÔ×?Q\ö?+q?'Áå?zÅu?mžÒ?ÈÍ?ëD? ?D»k?‚p¾?žcÙ?É??‘ùR?*ÙÀ?Y‚÷?‚€¶?ÀÉa?êv?Ïâ?ÃÐ ?–ä?‚Ž³?BŽ×?8¯®? Â?—¿?‡h?‹o%?‚°=?‚ Á?‚¡F?g]=9È>;-Ý?"¬™?”©P@¼C?Ø”>Ùüë>Ö{Ò>¹×û?$ÛŠ?sÒí?‘›Ó?¤‡?M}>õºF?.º?d[{?hÅ„?Nc?Ua?€ºˆ?‚½[?¹^?½µ6?‚÷v?u€‘?R? €>à„ë?¼ÿ?‚Ã*?fÅÖ?(ê?>¡A?Uð? Ú'>fá_>É‘Ù>ý'Ä?w[?©X ? {È?˜±ˆ?‡û?‚¿O?3ÀQ?MÝ@ à@öE@ùƒ@ö?<˜>ýœ“=cAê>Ãü@º??íÔª?œáE?ÿ?>¹? §û?m7?”Í|?ôØ›?Ù­=?Äñ?œ?u/¾>ó—‹>?wø>Ï^e?§?~ñô?‘86?2L#?xw?,¸D?"C“?¸ÅÍ?¿á¯?-·?ºŽ? V„?š>ŸÎy? +.‹?‘"Î?„?¼6?´Œ?”Hæ?•0§?žÐ§?Ðd@{ì?‰¡¬>^£Ê>Å@?rŸ?ÃÓÃ@áÜ@¥Ø?üžæ?¤Žó?Œ!Ý>ˆ1­=¨þ@ 1ç@ ï}?ˆí7?€ˆÆ>ðhÀ>çyš>ÞŒ¹>Òß>ß8Ó?)m†?§r?·"?Ú![?×’?ÓÙÆ?¶tà?€S ?€îÆ?hpÎ?Ðñ@+œ?äI?–\b?Íc}?ô2È?ÿVË@N?ýe™?üÉ?ž-?õ}?·@û?ÁJ@gu @r€‘?¥E–?”\¯@oˆ@?óï?åÙR?[™Á?iÝ4?ª]O?·0Þ?î¹¢?È¥û?@jC?~€>” ¨?/Ar?°·¿ß>µ¡ ?Æa?@·b?êÇ?äð +?ÁÍ?᥌@ ]@ +Òn?¶'×? ÆQ?€€¹?YŽ¼?Æ+?CtÆ?€d´?›¤»?Àû?£I®?€G?gx‚?Hïf?–ýŒ?Áe¥?OÉz>Žø’?1q_?€ Û?KF?.ÌÉ?n%?î?‘ƒ?³v–?\© ?gz?Ƶ?ô?õ5~@W?†q¬>ÿ+O?så¼?“€š?*>þäâ?uô&?çµ@,@,|Y?îC|?Ñ°±?¡y?™p»?ƒá´?~+Y?êÝ¢@V?™ã•?‹fL@¶†@çj?Ïù?¾,?Ú‡?áÚh?9žP?]˜?”ÔB?–~J?Jù>ôi>þZþ?"?«Ä|?³õÍ@-$f@4¹Ð?Ÿ,Ð?Š“?¸¢?½i@ +X~@ +™G?é±Ú?ãÅØ?×Å:?ØtÖ?ÚO ?Ü%?‡??k!\?Û<ÿ?ó5?¡Dž?”È„?‚ ?z§W@©@Š@a?ìK`@˜@ & ?÷ ?õÔÏ?øŒï?äl?ט@™à@6í?öO´?€y?lùF?YîÀ?“.?Ón?¿Dï?˜ ?®Å7?Ø|£?þR‘@/L@B­@o³ @Py®?¸Ým?Ï€Æ@µ@]=ðâ‚>‚(u?¡È?¤ œ@„É@o?¿?`Â?Y¢?\tº@!”@+è?ëE=?×{Ð?ªve?õ>¼Uq?ƒÏƒ?Ð}‘@ÞÌ@Z}@3@F?½¶o?ZJ?deñ?½ú¦?ÊÈ’?ò?×?á¶C?µû_?¸ÛO?ÌûI?Êq ?[0•?WL’?ˆ)!?ŠÁ>_ª=>'Á×?éºÃ@ @ ?@çd@5¥¥@Dã/@kJ?Ø©i?±7\?‹æJ?_9?ˆ‹¦?‹$ƒ?‘'O?v ‹>ïØ¡?#4ú?åÞ»?ç¾Ú?²ƒ†?³‘…?°Tà?¬8ê?,†>îÕI?\0z?‚‡?º??à?Ë +Æ?²¤m?˜Ác?\S.?SV?a[?†0Î?Ï Õ?Õþy@ Îa@Å ?\*V?Bïã?; ??3&û?¦Z?Ê¿C@ ô@&@$@4?è¸ ?Á©?l$í?U6ê?0E?W8æ@)…@'x¤?¨Ü?£a¤@ÀÐ@ÄÇ?™ý?I1Ó?*3Ú?ñr>ýÌò>í´~?;Ì;?¶ØÁ?¬ù"?K–É?F~»?Å'?Ÿ¸3?…Ø?€LW?ŒOÎ?‹ ð?›È?«‘?“dÑ?i"?‰Øé?»øÐ?ÚV‚@#X@G$?ÑhÀ?Í8i?ƒ5?€Ú¨?²r1?ËP ?Öø??ÓüÂ?VÒ?0K?1¥?# ?4(1?Àù?¾ÍS?®Yz?­c›?Z>¤?(|?㌻@#ÿ¤?Óм>ì0Â?7ÉÁ?±¶Š?´«Š?¬ÛÕ?¬Í/?Uœ¤?L½?¿¼š?Ô¹¶?•1Œ?Vw4?@±8?1¬Î?=ÆÇ?lÌí?x—¶?z(‚?làý>ìZ>å¤>åw;>åg$?™Ò?×U™?±®Š?t"??ƒÞ?«Ô1?¦ôî?…¹??ŽÀ>Õd >èä‚ñ>ä€:?²ø?ÅŽ8?ï½X?ùÐ?­K?dQ?h»#?i +:?6å=Yë >7t?Œ!H?•Ã?‹èë?–1?@sÝ?P4?¹0?̃z?Ñxv?ãð?Ùkã?‰˜u?†ñ >›7>£˜8?wj ?ˆŒ?p¥7?còÇ?i€g?g¾æ?ó±=‡¿h?Üj@1¬‘@)ôç@v³@ îO?ÁÞ5?§FÂ?˦w?ãöm?»œ)?¾˜?“?†ì·?J™?Ôp+?×?Tľ?U¯?ÆR?ßì§?hÀV>è©n>üo6? 3?ƒ=0?좖?ÎÉD?d1Í?c ¤? ¸—?&^?¶ìE?ă?cš-?c®?Œ€/?È›3?ܦ¢?ý\?ï~{?¦¼F?¡.>èù>ô¤z?5Ì?a?5Jì?QoÕ?{f6?ˆ*ø?Že[?®â?—›Ó?«‘à?µ >‰OÈ>v)K?x‚?LC?e.?h_]?Ëk×?ßI ?lì#?Þ?6{A?e?rc ?‡rò?{e»?)5*?)€µ>»ø2>¡ñó?Éi?.j|?Â?ÙÊ?;·-?b‡‰?f(Ä?lä?:¬>>åVœ>°øq>À>í +=¯ +?t9Û?‡í…>¹˜¸>£·=ŽÃ&>¨q»>îÊ7?1fé?eO?|4<ú\Ô=ÿÞÐ>QX3>å1>à<Ê>VH¸>8î?>‘)8>¦µ>´ä—>ÃÁ(>} ;ú ë;('<Üùø<ï·x=!>íd>F©M>vÂÁ>U›E>‡îy>—lñ<²].?Ž:?÷Ùh?©l¸?Â|?@ë?Q4?>? 8%>ÿƒ?Ñ(=µbŸ=†g?EÃè??¡¾>íU?èU?åHJ?ó÷À?¢Èh?˜û·>þÙb>Ó£=²Í¹>æJû? +·?|ÁÍ?8?l=kNœ>O×Ó>üú +? +sì?*ˆ'?1Ê«?9´?{t>’Æm>Þ7§?/ºV?z/?°òð?ž;Ÿ?{fÀ?—P®?½„%?Ÿ‚d?ZC­?V©š?\8Ü?zÎÁ?7e?p.@??£×?s >‘üÆ?TÜ?»ÁÎ?‚ä¦>ú?½>ú5‡>ú(¤?nÍã?»V?³§ú?¥þç?‰^@?]ÙD?Võ,?P˜?&ÒK>ùñù? ´?4­c?aß½?|–>? 6>ÀÞA>”‹§=ïó–>Œ¨>ýæ?k8?²¯»?«ûA?¥Nm?‚‚¹?2á|>¸Md>àÔ.?z4?ZÐ4?.Ã?`‘*?cf?EË>Ëã^?,GK?z…?|F×?yÙó?“-Z?¨’R?6‚=Ðâ=†q>•- ?e?BÐ?vË;?‹õ?¤j?{³? ™?·t?ðqK?¾¯ª?‡#/?À–ï?û:3?šËS?Kô?°Ð>üë?iº?$¤³?>ÂJ?I?HyW?;{?‡®Ç?±Öø?\Ìã>ü¶"?£ÕE?äJ?u!>ý­>öŒ>û±û?f$?=”?›ŠH?¾o?B(™>ý™þ£B<ÍÐó<ãg`>êŒ2>â2q>ÿx?^î?^œÿ?_òÔ?’äz?‹XÜ?qË?uFa?MÕ\?y!?¯#/?‘|(>ÿá¹?WI=?è}S?â?õ?Åöø?Á©P?¿Üÿ?¥HU?€7?‡XÜ?•J9?yzM?Aä¦?RÛ,?TSp?"×Ï?}?NñÑ?€Ž?Pf?1¤³? šÇ>à®'=Â"×>>:>,#—@ +SH@!t?4óò? N=ì•r>°U?F? Ó˜?<­î?:Q¬? ?y¡@?HÑo?4¹ú?;Â?9Ö?©l¾?Ö?VŠ?v¤­?hK?Wn€?/7W? \_>úÞ¥?­á?0V?°çé?ëpû?/ö.>W·Ú?˜W“?Â…Ê?5µ?¹Ÿ?iV?4Çv?­î?œ2?›Â‡?™¬¢?¯ªâ?±h?@¹?0Ûà?3?Ø?…°?|v@½ü?¼$;?H9?CËÏ?o?Q?6‘?!û?BA?Ä‚”?|Âi?7„? Cž?R>úmœ>ÝýA>ú‹ ?J?SÀB?boÄ>> +ó±?ºdÑ?°x?cq?•ó?éô?aÂ:?n[?*oõ?‚uÈ? 4?ÓÈV?¼úv?™*ª?ltm?7‹Ð?¦°f?á´.?¼y?§y9?uÓ?VÙ?™t?K7?H<³?6+?¼r?ëC?‚¾?‚†˜?‚J—?‘@g‡?õúy?­_?%G?ˆé?£®J?¸„Ý?®hã?¤M²?]z~?¸ ?L·?‚ºŸ?'%©>Ïæ!?‹j?¬³i?ÅÚ9?Õ‰®?3->°p?uÏ•?‚Âr?iW?y\@<7?÷TÓ?¹‚«?½Æ?Ç?^œ?ç6G?̧`8?fL?×n‡?›ˆA?E²‰?vqª?Œ¦#?:Þ&?°5?Z¿ã?p¨´?±ý?Ãýn?ŸÍ•?”¨Â?û@¢Ü?®?!Ÿ?žB?*wŽ?òR…?•7>®UG?´\„?£»Ï?‚3?ŠÛº?›2.?OÚ?<ó±?€g?¦ˆC?a‰`?|>È>>«M6?3S•?a ¿@7Ì@5pÀ?Ý"?º¾?„R¢?|ü=]: 4 ?(W?‚(1?xË?†Ê?åv7?Ó§$?–ñt?‚'¡?(Èï?RÆ?™êi?»¹ë?ñ?œM? ¦‚?¤þÁ?ÞÖ-?ùcñ?Ñk©?Û?‹æù?òZ?ÎH?ƒl>‹>¹uÑ? w?‚Á?ÛLý?×ÿg?e0?Lí?­ÝÔ?¨qI?šÞ,?¨ßÈ?ÙÒ?Ø0ù?‹ä?–ü>×¼°?Y{%?ÕÍÁ?¿1?i‘?hÖ?‰{?’‘?äíÍ?ÏŠð?¼_‰?¾r?À…g?˜G‚?†ž‚?„Q«?Uæ?Os?I?ªPÑ?³šo>ç'­>“Y{?¼Ã“?Ûg?Å&¥?Á©â?ãØ\?ãW<@ Ï7@!Ô…@.üœ@%"‹?S!:?nåÏ?Ô™ƒ?Íf?²ë?£¡?-?![?¬d?G¾t?¾%r?ˆZ¢<’Ø0>n†ž?:±?>Kº?€„ì?ºŒq@Ž–?¥i>„a{? ??R¤ ?l á?€KH?“LÍ?£À9?åÒ@{¨?Ÿî‰>Û²*?}l?®òß?ä!>£?Óa@æt?·›¼?hÐü?ƒ Ø?‡B?²wò?Ãê@ (@›!?ÜÑ?¸=â??æ?–?–¹È?¨?Í?¯ Ý?¯­@!Ò@¤Q?¿;”?­½§?§¢P?£˜û?Üæ?à +?Œ­/?…mÃ?nÿ?at’?Ý».?ç·?Áç_?¾1Š?ºÁí?²EÏ?Ò|?Æ”è@+é@6.>¤q=ìý?®­h?º[?óñ¡?öúÑ@8R@=Ya?‘–D?|GÌ?¸'?½z?ñb@?ü0@£ê@êé?¥â?š€«?Ö—­?Úã-?¿€è?¼p"?ÛÚn?×õå>ýŹ>¯Û;?G$?\Ûß?»þ?Æö-?¦Ëµ?¦ô@RŽ@sL?ü¸?»¡m?ŒQÇ?€'‰?×Û_?ò}×?Âõ¡?°#l?óóê@´‚?Ê€?³ím?Ôã[?ç)?ÃîN?°c¡?·Å;?ºJœ@j @"ÚR@)!@«¯@L@u0?ÌÙÉ?U?¡/?ê(ü@X~@!âX@co?Éý$?Ä9†?¾qõ?ɇú?õ†?Ï¥~?!X?€z@éÛ@ÛŽ?‡E˜?Ž2?Øt]?Ûºs?¤7Á?¢A?J‚.?B%?ÔÐj?ì÷@?¨Ý?›er?/ù?:`? çß>õúh?¢VÇ?Ís?ôæ@ „?ØѤ?¤ˆÐ?Ž³ñ?hÏY?Õ”@3i’@  o?wáÎ?}sæ?|ÄN?ž(•@´Ù@¤?©ç?ª_|?ýH ?÷t÷=­?ý‡%@BP?€ Œ?3÷ ?ñoî@ù¬@ªS?âtå?˯?®«{?«Õ?´?!?¿ì?ÙOÕ?±ÍÈ>Ñ´>ÿg?hD{?lI?oË?qV@F{@Gº"?T¨j>îß¹?³F?ÕÅ9?ø½h@»3?îé‡?Ú‡?·B¦?Žþñ?«á?ÙTL?ÈçZ?¶;ƒ?ÀÑ]@…Ò@^R?Œ?Žg?­¼Â?±˜µ?fyc?27*?™ §?½ba?µ”í?±B?Çò?êÇ›?×X?§ØK?¡;ü?—T?ŸZð?‚1Ú?ƒý6@"ó±@0E¢?Ûjy?§ðY?ckÜ?)Þü?g™³?‘“V?†Œ¸?j@?x¿k?›Eô?ž=?¥’ ?Ÿnã?–¨?šô @2Ù@Þ"?¶Õq?m#ï?‘U#?® ®?‡dõ?ý??Ùƒ?É,{?Ì7b?Ž<ï?’PÓ?e[?‡Øv?“gî?–ÀW?›Eo?§ËÖ?y=Ì>ç¿n?š?g™?~”–?Õ‰y?ד­?”¨Ú?–Oï?ß…Ô?îYF?¡Ý%?lüø?«5H?æa?­ã¼?&? ¬Ê?>Þ?2Ê@t@L?«(É?™-?iE?Šgî?ŸDÍ?®iº? ,?…kk?ƒÕ®?¦þï?­¢?yÔÎ?dœÌ?+„ñ?Ær?d³­?‚¼?Ë›¦@§÷?éΰ?i'¹?„e(?×ô?Ó[f?Í?ƒê?rH4?æ?/x’>ä½Ü?;‰ ?‚k?¯ÿ®@¬ @ S8? m"?”±?‘;\?hÜ@ Ð@&Ýà?ÌSõ?\ c?–P?äÀ?ÔR@? ^>?™ÃM?¢»•? Dò@Ò†@ ²4?’Ñž?:êÀ?’‚ ?ÄŠQ?Ç*Ï?Ř+?Ç©û?Ö8?Îm>Ç/­>© f?²ý?Ñá³?’Yœ?cö?«{?ãë¸?ºŽ¥?S(?z±ñ?ÿùo@áï@”W@ø?_ +‘?2á?·ä¼?ãø¾?¸½à?ŠH?…‚.?…~+?ñˆ?«ã?ªÓ)>对>äÂ?IAª?c³?â%›@Æé?Á¤>ä&Ï?3ä5?hk?”ª?#;?O>M>c¦%?ž¶?¶j?T á?g4?*âe?6hâ?&£;>ûDª>íÒo>ä|L? îî?¤O>?žtÿ>õrH>ä›$>ä¥1>ä¤1?=©,?d³ø?¤Á?«“M?¼ü?Õ ?¶åò?G¬?MÚ?T ?ZHÚ?¥íÁ?«­?) í? Ìi@·@'áC?¿?J?ûY?bQ?!Ï^? ó>>p€>©Å?e@†?eDœ>sD³>.Ê?GeY?eX•>„Lô;ZÒ? ‡Ô?eh¼?$‰=ÏX”>”ÕŸ?q¡>öˆ€>v1Ð>kv>¿ò>£VÃʼŸ=—‹Ð>r¬>µä¸>aÄñ= °>RÜ>‹ÿP?"ª?£ú<•0«>£>äŽJ>0É>(4y?)‚?W`>žPà>{…e?©Òz@~s?Ã$ë?¾­?lȵ?kIª?fàÿ?r¨Õ>f€<‘®Ô?UÊè?XßG?ë|?%&U?)ìŠ?é‡?EYS?6±%?ø?F>±5o>±Ar>=Fh=èDó= ·Å;É…<ÈCÐ>Ÿñ­?Y\B?3o:>üûY>üÒò>üªU>ü‡0>üa?"¡¾?E´˜>ÏNý>¤u?Rþ÷?f+4?uŒ+? ß‹=}Í?4?ÿ?²{–?˜¹R?zßì¯?8dò?}Ì·?NCN? j>ã +>zkf?ÿß?yþŠ?=ͱ>ùú©?9 …?yöÈ?´|‚@þê?žXû>KY²?Wþ?‚ïw?{Îæ?y‚Õ?íêË@2–'?÷†Š?‰´Ä?3j]>šÍ>ò’8?!L>þ´S?¢§?çA?)û?eÆE?šho?'Á¶>úàm?€Õ¿?¹í¹?÷°‡?¼ U?…`Ñ?n©Ï?@À”?3Ì|?&Øí?‹0>?ÄØ?½iU?¼añ?œ€?{Jæ?{WÃ?{gr?˜@~?³ž?ÔÄU?õM4?¶¡‰?Oö?=†>ûè}>ûýp>ü ‚>ü!>ü3Ž?H»,?|U—?R‹„?Haþ?A´?-9-? w>ü¿Ï?cIX?‰j?K–?÷w>OÀñ;RÒ>·&ñ>ýXe?ÃôR?ñ ??Ž*?Xgî?RMÓ?L4Ï?s?}í?~¥?~1?»Œ?¼ƒ?`>ªÝÖ?»Y…?Ç$?©o>þ¬kOì?­¼ù?¨dH?—Z½?¡î?Ä'?²«µ?aËV?w)U?Ó6b?·Pð? ¢ý?)¯_?Vhû?–ê?î9€?Ëk*?€‘´?¨S?€<2?€Eö?€LË?‘?@ì@%Ë?“¨>k†ª?b&³?“?o¼?RÜZ?©¿?Á Ã?b>:Jr?”XH?µyE@s^@ @%?È.h?¸Àš>ð»X>Ô@ =ÎÚk>ƒ§¡?Üàs?ˬ{?#î?ˆ+!?£Ád?˜Þ£?tÖ…?qˆ?O%?f\l?<9~?)Ò(?iu?‹-?é[®?eö?Â>’MÚ=Ö‹ ?`ê-?•øi?·Œk?¶¸>\>êJ>âoÖ?©t>?¦»T?£p?!ÙX?¦/Y?©»H?œ­\?¡K?Ã$?ƒˆB<ÛÝ@? Šê?¶©å?ÎäÒ?ìò÷?‘Sm?'¥?™)•?Ù·Ý?: Î>^ƒ†>è;8>ÿ“?8 “?OV/?7J?,àæ?Ið‚?B9é?}?ÝÐ?Šgø?…Ž?ä¶?NT@?¼Ë@=UÔ€=Éì>>é>Ü'´?G0(?Q¨ë?\q?ƒ{?Œ˜?®ê?¸?ªFm?Ýî?U_å?.Öó@%¯@IÙV?ÑSr?¸Þ?Ö„?Â.??}R?uø½?D{? +ðé?*è?÷@ í?ô)?¥ªÝ?£Oö?«A/?Ã47?Ýlþ?´K—?‡aù?‚Õú?‚ÀB?”Âp?›ºO?ر?ñ‘?.A«>É¢D?Éü?çs?—al?^1?Áž?É4¾@Ê¢?é€?‹?¨x=´Z?oÒ?Ô_l?àÊ!?ðˆ?ãÆo?ѯ˜?•L³?@w°?G/?V3Š?É”?õä¨?£¿Ï?zÚþ?I˜ñ?HßM?…Ê?Êý?.ÀÚ?$ã?…E½?‚8? +)’?=Ï?¾³Î?™'=£«û>Êpi? ¹)?¯pÜ?Ä ö? ý ?T’ó?˜zÞ?Ë €?\ª>{á‘? K?8H¤?ú”?¶ +?¦\ÿ?Ñ!è?Óð‘?ÐǨ@§D@¹@%P@°Ÿ?„ Û?s‡<¥@ö>wÝŠ?Ë"‡?¯Ï>Ö˜?í?’ü—?²?‚”É?dj“?5¨p?”2"?Íóo?³Ö ?œÀ€?T—ý?2è?r*o?h‰>’µ,=Èü?~n5?’l?%–? oƒ=æ=†µ@vs@B;?‚XÛ?”@Sò?íßÍ?’?~ú?Hµ?E½å?ªÔÖ?ª<Ù?´î%?ÍMí?ä¥I?µ¼Ã?‚,O?ØÉ@? ?Ñü?4>Ù|š>ËV?š6U?ÃÙ?½E‡?½Š¥?)_R>ÿTT?±_?›N?­«Á?®ø¨?‚NÇ?‚:Á?ŽûÀ?‰ù?Ú>?±J?—}ô?ô?5¬`?9ì[?>'ì?šxÚ@á;?í­“?›Ð ?™©?—…á?Š +¦?kz¬?@Óü?c6?#ÿ/?&KÓ?a‡î?†v +?í?«#@sä@ß%?ß<0?»D1?ŽŠ•?N@Ck@\Ç0?¥‰?5k‹?yÚ?,V?½˜[?Á¯ë?nÅõ?D¨@}@^@}Í@ÀÚ?öÇ?:ŠŸ@ + u?ù)^?€Û€?Î?ËnüŒU?Q-Š?¶g/?Ÿ¢¿?€‰r?Žò}?¨†þ?·#æ?»MË?§Fy?•¹9?.?§–? "Æ?²[?èO@…¡?Ñrj?šÀ®?« ?¼R)?£;©?ŠcW?ÔÓ%@¹Ñ?mñ©>ÕQ‚?Œ7ß?²x„?å=,?ú0@.øæ@?=ê@$ˆ@6?Í7?®Š??7U?‹Î“?¶”ô?¿ô?ô²8?þ¨Ÿ?[¯-?/}?±Ú¶?¾Ç@ˆ‡@äT?ÄË?®Cß@@@Þ @àV@šh?·dÝ?®G´@îu@&@‰&õ@à?Û`ß? ?óG£?û§O?…˨?7?‡SV?‹a«?Ÿ1ž?§Ð¢?!£?©„@]@ |J?ÁÈ®?¼ü?v6?€éƒ?~Åé?{ W?·È¾?Àœw?ïÿ&?ï” +@ p@&žC?2a>Ö%¢?½õ?[+?ÃÝü?ÜÉ>¼ä=ÊL@?Çò?ò±h@Kû@ÃG?’©=‡>?Zœa?ŒÞ´?°‘\?» Â@ Ù@Ám@×°@ã¿?¿[?“¢Ò?3û?Ÿqù?¯{ ?ºP¿?•–ª?x:?¤Í÷?È°?Áh?¼L“?›U˜?[ô?,l?¹‹t?ŽÚ±?9h?²è@2S@5µ@7Ý@ð$?~‹T?°?jʯ?a’p?ZºÑ?&@¬1@?l?äç?ÜÊ¢?N\7?UÜÀ?u¶?u)c?@4–?8FA?l´Ü?t»b?Q¬ö?:!¢?Ÿ’?·6ý@DÝ@>Ý@ …?ÚWÍ?šy5?IëÅ?»'?é?43ì?u ?å¤î@NÀT@!¤¶?r»?Á¬N@c™¡@[¯è@8‰Ï@1D–@Ê0@®©?$¾n?Ó'?Â?¢©?¸Z¡?²T‰?¡”ò?¤õ?ИÙ?ë¡:@ß@¶'?é„f?˜ +?ŽMý?p!´?,¬×=½<„>ù˱>òZ>ðÂ’>÷³º?Š°õ?•>?ÑÈ?ÑŠŸ?ç_?î®â?Ÿeè?¥ƒ?|;ã?w^”?W5ñ?){Â?zû?ÌóÈ?ÆAP?‘8‡?‹àã?m`¿?lGÒ?´—?¸¥?´Û?¾H?É?:?Òvý@ +‹¤@‡{?éA¹?°Qø?PÔ=ktà>·mÈ?w\õ?x™Ò?k”?r´Ñ?Ïó?Ëã¾@ÄF@ 3³?Ø l?Ç̦?­… ?—ǽ?¡W?¯Ý”?îi?éŸÚ?üyÂ@6›?Ô"†?­¶Õ?ÌÑÙ?æñ??õCC@–?äjÓ?}a¾?²þ?hˆÍ?ht@?Îf#?Ó£¶?HÙÕ?»J?QÚñ?h$¹?• ?¶?¡ˆ‘?ˆn ?Œ%?­˜?­!??ª/?èa@È*?Ïr?­5 +?dw‡>õ«’?$Û¬?[œ?W5?RÝÜ?Sä´@Y’@{¶?íœj?áÃ*?«mi?“‡ò?}9?kÈ?™°?Î%O?´AZ>åµÉ>öø«@æg@À?­Ë?›æŒ?íþù@ ¾ˆ@G@+áÛ@ Û4@ šc?íac?$2ê?1îà?×bÆ?ÕÊ?kÁú?=j}?e÷ ?u×Ú?i=ˆ?d³?UV*?5…÷?bãè@µ@ +g±?¿#X?Á%U?ûÀ@»ÿ?”àÈ>öIP>æ$à>í%?Ín?o7Š?…ão@Mz@Øâ?¶,?¸‘u?XD?d?cÞd?{ª?›§r?²Ó¶?º¡É?ÎŒ¤?Õc%?Ê¢?’Ð8?m±Õ?cø>?^"Ã?`þ?ô‘?¬û?Ñ @Ó?ý o?ãðˆ?â6¦?“;H?˜t—?&§?b?d?’E?yÀé?Ri²?nš=?v¶¾?mœ?”œ,?˜¨±? 9‚>ü¸½=š£Í;Ùã€>Çfi?2ˆ?Bƒ­?M×Y?3‹¢?Œç? So?7˜J?,>hê>RHÿ?{<Š?†Ä>ò'•>n&>–H>‘Þw>øq½?]Õë?C±o>ä‚‹?Ü–?«l—?«rõ=þö=íôÎ?eÙÇ?ÑV?¢—Y?¯ ?€Œ?E™R?ˆ*B?Ã4³?©'->´ÇÑ>Á)>Í•>Ú•?_I?gà?_K?V´'?h®º?Šhx?K}¶>å2?(ÍÕ?nö?Bùä>Ä/á>Übq?„­Ý?L¯?ebú?ef“?ej›?ep¶?žL>Ü>a‹ >6>†iÅ>¦6|>иÞ? Â? ý±>l,>‘U?Æ-?±7>¶Á=§ÈT>ÈDÐ>å¨?F†ñ?e¢™?%>Æ>n¤ç=ïwŒ>Õx»?S8Õ?Ò–=Ž?Xu?"*î=Ø)­=–ʵ;»µ9‹(<˜ïÐfÎÎ?$'?)é?e Æ?kâw?‚ó¦?r8p?™¡ß?÷Lµ?–]¶?_TÒ?WÙ>ÚW=ñ·KH> ’Õ>K 1?jõ?Sys>þ ~?F°?´¹5?syj>)Ïø>ŸÑ/>ýÓ?T–?IÿV?B‰‹?;½?‘^?å?ÿÂ=ý> ‡ú> C>‘vÏ?zn?4ä?jG»?­ ?ï®1? ÆG?"{J?Žš>úà ?TÎØ? 6?ˆûj?7¢e?f?›õn?¨Ù>?²Ï†?8šÀ<{¹o>ýs?z+»?:ѯ>úQ>vßç>©oÌ?-1°?]†í?{NÌ?Xè‚?H„ÿ?b`>–<>ÿG2?MS¹?RW?·œ?x7>ý°:>¾Ð¿>´-$?©[¨@g?™¢>¦¢R>ûƒ¶?47·>»"=üž>.0Ü>Æ—õ?”Z>­¨=‰¼?Fû?¾â?{„M?Jÿ?‚é?²•v?yú}?€z?P@Ÿ?zþ˜?˜Àó?·”$?Ì”ˆ?×À”?™÷‰?Q‰À?XÕ?^y?Y&™?[5õ?{%j?I°?5M„?L\?Cb¤?hÜØ?'êÑ>ü¦?2Š?O˨?;0n?7H¼>Ú(¦>b3}? +½?P¢¸?üá>üÍí?wÛË?¡ì?Òa?ïØ=@Dº@™l?¨M+?n V>öŠÑ>Ýß•?xL?&ð@?mΤ?}Õ8?›=Ä?žÔ?Vaý?L@?ÖßÙ?ò$ë?¶JÝ?±û?ðœ ?÷ÐY? cÑ>þ¼3>úÚo>ïÜ>ã [>ð¤ ?˜Fä?ŠÏ'?KÌ#?rÂ?ÍIº?Äð0?½â9?¾‡?¯Â?¥ à?U÷&?e|B?øÌ?7?=‘,é=Åw>I:\?Ï?òr?Ü÷?É?±4?O>äªT?£Ÿ‡?ý?ÕÎÕ?§†Ç?³Ø³?Àåô?‰7²?XJÄ?œj"?°ôù?€i?lÚ™?†*? +/>ý ¾?F?õNø?ütP@IÄ@‹Ý=¾2?x °?{s¦?4h\?UOK? ˆÿ?£g?¦E|?¤ +î?—Y"?G®]>§>Ôa?p > ü³=¥F4<±Ëâ?8o?—4?n‰?YÌ:?Œªw?’ºú?§þÏ?­i?õÆR@Ƶ>à<½>q?CvA?Múh?S‚Ï?is?Ëãw?¿mp?Ve?wÅ@ç:@ /Ÿ?¾w]?}õ.>ßH³?‰æ?‘LÕ?›Áµ?¼±§?ÍÄ?ßv²?ì×?š›Þ?Xú}?ªr? Hã>°c)>žª"?‹?À?–›?À«?Âöz?‚cÈ?…öåϲ>ÛV|>Ðâ>ánË?‡?ŠŠ?Ž ?=^”?u\º?“¤C?¦ûâ?©:ã?©°ç?txô?["ô?Oª?BN9?~c?‚ª ?Ê‹Î?ÃQ;?¯—?ûÈ?´±?g€Þ?·?O¡Ë?ÚmÀ?Ö2è?Ä ?áWÞ@|y?©ô×? ¡?¸ˆS@?¡âz?Kž ?”Þ¨?¬7«?¾Ì¦?Ä1ó?´°>§ÇG?¿–?Õ6?ò¤?ù‘D?…öK?—|3@"U1@)­?µ™Ë?…N>÷Ùj?Ä>¤?Ëñ?ÚKˆ?ܽ3?ß.?ÅÀR?¦;Å?oç.?,x¾?ÑŽ°@ £@¹Ó@Ôl>Ì s?³€?(°?ûWç@P¹?¿ÇX?¹U?Îæ? Ç?lé?Jê%?¢²Ì?”ÈÙ?‚Éž?š G?Ä-?¨uv?‚ÅÌ?‹ß×?›®?|Ÿ&??ê¹?iî:?‚À•?KJ-?- /?aš,?e×~?ë @¶e@h@+Ž?Í ?Æ‹…?Ī?±r>Å$‚@7¦@v4?ß.‚?ë@ Xö?ËìJ?.W±>ùE>>Sy ?K, ?½>æ?´-³?«ÞÎ?N‡ð>ÉšÞ?ç†Â@$Ä}?ðËb?ÔŠŠ?m›Æ?1 °?ë…‰@t\?5?‚og?-ð?L?Œ&?ùZ?‚_ó?…œ®?š•j?£»s?²ñÉ?„ɘ>'Ý>ÔV?gâU?†Æ?Îhw?Äß¡?ÃVH?¢?‚2è?«r2?ÄŠ;?•?ó?lžJ?Ñ>Ö´?¬dÃ?Õ+î?‡ç0?qk#>G+;<2õø< <ÊI.?—_?ˆ/ë>?>>r©p?é2?–·@?ê@¦®?×%?g[e?Îx?Ê~?ÅQ?€†@rß?íÓ6?©<?¡´Y?˜[G?Ë‹?òhå?±Ïä?iõü?¡:y?ÂP¯?·\ö?µ¼¾?xI9‡@¨Ý@@l\?š3É?½ì?o_b?T–?ñ @Ç+?W8Ü?)e¼?{ËH?2_?j§â?rê>Š?¾>ŽòÄ?…ŸQ?Žu?ÁŒW?·Ëù?Wñ~?"Æ@º·?ü¶ó?›çÜ?«z?îÔ‘?òÝæ?öæa?Á§?¸ë?M7?ûM?â7)?Àî—@ x@G¥@+Ðö@ [S?óº?Òã·?à”Ü?ꇲ?èz=?æeÉ@>£@Å??û1¼?çG?¯Uâ?ŒŸ`?XBŠ?+©a?Öù?@@º?=?‚u>Ü>i>œzb?lÕ?.,Z?yš¦?…5:?²a?Ã@+Ÿ@<Ñï?„ÜÕ?$ƒ4>ƒÁg>RáÖ?)'@?Cã6?êœ ?þµ?t0ñ?LžÂ?µVs?¾Îr@7}@=³ò@»é@fÔ@žK@ú@(k@&ž?†hõ?}¬*?‹iµ?‰éà?ÄÕä?ÅDä?ððI?ös®? ¾ˆ>þA‘?ô¬ï?õÊ9?U?|²q@ ßÉ@ ë@•ô?þãç@2Ñî@3¦=?ëPU?å/Ä?$xª? #?ÿô?ÿqm? q™?šF%?ËàI?׃@(°@^á?Ä0z?¼9ä?öï?Šzõ?!?Ë?!?­?,´r? º=¥¥†=UO@-p@+ìO@¯@”F?÷¸\?ì¬>?”ë>?€¥}@ +åÌ@%Û?º5~?xà/@C-@2¿?Þ®»?›ü?à€\@fâ?÷) ?íŒl?‰,Í>÷ÞÙ?E|?÷¥U?ÍÍ°?£F?²¬?ÀÝÓ?¶Ä?®b±?´q×?¸Ðù?§”›?všp?v€g?vgã?„¯Í?£|)?¨‚?Õ2Á?Ñ‹µ?Ÿ*Æ?°ÆÄ@(Ë*@ž7?.P?1Éì?˜F?˜aB?–kU?”q ?§ô1?±Ú­?§yç?¤ÖÀ?Þ¤¹?ôð@Å\@&ÂT@&ù@(Õ·?âö6?st ?°›¬?ó'@\Ç@J1@@ èF?ü“â?»mª?Ä®Ó?ÃM2?ÄÉ?hÔž?vå?ŸR?œü³?UZ?A}C?¿’Õ?Ø{%?ð 7?è?‰™€?G†œ?a>†€«>íÂQ?,t?T‚S?ŠGE?BÌ =§Za>‚©R?wðc?“oÈ@0Lü@*îi@ È@ +ÏG?LË„?9bK@#S¸@:Ÿg?n$Ú>¸g?d¤#?ªŽz?a”Ñ>î?ÞÞ?13d?_Z}?²;D?³þú?¶ƒ¶?®ˆÐ?‡îi?…çˆ?Ìaˆ?Ö +?A®?BÜ@ 1î@Bâ?ð+?lj¦?ŽŠ?§£R?”?kÕß?’¦ +@­ø?ôŠ?Oâ2?[•?g£·?sŠh?ýH@ +¸±?·4ð?‘š5?¤}ã?¯è:?Š€ ? \?O ?¯™B?ªe ?‚pl?€ZN?œ?8T@•L@(—é?“|ß>éÏý?x:u?²_U?¶Ä“?½ÿ#?®EØ?hÅ?qð¨?ž‰X?œiÛ?À$?ÄY?¤h>~:?¡eã?å$?ë—P?þMó?Úm;?‡}J?‹«t?Ùø?“š?g[º?gI?rV?ošb?Ÿa÷?­¼?«÷E?§†@?‘‹>?fµä?{N?¡…0?ž&³?’±e?—ó?ïaJ?ü{?Û~ ?ËyÀ?TÐ>SÚî>Õm‰?Tu¡?Ió>>å¾8?¼@É¿@ uð?<)>ÿ#î?“ÝV?±Áð?Ñþ?l±E?¸@;U?ü<?Q›?TJ@*¡@Ø%?¯?dß[?‚t?Œ{«?¹qm?Ü#[?Çñ“?¥ñ7?‘/³?Bxï?G,N?U­Ù?AÒƒ?¡þ?°ƒ?«?ª»?õ…?_3M?]ƒ¾?dBÊ?`ƒ(?Så(?gRÝ?½° ?½¤?dçõ?38N?%r>ë!µ?åT?6¿?Fck?[ö¤?Lá‚?=ÄÙ?.›)?Ow?YòÆ? h>å ©>]¼=˜t&?l_@|Á@¾y?¸xÎ?¶z?ká?¨?§Zm?®Ò?kß?Vu}?UØ–?EæÜ?”Ô@1?Ù;^>¿éü>Ýäa?«?«?ªƒÕ?£ñ ?u¯*?Tc'?(yÈ? òi>ËâG>þ&?3[?óòY?Ù¦)>rª>„k·?Æk?ÏÑA?‡À‘?dmh?¦n ?Ð4Q?“ ->ìN»?5/J?¦Wm?“¨ä?þ0?ãq?+ès?W^?œ€v?«‹Œ@ °Û@$?±Mr?E>àp°>»°ø>Š€@>¬r=·Âp< À=a…v?Cji?e(¨?‡÷?‹Ž? n^>4£Z?/j?«ÿð?”d¦?9º?Fê€?|mo?‡u?T\?Z¹1?adë?ew?b4Ã?[@ ? õ‹>µù€?"“?@C_? >Le]>ªyD?í•>ìŒÄ>]À=èx>¹ ¹>Ç«ê>ãhˆ>åÐÇ?J•?eÐW>ºs=­2Ž?,Ø?l}Ü?S–æ?X"?&"œ½¶~>̦x=?•>¶©H?1?³!?+Þx?#Ÿ?Y?2ŒÈ?„uÈ?çS?˜ÅR?ûÚu?–tN?Clþ>mE>ê¶B?Æ'>û'¤>ëKF?$¾å?5O÷?"Ç?.z?N‹?4¡Î>åd>‘ J> &ñ>ªK¶>P‡>€(³>Üû>ïr>þ,?Ì +? 5?2_t?LtÅ?'j5>ý>äË>ל«?Ê?B»¤?€)P?§šN?‚+å?n ?1ð›?_Æ‹?rß=?{mÿ?™þø?¶£?¢äã?—‚Ù?[n/>úòK?$ÔÏ?Dtf?Ï’>ú­·?[RÇ?¤ýg?‡Ý?6²R?_×L?„Žá?<–M>úEe?>Ô‘?z6ñ?±;?Ö€°?ríd>¯U>yÕG>M\?“\?~öC?[i±?+vW?=×?Y9?Ä&>P…?Û˜?n‡?7½·>ú>nÆÔ?+·?¬K‚?‰L?Mi¬?FÆ%?@(>²Ë‘>‚os>úip?-ab?_g?Cs?¿Í? ºd?øs4?n½B=¼Ð>µ¸?){K>Ç“r> .Û?s,ò?Ëä?‹bä?:“ˆ?•¼ç?ÇÀ?–Á©?Kt“?>©`?1á,>¥OÜ=Tg±?vV?ú±a?¯Û?r–¤>æ">0+²>vj> +Î3>†06>½n}>íGO>üpÒ>®æ>‘5;? ™Ó?'‹³?8â ?7Ó#>††º=à„= *”À?Ò•?Ÿ³ò?´þà?mz?@v¦>‚èÖ>+¦P? J?6.Ý?p««?ƒ ‡>Äâ™>Ÿ¡†?jý¶?hx9?¦O»?¡©‘?µ=?¹”Ì>û=Ö>þLX>þÛv>þïó>ÿ?x­?¿_Q?°µD>ÿOÊ?,å0?Úù?Åwz?@ŸÑ?CL/?2í˜?8jþ?NM?Kß\?d²Ÿ??ÓØ>á+å>“£>ÓÌ©?z÷2?u&*?oS]?5†ò?[>jð?½‚?€}è?ÎCj@|˜?¯¸?Œ?³Ä?Á|?iÜ?€¾ÿ?+hu?û*?ƒçÜ?‡‡‹=Ë  +<J?«•?,ò}?žDÿ?¦:h?“6%?‡68?WëÄ?CâÇ?1Ë?/Z?¡RÚ?òx?MÅû?ÅŸ?­A?Šwx?¾’?›y>Ü·i?C ?…xD>æò?"ð ? ?£È?¨º?ŒŽ—?’Ù«?Þ¯?ìÖ:?»·/?º:(?SnR?@;x?²Xù?¡óø?è·? ?¤?Gèõ?TI?š K?Žbš?væ”?Xf?`k?0¿ ?w¯?ED?=?¬!??€G?¨ç1?®MŸ?³±i?¥äj? `!?/׺>í¤>ØT>ÃÆ? "?°|…?£EG?¦æ?Xa}?\ny?½K?"µ8?Í©?ië±?ƒí?G,?sC·?ŠÕe?§‘Õ?oÍÉ?H?.qå?Tµ?NÖR?I¨È?o,?|?X_?RïÝ?8)|?*°þ?Ñä?áÂÇ?{<Ú?r+x?ïk?ë2?Õ)??Ãu?;óÃ?µå ?§¤?Žôs?Òh?GØ)?Œþ ?ÅÂ?ŠÝ?{?‡ÛR?Ãg?‡mq?:ÃÛ?š¼Ï?°ÄÓ?¾Ôî?Ä<¿?Ä@ƒ?Ä?Ï?’Q?Šßƒ?o£¥?„;%@n?ô`b?Œõ­?©´?ýi•?ÔÛ9?PÛå?¶Ÿ¹@)*?ݲ?? +2?«lé@­»@q@Ûk?¸Ä?Œ­þ?€!’?~Ï|?æÕV@ܘ>è×=Ôãœ?§xÆ?»ÈÇ?ñÜ?óî¿?ØÝ?j ?€G6?ˆFx?µ–¨?› ?32Â? >†µ +>·A?rë?C±´?‚Íq?gáß?G‘œ?iê}?‚Ê¢?>ÑÝ?!œ¦?*öå?4Q,?Å\‹?æ<?êãü?ïˆæ?È?Äž?üly?þþñ?Ä@?»àß?sìÅ?†XÌ?ÕúÎ?òö@‹É@%‰ñ@:äà@Ï?–y~߀? +›æ?<]6?·)»?ãóÌ?Ë*W?ÃÐÊ?ˆÍ÷?^Y‚?ýK?®(~?ìD?ø^4?jñ?ƒ°?;Ž{=?'5? +†—?I,ÿ@;è@êy?‚aã?†!Š?“Â÷?ƒìJ?-]?6 ¹?Pž?´¶8@šv?ש¤?‡5 +?¤-»?µš?ßÌu@Ëf?î'­?â~ë?Ò*’?Ò h@)¯@= >í¶K<öåý?©#…?›?½”t?·^?‚Ê?ƒŒ*?£”Æ?£ÐO?æ[?ëZÜ@ò¶@›?Ýù?d.º?Õ?Ñ›?˧?: ?Iüx?9YÊ?!fZ?+l%?*8C?¤Sk?òX?—€Î?39?‹wÛ?ºÅ-?$O~=ו="8ð9¹¯]?IºÚ?’V¾@2z@òV?õøe?é®? ={>ÈÚb?¹?CÕ?Ì‘g?Ð_÷?ûô?ì{?'>ùGû>jœ>åé?Ú¥µ?ÎNÐ?—£?“O*?`E?ŽÉ±?õ'?Økg?€Û©?„i}?‰×“?`øß?Ö?_¡®?Ãá?”¸Í?8ì?DS[?ü?Tf|?ýÄ?e<—?“‚©? ¡„?®‹?ÝÛd@\O@â @.ðÊ?ëi£?B?ƒt'?d Ï?‰h“?•b?¿F^?Ñ–?¶|v?¦Ùd?ßF5?öài@ò0@"O@Ü’@>•@8Ú6@þ“N?ü"B?ülÎ? _Æ?F$?œ‰%?¢ÀÐ?¨€L?®Uí?ò¸?øʼn?ª‡ü?­z`?3Øó?5 +@)Éó@-)?‡"?…ZÖ?Œ´?†2D@ °®@Ž†?²%î?¬4š? Ï.?£´F?€é ?z¡¯@Y¼2@o+3@'jv@Ãá?•%?qe?ŠXj?•÷l?å±?ðÑi?‘Rø=ž1>Mmq>ùŒ0?y‚?î±?Ú²?±o?˜J?)e?V‡-?¸‚m?¯|ç?uÎ?|£?·}?ÂOà>õ^É>õDa?rJ?|&?ÍL³?Ш@?É; ?¼o??„{;?tce?¾jù?Ù A?ºå"?­9t?’¹|?7?{Ÿ¨?w° ?t¶?v ‚?—ÖJ?¿A|?ž> ?;Æ;?oÈ?©Ù„?žù3?raŒ?…ó.?ßˤ?Ôų?€Ì?’Y¹?ÓÜ?ÔX{?ÐÚ?ÊE@ ¦@6–…?ÖÛ˜?Švâ?‡\?ˆ ?žL`?´Zh?Î œ?ð>?Æð?g×u? @¥@S@ƒm?Â:?2lF?õ»#?÷ˆš?¤3ƒ?šíç@1ñ@tL?©)Ž?nf ?À?¦ÃÒ?· +e?»¹?¦¹º?’ãÜ?“$=?šGâ?ª*Í?ì¶B?ì¤o?¡×·?£½ê?qL·?lò?‘Îë?8“>Ô‹Ê=´_æ?VÚ¸?°³ð?uÄí?² ? +Ú7?³¿?Y ?øˆ?è)€>ëyÅ>ëaž?ªˆe?¨;E?Íwô?Þº}?]#|>êÃ?>Q²?~’m?†¥ ?‰r#?ˆ“?AH?—ŒE?¯}‹?®Ù©?—G­?[€?Õ?q5?É<Å?æƦ@!Ë@Bv@=èp@9¶³@&·ó?ûl'?à*¯?9¡l?Aâv?õŽÛ?óZ`?gªb?0ÂG?Ìûü@ôÌ?Ô¦ö?Ÿ´ƒ?†Jù?:v?>ÈK?^üs?N›Ý?ggš?gPž?§"?­_±@…+@?¾] ?oŽh?n-Û?f¾R?Œ…í?Ù£¼?Ì.6?Ýœ?/L?Ù!³?æAÏ?·8×?«‰*?Š•?V…?h=ž?uBC?J› ?Ù)? +AU>Šp>^Rø?S\}?e€¬@ +P@+5,?·¤z>ïºÅ?½¿5@Ae·@,kx?ͱš?Ë#)@Ïf@é?MÚß? âc?}À?û?¿ ?ôh›@™«@‚p@*Ò>§‹~>µ$³@ Qœ@ +¼Ú?ñãè?çÒï?›%i?d¦k?§.Ì?Ûƒ¢?¸f†?dI«?a0%?H ?C?ÞI?ä.?¤ÏßO&>‹ ß?y,?pm?óÉ ?ì‚ ?Ä?Ë©9?Å™>ð.5?H?cM¤?b>Ï/g?y„V?îaÍ?Ìf¿?0Aˆ?;kL?:i³?5*ú?ðÄg@+-?ÁÔ¿?«?ÔRØ?ùº&?îÌj?Ïéû?£Bx>\1×>Nj¶?¨4Z?«H?sxª?mXõ?-ç?Oþ?.®>?DâÐ?p<>5Þ? ìL?¿Š›?ºä¬?Ä6o?Ý­±?Œõ?duD?.pÙ?Õ‚?a"8?«O‚?‡¨? †>ø©_=­ŠI=þ˜?š½[?—Áß?Z\8?Y˜„?Æ!y?øgá?Ƥ7?˜p‡?¢c?«¸ª?™¨?W'??OÚ;Óˆ:wX?XBqWÏ>GB6?ƒÞ'?«ø•?7N>›j?>Vã?3 å>åv>¼ìZ<ô•?ŒI?œÈ>沺>ê×?â¶K@—f?›…¡?H@l?,3è? +r?`z>è,>?©9?T(i?Pãø>©Wë>µP‚>éÄ=’ÎÆ>Ò >åüD?‘rp?¥Ðù>ØQ›>lcë>ýÒ>c4 >/‡;ÙÏd=\ª<ÇäB:ÑQ)>± Î>Âœ“?ñ#?$ +N?Ò}?#3>â´¥>.>p¥‰> Õú=ÜÇ=¬—=$ ò?P ?˜Öi?·7?¨>´==[;?Zá4?€ 5?}?h)?júã?]Vì?aÇ?Â?€¡?w|â?3¹?æÀ>±f¤>ëG?~Û_?8lã>'…^>ÿþÙ?P>?±y˜?‡NŠ?Sq?ZW1?“\ñ?C‹É>ŠŒ=>êi©?4¾ä?<é'?TLC?ƒñ?—Ff?”=,ÿo?vŸ?{€T?D—®?JR?ƒþl?­Ê ?‰¯?O¢Î?™¤?ÁW>?ˆC?3•>ÏgÍ>´Ä?)v ?•h:?ŸÜ?ªLñ?b–|>úÖ?Ñ?µ(C? “ð?—ô›?QÁ¦>ú$g? ½P? hn?Dí?o–?TÄ?Nµy?7ÖÊ?Õ¦?@¿¿?iÔ^>àœ—<1y)?³ý?rr®?'ep>Ïô¯>˜‡¤>‰ù >¤±!>¿^£?9â?zRˆ>äK>ˆgB>ús1>ÙÈb>ɾ ?b:¡?«¶?g­@>ý _??ÿŸ?bßÊ?©Ë?£+–??™ >®÷Ï?6ÖŸ?‹<¼? Д>¿è?L¶Â?–M?«6ý?¼’‹?«Éý?¥D?gË?˜u?U=u?} ¿>Ú ¸=ÃH\>ž¡’>Ê9¢?¡p?1ß>ßL>—ÝÒ?. ?=ƒ>nª2>ã0?0:?‹“?£Ì?F%‰? íë?¿^>ÿÞ§?‡µ?µcA?»:Ø?¾*?³w?­‰Ñ?‰©Î?s‹¼?M‡Y?CæP?×Y>þ¡>ie0>2±?É3±?Þ#@Òà@ +ß??ví×?t/Ç<Ê”<ÖÆ6>þâœ>îs+=›p–>{ß?¿dJ?º6u?“û¤?V=?㸴?Óæd?šYú?†ï +?O\Ñ?m¦g1ƒ?Wm?Duz?€N?=·0?_»>Õª>ª2@?;à?€€ü?}<Ç?ƒ8?+žr?£Ð?]ÑÅ?‡,?~!?›íG?dúÚ?b\½?éÐ?ý¡Š@„ê?ø;{?·RU?¬¬? ?)?‘Э?„–‹>³a$>µ¨>`åí>Ý…ñ?„87?Täÿ>ÙÎ?¿Ø?`œ?u¬?fò?8©>È[Ž?r#ˆ?ÂJ·?ÂHÈ?½y&?ZÙ§? „?£¼?9n>ªoÑ>’š—?ºY?Ú†?S´P?<š]?ÞN?Ú‰?¼T¸?¾Z¾>¬§¶>þ¯ +?²¨?dz@rî?Øæh? ë]?/ì?»D?sw?‚j?Hûß?'Ó?oÊ?¥?f‹G?+-]?0’@?5õŸ?ÿ|>ù´Û?8|s?Ks„?|ñ?‚ZÃ?»Qy?¸H0?`<ê?D½o= ZÓ>cùõ?º1ý?§ô¿?j>ø¼>>DV?įJ?»øå?‚Ý?Ÿ­ +@à’?ÀÉV>bÎj?9?Ï3‡?¬>¥à¬?·¦(@#˜y?ç“g?¦“?mÆ?n]Ø?”M>°?Ø?¶–D?ãX„?4’›e ?`€ ?‚Äþ?‚Å?‚Â$?Ç›B?ÈÖŠ?xÿë?”+§@C@2¯?¾ÔX?áL‘@5D@.O@#Z<@6XÕ@[&ó@*)’?Ãúö?R[‰>\¸>‚_£?z©,?º¯ÿ@RŸ@8Ê?õ.Õ?ÃÖê?ܽ‰?è(©?M³?pK?ƒùÅ?‡ör?Ç؉?Ãío?hÈ?‚âR?¹â¹?¹ÞM?ÖTs?½;?ý?q%á?àJU?¾«¢?‚Z¯?‘ÖY?¨iS?°‚l?Á??‚Ö†?Dä?dŠS? ýY?ƒ“?[sò?”´?¢k¬>ûä><Ö?“#?.}Å?*¹??u@?‚ 8?ûZØ?ý›n=á>K,Ï?A?‹Š?_\f?{Æã?©¡¨?¤cå?â?¤!©?÷Þ?«S->‚¨“?ü]?”ÏD?Qÿ>½·ò?wµ?Ï“›@ñ@+¤?ï¥À?—Ÿ?ƒ‡|?u—r?ÏOm?ýî3@÷ž?ÿ£ ?ûø?øÞÈ?Ø.¹?Ô‡ˆ?ûú:@^/?Ì4w?¼}é?e!x?W+·?=?l?RºL@ +ÂÌ@_Z?)Ò?ì>ã9§?W@?àù-?Õ?‰Ï?!]?~p{@o®?â.F?˜Pª?¯e?ò¸Y?åæy?ÁÒ?mÁ|=®‚V?\ï¯?ê6…?²Œ`?i®€?„}h?‘cË?žÍ?¬ák?““™?€lÊ?ž‰}?¸)4?åÇ5@NÇ?×´ù?Àc:?®ô]?¨s?ª‹?¬ ?ÛÎ?ïú@t@²¥?Ü?È }@$éo@9Žê?±|?€&:?ë ?@´Î@_’?ÿZê?Çîõ?¿dï?ìeô?ð9”?߬?ÙYJ?ÕX³?ÑU-?¹Ö?–ã@C @Läé@]*Þ@Y2£?¡ýo?˜C?Pà}?S ? ??••@?}D?~Òf?qEy?`¦@BÆ@é@6Ãò@8)§?}UX?€n?ýW?øs´>üÙâ?Üß?æ…¹?Þш?'È?)@ +è4@ò´?¦yá?£ Û>ûÿô?¨×@ ™@ î?r„í?häA?àþu?ä€Ä?¾Ô?¶·Ï?°ÝØ?« ñ?Q?ð?è˜?›3F?©‡*?°üÈ@/]Œ@;XÚ>ªX›=Iõ +?\¯þ?yéw?²%³?»N-@ #}@¤ +@Jî@/'@H@µˆ?þ?0?¤Þ*?½ )?oeê?*ÿÆ?×Ö_@ã¥?°>ø!d?€iˆ?³ø=?º9K?¹ÌP?‰óæ?3Êå?‚™?³÷N?·6W?¹S`?¹>?¶ßž?¡Îª?…?¼?HŽ%>R#'>Õ¥”?]&^?QR3?•âR>”ƒW>õdU>ó!Ù>|­>…™$?‡âÑ?”·í@ vÿ@t?xv?2óo?‰éÆ?“+Š?Km?‹f½?¢—?±íù?²>Ä?´Šè?ô#–@yš?Ü ˜?~*V?vj ?`#…? z@ +xÎ@ê?Ðn]?Ú"ƒ@\¯@U?œÛ@?šÜã?Ð7¯?Ó@M@#ø ?ãâ?Ë2À@ïÙ@— ?õ8£?Ѳì?;õ?ÉÈy?ÑÏ_?âœO?©é‹>ûá?nb?p±)?O£•<驘=çõä?†¿z?ŠŽ¨?ƒg ?„Ü"?á??îÑ?Á Ì?²óœ?‹¤?ne'?£®·?Í«`?«Ÿ?yüÿ?jÕ?@(Å?M #?m~×?t¥?”f¬?dþ?A»Ê?I4O@ê”@'›•@‹Ä@W8?“ù>úc>‹E=5ÍÌ>¸cN?X—Û?}Þ…?¾lu?°" >ë€7>ëj?u6¦?§F?”í¢?”£Ÿ?z˜?a¬Ž?;é{?#P¨?dŸ?œÞø?™‚;?„ËZ?„J?¯‚Ï?ª>õb=Ý‚?ÔS?êâ?Mþò?!?±'R?ü7Ç@âA@3û@½J? >­?•š>è¥Ê>ë‘ì?¸ãÔ?¿-„?µEÓ?­ä?Õ±¨?è ?Âöï?ª˜W?¯yÃ?­Ê?¿N?ý°ÿ?ù™É?v» ?rZs?¥ú?¬*s?­p6?°kò?­\¯?§L$?±B?fÂÉ?ªÛ}@oÅ@BP?­ÖÆ?§<î? ð?¦ó?<®%>G–?1Ô?hÉ?jVî?dÃÖ?•Ðà?Òt?³t>¡Ë’>š•M?䈖?ä¡@·@ ¬\?ö›M?áˆ?‘;Ç?±?xÜX?ÎŽ?»·ý?d?á?d6ë?â +e?ä07?¶%Œ?«=?²>>JÊ?K?„Ó?¡?óØÉ?é Ý?&1«?òw?WâŒ?aç?¨?¨î?ÂEB?ÎUO?¿èþ?·hß?™ >ãýG>ê³Ê?·ë?$ýV?×9ã?è–†?˜¸?:'?òM?›}\?äÊf@%øH@rE?Ú¥}?Òk½>ä´Õ>îƒF?žhë?¤SŽ?mÛ?K…o?XS-?d<'?Qø?5±Ýo>›> =*>­Ør?Y"?t5'?˜ù?«b%?ŒÖ?gt÷? Ûê=jœÐ>¬à>¯¤ÿ>©:f??Ir?KJS>ü74>äÎU>äÝÎ>äâ(?c•?”¯?¡z?¶[¿?Žó\>å~>å"¢>ä®Ò>æ¨/?Ú'?ÓÌ?Qô?)Ù?4ö^?H‹>?oYK?k‹t? ñâ>7´Y>±>åˆÆ>ßAæ>¤º>™Ñ¤?ØË¥?ä>A?r’˜?]¤ä?7ý?I6 ?ŽãM?šÏð?G]ÿ>åéÚ?$/ÿ?eó†?-|5>ÚÞ=ûã=ÃÎ~=à$ú?QQc?_ƒÞ>ôE¹>æ"î?Ë?Ç­>Ftô>YžÇ>Ð…>l2‹=?U¬>×7Y>äZ?>âÉÊ>Ôwé?Hø?N|?»?z•?»>æí>O_·>H¸X>åú>ò§‡? Ñ>¾ÏÝ?Ìåq@ ×Ã?«èˆ?›’? Ûz?aÚ=:¨}<‘Ž@>ûÂö?U?´CV?¢->#t>\šÁ>à¹Ø? c-?V-5?e‹G?V&ç?UZ?K? ¹T=¬½9?“Ý?½®?st_>?âB>µ[8>ý_>öwo?Á9?.üŸ?@|¹?XÞ®?|v?*Ýã>²ºe?€m?Ú´?’{>??@òK?{ˆú?tà +?ib¿?s:>Ábæ?=ÿ¥?{?ˆ r?™šø?Z» +?^? ±a>úŸ;>íãä>´wŠ>»= }5<T)<6?ð±?…4+?¬Á?z;=>þ‡;>.ÌZ>õË?6~?bâ«?…Ÿ]?XÏ+?%lÌ?AM?_]W?j\@?L~í?8N>øªÌ?„ +?¶HÜ?Ì +¦?Ö +>?Âö¾?¯B¸?;'…>”Ÿl?Qí?›µq?­>¼DÁ?ÛI>…)M? £?xÁ(?wìô?zØ?ƒì^?‹pº??ý¾>û _> „o>W©›? +”7?0EÖ?J ?¥“&?‘x?Šÿæ?/_ë>Ó ?…¿¯?¹ b@¾@:xñ?©&2>ÝÌã>O7=ÞM~?m°V?¨õ_? øž>Ta@??h™?|‡v>ãI>@>Ž´ç>Ž#ü?Ë?ŠÓ?ne?ƒÛ?xã¡?|˜ý?€¢?„gO?‡ˆT?Šª—?K˜?G(Š?¬ ?—)³?ÁœU?Á.?N u?5 Q>¬–Ö>ª­ ?7x?œÙŠ?òX>ÿv‘?3?‡û?¾¾L?­‚S=!®=g¿P=½qn?Cþã?P ?\€?cÏP?hÓJ?‡¤¹?©0?š)ã?-¯?@>ÿóè?pØÍ?ê‘?Ê…v?Šc-?‚É(?? cí=+ƒ@>¢µ?ͳ>­§(>ÒÝ? ª?SD?>!æ?:$y?Ìô?šC?4û?ŸÒ>Šº?¹’µ?èì?^ý>ƒu:?bä?~D™?‚°=?†Ž^>¿Ø>t™"?å?µê?¯¸«?¥Èß?u•ã?Bò>>¥Øâ?KÀ>òßú>¿ð?>ñ^z?9U]?&?t?ÊÊÜ@0`ö@ˆH?¿5E?g^? í>c_=†bª>É?´?¥p^?µz|?mIê?eøì?OªÚ?F†@?_@0»>ÐüÛ>±òs>%9Š>Žë+?ÿ[?§ïÄ@Íe?ÿ…ù?rî?Q€+?Ç€?Šd? ù…>¨ƒÏ=­?(G?’o?CÏG?B³èÈ>Ò =?Z?Â?˜’¡@i¡@u£@q•?÷4÷?Yé? c?{¶?TÀƒ@Šñ?Év½?‹?¡”?.« ?Dåd?d$?Š”ä?˜ðõ@º +@/9M@ßô@%ª?ö?àFÇ?–®?_]?º÷?”©R?_1f?3T>Üÿ>ñÈu?{;]?@À®?ëE?}nÀ?|Š?‚ÊŽ?ŠµÆ?Ÿ?^?–Å?‚Ñ™?–K?¢¾¾?Ûàù@×»?¶R”?‚Ø´?ô‘j@Žü? tZ?Vôn?ÙΘ?õ´Å?àŸ?ä‘Œ?‡5ž?†ìÊ@äx@37@#x@† ?‚å ?V€±>£0>ˆû>ÈȈ?‚èT?Jhï?çã?Ná§?”ï4??~e?˜à?ªg?õCŸ@˵?¨§?“1p?÷³?ål>Üù²>¦ÛÝ?ÄW}?¹ÊÍ?Iw?;Ê?øš@·i@sN?ëŒ?à\?’û@ïV?Òü?`\y?v$T?Œyý?¡™=?£H@?Õ“}@;Ð@g@ +'ä?‡ß ?;f}?z“A?‚Ì”?1…?Œ@Dk@nç=ZÑï=ØÒt?ˆ¸Ø?…à·?)S?d?ä:õ@Õt@#d_@)Ëæ@7Aó@nï?Äb?œ¤1?YàÃ?$1…?¥Œ?ƒ£?³žr@{¤@9îç?ð] ?Ãá…?b=?‚‘ó?‚ú?‚Œ?²R0?º:@{Q@à‘?Â{Ù?¬1> F>ü€]?ú¸U?Á¬S=éö·?0?ÿ@g¢?Öç;?‚`¿?½l@ \?Ú±è?£0?] ˆ?Kx>æxƒ>ÀŽJ?G7?xZŽ?þ'Ú@01?Én¢?£ +w?éã?ý·@Z‡@EŠ>R6h<¤6?…ÙU?Šñ+>åí?e@gŒ@?Ø?¢8»?¡fú?®AC?—Ϻ?3Ê?‘Ù˜@ 7—?Ô‘Å>û¢?NÄv?² x?¶ 9?¯Ÿ¡@Rp@9?†@ +{?‡]?ïÓZ@¿ö?”—?™Ï?n­¾?†ð1?‚&?„ÇŽ?çG^@|~?ŸJ??‹p„?Tí‡?Vhù?ÉË?Ô\1?6³&?.aÌ?!i!?¾±?î¿?£­Š?¿¬?´7à?œÂ¢?ž®l?»¹•?¬Æí?'Ä‹?AÔù?=4?ð>ð@€[Ø@a¼â@ 5?M‘@Œ ?¯!>ﻶ?­=å@™³@#4Ã@'Ô@„?ðƒO?¤&Û?SÉ?9>Åa? +ú?9È:?…Þ¦?¢Mä?ßÀ?÷A¶?Š?"ÛÀ?’t"?¦ä ?ÅoO?Ï{E?kWë?-kó?ÔX?øŒó?Ï#Æ?Ã3¯?¿t?¿‰‹>Š_°=ò†è?á°3?ÿej?Kàð?.y ?ðcM?ÿð?Ô9E?ÒÒÝ?üŽ?þÐ>?YS[?G¼§@ _@õu@Bê@I>t?Œyý?Ždì?XâÒ?S•†@_å@?›ù¹?¸‘@3¨Ý@4Ù¥@*‘@+;í?wÒ?€ž?½[?»ØÇ?Áø{?ÀE­?lÈO?€<º@1œ¶@,Y??Í%N?Ì&@¾Ÿ@I?½.î?½¡?©é'?£Ýi?¼fè?ÀsÃ?¼Å`?»—4?Œ¯?‘Žj@ø@ó?@ÚÚ@ÆÑ?™e.?’U @/ë/@5ok>ÃC>'>ïÃ5?Èë?«éY?¯u?´gº?³•š@ KÆ@g‹@.@ûH@AIð@FÝ ?Âñõ?šî?Ž€¦?„Î?¨è +?¹ìT?ûOÜ@—Î@k2@Ê?¡Õ¬?K­Ë? Ø9>ÀÅý?£Å?ÒLc?êùf?ÿ÷ª?Á°¾?„ÕŽ?™ó>?·Ô?Ÿp?{( ?ªÕ?êãÁ?ªŽ½>Ï /?,©Ú?«3ã?š§?SnË?ÔQ@¬,@>Ç?ªáß?¥>?ŸK^?—>?,ɾ?!B+>LÙ‹>8L>çÎf>ô°²>ÕÐ>¸Rþ?ÖQ?ÿÃÙ?ïÃÄ?ìV ?œDá?le?3Áo>ùM??È–?ý4?èUë@)*W?äuÐ?J?*$T?kDL³d>h?‹éR?œ4ù?ašê?Pjã?‹ý?˜ªs?ºî?ϘÑ? ã±?]*¾?ƒÉr?§d?«û??Îñ–?ʯ?íWÑ?ê_ö=›S"=wÐ?K;?eM3?ÒÃq?ì¿—?qkø>ìaû?ÿÎ @Pf‹@n? Ö,?c·1?ÜÖÜ?ªS>ëŽO>ëv'>ëX5>ë>?†ÚÐ?’uí?¾v1?ÉæÌ?£XÆ?‹†?¥I>?»¨G?Ú@§Q@Ñ¢?œ²ö?¡=>?ª‹?¬@ wl@óD?ò ›?Þ“a?¡}?„¾?u?k:°?wSÞ?há?C^>!]H>iÛŒ?·Õ¥?³•È?’¯Ÿ?•àÕ?Óê:?èÊ?ƒS¯>çì?côF?¼Š?¡/¡?=˨?V.¬?­™Ã?­ˆ)?tiè?gÑO@a@(°S?èÚJ?­3Ö?¾®D?ÏU?Îή?Ý9~?Ô<Í?mâI?zúM?Óö¿?Îß¹?š¦!?;«?k. ?IÍË?.á~?nÅ?;!¼?’ß3?•FÜ?ƒ]p?}§—@¦4@ @Î?Äjþ?ªªÃ?¨^ý?¦Â?ä}@ß´@E ?Æì®?Á• ?¿‚æ?ÁÊU>µ0Ã>tP?c7Ú?†Úd?“Z5?œÂ ?¯ç?Ìq¶?Ćã?·.˜?¶Ó +?Ýšö?ßú4?"ÿ>æd?Ùbè@ " +?¢C>ä]6? ˜Ž??ä¢?4Oe>Ž¿">¦à]?ÁÔÒ?Äb?¯ÏÔ?«"p?óô?I•¼?¯¹?»ðº?§Åµ?{¿­?‡A.?Ö•À?Û«÷>üŠ6>äÀ?“Pd?«?¯aÙ?´F½?‰Qi?+Àf?"Ϩ>äE>ä +®>ä–>äl?0•?E5-?j÷¡?bÙž?K[Ç?I2­?Ÿà?ôúd?ÛöR?iO'?p[ +?©~?¤'m?Ú „?Û27?‰P?d8h?4J?g-?>_9?dMÚ?‚l‰?¥zo?œÕî?†&>?ƒKi> Êü=µw¥?†è9?¥× ?¥à]?ª³Ö?d–¯>óÝ¥?J$?=ÈØ?7Xõ?Ed•?KºÙ?Ç]‘?»X…?>²Ö?'kd>üƒú>äðy?—fß?Öº×?Ðu?ÌÂ?¦üÙ>û­ž?ôj?a†H?cô¸?åCø?åO>?05\? ±>ŠÝ;>@;?ä?tŒO?@£>å‘ã>Î >®œE?!sÜ?Ð?>?Ƭ;³/EëŠØ?”„?‰UZ?‘DU?†‹W?‡dµ?¬ +>Z-G>ãLŽ?7oÊ?>tþ?4ˆ*?l¥>ÀÐ(>¼ˆw8 €È~ª>æT´?¥™$?¼Z¯?2>yô? +Rh>×ÊO=ùÑæ=Ž¦;x,Ø<óÖð=s†'>0>sÿð>Ø^!>æk:>a!>u¨Ú=ܶ>Œëä? “?z?YRþ?("@%E@c‡*?~v:>Šs±>îÔ¥?^Y<ûT`;’Yb?t­?oò?Žõï?‡?˜>¨›o>€Ž=Ê1ê>Õ0È>÷9§?K”Ë?Û)>5øù>Ó+Q?~sÊ?P/#?}:?P>×j>Œèè>õ>oW¤>›˜R>÷ø^?=Çm?E?L:4>Ï:>ƒñÿ>ûý?A¡ø?{Ã?7H?€ë?Iœg?{^¯>ØO>Ã8?/7?dù?x÷‰?@–¦?ÙŒ>úË +>ú§{?h1?Ó‹?…:°?Rc?H£ç?o½}?r9?zR¡??,Ú? >çÞ >œ¾&?h³?Ÿ‡?!:“>”;‡?þý?/y?¦¾>ú-@)“@K‡?­hQ;{ŽR=†Jê>${?™/?N{+?b‹^?vŸu?±m>WL>?*Ó ?¸ë?*w~>³qæ?4…™?zŠ[>褖=”ø>ç-=×Æ‚>™5§?-?LRc?zâ„?zíu?zýH?cöð?O7I?)µP? ‡Ó?Œ(K?¼x ?†qU?Pa4>̬ú=ñ¶Æ=¾‡=‹_ý?3 +Û?‚‹È?}|”?ˆk?6z>üw?tëÇ?(9?"Ø*?ã§?€?Œ”h?QŠ×?BÒC?€Ö£?ƒý?{(?|Û??i9¾?h³??¨]A?¹íÁ>¡ddýº»?š¸?¤ÊŠ?Õ)æ?ÞHm?Ö_Ü?Ì?->êŒÝ?èM”?ð¯ ?Co?Lî?Ãe•?¼Æ@?÷¤?¸O?ezØ??ߣ=š(È>ÿJ^?.[?N’ö?<ƒ¾?ß#>Ù5Ø>‘££>ç›L?T²>?HŠ¨?P>?6{ê?l«ú?¯c'@%ý?«ti?ìè?8ì ?eõÌ?,.?Zœ>ÜÏå>·L?>›±?€|ã?]2ß?Dô??0˜?9pa?àθ@ +=æ?q±m?Å&?j–°?€Ðu@èî@Áµ>F3†;~{Ð=¹“=ÜÖR?bûÊ?l>ï?Ù¹™?ÁÎi?MæÎ?I"?IË? +ÕH>t|Ó>Ï\J?:-ö?tÓ?®öð?hïá>‰nt>·®Ô?y¸?Ó?ˆÈ? +Â'?Î?Rov?{=K?kÏõ?]ç?+?ºn?Y„’?}Ô/?¹î?Ó>èák>þË?£ê+?¥)î?î–?yÝ=?)?//å?gçP?†~?ºwx?‚öÑ>@à=?"n?(V?,¿?fþ?Ÿˆ?_«o?$ä•>°—ë>5šÌ?¡?=?߉¹? 1>~¶?V,4?lû?Ð +J?عð@ +e@ +,@t€?øfÒ?‚{í?vÖw?£t?BK{?ÅeÑ?Õ¨®?ð”/?—A=ÁVB>’’k?œ??YS¤?™( ?¿@Û?ç¹l?ã"?åï{?êqQ?ê%²?¦1û?—ãa?¾_Ù?ļ@9ŒÒ@GBî>+ÓQ>½?, ‡?F»@ÇÈ?êÉž?‚Í8?f!R?2?d{?µð?²I?¯þ?qôl?ÙD?šÙ?â¨^?»žö? îÆ?Ó™ò?ì´ ?Î$?ÄUö?¦Ôš?¦/?§û?è?Á£?‰œÚ@’¼?ýLÃ?Æÿª?Õ(H?ùY´?à¢;?¢è°?¬È5?ŘŒ?¸3?¯oI@e?¨ÍÇ?‚íÆ@Z0@?Ô?»SÓ?–;?[?íš@:ÕD@>E?ÀÿÌ?Ã`…?Ã(™?௸@?“@!ìX|é?¡a?/˜l>‡ÑC> š¿?/…Ú?Q}ó?½q{?Ä8Š@3âÕ@5È"?ÁT„?»µ¡?‚ȇ?Œù?¶•óc?{xÖ?°Ù?çSÏ@C¼@0Þ¢@FÞé@!þ>@™?ȵ?·¦?…(S?€­|?üT"?û +ì=úÉ=û#®?X? 4?hú?p{?F§‹?„Ôù?î{(?ê³f?ÝèÛ?Ãè"?ŸäÈ?º24?ÝãL?¤˜ï?6¥è?¨ù™@Éy@ gš@;«@6H?ë’C@ y«@\?ëÆÌ?Âp@ ×@ ÷7?±P&?‹ö?é!è@“?ô*›?í[M@ýÐ@¾4?œdÑ?”|@?¦¡?ºH™?3û¥?A¦?¤iâ?¯x@S@ ÛA?¦ãš?š‰?.Š–?=ÆÜ?o?‚S?³ £?¼<?Ę̈?žÀà? n?´ÓI@<ò»@…2?ÂWÀ?Š0?¿…?º¹@ ßå@ ¾?èùú?Ä N?£\5@¥c@ Ÿó?ÅI”?h£n?Púí?E×Ð?Æ?ZH?ðJ@ ^é?Å,Õ?‡£–?ε´?íÃN?ã ?ã ?¾X?µ~.?¾\Ã?¿ôÛ?ñŸ}?ý=š?‘ù?€? (v>í/u?"t?3 ?„>ÿF?Pgª?bf£?¼Ž?¿??„xÝ?ˆÃ&@ ÇÃ@yI@ d@Aó?Ü[¾?Ø™P?e;M?cz?Ô6æ?Î)6?E¿?LHš?ýâv?þ…£@Ã?ø§÷>Œí_>SΪ?¦ª?" ¼@+_@‹?øä?õ•?ë# ?ù£m@oü<@m"@[Mm@K5?M)Ž?q|?ãæ,?ãY#?üù?õO?{í?…M@êš?ÿŒ’>ûƒ? +wL@P·@g«?Íò?Ób,?û]?úòç@?@;Å@S‘´@Xm»?‰mö?x*H?”¸?ÝT@Yè×@dD?ç÷Ô?Ô“ò?®"æ?®·?­\!?·Øø‰)?¬í¢@Ä@N@˯?Áa=«®>‘ÅI?5)u?dº’?¦Lº?ºò<@¿@‹Î@0!{@#?¶&Ì?¸Ä?œ$?Ò?*ºU?&‘I?"­?Ƹ?å…ù?ðÕ@ @æ~?ÇU*?°_?SÁÙ? +üÿ@“´@T|Ï?û}"?sf^? z5?ÍH'?þ[Ô@†?ø‹¥?—uµ?Œ‡Â?ræ?zm÷?Á?Ÿ­³@mY@'”?ñ“?í?Èž§?ÀÜØ@nd@ ¹)?Ùª'?Å ˆ@'(§@K¬Á?²Š>ü!?ÇÜ?g%‹?CÅÌ>þçS>ôö?Ys?^~ ?éÃ’?Õ`?2«?:ô?ãUÛ?ðn?™ÒQ?„#~?¼ÍT?Ó( ?âFq?ñ+8?Óû?²‡7?æú@ô†@ö@•4@'™?àè™?Ü}€?•?ŒQ>îb>ìÙ_?ùRä@·?>£`=³`>óïa?hÙA?Œ©i?˜ ?¡ÊU?Á\?À ?¯“?®Á­@_o?þƒc?EÜ°?2U?xD?¡y?¬øø?°?Û‰_@”?Ð$Å?9~¾?3ð?=p? 3¿?qÞÝ?m¬l?­5‚?°ð?2ò?˜÷? ®?Û?ˆ0&?ÁN?ÐoÖ?îæØ?׈œ?’jý?ˆl(?‡c˜?¦H?k¿?\Lñ@pö@Àê?¡•??ƒOJ?Í@Û?“«>Jœ«?·Ü?²©¤?åýD?æg¼?½Èz?»—?ÔûM?Þ |?ø&N@ ¤9?þ?Õ?Ò§·?ÈùÊZ?àC¦?ÎEÅ?ŠÀÒ?6;?pGþ?r[Ø?«Ð¾?¿¼?Èþ?Õ.¼?¼»ª?k€?’U™?€tê?q•9>éN>>äÆ?Tßÿ?p/Î?uY¶?zT?†‡ã?Š"8?„æ?F0?cÚž>ä D>ä e?sO?\É]?›@?±æH?tVP?b>²j==6->Òo‰?«¸b?Ž>ûId?¦Ä?¯44?¶TN?€ˆ³?d<˜>Ùéu>2Î4?#i]?@Õ?—é§?µŠu?µ­Ë?™›{?œˆ?;g¶?(‰Ð?b³V?k£>•‹g?^9@?›ž?·˜ß?…÷?5Î?s M?å/?Ámà>öÙï? t?ˆ?Žwd?ŠÉ?ƒƒ? Íl>õ9X>•ÂÖ>Ap.>žä>姚>¸”•>1C¨>^žÎ>÷—þ>ê~Ú>å ¡>Ú{=^­-=™j´>o >ăŸ>³Ÿ>¹¾ò>œQÂ>[n>¡Jp>æ8¢?.«?‘´â?léÌ=N’<®þÛ:´<>Ñø¿>Ä­>àçÿ>æ;?¯NÇ?ÚË)?Fow>Zû|=´Y> øZ>´oK>†C™=’-¢?JÏ/?;ÜÚê>Q’q>a=>>=o=bìd>ßþ?VÑ>>ûõ; {@œ4@HŸ™?Ð&7?®¥¦? …)>ú¬<ô:Üz€>oÍ>ªI¹?áp?½w»>=">h”Q>ƒQ>·…$?MŸQ?mj™?œ«?—ߥ?~Þƒ?wŽ[?ux§?}`¤?v·¹?mÕ=²f²>ÊÀÀ?3%Z?°>ýÐ>»n>…¶>È£P>üJ>ël‘>·$Æ>Í3w>ü©?DÒ`?{ËC?3Qœ>û–â>’Ƙ>A7T=Á¯ >—RE>û˜?£?H@ú?]dß?r{Ã?ÝV>½°î>ŸóC>E¹?là’?¹J4?”¥X?zib?60–?ci?|÷>úN4?cQC?‰ð’?Î&î?ú=ä?;sì=ÉôÛ> €O>ôh?&ºv?ê)>ë¤á?Ù µ@YŽ?µûc?XçÒ>»Ì´=ð­¤?âq?Nçˆ>ö4i>ˆØÐ>Ê…>úwæ?ob?&¢I?I(|?]ÔÇ?, >Ûr§?Ò.@s?ž=>ú×9?è˜?7§>·Á›>‡„?:Úù?{Ü?MÈ¿?9QÇ?‡û?¡þª?€Ä!?NT?+Èð?)×>ðtL>ÞƒI?±0@?÷Þî?zà ? D?â>üG?$ Õ?A"?q°Å?p+Œ? ;=?¸ú&?núi?5J?®×à?ÒKv?“šÊ?|èa?cMW?D©û?\´c?rù,?|U¬?t4â?63?±>£>¯Ù >øH->ýÇU?T’¸?jäð?w8Å?į?²*/?ÄJ?–„Ø?šZ? ~7?¦1æ?ˆe?ŠË?õ•’?îAs?É?ÜC?îq?¡.>ÈAÅ?œl?˜o?…õ?3=ƒ?(}>ýì;>È()>X¥‹?(‰?7êÖ?cNÃ?@¾??‹ÃT?ø¥ò?áÚ,?¼A²?ÖÝÉ?ðÀ?Ž6?`„>‘¶©>@?2Øà?€ƒ?PØF??A:?E§?JøH?¾Û¡?Ösf?Ì ]?Ò·˜?8è?€Õ‘?µ'y?½<³?‚aF?}w›9'å+=®Â?¸•S?²­?ž„V?Œ‹â>#6â>®?N>÷×Ü>ƒ€¶?56L?Ó>?×0j?í.ã?È]?‘sl?QïÈ?€¥?(æ?1 ?¹GG@CÅ?¬\Ð?¦ô?­Z?´þ?n=È?bëq?]lX?WñK?Rsô?Lû”?PøZ??Gk?I'Æ?W;?™Ð?”)r?‚?oåØ?ð§?> ©?‘w?G0Ä=…(?L=?ýž?ˆä‰=t||?V²?DÔ?DÔ™?D*>Ìú>>¥më?—/¿?Ã?:óø?_[?Q ]?o¾?»<±?ȳ%@"=A@ >»?à ?Ü_>?‚‚?¯ã½@?à/@jj? %]>ê¦í>| ?H•?P³Š?'ù6?¢M?Gª#?‚§Ó?¡hl?¯?teü?Aÿ?”!˜?©Ö[?xT +?W?¨?Ë?´/ë?Ÿ³?—pl?dˆn?Œ,s@:Ãa@2ËM?Å3•?ªô?ð?rßÙ?äK?Ô;±?ÄH??Øš‚?ð|˜?Õt ?¶ßå?‘ªÀ?€,?„?átp?¸¹w?¬?,?­]?ž"?:W=?4§?f?mº?xV#?ƒaô?Àæ—?ºò‘?…1¯?ˆØ¹?‘O ?£0g?ÄmÜ?·´Á?¤òæ?tov?W?cŠâ?¹k@ ÞÜ@4žö@ m?ðj?‘äô?US?YÂì?P8¤>jªô=çþÌ?=M?=Î@©J@¶Z?‚ñ8?‚ó?„X??z˶?@¤Ç?{í?ðÑ?Õ[È?¥ +?§²*?¯ö[?¸t~?Ä]+?–.?nÄô?\S?@°?;ýZ?7Lï?p{u?‚ß™?YÌ?FG)=¸¦Í?°·?»ªˆ?¾ ?"Ã?&ß?æÏ? /1?)/ˆ?Š–|?º#@d?ëã¨?cŠÄ?~®G?˜Na?Ÿu+?œï•?Þ &@¯ƒ?Þ•g?É()?Ó{?Ïh,?û6÷@ul?ÎÃ?ÃóÅ?×ó?á.É>—|ï=ðÛ? +06?=5?ï@?hÀ?‚Šp?sÆ©?äÝ?•=¼Å*?3 2@ +¼ ?囈?—€?o2f?‰?‚©®?²à?¥ëì?¡§ä?kuÈ?!Tf?°îY?î!€?Ô^´?Î9Ï?¯è?§æx?¬´Šj=K©^L?|@?$ï>@Á,@`ô@!7?æ»"?‹ªÞ?<õ©?‹À\?™ã¤?ç=@‡@]Ã@œá?Ð~?®xš?–Án?ê;?‹à»?‰ÙÝ?Ê`%?ÑZ?ѲT?ÈÞ;?ˆ +?¸­?yjI?tÑ}?¬~?¬ä¸?ÚR>?×]Í?Ñ^ù?ËcN?“Ú?”¶o?lS?•Ù@>úP@=ÍJ@Œ@ô‹?¨†{?¶ @."@4ˆ?Ô¯?ÜE—@ó?øÝ@?ñÒ?ö@">@Kê@;¬§@1>ü?{+Ì?<ÿ@OÎ@ F@J@àC?Çr?Þ•?žmL?µK@ +qý@’>§ …>ëÖÅ?üO)?òŸv?–A1?œ§`?œ +ÿ?ŸU±?öÓ¦?öKÛ?*_6?7ñg@‡b@ƒ?7½9?7©o?å»æ?êø?@Ì!@ Ž?úÛ?úšº?‡¦?)@eëÙ@eßã@D­4@E-%?›Ê¹?Škz@)¬Ø@/('?>ˆ©>ùt4?KXú?`wà?¶·-?Î"ä@' @3‰@ Û?øª´?ŠÞŸ?L¡ ?³G>øAç?› ?Í]¬?ºù¶?¯~?Ö—°?ñü?òíi?ô¹ù?Ö:Ø?¸À6?„?‹?*ÉÒ?:?rËð?– ?¥†ô?Èñ?²kµ?ŽYÓ?³aª@1¶@ÜY@#0 @4a?u‰ê?zµ ?•Ä?˜/ì@FM?øëÒ?.C?/á@dÿ@-Úá?º¶B?–¿ï?rzO?h¿?ÉG€?î^?£E÷?}¡­?Šê?éLJ@‘¬@)iâ?ìJÌ?vy?ìbÀ@Iï«@¿s?rà?›{@¿¿@Õ¥@*@%÷o@+ì@ê?ýW?ÿûý?à»X?Þ=Ì?íáß?ñL?£ñd?ƒº‰?“?•ö3?a49?Z!?Ãâ‡@3ÖÉ@•ç?­¥I?­ÞÅ?ºÝÒ?°ÉÅ?Y¢1?^°V?³è¹?¬N?®Uh?µ‘µ?Ô—?Ö#Æ?Ï4š?Ïi~?™Ì?xÇÍ?kùD÷>ìä6?ÿÿ©@íT?¤”ô?V±Û?‰÷?žQ†?ÐÄx@?¿_>ÑM×?-Þò?Æ-’?ÊLò?õI?ÿ‡?}r?b«?ZmF?R6?¦Hš?Ã(6?“Å…?O=g?2Iñ?­h?(Þ?ºY?•î±?²?° b@I±c@H ‹?ø£ ?Övz?òž?ù°Ê@ò@ +a]?è?¬â?Àcç?èÃŽ?×Ë>è’>èƒ,?jl?yû4@ +Ï@"dÀ?ÙÞ¥?”6%?‚·°?gÔg?;w>–Ýk?®·@ +9±@IÀ?çtû?çJ‚@H}@$=©@(u?æý&?¾õü?ŸÀ?‘¹¤?f1’?mwö?k2§?„„y@-@@>’?³³?¡)f?ŽZ•?…šS?JŠ2?š?Sßr?¬hÚ?µ®U?à¸"?áÌ?h g?e—l? ñß?§k)?©÷)?¬)?±ñó?¹Õq?¦ÔÎ?ƒ4K?§Ä&@@¥@’X?†ó?”¬?I¤‰?7þÉ?¦~?Ó¤?¨¶?d½r?,‹?£JB?¡×Z?y¾?j­:@#RM@(V•?µoÔ?¹¯?½»?Ø© ?Ä}#?¡ÖÅ?»f2@yM@Tß?dH ?d>¯?š9þ?•|W?­˜ ?¿ÿ4?¾ý?¸(Ÿ?qê=.Û>ÙH@ +A’@ …¾?âœß?Ûm¼@·k@zj?¡:»?dø?t^?„}r?‡ƒ?‰¼Ò?‰V?b€?Wså?ì§Ñ?õü?:J>äï?uüÀ?¡Ô,?g¾E>ó[a?^yâ?äó?ɤB>ä,þ>ä0®?vz"?~ìb?–LÈ?˜AŸ?C ½??ë¹?ûÛ©?ÁZ]?: œ?R&é?‘?‹ì[?Ñ#©?Öõ¥?¯7?ªqú?Ò’Æ?Ú"0?_wF>ªd™>à [>ä¼·>Ð|2>£ì>Çë?'`¬?-uõ>ìǪ>äóž?¤S?Æ?ã•»?îs?à,ö?ÛÎE?ä +ñ?å>3?ÖÀº?ž#„?˜Ÿc?žÆ“?›ž‹?H&°?N?h?£Vh?ªèr?\&­?ôK?*A?.íU?=èå?eÊ°?eÞ?eä?u6)?¨—? “à>Âhr>´°.?ßà?‚ñ>¯ ~>|8?F8“?ƒt?HXˆ?Ý?„¦?‚->ü}¨>æ|Û>Å,²:&W =yÑh=¶Š,?9hC?A_Ç?(1?¿å?,=6?$$ >äx¦>‡¹á=ï7|<]ê(>"ó>^¤Ó9® >V®>•)=Åóæ>›¸*>ùní>t‚$?@ù?Ó"?W¯?#ÿ= ÿn;Eg„?yƒu?j»?ZÕw?X è?£¡°?•#ƒ>›ä%>‡×õ>ƒií>¯©>ÿ¿¯>è-Ë>¿óX?Ée?ngW?l³;à·ê<Ãj@=¨ð>„¾>Êåþ?*?}in?düL?F G?¶ƒ>ãô?'«?ReX?ryM?”^?Xžš? +í)?P3T?|dó?wxÅ?n¶Ñ>µÞ?`&8?¨M_?¤â>^­+>Ên1>ÞµÐ>…;>&3ú>›Á>¤äz?….“?»÷š?Ul€>úͤ?{Ê?˜Ó?†u÷?¢“œ?{;Á?STÃ?ž•?»»Í?äjî?úG’?/{U>c3°>»l‹?ƒ6Y?²Ä„?ñŠ<Šóú>¦+w?ð•>œìÝ>=Žw ? ts?zf?X r?>½#?]bÈ?eÆ•>Ëo? É?Jíë>¶Fî=˘?s×?»Ô1?XQÿ>úãõ?BØ?cYF?ƒm?…WU?˜-j?£‘ +?¤i§?iï?…®E?{bÊ?ŠÕa?—E +?f²¡?J‚ >Ÿ(c=<~9<¬Ò7;u”(?.üt?q¿?Oã>ü>e‡/> M?bÍ?–¥‚?Uòe?;É­?Õ?9ã?CÿÖ?U~?”Ð?™¹k@F@Æ? `¹=C>Öûõ?ûß? ó»?ªx×>"¥Ù@†@éx?c7Þ?ENG?Ù3‚?ÐÏ?"ùä? º½?&T?!ÒÝ?6£r?1\?§žœ?¨"r>þǽ?'Ƴ?õñì?Ö_>ÿ÷?2I?Ò¹?µœˆ?Sê ?[•Ô?Ik?>|=>Ç…?yô?Yîó?0O0>˵í>ç.ö?§?R:?Íï?¡ó? ‘s? ”á?7‡‚?‰îR?¢x?‘uJ?õ?©‚>Ö°?]n?t)?I4£?4‡?§]§?Åî?éú>È +ñ?oí^?€Û¹?€äˆ?€ëá?ë¨?Æ9?pp?har?‹G0?Œg“?!›?cŸ9>«ö? Ú?ËìO?ŸÞ&?MÆ?xB?õ95?ÜgÓ?­°Ú?°‡ã?³`ô?td?† ?êkŠ@;O?à ·?ƒO,?3ú?[†?eßk?»f?3¨2?$¦Ë?Çå¿?Õ³?–>ãó“?á)U?Û“¹?ï? [?}wŸ?‰;\?“P-?v?‚Š?©Ï@OË@óP@¤Y?´ª?-·? €>á~€?¶%“@ žC?±P|?]’>ÊMo>G ?w¥n? —Í?(¥U?e?Û[?Óþ?*®µ?)´@C@R]?Á?´?‚‡+?kã0?'?‰º@Úï@kB@ îº@ a5@ µ?¯aR?¨÷?JŠì?‚­s? Ê?š±ó?kaÜ?H£ö?#Æ? …?žI?° v?oã?g¥\?ÜÑ•?ßnL<#K=PP;ÇgC=;5–>£F¡?w¢??fÈ>Á¶à?7à—?” š?´·±?Ú‘%?Ýñ?ß›m?JÜ?ë¢?œƒ?̓G?½@6?±FN?*¸+?ð3?‰UÇ?)‡? ?ôÑ?ôX?÷U?÷Ù?0x6?ÁEš?Ìö'?õº­?ãj?Äw×?¾n0?²~?AÀš>½ª…?:TÐ?§H½?ä+Ú?»¤?ŸE?~ï†?`}?ËÚ?Öè@?Dšá?9 ?ð~ë?û‘;?)z?$œ8?„™¤?Œµ"?Â,ü?±m?wÕF?’$Í?Ð<Ý?ÍdK?Äm{?°·Û?˜6ÿ?†M?jéÆ?g¡?PŠÀ?DÂÐ?I¶£?¡é?µ¦D?½?‚æ2?Ƚ&n?kªV?~Î]?Ñ}$?Ã’_?‚ÆÑ?m:Ä?Ô°?!J?‚ÑK?Œþ?ª{ñ?Ö‘@à +?äí?­Ã9?œ Ñ?’;b?ònb@!÷?á½…? k?ìÄ1@ +˜e@4¦@H 7?û„b?Ó·?>&S?ÿ?ö?ãÃ?|CÜ?q£J<6T,> +8?‚?— ?ìª`?»O>Òªš?P) ?å͈?ö>ž@çŒ?¤µ!>b“?žý‰@ˆ?»TF?Pý?‰?Oí?£\Ÿ?­Æ?¦=Õ?—áö?kGi?P%7?1=?$º˜?ªƒ÷?ºÍ¤?…ÑT?‚1?²¯?+`1?ÎÐ/?¿Â¦>r·.?#þ§@"™•@Ï?‚ +”?‚’’?|û?4Ý>Z6>Ôµ?AŠ? æ²>i@×>³6z?Ý?¥•u@ÔŽ?ó£?ãwg?S@?k.°?• ~?ªÆG?šŠ=í}ž?Å…v@ƒÒ?JT@>óh>¿D>'&?¹L?ΑN?µ¹F?±²¶@Ex?ÿ;~>µÍ>ãGÙ?œ7¹?°sÞ@! ^@äÉ?dž–?±f?3E?2Š?¬†9?˜ú?=æW?vóÞ?´Ã?§ ?‰Øé?Y^8?ð¾?lÖ ?ÁXÐ?¤uæ?ƒ†_?L*C?M?Ÿ¾S?ëÖ+@%ƒÞ@EÖ¹@&ï+@˜ö@ |C@^L?ÁD?‘F&?8L?qÅ?œg”?Æ|ï?¯8÷?§e=?†$¸?.~?ŸÃ‰?¢OÇ?¹ñ?À6ƒ?À)â?À­@,Êù@:þ@rë€@}×á@ •?û`g?"¥œ? $•?„¡?‰äÎ?JÞ?TC:@ Y@“b@u @žÀ@6r@2ö@ q6@³b@/É@#Óþ?nÐ*?‚˜Ü@6¡S@3m?~D?”Tã@>D`@8¼Ý?¾vÝ?¶ÔÇ?mn­?‹tû@ÿÎ@ ùÜ?;?X¬ö@Zêø@Jã5?Ë.è?Ìëd?½Á ?º³í? Æn?•L\?GÁ?Eø`>ü€¾? –"?×O/?Ô)Y?¢oh?Ÿ¨2?½/?¸öÝ?Šù‚?†XE?“F¾?–(6?Ä,?ºÌR?®Ãú?­é"?{ï?…îB@"ÆE@²4?ôv¦?ù¦º?÷Ë ?ñå +?Aµ ?Z»F>ÖĶ>ü˜¾?ÚL7?Ý*r?΃4?×Ó.?ÁTÚ?·oª>¨"Œ>NÂ+?hà?~ý@#ý @3—q?áóe?Æí ?È£ç?¼X?U° +?ƒ?iP>øl?l!¬?Ží×?¨Ÿ^?¹Ä?µ³Ð?µýÚ?—SK?y}t?vNl?m4r?§ º?Ü“L?µ“`?‡é?{¨?]šÑ?Q7?#ˆ¾?¦ Ï@?:…@&¯§?²‘–?¡¸>ý%è?!.?¸ ?ÀX$@3@8›¶>!]>,?{ ?•?ù3$@ ì&?X!?v„?m®>ú¼(?Ë;?´Èz?dÞS?Ð!?s!Ü? ^ß?ÑB†?ù³Ï@ ¢ù@](+@=ù?ï Î?Û“.?¹Î?صÁ@$g'@'`×@%P@#[¦?…Î?‰Z?²€?µD@øN@°Ù?Êè?´®ð@ÈK@1Y«@2@ž@3!Á?¾›<´þ@?l@¼(?òÝ`?€K?n\?ñI?.K®?ïX­?ï;v?t…Œ?o„?];?ˆí=?ôdß@ts?“(?+4[?4 +£?B ,?Wu€?mçÃ?O4?“Ë?²]:@æñ@Ž ?¾-#?º™?:*>ð¹1>ø? ¹?“4T?ª·‚?ëÓ»@ ?íSÖ?Îl­?³»€?q¬£?^˜ï?P¬Ü?iýµ?¶?±ß=?Ë„Û?Êe[?ŸÑ˜?šOµ?ÓƆ?êÈ”?ó‘B?øDá@¨ä@Í6@.@\ß@Pa?çR”?èšó?x›È?†”1?‚í?„#Ÿ?ø,Ø@Öt?ðÉÉ?ÎßÔ?ª™‘?hü5?žŒ@Rp?îv¸>èœb>è‹8>…7>‹uˆ?„-°?›/?ÃØ…?ÙVv?¦¨Ž?gÞn?¨½è@ª?êäÄ>ç‘è>þ±2?çeX?çR¤@‚hÝ>ªì)@Oâ@+y@ ”2@›Í?¹í?›-?|C;?MB?‚uø?¬m¬?­xc?¯Ë[?¯ÚÂ?å…?â—?„k}?r/½?á @uê@%?ÿœ®?¶Å¡>å<Ÿ?;ëŽ@|C@ +`?Ž£ ?‹÷:?Zpû?Er³?‘9 ?«¤?þ”?dÁ?y<ä'˜? +Êà?f£?aa@>ÿ6g? f?+‚-?B!?¯e?›Ùï?bRÜ?ó[?7Põ?d;?n°?‘Í?”âà?ý­µ?òú3?,Ã>äD?d5?‡ä?oz?`¹Æ?½š8@)w @J?U×L?Q›.@•Y@ )’?›%Ø?‡@¶?ô?}±?Øí_@Ÿ@?Õ®;>ägÕ?3ßä?äs«?àQ?U²„?[ˆì?ah¥?d±R?))?óÌ>÷2Æ>¹HË?â"?C!³? 3 =I“Õ>äå·>äñÇ?sj²?eÔÐ?|‚?8g?ÈÀä?ü +S?Ÿ=Y>ëxA>ê¶?ƒ?,Å"?xP‚?~¯ß?‚Œ…?…È>ó0×>å”L?—Ìn?²¹º?s9L??Ø{?‚Û´?ŸüŠ?ŽÅx?eäy?f³b?f)§?U³Î?̇?†è>æ"›>æ.ž?Š?ÿ?>üj‘>æW™?R}Ç?Þ?xŒ?HΘ?i÷w?‚áµ?VH>툒>¾ <¹>»Çí>­^u>Ê>­>ùž>æ5>ö Ú?uÓ? T?/EÎ>¾gª<«>þ>“<+>ƒº´<ž¯?•b?dq†?(F>Ù­b>dön?Fõ?Z\?¸]¸?ÂwC=ÉCc<€Ã!?1Í?â°?Š5?ï >˜£.>Å[™?[*>ÀÎ>` >ÿ½Ý>ØVŒ>duA>–“Å>þÞÎ>û˜ë>ý'å?-À0?bßJ>÷€V=ä/@?†?}jh?}>?}6?\ +?GŽ?Šé¹?©å÷?3¸×>C.R??hR?È} ?ùý?†Lá? ÂÞ>V¯1?Àê?”Ê>ÀªÙ?L"?—Ô„?³ >­Ãj?‚›Î?¯Òy?³I8?¶À¿?M‚á>ú‘Ï>úˆŠ>ú|?Ÿ?5¡á?g¢K?zb­?Ú‰6@šP?ÐãÛ?”‰?È1>‹©Ø>ªé¿?0åÉ?k_?#)²>úN°?NT^?q1W?!>Í;>5·?&rV?zr|?LÛF?;Þ/?pÖ;?Š‰?lÒp?4à;?£—9?Ø,œ?“ý–?g?u³ß?{Ý ?(Ôè>úï·>Š>Sïø?gN?LŽ²?$Ü?h.?ƒ%3? ñD?¡·?•iD?M™D? Vã>„x¨=®½>¦Àu>éËG>þEÍ>ù5·?–=¡?¶1?>ßl_=Òùâ>š2³>®6Ê>²z>βÅ>öê>ü”À?´%?yf>ÿ)¿>üÚý?³¯@?Ø11?íE?½ÙI?ìJ’?ü@õ>’¾Ù= 3Æ?oR,?‰ùô=à£Õ?aŒñ?&õ?<ò?:Zü?ü@‚@&x?Žèj?“Þî?‘Íf??²^ñ?©vU=OEÛ=—-%>þÓs?×W?ˆé?Š` ?juÂ?t/[? Vl?›K>ÿmŠ? ?“?66q>èEä?¯C¿¤æ>z:§? '?< —?~Ûð?>Š?I†?»ë@ ‡v?à-?À è?W?õ>ÈÒ>‘Õ?¬§Ò?ßkÚn´>µÃ=>À;«>ž%X?\ÅW?råj?…c?‚éÛ?À¤Ç?¸Í§? Ò?k@Œ>6~>íâ?àl?ºöþ?7G?yRZ@Z/?ÝGÁ?T*?¹C?+š?aÁ?”¹w?™ŽÉ?œÛ?^¾Û?¸«?Lõå?~0Ÿ?/bÐ?Ð?Wî6?tlN?~ÚÉ?ÀÌ?Å•?ËÜ|?ˆÿ?‰<ó?!·I? £?¡;Ü?¦4Ê?8+•?4Î?-%ã?<ÃË?²à–?¨ÑÎ?‚ˆ?¼I@ F@Ö‚?±Ž?_Û\= ’0?O?pØ“?’ãÍ?¯é"?pAª?+|>WF?}¬¦?¤F•>à¸>’ŽF?Ê +?Úí.?côï?]š›>ǸG>×_?†o?¸³?‡RO?“ê? ?‹˜w><¬¥?¢gâ@>ø6?óE‡?ÏÙ?Gº»?\”˜?rY?‚³¤?Ÿè+?©P?h$È?=ø>¤é,>B°?d½ ?‚È“?+Ùê?Ú?¨r? ÁY=Iáï>oÐü?Çä?©æ>úg?>È?¼P?Ÿ®œ?Q~8?Ö¥n@7ÁÙ@Uˆ?î©Ó@ ï#@?¯Ò—?CkÁ?Gô?Om?•Ð¥?¬ð¤?)DÅ?÷Y?q]?«ßi?&©?µR? ´ ?¤?ö>ÙÄ=ÄžÆ>Ðå?•X?ËF…@Ô°?Ĩ|>áÍé>×Ù,>§4D?ŠÇ?Õ9?¡[à?¦!?®¬?Ä‚j?Œ†K?WŽ?ïóÉ@3?Õ›?ƒA?®1?·k@ÿë?ÿ7º?Ä~}?¸ðÙ?†#R?£À£?ö(Ö?°£Ý>—îß?&Pí?”`*?º?‚÷m?B/T?õ?Ž*?Äl¦?¬‚U?™%n?ù$œ@3B?Æ5%?ª¥ö?é »?ö¡->w?¥=¨»?±?%P{@;]t@0öâ?‚Þ†?‚öwž?,*ÿ@"ƒ$@ Åz? …G?^z‚@°?Þî7?jTi?Þ‡?ó:Â?ÌF¨?š3 ?‰o?O¡æ?‘Ä^?À?N²”>n~>‡ñÇ>ŸZ€?,÷=?ZÉ‘@ +Q@*œ¨?óþ?ßòË?È‚Ú?Ãj­?$`‚? Dì?}P?‚0:?ë?D0@9i@&í?Xľ?h¦?¯¤Z?ž£¬?)ß?k`Ú?à +Û?ÂôÌ?¸Ó+?¬jV?£?ËÙ?:¾?6vy?2.­?´Ž@Ø@Ì#@p™?³-!?FBP>Ž¦E=f?µW?úwÊ?Ï›¼?à ï?ñ˜‡?õ"M?ƒ’0?_–ý@  @×W?õ“Ç?ñ? ?è¼É?è=i?wa?…À@ +Ìq@T@¿Í?óðA?ž?ûJ?2i÷?OAV?•¡f?eÈf>‚°ˆ>æ œ?i´¶?‡…Ù?©7‚?ƒ÷h?ø7?tŽ,?Á)¸?Àpb?½Ü)?š¾§?ršW?¥(é?Ì·¡?ÑhÕ?Þ~ï@ä@*¤÷?¤“ ?aj?<¢/?IƒÑ?"?w.?^mz?€gJ?¨u“?±&?V^o?"‘=?Þ5d@:¥?¾¨í?³õ ?µë>?·ß—?í?÷‡?ûvJ?ÿ ?ÿã?ÿË’?¹ƒ²?±àn>1uñ>.”¶>þ²O>ÿh?ƒö?‹r$?§Ñd?¹}@8&M@6`4?â7d?õËL@‡%5@|¶;?ˆ½=?Ž.?–`?’â?~JÛ?†:ý?¾ž'?À,?ÉÓý?¸Õ\?…­?Hv?¨1?,ñƒ?½â~?´!£?s“?§[Ë?õ¿å?ó»h?ñ°š?Ùü?;b´?TF?—Iô?J˜?NŒ?X2à?™£?š ?›<«?°ÍÃ@ #“@Æ?ÊÎÑ?ÌÂ?¼Á¾?Ê!a@#@[€?—a‰?“y—?Šä?ž7@Vx@Ow¿? r¼?ÃÔ?€Ôm?……b?°ñ?¬¾¤?ÔD¿?Ì‘×?Èû%Ê?„Tz?·w"?µz0?³zg@ßá@/|á?ÌZI>X0D?…×Å@ †1?È€>öB¸?”‹@2ÀG@M:?uÖ…?j,ž?,ÕÛ?L‹³?éíŒ?àø?¤Â?žË?éÇ?x?W ù?]É“?òÝ?É?œ#?{ T?©Ó?¶ú?ŒyN?yÄ >ÚP=[;œ=Þ….>+$”?w‰?mäy?t^?€º|?›ü™?¼ ?»OÝ?¤.?´œy@j@<¸?åRì?ìO%?T,œ?LMÿ?ŒNö?“½?þ c@ ®Ê?Æ%?« ?ÿzÚ@Ó*@ Ø@O¸?ÒÄž?jc´?r$?ˆ)F?¦ÑÅ?ÝE†?Öã–?È^?½Œ?™ãŸ?b>?!öE?%v4?ûý@V?ìZ#?òˆ@?ׄá?ÁÔ‰?³·1?¤€?@]?L ø?‡Ç¡?Æøª?ÄË‹?£jD?©¹Â@`Ç@ó?ëH?ìhp?´v?©Ò|>Ó™ó>=(ª?¨¬†?ø=æ?ë‹?Ü9??ºâ?‰â~?“Ëë?£Û5?šbñ?Ž×ª?•(A?µ¶ø?¹¹?¦È9?žËŠ?È(?ÚHx?Ý¡?ç%³?¡ð?Ή?P½´?¸%?¨6p?hðm?u«©?ä:Á?ßüœ>Ž`>t>½Ÿ?è?‡Xr?®å’?Éô?⣀?çg @IÔ?årÝ>è¤>ê¬?!Z?¢?5.S?E­?‚F)?“}Ÿ?Šó?yÞù?p¥¦?g½î?NÇM>é€Õ?s,@FµW@CaX@C-@ACÒ?Û„Ç?Ÿãw?š¸ ?¤c?—f?fÉ‚?† +B?¶ã?¸«@ab@9ø@+6¼@,º%?Ç«‡?‘û)?vLì?J‡I?tÕP?¦ .ZÛ>Úª?«Ú÷?ª½ª?‘¥ª?“üæ?–OI?˜£é?±š¸?¹õµ?šk±?wÙÕ?¶xQ@PU@…?d¡ú?i[?k#n?oº@Nº@Œ?õÌ"?Õ?¥“>?kº\?]ð?Äwt?Æäu?Éfð?ËÞ0? »?ª?”³ù?«&˜?D¼©>¿>Ý%‘>ôÚ¹?)§'?«F?Ÿø§=/À=Xâ7>;½>ä˜?X#b?ƒ?D?„V?|]|?™h»?Éë?¨?2?KI@¸p@Ì5?S•®? ?É %@ðš?¡d«>ãp;? \^?6h?{3?·¿? ¤Š?2käˆ/>äÊ>äÀl>ê­?‡Ç?5?²VR?½/°?ª ?˜pÇ?~n?µ>çëb>äðÀ>äúÏ?¦å?²™‹?—ƒ?–‹>Õú= þ?:ù?«±‘?¼‰>?Ôn?¨¬¾? +¯J?•?|,?ó¡?t%?hWè?dS¨?e»«?/ùT?›v?@w«?eè?\3?Y‹Ë?„3 +?«Í?ôU?Vá1?F6O=æÒ>µe>* >Ež…?q¯?'8Ë>£ú>O/>HÓ>柚?v¢ž?××Ï?Ð'$?¬ÀÑ?…ä|;áïH=ÚÕï> +wÌ;·R,?FØõ?gi>µÄÌ>{=0Ö.=\ˆ‘=XàG;—D«<ã¦>Aos>`‘8; Õ¼=~ªç=C2p> ÒÔ>çÉX>Puˆ=V¢$=%nØ?À?é™#?×&=?Ì£®?~Ì’?v·c?)"?k?â•>Ôio>$¥4>ÿ»É?..y?K¢?KÖ´>þß<>YY;ÿZ>‰ÒÐ?Â1>ûT)>¾Ž×>¨»H>¹›Š?)?;¬Ú?JS>üÒû?/ü~?X”“?_Å–?fîÆ>Á«„<Û ›?!ˆa?‚…G?zA¥?h°*?ˆm?Š®m?*ò>ûM1?7ƒ2??›e?œ&þ?¼Aä>ë)Ý?-y?zÉÜ?zºÃ?z°Š?$xJ>úœ‰>ú’…>ú…ž?„¶»?œ®E?M„Á?**t?ÛÈ@ Ý?˜%?E‹œ>º_p>®Õ?M\?•e’?CX$? 3(?um>ûhè?¼2Ü?îRØ?fÑ%>úgL?&P]?,½J>㬂>Ðɯ?TØÏ?t̽?7²>ú™?´ÃV?ö« ?„fÀ?†>R×Þ<àù¯>®Š¼?¬÷?O7]?j°?M®?NÏ>Ø™¿>)N(?.‰¸?S(?kyÔ?pšK?ƒC“??„}c?{š„?D¿œ?#ÙŒ>Jé±<Ç|í?‹4?¹:Û>è>En¶>ºrÛ>Áñ“>ì6Â>üU=àåé>Çs>>üŸ@?Iä-?nÊB?óƒ>üç?,åå?*6¶? A ?´ve? ·?za?Üy?ä(>˜©n>HyÌ?5–Œ?2û>¯‘÷>š}„?È?Á‘*?}ÝÕ?}qÇ?-åã?,€¨?œ9±?Ÿ ‡?hö?f©Ô??˜Q>þ߈?P? +¹?$f¸?+Ö??â?Rõ?\…?¸Ž‚?¬ï ?¢,?³>â²2?@ œ?¼­w?±ºZ?ƒš?0/¦=©OG?þ¿?„Û?1Ë;³çô?Iç°?´Ë”?K4ä>éûu?¯Þ+?ïU×?"CÓ>´&Ô?”%? ?¾?ƽ7?;?¶o=©ó8?7?µHà?D½y?&Ti?·óŽ?»:±<âŠ>I˜(?ºµ? ì>bÄ?¥Àö?°fh?ºÊ?» _?Ú;Þ?¶á\?<ž?žÄ>½ý ?Hÿ&?°Ô?ÓK?ö€>?±µ?u;÷?4æC?_f?W &?}6?+žà?öK?ˆ¼?1?çM6@ÒL?u$þ?QJ0@‘S@” >…ï÷>à?­@ ?îk¸?ÆcI?¾¦M?‚ ?‹ŠÜ?Ÿð?¹»÷@]?¶Ôˆ?ÅB?ôÉ?zmû?¢ÁM?KòB?%4?°OÑ?ÂA!?/(?á>dº>*?n¼1?ny}?¼]j?±MP?ƒ8?•–—?²½Ã@‘y@CûÁ@h?Dš/?kÜ>«,X?r\­?©}»?寛@À¹?¥Î?‚ij?Œr%?‡?°?`j?aTÎ?±ð?ØO?M?† +??BÆ?nqÜ@C È@,Ã|?¼j?ˆqé>W +u? Ú¿?‚é·?¼¸@[?ù¦h?܉±?ÑÏ?Ó7{?ŒV?GK?@¼é?7š®?XŠ>ÿñ¡?A#H?Deø?n4?]ä4?8uÙ?12P?†ø?˜?ÃΈ?—+>&ØÕ?Û½?¾»?5Ç?3L?79 ?ŒƒØ?¼J\?ò¦‰@Â2?½H$?†#Ó?ms?jðê?¯˜>¬3ô?Ó W?õZÀ?:/?nC?=n??ÚÔ?ü¢ ?ùÛÊ?Å î?ܵ[@ƃ@ÎJ?”†Í?‰ÆÈ?Où­?˜3?áƒ?ÜÇ?Ø Æ?š]»?N™¯?‰°1?£\O?¨ŠÞ?°µî?ûÚ…@ úJ?çkZ?ßÍÚ?ÈOZ?Äh´?U¯p?<ëÛ? ”ê??v.??úÔ?>¬?¾ªš?œ€?^x?–:f@²«?®*#?O¤j?Ü6Ó?ž…Í?L}‘?ž×?¢?æ?7A0>Ýî‚? zà?1(‘?À‹?àî?ž—Û?à…>/þ±=š«_?« +œ?¬Õü=»µ·=¡?? i?*·É?z»Ä?L)E>›-I>ßÿÖ?Û×?€~?«-?_Îú?•Ä*?°"ÿ?Î%?܉Ê?æ­¸?”æô?@&a?¡Öœ?¯ób?ÝòË?ÌRý?™á?œö²?® v?±¿³?¯ø?“ >Ô<.>½ü +>kôÛ? $?€üÍ?K>?>–?Gä;?”Ó?¦–¨?ñ%/?µŒ?Ì?†Pš?€·C?ÞLÉ@ +àu?°¯Á?nò-?x?€Š”?›`%?ŸYX?ö¶Ê@WÕ@F¹Ò@S…?èm?ÅÞ@?Ú’"?áb?‚nS?iJ?‡†“?‡¢¯?…œ`?ƒ‘5?‡˜?€Q?¾Í?Ù?¿ý¦?¿×¸?Ù Ø?Ðý?¤NQ?c>ÿ[w?&?TR?Uµ0?¥×[?´ä?þôk@»@%l·@ØÄ>þ¡? l?¨}6?¤üÌ?~TÈ?Š p?Í"l?ÎÞ†?èë»?ã,*?±*q?É…@á®@Yj?~šì?€¤:?}eô?ŒP@& @#0@õ@ 9?šö?˜ ?’L¢?žpŒ?Ì÷Ä?Ï+Š?è€?Ó2J?|0µ?“aÍ@¤„@X,?ô1?ê=?äl{?Þ*]?Ì“‚?ÌêB?ãD?ç¶?êÕR?ó(Ê@I-@¾„@Zxl@UÅ/@º®@Ú\@ô@ZH?‘¾©?•^?6ø?=T@8ZS@4 ?¬þê?£mŠ@3€Š@;x@…8?÷— ?öõ/?øúö@6q@B‰Ù?ߟ–?¾ÀN?'u>¹¼?›ÞÊ?ÉñH?¹¨V?²F'?éD%?ÿ~?ªŸ¾?wP?0?gï?†ah?¹\$?â&@G?¾n|?= +?„Xã?ÄIõ?‡\ß>0®Á?²@+œ]@ ^?uà8?Ã(?œ_F?­ý5@he?ý‹ê?¸ØÍ?½Š~?› +\?—ó?F"„?9*å?¨]ñ?°¾4?²˜‚?´oÇ?¶Fë?·À?Š=ï?sÍ@ÛÓ@9ªU?°'¢>Äî>Ù­M>óì?]Õh?¥L)?žÜ8?žÄw?«¹C?Ðñ7?àÈ@™ô?õ—Z>òC?„l?‰Ä.?”‡?gRŸ?XLS>‘À>@Jû?(ª9?Pg?Áf“?è`J@ ÖI@VÛ?í ñ?±¯?˜Ç?pÐ?Yž¶?64¡?Aãú?M•Ð?E„>‘©W>¥‡>ï9>ï¼?ë_³@½G?B >ÿ€?±R¢?âÏl?ÿŸ¬@ %¥?­¡Ž>íÿF?JQ?n5?š± +@D4”@6Fb?²É?¯Ñ?l‘ë?qIÅ?­¿?±šÚ?ɱ(?È>²?ž%?f³?¬J4?ÂAG?Ĭx?Á§­?¡XË?IŠŒ?iO–?“Ø?pþ?;£?"A@ø¨@éà?¹!m? Þ®?kö(?µ?5ÔJ?ju®?²¾Ø@iÝ?çmç;{`>ï;?éß-?éÇ?œàš?Æ?‰ÏÅ?ƒy$?ÑZš?þ‘?³ÜÎ?eË?ŠÁ¨?ª¥ ?©¤õ?Š¼1?„3S?—Ì•?™Þ½?,¦ú?yÌ?$H“?#ŽÌ?„h¦?­ô ?”1-?aEG?eƒÝ?gbš?‚WL@¦"@Ã/?§®?¨+b?ó‰Å@(?ÑI?­+¯? ?•tñ?º*@){@ Šä?Ü!“?ç5Ù@“@W/@è´@¤@ ´ì@~Ä?Òi&?R‹§?…J?åÙ™?åä†?èo;?ê¤Ö?Co¿??G?›+?¬|?ç??Äþ?€Ëy?©fÙ?¨rP?Ét?ÁŠª?eI?eË?§&?¦˜±?Û ¾?ñ+?ÅÞk?£ÄN?^¶=ü>9?d¦Ô?dŸß?d–ñ?d‘ë?²J?ÃÓÜ?Ú¬.?äq©?µÑ?~`[??ço3?Óó©?r%ï?|œ>ÿù2>Ò?›#)?·¦=?=lÓ†>ìí??vv)?aQ?«?¡—w>˪„>ÁG>ß÷1>ä,?€y?—ðS?¡±Ë?« ?À|m?æ‚ÿ?Írò?/À†?ÈÈ?CÜ? âõ?l ?uË?XvÇ?Wÿ|>ÍÙL;Ž?Wh?¥IŸ?‚ãC=¶Æâ>) Ä? ?Ð?• ñ?@Ãh?K*?0°>ÏÃÛ?5=?‚Ê…?‘µé?ªb&?i½?2È? +O´?½f>èã°?Yd‹?]d?œjw?«‡?Î,Ä?äÅx?Ü5?ÏWJ?§ô"?)¦?.D3?!µé?Ÿò?‡?aú>ì7å>å-7>å5s>åFû>å]ñ>óí[? i€?#€®?"f >å„]?aŒ?‚f%?w7?#|€?7œ¿?™)?›‰¢?Hj‹?.â£?_“?tCò?Wæ;¯yd?=¦å@ E?ÝÇý>%Ú>f#t>¡ÂÓ>”ù?G>ñEî?%g1?8? Hz>æ±?ýD?=$?‘>ïV=>ç$>øRô>ÒÙ=(IÐ>¤¬">–)½>‡Š,>qÄ?$.?9ž|>Ìê:>©Â«>3\ =|ü>ÿ¸E?dß >ùå> èî>¸0´>}0='Ö>>t“E>Hýç>­Â«>ÜqN=æzŒïy?%­œ?TF‘?:>´a!?¯?hå?93>ðm>†ä1<ÜeÐ=ž%"?Àé?[_?;Äç?T?|Y‘?œè‹?b¾x?.>ëÞ>º¨á>É'X>×™“?•v?ÀB>2”È=sUx?|¨É?±Æ»?—~é?åÿ?1y>ûWV?ÑØ?B›?‘T¡?¤íI>Á-ù?áé?U­Â?c¡?q‘œ@Éü@>¿?¦À?fF¡?ƒÊ!?ŽP_?gv¡?J”_?„eÞ?›?ƒUÉ?a Þ?4¤È?!zŸ>t=µ€û?._?q?.?¨M?ºU?T[Ê?*”>‰‘Å=âÑì?|I8?§?KSJ? fý?VàÑ?ƒ¿?(ñ>ú¦´?1[]?:[ú?Dé?Xs?!d?¦}>û +»>úòF?“©?²¸;?•I_?¢L?\> ô–?­Vu?ÞE\?ÛÄ?×è&?+œ>§×b?7;!?^žè?™'E?¬”?6‰>ûã“>ÿis? R?OZ?U¿?¼©É¢>Š>¤?%–!?6ðë>ãŽÐ>°j¨?P?Ï?¢ª¥?´;Ì?ߟ>ï³â>þ%<>ý`(?HÖ?,Û“?™Kd?”®m>œ•c> *à?´ÐŒ?¯nø?÷c6?þbä?›C ?–?R, ?WÜ??Gh?,P¸>ÖÙ#?¬?¿a?¬Å¹>þíO>ÿu>ÿ{>Ü~>N‰)>«¶x?%…£?CcÊ?ŠžD?‹!-?{l¥?‚Î?ÐM??_l>«M¨?CÏ?°ÒÆ?vŘ>ÚÙ²?yû³°?†Y?À?ÇÇ?MË?d–?:ù>ß«î>žœP>r~>s‘l?‚5?œ¾?KGý?-Z†?>M~?%uI?D‘¿?V@?ó1ù?üt? X? ÿ’?ºzÁ?¢…;>AžØ>­š)?K50?`M{?®Y¼?¡ðª?Œ ô?Ž`.?RH?W5?Ùk?Fµ?p>?^òR?>ù|?œ.?Í»@?…)?ç?\`c?‚#¢?,J? +¨?Ýë?¿?ÅÆ?Í%?–ñ?& ?¥‘?¨ƒÌ?аó?ÛÎk?6aƒ?g„@J•œ@85?ŽìÑ?„»?‚B?®2 @vg@ÐS?¼ç8?ÂÁ?Àú;?ƒ¬1?cb?[ó?21?O?jW ?¯O?À¡‹?VzÒ?™>ü@È?’/?³¤?ô?4\? +\?‚k?aš?j…Ã?Ÿ}@P}Ì@1Õ¸?¡?j*? ú?7Z7?‰fP?ˆk?zaü?©i?²à?QÑo>«èÎ>øá?%Û?Ï:÷@Çï?ŒkŸ?N©?Õ›+?ïQÝ?LŒ?%6??£‹P?«²?§Ç?±i?ÄU?Ä/s?Äæ¢?ª2??A?YH?¦­¬?Ñ}@ ;+?ÄP"?SE?06ä?Pp?=§?IÎa? ¬?ÿ›?cÁ¶?ƒ?¥‚L?°!?Ò5˜?Óüƒ@@\‹?ö’?ôjª?»So?­Á?û‹? +Þ>î„j>ªjþ=¬èb?5´?•wä?‰¥ö?ƒ?ÆæD@œ?Ú˜?¿¹¥?ƒ•ï??À¯>K/?,¥õ?\Är?™Þ®?¤Ü0?éx?z?ôÈ?ï¯.?~^ß?žÏ-@#vM@ßå?)Ç‚?‰w?òßœ?îv?éb0?Éçø?©0„?­æô?²ž‹?ƒ„?<ý?lN!?ƒÕ?*\.?ýç?’¬s?­Ñ?r_ö?awb?‘Zh?›°ž@˜·@-q?°ŽO?±Òƒ?‚ïâ?‚Ó ?³? +Û?‰\©?† °?o¬z?cUv?`½&?5ñ?Œš§@ +ÄS?«sÍ?=…â?g‡ç?‡Ü?eF(?O¦?y}ë?‚ÅË?‚ÄÛ?‚ÀÜ?¼‚7?ÄÝ?Pp•?6 >8¯>|ï@‚y?ü€?Àæ®?½H?½ó„?‹Öè=)`=?Uj?‰Ós?Mt¬?–]?±é?ºám?¼í?Ã’m?Œ#?Lh ?®º?Õ#Û?T ?h@îU@HXÛ?˜´€?BÊÛ?|ÖT?‚SH?Šc?‡%è?Ã…?¼pk?‰´¼??ê?ŠCÁ?”-U?¶çé?š8>?%¶?&é|?‚Î?»¶Ž@øî?Á0n>lF?1cé?£Çä?aßÚ>פ>èQ?ï6?ÄÒ?Ìyn@"h @BÈ:?æî?¤ÕJ?ëä%@Æ ?ÖÄ?Ť+>†ÓÍ=<Ñþ@`ž@(;Ÿ?úZp?îì?q¿?gÙ;?ã‹{?áLÓ?Ym?{¨@XÐ@ µ?—ú¼?™÷?\²?‘?Ìë?¸cW?xáî?j©7?6^J?¡Ç‡@’?Åê÷>5*?p¢Ä?ûwå?ÊA)?ˆ«d?¢$µ?À›d?œ‘¬?wþÅ?¦Cä?Ê@>?¾Ü†?´%Š?“4?€½K?Õ¯Ž@®×?¸lK?™ÕÚ?¢å’?£˜"?·¹Ó?Ãó@#jj@8eÁ@f±×@z¹?sz>µAl?’1G?éj?A÷S?+eæ?®]}?¹l?ÄS7?Âä'?ÀŒ?¿tÔ?¿ëö?¿Ø?Uª?&c±?Ê/Ï?ÍË·?ñ $?çý?Z¦^?Râ?,Jœ?OÞ²?ûK?î~¿?ÝwS?Ôi?užj?m§;?e®…?vW[?À&§?½,Õ?Åâr?Ź ?ð?Û{?VéK?Râ©?c?<Šn?Â.ú?íå×@ZÞf@J‘D@´ö@¿Y?™Á`?•yz?f±?W=°>Éñ^??J?ýÕ›@?v@—@–Ñ@ xÝ@ߣ?ž|ð?ª ?×êè?âÊ@²ˆ@ŽZ@Y@ŽY?û” +?ïv?Ÿhþ?™Œ»?“­˜?„j®>íØ?/)?¼uª?¼Îô?‡§ç?†õ>‘øV>¾?r|?)?ÍÅ?Ç;²@"9j@&r@£à@h8?Åg?Ì@%´@-3@–þ@ ˜A@®@„Æ?»ä¼?šE5?Ú)Ð?åþÀ? ™>€Wƒ?Qò¼?‚ÙÖ@óþ@3çœ?ÍØ?wœ ?tº±?o¾?yׄ?ƒDþ?Â*?öýé?Šý>uˆò>Øʹ?!¢u?CÍ'?g|Ø?®¼@æÜ?ðo8?8G×?X,?•ÌÙ?Œf½?eÓ?s[?mק?jH¯?·À°?Àá¨@'§?þAI?Žðæ?…‘ñ?Žº1?„ß7?uã9?vKë?u$’?sÛ?’\(?¥ûV?†Óš?ZL?¶Áò?íÉ*?ì{ü?òöì?ËM?‘¡?žš‘?µâ¤?Ìc@s*@c?·ï^?¦NÒ?"x:?‰ƒ?Ϩ?Ó³U?°¡þ?¤’ê>Çß>)’z?A Œ?w?ì‹ö@_D?êv{?´HØ?±}š?¬“F?”üè?Y½?<Ò±>ï¸ ?xÕ?¢A?”:ž>ïE;>ï'ó>Ù >é9>é¤>ÔîY?%â¶?A<…?_'ô?nCõ?c”¹?NÏs?s…Ô?–Ì6?ª" ?æþI?ß­“?´¨V?§”@;ÅQ€=Å*?hSá?y_>Çæ>¤‡?ô0?Ô#?…ÆÄ?±)ž?ºC5?Çdº?Ÿ´?"3?0?–Nõ?Ÿ´?ÈÞÙ?ÆÀ4@äù@ /?™E?jçT@‰@4¡¡?ë(é?_?²æ§@Öà?úÎU?e?iú?´Üö?¶á?%r§?#ŠP?sÍ?„•b@i @$ìÚ?Äá`?F?äH?-`D?zNd@N?ù#é?‰‚_?‡SŸ?”‘Œ?‘¼·?¸ú?ÃO?«ƒP?¡¢Ö?lØ>çÐv>ç»d>ëúõ?WA @_]R@\è?Üøô?ÏYß?ÊQ?ÎÐ?­Éß?œù?¶ö?ͳ-?åNI@.ô@Ú£?QϦ?HÌõ?¼Ã…?Ä’Æ@ÇQ@ J@<`@á!?®‹<Ój…? }Ì?åߌ?Ø1L?vÛV?ô>ô*À>å˜v?ù£å@p?·Ã™?eaá?›z?½ßÊ?µèÑ?’??› ±? 4P?›sÀ?Ïéë?ßeY?èåq?òl`?­î`?dÐ>?Œ |?¯~?«z +?©²ô?¥gÆ?d›W?d—Þ?£RÌ?«cx?› +?˜ +è?µìƒ?Ì’Õ?ǃg?Ȧ?¸Î‹>äY>äO­?„Ðø?‹Æ„?´(Á?ÄP_?^.m>ä4Ò?·û@*N}@Im @‰˜€@vòê?›]?•Ö2>üdÆ>ä!6?*eæ?F€A?Q}?[?•>f?Äh}?º {?¨30?¯É„?Ùr?•À¤? Ž?¤ª]>Ñ_ã<Ã.> >Úg×?næy?ÜDÞ?¼Ð>?.!±?Dñ>@+M@&ÛÝ>ø.€>kí[?].!?ŠS?5P;>äu0>¶—¬>E(ƒ>ø$?¸rü?·y¾?ä™?ã~Ž?«úG?¥›á?„Kô?|l¯?¤õD?½l?žŸ¹?€¶ˆ?^þÏ>äôï?ÛŽ?e\?eôï?­?}3 ?¯Ž>å9â>åC²>åS4?3XZ?\ÔÌ?,±=©Ðj>Tg>å–î>芋? ‡?!Øí?%90?¼n?­f²±?o'ð?¬?j#ý>åJ°?!&²?…æ?]¯ìg>:m?êJ?á >?IÅ»?T>ùÈÐ>æÒ,?iw ? [?‹Ñ?f]C?Ó=!3Œ>L”>¶/_>˜• +>5>9„>Vær>to¹>‰ p>—í9>‡\ì>FÍ°>º¡ø>ç®C>7m;£i<¨¹0=p==Ògl=%Ž:>tc>z²(6 +>‰t>²ï@=ý!è=&¥=¸ä@=7©`@SÇî@oÂï?»* +?³È"=ßÅ?azU?Q“i?Aºs? H>$q?û€?RúH?Î-$?“ð²>Šuí>ÖÙ +?&U>°€ç<…æÙ>uò¦>îÊ?)‰4?P€a?/L€?$’C?+â?30±?[´]?†Ve?†ú?|×Í? 4£>o®§>nÍÑ>8¢?‚J±?¼c?Ž=£?f¶Ì?¥4”?¼Çj?ìx>M?,]b?EßX>Rt±?ÞÛ?OH>ÚöX>muØ>›ù¾>zVØ=‡³–;ó(Š>ÎpŽ?"´o?{ê?Ç>©h +>” õ?Qö?0 +Ú? +>útå?@\:?j‹x?\þ?Ya?z>úlž>èN>íÚ{>ùu|?åñ?”ÙÚ?ª q? A>¼º?Ö4´@I¡?¼¶U?žø†?.Îl>úú>µnÿ>¨êK?aŽé?’‚{>ßÀþ=è·„?3™?w‚ ?©QÄ?³` ?MS?ˆ||>åè >‹¹A>äŒ>ûA ?CQ¸?ss/?²Iv?Ç€m?Jz–>ê¡>¾â>Ç¢?ؼ? ng?ü>þbË?]ô¬?rÓg?ÓÐP?æAŸ?G?eäø>áͬ>¼æô?6Žú?@ºC??˜4?FÆÚ? ª?“%®?€Û›?|ûÂ?i?l—¹>Qˆ=F5?g +?wÆá?¶>ý‹Á>–‡>¶Â?3¯ö?(}Ø?‡rx?’dF?“©?ŸsÎ?ˆêw?Š[g>þ^j?ðs?¡o†?•æP=Š¸Ä>w¹9?¼zÄ?©ž]>þôt?C’#?æ›~?Ï5~?”è?„¶?—1h?¿Õ³@÷?ä°?~ò?d +'?L(a?4-K>ïZ?EA?œ?\šÊ>ÂÍù?‹Ø?ù·«?ÝA?»“?ÞS?øhV?îWÌ?䉗?UÅ>±4>eL>N•±?aÙã?‚¥?š<1?¦#Ó?‡]Û?€Á;?Ú…?õ9R>vŠŠ=™ëZ?¨‰ë?µþ?Áw?·f?$'?>ÝCÚ?Ôš?²Î?´ ?ÁÒ^?¿ù?³®º?’˜Ï?A> +?>Så?"‹P?.ÿÈ?WðV?8w>þ ¼?žPí?øÒÿ?Ôùé?½´?À‡Â?Â7¨>ç©@=)³Ô?ŠhÕ?¬ñ?zTE?bÛã?;~-?,ß?`ù?r$Ž?ÌD¤?Àî­?Â÷*?‰f?Í´?ß[ ?ûˆS?ì” ?œ [?ˆb©?>ˆz?"ºJ? +·y?95? Þ?¼ç·@™Š?‚Ëæ=Ðø?ªti?üZ4?£ì¯?ˆeƒ?PP3?<—$?GuG?8Òï?žT?ª9É?7Óè?+©„?aò?^T?q?fB?w*p?|qÔ?€Ýd?‚Sm?€%©?•1Þ?¼H½?ù?kzÚ?›·z?ÄÕ?sÅ]?¿þ>>??¸¤›@Ëx?ƒûš?7ÕË?mù¡?„$"?eÀ?e9ä?Vþ?=0,> Y>Š.“?Àâ2?¶©T?ƒ¬Š?”Uƒ?¸Ú½?¦Ço?dž?°‘ ?ä:?‚Ì>'„Ù>àéC?Í?-x…?@ù_?C•Ì?>?ŽTÅG[>÷6¦?g>ÇÞ×>ÊI?C’?}n?v€?mø>ùý‡?Dúv@†É@ÄÈ?õ¼?¯[®>¦Õè?‚‹˜@ z?µûG?*ØÍ?/Žm?4Ew?F;?KfÚ?d³¶?HÊR=_ŠÛ:šB @?¤?þÎå=º­g>7ËŽ?‚óÝ?‚ðç?‚ðu?Gÿ=ç®Ô>”ž+?“}?c¨$?£{'?–7v?…O‰?»Õ?÷j€?Ž8G?Ø?‚5?™Á¢?W£º?7<ô?(ºð?.ÙL?y}?‚ÅP?¢ï?ªÑÃ?î¹°?î$ù> Óç>6¯}?„ I?«æ@@8@]Ë?²€?5ûü?Xf0?O?F”Ö?iM±?–¬‹?´Õò?ËÚ"?Œæ?<`ã?‘'?€Ô?sâ€?“Ðò?…ß—?‚sv?B /?'ë?%o?½I?ßÚò?ú¸C?zæ?nå?þê@¤0@É@ý!?û—²?î¾Ì?ºŽ?¯Õõ?I9?¢¼Û?Ð#è?³æ??‚Ê?<?¨æ1?nžü>‹'µ?WŇ?¿Ž?:B?Oz_?%kË?ò°?bÆ;?‡Ù @ šˆ@5QÓ?rÊÉ>þŸ?¹5?ô€C@î@"—}?œ¾a?xª ?úû@ä@6É–@7V—?éû¸?åë?ñÃÃ?ñå<@£ ?û1S?õ„À?Û#…?kš?4/?_¯?Y=?QË?F +¥>3ƒŠ>X3>’m¶?[Ê?ìKK?êÙ«?éëê?ÍcÚ?µ¸n?ôl{@™?Þ±?‚"?Aÿ7? +M?Žðó?ÁJÏ@u@={?Ø» ?¯GÁ?È„u?Öî¯?™¼Ù?€¡f?•w÷?žŒ?+<? +?ó¤ï@ v?çI´@¡Ç@`,?ÿŽ?üï«?Ù.Ð?Ó;:?º°?¸Í ?ë«9?èÃK?žzP? fº?¢Sà?¨jè?¿á?È„z?ÿŽ|@Bh@%kN@È´?—Ã??³=+>¤S™?´C?Ñ*&@F®@œÇ@ ƒÍ@!u|@k€@¼Â?é¬Ê?×ëE?¢nù?›?ˆè…?˜IùN?¼,?»ÈR?·Âœ?´©?£‚N?š¨‘?b]8?aØ ?œ¼P?¡Ôd?Ï!Æ?ÐüS?ê<%?î!+?©öæ?¡—Ø?›?¡®$?Ç¡?Ò@!I|@&?@&½@(ð™@*ɪ@,¤§?Ȧ™?¦ŠÑ?ÇñÍ?ËòÁ?Ù£?wØ3?"Ò¹>û!?MDR?wpÜ?ß3ß@ «@j…?÷@û@ð@0ñ‰@E @ ff?“M?¹ E?ö+q?ºè†>õñh?-Â&?žF‘?}À?ߨ?2òÆ?õSg?àN•>fN#>ˆHQ@ Dì@ r?ï-ä?ï×1@c¤Ì@r8@%áf@s@(¾n@+'@'d@#!Ò@_g@¢Ã@.’@-¤@Èá?ˤÛ?Éf”?À=×?ÿò•@9€@+ÿÑ@v@Œú@Ai @2-f?qá?sõÆ?˜}?”„–@²u@!‚?Ë*3?´Ðr?½¤?ºõí?ÝÓ?ñk&@ºÃ@-D ?î30?€¶š?·:á@*1@‹B@6@?r(-?l{z>B§Œ>Rdú?< Û?15?^Ö?µT>úmë>î‡I?yEÉ?š+l?µØ~?Ó•?âE“?ùÜ?æ€?¬Â£?¼+¶?îå$?íAb?ç™_?ßs?rß?läÁ>þˆ?ZOÍ?’Yó?¼jò?Ø·9?ÄÕG?±¹?œt ?k×Ý?‰ò?Âü?·à?½<?ÁF?ž‡?—bd?u²a?jñM?\b°?Yu¸??‹¬?&µ?]B¦?®hE? ˆ?j"?^¿?Þe?+@)¤º@%~ˆ?•õÞ?i{ñ?©ö‰?Ê(£?Ÿˆr?i"Ú?SJ«?-Sx?ˆ…@cª?þ?e­¦?rqß?áÙ¢?èSž?ò—&?ýÍ€?Šƒ">û‡>öO;>ìË?Ù?b²u?‹Ê+@ü$@5—@"j@ ?£‹¹?…_Ø?Ýï§@ÙØ?¾¯ú?‰•(?¬îç?ë'?ìÂ÷?Ù7o?Ô¨C?¨\ ?¡Vƒ?Ù—Ø?æ>[?ŸwM?rÃd?@G?È?=ç~?­­©?Æó@ ¨5@š?öq?ì3?ýŽ@±?ªÌa?egd?Ëc?‘J??|Õ¬?&m ?2Ä,?¥“Å?¬ªü?!'ï?”d?>—õ?<}–?Mùó?dÔZ?ÍÚˆ@+7[@ÊX?k¾²?Š|E@KmÛ@DØ?ê÷?ÔÈH?ÅPò?»"·?«5Å?¥w×?Œ l?/lž?16?¾?:>¢œT>¬¼j?& ?&îñ?—L?8¾?e,6?«™Ä?ÅŒÖ@T½?ökå?ØT?$@¥>®1>;?S»ñ?zŠ?I²u?+pS?x\?µkA?“:>œ,S>?÷g’?ÿm?„Lº?m¶?›?«E?N˜Q>ä7S?.Ë?†;{?¥Àä?îq"?à–ä?¸‰À?É{? Ã?>ä]w?¡Ê ?À÷”?…F%?1ã×?B1)?d‚°?›«b@b)@ ?ä9?ä¥×?œE? n?¸?uÔ?¥Â-?«¢?”v?nÃ?uMô?„H¥?{À?…oq?ƒL¦?Ÿ!'?¢:>? ÅŽ?T@>çmÿ>å_Ö>^’x=×o >ÔGs?12Ä?Hû ?…AÛ?i+(>ûòª>êlS?t«Ø?€ä¦?H]Þ?Gà?¶½T?ÔâS?¶ää?¨Æ?r?aìx?`0?f[©?C`>§Ÿy>™øA>ŒHö>{Ÿ#?¯àý?ÅÍ´?5ky?ß-?òÃ>æô>æÿ©>ç >]_7<_€= ¬À<å‘°=ò7J>2aÒ>©°>~ >`>C ´;ª??/4k?Täª?×n>ïo>%­>Á€>ŸÍ>?êX<5åq>‚}=Ž³;Ì‹è>·µø>ƧÖ>ÝèŸ >åü>2¸>È&>“`î@²/@¾N?¼Ô>óž;<¤`>Øå>ZT >ŒG>©s\>œž?.µ?€T?mh?Q8×?X² ?`"×?K8?·L~?€žŽ?K>|ø=-êø?^Ž?~x>ý·å>"ÏX?IÀ?EûŽ>ÝË>a¥ë?UZ‘?“C%?„M?|›9?£ +Ô?·é?Žo?|Å>§~ø=Ù t?ÙÝ@^4?W6Ð>§ q?NÚW?{b?l>Ü >¥àú>©_{?;=ÿ?`8ï?½—?ág?QEû>û +?X‰ó?nu-?Ê>ú¢€>Ç>ª¶â?/Š?Dׄ?o t?pò¼?Pä}?0³š>Îü>½^á>Êó¦>؃˜>$I:<Ü¿³;‹¨Q<æn”?M9=?‡“?kq¥?Xz’?Ná-?m,?Éš†?Ü@§?s¡´?0¥ó>Ù59>˜_ >±l=ÇR5?Pžu?ƒQ>—×;Õ<é?D¥š?ƒV-?-Œæ?=»?4D?/Θ?EÊ?H¡w?J‘Ù?:?û?$û?N?” W?ª„ >ñ­><Á ?\’)?ƒW‡?zA?{cÿ?{h§?|5?Bî ?Gû³?\- ?W?qCY?dùd?v<ú?|ð?õX>üÂ?Á_€?ÑP?•Ó‚?‹±g>õ>'>áX8?¨ïò?»i2?‚²t?}uU?x->ý›q?F€?ýùR?£n?ž½A?—æ+?2UA?$w‹>°Tr>Êå?3b?‚?>þ·R?|?~Ûƒ?~ø¹?x2¬?J#>–â? Ó?5?qÞ¤?.?€Ê@t¾@ 0?ÞYl?–R>oS?P>Ò?À ?ÁxÕ?Ìÿ€@ Þž@5áÑ?Ó·H?YJ?JEI?ƒò‰?‹(Ü?“cW?pu?\’Ó?"& ?‚ ?¢Æt?ºT‘?¹.¿?ÂTf?Žp?€¶?€¾U?€Çg>ëQË>ª^y>úý­?Í>ä¾>í#?Â?µ˜[?ý??mwï?^Úí?A…û?bí(?—†?•’D?’ô?w Ÿ?\?hø? “?‡g?z?‰WÊ?ÖÂf?Ç·O?¹1Þ?——Y?¢?ý®?‚—£? N>é×"?Ñï?1—{?¦Ò?±H?…ÿ?âF?N?çë?ߺ?ÜÅ?\{T?Y>¶c¿>ÖÛD?GP?‡¬Ÿ?øZù@ Ìý@"¸«@ šw?Äo²?¤²7?}ù\?¨†²?ÔÄ?3€È>Ý@Õ?Bþ?©¶+?º„h>òã£>pÝ”?BA?¥êŠ?Zí?T K?‚4¡?o?Ž&?¬|?+N?«0?&ÆK?ü?¢~?¦‘?@= *@i_?Ä Î?¾¹[?¶%ð?¼^þ?ÄŸ?n,}?dz>¾+ü>~Ø?—3‡?È6¶?Jzk¢>#t¦??Ü”?A'?ì2R?è5[?vŒ:?|è?‚í?ŸEG@R£?¹eü> ½ƒ?Ì?‚ø£?gO?F;1?C.?.”ò?…Ñ?©£€?Â?8?Ç÷^?ªi?Ÿ§8?“<]?•Oˆ?Ρô?ͨj?‡Á¼?ƒÔ?ŽG™?–‚W@sá@ þš?¼>ÏËü<®Õà>™ëE?vâ?yk?ƒš?\m?%üÇ?‰{ó?Æ?‡(;?qÍ?p‹?Á¿q?á:Q?ñÈr?µÎ?ƒŒ?;º ?)·>•ÐÞ>c!×?b£?)Ÿ?k>ýã¯=ÿC=Ü)@? ƒL?Ëé?*•?‡±²?Ù,Æ?уC?Ôšü?¼™H?›-è?Qw?SCÊ?B>ñm?.‡¶?H´A?Þ¯? Y@¡L@ ±ù?½Æ"?³Ýj>ÉäÝ> ÃÊ@ç¨@y?ˆ A?…¹B?ƒ†U?je? Ë‹?k·c?åÒw?º-U?l¤r?W²˜?G¸Ä?”[L?ÄZg?ñOÒ@ F ?‘@³?ß+?›:?Ï%a?_üG?Òû>Œân>'z˜?GRÚ?dÃ? +„?ëÁ?‹÷³?j–?ļ?Äœ1?Åp?­mº?!)Ë?b×T?µm?{>?Q@>»^h?#m?'Ù&?,E^?t2§?¦JV?f6?`?zü¹?žá¬?ÍBf?ê3Â?Ãxþ?¯NŒ?ªê,?¦q?ö(—@µJ?®œ?§³ +>4Ën=®;?ÃN?¿\?„ ‡?ˆW¯?Œ¨E?x>!>dÔ>àb?‚7¿?‹4@?¦i~?«æb?¬ÑÍ?‘µÈ?NÜ?i÷é?…3º?’€.?ª«ä?’- ?h'Ÿ?‹1)?–^?ö¼F@ç@Ãÿ@Hô?Æ…?¤ S?=ŠÕ?U@#’ç@AØC?¡'ö?»1>qð>rúh?Ú:?媨?ÐO­?Ò])?Ôj?áêj@!ëA@\ë@}.?äe¸?q(?.>ñ?Ÿo%?ŽD?Né6?t£L?—š§?˜b6?¤sè?çšc@-–l@4ùõ@ADr?òtè?>?¼?³Ò?íLÎ@<ø™? ~Ô=Jí\>]ë>z|?-ëY?tÆ?W÷6?Jø÷?§ç?Áš?‘qI?€¨?JU’?=ûé?‘æ~?“ºÀ?Ýœ?ô·i?6Lß?lÜ?¶©?Ìwd?ÂNÁ?Às¼?;¯è?%«o?ÉÉR?ÊïÆ?¼ôZ?¾Ïæ?Àc?ÅC@Aü@>^?Çצ?¿bˆ>î92?"ÔÎ?Ï–?à ß?Ô?.¯?>€Ç?Uƒù?-å?+?ߨÆ?Ï°}?›ƒõ?©c²?ïCŽ?ÖëÏ?~™M?‹äö?¾Ôh?Ÿæ>’Í4>©z‹? :Ó?š>ýý£>ÿ|ø>ÿÓÄ?yE–@Ž×@”t@R?öÖ¨?Ș„?ì ÿ@(+D@ñ€?H Â?yÈ?½¤—?Ÿq!>ü±Â?@?b?Ãzá?¦Í?8‚­?†;Õ@,|@“¯@)I@ö7?¼ß2?³]L?‹^~?œ¯?ñѤ@ÉÇ@†%Î@t÷¯º?Ž1\?´!?⢘@\?£ ì?KP~?V¦?oûx?×Zí@n?é'ë?vn1?w÷?´lv?­Å:?”†Î?ˆõ?uÉ +?qÐÒ?pò?Œâ?Ò©ß?Ë"?u&'?~†œ?´á?§ÃÃ?¦GŸ?¬!—?¼Ô?·á+?!vß?Yr@ôÏ@é @0@@6ÈÖ@'P@]@7s@!Kµ?äyR?æË?œÐG?­ê?ÚzË@Ìä@ÆR?ß+û?îú@Ù @?Ö»Í?Í4i?âÜŠ?äºJ?œ™`?“z?°D?´Ú@Т@1ÿE@IFk@OÝ8@ º±?Å–k?»4?ª€?£\±? ×r?µ…1?á-Ž?Ç!¶>ï­>åPÉ>‰«G>†J«?³D}?³A4?Š>>ÃQª?\m%?q¿õ?¢É?½)>?Ÿ0,?ƒs?Lu½>êL~?v6?vd~?¡]ò@Ä‹@wi?ü?TÄ?lüµ?ló.?ŽeÄ?‹³?¦ÃI?±ce?b7?%Üb? + ?µå?<å;?káØ?†cÖ?Å|*?ÕêD?ã(q?ØÊø?µ(?¼¨?ŒÓ+?¸?*0®?*á?»N)@ Â7?£¢;?Âç? Ñ?âÅ?ÝN?Ñô_?Ì­í@5^"@6nµ?–õj?i†X?io´?iW*?i@?i.Í?P¥Ë?2ǘ?h%™?»*g?®>>”(A>‚ò?îr8?ômC?:õ?>è56?8Ë?a>?oÙ?­µ-?½Ö:?ßê?Þä¤?ïÕº?ðS]?¦RÙ?¯T?{‚$?g0G?ÇôÚ?ôHR?¥Àõ?.¹k?V![?“éf?£›0?âIž?êêò@ Â@?Ú}Ð?Ó”Ç?«•J?ž7é?ãò@–@à?ãÓ?ÇàÌ?<û?Vá??ñ¾ß?óøn?¤E'?˜²–?RSÿ?!ü:?@6ô?cðï?…éÎ?£1³?“N.?©Ì?ã?œõ?—«(@ï[o?‰ß·@! p@ @¾@!ÁZ?íëi?ä»?®,Š?Ÿ?ÏFÏ?éŽ?´ß&?U \?YBg?…Úo?‚yÝ?!T>ñpð?ÑÞÜ?ë>°?Ý£{?Þµ/@Kü@ /k?ã£ø?~¶+?€,?Lƒ’?GDa?o-7?` V?ñ‚å@¦a?ßg?ÂK?ºN?²@€?”U? %??-¡?§¶?™3?šÞ.?£ä?$Ñ>ìÅ°?Û3°@¾?Äâ? +d÷?V,¥?Χ?Çã@?5ŸT?/üÝ?_>ù?W?¥Ê•?½m†?ªÆ?ŸV?‚ G?D¹Y?UD ?d–[?d  +?jد?vªŠ?œP?–¹?ƒ;+?‚ËH?'ö ?nJ?8˜µ?dT²?ƒÉÉ? ôå?¢68?ŠµÎ?îÂ?yü2?sÈ=?œ5Î?¨Ãi>¡Ñþ<¶„ ?€y÷?ÀÏ?VÁŸ>xÅþ>ãÎõ?J¿?Z ï?eÊØ?eV@?Lòÿ??å(>´$Û>³p ?Ið?f&?ø¥>çzT?ë0ð@=“à?õª? +\ƒ?œy>æ–¯>梨>æ°§>çÜ­>ËÜ<>°$>"S¥=ð +>œQû>ÇQ×>ôž>îÑr>助>Ù'.>ÊÕ+>¼i>m¿î> ?4å½?!›+>ƒ>‘ç„;hª<>©§~>ÎQ?EàŒ?gÊ’?C5>Ñ9>%o=ˆ¬\>)Ž=õ«J=—f;?S”.?bq.>è¨Ö>Úb?>æE¶>èìº>èôû>èû(=øP@#fí@-Ñ?‘ê?ºX–?u"d?Q .>Õ#¹>ÅD>µqn>Á+?’½?ض?E?ë?ÁÍ>¨PT? &?8û[?AN…?d£z?sœA?}èÖ?sût?b·î?1@ß?äÐ>ì~·>¦gÄ? Q?91}>Û*>’G{?{V¨?ªO·?n¼?L‰\?f^¢?rçÆ?p{?SÙ> +ú]?'Zs?yZy>½?å>4•×?M +6?{i?Mªâ?G$¶>3˜>õ1F?dZ>-NG=ÊŽ?D0…?y;4>Z=ò^P?°•i?Ï)ù?5>úž8?`ù@?z“ü?¯¦YÄ=ò„œ=bz,?B¢q?yR¿>R;’?+Ä?°+Œ?DÁ?"'?cà[?aCu?ŠÄ…?úö?†M(?z·?Z*h?Wsï?(]¨?“J?–î‚?³)r?êÓ?÷½W?Ä?µì>ºÞ=Û„5?ðî?&ë?”^ú?¡Ï0?PˆÇ?G +ú>ÿ‘G>º¼?ZS?{«?eÜ£?fà…?žz?°³q?)Ì? ò?gÐ*?|':?¡9 ?¡é@?6í"?&$è?TWÎ?ghÂ?ñ?V_?bÀ>üÏ(?ü†@…¿?ÒN‚?ɯ‹>4ÊQ=5!=ý;¢F.>ý!y? ¡=ž¸=»¥Ê?¶K?$©E?Ñf‰?ߢ>Wó>Ž§k?Ê‚?‡S ?~Q?gŒÂ>.>Q¾Ï?MС?PsH?ý‘?!aÐ?~°?~ü6? U?vé©?Tz0?=‘?! ë?ˆŸ>¤Ëª?Tÿš?é•M?àâ\?âzý?“aX>;/3??Tà?À —?rRž>‹À?FO/?¯+j?—Sw?àS?7r!? +†?°ë?ëa„?oï©?vÒ?~sˆ?”P?½Rƒ?Õ9?“î ?€ª|?Å^o?Ê\?jéã?\–?¬„‹?´B!>çÇL>ï•`?Åár?ˈ@ Ú.@é)?µôÃ?¨½U?%Ì?¨£Š@¾­?õÿº?CÁ?¡Ë?Ñ É?¡^Ý?>Sv?‡…Ð?Â(¥?tyì>µô@>ãGñ?®?Mt'?›p?„Ř?„-Â?¯ Î?ÀŸV??ŠÜ?ÃK?ʦ?ÏO?‡.s?”ló?ƒw¼?è´?Ù€?È£˜?B¡ ?FE¶?#6Ù?.cI?—Ñû?›‰]=?|S“?–à{?zè-?S >Ђ->sÎ?‚ha? ŸØ>ËÏ1>Eƒ>£­ë>·Á³?­ä¹?µ˜ ¿H?J[Ø?­ÇŸ?¢°¿?žÒ8?É©–?ål?¹ %?¨Û$?U?0“m@Æž@)òh?¬œ?>¸?Ĥ?½Šô?p™5?{S?‚ƒý?HŽ¢>-ïÀ?!? ?ï$?‹»F?Ï^÷?Ž<Æ?1wº?dÄ,?ƒ ð?^,U?DzÇ?_ù?ž÷ ?ˆYc?ƒ ¬?>Ôx?=ƒ&?­Ìê?ªm{?'e?¾‰?yÝO?‘£Ú@#?öô½?¿’'?ºÐ"?¶"?¨{»?›6½?„"{?FF„?•]g?Ħ ?ˆu>?7‰À?P¯6?O¨Ó>ÒeI>Ž{ ?jîk?’º?Êæ +?àÔi?s?ƒ Ô?µg¹?º`v?âVÁ?çèŒ?ÈЂ?ŸA?Ãó=?£Ø?ý2?í´?7²L?–n/?ë(?õ;,?ÿƒé?ݳM?Äc¡?²Å²?­Ð’?™¿S?……?€)?wì? +ýÛ>Å̤? Þ¯?+<[?fΨ?`é?9œ?3gÍ?ÍV?ÉR7?»Fe?ÒIf@#"Ö@±L?¹ñ? ± ?#¨¯?^]@?ôm?l¹g?¨/?+—Ý?Z'â?”Ù?·Ki?†°Þ?He?ÈFÕ@?Åv?©°å?ʧ6?Ù”É?ÎO?Ðø?Š€f> |æ?q’Œ?€#´?Ã?Óäg@@]¦@3ˆU?øÓT@–Û@$Ån?ôÄ >hZÎ>ù¶Š?‚5Z?t9‚?^šô?‰‡t?§ÏJ?‚‡™?=÷S?’/ù?µ{Q?ª“w?ª1u?à<Ã@Ë?úÐ]?ó”@ ì@M;@4ÓÎ@>à¡?Ý̺?»zª?- Ã?9y?´À¥?¾…“?qçJ?b$?*ߥ?àô?)Žå?ð&@ij@4ºñ@úê?D}’?raJ?Âu?³å•?ŒG²?¶†4@ ˜¼@ ‡@C†?Û…q?¨B ?EÜ=Š¤>±ÏB?l @éð@`‰ @+8@ö?±èn?e½~?‘·9?Ÿú£?æø¸@¬R?»)\?š«H?–Gò?˜ .?¤{?¥¥7?ŒGÜ?‚ ?ëÿl@×»?Nš?Òç>¹óŽ>­äV?AgE?C8H?«ÿ±?³Ë?µÂ‹?·¸®@úu@[B?{F¢?~ê?€È¸?ƒ'€?’®ô?¥Œ#@K@ +P>Í>?Å??¿ºö?²èÉ?-.€?=1±?1?‘œ?7Æ?ƒ©i?¢ü?²ù?¯„C?–Œ>þh?¨?}´„?®ùH@’ý@·?Å–>?Ó ?ò [@J@%ãÎ@ Î?VÇ(?<²Ý? +@&?#¸ø?FÛb?‘°@ ²Ü?üŽ°?š™?§6?Ãá:?¶k?½“?ÁB£?Í‘*?Ås?¯ÿ2?´|?¼ É?Î8·@é@s?ü>[?åßO?{º?xÁœ? ¦8?cÆ@?ÿ©¡?3¥?ºÛ‘>Ðí>ž*–?å®·?øÃL@|@TÔ?Ô‰?ÂfÕ@VZ@sÝÎ?ͨ+?vú~?¨ª?´”F?Þìï?ñÖ?¯"@?LC?›u?œü…?8üª>®Ñµ?¡?RÎÙ?¨ö8?æó?ïOU?û'd?È5–?…”!?¢¶?“#‚?Ž?sþÙ?x0?¬ ?Ÿ©?u.—?•j\@Zôª@[o‹>™-/>6#ù@0Bz@6Üû?6F&>ô3?" L?8Ü}?¹ön?Ú‹?«ÁÀ?˜ùQ?§×?´Ê?–<ý?sŽ?/¬>Ùܼ?(™?oˆ?GÝw? ð!?/…?{;ú?¤«°@JÙ~@CHþ?µNº?µ6m@ˆ0@j?³· +?¬é?  >ïÝ+?ì »@P)?Ÿ G?m??Ÿˆ?åŒM?´ƒj?p ?•Y¸?Ê ?¥9>ïœü? ¬Ó?}ë?zñ/?иÂ?Πà?zE?nØi?¤×à?´«è?„¿Ž?Rý?“Ÿ ?² ‡@Æ@>@†?µˆÀ?£Üí?n??dgD>íQÉ>ó4w?m‚?lýh?«ÿ°?±“Ü?±~º?±k*?‰üÑ?_Ü?R³q?FV¯?g\'?’æÜ?~lQ?ÞØ?Oð†@$¹f@(&…?Y +?Lf&?¦H ?°EÚ?„·&?jÐ¥?j¸w?jž~?qw?­²?™Ž?~ªN?tö?,ÃÙ?>K.?ªÞA?³8L?éôG?è“M?«Ë?—?”ØL?’¬,?SÙ‚>éâ? O?=Þ ?M~è?…‚u?ƒOÓ@¦¾@ö?:m/>è=>Ýrb>ßû…?0AÔ?iÒ¸?!»j>*¢>òÅx?·bÃ?¶“­?gpf?g`š?gH?g9Y??­P…?xë ?.‘Ø?G2?fÊ?pCÜ?†¿?Š²a@gµ@ŸR?„bH?fN{>ü³<ÒÑ?}z?æ? +?ûÈþ@ Š6?ê >åÖO>÷6&?¹Þà?¼%Û?Ÿ d?—š\?+í/>åt2?/¾?`\6?f–A?Š‰N?•>Ž?–mX?‘›7@L'@f@ £@æã?ÝÛ7?©tý?«OÚ?§r¹?¹õ?ò¡?ñý?Ã,^?Èœ@‡‚@?D?A¡>ÁqÑ?…†?ÊíË?Ï?ÂBd?Ò"<@]?øÇ#@MT@ ì@BÏ@g9?‚!>åJ?m6V?±Ò@':@J°¿@6÷Ø?ô³?ë‰0?=á?H“?ÛÙ?ûÚ@`@1˜@‹˜@ß”@½Ö@š›@b’@G©w@G­(>6“é<_è?‡,n?¥x?ÓØ?õ|’?¶?H?Gêg?màµ?«;œ?¨df?‘Ïô?Žý÷?ý?Âgô?‚Æ?dx\?vft?{¸W?2ý> +É>±"-?f™ ?ƒA„?Ý%=?×-Ã?x©x?~!>½>•9=?+os?CBÔ?D§>äþ­?&?D º?7Òp?+±?4ÊS?̵–:¬ÙŽ>¯)¬>Ðk%?¥<?å‘?eŸ >% +M>åƯ?%ë)?§÷ø?¢]m?¬y?¬ƒ¥>.q¸=¡Éz?^O5?zùž?›Q–?«b?—)’?˜DJ?IÐ=ãOH?½?§ƒ?‘êF?.ÛG?%MC? Á5?Æõ>îÒ›>çr=¯Ëê?m7°?­<˜?¢ì=K^¼>~ñJ>玣>În¡>”Ë>Õãk?gÊl?OÄt>2K >‚å=í0`=±R=à‡.=`{;Œ¯<™‰À>¯Ê­>èl>0¥û=ɪ>>P8™=î;õ:ypÀ<²{P=[KW?MØ“?K3_>û€¤>éW4=ÀFt<)Yð?:mƒ?4KÃ?Á Û?¸Úª?cb?P°*=Ìž+>€p>$“^>”:å?O?×}?8±­?ß>£¬ø?8ÏL?¦2~?3È=%[(<4·Ø<„ú@?:l?~zP>èK¥=þi¶?o?O#Ç?vü’?€±/?B0>Éþ/?.(˜?Y >¤Ô¿=¨å½>ÂR†>üdò>ü{á>ü,Ö>èMä>Õ°>.äÛ>"ß=¥ü>¯È¶>ù ?,Íÿ?.ã?ð>Ò“Ä?rž]?ˆ ‰?"æ˜?y¡=É+o=‹¥Ä >þåÆ>l¨:>6§?¦Üú?¿4c?f3?[O®?¤}>ú ?˜%³?¯tÉ?6C„?¡ž>öõ>ûs¸=ÀüÜ?Ë?1×Ö? ]C>úž?H²?gXç?¦>ú´è?8_S?Lùa? êÖ>úÒH?bƒé?zàÃ? Äu>î^§?bí?˜>œÛ&>M®›>½À›>¾ß?Ë„"?ãÊ´?Á©3?¼Œ«?_-?*?@Á?O¿9?7b»?=§j? +Hð>ûÕ×=ïï<¯ü4?U2ö?w|¶?·ÿ?`æ?V·?"?—Õ±?’¾œ?%ß>ü‘[>Ž£Æ>j:ÿ>îî˜>üÛ©?Ì:õ?è;Y?ð?ò"?Z,>ëƲ?yS?z™†?µØ,?°uŠ?V¡‘?Jv?]Ò–?SÞŠ>ýêV?áU?°;ß?¦Z'?ÑR?ºËó?~]¸?x-^?CM±?#O_>/E.>»G‡?º2}?£j?6õ?Z—í?óI·?ÂÂ?v?MŽ´?›´­?X:z>?A‡?8Ò°?Ù?¼b®?‡©?<²?XÂ?˜ÉÝ?Ða?´ ?¡s?$p5=Aç>šÀÆ?5]>a¿,=AB¨>ú¹I?GÉ?^¯©?]ƒ?U(_?^ÐŒ?ší¯?£ŒÎ?†¥@?€°V?Ì87?äS|?HfÈ?$?|f®?€×ö=žB=ü…J?øü?îö)? >\?ò +>'o!>\7£>JÀ‡? +zÑ?Ê£ä?½ƒ?Iæ?ÏÙ5@3-(@—?¼$D?°l^?ªlû?-s>\$}>ÐÓ‰?Sž®?ˆ¢¯?©Ah?¿Ÿ¡?Ld>? Þ–>+T.=‰?&=µˆé=áÁ? ˆn?¯2‚?ý™Ê?ù!@åÃ@r@?¿w½?¶_¿?Ãû?ñ?Ã#Ž?®Y½?e¶§?žt_?ú‚ ?ðò0?Õø?Ǥ?äë?Äl‘?ÃtÎ?Fž>€Š%?€ÑG?³~?Ðï¨?Ùóð?ÿV@ +š?Æ%?B¹|? +>Ý?…Æ?2åù?1¬Æ?œ3?§1­?çýª?ÒNè?¢ç?Nã? +ØÍ?*$?ƒŒ&?5?ÄJ?h2„=ª_j?án?eÒ²?uÒŸ?‚Ì‘?‚Ï ?‚Ó?g…S?Læ?Ia?[zÍ??ªÄ?2Q‡>X~9>¶È?aG?vnà?ð g?óJ«??íÂã?íN?²x?,?›q’?Þ ·?§Ø ?(¼?ž—g?ê†c?‰4? âÛ?\«“?ƒí?WMY?FjÄ?‘óÞ?õ2?fnP?ZgÞ@Ú&@+û?év?ë» ?±±t?¤‘ª=Ú‹ê> '?\Å?#ëÌ?t}u?J¸?#e?%Ü?%c?_Çû?©k“?8¾·>@i?‰Þ?Ì‘"?Ƕq?Âß?Ã$ˆ?ĺ?£8T?™Yë>Ð/F>‹ +"@?©@¿?qðC?rŒä?9?ÖÏ?Äü?,‚?D?c ,?ĵw?—R|?ÕF?¹ƒt@¹è?ôMW?Ä®c?@UŠ>X)?Š¥A?Ħw?£>i+T?@ø?40>{!û>d»?TÑ)?h ˜?Þ%?†>».>­ëž@EU?ѬÑ<7ò•?/‹–@â?Þc?ÿV?t6D?Ò™ ?¯£ß?ŒTË?–jý?š:/?•”??Œº?˜¶?£M¦?»¿–?Ä[?ã°?‚âõ?;¹_?7Ó?È67?Øͽ?ѲX?Ða|?ýk?ís?±Ù?3‘·?ÄÂÜ?Å÷ ?»V?„Gc=g~?bÙŸ@÷Y?Ýu¾?a§??Eáé?/3x?Ÿ9s?Þ¢›?©?‚š?®@?É?«ó¡?›ð·?‡ó‚?‚…,?Wq”?E‚@Oè@±S?ƒ?u\£?0Û?+Ø?ÆV?ÑÍC@$œ@$S.@œp@?oit?uj›?G¥P?UôØ?‚:d?« 2?æ@´“?Pæ,?ˆÅ?’*”?닼?éÆ?ðâ?ÜzC?{.?“‹Ê?Â&ì?Åá(?ѹ?Æ„õ?­¡$?»@?Ñݘ?•ì?=?k?1×?ª¾Z?þfÒ?¸Xó?.ˆ?ªQ§?Å/=?m‘Ü?r3@I¹@Œx¦@Ôt?°Š,?ßÊñ?í«3?Úï]?Ñ{Å?¥z0?œ½ã?‚®5?€‚@hm@ +ªñ?Lg? c?{>ð·~?•8? ŒÛ?i* ?h²½?Åt!?¶ÃŸ? 0ø?–Á? Íï?Œì@Y@ˆè?º³m?º¾?Ò¯:?Å]Õ>ÿÏ£?!ýº?¿À?¼Ññ?ª[³?€G2?tæô?^)ò?I²?j#š?¨tŸ?¹c?ëø ?Ö¶Ò?ýo?ˆÌ¥?~]?e¦æ?n(?0*?!l?(ÏÏ?}èŒ?`šˆ? Ø@pÛº@bŸ[@Æ,@‚±? ?VŒú@iž@¹z?Ñ å?Æá¨?]Ÿ.?~×Ä@üù?ýø‹@%Ñ@a¿?¡g? ©€?Ó¤é?ܱ`?Å%r?Í s?í9R?è‘?Ñg?ÈM=@iQ@ï?â%±?â8G?î±?ñ@*ü:@6²\?z¢>ø™c?œ$»?¹Ó£?½Ã…?Áo?¶“?®TÃ?•ùÄ?Šž\?’“?“k‚?¥˜æ?²|²?¦úœ?¨Š?è|È@—‚?Ó6>ÙÜû?QéÀ?Ͼ„?ðFû@$Íå@!˜@¤ @o ?F˜×?TÝD?‚Gç?‘s@g9³@mìž?ö,ƒ?öˆª?€á?jiV?Ð'*?Ù¾?[ˆ ?,Ÿr?aÇÛ?s‘—?<ŒW?"E?~Ãû?ž“?Œ{?C"Ë?µý @-Ã?Ø-Œ?é#?eû?ò;?÷|@ ”*@ æš?Â-M?¾G‰? +‘Š?‘­>òÄR>ñ91=²ÿG:⨂?>l?„ ü?ÀÈU?Ù:?«É‡?´Œ?7•*>{~?ÆF?ŸGÏ?zÃP><ò>ãr>?Óß0?Ñqd?Òï?ÔÔ}?Ù9¡?Ðrà?C£~?É=?Ð~?ü¦»?ÍW£?²ªs?—Ń?zI—?©Ã›?íÈÉ?Ü{ä?±[Ù?‘Ö_=1>)¶@Þ@Ä @DØ@'.?ɨö?±tY?±`µ?±J*?pé¾?"òÙ?¤wN@!‹?ß 2?™2¼?žêÐ?°«å?²Þû?ëZœ?ë@?¶•?°M°?{—½?`þ ?hA'?j¨î?’X?¯Ù²?ˆN?àª?@Ì!?Êc·?ÇÓ*?ø ?ñ ê@¦™@`?®PZ?Žá?j?’-?kå¢?%xå?®>èÜ +?#U?¾_÷?ºüg?—\,?›œ–?ôÙ>üT¬>X“I<à{„>X2>ñGö?¯…@r?äñÏ?­¹Î?¬Çp?ž?›Ý?™•Ñ?—Qp?ò Ç@€Ÿ?ŸT‚?(ök?»à? Ýé?=¶Ô?›GÝ?žØ\?¬äÕ?¬Ú?áö?†?a?#—>ôà?x.?­Ý;?±Êm?¸@¾?Ë¡ó?õL”?áë?/lÉ?8²ö?¤~?¬+w?ˆú?lò)?‚e ?’5ï?nº´>üæQ?ŵ?´C†?»ç? O0?¢¬ ?@Ô§?Ç>ú¼v>åœ>ïyL?r¹?/#?ƒ¨!?“ ˜?×!?Ô¥—?…›ö?ŒôL>¼> +ø³>wQ£?B4`?º8?Ý/Á@#òÓ@'ö‘?ÃE:?ÊéÎ@BèT@VëI?Ì!-?c¡Ç?eê?n•‹?­Ì˜@×@ ec@¡È@ @ e@#Ë?ê^ç?㘖@†´@Ù\@‘?ä*G@”F@ Áî@!‘Y@=³n@AÒ?³Ì?ª©Û?{Ð’?nsœ?¾«?äD»?­tï?«BŽ?«E?«K³?´H +?ºk›?’?}N?³·Ö?ÇÆ‚?¹2ñ?¯ ×?ÒL@J“@ß6?±€q?³„ñ?dÅ?dÑ~>ÇDÚ>‘?®>ôvt?!ÃW?Išœ?SPÁ?‘:&?Ïü?¿?7?Ÿý˜?µþ@4¶s@?¬£?í£?ßÿ>¶^â=u[\>„Ù>à‹Œ?t}?èQ?Kà?•‡?®|‡@ ü?þЀ?p¼?ô ?85Ö? ‘Œ?ï,@ ø?,‘g=œ9?M-1?¢â?~ôr?#MË?3Ò9?€ß®?†EÂ?féH?YP^> ×>Íü?ƒÚ?´=÷CÑ<›Õ >¦íµ>÷'4>SÐ$=SÏ>€Á>‰i.>ç×÷?I%?2Pé?&k->š‚:>©‡/>¸›Ÿ>ÇÁÈ?cGL?hi?‚>Ø÷>N=½x=#½d>_À>v’ú>§9w>é¦>­ Ô=ð:ß=;<:ei”<1Êp? ?o«>Pid>TÙm=î³>iìK>ÍH€>Mó==ž„^?üÀ?ñ¥^?µ’?q'B?I—>ãwB=Øh¼>©U>‰Òx>nUQ>íqg?K7_?R¶¦?Z1C?1"S>ÿ®q>ÿy­>ÿBü>þìŸ>õC ?…ä¿?´ñ?t>ß´9?0€)?_'s?rQ?4ŠØ? +Q>Û>»4»>É¿n>Ø<Œ?÷?Û£?^϶?tEA?lñü?e¦¥>ó.ÿ>²q¾>¤Î>•½²?2-°?5Ç??Ü£?LñS?á>?œ&µ?£(?ª$‡?…Œ”?zü?å+V?ìø¿>ƒg>¤,%>µWG>§†:>™¶ ?»‚?Ûž>‹²? C;?! +/?; [?NR-?[âÀ?in¢>„ü<ö`>Ä*Ô>Û[é?’®Þ?žëç?˜=l?‘‰>¯Žˆ>_s>y³º>Š'Á?Œ¹^?”Òø?Ï)>úÞ-?Rqö?j7>B×Ñû£˜>@õP=ã|?“?*û?þÁ>ü‘=—3=g'à=pð=ŸYK? +3Ÿ?Ä¿>óJø?¡^?*e>üz>Š}>ŒÎÛ?)¬®?)ñç= ‘ ?Î4?Ð}£=²ßÄ<Æö ?z0‚?}uw?ƒª]?†¦+?}¬,?…µL@Å?óªà>ýõy?-h?×¥Ø?àü{?ñÖG?ìå,?R½Ó?l’Ö?¯% +?¦Æ(?kD +?sÀÍ?~Úâ?ŽLþ?¼ôÌ?œ^ž?*d@?føó?¥+ª?×ñ@"Þ9?ù»?h£Ë?;'? ´~?sÀ?k•`?‰¦Œ?«?»÷y?ÒÞ…?j±>X>³Û:?â¼?Œ¢F?½º?Úk†?ãÜ0?—/T?f½?3À˜?&Q.>–ÿ>EØé?žÔh?Àöƒ?¾Øº?¸·ö??Æm?T'?`®]?fz%?j"Ž>âD->ñr? ½¥?,È?úï/?ÞÁ2?aÙ¦?VƒÅ?K6s?Q¯b??Ö?h“]?3“?’Ð'?ü‡j?øj=?æ“?¡Eé?(AA>ûƦ>ˆµÞ=Él?_å±?¶š‰?JoJ?’û?p?ÂV>ìðÙ>Ýr?ŽBB?•CB?¾û?ÂÜŸ?mo2?Šv@&‘@#-°@"‡Á@ê?õ^l?æ’«?Ã+©?±›}?t=°?ˆž ?ºvÙ@V{@`~½@ 48?6e>¢>5¹?Ýe?UÛR?‚IÆ?“|¡?åJó@p¶?²¶â?ž?"?ŠÞY?Ž¶? ¬ò?Šö?˜æ(?–O]?NDÑ?JþÇ?‚ ¦?u‚Â?$9'?2f§?Ú?2zÆ<“›>Þú?‰Å?}æ=?W)å?ø>†iÑ?ë?.Î?i$Û?‚Ù2?˜vÚ?£6˜?U£å?'¥Ý?v‰í?‚é?1Æê?&p?ñ¥?›Ê?]ÚQ?HáÑ=¢/>nŒ?ƒŠ?„p?ƒ‘?bwÐ?(©!>áËJ=çR?ò†?ƒw?fFÖ?$n?.ø?>,V?Çç?¤?vZ?¢ >é­*>²@;q@M[Ê?†nÅÁ®?+œ>úñ>£]?V‹s?š«K?¹A÷?È@×?Æž4?ÄÃþ?°ÃI?¯^À?Io?D¡?§$?§#Ë>àÉ]?>]Ð@9=@‚ ;‚‡—f??į£?F ð?S?ŒQ?šÑ?=gæ?)1s?šl?’á?ÄŸ«?¿o?ƒ°?ŒV^?ÁËÂ?µ©,?€âP?‚÷?”?MÇ¢=¤?¿x?‘à/?àN/@Ù,?øu6?Õé÷?±• +?Ÿ‡?¤>?£Kõ?þ‡&@ éò?²«j?š/E>Œí?½W?“Ò?á6´?ç~ã?ÓBì?Ìü?Á5*?Ãfâ?Ä1S?´±Ì?‡üÐ?”±^?§?Ë/ö@ È?«kÛ>”uë?Aÿ ?– ˆ?—ã?ž ±?øå?‚ ”?‚›œ?‚˜¤?‹Ï?’p¦?˜–;?–Ûþ?Ì;?Ó¶?–Zè?ŽJ?,=_?(®>@ †x@!ZÇ@!@2N@Û?èrø?< ?:ØÓ?PÖ? +ñ?"‹?„Hª?Ü?òÿ€@tç?ÜÉ?‰¹Ì?¤ð?Ã6N?²Œ¤?§f#@²Z@Ý9?¨[:?7%Û?„ ß?øM?¶|•?ÂíK?þLÂ@)Ÿ@ç-@#zö?Ïã¦?Äf?öë?ò¸©>v‚D>¯k­?¤ý§?¦•ü?cy3?€Ì ?ï(J?áØ?²%¸?»1?Ê8Z?½É?¡ªé? ÿŸ?¦,«?šÍ&?go?r% ?[MÙ?Tά??’?+ê?!¥?¢,“?û?× ?»T®?$Â7;ÉFû?o¦v?Án?¸ôY?°¦º@™µ@@k!?ÌB ?€ã«?¿l?Õݨ?øk@Å[?tÚb?:0ƒ?{Õ„?~ÓO@<é?@N¡ ?¨q?‘ó±?½ãS?À¶´?™mh?Œå]?y?>ô@„ªé@„)4?……\?‰ø5?ýåB?õûœ?†U©?‘I?Àv?¬$>q‰é>Ù–|?£È3?³ÖL@ ɳ?ñ?í?M)z?åwÓ?¿ÚI>ïaÓ?FMb?á?Ð?Éál?g6”?~ÇÝ?«VM?¨jH?­ +:?ª·Ì?¢àp?¥f^?ey?¥H€?ÄÌŒ?ãîT@Ž›?ð>=?p>¼‡‰=Lì?Ë?ëÐŽ?ø d@ .A@Xd?ýJì?çS|?¼{o?»:½?¯’Y?šÂ÷?Cê?g÷þ?›¦Â?†Ù?F¦Œ?™³ý@C£@%O@Xé«@J£S@âb?ðº8?\d?Z¡¬?Ò²_?Èø?¹#?ÉÀ ?ûT +?úÇH?ðV$?ï1Ñ@(?í<î?ˆ©? —H@½î?ù=?¶[‰?¼Û?ÁÙä?Ʋ]?»lL?¹þi?Æ©?™eÂ?­ßâ?¥'?×¾ä?ßiB@0^@1±§@# @$6?‡‘ù?xŸW?¬0)?³Ø®?ökæ?ým;?’cÆ?výÅ?>o? #^@ 6Þ@-p@rÐŒ@…3?亸?ef?S®?¹>{?®å?ªd?gO>ö‹Þ?l†×?¹ÐX?­{…?•lÄ?·‰r?õê¡?âÉH?¾ù?á+î@j?õ>ã>%Ù>Ô0p?ÓFÈ?ÀÚ¶?Z1>õKÒ<OÑ=z±W@B6|@G#Ð?¦ö +?€š@ +¸-@Ó$@&Ä@)gù@õï?Ú­á?”ñ>?^³“?¹°u?õYð@Ç @8ÀN@ „z?†ƒ%?Áå@  ›@ jó?‹„§?ì>?å÷Ò?å6?˜lP?wµ?:>ù2Ñ?a ÷?m1æ?£¡Æ?¯³Ö?·NF?½M¥?•mË?p^f?&’Ñ>­ž?’n?oîQ?U­? g?-Å?±ê?·¹º?Ϊ:?Ì¢@í±@Õû?‹§c?n²Ø?Ýñ“@^ð?׿?»Èá?½_ñ?¼¡˜?Õ‘?òÙ!?Úéz?²7?™™%>Õ~Ã>ú—2?Åð]?ÉêÍ?2+ ?Adþ?„(n?Š€ã?dn9?W9‚?u¢ê?uÐô?ŸCS?ݧ?ÁÆ™?kÏ_?•æS@œ?üIc?Àút?Ǭ?Å??À€?*w‰>êå_?F/ã?kÂ?ìvN@*¼?ú§W?[™?|)?»h»?¾­â?Ï‚n?Ó©Â?ü+ê@!@ pÊ@ Åk?¨?iJ’?š¹»?º ?¦Pý?…¢Š?Œî?ˬY?ÉT?­®?J?g°¿?o¤j?öå@š?™šÃ>çúA?±VL@)Ôå@Xè?­¾¬?©I¿?„¥Ã?†Ôà?«_1?­sÝ?é>ï@¥r?­!?fþž?eç³?Oñð?F‹|?f´ï?pP?¡2u?£mM@È´@ m?Å:ñ?¬®]?Šf´?k¹&?pD¸?tÑo?šØÔ?ñï7?ó/h?Üuÿ?ÓÀ?'K?Š{œ?ŒÔ?"æ?ÿ?£2V?›sE?˜~ª?u©?JÎd???xèg?t ®?÷6j@ ÔÐ?ÍäK?ªc0?\QG>äÔÉ?:ˆÌ?¡@ù?›Ë ?Öê?•Å?>ÇC?7EI? ä>ëé> }&>¨²?=Ÿh? 8Æ=9ÀŠ>ä]ë>äXW=½\Î<Åqû:†K<<è@=Œù¬=à>Z*–>Ä7>úïZ?.­ ?La?Ÿ7«?±ÄŒ?“|-?™ þ?íV@UJ?ãûm?¥å;?ïÞè@;ž @4OÈ?ÑxÈ?Þ¤ã@c÷E@`Ii?¦\˜?dCs?ýg'@ˆ~@ nš?æ‹ü?åRØ?í‘%?÷™@Xr@Ó?Ü/?˜£?´ÐA?¸„ß@OB@ t‹@~Ï?à3ñ@|Ä@EÖ*@<ÈÓ@L¦@þŽ?ÈŒ ?™i?SoÎ?6›^?ˆ-?Œ?¦Ø1?Á½a?׸]?þâB?Ú1?R X?B4.=¡+;/V ?oQ?£ß?¬ã?·ÿU?Æÿê?åçÉ?êµ=@YZ?ôQ×>´Y>Œra?Êîå?×´?)¦ò>ç×â> {‰> ôI>—})?DN7?™œù?m’>æê–?ô?62õ?1ªÉ>¡s0>¯“þ?yc6?u©?½V>ç€;>ç€÷>矠?&Û(?7Ùš>£ér>˜â¹?2ÁŠ?Ð(>è&>¹Á;ò?fÖÙ?h¢G?¨>èÊ?-¢?-„œ>Íâ.>Ž{î?,Ð?,'`>çß>™Â›>©¾“>¹Æ>…þ=çùÄ>äëj>²ñÎ=Á"°?Œ‡R?ƒ›">…E¥>dµóT=T߬><ƒi>èdz?Eôå?¦A>›ÀÁ?ÇÂ?F[?Š)>ÿ­>ÿw¬>ÿ@„>ÿ+>þÛ‚>œ¥Ù>ˆ˜z>¹Dö>²Â">âbÀ>ý͇>ŸI§>†ˆó=œî8>^"V>o¬¿>Àï€>™?¨?Qâ?|m?q?í?Ënë?âÊ­?5% >ûÓÀ>oµ>W>Ã?ˆkÞ?Ÿ¿,?ó¤>ûZ’?;Á–?8p?MH? èQ-Z?>Ý ?UB²>ƒëN>M3k?Ym]?jv?dl>ºtr?Ax?YªJ>R¼Õ=šÿâ>1ôF=ºiº;²Äª?M[y?hA€>Âtk>¾Ö¨?=ß…?W¶y?] ?H—V=ÒH¿?»³`?èÙÉ?2ª/>úê/?Ûq? >ýË<>û +¸=ï· >ÿr?”ö?A? ?"®„?!68?'¸Y?.=T?B8?>ÿ?{3ª?‰K¨>×]Æ>®ŽÊ?ä?ª?•¬‡?©rœ?3H>ýçð?gôS?hvä>ñ“#>Ï9\?TEí?Y:ò?,Ù›?ë;>oG‰>q¦ì?-jŒ? @÷?£ ?+*> %f=ãúì@x3@¸?hF?¿>ÿh?³ö?}”?†ä?±ïé?®™`?¶t?°ÃÏ>E15>uµñ>öB¥?Õì?–w?~†_?(n\?2ü»?~™º?`a>ÜÁl?¥l?y÷½?^x¤?äJ?OVõ?®¬‘?ØZ?9?„»›?Ñ&J?ÑoG?¿º=?–3©?AÎ%?lsÌ?Œ~é?“ã¼?“ÚÐ??ºD>È…K?$F`?`3×?l +?wÕ§?€P§?‚Úè?G G?2ºò?¿ƒõ?äs¶?g?Xì +>ß­>™¥{?‡.é? \I?ÚŸÇ?æ˜M?xr ?UD>Ãœ>Ä7J>Ͻ>צk>"Øï>Wy_?¾?ú?É(…@œ?à2g?–D?a…?äŸw?ù#í@Â@À·@&ת?æªu?A'—?K™ñ?a"o?)‘Þ>¬Ö×?/Í­?¢?)>'¡>ÀC‡?¬$>!ŒË; ¸¹?ÀX"?ôL?ëÉÆ?ã‹X?ó¿?ó‡R?š¥^?—ÌÎ?Êÿ4?À¥ @w‚@Ä1@þ]@0?äÄ?éÔ ?Õá¬?õ!ù@"¹™@cå?‘è?Õ$'@,î?ÇS?Oa?—|?­~³?²$/?¶ÜØ?´7o?±‘Þ?­ n?±M¢?Z§–?<?=T?L|+?>Œâ?6¨¸?Ãx[?¿¨z?Ž?“MÞ?‚¦H?‘Œ7?Ëy?£ëd>üœ=?-•£?}›?Kª?f?JFs?‚Ëu?d<]?>³y?óà?×Ý?£Pi?ÍŠ²?”È–?‚ãÎ?¸)¡?Ä`ß?i×~?Z Ê?§/q?£‘?;æ¸?#p =’>EÇ?(?!Ê{?ƒø?ƒµ?ƒ %?À?@>9?à?–™Ð?OQô?4?€É˜?«?R?J3¤?º?2z‡??n+?:tD?5zå?4òo?!—0?È^á?×éÒ?ƒ(×?ƒ(_?ƒ*è?sš?ô2?!Ã3?÷´?¥a?ú$T?à†?¹Äh?”‹G?FÁ-? >/?3(?4 n?S¢>Ú‘>t? pb?Iãd?^„Þ?q +•?‚Í¥?ƒ4 +>O<>¼?Ϭ?à>N¥)>Sµà? +Ül?"?‚n½?5 ²?gˆ?Îse?»Ãé?™‡û?ܵ@P{?ÂöË?b“ð?)ý?'¶?YÉV?„ÿ?€ ?q´e?áÊ ?ò¡u?²°™?§½g>Ñ´µ>ä?¹U?´œ¸?xÎg?|%?}æ?¢3 @@n?Øf{?ƒ|?N>ÚY?ŠÚ?"<?ØH.@-ÚÅ@¿R@þU?ûÍ?ï…?·‘`?¤Ï'?ã¿7@ªb?§:s?—> >Š µ>q?€?J(?0ê?K*@øË@ Ê?‰ÌA?Ÿ€ž@î?ïýA?¾Cœ?¾ì2?Ä'Þ?´{&? ao?^0™>¸k>?‘„õ?í¸`?Å®î?§ëÛ?f,?‚§-?”ð?×â›?ŒK?b±_?³¾Â?ÃØ?í†??õÍï?Ç}q?ÃÁ~?üH?Æß¡@¤|?óÏŽ?g¶?[í@!-¶@ߦ?ìÖJ?ºÐ?Vß?"Š„?cnz?„͆?¬q?Ô @;‘?÷Cd?æò@F@«d?Â?‚Ð?›”ê?¬N%?B¤º>ÞÏ)?„r?¦b‰?´˜?¸âÍ@Õ@"i­@:#à@@dA@$Vö@ b ?Ž_f?Œ{Œ>â¥>î"(?¾?`?â.N?܆?×CE?ÇÉ·?œ¢?¡%@‘µ?Ýp´?ƒCÔ?˜’–?¸)8?¡z?kh?pí?MŠ:?}8æ?¤+p?›!?Œ c?«ï-?È}M?€¥? Sê?µÇ5?þ™¹@É6@Tü?ÁGC?Š„Óí?7{?ܤ?Ó…Z?¿G˜?Ãò#?Ô^¾?Éã?¡ð‡?‹H¹?4’?’œ1@ú˜@ 1?ówœ?ѹÏ?€‡l?¼#[@1W@°?­DÃ?² ™?ÇÝk?;Â?Ù9?ÇÏ×?¡˜å?¦û"?¨€Ó?™*:?|þµ?|éÓ?|Õ?rØ?Þ”÷?¾EÏ?fê•?‹Cò?Àæw?®mµ?dó?Ã1—@Ê`?ú•x?{É»?·s@(ôN@¢$?v¥?´?ûCQ?ìÉY?À¦)?Ï ?úãx@¡Í@ +‡@$@bˆ>@Hwˆ?§â¹?·²Ž@ &e@ªd?˜š?£³8?ùÅ@¨@)„@"¥ì>ù]x?ݺ@%_2@$Uê?9©?‰â?¨ÞV?¢ŒÒ?ŒÃÄ?‡•@-™Á@;ò?]H>ý%7?œü ?¯˜+?ÇJ?ÔÉ@Fó@kÔª?áÚ?U¹6?·•Û?âk?Òû„?Åܱ?OÂ?=íÊ?šBî?ÓfÇ?¬E÷?…¢e?¼Ô¨@Åò?å¼#?•Ú?Ý/û@Yù @?ì?®¯?Òëê@G†@=šï?tßm?tÂï?pù6?i?È.6?ÒL‡@ÉC@“²?’î¡?…·¡@’^@*ºú?Ëeˆ?–15?:>QÎ7?5-«?–—¾@p(@?Â?ûÈx>ò¸?¶5@_‹Ê@S%@&Á^@Ƈ?ÀH¾?É s@1Æ@2­"?€6?sNI?q3º?qz@@@ž@!è@%«?ªq©?Ý,?;>ð0B?Köí?ž<-?³Cf?ÞŠ€?ÑcE?´+’?­'‹? ÊR?¦Àu?oØ?nü†?nÛk?n¾3?n£?n†Ä?ÂB?æJ7@G%@ â>@FÑÞ@…|û@Mz?²>à?£xà?_BE?^î[?ÃÇ?ƒ¿?°;*?§ß¤?žR?œ0Z?£@‡? >æ?¹SY?ΰñ?•"?(âó?-¥p?AK÷? ò@8J°@0õ¬?)‡x?!#t@@ F?ZÕü?…?´7x?é¤-@Hj@ë$?áA?jY +?p;?‚%¯?}€?:&Ü?B ?ž—J?¤'?² +?Ã2(?¸Í@?©º?µt ?ËèV?Ôtñ?Üö[?ÒfŠ?ŽÓW?Šq³?† Æ?§Ô?žý?§@Û@/R«@Jmë@L¥?ØÊ ?¶$M?™ÊS?˜$ô?¶¼?‡GÎ?›^7?™ ?ðÎÈ?ï=X? Ò?ý:?°ÏÌ?»*?¿P?Ó#™?¶ˆ|?I[?_¬?œ`o?“5;?«¦0?¬Ì;?¬Ð?¬³2?JÑ>÷_•?ËÓ›@2ñõ@ˆ¸?åêñ?Øß³?‚Xƒ?‹­i?)u?%IT@Yñ@]¹?þŒä?åoÆ?½`Î?„#?–ù/?Ø h?×,A?«Ùª?«Ñì?„->íCy@Jµ@(aà?Ò©?V«o?~Ì?«–Ô? ½Õ?d´p?g&#?¸á†?³ß?i>êó^?F’?mZ? ì|?–Š>í† >Is?>€­ ?Kåk?-Í?iÙ?e+‹>O  <¡¡>ÁD>n9£<³HØ=]Ý>dbí> +3P>ÜÀ>æ/$?0m×??VŠ?KAÏ?g‚ ?ëŒ? °;?ýu@Í.?•²ð?¡8?¬ÏÚ?¸oH?¡¼?›ÚÄ?R¼õ>ä4;?Ïnw@b|L@PsC@&¯@õ@Ù´@`z?þèé?ñÛµ?û×@@!@ D†@ 0?ᶫ?že>?ŽK;?,ó ?3ûÕ?°Zõ?«0O?©$?¦m?T¤ì?3×?ºÇæ?帢?—dÇ?JŒÃ?­ó“?ÿ¯?ôrè?Ò $?½B©? N?¢¹?qz?n*?Ѷ_?á‹‹>Û¡ã>aA +>©Ú> ?O?~_›?ÉdÕ?™·r>ç%`>Ê3¡;öJf?žÕ?¥^Ö? `>ç¡ú?-U?žË©?ÜË´?õŽ?~Èî> –>ÞxÏ?/=?ÀÁ>èR>ш>Z:Ò> +Ÿ<ノ?h°ú?h×Ø>øšA>é­?Uÿq?i ä>¹R±>MŸß>Ä,{?hÇ>°»ÿ>‚N=Í,=ŒßÀ<Ô`ò;hô€=!À=LèH=ž{?Gøÿ?P?>ho >…$À>2;>w¼< j:>‹p @$ãë@Ô‘?¢•?|¢I?\Þƒ?.¦‡>¼ýU>­)ó>e®?+àw?¡Gì?c·$>½ãt?W Ð?° ?[„>Þ2Ü>í9o>û…>ÿ Ð>þÙ¢>/ü>®:>þ#3>ý÷>ýÎÑ>™t>”6>§.¹?o‚_?Œ?øîC@uÕ?›à?|y?v…?nŒ>ÙdA>ਥ?L”ö?Qqî?”l? +^î?>­?™82?=l!?&jn?ƒj?”ˆe?`NŒ?b ?¬_>üOW?®v÷?¼9g?eƒ,?Eìt?s·S?zÏl?&¢?—…?7$?6éK?r‹\?z²Ø? ·>ú®?Û? ù›?Õd?ôyV?ŠA›?kUm?¬Ø?±s8>ýÊæ>µ¢¾>ñš>ú¿Ð?]k/?wÚ×?7dÅ?²–?r÷›?nvå? .>úô?k–™?{?÷(>ú¼Ï?Ù¥-?âÑù?€M÷?b ö?— `?–JŒ?˜ç>ûqF?0ÌA?=ç€?£|>û¢<>M¿>Óù?JÀk?d°X>‡]9=ù¿ô?g.ÿ?{kÝ? åx? +1=àñe=ÈþA?n¹?|v’>ÁÝû>ÉŠ1?ˆG?}}÷?N”ã?b¡´>H[>=-?^!?JÿÉ>Õ©>ì{?¶£’?¼–t?»’?²'?} -?’õe@BÖ,@/Å?&vË?+«?z?ƒÈ?=*²?h!,@ ä¥?öXI?W»#?]Û ?cû°?4¬*>ÉT?G?~>ÿì?¢`?%àº?ƒ(¢?Э8?­öõ?‡?‰¸Ì?›]D?Pê3>s»;>² >ÿøŽ?TÐÆ?šÊ5?&pé=Ì{=7?$ É?€X?)Æò?j?7/?\ÒD?6nâ?*ú&? +5Ô?žx>òl`?SÌ?ås:?ôŸÁ?Ù­ª?Õ:f>ž= >_#=·X³?»Êö?ªB;QW=öù.?à1?RT?­Ý?‹)ú>ÿÿÆ?I¿ß?¬ùê?Úïõ@£[?û$™?Ÿì¼??O>Q.?3#>?–?kŸ¿?GPü?Ýà?Î?\V? Xô? /?6Æ?,å?'ò?èëÏ@Ù%?Ö^ä?ÔE?…”æ?Î?§ G?°Ë½?¡Ø?Ÿ‹N?‰ÿ÷?vó>§É}?3.°?àö-?ö†É@]Ã@2?ïò?Á¥¬?€Ö?§=?ûÏ??Ù9 ?ÃŽP?;]E>¤W1?–z?ëÛ?bn-?3E? ú'?„á>’ ¿>qÞ?É"?&¿Ð?Ãçì?¶`%>ˆ6Ò>ºÙ‰?Žp¿?¡,8?ñÛ2?²íÀ<£L€>>^¨?Ò?r??ìÕ?šæÅ?»f?ˆT?±šÀ?¡‹?”Ÿ?kŠù?h?›€â?¢2/?¾V;?ÄhŽ?æÛ?ôà?îȹ?ö>c?ìŒf?Ø\Œ?U˜Ò?3 ÷?Ï?E³â?Æ[?ÔãÝ?ùì×?¼ñš?\T?›?Ä¢3?|+?T?‘1‘?Ä­ƒ@w@´®?¢ë ?ƒ$]?ZS›?U£Ð?ΫÛ?ß– ?ª J?–îa?ƒ.y?„"Ø?Š1ÿ?ˆaT?‡X(?FÈ4=Õð>Ê{?‘†?’ 2? ?ŠÀê?ƒ6Å?qÍ ?[DZ@ˆÊ@7™?¥C? <‰?ŸÎ;?·€«>ÙÅ/>E)C?E¸?^Ê?)>K?"¯ó?m2É?|‘0?µ&?±n0?†Iô?“fV?ÃßV?¬??o¤7?N·Ð?,ø8?6p??æ?èžö@0æ¯?Ñ2?U*"?:%?.X?.Z?,r?’”?©Öß?ò„@˜@ ¿4@ é0>úi>Û?[ÛI?X)¯?V>׆<¬K <698=£E(>ŽÆà?cÎ?:WB?n¥#?¤{N?Õ/?¬?•»?ns†?K®ë?šA0?¹ŒM?x^]?HF>Ê>œSF>¥\ >®d0?lª ?kk?•ª?ŸÍh?Ä[?·´\?W-?hy¬@!ò3@ò?ÆjØ?‘?‹>Ë,?Ÿ?Û?ŠW"?‚Äf?t5=?]™¿?äµ?³që?¿»?Ä ­?Æ%"?ÂýD?õ– @‹¢?­œŠ?•3;?àŸ)?éÒ€?©s?¦¢Ý?Ÿ6?¦ ?Óà…?×ê}@$ô @¨õ@ý›?ê ­?Yt?”0L?“¨º?ŽC"?jÑo?‰šÔ?²;¼?Â(?Ù{›?Å„U?µêG?ÌÆê?ánW@½=@2P?µkÖ?OfÕ?s}é?‚h?“Ü:?ŸEâ?I_ª?]¸?Ç?‹k¡@ŠÇ@ +?Ë@£?Áâõ=ÃÍ=Ö7“?½¢?¶co?Îg>ó˲>QR3>¤Ãì?iP'?nà@?Wn¡?g¯Œ?¡¦?†…@ z@ £F?¡¹?._F>ž#7> +Þ?œ÷?ÏIæ? F?’ÔÅ?ö?Õ?aã ?f7~?Ûœý?ç`?ŠÖœ?„—û?ä×a?óñ?â%™?é ?—•Í?’.?`çƒ?w¢Á@pÿ-@uÛp@<Œü@/Õ >õÛ>.‹?¡Œ?€·?‡ Â?’ž?À' ?µvà?€¬?üx?è‡?¡*v@Mk?ñÒF>»¹?wì¯@1ðU@|8?@ºt?‰Ž,?ÿ=³?å°(?¦¿ë?¶ò™?Ñ»Ï?É^Ë?Ìü{?ÐÞ?Ë—ó?±€?~y??FÌ?ƒàÅ?—ˆf?¿g=?|„i=Æ\(>ïµ ?…X¦?èc|@IL6@É/?7×À?w1Ç?«Øc?Ð5@'ö?ˤe?2†È?6d?:?X?j¥? 'í?¢J?£õ>?èä@3@@"˜û@¿¾@<@Rýƒ@)©.?‡«á?: ¤>"Þ—?€2?…k@t@#?ö›?ÌÉ·?3m“?D+ˆ?db~?«…@5¸@'bd?»Åì?Û3@;¡@)€÷?yûL?‡ñÇ?Û—^?ëÎ&@;1 @7¼?ñŽê?âÔs@æÄ@ÌŠ?Ø>?Óþ;@-Ó @1ÄY?øá©?ó¨F@Lg¢@WË?ÚJ?µàú>£rá>XD?—ƒ?¹Ã?·Ô?ÀVà?²ð?§Ül?¿Æ†?ÎÆ?¡å?‰®N?ªÔ¥?¼BÑ?¹˜%?ÁΟ?‡ôq>ö5?‡tÜ?õL}@ ìI@'„B@-c?õ‘ù?Ôš»?cVç?n“Ù?„Åœ?€Ê¡?y«3?tÙt?tµ-?v>.@Jy@Fyš@dè@–t@&¿?óm?º§×?³ñ¶?ÑÚ?ÓI?Œ†?Iè_?™.>í“D?効@L3¾@HÍ?“Ï‘?ìë@P†f@5k?äG‹?æ!?è#?ïnì@k@¡›?³A\?´Ä?³óÕ?±ãš?éëÌ?÷Ó'@)«@9“?†_>ðtm>ðY>ð;Ê?@/Â?ŽË§?®P?éXà?Þ“ü?µ?”?¯d_?\3Ç?Xw;?¡Á4?¬K?sDÖ?nʨ?CòX?B?œH´?²Ã\?g?]þ?o!ç?´=ç?¹ Æ?²EW?ˆj4>W¯>X°d?.˜?lÞ?X¢˜?dÈr@ Ϙ@ÙS@ÏÃ@Œ¿?–Ùö?7áâ?sgŒ?ŽSÝ?Yýû>ëäL?Ýì?k°?v†›?¤Õú?¦ÙA?¸ Ü?µäA?âø(?êúþûç?O£ ?†òÎ?->!˜>Íè¾?j2^?…®?ÚR?КF?i¨Œ?i¶í?CÀ?/X$?ãßl@ ˜í?´“F?Fö¤?M8»?V +¤?ƒPx?Üãú?á 2?ð5Ñ?íîR>ï³<'é?:m?|œœ?= ?˜?t8r?£Å?„tM?Wþ?(âƒ?‡uÔ?‰‘s?™ÁÞ?£49?z´@?g3¨?¥\†?Æð,?„:>æäQ>æØ>æÁ?PM6@(®@)q¾?±Í-?®Â?z9?hªÔ?• ?¡â?µPI?ÖBw?¨ÅR>ñZ8?ª?>N}?9 >OÌ>VPÍ@Ä¥@AK@Z]?åtS?Óç½?¼Sç?«Ð?‰c›?š?—ÎV?Ÿ’?©”œ?«¯/@ü@¯?¢&u?í;?wþ@UÎ?èä?˜ñÛ?™Dº?ä­?ä¡Ø?›?‚U ?Uß¹?X±?—Th?² ?°H¾?³HÚ?ÊW @M@JùP?磷?ãn$?16v>Α­?‹£a?¹³Ü?ˆ«Ë?$°¸?C÷?‘K?€Ñs?/IW?)ï¸?G=Íöà>ͤ5>»Óà> >{Fä>6»<£á/;ÇìÀ=üît>Ò¬ ? +`j>ú½R?NÙ?9Yþ?Wƒr?‘v–?¥¯|?ˆÚ ?†è#?×R8@ —Á?ÈÞž?8X¹?Âæ@Ú@Æ@H ž@DZ@>O²@7ý.?âPË?È ç@ +iÂ@¿?¡øô>íâ²?1³@Åc@„,@0^‡@!l•?zb1?{.?æ`¦?æuì>RÂ<>øª>±¡‹>º×*? àÐ?C7 ?K(?F;A?œ£˜@-E?Ús>çC_>Í~¦=Á{=§SŠ>ûˆx>í]>ç²<>çÇè? +.V?×?S'z?€O«?œè`¶>èt¸>è„G?^€?h®L?D<Ë’U:ÙÍA<ÇF=¬à?QÚ?O ï?›˜?|{>°ÜG>lúX=ÚÆ>FU>²Ùà>Âý™>Ó1*>~ì=³¯;>ê™Ð>σ<¨>£FR>´S˜ÕÔ£@Bãú@5(‚?ý$}?ôó+?ìÆS?®ål?Š>‘>TÅ>ê?DñÙ?e€h?€EŸ?m<™?bô5>Ý =]6W<Æè.;9p4>¨A‹>þ×>àºu>ÅPe?5–G?R¦Ø?Kƒ?C‚§>3æ?"ËÅ?VG†?®FT?½´?+1>ü²==£p¾89?µh?++Ñ?2A+?9T‹?{¶ú?ˆŠ0?2Ý?{gÏ>  >>Œ¨€v5>jJ?kßw?zÙl?5§•?6Ap?u²z?zÃÑ?NÆl?Q›Ž?D ,?4\Ä?MÁŸ?^àF=¥O8Å@>ëËÜ?Âg?±CÀ?¼ >{`ø>!??zr?H.>Œtµ>·—?wjb?‹î…?¥õ?´ê ?_H>û?`÷?rZ‡=ßþ;÷a@=û]Ý>m7ç>:“‡>^ÞD?6l?OiÊ?MÎØ?E¨†?zè\?sÝÓ?³ˆ>û¯=?k¥ç?b³?¢>ûæ?­X´?¹?Mã?|# =·–?=pT¯@¢'@¿Å?ƒù—?|‚£?pŠ?\!Ï?jc?ƒ`>j-¾>Idä?“g?‡E¦?ÐË?Ó…¯<äYÄ? Q‚?χ?E7?ƒèç?}ªÔ?uJÒ?OÌ"?†-?¾ü*?©Ô?5L›?Dò‡?‚—?²6Ð@79’@†d?#Ÿ0?š·?š¥>ãoš=Bâ?O^?ý¹ã?ÂNö>ÿ›?$0…?iÀ;?“6!?ÐT$?¡U>µê×?¡²?9Hk??ñ?:ˆê?~?ã?ÍØ?#þ? –'?&(>-å=·H?=е;]ô?)÷?€]|?&Ø?o#?w?€Å?‰?‘ò?@ ?Hõp?Go?6]?à!?øf?Ø]ß?ÛÛ?cˆÖ?^¯ð=¥3Ù?xÔ{?m¦?K ?(5M?¶@=?›§¾?.ÖÉ?=2B?>+?@7°?U![?c(?`?Ç@Äž?Χ)?eÍŒ?T?®Ó—?8´T>^«?¼”8@a@@œ¢@XE?€Þ—?Ã>?Ê›?Ò ?éSV@ÞO?Y~?KÍ>­ŠD>Ï’”?ìN?€¢^?æ?&%p?“²K?p&Ò>°ê~?î6?‚-š?‹Qw?˜Å(?r‡ó?¿.? ¥ ?Œ>Œ==û«P>â9m?'žG>t­‰>–Ä >ð4Ò>ñ§>JÛ½>î?Š?Ž?“ò>]›ž>puý?®’o?ª$z?eŒ?…6ä?ÎáÕ?ªÎ?¹„?-Ø‘?ƒÑ„?€â?}«ú?¹‘Q@Îß?¼R ?hñƒ?Sùÿ?Q>?¥¶Ñ?ÄT?%*?>Ž1µ?[³ô?‡™¬?ŒÀk?‘ç >Ëal>µáG?²7}?¿Fä@+Šê@0Þ@26@<´?® +?Ï? +¬ ?B3¯?‘˜?dΘ?û? 8Ñ?GSO?Ÿ þ?Ä3? “?ĵ÷@§@3O:?¡—?MXÌ?gLl?a@½?[‚C?aCÈ@Býu@C`‚?ŽU³?“!?ÄÒ?Ð@PW@Zú?ûî?¤Vb=÷¾ä>«­q??€þÞ?³W?Éùì?Ù·k?ÿ¹½@ZÑ?Òö?¤Ç¦?Â#ˆ?ÕR‰?Égï?¹„?=Ó›?)`d?ÿ;?~×,>× ¢>äàí?>à?4m?ÄÞp?ÄÝ?ÄÜQ?¯\·?ƒ< ?RU?<«?;·?9Ð?Œ Ë?ÕÑ6?ZÈ?5íJ?{ B?ˆ´?„Æ?~¡)?ǽ?ѹ6?mO?[UÆ@E@ +ºõ@*Û?ô=Ê>ž(v>”9 ? ¦´?'Áâ?…7±?¸$Ê@º?Äøã={ÔÐ?‚$V@-)?àm•?¥&ï?‰IÓ?Zäî?8”?j©?mïT?‡ñ?šåÏ?œCà?»Iß?´K?#l>þOª@æÀ@ +œ>­«z>ºÛM?ºvl?¾œÞ?Éʾ?Æ"?ÂfÖ?Äép?ÄJo?«®~?hz\?Dd4?Nß?yj¾?³þ]?š.µ?‚Ã?Ê”?û¼Ì?Ö«Î?Ä?”¨›?‡e·? å¶?¨å»?,Oÿ?¢s@X¹@?GîV?v¡>F¯£>`Š2@^@âï@?,Ð@*kŠ?•{?{©? a?ƒÃ0@°?ààa?–Ô?Q²]?”A?Œ }?ƒÄ›?eá?7?6?¹u@ ?¦ì~?R.q?$% ?)k?:ª/?Y0g?…*?—?£J?¶(è?¤~(?¨¨P?3™Ü?3Ò?rh?‘?½àó?·Ü0?‡6??ŒBn?¯¦í?¤ü?L¢"?Xåâ?žÅÝ?‘n†?W5Y?^ý ?¦º?ƒðw?…”·?ˆª?Ž\?¶?à §?¿Ä£?Ã+?_ë€> î?lQt?Ór?R§ >Í ?czp?¼„P?š¸ë?‚tå?‚;Ž?‡Í‡?1_?w?Šãd?¢Yº?T“©?:ñð?)’?&|>ÍFC>§=É?ªjV?Áz€P?¼)§?»46?À+e?ÈOR?çß ?Ùl‘?¯Ûq?¶Á?Óó?À0ž?o%u?£Š?ïãÈ@ ó@/VU@%7¾@}Ô@ùL?¯K¶?Ù;@!_X?ñ6b>þÏw?wØ°?ò·s?Ë’9?~ƒ?—æi?ÂÊî?ÖMÕ?ý›ê@ãl@ÔQ@Íü@0/Æ?ï¡û?¦?‰?Тq?×ÏU?êƒ?·Øº?dV?f/?G¡y?)…¶>üç ?-å[?|½ ?|§F?|‘?¿ëˆ@yK@$H0@*Ü@ S}?—éB?¥»Ø?Åì®?ŠBÑ=õs¼?F?¼¡Å?¼á_?ÀhÐ?Â÷ò?Â9¯?®ªx?gvÎ?‹e„?Ñà6?ðšµ@3,ý@ 4?»Î‰?É s@½©@ƒë@7ø?ñNk?»`á?ÄÝ@(Ž@Pš@mcT@i8f?Ã~Â?¾Ò+@¦t@‚Ö?ï7b?ðÅü?¼‘ö?ºkC?û½ ?ùµ%?Š“4?}ñŒ>¾.?Âo@?í P?•7?w†,@7Ë@^ó?Ïq?T¾>?}öv?„Ör?ƪ?ö«´?Âv]?ÂÙ?|`?ZQY?b`c?vk?œ“f?Õä¼?ð=Ô@ â¶?éÝ·?\\?€Û9?ð÷.?ó*?ôô~?óL?ïR:?æ!>¹Wñ>ïû?Ç '?ÐÇ?ýnn@,^?8Ë>¢Bx?µk?ç ?˜?jÅ?‹±?–Oé?»õ9?å"?ÖŸÍ?Ç +‰@&&«@ˆYn@Zƒc?¨¸?¬Åð?µxä?¹Uý?Ý¿?âmŠ?u¢³?qâ#=Ì]ª=½k–?Ï«?ðòÂ?¤¡?! +?–ÓÒ?”¬J?qM?H£•?5Vó?'¡Í?«Z@Kƒ?ë7¦>þÈ?,Øè?³‹·?µ·£?ÛA?Ý?YIä?RÛ5>ºû >niZ?„Ò¯?¬êû?Öfó?î+³?îØ?ìÆ@ zŽ@*qÆ@VD?–9I?‘Üà?—7b?–å ?â„C?Ú4?©½?±+r?Á¶Ô?É\O?~êh?#Ŧ?‚Ñt?±ƒ?opÔ> |>ý£;?kº3?opŸ?€^i?~ÞÉ?Þz”?â–l?êq«?ëE?’å>?e?´ +á?Üjì?¡À@?=%Z?F7¶?j=w?…ÀU?×?Ù•µ?—\U?•)‹?ÆÂþ?Ë%h@}@f²?ØiP?›•Å?¨hÌ?¼J?±Ù:?ŽÂ"?¥ÑÅ@ *…@ J£?oýª?hgÑ?¢®‰?ªÏ5?ûâ?X‡½?8—{?$¶^?7'V?F‡Ð?:wj?æ9?)J;?»J;?²E¸?u×½?g9ò?Œó?Ž º?'f}>¤Ö>­å>¶ïB?2í<@X@ƹ?àïË?åGü?%W>ðöp?Kå?>‰?J¦ ?}ít?Ã?£›?§Z·?ß} ?Ø0ü?|‹x?hµ¿?æ2ó?ýå ?í?Ï?åyž?ÅES?ªV¸?ˆ ë>nŠ>-kŽ=£"‡=*âÌ?[Ý]?flè?u/?‚ím?“®e?–ãþ?Ìã@H@7Z?«’V?ª™?¤Ý¬?©Ù +?™ÛÓ?£æ‰?é×?A{?»#<@ñj@$<ª@I$‚@VØá@y@}º±?gþ ?lxŸ?š‚÷?œÈ>?«2i?·²C?„Ýê?• +?Ž“Z@2à@Ža?å ?ÚW5@zý@& ?îlå?Ù…?äA£?î~@@X@ÿ“?«n?©m„?ÑV?Æ;Ù@2%,@/ó‘@¡‡?æ?Z?™‘Ô?Da9?3R1?"BP?œ>ÿÚ >âGí>øï*>Ê–´>œž>ZÜ«>a…="ðÍ=‘[Ú>x§þ>Õ ô??Eø½?ZÝ?tí?æX??7>ñ=?d/)?·“?ºÍ?­L ?±š?•û?£?â€?æ†â@þ¸?þ¼F>èfµ=Øcå?Z“+?˜Í¨?|ÙN?`Ë"?i˜?­m¦?ö—?¯ò? ¬S? Á?Ô:?g®?g·™=ˆ¡è=8ûi=–o=Ð¥o>‹Q>"ç¤? áA?^Ž?j9?Oý¬?2!?æˆF>å´Õ>×L,>Ç÷‰? Ç?é$>GS}>?W¶>ÔY?>éÉ(>€g>„¿=+$½<Úå<¦gK9£.Ñ>¥I ?@&‹>î‹ß>;—À?4yz?¬ª>8ä >t?v>–0g>q|„?#?)ÉZ?Vã­?MÌ?4£?%j?µ3?Æq>ûµ®>7*É=ƒµ¦>Á„Ž>þvœ>¶å!>¹eœ?[j?}Ð>Æeù>K‚>˜#ñ>µÅ?Ž< ?¨M‹?Ùî>üµá=Œ,?„&?Kè?aÌâ?ZW?uC>ûå+?>M?=sÄ?gK>û‘y?JºU?XFL?yi1?{PÇ=ð¼<à€K?¯…u?º:?@H?ª…>ÏÓ>ºìü?pçŠ?záe?†ÿÇ?€‰e?´–W?±¢?…×?p¦Ù?™W£?£D +>»P=3‘«<Žqõ9­ùº?d"?mªã?)¡M?2tZ=Wc±?i)?zÕï>žd>k\>ŽÑô>ŸÂ>ÉD>Æ>ïÈÖ>û >û6>ûE?ri&?rdÚCÅ>¾bö>"¦>-âe?m©ž?{ˆB?¸‚"?¼¸E>½,:>¤~?ºïs?Íœ>îÇÏ>×âµ?€@T?€®?˜„?ùò>çD¶>Ù%…? €‚?5lÜ?$ú?)$î?_ñÚ?n[­?Bo?-e§>üà¬?Òy@1õá@)zã?Ɇ?BÕ>ldz>†A°?ü2)?ëÑ?Fq?Œ>œŒ>f­î>½t>ÜTm?‚%ÿ?…H÷?Es??hb?9[ƒ?zO@ þç@D¦?~–ì?xÊ?hÜŸ?SÛ¾? ??Çz?¯?W÷¢?³{I?ÆM?Pò?˜(q?¿™]?aå>óMþ?„?~¹?ê]?>ø°??nW? Ê0??(>Ö|#?6ä½?n»?+c>þä¹?•¦?º—é>æ™”=½=¬>ÑqR?†f?F–?R;ª>ò)*>ê;Ô?r­?†‚V?Ã3?€Ëˆ?• +é?Ô3>Æ ¨>Ðô>“y´>~Ý? Ç>ãsh<ê==c‚>#c8>Ë°H?itX?…@"?¯ÂH?¬÷°?ª0?˜]ü?d¡?Ÿ$Þ?Í€?ÌŠ?ÂC‹?‡ ä?9R^?iì=? “?a0‰?<@Q?§²?Ä_@?â?~ý>P Ú=„s?ç‚i@ãm?½a?ðÄ>¬,i>±¥w?p1I?~Æï?€ÿ?„k-?Ï:?À­Á?‚'ã?nÕ„?EŽá?—@!?ïãx?ÖÖB?´»»?ŸƒA?‚1p>éÌ?[Z¥?¯B?5p)>Æc|?"í~?1ú?i#ô?i¹‘?Má?EÝ~?šMj?•ëÙ>ž[‚>¿Ú?‚¥è?tS¬?­Ó?KÝ?û?Êu>ò¿?‘Œ@~È@Š?ûä?Ȧ~?–ø?Æ'å?ç-?™™?âÚ?yð?œŠÜ?3?ð?>ž!Þ>Í2?+åµ?3Ê=HÓ<­S?“¿U?‘4?Ž©^?€€G?•? ÔÇ?ƒ•?8œm<°Xx>ÍGß?ƒ?ÆR³@ +-¢?ðôÌ?ЖÓ?Ó?Û¥‹?³ƒw?Ÿ0@»Í@ƒ +?1Ê%>—ªÚ?ƒä&?—c’?[Võ?Jä ?Ľu?ÃÖ×?º‚¯?»çf?º µ?¥vì? +Ü?/?J?Š‡?…Ãù?d\"?5¥ø?B?µdB@ÅÙ?Ýس?±œ?w)?;R]?˜?¤%¾?¶Œ?±_ï?ûðâ@ í?w•e?bdÖ™?E?<ûù?È Ž?²Ùf?…·ˆ?›;\?½¯ ?Îjü?â²¢?©º?e(y?uù[?ƒ>â?4?=ô?Rͽ?~_?ƒÞÝ?ˆŒÏ?㈒?û¢Ð?½K`?©˜¥?b‘7?m—q?Üêú?åW?óþ·?â¾L?}:>?°EF@#™t@Á@!¿?Óx“?cõZ?†\.?ª˜Ô?MF/>çk?8hµ?ƒ?·l™?ÐfÆ?à~_?æ°D?œ""?Å@4ã@&®Á?¾ßè?¯ûï?ûqé@ì?Ät×?¿kM?Œ3T?šX ?÷Ž:?Ô_??î¸?s.q@ Î@gÃ@Q?÷=Ƴ.>dÃ>ÊG¿??d)?‚Ê ?Å?÷ŽS?¿b? ÙÝ>¾»?H¦C?‚­ê?œì?™‰ç?Ôi?áéE?sŽŽ?kWa?˜Ðg?–=?4?U?Á`›?Îw7@Ž?Ñ?uç?U-o?׈?¹Q¹?hLP?púS?‚].?Œ´?•Ì?{.à?NRÐ?Í1@õ?iÓÏ>ñhŸ?4ƒ?0:6?+ñ ?'«‚?#eú@ 9@*Q5?+mÌ>‚…ê?¸±?Æé†>d;Ì<=)÷ƒ>¯§?ãg?p8¿>tLÕ>Œ…y>eìø>³8-?¿=?žCœ? ?ýpK?êö?Ç€?¡¥?ÆB?­>üîv?`WÍ?¶N?¨!d?–Qý?ŒÈú?vºs?O¶?n?„?ã‹?ëý?ó–×?ák1?¼Èû?¼8?¼¦?Ж?øªY?ö¡Y?ôšw?ïì"?æl?Ír ?š,?š£ ?™ÿ?•Q}?UÔ©?n†?—(“?¶•»‘@ ç}@õ<@%¯û@#F?ÐœW?ÈHŸ?‰??nŠ¨?§T?¶­?¨GÄ?œQ?—ë…?šz0?uß?CŽ>Ѧ—?¥Œ±@Xè™@0õŒ?‘A?šÛ?Å‹ ?ªË->B"=>I;U?ð¶a??å­?݇X?XÀ?ŠIÅ?£ª©?§µ@?¯ü3?´h>?òzá@ +– @DÂ@Fƒ@j×@Šú?ÔõÕ>Ÿ?ʧR?Ÿ³?X"?‘RÙ?T@>?E$É?±¿å?»ßµ?Œ+Ç?xÉ?Á=q?ëç¼?®¡L?w?É3:@ÇW@{r@"•S@ \·?0›t?BÛ?®K?´^ß?Íh?Å*î?P õ?/ï2?ÑÎl?ÿÌ?Þ.?Ç$d?Ñ>Žš>ü¢¿?ƒ‡­?Ø5?Ã’/?»V÷?VWå?^®]?Þ6Œ?ë­?pê?jÙˆ?ž?¸N]?€´?MÊ?O˜¤?žîÖ?¨ÎÊ?Õú?Ò×8?Р?Îcl?ç¨?é›L?ž#C?Ûd?kJp?E!?04?íD>ͽ‡=•xæ>„?©’€?«IÃ?h¦Þ?hs ?Ô¹ì?ã“?•ÌG?hx@ «­@NÖ,@)u +?ëÕ?ع ?¤aí?¢o@-k@A½?Ë à?¼B?ÓÆõ?åâ{?PÆ£>CJ >ÒíÊ>âvö?ZÁê?_¦3?fë?fÚ‰?Î;>æVo?ïžW@Â-?Ü«Í?Ÿ(>?™MH?—.?‘O?cË?|^ò?‹ê_?’ú?ö@Â?ÿ0?÷‚%?‘=>žj*?*¬(?¼µ +?¬¸0?^*‘?büq@ Ĩ@ à?æw¦?ÖË'?º„‰?«®Û?¦ @?¥S@?¢9Œ?ˆQú?ˆµå?d´?d­Œ?L²?5uw?ç_}@ÙJ?×z?—È|?Ù9?U¸R?ƒ@Ķ@fƒ@(â @#«—?Â8Æ?«B5?Ép?ÖA?铺?ôÃn?ßš¹?Õ„ ?èp6@N@þ]@&Ä@+€Ì@ `L@ ±Z@Í?ý‡N@ƒ*@BÒ­@(†?«6+?°ÑG?äKÅ?äLø@âú@KÅ@ Ž@ ?ãä‡?«N?«NQ?«S«?°Êû?¾¢¢?½Ú¶?×·?ÙòŸ@Ù?÷¨G@Â@Î@BÁ@À@q&@"¯@Ó„?ò?Êc%>‰Qâ>ztR?‰'f?|:>>ŸŒl>À«>ºcä>εy>Š¦> Àb=î/;¢îù=íà>yõ=&u=a¶=¼­Ø=\`ê98r*;:”­=ã°>g»˜>¸ÖÔ>½õQ>¦—ÿ>Ô{â? Çä>ÃÁ>oR}?òA?ƒ±¶?{r?K¼+?RåO?Zƒ?až£?gÒ¢?gåÝ<Ðç—?,á¸?Q¯?;œ?%iK?3À`?dU?Vq?6lÛ?J÷ã?_§?/~Â;2“`=±»x>éi©>éƒñ>é–z>é³õ<¦¦>U•à>‹‚â>ØœC>ê7m>Øá>ˆˆ>éfÀ?.Põ?T…J>ýÓ3>\´@>/õŒ>PR?2¦¯?ž,>›â1>²Ð>ׂ›@¨c@“@6eV@Ì?f×?“•è?Á¢?kÔ>‹ÓÌ>¿‘ó?~>Îâ«>²û?U²?œü +?±‘/?»«©?é›?øÚ?—ï?X.y>”-> 6o=¼H?I1Ö?}Ñû>Ò’>h>£fÁ>…'ñ>èhi>üö8>üØ}>ü·?>úN=>í>ùÚÌ>üIõ?q|E?|?Sª4?I?8/ë?>î"?4ý?,c>ÿUT>ûv–?]/W?iÂ? p™?æÏ>þ >? €=š&+=§ è=Þƒ> À>£;t>Â:ÿ?gÒ¶?zp?ÀS©?Éož?ùy·?ú϶? Áö>úËt>úÊÐ>úÌ9>úÊD>ö»?u&o?zλ?ñ>úÐ3?­ùì?¥¢£>Ö>R>ßÉÇ>ûÁw>úíœ>ÉÄ >«Û¡?N÷Q?]Dv?í?%>ü3p>û'¯?ðw­?ô6Ý?¸‰á?²qà>)Á”>Tþ?¥gl?ŸZ½?6lý?8ÏÊ?›ßª?¡ÏA>kþ‚>$H >õÙ>ûßÊ>:+=÷ôÿ?¯§9?ºMæ?”—>ü>Õ?®Tï?©D?lj,?¹9>ô>BE¶?Hü?E:è?ž‡Ë?œçh>™¤A>ß’©@.ò@0LÔ?—Zu?—’=?êË/?î£?½½~?±é>ýQ>ùPì>Ñ9$?ÕÊ?›×­?‡È>þ \?M?~/?qÄ>?F›?H->}?~¡œ?\Ç>þÆÎ?(Ϧ?ƒ1©?”æÐ?½«?º•µ?¿h{?Ïn‡?å?¿šH?’Ü@?(žT?ù=?žò?‚?Iôª?%É? œ?ŽkS?ÒžÃ?Y7µ>`·=ö|ô=]Ô»?-`>?~¶>¸³\>*¿ƒ?Ðoþ@8à?²µj?›E2>ø3Ó>Ä´-?NO›?K¶þ?>5}á¼@úÞ@qþ?ý8a@[a@æ¨@ž?bÕ%?)ß}>Xãx?G=—?ï_Š?Üî4?Â?—Q-?>p¥?$5\?y?’0n?ÙLw?c[T>‹iT?: +?¥¾@…Ñ@ù™@ õv@–)>ÛÞÌ=pëä>ÍQÂ>Þ?ðè£@èÞ>M •>?%1?”Þ8?…†>dRß>Å1Q?§e?¦¬?‚!ëå?U£Õ?ºJb?@7ø?Ø?‚Zj?Ä-«?íY†?¬]&?©¸?yVM?cÈç?æ‡T@Dw?Íß?ÃÒ?©Nè?£P?/Ò?•ƒ=ðÒX?©»Ì?š”?;ˬ?eˆc?Í"Ö?ÿŠ>¸MÁ?„)?^‡a?%d€?À)Ô@Á?Ø ?£5?„ÏÙ?[!7?>?7ö»?µ•?õé>ûã*>åUò?FÞ¾?Vëß>±¾×>±Ût?äRÇ?Ù„F?¯ ?Ÿp­?I?"„s?‚ca?[3‚>÷ÕÌ?/&:?ƒ"B?«ý†?à?Âa™?¨]?»??ÄÃ*?³·?¨?@(–@CÛ?ošv>Öÿ>þ\t?:e?¬b|?´t;?ÄÝ?ÀÑ?–U?…6X? |ì?‘Ü@DE@f? Ë?jf?»—Ñ?ËÜE?Ûî•?Å)Œ?¼‰ ?œ÷F?ƒK0?‹±î?‹Zå?UÎ$?F’÷?½-Æ?Û?VÃ%?0R>½ëŽ>Îó7?Ô£?ÅÀÌ? È?ße?J¢?zÀt@#A]?ådÜ=L^À>Ž,–?# +M?f{È?œ û?oß?&Ë?*É?/Q?š\?¶~?Ak?@.?5Rþ?>™?{e ?ƒ<Ö@÷Â@“.>ÈI>ÝÇ?l/Y?e3V?”+u?€cŒ?0,?Gí?ÅXM?ÝA}@*Ï?ºÅd?°??L:?ƒ#w?¥õ?¼‡v?x€?12?Ì‹Å@8?ì%?ä±t>½š?‰?$–3?”bÚ?–ßN?'´?-ª"?Ä|v?Ã9ì?»Ýw?¦œý>õv¿>þb ?¬ ?-ÿÌ?‹C?Ü?j{?p#$?Qg?«@>¿›§?§Ý @˜i?¨Øå?l8?ãÓ?‚Âä?TL­?5;W?¥f€ð?–ëC?ËÓÊ?¤×R?–q)?¢gô?¢,ä?’fŒ?Ýk?õxi@ Ã?ÿj@ZÜ@d@?úI?úÚD@5¥>@ !À>Ø~o>®…“>„{Æ?œK¡?¾8B@â¾@,–@p¶ @/ð?>a?bþ?ˆr†?Œ’â?²ê?ŸAï?­”×?ÞP=@ t?²AH?2Üt?RË%?r9[?†5?‰„Í?ƒÄ?IX?¯†?ÅFá?ËyÈ?ÐßÞ?s' ?G*r?¤ÛB?±Å@?Òñu?ä/Î?ì™.?éì+?:Eò?'ÔB?þæ¥@' ?}¿?½û?i]s?fZ?ņð?µ4?\äe?^úƒ?8è|?+ñë?vò?:]O@{­@y +@!jê@‰3?Ã9î?ÄÚ¥?ºäž?¬½?€&Ù?€u?€?¡?ú\¹?ßSK?ª;?´@µ?Ì÷§?Ë´§?ÊE?¢ŽÈ?<Ít?cðÏ?š5Y?‡y?RL?‚6A?¬²|?®¥ß?°“H?Õpm@ úC?±™\=Ôœ€?Uº ?û¼+?¯Âã?j2?‘wÑ@T˜?ár?­|y?˜;[?ŠC?Ðw@(l?ùн?Òc+?ïm@ +Áh@ã)@!ºi?Ò¢>üøS?›xl@ ?Ü9T?ŽÖÜ?›@î?®ïá?× ?ùÀÉ?ʳv?•?¢Vˆ?¼ó#?ºòâ?¹$,?¤¯`?{³H?Ô¤‰@9@¢,?þˆ?Åž¾?Ç‚—?ÞÎ)@Ï?è+?•÷ë?‡:Ã?LªÌ?TI?zI®?›Á?Ú:÷?Ãÿ?4Ø?<ª1?yµ¢? ¤?ûš2?ìÆW>ùOä?$Žû@!Ö¥@áŽ?.©ò?(xÜ@:†Q@:y?ÿ·–?úû?"º¶?#'@"ÇJ@-gé?Ø‹Ø?Æ"Ô?×¹‡?×>Ù?ç!m?å?¥ÿo?“‰»?ß,·?ý?ãc?Øļ?Ým +?Ђ¦?›ãB?vWˆ?™7?¸–ó?Å<ý?ÙX?®n®?9?O3•?‡œw?aMõ>ë6V?Bƒ„?õ +›?ëPF?ª7¨?¦ù;?ÐœB?ÕóK?«c?³-«?Fµì?B¶I?óÞ@N`?Za!?e?—ö?µŠÞ?yòP?=?á?4lî?'p¢>÷‡>˜¤?\ö?ˆHQ?¦eÓ?ç8Ÿ?ú›Ä@H~@çZ@3Ò@@(x`>ô)‚?~U@C@Ø?‰~Ã?q ¨?‚¦?†@í?çNÑ@ˆ{@w@@ ’?@ yo?ã¦?•Ä?â•?ÇÞ?O‹›?Ùf\?Ðî?c·â?YÇ/?üî^?úÙƒ?Ôö4?×$î?»$?²Üç?Ojø>ñ‰‘?}ï[?¯67?œ®?6?…ÞÈ?i¨5?`›f>ídì?í4?m0’?my?Þ@?åIà?ŠæG?k6†?øئ@E@®ã?ìD£ˆ=¿ D?\:Ë?oS²?û7Q@ +äL?ÐþH?°¬?‹RÁ?OË?"Îã>×Ø€?&!?¡‹Û?¥Ã,?©ý•?®4è?˜7Ç?/8?2Ž²>ýÇE?=2Š?Yn ?wÑ‚?jx?jŽ?º@?$ß?~Ûk?qsi?h’?h}¤›ø?‘éÑ@ج?îê +?„.?B?hç?f€?¡¿P?¡ž??I$>õv9?‚`?¬—S?•Œ¨?f“?r,]?„Åw?qõÆ?+Æy?&õ»?•9?¥Ç-?Õf+?íu¢?ÜO„?Ã\y?×¥Å@??ëÓ€>ôÉû>è÷Í?æ ò?èé­?’Ñ?ƒíú?ŸX?«³¤?Ǿ?dÚó?œN­?øÔ[?ãòÙ?Žó³?Œi +?È¥–?ÏŸO?á¥n?íù +?ý.É@ +c?À›±?4¯?fqÔ@)J@ ‡Ø?Öñ?)Ô?Ø?Y‚?våÈ?’Fî?ƒô?€ +?sï¸?'yP?@,?™"?¡+…?ãõ…?äG:?27›>äEÄ>ùÙÇ>ü}Š?]ùÙ?ªˆW?«Ðÿ?«9{?¥ó?ƒgf?ˆÿ@-â@.CŽ@€¢?û &?¸^Î?Ž•Ð?œ¦4?«U?°Ap?Áùq?Æ0k?¶àŒ?³ù-@OMi@]é@ ?å×-@&fW@D »@%Ö{@ë?ì +ù?˜P¢?° +?Úë?Êîd?δÏ?ÙCX?‡Ë±?WãÒ?Ä +b?ïõ?Ò·ú?´ê™?„^Ñ>ä¡x?{ä@4D~@"¤?‡|ñ?{Ð×? ð?8ã?MJ>è±™?0S?f¨>ÁŽ0>å¼>ºNd?¤>Ü^º<«Ö¡== Ã>àK‰>ÒÜH?BU}?7Îà>U‘²>ë+=DJ`>WÀ]>çuç>ç‡M>çšF>íÇ>øRÿ?„"?gót?gLb;`þ;? m±?[úÁ?jçT?yÞ?-> +ŸH=ÙJ=œ‰«>[å2>ñô>éž>Þÿ,>°¦Æ=¥`%=ã–Ì>>1ãf>ƒf­>du>DíÑ>%'§>–ß>·íð=Ì'ƒ:Àá¢;ÊH@=uÔ> #¼=Â+<>¹Ü>†$ñ>ÊÖ:?(|>ḥ?6œv@BmK@ ç>²Få? (#?Û|?o +~?¯.™?Xg>vÇm>È{'?yÁ>Y^ +>\+>$(ã?3-Õ?šÒ?(aå?ÞÑ?ѹ?“M>ÝÊÝ>´1S=ŠœÀ?Ÿ9˜?»¨?8>µ?D¶‰?^¿ +>ì^>ÝR">ëÑ+>ùwO>üŸÅ>ü ?£Å\?¤K†?'E>?%[G>ÁS,>Ö\f>}Ä8>‡Ÿ ?þÝ?#ì>·uâ>Àb?@=¥?,w;?p½…?yo‰<Ù¥¼= Ò?WF?Kàq;ÿ ?ñQÃ?Þ¥ý?‚D`?vW¿?DÄB?L'}?©ÈJ?¸·˜>Ð#‡>Óé®?#?!v>þ¿>úÖ?ëÜé?èi=>€=þÜv?l4W?‚—ö>Ÿ °>…¿ô?qè?h¯·?ªÖw?¥ßÔ?CV>û!?OS˜?_~?úF>ýÝ™={oC>§@?‡¬?*ú–?A€º?4q?xð#?‡Ö›?>’>ûŸ4?yL›?{¹ ?,b?$sÞ?+?¤S?gÁï?o ? ´(>ÿð%>ü8&>ù' +>CPU>U?U ô?d¶Ÿ>©oN>£ˆà?4†Z?:ו?A+?>Ò><Æí>I%x?7©?\µí?òþ?â¶>ý^,? d?~M?ˆ®ï?±à’?£¾ø?eû?i¦Á?‘w9?”+H?Nÿ?…®Ô?~:??Tø>“sB>¥Êè>¥X¡>òŽY?~­Í?lh%?2ò?fŽ?¼ªŒ?¿¥?¿VÏ?}q>Gù>íêÝ?Uf?Œ +?«eÐ?[s^>–År?!.?Ùù?Z×õ?3»M?Ö?9?'N ?8~*?‹\?¯ã^?’ D?€H­>ž¾=Ñ°?‚äk?§ó»?¢<Þ?ª®¼?cRo?P£?.3?ƒL?³‚‹?Á 6?RHt?KN0>§_\>´¦Ñ?“b‰?Œ”ò?ƒ?6?ìÄo?â3œ?| _?l~?3O? HÍ> 6>¼?¥¤t?œn?qÕ»?m¢0?Õqj?þ' @0B)@B>,? ì?œîn?®=I?œÑ5?¡‰a?Ž%>‚ׄ>‹ü!? £?³dü?¡Õâ?‚2-?£ù¦?èæü@#bx@kh€@Aq>4?lØ?‚_Â?H b?+Af?áÂí@Òq?Ñ¢Š?²9f?ß%;?ñ}@u÷@J?ªzg?¤>ƒF->TH%>?1Ä> ?Í~?ÌÎ9?©Tø?Ã"€@ ?µ[>Ѿ?‚Òß?Kíò?ÙÏ?*sË?aª?Ö‘â@ +?–¯G?/^›?JÎ?O"¥?~j?û ?r“¯?ƒ„? \r? ‰?–€C?›úê@ Cu@ú?*áÑ? +C? ×Î?“ ?.®?Z¹ù?»×Ó?¢]?ƒ(S?_$?=@Œ?ÄŽ5@¨#@ ×Ô@ o?Âg? ÆÜ@Œí@'ˆá?Ž–Õ?RMØ? =0??ó?^Ûï?oõ¯?Ò˜.?ÒÀ^?ìAÊ?ÛªW?w7?€ÉO?…3?±óM?ööj?ÇÏ-?fß?¯&?Óï?hÖò>žÎÉ?CÂ?ƒQB?wIû?y‰Ö>Ý¢m>‰“h>óÝ?Pl?"Æ ?0l>¡ã_>³N~@Àx@@(?` }?XÎ? S?J^?Ũ?¯Õœ?ví?1M=Š¦?7}?·´?’-!?bZ•?] E?XëÓ?¸Gµ?àu©?V€?F½?;J’?Më?€"6?ƒAå? +N?ã…>ˆ£ˆ>Ú¬ @$ +‡@ŽM?ö×r?Ôb?íš?œª?Z˜? 7?#Yú>Ø*–=ŸB8>±ç? ;÷?›(§?×ÒL?±î?•X@'¾@MÇè?Ýd¤?£ÚŸ>Ý+•>aù<>ÃÞ>½»Ú?§Èõ?°úO?ƒš?…¥?«¤5?§Î?f3‹?Bc¶=]·O<•§T;|ˆ×>@^˜? –Y? %L?æ‰?ncÏ?¶–‹?’Ê?abv?êñÙ@#ˆ³?º®™?O›‚?A¨¥?A˜?xº.?ˆü?¬G¾?¹íü?#QÎ?²@ š@í²?¡ +”?žmà?á‚¢?Ñ +(?z0ª?Vò<“æ =ï±?¨?Ç?+×å?Pðµ?‚y?ñs?¤Ÿô?sŽ‹?X?Œ^?ÃŽñ?ÆÈ?À?‡ù?CŸx>æœò>“¹?¹%&?ýÅ?ÓR*?ÃEä@ ÉI@Ê?мÜ?Ã*N?Ý$8?èpŒ?Åbö?ÃÔ?Á¼5?ÀùŸ?ˆŽ?’¾"?Ø“d?ÈÀÜ?á’?ÅÔ?E4s?Uol?•—›?ÁVY@¸+@&F@>E@êñ?¢«o?j{?œg?uðq?¹Èœ?¤0¶?•8?€½Y?c$š?˜I|?¶\Ø?_”?]¸?¶¼F?ûŸÐ?ª¾ž?W„?‚ç¨?…QL?³=¢?Á»û?±]M?© `?¼–?Á¯?Š?õ?€ÿ7?¨Ûú?²R?oý?W +Õ?óKü@µ‘?º ®?®#¹?§sò?°ÁÐ@6€@0H`?#§*?;Tó?ÛÁO?ƘJ?Uè? %?€k?ªÿÏ@>/@!RÎ?sQ?p3?pg?6î?€*Û?šè%?ä Ó?ÒþÛ?¶4¯?½)?¿ð?Ô§?ÿÅ’?å}±?·ð£?´~Õ?¥þ?žê?¥¡Ö?›Mí?ƒ6?Œ’ß?£]F?¥™Ô?©@÷?uäa>þÂa?:íì?…Jï?¡fM?Äë?ö ä@b¦@ µ?þ&“?ú´v?ôÕ„?è„Û?Ö€¡@ ³&@5»Å@Â?¾!|@—'@8UN@9QÝ@=â\@2$?×áz?ò©@½O?éìs?™´m?‘ î?‚Ùç@äò@ƒà‚@Y +@O2?ùwÕ?ÊÇÏ?±ST?‰ÊÜ?”î?{â?Ñ´?ŽLQ?Ë1ç@ý©?ð„º?‰}W?Ó ·@4<#@¯š?‘–?£ã_?Ë;Ì?´v?zQ„?£uí@ {½?ùWn?˜-ò?Œ¸?K3­?q¤?Ê2T?µ«d?:iý?]ý@á@ »@G @æ@5Ý@8.+@ª) @¨a%? ‘?m¬#?ûy@3Ù?ÃÁe?¹â&@†¹@(ÀÅ@ ñâ@$Œ?Úhƒ?ŽÖ?úÊ@ Ò{?ìíŽ?ÖHº?û“u@–‡?ò4?»%Æ?­z,?§:}?¡ÚX?•àö?¬³½?Ù+P?áa›?êT ?­ÂU=U·Æ>¦F?¹7é?ëÍ?ïŠ ?èC·?·|?²G!>RÌl>r0ñ?‘/×?õÏ?×Ò«?äÙ«?Ÿíl?ˆŠ?v®À?sm„?lÏÀ?aÙù?‘bX?¥§w?¬T?¯³ ?¯iz?µæi?µÑË?µ¾É?̈@ê“@ ƒ½@éc@‚p;á=4=f3‹?öG€?ø'ï?á˜?ÛiÃ?ˆˆ?pÙ„?{š@?‡iv?ÜÆ?€„ó?‘»¾?™YÜ?‰EG?oøG?Œ×ü?³ÑU?¨[g?‰A?˜´3?ÞLC?á¯@‚@ +?uÒ>î½£?™f ?°&@,ãˆ@O=P@}h?é´}?±øo?mß?Ë[=ÈóÁ=é³›>?‚>¸$f?êBÏ?ãÁ—?ÓôÌ?Ñùa?š³¨?•dD?œ²ª?¤¤à?Åò“?؃ôü?n –?ˆÕÅ?¥nô?° °?;ôÍ>o¾?OÊê?Äùì?¨-î?j(Q?qö%?“À§?‘‰P?`Ïc?Ußp?Æ´j?Ö÷ ?ÊLÓ?Ê4‘?Õ^Ò?Ýï?Ä5?šO?»å€@J@ Ã?h˜Õ?hƒ¬?{&X?‚ÕU>úäñ>¼ø?4P?u—S?W3?;(?!¨°?&W?TSo@ +—@5@zh@”ö?¨£å?zÛd?†"?”˜Ã?Ýã\@¬U@w¨?¹“«?½O@¤û@ €Ž? ?ts<>cË>Lëã>ÄRê?!åà?f +Þ??%?åê­?܈‹?eÏ÷?e¹ó>û>å “?-Žë?G£½?Æä@ +V?ÕyO?ZÍË?wò‚?«îÆ?©.]?pê?z±v?ž´©?¡sØ@/@Ò¸?¸·?æ+?ÛÀ@  *@Cñ?«°?«‡W?À­¯?¾ÒØ?Ãן?¹v??¬Ø¼?«kÛ?¾³‡?ÜœK?Óšô?«—?®¼?¡è‰?œ©­?X…>ä__?» Á?çòD?v}–>‡Ès>l•º>cÅó>Ü‘;?–Q?Šôé?À\?Æ·?K?Ñg?G÷i?dDJ?b׈?dˆf?FÄÇ??® ?dR?dZ ?èi?÷9Š?ê*?äd"?œhn?dq•?mêa?S|?! ?Ÿ÷é?žZN?ѹÑ?×”€?­KÝ?«~¤?«ÿÜ?®¿³?ž5? !Á?eL@>òô?6l?\ ?Ž¤å?ýp=@RÙ?Šû?‡ir?ÖD;?å5ý@Ž~@ H@ g@ +W?òâ?¨rœ?’ .?U™?—T@AO@9R‡@³½?÷Þð?e #?0 ?°‘?ÕË?¸ÆT?›ô@?™«„?¥ß=?+r>èÅ™? R˜?¤êþ?ž7Í?ÿ/ï?õÜM?‡û¨?[¼W>Ëý‰>m¼S>Qõ’>6 >™õö>ç’}>ç¤b>ç¼!?\¼?dßå?gÏ{?h+?aåO>¼?t>è³Ï> êÃ>½¥>ÊÎ>é½>ÔòÐ>Íf/?lZ?i}?f5 ?^¨+?),5=%Bµ>•®{>ƒ>gì´>ƒß‹? I?˜>+O»=™Ö±=2"K¥n>ÜÂ;>š©>¾c~?øW?”Kq?Òñ?««?‹û(?/›î?.<Ð@"Ñ0@E?_?? 2X>Û>rV¤>Ä=ù>µü1>€V1>„`.>ŸÎw>hÊ;>B]??Ф?ˆØö?„ìÖ?2>~=§ð=‹´=ÇÒò?€né?–æ?w§-?XÅ?ʈ+?á)??lêC?S ?G/º?6%=tŠZ=&a”;ÒŒ>î!>ü†?éý¾?îz•?b?R°>ŸÏ>‹Lœ>y÷.>]«7?{b>õ‘;Û¯[?ðì?óÕQ>ü>ýü ?paZ?blï?{$…?zÿë?8ž8?*„?´fÑ?ź´?›ç'?Ÿ]q?cR?S|>ÿ?=ïJxÄ™>´í¢>#ØŸ>B™?DdF?=uQ?‚(?‰}¸?äÖ?çö >þ¦¸>ûñ=•NN=9ÒÔ?p½?zi—?p +Â?bø–?hsÒ?aêö?PX?$Si?O?Jú@­?öá?DN¨?K¥?{Òl?{)B?^Gr?b{¶>ÚG>ôYí?ÁA?¸Üˆ>üAÇ? +í?Ö×ï?þ(>ü€&>òµâ>0,>]d]>üÁ–>üψ>üã·>üðU>ýÓ>óˆÀ>QJ> ¢‘? &?ž?K‚?O¬?}ŽÏ?m_?gá?I:]?°×è?¤îè?}ûó?Œc?¾™•?¿Ó(?¾g%?­­_?›Í?^Œ ?WŽ±?p}c?ŒÑª?£â?á$ž?Ç{5?€ë$?R ø? a?bBr?£"‘?µS7?Ñ&g?‡Ñ¨?xJ?SÕ‘?‰v?Ý?å/?DHÏ?y>ïwM>´Å{?VÞE?™R7?iÊ=?*áˆ?kŽj?‚ÓW?}Úh?rÁV?‚½ +?‰È+?3™Š?ÖÃ>g >'Ï£?fb?€¦õ?»hÆ?Á³?Cü¹?5s‹?hc^?L?Œþá?‘lK?Rý5?R o?ç>ÚÞ9<‰Çw>oB?& ?X“,?Úxî?¦ç ? —°?\3?V§?]†?e>úŠZ?T?nÄ•?§·c?p~ö?/??}Ys?‘ü?#{c>Ûø^?“‰å?ºo?À“÷?Ä ,?ïyá?ì »?Bq>?/ 4@ ˜@£$?¯n÷?¦ßt?ôü?«?G'¢?AO?.•@?Q5U?½VÎ?°—Ä?‚7ß?˜:ƒ?µ¤?ž™Ø?‰ÁY?þ,»@@n‰?Ó´é?%I?Ê?pN?§Ý>?Ýèñ?‚Ò‹?LE¶?Žâ•?šR´?ÊÔ?ÙÜ?‰\n?‚‡Ù?5ó? À?0±ö?;$?ˆQÒ?p:É?4·v?}l—?÷ ?®'7=è¥?†?Áñ½?…\D?ßn>‘R=Ët?%N?‰Ü?8x?óE?(â^?;vR?F¶ó?C:?²®?¸ûC?Ѫ?($Öâ>µ?¦?1?†hà?ÀEÐ?¬h/?§…@®ñ@+]>?úϯ?ã$U?`l?5ÛG?‚õJ?}S¯?nw+?t€M@I—?íšÂ?#G>ÿ-D=“–Û>:²?ƒQ4?`þì?'(™?& ß? õ?£G=?öéq?ŸaÚ?4=³?ÄY¯?ûöÞ?Æ +¹?«Å©?bi~?71$>±~½>ŸÕœ?@‰>úØì?”øÏ?œ¹@âÕ@ «û=ŽÜç>7 ?ƒVÍ?”èQ?ÄÜ?Ù©É?ý`n?Ú3¬?¨ØÒ?JÝå>©RÜ?<âî?ƒPª?ëy>¼Oë?yÐA?ŸŠ?Ý®?ƒÂ?|Üí?s?Tûð?WË‹?/O?*~Ä?eºì?‡0¦@n˜@Ÿu?‘§?™ÈÜ?ÂW•?›ÄÒ?8Þ?6{?5ú>öËÃ>Ûá¾?aÛF?¦\S?¶=l?Ä¿??Œí?d€K@î@<ç?¼ Ì?ƒl?~??y¿ ?ƒ?ÔUò?É“p?e€J?k[?amä?.eþ>cçŠ?€*J?^÷º?ó ?U˜+?¹{Š?X?qÿÓ?´æ˜?÷n0?ž˜?(y¥?C÷d?hC"?:ì?‚Ôe>éfó>€(¸?%fO?<®ç?e!?dö&? ¼?¸,?ŠR©?•Ða?ê#þ?öÙW@6d@&Ÿ]?(¤?#`1?ù(?c]›??%»d?vŽ?xÖ?‚~!?œû?ðˆ?Õ¯?ßáC?âgè?ì>?¨ÙØ?va’?1bm?Qv>ô÷#>ÜÆó?‘?d?°äà?­ÚD?°> @Ñø@%£i?Õ9Œ?Ã1å>×"=>}™?±ÿä?º.?C?‰ò?üö?‰†Ö?ÂêJ?È{Ð?ß±ð?Ç?P?Ú4?l!?*¡9?|! +?Û9s?ÙoR?×õ£?ë4Ë@**?¿¶2?9(C?æsÃ@B_w@ V¸?®Ù\?y }? æ?I”?lJ?bê?G¡¿?vl×?‡!­?Ü~’@ž–?gÝŒ? +­?~À?$x[@-ÚM@H›?ŒÆ?E>?+ÅX?+*Õ?zîÎ?€òÙ@E2@èJ?F65?G˜F@/‚Æ@,'Ø?ËÝÐ?Áë*?—ò?šœU?‘ˆ“?¢ä@F¨@XH?šð™?‘æ?€oƒ?Œõ?¿ µ?ν]?ø¢ø?ò‡:?ìoQ?ÚUÇ?µ–'?ž¼?XM?lG?€ ?qÆr?Z»>?®.@‹N?ø²?£¸â?Áj¤?ú,Í?³ìþ?\?–?éù¸?ëã®?íÑ?÷ @Áì?» º??~W?ÄS@ +µ0@>/@‚a?Âr?ßÛæ?þ/?äIü?È\o?ú›Ý@Æ~@Ú?ók³?Ý=?¾%8@]@7í@ÿa?ô“ @¤ä@ÿH?ì´=?¯-K?Ç>A?ä@?L@/ò£@ëX?Ùgg@MA@Mtá@6ØÔ@K.@%¤¹@9rþ@"†Z?ùÅ[?ÆæN?{wû?ï@@S!Q@%Ž?¯§÷@õ@SD@7µ¿?ü*@?@#Šð@‹V?z]K?œŽÿ?ý¨&@ +®@s?êÌÿ?‚?žM@Go@ùØ?ɹI?½3?RÊö?d·}@VX@¥÷?Æ\»?½(??®›?¶?´'?ÁD-?ÄÓ?èò?êl@0uG@9Á’@@Õé@ÍÞ@ Æ›?ç4?Öº?¯ß?¡­ó?J>C’/?–‹Ì?ö}?·(?v2à?ʯ‘@ ò?ÃbF?³\?9‰ ?uŽÎ?¡{?ö2Ü?ÖˆŸ?y¥¹?5Ô?†×,?œØÙ@Ñ@ý@/ÔÇ@-ÃK?vÈ?Y`³?ý¾‚@ +l?ä¥v?Ñ2j?¼È;?¶pô?ÜS ?óž?ôá?ûé¦?Þ ê?µï?º ?¿Ë?…âN='¬Ð>m é?tfß?bG >êrI>Úëó>9³>yŠd?‡§?&z?ÌgT?ÑUx?}©?Iå?•õz?©h?Ôd®?ô¼ñ?âZn?Ì£Í?Éo7?ÌŸ?»>¸?Œ2Í?ž5ÿ@ ÅÊ?þáj?ƒ~?e‘?9åá?%Øn?z/ñ?|R‹?ÏZ?ò\ö?‰Á?£ê?H?¦?mè£?6…Û>·6ì?L¤1?ùÙ'?ä8?¸* +?À ´?í C?ìò?Nì ?6ªy?tŠ?–‡Í?—Èz?ž”êUô?æ‹»?ÞG½?h¤!?hŽ?Ôã?×!?Á›¸?³óu?ÎÝ/?Üë?°?òh?‡jÎ?˜WV?‘ä?’¼v?”õ]?ÛÂ?äÜè?ùø@ö–?“µ?U??5cÅ?Z3?±P@D¹€@A¬&@$¼@?ÜwÃ?Õ?ä­„?Þ6v?ÒjP?Æž?ÍZ†?ÛÿL?ǃé?©yÈ?·gõ?ò3%?æ,Ò?‘#„?‚o÷?)¡? §?¨ß3?î ÖyÒ?%-ˆ?«ñV?¥Ë\>÷<å?… ?ÈÑÿ?Ù"?¹ox?µõ8?³èƒ?£X}?žÓñ?¨ ö?Ÿ ^??X£?N‚ +?»o?ÁP@5@"Z¸@ ?Єþ?œHL?[ˆõ?cÈ1?fñ½?b? Ý?uÀ?Žn?Ž¦à?žp1?­d?6xŒ>Gc€>`:¸>VyD?ž?Ýr?ã¡?’)Â?Œ»Ì?”@z?›“ê?o~?vØ>âRv<ªÔð>A L>äQ6?ì?dWå?dJŠ>Ù¿¦>û/µ?‘’·?§oÞ?†c0?duA?-?¶>ä}Î?e'ò?õøï?éx5?d›J?dš¸?¬†?«‚‹>”ÇÚ=ýÑo?%ÃŽ?dÌ‘?mò>ŸáO?$â?«µ–? é$?hP?x l?Á–?¾Œd?ÄÍ?ÌD ?Øý?ßá?Éç?­›½?Ú)d@ ^\?ظS>宺? ~º?¯–Ÿ?Æ-1?Ðô/?Ý\5?…NO?T\?º\=?êL×?ôHq?þSè?Òì?€Ýx?m£Y?f”?€ÝÁ?àE:?ÜNú?Çâù?ÎΉ?Aa?®?,jò?* Ë?i +>ç€Á>ÆZ:>³f>ÏE2>çÙŸ>戠>çÒA>Ì…=¶Â;>NŽR?‡SG?xÖC>¦úF>ˆŽÉ>× C>èÜÚ=÷‘>Z©þ>ºC¹>Xµ=ˆ>QˆÒ>í/>³4?>Y,>,¬<Ñÿ">@[€>d/“>UÄ>4=6?Æì?0"T>ч„>Ц¼>áC>êýø>ê3Ñ>ëwP>ÍÕ>¯Ëà>c~>º£”?„}í?ÙâY?ñœ,?é«Ã?Ýð?C¼½@"=ÿ?ç£h?¢?.Ö‰?9Í >°Ãp>‹B?°ƒ>åàÒ>¶í>­$ø>Ãîe?“b?¿ý¡?¸þS?¾qÍ?9ë>å¼à??eó?GB/?D;è?T«Ô?c{Î?r<·?›‹I?£?hï?N5#?˜l?¤õÈ=²Ÿ?k„?yc?s£ÿ?l†Û>½õ†>ó{C?$kë?+IÉ?HwC??R>„Q¶>š}ª?¦Û?¦‡‘=úèû>ª£?¼ž6?¸®ï>ôôU>ó‡e=¶t=ñAE>0JX>gÚS>¡?>¯ß>ûØ? +œ?{]?{ +?‹ð[?ß‚? u?=¨Ì=jôÿ=mþ<È’ï? f/?%¤?l\?»o=ó->Šð<Á8{?zÿ?{i?k«Õ?]@þ?{Œ?‡A6?6Ó;?'ùˆ>Ü;¼>å! +<)ñX˜?æ*?Ûöá>û}?Eî?ÌW?Åo‡?óqF@ùÈ>ûÁ•?=?Sçb?YéÏ?4T8?!r}=f‘Ø>O÷@±/@#?´ªC?¨ø¦?=é7?KsÕ>üŠ¨>ö™¬>Ÿ®>©8?A¹å?;€?5Kø?/n?(æº?)bÂ?_D?Fm9>‹çf?ó(,?ÓZÄ=–¤=™ß=‰HÕ>»9?¾l·?ÄD2?ÔHW?ÊÀ¯?¾£?ÆmN?ßØí?Þ-V?Üy«?È‚?mc°?ˆ:–?¿ ?€vÃ=Iø?Nt?¿Ñ|?¤¡ +?vD?OHc?*“?!?’?M»^?x/?h1?qæ­?[«?DÞ©>êƒ>=Ó>%„Q> þ=3¹ø?”§?èu†?ø¥?ÿ¼J?¡SÁ?€cý?)c?SI?4Å?ŠA?,Ýñ?(úí?v ”?€¬T?b;?¢b>? +g?&…h@ÿœ@ƒ,˜>M3=ª÷ç>–Ò? ?Lì“@˜8?½=/=+`ˆ> ¡?CfŠ?Y%?a8­?¡þº?ê ?šß?jC>„+§>ž×_?ÝZ>‡•é?ˆ`Û?Ðãj?<< >Ó?>Þk?Ãr?iÎr?ƒ ˜?½Óæ?ÉŒè?²Ø?ª\¡?{ ?ˆ¼å?–‚V?ªJž@"›Ç@ ¥Ö?A¼?TÅ‹?ŠêÙ?¹â?/¤ ?H"?‚=?Ü< @7ƒE@oŸ?¶s ?¿,Y?ÃM?rD?jã>_(A=Šª +>\@ý>¨3¼>õ&œ?ˆ´?n8?‚““?‚—?‚›õ?¡ç?ž¾R?©Ã? ®¤?‚´'?”ˆa@°¡?ô¡Ô?¡JN? ?‰0]?³@V@ÕÒ@OI@Dþ?À™þ?uš?'–V>Ï·>íüÑ?ó“??rê?V|?û7@ úP?Òëœ?Á“Ù?ʼ?ÑËT>ÁG]>ÉÖ?פ?È¿y?8³?˜Í@+½¢@->g@Æ@ &?„16?^h¿?qL>³F>õ©¶?f&¨?@i?-ˆ?Ì?‹-@NÅ@c?Æ¥¶?®¥?c€\?U€ø?ªÂÿ?¸Î¼?ÓJÒ?Ú¶ü?â" ?æMÝ?ÓtŽ?̨¶?Äþ?Äé¸?Ã+]?¨v?y6ž?“<Å?­ËÀ?¤¿u?¤S/?Én?Üâ@OÃ@w&?Ø4?ÁrÓ?oZ¾?W?7>úTÉ>Çñß?Ñæ?ØYC?³Bé?«s>Ïùv>¿ÀF?Ï ?6;n?”£¶?iu,? Û??‘ +?Žœ?9Å>r?z] ?Ës^?‚Ž-?*f >ìˆ>¥¼Ü?…/š?¨’?ÙP?å?¯ÓQ?©—U?pš1?^+K?«Š¥?¡{?Iº?ÍL?p^(?”^Æ@ u?ãE?ˆËt?®¡ü@ˆ@ ü-@QŒ +@J¥_@CÂ>?Çz³>¾i¸>ÙÔ5>õ3á?v;™?’ÄÂ?æ9~@'x?‚ÅE?GIÛ?’g0?’q€?ƒlt?ƒ'@7Í@Ï?"hð?Mk@ |~?ðÒ0=Õ¯½>ApÆ?je?}O.@‡w?ý©î?ÿÖƒ?á ?¹Ûó?Ī%?Ó`6?}2?^ðF??vø?&Va?d¯ˆ?‚Ùÿ?_á?D~i?uð;?‚Ì°?èY?ô +v?‡?¼Ä?.Ò?*?³Í?”£‰?ÕGù?Ï?Ãô‡?¨ÑÜ?½¢?Gn?¼Eê?ÌÈÚ?ôÖÈ?³?c"?,z3?Etc?Ö¬?Á’g?Ñï?ÜóÁ?—çõ?I…?E7é?@éˆ?ŸâÅ?¸NI?Ý´&?íʲ?¹8&?§)þ?¢ä?žŸ9?Éö-?Í2@Ak@ÜP=‹já=½‰}?¢?¹B?‚ ?uŒ4?#¶›?óQ>Ê'>þVM?#…Þ?6~$?Y¤?sR´?šö]? °¢?¥Ec?½žÖ?áâñ?µoL?¥ý?è²@+dO?ñÜß?”h,?¥VÈ?­œ:?Qž?r·@ Ü¡@B(@ ë?ûÅ?¤*?ƒºC@ ì@çè?÷Ó*?æ @9'÷@HuÃ?ì}ð?ÍUî>’æ'>-{A@èì@!N+?ùõ×?ý{?‚vw?‚Ò{@$¸p@)Þ/@QÕÈ@Cs¢?¦.ò?¤_Û?á“E?â’@”Ä@r@Uh@ýÚ?Œñ¾?qË¥?d%?BQk?ÃÉM?änp@¬|?ö‘˜?-yÊ?€—©?ÒJ„?Ñè¹?Ùyí?Î ?ºƒ@,§@Dü@"ó«?ß ‰?Ö)Y?Ìæ9?žFÒ?͘?]UA?ªÑÕ?´»3?¿X}?¦›?~k?SL?¢!â?Ìq÷@°o@œ%@´Ú@™¿?ûÇ}?¦ë–?&Y¥?_,?‰…]?}ôß?riÞ?ûÒ@9Du@ž?•"?¦l?ò‡g?Ý›?Àì–?®5~? ‘?™™„?Šð­?F¶û>ü¼¦?‹AW?Ôû¼@òù@$sU@ ?éM?à³ã?Í› ?ÆF?Àž?½%?¾f¢?Õio?ðb?æ4œ?âa +?Ä\~?Šô£?Æo@ha?ùÒU?“q€?¼ªÈ@˜¸?Ö 6?7&ç?pF?¸uà?ØoÓ@!Ž@ .@¹M@I?»:?Àƒ8?Ý‚ò?ï‚[@ ÉS@ª·?ˆ¼ö?›«m@US“@V%Û@ñŽ@2s@2þÌ@/þÂ@-@)ü}?Ï÷x?È”ª@D­»@Oy¼?ÿ7?æ›?êRÜ?î'Å?à†e?ØÞ?”9?iÔ^>ùzÒ>˜|?iÏm?¢¥?¨s?ªlü@ !e@Eˆ}@Ëÿ?¸_í? P?u™.?¶Ì×@„@²?u*@?u Ô?t÷5?…é½?ÍzA?Ð\?¸î%?±Tð@dù@Gõ?”&?…„G@ È@W?çÙÝ?Û‹m?ècG?ç?ß.,?ÞÂ?›=¯?R;ƒ?¤ž¸?ÚëÕ?Ù= ?áÁd?«ÿu>àÛs?0Ð?µè‘?¡ìS>ñÀ}?\#? é‰?šÕ(?rÌ?q,?’–j?™ó9?âË”?î­Ë@/@ 1?ßc´?¯×?Å´¾?ÚW›?Ü\¼?ج¬?ßì{?ò;0@ @QB1@M²â?¨qj?ªhO@¶Q@ßt@(@0Æ ?Þu}?µ*ç?NVÊ>î.>?î?Øе?•jO>í¿?´È?a„?‚û!?›¸?›UN?ÌÛÔ?ÎÕâ?Èí ?¼ù7?ÃÚª?Шm?•ÑH?lX{?lBB?l'?l ð?kïÎ?„ø¤?«áN?œ.>ë†H>õ±Ä?®?«ß*?ÿ2@O”?X™¿>êÓ?<ð?jŸf?Xr’??H–?¤m\@T¾@ 6@"BU@#)¶?—c?™|)?s1S?i—-?ª7?Ç2?`Š·?:*ß?à>é™?×Ò?iÀW?ä»@'õ]@#x\?ë…?èk#?žp±?Û ?…b™?…W£?‹s9?‹B®?•Óö?«t›?¦<†?g™?hBÐ?ÏS?™6g?›‘ä?Ÿ>g?©Nf?­O2?‡ù ?/+?¹>êª÷?–?²ÏÜ?·Ko?‚¯Ì?‡~?`À¬?g¾i?²7Í?Ó1?µtÊ?™yƒ?§?¬‚®?¸áÞ@*@äY?üp?ý‘ ?³ë?–’‰?Ñß@Hâ?˜yÜ<‹þ#>n7?gžU?|m¯?Òñç?Ë…??I?C|¾?…?™Fä?†…9?31?¡x\?Èœ×?¡ 8>=T¥>.0??z?D¡1?-€D?ãÁ@ Â@M?ã)ï<~üÉ?ª.?Þ—œ?ÌV?TÁ?N×a?{ý?‚Cþ?m½?db\?+J¥>óa>ᨓ>äY?5Ñü?À¦?µ#Ÿ?¹¿•?ÁôŠ?)>äOÍ?ú¯@)þL?Ÿý?€Â?ÉýJ?ª¿?÷&?¥Æ?¹N¢?«'ù?r%ñ?dmZ?¶Æl?Íw?{‰¬>ä€2?!àD?{?wÀ?z(©?o‚ÿ?ãó?ãFÉ>y >¸#,? š?+qá?>0?@{?X*£?Mog>åé>õXÌ?ªYÅ?³§›?^GG?P«†?s¾?£îµ@ˆ@GüÀ@Iþ?¸é]?³ ?’Ð'?‘û??¬Ty?¢«Ž?&ˆe?,Ú?ŠƒÆ?–ð?|yµ?fJô?€h³?„áË?Àýo@ ù ?Ûj1>ïzF?ø?…dò?‹ÜS?ƒVà?†Òf?Œ05?|úó?g +?gk?6ŒV?ú>ÀM>)QÃ>…Ae>ç÷Ì> ä:<Öð>>‹x?Fß ?Eí!?®dÖ?®| >V S>V{>Úd«>é¢=ÚaÊ>°²>lÐ>N*>ä!•>ytÓ<âø=;ˆ<ãTT>‹âƒ>—3ùâI=kR’>CŠ>‹÷Š?›Ïô@ +~Â?›Bw?ä¯?Ê?x?­«8?k¥?EÓ+?(QÉ?(bî?nÒ>»þð>ŒRó?†Þ?Uðn>Áš=Û¨…?{{K?³Üô>ºË°þNÿ?ñ£?T>þp¸?@²?Aʉ? C”?6¿?¡{?«§Æ?'“s?ãx=žZƒ<ó§Z;žÆ=È=·õ_>#Ø?HÁ?:WÐ?Sð?Mž‹?|‰?s{ë=#ªt?{Ã?{C…?Sç§?H­?¼£w?²^7Éè<]ÍÀ<·ß>® N>›_—>Qvâ>ž’}?¸ï?«>û?vj?Z÷/?\ï>úøZ?ïþ?v5?€Df?¶?©sr>úõ)>øº>¹‰>Æž?žEÍ?¹?9;d??ÇØ?[k?d«¿=’_?Éo2?¿?‘>OAH=ñ)‰>ù±>ò÷@>åíû>ÔÅÈ>¾"$>êËR>†>S¦0?‰ƒ?Š“>zµm>fÄ?b‹ ?Máa>°ç†>à ˜?½?´Ó‚>ü!+?¾?½ §?¼Ã9?ƒ®‚?€Ë>üwŒ?1ï?XEq?@ðj>C°¶>ªfD?žã?Ÿaè?²îK? t²?-$?,¡>Æ/>½i}=ò©‘=†+Ÿ<3\ø>¿†¬?ï?ó?Ì0Þ?VÀÖ?Sz@ÎO@”L?Ôš?³ÀT?)U?pŠÃ?¾ÆŠ?‘%i>¡}Ó?7ìÈ?ËD?Âúÿ?¨Âà?…ˆ>þôë?ˆ¦„?þ“.?¯€n? ?9/~?gñ/?—½T?¸¼?ŒM@?^„—?1:j>ÿÓÚ>º@§>Ž@S>ÕÁj?°?0MÐ?BÁL?ˆ>¬“’>'üþ=´%?E%Á?5?% Ý? Æ®?\c?iø-?d6w?^yû?|>á?€¡?€©_?€²²?¿c´?»í6?!–¨?¿?ì¨A?éL#?Ÿ¦Ñ?‘•h?'š??>?âD?!ðu?‚¸Ÿ?fäb>èÖ§>ê*?Aº? y‘?$½?^?;?žî?›™×?ˆ.?dR§?4Ùè?¢¢>Ä| ? ýê?íC?®»?èy?æ‘ü?ëË?Xû1?|!?~?@3?É5? ÉZ?‰*¥?Žúâ>pó>1ÿ³?,öN?hÒç@*}>@hÕ?‚[#?yÜ)?o®?RÃ?-=”?E‚?c»Ú?©ãß?ùž?§¾¤? E?‰i¢?Äì?樅?ø4º?r±Ù>Þ¤†=ð×=ݳÈ>" ý@°@½c?±qË?¥ –?£Ü¾?¡˜A>›RÌ>·G€?0pÙ?P›¯?‘\?Q%=¬E>ý^?¾µˆ?ØËf@[?–Ïw>‰è?‰5Ó?óV¥?È£Û?§Š[?ƒ{{?^¸ä?¹Þ?Ôp%@/ @ +?óþ9?ç¤O?‹Ïw?ƒô>DF >…fü@à?ÿñÔ?ÑHé?¨—–=pjN>•~?€º?‚å\?ƒ/Ç? M¬=[¨¨?‰J@Dá?¡+ä?%Ã?Þ"?>Ã?3§?ž4j?ŠZ×?ƒGK?€è?v8l?¥~Á? »L>EÒµ>%‚[?QØ?7…>Ùt?O¦@¯Ô@_?ÁÞv?Äú?Å +°?ªèó?ƒ\?¢,µ?Å|?¼âÛ?³Õ1?kt±?0°ê?|8?’~á?ˆ¾?ƒb±>ć>hÆê?pÆë?ƒbË?­JD?¸è?¥Ž?ª/Ä?ú|t?ç{?ƒcø?ÎŒX@]£´@ïÃ<&y€>ÔÁÚ?ƒ`¨?¯rô?ÛŸ(?·o?¢cŸ?T +£?\è?vWB?“3N?¶à¡?ű?ÞÕP?çMô?à ’?¸¿Ÿ?•†_?šPS?òî?ìZŒ?{èò?^K?,Ã?C1 ?¹P +?âŒ@!´º@^û?ˆÉ*?­ËU?âR™?µ ?‰I ?BE>èƒ?2S?„øY?œÕ?З6?âò?tu½?@ä?¦Í²?·K'?0ØE?0ÑÙ?QT?J#M?h ?]_J?n?Ò?yÿH?€>?ƒ +?™—?ÆÊ?± ¥?s-?˜»?Ž$à?4î^>»e#?{“*?°U?å}4?ýÔÍ?Ûô9?Ëýp?ªØ>?¤?‰ÿ?‚Ò8@mn@ #C?#?/@º•@/Ë?Ð{±?݈©@'a7@†U?¼š¸?£v|?Ì#?Šœï@Ùå?ÿàÔ?”‰? [b?©¹ê?¥cG?¡î?½Òå?Ù¦„?I;?j%Y?"—£>ñ¦p?˜Z?¿Â ?Û©À?ê7Þ?§g½?—?Ðâ°?àµ|@< @5Ò?ù¶º?úó?…¯_?ÿÔ?~!¤?Ž…º@!ï"@ »È=š?ª? +,I@,gx@ ?Nù°?g³? Š?†?- $?ƒ Ò?ÐÖ?å @E6@ ë@Q?Ç’é?N&5?’ÚÒ?¿òË?Ú:6?ææM?ö«ì@¦ž?ŒáØ?x:@ +á@?3ç?¡0B?C¢?ÒDl?ÿ²?¤ì?“­?ï¨@5 ?à?‡%ê?Ë«?Ó×?D’?(÷h@ m@(ƒ@“§@ö@0±/@(÷ó@Öp@ +²k@~@u Á@‡Ö@ÏW@øÌ@dv?Þ8Ý?Ò½^?ˆ&?­Ÿ@Íô@Á!?ÿôO?˧ ?íb?aU$?Ð? ?¦vé?8C?'ì?_î?kºe?w²é?¯ÐJ@@µ˜@Ê*@ºÄ?¿Ì?£zí?oåD?|À?ê?ŠÜ?MO?œ°S?¿_,@çC@37N@<ª@C,¾@-ó@@ #?þD­?ßÕõ?Â8?öH¬@‰W?æ‰_?³p´?¦C?_Ä?ÓhY@lu?ÃßÂ?,º&?rx·?™{?Î2Ä?ýEY?êåØ?Ô)Ë?½Êê?³8?í?z#ù?áü?@+©@3x@6ô£?ÿ>?†êY?í®@3[@*Ñ@p?å‡ ?€0P?"+>Gù ?r’Ë?ñ7v?¬n"?ÁZ?Š®?Î:Ö?øæÅ@Ço@#+?»ö¯?’¼‹>úk¯?\þª?ÝD[?ß#â?áÔ@XÎ@0×¹@0?ªv?œ£É?D†Š?Œ0£@(U@$¶s?îM`?ì[Ù?º¥?¿4×?úbq?ÿôð@:Yz@:>=?×׈?ÜœI?Ë,?‹c-?uÀ_?‡+p?‘ݤ?’ü!?ïÐk?þôw@ÆÄ@ +ó6?æ›ß?ÓþR?'×>6ï÷?£¯n?ö€@ðX@!jä@?à_?Ó<1?¿|?ž8Ð?iÐ?±?¸“¥?Êñš?íU7?ÏË«?tþÍ?xD3?†1+?ŽbÔ?Ç'€?É Ú?Êð(?Ìϳ?ÜOµ?Úií?Í}÷?Òzu?Š ÿ?sŽ?Üw“@©X@ û@ ¾8 ‡>q­¸?Ù÷?ÕÜ„?úx?ø.”@*‡@{0?îú9?ß?¸•??—(¶?jmW?;Š9?ƒ•ƒ?³ë ?¦ã?‰ò?´˜?Kêq?JoÃ?‹|ê?ˆ +¦?ô·@?òª›>x.;¨Ê7?ºÒ‡?ë !@ÕÕ@éÀ?òµ§?¾º?™›Ô?NV²?Y>S?mE?{7?²ˆ?¯"[?’­&?”¯ÿ@-fÃ@1›‘?YÌ]>ìš ?/„ƒ?Ksû?pCÂ?‚Y?f`?KÛ?aÕÆ?zñÀ?\qî>둲>ìœ?ï ? _ã?µB‡?Ä+ƒ?~º?Nu¾?¤ ¯?Ÿ‰?œ[4?jx‰?É?ÆGÉ?Ò¯?ê?ãšœ?iåä?iÈå?§Ir?¥“ø? ¿¹?£4=?ñåÊ@Å?¹Zì>é/?]¡??è:l?ååË?ñÉÀ?ö?¸C?¹ˆé?€÷?hHZ?â®>è!ö?T5þ?•Y¤?¨ë0?Êf?´@”?g u?lf?Ó†?Õÿ?Ž?€w ?¦ds?µZ@à@Aÿ@íi?¬Õã?”áj?”©?ÏQ?£î?¡q>ŒÔ>v?wh?¬ªl?cüg>æ(?SCI?ʬw?¿–ƒ?~Èï?„#¼?ˆñ ?¹¬?Û€?õMÝ?…-?>û¹P>ñåö>èOa?s ©@ >˜?ú? mÕ?/?â?KM‡?FòË?·á?Ðôk?qä|>äêç?ŸY!@™Ð?ÿ°5>äÌ8>äÀô>ä»p>ä²?‘Q´?¢<=>ôS=‚S¨?3¾×?«8?¨ë?°¨?°_?¡vÚ?žÐ?Ìq?Ó1?¤ ?¶'÷?o¼1?+F?AyX?O&o?‚3?ëŽ?ìPÄ>äSH>äYO>ý">ôê…?F¹ ?e‹?c?OýÛ?ôÈ?µò=?• >]±>Cò.?´¸?¼›?–Ôñ?ŒÓ%?×_@«3?”Ex>¨A÷?\O?´ž?§•H?èÑ?ßY<ªj=ÝÔt>ºŸ•>¿>?g°T?ŒÎ?ø—?–>F?{Jñ?-ìÂ?n¥>åU>å&/>å,„>å8¼?/ž+?#mÜ>èù›>Þè? ÷©?ìJÍ?¼?vÙÖ?™Ç1?ÖÄ’?ÊmÑ?Þ +?£éú?.†?'û? W#?JÆ?,+?š‰¼?Ï,¢?ón?Ï!?¬­R?n² =¸š=›A">6ÔÙ>m£Ã>’[ð>®y?B¾“?e«?BvÝ?;7?BY£?IzÎ?]¹?gêk?4¥>èâ>æl>Ù?Z?».?h}O?upÖ?®€¼?­ï¿>ƒH‚>f ¥?Ó¤?39>ä >¥[A?)%u?];¨>µ#ð9¹;Í€=Ñ>’oã>Fìñ>ƒ¬Þ>—Rv=—û¾>Kˆ²>»T>; +?Œ»£@:Éi@?q«?Bé&?*W?GÞŸ?€åš>ÍRH>§'/?jZ>Ôg>Ïà>Þ$‚>í==õUi?ý?£ør?qjk?]|í?¿’?Ž™‡??ª?>!L>†X”>DSn??;?ç|?Œ#²?ˆhš? [æ?m+>ûœo>îàÐ>àG»>Ó½t?ßR?Ý>¬ >é3ü?ÂÌ$¾—>e“? *g?Ρ?‰vP?”:*?S¶@?Bÿi?ó-?"f? V`?š>úýz>ÿÓ¬?ÕÔ?Úq>úÿ•?Év?Wy–?S~??ˆ&§?‘’ƒ?|L?]Ã,=Έì?Ìi?ÛeZ?ûF?êv>;tÇs=jñ>ûjW? +ßÛ?•9?ˆ8º?- ??g™>û¨j>é;M=ÄWû?¤óe?Ÿæ·>Òaý>Ó?¦ÂX?£ä­? ? :ç?}ñ?jÓD=×}>W?£IP?Ž[>šîš>² +>–ú>ÝZ³?½¬?¶‘Þ?˜á?Ž¯M>‚H=ûTj=ɲÄ>ˆß?‹‰ ?pü^>ÿ”Y?3zõ?à œ?ι5?çü?Ôµ/?²6?»Þ¾?¾–³?·M?úx?8-Å?¢¡h?`U>bE?}™?W?„£? ‡»?‰>™dÎ<íÞ >öM˜?q’[?¬§Ý?å¾Ö?©Nw?p®÷?+C>F:ƒ>¾j9>ÿÞ…>öœ“>Ú¹h>ê??“·?À=]?Û?í Å? p¸?€L.@ò@?¤]G?s\?}ÌÂ?€ƒ[?Ô–{?Üd8>íçö>Áˆ:>د!>ïÓ/?þIÞ?þvš?¯È?‘á¯?…2˜?’÷!?È—6?ÍŠ-?°D‡?¶üÚ?¾¯Ü?’#q<ÝÞP>§µ?sœ¦?I¼Ø?Gf?K·?œ’l?c²M?f?~»C?Â/>?‚~?Uš£?9!®?$Ó·?‡µ?Í7è?†€³?Q…º?&{`?™‹?^¯h?~ S?·ò ?¼q ?ƒ­?rr,?µ ¾?³YN?@;Ä?FBâ?ÀÓ]?½_¬?ß?ÕJ¿?£}²?—Õâ?hÐÆ?GÎ>§}>׫T?!:š?wD?¹gÍ?œú?{Uc?ÆÚ@!u?Ýã4?Èо?[#G?€S>Ýz)>ÅÌ??Å]?Ü´½?»Oº?Å¡Æ??ØW?> A? +?¿?Õé>Í1v>¬fè>#$? ;@-s9@ ±²?ÎL?$Í´?rõ?}gv?ƒ?‚–?r9Ö?Lå3??xœ??ŒV?@ >?2pÓ?+áù?×=‘@G?–|?~œ?Ø$0?â@u?^¢?Uv?/=?;¾?Ó›†?Ù6¡?×Ñ?‘?W?Ññ?wó?`)>?Â3f?ºÎ•?­á¬?Š?hÀµ?6v?Aö?vÖ?—xÊ?Ý?õ)?G’Ý?Ðô?ÿ¸F@ u&?åz³?ì<¦?0j?'}?"Œó? ùM=ªÌ >°,s?¹ˆô?œÝy?âº?3ŽŸ?†²Ã?¸C,?öYÛ?¦‰;?7¼©?˜Ä?Åê?þß?€«A?ħ?Ùåù?”Ñ?ƒiÙ?6?ië?­Î^?²•>¯Ã*>¼Ÿr?Õ¥Ñ?ÖF?­çn?¬tÖ?‘b?q­?h,?#O>þÙM?Œf?ùU«@ jÝ@ƒ0?œâ‡>zæ?'‡™?\ûy?©¯u?Å?‹¸¹?|™?‚í$?‡˜é?ÇP÷?Ò›š?;¯Â?2_?žâ?­Á“@OË?ÿëu??|ŠÖ?"Qµ?}Á?M)?8@x?ƒJ®? pi?Äêã?¹þ©?«ºT?13?AÝè?/÷]?.¬?nDÈ?ƒ6”@A@“Ñ?WÚ?IÞÏ? +EA?*Ó?i*o?WÎB?±Ãu?ªõ?ûU?'V1?Rã?CéŒ?9—õ?B=O?ƒ¬?šeO?ÄŽ›?ÛF›?÷Xe?½d?‚ü\?F@?“ÅÕ?l€E?UŒ?âª×@rÀ?ÕÓ?½Û¨?a?‚Ý2?Så ?O`h?Žs?–± ?1€p?/ËÝ@Äj@Ày@½@™`@1lß@=2?!Â?MÐt?“§?œ:í?*}Ý?”Ô?òŠ½?ó.J?÷z·?Æn½?”rA?¡U%?®ï“? ì?Ž¤s??á?‰§Î?Ü"¥@_&?ÔWÄ?ÃW?§RÑ?—u +?gh>?aä¾?ç°¤?÷cØ?±„Û?±Ñ¾?Y?‘r?ïå>òŒ==X>vcé?n|ü?w¶‘?¨mÍ?Ê–‹@ ¼Ï?Õ³z>×íú>öO?ÞS?¦Sò@(bO@$­…@"9E@â@Ž?Ã?5¼?˜Ôc?ÃøŽ@ÁŸ@!û?£>ß?ˆ·>å8€>ÝPê?äCÖ@à;?á*ð?Â?Â|Ú?ÄcÂ?ï¨Õ?õ*?cv{?@Ö>? ¸é?¤[?꧰?ïo'?†oŸ?8@la@ˆñ@w +@®@#“¸@&àª@Ú€@—¥@A4A@5³a?ÍH?Ï@¬¬?äCi?C¾?W¶§?«À¹?Àº?õ¥?¹«k<Š`>©(©?w½H?|B?ˆÎ“@d@„8@K;?αn?·Ü*?— ƒ?͘ @Ão@Þ@#•@ +è?ß>ý?Ý4!?Û$q?Ìõx?´êm?S?XƒË?Œ¾I?¯ú’?Þv@<@1³ô@_–@ÊÂ?û1þ?í“3?®7{?Œ¹u>–7ð>Íß ?…=¢?ƒ;?5?‡6÷?¼-t?À5±?ø¶?ïÊ?<Í?Qw?†s¾?ˆWî?Ú,?×­Å>ÚÁj>§€O>­£>¿Ö–?ÑL?ñQf@g)@ {7?ê,b?Üçl?{ø…?'ŽB?°Ë¢?äe\@ö@E?Ûk?„v?´¶+?ã e?ŽJœ>½è?nØ@œç@$@æ‚?ð§H? êj?IΓ?ÛŠ*?ë¡@4ÙÄ@*<Ð?Ž¸ö? ?ª ‰?®ç%?ºáÑ?· ¶?²ý?®ï1?ÙûË?ã§ó@€È@2.c@E@½@EÓˆ@v¨{@)ˆ?Œæ¸?€¶*?m/¸?Mž¼>ù}r?~"@0˽@-p@p7@ÃÞ@(p…@&V(@~B@¥)@ßr@¸@”+?þB,@‚ @å ?äR]?º®œ?²iä?³óy?¦‘—?‘wÕ?²Ï9@˽?ÿMò?ÝV8?ä@C@A–@ _?ó¯1?ìø?D­—?·c>ÍzÇ>Ì–?žH²?ái?íÜ?öþN?Ûí?²4à?¡q ?ZÕ?]iI?0îÐ?5?ÅN‡?Ô]?p´t?DÁÿ? / +>ìo,?tÿ@?¦j?8òž=]ׂ?!ýç?æm²?Ų>ëš>ë†Ñ>ëh¸>ëLŸ?ו@?àF@ Ô@''w?Órì?œ ¸?,Û?—óê?¡ÑU?±ÛN?Á—@D?ø5©?Š—¸?ˆZŠ?ùIG@ý’?žÎŒ?~Ã?çD@Ì%?´›°>ði>é©>ùI‡?Äp?óR?…T×?®kï?®\"?xŽ?hP…?Ö?ƒH.?AÔX?€½?¢a@ãY@–Œ?ŠË·?‡à?ˆÜ?h”?ž??¡ûÂ?º‚j?˦ø?¤˜Ñ?tgù?äËë@Gæ@$ŸÄ?[Rç?RÑ‘?É›?&!Ý? |9? ®û?Á{Õ?Ð?å"?0_ ?Vn?’¥Õ?ƒ£¬>åè¨>ó•k?»3&?§Í¨?{ò>å¡x??Û?eƒ)?dw»?e9Ò?–(Í?é‘Ä?Ô‚>å:©>å4#?`*?eˆ?*Rg?- ’?8v»?/£‘?‡¥c?×µh?Ë?lý¿?Sóê>§xZ>±¶ÿ?10š?FFI?d’G?ipt@ƒ8@E½I@ #? §p?V¤ò@5C@ˆn?EPE?=Zi?kÛ„?ƒ·%?z>qÓ?@@?«I…?Š§Ù>Àwê>±û?{ð?…g?y˃?rJþ?eDž?dS«?®¼­?Öw&?œn“?$c°??­Þ?iv ?T`†?!ï”?'¦Ã?‰\ƒ?’¯?‹“P?…*”?a§=ÑžY>(@>hNÈ?¿Æ@ (»@ nÞ?Ú•í?ÎÁ{?kâ>äÑÖ?Y÷Í?ƒêÈ?ù?ï³?ºVj?eÆ?U+E?‰4?T^>§÷Ã>´o³?Ç9œ?ÙqR>É&ô>/#? —6?ù?†ñ?=ñ?•pñ?Ž +?"sã?(ýb?/ŽÌ?6.Ó?'û0? FY?dz’?ÿ¬1@K@@"±¤?è?gÔ€?d•Â?J¼@?=-£?/Žó?€Ö>çï>Õ6‘>àcÍ>矮>º×„>µz9?0]?h?05«>è4¡>šAO=LŽ>‚é?h ”?xÞþ?®œ‰?ªç°>éû>é"?7C>?D* ?¢m?¯.?)êZ>Ü#ã>(½º>ãm¼?E\š>ɯÙ={^>Gký>g>NÀ²> WM©¢>C1=Q¢?V’!@Qó?ÑqÉ?j?Áè>2ÔE?+]-?€à|?®Q>SÆc?¡˜?%Ȳ>´í=¯ƒ¼=dýÑ”?”ä?žÀ]?¾ +á?½Ó?}%¤?}p?zo +?n W>ü±?›?]* +?Ss{? ôñ?UÁ?˜÷X?›'*>Ï7š>ÏÔŸ?{ϧ?f•b=»p¦> í?{’c?„¿ge>Īó?#¢¸?ë?7+I?)ƒê>6^}?Е¶?IJG?{A?y ?mÂÑ?i!]>ÿWú? ¤r?oÍð?S±.=ÅwÞ>/ã?#¡[?&§>ûÙ?v«?%­?og?ˆ²>ÞcŸ< h±>(ß(>Œq6?óY?î;`?v +"?_Šž>ûuÊ?èv?7B»?Aâ?'Œ|?) >û´ì>ãIÆ=Ÿ™?NsÑ?aù?¬®¤?£°`>ür? L†?|9%?…›ñ?»©É?¨ÃÆ>ܽ?'Ç´@™º?þf(?*o¡?0¾.?‡ä‡?€¹?’?s‘%>¾ë’>Åf?!äû?!?,pà?e=\?ø7!?ßlå?|é ?_‹Ë?œ¦?‰ôæ@£?åºä>‘Ñr>ó!N?`‚$?qŽ*?~P‘?WÙa?EÀ?ŠY>§ò¡?¹`?ŽRî?†ï?~å|?z©`?y5²?Fa7>÷FP>”OÛ=ÿ&t?\¿ý?Ír?n\?WÇù? èƒ>˜?p?8.L?€JÆ?¶Œ?šL@?‹ï×?z[,?§Í1?ÀD@?“"å?€?ê?„KÍ?ƒ.?²E?ÄŽ?½ü±?¸ÝN?¶S?³)ð?£Z?§{â>Ðu>œbÖ?TŸê?Fÿì?¥Ø?¨¦z>ž²þ>«/Ù>˜2J>’1>Õ>²@i>ã› ?¶?±?‘©´?¹ƒi?¢ÏÙ?;?£¤?Øb5?ñsÎ@ û?îX?¶Èã?ËH?ãú›?Gç±>tŽ >´æÌ?Xô?…D?+z>æ¾?vÌ2?´÷>nÝ÷<Íí>íè'?e_?|h±?íx@ÚQ@ º>›>Æye?‡u?‹<½?ue—?dxH? ‘?©i?D’?OÒq?ª1-?¤Ò#?ŸqF?š…?”¶ù?Užœ? +=>f²ù<À^@?€i$?÷s?ÐÙ?nL¬?Â\?Óà@šy@ ›¬>Ö1Ø>Z¸P? +D«?Ƶ?py&?^Z-?‚¹´?0?Pï¹?iPë?µåÔ?©¡T?o£?ãP=v_ã<‘ÔÛ<$ >Ç?dú?H'†?p?jê$?eÄ+?` ®?[~&?ùŽ?Êa?Èë°?Éa°?â"o?éUÝ>½¤U>»?¬š?±¼?#Ue? Äú>063>ïDD?ÄÉ?ëgÿ@#œ?ýZ;?†Ÿ?£–*?ÄßU?Õ1ê?Þ%Ï?œ’e?a™x?ÄÊ?ïu?õÔÇ?ýê>Ηs?»¸0?晶?vþ?ZÁœ?7x ?J_?’;ú?ƒ¬‘?`œ?yÒ? sn?Véc?Åi>?xûî=—Ð?u>î@g»?½„?k7U?'>à Ñ?Ы'@ Áñ?ÇVÒ?³*å?ff¦?EÐ…?AA³?:Ö¹?ü?@úo?—ñY?:‚>È3>Ùy:?p%?Zò(@o³?Î*?>«?2fª?€Â?…§Þ?’?Y?œå?§Ö'?N£<>Ãi>¦°V>¬€Ü?šÔ?Å&?¬>w?hmø?{²ƒ?œ +Ú?œÊÐ?*æˆ?1>ó?_ê?©ˆ?Vð?a£t?©‹)?ÁÌ&?ùx?À®@?Ô?Ž_ã?þ‹4?ý×?ý÷P?‡™r>ž›Ž? Ó?&Ùn>§® +>2Ö?„Æè?©õK?ʱb?Þʉ?18 ?4F?ŽRò?Œ¸?ë"÷?íµ?a¥±?f$¾?j?š„@S@%Y@?ÌŸ@3ê?ƒ1?'ñ=§Sh?Dûˆ?̃?Ķ?¸ë?¡¥ô?“Ïp?{Ï÷?[kÉ?~—Á?Žxa?6¡>ð™i?¬á?ÀÕ?"®N?Ü^?]Ù¬?[Šê?4Ô??J«N?æ\‹?튜@Ã?å?»”?Š$b@ENÏ@?˜±?\£?¸ÑÎ?‘–,?=ñ1?Úïë@5§r?ÜðE?'Ž\?\ýÛ?‚?Â{±?éØã@ _@Z@úœ@dª?Òܘ?ÇM@ÿ×@"æ:?gæš?#ÉC?‘r ?Ýû?(?ʵ@:ê@8ߘ?þ¤?ô|å?}0ó?{5?ø.ã?ÿÃ`@Ba@5´@ )?Þ?9š?!l?âÕ?‘ž@ ÁI@†¡@o3@@¿w?¿ù?´ @Sm@Bòì@5ï(@*’0?¢ÂU?6>_ì=—ì?Hkî?†+å?­ÊG?À/Æ?Âà?£?”£í?qC?«×™?« ?Dw?>H*?øÇ@!"?5 ?3?@!9½@ X@þZ?ôdX?uþ?-Ôø?æù}?òüé@0@#Ñ*@.‚È@#"5?Õ¸„?ðpÿ@ß*?èçG=ÎS™=“š=¦4;õXê?Z,?ö˜Š?§a©>Á?€÷m@'£%@s?fÿ`?•ÿ?À+d?¡I?{fè?•#@ ¬@ÿÂ?ÿËu?Ø?¯0ý@Uè@Kž@ Û?‹}?ŠÃ?Žl2?ôÓ@*?.@>`’@TÐF@:¢R@ ¨©@ ù‹?þ [?š?E?‘¿ˆ?Ç-G?Ï H?×o)?î?ýý”?Ú-È?¾`r?Õwˆ?ål @þ@î§@€r?ÞP?â߬?ê¶@«²@ +'.?ÌW4?‘¿Ú? ?íNì?ÇuÎ? …y@õ@9€•?ñbû?uâ?žPº?½kx?¡?…@E?Þ¬Y@B"?æŽÌ?‰@?iåê?;lÚ?C7?K?­;ý@õ#?ëå ?×3À?çÁ?úòë?ï>Î?æ$ï@ ˜A@;™°@?yîá?¦]Ü@ VÐ@¶u?¯V/?µEÛ?ÂãG?ÀÚ?¾Ë‹?Îa@2,@º?ø¿Ù?óœ?¬-r?¦bu?x];?xʦ?÷µp?ø [? ê?¹[=?‡v?¹Õ÷?ÖÊb?ÚÆ8?ñît?÷4±@XQ@ŒÄ?°%a?·l?«yÃ?¸í¨?}y^?0Ò8?ªùô?ì²Ë?–{¨?÷˜?ãµè@Së@%ƒT?»^¹?ÒÅ?úÙõ?äë‰?¤Èr?¨?•Zá?´ÒZ@*N¯@#¢?toÿ?tO¢?t29?tÅ?°ø:?¸i?¼M1?À1Ó@ÍÞ@ H?YF>¬_ +?Ž~P?Éæ%?ÖE?ßcÑ@¨ @m?ÓÞ‰?Å?œy@1âË@""?üÙ°?ù0ö?ѸÉ?Üþ @¥´@“]?‰SÞ?Št‡?¡¯?‚êŠ@%t@4yÑ@Á@L@8¼£@X¶j@q ?Ÿ®ð?º-?Y +R?•  @Yâ@„N?oKA?‡q@G…@L‰ó?÷Öý?î¿;?¶Öµ?¨N?&Û>È'w?S¸O›@4„8@/úÈ?1}?hYð?ž‹G?®%=?Ž?m=ü@çÜ?ÿ@Å?˜æ?”p?è´?Gj?vÝ€?{¡v>ÀÞ>¢°?ª˜³@{Í?ñ§?¶Òº?¬g?fÀv?e<¤?Ož?JK…?T?d4-?r[?€D?Â’(?çùy?´Á‰?f©?V†}?(Ü?.Ä«@NâÆ@WQs?†ÚÙ?ó??‚ñ?[Hú?) >èó€>µ]>8ÆZ>±¤ï?OÌž?JÎ@ D@uŠ@tð?îjã?®²À?~4?~Ö?R)õ?k~t?¬VL?¥ˆ=Û2Í=²6>~áy>>¥H? ?ª¦Á?ëUœ@«\?ôäL?›S­?§–J?ñÎþ?ò–Á?duœ?dr?½?ž>HòÌ??¡DB?Ž¾?•Ÿß?¢{‚?¥<ù@·¼@!?Ä\?¨ #?Ž¨ê?ƒÌ3?Mi>ädL?+??Bƒ´?LHý?0ç ?+2Â?Ì¢?Í:*?ÝYO?ÞK]?z‹>ä’&?u²?ßUÇ?º†P>ä´e? xÊ?°¹?³?™u¸?›X?r_?dçÑ?ÕÒ”@+?ʯf?2x?Z:æ?™T·?‰¦>ž0(>q§Ø?[{8?ef.>D %?'©?XH?—§?¾‹s?ƒ)Ú>œá>£“.>PR>²P?% ?~õ?ÇÍß?×=Æ?Š©Æ?fy©?#N¢>í™Ã>çB…>ñ_k?I£¥?£Å¯?–?gÞ?NÝH>ë}Í?Ú‰?«Ø?*)>ã/?Öl?h%>èp.<]ºð>7v#>Ä”?3ªâ?È#t?ª÷§?<?8r>yYœ>‹´™??C™?4L?«®?ž¶‘>ÁÜM<¤ˆ¬?‘w?Y h?$xd? Yø>éÒh>›x>‹_>w4R>· Í?#„>ì¡‚=Ìâ>Ða3>àÙ >뫵>݈ñ=ç¡Ã=‹<€˜ß:ó"?bÊ@¬!?Ü|ï?².?¢‡>‰Â>ûû¼?*eß?2Î=?,Ü??;x>û~¢>Ùä>ém>ø™?l ?„ +Ø?.ÒÇ?.ú?=ð¦?LÔV?“¥.?šL?@íB>°¸á>¨Z?#“?+?¸C?¦ò#?}%O?}¬?|êW?ß?©ûb?—>‡ÚÑ>Óå4?¥C?—w_>ü ”?ŽÊ?JÉï?V¦?{Ôš?iiæ>Ò\>ütØ?nÓ?j/È?†?!Ú?{be?jÛñ>ûOç?’å?¥>ß?”¯·>û1ô>Ùù>p±˜?è x?Ù-&?Jh±?Mé»?I/?0ða?ùŒ‚?âw>?{J?hÏB>Ħ>Õø?R{ ?U<ù?†]?h%»>†˜ó>¶¢(?q·(?oá,>~†Ó>ˆ—z?V”?e€¹?{Zü?_ Ú=#Æê=®;=‘cì>8À>û“¨>ûn>ûªÔ?Á6?ƒ®6?zl†?_~ù?I)Î?T 3?Då??‹µ?J¶Þ?2‹`?+·‘?w€õ?j¬…? Qû?ú£>üy¿>ý%?b?DV½?|¸+?‚¾`?šu›?ŒY1>üú@?*§?«õk?š9?\C­?Š à?Üåã?Ìj?µë|??ÉÁ?@ü_?°)[?§”Ê?¦«š?‰™Ý>°—¬>ÀÚv>þ4z>öò(>üÓ?GÕ??Fa÷?“2¾?¢Ã?¿?¨ùõ?‡J‚?I¢¸>÷Òs>ÿ>ÿ:;>ò+i>Ûh?C9Q?ŽÎ!?^Vø?)Û>ͯÝ>W¾“?U‡µ? áC?’JÓ?²0? â?³•?‚L?—÷U?ˆ‰?€Cý?ªƒ?½ƒ?Å—?ƒrƒ?+ö?#òÜ>¨¼,>°1õ?ƒ?)–O>Vx>R5˜?œ9Ô?>‰>‹ÁÒ>”Ú×>=׸>²nƒ?Úý¤?Îi„?ÝÜ?¼Óë>½¢>2¬?~V§?:Ù =³Ø>’í?Ð?-\Þ?[¯s?º´@ º?À’½?R­0?‡=”? ™À?Rÿ>ÙÁ ?H"ß?œœ?à# @ ðã@#@R·?óë ?ïxþ?”UT?…S?ïhû?ô‘”?½s)?¶èE?Á?0]ç?¸Î†?¥úŽ?S—³?3.„>mó]>ÝÄ?o%Î?†´™?ÃT¿?Òã{?ñv™?ç â?Û™ ?貶?ô ö?¹0?‚gÅ?6û‡>þ¯õ? NP?­?B¯?·ó?¥!?¥¼£?Ñ;W?ÚÑß?8¨9?~?¢¡?¦X @¶ï?ôê©?U•å?bÁ”?Œ³?’ý?‚С?Ö#×@Pcµ@:­?‚âi?LÒ?2ï?<ÄÆ?xÆ}?Ÿo?¸¹@ï @:ö?†Ã>°£a?»ë?Ú´à?Ú“¤?ä0“?¬fË?¨šÅ>eÈž>}žä?áÙ?æ:?¡ÉŠ?•È…?qæk?Œi#?¿£?Â-›?Ć?’÷Á? “Ë?Nñ?Œv¸?•&?Ÿºß?)„h>™ä°?N )?Š]¸?A#)?/YS?€|,?{²Ë?4¶?é?‘”[?—bi>åš>÷x?¨Ç:?šjù?e5?û?u‹Š?©«å@4Ü?·tä>óÆá?G!†?–¸?Ç!†?éÖ ?•Õ?9]œ?¢·?Ìc?L‚?rö?;z‰?C p?~ÀÉ?ƒs‰?ºc!?Åoz?ÙÄ?ÄD¨>p—¯>›ë?A9?‚M‰@´ã?ܼ ?…ë?#ªù=UÍ?´?ƒp÷?ÙìÈ@Æ?x‹‰> ?™A?-úÜ?¦ÌŽ?Å#Ä?Bg?tu?y +µ?Š;?¨Ô?ªà¡>3¢>KX[?&ü.?Tª?ù–ø?Äüî>%'?Z¸?1)a?‚ù +?¹Š±@UY?ê.?Î>?˜9ë?O@T>¿A>Aä?E!?*°}?WFæ?qO?Ž?=@?:î)?=J?±\ý?½x¿?š–O?Œfì?&¦Û?œ£?(?1¤’?³7-?ΙÇ@?k?ÛÛ?ƒHÈ?æq@8^›@(¼>@Hl?¢¿”>›Â1?·å8@ ¢)?•±´?.§ ?¼ÿ?ó¬?ã? :c?®||?É ?!Ks?ßà?sO„?‚ÓV>W)>>w·?g†E?À‘î>?u?ž”û?šž?½µý?´µ>þæ’?8ȱ?ÿœ‰?ò Ï?É¥Ì?ÀÎ?¢?(?¤Ø¿?ŸÚ­?‰T¯?(1¿>ø³ž>:r4?>åà?ÂÇœ?âôí@žÍ?ãa?É_?¤0›?·Ž?͈÷@«@ÒG@)‹>?ÍùT?}í%?!*ž?ƒD?¡( ?Â4s>º¹ ;ø:›?Ÿ…é? å?0%ò?—(?æá?öÁ_?«þû?¢Ù@¬@\?Xuq?`¹ @4â@,ð?šÚÌ?˜¬">òU&?ìû?Œê!?œG?×aá?Ý5ò@è?ãZï?Tžæ?ÁSÇ@~²@SO?†uI?‚ô?}_X?“܆?»Åü?Ï*ä@eŠ?á\?£fÉ?›×J?›±;?s;C?/â?¬M@––?÷']?™0!?¦”e?¿ø½?ÝÚp?ÿÖw?ËËØ?Ž?çŽn@(‹@¶p@ hŒ?ýjµ?ÛÝá@ !â@OâP@#D?ø¹€@f.@:›7?Éõ ?è?ËñN@ÞK?¨î?#iå?°…Ë?ñ-Ï?÷õ¯?þ£?ØÆ€?¾dÛ?ã‘?ý´?ºcÛ?¾@g?åSç?÷é{?Ëy?¹k?ÆT?ɾ?¾Z?¸Í1?¾íç?ÁPÛ?«ÃË?’‘]? ÐS?¸Q=?¸›ÿ?¸)?¥_? á?ƒsx?êÌ@ÌQ@yI@YÓ"?Ûøa?Ì<Ô>±„Ü>͸?t:ö?t?˜G?–Úø?”É?’¸³?¼C“?ɶ>?f>Úâ?=ÀW?yëw?Š.%?“Þ?ÿ\”@5ðL@É?ï&Ö?µ}4?¥è?ˆ¬@ @ ÚÅ?çEè?ã,‡?Ññû?ÕàG>úÎ*>ñg?ÃŒ ?Ë!ƒ?Ûçž?êqò?ñL?ðww@ Ð;@$ºX?è½?pt?¡&¥?à†^?¦â>22">m7?}a.?y)^?têo?p·ƒ?²?µbí?(XA?òã>þ‘[>îWë?œî?ÐÃú?±ã?œ˜¶?–µ†?„X°?Þ?·B¹?ÅÈ@IB@Ž8?Õ:?×8¨?6B/?Y*?ìU.@ 1 ?õ‰ö?ãI?áÚê?â%?è`ž?ëã>?Ûvq?®u? 3Ì?-*3?>3 ? K.?F–?ë,@8n?§ +?/o8?’Ž?¯í_?‰ã^?2N?v3@(E@>â?ê¬!?ñ"€@4ÞÍ@=aS?É S?¦ã¹?Ù_Ñ?í*n?ÉŸB?®³N?ÇîŒ?øV0?ÅgE>¥@q¸@ +Ãw?ÍŒ¶?ÁkÛ?–@ò?Œ™?=üä>ì ??µ+ó@)Üù@ ”©?ˆ7á?‡ðÁ?“Lí?Ž¨{?¶w?¶Y%?®üX?­bu?­YJ?­ON?Ç?ã¿?´‹T?NX?õP? žb?KÅ>ëwz>ælf?]ø]?u†i?ÇO@@ðN@tµ?åôz?¼½?A¡?KL?€8P?{}3?Ãج?Ó¶ó?t½<ωÉ>xf>åoþ?Ž?H1`?hÿE?ÌÁå?ÅÀý?N¬K?lØç?µ†?ÍЃ?ã'î?âœ?Æ8Õ?«­Ò?ÄÍ?á!? ^?>äÆO>ä¼?Æ#e?ײ’?Š*A?dœŒ?¶}?é'?Ñä§?«g?®.?ºa䱶??Þ/…?Û?n?…·µ?û ?±F…?¹ºu?ºŽ?Å•‚?Œv>åq?GÓ:?Óè?ѱØ?«õÅ?¬N?rdï?h»ê?dñ$?[€!?_%2?e¨˜?QÊ°?Nš)?}Ë|?Žè§?óÀ?iñ©?U!?‰Ê$?†‹f?©êÙ?¬Ìm?o±”?ZM?fòÞ?g ÷?cƒa?\Î?^5>Ž.¥>Ѿö??”²?±Å>㤕?•Òñ?ŸâP? M>qO?'a>?i‹Ô?ev?W4`?'F¬>訿?+È?šXå?ˆÕà>4>v˜ü>üÈ>¥®=?‹q‘?”å€? +%x>éæó?•PÜ?®øW>ß.i=âÏÈ=îé=îWô>ž «>êïB>³^N>uîà>½ÕÕ?$3?ø=ÀLý=PU!<4<$=#öX>yJ>eEP<°w\=Ñç¼=¹/P?PÛ?yÀw>…PÅ>]T_>嘯>pnÛ?°×b@92?ÀYž>Ï9Ë?$7?Ìö>ÁH–>|vâ>ïÔ?"Cü>”¬?=ÿx<°Ž£=]I<ìWÆ>ÿ{>þîÒ>þÁj?-à"?7†X>„KR>\P³<“hú?:d:?B ²>EB>™Ý?},?ˆ•²?õ?¤?Þæq?*¸?/‹…>³Rg>êXô?½?ß?­J>ü)^?0 ?,™8?,9Â?[y›?A~»<Ózs=§"p=¢û>ûˆÅ>Þ¡æ>)·d>…‰È>û[î? ‚?_ˆ?PÖú>zâ>jŒ>>6Ñ?˜é?‹Y>. >€ðÍ?{!?hÄ?a?ªØ>@ñ>eª;>û ¨?þX?(³L?+º ?)n÷?4Ô>ßG >ÄÂf>ªL.>šH?{Kr?XRÙ>k?~E?i‹­>ìXŒ>ÀÄ>iÍ?É/?³|W?MT?`3Ø?¼Û}?½]Ï?ÆfË?À"Ô?€K?nQý=ß >¨§5?Ýô€?Îyt>üR\>Ö¤<þ,T>Lä>üŠ†? +ð@?:0=?u·>·_v>í…C?8Þë?1±p>ý É?1Zñ±q? X?yŽŽ?zNj?‡%÷ö?@h?¦º?±0?¿M?¸Â†?²`æ?½o[?Åú%?ZúÎ<žÄÎ>zS®>ÿGæ>ÿVþ>ÿn +?jv? Ê?>ÿ·>Ãr˜>«ø?ý˜?Cö„?_Ò?`ž_?Íj>Ûœ=ÖÀï?@ÄŒ?€K_?&o?“œ@;Fo@Vˆ(?À=ž’y<*· >ï­'?¦g>£!>•¡?=u?<­\>c˜u>hæ¡?âû?S¬ @?¢Ú@'âŽ??3gw?¶^P?Šõo< ­ã?\Ú?ïv8?Ò÷è?­ú?§ƒŠ?¡ìÉ?¶”Í?×É"?¼ºþ?•²Ó? µ>ƒ¬#>å…:?\?€6ê?–X˜?u8D?eÅ?X0þ?]‡>Yp=e?^òÊ?ÞÆ?é€?%ø‹?ÀHp?¾èô>Ë·? K@Eþ@/‘Š?‚Ã?^öÂ>‰®;>é¢2?hì?¯²¿?Úõ_?ØLÖ?Õ¢g?š&°?ñ:?D4Š?uî{?„À[?†Šê?4•D?{?’žo?´9P?¾ÄX?ÃÙL?D2?‚›,?A?ŠÂ>Ú¼(>éŠî?õ;?Â-?°Z?©OM?Å>âòÏ>c>´†š?‚×_?‚ÝX?‚à×?„œ?…?Jc&?ñ?¢Èù?÷2'?׎„?Ä€¢?Ì’?Û¥£?€…š?*—;?µ’5?×-A?µ)?ƒ3?Nop?Pé?4ã+?#9>¸ç@ Ia@m‘?<Ÿ?Cú?}£,?ƒK_?ƒÓä?Q¹Ì?Fj?CÚ?ƒJè?Jâ>o©²?…{¼?¶·@?€A¸?T·º?%9x?×Y?“Õm?ª†w?kâK?osÝ?ˆ]´?‚“Í?²¼?¨ƒ“?J?`o?wÂ>Þè=g]ò>»‡Ý?„ÇÎ?„ø?{ôÝ?J×>%Ÿt?œÞÆ@v•?Ò”õ?± ™?e7ÿ?5O]? j+?­³?‰ +Y?ƒz¼?Rko?RC.?I?Ã=@ Û@¨S?j7Z?Œ”`?ê)?å´?Å9ø?ÚµL@DF?ÎG°?vôó?Bjž?ñj?šþo?à×?”¨÷?>C%?•ÄE?®QÓ?üKœ@ÂÞ?›Ol?ƒrz?œ{ö?˜*?S¦Ì?WÃ?Z»4?R©º?dz +?‚L5?ÅÚ?Ÿ3è>}k?>˜:1? ý¤?êl?Ù„?§æ?#ê>Û‰7>m?5›º?ƒU¥?Œéæ?‹ì?„ ?ƒLÖ?­ ë?²5!?æô?æˆQ?ŠÁ?ƒ@„>¦Bœ>¿µ!?Û½±?ܹQ?ƒ4°?u!L?€#?s?€ÿ?Ï@ ?Ã@ +ʺ?Ä>?ÇX^?Ò©þ@#”%@\E@Óã?›ä9?äaß@ e?¦¹á?Y-Æ?T¾?PLë?×>ùÞõ?sˆ??‚îz?a?è?9ºÍ?'ÔÔ?(–?!;?Õ®?UW>Ês@>ùI?ŽM ?Ë@AýA@.‘Ü?þP,?³F?­ÿ?Žzù?ï?ž@@>>~@õµ?°y^˜?sY?!íu?¤7?К? üq?Ç?÷t?rß?$i?§?(/ž?º@ï?ÿÈè?×gª?Â8?²zÚ?Ô¹ª?ï-@¸4?Í?è"@àt?ú¶?€ª??Úý?»•6?š2N? +¶?+ò^?‚¯ì?›pD?ÆÞ?°£k?Šœ:?‡”°?€I´?:g?›·ô?žhË?¯œ?ýŒ@%Ìß@•œ@´¯@žì@Æq?ÿ¤¡?æˆ?âx?Ö_Ð?ÆÜA?¿–ó?ô\Š@íG@u0?ÿ'~?ߘ?Äãý?¡îG?„hq@ ò(@:³?è?_Ó?æõ@ ¥?æ} ?ÌR»@*@þH@ªt?è^y?«øÂ?‹çÂ?†Î?}•F?} µ?‚&?°íl?Ôˆl@ !í@Eþö?àˆ?FÄ÷?cåz?|Á?È^?ü’l@0/˜@V¤y@#u?÷·e?_8¦=)?ŠÇV?ñãF@,²@\8Ç@@†Â@"ìæ?õ>k?°¤?—½s?yÕ?Ù{Î@"j×@'VÎ@++@¸•?ÜcŠ?ºum?‡V?¢eˆ?ͨo?Ñÿ?Õ\à@¨þ@6«‰@@¼>ùœ˜?¢s?_zË?Í:?ô#p@ðŠ@9S@,U¡?ô3l?ä²!?„àß?‚u­?.2O?5üó?=Èœ?F(\?[?’C”@ãÃ@çJ@@Ña@<Êa?ÍÌ?³(?Mî?+’?_p?{j³?Êý?æÑ8?ѵÒ?Ä·w?âÈŽ?ö=/@'2q@MiŸ@yú?¸„?‚Á¶? \?¯ƒ)@&¯@õå?×?Ï@>Ìá@ID@Z,—@=%?|{?’$?¾Yz?ºA^?¶¹«?¶÷·?ç4?æéÙ?œ¦Z?Ë?q4L?YÄt@¤@*P¢@™@ÍX@ lV@0i?È$·È¶?k°Š?¨>@< @¨Z?<Ÿ±?cC«?â4%?Þ +•>ñL>ñ*‚?Õ¸G?熠?ŒÔs?p»!@&W@H'?Ÿí8>42=?'¼?Št?”'.?¥C?›ì¢?ÿ±?‰„?­yr?¯Ó²?³`—?³|¥?펷?ëŽß?ð*>îY?‰]?›·I?ï}l@ ;?ÖÙ4?ž¨V?¥ï«?²O(?¥Êo?Ï;?¡å?×h?Ù¡i?› ??­¯J?§»2@»=@˜ô?¹U?™gz?‘5j?+§?ªñb?ëà|?¹ùÈ?æÿ?Èç?[w’?Y q?—Ý&?“€&?¤EP?­Ê;?‚©"?UÕ{?‘à ?¯ø}?¯5k?¦3o?Åò¨@°W@ +^ƒ?j *?k6$?bšE?PäÅ?T/?[nr?í¬O@‹,?Ÿ*'>îƒ?²¬Ç@)ºf@܇?’·?†iW?HOð?U¼q?¼·µ?Ã?¡å?”ô¿?’žt?KÁ?ÀâÆ@îW?ïr¬?šÁz? T(?¼9~?Ãä?ÝGc?ßßz?³a|?ª‹ì?¬ÂI?­P(?âP=@ ÂÌ?äx°?S' ?-—@¦‹@³ò?$>æv1??7.?\¶ ?º‘?ás‡@m@(ù›@wÊ>åû±?n?”±Ü?™ƒï?»’>÷ÉÃ?ŒòÀ?«ä ?È“O?Ùíˆ?­ºÎ?edG?[×1?ELæ?Sľ?e? ?h +.?n]Ž?À¢a?ê~í?än?ÕA‹?¬Å@?Eã?I S?1Z ?!ÐÝ>Òƒ3>ÙÝö=ÍõCçþU>îû?ÆÒ§?äc:?¡-°?}e~?\"?:À9?‚ÛT?Ì •?Ä”Ã?±F¸?ˆ?nÆX?d‡R?øJÞ@Üá?®ÍÄ?V/?‡Xœ?ª!$?›‹h?_‹«?hþ>?´%?·-P>–±ä>Œœv?‚´í?¡ÅÃ?†_0?e G?Fnã?L¼?\?»y?¶fs?«þD?¬Í?¬?¬L?ÙŠ?Ü;Â?’Ï­?e¸‹?Åã×@¡Œ?¶på??å??h&¥?• ?¤Ò ?Õ‘/?Ï Z?Õ«€?Ì[¯?'$F>æ¡i?‡–˜?¬P??Åå7?Ø%f?¢w?.#?»s>çIƒ>ö‡É?+ÿl?04ü>6¸>ÿ?ΦÓ?ñ>b?åÒd?ã!ˆ?À¸Æ?­ÿ:?#T=ÜT°>åNK?LfÎ?7=6?¯|?—3>éA>ìÊ?;O?! >鸔>éÚ©>Ñwê>Þ½Ä>éâ,>ûSœ>áî >à +”>¬,>„>ë&Ð>±Œ>I¥t>)¯¥> “Ÿ>AÂs>Çü>¤a½< +µ—=¦‹>Û/¸>³‹^<˜úT>˜þ“>ˆàd?1¬?*—>JË>…Î>×jx>î= ?ÌÎ/?î&>ÎçÖÞR>³}>°Šq>Æ6<=šÕx?V6\?~•=ÕnŠ=Ÿë=è™®>Yæ>0Fb>ý1G>þb˜>þ>®>ùqÍ>7Rt>¡k=øÐ>º?mi?tR?{;è?…ŸÞ?ÂÚ¯?¼v¬?cì?CÌ1>Ìq>¤ºß?˜íõ?“:f?8]ø?=(š?|º?aS™>À=>¹h=ûC>ñûk@Þ§@­>û‹Ó? Ž†?Kè˜?2ÞÌ>û^í?žÐ?‰Ì?m‚n>ñ‡ß>Ã4>:”Û>y?“?? ìÃ?T +?céä?ue?z€š?uÚs?YU¡>Õ™G>¯qZ>ÓÙ>UóC>û/ª?î#?R§?%‚?Eßö?Lƒw?S&Ù?YÇ ?`b?D"Ñ=\{X>…Ø]?»þD?°¯Y?q‡;?y˜#?š"ü?š^œ?ÎÆà?¶ŽS>Ä^>ð‡4?9ÓI?TÐÆ?{ì×?PÉ©=ÛªÞ?—ç>õA%=L~ö=á6P>ú²A?Õê?gä?I µ>ü’þ?ƒ?!é?p&>.mP?@4m?b•?©Ðo?ë&,@W`^@'ä?Òµ“?·zÞ?Ìo>Ú‚” r?}¸§?¡Û?ë(M?åY?ß|?Ǿ#?ªQü?´»¶?Ê@2?ªuÚ?Bä•?r»M?—*?ŒÚ4?‰þT?ƒˆä?g‹0?­÷¶?ó¹é?Ú×?¾¢˜?›d?tÇô?nÚr?hö:?+·T>ÿ˜h?Œ®¶?º>?WŒP>ÿâp>ÿö$?£?D©…?uÀ©?‘äÔ?Ñ>>ÑÇ¡=µµÚ?1m?j’†?­+Z?¿µ>?”K“?šG?§ü?Ÿô´?Ri?>5”?–Âì?“ì’?Ž/•?‹% ?Å7?´ÿ?n¢Ï?WÈF?æ?òT?‘^?Œ»Ñ?*Z?»m? +cÉ?Ny9?À’È?©½&?Œ¨"?sm?.Ãý?Ig>Ì"þ?uüü?ÂJ?»C?º4?ŠÎ ?9]„>Æ K>J¢h?ŠÌx?Âz´?`é7?)µ>N=‹u>ïÙu?-`?ã?¹¡=€}N=]›>fH|>±[¡?¤´O?¥¢?é@é?êsµ?©Ä?‡ñI>|l >„wt>`é"?œÌ?©µ?Ó¹ @O?Â?lÚó?Iõ}?Ÿ¼?´bi@Ø\?‡‘©?~$?g¢?‹,ë?¶ûR?ÃÝ?ÞCÊ?Þ¤>ùzë>¢å´¿—5?4 $?5ús?8lã?oè¢?ƒ +k?Š,>½_âr?WK`@V$/@H-L?ý½^?Èt? +•Â?»˜#@C{N@"‡¤?õY@Vñ@/ÿ?£W?[FØ?¬Ç·?Í5Ý?ÓGÅ?/¢>õŽ•?–0à?›Âx?-΃?×#?Ù{?Ù=›?•Ý?h‹?ƒlz?~ST?g–N?tÜ?€‡Á?‚ÝÈ?ƒu ?¸±k?ú˜ @˜¿@ºØ@–v@z?úóØ?ò3Ñ?ÎLª?º+‚?ס?ã«Ô?i±è?Iü¢?qñÅ?jE?`©Þ?tp•@ô@ +`‹?€j>ýžm>ã.¦?AÅ4?Á I?Ã+?ÅR:@ +ÛÍ@;òR@ É ?²x?ø @A0?¿%É?ƒ{Î?² Õ?Å3Í?y:?Œô‡?Qá$?E1Š?ù@s?otõ?j”?Å*k?¹†?EµÌ?iФ?Ñ{?Ök²?ðßû?ÐË9?ƒeâ?RÎ<&aP?3Ÿ?¹FD?Ήq?ÜÎj?IÛf>pÚ?]2Œ?–ò4@¥z@¢q?­ª|?—Éú?ò=×@!š?©‘[?Ÿ=+?Mñ?=àñ?RÛ?E‘§?ƒ7(?ˆœ*?›^w?’d?ƒ.U?™­)?ÇÜü?“QÑ?]†?F¹?ˆ[?·úÑ?ëfý?›^Ø?;˜n?‹Ã™?¨*”?®”?­Œ½?«S†?©_?2S½?Âà?–:Ä? :Ï?­,¾?¤À?Àä£?Ä£Ü?‚ß’?~&y?:™“?xÂd@)<@£Y?û#ç?ì•u?Â]Ó?™J¬?<„?sÃÚ?µ‰ƒ?ñwc@‰…?ÿzô?Ò x?{Éñ>ò,k?T“Å?‚+?°«º?Ñ?³ŽM?¢°Ú?׊#?è÷H?‰—?y\ò?ã U?ñ[þ@<øk@EØÂ@!©@@?‚F?y1;?<?% ?ÂÓ´?³Åü?v­„?U­×?0>Ç«=½FÛ>» t?cýÌ?’m#?ÇNù?ÊX?Óe?“R?ô?“Éô?〮@ãó@0?®@Gr?ÓÖ1?×öp?Ö9ª?°æã?£s?º…c?Âf•?´™·?³ãy?„ÎÙ?v©t?•ö?‚Õ?ª½?dê@>@!­j?¡yÄ?š÷?­tN?´Ñ?CD?ê?˜9w?©Oy@+˜…@ «¶?Å­½?µž?‡®?’ž¹?³!à?ÂÐ×@ Ó?îí>?"´Ô?¡ô»@M÷@&ÿ?o²Ä?w‰P?€>?½d°@3¡@*{Ö@;06@Ä?À¢¾?ÒÝ0?ë p?¼ ‘?€Jš?<©=>âhÌ?Ž:b?äßF?Î »?ÆsØ?Óa=?ܦ@.@a¨?ý€?Øæ½@T;@“¢?Ý‹¢?z}?Ã'Ÿ?Ù™»?Û1 ?ãþý?íèj?ôâ@ Ùl@#‹?ÌOå?ˆ£é?©l$?¸ŸØ?‚7û?QUJ?€ðS?]—?Ánß?âðŸ?õE#?ýî„@Àâ?ú,,?¿1A? )0?E>ýn„>ýX¨>ýEÁ?ŽLK?½ÕÑ?É·†?Ï)D?¦XÙ?‹â'?»t?ßþ‘@ @(è°?Ú›?„ži?4Ð>õH +?†û®?Â?ïÔc@ 4ù?á*_?³Ë1?šüß?{WU?á»>*ê¥?œ§?Šœ‘?­sˆ?ÕÀ?±w?€æd?Nî>úiã?wÅñ?ÓŠw?Ë‘ë?Ö&?±4·?˜P§?€ïÁ?#Ëß?6c>gã™>¾š{?€RJ?Šu?¾ú˜?Íçx?øØã??±7e?Ãœ:@1È@%fÃ?—è?‘Îu?&'H?* !?é†Z?ú¢à@]lö@gìZ@ìk@ +æ?¼×?©¦d>…ðz?£ÒŽ?×4 ?âö4?ëX?ç}ç?çóç?©Kp?v¾?tTâ?vM¿?é´p@.Et@^?š¬?ÛRw@ @"¼?ª!U?Òü—@+ýå@-6?tÃ?Š?Óé?×,g@g@f@”@Yª?¡©ý?9_?Ä}~?Ôòd?â8‘?çö^?Ã?¯ðM·?g€É?¢•\?¤ã?  9?ªÔ|?Æ<}?°IÏ?olˆ?€®6?¶_Ö?±Ì¡?wºu?ß|?e=Á?]ßx?¥ Ê?²Ò:?åÜ?þãi?ë8I?Ù.®?¥`x?ZÙ”?iÜ ?o»›?\mî?9U?=up?A™-?E·ì?ÝP¥?ê]@+Ž@8´º?…üË>\Òú?´fú@œÄ?ò +õ?±œ+?Ó¬^@ «D?ùD?§‰õ?§ùº?ÝïÌ?Û¯G?¤Ô?œjù?-B¥?%?ŸÌz?Î#8?é©ý@¨S?Éð?Ï?;?–ö`?™« @sK@Hð?R«ÿ?1Ê?ÀGÿ?éf+?£ð9?el?u?›Ä?œîì?®©Û?±%e?»8?´0?­ð?®T?ÉÖE?ÍÇØ?ËjE?ÉÙ?±Ë?“‘Æ?_n?—xê?ßè?wƒ÷?_Ȫ?¤À?§X?!?jU@?giÊ?j°?CW ?'WG?“ÿì?þú?ë=j?²óó?¼Vå>6Þ»>8"·?Q?jbV?›e©?»ÕÐ?é„P@2|?àon?m\6?YÐŽ?FH$?2«?Wd„?_—*? 5>éåâ?)¨?ÄÄ?À?Kæ>á¥I=ô¦>zi+?៷?Ú Å?o{«?aõ§?ˆÝß?“nç?»n??ä‰E?Ï©?¢f?‹ÚB?Òþ¼?Ø&÷=åç}<Ôü?·* +?Ú¢”?G5˜>ºI?{I?Ê}Ë?ÍÅ?ä‹E?Üö;?¥Ô?¸™l?•#n?‘ý+@áÃ@!Zƒ?ÔO¯?É?ƒoÐ?va?‚•µ?«Kÿ?¬oM?âÔÏ?Û^?¶ù]?³ø¯?§*?œÿn?¥E?¨~é? ½?¥”^?¦þ~?€€5?d6¸?„Þþ?ƒL?Ñô‹?ðíë?„³}>ùð²?*¶k?d­‰?ƒkÅ?¦þÑ?˜DÛ?×?(žx<Ë“m?7Èâ?dûÞ?@ã¢?2'?›9#?Ów?ʇý?Ø'ó?Ðgá?žQÔ?¤ºn?¬9?¬"c>˜iý>Zç?7_O?e¿g?ò,Ë@,e ?ès©>ú^›>Æ™Ï>ƒo>ûø@Õ”@U@UÖ@xq?J>³>æ­D?Dsó?lÀ?š`É?·"?ÁwÖ?Åêt?­£K?|Ç«?db ?*sÃ?#€g?ƒX?‚ ?XZ?A‹à?^¬?®1Š?®DÈ?®_:?S±=Íî>†Uý>ºÂà>é(d>Ë>}}§>…û>WÊ>@>»uG>ÊÖ+> ò<Š}>ɾð>ê„q>#®¹=ÊÖ¾=!dî=îkN>d>·Î2>ëž×?;½?/9[>Ùü:=F¥>S->ëåÂ>²*Ÿ=jŒº=™]œ@çM>jA?ŠÖ?¸’>¨Ic>¶_¥>ì‰>î’]?¥V?³ä?§bë?˜u>ZX?”ûœ@ ¯?¤èÞ?)B?>à? ¦>¥‡p>Ž,Ï? +¼Š?,õÝ>-m>èjA?»u>ïŽþ>Þ$;?JVÅ??œJ;ê1<™Ò™?ˆÁ?€¬?9=”?1´e?*.Â?«>ý©Á?É? aq?–>ý¸Ä?= ?K?BMã?¯Û?˜5´>¨õw>»ßÁ?6I¡?SP²?™óÚ?‘úý?| +û?R‡¾=Ú4P>ƒ +é?{Ê=?{Ä?{ò¹?šuž?é×?Ö +ü?¯uV?ŒŒE> ºç>…‹?"v?D+®?{MÜ?v |?Uó¦?Sc?{;Ï?LçO=†àU>†M>ôœ”>þ +«?\=?ã:>û1Ò>ïÄ+>µÛ.>¸Ý>û:Î?C?;Ç?)È÷>•c«>³ Æ>ûW™>û^ >û_s>ûjŠ>ûou?”Æ?|3?éë?{’|?kËâ?0±÷?=¹ó?JÀ8?.Ùö=Lß>v~>iõ?lˆ?b>Þ‡>”++?|1.?kË¥?‡C>ÞP§;C= >§Z¬?· ?¦ ·?c\Ü?rlÜ?—®A?‚ˆá?ë?8le?ž;¸?®¼%?ïäL@R@é<@·»'?M2O?sÑc?¾#Á?—q>úOñ>°þ=Š` >!Á>§š?•Ê?b²’?Wµ¼?,‘‰?W§j?…ü?dÿŽ?8Ÿ?ŽÍý?Õ›c?†ÔS>„Óù>²UË>þèâ?=e0? ??D?æV?É8? ] +?… ’?³P_?$îæ>9ø>ó¯"?AÒ÷?Íq>ÿñ7?í? ú>â|>»Ù®?0N?PIè?Rçó>xIþ=µÁ= ,~´œ“Û+?Oa?’—?é•?ºñ?™ +?G7æ>鹚?t1Ú?¤_Õ?I•N?Š?zÆf?œÏ¨?•”ô? +g?0Žú?Zs?z×ç?„i?¯?Ì?±‘À?ªUÄ?Y¡å?\D?Ã9?®¦œ>¬KD?„Ó?"ò?‰å`?šð? @.¯r?q‡7@U‘?­G½?„E?‡wp?½ïs?½™£?Â8?3=û`@OP@0Ú~?º(r?‘k×?#¬?!d>g„É>K†Ú?’Ôõ?‡2?¼¥?hú?‚Æs?gNà>¯¨»?te?‚ÙD?Šµ?£:Ã?€Ùd>îÛ?7[#?‚òi?CG9>öÑ•>n=Œ’>¶4,? +6?ÕÀ•@à”?¿W?¤b¹?ñJ@?õgŒ?^”u?@ÜE?æ.›?ê,?À¿?ÃZ¾? ‘í?†Á>ÒE?5Kñ?Äâ›?±R??†4š?ƒÚc?ˆÑ]?e?)˱?„Y!?± ?P×>N1d>«•å?‘•¿?¸B.?y½?M³t@Öí@:?¯CŽ?¬È?™TH?—u?£8?ŸhT?nÎu?E¼[>+H=>vÔp?y©?5æ›?ƒ{À?ˆ!?‘3–?{d?aLâ?c} ?g'?Ø.@€Ü@ƒ[@‚â?³"?¢³@ +‰=@ YF?¬ôi?«|ñ?—ý:?¥!?õ1?Ù9§?†•>Ò9ò=… ¤>¹í"?‡?W6‰?k?P*?˜¬ ?ïy©@_`?Á´?y\A?£ßØ?±Ò¦?~ÉA?di?•Oe?“¹×?¥jk?¢ƒ§?ãà+?ë1¬?Å9º?Å2ô?Å4m?¿Ø2?¥?Ì?²J?Ù‡?¶èK?Þÿ?=$??‡¤?Ÿñ?¿j£?¡¥G?‰äý?$û3>±6ú?(Åò?H)â?™:6?°ÔÓ@ó\@0ŽÆ?ôJ\?Ó]?Y*ÿ?Fø\?ÝÁ?àÖW@H¬@ í?öx?éÊ’?fu-?‹Ö«?ãàé?Êïõ?xU¦?¬Á@0ƒ?ÑP?Ðí?ôÛÏ@9@w?ûûh?Œnº?Ã?Œ]?±|(?¾¢R?Ä‘?ã†X?ê?“½?‚þw?ÙæT?á11?ö8‡?þ&?°5ý? ‚î?bBž?€ì?Ñ´?Àˆô?‚×M?„kp?‡~*?d,ã?o?ˆžõ?ûT?®NÍ?!á°?ÈéŽ@#ZI?ݨÆ?‚¦¤?XñE?2Xk?Í?ªÛ=?v “?J~ø?qôî?„f? tt?¨N¾?2úß? +·©?ð¼?ü%,?¤ñ³?¦ÃF?ßB‚?à]?Š„¹?ø‚>ô’Ã?}Ô?‚[V?m#[? +Þ?Fl4?²âä?»Ñ·?Ò»¥?±Ù?‚ d?µ)‡@ÿý?ñ•d?ÛÝ#?è'*?íwn?‘+?£"?òŽP@ƒ?ÈÇi?ű?ºìØ?Ý(;?züò?¦Í?ÆÇ?¬Ãä?A:v?õŒ=Ñ6Æ?¤•Î?Á'ß?ˆcÄ?k?Êžÿ?Ô˜Ã?ë}à?çŸE?!R?*c²?®N?¯Y?Ó¸?Úç®@*§Î@.xZ@1±¶@%÷d?ÏÒš?ÆË+?к ?Õf¯?ÕЊ?ÈR»?¡¦\?¹.Î@Â!?Ð6,?2ga?LŒG?‰l?Ztî?¼Æ?jFR?ʸµ?ÉÇÔ?À¬o?Û¯Ù@_Ÿ?ÇÖ?€Q.? ´?c[,?ï Z?¬‰Ñ?IQÖ?cë„?€þ?äÿ3@ü@4!@ 'n?ÁnÐ?¨?ÓÉ?’[X?ÛÛ@ Ü3?žÎ:?•?K]?v™?0Aª?•1?Po´?~ÀÙ?:ï×?Ö?QVŸ?hºJ?u€Q?~N¿?Š?‘Ù@1÷ð@dØX@$I¤@8ø?ÅR ?vî?ˆÉt?qÜd?—Ÿ{?¢†Ç?ìZO@–D?õ·/?ìÝ?ÅÜO?°¹?Sú’>ü£@/;@†G@[³M@;²å?âÓ(?woï?~O?„;­?‹ R?’Kë?À£T?ßIË?líK>­X?X8Ö?£$î?“ä‡?ˆ`š?`ʶ?9$?t¡í?•G»?Nt?‰U­?èÞ.@;µn@;Ÿó@;Œ˜@$è?ùäM?úW³?ñ³8?ýr_@_a@è-?û¡:?ê6ù?ºÑê?ÇZö?øå™?÷h?îµù?ìQ?ò U?ð9ò?ýë?’{?¶¿?°Zz?†y?‚wû?ïõp?øêÀ?â¸ð?æL]?õøZ?÷(?xY>’¸O?Ü  @ ׂ?Ô•)?¸å ? 0?Ž_(?…Ù&?ÕŽ>àÅ…^‡?i]?£¯ƒ?ŸŸð?t›>?„¹G?×Å?Û' @9(š@;­?Ô‡Ç?× Ê>ðô>©þ©?“Ó«?¤É?§jü?¬ ²?‹1?rëÏ?£Œí?¼Í¼?˜ÏC?{Úá?˜z*?°¹4?Ömg@Å!@E>? ?ª°”?ÆMD?ȹ™?Ç +?Âëœ?×t?ÕÎ]@Ÿ¢@Z?©ÀÛ?‘u?Ln ?!“t?bÙÀ?ˆ§m?ÁÏ@E @ +Y@¦ý?õ-«?g?›~¨@30@*9Ý>û¡x?ãk?Öõ"?Ûú@@l4@L´a?ý:’?Ä]?®£¯?¢¯Š?•k?|Ä.?oêÿ?o¿?Ú ?†W‡?‚³$?ŽV"?…Å]?YŽž?L·ò?±0?»š@?Ùtx?æ• @;?@”?îÎœ?±¼?Ƭá?ñ¾t?ðE?ác?Õ³W?LÎö?Y®k?¬¯¬?°R¶? Ì>…¨r?wd?°¢\?´ï´?¹<|?¨éÇ?rÐM?ˆ ?êî?ï_t@\È@!ží?ñò?é¦s?åÿ‹?è•[?z©’>õK ?‰n•?Ú+?É¥2?®°Ñ?¢ú¹?W%?d&h>üWL? Y?ëKû@Sí?Ëc?´¬l?ãv&@l}?ó¯·?ÆÇL?Ü`r@÷æ@ &?uù?qEñ?¡È½?¬œn?…%C?g!{?`Ò +?WVe?‰l-?Æ7²?ºMœ?fµ‡?eÞ¦?‡?íÔ?ÏÛ??埬?=Þ×>‡áÞ?´À@#:@q@ã@E@²ð@ Û?k>ì6g?N^u?aá*?'g?ž~Â?™ƒã?”y“?€;¢?")c?.ø}?׋>?Ü‘1?œp?Œð¸?Áw ?Í¥º?Œ‰Þ?A¦V?ÍUå@Bˆ@'$m?GŠH?SŠ?¯Î”?«É”?}Ná?u>M?®vÝ?¿ ?ö0@À @ û?šQ“?•ž9>þ>è‡3?[ÞQ?d{4?ÄR3?ææ’?l¸¦>LJ?(©†?²)?¬¥±?¦.1?¨Þ?lÄ ?wðÑ?ûË@Dp?¨¿y?‚YZ?/?ÙY?’a¶?dz5?q¯û?¦o?µî?«ô½?«jT?j%?<¯Õ?I¼?]Ñ0?c{|?d°3?éhà@mÆ|@F£z>äÒº>äà§;º»Û>£¯>ݤÞ?9ùË?P8£?ÒŽ&@& Ò@ ú? ò£?‘zI>øcj>ù\’?¬"‹?¬)?œÛ?‘ER?1€k?½?¤7?î"9?¾x†?fV?A½>´X¡>å?¶†¾?À«?z30?rr_? G>ç¬2?F‘Y?fìð?9,?$œ?˜ô,?çDó?¾1?[žD?hÐ!?g«?gÀ¥?g×ú?gó_@’@ ßÊ?·~R?¬ãà?ÖçP?ãè ?mæÏ>¸ÆÔ>ª.¾>›†Ü>xÂ>V•‚>k“‚>@ec>=n«>§¯ª>¬3A=ŽäT=#ZÇ?ã©?è»6>[{´=te >Ÿ¸>­Õ>|µ>ÃT>ÍVç>Ü2j>ØtÄ>ëÚ¢?ßVø>ëäs>ìÆÉ>¬_+; +\>ìN)>îïâ?i`×?v@‹?@í?„)§>Ýp?”_Æ@Œ¤?Tëÿ>*~½? +?GÇ4>À¢Z>\5><Ó˜>©¼<«õ^?i;Ž?{¬Ý?säë?l ÷?±:?­I?++9?LG?*T^?@îA?FºZ?RqK?}ïÝ?oÍÒ>ý©o?<Ì?„A«?n—Ç>ý,~>Ø^=wá¤>„¬v?Z®?sku>1f»>N;>j©ã>éDF?¢É?˜ñ?U O?G°ƒ>ûëÛ?š?fˆÞ?Xûˆ>þx°>à{Ë>n9¬>ÒŸ¹?7c?+ë >¦:>º…Ä? +a`?ï?{Va?‘bë?ÑQº?¸I?_?ÿ?Rq…? î>Û–í<ÓÜÛ=ñ=×>û9>û;Â>û:É>Òº>vù>À÷¿?‰ö¾?Zâ“>MŽ>…¡C>B8È>oÙ‹>û`Ç?ÍD?VMÜ?-¤%>éxw?0ƒ?»´Õ?¸³?µR@?š×>û®½>û¹Š>ûÆ0>Ær7>¤Ü?µ‘€?äI>¹Ð">¤)¹>¸Ò¿?-‡?“Ú?¤ú`?øBñ?ÀáÊ>z?…½?’Î[?¯¹@?¥‰«?’zÿ?…B›?36(?ˆ‡¸?û?Û¶˜?–ø²?¾»ý@:æ@úp?Ù„æ?Ñ–Ï?²˜?xC:]Ã>úMþB?fP²?¾Êâ?£Ù)?~Šž?·Ûn?þ®j?» °?_¿X??.?‚Z?M}à?ƒû?€1Ò?|k3>æ‘©=lì?)¹Z?&?)µ >²\&>¦‹›>šº“>Ú±{>ÿúã?)>Î?5Ý>¦Cc>(8ú?;u¼?[6É?õò.@a?£àF?ƒÕ£?¶¨ã?¼›§>l?‰Ò¬?š|‹?é?€d‘?ñä?'ë?J9?@=Ú>ù©Š>÷w§?NÅ:?pR?Ájh?Áus?Áƒ‚?Ÿå>àŽ:?fzÉ?ÿ‹`?«–k<þ >_¯>ãõ¸?–o5@~@Ç@ +ÚÍ?³KS?2ŠU?MÉr?O¥Ê?œ+H?»¨'?,µ£>¥U§>ë·?²:?ÒŽ?©ÓM?sÌò?h?²‹7ªn>ž$U?“$?Œ¼¯?*ƒ€?Ep:?§\ê?›“€?‚4Æ?‹‹°?œ£Õ?^dö>°±¦?zÍ?åƒ&?¶ ?‚fI?ŠcB?Œ)œ>ÍÅÌ;]À?×B½@«¯@ X @ é?l–õ?!îl>ÎÜu>±sN>¦âb>œS›?— ö?˜P÷>ˆÆd>ÂÈt?‚Ì?\€g>%†,>¼I¶?‚Þ^?9sZ=£Õ#=¥·Í=¡>÷ ”?‚¸•?AÁY?ÿú>Xt>«°?S?—6 ?¿O×?øÏ~@3?´%f?¶ ?TI?J–?U?‘?]g?X;?k‡P?0ª>Âö*?¶g¹?Àýk?ÉZf?û±@ û¦?àPÝ?xd±?@ûB?«Ò?:®¸?BÅ>ðÞ‚>®?\jz?ƒf3??Ë%?@º?±3?Öj?ŸÊW? Ó•@j?í´L?e2Ï?L/õ?5w?M.5?¸Nê?”«â?¡‚?Jè?ÎÄ>¨à°=ðøÄ=ä/J=ÆSè?YÁ’?¢Éœ?§S?¯·ê?•8|?’X?‡E?ƒŠý@/&@/wÑ?_ê@?ZŒ?ƒË˜?‚ÂE?´T?¥ê9?5[û?+Ñ?"Lè?id?ÅRq?±G?‰Ñ>šž=½FX>öCŒ?Xª»?•€2?¦–á?05>ð§t?Dõ?UŒ=?«5 ?¾_‚?¤¬Y?¨ 3?¨z>?©ME?“é‚?šÓÕ?±8õ?©7b?_ÃG?,»z>,>Úx°?‰—š?´Ì<@êÉ?Í?…ëû?…ˆ¨?ƒl¹>Þf»?)HÖ?ƒe]?hÅ>ùm9?Š?b?§£?ÐE9?Ü÷¸?^!}?AÛ;@A£@Žò@Èr@/×?{J?g|?A +?2 Ë?/ ?¢A?-j?ã°@3 +?ÎG?ƒ/?ª3/?×Ò×?µ-Ý?˜Á?„£?g½v?ªm?Ä¢N?¤XN?›&L?g¹?cþh?H ?DÏò?ÁT¿?Í?¸ý?¹5Ä@.Í7@%`ª?j]ú?‚'?ì +Ã?ܺw?“â³?›:k?»ïÇ?×h¨@²5?ѹ?ŠÁ¬?†3\?tÐ~?Ž6?¨¢?s•?$’º?(Ú¥?-"í?Ø Ð@ µ?Ž«u?>8H>º£>ˆf“?¢d§?¸A§?×…ø?ÚH’@ ³ñ@ÆK?,C?"õ^?yç„?pnb?»Ã÷?¥ö“=^Š>QãÛ?‚A¢?žr?öþZ?ÄRç?$à0?Ž¢‹@×?ÓÿÄ?‚é?¸$ú@?æ !?Âô½@Mœ@"hì?ÙÄü?ã?—*Ã?§Ê?ÏAó?Üúf?€ùÄ?8ó«?pls?¯¾?YÓ??‘?†µÝ?ñ+>6ˆW>䤰?‚?³Ûé?¼v*?+fe?(–Ê@ì@ ™@¶\?úGV?îl§?ñâ}@i@ jC?¹“Ï?Ûƒe@AœP@6Š'@ ?Í?úS?€ôê?*Ñ?Åå¾?Ëòâ?Ò¶?à0?õ¹ë?ñ ¹?ê(”?õ©Ü@¦>?¹\?Íd?¤Þw@É@º`@­ï@0Ö‰@NÈÛ@ +ýd?€S•?]??0š«? - +?èa +?ÄÍÓ?¤.W?´uÂ?ÀK@­@?÷Ñ@àt?ft?Q,?~]™?§cï?»œq@'i@Hj@àY?瘟?ãŽp?߃M?ú`»@Êk@i@%@.?ÕÉö?š4a?b£'?=M”?Ÿ£Å?¾#&?ð@!?@Ìd@ ØU?ɨ¼?Œû'?…(?|ב?DÝð?™8?•h?½`)?¿è?¾5@¯Å@)[?Âáy?{õp@ým@A3ã@cê?ûžR?‡¹g>°ˆ•?œY®?û?M?ž ?ë?X‘$?~<¡?ª6?Þr?ÔO`?ÉöÁ?ÝíN?ý¬Ç@ "a@ë–@ <ß?á1ž@ ý @{}‚@S—‹?ì(.@ ¯@:nÁ@"Fª?ºÙï?»ö“?Ám?ëZ@I¢W@3 ˜?ŠáÓ?€Ç>”f‘>ß7Ž?ø%?õ"?–c”?˜Mâ?¹p?¹¸½?ç.?â D?óÙÌ?÷2œ?°?žºÜ?¦Š³?«qÒ?Ç9?Ì8¼@p‰@£ð@ +÷?÷ÔÍ?õ×ï?ïÀÙ?¶^??‹jý?cG¦? ¾s?b‰›?£Î?Ž×ß?/B«?~ðZ?ñÁ??Ü~õ?žü?§ Æ?ôeä?îEÐ?¦ÒÔ?°Ñ!?ä£?ÔWë?0Z#? ¶‰?â¥v@Ì•?¥ ?ƒý?x?röM@/Ç@6É@UY?´k?åPÄ@œQ@ 4%?û÷l?Úè?qÙ—?g¯¥?@±¨?Køì?|Öè?„Œ¡?ðÚ?ñN@ Û”@*½õ?ÁÊû?œŽè?h{»?HÐ&?ŸÝ=?ÃÐ;?xr?AÏÙ?˜T ?èXO?¼¶Ó?Ò;?,ÌÐ?´)?¯¯z>ïP>îø@ MN@ ±@$(@*Ì.?þe“?Ûª?œ*K?nb?du¼?bâs?&”g>ya?<û@¸&?ûÊ´?Ù‹”?â0‡?݃8?ß‹v?á¢?ã—È?®ä?¢æ?µ)W?´7I?Ît‘?éYv?é?ëÜ?Ô{9?Œjm?•ê{?¼£?¶b?Š~B?‹§f?žÁÚ?›®?Ñ|ƒ?å"?²ô°?ŒÉ?´êø@¥@L?ê'=?éKÎ?Øsò?Ïæ?çò&?é¬Ã?Œ;?j{?˜|ã?¦šE?’³Ý?…ëò?–…?®¸?¡–?Eqè?;)È?ÅÒ¸?èB¤?ªß?Œ•Ý?±¯£?Ô /?©¯Í?IV?dOþ?“¯ø?Ž|€?­¤?­šç? óô>èÉ>ñB>øó[?9[?g?‰ÇV?­(ü?©‹¾?šoP?–6Z?fœÆ?f‡›?ð\›@xþ?“œé?1¯!?”UG?ÚI?Ïìä?¬Š?ªÂ£?¤à4?§7?p»E?gbš?e±b?e¢Ö?m‰K?v?O«K?'Ï­?p†q?ÀÆM?¹×?«ðu?«ép?“?–­?â;ü@I5?’r>äý@? %@ ¾G@@ñ>7ñ;>2—@Z @XÖ?Šx?dµÚ?|"\?ˆdƒ?°ûÕ?ÜwZ?×Ò]?¹:á?³Ö›?®rŸ?© Ù?‹ã…?ˆ8¹?m1Ó?du©?‚Tä?ˆK-?¬`©?äqm?­]9;(úp=àKè?§u¼?¤ªû?嘮?ð´F?—$?dsÑ?dsJ?dy^?NŠB?,ü¤?#;S>¯â/>ñÕ?‹?çW?÷•—@}í?Aó>ä§]?,gƒ?d¸±?`7Ì?z2[?›¶&?¹Z“?®óG>’¸“>†‘è>t¾Å>\K»?zjè?«ØC?¢—œ?œ¹b?0`?eQÍ?ea¬?emë?ex+?h² ?oú?§ +"?¬I¡?mI{?B¬„?nݱ?‹]?àO?fÍ?XNe?=œ³?FÔ?Eiã?3¤Ñ?¥è%?©P”?¬y#?«C3?¨-¯?¥£6?·^2?»À%?¦p?žub?–[?iÖ·?uˆ;? îX?–;å?góA?h´?¬Áú?®1G>EÃí<(ˆ ?<^Ì?‚Ö–?.Sa>èòÈ>–ëû>/ºè>¥H>çgÒ>¶§>“ên>Ž§m=ÞEn=ùŽö>ê7„>êXÏ>ë.°?ðI=1ws=Á‘`>t?sH?7L?X;Í?kÈõ? w$>©TN>‰÷ç> +y=kúñ;·×>³»?c?ɼ=«&">–Ã>…ð>jY>)Äe<§žb>á¯>ôÔ?°ê¡?­Ó>Pîü>y-é<ˇŒ?½ºÄ@€Ï?¢Ò?'îÖ?.¢?=Ý­?HN?¼C>¸Cy>·wV=T´=C¹S<½€4>òâ"?œ,?Ð?HZ?ŽQ%?>—?+áî?,^u>‡Í¸>sÉ>”`ª>Ëš?}í¥?hPë>Ï(%?¿?µ}ú?¦Ÿ*>ý-®>øAæ>ØÛ…?€Â?|Áy?GÎ>1<?I?PÐÜ?Fâ?2 Å?:>Ü÷e=Y>fY>û¹é>õq>ØÛ¦>×ì>û‰V>û‚ÿ>ûxÃ? +¯?8¯?Nfj?{_?†µ?¬Õþ?–Õ>È#/? +@6?oMÇ?©w@UC@l?n›V?…¤?Ôa?¯¨ý?,6~?A´?˜€?lBü=îîN>ûa˜?Ã?¬Ð?vñR@Rþ?â5P<ÔÒ$>쯨C>,žr>Ù}g?‹³³?•£ñ?倀?ÇÎÅ?#Ã?.6>ø ?üGÖ?è Ì?´w]?ü<@TþØ@5Tù?ëh#?ÍPÔ?F¾?£ÝJ?ÒgÚ?¯c?Eòh?—a@mB?ì1?p.&?›_,?Û7?µ#Á?*7'?0e?0ñ>­>”7,Q>Q»1??M³h?‹®É?´s?ëZ1?År?Œå>?½v@²?Ý{Õ?´^ò?³ê:?Á5}?…äd>þÜà?*-¾?]%³?™6?¼çw?›½æ?N?..ÿ>Ý¢ ?ôs?±Eç?…àB?VüÚ?Æç>ÿàD?/Ý??ˆ¦?l~M?€ð>üIM>°B?ªŒ}?ÕüA?ˆ¬¯?oúâ?±.v?¾2ÕÈ? £;?¿ô§?À¿Æ?¹Ã?³4/?°Àï?ð°@!¯{?ôg=?© ?dûb?yæ?p&ì? î?àÑ@˜V?„³>û3¥?#É+>âÙ>Õ„¦=ýZ=?™S? II?èe?{ñ?z˜t?µ?ì>Ò•×>Õÿ)?%¿~?+>!?0¹?f(…?ÃDÌ?¦î"?F˜v?eßö?]?CËó>! Þ? |?‚_?xœ ?r…?Ë1@vÉ?:±4œ„p?G%x?” ú?Sê\?EŽ‹?e’v?dRú?˜Á‡?˜s>l›O>tÂ@?¬P?œ-¬>ó?;?‚н?`p>¶›?ü?hjT?H¤¿?ëf?3f?}b?EP?Ï ?H`Â?{YT?˜Ûß?¥’?ìá"@zÙ?: +X>¦±v?Ý£Ó@#â?Sá?NÖŸ?Be?=í +?8Ø@?=x5?™`•?¥´8?ÔˆW?ªd¥>B)è?qS?£:Ó@!è/@\@Àï?ÆáÙ?ƒ[ç?¼M?à#G?ä6?'&?Éo?gæ?j´Ú?ƒl\?ü_?š¢?a_?=Æ?Þ7f?á‘’@Ñ@˜q?÷[?æ…?˜ä?\Ý?±m?=« ?„r?÷—?¾§?;ÇE>y3È>ÒÚe? ÷?K,á?7»÷?1 z?¦m>?´\ò?¨%…?¤ñØ?“Ç?!U?8±?Fÿ?ñ¾Ó?ç,j?”*Å?ŸÇ?Ñ0ß?ÌO–?ÅYü?ÆÅb?Ç­?Åuõ?Á¼¬?º³9?±¾ ?ï|Õ@ îÏ@?÷#G?Süó>´s¼?±‰‚?Ôa?p”?ƒŠ¿?L"2?A¬N?ŸÃ?žõq?¢8?“m±?`'o?„ñK?Úš?ÈÝ5?ƒ|˜?˜þš?Å8?©"?Š?Kò-? –£?†¿ë?½„?Ð#,?Õî?¾i;?´S²?•ç¤?… +Ó?¶š?a–?›%„?¦Å?…z‚?ƒY3?ÍOå?Ú¯ò@- o@)¥¿@MÙ?ùÙ“?Äî)?°ÃÊ?q­…?Éâ?¸û‡?¾¥4?Ã^¨?Š¹?Q?ä<µ@:kƒ@Êý?¹c¸?·&#?´ê‚?7=ª>ò†I?”µÆ?¬?½ja?¶y\?´\? +?›Ô7?žÝ¹?ìf?î¬V?ðÔZ?õ^¶@ðP?è¤B?ThO?Ž!‚?õƱ?ÄÒ? + G?ŸMí@#LP?Úï‡? Óû?}¢È?»GÕ?ñê7@§»?òÒ‰?Ðôª@²:@#TV@/¼_@6æ,?©4ò?Hz?`>õ>š?Î ù?ê£7?ÀÖe?¦b?5æb?&nŽ?‚]m?³y@,¨I@%ÿ'?¼Š?ŠdL?~¨9?Ž°›?˜ñ?áR@ G:@É>@Sã?ÿIg?ЗW?Ÿ„”?%DŸ?sù«?­š¬?’S,?iÚ÷?ªNU?ÜZÒ?½À? 1?ŒðÐ?Û*?Ü«ý@ +ú?ªæœ?Y… ?['”?gx5?ä(y@§Ò?ðpî?ò/›>¯ñ:=®?ç|*?ü¾Ü?)W?HB?–?A?šœ?œ‹;?‚“P?”³@Bº?öó„?£BÔ?«º?¤ùÆ?¸§@ v@àÑ?œ©?”—Ð?€øý?—RØ?Èž ?¡Sœ?oŒD?µâ?Ž\\?º½?ˆ*q@©Ê?Ω)?€&u?¶¿Ü@»p@¸ @²f@$ˆ@,û)@î}?ß³)?~¤4>¤ Ê?aAò?±C¡?øM‹@dœ?ØÈ?¡©å?àÈð@ ,@/j@Hnõ@u?æžB?{%ª>ÿº?èåÎ@(Éõ@Wi@RÎ?­‘Ý?\?+½“?B?ètœ@6%?Îd?§zd?œm?—E>@Ü@.É&?çÑx?ºî:?Ûý°?æ‘?ì$à?鹂? ?}ES?€›Ä?†î.?Ñ» ?íJ'?ƒ?%è/>ö‡@>¼§?ˆ]?­:,?¶¶?½†Õ?¹Ð‰?¹¢À@€$@¡à?~?—@?¶L?ìøD?¤oø?ƒµË?” ?œ ô?œ<ø?•ä?‡}ñ?„¬ú?âc»@6ã?­Ë +?:æÊ?­ÞB?ó8Ý?¬ f?KG·?Lå>D!?2ðW?œq?’þ?ˆ´?ƒ$?y¿y?UÆÌ? ûP?wkø?ùMx?邾?ºà‰?Ÿ?S?^q~?çú¸@é“@3Aƒ@"ðÜ?«d­?Ÿdb?ƒ™{?í?ä?ÝmÌ?šé¦?œÞs@§«@φ@9ß@¯?ëÃs?æ?ƒWw?\ûë?õtÌ@2û@7³6@K>z@+GX@da?¡‘?½L?GïC?uÁ€?m_p?aØ?ˆ&4?©Á?—¾‡?uv?˜=?ä›?åk¬?Ú}k?Í3&?— ž?’þ>W3Ä>d‹ú@:ÞÇ@?ÏÈ?ë{Š?ââ³?vê·?Yõ3?¸.?Ç×2?˜”u?‚Ím@õ@5#{?ÇN +?Å ?±m–@v¸@­Ö@ù¿?ðó6?qä/?†ý ?¹.Ó?»ÆÍ?÷µÿ?ëàO?Ïä¥?ÑÒv?íid?êþO? Lþ?bÑ?BïÔ? +µ?©*©?átñ?qP>*û?%»­?­XÐ?ÓÁ@6·?÷ŽË>ö}…>í 6=!EŠ=d’Ü??ô?Q›0@ +¦@‡?¼ g?žeí?†1‰?n$? k>_Ë€>¦í²>Ú•?f"n@ëŽ?öUÛ?A§¼?<ߎ?”ÐÛØ=¶ Š@Ó +@kë:@,^êgÊ?< ?Á‡œ?Þ{Â@?T@B[J?íhî?é¸C?ˆÞÁ?i„?œ7„?¯ï?m‘?i1–?Pv?-ñ=?dÅT?à ?·ÿç? ×?Ùì?‡=Ñ?’kÏ?Íá?Ü°?Ì õ?À¬ ?Ži$?ò¯?hEK@ÌÞ@<¤?­©Æ?­ ˆ?y>çU“?³æÂ?ÕëÎ?AHR>'’š?þ?‚ªÄ?Ž¸P?­–?¨Öæ,$?JHv?¬Ž´?¤ñ?~—”?z@e?ã^?åU¥?²V9?§y,?¤ò˜?¢lx?Æ?ãÕÇ?·ü–?iLî?‚ô„?«ô¶?«ë‘>÷f)>å&5?)F«?=Ÿ?:Òs?,Èæ?‹Â?Ûˆx?Ü ³?Ü{™?Þ8?«ÔT?¯Äb?ÖY?Öq?Žñ:?d­±?›)>×£ÿ?‚„—@5;?ù¹?È|?ÊÍ1?•x?—®?¤ Ç?žµï?ǪQ?äzY?ß,Ë?ÜÞ­?´ÖŸ>âûW>Ýï?¶U?îÑ@}œ@Bü?Ã_¿?—›“?”¯?‘èë?qù˜?&‡?%iG?æBi?ËîÌ@"«]?Ý÷å>äÒ¡?ÕÎ?U5É?b,>4Eæ>L¼`?9?…Ýd?ŽÃC?˜‹?§Z®?§<ù?…gë?IÆÒ?[=Ò?ho¯?}4º@ û¶@8Ì?‡ÿ®?€(?•É·?˜¬»?•z_?’?§?j¢Ö?4Ã?>e4?;¡™?SHQ?Ä×?Éÿè?SŸ?aE?gbT?m›?&0 ?@Â?qä¹?•>ã?‡kA?gp?|4e?’•`?ž´ ?¿˜Õ?Âyä?›%¦?[u?¨'Ó?«ú]>"´O?+?¤á?˜1!?Œ”‚>óN >L ª?-P>÷!Û>–½U>•*ï>êÈ>ê=Ò>ê`è>ê„>ê©/>êÎ0<–)ï>‘Á>—=½>»tÃ>è¯?#d?M½>Ï¥I>]µr?Ÿì?UÐ?-`">ë–Ø>‘GØ=ýY =íçÈ=L‰ô>F‘>h@½>…MÎ>qt<%'=¤k= ~s=•Èõ?z©Î?{Ò>’ä>a¥\<U@ dv@R~F?·±?1¼?Ž­?ô±?Öë?¶ =—KÂ=½Šë=•J>ÝA>ùng<£ë\=+K„>ÿ‰è? Å?¯`?ª%·?]?{6>>w¹Æ>–<]>ÉrÙ>Ä!æ?6ò?$±…=¸—ñ>ýez>Ì%©<Á¿ì=U@”=¤±F>`˜@?!k”?bp?À-°?Œ¶r>yò.>’âp>ü=}?4ù,?¬¼?¢O²?{ø7?Z'Z>ûÜt?Aoå?¶ì)?‘~[>û©Z?3î?šç ?biZ>>†¹>º§D?>Ò?YæÞ?–ø¶?m_L>“N‹>oê|>9V©>|˜)?:•?Dµ…?¾L/?±þ?{Lô?lsÞ?SA ?k©c?{S?S!Ö>Ý/é>÷N>äOè>ñ«ô?)‰?0í‹?\ÛA?cx‚?j½?P=Î>òïw>¾ûU=Î +È>Š@>ûµ‰>ퟌ>ºÈ$>Œ›>“¸¨?–œô?¦±°?´¶²?†à>'€z> és=è¹0?.Ÿ?ãÑ*?«jh<Ãr0>>—I?Ü·?‘ËÞ?ž±Ì?­ˆ ?œ@4?‚<¸?wt ?7Àn?zno?ÄX\,b?{?þ5b?Ñ?™*?¶ôY?ß?òm?þŸ>?«“Ê?&Hø?çµ>þçì>õñ>²i?)n0?3æ?6‹?¶I?D|>ÿ~?`Š?F?P’w?*±«?DîÏ?I>?4h?Ê?†?˜ú¼>Ìmê>Š?:˜†?O:/?,Èü?›r?cºK?zÏv? åk?vK?yö?€ˆ}>Èy>ñ?GÿJ?Ti?R.f?Yëã?©f¦? µp?©×?¨.Ù?_6Ž?K_|?$»ú?IÕn?©1÷?±s?»()?©C#?,ê?‚H0?…“?.:„>d†?DHî?®Õw?âêŠ@ Í?Ø0?³ÒP?§Ö«?¢X~?ºHx?ÌÄý?_¿\?Ñ?aÉ}?¼?1²9>þâ™? Ì? ^@/œ@!ÔÇ?Ç?_j?trï?eËa? +'?Ê?í?&?SöÜ?CÃM?1¦¨?A£¼?>hž?9 +?3¬—? oÔ>·€7??üw?Q?kÇ÷?5Ëñ?¼2@áD?ƒ >ÿÅU?®?â?^QÖ?mH"?*Ñ^?%>?NòÌ?]›? DA?–°ñ?¿Îá?ÈŠ{?Û—}?Ï15?³Œ?”¼Y>å†;>ÇÀ +>Î0?Ñ4?%·5?áß?øü?ýx?m?.?B¯?Ýe?06:?½?$m¢?€q`?ƒìµ?ïNÙ@(‘?ªt?£o?;¬?Hp?R?B?X¨¹?WL€?@N^?DÅ>ßc>.?D†?³~«?¤ÍÊ?ƒU»?…²Å?Šr$?ˆšP?ƒa?aS?TÖt?d€‰?a­? É?–??Æì?ÍÎl?ª[®?£¯ ?E´?AÑ¢@áw@›¥?_=?sæ5?§[?Á5 @„Ž?ðç%?À&Ÿ?Ä5?ż ?¨OÀ?‡…t?ArÁ>ã·ô?:—Ý?k´)?”‘? ?ƒ?3ÜÛ?’??ÀSÁ?á•@AR@DôØ?«É>ãÄõ?ƒ•\?ƒF?‡[?”?µe%?½×Ä?ÚI\?Òr"?±ýÏ?Ô0Ÿ@¹é?éï?Å^Ù?¦F;?Šº(?oÊË?bu¢?’Ï¡?¤´{?<8O?’C?tTò?Ÿ½?¦´K?¦¸$?…˜B?„1Z?áiƒ?Þà™?êÑŽ?×­g>»œá?Ð?ubA?g£¬?sËS?••?Å?¼?eìŠ9°>þÝþ?®W?Gf€?$YK?¡¢½‚ø>ô> ?vÔ¿?{%c?xV?š®÷?Źî?©Ë?{ˆÄ?ƒ³?Œ"@?ÕõÜ@ “æ?íÒB?Ö ±?â‚ß?ò @ÅV@5ë?l²w>öÕ)?né?‚?Š}4? +?;tâ?-°?G”?‚s«?‚p(?Xº?nß ?ˆm?ð”Ë?ÖðÍ?@“?G3?Rr?5ºf?’­¼?½ÃÀ@ :@’g?öd!?¾'Ç?_ÿ‡?‹ä?¬Ë˜?jˆ??!™h??>?ˆO?¤¹M?5‚?ß3?–lº?˜¸@>†@fµ?ŠÅš?ª—?ßL=@«Ý?2ýƒ>î‰Í?µ1ñ?Ãfê?‡ùe?†´ž=¨`þ=YÇÈ?ç!¢?àò ?µ1"?®ýl?`³á?yb·@G*?ã“é>IfZ?6ôH@JÖk@-Ó‡?¢oY?¾Ú×@ x9?ü0L?ÆÇ@hq@et¡@=£å?ÁM?«;|?€Îš?X@"?0n?Œ5 ?ü +?ÿØs?ÿw’?Èe(?Šf%?Ži)?’k†@«Q@:#?ÔÄŠ?9¡?‚™°?¬b\?Øã?€86?çÌê@9´?¼Á¢?>G?¦@?ÐÍ£@ —M@íK@TN@i?ªaÔ?;:ö?vYÕ?Š‘V?üÓ“@#s?Äö?ˆ=?€ðƒ?}± ?Ù]*@¹Š?§Gu?~±ú?Ê!¶?åf´@K6@mØ@ êT@[?ßÂ]?×Ý@à£@04¹@ŒÝ?ÝV-?¾µÈ?«"?ÿs—@ÚÕ?Ü$??·×´?®‰?®¶K@ËK@8"¡?úÿ¾?Ĭ¬?£¤?v7U?üK²@ºâ@B’?ïµ–?ö6(?ü?Æ”Ù?¤Àø?Çñÿ?Û¢l?âì?ç‚ý?³lN?Œªz@ 77@F¸?ÇYë>w ˆ?ˆç@*41?àEû?YCƒ?yn?8,?Ç â@œÁ?ñäÁ?Ѫó?­É–?yÉ?•‡e?¾XW?»Áô?»^ž?ª85?€·?«ûC@ |?û¬s?ºšÄ?¼5å?Ì5L?Ûqv?øe¼?þîg@Žà@Gb?ÏuÝ?Ùš@{Z@zŠ?±I?¬ë@¦¯@)é?Øgœ?É~Æü?„‹·? XT?ñ ?müC?Ìi°?õÛ)?ÎPË?²nF?±d?±UÇ?Éq…?ߊå?¶â?‰¯„?…Æ?u#Ú?šH/?Ýò”?Ð,m?°Jó?Þ’$@DzË@,ÏØ?‹rˆ?†É#?· ?¶óÂ?¥cù?¦Éh?*ÑQ?¦?ÜD©@O¤?ê8?ã­u?ÆûÏ?¶z?µ?¯ ×?ä?5@µ?nÁ?›É?ÏH¸@4u@ uô?ñ»É?÷Pº@¡@‡"?”wè?–p‘@Ä@•¶?Ƙû?´Œà?Ó-?ÀU?À@­?™?˜pŠ?p 8?ˆCd?“ÓH?‚X ?iãÌ?“­Œ?éð^?ÔÞs?WDÎ?RÙ“?І¢?Ê(??¥5Æ?¨$?£R‰?ž7 ?ƒ+:?n0&?1Ѭ>ôNt?¡§?9+è?ŒŽ?í„ ?Ýì'? ;u?›Ÿ>íW>ìþ(@ Àô@*ƒ£?Óë³?´0h?‰¡%?sC%?žX[?µè ?žý3?~#s?„Œ¿?¶·?‰·?DÆ?%>@Q¼?ÿÊ ?ÃvN?³Ré?ð‰ @å ?Èf?š§æ?¤p?8¾?nm>ê:ô?%A¬?Úx?Þ^?ßL?åë€?…«Ï?id?$#î?ÖG?˜4!?Ó'?¥»è?Ií]?Œ¡M@}Ø?ÿà?h¯^?h–A?"6?ŽÝž@p @26A@b?ùz?×…õ?¦ûÐ?’‘Y?gÀh?wQ?´…ë?¯Í}?¬ý|?¨ÓÓ?:*f?ôr?7`É?7ìy?në?œ«M?Ÿj(?­â?±¶z?ÒB?ÊϘ?‘¨?‹Œ·?ôûT@Žåc ?#Á‰?ÊÿY?ÈfÔ>…S>‡Á4>‘þ÷>œAm?b×·?ž·?œÖ?œl?“"c?_1?d.f?fó„?l$¿?¬|n?´„u?ÆàW?È,“?2×>¥Zç?y˜Ÿ?•§%?Æ3ß?Ãh?•?—‚å?Þ4?ö2Ø?à…?Õ>K?©Gó?dw—?dhß?`êî?[SH?Uµ??Pò?ôxy@»?Áë²?«[ˆ?eYê?#’¿?G1~?d„K?fè?`ƒ?Tñõ?žû`?¡ìã@1D@"g|?Ø7‹?ªTy?’{?‹Ø"?„™?L?"F>Uë>Ay?ìþ>ísJ?Ñð?åN? Óƒ?ƒñò@t@1†H?ÚµL=èsS>óê‰?å+¤?׃L?„!&?¾!?ôx'?ñ?¹kÕ?¬pò?ƒÃ˜?dÃ?2Ë‚>æ8å?(äÇ?Œóã?}ªž>Á‡\>Ç1ª=¡q;_W">Üý>üƒ(?Cf2?NªÄ?\Ü„?gPû?C4ù?'ýZ?Z”~?Œ¢ë?ƒª¡?gò??‡n†@#¥@y?ZŽ‚?fôi>ø†H>ÔæÅ? |þ?%„?4Y”?C7ï?'œ>>ú>©…5>>Nz>ÃPÑ?I~.?1¬/>Ƕà>Ù¤³>ê‰>ꮲ>êÖÛ>êžÙ;tïT>«p>>wG?W4š?Y3>>Dí>îɱ?@kË>£lþ>}l³>í8È>ßBØ>Â!÷>SNÎ=É£U>~F¶>u=¦F>וä>Ám\=öŒD?p7µ?Y˜;èX(?3” ?EŸC< ù·?¨Û@ät?r\?-D?G?í >¥zÄ>£|>4Ïp=üŠ‘?ûÃ?\ž=¥;â<0øC7žž<£§›>ÿƒê>ø*Ü>ÏN?éï?b’?[ÝS>{F>™÷ ?Na‹?0É`=ÅŠÃ>ö_2>ûˆƒ>ì(?ŽG?NÄé?0~ç>üÅr?.0?¦÷¾?”Õë>üi?Åö?Y…u?DÕ±?=+§?X^:?{ü©?Yp?+÷>·â¤=ȉþ>É-?e_I?7Ô(>ÙRá?"É?cO?qT3?œ¬û?“ÛS?Œt??€oø?6$?D1å?QÓØ?bþC?t+é?ºé?¼ƒQ?ª"?{X$?ˆƒ`?˜Ã?œŒ=?¦]¬?}‘f>ˆ3>èPe?{m5?n@?Qú‰?>t‰>û„>û‰>û1>´Ä>Š“~?j%þ?€=½?§w?oév> ;q>Çß?jƒ@?RÉ??G?R+ì?“4Ï?y¤?MPã?7I?øÙ?.S?d¸>̤Þ;Ò|›>p”>ê{:??G?|³‚?g_¸?C ø?P9?N0?_À#?‚Sº?f.\?F’C?h’¼?“Î@?– I?›?]®é>ý’N?6ë‡?ƒé¨?L¨ê? !³??7?}õ ?­}?9â?Ó£·?ÀG(?£»×?íÛ?~…¤?¾r?þ¬p?²2è?YûQ?+Ãæ>þó)?âÊ5@5º`?åTo?>•?|¼@?vH(?¾{Æ?ßöú?¿]ù?¯G@? /‚>3bÊ?CÉš?õ?SZ?2€u?z˜E?ll?DK×?$?©?Õ~ +?ô]ú?ÈP?À„ß>US<+(P?¯µÈ?¸ ?)z?• +;]$g<û>?[´Á?R°Ê?1ã?T×?߉3?Ê=A?Üœ?(>ø?ªÅ,?šL|?>>ÿ?<–C?•ü?0úÕ?w’?{o?€Z?;)?BÊ?“A?¢¦’?j¼Æ?!‰´?4~@?XéÖ?Wµ/?Zdr?‘ »?¢x½?Œ¡±?¡¡?Žég?˜ðï?VLj?FnÆ@&”à@=ÖÔ?!â?ÝÞ?„Ÿ-?ƒƒ‚?—?Ä¡?‚ ?v'??´?W? Û?41š?C€‚?Oéõ?WJ?‚D?p'‚?Tëª?Fû>“Èó?Vî‹?¶‚?ãìI@tþ?Ö,P?¾õd@$À{@>z{?B=ní +?Wq¥?‚£ ?jL?a+w?—Âd?•²?Žìõ?”2?Ah§?€¦@#„î@Y9?Ö‰6?Ë¢?Ÿœ4?_há?.Ãé?Ü?_?·È>ûø?8%??ˆ™¸?¶ÜE?±´|?¬’@?'¡'>Á#?€›j?™y½?±T'?ºã?N6?DaO?8Gð?(RR?6¿?Fà¾?°š6? ¦?!À3??Â.?|œ?K¿f>$*k>õ×5?ƒ·Ï?ƒ]½?ƒa0?£Tò?»ÖÚ?pT=ä@x?>ÇT?ƒo%?“ÿ?›±Ñ?”ö?™d?Á¹?Å7ù?¡ÑV?¢·@ ;@pô?ƒ¥?›Ä?uôA?ŒN?á€r?Ê¿ ?ˆ ?¸»·@eo?«% ? Ñ…?›œ@~??ÔÎ? E»?~éÙ?–ÇÅ?põ?W!i?h¬—?vý4@ @'Š¹?¨Ð,?Ã?ƒ›k?tTÿ>¡DZ>º² ?I­„?* °>)ý>º> Ò^?'{“?ÄJK?W#=©Œ?Z¡³?½«è?“q?nJŸ?}ä:?ƒ—I?þØå@Å?«ö ?P1?ë?¢É°?Ll·?Nh?´[£?´ç©?_V®?G0F>Ûžµ?F:¹@ Œ?âòh?9Ú?v‹É?¼d)?Z@‚;\G>ŠE}? ãZ?LCl?ulf?Hg?8à€>É[>Jí?eÍ–?ÇÎ?ZhŠ?PÙ˜?›Eœ?¢ò?¥4a?¦'?ŽR,?—$µ?Â$?©œ6>×X>Ž?:Äd?`WÍ?Ÿn5?¿6@Ø ?è}j?ÄæF?¤ìb?†Ãv?…Œï?ƒ9c?¥uþ?¸f¿?M1ˆ?,Š?døÍ?ƒ&?~qú?oWì?‰6c?ˆ~?‚ï™?ƒ?Òµo?Ú_Î?›€û?çn>ñ »?ªB?¢h?¯ÕU?ï5 ?ÂÆ£?äË?±ã>û<»?6`ß?„(? ¥w?¾±U?GöŽ>Ò$?½•þ@[W?ÐjQ?•5ä?æ˜>¶BZ?¯£I?ß?ß>‡Õx?¨¸?½ëõ>Óáµ>Ÿ‰Ú?O»ð?Z€Å?9™?Chð?gwº?a1?h»?d#?@d??û•?„Q?d‰d?Iá?q.v?ø‹«?Ó"Â?––«?†7„?X‰_?Ž0Ê?°• ?¸‘?Ã[?Òâx?Ù7°?¼GX?¦Œ?¡Hï?Ÿš?ÁÃ?ÎV©?þïÑ@ ý_?:¸??¨?^Ôô?i‚D?ü³¬@ +…¸>ÙË\=á?èÇÚ@H @…l@Hl?ïéy?ãzÆ?9S?>Îx> •ß>ÖiV?Z¡?‹a +?׆e?Ë)Ø?i¢Â?£Â¨@K’’@8lù?¾(?åL±@4Jû@/«ý@!@…@÷?@¾t@xÛ?ÁRR?¥x ?mk?º,?3l?‡?‚Ú·?³¿=2BÀ?–>@E?ØGê?€‚è?{ˆ?ƒÌõ?¨?‹í?€^º?€Ûó?Ƚ?óÒ–@2ú@V]?ò²g?€Û?÷»<@ ê@<ˆ@Âÿ@ØR?ío ?Ï–&?¿¹ ?¿©e?¿œÀ?ë’Ê?ÿTä@ƒ‘@Ux?¶öÂ?A?„WÚ?‰½^?ý^¥@~«@“E?þñ?äé?åÐ!?èö?èÕÄ@.ø@Äo@e<œ@´q@L”?ßI¹@ Y@Bü@ ß@ øÅ@ ªË@ Í{?Øí¢?¸¢à?úó½@Hõ@š?ö3‰?} Ï? ÔÅ?˜< ?¾ë‰?À´ô?Áñ?él?ü Ý?ÒjX?¼è÷?Ædý?Íh?—Ñü?y4ç?ïX@¸î?ó='?Òó™?’ú•?:+?÷ïŸ@<Ï@ +ƒe?»ðô?Æø?Î5}?ð¦ @ ö@ €@!I?ëZ?lÜ¡?© +1?÷Œ?¶ë?9?z3@œ%?ù€D?–¹ì?Ë@'˜@‘ö?©×V?®d ?Îí…?ï¼[@Y7 @Mäo?¿ð?ÀÐ@R½@%?\?ÞI®?à˜?‘áp?’zj?Þ¨$?ç—q>‚³à>6òÃ>4J?`m?,Hx?—us?¸É2?¹?¸‡ê?˜ú?‚®0@0ý @‡àU@60\?¨R?ƒrÙ?"D?£ç@ü @Ú?tÁ_?¼{>@js@^5?¨>³?¯?·é?¶ü`?0ÙÄ?6ß4?WP?]6¢>Ãz!>cV_>{c>*^½?,Âù?s¡Q?ã,ñ@bS@ ág@Øÿ?ôÇ'?Ùjà@"þÔ@†Æ8@`DÜ?ÉÝê?ÅÇâ?©ýÆ?¯j?·ôü?³À\?ØÔË?àé»?¦œ?ŸJZ?âí@ò}?ï_¦?ãR?¬`Œ?€äx@Qß@O‰b@a=<v‡>¿ðÔ?¶LÈ?¦©?gº?Yr>±+P>Ò‘?ÆyÓ?ËøÝ?¶³©?²Ó.?_–Â?*ŽÂ?S”Z?mÿ?iZ­?\,x?³?®hz?¢À,?KÍY?JK]?Z? 9ö?ÏÓ^?ÚŸ¨?ä2?é?ì1q?éT¿?§(°?wÝj?§ÛE?ש ?Ä ³?¢Yá?ì&>뎮?LÖ@T8@Qíi?Ü–?Λ›?ú8@À“?ª·ƒ?j§¢?¢1?ÏjÜ?¤Mÿ?"q??.Çÿ?‚Ħ?x›O>üþÇ>ìª@ø@ /?jlf>ého?OÊÖ? 6?„ÿ/?i?£CG@‹ã@ Ð~?”»6?’^o?áé¯?á?5@¥~@ÿè@Ǥ@ú;@,ü@ê@3æ?–²?”Ž>@Ô;@ÒÄ?°®?­‹?£š“?œ»¦?Fc’? ¹‰?ŸHÌ?ýE?Ë´6?Má,?cáÉ?§Qa?°é—?®‹?¬Û?¬Ði?¬Å§?¶´?¹áa?ÂÝ°?Õƒ ?¥Ê=¡‰>=Áfå?eܲ?eÖ7?\R??Vk?Šéo?’é¿?ÀÇ ?òÉ¡?ê‰?Ãçq?»þS?ÇÄö?Èøª>Ãm=>®Û>šF%>…žS?)³?e±?FÖR?^ž?Fµ>éC>ÿ'”?dÕŸ?dÎ3?s{,?yÙ»?ªoÕ?»cf?Nçd>Ñ>… #>t‡? ³·?ä‘Ø?äŽX?äŠí?äŒN?nä¯?M•8?^SN?dƒ?_‰?b=?ƒ–o?§Ú‚?²—0@n?ùÅw?¼7Ì?¼øt?¯À-?«_¤?QbÍ>à‹¼?›o?d‹Ñ?”†?õ +Æ?艧?yÞ?sþü?0dk?™~=òõ¦=\¥¼?IM?£OŽ?Ž ?dÝ´?y!×?“v#? Z?ÎÍÅ?Ū5?‡¿?Žç!?§?«è°@XÅ@-[9@ ”?©D{?#>÷aÎ?/;’?Õðq?Ï_?kØq?D?¥Óp?¬y™?i +È?(ìÍ?Q¤^?mH ?5¡>æmé>Ìyu>(Í >ghÞ?å–P?âýˆ?~á>çë?Pïç?g6ü?ŽIÌ?˜7?jMÇ?.ªa?™>Q?ñ"*?Å×?h¦?dm?WÊb?UM˜= øe<À€>Ú]>èЃ>èñà>é,>é5¾>éRˆ?tˆ?0%µ?.>Ã?c ?æ?b>ÀÓ==À”°>ê¶m>êÛ’>ë›>êtÞ>°©Å>¡x>‘HJ>p¿?žT^?»R\>æÄÊ>½—>&‰:>@<<ì¬Á>ˆææ>í|>ˆwÆ=ÜÚú>»ïf?(«>Ê»ë>v$>59,>çÜ?¨´¢?Š]¤?M³£?”È?)…;?$°?’?åB=„ÿ>¨ +Ì>ÆãþÌý? ž?;}®?3ëª?,f$? ’‰=óœ|=ÝŸ‚=û ‰=…‰Ä€G?r—?Sùl?Ü?Î2>üÆØ?œS?F4+?„ö>‰W ? /F?‘õ£?RÐe>‘OÙ?mß?tm?z”?¡~]?æ5„?™ßÆ>F•>ñ>®Ts?”?˜‚?ÞÅ?%ò?_£>ûw¹>ª%=óûó>“:=>§gâ? *˜>þÉi? +c‚?$&?†H?^Ñn?¼ŠÃ?¼Ñ?¼Ž??•T‚>ûoì?$¼=?{xÝ?bo¹?$îT? *F>ǘE>ß¡f>û—>³î°;®$<€Š€=±Ì>Óÿ!?‰óœ?©–+?Þâ?¤Z,?1ß?kïw?½ Ð?}(v>Ð×8?ªv¡?žê?|P?˜“?·`?“ †>üæÐ>÷+Ò>ü¢ë?·ƒ?LÃ?Rhf?™X?{­œ?/—–?bÑ?`v?‡{?3 ­?,à?&³?hË»?°L³?…>s>ýÝ?†îQ?÷á'?áª?·'¬?Vä>Hž>ëñ?>?hÅg?•()?…Ïô?o¨N?\B¤?C®H?|ëÃ?¡ü?b‹,>þÚZ?.a4?C´?¹¾?¹ùá?–u´??¥ÔM?º¥?¾??Ë9?šD?EÕn?7Zi?" Ö?-@y?:¸?‘—?£X\?+ +æ?%;?•E8?¢N?¯(€?µ=??Æ·£?Åé(?ˆÉDü>¹¹Î>ž%è>¼â,?¾c?:{?;ÂÌ?T˜i?n|Ú?iìð?€ók?@dX>‰ûI?m€S?L(?'†>Ÿ„B;Ç×@=9gh=·Ä>¾yï?.ÆM?Ñ? %þ?lh?(’ß>Úþ>’Iõ?B~?˜?•“H?›8?+Ò8?¶>Pôç=æ`2?ñƒ}@… +?P9?âE?ÿ‹?ü =Û=¹ê?þ½?C ?¹?6@È?Ç 3?ªá)?P¤e?ŒYà?å/£?µ™2?K¶s?0SÖ?Uë?,ð?aq?fÝ;?lC^?ź?þ—?†¢‰?·Ä?Ÿpƒ?Ì«•?;í9>ä)¯?‰­?ÐÌ>–}>—ñ?“±¦?™:?Á?óF?Ei„?VýD?ºÈV?¹T?‚àÃ?wy.?IS8?&‹>FQM?™U @2}‘?Áz×>e”? ¹>Žì>6šç>tš¾>™H?«@Ú?Ð…d@>@¢¿?gçK?;’ž?¦q®?¢zn¯m?µÞL?ýÞ—?‚€?+WŸ?s É?ƒxX?Nâ?{K?zJ?‡r)?Åì?Áß»?–Jé?W ?ˆÎ?b|@Ç,?æ“&>R$m?_?¹Â?Â#?Åæ*?Ã8Ì?ºÜä?È*©?Ù¤K?¾z?§s\? +ï?ƒœè?ƒœu?ƒ?®U?®Ô¼?R[×?B²Î?Š/ÿ?Œ+?%ßœ?@Ök?—1?{, >l³>¿ÿ?_ ê?Úˆ?Åt ?©*Ÿ?ƒ²?¡OU?º õ?x?$íÏ? —2?±y?h~u?ƒs?žE?±ð²?Ä.{?Åh¬?ìê?é®?ÿ½?èï ?–­?-õš?ò)n?âgw?³’?§”?lQ?¦8@ w?Á®?Š„??/h?‚¾Ü?€-á?}Œx@(èß@k ï@ ?ÝNú?‚-ã?=%þ?áö? +ˆ>×å¤>ÜPW@Uè@²>?á“z?Ò”­?9›?4˜i?0?#Ĥ?]¬?GÁ?ÅÔ?áÚ2@p„?ÿn`?¼2Ì?Æ6?Åi?ø½?ÀÞÍ?¾ŸÎ?¼cê?žá?$ù?y‹#?c°A?}aŽ?ƒ+/?¹’?Ä·è?£Û?¡´œ?¤$a?¡fV?t‘k?nÍX?”žƒ?›çî?°ðè?µ¾?Éè?Àã=?ÓÆ?Ž'[?ð÷?1¯Ï?&Aú?šÙ?ßá˜?ÿ¦í@‡@ žs@…õ@ +Ù?¶„«?‚¾è?I½Á?(UÌ?§õ¿?ÄX?m´÷?E™?‚RO?q:>û7î>ÇG?Y¿y?S_‰>Þ«>ÍwK?ôÄ?  y?>^·?‰¯6@:ø%@)M ?Ã…I?Âìš?¾øå?˜è?) +Ž?’¢?ï ?¤ÆÕ?. >뮯>äéÛ?+D¡?_'ò?âí?®Ïg?Ï›ä?â‘?“:a?V³Ò?·Ïü?à¼d?Í,€?ÂÈ,?M±?Xù?]y0?e×9@|p@1Øÿ?Êwo?º[?À£?Â*?Å]]?ÉêL@þ@@‘¹?å«h?Þ3?ËVå?»Ñ{?]?„'?—b7?’Dž?iìê?DA@\£@ +ç@.|ë@$è6@IO@©y@ ;@?å[×?ÊÍÎ?¥™?‰œÉ?(z?–•c?ûÒÍ?蛆?Ç»¬?ÀÝ´?»G£?Üú(@ŽÚ?üV¤?íá@6]@hêe@#"?À—t?¾?Tx[?¹RŽ?ô“N@)À¤@KzH?ÿ$—?ž î?¾,&?؇+@ +9ú@Ôë?Ô?®^?¥,è?¤ê?Ÿëd?¢=¸?ð¨@v1@#ó@}æ?g`?ëˆ?ô @Èò@¶Ó@7„?Ú“è?Ìœc?ÿe@‘+@£Ñ@H‰@ÝÙ@ Ûà@UR@$ÄÀ?ûÿÚ?ÜH¥?õ@?ý¢™?å.?ål?«c?šX@YÄ@õ]?¸n?ˆwh?©u´?·™9?çƒ??úš¥?Ï Þ?½Uj?çTÎ?öí•@V­@å?á´ ?¼îÑ?züU?BÁˆ@ ;6@1pË@žÖ@óx@.´@æ?Ñ:1?›<®@p@/<´@ i?ѺÌ?Û÷?è©w?è»? D?ñi"@'ån?äžÞ? +,?x +?¿@ y@Uè@ ÒT>Xô5?IÅ?Ò¡?Ð|ò?S>Ù?FïÔ?£q#?ª‰Ñ>«Î >,î?«b¬?Æ¥Ä@P@rNN?áP¿?wlN>½4=×u¾?”jw?äè?ô6 @Ò?½ä¬?<­y?š­c?à˜\?óNØ@ûý?ìUÕ?3_J?`‘¢?·kD?°éø?†äF?‡ü?Ë£>?Ȥ^?×K>ç(/?=í=?8?äg?ù°÷@>¶@R€C?þ­ü?µ,E?•êÜ?ˆš3?« ?È(a?ÆúN?Âì×?ÖLT@±r?ù––?µ]>?±°?›»J?¡e~?ñ]X?ñP?É.ô?ÂCÓ?}ùÇ?pз?BÝã?"Ø;?€i÷?œ?«á…?´C@ñ@0 @à?nÿ(?¨"·@\@ û¡?×Ì™?Éì†??…?6ŒÅ?çëÝ?î²Û?Ýs?×ÿ?äàP?à á?œ0ó?n ”?”%§?²^Y?¦î?‹Â§?tºˆ?5îI??R¦?™$?ëˆù?ò`?i"©?äü?š>J?Ê7ª?§¢¾?|Ë?šò?ܘá?ô%@,X´@,óm>ÿA(?V?dâ{?zT>Êà±=æ.D?^9¬?Óz?¤…ü>æÕq?Ûñ?g7?][?«[Ã?¬Þ_?¬Òý?¬Êv?ÈT?Úc?°þ?sÿ ?…±í?ª‰?¬R~?ªÑŒ?¨P.?{?þQ?µ¢?׋Ð?½©Ì?¬$?“a9?q¸Ý?‡'M?ìÔ?‘_0?e@Ê?e4_?‘#’?÷?‹Áó?†Œ?¬ŒT?Ûd•?½%f?dãŸ?qc”?§v’?¤Ë6?hó*?dÄÙ?à.&?úûÇ?…÷3>äªK??î½?ÿ¬?‘™W?µc?¿¾]@TÙ@–.?$E>ä†Á?JÑü?m#>ì2p;B”?@Ùb@ “ê@Qó?ïZP?ò,¦?ü½t?öÞ^@–Œ@¾'?„F8>öÍ;?0“&?d?(?ãÍ?è·‚?´EÌ?±Tð@:´@GK ?=Á?ƒ>Ì?Ú ?‡ó²>ÃÙ>飀?xI?Š¤ƒ?ÇÈý?Ñ‚?H;?›.?‡?Š?ž•æ}U? õ=?ž€?¢¹9?gû¿?sV¸?[AÝ?S3‰?o|?R_?$ö?ÁÍ?H§:?g¯?»… @Ì–?ð#ÿ?hü?QÁ®>èV®? Öß?è$$?ÞFf@ÒÎ?ûB?,…Ñ>é5|?ŒAÞ?ŸKE?]íg?)??HH?j2?^€?T ­?Á.=ÝúE>êáf>ëŒ>ë/”>öšì?H½C?@õ_>S‹[>jÆx>ý0Ý?Ào?^Ã?r>?b\$?wÅH>™Yþ<¿Ôð=…h>yd +>«%â>£º&>ÉïÂ>€€™>Í>ŠS›>OO> ²=Qˆ>`>Ø°û?=Añ?â ?¬Õ ;]Ùõ;B§?©’?ÚÆQ?¿j7?®Âõ?Ur–?:ˆ +>xÎ +>'û_;¿T¡:JîB>ÂÀ>%D?üØf?í¬=áÄ>Dí£>D—½> ø ?/Ñ=?ðW>Z{·>Âe…?~w*?~N%?~.·?Y„C>Å÷Í?àA?c6w?rª?|?4 =Øñ8>‚…A>üûÄ>üÞã>üÉ?4?7$-?bÀ?‰ÂQ?=`'>ª©š>¥<•>TØm>~ ”>ã¢>ñ>ütW?[Ó?ÃzÇ?>–¢q?R™Ú?B8?4­Ñ?Qy?oý5?.ó<>¤Ã‰>fÝ?3?ëe8?說?öY“?¹œ>ûm>ûkz>ûk?Qð?Dôã?R]?_»Ã?^l?=#Š?Mè1?{‚Ç?{…Á?{?Dü>Ž+¦>¥[t?^£?)øs?y»?nU?a ??×y?Mº?|Êð?äM˜?·$ì?Y!??¬S? à¦?‹íì?èÓ?6ê?µ®?‡éÊ?|[‰?|i¼?|wø?|ƒý?{Rf?uuç?o2à?CjM>üÍ??ÝÛ?KâÃ?6Zò>ý?.{ü?}#õ?}6`?}DÜ?‡;‘?‘¥:?ˆW?}‡«?H]Ë>ý¨q>žáÒÀ°?[ÜW?­²D?V‚ý>¸u%?„æ¯?É|d?x1Þ>þœD>hN>åRå?@æ?³z?ô¯~?ªw2?\?€Pj?ç‚‚?÷ó"?ÂÙ>?À:=¹$*=Ð÷×?%"‘?.èX?¡\? ™?‚æB?pkÍ?L’Ê?=®}?¼;?ã?¦àP?š‰p?XbZ?=Bð>µ1¬>ÇÔ¦?õŠ? +5?+]>™ìƒ?,mJ?©†õ?šÉ?“M?,±’>»á?(­‚?Hñ]?¤k;?½ä‹?¿ó.?‹?\¿?'Ü?Ic?Ê7?×R?ç—?rbß?~¾9@ ?øÈ +=I©8? ?1 D?ÔÎH?»¶ð?€Ð?†í +?‚3t?•?í?Â~??”ßÒ?M?-O?[Hï?=§…?$h?Ô?r9?‹Ö ?½—±?”}²?­´?ƒâ?†RG?­?±Ö‡?¬ä?§Há?’r?‰á>·>Òkè?N^º?Ofç?‚Ñ?w´œ?#Ö;?#µD?Y¢¿?z”¨?¢ªé?®>?±”™?yÛ?ÿƒ>„e’?‘X?ü›«?ËÁ´?«Ÿ|>Ê‹ç?y"Õ?¨rÑ?¬Ã?¸z+?×t?8v@R€@-'?ŠÂ1?“Ê?¾œ?ººÿ?ƒNÆ?¦¤3@ +B?ì»Ð?”õ­?@¦î=´Åé?pŽL@¼?ᦓ?¿„?‘Z‚?\f? ¥À?+Ÿ?UX?]¼Å?9®‘?6¦!?L|½?Iêÿ?*Ï?ü?cÚ‹?iÛQ?Š]? Í€?'n‘?Vÿ”?ÅZ?ÂdÏ?½<Þ?y`=O~Ÿ?04?Åg¦?¥Ù»?‰g?Îb?ü|á?“k%?Aþp>Øl>£qù?”-?¬1@ û÷@ƒ\?\„1?I?¥^?ÀE>¾ ?¨û?ënZ?Юd?ƒ§¬?G3>Lw?qW?ÀÆW?oE?×?ŘÈ@ `Ø?ïõ/?³¬? +¤†=ÙÊÎ?FE?ƒ£?eš?£?Zœ®?rNÍ?ÖÃD?ä€)@³P@ šg?8—(?hu@¨æ@ƒo?ƒ™X?ªk@ PZ@ W,@A`µ@§]? ™?ßö?¹?‰\i?À?·<>?¾¬Ç?ª•? _¡?Mq]?)y$?¡a?¨Ú?1‡Â?¬A@8Ø@‰j@ߘ@ p?ų?”&z?[$„?\Y\?H´å?yCF?Å £?—wM?YN?òÓ? ?À%Ò@#ÙÅ?Ýö4?‡ÓÚ?MŽ™?'4É?¼™ä?ë£Ô?Âä°ßš?=r?íûâ?ëžœ?ùàÁ?œ4ël?…Ú?¨(K?ÊÏ0?Ñþ«?ÙíÖ@68@5 +?ͤ‡?‚Ãï?¢u+?¬W?Ý(¼?éYT?°©ð?£ª„?>åÀ¶?¯ø]?³`Œ?€‘=?ŠRD?ÃÉJ?½‡Ù?‚}E?“Øo?û^©?íúh?³Çð?»î ?ÃŒ?Ã…Y?Ã}$?‚aà=^ ?–U‡@85Ø?é̽?2ˆ>†’M=¸¹Œ>=íè>N­Š>_`?\Åç?¢?@RF>åÌY? ¦ ?3ê?–õN?®qµ?ÆæA?Ó ï@:í@1ÿ?¢lx?‰›¸?#¢ ?¢ñ?v¾8?¦*? Rk?•*@!ì‰@Ö?•ùs?•›?WŒl?h‹?b¨?ˆ¡0?«lZ?Œ¯b>U9>ܨ;?™°™?Þ³@DA(@%ØÔ?µÌFo?nO(?Óæœ?ÏËç?ˬ@©m@^P•@"«Ô?ÀýÕ@"²@:u ?ú¢«?•„ ? Ué?´ts@T½@;˜§?ÇY?-‚ï?€/?šß?År†?Þën?Ë›Ã?À1,?êIf?ñÄ5@t„@*Ÿ?ܧ[?¢‘£?!žÄ>ÊxQ>šÓ_>^ÔR@£ã@7£@ Ÿ®@`?®²:?z¢e?âÐÚ@”S?oµ?<«Í?ùn`@ñn?íuà?ã= ?öä@›@á2@${?8ÚÄ>p×å?µ@?àpã@Qi@8~?˜ c?TKõ?.9ç?!w?l¢?dÏ?¼Õ*?Ú?óþ?qõ?ªE—?¼ã?ëÛÍ?ú„¬@6|@¹9?Ãî?›º?Øc?îû?µÂÌ?™7¨?ÕÐô@2?¾Bý?—l9?ö(Ö@‹L?ìà +?¼FÚ@N®@5îô@ì7?ú§!?÷u’?ïeË?‰L^>Å‚ˆ?.ðÐ?zž?¶äš?ùä0@ 9þ@Íß@Üž?ÿÊS?䊻?¨É²?Âá.@‘7@û@’!@ n?æÂø?ßÉð?ÐNf?Ïš?ÉÔ{?Ön ?úlÆ?áȤ>‡= +>¨¨ ?¯:1?µ€P?¹¶0?¹ŠÚ?|òL?w-?†‡ð?…šà?ÿ 5@ ûÕ@†…@ï8@Àâ?óñ5?›:?aL&?¡|9?Á¥œ?ÙŠŠ?è|Í?¿8È?•¯ê?´M ?âci?ÎèÈ?¬ù ?Á¼?Ý!?Ó–5?Ó]E?Î?6?Ä´C?Öì¹@!¥S@´?ÄÏš?ÊËŸ?ò‘?óœ‚@Eä@ @e’@É«?×Ç?¶9'?1?r¼ @±o@Y™Ñ@€{?1TÍ?Nä.?rÜ?¢Ã5@ôô?î»Â?µ7¥?¼N?ñhÂ?ó/í@#¥@"‰c?¯þç?ŸšÓ?Ù»§?ï|?¨±E?_ +?¢T}?»9v?Ñ.P?êå?ŠDá;õsÀ>ó~?¼º?´« ?‰?Ý ?¦aŸ?¤4?™k?É,@òE@ ]Ž@(E¯@2½§?àã½?’»ç?¢#m?²gŠ?鯟@m@%Ý?£>?³=þ@q2@èP?m?lçÐ? Ç>ír?Ħ?ð•?¦øÝ?|?=—¸?“»?ïî?Ò,?Ñãq?Å£?É?—P?• +·?¯N›?ºÿ?˜û?‹ù"?¤áÍ?«®?= + >Y§ó?#lê?¯ÁØ?ÌÙò@¬@ <Ë>ëiè>ñ¹Ý?Üœ?ä0‹?º(?¯Î?§'5? vâ?\þ>>é Ã?Ipp?¹¶Y?¤ï¢?,Å÷?2æ%?®dú?®e1?Íì)?Õì\?©cZ?–C?—Ï„?¤ð.?–×ø?pšØ?€ï?­ÌÉ?³p"?Ü?Ôð•?,ˆ? xÝ?‘•?¨v?¦î·?­BW?µ·?4^ì?YM‘?È®?ÄûŸ?~Ûš?„DÜ?˜ ®?dg?ŸÈÙ?¢2ò?¨O?¬žÁ?œù?hɵ?g1ž?káê?pÕÈ?WQ?PÆÛ?„‚t?‘Ôã?ºõR?Ðüz?“þÉ>ýä-?Ê?Lr?‰á?eAp?e7?ž$h?®H–?×P;?åÊ?©°?dý#?dúÍ?dëm?C³ú> ‚Ç>Iø?bˆ?dÈu?û @öo?]>ä¬È?:‡O?’¡÷?–S?ˆ0}?•„ @+mr@+mÖ?gÂÅ?#°?…g?£ªc@i@'hC@?*?¹=€?½Æ?·ô:?¼xë@\ƒœ@VÓM?¿õ»?¡#?AK‰>Ä -?Þƒ?d“ä?Tnƒ?%´Ê?9þ?ÏÃí?اƒ?lKo?héò?ýÞ?̆!?HÆ?Š¸?™¾?œc ?q!>äøz? (7?¨FÇ?¢(â?Í‘9?Ó’t?yk?NŠ?hK¤?o†‹?Ûã?«øà?«Þ?±Í?·ú ?Á­Þ?·µÍ?…9?ˆ´U?}?tI?îç?‰Ãí?…ð—?s}Í?;‘ý?þ2>¼0÷>--J?«6?§Þ½?h3 +?g'¬?L]?Až?~?~C ?g‘·?gÉ?˜Wg?¿¸Ï?¤€?h8†?Qž+>ö&­>Òí”=6|c>!Q?8/:?W}c?N[?AÇX?rø?Œ?\‚J?:—?,¨à?)©?-ßÁ?2W>¶<§;öH5=û€ø>ë +U>ë1F>ë^h>ñhî?·?' 0>÷ŒÏ>×m(<­ýY?2?*?WYD?™£¢?¬ÎD>ļ=™:–>uX=©”L>–âç?6g?H0?Y¾ˆ?évðV>®]ÿ@ +/(@,½×?‹FO?h±ê?›/?€Õ±?5iô?(ç>66=Ý Ù?`)ž?o»u?~Æ?zGn>çí©>¼Üæ>]CÂ?ª=û?¤,×?ŒŠ?oWÍ?G3¼?Nƒ†?UÔé?4{í>Kùâ=Û`>¿W?xˆ?Gª?¥Ü°?]@z=ôM>½ç ?OÜ£?/õo>üœÉ?Gmš?·Ù}?‰;´>žØ>óZ•?Š0V?7NÈ=¡3ê<Ã]‚;îº=ƒ:>;\ó>#qÀ=á„ >­»Z?ì¾?B]«?Uœ?…ëÜ?R‡“>¤Ï>`£Æ=ÚÒ>ÇZ6?mÁÔ?˜Æ:x? ×7?±Ë?—c0?bòf?:em>ûx? z?H+ò?&Õƒ?KÒ?€‹?Ýt—?¬ž¶?Xû|?†Þ?²3?Ÿ²?sb?M™§?vú?ú­? …&? ¿™>ûâ´>ðL>ù©È>ýÔ'>ÚB>õv]>ü!Ã?3}?cŒ?£ˆ/?½9Õ?Sß?Söì?`¾Ñ?m€?y  ?|ŸO?Qn{?¶? |/>ü×õ?D·¤?”Ôˆ?~F‰?G¡W?te‰?œçm?™Ô?–¿ýµ÷?oŒx?½~X?‚ß_?ëv>·yþ=½âØ?L„-?¾¬ë?9?T?^ÚÕ?ÙÑF?ˆ¹ù>þ¨n?úS?:*?z'î?¯Øý?«¡²?¬›7?bfÜ? x?Us?|"B?&®k>ÿ„X>VP=رk?•x?¿Û6?E ?‡?wÀ¡?f?~“œ?€>?<ý?*U?ºi?Ó+D?‰˜?€UÁ?€]Q?€g ?‘Å?Äe>ñLe>å½?”Ô?¤ ?a‰8?cŠ’?–`>?)?7œ_?=e^?C,á?z` ?Í›e?¨ÆI?(½i?Rã?¥2Ñ?˜{r?q2Ç?LÔH?ï/?å”>úùÐ> ?¸O@.YF?§\0>–!>…R?[ß´?¤fª@-”@-ŒY@ïØ?òL?––]?¿Ž>ôô>ÐÖ7?Œêp?>K?h0?bc?ÃW?¼÷B>í;3>æ“Á???>±è?D&“?DØ?7ñŒ?‰ø?Ã_?¢¿?‚j‹?: +$?w]?U ,?‚ƒr?'W×?öo?eu??‚™Ý?ˆœ(?Œ|/?AÅÍ??> ?êþì?ðn•>« c>ÀÏ?§Ö?©¡ú?Âo ?®v?i;²?f_Q?-—ã?(cš?#2j?¸ú6@4D?ç=?0>„#b;¨„§?éá?Šã˜?‹Ÿg?Œ/"?›¶]?š”?†¼i?ƒ-¯?ºÈÓ?¼óŽ?\¸Ì?KBž?À+0?ÅXÐ?Fô?#UÛ?¶&Ü?¢jJ?ƒSä?¦Ö¼@ Õí@b„?özº?ßIP?»Ì?¤iw?…ñÔ?OÄ?Žp>¬îÈ>4Œ–?•©?ÅØo?]¥–?.*?PÙo?RŒÓ?Â{„?ȧ¸?„tx?u¶x>ÙB˜>Á‹¶>®5>Økë?Aå¼?s6]?¸ù|?¦Œ?x- ?}Š?€ûÃ?ƒ@Ô?…AÃ?…D›?ƒ¡›?Y}I?GÉì@!¬@N”€?Δ?†`?ýà™@ +µ…?›§n?™^? ñî?ƒh>—|É>¼‰?XüG?‰þÓ@üÎ?ìžG?PËÇ?gà“?ƒ¬S?ŒÛM?”:Ï?áh›@#Üø@>æ@ é@¿H?ýà2?ãEè?Οb@$Í@D ?‹æ–?X7?S‡=?NØ¡>úõ.?ˆ>Œßß>­ÞŸ?S[‘?eq?šÐœ?ªv?ÆR}?¡*¦?3ÖB?¨:w@ m@µu?ˆË?‚Á¥?’1@ì«@x—ö@ÿ?ƒJ?¨û_?¶Y{?¦¤t?žEâ?†¤)?‰ç9@.7×@1:?K?P¸—?è’3?æÏØ?Å,Æ?²n,?.ì?ViÝ?´H?ºÖo?Å +?”ž¨?^ñ?7ÔÈ?í@>H@D¬ ?õ¡…?ƒO‹?}$»?sœ}?VSÀ?VÃ>?K³i?Lœr?³Ýf?ÄЦ?¡>|?žZ7@í9@“@ã @FÑ@ Û²@ ß?¡à?¡‹W?àÙê?á/è?ÒÒ@à_@GÄ@,°?ˆ‡ç?R7m?‹ >Ž×c=*ª°?ª‹ý@š?²˜8?0?ÙˆE@q©?Ö”s?°?]?¾ž]?Ä…@’Ù@'?¹‚?£x†?¡¦³?žä¾?Σº?Ó_`>®½T>µîø?§?“F:?‚O?Lj?ÌÂ?ŸäN=3>ÜCØ?Ä5è?Ëj?Ã+?§{G?füõ?‡Âµ?°»F?v?6 ?N¼€?‡2y?RžG?#kf?©”×?ÛåÂ?ˆ$#?C&®?p¾?ü7?õO?ðF?£µa?©µŸ?½X?ÇC?ãD›?÷ÿ¡?À&•?».ï?Ñ&Ž?Ì_6=¼J¨<ª?½w'?º&?Ï„D?Ö+?í–R?áÍ>?¤…?›£?f9?…G“?˜_??’†‰?a¸?TÀO?Hf?q6@*4?å«Ò?Œ ?¿^Ú@Ãé@J }@À>@*™º=΢LÏX?ŒA ?¶å ?½Ù±?¿‘„>댚=+ã¯>ȃë? +Þ?¨W?ÅøÏ?²þê?©£u?ö—û@±{?Ï$?¾ã¨?á/ª?稂@Š@ÃÄ?­‘?ƒsw?Ê)5?Û? @ æ`@ÿs?è¶?Òþï?­m€? f ?¨Œ?¥.q@p@, +N?¨˜ç?L”V?u ?€'1?®óC?¿åñ@x`@µ¸?¯Êý?|&]?ÙEW?ûúª?ð/R?ék°?»ÀÀ?¦]À?¾G?ÆÕW?¨.®?›â6?þ¢¬@Cµ@/–Ç@B÷ @êý?æ@ª—@nŸ?Šg$?*¿`?Ÿ\?Äóí?õP`?ݾ?¼¥?]J5=®>Ø>€> ¬Á?QÖ‚?ù$?ݺ¤?¨bk?¶R¿?Í-ó?è9€@‹@@/@:e@f@:R?%?)†¬?³kÿ?ªn”?àœ¬?܃Ó?\ä’?\I“?ž­é?¦[l? f>á _?_EY?v•¹?ÙÃô?öa–?kç¦?æv?Ö”@Ïò?Êë?–ºˆ?Â6'?ã™f?§€¢?RsÃ?‚?Á)„?Ì®Ï?òY?ðÕ“?Ùy1?Çîñ?tr>?¡4´@Wª@Oª?>¸&‹>À,Á@Jû@ç?,ÒÁ?E_?_g2?s7h?¦ï‹?¶B¦?²åm?¯g?œü?ˆe?Ç)–?óˆæ?àpš?Ì<Þ?©òç?fGf?š~+?÷Ö­?÷’i@L˜@ßû?ìå•?÷#ó?Þ‘€?Þ&þ?EÈ0?|@"Š(@M0$@åæ?ãÃ2?¦h?gÉl?9Ð7>êÀ?‡Ø÷@Fû?ß=>'>t&c?.Úl?8 L?nþ?nÉ ?õ¬@ró@Ó‡@6+?äÇ‹?ÍZU?Ëd?ÈéÄ?øf4@ ·@ý‰?Q¸»?]ô™?€4â?|È-?\?yaF?sñ'?kî ?t&??~¾¤?œî?¨W:?³Q¶?·*(?žº9?‡†Ë?²/Ç@׈@ |m@ #v@Åy?3"?)cE?Ék"?Û"´@dr@#»ž?Ðâ×?j–‚?•lÌ?¿ß>?ßòf@&ÀŸ@E?i¢ ?e¸»?±TÌ?µá>àÈ×>…ŽèÐÑ>ô=I?–E?˜Š[?šÉG?\?ÓÔ\þ?;͵?æÅ?âyË?IH??>û?_¨{?fni?ŠÄ?Ž?žNA?°Ø©?Áeg?åæa?ë Ð@ $®@_s? 3¦? +¨x?TíU?e§?£3Q?Â&H?®^Å?‘™?ìE?Å1»?¿ˆW?šªë?•xA>Ö/>’ÆÖ?“àÓ?É ?¬->?}À?‡¸?©¸…?¸h±?ù¾U?ë®Q?žïh?œV@3Ù @EÔÑ?ð\ä?–®=?ŽˆÍ?†b2?‹E˜?«tØ?µø@ Ýæ@d?â%?ÞÜ>ügVå‹*>ì‚]@6*@TíE?àB3?dÙ›?;_Ç? JŒ?"0ö>äþp?__?ÌS?ÏG?ˆ|T?Œ›¡?†z>¿Á•?„Æ“?¯!Ú?h÷>ï¹k?I[ ?¬: õö?oBÒ?v/ ?g!V?g8>·õA>«>f?^ØÅ?"-?DÕB? éã?iG ?ªu3?ž®ö?hPß?f¼ê?fGï?Y^>Ù‚¿>Ëä>èÿL>é*y?ö“?!=a>þù<>éµ_>éØ>éÿx>ÿ.W>ÙMe?;a¤?ž+£?{>ê:n>¢– =_¯ê>v¿x?MÙ1?1Ž>6a•>zb/?l:L?l\>9Ø6>5¿>®D0>Í%¥>éÝ“>í{e?K«Û?Vä1?F`°?5º>k~Õ=Ѻ>åG=€‰ù>#ÍP>Àm^?8»?–?ˆÛH?4Ù÷>Î…Õ>Œ„>ô.î>« š?¦Û?Û_G>r.~?5Þ"?M€?–Ù?’$]?¦¨?Â=[C”=ŽìA?ó¼>ìú =f·Ê>N:‰?DAF?J†]?•ÔÈ?—,™?™ +3?’ÑÉ?4¤?X#>²e=?¦V?ŠwÎ?AX =5S?!Ÿv?÷?Þ$*?½ãê?ÀÊq?»?Ž,ƒ?-À-? ¨@>üžz>ò\w>É'%>­>´H¥?,ß ?œfà?–5?|%?{û¾?sý’?9Tª>×äv?3¯Œ?Œõƒ?@÷X> J>®©£>ît?^Ì?2:?]?­?‘"\?u³ß?/×?‹u>ä¯F>•ÎU:i¢Š>Ë?”?„mñ?^«c?Ã?X1?”d +?¥íD?ÅëÖ?1>ëe?“cx@‚j?Õâ÷>ºé^?Û-?{¯-?H#>ï—É?[¤?¸ /?±Š?« Ð?}Üe>ûï*>Þü½>¤T ?ó0?OËÇ?«,>‹[g>½l#>üB?C¥?žsç?dB8>X´ƒ=ºË:>Æà ?|« ?’TÀ?«ÁN?¹æ×?Ï7ñ?ž¶¹?TŽ?L?6"’?rr? «·?˜£i?îÊ?^#Ê>ý~5?…=8?Ó‰E?ˆc3>ëÈ¢>ùeW?ÿ?™ý¸?é°?Šnþ>ʈ ?¥?K6J?;9³?òŸ?&!´?=²¬>õ­#>•^?gh»?ªÃd?†Ù?bC?%›¦>ÿ–?ŒÄ+?º²]?¿ ƒ?¼ñ´>ñ ‡=‰:š>¢é >Å–‡?,a|?QËg>EAØ?|õÓ? ^{?,T¥?Ó†?‰Ž?”7?ïÖ?H%?…³¿?ˆ²?vàŒ?{Ì4?Ê?µÕ?v’Á?}d”?àí?ÊæF?"LÔ?(›?-æ¦?8¤?Hñr?CF0?=—¥?s)ž?߶í?Ò®+?“ýD?U?6Jû?*þŽ?´Ê?;Ì?zx‡?GÔü?Eš>öYÿ>á‘?6º?†Öõ?0Æ´>´a~>©>*>žæ? +úî?8ð @¨u@* Ñ?úD ?è±?•.y?Äo>dw.=½¿l?ؽ ?ð±!?„&A?eì?:Ö?5µ?vÿè?R@`=¿Úz> ˆ>‹H?6U?éëî?¢ö±>b®>xAé>†÷}?/½?œ\3?¸ç²?ØØÉ;g† ?KY?‚Ÿ?‚¤¶?‚«¡>Iï =þi¬?¡Â}?¬¢?Uá&?RŸ:?w:’?Šœš?Ç–œ?¡<³>Üî?‚î²?‚ò!?‚ö•?¢˜?ζ\?‡¨H>ò°?8?ÚÑ>d=“Á€>Õy?°#?.X®?>ܨ?,áq?+Pç?¥ö?µ–j?FC&?C`?ÄÅÏ?±Ù?L$?Då%@¹ê@(Á?c’?dm ?NoH?fßD?’VF?3WQ=œb?0ý?ƒog?¢Æs?·QE?¬(Ä?¡h¾?Â÷¢?Ö-?‡Þ5?[7o?9¶l?9He?×"\?å&Þ?Q˜î?\Af?RÝ?`Ž?ªà?@Ù†>™ö>¶î?ƒœ,?`£{?oO? gi?¢-? _ @f‹?o±|=ãiÄ?%€u?ofœ@ÀÉ@%C/@Í?ñ¸?ô–Ð?úlK?ž­?ŠQ&?ßF?wHù?$U`?‹?°r?,æ‚?§]?w2^=Ñ9>Ί?ƒ³?æW@>`¨@ÌÆ?…°’?ÏE¼@° ?¿ŸÅ?—½”?Á<\?ÔAŽ@^U@ d‡?æÉ?×(?O_Ù?=7? P?…?p’­?S{„?¦{?¢Ã?€/&?¹`Ÿ@=b>@É?¹è?¿˜©?Ål“?«þ?ˆCt?Éw@ø @Àu@=Æ@;ŸØ@Jÿ6?Õè?“Œ?»€h?ÅP‡?žÖº?”,±@ °ê@â?ª·*?¡áè?§\p?¢Z_?rIÄ?oo?3‚"?F ?f+Á?“«ø?Ðù4?›cû?&b? pØ?_?§Ø_@m/?àƒ(?¿xí?½8Ê?ºþ®?¯ýÖ?¨J?{Ë?`Úù?X8×?`4;?;Œ~?:€…@ êâ@Ãâ@"Ÿ@íV?žN?¥ÖE?íŒÏ>·tU>Ãøæ>›(Ä? à ?ª‰?¥0{?œãÎ?»¨N@Þ‘?ãWì?¤ðË?³¿U?ÐÍþ?åR=@í@HWZ@œ·0@M¨?K¥ý?^Z.?€â…?|Ä?yß?žüg?À¸ú?¿Æ$?½°-?¤¼Š?–Ý@é£@)ðë@› ?áü @ ¿»@”±?Ë™»?‘iU?Ðë/?÷¢@ ‘@{"?°Ú-?€'³?½ªÚ?Þ’ó?ûœ?ý$×?ŠéØ?AK¯?Y,•?g „?k?oo?´6?ÃÚw@@Nz@^ZF?¿T©?x¤Î@edE@„Q@I?ó—¹@';©@/Åï?µDœ?’¯?ë«c?þ^ê@NP½@Z?ã§?½_ê@Òh@Gm?èjT?Ö™?öV?ýF?î| ?íï@¤g@ Ç+?¥5+?†ß~@i©)@ŠþÇ@»)?ûV†?û{;?ùv÷@ c@»Í?ý”]?æ#d@ÿü@.?°R\?o­2@.³@[Œ@œœ?ûy£?ë&Þ?Ý•Ó@+£§@M·u@&É@Õi?Éb ?”8?‚¯>?]=.?Ir>¿ø|?¤@'›)@n?¿}Ý?÷hh@ðý@ ¡?ì7?‡Õ?…—?@/–˜@ºW?xû´?h^s?Ic?¤¶@&ùr@'è,@(Ö]@!–?øsã?÷PÅ?Ô×K?Úƒ¶@ó@T?üús@?sý)?aÿ¥>ÿ79>÷>ɺ=˜S‘?Vº·?x#,?Ü…]?ök? Ë?«lå@%ª@À{@ Ò@¦?ɹ;?  ?…JÛ?GÿÇ?Æñ?¯îH?Ÿ?të ?”žg?ÑôØ?·TP?G»v?Ž#Ö@4.@$@Ñ>c>Pˆî@J÷U@M#+?”„:?{‡c?wO?s²4@/^®@Må(?°W?KË? F!?Ïé†?þÊÿ@~2@ +ML?ò'Ñ?Ó®?’“5?¢x4?í*)?û¢@ï¾@‹’?YF÷?PåJ?Ùn—?؇»?kêç?U9a@¡W@/˜a?ºì?Z¿»>è†L=dE†>ßQ¾?kŒ??¢Sõ?õèî?ì¼?ÅLR?ÅUî?ð Ð?êÚ•@!¾L@`u@ +†@ë?Äõ ?²Í9?Û“[?î(³?ಣ?Øky?Úp¬?Ü}`?®CÄ?¢9?/\¤? ¹Ü?©p*?ä}«?貊@.g@/"z?Ÿ<?l?Â"x?âu–@~u@ vñ?äß©?žW…?¾ç@ Ö@ é%?ã2>?ì`¯?«â¦?§Sz?Ùi¨?èÉ@?@% +?âG?Œ<Å?Å*r@ Š!?á,?Àw?L×@- @(üã?wÿ´?y.V>óv>¸ˆ?x(?ž<¤?›à¼?™‰? +R?®À÷?•s>èÛ÷?ä¨?ÐyÞ?Ç?vp?hgš?Ô+Ÿ?ó•/?© ½?h>?¸Û¼@ÿî?Ù•À=A¬>E͇?§cÅ?¤óì>°9,>¡D=?\×?…Ó•?}·ñ?}¨d?sp?•xÒ?’Ž?´¿“?¸úŸ?¬û?¬î&?X/?Lïû?Öê@8´?ûD?éÄ?æ¢Ü?æ‡?æÁç?ë·k?뵋=¬É¿=Ô¹?„ã»?™í?;…4? lµ?9M,?d½?r?†zp?ÁY?›8?¥eü?¬iq?«á9?DO>]8@•Ä@€v@H ?árð?Á§8?8æ½?Pª?€ ?ƒ8y@åŸ?5X?{‰?„(>èËÅ>å:>X|'=íL7?Ÿ5Œ?æ‘×?íê>åB>³Ú>hc2>²}H?1%? xÙ?•Ëº?’“ø@o@[h?Š¶?ù?"Á?";>¦YÓ>• ?eß4?oå?¦Ý¸?£‚›? #Ú?œ¿•?&¸Õ?Ç>ì%^>ç³k>¹Ø>!md>Fp¼>Q,‚>Êÿ?PÇD?B j>é³?˜?\o3?U3[?Müz?Fµ¿>ôå>é’0?V??]¨P?N³Æ??­m?—Ä ?ÉOQ?L„3>Åh?gl>?8ë>Äߟ>¥»Ó>Œ.®>¨ X>† Ð>ˆÈD?9Yš?@w³>§@†>·Ow>&AC=¦ê>Ñ! >í¶c>=‘> {?>M?n‚W>’¬ü>,>MC¶>¨¥>«ž">\˜N=…+i<ûK;+ Ÿ>]?Œ>×Ä:>Úã™>ñ™? + ?c?FÑ?šëÔ?RÕÇ>–=…f†<*¤@=c»ø=g%¬>‡‚>¾(†>›­³>ƒª >úà3??–fz?›`è?K†8?Q<¤>ê¶? d2?~$?PÌ=è•g?´Í?'&&?.“¤?(i>þµ~?ö,?¹’?A>Æ®?É?Ÿrd?‹ó|?Ì>¬†Ü=Ê +À?'Õ1?½äA?±dÀ?¡×Ù?€c\>üÍÒ>ü¶t>ü¡?öý?Lñ>û²Œ=õÙÈ>iš§?wl?€¸?Hl‚?Y{>­8L=¢ÅÆ>MÃ^>Í Ò>öz>û»Ï?‘¢>ÿ”?,ëÅ?{¡ ?†’Ö?˜M*?™2y?š‘]?C¼=Ø>ÔÜ·?w³?r‰³?{‰¡?GžÇ>ûˆÐ?@§v?“?Ñ?_ƒ>?_¹¡?Bÿ+?ˆ0?¼»4?†×>´Ïp?7ß?jÁü?îß<ö;?0Þ?¼à#?¼ç¥?¼íU?Š©ñ>ûúÜ>·Ô/>8)B?s–?›Ž”?Ž½Ê?Xú(?&³q>üO0>ü] >üe ?\üí?µjn?aì]=vý>WË?® >ÆÆî>oš~?/dÿ?Ÿ ž?pû>ý +Ÿ?a ¸?¦žU?H?}Hg?ƒ’?]÷?+ +>¾J¨? ºØ@I?¤×s> +£>‹]ÿ>ýî[?ƒõ?ÆW—?›~?bU>îÐx> L)?P E?¤·ñ?*š>€Ü¿>vŽI>K/k?.|?~äÙ?-ñ]>ÿº>ÿ^>ÿ*¡?Ñ? j?«?î>&ä?,7è?`½g?ZÚÔ?U¯?g<½?[æ±?—Tð?žÜ¶>¹y>GR"?Ó‘?æz§>ûÎO>˪ ?›ž³?ªTR>ù±»>÷Òˆ;— 0<ÛÐP=Å—M>¡ >¿X +>ïÁ”?°2?!n?’$â?‘u×?£þ=?‹Y]? îà?Y?õt?\‘n?Ó£¢?Æ Å?µ9v? +?ÏEÉ?qœŽ=Óÿ>x#?Jý?=5*?p'´?’©?¤V?‚D¿?Yö†? cp?´ÐŒ?}¹ë?FÄ]?’Q~?¦ë‚?+AH?¹×?ˆ‚¥?’T?C Ñ?-û,?+ª? Ñá?‡u?‚®°?€?{ýÖ?‚ +Î?kQŸ>Ðú1>ñ?;K0?qZ@ Ï?Ùqc?©>×™y>tôš?^,?o ?•oì?µS?M‘¡>h7 >DZ?€ï?cG7?†c?„b'?€ýº? Þ”?¿?p?hH>Ö~d>ÂÙD?Ûɨ?ÕžË?‚Ê[?åÅ?I÷ü?9ka? gœ?Þè?§7?-‚‘?‚óQ?y·W?h•¨?³èÍ@?”%>,}å>ª`å?)ž?‚§?´¸I?‹:?q_§?l=`?g"d?æ@×?õ +Ò?Ž4à?ƒ>o?‹îò?ˆÍÄ?çã?ê“?­Êã?šV"?Z¾¥?Jh?^%?zÛE@d?ù¾0?ëˆB?øâ;@£]?€ûa=$ã>ÁŠ??!ÒÍ?ž +p?Å@@@Õ@`‡@šA?}pE?PÜ?\?¤>I?9…É?"…´>Ÿ|2? "}@f@€ý?#Ï€?5­Õ?pÜ?uÆ_?z§?I©Ã?§D>‹4=µà°?^Þ¬?®f?Z6T?É$?÷¼Å@ê?¤œÝ?„~R?àÜ3?ì\€?ŸZ~?¡—ª?¦ÿ?ª‘¿?Åk?¹ ?[è©?‹nÂ@·?Ê™é>ÕWR?ª_?hSU?ƒMO?ŒÔ•?¦h¢?Äm‰?Ñæ?&â^?â®@É@#Z?ø"Æ?YÙ‘?®×?íˬ@²Û?¼óˆ?¯v©?Ǹ"?ÃIˆ?ÌAá?ÈïA?ŒŽ5?’PŒ?Ê…s?ãS @ s?ë ;?ƒ¦¯?›8½?¿û?ßx@Í?poì=ºH>¨t>Zàø>ÞÉ&?¶q? ÷ü?µex?h°˜?U¥Ž?»Ž³?ÅRé?Câ©?@S¼?¡Q ?¢rÜ?L??9uÃ>Fùê>4ñ“>"ï)>’Â=?#/Õ?Š²ç?û{ ?ΫP?ŠP‹?QyŽ?DŽ?‰,„?Æœ®?-_ð> ¡>ûð?-R?5ñ—?>Ð9?yhØ?ƒF`?a¿'?W›?Ù'?Œš“@¿ì@¢u@t@¹2@ +Ë?ð’?/TŽ?^îâ?Ñ l?­F?Â?MV?²•2@€û@?â}@#Åž@Fd?¡l¢?P5?”ž?ÌIÎ?xîe?\D?Gc÷?f"·?à³Ð@Ò?ÂhÄ?µÆ?«|í?¦²©?ƒÐ­?„Ä?ôj|?î“Ê?¹˜?Á|?ÛV?á±ý?ôzö?øæÍ@Šâ?åäš?T@Q?UÂè?†b;?Àü"@"ì@+èR@9Uÿ?ûGr?DÑ“?¡£Ò?ß ?Ý^s?äÕ?º¸ž?—*?™3?›DW?‹Ùþ?‚9?S:á?HËO?Ài;?Þh?–¥ ?ø×?“4?”ñø@"Äc@3õ?@ f?Ñæ?²VÀ?¼=@>œ@@{@ìé@¬Èc@i£‰@.óm@ …Q@S[·@y6.@D«ò@*“‰@±8?è·û?™ ?p™·?ŽªD? yÇ?Œþ?€,0?6?ŸÇa@ Ú@D?÷Äà?ß©ù?[ÚU?Š?"¾˜?„?Û35?ÿws?™¨Ë?€ƒ„?å‹u?÷­?¶?µÒ?ô†@?þã6?Âf?¾`ê?þfó@~w?”?†ÊK@,ÎÔ@Diµ?©`0?~I?ðû•@Î@ À @ +È?î¨v?éÊç?¶z?®Iý?’S?Šmp?¼Ú ?Å¢‰@(µz@9âß?r¦Ô>ýù†@?@9Íæ@ –/@ÿ?Ô¸Ž?ÈÀ@¡þ@%M ?Æ&~?•Þ,?ÿ~`@Sî?ÔI‚?´¨ì?Í1å?ÛåF@$ß@M>ú4Ã?¦ÃG@m?ûTf?ùüó?úŠÆ?ù›u?¾f?Y­»?j5?¬BL?°ûá?ªÞq?”™i?QA?¢Ð@aï@r‹?ñ÷à?ã/À?›é?§¾–?ÝÉ–?Øšs?£¦ ?¡_s?S=T?]¬p@ y@iÜ?@Ï? Æ?y)#?¿?±&Ä?¸üU@ Ïâ@g@Û?îî?Qî²>âV5?úK@0°À?ôû¨?¤×”?ŽLU?ub3?Š°&?œw ?²¡Ú?Óë:?ÈËÙ?ÁBü?µ"n?|,£?§4ç@Ha@?”z?‡†’?ˆÜb@ +Q©@ OÜ?±Û?°"_?ºê?¶:8? +×?ŽZç>¿BÍ=„ +>öšC?Ch°?Ó¹ @„¾@¹@!9@!?ñý›?ýT@ +-®@ ô[@öö@éÜ?†Hc?Š`Z?à +X?èå=?ŸÐ?‰›ƒ@úQ@UÀ?FØó=íÞ?ÙAÃ@4@"­?éÙZ?Ôä-?ºî¶‚^?.ÏE?þÐæ?ý£Ë?Ú§?å!:?‚¥?ÅÓ/?·Uæ?²Ó–?£v;?£s?¡X¨?ä³?¨Â?²Tª?nD?m’¼?[8?`?˜º?m"?m?o4»?~\k>aä =Ñ/F?‰ÃÀ?¼-¡?¼ ?p˜?¨z.?ØZ +?ôá@Ò~@ `?àD>?ÎbY?µÀ4?ùé¾@Jå@G½Ë@/Ž†@,ÃÝ?2?Œ¥>ïv>é—?!ÍW??l*?ƒq?óO@ ˆ?±&”?].B?‰\²?¬dV?¼ñ¥?Üš%?è£?õ+?p?…Ý8?x?”ÆŸ?™ñL?ö v@ª?ñ¦¿?Ê×?¹|?fÒ‰?qû?­w?¬ño?L>æ{Ë?U½8?sPË?Òü«@`A@’?æÕ?ϧ¬?=¿?ˆÆ:?µB?«¨?ª¶w?¬Gl?MYó?SÁ?Èb?)¥Å?1œ?Ã>÷©«?æ¡>è0f?¦ÇC?«äœ?öX@ †?ØÅ€?­ +@Ì@@ÑÎ@æà?PA?Q7·?›õÍ?™EJ?ònK@I‚?Ë¢‚?«‰?žÄs?”õ\?‹3Ö?d¥”?‹Üÿ@âv@ßÄ?ÔÝ~?Úó}>¿%£ùº¿?à?œÈ!?«Ÿ#?™S?•Ü`?}|?QÃ?8W3>å F?e–?Fú–?9@ˆ>å7Ø>åA÷?E»?Zr¾?è;`@fX?ût´?Õº–?È·l?¶Ü?’5 >åÛë? +Ý6?î§?猙@bñ@ +Aª?¸é?“ÇG?™ŠÓ?£G©?4“ø<·ðq>Ï/>íÝ?:õÓ?Þwí?Ø©|?­rF?­„r?˜þÃ?“»>ØŠN>ƒÿ–?—&?ÄÎ?1M+?R»?™<ã¾â>ˆÈ²?eÿ€#Ö>Ùó>ç÷>é­l?]§Ó?€ +a?‡³Ê?f+?6žƒ>ꔈ>g%ƒ;ö4m<3×€= $>ÄØ_?S×?nÝ=P°>a™'>È >ì W>æ2¤=ìØ=ªÄZ?M}¸?cÌ? |>íñ&=‘9>îo?8M>/Š×>îöà?%Qy>`vI>‘@á>ðŠ5>ïõ>í©¤>hи=–Ãf>•Úî>ñôW?4f©?ru3?X!?C0?¸Ð>¸æ§>\ùh??Í?f¿>vþì>ƒF>’Ñó>ª­ˆ?(f¹?²ú;ß•Ä= |ú;ÌÂ¥=~ô=’7 >GMŒ?\ÚE?@=ô>þþ²?cv?>?·? ÿC>¿±Ï?ç&?~ö?0l¿=‘â>?2*ÿ?øRV?µî_>ëòÅ>²šƒ>‹Ÿ>Í1>–íD>Ïqz>üÐ>ü¸Œ>ü£§? Ã?+Ì%>½Z®?"¿?´™Æ?»½{?¾šB?…V$>ü÷?V«®?šìÈ?Llë>²¦d? +sø?INû?\k¸?{µ»?‰Ê?•¾ï?l®?ðÃ>Ùžà>#À&>…ÌÃ>íÚü>‹W= }8=²ÕÐ>[8>úû?\3?@õž?*’?#‡ÿ?Yû>ù]>û¥?A¬?“ 7?¡[å?®ÓÑ?€Ðè>ûÅ‚?0ù?yóS?H²á?fÿ?“·N?ðÏr?¸Pê?XÁß?@,Ç?¦0?‹Åc?ßf?µÙ*?”@?ˆ¾?%xf?,ÄÏ?3FÕ?U?…+P?™Ç³?¼ ?„BÖ>üÁø>í~à>в¦?(ž2?|û`?iÊ]?MÖ°?‰Þ·?ºdE?’Ä9?Fõ•?º½@ 6¿?šìµ>lžÉ?¢??[Cˆ?Óh¹@ùJ?¶ð¼>ýùõ?J n?‡Ýþ?O[*?ý#>òkâ>ª1@?$ïø?kÐ7?YÍå?6±¼>Ùv‹>!M? Z?5Uj?)?Sî?¶^?:¹?Â]g?ý{s?ÍÚF?¶|&?Ô¥T?ÕŒ?‘>L?É¢?ØU?íé?”ì-?œWâÔ>Ж=ϧÞ=eZü=‚éç?¼ÒN?´4Ê?«“>?—Ô¢>ÍÈ]>Ë ;?µÔ?î‰?bb:?}‘Ê?žüz?ˆÖ÷>äœå>ÝÖ`?úX?s¶?ðã¶?É ?þ?Çb@¢T@ÀÇ@¹ú?¾àD?y•å?>ß?§?gT¼?‘1w?¥,é?¬æ ?¯Ã?·s÷?ó’ú@„e?˜R?°y?ƒÒ?¾½?¢&?²üh?©ÄÇ?®Z§?wË?€¶b@õ?óüÕ?^×? ß­?\?; a?§õW?P«?(E ?am4?³2?ŠÍ‘>ïCÍ?â?>î?õ>ÃÄ&>p.>áV?%À¾?‚yD??Hl?YP?ž}m?ÃÙV?õ1s@ñ?•‚”?w´û?Û{|?áe@J»@,?×ò£?Ï]>Êf?1?ÈŒJ˜?>”êl?^oT?|vœ?¢¤?• ä?mÂS?8i›?§í?`?mÌ?EE?y¥â?ƒ!A?‹ûT?ÈÖí?ßÿÞ?½Ï?¹šÎ?}‰¨?YÙ?‰Ð?”ªo>‘l•>Žç?¢Ç½?£Õ?Å—?Ř¥?Ř¹?н?ö¼M?¹Ö>ÅŒ>Kß=ç¼?˜ ò@#k»?âO?…læ?¦Ö]?¸Ê@ ¬œ@$ª*?Ìi?£VÖ?“ÇX?ˆH?ÐÍ–?ÞÀ?¼Àn?¿_ˆ?Ä?È}Û?½ÇÄ?´£É?¥ËL?›Y¤?+9??9^?i¤?ž¬?Ž3€?‹ã +?‰”“?‡Hó?„úh?‚œ?|8x?s?iã9>†é?aO0?”ç?ÅÓ¡?È"3?!í‚?Mz>lgY>}†XÒ=EP?™q?ý‚v?Éê‰?ªýy??(n?Þ*?R"?­n?­²È?ªÞ?À}û?Ä%²?‰:‘?™ˆ@î·@.ê?eØL?dÐ?—'‹?›<?Ãæ(?Õœ@ò@OB@<Œ@#­S?÷?îZô@"ÿz@­ï@ëÔ?С6?s5÷?‡ó?œ=&?|Tß?Fî$?ÅÑ@»?}ä¶>Ìf¢? ó?=–û>Ï>þ>yu?´´ì?é;?«q³?˜¿É?™J?»Ÿ?½Ö ?Ê£?Gnæ?*àQ?yP?Ž?g@!Ñ@"@!ă@€@?Â|Ý?³ýl?›?K6@é@ +í?‘­¯?ž +.?ª û?Ó-@z]@ÄJ?õ‚'?þ¼l@Â?åì–?5ã?žË³?Ò¨b?ú7@,u@ô@Ý‹?åäÀ?¯+™?½Ó½?ÐN–? p?ti?ŧ @gü?¹d.?‰NÚ?¿Š›?ê¶?˜ Ä?Jú·?º(?óš;??é©¿?Þ9§?Ùð?½{a?«Ó?×Lh?ÜîÃ?ÀŠ?·5½@À§@ %À?œ<£?Y?†?÷.ã@™D?¶×y?–šh?Íšß?ÕµÜ?òç0?ü5[?Í +í?¿4?˶?ˆ‡@ y€@ó?Ö¨?Ëo·@Õ&@Ö·@B‚¾@J‡|?ühL?ݬ?Ø<ò?Úî_?‹8?~'?þ…@Ä?Ü®;?à l?ĸ?¾8³?¥_‡?M;?Ïx|?Ô‰4?æÞ“?î“Ö?òwÈ?ödY?A¼->ý0?uÜQ?Žõ4?Œ¬?Žƒ‚?´™R?½/ª?¬þõ?®Xñ?Ý?çÖ«@ +«ü@L¾?ùüŠ?æ`Ú?™h?{X–?È©H?ò}ß?áuÞ?ÓÎ?Ñ]ž?Õ?Ÿÿ?zŸ‚?zÞ?zl ?Yš?3Ø?î ß@8®|@ +:?»ü? ó´?…ì¾?ƒŽ…?ynØ?§Ø;?à4.?Ï›?ºÊ?ÒS?ùš¤?ü=ï@8@(¯?ý­?ù΋?ò¢D?Ü«•? p;?™ð?L³!?W¥|?„l?y‡|?ž&?¢‚•?eLn?h.æ?µDÃ?¹/?¹ ?¹‰>žƒ>5?^„ ?‹?×À>Æ6?†Î+?» Î?¢V‘?ŽáÅ?5òÇ>À©f?"5ª?k :?ž§’?Úïc?ÐKb?¬m9?¶º?ߣì?ÜêG?Ȇ?Åøê?ÃÚQ?¾©Á?‚›_?€‚É?.}>ý¤×@\l@q<Ô?º»û?s"ö?]þ4?NÐÖ@ä!@D¾…@ÌO?ØNw@Gø@IH @0y]@ +Œ +@©r@Dʈ@7LM@  ²?ù>ž>—.õ>Ÿo'>§®®>¯òþ@ïæ@.un@l@xK?ª³’?w¹Ò@¤é@4?Бq?$›?nEq?³Áh?›/K?>V„?€M÷@ EÙ@Ù? ö‰?%Q?ºƒ?¸ŽØ?ç?ë{I?Nh?W)]?,¢b?=»?Q¸S?„1å?‚Í?mž5?‡ÚØ?¸Æo?­ü[?ha?lD~?lù?lÛ?YÞõ?N”G?q}Ï?‚ ?Ž!/?¯u?€|Ã?q¹?Žú”?·úË?²‘?kk€?{nÌ?žþ?– +š?n?kÄ?› + ?žúˆ?¯?¹a”?Æ®Ç?Ûùõ?äŸÑ?êK +?Ë.Š?VË?(Á>éí>éÎ’>¸ =çÅŠ?¬Ö?CY~?°2? Ë°?b?–8Õ?„¶¥?hì¢?cZÎ??G…?Cße?›È&? §¨?ôã@¤?‚:>èü>è +é>èM‘>´rô>)>mîû>ç¥d>ç’?ªé?­v?ã–?ˆ^6?ÔFò@sä?Í`!?føJ?»3? U?Ÿ¹í?¾£?¼ Þ?1Š}?Éš?§A?¼I'?·mU?®Á?óä@)±@ uÓ?fÐ?\Œ¸>ØnD?n3?¡6?¬J¯?(Z>ÑÅt?„T[?ÀÝ’?Åù?ÕÎÏ?ÑÕ?Õ¨F?Ø9ä>Ûl?>SÛ?t¡Š?e¤×?I*6?hÑ{?¬s?°#?rE?f±ö?c›7?d˜?«š[?¼ðž?ª•?Ÿß±?œ¢Û?šl?ÜÐäÂ>äÏ.?hˆ +?Ñ?n[?dé@?pÅO?p³û?xÇë?…t-?£p?˜¦®?™Â?&kv?ãè?ï>ó_b?ÛÚÚ@p?Å\Q?b?¬*t?å¾j?¼Õ1>åæ‰?pä?Ã[¦?ÍGÒ?‚qú?‚þ@?©=l?»Î'?–ù£?uÏ?2·e>æÃ>æ,ß>æí^>ÒVN>¬“¢?t?­~·?­‘‰?Á?);>·?%B?hZ?MƧ?&Ë ? +l>í«V?ÍU?hÔ}?Xxë? µ ?/w?™±?Њ?¹¾+?­~¿?K>ê²>µIâ>³ÇÝ>õdÊ?Ta>óY×>ê_Ä>j—³>¹d‹?k¶ø?;N’>°4>é]>á³é>¹Ë>œ">¬…z>½ +R>Ë;¦9‰‚<\…`=<æ<ð=÷­”>6rq=;Ã>Óz? >–<\=²në>—êm>çw#>7À <áÒ@<¹r˜>ì?G(¼?€{~?—Yô?.Òœ> S®>(Z@ +ih@ Ký?¥º>ïo>SéF>a¾_?[á½?S»k>‚¥l>n½F? á˜>Ñη>/k?$‡9?UH>þõm>úàü?©c?%ag?PØB?dÛ?~?G¿6>ÞÐ>û”Ó?ù\?cà?²ï,?w•¹>Éë:>[ +W>Z0³>üÐO?R]?•v¥?uÀž?QE‹>ëaf>Ôº?mk™?°Pß?ùƒ?‡sO=09,?kmÅ?ïqÇ?°ÛC?T÷I?>îN?2¥?èú?#?MïÓ?6?`v?[ÎW?m±¦?{£®?gú?fX ?îA??“áS>ÓEã>ù¦»?j?(:>û ?W¡h?ž +?cy>û¯ì?÷Ì?$̘?VéÆ?ŠÁQ?Nk[>ûÏn>÷ëç>û~>ÿˆ>ûì_?GÙ?–p?sMØ?#w“?N7i?|"º?¤éÔ?Ý0?—\@>ÇçÓ?I5?£a³?²í™?É‘ú?ž?½qÖ?†Å5?…ã?:#?q@ +?8‡h>üëK? c?#IÌ?Ìd@ÓÈ?Èè?<}J? k°>ý_ú?˜@~f?Éï?Œ—†?"–•>6‚ß?0?züõ?|ÁI?v¡¶?9DN?·L>žv¿=ÿJ?.ª?RTz?LP8?FK¿?fµ3?„)?% S>»‡;>[Âe> q??$}’?h>ì?¤¾?¹þT?P ?Û>=é¡>ÆÏ>ó>·±@?´í?"À°?(µ?.«ü>éh(>ê x?pæÃ?†]Ò?Ž'½?…Dæ?YÊ£?^Ì>€c7>6¢f?‡í”?†%w?…Ì2?zh9? _A?þ>? ˜È?ƒ=Üra>B½Ê?»/?Mì?O±?E̓?>ï +?v\ ?¸U˜?.¢?ÿø?4‡­?Ž—?„ÆÜ?W‚Ä?i/‘?xRT?€zÝ?Ûð?FÜ? ü?GUZ?lÍb?:Æ ?"©:?Bû?ZLÜ?y×á?•¦?­?Æ;†?us?OˆZ?x_?Ã"?v,•?ÑÞ?¾‚?Àé>é#f?þ5?Á—?¼Ïß?}2?w­r?rC¢?`ý!?;»û?M*`?\²Ä?€f,?ªÛ?„pd? ×’?9/¼?‚Y?‚^¨?‚e?jêþ?KÞ?jÌé?‚~1?wÁ¦?u½5?©<à?¿0ˆ?Ã÷?Æ.k?5ò9?Ãð?ó'P@¹Ë?’Ç?šÿk?Uך?T‚>o? ·@Þ?ëY?’)æ?Š1ê?2Vç?K¸N?‚ý?PÙx??Sõ¾?“Hë? +\Q<»ò\?m}‘?Ã$d?X +?*@8@#ýÝ?Á° ?¥/©?ˆe?ƒ@É? Ç­?b§?§5? ?@ëï?3ø?[ ?(&q?˜ +?•Š[?“þ?ž‚Œ?ºô?«0?Ž³?¦úÅ?Å6õ?|r +?äj?^²?ƒ…8?vûP?keº?f…—?trD?º þ?Å\¦?L=?=?¡-ß?¢nÊ?>í§?:ÿ?5©?˜µ>¸Z?>]??éx=@ör@1r¤?ñ>òÅS?:zd?‚¿?È—B?ÿe.?±â ?ƒ·?ßL>ÛK1?˜¬J?³ ¾?äÆ>ºÕá?­+?²ú»?Ž2v?†ä?Åž»?Å ÌЦ?FÒã?±vŒ?¼ž?Å„ò?Ä"N?Ä£?ê}0@f9?…ãV?M;?Þ!v@Û?”5?ƒž&?ôï;@š¾?¯H?žãÂ>–Ã=>” +?ì?oª?Ÿþ­?†Áô>§Q=?2øm?سf?ëUð@ ôP?ô^?°Io?¡n]?‰o½?MkÙ? ƒX?Q6¡?…ä?ÖÀï?ÿÚ}?Ü*Ê?ÐiZ?nç?Bˆ}?¦_²?°À? Ö?IŠ?G•?O†@sû@C?¹–?¡ìù?ý +?…Z€@$ì†@¤[?£Ú?°£²?ĬÔ?ÇS?3ǹ?!âE??Sž?$á>hBŒ>Ô¯?7ÆU?È µ?ø¸E?f9—?â®@%º.@D†@ÚÉ@ ‚l?‰¤Ì?|˜?à Æ?ãuÔ@)ª«@!Wh?ÜiS?×ß=?Ãûõ?¾_L?¤D=?Î+’@2‚Z@)e@1×?ó]ç?À¨‰?”’ü?…º?¯m…@ ‡Å?é¢à?‚_¡?í©ü@(´w?¸ôÇ?I6?¦õ?îð?Œ­?u·?Âq6?ïž±?tÿ?|ô?†Yÿ?Žª?º ï?ÃÂ?‡«è?nóÈ? +‘É>ßöà?£G‹?¯?òßS?ù̽@"9ø@›/?À›ã@Pn@#r@+¹@"Dw@ i@3¤?÷ßQ?ûT?0h¬>´H\?¾¥Ö?ÝÕ?îyú?ôôb@,ÄO@8éÜ?Ü̉?¿¦æ@0H‰@>oõ?]WA? $?‰Ž??™Ã"@"öR@,à?¿Ût?±¡Á@)@ù3@ +û@@ ™@°Í@¤˜?g#)?@zp@ +ëf@55?e@?,Û?Ÿª,?«w?ô#?ý@{á@T?ž»5?…YŠ?vcZ?wrÌ?êZ?ú 5?;ùz?¶T?ÒØR?ëè@ q @?œ×l?|Ã?áöü?ûò8@5³×@C°x@Dm@ ?Öþ?ºPÀ?±¶-?§ýˆ@ÖE@Ë?¥ÚÄ?VDù?o-Q?z¦I?„Ñ)?‡}¼?õ½š@Œà@ TF?õ‡‚?ך\?»f@'‚¹@j?i@#É?±ù#?ýDò@-× @µ:?¨¶?ј?»Ä{?­Aæ?‰qê?—:º?²l¾?É¥§@2;?ækŽ?Fˆ?Zë?‘½O?£ @4'¨@)Å÷?b·s?Q¦F?ûð?ßù?«¤:?³¡"?·ŽÓ?¹ ?±øK?« + ?¯µ:?°‰?5”ƒ>ö¬?:?_ ?U+‡?u¯h?Bg´?YÉ?Fº›?|›?u ?u +U?ŠE†?«Û?¬ð®?£;!?ºˆÖ@?@$­?ô)g?ïŸ?¶ò2?¶¹?d÷"?l|?tÂZ?ƒ.è?¬a ?°³b?ÖŸ;?ßa-@ä°@%p?è4?µâ7?µüò?Á@§?È]•?Ç»S?àRá@X@¤'?ñž$?ÙìÑ?sE>ëÂ}>Ò§Ð>¹†C?U?ñ÷?›ñû?­f0?¯j`?±m +@ty@eM?èÛ,?ª„0?ÃsA?æÉK?±F?W?*[?R£?†¯?C݆??m\?ˆH?“„?ÊMö?×çG?–¥ƒ?„€P?Lw?\J>Åq½>g\? C?€ø”?›‘à?çŸ^?Ïã¸>øÞá>îR>ô̶>ýbû>ÕŸ>ºm>é‘ñ?ð­?'‹1?;ü?þ?Ðœn?®))?y¸Å?TÌÛ>먊?(?Þ6Ð?äÌž?x#?k /?ëf¨@^?÷=)?꾘?—J>êˆg?wˆi?êVd?Ï …?aºî?]È?Xw!?SË«?®š ?«O¢?@½6?£?mÈZ?†GØ?»i0@=‹?óçõ?½B‘?­ä…?iÞ?[Æs?‚j\?€É²@h¸@3Ñâ?²2e? ×<>òý>è>ãK>Òù>ï^8?SµÑ?O2?­&Ö?­“‘?;ây?šµ?“ïÜ?±‡—?û®?fû¹?´?Ñ°K?Ψ¾?µñÈ?½GB?¹ù?µº¢@yi@' @M‹=@e´½@œ?†X»?uE?±}?å'?ªU;? #V?‡àÒ?‰aŠ?)AÚ>îQS?¨oc@%b@]Ü?÷é?ê+?ÄU?¡©?ú‹ +@}N?E»>î%.?©¶?ê{`@ ÁÃ@¸_?ò5‚? 0?#'ñ?©“0?¹Âþ@ I@?´»m?’¨ ?­ÚL?¾öâ?j[> Ým?$s‡?½è@(¯ +@+³?–¦?\Š•?ÒFÍ@W§?¹9@?d’?‰ ?ºg?³ˆà?«r@?«ní?ŒØŠ?‡äÏ?±Ó’?Å'G?¥ ?†á?,5Û=ûG¾?FX#@F[|@9s@|¯?øù ?ÏÖ?Æ7õ?XÙu?O ?9È?%g?d µ?ž‹ü?“9?ø?7²:?¶ûF?³ßå?¸Ž?k¢>€†‹=åI”?ØÐ?e¥ó?2T#>ûò¥>òãr>2!õ>¦ÃA?¬bŽ?¥ØÐ>ø@P>æJd? É:? m!?{ÑŒ?¢9ª?\£>>æÅä?D Å?¡s?­ðá?àÍ?ǸC?‡ž—?‹)ç>Œþ»>[ÉÇ>?¤E>#dÃ?-öp?h+ë?²0§?âG>?° ’?hN„?fX+?hëñ?Oº>é6+>ÞÆ>¦éº>Åö´?«R?»d?¸A>ê8°=¿¾Ç?qK?]¹?iÑþ?g¥¡>ÜD>ÈiÊ?kâ?\é½?9@q?"œ?W?Ñ‹? ó6>ÄFÈ=•8R=z„>†­©>ˆƒ™>n÷d>L· >*BZ>™Á>›KÒ>ÏÖ‹>äƒ:ê¥>Lc>Å«Œ?;•?K¶Y>í‹b> 5=0†j?®Oí?ÌCÍ?ä‘“?Îç,?Èß?«p?š?"?³ç0?ºQ.?½ëô?²€¥?{Á†>±S?˜( ?W¾N>Y&'>Ò9v?.Sì?b‡>þY ?ú¾?E…•?¯'=Ø"?z‰?½#T?_ëw>!q>+Î=ßÚ,>lßV>¨Ó>È U>üÑë?‰.1?á b?–—>ü?1D>Õl >¾Ä»>ã5ê>{Ò<0ì`=q°>»ð~?OÕº?Ö>¤¾ß>ÛÆ¥>ûÐU>ûão>äDÁ? +6q?),Ë?"Pí?x—?2¼¤?[³=?Ží=W?:?Á1y?Q·(=³00?'Å:?˜ç\?U,É>ûª-?4g&?zù?*¤r>—·ÿ?"‡Ï?{ÿ?û‰?¥FÀ?vÜ ?^‘>“y/p>û÷¾??â?.>üÒ>ÞY>Ò·?/N??‘·?_C1?|\¬?J?ÇÎÌ?Ø ?æ2/?ÕQö?½z?ø¤N@šø?¼y? ¯?òÚ>üõ9?,ü?V;—?™}2?Ùw•?µ01?| “?[O>˜ÎÃ?,ÿµ?}‹ê?nô?¤µ7?¯ü˜?·¾®?mHq?AÖ?HÊÑ?~ ?thœ?h:?Íw>º—ã>§ÉŸ>¸:¿?Fð[?~š—?’þR?•2"?fUj?Qê¶?5Bä? tÚ?X?‰˜?a m?L@S@Gx?£Aú?e§ì?YÓ^?N·>rÉÅ>âô?oº?r:>ÆÍŸ>‡fâ?¬­?° µ?ʪ;?Ô&E?3(¯? éé?I²C?Xô(?±l?º#w¢>ºž?€Ñº?rv®?Aï™?†=O?ç™?¸·ó?+U0?ü5>¹î²>—ý;>l, >§z5?8½?€];?Á8B?ÝpŸ?ð?̺k?¶HJ?UõI?z?‚r?‰Ô?_žè?š‘>Öñ>ˆ°Û>ïX‡?º +?À&?ÈJ?«@}?¬1 ?3Õ~?!·ñ=¼6>=ðèÎ?€×y?vå„? +—¦?$y[?‚C?~þ|ï>þ¾ ?ª+(?Ãù?†¨Þ?tק@w}@¥'?jòr?hù²?Å'L?´3Õ?P/?iVâ?Âä|?§\€>á¿Þ??‚öw?Š;«?”Ï+?l|‚?5¶|?0Í +?¶ò?€?¡½G?›2? ?³?5Â?CÝá?ˆú +?©õz?ã ?½Db?ƒr ?³µ$?ø!U?â<¹?Å…«?*®2=à=ºòÚ>sV>?[^>g2?‡8†?ž…¥?h¶?e'? îŠ?œ6?B¨È?H/î?M""?R8?W(?Q¶?ïP?+aW?ƒ¬¦?w`»?a‹Ð?ù=’Œ<á<×;Š…?[Ö?Œâ?ˆbê?ƒ»6?eS\?NjI?Ö…?ôf”?»!`?§ß¡?Y‘v?eºt?xñX?ˆ]3?§¬M?ª(?¬sc?ª'¯?œËÖ?‹žì?#ë?C|÷?ƒÇY?±?ôþn?žú?Ûß?ø`Ž@=n?‘A>2ã?³Èó?ï>K?}9.?G$d?·:ô?Ť°?´ÜÀ?¸&o@ë*@Õ?FÌ?@¼‰>àeÆ?rKš@GÉ$@!I?tr®?$ÔR=â¦>¬u+?)ñe?Ž¶é?Ïvì?¢k!?‚´?†Gš?‹']?«IÂ?´ß¤?§OD?ªC§?EQ°?&~h? òR?¯Œ?´M?¸‹‚?‹Þú?|»š>…#}>ÊÊC?_'?o­Ú>;Ü?¬x?»‡?¸'? ~G?n4»?}=?z™?¿ª«?Èý?Èiw?7ÿ?ƒng?³j?Ìp@ Ä(@jÈ?ýß?¤Ž?]S¦?Uü´?”m¬?’Ѹ?Q]?U"?âI«?åjý?ÑÛ+?Úé“?É_¤?«}Ë?†hõ?Œç?ƒ;!?‹q?¬›?Ç¥ª?ï!G?ÞF ?Äœ‹?¢ë?‚g—?4»â>ò`i>üj&?ù+>ÐÞ>ØÉþ?¯õŽ?Ð<Õ@A¹Â@Zx³?íEŒ?Ò.Í?³òS?©j?£û?®5.@>è@<¥Á?½5?»·y?ˆöÚ?‡¢Ç?@Kþ?UÓ²?¢jÜ?Í1Í@ÒF?ýa?…,&?›É?ÁdP?øÙ@#q@8Ÿ @L-é@ÒÖ?ìô°?Å?³?ŸjÊ?yÂø?[¦?²_y?ÏœŽ?´Ñj?·~;?ªÿv?¤ÞE?™:ð?`??¹\?ÃÛ?Ù,Ÿ?àqÍ?äŽc?è­1?%~8?8 ?‰}?ŽÙ@ÞÌ@%(`@aŒd@M½3?¹-ê?­)†?¤?nªd?tìòÀ>Ÿ?ȳ‹@ ;Ž?ôÔ¬?ë‡!?Ízv?À r?ÇGJ?Óv)?ù%?ý¼Ž?è²"?åÖ ?Úe?S1?p^q?^ü@ ­l@ ’?¿ñž?« Ÿ?×&þ?æ$=?Â:?½OÚ?¿€t?Ã%? S­>ÿDm@9•Û@H/@š@žÂ?Üþ?­à>?½&¶?¾ÿ«?Óïy?Ø™?É +i?ѧÏ?‰ ?xxË?Ëã¹?Íúå?›?•;á?“,c?‘!€@È[@è@ 9þ@ð‡?ÈéÐ?½åP?#0Û?¯?å†g?üØF@-êš@0t:@ü&?ü~ö?®‚>?¥½ú@=÷@¾þ?½ï[?¨Kñ@µ´@²d?±æL?–;@ +ˆG@z @:ù@C¦}@50@1k?³D?DX…?Qµr?_= ?ƶÿ?ìfq@@3@-xh?âæº?ƒÛQ?æLò@uò@t@R¦@;?ïË°?ç+ ?ä&]?âˆövÄ?^×?d*?i9?¥(¢?¸Ã(>Ò>=Õ¢? 5¤?S%Â?ÄÕÌ?òà)?ì­Œ?æz ?îˆ?÷—–?ʈË?–C?7°?„‡?Š_×?¡`—?´·e@ ‘@“/?ÝÍ?Üž’?¯Ä ?®]`@ª›@©Õ?Å»j?¶iZ@™F@+³Ù@:KI@>pà@>•@Òq?ï@Ï?ÓW}?¶ñ±?š‘ƒ?Î×¹@uJ@Ë.?¿`F?¹š?‹+û?Gì?“eE?—ƒÞ?BB³?G Â?zè˜?}+d?~ö°?x“û?Éæ?ñ?Ïz‚?³ü-?·œo?½›9?²ºj?—¤Ö?“Râ?û?œïg@`X@±?žµ¶?˜8Â?s9×?n‘¦?]\?P +•?¥ÀÙ?ÊY_?·Íö?Ÿ¤#?¤NŒ?²Fú?®4ï?¨X`?¬õE?±Vl?§xs<¹]à="v—?@Åö?Fòª?þ¥@ÔÈ?¡*©?Gä´?¡M¥?ÞD‰?öî•@g?û+ˆ?Äo ?·§?£ÈQ?Ÿ??l’ô?k)°?²&«?¼›?Èe³?Ô÷6?ƒj>ê ?€|Ê?ê_ß?±É=¨æÂ>;ü?ÖVr?Ѩ?¾N?¿öû?òÛÈ?óð¢?éi¾?éTÆ@%W@`ã?ýb¢?Ʋ(?Э?ÖYá?Ø t? »L?£;?B^5?)±?ÕÇ@;-?ÆÝ?d·Ó?_æ/?[k?GJ? +;x?· ?ƒÅl?†! ?Ióè?8ã…?q×3?ü-?»Ln?ÖØ,?Ây?­,o?™rz>æ½Â>æ÷4?Çú?Ïí€?°ý?ª?­?‡A»?sô…?¶«=ÄâL>äÌ2?–%å?‹›k?TxÆ?c¯??Ù‚A?׋? äy?;þ?±xj?ÎSÚ?¹÷>?š??–¨¥?|?vAÕ?ùh?i¹?˜±õ?«|{?Ò?å?» |?˜…R?f…?G?í?L'x?ƒ/W?{Šë?÷/„@™t?Ð!·?¸yr?ÏjØ?ä½?Ž‹Y=ÅMî>Ðíß?ÐYl?Ù«?ãrâ?å\@7R@dN?õtJ?ïê‡?²v¼?d–Ã?–ÏG?ä—–?Ó³?d{C?pò?OœË?_£Q?f­??d¥þ?ž ¶?Ä< ?Ð ?Ü ?©K›=äÄ‹>­5?ŠŽ’?“¤ª?Ôù?”»*?ˆµ?z`Ô?O_$?&ü–?C`?th?NÁè>öxc>ô@ç?Ó +~?ÙhX?ÝYÀ?äÄÖ?‹ïÌ?R??YÇî?e¯×?&–l>žÎI>¹â§?ÍQ?Ó?w?ˆÎY?G³?5ÿ?ƒóÖ?‡FÎ?*XM>ó½‘>Yr<6RP? á?­I?¨;@?¡k? +þ?û×?' =>o׆>‚ÐG>Ûs>èW?H~?hC`?›_;?²30?5ñ†<—e°>¾º ?i‰?5§*=ýë>0¬T>Œ{á>wïx>v‚>>Šr8>™³õ>© 1>bÔµ> +Ô +<Ðã›>—˜G>ü™p?_?Ã?Œ=Á?,¥> øÔ>ôvS?.…o?½«>7pr>ÝñÐ?À‚?·çÃ? +|>âêØ9¤å?€ª?n¹ >üÀ¥>>‘"$>•G>㫦>ð}Ï=ÉŸì>‚¢>§ãŠ>ü0ó?´.>ââÏ>¾#U>Õúá>ô&*>'Zq<–Ò?߈˜?Ï‘?⤷?àÓ'?0Úõ?(çl?!ø?Õ?I>ÛÂÂ;òóç>Ì®l?¿é{?‰Ûí>vq?Rég?/>™"?2¾?¾óè?—#„?'ô„>À¿â?@E?•<§?šœ<š\»=:"??s?ýà?‰ºS?‚~¿?œVÉ?½}£?f» >¯E`?~þñ?×Ê)?t¾‰=õë’? ùi?x}Y?“P}?¥ªÒ?¡MH?Ÿp¤?Aë‹>¥{?3s?ƒ™¾?\A?Dö©?|ut?’l*?†m?{¹}?ÿþ=\jG?{_à?ù¦m?º!ˆ?ƒgÏ?p=s?Jy@?nhs?ܬ?‘]p?‰\,?B>ûºõ>èêþ>¿b?P3? …?u.ã?(Ìo?g–`?ŽŽÙ?¿uI?ö’â?³4Ò?lJA?|=åÝX>Ÿ&g>ü'Q>r?Ư?—6?†~?|gŸ?*Xv>ºtÓ?"ê¨}>üåã?4ë?`²‡?=cO?'rS>Õ+f>U¹e>ùsO?EÒ!>üߊ>A;x?ó?}–ß?%¦&>Ζ?6‘J?rœ§?{Æ?}˜÷?4>ã? +jK?“q?¹Y?” ?šó/?‡C?m¸v?C¬)?;~u?ÏE?¬%+?F¶v>þéé?&?@öÛ?€o?‰"“?uÐ?W?€ ¸?„%ü?à(5?ðÈ$?êæ ?å ?›Zß?†*?Á4?@?Dü(?Aù™?÷7í@B?`ÏÉ?Uý(?€ +1?§¿>–q>t¡¾? ;?Ýé?)·? ¥¥?¼Ñ|?´1;?”4ž?…ìÝ>º¥ ?#B¼?¬Jù?£Ð?¦4??Bw0?M?g?Z4?0Õ§?oÙb?¤\ ?¥`?¦ÁŒ?r»?=Ú>vù= ×D?&õ/?z/?[‹?4:?VS ?^v}?XðÀ?Sk-@ºZ@Ja?_ƒ>îÝ–>üÃ?¾§?(a ?'tC@"Ô"@(ò“?¹F¼?¸7?y±ç?g;â6K>¢C›?ôó¬?ã0?¸©s?ŽäÈ>;u?,-?—› ?·Ý¯?éÁt?°†×?D=ñ?"qo?bC?aïû?˜¨+?±»?ùu?º¼È?¸@‘?†Í?lLK>y/ ;îƒÈ?¡¢“?Ä;?¾W«?»Ü?¦W?­™^?‚ÙH?ˆ‘ ?Úl*?Ö£è?¨Ö‰?ŸnÓ?‚ç`?™èÀ?ÕŽ'?¾š?™NX?¡&?³h?žò#?ƒZ?¤»t?Ä¥Ò? ái?„ºí?3Ö?¼/?ÙC?Fò?¡^µ?·­v?µ ¢?²˜e?ÅçÞ?ÀX?U´Ð?L[ø?AuÈ?>åa>ì<»?œ?ƒe_?E1J?1Ìî@¼Ô?áy¡?t<Ï?Hó? $0?§ùå@6L?SD%?gâ?§Í?qS?Jñ+?دo?ó,J?/t?b?®ý\?ªqU>š>–›[?¨]? é{?2Õˆ?‰u@\=?öÆ'?ƒ²Ú?%€Ñ>þSg?‹ÅG?I’?Þ>qF!=¤^L>Ôá3?·Ÿ>â»>m ?²¯ð?ÙIÙ?ÛµX?Þ°? ‹Â?’‡…?ˆñ?sªk?Ã,?#Õ;?V9Z?[8?Sp ?{ªD?±Bò?¥’º?˜Ÿ?zßg?1=Z>¯¥~<¸ùÃ?kô†?Ïw+@ÛÒ@Õm?“®Å?OÁ5>‰ª> +ÉÙ?…ï³?™Îr?…d¬?ƒ?‘ ô?¡:3?ºÛ?±i¼?ƒÃj?¸ú@Bµ°@/|6?ââ¼?¬/r?½ +?ƒBä?×ÅZ@Qn@ê?Žœ;¾Ø=?(Ms?ƒ²A>Ö¥M>R³ñ>D•Æ>UkD?ãìÓ@ÊF?¸¡?¯ n?„±á?‰^@Lk?ùû?@^^?4Ý–?:­‹?6(î?1¦U?*Œƒ?V +?³Þ!@4´ì?æZŠ?§½?hƒ?—èª@ qï@Dƒß@±Ž@Ì?ÿ¹¢?ÿ ?Žr×?epÅ?·ƒ®?Å?"²?Z¸?½‰?Ä?ˆ?:Ö‰?WùO@»`?ãûÖ>‘ô¸?f2@aWž@6Ù‘?"ü ?À8@û?ÍÛ¤?1®Ã?@`?KâM?­?Áµ?z¶??ü£þ@76•?y==šoÚ?ÂQ;@ƃ@Rè@„?å'?Ý04@BN@[?Áß„?Á?F8æ?Aed?Œ|Ô?˜xF?Χ»?¨Ii>6Ü>ûÑ?ñT?¼¨á>¬ô?íG?‰¥?ד?Æn?Þ+#@³ƒ@6}@# …@ +Ö†?ë§d?Ùl?Ë?‰óß?LÊ?ÁRÅ?ë-?ÞA?Þ%F?À†µ?ªx?`~Æ?Hw?¹Í?пõ?±V¾?­‡·?†8?ýw?fú¿?i„µ?Òs?ƒq?ÂË£?»d?ƒf?1Ü? =±?UY[?þOŠ?úÙ—?ðÙA?Ó~§?h—?|Ç•?Ÿa!?¾bÉ@ Hò@ë®?Ï|ì?ë°? ›z?¤×@$¼¶@';~@'7Á@öQ?èÈf@tÓ@/Aª@UÝ°@ @È?*?‹ãi?»Aˆ? W»?‡3;?ÐK?ýñ?¬J¤?€Ä”?w ÊZ >ìÆ­?Fq?>Š?–XŽ?Ô‡€?çn?‚ªÔ?Dð.?ÄpØ?æ\@µI@~â?¸-l?˜„k@1Ô@ùï@Ò@ ?ƒc?;Í¢>€™º>£M?k[?·.?¸ªÙ?¿•‘@†Ë@7 ?äax?æ_@ eÎ@jK@Sdµ@R“?øD?èýV@ï@`Ã?±Ñ«?¥Gi?EÁÇ?J?áW?ð²@ Ó3@ +Ø;@Êõ@¾@ U}@°À?¬àV?œ>?Ȭ1?Éup?ˆ¶¸?€G•?ð4L?üà?Kç?7«@ }@õ×?ÂÙM?¯‹’@-Ï™@= ƒ?ƒ€Æ?)_D?ÊŒV?â&º?Ða?ÃñØ@œ‡@XÚ@úV½?ýÆð@;˜ø@b'?ü>ç?y>IÉÌ?¬1Õ@Ñ@*¼Ê@=“<@S³?Í,u?¾€?©s@‰@L…2@21p?ú ·?íp½?Ö?åÑ%@8†@ÞJ@ˆ=@8m@*#L@,pD@5º|@7u?Ȫ–?ÄEÃ?²Fƒ?¶9©=“‰šÞà¯>ö?Ò‡–?ìi@?2ÐQ>¾"í?Kš*?u÷œ@À@@ðÂ@H`@×?ÿÓ]?ô`?ÙÄ@?·×•?ЃF?ôãp?íÜ?áÚm?ÙM?µ"3?¥·T?„½Ý?€¬Ú?gê?a4e?²Î?¼·Ú?èÏ?ìÝ?„Z/?j]¬@*»{@Tu»@ )@Y?ò¸Z?åc?Ñ7â?µœ0@¦Ü@U\A@+îS?q´ø?|Sô? A?2?8Y?0 +>Ž 2>g¹é?ðâ?¤5¥?äb?ñ±—?ð\É?ðAÂ?ÌÅi?´ÿ?S£¢>ê?é?†©e?ˆ¹`?ŠÇÎ?¢º¼@í@ k?îì¦?îÏi?™ß_?÷?¬ ÷?²Ç¸?ØÂ\?Ý ?ó]@ Å?Þ‹û?¡ª:?‚´>í‚ö?C…?m¨g?„ÛÝ@ +˜„@ ?­Ã÷?§-?ÎBK?ÝÄ?wl³?…%?bé?¤¢?°J3?åë)?沓?Ýò?Úà¼?“eb?œe£?Hç%?L¤`?ÂT)?Õv ?‹}Á?@]^?À>øK2?žt@œÓ?àBf>ÐÝ?@—?êµ?éé¬?°Þû?¯MI?Á/Î?Î@–?ÌÃÍ?Éÿ'?ù.Õ@.Ü?çÎo?L••?i,p?¿ðo?»e/?€ï…?} 7?ÆdV?×ÙÚ?–Oý?kj‡?)¥õ>óaû?N©š?¦Lý?¡7?•Q?ŒA$?1ÿ?øã?/»?•Þ?&ÔË>ç6—?Cÿ?ä?À,´?jdm?dÆéTX?4¦?±w6?‘×'?eŸ?G÷÷?1†?*HÝ?ˆ2Ò?Šç?â™ ?äØ?Ĉ?Æ«'?ºIš?³Í ?|Ó>¹¡s>á /?xª??«Rr?­¿@Mþ$@Y²È?ÿ{ø?¸jÈ?¿©Ô?¿=9?°¾?£+¥?›l¹?(+?"Uç?)x†?i¸?€ì˜?Šëy>óW=ËúÊ=2Ÿ°;œD>‚ö0?U‚6?bf$?Ñ)?Ë&>¨œŠ>—¸˜?”?«»­?Îj?ßÃE?Õi?Ñ]H?Ô‡{?ׯ?аÉ?eRR?e\©>ûð>ìÝO?ãq"@Q?Çr3?Ÿ P?^~`>åÚK?RŒÐ?Ð’j?¹Ù?Dè4?*q +?½â=?»lª?Ã"Ö?ÎÀ?ÅO?f»Ç?’ˆ?¢Ó?¢ë?­TÔpô>¸8Ë>ß+>è©?KN=?hUÂ?·UÛ?å}±?Š>Ûë>—|Í>,†>°ƒl? ¢? ab>é·K>ã¸A>Iÿ‹>+Ò-?Ý€>Þ®?Tšµ?jÎ >f‹ú?#?]Ã!?p?ï?„®*?XÒ^?IF?³j?/Ù?¥ß>›Ï>ìi£??šì?5½8?mÐ`?nÎ?gs?OÃÇ>Æj”>²¡4>Þß?öä?:]½?0ä>Î%­>žü>ᯄ>ðŲ=ó°<”¸ü7G&=Ò >-é¡?²?7¡{?˜ ôŒ®>Uþ=Dµ²?Îð²?Ðvœ?Dkg?E •?&£?B9?€~î?|l?r ?YÅ>þSR?eðö?øøõ?¨ÂY>Ñrø?“_î?| =?Cߤ?Y¡³?‰ˆ5?moð?1bÐ>ØJZ?—Õ@1ù@Ý»?vŠ?7{?¢Û¼?MÝË>»ñµ?"­?\™ç?F¡ê?8<~?M¯ü?cü?!<}>‘jÎ>¿ˆ>üfS?v-:?µ7œ?ÝŒ ?øXÛ?s’ >V/?‘ƒØ?ìG?¤L?N@g?Z ¿?töU?9Æõ>ûÒú?=t?‚ƒ!?wº?b?%€W>ä=>k@å¡ž? 0G?ì?§”?Oág?{¸ù?Š…c?˜ªc?w—U?8Ú±?#M +? döÄ>‚Ä>ü3û? +ul? +ËÐ?f?ÃÑD?|r‘?§„>w¹ä>ÎE(?‰P?¿Væ@Ï?“8h<Ùj=êº?œ2³@ff?Ê_¯?’ö?SBÊ?a?J,?jýE?_G?[j’?jÜS?}¡ï>ð8=¬ÚW>·(ß?<?L ß?~€?Æšå?ê,7?uÔŠ>þG‹>Öá«>â‘°?:Ñs?c'ë?"Sh>þ°º?’}?ª•?We0?(¦Q>‰¬[=ég?“œ5?¿nT?ðW?aÅ?²n)?½:‘?G¢Š?1ô—?ºÆ?Î&ç?!ú>ò1?!Ÿ?šÞ?v-?€µ@îN@lñ? OÛ?eè?‘¤x?ãå?´î’?³ºò?u<÷?Š%n@m\?Ü(=꾧>x‰ê?ù?8nÔ?ÍL?*ü?­$·?¡Z?pƒ??~¤T?|6]?DqÆ>É!R>²o¡>›Æ…>×?Âú>ÉÖV>ÄÌ>£Üm?U•?H{?y•ã? º]?º3?X‚‹?rŸ?ôê?'ª¬?-IE?2ãu?©±ù?Ó’á?s¢ý?ID°? ?ÂI?jò?“ÝÛ@P­@"¸?p2J?p°ó?÷z?)¦m?Á^?²W?ºˆ?„¶×?/:Ó?_?þ?Ø4ë?Ç…f?¹eé?””÷?D@?ÔT>™a†?bš?®+Ç?¥ŠJ?£og?—®r?^%>ÜÌŠ>û›>çƒK?Mm?tb?‡X?¾•$?ÄÄ?¸>W?°Ô>ŒûP>Ê:t?™¹ÿ?–JÑ?sxØ?Ž–B?ò?Ô%@Øæ@ ~@»N?ãÀ?´o?  ?Ž[W?4°?²T*?¿¤¾?Ä·Ú?Z¾Œ?-?YÒé?u 7?µj|?Äß?šX©?–9Ò@'˜@ê›?ƒÈO?}÷ª?[?%õè?½2š?¨BO?WÃ?MÅf?un?[Š€?º‰‹?•¤h?Ilm?^aï?ƒ½>ïãë<¿ @? èN?pb)?«ø%?Å^)?ˆ›>zQá@‡Æ@6Ö?€ío?T!å?“éo?™AÏ>ƒgX>˨û?Í]?Èy7?ßÄÌ?åC4@2È?ìt?Rƒ?+­>¤«?}õ@u?¿òž?‚ã >Ë_‹?¡ŠY?çö?@‹%>Êm?ƒrq?—ö?Á ¿?ű+?º¼'?¼–¦?€¾¦?‰`Ø?gyó?O”B?4"¿?F8??‹‚Á?Lj@q}@iÿ?óÑè@ †@˜@e?ŲÛ?n¼é?Üx?Ïk«@ ™?m=Ô?п?‡v$?/P?¬óÞ?¯0–>Ùü–>ÞEP?’_?B?ªÊs?²ÝW?žá?–³ì?ƒÇ?o”?@)Š?Ea“?8­‡?º¯ƒ@g?ÜÚr?ƒ½ùÂt>âr1>ÙPÎ>Ð2Â?¡iÒ?º¹Ù?c;_?_-F>ËCÉ?&@gE?ð]#?M$H?L‹?È$?0‰ú?YøÍ?™óº?õ J@7<@l"@:ÛJ?b{P?÷Ô$@;èª@|@ñ|?Cé:=óÓ˜?YÓº?“ô%?[Ë?mzã?EéÑ?GÖ…?Ã:U?Æ+Í?›ãU?œ.ï?Nj‚?j>H@Fv@ qJ?e×™?ˆ"?ÿY@ƾ@/ü?îÈ?`¹P?ˆ–ú?¹ˆE@3?@3ˆ>?õ™p?€•f?Ì£ù@ö@ú@&¬\?’c >ÝÄh?‰ÞŽ?®r@Zö@#­§?v?0áp@-@%Ã?‹G†?‚M‘?F4‰?^9?åù‡?îë`@M§í@0PÒ>¹ä–?j_¼@5cÛ@%²˜?ðŠH?ä©K?Ãá6?×??ýŸÅ?͹?†qþ?ŒÍú?• |?Íó?úm}?øD?ö ¢?†dý?TÊ?í@"Û?±qª?o‚?§À ?¾¯®?kzŒ?=%ù?wýd?‚æ?[ s?YØñ?µ›H?´Ü£?%þà?§Q?n_3?z.Å?É[Ó?Ëiè?ü~Ñ@µ@@MÛ@d÷@°ø@«@x@ a×?þ€…?ÂV?ºÔŠ?­~E?¿M†?ÜC?»Æ?d@?›j?Áÿû?êsœ@f?áÅ?™5š?¿ãz?ðC¹´®?åÐn@å»?Ùzõ?ÙÇ¥?¼Éa?ºVN?¼L.?¾Bž?…Ì„?Øæ?)?0¼®?„øº?‰¾|?¼ +?äpÛ?Ïxˆ@ Ž@åY@\ç@S¥?jŸÂ>‰Û->Ü»e?dÂ@’ª@:­Q?âv?‚·®>å·Ù@|À@Žcö@SúÍ@˜?áž?z?ˆW¡?y`?Ÿ o?ßý?â®/?Ø÷w?­Ì?‹Š?§ˆê?áR?Ì'?wû¡?‹¯:?Ù¤*?Î>ƒ?=ä¨?N;ž@ ¬7@ œ>ë”>óy,@¬‘@ô,?¸êõ?«×??¾¸?Ãoò?~ˆæ?Xä>Ð0ê>•¸ü?¨º9?ì¼/?š£?Vw?½¸Í?ô÷+?âÔž?Ò= +?Á™?²&M?·»x?·ª?Ùåü@M@2 ?Ë ÿ?¶Ïè?ÝN?ÎËÍ=™w?ï7%@Jt?‚’~? +%œ?‹ ¨?´_?¾Äc?Áþ”?Ÿ®?o¢p?Ì÷j@G|Á@2ßé?ï2…?êYo?°j"?´ž#?ï ?gj?…¤P?‰åô@v4@Eê†@•?¦¶X?¯8?#h¸?ïò??0nˆ?±}£?¶ +è?ñé\?ó÷ž?³ˆü?±šŒ?‹ ‰?†Š?]ò?DÛ?—ë?»¨?¶ŠÁ?²W?›s?\ Ï??@5>¨Se>ŸR?Xç‚?KLo?{*i?~@ ‘,@E¨@18?¯ü?°¼Ñ?µã?³š? æŽ?™_z?Œù)?‘@ª?7w«?@Eb?±Ä‘?º°ß?šºP?Äå?…–Œ?‚ј?9g?™á«?±]£?ùQ?ñþ}?®ƒÐ?®q?p>ùâÜ?ÀÒ¬?è¶|?ÃÂ?¦•?‘æÕ?yzS?•Ò¥?Ú*Y?λR?BÍš?=á¸?å3\?íá_?¿Qù?¦ê ? u?“0ê?E¿->‹W,>Ä©?fÍ.?z”ê@!ÃM@%xæ@@Oò@Hæ?Ê({?mÚ–?y×?„³?¡:Ý?Ê^(?¾VV?™ˆ3?–í>?¢d¿?¨!·?«²u?¦-²?™œü?‹Eí?R[­?@×?UZ¡?ÑcY?Êb˜?Ç>þg@8¨@C6–?ä°ÿ?«Ø•?f? m¿?_å?¯K?—e–? ò?' ?äP†?äÛp?‘3Ä?l/?/é)?ëÎ>ë¹Ï>“`Æ?2¼?á Ê?ÙÓ~?e×?k°?”3?§¶H?Y +»?,±?»‚I@¹Q?é÷?°m‚? >?d¤'?eC?½Ë¹?îÎ?É–E?Ï¢?_‰?[hÚ?/Ì>ä "?2Èþ?¦ý?«±þ?äÖl?äã—@ ‚ü?ÿ2—?Ÿu™?mË?¥t[?½Ê6?ŸêL?l?X?ô?ˆý+?Žn`?eYî?ef?©jÁ?§¥?܆m?î_ ?ÅU?¬Oû?¬ˆ?¤¬?±³¸?å+R?ê´$?æ/'?åÒ ?ÖdS?ÙÓ¯?=²? +¾Ð?DÀi?fqZ>ÖÂm>—>Á’?%ͯ?"¡>œC>¸Á>Ô/¶>ôJ¿?7?>NØ?'?vÒ?4šZ?Ncn?cµ?h·s?ËÚn@œ?–W…>5›L?é-?BÐ?•t?ƒ­y>êE>êK\?¹‚Í?ÈN=?fÅo?\ ï>H&è=„tp>vº?"Wx?l7?E ?(à@?JÈà?lÊ?5,>Nê? +¥?ǪF?Á?n?[(?ê?ªŸ>îæ1>â4¹;„,?3.§?<¸Ï? ?,~>üsÒ>ñ”>ä_>ðj×=‡Ãd>à ¸>óÄÔ?˜û£?¿‘?# >Ô0=¾Ñ­>&4ô>_U=@0æz@ë ?výˆ?Qö¾>­I¼>¿o?I~¾?F¯û? ~N>Á’I;·D[?J/Á@Ø ?Ûå >ÀíÍ?%òþ?–»§?Ü?<¹m?>ïÀè> ¦>Á¶>VC +>C2>ÿB?}>?¡Ð>tÆ2>ÏX°>ý*ã>¥1>EN°=Î Ø>½ ühÓ?Ÿ?êc>ÿÇ"?Q? ý*?Óò ?møñ?l?S»Ç?{ø?4ŒI>ûäa>»ã¿>–üÙ>§ó>’Ï>£Ô¨>͹ã>‘Ul=âÀ?‡?wx>ÜÄù=wïŒ=±Ü’=ç¬D? +£?{Ã×?{Çù?{È)?6Ë? +½>ó+[>®^>»Tº>¶J$? ˆ?1œM>”[?³ +?|t>öÿ¨=Ÿ€®=9'>åS‘?NZ?d·é?|Q«?|\J?|g²?|qy?|}?i¿ì?_¤€?f¶?lw"?€–T?æýÐÞ?>j¡?o:>¶=<À =úyð>tx>Þ=Å>þS>ÐFÄ>¯¥>âÍÉ>þ—ë?`ì,?~á?µ•Ð?×ìä?˧?ºw'?Ãà>È}?˜¤?·È?‡º2?{þi?ÂÀ? Å?d5?m*¹?‰1?!>â·>«‚5?'öõ?6 y?ž?ŸHê@‡?@0þ?‘Õ?)?¯éw?¯þà?€cr?vÃm? +X‹?3]@½?Ù¾ö=À)A?ª·>ðô>Ïoe?aÅ?€Îà?„N€?‡ÇÞ?ÐÜ?…p¤?‡Ü?K? ?ö??$¤?,¾?6[?ƒWº?ƒ-?¥Â‹?¾í¸?(ûÝ>P¡Q>sÞ=ä©x?j^J?šˆ"?k#â?PEÂ?WÙE?JÜ7?“¾R?•¸U??Ú’?åù ??>(ÿ?¼ã?œbŒ?&²>¶„¹?Wq5@aþ?æù??‚PÂ?g¥Ü?AYP>ðË>QØ?Õ2?[]?Qõe?@LÈ?£Ã?Ã×¢?Ãâc?Ãê,?¿Fê?ÃL?Šäv?‚´?(ö¿?,[£?Ã9*? T?FÝ?õ?Öß?±|L>f¡„?ìm?æyY?Þ½?Äw½?ỹ@ ª@·@?ùb?Ä¢µ?GíÕ>?–?y©¢x@-o9@&ý?Øq?z}á?:¥m??§m?Á?r'»?ŽÙÙ?aû?FR¾?­”Þ?Ã2Ã?°kV?«V9?O¬p?Ms?‚l©?”¡o@y¶@"¤@/è@ûQ> %>!0+>Jþ1?ð>?›/î?¥±š?¼ÎÚ?uå ?†¾?ؾ>>©@ˆ>±:?7æ?¥ê¼?@÷d?-7K?\³?iÝ?ô• ?å0?Ó½?&Ö?ë9…?Ø–­?ƒÔ%?bt7>âÕ +?k½?ùƒî?ÎÛ?A‰?­óŠ?Ï#Ë?Éca?Æ  ?ÂÛ³?½?ð?ÉB?•¾c?©ßp?ªv?Z?M#C?$¯? ü"?ñ;û?Ýúš??Éê?]àœ?»¡Ž?½J=?úù?Ò€A?[”„?


У÷?=€k?¬ °?º ?Ũ±?¥4X?‡WN?­yC?Å¡?–[?}6Ñ?þ¾@Ee>ýQ=ãñ”?kw˜?ƒ´?_²?Vè> ù.>äRj@uI?æH²>yŒu>gx >Us>«z?/øo?xùj?Åaœ?€‰©>S1›=½G)?ñä?~Š?7,Í?ù™?Á:?ö ½?öíØ?õ•Î?\3?§ ?Ɔ?ÒAÚ?‚”?ƒ…Í?ƒé\?ƒ]\?ƒ[à?Žs?幡?é{Ü@L{?è-ê?ƒE‡?½ „@'…¥@"´B@g?Úä?p¹h?N¤d?\?Wk? ¤û?µaÉ@;?’—?46>?šÇ…?¯?IõË? \?òIª@ u>ÝôÞ>;?…„?”uÖ@ö«@î}?Þè?Ø|è@ÄÏ@o@ °i?îÓ‰>“ñï?0Ë£@¯š?ØR?]eÊ?‘ ¨?É -?~Å=m”>m¢B???/S?½ #@Å¡@¥ƒ?¾Ÿ´?\ˆ=?'1T?XÒ?ò˹@"á]?ÁËz?Œ*®?‡ò·?ƒº¦?ç© ?ö ?‘V?‚ô?ayU?U£?ñÇÔ@e?„Kâ?€2è?ðŒ?ê˜?÷|h?èIw? Õ?aß@Aΰ@@»8@?¥Ç@19@®¬?ù7?ÞÅ?®àb>ÛT6?›h|@*°@Å|?›óà?’© ?h@?ªˆÝ?àÄ?æN?õ¢û@*F@!‹b@®?Óeù?#0?g ü?Fe>—2<@ +ï@\\$@áº?Æ‚H@ +o-@¯@ †c@?ЋY?¶’\?³×U?»†?ª÷?¥Þž@ z9@$xd?¡µ‘?k_…?­Ž™?½î?ô¸?û:f?Ðê4?Íåö@~a@+6ä?½Ë>‰’?b’?Yâ>–/˜>Z~–?mAÔô>ÊKË?ëñ?ôŸÊ?ý?ýH?…\˜?}M?¼Ø½?È¢«?¾ã?½‘h@)¢@-Tï@5Ê$@5ñQ?¦­´?×M?¤éó?«x?„ù´?{ߣ?P!>õ ?0ˆd?6)û?±`À?ÊüC@Zí @{%N?óà½?»e@&9@IG›@´å@ i=?«pà?zi#?«­Ü?½&È?á>C?ó+?¥+ð?\Æ?Û7­@#5@‰¾?ùlõ?¼n¸?y8Ÿ?Ø"Å@@b?ÞPâ?Aå«?lª?›×?Œ€?U\?‰ÜÀ?çQž?Ï:Ñ?Žˆø?’Ú1?§Pñ?·'¦@Ø@Š¶>÷iŒ>놦:‘‘N?ºoÙ?¿{V@G#ö@Io?hã?(Dê?j?vBï?@©)?(“>×ÝÂ>»]ì?g‚?µà?¨[ïíy>ï¦9=ië =×ÿÝ?˸?Ù&?ÅÖ€?Ã;?ÅñK?À9–?ëˆ?@ «?ÒÄ?«Œ?§•?šN±?ˆ÷0?qý²?zæÂ?€÷ƒ?ˆf?¹¬x?­³§>ñVt>éxá=£á=Gñ?Øš?Î? Ë;>õ  ?“Pð?¬ B?°<7?´?Ÿ<(?ˆæ?›lˆ?£8˜?ʸ–@-Ô@!Š@_Ë@‘M?oU?nã6?-më?'6d?Ha8?E™_?ƒl²?”3÷åÎ>ï(‰>6'Û>€Õ}?≋?à9?ѳY?ËBþ@-p4@@'W?öF?©!·?¼­?Îðo?é·@ á?é$?CwÅ?RZ9?ÌLR?г$?³³é?°L÷?ÎÅæ?Þ>š?Ä@ ?°'ÿ?•q?r: ?Œj[?¯·?­­>?¢È?¢ˆ-?Ýíî?Ô–·?†z}?„?‘„“?‘ê—?Ý>D>óIÉ?i?“Ef?õפ?ô°ª?¤-s?¦|Ç?‚jž?uaÄ@>æW@g:Í@€?®¶?}ƒl?ån?–óÁ@4¦Ã@&¤ ?š Ò?—¥ ?š­ò?¥]U?ð…ç@î@ž£@Œ?ù U?¤½?3¡?Pg ?^'‘?¦Éÿ?©@š?w€è?i»û?kE?f_m?Žeê?¢“?™*K?‘j(?ƒ„>óRÃ? +…?%¼?*Ù;?i#ù?„|è?ÐÞt?øÐ?Â÷Ã?€ ?uŸZ?ej_?}=‰?Þ°Ÿ?ãÇl?ªa?3›?Kÿ?Æ >¢ C=Þ§æ?û%?™ Ë?˜?tzN?tJ¸@(€„@#õ?à­D?Ò%?žP?A?›Šº?ÆÓ?ÂßA?§gÄ?«X²?©~Ò?¦©·?ÑÓÈ?Ï¥v?¿Ä?³ü´?¬·¹?´5?¦¨°?Œf?“?‰ìŸ?…&?A0?Gæ?Ž¡4?ŒþÌ?3U->ü%–?¬o@ Nß?Ý'`?s‚ñ?|î??=ž?“Zq@Y±@X?–Àà?eV?|?xjr?É>€ˆC>|o=óû¨?^} ?dY?á¹\?áL›?äd??å©,?‡ƒ§?7–¤?Yœ^?€¤w?m¤—?5ìP?_¨Þ?¨z4?²€D?¬È£?¬ÙÜ?¬ì–?¬ú?>³Ä<‚xÀ?C‹ +?•ìb?N >ç8?‚ð?½ï>íÀ_>i£<>qœß?L‘?>qŽÒ”=ˆÕ?˜?h›?šc(?¾ð>?]ùâ>zÛA?;ÀØ?Wq(?±ðQ?®1?È? Ð>ê’ç>ê¼@=.«ó>¼Í>Û.º? 2H?¼P?_ÜV?â~?1\ª?4«Y?2]A?>¦$?dež?…¹š?;Àe=Ú_7>Š±?n=v?l·»?`YÛ?t^„?ÀEA?ª|?ß>òJL>ƒf·>”e-:¯Bâ?bd?Ž=Y•;è…€?J•?L ¼=¦3?Ø ?)­? l?^=©c? ±ó>†øê@'€‡@"=N?¤ïÊ?›Ýù?XMP?)Ó|>zqÆ?l©Œ?Sz7>ù½H? :È?I‚Y?>œv>ÿg?2æH?a?f‹??0å??(~?M½÷?`Ò>m?;Úx?´û÷?ðò$@Nÿ?Ú2?}Œk?Í»@P?p¦+>§ò?!è?`¿%?%„>ñõi>Õ8ð>¸”>Ðe>mÊÎ>ÙÈ?=<Ò?xÀÍ?28î>ü7?-¿?@öm?xï>³•î>¬Ì>Èmß>ð[õ>ûëA>ç— >Á +‹?ŒÛ?YM)>ÖßÞ=§Ö?dv?¼Ùé?—ùÿ?{Ë ?+Wc>Ø}_?Þ§?=–…?\îU?{ËÈ?{Ñ(?{Ó_?S©-?$;0?;?(åz?’ZX?¼ò?Úä?ôh?Yêk< 1.>’ý?¥>s¦O>ÚAª?62Â?Yk?|JP?T2d?; ý?A„T?Gû^?Nk‡?TÜ ?]C‹?OÒ?mù>üµ ?¤¦&?ù[?±@?šô?‡:¿?²æJ?Ìn?ÚÍX?®ß"? +Â?ˆÒä?‚›‰?’a^?¢±ˆ?´¯÷?¾4m?–z‰?}¹¨?.Ñ>Ú[ø>Wì=.Io?'Þý?tDƒ?hÛ?[ç>¥Fi=ë?#)J?Tê?Né?HåE?¥ï€?¿G??¾C>þëH?ò_ß@ d?==Ëð ?AÙg?qÉ'?vO>ÿvù?©w/?·8°?†*?Á­?%>W? *œ>CnI>0,Å>÷Vt?«?wX?ƒ²ý?‰˜à?öÀ?Dñ?ÅŒ?Aç¤?UþP?”,Ê?‹–ë?pš ?™íæ@ :J@ b?f»§?H¿P?°>ñüï>¸÷?O-Ç?úm ?¿r?1¤e?A G?;F)?|ÜÛƒ?/øq?F´?Fcé?T@?z¸|?›Ô?xH÷?€q¸?ØSÊ?çõ‹?¡¥®?—ÎÅ?Ó?Ò0L?8û°?1Ðò?sLý?mƒí? O:?µu?€,µ?Œ£?Ã+1?®êˆ?jÊ?z¸??Œ»"?‹Ëù?Ÿ™‡?nÓ(>è%Î?_€?¡(/?Š=?h¤?B‡?*¢å?†zg?¦P?Åv?ÍJ3?ÔÊ°?ÐAƒ>|_ÉH‘>o+?9{«?]Ï$? J?P›?¿dû?¸;±?•7¼?¢¢?ÄÁ&?¼†‰?Å 8?¯D?Y—w?wV +?•e?Íe@Ê?è½µ?‹|?=uÿê?j?Á£P?X…?–ù?‰8?F…? @?%; ?zÿ3?ƒ¦Ò?fe?nT¹?> \?GÓŽ?†?Šüs?èÚ?¨´¢?ñ‡2?Ö-£?†`?Cg?ƒÀ+?Ҥ@$?—åÇ<šÁ?Z—?áÞ?/¡b?Î&?µ K?ÙE½?È&t?ź}?(-§?Ò²@¡@Må@$´ @ D?¤Œ¤?¢çÄ?©Õ©?£S¡?ƒØ¾?¢çQ?êšÆ?à4Ð?Ósä?Âùô?³ë‘?û&å@ œ‡@ÿ[@œU@;@ Z?¸–?ƒÚð?=Ë?‘úê?G?Ø?«u·?©sõ?êh?è(‰?×?1œÕ?ñgG?õY?àÔq?Îz?‚“8?ˆµ²?£Ö?ƒ?v?ŒY?Ík“?ÈO=?Å©˜@ ‡Ñ@#´±?¾dú?ƒÂ?ÂW™?ÙáW?#^ +>̹æ?¾Â?*.ƒ?.µw?5s?SU5?të@óÍ@qa?A6^?dÀ?ªß ?§aQ?¯(U?Éâ{?ù;y?Âï?ƒ–t?QÙ>ú>¸æ? @¨?WΦ?ƒ$??6S'?e²?‚·—?•§–?×)À?Þ`õ?yÕÛ?o½>PàÅ>F¤?þÔ^?ìð3?=G~?Q͈?¥³–?²ã?ÎÃù?ÅRV?š×M?Ÿýl?±¹¸?÷+¶@6 Ê?ò`ÿ??†|7?ÄÄ‘?¾õ~?¿}?įÏ?ÆâV?]C?Q?n£¾?æ¼?%‹¨?m@ Ì@0ýÀ?h’/?&ͤ>c£µ>h@2Lâ@/ë¥?íÐ?èGò?8$P?]Ú}?ÚŽN?½ŸK?=-?¦¨@´£?ıw>¿íÀ?fP«?úŠ,@ øÀ@"»?êÊ?‘G?Hy+?dP?zÈz?¤Â?=ö„?­¤‚?÷yô?ÐÖ/?ɺ·?ƃq?Ãh#?úÿÒ@› @Ec‘@Q£?»£?š¯?éŠÞ?ëÚÉ?wM?€ÎJ?K–ˆ?NÓÝ>Ü-Â?€¼?‡®Æ¿?µš?Í ?º¦P?² ?­øÀ?©ÝE?„ ?€"?€£?€?Ääñ?È©#?|à#?vá?‚-Z?€|ƒ?†±®?”ÅÅ?-Á5?7âš?YcÃ?n¹?¾U»?¿P?F 7?Kħ@­ž@±’?‹á?óÊ@8‚ó@=g?@;Ó@À?îÅ@?ôRÍ@TØ@ +OB?€Úé?}Î>s&C>Eæý?Ï/x?ÎÊÎ?ã%1?ëþÛ?„¶œ?~?»)•?½¸ ?†§Á?…žE?]Ê%?nœg@ S@%e@@@ÒÏ?Ö ?ͧ²@'d@*Bè?þ±>}Ñ?Ó-A?ìú?͘?{\²@;ï:@]¹@'êw@è¨?ð¿\?ã§"@1u1@L,O?æ·?ŽâØ@;Û¦@yo¼@ ?¿?iï2? æJ?(¤Ú?DÐ ?ëŒ@+Â?Ï/º?$­ƒ?›¶,?ô·Œ?Õjc?ž ?‚À?@Qá?…Ë×?Ä[0?Ûr­@*’@i@ål@¿£@ù:@'êÆ@ƒò@oØ(?G–? +ÞÕ=£50=*?õE•?ó%S?›¿ß?¢ˆê?¥ã?¡Ö?¨Ì.?¨ÇG?É +?ÎÚ?Æ^¨?ºÿ£?¼%Ù?½e!?¸¼Ï?¸ª?Ÿ\?‘ +?®•}?Ë$d?Ňà?·š}?˜˜K?-a?‘~û@!K§@B—?‚ëð?bš8;ZòÎ<¹‘N>ç>ÞÂÞ?zÀÌ?ƒÏ?…€?‡ ?Ü™?òïR?äá[?ÜõÓ?⡇?ádþ?Å?{?µ@ ?œÖP?r$?´ +)@?æx?ŠC?W(?/Gö?(\(?1E?$W?¬?±Ž1@Z'@nã? Oz? +ª’?YG?€ñË? #Þ>QÏÖ?‰„@u¯?é9¹?³žT?äÚ9@Dkö@1’¶?3àíl•?Âu?RÇê?M¡*?¼¾š?¾Þb?™Ìñ?™‘X@Ù÷@ǵ@"TÂ@Ø?ÒÚ?q¡ë 6>þ<>?knè?kQÒ?_Ø?™ _?7Ú!?ÀA?®q2?ê?ˆ?Ê}D?ªûÑ?«^B?¯¾Ë?¯«±è=² ?6@ Ön@Üþ?Fÿß?P¬(?tÓ?j΀?δ?çK®@Ó\@{\@Mº?äöˆ?Éu>?C$-?52Ö?f³Ð?f¥r@ ê“@ÿÃ?~ðD?¬³‰?fs#>ƒô>˜I>˜y>ˆØ+>åç|>åÖ†?@mÖ?7¦?h¤?ˆÀÁ?•^a?Ÿ¨¨?•Ç›?såt?kfZ?]¦ð?e[[?ÚĈ?×Nw?óú?Q)°?±¾>§™8?†7>@7©?àK4?Œ±&?•’I@A¥@ ñ?Â5å?«žµ?µO ?·MÀ?N“Ž>ûÊ>T+>çM¹?á?kÝ|?q~…@»æ@ß@¨:@©O?¿.?d¥—?g]^?ai??]}R?>¡?ƒc>ä®>ä®™?æõ@(þ?Ä´?©y?¬bX?±·?Ÿ D?dÖ%?dÙz?dߘ?eY=?ÀÍß%ó>ç´›?äß?哈?åÕ?屯?bBm>åÔé?:¾™?r* ?;5À>ɸ*>ß¹i?=o|?4ž?‰*ö?“VÄ?¦Ä}?«GE?€nI?ZϤ?ÒRç@ˆÌ?¤† >çF?Mí‹?·×?ž¥k?)ð®?0Þ¿?­ö´?®Ø?=³j?C[?l{?l˜/?œÀI?«œ–?¬K¡?®ÝP?†]?"5„? +œ>Êf}?L?6Æå?>{L?F9¹?LZÛ? +-­?‹Ü=Áx<êð=R$?Vmj?’êî?jÆÖ??h'? ÆU>ôV¯?¨¼?¹P?Uz1?™Vk?Œ ?]W¾?lR?ns?;Š¹>;“>¨¯?fÿ?i`k>×ú+>úÿ½>ÃÌ>–»<¬:^?® Â?²‘©<°m?Øò?Šj=”? >ï÷Ì?85?J÷w?6Ì®?Gtc=úrja£›?Áˆj?¯?KHC??pš?˜6>êä,>ŠPh>7®Ü=¶=¯<:q-<®±=Q• =¥¹H>ˆB>ÿY’>ÝÙl>˯²?åX?AAï? °ß>¡e>û÷?²%?A"€?m5 ?0ãÁ>ùKŒ?„‰I?¸ø0?UR¸>ù-|>ï&“>®Y¯?"un?j¦?z$½?|Ôà?@éu?$Òv>¸"S=íf>B²8>9É‹>Ì+.?A?>Qà³='ôà>¦óÒ>ü'>ˆä¬>®*>„FZ>“p³?O?9Úë?@ Æ?MÌP?6?UR?&–…?#jˆ?ŠŠò?·º‚?`žð?3?ÈÄÅ@ ›Ä?rÍ>„éž?(–?,‹%?^]?{ÛŒ?’ƒ?¢•Œ?;¨p>°O?C ·?•£¤?°i?½\?e/ô>ûÕS>ùáw>üÐ?2eä?L º?ä«?ªª"?`n?|U4?2<>üi‡?^p?0¸‹>î'Ù>±7´?„І?ÊÌ??l¨„>äQ'>I¹¸;·ÃÔ?Ë$?qÙ¬?€ù?ŠhÙ?Ñ¿Û?ý0Š?¼5¤?—‡?[•‡?8a?iæû?}‡;?˜®?©ùp?q¨—?Eo>Ä°n=ýœÊ?2!¾?~_?(c4?è)? B?5>ç°ñ>¿Þ`?±?*¹i?0Ù²?6òe?kÇ,?ƒo«?J?/#R?™Æ=?·Ë¢?1Ñ>ÿ=$?4? mI?äc>ÿ‚•?¯\?¿»®?ê=?é¤?o}>ÿï)<ôÅÜ?E 8?Fˆ5>½->?7G>û¥Þ>­ø^>±Xy=íR^>tª?îÌ_?Ó‚<Ï<>„u?Ä?V?¯'œ?’†?)<?fôX?G–¾?ÆŸ?j@s?ò²+?ÈÞ +?Lå?V«N?€ú?¬.*?ëj%?Š±ñ>*?@›:?¶e?4”*=8Ù?_®6?Á?œÿ|?ŠÁs?¦dù?­”œ?2Â?€C>º*~>+§0?WçÃ?¡C?Q-§?Båµÿ?GŒ?Àñ»?ªÂÜ?U">ç]ü>A·ã>ñ?‚.ý?‡ös?•+P?H>B´å>Ãj5? ¿ç?ƒë`?Ù/?¥?’<—?^7N?7y[?,ÉÎ?¨x?ÌVÜ?üv'@.ÈB@>ÔÖ?cYq?K?€SÐ?‰9­?Ë{{?ÉÃï>frG>Ž”D>ëüÚ?Ç/ß>ùR*?*xA?C˜?i Þ?4”k?!k?Q»?ƒ+M>½A“< />ÍD€?'`?Tú?\2?ûë®@¸˜?)ï?mô?±*É?°n?a#?,Y(?èÜ?Õ±ï?g¢©?JÈÁ>®¨?4&/?´3¬?¼dà?ÅGA?ÉŠÑ?ÌM‡?Å€?ÃZi?Å@??Åb©?Ð =mmì>Î|h?¢>AlY> +â±?µ‚?0L²?‘íî?‘h?ÒTy?Á¢?€Cö?cÈ?»ß?8'?°9²?Êwc@°8?Ôþ?pHƒ? (³=Xeƒ>´,’?}?³Ú?ÃG¹?åý?ñÓª@þ‰@¼Í?²R?”Ã÷?ز?×D?ówÏ@µÅ?Ú¡=?â¸{?æÌ?Óyù?ƒÝY?oêd?,þp?Œkï@ù?ýι?í^E?¡º2?ài?Š)p?Éy?žÃB?…\?CÅ-?-’À?ÏÃ1?óïV?˜‡É?ƒà@;Ú @DK¯?Gÿ?Bõ?ƒÜ,?{¯œ?Ü,?ÚÄ?ÚD?ÙÂ?ØG?CB³?³4ž?‡œ9>Ŧõ?FZ?›X?Ì!æ@*!?Üt?ÂûZ?`Dj?I?i U?ƒÆ•?ŠeÔ?ŽU)@´¸@Õ®?) ž?½;?»@?8•?8ž'?TRö?Á¢W?¹„??ƒ®h?’ƒh?Çå?Ìð?Ç:›@3>@4’ˆ@ý6?œaˆ?ºg?ƒ–#?†±%?‡?ƒò?ƒŠÍ>Ÿ¯=!¦d?OoO?ƒ€Î?SÅ4?Vú_?Í?Ïç?;Ö£?3õe?÷ ?ñÔ?Šeƒ?€»Ä?CBX?N;Ó?ƒV?€ŸË?~í™?‹Ã7?–ö?´k×?éªÇ?·Ç½?rUv?™$¸?¹`H?,V=5ª?Í#@!Qö?ä%b?¶Ì¡?K+?‹f?Cø?y?¶T—?Òlò?²´E?¬K>­³}>°õb@5ü@,ŸG?*ª?›y&?·l7?½¿’?ï”ê?Â-x>öÞ?(`&?Üþ¡@ 4@5Î@Ì?{N?œ]õ?à Ô?¤”"?‚G???‚P?¨1Ü?íÍF?·ä?”J„?‹ ´?‘"X?ˆƒ ?‚Tä?Òr¡?è4@(#‡@3€@(a@+‡?ÒO?Ã:@#@" }@Úø@µ8>¤Ãà>%¾>™‘>Ç4?Í°O?ÀŒß?†Ü¦?™ñA?ü „?Ý!.?ˆn²?ª08@¶ ?É"?ª,?†J.@l°?Ä_´?/äÌ?h<¾?œÅj?»“?á†Î?Ö#N?Κ/?±6?Ì,?Ћ\@j4?q¹Ø>ó­?ÈP¦@(-·@ è?ù{{?Õò6?Á†½?£À:?† .?°•Ó?ǹ/?òa@Ó–@&64@0"^@I @fž@àc@ Èì?ûΩ?ãd +?š"?’èÎ?ˆ§g?s?E–ò?9rŒ?Õá?ès?þXÜ@7€?tL{?_¿?HÉ|?Nëï?íÔ?÷½¸?4ðÂ?C;?µ<}?¾°x?¾P+?¼<œ?´Ü+?°£¸?m>?iä@*Í<@'Ìv?ʧ‹?Åk9@4^V@2Cy?‹ùM?ˆ…F?Üu^?ÝÕÞ?CÉ?š¬¹?~>v?’y@ D@Ž?¢ÝL?ž`??}À?~§<@X@€ù>«ê­>X‰}?·ìA?½dò?„ÿ?‚1,@÷L@t8?âCx?Ù€@‹d@ù?If?E-ö?Ê£…?ÔÏû@@#Â?>¥Ã>û¿É@u@ãH?™B·?{d¦@£ç@pK@2q@=tÐ?Ì ?“Ã?±#?»ûF@39€@V¥ç?±Š?äQ?åX¤@Éê?¹,R?hÔ+?ÏI@õK@Íq@$6>@»Ê?»¥?Ô†?혩?ãƒ?ÜK:?¦òg?1Sé?X÷?•½?Æ£”@«™@åã@$þ°@ ;?÷ã“@ƒ @'O1@# ?çú·?ø W@6´¾@6ù¢@;„@'S?|Ð?vß?+ß?-T(?ƒ¦†?‹¿h?t ã?vê‚?jùÒ?w>?Ò—»?õ±í?âC¢?Ô¢‘?9ÐZ?[{?ŽË¥?Ð#?—V}?›`C?Ÿo8?àj@B'K@7š?ô/½?Ü:>óÓ7?5[?¯‹?ªça?®jF?¬†Œ@·M@¶Ì?ÑYU?Èi?e¡‹?3ä? 2b?É/I?°ü6?–ñ=?»©?ßM @ÕÚ@*½@„¿?¬-—?¨·‰?µé?ºU,?ñ3Õ?ñs?sNø?páÐ?x?¶ @&@B•?Ím>®F?:Ô?Š43? +6?„³n?©.{?ÙÏ?ïÒD@Ã@Ir?Ë‹K?¿LŽ?Èòz?Ñ…?’Îœ?‰'‘?X?¥;P@] @BŸ»?õóÀ?wpÎ?ªÄ?í*0?Èj?g4¥?dÊP?m>à?mýx?‚nÎ?„—ó?îN¼?ð>•?E%}? Ù(?ʱ@ O›?Ê‘A?b­?ªç@?ç^¦?>Xl?A¤h?ï©?ŒT«>2Ûº=Øã£?¿b?è¾Û?Ãí?±k‹?5“€>*Ñ?#—¯?¯Åâ?¯³á?¯¢£?¬ãŸ?ˆ ?ƒVf?Ëe\?Ï?ãó?éš?ï—?öñû?×ìý?®ÝR?ßL8@(E~@«'?X~M?],É?¦¶Z?¬i’?~CÓ?m³±?·?²?ÑÀ¾?Åk?¶Õ«?¤Î^?–+?‘Æà?;ÁQ?6ÕÁ?Ëi²?Ê,D?Ì:W?Ï«?¬‘Î?š¬?„Rç?EÛ÷?‘8ë@6?þQÌ?_I«?dBy@ 8R@z?•G™?W'R?ÊÂè@:J?É«O?nkX?öÑ?ær½?Ò¢Ì?h¡?^5_@ X©@L»?‰Ú¾?—?.ªÝ?OMi?†e?·Ç¡?–Q<{RÚä¯>ê-?*I? <6?KÀÜ?Y¹>?P >äÚE?´0 @ +4ç?Õ2¶?dÙÓ?Tq?O†?5*? +t?ó}?ˆ“×?š\?¼!â?ÓÅh?½ùo?—É}?G,Ç=Âh=LM¶<]€=ef?±?´Dw?·ˆ?ºÕ.?yŒ?;¶«?jè+?Ž§–?ÒÔ?ŠQ@?‹uŽ?œ%ÅM¢>¿ô?e 8?gá„?ŸM±?¨Æ?¶*Õ?ÅX½?¬³?‡š6?¦·?çU?ÙÇ?¥©6?™éÂ?qJ&?ƒt¸=îŒÓ=`ܦ?–‰Ï?®ÙV?®€U?®³»?‘|n?MÁ?y“y?iƒC?Dâd>öq˜>Â{c> ++>´¾?˜D??zÓm?sBD= i?8FÂ?l ?t¶?˜Xÿ?#/>P¸˜?, —?ˆ¨?9h>Æ—>•®{=åÿ>%ÖH>ÿ`)>à ˆ=Ù-ó>>Å +ý>¿ï?pœQ?Yœý=Pýî?aŽ?h =®Õè=ùì;bë:CsÀ?oD ?t<Ü>¢ð>­÷Òáë>ô¾—;÷Œ!<‹>o >4Ø?‚Œ>à׊@‘ñ?ð.ì?4À?!!õ?Œ¼?6Çp?¡f”?®Á+?ºððr„>á–>ÑŸ_>Þ/O>ÿKÍ>Ó×ö>”¡Þ>i>ˆA<>ä42?±?)?`Û“?"é{>àâã>\-@;,n?[â?¾!ð?Œ˜;?Gò>À÷³>&€*?Ö?Dóô?>ŠÕŠ¿>&î†>¹ ¥>üŒj?‚yü?°?ß ž?ûPÕ?ñ¹?âá™?lé®>ü);>5ã‘=ö²ê>YÅå? ì{?B7ó?¯Ç>ûë’?7}?]žÖ?‹ì€?£öÖ?M4œ>ûÜ­>ü À>ûÚ)?kÚ0?žÃÏ?˜âÍ?‡å«>ôžþ>BáD>´¹ø>øFÂ?‹Š?°Ž?hº{?1;Ì>´¹å=Áh,?Q]ì?¬}…?Wñ9>ü\>V•=QbX>Å>PâT?á{?½7ò?–¥Æ?|`#?X0ê?;†Ê?½Í?’¸>²ã>у=;Yµ>¤—¥>û{>\q=Ñuø>Óà~?@ò?H6y?qj/?J4Ù?1z5>ÙÌû>}¯e?_ñ£?˜J?olÓ?W¡?‘>°E?'£‘?b}?s>Ó?|:?{«Á?u}ž?ont?idß?c[2?]PÍ?¹>þ“4?9Ô?ECÞ??Fô?9Jª?o˜‚?~þÛ>Ÿ¥œ>d=?-?†Í?a ~?urT?<á>ÿŒ¤@*…ê@6´?£œž?—Ø:>ˆ?(±G? ñá>ÔÖ>ëã<2_”>™ù >®wb>펞>ä>w?TBÑ?HŠÚ?p„¢?d’â?NÄ?JˆÕ?þê?Þè]?p«Â?Uö¢?Ù!?3æ0?Yø#?r—¢?šf?Id? /‰?•=D?€þ?ZÁ?Á—a?ŒÜõ?!‘Ì?Cø4?m8%?;k? 0Ñ?U Ì?ÑQ?Ðù–?÷Ôœ?= >„Ú~?RI|?„]?¿W>ª=/?b¢Ÿ?¤”? ÂW?[5?Ò,Ê?ܧý??×x?Ô ?~7‡?}?3J=Z7>8B"?~¡{?OY(<×*°>Ñ>á(>ô–i?§û?![>- +?*æ?pšD?rŸ(?‚\¢?ƒEB?ˆÝÄ?—‘?b”>Ñ£Õ>‹ñ?@¸ ?‚?´é?Ãê¤?·$/?»¼Ö?Ã~?ÀP +?†‚ ?‚Ë”?õ?¿T¼?I]6?3Ì–>´jö?¨6?ì<ý?Ñ"3?‚ò>?ŒŒO? q"?Š‰.?UˆV?lý+?ƒç?e_š?:¸‡?$@o? 8?Rt?/’?Ûª¬@Hè?_óÈ??9?¥«Ý?¹º ?­åã?´A<>\œK>-ô>¿¸Ž?uÁ?¯ »?˜.¸?D?<Í?.‰>Δ>ºžÎ?ƒ€x?“îÄ?®j ?Ë|‘?í`r?³bé?‚% ?­`?ÅhÚ?=Ú?gTR?ÕŸ?¥!?>+??¯4>Uï>6å]?šc§?¤Æ@ q?ó[?S)?DñÑ> jÎ?Óô?˜¢ü?tux?Æs?.%\?\°Î?I=?5Ï7?Ùÿ@$Ã??ø™?Ž?ó,'@Öi?ÒA?h¸U?‚§‡?ƒÚâ>tÝw>1Û¥?ÒÓ?Óš?ñi‹?åqM?ÈIÏ?¹¢?QÓ?+0m>1ªô>ÀÈä?I»?Qí¾?nV²?GMç?àÅ?­æ/@B0?ª?Ü?„‰?å@C±f@s +?êë?¶Èí?º¾˜?ÌÇ?‡^“?u‡?9LÚ?av§?îÓð?¿ïx>þ¿>™A¦>¢€n>®‚­>¥w¤>4ýÚ?Zœô?ð¾Ò?àT_?ÌÛ? A=?ƒÐ“?ƒ²±?ðz?°>û?¿AL>Ì1'>/Ñ$?mæ?‘þ?i~5?^1*?¾Q?½X?ºå?A^@Ìé?éni?ƒ³?lÀ?¸Ý?(½?W?¸/4@ì@§®?ïE?¬˜?iî?âÛ?¼0U?nµ<€±`?¸cŽ?ñKš@(·@1ƒ,?Äü~?¨ ?¤JI?¨íí?„7Ü?ôø? +’?6¨:?¡$¢?¯yá?âH?Ͳ0?ž† ?y‰.>¶SS?3[£?²‡?Ç·æ?׌—?Š]1?=K?~Ä?‘?&‚?ÂÄô?ð +Ç@¢Ù?ÙV?Ī®?µïû?­b_?}d?f;U?€Ïþ?ƒ@Dÿ@H¤?·ßZ?¶ÐŽ@3_@*c?«Í?­?Z?ø8?±W?ÙßÑ?½‘?bÈ6?ZLÁ?76á?ðÞ£@ƒƒè@1~ô?'˜?K]%?‚¢?£K ?ÀZ•?ºâb?´X£?Âr?Ï©¬?§­?’—…?uãX?\Ç?œ‘Ž?ª÷Ñ@`@Õ@Ú@ö˜@q…@«?š— ?“š¼@ +Ó=@:ª?au?oP?ÐkÉ?Ð?è^Ô?ùŸ@"l1@&ûý@@œ@Apº@?Öç@£?Û‚?½—…@m@9DÀ?£æX?¨Æ?»æ?ÁÀ?¼€?Á8®?˯«?ÅBÉ?Â, ?ÝU?í¸V?·´f?ŠÏ²?ÓÒë@h$? Xx?5V?-Nš?P¿¢?¼{æ?âÈ–?•c?¹$»@†\Á@°uõ@>Ðj?þ7]?{¼û?.Ï?Y«?v}?æê™@¶–?ê#k?è¨Ó?Ée?ÈNc?lMê?I~?–¡? m)?ïÇZ?ðõ+?Ę?ÀrŠ?ûxù@:k?\u‘?@ê>x˜ˆ>>zb?Ã!¡?Ç߉?òÿ?øBE=#•<½@¤@h?…¼.?‰¹?ëÉ?ê +Â@?kp@>t}@p@("@g\@rÕ?äÅW?â± ?à›è?ÝNÓ?¾Ó7?½§Ž?˜¶)?œ“X@3DI@6ij@;Ô@¿ª?}ÆÚ??ã?ô)L?ø‚Å@Ré]@Uvè?†õ?FÁ?|Ç·?}@U‘@UÉ@'‘?ü©¬?ü—Ì?ü|ø?·i?«ƒ§@,¨@Ð?ç‚q?ß¿è?§=r?›,ü?êõ +?òQ?ÍÃ?Á´l?Îy|?ÕùŒ?Ï;ñ?ÊÞP?ÜÛ?åÂã?¹kÿ?®òî?ç؈?ú€j?ú, ?÷@›?€Œ,?%['?˶?¿?žO?Õs,?õÓ@O?ê; ?Д@ ÿå@Sil@×â?•¼Z?€·w?G³?}/þ?¡w¼?ø7@Nœ8@7?¤?c[?Þx$?Ðþ“?*ª?zA>÷„y>ø3‡>ù›? Áà?„où?ŠÌ»?²4‹?°?Ópi?Ï,2?4iõ?•7?HS?K™®?^Rï?Xß?ÌQ ?õ¶p?Ït?½»^?]È3>¾X?‰Ñ#?ß¿?¬X?Wiu?7X¬? Ô?<{Ò?ßË?¢a"?ô6C?áÔ?sÍ?æ*@L=@GÕF?·dÏ?¶—Â?¡ë?¦K?´ªõ?¶@;?†‡U?`öü?º®—?Ýã?çÆÖ?ïãJ?õÙ@êm?ø/Ï?Ûõ!?Þ»Ó?Ü7æ?ß(?Á8Ö?Á\?Ù‰€?Þ›@?xLo?sóá?pn¨?lÅ:@….@|¬?ɵï?”ÇR?‰ +C?†¼_?o£è?IÎ9?¨dÄ@ +ï@ ´Ü@õÀ@a@%a@ 8?&œH?"3?lnà?©Ø?[™¼?U …?¿Ðc?åÙó?Ì<Ä?¶Z8?³ ?²P^?×éÍ@h ?ëM?zê?=2?m ç?lõ’?ÎÚ¥?ØÊ?à?Ó_P?¦dT?”âÏ?²ÓO?ËKT?º=3?ªÏJ?«î¢?Ÿ›3?§Ž"?Ò?½?Ö¬Z?m²y?k.e?¤m^?¯“@ü@bü?Ø?›!i?ïÕ‹@6@ !™?Ú??ÓG@?¯‚c?¯n×?PÉ?]Ι?¼X.?χ«?¬"‡?™¹ø?œÎ?žT?Ç @ µ¨?ó’>èÍ$>ê×È?A>ïC±=»¡=sÏ(?¢6…?è5†@&‡@ +IÏ?Ú˜H?gà"??¹m—?¶Ir@¤R@"潫>æ²Ö@E=@@Eãà?×u?“}R@ +ñí@³ ?«¥‚?¤ŠÈ?bÇ?|7?‡+°?™#,?»ï?ÐW[?¾n¡?¯¶?¯rÇ?¢ä?—Û`?ÎQ?Ñ^?uðí?dÙ?­B-?ÊÂþ?Ûòê?äÃE?ä¿Ñ?â–ë?ÉßÝ?d´š?eo?«[Ê?«†H?‰šw?K€?¤ z?«k?œA?‚·ª?P¶ð>ä²|?½*?~6¿?xDl? ª>ôË>ë½™>äÄQ?ìv?&z€?K{ï?dÞe?o®”?†M1?~Ž‚?Bd#?/ß^?—˜e?•´Y?Zå¾?6R?Á^@F(?ÜÉl?\ã?ˆ÷—?ã,L?ÕÅ"?¬.×?¬8®?…zÉ?ƒUà?“-•?•f‘?’*?Žç6?…Ì|?‚m?‹¨I?WW?“Èt?øÝN@÷G?æУ?å— ?·EQ?­?¡?^Vû?+ôM?9îÞ?GøÃ?š´k?矤?繫?çÙ«?ÒÄu>»g>G‰>æx.>èx×?Ï™­?è+ ?”­Û?x)©?6­ž?œÑ>äh=>³™,?4…C?‘tk?e7>>§m·>È[›?j—?qû(?¥s?¬ÑÁíé?hž?¢¸ö?0)å=eÏz?¿›?²tÜ?[0™=[Ø°>4\>±î©>Œ;”>?pŸ>/â•=ÓŒ?%¥E?%G> =¤=F­>ÞÒ>¿Æ«<0šØ?Í8?Ä9>è@>­C6>~=§>׎_é>‰7i?·?kû@o×@Eëî?OÀ1?0>¼úf>§ ¦>Õ>}ÒÕ?"Ø?47P?uâ!? +?¦kZ?eŒ¹>ÿBê>ÿd>þøŠ? =M?*òî?_$÷?”ÒN?=vç>Çò >^ýù=E/&>ŸR­>ûêÛ>€h“>1Éê>çav?>s‹>á’¨?8·¾>Ý·>‘Ü? 7?%ê¸?‚?Ò?ÜW?ˆ?U¢m??…üë?Œù‹?64{>ü2¬?!S=?&©÷>Ìæî>ŠæÂ>Ä=>Œ½D>š3>¨8>ãZ2>ûï’>‹Õ~=è­o>ª4Ê>ù1>ûäú>ûç>†§†>?âê>£ØÌ>àƒ$>4vÜ>/¶‚>wS‚?oc0?³"Ý?Ì#>ÅaB?.ê>t4È=KÕ>§¨j>ü*…>ïèÑ>Ýúµ>Ðÿ]>ij?X£°?’¹G?†©×?|nÑ?’öÉ?›ìŒ?>:i>Œ»p>¹-°>Šs>(&Ý=£®ñ=!?vÔ?»EM?K®[>ÞþP>ïp>ý.¦?;yA?UŸ?¶ >ýgu?Yqt?yÓá?‚Pk?÷?ì>´;’?|§?¥û¡>ø¥h=Áá“>¿Ã>þr\?\´¤?~AÓ?~P?~aÐ?~sù?~‚Ë>³û><—z?†í|?¡p£?Yj¨?FÙì?Lë(?Rÿ‹?M ??½N?t£7?TÛ?7>ÿv??qý>ÿ˜Ò>[½‡>¦ ?‡?¢,>ÅóÑ>µÔ?}Ï#?Ü0?¶C‰?£>“>ôàð>åQg?ªÉ?KÞ?‡ g?šN{?æ=?Ó7 ?.z?‹k?}íŠ?œ Þ@šµ?áN?€¬1?]Í?À&? Sÿ?*q?/ÖC?5™c?ql-?¡]‹?žÈ?›Â‡?«ð?Á E?ªD˜?—£?bêR?(t‰?Y1,?I™?Ï¥¥@™ú?Ø’ ?Èb’?‰“v?S“v?)ñ%?$cž?‹®¨?”k–?EÒ±?:Ä:>¢­×>v/w?¿«H?Ñ ´?4R ?)(??žb?OC£?ñë?uAï?3â>âºè;½@>´»W?¶ê‰?   ?qKå?kðŒ?fc?.‚}>³ ê?}ë?i]X?{ȳ?‚c]?M¿>’Q?–?ÛÐ?;?Jµ?rzž?‚—Y?̯?Úþ>˜Á1<…Í·>í·? ä$?óx³?ôõA?Ä4T?¿4ž?‚×?€T¸?[Ñ?’mo@U?õ]r?Aá«?‚Ð{?Ä„ê?›ìŠ?2Uñ?Bìw?aAp?”ä?·hÞ?š?ƒ*;?8Ï2? .•?`Ï9?†X#?a?y-”@ ŸÆ@Um?ð8¼?äÛÛ=L<_Lv>¤ŠÊ>×:`?¾±?­£‡>ø9?U÷?‘H¨?]ö>'ny>ôQá?ƒ†ª?A!;>Ûã>]¬ñ> X?n:?—¤Ë?ÅrÝ?–ØKi>«c?«i,?¥«ý?~ò?7Ô?4î‘?&8W?‰?9) ?œõ|?’._?`±D?¸ø0@Ù`@@#@$ɯ@#ü¡@$W:@K>@ ÿ@Wü@w)£?É V?mˆˆ@?„@ øR>ù¼£>­Âæ@œ@§?¹“?º}å?ƒç’?ˆ'®?‘të?_ >°Õ?jm?’Þ3?\5•>Öź?D>?‹w?©W?ÃÄ?bëZ?ì¾?™«î?¹¬?äö?ûüU?¢žü?“k?iðx?_y™?™Æj?¡Ñ¦?Ý"{?â]a@#´r@€©>lƒ>Š:¾>Ç Ö?õ0?_:N?"“¾>z{“?Œð?ƒÝ›?ÃU?úÉ”?´™t?…¹é?ƒõ ?ƒÔI?µÐš?Źí?Ý­?Ùýä@M‡@Ñ£?7o>?(¹Ï>6z>„¦¼?Põ'?q +š?àÏ1?Ì\?LP”?”Vº?÷±³?ÒH?œdc?ýÀ@=v‰@ +›’?¦x4?!hö=ät=ÊÿÊ=€¿£?8ç}?€Î?‡ù5?=ý?ÿ„@@ Ñ @üe@¶Q?ºg®?²#ð?¯çí?ª|Ÿ?pÏ?],b??©æ?\Û5?¬ƒû?«õ,?rï?í¼?°5U?¤GI?•`±@0£@rL@»»?;¥³Í>Éw?ŸÍ?#¨3?¨Ì–?¯ô(@Ã!@ C?߀-?åã@™Ú@ñY?>£7?@Ž5?L¤ƒ?ƒ¶m@Õ¼?Ôf?$ÞP?c‹D?·]@?¬D?“À¡?Òi@ªÙ?ãò"?ƒw¹?ƒÈ9?†qÔ?w>AèÁ?F±H?ŽÎ @ÿ”@;?¢—?+ØU?S?fÐ@!Ó@Ýö?xî?DÖK@7º=@H>O?„?´?`@ Ü@º??b?÷å?æ¹Î?%f÷?hÞ@"s@ Ã?U?H +?Ì“™?›A=m Ò?ƒJ@N)*@;,@r…?äÜâ?¢5?È¡z@º?åO?”Õæ?Δz@³è@þU@7¾v@^9?êWô?–~Z?)Æ¥?ç¬?9R?Kó>ð€ý@i@R™?Å Ô?'Y?f>Q?‚ñ™?ã$R@ë?ó¢;?é“?¸ºò?¨õ?ž¸C?¡ð?¼QÄ?Àû„?ÑÔ?Ðœâ?«S'?¤qí@ ®Ì@Ó@2U@ 2?—¼þ?‘ƒ?æŠ?ìàÖ?ÂmÇ?ÀD*?‚ V?€û?ë:B?ñ–?€³?€ií?ÁB°?»¾ß=´$Ô>@¥ã?‘x?ƒ×½?ÿf¼?ü+?¹G?ĸ(@»{@ +YÑ@$Î@+`@$±\@Ÿ?¼#š?Ųõ@ :ƒ@“5?×â>?ÔzÖ?¾g?È4>@D ð@C¤?Í"?ÀŠ?µ9è?·sO?¾ž?¼\7?9 ?„B@Vðè@P¦Ã?ØL¿?à":?”ô?—®c@±X@€N?ý”?ü^ @'!ç@)öí?¼Þz?·_™?»UÎ?¿HŽ@$ˆœ@*dê?ÑæC?ËkM?¬«“?¡êv?Þ¾Í?ìý?ˆà?fÌL?9ÀY?!k?È”b?ô“'?Ëõí?½IÀ?·1Š?°{Ë?Eu>ùõ”?Ž}Ï?»Q ?¨Ö? H?ùÇÒ@†@ú@°Q?ä«m?~–Š?=Ì;>㢯>ó¨a??–‹@W0?â%F?ŒQW?‘ú¤? tq?´Àh@ù?áÜ»? Ð(?F„?w<¿?k§?±`ÂÎ>‰Lý?Â'?ÒM?;.«?Hü@3¶@$©R@Œj@£_?ÔXj?¡G›?ž¼ì?‘3í?kjA? ¿‘?r>zGŒ? az?Ú¶µ?ͲU?1Öþ?(í?·°_?µƒG?ØV>û¥À?©¶&?Â\é@®a@ +ìñ?Î¥ö?¤†_?Œe’?oÜp?¢Ë€?ãåÍ?ðe@ZÉ@ßì?Ù¢9?Øzo?nøe?nÜ)>èuA>Âi9? ç†?&~?kf?«6?Î1£?çèW?³Íƒ?në]?·†¸@w?@ï8@¶£?öÁl?Ѥ +?Í^?²Ð?±š@äØ@ G8?Åk?“x?Çê?ì+?²ä·?I ?MC‘?k¿þ?k¥Ò?k¡?kâ`?y.?täL?k÷?k +å­w?È´ö@ G‹?¹˜ë?h¼~?T»¼?ÖA?PŽC?Æ#Õ?Êzý@§!@K€?®ôg?§ŽÊ?¡×¸?¦x?ÅX?ÛÇ-?Æ«^? œT?’$/>ëË)>è¡T?€Ü?ŒÃM?9-Ê?0Aé?¢²†?ËK(?ä£+?ö÷]?ÁÈ?&¼?S»@<½@ ¶ù?ÕÕ{?ÒØ„?ƒ¹?E+?ºÊ?´œ?±ì‘?¯;R? E¿?g6â?o±(?Ÿ™ ?š2ó?žº ?¡*?Ü ?÷ ­?˜H‹>å¦?@u?eÊ?g.ñ?vß?‡ˆ?‘…Ž?Œˆ?o>äÚ?”š?à!É?äÂW?äÁ–?Í2#?d½„?`[m>§ÁB>Ê;¨?1¶Ó?7t ?¹3d?å?â?ö?ä³â?¢f?X|v?N›?Š=Ù?“(Þ?ƒ4E?q¬H?ÊÅ?Þ@p?Õ8?Ì+.?ÈB?ÈHª?ÙY@ +@øŒ?«ÁM?«Æ»?æ—?ó¾U?™ß:?}q+?Îdÿ@Ž?Áuä>øsf? ¾?n,³?tE?BM?"=?¼&$?Á *?–•?‹éÀ?°Øþ?Æ€Ê?ˆ©¬>æ>¤?8íJ?À’¶?³t=»<=%?a¢]?pD ?¤ò?­L›?yX!?Fè™?‰"ç?¡ë“?¹ +»?ç²Þ?ÚñU?¾¼?Â_u?®!¼?¬±´?´Æ>óé?\I×?rº`?.?9?7((?Fê“?üi>†¬Z?8²?¯£?O$? >?;e¯?jºO?]n>ë•>æÈ×?ZÒ?lÒ?æä>ìhÃ>ì£>ìÑÞ?%Ù? ¡?$²ê?:[×?dï>î#U>îl*>ø™¿>ú.Y>ÈÚÀ>ŒUæ>D>U‹&>…Hg>,f¦>·d?TÑ(?A™)=€«:>òÌË>í­Ô>¯¥n>Ð>‹ZG>Yß=èL?§ž%?¦Í°?h!*?r?u =?J©¬@ËL?_»¶@ci»@4nv?0T?x+>¾Šû?"À?pS¦?HPB?~K>™Ô«=Äi>ÈÉ?6¿Ó?!›ž>ÿ2°>ÿ Ü>þéÌ?G“î?ˆ9U?)×>®Ñ•>dmí=Ç>>Ͻö?3é?Pë®?{/Ü?$ #>Ûx0?œá'?Íùö? ž^> ç>>q‹'>t>NÜa>û¸í?1Ýž?@Á?N3W?“ü?¯ÑÝ?T ?|[ì?-9Í??JÎp?]B?pÅ??| ã?XÙ?Aa? øÄ>Ö"?©?$ ?Š—>ûó?`Ë?„2Á>«}ì;QŒÔ?¤íØ?é »?´?{?•Üõ?YO?,û >ÔÐ>’>¢?ôj?9È.?VQ•?[`>Šþ•?1Á?gñ5?ýß>î¦?‘¢(?¹õ?ŒÀF?k =?!‘>üP?»?)Fh?aí¬?|vt?R?N¦?@X?*ã‹>¡¬ß=þƒ?An?‡ò°?-Hµ>üä%?”c?½¿Ö?7j?l& ?•ÑÃ? ]Œ?¦’R?¨ð–?>Wã>ýoœ?—ÔW?¾'¦?$ä>Ÿ!>U¿> ›@>ŸJx>ÐÁ ?béÂ?„(p?&D >þ‰;?]“? 2?dÍ?~jÐ?3GÍ?$Ú?—]¤?œÁ*?™/T?òn?‚X˜?lÊ?7XJ?)Ôò? ¤S?°A8?v,3?lüi?(N?4,?´ØP?¼=?sÅÌ?`q?i ?d„?^¦l?V+µ>´…²>é$ü?ùÕ?ûŠ?»¼²?´?·?¨x‡?™’>ý”>‘—?™ K?”Ø?”.?yåS?85>Ïb(>i˜>О?˜í?-ú?Âp?>‡ž?–`_?Æò?KzØ??¾Ì?E0à?oÉE?¢ý?©|Ê?Á¤Ü?¸¹J?³/?©R?¦¾7?’œ2?Lm>·Ä.=6 =Û”>(|›?µû!?éÄ ?‹î±?^À'?˜?™\M?hÈ?­¢?š«e?šûÔ?O¯Ý?S±4?—Ÿâ¥>(jÝ>÷õ¼?OÉ=?iÛ?‚e·?WÓ5?(•?¹ ?ªHå?¾¤a?ÃÒ/?“=¡?‚™'@IV@6w?_2“?‘V?º ?½"?$è7?5©?/>þ?7Ú?#–ì?(Þ1?. Ï?SÞ¯?¬ã1?•«É?ú„?ƒÂ?üõ?Ètv?ƒ½?n>J?Jô?V~»?lèr?}ÆU?ƒ-W?€$!?€Ób?‚ýÙ?ƒ? >‹¢Ø=èè"?:I—?fw³?Í“W?ÖˆK?·y†?«U?’Ò??‡™s??Ù®?Dï­?J?X m?i ?_ +O?U“?qOj?’ã?1ìš>%m=»•=*ÄŸ?¾?‚‘3?Ú‚ @—Ì?¤"]?ƒ¨…?ƒªñ?ƒ®ï?MŽ¶?O¦Å?íiÔ?ç=á?ž E?›p|?HØe?Osi?Š]h?›ÕÇ?Å­å?ªü?S>Ÿ?•TÅ?騬?¾–ç?ƒÓ¬?Ûã@HM@ *½@Q?³“f?‹¾?£âœ?¸~>?I~w?Y?§ü?»å?hà?Yž¬?¨W?¯.?‰C?‰‰?¢¸»?ž7i?Ÿ«Y?ŠÝê>ÿ}'>òD=DP=½?_¹?Ìþé?¡Zš?ƒîÂ?ƒÓ&?‚ O?2ÙP?='?'P?0ûr?ÚÞ?çú»>½IŠ>¤Û©>·}ã>þ&•?Ö¬Ž?Ó‚ ?¢¥?§L?™8y?ŽH?ƒæ?g²=?+•K?`&ß?“!¦?—%ô?™*•?”‘,?ú?¯?ÄMß@(@@bI?í§Ì?žŠ>úßü>¼é¥@fýH@wDL@0%ù@ 9w>ªõÏ>¹¼î?;^?AÝù?G#?bJ ?™mY?¢¡±?ÍåÝ?¯AJ?TxJ?´îk@ +S@e%@¼[?Àü?l:¶?¥8?ÀÐN?óÏ@ÕÚ?ÏRO?¿)B?Ë@F?Ïù®?ÝÈÛ?ãnÌ?—Î?˜†ç?Å=+?Å9l?Å5³?°Éö?r-?Š^>ö»O?ç?m1>?„'®?®q`?´jÊ?³Mh?êÅc@ÌF@ +¿œ?ý”b?•x7? ç?”ÛE?ÄKd@:@\Sg?ö=Â?´­z?3z>ÔßÈ@?¡;á?—þò?ae?sbk@Zò@í? y?yP?JÍ.?l”?ºD?Àp4?ÆÏh?×ûz?æð ?·;?ØY)?‚™a?Óš?ªŒì?ŽÍ-?‚ƒî?Ùi]@’?küP?lú?fy?a€?¥6*?½9½>ÌPj>†„¤@ +4š@"Ã?Æßz?Å’'@YEÍ@P˜9?? 'ò?Üqk?ÑGŸ?©„q?É{E@"u”@ 5?Á¬9?¡:É?UÄ?sé?ä’”?Þy7?æTM@E@" ?äU?)ñÕ?½Ÿ‹@!üÿ@ +z@ †µ?ö‰?âïJ?Æ›W?®w5?»ï? ²?¨?•/¾?€Ê¡?_×á?Ýwp@üY?Ô}X?²Œ@ýÃ@<`N?ô$?Á¥@W0‰@y+?¬M?3aÂ?‚ÉL?Ij?ÿQÍ@r?{ž??S%?Z$?ŠW¢?q8ò?sq?íŒÓ@o?ÂZ?·&‡?@ÛÉ@Óˆ?¥4û?¨yÜ@ž[@ +¯Ä?ÉL?Á³3?Ÿx?›·@ ´@ ?;ðA?4¤?Óc/?é¢b?Ýål?׌‰?Ue?#À¿?Î'?ï¯?ZùÇ?7ä?J°?»ÄŒ?‘tð?ƒ'¶?Ÿ62?§AB?bUy?5tc?äß.@Ù6@þš@ål?×*Á?–Öç?ª9û?º¾¦?«>°?˜P6?VÓ¿>¾¨À?ƒDñ@}Ì@ è?Ù?â§R@ÉÊ@v@6I@'$Z?Êßc?¶»~?wce?“É@/Ã@&Ÿ‘?Ñâ—?×íW?”ÂV?—ÿº?ŒËå?£­>× ä>´q?ï¢ù@ y›? ü?8µæ?ñY@‹K?âüî?§³U?Ñ‹É?û_É?°ú`?3W¨?K|>ô¸G?I¥ê?±y&?òm×@QYÆ@1{ì?å›?2?¼ÆU?½¢˜?˜˜Ê?’H½?óG-?îÿG>°IÈ>#œ>?¾­T?ôˆš@‚4@·©?ž´e?%ÔÁ?„ÍÃ?µ¨?¤$³?Œ)h?|—+?Sí ?k~?Žv?jG@Í&@ +—Å?ìÌú?ðn‹?´R?­“q?„IÚ?€?‘Jb?œBð@!/@GNN@ŽÔ?ŸO™?§Á?³¼2?© >?”êê?œtô?¬7¹? a‚?C_?GaÔ?±õ‡?²þ:?²ëO?²ÖÕ?†:ú?n7h?;?s?³äã?ëÌ?¬Vþ?$þ?Ò£>Ëëˆ>ñþ~>êg??‰’V?‹³?¶p?Æ?º4E?¯ü`?Â?ÓÑä?Äßh?°þV?´,…?³|? †*?k’f?t=\?ÏIf?ÃÇd?|8?k(7?g}d?b.¶?Ù¼•@0L@ƒ@Èû?ùˈ?âAj?Üùe?~?‡oi@9Œâ@?pÈ?Ê©ì?¤ž¨@*&÷@V§è?û /?.M˜ÊÛ=ñ­$?>¥8?£8ª?„7x?æ®?x{?gr¦?häîX>äí´?ëëa?ð+4?v^5?ðs?“A>éS%?'€a?u4±?y}o?d½u?Yßé?è²?"À'?É«0@Z>?èÝ«?Ïgê?Ìš'?ÅìØ?±±<>hß=Ï\(@Õ´@PÏ?Ä»?¯v +?²€*?µŒB?’‰‚?R™Þ?eöT?…b?“Ƶ?cðÛ?pdr?æ¡;?æ|‰?9k±>Ÿ5—?mWà?²èl?®’ +?¬ 5??e}Ü?\ˆ>å >å®G?O6?"0w?ZÄÔ?eñ‰?¨6Á?ÎD?›>æE¼?¾?»­? ðˆ?vû?i­‘?ä-!?Þ»?>ME? ¸>¹‰>’$?Z‰Y?¦Sá?­v9?´?¦¦?gûµ?r?—•?G³?h~§?h¡Ì?hÇŠ?hè?[RÐ?Q +P>ÛØÎ>œQ”?]¥ò?˜šT?…F&?ÐÓ?16>x ?{òå?bÃ4>ë2»>õÏS?Yì?I}/?›š?ó?>ƒ‚?;tÓ?3”¹?+Ÿž?8¯•¼¯> Ù>þ¯?3?g;@?®=ÃØL>­·'?”ž?’æ>ðIJ>§¬r=Ô°>SÑ®=ý = Rà;…<&6Ð=«é1=ôáá>)ª>©Ô?9úï?†È=Ë¿ø?@Xñ?C Ü>æûÆ?XÃ?výä?IÜ´@<’?…ð?ã4à?Ä=|?€ î?˜ÄÉ?À¥œ?“È@?;n?>1w?~ÃU?Ù©>|;>ÿw¹>ÿR>ÿ*8>ÿ@>þáÛ>º)¿>•‚Ë>«>–[Ÿ>¨êL>Ъi?}ã ?²|?“ÃX?}­’>¾»=™x>¢0W?×F?`ç?k;f>ˆS>ý r?0ÿ>M&ù>h5o>|ÃÉ=ºdY<ݸ; ×="Q>¿›>üL·>”¿>„8é?¡ü~?Í5å?“ é?|S?’©Æ?—Áh?Ÿ‹l?°“Q?F;ë>ûþJ?Œ„s?²‘‘?D¤ >øýR>qPA>j08?W¾²?Œ ù?e–>¦ˆ>yæ\>[‹w? +”?B9? â?¦Ån>Ò4°>­r>ü%?>8†;åõ=‘‚?6²?|K½?—LË?-€?r2?OcI?l|Ž?|…d>ó×C>]Õä?<»Ã?|°ˆ?>Š?J×?‚x6?£Ý2?GÙ?û#?WBÆ?§·?1Fû?s~?pÎ^?Ž[f?‘„8?”°”?0ä¤>ý€?šæ ?¾3Ò? Y>>5¼¡?âÕ?þ>™î>&¨?”4}?¾‘»?½ñM?¼”‘?4t1>þXç?Ÿ_?¬æ>dù/>m®?^œU?‹Ï¡?õt>û€P?v\?Š¶µ?ÓK?&¥?ž>.?œ78?%>ÿk?lÝ?zÍ?Åp? +·Õ?îÂ???šŒ?€B?v´÷=—dC?tz?£3ƒ?Æ•‚?ÃÅí?€LÒ?z?h4 ?€ˆ­?éÝ?ÿ×T@ ¢Ã@ +}?€Ô@?[á>í;Ø>ìQ?µã?À¼?É–?>,ø?—?Ì¿?€ìÂ?.œO>v¹v?);?ŒÉ?¯ã?Õ8+?¦ ý?0k>íø=„oc?'&L?RØ?+ã`>ú Ú?LÑ?cÌ$?ÞU¬@ƒL?›­Ô?“?œ4?£H>šÅ¤>p@E?¸}U?Èæš?ãí?Œ?­´|?¤}j=ù¤>’i?ú.?n?qQ?Bo§;>ð >&[½? &?\‡%?¸a6?ÃÂ?Ó¥?ÖØË?ÙQ?¼g¡?¨jú?’·+?‚kæ?h1?cLV>§ž?_’?¢tŠ?‹ Õ?‚ #?‰¿±?ˆÁè?ƒ1 ?‚·ˆ=ÿ=Ï?¶â¡?µew?âl?Ôl¢?¢N?ŒŒM?ëÃ?…+?Nö‚? Æ>‚Ó…?[–?ôÌ[?Ý#£?¯ð&?› ?ìƒ?‡‚ ?cë8?~£?Š&?@cú?Ð?g«?ÃÚ>ø<>ç&^=ýß6=ÏŸ?êðm?ôÉ@c~?÷5a?@á?.ÿ_?IVI?6÷?|2?Œçb@ Æ2@L?ÅP‚?¾D³?¶ˆ?žÙ?ƒ˜b?Ml$?ØF>kO;È ÷???ŒíP?4:S?ã“?u3?ƒµ“?žT?» ?ìm?ð •?9–L?>†Z?Cr?GS§?>1?SØÊ?•4|?µíQ?ì{n?À{õ?ƒÕS?‰E`?}?Güd?ÝÐ?T!m?„$?2ì? ½Á?¡=Ð?¼› ?ƒóÄ?k¯(?‚'­?ƒëH?ƒìM?„×?‘Äv?†µ]?9q?S$|?‰5ø?bT3>LÀr>æ??‡aÏ?H^X>€Þ&>· „?ô]?§Ï@¡k?¸)Ó?…é ?„^?ƒõó>’¨Š=`€º?Âîp?äÐÊ@°2@ô‡?J)?:5?ªp\?™¢^?;÷M?By8?F”Ï?‰ÓJ@î©?öý·?Ì?¤7¡R>s+?Ô-°@Ï?$>Öß?ÏÌ)?é:@ _p@!P?ë\?×ô?’E?–´8?Æl†?ÕÝ@ÃÄ?ÈœØ?ß³AY>ñ;í? nÁ?¢ó9?Ç–¦?Æ(Ê?Åj?öxÄ?ü'ú?ùéÊ?÷±?)ê‡?7£?ÅG?Àwž?ó?– å?IC.?EÓ?Iç?u—?«à?ÒÆ?-Í`?)¨1?AMS?’Óý?Äýò?Ê¡?Í–ô? hk?ƒF?‡ðW?„\ê?;Ú2?3Ë…?&;4?$§­?Ííh?à6Ž?Á„?Çâ?³ŸÌ?¯&?—H?Œ?Ö6?ÛÁD?Çfë?¥N}>‘&E>È*Ù?4¶c?Tºô?“ñÂ?é§ @\Å»@!¶?K] ?e¼á?Š—½?MïÆ?´í?¨ ö@ã‹?—d«? ¸:?”Ýv?ÃÞ®?à¸D?ëÌ@ +Ô†@êe?kkW?r‚?F ?Qšü?ÞÆ•?ì…?ŽÓd?yqÐ@³ @>¨?’Ó.?›@$<ä@„?$?-RÎ@Äi?ëŸM>D?î@{[?ö< J.?3+@l¢@$Ï?ÊÚR?Ü?÷MY?Ɔ)?‚bõ?/¬£>$?Ÿwˆ@"‹@%Öª@,¨ ?ë~™?}¼?áí@w ?â}9?Â?öÍ @·?ùªú?óÝ?Á–‹?£([?_:è?,ef?±ÈÝ?Î7?ô Î@®g@;®@ +Z»@9á@ˆ£@RtÜ@[ @=Ï@8®\?¶%J?— ü??¢ ?–%?Ž$?¼1û?¼™@ó@l?[ƒ±?RÑk?é†5?ílF?ì- ?öKü?Ú%?ßËŠ?ÈÚ?Äü¥?ŽT?„´®?Bl?8?ÂÝ?ËÑò@ r@º.@rá—@l¼A@€uU@s{}@Ä @©?çÆï?â’­?¶e ?¨L?€ƒP?‹ºÒ@æ³@² @7K_@11Ÿ@ >n@ ã@[¼@Âò?ñ¯½?ôxŸ?ý³?ñäV?0$Ð?A(ƒ@=4”@;Å"@:bp@8“k@=Éh@9$ñ?•ŒÍ?œKŸ?üµ?û³)?©Éß?§Ÿ?­v?±\Ñ@CU`@@ÎO?ÃVð?¼éH?¼Û(?¼Å•?¼µ÷?¼¤ì?Íû?ͯ5@ ÷@Ö$?¸)v?ª g?‘ ?‡{ž?åÂD?û›Ì?ùé†?÷Û§?Ç å?µÛ?Y&$?'Õ?«Ã!?ÍØ›?þ2h@‚]@q@$Zt@ 5~?çI +?ðšC?ù·ø@‚W@!Ér?ãüÒ?x£?•Ð?ºU;?ÛhÒ@ ‹?Ô h>øþ?uDú@v@(: @sM›@V*Ô?wp?’qƒ@ß|@z?¹C\?¸|ó?vËW?v²Á@(kI@(&N?³/?™Ú‚?€ã©?‡÷Ï?–Ä??š5®@ÁÓ@Ùs?÷]?ߌ@XR@CVl>]Ž?¶Ãó?¶°Õ?¡*?)­§?uOc?mÜ?o¾J?rîÅ?¡i?´Uµ@ î"@IS?ßÚJ?Ÿ!?ªuŸ?µ‰i?ˆ†f>ñÐã?c¿l?ûˆf?Ð>Û>:|>yÖ?q%Ô?r–?³Å¼?´šX@67“@=0ÿ?ü/{?Ö½Õ?ÒÝ?Þ§h@¹ò@'*&?áË?^œY?¡c«?ïB0?ï/]@aS?ö3u?vL?j}¥?ÔJ?Ð"f?ªšÖ?¨¹^?‚á¥?nE¯@üÌ@1ä­@tK?´š¸?Ƹ²?Ù°—?ÞE?ñkª?ßA ?¯"Å?¢™ì>Ÿ´4>±€Ý?]²Ö?l¨Ê?¢ Ð?´vø?¤b?™¹Þ?¦H?±ø?Ý|â@Wû@ ÉÃ?k h?‹úº@c˜à@fò›?È™?¯•O?-N ??‘»×?ÃäŠ?«ö;?’^}?‹d|?jU ?F¬ >>Æ|>bÕV?dÿ?vÍ@3“@ ´’?æ.>?×RO?ÁOT?®÷?—•?i÷?I$„>Ù¸à?&?®ˆ@?®{…@%B@ .?ì‚p?ÐOÔ?ÜîD?è4?¾wq?‰¶ö?…°K?gÒ°?m±È?‰Ô?˜j?½gQ?Àm?‹¢3?c ?‚ªÀ?ŽL0?®Ó?æ÷›?ÙnÇ?¬Òä?ªÁà?­—?¬ø@3f@=y@ –??ô5?Òs:?¬­Ï?¡„ú?,Í?šFù?»™E?³µ—?Ñàé?;?±Ÿ&?¬L¸@a-@&~¥?ÒlÙ>ãF˜? ñ?ˆNg?ž5‰?Üc“?ÙªŸ?–B?‰Æz? é]?!ë?vêè?ªŒ¿?˜N•?Q&?T‡½?‚³?mäõ?õ~@Pš@ À¶@ ?øþ‚?ãÔÊ?Ýõ×?Ùˆ7?£+ >5~Ó>̪»@ b[@ØÊ?_j?1-‚?»P?ä¸9?Æ¡!?«Š ?—½Ÿ?d¿ó?]÷Ã?Eo*?Qa¶?®˜Ž?«ù@.Y@ x?îZ¹?Ù=ë?î»?þ´Ì?À“Ï?`¹>ð•Ê>å +>åL@dí@?¶fs?”øB?¹Ï?Õïe?È&¿?¬M?œÊo?e‹6?Y´¼>å«N>åº|>žÈW>-{?sèB?µU? Âò?¬›?m:>æRæ?-õ ?›†?«ó?âí'?åDh?°”?³Ÿ?œöp?’®ñ?Á>– e?L ¬?’P?ŽÚ,?‹]ï?wO±?GeÑ?J¬½?+Ò?Ð?h–²?h¸°?§×è?§ØÄ>Àa>eEJ=¦>|?ív?’›a?‘#~?vw¤?NŠ=Þ´Õ>îD&?¼¢? ±2>ëB<>ìÁŽ6=vOD?Uº?²_Ï?(Xp=ͳ\=£Âü>ŠQA?' +µ?æ¨>ð‰•>üúÁ>æâÇ>ð)×?GÐó?@Q>ø¬?>ðZ>àã>ý„å?<ô?"K>5Î?:¯$?&Y×>£=À–>fÚ ?wfå?9ü@MÞ?Yœ@8í?ò\m?–?‰´?—£¿?§0þ?´ƒK?Clèÿd?T[#?v>¿ó +?.ò?Zä€>åÒ;>$„œ>)À•=¹·Å>®™?Œ>.Ác?KK?ˆ-µ?aË)?c$?Wa??9wÐ?dÐa?|Ô'>Å>°??„‰{?³óÙ?6J>òÙ˜>ŽŽ=/Àp=©ã<ß™P?;!o?ˆ—??R×í?<ë¬?¹|&?Õ¿@?-•<>Ž±>?Y‰?ÿ¨?‘>ûþî>ÿ{>ûüõ>ìe¨>Ú¦?³ž$?ÝÛø?x0?$íó>,'$?3†S?m¢‚?/3?&öÀ>K¢E?öŽ?.­¥>S¹ð¯6|>ì8Ð?‘%?²¶Í?hb9?BL?³eæ?Íxæ?“ð¼?|ŒI?#Ke>üŸ#?¤p?+6O?P 4?`Í>Þ;>7“Z?83a?zUW?$”?®¼?‘‹i?©'1?¬ëD?­R??Šv|?}j?†ÎJ?ƒÈÂ?œ‚?†=*?$ni>ýÁd?_™+?}Þï?}ðf?}þp?°§?¾—µ?{?ñ?¢ö>þaâ?•)W?¢©?´Õ ?­Ý!?“MÏ?Š‹>ÀÓ>{@r?(iž?2R}?&,?1†?Òó£?äp^?>ܳ?˜Ð?µô>ÿ“>ÿ¦9>ÿÁÄ?Œ*i?”o‰?Ú?Îz’?€H?{Q?.ÿ? ƒ?j?€FK?€Pá?‰?¾Ë?Ã2”? Šë?¸Pz@Ñ@ «ô?ÀQ?ßÀÌ@1x?ê?jRj?dªó?_?GS?.è‹?SL>åßU>ýʈ?Ñ?…ÚY?ÑMs?×Ò?ܸC?¡hà?hä?*æì?E2?J]³?züà?€Ù3?|ïT?Ös?ñáÌ?«Yf?·ñ?‡t\?•â?Ÿ +?§$=¸/„?x_¡?'D>œ„¢>´ŽÍ?Zû'?W#×?ìÁ?p?ß>ð˜=› <£×<$4 =Fp>Œ|¿?0¤V?Íä?%h?>}?Åè?‹½?&ÎÂ?—û^?ÂÕ?lÚ?UP>|ø’?1+ó?bæ?{8€?‚¡´?¥§X?³ª-?‚ø†?ã‚?è ?}N@bÙ@¨?Må?J8ï>Ó…(>Ñ—I>6ìN>ÿ67?¨\”?v¿>€Ãé? +K'?ƒ'?¾7ü@þ?¯÷§?&¡²?Ü-§@#øŠ?î= ?¾sg?ñÙ÷@@ƒ?ÒHO?¾Fi?ë i?íO?ªsŸ?œdb?e.¾?}…ž@f?ù-½?l¯2?dk?ƒvÙ?‘ÆÞ?·'5@ U@b»@1_¶?²Â?žá?ƒ’„?‰[ ?Œá«?·›A?ÒG^?ž›y?‚äS?ÜSÀ?ý O?—ø?s$N@‰@œ?}M ?_x(?ÄÓc?®V?ŽÏ¶?‰æý?„ÿl?€ék?ƒÎy?q­?3Y²?•K‚@x ?௻?‘ÝW?Ÿ=H?³z½?y­è? ?Vÿ•?ƒ³a?®#º?¼†?Âѳ?ÅÞ?ŽDE?ƒëã>¨Ðù>š±b?.f£?E³›?í^?ÖNº? +³?(uç?›´Ž?|°Ô?ôå>­b{? +®?£OY?„Η?E¥Ž?Žiå?¹~f?Àee?Ämú?óM@8·?õŽš?ê-ë?£–â?œ4(?c°?h²¨?„*?‹@ö›?ôEÿ?OŽ?d$&?¤Þ ?­[ƒ?ÏQÙ?ê~@ Aî?ÖMi?P#«?7Tæ? Ô?‚¢¬?²)—?f+Ê?t¦?\©Î?ƒ&t?"a›>ùÖ"?%:?4’?Ù‘E?áò+?‡Y?ƒ%o?x2.?€ªº?o2³?€èW?u¹?|'?ƒÄ„?§½^?ë?Ì"Ä?•¾Ê?ÓK@öƒ?ýF\?Å”‘?w´ü?²k@í]@WS€@?Å}Š?ö¹Ÿ@d ?ž¯7?ŠŽŸ?Æß¿?ÐÃ8?_ò’?eÑ?Ñ!”?Éâh?ÅKŒ?Ç–?Ñh?·9Ý?AÝÂ?E‹b??ÂV?S¯c?ƒl[?šØr?Æ£Û?uÀ>?F$ü?¸[q?ßW×?þTD?½vR?!Þ@ä·@D@û:?ùE?•.ß?tð ?KPq?QIý?Üï_?ã.?XÁ¡?`u?èˆt?Õ?;(æ?r4ú@(è@tt?fÖï?ƒ‰Å?Ì¢?ò+@-¾¤@=L?ÄBQ?ÝõU@ÌÙ?èzŒ?Ä"Ò?ƒ\ï?¶â?ª·¶@«?ÿ±¡?ö š@w±@!i?í^4?Ñ#œ@&s @:ý/?î\ý?õa?ŒN›?‚hÿ@þ¦@"ó¹?ʽ?‰7?ó‘Ø@g‹?3\Ä?7½c?®ìR?«Á}?c>0?Dø->­>úcZ?ÒÀE?ÌLG?ÃA?‚Ö?Á½ï?Ò°œ@ +Î@ÄC?û:?ÕB~?šô?ŒÚg?b +Î?uoŽ?ƒûQ?´´—?ô\V?ÄH©?˜&?T'¹?»@GÞ@ŸV<@(fA?“t×@£v@;òx?êi?£¾Ì@ʱ@‹^@ˆ>@$ñ@Pªp@glF@Ù@r?Ÿ·ë?‹?Ä^Å?Ó¡G@=æ¦@Nwo?Úæˆ?Åì¤? ?Á6?–_¿?Ž“?ñ‹?îU·@=@?X@È@¬ >­2Ô>©Ž§?ÀVØ?¾H‰>Å• >±²?ø²?#u?ïˆ?÷×4@ d@~4?1?}¨—?ƒS?‹A?β”?Ñ{?Ð\Ø?è}Ë@&Ž@³º?uQ?wÕ_?<âb?uIè@ >@õÛ?}ø5?ŠLÝ?Æ š?×f´@"Ìù@+íP@FžQ@@ŒÍ@6ä@1#"?²¤:?»í?õý@_@XQ`@JØ«?"+?BdÃ@=è@5ß ?žn]?¡¿?p?=q$@\ª`@Tcý?½dÜ?¿™Ý@ %³@Ãì@$eS@)½…?ÀQÑ?¼ìó@zH@ ;?ª™ó?§áÆ?Á*V?É5s?±$¹?¯·,?x>úþŒ?Ù+Ë?ö=§@çÂ@ÄÚ@¨¨?úmé?ž˜?„1›?q%ƒ?cÈÃ@ +Ý@,7¼?½áð?pe?ÌÔ¸@j2?á¿"?Î}—?øö|@ 0´@.~z@P–>@4Y?©ß¨?®à¨?ºX?ºIS?º2R?˜ Å?& Þ?=~?‚[E?©õÞ@Iš@"¸?wvÑ?zšg?‹~v?¨ +â@Ee@=´[?«¤„?©‡@)Y@-¯a?µë?ªŠÁ?“ç[?†îU?Ç3G?Ó®û@d#@+†°?ýQW?Í^ï@>NÀ@)¦@'\?ªÎ @š%@c3·@8èÙ?æ­]?îs?óÎá?äâ?º(s?Á„u?×ì?È1w?…=ž?ˆC?âè?Øm?‘îþ?g ?œS?œ6æ?ËÉ?ÔÕ‚@ ªK@#Ö?Ç]­?FIÖ?•ÁÊ?ÇMÃ?›rû?.Ù„?„ ?ÿîJ?õÞ—?«$¶?©ÐÌ?t"?ul„@M —@Hº3?⯤?Ùß?p¾U?I£ò?’ÎÙ?¢CÈ?Û¸d@S$?½&?:Æè?…X?ÕÙ·?×ù÷?ÈEJ?Õz«?ïç?î?êÓ¸?ózý?¢…ê?“F?Œ˜6?…íØ?ñ^Š@„?çÏ ?²g¨?†Ì™£ >˜º?ëxÔ?ô×R?qõ‡?6L¦?¼§?É?žø£?ç l?Ã_ê?– i?™LO?br?–`¶@ Áo@#½@.—Ø@-Ö²?ÉïÛ?£v@7î}@gWÀ@#»?Ëp]?©[Š?jYØ?GÔû>†»­>…F{>窽>ÔÃE@ +üH@fî?ß .?À4²?›_%?Šw?”¯f?’°4?QÇ{=®¹'hž>ùLÿ?‚?0¹ +?@î'?€›?…?Þ”?éŒÜ?{>ëPò?+ào?~ö@ +?Ž(ú?äˇ?¿1h?1I(?TÛš@*é>@/Cq?4;>Ú´Ä?·+´?ä¹E?Ьx?½¤?¥”ƒ?}t?R!6>M=É+¦@¿#@ Γ?Z3?,!å?6€Ë?BE?ë´?À=W?°OÀ?dú™?]]P?%\„?#­?• z?¥9?L +÷?s?@f>ò°x?[ÏF?¬„?Œ˜ª?4‰?(.´?»l?±L¢?§…›?´A?À ³?ÇSê?¦0ç?˜v?V§ð>æWü>òâu?¨Â?Bƒ?h-p?ht?dô?=û?£t?­f-?g9U?:¡Ô?M–-?i¬É?‡ ?˜‹ƒ?i#v>¯CØ?$a?Úa?Ø ¬?gUš?h˼?st…?{Z?†¹&?z©„>î[˜>‰cs>¿v1>ê‚?K3?[¢?q6Ž>¼[ö?hEó@ '?êÔï,ú?Xã¶?TÅZ?ì:?ìt?>BD?1‰6=Ýr¦?Š(I?²NÒ?I³s?_¡>ñ©æ>õÎd>c x>?Û>©Ql?(2??e7?$:l>‹å? ‡\?ƒz¯?B"1=u½æ>¡c˜?që.?˜x?ÜÁ›?=¥>„Š,>w‚=~“&>Œº">Ÿª}>²ºt>ø; W6õV>4Ê?wÈÊ?* ò@Vn?D„@EA@Ê6?˜Ò?=‹=Ƚ:>n?*‡?A†²?xÁø?aÅ>—,?=#?X²?J&>D®n?+½?·T?¿>@Ó\>øµj? h¡?L¼¡?k ¢?Æj´?ö|c?pfØ>ý¢÷>rê>‡Ûl>ãÖ6?;Iá?H¶¦?7´V?HNÐ?MF«?Oz1?Õ>üµå?]¢?|šx>–)’<²mŽ?ŒZü?¯jç?vŽÍ?MËq>9Œ°?\oj?Šy? T>ü'Á?y¨?YB?ˆNè?| +?T*9?TÁ?(gá? +È0?žQ?·Ú!?7Íé>üã? €?ž)$?è¨_?öÁÛ>ô8ó? ?X>¾ë,>"fE=„ ?£ 8?æÖ$?[?®>üDð>û®>üTë>+J>‰ÿS>åÄþ>üsÜ?\&U?ˆ…?¶À•?¾Éû?jS?2ö>àE>›!>Ýc¬>üÞ3?Ž³?°G=?;ên>ýø?Y¹?s#?ýÔ«@û”?”’?E ?1ýT?.rì?Š³ ?œåd>ù¼>‘Sw?>Li?R‰‘?r\g?}î"?~Ó?~ ©?¶~†?Á­@Þü@Á?˜v ?l¢Š?²ê?¾í?€’p?}ÉÏ?Ú6»?ã­?$áF>þôØ?r;?A?[r°?9œ+?Š³ï?ŒC??³ÊF?¹M? ®¾?PDð•"?Fé?Àë¤?±/ ?”‚N?¸Ì?èÍ +?™›á>¦?? Ò?R1L?wV¹?‹ä˜?%ÇÃ>ŒÍš?| ?Èß?TJ?(ð?5[Ú?9š>ë^>çp>UÀ¿<å•Ï>½Oh?Æ?©oÚ?Ë~Z?äí¤?åq{?Pà³?*c„>ËŽ>ÏÜ?‹zm?…’Õ?€úg?€ó>ÉC]>Æ°£?P™Ø?E³Ö?:Ít?Bs+?ŠÄ?…Áú?}‚%?bê?~wM?&ë>Béš?¥Ûw?³B?æ]¹?¶h?\Ô¤>‰2ª=ç²;¤nü;€Å€?W?[?Ó¶!?ÎàH?k½m?€óK?¼Ø–?žxi?'ÿ6?<+?,5c?Η>‡¬?V,?ƒg?ªÞK?Û¾Ý?ðo€@Æ)@ è¦@˜ò?±¶?oH?ÜQÝ@ˆ7?Z K?ãa?(ji?9e5?‹¨!?‘}?g??®ç´?±‡?žF?›B ?ƒ|?®Æ@ýO@ +¨ˆ?é¶*?ÏnG?–XI?“Ù?‘[æ?¦)¯?¼®]@ă@:(Í@h>?Ä¿«>÷òw>5o? +@?ü?Í"?äÊ@0@ÎE?_¼r?p‚?ŸµÁ?¢.¶?¤¤´?Ÿ$™?ƒÔ2?’ÓO?²na?µ ?»?Âýµ?Ó[¹?ˆ”Z?â£?„½?ºOœ?kd<"6p?½)@>?la?,«B?¬X?¶ïF>ä§{>Ã0W@$X¡@?’ær?‘Uh?CtÝ?f‚?¯‡]?£þ"?fâê?-lÐ>Ÿá ?Ro?Êø*?áê?òí[? Ty?2Š²?a09?‚âà?-ö'?Y?‚?¨?“·è?¶¾ ?¹t$?™‰?Hx?²a?³;ò?Þ,?Þ”I?ÎLê?Ár2?¥qÂ?¦V?ŸÝ¤?£ Þ?®ªv?¨-]? —°?Œq€?kÂR?2¶g?ò ?`ce?ˆÕX?6¿r?Ø€>•d<÷[¨?U29?vñÔ?–j>?Ñ-@%¿b@!Fú?ú”ú?ßäÚ?&†x?' 7?N  ?Í@cf?åm?Å´ñ?° ý?ˆ®r?^?)ý?yòŸ?¨ZT?xèê?,^9?dÁ!?ƒ´?­ö!?Ã@|@#(>òŽ=éVR?´PQ?Ån?ª˜x?¤¯0?¨DV?¦}P?^’?{ï ?¹Õ[?ªë¡?Gñ«?V‡0?ƒ|Š?ƒw€?ƒs?vûÞ?W§;?Hã>Ä ?HÀ¼?¯ÿ?¢…×?µê@Cî@à?»c?…=Â?‰?ñ?Œ°x?+‹V?JÔ?ÿP?,M?YUW?m«?¡æ?¼\@#Ù@xŠ?MOß?nòN?å2„?í•¡@úi@¬@Œ@)0@d¬?û=?¤Þ?Ä;?î½?Ô{9?µÆ?vŠ‡?½>bº¹<ù?¤É(@§‰?½’‹?žå:?àäÀ?÷ñ?ÎT‰?É÷?Ö(?ÙÈD?Õ¼?ÐZ4@ *Ÿ@œ\?Zã5?7;w?•©å?Jk?š‚‚?šW?ªSå?ª«-?Ô»Ç?ÙF¹?ÎßE?ß;{@Mi@ :X?ÆcV? dŒ?A?\.Ú?Ç‚‹? ¼Ã?6ˆ+?[I6?Î@?ÅÆ?ÂÁ?Þ±Þ@"Æn@Ôô?Âv]?¥:??‡‹n>æLâ@× @w•î?ö‰n?/_ÿ?Åò?úó?rtõ?JL?‹&)?¬’î?ùºc@³|@•¸à@¯°û@±µ@¯y@ ä?¼ =??ñi?&ãï?ÿ©U@k¡?½£?¯‰Ã?[‘?WŽC?»ä‚?ÀüÆ@‘¶@hÔ@O…)@Q´˜?ÂóÞ?¿}Ì>B8³>`]†?ý?òð´? 1à?¤Z?˜EÅ?”-œ?y?˜üž@'^@º?ª£>ï/ =t@>’ñ”?÷Ï¥?ú«¯@ ÕE@sì?Ÿ’©?¨c–?ÃFê?¯}Æ?¸?|?`>}?a‚v>þ¿?(º?Ò‰?Ëà¡?Å¿}?ãÛ®@md†@[Æ?~Ò?„G?¡ä?žGU?·W?¿/ð?óÀÆ@²@\XÌ@QS¼@ yÀ@+Ö?µk/?²ˆ-?¤Ðê?´ö@eeç@d‚@4÷@1À@P—Î@M$?½(a?½\b?Û|½?Ùdá@aŽ@Aþ?šfÈ?’?š +¥?#ö?‹@´?‰Ðã? ǧ>û #?±/#?À: ?Œ'?|¯#@ +µ~@dz?ýˆ?ë ?_;Â?J^?—d?»š/?¥;?“Úè?Æ¡¶?á¿M?ŒŽ7?4CÏ?¶‚\?ù,@O@5í@@¥>?µö‘?±ñe?¨9â?½‚±?Ö]á?ÉÍC?ºª?¾«·?Ųž?±s?~ÓÖ?‰K?·Þ?¿Ñ?ë•B?ëÀ¸@ +vž@ V?èÓR?æ×^@ES'@Co?úŽ@?ëJ@ tJ@ ¦?áæ?Üj@G@’?Ú) ?·z,?ëN=@ær?¸'x?uÛ?µ|ˆ?ôÙÊ?® +? +fü?U1G?·÷r?¸>"?·'Ž?¤I?)/?Ga?ªÊ?©q¾?×ø?Û2 +?Û?s7›?Í ±?ØS@"0@&¤z?àÈ?¬kT?ƒÆ„?Nd¿?¢m +?á1?Ï÷×?µk¥?u>'Ö>>f6>ñsl?&·?ð¬õ?êñˆ?Š‹N?•0?³?´Å>¦B–=åZ`?¥Ø,?Ýš²?ÃN,?´é?ƒý³?.jƒ?/>ï–ð>Ñår>£¾? ™á?Û–H?×à¨?RC]?E÷?ÿ9%@V3@”@ß»?ü\–?íôõ@¾¾@,ŽÉ?Ô‰Ñ>í²;?=e=?¥S—?£S? ²©?š1G?AŸr?=Ž@ +ƒÜ@ÏÞ?®> +?‰¾8?4ß>­5ö?±yŒ@vÇ?×æ?ù‰?‡eß@6Á@<[?w¿?q?o Y?€*°?yQ¬?y¯?Hk¸?VÏ? 4W?Ày„?ñ41@ Ð?ý€Ý?wݺ?„J6@d†?ôæb?ÓsŽ?Ôâ@ @ÕM?F¾J?³à@+Ÿ‰@¤“?å¡_?×ß2?`q.?V³ß?Ñž?Ì{´?ƒ\ì?h\?hIà?h.Ñ?o?:?ñn?‰IŒ?¦U?©*"@ ŸF@ N?$P?ôœ@bq@'¡Þ?ÓKæ?€°´@ …@d +\@=tv?¯‹¼?¬-!?‚U2?‡g’?àó¢?æŽM?È@¾?Áa?ÞHÀ?ìéY@ +Ý&@, ¤@Uü?ºÇX?Á1‘?Í3?ÇÚ™?¸ÿá?´¿„?Êb|?Ühy?bÐÙ>ŒAô?Xà¿?`b?”ŸÇ?/%?ÀN?½&?¿j‚?ÑA´? ož?S©C? øi>‘l??àæ­?é¨É?¡üô?¤É“?§–Æ?ªi9@€@$F~?ȯö?&P?(è=?.³?3ý ?Óé§?Ùº&=è˜ì?¬nd?ä¾N?äÆŒ?äÁ?ÓiÛ?¶)Ó?°MÀ?§+?«é?åa?ç¢5?%…Ö>äÚô?”¯$?·ñã?˼?ÞÌS?Õ‰€?ÌB8?Âøš?¹¡V?°Aú>ÙD~>«M6?¾£(?Ó¨ž?Žy±?bG€?ýS?¬H?ˆš°>å™??2c@ @ð?Ããæ?Æ_c?›W +?›H¬?‘PK?…^¼?:A>æe'?ñ?fŒQ?‹W‰?åŽ?ÕÃ>æñ1>ç 7?£šá?­s¶?)S?•(s?Yÿ`?(–·?E?gòå?™ê>Kb¢?^¼ä?M5Þ<"0=|á°?¤¹1?£‹v?Dùµ??÷F?@¢?5!Ç>ÍrF>‡Öÿ>ÅïT>Ëà>gú©=”[.>›íŸ?eç?k!å?[¬>9¨>“¾¤?øñ?¦$? >íŽ>[˜‰>´Ÿ?^þ?‘Í/?€‚ý?nk¦?DÄ>îä>ÛDe>À› >Ô¾>ïí†?Nû{?•,)?<&>4/%>M*]>\NG>•C>ò,s>™˜Y<®Ü0>ð>¤î>œ{¼=‰M‚>9W=ÍK+<¥7]=>('[>î%Ä>ò#*?-á>Ã}@Ti«?V(@º~?³Þ^?zˆ?a?Jï?2w?l>hO*=8ø? Ðú?Uvï>æTÅ>êa=ýfT>c>„’ô>“zŸ>¢X‹?0'?_W?=£¶?žñ>(j‚?ˆ#’?³5·>³ô>Œ*Ÿ>­?› +?5 ³?@œ?,ãÒ?Íñ>üÓ]>üÁ>ü±ð??f5?^ðæ?m ?yâd>‚Ê=>ÏN>ù?z.?~þ?‚Q?Î |?á¥?ªÝ>…ã=z±¿? ²õ?<Ëx>zdŸ=ßÝ?ˆo~?¶v?í_4?øv ?éÑè?Ý ?WåÝ? &¦?D¤Ç?m•'?b¨?C->'Ñ@>w€8>®ÖŸ>9#‘=ËÊœ>å}? +tÈ?Â3>þ8¹>üS>ü[>ß½4>Ê‘Ë?=ñ½?V–¦?»(>üŽ?€íú>ÌUª?.²ú?,×Î?ý)>üaö?Wl? +sj?‡¶?£QZ?¡œ¥?™ •?d´{?Kùð?qÍ(?}Ÿ>Åv>Q“?K¯?‚TÓ?føI?bCû?h{ç?n­­?à#w?û?ÿ +@½?’à*?~wl?¶HW?¾ò¬>Ÿ†B>/ˆ—? î@?·lC?ñH>þût?[p? SÉ?χX?æ|Ð?—†á?œMÃ?€É#?ˆÁ?™ÿ?or?v™ñ?fŠ8>ÿßi?a?cÅ(?fÒ?˜?.Ó?€#¡?‡ãê?¿ÀŒ?Î;Å?õqû?ÙÅ(?‚m ?mýé>Å;>³v>àU=—ýJ>Äê?(u?ƒ~?òœ´?ÍŠ?›3?†K?6F|?v_?¨Êë?ŒI>?r%`?@N|>ä=?¹u<@êì?¾½?_Ę?&ê£?;ø>›…T>c?‹gÁ?ÂÞ?A?zG?2 ?)nA?å]¦@%?4²©?Ÿ¤?›nR?˜Ç|?—·k?¡«? Ì?Âô?R¾_?`¤?œÜ‡?¢`¹?§ß—?­^Ø?²Þ4?šÐÙ?K?(hI?‚"Ô?*ià? ï%?©w`?†|í?K³ ?WX?U9??Ìfö@ `è?¢Ë?Glò?3¶ƒ?À?BMW?\î?GUü?J ¹>\Ì=—ü8?¯"?ÄÃ=¶ÿ!;‡ï?ÀO?c?$:Æ?Tò„?ê‹Ä?ô ô@:9@Æ?¬]G?Fð?Ôè>ªuC? €}?œìe?p°“?3?Wìé?`Dž?c„i?q­„>¯W÷='†/?BÚ|?ƒ ^?êY?}¸®>*ÙÒ=˜þ?¯hz?·­ß@×v?ì²±?0ó?5¿?:.Ä?{4b?çyc?ÚÚ?Îw§?²‘Ž?`œû?ˆZ ?³ Y?®Cv?ªëA?‘~-?vź?@(>6é2?;ÆŸ?„ã–>ƒ>ÙS˜?º~?·µ{?Å¢"@`Î@FT?Á-?¼j[?ÎËœ?ÃËø?¤jN?‹ÿ²Bø=Ù10>¸c?ì7?¥Ö6?˸I?¹¼M?°©i?ñ¸ã?øz5?Ûü?fm?žfx?± ð?µ¼Ž?¢Jû?G›ü¡V?sÅ?éÎr@åÎ?› æ?‹?¡˜]?¾Ú?;ªÉ?Šƒ@ º.@Ô@<Â?ÿG?Sº1?TœÓ?¤?*T8?iÉ?‘+?ÄEG?Á¼?ÅøL?¶G?šß?v9a?(O?4#Ë?:Àn?KO?LÐ/?žQº?Áca?ò]@rc?Pá˜>öæY? ®h?{¿?æPv?ìûù?ô,Ï?ý”ê@ ð@ …s?ÿ°°?Ùb4?>,q?¦ú@7 + @9X?Ÿµ?àGM@Ëî?¿òO?bÕ?T÷?<êŽ?› (?Åš?™¬Ü?ƒ·?'y?²¨?¬¶?ËèÓ?„¢Ü?hÉ?¿ #?ÅqÜ?Ål§?ÇI?áÒÔ?Ël”?Ï?Tm¿@Yý?à.ž>þõa?zt?ùzþ?¿ŸU?T³P?›Š¥?ÙáÐ?p¡¯>ï¹?EV&?­ {?fÕ]?¦i?+»?? É?Ť? A? U¯>gú=•Î‰>ï`_?.9?aàz?c6E?œn8?›öb?Ý?Ë:‰>å³]?)Ǻ?ćü?ÌrÙ?é½p?äŸ ?Ö÷?¼Ô?xôY?y[?~æ?m·b?o`ÿ?Dµ:?’~?ê6>úé‘>Vüô?¦w@©}?ú¹?ñÀv@&¨-@5ée?Û'(?± Æ?› o?˜Ý›@ ¦²@çä@lc@|öÂA òA¹ @²_?†ºU?vD#?n,n@?^@L Ô?ÓeÙ?Á1é?›ÝÔ?”ù‘@?¶«@@ð@%#i@"® @ v—@!é!?¤¿z?¦Œˆ?‡éi?‡b @ö¼@ íI?È¢?5vÉ@5D?ý¿?áÎ@?æŸ??Ç2N?¼’ñ?€f?zê\?o g?{ò&?ÈU?Ä<£?¤š‹?²pä?Þ¿ž?ßé"?ÿ8…?ìq?Œ?zp +?SÜÏ?Pûî?|ZÂ?ŠÌŠ?ì´:?îÆ@?á‰Ý?æIó?Ø%œ?ØOþ?»U?ÁÄŠ@D.@˜4?}Ç?q/Ä?ÍB?Ù??‚™2?„œÚ?%û?of¦@0˜+@(X®?ð?@“–@C@Œ^@ +'Ý?Ô¿ú?à @?½-}?ÀRÀ@ `@hW?£?¤æŽ?Ò;–?Ð’±@á @ó?ºÓ?™.F? æµ>û?Ü??ó™ @y˜@H±@?þ~Ñ?Î z?ÃÆ6@Ââ@Nö?ϨØ?«F¼?¶!’?»Is?¯S[?­D?Ãj!?Ævà?•Þò?d ?ñT•@&%¾?é$¿?~ÌQ?`Å?Ÿ‹Å?×q-@nî?ÿ±b?º÷?êV•@"úÚ@à?÷¸Z?Ú‚„?|(¥?ªp@3Ð@&¶r?ÃÓÀ?Â/?˜©¾? ”’@B_Z@CR©?¢£¼?¡ 5?çü?ò‘u?8“S?LJ?Ô»Œ@V?—Z†?Kk?çÓI@QÅ?èJ?©Å?бA?ür’?Ý´e?·a?ùâ@6Ò‹@#kî?ïç!?êÛ?Ú}?ÐlŠ?¶Ùg?¶ÆN?¶­ò?¶—â?¢FÔ?ŸEì@ãþ@ìŠ?üµß?÷Ô@MÅ@0œ?ì?@?Êe?«%?”çò?¥G•?µp™?£Ç:?€§È?^Ò>ÿÞ? —Û?rmÊ?‚Äè?èZr?ãô{?¶£=?´†µ>ZTã?“™?Ç–2?£] ?½ ?ˆ1?w™?=1”>ïžx?må÷?çvŸ?˾T?³\ò?¶°ð?à–?â±q?…É?~ U?ª…?²Êù?‡–]?pR?ö®?÷vØ?†¨=“FÔ>Ôþ±?„mV?yÀo??$?[ ?¿èÝ?»Lž?¬`4?±G?Ìv ?Ó;•?²óà?Ÿ®Š?“7D?¾‘?‡² +?kï +?Ɖ@O³¬@M?‡@cµ@u1@%@ ¢Â?Œç?jÿ?ªz°?·bÚ?—Yb?†Ï»?Ê]|@y ?þó¨?`‰0?’k4@?Iš@@hµ?A?‡¨†@ …g@ Ö?š×8>Í?”ú­@Ø?àÝ +?hý5?ˆqS?â‚n?Üsç?$Q ?2Ùò?b€?hbƒ?V¨?™ö ?¯ªÒ?½¬º?”²$?+Ú'?=q¬?–Ðl?™®$?—΄?’ª]?%F?„²?ªMN?áÑÛ?äBp?æŠ3?Ö¿?­*è?ž¥?‘? Öt?à´Ì?æ‘?õÒ?ôõ?äÝ„?â(v?ôÛ@2Í?üÆÚ?° =?­¥½@£G@=à?Ø°Â?׋j?W’­>ì¯?±?²@ Ï}?æˆY?¤xÆ?›þ”?…i?‚vŠ?b#q?r ü?y—â?lï˜?ÙÈð@ ¡?¯ýƒ>›ô/>Ü¥]?a¸†?MöÇ?u‡t?oÙÉ?ak²?dcÜ?Ävæ?í³¶?­ff?P…@?.‚Õ>äÈ»>ú8O?I'Æ?TË">÷ÊO>ÕòÓ?…Q°?¦*?¯ ??·í?ÀÛ8?ÉÔå?ºOt?^Ò=?jq˜?­Ý?°š?g)O?OËÚ?G_y?VcO?~ 9?”‹ž?¶sÄ?åÖï@Xõ»?¼‚>æ’?/û?o=Þ?)м=µáJ>+\?7?Ž.Õ?U z?b4ã?^âÛ?O5ù?ÊÙg?îÃ?w¡?nv?+€?l2M?g¡?oª?…b•?Ì}?Áµ?­øS?­y‘?­‰k?­¥?Gk–?}í?‰Sž?¸½l?{9å>Ÿà>–¾ÿ>þZ]?º¨V„;=ß +=¼À=Ë^Ö>yŒ=2±-?"é‡?+.J?0ÕÜ?(ý>ôoN>í/>bá=…¼?4c?m„ø?k°Ö?cl/>¶{¯=åIþ?7~‰?†7×?Rßd?7¢?3ŠÖ? C•?PCP?ƒîe?En·>òiW>ŽÜÇ=Æg‹>lz>kW,>¤Ê×>f6>+éE>ñ‘­?*¯ð?m‡?‡r?œV?#4+=#Ö@mšÇ?H(Ø?Úñ?¢ÉÈ?IN?¶V?AK?)ã?9?H¨ä?oö>Ùª×>9¤=ªvä? ®„?^#>Úá>kÈ’={E™?éõ?9)ˆ?¢Úè?¾}Û>Ê;-£ä=o¼€>J>¼pÊ>Æ>îl>ý=˜>„6f>bIÜ?„%T?¡ðŽ?'“2>üÖv>ƃ>ÆÄc>†Ý>p;= ª;¼ÿI;·-€?;ÛV?ah?‰i?’Ë?ÉfÃ?ØÁ¾?:ÙH>äŽA>où¶>-{> =íM´>°eW>Üi>ž<Ÿqw>ØÂx?„±?‚¬ü?”´p?#!ä>ü‹>·¿m>™*R?œ»?¸a=Ö–­?KaÎ?|Š_?xZ>üž?fWB?wÙ(>Ri#>ž> ²€>ë\u>à“?û"]@¶?;1;µ3À?B±l?oŒó?%.A?òÔ?9xG?L^¡?¼Š8?Ê;o?ü=?üáà?{¡>˜†4=e&>ÓÅ>þî?Ž}? ½$?l«?–ò@Q]@ºŠ?JÌ?4?…éB?ì>Ø,l>£¸?½{I?Å/ >©Çú>‹œ<>U½0>6ì>œ³Œ>‡=à]å=¶Î?‡jÒ?„¦’?¨œ?zo×?È? IË>ÿîŒ??êÊ?1×?”î»?”À?€+=?u|™?Acñ?îr@«2?âX”>ŸZŠ>p©–=âz>«‚Í?€„?7:¶<¥Ï>*æ;?§L? »j?1°½?0³D?’W?"Vz?(—?i]?š@G?eš´?èr?"ìÔ?Jz?±`?ìk?Êè?"P»?. ?-[?“Üž?·P?ø«?GFÛ?† ?º7â?Ò¢;?¢”6?–Úµ?Š›?’æÈ?‡•²?z=G=–?a?PþX?&Ž½?ým?û·>ûÀ‡>æj??Ó?ù¤?Sù?»"?\>ãb?cc—?Ãg=?…îÔ?Rì?FÍ#?‚a,?×–@uó?½·?zùœ?h ?rÕ9?"÷É?—>Ÿ{Ã>bèb>íhm?°q?§¹œ?¹H!? +ë?„÷?~8¥?yÅ?sÍh?y7ý?ŸOb?²4Á?ëJÇ@ m8@3ãó@ +æô?ƒú?R²@>ó’Ò?=ìC?’±?Wü>ñ^Ã?š¢â?èw#-?-j?C§? ïÃ?¯ ?9G? Zx?_š­?^O:?Ž’@?“d°?¸§û?´ ?t˜?û&?s?Œfì?¤¾k?¬-ý?ŸV€?«Èñ?Å]‰?¨Üy?ƒ›œ?T#??!‚? å;?ª„@ç1@c«Ô?ã«?ƒµ]>kžÂ?—|`?®b>ÔŠ>ÆÔc?ÖŠÜ?Ö%v?‰ÊÓ?›­?âŸ2?Þô¨?ÅÄ? àŸ>Ù÷ ?‚ €@¯?Î+Ý?AÍ'?…En?¬–??±ss?¶LÔ?ç@vÁ?#¸¹<8s°?Æ°Œ@Õ/?`–?0GI?È í?ÕÚ‚?£?™†Ì?+»¹?&§á?^¸Å?£®ä@&2¨?ü‹:?Ñ?Ì?Ð?]®,?²ßè?\ø->fö™>×oî?w±?uÏ=?“H?Ýf +@B5@ï@ +ã?Åo ?´º4?¦-—?¬ @#52@n??õ?$(f? yø>‘—M?r?¨¹¶?­)ü?ªÝÊ?™°±?‚h?´˜?•ìÀ?ž[f?«OV?ùe“@Ú?½P?ƒø½?†d?„Ðl?›?ò]?ª.‰?³˜¿?Ob…?Wù$?“à?±C@^Ó @Nš§@d?ðÉÁ?ß?)*?…ö;?Ÿw†?Ŭ?Ì”³?ÙÐõ?¥UÁ?MŠU?ˆ+?©Á®?ÊÁE?Ø¡[?¢¢?ˆÆ +?-Î??RE?qÙ»?‡<^?¼š?œš?+:¢?6u_?’=Z?•›q?©¢ð?«‹h?–4?›®Œ?ÌÔ‰?Ÿ`&?F@q Õ@NÖ?} ?™_”@t¤?Ç©?ó?rof?`ù¬?~è?Š¸M?¸Â—?Ë«?ö„@ÄÎ?Ë0?º2b?{)?_à>­=ßØ\?ý;?‡Î%@€¼@ Tu@ )@-?Ûá?ų?¤YÏ?­ÝŽ?ă¼?À1K?²DÎ?¾1¡?ßi?ýà@ƒ›?ÆðJ?‹æ?NBá?‚Ñ?n=a‡Ï?p&?¿Ml@2x#@[ö@0YŸ@F°@u=@ß+?×,?ÃÖ°@§@fi@¡@æ¢@ý@¤?ƒ?³ò?Íý?Ó&Ï?ìõí?äþŠ?•±#?­B@0@,Ø@‚$µ@_D–?Ð÷Ó?È‚?½–¬?Á®ª?ÂþÓ?ò¾¤@%Â@ f¼?Ì>¬?­~?ÔM?‰?k?“{?Ï;C@nD?÷ŽÆ?öc@v@«•@ª?ÿ?ͳ?ª¦§?œèÇ?—È0@!Ð@Lô@:~¦@3Üó?Õ@ñ?Ÿ?6@-?@ª +?׎ ?Á²?M ? ñV?ð«?õ×'?¿l?€ð`@#ž @/Wµ@V‚ª@SÔ@sK@ +ˆX?ë#î?ù¹#@UÅ@y,@ O?@¾>?Óu?ÌÃÅ?Ñ¿¥?ж_?uGR?j“ó?€K#?ŠÞi?õR?Þ÷Ð=è”3>¶ðp@ä·@/*@™@yã?ÜÕ?€ê´?ˆw?èê?³Ù?ÅR$@K@]b?|ø?Š@?¦ŽÞ?¯vZ?â'ó?åÌ‹?ü×"?ã|[?~¤õ?%U?ƒÚ@?…)î?¤‹Ž?ºÙŽ@![ @qÔ?³á{?¡Ûe?pÅ ?˜{æ@‡6@Îø?û$…@î©@„1@lÛE?Ù?Üçž?Ëõ?Ú—¦@#¥‘@m¤?½wÉ?³·P>üs ?}á@E?ý)l@¬@ÐE?{ïî?|š?а¥?ÔÇc?Õžã?Ê8>"º=´Þù?db?‡®?q©r?zç?êï©ð?Þœê@Št@m‘?³h`?°Œ?wo¿?‚0?©’?Åœ¬?´~ÿ?£¯?záñ>Ô>ª^¸?ÉTÃ?Ëyý?µËŽ?°m+?™±œ?™«?ÕêÜ?ìd?Ž(?°R?.Vº?V“'?%ƒô>[Ú>&Ÿ¡>÷n¥>õÆ??x§o?ƒ:ñ?¥ž>?§4?ag?HQ÷?‰´™?‚ò?Œ—Ž?€j?NpÎ>^½?­S@<Šë@;J%?|Ó?eÊ?¸ô8?͆¡?êe?þÚX? ×˜>úß3?!çr?iM5?€C‡?²Ü?¸±?þ’½?ô¸?ƒõ®?hm“?x?®.?Ú%_@#ð?ä¤&?©§”?‘,Ü?[æ?![z?Åí;?Êâà?ŠÀ¿?yíQ?™;À?©4±?­bn?­ŒT?›Þ?p~q?€c?™NS?”u>ñs‘? Ö9?ÑŽ?·Ž7?Ç‚.?Ê]"?¯sú?”G£?žô¦?À ?Íw?Èh?¾€?r°?eÏ/?a–Š?d{¥?,ÇÙ?–×?@p?w†å?„ü?¥?šçÂ?„f’?}‰Q?ˆ¬%?Ž·›?¼ˆ?áoà?Ñׄ?¨Ò£?º’@¦å@­€?ÀL2?·Ê™?Èt>æɘ?Û@ ?Œ!>::T>Ô`Ž?B!?<0ã?6`ã?0‹?‚C?‹™?5Í;?e?:ªð?B£?AÚõ??Œ:>äÕÆ>æÄ„>ý?`? +ÂÉ?g\? +Î?s!M?‡h?4p·>å4?],â?ÆN¦?·ç?†Òý?…'¤?¹Ýá?¶¸Ô?Ä›Î?Ó§Ù?’Ú§?d_Q?+Ƽ?×?9Se?„¬õ?|E ?„Üm?|™õ?ou§?bHÂ?¹ ?ÁÄ@Öu@,˜)?Þ{E?f{=?†\?ª Ÿ?¬D¥?©?¢H¬?‰x­?zC?†`v?‰'š?d ?f ?ßy>²¬?°µã@c@ùµ?ÈÁ?ÈI?¬Ê?¤¨=?rx?y5¢?i4?iW=?»L?»&™?X´€?,OV?DFS?gI?ªÖ?Ñçø?©ð?k¥?k2è?gkG?:þw>Èê0>ÛwÀ?)oª?K>FK>iç ?«¥?Û?aƒà?K l>Ûô¢>Öãƒ>çÁÕ>ðÕê>8eC>°„?&?+ùÄ? !ž?¤L?ul>ðå:?#x ?O-Š?}YZ?œŸ>?e‰>ñ‡A?*”?W·Þ?3a>³ÏŸ>¡ªc>g¶>x¡v>Š½d>5ä;ÍŠ~:½‘m?'ˆÞ?±ª.?]Þ>Û¡‡>‡>Ë—@m¼ ?µQà@2i@þC?À‘r?qc?3ú?ËÈ?;F?Ž/?ºÇa?ñ“>|sm>®8¿?4I]?nxL?Pº?8$‹>¦ú¨>'`­?sk;?£­!?£Âí?¬A|?/ÞH>û2©?T~?_9ò? T>ý`v>ýM©>ý5g>©>ˆ>‡Ø8?†?™;Ž?Búó?%™0>Vï-=lj°?¦i?²®€?#…>ù'©=ž˜?S/?|Z¡>ÌÝ$>­$£?MÝB?pk?ï@? ä’?S H?PÞv>Úïl>ľ#=F?E^¡?yÇB?€§>ü >Q²8>DÒÜ??š€?V%>•™_>M¨i>ƒÃB>uZ9?žÌè?½%_@ Çk@Tã?òœ?æ›ç?´w›?°mÑ?+×è?‘‹?n×?†¨? Kõ>Ã3?’¤Ú?¨˜µ?’ 4?†çµ?z­?‚£-?]ã~?8r´?%@?ÍÜ?â€9@ {È?÷âJ?õØ>½²±?Mî–?}E‡?ɤ>ýc>ýnÝ>ý}Û?1i8?Ty¶?ü§º@V‘? ¸">C‰I<Ï“K>Ùã{>þe?]¹ß?r;Þ@T8@O?šÄª?p¿?Ý£?Ü +Â>³–>Œ°n>øŸ„>þÍÿ?Š¹?˜×Ï=oîG>–!4>§Ý?WÌ·?_3´?íû?­ï?±f¾?´yÞ?zÞ—?o x<ûEç=\[§=Š=̺=ûê(>…/?€Š?Œš?ÉZn?±²æ?=Àå?Jý‡?Ž™=?‡ø?€dq?V¬i>˃?ã?€†ê?aªÔ?"˜?Y²M?º¥î?žÒÛ?o¡?>še?ÌÖ?׬?ßÌ?‡4Õ?Í¿€?‘8½?@ˆ^>ýL>•Ä™?iNG?¬?0?uÔu?C?«ÜÝ?Ì"Ÿ?Qä?Vè>þ2?GO>H&‘>: ò?S'2?lC)?äa¶?ò9ã?w™?ä?O…:?J¹‘?|­?~Y>d¹P>” +?”‘Å?––?îL?ehD>Ó-ˆ>°}¼=XZÂ?=Zc@ ¤?Ö&<ÜNx>Ï»?r½¬?°Z?öK´?³-_?]`K?B?"?4mV?.žŒ?6VD?¢,?þš?^ñ>Aoo>šËØ>¹´œ?h8?‚¤º?Ž«?²Ì>tB=ðÄB?Û/?G? gú?*e£?º¿O?Ê(@ r|?ëEŽ?S v?¢:@».?õ3”?ƒ ˆ?X¿? õ ?˜äÑ?‹³Ï?ɬ? ž?­E?®n.?×u…?óð°?oű? ‘œ?Þ(G@tÃ@ŸA@É?Åj9?ºm?ƒý?†!œ?²à?¨Œ'?X<?u9?Å@?œ;³>3ö?&Å}?ÅWµ?»ìž?¯ ˜?“¾Ä?d½ ?iÁÍ?nÇ'?<8`?4þ?ë‚A@"Tì@ F@† +>Ïqó?u#p?ÝË?™˜v?’?Å—Ø?‰?”Ü/?Œ`Ñ?y9|?ˆÛ?¦î?®ŠÔ?¹uâ?ÇÄ´?òh?Ÿã²>ˆkU? +f¡?Mü?)+º?£7?£C?¾^k?ż?ÀMç@+½²@?C(?л–?®øª?ÃØ­?ÅþE?Åþú?ÁˆP?„J?y²¾?)?‚@5±@ {©>—V>èÖ…?3¯?fcü?–Ì«?œhƒ? É?›fs?–¯Ó@ãÿ@"¿Í?‘áð?‰ ?«½â?Êpí?D+?(@@ Ã@ji?´2à?¶§€?^ªî?k÷#?¬³z?”ب?ˆ?•?BÖC?D¿?Ryì?%n+>±_Ý?›VÜ@$e?Í>Ô?4Nk?fgô?o‰t?x¬B?æêÜ@o ?–Óô?~Ñ?‰Ý!?q‰@ •C@ÔÄ?ƒìb?šÿ@-“±@)ñ¢@åp?ózP?®/Ì?’†à?C½?œ²?ûîl?Ï.è?šk\?¯–¶?Ź´?‚£¾?ë?Úq@ö’?åƒ×?Å¡!?ÃÛõ?Å /?ÃÓÅ?Á·Ÿ?ïÝ—?î„À?²M¤?¬då?¶Ä?« ?*G?Q6š?Åfê?¹÷¼?æ?ì¬?Çœ;@Aá@QNÐ@?¶?ewf?«W{?òÑf@q@‹ˆ@ &@Ç+?â‰U?ÅI@ æ'@ "Í@ +¥—@Q<@Ìï@tò?÷Ê“?ò‰?¥x9?™ò?³àŒ?´™?î@à?é€?¥¹9?¾ÜÔ@N×@­?Âè…?°i?Aç?¦Œæ?×@J?Ñ®ó?¼1ÿ?Ã{|?Ó*ç?±¸Å?jß?†þb?‚Ó?¦Þ?ÂÖ?cØ“? +N†?ÑmÅ@ â?•q?Ul$?»=ä?Òza?˜ô>áS¥@.xÌ@CÇž?Æ)D?¸ÒY@94@!Ë-@#Ýó@ ñÈ?‚[¢?ˆtÜ?Ãtl?Ì5l?üÑ[@ð,@6ø6@EÀp@iY@XG<@–?ñu³?òš?[V·?Ã…?—ê´?.‚4?QQ>i.3?\<êZ>'å:?Í +?Þvò@¹·@& @L)Ø@JyØ?á'?‹†f?ºJ?Ã÷@1*”@.ØÝ?ïYÌ?í¢à?€q ?‰\,?í›ú?éÅP?­ƒƒ?­ Ý?ÖT{?ËHQ?”îÞ?•ÎÃ?À![?ÒòU@!¾Õ@Ø?âÆ?‰DL?¶Øž?­—V?ŒÍ?Èš×@eÛz@BèM?UÕ?€’ ?åû?÷%Ó@" þ@Œ?@À5?ëaè?~§º?ŽŠ®?Ѿª?݃›?þX$?æg?~*_?¬Õý@?ªó@(Ë[?z?d[¥@F@#˜8@<Œ¡@)b?¥ï‚?µ´?½àË?½Î&?½¾?ȵ?òÏi?íj?”6?‰ã¿>NTË>ÀÛ@ E@6–@'{2@ ¤?°/?ª¾Z?{À?{œ½@ ‚ò@'É7?$O´?`D?®?µ‹E?“< ?ˆa¹?}!%?~H³?±ÿ_?¶÷ƒ?ÀÊ'?ÄÄ@À¡@)i©@v·Q@Ö@ë?ºBþ?®#?¯??‰:ë?qÝ?·×,?×Ù*?Úõ³?à'q@‘U@€k@Ïd?çù@+´s@kÝT@#–z?x1\?“A?º¬?ÎÌ?÷Éš?Õ¬?wš>?Êi4@l#Ï@MÄ?’˾?™Bý?©±?¤Ç£?vÂ8?vjA?+3'?/6Å@"ã@'¡Ù@uo?üýž?÷ø|?õÏ ?‹û?F€@@&…@OUŠ?¯¤•>) š? Ób?h3ê?=(æ?%+?,Ã|?¡7?»Ýx@‹@ò@ åÞ@ æG@-]¢@#îÓ?%³?$}Þ?¶“9?¶}¶?ä%?™¨Ž?H¼K?1~?ß·ï@X?ë L?ß%?¾S‘?¦®?ÅüÛ?çK›?À‚>?~¡¶?Žå?·J?Á( ?îaÞ?äàØ?´Ö×?´òø@S“@ û?åŒç?àf?ཱུ?Øäv?”.Ð?p >ËU->¤7Î?+äQ?¾Ì@D9‘@/í?Ä #?³\?M? “8?¡?š‹?©ú‰?´ˆô?-þ•>ö­?‡A.?¬š?ègg@2z?ñÇ ?²6„?£xÖ?m"è?‰¶@ iâ@}?‘­Ó?˜iê?vÆ™?l —?îj™@ 51?±=û?l7ß?Jkê?9¿?cÂ?»?Ó?´éS?¯dú?¬?kaÞ?kK­?ªöŽ?°NÁ?Ú?’ l?`Œ”?CG?•åÄ?Ä w?”|l>î?X] @@V!@@õì?þ$a?ûŸ’?•BP?Ô?Xé¹?6kO?Vvˆ?vÆ“?Œƒ ?®??¸°œ?㙵?Ù®?Et?Xè…?èÉ‹>©ò5?ùÝn@áÁ?‰´?w÷o?Á'>æ{8>è6Z>å>òz¸?h÷?$î ?‚x˜?‡„\?Ð#7?ÍVì?´H?ªFâ?U3?xA¶?Åll@/á@qÌ?¶Ô¨?ÃG@#™Ç@'Õf@ê.@ Å ?ó£Ó?ì?B?ɉ?0]Ò?0f?7k?m+@ +d@(š?l›?xx›?Hi?AD?£±ù?Í&«@æ @%È.@@3>äÕ¹>úÁ?[…°?Ur>?’‚=?ç?OHT?BbZ??ÇF?0¥r?E½?±y?”A’?«Ø(?­à?Ì·!?ÓZ>“;¤=+3[;JV<ÿæð?57Ç?›4 ?L?Ôw½?2?àÙs?è„@g®@ {x?"W?"«¹>ø §>ç¡Æ?“¯j?°’ï?«g–?®Ô?Mž =9–¦<­£;§ñÚ><?ùL? u3?þC?‘?šæÝ?§Í=?~Y?j{?š×>Ž‡‘?4ü¸? +A?lže?fzž? Æ«=K“Ø=»õ=±‰´>º%æ?ž+t?†>=ÑÁ?•Å>îMí?Ék?Ö¦Ð>+”ƒ9/<¡ÌX?wç8?’“T>òw>œ§h=õl*>–'>ñg>ÆX>·à">[EI=2r<k;í{€>ü(Š?sŒ?ehƒ?Nn’>þ/ >a›™> +`>tª>ðiÃ?Üæ?*q¾?vB>£œf=öµÇ?‰pV@ÁZ/?¸kÔ@9rn@01?Їš?r6¾?(}?UE?€Ã?Ña ?ù–?ft>ÈŒ®>ëF‡>ÿê?7[¹?E9û?Ž<´?š©Ë?”>®Î¬>½›%>Ì_w>E`'=¡EC<±Ä9<*s@?PAp?}‡È>™„=þ7:?8É6?Nô–?G¯€?@lÅ?HÐ?`í„?Vý?W¥ï??]y?,9Þ?ªw?Ô=±yŽ«>zߺ>«ý>¡ÅV?vÉ?‚>¬­6>TÈÞ?{Îg?•±x?šƒ»=e= G;ç/&>ØG,>ü&t=›$?Ñ?& ¹=Û%Ø?‡Ð-?˜7ì?‰…?h?c?[P?L5ú?T¸’> 2;x;5<‘4¤>æž”?Ñn?9L>ü‹0?;µ½?UXó?#~“?)Gí?q…Æ?p”,?‘(U?¤?‡?OŽÜ?=Øi?4‚?$6?ltA?} ˆ>+`\>ç ¼?ôR?î0%@Šé?¿×?S(²>Áà*>á„?_Ã?‚Ên>É(¤>ŸŽf=.k¶?"}_?,a?Ó§?—Y?ouÀ?€…\?€?~|“?¸c?ËPm>é8I>µ>ú/v>þÝ>e0u>tR`>tÈk>Zn +>Á³á>«‚g?$!b?õ ?fé{?ifz?@?NÒ<ßL<ÃD`>!éí?Žy¬?™ê…?ýë?ö {@5?åë?€E›?„¥?ˆ³ ?€p˜?€j†?YQÙ>ɇ°?€f?su´?»!ç@ M?ÉP=¼¼È>ÿWH?€Áí?¨Ké?ÓtÎ?Ÿ—ç?W“¶?ŽÉ?¶“®?Kÿû>ü!>Àà>Óz?'‡?XÒ×>ÇþN=ò?°]?æò?]ÊÒ?\Ë=ídÜ;ýÌ@;†p?»¾?¶;á?Î&è?Ôq>ÛÔ'>¦š¬?ÌÓŽ?Åä_?Æg?¡4?°žÞ?™wl?ä0?$¸W?£ðà?y@¹=ðl>뮯?"m±?€•‹?‚Qa?tÍ?ªŠú?ñë?߆G?ÒV¡?rUÇ>¢6¦?Pê«?N3?ÐY>ˆÜ°?r>.È?{ÓD?¤t?6ï4?!ƒ‚@j2@Ÿ”?@Õ?Ï?Ö?b3??Š®²?}é›?²EÒ@õ%?üZà?Ä…Î?žW?Ag?cÝÁ?‰ýA?¼ìT?îû?š€@?)7s?Ãõ@H½?ª¥9?u ™?z36?[U?íÅ'@WI>À@î>s-j?†¶?Ž’-?ƒl‹?Œ5?ô)?ôÚ@@?Þ²Ï?w7Û?q@U?C& ?\Ž5?Ï„?ƒÇ ?[®‰?j ¢?h7Ô?+â?©Á?>\V?l;Í?ª—o?ÃÁU?Åñ?ÈG´?,™î>éc?Þ$Q?îi}?Ç?Á”>ï¸#?AÕ®@4ëá@D?ÛK?hP? +Ô?T ?¸½¯?³§…?—á?’–¹?”‹B?²²¶?Øи?¤¡Õ?zG>Â1º=i?ñ*É@"©ê?êF4?Û]â?˜!?ï ?ô!û?õox?—$r?Ÿ¥»?Ø?é?Àxl?=a™?p²U?Ƴ?“;%>^¹>àB?Yåå?ƒ¡Š?¡V ?À’?ß)¿@6@‡ì@#°?ÿ§ @XÂ@’º?ŸnA?ˆÓv>?#-=–ó¦?ÑÓ¯?ç24@o¦v@Uœ>¨¢(>ä…!?jôÅ?|ðã?‰^ì?aûó? è×?#]E?8å‹?Y;î?„Á@.é@M6 ?À°„>J*·=â•=€Ø=›š¤=^Ýù?›¶É¼±?-¬Ó?ÃBH?¼ˆ‰?°2j?¬Ì? +õ?ƒõ>?ƒ¼«?²¿Û?òUC?ϱ—?¤Ôï?‘t˜?Ú6?¢çè?¶Ð?§!?Âd?ÐÛ‚?Ýu?²Û?œÒ¯@`ó@!ø¾?ò5b?ÏJÒ?†0?Á¯?¿?¶Aã?B +>Wï¼?9&´?LXÑ@qÁ@9í@ˆo‹@¶?¸žË?ƒ·ø?zZj?t›Õ@¤+@+â?“c?Éê?þæV@Ê?é`?ó¢?™Ñ0?ŸTÿ?ê4I?äöÇ@¨@ ?›‰¨?™pÔ?—]]?™Áw?À™0?ÇÀË@èì@ J@%¤p@"2L@Sö@ç¦?½ ß?¿X?Âs¤?ÄhD?ºªh?Ärè?öx?òw?äâ=?éǧ@ Vp@ eë?þÂl?éBc?²’ ?Éæ­@ ì'@ §“?ûi ?Ý¢¯?~±Ä?~™Ô?~„ö?žk@(°?ó‹`?Œùo?‰¦^?tÖ«?ƒPi?ϯÎ?Ó|R?ûþ’@~w@\Û:@E6‚?¸g?·Y9?½çy?¥Ôm>©h??ê¼R?ÏcX>±]Ž>âù?]…²?n[é?üT@¦@%Ú÷@'{¯?Ê™?Ìa+?’€§?;?Fy?.~Ò?ÈÅ?¼C2?l¸`?noœ@/˜´@8Èe?Ë‹§?ºÀŽ@Ç{@7D?›k(?†¨Ÿ?ðÙ½@Ýé?ä?îZ,?Úª?Ñä?°Bæ?¡E?gñ>n0Ô?dý?£Îä?“µe?Š W?Èݹ?úO¹?ÑQÒ?ªWÑ?ìLk@B¹?ê1 ?x=?”‚Ç?º?Î2?÷x?Ó6­?w£?Tµ?z¤?~`¸@!\@ ñ>?<Šž?dD @Y@ Ëß>ö˜Ð>ö|,?””?™ÓÈ?µ¿Ì?¸Œ¦@/@0I?Úâæ?Ê—æ@ž@»E?ÉrÖ?„šS?6ø>õ0?pSÇ?¶{?êYp@Û!@Á@¹@ +…q?Ëá?õŸ@FÖ+@>r@È«@œŸ?Üw@?ÚBÐ?peÒ?nå˜?ß@S?æ8%?öpž@Ê‚@öÓ@Ë´?Í‘ì?•Ðo?¶•?Ó¨]?ÆýÖ?»f?Ê#0?ð+å?×:÷?zQ?t¢?‹?¹ ?˜áb?ŸP¾@ +@ ¼ˆ?¤Ä‚?’––?Q÷?,Ý?‚Vz?”ex?T»?o»Ü?¶xÈ@ œ=@æ’?ÿ·b?ç??W ?\(ìÿf>ìå6?aµh?l®ó@Ãy@8â?¶Y?Q5l?“2A?¹õ?Û§@?ð22>íýÒ>çU»=‚"˜=ÌvL?n"­?€›ú?>o•?4MÕ?ð,>깚?œjq@Ïo?¿YÒ>î_Ý?164?ÏÏ?ÝñŸ?ê¹M?ñÎN?Äã§?»CY@@&@í@?ðaK?ÒPm?®Ò!?½ê?èêà?Öá=³ô=Ú7«?æ?9eä@i@»?ÑT?‘´V?­M?àÁŽ?ò¯@š<@&T?Ÿš?—ýÈ@”¤@# u?«íg?gH*?”†¶?±dã?Ù|7@¤&?ó_’?¹c?ºB?–5ý?›]e@xw@%®0?ôÐS?Ë0ì?ò‘l@ ú?ÈÒ>æ +? Ç,?‰”›?„4?óÍ?ïå?-„?cú-?^¥Á?Y0U?{ÍäÙU>æé6>ýóŠ?A?"’S?0F­?š3Ê?¤È?©ž…?­X`?‚@¢? +ùD?8P?¼»q?¶›?‡­Y?TÍ?`!T?c^¼>yI4?A …?¬+á?·¬¨?ĺ?Ÿ`:>åÙ>ôFf?k"?xñ?‡kU?„ˆ?6£?{½.?ŠŒš?†­/?::›>â:–?4¿à?µ&Ø?¼E…?Ú ?äI>é‚(>çxZ>ç‹®>ç²b?£@)?Ù6?¼vz?£)c?|(? +ƒî?Bª‡?©ûâ?‹·g>é +“?ª^?âLF?Óv??Û\7?ÑC¶?˜Ž:?ŒPå?Yq?K`’?‡iî? z_?Xµ>é<‘?$uj?U÷?EúF?6?Á?U+N?±`²?ŸÇ®>ìî#>ãÝÝ?‡ (?|Q?n,?nß=viM>:B¢>£é=È™š>=0©>Ÿ Ç>Q†=¼P®>d£>ç"E>ò¹>åŒj>‡Îà>HQ`>ˆôŽ>®Å>òåõ>ñyb>G’Ü>ˆ]Ÿ>ø!Ð?sG?pž?tvW?Hš>‰é¿?S¬@?2?k{È?Ä×6?Îy[?âšü?{î ?W?”Öº?¿¬À?ÁÈ?ÆÓ5?@È=ëÛR?)í?Ri—?ryV?~Ãæ?‚(`?Š7?>>–Øç>Å=¶§Ë?SÖW?}áå?|5¢?tp>et +> Â?2O?9¾3?І?¥ÁY? .¹>ú q>†•>E÷4?=Ÿ?!˜]?—ã?¨“Ù?‰ó†?´[? æ7>ñÛJ>†Ü>ë÷?6‚R?9¸>]Œ+><õæ?ª”½?½7 ?Näü3¹?…£]?™f8>§›â=ôà?\7”?x¶>„Ð=o¤2?7×?CH¯@Û©@Ð"?Kàƒ? Á3@›å@)Lu?I>üF->üN/>üQ>¢·=¡Ë=¦´:=ð-?U‰{?o°Ð?¦ô?©ûf>P>šß?‚s2?&?gz?LZˆ?u9Ö?†QÁ?yÀ`?T˜>hæÞ=î-?…Áô?¤4™?ûN?‚ÿ?{µ?pW½?o \?jQ2?ž,W?®*D?>Ý-?*î•>„I€>b†?hl0?r‹5>ê¤t>µÐ±>->~Ø?•sì?©Ë?¶¬X?ºm…?0e?Jþ@-(×@0°x?B+¿?4}?]’¡?X@??RA€?LCa?Tì7?@k[>‰<´>šÝ¡?Pm"?X:ç?]Ù?€n¼?r}Ç?_K”?´ª¦?µJ%?€??YÆû>3á?¸ ?ŒGx?EkÆ?PQm?h"?ŒÕL?º^À?¢”Ü? µ†?fÚ€?éQ7?Ív×?€p?¤(u?õ*5?¹/e?‘>¨ö<Öã>d”{>î³î?ˆÒë?ì¹ö?ÄË9?¡>?“Ž2?€êv?ªð¦?Êæ/?x?ñ>ús??It|?î?i–É?Q[?/#¨??‰G?÷¢?®”?`ž=ÞÈ>SòÞ>™c'?¶“?Âr ?_ÊI?Vu@ÊÑ@ ‹ >€—»>ä}@ ¬?õlþ?èK?6Â'?Òáh?¦0=‰¬¢>/[ô=œGï;ç?Hœæ?úõ£?±¼®??ù?Æw¥@_‚?ž‘5>±$t?(‘?k~‹?›rR?¦A?5•Ì>âZá?"“?0Š¦? +cr?¢{?¥Šµ?· v?¨G­?®¾/?o®? oÛ?‚k,?t½?Ùè>çâa>+E·>‹D?ñÒ?iü,@ûÕ?ó™0?ÄŠ‡?»µû?§k?j1ˆ?=?:ˆÕ?{²?Ê?•®@?eîD?8™?pø?´?™}? €®?æË5@Yí?‰?l]µ?ïÓQ?êp2?æ3?Gmä@x@¸k?ö?âa?ŠrÑ?v^Y?Ht?G(€?80ÿ?e?Ÿ?š¯o?÷¨?‘­?­c>¡,y>®…?;ëŠ?‚a ?%;?WG?¨KP?µzy?QïÑ?R +3?B¹ç?K×Å?5îÕ?G +?Úß?ÞÊì?¬ü ?vì>,«7?éÑ?†\?õžs?Û9?µ¹þ?TÂŒ>ˆ"^>ÍBÅ?øº?h Œ?‡Yà?¶°Æ?Ët{?•–??‹Ž?·$?¹³ ?¢ +?§œ?²†u?«/Š?Šðæ?ƒ§Û??5'Ô?¥ã?‡-«??!??º"?(¼?3ÌR?9.?ØH=@?¦?´ðÌ?x¯1?ä4Z@Æ?›—,?„,?À?>àô·?Œáy?•6?ù¥@þ@ÈÉ?òîˆ?¹ç?œ4?8F÷?E!Ÿ?86?e7›?ž$â?wè?2/“?£qt?æR¦?ÏVŸ?µ=S?KÓö?è?‚ ? c?…äã?…n?‡\µ?‰¡?“^¨?˜K~?n?Ss?%êt?I¥T?Ärn?éP@%ÚÔ@ %”?¬L?™õ‡?ƒç¾?‡²•?ñ§?˜I1?™ÖG?—•J?•V¨?€ƒH?m£0?Q¾ ?7U? ·—?½|°?ÃOè?Å9Ë@7“õ@A%ã?˜ 3?ŽÖÖ@/W8@"Ì?hPY?[¡µ?+Œ¢?RàL?´T-?g*>eÝÕ>øïù?„ó?²â³?ëŠß?Ú‚?×?¯?ºCe?ž-ò?j £?!Õ?=O?D[Ü?cMƒ?yç¸?‚&1?ƒcê?ƒâž?‡2›?¼í^?Äý(?ˆ†æ?ƒI÷?i?|=Ä?”DN?žç»?ñ#?ß$Å?ƒ+‹?oõ.?¤0>éùx>zîW? ˜ß?ž!q?¤ðï?°›ñ?£ÕT?•^?“Ûb?™¤D?¬HK?º[t?lÁ?Ü£?»g@Ð&@~@Ãâ?Äë?ƒû@ ¼n@oø?ÁâX?°º?›¯¡?¢ÿ?šî?š)?l<á?uÞ@(§f@Ól?p±?ww?ÎÒc?Æi?]w?tÖÕ?Ãn§?£->¬Ï»?#£a?Íy?—Jn>A£¾?µ2Û@}•w@Q²þ@ P@5#@<Ð~@÷?ù-?×Uh?´ZÆ?¡Z?”ir?á&÷@ | +?›u?!?Œ³e?¦jN?øq@‚? ‰)?OâÖ?¡h9?¬0@#@‘?¾úÔ?›Â”@¡>@&,¸?â²9?ËËŽ@PãF@a™>½í,=;Æ?oì:? Õ>Æ`>Þi>]NÅ>sµþ?¢‹\?§?€Ð×?…ŽS?õ¬)?ñ˜È@h£@ ŸŒ?¢#£?ž·¡?a‘p?ÁJ?×L;?ÒÂ?ÀŠ?®º?U?SFî@+´Ó@! Q?¥ÊÅ?—­?„‚è?¤Ÿý@…™@ +É/?…‘…? 'ä?ÿË‘?ÿµŸ?ÿ¤·?çÀ?‘‚ù?ˆÄ ?Z·?‚[?¥ˆU?Ë +w@#\m@Š·?ÇjŒ?Ða?Ì…?»bO?”ì?±–W@ kâ@+?Ì.?öÖ,@Kcä@KrÍ@>l@)¹ ?¼ö?²x?Š‚8?«ú?…¬?›Ú?òÊL?ÆD'>Qt©?£ƒG?ŽXã=ò#1?hµw?wx2?› + ?£ýÛ?¶Ë2?´íá?ÆØ^?½Hò?”t—?žˆÓ@~Ž@!ó¯@ohm@qPP?#AÄ?WÎ?¼Tù?¾a@6R6@9q¬?ÒŸ"?Ǩ?†RÙ?zl¤@4•`@Eúþ?ÅÝO?—o•@)@.dx?Åp?—Ë?i‡i?@º†?7¦s?4¤ß?QD?\Å?jNî?xà»?† ?‹ý?}5û?XˆJ?xã`?’dC?¡Íu?½]I?Ža®>ýFE?ed@%º@Yç@îŽ@£¾?Å?6Ú«?Uu?ZÂŒ?¦HÃ?¬”W>ö¡X>ö†ž?Ù²h?Ö5Ÿ@3@ˆ!@ Xõ@$«ç?Ȥ?®ˆA?–Eö?ˆTZ?½AY?Ô,?Ƭ?YÉ?CEò?vÛØ?æ>Ï@6(º@ èD?Ž—/?žv·?·!k?¸U!?ƈ?Ùë>@ J"@P7?ó‚Ü?ójB?‚š¶?tî?ÐàW?継?®ÆG?ŸÏ»@.‹…@ZîÏ@ëm?ÉJF@ØS@Q@ƒŸ?ñàk?ßœÁ?·”ë?µ/?²2£?¶ÿ\?Û¢s?Ðò€?pú™?pÝH@Ç@h"?¦_O?‡  +?º³>ð8^?„D?¸/–?iE?>µ_?Ü{w@GÃø@7º"@“T@¤ì>ï¢>ú«#?aK1?e§?àÌÑ?íŠk?Œ´Ž?nUû?œvI?ªŒh?¢(Õ?™d—?¯í@?ÔE?¥ÍZ>íwH? §â?mDö?iÊ?/ÿš?+[Õ?¡Ä?¢…?½nì?Éù??€Qj?(Ë?œàÐ?ä ?Ï…ˆ?­„+?¾'­?ê9Ù?èôº@·@ײ?upÞ©\>÷³?8eÿ?. ›?™Ã?”£9?ÈÒq?Ó¿?ýÍ@¢Ã@0¼P@Kyƒ@ -?n{?—”ë?èò?Ô©à>·Î>­èñ?m~ì?g à?Ó¾Á?÷Ö£?Íu?®›?…²W?#?>W@?†q?“<»@ +Œ@ Eê?´`b?­”r?yÂ?cý’?h?m÷?} –?Œkà?Žœ„?€á—?‹¾@Nå@È?Î8Ï?ÇP‰?Éa?ƼZ?ÖoŸ?òÍ?¸òæ>æ$V?%·?Ñûc?×A@>õ÷@E#ó?×ÿ?ª3?†Èí?e©’?o#È?~®?wÔÇ?aF?wcî?¢‡è?¨‘?¬;Ç?«õ|?Œ‡Û?„Ùt?’ûZ?ïj? ¼B?£„Â?¥¦3?¦‘6?«BÐ?ßòâ?ÛáJ?Z&?0,¢?§|&?ÔÑ#?ª¥ø?u¯?o€é?)ÜÑ?8ª8?µ¡×?»Šþ?Z½ø?Gl¶?Žá?¢å;?Åj:?äÖà?äÉò?߀Œ?¸lÿ={îá=®ãt>ßdÂ>äîÇ?£•v?ÃÌ?Æ©?ÉK•?½ð{?«ÓJ?ºëÜ?å,$?ä*?Ük +?ß©~?ÇÃ>æî%?Ûªñ@ŸX?nð@>X?P—ñ?¾à–?Ÿ”k>åÞe>ðq?&@d?ŸŽ?É4Ä?ËÕ?»ç-?µœa@\‡@BÎ,@çÃ?§Í?¤ñ¨?­8}?—Tý>Ê·ž>õâ>çaù>ç„È>ç™ >çÀ³>çߊ>çü¢?,¼?Vh?ŸÚ‡?áøú?À¹?pÙ?Zð>é¾?ºµ?„hÅ?“…f?‚Æe?•d–?ƒf}?…°¨?fŽ>êŸØ?}?±¸>\ÇÄ;n˜€=B»´=úßÈ>¡gt?¼²?s?L¤?(“Î?6¡ä?7>íŠå>öc ?n Ô?nGE=Jã™96E¾>ù†Ù? ?)¼ž?ôæ>ñ­>jF>‘;Ô>Íͳ>4‚¢;¡dO?uÑ?g`>·~9>‡fÕ? #>ƒ‰N”>òc?Cv`?92e?4{8>ašA?ƒ80@&‘.?§?@ +?Ü%é?œ?+¾Í>çlV?—z?¿×ƒ?¿»è?¿¢>Àgü>rí>º™U?_éó?~³`?F™#?1ÞJ?‰™ ?ö>?/¾ü?Ó²?W?qÅ_> ÛŸ=TLj?G]?Rò·>“èJ>77>ø£Ì?Ç> šþ>w‡J?(a?-øÙ?Œ…F?{?;åÜ?$Us?¸Œù?¿àÍ?b>ü‡Ã?VÝ6?QÏ&?IÑ?!{Í=qñR?X 1?|2À?}»³?|F‰? ô&>ü;8>´%&>ƒq?¬øF?½&*?H +?x@ Ö@ˆ©?<û›?s?X³?ƒC;>÷:>ärÄ?ÌÒ­?öyJ?Zo?(Ÿ¶?€Z>ü[.>ücª>üi+?\tš?vi+?U?|9?}?(ÇÇ?Œ<?Š$?pË?•ï?ØŽ(?ÞÁm>äÝX>‘Ò>?²l?ÖM›?d‡E?6Œ9>lmÓ=õ#æ?×Ü­?úˆ¯?-÷?ßp?©Ÿ?³¨ï?0".? v?PñR?Oý=¡Fg?/2¤?TiZ?N‘¤?R1…>ÆÚ_>¿0>ú·—>þ3¡?^?p†k?ö21?øñ?> o>Æü¼?;íC?/Ù[>ã¹æ? Ð?y(ž?næ9?=c¡?ƒ&?ÀÉU?—b¤?÷Ï?:¨ +?€;¡?–ú?¶C?ïpZ@kZ@Ái?àú?Ã7)?ª×z?Ú1@S?¢3v?DíÆ?‡Ûˆ?š]?–|”?›t?}Ø?g —?l¶Ê?r]?+K¢? ¦ ?j÷[?y”Ÿ?Pj>ãrw?—yŽ?šT?¿v…?ÂxL?‚•H?†7¯@d2@³³?d? I?ÂËÃ?±'«?,C%?S?ü3>ç Æ>v·0?52z?õ¦ ?ω?P¥?RH¸?"SO?NÏu?o?‘4/?²º]?k‰f?bu?fä‰?è@?¬\?ÂðÏ?SЈ?Ez?ž6?¯cØ?%®ø?¥š?v×V?‚²1>…Å>q?}FÂ?…s?Ãf$?¹ú?y­k?Œ…½?ØÁ•?­xë?õx?P’ß?ı?§m_?n¾g?tNÊ?€|9?“ u?–SÒ?:Üœ>¸Î@?“t?ÖÇ©?Ê(q?Äáx?Áí?w0W?•¯®??À@ç@#4*?4åŸ?Ÿ™>›âð>Ý¢Ñ?§´5?\r?zTF?˜Uî?î+ý?ë­¤?é,ß?Ò$?žKBÅo=Ù¢?£ç?Nö?°å ?«D%?’97?—9Ù?ÁG©? +`=Õk;>¡á¼>Ñ£{?óa?…'ü?ÃF?Á*¢?Åõþ?[5{>?Æ϶@»$@5Õ@AO½?pTà?í§>‹µ>˜ð3?ç§û?Ýg”?SÁÙ?QçX?°?™‘?M6ë?YçH?„.?lN?pf#?>}:?¬?Wa?•¶ôŸy>(.?R¡?…ʤ?ù€?¾?¬ÿ|?±Ó#>WÚ_>¤ú×?åçD?ÙYb?¯ +W?Ú?W@+µ@ +¾? î2?±?V7?“ú¿?ÆË?ž¾L?S|?{ÛQ?”žÇ@(ê@@Ç?²Ö"?!Ÿ”@KN@=’Ì?æÛ¹?Ä¡Y?Š˜=?„"?óˆX?òþí?îu ?Ýÿc?e_”?g„ ?ƒ÷»?–æ ?ßõ»?Þk›?Áš?¹j…?¢R?ƒOZ?83é?qh?š…?©ù?´ S?ˆ>¢?P)Ø?ȃß?÷&Y?a™Ñ? m;?rµ«?„D$?Æq5?Óÿ‡?†ÞL?0$?ýk?•>}Fñ>¢ÍB?¯§?3rb?¬Û?¦VÞ?“-ç?c€Þ?œ;?ÉŽ÷@JD0@ ˜E?ƒÊ?‚kì?wé?h ?i0Z?Ãà?ñ×ý?wå»?ÕA?vÍ?‡æ?ït?@,q?•·Ñ?‰ß+?k?=â?l™Ä?d=?%Þ‰?GU‡?ÚpŒ?Ô§?ªß_?¨µ}?¦Š¼?‰s??F»J?©Ì©?×ÐN@KØ?õž?Äp?HÉ?œ?r`Œ?Cy?Í?º‰#@Zû?Ù Þ?É©v?•Ú ?‚¿,?Äðü?Úp®@ +–@ 5•?ƒp‹?]úÔ?©Ál?¬?T‰?QTä?õöw?üò£?ù ?›²ù?·Ô"?¹ír?Ú µ?ÓÞœ?Ãt£?»»ù?§ì?½§$?ð~¡?ùc@&;?¾’È?Sö?˧?ºG?$²š?BX?{¬9?—Q?¯QÏ?ÂÒ–?„©?'‘­?®AH?ð¤¤?ø©?õ²?Ât@¨¸@ lÏ@Ro?~`w?‹8?î '@âÎ@£ž@ ôN?ádò?ÛôØ@"º–@0\ @!B@5:@= Z@Atã@?õMd@€?@S@$èu@72?ÿd¸?ô1]?Þ®s?Ú‹É?ÖeW?Õíæ@ œß@ ˜Ž@°g?ûwé?½Žº?§Öi>S>Ì)?ê± ?ïó?÷8O?Ò|a>È?ÿ?_·?ŠMÈ?Ç ®@q„?@^T?üî?ËU=•Uj>k º? ظ?–¬Î@PÛH@AÄ@Ä,@#y?ÛS¶?×âc?Ðs\?ÎÈ?åb?ÿ_;@,ái@RV?˜?¶ÚV@ˆ¸@Qâ?¾íò?Ã¥8?Ð ê?áo@ G@p¿?оú?úC'@Cy@$T>?‚Â1?©5K@hÇ@›0@0„C@†N?ÈÆk?¬Íí>Á•‹>ÒgÂ?$M_?(c_? Þ? bì?Fˆ“?he?ßQŠ?ÒBÔ?ÄG³?Ìœ?ój@?÷Aj?ɇ{?µøû?\A‘?qÕé@0ü>@2Cº?Ú±Ä?Òz›?ðJ?ö·¯?ûžì?ÿF‡?Š[b?ƒšž?0?ï+?Ø|?õj@0Wo@5Îö@1 +ì@2¾ê?rB¡>Õ"©?±@?ÚË”?êÒ›?êÐq?Èê6?ºÖo?¡ ?À?ºÛW?ØßÚ?û'†@DS@.ä@Ì—@R1?òƒÅ?ö®v?õf#?à=|?ì”?è– @7¨@,>€©>ϳ¨?-ê?1Ó?ŽA•?˜I@/,L@&Tà?ó¤€?øV–@¹@ûõ@ ‡@ÞÄ?DŽ^>ÎÖ¨? 6·?Å*Y@TÅ@t:?ë1¶?³*Ò?½ Ý?ºÊŠ?Õ½?û {?Ë©?tl)?:?è™ç?Ø?§,°?±8Û?óÆH?êÜE?…¬;?‹þ?¶œ#?¶oè?”±\?Š·?µËö?ºG?§mÌ?¤™¶?EÊ>òZx?¼ç? +~ ?}…?é¬@ œ]@4p@3S@/Á@$n?ñ@­?ïâÏ?Ø—¥?Ô"ë@¯»@l.?÷T?Tƒï?E]¾?9h?4í“?0tú?K@>ïÐ?ÀöŠ@?'Ô@+*–?ï|]?×™Û?!‚¥?â‘?¤Ž?6Ú? Â:>ò”8>ø–Ý>ÿÒp>„>T ×?ojé?²rÜ?Û¢ó@ÄØ?×µ¾?…zÏ?†C¿?—#B?’ ç?m?lõä?ºËÒ?¹R?£yK?—‚?”¹?™ª3?ž2?¢Á ?”f?pýE?†5-?²E?»ÅN?ñc»?óŸg?§cØ?£€Ê?¢û?ª;ž?½4?¾; ?Û°?aFŒ?j.|?jg­?…™?¾é?ÆIB?êS?éæV?yº{?i¹?‘ÐS?ŽÒ@…W@.>ô@ ‘g@ v@É?èùx?ÊÝb=Ôù=ûÑ?Ñ"½?ÓßÑ?yd‡?Z‘Ð?˜w?®#?†ïÊ?;1?oNv?­åF?³¢±?ÛQ§?Ýɯ?¯Ž©?­™ò>£×m;šVX?nß?g)“?ÌÑ‚@RC@š@æÈ@ +¹¯@ï@óq?Öw9?Êí·?Þ˜|—>£ >­¡È>ÿPa?„G?~åÆ?¢-è?ªP?z…“?l•·@ Qy@2é¿?íß^?e—‡?DÔp>å|5>î`?%3¿?*³8?¥¼?«ø +?/Ûg>å<?s$0?¤¿?ˆ¦?r×ã?Z×6>ó‚Â>èó°?»?V ?IÕµ?MuÃ?؃?•!?ªL?yçZ?Ž´2?Å5Á?³¨?ˆ¾?…k?;ä[?'?BC%?Vyn?¬–M?äÛl?ä×?äâ;?Ï;Ò?? +?2Ê¢?‹Úœ?†S?‡>?‹eè?³4–?Åêô?£â^?„,–?šÕJ?Ê.?Ê.?±Ä?¤"?á ?⻬?• ‹?ˆ‘˜?©G?®l;?Éý.?önâ?ë¢ü?ÑÊ5?»“Æ?ŠÒ)?‡…™?÷yü@,À?݆¶?ØŒ?+GÈ<8¬?-!»?­Ã?Þò@|+@ù4?Ð+? SÆ>çpv>çU>ç¦h>çÐ?³Ë?A>ù o>èMô>|:ù;¶õ>Qœ >ÿǼ?1&á?”’«?ƒ >é…Ý>?—?„#ê>°øv>Ÿ ?…­? –_?S˜Ñ?qÈ>Çå'>Gm”>ÃD? ñ?Gÿõ?H ?E?Þ‹>‰Õ”>š]à>ªû>ÈI1?LŒ¥?](ÿ>ïº}>è+®?š½G?•(W>>­>™->ÛtI?1%”?Ym?Õ|>ñÂv>ëÎ> z>ñ H>ü5•? ¼è>â÷X>«ËO=êd6=Á '=ññ =~>¡a3>òà›>ü:?VIS?‘®O>ßïß>vÁ“=…ØŽ@ýË@‘ÛZ?îÌF@5">@/.@,ç?"=$èS?=në?hÐ?1Ö¼?$o—?DòÌ?<>k>¹0å>þºs?=wœ?MÏ)?{¡®?Œ'5?V´Ÿ?Xa•>:ª6=p—8•0N?Ýß?üU=c,r>•Ë >”°Z?7Ï>?:mü?wc?|ëÃ?§MÙ?­ù·?šèÔ?£õ?î7–?ù®Y?˜>üŠ ? ‹l?·?šA?˜>¾·Ï>–'ª?œÐÚ?šê¿?Kx?LÙ(?*?Öï?¨”]?³(d?¶‘D?¹õ?¼Ñ?·ìÅ?“!p?šA¨?Ä)>üA>µ'+>¡G? ;Ý?Z¬>ƒå{>WŠŸ?8‘?+>Êî>Å{Z>Ò©E>ßÑ&=;¸Ä8!€?_`?r…9?§û?¦j?åÀe?ê©‹?ú?ò‚?» +?¼A%>ºo/>Of>5†L>ò?Ž Ž?£ŠÜ?sèå?o–??Z«?~¢Á?yð“?sfI?…tî?‰ÿ€? \J>ý”>¬D*>¾U¢>˜=M>…«;?fQ\?YÎ"?]?Ž?S5Ç>2çÅ=îRi>ÇØ>Ûû¾Ô?89>ÿä©>þŸ?-ýD?;Ûœ?[(?WV ?X7?†Kë>ÿö? Ù³?Ç™0?Ê5¢?•|?”2Z?ŸpÎ?žÞü?ɘ—?¾Í·?ƒÔÙ?o˜? ~Å? !¶>bå>?¦“?À+?›®8>üì>¤¡Ô?NêK?I!Œ?CUú?a€I?œ ß?rÂæ>¯o¨>˜K(>.ï?‡?¬´?±ß8?·¬S?£¸"?€²Ô?¥z?Á?¯ýB?¤g?eU\? ”G??‘(?SÝ“?&þ? ü;?iq?ÚM?Jò?©ŒO?Â<>|ûÈ=@£?¢?V?±,?ÀŸÐ?Âh°@>¸@9ˉ?.ŽÁ?4ŒÆ?_‹Ö?~d?¡I7?£Ãô?ÂÑ2?¿J?«Y?–1e?>\²?irè?¹mi?”ýõ? +™¹>§ÿo<.TS>z˜?<ª?A,?‚Jõ?@Œ>…èT>ZX§>0á;?…Ì?í¿?Leé?E?€ X?‡¢ˆ?›t´?­í÷?f›™?DÎ7?˜±?™8±?±©.?µ?M?ÈZ?^z?ÄAû?Ì&Æ?ø—*?Ö®?IÜA?BsW?ùß?9rS?™Gê?ˆÐÝ?O0F?N=€?E^?¢w?êŽÝ?Ík{?°Z¢?äx<@;D?Ùgù?Äå|?S2Û?²!@?Õ@dÎ#>æí=ÉY:?p¢°?v¥x>ÞTœ>ý›–?Å3é?ÆëÍ?Ê*?¿>ñ?¶>ó?»PŠ?À^&?ÅmŠ?Êwµ?–>?¡ò?U-¶?œÇé?H· >Éíš?íO#@5þ—?©÷—?Œ@>@$ò}?«‹?‹æ¡>Š¶ì>X•?RŠ ?P@ì?fä?hzY?™.ð?¢O*?ÅÕ‘?¿D°?¦¼‘? >?3³*? ö>Ȧ†?+?TÛ"?á$¼@.êx?ùš…?°íÍ?0õ>d°?VËÇ?†¼?*z£?'rÄ?rÎÅ?wil>î?¯>×!Ë?Õˆ?È£<>"ˆV>Ž„M?Uü?nZ?¨I¤?œ P?„[?œÔ?Æ'}?¡ .?\ñ?ŽÔ¿?´æ?¿´½?Æ+P?`êÂ?W@, @Cå?ïÑ?Å]?‰®ø?|Š?ÁC?ÅÒÞ?Uc?s„[@4¯'@'8ç?ÅÌ%?¾œò?ÇóR?Ñn:?Éh¶? ó|?47Â?r£?¬¸Ž?ÃOw?âÊ?õ˜ç?öÔA@ C£@q£?à^˜?¿y>òÛ„=É)‘?¨,Â?Æ‚@î»@ G?ÏÜh?Ê×ú?R‰²?XŸ?'9(?N¶?¯Ú÷?§=‚?¯R?‰ª#?ƒõ\?oÕ?UÃÿ?sfT?ƒí}?)³7>²X°?+äá?eý’?Ì2À?ûN?–Ñ?gÐu?Žrö?Žeÿ?‹¸?ƒÝ~?ø1?ã?ƒ?…»§?¢„À?¡Ç(?Æý¢?¹ ¡?œ„!?˜ÊK?œ˜ú?›gÅ?™¿Å?–x?‚¡?®Ž)?õÇ?ÁÓ?ƒ‘â?×1–@ +=?¾?x–?\¿?]ÜÐ?ŠQ£?Q¿?á‡g@=@KÓ@d?ñ`?ƒ[‰?±V[?¬ ñ?Ú–?æ¿?F?2 ç?ð—³?ÞÒL?]¸?Ÿ~?¡œç?AÑ?@ϤÏÿ?$q?;Èú?ÇØ?´ª?vï;û ©>½?Òg?*ž?;/?Ús“?ùú?‰É?€ +ˆ?ƒZ÷?‚¡Ã?ÀÛ©?ù>?‚¾Y?6ð?ƒC?}®?ÇŸÀ?Ó}ï@kÄ?÷Õf?Áø]?Çâ?Ãzº?­¢?U‚?piÎ?ŸK?ÃL@¯?ßß×?Œë²?ÒÎù@zj@'!@2AH?Ósí?ª”?ú@_L?Ø]’?œ~L?—Ö¢?™‡?ïËÿ@ ÐÔ@'vÑ@3¦[?Þ.?²/·?i¸ú?3¡=?L—?Y3×?Üø'@F?E$??`9?D˜?‰Øï?ôª'@AÈ@Ɖ@!º¥?Ëx?Å6k@;$@=Éj@ /Ð@ úœ?ª@*?³eà@æN?ÿ2¶?×.û?Ù+@?Û*;?ä>;@Öb@ƒí@-ãÓ@Ø?Žƒµ?”;¶?Ö¹>?ú²Ó@[~¦@7c`>ÜÞl? ¹k?¬ýT?±‚?µw?­“?µx?FÓ>ä.(?í6ñ@q§@E •@5äl@-?ÿ‡c?Ò„?Î" +?Ã#?“å?´­ +?Õ‡@ û@oÊ?IJS?×Z‡?þÅE?àô’?• Þ?ªDÇ?Ü®W?÷Ú@®»@jÅ@Q@,»÷@m““@eÕh@=¯@5DT@Õ@€$?Ó†W?ëPé@ @ÃO?ÏWR?Òs¸?î÷Š@9“@6µ®@×-?|•?¼?ûú±?ñgú?|;¥?‡q ?ÄÖ?×4·@^Æ @U=p?xZ?vôÅ?ûñ?ÿ…T@Fy4@Keì>ûpy>ûÎ@ÿÜ@yª?†Fc?z«¸@6˸@:ÎC@@ ¦@=EG@f§@w´@>~£@C©š@-…>@ÿÉ?íZÌ?ÚT•?ÍÚ?Ó|½?¤Øl?Œð~?«;l?º´Ï?ÝX?ü|?èÖ¥?ÏŽÓ?¬B„?‰¤?(C?s„Œ?ÆÝÝ@LQ?óX?R[?¨Ë<@¹@(@/F¢@2‘?•§Å?–ç,?¹-½?Íl¬@`/ð@c!\@:@4=Ú?«@Ì?ªé—?‡¤}?xOŠ?Ìg9?Ù³È?ãš?éƒ?*x+>†$?Aq?Š×“@4°Ó@‰a @Yœ=ñ®Ð>ü»&?tuµ?5“?’‰œ?Âd€@bf@'ú@^ª:@I9¸?A×$?Bç@ +Ü¥@žH?Úëe?Ù¾¥@+ñ@ÆÄ?п>?«^â?@6ç>òfõ?I¶ +?%?‹û?€w/?IÜy>öÊb?.–?‰¶´?™ÄB?½‹6?»C¹?’Z¯?–¢h?ÖE ?Ûdn?C >ðæ?Uoõ?pM0?‹à ?“ˆÁ?§á§?¯Wæ?µÒ?ÆY—?¬ …?i:€?hm-?–/ ?£?ß"_?å¾€@kô_@l#_?b7v>îl¾?ƒ| ?•Ã?U$?/z4?—\Ÿ?×—u?¾$?èÕ? €›?Ñ®?Ìr?¬·(?¨D?nÈ?lÊ×?Úa?ì’‡?¤?!õ`>ø(z>Òñ+?W·¯?°ù¬?Ÿ­s?oü÷?U= >Y’>‘ñs>‰œN>¥§ÿ?X@¿?k—?äªÇ@(Ï?•:ë>ê£?U³?©?—ÚÝ?j<Õ?€ž?Ù·z?Ü/?š»§?¾@1Œø@L_à@¾?¯mÙ?˜þS?‚'Ý?‡©?‡S¢?yê>¯’z>¥¡9?f"?vˆ°?En?3£?|1?“»ö?‹yT?tmC?€t’?×?¢5h?­Ë,?­¿ª?³ß¿?±B¾?¬wÑ?«õ>ÿ¶=¯8`>€tò>þöÍ?ƒØ@=Â@þD@º;@f´?­ È?¬êê?ž<Ã?ŸÌ?;4Ì>‘æS>HtÝ=Î…]>Û½?Öû³?Ô 1=‹4j;¸:¾?Â?ÜqC?Ïl‰?Ô²f?©?ešñ?„èû?¦Ux?žw?•¸þ?\?s{>?~A?4Z|?AK?¼’@ïJ?ôD,? ÏØ?±Îµ?ä:ò?ß`?¢µ ?œðÝ?#x)? Ï?ÍøÛ@»d?É>r?‹A?¦ª?í3M?óãp?À<?½D/?ºG?·Iž?Yv=?Nž?›Eq?䪿?¼Ž ?x Û?~(?dé¸?e}?ƒ¯ô?†Ç½?’v|?‘;ü?µp?Ìœ?›2û?;B×?7x¨?MŒ?JçÈ?h>÷*ä?§ÚH?®›K?¨M ?£$Ò?“ì–?‘íH?­?’+?§ î?É…á?ÊÔ?U˜?iR™?}§Þ?‰Ú?q; ?fx1?š?«×}?Ä€x?à s?¥ì?%Lõ?0ü,>¦mÆ>×®u?k£‰?]‹+?y¸^?g½?3žJ?7²_?$8Ç?‚?4ÏO?eÖº?—Ô™?Ñ| ?Àêÿ?®ñ=?ä>éš-?ÜT@,9@.Ñ>4‚µ?†?GA§?žb?±™G?®è?£#¬?‚æÎ?S?Y Ë?lv¨?‰Ðj?±­¿?…åðîÛ>ï0?{ýÚ?„‡f>Ì¿ >šøâ=–>(t`>+³¦>—0E>¿_B=ÑÓ 93±o<¥¸?"S`?\ŒW>µäc>'˜ù=„^>q-Þ>ÅÕ®>.u<ª4Ë?6¦?²>¾|>>«1?5n> Û?µ^W@%œ²@ èK@LÎc@Ä?Ü•´?T\2>ÿî«?bÜ?¡ˆ?tàƒ?j÷´>¯Ÿq>ŽDE?%·?~’>ž%â>v~«>>¡(V>3x=ýa¨>88*>¡?`ä˜?{„Æ?lö>èU‘?bÆ ?d3?>z2?-Ç8?²>ý!Û?؆ñ?Õs‡?!å?%²6?Ž›Ý?>WïM=ñö:?kžu?{:¸?@$>ü‹>üƒº>üya>Âcy>ê½o?ŒÑ½?ˆFù?—bƒ?£U¢>«ù>¡19?Oå +?\mZ?cDÕ?jÁ?{¯x?|B=„ëÄ=ªÕ“?pE?|DR?’<>üGû>üHA>üL1?ßN"?à2?#Ó>üZ5=%=ï¼=ÍDå>Yr,>QØ=n!;Ö‡?«í:?·‡=@þõ@}»?!?a?3?’@?¤¦Ì?Tþ>þlÖ>ÿ¨³>üôœ?NöÁ?I4?UI>ý"‘>Ûœü>åx ?¬¬6?½Î?ƒ!}?}g ?$?ÿ¾?šœè?™pE>¿ði>›,²>_°X>vû³?ךA?ã2?À1?¾Š|?I×B?7d<>;S=ý÷Ç=^ƒ<Œ€?¼Âá?¶2R=Põp=¿öv?e}?`Z?~Ùm?€a??˜8Ð?š`(?ÌŽ?|­?š£x?›YP?¿‡A?À¢J?Ò>’?ܽ›?íZÄ?é&W?¶4¢?Èóp?ú ž?ÚI+?`'?7(P>¥Ê>ï“¿?1É™?=‰?€7V?lÄ?>ú'?kîJ?¥‰?‹v ?, ?DhC?b%o?HèÒ?áÊ? "?¡“?qàÞ?¿èi?TÚ¼>$w€>Íb~?úð>ûo#>¸®?2Ê?ºn?ˆœ?m6“?•5»?žUŠ?_ó.?0b™?Kýú?^xª?z©6?L ?döð?g}?±÷m?Àç¶?"Tâ>ôLß?‡?&z”?¼÷¥?Âne?Ø?à®þ>8Ì>„ì?YÒ_?WÄD?£íæ?«fƒ?Â×Æ?Ç6Å?Ü(?Õ?´Œ ?£G›?r E?{Œú?‚"¼?‚Ì?°b?y%?w\ê?{â ?‚N?c5L??`j>Ž–ý?›¯ì?èáa?4±$>~år?ëFI@ðæ?O&>* º?žØ?´ Š?Ú¿b?åZv??¿h?h?²~? +nÃ?§¯?-¶3?Mó=ÅÜý>h’?þ?l²?Øx·?ÃdN?¨ž5?ÄI§?å ñ?´C?ŽN?È +Ø?ðTX?æ{#?äÄ?ÙhÑ?л½?¢ŠO?·ã@)…@AÚ-?œ™ ?z¾¬=ñ†Ï>?›=ªUL>$\þ?B[?CLÝ?&9¢?K4?ƒŒc?ƒ’É?ƒ”»?pA“?Kk¿?/‘Ž?¥‚?/á?SBg?É‚>²öz?ŠU@?Å—{?œÒª?ˆºü@&ßK@E›k?uÏÕ? Í"?¦L–?©nk>]eã>eäi>†¦š>®ºü?/_õ?K×[?žŽ?¼NØ@[‰?Ý…?ŠÔÆ?Šã?ƒ÷'?¬V?ÙË?ÎU ?Åþ³?|0t?Hù?݉@Àe@!²º@$¸?fë? „?å×I?öªë?²ÆÜ?®—@.w@ C?5cª?-Ñ?7?€o?éý¿?Ý]ô?ÂJ??ÖáÁ?úâ5@vÖ@ˆ ?Ý;ä?¶Ú?½¯?Æ2ó?NÅ•>ê@·?ÈY*?ÿÖ +@ ,@#¦?Gªf?Š@2œØ@1z*>S 3>§N?›AÇ?·@"’?Ù3`?"?Qi³?×!?£-Ê?Z(?]N³?V#?­>¤?ãR@6:Å?÷I±?ºÌ™?™Ý¼?ŠÜ@ s @!Çm?J#Ô? 8¸?ŒŠ?˜ú{@7@ôž? H>ëk>O¶?‘‰@“?öRœ?žít?–û÷?ƒùñ?jT˜?4WÈ?;³4?TÁ,?-ñ›>ý >úЂ?é?ˆSE?­…õ?; +>v/j?þ»¢@P¨@ŠZ@’°)@|j?öºä?ƒÉ®?€€?3²é?[ó>?Öó?ð[T@&cÛ@R ?6«?ALµ?L/r?_Æ?…¼ß?s³ ?PG|?ƒ°?±Êß?ú]%@ž@X@à?~Å›> L4?ÇžÌ@¢°>ÑTª<+ R?«†Ù?ÇØ›?ù Ø?øž¦?ŽÝ?Ä:˜?©ëÿ?›àL?K?•‹?1Ñ??%;?8 ?OÁ‘?ƒ-¤?q£Á?I¬?~°,Í?S6±?²Êz?¤›%?œò?Îõ5?óqø?=‡š=/¿>ávq? î²?¢ã?ѵ?Ÿ#?µ-Á?XéÀ?I\@X~ @fSŠ?Äãà?¯Ñ ?íIl?ê•F?‚’¾?wˆù>u#ä>‘ ˆ? V™?VO¶@‰H?ûÌ?ZeŒ?tAì?±¯ù?ÁÌã?éP¡?÷½Ë@ /s@û@>0@qky@ xk@|}š@"™ô@{Õ@þ(?Ä@?m´œ?le?| (?Å¥r?ðQ“?ª`±?Í6?«ß;?Ë7@EÖ@R2?"„?ÜŠG@ M?UùÕ?ƒI?{Dž?‚¼—?Càj,@Aã–?[ù?„ñ·@"Í~@$y°?”ö­?›Þ”?åß…?à ç?Ó€s?Ч-?—?•(Œ?iø?v‹?—Ø^?·’©@%\<@#G @–i?õÑ?¿öO?ö5@l7‡@[ @^ö?Üò?%ýj?Êú?–l?C£?¼o™?¯…s?v,@ d+@²ÜŒ@¡qM@u?#@aħ@1%@ ¹?¿¯g?¡rÊ?-S?…#ö?î}C?í{È?ý"¢?ÛAt?~ò?e>?´³?–¤´>þH?9a? T?Ó3>þM©?AjÎ?¶5°? 2m?2ò´?|®G?ýâ¯@¨@Œ?ñP)?¾ï?ÝV@SÆ@¡ @dã@ @m?å?ö±‘@º@5¦?¡®?“ÒŒ?=á¼?K4ˆ?|Ba?‘Ñ@w\@ CÆ@&ñ{@%‰@U(@c¤?ð·?ém(>ûY>üUr?4¦?¤c?½ë?ÂN¬?·wc?´ä?Ýè¡?èÃû@%[ @+ÁI?Þy¢?ÎýÔ?ÁÝ?ËB=@-)M@AºÁ?ë$Â?»-£?aÄE?Ј? þ>ù/;?OŸL?ƒ›a?ŒdO?…g?ßZ +@NØ@‘?æo÷?ŸÝX? +Ñ">üîú? +{T?g-?³ãÔ?·54?þí?ÏÛ=?òbÔ?öÞ?äËf?ÈŠ¥?ñß?8L@xÍ@ Òm@H5H@MXô?tƒò?]UX?Õ›ñ?᥋@8Ö@ {?Á}ã?¬>Ê?‚80?eèŸ@/@2–™@áb?öœÖ@&j@FäÔ@¹ƒ?®Í´?‰4 +?»o?‚Ï)@ ]@~j?æúÐ?é t?s¥M?yÕ¸?ð?ù+@®c@,@Ö @!ýÒ@ ¾Æ@˜Æ?‰Š ?µ±?ˆ‚‘?µ§Œ?Ê/Ë?囨?Öò?´ ù?°Éó?°>$?º©ï?è?Ôtß?¿µ?Û>×S>>ñs>U³í>Cäd?QO?1âE?À?é¨ê?ÜN?Ყ@SB@±©@ IN@1ò?ØÒÛ>WÛÜ>R² ?ŒE?Á.@¨v@S&?ˆu?bŸý?ò"@ +{i?‡>îC?cc?Úc1?±ÄÎ?m–e?„Êu?¯¨+?°4‚?ž[)?¥Ø>?¡ðÙ?>?Òí^?ÝâÌ?´ –?§;?4H>YÛó?1qU?¯]Ó?Õ4ë@Û?øIJ?Lݲ?JM—?¹éæ?°mÖ?Å,&?Ä:N?÷S?›@R?JÜ’>ê­?0ÜÄ?†sµ?u¸Á?|?='?¯Ž)?¯|ç?øŽi@æÃ@6ý£@Eëó?ÔJ ?jÓy?Ép@ x?´ª->&×ê> Ž€?J.»?K¤?ѽ¬?Ç»R?ÓYâ?Ï`&?¡c0?¯?˜k ?«Ö?®‡?¡ÅÀ? LÃ?¸Ð?µnã?Ó8?Ý]Ž?)o¤>ó-]>*‚Ú?ì@?‰üæ?¢Ì“?æëÎ?ä,—?Ùb…?Þ”t?²8\?ª˜/?H„ù?ì#?HøÌ?fS«?d¤Œ?P š?OQã?f ?n?äØ?ãQ?*¸‰?+?^Om?||?¤?›]\?Œû´?xë|?‰•ò?ªÓ?°?±×(?¢Çš?–ìÍ?‘’?b(?-{*?a>õ >ê7Ü>êœê?œj? +?ø?Áó>ñ¶ª>äôf?j}?ŸSÔ?Üœ?dãå?T?2Å¢?iË@Û@ +£?ÿîó?ù(©?Þb·?Ül?ÁÊî?¬FU?ÕSÝ@SB?ãü?dî?jÎò?¿^ƒ?¹+à?k«l?c"?¬!?¬*?µåg?«Û\?Štº?ò†?"Ct?«úè?¬?¬ &?¬R?¬!›?¬,X?VÂO?t8?Èæ>åÍ?CF?^ˆÐ?M´Ù?!“¡?ÄÌ?!s>ñs?Z‹??løá?Â(“?äéS@ H@ ð!?¬¦> }v? R÷?,?É« ?Æ8Õ?ù”„?ù9¼>è1Š=¡kÛ?wß6?±E?ŽþF?h¹}?t´1?ˆW×?}Ú#?:@¾?:N>鬞>û•?œJà?§â°>´¸ä>fá>n0é> >?«TH?ë[?€.S?¡?zBþ?¢R?ŒïÑ?l–«?jŒ?r•œ?G½ˆ> ÔÝ=ÿþ=½æÚ=¤À=âc;þóD<›Dð=j#´?o ?oÙ,?Œ"¬?„Ö>¥ +'>\ÓB>Û­°>ñ˜ï=±ç7>´>w>ÞJj?qŠ? +˜>Ðßß>•à>ƒy¥>aä˜><Š—>ô?=â2=•ñ…>¯©&>öR>+Æ>)Ú=nâ(?Ek²?Uè~>žY>M÷ˆ‹9>37?.Îñ?3äÇ>Çp>Ò‹y>ý­‡>þ„d>mÍó>2yÀ>ª®]>±÷?sÃU?}çš? H? =7Ï=Ipˆ>¥Ã>Ylà>‰Éÿ>¦Âµ>JWÓ>`w#?š¡ô?°0u>f>&»W?‡:7?”y‘?j?ozŠ?f>ý†ù>ü¸µ>üŒ +?g-‡?ah¹>»ÙH>ªfÑ? §M?$¬,??Ë«?7¦³ý b>üI?o¢Ž?y?w­X?j[Á>«2>3¥á?Y°d?Xiw?)>üUf?˲ù?ÜÊ>­ùá>—Ò„>¯d >”6×?Ò?X?¯ I?¸y?»L8?»¶ô?„ÎÙ?… „>Ü´? +m>ÄÆ>­¢í?‰Ÿ?‰%Î=n¢>îBn>ý€?¢¯2?¬v? .,>ý,õ=³Ô8="ú§:£ÝýÆ ? ©€>þ"u?‚Ìd?‹U?vuG?„n¬?¾ž?¾"ˆ?UÂ?a@?Yû>ý" <ï½Þ>pb?aSk?VäÒ?~Áb?~Õ—?~âò?…Œ‘?Ëú°?Â*Á?Ÿ!u?Ÿ$x?Šù?ýj?—¢?•?9 a?=u?ˆ7?]ó;ñ¸À=­yp>€kÑ?Bï?$Z?F2…?55É?(íË??O>Ñåz>Åkí>€U@?;ê%?Ï,Ï?ˆ²ì>#ܪ>ܪÿ?XLj?WCÎ?oDÓ?<¼½>ô~y>‡HÈ=0ì>ŽPj>ãT“>{l'=ÔdF>x>Ê?_D?²PÆ?‰p÷?M$3?‹Ê¹?¥ß?°¾?¯ª?¼œ>½+Y?^^?Pé>CºL?[ö)?tD?ð0?ö +û?¸%Ë?®›Í?ŽËé?&o?& &?6ÑK?¤£j?•®—?v«µ?î?ÛÉ?ƒ×g?‘\å?‘¿«?ùU?qºæ?L“Ü?Ag?ý??7Uâ?~²yt?tÚî?‚² ?R4‘?>|x?ÅG?”Ã?Æ~!?»Áu?€mˆ?O‰=u¦‚>ˆó‰?RQ¨?Q–$?aÅß?µ|Œ@%m?àQè?u(-?ÀnH@!o?«Ð?8š_?·³*?ïùˆ?¿ õ?¤&€?êé0@KÞ?øø†?úBQ?—ê3?„}t@öú@K=gI=7X?Zm3?G‰}?.>ù`ê>²«?)<(?Ò‡m?«2ú?BC6?]Yß?ynÌ??üõ?©«?…XB?ň!?ÅD?Å“4?¶kµ?²š‰?·˜õ?¼” @,Ùº@Ej¡?ÞZÎ?»ÝË?Ž¿þ?¶K?W™I?LÆ?B½ì?aøÂ?ñ ?ä6?Ñ·A?½ñ|?ŸÇn?œ»²?x†Ì?yžK?ƒúÅ?ÃK>@ÿB?Ú +?·oh?à­?t‹’>ÓÄ=ì²æ?Íu@JE?˜x?€Ž?»?–O?úxØ@ñ@VßÍ@C+’?„?GÜ?T’?‡ýñ?äÄÁ?Ü?à?ÊÈ©?ÞÞ#?üWÃ@ ÝP@¥Y@iÊ@ T±?ßSs?º\_?“=eTÀ>ÎD¦?(?rO>?‰¿±?¹”?¹*Ç>àÂS?%?Ò9„?Äëg?¡å^?^ó?6sn?K¸d?Qms?“¿Í?ê1…?®—™?0oÍ?.>}?5ºŽ?”0¾?À½ô?ɹ?Ù`?˜VÑ?r#m?¬ÎŠ?¿¯.?’„x?†V?QË?K?ö¹Ì?ÿmÒ@]õ@Ta¼@ ± ?ß{>³>>?È2!?Üßè?øWc?¼o?CpÌ?e›!?Šh?kŸ@?6Œu?z¶?œKÆz‚?IS1?bô~?Û¹å@+Î?Ujb?Ê ? G`?à,@Z©±@YJI?{Á? 0~?o?‘@@ +›@÷ü@Íi@Žï?’¦[?{ˆu??a3?)’š?ªo?ìz?:+?›Öá?Ù‚‹?õü@”?Ñå€?·2@?ß±•?ó~x?Öc?ʨˆ?,«š?G_@1d)@@¦Ÿ?BéF?/Lx?)^é???Å¡?ÁG? Çh? Ê=?¬ü‚?âë?;(?(x¼?ƒ1®?Ä ?œŸ)?™öu?-2?›.?˜Ûb?–´œ?”Ž~?¹e?Ô‹?söÕ?3Çš? dy@) <@d¹@¦;?û#D?ž0a?Š‡§?ÚIY?ášÎ?µæS?ÂËg?ò#‚?ðǸ?4yØ?Kæ[?©/“?¥}?‰…‚?í?qQï?†×~?ø<ß?ç3]?˜’?K¾?aj?‰Ã6?·Îk?}¼:>\º#?^Ç?ÿ]–?ÒRŽ?ˆ,?RŸ?Ÿ?%¤>?-_@>Ò­’>5þL> L?ì7?¸'@à5@Œ¼@ •?‡˜F?ÄN>õß?4Ç> 4@+ Ã@^gI?®3²?S+@}"@¸q?ÄÀ—?µý ?}H?YA?²ÿw?¾ +·@Y‹}@aÉÌ?ÅÛ?½ýÜ@$j@ºí@þ\@ ²D?ÏÐù?â´§@SÓH@>Ýš?-Ûk?5¤Æ?LpÍ?gŸÞ?Ê>—?¯™E?PZº?r“?´°Õ?¨!j?+U{?c4ü?ãOy?ãX?óŒ÷?é+ ?Àv?Å6??ÏÄ?—£º?ÄÕU?Ýü°?ö«]?ùw?ìÖB?ãjí?¿´–?²¼ƒ?‘P.?ÃÍ`@ƒ@0û @Q–z@1?~ù?Œ8Ð?¡7?„p?'éÇ?Œê¡@\?Ö_7?/´$?BEÙ?~)Å?ß @`<Ú@Cw–?þ €?ýÄC?ý¬H?½=G><ÒZ?6wX@¤3@ ÍŒ@9¥@ †­?’‹£?Ã@-;@! Ÿ@¾ÿ?æ¢V?yÜ€?sŠ²?|JW?€=?§¦?­ö@*PÞ@(›x@Ó+@ Î&?Ûþk?Íz?0zª?*¯P?Àèè?½?¼B?¼3,?¼Ð?¼?»ú¯?»êM?Õ:“?Û8è?çž;?æY}?¾ŠÄ?²HÜ?ìx?ùÆž?•"ª?} ?ÂFÚ?Õ>?á t?ؽ¯?pºÞ?a1?Ñ°ª@"P@AÈ?îõ`?”(#?9ç?·aœ@Å%?þ-’?µjá?áü @ti@]g@)Ô»@ +sž?Šhw?¯Øc@?ôs>šùó?FW@[@ þû@I@+Ì?„­ž?ˆ~?Œ½q?ßÎ?Ãbp?ÇÿR?©õ¨?b?*=Ô>õi-?Œ#E?´ìø?¶ôN?¸x?ü{@å*@ 4?ëc6?òú ?ûâá@³Q@ï?õac?H1;?5û*>к—?hõ?óÓœ?ë/¡@öv@4@ +ní@­@?¢Ü?‡´/?~)g?r{?“Ãç?¨÷?1ù=kSZ?鎼@†)@MÌ„?µ.ï?·è?¾ò¼?¼7?˜Nv?’ë?&c?¦?±ñ? Ù0?e²@?rQ?Ï‘³?ø?«1G?Xw•?ÛBÌ@/Z!@ºz?Í1?Àz—?«/ë?¥ç?o ê?jõj>ó?ï[?gj?n€?Id?P¨.?Wƒ?N¥Ÿ?X+?pE0?vg¾?mžü?ZÚî[r?&CF?‹?s»`?ìè? ëU?E<ê?SMË?àÁˆ?ëp?›¨?|'l?Œ}¯?‘TB?D¼à>À ã>Èny>çº?rð?¾x?º}‹?0y?3ä?¦£/?³ÇÇ@8F@sŒ?Èr-?ˆ5¢?{ˆ8?;R›?=vp?hèH?m«Ë?´G?»¬°?Ãw?Ê{ó?¸#"?®54?‘Ô1?g°y?ŸX3?÷R?ôò*?ÕŽH?Óiv>@ =Šhð?Hb ?b9£?Ua©?HHë?.j“?',À?v4¶?¿Oi?Ä•A?ÏzÝ?ÌÆ©?4?—4e?Ž¾Ê?ˆg?œÛ,?¢®›?‚ñf>å‰?'=˜?Ç;á?¾ÐÔ@‡^@=¡@˜2@æH?âÓ ?ËÎ ?¦¦z?_˜Ý?d|½?aæ +?c\?Ô?—Q–?¸]V?´è?¬$û?£^°?lx@?)çž?N¢"?ý2?Ž'@V´@LÒ@ RÀ@#Û?ž„?_©u? [Ý>ôox?ÝŽ{@XÛ*@Ehs@Oü@è<@ìW@`:?¢´™?‹È¢?¦:Ð?º«×?™ÉÑ?~ld?‡è·?ƒ¢ÿ?†ŸŽ?®1?«fU>ûK? +…?›ùi?¬1T?vZ ??“¯?9 –?2pÕ?S×û?“_ï?•·ý?œ¾?¬ Š@A^@ j:?Âô?¬çò?Õzj?滘?´.M?“Du?€{? ¬š?;‘?”×S?—’3?Í„I?Ñ5ý?è1?óùï?\*Ò?sK?¶Ó€?è–?¦ÒÃ?hËC?=îÜ? ?#æ“?Be?H\?rBZ?c5 ?T­?DèÛ?hJç?j§`? ¾Q?«Î?ƒ’P?pi²>¼[e=‘FÞ?z8?‡7??_}?(»Ç?æô>í,Õ?Ž?M6?#§-?BÕ?PÉz?éƉ?àUŒ?[›@?O˜Ú?¦_—?¢Hì?QN¡?b õ?op†?\ÎÊ?KpÏ?:â=Æü’<ÅÆÐ=€VÝ=ɺm> Ñ<>Ï÷Ê>õ*±>™ð³>>£9>¶~¶>ÉæÛ>Ýuú=ÉÀ;¾ØÀ;µ?j+?47¥?Ô¼>û´V<Ÿg‹@á[@?ûJ?ƒ?£~Ù?£! ?¬@|?~ÂÖ?w^?´Üh?» I?pÏR?NzÏ?#¶?&ù*>³ >‘€<>wO¨>‹$‰?+Œj?)É;<û`?LÌ?do?}ƒ-?|Õm<—èÿ:6³Ü>³éœ>¦æy?{í?Ÿˆ;êXÄ?-RÊ?$ðÒ>«Ü=Ð ¥>×â>æhB>ü©&?{5?µÿ?¬1#>/¾Ë>lË>üzŠ>ü:>˜ÎÁ>‰¢x>þux?€†?C'q?Ù+? Ý´?M?OÞ?0Û?ó>ÚNá>ËÇ>ví>–Ú.>ü]<>ü^W?6Ÿ?>Ÿ=>j­ >B ?w?Ê?|u?`W…?fb¦?lû`?sÉ?w¨*?Ÿ? 8)? ´r?š#z?“ö?[8?S€p?”hù?™Œ?…'ó?mŸ?3ÜK?-%W?yñ~?} ™>ϹŠ>Òß~>ß”L>ìI<ùy@.Å2@+Q]@-äx@)€3?biÿ?U—ó?ªî?‰¢H?9S?@->þŒ>þËT>­–Ì>ž`Y?¾¨j>KÛ?qS£?v?>öp??¼!?¶äl?·­?âfÃ?ä&J@¯@ I?´%&?¯öÅ?@Dr?KãV?e—Š?LíD>ÿu&?(w_?¿¯~?¼7½?°†q?“ Àלß?ò$í?Í9Ù?mg§?n=“?€ é?\[G?2­>²‡’>1Ï>úÒ?qfŠ?ôOý?¬v>±Ö”?„Fo@‰0?¶¥~?!šE>µM_= X—>~Á\>÷W¡>|º3=„b?Ñ™Ÿ@0¤T?‹°?S>F?¨+F@ @#Ùf?§Ê?J~2?é;@ Y„?#Tu>qC?SÜp?T»>§n™>AA?`_#?$å?…²—?‹yr?‰ª¨?‹ö—>Y¤>|Úg>Š‰>±›Š@¾@õ?Gñš?Mƒ?ßb?\Š>£D>?èŽ?üï?P»a>ŸO>þÀ ?t¼?L¾c?é?¤q?:??º?H ?N0?W?)Aå?Lb!?ˆBk?šL?tù>i›‚? ãT?O3?¥@8?§Ë>¡]¾>!C5?šk? zX?êÞ]?ìãg?¿¿?5å@7õ?è1'?Ô'?Ød>å÷?2ã?· °?´uÍ?±ä ?·a&?Ê“Ï?¢Ó­?L'?¤Ô6?æìÄ?ŸQ?QðÄ?Ø]@õ@ý@G#?ü¡á?ûÈÌ?“X¾?{=½?´xt?Âì"?Çî?ÍŒm?ìã?ÓÓt>9Œe>…;Ú?ƒ]?/¡?[«›?~a?¹ª?¬¡"?…Ö§?ƒ•?‹rÈ?ƒð"?cº ?‘/Ë?²ˆ¬?«G*?©ƒm?;é>ã4$?.Òt?,üD?u?† O?‡u?‰/Ã?„KÐ?‚q >Kò$>Š#?':Q?>PZ?œ?ü?©så?ºß1?§+1?I»?Ztü?Œtº?‹S5?„~?°Ùd?áîÊ?·i9?’>d?YÂa?)ŽL?¤i?Æ.@·Â@$˜{? Û?„Ç?º–Ì?¼š°?›ÇB?ŸÝ?¥ýh?­£°?„¯?dø†>Ñ€‚?w0?9£?0-ð?¶Š?^´ñ?л?­?„(§?„*0?„),?eŠñ?Z6?+ý×?ØV>ÿuô>ÿ¹?”Ü?ü?ƒç?‹N?ãTï?Ùº?ÔÄ?¿Ú¸>ÝÞç?-]T?«Õ¡?4f?;¬p?˜À*@|¤?îQ?Æ<^?¿Þƒ?µ%u?âo@Q ?°à#?`Ð?.l?¤ +?má¾?„ã?Î|q?Ïð|?Åb!?Ààx@6;@/|?ëì«?åÚ?sâj?U¸Ü>±Ìè?¯õ?Å: ?ýù?Å6 ?Hø?C…Š??à?M•?P?ÀñŸ?Ü÷@yä?Ôo·?¾°­?ÍGV?ËDƒ@xµk@P]@H€S@F„@•Ñ@Ïú@,¬ã@xt?)7™?bK×?®eŸ?’HX?L¨?Ÿ;…@ /{?Ä9†?BiO?aú*?ƒ§?ž¡ï?°ÔŒ?¿Ú?ÐvË?ž·é?ƒ?v9Ø?tÛ?Þ^ÿ?ü¤†>Án1<ܼù?w?á?e»?}ï)?}mž?éœp?äú´?ø®D?â C?L©ô?n®U?°è?¢'Ù?P¦œ?I²?êkÈ@ ŠE@0V…@aÊ?Ä´)?Ïžx?Ú1Z?º(9?¢ ?/òk>P/´>ú[G?%ý–?Œ›?ós?à¯U@/*@)Ç@ØÒ@aæ@ˆê?râ?KûI?gÓñ?d˜@-µ·@->ªX­>Ç}Ù?Ãæ¹?Êц@ŽQ?ûPC?É)¼?Ä x?œ/³?U?X‚˜?P?G° +?¬‹@).Ž@ ™l?±vè?³?´óÞ@3ìF@‘ÁV@bϺ@ó@Ï@Ÿ?ó¦>Õ~î>î`ª?ïÊ?ÙÈ—@i˜@ ƒÇ@oå?ÐJÔ?¯3??QE?6ã>–O“>c?@;i@"!?ÅÓ%?®.¬?çö +?òù?³&?k=?.d?? T?|ï‘?J,?ú‡g@Æ @(ÿ@ Þþ@—Ô”@Q§? ‘Q?»zœ@]‰ @N”?ñ P?ñëR?“Çß?¿ñ?ñw6?ço?Ûr?Íãï?/ý1?FœÇ?¥6š? ¿?ªÊ?¼–¶@ @ N?À˜Ó?ÅÊÂ?Ò.€?õ+´@4zd@ýÅ?€áa?“CJ?Ì—»?»t?€…?“_Î?¿ò?¿â?¿Òr?Îg0?ìA ?Îÿ|?—+h?³/@ fÒ@&Ê @^:½@<œB?Óð?êÀÍ@?¸?éd?V¸ì?”ç ?î²[?û;Ñ?ùј?Ò#ë?ŽŽü?úÞ@xŠQ@^&p@mM@c¦?ý±?ÔuÚ?\¨ß?”1Ê?ý`b@¢@Äy?éÅõ?}ç?®H +@#¼@¾0?ö‰ª?æi¦?žÒÈ?°b2?çï#?Ôva?˜p?—°–?Å3†?Ëx×?Êÿ?Ö*Å@#Žð@(7:@#p@ u +@8U@‹£@š@±u?ôðu?òÌv?½k?»îy?г?WÖ?Ÿõs?¥Æ?†!?‡yÝ?Ê¿ì?×Æ!?7áé>ù¥’?ÎÒÁ?ùm6@$c@8`w@;8?Ö6?ˆ…R?1Å?™@Ç?ì"?›û?xmú?š¦A?¹H ?ºh™?º›@Hm@6m®@7ß@9¹è@{ä?wl?Ÿ|2@Hº?ó˜ ?Š@Ê?œÌô@„@+@GÜ?@CÙ"?.rØ?*-™?%êö?!¦ +?Åì?ײ´?î€Å?ü³?h=à?p?R]s?u9z?uI0?wˆô?ßû7@ýÚ?°Åø>›wB? q?iÓn?z¶f?…Ð?‰:ó?síX?MOW>4½@®8@Äí?®¾F?¨‚ã?Î`?Œ «>Ô*ã>m%å?Pî?ƒÀ@?Jq^?—?ˆX—?¹-Ô?씿@î4@{c?ëbà?ö0‰@ I-?þ2ý?‡Š‡?‹0˜?¡j0?Ÿ$È?tD†?p£&?áï?ïÿÝ?šLn?XY?íë³@ûÅ@tr?ÔÃ*?ä™2@®ù?éÿ±?Ž?Ÿ?„:s?hûA?mX"?m^k?hØ?Ý{?ߢù@O%²@\A—?ôFI?¢,?¬é?®Ûý?’” +?m§F?o ã?kÉ?‚$×?Ê“?Æ+œ?°ò ?·Ç%?Šµ?ƒj ?͵?ä?™Åi?dÄ?“›2?°i˜?˜¨F?kØŒ?¢µT@"+@ Dª?O(Ò?JW8?½(?Å’Â?µ/ô?°2Ô?®ü¸?²Ë"?¯˜`?£—ß?²¸û?Ôh¯?ÔŸY?ê#”?å©Î?X¯??]xB@B›@o?zÔ¯? £×?Eôw?iIÀ?Béö? jç?O·?Æ/^?ÄA?ßï\?Ø^¿?xÌX?hv:?rH?V³?±í¼?Õí«?¯SÄ97@H8@A­x?ê6’?Ýaø?¯w›?žaK?@Ú>éj>ú7}>åŒÇ?+02?ÎAr?Ö9u?ºÝ?Àvç@!ò©@8Ó?ÌHÚ?9Ç…?ÿ÷>꽆?My?e!?x‹„?ÜRª?Ùh¯@%/@eX?ïmÛ?äñ¾?Ê¡?©xM?·[×?äçõ?Å >¤2Ó>°,é?â?äá«?=ý>éi¼?8 Á?]ø1?‚Q?¬ g?Î-)@=@C?‘»?˜ø?Å|?Ë(g?Ìùv?Àþ?Z)>Ÿ ?Qîø?åDØ?åΩ?æc?á,r?\ª?V9â>­á>ªQØ?•Eì?¼ P?“Hu?eÝ?eík?f‚?HÏ>„æ >€Æ‰?¶Ü?³6™?¨hV?¬u#?=ø,?‚?w;? u"?‡æ? ì?†0Ì@¢b?ù‹™?ÅÛÛ?Â`­?iƒ?hû?eÌ?¨!t?Ò×è?èlg?äq|?Û d?Ž©>é,>Ìû->¬âá>þM?iÔY?tê?]„?tËÀ?k”°?j½q?u˜î?o¦u?kVÜ?k‹‚?V>Û?>‘>ÝÈF>›Ã? °C?5Ëò?=ß>Žû@>Õþc?0GW?Žî@ Ú+?ì#;rØ€>æ6?h?š°¯> Ù>jâE?³”? +¹>F„±=Óq¶íP >•ks>ª³?9n8@‚¶.@˜Þ@ô@2?‚P‡?#Å=îpp<½Â="ÕH>—¾?kŸÌ?²>KÒz>%Ðo>õÔ>þšá<¶KÌ?A ?,¿¸>‰Í=ÏŽ„>C1=¶V ?u¹ý?|K>ëjI>äùÅ?šta?‹÷M>>9ÓÀ>Òæ>ó>íª¦>Ú +S?|ëˆ?v¨Œ>¿I™>Çà.=„q÷=[(?>÷¨0?K?ƒ41?°=>&Î?—•?Ú?HÃx?=·…>rÇS>uÙ½?¶4?½>ü[»?G&?|W³?€–R?öl?öŽË<ºòÛ=I˜Â=š½ª=æä–?:Ä ?+G >8² >Y·ó?@ÜÉ?::?3˜«?-Ø?|¦?|D)>ýÙ>ü‹Ä>ü”C>üƒ³<D=ªy>û +8>üÁ9?¼L ?½–«?~2,?|ØR?ñ +j?èDä?y\Z?‰ŽÂ?Kδ?P&y?}'?}$+=àÇ@=œÓ=Rêž<ä78?zÔÁ?tæ«?2™ó?RA'?q³w?‰ö?}ç?{.Û?S?"ûœ>ýè3?€¹?±d?†Í{?~$‘?€ã6?¯ò»?¯àß?m$W?eé =âß=ß]p?¹Qž?ª÷f?"ýÐ?Xj@ɳ@å?Ó¡ü?ʵ¡>Ø›ÿ?Â}?›ñÎ?/×?j¬ª?uùÓ?JÕ-?Q¼î?™?Ž?Ë3? ¨5?x…>ÿä\?=*Ö?Ä9Î?´på?€6?œ-?àXœ?¹[?TÀú?$ÛË>‘ÊÍ?-?€Y +?lÉ?O’?!só>˜šÛ?ZfÜ?Ù+ô?Èïj?±Ï®?šD”?}º\?>Ú[?ÁÒ?»!Þ@ +­Ã?¿Æè?˜R©?sʶ?0Ž$?J¹¬?i¦?øÛ@ .¿?·Ñ›?nà?éÉ@ äî?œWÓ?a7?’ª'?–?î?ÁÅ?dž?õŽ? >?·ð?¼¶?¹úÝ?´Âø>Ëœ|>ÌÂ0?5¤B?8Z¨?¤±W?¨ù ?ÓJ?Úb?ã‡?k$\? Q’?/•3?”Í??¶hz?–/ë?-ÉÎ?G½8?€N²?Fh?>,?@&ú?sïú?–7u?¨ T?¢Ì‹?{8?X¶ï?3Kj? ÆA? ÿ?j -?q”b@÷@Òú?^•6?)éZ?Ë/w?ÚUê?ƒ­?†‘?½¼?²ÉT? +0?2Í?½Z??>?ñ‰?/›?íÖ?¤_¢?Ä?»˜ ?¬EÙ?hKY>ì9…?"˜j?P5Z?I…?6­?(7?°D…?úõD@ ?Ã’?°@:?v$ ?B’š=Ö¤´<ØÕ?¾?ÅDÛ?Ì-6?»¥d>RÕ&?£k?˜G©?ƒÔ?W?ª0?²X±?Åpü?"‰>•×?Oä÷?­ô‚?‹óš?b=;?<¼é?·>|½z=Š—Ý@ G|@Ó+}>»+™>?>Í®û?ÂñØ?¤ÃÇ?;­?S?ƒ{’?C›º>–}Ð?9®3?›ˆ¹?ƒwY?b¶ ?šÉò?¸c£>{Q»?„K?|¶ñ? Ð? +S"?/³‹?11®?$o?*à?PÃF?«Ú>pxl?oC?“˜l?¥µ?„,¶?s;ˆ?hŠP>Ä´â=³]`?9NZ?{UP>dŸ/ÆG>Lv@0À?ùx?<Ôk?E÷H?=, ?o +¸?ݵg?°èi?0N?1X—?ƒmº?¾1ˆ?ÿâ´@ǵ@F8?Åí?„)[?Ú€@&æ?— Y?^k ?†Îµ?Š ;@‚1/@“¢…@§î@¦Ò@@º¶@7/@$°?kªÄ?`P]?=Í?&/©? ¯Âæ°?!&I?°²?l"u?”L9@C@?I$~?j®#?ƒ¬?ܲ@Òî?¸4(?o¥o?‰Á?‘:Â?]OÜ?;PB??ˆy¯?óý*@! @!c?ÿôû?„ý±?„ ?—R?–,´?XýŒ?‚m£?ÎøÅ?¹Â¶?ƒM=?Zè~>Ù;²?É#@5È@¤I?ùòÛ?ÒÍÐ?‘†™?ªeæ?ÆB?‹e«?%.I?áy?œ›ã?§¨7?³o@Eû@yS?…=ö<:†?XŒ`?ŠÓ2@..Ñ@@?”b¾?l­½?Ù2?‚¼K@fã@%O?–?’c ?ʽ?¨%œ?ã9»?ÔY£?‚†Ó?’w?ö³?·¨?™­?¨ ?Ã?­#¶?‚RÈ?b€¹?%4:>ÕjB=Ú³?—nV@!”g@#¤1@"¦v@bž¸@Š«@óÇ?C?@¢´?cáå?½è©?ë)”?•úÐ?bý#@ Ä^@&Dn?˜z?BÑã?[O?«5?ªel?Ëæå?Æ^³?½0ï?±%Ã?²~Ü?H6W?/èê?ÍOÉ?Ñ ?˜î,?ŽÄU?д?mù@!†@@%ñx@„yÓ@tG@:ˆ@H¿@i6§@d~€@2Mm@%¹…?ê¼€@]H@FP@*­B?CÒ?L i?†äp? W¼?ö¬‘?î(8?ˆ,?»u!?‘>,?˜D?³ò}?Õà@×Ë?ð@? ; +?O{ ?ÀB?ø,D@;X@$ÎK?ñ$“?ð1.?ôg@bB@@?ä±ý?uæM?«#Þ?øà?é̾?ÛKó?ÑA?¿N™?Ùâ@‹·?ëßì?·þ?¯T%?ŽTÒ?lV?Íì?Á%@[æÞ@Bê,@…ù@ «.@‘@ N±?¿m4?üz@9Î+@¬(>ë6>î©?—ój?ªÖ?Ι?Åú„?©½?¨v?°/?­W?›9¾?¤ö¶?º£[?ÔÏ¥@#, @•Ñ?ùC ?ä7é?E‡?s!)@ÎW?ñuV?7ç?z5ê@^Ï„@PÍC?€™H?}€1?„9é?Š9£?Š9?ŽUo?ð$b?î%Þ@T_@¬Ÿ@Œ)?úÕá?à-J?Õ‘Ó?ܬª?Ý?f®6?7Ê[?Ø+?ùtÓ?ŠAê?Nãf?‘òK?žž?°:ƒ?º§‰?ÚÇH?ïì?­³W?xw…?€¸?|Žý@@o÷§@1©v?Ðà?êÿ@^Ò?ð»ý?©çÿ?¥¬?£N-?¢Ÿs?“„¼?¥š?öÖ?ügŠ@ 3@É·?­u ?©/g?¹r!?³p ?Aš?;žì?X>ÎìR?Rtp?u}&?…S8?‚)?¢3ý?µüu?4ññ>q¸?BÜM?˜¡Y?ÓÞ@þ>?Ј£>ô/Ë?C%÷?Åî,?«Ç?©ä?RV?Ö-„?Ø?k?ÚF~?ÜU?¦yÍË>º„?´Â­?´¨ô?.vf?-s¨?ÙÜN?ò@?‘Ì?Zîê?¼yÞ?ïE÷@v±@5i«?øÉù?Xög?¡˜<@ ]?ñ!ò>øer>ðbG>ô±4>ý”X?€©ë?‡¶@. p@EÚv?ñ®À?²šr?ÕÅR?ííÌ?•¤ˆ>Ò³?/=™?•¤î?¤6ê?Õl¤?Ô^Ù?›^û?½?“›?™ +?ÍMQ?ÏÄÐ?S.ú>ìNw?™k„?ë-‰?щ¿?«NT?Ê̯@u!@Ú$?¡”T?Ÿ&Ê?ûƒ?ù¼?„ò?`í˜?j`c?jÇT?˜Ìó?¾¡?Ñ$å?ð½Í?ëe'?ă??ÅM?#K?g±?`m!?i¶n?ÈÌÝ?Þ¿:?ž7í?iOs?_„?NC5?bçW?™@%? ,?ºkÕ?Á׉?–"??‹,?@šæ? ª?x`€?œõA?žóÄ?˜>u?twÇ>çÔë?Äà?â&ü?çÂv?¶¼H?·0ª?¢*?¥}ß?§6˜?ž/‹?˜ï"?Ÿ£7?ÍN.@1@—O@/@)1?ÉYU?ÀàC?.$?fcÐ?˜Y?Åêt?±ƒ"?f)?UëË?QÝ?%ç´?t?†S$?Çžõ?Ö“Ü?œ$ƒ?\_'?_05?ooN?qfx?ŒT>?Š€×?š›¢?”ôy?$*-? ™•?ö¸ú@)”?æñ?e#h?BÐÈ>övñ?&PY?åî?å b?Í\?ÑnO@ +Û,@Ä?îuŒ?ÎI“?ÓÀ?Ð;*?¸Û>ëZ>¿B=?äÉä?äæ2?„¤%?dnP>¯L…=ŸÞ¸?gc?üË·?ûÝG@s??ü\Ð?yb?lå6?ªà?“?ç· +@ßÛ?ÓUb? Fª?º k?àþ?ïhè@3¥@ ï÷?ev§?e‰Ñ?8ô³?&U?¹£j?弤?§_T?eãº?eôÈ?f »?Vë?*Ù~?Cœ?Æ67?Ô1?ÿ>ìÌ?Š•q?žX‚?x;?JBÈ?„i2?¦ñ{?¥ï0?È“{?ØA5?Ñz?Ô(Ž?gê ?hœ?h2¥?hY\?à)>ø9«?±?(rœ?DyX?Hñ™?2©N? +¼Ý?&V‰?‹Þj?lˆy>›ûÉ>}vN?;~–?K:N?©åá?°kÇ?%ç?k£í?kÔø?l†??»T?Çq?á?2+É>ú ®>*þ>8—d>PY,>úú¨?®#%?Š™×>Gý?[Üí?JH3>ð?'î?´â?³’>‘5r>¡Äì?ƒ?„?”X > »â<‰IŽ>•«>šF>ûÿY>êO?uRÃ?‘2>÷Ý>ͱ =e;ô>×qn>àoó>Í/©>¹ÈÂ>ónÛ?f®?="9?@Wt@-!ü@LýF@e’ø@Œp†?Ò‘=?¨y?4Q>ÿ:>?jŠ?eDÕ>N@o>aÜ2D¦>iµ¨;ŸwZ;Üúß? +ÒÕ>å=g>¿N>Õõ?}Ú ?uШ<?É=‡ÝË?r{?g}›?1ô?@÷8?,ïé?¿;>î>Ÿp?›GU?”\¨?Qµ§?P>gL·>IAZ? Ï>û¹Y;¤ ²=¢®?|——?l°¼<´¾¤>í­>?ì?3¶À?;Wg?9©?/)÷>übt>üb„>ü`³?ÒÊ?Xá°?fíå?x9j?Ø¥?±ÓÊ?£Fä>Òà>È ? ç?%C>œzÖ>ü„?ž­%?˜£Å?0É?#Â?VX?\¦”?0Á¸?#ŸÔ?…þ? P>û¬“>ñ/ý>ü¸M?,?‹ S?®ÿ?Ö™k?Íë3?ßi?&4; AÈ>™À±>©ò?X?;?^Ñ?ו?†ü? +8ƒ?Ý4>þ‡¢?dr>ý‹Ó>ý•ƒ>ý¥ù? FV?ØžP?Ò¸£?ÁCþ?ªœJ>xB?>§ù?É…Õ?ȆÏ?-¾8?>·0?~Mê?tòi>þj¥? =g?{Ê?ŠB?ûÇ?Þ¶]=šéF>ªÚ0@R±?øÄ÷?+N?›>pò§?ÃZæ?´:?íÛ?'™?­ L?—át>Án½>ç[?Ì}?_rÏ>ýì*?CÆF?À }?Ž/¸>-¹>ÎXZ?dZ^?>Û>´v®?$™ý?‡¥ ?”"?€^Ú?7ÂÛ> ; ? èË?\=˜?P¡"?3î?Óµ?¤f>úd>üÆ)?D×­?y½¹?Sî=?MÁ?&É ?ç¨?À÷Y@µ?™ö)?L»N?¥˜å?Á©Ü?–™f?Œ’1?¤€9?¬Ý?ãêo?ó3Ì?ÖC|?Ûrì?òø¾?úZ»>)V;Åüä?ög?‡‰;?%½R?=–?×µLy>Ð7??õ5?Ex²?JüM?e.â?•õ? –?±}×?¬q˜?šP+?ºüÂ?öÝG?¦ >ÿ(¿?Aì?}|Ç??rQ?L?“’¿?Ãë@/±7@SÉ>?å´?‘Æ·?…î?‚‡A?ºh?¬-Œ?´(î?¼%_?œmÎ?•ÈB>Ïö>Ônp?oœ?tkð?y¹¤?¼¶@¯„?ÝÄö?õ?3Uy?srç?U‡?åˆ?2´?Q©?\Æ?ft?š>Ž13>Ë´‘>ó5å?Kô ?ƒ89?hE)?^Bø?è~v@ ›É?–Â?R™s@Eï3@a?žÈÕ?ƒ$ª?…·Ç?ˆ\Á?Šé…?‰úÀ?Tü?m]¡?ÅP¿?Ö}q@©?ÓŽ°?r0T?|D?ƒ(x?ŽÇ#?ŒÃÇ?§ƒ?šà*?6E>¾¼0?LçØ?ƒÄl?)íÏ?Êå?1,? +]?éA?@8k?DZ£?¿¢A?K^¸?^*µ?l¶a?WÁ¡>½ÿ? Š}?²«k?×,ü@1Ý?Ðg?ýX?/ Ô?`3?xB?—½ë?@{">¾×ë?4ùï?m+9?5xx?cr>£Î>Áè>ò7?4Ø? ¯£?îÀ?ã›s?ÛòW?„"x?zk?$l?5¨Î?Åïq?ÏX—?ùǼ?Ász?=»?zÜ?›JK?‡¡à?h:4?†Í`?˜}J?ƒƒ¨?aÂ%?0UE?þ—?N}?Ÿ\? ? +Xd=†+H=5¸?°tÖ?¬ ­??"?grµ?ݬ?Ç¿ž?„5m?”‹c?ÆM*?Â36?³VU?ž¿Â?„[Ó?¤ï†?Ø_7?ý%@ N$?Â9?„-€?Ñb±?ù”B??“ÎR?ºù-@1@Bû?“½û?‹ *?Ë«'?ÅD*?h"÷?ˆ-^?·£§?Ÿ‚j?*,?/kC?)õ–?Pe?ÿÃ?R1Î?$>‹Ã^?@“r?­‚Û?ËP£?ßéæ?1„?#"©? +†Ï?õa?ƒ!?H?…5$?ˆ_Ú? q÷? §·?Á¦ý?´P?Ý‚?‹+®@þŠ@ +|Ê?¨„?¬Á+?×Ô>?Å’‹?ƒQR?€0?eŒ)?“\@ð¤?÷òü?ϲ,?‡µ5?)Ò?„?-VC?˜ÃÙ?‚àâ?ÿ&(@ E­?;™?? NÎ?%Äu?¨°ä?®^¤?Ä ?ÅžÉ?Îy°?É;Ê?Ãá“?Ãr7?½ƒ?µaˆ?ªsô?Ž~f?p]?bi£?Ôv•?º Ö? \?§N]?Ëñ;?ÁÖX?º¯;?L.<‘?­]í@"ªá@Œ¤?òÃÇ?¬÷N?kÜ.?0æ?²µ~?¼¤?–OE?–iZ?‘¼??Óþ?ômï?ÔáŸ?Á5?ˆh¿?qjñ?S/?>Vè?Ùsù?õNà?í;µ?Þ—F?è·ö?äR @ ¤È@7@<[‡@=@Ý?ƒo'?€²˜?‰žŒ?˜Oç@ø1@kÚ?׬@?ê +}@0fò@(ñ8?àýÎ@º@S7[@Nݺ@Nð±@4¶?€ÄC?s4M?:Q?S¾×?™U™?’w?| '?öñ?Ñ;ü?¹f?€kÆ?©ìh@y#?ÖŠ‹?Œë?˜ï ?¿ü?šqC?$ò@?ò‚ @†]Q@Yª¹?ÿøò?ó„ð?ß©7?¹›Æ?W»!?‰ÕM?ÇÞ?Ö?ã@@ɽ@>\Ÿ@!yæ?ö]Î?° .>þæ”?†& @*Ú@ ™@&ÀÄ@§l?~f?ÔM¤@7•0@%xQ@Œ?é\?¾o+?ÁÓN?ÌÃú?Öö?Ú§?Ù[?ã2?Õ7õ?½ìˆ?£¼ ?RõQ?Ÿo|@ UÎ?çô-?|¹?ž4 ?üŠp?üvt?ü]Ž?úní?ê>1?ѵÝ?™õÞ?¾@*ÑÚ@ ˜Ö?éŽ@¨n@q G@iH?ÿ¶%?þJ@K@ˆi?í}X?烀?’ûª?— »?ØÝË?ÝÁø?IÄ+?R”´@&ÄÌ@.ùˆ?Æ·I?·rˆ?»G?¶ûŸ?ÀtÛ?Ǩb?“bÓ?yFD?Èwå?èxT?¿¶{?®5½?¶¾#?º†Í?£rö?Œãå@'ž@:v¼@I!#@Zïÿ@/ _?ð Œ@"R@_­ª@'}Ì?‹êš?»1á@Ð[@N×?Ɖ?ËZý?öÞ•?þVâ@3@ËJ?Å5b?Ék(@Œª@¯Ì>Œ}Ç=á°@×#@“?Ÿò…?u‡­@Àã@3çî?¦™1?õÜ?ãP@#á"?Þ?…*?ƒÎ%?ˆ‡Ô?g@>ô7k?4™±?©.Z?ªé?šý?˜ã?™æ?Ÿùf?ÿܪ?ùJ!?’Ü?‹wž?¯ß?¶¨?1(b>ò–s@ kW@cš@´+?´û©?Ô†Û?õ&?ð3(?⢬?Ÿd&=¾^>kpt?0-µ?AóÙ?ÜeÕ?Ú>ôà >ð³?`›t?vÍv?ѳÒ?ä?;?Åæ`?²µ;@/,o@w-0@–?"-Ø?1™½?c-Ò?hó'?o(ü?”Ã@-¿…@(? ‘a? :9?—q©?­½?ef??)½?ˆ½é?¤ú?+¦ï>Öç®?’vÊ?†q|?Y’t?‰Òê@(¯@)°Í>Ü]|>¿(@!„8@AuÆ?©xÛ?µ^?{”?²âP?³.|?°ï¬?ö4?öäÀ?õŽÏ?Û?Ù(¦@8`—@6Îâ?Up >ë?ÙÍÞ@ 9_?ÐÅ?Ÿýß?›#?–-â?y^>ê4:?€Ñ?Ü‚ç?áMø?‚$?j:4?£ŸÜ?³³Á?-‡>ªÄ?,º? t8?è^?›^M?‹è>ÂÓ>ÖÅÁ?-q???—#¤?ž „?ë€?„=à?¹BÆ@vü?Ðôò? ”ž?â>ø#>ñ,@`§@ +ÆÏ?—ÅI?gLÑ?C›º?4±œ?_‰Œ?‚>;?¿&¢@Gë@F³@2V@-1?†™¼?f‡r?{uY?~ýþ?È×>\ÄA>ÞeÁ?o"?x~6?§ §?¡Ž5?¤å?¡xS?‘ÕB?“À›?¤©?¬E‘?¬8°?¬0ê?²Î¡?ÄlÂ?Å?ô?øß?õ8Q?¯À|?›IÐ?å9N@šþ?Ä=ç?e+’?@*[>åë?W?·Jä?º3ý?ÒÆM?ÐÃÞ?éi­?úo?ÿM??ðw0?ï¸p?ø±[?Þ,?¯çK?¾X/?ú•ä?ñ‚ ?*ö>çY?¡±/?ÊæÖ?×.î?ñ¢ç?èh~?ÑuŽ?ÒP˜?«Èì?«Éw?k“d?eE?@O?“`Y?…G?yA?‘4¦?¯?ô >ù ß???j?Ôÿ?•é?š¢?Xt?‚-ý?Yê?0Ö‰?%É?¿?Ï}>œ±>bÓ=Ç’Ü=3[Ê;Jø<’?­-™?Ý )?ícû?ð!?Ĉt?¢C÷?…‡~>瀡? ?™ˆ,?›è?gùu?h$?|N?p×R?Ì*5?Þã*?“ÔÓ?S–Ë?ƒœÃ?œÅá?‹x +?i¤•?“È2?êõ?دÃ?jZ¢?c»€>-=·•w?¤Î?°}0?€K?k¾&?kï1?l/‰? )¶>¿»>äâî>í÷? ­'?ªÞ?C$‚?´?q'í?e_}?2´Î=ÑóÐ?gõ? ö>'jr>r7?o&R?|gJ>®‡¨>‰›m>Û3:>ñ¬<áÊõ>ÞZ´>õ=?0þ¤?@çë>·p>²Gm=¡Ç<ýàð=’}=ߺ>¿Y;+—ä=A@?7"?–A=A4S@#5%@?M³?úÒ~@AF>R>ús?ô?y®°?){<ÊO€;‘áþ>”ö}>‚'= $:?’? ?”Û<>k¤>S|l?`Šý"@>ãÁ:=Ξ·>|kH?¢‚Å?• H?(¡ì?+Ö6>ý,?Û¢?¡æ£?œo›>üãó? ˵?|Ì^?{0?oÖ{?k¿>ûmU?#‰è@Áè@–#?E?/–ª>©£Ý>¾]z?† +R?s$? +<î?Ã>¥¿É>¾Ì?Ñž? hä=ÿ¡=ÍDu>÷zµ?D›?½Jä?±çO=·™=ìè›>N¦>?y>>üqA>ÿÊ?=$?JM4>G±q>MÒØ?G°3?BÓo?½s»?½*?¸H~?¶ŠÉ>ü².>ó¨Ó=`+>Ú ?°n?¨Ÿ?É)?3ý<)/¯>s>>PÙu<;Ð0>¶¢•>Ê¥:?P÷?^4”?}d?wý÷>ý†o>ý‰>ý˜‰>ý¡=>ý±s? /¸?¥£\?ªœ–?¥èy?©ET>}`~> M…?² ¹?ŸÆá>°…>\±¶?Œ^Ö?‚%a>þv'>þ„Ö>þ–¦?žÑ?ˆž?Š“?UŠ?X¦ò? ~?–š…>ÿŠ?½«? ØJ?/©'?ºG?§ ?s§n?Šp¿?¢fu?ª7Ð?ÝœÛ?ÌE ?ב?<’õ;™Jz?8»ÉP>Ïó¢?†j?„Åa?Ìׄ?„x2?©y>záO;§Š>˜ZÍ? ñÈ?I ”?m')>Ï‚×=ÿ§F?€ÝÄ?ÁøC?w“³?7¸0?iT?‚ˆ>ï_T>šˆ?í +?1Y?Î:m?߉Ý?!&>¸ Ã?Yôf?tX¿? Æ‘>ýÑV?¼W?¹ÚÓ?oý?aš>òCz?*9Á?™9?±²é?÷q?S{j?çT@?Ãåÿ?q= ?XDu?.ÂÚ?T^ø?“º?¬§n?áŠã?À‹?ˆLb?( ;Ѭµ>g? +lß?…ô?°–'?™þÔ?‘3ñ?Ïq5?ûs?™Ëõ?h‰Ž?€mà?‚‹j>È„Ö>¦?+NÂ?2]j?©Ë?±x8>†kX>h6?(Õ?ð²? º?ì*?Hf? +²ó?í{?&Э?‚ùL?}p_?h'Ä?„-?œP¢?aÓV?N?!5?&d?b÷?©?çµ?œ?X +ä?*Ÿ?nöï?ƒRŒ?ó¤Ó@ /@ú’@â%?ʪÕ?öº? ,—?'ŸQ?÷1î?ù–ì@û=@Ðë?ÅV?ćz?ȸs?»;P?Jä?Y4”?¨p?’+Î?öŒ?ÅL?˜?EÇt>ÕVú?&¯c?TO®?*R?…i?ŸûØ?½è?ÅŸÜ?ÇkÍ@ÓS@ó3?³è?«µ­?ƒí?g +>É‘>ØC ?®3|?ÜÇ@.í<@:?£~Î?Ö³@Øá?³Ò ? K>Îá>©—>ÕçÓ?C?ov?ŒgS@ (<@#c@$2@#7,>t4ó=8*Ì?’ZÈ?›Dð?¹L?¡‹a> ä>î ô?Ü·…?ÚÒÅ?ÕÍõ?¤®?ˆ•Ÿ?ÅF¾@çç?Ü+?”êß?²)ª?ÆOn?ÙñB?éÚ‰?¤ Z?„8?|ž?| ú?²u“? ´?Ã׺?¼ñT@¥z@·ð?9n?w?¡¿°?–S?+¬?;h-?dS|?šu†?âù8?ÊE?¥w5?Pâ\>—i?aŒu?®¥ò?‡ü£?b?°?Ã[Å?ãFH?9§>å€>ÿ]ì?èm=Çüôò¡[?VÓ†?´”p?°Ø?«Ÿq?Àé?Á[¿?8s?ùj?sÃ`?ƒôn?ðöÊ@ð=Q[ì> @?;{@4Ï¿?í>º?ãè?Ó?¾D/?d\d?—a ?ñB@ É@$º @)ãî@+­?éIc?~oÆ?¤ ê?Å?Zª?ƒ¬/?ID¨?&Äv?—­W?«:´?Š½ý?ƒ•9? ã`>õ Ý?~ëI?„+?‡—?Žgƒ?î“_?îR~@$K@(ú?’>?ºíg@(‡˜@æ|@2¸?÷z=?êþ!?ÐÏÙ?¥@˜Š@H,l@¤á?gàB?\Fá?\}´?óá@+·Ú@qw?ùÅ@\ @à?ý€î?þB'?Ð-ß?ÄL–?¥}?‚äÚ@/xç@;Ÿ²?ˆ˜„?kÜL?Öý.?Ïš;?‚½f?„C„?š³?·Ï†@;5b@&—6?¢hø?óÃC?ú ÿ@s@ ¶@ÿë@pñ?,O?NL?Á­M?Òv<@!O:@v?®·?ºìÝ@@vÐ?Ê—¼?»e(?@6Ù?|Ͻ?Öb¾?Ó,?ÙkŸ?îG|@ê@µn?àŠ?ך?°ý@#0K@ªt¤@;Z@$N¹@™¼?€8„?€\)?xdY?Œp?¸Uœ?Ú8=@b@z@'—ä@“Û?«…R?Ø_s@ÿ™?ñú?¸x@@ž@QK @óÎm>“|ê?„ëN@ÁÐ@0@ í?í¥÷?’õK?ÖŠz@=°¬@ù>ì™Ê?‹øb@*ˆu@.Oà@=¬@0×h@Ý @Áî?ƒ°—?­x@BEC@/#H?{­‹?‘Î@*›@ Í@yl•@b‰†=ï×1>É?ÃNï?ȦÚ@ ë©@Ì?:sÖ?B«‚?ÿŠë?ö­‘?ÛNE?ãJ[?§uÙ?ÃI?·çb?Ài?Ÿ?•D/?®åÇ?¼FM?¡d$?šsû?†Oá?xî¿?Ÿ'ù?²ª«@1j@‹v(ÏôÊ?8j"?a'f?káš?qÐ:?™¶.?¹DÝ?èez@J?öA?„§?…ƒ?qMC?†ÓË?ñx?ðXˆ?£¿?!?uÍ×?g£?Þ9?ý«æ?ójá?ó~½@ ı@O@Ov?ÛQŒ?Ÿ™À?€1?à?o5@?aïÊ?ž?-Ê¥?ØŒš?Ñ‘©?ÕBŸ?Ñ÷&?À¦p?µâ®?¼ƒ?¿Y_?6Aª>åÿ}?—AÔ?„é?²[?(l!@”›@ÙÿVÿ?˜qË?«~Ö?Ó~Ë?è‘j?§÷É?qfd?uú?z”m?Ëõ?@<>ã@ 0;?–?(?á-î?í??adÝ?1¿É?ÞðÞ@XP@î@ Ä)?øz ?ÚÙm?µ—W? +‰?ê?€ª?woF@@+?ÅÈV?¯+C?ŸE¸?²?`­¤?21?n`¹?®ÄÎ?¤fü?E D?5ýâ>ßXù>Ê/'?´-.?Ô1Û?¥_®?õ(?ŠŽ‹?|¹?‰W*?© ?à3@-/Ò@)5P@E*o@C•?ª× ?gSì?Ÿx£?³r?›ß¤?Š$?ª@k¤@!™@(¸ù@& ©?—ç?ƒÅ’?—Wx?¡²—?Í?ìP?ü/t@^ã@/@ ÖP@P`?xÔ8?~½v˜>dq?yЈ?¬H¥?Ñ=?eè‰?ˆ2ý?·€j?Étœ@ Ãk@è`@Š³@ºº?±²ì?k€b?‘˜(?ª–@?“Ù0?WÈ?vf?Ø6(?ÕL?ä|(?åÛ@["@N{@ª†@ÆB@ìÕ@ úî?ëÓ£>­ª>µöì@En>@FôG?—éå?a$S?q#ò?‚‡,?ˆª*?ŽßG?Â86@ %~@{@Íà?þ0Í?½}Ž?²É?ؤW?å2D?ÏÒœ?¼¼F?DZg?ál'?¸o>åj=? È?™Ií?’Æó?:êa?@z?<­ñ?1ÜÚ?+A?$”¯?"?¡!?#ïÎ?–-?—ñÓ?]„?dSµ>ð³ó>ÖBN>ŽÁó>±=ø?tAª?©Þ?‚Ür?&Ž?,};?&Ïê?.U?gÇñ?fE?Q̉?Y?ÿ?Ûè?çìê?¼nO?³Øb?ˉ?Ï—É?ttˆ>óCe?³?,ž"?ƒHè?êZ?ÒÌ?KìR?SÚ§?[Òê?cÞµ?­Fƒ?°í?|¢?kÝ>É0â>ðª>štÝ>ƒ¾%>üýõ?(C0?QÀ?+3e?nî?¢'?^c±;|(—> K>Ö¨?(’–?ã?Ÿf»>’Ãæ>áˆ?0´?)™?KÜ?L˜x:4éLbß>aí{>ðy…>ö<>ŸQú>e‚;žÆ:ÊFx>Úê>ÄQ >ò?—¤$?~¢K=ùnv=†™>/³Å?æÇ­@+÷·?ÓC\?ÛeÈ>Ôg=@9“?pN«?}+“? ’?WH>Î^>¾Ãú>¯‚ >œU>Z´7>lOk=A80?)ˆD?+Êæ?Œ¿Ó?}ï“=ÌFÚ=±¦>ý–Œ>û«%>ßä$>ßbÏ?9\E?IÈñ?QV.?R”ø?ƒ‡)?jÛ‰?EZ?,·?uå?nS$?¤I¯?Ž_¨>æ>ô¦b>üž&??;{ò?O›œ?Z?(€y?QHÏ?LÔY?pgX?~‰?]G3?-ˆü=ʯ??|j&?|eã?|hÌ?e²²< Â<²†ê>Ý5>‡?K&Š?5Îì>°Qç>©ßH>üwê?¡Å?8sç?!XG>ü‹F?ü+?ˆëÂ?“Ì:?§ ?«w?‚·?vÿß>ü»U>í0?=#9r?7Å^?>ßs>©º)>° +w?X?D¸?9»B?+Ö2>9¢á>*W³>†µÄ>Z¢>'â >(:'?lÇâ?y@A?zÖd?t™4?n_?h f?aëb?^Pò?}Øz?ŽM0@â?ø¡>þ ˆ?š”?³ý?²xz?$H»?7t‰?¾ËÝ?¯M)>þ€Ý>ýqº>ü© >Ý÷¨=¤Ÿ>¦­%?³ò©? ©J?"ã??¯ž?¹l?t u>ê¨8?CUÐ?âß%?½Å>´F[??€4@‰?Ü?.•?'l?lõœ?xÚD?}ec?Úí?“*ä?ƒE‚?1¢?u¯i?¶‹ë?–Öi?03‡?S³}?€Vé?/™'>Ž}ô?Ï?€x;?V[?"Ÿ‹?¯—@A™?§^?à? ë?ú?ˆ.Ÿ?¶¿Œ?b¥?Àd?9e±??^'?i×þ??Ã5Ò?ÒÏB?wÁ‘?? ?5÷>Ê·ˆ>Ut>øP@S@–¬@! @!Á>2½ï?|âÛ?|ËJ=ॴ>^ Ø?Ÿ?~¬w?Dj?H-v?–ÿ +?•‹Í?Л?›Ü–@gÁ@Éš?Þ*?¿úÞ?þ*?‹ÓG?¢D•?|UÀ?:?aÿ`?²y?x‹ž?4V?¦é^?ö±]?³ 4?ŒWÿ?J‰?!i?&}å?+Üß?*?†>ì>¾>úù‡>“ f>d÷£?BÂ?V¥Œ?[ù ?b„?‚½?Üh?q2X?x9ð?‚×ú?nùU?³ž?>D*?ºb•?•Â?q?A£î?ƒ M?Š«M?—³Ÿ?¿˜t?à–7?¯Ç?†Ëº?5œê>ë¨?a$ú?”3:?Tç&?9´±?ˆ‹¬?‘rb>Ѓ>XMÈ?­âà?Á1Û?…´m?€«<Ðv>‹~ç@ 6x@æ?«²M?–1)>Ý)?=æ…?­òè?¦ÒÐ? "?WZË>† W?$Xw?ƒ´i?YüQ?0sÍ?m9Í?‘€?0«>Ƽb?Lh7?x³$>Šˆ…=r£U?ê×þ@Ü£?Ñ(Ò?Ñùx?Pê?Ž®Ø?ƒð@?là2>»~>îk?dpG?~o ?˜ýÍ? O\?§ŸJ?Ì ?ø<”?·V?]×Ë?s`?„Ü?Y§?7>c? /|?¾/ô?ìrÊ?þ¿Ë?΂?ÈÍW?Ú?qŒ(?÷GŒ?ï)M?Æ?þ?·Ò½?@Cª?>?_S,?i½?ÑU+?»9?¢éa?Æ V?ó2?ªaq?5¨?};Ï?žöø?ƒü¸?j{e?‰}(?Ž‡Ò?—™?·O?œ8ß?>’?e«?WÚà?A¦Ø?-ŽT?> ?GJ?!ܲ>ßã@? M?*Þz?e8?u‡?õ;(@‘?ªz“?„3)?„0¸?„11?„/µ?„"Ù@C9û@;5f?„*>?“$?ÐÀO?ËRD?¨"[?†¤Ã>ê›Û?h°v?؈?ÓíÒ?Ù¿±?âSí?ç)k?yµ¹>d'Q?™È%?ðo?òF?ô~™@%Šð@6é{?¬?CñÝ?nîw?{„Ù?¥?çá?ÄÇ?Ë£ +@Eà @5õØ?–ž?˜1¸?‘Y†?s?ƒÙ&?‚P¬?„ºÛ?´j&?µ´-?ÄÝE@g«@yPÁ@\¤Ã@JÏØ?£Q®?£l?ƒkÛ?‡û¸?¡Õ?¾à?ôT@ñ@;?õŽõ?£\À?Ñ“7@ÈZ?Þ8Š?«Òƒ?}°í?,›?—åý?į ?»o5?¸uº?áÏ?öEð?¬“ ?õ¹?Š×œ?ƒÁý?îÈÀ?üŽ@#,@(v?ô[ã?êù€?¡?¨Å:?Þ°D?Í—9?1ñ˜?|uò@,d-@0Ú? ?0Þš?‘aK?¦ÃË?õ…w?éU?Û—"?νØ?³'?¦5Š?Ž¤û?ˆ*¾?‚OÍ?¤¤h?ÇO.@¸`@"ž@$äH@)º@ë‘?Óë[?Dã>–gÄ?½¾ù@üÃ?“öh?UG?t ?oÖ¢@ô7@¯?îËp?ãà¤@>Ý@@#@Û@§??È;—?Âav?²&Ú?³=F?µ@a?·[Ó?“e“?Ã?'O0?èx?ý9?ˆÂÒ?Èo¹?Ð/´?ì9Œ?á{Ú?Á²¡?Žj?àÆŒ?æÁB?îL4?×x +?€ì¼?ƒ•~?‰†×?hc?¡°ç?¶9‰@•Ó@vâ?éÒ@Zì@_Ö@-K?€‡À?ÈÎ>@4Ç@Nì¿@€^ß@qUÀ@WIt@He?§¶?„áŸ?÷á%@$g@g=Ž@2˜$?Ìi1?ÿÛÀ@(& +@/;?ë1œ@ +P @,Å@û³?ÆA?Û»…?ý“ì?ØéÀ?®.W@Û@?6Ÿ@›??’*O?Ïý¨@Îh?ø¡ ?žúÁ?ÄÞt@f@ +¶¬@7Ô?Úu²? µu?>ý͇?˦@Wzí@GŽš@7LÂ@PN?³¹Œ?ã_?U¦?Þ"s@c@5ù?nGÔ@Nqµ@Jžë@DMâ@%q`?Qâ?‰ße@Nd?ú#?°8è?¬v? 3?¥Ÿ@xN@’+?¾‡Ñ?Üv?@O÷ß@?ÙU?¼9Ø?Âÿ$@¾f@–­?ˉÌ?ÅF]?Ë{ô?Ô?8ðå?0ü?h’˜?u<.?DšX?A>F?Ú#é?ë^ö?=E>ù]›?Nx²?[DT?Za?a¹ß?’£?š6@&Õœ@[%a@4¿ž@HÝ?ø‘h?¾ºÍ?¬Ä.?Ÿ N?ÉúH?÷ÄJ?Óê`?—vþ?…2à?LÓM?ŸVü@¦p@Åç@.$Ú@ôí?ü¡²?ùÞù?¸ä?´ñà?(¡ +?1Þ?t²î?v`?}| ?d¸–?‚ïá?ƒñy?tîv?tj‚?#ZÙ?=´? Vl? Ìi?/¢?Y¹™?>t?!× ?Ÿ?ßØñ?äô?ô˜?î÷n?êçs?íˆI?¶»l?®1;?7Ó?É?rÛ?s@?°>o?¶) ?t@>:ü><ªI=íŸè>¥8•>óh4?| ?µ€)?»žë?Æëç?²Â¹?…ôm?™Ü_?Î8?¾%a?|Tµ?†/1?­+a?±…ë?™L?™Dü?†×f?†äÎ?·¸Ö?Àâ3?¤¹?“[ì?ü·d@:´s@ ¯?f¤?m(à?pÀî?¤¹?«þ}?¦'õ?‡ºS?Œ6@d:@ 9@>;ñ@G3Ç@¼©?î +>?´ßº?vZ}?–ñ®?ÅIb?´w%?œ†|?›ï?/?–x˜@C@5?¡°¾?…Ê®?!V>ððA?Çø7@}¡?ý+ä?Û´/?øI@ ?e@Ø?w¯_?e´?"kÜ?'$$?Žoe?’Çí?Igy?&>‚?ä¾@&é8>?x¬ ?ø¡?áXÖ?ŽÅ¨?‘¡?h²·?h” ?“F?›‹?vø|?H §? …?¥?—ÕA?o‹L?VÈô>ñ{à?_ò@/ºÊ@1®O@È8@ü˜?úJ|?ç5]?ÁÅ?•ú?ˆk?g„?”‰@2†í@5,Z?¹?¬íÃ?oP?R†¾?È 7@ !Š?î¬?­(G?±x?¶â¡?½a|?ж,?Ë$\@4@,?¤—?T±Q?GS›?)Œ”?Tn¡?žC2?®/ž@0¤†@4ß?º{ó?¬?¹p?³0H?¬ø?«åv?–ªí?e(#?]"?Gîë?ZWÚ?äù÷?å ‹@šb@¹÷?Úo½?«¼4?Q?\?0K ?¶ì?¿m™@+³ˆ@+µs?½Áä?¨Us?ìÉ÷@ÓÁ?›^Ö?éô?# +?íT?ç:?©>E?¼$ç?­3)?¼|H?ßÞ›?å7 @¸@ ä#?ÌYh?d,x?‚åM?¢þÛ?“tÉ?M?,Ow?Aûl?;³?¹îâ?ÌAÝ?’ßu?eöœ?„$È?¤Åï?–S?B ?þ?>ÛÄG>æNœ?]¢Û?Zߪ?Dc?3DÓ?Ö–?~@?,eÆ?1+ã?-¨Á?8X+?Xº?”È?Šƒ?+¼?Bö?¤†å?®Éb?ƒ!Ù?w_®?‡Bx?’Ó?3ä”>(N>qèu>o¯\?*B?–¼9?–Äê?)×h?d? +Ý.>öÓ¿>ðÓ?><Ì‹>D¬>Ÿã>šô‹?G-§?q0[?IÄÙ?@¼úé>V€>îZm>î¢7>ì¡)?6w{?¢pV?˜Ü6?š`?Ž?€¦Ž?pd2?q9®ºN>²®<©I¡>òãñ>âR;Óç?s³ç?t³‰>™>s–}>óR)>÷¹æ?‹)5?†"Å;˜¡<®°>ùpg>öÅ>ªÇi>……>)ßü?˜«?‚°è>Êâl> «†?jÉ÷@ŒñÎ@‡ß­@#4€@&Ù?Á ?4<(Û™=gŠ?t‚?fãÉ>þÓˆ>þºù>þŸ >êø=<ºÒ<>^j>~!Û?Ug#?j–Œ?±…ý?±µ ?=e?xuC>ýŠ >ýz…>ýd¸? NÏ?^?Cë…>¶µ·?×U?œ’Õ?‘Ì>Ð*?HL?ÄG&?Õã=@„b?ô1ž=”µ)<–w(ûÉ?k‚ó?‡OA?ýŠŸ?Ô8Ô>³ù>Õ¦q>üyG?!i?¬/?Ÿ=Û˜Ÿ?bLX?kAg?|m7?|km?{Qµ?UHé=Þ÷¡?|r0?xëã?T± +?E»J>ü!? +÷?š‰?†sØ?[b÷?Iàk?au>Ùòf>ü­3?¼Ü?º?²E>üÆ>çP!;ÿû=òšž>10I>üüw?Ê?(q?<r?C‘b?CÙ >ý:?ØP?ž½?—R†?ˆdÍ?tC*<Ø +˜=JH?›>ý+*>Ðo>™Sñ?¯¤p?§×°?}ã2?"¿@™m@¡O?;ON?.”¹>þ4ß? +$¸?Z²w?jq¦?›Èì?”´º>èK‘>ͯ_;Mà=«r>çI=?e:?¿.>?¹[¦?›C9?Œ¹?_¾§?H.E>‡h>ô@Ë?£È,?–þ¶?Sæï?•ÛF@û¢?éëT?kæ|?)‡:g•È<˜:>ÀÅÎ?€Ú?+ôû=Ï >é—ñ?€;%?LÛ?Lm?'N?=T½>Õïp?)+?¬Ã?Š¬T?`_Þ?ÒW@(«?æ—?²Z3?˜ÙÚ?€`?9z±?a? Z¾?å@ +ò@6€œ@‘ª?Ô*J?•ªI?:?( ?ÿU?ŒÓò?™ô†?K:?Jì?Üþ?õ%Ø@Æ@ȱ=Þ E:«Øx@/â?÷°Þ>îZ>çÆ€?AÊ?(’Ì?´'?u)?-më?Bõœ?Ôï?rçU?C½?’)@ó{?ÉQ?.ï ?1Ë¡?!Å?§’? T>—&‚=!¦+<8”!:ö¤>«©Ì?!R;?3?oÅ?OÚ¢?e ¡?ö?w ?3?„è>¤ù2>…•ù?/¶Õ?:ÙM?$ñ?¯B?R¢t?Gï&?I·A?UÊ÷?Pl>?Czs?sØW?ŒW™?Ã8a?°o?ˆs÷?fàŒ?>Ìì@>~wl>å7¹?-I?y¯?ª§o?€‡ù?< à?ž'¶?½BT?--F>¦÷é>Y±µ>5ý?“®?·Yq?¹íà?¼a?yÈü?xáK?ƒmj?ƒF‹?x6ý?Žðè@$e\@~8?ë€r?êCœ?ê¹ý?×!Œ?Ån_?¬ê +?ƒ§ß?m 7??ô??Õ§?Qp?V‘;?[“ö?}ª?mìQ?Ä b?ï‹ã?Eæ’>ëN?¬$›?Ã¥›@8ÝÜ>XqI?ƒìû?o_>k >ç<ž?žÆ®?ŽáO?W¦?k'`?‹O{?WÇ‹? ¼?ˆÃG?Ôâ?½*æ?°œ?Š°:?e¢ë?«xš?Æ,K?œob?‹Ã\?/?Ü?·5B?Æ;>‡`=êµ¾?9ž?e Ý?úÉ«?Ô2´>’¾Â>ççº?Z5§?‚½™?»æF?"Ë?9°?\Î?¡ +­?jýù?(a>øÅZ>ºé?R?!¥ ?Œw?¨WÏ?Á­_?Æa?. ?Ñ?|~??ÆaÖ?ÎÎò@ +—a?íLÓ?A•¢?9ß/?B²?þ?5j®?ö6>“¸:?‰¯?Då?‘è£?»³º?ïa? Áž?õæÂ?Ó»D?ÆTq?ˆ6³?u”¾?ƒ7Œ?„5Ð?„3Ñ?…Cî@âÿ@„?À Z?¿S?ÆAÔ?è,&@/O,@«^?¹J?°Ìr?´·õ?¢·Æ?„w?“Wµ?¥^ª?ÃF~?σ?µÞ ?®I?°Í?²ºÄ,>ÃåÞ?׫þ×=Å4«?wEñ?„ïN@ç†@é?¤ Í?¢P?³?0”{?ƒoñ?~m¹?_ðü?‡«¶?Å ?å?ß@Uû?ñh@?¤¥?²sÔ?Äà®?£:?ƒ5ò?lâR?]Và?¤Ï,?ĵó?$q?n@E?rv’?v®£@–>@ã@q›€@û@?¶òD?Œ”½?—>?žþ?Î|t?Ó£{@ m@à–?ß ?3Ki?UÎL?w”Š?à®?ºfš>„eÑ?4¹@X2@K @#+!@ u?«m½?’|‡?dOÎ?ã?·|?Ÿ°/?‚T_?Ä2@FS?âI??ÄR˜?ÇúÎ?Ì?ÇÁ?Ã-w?­—F?œÝW@ä@ÿ?›®?õÆ?¤¥t?ÂÖV@ \Ø@0ö?ÁUš?£:[?Y÷x?LÞ?Ý›?ì0!?±èv?¯g?´”Ÿ?®?ŸÖ?ƒÌ @s#@äÞ@!½B@(Ð?Âñq?ÆÑ`?ÿ p?öt?Éiâ?Ñô9?ö‘Œ@Êl@)Ü@$Š@L@ƒµ?©c ?¿8_@ùj@jý@Î*?è?¥7?µâ?Øú@¥@eÅ€@7†“?I¬?§Lú?Ýù +@(%@† +½@Að?ƒÂ„?ȽÂ@P#?ôZ ?‰$k?ñ4¸@H¶Ë@ +ê¿?2£Á?¸ý¶@îä?î ?|¶ö?°2?ñuÛ?Ú ?¹žó@ð@>WE@Ò?jX‘?Ï@(£¡@>4?ä¤?ô @‡%@MO@ c@(¾J@1?þ Z?yëE?˜0©?»${?·o?²Ö«?„û¶?‘^?xÐÂ?¶v±?„C>?êÅ?‘°ÿ?ºVÖ@ ½«@x ?ÅÀ¶?Ù2@@6ä?èÇ?’ð?hŒÑ?ÑÑp?͘¹?¿ÿÝ?´{µ?£0?ª­¤?âú¤?Ù6X?ŽS ?¶fÜ@[zÚ@Q:–@ ¹ç@¨ ?¼?˜?µÛ^?]6?lhµ?]¾Å?h¬o>¡s˜>±æ÷?GÙÌ?Et?€Í}?}€?°¢?­ë„?÷²)@H—?gÖà?#ÉL?â¸V@GÊ?cg¾>øþ7@—V@0 %@X·3@qiz@*¾?¼—?›Š?#f?G-ý?m#?'æÞ?L-'?‹B\?¹±•?Þ³B@÷@ +àÑ@C@#Jë@V‰!@øÑ¢?½QY?éh½?pÌ7>ôø2>ôßœ>ôÂ?‘Çþ?Þ?áÙu?ôT?ÚˆU?¬™M?£êµ?w¤à?‚Ë‘?¶Âw?¬á?rš>÷Žä?s;õ?s&µ?¤Ž6?ªV2?Çš?ÔÁÐ?è¶ð?ï\·?{0>òB"?¿xY@>q?ïdˆ?µ\Š?°îø?§fh?Šø?š +?)4?Cõö?B#Z?pï³?pÔm?¯ms?­U>>àU>˜J­?½…¬?ÿ@Z”@ÿc?±Ã?MŸâ?/q]>?a (?ï ?ẘ?³J-?°a?nÕ?n½Æ?óŸ?þ8r?Ç0·?Ét?ÍÅr?Ëf?»˜p?±Å@?ÛÙ1@Ö ?Ôû?t1?"'m?ÁÑ?Ì‘>ìý‚>ìãM?ù%_@ 7Ä?Ç +?°Ô–?€‘?‚ç?†rž?‡ú7?_®K? 'Û?6‰®?ˆG?ˆ?„?<ò±?8å?Œ­?“ôu?øC?ŒýŸ?Ðy@ ¢@e†@Æ‘@Ý=@ þ[@©&?jô?k¦R@@%‘?Å¡?¶¢?¤+_?–Xé?¨É?µ>c?½.Ò?Ûx.?Ø b?²8þ?­Ð?¨C?¢Ûƒ?¯Ñâ?ªÃ?ÉDJ?Û9-?¥è?hz?ŠØ>?°»?—ïk>çÇø>ñíÁ?ÁMš?Éã?ÐÑ+?Ø”ï?äŽ?ç;b?¸ðØ?Œcz?£B?ÃÂE?ºÈ?ݳg?å¬?Žâ&?ˆß?,ƒS?×g?Dïï?mo?¼¢@ö4@ת?ß¿Ý?Ýp0?æ?åïò@X@0]@ r¾?÷Úý?­7-?e æ?ŸÀ?ú †?òaK?Ö§ã?ÙwK?®kM?¬U@'Üô@Fþy@ÙÜ?«çÙ?\)ê>/>~>åç>ôª‘?å ?å ¸?ç©?á Ê?ë'?ꦤ?Ó—ÿ?ǘ?Ù¿?öÒq?úû.@+·p@+¸‹?íÌ?à?{)©?J?R$?B“ä?ˆWø?Í’??»2î?\-î?@Ë>)™W>,Ò?œ`g?ÂQ¢?ƾA?Ðyú?Ð<>æwd?ŸmÕ@·¤T>µu?‹Qv?®òÐ?œœ£?ˆ]?Zn=é¬Î>ä@à?¤ò¼?Ô ;ÿ5¹;é³€?Ú¼?×Fì?©ü’?ž{?Ã_?É«P?…çˆ?-žï?A ¨?JËò?f?¼Mä?ÈV›?Ù£¾?á"?ü>÷L)?WÂt?hàè?³;0?Ç –?‰a)?8É>ù:>Syµ>”É>áV”?lO?¤êf?¨L4?©Î?¯0>ë¶ü>ë›e=1É>¿Š±>ì„?i"?±ºe?MZ >ívö>T¡>cö>î}K>îÄÑ>ïÎ?h2?#½†?Dá†?p/ä?Zê†?*K‡?LO?qf©?NÉA<|;¿=ªhü=`̆>óg}>òkÞ>Êï`>¼Í?!?&Ú@>gÕ%>†ð]>š¦>¼†’?ž6?ŸÊØ=@­>í >ȧ=ÍÄ>r&>6¨„>iîÿ>o•>„àé>ü‡Ü>ÆÉ™=˜™…<Öá?°lê@ ’þ@¡{A=.d×@OR©@G@d?‡»?€5á>ühy>åǧ=ή;>Bi>þ»ã>ìFõ>-3f>zµõ? ¡¢>õ®Ý>þ$Ø>ñ¸0>°dª>âöú?eãZ?œ2@°›@ q>ý}„?Ím?jëL?gô›?}?F?a^Ã>ž- >ÌÐ ?} +?|öv?|îZ?`(>´÷K>ÕêI?z?7?m£—?‡§?¶D€?¤¡K?|˜?„õ~?¯‡ +?¢ §>ŸW>‹oß>raS>«Vu?2Ö?ò@>c¾>H3~?£Š?Û?|tv?|Eö?|mÜ?i¯ >ßF•>Ýåý?JÅ?8¯?¨¤-?KØ?E°«?? ¯?8jE?7g†?t=ù?®ƒ?Ü÷ê?Ï7Ú>מî?Î5?n?}??v× ?b¨N>ÖæŽ>õ?Ç?y‡>ý[?+5? ’¨>ùŸ‰>ý/U>ý7ì>ýDô?¦8?Ï”–?Ö 3?¾S?¯ÿy>ý‡X>ào«<»8R=¾ã(>Øå>÷¦[?Žc¢?”×u?¨»?™™_?'­f?C¸3?~#??züˆ?[úË?=~Ò>º¨>®Ð=¯ +A=ÊàÕ>Ad=…²ü;ÝÅ=SÁ²>¸ê%?¿7±? ªû>àÐÂ?'>«?݈?mNø>ÿV´?2¥?IP?lðñ?”]r?Àâ?ž6ú?>ÆB»<ÕÂ!>±A?xžC?u»?€é?F…¦>ÉÞ†? Ñ“?€@z?I¾±?QÄ? fÔ?Bs?8Q?#ƒ ?‡ý?À“ä?n%J>Â@Š?Y‹%?£e?%§»=Ì`Ž?pZç?ÀHO?”p?t¥”?œÿ?¨í‘?ãD@Š³?Æ·'?°-“?IÈ2? S°?”>íƯ?NSÉ?sB?7ª0?&bÒ?Åa¨?Ïx?bâ?ˆÖ <°ˆ<’ÊK?‚M?‡(®?wsº?qÿ¹?l‡†?˜Žà@8¾®@Îú?VÀ“?nKW?¦à?’Ý@?A?mÝÀ?µ¿?š›¶?%È?1õ¥?e‹H?;›2?#ú?g¤?FP>…¯é:1Ýe>šN?Q>hI=±„>;+ò>ƒRÍ?8CO?YtT>¥À¡>X§0>ïÎ?–Î?wÔr?‚¤œ? M?šë?ˆËñ?‰õ=çhª>ªbà@³?ýE=ÿxý=*ÍÌ<œøý=Žçd=¿9”?4Ë?®*þ?tÖ°>Ä¢s?CaÔ?™‹™?SÔ×?%÷?4/“?J»Ÿ?œ.?(P?A…èá>U?„?ƒz?ƒ€‰?ŽQ>?×¥å?ÚMy?Ó”5?ÍϪ?½aA?¶d?›ì ?²D$?̺?§ûÑ?†{?g<ê?8Øg?¥ð?Õ@ +Y4@Egˆ?Îí?ƒÓð>¦8Ì=×U?^Ís?‚p@<‡µ@Eš»>ø8Ì>í"˜?=õ?$l?Kºó?D„?SÈW?€9Ï?­/(?™åw?zÚ?jË?Bõú?¦ò‚?úY£?»ç]?„(?8~>ÄmŸ?˜í?Æ0à?·ž?·’?À^Á?ö)?Åߘ?ÆB¤=Õ»< (?0m?2š@2ã?éWc?=ÍN?a¡0?®ì?¬†?ª2ä?·Ðz?Ç ?³Ñ)?©Øo?”án?nåO#??%Á?k°_>˜ Ø=›¿?™Ò‚?¼Ià?ź?ÆO–?Ã?ÁrÀ@a?ûn™?ÜX·?Ãv?F=?fN·?ùÇ?·ód?ES?DÆ?EH?"?È?Haö?­¼¾?í ·?YTè>7\?GœÛ?mÒ?Åöñ?Ôø?pBÑ?;Y"?f@à?uìÅ?ƒÿ?„?,?ˆq?ž +@ų@ ž6?06a?Ly:?±\?ù?|R)?”oÇ?­°Œ?«p?©-z?ƒßO?Gt?¸[??ÿê?“L?)»?2®“?;˜å?^.?j½×?‚v?„Ÿ?k]?pá@À@¢s?Õ?ÙP?}¾9?”ó@î:@Z”@î?òh?Žçâ?Ç^?˜dg?©=2?žp?…Éy?ÏP?Mßß?‰Œ%?ìÑŒ@îY?†ˆÎ?¸[?Òe@°V?‚1_?65?-_s?$§æ?µl?Á}?ã?=˜šâ>…nœ?¾’„?ª”¨?|q?]¶Ÿ@ SS?îÏê?ƒjn?Š[”?›Nz?Än¸@Wr@I]@¦ +?Ö„­?¨^?•9“?ƒ9õ?Slí?+Ôæ?œU?ĺp?†\d?IÕ:? ±ê? A>zl­=ÑÛÏ?¦½7?Èx?ŠÔì?‚ïø?~€?‰È?îœ?Ç‘'@ +ž;@uÓ?6ZÎ?]ˆ–?þε?à)?s‹~?p?Dy3?v·ã?Ãæ?Üz±@ +±b@ª?ÜiÉ?µÏ+?bø:?kæÚ?‚dX?”®°?¡.e?Õ[@ +@‡Á@"9Ô@ n“?ÿÀÉ?­¼?%Dø?ÄÚ ?÷5^?ç ?å9«?ÑÏM?Ä4Û?€m +?go2?÷‰?Úl»?å7+?߆W?¹Ÿf?­7¨?Öëx?Ùro?­¬d?§2@(€ä@((è?iâp?vÇA?ò†?ùƒ‚@@g@!eô@v2@H™?ñH?‰ ?•Ç?Í®p?è @)^ @-Ne@7rô@,Lª@ð›@Oý@3'@$¾“@Ñ?Ü>º?€À ?˜ˆN?ÑãÛ?Á Ï?™ªd?£¢?±O2?ŠŒø?w%@ +G³@£Ãw@vbç?Êß?ô×à@ N€?ó›?€/*?éŽ@@((?ú“‘? F?]?W?²îº?ªô.?•±~?”;Þ?˜ó«?®íË?ÅÉ@„K@Pª@<ß?Š€?ªÙ½?Ò\€?ûxê@'ä@#V@ ÿŽ@ Ÿ@ £@g¶@«ç}@VvÇ?_?6¾?€úÙ?Ì]c@–Ó?ö0?ŸÎu?ËÍø@ Ç?ÿ-†?áÿ?ÎÐ?½ãÔ?ДÉ?ìËv@ ïå@=¹@¥S? ù?™‚?sö?ŸQy@Kú@“0@$Ü@%+ @x:@3?-^0?Œºþ@<¯.@6í¬@A@=%?‰åc?•>•?¼En?µ…•?b4Ð?cñZ?›‰?“Í#>¨:ô> Pê?íéú?芢?¼Ó¢?»€k@ °Î@dÕ?ÝE?Ò…¸?›¡?Þ?ßò?ûž?YÍK>ùÎ?—¦¶?ºŸR?ÀJG?¿bs@êž@8c?@‡q?´²ß?ç~@½1?ï0¬?ÎZÚ?Âd¯?¹·ú?ß™¿@ä>?íµ?ew?žÑ]@ +Ç×?÷P ?W¬4?ö˜ˆ?_A@†L@¾Ó?‡Q?:$?âÐÖ?î÷?X 5?žº@ @œ%@‹:@@!2\@!û0?à/?£½@#œ¤@p¦Ï@U«¿@5†Ÿ@%ª?ãÀà?À0?r^??ˆØ_?¶Êj?¼kë?âþ]?Ü»´?LO?˜å?\kÄ?\eD>ÛIJ>Š6?ÃV?³[.@c©@2’¸?à&Ó?‰õ!?¡­'?µeÍ?Ç¥Ž?ã5÷?Æ ?y#]?{8o?ª’?˜}D?pû?pÜÍ?ÒAâ?ÖÌ}?—¿õ?€8ò?yð>ÊvÍ?ËM'@ò?­ ÷>¼U>ã”q?ù·?¯Õ‡@P}Ñ@6î£?³OÍ?®ºo?nà€?nÉ1@ -¸@"z­?Nq†>îT8?ùD?²—?VOõ>ñc,?n,-?¼dw?ͼ>T›ˆ?…îæ?€¬¦? û?ŠG>ðA¾>ìºO>￘>ðw?¬hÅ?â'O?ÝLa?Øu‡?Û….?Þj?ÆÆÈ?nÝ?¡{?ÞÃ?ÖÃÏ?i>ú$ô?™H?°7?£?‰?žF¬?¶¹r?É´w?Õ0Ž?òW ?Ü Á?|›5?jò >ù42?)‚?ÐŒï?áO¾@8+@š£?Ç$ ?™<î?•õ‘?‹Ú`?…”a?b‚]?z3‰?ž<†?¥ÄÉ?ϳH?ÝÛ·?²ÿY?¢-s?„2ä?ZQ?›rK?äyò?µM²<™xª=¥c?vÑy?{ú?§Õë?­Ž£?‚ñ?o«•?ŠÅ¬?“b¥?̃’@øB@è“?±O?˜MÙ?F»? ue?T²¼?f|§?šD?®ýì?sx-?´Á?iD?æÚ?æœ?æo?åöL?Âç¼?Á½¡?ø£@ ê?áï1?¤–ê?¦-.?¾Ùx?Éþ$?¹¦ž?¶Ä¶?»“?µô~?‡0ÿ?g‹f>×ND=ý}f?=?¸Ð“?’Å >å">ö?o? .—?¦?Ĺp?Ñ¢¶?ã¥?õ¥å?»ãw?dýÙ?¬\Î@¶B@#¯@)—’@+¹?ì9G?äø·?GÍ>å–?c Á?™ o?§l ?ÄÅ?Íñò?å4?à› +?à1?… ?}~/?ka©>˾™=ç7j>îÿñ?bÈ—?‰åq?ËWÄ?Ö­ÿ?×]?áTw?Èw?Oã?²àû?½r?J*?…/Q?t^B?@\Í?5v¸?N3E?Jê >æ÷ò>ݳ>?~³V?†xR?Î?Öo¦?»g‘?º˜ô?©d?ŠòÈ?z?† ¤?ncÕ>çí‹>üV¡?Råh?aÀ?guP?aÍ?Ì? +þ¶??`±?QÀ?i˜r?f—G?V…Ñ?b‚ã?ŽU„?‹h?|’É?e:>ïÚh>ë!•=ÞÐ=Š±ì?.+‹?)X¯>ø»€>ì !? Äm?F_b?tA>í–>¡6)>q–>’SJ>î ú?*J;?e‰Ü?®Ï=Ö6Î>ljn?pV¨?0ÕP>(Ô?HS‹?1-=¼7ë>9ñÉ?mV2?V¸<ïI¶=×Dñ>ôXº>ô²4>õW>â‘$<òÜ>ÌB>É”f;~p=9Æ=‘Ϩ=^é6> >¤½'>¹™_>ΤÞ>ãÙµ>’»9>¬ó>#Õò<‚T©?©ö·@o£ü@»>LF@x-¸@ny©?¸mê?«µ;2 =ûzh?aUŒ?HV>þŸÝ>ÜTo=s¹þ>ð ¼?ð>þØ>â”>ÔÑ>:)Ù>ý¸Ö?P ?vD¦?eL>ýp4?~¬?á‚??Ñü?¬‚?œÞ?KÖZ?OÊ:?|þV?gAq?÷›?/‰>¯>™°X?ˆW?Z%Í=8üu>JÇà?š&?qê’?æ?àª? Ø¢??3µ?Œèy?t¸n>ÿ¯>íå²?8·? X>³­Q>íû?e¾0?nçy?|u­?gì? A?çO>ü|½>ÜNÝ=íø¡>v£Å?Tú?Zc=?6ʸ?F´ô?|˜¤?f4>¬ýÚ>»m0?^¡˜?Hr%=‡[}>rš?½˜ª?¤Iì=s0h>]~r?hMß?\Eq?A¢ +?OPM?N“*?;õù>ívT?ò&>ý6|>ý?>ýM>ýX/>ýb?«›?­Ó*?¥2Ð?)? Y¶?³%ö?› +>ýÅ>è¥I>óL>ÁK?Xì–?MV†>‹?‡>“ÒÑ? £>?6z?¨??b>>£ç>mÏ·?<}?| -@ô!?ù ,>–ÆÖ?©·?ƒÊL> æ? h?„ö?—Ä?åÀ•?®K¶>|i>‰ÿù>•ýë??—”?íÙÓ?ðbï?âÈ-?Â&1?n¿?K…Õ?k?/ +C?€¨?€ ?€#r?L?3z?nû?(•Ê?ƒ¾?²­Ë?§P¾? ÆC?ƒÁ»?aÇž?˜Lˆ?¨o)?3I>qaY>zi>`cõ?s/@?½y¡?Àí?Á2?áÉ=åT?Lf ?ÆÎ?³×Û?Á~;?`wk?1nî?r@? R?T ? çh?J˜8?<1d?³¿é?·)|?àHå?ê¦?§Ö¨?­¾= R><ÿ…Ç?uh?òI?€F?«>?r;?îÍ@?ã?þš¤?«¸ì1ô>Öm—=ë‹<?©Y£?Øt–>›Øl>â˜á?™¯?CáÒ?O š?e·?X Ø>æÏ#>Ñ…?À*?"Š@?HÏS?s–?þ·ñ?ãYô?€vÁ?QS">ì0n>º˜œ>‹²÷>r·ƒ>¤?P}q?Ä­`?©è+?Ža$?ÂnÞ?æ™?r¡?? ?a¦ƒ?ƒIè?“7?•?>ÄL5>M)Î?Dø?AO@”@k/?Ãó1?ÎÝ@˜Ã@X%?ÅPŽ?¹ž7?’6?½1?ƒœÆ?’ƪ?¬ÈÍ?‘ng?m–ï?Cõ??¶r? ŸK?ÉG?…ó?Ç¿?Žî,?µtï?› ¬?"2?…”î?ƒÛô? ¶ž? @\”â@a­Ø?îG?ð¿?ó¶?|"?ƒú?jY?ÿ?8RO?2$?‹^È?Kÿ ?cƒ?„ì?k—¾?Sš?‡B¸?™Í?i>}?¥vW?ÝÕ‡?F©?'&?‰Óã?9?…á?†g÷>÷ d?™¬?³mÉ?³¤}?Ô„ +?Ťœ?„9s?ŠG¬?›ðJ?žPÿ? ¯û?®ƒU?ÆѪ?ªJX?„Aâ?ÈÃ@ +d?·.?èÃ?ˆ7?unó??Gä?:'? Þå?¹ðb?Æ®?†Ão?Œ´«?Íì?·E\>†Ä°>áW?hØ,? Ð@‰?ðf?”6ˆ?Ñ?M#?'xy?Ga?wH‰?«- ?rØÝ?1Œ>¡ v>šu?Ï/@@í?õÃe?ö—>‹¸«=ŒÍ‘?ƒˆ4?„r³?„8w?…ú×?˜X±?˜9?qïk?ƒûQ?¦ÉZ?’Ù»?_ס?C?œè2?Ÿ'B?¡b?¦lÀ?£“?Š–?s‘Ò?xcŸ?ié«?4å?i:??·?!?‘¨–?˜ >Å>çë?Á3?Ì„b@#:ù@7Ý?ýZI?Ðh>›Bä?€š?tÊ7?§\å?õFì?Ðû~?šÃò?‹ž?púB?=»ž?ÑÙ?'ù‚??ˆÏ?õ,s@.Jþ?­}?-û*?¾ÊÓ?åÞ*?Ø!?Ñëö?µâ?µRŠ?ŒÇŒ?‡XX?Ã<Ø?Ä: ?½ŸF?¸Ïw?ÅK9?Þ#K@)8²@…?ó\v?Òôa?èÛX@Äi@@µ³@cÁ?rq?¿”C@ í@˜@ 9@|Q@9=¡@)2t?½Ž¨?É»:?òX?×±?È›?SU @ Ħ@.é@ àÉ@ò·?åg?ݵ@ ®l@ +©L?½ºü?»ƒò?¿!W?ã8@x/@7µ?Ìû?»?(Á·>ù?>ù&Z>ù ?™ýð?º¤M@õ÷@bA@/?Ÿ@:Z%@øo?òY–@ U@ |?æ*ã?˜pÞ?•1?ŽE‘?¨]n?Ð5&?­ +t?Ašç?š¤×@D@V@«?òYp?'Ò?:?ÊÐÙ?ÆÊU?ˆØ§?†­,?­b?±R@%D#@2á?£Å?yÈé?¯RF?ÁÞ? ?V¼?mp?·žu?ÒŽŠ?öÂ2?àA ?Á{ã?å…@E ?ä/a?s^á?nê)?‚Ó·?—¨J@’\@®Î?â f?ä!'?šÅ?‡¿¨?û6—@  +?–C%?j¿Î?>’? «À?ªáŒ?åŸ?åå?ç@h?Ä?–êí?•åÖ?Œ+t?ŽTä?}? ¯?q­?q¢€@]A@ä@Ã'@œ×?§ÿ?ƒ‡[?Ou/?&Î`?Ý¿\@)ö@.`†@2ZU@q?;2?2R°?z£ý?ƒËm?¨ß˜?¦„ ?†?‘kØ?XÃ?Bä±?Pä(?`\Ä?&X>äe>îˆ0? >Ä +o>}WL?”àH?¾?Å}+?À²É?Í—>ì¿á?Y7®?j8…?*É?tU?¥7z?ìû@ +Äü@)8å@Èp?°ÁZ?­n‚?ž”¾?¨$®?“Þ$?…Tx?UÆÜ?]¬Ã?7x]?'P?Á£ @™„@DŒ@ ]Œ@ ö¸@ ÿ9@Á|?«Ã|?¦ÄÅ?âTw?é¯j?Ð0€?Ë£6?Wk->™þè?OB?¸œ?žä?-´?#Ⱦ?SÒ?IŒ©>óø|>èo?tW§?ŠFÀ?O¾×?r?- +6?dØ—?d]?Úë?Åk?œ? +PÜ?(d[?5±l?—×}?¦Ì?”ÅÁ?ŽšÀ?/%?»![?Ëüß?æÓÄ?ç(?¼‘³?¯µ?‚ÿ-?sŠ?¹g:?ã­?ä‡A?܈U?Ÿ#“>‹±y>Ës.?H‚ê?Ys?î«?ò.‘?슖?æä«?¸¼?ž½)?Žq?3Á¹?@Ñ°?À©Ñ?É“¦@J%@^ˆ@<òó@FuF?ÒÇ/?JÙæ?96g?="?6I–>å#«>ÿJ¬?“£Ž?«?k\+?e ?2_ ?Ýž?Z’“?ŠÍø?~‹_?dù¹?u_€?«½‚?°§«?|×ù?‚q?\Ç?I ?ÍÁ?«Ç˜?@?\|Ø?ˆ!N?Ì¥j?È›?³Ù?)€;@ ²[@7™Q@-g?ãGý?‹¼<>ðó¢?J5?¬õ?¬'\?¬1ä?¬<à?•¡#?’J„@ª@³ ?¥Þ¹?:ß?Š¯?ļ¢?†î©>~(à?ªò„?¡‹š?Ý? +x?‡ðr?˜Kl?K±Û?& À?˜ïó?ÎJð?‘!‹>ç»6>Ø°°>½ ž>»œƒ=Ùôºð—>ÿ»W?K`k?N}Þ>à¾|>–X?}>I?°È? 7°?™(ª?| +'?wB?DyQ?°y?§?k4?kb©?œ-‚?Wý>‡Ò^>—; >PŒ•>X‡j=]Q:>[¤º>®´ ?(Pý?_aD?*£>îÂÛ?‹î"?àôE?¨Ÿ?0Ÿ?!”º?)@Q?3Zí?!®u?çÌ?A‚?>ÍdÅ>äo->õÚë>Ò=…êU>ô‘×?¿o?Cv5?$O=4>B<ñ=’Qy=˜ãì>ÖßE>PÁ=3b>@dÍ>¾ =ÝŽ¸=Šì»<Þ†:›=>‰ˆW>¾Ó#<ûÜž?yï-@Ôÿ@E²Ì>‹º½@C¹@T–?~Â¥?j†´>þŠ¶?X.?pËä??ÊÙ>‚Ha>oÏP>™Ê®>Éë8?"8?ÈÆ>ÕF>ãÇÃ>òvj?ŽH?v—?VƒÏ>ýF|>íºÔ>ÛK? ­ž?1Ž]?)¨?Ò`>ø°>:à*>‡÷M?Õ?@`«?«Zá?¦X„?|°}?E(=„ì¤>”ö@?fE?6>1«>x$?•Û?@Ð?Ð>÷à>A½>&DÎ> +ج>S<Þ?K¶?×)?mž²?yÿ?x ? ?ᔄ?Âë´?=µ3?> >3D>€ÒJ>ü™ð? yw?EÈL?DyR?)k¼?'w[>ÃÖz>ëCø?,Wd?:¾W?º)Á?²ð_?jy?sÓH?²ž>?´“´?ÈH ?»h€?¥Ít?Gª>ƒL‰>rQ¸>“Žê>®t>ý\K?È^?$?ÓÈ? †5?-x8?½%?¼d[?¾L(?©a}>ýÓÅ? +¯3?9ê£?4™˜?Ox?Ia‘?C6Ê?%o>_4P>Ÿ˜I?RÞ}?\Ç ?\݉?€ÁK?ëžÁ?Ê~+>þ²Ù>þ›…>öÖ)?~B?‡Š4?ŽÈE?”é?™Óð?¿_ð?¯Á§?Žj0?j2/>}6+> e>\õ^?'RŽ?L„Ì?·?h:l?¿º? á×?Â??‘¶?;Žê?€+?u€¡?bƒe?3)£?L?˜?UD?š½r?À¢Ï¶]?Þ`@:o?Ô?Šd?ªK¹?¸PE?–$,?€Â^?-(½? +>ýn½>â§N?WÈ–?€ô$@ ˆ@;€ ?Äˉ?È?‚ç²?'ô?À¸>äBÙ?¥ªÅ?½¿]?îäš?ýèK?–è?5×>±=álç?vò?%U@ù–@?u9í?\å2>ÑBD?+Dz?ñy?ÐÈ?_ëk?\…?;åB?Ul?‰å´?l—?æ?{ÓÂ?ÜÌg?¶¿Ÿ?‚¸?‘àŒ?¨®›?×*‚?ý^?Ïý? Z?R)‹?w8è?%¦#?hd>ØÍ,>¿/A?9?° +K>iÙ-?1þË?BuÀ>œ9>›o"?«` ?­ˆ@?žš­?ž¿Š?js?•“»@FÐ@ ö?+f?C°d<Ø÷ ?,›å?ñJò?ºé‚?Uµ¯?xª?ÌA?¹¨?™™?²É`?ÄÄA?–&Ÿ?ƒç?‚q?r&8?~ñ¿?ƒO?·ý±?Å ?ŒY§?ƒeÉ@ +œâ@žÖ?˜ïÆ?…­Ø;ö²v>1nÜ?’Sô?«¨?ý%‹?êÂ$?¶`¤?–”†?+½[?!÷Œ?oÉ>¸Þª?ea?~ÜÛ? +7Ò>NyÀ?<ìÓ?€qe?€ñ†?ƒÓÎ?¢C?¯æâ?„Ä?{Àw>.zå<ж\@!#2@&È·?öá?è’ ?°@?’&1>{ýa?l¥?œÀ…?„€X?75?‰gé?Ë_i?¨³_?„?«Ï?ò2?­Š`?Æ0£?Dºa>ÇË?×¢õ@/Ô?™Á?T¤â@*@A@&_}@ æs?ù‰?霗?õÑ?˜Æv?ÆZó?¬#·?*ÀX?/‚F?4@n?sn±?©«q?¸"ì?ÄÜ$?Ÿ®Æ?„H‹?“?›Œ‡?;_>ÞÏ(?Úä.@g?‚ Å?) ?ƒy‰?ˆ×–?‚o™?ƒ6?³´?HÒ?‹)?«Ñ·@$¢@ç±?„O|?«kç@P{@ß@ ½?³¶>ï±ó>ÀØ>Š9h?{%ó?ºPw?ln?.ä—?hÈB?obj?·æ…?Ógã?™ø½?û?}€Ú?€*œ?ÂSÁ?¼ùP? ??pÜ?úšT?êvp?ºá?Øÿ<@LŸ?Î@>£ÆQ?©]_@(æÔ?üŽ¨?¨Í4?‘aç?‡½?ÃjÚ?áßE?ãrÖ?툚@½/@F?·\È? £?ûV|@C?ÂYô?À%?Šaw?‹$?È'Ž?ÔÜ°@üà?é&ë?`S®?AA¥?ñc?%è&?t!w?·18@;Q?§Tº?Þm?O‘¸?†Ž?a™?L?m?B>?6m£?N7?]œÀ?ª±?µw?àÄÕ?îè ?q '?BØ?º¿?ÁD´?…?G°@5…@×™@:·@ >?un#?v«—?BFR?5Ñ?t?‡ÞC@j‡?ºÃõ?y­?¥pþ@M,?¬ÄÄ?M‡|?´gF?îE[@ @ +]Ú@QH@/“?œ8¾>H‹?øzX½Oü@`µ@à @<—?õ4ô?ÁÅ)?®dÆ?c÷m?jö†?Xîh?¿kq@KЀ@Q%¯@oüß@N6Z@Ø?ÙN'?ŠPá?¿±´@uÜ@%ï¯@DU<@>ll@1Ê®?óÒb?}Œ?B¼?Ž!¬?Øg»@!ÏÉ@>½?Àj®?ÚÔ?û5?õ¡´?í£?ä"È?×è\@B©@Z5@+±ß?ë@%Î@R§<@**®@ôú@-è@@eX@D~i@ƒª@.¸ç@I]Þ@0"»@"Š@µ?þ¼?ðQ%?Û]‹@™@ÿY?å e?~>q?Ò?Á=?¦kª?…™?§¼7?ÓÈ—Ç?Hˆ?¹Ÿ.?Š5¿>ÚÈ?ƒnT@4@©«@'S @ãë?K©?oe?ötu?ó\¦?¸¯g?¸Ÿ6?f:(?h,ö?t÷?u¾?? ‚Ò>úA2?Ñ*?yp?²¬?×äí?¢•?ˆqÔ?³Gü?й?šçÀ?GDH?œ‘n?ô;?ê·+?ÔÕL?µWË?,Ñ ?U¶?àáV?Û?ÇAÅ?Äý @LÀ@T5?V?õ˜=öÈ<0Ùl>¬ßH>òbŽ?Pq,?†Á @cÚ@BÔ÷@%´7?ÿ3þ?ÜÙD?¡1?¨C?)£Š?Gá?·4Ö?³1?ýâ@]Â?ó“^?ð:? º>y#í?xð„?©K?¾ìø?Çl%?êèS@Ó¨@ ñ@ÒÀ?ô%B?o-²?q='?‚}Ø?…G?ì5´?âÎø@îx@å_?†ÎÇ?8Ó? \>ýFA?=i? +ü >¼¸ï>׃>Ue&>íUÏ?%”s@ @ fó?$*Ö?m½@”ø@-‰5?à>ì`=?ç7?:®t?ƒJñ?¶Ä!?°‚ƒ?Š×J?‹É?z8”?ps…@Èë@²?sÌ®?'“4>:~Q?ˆÒé@èx?ç-ê?¯Ï?”rë>ê5é>ß9 =„²\=û£¬?Øæè?éº|@Fâ@ÅÕ?¯~È?dÙ{?ÁÂÄ@©Œ@­û?®¾W?®«˜?®›´?®…ò?„Æ?mê?Ãœ'?ÞQþ?å#W?è19?ƒˆ;„û>ÆÐ]?²_Ô?©.>ç±É>硤?غ?ÛÇ?©ÒB?¡Rì?À)¶?Ì“«?£+±?T¾×?p"?ÀÿP?ÌFŸ@5˜Û@9—?à ?§…N?>Lˆ>çÔ?êô?æJ°?̽h?Žæ‡?Ÿ¾±@ÿ@œý@ É@ ‡Y@UÒ@ G?š Ì>å°Ç?›‡¾@áé?úÐ>å‡ì>÷.q@Õ@ +•î?¾“†?´f?®ON?¤ Ë?›ÒF?kü?hb`>å)?MA?Œ~? B? RÒ? ÕX?j˜÷?ƒQf?™ýD?¹ýH?¯ ?€‡Ã?€»?«Àù?«Á@®@A?±Ìm?œS‡?Ex?ˆ<„?žç ?®_c?—èµ?{æ?ƒ„0?FñÁ? †U?—¨Ÿ?¥?¨F€?«XP?ª£?£ª?´ù?Úyj?¾'ú?9|û?MUü?Íg2?ÊÍ?´P©?·ÕÍ?¿ ñ?¼Õ-?ƒJ®?å…>Âb_=#è5;†,=|bs>Hb&?™Ût?’ç3?lg ?g?u¡ ?m“R?k" ˆƒ>´Ÿ÷?ãÃ?ßÌ<ÿ„=vðã?R·ø?i +>¨ >6u?h]?sÄW¶”>œU?Ïíº?½ü?©Õ0?•œÛ?0cY?†Ø=üœê>®©?rR>ñƒ/>îèÏ?t¶$?½%¡?´àª?¡ÞÜ?†æ?:˪?J?ƒïÂ?’„ˆ?¥Ã£?„Æ£=ØGµ>w•?rd¯?Sp >Ðf>éH?Pnº?Bf?1ôG?}|=Kžç>o‚¹>¿f?´§f?•× =×?Ò>ùÅÒ>¼'®=¥Å>yÐC>šÓÊ>ü¡ç>å.C>Ò +>çfl>ûƒ>o·5?ÓGl@4Ï@t¡[>b}0?Ì{ü?Ç8ò?¿Oí?Éô©?ø 1?Á«$>>„•>þn8>ýo1?#?.w>~Ó#>†ùÿ>A:`>Ç]?’?Uš†<ŠI=<ñÁ>Î?Ó'>ß=¾">:aÃ>°Šý?)?‰Í?RñÞ>mW>i H>¢åŽ?ª??|ÈÙ?h î?V?-“?|©1?>]9> ƒÃ?T³? ¶ý>°K>ȸf?ÂŽ>î»>r)—>íè³?œ¢è?zßc>ü|Ž?Ê,?i+?=~s<¹:‹>Z{C?|ƒþ?k^9?9ù?jas?¬à£?¡TÜ?o†?f.¿?ªó?j™?3“? $#<Á”â=ÖÑÅ>Îæ¦?ïK?Ë i<éŽï>™Ê?¸J{?­' ?Šdä?o°?£F_?¥à?—dß?Š}Í>ý8Ø>ТÖ>'w?Kàë??“?I«Ø?cL¯?Œ?„v¾?|›?—?R?øˆ¦?Ý|–?fÞX?SÙá?"{?Zçc?Φ?À”? lŽ?‰¿>þCÝ? r?)9S?QµY?Âõ¬?¹[Ì?m4?V¯“>þ¸–>þÇŠ>þÙ>ɲA> xe>ÜôÆ?Ž_K?„c?Sq?Y¬2?I‹Á?Cš¡?=ª?Îÿ>Èx?±=?Y–?GØ?¥›°?š³?öF?€?€ >?…u<ù¡X>‹Â?¸Ï?œà?,?9?Nß>ω>“‡×?$k?‚u6?¢K]?³*v?. è>–?kG?å›Ó?¼M?™?ƒÊó?|Â|?)f9?Ô£?“ÆÕ?°‘ ?Iˆç?Œ?Ü¥@A†?[«^?^:?sÓ?)¿?Lº™?JŽŒ?6Œ9?.²?q?\?•µ? <Û?s¸?{*?„~?="@šR?ç+©=ònñ?UÉ@õB?úÀ4?Õ<?Ç¡2?’˜í?mÃV?ãc?¿7>ï¼y? +Š?3³?Rä½?‚?‚£?‚ ?4Q >¦ü[?4hÁ?…7>ËËg¾±³?×Ü?’‘?ªnè?¥!Ù?ŸØÄ?‡",?‚…Ò?+Ú?á=?z´?‚ i>³>[C?VOZ?UFï?Âü?½‡?í?JÿÐ?Óò¬?÷A@?"_@&­í?½þà?½Ùß?ËÜõ?‚›4>Hž?(L?”ÑA?êÎ&@ð?Õ¢8?Ÿ<Ï?Lõ§?¬‹?±Ù?à7?˜ÎÙ?ƒP¥?©GG?³ðd?‰@[?ƒfQ?.g ?$K@<`î@5Ð?Ù>ÿ¼Ý?0G?G›À?Ϲ5?ø¼@.L?ëÑ_>#xX>¼³î?!®?“Ë?Ôdi?“·?T·x?K²?6«Ð?ž±?Ê$2?~©Û?I†?(¶?ò?!çÁ?ŒŒ?¶‹S?ÄIý@TE@7?)±T?S&ó?Åù?Çîú?DZm?³ùÇ?˜þ?™²•?’e¯?‘ðÑ?ž$?•??„ ?¼ºé?î’9?Ö¡g?Æ4>ûp÷>?•@6ˤ@Z?b€L? +° @ÿ›@%ç>(4>Öæ?ôhz?Ì-ý>±hu?5ùÈ?ÍèH?ªÍá?WøÕ?@/§?. +š?úš^@Uù¼?ëÑÎ?Äf?se?˜sj?¸Í?ÆtR?‰E–?m\Ú?¥õþ?´Å?¿3?Â0z?m?zè@¥?úÞä?úr?òé^?鮢?â}j?¶Ç?“=1?'Ù$?meÐ?¨‡q?”?WÅl?p>zî1?lu>?¸G€??;7>±—c?“~™?Â4>Ì ¦=Ѳ?¦5?½ç÷?-Ô? 5“?©M?=›?¡¶?ò£?’‹Î?¡|£?ÆZ3?ÎÄ„?æ°• s?”T?ÜýÏ@&Aï@Gï«@bò?öÕõ?Œ¹¨?FÔ?Ï´Œ?ñ'½?Ë°û?ÄšL?Š<×?¶x?ùš?úqˆ?Ì,?ÆŠV?ê€?ú?£J?¹ÅV@0ä@ T@m›@B4%?·? ¶?£ƒ?¬§ý?Ãò?õ”z@(—x?ÿÏò?y#º?¤v?ÐS?óWp@ù@ ÷@ùv@&ßG@@{M@Óñ?Áh‰?ºî°?³Ïµ?™R?‚*G@¬Ÿ@5ªë?aˆ?={l?ä*@»@W9z@iÕØ@Á©@¨F@f[@ðl?ÈFÍ?Â¥—?”“¡?†h ?¾•?ºóÅ@.?þeÞ?±™â?¡6M? û¸?CWZ?ûb¶@³,@ ÊÅ@-B¸@yú)@Xën?ÊON?Éã?ÁƯ?®U?`ß@?°œ›@-ßä@.W@?0T@;àå@,e@]?Ã(?¶jm?’ +?š5K?®èý?ÓË@ +!7@±?òKS?ÈéÃ?€¹?­l?ú:g@dl@FÚÊ@€?¢Q?…m?‹ ?Ý Ï@eø?ê }?›X÷?Üìä@¸(?Êi?W,ò?ñf@@–ç@Ô?Ù²c?ß}n?á“–@¢‘@2“.@/IÙ@*0†@! @Hã@.”?ät@ý@,~¢@'“×@È?âÍÞ?€"B?p ?¾r?…T? Îœ?°€3@’6?õß?¾1L?ÏmG?Ü·Œ?íôŽ@ûÂ@RD@GDD@ׇ?½,Ø?â»@0R?ð4H?Ôát?¼øñ?‘‰?Åã¢@½û@*nê@@Ù“@9@îö@`M?û©¡@â@¬¼@1â?ƹä?Ø‘£@±@ „?É“ ?Û¼¾@1ë|@*oÄ>­&Ó>ÚéÒ?Ê‚å?ÓŒE@. w@*ÜK?Ã’[?Å(?Ö#~?ß_?çõ?ïÞ@E!…@ZG^?ÁÊÚ?†/?ØþÊ?óx[@E‰@0—@çù?õÿ:?úç?ÿ ‹?¸ƒT?†û{?¸H–?çBŠ@5J@/Ä@î?àª?™™>ˆ‚¶?)?»Z5?Þå8@Ž@ +ˆL?&æ?Ra`@ÉP@`?¸³Î?¸S>Ô}S>ÜOŠ?}I©?~Qm? —A>õŠí?ôDú@ s8@¿@€?¶SÒ?tåŽ?é—?ŸôÛ?v +9?(p?u¾(?°ï5?Ê„?ô +r?Ô?X?sÔK?’Ö@²@ ·?ÓÛ?Ö×[?[Æ0?_ÙU?š¶)?“\?ÆÆ>õóƒ@ mA@.Bš?¹i=íxH?Óc9@;b·@+²¯@Z?ç ò?KtÔ?OÒ???R!m?³¡ñ?¹ò?Ç ?ÀGü@ +ÀÂ@ ¶î?¡=Z?‡Ï?S½ ?FH?ùâ@. Ÿ?¹æk=QE¿?c1Ì@¤*?î»?àž?²z?núø?wü@8æ@)?± +v?¯x×?»Í?¶¬œ?Š‰·?Xßä?fëŸ?…zÃ?E¼Š>¦™b>ï˜`?Dé‘?Mî¯?±Øè?±èç@té@+õ?¹?7·? xþ>ìgè?þ™?Çs{?qŸ>ˆ>ú"m?kÀc?]Iy?•™?/iÂ?™î? I`?“ÿ?š§Ç?( +ý>¶[©?Äd?V¢?‘’/?¿ÝÔ?˜Ÿ^>ê?ù¬î?ä€9?Ô;ù?Ã!,?½µ?ÉþV?ÉÉÞ?½?‚Ã?‡Í°@0!^@-ÊË?ÎÂÔ?®KÃ?Ï,|?äQô?°ëÃ?fð?Býû? óu?Kñ=«¯¿=Õ©Ì?Ã[?ÒÖ6?\\Ì?#uZ?©W ?çÈ%?Ñþi?­Dh?Ÿ@õ?fÞž?wjp?ó+²?ð`q?jÓ—?U€?cž?e¦ô?‘ìÇ?²Kû?óÖü@3?¾@ÇN?;}?­áG?©&!?¶`å†é>éV3? +Ù‹>ó9¼?ÌÖ‹?áó1?píC?s¯>îþg>´¶{?Ü·?û?uÝ]?e0?eÔ?th?Vqä?À×ÿ?Ú ¬?|É£>»O‹?k—Ò@óí@€´?ã(?à-1?ºîy?Á':?Œê]?ƒpM?s?eM?¥4t?æË{?»1>å$)?ÈØ@ Ç@98?‚|>?eIî?m%?fª?²lf?ßZ†?»#—?Œ÷?}Âõ>å¤A>ñæä?‡_²?‘}¶?D?;1?²ü?ׂl?»z?¤ó’?”Ñ?hN¡?b}Ñ?Uº?^ßc@Þž@dü?£+ ?—T(?mta?hM ?aÃQ?IÆT?wgu?Ÿ™¹?“¦a?h??TÕÆ>ëêz? i?œ¶,?‘žÃ>Ö±>‰‰ß?{?¸?†?Æ? Á>ϯk?‹ª8?Ô.ñ?”²-? +R.>÷c­>à7‰?B¹?q ¬?j6>¿A$>²ø{?×g ?ßë´?‘ ;?‹?Š–ú?‹5>•Ð¢?ئ?hÈ]>¦÷<Õx>®>6?'c@?8ÖO?Jf?Fò?3"ü?€=¶?ªÛg?‚¸?=*?Ohê?aÂF?ˆ)á?´Q«?‰~½=·Ü{>öv>¦w>¶ÝÐ>r6>„¨}>._z>ÒÏ?FRY?Zý?mØ„?=­ê> °>ú p>¯¯G=£5>Š„[>Ÿ;‹>´¼>™¶=üºà=ÎÜ;g‡é<=cp@'Ì@…O*@Ïâ>µ˜b?ÿ3Q?ît?² d?¢g¡? ù?c m?Ö:À?¾Ú¦?›j?t±>™Jn>O>:@Ñ?-wS?JñÅ?ž¥4?w¶=†Z»>‘ëx?x÷Î?Vix>ýM]>¶‚9=Î> ÷>ìô?™½í?‹­ž?8a? _~>-\>›:(?BÅ ?y§Ë?¶#¡?§ƒß?z,¡?XO>å1>â-¡>ü˜?>ü‘À>ü‘Ï?H¥¸?Æüƒ?–œ8>†Â£?[?Êà±?³ï >ü„]>ü†9>ü…Â>øB>ô6$>‡/=xm¬>Kf}>ü’ö? Ãü?Cª*?cóÌ?–Y ?‘â»?y'c?ø?|´Å?P¸>Ë$>ûÞ?0ùh?3˜S?p²º?®Ã@™2;>Ób"?1Ì$?,˜Ö>ýI>ʾH>lf,?˜ÿg?‡ì.>’mã?^;@¡?Þ`?2«?9†œ?ÄW?β"?åpï?¼Ùi>þÔ?YC?‰±W?”§‰?ž ?ŠES>þRœ?ÇO?UÓÅ?-Vs=âÚ >[éž?xƒ? >öé*>¹Ó <Ú­˜? +’_?Ùµ?§~·?¡^?Ó¼>ÿ@Œ>ík‘>ܪ>ô°Ä?WR?qiÒ?È×?˜åS?$¯K?5Æ\?JÐ?P¯?râ?voê?}/?{ýÇ?n ÿ?Ž³á?«u8?j}N?E]?M?V§>¯%U>_‘Ú?M›?=k`?‹¯:?¶ìH?¦‡L?Œ"?o…?fâl?íp @ih?²´?Ëü?ô f@ræ?;0q>W÷Ñ>«÷=êö?pϪ?•dÞ?€ÛM?gnÚ?|"‘?1c?²t?@£?K—õ?W è?)µ^?"P¹>×ç>·aÏ?zß?Ø?ƒè?÷·?†Ó.?š°?âÏã?ØŒ:?ÝØw?Äô¶?NKá?pâó?štF?iè?éÍ?ìp?I v?9º?#îà?†žÞ?¹ù?“-?iÒ?Üæ@çã?ô¦?Ãdƒ?`’¶>û +?‘­j?´f? > ?+à ?L'7?£uÏ?¬?©x6?¦Ùf?„¥?‚¦>—]…>£V‰?º?—?&zâ?'j'?S4L?—®@5Œ@Ù{?…'?5\†=xÚt>—Lã?"0`>Âò?0QÇ?²ˆ#?öAÊ@|Y?ãã?¨W/?p(²?F{?…! ?šý{?nÇY?[=?€_y?ƒ`´?SZH?X]ó?Â¥™?Ã'?ƒyÚ?‰±]?Ãо?µ=µ?{°c?~{¹?ŽY8?œ ß?ÂÉŠ?¶!¬?‡û?³²?ƒ²*?–Û~?¸ï”?D?4dÉ?@¯k?Uc?=ù’?,>Š{M=ó þ?ZŽ—?ƒâþ?©bz?µÞê?!ŸP? AJ@óÎ?ø„?ûÂ?+2F?Æõ?§‡œ?E?kÑ\?Ý……?´Œ?lµ}?dîz?J(ã?“;?À}Ê?¢Ø¹?“|¥?¦¸¹?±±ç?û›=ûžž?>?µ?rŒ?³n‘?À-½?¿9¸?Ã¥@#ÙŽ@iT>òQ ?(…`@@q?éQ¡?LEý?hýf?«æ«?ƒÏ>Äfº>ý¶r?z'?¿àC@('§?Í{?$´??*üÍ?1Ó?ˆM ?¢]‰?AO>Ó Ž?%_O?'.³?s‡y?€Jî?…ÿì?zðª=¬~<>©;?ÍÛ\?Î8?Æ…?½´>Ç1>•j›=šÉÈ>N›>ÜÇ?6ˆ? •6?Uº?U´?U7?_^B?„R»?4&>Ñ ô?apx?k3X?í ?„MÁ?„LO?„+ú?‚Ê3?Š°¢?Ög?¶®Ú?„EH?Vš¡>ŽƒD?V7“?øn?¸‹ ?-ýí?Š@ç?ÆRN?»ˆ»?¹‰„?ÄHû?ÆGÕ?ÆE‰?ÆA?qëy?1ÌD@0û @Z`Y@Ñ?â}@4nÉ@<®?ûq¶?ñþ =á3>Ut?Ç‚ü?°Ë½?€>×¾>$Jz>è\?ƒù?}-ó?vV^?žç?ά?s}>^¨e?]{?§$õ?ÑÄÎ?øÄ:?½Ü4?œÎç?02%?Ê£?PÖ±?fü›?ÿ?º#?Þ· ?ð°é?üŽþ?÷†?¦¤??Ÿ @!m@%?Šÿ¶?·g‰@$pk@4?Öñ¢?ÐtÜ?ÉüŽ?ï…T@Ž?Û¸»?wá?ÂR5@³¯?—*j>á¦?…÷?¾ÇV?â>?òØ!?Ò*Ÿ?ÄÒ´?ã+?ð=?P p?ß„?µ ?Ä¢´@ @“?Éi8?Êö?Äyj?¶‹=Àã>Šåh?´Ø?Ë@À@#Ž'@!®4@Û±@ ÔÊ?‘Þ³?†¶?ƒ•?‡½¶?‹í³?©n?ÊÕ?Ä‹?ÊC8@µ@\«ä@ñÅ?¤?îg@så@Îq@1Å?Û¨&?Ãq#@5Ô@Y=Ö@=Œ0@0Aç?±Z{?…h@$%¼@7@ +-¦@Ê?Ÿµ?œ»Ú@K'@Ô?ç«^?å+Ø?Ä)?ÂÂi@)öO@+ @ì‚@=N?óJC@IÂ@¸¿Î?˜!/@zÐ?íò¼?Ån¬?ëÆI@ fœ?èÓå?—?݃­@&Š¨@yF?ü”ô?å’Œ?½SW?­N?Ü?Žæ>?“’â?²”G@AG@ÍM@×½?ÎÀÐ?^Ñ?™Î@Q @BðÊ@+¨@‡@"5@‡À?hŠY?\7 =³î?¡¯Ã?£¡€@Z@|9?¶„ð?°þL?¯É>ù¿.?!2*? W?miÈ?W/¡?¢0°?±šƒ?¾ÆÐ?¿Ëz?»‘?º‘ö?£Î?‚*Y?«X[?Ágp@Rï@<ØÝ?Ö©`?:ƒ?°óé@[‹?áÖM?«£€?‘V??¹?O +“?w&¬?³hŸ@!>m@v?¥3Æ?±{@ nõ@7?Åî?¿·B>„Â>>” ?ë…?õÑb?$Ý->õ•1?Å™?.$Ã%?œŠÏ?å@È@Á@,;A@NKž@94t@æ +?óíÔ?¦äf?¢Í?A?ˆÉx?Kƒò?>»%?›é?°!è?î—@9 +?—7>í×u>Éîé>ˆÃ?"±ð?ÔÑË?Ô›w?¹wz?µ“¡?l÷Þ?lá?lÕÖ?l¥I?Ág?Ó£è?ˆbM?DVì?@±?$»í?Nç?š<›?xVd<‡?ƒ>ëh>ëG~>´èž>š»?—…©?¾„ ?mÓõ?.S?¾—å@/Ýs@ªº>êÀÅ?— +?s6Q?x?·% ?»b=?&ŸE?U¯?™-?Å7?’Æù?3?Ø»@‘D?ëñ{?rKP?³úô?l—>íO¥?‘L]@3@°>¸°>®?©ák?­¡¬?‚n?½[ +?ú‰þ@ Á&?ð +×?Ãq?»t›?¥²#?¥B·?þ~@H—>pãŠ<É X?(Ç?fq¶?Ìà@ ?W?çÃe?°M–?µl?ˆþª?ƒ£?Áæl?¶µ.@ÀÊ@&<?úA1?Ñ¿¼?éá@Œõ?îuœ?7ð?46 ?ßîg?äÊð?´)¸?°±å?¢þÍ?–õÙ?̦ü?õª+?Þî?ÎêÚ?Ãù'?§.?Œ§‘@—6@"ª@ 'u@°q@+‹@.?¨R=3½_=Ò¢é?³Ù?Àþ?w#?}Rœ?i©­?eZ?¡Yy?³Æþ?ƒc?9åñ?#‹^>•j>Ü77?›4Ð?‘“?Z£µ?]Ÿ5?ô (@ ¡@*zè@=I2@ ß»?è?ŒÙ×?;Öé?563?.‰ä?'Ý >›÷>— ®?‰Z§?¬™/?–¨?~uf?ŽyO?¬¸`?‚iT=Ä 6>sð`?šâd?¥…i?N¨Ö?Rʧ?:"k?)ge?šŽ?Áb-?š ê?gài?bÎ?]õn›Ü?QYÇ?EÒ?BÌ?͹=2Ê^>kA>¨I=¦×ß>°ü‘>ò P>éég>Øš€>߀í>ïÄò? zC?Bw?9øH?1mÕe@?¶È?…ó‚>gÏ>䣄>¶ñe>ª<Þ>TÇ;Ú¾Ó;‹Ì­>‹‹>Ü›9>›¶@> c™>aƒ‡>Ž!0>Î}=­=ô¥t?‚n?t~ç?4èW>õ˜>!3@(¿à@qò @’Èç? + @ðÏ?Ýw=_(>&)>þ›9>ÝÖS>¯@?!Ìy?‘¦b?d?>P­¨> úe>ï"?¸E?}¿e?Wâ3>ý™g?? Ìö>¿[Ò;¹öÓ>£W?pœ…?b•3?F´S?8#a?)™?:%›?|ô»?Vsh? £? {>©©6>}A[>¥3¥?„çÆ?6q9;ÍȲ>¡.V?o6×?IfÑ>ü”Å>üØ>üŽI?? +f?µzÅ?†¨t>$Û?iZ>úS+?U? µ¸>ÜD >®Rb<&kÓ>Á(?¯Yž?‹ªÞ>ü•c>Ì_>'E>”Ô¢?/ü¿?( ô>ü¬N?*C(?—fJ?v ð>³ ?ž?¥åh?–Hó?¬>ѵÖ<þà >q&Û>üþT?´?b+¬?Sÿ´?-z•?+*à?HP?_ÑV?šóÿ?z{ß>ÁG?“Ù?†’?Œÿü?É ²?õñ@Q—@?½.?öã?Á ?+OA?LËø?^ b?WF?=ne>þ'-? §„?>m®?OÏå?f-e?e«]?tÛÀ?Hk>þ˜œ?®·?o÷×?0<$ÆØ;w­€>Z"ç?<†?T@…?^½•?;-v>ÿJ >Û|«>Ž_Ó>'YW?]ÆY@õ±?ßi`?\Pœ?¥¥¥?ôý?¯Ž?³¥>¡®—;™š\>õdá?€&P?\º>„Ðz?>ç?^¼b?ƒ©?“ç?)Ðù>Žˆh? +PÁ?E=*>ü‰L> ¯€?¤Œ?øé?tÉD>Îà+?…?º6¦?TÅŒ? †?üç^@!€?Ð5e?¤£ß>ƒúÜ?T$ ? ?ýë^@Ø×?b9?A–‰?t[Ö?lˆÂ?3G?+φ?€¸»?ƒ´R?é +è?ç2£?t@é?ƒà?¾­]?¸óz?œ?sO`?5¬«?)õù>©üž?¾9?\FÜ?1ç'>Éc?@×%?¨ ¶?w[ù?úð>ÀË><7¨?ˆ6Ú@më?¯?¡À?„l‹?´š ?·k +?½l5?Zf?T¢?g?ŠœÒ@ @@÷Û?•MÒ?_5ÿ?Xá"?c\Œ?™ù ? ?H4¼?HVz>ß)O>Û"o?]PÛ?T?bÅ?NÊo>’æ>ü¾>?¶k£?»ª?ÀéÒ?—j_>ùÝ]>ùj?Ç?† z?Ðù?ødÇ@W£?¬Gæ?=ß#?¢&?ÄÑí?U‰?A÷?#?š?ç?Xe?›_Ã?¤™>ú`­>³Éí?ÃJ|?Âüâ?’6?—~@ÿ?áäd?½‰?0)x?ƒ˜Š?ƒr?ƒ¢`?Š´X?˜×`?µLÕ?Ó _?ÔÄ?­t|?Ú†Ï@‹Y?†Ùn?ÌØ?~•"?—¤Q?+[›?Ý$?—dA?¡­å>4}×= 64?÷dS@N?76?4mÆ?¸8?£”½?3\X?qLÛ?Å.Ò?Óe°@?½ÊÅ?ñ?>Ï?„Y?† ¤?ªä?loÓ?6E?¡Cw?Àéª?G?.®>ßV>ÝÖ”?!?ŠQ?Úò?_j? ¡÷?B¹_@­‹@ +;»?™jù?£Ñ™?·°?´·I?²Z?c?%V¨?¦[>ìL?eÍB?¤8?•_Ê?"?‰ö>?„T¾? vY>ÁcY>¼1¿>¹ê?œ¬?µ? ßG? `'?Á²›?Å”¸?½¼Ó?ŸŸ>5³o?R¼?ü€l?Ðd—?Eg`?]HÜ?†6ò? ‰>#>Žà?XZ¨?žü]?˜*?‘@$?jÑ£?]3?•1)?¤5@»M@†?€±Â?h,U?„A]?_? t?W¾?hš?F@Õ?¾Ým?¨\x?XBˆ?TC2?g´U?‰9ß?œ8?Áä°?îãÒ?¥}Ú?LU‡?ÜÊü@„³?ãLh?ÆDÎ?‚óÞ?[ “?Öq_?ê–"@ îi@µ?é h?ì-?™\Õ?ž¾ú@ÏF@e³?…«#?† µ?|Ì?ˆ½?¦²Ì?ÝX\@(LO@FÞ‚@s\:@"e‚?–ªË?6 +•>—Ôb?Us?£ &?Lç?ÛŠ?ŒGó?¬ê ? ‡-?“ÀÚ?:þœ?#üÉ?8~m?2È«?¿?‹Z?|áA?wÜþ?Îc?)*?`e?w‘?ƒ—ª?z߇?b›3?kj?d¢Ô?‰­O?¬s?º;Œ?ÍÅ?³-À?‹b?ƒ¤¥?„WÁ?Dì!?b(?-Å¢?2à ?…2?ÛÉ?»µ +?ÄÔâ?¿±?ƒ.?™k°?—P”?ÃP?Çt@%T@ëÝ=Å?û>NE?Ä{?ÆÎ\?Õê?ËuÜ?ÄVÈ?åò‡@9ó3@)mX?ì¿&?ç{l?á0s?£C>…?5Q8?°Øg?ê@#D0?Øfì?)}8?Óõ?@,ÝÎ@EÃ@e´?»3¬?w S@cG@F:Ø@ë?Ãt?ÍÇm?Ùc@lž@'“;?Ð7¬?§‹O?É_?Ü&@î(@x$?³E?šÉ?¾®?ÂàÏ?ÂÒ’?ÂÅÅ?Þ¶ã?Ýðè@ Ô¢@ +Cª?©¢o?ªq>?â?çGù@$+@ ›Œ? ÿ?Qf;?ÿ†c@ :@ì-@‹ù@€)f@FÔ_>°_?J¿å?è‰Ö?ú1b@·‘@0‰Õ@WЊ@/)¦?ÌÒ?ï±v@˜å@Á“?ÿ:d?×;?›¡ö?£a??®'b?Ð!v@÷@@r‘@2p­@ ÿõ?¶p?jë“>y×?øç?ü‡Ï@\œ×@œÏK@k²~@#??ß`??lUÁ?tÌó?€?€å'?ˆ»?véƒ?YO?§.³?Ú(w?Ìëâ?¿©ï?ñž¢@ À&?ï¶?Ë6ô@ª½@4…×?Ä)µ>ËÁ?v‘(?¿@??”?~ž¶?ãµú@ ¤@pd?þHM@9@9‘K@,Í@µã?ó»?Û«?ÎÑ?¾üÂ?Ã_[?Ñß@é×@!ø¼@Ø%@7'@Ðï?ÝÇ0?Ýuý?Øz?È?¢?·î‰?Ôç?õ–½?ûk@??ôkÂ?ç&Ì@R@ ˜+@8zö@wU˜@Y;‘?öœ=?Úq?š“S?¸vÈ@‰Ê?ôž!?§¥)?ªøƒ?—¸?¥xÜ@ ó?ý©¨?g«?rûŽ?›¸É?ŸÆé@ +ç@ Έ?4Ë/?'Ñ?ž…ª?ŸY×@8r@K‘ä?§‡?y+€?Ö´Î?ï—á?Åß;?º@T„@b9@4@µ?Úzü?¶¹?âáo?ö@c?°}>ñí?9š%?w•ì?wwíàÝ?4¾?M?IGV??/þ?oé"?ظö?Ú¹ ?hÐ:?l<@ 9¡@ ~?¥,›?ˆVz?1žç>ì>_?\?B ?.ð ?SšÊ?eÜ&?uI°?a¥2?\Ð’?RöÓ?gòt?ký?Û?ÝgÀ?žqð?j¯¥?Ôiš@&ÖB@ gõ?iÉ?uåˆ?ª 0?§š•?ß g?Ü߈?ßÅ>¡Ìn?‚ž¦?¯Ô?Óß?í¸I?ð²–@'?ý¡Æ?À×3?Ťœ?®ˆG?®t"?ø××@œ @ ß@?t?Èb\?cxž?)>´ïü?(mY?Áe7?¹µ?;ºŠ?F•§?«\ï?Á³\@ê}@=@.þ?çI?ò›@}_@>I?‡Øz?‚\J?1 >öÎ&?@Ÿ?ª~?“)?Š¾~?…úð?f6²?žË?ù¸ò?ô®@½¥@³š@YÃ@so?â7ë?¬L‘?ŒN˜?A#Ä?ˆpž@…’@S6?h„|?g+‡?kÐT?q@£?Áï?Ùo@¿Š@›?ñïz?€ M?‰‘Ú?ó?“k?¸Ÿü?¿™þ?µa?¥ND?Žç?xÕ?JU?«ÆK?ÂU@—X@–ã?þè·?õ“ ?¦-?—ù¿?´/?Åó?H\¤=ÖÚr>“ˆÉ>ùJ@;õ@zT?P>î‰Ï>èCø?¡?–ìm?ѯ@ ÷î@)&z@ŽI?å/?,`ï?eÌ¡?eÜÙ?0]5?pì?a¡U?Šë4?¿¿«?áøÚ?ÌÂ=?¬ÙØ?¨‰v?•gÉ?ƒ}ˆ??¤?`Ü>ë0æ>ç/·?"Ô¯?5H…?œ^X?ÃòF?¤ü?}?Sçx?iÖ>ë¸? +P? gn>W>X‚`?›?Ø3?z½?¶$?ŒgÆ?xÏ??vyÂ?g+?H?(ËL?¡y>ê$Î>¦_Ê>Jñ8?¡“õ?–ò7>ŽH#>|6Ò>[¤§>:éî>o´>qº?=Ö=X_?+)¥?n"?Ç>ïM±>‰‚>»¹>K`>ʸú?/„Å?q%6? +AÜ>;z¸>òyé?"ŠM?rˆì?&O>0õV>@©=·.>CG>ÂP„?BHç?&>ý!=‰W­>˜>ö>£Có=Ÿô=”tö=£Û`>q…>7>9!Ð>Ì((>þ?QÙ>BöÓ=3Ãø<¸ÒX@,!¯@SË9@/ë?o8@j>#@?h(?yxz?Y î>þZ>óÙ’>Ït>­[¸>›:>ât?5k?wž? ¾?(â¬?RŸÐ?/þG>Å5u?Ïö?}iD?Q[q>û Ï?uMM?îÛå?²Ñð?s}?@þr?}ž?c–l?8Qð>ü³²=÷Z>Ÿ›ý>\58=Í8‹>ÿB?² ™?P8>ù½?"˜4?|žN?3ß=èiÕ>ñMq?’p?`]Å>ãe#>ÔÜ>^t3?ûN?¨xV?™‰?`_m?. =èŠo>C€Ê>üwÖ?!Çç?ƒÈÑ?GSì=ð +>”Ò?0ß#?^>ü¬~>ü³Ü>ü¶?O˜?ÕÖâ?«¬œ>Ô@>ÑŸL?ŸZ?D Ä?´œ³*W?®Sf?·›}?à¯Ú?Ï%?©8+?¦?¢×\?¦Ìˆ?ÁÁC?¼D•?–$?©¦ ?ø¤%?øås?ÝjY?Ê„ú?tÞ?{Iº?€?€‰?o6?õÏ?£û?‰Ö?&îr?6 t?Iâ7?1ç>þO"?eö1?ðéÙ?Þ1%?ÅËÉ?£ú>þ¤¡>þ±³>þÃE?´?âµ>÷Þ”>ë˸?­ ?ifz?K3 ?!h?Æa>ÿV«?S®â?¨¬E?†üÉ?-Ø?Y­?£›º?y?DN?xoÀ?©ž?¯’?µl?€±s>þÏ/?wÔ?ºk?® ?@V?Šu?€O£Ì0=Àk]?-­n?tèC?¬0Ò?Àå?ÃüÈ?ÊV¨?ðç}?÷¿J?.Z>®Q?›?¬"p@@!o8?np=?@ë ?¼1ü?Áî?W–?\Îm?·{?­, ?΄?†@«?ÌH?ü)?)¢?Ø@? r?"÷å?pûª?e‚Û?H»?7oW?*,?b€¶?%í?¯¼?â)?®+›?:á4?tf?Ñ?.ö†?`ô¸?V·?SU)?;l>èó¡>UÕu<Â*…?„(c?¼Í¾?Kä?Îç?îP•@É?Æwì?°iü?h¨?SÌ­?:PØ?>>†òe>‘k>?™?6¤g?Ä ?¿~=?–A|?•%¬?ÄG??§Ò?M?y¿? ~?`x—?½™A?‡>é? ±?W…è?ž¼?¬Ö ?¼»@TO@m?­Ï‰?xa?ƒ¹L?€Z?‡õ™?¿»?±£Õ?ªÅæ?Ú#?æîe?ì ?ðû¯?͈G?Ø{¦@AüÞ@Hü@dC@Fƒ?¸tñ?§*?ƒÂ?”lÍ?´öò?Ž&}?.¾*?•ð‡?à¢?ñçþ@W›?ä•Ï?Óî|?ong?Ñ?c- ?‹WÏ?&=§?áU?ïbŽ@ ÝÂ?6„? PÝ>ÿå?À‹@n‰?úÛv@_ñ?åI°?o¿õ?Ž?Á?×å?Ù‘˜?ÜÌ?Ñ)?·å€?œXž?„–? +ž>lÝœ?Uú@?œò5—=¥ë.?°A=?ÆX&?WÎ?„I(?A2? ?Ò–B?ÒàT?»’ƒ?£˜4?B­?L,C?U¥k?-P>ÈŽÐ?þ¸?|–?J$?‡,–??þß?Vù?Ž?°å??3Ä>Ó-?„]U?ŸË‚?ó9?\p?€î?‚ã=":=ãÔ[?‡‡a?£ÿZ@ùJ?᨜>ÆÒþ?!nŒ?„^R?‹¿¼?š?RŠ>Ÿ°?\¥"?¬)Ô?¦.¬?¬Á?ë&ê@\W?N™>²]?"5?&e@?ã•·?ü5o>L/_=ŠâÕ?}KŸ?‹€l@ßÒ@‚@ï~?öÖi>9à†?ë|?º-?²£Ú?¤ã°?‰>²?YIl?‘ƒ%?·¼?ÇŽ?Ì^?ÚLc?ï—d?ê,w?á<­?=à?^0?Ð!æ?ðO­?iI¶?R·?3¤Ì?4¼@!±2@ªò>þB=?—?¡É?'HÚ?„ ?–ø'?Æ +¦?Ám?Àò?ÑÊ?ð‰8?¥ö?¨Ð?‡¹[?³d%?ö®?FÁÏ?Ÿf?¶"Ó?^?ƒÙ³?êÑý@K?¸‘?£¶…?ÎÒ9?ÑA¤?.?ˆï\? ì]>üâÁ<™¸”=±+? +sŸ?‘§Š@Sn@.Ðn?­MÍ?˜u\?fkÞ?pX!?ƒ‚5?»?œ?ýëû@k*@Õ?™?‚#Ä?Ù,>_zN?X—?WT ?;<¯?*?ÃÉà?ã=?”pŒ?ƒ3·@ ml@¬@ T@t]?ÆQ?Ä8«>ö‹?êL?Ä‚l?¿` ?›ªŠ?­ð?õ?T?þñ@¨"@m?Ý:õ?×0?Ä(T?£PE??Â6?ÂA“@188@*š@#H¤?òæ ?•æ7?µÆÞ?Òè?6ðî>ïú€?8O!@.×ç@}5@™ÿ?Ãyi?—&?‡ëö?•ÿ?Ÿ®C?çl–?öR:@ÉJ@g@ @ 1?á‚?ÝjÂ?ÄÇm?ÂåC?£W¼?¤¢ä?Ë^È?Óëk@":Õ@ Ë/@ ŸÃ@ ¬0@)æ@$Æ@Y±@ k?ÂO?Álï?¾úþ?Û©m@#H@.0@FçO@H˜B@BÁ}@$¾?ÎõD? ?£ž%?ÏÛ@.L@ È,?Ï “@g1@)5£@Ì@U>?ë­ÿ?Á:'?úñG@"‰‰?ýÂ?¥uÄ?Å·q?òóõ?Ïæ?žüB?ßš@ˆ ?Û¾º?€ei@1â@Üä@~`±@ZYw@CA@+Û7?âaû?€q?;z—?x>ÿúö>ÿéþ?›O4?å*8@ÒX@¯A?íZ?Ж@èÆ@@C²@+ ¢@ ˆW?à°k?Ü€h?ØV|?¥û/?~¨š?àœ@® @ ?ý†€@R˜@ŒC@7Ç?Æ8?ãµ™?ýÔ9?äßÍ?Î0N?Ýly?éuŸ@ -V@"áÝ@*ÇN@/¾Ê@ +¤ƒ?½¼L?ÌÉ‚?âc?³dø?X¿?­¶z@0û@2Gð@f̦@,Š%?|U?ÍIz@6êJ@%âF?ùÙé?Ø?±à?¡y_?ï/Ì?ÉŽ ?;û?QV'?{?ˆl?¼#)?Á•ý??ñ·ÿ?ª©?£;e?œ¿@?£@á¤@åN?M†Ÿ?Oˆ:?ÎÙL?×Â=?‚1‘?bƒd?ƒ±?…!Ò?qF?p]K?zÓ?yžX@„:û@¥]¼@)º?Ê%?.Cñ>AëÞ?Ý÷"@1Ù @#@@ðb?ð¬©?Æ?²ùv?œ–ô?ŽÔ¦?nÆ?kE[?w?™Ræ?øTš?ñ^?¸ñ3?½/º?ßh÷?ÚC¿? |ö?)ž?zég?wp»@2,@üÓ?Íà{?¿yV@®4@&eS@(@'ÇÄ@€@²@ +½ï@çð@†„?×p?Ö… ?ÝÝ>?äQ)?êÂÌ?Ïè8?Mºû?Št@7ݹ@3u?^æ +?c2C?g&?kÐ=ü„±;ëJT?F´?{ô>À›Ú>;Æ?2"S?†œv?ˆÊK?Šð)?¾ÁÉ@ v?ÎÆ$?!€ +?Ix´ @ƒÞ@´?¨¨R?€™H?3ì?¸¶?£È?ï@¯?¹µ–?x±t?ihH?S:d?y|’?—Ô?ŒJ?#Ú? µ?}¾¸?‡y ?´ÁÌ?²N¿?ÃÏm?Ë”‡?Ú&?Hr?Nê?T7;?Á>-RÈ>g\ì?ÿ¾?Ü>ý >îÖ? J?Ã? Œ‡? é(>ü‰X>ìHŸ>ì,V>ì3?- +f?€qç?†žØ?¯î?´w?°˜?°‚K?Œ<š?‡+*?›5L?£ŠØ?€‘_?[LB?5®?N“?k.Ñ?ç¢Ä?Ç ~?fá?_*?ºÉ?½7ö?•}ø?‰ƒZ?]îê?TYÚ?ÍKì@ž@,(?é-?Õó?‡ŒE?ˆK?Êh"?Å'Ï?”‡„?†¬Ë?ªB?² ”?`ì‡>õ[Ô?AÕ8?”Pç?ƒbg?FÀ;?U+>ç¡>çŒ?Uº«?gcÝ?±- +?Û˸?ÜLú?Ó”?Û E?æí|?åSÌ?ݪ[?àU§?«ÕS?«ÿ¬?€ù‡?mjâ?.bê?,à?/üR?f= ?~Ž?¯nì?»#“?ÿ»[@?È?4¼?Å–?™Õ0?½ä¡?Ð+5?å­?£é?e•«?r¡æ?«›™?ª¹:?§Å*?¤Ö/?Ž]Ì?ŒÊ%?²µ¸?Ñà®?©j?3l?-j?0KÇ?7Sb?¯ÖL?¦Ã±@g1@!å?ýsP?ßÕ¶?É£÷?«¹‘?Ÿç?ƒ“??Œß ?–5û?Ÿ­?«fa?«Òl?”Ö?Ž&¥?[ý™? ê?2á?e/L?oK9?–åŽ?aË?o´?g€>:Ï =P”>­?x?¾%@ ó„@é?5m?B8A?¨p?¡YW?©_Æ?´Èé?ýÈ>e…r?UÙ…?§qJ?’ÓK?k²­?rȾ?yâª?ˆn²?´êó?ªYÎ?:D@?0| ?UwG?PÆ‹?v§?ƒßG?’à?¥=m?ºØS?â§Ô?æ/?Ûéþ?Ä’¶?:‘?+#Ì?AÈ(?;+†>¤>uýÊ?¢é÷?Öä?áKµ?ô•@±@YÈ?É€ç>ë1˜>©{ô>|Óf?± u?ªŸ?9$?1¹>ˆv>˜„r?^êt?mÉI?'ü}? 9Ñ>ò8ä>õÅÏ?…”S?Ÿ >êß“>¡K>?ÏÄ>öó4M>m¸>¸ûn?ß¿>þ;->÷US?IÛÄ?™[c?9¡‚=‚$>eQ˜>…¿R>˜ûï>¬`\>¿æ<> /=†/Î;¦'C<¸Ø=y`>zÂ>Ÿˆ>‹¢Ö>o20=ËÕß?1?~ñÑ?¢í¦?¦$e>ŒVg<æ[…>Ž¾D>#Ê@”á@˜ P@Ž G?ÛU?õM¢?½ðÌ>þ‘Ç?(W©?tCô?#õ.=Êܬ>Týî>­i>☛?6ƒ­?]ÿ>aCÖ>pA·>ªç­>j"m>º79?}X?!]Î;älÅ>}³˜?.ž8?NšÐ?^sÑ?$ð“>´Pâ>©Þ@>næ>}xƒ>R:—>²VW?0Eï?&J>üµ‘>ü±¦>ü©‡>ü¦’>üŸ!?{<‚?ëéc?§†5>¿8?ªJ?W~O?|=±d:>…Ê>ÓI?,?1>Çd"? ü?b¨s?IÏ>ûr;?¼l? +àÅ>Ék…>—Ô{?|§ž?Ž¿š?­z&?I8?:e?‰™?üÉ–?êÔ‡?½¢?¨=c?h<?O">üöã?D0û?·Ò‚?“çÃ? zd?4Fs?Xd ?¡!@Ø#?×Èæ?'.?K²›?}f?v‹ï?t¸?W p>¼2ó>Öx¬>ý§¨?]Þ? «ä?$Úy?}Öy? +Á?¶Ny?™h¼?8ª?0Qd>þ&·?$Vá?~Aa?D}F>„D?S;@«'?ñuL?šÈ?hY>þ±–? +Nµ?oÉ?0ê?}C?§3š?îœÆ?­û?£I?5¨g?\$.?l'><´Q?jâ$?ÿƒI?ËÎù?‡°?`ÚÄ?SÛ?[:Ë?¯væ?{H§?î>ò¼>í†>û]â?"ã?¿œÍ@Å©?¹ëÓ?1–q?aÇ?€TD?OXg? Ëh?‹ºI?¼)?˜äQ?€„¬?‰?“?¦.×?¯Î„?1Úz>Ó«H?Ç›?¸£?i[s?VÑ?ƒñ?…üµ?½Ì?Ì7y?óÏ?aAî?¶ÐŠ?Á¨5?¦ºš?¯^:?J±?Cßû?¿*ì?ÁNß?¿v?/?ýù‘@r?¶\A?¹+o?»ýå?´Ç ?Љ?höú?¥¹?8áq?¸×?¨W6?ÄÊ??9Ø>%‹>ú?l?Œ5V?€5A?mE¼?L!O?CÛ?/*Ù?R‹[?i>Þ7=¼nu=‘s1=Lú™?3ZÊ?ƒ^k?,Ž?¯µ?`Lê?r"?QL1?Y{ð?L??QÍ©>Ìèâ>Èø­?¬÷C?¨ÍO>?é>…?D?"«?'à4?®_>?Ççû@##p@b)?¸ú3?» »?¾B0?èE`@!Z?Êè=¹ ´?÷6@ºš?Ïb?ƒj?ÃW>›‘?¥%?ýææ?RÎ>mo|?°Î3?ãÃV?®¶>Ÿ·=@J€@Åd?¥ N?’û?mê?z#?÷?û¨™?þL4?æ…É?æ#?IÒ?Ši?©ñ%?ï?ºo¤?G"¶?V™Ý?[¦Y?78?!<Ý?á°Ç@&ÜÌ?§£C?Í»?'d‘?4 +Õ? E#>åîD?3›X?<È×=·Ü+?‚Xê?‡”Ç=x‚7>IA@#§h@ Û>r.,? 1N?¹œ?×µ@Á‡?òÛj?šJ?§ ?º:î?—Ø?CðÍ?…§P?ši?õÿƒ@&à?¤`Y?E?³*?6ò?-¬\?,©À?­Kµ?»¹@w†@§?Ã=„?±_Ý?«¨? >…;R?ct³@×V?ãöE?Q¡>Ÿ)»>°Ô?@i%?Fd?C7”?>…€?9Òë?d4?°|?´Xî?µ/>€>ÈDÍ>è¡é?,t?»Á@ÌÙ?è°=X¨>½c~?ÖšÌ?Í•,? ©k?“@²?„bè?dPK?0 ?DÇ?SÔÐ?Ñï$@óÌ?ì¡\?¼`N?Çg·?ÔÐT? Ø>+.`?@0þ?g ™?£–ˆ?­õ?!o&?\[?Wø?6Ö}@$ò#@`?ÍL©?®Nº>èí­?%¦?½Á?¥ÿÝ?Æo³? ¦*?]°k?¹A˜?üä?¿²k?PY?š?€°?· Q?ÒÜ¢?Éù–?ÆLž?„m?V^¬>ËŠ±>¡ü?¬Ž ?·±n@Á"?èÏ=`+>BfT?‚'ð?w?„!?Ìœ¯@5ï ?þºÉ?"ST?Ÿ§?ûÏÇ?lË>¨:?èuå@A@C–P? óR?!¡@:‡@0µõ?ýÆ3?ä4“?ó¸?•Åæ@dl÷@E¥?Ù?y?ì"Ñ@ +f|?ëþ?  |?®?ÄH?ä.Ë@ Ó@"è?é?ä¹á?×J?Üì?çm?Ž?}"?ôèó@0>?Å~h?{@2àá@`ÓÞ?¥ïÌ? ár?û4@ÓÝ?Þ¢m?Ñc?·š¼?¸ýy@&g@W=?€Ü?l`#?âúœ?å'n?¢¤·?Ÿð?ÓË?£Z£@W­@ß?âu?÷å<@+?K@-x‘@'° @pà?Ɉ`?¸±»?|ÕX?€É?„(5?š–‘?Ñ'@Z@}ÿû@>U¾?6eP?sŽ?°V?†Á”? ?xÑ?Û-'@'TV@€÷a@3œé?„"Z?xŠ?c¨/@¨@w®ø@EÙ@ Ìb?äJe?²ÚÚ?íñ@¸i?à…?Œ**?†OŠ?‚#”?£ß"?ͨˆ?Ô÷µ?Ù—Œ@`­@@IZ?ôâ?€r?«a?È>Ä?Ú0÷?å?ñc?ÿÄï@o“@4?°þ:?-Jµ?´éÍ?ÿQ,?¶&-?+/?Íw÷@ž8@!ä-@1Ùý?åÊ%?‡š2?©IÀ?ÃV?~?w¬?ª—?ÕÃR@Õd@ËÎ?ÙåÕ?—E?ÆáY?íz?ÆæÓ?§Z?èpÌ@%Ç@_Â?ð¢”?Ü›™?½À¼?°Ý&?£%?¯¬‘?½~D?²\È?šj?ÎS3@­á?ð÷?‡öd?¯²ž?ûòe?ç/×?¼Óu?â/$@ÚÕ@(s@R`Ø@7Η?Û’—?ØÌŸË>ÕÄ?—?³Ê?l^â?o]j?pûë?r‘$>†ë?ˆŒ¥?ÕÖÔ@ Š@:$@# @ †ö?Ð?Ë?u?#ˆŸ?˜—9?©âã@ +»Ü@ +W?Ž/?’ˆ€?>'ä?)þ~? Îd?´0Ý?¬¹Õ?­j€?öƒ¡@†Ü?¼Oµ?ñÝ1>î—??¶3?¦Ã~?¥K›?”ý?‹Pr?µ$?Þß0?¿MÆ?€Þ?Š.È?±÷É?·K:?íù?é×Ý?oð?a 5?—»¦?œ8·?—Wp?’u?“ì?ˆ¯´?‡¬J?Žø[?ŠV?k²?rg÷?˜uÈ?šÕ¨?¯Ì«?°c„?S]?;¢V??ã¥?,o?|†?®Ð?Ä„ù?ê^¨?Ñâ?[À/?hñ?@%º@OÑ?iÂ?Cå±>²é>F‰î?6M\?”Æ?¯ø¨?ÑÒÃ?ËmŽ?®·2?²%¾?ï '?ùL?ü–ú@[ê@6=R@Jœ5?ïõç?_ä?f?{Å?„‡9?9j?ŒÖ²?«OŽ?£B7?q…N?giX?ÎqZ?äb?¿ô2?­U”?¶;ñ?Ëê ?ËVm?­§?­Ò?R& ?~Á?¾?š+)?—V‡?š A?æ³?åù“?9‹N?’ù?¥A›?Õgb?Ø7´?Ûn?º|?e˜?eŒå?eû+?j¿(@aE@é~?¸ªÜ?¨?¤úÎ?«÷Q?¢€?‘ºð?ŽXÆ?„©í?{=û?ø=?þCú?Šdp?eÝ? 0?³¶?’µŒ?g¥?0Á=â¦>ºœ.@5ö@ +ð©?Öˆá?Îcø?hé?,¦?†£?«Üˆ?ž†?‚?q#¿?(»ù?}Ò?³oª?¬F«?pd>ÎS•?“å3?À`º?Õ?ø¦Ô?ÜŸX?’7?šÀ‘?åÙp?åê›?"ĺ?Ó?z4r?”ð?;ñ¾>æ^„?£¬%@ ¡Ê?Ûy^?f¸Ô?‘ÖÀ@Êî@Ø?hû?gF‹?}7?˜#?›Úœ?Ÿ”6?ƒU?Z6AŽ?ÁÒ?6i-?hß?haë?ûw?&´>?0|J?AC?„»?v?‚l8?G¿?Ž}?«mÊ?P©[<áï€>!_…>½Š›>ÕÁg?D©¸?PP?.?4îØ>9">,t?Cv›?X}É?àT?®Aô?,Î>îÿ•>\U>–Ì*>œ#>ʺ¹?4šb>®—ç>®1?@Xz?„Õk?¯?0?œXt?m%f?I%?+Þá?îÕ>òA>2.z=±>&.A=¦ü>¬`D?r â?E M>ââæ>rb¬=›‡Â>MŒy>v[>éˆ>m‹=Øv“=ÐÎ÷?.Gû?e,?4®±?/i>ýŠ=¸94?IìÙ?'³;šï@ʼn¬@ÌIÔ@`kV? ??Ç’¥?“P¿>úDð?}â? +ïr?R‰Ù?•üÖ?\øÌ>ýê†?ˆ ?DŠk?<øq?5o”>÷oL>ž”=žòÏ>ãý³?ˆ¦Ð?€Æo?w +w?z„=sú>—S•?¼5?'Ë£?{>é*6>‚‘Â>«¯>üͨ>™Œž>þí>Ïëç>Þ­>ì9->ùŽ»>üžJ?7ÜÞ?œ7?›,©?%?m'”>üb> ÄO=¦è>Q³É>60Ð>»,>)Æ÷>Hh=õÓq=6O¶9ø>ü «>©‘>R˜?'Uú?MH2?¸i?‡i?B ?w¼x?¸—?´Ô³?Xp?Ï>Ö–ð>ã·n>ðÔ‹?o#Ä?úTÀ?Ñ€õ?j¦^?)=ûek>§Á”?]©N?GÌ>ŠõÑ>Éë;?D¿£?³³>/΄=×&1>1¯?r¢?V¦¨?ÁU?˜ÆA?!¤?0ñ?‡Ûs?¢oŽ?оc?«‹?S||?]?~L?A9>n´Ô>ÛèÖ?ožj?­ +d@ +Mu?ßš ?- 3?e`í?´t?mr€;ð7E?8Â?ÅtY?“ºÊ>ÿ3˜? ˆ?$R>È ?9 +?Ýéµ?š…ï>ÿ¯€?]WI?ªÝ?—Ë ?ïÇ?Z?'º_>·‰²=³>Œ3??'k?ŠJ ?΄=?Ft=ϼ>J%V>–<÷?§ì?N. ?€ª>µï=­ç2?k5?±¶g?»ã?À¯Š?y?€íÌ?ˆ(&?ŒQ•?‚èt??U]þ?[˜Á?±¤E?­žÎ?IÛ?>ÆÌ?¥4?¦ d?X²? Dë?f‚?WŽ?lW›?v;Þ?‡Rj?_š<¤>x$?©T>ÚúÎ>uŸ±>Ǹ[?!8#? »y>®çù>‹­­>UB(>k>€m€>Áôø?‘?5É?+æ¾?Á“@ +|[?–æS?3¥?,k;?1Î"?Th?ÂÃ>לj= p¼>æò?°i?]üj?gR?Ävª?ÈJ>Ô©~>žìÅ?’Ï{?œÏ?BZÖ?H‚ë?©€à? ,õ?0"Ð?VOd?£ì?—œü?‚á0?‚éZ?‚î?+¬å;Åôš>i{Ž>ôóa?šî?׆ ?äê'?éà?³ïö?‰k€?¹¸N?Ô’˜?hÞd?Aµ?½Jˆ?è$¡?†­-?Jð?|Oc?ƒbÔ?°¬?µÝ>ש†>ìö‚?wÀ«?meÁ>üÎñ?xT½@@@ií=åX >ª‘'?L˽?:@?®R>ÚÌÆ>±³b?p¡?©á?¾jJ@^V?š7ª?ÏÔ?;Á?X«? ¨e?²÷ÿ?µu¹?·ñz>dz?·´Ý?Ãpr@ˆ ?ÿø?Ëô›?Â-?hšè?Teþ?7 }?–ù @ æ?ä)¢?„ê?•ïå?ªÙ•?½²¢?É¢?Æ&?Î7ƒ@W«@6Õ^@:÷ƒ@8³à?‚ÎÜ?; ?ž0&?²ª'?#Õ?mž?ƒÛ?„k`?†Î?}Ïw?Lå?/P?¤jE?‰´Œ?Af?ß>&™Ö?Ås?s¸0?[ý³?L+m?lI½?„]§?–| ?žâ>>þÎ>.Ÿº?sÝ2?•‰#>Yy=Ǽ +=¢s•=zQ?ÿÿ?úKy?&Ë? Ï>út&>ѯ>EH ?,?Æ™¼?¯íÞ?„h?+óU>0…Ì?k?„f‹?´üð?â+®?ýXË@ {?œV?U4Ì?` ‹?YC>?0~˜?%³$?á?_…?rF'?tèº?ö??6ÙT@®?ñ„u?‡ìœ?–ÖVð>{(â?£ZÔ?®A?bÒ‘?eüR?ë?/2Ò?Ä÷Ù?ÅŠ?Å‚h?ñ{g@9wn@úÐ?ƒ›Ã?ƒ–@?ƒ“Ã?“§?­WL?ì@ß²@!¤]@3M@é!?ãTK?Üâ}?ÖnÈ?ö4š@XÀ?ÅÂË?±Õˆ@/ˆj@DçØ@4£#@4ó:?ǹ?©4Á@{@!»?×®?œ?,£L?2¹>†FY?.œb@$î›@ÎÎ?·[»?¹Â‚?—ó?´;?öÎ&?Ñâe?‚ÌŽ? ±?¤m£?Š\ ?Nr©?‘Ûå?µ­=?¹åÖ?̹?›ã’?ga?ü:x@.kí@lL@‰ 2?¾Íe=·»?@Çž?‹)æ@>À@ûq?‰‹ì?SÒ@3?;@GCº@h6@ÿh?j +•?aèö?ÝXq?Ú²@ß"@+ß@qn@ ˆþ?¦ôÇ?«Î/?ÔDC?Ä­>$Ä>¤ýž?Â…I?ÛäÈ@1œâ@)í³?ü l?Õ~?W¶?#]?o›?ÔÖ¼@X`@7û>?ð”¼?à…·?¦ù?œûÎ?’¾Å?E¼?€›O?–w?ÁŽò?úF¡@+„~@šH?º6?•„e?Rlô?ñ‰Ú@T'R@1\@Ñj?Ù°ë?œx?§Cb?· ?Ú;í?ûQÿ?Ûcæ?¿ì?xE&? áü?S3À?†Ä›?ôì@%…@ j~?â×Q?¡OŽ?påµ?£œp?Ä´à?¥„m?ú·?®§?¿¼}?¿¯?¿ ?åCf?ÿU%?è€?ÑA“?Ó£Z?Ðò«@?)ž@~ÝU@‘?¦ë ?ß 5@:N?Ù@ ?¾4l@$á@VB,@5Å(@Çk?ÔnÓ?}á ?©,§?κÃ?Ô´?Ôoz?ÉÍ?È®D?¦5?}2½?¸Š?Ÿd>?Ô˜?|Ü%?¥å6?Ó—¿?çåG@¢Í?úƒî?Óí?ÄΘ?©ç2?Çï0?ö‚¼?㨿?¼Ù_?øúƒ@;qO@*è[@ƈ?ã’?>Âu?yô6?ËO?Æ-»?©Ø?±ù“?ê¥Ð@Fl@e¹@]1^?ù«’?ñ«?Í¢‰?Ôáˆ?¶G6?¼~³?mž&?^Pú@0aã@<3Ž@Eá^@Jtº@d¬@n;)@sê^@w³®@DÈk@3Ól?í”Ò?à º@[@Lr?ð»Ð?ÜH?±Æ×?‘E%?“Wç?•dñ?¹µ‡?Ûüy?É{?³=K?¡ [?ŠE?”óO?¡ãa?´g…@Á{?õü©?e’=?Pé’?\æ6?f'7?z†?v£ê?ïzç?ñ¹¡?õM?õ„˜@ :È@ ²–@¢Ñ@<´?“S?Ô–?¨“?ê«t?ìAJ?ñêJ?Ñhý?£Ø|?øöœ@B5~@6AÊ@Y‘@š™?”ôA?ƒ¼e>—$>ß#?±¤?³Ã:@R—@²;?Åy{?°"ô?ïiM?û¶h?´y¦?–y?Ø™ž@ +œœ@ø‰@?â5P?0ìÑ?5U,?9Âê?YýH?Ÿ?ÅeÆ?†ãI?{{,?Ê|.?Ì ö?Çc³?»*?^!? {Â>N]å=L¹ˆ=žd=;˘?ÛÆ?©(?šÞ§?o/Ñ?”À@Yç@a"?‚fÕ?{[î?–ç>în >Ÿ¿>Ë÷?N?À‚?ß?Ι=?Å{p?»š?´Vq?¨·:?´*­?ì d?íY?qÝs?lÇÿ?¨$ê?±qÃ?±Ww?±C)?±/{?±Þ?˜;Ð?kïâ?ZüÝ?3.o?Lo¨?¤|ã?Ÿ©?–|? r›>˜RÔ=°5²?Àsƒ@ ³?ÃÛ0?j›X?Œª?²ßS?²‚„?§’à?¤uL?©d?³jv?V²Ñ?@fË>ÇÌM>‚¢½>jHm>vt ?:K@?®ÝG?®ÉÐ?®»t?§ñ?<£?,ý¥>Fx†=ÊíŒ?‰æƒ?¯·L?M¹?h-N?h%?gÿ4?XòO?39F?:ŒÂ?)B?>U©?Ç?ÉèÔ@˜>@£¢?îY~?­Z„?’âV?N?o³&?´ À?±Ž?ã³F?åÇ`>Èeù>6FÔ?Ò³·@PW?ص?ƒô;?cáÛ?Œ,?ÿ1?`ju?w?©8{?¬m?à+?é?Ðʵ?¿'ï?¥F?t,ò?hß9?e…g?e‚?*p?@yÁ?uá‘?‚Gc?…< ?ˆ-[?˜©®?«î|?³…?Íbƒ?ÐÛ_?Ïlí?ÉWÃ?hc?SÑ,?Ùsµ@ gÊ?’ãš=û€>–«‘?C-±?<ñ}?‚×e?’~5?v`w?¶"?tþ?]Æ•?Oyb?]>?}B¡?íQ?¤)Z?ÝÀQ?ãÈ‘@*bÍ@*½B?G0<>åq$?=‰?Fde?”Œ?ÀÔQ?Ñ…å?è‚Ò?Ú‡?·&]?¾M?hù?fø>’!a=È +(> û>æg@? ?ì_?Ö7ž? Ó?“5?q½?É×?Ïñ?Ä\û?zS+?g…R?:v?6(?k>èÆ?Y¬J?¬w?£H¹?ž‰?ŠÀÑ?tô? >8çP>W—N?,“?P?IÀP?Jì?û>:@î ?¯¤>í«ñ?›Çq@ 7?ê%4?Âé?¶þ²?ªù?–7B?0ÁK?&jÄ>í7>í€b>íÁò>î†>üÂý>ðÏ=Ü •=G}L>™Ñ•>´F/?î?íè>«"Œ>؇>¦>E>—Í_=é‘'>Z>îL >Žb›=¶"È>ëZ.?V–‚? ¯V>BÌP>nÜ>])>›vÿ>öïí>¦‘¦=‰7<«%ë:ºS=Û|=…ŸÚ>БU?1Ç>ç?ü©?p@U?"-±?å„?Xu?qU=`öº<Ö¼G=¸‡`=\ñ>ÃP@/MŽ@bÑl@¸e ?…æ”@KT?®u±:ˆ¹€>Zª>þ-?­Í?8jt?‡B>/`d?îð?}®$?d–?HŸ²??È`?$´>>Ìùa=¹?X«k?ôØ??Ž&â=A`=CGð>Â?[Í?eêû?|â€?)é>{ Á? sR?`õ*>õþ”=žr3=ÓÄ›>Y'h>üš[?1Gø?|–ËG¿>²Ñú>?'þ>qŸK>Jª?œæ?‹n?aâU?#i?Vs“?•¿a?^ñ‘>èäV>ž|º?)ò?å"v? §Ô>ÂlÙ>Æ(>*X>D×®>_…>ÒüÚ? +ke?FÈ>ËD>§¼?…×?jš®?…>Ï•ˆ=Ú¼x>¡¸î? ÔÇ?ƒeZ?S …>ý{ó>ß9>¨€>§Ká>nÂÂ>ãÔÄ?}½“?¤·‘?ù>æ@QE@™?Ü—¸&~>O<? Òe?¿?”PA?1 ?Mü>û£ð?Ÿ€ß@§Ç?áq.?eŒ×?«™H?ó³ø?ºÅ?ià„?û¶?ž°U?‚%Ø?6«??Ô)?U–Ö?J)?C Ð?Ž?¶ÅÑ?ž/Ÿ?ƒ‰?;Û£?,ð?©u6?øÅÊhó?§l?37@?¤2Ï?Îw?šÔ?€w?]¸•?\¼]>Ó]|>-ü?`³?AN[?k ?Á¨>!J}=SÊ>н&??©JS?»64?2ê?Â8>‹«4>Œ/ì?¹Ì?¼Èþ?š×?–øo?äO‹?Ø`Ò?Е?!¬8?- ?8[É?Á„€?¼ö¥?ç?6OP?½I?ØØn@!™@ ¾Q?¸û?°4C?¢e‡?]4|>¾N>Í5“?XW†??Mš?AO?Isn?š?–O?­?fê ?›b?§Ïï@AC?—óS?ëä?Ûnl@Ý;?µ?‚®?Zá>ñÊ0?\6Ê?p½’?(ü?!M?wZ?%£”?=É?›?¢ø?à¼?µÈ?_?‚¾?cå¢>'‹>÷Ïk?æ@Y?È÷*?[À;?ot°?‚ðÚ?W÷b?MÒ?7±?|¼E?N¤?*{´? ˆK>ð*,?0}¼?SÖÜ?š4©?µÙ?­Ü·?¦vø?‹ å?ˆÇ?Û¯6?í´Ž?£›?—S¬?fÚš?hYš>Å,3>¢ +>éï4>ÜŸ +=±ží>b=>??®G­?é5??¾z¥?n? ?Ãk„@°I?¶+T>­J*?0p6?ƒÂ??ƒÈ2?ƒÊ°?2»?ÓŠ?MÁ?aËï?\Ìß?b¯x?g¦A?l˜—>Ìî >‹@;?wC?z§?¯¶?·å??±E>xÆ>·é.?nÕ?£çv@«?æ‹3?¯hè?¸§Æ?Æ5??æÜ@“M?ÍbäÒØ>âh?r¯š?~ã!?×b?qÆ¢=L>’u?¸Ë0?«¸l?é¥?”Ò?•†?W­L>´wj>Ý~"?±5?2ck?A[ ?F„?JDZ?€L(?‘ù ?&ê?ƒ U?¨Ÿ?µ¦ë? >ׯ@?Ö0?!ã?ÁLm?¾zÄ?ƒ°?©@='p@pù?g(¥?qŒô?‘vn?Žx?„kž?- >·o?:Z?i ä?„j¢?šEC?¨n ??¼§?i ?fÀ?‡tŒ?•Ýà?”ãU?E?3þ4?a"? —?„`0?…3?†m–? @šO?Ýåd?Œ‚?š9?¬õ+?™ç"?„S0?o-?[Xà?âŠ@$Ó1?Ù;:?ˆûœ?[È©?SÒ>ß¡‡>žÜ?›‡M?°H—?  °?£,6?âYÛ?Ýu ?/B?šÑ? ?U¾ @ @Dê?†Yî?‰öý?‘_Ä?Ý¥–@0&@$™@5=?íut?—Út?Ép„?öjj@óÉ@ Ì?îoþ?æ¸?¾‰T?±ã{? „©>¦¤Ï?›Ã?±Ý?ébº?áKi?%·Œ?ž>ý>¥-Ž?·t?µ$%?„MM?…Z­?‡~“?^Œß>ÂÝ?/G?zy? Âs?% f?R%Ï?ƒR?œã„?ÀRê?»Ðg?¸Y?À¨¬?É/j@ q@wI?Ü»?ÀÞY?£3¶?–TS@'éñ@=ü?òlÉ?ÙÒM@cg$@s¼c?Ĉw?Âf*@iÇ?û N?¼µ?¨c³>ä °?9?5_?vA?ô)?W` ?Ûty?©ìo?]P?GHå?‚Ï¢?‚Ê?‚Ä•?J¨_?·?±8î@²‚?Çu˜?Nd5?z¨?ˆ?rfè?—š'?®G?½V¡@L‹@$+@"Ó:@ Q?´à~?”„)?\m?p.?µ]‰?Ê6Ý?â?èXÌ?ß‚K?Ó–O?¤«?¬·@"c¿@!.…@%ò@.i?LXè?_?°çö?¤°Q?OI?^ì ?³O ?µ[ù?·a½?¼ûY?ÉG3?¸Ét?‡«@A@¯AC@§‘-@¹W@l¦?ŠÊ?Rˆ>£AS>êðè?$¤z?|¯?Á®M?â,è@ZÑ@C@(¶@-®@Þ›?Òz?™!&?†œ?U‘L?Yžf?]®v?Ù‰x@$h?Û¬?Š1x?ªr°?Æ>4?¡"?Í/@@XìG?½?­=ÕÂŒ?€Uö?Õå@$²@Iä"@Ï?šY?‰`?ý®?2ö—>ÿÏÆ?·@{µ?Ås4?£(«@ó-@$0@:së@IƒÒ@VX0@_)£@a·0@fþG?ºÅ?¾o@&?©wc?5+?üÜL@@Öá@Å@B?Ø +Æ?±Ýˆ@½‘@%JÀ@Ú?Òú0@û @2¬?çéR?}8d?\Îþ?@Î ?{NM?˜h?¥VX?»IM?ƒ×±>ÓßÂ>ójÃ?,³?æ?#uI?ƒ¼6?ѽÞ?Æž?½ää?©pD?‰7/?ç‚î@Q†p@$}%?d÷l?n—´?ŒÛT?u„É>éš’?0KA?¼ {?È"G@¢b@ +èG@ %½@`Œ?Ûˆ?ƒ¼‘>ùöŸ>ýQŽ?ùâ?Éô/?2µ?y~£?¤¯6?¬b?‚ƒÔ?yº?¦M?Æ?ÙfÏ@.a@$2¤@,Ó1@;?@Ë—@&™‰@6 `?ÛGå?wèÍ?O$ˆ?/¾?£:H?õü§?øij?÷Kï?ª7˜>š¡B?hÃ3@E?î4?Y¥?›†@3¿ã@ ¤–=½7ü>Ë`?¸ŒÏ?¸'Â?ô®?õ¿@?õ¥¥?õ ?ÔT·?Ò#¾@S~@¾Å?´l?tå¬?Íî??ý¼Ð?éîb?Öa¿?™¸¤?.«? £ @Ò@Ãâ?”p[?–µf?Ì`?ɧ?‚Z¬?ÃÓR@…{?η +?‚Ô ?F+?o7)?f³?K—I?bâ%?[b/?dŸ?“A7?Ž‰w?1 ¯? ~K?}ª[?›b‘?Äs?ótÁ?õþy?í˜d?¾Î>ý Z? ô?n¨Î?w˜’?¬ÁQ?ªNŸ?5 ?&ÁÎ?pݾ?‡¥?Îß?û¹™?Í@E?–a\?‚2?,ÛÙ??z9?§Û?¯T?kq¢?k@?1 ‰?O~?’Àœ?°¾?pÇ…?íT?AÇß?¯¬\?®—¶?¡Ž?žõü?%t?ö<>•œ6>Tóy>ºï>Õ æ?=Û?™h÷?–°…?Ž'Õ?›²¨?Ý·l?à9!?±Å?®k¶@1‡@IFT?¿:h?›×?Øx? p?e‘³?Þ†â?Êž­?VµË?F—d?½3÷?Î5?hGo? ?Æ?Žö8?¾<?Ž_? +N?<̃?Ï2µ?×Iª?khf?k¿s?Çß(?ËUD?Pñ?XÜ?"? F?úŠ?ð >ù/Ô>â~—>˺I?¸æ?À0Ý@@&@óÓ@7ý?üîš?ã1>?º"A= [²=³ ?Í8¬?Ĉ?€z/?eY^?¡mP?·²?¡Ý¶?gG?’e—?•dC?¢ÝA@vò@íè?œ¹>ÇÜA?>÷?eõ?)×Ä>Ö}%?/Ì?¡ô¯?ßb>åE>åÖ?wñÇ?ql?‰¿?’‚l?zÖs?=§?»>å=Ñ?"ºd?¥íÏ?©XB?¬d?²ÕÖ>i>y=˜?§¤z?á ?û†1@ +ùÄ@=ó@W“?ìY-?eäu?g¯›?®Çé?¡ò?dœ?] +¯?ûO>æoB?y?!q£?N/8?‚%ë?‚*}?W=E?K,ö?çˆ{?îáQ?•W?…±¦>Ûë>)æV>”m>ÛP?×UÞ@F¡¬@Ba?£/?»î> à>?²W?3ú>ëî›>ÍT>®‘Ü?ò?>’@Ü]@Wäª@R?jRv?Ca€?2ÕÆ?J=e?T.{?“aA?ìYÉ?ÞÏÝ?‘Ü?‹ Ð?B^?1›ž?!Ì?Y/?`Ò¶?m®¹>Û9>¶øã>ïÜô?ÚÝ?,>}R¦?)Ü?‰‚§?Ùy=tåÆ<Çÿ ;8ê?(Hs?žqÖ?‡i]?t²?(ãø>‰Úf>°³ä>öU>ÓèÚ>¸Õ€>Þ8Þ>ø ‹>…%‚>Ö¦d?M‰Q>ü?3>©*®>7wR<÷êÙ<Ê>ä B>—õ>ßÔ@@$#s@J:>@¨¶ª@™@@´Z°@NÕ/:³L><…]`=r‚ô>èf3?_zí>êË„?¸t?ŸîR?}|£?2?†ª#?µ.\?r:u>ý<µ?3¹?vfæ?Aª>ðc,>tò>=Ù”€>ñt>ªí5>ÇÒ(>÷2m>ø#ò?P%Q?¥µ§?KÓ>>žu=ÒPÎ=™Š2?\‘D?÷’ò?Ä×=?uÝ?;>+íN=ý8>ŠÆ_?Ûl>ÕWç>|š?JSj?Ë>×?À|ÿ?¡à?·}.?æ§ä?µ!?CE?õ>Ó?™ûÅ>‰¢">ÒÝ>ü´X?Qä&?¤§M?wî? + +?+ýà?|Ô—?>Jg>§Öé?l1?_•¨?-à=âR<Þ±Ê>4 ?ü2?-£0?gÌ?6 ©>¸—>Ž–‡><ót>æÂS?væ?~µ?j} ?Bj>öÎq?Œ!?}²?…òý?Ž´Â?‡ ?€‹_?¬I¾@ûL?¿—>þ4?6 à?–»?w΄?,™B?MýL?~cH?gcJ?E|G?K°È?Qß?!sä>Úf?#F{?ªÝÛ?¶ÿ?¿5?aØ<2V>ú&?•ðO?¾Ež?äOW?¶?èÐ?„øé?eÛô?V­’?>Ü£?Dà ?Jà—?'þt>ÿå¶?jÌ? Q?5v(?n»±?š¹z?ºŒÁ?›æ?{?…:?Þç?CÀñ>¹pZ?¤$>­Ú>wM—>Þµ™?ÇC? ˆÕ?ñY?M’?çë?vû?‡º1?ª$?¨¶[>ì3‹>¹ìã?£?°†?ŽZ1?‡’T@ û?ÿ¢¡>×nÊ>á5Ä?–ÀF?‡ Â>}+Ó>­s‹?‹Ìì?‰?†Y?ƒdO?ƒÇ?Qá<> ×ë?ç´?¡4?¢ä­?@ÍÝ?1Ú·?.9ë?3¶æ?90]?‹•—?Ä"ª?ù@Nº?Ù?˜äa?xpô?A=ˆ?X¥—?o§¼?NÀ??*¨L?Lž?!?¢›?¹8Œ?éÉ ?ïãÛ?ß?Õ‡û?L$Ý?0™3?Ta?R”q?‰×N?V½>ø k>ùÓ­?Qù¶??»0>³rÅ>ꌧ?HmÓ?#Åí>!Ôß>årM?‡ß©?û¯?ÃÅO?Ý4Y?ûû^?¸i ?q¾6?Œu +?–Ä?Õp?õ×?¥>?ƒ=»?˜-e?¢\?+w%?Si?ƒ‰æ?“¾Ò?„‡-?ŠbÙ?)eA?*_ó?âÿù?ÓO>ÊIŒ@ ª,@.˜@ÆÒ?Ý×@?“QW?·²?íŸ8?°ù?Vb&?‰iŒ?—âf?>ïô>ÞÅ ?Nû®?ƒÍÄ?/=q?ÖŸ?µÏÞ?Üþg?aŒ½?(k°?Ê?îK?Üfq?îO|?§?sÊ?†&f?”T®?ýg5?ܱ?fc©?’5j?í‹Ì@Uì@ ?ãqí?`B\?C€„?'E7?Ï\\@0ç?ýO%?âÙ°?ØPe?Øò%@Ô;@Ó©?¤5ê?„BI>Œ*^>ðÿ?(÷?÷T?L¢?-\¦?ÿ[?ø²ª@ËÂ?á+@?„V‹?™Gi?Ɔö?¥tµ?^*0?Ö> ¼)?9p?‰&¤?„u>?Š­?P3?8™…?§]?È’¼?’T£?„jO>Ö8y>‘~?hb?„ßa?Ž£å?ƒX;?­? !W?,@?“èâ@ Ü?æ;B?äÓ?p?a?´Ð?‹K‹?/b?óX?n7?~¦¡?§ ?¤¼?¢pˆ?6_8?l«? †¿>úV?å²*?÷›? ·Q?¢6ö?o9?(?‰_ç?¤ïï@$Óï@gu@^.?¿ƒ>¼>µA?8Õ?_B#?„V«?F”¢?Rµ?kA?ž´? ï ?£)©?P$>v~Ë>ÊK/>ÒÌr?ÑI7?ò› ?&@”?:À@B@Ô‹?Då?Aí¦?ŠˆË?f=9 >€?Üç>Ñq¡=ؤ>~ +Ê?½?ž+l@Õ?¯]v?+ôÂ?yÏØ?œZš?·Ë ?щF?Š† ?EÉg?o|?vb?Wå‘?A`A?·\3?¿PÁ@J-B@YOf?‡¡P?‰Ñù?þ¨Ú?ä‘ã>‚19?Ä2Ö?Ò@?ÿú?æ€ ?¬Ì`?—$R?n/?±ó™@Ñ?°´?-Ø?EZæ?T4Ì?¨Øö?Ñäd?jR?tR?nöe?˜üO?’‰?‡7`@Ž„@€@.mq@2ÂZ@߬@ât?¥\Ö?•yš>ø >ÿ>ÿ?†Y??x<@}Ý@"!?ì<ì?Ðó„?lRR?¤2Á@Á#@Ö¾@/Þ?ô–Á>Ÿ¶ ?h”?íì?®åI?Fšù?Dp?9<½?^z?‚¯ ?ðw?žEü?wž¨?=Ñ?Àh?úŸ@?¿eL?›nÌ@ §@B™¨@*£7@"õa?©Œ¶?‚PW?‚GÕ?‚CT@.C@&>Õ?úÎ&?ñ˜×@ OË@ †W?YŒ?S@‰N@—.?¡±ü?¤1ê?Ê×F?¿ ^?½kC?Ò¸\@vy@¥ ?Í,b?½­š?¢y?´.¬@”@‹@2ÿ?ðAç?Í-@/•n@¡À¯@cð•?“Š?,ßI?K‡ð?Oq ?^¥ð?3d?Á²?çÛ@2?îvÃ?¹iÿ?£µ[?…#â?^¡?ï?~)L?­¦“?£I{?˜îF@F)@X‘^@ú?Àà£?Ü’a?ö]¿?Ùd|?Àª•@*08@`¤?ÿ:•?e)D@!\Z@e@g@ˆ Ã@2Üä?ìów?Ãx¢?¨´ê?®™Y?­¡Â?ñ-‘@˜Å?©P?F÷;@'ÿ@kˆ@Núw@AQÆ@DVI@G\n@vè?þéê?M.=s—+?Æv–@<@ ¦?üÝ@$nF@>±?ÌSU?3)?2z?2&L?6ã‘?Jþc?œ6Ô?¾2³@ +WÞ@1@Ä‹?´¼?ŒÆg?:Mª?©(5?ñ%?º| ?¹È?™ñ‘?½n0?š4à?aåk?ŽÍ?´ß@—W@MÆ@2ç?ûT?¢ÙÍ=HQ>æ;¢?¢1ùͼ>ù¹Ö?¤Ç?žÜ‰?)¦è?A.?x†?~ûL?¨Q>øñÐ?ÕK.?øÂ]?°´Š?¡ãô?™›û?—oO?øA•@Ý$?Ý?£ÜØ?”Ü?…$p?xª?v ?š¥„?ÁIý?²ô?ˆW©?¸å@Žƒ@¢(?3Ø”?„sò@ù˜@h-?€¦¨?éÀ?µ×?¸¦•?õ¿ ?õÊâ@#C@äþ?œß?ˆ3£?¯Ž6?Áûü?®y»?¡³?åft@¡í@«>@ ±€?ØP ?“ü©?Œ”?z™?¡6@ÞÁ?ßEž>ÁLK? æ³?¾ºÖ?ÄÊ@-@2™&?÷VC?õR@,°Ä@2G?) ã=µZÞ?¡G{?âq?ªÂU?•?¡Q†?§-?‚©?/^¶?p®ó?¼? àn>0ƒö>‘s¦?ßiH?á”?© a?©ÏÑ?~!ô?pX…?¶ÿ>õöM?ÕpØ@%´?δ ?Bš?‡ÏM?ow? ?ùî0?ÖRÅ?úÎ? øÕ?Ãßh?ºkp?—µs?–ä?°.?²±™?ÛCB?îÅ?«Ûd?\è;?—`{?ݧ?Âc?md†?€‡?±*?°?çP?äÎB?rgH?Rðw?“Lo?Ÿ¢s?ñu|@ M?àBX?‘_ð?“Y(?y?~¤Ó>똲>û+”?¨1‹? ¶8?–³?Ãj?¯a?«½Ã?Ž¢ë?kˆ?8™¿>êu˜?‘%´S@,± @(Qo>ð0>|± ?Îõ?0?_ä?†˜^?“§Q?´ÐÀ?ž'i>òÍ…?ÁO?ßK¥?åïh?;f?L'»?h)®?s×Æ?C$?®¹k?«„N?¡úÜ?™©Å?µ_¿?¸JÌ?Äø?Á¡?¨+a?¢Î?ô?äù?Šáü?‡Ø§?’â@%C@µ=>üè>?« ?4V¨?fY]?Ž5Ñ?¡Î?‘ z?{’×?‰¹Ï?°›ã?§'?Šd ??Žø?Š…+?¾ˆ±?éì¿?#A>¸þ¯?Ïù?eNø?u¾?ä¬h?ᤤ?÷ÞX?êø¡@D@}k?ï+?ÑÊ?ÕÒŸ?ÊØt?¼Mñ?eê.?nâ@ã¬@μ?;´Ý>æGã?±jC?ßf?žŸu?SÞD?¯¥>ƒ¤Š>ñ—C?‹¿?«?­mB?­ŠW?­œ^?­´ª›&<;U?*’?¿ +Š?› s>èµô?19N?Âæ•?¦§Ä>×Ã>ös?d˜Â?iç ?6¯?9Ù#?T˜@?b,V?$½Y>ñá£?_t?DÑ?FÝü>C>ó}?ª+Y?§Çb??Œ ¶?²?²ð?ª‰?®0?ˆM>÷ru>Û‡>Äg?8˜š?I]?@¨*?8i>»ì½>9²?rü?µx?] á>ò¨>ó|e>íTd?üd9>œ^Å>táO=ÏÙÐ>Œ%Ã>øHÝ>u…N=¤t>]ì=þ—>r¡g>•!T=ˆG«>ÃqV>ýãR>íd[>Ø”Ö>~äç>¦hõ;RÖŒ?®Óq@ų@³ @˜lš?º¿ò@A°Ð?æLR>úiÍ>ëœ~>ÜEu>ÿbf?Ûç>¦Êé>¥ƒy?:\Â?-¥@?_?žßx?÷)?¡„—>ý)`>ý­>ý³?yøy?µÌ?gïy>ÏÏ?>Fm>g j?Þˆ?+`¥?NšÞ?+‰ð>ü©Ï? aä?ðe?;!?yá?}db?|“Ž?§æ¤?Îy?€Dâ>²Žà>ôÙÔ?1-‡?";>ö9‰?,WE?|à?«Ï%?ë‹ +?¿!S?|™¡?']|=Ú}i>לB?ƒŠk?¬ñÉ?×D±?§Y¢?\”ë?µí/@—(?Óî‹?9E¢?n,^?™‘2?]¬k>¤B½?'¼?’ö³?`Ò¾?é>Ķä<·.*?5+h?îb3?˜'g>6¬’>¥ '>ýO´? <§?R? +>ý{—?0Ön?‰²ð? vË?¾š¤?&Ÿ‡?¨¹„?ƒ;?!vF?8€?O†ä?‹”É?Ã:¾?‹ýà>þ‰k?`À(?¬4y?Š‚W?_•l?:–>þà ?g¢?»×?¾‘~?¹8>?Ï*?ï +7?¬G!?Tn8?`YÞ?W&ô?pŒ?±M?j2“>ÿ¯ö>ÅÃ!>˜se? ¨?O¤]?¿ˆ‹@ _?œ „>ß¿R?{?ž5?Òã >ðS%?©v?cãw?€¹I?öM>ÜÈ¢?Sù¡?s®n?~®â?~•¤>9¨?=é§K?¿8?4á?žA1?œxÍ?/&Õ?1' ?!ò ?8eR?¡ìŽ?¤p?›ÁÌ?˜8ã?˜]¬?•"©?EÐ?báÄ?¤å|?­6Ê?µˆ?®ÍR?«Z?\¯>ê{B?ˆ­G@J?Ù¢*?$45>êœw>54c>«VV?óÆ? D¤?E?›Ã?Ïýž?§Ú?~J™?…¶î?•PÄ?p¯ö?>ô?ñ°G@ö1@mC@‚? m?ˆ ? ³?ΩF?Ñ[_?Ô>¼k >¬Üá?2âY?>‚&? &;?£?¡R7?«Y?ÅŸ>âÎç>!-J>/hë>nó8>ç÷?‚ë?šÈ:?Äss?©“&?ƒ’é?¤ûi?Ê +I?é?º„?¿tÈ?Ä¿ª? §?•9\?¨»8?ª×¢?¨O?¥ÇÝ?Zòö?>ê? Îü?aè?,J8?ýk?¤i?›Ê?ʇ£>8ŽÐ?±Á?Gp?ÈŽ?Ç2y?½O ?†g¼>ÒÏ?ð¸V??Å +?ƒ€??ö?.^:?F¼>ߺ‹>˜]?¾X6?ðÝR?—›·?ƒë•?IÂ{?8&?§‹?; ?•$?˜¬P@™7?Þ =ôä|>ÁåP?„ ?Šç?Ÿ?ê?ßµb@%'Þ@ Yú?ÂhÞ?šL“?c¯å@œz@FG{?þ[Q?³{ç?” Ð?„; +@™Ò@õ›?žh?„Dç?™_r?–“?ÿã,?ù±Ä?PG?WL?‰j ?Ž-Ó?’ï«?¡Ï?º|ÿ?«àK?•#ø?y) ?/]Å?mX?’'•?_?9…‘?p2²?‰pÜ?g¦×?Ud?Ÿo?mv?SLº?g¿È?¾î?Ƨ?}©?ÅT?ÿ y?õ”¿?†–b?‚™í?€G„?…T¥?žÓ}?„i‹?sX?M#?Lƒ›?mC?„sO?b?AD?YµS?>¼(?x?n?ŠñÞ?S³v?7_?³y&?Ʀ8@Â@&G>N‚›=õ3ÿ?v½?„9?ÁÅâ?ħ?ÆWì®> h>Á?b:Ô?vC> ›ž? š5@\Ì?„Áž?q?/¨š?F] ?—Æž?©€³?Ìz ?×¹ô@ L€@)?Œbø?…ï?ÅÇ^?»˜,?źø?¬öî=LÏ<»˜ÒLî?.”Y?¸²à?rnl>ˆž?y¥Q?Ô2˜?ÍÚ5?ǃž?›’Û?sK?¹¿ã?àïQ?Ì–?ÃÍz@&p@@C¹ö@*! @"?à® +?ÇÖ?vÇ?‚Tj@RÇÈ@eá?¡Ôñ?ŠY7?¢½¬?§ÈÖ?,Û?9^³?úEº?ñ"O?¼i?ÀáŠ?Âñ^?ÇH‡?üaÖ?ì÷ø?Ù?rXí@S¹@TE$@E{@?r@¨ž@“Î?ï.C?ê0?ÉÛO?ÃÙl?Â3#?ó=3@/×@.?®|Ø?‡˜Ï?$?mû‘?¯Ìn?ÈÀ!?ì&n?Ñ…?µ–º?’LÈ?EDÌ?~˜?šl¹?ýfh@.-s@/CU@6]À@'õ[@ú\?ò \?¨ù5?´k?Àå?œ Œ?€…9?¤\?¿¢??é(@Áµ?¸|Ê?€P6@¯ú@1å@8:>@>»Ù@¸Þ@8@ f@Î @¢Ñ@Ô@üÍ@ ž?­[³?7õû@=<@…°s@0úÝ?ÿA³@;@b?òØÞ?çØS?•3ò?:©Ü?ð"@"h5@ Å–?þp!@LV@y„N@8{Ñ@ ?²äÍ?cëh?ŸòÚ?¹9­?Ÿ”¾?”}?º:?×}@“@ŠN?¶YÇ?AÑ ?¸(±@š–@í£@YÙ@(d?ßÁk?®?˜?f\?Urˆ?Xø?V9à?5åc?vB?¼]æ?Òa?î¡?Â`ê?{„K?›rŽ?ß±Æ@+¸@<ÂT@ M?€ +~?a+¹?Üõ?>?»ót?¼e@?¶Áy?½0›@cÓ@ö{@„R@“?Bré?:Ï5@8#@ fB?¾ã†?»ô?ºöŒ?ºÜ‚@ÿš@(? ³}?‡u{?~å +?x‘‰?/XŸ?,Œ?¢„6?ÌZÁ?Û†?მ?Éþ(?¹Ó²?Ω¯?ؘê?¨¢%?w]?ß%U@9_T@ ^?ÝHz?Ý>ë?â;Å?ü¶1@8êR@+4è?½×k?«ÅS„<ù>Ó¼?Yȵ?_³'?ä%ç?Üú?|t>ûÏ?to£?~¸Þ@ @e¾@ô ?óÇÕ?ðŸ?òEi?œ¥ÿ?Hku?«ú:?ñѼ?›Fo>tî¾>äýï?qb;?u¡Ê?y‡?|¹ª?Å¢7?Ã1"?„ú8?‚^??†ÛS?ƒn?ƒ x?w*q?tÛ?lM?Ar%?e? ÷4?…]?’(@Ž:@ ¢Ç?þ÷?ÇG2@H@6t?z‡T?`‚?’ãZ?$š?»üb?Ìs±?Úçt?íw?½°M?m¦g?mŠ ?mkÙ?m^Ï?p^ý?‡ÎR@EÐ@B?DS&?Œ>ÙŒæ>Ý/ã?bhÛ?˜,)?wZ³?.LÇ?[õ!?–îm?”ZÔ?sÒÿ?o?·?æ\?ïä+?ï¦=?úúÔ?“ó_?c¸?»"S?éRû?±N8?_D%?™Ûõ@Ì@?¯è?¯~á?æ9?Ʀ*?ÞTì?è¤?›j?X!V?œøé?Õr?Ø8?Ú•“?Ój2?¥e?§Üù? ^S>ùu¯?š,æ?«dÊ?W4)?%C?ˆMé?»‹?Û +ê@)v@ ÑX?•ªÃ?’ïz?Çwá?ÀÑ_?¹˜?¾ÜL?ÇY6?½„?ÓHå@oâ?×b>ö"?¢Ø@Ÿ@èc?¨~á?‘ù ?šÁz?žG&?Jvæ>ò. ?aÓT?Æ~²?ºÿÁ?PF÷?9dÛ?ºnD?Ã%?r%ó?8ï?Šw?¬RE?Ø.±@ŽÆ@é°?¬/Ó?¬(H?¬Õ?¬¡?ºDô?¿ec@ÓL@ V—?Ùü¯?«ôŠ?«ôì?«ì?ª¾?ž `?¡Z?à\?å(©?ä>?ä/í?Ã:J?«×Y?–Ê?eK?ùt?¾À$?Áäh?“ +h?z?¦Æ?«ãì?w€?E Ò?NS>f³>Ç×à?wàd?{ñÿ?åa}?ånÏ?ÀéQ?Ãí ?Œÿþ?ƒ­1?á1Î@ Â$?׋,?’úy?Ž˜É?eí ?dƒÏ?N¢V?U–¹>î—›>ààQ>ï*k? Sµ?E#?f¥Ï?N•‰?<(?%=è?gÞ?kÙ|?”0ë?—ç\?ŠÒi?öœ>ƒZ/>ŒÂ`>æåº?e¾)?®YÍ?•âj?M¥â?Tß&?Žëè?’ÄÜ>l–>MfÂ?8½~?F=ÿñl>ºóF>óÓM?ð¾?¨ÿ ?j!?‡&?A®z>œ¥}?6|!?Óu9?ªÕ >í9?b¥?£ç?¥ä?a±?jpÚ>øȳ>îí;>ï6É>ï…+>ž2g>­Îð>Ñ2>ôT?C¿¢?L?—þd?µ•÷?M+Y>çZ?@1?kÔQ?3‘»?d@? + ð>õ¶?;O/?uëv>ìYt>E”ç>Î>ë«e>ø„P>`Ç>E4e>Šù=²ò¡?^þ?]Ïò>bù£>Ñ.¿>ÿ«=?dðû?fÞ">½À{>–&?±Op@šœÅ@iÚ*@ qq?Ѥ-@Q â@‹Ô?»;¦?•,?kR?Œi!?œš>?f>þ?I?2iâ?<ôÀ>×|Ì>@¾>ƒ“]>ºú >þU(?Ó°>þ£™>õå¹?–‰?‹v>¨ù=Á’=fø„>Až>kqÚ>´n«>üª>ü¢?>ü¢?=m–?|™E?:C>øTB?ØÚ?Þ>ÜÖ¢>Ä·š>ø>ü_?ná"?­ìê?’ëj?|g?d©v?NKq?‡)‰?­'ë?™ÔN?|œ2?¯ ë?ô¡0?±=V¢ˆ>¯QÙ?:ôs? ƒ>†ƒ«?Òõ?kô?m±?@’?AÉ?\ØÒ?bw?UPû?Æ¿õ@/ +Ø@OÈ?°o5?µþ„?¼??»â‡?ÃŒý?Õ–>ÌÃt>Ø¿×>ýYã>àˆ×>ÈBw>µuÏ>{›Í>¶E¢>ýšþ??3?—áJ?‘˜j?}É­?¾”S@×½@•É@dî?¾L5=¯™ >‹F>Ìÿ6>þEÓ?›?/P®?,;?ÝÔ?©d3?5±Á?¬¾@߉?Ã>Ão>ÏD>Û‚û?(•?sò§?œP ?¿[ ?§gó?‘É?'¤'=ì >>ű?)Hb?`4”?6_?w·o?>9|?/‘"?vj?ˆ&?¿üÛ?’ÑS?eH:?•\>pÐ +?%Õ¦?} ?1?<Ï?–TP?Éîä?`[?^§>„­Ô>) +¡?‚êð?¶^>?Dá@?d?5âº?M‰?…ï?®È?KÛ?dÁ¼>žmÕ> + ^=º5^=>šÄØ2>å±I? …?7»>”9ê>Èö?§S?,Ë?Ûñ ?à >±W>ÊÇÔ>íYÚ>®üÏ>þ=¼:?<óhL?T&@@ Ë@6S=VÚÔ>©÷|?cS?žKˆ?η?…>§YM?ŽfG?÷_?¶YN?~ Å?^^?Péq?5!?³H9?3™D>n0–?²Þ?úû·?žaé?|C?$Å?/'?p• ?‚nƒ?1¸?/ô>¸HD>Èž>»h>¶¸1?’¶2?’_?É”i?À,É?¥â—?– ‚?Èy>ñ¤9>¶œ•?3³‚?½ì?£ˆ?‚î.?•*?·÷ ?À*Á?ÃË_?Nnœ> ~Ý?/Üq?Žý?°9?ÄÂr?Z¦‰?8â? ¯­?ÄæÄ?‹–?€­ê?¸ð²?½w}?­$Z?¡œÖ?ØŠX?àŒ.?ÕǨ?×IW?ŽÓ:?”…Å?ÅPr?·é?ƒ”^?C +‘=¦Î?fuî@÷?û!¸?|?þÅ?ƒ»Õ?ŽÊÊ?›<è?Žx\?ƒÌ?†6þ?‚è>æ >\m?JH?üÄ?gx?dw}?°½[?¹( ?[Ý?Tù@&„@|œ?ÇZW?¤'<á.x>}:>â¢ç?„?—0t?¼6(?‘ÆS?è>ŒWµ?ii?g‡?5²5?m‡?n‰?p‚?q‰?qþ?¼…²?Æ¥T?½J?¼(Ö?‰5q?³@f±~@Hi‹?ÂXé?¯ž6?„vì?€[ÿ?mÃP?ž˜N?Ò_©?© ‹?„wÜ?’°ß?ŸÔ?Sú? ½?0F»??ßb?M+?V  ?’.ä?€¢?l— +?hί?<ÚÑ?3´æ?;ɲ?8>•?t?‚šÐ?„ð ?†Z§?ˆšþ?ˆ…â?„dÙ?Ü0K@,&@#<û@œY?É+s?]§?ÃBü?û×Ä@ @ +*+@ÿ[@˼?›¹µ?„Jc?„Há?„Hm?c¸7?gÔÓ?¢5Ç? Ûî?ÆW›?Ä?ºû?£™?Ìz?op„@B½?¼5d?%r>ø©3>Ú–?&±?h•¥?ñ‘>·db?ÖSj@%è?µøÊ?N+?IÅ?Ee?¬V?¼ ?Œ3?ƒð|?¿Á ?ÅÝs?ÚÙÖ?ÓõM@?‚2@=(Ë?ÅÀ8?²&R?Ìl?<_#?Æ ¹?Ô @Í)?é æ?¥}€?ìÓ8@%œ?Ñ@ß?¡æ?~ò?ã ?¯Ø?2Ó?¥Sû?§]~?÷>ˆ¿i@ ‘„@9û@Já?ïÓ@/-0@;°?’Ðb?iÂ`?Ö„¤?ÙJØ>]˜>=^?ÄÓ¯?Ê5@‘(@¢@!Å?Û´ >Qù?6Q(?ùŸ?Ñh„?j²…?nªØ?Záö?cÎ +?neË?:«??Ú"?_à#?œg'?ý å@0ùJ@)Û@#a²@ì+@¦‡@ „@Ò8?ö,?ØHæ@yT@4§Í@ ýÅ@…å?œØt?„¡Q?‚õK?‚VÕ?{v>?‹F+?Ø”?Ø.A?†v?‚*Ã?°J?¦´g?¥®#?§ÕI>ê{´?&c˜@Âf@ì?“?…&´¦@`r@:#@oäx@!È@ Î#?ÂR?¸B.?¥â¬?Ãi,?ðIè?ÐŒ?­¶b?­•Ä?§;Õ?“ý³?=?Á¿@õ>@)Qm@Tâ@)0@°H?Çá?’*?ã-@“?óèT?ʨ?ªü?–æ?‡Ñ±?‚AB?õŸ"@óQ?|ˈ=æW|?®N(@çn@î@ 8q@VMO@oXA@xJ³@|“y@xf?Ó>D?í“?ÿ^I?­{†?’[@ Ý(@X&@ÿ«?ØŸ@6@.ð ?ÊÇ?~÷µ?öæÖ@£@Fe@]BS@ [&?þvÝ@YÑ@ É@M;à@pyM@!Ï7?ãÏ?·¢…?¡¤÷?Üû~?ü“s?ìô²?ãÜE?Ä­.?¶N³?¼äÛ?´ïm?¶gÑ?½¸¡@–@=‘H@*'÷@oî@k«@e½?¨s=‰ì?¾b÷@U÷Ø@ÛQ?|Óú?Q+?ëÌ?@z?{Š?:Ì?‰¯ä?…Ìü?\?®SX@‡?ýs`?ÉÂâ?Ë$>?Ýð5?ì(h@„Ã@dÖ?zï‹è?@‡n?¬Ÿ6#•?•¤?„Ï?y Å?mx1?UcÄ>ögŽ?o ?K¬Ý?h…û>Ó|=å`K?PŒØ?o¬Ü?L¤x?<81>éîè>g5 >Ô‡ ?9€u?s2î?×n¤?ÑÓ?QNÑ?BW©=þè=y6>¬lÙ>ßÌD?ƒ¯[?±w6?ÉEU?ݤ6?¿SÈ?Œ$8?ŽØi?…šð?ˆc?¯uõ?¯`0?Ê ?Ì_ù@åA@ua?â£T?œ*^?¯y…?Éø~?·ŸV?yœ‡?xÙ?ÜM+?æ2¼?çE8?ä”@?’V·?Uû6?»rv@9?Ügò?›‡µ?¡??¨˜?ΉÌ?×\?«,;?š-l@¢ë@.Èü?û]¢?wŸ3?rÙ?lu.?[êY?5‘?_Z?¦n?¬òs?¬æa?¬Ý*?Dw%>‘/ç?+\?¬®]?§é/?›fZ?¤¾k?¬¬¯?£Ý`?ãxs?ð\@?¿ùÓ?§¢z?BŒÄžÃ‘?^è?’L?†z ? #È?Á ?4‹M?&[Þ>­Fx>(~j<îÇ;ª‘À>’ƒA?¨?;àég>éª(>šªA>©æ>¾·£>ƒN5?4íþ?iƒë?š¤_?°pÞ?ÄŽ ?Ð(»?¯Jý?…G‚?‹4Ü?³ÌØ?£øt>í!5?Òl?·‡?ƒÚ‘?9>ñíÒ>îÊ~>ï 4>ïV>ï£ó>­u>?õ>âjú>ÚÀÂ?‘Ïõ?µ2½?¢¦†?¢–W>÷Æe;Ö¢Æ?Ôœ?s¼??fYË?US‘?LZ?CBœ?\?ä?vÄ>ÙÿT>’šj>øÜ¥>LŠ>öÃ>kï=¦­)>òJŠ?ë=âTP>ÞâÕ?p?¯ûý?ªÑ‹>+T><³º?Fä?–N%@`RØ@¢ˆ?hx?ƒnž?£t6?¾O?szQ?Ò]>äéÜ>Ó!³?FÐO?}]U?P…?C΀?Q> _y>kûo=ü?w‡?[•*>ãáF<Ñ&C†2ß>ÉfÈ?CÚ¯?=3>Ø5? +ß?pò˜?HÌ?)M®?"%õ? Ÿ?@ýÑ?n†>õ}<)>…tf>üŒ??_¥?–>Ù?Þ)> 0â?M?O?X§â?|¢? 0¢>ü“o?lS?>j ?aº ?|Ÿ±?F{?5&>û&×>ìSQ>í¼O>ü»[?qn?6˜/?);B?âÕ?!Ò?<6ù?¨0>M›_> ª>üø¿>‘aþ>rJ»? +…§>¤$чõ?j?ñ>ýNÌ>°iY>QM=Шp=ÞÖX>yþO>Ø;ö?0“z?*;ó?#ê#?QÎd?‹ê?ù?r$„?¯dÍ?ý¢?à1@?¬†®?ŒŒb?M#š?vÎ"?™»)?_¬»>þkò?nu?¾äÍ?¢Ï:?~Ÿ¡?”+?¨<¶?@¥‚=å"(>)ª…>Eu1=ÖØz= µ–>€ 0? Ä ?J7†?Mç?e\?Aòr>ØF]>+ „?-Z—?ˆúQ?ª4?Æ„?£¢q?¿î?§u;?š‹ã?``?½É?§x»?ënÊ?‡Z¨?œL?]ü?·øÓ?bJ^?(ˆ¬?°@?Ñ!À?7|Â>ªô?PFF?€„?!v?”l?–ÕŸ?¥e?™ö~?Ž‡Z?O±ã?8×?Oä'ø=àÐ;(YP<Žõ?Uxu?K©L??0? >÷æ? »R?¶qŸ?¥ô> +>ß<?æEÌ?ÔÜ?ñ?_ +å>õêx?s%?¬}?hâd?­ e?X5€=ʉì?‡òg@D/?×Ô?T³#?©=¥?öƒ?ßíÞ?g—?¬†?«Ú +?ºL?Gæ4? ݈?Üü€@¨#@2]{@6»?Ãäñ?¬1>ä²€>ÀÈp? Ú?Q?f¬`?vL˜?œ2=?•áH?1?H;?Ë]>Ä|b?;½è@ äò@²ï?‚ñÓ?d»<óŸµ>} i?#Ô>‰of>¬x?Íž?qß®?“«?›·?™ ¾?8Jp? nÞ?€f1?…FŸ?ôBß@]?Ê%T?Ò?=?¯‡›?¤öƒ?#˜i?6å'?ÅDí?Ä%?¿ZÛ?³ ,?‚ ?;u >Õ„Í?žY?›ÑQ?‘~`?£„_?²ÕÇ?€x’?3O?gøw?ƒÏ1?õBH@6*?Ôm?¯ ?`þ©?2Ë?nÉÇ?l‡?hÀ»?o ¸@m¡@Œ(?Zl?L„@$Ó@‘/?v½0?¥-i@§@ ý@S?ñ]?³I£?‡§ÿ?)0Ë?X„W?„2s?8+ß?7b?‡#ø?ª€H?¿ÒA?ÆaÔ?¡Sh?–ŒH>öe\>Ò¦?¿æ?ÄLŸ?6òÐ?JÚ<É;>¬Öð?ÿÅl?ÎY¯?_s?,Á«?„aZ?mù¾?I Ë?j*?„gÃ?*û°>žb>Ù*?m2?_e?^?[„M?7„œ?}íl=Ø >&ã‹?{M?Œ­?òõ?®[??Å7w@ 2½@?Æl#?³²U?¯ñ,?²^ì@1j@3[?QÝÓ?Zu¨?ÅÇ?³”Q?&hñ?”¸€@EšÁ@Ý)?Œ5f?nïá?Í?Še¥?ì–?æy3?ÓÛñ@'\ˆ@]a@1û@è@ +Š«@i¥?ÆxJ?Zh@P@Bóâ@§y?Ü{@¦P@$7×?VøÌ? ÿ@yŸ@Ð\?µ78?¸æ¤?¹²,?²ß)?‡Ñ?K„G@%×?Ñh>ж?Ñ»ß?Ô´÷?ÑáÞ?“¨?®Ø’?…Z÷?Ûs?Œ¨??ÏT?Õ'±?éwã@´–@)0%@&¬£@#f°@—P@ ïÒ@Â?îðã@™@";?Žè?I:?±hñ?Èô?Ž ï?‚gï@)@6~?@+?KÔ>ÏÞ]>íÅâ?€ˆ ?æR?€Fž?‰cµ?¸fh?³"?²ú?Â6¦@R­b@H°`@Œz@hà?Þ¬?˜?ø؃?ýš3?ôº.?ïŠ?׳ @ T5@_Ö@8°P?ÂTV?­0Ð?° ?«¿»?Íì{?Ÿ¼²?)p?ƒÒæ?Áõ”?´1Ã?¥Ì?Ó>|?ÿ°Ó?Ì:?›¢G?Ä‹F?æ ?E!@?’Ì8?®û@Û|@1a¤@nÎ`@…ý @)JÃ?ì¢?Š<|??ù%?D )?H?¢æ¼?¿•ô?”ë?M“@,Ç@_>A?ø1?•ÕÑ?É¢ê?é¹´@'>ë@>ý!?ÕH?Ze@9Eõ@sóÆ?Ð3?T?ãH@ ?¡ß~?"_?ã˜@‰÷?æé}?²p-?_²¤>ýQ¼?‰q?Ç°8?ÔZe?ÖÁ†@‘·@? @ ]?ëø÷@Oü@úM?­K+>ÚþÌ?”Ä @!°?â¼?½ ä?º +Ó?´îH?ˆ#å? ÿŒ?€}ƒ?âÒV@ +{@A¦@¨d?»iO?»™R?¯?Ó“ì@@@Ó@Šæ@0?ÈÑç?È-Q?ù™l?úÓA?Ç”~?ÊÏÇ?y´e?yl|?XL?`ªä@vs@ÏŸ?pÂ?uð@%Æ=@4jÎ?ø/O?ÙJ?‘êî?‡‘Î?ºgÜ?͈?‹8?XÄà? ’?¹á{?ÊLË?Ùjš@-@1¤J@ ú†?¹jÕ?Ћ?÷Æ?¶Žù>›dp?H¢r@Òì@Ù(@Ú@ ½Ñ>ö°6?T©@ÅŽ@ˆ>‘ðE>§Íó@…s@Ï)?=·i>æ.é>xö¯>?§dT?ÞH+@1?U@*k"@+ì@ ¿þ?½2·?ºa¼@@ãH?/£1?"?ú%¯@ +±@$À-@-–@?ýÂ?½ÑM?žKì?‘ŽÇ?w$“?¬ß¡?ûçË@^@ *Ë@ ?Ž?×F®?ÉpÔ?ÚfÓ?Þæg@#|~@+ÇÙ?`“’>ó·Ê?‘83?¯¨W?Õò?ïÎ?™¬Š>ï–l?#?o^Ê?‹2¼?ÊNî?Õª@…u@ã?·òE?¼•Ý?Õ +í?Ú €@ €Š@d£?ÁÕõ?mî†?¥ÁC?Ûø?»Q=?mÌ?ªöŒ@*zò@ù5?¢,?CÑ?¸â³?°€õ?ѶŠ?Øž?ß °?ÝP?G$ô>†T:?&Ê?|3®?þ¢"?ñÝ8?ÜûÛ?ßdµ?*?”Ø>@²=>{2;ã¬e=V’À?uêK?êŽÈ?óã ?ÿøÛ?è0?ž9a?ž`¤?÷‚ˆ?òE?ê(ƒ?é¬ê@7ÌH@X}[@ +?†Œ6?ª“?ð¬K?òJV?Ì|µ?¹»L=ŒÁ<Ÿ=?›Ç?³'@ +ìñ@ ½?Ýùl?¢M‚?•û ?gõÐ?M“O>Ðé>æhV>ûõ–?Êg?™ƒ¿?°´?ºì1?º1[?®, ?¦Z?¨Ì*?«€œ?¥„È?aEÒ?[£>lzÂ>…Ä?s&?¬à?Só‡>æ^œ?g̼?Ê5W?£®Z>†þ´>«•@¿ì@*Ÿ@ ’î@ +üõ?«Á +?eÌó?ùNî@Dè2@!:ª?Á=¢?¹£´>› ý>¾@?n?–9?à¡Y@™P?ö?Ý?ï´Ô?µ?-÷3?K›ç@ûê@ +Ì?x¦À?iF”?eÇ6?jØ&?“ü?¢ÌU?×ù@èç@ U™?–9þ?˜Éé@;=@?I? ?A[#?§–?Æb?M–=W'>O?fX“?mŠ?ej“?ev?“Þª?Ÿ‚ª?«"J?¬8ô?‰£.?e»Ò?PGZ?9R?@8O?GI?PÛ?f!9?f,¡>øR·>ãúÌ>×CÕ>ÉN|?Q?,ì +?,~‚?Êe??D€?­Zò?žAë>®žA>‘ã? q?˜ œ?É€T?Ý€)??é?dC®?ËŠm?£œ?hÛœ?NK?uú?, ?(C}?‚ >c=áÚV?¶[»?ײ?A +>ìSÐ>kÝ >8à ?m^Ý?Àž²?™YÁ?Vp?SXb?,7?àæ>í:Ô?)»?Ù×?Ü¢ß?®òl?±Ì?eéj?]• >ú–ñ>ïÆ\>U>>R5Õ?ê›?>ê»?‚¨?”çy?.<>òkù>í@D>ñªó?ˆ ?®5Ã?]®¿?p?VYÑ?uy}?S—Ø?El ?ÞÜ>n©ñ=è¨='k1?,?u ? >ÊN=üâb> >$Z–?| ?UD<>%ÕŒ;„F <­=0=“>Ç?CV?†b“?Ǩ@Lç(@ÅO@¹Î?€áþ?É`•?dµ? ‚½>‡Ú´=¬¿\=-ºÔ>[yà>ÏJÂ>¬ÎÚ>o>Q%{>3J>ãïg?r:>oZ?_?¼Æ±?’ã?cu†>Éôi=Ùór?kx?½„?KÛ2>ŒN +? Šà?S£‹?W±?S$q?Z?'?a\9?,Þ¦>üõ?FM?{›Œ>çL=Yü”>ÇØU?5Ë? +ôÖ>©u¾?³'?E#1>úMu>d=§>äÚ¾?)œF>ê=º>m¸? +Ï”?l —?sp~?z+˜?Ó=Aô?+ü«?¦rb?‚?|Êù?|ÑS?|Óð?B|‰>üã¾?á­?0vß?ŽH>³c¿>·4Õ>Ž +g?æ?rŽŒ?˜&?»±:?€ùL>ýGò>¡·v=ØG0>iù>­…‚>å–¢?Þò?Qf>ýš-?!‹?Ù ?;f3?Z‚?‹Ï?²Ý¶?…XÁ? p®?,ž?Ök>¸kc> /Š? ??~AÆ?8¾‚>åÐI>¸ŽŠ>JèÖ?m¸þ?ß„?±m?~«à?¦Zè?×$d? Êj?6AÍ?7??°æ?˜Z¹?| Ÿ?½¢¬?ó€<@"ó@FŒP@1¶@¥-?¶Ÿ>þ?oÃ)?3Û?ѱ?^Nè?Ði?+T>·m?g°?˜è?2Õô>æ˼?ÝÏ?¾ð?Z‰˜?aØ?VÐ?krä??¡K!?7ùÄ?xL?`Ïù?€ˆ>Ôîä>‡Oà?Å‹.?÷nì@ v@`%?²<¥?¦´>1M3>Ö|‰>úÖ=t¸]>¨g?¹æ^?Á`>Ý_>Ñp?¼ó=?­–?/ò?C5‹?¬Õ?§Îr?¾UÓ?£Ýì>ž÷~>Øu?O+?Qš?€¸?}ê/?ri-?pà ? XÆ?R¡>Ï*Z>ýgU?9¹‹?žy?ÓÔ0?“‹ ?<æ¸?B%è?QDG?TÉt?R±è?– Ë?¯Üƒ?›Î¿?™8B?â ?s-‚?x–²?}øË?‚4?……1?’t‰?ø³?Áƒß?ÃÆ?l¤A?`=;?—º?Nb?¹‡?£óÐ?´?UÑ>ë•Ì>áU!?Ï8>Õ >'>û?ê(?4yÿ?‚ôê?MS~?À?BÚÿ?±Ý?7-§>ìï??Zf?nñé?ÁJ…?äÂõ?TíÉ?´*?âŽ?J|?‘“v?£ƒÎ?Äͪ?ÍñB>‘ǯ>=¬¸?È2??ËYÍ?ƒ}?ˆw´?¯Ýo?«ƒ!?ƒÈ?fš7?¤?Õ„>öþ >«'a>K?imQ?ëFF?¾v?–Ô?²J€?¿mŒ?~jŒ?=Üõ?ÿ½‰@%Õá@qÖ@ Øû?â•Ò?Û¬$?àž+?å’?L× ?3Dù>à¾D?nÃ?~7ä?p_?'"?HŠg?Á†ô?´ý|? „D?”Õ4?v¿h?ÝÈŸ@){~?ÔŨ?4:?e™?„5?`ÿƒ?E¥?IC?Q9ã?Ša¯?˜º–?ᶾ?êŒÍ? –>ŸZ#?¡ë?²Ä-@:¢@Þ?„Z™?ƒîø?Š¹æ?Š¼E?xí÷?™Ù?¹ðÃ?j‘?fÜ?t%?„kk?nVÈ?SD6?!Æ?qT?Î>ðU¬?9$ƒ?V.Á?¡}‰?¶(?ÆØ?ƵÚ>&¸>äî?´˜Z?¿h?ûµ@S¡@ &?öLý?Â4?ŠLr>^ø?VŽ+?≼?ÐW#?´?@vz@$ú?åùp?°ï‹?"t>€ÿó?¸'ƒ?òìî?ÜŽ?Ϥ?#ÒP?y‡?`#?ifm?mñ?ph?e +2?Éâ?½Ê?ÂóË?Æ©ˆ?ÅÉx?Â.Æ?ØmÊ?ÿâ?Å>¡œÆ?3â¥?„g?’üÍ?™µ"?_Ü{?:/s?×û™@[?‡&É?A,?}Z?„S?ìK¹?ñU @(m!@*žF?ùÈÁ?î/"?„B ?ŽÜO?Àrð?Ä?ÇÕ¬?Øüi?ÿñÕ?»$#?/!?+E0?dx?Fº?h;J?²¼…?ßl«?Z‘h>Æè?Åÿ:?úyÐ?ͼe?Ç?è²K?õ+?Ø·?Ø]I?±ÿn?«Ú?˜E?“P?íõÚ?ë2Ï?½8i?ÕÛ~@l4@9‚¡@ƒP@S™?ÁS³?ÑÿÇ?푉?Ù~+?ÅŠG?ý@ö@@ %Ï@ áY@ hu?î©_?ÝÑQ@P~@$bv?Ï1¿?ª>?ÍCB?Ù5þ@)“@hÍ?cMá?M?á"?k™?R4À?0yÊ<èö=> +¼—?‚Ž&?‚@™?Œµ•?—0±?©¤¯?¬—u?Ä™î?é‚@ m@»?Äu,?•ÈÌ?Fw?­Tã@î??²ä©? 5÷?Ÿöª?ê«â@&¨”@Em^@Å@¦Œ@&Lë@5¯ @‹@“ƒ?;?½ëÒ@,  @BŒ@ “4?ÿù‹–k?`|Ï?¦:?²}i?ÁC€?ÓP?Ö‡}?½[@?´ +@™ù@3 }@*· @#«@ !@(Ò@'èÄ@9Ù¬?Œ-7>p@D?69?iB:?4®?´/?ȉ‰@@øÓ@´@ #‚@ôÉ?ë¼^?¾×ó?RD>‘O˜?Ø@§Ÿ?»ùÝ?’ð¿@É°@H@”?ÿ]?’Ò ?61!@Ì@8;Â?ù}æ?½¢ñ?Ê"B&?Ÿýü@”†@»x?ûc!?à§?¼Ô ?ÍÀ•?âx-?ÕK?É‹?ïÿ(@î@!?û¿?ôµc?îRÁ?à=[?Ðÿ3?ÛRø?á”Þ?Þl9?¼) ?¼™Æ?z8?q¨?é³? ½î?‰ ?†>¿ò¥> ƒ?¶H0?ºðÆ?óÿò?ôz6@iç@Îù@B?øª“?Œün?ZiÑ?æÚ¥@â?¶ï?Šø?§?¹åœ?•wÞ?|”?°HX?Ýéš?ÎG‰?¹q7?Ñè?÷ A?â>¢?¹!ö?Äz$?æ*(?쬶?ön[?Ü€Œ>÷c¿?0ú¿@Râª@P B?Ó?ÊÔ?òû?õÍ?“p{?zC?•&?•*Ó?㢟@U‹?Ø|Y?®ò¯?¦Û?¬f$?ëBx@ø¯?æ,Ä?7}B?˜iÑ@ °±?þ(û?†:?ŸÏ%@39@/Ø? ii?<Ò>÷×>òÑŸ?¸Ÿ ?ÐÌ?œ}b?–)Í?¼d¸?Òº?׸ð?Éh?dj9>gþP?…¢ø@^@Â`?Çû)?Ø&•@4ö@5Å +?pÕJ?p½é?”üŽ?ŠÒ°? Ü>ð=4?SÚÞ?yùV?GqT?1K?Jj?S!Ç?Žƒ?Éš?Àhà?³c¯?µÔ«?Ì;?Ó/s?¬ÚÛ?¨–?±/²?²Í"?ÍŒ?ÐQP?¥(`?‹Þ?@‘>>íÄY?"š7?lhW?‡9?½ƒ?ÈÈ?ä’1?âš?샔?ì̧?§å¯?Ÿ’@ —~@$Å?ægb?"Ú?É8Ç@ Ö@@ ò¥@(ÜI@!,Ï?•1?šÎ?–vk?Ä—?« ?¯ •?@Ýi>Þš-?“Ó ?ê“ø?Ý4œ?ʃ?¿‰K?‡S,?‹¼~?ºüi?˜ß?–%Ù?—pº?Éà +?á8?Ò?ÀÁ?ƒÚ>¹ûÏ?|Ç@>Ái@>1­?èÅe?æSu?³–?søU?$›?y7?H Y?h'à?ƒ +?˜F´?ŠçA?90Ð?+oŒ?Ksa?5¢Ñ?B>?/@?ÉoM?þÀŠ?Æò~?ŒrŠ?{ÈG?fùß?ho'?fÛ™?fæ>ÉÐ>µÄX?ÑY?:¡F?9š>æbì? h@W‡?Éon>5\>aôŠ?Äì‘>V>óÒ?v®?s·Ý?-@?!ç?Èé?Î]Ù?öP@Ó(?Þ¹1?Â7Ó?ÔÕô?þX@?öl?µï?²Ô ?«ë˜?«ä°?!†>õÍ,?H1>?y÷Ñ?gY?V³b?qÆò?‰šs?ýž?Ê¿Ž?Ô]?r[¡?j&›?ã'c@ a¦?¤&­>åR,?>ŒÑ?«ªÔ? ÀÉ?enã?e~ ?ÉVo?Ä·«?hkk?Océ?Ïå?ü|?§C¾?^]?'ÿ?F-Ù?< +?€ü?té>öü¨>æ`ä?Cã(?T¬§?M§ö?F¦d?t%?•ÿO?£¯Ã?ȼz?¼âº?‡Íô?„61>évP>çÃþ?—)>õÝ£>åÒž>Ø{R?Aîb?‹Hk?º‘…?éÞ…?Ç +?|TE?hØb?Œ¬Ž?‡ M?50? ~E?º>ûà¢>ìNô>êõá>Ú0>Ä? ÖS?=.?g†À?zb-?lN+?lÌí?@£`>ªó˜>ûë?~Cú?h²à>ð?¨„?ÙH? Ÿž> +<>³/<”W¬>`4+>•ý[? Ö|?½n>ü¸>ò“?> tÉÊ7>…¨>OÏ>$<>§">ð#l>½%>ž²&?'<£?^¨•?3õ?ÁX>4QU=“,ì>¾-þ>ú1>‰È>Ç`>ýF= "Ö>ßF>ü)ú<)=Ý·‚?àe ?¼´E>”×Ñ>@%B@&žï@˜xä@|C@‘ðk?ðv @;EÇ?þÂ?¶,-?Í#ö?Ï + ?­>PÙA>’n >|\>ˆ«O>ØZ¥>üüN?"d¹?Da>ÊmZ=ÙÞõ?%ÓÄ?}~Ì?~’a?|»>¿d¢?iKO?½y“?‡fØü0? Ùñ?&:À? =ê>ü‹å>èU>åjf?‡h´?¼¬‚? ‹Ä>áv>ü‡±?/ÇO?Q…m?Ë>ã‰'?@¡?m{é?pþ?|”¢?j¯q?`m?:‚˜? ãÒ?߸>üÑ×>~!d>¥3A?/zP?,Ù5?$]Ô?R±?|Ú`?`J‚?ÔŒ?oµF?È÷Ü?ƒ­>ê¾|>øÂs?£€>¢0Ð=wE„?6:?“nõ?'"6>%=i>Ó„3?4ñ­?xdz?™*®?5IÕ>¡5Ï>ýÒ?,Ãó?h$?h/?k¨ò?xÚã?{åk?"—?Y™'?ã+Q?¶É?ƒm¡?ØÞ>ä)’?€À1?…‘¹?~µÑ?Sf&?2%?‡.Ý?²?ql–>ÿ ½? û?‹?¥ì?ÿF?±Æ¥?~a?¥ s?Âü?£D·?wõZ?+ôÎ>ÿ¼_>´VÀ>kg2? S?.ÿµ>²Ñð> Á?Ÿòe?ôŠy?@ ö=ºOt>¶z¢?Û?Víò?uíÌ>¼? >2ÁÜ?®.3?Þá?‡‰?SdÈ?u’)?€Ž1?®0>ïÞ? Î? € ?,—?7|m??Ã?3ù5=Zn=»"¶= ¸ +5±@?½\k?À…=Ä&m>G²?¢Ô?/Ã?’îK?œÜà@Y@‚²@Wæ?Ü\¤>CÓà>Ϻç?¯A4?±¥µ?©Èi?Šœ”?iá?uÊ@?ù¥Y?¿N >øî$>`Z=Ÿv>…s??Õ?â²?7·5?‚ l?²ßD?´kÓ?ªYì?"ý?m×Ñ?#Yy?"?YAC?‚0–>•g5>Åu4?Lô?×?1¨?r‹¿?‚j?l|?P?ñ7—?øp¬?ƒeÓ?„˜?šãy?—×›?¶;?ªfŸ?¶ù?Œé?7o?.çÿ?bI}??8ó?Þñ?#|X?S¹¾?O0?dÐ¥?Já;?«µ?IM’?ƒó>îÞ@=[âX?nÏV?¸»%?ì£3@6²?NÔr>­dÆ?`âŸ?ƒMØ?¡ªë?¤ƒ?Txh?N•N?YÏ?nd?tÝ?ÑÕ?ƒ!?wk ?\ì?.± +?ˆöÂ?gP ?’º?-{•?~•I?¾ÆË@ 2Ü?Û%­? u?“š{?ƒÅ7?Л+@Ì’?]'>jT³?Ĭc@Þl?½øò?«¡?l5^?\3@?¥hº?¥Ïõ?¶œË?²Õt=…CB>ž-I?&p?|v?ÑÌÇ?£Ð?Wæd?D×ý?>]7?Ž;?¤x«?²” ?¯×>?~ ç?^Òà@Ëw@†Ë?Î:ï?Æ„>°KÅ>žj‡?„XÀ?†,p?ŠHÙ?„_©?„a ?Ö]Á@Sj„@U#?7Ç»?™$.?å·–?‡µã>²+ù?>…K?„qê?Î å?îÿ‘?‹  ?M/?jÂF?iH->”š,>$LÑ?¥ö¦?¶Ù?#Ïã?¸ã?€;?uö?™ô? Å?¿?à–?Ï$?y=>ã@•?6éÄ?’t?zKß?OÌ?§Í\?ánë?QGB>^ >ëê4?xO?D?ʉ?°N§?φ?K*?,ßo?Nƒ? ø?’‡Ê?sÍñ>Tsd>[¾£>÷Ÿ]?Cp\?Æ®Û?ƯŸ?Æ«à?›´M?:õW?€œF?æ?Æ#?„k?«Öb?Æ™?Š¼?R¼ê?c6?{Ø`?„ÇÞ?„[?œ«Ò?ž e@ ˆW@ñß?³—&?¶Â§?Æq[?ÀÒ[?˜Å½?’×Ð?Ša?§ñ@ I?Ý8æ?Š +?Ÿ©«?·¨Á@Z@_We@Dš?¶z?ÉÁM?Ú¦x?¡3¹?w&?ÍÀõ?ø÷„?ð‚z?å[n?’f“?„?ƒÿ?ƒüŸ@ \@"@,"õ@%JI?n$?xzÿ?Œb?Š2Ñ?ˆe?†.?†Í?µe!@”R?í/©?ÎSZ?ƒf°>œ)Þ?+á6?‡‰?ˆx?ƒ¤‡?«Ç¹?Åh‰?™¬?ƒ€?Éš}?êØ?]±6?ÐB?¸í´?ǵu?Ó„7?ÍS›?¯å>ãwU?š +ã?ž ‹@1d©@)y ?Šê? /Û?ºÒ?¥B? ß ?¯¯?'yp?†“z?øØÛ@¦›@ ÍV@ ës@ ù??û‡ì?Ñî?ÅE˜?¿?Y?ëð?:=O?µm1?ùÓ(@*`@Lý5@Ç‚?§w¾?ç‹ @£‹@É @Ž§?¥]R?‚ˆv?ê2-@¯ï@UX·@`zÝ?§¹a?‰®?“S ?˜a?ÎÜ„?ÒÑ°@ +ÉÈ@ +Äi?ÙÂè?Ë·?k†?$FÑ?‡ßr?±öù@b?6@Jƒ?Âèë?Í?ðÎ?牜?Õt?Ï0?£?¶˜î?–~í?Ûßß@<9@´Š?‰ì¡?³%@‰f@0Ÿ9@v´%@Dš@‚Ö?ÃYL?W¡î?sÌ®?Š²Š?þ¿c@6t/?ÿÊŸ?›æ-?ë„?ŸôE?xφ?0Û?¼P@Ò,?þ7I?ë£z@t%@6Ê’?ùüà?§aY?Ã+?Òtk@Èq@5R˜?úô"?¿¯@ ¤ï@@¢@ HÒ?âJ@@‘,@GÙ@]Üa@$Gë?ÿæá@$}U@;û@}ý@ œI@1M@Ê@Õ¤@öƒ?œµ>@«Ò?jþª?Ìùm@Íü@˜+?ã~‚?}ã•?œ-?¼Ùâ?¨mÍ?1?ß5ª@)^³@Ø®?ûAé?ÖÞ`?“tg?²ü:?îÝÍ?èB?Ã9Š?º÷·?·&?•¸Â>EP~>‹‚¼?QH¯?Y #?yòc?€ƒ?¯^í?·}@3x—@5‡?¹¡É?¹ @R4!@V ²?Û…q?Èe\@&,þ@/gÅ?¨¥ã?x€Ü?‚wŠ?Œô?®ŠQ?º§?º–?¹ì?ƒ\·?6Þà?¸@—Þ?þ›H?ø t?å¦?ÖK?ÎIh?¹(r?©ï#?ƒ2Å?›¸?öv÷?ö]_?ô§+?êÆ6?Ë®¬?Óñ|?Á„?âÇ?ófÎ?õ†r?™( ?Ž±D?¢Èï?«]O?œ1Ø?—;î?®bü?ÁÍ®?¤é0?ƒÔª?PÅ…? ay?æ7>°×?"åz?¬§?»µ¦?èƒ?Ûpú?x€a?o`R>ó.w>ó>òôš>òÙ3?ýõ÷@ ·ý?ÒE+?»"š?‹¿í?r1{?Ê.¤@ê%?µg)?1Òð?ÞA©@Y¦²@S”@>¢n@(B?„8?`4%?pàÅ?pÇT@C¦@L->ë«;ì½€?5?â?pS?e”Ö?[}²?d)w?o¦ö\4>îÒ*>øX¾?:¤?Ø{?-æ ?=„f?ìÌ7?ìÔá?†šF?l˜¤?Ôßþ@^?Óu¦?·£@ nº@D«î@/³D?Ô¹ê?¹éO>ë‰)>êõª:äÍ?B½m?iîà?Ãæz?ßFª?ªa|?‡à?j³Þ?-S?V G?œ˜_?™ø€?—Y™?”¶‚?95µ?)þ?`E?Ÿ‚?ÔK¸?ù~?ž_•>‚çC?¦?Å[}?¾Û=?ç(ö?è·¦?®ý?§½ +?–›q?ŠU8?ÆAL?îD?þ‚@ ÿ@ ?é°s?àŽö?¶ÅÃ?¼(u?À +ª?´²ä@„@(e@'q4@(#>@þP?f6@?†u~?Ýí?×c´?SCl?LY?Ffà?@µ?:ù?5A¸?‰%Ú?Íò$?¹â‹?IRà?=»s?F~¾?L<ú>jvÀ=â)ü>¸f>ê¿>?Ì–?×»O?Ы"?ÒØ?Æ•þ?œÖ·?™ÖŒ@5éî@4Þ@ b@Ù6?ó6?åT¤?È á? ?°MÊ?íþI?é¦p?¦Ðb?«“×?§–[? ò©?ƒ=?e.?¤Áj?ÖY¦?Åüð?´r¶?°¢ï?Â8û?¸p?|˜?J§h?ãXó@l#?¥©ó?‹H?!Zu?gù)?ZzÈIR=7ð=ö~0>TËf?“7@šd?ó46?9Ø?•õø?ƒAý?Šê?jJ?j8Ç?jiV?jž×? >ë +Ó?<ëò?Ts?h”>ëî'?&É?fx˜?\ÿ??C²?r=è,!>¥ŽØ? &Y?¤ã[?m*Ò?eµÆ?]i?TºÊ;òk?<ï‚?0#œ>ÔBÇ>¤I¢?Àm?C¥ ?Ô->üäJ>ñoÎ>â`1?1ýV?> {>átš>™-x>†‘ >g•>AÔl>ÀO>º÷¡“?’@?ºcò?D%Û>Ü›>íU|>úqž=þ8°>Íü>Áu +=;¦;/Òb=X>ÞF|>ø?§‰Å?›“h?hÆ>´†ü>§fÄ>ê>¬=«·Ù?¬Øl@4l@—c`@w±?­ •?ûH—?Ñ9…?½ûî?žY˜?—J†?"a>­w/>fëÃ>[xŸ=›]{>Sˆ^>©t§>Ãã…>¡2?Jêí?„mt?õ»?|Ý©?¤ß9?µ£]?>÷¿>À?"Öê?WÌ™?rê>ì®ñ?µ¸? ‹?=rù?VÖ?4Þ¦?>aÂG?–>}?û/ï?†áP>ÛTÆ?0òë?]õ%?:A‹?*¼Ì>–ª¸?4Zo?¢YM?kÎ?+¹-?º>üžÜ?C+£?|§?;S(>þp?¼P@Vˆ?½³Z?bÓØ>÷‡n>t®?@Î%?£M>?|œ.?@|K?v§ƒ?ž‰Ú?©Ü?¬Å!?»ÚÙ?Ó?S?gª·<û·ã>}Œß>ýGU?0ÌL?[¼Ö?rbe?•%?~ ?Òã?†±?ŽÑ?¥áÌ?‘ž?ZF?(Ôñ>ýÜR?±7?'ôŽ>£d>w²?wÙ>Š€“> Ù?Ta?Ufl?Pêš>ÚþÛ>ˆŠ>öÓâ?qé?°Îÿ?$’Ä>ÍŒM?M£?1-? ^~?¨?þz7?Û’?Äšû?™µD?i$Z?tð?é?d““?\~…?Uð ?Eyú??”`?9«÷?d9?€ä?`J¦?D9?•»Ñ?µu?‘Îö?€3.?&õ?B?? Ù?H`?Qå?U(€?i¥æ>î˜Ý>º©º?­àå?Æç}?¦¨„?žõ>¹ê0>=—{>ä} >×Ý£?–s‘?¨¦n>ŸéŸ>‹ ?°²Þ?¿x¶?œV?p{W?Þ?'¨>Ïp”>·¶F=fn?`øW?oÔô?“¬?«Þ˜?å(Ê?Í.ý?1ró?I—?“ö•?³ÍÐ@yL?îÍ?e]/?$õ#<üP[>CKI?ºÏ?[~I?© 1?>\ˆ=à?=Î?¯gô?–om?÷A?Ë+@?Ê%ß?¬9=?R’?%4??(Ò?_?K?É°>Ó»ƒ>òt ?PŒ? aö?»Úf?ÃÈ?ÁGÂ?‚¨—?u£¥?Ë.þ?Ϫ9?‚û?zïy>ú®P? ?‚¬Ž?còå>{X±> d@>åÇ??èë?•9†?ž ?Ó?±>ë?ë Þ?›;¨>~Ò?€\”?úø7?¾« ?ƒ?zDl?ilò?ƒ8?‡…?À7?ÖQÊ@`¢@!éÍ?Å[>?©AS?¢/N?¤-m?x?r‘e?60?0é +?+áñ?)æ?Ja¾?`ÜF?«ü?—¶?ÀI?‹u³<ï>Jã#? öÁ?Uk? ¦ß?F|>j;ž?-E|?ƒÇÚ?žËR?´ÿÿ?.µn>‘zÔ?ãO@™›?¤©?ƒé]?ø?ñË?ÕöÆ?æžÿ?“%I?Š¥>•Wk>È…5?ʆr?®vA?çÝ?)æÀ?„À?‘Ç2?¨hø?¦4g?¨¬C?~8‡?+qä?†—°?­Ù?ƒÛ ?MãŽ?B ?L«?£ný?ÂŽÝ?ÇÞh?Ær4?Æv ?ÆzT?ÔùÝ?ÓÍF?þ.åó?5]?ÆÇT?ÔŒŸ@¯™?ËI×?„Ñ?. 8?uàÀ?”ì¨?¸™Â?­ï@?¡:?¨ÃÑ?¯mV?Œç?eé>?—&Ü?¦D{?[9Ø?/.>‹¶6>E?N)?`Üd?)(?D+z@9nP@5–Ì?Ïyè?¨á³>–>ðÛ¡?ƶƒ?ƵÅ?Ʊ??q)3=“â>ÂÔG?;4?Æi²@ +H]?ÆqÔ?›?'í[>ØòZ? ~K? +s´?­%3?À¬—?“µA?“"l?—¥?›¿è?„T²?¦?ã¦ç?áùµ?ô@E?ëÂm?À«›?ôÿ?A3?a²?ÃY?Àþ?ÆNA?¨tS?”­?AÊ>Â2U>Üy>öÀ±?|‰Œ? à?‹7Ó?„*?ë +Ò@´?—R£?„-?X=˜?X¹@#DÎ@!†_?´Ò²?¬3}?w!?:²Ò?´ù?¸»?¹y5?Ódæ@c¥@ Rh@"ë?ù+{?Œ‰æ?~$v?SÎ?Õ9±@?–6s>­a•?fÇ=?”†?e;…?@ ×?“Î?¢Ìq?L¼ ?!ÜÕ@£ƒ@/ªô@©@ IP?êÖÆ?ëW@ ^N@þÝ?`tn?[çÄ?Áeí?Íÿ@%›?ãö ?|‰E?‹!è?²g ?ÚÝ@-?ßø? ß?Ó¿?ð(D?üŸ@óÃ? lø>ò?H ®?†Uþ?Öï€@ÂV?ÒïÞ?­š¢?²²ý?¼Z?Ûk¶?é:@7”¤@Pº…?Ðæú?“¯ä?»&R?üï?*¶?!’Ø?}Ï|?‚cg@Gì@H´">ª­…>»Ôð?i… ?{›4?¬ò}?°¿t?©§Ê?« *?Ã?×> +@&Ž[@ üí?Ýé?ób²@"`Ð@¢?¹?Ê—@?ߘ›?ëøÅ@Ýà@yÀ@¦í@ä @>du@ª?…§\?ªÀF?á>@ºj@Rì¿@.“@²?£v(?E@?å¬ì@AÊŽ@'#F@ ï'?ûÿ5?å )?δö?Á}2?±…r?¨-U?ê7|@ º?¯îQ?_¿¤@-@-®m@()@%¶?¢$H?…k?]9?º¼?œÛ?Ë¡…?Éx^?ÈWÄ@4­:@T“D?ŽW>€b]?“Ì%?À5!@mO@8a\@€Ÿ@ +œ‹?Ü ?½¢Ñ@¶’@&Õ@*…@õh?ÓÂ?³…ä@7}™@Uš7?Ï>ñ?7?³Ûþbm?ºf?êjN?ª?°%?®_ù?¬@€@f[@–@H1@]ág@V{°@O{Š@WXÑ@]’!?ùš?} u@ú`@IS?ÐÞF>ü¸­?DPØ?|‡ì?Þ:@è8@4B@œ[@¨K?úèµ?ø)Ó?÷"ö?©dÄ?‘$?¯Ù–@#±*@ ?͵;?‘>û ?Š™ã@À´@ Ïÿ?÷ª€?äùE?¤£‹?Ž³¯>˜É>Έ“?M­š?U¡¤?œË“?™Çh?ŸÝ?ž+1?ù–è?øÒÃ?ƒ +„?}jÅ?»ÂL?Æ… ?¼Ec?º²@mg@Êñ?_ç÷?§n?†€?’V?­Ì8?º³?‹S?mî#?vÇÓ?w·Ç?ºs?÷ó@bÊ@yD?í@?›çp?©h?Å?½"w?±‰Æ?Àkþ?í²?óI?öIY@Lƒ@0Êó@'Ì=?! ?)ÅÛ?ñ2p?õõ>çf>£œ#>µ">Æ£5>Ø&h>é¬ï?r~?îx?Ø!@л?ôûg?ב??¶>«?š›?•Ùø?ƒ±U?8¯?s§?Žj^?ò—ä?âgÿ>ó8>óK@ØQ@ðQ?ÓQM?ÒÙÒ??%Þ?ví?$°s?(Ì?¥ÐÓ?Ö ‘?ÃþQ?°ÎÅ?ƲÀ?õ@nï@@k™@O ®@€ŽÔ@níý?]Øû?ba?¯Õ?±Ùk?„À?jhs?Íz?ãÜ?½sª?©% +?hÂ?¿¤?I >?Œ`?…#Æ?=¡Q?Dèæ?p‡l?g–?nÑ+?n¶Ý@ ¯@,D?‹Ü½?-Fº>Á£”>Q~7?#÷+?}|Ä?s ?lÃg?&q®="`\>ýw?ž ù?™°À?À|›?ÂÛY?èzË?å…ý?£J ?‘/„?~]>6?Gé ?°ý ?É÷ç@,?æ%x>ë‘­>ê±A>e¿C>M²>öM'>îÀÉ?âsb@v•?¾Îí?j¥?:?)>êr?, ?‰1?’« ?ÑA?Îað?Ê/í? Ù?©Š\?¬ n?ÌÎ÷?æ—?Ìé +?¤ßd?àDò@=—ž@1>M>ëWI??m‹+?w·!?Èâ…?Ûxµ@âø@¡@»‰@ÕÂ@ °@êî@‡?8¹Ô?>!þ@λ@Š@̺@÷¾?þÁ?ïŒ?’uÈ< +£×>˜Z?û?)7°?f¼ÿ?f«ì>¿ˆ™>Ÿå?5A]?fl{?ü¡?§˜Z?²?ÕŽ?ɬŠ?‚àq?h®$?S¼à?Z û?c·Î?eС?’®°?°õK?¢·?‡ùð?¨"º@fÃ@å0@A +@E—:?Ü'Q?±Ä0?ªTw?ª$2?ž„‹?€ER?›3„@@åÉ>ÿ F>êäÃ?\6J?rÄk?kXð?e1_?±_Ï?øŒÇ?êþý?Å¢å?ÅÕ&?¹ÐX?Ƶ@ çV@±@@;Ç@NÏC@)í×@ ¯Ø?ݳ§?ef?b¬g?RÀ‹?PF?Õƒ?Ò/Ù?Hüæ4w>æ@Ä?g¾É?p±M?˺e?Úi +?uF?w?e/î?’µX?ÂAc@p}@ , ?„o»?Í0?òº?„éƒ?Ÿ>ëóõ>`]?&•Á?7?‘‹ò?¸Á`?´›­?ê’?{€B?Ej¨?>µØ?¶?…ða?|C?m»?{µ>ëP?Da? Ç> ©«>.»p?²‹?jJ&?1_Ê>í>í>¢>íƒî>º‡R<ÿµç>¶ø?nŸ>?nè«?o;Â?n«y? Î+?|ø?‘Ò?™vb?&,Š?(^>H{=”Ùb?Nš¢?tBN>h0—=TÊú?‚Â@?§[¤?2x,>õ9©>õ«¿>öC>ö…>öîp? Cû? +Œ”?•q?º¤??`>ù³º>U³°>wr>‹z×>‚ýÌ>]‹ñ>4»X> Ú=ÄPþ;KG;’3*>úH>éô,?ZÙ?GŸ?-›?zÛ>…¸=>E³<þ¡°=ªCN<¸@Xµƒ@‘;@´æ–@¡mÂ?ª#ý?ÉF2>ÙÌ>^>&Ó/>Q¤?1æz?S©ö>àõ>Œ/O=‹õÞ>‡ê»> Êí?\U"?—ƒú?®ÄÅ?¸5l?åŸ%?ùö“?΃@?½q¾?‰w?\ÍÃ>ÀÏ>8íÄ=ŠqÊ?f1o?™ÌE?0dé>ü}›?OÜ?|{^>Üâ=ŠïöÃ>>7¨>€™>…ì?.,î?|’?b‹>S>Ò,?ªØ?Næ‰?|ª³?|²t?{§X?m^>‹_>ù‹w?Â\?]¼Û?€„N?fó¥?j¡?š>†Æ<>véZ>7ƒ›?+¹ñ?Žç­?ÝU=œÑ“>œ¦:?(O>þéO>ýP‹?¶{`@Ã?Ë +[?}u?)öI>¥›?ÿ?pqX?<¼>ý¹?‹î·?Ô ?‘~?Î?€ V?´â`?Fí=ŸS'??y„r?m Ó?[ì?\!Â?`¼Ã>øè1>(Yp?²å?Zk? *s?³Ü?u?Î’é?W†´>!>¼ ¡>îg?8ÄW?$ü?¦x'?À4‡?t?}k?XUP?|j?‰–?™ê?1T>ÿ¶§?~–?¢%2?nÉ?GYÉ?‡¢þ?–mi?Šì?Ž°å?™)-?•\9?…%¬?€8û?%åÔ?Qp?Y½Î?sÔ6?|ž?€fÅ?høÍ?\Îs?5R?!ž*?JþÁ?m,0?·UÕ?Àü,?OŠu?/ ?‘)‹?ž1 ??Ö ? ÈÙ?¯(?©Ô?äÌ?¿49?»ó?sö?mv)?gãñ?h3©?‰bï?À”?á~Q?»ÒŒ>Šši>Ç7?‡ÜÇ?eØ?™ ?œ6Q?°6-?¤Òö?Ž?0\>½˜]?ƒ6Ã?²gÀ?øó4?ݳÐ?³Ì?€^>Éû?Eaý?•Ìá?‹ü?û?ªŠ?6Œ?¡(«?—É ?|T†?`VQ?7æP?&—Ò?¶€~?ÞX?b-~? `„>8à= ûo?¯ ??é$?_ý?¥É?ÂÉ?¿'\?"‹Ä?!ˆ>°8ö>¿Îâ?7»?4¬@?_Y?9?Lש?:ùE?Øž?œxX@)aX@¥?‚ó ?°ˆX?ï'´?yPÌ<œ„%? —?ƒs?ƒ¡?ƒ#•?§ëU?¸ ?œv?• ?×O¥?õß;?Ï Ÿ?Äþæ?UÁÄ?EœÝ?Ý\,?àZá?µ`ø?±ÿ\?¿< ?¢ =îÆ>¾Ã÷?ÅV-?´Ö’?ƒš?™¼?ÅOü?qøc=X=®VP>¯Æ?õÕ?Kàø?« +Ë?ßЕ?¿Æ?¬ãŠ?²Š?®KÑ?ÕÓ”?ì+—?Ç)ö?¸tâ?r–€?Y^w?‚Zr?„A?ª÷?´9U?õÛ;?û¨å@óÝ?Ü~¹?:^?$B?µö?œ÷¦@ p@›#?ÆB??Ìr¹?Ìã?ÆvÝ?ÆT±?i~?„>e?_Jä?>ù¸?šñÕ?¢7 +?•À?™ö8?°Ž?µ°@í-@¾û?±à–?°’Ç?}™^?{?Çy˜?ªÅÞ?Z¯?k®n?ÏE?Í ¾?Ʀ*?®±œ?›Ã&?}…º?.{-?J ?#Ý\?˜ö›?Â;z?͆„?Ü÷?ä¡?W1Œ?^’f?UzR?cy?h¾¡??K.=Š"J>“?ÂË×?µ£l?…¤¨?g¬Q?ˆâ?²¨P@3`u?ë @?=Íg?–~Â?ÆÍú?¬wE?œ}?¸Üé?Æθ?¬±é?¥,É?jÄ?_) ?¦qÞ?¤W¹?Å5¬?¸…œ?e¤g?\‚e>R¯W>éˆ@>@àÃ@o??õB2?Ça?°"?‰Eï?šî?ªÒZ?h!l?u³?×î@%a@qU?Û_?³¨Á?›ý?Ày^?Éu€?⸄?견?Wd:?7› +?`ãñ?cÑŸ?ã9?à‘£@ã˜@ /?¢“Í?˜u?‰õ&?gÇP?ÉE?5ÀG?lt)?„6?¾£S?Íq‚?ŽT©?…?T+?P6ß?jI?bj.@½²@cÿ?•!?”¬v?]=?ŠöP?©>à!°=yž>ôëK?Æ!@ÌÎ@Cq¶@%M?õÚÝ@ÌX@ò«@z?ùæî?ž¢Z?0eš?Ž(ð?«mÂ?Ê9b?ÏÆ•?øƒ&@Þë?¸€/?ªX¥@! +\@.’?¨ +?•ÌU?Ó??Ë‚Ö@Bú@Æš@Rï@DS\?ƒHñ?ŽÖÔ?Å—€?Æ?¿Ò¾?Ïâ!?ý¹@ Ä@Wýã@+`?¿nJ?ÐRN?ð"ö?æ ›?ÞŽ›?¦;í?RÛ+?j˜ý?~ŠU?–¥?©ŠF?c ?+¤q>¦Ó§>ÿ?w?žÅá?ºÁ~?ÃêÂ@â@Œb?Þr‹?È"¼?ˆç?“ä?òÂ?÷¸@ñ@nð?PR–?M]ù? Ð=?¨øÐ@c@RF?±º?G#®?à r?½_$?¡Ú?¨,4?Ζ?â3@ ª=?Þz>Þ¸?‰òÙ@)m@V@ ´h@*°?ë ]?ÇÞ?ƒ‚Í?Ó¯?ˆO?ÕÑ?Â7l?¸Þ?µ¢›?³yê?­e?©˜?œvþ@·@V¯_@5È@"@\+‡@‚Íž@"s¯?Á€Ý?sjƒ?qJ?¥› ?ÖD¬?ïm?"hz?ÿ]Ô@4ýá@;p‹@<ºH@œL?Íýx?•Å·?€@EE@û?¹R4?ˆL—?Î|¢?ð§ä@Ò@Ê¿@ û›@ àS?Ø…V?Éb«?ß«ü?ãmÅ?Ä‘[?¬@ù1@õ˜?¶ÖK?‘·A?(&#>á´Ñ@D±¥@€çö?öž?”‰û?èþl@ŸÖ?_Æ3>õøg?Ë7û!¿?¿ç³@aR@Bôa?ýOr?çýÀ?°$&?“Â?ÀB?J§;?÷G8?ü·@B®@™@`™@hm?ò€^?ô…‹?ö”>?ø‘Æ?ø#é?õæ2?¾¤Ý?º·Þ@?@—h?µ\G?šdß?:Æ?v{?Ì‚Š?ߘ?‰Š?>Lò?–çü?µŠ“?Ô?‡bì?}Z?wX¤?£g±?×Ë?æ ?öïã?Δ?v½?a•\?ü&?bOØ@W¿@já@8—@2’o?¤‘/?  !?ô‰w?õ˜˜?ØP[?Êl”?=Yl?13?Q@>üá>?§'E?Ù–?ñ÷Ô@ o@ ëj@ç ?Ï,Ì?¡€?QÍy?¤Km?™?jñ?„“é?¸Œ5?±:¼?kæ¡?g„Ž?’ß?˜·?´Tš?¶1?N¿ª?$¿í?t"%?…ÊÅ?ˆ8?‘ôâ?¨tü?ºøv?›ô]?T+r?8#?äÎê@ ÖD@L6³@8O&>ðñ>ó­2?p¹ú?pž˜?äH?ìIR?VP? YÐ?·äÅ?ä”D?V Z>[™>’ìH>ïƒr?6¹·?š +n?6I?p b?t¨?=?AÈU?œØ?¡3Ö?£¦?¥ÖÂ?™™šöÙ>ûé?Œ!?8È?i<š?Aò>Ù€G?™6?gŽ¨?bkK?in?EÖ?z!¢?Ýø?¹ïÁ?ÔŽî?êTÃ@Qa@ +TÄ@íZ@fg?{v?jƒH?“,_?K*?“VÆ?éè?ø£ú@(–6?å í>á“>ÚÄZ>æév>ïþ?fÃ_?f²C?(4?b¦?H+?fmú?«µ>?æU‘?ãã?å©Ì?ñN¯@ +ªY@èœ?ɳ>Ò´{?ED˜?eÌ?i±?qdà?L6ã? +Sé?'Á?‘î„? ß'?¯á?¾çï?-¬ï?5>ù+>>å]o?<»K?“<]?B?XÞX?z @+$]@'V9??H?Æ? „?óeª?Ôº–?Àše?Æg²?Ê$ž?Šˆ?˜¤?‹°?ˆR?¹T?¶„}?»'Ù?“r‹?i³?‰r¹?§å!?™öA?ezn?d¡?[Õ ?pî?µc}?°„M?ÕWÖ?ñV¨?½Eî?Œ9Ñ?Áû–@‰›@°I?…p>ì¿Î@&G@a{?Ë~æ?ºÑ{?šY>'å§?J<5?­GV?°[?º£>?¶?•??œ()@‰@ )?ƒ*¡?d“¸?¬ó>Ã<~? þù?7û?VI?i Ý?“aB?ÏbF?Ë1 ?¯X—?²y?Õ@?ÝV?âý~?ê‹@ŸJ@†B?š°ø?LW‘?\$ý?S ¦?v‚ê?–nž?_Â>íA>íW·>í™&>ó‹>õ½ >î¢y?uí? ;p?“?#y¹?ž€?™Ïx>ù #? I>ûß2>À>¯>æî·>òS¸?¡ú?µÐÔ?£½>Ͻ’>­’Ç>܆ï>‡0¤>^õ†>×þ*>ö@g>¾W]>½'á?`I?€Ïª??Š?~é?VNú?`ýÛ>/d>Ñ?—>ûù;>¤ÁÒ>­{Â>°ó>Ø ;÷@9D7<âÀ*>þ$?…4?ÓÜ? %>Ûè>c =Ù1£@ ý@Äçê@•™ü@ty@‚uf@¬@Ø?•H?$èÕ?Eˆø?&êç?)>?~›¹?ƒÂà>Óúë>V]ã?Æß?/M >»s>>ðØ?Dc÷?|˜u>ŠÇÐ=‚tð>ã^>`Aq?¬\Î?ÛF‰?u >?®>ºÑ>€KD?­,{?þ.6?c×K>µa?I½?|tü?s‹Ý?u@5?zÖQ?q‹š?4Žã?%/C?!¨?® >å1Ù>Ú>Ô¥,>ü‹g?/¶?ç}?&žà?#ëì?3¤?L²Ý?w +D?ƒ…£?|EÙ?|¶¶?-³>Þ3«>ë>1>üÓÇ?'±;?R®[>ú2Ø>]Ï)>ø±>çÜ>é“>ý>?„xË?½Öç?ey¥>ØŸú?7~?x ¯?9*‰>ýW÷>Â:Û>‘6?upÐ?­íI?6f*>5?P}A?¦‚?Œ»?nÕÐ?»«Q?ýÙ ?×j”?¬ßK?„µª?Z??—ÒÎ?»ä´?v1?>œµø>\”>ECê>w@>°â>¥‹j?'!ø?a;l?mA.?Pkä?OÌ?;=t?"M·?¸Û9@Ç‹?À%ä?/6?ñYM@o?놆?²þ;?0Ø>Dö¦?6,Ç?¦1?d-?O"è?2¥?5¸ï?ha×?oØ?j\?}!»>Öæ¦=ÿ$¥?–'?Ø?š\Š?€>D?€û/?~R¥>Éà=Þ³â?“MŸ?³Úp?Eé+?%¬8>ɨU>à P?:á?”!?c>‹ÓÁ?´¬?³ `?ÁÏË?È!À?ó©?Ù„?UV?K£?:±?›r?ðiJ?ÈÉM?_ÖÄ?w˜?¦ù?<¨™=Râ?Ed?¿0›?¨¿Ñ?‰¥Ä?c*™?'q¬?MB^?f +]?A—µ?*†B?/þ•?5rþ>Ö‹>yå?~Š?Ë4‡?µ ?¬×?}ˆ?`Üæ?^]l?M ?še6?®B?Œj‚?„5ó?¾ý?î5? +ò¦?²Ï?.Ë?<É%?d|?TÝÍ?¤µ? 7?ŽIA?qtû?…z?š?Îg?ˆ ?0…‹?PåŒ?oï?”RÐ?jç?SFò?q?Õ?€?Œô‚?Áô“?Câ=ûJ>a›>›Ù??@b?'x?žGM?­¸Ø?5b?)÷!?„"ÿ?‚<?«™X?·Hw?î6Ö?îrƒ?æ‡P?Ø ?‰?;oÁ?ÅZÇ?¯îV?tþ?Ö°…@D˜@?rž¿?3Û>Þ¼?<•€?ƒÃG?Э#@Î?ÝN?ÅÀé@æ#@Ï—@GÎ?ÿ¶ ?í3?íØç?ŸMˆ?›´ñ?e½h?fÒÆ?;!¦?7ò?vR?‡³?¾W?³±›?ƒ^?“Å?»-?­«Ù?£@K?¶z?ÆG«?ÏW9?Ú]?Ïк?ÆY`?œš?„B?û&‰@« @v@R¤?LÌ>°[©?VO?fç?Úè?ÛHa?°3?òT?2?W7 +@Áu?Óé?k÷?5*?­?»¤©?ûŠ]?¢¤y?vK?É{Û@+÷?×{â?›4?¦JO?¨‹Ú>ýáó>kn?«ˆÚ?¾x?‡ð#?Šwñ?,©Š?'_"?„‰?€°h?7“g?=Â4?ˆl?kÚQ?3Ö?0ž?~ I?Œí?«éA?°ì5?©ò¼??(?—“R?Ã_?ÙäÅ?°r¸? »y?bä/?F a>¯ÇH>g½*?²š¢?ÑE4@#2Ö@(u?ˆÐ?ÐÓ?«¿Q?²–å?÷îô?íÿ½?½@óÄ@EäÈ@£?„}L?¼=ð?ÿ–?@rÞ@ Õy?ö¾“?ëjë?‰Rí?6¥†?Ÿq ?»ç@ 7@¤"?Ô³ý?Æš-?‰i`?„b?Åþž?Ï}l@8mŠ@1h?¸%?Ï„@^ª@ ‘@?»@d?¬ëå?…xç?¡ò?Æd.?Æ^)?ÆZl?Þ*?ð‰Æ?ã½M?×d©?Ÿ£¾?„)9?¢»œ?­ Î?Õ+ñ?ãœØ?Ðy?Ã"? S?½?=?—r?™[ë?›6?Åû?цX@ +Hž?÷{{?Œ?¿?nto?â±?0£o?„¬ö?3‘¨>\XÖ?‰U—@É5?»õV?mcÓ?Á…¾?õðú?nH$>®TU>ÿÁ³?w?êd@Çñ@å@LÜ?šÝM?ƒ†?ø¢@}?µ×o?²×°@4¸@6wà?ƒbü?ƒŽ?h ?vPÚ?Šl?q²Ô?‰º?âv?Zi?…¼I@*[?íj1?ƤÈ?¾Yn?¦†š?ª¸û?®ì*?§KÞ?#¤?²ë­?ÄcÎ?×J¿?ã/'?Ûêš?ÒÀ³?…•?3_ø?á?œi³?¸øû?Í[2?¾A?º#?µßÁ?¸©ò@-îC@?}?Ô! +?ÀøW?Ž Û?>‚?9™?IÏN?¶N»?»O'@{J@æ?@»¶@r@Û@΋@Ç9?ë+^?…/?”­ ?·¦v?¾.?Ùö?úæ­@"^@4è@f@$YÚ?>©j?'j>Õä?,¬Ø?Âiü?ù.h@‘2@7×€@UÒG@4¬@ø?ÏH?[C?£NË?ÁïS?À€\?ÊUM@”@æµ@%¾K@<]$@.½@þ?ÆL?z€?Ýg=@ R:?§@?`:Š??%¬?£_?éØm@¡¿@1éõ@<¢g? _k?Á£?̶•@hÚ@&ëI@0~Ó@78@3·@G9M@XDR@Ëw@ +_=?ãuŸ?Ï Ì?×B?e’º?™Ã"?h{@QB@u¾ˆ?íÁ¹?›.Ú?¥–´?¬å%@m@â@+Ú@´@¿@ñï?;xê=ä)P?ÀW†?þ˜*@GÎÿ@a¯„@P.+@DØV?ý F?Ìý"@ Ù@rv?“,î?,JÇ?ã‘L@Л@&SÏ@-å:@7Ó­@:tº?å_+?–‡Q@ üŠ@3̦@KPŽ@]”­@l3?²¥?šu4?…k‡?£¸?½,[?½"?¿ì¥?¬>å?œÙ¢?ݾ@‰ð@#Qã@5Ûà@Gõ@`»”@-ׂ?¹]5?Æ%~?õ¦?þéô?øÂ3?ô‚¥?äáì?Ù9?£ð'?Ȉ@( ð@-T @DAö@5†>ÍlÖ?2O?Öž5?ͧ§?ÀD¬?»ÿ‘=M{J=áú?y‚ˆ?„J?˜Qò? Žq?àcz?èEF?×!?Ï.}?²4#?­Ù?¼Ø?½ªÁ?õH @ +$9?ÔÞA?¯_?­ƒÃ?£V?–Ùú?‹×?«]o?ู?ÀNy?vÆ@?¾(@6ƒU@+s?àX?‡}?’âd?Ç?¸vJ?¹?@;u@L?ºÔ“?º‚ @mY@—Ü?—p¼?tÿ¾?‘_«?œÖõ?žþ ?¡$?T'|>ÕÜæ??>½Ÿ?)!¿>óî:>û?¢%?Š­™@TUï@?Fb?sGB?v«ì?­¦?«R-?µPÙ?¶i?§Ø?¡öƒ?Í?Ù׬?ÊUŸ?º¤Ž?ÂÚa?ɾ¸?Ó©?áà +?¥'Ž>ñjÃ?hý@0Q@ 1 ? cÖ?O?x]ê?sœÃ?°5°?¶òy>œ½=hý4?H‘5?åí?dý?-?*?“µL?Ö#¥?«g…?_Áþ?@Îò>uæm>›X„?'õË?# ?ýB?îÁ>?’ý?ƒo²>Ä\=î?døm?µ +å?²»ä?²Bí?Ä¢]?ç?ÜDë?½8Ý?¿”I?Áí1?ÄO-?³)y?±†H?¦3?¬Ç³? ‚s?—{Ê?™ãz?œPa?‰oÃ?Lhó?‹á·@‘s@µ>ëk<>ëV?auà?tVì?.‡À?'8Â?³N@?ê·S?øa @)R?þñ0?ÿÕã?ñp^?¹`?’?ª>ÜêS>Ài%>ò>áÕ?fÃ?Ú«?…Sh?yÞ¼?#ÊW>™Ój?æ Æ?àŽ?¡VÜ?›§·? NÅ?Ÿ“#?ì^?ˆ?Ñ?…=ˆ?†‘-?Äé@ j=@ƒ¤?çÁ%?ç¬?Øæ?Ú5†@U@Õô?Ôê?«2?xPw>ç=? Ì·?Vøê?X?Ÿz ?œ˜?»Šð?ºcÓ?a7;?*Óü?“xË?ÎK'?¸Êˆ?…cï?‚΃?o¥â?Rx¶>6†=°å¸>½/[>êBƒ?8Õ¶?eÓ?“ç;?¾òW?­Yˆ?†m?}"H>åŒU>å}&?C~?;$x?H²>å`ÿ>þb˜?ñ7?Â^>ù>ÿϽ?hqÅ?~)?Êj1?ɬ?äV?ôè??ãã?Ï/þ?´øJ?ŽŽ?¨lŸ@ +Ú@®¡?Cm>åKp?ÞHÖ@ "/?ù:n?åDî?ž!? Ã???ŸÝq?™ä??¢\?8í}?x}¸?‘¸æ?ËQÉ?×N*?‰ÍÜ?(ä?ט>æ8?1Ì?âæ@?ßÔ3?†]þ?”‰±?ƒÅ+?‚É ?q%ò?R”!?Pêõ?jøó?qx7?gLp?[Íh?)t?V>ÿ‹Ò>ðÐ,>é—„>öP>íx>èc?+K¦?Chª?vÊC?”r ?œH^?¯0?ªƒT?žôA?š®]?Gçó?WÌ°>ëvä>ü£u?*4?T‚j?»ü?ÈwO?¶¾þ?± …? Š?P‘?_?ùw?>í²£?k>?mYf?9Ƀ=U´Ê>{fÄ?”Ý5?Œ+Œ?26?” +¶>Øà->µŠŽ?Œ%?§Šþ?-õ^? "°?dc?wtÿ?i|Ô?]5ÿ?Lë?rwu>4ß5>ÀDb>öo>U2o=À.?ƒ¿?³hf?¹/?°½T?6!­?F=Ô‘Ä?';?4ý >[¸h> yŠ=¿ã·=P¿«=KX>æ¡è>ÚÐè?­Ï>Õ{>a׳>‡E6>Ðæ>:‘—@FáR@{¹”@•¤Å@Q?˜J?¾˜m>Û·>y¸>ii÷>èÅý>ü»…?†ÿ6?›úE>ë3>”rj=‡îp?.¢¯?f'K?m€(?t×?zˆÿ?qds?bÅx?T+J?O‡û?f:‘?{€´?|i–?S_?<ç_? è/>üjs>‚¤T>k?:Ê?|km?-?þë>&¬£=\Ø=Ž)@=§°?D?Y¤“?R²ï?KÇA?M>>üˆö?=–¶?Gȧ?`úí?|™Ö>¼¶í?XBŠ?´€;?¿å<Êç ?í?l#Î?eo+?^Àé>Ýý2>-ßà=¢’²>ÝC?D–Ù?:à/?)ÃÛ?v\ç?ŸÈU?5r>KÉî>»µ?‚?Dê?u—?(¨x>ÓóN?kU?B¨?iç[?pÄd?ů?˜€\?Ín?‡Ÿ¤?°îE?ÓÝð?ý8š@í?­îj>ê‡X?,íA?yýp?|è$?w à>Õ‰Ó>â1¾?>FL?1ãù?%Š@>„{Ô?]ª?Ħ5?—?[8¦?=íõ?;¥î?+žÊ? õ?B1?l‰R?ò@–ž@ +3É?ø™¿?vJ¡>ÌÎ>˜$>— 0>¯>Æðò?­k?^?\¢?‰™Ø?˜>ªtí? æ?ù–>j=˜”ä?EŠ?€CÂ?°…¬?¾Õ@?,ôæ>âÖ#?u×?¿Ö?zâ?šŽu>0ͤ>ÁÚâ>õW7?4x?'ˆ§?J ?U?ª9T?°µ¬?"Ø@?jä?éä?Ã…?€øô?ƒá´?Á?ÉQ(@ !h?ñ~³>©vY>å=²?P(š?‚Ø?é<-?Óûò?„-—?†~~?ž¬?¦Z¥?ÒC¹?¯ëó?‡d?<)D?ŸhG?Å?§²>§l<—ò>ìžS?ÆŽ?™žP?¯¯??%O>tPÎ>Ï.®?ó:?3jÔ?OŠ>î®ë>…ûï?Œ/º?ºcC?|??V×Ã?Tn?Gî1?Áiw?àU>§=Xz?© +õ?À·C?†ë?…øn?·+è?¶¯T@ U9@7‘?³2|?®²?˜ +?”n8?ð‘?‹zT?¥“? Ze?:7l??¶Ž?X¼ ?5#>ÏËÉ?FYú?¬-É?‚³²?ê;?ä®? ú;?S_?†#Ø?z Â?e¯>€°=Ä(”>F¢?¤?šÒš?1="?9U?6â™?Jò?š¦ö?”ÿ?Å/{?³¶>šôU>˲8?v9@?…Oø?Å`a?Œþº= ¨L>­2?† ¨?£x’?ÀÚ?Õ"_?è.D?®ñ)?ƒÅé?™Äç?¬•ø?……i?i9,?¢od?»ë@ ñ'@Éz?Œ¿ä?q>Ĥ²>´\¶?r\Ž?iT•?ªë~?¤ÿñ?&Æ0?΀>øô5?[R?ߥ? Gw?Ö?JÑ?„-?ŠL?“šr?G¢W>òáu?ÃÐõ@ >m?µIÀ?„E+?â™b@ƒ~?áJÒ?ÇŠv?ZŒK?/0*?)öø?&þÒ??^~??›ƒ?˜_×?“¢ó?ŽåA?³*C@%1÷?íÅ=.x>ÊÛw?„s?¼‡o@uÿ?Ø:U?¢GÀ?‹„%?‰€Ú?Äò‚?â\$?ä·x?ç6?€(³??Ù@Éä@…¶?.{{>ïÀñ?¦eò? [t?oÛ?‹ƒ@\ã?öËI?ÆÖ¬?ê³ñ@$!@?„?„‘ ?„?-zµ>®§‡??/@?„‘?Ÿ§ë?´0?pkK?=%”?€ +!?…#?€”2?x O?œ"?‘ó«?.?p?n?;ý¾@±¹@ <?x#Í?|§Å?€“ø?®-k@ æ@,@)†?ê÷ ?—r=?ÜG£@ x+@§Ÿ?öƒ ?K?-H9>ëmÌ>Û¨?¾&?ãìõ?mJY?Y¯·?ƒ»ƒ?ƒãý?€Ð$?‡c‚?„`_?‰X?¡×?—¬?„V^?oû?%”“?i¢g?Ä.²?‘ƒ,?!ï?éì?"°‹?—OÕ?ÒXÀ?–c?f„ñ?¿`?ÞÕ”?¬+?Hl@ ó@ñ{@O!9@UlÔ?–P&?skò?«? “?ð£›?æXÏ?µ ?ÎÿË@$öe@[G?Î0+?¨Kt?³{?žÝ,@$'d?ô=?u??ƒ‡ï?•´Y?ˆ@®?mÃ?¬´?×%Q?Š'å?0 Ñ?`³k?n7ž?¨ô‚?Àkº?ß¹?ä|\?Û°¯?Ô h@"Z.@%T?ná2?d +?‚L>?rœ¶?oË?[s=óͳ>Ñ$@ !?÷3?Ã.o?åë?9x?j§@.l?êï?·'? ˜4?ƒÞ?Áƒ«@̓?Õž0?ªEþ?¿?|ŸO?©ˆa?È%Ì@C™@A‚@æÿ?ï5á@Ek@_[Q?|®>_?œ?p7û?Œaâ?20?È +=ߦÓ<­[Ë?ò;‰@Î@ä/@W,?陼?ßQá?”X?œM@ +ýv@ +äv@:C@ Iä@5ªì@'ßF?¸¯7?³pÍ?}äJ?•Ôu?é4M?Ý?ÀÚ@%Ðm@ºÜ@œðÝ@¢@w“X?ùgµ?ç¶B?ÈqF?É$?ǹï?¦Ä)?ˆ„o?“S³?¡Û¦?¿°?×by?¬+?_Â?¾Z?ï°Û?½ ]?“Â?øã@!t“@·g@œÇ@®@@O0@¾\@2@!?”‡ñ?Òï?özÝ@(9©@Í@Õ‰@K@×°@ @¦?mºk?š—?‡p?¡ ?Ê +c?Ù†?Íc/?Òm÷?ÔЗ?ÔÏ_?¶Î'?±~5?¸÷µ?¯è‹?žåž?¢ÕÃ@&ü@FÒ @=bà@6kS?Ò*Ì?¤ÅÙ?¬ 2?±l@*;i@Eµ[?—~Ú?¦‘@+÷ @YF?ù•L?Á?ú1Ž@¡±@ ·ß@È~@õE@A{?«è6?Ši?²Ws?¹'m?„âF?jö@;=@>˜I@>É@A¢u@ c?Õ¡±?í‘d@±Ú?êÛi?ÝüÖ?­G’?‰€ì?¬4?ÄX?Â(&?¿þ„?½Û%?½ ø?»g?·Œ›@…y@37@6‘A@<¤E@/œ;@!œ\@Ê?©ñD?¡n?‡}†?–B¡?¼ä?Ì¢š?ìÊn?׶?¬qŸ?Í_x@#ÕU@Yì?uÓ?K«ò>-b—>èÀ@Sæ!@RUÎ@ ^@1 ?rX?iï”? Xb? ®r?p€?xÏ?•£ä?•„@%û@Ì?Ž¥Y?¨e?ôŠ]?ÙÈñ?ve? zÂ@+ùš@%m@<@ ?¨"G?®©E?{z”?us‘?ΆÆ?âÛQ?l<û?7p%?;ÊÐ?@"Å?À¸?¦ ?å2ú@%Â?ª)?9¸>å£Ã>ó÷½?y?cø ?…Ü?¸8?½Ì$?±àÈ?¯âý?¶Ry?¶=ê?ˆúî?‰Fz?Ôû3?Þ%B?•õ?‡mæ? ‹?²~¾?Ü;Ž?ù„®@ži@ "å?È0 +>ñt ?Ô?*ÜŽ?.Œä?q¤?v¨n?±Sb?³‘½?´m ?´Xm>sF?sÚ?§~K?¥ãˆ5>å,ª??œç?F#c@S¼@[ ?àký?¾l§?,?{¨?Ày +?ëü?Ðzw?²G´?´¸?¹6”?Äh?áN|?Ú¹[?±Êð?±¸Ö@j²@ ?ƒ?|NÒ?2E?3&c?:DÉ?‚Éò?žò?~â?mðn?ƒ+ +?ı?¶Ló?ˆ?Í÷?d1]?k&í@#ŠÐ@8•?ºI?=í»?¬Â‰?û¿Ð?ë-Ö?Æ~?ÅÙ»?³0?¯ ?ö)K?é ˜?á4?r•˜?ž·z?¶A?§«?˜£?PN <‰;ê=·âì???I^?wû?}:?§˜P?®Xú?Wßû?:h?-šI?36«?‘Q<@èè?ý‹h?¾Œ;?Ã÷?Ÿvý?¡Pï?ÂdV?Áâª?’ög?ls?¥±?ÜèÅ?­|x?{? s?-ú.?9B@?¸=Û?ÄV?ŽFˆ?fB?‚ Œ?•È!?Ÿˆ|?¬¯L?Ç5Ê@&éÛ@(W¬?ª6L?©èË@€@ Fß?¯šI?eȘ?Rø¬?GKì?vÕ?¬6f?§~>å‘W>å€K?·Gš?ÏC ?pÎd?Ó‰?+êÇ?QŠÉ?e•¦?{Žã?€å‹?â½ã?Ü|¶@Þ¶@ ñ³?e÷ ?åî?q ù?¡Ní;8>åO€?‚í?ð?Ì8‹?ågz?È2?ž ^?…Dá?)ŒÊ?Ns€?á³ÿ?ט±?K[¤? ÖL?Ã(ò?÷_ä?ËÝ?š8o?_š>æ´>¸Š‹;þ_H=ײT>ÿê‘?ý?[Ü4?fµ„?‚pe?‹° ?h¾?ˆ’—?ƒTÀ?†¨Û?Ê?­«?¨8Š?gÒv?góu?§ÿß?£ŸÄ?Ãh´?ÂÌ?`¶\?`u?b‡,?Ç?žËN?¯#1?¤r$?ƒˆ'?[Ö<ƒ>ë<^>êä$>ë¼>ëTE?‚±?ü?¬Öp?±.¨?’"L?ƒ“3?o•Ë?Oîš?(¹à>ÔØÜ>ç¡ë>ðèk>õZÐ>Ë·¢>¸[è>ÒG,?ÈÀ?,Ë0?8—õ?pØ?q+?Q’­?ZÖ?¤Ÿ ?±Ì?~ô?s[y?Òš?t?ï @çó?|s|?,>±`f>©ç?>ë­s>÷ˆ.>/–’<>Cû>äzw?K*>>l> ®I?XLw?Q„À?ÿ%?W?'zt?Æ>ÙI>Ü0;2rÖ;Î-ø=“t +=ê%H> ÍK>ã¡>:Úæ>´®)>†z>¿=x>«§ð@ šå@+¥@„A @/ÀY>Ýç¾?‹U=Ž_b?7:%?Nä?6_„?:þº=þnü> •þ>Ò3?ùø?q‚=Ùž`=_·D>é?³™.>žy>¬ÁÛ>ºþü?SSˆ?|c½?lñ¸?sœ@‹?@g3?¡ä?OÝ5?(”ù?"uk?aôì?|~÷?'U>üˆg?«O +?äFÁ?†ß;?6ÓN>‡ö>‘=>íZØ?¶¼w?óµ?=·>÷È>àF;?Û·>{#~?5%ª?ˆ¹7?/å²>ý …?Á?¨|?d/?aœ?wûè?¦dJ?²Å?»R­?"‘Í=‘AH?ŠQQ?Üq5?¶±Ç?›:?”Â'?–¼G?tËã?A·?ÑÖ>ýÖÊ?GÄg?}î +?­m?̘“@Ô@JîM?Õ7+>þ6ð?Nk?‚>÷>Ô·P>•[=>…27>ž ²>¶×Š?Y ? +ŠÖ? B? Û—?H)L?x,Ê?+^L>Ã:7?Nvq?‰Â >èüS=ƒ§}?&àÀ?ƒÖ¢?‰¿%?Ž“Â?¢iß?¤ÙP?“™‰?…}?˜÷t?š,Ï?&3Y>ûœ>°9>•X{?.d?V¦M?B>;?DÁ©?Ș?9ó?d•?€IM>RÇ =P"?ö½7@‚õ?+½>\ù?0¿É?N÷¢? ÷?›µ=æcž?;Œ¡?]‚!?dèp?W±ú?¤“/? ÀÍ?gZÔ?j>ãÆ2>úpâ?z†d?ì?„_?”}Z@—«?êj_>‹×?ZÔ?oN?´ßƒ?£òœ?<3ý?…†'?Ýì-?¢øe>2R>¡Çº?#÷>ÞL!=³Øo>ˆ°? ."?w9+?Â×X?¿ ª?½èb?¿BO?ÂÅ?jÖ>ÅC?(Õ|?Yº/??J!?7j>̇¥>m?mÔ?± ö?>Œ-?3?˜q¦?²V?X“?14¨?ï?]ý>÷ Õ?7»?Þ? )ü?‰í?‰<Ê?`Ëž?ˆª^?ô-û?ñ›4?ï½?Þà?¨… ?œìÉ?‚ÇO?sMú?NéÝ?%$ >­³?GS_?³dÏ?ŒÏE?2O? ¸I?ß5^?ëÛ¶@Ív?´>?ƒ!Ô?5¼u?ß?H§?PÌ?Eè&?;¼Þ>Æ•É>¾p?Ÿqj?¨% ?Rñ?@ª|?ÌzJ?Ìx“?”ëC?™ä?–ã?·¡y@$ru@œÉ?Åd4?™ê? ½\?iö?ĺY?ÄÑ?ÅŒ?æ™±@Á”?½JÑ?ƒÉ}?¡‘¤?± ?¼ ›?ºý–?³œ?¬9|?Š4?ˆâ×>¦«z>L¿Õ>9$ñ>4¥]?㈠?Þ;ƒ?9z?Le?½¡m?œK´=æôe=C…<0>E8?)2?:9¨?„/•?$Xv>y’2?.Ê?6Å?·vH?øáØ?à¥?@fE?w…e?„N+?Îð=?íì"?±Þ|?±À•?‡3 ?…u9?·ùÃ?ÃõC@<¥@ +ÁÞ@iC@3 +@;J?óˆ‰?ºÄ?¸Fª?½ÀÛ?ÅÎ|?Ô_Ü?›"¤?Mïœ?w¨?“7?’#d? C«?¼À5?ÆÉž?r±?N»ª?€÷ž?„Š×?­Æ"?³5©?æB?ßñ?8, ?SyÏ?Ï!D?Íøw?Î)q?Ü1¸@š?Úö5?„”%?¶Í?õ¤?o€ƒ>¿Üx?+â?® ‘?Ù‡X?ˆÙá?Pba?–2?¥‡ž?/c?J¼@¿ó@"v?36_?+õo?'mZ?:ê¾?­‰?šPö?‹ò? §¡?Äß?h +ø?Çm›?ÿ:@%¦Ë?ë?„ƒp?‘ï@? ”Ô?Ãúò?Ù@¦@éa@._q?Î=?›$?†Ý‡?„qñ?ʼn?•V¶?„´?ƒ÷?9›?4ý0?—&1?¢ƒÍ?ìÿ?ÔÒÞ?tá?£µb@•â?¾¬-?Pç>ú<Ñ?@?…@ à@nw@BrÐ?íÉ¥?ZÍ?Øx%@5-?óy ?Œ"#?‡á?a±?ÿZ@.û…?è)¢?˜^&@µo@FËû@UN¶@aS@ŒC?» +*?¡ú$?žšð@ÄÌ@!!û?©|‚?Bæú?Yë?hμ@VV@ Ý@K“E@]Ú@ ?ÀÛ?ì[ä?ô @%À@0…@mG?ô??æ¶?ßm?Æ0£?ÀC(?Y¤?1½ @®a@ ·?fËh>ÿä‚?œ2?ª×h@ed@õƒ@Ï@ Æ?¬µE?ß?‚ ¹?#‹?«øà?¹R}?>€ ?^ø=ñ)=YøÒ@W .@‡,@4fË@¦ï@n£@×»?¢I?X5—?öŒ6@5?í.?Ð=G@ +v¶@ʱ?ë¦]?ÍfØ?¼Ÿ?¶O±?Ù¿4?߇K?´ +ã?œÔ,?¿âÊ?Ó}J?壡?õª©?÷§~?ù«H?ûÜÇ?ú³@+ ÿ@Q@ã@)Îm@©P@ ºW@ Äü@Õc@t@ª)?Îdç?ðvü@VZ?ÿX?¼ =?öÞ\@;üv@#ŸD?˸$?ü¾­@Ja@OE›@HÖy@.{U?‡ƒõ?š~O@î@™¿?¿4ù?»Ï­?¹#?¶Ð_@E•J@@Æo@&÷š@!O“?‘À|?x¤-?ˆE£?’ý0?³mI?º-5?‡õ?s6?ä­@ Ú¥?ë +?Ñ>~?c`u>ªÊÁ?-w¨?rÐ?·±@ +¼€@i]@2¥@åo?µ‘Ì?‹1`=]à>®cñ?ÌÀd?éâ<@L.•@G¾@mh?þ$U?+¿?&Ø•?¹€]?À]Ð?]ba?7Vç?2Ós?.KR?¿~Z?ô£Ž@&Ä@Iö#@$ë?ÿA´?­Ð²>Óõ…>­žz=à›­?Î?òîÄ@~`@.ê@%áê?¶Y³?¶C–?¨}Í?¥½Ä?é{u?ò—Ì?F1Ñ>ò^î?€gî?˜/À?·¾š?Ïdþ?±\O?œr™?Š‰ü?;{K?WOý?œÝï? ‚©?–§?‹Ä?k]b?o¯2?sf ?wö_?\ïS?N©?Ÿ*?´ -?Bí>Õpz?\ZÅ?88?Öøu@Vk?ë+A>ÿŒ?)–?%•4?"é ?Žm?“J‚?ñè‘?ùm?Â]{?²¢¡?´ºý?³Î”?”vÂ?s‡w?Oÿ?Ê)?TÉB?¾ Ž?ºfÐ?ˆØ?Š|‹?Î m?Ùú?ò€L?냠?]5_>ìUì?„ÜF?Å…?â^¨@/ @)¡@v$@ à@Z@Nð?Þ>õç8@.@4Ç? +/?Q?{—?™GW?—¹?ŒQw?Ž:?m˜?š› @*×@ŸX>æKX> ;r>‹!Ã>Ž–h>$ø=Rñ>Pm>î@è? å¥?b“?Y +í?i)? +·¶?È#Z?×é ?ƒsô?Û&?KC®?µœ(?²“?‡’?„Šo?g§L?gB@O@$ÕÝ@+þ?æHÂ?±ÑZ?xªŠ?‰?™2{?Ž“ ?GzÛ?A¾?ý@?6‡?Ùœ?ÿø±?Öÿ1?´ô²?Ÿ©?Œvã? õ)?ìN?úN†?]—a?c? »? —7?K¶U?eÌ/?”À?¸û?¤Ùª?ˆ š?Œ ?“É^?Š¥â?¼%ê?Áä?®Ã§?ŸBR?[ý? +Ñ?‡Ý@Žô?ú•”=¡ ->5 ?2 Ú?R8è?ÙÖ ?ê-œ?ÇÎ^?³íï?­]•?«ñÓ? Ùf?eC¢?fÄË?wZ¨?V³u>Ä"‘>$Ëk?a°¼?­Ø$?–¾“?vSÑ?UÅ5>å†ß?)kI@!FÛ@™Ã?äþ?sQÛ?€Šs?‡tB?È.·?üÌ4?»ÿ?ªE?/Ìt?©Ãu?˜ý»>æw³>æˆÉ?“ìË?šg­?EÖ›?'/?š?Îç?Âk_?­…3?£l@?÷?•ý|?gÛß?gþ½?n|i?vH?ˆ'?‘zn?Þ@)?îË?¤ƒÜ?i4!?ƒö?š¾?§¢I?¼5?›ó(=þÅ=‡Ž?­f?¥®:?_èw?P¬>½™w>¬j7?i£ß?“þ’?Œ"Ä?t]¡?Ü>ºÍ >k=Ôc>¥¿Ä?iݸ?a‘à?Y2ç?9„®> ú>®=?7;?/4ê?Cˆ%?N=,?K˜ý?0±Ÿ>ó°ð>òÅà=†(x=ØŒO>ä!¯>ôJ@?†`?£™³?Oý'?S/<>"æ>Ñ>÷½6?¤ÃE?¸?’?}WP?e6Q>ØÁ[>©V)?µ¨?œpr=\µX;œð?8«ã?Aë.> è?yª3?8LÎ=ÖW´>un>ÿh(?]?L>Ýjš=†éU<"®i>É«a>Ú3¢> ²>#Ù”=Œ´à@ @.UÔ@¸Š@Í>ùk{>üÀr>ë8>Ú½?Aã ?°Êƒ>¼Â?½ŒØ?¿HA>¹ø]>D¡i>›Ó >‰7ì<ýL5?Aß?r·ò?dC>ë}->k%=·ø?R’ì?|O’?XK5?H\>!L¯>¤¢>¶"N>ÔcÅ>»ÈÑ?dq!?†½ >’ûÐ0|?$Þß>–™>=Mö>Ö—>üuk>ÈóÅ>Íæ¾>õ—ô>ü…¸?c `?Ž2Z>ðó²>.è=Õˆ=ŸOÒ=ªZ=Jù*?)ª?„<°>¾I—>£]'>üà‰?S,9?q§?Y¥‡?m·¢?0;”>ý?‰ñS?À)d?x?a°M>ãЭ=æô`>¡I>ú(ƒ>N ¹>Ù^ ?D§U?oÅ?æ_?‡(Ð?}±`?)7 >÷‡Î>¾Åb>•Q[?Ö3?V`â?ºK³?ð—ˆ?¹g ?o~?A÷ý?Ï>þMF>þZh>þi5>þs‹?¯¿?¹œJ?;â3> æ”>¾B>í“>­kÀ>_m>FîZ>.w´?S=?Ÿäê?ž ?¢‡T?‰áP?x2’?}ü?n¼?0L:?´„?m¤‹?Ðb?þ»>ïÁÅ?dè·?Øæ?Üö>€O%>Ê;Ô>ÑKì>©êû>¯3œ=ª‘®?I˜?"H?lY4?€N•>7bñ?–è?Dpî?ñÙh?ù¦N?|]G?Xâð?‚V˜?õ€?°jv?£l> k>W»)?ŒÉ¬?–ª]?Éõ?Ððß?Zv?ÜE=â=‡Še<´Š=ƒ4³? ? œr?“ôû?™â?”³t?·ð?*†?SÍO?§ÁP?ž ?Z?6(Ð?°Ñ/?š˜?-+?GÏÆ??y—¹?XAÿ?Rùì?mù?ºõf@ì4?ÄW}?†ý4?‰½É?Œ8?œÄ;?¢¾…?*œb>«ïÒ>ë”™? Â?j¼£?‚ô?LC?8ëx?Y˜"?ZU\?;åV?AÈ?Â"u?ÎÙÒ? þ>ìŒz=Íû¡<ž +?w?;?6±?‚n?læº?sY?¥j"?ªµÒ?¯ü^?¯]u?ž¡ù?Žån?E(?YVç?o?2©¯>®þ¥?.fã?“¢n?£˜Ì?¸öó@÷_@R6¤?ØÀ‰?Š¶?¡q? +c›>N=Œz?KÒ¸?ƒÍ´¤>—á¬>°Q>¦R¬?¹6?Åj?£„?¤d ?ƒp$?yÐm?|B?:¼ü?êþ?íÌ @Íè@?Î9 ?±£§?­K?‚–Í?„§;?Y†>‹¯?3€?™™ú?`þ?#“?0?ÅÁ³?š?V—?î$“@ç¹?ëIÒ?Ùn·?³ü‰?§ˆî? +¶?Ae?„Ó?‡jÙ?«Ã/?©7j?„Ÿ?¤ÁË@‡#?φ?¤>ÿæJ?*Í?§ú¥@Ó*?úÁ?ÉP?¹­?±Å ?¾ y?Ægg?„Šè?L R?–ƒo?£r>É9%>RÌS>?¶a>,¢ƒ?gð?„b?„d ?žc†@8=@33ñ@ ÚP?ý¨¥?Åûk?Šbž=Ñ™š>!qD>Z%?)AL?’Ij?ƒÊ?dC?¿—®?ñÖ}?Þ4Œ?ÑK†?p@[?CQ?EÇ—?>¨·?Ç?ÍÁ?œ_É?™”?¸Ú=?²t˜?º¨?Ç/@À@YÆ@ j‚@tý?†‰¹?`Âs?»? CA@—Å?î_|?Î%v?²3? 55?ÇŽ?ÞÏå?ºt¶?ªgÅ?áJÔ?è]?ŒU ?wf˜@êQ@KN?šx†?˜2u?•îÉ?„´?>ÕÑÿ>çë¾?ˆ?ph?ý³L?í‹„?ÆÚ¼?®‹Ã?“î–?bèK?Åd??2? »?zÔ?—?Ô€?÷¹C?ç’å?â9@âç?ùêÖ?Öì¢?­H=È¿1>žbÝ?w…?\£?y–>³;N<µÏä>ÿ ??ƒÜÒ?ðÞ @2Tº@ ë@?ë?Ťî?Òì ?Ûd@"Ì@*ü ?ÂYk?>K?÷U¡@Ãü?¸éˆ?¶Îà>æ¤Ö>³ón@2>U@3þ‡?µÍ?¬µi?à?*ç@?Šð›?|¨ ?ÌÀ? ] ?Nš?vŠ†?ü0‰?ýeX@4õ@É@?ø°§?Ù’?²Ð‘?š.U?ƒá?IÊ?N ?šzŒ?œûÂ?Ì°È?Û= ?úÂ@ ?ÎÚë?¯nù?Œk˜?‚Ä*@Ie@lÓ?ŸlÎ?‚©?ð ?ÿ¼â?Ž¸ê?ƒÕ?ý©ý?úW1@9½«@1Ï?Þ?¼  ?m/?’Ù@\µ@ +I˜?ÙH?îl`@/ª.@'?ª7 ?£ët??æ;@V/@4€?ÖìS?ÉÚ,?¦‡?´Â?ÐãÈ?õ#ï@<{@[@ƒP@)ˆ@?,Y@P¡H@[bÓ?ÿá?C¤l?ÏÛY@«@â @$C¦@‡/@`¸@ É,?ýŠ™@#&q@<Ð(@¶ô?ÿß@*y_@:ä?š >Æ z?¾·­@?æ?ÉW¦?°Ô”?}‹?Jsq@ +²@(ÿH@å%@Ô?¯T?6þ@9«á@Z@!D?Ù—?¤×÷?™a©@ ç@@‡n"@‘}´@u?Ü ?ïí`?ú2O@°ç@y@)U@-(Á?Öéº?°î@l@-W?ÜbÅ?¿z?‹^Ø?(|?…Ñ?…C±?¹r¥?ÂS"?½Ö}?·¿_@Lo@,7Á@M˜”@SÎ@Q¦í@OÖ?Áb?~í@78C@[K@Wÿ@ ‰´@£`@Ñ?§Ý“?m8„?¹"×?ËëÕ@“¾@6çœ@׌?üÔÀ@ +qÄ@á?æµ.?½_R?ºÒ??ºÏZ@FD@;~-?ù°?šü%?í(@Yj?ä[ ?š6‡?»Wa?ád¼?¸~·?‚µ?ÉôY@\ú@ +nÌ?ÛÍõ@)@.N@@ÜB?”]l?¢7s?Δ @D@’h¦@ƒ3~?±\?Å ƒ@)@“Ä@Q{@KE@U²:@QÊ@aw@ ‡l@8ž@@:£Ö?¾½N?©Fú?ïH>øyp? +Ä«?ã?¢!>øq?—ë±?Çš¸?èôÓ?÷«¢?Œ1á>âÝ?ÊS¼@)?ølc?ÂÓ?ïÈ?¹%?—¿°?v?r¾?MC?öå?Óþ@?w› ?o+?0Ëg?UÇœ?¶`?¶;v?ˆ,=?Š@?¯ñ?¤ 1?" ª>òh‰?ë‡e@(h?æ/?¿a?þ…?&‚?lùÝ?µ$?”Rä?¸4?n¡g@#¡&@¤§?Xv>÷¸£?n¡W?pŠ?¦Çw?«G?Œ­Z?…±k?Q2ì?&q“?_Ý?Žæ?°ì“?æê ?»3:>Ú À?z?ôê?‰Æd?=÷ƒ?4@â@Æú@ + t?»fÌ?§Ž¿?ÕÀà?íC @f@M]?Ô¿;?\º?c÷%?ƒú?˯?ȵp?ç?š¤¦?˜¤?¥B?·#5?DJ>ì`.?Œ“?Àx[?§ba?•Úå?•ýÃ?†â™?ŽÅc?äœÓ?é”Õ>ö ¸>ë5¹?€Zk¦?EÚ‹?+÷?¨0?º‡ß?¯’ô?’ëB?‹Ñ?8?ŠŠ?IC?6/ñ?¡B??º0?sªÈ? §?+üê?i#‰?g]Í?hò·?aC>èÄz>è­V?ˆÔ+?—.?ÑQÚ?Ýˤ?c-O>mñb?N‰?Œ<‰?‘H?­Þ?¬§q? Š?|iý?™xb?£à?†ØÙ?hŠ×?5#b>ü­t?(=è?}?~Þ:?fÖà?fƹ?ŒBÒ?±;?Ê?¹Ò‚?û‡ +@_?Ñû©?/O_?&O=“’=zr<>óJ_>èIÖ?—Kç?£ˆº?‚<?eÐv?¼³q@e[?Öïz?š¾?:Rð?ÈžÎ?ËžÆ@IÌ@‰}?éM"?è3?©ï\?Vuñ?»œ*@+`Ö@*è7@ §4@4?û|>åG$?™4?Àî¿?²|x?¦?·#@?Äà¿?µQÊ?…?†(Î@Ì@¶X@#{ @(ïý?i‚l=˜Ê?®›?ezm?•Ä:?Ü®3?ÉwŒ?®W?¿ ?Š9??m‡B?Xä'?y+?‡"?©·ó?ã?×[T?¬¾(?«™å?™Ú5?’É?õñ?÷ö?L€Í>æñ—?}ç‘?­]í?”Âü?|ós?Hõ=„ñÜ>.Rª?oÙ?h(?Ý'¶?ÖÚ–?‚¢ƒ?h ?“Ð?²c ?…=?49&?O>ß?i ×?˜Þ`?ê ?Éð³>êdO?Ñ?°ž?°DY?æ®?P>µû–>çi?l:*?‘{T?­ru?Æé ?[¸*>)Ùù>”¼A>öƒ>šgð=Œ|>óÛ?¦S•?‹×¨>ïËç?_Z?²ûs?¢ˆ?!Ÿ?'º7?ñÑz?ñuã>ôú>òê>áúŠ>ÏU}?P6+?OŠ´?F{“?=U?,Ó¨?k.><îF=å>¾/ >åš}>ú +•?–'? rL?}>ÿ³g>úÞÕ>à b?±8>Iï[>ôÊ;€=‚Š.=ÙѸ>^b +?Éf?c?s>ê[¢>ð‚ =ì{ô=€TÄ=äÝ>÷æ]@„~ø@ƒ$s@‘ä÷@äú?¸ñ$?º/£?v‰?j«?zÓñ?|a?05Ì?B)?… õ?žÍç>Áˆå>œÝ]?Gª>?[gM>º7>Y?¥þ6‹>Ëtd?3\?%Q?˜ÇÑ?¢…|>aéß?#%Ç?P"Ô?`=?ŸMß?¦cÁ?­{;?*ì†>ø~C>û°Œ>ü^>à(5>Ê[?<“Ç?U~_?‘0À?’×d?U‚õ?9äE?38?,.é? ú>üšû?! À?#†]?eéå?€ßê?'sÊ?0>2§ö=–“¼>6µ?PŠ3?–/«?=>ƒ“²>‚„È>“öÝ? *H?%÷Þ?3ýÿ?3%T?^° ?}PŠ>Ït <8>¹h«>ÌZE>¬gÍ>±3[?›•ã?ØYÊ?ây†?ñW?ÓRJ?¾”Ù?\©>þf?D'b?gK[?¬ +?ÐÆG?3Õ>@'É>ƒwþ>†`?°ò?63D?0è§>Â~ß>ÁÐ">‘@>ÿ-x?ÎG?'v?´Š?’—±?®«&?‹ýE?µ¿? Š“>­ÄA>çŠ+>ÿïÂ?g4 ?~C²?Q¡¿?Lß?^‘{?E‹Ú>°÷ +>]ÿƒ?†þ?¨_ô?ˆG?€T>@Ä?Ρ?åä¡?Ù@y?Þ^T@.t)@-‚·>·Z >RñØ?‹­|? §v?š[õ?³X?Ù?ñÀ?H­Ø?=¤?P³¢?` ?‡•-?„É¢?‚–?^2ô=Tý>-?Ýš?1ý?®—?pSê>(Žu?)Tg@¼?í;Ô?¡Þ¡?r ª>—'˜? 7¿?„L?ˆ\G?‘À?ÎŒ @œù?®žü=‡‚?·}$@AÕ½?½Ï=²”°?[ß??·Ê?0 ?CÁà?>¬¥?,|Á?yÙ?ŒU?®G?Ãy£?“|œ?‚+ú?O«?—ÿÞ>¥_>·>?·2¶?Øš½>¿b‘>6ºL?»JÖ?¿­ô#M?ïƒt?Ö†©?‚?¥>ËN>¢Öi>·Ô¹?"ÜY?§æÖ?¦I®?¡AÎ?Š ?h +{?UâÅ?/†‚?”wK?ÔÔ†?ª{?ƒa?NëŸ?aD?Vs ?‚#5?ÇÁ?~|>ŠFÛ>ƒx>b|Í>¹T>¹Œn?LÂ?Uù?l¹Y?zš?¥+?¢Ÿ`?  H?˜Ö©?b È?„Ò:?þjƒ?Ü'6?Àé?„ñ¹@Þ?Âü? +Ñð?=Q¤?ƒ²?» ?îɪ?ÏÖæ?º„â?î¥Ô@ˆ¶?¹Ã¦?˜ì?3£?áé?ßY™@êR@£@Ê?âqö?å6+?6€‚?1L'?„å?¹ï?7óS?BÖi?Œ1ƒ?Æè^@AT.@Ãx?(…?+ý?-å?Ÿs›@ Æ?¢Ñm>ÿKŒ?ÉaÃ@Œë?È›=?àÌ?§uñ?¨³?¥M%?§…g?SÛ?8Á,?†=È?‚hÛ?„?…y?’³?—œÄ?Æ¡W?ôg@YR@+¯ˆ?=ç?2Œ ?víA?=U>äD?¶^?í$€?èvô?ãÇÞ?Á^?³(f?…j?_þT?]K®?Iž=?í\?Xw@Ÿà@ kX?ô[I?òRò@%¹@¶?ª­D?ª ÿ?ÆåX?´nÔ?%þ?Ä“C@$&Ø?õo?}à¨?ˆ ?™!ù?×”­@›Ì?þ“^?õÉŽ@@"éû?ä³?Æèã?¿YK?ÆË6?¬[f?ªD¼@OÚm@T.È?›@U?¥þµ?Ø.•?³#ù=ÌG>|Û®?6î?(‘Ô?ê?‘'F@$à?¯G.?ñ#?‚™ˆ?³t*?^*ù?ˆ”?o­?)Ë«?p+6?„?˜µÎ?  ?‚¿Ä?‚D2?„ÊT?„RÎ@wã@¯‡?Ëä?ºÍ#?)Âv?Šøù@3½Ë@5»@A§¸@Œ>-4¢=Š *6Ú€?s·@õÀ?¤Ze?2Îå?]Ãã?p@q?NH?FVˆ>¨Ó–>'*÷>í¶‡?Î?˜-Ìvë?pÄ@&L@@ “I?æ^`?ȵÑ?÷?)8?Eƒ?~Ìã?Åê ?Å»?ÄA?Àíò?ÁŸ?èb'@^4?¥i>Õ³Ø?'l‘?JaH?矽@» @Š!@ƒF?&¥_>sý·?åŠ@{¢?^B?9 ?™¬Ø?™Ý?ƒ†!?ƒ?ƒ{?…¹?=­?•7…?½Œ«?ئè@öq@›?Ãm?Ö]Ã@C†?Û{¢?–°?Ýè4@$u@#Ûë@)Ý­?å˜Å?ƒe?ÈGZ?øœù?´!?‡iP@ T¨@5 ?Ï}D?P¸@ð@?ç +?Ë ?-o!>ݯ•?oI?‚¬ ?·‘?¾z>?ÆÚX?ÅX@h@”Æ@*@FM?‹ž&? Õm@"9@²@@"å@!-‹@ôM@!Æ@Iô?@.q?¾Bš?¹†}?§´p?̼í@ ÄØ?íQé?÷x?±O«@ç{@ý~@ã×?ïLM?«?œ5'?FÑð?Y`×?§O?„3a?Ž+Ê?R2z?ˆ-?ϸŒ@!Ó @4dú@BB@ <â?Õ£?Éš»?Ç?æ=Ø?ø˜×?ð<?ä-¸@1Ì@+‘'?³5„?P™ë?ŠT»?•s?ã.Õ?ó\a@ªÕ@ã¥@?¢@U,‹?ÔNæ?ŒLX?ær@@5¯@„Ä@$ñ@‡Ø@‘´?ÕÁ¤?€Y2?¤e°?²“…@ @U@Ǥ@ ¨?°és?:ó@$ú@%C @â@z@+T@=Í@!â@å™?Â?±„?|Ì"?kŒ@Eb?¢Ÿ>?æ…@%cª@;ˆ¥?ÿs?êS±?Ê{Š?ÊXÁ?ÙÉL?מ>@ +ï¢@¤‡@Ít@͈@%Ó@.M ?þñG?Ù~¼@*ï˜@FEö?ýæÑ?½ÃL?ÑÄ ?ß'2@Ú1@?ß $?Ê@½?˜û?wá@@Y¡@[¹@v»î@ƒ9„@.e?ÑE½?¨³?÷?ãK„?Ã÷¼@M@‰ÿG@g½ÿ?ót€@ˆ@¢ @ Lv>¸µ>ãåí?姟?ã[0?õ¤?õŽD@q@æ?âJ‚?×~ì?Éy+?͈l?µWY?£®Ÿ?[‡®?—1?Ï*,@‚Z@ 6/?å·W?ÿ>N@lì?úì¢?s H?[‡h>ój0?…º?„z?…^'?ŠH?4?lkà?r§Ú?O>òq +?Ôz@ E´?¢¸ò?@²?Š¾=?´Ë‡?°ß ?¥~ ? ¯?Ž¸£?vY?IK?[BÓ@mˆ„@nëì?ì"?æòG?¹jÐ?´C>éæ?>cJÛ?54x?oæ'?oÎÉ?o¯•?o•3?ovç?o[¡?o=W?|«Ç?d]?ž`?‘Ê?•¿º?Ô4}?Ðër¼>ë<ø?™“}?¦ü€?´&?±%Ž?~`¡?CÑ?_‹n?„Ä~?“ÍÁ?°êë?³¢#?˜÷?š¨ª?9ª?ŸÍA?Î_Q?ßR,?ÇæM?³ï ?˜k²?i{ÿ?üß?ß%l?Æëy=¤h´=ÏnZ?º”u?ÃÏH?¶«d?»€Y?©ä­?‹†?ƒO?~±²?„Íý?ŠFˆ?‘r´?­Æò?­±:?35\? 2?¶*ð?åå?ÝóV?Ôd?žMP? p?0ÿ?Ôä?“?ŸîX?§ß>ê¼^>Lô,?µ?ä•t?ØMÙ?º³ ?¡kõ?#È%?f½?nôl?eøç? çh? :w?†3¼? ØÊ?³Ú›?ÏU²?± Æ?6“0?5tó?i9?uZw?÷¶¿@ä§?h‘>åqu>Ò"Å>ÌgX?ˆŒ|@&Ü@\÷?†È?“YÊ?•Üñ?Žùõ>âXI>¦àÞ?=c?),o?ˆ-«?ͱØ?ÑZ?Î2ø?ÃG?eNŽ?e[?¤iª?¬Ç?¨¢Ë?ž]Ï?Wïê? A?~ü°?÷Ê?Зl?¬Zø?Š%¢?‚ž?2Ï>`Î>¥¿ª?·H?]ï°@-rã@'í?nm?‰Ž?Ô^?Ä|?q:Y?5a•>×9e>†[r?i†?GÆD?ŠhV?×åq?¾D,>ï\ì?¹Å@ Ãô@ ÛÂ?‡w>ë…E?w#³?|-?# ?˜½?O¡?(ï¹?G¨î?\Q€?kp{?o>£?gn”?TÑ??Ô'>µâä>Â=k>?Å¡>ÇÝ/?žÔq?£*?L„t?e“Ý?ß;[?ã”>ò¨€>ó[>ón’>óÐt>„c÷>¦wò?)‰P?7s°?QÄ?pb€?¼Þ>÷/ñ=#€?« Õ?°8ý?Î…>ú>ú•ì>û>ú¯>chW>ü²/>ìå=º+¤=5ô=Ö K>äµÖ>ϲt>ºyó>M8P>ïÂF?eµD? qJ>Î + +>³0?zÎÅ@¦¿ô@§ ã@¤ã9?í¾—=úÞ?þd?øÈ? ¶0?·H>]ò">‹‚Û?¥Í™?¤2>›5h>t̽>Ò®Í>¹4 +>õ >ü/l?¨°ù?´Æt>²ã< tl?cv®?|)ç>1«=Î0:?Šõ‹?”Þõ?”¯>?™nÎ?R§‘?+4g?ê->ü<ˆ>ü<ö>üB?rc? Ù=ÑÊæ:zÜ?D)?oô@?ž65?¢ë³?ÌÔÙ?Ô%;?—[¿?U‘?„ä?|‚l?V~Ï?OùÄ?j¼>üœ?‰Ðl?¬1‰?¶ž?»©½?çƒ?ð?¹¥(?œ¿>¶»?ÊDþ@ t?Rü/>wô;>ÆÝ>Í?Ü? ³0?0ç‘?‰Ô?¤ì\?´¶?emÁ?¤AÎ?¼È¨?»Í¾?¾#)?·ž?±Qh?…1?Wa?9Á„?2d?kSÜ?|+?1ÆÕ?#­?DöH?:0]?ß“@°â?¹qa?r:×?¥wƒ?¾{@rS@#ã?µÖð?~Šø?‰‘£?‘¸>ÈB?4¨¬?r?|êõ?~ø¡?„?h>Ÿ3°?šW?å¬?îÒÖ?÷ôj?Е²?¹š5?æ9?ö•Ð?žÂ?ÀD? 5>ÿÝ?šä“?®ðp?…Òß?õÊ?½£à?½Ç@?Ë ?à&?“ëU?€:¦>Þ¥ç>pŽø?YŸ0?}Y}?}`N?r"@?/¡c?9a ?‰Kû?ÐL@…½@ +—h>ÔmÊ>•íÙ;Æœñ:³CÈ?ÆDp?Ë ~?Î?7?žH,?˜Çš>´o?µ"Ê?»®‘?Â2ƒ?È!ì?ï‰?Ѿ7?m¾\?mÌT?:Á?ÑÐ?¬™ó?—„?‡e ?¢?E?ÂW?Å[?¹À£?™ð ?ˆ?©‚?áo¦?Áj'?¤\ ?rÖÖ?·‘>…Ã<üæÛ?Tƒ—?°Ú'?˜;T?LL?|€½?b<$?vÌG?‚(?“€ñ?¸á?a6?D78??´¸?Vùë?W‹‘?,³%?"JÂ=kg?èsˆ?úõ?Ûf?~N>_@lq@µ ?ªS®?™Ct?=«?G¨?|YN?lÖU?tãß?Šñ?¦®c?nX>S¥­>ز?*:ã?œ’$?õÒ?À± ?ø`?ŸJ?³1h?\Üï?£Ä?^sî?ƒ*ð?éÙ>á*ý?A…·?LÑ>c¢`>6w?ñ²ñ?þˆÀ?·0?¯6?æ˜?á^?Å2O?Èøˆ?ܧt?·\>½ž-?Vx?lyl?£ :?þç­?Ï å?€Q‘?Ÿ¼æ?Ä%l?å#@¾@#ž?ü6 @À@ ûü?‘ðà?.n³> ‚>QÍø?us?ŸoS?‰H­?Š&ë? ñ\?·Å?±B?§›7?dÀi?‚6O?Òé*?Êwu?¶PD?½ÉÉ?Æ4 ?Æ!A?à ?¥g?{u’?£8ˆ?Ñ¡_?{¹i>È?Žø?Qfm?Ô£]?ý{C?·µ?¢Ý»?¥v +?£+Ü?]§m?T›Ð?éç×?ñˆx?bôƒ?oÿæ?ªKD?²ˆ÷?Æ¥6?©5z?s ?DV?“ª>±ªÏ=”HŒ>\¡?€ú?(ì|?XѦ?fëû?u?Lc;?3fA?ª6 ?¾Ïßi>f¿g?ˆ]?–{w?ó:±@úà@.[:@+4j@s,@ê>?ÖáÂ?®Ó?Ð[? +ÃA? Ù‡?~€›?Á+Ó?¾á?¼•Á?^A>îó¨?‚”æ?«¤·?¯ßz?ºµY?TÌ?+ØÍØv>£Bñ?S]?Z£º?ßF ?æMö?ð¨?õý?л +?Áný?†~?‹\?„n?„ k?„l?³=ˆ@¤‡@@¿?Åð ?ØF?r-?[:?õH?’A?ÎÚj?jÅ»>Ò#!>òUn?ÉÊ?ºöf?ñ‹@:eú@LA–?¥¾m?Sèê?}ÛÔ?‡d-?„]—?ƒ—2?Äï?Â;•?^jû?r¿Å?øZ?ºÇË?¹`õ?¼óm?¸æ?„æ~=Vt>ò.‰?Äû?ð@!~ê@È›?»h0?øÌ@#ûE?ïr÷?›Y?Ûï@­u?ùÎ:?ù=U?Š9?¡‰5?ûq +@Rw?þ*â?à^ì@òï@"Ýñ@Þp@@±}@9¥.@3ã@¼Â@)¯ç@½?·;?Öús@"Óþ@k÷@î¦?ó|ž?¥#`?,Û??¬K?w‰}?·;Ù?³4?®Òª?ÜV¤@&û@ç©@"Pw@­ú?®ç@n@cƒ@…?ƒ8??@àY?»[?Fü?u¤N?[£?X ?¹uã?ï7@gþ@%<ž?‘s˜>º›I?:|2?oì?Ó°@uÑ?þ¶»?ô;?ÐÚN?»™(?½i?Áij@@û½@hî@ü@­*?ôäí?ñI@J°@ç`@Í@fO?[_¹?#Ô@0'ª@QÈà@ck?çJë?º +.?¯”Å?é@?ì†S@ \@'?žÔ\?€¦?#?z?¶?*Ï?¥w ?Ðü¸?Õö`@;±F@H§Ä?Œ¾æ?Gßi?[=‹?M,;>ÓèÒ>„…¼@@Jc@×:@™Îš?áTˆ?šµS@ @ôg?ÇA”?¯v ?¤&©?¥Âë?ü5@&‚?¼±é?®:¹@#\@.;K?ÿ6t?âÂ?í¨M?÷3Ú?í“þ?ã¼?§ýá?ä@N,J@‹›û@GŽÕ@µx?µ¡?Bô?×õÞ@—Î@R-@ G?ÌáÉ?ˆR°?¸ î?Þ\š?nB$>Ê™?kOä?ä9;?Ñê?¼PL?Éb?Ûem?×Mâ?Î-ç?ä2^@ G@¬¬@à?ü‘?×Ú ?±þ<>Ò¥¯?*ÂÚ?â'o?ÐÄt?»4?µ‡ì?yeß?†¨V@He8@Bó ?~å°?xèå?!aø?ùÕ?¾mg?Ôª?ŒÇ?xS_?Ù‰P?÷ƒ?ÈØ?±àô?œóL?’s¬?¶9˜?Ëܺ?§N×?‰‚·?³·?ä1?ýF`@,@!¥@8­@'@Æ?öƒÌ@qþ@ñ@R%=褧?œî?ž64?'Ù ?9‚¹?ÌiÄ?Ó¢ó?»®{?·ÝÏ?¬,? O´?Êó?àtÞ?¶yØ?™Ï8?øúÎ@&Ró?ã3ª?Y ñ?bk?jî{?Mß>û!&?H‰B?àGL?ÆøT?ya?íô?—UÝ?’° ?Ç(ƒ?ÆL?_TÀ?<¾%?‡Õš?˜J?‘T?…üî?5ºk>ñÒ?Ch?4ÔÕ?ˆ˜Ä?ÜQÛ?Åä?er?„…?î–Š?ôè\@òÄ@µm>¼¯>qÈ?&dK?5$k? ˆ ?ìV?’iè?¿MŠ?ºwÕ?µ™?”µ ?; ?Sz ?ŒÑ×?ÌŽ>¬þñ>¶@F»@%$@O-@ÄM@êú@{È?­¶?wx«?ñ4@<ƒP@È?Á’¯?½ ?Æ‘?ÁÈ?â©C?çˆ?¶¿?ºÁa?µÉº?±SA?¤×Ø?˜„ ?”Vë?˜¹b?XÐ?kÊ&?ŸNõ@/°A@/9@\$@ -×?»Uö?°M»?ü0œ@ 0û?—×>ê©Æ?0¦?yªc?†´ù?¬ãk?¥Ô?‹§ ?ˆöL?kÙv?iÆÝ?˜óÀ?¥ÆÚ?Ä\b?Ý,¼?ËäÈ?®R?­í¤[]>ÖîÚ?­Ë?­¸=?ÍOt?Û¿@1w<@GÍ÷?Û÷H?À¦?Yú?ì¶:?Êòñ?Au +?;®Å?fH€?f°[?5j.?$s¬?gŠ?…ûO?¨šH?Ùaá?ÜCç?ß(ß?â¾ï?èfÅ?ä_û@[‰@]Ð?A†J>—ÉÂ?\˜d?¬Q…?¥H?“ä?Œ¾²?][?Q>?…=?„08?@£3?¾Í>L?.b?å¹?Ñ“¨?eWk?d¯`?$ë?1°‹?]òß?S[?„ ó?œ#?Œul?•­å?­,?ï@[?ð*?wÍ2?qD·?¡œ ?«¿ª?…Ƥ?qa ?c=ç?L3 +?õì?¿–k?Ò •@‹–@’/?•±Š?—jn@À(@-Åå@÷?Þù@@ +%@+³È@@•?Û_Ú?ÀÛÍ>æˆn>朷?óÅ?þ8? fG?™r?Bîè>ç8è?+z¯?gwá?œ\e?쯂?ÞÕt?°ä?¹©B?h>n?hd.@ù@µ·?Öý«?±ç ?f_T? É&>ë[>é¹Ð?,2ª?ƒ–ú?tT?i}:?hŸ;?Š,¤?–|w?¾£Ý?²3é?¯ËY?±5?1C.?è>GL~>‹t“>휛?k2$?²"T?J³?oÑ?<ëÆ?y?<æ<>‡‘ô>p‰¥>ŒI™>ªx;>ñ[…?¥?r‰?kuÅ>òÔž>î"‘=[,=Û0ð;8ð?83?4>Tlò> W>íA>÷_ª<½‘ý?Þô?êv=çÄs>7ø>8á>a>ª>…dÚ>«‹è?%8??ÎN>Ú84>¿&h$f >w8Ä>„Bé?iÔv?Ã,? ¿M?ûˆ@'õ@„m@®öJ?Íô‹>:Äð@=Äw@2ñü>ü…>óôX; +wˆ?Tº?ή>ý• >ûºÿ?¶ W>¿åy?`º¿?l¼2>øÅö>ù&ô=‘4¤=É_Ý?Åvw?ÅÓ?¼d˜?½3?CÃ!?6Š?u 7?…i³?%€>ü.p>ü/¹>ü5“?G+#?bÈ>@ã*;e[™>Ûª\? Þ§?$k?5‹?_uƒ?zü|?+²>üt;>úÕß? +€?Í×>ü>ŵ >ÁWK>ð€]>ü§ó?\$?|¸?P?ˆ%Ï?ˆ¦@?ŠÉ?&">³¶_?¤l£?âe4?n*>ý"M?,\Å?KO>€S>×$f?rH>ŸÙ`>åƒ?-¶ÿ?~¾Ì?ª|]?¾'I?n\E?4ÂÁ>Ù9û>ŸkÒ>å+>ýÌ?”7Û?¾jª>ý„?©ÿ@¾ ?æ“Â?Úÿ&?u˜à? +v?T7›?Bï??ü?3VŽ>¶ +Z>Ké*?*K?%A…?'R?5?²¹|?ß“s?›À6?'?^Ÿ‹?VÄa?‚g>¨øä>ß:y>ÿTl?ð? y >Ôõ=ªsœ?™ƒ?ÉR«?v¢>y8õ>æ“Æ>ÿç»?tˆ?’•‰?$¡—?‹@“›@6É?5†y>–î?}è?#ó?ç×?ù”8?.KÈ?]©?äË?¹Õ?©>„?¬Éð>‹°‚>|3ˆ?E[?VÇ®?Q¿?J*Ê;L^<ªZ?€ÀH?yX¬>¦¤Ä>·×ù?á¸>ù¿ö>ˆº¿>tK;?%?8')@c%?ë›?‹Ró?˜Û`?· ?œØ +?!ãI?k%×?×àQ?±Û?Âr?qCc?áÌ?ô1@1?çÓp?YÓ`?¤U/?øWQ?+•>’ª?º?G@z?ÖÖ?>vS?:ý>¯˜³>¾|Æ>R’F?””³?®d¬?—â‘?‘ø1>¹‹™>xZa?~æ®?ˆKq@`®M@V¿—>úÁ®? ±?š=?ž””?¶«?£J3?à›L?Êz¼?šQ|?¤lÑ?¯~?ƒ½]?Ó?Go?ï?—]¬?±ã?­{\?¤Í]?ÍÝ?äŽ ?7 7=0ãá?03?ƒ > Ø‰=ŽÄ,?é1™@ÜÃ?bð? ¤Ç?>R°?7|þ?–ÿ?¥ ?\;¿?‡.µ@Eá/@8? ?ád§?áM?ïÝ?ÉŒ±>Ù« >ãÔ?Û\?^•¿?µ3?‹¥? òk>z-=?^Ó\?Ì<µ?­œ?šóè?Ápš?ÖGŒ@ × @}?àÇ?Å¡?²{X?©Í?Š/?øv?mÏu?jxð?Äîl?½Un>Â$¶? ¬?îñ]?ÉKW>é9?S÷ ?ÑÎ{?™s˜? Mº?Êm?@9 r?ýø¹?¯Ñ?‚BÈ?gñ6?K~B?4.7?Ī?úBÜ?„ÕÉ?A¸5?}d?‰%Ú?¯ßp?©Ý@?€Bú?…Ú~?)øœ?!Ðë?kÎ?*u +?´~?žÏ™?·4?[[I?ÅlÎ?¨«?uöÙ?>†H?‚?ëRL@=iô@"ì?ÿç•?zÄ?Zš?¶ÁË?Ù7¡?k¾î?EOà?ÅK?•¶?—5?„G?0(q?RÈ)@$c@"UZ?ü´w@¹H@øW@zY?ÿd)?î­?Äu²?¨4?Švó«K?ôì3@7%V?³Fv?X÷Þ?iŒa?a¡?ŸY?¥®Î?†¡[?„~Å?âX¼?çw=?±9É?â‰@˜k@å?ŽC?“?®tZ?¡ŸS?€óš?Q"–?­§?S =?™Æ{?i’v?+´s?ƒûs?¡ó?°ßê?´†?ŒØ½?‡Ø­?†(›?„‚²?S>T?HË?¤yÊ?¥\²?^?3ë6?›7?‘|A?Nág?—a@#)À@•‘?+{»>Øãp=+}É?°‹a¹>JyÁ?\Á?zà(?À|t?È= ?¢,?¡¼?Ê«U?¿';>©g >âP?„ù?‡³Á?‰?rê!?Vz?sF»?ÉË ?Ç"Å?ÄË@?¡•Ü?~>¡?ÅËu?þ¥h?¬?lâÏ?·<Ø?ÒŒ‡@hâz@‰;Ü@ á÷?ßbÇ?¬š­?¢5Ü?¥j|?žã?R+³?Rz$?ÝÌ +?Ö&¯?TÓ˜?zK@%&=@é!?oW}?Ö4@Ž2µ@lñ™?¾ƒú?Ã#ò?ÄÿA@Œ]@~¿Ý@%’ú?) ü?­GÍ@ + )?á·?bvž?‚×Q?š;?Y\¢?±?è…>ô€?õ¿-@!¨õ@W–@"ã?ö4ƒ?Ú‡˜?{=ì?JòH@”m.@«íŒ@[?×DO@u}Ï@Þõ?¿Iµ?ÃA‚@"P¡@ ƒ”@%¨8@1¾Ñ@‰Á@n?X4?_ê¯@~²@ ­@"Ö‰@Ku?6"™?cÇ@’ð?úð?Þb?çJö@ +‡@@ü|@úq@' @*C¹@)T²@ +} ?ÌŠë@&Ž@Z‚Z@¬Í?Àÿï?žâ­?}ú|?¡g&?»?“[­?m?Àæ?óÁè?ôŸ‹?û¹³@+‹@9¨!?Ÿ0?6ì?š8?Á¶˜?Þ9¥?ó”\@/bš@Aù@±‹@ ê?¢s?€ÞÊ?:@ K?§Õ@?‘?j?Úh?ê„ ?¼ç?¾DÏ?TWD?:Õ“?—:?¡‚?P•?š3@=¦@óR@2ô~@;¶?jg>\ (@ ר@ƒ­@>+i@Aú€@$%ß@Lª@bA@Ò±?È…?·î?c]H?X~ø?=?¯A¨?¢?2@kî@Ú´@a@¢ß?Ûïú@KŠ@¶#@%®É@9‘F@+?X¯?»Ê@ZÖ?þ€â>¿ßq?‰™@’×Ñ@‡÷?¿Cý?ÆÈ@WÓ@F>@™–@ 6j@<év@7bq?£§ˆ?–jv?0ÄÃ?)?m`ò?xV?xÐ=­p÷<鯺?C²@º?íÏy?"¬ï?c;@M‡?ð™v?94Ê?B>…?Æ–?Ì̾?LI?/éo?ÐÓÆ?ëÈr?Êh? -?¸?Fea?RmÌ?MÝG?YÐ-?ŒÅ#?pêŸ?a?ƒŠ?põP?‚A@w¶@d¾?Õów?Ææ?«^ê?¤Ø¦?•Õ‘?‹ìo?ƒ(s?†9¶?«òX?Ñ(p?±j?]Ö§?k· ?ž—U?•c>¾„k>¡gÖ?°B?²èv?ë h?òµ?í\œ?î¿«?IxÎ=®€?‚@Uù?÷`X?ÁV(?³oÉ?o½Q?{ù3?[ý?dãO?*î>ì¬Å?cýè?†8?Ôâ?üÁö?¢£š? ëÓ?ÿL->ø£N?™ù?žŽC>Šw=žd™?×ï¶@CD?ÝJ?œµ:?º­¬?õ.?Ôа?ßV?#Ù?“¡O?µÍ?£Ý?¢fX?÷B§@ ™Ç?݆¢?¬¼?®þX?² X?¿ @+‹Í@*µP?ô=÷?í»`?§M?ƒã?ÀŒb?÷¤?Ú×?¬B?§Ê9?’¼×?•Ã?ä,q?Üè‰?«þ?¢î?,eH>v5?£ ?­B ?Ä_Í@Þ?ûÙ?OQ?‰ñ~?Ä®?Íà?Èp/?ÉÒÁ?Œ½£?Q3?DUí?› ?uÃ?³ç¹?°£º? ;û>ëí½>ø!?g?:Oï?e„?V1Ü?Ff?… @§C@év?eß(?eÓ†>™?yfD?·¹®?”C«?i‹·?ZíÀ?T¯?61Ê?J9–?CÏ?ä3?æÖ?2)b>ËÀá?#;?ü±?1Ü?Ô#?Ì©š?f ï?]@w+@z4?È3?™Ú/?hG$?›¼?}¯ò?ä¸ö?®Ò5o +?§v??£Ã³?Á‚l?ÅÉS?.Û7?0 F>žä¡>+a2=,Âd>¥·? >ðÉ>ýçÑ?‡%?Ï?¥A>èg?E6?7Ÿ†?+¤Ú? ·ö>ãSì>ñz? ÈU?‚ø¶?uš ?nâ{?Z@Ù<JŒ>¡–0>®Ž>ñ¼? †¼>¢†>³§Ü>Çx²>Ûb;ÕŠq=(}Ð=¤Çñ7µ2`=ü?«­?‚}>Øa>¾?:&â?)© > p«>Ïb>¹Ô¢>¤i>È ª?ž?Œâê?ÃjY? +W_=~k;¿è[=£Ú¨=Ìø<†… ?Ýòó@“kà@qj¨@rx?W@n>ï¥Û@O•@©¹>ûõ|>éJ<´å£>¡±à>–q«>û÷†>øöò>KÌ>6ÌL>تã>«Iº>úÆ€>ü =s0¡;éú>çÚ~>à!¶>ªmó>ãÒä?B³·?SíJ>|™>efe>òÓ>ü7?(Ä•?&-7>ÈÏÞ>Èa»=ì˜=,”x=p‰¸>ÚYz>üXó>N¤Ø>+•b>à'h>ütE>•Ÿ¬>^ß`?Pš?(K‹?pH>âè–?'æ%?*¢"?`¶?{,>‰uŽ=°V> ÷g>C¯q>Úl¶>üô7?‹»r?¤,\?,w-?õ?*ý?/qÖ>Ø<>ŽÔ!?'¯?Pl?¦A?¾Ò>áþU<–] ?<\?†l>Åv=á[œ=# f?k?G÷a?gÏ ?‚'ù>ñ  +>>kò?<›?~%?ên>Ñ“'?QÏS?~VE?'Ñœ?#>9…“=bmX> Éka?8Q4?Wºm?–é?¥qz?²ô¥?¿9_?|%‚?K“`?W>2?N'•?šµ?±äÁ?+ñ>ám(?˶h?þ?X]|>ïRn?·Ë?(;3?E]‘??|J? +Æ>ÿøV?>ü¢?H?Bö?<7Š?¯Äó?À;1?o!?[ß??›Bâ?§”…?¾-±?À€]?w›?dý?m,?sZ?Ø?*Cº>Óc>À7Ö?Äí…?¾’¦?2'“?:^a?JLa?>º(?œÈÎ?’äT>²‚ç>»dž?d·º?b2¤?«„t? °{?„?\?~I??&?¼0Ö?È!o?÷C½?Ó\`?a ?X¼I?Z¤>?ƒ¹D?¦0Œ?•Ð[?…ØÎ?cÀ ?‚ô?Šž?‘J>Ìe¬>l->¬=”w‡> n¶? ax?ˆïè?Áq©?i†?Þè>ë7æ>ÓBq>äŒ? „Û?‹'?™?hÚ.?bò?³Úo?Ã<º?^ºÄ?61Æ?PØÊ?[;Ë?«©¨?´(¯?ª¬0?¯…¤?‚ªv?ˆs@ŽX@õÊ?üdï?ål®?‚“?‚š·?‚ å?•_›?Ö±>?©¶>¿Aj?&.Ñ?˜Ì|?‰¥?@ûã?rì?Ò³?†`³>¥¼ˆ>õžÄ?"Ô?à>¾@*~?ª²µ?H?`!Ÿ?ƒˆê?®æ?¶›Ë?ÌŽ”?؇?à??Ù½Y>Ï62> I8?“öÇ?‘Í_?,\?5¢@4b¯@1…?ëÊ?ÜeC?—m?µMº?û ¤?È“±?S”&?C!–?|?B~ý?ƒ²Ÿ?ƒ‘?€Ë?¤nD?ŨË?v›ð?b•?3Î ?FÌ@ ÇŸ@/³W@'Qt@$æ"?²u? ›Ï?OsR???©–»?¦¤->¯IŠ>¬èŒ> +”Î>›%_?ŽÃ?_Ô‰=òù2?Ž\@]®é@?óõ@EÛ?´¹k?Hö?8Ø?zX?\4ì?„EŽ?¢¯G?±5¼?ƒUe?lƒ4?Q?XM>˜És>Ž~?þó›@ ²,>\GÁ>X?-?„l?t…å>Ñ3ð>ë¾?Ôä?Q {?ÂBò?…7⌞?ÿÐ?…@>²Ž(>–Ž>?5ÍÌ?:Úª?°ý?¥Iê?g3?†v7?Óf?µDÃ?3œ ?"°?ƒ6?úð? è§?LA?y?QÿÈ?„¦"?ôt2@¼@ $@ +Êä?íîV?Øâ‹?‰ú?w½?¾ #?Æû;?¥9ý? oj?mk¼?tðÆ?ÅŸ˜?À8­?Æõ?óŽ™@HW@½®>D‹ö?œã?˜Òº@G'?‚u=«?¨?u†Ø?é@N@D¬@6^g@BqÙ?†1)?ŒE?uˆÍ?„ˆÖ?Ç™¢?ÈÇÑ?„ýí?zFJ>D€?˜ª?¤é_?ƲÚ?  >Ð2y?Ii¼?Æ¡?˜ž(?Ì?ø?(@fº @E?^2?à€Ò@)VÀ@ z??÷Wu?—<?gÙ°?á‹N?öÑ#?’C ?tÄ1?Œ§g?Šô2?¥Hi?¢þñ?Š@?Œ>±?L4†??‹)?]àñ?$d?¶˜?®Ÿ‘?­ù?¨x ?”]•?½£@'?éVJ?ÆŸ@b¢@¸ƒ?úR ?Îìº@@·â?¦Òõ?môc@”M@$ÈÃ@“@÷/?µ\ã?§’?þ_Þ@©Ï?¸ÊÃ?¬¯\?Ö±?ÚŒ—?Ù¬{?ÓÞ{?³¯²?ŸO|?2¢ô?—{J@=Ÿx@ý:?™\?†'(@ÛZ?Ä)T?Lk?lΠ?s™í?^ZV?U_?­ßá?â}T?ž÷?YñE?Á5Ï?ë¤?xù? ¾9?ãè@f??Ãõþ?e1@ XÞ@J?÷"¤?èJû@$“w@*^%@þ@Ǭ@7©÷@;P”=d70=Òã^@·@€ê@#&@$ä‡@5žã@%TŸ?O‡?—ζ@:¶@ 5:?˜f?’Qš?P³?‡OŽ?Ü¡?øf@G¢@¨½?é½@ùi@9ëî@‚?çEû@ †~@-Ï¡@ùá@º@ ?ø2m?ºÉÛ?°L? @b×@CÌÿ@3u@ tò?ïrÔ@>ÿÈ@e1@¶:?ÔÆ:?“‘!?€“?~û?sÖS@­:@5H˜@=Ó@C-…?Êt?‘ â@"™@;;Y?ya?¾#?·ªp?Ì a?öey?ÿ—”?–b ?…ß?‡$ ?‰/Ä?åj?§j@ Š@ØE?Éxr?ÀZ·?’?)z??}?²/*?¼ÆÈ?ñKá?ôKÖ@mIÊ@vÔ4@%VA@Wú?­¹)?›\@Ãï@‡ï@ZÐø@aל@$Ü]@2Ü@™[?þÂ÷?•YO?†k°@@"•n?Mä >þD&?ûÑÍ@²µ?Ám?®™ +?Ñ´?ÚTñ?ö̶?ý›?±b?™»Ô@AU@)¯¬?Ó?£´§@Í_@æL?ø¤?ÛþT?ðË,?ü˜Q?ˆšr? Äæ?àx'@Ðö@U/:@uwÙ@>²J@Õ?Æ“~?v Ï?Ž”9?– 1?å¯5@é@x@HW@â¬?ÛJ@;Ë@)þä@že?Î!l?ÊÙ ?»Îå?Ò"}@åÌ@lV@ ó,@â…?Ôº`?ïtÎ@Zè@Qjo@ë @~Ù@N¼Á@H=ø?…–f?’{ ?ºH+?º–w?\·â?KER?™v?ŸQ?£-š?™Æ??’³?'?—‰?•öÃ?·O¶?ËQ‚?7Žq=ÓÂp?“8†@q|?ûÂÉ?òŠ%@' @8n1@$2?ú .?ù ‚?íí³?ÅU±>ÍÊ–?¬ú?b©3?|9¹?ã¸,?è/?–GN?—l@ž @à ?ù‚¬?õm@.ð@VË@ô`@_^@â@'ŽÈ@ùk?½\?Ÿ^?sóÕ?Lè©?Š?Nœ?¨$Ã?º’s@@@±ç?•œÔ?öe?Mü?V8{?Ÿæ?Ÿ.á?ÞÔ½?ú©„?’8K?C–?“±?µjÔ?û©@(ÆŽ@ á?ñs$?ÞÄH?°Ã?©,%?sKs?€ ¨?ôÕx?÷š>µ—,>±¹Ë?Ÿ¬-?´/I?ÒS ?ÛqK?F">J¢?lð?Ñ}?Äïa?³„‹?žÔ­?FÔE?Zç$?£ãN?¦Æs?ÒUh?Êóú@=t@º¤?¢uû?rÒ~?–œ!? >°?ªSã?½@Ž?Ê̪?Ý–œ?ÉõT?ˆE4?€AÔ?9vW?4cx>ó8>ìºÄ>ì¡z>ì‚i?¿¾@Ú»?¾™?l°?¬4R@\@Ј?馩?è2ó?¬¿Y?ª?HÈ?Qàx?–ÏV?Ÿ¿?´ûp?¾þG?µ}?¯ãÌ?¦µü?|?¢ä:@ gó@Áh>µàþ>µvÛ?ç–>@ +@À?öh2?çD@Òt@¯š@k·?ÚÕ?¹Ûò>Íð>ù6šL?½×?Þ:?œj‰?\²ø?‰ï%?®ú?É–·@?éºÏ?ÏO?*c@¬@Þ?Ê>í?c”ü?­h±?×#œ@î?çï$?=€í“K?+^?wÓ}?„À?Å)¸?×?¼Èr?±æ?Ù2@Ó?ô(`?»×®?²‘V?û¬‹@kÿ?Š'–?S¶B?Ð@ p@Þb?â÷å?ÊÞŸ?Œè ?›üß@A%?ú „?X‡œ?Ep¯?ƒÒý?‘˼?.pƒ>§Ù?*’Ð?ò‚+?î4¾?åYÏ?åf:?¯þ?¨æ?¡^÷?š·u?ç“@ Hç?ËI?9-œ?_šÔ?ÉW?ÈÔÐ?É?¢+>÷AF>±Îw?Ä7@ ´œ?ãûg?«9£?ƒ!¤>æk’?’¤?f–Ð?f4s?|˜"?‰fŒ?pä]?gt?µâ??Δ?œIˆ?gˆo?·5Y@Ù@àV?¥­;?œ‡*?‹°†?“iÕ?nv?Qv¤@¥[@!<¶?ÛG¥?›™œ?„x ?i×T?‹úÎ?¯­w?Ÿó¯?`h±?H3? É?7NÐ?°¢Ã?°Îƒ?Ù>ÞBï>—Ш>žÊÕ>4j¿=±^7? ÓÃ?csa?m2Š?fbä?ù½>Ê·È>á©à>™¹¹>ø€~?p?‰?iÕd?lp?i>ñ›Ù?*”?çiâ?ä*û?s¬?h'†>½…Õ>®žó>ô±6>ñÿï>eÕ÷>?Òþ>Ž_=à²=/du?2™r?%ÞÕ?{Ce?mxØ?l ?8ð=â@â=hÂ<ú€=òû<>%iF>Q¸ß?­ª?8¨ì?€®Ä?£Ë?)¾Å>ò71=ˆSE>‚aá>è<È=Ãõ?õs @žß'@‘¿­@nåü?m>?#Z@\üÝ@N=Û?¬Œ?‘gØ=La>ûÏÏ>îî¾>uÀ>’Lô>ûÔ?„`?«€ž?«E<>ûÛ—?(±?v‘?w^=9€=v©Ó?Mz7?@Yi>ý[Ë>ûø›<¡‘">îMN>ü ’?Hr?UMÃ>=›o=ÄÆ>ÇêØ>ç:‡?hAç?|5¹=ôÍ÷>Ú•­>üOà?vq?v t?M2,?Bjk?ny5?k#ê?w0#?|Œv?»º¹?ÓðA?æ)?ï%†?IŠ•>ýj >ôg;>äI>ÖÝŠ>É}ð>=®3>V?mØ?˜¸¾>ÿy>sh?µäè?Ýè?”Œ»?}B>Öõn>+VÅ?Šs?¹â!>Íö“>Æ·ó?9Y?>=ò?CÂ?w,L?~ ‚?A£§?5ùÍ>ÃaÌ>‡£P? +?-‚ª?I:ª?\W +>ô=d>~ ,?DH’?~^=?}=È?{®¯?¡—Ù?¨ Ç?4ñŸ>þ©å?ù0?«ö?›t°?™­¶?(¹\? ê?,¸€?1ýÑ?”Ê;?¬GH?}À?e8F>¨¦õ=ß@6?‘dÅ?½­>?6\©>ÿ¥ü>ÿ³]>ÿ£>‰¹#>„¿x??§b?RÚš?7Q?9N?–µE?¯ ?é?á&?^qí?Gtõ?!*ð?-i?¥R"?´UÓ?˜¼?o?og?v\?N?†?dï?_„?u?„ßœ?ŽU“?‰2‘?ŸÒ-? y‰?Š +é?‰¶~?*. ?]I0@ê˜?ä+¿>×Ãæ>ì¡?? +Ö¾>Ú\;ÚPf>ìþœ?ü^£?Ä;Ð>¸×Ö?“3·@7^]@Ú +?V€?$à +?r•'?7Q„>w>¬xŸ?…=?m?““?N­U?÷?Mƒ3?°¼?;¿Š?u´Õ?7t‹?Zç?Qg[?u™?(¥Î?î‰>ÙNå>¼Q°?Uóp?‚ ¨>oò ?Ÿ®?L„†?—q +?›á‡?>0ô?*ñµ?~N»?‚Uw>ÙvŸ>â´?h’_?Š¦¥@@'£@;ÓÀ@‡Ò?ðbz?‚”ª?¥ø?¶;Ï?ŸO?N†Ô?KŸ?$°Ú?-@š?J½:?Š¶?Àn ?®¿"?œ‚M?™ò?—e0?”Öœ?’JV?PŽt?Vy?·þ?!Ÿ?žÆŠ?Ä1v>ÒêÔ=î÷¸>4ÏN>r>ÃÓ‚>ób?<£Í?5“@ °‚@o?©5g?©‰u?Å*o?»ìf?Áþ?§"?ˆÈ?(Š@ó?Ú7ÿ=ËAi>æÛ?ƒ§ä? T?|{®?‚á?ƒ½?©B?Ũ%?ܪ ?ã²V?c©?Ùº?ŸàÕ?Å€Ý?ªê?­(á>¿(>}Æ›?œ¾™? õ??„”?x¯Ô>0CÇ>eK?&dY?Q?Æ(õ?·m?‹’¾?=BÞ=%Ö>×Mx?ˆdã?Êž=]í8?F€Û?®ÛÖ?i´±?%ko?CÇp?YÓR?[U]?TI)?ZC?Xg>”á7>s ?‡?”0š?ŸrL?•ùë?–ø1?£X=ÜìÒ>•1?„w?„z?„{ð?³3@Ÿ˜?Í9?‰}E?¤³m?½ «?ºÈ?¸rC?Z‡??Ÿ!Ò?ÆÛÙ?©_%?—ŠÕ?|¤?„E9? +‘>ä«y?Ц?΄?óÂ?䞉?H›Þ?ƒl»@ +ÓD@b½?ê>k?ât?ÃÒÊ?~V?¥­?¸¦+@Þy?±,"?Æi?óÅ@-c&?Ô(ä?˜]?P‰?B$•> |†>f—q?mZÿ?…‘@L?ýT¡ˆ»>²Ìµ?Ÿo?´ô? +" >‹÷ˆ?H‰?„—W@~@%»ð@D1ã@PBr?¬Ú?Z™)?¤Ì?«È?¾³ó?ÃêË? ‰Ñ?ç?>Û•5? Ö?µNe?¬%´?´|?Œß2>b–Y?Ž?³&?Åàí?Ö¢â@×q@%À@7·?¿§É?8?Cr?Ì‘¼?ük¶?g ñ?L/?|h²?–´?mÝS?i‘ó?œÙ ?¡ç·?¤ž?¨Æ?¹šŽ?½wQ@é’@Ê‘?—©?¢ÍT@GG?ç¶?Œ?‹‡g@ +?ð{6?Åüý?å&¾@®}?ç' ?Ïuè?¨“)?Œü?žþ?¬œ?†6V?dGâ?¢?¯µ5?ÚS?ìÅ»?ËÆÞ?Å ?ãÑ?èLé?ò +o?õøc?œ9?›Š»?µÎÏ?Ïc¦@`>@£î?¹lj?Íó’@q!@ °@R-@ž¥?…MÀ?Á?ºˆt@oò@N @þP?Ý]?»wð?§á?;÷R>±!;?× @mù?Ø_?¥õ¢?£ÔÇ?¥Áv?§Ó‹?©é#@;@"îÛ@,ŠL@,‰Ü@3X @6Tk?È?ºvû?¼‡{?½ƒ9?…ðT?“L-@B÷0@:þF@p@2€?ÖCh?ÁôŸ?W ?‘8Â@Cˆ1@&ÝŽ?—Ì?šJ¤?©[-?›Ìã?‚/?˜j?ÆÊW?²~?Ž!@ ¡K@l¤G@F¼@C?öÃŒ?ÂÒ¿?ýB9@^?êKü?˜F±?‰ +¨?°º??}ä{?è`@E¹@‰;?ùE²@l?@)`V@º¥@ ?òpz?ß.’?ðåÊ?ù+?¿¸K?£)?¸‡m?Á¥%?烱?ù+@Äé@fÿ?Ë[e?±5@@‰Ò@(?P~[?¾ @)@BÒZ?Þ©þ?Áw3?‰ì?€ˆŽ?²Uz?·åÓ?‡—?€bò@0Õ@ eÕ?Θ ?ÀZ³@&ˆ,@'g>ãk'>ly?¯À?Ãl?çÓe?ñ}f@”¨Š@ŸZH@~üÑ@|?îà?Ö¸7@|@×å@kö@wJþ?Û.-?½*Y@3@r@<e?/?~šè?Ÿò·?¬ß4?“œ>þG?“±Ã?¦˜Ã?î³°?õ•H@0«@7x«@œì?ý™R?˘?¾“@ +H@öy@< +?ý³?ýÏ?üïÍ@'º¼@8“Q@÷?ü˜"@@° @1ë@;æþ?ÈÕ?\”}?ŒÓé?žâm?¢Ý6?žXË?”™·?‘36?ý·7@0«ñ@)CÍ@ sî@EE?½È»@¤@.î¦@8à?©WÜ?³Ÿr?ÍŒL?¸Žr?ŠŒ¶?»ND@)?D@:h“@m¾Þ@hï@;D@$=> >›®?£Ì×?²x8@dï?þ?»Â?ºšÁ>É”>·gA?R}?i/£?©õn?¼Ub?Ö’.?Ýç@e<@J?ß?ô?ߧ?³š?IT#?Ù;·@$î@?°ûZ?žÍ‚?zÖ?Ài7@ñl@+g?Á‘¿?£Ó±>ÁeL?2dì@"]ô@F?߶Ä?Ý%µ?¿?›`l?š0q?¥Æ?@,©3@5¥‡?Þ_?·œß?˜ªÙ?ˆíK?³w7?Ë}÷?Ϫß?ÝîÐ?µrj?sú–?rÃ?mƒ·?•m¸?ëßÆ@æR@`ýü@SÙ?âT‡?ßÄ>õ@ +>òÈ&@5@ {’?–»”?r[%?ƒî¦?ÔA?žæ$?µnZ?€3»?YÖ?~&Â?ÖFÈ?¼ýÅ?h"?˜µ@*@ ‰ù?~ì?†(U?Éá¹?Á÷À?µÜ?´3?„Øå?v§Ž?hàÊ?L‡Ü?™tÜ?ÒRh?ljž?³‡Y?¤šÛ?m‹?k5W?”ìÇ?“8@cƒ@ jï?.•ð>î_Œ?RÏÍ?n, ?ª?²sØ?å Ç@ùÍ?Ïì?Yô?_s\?L’=?Xì?mú?lóä?ŽÊ?‡ú?YjÍ?G$$?fêÔ?ƒÅÁ?™“#?žUb?‚d.?1•Û?ä>îÞô? ð +?t“?y›¨@] @®z?è¢m?ÙR?–V?4ï”?˜r¨?ι?§ÐÉ?F6?—öï@A›n@Eë®>qgÏ>DÊ?¿?¨C§?¨0?«á?’I•?zâ7?b4¿?&r?G¿7?…ú?y§€?h´?hž?¬£2?±Çÿ?›DŠ?”òœ?Ãu¬?é0à@eî@-òû@V?V²>?\9qÿN>ZÇY?È/?îJ6?wN?1é?†˜?¿:?ÒÜñ?æ;?îIV@ »Ú@Òþ?Ú??Ò î@ì@¯º?ÉÚ¿?–SC?Çš>@õT@{@"\@E?6éê?*í?RØL??Ö?_É?n,??¦$•?åh @ +NË@Gh@7’b?̤™?Ó?²'?œõ:?)ÄA?þ??Ç‘?a-Z?¢–ø@V˜@ år?ÕŽI?ß‹(?®Ôä?¬6?…l?y¤5?˜»®?¶ °?°‘N?”™‹?Æ?‘S¥?’s? ¢\?ð?­rÃ?Éó?³i*?©ñ;?`Óµ>ýÏŒ?&.ò?RMm?`Ý?›µÐ?•éÅ>æÇ>æá?*Oq?:r5?³÷?åCŽ?¸o‘?‚Þ?ã¨.@IPÞ@l > $u>¤Kí? Ð;?˜?N'¼?Xpæ?£h?½‰Þ?ÐÅÔ?×ÑT?¸øØ?’So?’Ø?ª1º?ŽG‹>ü9ò>ä!=ȹ>‘Dj> W™>À14>íNŽ>8áí;ßfŽ>ôi?B>ëýk>´’>Ä9Ç>ï¬Ï>ìó4?f>êY>€T>yú°?c>é5J>7Ÿš?s6y?{Æh?—G}?ƒÝU>JèA>qS½>Œ ÷>¤>öÐ>ꄃ6ùH-<®Mz>£pü>Þ€¦?;9Œ?&Tc==>Ï’„>§'d>£² ?9nG>ù6†>Ž[_>×3ÿ?!X ?5 ?še>3s<ˆº‰@ @ŠR¤@«ý @Á@Ä?3¸F>–»Ó?Áà®?ÂS¤?†¢Ì?hÞ<´T">?R>f‚&>|oË>ŠRˆ?.ˆ?. Û?{¾?rž,>ûÅ>ú¤¹>óÉÂ?¥0?i:–?[ ›?{ß0?|ðº?–ªÂ?6ž;ÜOø?4ì´?1¾;?€†©?n?GI>üŽ=ú;÷“†<å¿ä>Ô2ò>Ù —>Áÿ=ü\?7 Ç?Y h?9e ?9{Ù?E¤`?["0?S/°?U ?CÙ†?2¡?mÝî?|®é?¼ú>þ ù=òP=WßÐ?=:ù?aý3?@y‘?,b¥?Ñ­1?ëä?GñÛ>ý §?á¤@n,?§‚?}Lx?i]k?i!y?o´Ð?vA®>zÙ?4eŒ?l,>¿àe>sû[?j-C?”—z?,Ï‘>ýìd>¡%g>h6¢?I,S?~½?í{>¼Ãc?7­fi=æKÑ?¶“H?ê<í?¶ð?¤m¥>™ní?Œ£ö?°þ*?‰{—?Aí?@¤>ÿ[°?ˆšR?“)¸?>þ>ý‡á@ö@3-?d°>ÿÐ">Ð>»‘>£Vx>¸ƒ?=ëƒ?FŸ?³Ù¿?À2Ê?GL?2B?y{j?Œ[²?O1?R²ð>í­>ê3N?·­[?¿ãÃ?úâ?|/=(ð=¾ã"?ÿ?%!p?Y=Ý?W³„?šzº?›h8?€Âf?{(L?7?3¶¨?+º®?D…?ò-?ϼj>"2Ý>Ëê?y#‰?›ÂÎ?þóõ?Ë‚?'F¼?Ž†@¨?ì±?Ùh?Ëì±?“ÍŸ?€(¨?IzË?)µî?|‹?#ä?3Šû?oÌ>µ,é?a»?´wÈ?pù?·>ˆ¡=F†«?ÄH½@OÏ?è?»kq?Ö¦?ÝYÑ?W-n?w?!ÒG?1aL?]Æò?X'?·Œ +?¸ +.?¿œ?Ã\ó?±mc?ªUu?ƒÉ?‚²>B½F>%“1>¢cz>Š<œ?À?…›ü?‰ŠÅ?¡¸#?ó®ˆ?Ìsq?:¯‚?MÍ?^çÇ?0õ>ÃÚî?ApÉ?¦ƒà?± X?ȯ6?É??Ä` +?Ûêo?ìÔž?¿î‹?¦q6?‘ßt?ƒü?ªÃ@?¿è?•[œ?ƒ´A?°'l?µ$c?z:ó?]0‰>é™#>Èçö?#>G?,_?´¢˜?Â[õ?Å!;?Å*Ä?Å1e?³x?:Ê?5º?0”ç?B{Ñ?l ?I>?¤Ï?>Ø?xNA? +<¢‰d?Q¼ð?Ã`Í?çÞñ@/g?— „?LÖ?e%?e‚£?#Ž?ƒè.?^µg?Qíš>¬>ˆ_Ë?ýi„£ ?š@?¡.­@ h3@ Õn?Ü„é?ÔÆŸ?¶ ý?΄|@Xñ?âmÜ>v–]>ð^‰?‘•?„ƒ?ƒ:?å•;@%Ø?µ‘ß?­Ó?…´¨?²B‘?¶ñ?³Bß?Ž–e?|!•>ÏY¢>•Þ­?ÁA¼?Æ"@Kè@P—?ÇÞ?¼?[¨?{6?Öî@.²@:mø@3É@!È?àè?Ûu@XG@eO¥@ü~?s ©>Ýaí>’?-ò?wv?WÐ?aØ$?ƒBŒ?„“í?›9½? J¢?Ë·ù?Äl¡>s>§È£?Ÿø?³ûÖ@¾ž@³?cÒ«?q™‰?„xV?aŒÅ?ó¢?ǹF@;ùÁ@# à@ä˜@9ë’@`Ä?Чâ?]Â@ Ÿ°@:I´?´^ ?gnƒ?c ³?^¦j?’ê¯?“¾?@“Ô?@:r?„9¸?ŠÈW?ðÒM?÷Sz?ýÍX@}Ù@$®?üZ$?×.?¸û?h7Û?»O9@ ù@ê†?Éâó?æñ9@ïç@¡@ŽÝ?µ'r?ƒê?¨'Ð?¸n?‘ðö?ƒØt?3T?ÉH?sø—?ƒÅñ?ßèÆ?èîñ?æÂS?ä>G?ƒÍí?…±i?¬Ò’? ýú>¢ÐH?#4@ªÿ@¯…?o_?¡fµ@<›?åí~?PÐ?ú»?ÄG?ñô?,–?”x?êºh@´å@7,?é ?ƒ/÷?†"É?‚N&?ñ‚F@¯·@‹N@¶Ì?öKm?ß(ç?P^ð?ï?±'°?ÄWÐ@/+t@;<?ñó¢?éçÖ?î÷?•ê?Š8 ?Šf?Ãü?Î @#´ð@ ¹m@Šg@—u@mÄ_@Gà ?iíÎ?±[U@CŽô@7”?Y§C?z+C?œCc?ÑlÕ@gÿ@€?¿˜"?‹xh? +?‰ŠŸ?í³ç?íem?çA”?ò?b?ú»w?ð"?ð~@"–@:<?õë—?ˆî8@S @\@I/²@>ñE@”?ÂF ?ör@ 4@*va@8eË?å{“?ªwé?»§?ÁßÇ@ü¶@!÷¥?öé??ÞE?çÀ“?âÁN@ÖE@/Ì?ºží?ú ?šf­?˜ª¥?·§?”@@E–@]¡Ú?æ­[?Ál?ˆ—l?€‹x?¹ZÉ?À¶ú?æh-?æÁ@?ßâ?âÝ9@º@ `V?ë:˜?ò|[>0•§?“Y6?ž?Ê?¶£?´V@%&v@3F¾@"ç@¿b?Ø?k?èÀP?õÿ†@ªÄ@!ÿt?IÄS?¯°?zú@?Œ4?)b?ø?r3¯?~wÕ?fo¥?^ãõ?¤dR?ª¸”?½} ?Ç5ø@F„@Zž´@V]?Þ©?Ül?ØÙ¤?ýË@Åž?Ý\w?Øf?Ð.?ÒÄŠ@._@(t?ômï?æ3¡?hGJ>üq?‚?•?Û±*@²»?¹LW?{ê«?À??ìVC?ÆðJ?© Â?ë¿@ç@Œï@[¾?í`Ä?ºS3?ú§¸@)Ñï@ Ùu?¹,à?Ô1?útË?æ‘?»³Ï?¶Ð? ½a?¢hù?À ž?à_J@:œ>@(‡6?jre?zé%?é+À?ã‰ò?Óž•?Ø/Ø?èDª?åüþ?€RÄ?iÒ¡>…ñ>\%?‹ÎÔ?˜µ¶?ÈK?ÓßÁ?Ü©³?âg^?KÀã>³w?«­G?÷s ? (Ä?-??:? +Ý0?LJ¨@8X?ÿ"I? Îð?·[e@EiÑ@,?Í£å?ÖÑ)@ó¥@†¸?§´#?ªÑ¶?f-]?of=[“à@-/F@MÓƒ@kB?Ý3C?žr‡?Œ¿?çô!@?Šµz=¥ºb>ìJp?r¤ð?sên?sÍÐ?R?¾Åì?Ó›c@ú€@ +\¢? ¿&?Þ?GXû?B¥•? NÊ?¯c2?œ±Ì?”ƒ[?ê  @kD@ cä@«›?ÃÈl?†)3?]vh?#%?¬Â?5ç?0h2?µÁ,?¹:?¯˜_?­%Õ?½÷?À‰J?¶ ï?´;ô?µžÓ?¯(†?°$Ÿ?³ä§?£mƒ?—ö.?Ue?n8J?tóV?|‘Ö?¿˜°?ùü?ž[k> L>ò…ó?ª÷?¯·?÷O-?í/Ð?›Œ??¢ê„?°^¶?±m©?_Â?Út?Ç–@UM@+®^@?r@)Ò±?°2?¸µ @ I:@ZK?¢Æ?©œô?½tš?Âk?{?S÷Ë?Lcï?džÃ?lÝm?FVÚ?G’?œ3_?¥?M (?R߇?gKÑ?i°¿?å„>ìòÍ?µšC@ /?Ôo‘?VÏM?n?®±-?±#Ý?æéù?Þžö?Éàå?Ê¥?¢.è?¿?Ha7?ÃR?áÃÃ@ +ç?÷d*? +mÓ>îöF@w¢í@sþª?å@9? ·X?Tƒ=?-æS?9c ?a=þ>Õ = ìÌ=µ<>9$Ì?•O?Óß8?Ìö†?rO?c¨0>©T>”$>>Ó$É>çV„?›¨y?çšS?¡r’>òˆú?E“Ô?—•°?‹0V?ƒU?‡AQ?>:´?3p?ƒs$?w?žZ‘?¯)?Ñ?Ï?üL°?›µ7›(=?^Pì?dZš?…N4?qÒ¾?k§A?ká¦?l$?lc(?'ù?©U? ^‘?\>ùJb>í–>ê*¿>î+>îÜQ>ï#Ð>ï~‹>ïÉÒ>í)>Ëò¥>¨`>®à÷?*p]?¼çJ?‘Ú" ¾¹>fƒ£>Ù‰?G³>†HÕ>‰¸ä?Ÿî>ï–Ó?[&?æ†>…Á=t™w>í§1>ÃÕÃ=4J¢>žÌo>œ©d>û²O>Ê8ã;™6:5{m=è ”>¥Üg>˜­>~þ,=Ùfô>‘ &>Û,1>ò¢’?¢C\9==–3@vã@~-˜@L@s‰:”ñú>÷_B?ùŽ:?ôN?è„Š?³=¦”>û?à?L°Ó?Tô?[ƒ¹?U'ª>Øèþ>Ó^<1;â=ó’?·‚?ªŽ<>It>‹A?M&¬?W;Ý<×?{§Ü?{»A?¤DÚ?³‘?>”?*í>Dÿ%=¾U>ò0`>òqÄ>úÔW>ü5C?B²á?:¯Õ>O(–>:°Ô>íaÒ>üh9=j@>’.>¯÷?Ž´H?¤Ê3?„Øn?|¬Æ?®žÊ?»ä¿>wJ@>Xt>`ñž?Z™F?|û¿?¹Á?пü?<:™>ý"$?†½?•E[?‚Ý}?}Mï?.Â?ÌÕ>ñ%Þ>ñWP=ã»x?i_?´ãü>¦¶[?‚Ä?¨#+?‘v7?…'ð?M¢„?7øâ?vË?%—¹>x=ý"Æ?5??kK—?çã\@z!?@"?yš?#±?½?°~ +?Ã?¨}]?©¬2?>¨K?#Ȉ?wñ?r~É? |¹?¶•g?Œ<>?HY?5>ÿd'?ìFÇ@¾â>ãJê;ãu¦?hÓë?–4Ü>~îØ=¹o3>ã“Í>ÿ÷?s^ç?rÙC?ŸL?¢¤^?¼Åó?À8Î?Eø"?-¸d>Dbd>;¾ n=zò=& ?vi‹?€Ëg?zàå?s=>Ý{£>áþ‡?£ƒÂ?–Ä¿>£ªu>Ô8Õ?€¶€?zqn?@¯Y?Tëš?›Žv? ü?×®‹?Ò† +?¢¨Ž?ž-?n5?]AQ? Dv?«Ù?p?R¡?´L@?š…?d +?Ž.ñ?°§?…«¯? ?Dà?o ?g«‚?=ÄŠ?Aø5?QÕy?Ú§>*I?¿Û?gÿ ?H€´?"Š?L©¯?xÍ?ÒÄÚ@œ?ŠîÝ? ÿC?ƒŠ?œUô?Æ™?ÌA?€3¸?T-G?Ñï§?æåV?á‹ì?îǘ?—f»?‘Pˆ?é0e?ðå¨?•0â?Ãß?Ž$+?š×Ô@6¹l@*´?ã²?Ö6? + •?†Ë @:Ü|@?¨-? Ó?)ÅX?±T>¢? õÃ?z±U?Ÿzè?¿d ?–Âó?r7û?Èi3@Ï£?ŸÁ÷? ˜Þ?aÔ?ƒ?ƒk?ƒÑ?² +‚?Ä +Â??‚?é?ßO8?ñe‘?€?gP:@,`@$ü?–‡?’9e?ŸÀA?d‹?„‚ ?Ž2?žÖF?¨ày?Æ}˜?ò?ÓEe?ćm?œB&?u¿? ýG?#Â)??á?O|œ?†0ö?‹óð?’”„?óÅð@ l?ƒ€ò?&pÎ?töY?ƒéº>óŽv>Ù$œ?„ô`?…Úx@>Ÿ@·j?9<ö?.Ê‚?®?=4ç?æu¶?µA=À=™Dð=e§?”}Œ@Cõl@FÔ?ÃóT?}@}>ë¤E?‰ô8?Æhá?ÆmW?Ær…?R¢?S@?ˆƒ?žÅ!?ØÛj?åÃ,?«8š?¢›ˆ?S ?aüî?ñÆ?ïd ?ÑÝÇ?Òš’?¹ë?¸Æ?´õ?¦Sî?€Vp?ƒ%.?…©Q?…{?~Â)?¬»¬?ÚŒú?ÈÁL?¸N\?&w€>™ÍW?3—?4dX@òç@%Áý?3<>„Þì?M²5?fw?¬Ò¤?·[±@¤‡?öûw?•‡?òh?„¨è?²qØ@ RÌ?ÆM£?«Þ?z¿?Ńú?ÉÖ9?Ó.?¡©ú?t ?€aö?„®¾?Ø'd?õ‘?M ?$ž?fÌ?®¯?×àç?èÕh?¨j’?±qX?û5?ì$|?±pÉ?Ÿ”?&þ?{ϱ?ðBá?ô¿±?ù=Š?ã²Ý?ÃnÚ?Ŭ“?Ê»"?¦T?„¡y?ŸÛ?©>@|–@"ýD?]D >½Þz?!L*?3(P?ðÉ?ø7Ë?äž ?ßéä?Œá?/[¨?ý®J?ñä??É‹“?¼±î?Ÿ&ë?£Ê|?½!ð?«˜Ä?—öŠ?Bƒ?„qÙ?壻@$$?“1;>A`~>Ü™È?_J?LœH?~’?¬óç?µå6?Œ? ?„L¼?Ÿ?ëÂ?ý¢?ôÚ?Cï?^¨V?Ýít?Ë §?„-'?©f?@Z@ :?ÄÅ6?ã7r@ +R@Sb?÷³Ç@¸@—?èG?ÆÐò?:š>eÐ?8XÀ?ƒë?û”¼@|ç?ùÄ­?äb?å¼?ÛÌ›?V°??8;J?³çB?À¾­?Äþê?ÇtŒ?M}x?YÔ‡?œIë?—Cà?ƒ™@?Äãœ@vQ™@ClK?«?Œ¿@$TO@"¯¬@ ôÒ?â’?7?°I~@ǹ@ E‰?ý#ÿ?ñ`V?íÝ#?²b¬?ƒ0ï?Ìä?™Ck?¼–?Ò1@ú¨@!—û@#µ@#¿´?›¡z?T *@›B@ß?û«r?þÝ(?‹§6?‚Éœ?ë\æ?ñU¸?¼‹#?¾ã6?Ãûì?âô@ëî@kÐo?ÈèL?Æ_œ?º(y?¡ÄZ>Wv>>êža?™q•?ºEè?îy%?í¤ +?÷ ý@ +Ý×@/v¼@&?@€?ÜDÐ?l5ö?–'?à %@åÑ@+†%@?)Ö@UYª@ +—V?‹Ÿá?±À?Íâø@+þ@`× @(rÐ@¼¹@4™@{-?¹´o?Œ“?—´¶?Ÿå@1Z,@X½Ì@`o?ë•?èöE?æÐÂ?óâ•@D@Ë+@Ï@ +du@Æç?úÙè?æS?˜èM?‘¹¯@@—@¹ì?÷”?@J`T@O?z-”?Nå@6Ï @>!?Úg?ÕÔè?—4J?*·?‘JË?‰^R?ø-Ÿ?üX9?ÿ[ ?ÿæ²?qh?Vò¢@¸-@ö}@5¾@3¹ñ?ß^\?ÑÞ’@C“@FÙé@=@>_l?5]W?îÿ?6>þ¢Ë?©õÆ?³5×@1¤@6÷9?2I>ðš?ãu¨?ôäð@lÿ@Ký@@ bÙ?º3=?­œ{@ ^)@eû?†b?42?$íd?Y»?ÄÉ?ä`ç? cø=®¯>ÍïÃ?‚?” O?·}W@ÂZ@9…4?ù# ?±šŒ@ ´|@-<ì@ò@ l‰?Áí?‡Ô?¥V?¼eä?¬J…? aw?Þ†p@<ø?×Z?(>?‰¶&?é%/?ÛH¼?»µó?ìp>@2ÙÝ@'€:?þM½?îÈœ?»±#?¿#?·%?ËÐ@­ª@åK?/Ž?>²f?øòº?øÛì?ä*ï?á5ð?˜j†?‰YN@¸@]@WP?øé?ìF¬?ä=v?VFl>É6Â?‰ßb?Ʀ?åq?÷D?Ô† ?µÀ¨@ ÐÑ@v-ù@C8?ç¬Z?Í`W?ªWü?“82>Ý­Ÿ?!‡ü?ŸšC?šæ:?(av?0ðö?Ýs?z ´?4ÉM?$¿m?î¹ ?ü¦™@=#@GE?—àU>Þ¨?rw¬?¤©@?‘êv?}Ùn?>~>õîî?ÉŸÂ@Kˆ@-â/?ë D?õø@–ñ@Á?zÁ?nŸ…>±Í2>Ä*…>ñ˜]>ò¡;?Óø°?ëŽ|?æ{?ì+ @:_Z@`wŸ@ª…?Â%?ȉ/?͈ˆ?¿€º?±”?¦@?rÌ°?xN@G­o@AiE?‚Ÿ6?„í~@U@Ì'@)¨´@0Ö¯?ë~?³êˆ?’Ë?o©º?Yä?@ÂÙ?w‘É?³jq?­kL?˜ +â?“ó?ª^Q?¬½”?nCË?k¹ @s@r?Ðs?ª›$?|®ã?CàB?ª º?ù§g?Ëf?'[?¢ý@"É@"—Ì?+¸?&Z?¤þ?±qC?ï‡Ý@ë?ÃDy?‡…?=fL®? ÜÏ?êØ‘?ñ¬@5D@"r?ó'? ö?x}A?ˆj?½}Š?Ò¯£?µí[?’š?µ<¼@7è?äi€?`²U?:x >´dÜ>¾ý¢?i(q?ttù?rk?jÁ@?—¡x?¸'^? B?i!!?o®?ƒáÀ?ˆy¥?²õ]?»(@߉@K@c¼?ôÁ|?ß´˜?Ö6?ØìÜ?Û¡¦?ñ‰@#É´@&.4>ç¨>ò6x?žþâ?´ V?épF@é“?Çe•?g!b?oòh?{ÓŒ?oéÅr?“Óö?ëté?ÝY8?¸s]?Òñé@?Ïÿ@9c5?Nh?+Œx>¨ Õ>37>ö­à?E£‘?É?Ü{?ݲ+?Ýo ?äzH?†@Ë?‹@4@ù£?Æ9‚?…µ?“W?¬=ì?¥;?”'"?™Ü‘?¦§?œ=$?¤ç>æ.> ;Q§ä>û’B?NŸ?eÖ›?…¢¶?q$Ñ?m Y?„HG?­ª?­2¿>é{>™j½?s?"Õ’?¢R´?ãJL?ÎX?ªºû?¦ð{?®B? ®?Ó`?Â?h9?hëØ?«®]?½0?Žà`?„£$? ´&=È$?%¹+?®T’?ƒÐê?z?g˜?6m?J›A?k³Ë?kìc?l(ì?loø?†>›?„'Z?q‘ê?mwB?l.?kï>¾¿.= ò²=æëÐ>©,>Ÿàý>ïà>ùøC?ñT?(—õ?m`?@ÆÈ?Ü…4?´=¸>~̺?•º ?c0>± ?wÆ(?bã4?n9À?„gþ?vãð?ˆý?ðËÊ?ßjl>øÎU>ÖšJ>¦?GÞÏ?%EV>ŠP>y >0Ü¿>ø1›>†ô©>³ÿ˜?#Ñ=>ržq>ƒ” >˜ >V9w=÷ 9;®^<]À> òn>ªË¥> +Æì@]ë@^ /@RSt@F1ñ?\`L@9é/@“x?Æš6?˜=>H(>‚È?óÄ?°Ô-?‹nW>½çÑ>µx=€ªg=¸Ûè>÷îþ?4Ý?¼½Á?º-W?•(¢?„‘œ>ûÀ`?¤? =o>úÑ7? =y?8¨>üYª>Ñ÷=? â¶?¨5!?¯Fä?¶Z ?}(?vN?o ?hk?z»Ü?|@‹=ƒZ»?ß?ŸÑÊ>ž5î>K>¦Ñ±>”R!>íÕõ>üœ?m?|¯¸>å?<ï‡Ð?û± @ +* ?(ñ>ÂPÝ?32?).J?—û~?¡Ô#?TÊ?7êµ?–Í÷?§Ûa?†øs?}W«?iëR?kvG>b…‡<ž;>È[¬>ïÇñ>cúó>nR ?-ì8?ò¡—>¬Ñq>®¬b>Á#ø>ÍÈ|>Úit@%¨@8¡? ý6=@!X>Ò;8>þ±ç?†E„?žKë?ª°o?©Š·?>td?Âø?¦­?Ã?„•ï?^ni?UŸw?\µ? Ü>ÿo«>µÙ,>[¹Y?^pÂ?~V?Jé? +˜?÷Øp@À>©"O>wA?Ôup?èï?<ôP?3ÐQ?œZî?¤œ?&Á`?'A´?-ø?L"=ôv÷=©b)>ÞT>î…[? uÑ? ?”a?‚Ž?nsâ?wÄÙ?òÊ?àÑ>­ÌO>´üO?6ê?4£3?Ë1?Ó?¦ók?š÷Ò?/<#?/-c?ú|?@œ?9«?9Ç!?s_?~ƒÏ?A?Øï?ˆXë?et?EÅ?€*˜?ðY¸?Ãþ±?tä¬?Rf©?¯Üë?ôü? +ŠX?ì6>‡/÷>X\È>åÛ&?a?-Î?2µ÷?‰’q?š#Á?SÇ?>N¿?9?3¹×?”´à?œ§"?¡ÿ’?¦r?¡3Õ?§Ð?•?ŒÁÖ?„f0?S§½=[F>Ý86?ßèŸ?Ö—?¦Þ~?fj=>kÕ>ØŒÃ?S‚e?mß?«¾F¾Â?A¾?–­~?ž™ +? !´?‹@?ƒ(?|¤C?}«ê?!Š ?üé?l'U?{Å>®ž<>¬¡v?¼?#Rc@"@qÈ?aS¿?]“T>ä[ä>ûí?y÷?=G’?ÅJ¦?÷OR@:“<@wì??}Ö×?âëÖ?áRÑ?ÓÓù@Æk@A>³@ eˆ?à O?7x=òAØ?ÄI@ +Ò?kS?âœ?oî®?ƒìé?Å à?Á^ƒ?;ø?Bð?¦­L?¨»ç?ž€÷?™¯×?‚ÎN?9&?×À]?²Üf?Kb’?+K…?+?‹§%@èÝ?éfº?ÆYµ?AÙ=jÎ`?š¥~?üm¡?”es?Hï?\è2?]-ô?<.…?9pñ?˜$4?£´(?‡Ò(?ŠK”>œý>¿%?˜¯_?œE?‹?‹?‚£?„{c?|M?Jë?(/#?…A?:ÚP?„Š,?Þâë@Ó~@\~S@†=´@&¤?“56?µÌI?»ÿl?Ã(ß?ÁR?ÏK–?Ú…>8q?3MÝ?-sS?„§¿?ïm?Þla?áR†?×ÖS?Ëõ?©T?â” @7Î@? +µÞ?Cž>?†;®?Nñ?1‘?aMz?„²ù?AÉ@?#@f@5ê¯@aºE?â?§×Ï?¤©?²Ú?ÀÏ?‚¿©?úï?3(”?ãs¶?êðQ?Úâ$?ÖP¶?ÙÙ?Áj´?»Œ?‘áo?„«¥?‚Sù?"Ð?‚ý=?…šZ?ªTM?Á‰?žj}?ŽŒ*?ùUµ@Ò?ÁNý?¡>E?D,?™‹@ÿ@%¯z?~X7?}§}?‘?2 Ü?ù¹?ú¸?ï?F@ +/R@4-¥@>K¿@MÔô@+–)?õjþ?Ð>w?™ç?‹d~?„tp?ƒ/@?{ ï?zç?yÜ?ËTR?ä?˪ö?ƃÈ?Kœ¤?.7=t$? ž ?¯¤Þ?HÔ©?fô@Xˆ?ûcÃ?„2D?°eî@&e»?ö©–>(…>^+2>Õö²?5Œå?ŒO°?Í;R@ çs@'wŽ@E-@‡à?ôû'?ϸ?¼ÛM?Ò´n?àŒ]?²ºw?§%†@j{@Êñ?ËÈ?¸ôò?̹G?ʈÿ?¥k×?ŸW?±ç? ±«?Þ)f?Ü>p?Õ9Ô@5æ@od@A>ƒ?†G?…ÄŽ@$/@Ø?ÁÎ7?÷¾@"\c@!V¥@$0´@M½ü@sÈ|@"p?ÄâH?»Kå?²ï?25>°ÎÆ?RœÖ?ƒl?­~?À"•?Ä2?Ì{“?ýU=@ö¿@iû™@z¬™?ŸØj?oZý? bÄ?žˆz?šLL?–ƒ?‘Òw?’?ÇZ ?½Þ^?‡ôð?¤cš@Q@ '@17@7E?›L>?²ðª?ÿf#?æ–?ÃÐy?Ê?ÐIw?Ì.?¾Ö?Ï¥«?é1m?Ïñõ?¨œl?ª§?¬¸"@ìè@L 3@1è§@h¨@^Ê?ÖW@ +#•@"<Â@ Ìâ@KŽ@¹´@ ³ô?ñs@?ÉNÝ?¾Üo?·9?‘.±?yú?ÀUá?âe?ܲ?ÙŽ9?‚™]?]«Ï?ÐT-?ãh ?â|ƒ?åµ6?ê=ú?âŠN@ n@‚?œ~?`$7@·Ç@!Ð@;ªº@FŒÞ?ÔT?½“@†,@.‡@ç@b?lAà?l*n@¿u@ƽ@.1j@1¼8?¸g~?ªñ?¾ý/?ÀLæ?Úqx?Ýô£@Ké3@M-ª@²Ú@ é…?­ê?ª b@X„@‘æ@Týp@^-6@ê@äT@†ÜF@‹Ó±@ @¤r?Yê>þÓŠ?«°?¯äÞ@)/C@-BÒ?ÑT[?ÎÔa@×ö@HØ@„Â@ '±?àÓ?Úå@AIm@MŸZ?íå«?Ãà„?ÑŽl?ÔG?Rù?<Ñ?|g_?ŒLò@CKŒ@fÈ?â Ç?ŽJš?¯KS?½\Ò?‘Áu?)´?Ž??›þ?Ö[?ðsª@^@ ž™?Å’?ŽÐþ?¿ÿñ?Ù_@$@µ3?ÎÚq?u¬ú?££ó?Õáü?ÌÅ7?½£‘?² A?ª¾Y?Æ(d?ï'?æܶ?éÑ?üz@ëˆ@ ‰(?»Qó?Åí?õUM?í„ ?ÌŸ?ÕŠr@ýx?úæA?øù5?øæd?¨@ï?«ºÕ?ô }?ø€X@3 @:8å?É;D?¬0@ òV@ñš@ .?û¾?r7!>Áeu?¤?÷K¨?²¢o?p˜›?õÞ-?jÍ?¸CE?¸)î?Õ˜?Ó"T@J¬@ +«c@[:Â@rò°@«š?ç08?{ºK? 3Ò?Ž¼R?À‰?›c$?s»œ?–šÊ?È0g?Ê7¬?¿ ?ÛÀD@%_@Ó?AÕ2?EK>˜gW> b@¸^?ån6@ž‘@4‡?ý'˜?k|-?¤¿@¾ã@ªä@5@Q? í?œr?é=?3-S@2Ä @R t?Ï#?eØ*?o +§?o´Õ?9ik>ï}U?TE¦?Å`±?­¼?+¹Á?(y??nÐ?n¹T?‚>õ? Ôb?¹Õ?VCZ?O?vÅ_?—~®?{Yû?\ÎA?QQ>íbT?/1â?ê›?ìuf?lô¤?lÖn?fôã?ug¤?¥ C?±N~?¼ê?Ìd?­²[?wªr?­¶œ@”c@úk@-Tj@*vÂ>ë`>ë@?‘*?œ¦&?ŸõÕ?§¹?»ˆÙ?Ïå?á\É?ö|'?ÿã°@ ½«@ ém?‹Ç>îáa?=´?ªµþ?ÛcÔ?èî“?¥¤,?t$¤?Hâf? +3‹?—g?úÓ?3§õ?áá?Ù‹×?ÛÁ÷?í¾‹?ø¬¸@ûÓ?ÖÖÃ?® Š?¨¿?¢Z?¥L¦?¨•?¦ÏG>ç® >ç˜?ÊŸ?ßün?ÄIý?º˜ë?˜„T?g%°?u_?Œ ?‹S"?fÜå{¨?lét?³P×?•A?)?B"Ÿ?ŸüŸ?¹ºö>“çz>mvÄ?/õ:?GE9?aäÇ?gp=?†{Õ?´ +k?™=a>åiÃ>ò~‰?ew¨?ez2?a?€u?ºÝ?ЫS?ŸÐü?aò!?“Nå?ÍðD?ħ?ïÜ$?ú`+?|>æ d>îªû>ãÉ’?4Bý?fRM?p;ˆ?ÒÃ?˜ÅQ?É *?¶×¡?†Ç?”C·?Eª¼?Cï$?¦dª?·Á}?­O?«s?“åU?nIG?§×Ë@PJ?ìóo?C…z?:K>ÑÓ +>ñ¦?>å? ;>†;®=Ç×?¹U?Xi?g]?mûs?#=½'>ÝŒZ?µ"¶?§Rã?–~?‘á¬?l<É?l„Ñ?¬„1?±Â¥?my?m">ƒi=Xv?NË?ŽÒu?ä ?i´è?Gð‡?4c>ñZé>*Œ ?Cä†?ücÛ?º¿0<ÍpW>†>ãtá>ì?.¤?+l%>™Èq>Ásþ?{Å>?d_É=åN?OÙ©?SU¯>ø å>ëOd=sd =¤ZT> g?5…(? ˆí>DžÌ=åL[;›@= €>iÐ]>Ãó*>®?®>Ò+>­øD>Z˜Ò?IdØ?‚b­?t ¨?|tó=>Qh@wø@®5y@m @a?+s?@¿?¼JH>"[>±­>²Á>£§>”É>…!Ÿ>l~Ó?#ré@8r?ôðQ=ì*7>%º>ÝЬ>Å0ß:¬Þ@=È Ý?Ö?¤v>¥ýÊ>Ömj>û¯¬?Ól?{¿+?jƧú>Öò,? +z?½}<6Q=kÆ ?z’?|(¢>sè7>Œö>©Y>šš?Võ[?{¬¶>§ª~>™Z?H)?X¥l?!fÚ?—7?V¨?k<Þ? >õ‹a?·|¤?δÂ?}óÄ?^w~>wè>/W?÷eû?Dû^?KŸ?R<¡?w+?}]Z?'ƒÇ?– ? X? ?¥›×?¶4 +?£`>ÓÎ?a6e?}ק?}ãf?}ëõ?‡C ?ƒ‘?ÆšË?Èq?nF?TË>'I>^g>Ka]>Ük·>þˆÙ?d=Ì?p‰2?¥ûB?«‹¢?9ôÔ?X‚>÷c}?ë#?lÿm?¼?I U?D‰Q?šüÂ?¨>Á>üRÝ>ºÜ?—Ý?߯?û¤ð@6Y?”µ?¤Å?º'>ÿÕÆ?æµ?Ù ƒ>'?E?Ÿ>?Cè¨>¨G¤>†Žp?µë?·«>v>.á„?"ÿÅ? Zµ?4Ÿ+?'/Æ9"ýÀ=KuL?ü±Ã?ý³N?õ ?ÞOÐ>?>5O?Ÿ»Ï?ŸáW?VÆB?Fìý?ÁV>íš>ƒ)î>ºœ½?Mâr?_Íä?sM?Hk?0ê?[Ì™?ÞJÐ?¬`=TÂç>$Q?þ%?}Í +?óm?ê ?Û>å?Ó<>?Ô´”?«?‰?bh¿?= Ý?xr>ˆC¾?,Z? ˆ?Qr?¤k?NÄ?­{?ʈÀ@"Ž?ã™´?¾(?ÁE?¼Êø@/á¶@JÂ?±Þ¢?Lš¬>êó½>·#Ä>õ+z?L?#¼?)Ú?P…? lÞ?³o~?³š?¹^?Uá?[ú>ù $>2ô¯>Ðú@/Š@t@Ü?ÙAñ>óÂ?·?Œ;Ý?Žá9?‘…5?‚¾?57?‰1j?Ó»?¨ÁÌ?|ËÏ?%À>ŽºÈ>Ó›‹?ó?j¢>?•g?×­í?÷Äz?§>Ó?ƒF?$5–?$N?n6?‚X)?ìÕ+?ú¨>6‰e>ü’Ü?4A?sM?y¦ ?f(?k'?“ç¾?‚ç?Cd¼?aÀé?ª\?ûÀ@[LŠ@W?Ÿ'?OH?G?³/·@¬~?ÓýÉ?»>Ú†_=…ÄÖ?'¯?h¯n>÷U>Êߌ?O±6?dŽÜ?§C¶?¯[©?ËjH?ÖTž?aìÔ?O1Û?Âl}?Àìê?àgÖ?Ýà?ÝBb@Ɉ@F°@.¤L?ÙPu?©æê?-˜?m ?\?¡VH@ìÛ?–í_>ê¶î?"?Mâ‡?“3?R™>·ýˆ>®ÛŸ>û[0?^î?7€´?C<=?¿~1?¸ƒx?%éö?p?2Cš?rzB@m@ ó?‘ðY?½1Þ@™?ãÅ?•?@–é?„t8?W)>T» ?3sÝ?’]z?Ž÷‡?„˜’?âw×@‡?¡W_?Šfú?Ik—?>?Êë²?Åç?Åï´?Ãý?„ªÇ?‡¼?šØ?£7†?Öÿ™?è?@k6?鵨?ŒF6?‹çñ?Š©Ù?¥«»?ÅyN?ž•i?}ß?;É2?.¡? k?¶ð?Æ©?ûè"?šÎÛ?‹šî?bÓ?µã>ùCž?¼ò>ôµž?ß?ŠØ?µŽŸ@ŸÃ@F+»@*fý?×Nà?·˜J?ySJ?OC?Ë>‰–aˆ +?@û?„§?–Þç?¡g?`}a?Oü>~Ä>:PU@0®0@8G?Ó¨D?¿~ó?”‹?aÍ?R3q?:$>¬ò?K6?öpó@Ï@Dg”@ `]?aÕk?ên’@9@L?÷!Y?†l­?9Öª? I?aL?„gh?ÚB>æ?þC/@áy?ˆÿ#?^Îè>½Ò¦>£´B?¢p?§`>þ”?7Ÿ@#¢?ì¯C?ÒM?«×Â?Û‡Æ?«à?'7>ÑsÝ>IŠ÷?Ji‰?Îeú@ ߶@a+»@«ê?ÇS ?Êæ?Ê°q?¡O?Œ÷·?O‚*?9.;>¶WK>ŒÞ?¼)?Û©Ù?¸rð?¸*@Ù0@c·?CÂÕ?Hù‚>“iT?@×@û³@;8@%¸?£í?†À?ŠA?G§?1[X?MÚÃ?†Õô?ò=Cé?MiO?ÏU<@IýÀ@‘b“@Ï[?9¾ð?ž!R?ÄÓ=?œØ?‚‰»?ž“á?ªcå?`½?@?ËWÎ?Ûzò@ +ãZ@Ac@%½@-Hq?ÔUg?ÏfÉ?åMî?éر?îl?ôÊ0@*@ +;®@¯ü@Þ @!÷$@¿?Œ²{?” ï?§Šú?Î[Ù@¡ý@ò@# @g?Ù?¸B?‚J!?ž^»?È ?¨Þ5?‚*€?ŽÑ?œ§°?¦Ò?®Ãç@t¯@QNz@+Áï@ê@@ ÙK@õ†@">?Íï–?ƒ*Š@)ú@A!@<žÍ@8 +H@[:?øÇ?Ç}Ä?²ú?°Õ>?®²m?w ??_Ÿ9?ic?]tR@ …Ø@!ƒÈ?Ù~?Áµ‹@&„ž@5nB?¨F5?r¦@J–@a ˆ@~!@ w1>›ç²=tAË?ƒýË?‹@4ô@Aý +?Ò0Ö?ŵ4>;=H3?cº?‚$@3lè@7ܼ?ä?•ÊÔ?åôÚ?æ½û?ž7è?öW@[w¥@bÉ@/Á÷@,â?†Þ?Ê`@x9@Z?´L&?²] ?—'…?‘Å@&Å<@0Ó…@Vç|@]\G?$j×>þ×<@IÁ¾@OŽy?!ˆ??Ø&q?ÞLl@"ü@(ýP?á s?Öï+@¥_@ñ@`à @mKî@Dš5@>%@›;?ý[õ@#T@‚@{¤?ôs@g6@„ÌË@-@f?Þ\n?¿D·?è¬r?öû?Éà>?µ³:?À‹À?È ¾?«‚0?² @%Ý@¹@®ä?ífS@Œ$@ø!?§ÛÑ?β,@—@0/§@?ßåË?ä7œ?èˆô?–5?KÉ?zB?¶ÖÕ?†·½??˱?öÐ?ïÛ?ÙRË?ãœ|@ ýa@…¡?‰¡÷?† Ì?–¶Ê?˜½Ÿ?M?Š?{?L;8?H©ï?‰g\?”Jé?˜Ãå?9ð?†x?t†?á&…@¤î?ÑÂR?tv|?­2m?ï1ú?£¦}>^΋?â©?ÒX2?½¿ø>óC}>þ~D?DçÇ?@.¼?éšR?ò ?ˆvA?r?M‡?G¢H@?Ý@Ky—?üwr?‘®?8>>,ã#>P‰>ñfÅ>ò‡]?ã?+M@?Œ?.>ð¿z>ð?—È?z¿@"×@ä?ψ[?›ûÃ?„$£?o½H?N±?$Nà?¹?Ýæ2?Ù/Þ?¿Ð?¹ +v?Ž6á?†Ìû?¯8á?²a¤?²›ÿ?²¼l?9UÉ>î?ÝÂ?ßÒ ?Ÿ?!——?%­×?=m?p ?î…æ?â5ð?:‚??yH=ðk?b4Þ?˜QK?Á<>1;‹?f&2?åEÈ?±‡9?®~?E-?ÆÖ‹?ËŸ?RF´?L÷¶>ë™p>ôO„?²]?–’+?ØÕ@Fý?ó”?‚Ç ?r#ª?%h¶?Y°@½ù@!³Å?•d?€N?ûÝp@d?—æŽ?F?ª.E@г@Á?Þña?Ì(O?”b8?ŸSÊ?<¢¥?*ô?‘SÆ?Ÿ¼„?o™?É«?†Ù?h–?n|9?{’Š?i]>èŠ>ç??¤£Z?µñG?_¹?+ùD?%]¶?<5?fú?³Ó? rK?2:??8|?Ï6?Õ(?“öû?}Ì?…Å^?„C?¿=è@Öù?ïxÐ>æ1t>èºó? «?,Õ@£’@"I×?¨Aá?1é?há&?¢Ó7?Õ4Î@—¤@w—?~š‰?xMµ?ç-’?ë°¯?¼‹Þ?§ø?§æ4?¬?£–ã?Ž~º?…2?XÓF?Eu>ðô>Óe‘?}6f?˜#?˜C?érA?îb;?åiÔ?À¡ø>èüy>íi¬?ez?e|¡?ŽÈÙ?=H?ÆŒU?åœy?‘·Q>å±_?w@ F¨@ݨ?I ’?Pš?0BM?8w?”Ÿ¤?©*†?†cþ?fVÔ?fn?f† ?ÀÁ?Û¨b?ÔWÎ?0±G?8!›?Bë?3Ùj?Ùéq?ø°‚?£×á?g¬ê>þ!£=š@$>§ÒJ?W¤?rȪ?h„,?f7:>òWl>ÓUO?×>ß=Ù?®?¯£>ÜÃ=/~?áŸ@ >%?ª?>›ÿV?s§?˜M„?)7\?B>“??`¯?H?’ß?ž]?Ý&?xÆ¥>m™g?n9U?³V?Ë:G?Ø€¬?¥i?p×?:Z©>ðÅÄ?#tp?Jvê?w‰>ò3}>¬BA=AÀ>Ž÷Ã?Tíî?9ÜÂ>ô“ä?kk?eÓ´?3òæ> ß=¥mk=²=K>ø5>ó­é>Ñ ’?_H?~#¹?8ÅË>tÎ>« >üUÓ>­XN>Q>ãÂ>éK?‹;>VÐg><è]>¡ix?A j?jK¯?€×>ûÅ?;£¿@:‚œ@‡ û@æµý@­Í??qÁp@éØ?ëÚ?Mj?„C?ÂJª?‘Ü7>ûÕ?8"?7kš?)ž#?%2i?v>ÂÂv>³Ñ‰=Ù"=S~;°6á=²Ùž>ûyi? +rm?A¼ì?+â¢>ûšÒ>õH >æï>êi='3a>ûÍá>ïÈ=ËSº=ç#Ñ?p¡è?wä'?x‡B?héß? ˜Z?—W>Â3>³U¹>úœÎ>üKVÕ 6>Á€Æ?#M­? ý}?AÉú?R[µ>+€Ó=rH9?æ€i?õ›µ>™“@>Z³k?Câ?¤?/*?#¿=~ð?‡Ø]?‘ì„?_ø>ýM?M'.?`“Ê?yý=?}{"?}Šƒ?}•o?€" ?ƒha?§Ói?¨E>ÊÃÆ>‹ÅS>¥vÖ>¿?V/?x-$@üy@M?Ëmj?¦XW>N$L?ƒ^ ?¦÷ø?+—”?°â?Iû?iq?ôX?(qS?\%?]ñ>ת>¤`P?dŸB?>µæ >‹áˆ?‰Í?–e•>ÔäÊ>…;??7–0?U'ß>N/¡=‘} >ñàÃ?ü¸?u¥>ÿàŠ?µ–Ù?¿ü”?M}?4$?(F›?oŽ?E¾,?BŽõ?¢èi?®‰?Šêô?€Ç?6Aá?CÆÄ?š×?ž}w=YËÌ=` ?{?ü?‰W‰?‡v>Øt©>îƒ:?€§â?iÕÜ>­Éj>æ)?Jž&?:tæ>ùÇ>Ó ì>› Á?/ÐÜ@Ò?úú?;z?^ùß>MÞ>ÀIf?vtû?W±?0{? ní?0“÷?Ad]?R,ã?USÚ?M‘Y? Ç(>DÞÖ>²ÌM?|E?>Ób?h­]?¦¤ð?埕?¤€?J$ ?†^0?›á?@û?Ĩ>øŸ>ü–‡?œ'ü?Â×=?}º;?kñ?‚§?‚ú>—¢E>eŽ?Ìå?ᔢ?“é¦?†«P? C3>ëµo?Ê66?ÒçØ?-Oä?#^Ç>Ãô˜>î8=?‚ml?‰ æ?¸sÊ?ÖQí@"—"@_?—Û?' ó?‚£ì?cJ ? ãÖ?&$O?+bÛ?W²€?ÿñ?[Óè?Ú;?" ö?1,×? +z?õ]?89Ë?Oîª?™X•?¶{2?Ó©?bRÚ?$E2? +Þå?«?°?ÃÁ?‘{è?¨=¥‹;?g³q?]çÜ>e>MÕ?h„?=¶?˜‹s?“ „?Gv}?z’P?¹.?éû?@/ h?üÃö?%)˜?Yñ[?u©?a>²?ø ? r­?ÀO?RÍÎ?{È?/ø'?ži?K#?TfG>´ Ó>Ž?ˆ¸v?š¡z?«Á£?ª^˜?|\y?mÚ@#"@½«?íð|?哘?®Ãë?¬mÃ?µ¶=?ƒØY=º}>“¶Þ?]?Hĸ?„8 ?…$6?‰¾ê?EbÐ?Gs?K$?oà³?áü@Ý?ÉÚ›?°å³?kÆZ?SH?N‹G?IË»?Å÷€?ÓPÛ?Æ©4?Âfß?›L1?¨åý?öÞÃ?ììD?ÆÀÛ?®é’?w¼]?•>þ?¾ë?Y¦‘É?(Œ?·ø?ÙÖ@Â?¤Û?? &?>‘3²=Æ?ž÷P?é(N?¼… ?¨mÝ?×ÄK?á®—>ÎNC>Cx?­T`?²~ù>K>­‚?Áã»?¼B?»D[?χ%@•¶@/J?Ø??›oc>–E·>Øv?$Í?†1ø?Ó?êÂ@Á?®´F?sšH?€C?„ª8?­žÈ?¸œ`?Ñ¥?ÐÉ>ö«¼>¬"³?”,v?©O@g?þ%6?¢º?›e[?”¿?}?˜? +[?*H?Žè?”¼Ë?’¾ß?8Nß> ö>²×?N?²‹&@ô¡@»ÿ?þ­ ?¨Ø§@7¥@W]?vª?.$º?»º?Ï&?;-^?? k¹?0 ò?ðžú?âJ?“ ?´üð@0Ñ?àe×?…ôG?†'?ÄÃ?Àt?ÿãb?ü?ï?ü*H?•;±?øÜ?0?µI@ ®¶@3ü ?ÝÍ>?«Sâ?ÂÎv?Á€`?Ãò‰?ÅÇÕ?üDV?ûß?½ÑÚ?¿–>?Gü?6]Â>è]b?L?þè0@ç3@WÂç@BFJ@ ³d?ä¨2?K@w?›rp@Y?ñ ?Å1[?©S?³à?‚‚¶?ˆ{:@L{@6Ü¥@‰®@ï›?¿"«?• +ó?Õ?ðSY?²+…?dI?¬ì€?ª½x?ØÃ?îò´?òŒ?÷­,?qqõ?Y!?.a°?'- ?d{?k¸kE?Áö@Ôc?ígA?Â=@ ‡5@#xX?ÍùG?Iþ?çr÷@Žu?ÓŒÜ?Â<(?åß„?ïjÅ?ˆÛU?SŠ³?Ρ?æÒâ@'¸@1â@·L?úÅ@±@!X‚@ W8@#Jª@*èf@1¼î?‘±Ð?_0£?q«?\#@¶f@0`?’\ ?ƒ¶œ?ƒÅÝ?…x\?ª'º?¥š?Üø-?Ù0k?íDÈ?ô¼Ã?ÚýÙ?ÕtU?ÿFÐ@8&>ëÈ>ïK@mqŒ@m )@üX@M?É/?À£þ?±;N?º(Ê?Ûï¡?ÎÓ?ó¢?öb­>L¡t=ådö?§??€÷(?ºhx?¸‡@ X@ +ôÑ?§mÒ?›>@Šœ@ì3?“j€?Ör@<ˆ @@¿Í@S‡K@RÓ–@xÊw@}¸}@0”@ šs@›@¹€@&h@,,@AË/@Iª@ù·@½À?‰—?&Ì«@º@i?²¹?„Èz@(¬@MŠo@òÕ?ð0`?¤öw?{Ðþ?·O«?ãVÅ?çÖã?âèÌ@l@vC?ÕÜ…?{è?“«?®Â™?ér1@mØ?ó¯R?¯‰ž?õˆ@;÷8@üŒ?»¡P?§D}?rcÈ?‹O.?»Je?¼£Á?Ä…T?¿©)?—¬ñ?’§>ù9C?!á*@ Ht@8Ç?¨l¢?¬»l@, `@%‚Z?á‹"?×xÓ?Ž±?_G?;!ö?#¼?¥a—?»Ã»?–ã+?‡T +?Š½„?‰ím?ëé@ÐÔ@Hûñ@sI„@9xq?å #?çð£?öŠh?Ù^?˜Å$?’á¢?n“ü?€åæ?’¬Í?’–@?u¼.?v‘?e½?S G>ýª>õ3?U'?>q?^Ý&?`ïè?\%?d Y?¤r.?¾§Í™?nD?ˆg?›ðÏ?ä§-?Ù™-?Äõ?¿df?Ötï?ÔT™?ÿß4?ù;Q?e¯Ì?"õ'?ï¤ï@E¬? Ãã>·£ß?k«B?½8?‹²ë>ñlðÇÉ>ð¨k?¯?´Sè?æÛŽ?ð8?׉T?Ð~ü?¬Õ?’î?À?…X?“9¡?¢£?°mi?×0Î?âQ@ +»q@5¹?k}Ô?n§N?Ý3«?é¡-?Ûýà?Ñ€?ïZ?Áá?²º?ž¢m?œÀ?™yV?š¬¹?±Åð?µ$´?'»ð?"šv?el}?K±~?F›•?=d?€k³?y?aÔ(>òaI?\u?fÿ?e×?{Ã?Ê5?kmâ?kNÑ>¿ê>–Ëa?Û U@·×@Zi@ ä?åSæ?‘Ó|?Dmä>$ª?¯Ž ?¯€:@ +Œ@?ÇU?²a4?Ís¼?ÔhÎ?Í¢w?Ô:ç?ä;„?úéC?î¶?¿8?t›?0L?3Þ?·Qð?ÓwÚ?—”á?Oþ¡?füÕ?‡f)?šÜÀ?ãÛç?ÝS©?fr?`xä?§l ?­™»?4 |>çR_?k6?=¦B?‚Þ?ÇÔ;?µå`?&)›? DÁ?˜ÕÆ?œ{Î?µ(5?·«?ót@ °ø?ìú»?­Ò²?¡—é?Y©‘?S—?M~?Gih?±Mu?Èý?td?)ü? p_>¾Dp?HŸa?åºø?Þ­'?¬@­?¬6Ú@ýT@(PÉ?®¹?l?èÄp@´Ü@é?þ×a?ÿ{@ +o@’/?ÈÅ`?¾IÎ?:º?ÃF?=Ë?;$î? T9?û/€?ß?¥?«LB?¨±,?Ø0æ?Ñt®?Öð?ÔÇ@@ 'ø@–u?»Í‚?(­Á?^>ˆ?¬Z7?‹>? ?9@å5@ S?ák?¬©ç?Rf:?ÜR?6?=?fŒ©?sEÎ?Œ.]?¶é>€žÀ>f:?Ë%Ä?Ês@J@&„r?Èq ?iXÅ?‹w?š¬&?“*†?’I?Žæ?˜o?”Õ¢?‘Ë?@x?…°e?=b?•F?T5?” ?e«²?p{ð?…Aâ?yâ€?5 (?#$´?!';?"ˆ>çM>Ú‚˜?qÀñ?X¼>òvD>í*+@W“@1¸?S>J6t>Á ‹?D+R?†¼P?ƒÞ ?p2ì?K4\?Æ}?š ¥@ +Ô?Ñ >ôõç?=£ª?¯O?`M>v>èu?>\×?n I?г¯?­Vô>ö}>Éë"=$,«;·öÔ<š>9C>ù^Ÿ?øt?WÑ?>"†>n©0>°Z?%d>ÊŒ;ùÔ»:€;­>p̱? C>—ž]>%&a>ã•}?kê=ûÀ®? a?,ú|=˜N•;HãÑ=ýÆ0>Z¼=w­6?ôã@ `@œUN@ZO¶?[3à?ÿ4? ¨‰>@%h?k;?¤‚p?…>úöÓ>úR? æƒ>ñMµ>' =È3U>]'q?bŽ%?‡£÷?º#;?ŒSE=yç¶>;Ð?Ù ? •>2;è>/×ð=¿ç?É[?¾>ûÁ_?ìÍ?.Y/?ü?y? (—@i€@ǽ>üK?XQ?]{Æ?TÞr>ü:(>þ]7?K±Œ?6¿R?z7Õ?|qÆ?’$? >U‚=ŸÓ`?WÝ9?oÒß?}o?„Oÿ>ùÊL>Ö%8?šž1?œø©>Ä…É>¸iæ?Ñ5?[¤?xÀf?‘C!?>$ñ?'~®?ÂA>ýjÒ?[Zb?nÕ5?|CY?}™ã?³ÿœ?¹-]?<ÕG?--¯=ÎDÅ?ÜÐ?QŒ?|>þª?s]d?‰ê?ãü@™>¡í>=¹C=n®\?bÙb?€‡È?/>þ¶¿=÷‰Ô=¬?`? +$ž?!f?¦[>ÿ ;?-yg?:2 ?=-ï?*&/?›ø$?©Bÿ?„bË?x—>ïl >¢ð?{oÉ?ƒï?¹p?¼ç„>ÿëL?†;*?|­?&· ?&ö5>¸D>Ë(Ø?~8?€>ü?x&£?k:?¸¸?½2—;²ºG=Ã=¾ûü>çQÊ>óÊl?€þ>ë=š ë>ŸÓÀ?ár2?Í%>?€­&?gŸ>¨øÔ>øî?¥S·?•:½?Dµ?)b(>I=œ>2—>ò>Þ·A?¥ÜV?±ªÀ?Á¢ž?…Ÿ<¥•¯>5ÈÛ?4Å?-î?r?A´u?R?Yª?a–?’•? L? vW?€Ó?…Ü?Éžý?aú?ž¶?R¾G?S?½¼B?Þs†?r[“?É>>5>A<:ëV<¸8=¯T?Dk?qÌ?*g„?óx>ÕH«>´¾Ç?²¦8?ÍÏA@Ó@e¡?ˆŸm?‚> ?‚F?ƒah?—Œ²?j¹>¿Ã>Ól??|ƒÞ??7¬v?ÂþS?µ+—?{s§?ÂæÓ@/¾µ@×®?f¸S?aŽÊ?\b|? Ý`>N4>c(>wÄ5?.t?‰ÆŸ?€EÛ?c‘?—q?±„ƒ?³Ê +?¬µ¸>íû±> 9?i”?Šz>,kh<î‡P>ý§J?î>æÚ>Ý{?¶þ?¬]D>º©Ó>¥«Ë>@œo>»ÛÏ?Šòà?¾ã? †3?°Œ’?ì‡-?ÿjó@d±?ÖO‘?f3?“à`?¹ç?¼gÙ?¾êÈ?{’à? ùÇ?•4?—½?æ +š?ï‰?d¿?Ø6?B¬?@0õ?øÏ@³õ?ȶ5?Å_?K±H?f×Ì@'I@2Þ?¬ ç?²G?È‘'?»¸N?„#…?w‹d?IQl?€ad?¸ìk?©¾×?‹°”?¦œ?ÊM?šBÐ?y=µ?•?„Qa?¤Ùè?¸ ?‹70?„T>øF4>Öžd? òü?§¢?£BX?œ+?«0s^?‰¢õ?¸]?ž?˜P?¬H‚?´éS?NÃy?>:æ? ß§?¤,?V}'?YÇÉ>Ï·~?5»7@3%@ED?è„™?×p?ºò­?•¥y?"Øe?DP&?}´»?ƒ›n?ƒA?3hY>ð£a?"0?Egm?­z=?Ç¥?ü?@¼?^ˆ?'´´?þ_p@r±?«¶ ?ª,[?êâ3?׋Š?8ÝË?QÃY?šEí?®'Å?ça?Óç°?® +?ºùÉ?Ç?¥ß8?„´[?Î×K@®Ô?ܾ?Á›|?–?„­»?Ž1A?“ƒ?÷Lc@§»?'Ø?£8<çY=zƒ?¢‹ø?¬„£?éDÍ?Û?›u?¦,?¯ÄC?†>0>•T¼?5Ùô?¸‹?¢8?„„ ?ˆ@G?‰ñ±?±«}?Éá®?ñÑf@u?Õ{?¾ä4?‰+8?pŒp?“g?¥2v?¢ÿK?œÏ¶? #‘? +-ë?°ª?Ží?¦°/?Ÿg??„Câ?w–8?7¡0?„g?ó @±ã@5"@‰?Æ8®?Øîñ?çš~?½D?¼?DÚ?Ô–?»}Œ?ú¿@M@ é±@+µ¶@2 1?îÛ+?×bm@Hèš@Q4ñ?³+Y?ªLÞ?…#g?‡¯H?ç ¯?ÛáS?ƒºô?‹”%?µPa?íP@vûˆ@c²@=@ [~?ïa@±Ê@$eù@ ¬Â?Å5Ó?ã,Ú@˜Ê@8÷@¢ç?Þ­‘?ŸB¿?ÆN?ày?„x?&ÈH?‘=¬?¯0y?# þ>ÑÀ? - ?¿öb>î˜>Š–m?åš?¤Ñ?Е?Çö×?:?>Ø?Äã?°?ó¨Ó?ôé‡@1 +@; @_“þ@]-o@BLt@%‰ñ?Œ›\?Ñl@HÕ@(£?ÒÚ?¶×ç?HÁ‘?_^?‚}2?žú`?Ãuð?Û Ø?ÿ “@ë‹@0@´s@*,@öE?ïæµ@´@é4@&Ä@ñ@?Çð~?¥ZW?•…Ü?‡u@?¸7N?Éèe?ï€d@ \?Ó\¾?»ŠE?ÆÃÇ?Íl¼?Åwö?ÂAY@X@.º?òŠº?ÓŽÏ?ù%@K9@ò@!!œ@!Á‰@!qƒ@ïÒ@1Ä?Îê?Á‰?Ì?òt@™”@8å@ArÒ@J¡ +@ +ÑA@&a@?"ù@?}H?Š›ÿ?€–Æ>B‡·>Z&Æ@KÑp@Lã¨?óær?ïQz?Ô¢?Ö +.?Ø›?I6=@ QB@'Ë?õÑ ?ë‹Î@$Ra@&Ù#?Ö_?½ªÛ@ä–@@>@?ù¯J?Ìé?¹ÕS@9DC@\«B?Æ?E²À?—7s?¬­½?*©>£®¢?’.9?ÕWù@SY@@ x»@œÓ?½¯?bUŒ?ë–6@<a@\æ?æNj?Â:ç?zaÀ? +é?³·›?™Å²?(3t?/i¾?{Eª?§Þ@&­@J0?yp•?‘â@°|?ï.…?—³õ9²?„ +ã?‹‹Ÿ@Cå@Ä?›Ö“?9”³?Þ1Ÿ@n@9ú,@TN@Q©@PT@‡E?¢±á?¡¼2?§üR?– +?@¤ï?cÒ³?©NM?®fö?Ò¯?Ôå?ÿ„î@³³?Ï>?¶šÜ?çáÖ?ô¥ˆ?×У?ÐÇ(?û ‡@¾„?Å»=>ñw¸>òÄ>ü"}>ÚÛ·=ïqç>ñš=ÃýÅ=ê.l?8Qï?EéÒ?›{¡?¨3?üÄ9@}w?÷È"?è|?§t4?gû‰?dlU?N±o?iE?Žj?‹Þ.?‘xë?†-Ò>ôô×>ð²„@çl@V¢?:çµ>¤ ±?S?3Ý"?=Ë‹?GµG?l÷?õB?nȉ>qÜ6>«¦”?Ž…ô?‹êÐ@á@ ?Ùô?ÊÛ“?-˜>Ú¢? ©?møƒ?ÝG=e$Œ=Åe´> )O>n˜©?kt#?kWé?Gð–??ŽD?Õ¯ù@¢¦?ã?Ä‹K?×”s?û¬?³k>B¶î?¯”(?¯…Â?´Nl?±Ÿè?¯yõ?¯8÷?^È?„Q0?² ”?Ûú1?Äe?™ô8?‘þ?=‚?!Ã?f"F?Zñ1?  ?®O+?²Ëùº@7›Á@/?x@5&@ö»@@^#?1ón>‹]?rû»?º(ƒ@ñU@]ô@>-~?¬j?¬‡ ?´N?·z”?àâ ?å—i@Nù@ Í0?ÒYx?Œk³?œû¸?¾û·?ª}?7bÅ?E’?¬"/?¬“W?¬ @?¬­?¡rŒ?•3?\i?V•?_Ì­?²?’¨Ô@ ŒÁ@‡H?âû?Üx$@?¸@¿k?Æãó¶V>éÆ->GA;Ùk=CØ=ãGp>§ n?}?>]Ù?ƒU?f6?5Ñ‚?JHL?´A`?Á(!>øâÃ>í>;?¡ÌM?µ Y?#F³>É+7>·÷ª>¦¥)?EP?{{?‡#å?6H?‚…¡?pþ³?qT–?q±f?¿¥í@ U?À8s>ya#>qVl=çA<>ël}?;š?²éÿ?œ;>Ä5P>ÞD >÷p>ºo1<¶âÐ=íûû>|.>ú’±?îH?4‘Ë?8¯¼?Z§Ð?S=QßB>n‰>ø…„>Ò\=Åd–=^ðÈ>ü Ú?Fœ.>DX?’ÒL?´³a?Ð0>ç'’>!o>«Hø=âþ@oní@v¯Ê@±ý?‚ô?•Ñ¨@¶?ïû?–v?d‚á?%¢õ?ðÒ>úÏÅ>ž>,ˆJ>úøû>¿xk=ÎVv=»,=² e>•Çx?}œÜ?|7ß?Y¤?g‚_?7Ç?€^}>Ÿö">‘žš>ƒQ“>Ê /?£h?—ª¡>û²“?%?¥Ìë?§­3?{Üe?e?©=œ²Ö>‡Ú?j$?^“4?æ‘?+ZÂ?t\?ˆ‹J?›ç0?ß?‘å? [Ò?‚P£?Œ½>Îâ‘>ÖçA<0…?th?|Éý=ĆU=£åe?…,?kk>Çz>ž¥a>Ñ}+>ñú™?/‘²?®Q?rþ£?}Wö?FÕ¤?4 +ÿ?ë•>ý‰I?cíx?{Uw?ä:?oh?¡â/?¦.×?’5¤?†ÜK?4_?0ä«?Dl??vŽ?%>þ;²>] )>T$>íý\>ÓÞ¡>ô-a>þ—?©8ä?½R>@ïc=!91>ÇôŒ>ÑÕU?•ÿ?œP#>ˆ½@>=î>U¸>nU½?”qˆ?£•H?™áí?•?_Áž?`S?騱?õð¾?°µÄ?´å\?“Š?©]?¹7>ÿ÷™?±Y×?²"3>z×>y$?$¶?u?€ +?pŽ?À[1?¾n?^YE?GÒH<Í›®>Ñ’ +>Óa>‘]=úé¯?>«>ÿŽb>ìG½>óæ¯?BªW?Zäo?€²²?je7?ÂP?4yû?Á9?«ëç?=Êè?8%=?2~?,Þ{?'>Ý?P? 8?SšÎ?Áªý?““$>ùiÚ?0&ß?|iJ?|?H0?K9?VÏ?^»?f#?¶??4>í¯>v´ø?NIM?žß?M¦|?¢N>H(+>‚w@>Ód>ÞZ•>éDÝ>þfÊ?ݨ=ÿþ7?M½?ûR?oéû?f‹?ß?}?¡ûƒ?©´ž?Ë‘?Ûy ?âc?Õ®I?Pg?]Ë×?®Žû?±?Ô?³íÎ?¶K?¹HÝ?¢Ó³>ð…;>ÀC < +àk>@[? áT?(Ù?jS??\Ow?!æ!?Nx±?‚ÅÙ?2B‘>›¼>Þ²š?ñÔ?%G?=?œ4S?ÄwÛ?§ç?•Ó\?ñƘ@Tu? ¦G?u""?èUå@q¤?:$Š?Uö@OX@ö?µd?ªÚ²?;ë?Yçn?Í%h?°p>¥Ó+>Û?x­Ø?´ +"@"ñO@Üã?ßÄŒ?âI ?óL‚?­?§?PXG?*¥?ƒf ?zpA?Îê@þ?Ûè1?ŵ„?gG ?4ü¬?žÁ2?«—š@”å@!Ëß?õÎ"?óÜM?ra?o“>òx…?'Þû@ €?êÄ¥? R}?!‹“?À?Ht?´í„?Í­ª@/ ?º#v?d˜?Ûls@BÐe@Qý?ÆhŒ?ž.Ã?„L?õh@’}?ø$Ù?æ.?AÂq?aË=„ÅQ?j«á?ƒ!6@qz@¸Ô?»S-?´Ds?Š?¤NÕ?å?ãù,?Ô +´?º~R?G?ŸqÇ?¿*×?¤ke?…li?‹Æî?•Ø@ +@(fe?È-”?“zï?Ó¦ª?âBl?“V{?„¨½?YuO?O±?ƒÈô?ƒuD?7a}?'/P?!¤€?J³?´ ?×é¦@04?÷à?„¹ì?Ÿ?ÇÇ?T)Ì?Uù³?ÅvÑ?šÓ®?} é?Êf"?éØ?ÎP…?Ç K?…Ú‰?|*?:þL?5¦C?T ?j^e? "Å?ªN‚?ÇŠ?²5?!2‘?Udª?±“?°ÕJ?¦×³?” Ê?i ~?Œžs?¶÷¼?¡d??ˆI[?B?½? +rq?œ V?Ç ?ÁS¶?½* @w@W.?µÌ¤?ª@¬?h?.?ZŠå>¤Ù>³°µ?„¢>?ˆó`?¦ò?’Ôå>Ül&?á?„•°?‹™?—F?›Ÿ?¡#ò?œ»?˜P ?³{O?ÌB~@fÝ@D‹I@[Š@bÑà@íÎ?ƪY?‘íN?„k?à.?e€?I'b?W§Õ?ñ?B9?íP€?ïQÄ@® ?ûTº?Àwÿ?¡¸$?!}~?QÈÛ?›ƒ¬?¦¤K?µ7@?±;h?¬Â¤@>>@VfM?õu?¦Û@ ”@e{ˆ@M­@As?ÿ‡i?ÎÞ&@eö@#_?«ò`?•eC?œ>ˆ?®u?b‚ ?S™›?ƒ°8?„éª?£Ap?¢!A?M.š?‚°¡@´~?ï«”?˜AÁ?±œä?öeè?Ö^m?›°E?Ïg@¸h@‘¥?Ïל?蜺@{Ò?çì{?Ï! ?çÉ‹?ô1’?’~+?9F®?¯°i?ÑV•?—ë?ƒ4?{ú@?loÔ@ +ñÄ@vW?ÑÔ>woO?Ìû3?ß3â@FØ¢@Nµ=>¿Ö>©RA@x@j@G-|@<²?@TD?bÖ@·ø?íqö?…Øð?˜²¹?¾ð?óºù@Hh†@ ðJ?‚I?ð1C@_G¤@X?_«?)µ?iýd?Ù`[@'ÃA@ ¼?å’ý@QÃ@;ÎH@n@õs@"Øh@?u@*‡!@Ï?œô_>ì\ô?™Á?ÓºE@Kàª@€I§@ºÞ?ÅEA?˜““?ˆ‹z?ÝrÇ?ø€@69à@D(ô@g5ª@ov@é*@]Ç@!¸(@&7G?´Nò? U?ÄM?ÐÒ~@ +ƒŠ@ B„?¶!-?­i?œª‰??å?ì‚?ö?(‹?ü!@24 @<d@{m@€A@<ÒI@7÷@ªº@ Ýt?ƒ¢ ?"ë?Ÿe?£Ke?“åÛ?”À}?T”?!C:?ìÌ??çoí@ +ô@##€@yiå@‚°<@CTÅ@?œO@)Š˜@'Lâ?Îâd?ÊÆK?©º?ƒb@©)@x¨@ww@|×? +¯@?”ì?Ä#s?ÆôK?ýã@?þ“þ@^R@ÞW@~¯x@O\@h†Ž@ecº@'”b@!Œ@ z@ní?¡!?¢r?âó8?鹩?Âú½?½ða@n1š@†Û¢@_?ÏÕœ?’›™?ƒ1p>j];ÁÒ!?ïšÃ@*%@5çg@Aö?犙?¤Ú¡?c‹I??RB?Ð1†?ýßë?Ÿ5?aCy@ @`q¬@AúX@/±ñ@-S?¼8b?Õã‚?ûÄó?¨Þq>Äæ½?1ƒ?b=??mM?z5?ØÿJ@NÔñ@MŒµ@9ÛÁ@/©…@o@ V@(F@c=?¥æ?ª˜·?–˜Ö?ïÇ?Kú®?G…˜@ F@#¤+@zþ@Þê@KÍ+@S·H?À";?ç%?½ÿO?ÉSÛ@áH@7Œ¯?Üßz?ˆç‘?Ÿã}?µÊ?mUV>÷z?’ªµ?ðU¤?®\å?'&?P/3?Š˜{?–k?¶­S?±Mb?†¶?M?ŸWY?˜ O?¡QŸ?¨D?]n«?O¯J?®û‹?·È{?Ýú ?è²Õ@ ðÄ@}@Ÿå?îpý@-\¦@U­ @,U¿@¿ˆ?«Õ‹>zhH?AR?ä†u?ßí0?Íës?Ç ¡?çŠ?ÞwT?¶2«?¶?ñd?D†Š?®”®?‘2>Ñ@×>ñOä?Žu?‡4Ò?»°)?´È.?Áa?¾Ù³?ô#ý@On?þí§?ø”ÿ?‚ÀÊ>%»E>åÒc?Vº?ˆÒ}?äG7?õ%ø@$N8@%þ?l­`?lÂV?³³‡?¾†Ú?Éúõ?ÂÜq?…Ôr?NT?¤€?Õò¥?Ôè,?Ûo¿?®¶t>ãÖ)>ûN ?šmÂ?œä»?Œ¸?’"1?+*Ü? m?Žä|?±Bª?²h½?±‡>?—&?Zá?7&±>Åì‡>²Á©>j[—>Š $?»P?¾.Õ?E5?&p?í(@2@Ì?Ø™#?°Ô•?3ÃÍ?1b³?¦Á?¨þ?úŽ‰?ï×@@ ±¹@âb?«×?ivÉ?R4O?HêB?˜=(?èø?Æܵ?Ä|>ô\3?å…?à¨?¤Œ?›½?NM—?TÝ>Ë”ª>>Äe?/?á z?ÊàQ=sžŽ>i*?]…b?‡°?Q:%?FVx?fÊ°?f½S?š¶¤?¤Q·?é½@ +·o@Þ@ú ?ìà?f?¤?kC©?Þê?•î?›ýa?¢q?è³>@Ë5?» Æ?&•?“ÿœ?¬R?°?¾?¸0<@ É›@8?™?p¥Ô?®K‚?ÛÞ^?µá0?€ò?œ¿?½-c?Æ«Ä?ÕþB?æRÖ?M!x?$©D? >¿ƒN?qq?ß š?äæ±?âò?Õß?xŽ?~ÒÅ?‘|u?™¶¯?¹×?ÆÎ?¹p!?¬Oæ?«jù?²I?+B>$D=ôõË?¦'ü?¬?}e[?rcÒ?y¦¨?€v€?Â3?ó`ô?ï ˜@TZ?è +…?4k9?®Š?ò²?þÃa?„øÇ?_›à?š°?±ç?¯?¤`M?ÌÛn@é|?Ûte?h×?–•¼?À\Q?´¼†?˜c¸?¿¼?7Ð>éÒ¨?‰` ?¬Ìu?LFÑ>Ç)?ï§?Hîš?]`¢?#?†¦a?(”?>ì„!>íNô?Tœ>ýÔ×>îSÎ?0î>Yp=´<ü?_ïO?‹%Ø?Œˆ?”ÝÖ?ŠVm?ˆ7¦?ŒE]?…“ë?4f?y¡4?@çG?ú&?{7>Á"? ù?iôi?›•>F&~?"ùÐ>î…#=¥(²>" ->ô6®>ô»>Üv>È_Ù>´‘ >?CœP?dµY?–ØI?W?‰>ÂÆ4>ØW³>î „>þH>ÿU>dö>6ËÊ>•W>Mâ>…O>˘ï>ôæ?œg>Ýð£=; €@{E2@ƒÄ@®š@1$¤?Ågš@8ó"?ÆðS>ž§5>Š›7>%Ön>¤iÙ>ú«r>÷½V>ØN>±=Ï>¬>ñ>» +>ÉÁ?ÖI?qU?x_a?{ê?‰?³eC?™‰9?>¢?N?Lw¯?ERB?>2è?.L*?$´?ÞÂ>³žÔ>ÁÓÌ>ÏüÛ? ?{Ï·?{žç?qÂ?O¤>vË>i»K>üG?Of?[Æ?oMø?žâd?•<=!{>˜{´>wÖŒ=Ä+=íD=/}l<‡ÈA?z+|?|É®>äøL>Ѷ6>e”²>‹à¯?¹ Ï?´¡¤=~Æ@K@ج?84?/úF?¨oü?±Kj?©>ý‘J=|í;ÖˆA>èý>>ýÅ?!M[?1ik?>Mk?K.?¢p>þš?˜c¾?žÈ?•ßq?‹§¯>È'ö>²2Z?ê Å?þ}?5ÎW? ?Œ? ç?Üs=E/_>çÙï>þèI?5µ¥?GAž?¥è7?ž®?aƒ?IB ?y£~?XÃ?mh³?»?++û?TW?¢¨¿?­K‘>q=L‰Ö”>­ªœ>»Ç>¬ê >ºb">×A?:««?C+Ã?†p’?ü?©_‚?¢½#>‰÷Õ>e/Ë>6ƒ>…Î?¯ù@?ÁdK@?ð=?µª?”ßd=¶aã>Ƙ>‰Mï>׫d?S¼`?e×?x!?`Ý?Ešn?YóÊ?€ñþ?‡;’?“ÆF?nÚ?Ä?LÃ4?²²Ê?iÁ9î<$³Ý=W¢>“»?5g?=JA?e¦F?rO?Æ,?©Ö?Žñå?%]ö>†fÌ?3o/?Š+??+Ò?¦š>;&Î=ÅÞà=ÉÛ>ɺK?á¹?a3v?rØu?I¯?þá?*ƒÄ? &ƒ?—*€?šK½?¿«o?Ã<ó?Œˆï?„jw?ÈA…?Ì·q?M6? )?[NÑ?`©?eÿ?o Â?‚v*?OM«=% >ŠÌ?Çà>þ³?¡d?¦“?­³>³G=ý1Ö>½ÝÏ?,Ù÷?CUï?Q2ô?ko?‚ãD?•I€?ŸÏE?¥±?¬ÂŸ?¯[Š?±öÕ?›ª?U?E¬u?$4?±ä¿?ÄÅ·?þ@ƽ?•»z?—E?(íÒ?6 ?j +¦?Zœ:?@?(×?q?w„?|9?n‹e@Ãå?þÙâ?ÒžX?Ÿ?ž4?Ç?$B‹?„“ý?º9Ô?x@?zl?—ÝF?Ç?™§)?‡5˜?€ ñ?wð?<Õ?8çº?Š2Í?œÑ¿@ •@ â˜?X±7?EQ>2fë?Ê®±?ÈÕ?›#‰?v%¢? æ?ÒD@ óy@ S?ýP?ÆAn?{p?€%ã?‚‚?…v?‡S@?†–?„Oªvm?ˆ5?¥¯Â?¦¥¥?œòy?°‘?ΡU?`O5=ŒOA?`¢?ÇÕ@ /@œ@Kÿ@ ?ã`?Ç#g?€º/?a¹ä>qÈÃ>C‹?"q?d¨?¯?b=?¨‡>?ŠŽÞ? §H@÷?æÌ?Å6ù?îZ^@?Ñ%â?Ehñ?•`w?ÇÕ@ ,Ü@DÈ`?Ù=Á?Šµ?ãq›?ÿ°?åˆ?ã¨Ü?¼Y»?´Aê?²Ê?­´ ?©Ú?ͯ?©k?¦àº?¤©1?›ãw?„žJ?„šÀ?„˜È?”Ω?´˜?Ò@«?úÇ£?÷:±?õ39@Þg@‡9?¶òB?„ª?‰Ü1?”ìÈ?ŽÆª?Œ %?á̵?ðÈ3?ßß?וŒ?nSM@Qñ{@dØÕ@`Ü@\?Âü>“6L>æžÙ?Q?È×ç@D?éNW?Ú¤q?¨dW?Hµ@S@0Ÿ”?¡€h?£?ß—ä?ëJ´?ü°ÿ@?¬+6?«^?ôäÙ?å?‚Ö?•7ƒ@²@¡¢@ö/@"@ðå@>@&]?ôoÈ?ß5?çŸ?êa´@kJ@.8í@.ÜÍ@#ÿ@ Šå?ÞJN@*N"@u„0@pð?…”á?º¸?é¡Y?¿ü?˜ŽÖ?°Wo?Ãë@€Š@21@3ÁQ@4 +@4¡i@7^<@’Ô@†Y@/q@>@9z+@4¶Š@7pz@7Pë@[H@^<@"w_@(@J@,Y@*L?÷ÿ?ð=õ?•£û?‚O?Ï5ê?Ï! 6>8Û?Œæ?‚‚¥?{¹%?~>Í@p44@jr{?“½º?—¡¹@6æ²@6¥@-G‹@2•@@@­¬@Cÿ«@ +uê@ +»:@-­L@,>Ù@ñ ?ýœ @Ž:@eŠ@(ä?òf–?¶“-?°šû@ +lÆ@€?ÐÅ´?½’¢?76”?RÐ?hìö?‰I’?êk“@©?ùÓv?ïÔ¥?"åÒ>àS?^Ι?¦¬´?š]?Šœ?àa˜@–`?ñM?À¹¾?±€?£U?~& ?$’µ?ˆ+Ê?Ì3?½Eê?åÒ?’æY?“Öì?@+=NðÑ>¡(Ù?€©â?—s?ÅÈL?×fü@Z?ïÂé?“Q? ¹ ?EÐ%?] Q?Ëý?Ť×?x¸–?xŸÚ?ÕÝ?ÖÖß?娂?îd?–¤?º½?ݹ?虓?‡Ø?<ŽC?Êï?ýÊ—?‹˜ˆ?/`?£tÃ?ð# +?Ò[?#ï?Ð| @6'H@)g‡@q«@!)­@9½&@ëþ?‡;8?óÖ?Õ~È?ϧm?2[?-Á…?¶äo?·õó?¦Ùš?§n?Àû?ÃuA?ÚŽ?æ3l?žöÞ?tr ?ž¤?½•#?£Á}?†iá?‘†u?–pZ?f*Ä>öºé?zz@{@Uà@ë•@S%?n¼Æ?wùæ?ßáÿ?Úŧ?$Ѥ>òl?ËÊ"?ñPá?  ‰?qög?G¤W?{??`R>î™å?#Að?x•é?vüS?`A9?H•)>ž[„>¾S?dCã?r›¯?ê ?Ímz?‡CA?p#?Æ„?æ ¸?†«ä>ï¥q?‰ +­?ïmÙ?ÜìË?³h¤?Ÿý? 6ì?†é>ìmD>ôz’@ Hã@œ?öÔñ?î3Â?Ûs?Í48?¦"ú?‘Ø?©<Ä?ÆY?­Ú?5ŽÛ?GÏ2?TN?Š¹q?aSþ?PóL?ˆn×?Š.Ò?©»}?¶ü?Ô?ì ?ÿµm@ Ï?ån0?W{?O'ý?./~?#ž±?"ü¥?9º?˜À?—{š?á„í@ + n?ôÕð?ÖÁ?úûþ@f÷@ ©?{ä8?sŒ@aUx@gÕÕ?s>Ì?BC?®f?¥¾˜?X=>éG¿?b7´?×?»É©>ÎÄ×>ì¨?··é?ÂË©?Ø?htE?}K?€ä ?ŒíŸ?Ÿè??„lž>ó)e>ì[>Ú*>ÎØ>æV*>熛?Ι‚?ù-V?Èë +? €Š?‡Cl?i%ã?†‹O?­6(?©º-?fÎÄ?f¿Å?y0¾?uðN?2{?¤7?ÊQZ@+h@*C@ݲ?ã`æ?ô=?÷?’ñ5?“é?Ž.?•·ì?™oÒ?‹’-?—Vô?º ?Á@A?÷@f¯?ä0…?æ/·>Ëi¬=Öf?Ž[­?Øj]?®S?c …?´Z@Ftž@2œÞ?œ°Ô?’K?AF?©î?Æœà@z?Äø}?ev…?h#T?t¤?ré’?ÙË?§þ?`5N?eŸB?Þí?¬B¸?Žïx?}5a?@oó>¦K?² ?„»*?wÛ>û '>ë?]?W_—?fGJ?'-õ?ž£?f Æ?§A?ÆP¤?ç¯ú?Ûâ›?’È?¡v?g0µ?gJ¼?-]?ý‰>ëPs?X¬>µÐÞ>†ã|?Cì¤?¿ùÁ?·œæ?hªÈ?q_&?­Ú†'>é [>þJ?u‡ ?šÁi?<ÿ¶>–é? Þ€?k—Æ?x(×?uÌ?†œW?Pfj?8KM?mH?mc¡>þ6C>íõ>ÏŸš>¹¦¾?& +¼?OÚm?‹jæ?”Ò¹?:Le>ð}?La?“ú??¡ï%?¯è×?Î2>ò¬³>ów>óz?ìh?[%Z?1Œ>Zô|>À6%?RvÛ?=Ø`>öó@>±g¶;‡qX=P=˜‰Ø=éŒî>‡>í?zóã?n‚Ž?sKâ?é9<§6Ë‹.Ö>ºCÉ>¤Â'> –=oÌÕ>œî>Î’(=ŸaÂ>8±`@ºž?Â+E>À8j@¶Ð@­Ñ @ü'?ò:S?Ø©·@;§¤?ÿï•?’J?`W›?%)*? +»>ú…ñ>ÿók?æl>ܱ>cÓ=õìX=». >d7>úèŠ>ûS?)š? Óâ?#íè?>ã?Yr?G¼?-¸^?#£>ù«>ÖÍŽ=‡"a>‹jÌ>J•s=¥Í`>F–0?nuž?†Wø?¹Ì^?¥ýÙ>Ó–Î>â ž?Y÷F?JÆ>ü*—?ÂÈ?9J?DÔk>J¤à>Z†Ø?|tñ?v2>ͳ’>ÜT3>ü¨>øØ<¥E@=”&E=€~í=¸ž¢?Á€&?´ç?}ûq?‰Vp>šfæ>ÎÞ@`Å@ .v>…á0>›®?råý!¡>ý)§>ýÌý=×Ýñ=Ò3>Æ>uV?Dûg?J,?—Ī?Ÿrƒ?Ãqó?Ì >ÅŸ>~t?Ïà‹?åü¸?lì/?f£ž?¹Þ°?¾{Ô=ÑÃ^?\ÛÑ?f‚ð?žd?šxn?2H>?D¤Î?mÅ?zF?€®?c}>Í9>§.Ï?VX?aîò>Ö•›>ÜŽ-?}Ç—?¼B?_u?ec?é8?Í]?Pã??¡>3=>/M~>¡mµ>¬ W?…K?~J¾?rï?_Ó?%â~?9™ ?€d×?‚ ?‹v ?m)y>˜r@a£@Að?û<0?Ô¯>Ò8¯>°3>žé?©è,?º# ?ë ?¿\?<_–?-¹l?!®R?I+?ŠNÒ?ðz?€l~?;1€>宆>ö¯»?4>þ¢ø>óªŠ?.ˆ²?p Å?²Á>mÜš?yy»?Ö‘>?¶•j?›t—?)E¥>{é ?\&?ËΟ?ž·[?ƒÓ>Û!Ï>úý= oý?1£©?w­6?®?…s?G~? ?Ù;¯?ðU?ƒö%?et>?KÅ?Tñ†?Y?…È?Ââ‘?¾,>ˆZS>¬ÛÁ?iCø?d Ž?}ë?\Àâ?kó?ƒ+?q'/?VöU>ò~3?y5?÷Á?›U?£>>°k:=­b>jE>ÅFj?¤0@ ?óÀ?ÐÇÿ?¢ç™?‚äÝ?½ú¨?áB?÷?VòX?>C?<}?­9•?Ĥ¨?įÊ?ĸ¸?¿÷ô?Á³Õ?ˆ2u?†âo?Vx?žC?sž?h@™? \>?)JÏ?8–‚?&Ÿ[?rm?y?}‘?f,?àß’?Ï^Ò?·ÑÌ?—Ê"?X+¿?Xx‘?g\?’Â?¥K?4 ?ƒ¾Ý?Ôaà@W?ª­ä?ƒÓ•?,``?Åv?ùŽ@ +"K?Þ?Ñ?Âœ?È=n>Í,H>óè?Tåä?Nó’?„¼?­.6@,fL@Â_?WÊÄ?UÇ¿?h/Ž?š…i?Ñ‹ë?–ó?é9?KÂ? +®Í@B¸@@1³@®2?¾?hEœ?78Ó?Iª?B¿R?¶„Ç?Æš{@ Ø5@ñ}?‡ä?‘€ñ@F²$@5w’?RTÄ?r•¡?±± ?—2%?(EÖ?[¦F?¬É?¹A~?ÆÚ?¨}ì?„•É?CK?lQ?µ–n?þB?Ø=?Æöø?¨þF?¢|û?‹Iw?„«~@rŸ@ç)?Sd[??Ðò?¢- @i|@'xæ?у?5???„˜?Öÿ@ÂZ?ð‰?¼5¤@3n@gÈK?é¬Â?„¸÷?‘é?˜X +?ìÛ?û#}?Ìh?Ç + ?ÇZ?Â9»?¬â?(e ?ë¦?ï"â@Ž¿?Özý?­4?pl?ÊGø?´<Ž?—fK?²T?ÕB×?«Š ?„¼?ÌF@½.?³¦?„„±?²l?Ã@.-@*?‚®Ý?Laö@°@Y?ç*>?Üö?„c?z+->Ùõ(>ôHÐ? +L?;3é?Ì'²?å„Ã@§Ø?ì¶*?]k ?aº­?fþ?;J?/j?ÿ5>@Ztš@ 9ó?™<?¯Åè?Åq;?XB“? ú?ˆÐ?':? é?ú8?§LÂ?´Žë?²b?°8z?›Ê?¡¿•@Ø@§?Æô¯?Ì>â@þ@ÕÕ@;<@µø?É0j?Ì&4?Åu?›Xÿ?úë?³,@$p¢?Íls>øT&?ƒC?Çæ´?N–>‰}?x¹?©¥¸?GJ@?S›?…ñÒ?¦|r?Í­?Ú¬°?hF ?7L¹@DÂB@[Y¡?ÞqÊ?Ä Ã?Ä•‡?ÄŒj?åkF?Ý™?ñn?ú)Á@4¡@*bù?‚Ù?hµš>;dá>À~?¼êÇ?݃‚@"çÆ@ ûz?Œ`m?Ÿe’?ÃÙä?ý¨@6é@øÿô¯?V@&Ö@½&?Ýì?× Ž?©Ý?®'?²+K?Á|@f¥@^M¼@Ö˜@žJ?¢è¾?¯ð›?´é?²V?¸™Y?Àý??¤ œ?¨t@nJ@l)”@§«@ª©@+}Ò@0ÓN@Q_@ Ä@'ón@);‰@X@1Â?”^!?}"%?¾Æg?Æ–2?¹/û[Ì?­8ç?ñêÁ?Úaü?ÇÀB?¼êÛ?½?ï3n@ fp@5»ü@p£@LëÎ@NÂ?ë¼±?€y?Íâ¢@95u@%:î?ô=¦?óÞ{?ù¼?ò½?ÎÔÝ?µÍÉ>ù s?"÷Ÿ@%@ N¢?x¿J?x¤|?º?¡'Î?£[?ŽÇÛ?ŠÁ?ÁÅa?Òu?æ?t®×?‰ ?…¿(?wbû?x-Ù?<=Ñï?0Í’?¶ßó?˜t¡?4tb?nÑ?ßi?àR[?ÏuU?ÊVƒ?7“Ã?2Ëq@ V#@ Å?“§¨?l¬s@*)‚@L°´?ð3?–HÛ?Àà?çÄ;?{²'9ãZ>°ðe?qU^?†*?«öó?ŸAE?:C½?4L—?”?Š±?¹Ú?}?W >ð?»ôÿ?ú¥;?µ:›?n®?šË?Ñã‹?β™?½Id?½oU?Áø^?¬W•;®f<€=0?}?Œ,„>åÿ`>¿fç?µØj?î‚? `*?AÙæ?†C%?·’T?©Ì‰?6F?ˆ‘»?›¬î?Ÿ-¨?ìòA?ìÐ?âdŸ?ãE?ÜQµ?ßíÂ@ûÅ@OT?Å!ü?"a?aÆÊ?¦2?¤æ>€i>•n;ÓGj?¤CH?Ìó½?ͳÅ?È[Õ?ˆnÖ?Ô?TJ?¢Dé?¤ä!?§…u?©»b?§`C?®Àèň>è©™?YW©?hzy?°Æ)?Æ ]?ˆBï?tŸ?O«‘?¬¡Ø?«¤?¥:Å?Ÿo4>ëÒ>çŒÆ@>$@Ú?ëñl?Åöw?•òx?*no?U ç?­9‹?ªÃ?ƒ¶?€a?°Â¡?³«+?ýóh@¬Ã@h?ïW@ è_@'…:@ÖD?‹³Ê?…‘?? +ïè?ßÞ?Wìñ?Y­/?ÓY@¨@Xx?òüà?ɯR>¥ÛY>JÄ?­·B?­¯‘?\å>Æ2„?Qÿ?C±?’?‡v:?ÆeZ@BÕ‰@Jo0@˜¶@:+?à²ï?çÑG?ÖA|?Áh|?˜¯u?h»?„Zê?§ ??¢p?”}?³H?˜ŸÝ?–%?×P‡?å(Þ?^Ö >¶">p»u=臮>ìû¶?Þ~ò?â[:?æÄB?àÞC?Bl?fLƒ?©1?¶?ƒSÆ?7ÄT?Yp4?’/Ó?x{>w®>(¡?‹ÝÎ?„p#@Ýø@º¿?¢‹ó?]z?€ïD?‡‘\?s§ ?haŠ?zb¢?’'Z?‚‰b>¯ú:>†?½ ª?Ë"¾>¢Uº=L=?(Ǫ?aÙû?îôN@x¡?žÙ‘>ˆ >çö?H.ò?Ƶ¡?¿L»?·ù?Å??m/Ò?mw +?i˜ ?a2Ò?–e*?”ž4?Y³‘??'¯?„™?˜þx?>j’>ð—>ƒä +=Ž¯g= +Ñž;‡D0>zDï>òÊÈ?Ž4ë?ìïW?­†??…i?K“O?_N5?LU?9:y?å>à0?L¼ê?´]Œ?“fù?Ix?üý>¡§+?ZR/?Øu?núŸ>sˆk>ý6>UÂk>¢]f?‰©>”Ò„>{¾H=i>;pˆÈ>ðÇ|?#ûp?É8?™Û/?%\D@‘« @¡a@ÁÜ@¾¥?ÅÁ@³"?—œp>¬ºÅ? r$?(èÂ?6£>ú_B>}}·>’ô>°ÃU>ØE_>ú±?Ê ?ÿ >ž…ö<º]€=QoP=¢º¨>‰r8? \F?3¡G?J?µ9>x~'>[þH>?“>¢¨„?YÑ¡?EáÂ>Ôpµ>Áß=„î=ÉgG? ¢ûò>èã@>Œã£>²þG>ü$l>àÿ­=;L>üX@?¥?X„c?VÄï>†~>Rœ?òà?É??uˆ ?kŠ”?¤?›”Ä?üñá?ûÛª?Q]Û?IõÅ>d_Ï>~ç?CÑA?K;?V•>ýg¯??U??Nh.?—]!?Žšö?õ«Ö?û#Y?¸Çè?¯þu=hÐp>²0W>­Ï/?Ç{[?É7*?¢œ,?Ø?š´š?—?0N?#f’?yT!?~6=ëê=0ê?µÚ÷?¿(?wµ¹?dù«?…¡?ÜÝ?=F°?K ‚?zå•?h“×?Hú>ÿR9?BP{?JZK?!ìC?-Æ5?#¨?{8>7‹P> Þž?u—?}‚C«w>‰±?7w¦?.8ó?Pá?Xm8?À]û?½o‚?¤H§?˜«>2k>'?Þý?‘qê?«t.?˜z‹=æÑl>«Ö? š?D#?Ç\?¸Vl?it?.ƒ>³? ôÏ?‡Ûñ@ß?ñß÷?€íÌ?/!=b;÷>‹Y?ˆª™@/—?æ_v>Z-½>œV¡?©?@?FE?ZÎ?•°?FE>Æ>Í&1>øä ? ia?6>? L?í?¾½U@ p_@ª@@®Ä?z†²?¼b>Êp>öi"?°¡>ª<÷j?S–x?zEÒ?9Uo??b_>†4:>y·Þ>ýâ8? {?%‚ƒ?W6?. +K?@:ú?8¿\?- Š?nþ?‹(ð?ÜXa?ÔQ*?‹Ü°?hm½?Ò >ÛÊ?= D>ùÛƒ?ÂŒ}?èú@£¦?ݽ=?Y)D>ÿïÕ>(´?†Q@OY?Åä?‘jp?m8!?B–d?£}ã?ÌùŠ?€³?1¯ +?'iž?»¹?¨œ?ħÍ?ªnU?¬¹T?ˆŒ€?ƒ3µ? Mò?H?|¤W?nQ>¯¾>†ÕÒ?ieø?Z×\?*Øý?&‘¬?u?¬?Kop?‚M@?ÍÏ?Èßý?¹AŒ?¸R%?°sÉ?¡?CÍ?×Ûv@§?Ü®·?–?ŠQW?„ú†@,ƒ@Sâ?¥¯ ?všÉ?ÌðÒ?àÛ¦@b»@òÓ?ß¾-?ÕLÎ?!¤?-ŧ?Æy?±…ü?ó?iü.@>?ï'Î?±d—?’–]?$(Ë?Í?òl?Ó¥o?³Rú?¾Kå?Äݯ?ÈŽ—?Ð +Õ?uQ?$Oý?êîÆ@ àÅ?Ÿú?„a¼?•¸7?š¿ ?LÔm?YÃ?„©i?Šu‰?íbî?ìŽ3?”?—OÑ?Åc¬?Ãb£?¨5“?‡Í¡?Ðk?~.«?ÆÜz?¯5)?Ìý?F*ª?ža@ó/@AW³?ÙGp?ŽíÄ?°Œ?¸X?µ½K?³ký?°‚›?µ+ù?º@ž?´é}?î,x?ãÐ?ÁÈG?»Éµ?»¹û?“6È?_ò?ø](?¾JŠ?ûe?lê>ër¶?¥f+@NJ@d¦@#€y@ ß'@¬T?Éì[?± ³?ŒÔc?„Çì@ +&@?¶ÙJ?´Ø?’mê?U–?Ç-ü?¼Ê€?oè?Š*Z?¹?Ì•Å@‚k@=’?çF`?Äôw?‘j\?€ M?hâè>ò‘x=°uV<èœ=B¢>Ù Ã?\M?ob?„º?™:Ú?¡.R?ò/I?ö¼š?5?N?æ[G?Ôk??›ª`?®à1?ëCÒ?ÂÀù>ÝŸ‘?J«ú?×$i?Æ¢¯?¡,û?Ãé,?ì?Ì?г?¬ÌÆ?Ʀ}?×Ïz?¥Ä‰?ˆWó@ùb@"u®@TL¸@`IÑ?uÞt?u¹?Õ*Œ?ç=ù?ªËr?®%Ð?¯Å?Ÿ¤´>œÚ>Ó{6?„W›?y̹?L í?pç.?ž<ò?¶q°?ÙaÈ?’Àƒ?9ý?5÷?1ö?¡€?÷Ñ@:zí@e? Ê<Ò¼?Šõo?½Mt?æµ#?íõ¾@ +Žè@ +ÿy?¡3?•>*@#‰`@%4>¿z>ôrn?áÅž?ãáß?åüÑ?øŒ@$º¿@!Át@!Ã@Ùª?•Í?¥SÂ?Öo?µäW?ƒ›ì?ÏŽˆ@s?§Î,<ïæ±?è†?„zÄ?99Â>óŽì?Ê?'«è?Z…o?l1?~F™?ƒI™@3×@P%@AÙ@Î@_-í@r[@t³@pÉ?«´ß?©­è@Z¢@ž“@*)@_?õÈ?é·W?‚Û?‹µÏ?¼T ?§{y?e5?ó?Ú?4ñ\?‚£g?»;D@2Ú@#Ô@)Ä@°‹@öô@a@4º?ßý?©ºÏ?µMu?ÃpŠ?²V@?¤aF@î}@C@C@†E?Ù»R@/¹@a¾@†€@"yú@„Œ¥@¡3É@;fª?ýñ¡?³Ž?‹H?$…·?¯@’ä@1pP@úÓ?ø3D?àtŸ?Õ‰?ËþJ?Û˜ó@ @ *H?Â)¥?¯“•@Í+@Í@í@ ½?•?ò÷@ŽA@>ö@Zyß@Yq ?V¶¨?RÄ¢@.òô@,TÚ@65i@:Ýñ@^±½@]é+@‚g@œ@=ZÕ@;åÁ@/æ¦@+j+@ž@ ©Û?í!?íX¶@θ@k†@0â@Ù@Cã?ýÊÓ?›È…?— C?]ôÌ?†GJ@Ô¢@x8;@¼÷@ W[?+"«?#´˜?'r>?jT@Ë»ó@ÆÎÀ?ÂÏ*?Æu`?¹/k?ºè@1@#%?áÆ?Þr@Š?ÿ Ù@7ÄJ@=fþ@g´Ó@cq£@ Úô@Á@„G@´,@/»n@3RÎ?êÎK?Õ,Œ?¡jA?˜©f?úO!@àŒ?œo;?‡lµ?°…A?¼«N?ŽïO?ŠÏ@)@Eg@Ž®@ŸÕ?‰¼?@ìÞ?àV@Rf@ë@$å@ + H?å-ì@ +Ýù@y2@2£@–?ãúð?¤ =?÷uý@,’@ì3? g?‘ó?„d·?˜Ï?»’S@‚~@‹ž<@WBÝ?ˆ%T?™²?Å#ú?äÕ@,§7@#6?ìw?ð'£@/-æ@)|?ŸÒ?œüû@(@ j@'s@'?»Ìx?žÇ?dež?Z\o?νƒ?í_ß?¢Ð:?›\?.†m>üØ…>÷•o>÷W?v ‘?±àc?½,?Ћ+?î.ª@ Í @9¨?÷Ž@7@QÈ@Fò@ Ï'@\?«-Ó?µ“ë?uwš?uXî?£}€?¨ì?FÁ?'"?b¼ë?t·a@ [z@Pj?ÇÓ7>ý‚Ø?³éø@E!?Ët?…vÛ?‚–U?s§Î?Š??¶˜:?¶h?¶kø?´E?˜+?•¾X@U¹?ü¹”?àT?ߣ@é¥@ ‰µ@¹@ ìŽ?½”ô?qÐs>ÿí¼;X%5?2)ˆ?èL‰?ó°Þ@ f,?üµ>?pò;?rY3?‹Hä?¤N?‘²H?‡¶?¯R‚?°.¸?èps?üTœ?åÔÝ?Ü~Ô?¦Î ?Rí›?¡Ç@ù @WB@,¶{@$ËÍ?mI|?dŠP?áÙ?ßv¸?lq?<2º?£ß¤?Ä8?¥h?$?˜x?íœ?Û±8?·û?¹¬?¡À†?ž?è?܈Y?Þúâ?ÔÚ!?Ë—Ñ?ìnË?>Ž?ro´?Ht=GFÜ?€%?àTÚ?ÝÈo?Óh?Çó@œÍ@ø÷?‰eÒ?k?ÙÌ£@1Þ?˧?™³X?‚ü¢?PÐþ?g +²?‹K +?vn»<{Ž< Ôh?›ËO?©Ùg?Sò,?6Q®?6³ä?6WÐ?xˆ?®Ü?¼^y?èõ÷?ßÅX?&À?!c?¤SÖ?¦n¨?éô®@$ ?òVÝ?Ýd”?¦?À>ë¬B?&ÃI?­ß;?­Ï?QÌ×?Kí¦?¨ô®?Â(d?å¨Ö?îE7?Í,è?¨—??’.l?^ØO? ù?»Îà?¸Ç?ÒÍÙ?Û<¶?Ý´À?å« ?ÉCh?²%+?ª>(? ¿£?Á ?9?EF~? ¹A>öŽw?”Ør?¬xÇ?²w?Ãgb?ß:Ž?úæL@ +‹@)dÑ@)¼@h@ ìY?†DÎ?SÞ?Ç‘ý?ð·K?Ãt?–G?£ Ø?É?Ë-?ûìâ?ø›W?3Œø? Ì\?ð=7@ ]ë@ ¦ß?äÌÒ?ªY? ?qÿµ@.¡l@'ÓK?¯íe?¬=\@‚»@*²7?ŸÉó>¡o>Ì–Þ? MÓ?Cýk?¸Â"?¹Ù@£Ž@Eµ?„(5?fQü@Æü@Cx@§=?Õ§+?©Ð?fÖó?ree?‚÷?m\?¼ÀA?ËÞð@ÛÛ@tR? µ"?gÞ|?u.Ç?‚{a?|V?hk4?Sé ?3þ˜?O[½?i#?gy>·ž>Ç¿Æ?hÜ©?lîN?õ³?”?šÅT?Ú¨?šZ?ˆ¬?ú>áW?;@©?Øo]?·„â=wŽ¯?g±»?ms @'†É@!ê?]Ö?;ÙØ?’mŠ?™y%?+l¡? 7¥?Í>ð¬ò?Uˆ?oì>õQŒ>ï?e>|þ™=™€˜>¨ˆ?>~î?/×Õ>å&ã?!1A?fR÷?ˆe]?ž#?]_6=^ðÙ<ß³=È8˜>=š>d-®>¼ºi>úGÀ?‹×p@1?”4d<)R<‚˜>¬¼Ï?¨é>«4Ì>sáê<ü?;PÂ<–î³=ÑÏ?µe>ù¦?„w@¦|Ž@|€u@kï?=O!?ÒYk@%â?²0É?>_?šZ>ú‚?& V?>bÊ>çþÒ>Iì >««P>Ö}=>¹\ÿ>Ðl?2›?€’?W>*5‚>Ïø€?5•?W˜?CaÐ?/å°?9âœ?:œ‡?ß >Ù¢>ÀªÎ>ûy>øÒ?>¸Ù´>úÝ?¶¨?®Å?sW?X,·>ûê>Ñ£j>aNy?°âˆ?(k=/z>›\Á>±Ñd>üog?0?¨ B?®î©?µ¼?·ëß?|Á)?wD™?"¤H?,‚e>ûä?–›>³J>Î\>>ˆõ +>z0>ýH²>ûïQ>© ¦>µû§:¬¢`:ˆU@u,@_v?~ÙG?]¾?ƒoü?†ž¤?Së?Eq>> f>$e?øa„?þ*9?<ëm?Gð²?¢kS?¦ÞÊ?”ÞÏ?Ý[?)f?~›°?Ö˜? }-?¶6Š?¿ K=½…4=Þ +H=¤½Ö=ÒQ»?œø[?˜²‰?ç·œ?å¤_?G»(??¦>ÿgs>ýY}9-wl<œÂ?Ñ0?ŒøI?iØÚ?n‰?'Jj? ¡<šÿM=ànƒ? aM?ö>Í™?>Êü+?%_?+YC?1N?D†½?ž½•?š+–?I6?Xw?ð’?|†¶? ‚;?—xŠ?ú|?9AÀ?¼a?²·Ï?(H?c?¿Ì?¤ú>H\>Œš>¸fg>Üâ–?!—?A\Ž?™§†?—!g?€ò’?:s‚>:ý>Ϭ“?GÿØ?iÇW?_‚?ËýV@. ?Ç[1?€KÅ?º¾k?õv†?´Ñ?nÏV?«=”?ÔH¡?Žv?.µÀ?oâ ?†?¯·æ?ÂõÑ?ƒm|?LÝð?±¸?×çß?u™G?"X“>C?‹â ?·êŠ?Œt=?ƒ?‹?ûP?m˜? §>Óg¬>Ä°c>Äë>2Â?Ô`R?Æd‡=У?¤à¼?–³->Jï>ƒ)b?4ã‰?‡-_@‘}@eã?r;?\1ä?V?…$Â@+%?¿u¡?3 š?0 u?B½?3¥Ó?C›'?uSå?˜~;?–‹6?Ž’­?;W ?ê?€æ%?ŸA¯?pÙƒ?W»¡?£&G?½ý^?Å?Ĭ>]­˜?…Ëš?‹s?ƒ1Í?ƒŠ?ý)*?ó+&?§²…?–(¬?!U?Aæö?dS?¢\R?¼8[?±ÀH?§U¸?™¦Ö?~Þ?të?jü•?^U?]Œ??€…?•Ñ?Âë,?æžÑ@{@$µ?î±#?Ŷ1?—ä7?!p?çH(?öeñ?Ë° ?Åâ¿@œÂ@ö˜?Û6b?Ø× ?„¯?˜«”@ûå@Ö?6¤õ?qsE?î¨Æ?Ïü?„'¬?—ç±”?âÏ?„F4>Њ=œ³?®ÿƒ?ð}?C¬?se?£ë ?´÷´>ÝŸ;>³›?rý?lE–?©)D?§'ü?¢$€?¬Bh@_?ç|Y?^›>?‡Ä²?Ó¬ê?»8Ï?„’+?“Æ>?­©u?öªy@ 0f?²ËÎ? é?ÅNÙ@ +D?Ù.W?¼³ ?šÓ4?“ Ê?è”s?õ÷>õy>Â)?C¼?ž~7@À·?þ (?­ÝŸ?¤1³?8•ÿ?tð>ª€>°ËV>È™?öä?Y ù>þÿ=q@?RÍÃ?ÁBI@H ·@ƒ\@-e¥@Ê ?€­á?/Ñ/?©_Œ?·ã]?ä·ª?îæË?‰H?„Â?TM}?[•V?£ú ? …:?‰Ê ?—œ7?»w?¦ò?^7 ?b¶:?g6î?¡½?ÓÝ/?]®ç>Lj?|ëi?ÊßM?„?ƒ,ó>”=(}à?É:ì?öÏ?ñŽ]?í5?Øx‡?Ú%?¶1?®Äâ?Л?ÇÔÀ?Mî'?VÑ0?„¬q?xù•?QÇ*?QÄS?:ËÉ?=Wê?PYÇ?H@?O¬?õ @7®9@:õš@>?@@*v@"ýÆ?Šæö?gÎ?‘X?©îÖ?‚ß?q8'?(?”·å?´PÐ?°i&?›+»?œW1?\¾?ƒÄ¢?CC?6Ë?S˜?E8?¬jý?ýµÔ@Gxò@»'?=?8û?5ü?MT>?„,ÿ@-T@DÑ?±H*?eŠ? +oŠ?U¢?ƒ?•FS?¢¾…?ªÀË?äkO?å†?¤¦§?¬Òü?)Jj?CU@ï¼@Iú@75K@,£e@P@Ý}@ëD@% @¿3@Ÿí?æ×?Á¦—?ƒžß?˜$y?µ1?€t9? 2 @ ¤œ@dxf@öt?»ªŽ?·a?³?VÖ?Ð:?"¢?&9ô@3i;@Z’^@œü@ G›?ÖÔß?ØCº?¦Eû?«Ã?¡‰·?œ{?ƒF?•Úo@F…@v1a?³þ„?¸¡·?¿°+?ªø&?u¼Ž?‹Ž?ÀhÖ?±Î[?‚?]¥[? '¯?û'?J>—?”ó?Þ¾?âAC?æi¨?±‡Y?X— ?ѽ@ñê@ +å?æ®5?ž?!?Fl¹?Ø©/@ +\?îWå?Àj@?à1$?ñ³V@&|@0±Å@$ˆ½@÷?ì–‘?Îqê@[Ï¥@‚5Ã@Pª@<f?òÞ4?Öâf@oX¬@„ @jâ?Ñy—?ø€*?öd¤@&R@h£@òþ@צ?ûÒF@Rñ@/G@3‚$?šåž?‰¾@ ¼è@ +>@ÏÚ@‘X>çø£>Ér@dª”@gÜ=?¡äî?–•ú?¾Q?Ô'™@à˜@‰†@@å@8¥?qð?D)@€@sM?Ô1=?Ô™†?ÀsH?Ârc?ÜU?ä‰A@ù#@;@q¯@Ü÷?×yÞ?åH½@O·Ÿ@Iá´?¡³—?¥Û?ª?²`?ë—ë?ÿm@Zˆ@\™E@<˜ @4Nz?¿-€?Å=ô@7£@ëF?œ1?¢?ä&õ?èÙn?þ?M?þ–ˆ@gø@jY,@/?>@/^P?ùXë?ñÂœ@S@®„@=ã@CÔ?ûTç?ð6@1:@"v?úRf?ô‹?;Ôô?V7?ØíT?ôh+@÷F@!×7@ +f¦@Y?–Q¾?Z8i?àßÚ@t©?‘8¨?0©?Œ3¦?²J +?—?ÿ?ˆ•?¯–ã?Ê@(V@ZVJ@-¾á@9Ç@ž@(o@ÊÅ?´¦ï?½“i?ÃÇr?Óo£@¢G?ß&Õ?yÁÀ?~!ò?†õ\?›ðì?æ­?ñÐV@ r@ò¢@N€@–µ?ÿ§»?üýÊ@jŒl@mÂY@0p‹@.ÿ@/Ÿ@0—Z?ss?t?¢ ”?¹Çý?Õ^Ñ?Õ»Æ?›[€?{éà?Ãt¬?íãã@ $@ÅÏ@(¦Ý@?Ð3@”Ù?hô?Ê “@"ûÅ@ äç?½C?·e?p-ü?†}-?¡SÒ?•Nü?½²©?¶Ãƒ?ž¶z?™wP?³Ä¿?·¸š?†É?h@?)Ä?U>õS>ôT¬?ÃÆ@û?¬¥n>>00?!-h?¦>?µ:w?ÞQ¤?Ô³f?¶pï?¹¥?Ô’â?Ñ…I?ìaq?ø)?ã?ÚÇ7?Éž?Ãg¼?ÀïÅ?¾{µ?“¨°?qÔ+?t+?pLZ?\?º?¯Ž¾?•åQ?žÉ ?¦'D?£§k?¡*þ?žª¿@ŒS@îâ?¿ˆð?¹þG@Ñà@('†?þÖ×?Æ…S?‘Z®?.ã?¨=_@!Ñ@·?¯pV?£ö—>ñ“)>ûÞ@FÓI@DŸ%?dZ{?Læ?ö¡Ý@l®?ßð:?¨}ú?µŒ!?Îe0?³#?mlê?„tÛ?Ã8àÖb?© v?èåx?«Cw?P€7?`”|?Ž[?–t?©Ú¼?³§?ý[@’\?À£ý?­ýu?ð¢þ@YÆ?ð1D?Ù-9?«”A?=½•?ƒI@gn@ Ú>îú”>榤=ãé/>(uz,<Šwã?…6D?à/?ëP·?úª?Æÿ>b>8^X?´Ç4?®˜§?íd?ó3n?/ì>á¾Ê?{êä?žÓû@@\/>ðòå„?,W6?å»f?ói–?‰B3?‹„ì?Ó?÷!¤?áAu?¾N›?’í?N:?—-@ +@ à›?ç29?ê¾?zgR?fS‡?Á6F?åæ4@• @+?å +F?‹lD?£uH?ÿŸý?õ{ï>ZÕF>š¨?SJ…?lßv@ @6&Ã?ϸí?h)ª?hO¤?htf?2Žo>TŒì>‹ßm?C«Z?F™q=¬š¾=YSç?Ȧy?éð@Òæ@"»?Ê­¹?°%Õ?‘µ%?kLë?k‡,?kÄ®?i]Ð?vž§?`'=—Ô—=£Ä­>íU6>ó P>-Ç>õì¥?M5Þ?H§÷?,|?(“>;%ù>ÕÁº?LÓ?aI4?‚eü>ÖV<–È>r-?>Ä-õ>< ­>tó>ò©è>¢Û?>&/Z>‹nq>ösv?$ÆÈ?qé*?q ?^k?rá*?‰1?"Ö‹>WZR?0p?£&"?@éå=ñÞT=ÑÏ=µ;-,Ë=é <>L°õ>yœ>“{%=~‚=Q ?% +>ÈJ=•>Y0»>´¦ý> ”y?W;¹@7ú@@¸ô?Ž‡3?áKª@É?Ú…µ?«Ïx?*>8?ì?9ù>ò|H>—ñ?DÞÌ?™&?) Ô=Ÿƒ[?<<™?»îæ?žW¯?j€é?>=´ÃX>Ÿ3?"‚u?6ºÝ?G¥Ê?>=®??V?+Ô>6•æ>V·z>¼pL?c z@*1?âd=Vyå> ÒÞ?qÌ>æø=¼>+$>±5>ãZû?‹Üç?{á½={€¢>½°Ò>®OÊ>ümš?Qý?&¼Ø?¦ª>ï9l? hÇ?|Ã3?rè>üß? ?;ì?.¦‚?!aH?äÞ>lW>ˆÆ÷>ýL¬>ü['>¤¯¾>ˆe=à°t=Èå•?n ?sçw?9Ï?Q'?Π?§>6¢å>m?7Ê?)wŽ?@IÓ?[Ò>ˆlÃ>m¸e?„?! Ò?ÒÃ(?ÐP?›®×?•]?‡Ë?ƒÇ!=E„<åí°:0°;1 À>Ôî·>Ím?¿L”?¾ «?„bž?’œ?ÅT­?¿Ý?²Âp?£œs?Ù¢>ô°{?Ž ?“Ê3?ø#?,Iš@"2a@C¤?{‰?y±w?±ì²?¢\è?‘? î€?ZPç?{6ï@ö1?æ‚?€Jp?e³U>“æ>êŸ?ª§U?žŒØ>Âe?ðÞ?€‚[?„]ù?ŒÄú? â¯?þ…ó?Ì@Š?¯?l7@®¬?ê´?ɦö?”N>Âÿm>åöJ?è°?%ï?H‰Á?D8¿?/ç?pK=?°9R?O+?^×i?ü9l?¦'|?½?þê‚@[AP?òÌþ?ã{?•†_?Ñôi?‰3w?,4L?O¥…?m?q„ ?›¬?”Ô‘?‘™&?•;®?—.?¢C?¡ÏI>Ž˜w?Ïs?+;ù?o­†?µ¢?ï’?ù?Þ@Cì@ ™@³ @]ö?<?/*Œ?‰”Þ?Šú@>ŽwÖ>ºÿ\? œÚ?œœT?Œ?`?€y!?EwÙ?À>>­»€>£ìó>àõ?CÉ?»ã+?Â)6?Äýk?Âc¡?·x*?Ë]¿?âÿ ?°?‚Æ7?å×µ@||?Õ|'?îû?§ô…?¥+ù?Í7?à“æ?Vúp?˜=äÔ?Š.U?«(ò>¾6>8&ø@#x@Ú ?…Xˆ?ƒvª?Å?†Ì4>n&z>âò?§Ð?–6?S€Û? 6 @Ò‚@Jì@T?ï¬4?ÅY?Ñ%(?ß#k?¨¯9?V§Ä?4Í>|#>É +?½M?ã*¨@Óª?äö§?ÃÇH?CW? —É>†£×>ŒžÆ?'>„?:¼?c!¥?zo@&g„@ì?7åj?z#n@"àœ@óK?§ÈÎ?ÕÚ@"â?ÿi·?„*Î?¼<Æ@ wS?à1[?CA?¦„c?À* ? !5?…´?‚”»?{X±?>\^?5 Š?–ʈ?Ÿß¶?”¤õ?–?C×G?/ î?› +`?¤ê3@Ê@®ð?ɧ?È¥Æ?·ea?®Pâ?ƒU?Ä|?K°«?t¯?ž¾8?kWâ>êóÀ?)Æ›?zl™?8CÔ?£?«?&wÑ?(Å?-ãÚ?¦mâ°Á>©*ú?T $?R 6?€È?x?¾?ß?U¦}?ZBu?^Þv?‚x’?¥°ò?hû>‘»Ã>Áà?ÊÉ? +;(? +Äà?Z1D?Žsm?Iº?)Ö¿?“ã?Î'?0Ô§?AêÀ?’Ð?˜¡ +?°ó¦?¬—¶?„Ð~?„Ïw?„Îê?|¿C?BMÖ?=ÊS?9I?4Åó?0D:?i{?ÌÔ?™VÚ?üÙ?ÂCM? G?ÑiÌ@þ~@Ò @íî?Ï?·]?™‹?˜‡?œŠã? þ~?õp·?ùˆÅ@2K\@*Ž?ÖúŠ?Àµ?@b?4ón?Qi?0r?t\?ª¿?Ã?ÐýŸ?Ùó>?¦Yn?LqÀ?«õ?倱?Áýµ?µnú?\P? z?gu?$@>ç8@U[:?×Ñ?ºð¬?êvû?ç!°?–ǹ?—es?„k®?Ÿ>ù@ Ü@ŠV@ ‡?ã‡a?~,Å?‡Aª?žm?“ +î?„G?Lö:?@…?;~?8}?gýf?•ÅÄ?þ‡s@ ¸V@ _¼@;®@û¤?ûxI?šBõ?„ Ý?³Ïª?¹0±?Ò“d?×2?fSw?^WÌ?ƒë¿?ŒêÊ?ó.¨@ +a@TóN@D).?ê?øãz@!ø@ +”¢?Ú†?º!ê?ƒ¬ú?ƒ¨s?ƒ¡í?o±?E?`_C?ƒ‹S?ª?Ç‘«@1<@\·d@Xk"@T$’?§ÖÒ?\ ?³ãú?ÒyS?õ©A@Ý¥?ó P?ì•a?ûõ‚?ó3?WÓ?;µ?ü@?öBÄ?T5{?^O[?›-?ž2\?“hR?¶ˆç@Fm@+72?àí?*±0?‚Åx?eT?á?Ró'?ºœq?sÊÚ=Ž=4>ô‡±?£?å"ù@)Ër@O~?ð&/@áa@ `@Éô?áPµ?­ì$?~›v?Ø.|@ õ)?Ÿ|?/{Í?ÞV¸@ºf@1 ù@F÷á@l,G@€ @=h—@"X@ !@Z“@%’L@N@0ñ¾@8k›@îv@þñ?¡‹³?«»@¼U@!ÛÜ@Rw @Sèº@¦[@)€?V™¿?@è¡?àSO?í) ?Ît?Ñnò@6¶W@5[´@b—‚@i‡±@Ú@þ?ž ?¤Uü@v—@oön?Ù?)ûÇ@EUÔ@Gá@@è€@= ˜@ +*l@ +J@?tŽ@:ãø?À•à?¼‹ò?˜¬?š/?œ<ü?£ºÁ?àùG?úõ@D}@D£¸@.ì @#%º?¿ä?¶¡´?;ç?5Û6?@…?0Êç? Ö +?ô]?¿l}?Äôô@có@Cõ@6“@/Øö@†æ@Ä?~–P?Ž‡Ò@fÇ@[³ý?Õ¥.?Ù.)@8E@ðv?½N?Å|E@+î'@+gž@ÿm@-Ì?ì¸ ?ì2W?Á3?½æ @&Ù<@0ØÍ?—Ɖ?|Ùä?¯Ñˆ?¼8¦@åË@¼˜@°@^#?þQð?ü${?ÀG?«ÿG?¥þÿ?¨i*?Í÷g?ÔQu?dñé?¾?"uØ?,+?«?Þß>@/³Û@hDä@K¥@,T @;ÿV@Oën@.5?GÈ~?QgÈ?⮉?ê‹ >ëå»>¶?œ ;?ÏU@?ó}Š@)?ÉËB?™{?’Í|?ú¾?x>;?of?o?l¨¯?fxr?@š°?^“µ?[Ú†?Sÿ?Ä–ø?êˆ?ï>?íäm?Ðýü?²AÈ?Š&_?C§?lm?›J?4@C?¿D_?Æçú@î»@ïK?µ¤=’~G?f$¦?³|æ?vˆÚ? þ?+þî?kÕ ?k¸®?k¡t?sKô?¼ÕÞ?·t,?“ß„?˜t¸?ûü´@ Ž?¤.?Žra?¡2Í?¼ø?µ*?ÿ?v'€?j?fùf?ŸÄ%?šp@?©C…?¯0?¯Ä?¯ +z?¸fŸ?ÆdØ?Êp»?Ëò”?ÇV>?ÄÁL?ÏîL?Uà?J]'?ƒ|­?‡?˜š?ªt*?Äë¾?è /?ôPG@ rÆ@ 8D@Ѹ@Á?-–>çtÞ?¦<€?à¨?ÇÃ4?œ€Ø?¥Ý?ÕÊY?ݪ¢?ÍO¾?Ó7µ?Ù(Ø?ß7?>ÿþ>áoô?Š ?*C?•w ?ó½?äX?˜7?‹µÄ?¦h +?¬¼?ýÂI@ +±?ÆáÑ?‚#j?„‹^?¢hl?š¹|?tT“?‚"b@ L @æA?vh?O$¬?ƒp©?–%Í?hÿ?# Š?N£e?‘wˆ?–U@?Œ’'?jÒÇ>ìÝ€>å} ?â(]@ ¹??›ÐÄ>íÍ©>ñšˆ>å†Å?¤¼?‚sc?‡™Ä?Ûw?Ñ)½?#„>å½T?ˆS@„?ͯ?1ëž?Qšç?©‹?˜ý=—?©>>TØ?›#?Ÿšk?©Å?¬ßÑ?ñm—@.„?Ùœø?€?Œ:ò?ž0Ï? þþ?ž9o?¥ÚX?KY>ð>Â’? +Í?T,¸?h2t?–rO?µÀ“?ˆ>>èÍÃ? Bc?[^?Br?IM? W)=„­Ü=*Îà?À“?óàç@<@/?Æßn?–ŠÐ?uŒT?:¶?)´¹>ÁäŸ>¥è³>ìÙ>>íÚh>î >í|8>Îß”>½¥?d*®?nàD>»Ír>o?U>´F>§ÞÉ?v{?Aü?³4?éE/?…Õq>àž>äù>ó&‹>Ì9•>–»?5Ô”?–“õ?lΪ? ÿ?zl>Ó>Ñ>‹b|;½u0>~ê? ÝŠ?%<ù?H® >îä^>¼ˆF?M…È?h9>Ê%X>ßÕ)>õ”Z>ú&_>æ‘ê> +L>ø¤?á=£î!;5=…(=ÀM>?VU>Àƒå>·$?Yÿ>»3?Ö¤w@žC@ \@¤¤’?1O]?Ä+F@"?Ï$¬?»4ø?.”>›‡?&h?;æ,>ÎQ‰>@°{>´È6>ú3Ú>úEm>úU?oqq?µ€Æ?ºõ?·Wí?tr_>ËX?'?T¾C? X¼>Òá>Àø>…¢;>·œÎ>û>n>À£Â=ó4¬>ºëž?{{?ž^¯?øŠ?õ&?ëÆ7?«]°>CÄ ?U‚D?-á“>Qÿ>?Í,>-&5?|Mn?h©">ük†?ú'?ª1G?œÁ·=¶-Ñ=‡éÎ?#>ý²í=¡^>>Ž“?|ù,?uéR?-gJ?2Ž?ñ>÷ž¥?3÷ë?1«>?}mv?zÞ ?4ÿi?'û§?m?#7?¼O?¸ +Î?rþB?l>?NoÞ?=šF>’p½>ÂaS?é O?Ñ??>x²b>‰òA>Q@~>FÀy?¯x?¼-ý?ÕìÎ?Þh?°u”?¶Á?¼ñs?ºNH?±£?¤®>ÿC?´þ?¿a`?¸þd>:\¤>ƒ&î?º“.?Â5 +?êq~?섳?z Þ?‚ö`?U2>ãõ?k“Û?Œ›À@9ÍN@5†=?¾‹[?¼n?À?±˜ï?#N?Iõ?¬à ?Áöð@,û¶@ð+?>Õ¶?7ÛÐ>Ø+ >À¶Ù>©UN>ƒÓ%=õMž>•Ô‰?€‡™?§ì7@O??íµp=\@>ö5á?²Š?šCW?jÇÎ?w‰’?rÊH?IM>žÞy>ºÃS?íw?/\?rv?^o?T¤%?ZXÞ?` 0?0$¡>·x?MøÌ?¶L?›š]?€))?Z‹>Œ^?—³Ÿ?ãà?ê°Q?ò³?…l*?‚?‡w?Žà?Ãè?v½?žj?Î Q?µ}±?­ep?áÍœ?óÎ ?!-\>w׈?ó7#@·?? i?œ ?Ðò?#Æ@Ä=@‘d?vv?ƒñ?°)¥?¬ƒ“?’~×?‰¤s?Ië?TyÔ?¥`Â?®€¯?Ó–?ØNK?äd»?ò +’?î?©fÚ>@’>hÜg>ö Á?¼¸º@B‡@ +2©?‰(Ê?ª©?ÏÇì?¨÷G?‚ÈD?¯dQ?Ûû?¨´Â?‚ã1?ªj¸?ÃÁÛ?ód?–?E?}6?^HÌ>%™[?=×|?NÅ?²#È?½C!?sû>úÆb[À>RØr@³Ð@ï,?’I?ˆÊá?w+o?„ê¤?„¦?Ô»Ö@Ubß@1B ?†?³ƒ?£ÊÍ?«Ñª?»b ?£ô?Šná?«Èh?ÅN?šRê?„SÔ?'ç}?[B?«©«?Æ“ù?zî?„h„?Ú96?ÛäQ?­êx?­½Ò?ÝF?Ó¦ª?I/K?KÔ?:çè?C?é:?ÆÙl?Û^†?üx@(ôA@[|.?×=±{{>ªG?¦$?–Æé?»³Q?·¸?²hí?–ìÒ?“¨ž?ìoÞ?õΪ?W? N—?¬ˆó?¤E¶?K\?1„ž>D>ÿMN?>Ë?vÆì?/y¦?*äF?&L–?dòw?¢¬y?_"¸>ë:þ?LÑÔ?„ÎT?…™Ø?„ÏÓ?ÕT?}Y6?xÍ‘?t=©?¥ÄÜ?¨¾¡?2Ρ?-±<@á‚@Õâ?9ù9?S¥t?¨!Î?˜ ?L +C?p7Ä?Ÿs?ŒCM?^ é?K?'e­?„ l?ºhM?±9¾?®9~?’x†?€ñÁ?/7“? a¹?Ú‹@2U>Üû…>¾"?tj~?„Á¼?¤@$?­Á@£L@;@SÓ@­Ò?N>¡?:2Ó?[‘?*æ?/?|vÌ?3©É?ŠÓG?Ðs@-u@R»@E¸À@<ž·?–ºé> zo?¿Óf@‘k?_Å? +u`?÷"¹@„$?R‰Â?3Oš?Ðçj?Õåÿ?´qÐ?©l]?1 Û?bœ?ð1A?ÿZ¡@h@°‡?§ú9?³ÖY?Æ{8?µ1´?š)“?‚0?Jib?A½:?9(?­X?í¾?Þ.µ?Ïcð?U x?K?g?ôÏ>Ii«>Ô?±#?Æ ˆ?•ö?•ö?áˆÖ?Ó±•>»§¿?¡‹?ª'?¼Yg@ÛÜ@QH@R7?ð<‚?ƒÇ%?Ÿ•(?ÝP¼?½óé?ƒ°?‰Ì?.ý?ÙŽ•@ ?Óßé??ób9@#ÄÈ@Ÿ¬@ +U³?ób?ènP?çÿ|?ß™?Õ§Õ?ÖHY@ +$Ñ@Æ?›”?ŽÞd@‚±@VÔ?é?+?äL@#Éõ@7d?gÚ?Ve«?ýÀ?$õÃ?Äl?Ê°?Ù24L<]£Ü?§?ÅÖ…@XDÞ@kOÆ?û É?Éë.?ÀF±?¼û¹@‰±@&æ?°‚Â?€VÒ?™Ul?žŸ?Åog?Ù‘?ú]”@ åK?ãø¡?¿TÃ@gM@<_Ê@'~ˆ@p:@")ù@4û@Ó?¾ ~?¤Šê?„*?š(|?µ1g?–Jo?&î4?wçP?ê‚"?é¹%?ôÉU?ñ_q?²Ä?§ÕÂ?‚€ú?‰¨‘@J¹¥@K¾î@!‡ú@#>k@«ã@]@%¯@+Þã@Mvp@ZÚ²?Äêä?m>;>¯jà<»Û'@ +Ç@M’O@rË?ÞÎÝ@Àö@>ÓÄ@Ùc?ŒTn?•¾‡?¦I®?µ»Ù?Ò¯Ñ?ÚF?õXc?ô”U?Ás?Æ{?Íæ?Ë€Ñ?@|b?5ûQ=fÔ»?YÝð?€•?סz?ô–÷@ `@É ?†oK>~Ô?=ñ??‘<«?Èĵ@ºu@?ÇÇì?œIª>Tjê?E…@Clå@9R6?«ì?¦@½?z>ÔÆ?à¿Ë?ÿ@-?± +ö?/•?’9?ƒ>?› ?¶N?œÉ`?qwa?—=¾?ÑP“?ÊI‡?ÕSÊ?Ö£í?H4ž?C=ù?[ìß?f†D?;â¸?%Ãg?ÅŸ?Úáð?Ö„ù?ä¿~?(>ï•ë?PwÒ?«²??Ÿê©?tÕq?Š‹?ë§Ì?æo¼?ÚÍW?Ó,ž?y·?n_¬?„L?ŠE ?ʧ?íë¾?à$l?Ðd»?–Ó>ÇÔw>ŠŒb=.œç>í ß>ìï·@1q@ à?ï\¶?é)'?o4—?Ô¯?6Œô?[Á‹?^ÕÔ?kÛ?YÆ?(M?&Ÿ?‚³?Š Œ>œ ~>?Þ@+;@%o¼?²^?Œ/>üPI>ªÃ–?%Mh?Õ\ê?ÒE9?jì?iþË?àÝì?â??Y5q?)©Œ?ªP“?Ö¬ú? îæ?U¹?”9?é ?ÒÆ‘>èÜä>èÂÐ?,ñ?ØJ?¼L•?ßÏd?¥žÊ?s±Ñ?iÐP?p3_?~Œm?‹PM?—Š +?Èô”?Ϋf?ŽìÔ?/?=Å?+øn?§‚?ñq?ÂÜ?:Ò?G ?—ç?üP?„ïÿ?w¾O? 7~>敵?˜¼Ò?͉f?çú@ÂÞ?û°N?Á7€?Ât?‘ç‰?ŽÆÇ?{h*?ƒ•@0¿@Gz@º?Tw?E?থ?ÙÇ??v P?„É?/”? ƒ?¢ñš?¿ðO?¿õ?¹¤V?™šþ?e„¾?‘ˆ@#à@) Û?7@1?x8?½û¨?ãM@@ák@ÚW?ÇâZ?Q^{?>ý?¤(?$Ré?ÛÙ?âÐÑ?—Š®?~Ø?§†:?¼•,?ÏM?åí"?ÅG0?nDe?W-Ë>×5>ÈæÛ?uR"?À}?Mw}?J²œ? þ?Ëû?º_x?Ž F?ŠÃ¼?œw(?‡q>çQÝ>çkè?Þ²2?Üuï?ÊÐz?ºTp?ˆË?h8‘?Ð{@oî?â9?Q×?d–i?ºËé?Ñ? -Á?¨[2?®Ì‹?¦µº??ŒŒ?7ù\?­©?Öý/?Š4?&d?€>ëãp?9¹Í?¢ðÒ?ò£>ìéi?o?k7±?c*®?Zµ8?R9K>ŸM>·‚r>vŠò>zX?NŠ?pBŽ>ªRÌ=Ÿ “>·et>õÀè>KL=PN`=³GÞ=þø?'g?„¥?Y”ò?S9ò?\ùˆ?U0?©Þ=Sœ!>æaí?rªB?Xµ=±¿Ü>=>*Ÿœ>rÆv>wæ¯>èq…?'V7>Ï׉>#À¡=oz^;ƒß$<Ò¨X=‹Rº<êD(?â?>ÂS>÷¥!>´ ©;›Y‹=?Ë>ïe>ÑÎ<Íöˆ>:Wü>ÌŽ“>³Úš>×Ú÷>OƒÚ?ʶ8@w±ž@(’*@ Ø>+ž@“Ì@1Ô‰?¸¾H?Z>Ô¥C>@ξ?Ö1?;ùW?£î>ùì8>Èø^>¹Zþ>ÈÒ>ÖÂ÷>Œô=JB~?G1/?»ßb?G>^=Æ;è>=s%>œÉE>«1>È`>CN>†ƒÈ?) ?.«?8Q@?Fƒ?{ny?T*>ü/g?.•(?‰Š©?n†C>È‘m>®c²>þt>û\T?Z# ?)šÊ>l^>‚?!™?%ýð>ühŽ>üy >ü… +?5}&?÷öJ?à&¸>üÃw?˜0?å?—6E?¬w„?™mo>?fü>“^n?}5ò?}Fæ?}UŸ?y§:?V8d?cƒ¸?¤–?ª?±Ñ?¬Ê#<5¹ =²E? +Áê?_r?²$Â?«M?3‘?,â‘?½iS?Ê ˆ?@4”?*>þqù>ø>8è>Š?à?T? "?ž½>ÿ4ê?O?ùÑ‚?íRœ>ÿ>?b×?í§Y?á·¼? m¿? 6?¡´*?ž°f?›©‰?”›t?.I?/~?à>*?Õm>Øøë?%?óŒ?²µ?§?lM»@PiO@:\?¤Š>?•™À?Ok6?wÀË?Íuâ?Î} ?¡»…?Ž¯D?Kw&?x%É?¾Û”?£îß?ù;?EÆï?Á¿?˜Å\?È>ÂF!>²Z>”($?äÛ?ì?òÇ?ŒVÁ?ù›ó?³C?-ÜF?"™?6?‚Z1?Õ·Y?˜Z?v>>Œþ<;ÉÚc>ÝS>íw6?ÍéÊ@QÃ@*TÑ@1ņ?Œ›Y>/“Ô>Eª>[¹é>Í1Z?ãm?›®ä?¶q7?GE?¾E?¦¸A?³2v?«|ô?®¡ø>—×=•K;›gœ; 4?¯"?·Gj@Šø@ôý?§«Ý?¡·?•sÍ?‘V7?Ô?/gU?‚Dß?p@•? ,î?"lE?S’0?D>>çÕ?ƒÚ~@.¡‹@¼“?‹YO?2‡Ã<å7ë>×?ˆsS?¥àw?½`Q?ˆb?2;c?coä?‚ˤ?¸aŒ?Ù2;?Z´¢>Û_3?„e[?£×S?/ZŠ>Þ'Ö?¤jV?Ä”V?'{>Ò•’?ÑŽ3?í`Þ?‹4?ƒ3=Áo =Ή+@S±?ç9m=%I>3(7?]ãN?¨±î@Qk¨@&zG?})½?b¼œ?~»?S¦#?¬Ð?²˜š?Ê<ª?™ðY?6Ÿ)?³Ç?Ú +Ì?IíH=ù<6?cv?£¦¹?´k?¿þb@)›u@Duø@+bã@&ÞÏ?×G?Åܱ?»?Þ?¸ó?øRy?æè$?™8¶?–·|?lm?eÁ? KÝ?J?KÆ ?ˆp?Õ†7?êGŽ@cB?÷©?Ù3ñ?ÅÈ?¥±?µ•?Æiü?›>G?‚ù½?°Û©?Ãå?C‰Á?]Ò?®]W?ƘŠ?¹{?´áý?Ø¡?Üõ}?Æ°³´K?NR ?Ø (?ɶž?¹Ô¿?Òw»?ð´?ÒH?»Úõ?f`?¯õ?ɺ@ÙÏ?Õ"?Ç +k?¼yå?¸d@‰@·j?à7?ù?nô???§ô‹?ûï>t®ú?J7Å@Ã:@[?¯‹h?ªö?¦_)?=Ä=ÃR=ž³°=t=ç?)‰?‡à˜@On@#µ~?ä2?Á"µ?B‡õ?"É?5x?AŸû?e¤S?h1 @Ô¯@¾?Ö ? +¼?:IÙ?GFV?BŠ÷?|i¾?Ç?…?°˜N?ƒö??„Òt?ŒOŠ?‘°u?54>§×•>êR×? ¢Ò? €?űm?— J?ŽôØ?ÞµÈ?ãeÁ?‹~4?„Å@@ z@òM?ÇÍ?ÌÚâ?ùE¿?Þ??Àh?h q?¥ §?ªšm?²[Þ­<·Âl?ãÙK@‡ä@§$@hS?“»O?Sž>Ùغ?œb?Åa ?ÑÓÉ@íC@·„?Êd»?¼8é?£d?¸á†?àÏè?Ô€Ÿ?Æu6?Ïé"?Øñ?Í’?Æ]Ü?‰è“?:%÷?ì×@6æ?‰±Ä?C?!x?j?¡UA?­?ôñ‡?ûn¾?/ë2?*ø@úI?õ“r=é]2?rró?–YL@Þ²@qé@ +Bï@%™?¶´7?ª‹2?˜í.?d¦?ƒ²|?”1ã?¬3 ?£Øé?”]?^w¯?Jc?”Œt?ÆG@ òË@"g@3 ´@8M?ÎóÍ?Rm?å„à?õvŸ?Ÿ4 ?—_á@;_@@£ß?‰’b?zµø@2øï@1„8@6:@–F@ƒK@vU?¸?)„L?Änú@ÒG@(ì@ƒÁ¯@3Ýö@›Ô?»?05ú?„Í@Kn@|J·@j1¨@N¿ö@g" @…ó¬@]Òê@+²«@ ÒÁ?Ù~?áUý?ßáð?„c…?Sr?Çžà@âÊ?Þ^š?­4?¹¯?Ã:Û@ùþ@'5[@;×2@?V ?˯ƒ?Œ)0@Z=@]¾@Nƒ?þ>?›zª?‹“@ÐÍ@"!R>îÝ>-6³?耻@’¤@J@“{@ Š?ýw½?‡S ?^z@ºw@!@ ]©@Á‹?³Ó?Ž»@jŠ@nd@F@E³J?ÝtÚ?äͼ@RèŒ@ZO<@‹\h@ˆe)@ ùü@%k@^aÕ@Oà@?ÀïØ?Áë ?Ì ?Çë1?’sé?›•ª@n?ïÛ?€U0?†ó?¸>5?°—»??úÒ?DÍ‚?€?€?€‘?œ<@&cR@×?ðÁ™@ÙÃ@tÐå@k”¡@`‚@Ÿa?üõ?ªª +?±C?–k?”Q?ã(É?à@It@J«¡?`©#?1Fm?ï®X?üäq?ùK8?û"»@’Q@ƒ8@%GÆ@*¢?®;·?Šûâ?Ù|?êÐe@e-@ f?¡Kõ?^ϵ?‹‘{?›Ð?Çç¦?ÞÝD@s@ ™?šÌd?$îq?ŒÚì?¼/?®Ä?¥ä?ÔsÌ@½?ù“?õ£Á@8“@7 @)?0õ?UQ°?¥Ô?’T|?W4Ç?ŠÏ»?ådž?ÌÜÞ?>Ú7?ZÆ-?˜°?£Ë@l@ú ?ßz?áŽl?ãÌ`?ìÆy?÷Ƨ?÷ýÙ?‡ +Ê?dñ×??¹?¯ä?¿tú?ö²?Ó &?ÈŸD?Æ=!?ÁŠ?ºw`?»a"??æ¿?€ÅD?ÊÁ?«7?dn™?o&p?uÿ½?ˆÇž?Éà?ȹx@„~@¤z?§)º?©e>7´¤=ŸC?‘G?¬üš?ëhf?öÖ•?õ®Ò?ø“@5@ó˜?ónš?çí@ ZÐ@. +@_¢?1æ×?H}«?K‹?QN@W)e@VYQ?òéÆ?òÐC?¥€€?¤§þ?èõF?üÚ?)¿ú>9Õ?Ãœn@ʤ?¦nÛ>ýI~>£»ë=È%Ä>¤±?;h?g³Q?¤åc?¬­‰?îÐò?å5}>ð¢~>ð€?E?™ÿ@&%@Cš ?âæ?·?Nåç?)^?Q¢\?†^?”s(?ºj?´°?µ]€?¯ê >e h>š°½? Û‹?™W?\>?n)°?õïœ@«?ü'À?Ð,Ç?¹+?*û?rÿN>ç J>Û)æ?.Ý×?$n?¥÷1?«G´?_ ?lŠe@ À@(a[?ÖP??l©?ˆ^Ô?¢Þ?‡ã_>ë®÷>ë’í>ëtÇ>ë[Œ>ç÷¨>Ñ£}?Ë¡á?ü þ?´„“?„È ?³7ç?ꇙ?ªø>¾ú>‚¾q?¯ ‡?¬Œ±?€ð$?…Ô‹?•ú±?“ML?” ?›µ¬?ʼnI?àš"?½Ù™?–(ß?šƒ„?xaÇ?gOb?G›@?M§*?¹ô'?Å=?Ù3?è?Á@ £ñ@(PI@"zÇ@ ø@›?­Ó÷?­º˜?ÐF8?ÐS$?oþñ?-FI?Røœ?XÏ?¸d@ë¦?÷Ò@f@F4@l@ m‡?ÀÓy?¦ˆŸ?Œò#?…η?¹wY?õ¾Î?äÿr?¬®þ?¯€?Êql?ÇJ.?=’¿?ìõ?žÍï?É”l?“hé?"?)“]?bÍô?ˆe@ ØÚ@š?ÊÐÌ?½>Z?~X?jv§?Ö«±@|V?̼¢? ¸?:®ˆ?½ä?ºŠ‰?Í7í?ÃZ?¨ì®?©ý6?ò<í@x?Öy?eŽ]?r1?‡ØÝ?…?Ì”Ò?É*N?០?åÂÚ?À•o?¹&w?Ô I?åï‘?è?çÑI?ÚYJ?¢jÈ?›DB?øƒ?ðÓ?ty?8?Sj*?f¼±?<Ù?¾~?ãØ@ +\\?ü]?>™>ïoD=hˆ`>(Wí?›ÜÁ?ºî}?,Þë>¥¢à?lÖÙ?ÈØ+?Ó'%?Ägü?¦À?K8? üV? (@>øLÌ?fwÖ?sh?˜ú?–D®?Ã?Õèç?0Lp>\"ð>ëð’? Kþ?luî?R@I>ý? Ìì?m†Í?`ù[>8ºã>QÈ>žY¸>‹‘?)ôh?(c?]V?pXí?ÕÚ>ñ?HÜÅ?q>©°x?'2Ü?€h;?6Pd?%Ôý?“i>¿ >ïÈj?fŠ?ü? H>ú‘‰?”F>Žvú>’/>úøÔ?Bp¶?|ï?_ùX?^ Ä?'ËÜ>úÛË>çÓÕ>Ò³ +>½\¬>§Ö³>l0>† P?U?2ch:ƒ‚=òÔ->ïF4>žÜo>ŠU>³V>’Ò“=±Ð“?Ëh¸@U‘œ@J»@:E>Ãb>gôª@å^@’À?ÊÀÏ?yC>î#=>–ìR?S1?v%O?ºä>ùÆ´>ì>>»>¬åä>…N?–•Ó?ö×y?‘ú?ó¸?rÑ©?•$p? ß>kþ>úÕ3>Ã}‰>bN†>º˜[?&O?€ý?¼nw?¡èb?m*Í?Jú >û7?qŽä?îêf?¦U=ÕC->E–>ªÜ¿>À:"?"þÐ?8” ?8? ´Ÿ=Ò +š>üe™>üw˜>ü…?Õ9?|¦c?V–7= G>v‚?½©{?¶á¼?@‹?…Ýe>›u>¨Ò{?<³„?CX ?I÷Ç?C„ >°ç:>Ê?\?bÄ>åFq?¸B?{á|?h’ô>ýéZ>ó¹>™Ïó>×>w?~#+?u†y>þBœ?uþz³>ø~˜>²»=>І?eQ/?læÐ?~Î?ve?p ?îR?!&Á?H—??Û¹ä?Ê9#?k ?w)í?/øÿ?:íI?xÞ?…”Ð?¤0¥?­ê?êFL?á!Œ?Ïÿ?fÌd>]ø>¯_?ü·¹?Û¼.<’Ä@>cð?cdÇ?wíÿ?98?yò2?ïÞ?ÉÔŸ?4€Û?n:Ô?àŠÔ?À$ +?h¶?Wcc@çq?ìÏ>?”é??Û>Ýä„?7?{6§?Yàf?°?x?!?dò?¥T±?o1ß>³ ?cjÎ?Ü».?‰QÂ>x±³?‚“Ú@Š(?º(Ã?)Å¢?ÜQ?#Â>¶¥‡>-Ã?RÕ#?¼žA?sKö?•>dG!=32X?‚™!?Øoì?‡sn?Hi¿? G>ª&=ÇLB?“Ðp?½yÔ?ÂôŒ?Ï+A?Y-?Z)Û?|áf?Ͼ?*¥¬?‚í?‡©?ŠÁ=ú3T:*w=žs0>à¿?5‚#?I¡^?IÖ?ŽÙÑ?)9_?7‹”?q}¦?Píî>ñŒö>×xÏ=æß?b?;i¿?°ŠG?®XÏ?¨Ê?±_?»2¡?R¶? bâ>—¡<Ò[Ð=¬Ý¢>$Š‘>»ÙÓ?À¦?¾à?%K ?¥gü?ÚµD?€e‡?t+?†É¦?£´M?¹²?º=Ï?Õ¬?ÛÍ?¥ƒE?¡Ý?†®=?ƒ'?ƒ.ö?ƒJþ?‡êú?…Xà?„+$?sË/=¾Lý? û?U§B?ß³Ã?æ„?É°?ëRk@ÙT?áŠn?s}Ã?ƒ3@?ƒ—‹?‘¸?˜?°òÕ?Êx?×Ó?A©·?èp@*?°õƒ?|`£?±™Ô?Äd—?“À>?Rû?õìÎ?þÈY?”<?“ù +@ -S@>ªIß?ÝV?áy?Ö?Êq?¼zC?œ”¡?|€´?"÷œ?r‘É?­7Û?Š¤·?Cj?Êk@o&?ññ¥?ÀVc?dÞ?ç™?ûb%@!ú?xPŽ?_l?±»?Æ›¾?UšX?K„_?U 9?käŸ@ ¯³@_³?û™?ó?«á§?¢¢Û?:ày?^f=?›r?³èæ?妑?¶Â'?o?dâ†?G¹:>Ñqñ=íWP?ÈÅ?Å:@½¹@#¤?âxd?Ç ‹?™nF?“§Ö@U@º?œÑ"?p>TC1>Ý–Ù?ê_Ï?Çn÷?ÅR?„ˆ´@ 'Ÿ@0?Þ¿×?Û»Ô?×à?Œÿ>Ø¡4?V³?#ˆ¹?•Èã?Ä#a@'•µ@F~v?R°O>\°>ëÅL?×l?dÚÚ?kb[?)u~?6 +?Ý6?Ü^S?ºH«?§¿ã?T˜‡?WÜØ?„׫?‡èI?’lë?¹Êô?ó¿®?Â?Ë?„Õ?Ÿëg?ºLÒ?øþX@Ý?Æ{Ô?ŒÍÑ?1{q?Ù~>£N= R&?éê@Ê]?ŒÑ±?†Ý2@?õ@:Ä¿@`¬@ßp?Ç ?»?Œ>7?™£?Ç ?ÕÝl?÷|7?©¼x>½rô?À(9@/wí?Âj!?¥™?ŒÂ?¼xž?0‡Ž>sd²?2M?/?ÞÇ>þ$?ï³Í@Šö?¦Ý?§ø@%ÿ@á?>ÀÀ>ú†j?±GF?ßn@F§@'Z?Ÿ}ƒ?¥³`?§Íj?­ž+?¹pù?­?÷?šR³?¿ï/?ås?Ì´?¸÷’?ä]™?ÿ[L?´Èd?¿µ?…ã?„ «?é¦?üi>>Êô>Eßû@-uô@9ˆ_?ßÑ?ÐmR?Åõ?:+‡?ªä?  ?ŽÎ¤?• +?Ã}?¶ƒ ?ƒÖ²?´~¬@•w?ÿ ?Å£+?¹ú?¥¿=?xhô?+Î?¬Ù@Ÿs@®d@ ë†@ î@p@¤@$\ @;Ë&@E)Ú?Áæ˜?ƒe2?ÄÁ]?ÖP?öN?òæ×@r)@‰¢í?5êï?>e@d?@c&>@ ‘(@R@2ñí@$·’?Ý‹@:Ó)@&?õáó?l\ ?xX`?žŒ?¡Í‚?®?§/‡@5D?ýƒ!?ð!¯?øæý@]ºÿ@cåH?ûË?ô®>?ðâƒ?ô¶?ŒD?~Å7@––@Ù?pá¹?C»a@@9c@U;õ@! ô@á?Ô…¤?¼â½?ŸŽ?—¹ý@é@”„?ÄÌœ? )@ æŠ@33*@QÏ?Ëíc?Ó‰c?Ú”Ó?’à¶?(Ó\?ÌmL@#?ê^m?~}Ç@Ž6@‹@N¡?®m?žÄ"?‡¯ƒ?Je?˹¢?½Ê?£éÈ?Ÿ±Ð?em?nmä?ÀÎ?»2ã?¾ ß?Á/ ?ˆ£?{?·­,?«B?ï±ÿ?ø’?”†?j~A?f–?n*Ì?|-É?yvù?{¢Ð?J?¢ãO?¹C"?é*c@´@?”ä> oß?| ö@ù§?ÓO->ö6?|³A@žh@ Âþ?åêt?ï%“@Sä@J?T<©?XÁq?h˜? Ôž?Ãä?‚ø@*ô.@Tµ×@‘?ôrþ?ør_?üÑî?©±o?I{?sÚj?–‚e?„:?CÝ?7™?”ó?¡O‰?Ùvµ?ßöû?ÚÝH?Ý%9?wœ‘?r¢Ó?!{>?¬?¤žõ?¼ü‚?Žs‘?q÷ ?,°E>ñ¾">è Ó>Ö×>Û~>ñNX?52?ˆã‚?–n1?ß3?áwî?€f#?vßè?’¹ô?’ßj?ðO¹@ï?ø(ä?ùeç?Å6a?œ]?Ç¢?öH<@ jM@.ÅP@8 ??Û?P=?Eè?•Ò¡?”^2?wÞ ?n3?œ°?º?Æ?ÜÝ"?ìTÀ?ÇKï?šM6?—,„?ŒŸš?—øl?¿WÙ?¼¥Ö?Ý?‡xW?kJï?k]]@"„7@L¸Ã@&K@uL@ T@Äo?Ú”Ð?CÊ ?Fhÿ?|,l?qb?zn?!”?»¥?Ä]#?¶|ƒ?°Ù?×ê?ý=?õ¥ ?î*º?ჷ?¯›w?¯ãß?Ýä?×zÔ?´öq?¯@ö?Ú?ç ?êÅ?üf?ÓZ‚?_ü-?o¡q?¾€†?Ä [?Ïø? ¨ä@Ùá@ðK@ª×?ä˜@8·@íI@F·?Ên>?Þ£ @áe@ly?¥x?£áo?€†:?geK?]Hp?KwW?ÌX@?8@2|â?Ë5½?¾ú_?Lu>îÆâ?š“×?¬õ{@Tê@0®@r‚@Ëc@ å@hÉ@ùs?æ+³?æh?§ ?™àš?b°Â?K¬ñ?–eK?ʲ?¡o>åÏß?V—F@DŠ@@Þ¹@"Bå@ª ?ít„?Ê»0?¾c¼?Åšq?¦Ìü?9Ÿ?SŽ?Ôøž?ØÒ¶@"6O@%•º?]'>çjá?¨°d?ëM‹?Ì?ŸšÉ? ‹)?¬9J?¦H?RÊÀ?n¢„?° ?¼‰ª?+æ>¯~š?€bü?Òoº@FZ@,j@±Ü?¬¥Í?¬§ø?œ(`?§Dê?{þ¯?f’œ?†$±?Œûã?L/>ÚP?-¤‹?¼K¥?Å"m?ª[ƒ?­ ?\f|?LŸÞ?sîñ?‚|ì??‰W?;ê?=ø?dd3?Š.N?À’)?ºÒ†?£?ˆ‚µ?¦Ëâ?®)·?­Aˆ?©Sc?:p"?/mà?Šk+?£7t?ŽÄO?]?2Ê£? ?+ª6?VûŠ?b—g?m ì?lž?mš5?Æ?æ?Ð¥c?†f{?{€Z??œÝ?W8?-õS?4m>ñ’&>Ù^ß>îDW>÷‹‚>-«Û>o\A>ñ«Ž?7Ó?;Õk?Q ?u.~?Sb?Eõ^?à?´èr?t +>øý?X¯z?‹š{?N*Ê?ÿ>þ +·>û&F?/ '?\k«>ÇŸá=+¡¾>«!Ž>þžñ>@˜|=Üi>>Tó>FÜ <ÿÒ6;¦";Ðlú<'¤à=Œ3>ÅŒ?6y¨>Îà >ƒ»=¸Ó,@- )@šÕ@¡ñß@‘Eä>XÌ)>+{Ã@þ@ë?Z{q?îð?GÕ?Fû'?"Ð?Qz?!6>Ÿó?my%?+Þ?ÕÉ?ò-}?ƒ¶>þ!?ûÍ>úHÅ>³ Š>¡[x?o<{?¨™?‘õ?Cš?Aö>‹Ýã>(£¦?·Ê?¡%Ç?œ}? +Ø\?ĸ>ún?/Å/?‹‘?f!>ÄeE>•Y¹>&!G>`ÈÈ>U3>Ãe5?C&|?<Ë?>Ô$s>Àâ>á+Ö?ys?"ù7??ˆÐ?®ô'?–Š‡?,»“?t[;@Âx?ëp×?ŒG?€jØ?>4?/ö>ý^c>èS™>fÍ>W™€?eNé?TÇ‹=´µx=µÑ}?%R?;G>ýïÙ?Z¸?HõÎ?T) ?ÖË•?Ê¡á?Š ?÷?=+?-O>›/|> ð>I·>”Š>þ¹5? y'?…l#?‚U(?~é¨?‚J¿?³?m?¥*x?Hî=?pÂ?È’?±>ÿhB>ÿw¥>ÿ‚–?Ý?Ik?_åj?ªÅl?¥)?aä9?gù4?n‘?ƒ$µ?º-W?ªNƒ>õ{Ó>îõ?%U?–8?c.…?yðR?½êI?ª¯?O÷?*Ù/? Á?™o}?h7€?}t?¨±¥?v®À=ä|=µþ´=‡•r>>»L?¤ò?SEá?»‰?µÐá?°c?sÙ3>«0_?“-?ò1W?Újx?Î@?u¥>º†Ç?^„’?B0d?ű? ?!ƒ?QË¥?6³?râ?n¢Ñ?7>:?ŵ?¬{;?ë6 ?Î:ª?Â&Ü?„ºÆ??[?ïæ?‹ú>º”ˆ>“+@N*@B~F?ÑÍý?›–I?#~?Åñ?3oå?G¥ž?h.?p˜§?÷C0@íÃ?ÅIÞ?¿ý5>ÿôñ>ò"¥?±‚?¦¥­?í4?;H>?É -?¶g¾?f“Ž?ISe=Ò`>뢴>È&€>¤??Ò7?‚sF?Z0í?]?#A#?c^Ã?zÆ[?…Ó,?ok?|O¨?à×>?¸ +?b̸?”?ˆ¼?Œ…á?¨Ÿw?¦L?£ŒH?靖@e?ñy?ïÈÆ?.×D?’?a;?mù ?sv?{Ù?ÀIÖ?½ªe?ƒ+ª?tm)>ðùO? ¥*?°$k?¡êV?ƒl>?›êm?Ùº?åÓU@š“?ÞYý?Œðø?’‹r?¡Û²?¤ç?¬+?{|?,bu?ú?¶2W?§Y®?¦G?:ØF?Ï?nT?y?uk?ƒãÊ?üâ‘@ì£?†þn?Šæ@Á@Fa?…úô?˜VÀ@+±@2?ÂE1?ÐCã?ê#¹?Ê_?|ì¦?‹tí?¶ƒ`?±¶º?§…?¹¨£?Æeñ?žÐô?„JÐ?†‚~?…—÷?¶yÒ?Í‚?î½*?ï÷p>óv“>œc8?_n¾?eK?`“w?o?@î@þÅ??Ñ¿?lÏN?¿Fø?µº?ºå?«õa?™ïÉ?Œtá?e¦E?-û>ÔèR?²áH@þa@ P@Ë™?†©?˜2?x#©?•‹v?Aæø?-Ñd?~…£?„¹)?¤þ[?¬O}?Ç õ?Á½£?oCM?aÿï?y6?|4Ã?B[?”ºÎ@ +°I?Õ•â?^®·?JÍ?&’z>øÌ™>“št?‰-?Ö´E?«3q?ŽS @•È@&Ç;?¬1x?q«é?¤Y?Ù÷?°Hº?¸/ö?hôu?f„?š½? h?¹«x?±:9?€Fº?žãÙ?á×q?»U“?nÕ8?‹ s?±Fu?¦s?–[?ƒÛE?o¢Ç?/ŒÆ?Õ +?„@¿@aW@Êz?Ëœ?¸lÞ?Dpš?=?¸ ä?ºz°?÷SÌ?ó1H?”S/?œÛ.?¬·?¨×?Çí?¼Öœ?¦}ú?›wQ?„¸:?±Ê?ãÒ@ +þ@)öž?ÅYt?"š?RPU?tá@™@˜%@ Sî@# R?_l˜?•?†E?’¦ã?…_Â?…É?­PÞ?·4©?Ó"ù?êö2@F +@3óD@ Oë?ÿa€?«Ü’?„zH? J ?%?9kù?K8¢?]?p4ç?„N3?–:?ŸW;?°Õ?½$«?í£ö@ÀÔ?ª°0?†¼b?‡6 +?‹Í?u•ì?g§Ü@<Ù¤@Fp?Ö?ÎØ>¼©>Ö±?‡jå?‰ÆN?qœl?Ž ¬?Èeì?²ê›?ƒÚ0? #Û?âÉî?Ë,Y?šÖÐ?³6§?Ô ÿ?°5Ì?ƒ­|?É¿>@¡ò@4A…@[k÷?÷Y?„ß?<•t?%´¥?@]X?X­§?€! +?ƒg¬?㮘?õ¶W?šëG?–’$@Q”@^W=?gÎD?Mi@Ò@ Ú@D²Ô@@„“@òO@çé?€Å?©úÍ@C}Ú@7J›?öãr@Ü@-¬@(@B!@7û +@"¥÷@7,á@YÙw@=®Þ@¾ê?û®?·)?þSE@!Ýä@;ö¾@XØÞ@zÕ8@†ð%@>5@”@O@%/:@$á¡@"È8?Æ’?†À@Pu@1¸@I0¢@UË@Az~@7.â@ .@l@V¼@ß?Í«©?É¡°@g¿D@vlh?¦‰ë?¦©@b=9@h‹@SÔÖ@U[ì?l†¸?h V@%J@*žX@!©@„$@/«ü@(¯?ŒeW?šâŒ@,­6@&?¯Q\?»~j@6n@ê@ +Ï}@E?€Üð?—uJ@"tö@?Æ? Ôð?XR^@'ȳ@3[¼@jÈ¿@O0Æ?á?¨5@c@H|@(¿š@"B@Aõ?ù±h?¬?`F@-(Æ@/e@ñ@Ë«?óO·?êón?ÿÆÂ?ÿ³µ?ÿžº?ÿŽ²?ÿv²?å +x?ëÚ?K%@ŠQ@#SÃ@RÄ}@F@œ@M@Ç(?aa4?x›k?÷ƒÜ@éœ@G@oÿ?¬Ù?¬í?þ£s?ñ“ñ?³,œ?Á¦m@@6@»l>ý‚Â>ýy"?ÞÉS?ä=?ÝÔª?ÖÒG?ˆJå?‚€ü?îï”?ûˆÚ?þt@‡ @'[@'[@a4@CØ@ ˜@¶Õ?ÍÔæ?¼æd@÷ð@Îp@+y"@;}›@§U?ÒZ;?îÅ?ôè @a†@2z¼@øÝ@ 6?è9¿?»ô|@áÈ@Tºy@µ~?»¬Í?׏@¤?î‰È?»cÙ?”O?Ýå?|)y?ù~'@qv@(ž@ʧ?ºÔ?¹v4?µ¯ð?¿é%?ðý´?æÖŠ?¹’x?®b@LZÓ@P6M?ÙÈh?ÏŒ@@Aú@OÙ¡?}%>å+?ÈuÞ?÷a{?¢•?w>W?¡•?¹I–?ªý?£CT?ƒ!?/rŠ?zÂy?¾0è?»Æù?¥¬X?Å6,@²ð@ Îr?BÍm?[¹(?¸;0?¶8ö?}„?jŽ?sغ?u$?°¾/?·«¬?‹½ ?wøô?~A?‚ÁÍ?Ì+€?ô@e@  Q@„@èþ?çÎà?ȉ?ŸÍá?]Y?šño?ž1Ç?²’¢?¬m?ž‚ô? Ìw?M›?Q‹?Ð?œ‡°?Ѭ?äE°?—ði?mª+?›þ¿?°Ñ?üI @#w¶?î–C?YÁ?Da? ?¼?¶[?Ýõ?bNú?kü´?æYŒ?èÍ‚?ø^á@Ä_?•oJ?O5…?+>ï¬\?¢H¸@J“?×n>ú&ˆ?Eƒ5?å‰?ÙÑ„?ªé?¨PÖ?²R*?²Ùõ?su?n;p?±Î&?Áñù?Äsõ?ÓÚÀ?Å¿ ?¥c?‰µ?í‰?Fæ?í'ñ?ì÷¾@¢ß@ ÉÊ?5@X>î4Q?^”Ý?Ž £?¯°5?Å+?Êar?Ï’*?Лn?ˆ´?­—??xç?+u§?ÊT?ÉG¡?ä±n?êüÏ?ιù?¾#µ?þéV@# š@Ï +@ ÌJ@• @³³@§Û@(S—@%ø@"Ÿ@ ?Ò,?³ÂN?¢|?:Ý?Å;@ š‰?ïVN?hìÞ?hÓ¹?h»È?h£Ú?$[(? Ö-?#)>ïp3?n·j?·2'?§Ù[?| Š?€»¥?ŠÀŠ?™N!?ÞS?Ö‹?¶kx?©Âà?¥,?ƒG{?­•¤?Ú—Ÿ?çBß@ Ö@>F?§K?¬52?z(›?pÞ­?³­ç?ÙÆ»?ìas?÷¾¢@ª®@8y•@5‡‚@ç¦@ À?ÁƒH?Á8_?öR?;Žþ>ÁÖZ=·î¼>>(Œ>å=U?¥Q?Ä?0?Ñ +?¦ò?±†´?¯ŠY?µ[›?¶?¬»?¿èú?åŽö?ݪ?»—7?¹Y?ÜÍh?à)¾?†bJ?dP?™Üe?³$€?b<Õ>¥‘ >ÎÏœ>ø+.?Öo?2Þ­?$?Áµm?ÀA…>ó‚g=ħ›>Ãáÿ? ª?&›c?l¨Ž?mí$?kF?&Ïê?ò®v?çÕ?M‡•?'wD?|Sn?”åw?À€q?ßÆ?‘¿ç=”N>G’?gbJ?jÔ¦?©F?¥ˆò?&ÜB? å?ãÕ?#Èá?†¡ò?®w¥?Ÿ¥ö?‡ q?ž¨º?éF·?Òë’>é¥>ím?qEM?z1꧸?L‰‰?k´?š$d?·ÄY?„ƒÍ?&I?%r?C=?$·ë?pJ?ŒªY?à«Œ?ÌÚ?q€U?ŠŒ?XHó?jmÌ=sE™>sh¡>Qõr<ûi•>³™à>ò}?})?÷6?×>š¦p?)&ø?yØÚ?F„?&ç9>À'=»C>‰iy>ôÓ¹?=‹ç?hzÿ?|ó$?Ž˜o?†¥À?z;‡?ô2>›ƒö>Ý °>ür&?R(?¬º>—=,¼>¨»ò>¾ÝÃ>©W™>“ž„<· ß=Ø…Ó?ä>ðl>Ù§?Æe?3£ø>ñ5>xÕ=Qö @C@Ÿ¥è@»çë@¡Wh?ðVè?ø¹R?ý2€?îJÌ?JŽS?/ã|?“6?]V=ú{+>º€S>ù«þ?‡Ø:?¬ÚV?’t?zpR?)Æ>ú.˜>à6 > +>òG?)Aº?`¹O?z«c?9)þ>Ùè>ê/w>ñõé>áÞ›>û!B?+•‡?o?V;ª˜>Æg ?{‘ü?s`æ?_ ‚?.Ë>¦Ëñ>è0§?C¨K?*š–>ü¶?)Oz?’Ó?k¨=æ<[>‰} ?]ÿQ?”' ?ü›‚?ù_?÷i=?ÄÛD=ÀÊB>’?Š>?n?dÉ?gç?>™¼?10>šVö>´F>ý€g?ê«?2ð?ô‚?}¼ù?m‚>ýɱ?Nh?¯çw?ž?|?>á9?ÒÇS?Åfn?å?3D?@ýU?=~f>ÃA:>³.>þ¨‡?¬p?ˆ?*;€?¹“L?¼™w?¾wp?®RÅ?UÔ? Ô`>ÿ7½? ¾“?pˆD?q°ä>ÿs·>ÿ'>ÿ?h%?5?Ä?;yí?Ç!?{õÚ?W?>³?(¢?Þ8>õ×?“?z r?F†d=cë>‘ÅH?€8Ã?l!?*R?$–?U_?Bν?¿Q‚?´Â?§”?©MO?±ò?œŸ?t±? #>঴>ýÿ? +?[Xê?Á½?Á#?Á-‹?²äÁ?•Ê?Äš,@ ¥?×fÈ?€ó;?m K?Dºp?Ÿâ>ÙO?Z|"?¬*A? x-?‘C?‡W?;?>ýKº=–Sƒ?gˆ?ÀqÞ? ¦¨>E?Ü?ŠV}?Â-Q?h?$6?…Õê?”Ð@?*«J?Ÿ©?Ò‘ã@]Õ?Ò’?˜\?S4?*)¯>¥/Ü>l;ö>ÇÕ[>Þ_q?ê ”?ûûs?‡8j?‚àd?H¤? c´?à £?Ám?¥ùY?¡›?ª 2?¥7Ó?QëÝ?l€ï?¬³‡?˜îÈ?‚[ë?ZÍ4>¿ð >þ¿?_sæ?n¤?nnÖ?¨>{?0F?½Üg?ƒÿ >ýWD>òöç>è F?#?M(¡?™Dÿ?²©ç?ÐÐr?Õs#?©±Ë?žÕû?‡A?ƒ˜Ì?½Rð?Ïix?±åù?®fš?<úf?%c'?•×ÿ?‰;Ê?3f? +¡??‡°¨?|Àk?„?.a ?¹ìñ?¸­?Åá?¦s†?"§Ù?3Oõ?V2?më'?ƒ…B?›–x?ÀÙ´?Åc®?Åi…?ú=Ä@ uŸ?¯|?^Þ6?cØž?h×>¯ŸT=¦.>è¨c?¾‹?lÃ:?ƒ#¿?¼›?ÁŒ?9XŒ?;`^?„¨?‰eQ?ç }?áÒÞ?™oý? 6¢?¸D?¯€{?„¥?ŽeY?¨ b?Úö>@—m?ÂÙô>£ƒR>Ì´Á?<¤?z‰ö?°ÁÄ?Œ™©?pw?®Ëü?Æ5?–ø?‡ß‹?3é?”ôö>"ë?Üò/?åßË@P3@X5?¶TŒ?º›b?° ú?®1?ÎNnMÊ>nG·?€²ÿ?ƒÏè?\!Î?}÷f?ï?ØFU?SÕy?V0„?„Ëz?ªã@ñW?ê/>?˜x‘?“¦7?•Á9?®?s?ÇAO@ÞÓ@^ù@!/`@$sx?Œâò?i?ÜÒ)?ýÑ>?ò?ê??–þ?”.Ê?¶Ï?¬¿±?0 ?MV)?¬÷?¬—³?­,‹?Õ’¨@&ó@£”?ÇL›?«;2?„Û´?’T³?¤™?’õ?9N??a>ç"?wq??‘Xm?'Bü?Û1?çæX@eY?(ÇÝ?Ðy?ŽVš?’Šž?”À˜?¹?ÌdE?²O‰?6hè?/?ìF0?à E?Æ,?ŸR?PÜD?¿Ç@J @ûp@¼9?ÊP¿?¢Õ;?Fª?§"?§¥?ÍA½?”Cƒ?„>)<¤~ ?èñ,?ûBˆ?‡`Í?€+->WÎ[>Ȧk?Ø:?àƒ€@Ѭ@ýÀ?ƯU?®‚ ?wk?A)ú>wì•?om?î÷R?ש–?Æ‚?¸C ?¨G?×8 +?úè[?¥×€?uÔß?±“Ï?ÆQí@-.@E $@ G¥@mš@N÷@S$Ž?í1?êó:?Æ?ÇDG?ÏÍ+?ÉY5?Âá|?Ã¥è?Ü¡Ó?×Õe?åm\?Ô ˆ?¡óë?¥–Ò?©#?—]?‚y-?Tܸ?ƒ°?Ì Ò@¤î?¿ºN?Œˆ\?†õ4?ƒð§@ÀÈ@:Ý´@T%@„=?Ï3´?¸{ƒ?r×S?h©?›…?š¾ƒ@Q'ö@Y +â?ù5‡?í%ÿ?¥-?§¥’?õ È@»t@?B@2ó ?Æz%?Ö,ò?÷a˜@ + »@EJ@,ñ\?ÄPÆ?î@#†s@~r@ÀJ@*@d½S@U£@?¿'@FG,@K8Ù@9 b@+™g@į@t‡@J#ê@d@9¯‘@~•@. E@@=Q@ N ?ó¹ª?Ýå±?Ö6Ø@EÊ@l(@;ß™@)äY@qƪ@…-ß?ºÞD?@Uö?¼ X?Èè?ú‡"@¬•?Ý6?âË-?/ ?ë…@d@&©˜@¦x@‰@¼!?øöþ?³oD?ºœ)@!±@"@3ÊÌ@0/Q?6Äÿ?`’k@XJk@N:}?ÜÍ(?ÒÓ?ןM?îB¢@›Þ>Ó‡Ï?›Úl?Ã@«@@o@EШ@c¥@Xt@f@D°@Yš@T??ÿzÈ@ •@&ò@ +ã§?2æ?{Ä)@BZÇ@5ÌÕ?É’Ò?Õ¢þ@ .\@%ã?ëG?ðVW@fC@J@-D@Ÿ#@´Î@ x3?\¼B?N]€?«V?‘Ž$>ýˆÈ?{¯?fº?‹7Â@22è@5Œ#?±ºº?±Ä ?9:?ê?íÞ?ü™>?Ö7°?×Þy@£÷@@ó?ü?¥çÈ?“¶Å?ìF +@„ø?ü?C?ùr@^Þ@°@$´n@,?<@#¥k@Þš?ãk$?­‘?ËŠ–?Ûäc?ùž¯@?öGè?¿q?×–¬?ú?³_?ƒ?½?Ø4a?±¬æ?Z"?Æ@Z(@Hqd@U~?â¢>æJz?/߯@–¼@‚@§*@ñ@0>ª@1M?Š×Ü?f|j@õ@@>ÿj¦=Š1Ñ?å!@ ?³ÒØ?wE?€b?„‡?œ€?«¤Ý?’©Ã?v«Ý?ž^Æ?ÉTf?¼¿ð?±Wñ?É$?ò}Ñ?ÊÜÙ?-rÜ?JfØ?ÌæÕ?ÍU@\P@Æ?ŸI5?•Í1?¡ÀŸ?ª`Å@ fA@yÃ@‡¶@õq?™Ëó?1Á?ˆü?±–?È% ?Ü ’?ßvµ?Üh ?ÅOf?•®ˆ?ž-?ºò ?Ã7\?Öÿz?Ë`'>òË >ò²@ 7@Šj?°Ì©?Œê@?@C´? +Ïà?†Xr?µ\F?ÙGá@HÄ@@Ô@[æ?Ö=?NËW?mŽD?¾ìw?¨@ð>Wnß>jó2?·œ?Þþš?¨ß?ŸA?™Ùè?‹lT??N–? ¥¿?d€†?§Ò¾?­²±?²Š‚?¿ÐÛ?ï ?ã(Î?€?‚”K?0N_?8X°?¸¯œ?ÔN?¿Fe?ÆQ?¬k?’ÕG?ÐgO@ Ž§?êû?ˆB¾?ó?Èk?Ëd7>ìò/>ì×è?\Hž?k·?Ÿ~s?«í?cUË? ª¶?’Â{?Ü +J?®ñ ?)ãq?A¤v?Aøj?1??}†Ã?ŠL?• /?ŸÇ‰?Ö +?êÑõ?Æ:”?¨ +ì?–¡??jfª?kd‚?xhr?‚#ƒ?CÉz?_d˜@/·@*æ?DZn?™a?„ï?iQ¢?™Ú?æ£C?æ½Ê?›É®?“Øð?LÚÓ?R{ð?ºš”?¾iX?ÓâU?çu?«Ok?rëA?QBD? +X? q4>çÒg>ç·?úÀæ@®ê@,ú@ÊP?„ø†>çB ?šÐÿ@ô7?þ z?føÏ?`?’>÷Í„>ê?P>ó¬>>þë?ðèŽ@ö?´Oø?ªý?‘p{@ ª£@ ÈŒ@k‡@ ¼?Êl?¸œº?ÃWé?ÏÖo?™aé?\}¸? õ»;ÈxP>HH¡?sáâ?zBr?Ÿ?bB?Å,f?Ù&Õ?¸]Z?®‡?µL?»¹e?ÆNè?×N¯?×ÿ?¤—?§õA?«Ý?ªÉì?ˆ€?uðˆ?-/>©€>Éý? ÷ï?4ÿ^@A)@Lp@Q@>?e_*>åæ +?žãu?éß?æ¦Q?â0$?îë¯@¸@ +U?¤Œ×?¯”à?¢s?”&?uºµ?fÍ?Ï#Ì@A?ÜEô>ç0¿? º?h™­?gº?sŒ‹?{^ø?R‡>è«>è/È>èW‘?‚ß?G”ë?€ùh?½?«¶5?ÎH@?£…>î k>ôÊ?Þü?ÖõÎ?›?Œ1\?;„2?*"”?2­8?;Eà>·UÉ>´ªz?^7H?˜ƒî?ìK?Ä‹]?(ç8?8û>îSí>õ<.?:À6?2¹?u¤?Jox?L+Ó?ZFÌ>Œé=>oŒ?7\s?gp³?5Ÿ?4~ ?›?ª¸q?ˆÁ?f¶Ð>Þ"¬> ¿€>¦ç^>öXä>ZH;¦8­?¤f?xM??[q>¢uá?;~ì?zcc>ÂÍW>¢2>ü–?G([?zó?“>ßžR>õÔ|?'!?zg?Ì5>x‡>2®<;áÒ=K!T>„Ú:?€¹õ?$@=äÚ?wá?UÄ>æB>š>ð=‘Q¬@_s@KSè@lƒ9@I›ƒ=n§?ø=?ø‡à?Ù)#?ßýD?aõ²?D›µ=¼ü>Ä›>ù†•>Û,½>Þ¸¶?“û¡?º»A>ý Ø=h?YÚ?ž¿e?.Iº>£ÇÎ>µµò>æb?–â?Ú\?^5ð?”ß?kä¾?¾Ò?D>û5n>’î?9‡Ã©= hx=ü8Ä>5·¸>mF>ö˜Í?PN–?()Ù>å)>Ö³V>Ž ;>¸[N>ü8Â?¬è?¶?æ†>dà¥??ýðÉ?Ãjš>:’Â>]Ø>†¯O?—b~?¡1w?Õ«?§Qp>ʤ>Äï?Br)?!“ª>ý„0? +¬ñ?P¦ö?_ù­?t@9?SÀ<%Ƙ>¢îá?öAà?Ѩz=âØ>f¾÷?Q`ö?``ö?[Ð"?Gá?;Ôý??tÍ?~“ç?m\È>þ±‡?¹ ?~Êë?z½!?j2~?f ›?ÝÎ?-‰=?±§Ú?›ìh>ÿ@¼>ÿO6>ÿ_²>ÿkh>ÿ|@>è¬>{âÇ>¡‰X?`?*®?WF´?yå‘?Ç=?¾€?_6‰?:Û?;òJ€=Zã=™IH>qä?€=?`­é?K²??JSÂ?„¿ä?ᲈ?¿`?Ne? |½>x}>¾wÐ?eën?">»=z:?¯Ÿ?ºèñ?sŽš=£Ô>¥ùÌ?%uƒ?ƒcw?ÁI#?µ$9?ª(â?š,‘?€÷A?|¹¯?€ŠX?ƒW-?¢?? ÊI><´:J?#Óÿ?iª?9×?1^î?²¶¦?΃ ?‚RÐ?]ª_?U8$?J7ž?v›J?±?c-o?líX?[Íù?[°h?BX?I4>Ïà²>’ 7?{ ž?ú?Àd?¼•=žJ=uB°>cv„>‘áo>±õø>ýA4?‚4n?‰´þ?©ä¸?¹W@‹ý?ä¤?‚^8?‘Ö8?²Ò?è¹>º·?ðŸ@Öu?ô?î?šÕí?\i?¡_?Dd‚?€‚þ>ï¡ñ=kèL?îä;@?1N@an?Ä??àZ#?ò–?Üc ?ÍÃL?Ëèž?¬ß?gFJ?O±?•Ÿý?™-?¨É¤?¥$!@SCÔ@U³"?(ÇÙ?.Tx?¼6µ?±ˆ?jx?1ûö?Å•?·ôˆ?Žø?¦[?×·Õ?ÁÜ>%Ú®?DÚe?Ó“ó?œÒm?A ¨?”*0?Åk‘@4m@H~¨?ÇÎ(?³À?J¯?_8s?>?- É?rzð?ƒÒÍ?Ü›?ÙŸ? RV?TK?´2*?³…—?º= ?°†t?FO‡?J¹q?.ñ–?f³`?ÓV?Äëk?¦ýT?¤–?¢1Ò?½Ïn?ï!Ÿ?Ôv!?­ õ?z„¶?#u?¬þ?å¥>ª^f>qð?‘ô[?ǾŠ?CÃk? j§?¬XŠ?¾LÆ?¨³¥?ŸyÑ?c'?vJÙ?ï)?àËt>ÇZ ?$ºÒ?äog?±ýP?þ„?ùØÿ?ñÅ#?Ü1Ð?¸è?„›ß?Ñ@‡?ÒW™?£?‡?„«¤?„®ž?…ž®?» +/?ÌŸ +?1Ý3?¹æ?É…€?Î f?¶T?µ?È {?ºÂ?‘ªï?¨?ꊳ?Ï'?„̇?Šð?mw7?£?õÃÞ?Óü?¥DK?±~Š?ºÙA?8†?jK~?á+¹@%i@O@Û´@€—@##à?¡>¦¾>Ujc>‡¥?ÇOý?»å?Þî?/Ñœ?ÇP£?Íö?æ,?Þlj?Ï‹r?Ç"?¬¦?œ>?„ÝÍ?Yû…?(:º?„?¬â(?3xž>‹¹?ñð¨@#ì)?z£3?˜?¶_“?Ëý?ñ´É?î)?»ø ?ÀÊ@7n@ :â@×È@f?X ™?j/æ?™Íî? kï?§ô?Ž‚ ?=Œé?wŸ?œ¶Ø?î¶F@Þ?@»z?êøö?„M¬?D°?Ü™@Ú–?£³²?†©-?ƒÜë?`@?ÿË@‘ö>¡Ì>[­*?S™T?n‚D?÷Pñ?àr1?„}ó?Š‡J?žã®?‘È3?TÂo?x÷n?ŸŒ¢?Þ­@hŸ@– ?Üõk?Ó j?ÒS?Ö¶Â?Ô8L?až_?A²?žB ?Á/à?Ê?È.?þòÑ@'’>ðã>Ýš?øå­?øó?’e"?‘´¿?s¿?Œçx?Üàæ?Ûö°?Õ~6?Ö4x?ÅÝ&?ÙYâ@œ@•@1ÀÕ@ +ø]?°òþ?—­?d¶?ª]´?Òcp?þü@ì™@Îc@Ph?Ú3…?Å+^@Vב@€@Pät@AJ@ +t?úS2?²â‡?£‡º?Á„X?Äü¯@"È>@)¢@/@Øl@Y‡Q@G÷’?¸½?»ƒØ@Í?ð¼?wC?­jû@3hù@³´?l, ?—ˇ?Þ5¯?ù×@!š@ùƒ?ĉ?ý<@'‡ +@(@'},@E¨%@dŒ@vð¾@‚ +@[–â@:kÂ@JËù@Wª4@MþÃ@Fƈ@y@Š®©@,&(?ïÉ™?Ä?V€?̲‹?é²@*ž•@;¶±@&¶g@U@*gê@3„@?Xe@AºV?PO–?Å ?€Š?ˆÞ?ã9?ã¬í@¬@œ ?Ôdž?ÕEÛ@AÅÿ@Bu(@76±@/l*@î@ð@/ãö@(^å?ѽt?àá @k±·@k›š@X³x@I¢Ÿ?‡{T?”:@1d@,¥@‰Äß@@J@–Ë?ùHñ?Æ~9?Ö@ C@¸}@q°,@m<@Iê–@Rº@ƒæ©@eÀ?‡Xo?¶Þ˜@,ʺ@¸Ã?@)?bi‹?À5Å?å¿,@@B@7¼Ï@X†@ž@2ɳ@E @zC–@cŽ?øôÂ?æ¬Æ?††Å?¡ @”è@Aû@"|T@x¼?‰Þ'?ž°@¯;@°@BV@@cT@GfD@E5#@C«@40‹?}ª–?Œôú?ýÞP?økÑ?œ‚á?Žâ>±¥7>Æâ3?¯Za?²]@Y3@ë>Í"={b(@2§@è@U=@V@€ @×-?¯b£?¥Ð±?Ÿ P?¡Z?¨o«?§@ +Eð@ŒÀ@$?ýt?ç …?æ{?ܦÑ?Ô ¶?Þs¤?ìŸ ?ªF?zÓ›?ë6F@!ªj?ÆÙÇ?"”?¿½@«é?ÿœT?¾£?éš@^6?÷›?Æ—¸?ÚT'?ù=@œ@Z,@CX?ëìp?Ù Î?G·ª?X“?ÛõO?Ø;—?‰ÂF?Ñ@?¼@-3@Ä“@w?Ï“’?‰À?Œ±?ìÓ>†Ì×<™o†?4²Ç?wI™?åJ)@ œ@)’„@<Œª?ó=‚?v±D?Ÿù¸?Ï­i?£ÚÀ?1Øe?~Äÿ?Ý×?Èî@?CßÏ?gÊ?Ìés?Èy?6kÓ?@Ì@ja@Ò$>ØÔä>&/¬?Í„=?õ?ŸO?ˆÜª?Ÿ‡¼?¤*0?Š!Ü?tu?˜`?¶éÊ?ŸÚÃ?ƒ±î?t|s?2Pÿ?D?sB?‹8@7¼@ +Lñ?ãŒÍQ?‹[?á¨j?Ùd÷?O >òÉÜ?‘)›?‘—˜?(ùê?‚’?êÂç@ã?·_ ?Zݬ?AÍÏ?K©?0þá?oX|?:”I>Ýx>zÒ}? ÐS??ðÆp?æýª?ÉL"?È— ?¦ýõ?—•ý?•à?–ý³?á(>@l@ +¬°?ÃÑ?¤‹É>¾>Ê.|>ìø}>ìÝL>ñ3ò>ïÊ ?ÀjÀ?æp…?w>ì0S?Ž[Q?ëûç?¹O ?TT?:9–?Ð]D?Ë  >ÒVC>¼¨¡>îü´>ÙÍÀ?ÉÏ,@*?³¢H?jž?j‡?jkþ?jUÄ?j7¼?iG»?XÒÉ?S3T?cÍ?|3ª?W¹§?Nº’?ƒ¨}?’é?,¦Ç>ØŽ?èø•?ßU{?¹{?ò·@1Ø@"þP?H<›3?U/?h)?µð—@ñZ?âÒ >ÝÐ>+¯_?Å5i?ÈZA@ø@¥?Åf|?‡Æ?Ž9Þ?›tM?…hx?IîÛ?c›:?²n?«%\?Ÿ>æ¥Ë@Ú@,æ\?ã¬=?eÐÝ? £?@1U?ñ¥¹?’Ó)?•î—@An@+%?ªš¸?z û?)>åçÈ? L{?_2?•¸S@¡@f?H}&?Aöž?Á™?Ý?®2W?:n?ÐÑ?e’ß?hµ?¬/"?§Ç#?X½è?_~ë?¥DÞ?¬/L?§À¡?¢Îû?®·½?´ßw?± Ð?·Y˜?Æ?£@-²m@1:·??eÏ“?Ir„?-/?»ó}@ +œÆ?ðØ?¯åš?ˆ·?ûN ?û/?f`c?fu±?õD @²º?­òD?ˆÇ;?ˆ¸e?‘uy?iõ>ç4?%Vñ?­B÷?¤m†?´? +{0?C‡Ì?AùÉ?:Gg?2?Dì?:½?˜?+TÌ?*¾ú?€? èJ?húó?kôV?ê Ù?êN|?¾Ú>ëó_=>ë2Z>ënÅ>ë§D>ðö=ßËÔ>ŽÙ'?3h? Ã[?s2È?–1š?ÏG¦?µIS?HU~?9XG>àâ??ä›ñ?õ ?x>ð¯=?¢€Ö?µ +[?²Jÿ?®N5>×r{>‚9?=iº?Œ1ò?¬„·?·‚‘?mF•?s>ð>š>àg§>ó:‚>îk-?êô?è>xzæ>á1†??S—>Žé_>ªeú>üÉo>\;ð³L=2ð¼=¥CÅ>Þm®?@>>t¿ò>‚^>™)²>£d=·»?§f>½Â|=§ç„>à4?Dþ?‡`ä?ªKÅ>ÎöG?¬Î¿?û}¸@zç@*½é>]—@M2!@EMr?‹Ë?‚i>ĽÆ>ÕTÏ?vIÃ?a_>Ûýµ>¦¬þ>æ#T>ùhñ=ÓÎu?:ÈŒ?{J:>”‚þ?|¦´?»Ÿ»?W‡0>úWÄ>E—>é>^?JO?MÖJ?bÇ”?<4??É÷?;gµ?u£·?6ó>Ú½>r2=ñ>±Þ¡>ì£{?rW>ÉÉ>XBE>iŸ©>«T4?á(?ayò?”œ?ènK@ +\N@9øZ?MÅ?oÊ%?¨n5?ªÑ1?s_3?i…^?ù ?•MÎ>ýŒç>á¦ï>,ùg>Bߦ>ýÌm>ý×î>÷ µ>ÒºÇ>‚¤Á>ýÍ?’Õ)?z>þDÙ?5!ƒ?ãß?Ðg?~ƒk?v?Owj?Gñÿ>þ¾=?g?hÉ?LÙK=™ Ê>²Ìþ?ûÐ?×!Š?œ®?!Ž2>ÿNµ? eÃ?˜\Ê?Šæò?L 3?!O_=0õ>O°¦>y“s>ÿÞ8>åó”>]á¬> +wPñ3?Fæª?ÙqK?Ÿ¥‹>{³? é¬?•=?€z?7r:?cñÖ?¡ÝB?–R~?dF¡?<ù?7>ëc8>Ì>åáý?¨>ªìû<ÝE>N‘³>òžO>“‹­=—£Æ>¹?=¸u?82}?*É•?0„Ö?6@Y?@ô~?Ax?¯E?›«û?²¥º?¿ü?[.£>¸ ? ç+?(>î?í8? ¦«?¾Dq?þ#¶?§@G?oI?u6¤?j€)?“ÝD?¥`?w ?T¥?;")?;2‚?—!(? O¾? >ÉD>ªO¿>´¸¼=·?à±?òõ?{‚?zt®?O ?U=úç?¦Ø?Ëq>È2>óøV?‚:?kðY?("?#@éº?ÍDª?4£?oB$?Õ›$?¢  >ܦ+?>Só?©„Ê?ö'w@'4Õ?̽ù?.?H©˜?‚²è?4=T>çbn?Êls@Þm?é?û?ÄFm?ä †?îÂ?‡g!?aŽ|@¡-@ªõ?–º@?oQ¦?¦?®®‡?ïb~?õ#“?ÿáš@‘¤?»Œi?³µÉ?? Ý»?‚¯?¶–?‰¸?v Q?þ5?n‹„?Ôÿ?«¶è?3¯õ?°Gã@ƒH?Ð)a?I‡m?…l?§n¾?ù¾@áV?Ì>–?’V¯?¼„v?Ùø_?ß=?Ú7? ):?Ž‡(>PÊ«ßÿ>G<Ó?¹³?ƪš?¨}b?¤´8?ƹa?´Ò•>¥[>óÿÕ?¢-??Œ„5>ÿS”?$òP?„•0?„—±?„›˜?–t!?¨J!?„G?T¬Ø?¢W?Ç??—æ?€Þ?„ì™?„»@;r@ _/@=¬@“À?i«?]Öí?Ç2?ÈY?Üð?Õ p?’p ?Ÿe?æ4€?»a»?_£?1±·?q$f?8nd>³ò>¼M7>ÅsR? Å?WÁ>©°@\G@>äd@žË@àÍ?¤¦Ñ?–N?Æ>àb®>×Qþ>壘?ÇVã?¸»?ä?%mN?Ÿ?ª¿ ?ÇV¶?§… ?Cd›?Eñ*?TC™?nò6?„áÞ?tî®?f3^?„c`?„üD?½µu?æcÀ?ø·S@}‰?ÏüE?Æ +²>{ÒZ=ßÏ>XÏ>–Ô®?%Â?˜¬ñ?æ¼Ë@@u@= (@&”®?®—D?™•Y?O‚Ë?{è-?¥5•?­–—?½Ð?³±ö?®ûÃ?Œ™?bý?“8|?£VÀ?žñÄ?šŠ@ á@p?à!–?É!j?"‰?„Ÿ±?6ì?’“†?¬6 ?£(•?„›?–Ñ @Š?åÙ?0k +?¡N>ÒbH?/J?~þ~?µS?«£?Ô¯¯?ük:@rÚ@^U?–Ù­?WV?«ç[?ìÈ·?~ÅŒ?xO?`ò?}ê'@¾œ@#dz>½ÅJ=ÝÞÜ?c”?i4h?—;ï?›?¥?„ƒ?zÒï? z?;¤b?ñ\n?W…×?– ¼@2 +^@4@60Ä@3võ@5‘@Šõ?Ÿ ?¢y?ýç-@`k@ú&@ Ô>†è>4Ö²?›ý±?še@m¹;@p·‰?gj0?mvÊ?|¯ò?¾o?ýü@UÉ@/„@Ê>@Ò@ƒr?°<å?|ö@×<@ Y@¯@%;@,'@ y?Òî‡?µš»@Cð@,À?ï*?p§a?„Tk?Œ;Ï?WÝL?'{?¼Ç@K‚?Þ¸?ºù?»ºa?»›F?0?5Où?˜‚·?îO?Õì?¬\™?Ê5¨@@?ÿ,?ºã:?­¯s?pùÝ?‰Nþ?×F«?Ñgp?žÙ?š5v@%@#ëô@¯ñ@ˆ‡@^4@/}?ÎÒ?Á§f?éNÞ?õY¡?›m?wTI?®jª?Ì8S@*ÃM@X?Ý=/>”Š?V=2?¸æY?²Ä­?£Š’?ˆÃ•?5ÒD?X'#? „ ?–fp??†@‘>ø¢>Ún`?ß•Þ?ä"Þ@×D@,Ä?È5?¸(&?8¯?Ø?’íŸ?·EÃ?’®—?t$ë?Y´?FÓ?lÄR@š?TÁ +?ýÆ?Ò`ë?T?fÔ•?˜Ï;?–B¸?Ï‘?ÍJ ?PÁ?Ô?“j7?¤ö8?_$Õ?ÐÇ?•eŽ?à­p?ºˆ°?nÇë?M¡Ó>ÜŒ¥?4ö”@ðo@øÚ?ýl ?ÿÜÝ?% ?Vá?}xG?’Œx?¦qi?¬«-?››¬?–ýÃ?®3ƒ?̆ ?¶6>?ñ.>Ö>ß?ˆ ?ù!?d¨ì?jø?§;E?·ë?ˆš?T„6?¨Ìh?ìð?î]?kØu?ŒM2?ëœd?é`Ö?©Â?£‡Ý?À$Ï?ÁÎÓ@¤G@6/?Ùrw?]‰ù?bñ†?hN×?‘‰–?âµz?Ôv?jV?iúJ>ûÄ>éÆT?æ€@®ð?¼î-?‘†0?A¹>>™Â?)ô‡@¡m?ù X?76•?B™i?,E½?bë?º²F?ão‘?¿B>?§Î?êz;@.@”Š?I?‘nÑ?­Æ¼?­´¢?³ 0?¿® ?çt•?üIÉ@_@C?À¶Ä=K‘¬>¸e¯@H¢#@FIh@;†@1ý?òuº?×4Ø?ÙK\?Ò.?¯¨?„^¢?ß?f9ý?f.°?¿¤M?ÇV2?Ÿç?št^?Vtb?ÆL>ŠÑ=/ïP>Ñ<?Çñµ?ÓYÖ?ð?æIo?³ÿ?¬>Ì?™½?’ëÀ?w +?@DŠ?^€h?”<·?‘Æû>Ð’P>Þ>@¶@ Át@x@Ut?Æ`?[’•?´Bø@ߌ@ ûè?ë Ñ?òO?®ë#?¡yZ@Âõ@¶?ëÚ>õ¹…?'I?ok[?¡†‡@ ûê@ó?™¢[?–ó?¾2Å?Έ?…M5?bo°?`Š9?>h?!¹2?Pf?HÙ"?æ*µ?ÒÄè=Ž¼=Ì”P?Wð?h%?À2Î?Í2N?Ëá?Òëg?tŒ\=Ý”k>œß–?RÈ?LÄh>íbî?`I?†ËL?à?|è0?`yÃ>¤+>m‚?«º?RÑ?(òš?'q??·Ã?lÃI?Bê=>ú>Œ?P?>ú¡?MÑÉ?!~?'C£>ïÃ>ÉÔ.?òÛ?.xU>Íd^>Ó¯÷?žxò?µ,?ˆZæ?‚ˆh?ö>§¦Ë?"2†?:îª@“@ ’h?«J+?[Aì>¶Êü<Ö̾;hªý=ŒÔ>§Õ»>øš>Å‚Ô>–è>Ñ[M>ú·§>ÆŽ·>‡3>Ñ>üúº>ý™%>öF.?J”ä?L6T>c®õ>?ô>‹þ>q[Ä>¾Q>‘|´>Hk½>C·Ä?y>¯ìÅ>ï@V?„M¥?y½?‚}>éÍi>4ì ø%>Ro>Èö@Y&@O‚?xF?vɧ>›‡]>ŒI?”ùp?¥ãO?*c?'Äü?M¯>ùC]=¬ Š?ApQ?y¢8?ùâ>ØØZ>£I>¹w>ñB>ú<µ>¶¤p>ƒ;»>j>MÌî? 5©?„Q?4‹•>ÌkÀ?5ùï?{i?º§¥?÷}4@^@ sa?•[W>Ç“•?{äQ?bÆË?3$î>þÞø> ð>’r>üU7>üi¢>üz$>ü‹ð?¾ ?Z\¿?¶Ño?»õ¥?Ç'­?¦H?TÓR?&“”>UÙÀ>Ѓ?…_R?x¯X>»eƒ>Ù®?BX@??êÔ?hë–?_]ÿ?CŸ?»«>ýí|>Ì>Öú?;#é?JÓ¡?StD?‚Ñe?þhØ?ç?~†ë?pÒ4?-®'?'i÷?!+p?À ?)ø?2›“?ƒâ`?€ÂÙ?‚o6?›¯“?èL×?¶xQ=Ý(*>¨Ò'?“¶¾?‰Ðð?4 e?!{~>}`ñ>‘\>ÿÇ‚? ØI?'3?({?IùS?+(=ïé>™à?}=2?Ž‘W?·ÿE?™ÝÓ?<ÈÒ?ÊG> ñ?ÆÒ?Vª"?­.å?ŽZ›?Cø]?cæ?ƒ%?|º?&)K>÷ü+>OÙ>¦¡??4ñv?{¾…?Ii±?dz?,¨Õ?Z–>ø3¨=øv>ú°?Wtm?QÏ?L.¬?…XK? ýé?¡øþ?§_%?Ù¹@pÕ?Ê™?£²n?©SW?®ô“?Ž»Ó?zܦ?€´ó?„1ã@ã@`¤?Ö—„?µÁº?•5>°?]jÀ?›9>´çÁ>h Ô?*ñí?NêV?mÁ?Å‘>Ñ÷>>tŠ=á¦#?}Ýè?LN?ý>ùâŸ<Ž°å=Röß>ò_?1?Œ*?ŠÒ;?eãä?gtˆ?‚;á?o??b?^â ?ßäª?³ßœ>å¿™?ÀÐ?‚p¿?ƒìz?1?an¼?‹¦?à +@0xs?ñø=?€?‚av?‚´ú>ß;ã=u­4?ÎÖ@A?Æ)+?”ßÝ?¦­M?±B?µ>”›q?¥[(?Åê*?Åwã?Ä”ý?5Û‚?.ÊÎ?Áûó?¿>ªä®>¤ ì?t³?‹Ìv?þHâ@°@o@?äc×?ƒ\n?Cå=®$F>â¸i?“Zm?Ž²ˆ?ƒu?;?©dÐ?¿Ü ?Éa²?ù1¯@ ªÀ@@@rb@ £p@%?Š:b?" ?üÑL@‹4@ +È@Öù?ÍAþ?År?‹=û?Œ|Z?4X? 7(?p_Ï?eÐ??F©ü?1 +5>,>>Ã|?mïN?†Uw?®#?¯áC?Æ=õ?™7~?6‘›?Gå5?UÁD?sn:?€vk?‡Ó??Ü>à[5=ÀOÜ?ûSË@&K?«=ü?‡ê? Þ!>硆?+ à?:´µ?ùy?ð@?˜¥è?šáì?”ö}?ðÔ?„‰h?vÑÍ?I>ž?a–`?„•*?„—/?„› ?¦Ýl?Ó¨#?…o€>Ól?–ô”?Ø ~?tgÛ?!p?¤ÝÒ?Æ-q@øù@%è©@Y8F@^,k?‰•Ó?i ^>Ìó? @Gm?ûž?êC?RY…>ÚÄ+ä> f>¿ê >ûR+>NÑ‘=€‹>âÐR?«»@;hÉ@fÃn?µùþ?„á°?{ x?u@B?­¸Ú?¢6Ç>Ì­Š?8K?œ1?” º?„æ†?ªéü@…¯?ÿ^?âñ¤?žù?äã?[a®?›BÊ?Šj¿?p8¡?ûvÒ@,~ê?^%?R!?‰Z9?+> +?yþ?+¢>÷9?®7º?«ƒ?„Ö$?†!ž?”vª?Ÿ¦?Õ¦?ÃøØ?fÆÖ?ŸÓ?õ:¸?ÒA??¦[—?ÔÙó@Âb?¹´Ý?Xüè?\CJ?T?Âä¤?ùóÆ?ü$?þP ?¡b?„«F?è?H@5¤@!—Ÿ@"w°@,]@¤¼?'£°?8p¿?„‘”?™ £@‹ +?ûúJ?Ç’?¢Šœ? Rê?+TB?Kë ?t…>‹Rî?“›@ +uN?éæ?ÄžÄ?…ȉ?)?fC?„PF?”ó~?—ÀU?5mó?Ž?}´Ç?†pr?Æe>û^@:e@<ú?„$Ù?„€?„ö?‚'!?caN?’"@¯¬@ RÄ?Åõ??³(Ï?ƒïÐ?Æ·@è·?×f£?Ù¶?Ò_(@EÃí@Ø?Å£ã?·Ë#?Ÿ—Î?ŠŸ?ƒ¬ú@ I@>&’?ÒgW?„ú$?²[¥?½¿Ì?3Î¥?}º>ÿn>“B!?Z¡?eÅò?ã-ø?î•@:F @=x +@L¸R@JD!@¶Z?üèL?´Of?±Ô?Þ{5?ß2'?ñ]?â”õ?¡×*?åM0@Dj9@.[¢?ô Û?Ω‘?‡€å?Òiï@"€Q@®|?ÏÔ=?¿Ýr?³f?ô^™@È~?ë(´?Ã×|@ ÿ]@-@4}ì@70Õ@šœ?Òßw?øR@RO@Dq“@eñ?×æ?‚5?Å¢?Öap@3\@@|æ?Ëž?­‡‡@}A@J¬?„5?Ñ°=F½<ý­@À÷@ì±@wQ‚@xüá?úÅ?óß;?’BD?™Œ†@"÷Ø@ÁÖ?ôOÞ@Í@Bï@Až6@ETX@G=_@<ù@cž?ïNe?öe:@!`}@-ýû@zçw@`’?•0z?šx¤?Ç;Ž?ÅÛ?Âë§?Í|•?üOY?ÕVF?Fº?s<@=î@÷Ñ?âš½?䊋?ód?ݤ¹?¶eÐ?æó@8g@ ?€6˜?z ?€'@?Ž¢ú?À ?À ?¿ýA?Ò·ˆ@—C@ÎI@?µ?ø½'?¿¢p@ [É@šeE@ŽXÖ@Šõ@ŸÇ?ÿ @ ,@IŸ7@6t?¡¨Ž?°€@ÁÛ@ ç@ÿÂ@T×?š’˜? bÀ?¾r;?¼/?×F?¡Þ?ýÃ?ú¬z?ÃÇs?¹rc@®@Ï@ÐW@}ž>?Ø1=õ®?}¡Œ?|ùþ@6˜ž@8½X@^ð@Ê+@²@&>?Á]?«g¬@ +@ú?ÄsÐ?²[?›¢Š?šàl?¸ °?óh@H)r@o|ò@%•?çð¢?Öñ…?ÊÚ|?Á"z?¼Ì@õ¸@RPÄ@ü?}Z¬?¹¯Ç?÷`Æ@¼Ý@ ßü?ôÃ;?Æçt?Ïì#?Ù“Ô?Íz?» ?ºû¢?ºå>?¯Â ?€6¹?…U¯?¿Ôv?Ѻ¯@'dE@&…r@0‘Á@1¸@$¨@²å@Çn@Ôé@˦@:•? ëá?zEð?"‡'?å ?Üú6@Ô;?£Š·?F~¦?xð«?€å ?…R?’Šr?Õÿ?‘a?·9—?ï¤ù@;j@298@$„Ó?àU?ÚrÇ?ל?Ù:)?…@Š?‚ÝË?ظa?æ”?‹l@?vm]?plt?i­°?¢èÍ?·FI?¯X˜?¨K“?Êa?âÓà?ºÝ?’ì?Ê1Œ@3A@͸@ö¸?úìB?Òô]?É,â?ÏÇ´?Ô|Ÿ?y˦?r‹˜?¦Ó¡?°?ñ@hÍ@4~£@ ‡@^@ù©?éc?~ÒÇ>Áüý?˜cè?¸ïú?ôÿœ?âpí?´›ž?´ ?Ÿz?¦ÛÂ?š¥i?¢M?ÚN:?ñÚ?ã M?Ðjò?…ƒT? Çñ>ý2[>ñ*??#@?dãX?\„î?]I•?xYq?•Ü?šã·?ÀÚò?·pÇ?ì9?õ#?ÈÖÞ?¹;?˜ñL?S`þ?v ?¦d?ÃhÚ@!è‰@9{?·7Ù?´8?r?lµž>‹¸>+àR?n€1?¤¼?±ßH?ÂÏQ?¨Œä?kØd?sð=?H>?T?ëg·?ëLž?Ù€[?Ú>@%ì.@ûK°>ïî>öÛ›?éÑ?iõá@L 8@Cž€?Åvq?²µ%?ðÆè@€’?´=þ?i`?5›ì>é/o?]å@X?üûA>‹Œ+>R#?ÿb@ à?e*(?N÷?H:z?wà€?Ÿ@k?×&?á-Ü?çßU?ê$@¢Ñ@#p?)j>çxò?ZÂ?Šb ?WÁ?–SÜ?ˆåm?*&C?ÙÅ?i»?;D?Áj©?ÐŽí?Ú;é?×…–?õHw@j?á…Ð?–µ ?ƒ«Û?f9®?hyß?ÊËÒ?ºí4?0H'?‘?Ÿ~v?áé?²8?V³\?mÀÁ?¬V–?¨Ýï?xù—?‰‰Å?©t?¬=®?—ÙÙ?‹þ?WÂY?äÕ?QÎ>å™æ>Û Ç>$”=¹?[¢G?—]?ü¥±@cž?¿Ô?@K×?‘­ ?ù¨@£á@Í£@Ì$?ר½?æIû@Vº´@tf@#Ö—?å ò?°\½?f*Ú?w*Å?šÃ¸?¢›_?‡¾·?‹x:?k$}?f©í>i*Ÿ?zô¦?Ûûï?Ç÷í?©ð¦?žáš?rH6?|HN?>!á?.ÄŸ?c:9?h(£?±­•?Λ?Û| ?× c?(ä? >º ™=j7=ÊP»>éÍ>ûV?j4œ?jdT?¬·—?° ?&K&>ÛpÀ?B>Ñ?kÃÕ?p.?¦²?“È3?p›£?k‘õ?cFÝ?vA ?–É‚?n.U>5î¢>”?o. ?k£=>˜Hè>gû,=¥c=*©{;ü/±=?Ê?Oxé?rgc?XÜo?Ib%?g ?t<@…¬@5¿Q?æÅG?öö?)*>ñD­>ðc:>Ý:>O^ˆ>ž >/ÐA>YVo>œˆ>–¾‰?IØ4?{þI?*M>íˆ>ýÅ>þZ§?_4?X¶=†æ€>úÚ?Û?-ôú?E.0?\ i?3Я;@<›Ÿ ?è?„mô?#>‹,¨>£í>¼ïÐ<Ýèœ@\(ç@0:@¶ K@\æÎ?2Œ>`¨™>ÿd?h‘?ƒáÙ?î?"¦X>øXÎ>ú²Ò?9ç?2 ò>P¡†>Œ,>èJ>ù#™=þêƒ=(>ØÛÅ>ÿ§ +>µk=‹Û[> ¬j>º2Õ>ãÚ¢>ú*S>úA>úY×?!º;?/¿å>¹, >{{=ê±Ý=²~#? e¹?rÃì?8§°? Ì+>ß<Ä>ºs>‚ `>äQY?n˜o?K6K?: ~?)”Ð?¢p?4ç?KK¼?lá>Ê8þ>ã^°>ü{i>þ]>ü÷ +?)KŠ?…˜v?Z.>Þ%\?C¼ã?©=Ë?‚øÜ>~Þ>¥´ˆ>ì`Õ?V¿?OuH?blb?ŒÈw?CÅ>ý·G?Oo?ógñ?Ñ]2>ý÷º?. ?£ˆ?‘К?_Wœ?;sA>®žð>ò°‚?a F?„3 ?œ`Ö?ž„ž?¬ë|?–Þ?<Ê2?c»8?ª°)?³“?¿GÃ?—`<éúˆ>Eß¾?/ÍY?q»Ÿ?Æ’:?·÷§?«DF?«ìC?°?.‚>ÿº\? Nƒ?2g£?6„b?Y‘3?& ø>{ä?qß?[¼?;ƒ?'Êï?„¯?ddž?AÇ?5©1?YL?SÝð>§‹æ?Ǹ?”ÎY?ˆ ?<Ë1?6øÊ?1+]?<]?\25?b õ?gé‹?‚KX?Ž‚|?"d%<“þ>ç£k?xóA?²t6?í–@?¨Õë?B¨¨?f?Öîü?y<Ì>Ù–¸??‘Ó?‚I¡?”7·?›,`?Šœï?0g?1Ø»?@?}Ð?ÆD?±0?Q#?_ÿÆ?j?@TÛ?;•?‚w€?Ž@Ò?¹i*?º'm?Mwš?1!e? ?l==„Qü?j‰Ä?Ì.?\ü?O}?DG?9k ?›?€k? z?ý?ÀÿÍ?¶¿]?z¹¤?ƒÜä?¹"Â?¶‚?³à?“,D>¥ö†>å*?6lÁ?eß?¤-w?Êa‘@˜½?ç¢Ð?±9?[éP>ŒË>³» ?>A?;?Ýø?Õ×?«ù?².Ã@i?>Y?‘)‘?Þ7ž?v*?'.Å?™Ó¨?­[?•·?‹Ž}?ƒr~?ƒ?\ôÀ?h1T=_.:¶“?%?£f=?¨G?¤{§?iÃ?ü–?~~ñ?‚8Ä?…AD?—\&?¿Ü?·9g?¤9÷?‚ ?#q®?(yj?-}Ÿ?ˆ6 ?¹+´?¤ß ?ž²p?ߟ•@ ¼I?¹Ðø?grò?zoy?ƒ¼?g¿?¡î¾?Çe?ÏâÜ?뙕?÷ï­?×Pæ?Ègƒ?†ç?‚5º?ôÈ?é‡?º*7?Ì!°@O—@Š?1å?e1Ž?Æ%Û?ý}§@6–@¶3?äAX?«{“?V§?ƒÑ@?›_?ä[ì@ öÆ?çs5?Æv’?˜¹?„Uà@"Uþ@D l?wá? tÌ?qJó?xFh=ñˆŽ>Cø?£Hè?©Pª?²šì?º–??ð+Ô?øû@ ¡?ÝL?D†?EBì?R¤Z?WY­?\Œ?FæS?(vy?¯™Ç?ü@êB@!’`?鸄?Ã%=?•ø?…—H?õ¼@u±?¶J{?·'°?‡35?…Á ?”?’S?ź¯?¸í? š8?%@D?Kì…?—[ @„?Ù–?nV?¡[\?Þ"Ñ?­/k?l+p?Æ•@xE?ŠÏÇ?ã‘?«6?ÎiÃ?ÇXl?˾B@kã@«@Q¨@NBš?Ç[¶?Ì ¡?÷uë?Ù?ZÖÍ?Y„R?8åš?—¤.@*@Zð@­±?­5ï>ñÚ?&ˆ¦?ƒéK?Ñàª@çú?ÉSg?Ÿ÷J>º[`?”žo?ºR@€¶@$Ùâ>~M= ˜)?ˆŒ«?X¿?„ÛË?„Ú¿?„Ø4?®?³L³?«s+?–|·?§²Ù?Û0O?¤x?Ë?ªr½@-&?ÊQ?fG,?•÷J?³!Á?ÀÌF?Ç-?½•4?»ÝL?—â¼?‹€º?!Ï7? ‰"?½Šj?Ë!R?’¥À?”*?›Æ>õëK>Oͬ>Ž§‡? +·˜?GôÔ?¯è¶?™.´?8’?!•p>òë÷>ÍœÑ>|?Ç?_wÃ?Æ¢¼?™G‡?_Ðå?\òä?c«u?ª +Š?½'?ϲ“?áº?“M×?}að?ëR›@V4?“Ì??1À´?DšM?¼“@?±ÔD?÷u?L²?ã´?ë3´@G?@T1@Ò»@Š?¦â½?÷h@H3‰@ÐB?ÞÑ?’`Ú?ñ“²?åöU?×{@6 @s*ô@ÄÖ?Ÿ¡?»õ?Ê{ù?÷¬v@ñ¥@¼r@½v@E4Ú@Nxk“?‡~ý?” 1?uz!?‰ƒä@ñÝ@÷?™h?€jØ?ya(?•,y@½^@¨@‘¬@»d@O(@Œ|@&Ð'@3O@q{#@^¡@v@ ÁU@L9@>Á£?ãaƒ?ìag?ûÙd?þ| @Ö¯?ÚÔ¶?÷?yÝé@^5@F@VŸ@Fö^@‡@¦ê@ +(v?íØ¡?Q–l?`W¢?“˜K?’ž‡?€+ý?i®„?ó ?]Uˆ?×¹_?Á-¥?…üò?̼@R•Þ@C¼Ê@¶x@ÈÑ?Ì×ó?©£>ö ¢?Sï¬@˜ó@©@r´†@NÍå?©:f?½´?ð??ðùj?þ™Ò@¤£@œ@ñ?ër?Ö¨!?~Ì?e±V>\ +ß>ÒóZ@ +~{@ "+@;y¬@?×@ú@Ä?}D +?‚˜?ý(?ü¼u?½¸2?½?‰ôE?‘{€?É W?Ï•Ç?Écì?ʪå?éj'?êh@v@sK@-›1@,˜*?ÆFþ?Ÿhy?²U'?µMŸ@9¢b@[Úü@¸Š?õTw@ 9@_è?é™l?ÆBß?ñ»±@ÿÙ?êØ?Ũß??Ð÷=¸·ð?³gÎ@7Öy@à¹?îX?ñ°?ùš¨?ó‰˜?äà?ØM?ºë?ºÙñ?ºÇU?«yÿ?@)¢?ƒŽÍ@Fm@BE/@t@¬5?øoÍ?ø+–?î^r?ïåø?™%™?†“”?ÞÌ­?õïÎ?–Mœ?lÔ?Ô„´@„g?û3ù?ìÇÝ?²ÈÇ?ŽU‰?èJ@?ÊX>ö`n?{¯5?ý¤‹@ ÑÕ@&©Û@!É?øNa?ðϲ?‰Ç$?ŠÅ4?̱?Çó>ž©ß> `~?ÙÞó?ò²¹?G$ñ?̃?b"?„ ë@@7l @â^>=u8>,aÎ>ñK?Ta'?ûò?óî?• õ?—˜?b¾’?X´->ÃV;>˜ï¤?ou?‚É@C@&@d?ôH8?«Ÿq?˜q?n?—ÎË?ãøÐ?Ý:x?Îð'?À§#?ßf?éN?щ¶?áý?ûD%@Œ?˜r…?:O]?¥Z?ëT?óÝ?úºó?ë%?§Õ?°ºê?è.x?ê²³?3>ö—Ç>Þ@þ>͇¢>–Ó4>œ§²?9+^?ˆlÚ?‘Š?™1Í?C‡?m&I?cÛ?‰ÛË?”¥0?¯GÄ?°Xü?ç•0?õ­§?¦‚u?j¸ß?Žúå?¯M®?ŠàU>êPb?"n?å¸?òö7?úo?›P?×R?ò¥\?ÈA?¬Ê£?Œl?M÷í?X¯#?ysÑ?n–é?£ÅH?¦–«?nf?h”ï?m\>èeÉ?w×?¥ŠR?ÎcÔ@‹^?æB«?œ¯ú?®Œ+@-Ì{@-»ö?7>ç€3>çl >çVû?`Úˆ?Žò¹?¼6ˆ@$$9@–ª>éñn>õ“¾?©EO?­ +C?·1‹?¼êq?â Í?ü¨ž?ÿ·ž@cs?ë½M?Šø?‹Ï@0@5G¬?œÖP?f¸?õ¹>èô‡>ðK¾>ù9L?!’ô?|nÒ?~Í?B?;…c?…­ ?Žˆ^?^?|•?v2T?e¡r?I6é?@ ?7«@€“@&|?du>þ Ž?ÃÕ,?òš5?ÂÎ[?˜\Š?ªw?Êá4?Ùøv@ÜÏ@ i!?=Ä? ï?ÚDÝ@ý`?®c?h f? + —=è,x>óζ?ž0(?£&ÿ?ÞfÎ?Ók?q(I?f³ö?T6¯?+Þ?›ZK?ÊKÃ?¨ ?wÇó?gÚv?gƒ%?R@Ý>=óÎ>|°?Æý?#F(?[¸9?hxÃ?¬j?Ø" ?¥:T?S­7?1“ý>Þá‚?8…?b  ?d×Ô?£“P?Ÿ«?ŠTë?ŽÏ?BX?7ß>?!ý?&™@?7Ûó?I=û?Œ·?± +1?¯gP?«>&?Žk ?5šË?M3¦?R^E??b³?oF +?mQÙ?M j?W>ôø)>ðù#>ð·›>áá[>63ó>V(ì?QÚú?sOS?A,ù?;_>«a–> ?@ €h@Iº«ëd>÷Úd>Ц>¬ƒ=Á¡ô>›Äz>µÿh?Lºà?|+³>gõÆ>Ï%O>þ?Y +b?\V…=W…e;¯•?Ç>>óR¶>§|=ôIÙ=êá<ÚK>-Ü&>Êô_>4Ü@rZ@‡åÿ@Ÿ(T@.Õß>A±í<äò>óð@É&?Ú+Û>¦²>HÝ™>ø'„>ý?;Ë?B„o>òq>«yœ>ö¢o>øýÔ>ùß>ù5–?¨5c?·s?yWK?TÅ?ZÇ„?YT?÷«>úù?.è‘?<Ê[?„û?•û¶?TÙf? ½™>ð]>ÐP? ¹@?ša?“>û+ >o‚R?2Ûk?¼Ä?„>ûØÎ>ÀÅc>M(1?A?„’?C¦º>AP­>€p=>ç¤?'ü*?z’?w¨–?|«?˜Y~?à?JM?Rf“?p“?†®?¤ûÆ?ó$1?¸Ó>ýt¨>¸ä`=×ÀÏ>׊6>ïs›? ™?)?x†?]ô?$¹™?C@?~8å?Š¦´?¥ly?‡)¼? b?fs@ +„g@”Á?èPä?½à—>€ýÿ>Œæ>þïã?=VK?Âî?°ø ?v\?Q¤S>ÿM¾>ð½>é-õ?G¨î?¿¦ˆ?ÅÅp?Ú™k?¬Y·>ƒç/?~?±¸!?šN?Kcg?5ô?;‡>ù?)ý?‚|£@"3?踷?»ƒR?€1)=¬:@>Ÿ±?CŽ?¡>4ó»>L’ü>d$'>Þ?EKD?K.?Q,?"×>¸oí>õýÆ?r?š£÷@µé?ÅLÂ?¥? ‚Þ=“åè?U.?Ë­Ü?Œ>?Pº?׎?~J?^N9?Ie+??çÕ?M$ƒ?hÈ?›’?©†·?]Ë?e¹?~÷?“Iœ?ßý%@_s?ÓÃø?À=3?ŒÆx?t{?)èp?sl?T$I?pq‹>š_0>?ÊE?¶OE?ÈyÖ>ĉÃ>o‘ž?# +?!Šz?©®É?¯£q?¢m?§­?ŒñOÈX?+4?JÞQ?‘Ì8?’Ll?„¡C?XÌÌ?OY?''å½;?f“?ò?vgÀ?a/z?Wßh?`¡R?jñ´?u;G?I$l?Ff?2¦À? fI>ÃÅ$>«„F>¹Ô >ÍŽ?Ià?'??ƒ=Û?r^$? /?y-ª@"¥@-W@]@?Çp«?/r?Kzi?fÑ?aß#?\ê?Ž}g?·¥l?¢40?‡YÆ?‚h%?zñb?ͲÔ?÷P]?¤Î¬?ƒ¼?ÍW?ézO?äòÑ–@r™Ë@ƒ7U@8¤@Û@þ÷@ +C?Öe?¢) ?ø0}?ظ¼?/8'?* ú?Œ;?¨v]@#gº@Uî?ê^r?ÂÉ}?£c?\ÏE?-˜?aör?„F?¸vz?ÑE6?™&£?„Uâ?„[Q?„]»@wm@yØ?8ª®?÷B>à>>âÑ?„x_?†k)?˜ú?¶t@;@ êƒ?Ö³?¯²+? L?"×Å?;>„? –>®¶??3ÐÚ?„¤1?¢m?¹´â?æ»~@_?­W†?ˆ­?¶»T?Æ82?þúC@½E?Å«v?½!J@©@ +Ïw?Hœ,?dË?±¢O?—%'>ÑxÄ?~5?BgÒ?„/²?ÇAx?ÇE6?ÇGf?¨<“?„Ü;?Ì2–@ß)?Q3¶>ÏKú?Cœ@í@$MÃ?©JF?…èÊ>tø>]»a?¥÷6?¹ls?ý{2?êQE?(¡“?TPY?œ´?„3›?ë"?fã¬?åÄ@ŸJ@ ,? †-?þøhÄ=Òâ¬>dT ?¼S?º?·ßQ?̦Î@7×?ü—«?ë?£•±?ªŽ°?”&?Gu·?•Üz?ØDa?¶-Œ?–T?šs"?˜ÜU?Ã!‰?Öϯ?^?r¾ª?·þ±?Ç B?wÜ?„«D@[e+@d9V@>Ó0@0Ø„?¾?Ô½>ÕÍ?3ì•?õo¥?ÑŠ?„Š?yÕ«?UBO?;d¸?˜?œ¾?s|?NÔÏ?ô~?”E›?˜”J?aŸ?)º]?ý†@)É’?–Ý? ƒ?q?(?‡)? âÀ?»N~?ÃAº=ŠÝ$=ìˆL?Æ9+?Ãò?ªš3?­« ?Ø)Ð?ãȼ@w@þL@2Ly@Ê„?¢Ùk?Ö-#@Š@«†?û†*?ýŒ‹@7³@üæ@ ÃP@a9@$¬ï@²Ô@ @›¸?÷Њ@mV@$òË?°<Ï?ŠW@¶$@,#œ?ߦz?Ñ1Œ@$Ž¥@$ªè@ç@Þz@8¯Ï@-æ™?ª 6?¨ê?©`›?·LÌ@ +ù7@¢ð?øâ=?ä¾¹?®É ?½R?çÉ;@ ”Û@JrÅ@4¨n@P?Åhß?*E?[Qž?ˆª?À¡*@ì}?äE3?ËèK@r¶@BÊ@A1@ +¨Ð@'B(@1* @@N @BºY@€?Êÿ?—©Ë?PX@z@0ÃÕ@w½@ËÍ@ <‚@I$@ã%@"g?¦Òä?Œþ•?µN?¼/ë@/@"_ç?žW>ü‹Â@6ƒ@6¨ô?u‘Ô?}äú@…—²@‚Î@9”–@1Ù‡@=È@sN@.Gû@*Ü3@e9?úµQ?ÅÆQ?Ñ.?çY×@ Ó@ª×c@™Ç¥?ÜÎÄ?àöÃ?å4?ËÁ¥?…û?PŽÔ?ßšÂ?Ýó?ü5G@æ‘@xäž@DÁå?6#h?i“À?·‚?ì,r@9@ß@9 ?tq1?ªÙ@)?íÅ?Iq?ö\@~o?Å>ß(Ð?CÈM?臸?ÎÞô?h™q?\Ì?Þ"?Rm >‚‚y?9ûþ@ËŸ?îð->&>ÀúÞ?Á\ ?â|Ö@(¬2@A?´Ä|?·þL?ÍÀ¼?ÏÒn?Ñä„?ß°g@ +ѵ@™Ù?õ '?ûÁI?þ@¯?äp×?lòž?‡þ!@ø@ +³?JPõ?Yd?îáõ?é ÿ?}Fë?‚ç*?ëLß?ðïŠ?Š??½Ýµ@UÕ%@Q ?Ä3p?½aÓ?î?îÙˆ?¤B?¡¯ù?Ý­%?é?å@æõ@ œÅ?í¸ì?Û‡?õ¼?ûv2@1‹1@D‰–@(ŸD@ì˜@'§¨@/óû@Z4?ú»@.þp@R£—@…9:@›}‡@UïÆ?î4‚?õ{É@h8?îß?Ç/‚?·Á?S‰?¡³U?¦í?Ðè@>#@ÐX?šÍ?›–??’׫?¤)€@*+@-jï@ <@´„?Ì6’?Òã|?ع?Ѻ¿@ oR@}>Û6<ùÓ?»Óö?ìb‹@ •l@z±@T°@_¿?ýi™?г@ Ê@1Ö.?õ%`?=ÓŽ?|+ú?´z`?²©?¸|¦?¸ò!?µv?­L ?©mó?²dß@Cþ@Š@'6@.p@¸í?ô×…?=’÷>ô£8@è¬@!á@Üw@<´?ù7?Þ¬ ?ãFƒ?êøž?Ï‹½?“ôŽ?‚ù’>ó`m?vÑ@A4ò@5Rs?›:÷?–I4@D–@ -?öUJ?òbÛ?ÊŸd?¶þ}?º·Q?Ã%!?ÏqV?Ì#?“Â4?8?p?;Fz?Jæ;?I +Ò?Xÿƒ?o Â?—&?™ßï@ˆ ?ûz€?¼Y@?°7‹@Ý7@¸?ÆÓ¶?™÷b?Tca>þ«?du ?²‡Í?Ä )?ï15@o­@@^ @4­ž?’“h?b?øF??ú-û?Ú<9?Ñ&Ó?| |?)—Û?$s?d³?C;›?m…?mhð?mR¤?z›Ø?­z+?°>ô>E>ìè>ì¦f>ìŠG?)`?5¼Ã?O§g?lƒ?œV¢?Ó’u?Ø t?ë0Ž?Ô€=>¾0¨>¨a™?¹ºÖ?¿ðY@ÙG@Øh?ÃÌ?ƒ"?qEG?ky‰?—Ö‚?ØÑ›?Ä}¿?€sŸ?ƒ4•<‰·<?´½?â˜@Àt@ø?æÉÕ?®í0?Í·ß@ ºÝ?ýXu?T¢·?ZT?‰;?vÔã>Dí’<æÖx?ìµá@8Tº@;[?̦2?ÉØ?˜½2?£$@eŸ@Ò|?S}?r¡?4CM?2ó‚@?qëM?Z ?iš”?f~U?-/ >åâð>ñ@È?  Ï?"?¬Á?66?%ÇÓ?,b&?p'?vä%?˜ü¥?°Ë?“Îï?e¡ó?Š“a@ °÷@€S?mP¿?W?;]?G²6?Æ~>üÔ»?Yûl?ªôã?¥ùå?0E?†ßÔ?‚9?}^©?0Pó?“Y?­y)?ã[¬?Ö¯ ?Ãòw?¦dÅ?ƒi?Ç?ÛL?âÄñ? ÞU? “?Ô*Æ@ƒ @•@ ñð@&¶@,0@Bé?ÜPK?¹¼ê?€Ô?w÷?hö'?h{µ?6‰?Àz?×6?:>¹E3<—´®>j™á?iß«?wm?¯·3?¯Úþ?lµ?jï?6pÊ?%×Ü?9¬I? ù>8Ëí>ï8ç?m½ó?‘dŽ?²U?‹ñ>î ì>÷%Ù?™ö?@ö+?oT©?l¢Ù?5 +?"Ž=>ð´î>ñ È?ªþl?©€>ûÒK>µn?X›"?sd?D¡?.Î\?%d_?ë?·º#?èN?_1Á>ò5‚>ò_å>÷øA?<Þ{?NiP>^¢²>ܪ?)Mi?Uƒ“?hdm>Y‚;9WM?PÝ?l]v?#í”?(g¥<ºhŽ”~~>¶ª ?¯À?‘1?qж?,À>Dôæ>ÇŠ¿>6ñ>·û@>Ò‡g>7^J=Ù @=2Ç@ "A@‘V‚@j*?èÿÚ>ΰ…=Ñ'?$$@©x?ÿ‡)>²õ>¯©>÷ÿÏ?Ù?7ºí?-ÊT>³àm>—dØ?8[?*¦Ø>û¿[>ù>ù´–? @M@ nq?—éd?yÅÚ?‘C>ùúž?&(Ý?;z„?Lá:?eÚ\?BŒó?5š>Ï™«>#›ö?“ee?ñD4?Qšä<ÒŠ°<«×È?u.?•è+?:@—>w‘ >‰€÷>—1€>ð†C?G¤?=[“?‰Íä?(Mµ=Ô>Ä…ƒ?| Õ?|±X?|Æm?j Ð?Vú4?&í®>+2§?Ü„?š v?¨7n?ÏÆÀ?©>¤ÕÆ>§ÜI>zEµ>{|½>’Bæ>ËÏ?s9þ?[T>çø&?bª@Ys?õz·?“˜?Øô?_a«?K]j>þýi?aHÇ?ÿž?ÞF¦?< ?]ýÛ>ÿ\Â>»Ä!>YÂé?T+®?JØ6?#Vâ?”µ>tø? ‘?¶>¸?²«v?šÿ4?¾ýg@‰@8?ùÇ?ý§8@1Y?ÖÒ?…cÚ?’^ƒ?Ÿ+Õ?p„?Zº?Rœà?¥?Š»ð?TeÝ?Bå«?; “?5Ï ?0w?ø~>ÖÚ@? ±?Pñ•?©û^?ôШ? DÆ?ém?=>?n–?|‰?‹ŠŒ?~ÓU?a7 ?[Žq?UéS?/:p?&nw?;5?Cí“>Ü€C>L>Ï?’Û4?Ú›?‰'?IA©?¼Éæ?èl¡?ùë?ÿ™Õ?Ñb?Â-?Ò¡?Á?Ðac?Ûˆ«?å ?]Ï{?~I#?sÒ?óžÃ@¸ +?‹íý?xÂ_>ä¸>‘í?ÀÍœ?·hA>Â÷˜>â¸?¢ys?¥®*?nA°?j=H? ?o÷?oÕ,?‰ãR?åì?ëãL@ ë?îwò?—^?~^?T´?Zh?b?v²Ñ?Îwï?²7-?™~]?–èß?”P‘?b™?³Û?gÔ¹?‘XÎ?²ië?È[…?ÆYS?ϹÔ?e(d?ËL?g9?Tk>®bÎ>“/ø?¨cª?¿A?–´?‹!ä?‚¯? »?ÙUÝ?ß.?Vê%?Tn>5¹>pþ ?Ÿ%?˜ŠÚ?Œ-?ˆ•n?ƒM?²¹Ÿ@$/¥@†î?Ë3¼?Ä8C?®í"?šòê?ƒ{í?˜¥?°+z?˜‹¶?ƒ’ß?½A?è'|?å¹?ãEä@ +L‚@5¹?£¨F?_§?Å?ƒÊ0?(?Õ=\ðH?óŒï@Èß?ˆ)=?•ï†@wå?÷ãÖ?¿j?Lã”?ÆN?ÓŒ»?óÕ_?¢7Û? ÕN?´ó?Ô—¢?äF{@< +@Ñ‘?âd«?­ y?’U%?„JN?ÃÈÞ?è*v?™7?|—N?ƒ…?„bu@4û¸@Dá3>v¤(=ƒñá=©å²>zr@‘£@Ì?„ƒo?‰Gô?¥‚è?¦”&?‹Ëß?LX¿>€>8>ë>?R|Î?!L¢>µ„ÿ?3 ·?„¨^?»·ó?ÔË(?ÏÕ?Ï¿=?ÄzÐ?à +ÿ?6ݬ?ƒò?ïpé@Âu?;q‹?,“#?f­?xÔ!?gÖG?ŠÚ²@†,@°£?ÉŠ`?œ÷?ؘ?x$ ?æhœ?Ì\ù?¬ÃP?ŽÅ?]Ðý?°8k?æø4?U?Ù>M{u?7Ã?y=?är#@ 4?š¡ö?„ê?ñ5H?ô‡?ùùž?ïO“?N^¿?C$h>]á¨?š4S?›4¦?“Ùñ?•Oz?£6ë?Ëü—@ó?±æÚ>Ù©œ?Ðó@0«Û@|Ý?þ#Ø?}¬È?ì>ˆÔ}> n?Î6u@ ƒ>‰µì;­`v?wY ?´A>ð/ù>ïÚ>?07_?HøÇ?”"G?“…S?‘1ƒ? 7c?¯(Ë?¶Uý?Ç?Ò?«O~?„Ñ­? ä&?¶ªˆ?St?gp[?Ýn8@ â?ó<¸?éÀ¾?m_à?´?©VÍß?Oz@W@CÕ0?ƒÄ«? +F”@^!g@{«Z?¬ >ŽÅ@ +Ó:@?)5?9¥Q@:£}@5?Äø?È¡Í?ãÅÓ?÷$í@*ñQ@1N@1j@0½ç@/À@I‰?îÈí?ëË6?Ò£@è @(S°@$hÑ@!=@jl@¢/|@sié@!³}@>² @UFq@VÒJ@X³e@l½-@u[@;¶&@!r@A×Ý@TpÀ8?!MX?ˆÞ¢?˜)Û?ªÛI?·ž=?ÏÔM?þdî@:ô`@1d¤@±œ?÷Ô?ˆ¡?šÊT?Ò|?á=œ@Oð@L8˜?:†?§/@&ø+@.e+?a«¥? j@"ã@6Bï@Nà?÷nÛ?‰B?MŠª?_´¡?qã?à`Ó@—]?׆?_±?Á¸0?Þ†¹?ï*i@ \Ò?ýt?ÐY•?à˜-@ô@1[?uœR?ƒ/?ßlÉ?ÕГ=°±º=4®8@(m@6+@½@ R÷?“ØÐ?h=Ž?¬­õ?Æçî?ýŠö@,¯?«»^>ó×í?1ÝÁ?xw?g‹ð?bü?ŸÍÆ@4µÞ@/$?ÑÛ_?Õu~?rÆ?r¥?áâ-?íû@Yñr@q=È?¸Ý&? ·?_¯?Œû?Y¥l?,ò?ÄöÌ?2 Â?uü}?”?³–â?¢_¤?„°¡?Ÿ @Q"W@H› ?Þ=?Ûd´?¹Þ?ÀtF@¹ @ ?å'Í?ÁgE?ƒ*M?“6?Bj?…†?x?á?[8 ?`^Á?e‰¶?j´?jö?eŸ{?Êï–?ÑàU?Ž°?lX²?ÞL?‰§?­Ô?Éão?ÃpÚ?´1œ?¼tø?¤Ù?ž­?Åßí?ÍL)?ødÆ@´^@ +Ïr@Ï%?°?>?·,?A¹?Fïâ?£„8? ûW?£K=?—è'@ ‹@L?à=A?Ù6œ?¦©?`ªì?—õÑ?ÙùÄ?ÄS?(ú?TK@?'|@I>n?¦ÆÐ?VÜÐ?èÜ‚@kÖ@Pb?×û'?Ôô£?Ñîv?×’œ@Þ2@Í÷?€æ3?gŠ›?¹6?Ëw@ ÌÆ@/ ®@?§´†?¡ßñ?p§º?²Œ@üß@¿]@9s @@ß +?Ùïi?Ô«?Á)™?þž§?ìm[?Æô±?¶ªº?²`?|ö€?.a? í?²‰ï?ä±7?§Æ{?XB?Q“5?KW?Wî?©ð;?  0?ëÝv?ÞæÑ?ªÛx?¦íí?ÜÛÖ@±³?⨞?e¦œ?{IÔ?®½?¯g„@ r‚@_†?Ø!ƒ?·²a?¸£W?¯ÆK?ÁH?ã’Ž?½…á?G{Ý?>§,?žX?¡ìö?ÜãŒ?åýT?¿{?¯-?MÍ >Üj>²èi>‰{h>ó¼?¬ÜM?¬ì!= Uû?™Š?»ž¸?·ãŸ?´4„?¯zÀ?® %?´yu?´·é?ªê"?,œ)??¬×(?®/Û?”“O?‹Þ6?[*ì?I‹¼?yK;?˜ +?Žá·?hƒr?~ÏŽ?¨W|?¥øÙ?¯Àã?°T¥?ÞSY?ÑÜ}?P`Ã?>«Ò?ê1ú@ t?SÕ=*>É;û;T<Ô/ ?'Îi?²(ä?u,š>7«>RMƒ>{Kï>½r ?Ž,&?Š–ðÎJ>ñ!T?Z-?‚Ó?T3«?OòE?¸ˆ ?½l?œ‹Ì?’{d?Aj?:×b?kÉ?v(°?;z>÷ø>5en=ÓÅ·?„;?+¥f>¾p->d}p>;2Y>Ž¥>Óÿ]>ü%>ö˜ç>ùZü?n Ë?~í?›£Ù?‘š¥:ªpð<¢æ>G3>X·¤?Í>¿!>@oƒ>êõQ>‰¯>3¿>‰‚I>Žï?=ì?-Û>×kŠ>Î&³$y=‘`|>L“™@s~P@hÀX@8hç?ŽÆ?ƒÕ@Mæ´@*Ǧ?•Þ­?mRè>Jx¥>ƒÚ’?Ó?$Þ§?¨)—?  Ô?«¸1?¯]ç>áœ>é¢!>øÄR>ù0â>Ã>Ëó?ÇlE?Öû>ß)€>Cü&>Úä|>ú>-?(6?z±Y?9_/???ÕP4@‘?ÕÞú?œd¸?nšŽ?5Ý?–M‚?Êœv?„T>üŠ¥>áLr>Ær?^>(?Æ3Y?Ówo?Ó¥n?‘`L>üq‚>•¬Ñ<ç˜=¥#$>â>äd?^¸?•'?Ï:T?œù?7zr?'uZ>â[L>È/P>® Y>ñ;?_%³?š6y?õ7?°ó«=Y̨?ÿú?òªG?ª˜g>#x>Ü©®?~F?~XÛ?~g?Ké—>‰&>ÅÔe?FÅÖ?DÃô?*²…?._¨?<ü ?#´‹>ÿŸ?d¦h?ùR¬?Èÿ?ã?ÏQ>ÿav?3 P?‘¼9?€ç¨?Tºó?VÿF?Z+‰?Zâh?y i?\8?0kæ?_mí?šòG?qy¯?mÍ?R=}?­·@?ÍÕ?ÿvA?è>.?ºíƒ?ä& @û¿?ÍGU?^$?F?9ö?Z–Æ?uœ?€!?€ˆ´?Sƒ>?#v(?{ó„?¯Y?Imy=½=¶?ñ÷?ŒÛ?Lúœ?ã?íK? 6à?MêY?€ëD?€ñ9?€ø®?M“n?-§!?%3õ?-‚?X*-?|Ã|?(³Ä?.«?:dÙ?[‚>µ à=á‚Y?v¸?#pí?œÊò?¼/Y?;k? +åF?¦;g?º^Ú?œ Ï?œ`þ?†^?Ø? ?j«@ û@7?‰ãw?‡’?Ô?&ã@-”@iH>€5 >]Ì°>]2>*æ/=›-/?¦2?Y? ©ù?n¾?AÔÃ?>Î…?[­?N‰–?‚H-?Yç?Tÿ?PËý?¥C´?×vê@H@¾^?úr?ÃÅø?ÃÎ}?°õ&?›rs?ÊúÐ?öÒw@cþ@K?ehð=‘2Š>ÈÞ?ËÛ?ÑC?×ô?7M'?;ÁÍ?õ?܆?¥@ ?ŸÃ?Ú? Ì?«+Õ?µ†ð?3"‘?.­?) ?BKŸ?ÜÀ!?Ù„¬?ª\?¨¥€?‡_?f ö? ˜£?hÿN?ÅÔ?°Bï?ŽŸó?¶¿š?æ™û?¾M?˜´´?¤±]?«4i?ŸNÇ?Ÿ0?»S?ËÖÚ?㛸?îšÜ?}Wº?+‡1?–9¶?¡¼À?2μ?ø > ]F=¥ }? …?¶(@ÊÂ?îí ?.)?U™M?®>£?¤Ìí?”É?ÔS@;RØ@ +|È?~?Br?„'K?”Y¯?®_Ñ?ó°%@®e@[ü?ß³­?²+?“éw?FVE?Â?!íž?¬L?zÜÁ?…´ÿ@Eÿ@'?T?õ²?æË?¦ïŠ? ¸ö?²pI?±„¾?„„}?¥TB@åp?Þ·3?z}x?›!È?¿å?¹`Ö?°™?Šîö?[ÈÆ?`yu?e)(@<Â@Zf›@à²?ïÄ?³M,?•*u>fb;×gk?³<ý?Ìb@¨Õ@Ÿù?ÉS?ͧ?„ÎÉ?@‡•?úª¦?‚‡?mµW?Ù ?‹[Ë@Ú÷?ÏéS?„Þæ?F¶Þ?ád?gŒþ?–dL?Šy6?„ç¿?+€?è*?¡$‘?¿¯u?Ž +”?„ë>/â½>*µé?Í•€?Ï?¯%ü?¯©?ÇLi? \>©;•?”‘?ž™R?Ø-4@=Ç@êÔ?Ä’?²”? EÞ?°k5?ÅLÅ@à@+Ô™?&x>Ò5¢?tÎ:?Ž\í?²Ó?˜áº?è?¬ú?e?f­?ºÐ§?¶`±?±í­?¸—ø?ëz²?Ëøæ?bœÇ?xö?œÐ?­Î6?Ç@‰?¹·Ì?¦q©?ùú@&œ?ág§?•Œ«@o`@?‚í?ÐŬ?„¿|?„½ó?„ºð?yÆé?zè»?„&š?„±à@!j\@ ~q?¿W?· ’?• ?«0Ý@??Ü‘?—9?‘¬?.?^W?¼X«?’`?@S(?F "?DzØ?ƒI>š;Í?{šÙ?³@ Ü@%|æ@q4@Ä`?ÊŒ/?±Ä?ôk³@D?˜?‡½È? §%?q? ô‘?ò}?–„„?–A?mTó?i3?d¯y?9Â?ò +?Ãx??8 Š?ôP(@‚Ä]@Qçß@Ì_@ða@äÈ@mS@hû?Ƀ?c +?œa@?· _?¡\>î?Q… ?‰(G?´Û¦?Ä69?Žx?€dœ@lÕ@ƒˆÇ?’ëå?X=¶>â´ ?D˜?>©-?Kd·@d@3¦@ ¡˜?þ¶?¡ýæ?Ð[?ƒ5c?³,5@*Uº@;/ @dø.@'¬š>×5?‡´ @­Î@!ô +@?°Ã@.‘Ü@Œk@ Ø@[7@%}@BwÉ@x$?âoú?êÓF?ó8Ö@…S@*§8@†’Ó@›VÚ@„Öö@t³Â@)«Á@ +X,?òAˆ?ã_6@õª@ 7´@7 @"ÌO@GlÊ@P#ò?þb?â ¶@‹^@òë?².œ?­ø_@74@>³Ã?‡!?„òj?kÖ?›Ñä@¿y@ƒ?†[?¿ÜÔ?¢)·?ª“O?ÖÎ$?Ö§ð?Ë„Ý?ã_.@(·½@ßC?ã6?í»D@ + ?ùß}?¥ß0?±Ò;?Á´6?» ?žhy?œÎ? S‚?’Ó5?uhM?Á\€@HAX@Ikò@_ M@U5ô@=Ëo@A•7@Q{@6M’?ÏÐÜ?Ó{1?à}Î?º[¤?g(?á$?nê†?¢Çì@td@ çÈ@zu†@H6W?€?ž¸º?ì•@n™@Så@@´@$gK@2Ö<@I»è@Žî>ÿo¦?CtK?¿wø?ÏÈý?ÿw?åþŒ?ž¦Ÿ?¥Ï?«\a?§.?‹T ?¥Ïó?çJ?çŠû?ëƒX?÷Ìh@ö~@ ?lùO?žÚv@Owª@<÷?21Ã?T–’?̧a?ÇéÈ?§ŠW?«W‰@$s@!Ñï@ã@åø?Ã3?Çw*@ÀÍ@š!? [7>ü^ÿ@&@ @.S@3¿%@&Ì@"Oœ@?û©y?û’•?û}™?™ ?{MÍ?{7ñ?{!@ƒˆ@×X?ÿŽK?æÖþ?¥ˆN?z“©@=#¢@Œ~@3ª«?Â0?›*½?[„Ç?ej?yÖ½?ª [?é)Ü?íÊ”?ùx@@ @¦@_Î@Ô@²d>ßz!?3Þà@ÇJ@r @'~O@&6©?§Oe? vÀ?¥÷3?ªÙ@+>[@5Má?Òúà?½¹Y?¾`Œ?¿t5?@’ >÷A(?áÃÉ@ÏH@íç@Eô?Ú†Ô?ˆ·º?Æ;y@ ”m@Ÿ¡@éH@ Ü»?Þqå?åÉÁ?õÙ\?ãšg?‰!?Á@CŒ0@Fz?uÔGc>"Êt>«×>ñ“?lÏ? §Í?ˆÏp@I?ûœ?´$Ô?Á<|@ ®@úÛ?ÜK0?ål?c^ô?+Z»?þ(Ý@$dª?úzÄ?»é?v©–>þÈó?{X„?á@Õ?Ü]”?㥩?é:?ÄMN?ÆÉJ?Â`|?¼«à?î?ÑÌ@Æ@-@Ç?DZw?ÎÂ?ÍË?¡,C?§?k=>ú'À>ú…?°.ï?­wÏ?¶àO?ºç>?ͨ›?ÎÁ¯?»•i?±É?¡`?O?`R…>w_â>æ¶?Ôö?×—é?ºúÝ?®Ü¶?á!?‡ü?™©n?©ŠL?eËÈ>ê’î?@^?¡h?¹¥?('?61U?™¹?ŸNÉ@¦û@¨/?½wˆ?ˆ>?A§s>ñ¿ ?4/R? p?œŒs?zµ?rÄ/>Ý…u>êÂ?ÈП?Þ?†Îø?LeÂ?àx?•à6?§/ú?ÄÉ•?Êëö„¡?lGû@&”Á@ž*?ÉŠ:?ÒÀ­?¢ðs?ªD^?«Q?›_?Ç~@Pc@ÓP?õyÝ@öú?Õ„o?Ëäz?ÏpÚ?Ú[?ã+?åüê?ª¡?eíE?ŸP?óù?Ô˜\?( *?BaŠ?ôÝA@»!?“?B-S?"Ê? ¬?Cƒ?L8/?—²v@+ÿ‹@(·?¿MÇ?É%?&;š?öŽ?¡=??Û+²?î)3@ØŠ?øw?¬Y^?©È„?…w?xkb?ÏJ’?áÔò@Š.@ íÄ?ê"!?¹”Z?ªý7?œWi?¤±@í@x|>Çfw>¤ƒ¼?›‹?¿Ë”?íni?÷…•?Î9?­€Ñ?u–>Km>ãÕ”?œÄ?™Ý?®?®0û?êË?‚5T?;8'?®Ä>£ÀZ=Â6>^%ý>ìºT?d=?ÉŽ?Cž?¯Ç7?°¥r?âÞ?ëyÀ?h>ë€3?Äèš?ëù?kÏÕ>ì{>PU>QK?'yï?O£?fÏ?HÊ™?2˜M?E4P?žÿ?•å$>Â'>Ù s?"¹>ñ2¹=@±=€|?œJã?¢¸C?¨ÑU?³ÛF?ŠzÉ?ŠÌI>¦ì_=È‹°?.ƒ¸?k°©?©qå?®ël>žÄº?k¬?EÈr>¶Í>‘ ë?6á?=na?*?ýÓ=šÅõ<Å#? Á?‹öc\>×jt>¨ÆO;‡©Ù<‰8=˜˜¶=W*¸>° Ã?õ +=Ï|=ä;=vü=-¡X>×j>›Á>”óÈ@½Ù@D=ß@e*?€0¨?mŸß@%Oq@ÕY?¹ƒ·?–.U>›3>ó<>f¡¦>¢C´?¢z?«§°?[òX?]C>ò›Ñ>ù°?VÃ?Nå0?è°Ø?ù«??>–6>ä?X>ú‡>‹ÎG>:ñä>Ãjƒ>ÄÆ?$ßž?UU ?¢ù?¼ …?½âî?Ä£Ý?;–>……Ï?5šÜ?{jÓ?~¨Q?‰¹M?jªr?=4?Dg?KHi?zn>µë:? âƒ@â?Àðf>üqD>2£>=9h>ÙŸ>õ]?£6?Š½}?ê@?»ì,?C‚Š?T´â?}[¾?lxo?RÊš?9ãƒ>ý¥ò?=ên?¥J?±Æx?¼\?–•?¬?¶~>ÓÁB?äˆ?~P¯?ŒOm?§o·?…åÇ>þ“L>þ >þ²ð?ê?)ª«?q©Å?¿5ã?¦Oú?EÈ·?Eõ?z[?Xn>ÿMN?Eˆ'?¬œ?~Ž5>»»Z?9 H?©õ ?»‘|?ãÞ%?Ëoq?¡ôú?†›½? c™? b}@Z.?þ‘ÿ?€w?5 #> Î>Òl¶?€+©?,#Ž> +›a?Ey?×ïÀ?Å ¹6N?J°?^¦°?NK?.ðÆ?  ?ð1r?ÚMð?ÀÇ?qRq?á¡?„ô?¶<Ï?•Öú?€þü?30'? ë?Rºƒ?T?•˜V?£Ð?™yn?‹ÅR?ƒ_ý?uøï?kÓ?QÁ?‘c¶?±tS?Nf?çÂ?iÆ‘?}Ì?(ZÚ?!õº?×—§?çëH?C‹{?'áÅ>»aE> ò?íR?þÆä?K9û?=a? †?/¦?Þ\?ƒFx?‘ÇÐ?“‡?¸?¤€”=ô¢1>d)ä)?„Ë|?³˜ƒ?®wÅ?©Z†?±Jî?±¿ˆ?›p¨?š³G>û¡=>æõ¶?‚‚Ÿ?€~½?.e?¨?ƒo?ƒ'R?ƒ, r>Óä6?¹½‰?›¯–?]S?30Ï?‰¤?d»À?ïä?8$¢?díù?¬Â_?Ü¡r?ûø@ +G’?ÖZù?©¿Á?¸¤u?¿¿?é=ˆ?÷%?uè?8í?ÍÒ?é±Ø?¦dˆ?—óÃ?l×Ý?skX?Ū?Å¥„?Ⱦ?ºö‹?ú? +Õ}?3¶?NEð?„^?E?®o?—åP?8ý)?\O?„)ò?h:@?@=æ?>Ñ?¼Ïn?‚”?6Ρ?ºÚw?åÁ?Ä(ž?¯Üf?Àë?Æ‹Ì?Ì°Ï?ÉO˜?$)û?ܤ@c«@·?.¤H?@§?„5?x‚M?,†?pŒ&?çj?Ç—?NM¹?‡dÉ?ÊÐ=?ú§°@ +æ?­±X>® +[>åF÷?«‡??ø›?U£I?8T+?(Ò@@±@< ?¬y}?ƒj/?‡ ?‰ï{@#^\@"é?®ý>?«ô‘?¶²?²§ø?¯~È?’_>¡öi>¼Ì|?ܸ?jïE?Ë?­|ˆ?„ã?¡c™?±Qð?ºqý?Ç[2?‘c1?o¸{?Q l?7øz?Ý-? Û ?~½?…·?ºí+?¶†ú?"ãÔ?FÒá?ýã0?îVj?¦×?¤-¾?ˆS ?§×v?ÿÅÅ@ç5@Èf@¦ã@òÕ?÷ƒ›?âä?¿ÜS?žmš?ÂÀœ?Ùï¼?–=àÖ)?Šã??´6t@'j@:Šù?B+p?_m?ë ?­ª@Ø;?íM·?/¦?Pƒl?¢Ùü?Ãm@úÔ?ýû?Úç?ÐQÿ?ÇE%?ÇAd?Ç?à@|Ÿ@4¶£?êt‹?Qs?±Z6?Ç,õ?¤eÛ?”óÚ?‡Î‹?„¿”?IÈ?1EÏ?wæq?©m?„Él?Œ?Çß?¿qó?„¦ì?ˆm¸?eG?ŠxX?šQ?=óI?œ¸G?’ô.?Ž…W?aÿ?…3?¢˜?Kþ?>Þ®T?ˆ è?Â^@OÛ@%‚?õÍ-?Õh®?gw}?.ys?¶6?Æt?ÿW@Og?‡@Ñ?‡Ý@Û«@’@4CK@3ó{@F@!ç¦?'F?p²?Ûø#?Ô;ó?¹ /@$@U2(@B8?¦¡.?ãÛ*@iˆ@0^@#µÁ?Ô´Ö?rî?±.v?ʶ?=S?s¡D?¬yØ?¿à°?Çf?ƒ£w?¹Ç?Â^l?¦ló?¯9?%W ?ŒÌ?Î2¸?ÂÍo>m>ᚊ@a!?úÄA?« +?¥‘K?@mŽ?_¹÷?¢¬?¹ŽÇ@*×@@˜@/ €@tê?²„.?쾆@(Ö¼@(Îý@#²H@daà@›@nÙ‘@!Ó@â-@þ?äœí?ÄÜ?Ä ‰?Ä7?ÌèÇ?ÓɃ@;–“@i~ +@Y'©@S³É@³?ônz@'Ý@34?ߘÝ?ºÏ0@,ªÌ@:ׂ@/:ß@, Ã@ @ K@ ¸ë@tvS@av@»@Á²@º|@ÊC@ o³?ú|Ê?ç¹Ú@Š@4Èõ@*ïŽ@!Al@aí?3t¥@Ñ@̺f@¦¦?Ê@úx@A@1}‚@ S<@UQ?ÀÚ–?»´W?­šæ?±­–?ºÆ?¨Ù·?‰Y*?³·}@,H@#N@JZ›@M ?€h?¦µZ?ú­ª@+@='?è»þ?W÷?à~÷@…ªÀ@Lmá?­?™,P@<½ó@2³@iØ@ +‹e?´á#?™ b?«?„bì@¾C@³M@'²Š@ …@ ã;@åR@>„Z@8v@‚$@%Õ?æªã?ÏZc>â[[?,L@¬@ '@.®÷@5>ý@Z’q@YRd@:¦ø@<ƒ@>!@Nq?˲º?Ïõ?ÚS=?Ó’Ø?dm?iÈæ@>Š.@F>h?ñ"?è„q@8$j@=³î?÷“?ßþ"?¦(d?”Ê´?eÏH?U¹3?Ý º@f?½ ‰?‘-0?Œ·?ˆ<½@O:@9½@)¥5@ÿ?˜m=÷bT?§5®@#¼@¦þ?ù°®?¸«V?(nï?¦?ùRF?ÞšA?š‡?©Wª?Ïå]?ê´#@F3ø@=äT@©Â@DÃ@"V¡@ ñR?…±? +åo?¼„?¿«ë?ï¡C?ö+u?óÏA?ñlŒ?ºï?¤;Ä@ÇG@"ý@˜M@M!@“?ÞWv?¶î™?”eü?ÙIš@î @ên?¡+T?³€å?ã(&?Üóa?¸>x?»ÍD?Ô-ž?Êö|?~›ä?yÊ@Mìù@VR?¨þ?2¶?âÞ7@@£@jO?òrü?ß­?©Ë˜?sæ?sņ?s¬á? }?‰£ä?‰º©?¡ª‰? r˜?‰o(?Š¢‰?Ü«¨?ájé?„èo?z·?¬Ñ?¸R?ßET?æ¿ß?µ·t?•¿º?F©>ñ›^>ª¿>"êñ?†È?«*ô?±±I?´|‡?¾<…@-'@0Ñ/?¥d?“VM?¡Nï?§¹-?“#?†¬ö@xû@0a‹?Ñ+³>ïô?Pû?$a°?x)‘?â€ì?ß×·?Ý%½?Úl´?€0·?‡Ê»?˜ãã?’£×@ÐE@ ¶$?؃¶?‰xÖ?Ç¥@8ñ?í~‹?–Á_?Šw?x 7?d¸!=DÄÐ=âw>0Ùí>pÌ\?»J?ìg¯?¯×?Š×m?¢·ß?·¼Ç?øé>ÛNz>öF?„Æ'?Šwj@w‰@D?ì÷ ?âÙý?f#>õS>ëÏ9>êœ#?LŒ?¯Êë?—`>ê/±>ì¾"?Ê? ¸§?Aæ?\A?ÜŒy@UÏ?¼Bª?ˆ (?ƒôE?i!¶?x€§?žöÂ? |Ò=£üX;¸kÞ?ÇA÷?èyW?Õ†—?ÄÚ0?®Œ?œ`t?¸&s?ò±t?è²?Ê7E?Ç%(?¡×7?šq ?‡¶,?€ö?à.@ˆ5?ï{Q?¬=Î?ºfÁ?ïc®?ïÜ1?{—Z?€Ý2?­ÈØ?«”é?çø®@•@é\@ +æ?ê?˜Ä?›×ˆ@ Ý@#*)?²Û>Ùþ¯=ÿ‘î=œÄÈ? wÿ?eð—?CfÈ?Ç ,?ákŒ>øæ>´¡;>žÇ?­âË?¬ìñ?¦ª?‘±©? 7>è“}?‡§#?šDè?x&†?`/Q?4È>éö?£t?Uh¼?IEå??§@?VŒ?°#¦?°L? +>늟?¼Ãë?á‚Ð?wrk?¦¤?z Ÿ?¢x†?šƒï?–Yî?¬4?×a\?¸Tì?nã?…ÆJ?°ë?Ž’=š2t>"in?íË–?èë>Õ¢B>Ââ„>Å`Ò?% ?jÞv?s²%>¾|¦>£š?O¤?¬h>þR;íL“?It?ƒ”?SÕ?1÷b?fö?yoi?FQ>ÀͲ?ƒ€¼?¡q?zñ?vÆl?z£F?h?â?g®1?]|?-?#½=›°Ì?Mw>ÑSÕ=‰ˆ>B©6?Ô‰?*ßB?VHX??4š?'ä5? H??‡?ºÿ>ÕÍ|>Ûåm>Ë™à>F¡ú>­š?+s>@]O¨@‹©¸@´Žå?­@:?€R@Hî?ù€?Ž^›?…¼?Cõ?Yl?“«?`ƒ=™I?¹¢?£ÿ:æ ³<8»ÿ<öw§?®¢†?¯ÛL?›O?¡/½?’¬ø?ˆ‚Þ>²>‚ ã?GÒK?X­?™™?«áû?kõ>U\1?†ß?º-`?“F?‚ë>¾ò?¤(@g[?ŒW<>û‘“>¯Ûð>€ë">Žž¾>œIy>uX€> ,?<Úã?²Ñð?ƒ%? Ó>a^>Ó[ý?j ?e=ÿïf>Ö`ä?Y ì?3Ð3>éÿ+?HŒ?š.É?Z‚<>©¥ø>¶½1>ÃÔ¸>±ü>?=ƒ>ÐÐ?wëÞ?)X=t>³Ö?h;¼?†)?­]á?£1¡?—³?xØd>þ›?ì?5Ï?;Ë>'z‰>ü/?¡ä?Î@Çe?á{}?ó?’‹@LZ@ Ns?õ¤™?¡AŒ> bÉ?Ñ?Cw¸?”±˜?ž6I?™ ?FË>¼¬u?€®?k(?Re?Šá&?º½O?e¡þ<3¼?z?®7?±‡?À‰Æ?«Œ=?’Y=?^H)? Õ?çY?…°>•V>eš…?q:?€¢Á?T#ä?"×j?xKò?ªˆÒ?fñ@?Ë +?ˆ-í?ÁD?à6?ð­Ð?É$?.¬ƒ?(!Z?#Fã?G¢¸?T|s?=ò/?:”??ÉÁ?EuÈ?­%?ÐÊ?æ_H?ïPI?Ywó?UÎ?ü?$?ÕST?ýε?D'Å?ù=ïP=…B>¢ý>Ý78?4µ?¥ó>D"½>FkQ?!DR?6êp?¡ßÛ?žàº?¨GL?¨Š˜?âk?†Q5?³<‹?¯AK?ÿ+?‰,?´Cª?£ƒZ? Ý?"¢h?y?Z†&?É?.zV?c¸Ð?LM[?OV?'gT?m¶ã?_ƒN?B§„?«›?§Ús?{´¼?*Ž?¼b@£à?ôc¤?¿”R?Õ)?ðRe?Òd¤?ÂAý?”ª-?xŠn>±=>Ië’?Ìy ?ø+?t­¸?M»§?€??‚ö>¸@–>’2¯?zù?…}?<òa?@›Z?šÿV?–r?ƒ.Õ?ˆ¬ ?©U?¢º½?uH?:ýs<ì >¨i?‚‹?UÖ·?üª?k&–?®#?©¤÷?¤¯ä?¥<?®m?ØÚq?ùÝK?ì»b?䨓?ç,K?鬉?ô³ò?ÿŒ?îV>ÊŒ?÷é?¡²Ò@ + @ æ >½Jœ>gä?Ã$’?¶Zñ=O >frß?yì]?…mg?®B’? ,µ?„f?{ïÕ?]¨?wc„?‘]?‰(ë?„,ˆ?¤¡?ÀK»?¥ý¼?Ý?W¨ƒ?#¸Å?Ô@ Ù@^p@%Á ?ý¢Ä?ß1@Ê"@$@Ü?þu?EŒ?ša?éu/?ÉKË>s˜…>£þy?ˆ«?<Ô‹?®-Õ?’Çù??Q¶?EÊ+?E®?Ÿ“%?í¶? ¬>·€?<ö?)!q?ÊY@³?Ù˜.?Ç•?Q:F?Ø? wf?'{? +K°?ñ»?š3´?¤5Ì?Ç5Ê?ÍáÑ?ù?à]?„Ød?fkJ?ÚÚ>Öê>sns>î?Jç¨?žC°?ÕvA@[&@1?àáæ?’/y?y²Ý?S÷l?Øl“@žX?–¦Á?€ÚÑ?üFÃ@Y??9·?óÐT?äáø?œº”?­Â‰?éj?é?õ;?óý¼?ú@å?ø4?ìÔ?ø4¶@õa?ͧ?›z°?¼‹l?Ø·›?ü@ô¾?‘u9?=À¤?Ç-?yÕ®?:?ƒÀ?ƒ=z?…ÏÀ?Ä?¼žÏ?ÜJ?™I?²Œ=?¥õÍ?„äq?­zR@‚Â@1™Â@oËa@#·Î?u/¢?}ù?ƒcE?âN…@ðö?ëãÙ?¾5=?ä½h?ð«ð?ìD‡?çÞÀ?ŒÑ?q’?î™v@ñG?->ýví?„œ?€M?®z?99i?¿#>?Ò°ù@yÚ@ðí@ƒf?ÿ¢t?™~°?Q1>IõÂ?k,?‹£·?ˆsä?dd?Õ•š@CÀ?ì’?ÐG÷@ §±@Ø»@ïë?ù¼>?ÚÈÇ?Ñ>5?Ç¢?Æx?¾–,?Â=$?ÅÿÓ?ÔA@€Ô‰@nû?àÍÌ?é¤?ú»Î?ù´s?Ô©?¥Ò?(0?‡@ ý@w6?üøî?½,?Hú?«À·?ø=}?챌?ܹm@é@ %#@<—o@XD ?Èÿô?@K??‹gç?•/h?ŽÇô?ˆ^É?Mƒ? +?´Å?¾:û@zÌ»@zc\@7Âç@2¤?À4?¶-¸?¯Le?¯bB?¢? nD?ñÇÞ?Ø`¡?¥Þ°?Áb@-J@¨@ y‹?ꦱ?ƒŸ?•ƒR?­y?ì(@#¶@ xò?廓?Áxá?ˆT?§ü ?ÇDW?Æ”?Ä @'Ã@MªO@Ï?õ¢?ë”S?ëµÞ@©@#=@")@`à?ìOš?ãþ‹?ç“\?è=ã@1Ð@?µY@9–@9Pÿ?ÉBe?±BŒ?Î<¿?Ζ¦@žË@¦Ú@A&@—? ‚?Ò@:=@3¯7@gd@N‰@9Ê!@;,@" @ :?Â[M?ΰ‰@ ¼W@)×@:À’@<°Ë@1Ÿ¶@!?ÁñÉ@ Ý@žÏ´@Ž{w@âÔ@@ú“@¢›y@W˜@&– @$s@!,@ãk?ÿ’¦?ïÑ¥?Á2‘?Öš@@ö?ü•á?Ë’!?Ù!1?òR\@:á@gø2@/ï?†²?œ‡\?À‡?ßµ|@z'@@ï@ÂJ?—ÿV?Ëýq@"«/@(ë@0 +@&Àè@CÄ@:>?ÍPG?³QW?wT?ðE@}ŠÌ@z¦’@vá@B·?‰ÕT?­¶ÿ@ì@°ë@?[@/„¦@*½@ш?þX@Ãd@@ ç§@y£@x?ìÍ8?Úך?˜‡¹?³´_@rŠ@?Òo—?àjo@@Ò@68õ?„§Ã?‹ ´@K@uŽ?…vÕ?‡•ç?•õ?™yX?ËÕb?ÆHÈ@U_Õ@\½?¼ù$?¢;ï?Þc˜?øY@Vƒ@Jˆ?äYÉ?Ó“’?€#?H4S?šL?¨6ò?Ø@«?ðÿG?îN£?ïÙ÷?ª;ð?zu“?Ƕ?ý«ç?oV¶?¶(ñ@;k%?ìp(?º??a}¶?¤Ú?¼`ì?ùV@<@Ç@Êq@7I@2ŒE@+Xª@*oL@ºû@ +Ë5@ÿú@ž¶?x4=?xt@ë@4Q?»“?~`»?ƒ³í?ˆ4S?®Ê”?¹z @*Ð@HØ<@ÂÀ@mJ?ÓøÔ?¬m?L©›>i À?D0?Ćy?°Ã?vò?ŒP?¸lâ?µ2í?ªoÐ?ÇR@A=l@:þ‰?ÅDç?¾ R?óåd?ü\?íè?æ‘ ?È ?Ã:,?ðÞx@p?á*Ž?Ìa“?¡`&?sí ?ˆ?—÷Ó?ÀŸ@eö?öš3?·B?¹g›?å*?Ö¢û?]V‹?bß?­Ú°?²pÁ?µ‹?µ¸?㧬?ò´?ÊRz?µd ?¿Û/?Â2Ì?²pì?ž|?¤9ð?½Ùv?Ìq @O|@ûô@­d@ad@Q\‚@Mãz?Žf¾?X7 ?É°ñ?éU?Å+=?±øù?ïÞJ@®?ÖIï?_|·?4Ô?ïý?èÍL?ÅK›?ÇXÑ?„fH?~O/?©¶ù?µ:O?¡ Å?›Bž?ªW?²e®?²Q@?²<?áíR@#@µ?ë ?å@Ý?b›V?WÚ.?MQ?BGÂ?…G\?–®?ƒÀD?l:§?¾Ë«@'®?âôD?·?ƒ¤~? vN?Pv?•]â?Ç?™ªÃ?¡2ä?ƒTk?jÕ«?”ņ?ªv?ær@# +$@Ú?Mù?Báò>éþÐ>éï«>Ž¦>q–V?Ý0æ@ó_?¸&š??“?IÖ1?i'æ?S>Œ?º­?÷÷@/j@>ÁI·>Wt?­TI?èVn?ÉÜm?®É?ÖC@þá@!P?°¸?¶¨U?§L/?°$?–ìC?”¸3?â¾@ +9•?Ó;?i'­?‘Ö]?æþK?éû?þÂa?õ^½@(°+@*í8?ÿéï?⤠?ùø–@ ƒµ@ X?ÿ1@‰`?ýŸà?÷&w>qr‚=C’¤>©Ðš>Ø: ?â»@0N[?æÛ>£ÖÉ>Ý£„?•Ö*?£ý?‘|:?“î?ÄÅ?Ô 1?ˆ u?‘?YÆ?£ù?ªƒ…?°÷¬?·n?%uh?:/Û@qo@#T^?Í»Ð? ®?’Œ·?vP£?‚>Z?‰[Ð?–O?Ñ'“?Ø]g?w`¬?f½?ŸÓR?³W?©Ó?fF?VT[?G¥P?…PÌ?ç ?Ý&Ç?—h?›7?Ä©¸?ÒZÑ?UCg>ç/Ö>çF>çd?U'?:B?`èšË?»k8?öʧ?Šé˜>éIç?)nr?beH?@eI? Æ«?-Õ…?‡f¢?ç…?’;?–uÙ?×›>ë•ã?›‹ +?±?Ø6?ëî“?¦Pz?zÝ$?™Š ?²HÚ?«•>?¨…?•Næ?;?‚ …?ø½ ?ëJ5?&ÇZ>ÿ}]FVž@Ž?÷µP?€ã?`nI?–F”?•È¾>’FÕ>¼Ÿ?V“]?u—®? ö >ô>_.>—¥>j5>ž?m? ¦˜?9.a?An?#&k?ªæ>ûÌ|>çy>ø®u?Š?°¯?ú¹?#Eð>ž…5>t…ë>’~?$Ld?¡–?œ>¢mÌ<À©h=Ý)Ô>m8? ¼h?:'>Çcx>œ¨`?¤p?±98»ï€>·„G>¤H0?mR´@{Cn@‚4@Žøá?pJÂ=O<³?ÁœX@LU@.!?¦o?ˆbÙ?0åå?k3ú?¿ÍÈ?›ù>L1(?–¿–?€> Ù@+â@È¡?„SÏ?ˆ +½?I”?""?Ó×?Û? +T|>ì1¬?ÉŽ?¥ +?m?[aØ?˜/??ªö9ö½?!§ê?ŠhE?rZ¨?Gø|?`>òLé>›%ì>;ó}>ƒÏ>>¹1¯?2“?|@”?šãÓ?º=?ã87b>sJG>†ªÌ>í‹Ú?Yc?2,@>¤±¤>`úà=áL£?iÀ?¾^Û?võ<ઑ? 0ð?¯Ãç?˜Ýn?~¥é¤>À=ô>ÿÚ¤?ˆRŸ?úŸÛ? Û³>:74>½œ?;3”?^@=³à×>ÚÅ +?uêâ?Eì³>ý®> Ç®>;?”o{@(±?ï O?®l¦?ƒ2Í? và?Rìã?„Ì×?@#?™Ç?(ÒÞ?T?nn¼?€µ/?Iá“?Õµ?"o®? s ?e­?ÁJ}?+Ÿî>>»€>ѶÀ?úŸ? Õ?Íñš?µÌ¢?ª+?Ê”õ?Ïñ%?–Bn?zÿ?U l?QCd?Ýo×?úû\?j^Ý?<î?\¡I?s ?ˆH?†!`>e<¿ðÌ>Ñì“>á Ú?LH?K#_>,”Æ>!y?¥þm?Ÿ5>•Q+>•g?¢øã?¢-?O¿?TŒµ?YýT?cã.?ôÛ?€?o¹æ?Q ×>É>.ç:?{?$ñ? ©ë? ¾?6¾?#¾»?cÁø?= +©?R¬?XY?`?@Ék?ƒ$‘?€U¼?‚yù?]>4–>*Û> +T0?äɸ@@U>?½à´?y·?_Rã?‚»0?‚ÂT?‚ÇU?\¦>ãž—?†ó+?ž/Š?„­?ìŒ?)pÎ?2ÏŒ?S ?Š3>}…û>“È©?LvF?S•š?z¤¶?Š­P?¨¬s?‘h?<Á>ünz>ãæ?ˆK?.9? òâ?r?–;?k™>Ä–œ>‡ú¤?ŽÉ?ö³??´v?.'D?Ë¿$@ +;e?ß+?Åv‚?˜Tó?Š2_?¯ …?µ:?uD:?S!^?ã`/?ø²ý@©o@'¦š@§À@Õ?ƒê?záM>ÿGù?$F‹?¾øt?šl³>Žˆ{>ÓÝR?%… ?I…í?„Þ?zwœ?m¼o?~˜W?„.?§#d?ÌH¿?±gp?£]l?»w²?ËÜ?›F,?„P™>öRó>ƒ—ó@,½@U R?ç”&?ɆY?É1?#2Ô@;F4@)=>§>ìq~?L[?6 Ð?‹C?Py?‘µ?1Ç:?N—‚?éD?¤ïO?¥à*?«SŠ?¤ì.?›¤š?Œñ#?„°ª?ÈÇ”?î?Á¨Q?µ6?¿ƒ?ÂÁN?o?„Ÿ@7@Qˆ?¿åw?¹áÉ?º¬?ˆ5?hÄ?yµ?„Øø?|4 ?VDÜ?‡-â?´–…?š»?…†?ªÛ?à^S?ߪ-?Ý»?XãÖ>ŽÉ¯?­Ñâ?ïDR?ÙÕu?Ð*?RŠT?;Š@$é@%ê/?‰¯/?ˆ5¾?έ ?Õ2Ä?òkê?ÖZb?f‘G?†# +?®‚^?~¸?j @?„tÕ?›Æ ?²R6?Éu…?_÷â>^=>L+’>:D¯?¹JD@÷M?Às?ª»Ï@CE@^ÄÞ?²rã?ŠcØ?½øš?Â}å=cÈ>O¯?Á’$?Úð‰@8m@Â?„çv?ŽÕã?«ü?Æ S?þ€Á?É:V?QèA?݉>FË?5·Ö?‹Ù}?ˆÃ?j/?¹ t?ãrô@!oE@.?}?¯?"?°£B?¿[Ÿ=ä’•=6’?‚J?”°\@6›@ÓÂ?Çï?Ëb‰?ßr@öK@-ù”@)?ß»y?·]Â?wM,?nô¡?z&h?¶u¬?èÃ?õ#Î@+¹@ »O@H$@ +ÝK@m ?ÕÁó?Æ™?çþÇ?òî?ÄÈ?¿çÕ?†Í? +û?ÆL?º¶l>‹xž? cT?ÆNQ?Ð3à?ûb+@xž@eʇ@&U}>²÷>ô±Z?NTM?nÙ|?„÷?,Ü+>‰Q^?*W}?ƒîå?ÀDL?ð¯O@í¯@”{@Çî@ys@Ë?ý9î@å@€@ÈÌ@!ñì?Õ ²?ÀU?ü­>@™@5@‚+?¸²}?¿]”?¦ˆ?ºET@ˆ°@ “|?ÅH?ë¢Â@Dðk@=0@·@È?ëyä?å:k?É€„? û•?aW ?¯sÌ@oŠ@ ¢R@×O?³Ùì>¶¤2?Ü9`@C?@ ½r?Ä3ê?xM:?Ia@Ùþ@I¶a?ï# ?¡Çf@ mÊ@<é“@8ò¼@7Ä—@Y÷ @dHë?Ñ…?cK?®Ì?Ã}‹?äñ?ì9·@4H@"¿#@"¶^@"«¯?àÜ?á=Ù@Ê`@U+@^Ÿ@Z(ò=qËx=ì´÷@;@ûÏ@‡Ë@’Å@WIÄ@I«?âM??çà’?ï t?é³×?Ú›C?ã^+@p@ +§‘@2N@$óÔ?Ý©¸?ö›@*bš@€?ïà@ Ú‘@KmÇ@G£@6ÄU@4b+@'´{@ºr?ÑO³?ü{¶@>!\@ d£?Ç`?úŠ™@19¦@ŸÖ?ÏÏ?üØ@/ð@ –?’@ß?«³¢?åI•?ë–?ÿÁz@ 75@æ(?öÔ÷?À3Œ?¹ú?¬hÒ?Ô‹£@b;?ý(J?·‹?ך@ë?ÿÝÔ?‡z½?•˜Å?È;ë?ö‘É@(Ù@<(Ý@`$Í@;EÉ?ÜEe?å#?÷‹@˜È@õØ?ÿ4¡?Ú-5?ã ?þÎ?øîK?Ñ£?ÜÍ™@q@+?J_é?}6 @èÈ@"ð@-­@/f@W¬Ô@Vx@9ðP@6$Ê?Ã@¬?˶)@9@¼«@@8"@:¶_@ƒ@¦ƒ@Dî±@H?B@ +v@¸T?0U‰>þ¿E@(Ô@@¬È@ »b?û^6?ɯz?¼eÇ@%Ò@9>“?îsG?¼ N?‘Öz?z¥&?wà?x­¾?êå®@²»?ÉQü?ZmË?ˆuP?®j×?ùói@¦á?æ·]?|h(?­çë?ùYß?ô1?óˆ(@äE@"»š@àW?£ ?®‘I?ßxØ?ÎÚ¿? ›ž>ò$^?…†µ?ƒ1Ç?Á¯>?¿<@xÑ@K?–ðe?w†Ã?¬¶?¹}·?à ’?÷ˆY?ù·ð?öìf?¯&&?v»î?>¯?3Ä?.%?iºú?húú?v¤?‡?¦(”?›, ?Z€¹?Û@c²Ó@e˜@:+@8Ðh@|=@ÎC?úã«?ôÆ7?_Äê?*šM?ɳT?ô]Á?ÍP“?·ô?•b?sõU?‡z?­¹á?m?lëW? ñî? ¡Õ?´ Æ?Ëlä?’ûç?l?6?¼óy@¬@DÆ?ÿ‘Ì?Ùÿa?B?R{Ï?ëfä?ëG¿?Aù>ëu?Vþ?pP ?lTP?qÏù?®}è?üËÌ@ êè@'ýi@%‰>#eV>: ¯?+3â?/ã”?Èò¬?ôdÖ?µø?‹Ë?¢¸?G?€ø”?\/Å?jV¾?®œç?±Ä™?eˆN?J’G?8KU?Dwç?pµß?‡ai?§Î±?à~ª?Ök°?Žªè?ŠË¤>•2> é×>ܽÛ>çp6?‰ä?²òV?ȼœ?æoÔ?ÔÇs?³;k?·Å?Åz@?Ë¥€?òñz@‰•?ßû?ÊÄ›?›­-?ft/?2®‚>¡ÃÊ?2°ø@2 Ú@0h¨?¸•ü?­²c?~?]$Ù?Ü»Ã@²­?ø´æ?‰Xî?w‘?5“K?.î§?e¡Ï?eÁ%?R?‹n?™¾ó?¢l‚?…:?d_>¶%d=*É>†¢Œ@T¥@ ²Ú?«á?±R¯?x{€?/Àó?\Ew?Në?^€y?4%†?+"—?S™í?ZÔ:?b?f +„?ÆšO?Þu½?¹·a?± ?¡j?£'Ï?¶à2@T@X?ć*?µƒ?^ +[?U¡?¨ß>ò³>\== <>Ä™×?g¦/?ea?oÿ?Õ1@Ï@8#?Žm>袢?1–?.)? Ùz>ïU™?a²¦?ª*?¢z?”¢?”(|?¯ß–?¨à?2w?:ªÒ>òm>ë¤z?Öô?± ?±IÙ?±òº?¢n> ƒˆ>„ÿ,>Ñ«—?cv?, ”?2aZ?'Û¶?Fßm?–Q?šu:?Þ¤ó?Ñ·ã=8?Pi„?vÙÕ?Ž!"?’Ù·?uVI?ƒ"ž>Ã*o>³þ$?có'?u³Ù>7]—½ˆ> Ðe>e0å>¥Q>¾à>Aw?Kó?:;=“¢á;t°>òÙ$>ür =ú­Ð>)±L>VŒ!>_R>>Aù?eµ?H°;>öd;>˜Õî>`7ï>Á§J?+E?Mñm>'gð?y~ ?t??Ž$Æ@gÓ¶@%<Æ?뜡? td>Ût¶?߀@W¦{@ ÷›?Jý?4¬ >÷?ué?@Žm? š>!3ö>ɳÆ?ÄpÇ?´‘“=5=.?Ôk?!õ? ø?„ì?›Û?”Å·>°4C>—ù>ãpð?i>?œâ?!ÍZ?$GL?/~?>“? Ni>-¤<|8?²<)?êx@8p@"“?ˆC;>ûN!>ÐS >у¶?(ø??ïV?:0q?,a>HÉ>ù??i,?oèx?v³%?<ªÃ?3e>ª%V>"^>ñŽ?9Ê:?,˜x?j6?*­î?A/?6ïä? i`?QŒí?’ýT?O¹¾>ÆÛÑ?A,¶?¨´?³±6?¼ŸÆ?Œeð?I«?mÉ^?²ùF?}²~>Ùqn>½ÃÆ>Cíª>ÎC?=À?-¢;?±&?!R?-îN?’¾%?ñÆ@3z@ÔÁ?Õï˜>ÿK'?0›q?jÚ?U+?¿ü>ÿHä>Ƕ?Ê÷?R9Ž?iãâ?†$[?´ õ@ûî?¸[4?9>öÔ5>Ëkž>Ð*?-«>ó³ +>ìœ$>ˆpÉ;Ñ`?]©+?æ@Z€@:L±?î_›?J|þ?ŠGÝ?¨[?wwe?5¯#?a²Ë?qPP?/óY?­M?«*??4á?Zø?kýñ?»ÿ¸?ò•X?ØU?Áj«?\}¸>é?B&C?j*h?Ò9.@ ?óöA?êçÛ?»çÃ?´e?rWJ?O˜?MÓ?Bœ?ו@ ˆ„?¡?^`?: Ü? (?Û¾ô?ü‡&?.ë/>öD¯=°`=‹^]?s°ñ? è?fJ?‡_O?ƒ$Ô?‹LX?Ãé?Ù±?fm?wë?6&\?0Çú?+gc?9ž?‘WG?€Ì ??X[@eM?ÕÛ}?Gw?$¥Q?xŸ?O¶)?:Ñ? hü?#Rú?= Â?Y‡?vr?a?“¶O?¢Îz?„y¡?M¾¶?A݃?/SM>øÇU>Àk(>îÁ ?¢R?M­ö?wÁâ?|ük?í?³V?À½‚?Š2?tyà?'\1?^S?]•¾?`w?èpv?çz?ê¡6?ä#=ÔI?´Á¸?™õƒ>=ê»>Öà?á$?¿ê>Ïá>«Ãø=‰ü–?+¨„@Uû?îÐ+?ÂUû?‹ G?n0>õžÊ>Ù~‘?WWi?¤8û?ˆ¸S?\xÊ?§P?Òxû?ýŸÀ@QÑ?n…¤?±‡?Ç4¢?î½B?§]w?ž?“[9?˜ët>€zÀ>*Up?ÍRØ í>àq7?›?ù8?/1ñ?B£Â?SŽ?#ÞI>ùè?nd9?¢Uo?!®!>J™–?&o?-c+?‘ ?£àé?Ó?Ü’K?Ot-?oÝ@Dœ@!¹k?ÈA4?¾a?›?¥]ù?§—#?­±˜?êÓ•?˪c?aw¡?OyŠ?' Q?ŒÜò?óÔÓ?ÝÏ?ÆðØ?´ò? a6?˜òÅ?˜ä?€ã™?d•à?•¦? 8¼?ù>å ¹?oô?„Â?û@Yi@bû@]Õ¤?!™½?4 ƒ?„Ò»?sœC?×%?#ý`?„Û•?oÌß?8ä?¶ Å@&N@«ù@Tç? Ãš?éÎ?QÊX?„êÃ?oâ?eç?T2q?T*k?èsó@ó?ù)m?üÝ@@!€{@%øÓ?†/÷?ýÙ@•@.˜?œ8>?˜ ¤?i´e?UnÇ?.<¡?@m?W¸Œ?sÉ?Œ??@%a@\?àË?Ò¦›?¬a? À?ÃÂa?¸ö?Š—?‡CV?iÇ ?³qÈ@*Y«@Þô?„ç†?XOú?äþ?c Û?«“?Š¶³?M·>ô× >’,.?‚$?Ç?ú?6q>¨»Ã@cñ@%È0?¥Ý„?„Ç1?„Ä,?„Ã2?ÙØ?Zà<²¢)>00;?Í\€?Ù´5@îÚ?òÊÌ?Æþû?üýS@>Øß@ ÿ5?Ûxg?ÁÓ?xÅ?˜ î?ŒcÓ?——Ñ?¦ä?MþÐ>ãX>Œ7â>@d?ÆÕ3@o—?âmÓ?ÖØ?~?„`?„[ƒ?„Vz?„Ró?„eè?…fê?…œÁ?wÑ*?dJ ?&‘?tW¹@,¾@g—@>½Â@%~¸?È6Ã?Š»š>¡²Ê?;«?¨(+?N®>~Å}?“S?PÂm?Ÿ|Ø?ÅÚD?¶l?©Ü?ÿöŠ@‹,?ç›?Ðq?šû?‰ëq?Ž^3?‰~p?.>? ¡ú?ˆšÈ?‘†?ÍL„?Ôéá@+à@(±è@:£µ@+Ùý?ÙÒ)?È ?î?µ€@V¿@UtÎ@Wç@?'Ž?úô@ìb@7ÕÀ@Àã?žƒÃ?`?u×€?Nàf?+p2@4œ@„eM@S`/@%<ž@d[@o;?úH½?ð•?¿¡V?¯x…?’µ)?‚¡™@73…@d‚Ú@\6Ò@X{V@a¢¤@dKs@ ™\?åéz@ +çÓ@ Î]?í’?’w†@ +â@"ÂÇ@ùüx?@×~?=Ç@Uˆ@›n@o!?éÆ(?ã@?ÛæŠ@ ¢}@AçE@DÝ@YÅ@-ý_?¨/?ϼÛ@ &@Ã@GµW@H¹h@O Ë@+pï?¿½a?ëZø@!2@>»˜@{@w<@v;­@U…@0@C‚Ê@’) @_ÕÖ?’&è?Ÿêu?Ä‹Ì?Û6ü@›°@lº?þr?èó?³¾ ?Àíà?ÏlÑ?ÇwF?˜w?¢g€?¾)ƒ?å&@cÖZ@a4@*Ô@Ú@ Zd?ÉûÅ?½|Ø?ÂЮ?Ìâú?õDœ?ûbä?êV?á„@G@høm@0›?²qu?Žp–?zª¤?7kØ?ð ?úÒ@9óü?©Ó¦> ,?Hÿ?®ý?æ13@>@@èë?¹q–?°õG?°]c?¹ä9?¾5ð?¯Dü?ŸM8?©^C?Á)y?Ç·@ «@Ìó?ñ`A?ûå’?ßL›?Ö©@v"@-›?$¸t? ÀB?C?â9?oóÉ?†Î)?Ï€É?çnë@@0¤@UÇ?é²l?â§P?Ûž ?ÕÙå?Ô7¬?°é¾?v$3?#˜?ö?üÀ?0o?XåÌ?õ‰@£„@N¸e@SSU?¾ù?tp?æ U?ôÍ¢?±y?žÇ0?ÿˆ~@2Œ@ç@Ä?µp?sûÌ?¦Ð%?ÒŒ ?ØFø?è´@ +@K—r@3Ùm?sr?sé?rãM?rÄ3?«8«?°S‰?· ~?µÃX?GŒa?.„×?ç:›@fÊ?¤u?èx??µÅ?‘ÌG?-z?`åw?´Éä?¯Õ®?=»?ªÈ?ìÍ?å7?«qÎ?©Ñ>ø¥‡>C=”?Ç@Øy?ɧÝ?~Mç?ËSh@›º?é¼_?/F½?0fJ?–Ž?:w@?ã~«?蔃?·Í=?²ÄÕ?p` ?_>¯?ÊÜ>íëÀ>ɤµ>6 ?jg@€ÿ@ È@¶@ Žõ?®¦?«_7? ?š"?_oþ?\¨z?©w'?¿X:?Ôa?ì?Ùìp?ÇÓ-?Äx?n¸X?l“s?ël?ëPÓ?'âŒ?+G?µß¶?ç¢?çìÎ?â:Û?ãy?êwê?èìÜ?í€?çj9?¨½? +>t@,@%?ûÙ ?ôdê?¥L]?\qÇ?“ZQ?Ò4Z?®7é>èý†? 5f?®ž”?®‹»?îl?Ä1?>¤9?L`?±O6?åý4?ØÎÚ?Íþ«?¹_=?t?~¨>î¦Û>Ê:©?UÐ?¾Ä?­\Õ?â­=?ʉ‚?®*s?¯±Ñ?­Dp?¨<é?€|²?ƒ“?†ª¸?‰Ä?Î_Ã?æ’X?Ãh*? hø?b\ñ>ŸÉ? Ùg@5æ@üh›?@‹‹?tè:>çÞ>ý³i?|îA?SÛ?. °?4ɼ?;mÖ?‹¤™?¾ ž?³öT?ªSÐ?^[ó>U”S>H=[Ä“>`©À>üXE?5X\?rÒ_?|/+?‹8.?O¸>´‡í?ap?hÈì?P‹X?@Rë?L,?Q‡·>âMá? +R¯?±¥º?£^s?‡ ?c$}?›—?£\? L?aâG?ªÿ?‰ä{?;Ûd?Qˆv?Ñž?v×?tÆ?›$^?À –?žŒ¸?ZÏ‚?kÁ?Ž8Ç?^¨ý?2ˆ>±k`=àË=#@ƒ96š•?sÇ?ŽD0?ÓˆÏ@ KÈ?ß+S?›$Æ?U*Ü?/?@œ—?Jx.?e?‰R?`¡?,ë>5\>¸Þ\?å:?½?K?»Ø×@z?Ñ«>?´?…G?µ?#Ù ?¶?ÏL@W?¬'?‡i˜>á>&>n`œ>မ?Fk>nó¾>ãK?‡ù6?›yï?Í ‹?Ñ&/?#i?~?´v˜?»‹.@ÈJ@ ¿?'rá?n4?EŠ(?RXË?V8m?TÊ“?Š†)?u9Ë=vX>?ÎP?:[†?–…Ã?•æ?¤Š”?–²ó?ÀÄ?}/x@›w@ôÓ?i;?ZœÙ?>ß?“U˜@ ?À¯/?J4?‚5‰?ØÎÆ?Ì/?Ø?€ûU?ðl?ª¡?~Þ?is?˜Ö÷>êÐL>Ï-3?p¼?.]>?+|? +ë?¿Ö?jCI?†Tî?ƒÊF?‚Ù?§Øž?¨³¤?2L?(Õ4?è!í?ôRO?‘¨Ý?–/À?A?jc?ñˆ?Ü4á>§Ð?Õ?¨}à?ˆ]Ö>£T“>·µ}?yY?„Ø?ÿÚ?¹;¸? Ô>¬Ä=Lð8?6&›?®q*?snl?$FË?‹¹?°˜?9Õæ>Òm?Ã@@ÿ?£ˆ³?zOî? ¦ó?¬á„>øì>¸6i> úÒ=ï)Q?Œ££?Sª?ðè$?î'C?ƒîÃ?H¦?ÃÑ}?«!>?-ôÇ?JÙ?ph‹?kœo?fϽ?”3?Dz.?¦~8?„(p?s‡O?Q®??l6¶?Š¤?C’?i ?\úð?_dõ?ü²1@)@ '>@Kh?ËÆý?ÀB\> ¸@î?w›÷?‰WŠ?öJÉ@Bç@'Ë@'Œ?¹ œ?¨U~?=¶?B M?¦¨?šÙ}?„Þ¢?¦±(?æ1ý?Ü÷?ß&ì?Ö‚F?Íf?¦—æ?qÒ%?BÛ?›—Ç?‡ø_?q›ö>ÖeD>YQ?ÈsG?÷Ü8??m`? ô®?¹Í—?Äû=" >ueã@uý?ý¡©?„ûÌ?…r?·€8?¯Ùæ?ž…#?±éþ?Ø +g?ßUh?ìƒ*?•›?È:?“ʹ?ÑÕ?«ý?˜F?©¶Â?«B?¦=Ñ?ª§?•Ò•?3š@Š_@ l‹=ÔRÎ<­> <̓z>ªT?ë?<–?³’N?¿(Ê?òh/?ã0›?´ª?ªÈ?™Š?ÑW +@ +Šd?±0Õ??Õz?DÅh?4d¢?²G¢?àð ?®™M?šð?—çå?•²ˆ?“€â?‘M‚?˜¡|?• ?}Îç?&¦?„½?ƒ±‹?‡®/? òÇ@²?ù£?Ç¿?ÔD6?÷ +Ÿ?úŽ5?ôáÕ?œî>Å™›?{¦?ÆÙ4?ÜN?çDË?Í»]?½¨ö?Œ?es÷?áŸÚ@s$?úžÍ?ù<]? ™?©Ö?~?‹Pâ?„b6?‰ÊI@ßò?ërì=~ÛÔ>$Ž(?:H?„X3@9µÌ@ùª?¶·?˜A¹?)J?$…Q?‘?Vò?¡¸û?„M\?Dý?o?ók?ÍŸM@âL@£1?ô†-@¼b@/VO@ÚN?瑵?Í9 ?Å–Q@@$šº?–à?RC@S±,@UÜ@TÒ@L1?ìn?ø’õ@;Ó@bo?¯´Â?¬ˆç? @?»ì3@@@@'Q#@3Ôo@$ó@½ž?ørà?ĹQ?ú¯²@(|´@$]Î@Šø@À—?Ù¬@Db/@=ú@yp@`uÚ@é¨?ÆÏ@0×¹@ZŸ0@+³¦@ØE@Fu@Wƒ@*Ù^@Ç™@Un3@dk"@‚ +/@„ÔH@]~1@T(@8)U@51?¿÷%?£¯@‘(@^ß@m¸G@t#e?ºQ?¶‘Œ>ëÝ>ü¹h@ˆq?@Š‡Ç@d¾ö@X©|?ËÆ-?ßVq@)sG@"Šº?Î{?γ?Â~”?Ë¡?ýù¡@ +XØ@1¯E@%fÎ?ÊYë?àÖè@" {@!e`@¬q@ fñ?êÉŽ?ÕŸh?šÖ?£ÒÜ?²p3?Þ~§@!K0@"ƒ@µ²@D»@Û^@OÆ@Ò>@<2@–Jû@‚ê@=é@ Cê?€˜‡?ï"£@bl'@4@ ?®B?›‡ð?mkƒ?»¦ì@I@(”@*Ì_@[@`º@('º@n˜R@c‡@Hª§@+ñ˜?éKY?Ú ü?¸Å2?ø»Å@:<.@ö?Ç·®?«w?Rm?}®©?“í(?óp@c]ë@5¤ô?~¸“?£Ô…?ù +Ô@À@ýœ@ÝL?ÞÃ?åÓŒ?Ü¿¬?Æ ?­z?¤‡Ÿ?‹?”à?ÛV[?Òús?¾ «?í/Í@„#R@zNÄ?¿Vê?°ûÌ?U/?$r?Œ²³?“»?Ôtº?Ø/Ù?‡Ô?™‚?w~ã?‚KD?öð©?ûôM?ûØ=?ûÆP?½ ?¬XS?îÇI?ûg³@ê@ÃÕ?£6Á?{ ?†$Ž?‡ ?ŽÞ˜?Œî8?ûsÉ@#5@œ@F?‡|?FO…?»uÓ?Ù†·?ùÅœ?ÂB?} g?Ÿ?Å‚C?ô @+²%@=p?—Üð?¯*M@· @'Ÿ?ߥ?Æx>¤vr>Úô +@Fîù@KcŸ@3@À@6†u?Å*Ã?µ†?¼>÷“?ðI*@ ©8?µpt?›_?ÉÖ‹?â7Á?æÀs?ëEt?ÝxU?Ôm'?ç„d?öcO?² ?àÈ?†Þ?î$?Ûó-?¸SÎ?Âð?õŠÉ?ð>?»Çƒ?¸_0>õAW>õm?€#ü?ŠÅ@;›@ Mˆ@ïå@ߦ?슶?ãY¦?¼î‡?œµ?µÐT?Øß>@ +;t@0ªÿ@¡Z?¸Ñ?´_?ˆEá?ƒ+‘?_CÅ?cUŒ? W?;@CV @Oà0?Ù{7?§–T@Ò.@8)?Ô)B?“‰I?ôq?Ž˜-?‹«Ã?~Â?‚,/?˜Pk?žÑ©?´¢½?¿Šˆ@PF@L-Æ?Á ?Z¸?Ñ)O?ê^:?lžV>õ‡å?¡]ü?çgc?ëäk?ø ?Ûò•?–¢Y?Ž’?qDí?yæ@X@ +?œ¯B?—­€?2$&?ï>í«Ý>íô!?XñŸ?›À×?}=$?– þ?13¼?€(P?ˆ@°?`…?P…>HŸ™>öÁü?Ćš?Ì:?ëtƒ?ëVP?mÍ?_½ >š¨•<°´$>©J?‚=?«·É@ RÄ?ú:Ê?¯¶Ü?²?¾‹M?¸Èu@ @EÁ?ñÝ ?îy?ãÏÜ?ØÍ[?¬Ä¿?i6ô?LG¿>üÊî?£µ?®¡ ?®ŽG?dÒç?VŒ€?”cO?ŸaÅ?Ów7?ý,?ÍMÑ?Š9?…-j?&<:?&6¸?š³»?²Î? ­Ý?£¬=?¯yT?±I?®ª?­aF?ÍÒ@°Ú?øE²?fç.?f×?– K?•·ã?Ñßd?昭?Ë9?»#T?¾UÔ?°C7?«ò?Ç4ª?½sr?¬¥;?¬öó?&`">ÿÁ¦?Y~°?Œò•?{ûZ?>Ée?~Œ¸?úù;@P@ @ž@‚…@g?ñ#—?å·Ÿ?¯Ð­?e»?k¯?[á§?fjJ?Â:ü?·Óñ?½€?–?ÍŽ’?Ç>…?­Rì?¦­G? Þ?€Ù£?}¶?€rª?r~r?f8†?`Ea?Dz?Ûù?š¬?fQ8?±h?õ¤2?Éa³?Wê?^W¾?ë‚â?öóÅ@?ª?ùÊø?ìå4?æϯ?Þ;?Ðé?¶îb?ž-P?¼}a@ +ÃÖ?ý¹Ø?“Šr?—¢ ?l·´?h° ?¢ë÷?®ÄD?®å ?®~ ??Y/E?[5­?j%«?MÕü>ê”Ë>÷?e°>ûêÁ?iý/?k»ë?Èm§?àÃ?¾m?±±?•¤ð?ŽÂæ?m7 +?Já;?,³>î„>îÔ>ï%Î>ºH=·D­>¨q›?­Ê?ª£(?{ÞÞ?x-·>ò ÷>ëX…>C)#>j¾ñ>ó¯>ôå>ô…9>ôû? +M>þñÛ?i=C?kc¨?Ò?Èü?|¾>øâO?4Ö?0Rb?Æ>û§?aGæ?s ?{‚‡>-Iœ=Pp= zn=)=;({—?lÃ?æ"?šØj?Z|½>Æ­>‹É?;”?³?üŠ>ݦå>›žô>¥aQ?µÍA@X/Á@¬½Ÿ@ÊæröÕG>^÷»>²‹ÿ? îÅ?ü>÷i§>æ>Ç™Ô?&Õ?dÏ•?G¤<ýa(>;cÆ?Sòˆ?R]?º® ?¸.?Z„Ý?hØÛ?±>áÞÂ<«¾a?@Êà?]­©?dɺ?ká=>?÷Ú;½>Ç…×>úÆ[>úæb>ûb>ÉïX>ªÏ?S‡¨?Ír?:¾.>èF?ž¢?É?ÍÓ?=àŽ?™³¡?½)Ð?mª‡?aÀ?ç?½¢?7v#?Q-?/õ‰?!6?fu>ý]?hD0? ò?œª¤?¤^?‰]m?V›?N£Û?IÂæ?-§Q>ýâ +>Œ¢A:㎀= ÂØ=À“4?^æQ?åu?Ø1î?Åÿ?›@ï?d/?;Æ>ü7¶?u¹¡?Ë"~?žŒ¡?Ág?+ö ?dlO?ˆ0?ªÓ@$¹@\ñ”@& @?µ³p?`£’>…€†>ç›>Š&Ø>î?.º?=ç¯?D÷†?BZõ?U„ô?~“.?“Yê?{Z?#Íõ>òÑD>ÖæÀ?`m?³/ß?½‘?¼£?y†~?Ö@?bX(?š»W?J”û>ä›>Ñ^D>W~>ý¯y?8Ö˜?2£?©`?/–?U²$?0Ç?¦?ŒÚ!?´cˆ?¸­?ÁNÅ?À‰Ÿ?Â\›?™æŒ^>¹ð¼?S{?‡Åž?Ò€¼?äÿß?–xŽ?w¢a?‹Ì6?ˆ¦ç?'–?X›?¾Rc?Ü<@$k@‚˜?1½?à? +R?Ör?3Ø?J6Ð=Ù?>Ò5?`Ä +?düÃ?Õê­?Õ6Ì@™?ïB>yõÓ>EcË>DÈ ?š?¤ÞÒ?ª¶?–Sû?‹Åt?oÚ? +Ø™?R?®?ÂRõ?•ÆI?3Ï?p/\?ÚR÷?Ÿz?M‰?ƒ}^?Ù˜ƒ?㑯?é|ò?¥èg?CÒ¼?:a¼?9U3?Š}(?­¡?{‘¿?*?sâê?Žw5?Ö@Ï?ø#Ô?h?Ã1å?ÄÔU?¶£?²çy?è[ä?ÕÈW?ƒ{?uGÞ? ãâ?/€B?¼„?ÁT$?·Pl?¢k¼?dd9?nxò?xˆ?M˜0?f@?7X~?m,o?×?Žèð,>>žÒ? zd?!¯ ?«ä?¬ ã?å~? ?‰~.?ºó=@b¼@Hn‹?ó"W?Ï&d?„ â?•‰X?µ}?š:?Û©?¡wG?8¾Ó?5—?:¢È?F?@§¿? ï?Æi2?‰¾‡?Vòù?ô> @Î2?ƒ˜}?0ñx?nN?|h?!jÖ?.m?„eÀ?‰¡!?Æ·Ž?³ì?€»?;1)?ÆÌ)?šŠU>G)?z˜Í@ _?Ñ&Ï?Oð?‚Æö?¦a?˜Áé?*à?¸„?ÊsA?Æ4u?Ç?–Õ?„»O@ +.@ôy?Õÿô?Ç(j>CÉ<¢ËÞ@°”@¦?‹Ì±?šâ‚?æê$?Иâ?• Ò?Ÿ(Ú?²†«?ÖÊú@”G?ã­†?„ç ?JX ?éw?‹Š?Çdß?Çe•?Çg@jq@w?©Ë¸?„õ³? ø„? â?‡ZÀ?„ù”=ÀG.<öÖ?e‹?e*?ÎJ¬?ó>?„þc?­Ø¹@j‘?üx?™R2?“Ǧ?Œôq?¶ª?äÍ?í9?äÿg?•ŠÓ?QƒÊ? ÌÒ?þ?Ã? ?ö®#?k¥Ç?"±§?¡ ?²ªú?·Ñ?»…p?….+?²„@7?ä¥%?õ:?; ?Çj—?Ö‘?û´?Æò?O:à?çR?Ç_Ý@ è +@9¨Ê?½1>Šb?dóÃ?©¿?ŸB?¢Eƒ?œ¸‚?œQÿ?¿½7?Ç:¿?º9Ó?º~J?û @/–?7ç?â_?Šë?…¢?„¹”?]Š>dAÐ?Š®_@Q8Ò@*¹·?Æý?ó…<@´?äø?zÇá?GQê?-?ÒE@ u?îZc?Ïyý?¥_a?•× @2@•?Ê<ƒ?¶Öã?Äû‚?Ƙj?½Å³?¿O?‰0?Š´‰?Å ½?¸ f>ùi>õTE?=N?À]@+o(@+=à@$ì¹?ãz^>´{i>Ñ>Y?“?&??*?„N§?¤?r?Ì?sÍ~@Ò^@[ @Of?Ù5v?× +K?Ôß~?”Ó:?pWx?¶JÈ?Åšâ@QY@"G?νm?ÃX¹?=%ö?X;@,÷Ì@+ùÒ?úKŸ@}¿@49]@4.Å@;ˆo@,çë@`‹?ãôñ?zq?&N?ëDŸ?îĽ?àF‘?ÔÀ»?ĽÑ?ijB?Ī÷?Û $?÷f@)x@3y @'±¬@ ’?Ôzø?‚âÔ?ªéÓ?Ä=–?ÐÄt?Þ©^@±œ@#ê?ãŠ\?Ýl?µzÃ?©,8@5Ë@O +@Zo@}€@Y­@d7#@*’Y@"ïP@ +A¥@ +¯?ÝÐC?×çd@[¶ @[—V?»´!?·Sè@>ó@8zŠ?x~/?Ÿt§@Û@‹1½@}$@!«F@?*ê@0³¬?›ä?Ó}†@•N@ ?ï}É?לÏ?ˆ“ß? Š?ÞZ=?ÐÚÒ?¡Äw?Ó @+wa@~ü?Ù¼Ì?¬~?/•?'͘?}?±~@¡“?Ün¯?øX>¼~§={ýÓ?›Ç/@^Ùø@KIS@/Ýl@‘?éÝ @^ë@UÛU@-8¯?æ.?òÁ@?ü]?À›ø?JlÚ?,]?N¼?ÑÍŒ@`lÙ@b @@hK@5Ð>?Äo×?ÞH5?ÿÿ?ÕK”?‹E1?‚»š?q’‰?| +?‚ŠH?—‡?¿Š?ú!¯@0Ãd@#Ì@2Ü@%àv@WÒm@'B¥?~¼”?’˜?ÄR#?ëŸ@à@ì?~>b?³©²@+1@+u?rë@ã?õBá?¸ ??¸ö³?îjÑ?í“@S&@ Ýp?Ž­?QP?”×^?6;?Óˆ?×Ê@<’ @=f@Da@íi?Ñ’?ÍÄ@¸ @Û´?šÉu?{Ñ?µº?ÅÂ@qÜ@úW@¼Ñ?úŽ?Õ„§?Ã+¯?Ö?ÙˆJ?c‚€>—t?tÓ£?Ìo…?ÚQ.?áÂÕ?¸Ï(?Œz‚?§%‡?Öò@n|@!€@ Z?m÷?˜;h@ F@pw?Õ„Õ?ÏJ¥?º6Í?ºXÙ?Âö5?¾P?óò\?õ‚?„þf?iÜÜ?èH@lÕ?Àâé?©X›?ï¾9@µ?î¦ó?݇_?“c[?7$?‹eÉ?ÀD ?‡˜[>³3?|@@/«@—O?ÅR +?ÎT?ýÕ,?ûc>?øìË?öqã?ò7t?ë 3?€Ü¦?tÚ×?ÀÜÕ?Ñ(®?íF'?ônd@0@(öü?Ç¿_?f˜*?ˆS–?–ë=?Æ@ ªÿ?÷1?ŠÚ?yz?ÄÉö?µÓ??2¦?(óˆ?±jÍ?³Ì +?¶áK?¿‚?ŠÂè?€pÉ?Ú!{?þ@Í?¶2‰?ŠÁ?‚O?qŒþ?žÖW?Ö&ò?äû@ž?ߣ…?^ÎÐ?‰@X³~@`+?=:”? òT?š‚œ?®Çâ?±B$?³L,?´=?¸D;?¢”L?‹ !?‹Ê?†i7?š¦Ö?Ûô?Ô…d?¹v÷?Æiø?#?ÐÁ?Ú5?òÄ”?LŠû>­¡…?e„?7ŽG?w3®?²*?ßÈW@0¶@Ÿ?ã +?"ï@¸&@ Œo?j`®?#Õ;?bÝ?¥½?Q?•À?ŒÉ?„|?kiÎ?E·s?k(—@.L@W!?ï6>ÿ„Ö@5Ó@/> ?éÄØ?¥?õ¬@*UÏ@²¹@®]@2˜@n@Ÿ?0{ÿ?9á»?,k? 4Q?£ìl?ÎÛU?¹,‡?œëd?‰“A?i +?wÔº?®§%?®‘„?Øúd?Õ'?üO!@“È?Ùæ?ÃÌŠ?ŠàÂ>èq?*‰þ?¤¨î?!þ?†#6?ƒH?jŽ+?g|?´Í6?Û…?ª5?kó?Ž:î?¾r?ÅÔa?ÉO)?Âý¥?ŠwJ?‹“•?»"¾?Ë{¶?¦Ý?‡þá?ØÊø@,Éñ@*ªM@$ÐÃ@&Øö?«<,?¬Ü?¥W?Àå?»Œm?Ê°?Ôí¦?á±?Å+?Ž(T?“hÀ?Á 8?Î|G?£·"?žçu?É@ª?ßø?¬Æ??fb?eµ?e·´?j/F?Œ½æ?“¹â?ˆ]x?ŠL!?áýg@°?–êù>åÕƒ?[æù?ÅàÎ?ÁÇ™?ÕXÒ?à?“?¬??¨n|?±ê?¸M?žü?fS¡?Ûž@,ÕÝ@ ‡?zr˜?†ìp?” +}?Œ @0½E@@\I@2$-@+ý?µ‡Ï?*Èò?Dx?­É0?ÓÌÄ@oB@Ï?¿¸?³Üw?Ju¦?NSTÓ`>¬ C?­?ŠíÑ?²6"?¡+2?Þž>ìF¥?T® ?v¢X?/X?;?4'?@}…?7Áú?.óñ?&½?0[? Ã>ïæ~>¹AT;ǸD>:”?5? ª9>ò1?™?NS®?.wë>‹[>¤ZÛ?5ªN?#,ý?g$?tˆl?² a?±i?g6 +?Sߦ>kÂ+>cžj?Øì?!I>¼Y>Ç)>úáð>ûlb<›Ñ >0#a?Ï‹Ö?§ål=èK>ˆJù>pÔø> ;>åZ‰?4Où?~L?&>Õ(?!ñô?6Æã>ÃÜÖ>f‡9?µ›A?Ôß?Ef ?L:dn‹?¥hà@6^@@…Úß@†9>Wγ>ü5@ gÔ@S^º?þÈ«?súK?7fü?’>·ë|>PÒx>ºÉå?!Rš>öˆ>9Äý=àóå= ¢ƒ>[ë?n£Ë?Ráñ?k½?œ<>Èçž?x»?IRU??S>øZ? +9>ÈÅÕ>¦gÇ?*¦?œÈ>þ t>úBê>úc;>ù<º?Ÿs¦?®®@?}5t?_ÄÙ>ž>”>#ñ•>Ðc†>ûf:?7‘?š}?°°õ?¼Ú‚?4ñ?{•?Å“I?–?xò >Ô„ÿ=1Œ>¯r»?é¾>«¥:>LY>®+!>ý?W'+?œµÌ?ƒ ?J"?S>?KV>?ˆH>JOç>£™>ýçP>ŠŸí; °Í?Š¤@øL?¿ æ?KÆ%?„ÊS?¥Œ®??g?K”…>Û£^>¯ôú?KÎÁ?—È™?Øx§?—îw>ÿ'›>žƒ[=Z·>ç¯?~}?TÁ?Õo?Ö9>ÑîÕ>Ų¨>¹|t?`Ši?¸Î>?šÊ?€ã?^LÂ?(ëÐ?$Öm?,[l?¾P*@+Ì?¦‹>!Ø[=®Ð¢=ƒn?…DW?ÿ'•?s =o¸?ƒõœ?æ¥?˜ï¥?3Ê?Q¿?‘§?3-6?G„Ý?^ü‹?nm?bÖ“?WEå?™²?Â-%@!Eí@HAÃ@¯ã?¸¨¯?“Úe?‚ f?ÖJ’?ô6l?æœ=Év? ¼?Ëd§?äe?ã? l@?™b¸?‡ªB?‡?–3³?£`,?!g$?\#>ÌgÖ>Ð!A?™óe?¬Î%? ”>ü¢??ºã?ºà?xæ?mÝB7îž`=$Ö?´Y?„Mî?¯¢™?»}ˆ?û~ ?èaƒ?Úü?´-?€º?S%5?ôƒ?“TÛ@^§q@@=†?¯è?¦ +?‚?ƒÛ?ƒ3u?.'l=HóÜ>™s©?0;?"F?P?“@[?î“?Ð î?¹Jx?®!Ì?£*H?]11?À8?_5?‚‘?êlm@Xð?ØLë?¸CH?—±X?‰Gæ?¶ÿ´?Ä'"?2cE? +,Ê?v ?‚Ýp?Eÿ?Ü=?“sY?•Æ¢?Y„J?zra@)Òi@?‡?Ÿø?¡øÛ?Lî‹?W +?{×Î?Uæ{>œm>Ÿ‚ +?PU£?&A>LÕ>1´²> w>„·;?ia?Bµ»?ƒs2?ƒyÚ?ƒ‹?º'?æç?[>ªâ?[J?À ?­š?¾Û;?”Rº?Âr?±Èu?½8Ì?Æë«?¿kX?…R?ƒsÛ?6 ”?)Xf?å?6T@‰ ?âÿÅ?ðÎ?2r&?-?t+Ý?ºP?˜?FƒË?wy«?™ ?aV®?+ž?5e„?RK5?mÂõ?„=Z?¨Q?¬ìZ?ž³?;>ÄTö=ÿ(?ž¸p?»Y?[Š?8.Ü?ûœÿ?þ’Ù?8÷>þ«>x>÷ø?t´À?¢@Ϋ?àñJ>ºÛM?Áž÷@dÈ–@/#?ÏR½?—÷?Gï?$£ó?¬´?—Ü?ÖïB?Ï3à?Ç€?¡{æ?’ÏÃ?š ¦?—¤L?ºþô?Â[ù?Š5§?ƒw +?C³?¹_=Û[š>*[´>·m‚?>Á?é› ?ν'?™‰ß?”´^?Ž.7?Y€™>îšU?"­?ì?ž;f?âèý@.@"¸@,@ +•°?³’º?’Õd@å5@š?é?€/ò?Á f?¼v)<‰t>Yÿ?ÇT?¥ÁN>2±ü?èz?´:?È>ø?á®? hå?Y?¤²@ ›@ ¸@Œ?ÈM?v¬‰?JÉò?4åZ?š¶2?´‘?œ;š?”ç?E<Á?/PË?’‚??„ûç?sÚ0<Ç{= ¾=$Af>>A?+1þ?ê\©@‘6’@]›S?Ò° ?Ê…*?Çbó?Ä5(?Ê}{?\Aÿ>|Ñ{?¸B?LÝS>€fp?,ïO?[/?¦ßd?µõŠ?—Ü«?‘µÔ?ºs’?½¥l?‹¿?™Sr@#÷—@$ý@" ³?ùjm>Ê—~?½!ƒ?¢Ûy?C2*?¯} @ ¶?Ìzj?e×¾?m`§?aíß?j‹–?ƒ×?†Û?„‡V?PGï?5Í9@a@2_?š?hÚð?ÊòÊ?ÒL?³]?@?Ðþ¾?Â}‘?Mµ?*÷Û?¿C”?ÆZ;?ðÜ?ç ?Þ¦?÷¢@ B?Øj_?!»?K\n?”g?¡õ +?°?4?¦ü+?¥‘ +?¹t?Åôª@ÏG@ ¤@ +Éï@áN?î:†?é@? ë@PÀð?Ú²?¸õ?È|e?È`=ç`è=8à ?{Àx?|W?œ|®?ªßÞ@‡Ê@d@]´®@J&Ñ?ì%?çã9?µí?ši?Tz?j}ª?á+w@ ˜L@HYó@1Dù@0U@Ûo?ë˜?î™^?ñT–@3-@p¬C@.Ä ?òšs?·1K?‡M?ƒÅU?…B@<Ó @uo?@_Zn@TĽ@!à?çˆC@3|@“¿@>à@ç@&„@$Žý@Œ_a@“‘@Œ^@¼?¯¸Ì?ª{$@~ð@:Õ@t­R@z +þ@_@YÇ@„@^ï? à$?9?…UÌ?…à¡?‰ò®?±ç@B·°@7ƒÎ?ø\B@×`@:Ö@.zê@?ë.Ú?’½›?­XÈ@ÕÙ?åG¶?hÆ?¸ º@)àØ@!¶@Cž?Έ?(ªo?B1Ô?v?‘ôN?®é?„B?ûG?WÈœ?¾ž@Ý+@B‘@b?’Uä?夎@1á:@'u@MS@QÄ?÷¦Ù>·¯±?@Ô²?Ðü"?ä˜È?ÿ)n?ös±?íºÍ?ÿ:)@'!ÿ@ÅS>ýÅA?=n-?ÇñP?¦¯]>ö«~?–B?Šyt?¨M@9"Ë@1NK?½±M?¸~~?Œ¸?¡ ’@7«Ï@0EH?Ò?(%(@ a@"º?˜m3?˜Ôa@RõM@\ ?í&T?Ø ?7¾†?ò’?âtˆ@du?²ô?™‡Ð?õ±€@ª?¸@ó?‘»ø?Û—G?ûëb?ƒ‹? A²?Î3?.wQ? yœ>Ç6ú?+&?è¤"?Ñ8?½Ã\?êéb@ ÛÈ?ñÑ?½ #?óä@BË@J@>´¿z?)z?Þ˜?ãF@ ÕX@ +i?Ôîe?Ði@½@ù)=Àùß=› r>÷E…? Õ?ƒõ?’íæ?Œ”ô?‹Ô ?¨˜?¹ü…?±ë?®Nd?–¿?y£O?t™?vn‚?…lÂ?‘Mk?Èå^@ÄÌ@;Í?é ?ñ¢m@ d{@@½@±þ@TÀÑ@Qö?%Ù? ‚@‰ñ@ Ú“@W%,@fk’@K(@B@ +eÉ?Ãpf?Ùð?ð_×?؆V?´\z?òŒù@>'r@&r8?Öîn?àtÐ?ü5ð?ôc´?{h¯?vdL?s¦t?wëô?sµI?r6m@g@(áä@]…?ù…Å?³Ð?q®?aɳ?\ž?¸0Þ@)RÈ@qF>µ¹Í>òþÝ@0¯@ƒÌ?zKJ?pXï?p:‹?p +?m¦?oía?tŒl?y’˜?”PÖ?©°?·d ?м’?·o|?r +Y?{´?;’$?6AO?e‘)?QŠÃ@@N ?d¶J>y»B?{ !?Îèñ?À.Ò?¨D?v)P>í>ñp?¼IÜ?¾èK>Ø;K>•¼?kQ?¦r´?™²[?“Èp?±ôP?Óø²?·ÈU??xÎ?m‹ì@*3—@+h?ol\?b5³@Àm@*¢?“ËO? Ú¹?4Å?jÕ?¶»‚@vÇ@g¾@S@G?•É?†™?CÛŸ??›?¾Õ]?ö/G@ ¹&@ ã'@–?i Ÿ?WÒ>ö +Í?Á ?³/^?¸òt?£?‚?¥‡Ê?Åmà?ÑÖ?©Œú?jŒr?ˆ€£?Ð[/?Ñè½?¿FÊ?¼0W?uJ\?g€f>3<ˆ[>÷¤R?g7?«8%@û­?óêÂ?’Ðh?™!@[€?õµ@Õ,@ O?é«Ž?À¹ ?÷¤5@&ê@È5?Øc@?Û-6?f:?iÙˆ@*Ê@8”/?õTÆ?»x¡?Çs?ךr?Év0?/O?ŒcV?zV?eÒý?©¾õ?¤m ?¦ï©?¬O?¬MÞ?«Â)?¹W˜?×?Ð×?Éž?¨B?»¦?´¢!?–¦÷?˜Sa?~‡?=Äv?™Ä@#q?è:?Un>ñÞv?¬‹ç?¬’U?„œ?œ’?­c²?¾"r@@,Ú›@\*>曞??Ç?¹¼è?Å7?§éä?©¼Ñ?­z1?µÔ&?Y…µ>çQ?6!‹?†C¸?Ì2?£DŒ?³Bk?ÃQ1?Ó|]>ôáJ>è½ø?•?4?«3ý?†J?oŸó?Rw~?OÖF?c´&?k{d?LÞ^>sÏc>[ô2>’ùõ>¿0¯@ï˜@åT?Eèç>ù”=þ Ÿ=Ó„>½x>íny?0?'ô7?0N?SG?¹n?+?é?$—ò>ïø¬>ó”H>ïœU?rv@8ˆ@€‰?M`?E„?jžÞ?xüO>¶Ì>3é?$?Ÿn‡?Ù>økÝ?³ôï?¹PŽ?«wí?¥è ?” ?}iÚ?œÌÔ?ú—>‡Tg>-$g? Ç>øÊ=X"Q?SÕ?T—É=ÈÆ>Þ>„Il:Ýï=˜œ=s»˜=óa>_ÒS>ï(?ð>¾,? c?íCk?ÑÏS?á>ˆö ?Lµá?ÅKÖ@iªX@oI„<î× =Ḥ@Ní˜@‹¢5@o?¸„ö?ª=ë?œ#[?Uî–>öÁ?1Oê?w?wFÞ?wo?Pÿ>÷Ç>¹ñµ=3Wd>2l=>øhV>ðzö>´%#>µ{ü?- +)?+`j:±9€?Œ?(A?Œv6?Š`Õ?æª>ú0Ù?/ >ü"?no?„g·>¨Ÿ +>_¸É?•D½?§¦§>áôÅ>]ô?ue©? `8?,$?xsë>ÛÇÖ=ì‘?¡Ü…?ô s?Š|]?j¥>E”ß>– ¢>üÁq?¤«?àÍo?€ý>ý™?J”•?}õá?4Ãí>ýoÇ?l _?«i¯?†›?LŒ€?3E7? +¡?‹I>û>ë? ²ª?4³µ?%ÞD>þ\Ï?;È­?~??¥‰“?Êó¤?q½þ>|Ò?B”¯?¤¨?ƒo!?Y?kYü?ep{?*÷>ÿN>úb>ýÅÅ?«U>ÿñ?g¤z?¨PT?g,´>ÿή?gZí?¯òW?›'þ?€ ?‰¦?ˆ]–?tê?T“ô?’Äl?Á +Ê?–ÿ€?YÉ?4ó?¼?Á½? B¾>ˆ*k?g˜?Îað?†àq?'©?„D?–‰?q’B?ŸòÐ?Ȫ?ÜB¤?«EÃ?–Q‰>ÖJ?=æ?Š»?@è?j«?^ÔÆ?€ö?È¡±?„~*?Nò)?··C?Ô+I?£ÃŒ?¡*;?Îé]?Ëé¶?aDë?;¸?|µQ?lQ?SüÛ?Iœ±>ÊZ$>–à>iœy>'0>%*=f0á<ßäz=Å?ö™?UZ>ÒºÂ>é±#?°óD?©û +?Ä@?vEë?+=-?G¿x?}»¨¬_>êø?Êð?ƒýs?8V>Ü=Ó?GÕ|?‚{ +? +®Õ>Yí’>öÀ?-ñ?•µè?³+?šÅ¾?ŽWæ?·³?Ä;?¾‹?Áz>s/Ç<ï£ ?•Ë?¤`?¶?‚ëž?³¯?®G¢?þß?=Ë?Çgñ?Ä:?ºã>û*‰?"¢>úáÌ>¼®s>Á]:?:–>É6Þ=Øxð? +è?¼wö?öY@$4û@4®@60?¿k…?ƒuˆ? ˆæ>6é?¡Ã3?ö°™?d+Ò>±¾ë>i´ë>Rq.?c}t?‡H?bh>ízÙ>¢­>¤bþ?ÌÚ+?æ%?¨ëY?£t?ÅË)?¹J5?è¯?-[?ÈÆó?ªòM?û`?Ê?3>Ø´I>Œ¾)?4æ,?¥ +ã?½v§?݃?¢€f?SøE?<)ž?9÷ð?›ý?)§?˜U«?·f‚?>5`?P©??~?D„?O$œ?[”¸@ FX@dÃ?{=i?„hg?Å +|?¸ßh?s”™?[Á?¦z?e?ä]¡?ÓKh?Ÿèù?æv@4ñ@O?ãÍQ?¤Ã¶?F;Þ?A• ?<ñí?^Þ>»Ð§?âÂà@Ÿ‘?Á:Ÿ?ª»?æíó?ögu?ƒL?uÕÙ?ÂŽ§?Æ„Û?Âüª?½Ü?³è?Ž“3>QºG?dvø?[2?-î}?AºÚ?W™f?:Qã?i?q˜¨?£v?—=z?›CÑ?û —@9?Õe±?ªñ?ÍAv?Õ{?B N?ö”?mÈ?ý†?/?-?ÁŽÑ?¬ç?û×?zF@ +À³@§ ?ë¥?òü@ñ?Ûû??–•?ì(Ý@&D»?ñõ ?¦q?” ?ŽV—?Ión?)‚˜?S{?b²b?ÇQ,?Ö»1Qò>,•g=öÓ>ó«÷?{>¡?Ž¿?–½5?™¥s?¡Š?«ÒÒ?§§*?oû¶?N­g?¸‘?Ï‘@öÓ@#Ke?†k¿?EY¶?úc±@j©?¾·ª?Ã'ù@ Š@W?…w?³Ô’@`Å«@1{2>uzö>Í&Ú?4s?„9?Ö„:?Ãl{?'T?š‘?œçõ?†y?h¤Ã?¸W!?æá?йý?Åù2?›2}?ƒð\?Á»y?à$.?Žm–?h™9@T­}@|UÚ?ŠR*?ÈF?ýª7@uf?Èv ?À'ö?ƒ­Ð?†’?½J?Ò†Ý@S¬»@A[ ?ÖsØ?Ïþ?ƒq™?µi@'AŸ@tn?ÓÃ?çØk@Ä(@1 @a¥ô@GB@Àm@aÿ@;°@/oÔ@Dœ–@%;]@tÕ?¨’€?*Á ?Ë>@å5?ÝLÈ?Â=‚@Põ"@‚Ê*@EX¡@-çO?Ìp? ¥?±šV?»g¨@*+t@6*)@‚I@VZ@€&@‰J#?âœ×?ÃÝ?¹™U?´Ÿ€@ cK@ †N?ñ¡ü?ñu½?ƒà?l'?å/$?â1?wÜ??ŒJ @óƒ?éÆ®?ô?H¶@“Œ@ @Á;@aÉ@ä+@ +U?ÕÚ(?Üßœ?ëyI@@4J/@ˆ–?¬#?¿ž¡?ÂO?ÝZ@ TS?ýE?¼Ò·?°²? c?âš&@64*@d]?ûÒ?3¤?ƒËÁ?Ö¹?†Ò´?Í ¨@[Ë@ÅÓ@ +­@Ò£@žó@—ô@‹æ@ 9J@;?ýb(?ÇG@5@_±ê@@¶Ç@üè@F&@$»<@š+@ +!á?üÐÛ?àmN?¢`á>ÿßä?s«?Î×Õ@<$`@6ÖÐ@=°R@K+p@B76@8—@‰\?¯ZC?û¢¯@7Y‘@ O?~o>?Ëóô@>µz@:oÐ@0¹À@*ׯ@Z?ø¹?JôÜ?©}â@O@ê@H@—@)y@$¾‚?ýGV?Ô`ê–½#?ú#ã?ðÁ5?¶o¡?²ã7?¬m?´%F?…v?˜4[?,¦?™4?ñqK?êv¤@ô¹@ H@?e-?Ž€˜?€%?dY?uhÙ?{G\?äö]?ûd@!Þ@-í¶@3Øz@7@9,ö@;::?¨d/>úeI>_Äw=„±¶?ãU@ºN?ʇ(?Ÿhˆ?éï?y¥í™E?¦CŒ?«m@~?@"ä@dñ@²v@_@PE?ÊN!?Ÿ…Â?­ž6?¸ý ?Š’Ô?A›?’ý +?βk?Ö3‚?îUõ?ñ/÷?Þ$?¼â>?)ó?qÌ? ##??½’°?Æûu@&x+@"QÆ@A)@)?îeý?øÖô?ÀW¼?¯l?Áœý?Í i?äŒo?÷×s@ký@Y@(ž@c†@>Óì?‡uâ?žI @gô@Í{?®w?²Þ?µ7Î?²Ék?°?/?­°[?ðÛb@õU?¯¢s?„ +?×{-@pÚ?²Ñý?èK?­B@JÖ?õç?¥*¹?¸×G@ZýL@b~-?h=A?] ?ng?p'Ë?^ÿ>ò·Ø?…úÜ?»Ò?EQ8?= ¥?+†¢?0¬S?ìÜ.?î|À?§¨Ì?ž?m?‚ŠÂ?nŽ?(-*>íÎ +?o?š ?%¹?kGÌ?O™Ó>í'>ùžÐ?±°i?±œµ?«1ª?Ÿg?š i?˜˜†?ªLj?®¥ì?µŒî?ÈS¥?®}l?v”1?“KE@Í<@ç¢>ýô(>ë36?ˉ?ìô?mñK>êÅæ>ê°•>ê€?[)?Óâý?Ù€?ß”?åTS@µh@|?•h‡?nÜ?fÕ¦?ivS?ŒÎl?¦Ii?•_ì?cvæ?š}{@(¿¸@!Jö?àÛÖ?Ý`?ªÎ.?$?„?@?!I?™7£?®??Ÿ¶?€c^?Ža?×ß?Ú??™/ã?Š.æ?s¶>çb >ê‚ >÷|Z?]/Ú?Áå ?¨OW>„VW>žðØ@,B@-?@Çæ@¡{?ü­?Ó™?⢼?úˆw?ä^s?~h$?pÀE?emo?f*ô>ÖG·?ï¹?bJÚ?‚ö?˜Q/?¬w?š•ª?gî?€Lœ?ºÕ§?Á”~@Fç@!q?ÒÂ?§Ñ˜?«dm?¬Pï?¿—E?å½á?Ø™K?‘4©?˜7@XY@Âp?$¥ô>ƒ0?~‹ä?½ðÆ?ªÁ²?—°‡?ÁÌ?£˜?©Ú{?kï‹?sI¥?œcœ?ž¸?çå@K;@+@±?ée?ŽÆ?lÑ}>æÑŠ>æàö?ƒPz?t„Ž?Ïf†?ã)Á?mÃ>ç„Ä?*Zô?gÂ?Xˆó?0ŽT?0‘¦?MxÕ?=ŽÒ?-‰”?rk?R ¥?dÞ>Ž³|=“X4?uÝ×?Ã(?b0X>*E€>²£?/)â?3%ê?Lfƒ?‡0>뛧>ëÜ@Lë@äO?çŸà?Ë»Ë?AiO>í{8?$³¥?9£1?ÁÔ>–³>9v>+>w>ð ?<Ô?±n`?›¡à?{æ¤???"%?5b ?sÁN?kçÓ?¸«Ú?¦>>1²=É?oÍÂ?r{ì>2g<>³Ä?Šœë?’d¸?]ä?ƒ ƒ@@>@äÇ?FXG?Zµ^?„’þŠ„>ðª­>‘àu>Ôpî?€–›?4"2>ôÎ?k8a?[–>½*m=ÿ¦>xÀ¤>¬t;þ}G>"Ýn?L®>Ç?™–½?áÖ5?öö·?¶—7@9ü@T«?«YV?G?,?.C÷?;í?-Î@?8í‚?Rê‹?ZSP?a²¿?Jèé? +/Æ>úa´>ë)Ò>°n}=¦Š>6A±>ø–l>ø¾¬>øââ>ã£s<£‹Õ>¼¡>Ÿ˜~?™=?¡_.>è@½>áï×?ªJ?ºz>g>?=înð<È]Ð>ép?)û¨>Ë(ß>Šá¥>Þk£? Ïr?¯v>þ¯?*¶½?7¬·?Ãø?­º??Û‚?ù2?4sQ>œ>ü¿>?J7;?‰½z?GÚ>Iè >öcp?>þF?"ƒb>ýqÙ?,ÍÍ?X¶j>í¯Æ=¿ˆ?¼?}ñŸ>øF;ÕjÍ>‡ê>þ>ˆ?4na?c‡¶?c¡>žy‰?Z9µ?³ª×?Y->ÿ?…§À?óëT?ªBø?$â?®áë@ ݬ?¶óô? u>Ž ;¤½“?tãö?î¯?œðÀ?/ò >ØcF>; ?•?úN?¥dâ?Ã\µ?Œ&h?7S¨?­å?(l>m }?µf?ƒ÷©?¥ ò?¼s‹?^Ç%>àä?QxÅ?Žjò?y9?Y€? ¤›?œk?Rë?€ª‚?‡' ?•ƒ´?@Ñt?Æ´? ’>ö?Ž +û?·«3?±K–?µ¤.?üc?€û?/:8?I?mn?Ú?NlZ?KÜR?ÿ?1KŠÕ>—Ÿ×?3°¼?†Óm?ûŽ ?Ç>Þ»d?Q£G?Ã5û?v ¤=e0j>©‰??=)?Gˆ?løw?(ý­>ÀSƒ?|?Á³‘?&5>ã??D;–?s?Š¦? JÉ?Ík?@}–?c¶C?¥Š?¸lä?´S?·8?+5n?Éa?p•W?vw»? ”°?ã?´aŠ?µt1?EM|?VÉ?™a?ú?Pz?>þÜ>ÿ,5?+žû?—aû?†ä•?W@s?C±?;á?"8Á?Tdº?g7?‹×Ó?Öý@ µŠ@¸o?Æœz?ÄfÏ?¾¼´?ÎH?YM«?‹w ?¤Yµ@þÄ@x?Äü?ž9?õ·?¢éy?‰Ã?ƒ¹l?ˆ-?x&é>¾àñ>Ÿøú?Á„{?Ë]»?ÅÏ!?µ5>èÑ\?Dé@MS?ë¶?ý¯?\l?U?K4•?£u?­}n?Æ*Û?£¬Ó?‚ *?ÞHq@?¡Ôø? ¸ß?W#|?s@n?È §?îð?3!Þ>µ Ð?a?¶g^>åXe>ˆ™?‰?V=þé<~½<†§²>L¿Ð?„§?šcº?ë i?êë÷?úm[?·i*>èå?6Ë,?ŠÞ?—}>?¡cG?¥¨?¥‘,?£>ª? ï4?âSy?ú´7@+¾Y@G‹?|5B>Ð7î?ê¸?˜(î>µ”ƒ>J´?†=³?…‡H?†ÐÈ?wó?9Š?Ij£?¥±å?¢pñ?§½€?“jÍ?a +V?n°õ?„éæ?„êØ?„íR?¹rð?é‚×?_œœ>^€?CIQ?„õ?Èdè?äì?öH„?ûÈô?“Ûô?„þl?{ý±?÷†@Ñ@=?Ç„?¼–è?}aÞ?o›)?[²&?‘Êè?Öß?ê ø@|?´ˆ:?Û?¥áv@´?¥ô›?G—?o÷Y?x'?[éU?B‡Þ?1t’?,½ô?í½Ÿ@ >¼åo>/d2@#S5@’¸?ƒ?SO«@FYq@,S5?œÁü?ž,?„ùê?³¿ú@ Ä#@Š@#kå?Ë^Ä?òÄ?´ ô@ Z@Í@‹„?éVc?ÇZ­?餥?üÏ·?õ?ó¨t?Ù§?Ë¡?4² ?xZ?çH?Üá¯?„ÌQ?›ÞÜ@#’Ç@)‡?Ç!Ý?Önß@y®?æ%3?¦sÙ?Ÿé?™b?°%?Ϊ©?›f?d2?|_¹?„šõ?§ºf?Äs?‚°;??b‘?ç[ˆ@ Ä@X@)’?úº’?ç’ü?ë’½?ð—Ý?…ƒî?ˆ-?ÑäY?̨?Å&ú?ç%í@H +Ð@0,?° "?œªz?p÷F?´lÈ@3é?ÛG‘?Ujo?p_ø?„©?yÚ?_â?ÓŒE@™@ Mq?ÿ/%?Ï„?´”H?°G ?«ú6?ü>ȧB@§Š@:9›?«˜Õ?ŠþK@;L@E”?Ìo­?ÄX ?ƒ¥î?‹ßµ?ÿPœ?ïG?Š›š?œ ›?´ß·?²¶t?°â?Ë@@J@y@æL@DÚ?åCŸ@'¹@;]Í?úC³?2Îñ?žß¨?ò·3@á¡@-§†@:þš@?x²@$u9@¤:@f>@Ä@d @A…m@´k?â‰@'@#n2?رÂ?µ@'¯´@5¹t@I…Ž@OSö?Ë$?¨‘U@-@!Õ?êfã?á#Â@6‡ @5É@ §½@n¥@•Ô@è×@‹Å@ƒ?,‘?(L ?@»ß?Vd­@ðé@@*@£–@ {Ø?§?Ú`?Íuà?ðP«@3@Ñþ?Âp«?óÕ@?‚4@.U@ +­Ó@¥@Ñã@E«@(Va@³@tø@!T%@5‡@+;Ñ@Ê@ ÍM?ëÉ?»š_?;$|?‚d”?Çj‘?ÂÊ=?¿èò@ +@>[Î@­Ý?Êét?Ìý¦?Ï ?Ñ"Ò?Ó0Õ?Ýù ?íï…?ùS?úëž@ L@@~Þ@%NÀ@B€@¤o@/X2@+_@ z?þŒó?ŸÑd?€ðï?.`5?°À•@-?ã×\?0Ñ?’S@¹?×áè?–=ü?ö2t@DN$@Bý@?4@Ri?Ç!h@È‚@LÖ®@-SQ?È%?Þ™È@Œ*@ ¦ý@1@¶´@2Ũ@m_?¾Y¨?Ñ9 @wÙ?ÿ±­?¨®?±5²?÷P ?ØÖû?ÈÔ>þ<“?+¡?FŽÿ?õ§“?÷¸s@ ˜¾@w/?Žš?”žÚ?ê6+?ã€k@Wµ@S¼²?âÜ?Ü•æ>ŸŽÝ>Z1?òÒ+@Y?¢.‚?ë?Á4?ÑT\?¯¥?©C?ò&@d?þq¡?ûR}?¥Oq?r¥•>°ú‹?¶Üc@D©@)b@/RH?ÿ÷ ?¥pÇ?ÕK§@u@Ú¦@ ?øXl?²zá?À}W?óî¿?Óµý? +r?L#Ú?ÞÊ?Ó*?08.?SöR@†z@‰JS?{«B?ry=?µSÅ?¹À@]@ +?Ç?½³8@µÎ@$ÿ?éÔz?¹%?Íã?Ø@¸?…ÃU>özÝ?wæŒ?Ê•ø?—uX>ö?’p‘@+þÓ@#‡¸?ýO@ X@O{Î@Rô¸@5}0@1ØÀ?A•x?R'F?A?KN?œfu?¥#?“WÌ?ˆÿ«?|å?tÍ?ŠÞÏ?š­‡?»L÷?×K?Ô 7?àûv?ל?¶o[?Àâš?ó?å¾ã?ã)>÷É¿>ùøw?²¢?×Fu?éóž?ɼF?ÂÏ?¥œ>áC?vM‰?Õ°T?¡|3?1|?˜O@ 5‡@Tr?ðñÜ?ð•n?çF@?ßu‰?%?? +°?né›?xjƒ?Ô–>?íÖ„?Æý`?³Í{?7Ës=®â&?£ñ?®ß‡?£Ö€?ž?œß?ŸU†?—…š?î‹ë?î‚å?ÕI?Ç?‰Á‰?n×?B(4?<Ž?“wr?é¤Õ?ì]?뇷?Û n?¥UÐ?¢áº?áJ“?Þwn?ŸK3?áÃ?É%q?Ó* ?ò™Š@r?þu?ëõŒ?µ¸o>Ï+?.æ?°=Ë?¢¨?µ]? dŠ?ž¾?±ú?B`Â>êÌß?'{ª?PŠM?b‹¶?‡âO?‘ë~?¯žï?±ê?éùí?éßÐ?º +?ÂVí?€D?iz ?ica?iMN?à±T? O'?€Ñ*?2z@%†º@"z?êC£?Ö‡?†ÈÐ?8lƒ?g. ?’;?€§²?ül?1U?­Ö ?­Ê@âU@ ?~îñ>ô¶?™#[?؉!?¯â ?}d?WÉ?rì?^ì›?°; ?À·?™®?‹ÅÈ?­p”?¾îÂ?›Kt?fn¢?‹„y?× +3?Ðhi<0›=p2’?†Ý?£?µ Ÿ?Ä3E?Çê?ÎeÍ?žgF>åëz?Ü(?°_Õ?¦6¯?àbÛ?åÒe?šåD?s ?’ÿ}?¬T?œÇy?…y¯?rÿ¨>‚*ð>ž8@?ø04@MÂ>Ü?N;?´®.?•»ÿ?*.¶>ðß<úp·=ˆ§>ö§?ª¨?9‹?/Ó?”J?·¿?Õdâ?ãç'?ܾ ?äVa?Ü>ž?V´r?8.˜@ +! @h¥?Qˆ?ªÁ?›>ç‰ò>¼ð+>©|ø?#‚Ó?ä@?–ÿz?Ã'¬?¾|\?¡ ¬?¥Ë˜?ñò>쮦?‰›F?œÌ—?Åôv?éàÜ?µ•Ù?Vnq?ƒÊF?Çe•?¾òJ?Ú‘,?ß¹¾>륱>ëèæ?fr›?t´?*|,?2S[? |…>íŠ>й>ß“ò?t”õ?¤†°?*¬»>yÉ?S?h&ë?í–?ð¼m?úÉŸ?Â|­>3@ý>¼Ð?¶aÜ?·" ?ÒA?ãú°?Pg?_F;¢k=‚£’>Ó;Á>¾¶»>˜ck>Â>„é>\Üz?Ž³?— =»¶x>5z?ù¤å?è’x>ß’>·.¶>çW>A¢ˆ>nÑ^>ìŠ?€¬’?,<F´> Ö@>(>?€s?ìÅ=OT;«|:=í:5=naõ?½¦?¼?+L@$åÓ@}™Š@~¨H@<ôj@3<@ œü?%QJ>>ŠÖ>€]C>Ì›7? «?Nå¢?e?O‚o?9õ+?rô(?¶m©? Q>÷Øq>³‡ä<ÑC˜>C|>+Ëž>HEþ>IÄŠ=dz}?K#?N„ä>¹%N>Ǥ>¹ÿó>bî<°Šó< 2?ŸñŽ?¤s­?Z]??é4>Î@Ê>¤J?1•Ü?BYá>².‘>\ˆ¹?øË >ùð!>úô>å×]>ñQ>üÀô>üÖZ>üïx?‡˜?Ç7>™>y3ž>ã>ýtÕ>ý>ý¢y>ý³ú>ýÍ?Myo?„)y?;´ã>úO>teé=kA˜>d÷>[ðÀ?`Ü?®R?w¥Ó?4Lû>³œD?bñ?˜Y?Ÿ×ä?¤OZ?Žî?B?mè?g¦6?8ÏE>ÿG? 3Ë?$º’?‹^>ÿÄr?!øw?6$è?X™?€e?±”¨?Þ¾ ?Í°?¶ÔX?š§Î?€,>ûƒú=õ<Æ>Ž>Ž?^€?¹Ä?gЂï=ƒòX?&xI?€…P?»‰?Ùu?j)2? ×?в?¡BD?7M>Ö%Á>íé?Ë…?¢Æn?ÔJ?™ë¦?€æ`>…ý©>Áø¥?œ?´D?>?Þ?ƒl?’¾š?œµ?²?5Ì?<?D>>þvÓ>æûv?œûª?ªÁ0?°?Y?»êT?¥ý_?©×Ì?¯hå?µ•*?ÿ'?ý¦¯?ƒ=?êj?—?Þ?šK?øÒ>×v>÷Ñ×? AÊ?7ÜÎ?žªÕ?¡ +£?§¨Þ?œ?4˜Ñ?$^®>ïuS>’v_<óFâ=”? +÷ž?·uÉ?ós³@…_?ÊT?@R??¥Ö?‚L}?­¼Z?Ñ)Å?ÑZ?Ú ¿?8Êæ>¡oÉ?5?P9V?nï~?‰H‘?˜¤?©~>Âj?waR?Ž>o?,”}?†B? +f?Hù?x¡è?‚Ø©=×¥þ=¯-?Áþ;?Åo?Óù?Äh`?Zy?T|²>ÖÃK>Ü\>†…š??é·W?À ?2®?9’?>}?à”?ù ?Üì6?³ýª?Âèƒ?Ì4?G»€= á¨>¶æR?Kê?`ò?ƒ„‡?ƒ‰Ä?ƒ&?ÚH6@³º@9æ@¥Ð?|ß0?B4?G ?Kü—@ +@L @ ¤@çº> @>rÂI?ÅÒ;4h?Dñ`@^w@;W?ƒþŒ?‚r¨?z€q?‚a?²?Ô0¨@´/?¶ô(?&{?ƒ1~?Äfž?Ï þ?Ê»¾?ÆØy?Ë‹ô?´´î?¬¹å>ß7>'·Á?Fth?hH.?¦Œ?¯£Ê?z8?yVK?'{Ý? Qð?ƒ4y?ž@ãÂ@°œ@‡‰?Úü“?[þ`?[ØK?<p? !å?@?DV¸?„¥!?‚ƒÅ?„ó¬?Ô/R?ÿÊp@9@,ñn?z%W>½!ˆ>7~L=çAd?ÔÇ$?õçe@ë@« ?ÄR?ÐÙ@#C @7?|̸?gô5?1»Ã©?dfo?áW¬?¸™Ü?„ën?d3??²º?AR³?K¯2?$U ?ö.? ?,:,?ºWœ?ІH?¬J?ªÉB?´¥Ô?¬O]?)‰?&°|@Ï@þb@2 ?ð'h?…²?±>?²:©?¶Š?ÇŒÞ?à¹@@ÑJ@)?îÔe?¡¤·?Z’1?À?¬ÆP?ä‡?ëå­?ñß?›ë*?…0?ØõÅ?êØQ?Œx}?…D@@~ß>øÞ?6 @1?åWw?¥>ä±%>¥?,tB?ÔÛ‰?Ï„Ö?Ì+¦?¤©Ë?]©?¢k?ÔÃ^@•@mÂ?º±?‰:æ?†ýê?„å?âB2?óç%@4þ@#v…?½r/?®ªú@A^@9ë?{§5?‰Ø?Äï?¹pŸ?†¸?s†›?*š9?Ê{<@RóW@Ù?@³a?ƒQ?«X'?ªù?Yó€@&|{@n±Í?·TO>Is?”jð?¿Ö.?¯F“?­{?¡™@?–4 @êp@ ”¥?Ñ Ö?Á‰?ŽœË?˜&%@˜@vî?‚Ãý?\•Á> >£¼¤?!9”?„%1?ñl¬?ÄÜ??Wú?“Ü?ž I?¸||?×â?á>?ë†ì@­7@%'x@Æ@.4@ë˜@:l@øu@éP?*)‹>е?ì›â@ ®3?ç¯Õ?ÜE@?ßÒ@E–C@œ5@ï@<²?óW+?’÷y?¨Î0@ še@Ó±?ÅE„?Ú·@é®?íÒj?f9?£©œ@[ö@Vj@Nf@ ™Ÿ@#‹6@…'?³=è?Ä!È?Ø”?²# ?–á@KSN@˜„O@ˆA@{f'@/=`@ëJ?åý?D.@jÚz@™;t@0&@Ì×@(¹@.Šž@fn@sý@+ËÕ@.—Å@ž>@$ã@#äv@$v?éÅÌ?æÿš@"‹à@+2?¬ &?·‹m@kƒç@r$_@r·Ü@d{F?ÍÓ˜?à@?ÓÍ@3Ö8?Å(Þ?ØoÈ@"_ç@ß\?¼T0?¤ö°?,]?†¶v@“@s?”¼”?ÄÞø@$(@$7@é@‚K@!Êú@(]ª@;v@ëQ?¹I7@tÙ@C߇@=yJ@2@ƒ@ ß‘?Œ½?ÍÛö@ŒA@~Ö@!*å?ôg ?‚7?º°l@EÝ?בË?Šr?Œ‰?Ž¡;?â¤(@%z?ù0Ÿ?–ù6?ìðÜ@-áà@'BU@T·@ k?ã§?Õ7Y?ÀEœ?ø @ è@:@Ê?Þ½@?´8=?ä½/@°õ@HO@Žý @j‹Ê@´@4g@Qm“@1§@ qr@5@?7@'u÷?þÉÝ@v@3•”@ž?µké?»"è?¾»?Ú@ ý@Ô@65Y@+ñ@ðŠ@G?ȉ*?åÁ›@3¹‚@#¥?½û?²i:?€5o?’ŽP?ô¯ž?Ø!¸?)5;?D¢? Ùû?°v +@ó×@R•@3c@1?@4Ü@!«Û?ý¬?ûÚa? oÂ>û²d?ÊL&?Óq‘?¬œ?ª D?“sn?„Om?½>Õ/@b£@4 V@"ÑÐ@J»@/+d@3õ…?êl?¢tU?úN3@G”@ÔD@o?Ì-–?TWm?²ˆÁ@ å?ìð?ºm7?ñd¾@$â±@«ß?’È?™ðf?±˜Ö?¥i?‰lÈ?“T?ç=Ü?êï…?èFF?ïà.>ûSŽ?’©?é)‚?ðC@<;@¨?h¹=?ö%?»í-?ãç¶?ÇõD?¹*?Þçÿ?ö±â?±0?dÏh?R—0?JôM?iSg?QM?¥? +@ “@Í>@Y@êj?u{?v. ?ü@?‹“ôÀ?È(Ò?áùn?Á¸†?·@3?ë?ý†ç?ž•ð?;îð?¼†@ ,@N?ÈÓß?½žs?©%â?¶ÿé?ꪰ?â?rÕ ?r¼?²ù‹?®‹Ý?êk¥?òL?œ?†Ÿ;?ß»v?ûj>?}‰á>¼p>Þ4¬>ñl/?dÈ?Ö|¾?ØåÙ?ÛUr?ã†&@ 7@˜ð?Y«É?^®A?²­Í?·åü@ wÆ@wñ?Üyh?³Ò^?¥Ë?‘Ÿ‰?ýté@NAÐ@* ª?³R ?¼KÊ?îÛo?î ??îˆo@…½@3°?Îzd?¡§?¾‹?ÌùR?¿o?µ¼š?žyž?r÷ö?{šj?z¾÷?ƒ¶˜?½ê–?Àˆh?- +?õ9?kþÑ?ˆlg?£|µ?´›;?ݽ@!y?ìOR?Á‡í?ä…k@N &@L{I?àOA?åØ?…¬±?o¯?½{ß?Òãá?Ðn?ÏR’?É?ýt?Ê Ó?ò¥í?éBÛ?²Œ€?¸?É?z}“?iµ ?‹‚§?9?ƒÔû?wé³? í<³x¥>ƒf?ªèD?ª9S?ü4û@ +¤?ìîø?è}î?² ?•Š¸?K)Î>õ«T?i?=†?SÞÔ?ž½×?¡ÄÄ@Î@!ñw@)¸@,¼Ö@£:@ «j?é†?¡\•?¡±?­;L?©&>æÚ‘>æȃ?²G?ÄŽW?Ú!_?æŒí?¼ËÚ?ˆ4?cÂ?Úæ>î5C>à„å>ÓgA@ô@­?¿?–Ó?¯ô{?Å4?™l‹>åî?%9Á?øbn?ÿ'L?ϪO?ÓNí?ÞAü?ãc—?…‰ú?¬™?R¥c?¡ï¤?‘:÷? G¤?I¤?á½?ÈKè?töÕ?3-|?]ÉK?lä?–¡Ÿ?Õß2?Âõ¡?gÚ“?fÂo?¡ã?š’„?W€D?Eoë?¡–1?¶ª{?žá?œÛÔ?‘?A<?{Î8?ÿ8Y@CL?°É{?­ëŠ?¨l¼?ŸÏm?·?*?»‰ ?/ñÂ>œŠ-?n>Z?Š;Ë?ÁdÕ?Æv`?h¬;?hÔ?i£?h²V?`Q?4?j]Ì?”Ù¨?¥?¯¿V?º +õ?Ø{?ͱ??]:Œ??m‡?)Y>ý5i?j­ ?ltô?üÜ>ìþY?7?Æ?Dav?jª?•W ?¤{?Å%2?VBt?>¨í?ð-??·HË?hó?9ÜN?nº?{#‡?=l??M?€ûñ?€K >ˆ j>4…Î<»Àù>ñrX>ß„F>öéš>úÀý?"Ë?I?9v'?+íB>© m>Å?¶Ÿ?ùD?|…Ô?}Sí>ýá?ó¯?+-?\>þ»R>ò~o?.Ìé>÷¶*>d-r?Ôð>Z+>¼C"?dâ>ÏßÇ>”Ùt>ÚÜ>Áü;¤Í²?K\)@j(?`Dñ@3]@}¹À@|‡@-á‰@],@0?í?̬? +yÝ?:J†>Ȳ^>C‡?Lß?±Æ3?Ô!C?ìü?¸Œ7?l?v?oÃr?AÈÛ>Ë|õ>½[¤>¯?:>¡'û>“h>®¹Ù?2vî?% y?W˜Å?Dvî>¼þE>¤0)@þš@J«?Ðo>õH?Çí?ž>iù>qy;>'F>/Æ‘?uÁ?7Jl>°S>Ž§º>¶>¤>£ ‘? +#’?d?B×’?`#¢>«ép< -Ž?}•Ò?±]R?ªÄø?¤3…?~÷?VQ?9§r?2bÔ?Vó>ýJ£>ýck>ýwÜ>ÌKd>¶oD?½?{?‡Ø ?¹œô?k>þ!Ö>ò×÷>ߟy?#'$?F3µ?ƒ…*?¨(¶?Èñ?ÓIŒ?\R”>tã»?g´3?¿D?Ögí?íN?³s?J3?„”=´×¼?6e?~ÏY?xêä?rÐ@?“×?¦±ä?9?íO?—KÒ?§8>?‹½Å?{´„?†yI?“áÍ?Ÿýð?¬K?aéI?C?>ɼ?nmï?&®I>ô)Ó?Ž—[?»‰H?Ö{Ù?ß y@:@ |?çh|?Õ*»?e:n?¦b? š??ò1?rN?€Ã +?Y>®‰Ù?*³¹?<âY?\2¹?oT…>—þ¯=ažAÒxß?É?z? ö?8ƒ?Mep>†$E>E¨ >\2À>r¸.?7ùà?I>°?˜ Ô?˜„+>µûÉ>Œ”È>ĪÁ>Óœ?ƒ;? ƒ?ºÙ??¼[?› ?81?u)?c$0?·#>ú±>»Mš>°oÿ>¥™‘?9›?ÉÙõ?žbh>‰or? VÚ?›-`?‘S?‡x?KŠO=çó>Œ¾Â?n´>¸R<õð>i$×? Wd?I8Ï?w"M?´Ê ?ì§Ã?Áè5?¤â†?…?\…5?k‰?`¹Ò?’ ?¡ù\?¢ª?¨Ï=?=–¼?›+=ùÅ„?†ž;?­*?‚©K?xÐl?‚B]?‚Íö?ùCa?ýìÏ?u>ç¹ó?Ä`w?¼d=?y\?4Ø?Ä´”?¡«P=2Õõ>‹?“…?Ľ]?¦ô£?2JY?:ùå?MVÏ?‡„F?ÄñÙ?‘pÖ?_©?º>=@ô"?š—Ã?7?z|?£¾Š?¹áï?”n?ƒ‘v?Õµw?ñéf?À~?¸%¸?”Gô?‡2$?ôv?¼Ï?È=ó?Ö@zÅp@tãj>Á^ò?ÃÂ?ÅÓÔ?­0?¶-Í?¢_?#?Û?Ë1?599?„ x?° b?ñ V?èiy?æìr?•jy?(?cã=?’QÞ?Ã$¼?åk?l·Ä?@Ô?ŸÌ +?·ëš?{˜?X>Ûtc>Çy—?6†d?2± ?ÕÞ?+Ƀ@Õò@\?a?$5%?“¬ö?Ñ{1@= +P@$p ?Ý¿5?ïT™@ ?Çj±?Y’>?—Ü>ä9?'ÿO?Fûe?»0D?ö<Š?»/æ?œ”œ>“6? áQ?!õ?h5¨?u¢_?š·¬?”ö?‡ÝV?…¦?‰õH?„?yæ?`Þá?é°?Îe?˜Ü?šëÇ?­¡?ùe?„í‡?ŠøQ?Œ÷}?l§Ì?D% ?dÄX?u‹$?uö>¼É&?ý0½@!\>?s«#?"À@9”@GƒÀ?Ãu?Åo“@g’@‡ @U?ü¤¦?Á“é?Ð{¤?ÿ™V?Útp?”)?; ?«õ?Ùn#@ +WN?ÍUñ?… +ù?°Q?ÈNû?É@ä?ÏÀ2?¢ä?–"ÿ?›9?™KÃ?n¾>?ju?„\¸?„0÷?S)?Ò=»Š>‡Û?Éë?¹©Å?€¦¾?Vj¯>æçG?’d@ ??ûä7?µÞ,?œÕÂ?„÷N?Zàµ?9À9?²]Æ?æ2(?ŒYÜ?Cß?¾)i?Õ›b@%}]@1\?œwr?„Þ‡@<×@ Ps@& ³@Ò‘?>~*?@,M?Xs?•]?Åmu?žö"?ÂÎ?yA4?ðØG?ïHÌ?ݱ?°D;?„¯?´¸h?Úlº@<Ê@y ?ôh„?M7ž?¬ds?Íel?• º?„‰T?ñ>@Îœ?‘þK?„z¼@L’«@R6??Ƥu?Åó§?Àx¶?°Hù?] ?‚ó@>ZD@—?Jl?€rn@?Ú?¾ü¦?5K?tç'?ÆBo?û!¡@Ý@ο?⎟@#»@FI@ES?ƃ?ü§¤@ 0l?ü +æ?óX?©S?”·@TÜ@ßš@3Ì‚@:(ö@?øÔ@AÕ^?…T„?ŒM¶@ªñ@!„?½ú%?Ðea@$v7@Þy?“z ?žUï?À+?Å ô?½ˆP?Ñ}b@]ö?ùàn?åàü?¼ ö?u;Ó?Ä0@SX?ûï=?ÞUl?c«=ûÑ?áZd@>Ñ@& +@Û@ MK@îH?Úß?Áo4@„*g@£ƒ‚@èÛ?Î:@+@ÑÜ?ã5?pÀý@Pa†@cGê@‹t¬@‹Cì@Þ5@\?UCn?Se‘?Ì©«?†ß?à°’?Öåþ?ÃXæ?ÚÂr@@x$@ ø¹@ m°@=}@ ¶@_?×(M=¡Š>vS +?Ø-?46‹?n™?½£6@Lì<@8¤î@¦9@[ +@“O@è@/“g@1d`@2X³@¯þ?Þãä?Ë:?¢ÿ1?¸´€?î?Ö4M?¡¶?—)«?ž.º?É7T@@#Ä@"Õ?ñû)?€Ú”?Ñr)@Oz@]¥?·x¿?žh(?€¥F?ÝeÒ@)Ä?Ï>²ð*?‡°ñ?õá"@AE@!¢r@é&@ ³G@uƒ?ñ°.@„ÿ@ò7@¤@M?ç+v?¯/h@h@xBd@v't@uüº@a£+@?8@&u4@âF@ü?ÿ&?ôƒg?é…r?õ2ë?þÍÞ@%ë@>ý@%Þ§?í˜?äí=?Þû–?ôY=@ÌŸ@=Yf@†¦³@v«@@Mï@O+"@GÉ@3Ç?Þ8ä?Ûk?½þº?½P?¼0ô?êH•@YA<@5vk=c–X>–ñŒ?å§i?ï @@5m‡@.–é?Ï;,?ØËD?ãy|?àJ?–-”?œÁ?=^U?4^È?ªÕ?·P?©®?¢\â@&±Ë@5mò?82X>b í?ˆb(?­Cl?â’·?ù}?ý³ˆ@3?‹G?ôç?r?£à@‡@)ùq@ ß?àV˜?Ê×–?»"»?¼Êú?»cÓ?ÔÛË@ ›?øš,?¤|ú?Úl@5ö.@ã?“>Ó?—?„©Û?qÍ=¹€Û=¸ÌW@‰ý@7@ùÜ@ ›@DÓ@± ?Ýv?Äåž?šI~?ý›?“GV?•Š?•Í?™æ(?ŽK&?„rÃ?†@‚?|0“?µ{¼@ u@Eä@¶ @ +PT?—úÝ?$ ?‡a?a§*=¼~=œ>?ÐA?Nè?÷‹?ú:?Î{?Ê6n?ø´ƒ@ å@¯—@.K?¹?hò?·Rl?û^6?ì{Ì?áq?ÌÊY?“¶ƒ?›"¥?Æ„Ð?ºâ?rÛ>?rÁ­?u¤œ?zw?)^`?.µl?‰f?ؼ?vJ9?šã&?ˆIù?[9–?‚õ?šÄ$? $Ö?´ï?´ÕJ?´Áy?£o`>ðÏ>ô &?$Ë?<&?Ëï?âË@>!@P™é@zŒ?³×Ô?B^§>´?ƒ‘8@Ÿ@wu?þ–Í?æ?Øä?˜!’?Ó k?Ö*:?ìo'?îT<@–.@Ç@Öß@!¤m@ +d=?ä ?Àé’?mo?Uf¬?+§?Ó?±¾±?±«®?¹ ?‡Ëœ?L—´?7ÔÉ? ƒÓ>þS??q£?åà0?Ù÷#?»]f?âŒ7@9 ‚@9ú`?a~t?g +¡=ó±=;g8?@Q?†•ì?dj?Jáè?¯(s@ˆË?òz%?¡Eb?¨ýq?j²?iê‰?iÕ„?i¸i?ÊΘ?é‡@?ÈW®?¯µ?˜ù?j¾Q?˜x]@ J@ +=ž@ =ü@ +³?8q¡?c°?“÷¼?®<æ?Ÿe?„ÜH?D·2>èâ? Üz?‚;h?~>'?gîæÝå>æÎÖ?Œ{)?¢£¹?¹3ž?Æb?Òƒ?ܲÇ?Τ¥?©ƒ¡?¥ðE?a‹‘?Zî?ì±ý?þ  ?š[A?f?‘á'?¬~-?¡¦-?…,É?W=?™ò´?U??‹&¥?ƒ`@?¥eò?­·5?SCH>åÊA?LÈÝ?¬TI?˜_n?Ñ©?!k ?¬Xs?¬\¥?žµ‡?¦›@§Ø@»ê?×¼t?eó‡?‚N‡?¬]‹?ªæ?¬–:?¬œ§?î‡ù?êîÄ?ËmÑ?ÅæÖ?VD7>HÜ>‹¤³>æ¯*?RÄ?‡?R|?à Í?æl"?ˆ?wº°?ˆ~:?“Û®?`ãG?ü?LÖÌ?¢Nû?•±c?˜Rˆ?‘9?’KU?†&¾?jî?i3Á>Òu=‘ªˆ?T„?iô?‘q ?¯Ä#?®š½?¥Ýµ?¦ü˜?Ëâv?Ép!?]ŸÄ?f˜ž?é©¡?ãš“>Œä=ÕS?Ÿ<½?Á ‡?ÄL®?ÕRµ?°y>?Šˆ¶?0o>nÂ?SÅ™?ípÔ?²If>ðöš?(=?P±-?@‰‹?-©©?"¨ß> ý>ùæ?V ï?Oz}=øÚc>>ט@³@ô?\õÒ?P¤“?*þ??.™?µU?¤Lå>Õ‡>€‰Å?lŽE?]ÇŸ<²Ì>Ø\?¦³?Žf?-óH?Je8?€+Ë?=ä‹>™Œ>÷ƒ=ݸ<¤Po<”€>ŽâO>Í°Ô=â”Ò?*!B?7{s> ÞÌ?ã£?¸­?V<>Âra@<¢¯@vÙ@5ÿ¶?çßÑ@oÞ–@|H?_Â.>š#>Âfr>ñ-R?$Œ?+!Á? +#p>ÉéÒ?R¨y?¥âæ?9/i<œ`·>Už9?€Ð?;>÷ïW>Á&â>.p>¥€2?E²?Gðð?æh?‡a?Ž.J?•Hô?œ\?¢2(?…Pó?BN?|>ú4y?®vË?ª¿Ú?R’ú?<ô>ÀUS>¡±«>ퟌ>û;á>Ò“>VÚ¯?/>?Sxá?taó?{éR>q± ?·ÍÚ?úÑ~?Ù>¶æ?è?2l˜?“¾?ª¶?yöî?HŸ¬?B#ô?;¥h?E>ýzä>’ì±> è“?Iw?gËÏ?„@,?ˆn?8~M>þ'S?B÷?n]•?9–Ö?ô?…`??ª98?c‚?‡d?o]?</?„pv?§;R?ªh„?­•Š?”ë¼?S9?vq¾?t¯j?£e?¿ ?-)³=Öƒô>à5?3Q#?cªÓ?õš?¥-Ä?ÀG?iß|??@™„?VØ?>È>?&·K?Ü?øP>÷>Ý1ª>**‘?w-Ä?À®?qÖ?4Ê`?V}˜?uxg?\¹-?R—ß?£ É?²A´?F­X? R?Zäî?€ÈT?Ný>¤œ ?šÖÈ?ÁU ?M»2?1?sW²?„Sk?’?yP@÷I@-êy?—=Ó?g(÷? Áî?36=af>‡A¹>ˆÚ?7³?:u?‹óã?”"¯?\K¸?^‚:úŠ<ý©Ñ?J„ä?1š6?“p? «Ô?žÜ?uçB?.¨?ÉÅ?ºè?Àæ?È#? !?TeS?sÊ?¼?˜¸>sêN>ð½?¾V?v;b>ìù>ùˆÄ?áö?BÿU?‚ Ö?R¶¢? ª…?x©æ?Àas?‚°?Õt?ŽŸT?ÏŒ¼?‰|?% f?NÖ?m?¬È­?é?ž1V?„Sè?8A@?9Ð? +ß?ž}?2‚?&7Ã?èH?¡?#ѯ?þŒ?€îB?ƒüŸ?…‹'?ŠÌ¤?ñÆT?âÍ>‹Gû>­Še>à #>Þ°?‚êm?fV =wŽ|>†m?˜(?Ä¿¶?°¢Ñ?ƒ6Ÿ?„{Á?Oë?§¹Û?Äõa?§gi?ƒ[?ƒ`Î?ƒej?Ë=ˆ@‡i?²á€?ƒ|[?Òó·?û¯9?¦ê?ƒ’Ç?y’@?¦¤?¦wv?«Gp?œE?€>ªc~>3@?L ?YQ·?ïƒ?ï +O?0Vˆ?3ƒæ?¹8?¨¬ž?#™Æ?W ?Ép?²ÿ¸?‚.E?ƒÒ?„ ?£6?Ñ!?„U²>Ó)>ó£E?)-? +';?kl?¶W?éÉp?Ïža?·ùí?±Á¤?ºçW?žÀ¨?œ2…>}ñ?¯P°?ºŽ¸?»²?‹cÝ?‰ 2?h¶@;X`?[*@:>@/9@0 ?ä'³?Z¡ ?O’+?>NÅ?k¹å?„ s>þ¢é?D¤?¥÷ð?Ë·E?Ú£·?¥bw?—?)/T>ègÅ?£®ö?°þ^?•a?˺@û§@~ò?Êq ?±{º<ÇRp>¢{?ºý§?½$~?Òù?Л?ÇZ?­ÖŸ?„ë«?„í(?„ï§?¼1?ìØ@?Áy(?¦’V?¼Ø?Çv?ªÇ?œÂb?pìÛ?c‚›?‘EM?“¸ø@-W³@80?¥U¢?Ÿï?ÑÇU?¸«ì? ¾q?2=ù?ŠÓå?_o>¤ ®?eÿ„?ìˆV?–»‡>š¯?W‘ƒ?¯Öi?î?=*?S?ÆlÝ?š‡ö?… x?%'w? ø?pÄ2?Š/1?6?%¸?ÆF?¼ËÄ?… ½?6ò?»>?‰”r@g@>•?…—?•!*?¶c?ÂÍR?ápî?Á—x?–\(?¦(d?±®?¡u?“ü?‚Õ?9Ó?„}H?„ï=@éÁ@&$Å@-$@0›?ä5º?ÎTï? +¿Œ?Éö@Zq@!P@(ú@uz@'Œ@Óh?Ç.?Ä?»oi@®B@Sâ@R@™@Ro®@rÂ?´(?ÉŽ ?Þ9Z@*6§@L‘Þ@)?éZY?Íð¿?ÀË?¦;?žSD?°}j?¯o?™F?• «?Ë ?Ôš?»þ?¹!8?ŠÃg?~p0?´Ý?@a"?Íñ’?«Õ˜?Lô?©,¶@;R}@'@‘ë?é #?ÆEx?Ü:ð?ö +h?±E«?tÚp?ËËm@òÆ?ÉŽ.?¨½ê?Ñe€?ÞøÓ?ÜËì?Úžn?º*n?µ`±?—×?F?®ÂÚ?µÞ£@–)@AE?Ê#€?ÀÊ3?‰ A?”æ?ÅqS?Ñ @ Qc@š¾?µ‘Ø?Ë…û@cÖ@ á£@.§?ë1½?c?¿¥@ô‚@ž¡?áž‚?ßXþ?æ1?Â9Æ?—`Ø?˜VÏ?‘ZÏ?ò@ö ?ß,? â?â¥O@ðI@u§Ø@‘eÏ@2Ž:@3ž?®ª±?ŒtÛ@ Y@iì?¹ã1?Ÿ©œ@‹Ô(@˜ +@@qøñ@rï8?Ôí?ó[?âÄ?Ò½6@~}@¯Ê@77@2'Y?¯Ï­?¼Î×@}@Ž0@C*Ã@:O¸@xZ@`í@DE~@BÖ@=\]@Jüd@…ñ8@c ?îö¤@a2@0®z@š?¹ðù?à¾Ù@|@cs@!äª@ ò"@ åA@*@_†@‡è@FÀ @Œµ?ÁÖÈ@ Ny@QÌŽ@¶'>¥D?i·Ç?ò›@¡x@hz;>zg?Ô?O?Ï£Z?jX?Xúà@å@ض@!DÌ@#ì‹?ȾJ?²Ùu?ªB>‰ÈÆ>Õb$>ûÅö?ê?TÕ>t½=ˆ?²Ò8@Ð%@@9€@hh @3µ¢@Ü»?ú'»?ß?Úïv?Ú Ü?µå?g€ð?šÕn?ë8ã@ìm@;R@$M?5A??âˆ?Ë8?ÅØ?½êë?· +(?Js?`ý@Oª@Q‡?àqÆ?Ò>@ @?~ì¶?&ºÔ>ë@>ÑÜ{>îõ,>ö½??;o‡?cí?¦&“?á—?ðbb?û +ç@I*@8s@8_˜@8LO@=Z@TƒL@Dù&?lVá?_¢”>õ">õ`?˜¡â?¥¤?܈?á”ó?Ã7š?Áªæ?Ô#?׈ß?±±K?›xR@ hº@Bþ@A|?¶¦?·D?À<¦?Û‡@Õ@›!?~w?tþ†?r¯ ?r’$?¤nv?£Ný?m?Uµ‘?Pž^?K€ü?M,£?Y°„? 6a?ÒV¸?Ó0X?϶?Æ›?´Ç?žªö>±{–>ËÌã?”P¡?›ò>1B=?<«?ò@Ñ?µâ˜?}ÀJ?(¬>>¾øg?Pèß?³†æ?³ûZ?»G‘?¶o?w(ã?}(N@qÕ?úÓýÖL>èß>Üþ?I?¾?jßï?\W?LèÓ?bl‡?Œõm?€ n>ê;S?¹®?ù4w?ê—¶?¢Þ?˜<û?¾Ÿ¸?Ñé3?Îg?ÀÑõ?³`c?®„?®ë??¹-™?Âsó?óõ´?öØþ?ˆhX?cÙ¿?RÚ7?\á“?àã'@^?Õp>™9•?—-?»j…?¸-3?h!G?g—Û?ÒÆø?æC@Æ@zñ?Òøš?’ Ý?£ÎÖ?çV?ä‚>?·i4?ª›²?‡§U?v)V?€ Ñ?‚£à?–Ïw?¬Û"?mì?o¹©?JU÷=Rê÷=Ò°À?ØóG?æ&Ì?6Ò?f9?¸„¡?êwº?îÖÎ?þ1?ãmË?eä;?eÝ?Ù;Å?Þ¥¥?ܘ´?ãýœ?¿“?¡7ª?Žã?~݆?e.†>åÊU>óé?¬[?¬]?‡1@?kÇÇ?Ý”S@ƒ›?תú?e÷Â?ƒ”‰?¬‰Ê?§Jú?u™F?}e?Åh?Òj†?žu–?Œ"?]Ó’?"Äé?8Ÿõ?Teç?s‚ê?ÞVð?Û€>ã>üä?È9¼?ÔQ“?­žT?œL¡?ʪs?‡¨P@»µ?ü'B?Çÿ?×ç@@Ž?‚½û?iNoè?:ª?iúô?’€~?¯ÊL?²xn?½} ?©€X?2Õ‰?> ? ·%>õÝ­?i?ÐÇ?‹„ +?„à*?¶T ?ÊFÇ?¦¼Þ?‘™??± ]?ÄŽ³?­à4?£bO?xåK>õL•?TÒŒ?£%Á?ƒª?©Â?>ÑŸ?{•·?× +?I +u?@é5?±w?±Ó°?‰¬?’¿K?¶'?'J˜?EBg?H$$?Ä›8?Åvx?:æx?G³[>ûv ?×?³Sç?Ÿ¼Ó?Ky?‰ïâ?LÅ?0Ur?›í?R‹?î’?)N£?qB£>ø®U>¢%¥?#¤> µÔ›=\H%>(5?è >¤Âo=ý?Ø=nÑè:;,>µÓ->kŠ@:ª@Pc?Þ=?ƒ‚Ý:½=ø@HÁ@!Ñ?¦bù?‰}´?!>>÷¾?)A?FšB?‚b¡?—Ùb?<£{>Ѳ>êñ>÷n?gTw?°&f?©÷?¢ð?†sM?,!E? ø>Ðñ>ï›f>øÑ>øúÚ>ùŠ>ï²X>½W´>íß–?£×?­øX?ºQ?·F?‚U?†î?®pÇ?¬9§?\ö(?Mž/?¥tÊ?¢¤Û?9ÿ>ûo>®°>¬˜?]Å?{âÙ>§ ¥=ʼ?ŽN´?½'F?:ö€>áÂü?Evÿ?bƒ?…”?’nG?T²Œ?3®Œ?fäc?}N*?*#ð>ý{Û>ý•X>ý¬>ý¾S>ýØS?©’?ñ9–?Ô_?ºä÷?ß¿>cN>»Bƒ>þ{í?*µ[?Sl¥?7\W?NÏ?[?©?2…?O…Å?>ç?9D?Uý­?h»??IÎ?2?²!?þ¯‚?­žš?cÞÍ?‘ÛM?¥°‰?aR‡?&v=?Gð?eh]?VÏ.?Akº?ž×?Ë Z?—?¨x?BP?c^ê>¥•=\ZX=,xø?Õyô@’Ð?Þ3Ê?®ìI?BFÕ?•©?¢^?Ã$î?í¡©@°µ?Ö‘?À©k?H–£?ñš?$ŽG?0*)?(Ð?¤l?lèÆ?^a"?·åÓ?Ä«ø?‹íï?¹?AË?QÈf?!†(?¦[?³[?8=,ä?ø"?„£f?E™‘?IëR?´±?„E?r9?D“>®1#>Ê[>@ï.@¿e?”?!Š?ÀÏ?½!7?³È¹?®Xž?¨ì?™÷y?^úœ?OŽ ?1U§?6É?<=?B?>¸‘?("-?ý|?k%E?Öµx?µ???‚½?{?rQ:?w®t?}5?Ä]=!„>šÔç?IÉ?Å­@Æð?„‡> Eè> P >5RW?™ã?ߣ?:Ï>€ƒ³>l8Å>WwN>”òÚ>®@?òª|@ÂÈ?·Ã?n›3?¬[?·š‰?ç)?Ä<Œ? Î?¨®>P->–Çe>×]Ô>Ó6?ý«?GÞ@ô?âÞø>š–y? øÕ?¦ao?»f{?ýæü?Ò?ƒ8±?2Ïc>KS?“ ?œ\@?“Õw?ƒ\*?€vD?®o?¨¥.?Æn?‚g?ƒ~7?Ø-?š@Þ?Šò?ƒ”à?™cY?šò¯?šsÚ?Õ¥?\0?I;?ù%>îþÆ>˜¦>¶u?…—r?‰·<@mÓ?ú+Q?»?™ç?ÅçU?Õúw@gü?³,Â<á\?vù‘@/ô?¸¥>ˆá\?Ø?Gf?´ˆ?+ ™£?%VG?.Þ%>¨dŽ>„3Ë?Kâ?^~?³Æ€?¸ƒ¢?½Bå?£_˜;>zãÌ?“9?mYØ>˜j>>ÕlÓ?“.?GÐù?Ž4Q?†kæ?„¡}?%m=>˜O¥? (G?E~=?Âœ7?õk ?­’¦?ŠÎz?¨g“?³žª@ Ï@ú? Ž>áU”?$±Ð?3¸@xÕ?äD¤=ñ?Û?DÛü?y}?‘ÇÞ?”©?w<?,k|?z0>ÂŒ–?¼Îˆ@À?ÇCG?„öu?ˆƒc?Žz?ÍMd?ßrr?¥ïÙ?3Ÿ?°µI?¸Ÿ°?÷œ?ò¾F@7KW@< T@B"µ@6a?Å[?³Ã)?… e?¢9?á»$?°äü?\Ží?Y.±?=Ù„å.>%m¬?ŒË?•IÚ@JAô@Jî?… ¼?Œ$Ô?Âk?¸ ?…sg?»‚ö@ d¿@?@×|?ÿy†?ý@c?ÜŒU?¶T ?×?ôhJ?¦Šû?lËK?*Ââ?õQ?ež³?„ñÃ@ãÞ@xë@ å@d*@/ãã@4¼n>ÒÉ#>æÖN?æ2?ˆáÉ?2ãA?‰ +Æ@=G@3<´@(g?òkŸ?Ç*H@!ü@‚Ck@S¦Ý@4 +?ÿ©?ÇM?­=?›¨i?Ýâƒ@˜?óÏÜ?æ?Ð/©?Ìzû?ߟ?àÛ?ÅÑ?Çøw?Çfd?ÆÉW>ö —>æ#`?Z±?”á9?Í:?Õòî@a—?Ú¥8? P°?VóŒ?¹aÖ?†?py?¨í?ä”?¬'?QǾ?ƒì?›Ô‚?S¸?>ú|Ñ?áƒ?^¹?„ƒ?ø2æ@œT@ƒœ@ñ]?™àD?ƒåI?×î°?Þš×?*t?uæó@tƒ@ i @@UÎ@9Šf?ƒ°q?£á2@:õË@)Ÿ?Т[?ÃüC@8dT@"Ö@&i‚?ßÏî?ÞÁH?ýÈÑ@T?å©?ãˆø@…ó@&*\@C/Y@?Lë@)™á@2©Ò@c|<@jä@y@l™ð@.¶@q?–Å?.(?L?öß>”²?0ñ]?Æ ­@AÖ@4Â\@îd?ž’¦?Ý!ù@æ@4Ï@]Ôo?îM?)VÖ>áZò>:4?L;C?Àþ@«}@)¨2@5h?ÀÃá?­¶?šÍé?»Á³?ß,'?°‡Â?iøP?Æ$‘@È„@7ª@ +rû?âæß?¯½r?¼ŒF?ÏÒ+?·»?V£@(Š@Že@Uü7@?Ö@ c@õÐ?úÚ-?ÈÿÀ?Õƒg?é „@[@ ,@(SY@U‘Ã@KW@9ôô@2ãG@ $þ?÷ÔÙ?†›?“Œ:?žÿ?œQ1?«Ô?ÓF@î@Œ?ý…r?Ò¤4?#‹ ?‘çW@=Æ@0Í?ýj?åè;?|Ýu?š:r@1ÿ@žX?­É)?±­?”Åî?”¡O?ÕÄò?ÐÀY;¤WÄ@+ܘ@*ø?Áçò?¼ª„?äâb?ðâI@ +¶@'›è?¦ó?†ä"@0 @O;j?¾+?«A?–íñ?³Ã9>ÞJ"?Èå@Q8@]ˆ@ š?ÄXu?€ŸO?Ò/Œ@¯Ó@\m@ ^ ?ÙÊ?…”?¾ >@¤Ã@ Å?eRì?³iŽ@SB@H¿@þú@©H?ûãÉ?ó?Ü?vK)?q›?–Õ6?¢Ó'@$+@'¶@Ë3@6_?PPû>÷'?´>t?Ô.„?®‘?™¢~?™0]?Ÿ¥?­%«?¸Åé?ô:ª@&ð@&Û]@!@$‹F@'Ù@(ñ@e˜@¹Ã?µ‘Z?²àŒ?©i˜?¤‰ ?A +??Å?’S(? Ä +@µí@,?É?ö· +?Ô ?¯Ïo?•B'?äÐ@gH@kM?È“?—€y>È;\?žZ?½í]?à ˆ?òês?î7‰?r·R?r—é?²?‚¶>?£Ot?§Ì?…?qïº?±ðx?Ì ±?¼/S?µ!j?Í8…?ñK?Ù5à? .Ú?PT>¹å >¡Hž>Ï’>›’Þ?o(?u‡¡?qx¤?}¢?ï8}@ +܃?±Š7?V‚¨?mÂ?‰v ?p„?%?Bæð?“±å?š¾Í?ã"ã?ðC\?ò‚Ý?é^?‹Ý>?n(Å?E¤l?#Áè?©Z?óø¢?%Ô=6˜?MÂ@åA@¥º@9}@äð?Ù¬ ?ÝJÌ?­•P?šiª?€Î;?yž??ŒÐ0?‹ª?¤ˆj?ÜÐL?ì·K@=@ ×?ç¡6?êP?|ñ?bág?šðM?¦`ô?ˆD#?j®:?7–’>êw4?¥7?4[ƒ?TôS@ M=@‚@ +9@ë?¶AÏ?–>ë?ù¤E@$‡?ÚU@>ìúþ?‡Õ@%ß@ú7>¾3,>î?Ê·?Ó©+?”h?pÝ{@UV@:¯Ï?þ¶î>ã?k?åš?´¼¿?¿È]?Zƒ)?`¤ä@¼@°O?Ûæc?½ät?£³ö?‚R?«9ö@ýt@Œ4@.áÑ@+¤?™¬Ÿ?’ø’?›ó?žzˆ?²t˜?¼Éô?Â?à¤J?Ól‹?Ug?H*£@Ãu@}í?‚ÒE?¤?¡Êû?〿?ê4¼?ðñÆ?á¬d?ƒiÕ?ãB?¢¦?¦6“?1ñ>ì<6?C~6?s$?p­{?eÌ”?]=?<‡Ü?9ÿô?Ž£-?’2? ƒ¼?¬Ê‰?ˆƒ?eì@?W‡†?S¹?“°÷?äy ?æ"·@p:?ùÚ?þy?÷»?’É?fn£?®­E?ÍJÔ?ºNç?¹úè?Ál¶?´lð?¦Ó˜;_[W<Ã8@üN@"°ÿ?˜µ‰?>ÉÖ?&þî>úÿ?R ì?¹?²ÊÜ?ƒvc?”8´@9Øí@D;"?»Ïg?«.?d1ž?9O¥?…Á†?›ˆ?“H?’2í?˜?@žP?"?=ÈÆü>rjž?© ¾?­0Ñ>ìTÃ>ì™?#\‡?9*?£.†?²O}?iÙŸ?PÿG?§á?Ï·¥?ŽÏò?mÁ?k/™?±¥Y?¾é?æwµ?­?Ð>ñä?æ·?q31?V~[>(F_>ˉ?Ýô?ÐKÌ>úô+>è=Û¹°> Ä?U?Od?xHe?mÄ?r®?"¿­>[ªä>?yƒ?ét>ÿ ?ÇÂ?&? 8¿?Ý>Þ“>ÚÍD>G^>o¥›>Ë‹°>qÜ:Ö„=‘&>Ûª=2íš>M—>5Ü>>Ü>ûOv?2]¡?Pn?iKN?E†d>]:;oâp>aÅL>C5 @ng¡@‘‘@Œöã@t½=VÉC=È’Ÿ@*©p@')¬?¾áî?·¨}?KJÿ?8YË? +ÿ>õ¾F?1æÅ?;Z÷> Âw=Ž"Æ>Š >ðÁ?:Åô?€Áo?[©?,ÉS?/ ÿ?"½¢? ³K>Ž†ô> R>ø¹C?bœ?Sm?1t>j¨ï>3Ô=öÝË> +?,?z%?z„R?¶f?kï>˜b¯>Áœt?#'~?+u™?‰ý¢?˜Vç>»u,>’°®>I>y!?"ÖB?Iê?eƒ—?p ?Ä?š?[Oð?n­?)G#?°(?chÈ?|ð?"ýT>ýž>ö'X?Ð^>Á “> N?&1æ?B]?ÿ`>Ô1? +Ía?ä(?·«?Á\?G0Ù?\ê?ϧ´@*˜?¡Ï±?T Ï?áÍ¢>n-Œ?cr?Ò¾? ´> +)Y>‘ +B>Ó-2?yf?±o?»#>?ÀÓ?!Äò=çD`?:7ë?Rù?<"¡?8?g²?Œö,?‚êa?€%…?€-|?€3ô?- I?A°?Û¸?\>Iâ ?5Y¥?‚ë??ÙÖI@e?„qU?%(®? ££?™ë?Ì×Å@¨?ÅpV?¶C7?ð€@Ãì?!«>OÒù=»¯?;1*?W›E>Yéc=‹Wt?˯„?ùa?“•g?¹>#Ÿ=ƒÆÏ?V¥J?f?´T?< ?'_?ÀË?lÁ»?|£A>Œc]>–7?¶[$?¼®¯?Q(R?NÔ^?³â´?µ²e?° OÑ?V7.?Üõ?ÁÕž?V®?b˜d?÷¼? Qš?4P?¢â?ýñ?”Žn?LP?—R?ÛïJ?l\8>¾æj?9Ó?* ?ð†ˆ@ÍY?ÍÑ¢?¡†?Òu>™‡>]GÂ>-¹A?‡Þ?¢íë¤B?™?­"¬?¡qê?d…s?pýf?®¢­?—²Û>W0?J?À?ÒÝ?ò5°?Æ(?WT?Hïð?(am>ЕË=ØìU? Ñ?‹ðÖ?K…? +–à?¶Ûª@À?°ß~?ƒ¿@¯@.¬Ë?V">‚$T?4T?Xn™?¤ÎÒ?«bè?Jþ½?AÊõ?¡^?¡U|?$ûh?-¿û@Ñ›?ò¹ì?'cØ?@–°?¬ +@?®¤‘?­¸7?¹?³?Åú?ÅÇL?ÀùO?Ã%ª?ÓD?Üa”?Úæ¥?ªjÄ?„#v?<¿ ?+O??}À?k…?”v±?¢¿B?Œ 1?Á_?¡Çâ?œ°‘?…{?„Y§?–b?•l>m>PBt?n^? ×?!m?c?œ?^?ÿ§_?Àà>ヾ?Èú?lü´?­UÇ?öv?ÿÊ @¢!?›Á?ŽÇ‹?nF?IsŽ?q½R?„¸D?ÀØ?Øã?Ê­„?¿Ç2?—Pä?š’>âfª>³â?×€ü?Ì˳?ˆ]j?"¤?ÓÏ?°à?~È? QK?ôôM?·Úì?"êX>ÞýÖ>—Ã>‚À‘>©T3?žªA@n›?žÒÉ?G~…?EZ{?>\°?‹_?©ez@úÊ@¥4?¥`;?”ú@JŽ.@Ní—?•ªù?•×y?¿ñ{?­Ö¿?Ùi?.! ?…@›ö@‰Sº@HYç?ª×?—½?…P?/ +>¬Ë?­BŠ@3?Ư…?¥Wà@–Ž@"àL?–5?Wnž?8ç¹?.Ý ?óì@?ø‚J?«¡?²rá?ɬë?µ_…?ʨ?Šbo?… +¼?˜_ ?Îñå?å’Í@¨@c@ÿÎ?íE=?•í“?¼<?ÜÑû?™s'?V‰?Rh?M³Å?y‚7?„óÜ?Ø”A?îE-@\@‰ ?ä¶S?ã&Ý>ÇÐ@>äCp?ßàõ?à¶Î@ãÄ?ÐÕ/=cÉ>™Ã³?†ë®?‰ð¢?Š-?ÊžÑ@;f@ÇY?Õ/?´–½?—ƒ??„¯µ?º,‡?Ó,ö?”á|??Ðl?àcÐ?Ñý?Ôœ?O³Ü?0o‡?Ô‡V?Ø«0?ù‚Û?õÆõ?°^?ÀÏ¿@Ú@:†@‘H@_"@[}?ìZâ?ÆzD?éz—@,¸?³ªþ>²v“?Ä·ˆ@-â¸?ûÛ±?®Î?…ú~?PÔå?T2B?Lcb?r_I?„ +?îº@ ‚[@(ñ@Ž–?ŠvL?eðA?ÿLu@ €¯@Y¹‘@f”@?äJO?âë?–pî?"Å%?©d×?ñ²=?Ç?£ö}@›`@iz@f­J@‰}@Þí?È?J!º? y&?l_†?‚×?·ô¿?Ä,Á?–o?6P?éð?ó™ñ@+h1@-ò@Žu@Š#@aÓ@a«‡@å·@ù@-=@%dñ?Êò$?ФÒ@(Ü@!%*?èX? _q@C1@H@`ˆ@aáö@dûò@U[R@$›-@¾þ?’òA?Ï%L@.Ôé@6 ¹@JÆË@½?‹G}? óx?ÕíÉ?æš4@ s?äž?ƒüR?Êñ@$¸M@@Å?×p«?ƒc±?¨A?ÒQN?Ä7?µZÝ@A+Æ@£[@¦o@©Ëœ@óû@!V@,ít@4ëŠ@}?¥‘Ò?âÜ@cß@ 2ô@ r@f?ë®?É'_?¦k™?ÕÖ@ó@ðÜ@û@Šª?çXÌ?ýç1@ h?à•Ù? ÷—?W²Ê>Â_?‡¢|?ð"Å@$#@VâB@0N?ÿ{¾@†Ì@F#?Íá?‰s?iE?6áÎ?¾á¬@GÐ@Ÿ]@Òz@ + ?ô„*@º²@¦?×ùZ>Õ=?lR!@f?çòÃ?’GO?ÂL²@M@tÿ?Ó47?äGq?ý^$@ {@Xí@%{@;&7@&ܺ?¶¤C?ËS:@í€@ð2@¦?ý—›?½C?³xy?»;?$M'?KȦ?EŠ½@<Þ§@<Ñ5?¨%ø?¥ÝË?’¤½?ˆ-d?¶»n?¼h{?²V™?²æ?‡š?zÛf@L¬â@x¾½@2L@{¢?Ð<Î?¡þ‘?¿Št?ÕÂ@ @ +Ê?ú +#?ß¾7?⚢?ðs¾@+Ñ@ Ed@aè?Ýâó?¦?(„õ?CÎ@ Ô™@ûO@:y@(_€?²%F?ÁïZ@Ö@¦µ?xw?xIÊ?´HÊ?±íg?iïO?y6Æ?— ?ž#?·8ï?µŸ±@;ˆ@\uÊ@ãÍ?öÈŸ?ïˆ?âhï?Ôèæ?ÍÑ—?¬o­?}`P?\?ƒ?Gà?Jý~?0è?h¦Á?õ”?õw?ò»ó?ð>-?íÀ¯?ë;¸?b¯?W•U?ŸÈ,?¤/@o)@*ò?Î{?—;Í?Ð^[?íp?º§Õo +>šÖ?pÿ}?¦Èß?Kð(>‘Q:?/à2¹?)M?è£?¯M?ÀW?§C?Ù(L?ÖVB?’ñŒ?ŽÈc?¥º?¡Ðð?ÁŸ?êÑD?å‚Å?ÍãÏ?΃¼?âÌs?ßßÿ?ª [?¯aj?®¥Ã?«¥±?Ö,G?àˆˆ?ðã#?õç?®Zz?>ÙU?G©Ê?jGñ?j3¥?jž?iû¥@ƒ@ö@pð@<¯?Ð+?‹£?”ox?­TÎ?­òz? ?¿üI?6o”?*\Z@K¨@Oš@ h’?ë'Ï@Šx@&²»@ •?À7º?ª?($>ûH¨? >ý4o?Hw?³Å?°Üý?­?Ò¾å?óð?ú–V@gs@ èÒ?áÂÕ?ôåé>¨?ð> ‹ ?2²]?fšj?Æë@ý?µ;½¬Á>C;ë?fPª?f@x?hCŠ?„ôK?V'9?:˜è?ž š?ÉŽø?²#“?–4n?™•?œû~? e?ŒÂ‹?‚mä@äÆ@*2ð?âEå?¤°ë?ÉÁ‘?ó=þ?Ë7È?eÒ?j(ž?1?‹ÿü?w.g?^_,?‚‚–?ˆXž?!ë>¨ä>šòÿ?q¾?•Y¥@ؽ@ß`?­3 ?²ü•?U›?,Ò?ÆY1@ ©?Ïxv?)öÊ?g3Ó?æê?ÚIî>ä%«>ÕÅÆ@o5@-‘k?€é?…Šä?q?gæ?S*,?üb? ‡G? +wé?òu?g5w?‹?€Ý?jtõ?`5C?CÓÆ?BŠ½?M’=?$xs>ëÛr>è,=‚@=•«è?E,?H–’?ÂjÓ?ÒkÌ?f‰g? +S}?C-t?o ?“ý?ª~ƒ?–WB?v_ ?ƒ´?‘{ò?ˆ__?EÍ9?q>~¿Ç>¨ªÚ>ó˜&?æ?tzD?t#¯?tks?]3¬>Òå)>ûïu?¦[g?;t?xcö?a‡>1ž>if.?cW?nš:?yRô?†‘!?®ô?Å¡>þ&v>â— >‡>|˜µ>¦Xã>\±+=ƒÅ<—õ\? 91?^œd? +I>°A,? ;?öÿ>¢ïO>¹8§>Ò–>½_[º$>m±´>ªã[=è„Þ?Õ¢\?ß½µ@ÒÏ?€à/> žr>ú’?Ýw®?çç·>øÇ? >ÿ>U>õ&+>õ^Ô>õ”?xêl?™G?;\ü>öhý>E,g6Ý>‹ +?|#>§‡w=ÉS >(Ç>žƒ>’Ȉ>øK>øx:>ø¡›?!7Q?&ß?•L ?Šó­?‡¡?„+å?€3T?x‡€?€žj?¯]w?¥u‰>ÆXC>¸Ïw?Q™ó?L3\>m3œ>qj"?'ê#?è?O?J?+>Rd~=Æ3/? +æÏ?Í9? +ëz>ý!Ø>®^=ꪎ?;iK?`É??/©“?'¤œ>¢$ >YtÍ>ÝÍþ>ì–=>ÒŒ6>¸D?jŠš?Å>ñì=¢4?s‡W?·+3?¼Ûç?¹ÁC@WÇ@´À?·R?¬ö[?18†>¬»Q>èÖÇ>þÕÊ>¬”ÿ>ˆ÷Ë?„ç•?Ê­…?„å?!«x>•Uß=¬È@>O8=Ýw>´Àê?,>M6Ä>À”²?4?‚Ç?˜›x?v.î?gd¬?{Wm?€)è?“€µ?šbG?w?;?Pêi?@',?Gù>¼á’>l$?€Úf?¹ß¨?“Æ>?‡iÖ?}b÷?nkÅ>žÐ=óùò?€ã¾?ªé]?‹¾?€º†?”²?¢Ïg>üÈ>š|`>Rƒå> 8'?Êîe?óî?^‰n?#*:?he? Æ@-ë]@<6É?0ˆv>à²?wT?4?b£Ž?[–?€i?Tk?ÒŽþ?Æ® ?wTU?^¯ö?4 ?;>ã?Â7Õ?¼ÀU?ˆ?tÔµ?’ê>ñR>u&=é`O? +:*?£6?Mää?i˜?if ?™óý@~I?ÃDÞ>?©@>UWü>kA>×fì?G…d?¨½>F¸œ>áþ”?]#ì?†&Í?¦ÜE?˜Y°?‚+?Iu†? Cß?~‹? … ?PA?v¢.?¥»â?Èø?Ðù?Ð9d?wI=?0ô?¾ÿ¹?òŠž?ÏB2?ʼn?aËn?!(¹>º™3>®?€¬³?ƒr§?§}2?¤Ýv>øïc>좽?µÛ?2W?»»? Í=Q®> +ÙÃ?1u?G¯?ƒ?~\5?ZvØ?5£>š  ?=â?è¼?Áœk?ƒ/ð?h2 ?2fÞ?S·´?ƒH$?ïD?“-Â?–}ç?«?ò?ƒ¤?Š«¡?9å? ¸µ?Y?+-?ߨ@Ô¢?Tí+>ÆK>ú ¸?¢]?ò?¿k?ŽC?‡žß?„ j?ŠÄœ?ªt?»B‘@%ݲ@Š.?§ŠÙ?˜Ãÿ?QÒu?*¿>Y ?ú?¿[ü?”»? +nX?G²Ê?Š|°?l~?GÖ?Ë‚C@ !?ÏÃ?œ™þ?xÂ?U/Ÿ?—<?§û¿?¥@‰?§t;@'TM@9^¸?‰^û?]ºc?°9¬?µð…?¡6H?”ÜI>â&©?(>(?úè@Žz@|¿?ô0Ì?Ë_ž?Ùzè?íSk?«üß? |­?Ñš@4MÏ@ ¬?ÊŠ?Ë ?Ç¿?Ç3?Ç ?ÄeÖ?¾é7?xué?X“È@5Ç@%öb>½G=ó}*?õ·@S¦@”F@®‹?Ñ?Åør?ÇKÊ?ÆVb?Á­Ž?¡@a?B`¹?ZçY?l4E?XBà?ÇöB>BÃS?‡&ë?Ÿä‘?¤l'?¨õ~?ºfG?¿*ò?ðã?᛺? ü?:p7?Åï‰?¡óy?s3?Q^?.Xˆ?F°æ?=Âé?7¢?*`¬?HÃ?[èP?Uî?•Rà?Öx?ì„Õ@ª@”{?µ*G?@ø?™ÿÑ?š2à@/'—@4Š¾?ë?U @‰(y@€Jm@BY?ì-{?‰Å?… „?ˆ‚à?Œôs?”α?´ ?©éP?Ímã?蟟?Ÿx\?Y_’?˜B§?­ýù?«ÉL?©–]?Á€U?Åh2?ß,‘?ã@Ä@¿m@ì¿?ŠO‘?†x?¶t@?ÁþÔ@MÇ@†?ÇJ?·s?”?¨Rã@ÝÐ?×Ì?„Ìx?»¥Þ@ÅØ?¶É?<Œ?™c?´ëz??è,>³ôè?Ü_B@kº@#?ò5¯@PA@è@ @Ù?‘hZ?„Œì?Þå?ãÜ?·ü?³R3?_Áû?„B„@Vd@´t?Ô¡?PLé?ÈMD?Èóæ?Æ}5?Í}?ÛË?”ä[>Κ?´s}@ ‘æ@7a?ÆBf?†ð?; ?¢»?Æ#e?®Þ?¢Î?½ž?Æ*@ˆá@}?’T+?k ß?B‘?7…Ô>Ü}T>´Ó?²+¬?¹Ç|?ÊS?¾R?ƒ´{?ŽbQ?Å{Æ?¯¢?D?R?—š¹@”t@\|@zK@"™–@ZK¨@/ðt?àÜO?ò`@Yc@TS@KÆ?Œ2&>IMÆ?«»@ 6=@ +î@ w>@LZ@s°@.¡(@ -ó@ƾ@È?©Z +?ƒ‘?å›:?üq?ý¢n?üˆ}@'Ã@)‹?ß»ä?Õƒâ@S ò@Y³a@¡*@£+È@1û,@2°ä@C®¦@AäU@*ÔÙ@*´v?üŒÃ?ù«¸?¥ÿ8?¸*<@2¯@@0WÇ@1¯Ê@7gÝ@Cˆ@R@„dR@^©ß?Åo(?¦˜? ß?²6q@^Hõ@Aª@BN?øJ2?€î@ +‰ˆ@VP(@?#Ï@C>@ ›µ?ä?ÖI’?ǵà?þÑç@ -M?Ú*?(ê?³ØÃ@G†?î “?š ‰?ÇÇï@ }?ær]?Åd?¥ªé?‚ûÝ@„@A;;@½•?øvè?ÍFª?¨¬?×±@˜r?êÀ ?Ö›š?Ì^p?ÀªÊ@4Ñ@BFå@î?è4|?ò#S?ò»¤?ùæí?þå5@¸ë@¦t@ùR@dv?Ë‹ö?oè`?~”?ƒwQ?Ÿ¦?ÀtU?ûËÍ@ ±?âpe?2w?t,?cˆù@NÉ@ÁÄ@r°¢?‚Ù?¯3’?ãÕ?ÓÖ„?¾ÊL?£ŠK?a_{?}È–?¦Àv?°9ü?¾j0?ëè@)d @¦u>ÔúA?[ˆ9@!@âH?ÿH@B`@zwÖ@dT@ @ Ts@Q½F@Gì +@Ø@#Þç@Iã#@5×?Ì?Úu?½ç?¾Rr@ÖÙ@?ƒ?Ê=X?Â<@›=@ +Êj@S@Ùè?´þ¦?¢þ¢?™ý„?ð!?‚‡?}!·?ß*ð?þ£Õ?{?šY@" L@YWn@7`?±æŠ?¸¢?¿_:?¿äà?»36?«‡h?›íŸ@ a×@Zá@2]?ÔG@ J“@T¨"@D0@! é@ò´?h@±?^eÏ?>üìò>üOè?}@‚ç¡@~º¢?ƒÙ?^Gî?Í2Q?ÔÆB?ðiL?÷2R@J€S@er@PË?öÏB?í[?ñÁ]?àL?Ì£R@˜V@!ó—?Ó°>ˆ^[?QË_@ si@ +_í?ð4?ÐD×=´¢>ƒ ö?¿‚¬?ÁÓ?«¯$?¨Ñ€?Ž= ?ý@@»`@UÇ?û¼J?¹”Ã?òº@ û?âÛü?¶á;?Э¢?é— ?¬0¹?¹Å?(+ï?s,š?—+õ@ÎÊ@vv?hF>?^1$?lþ?«ºß?Œpâ?ˆ7ñ>ò€>¡ ?lé??yˆ?€ñXó?"Ø=?pCÀ?„^ƒ?ÓGÈ?ÓÍN?žów?”’8?³9~?´?µ?³«ã?±(?|1/?Of÷?m‡?…+±?_L:?%2Ÿ?=÷Á?ƒ8b?›ë&?Ñí?ÒˆÓ?îËò??µ +u?«0þ>ûOf>ké?Sî?„¦?ºÕ?ëtD?ˆÞy<ósð?G)m@…#@vÆ?±Ô ?±k×?žÁ¿?¤.A?N¶@?3½þ?°yü?Ûñ–?¥ƒz?lô?¸P@ tœ?üú?¨rd? ±z?»Ú>ð#?ªœš?°\Ë?N&(?7PŽ?Z`!?zå?ß!?™tM?‚Zz?-Š—?+~ ?ò(?Á?ÔCê?Ú@l@…Z@/ï­@@}©?îÌ->ô +‡?%o­?w©’?”Ûâ@é@ õM@‚‰@6õ@û@= ?Ñ Í?¡z'?äja@æ@¸5@Jåà@Dyä« ?9‘?fS ?fJ€?¿Ê°?¶#Å?@¸/? x/?¿®Š@©?Øþ?–?Žþ°?eìI?oð@yÿ@_°?Œã?sän?y¦?wFì?ŸË$?ËÔÒ?Â]„?•“˜?ŒhÏ?3s?Hèd@L@ "i?òK?åóÃ?ûñÙ@ V?ÑÔú>õ¸Þ?(Sœ?Ã6 +?Ê®>©u(>³àj?!Ã?*jþ?¦e·?Ôÿr?¹J? ¨ ?­í–?ÔÔ?èS—@ æ@/?úøÓ@;W?Q•5?š°?›Žw?É–Ô?š:u?F<‡?Ý_>5>ö?²áé°Å?˜e¥?»ü?²Ì2?ªkî?Ÿ³¨?ž(y?Å¥°@m±?ù•_>óP>øê$?RE?@Äþ?jy?m>}? n?±(?¬O?ˆ?i­G?V¸•?#C¸>ïÆ©?mýÄ?¯¥É?À;î?Ô·©?®m{?r?(R²>S3É?>Ýj?7Ël?eÐ?Yß>ùš¿>åKñ=­°R>(@c>þ-?3å„?šµú?ŒÙä?$ç÷?Qò>Ô´p>ì5m>ýÌ? ð^?&‹6?+ø_>þL=>þú˜>ÿœª>¢áÍ=;‡ƒ=Žë©?…øþ@#ø?Lìe>A7H?48?V«®?B°|?Lýú>[Š=ÿ$> Ï4?±†?‰ës?âI?e4->¯çZ=Ž½ ;é±@T7€@}cØ@¤Më?îâˆ>.K>L`Ÿ?¶ÒQ?³&Í?"'Ý?»r?Yy?–kŠ?¢š·?—xá?nð>õØ >ÕS>Õ”&>5þ< †€>f7>÷o?&1&?Cħ«ö>¾¹F>ø1.?º¿?4y?r >¥9?ô¡?ôæ?¢›•?Â-ø?­·¯>ü½æ?ÂÉ?îî?Ä‘=Õ¶›>ï?%Êw?,¸®?[©? +?š4³?¢û?‘ñ¤?—=>íã>ˈt?ªù÷?½ C?í£?ù…?7yr>ÝñÞ>cåk>duè?£?¾CŸ?¡ì÷?4?ðœ?}S;?1Ïn?"f>àGð>¼?Þî?¢~? :?Ö>(Êž=ƒHÄ>S›ì>¶¤‰>(A>x>§jŒ>§@Î>ݼæ>þÞŸ>«‹2>iÿh>Pô}>7÷?Oeª?k=?5NØ>ÿt^?Š©i?¶õµ?ègö?û‰?rà9>àø0?ƒË?¤JL?•ÝF?”×?“?×?Œg?UÏ?@nð?ŽÊ?¦iÎ?™Ž?˜ŒÚ>·ð”?(ïP?pÒ—>…$»?¼ +?ù‘?ª>ü>´9‡>Ã}ö?\ÎÆ?€²ù?Aþ?7A? T¦?ÍÅ>éG<>Í?‰³ü?å?ª%e?³Vß?¬r§?°ÃV?>÷sz=€ç¼> ê ?ân1?èªé>Û<>c‚Z? ߦ?)â?$7?‚ÁB?ú b@XK@eÁ?úÓ'?r*?…Á?®‘h?ª1×?fͺ?`¼à?Ù\?l~Á@:¢Å@(~‚?~ÜT?–=Õ?ìO?Ì”j?Éä?E?¹¶E?»SÅ?£ŽE?M?)>;ªa?ûG??*?}?(éÓ?2ˆP?:~‹?oe:?“¸¹?‚·/?v˜>ãï¬69?›ß?:µ??Úa?Es?ás'?ù”­>”mh?ÿçT@ßÅ@(òG@)œ>M4=o—??ŠW?…ß?l6?|ó?kš6?s*T?­#O?¼å“@ +¨p?äÈ{?.± ?Æ|>W™?D„?ÁQC?±3ü?ƒ2H?\¯Q?( +ì?šµÒ?àT”@ 4>@X5?̸=ŠIq?˜&Z?ÿ€L?±eá?‚"E?Z?zqÈ?I[?Fô?œ’L?¥7? +½?›F»>æ>Ð>?âFé?çÄn?FJ?*S?»-?Æ…‡@-Å×@/RT@Êœ@T@èr?á ?woæ?W°? +Ï—?¨×@"è?ê×è?„Û?¸Kø?æÐV?§O´?ÍË?i'¨?Wœ?š[?¬Ñ„?£?¢Š?a%˜?Jd?ß 6?ûà?~{‡?Zו?–9w?—Q?Ý9ã?Ôg>ÄDf>¶Ô?#?¤?”?3 ˆ?ˆø$?¢& +?Ïøö?ÃÃ*?«G™?¶õ?ΉÐ?ó[e@•?ö??í‹Ÿ?£mç?ƒGá?¡X?±²·?`¦?6}@ÑF@%÷´?nh?BZ¬?¸÷ý?¸ +»?gÀj?u¸?ˆ»„?“Ã?ÇY?§6½?ц?>Óö?u¯È?’­?¸Á.?Ÿï?„òm?³`p?ß7ý?uT>â¢Ú?#„?EE?”$4?¢»?*È3??w?s?hòo?a¹,?„ú,?~ú‰>ç(ß?T?‘½}?y7L?²T?/8#?€û?€;?«2€?À?àK\?ñÅæ@{d?‡T>·@Û?^º ?à]?Å,?ä˜D@ ê0@3)?Þß?Ö‰?ô>?òTÜ@ Ç€@ Žµ>ÏYp? Dô?á(?æ7Ã?ÓHÐ?ù• @D 4@'´©?ÄVŒ?«~?… +9?ß´?»|Ý?È+r?×ý2?ÿÂ?`O†?ßj@ .?‹E¸?1Î?Èó•?éx0?뢅?íÏ0?ïÿâ?ò*Á?e.~?f¨?–'?˜£­?¸Õ?³Ç@?ÇM+?«ÄS?9>ÎÃ,<¯_p>{øI?˜ã?í¾?<8‘?£ç@?àÈ?xE7>ÖïÎ?Xq?„UÓ?íü@õÎ?Ëøl?¹Pò?üú@’:@+§‚@8×z?€U’?\3Ï?„a«?†V%?¤zž?²Z>@%˜4@2y?!ç—?ƒÀ0@"sU@ë¼?Æ\?Û~@qp@XÓ?þ°?Ø¿L?©¦)?¥ù×?©†>@XJ@9s‡?Ín?QÞh?Ždk?£“Ð?ëûˆ@TÊ?è€Ð?à~?ÊI?ÅóÊ@¯è@ ¥6?Ù—?Òü.@kc@=Xæ>}Ël@%óþ@äÑ?ƒ¶ï?q–?Å?´š^?r,8?žJq@’;?Þgc?ߺ@!@f@QŒ@.ò @>|@[_@UÑ@NF@®—?ó{†@&@0¸ä@*€º@#îá@#ã‘@#Ü@/ÞK@7óÜ?åóÅ?·ÿð@\š@ôF@Mμ@?¶,?$Û4>Œõr?þ5ç@È @o£þ@r/ò@O!@N¯j@ ¶@)¡.@mýü@dîE@dã@O™?à~Ü?Õ* ?‚V6?É @/@;±8@tÅ@U]Ó?«oH?ÙÃ…@?Oí@aÞï@«üM@“’)@lÀ?ܶG?y(B?ˆºd?±ƒ´?ïá–@-ð‚@"}B@o@l @ÝÉ@Öº@åÑ@´?àóî?á¦X?Ú”K@S@\z,@1)ò?íU@á‡@H´²@/½½@ Ä@Õ?ñU«?û]@ûQ@Äb@ n@?u@_&D@G?5ú?‹æI?³à´@[@/~¦?Ü×?W>g?íª@,ä@ ¿ö@ºV?ìYf?÷L?òEK@ F£@<å@UB@D›Õ@7ÀÐ@I@'@Y˶@î?0cŠ?’#N?Ë'?ÃöÒ?¿ÆR@ƒ«@Zpš@7Öº@†?@o?ã¾@ë¼@Kc@­ÿ?’qò?Œ·{?‰«?Âù*@ %@yº@ =Í@ Y:@((?Òú?ƒòé?L|ú>q­e?n¡L@zi@.î@Wdã@G¼ @ca?ï@Ó>!ùH>ïìû?“?ž?¨£?êåW?îôÊ?Üé}?îð§@&¥@!õ?¤•.?¦üä?ß Í?Þ>?ôù?êsr?ïe?õÿ"?–¶²?—ÞÇ@Q@_†Ö@Eª7@@úû@<Ï,@<*0?Ýsæ?»i>Ærë>>?þ»Á@&)@?êBò?Ìd?€&D? W¤?VD‡?yÌ?²Š?Þâ)?¾9`?›Ê?ã¸@%"#@Ï @N@+³.@d,Î@>Ò?ˆýÂ?nöó>ø};?‹o?v?ˆv?ô¥?în@ +q@1–?ü!?w@·Þ@("ï@µ½?÷:à@„ëA@—ËÁ@0?öÓù?¥uê?r>I>\Þš?R“ß?›ãÑ?¸ÞÅ?Ó²o?.¤?*3Ó?rÖë?Éäî?»uê?pî†?Ž@&Œ…@*XÊ?º0o?µÑ0?´6Ø?´'>ØT>û?&ZÇ?o²@?¹°?òyÎ?·,Ð?>Óm?b·I?²vÞ?·±÷?¼ïÕ?Â(£@C@%?ˤ‰?¾2?Óòñ?áÌ!?¤µ“?mÔ\?kÁ½?\y0?n'›?‹4?’†ƒ>¶'G>Ù¼ÿ?Çâ?%2p?åù9?ï2z?¨]?ŽÔ8?f?F Ž?‘Å?Ñ+?»` ?k·…?„Iý?ë~0?êX? œÓ? ÿ«?L:}?SÕ@?N+?H*®?‡ë)?¯åõ?ÒßÔ@wq?à<Ù??XO?'Í??®•c?¯^W?ˆÚ?|)?8_Ø?G°?0Ä?e/Û?Ä%@7ï@γ?€3à?9Å?ÓEk?ÑŒ²?Þ¯q?è‡}?/I?!Õ_?ܤ@Oñ@J£â@5ï3@2ëe?pDô?j+?¨w1?±ø9?‘×p?ˆñƒ?´ì?ÖD\?³bÚ?gÁ?K?Çš’`/?¥ÇŒ?¢ƒ“?ºI“?½h?#‡l>æ"Ž?Ê,@Ç@0¾?æ?Õ‹d?›k4?l?B.‚?®Ï?Ò?©œ÷?„ y?eÛæ?sP÷?ƒ´‹?‡=?ŠÉú?…Òf>ÓÁÄ>·@ ~¨@!î@?éÙ?Ì£? Ì?f]?SÌ="AN>’†p?¬¡=?¬¬ß?—'x?‡˜P@?ê/“?î5,?»ÜÍ?¼n?£Y?Œ–à?˜+N?µ'e?¹Q‰?®)¬?‡LE>„­ï>È1#?ãþ?ècm?³0§?·"Ç?n˜>é·(?ê„?§?Àà?Ñqî?¢ +?Iï?„Â?Ëû7?ÔT~?°Ô ?ª#ã?©4¢?¤óÞ? ©?œ^(?vÀC?mæÖ?7YÊ?™_?)Dq?!~?G×>ï×?8þp?}€?³Ô\?ñOX?¦??>Î Ü>ÇÆS>I#Ó?‰°?¶Ðã?œ++?>‡?¤Â?pB8?OÿL>Ã*æ>ËÝ?À‹?ªÇ?›n?K?ŽÔ¦?fv==l3?=ìÜK>ûù—>É/=Ã6/> úÞ>:¹4>gî>ŠÂô>ƒ«I><›>€}>è)õ>þ?2>t¾þ>{è`>ÔÉú>”y>›µ‰>´Ä±>±Ÿž>˜Œ?…?bXN?ZS]>ñ>W–=G&ò=‡Q¡?ܱ @ö€@[¥?œú>Óý>³‹É?æ (?Óùr?#½©?* "?`‚È?~µ?®Xd?óø?L²?Ò >­k8>;Êá>»ü?>ö6%?¨¤*?䑸?^C>T(¢?3Ú?‘ ?š’?¥³œ?sŸü? +(o>Ðw=Ð`õ>£Ãd?ƒ2?ò½†?àüø?w®v?UéÙ=YZÿ>, ?ôÙ?دL>$WA>Lâ?zéO?{?™ÊË?–Ý&? —>û">¬V=¼E¢?¢Yò?·ô?#Ï·?Ÿ?lÚ>üø?‹q?‘ÏŠ?æZ‚?üð ?ƒIL?^+—?Uõ? \#> «=â›j>.¤?Æ?W ¿zŽ?1pÇ?R{Ú>Ƥé>c§ò?ƒÛ?9†&?Th>ÿ4 ?x§¨?žyF?-lå>Ö> ?¯â?†?Ä‘?ÿÀ‡?'z=~£¬?FÝÕ?ŽÆ?IIÜ?(tä?Ov?iDh?²ï?¿g?uo6?M +Ž?7žE?'Ì”>.B>ŸNv>á£>“Ïôƒ?¬>û@T>Ú1ñ>).=ú4C>†6ä>«ýB>õà¾?Å?ÌÐ?Ò‹?n—?€àü?íh…@ö? Ì‰?Žï'?$6¾?}ü=ùx=!9ë>ði»>ö&³?‰N¥?’˜?ÓS†?ÈâÄ?Ÿmr?›'??Ôù–?ÐOb?æGB?ÜT?ˆ*ï?I?€º?)¦.?4ÈÙ?;çp? R?"É?aJ?Yk&?µâ?ÚÖ?²á?’Ó?Êv«?›¼û>TqÁ>¹ÌÑ?'Jß?es\?².?ƒi)>³×>ç‰?>t?"% ? :?)x?]w ?ˆá?§'·?Ó–œ?û«˜?‚;">Ž•?|©?}H?@¨à?,ñÞ?¶k_?ß©w? a?‚mC? ?­>©ˆA>gü/>`§²>u‚‚>…/n?Ìȼ?öË??ìä?ãê?”¸Æ?£¡@$)@-j%?ð¢?¦d?ú«s?ø‰µ?‚àï?iG;=ÑÓj?ï=@2û–@"™Å?åþÝ?Á ¯?K>é5>šÄ3? ¯Ý?„é,?YÉ?ƒ4?,4‚>=&ê?³ú@7%ã@#g3@®r?©Ð'?ÄÐ?YÞà?ƒn?­™ ?Ãí @#_@8Í„?²[?pÇL>Üù®>ÁP­?Au?WÃ1?.‰&?ƒ?”+h?›?Dì ?P4±?Ð'à?ÛBp?ö!8?ñ‘$@ʬ@ +å_?Ó-Ô?«tœ>æ—\?5aì?Ž…§?X–B?X×?qž?‡ù?­2Œ@Ñ@%¡b@7Ë?«IÏ?0?Dˆv?iÌï?Ia¯?@™5?пe?ÞAÜ?§DZ?žÏí?Û#?Æ€q?ŸÑ?žX–>Î'©?&>A@šk@y?þu¹?ÅEÇ;ºä>ñ:%?‡5?ÂÒµ?ÆÚk?¯T?’@S?¥?´ž%@Ã:@%Ñ!?ÖΈ?•LÊ?ù?†ws?Õÿ?znÜ?Xøþ?WîW?áé4?û>Ü?¹õÿ?¶üv?oÄ?iŒ">­:³>ÙØ£?¿)6?ÒŽ@?Ðà¦?çD?Z_¿?½~’?Àcö?Çgd?¿CR?´j?¥n6?œ‹?,o#>™q=ºIý?{a¤?ª;z?‚ ?h õ?ƒi)?~k?ñÄ?÷’m?o,Œ?cÇ•>VÉP?çš@¨‚@ ¹€?„bä?ƒ‚?…µ?²É@uô@ ½Ô@~—?ùYÀ?»¸°?Zsy>¯w6?h…U? >Ž?§Ð7?¨‰@‹‹@é¸?¹ Q?Ÿ >@óÄ@Åv@ jê@õâ>³Jû>˜´Ä>|AÛ?ÿ¹@8@úø? ¦?4¶³?ˆ Æ?·…Ú?ûGÕ@£‘@5ÖÁ?ÛÛy?Eâ±?qJ½?…$?²s?Г?f‚?qý?È‹¨?è1E?±lö?«·?”üÞ?—~þ?šI?9¸?“(ý?°~Ú@-C"@"µ/?ÇO~?Õ.Ã@ˆ–?ÜüÜ?„z?±}v?û¹h?õ*E?@ÐJ@9Õ:@—Ô?ÂÞé?à_ž?ór?ŒÕT?Rvn?blB?V4X?ÏÔÕ?ít‰?Å],?º°n?o¬t?_>A?„€Ë?‹²?øÈÂ?ýñÒ@ »Ú@±‘?·lu?»±ã?¿ùL?‰¶þ<í‚=?‚]?Ì(?æ —@N‚?·NA?<³@?§Ì?ã«m@¥1@zý?ÀC¨?„'èh>??‡®?× >@fš@f‹@eü@HÌm@%Œ°@ !R?è¶@c”@F`;@Y¥?®i@ Æ@,ƒº@yj@û¿@ü†?çb? 3>/ÇD?¡ +ì?Æ¥€@gÌ@€²ã@ (¯?ãOã@”ÿ@¿o@<¼È@EsI@DT½@CðŠ@T6<@J‹@!÷q@$È!?£ØÀ?ª&£@hÆ?ï—E?!9?[¿@Fž@,Œ@|™@Vfš?\À?†¹¥@*zf@Ï|?Ø«°?íyW@!üÆ@(Ì%@8¤#@ˆ•?Ðâ?µ#®@Vo@òk?æ+ï@vÒ@!V2@%ò{@.n@)ʽ@%€Å@P¸@Õ;@ò @!­ @ ªV?×B¾?ûÜO@Jñ@+l.@HI@Û?‰šð?Ê€Ž@D0@$I@ þg@q¦z@·@q}W@+[­@çG@àg@kÉ—@›E9@7…§?•À.?Èø[@»º?»ý¶?x±å?³Ç??ÞG\@„œ@-×@FÂÌ@`o@?o +@ ~@8‘÷@L‰„@#ŽÏ?ÿ×x@¨$@9îœ@. ´@$,@·U?ÓQ@ÞÛ@„U@Ÿ@£?ú©?¿*ÿ?ƒÁŠ?2?+V®?I}N?”Gè?ÛÔ-@¾í@çº@0ë@N(:@I«>êâ ?NFñ?»š²?ÙL@²²@\·@™p?üX ?„—?~h?s,Q?®h“@/î4@,w¾@,~@ ^°?ìâ3?íSµ?üd½?ïæä?–§Ž?žYy?ÙÿÞ?ݪ\@Ä8@–?° +]?«>°°M>±ü@I@ PQ@;~{@DEr@=ÚE@<.?¯8RáŠ?_ø…ý?&Øç?½«?®0 ?•?cs?M‰?-2X?à?Ýãu?æ'š?î1Ÿ@ )³@ki@/Ð@DC„@Åÿ?عÿ?¡÷¾?†Bë?pË?M¥~?L$¬?V–¾?ÏW@-yž@ì“?×´?åq @Të@#yÿ@U+Â@Pw·@/ó(@+úf?·ÃÇ?·±÷?ð³c?ô·@+H¿@0¬@]®@ Í·?®á\?‚O“?µ”å?ϱ!?èrÖ@ÊÈ@–{?ópè?Ϩh?s:¶?IÒH={ß>!ƒÛ?¼o?ÁYî@I»@ áo?´ZË?¦¶?J¥’?(¦?“žØ?µ`Y?Ù°v?ðY·?ÂìV?‘%s?$?²X?›\à?T©/?eÇÎ?¢–¤?¨)?ì³A?ï1?ËX?ØZ?£P>?ˆˆ?y¾E?nÇä?«™¾?ä‹?¬®"? »?(A?‚ß8?vxF?‡fo?Ê @Ér@"•K?×Q¡?±M;?©ô Ã?}q“@@®?¼ÌZ?³ªc@= @‚C?¿›?®R¡?‰‘?hFÞ?©¹Þ?òJP?ìUC?Ái©?ºŸ?±R”?®Sò?à6z?âer?µWØ?¢›?˜4§?—%^?i‡G>Á +¯?0wœ@¾.@Pz?†™s?Š6?õke@Ê1?§^?]±ª?¹Ëb@ ÇÚ@µ³?Þv|?ÝâZ@ߪ@×È?xä…?4ôK?³PÖ?ë=Ï?ͱ?«ò¥?ÉM @6'@ +€c@@ƒ@Eô@.áŸ@&°¶?_£Y>,Í‚>e’>Ž¼2>Ö¥Æ?$ÌY?+ïµ?3>?:Dø?“œ›?Â?çõ,?9Ys?Š•"?–½;?¤ºØ?Ÿ±O?e×(?nTø?t?|‚Z>k\J>Ë(>šˆ²>ÓÄ´?€%d?¯ì¨?c'>¯z>¤{ù>«?€@f§@´x?þ?„š1?Ù„4?Ö¯?qY?móí?ˆ ß?‰D$?¥}Û?³iÊ?T´…>ïç>úÙ?å”?–¸?ñ`m?Ÿ`¬>ƒÐ‘>Ÿ-‘>óÛ?.x?›âx?ŸPö?…³?ZQˆ? b?3B=?›R?…á ?.AS?8”)?1$L?8>u?‹–„?‡¾>úì¡>ûˆ¶>ü ?m#?C¾³?jì>˜C¾>‚Bõ>X l>{ x>ÂWL>Ž„=ˆ£;³$="”>œ·V>ÁÙ¼=™»>]yÃ>>ïT9¨=kqè=éšB>(Ë=kfD>YÄE>AÖï>Ð,O@Ž¥‹@wúÆ@S×x?f`Í=£'?(ho@(¦D@Á«?Œ…s?„T¬?CƒW?-÷‰>ÍŸÖ>®‚{?€P¡?‰f¬?¥’×?°ü,?6ü†>óßþ?TÑì?ˆU?n{?@Þö?;p?N’?Q*P?^?n?Úñ=I´>""E>åÕ? "7?¤úO?§ÝÄ?ŽF‘<%´>=î´‘>Ýr>é ?mM?t–D=a +o? s?›Ð¯?O?cƒ*>®):>²Õ,>øæ®>ûǵ?T9?håá?²m½?º%?‡Å>ü}½?&ì?9Õ'?½`9?Ó*Ä?…Ëì?SVÿ?’¦D?Ã?×H>±½Ô?->t?=Û>z+=”È ?²0?õ~#?üŒ{?÷´ö?„f½?L£?[ù>þ—Œ?('?,%Ï>ME ?4{?«?HýÕ?,Ÿ +? i +>ÿ^ >_Œ+=¡9i?¶´Á?ÿ¢š?ÒÜÖ?Áá3?‹ÒÔ?_+?Ÿ~?±º‘>÷g>#O5>;¬Ç>T«?¦Õ÷?áçñ?VŽ?3WÕ?†¬?“ß3>W,=ÿ ©=ó¸è>ú¯–? + ¤?ÕV?õ„>Ôäu=Ÿ~>°Kz>ÂY?&›s?*¿>…0 >\.>îRe?ÖÕ?ȸ?–5?x¯?€òÏ?¬F?³²æ?™^?‘5 ?­Ï?)?R?%ë?ó 7?ð&y?˜…D?ŸSK?Áèø?¼S?ØñN?ÛÊ?Þ¡û?ÍHî>•§?yî÷?E‘ >™«>Œ6ã?“&?^}>J$>¢Y)?}xy?6¢?¶j?“•?¦ß?¸Àä?šŸÚ?ˆ)Û?^ï?h+U?èK?o«?Hª…?C¦?H L?[²d?d”³?Yîù?OHÄ?4#!?3?˜’l?ÔŸý@[@Â>?͇o?‚K­?Ìs9?ï?]?‹ïë?LÑæ?x€N?‚o’>Àio>7w>’’>”¢>Š@¤>Æ:?§ !?¸9c@Ы@u ?=h/?#±Â?x4?O¿>âq{>ïŽC? +,*>ð±<¹ ì>?š?k¨ª?vÁd?±†;?¦$?Eãc?!ÌD>.B+>ü°R?Žþâ?’cv?£ l?—~Ù?ƒ4¡?b‡‹?2?ZNr?ƒKÐ?uDK?kCÌ?}>&?ƒd?6×?NÜ>¢pÎ<ìî9?ø©:@'|{?’;?Ë?¼G?Ç ú?2?¦S?/¢ñ?7l¶?X:? +ñ?ƒÂm?ƒÆÝ?ƒËÆ?¦ô@8Ó@R>Î/>z݇>T"e>-n>ãq?~UÌ@!dB@³ò?Ão?¾¥š?¹àM?¤žå?™ó®?—Ç#? Xg?K>#úG>7I>J.x?.k‘?Lr#?²¿”?ÐË6?•ƒä?‘Fk?–O?š9ú?+o%?"K>X„ ?Ƭ­?¹˜+?„{û?ec“?Ø"?Wïd?ÆÐë?™@\?'Üx?„hŸ?¹g9?¥º“?–ËÂ?–Ì¥?£ú?€i´?Rg>?n·þ?‚ž ?¸,k?Ç;?†[?h§j?6¥ü?-Ô?‚ï?ƒj?¸™?A–@îª@d? ^ž?a@©½?á¢y?™f?\Aµ?+§[?ŸÛ!?û¡?àÇŒ?ÇoŠ?¢‘?„ø{?ŽNÈ? _?9L‘??i¼w?…¶?¼?Lj@Én@ ”?¦ö?¥î ?W +?Z4°?µ?€?¯)­?€e±?e’7?°Å?1t·?…%?¡Hâ?Щe?¿y?­žd?µ{?µ§?ŒPt?]K€?yx0?…Ü?~Œù?J»?î5Ï@A?èb?áí6?ß³C?Ý]?˜ßÑ?—ZÑ?©Bn?«øk?§\?¥H?…p?§mÇ@)>?ò7`?ÄÖx?øæ;@"¼Í?àµ.?x²:?{?j#¹?Î1>¢Ú>>´l¢>Åþ@±d@ìk?ÙGÌ?Çÿý?e…ˆ?P»?mœÍ?hn@$–@ëã>Vz>µW,?„ç3?Ž.”?µq–?«+?„Ü•?±Þï@Á¥?î"…?Ë›Z?vƆ>‹ˆô?Ž`„?îU¼?ˆ§]? 5?Y,‡?ƒ„w>œ±û?šl¢?Æý·?È{?Ãéþ?̨S?Ò”?dzã?Å…?_q?q=þ?ÆÈÉ?¸N(?5N?,®[?$±?+}?>D?BRÃ?‚‚‚?'ä©=üÙ,>Ê'Ã?=©•?[³6?lÜ;?ßW0@:?óÔ/?ÆJª?›Vä?„(2?Òxj?ínË?΢?Áµ@?Û¬æ?à”¢?ŸR_?™y?Ôðä?×ày@|P@Ÿ?½«:?µn?ÔR)?ׇŸ@Ì+@ òó@#'†@4fÁ@xó5@c¾b@1h~@!7p@Î?Ú“¥? A@GA@P›”@?ÛI@+ï¶@…Ç@0,?Óç3?¦ÎN?™%˜?‘º?ÙÕ@7@ìr@*¥ë?èø@?·ƒ @0I@SŒø@9Â'@-@$ [@#5¨@[>[@g–?ëAJ?ÌŽN?œ®n?›åg?|=s?„™Ó@Wïý@Y0J@'oÇ@,&?ô, ?ïÄo@wX@6Á@.pG@E¿?’/?cS @+ó‰@%ø2@ú@®›?‚'i?È3b@W%@oÈn@•$¨@xH¢@@.?áêñ?•pÞ?Ìqí@”‹@vÑ@€Á?øÍ·?“N¶?Ïk{@}ò@7”@bµï@qè1@‚€¬@J ?þV0@@@Ö~@§‘@Ó¿@!V@0³@Bvf@Tòr@&2?ÊQU@ +‡ê@4V@³8@Å›?Éun?¢ù‘@è/@%8ª@1¨1@:Ÿù@E$g@T !@ +· ?•è?·|Ä?ÍŸò?¥Íj?„ºc?Ù6ý@Jñ?øÓ?ææN?ö½»@;Ï@–«@|@9—˜@`T´@.l¥?ÿÛ?×¥ê?·»F@\!@?x@ ¤[?¿ˆä@9<¼@†yÔ@;ï?Ú&?Îó½?¿-*?¢q?y†?Œ±I?¤~,?’úÑ?~j­?Ð2*@é@!´F@# ò?ýO$?—ù?ÛKÃ@'kV@1O?¾2]?œÛô?%{Ð?Ò@,¬@£??ø?€?êšØ?Ò*ç?´õÕ?àÕ?„Š9@-ȳ@'Ñ™@¶à@u‡?|<¿?z6Ç?qÆö?†r?ôUý?èÁM?°[Ù?·8>¨õ >“š@„9@‰Ýö?¿Ëø?™¯m@4Íï@AA@ OÊ@@2À4@5²@4º•@3ß?ùI±?Åb•?Ûhï?èG?@°J@. °@·¾?ù¢?»m¹?x®Q@4F@^å@(Wu?¨z?ž¡o?˜_‚?­Êà?Ó“Š?±Oè?Ð?Q  ?øRK?é’ô?u|,?w2d?®Š?©C>@Gø9@E<…@X8@ ê?ŸÂŠ?— Ê?½²?ÁÉ?£Ô?›%v?=uÔ>ö¬þ?<‚?vàª?s¥ ?YO?ªE@|"@!Z@c‡“@:ð ?zÞŒ?|¹:?‹s©?Šr>Ãõ/?^è?.7?8 Ø?í?ôºæ@¨V@ï@ ù@´?èŒ?.]%?¶-ô@áê?Ça?…ù“?»Y4?þÁ?Ô0³?s>l?ŸçU@ä“@ˆ?ïg?íðÀ@1¼o@0e@"Øp@ÂK?ž\O?r?_ìŽ?a/[?ª#È?Ö3g?½.9?œìÆ?¼3š?ô… ?Ëô>ðùä?6N?,8é? Z?ª ô?±¦@ œG@¨? Ï÷>Î;?ò?RÈ@?£?Û¸?¸w|?†Õ?}v¯?4?I³¤?Œm?‹ù??BK,?7u˜?gc%?nK?ò‹q@Ž?ÛêÝ?±éO?ÍôL?íŸ8?䢚?ÍhÖ?¸˜ì?†¸ö?]ï?üêÝ?÷8l?è´?íO8?¬?™®Ê?üÎu@!æ?ÿ?°ø|?®&t?ªt?›š™>ó×–>û®Ò?ý„?Š“¾?Bõ8?AÑØ@ˆ›@&Ú¼?ñ÷n?¥År?–Tú?mS?‹Nv?ÆNá?Â"I?–‘|?—þ?Üùò?é§ ?Àþù?¯?æô?b‡È?™Æ_?és?èý{?èäZ?çÒ¡?V3?t­†?Ú ÷?åp(?©ÛÉ?‰‡ž?Žµ¯?’v%?§µh?ôûÑ@l|?çć?çsþ?†h?@[?•ø†?­ˆÇ?»ðö?ÂÀ?ÒVK?åÆ?É·u?²6?¸¦A?D©\?5øÈ@¤†@0ˆÈ?ˆ?Âu@x@›-Ž@tåÝ?„ÂD?Õ@•<@ëD?¨ ?“"?£ ¬?¬?l5k>æ ?+Ô3? ïk?©Ž¹?áN?ä¶Å?#và?#&?‚ÛÁ?ˆèX?“Áì?šJ1?dWü>åÚ>åáp>åà>åßí?¼—á?Êï¬?´û;?¬y¡?[U>è®ï?'=?tØq?„ÿê?Ö¸?™àÓ?ŸÃn?§U>ɵ¹>?¯…?A™;?ƒ¦?0‡Í>Ä$Ò??mEL?Xe\? +?Ö@ð@i?1¨^>ùþ?ñ?$ûH? ëô>è@Ø?)0à?„ÕÃ?c9>é x?ë´?ÛÜ?Ó_Á@E@‚È?Ú-?·„?‹æÄ?ƒËq?1”¤>W’?­?«ßÊ?½£÷?îw*?ÞÃ"? öì? ?p‰Ë?…ü?”r?qw?¼´?ÃCr?¦öœ?¥V½?H¨®>ïõ„?3Âe?\“V?–3D?Ƚy?' >ò<µ?7?OZ +?25?1$?§·@·w@½‹?h¥|?TÒE?>™©??ª>÷¾i?:´?xÑY?Rø +>]¦º>Uü„>î_ª?œþ?q?3Éo>„±R>Çl§>þµa>Ò~´>k>¡Æy>W0B? +ÊÒ?z×0?0ÎM>æ…>Lÿ>%|>”j>‰ Y>“çJ>¥7ó>àº?Bd·>P÷P>‹*>§-<?å@"X@¯@Ø è?²js>µ(p?;vž@ +î@G|?¶¾ ?¯7ú?mTê?{Í©?B½ô?I÷±?¡l’?©ºƒ?sMg?g„>Œ¼|·Ë¸?ï4?O»^?wÍ?<“>(=Àà>Q´¡>×7»>°éë>¨ÙÃ>ËË$>ø÷@>³È>=áõ‹>ö=W>íŸn>ùôå? è?]¨r?I‚å>¥ì.>«ýW?mhn?wËÍ>ß³ú>ÄÆ>©á6>À>¾'D>Ïÿ>‚Âb>Àµ=:ª)=4Ç?[§Š?koQ?dèG?^gm?J¿K?U~·?b¸?oèð?˜“ê?®}D?Ÿã?”¸Y?µ +ñ?¾Ny?#ò1>ÙÇô? ó/? }I?/ã?d}?˜ìŸ?ªý­?3+>þŸd>þµn>þÊ >²„Ë>‹?KÕØ?ò?‘ýà?•ç ?d=m??çœ?!q?zŒ?¿Å?ô©ª?þ ¼?ýŽ?k«V?Íh?(M™?:.t>HöÑ>ñsV?‚?cÅÎ?€=Æ?•Ù?™¢Æ?Ùhj?ç: ?œ˜>Vç?4Î?c:—?×Øu?û o>ÓXŽ>]¢>Íèq>ØÌÊ?R‚%?ag9>Âû>®Ò¾?[z?\CÃ? A¸?ÜX>ä:]>É2?s+q?€øW?Ÿë9?œU½?çôp?òCß?‰ä?ƒ[×?€g?}¶@%Ð?ýCÙ?ßN?ÌP?Gr?Rf[?]«I?aŠ?,&­?/IÚ>sƒ">Õ??à.ë?Ïgç?‹}? ±Õ?KÜO?w"‡?º!5? A?_2? ?ÓI?Ù»?!Ñv? +?î>¡kª>ît™?'¦?-º?2†o?uŠÔ?¥E-?†P?=àz?€Ž?ª‡??—‘?‰oq?¢Ì?«óŠ?çD¹@†p?É]*?…—¨?«ˆì?Á‰?Þ6>eÚD?†.Ÿ?ª¹3?Mñã?%Ðà>Ø'>©Xõ?9@Ô?LÖ'?*t?8Š?ÛM†?ê~o@rü@#“J?Š¡q?‚ì‡?®n?ˆ¹=Œ·½>är?~V=?»?€¬?Pj•=Ñ3*>ÕV ?¸Ü/?˜é*? R>îï>¯$Õ?ÀÇ?nag?št?Æ¥!?™™ï?Lû4?Rç?W@?\m?a"²?d(á?UòÓ?}H?Œ2×?+èî>÷†Ä?9˜?#>m´Ñ>t¡]?ÈRs?æP?§o*?£?l%C?]Œ>Oy >NMÍ>aä>¢Ì?¤…™?¥é?»˜^?´ê??®¹Ø?¡ô"?c^È?yÐP?‘J©?„<~?eÇ]?˜n?ɾ??Æb?Æ[?O‰J>;[?jŠÚ?»_é?^hÿ?)Þ>Öúm>¶åA?‹?£âF?TBÂ?@¬>¬ú>{çZ?hÀ¨?o[ÿ?eêé?bêð?¿f,?©û™>oaX>ÂÄà?²-¸?«Ÿ?„~?Bã4<¬Ì>IP?{ì?B×|?wÔÑ?!à> .?z›?(¤Š?œ°?ÅWÓ?³Ôm?«ºC?=ý?¸½?‘¢ˆ?©Wï?Ú€¦?àQE?D#g?7hƒ?–oS?“?na°?Yºõ=¯Ú>uz?‰R?mR +?0?x?»}>Á¥O=—Î ?B¡?¡ ˆ? l?—”i?’±?„û¤?å.@ +…¼?¬³&?…å?é1?ûáê?Íèm?ÇŒj?Úy?àÀ}?-Öw?6LÏ?îO?Þ¯?Þä?î–?,E?X3? k>¹s“=Š°?†¢¼@“J?ãùe?…+?šö?–ÚŠ?a¢Ü?1Šc?n……?…w?§UÞ?¬Ðª?Ü­H?ïß ?ÕM}?Õ*.?Ù™½?Ýl?³ËN?¯GÞ?BÙö?%£·>0-Š>´È§?‹­L?Šˆ¬?‰lÉ?†  ?‡“t?ÜO@&U+?É­0?Ø?Oƒ ?… I?ªðß?¹¬;?gwn?(@oü@C$J?Ïqþ?¦??«?ú…?¨i"?°gt?ݽy?ÕwN?–à2?—Ð? \?Š÷?Qø?9S?‰»¨?ÌÄ@%ü˜?Ä_=Å^N?=¬Š?­Ú”@ ©%@3þg?ÉðA?Ej?V^ä?^­>l-Q?¼ ô?ëB}@ÙÑ@šè?nX?R7?ö_?í÷w>´³š>ïÚ?¶ž?¼’-?Ó>L?Îø1?Ƶ5@2¤@Ž6Ä@n_j@ž?Ï×É?t½#?rà»?vS?™ód?¸Ûë@x¼@=qþ@!øb@¶?Ò8§?«×‘?çq@È@Ñ @¢M?Ýmê?Òyß?~ú?^L?ÖѬ?ãk +?Ö–Z?Ø K@CO\@Eß”@<&@"±@=r@1V/?È?ÁÃ?¤±…?Ü.,@)n?@lð?áh?Ç“?•Ï?û7Ù@E=@0š~@ëÀ?³µ>÷ôý?JNA?ƒTJ?ÏV?øÔN@ -´@"Æ@±–?ùµÓ?ÏîW?¸²?Èû?ͺ&@w0ö@ìµ@µ@NC?O“"?1 ?„•Â?Šê ?!õ?mr@'ï@þ@Ψ@ɹ\@…¹Í@~uä@6@W@.Òx?àª}?ë¦@ y@È?ö3@0Ü@z +G@t‰-@[„:@:â¬?Ž¸Û?²F¦@‘@KrÈ@»ö@”Å–?Ãüo?×F=?útÝ@ŸP@>JC@)²@Yß@/uc@fÝh@g_5@m‰U@U,ý@;ÛA@yþ¨@¢üB@zžÒ@!ÇT?ùþó?§ü÷?å]x@h:@<Å?ßrk?üÁˆ@ œv@ßX?ðG,?‡€²>^ص@ p @€!É@9>;?ù‚Ž@ @ö6@&­b@A @z_?âʾ?ÆOÂ?«œ_@ƒÂ@'8û?üà?À˜H?Òâ0?æ~j?ÓýS?´€*?ž®[?•¢Y?·f?ÑD @Ù@ ×í@9|?÷d+?¡ª?À¾@è—@^ðÞ@;©O@ût@ZÈ@<@ È$?ñÄl@•ª@$¶?Ù]õ?WWM?§;2?äB©?Ôáõ?ÁØ?õ¦ì@ëö@)8–@:!¤@?Ž{N?ˆrÃ?Hy?¤O?¾5î?ä£@Wµ?Õì…?å?m³?ý>?ì`Õ?½¸?¶ÛÄ?œº?Ïz @U;@Fw@:ò?üÏP?|>f?vT?BJ?L>C?È =?Ñqg?bt(?[>E?»½?´ï@?˜V@J¢w@®ì@6@`dØ@n¾Ý?çú~?¼U~@ÅÊ@´=?éÕ¤?ÕÛC?ñx’?ú7ñ?Ú¡Ž?ÍJf?õ™†@ +M?Ç[?Žû?Ëx¾?ù¹@ ­ª@ £l@ ©?ãaÚ?¨X8>øï¯?jz@!°ù@{c?²˜b?ÀÃ?õ*Ö?çm?x'1?€UÒ?¹ýf?¸Íž?C5?6û›?ýîp@W?x °?Je@9@/?ÍR¿?™Q©?’M?‰ ?³T>¢· ?­X×@} +@Ð=@F ?ÜI2?€æÄ?¢ç˜?÷ý˜@*®@1[@B=?Sì?X÷Â?ýŸ5?óÍŠ?¡6S?£J¼@'¤@0l?Ñ¡Ç?µÞY?uÏ«?@9?3G??#÷?‰£>ÀrÊ?Œäõ@ Ð?ö ?˜«?¯Ÿ@J>@"»N@k~ö@c$ç?ÐU?׆¨@®Î@‘'?áÄW?Ǽ?zÝ?=(¬?5?7²Œ?VZÊ?qq ?a€?Kܸ?Z\?d€â?t\z?à$ ?Ý„Ò=ÇW<¨ú>ø¾~?>ìý]>É”j>‚‡J>m›v?‰½¨?Ûn?¥{?<‰‘?$hú>ïq?L¦È@âŽ@ +‰A?wõ ?ƒþT?Z¼W?YÜ¡?’W¹?¤*Z?‰y0?nÄÎ?Ñ.>4ý>ÎN0?9{¬?)æA>„ôÓ>Ï0?Þž?ãk]?Òì­?Î51?‰ ?lpØ?§˜Ë?É;ì?ÍŽ¯?ȧX?¬Ê7?xƒ?ƒx?°™8?«Ù9?kX ?k:Ì?Xô??Pm£?¼ÏÌ?éF ?è©k?ÚºÙ?¤·?-à?>+«?‘æe? „Õ?ÙÔë?Ü®¥?új'?ø5—?À1ƒ?­Ô>?®Ë?ªó0?å¥÷@$Í–@!µØ@ž8@øi?6‹?ƒù ?Ö :?ìã?µe?™·?Á0r?è"Ÿ?­¡Ò>ƒÕ >¼”‚?åÏi?ç¯!?ª3J? F³?…E?€¸W?¼´z?ç@·?çj€?ôfí?ààN?3à?=‡€?À7o?¼åš?k#ý?T*m?õ¤Å@',@ ˜(@2¹@ Áé?£J?ž„É?“ã +?š–¶?Éî?˱£?¢÷b?”KR?f$#?âø?)”ý?e÷¢?q?¨Òû?«üb?ÚY%?Ôb{?µZ?¬k¨?ŸáÈ?šË’?”9r?l—m?^HÐ?OîA?A„?â?~·ÿ?µ¦?»È½?Ñ(c?ârì?Ú?Õé?Ú†¥?ÿÒ¶?òß‘?fUy?fa?0Èb? Èœ?›5]?¼y?LSI=í”?GD­@ÖÄ@0?Ÿ”v?—ÊR?ÊMW?Ó+-?vš?p‘Þ?fÀ??gÿÀ?ev?N’ù?†PŒ?ÚÃü?Á­±>è§>õ=£?…$?œE?Ãgq?Ý_°@!Ù @/§9?¨£À>ꡆ? 6?S.?Wd?^§&?l®?|0g?l4=ÏÄ>$Óa?…î¹?z‡?­m?²‰e@ ^@ Hë?[d‹>Ùè>#Ž1<”]?ƒò?Ù,?‚ÃM?Èá?Eeu?n}ñ?pâ?"ã?„‘l?Lþ~?# ¼<™üŠ>­«Ÿ?uÙ$?W•$>öÓÂ>÷YC>÷×? ä6?LAm?OÐ?JÚë?(T¬<(6&><6? —?$øO?2|T>ñšI>p\ç>${>¹›?TòÂ>áED<¤ ?"î!?pÔ@?kˆ>®»e>mïf>ˆB=>U@E>,Ý>Yú¦=í<¼qþ>Åô{?iÕ2?GÑ—?E¯³@Å@+8@«E?s0•? žu?2:Ï@´Î?ñ»À?¶—X?žèu>hõ >Š´Ó>ô~>ô¼•?NÕ~?YEs?Ä-?|Á?Ÿ@;?¶ú5>Ȫ=c‹(>ÅV>c˜&=à>±íú?CW?¹º>>±y?/1˜>êû¨=8šŽ<€üÁ;ó”0>jG?jpm?Dà>iJ>ž¶Æ>ú€¦>ëPo>bRÓ>†”>? iÚ? +?'–i?5'a=è`R=®.?üù¸@i@—@:­?+-I?Ü€>j3Q>vë?F­®?Pß~?ì>ý!™>û“Y>áb/?z)÷?’Ê?™U›?ŸÝ½>ÍT/> ˆ£?•¦w?¼=²>§Yá<òæ(>÷áÊ?'õ¹? +û¬>þ¥+>þ¼o>þÐ>þæ¿>þùñâ}? n?ÂaÚ??Ö°>ÿþæ?·Ss?Óæš?le ?,æ¾?-Ü?6Ã?qUÑ?€B?Èþ{?ÙŸª?ö”d@·ñ?)P?fy%>ÚPØ>h*|=¥ó*<ªë>:¥?—kb?¬gÊ>¶ôÓ>Võ=Îb?7«?' Ë?C¿ª?>lÕ?|V?€ð!?Ô”¹?Îý?þá\@ +Ž?s—à?rœº?·NI?»æP?ò€?|?&ë'?S5¹@$ ï@bÎ?žÑ +?ŒC•>9˜h>I?™ÿ>ôÚ>‰”+>¹=ò?3-?Y>¶œ>³ì>[à +>¶HÏ?rÒ?}_"?„w?8±Â<¨v(>«Ýl?sl\?@è>Í–?6Þ?]áq?5µ]?ð¯?R9ª?ŸÀà?j{R? ‘ü?À?³$ˆ?iJ0>æga?§ö@ó¤?žÀ?f”?Žo?¼Ñã?Z{!? +=?“Ÿ^?­èì?ä(?ø\‘?¸g ? G?&«$?‚™?-24?:×€?·G±?Ãçã?©x?©/:?Âër?Äù?`íM?h(Ì?¶81?²K£?&/?`Q?ÛH?ýV?¾Å?5ò]?°ß›?•ÏÊ?1bš?d?£<ç?c¾Ð>-Çö? +l«?(?®ð?ä•‹?©Æ +?<ÇZ?QèK?be°?XtT?N“?±:-?ëÔ?Ååx?³a›? +Ïê=»”>Ópç?ŠŸ>ûÃ>îãŸ>™l>¯Žˆ>o  >~J2?"£2?-E»?þã?pèÉ?bM¬?VÐ|?ƒõQ?Ÿõ=@Îá?üº³?Yi?Q™>?(R?kb.?Åæè?‰§à>O°?`Ïp?øªD?ˆÎÙ<Õ0>” z>ðŸ_?ùì?.Û??Z ž?ihÚµ +>¡J?ã)ç@0„þ?Û7ü?ŸÖ·?l›°?Iå¤?|Wh?„À¦?àW?ð4a? ã>ù‰í?ÆæÃ?Á©x?WÝO?G?)Õ™?Pî?ÇP÷?µ³8?„Š?‚|x?€6A?FâN>ä¼î?6Ú±?„ôK?Ÿšp?µD?—rÇ?„üž?œi?°…™?’ªÌ?…÷@O@¤²?¾–Ì?®%ý?˜–?™ó?—±÷?”4 ?…?ˆ\Á?˜Wi?¸WÑ@!8Æ?ì?Ý<@·k?4YÑ?ùã?Ím?žÍÏ?t¤T?1†?ÂÃ)@ ø?®"ì?^K?{}±?…?n±F?wþ? ŸÜ?¤Y?ˆ?…[?+ + ?0Þl?9º@?WnK?Ǩ¿?¾’Ü?`)?•ëù?³‘?ÏMO@©T?×—)?…y?Â8@f?¨²Ç?Y?‡e¿?¸!™?Ìì°?ÛiÕ@H8@@îi@_?²ýÆ?¥üÇ>¼w>•i?J ?žÖ¾?Æ1Ù?Ôþˆ@"z@q@ Øþ?ó5r?„èC?› ’?ÌvV?øm@%El@Í·?úTÉ?¿Þ~?M?À.ø?ì¿O?Î,?¶N??“Öi?„¾b?¾U?u"]?ͧ[?ä×G@WØ@¸h>Ú‰>™Å–?üXm?ûjp?X?q?„‹r?–0‡?ï»?âA¹?­Yâ?£ý%?€Jè?™Ä9?Ç#—?“Ó1? Ñ{?~Dë?½}@r@Lìg@yH?û!]?õf?ò £?œ8Ã?l¼?²c?Æ4Ã@1”À@D|Â?öya?ÕM@&f×@'gs?µ+Ž?¨öK?öô—?ó!?LŠ5?Uo?Íœ?»,Ü?'-?vùX@#²…@ +™Ö?ƒ²á?¼´r@$ã@zü?ùw›?ñ‚?ã@Ôº@½ý@Ám?Òé;?$ù? Üv?Š±F?À»2@CÕ@ƒI&@Euý@#–ò@-}@2Ú@/Pˆ@02è@•Ì@K@Nof@b­¾?¸æ?ƒÓ?ðÀÔ?úö9@Méƒ@QVH?¾'?«ø\?º¿^?Çü­@ºiï@¹õt@gR @iY@0¨^@&?è ¦?²ž˜?öq@7?ç …?ÀÔ|?é¤@X÷?âÁ?Àš}?ÓTœ?Û$;@öM@F}€@?>?ª¦¥?Ñžd?îæJ@LÛV@‰W÷@;é®?âgõ?ö²6@'*?½L?‚$?ÊÒ@ö{?ãíB?ÈOÊ?åÌð?ÿ”?Þ™?Åš‘?Ý?æó¸?î”É?þžW@è@ Ba@ õd?çî?éwJ?åá„@¬ê@¸ž?Æ¿ä=÷?¶?³.¬@äˆ@’Òÿ@]óü?x߇?¤–†?ý ?Ëlq?IF?†Œ'@ܳ@Gü@¦Œ@js?ÑRÓ?ÅÌE?|D0?@Z?èáÍ>mgÜ>Œ÷À?£¡´?§~?üiì@ˆi?‚ ?m µ?ÙQ?Ø•·?ÑÁ£?Êãâ?Áß?½Û@Œ¡@¢<@e¢@Ñ5@¾Ô?ú;º?ŽúN?D$n?„b?“D?º€­?Ì’?ªRƒ?AZ?³‹R?ĵ?¸ræ?¥)+?½0?@±U?Ÿáà@ˆn@fõ?i + ?ƒŠi?·)8?ËIÀ@ã«@ ÿö?™?§>ÌZ>à ö?în??÷€L?øo2?ñ“@(m¡@5­Ô?æv?¹.y?ã?ö¼/?ÔN‰?·ç»@¹É@)@ª?öq€?eRå?‡{?¸o?íöÂ@6ÈÖ@0ÉÊ@Fð@µ¨?¯x(?¨ï?ec%?xÄ5?ÎìÛ?Ë~ö?Ç°±?Ö:a?üÉ>?õE‚?5ÙÎ>*u?3 6?sòõ?‡1"?—)é?§"_?¶¤1@¶=@O )@-¯•?s—?}?‘? îh?µý=?µê?К?ÖÊw?îI1?òo?´w ?šÉ,??e>ñ¬‚?M¯?ÖÞ–?”%>ñ=Ž?^û‹?øŠÛ?éF?`ÐL?r…Ü?íÉ'?ïj?³å^?ª½f?¥iõ? p?!Tf>²ê2?Éø +@0ä?óÚ ?™ºþ?„Ñ?0öÏ?‚v¤@(ñi@(ä +>×,>¶·h>¹¢û>Çb>Yj&=ÑÇá?%2*?mýô?«Ý•?Õ;F?¨`ž?VC?4þ >¨Ý¢>Ýžª?Öh7?Ó€a?ë0??쪪?Ž4—?ly,?œn?© ¡?Ð0@ˆa?ì¢?°Ü?°o’?°]¼?°›?«G%?¨RŸ?#??@v?±×A?×19?Ùäx?âÒ´?® §?3¯ó?Esø?V¯á?Ib?β?È™d@#?@+ö@?¼<¤?o¼ð>ÞÊ=á-?¨$@F£½@2KH?àòç?èï?Åbì?È`æ?™0¿?”8‰?~å?hR?žVê?̪í?ÕûY?àwæ?Ü ?¯×?®û?­ß¬?­­?¥'ç?ŸÃO?á˜@u5?Ìòœ?g"?„Ï_?µhÄ?¤©g?°3'?¹éù?k²T?6˜ø?gª¤?u­?krµ?~'?‘ûƒ?¬Ë?¤`j?µº?kg?xõ‘?‹¾#?T¢^?7n\?y¥?“ü¹?‰<™?y&†?smm?p…\?g%A?«ùÒ?³E‚?R¹d?*}A?{Ò„?—p¬?‘ji? ¾?ŽVë?€ ?‡L†?W×?¡&W@2L@&…d?î2g?®Î?ô?†e¾?†ú²?|(Ô?‹«€?fZ?fc%?frš?f‰õ?Ïöâ?ô‘ ?¹a?–½?‹Êc?® ò?¡l"?L?%Ðö?­‹ ?­§ƒ?j!h?d5û?H5??<^?§VŽ?èMH?ÁfÍ|?ÕìN?ͯr?-vÜ?!œª?Á_?ðÁ ?€¦W>ê¨Ö?¦? +t>°l <Ü€Õ> ü¡??a?m]>²}Î>°Ÿà?Ž+µ?’ã[?—¢Q?œk@¿²@0w½?Oà=j-> yÒ>ßâ~?TÃ?Iê;?A ?ø?$ç?Fdò?$~þ>¬">šS?=üRö?$T^?ñÜ‘?ÔE´?®?€IÐ>&>Oè¹>zÍ>’Me>§Â¢>˜f=›¶²>"Ñ‘>ù=C>ñÄ>üyÞ? àÌ?(ÆÙ>ܪè=­ü>"Jþ=éÂÃ=Ž"ï?ßT?`+>Æ~m>Cz@>0ÕS>BW<ë 5q >©°\>Þuí?]äè?y0†?…(¨?Q>9LŒ?`Ø?š—5>x³?pû@Os@~wÔ@k,²>Óxm>°A>éd.?–÷>?I[?¸)? +a\>|:æ>aw>’Õg>¦(j?ÙM?Ñì?“l?ŽI?oÙª?vwI>cŽ,>%¬Ö>„æ¹?4ê?eØ?C*¿?"ÙÛ?Mæ?•t~?…ú9?d>Äæô>yô?yØß?på?>•?74/?Nú +?.ww<¼ÍÃ>[‚>L’É>¥@r>Š`Å>ÃÉ:>Ó‹©@ +å2@¥Ý?ƒ®¹?…s`?ûƒ>üy.?E€ ?=åÐ>ªO@>²a1>cÅ#>fô²?.›)?E†î? äò>ýŽÖ?^Ÿ?Ôx?Eϧ?[Ðå?… ?ƒLÖ?z§î?n( +?£¡??ª ?ËJ??ÌTã?Âç…?¹z*>ìg>kyè?U @?)Ì?Š?“Ö?mä?`>Æ>²î—>²r=}œš<ÏØx?•ÊÐ?¿ëŠ?‰ z?n[?±?ü?Eû›?*:?¤€Ö?¯­?XÜ…?Bs?µí½?λ¡?¡d^?“a¤?»,?tç?É, ?ëÇÒ?Š¢Ù?|hï> Ð(?¨ûb?ÁZ?`á?@(¦>Åò!>¨ßÛ?_/œ?Z|™?>ˆJ?D‰ä?wì?p@ž©@EÁ?Óhû?ÙÎ +?HO?y? +̉?Í‘?¿ú’?° +=Lò»>OÆ?æÃ?à/—?H“?9»æ>BG™?¥:ý?n|?qñ´?–Vt@8h?Þuë>ªª­?ªšy?‹«)?ÿš?M_?º„-?Õ%?ø°?ÝÂq?º‘°?‹¢T?Ý.?\á?¯Ù¼?£ª2?’®?ml1?=¤a?"bÑ>î¤P?¯þú@VZ?Þ9í?° ?Œ•?URÔ?`á?s\Œ?Oa“?#”?œî?¿‹À?U~8?RØ?¯ž‘?Ð@›%@)¨?_]Y?…c?¨í?°¯È?¡¾ ?£ö#?… +—?‚©;?’ÑR?˜RE?(åq?,²?ž­É?œ}Þ?»g?­0s?ÝÖ?G @Ð]?îá|?ÄoŽ?°ÿS?nàN?"?Ä”9? s&?/vÌ?^¶ì?ß¿? ?>’U?ƒO? ß?¤¤X?­œ?¯™Â?²é?Ÿý?‘BD?76æ?i?–¯´?½5ð?ö7y@ðw?Ê+§?¹`Í?Þxð?Û?Ë»>Èj? Ð?¥À? +÷e? |?sñÚ?ŒÒ…?榥?âÛ&@«…?æò®?Û?D?>â?i]?!V?°Â5?Åö~?m!Ã=¾]?¥á-@"™?Ô‚€?|«"?žùO?±Ö?µs?¶í¦?„ÈX?`2Ð?~±ƒ?„>7?Ž Æ?‹+,?¿Èé?Æz#?ÍDt?ÑzÒ?•(ß?›l|?¸ß)?¹Æ¯?„oý?—EO?é3t?×ÍÑ?G?ž"?Å—¸?®3„?ˆ6™?Ÿb;?¶;¶?›$n?„ž>?e™?B³¦?©‹Ž?ÝäÐ?Pï>×™M?eî¸?„»Ó?SÕK?M2a?î¦u?úB5?ßYç?Û˜T?Ç:=?Ë‹Ô?û¤G?ó×´?½Ø8?Á’%?ÇQÄ?´ù?…Y«?›2º?Âãç?¤á”?w»à?~“è?„õÒ?©™¹?Çxà?º¯?°ÁÀ?Iˆ??1¥´?D§“?›1„?©cÙ?‰`É?… à?—Ã4?œµ¼?Žö?•Ç5?“rÿ?¢×¶@%é?ôë?Ǥ?µJ ?†Ï?´B@â?¶]]?Á¼?u?®G?¯c™?¸çæ?™ÅÛ?… ?N?9~ ? Ÿz?¶C@Xo@$?nþ@?T+³>TY›>e2ï?t¡ë?g2?§ÂÀ?±'…?Ǭˆ?›}N>*»'>Сd?‚fG?„€ž?…û?Z$C?+b{?ŠŸ?² +Þ?=\²>¶' ?Õ£+@À$?ïƒí?äàG?8?va\?á&»?êgo?t²>ëW’?« ?¬Å›?‡Ü?‚ç@:r±@:Õ”@&*@µ{?˜rœ?³MÝ?ù‰Æ?ç”|?Å6?æ @Ú'?¦ù?¡í@ Àˆ@Oî»@ —a?Ç+-?¹èP?²;â@F7@!A†@. l@-#¤?òÍ„?èÙ…>¥]x>f–t?„ž]?‰ª?Æâ?¾k?„Žy?›Ï?¸º½?‡ð’=‹ëL>d> ?;+?h˜–?Åï¶?©«??ãõ?Ø×å@³{?õ[L?Åb«?«É¿?•‘@‘(@%öÃ?óÈ?0??¥]­?Æ8‚@@'àO@%>?ø |@TØA@cÇ3?Ó½Š?ÐP9?çBF?å3³@ç¼@à´@Û¦@ ½Ç@>@52@7þ@ÊF?ý‚M?î|b?×ê@ÜR@R”@Že?§z?Ón‘@‚‰?ïG›?Òxp?¦ð”?ƒfb?¨áí?ÈÂ'@.A«@^†í@8?ÄÝâ?ÈiZ?ÏÓË?÷¼N?üdV@ +?@ ½/@?¿ë@Ið%?«Ñt?‚ô@4,Ý@@ü`@šfì@Ù @4Ö?ù¶?¶ÖD?¹ê@hn‘@gl!@ Ö&@¦~@#5Í@¶÷?‚Í?á$?æËï?ïoð@ '(@€¿?îù?ûš@*)@7¸p@ˆ©M@`‰‘?œr¨?ð9@_¤@u°˜@‘†a@S9ö?†%@£¸@v÷±@XQÌ@.ö@n€r@¡^Ì@…Nì@C j@A1Ä@B[š@9¸ @0ÂG?ç%?>ç‡?«W?öóI@;Éç@€]@V¨ð@*wŒ@/p?ø 2?îcm?ï†À@c#@ @ñ@ ·¹@/0@ +-`@:ª@Y[ @.‰_@p›?öË?âå@ñ@!ŠØ@6›@B)?à™È?v/Y?¸•?å‰ö@0<'@T†Ý?öSç?€.;?Órä@ôä?법?ÚBG@+ð&@[…„@J3"@=–@ô1?ÿñ@23@Xê:@S°º@MìH@"< ?ÿp@—n@`Ï@¯ð?êžù?âÑ«?ÙÜ@.C@p‘×@#Æž?›æ‘?͉Õ@Õu?ÿ„î@Ϥ?Ñãi?{5´?höS?g`•?†ßu?©ø?‰Jë>ýMæ?Y@±@"&É@-)æ@ZS?Ó¹ó@Dä@]©¶@DïM?è‡Ï?éY?òBB?ÿ©@=Î@1QD?˜&«?é~?{ÄG?.9?§;‹?¢”Ë@•N@&@4Ü­@7¦À@< @<:—@?@Y@?ÓÆ?ÄKñ?`(+?BÍê@7QO@_Äú?°Æ>ú·?¹¤„?õO3?î4§?ñ?¶Jk?w.Ÿ?¢?ËŒ?º?§ÝS?–¬K?‡±Ø?f3ƒ>ø‰?À?$3?0ë/?ˆbô?‰ +¬?½AÖ?áD@~@p>C?×~?Ïù?œKC?Ÿ¥_?Ü!?æÇ@#¦õ@+©t?Å¡Ÿ?›‰,?ÛnŠ?ö¿ñ@”o@ œ?Ý»'?™ds?ÿn@=Ù@ ?¾þ?º Ñ?·v?Éû”?ùYâ?è…r?ƒX??üFñ?òmâ?Ê4?ÌkÚ?Ô,?Êì@%°@(]?†PÑ>Ì`G?˜gA?ÌQT?Ž!×?8J?‡ûð?ÁD&?áY@w ?ýÑf?uØ?‚yá?±ÿ³?¸_ø@(.¤@$TE?èÁ´?á?†Ùð?|3;?1Çó?!e?YúB?jt?˃u@Cc?Ƚd>ñE>ñ&¤>ñA>÷öC?½¯?SC?¹VY?µ ?ë +i?ë3?èv??å»R?Z>ïÑ«?Š]¬?Ë?˜?Å;“?³ˆ ?©·?“äc?á´?7\?/Bí?ÄŒ°?ÁÂ>>¶ë>amN?”8q?²›l@CA@?ÊÎþ?ƒõä?5ÖË>@¿>¾«?J!’?A6?8¯Ö?NÕÊ@è€@9/?y}$?@;m@ b@4šò?çl8?lô?†%`?¦§Æ? ¯Å?lv?q^?vû}?|œ?–˜¹?“qj@êc@/-Á?öÝÓ?¯üK?—†9?`E°?žïÎ@Ô‹@LV?÷º`@@@Ž«@@$ÔV@.ºW?±x1>ÓñÝ?‡@¥>?ü:J?®·?µ/7@ O£@¬S?ÐÓî?À‘¤?§»=?š§x?„ f?h+.?‹ ³?´¿±?¸ö6?åâ?åÒ??â–u?ßXg?·YÀ?­“½?«”?²Õ?ª“b?‘ùQ?²±Œ@WR@…]?9 i?+ê?çï¤@Ûf@˜á@*`ê@?5?ÜÜ%?¼…T?}] ?ƒ+?ˆYK?•ï?¶™?®oº?S·š?ׇ?€¡S?·yê?½!?µ-?¹JM?åó?ä +f?xÜÆ?uC?Ôñ¦?ãÅõ?©ŽW?ˆóÔ?‚†?eæd?P S>åëË>æô´?€¿Þ?ze:?˜÷?¦ºq?ˆ…f?lÓ}?Îl@?úÁ“?ˆE?yýç?&×B?.t*?a:r?fŒX?Àá?í‹Ø?Ýùz?Òùï?âvB?åmq?ÁjŸ>ç2ë>ò‘¹?­Žç?­«a?LF0?,ü{?F†x?F¬?žü?Ûó?Ê(C?ªO,? Âs?]þÍ?R„ò?ŠÚ,?“Y—?J/"?:Dð?‡f8?O£?,úx>ê±?@š +?}Í?o"?jAY?(?¢Çú?¡Ï?¼O)?©j³?(ÿ?2Nz?k³?n&?’DŠ?ûc?m?kyø?m<>ð#ö?•}¡?Âà7?€Rx?*åë>ó…>MÜã>j;¨>8=>Ö‚@?\Ø?á{=‹">ììP?‡_?FIf>\Jx?,{>ÐCÌ>p&>ú<>>¯Ö¸<%b€>C²Ä>ü™\>¼¦û>9N>r‡ >jM¶?ý?l“ý?Â^>ç~Ë>þ¨C?)&?F¼@?JwJ>î>oQ >WÆN>'J==Ê&Þ>#~º? rý?:óÔ?U;³?S?½?u$¡>Hž??r@/¨@G“@]¸p>Gc>Á¶ç?G¡Å?ÔE&?…ˆÔ=ò—>óš>àÁ>@U‚>Sׯ?t§´?tåX@¢@C>‹ð<[²Ò?ŒÏ?¡A>ž±›>g•W>ŸÓ>ÏÃ>÷–4?#·?XA?q{â?x^®?ôœ=Á[•?4ÉË?é”}?£G—>ËZŒ?³«?Œ#À>rã+>·‚?)@‚?+Õl?Lÿ>ô7’>ûœ?Sº–>¢²Ê<Êœf>gøå>Žµï>ñà5>ý‘?l·›?}ÆX>˜Dy>´ý?Ϫ™?úi?È)€?ºyá?½ªô?¾åd?¡Å¢?¡^z?§Â¼?®!u?RÈ>ˆ`Î?……l?›qw?qåê?V"‰?É{>ÿ?R©Ü?m9y? è9>ó—ö?fiŒ?‚ß?$™È?>ˆd*>rY?Ðd@?ëy5?˜Œb?’ +/?W5Ù?=á?¨íµ?±ñÇ?˜”ø?šûˆ?7aù?0Ô>䚦>åbÙ>AÐ='ì¾:|v>'|>~ô"?§š$?°¦?›Õsm÷>Fd?•œw?“{?!Zx?õg?‹‚Ú?ˆW>?'[?r'ü<··¥> íA?hl¨?c$œ?xÛ?™ ì?ÍL!?®SÀ>¥# >µ7“?.¹?d”4?Æ°k?ïg@AH@01>¸¢?"ا@âÂ?ì Ý?¯É?3æ¥<§™i>=æ?r¤?>F?"»»?OÁ?ßõ?šT?N;R?€"f?šs(?‚tm?HM|?ƒK?ŸÚy?Í+k?ûé_?ÑX÷?¨k¡?ÞÚB@4É?”Ĩ?$eh@Ž;@9°?œÒ¡? +Uk?J{?d?w³Ž?ŽîI@ƒ¢@+÷e?‘wŠ?W,i?Ð!?à2?Ê\?‘!?„‹O?‚ra?Í?Ú"?‚½V?‡Ÿ +?ͪº?Ïä?‹±m?yáó>öµM?¸Ú?…§½?‰¤ù?‰kÉ?¹ó@yy?ð +É?“¥y?{Ì7?.ai?w£=?ª ?wÞX?ß?±½j@ ň?ðu?Ë +?þè?`ÉH?æ?·ª?\ÿj?rÕ?…™? —Ñ?Û)*@yÕ@@@šç?[å?Dfç?k[ö?gÖ ? è?˜(e>«%>¸uƒ?O”j?˜S +@f¼R@B¢á?b0ú?{rÕ?ˆ i?Aa>VÅ>-lê>[v–?<Ó!?Åøë?Ã;?Áðû?ÃÅU?Ç·7?¢u??„Ü?­ÀN?Æ4?¡Æ^?“^Ò?ˆ——?„5l?§Q(?­¤È?~·­?z3Ó?¡w]?¦‹È@ Xp@€ >¥Pš>¯ÝŽ>¡.">Öóg?“â=?ƒe?÷½?{ÎØ@y?Ø?ƒ'L?žôl?Ã_â?ÃÿÖ?Æãü?Þw?ï¢W?ëN?æbM@ 8@­ ?NUÑ>žb¹?ª#Á?Ê®ð?í®?~4 +@Bí„@L›´?õ¢`?ðÜI?¡‹Î?§èƒ?¹?±î!?„Þô?‘o?½+þ?Âdg?Æ›#?®Ìj?‰7Ô?ˆlQ?„ò?R­Ö?Ë?ÎQ¿@CÐ@ÿ‘@½ ?  ä?Sì?!å?œ?±¾?ÁÚ;?Š3\?… „?yš?_(>˜óû>Ð9«?Çžb?Ç¢?Ç¢Û?Ç¥½?Ç¥ª?ÝwÌ@«s?¾Î©?­§?MTù?z‚?£ì?Ç°?ûr @ åÈ?—?(?0È?Oú?VgÀ?A×ý?AãG?ðâo@5¡ø2<Ú¡?whæ?÷ØÊ?ÛQ?ÇŸr?6¦?N„ä?àÝ@¶@dó@Êò? ¿>`zƒ@Á×@=­?Ž¡ú?„œv?Rù~?k>ð?òѺ?âP5?d_…? ´F@&-Ê@©?õ¼ ?Á +­?¸½?©Ï?—í?FîC?‹j’?MH?Ö"?Ê +ú@¾?ìaò?Ç.A?Ç'r?Ç#¶?ü„L@ób?í+Î?ñÙ•?¡·?…v?€Në?yp?¹3©?ºk©?òÕ ?Ü‹Z?eÐô?¤¦À@2Ç`@©B?(§?p¯²?ËnZ?–…×?;™?˜©@=ó@ [@“î@¤?ï+r?­NÞ?„F{?Ö 9@W?õ9®?ä5]?¿t?{†?L(°?L­œ?(î?„?Á%?Æq?ƒÉ?6E@þx@¯@éD@= ?ÿRµ?ì¶?‡óA?Àè@E"¯@1ùÖ@·ð?Ìéf?'jL?Q´ö?õ›?¦“þ?³é?íÍ@Œî@&@vú?è /?Êqž?ím@+‹@u…@$Ù?Ï++?—oë?pþ ?M^@&Rm@P3@Zr“@X¨@m½°@wÒŠ?»{J?…Ò7@7fQ@DZ@»˜@À™,@ + @žE?Ä%P?É”›@,X¾@+üI@2o@hÃ@6¦\@!Uw>õHŽ?Lu~@QW@v%?©ƒ`?½º×@2o?ÿtØ?áq}?Ú ¯?·H?Õµ@¥÷@½’@"’=@©×@Ìþ@PË@:ãH@'¼p@Yç@ùš@"<´@Uxe@ŽIè@QvŸ?êºq@øw@.š£@U3@yþ”@+ü–?¿UX?ÆÊ?ر?þÝÙ@ }D@#e˜@8Ë@Bø@MQ8@ Q(?§(þ@Í…@1× @¥@å~?Ýy?ÄÕ«@ b„@(Òî@$Áë@ ãÀ?ÖR]?‘ +.@:ÿP@‡@Np:@2sŽ?øÈÇ?©o?Ž'x?€YB@&cÔ@l ô@å÷?Áþ8@K@4.¶@7sP@3ðò@=@ù@DdŠ@2X@$mm@ bœ?þÍ@Y‚‘@Û@XÜÒ@('2@?ÌE]@#†B@Vrµ@ ×?• P@)¤@=¤‰@.MÔ@)Ù¥@ •:?¾ºu@8*@2dÒ@ð ?“ š?Ëù@ÿ:?ÛÒ6?XŸº?Ð=Y½ >yÍl?±D?,„_?„÷ˆ?vá?@1?F§ ?*^Æ?m‘Ä?Úäž?â.?Ñ7r?ÈuÌ? N´?­U?Î×"?ÖR0?ÀhŽ?¾×À?{Èú?€?½RE?Ã%Ž?Zõ ?__8@+w„@++K@4Fµ@7N">¼ ³<‹2A>å›Ñ? ñ>?ÈÆš>¸t?FKz?jËE?²ÌÛ?Ýó@4Q@(âl?º* e+>ˆÆ`?£¨¡?«Ö?·Ì ?·œ'@Š‘@A?Þ4B?Öc?S}œ?Êå@(~v@ióV@Íñ?˜ ü?¾ÅŒ?é)(?ÕVo?±ñ?Ã×Û?òp„?Ü&?{ÌH?Ú?Ÿ;u?©Ie?ÃçR?ÆÖÿ? &¬>ò*…>§ b>…¬?€f¨?µKè?§±`?ž0;?†™û??³É?5Cs?*Îù?8Pž?‡ë?1S@3ˆ@·»?Ni?—Þ@”@)c?©®?Oö¶?‰5²?ž}?…›"?a×r?‹ã?³`æ?œY3?C\?©'?ª0×?´ñE?¾À`?»Åí?®üÀ?¯o?‰@ï?w?;ÁÕ?Ü?q"ú?»}í?ŠžØ>$K>·î?Ô›?˜ @ ¤@!•?w<?!‡-@ S@Yâ3@-?l0?IMë?FÛ?1Å ?°í?¸¹Á@#ÝD@ z>ïj >³ß]?æÛ~@?ä!v?°g?£œæ?•¥d?¯Vœ?úÁ?ýA?‘±¦?‹®m?Ê? +cR?ê>@öÙ@eØ@ S?ÿå?ºët?Ä–?ÖàÆ?ÒÜ?Õ,?á_i?ÒV?ØnN?õVý?úät?Ðý¡?¥HF?¶ˆš?çÿY?¿)éô—?›x?b¦?WüD? nï?­v@Z@ ‡?ã|Ø?ç"°?¥De?ˆ…ý?8£->æ ?VßN?ÏE?Øül?â>?åøê?#Ø?¨O?†;å?¢¶û?Š!A?eçx?}¾%?Ž;Œ?tî>åìW>î&0?¬{ ?¬x¡?Evï?þ"?îÔý@#•M@iÆ@Ò@ªàœ=³¨ó?^—@ýÝ@e?˜?Š(?†]?ŠoH?­‰ö?ªa¿?»tm?Á5p?‹@?.Ý?‹È?n= ?‚iŽ?ªš ?¦?¢~?žf:?mb¢?iâ,?¤{À?¯¸{?Abé>ê¸?Q½¨?šÞ?s°>î8Ï?ãÓ?ñä?0aþ?`ž?wÍ?7¯j?.ɧ?>ÿ?Hmü?Ñ¥ß?å.Õ?GýG>ò€e>ñ/m>ð1ï?d¾?š¦ý?R]2>ñ¶>ò\>òˆ‚?/Ÿ?s`ê?$Ÿ>¯þï?dî ?=0ü?£?X>”X¦? IË?ŸU{?qû}>PN>CF.>ãÕ’>÷«’>ï>çïL>ü¹0>ÜÓ>˜º/>º†™>ÿDE?€C‘?Ñ,:?N­²= +“G>¥¨Á?ÀŠ?à?$n =ñÒz>„Ä>¦©>¿6ä>µ2‚=B³#;¾ÍÓ<þ÷>œ¥>†´¸>ï±·?_>ÿ/Ê>¾î)?Aè†@ iÚ@µÆ«@Û´<åê0>Ó D?Åvî@<â@?ì×r>˜d>©'§>óiÅ>ݬÁ>•¹>´…¢?2+³?C~z?Ï+?Ý©ê?$>ñ 6?k,?ƒÒ?V—³?:!? +Ã>÷>›2^>j+’>röW>M3A>Ò6¢?-l›?³Ð>Ézb>×~5>åz> >¢îB?…v±?c,>¼8V>™§>2g|>th=>éÁ? +„‘?3Â?GÀ ?ÓÅ?ÎD ?˜p? 'B=׈k=×@­?ùþ˜?øèè?½SÍ?½Xq>'1>Èü?‘p?&?Y ?¡±>ƒõR>[SN>–®>©ÍU?là?}Ê?ˆÊÀ?‡a?wm?zâs?ž9??y? …?*Óo>˜Ôs>‰éó?¹\9?ϽJ?”…W?ƒ†§?O|®?Y™?kÏ•?~e?s ˆ?Z÷7? p>ÿ®+=ýÊ<¶ká<sÚ=F¿X?Màì?m¢?RÝî?Bã¢?‚Œ¾?•Çe? +8?@7?mÐ&?€Ph?¿M=?Ï}ô?Láà?%»ð?>"1?N1ë>i{8=Ø @ =%@Ke?_«?mÃ'?b ‰?VY”>²mU>ÇœI?Jþ&?Z¹Ó>c¡>bcc?›Š?¦Äô?cÈ?Ûv?– +j?škV?bR?mØ?­¶?¯KV?,_?ŒÄ¼?þpL?çË?DÍ?JŒ?Rˆ?mù?5?=»E?“\?c Û>)³¦?Fá«?GQñ?2¤æ?2”>·&”>ç./?°¸?9ó„?³\?VÙ4?¿Â?¯R?ʲ>¦;½=„•b>áÿ²?hZš?‡[Ð?œ¦ ?Dë?û?7§>ïHö?kýF?¥ZÙ?¡–j?šŒ?²~Ç?Êÿ½?Óí?ÛV?¾±ô?²ZŽ?£=›¤ö’Û?»]|?å=¶OÄ> +&?– ? +³=?Ìõ?I-?¥uŠ?‹ÖÓ?$$º>꿨>,©?#h°?Çš?€•Ÿ?B}s?Ív•@k@p–@š?·‹Á?O_ð?[­E?j§?o¦?t¥p?oÖ(?vLŠ?„ï³?…b˜?Š0ç?"Ñ>(¡%=«Nž?}eP?„¿l?õ=ð?èFv?´e?JX?ƒ¾¾?¸cŒ@ffA@C÷~?b¥’?|>®?Á>h?œúq?è?)‡¨?l3¡?(Q?³çI?›¼?—??û?@h?V•?„Ý?¯3c?Æ6e?cUÉ?"Fí?'?+×ä?ŽÈ ?œÓf?_C?Mï÷?‚O{?„|M@+£L@(`ª>È1ª>ô6w?­ a?ª¯Ÿ?· ?¦}?]@j?‰£l?À…´?”Á?‰¼?–z@íe?É?ŒŽË?/}r>Éð„?6¡?lM?É<?òÞ=?»¦?TO@±™@T”?Ôtý?Ç'J@.Ô`@;¸AOo>ÝÉM?ŒÊ?ŒNÕ?‹Ÿq?†ÊŸ?‚=é?¤£º?Í|‚?ª9?S8?«CØ?¸ý\?ð´@ß@ )@ +?(§T>šú¹?°+ ?ÅU?¦ôð?¢-R?t9 ?z;m?Ç|V?¿Ö÷?ŽÂá?¶ä@-Š<@ +«4?`xž?‰B?µ^ï?¬oß?ŽÌ¸?…$“?„Þ@?Ò}?{ +‚?Ñç@Ò“?ºö?”Ê|?gl!?V ¤?×Ïé?ðÕÏ?â­?×ñ™?Ž€Ó?„{¬?¦ì‡?¬Ú3?î°{?ð³?òq#?ÚLÁ>ÁTT?%Ÿ#?ÆÎç?ÌÞ[?ÙoL?䫽@ö?¸ÉÐ?p>?}Ƽ?Êw?Ì“?α>?±† ?25?^£–?%»?àÌÁ@M +?ÿÁG?øÞ?U:m?*2?”£?õg@Y_@ãÂ@:±ô@5Û¶?òj0?òœ?ÅóÓ?Ì@ìH?ÿб?΂ ?ÏÀÈ?×sŸ?û‡b@Dõ|@DÇv@A2@'¿ê?ídY?Ò ˆ?« T?Ê?õý¡?Äû?—p?©?¾?¶Ëà@=º@9^@+´@%„@ ,?ö~G?ÑÅY?´Ê@@#õ,@ pØ@$Þ@„UÖ@—˜@ ÒÍ?Ðtg?øœ@@Dú@!0ü@% +ò@}Ø@ Ù@})@’°?1Ã?›æƒ@#aÈ@)2 @dc8@[Q@0Q\@'†F?ÑÁ?á9g@4aý@1Èe@OÏ@ëz?®mì?ªú?¥×ê?ôÃc@^VÃ@/Ê?§kÂ?Ùeß@Ý?ûO=?„ol?†õƒ?û©?”H¬?‘æg?Y_t>õŒ?´H @"Ëî@A»@æ'?Ñ?¤ö@n•@Ylž@Ht÷@03kÔ?䪎@?³™@+?ÁO?ÈZË?Ðx@=P€@oá?æ‡Í?!8@ +DÆ@I»¡@*i@7Ý?àÿË?ºÏ?—«Ó?€YÌ?Ô±Í@äj@vý@1?°?€—@Fø@^€@d_b@dw\@[p·@X¯Ú?ü±(?G)@/ã@cž…@S?Ðbo@é@¦•@ûó@9N@%Žõ@).Â@*Aº@3­@ ä?ÂJ?ͳÒ?Ûºá@›Ã@Ü?ï¿Ï?–-0?±gú?Î.?ê½'@ ŽJ?Õì^?5õg?£?‡@bü@©?—7j?’{G?QÕ?FíÁ?LW?·Ù@f²m@lðÂ@ +œ¬@uÓ?Ç’Œ?¼Ó;>[/·=š®?Æ0?1]ß@ e@.vå@ +)y?úW?¤Gü?–ó?æÀf@›Ï?›²>ùÿ?»)®@÷ã?ÐËC?y-?t'c?b"R?”ž?à@;?Áèì?if?t–Ò?‚›l8?äóî?ÜA{?Äñ?Ç8>?‹öß?å?ðw¹?ð¹¥?¶‘Ý?²¯?`-À?6hZ?Šüæ? j¾?‰Å?vÕ?ËÝh@¹8?Þ ?¸¡£?¸%?¸xà?ߪ½@;\@fÊ?Àsª?´œµ?Qh ?LRñ?u&è?w/?·¹´?·¡7?Í„Ü?Ñ‹°?S?2?9ß×?,÷?ö`@=}™@‰~@)R?F*?ƒˆ&?Àß?¤ˆ7?s`b?ŠH?¶$¦Y>[ïj?©øM?ìüÊ?":?D8Ð?¡Øá?éc{?Óu~?´ÓÅ?Åq¨?þôù?í~Q?tCö?t[ˆ>õî>ðOX@óž@C?Ì‹?£™¿?“Á?j:?o©?9œÞ?JE/?xŠñ?Œ÷[?³<î?¢œL>èB=àSÔ?Üæý?åÖË?ø®?a¿Ù?l×$?mú?±??×n?ñbÈ@ úÜ?â/\?#bH?.¶o?™É*?–è@¥-@ XY?£‚¿?‹j?¾q ?Ð.Á?·Tã?.ž?ŸGF?°èu?¾ÿ¶?ꀬ?äž?Å9/?ÍËà?I0?,ï?© +”?Å„™?uد?# Ÿ?KY?jte?b×?CÕt?YÌt?êÇ?éùž?ªá?ª™?‚ ?n?Ä€M?ö«?Ù× ?®ä¾?œèa?ey?vt?hÏ®?h¹‹?¦½?¤^¨@S@:L@„@üÔ@ +Â?ÝjO?ã£?å™-?Ø„ä?Z€­?TÌ?’gð?¤'â?¬ÕÌ?­}?—Ž­?foÕ?kðº?’ñÀ?‰F«?­3Ò?­#Z?‰«í?~̺BåðÌ>ø9Á?¸6˜?´ŽŸ@w"@+5E?Æš?‰w|?Mw?š¶?XÊ?¬´?«çæ?«‚§?³(Û?­ÙE?¬ïö@@'ád?íl£?¨?„?$Ã?AD +?.™?…w?™ªÉ?•¿™?©0‡?³ïÈ?¼&À?Ä`?y!°>Á¬ ?1ƒ‡?­c?­õ=?®¾«?©—ä?‚—?†é™?˜‡I?”¿ù?zks?4?>E ?¬‘>¥qã=½Ã¿?©Ý?­æ?Æ04?þ2?Òh4?F4?\ö?òaž?àe>ñ0b>î>ù?¦uÁ?³&å?…‰ê?nÓœ?fÿ?]Ôß?g§ú?qq?+oí>ñÆ>ò,Ñ>ò–û?A£?†?&M=^k/>C+—?’?$ >ö1,?d +H?ÊbÕ?®Ì?”ëU?`">À7p>ª‡Ì=«äS;È@p=&ÛD=«XÒ>P>.¾ñ>[æC>ñ%?1Šï?9Šv?6É[?)ö?’>:.÷=le=ÕT>´º?³]?ž’>g.€> êh=Õu>ü›Ò>§¡>¿(î?4*?€ô™?{óI?:‘F?ò…@Œ‰²@º¾>ä@g?3À@—?­>7ô>÷ûk?s¿R?G›>»4º>’gw>-3=½Iû>çi >õ‹¶?¨? ­Y>ƒGê>v ¤>Ýìè>öõÂ>y>#„§>’b>Ð=OgQ=“z|?F( ?ñMÀ?Á­,?y«”?r¶?Z‰ê?3ó4>  þ>±çÉ?K?+÷?zða?€áê?‘vd?ˆ¨¥?Fí£?ZªL?ŠÛ–?zJó<@Nˆ=ê)±?_“?&Œ!?H0Á?:Ë€>ìW? +Y>×*>ìõ‚?93­?5 +[>ÊÔ>¥©Ã?Mû>?aFŽ?£Bc?®Ôæ? KŒ?ó¨=‘+_=È\>áÍq>þ‘Á=ˆ|¨?‘"L?¯‰?½ÏÇ?¿Nþ?T¿µ?$™v>}·>)ªŠ?½¡?áÒ?2&2>ÿµB?íL? +ö?k‹’?rÎ?~?è5? ñ?.l? x?3Â?ÉÁS?Ñÿª?Vrq?CÁ ?z’?€d?€lü?€r»>¡Ÿf>H·û?Kié?f¯Ó?r‘½?~oê?€Ñ ?€°J?ëܬ?ë¦4?S~Ò?>}m?Yi?Th1>³1>”1ë?‚µ?yóÚ?nwô?^o??,Ô?`s?G'Í>Ù…)?&Ô?1&?áï@8L?à͆=×~H>ãØ>Eúï>†{>ºÇÂ?É¢?Â%a?ÁmÞ?±»?‹Í>?ˆŸ?$bæ?“É?C¶ >šy>ÑÆ ?¬k?ut?cj?HœF?ÅH>Ÿè<¹˜ø>^ÎL>â\> °>\6œ?G2?N¥ŒN?TÙ?ŸÑ2?£õò?ªËÙ?6­b>·ûZ? eÒ?Ñí??L=?ÃB?À>m?‘˜?|©’?°áû?¼Y=>À:`>H^?N?%òV>³óx>·r¢?L2ˆ?Lð²?«à”?“Ù>kt>¼”?Äž?¼*2?_0?d«6?Wí?Ržî?‚Ù(?Ž3Ÿ?¼¥²?ì€<$ÞÅ<õ +¸=Kº??¹B?nµC>Û|=®d>4r >ÔtÕ>¬üÙ>|ü?2«)?ŠË¬?§O`?¾f›?à”Ô?ë1Ì?i‡;?a—?6U»?:”#>hÉÞ=ˆ œ?Ùsß@£ã?’oÇ?ƒŽv=ê®?µÈ?³R`?okq?…±Œ?Âß ?ÏT@@!? +@yY?äåÃ?îò ?ë3?»®³?Þã>ë ¦>¼â>ù>±?êV?/Mm?; ï?,«ž?O;?Q¿?ƒ*~?©ð—?ÀÐê?k;M?,¤è?"Œ?/º?Žä[?ŸØ?‡§/?„Aö?§ãT?©I?¦ïÛ?¦ÆÉ@+=?ö?’ç?¤2?ßÖ!?ÑC‡?„s6?_|>±¿.?­8?‘_?ig ??BSY?ŠËG?Uáð?%÷?@Š?WC?a7?g-Ã?Í[R?ó¨+?~PÒ?9pœ@ .Æ@7 ç?¼Ø]?¨bO?óUÊ?êý.?Yߧ?Zþq?rÚ?’•?ÇXß?°¸é?„êÑ?Uz? £?‘à?ù~?²Ç­?p ?ˆ?–O@  @&sE?˜75?:2C?_=Ì?xäŒ?¿lˆ?Ç•0?µ3?º!?)§›?@µ?¬Qc? PË?kñü?’ í?ôòì?û©l@ +é?ì½×?¶?ã6ß@–)?‰õ=qÞ ?Ojµ?¯¨‚?õ @ ±o@äC@}ƒ?Ë;?®Q·?W=9?@ÔŒ?IЖ?Eº!? â“?¦’­@&nõ@÷C?${?"|?•ìG?\w?…#Þ?““Æ?·Ír?ÕÁ@–ã?Í”è?…,?¦íû?Ǩ¶?}(?g?œ@?Ç ?@ \@û«@-Œe@0|Ã?´K(?™è?…›s?… +H?M(?a|'?LJ?Ïìì@WS@€@ -H@Z¯@0íÏ@h>*[e=à`ô=I|?Ýo0@{½@&l?„àÊ?§v?À?Ö?Éçt?Òœ…?ÆÔ?„Ï?n¥ú?aƒÚ?ì>0@¿q?Û?Ú´ +@7ží@6ìú?âÅ´?Õc7?lœ4?qÓy?1ÀX?@0?›ù?Œñð?â·g@œ¾@/IÚ@öž?¼ ?ŽeÎ?š‹?p?© ?Ë=@œ?¯‡?›a?ëÐ@`›@!„å@%Q @!ö?ïq??¢Ë?‹¿ã?¢0?¤«+@MnÒ@]Í®@Tö®@]}?°3ô?¯ã`?‘S‘?¥œ4@ +þ@ +QŸ@ àå@‚@Xˆ.@7F?‡B‚?‹¦J?”'Q?¬œÅ?Íå%@@2…Ž@5_@–¤@ .@xš@` @tÓ@ +`?@ Çn@)ú@#/‡?×÷?žÜò@Èí@-ž@€°-@ÿ_@-Qu@ +‡9@Â]@!%@»á@QÊ?™X/?„ôw?Á#?ÉyT@Z¬@Z¤*@@‘ù@Cç>@97?æèº?þÂÍ@YŸÕ@Y¹¾@J£3@J¸ä@UV‚@JÔ×@#h@6b4@}ƒ@a0i@U|@»Ö@Q0@C£à@›Û˜@\^”>¾?ª?aý?‘Κ?ÓI€@#s!@,Ùw@;Û?ô‚d?mÉ?‰[Î?ÓmY?å{¿@¼@‡@89ä@5½@,UT@ò™@`Â@+@C#…@ 1D?·™E?øôÚ@ÙT@IÌY@o¿@ùf¤?'h¡?~&Ü?Š™ƒ?®æÖ?±ÿ>?Ù ²?Ï©>âÜè?Ø@ ¥À@£?@ù>?„ x?ž4±?ó!@‰=?Ò£¾?—ã?¸y?ó™ +?Ùš?se«?v?uPÌ?³êP@HW&@8î ?Éü®?ÎøÌ? q?ZÙ>²ÝD>µEð?:Éb?Dm6?­£´?Û… ?ƒ÷2>ñ‘?‘?Õ@v§?⢶?ôœ?¼1Ä@ wÀ@ÅÇ?±†Æ?³‡F?j9É?d/¡@ +b;@8?Ñšƒ?³ë ?iQË?#»i?o`Æ?˜O—?g¨™>ï7ì??$E?Ék?º= ?8Çc?-Õ?ÜÈ{?Ó‚Ô>œ<ë=,±w?€)?° ó?”£¦?†¡r?w³7?aè?Yç?ƒX?Kƒ"?Ôž ?ÑB?±ª–?±‘Ê?±|°?±je?ùS@ 6@§®@#(@$\?­\R?‘zs>ÿŸ1?&)^?°” ?°‚Ÿ>‰g9>€ÇC?ð>@RŽ?’=>÷t#?vŽ?ÀN7?¨Ì©?‰Š·?™va?Üù??ßÙ?U ?Y3 ?£[«?­ðN?#ø?ƒD’?™çƒ?®é_?™kL?B#%?H¤7?•¡?‘ï—±Å?iÛ?¬’v?–Q.?fV?|Àj?ªÄ¹? ¬£>Èð´>º™©@F:@„Ø?ÕÄÁ?¥?“’?tA?ƒxc?Tl?pi?ÛUï?Þþ^?³·>?­u?«â²?¥áW@sÉ@-sH@ wÌ?¬¶ö?¡¡£?-Ò ?5}?•¦?œ}?î¦9@?“få>æáâ?P±?¢®?‘æ?gAë?d +Á?H‰(?X­?3«V?6‹{?›§t?¥©õ?Ý +å@å­?ÏjŠ?f‹à?nQ?vÎö?psâ?T"?æƒ?‹Ài?‘? ”>ê[?ˆn?œëT?‚;?kCî?ùb=Š¹è>õ¢V?™‘¢?’\? V?@Æy?ÑTÆ?çnº>íúÝ>îH¸?”·=?¦ˆ,?°N?²2²?†M*?pOQ?6SC?!±I?5%?5þ?+›ƒ?")?Vt”?—.1?¨Rb?µƒ?Wþ¨=z0?XÊ?”pç?’ÿ³?°@Í?É„?Ñ!?†$‰>òœ©?¶ëÓ? •H?^Šì>õ½Ó?0Dz?­@}?™fw?ž’?N%>ÿÕ3>ö4>Üü,=°Ï?%qâ?Fô•>¡Úy>¢RÅ<²@<µ;ëå€>æùš?6cÀ?€´æ?…Ç^?^60?NÙÇ?ÃrÙ@OH?ßVï?°m¦>ïŽ~>y5ø>ÿÌ°?³?^ý?Gk†?˜?‘ÉÙ?sŸ¹?T'>´Ió>®e»; =J<à(ç >õî{=‹Œ=>Á„V>ö×3>«ˆø>€q?LPW?z£ >µÄ…=pÉA=³®Ü>ý\N?xãí?E.Î? +O>× >^j?š›@Iõ…@ }>6§>¦CÉ?8˜Ò??{¾?FXa?bÓ]?¨Óþ?$>ÎR>ï›Ï?ïS%?âø;m¶[=Y~œ?n²r?aªA>V°Ä>‡þÒ>¬×¡>Ÿ±á:ÊJË?ñÆ?êw‰?‚z¬?}—³?[ò>ýÐ#>ýå0>þë?{j +?€T8?³‚©?¯è©?x+¦?gí÷?¢ç?Š ?Q?~ïE?nO‚?x¿ñ?P?¤83>ßÑ>«_?,:¢?DR¡? ãš>ÿ¾K?¡ˆò?¸wc?‡{÷?€;?ß+d?ã\þ?~à±?`èÈ? +/m?7Æ?¼q?ÓÎH2÷=Ï#F;?Ö +:ÍR?·ªö?»ßü?ÿ ò@£? ›.?"¢?(€ú?-àÊ?å³? „ ?Án8?¾4Þ?Šý‡?’…»?–—€?“W·?òi†?ÞÔ¦>!eÖ>qIJ?Š1?d*=aˆ=Î{Ð>mÂ?œ£‡?rÿÇ>«Ú>È,Q?™"¶?²žá?üË}?ÍÉ%?Œ,?ëü?R`¸?WTˆ?M4K?C¤X?Mɪ?º:=ý]9>ÚsÊ?y»m?Jîš>÷×G?eÀ“?² +×?5!º?ãÓ²@W•¢?î%¦?35ï?ŒWy?ª0‹?ʱ?‡¸ì?–Ø…?šˆý?=i >äúO?i@°?D?…?‚J`?†‘Ó?…’?´Ô?ÁŒÎ????xD=ÀŽd?“¹=? XT?²6—?©v">×ÒF>ãóy@jµ@?x…Z?uT@?«¿Ó?Ÿ:›>¸¸¼?Ñ?Û[ý?ËÁ·?aÅî?UY? +°§?(÷É?€vd?vÕf?l¹j?vß•?Žh ?V>Ô>Ä{ó?k?0l¥?Ìg@e?ê¢?ª‡[?R]5?Aa?$D?3™$?ê2h@–Ü?‡©¶?cp?½Y÷?ë^?’Ú(?~>C?šè?„çh>ÞL=²æ¥>ßÆ»>àP?Å?ç?Á•?c¦k?~Ïî@· ?ù¡ ?Á;é?»Ž?F¥W?ffÁ?©*î?š¦ò?bé4?(ò>—„Š?1? 5 +?Éíh?þ«[@„@Å¡?YQU< +†€?0*ë?‰Oñ?úV@?1@ s@ÄÇ?«K?—¸ó?­g?®$?Ÿ³ ?¡Hî?èd8?åP?ÒˆB?×8Ó?­2?¨¥¬?„jc?xú7?Hö?•É´@{œ?ý€–?î?ýÚÄ@Œa?ËK?„•Q?á7Ü@œ/?ÇŒ?„£ +@7¼Ô@oq‡@ƒ¹?ÜŒí?é([?ã7?ò?ÿÛ?Íÿj?ÂË@'á@)Ȇ?Š­Ë?qê> > ©7=î¦u>ÝU?ÇSá?Âô2?»Õg?®ŸB?‰´ü?Öxz@ú*@ŽY?Ï›Ž?‡¬Ÿ?jÁ?±Œ‹?ç{‘?ض£?Ü9|?‰¦ò?Ue +?`2ô?Uóé?žöe?¨s•? zE? _þ?ª¨H?žãB?΋a?Â×+?B¡?X~v?šãö?žBŽ?´w?s&J=8Ï>ï†,?ŠÆ.?„?m?£€?ǹ¼?¸rí?µÍ+?š}»?•Dr?œSú?žH?“g®?Œ—Q?ÄúÖ?ÆKô?©wZ?¯D^?ÿ!w?ôbC?[ì?u±ý?Ǹ,?³%U?pü?WO/?r?8Eþ?zòî?‚Öß?…4?KØ?.?°‡?í9…?Šö?=NÈ?u¼ ?ŒLK@ >¸@åÊ?—`?qا?„—±?… Å?¥ß? Ê—?ãïâ?óé @;v@#i’?b¥>?šL@W§?ÒŽ,?sþ‰?EOw>ïsV?? jÎ?¨ @Â?¼µ ?‹˜ ?R]‹?1€@E0@Aðö?™Ž½?,9Z?y i?Š€?©Þj?ª¼;@< 3@E°Å@ú@£è?#*ÿ?2~…?²a‡?ÝÅ@Uw}@G@qõ@(«&@O %@Âs?@?{„¨?ÅVÀ?¥J!?(¤?Ì™ô@'@ ý@ ¿ÿ?ÛË¢?ÄÊI@§–@%Sœ@±·@ð?ÙïH?ÆD–@xÚ@òn@>‘/@A¬ô?åH?ÔŒ?ò¯x?Ü‘þ?Ë?DL@+´¡@-~µ@<Šê@?›?×?« ‚@dÛù@/«?ƒ½ç?`´ +?#ú?FÝt?~ï#?«1?ÕúÇ@ V@.Ùi@ üü?ç×ø?ܸx?Ì0@!“3@E@ ¸@ >Ò?åˆÈ?×hÑ@m¯@1†À@' @#ôL?£ªÑ?ƒ@?m¤‹?QHm?·ok?Â7@².@ÉÈ?Ö¸±?ÝEu?œÈà?©¯¬@Þ@„á?GR(?ƒÈC@.0@I0’@­Å @• ?Ñ+ž@/ã@B0Û@G³I@^o@>Qo?ׇ˜?û±ö@'öÆ@D£u@}e@[/o@é”@¶0@W»@8Y@c‚@;Á5@7å@'%^@L¨Ð@@¯ç@6é@L|@c[è@hÚ@o@8YD@ +Šõ@#Io@3â@;Ês@As@UÌü@aË@"rv?áís?— ?L9P?ð³ü@,@&¥‰@!aÓ@Uƒ^@yI‰@ ³„?É=?Ã$—?Ç4™?l¡j?JR@ e@;T@E@¨x?dÀ->¡R@ y@HsÐ@ Ó„?Ýaš?ß{è?á–@ +û@}A?Ï?“fÆ?ÚËø@!f?®4°?€ Ï?ä]W@Ø%@zm?ÿÈX?±ñM?€y?G }?D:î>žô=‚˜Ä?”ƒ?ò ’@ñ˜@ ?ÞH)?¿Ì?“ \?eǬ?»i4?úÛŸ@m’@+×?úb?¥Õ¥?½d(?ÒèŽ@ ;@6hw@8$.@5£N@¾P?öiå?Ï$ƒ?‰\´?Ýn¶@99,@$r©@ûZ?ëÛ]?“ðS? “?»*Í?¦?%’¿?– @8¡X@ö?Bþà?H’U?uË·?ŒR¢@¸@JÂ?ûÛè@´ +@.@ª5>Ž>eµI?Šu?žG@.ò+@;„‡@Šx?ö’á?›Õ?Ž“‚?¤ÐK?²h?Q™ömž?XC?#_?™R.?ö·?Ê„Á?xjÄ?›Ùå?ìÁ ?Þç?¸©?¦È>âÌ?í³@¤L@ +ùa@w°@Ãf?ɾO?µË ?8 +Ñ?‰?°àÿ?àE‹?ÎlS?ÇzX?೟?ó ’?Áëz?sld?±f‰@HH@º?“14?³Eä@&Ç @!·d>ò‘Ó>òtK>¨œe>–ü?xƒ ?• +ù?–ºù?”0ø?˜ßY?”Ì|?[ÞÎ?#o>ÐðÎ>Œa>8ï=MÅ =¬@&>ë÷ã>ùº,>ÿ‘\?ýò@ eˆ@7?ÏÏÑ?³î€?ç|D?øþ?Ïâ?³šÈ?›@Á?bîþ?‚•'?Ä8{?¿ 9?ƒ3i?‹ùÍ@;¡Ž@AÝ?›J¹?n:O>ƒê=† +>³U?r?ñz@&`o?ù¼³?F”?X2ù?¨u©?°ô?ë&?åQâ?¢Üì?<ô?äG•?ú×,?È„º?¨P0?“ø)?kê?*èÃ<‹òˆ>€?ý?ビ?à…>ÎÆ>¨“D?¥Æµ?ÏW?˜°í?j¼?°/G?ô?`?Уn?d(ÿ?cÏ~?£ É?¥öD< Ç?½°??ç½~?tÃ?m?In?Û=À?®!±?´?ö{?UÆ?/ʺ>ñ ú>è’?kè,?„¢‘?á6ö@$?í€?¦QJ?„ ]<Þý”>3L%@¥@?ôod?<¬Ô?¨?™t¤?· Æ? Õ—?’-X?À +¢@jò@“*?+úÍ?¿š@FC@&ÁÁ?ƒuÂ>ó{;>Žåt>—œ?Q”q?ó ž?ï^@"@]Ì?ÈÇ?ßãœ?N£R>àOÚ??ìF?‰Cz?ŽaÜ?o?Hn?ä·‘?à©?›èX?”Ñ—?ðóº@êA@,w?ð† +?ÈjÅ?š2é?ž|T?ÛÊF?æÛä?¶Ý?²kU?®Åþ?¬‘Œ?FW»?RP?†ïo?Îì?¸ôÅ?NŒÁ?VÅÄ?){ì?!Þµ?„|Ø?‚óg?£>v?­?Rw¯>é?š&&@ äÑ@n«@&.6@¶?:‰?2 .?*£ä?"¢3?Ò–@Ûõ?Ì~‡?§KW?@‚l<&U>œ\¤?i p?Œh@F|?õ(^?•ûÖ?‘î^?`ïr?F±Ž?Ìcê@3š?ª½\?_…3?ªÞ ?Ú%‘?­[g?lH½?„±Å?©“Ù?È>ífU>í²|>î4>îU)?+*¡?” >õ&?,–? +³?tÙ>‘Äð>2ˆ?æ.?99+?*(?(jš?BÊ>ŠÆÍ>™eì>÷Ôÿ>¹ê>”—{?Kc’?S,:?:C?oÊ•?¹ÓÞ?|ØÊ;BOÀ>€Þò?±„>±×æ>…¼>þ+š?ƒ,?ÖŒ?@ÃÕ<Äze;ßù?38£?kêì>+jI>\ã¢>ç}=?ü>1–&>¸ò?„ºß? ú¾>7¢Æ>Å¢z?d½?®si?~½>çÈÕ?ä .@jìk@T› @Œ:ë/`?~¸›?°—%?>\>¼]Y? +]“?7 ?,š?KÔ>ügbúë>õÏ@>É{S>¶h_>8D…?ž‘[?¼¤$?«Ù?¹œÜ?LXÇ>ŽåP>¿úŸ>øk?-\î?hŒ?³b?ñI?¡B^>Óèk?vŠÜ@\‡?Ã._> %[>ú>ßW +>’ů>Ò?T†ô?€$?â/À?Ú#v?{Âz?|/^?y»°?e~? =?#5ç?ÅëL?µÓ|?TMõ?MvÚ?Ë_?P?Æoƒ?Û¿\?°Dq?§P”?GYÃ?6/&?Ť>þA?³&t?½˜@?…x}?„cÇ?¼V?~›]?ŒË¤?‘E?e?~õZ?‡Ïë?‚XW?GàQ?I5š>€{‰>&¦¥> Ô}=ê&?ˆs?!¹a=Ç`+<“‰¨•g´>}ð%>$–Ò>/²?œ1¯?¤sµ?¡y°?ž„?‹Å?Ou?2²ø?$ã€?<2?1–:?‡Øâ?†ò÷=Qfp;õ?¸?'?2*¿?G£?¤û*?šÐù>¦k>dõ~?ÑÏ?ˆò?? Œ­?žâ?7Sb?SIñ@ ì¸@¾œ?¢J¨?¡c'?n\'?‹%È?õƒ~?Ó;§6¹" =²tI>æúr?'Û?ˆ? ×¬>º- >ÙÃ_?0ý“?0†ÿ?0å?J>‹£Î>¹&?œ*?LÃ?¯¦»?wˆi>U“>ò3?s¿ë?á=géô<U†<¿(?z?ŠP6? s ?!µ¾?­-?s’?F?ž+?áZ?º›ï?š*µ? ç7?ªÚþ? +?Š’?©Xk?µ—Š?Æ?‚Lg?¾–?Ê£>–‹ =AB@ C@‰J?åq?Ó ¸?O~?IJÿ?$(•?75M?qé?^)Ø?}M,?ŠrÔ?á…P?Û" ?³ve?›èë>™üW>‘x>ͱ>»&>ŸM>£ù²?uþ‘?2i<—t>Å j?‚þ×?®8]?ïw?¸›S?ey?³?¯PS?áë3@ÐÓ?ëª]?¿KÉ?Š5?=¯§?Hâk?V!.?¹™?à$e?X>?e?MV˜?Nšë?Æ]? gk?4¥?M?ííÿ?ñ5 ? +<?zú?6÷›?>~ð?' ÿ?B#…?°ìñ?•|>t M?ƒÍA?v_?N;?™ø³?õžc?¾s¥?a¬?Ÿ:á?Ýo?Îù¤?¼‡?»Dò?¼±î?q;Á£ÿ>¹[©?U¦?ZcØ?_Ë?G >Â+·?:GÒ?Úþ³?lœ>ZF7?pT‹@fo?È~Ý?„•\?X¿'??•¤?-£ì?®•@ùÆ@G,&?¸ð/?Yèô?¹S’?Ò‡®?±t@?¨“¥?¤Á¸?«éÐ@Ù¼@âZ?Øþ”?Ë{2?×Ì?ÚÄ?ݶ?:Ox?²1ÈÕ > +?:94?aˆ6?€Ž«?…(Ø?œ¨?¢r“?Áë£?Èží?…ˆÁ?‰Ý?¹‘?·¨¼?ǼØ?¿ï?¥W?W?&ï?9"™?¬ð?4+Ð=Åó>?wÇ?„ùÓ?¥¦?½»Ÿ?~o†?=Q·?£8??P¡?eè ?¢I#?²"€?¾Ü¬?¹sT?‡}"?„¢ ?Gò?n("@!¼"@7’?ÒÞ?½q?ÿœ?–åÙ@Aª@õÎ?u‹€?K´?,„?Œž ?H$"?hã?\ŠÕ?„Þ»?¤»’?±Á@=@rc@/s +@.'¥?’¥?Z?™¡'? ÉY?süÞ?…v@²Ø@yí?«}?¾Òp@9©@ýv@/1?@L©?ÆÚK?¹ B?™‡?¢yö?ºÕ9?©V?‰r!?Ix? +TË?´‹?ÍÒÚ?øYþ@ +ñ@®$@ ª@/Y€@<[™?îŸÄ?ÍZ#?†à»?vÈ”?ôVÛ@ê@Cóž@JPò@$§ý@,A@gƒ@]*ö?õÓg@9@>û·@5œÃ@³q?ÞM?Ù?O¿?ÅÊ?ò€®@l@ ?ð"?º)?o?™?›·?Åg,?ñ*@ ÒÌ@ŒÔ?þZö@¶@(@/$Ã@4ár@+†"@(Þ?ΫÜ?›#ÿ@(Ò×@>"@ Öj@KÓ?À%“?¤P @DÄÊ@W·¯?žiÅ?…‰T@Ž)Ô@Ç@>ˆü@;Ê.@P +@GÆŸ@*&@í£?¢Wx?¨i?î;@Þ›@˜RÛ@~ÂE>Žžm?oÏ’@T¢ @K¼T@3{@%±?ݳ9?Öin?Ö@X@@!Z@#•…?ÍBú?²_¶?‡Õû@=Ô@`‰ý@9öW@ñ2@¶@ Ñý@Mêo@‰_m@dêÊ@9ê @=F@@8µ@ P?úúä@ Óe@&×@N3Þ@rã@Œ¸*@<î@‰é@w.@*Œ[?çÐò@È´@’L@ E@!bù@c@9@V%‰@|™å?♼? Ô(?ßâ?Ж?ÊþO@ b?ǽç?ŸðÎ?i ž?1p1@#Šd@`äÜ@$‚@J@ Ý£@F!@Px?ì;!?ˆTþ­n?c×@?[?ô¸-@#Öñ?Öa:?LQÆ?‘¦?À~U@Œa@Fã…@\eR@€"½@9¥Ñ?¯·Z@–@<¤µ@ šU?…¯—?‹<æ?Šõ+?¾®á@ ›?÷è?®j?§Nˆ?–=Q?±xA@·µ@ ñ?å­?ÓÇ”?žÿÏ?¬wz?ïÝ?àQŠ?{ªW?„ßË?øªa@p.?ÔAv?Ϩ'?ÃÊ?ÁYU?ò` ?ùÞ—?ŒX?…„F?ßä?é8^?ºÌ—?®ˆã?Ä?ÄÄ`?Ÿ”l?Ž¹k?íùH@¡ð?ÉÙ…?Û?‰ç©?et¹?¡µ2?Ðr±?º4D?ž??và?ÊS?° ?)X*?6ê9?xz°?Šÿ?º7¹?¼ŽÌ?ͺ®?Ø‘?÷åä?ôð8?™×C?•{?¤1§?¢}µ?¶ôJ?¹kÌ?…n?}Åg@bv@9"ó@Ö?ó¦â? ¤Ç?S›p?˜ƒ?ÂÈ?߶h@@Kë@1ø@G@<â?ú9ä? z¼?d~@ ïÌ@÷ÿ@UŠ@2R?®ë?¯‰o?´iK?¹J0?y_?Dç—?«·?ʯH?’Ù?Qƒ?•±8?Í`z?®àM?spä?Œœ?·0J?¬¨³?s§?„94?Õjœ?Ü܉?Äü?¼CU?V29?CéS?h°?r ä?tRá?~œÂ?¡g?Àã?§®?¿Ž-?¿Äñ?´âQ?•¨/>ðïñ>ÏýÐ;é6ž<¸ ¡>ð‚:>ð_Ú?¹ÝÚ?Ì,A@]@ó*@)ý\@3É€@ ‰@ ŸÓ?çëh?³tb?¢œ¨?o?`r”>ùU>Ó¼ÿ?ž·…?¤¹?„Òj?uÌä?ÍÏs?á4Ô?0܈=‹®¢?5X@"Ã@ ?ž2¢?¨ß¹?Ü;0?Ñ¥?·:Ø?Âj¬?Ð"ô?Å+@˜@ ·w?²= ?[‘y?ecã?kð?†jú?¨¬?œO¢?†³Ç?ŒrÇ<?Ôv?§Së?Ï¿¹@îî@ Ký@Xî?…Fc?€vÔ?z–~?aÈŸ>í >è–?‡&¯?ž”@?á%R@³?¿ë? ,Y?iU1@ +ÀG?ùó¦?:‘'?T¿?ˆr>çƒK?O°k?„}b?Ž¯?ŽT?žœ +?ÑB·?Û“›?ÇÜ??Á3?´0E?°vB?­q¯?¨9?×÷·?òyi?·Ä?rB?›Áœ?ý‹@#v>jäá>Eh? „?¾ha?ˆË?wVí@·Ð?øÈŠ?nÒ¤?x®™? l?&4â?­sÌ?Àj=@”ò@,vò@ð$?ÂÕ?«Ì?¿1?"ÿ +?Ôì#?ÜE^?å…¹?ä–ö?´¬?šÇ7?ƒ/ +?f6=?? ">æN?„S?4Ì?‰eÈ?«ðH?¬ø +?¬ÿþ?­y?0j?f™C?p°L?Šà[?¶©@ 8h@Û2?g?g¤+?g½l?gà`?®ÔŽ?¼W?ˆÞ²?]„?fdI?cU\?{F¡?¥(?œÚX?”åy?©e?_‰‘?pãÒ?½ôd?¿È?ˆ‹ ?jÙÝ>Ûω=øt=3" >=˜œ>„;s>nZÈ? ¸u?¦h?šX>„¸ù>¢×–?;”?(¼T?×Á‹?èñî?º£?ªA\?t%4?S¿—?.¹ ?ÿA?J{9?cYÓ?"Zì>É¢G?Œ'Ä?ìËù?šl¯>ôŒq?8?Çv?ƒüè>öuÊ?,°m?wvÝ?Y˜?"t>Α¶=„m€<¹'/7Ï>Ÿ!?e é>óåè>dê?ìL?û?6;w>¢’?+«Áë>eR¢>®-ž>›ðÇ>„-µ>K4R>D?„àÌ?_ƒŽ? ¾?LF>Ô] >»A>¡ß?i–¬?ˆ:+>ÀÈ>®c@s @Ž0d@”ž[@{¢¶?TRÏ?™Ëm?/Hf>’Ô¹>»4^>ò«Í>”˜ >½>¸šn>™ßR>Ó@'>á°Ö>ð®>ý{>>õqå>õ­A>õéð>ö*?ig˜?f+?·µ?Ö‘(?%}>D_>õ{e?1“š?79Ž?&ïú>ž d<ó´‰>zþª? l»?p8&?§É?eñ`>Æ%ø>Ô’O>œ×a?á?11?P·8>Î3->ÄŠ˜>û( ?#¢?{tO?xã?p??„Q?¼è?¥¬=i>0¯?š  ?›Ô‘?'X?*x >ØK›>îRÂ<-æ÷?æl?ék?®l?°ÃÔ>ßØå>áE…?„wb?€÷4= ¸Ô=¬<ü> °>;ÞF?rýO?~Í¿>À#R>Ã-‰?”®?žDÌ>­¥°>“ÝÙ?T'¯?RZ'>É>;>ÅÐ¥?Éé³?Ðnä?1ÿY? Ì?³æL?´“¸?ƒK‰?€=‰<«?)TM?(ª@ä;@>O@C?ü•‘>´× > Ì-?)ÐD?8À2?Íå?ÌøÞ?·ÁÀ?ºQô>õÓ?×w?|e†?sˆu?Å:?‰c?þ?Œò‹>±w%>·?h€é?ë?™Õ?³£×?Kû?UgŒ?­E?…L(??‹”?7ù?<¡H?"è©>ñ’Å>ýœq>ý._?oí?t®8?•½Ú?ö&m?ÅñÉ?o,?v¤?{°>µ_Þ>zgè?2ç‚?T>¢V?rL?¬m?ww?hÓ~?Q—?!¼?zzÜ?½òÿ?K„?™¥@±?ÞkK?™PØ?‘?*?‰0ø?_>E0k?W?0? ê?ŽUä?uÎ?HÇ÷?"Ñë?,¾Ì?£Ð?cÔw?‚CÖ?s‚`?s’I@po@ ¿?S>üÌÎ?"ŒÝ?¹Y >¯cæ?œ?—Ƥ>u Ï>³—´?¬¾L?·ÿù?Ô¡‰?Ä?8\Û?'ìF>c~>¼³‹?s‹Î?;dR=Àé÷=]9aŸá?:*\?ù¢@"@9UX?ìÝò?#¥Ä?‹À½?ĵ–?i†‘>ÒžJ>£Â>z«?ç_?Kì ?d^ó?d©?<?9-¶?+Þ›? FÐ?ü¦@ Ì?¢R8?ˆO@SîÜ@d5:>З>02+?wJ?rµÉ?mÙj?^Ÿè?­É? Ç??0­"?1ÞÊ?'?¤F?D7}?YÉÇ?wPK?Þæ@Hëõ@Ïm?¢#?~:Ô?=¬?x£ï?—E?i³?*Ô“?•Í7?ÄÒ?¾©=œ $? ×#?>g?{Žw?„2ê@+6]@7„‰?éZ]?ؽÔ@Lï@žö?„Rq?}Ñä>ó£«>æX?d.? œ2?fP?¹?÷ÓÆ?¬s(>;$s?G–ã?ìóE?Âß?„‡?GÓ? ›?«ßZ?ó¾@)¡@/Ï@\—@%ØV?§‹t?_;?€ró?„»[?w-š?~î?†&ç?ÀÐ@Ô´@ -?Îy?µt¢?Ùê? Él?ü?`?B?0&?1“?6ÝÈ>ϵZèl?@¯?JžÃ?¤B?¨›?ïÕ×?ëŸÎ?Ç¿4?³h?KÈÕ?Bóñ?:!¨?jv¥?­>´?¾+?Ì&a?‰}]?&y?±&·@Ê\?°1P?xA?ì+~@ zC?ÍŠ?µÐi?MÈé?1ˆq?÷J~@õ?Š—=?„j"?GÒ>?yà4@G‘@4éÜ?“á*?p*½?³? ÷?j[?½U@$ºè?Õ¬â>g:Ž?¦¡@#EÖ@%Œ@"“Û?ÍÖ?„áÌ?Ššb?LÔ?fú²?]{¹?쇩@ Íž?fáZ?3 +?7ë?<7=>—9>©âþ?éC?ݽD?Q°[?‹g^@ J@x@ „>@ z÷?© ?Ãì«?óî?¸Ä¡?*. ?ºTî@ ¤<@=@zk?˜ ¹? D?Äê@[œ@ø,@ Í?àå?ÓkN?Ü h?ØZõ?œ)¥? Ý??ÛÚ?C¦Ä?åèƒ?óDr?ÕS)?ØD~@Dó‹@Cþñ@iG@Cn@À”@ +ä@í£@È?%¶,?e:n?Ç“?Æë?Ì ö?Íó8?ͧ?Æ6ß?¹ÄL@*æË@x&²@][±@GÛð@%É>@ÀR@ö?öo7?ÓS?ŬR?à7!?ê>ì@…û@Ë@~#@&@-Ä@ÍA@![Þ@#ç?Ù°’?Ë°è?ÒÒ~?Í%@!SA@%6@>8% ?’N@«ÔŒ@¥ñ¯@s@Z‡?E?hd?Äi?Û½º@(>@C?Ñ(?õ×:@Cµ @0›?ïòQ@Ÿ¼@7ùo@ è(?ÞéÙ?Á`=?‚8'?©†?ïºû?ãPv?É&ú?Æö8?ÄȦ?üG @!»@9‹@ã”@5UÐ@n}q@I*Œ@"/Ï@ÿÊ@ ›Z?ë¡ ?Éì@@Šx@¿ù@5–[@RÉ6@D¡B@=G¹@F +¾@JÒi@']@Ãö@NuY@zìV@>Úr@Ã?ü‚Ã?ÔxÎ?©?Šóá?d8?|¾$@o%š@ g@þ?—S?Í]¬?â{”?ŸW†?€—Â?’9â?¨K@=FÉ@hKÿ@L>–@@Î@"ã¿@«ù?˦G?— ×?ß H@wÖ@= ë@\Ô @GNÍ@;a@ 2?Õuù?öÇ@èT?ÖE?¿Ÿß?,žT>{MÌ?TJ½?˜Ë?™bÊ?£H @³@·G?©t>þ±H?³î7@zM?þ„L?ùÇ(?¤®?1CÁ?C¤-?Q˜(@àó@‚O+@I³6?ý·?½cj?H£?·Î·@ëº@*X6@:“æ@¥‚?·®P@7X@R²Q@<³{@êÈ@´@ )@B¯?–$í?«ç“?öë?éH©?œƒ?­ÊF@ @ +óÂ?§ãT?$?»Ù?(2“@ *¡@‰1?ôô?õó{?Šý?~ü/? U?x‰?±Óù?ă1@ DØ@Dà@Z@v?öøÕ?ãš¡?¶~P?ªM¶?åB¡?÷fÛ?ÏÛ¾?»›@;@äÄ@g ?×b]?Åwš? é®?¿mþ@…?Ú>I?Ì6?]ÀX?·Ò? âŒ?‚¨Š?†!?’–a?”n?< ð?Es¾@c%@€í@”?ýBà?ªµ¶?•Ž?ìµl@œ@¸|@Ti@ßi?öxð?ïÙ1?ì|@m @1)=@\?ö˜?­¿ç>;Î>£ˆs>õtÈ?h/^@OYB@GŸ/?á«À?ßè?wÐ?t¹?)Â>ý‰;?¼ª?ÛÝ?ÞE?à®@ n!@Âa?•áÝ>ôÁ>ÿèD?|é?M-/>øS`?:Eb?°²¼?¶zO?è(•?à¯2?WãU?g[?(Ÿa?'þ? +?™€?+· >ñ×@>˜^W>,uD?'W?Z²y?u—¼?ž¶.?…å>ÙK>åi·>ð—º>òù?g¸E?bN?®¨J?´#“?ØjY?èú…?ðå¯?øÎn@b@Xf?èÓ?³w±?¨sê?Œ5? ˜@ o@ˆ?X©(?=%€?×€¼?ëNÙ?Á–s?¶-h? ›Å?²@:?ÿÎâ?² +í?»Œê?å—{?â´H?.Ú?(K@m¢@'× ?øÊ?ÞÙ3?‡ª’?GŒ?@H?t%Ì?ˆ>ü?°Ì•?¯¥#?§ Q?¤®®?Í?Ç»¡?‚‹?júE?™½ü?°C¤?òŒc@˜^?ë ?Gªe?H|Å?<¿ ?G'>éð>éÖÜ?Î4©?àO-@Ýg@ Nß?Çõö?†½Þ?kk;?lâ?0+:?«Œ ?±¯t?„Íâ?t3?®?°mî?«|á?®1±?ݼ&@žk@•6?´Wõ?¸BÉ?š¨½?”4Þ?P/ä?A!">¬YÅ>M8=?Rç?­l}?”­,??ø=?p–´@]h@Q“?ã(´?ä;@ J=@ às?Ââ–?‘E@?g‰{>æy?‚fÕ@HX@=k#>æD¶>æDH?ètÒ@ôÀ?ˆs +>Æ^B?¨†:@+J@ =2>ò«)? +g€?˜å?ê$?EÝè?F²Ç?†ß“?¨²ª?”™?K‚?T0¶?ÕG?x4"?WÅ?^gà?Û»?æ?¼NŠ?¬›ù?¤Ò)?›$ê?œŸ?šüé?‹zÔ?v@œ?‚Ó1?›¶q?Ÿª¶?²€F?²œY?÷Ƴ@ŠX@ÒI@ôG?èÑÛ?¾qT?ÎÜ»@ ©@Œ?rK§?gãµ?ÐùéE?d‘w?«óG?‰à? šC?Riÿ?®ú?Ÿñ?1®ã?);¨?Æ}¯?Øòï?„Š]?YOA?˜a§?°TV?Œ!ˆ?Nj?ÝJ¸>€M©?C{ö?q?Ç?t–?ƒÒþ?‚‡S?‰Š?°ÚW?Àì ?:4t<Î=`>¶S¢?K‘ ?Š>>þ?t ?w?fÙ²?V¹Y?.´í>àœ>õ¢ˆ>ð¹¡>üg¨??&Ú[?ax>…Á¨=»Þß>Ì”={ +?2—9?f?™þ?‘Hg?ûQ?ég>Ž¯U>§>¼>”£9>º2Q?}‡¥?YüB?×h?Iï?¿C>™äB>oz?<~?Xð=.¶]>jÑV=Ù"L@ @}Ô)@b™š@%½S7‹Ç? +–?ïÎh@Q&?¢@Â?Aºâ?7%>ò| ?Ì?1–ã?9c9?‰u&?ašv9Â;€=ÉÊ?¬0n?¥OL?žk?—‰Ê? ¤?’Ï€?G +×?8­? ¢>÷m>¾V>Š›a?L¯?šåî?R±>ø®;>øÞ8>ùÍ>­EÑ>nç>3÷l=w§:><¢þ>´Ý6?6P?6£?®û ?÷*?cÚ?Tè>û¹?H?}à»?pÀ>Þ:œ?ج?àNf?ÐH›?Se!??B="ß?1&?!Ú+?§ž?¨íÍ?;Bç?H–h>vÑ…>'®¥?ð@n?ûËŠ?¼>è_?X^1?Nå?w?#ô+>±Pé>œ¦Õ?1N/?=Xó?4šy? "O?kÆ?‚3ó>åež>«y1?úîÏ@ –à?ý#¼?ýþ²=ý€=¿Ä?v"?€!ó>ÙÇ>¿¤Þ?¨\G?ª%'2”>3¨?ñ¶»?óªª?€Ÿ?{‚j=H~i<ÑØ=(¡œ>jÞ?pL?yÝ?äûJ?Öc\?Ym¨?Cë‚>Pý>È'k?áNø?Ï°‚?€>ÝF>2ï{?“._?©‡Ã?îÃÝ?Äó=Üì>­ñZ?¿`?¬}û?\?†Ò ?šÏå?“T?^IG?>…G?~¹?!#Ÿ?SÍ?Z^!?†ÚÈ?/–÷>¬Ž°?]ßx?9Àè?»è?m"?ºÝŒ?‚+ñ?Òˆ? “¹?÷{Ú?¿IA?›]ô?ïÖ@7?ë{µ?Ãd?Â?!sY?†îþ?¥ò?l† +?22;>¬ªÜ>CQ?µvë?ñ[©?Ã?hï&?^Žè?F¦ã?dW×?w˜`>ÁÀ<}—€?c*?v{?qP%?l#?²ÇÖ?°âj>"jÖ>[Ã÷?‚›t>ÒEt?‚½Y?[ªV>â >Ëm›?ŸZ„?…‡X?6[?V\9?¼3?ÁÚ?ÁD‡?ØpI@ù?Ý‚?¯¯†?˜M‰?eÐd?œTJ?Ä·ˆ?Ë/Y?ÄÊ«?¸Sè?«ãA?(Ä>í#?9D?wKî?$Í…>éäÈ?JA¯?i³î?`ï?ƒs÷?°ãN?»Öœ?ûØ¿@øù?VÌ>ÿê'?½µ>?²ÚŽ?Î?*³?dom?_˜À?ZÆô?N¯Š?:-W?‰JÑ?ëÊ?Ì×N?¨À@ +vÇ@cx1@A!ê@hš@ ²?ñ·2?î7Ô?ôkM@¯¹@*Š?t'f<…»?´c’?õn9>ù¯\=—ß@£W@)ÚS?ºf?³öÃ@ö›@{&@oå?þ¬B>övà?(a?àNx?Å$Æ?8LÇ?€è¼@m•@Ë(@NýÏ@"Íÿ?œMM?5Ö? 9O?ŽÛô?¨g?ÂKó@2@"Kä@ÜU@ +rœ@ žÜ@ Ì?ËÎÕ?²3.?Om?7¶F?Ð:?Ó~à?…`?‰Çt?Ç3?˾!@×ê?íAù?-E|?‡@GI@Ñ»?¦),?Þz•@¦?ÖÛÎ?f?¼u?qÊ?h|ä?›@?M®[?H@+ï@P @ú™@¼‚?t{5?8/Ò? Åþ?m?F=?IØ@þ@¡?iÔ½?Zo?.{ø?i5?éÖ[?Á*??uç?ÎðA?q‘‡<°©…?¢ÛA@&qÀ?å—õ?˜Œs@ @1èŠ?õ£ž?Ç¿Þ?ÇÂ?Ç»?|&?fAi>Á­#>—Ê?Æá? u¹?¨‰N?§Ëì?’)È?žÒ¬?ÇÁx?¾ež?£Ôs?¶6#?ÕMŽ?å½>[<_?}ý@ʪ?äÿx?ÆC‚?Çßž?Ì ?ë¶ï?ø»8?–aÃ?nP­?‹•?–¤?o{?^`<@+Ç@7>G™?l»?úЛ?åxT?Ê™p?£œ˜?‰Kã>黃=¹…„?‡Ú[?½+—?‰0Á?lÄß?·³ ?Ç8*?¢…?˜øk?”£”?=þ?Ng9?U?~?Ç?ºëÊ?<ú™?mNY?ñv½?ã>ˆ?«©C?±Ù?~?Ì?xYa?„?¾Ô’@Ñr?—å4=¸D‰?õÍW@dLJ@ëã?¹b¯hê>‡*Ë?Ÿ]±?¤Ù@p|@Aë?Ùö@‰ @¸Î@iöÂ?·nª?Ò’ã@Cú@ +ø7?ûÏ@¨@Ï{?ï=Ý?Å¥Þ@FEp@¦Ê·@jòƒ?ûéÿ?ï‚ ?ñez@[7@!wý@êt?Ýt7?ï´î?óOù@}ß@$â@[È@ûY@ Ý’@(™¿@%l%@&‘…@"%â@$ëš@X@ie@9Ÿ?þ¹Ù@9în@?α?jÂ?Œ,@Çœ@£@t˜ó@o#@ëV@l1?£~P?¬ ?ðÉ«@•Ò@+Í@#ˆ!@¹@+:É@s¡¼@d $@C |@5·0@?°@p?¨†C?žBr?‘U?…{R?o4?¸š@b@oÜ@ 8?ç…?Ç÷¢?­O²?v@àÞ@HDþ@BKU@:ù ?ì¼C?w9?ß•Ø@· @$¸­@4D@QZ@b‹e@.¢ê@ !"@'…Ë@9id?õ«3?¨$õ@T’@K`Ù@h@ñ@.@DÕÖ@Yý@bÎÙ?ëªË?€æ³?Æ1®?ö?õŸV?ë¬R?Ön?ÐÏy>Ãò@B}Õ@ANy?’òR?‹ÛL?é.í?÷G?¿˜?«Ýµ?Wt?"?äèS@MÜ@š‡?òË?Öý¤?Â-W?Ó²˜?õW8@¾¨@FZ@7Åa@Ó+@ ¹-?•õ?£¹?¡˜?¦¯?èæl?á-?‡Bv?j9é?|jt?†µ?›b–?£Ù-@€¦@PY?þ’Æ?aVH?Ž{—?²}Ë?‹FÀ>ó…o?pSu@ß@ @I?ò×Õ?ëûÌ?R§â?Mj/>JU;>=c’?FŒÂ?lKw?Ù{>ñß>ñÀ¨>ñ©?¬5 @Å%?ÍÕ»?Oî?Nþ=¥"€>ðÅ;?>Q@E@ 7ë@#<“@!$g?©K?‰ÿ­?Âx?ºÂ@?Ê_?Ë~ +?Ë4?ÓÐB?Z>ê_ð>ÏÝk>,MÊ> +£ý>üí˜>ð¿I?Òon?é®)?ÊÜ;?»'?KœX=þºÖ? ¼?µ0?—¤p?,ß?3 ½?¡3O?ª¯%@¹@œ;?Í6¢?ž}?¬â?±…†?žÏ4?oÇß?…D?Ýsã?Ú-?ljp?¿£ä?‹Ž>{mN?WuÆ?­nq?¥æ^?›µ?¯‘„@¨=@î$?¹ `?°“R?*ZL?Yz?MÎ]?f‘Ð?}S¡?‰§À?©m@œ:@'J›?ˆŒ¸?|sM?óë¾@ ¸V@ ±j@ U¹@ èû@ Ñ»?ã…R>æx>ø—ß?|fë?¿ä?‡@Ò?€©*?OF|?*= ?0c¡?ZEÌ?ŒfL?ºME?§ü{>æÍ>æ w?¤ï>?°0°?®-Ô?¬ð?¬ª@?¬®x?µh9?Æü?©í!>‡—”>˜ {?&|6?6D?ãîç?ó×{@â±@W@D?ñ\?ÞìM?­}ÿ?µ›…?÷d@°Ñ?éQ?‡qü?°V?)²ü?P[±?\­?žƒR?£p?/âA?8¦d?ƒƒ`?¹¦?S %?!nO?‰¾b?°|ª?­Úi?§ûÙ?ÇO(?ñœ?ª•Ü>XÈ;>ë§?¿u?Éϵ?Î>´?Å-Ã?q€?oÿ?'?PÒ>Öõ>©™É?}?ÿ?™yŸ?3§r>òH>;×Ø?–?Õ@<?±Ù>àtb?QÈ?™Ž…?ÛH>bW‹?m?"úè?Xý>Ðù†=Î _>cw¡>úýÆ?]Yž?î?C9õ>ÖÅ}>õtd>Ë>¯ø>ÇÔ<>@7<¢÷<±Ð =ßÙh?nSž?•*•?gf?ý½>d³G>ƒv?h L?T©>û™?È?ðl>šh1>¬?? a(>¦é³>¬Dë=mv>²WM>\Ýõ?Ïå @&«ð@Ad¤@ ðL<‰Û?åµ?­ ?¼Ä0?i" ?){ž>Ò=P>|’Ñ?]âñ?Ç ?¢å?<Á>¥–`;”l™;Õ`Y=Xú?08?!vˆ?/¸†?=ù®>±½°>¾hÖ>y2ó>vµì?”K?+™Í?C‚’?U¢€>Ú^”>"ã?>®i>ø›§>øÍ¥>ùÞ?ŒŸš?иå?—Ûª?5Á ?(J)?Õy>µä–>pŽ–?Gý«?3dÃ?–m?½?or?š”?QK>åà=wu>“j?˹d?Õzt?ý@ ?àŽ:>+@>’@š?L×?[:?"?/‹ˆ?UØ>Û½m? vQ?¨ˆN>ïÄ_>ÿ¶?y±?sm?µ™ø?²ß~? ÅS?š7Œ?Tö'?M|_?æø>ÿ4?Ÿí?¥n?6e>óÁ6?ªd?±§µ>XÖ=þ×?±2 ?¼[À?{>ïŠë?í°R?ëÈØ?Ó?9%?¾Á ?ÀK‘?NÊ?-sÍ@ºÕ?ôÐâ>V1E>>|>­å>È0h?²È?²Œ|?oo¿?u÷Ç?€±ˆ?€*¢?v|?ƒ€Ð@ê@ ?ÏÄ$?Ï-Ò?­À?¤È”?fI«?Xï‰?€Mc?w7D?F>Ö¸ +=V¡³>w®>°ñÒ?nô3?b¹7?Æ/?(õ?‚Õs?„P ?`Q?e?lÓ?rÌ?wÄ?tÔ??SL?Y#Æ?wª)?‰?x…Š?$7>A»6>ù×?'$?³1?À-?,Lõ?dwÃ?;îØ?€Û?§ÙË@àø?uGþ> Ä?Q¾È?«±q?¼šÝ?Ãñ?|?3eª?]˜À?z7½?™ o?¥„A?„´_â>Áfú?‚ž†?”ÄS@º@»ß>í:?ÇM?‚Àf?i½?˹?V‹Ö?éŸ?Ñpø?Œ À?g8ï? D?fÙ’?ÄgÐ?ßÛ–@?ÉãË?ƒe?¬ >€ÚØ?D¤Ó?˜GH?ÏV¦?ù×?æÛ ?à¨Å?‹·Ò?1|?"4)?Sñ?·im?Ø©E?rÙ#?>“?f[3?sk?(Ìg?Êj? ÿ¹?#š?¥ó? +p?‹+"?‘+€?¬‘?±}©?ä¸Á?én@]ý?äз?Šª?·\;@º@ 1?Û^?ˆO?£Ò¡? È_?ìRŠ?õ_N?àS‡?ÞÀ?Ž4l?Œ¯ë?Ï‚K?ÎŒ?žŽR?«JF?Ýë§@ @N â@0œy?ðÃ??˜èï>2ã÷?ÆÿÅ@Er_?ÙŒ? ë?Àå¹@ýI@,)?@;œ?ÙCæ?¤°v?š¿¬?™W2?yF?¾?Ë&Ž?Þ_?ªòÛ?¥ ‚?äÖ?Ø/²?„Ô#?”  ?Ö±;?ÓÁþ?éþü?¥ÁG? ìÊ?À¢š?bÅV= €Î>‡*?÷?Ðo@yÍ?š‚ö?Ü@Oí@O§ž@ ›·?ñx@ +©ç@W?¿JÁ?°¯÷?†j?†Ì?©«/?¦Rå?vˆø?‚uÛ?…6?‰m‡?•šØ?‹ ¿?rDm?¥Ë5?ó¸¶?§/b>þ$?Gè·?ŠGß?‰x²?…+L?À ›?祕?ø‚ÿ?ûCø?¬šP?˜¶ ?ÁÞ(?Âm/?cÊ?Qˆ›?G†?Gp?¤¶ì?š¯?;bW?_(¼?ÇÄž?«*Â?)µ‡?´@-?çÌ”?´Üõ?¹AA?½¨z?O‹?uª?’Ý@Bg@ ý@$Kô@ÂÌ?ΪV?§B?Š³c@ð9@ -ð?ÞµÐ?¿ÇA?® Ï?ª•?ÑîK?áòØ?žÜ?Žî~?:ƒ?+¾?„Öo?æ«?ì‡?îkÚ?á¦1?îL4@8#;@&—û?¿J?íŠv@QÂi@,˜?Š'´?³ì @Ó??îºz?Å©¤@ªI@V´ü@g´@q#@X4A@?êô@D”ê@HÐV@L1r@KUÿ@=FÓ@7!É@Gº*@T_X@KŸé@HÓ«?ê8¯?´Ú¬?®Ô+?°^9?™­$?“m,?ÜÎ?›6?æ>å?ãj8?Å2?Çt@¢÷@ *º@€|U@uS@@ œ?ÏùÀ?åèD@,@&]*@5x@)ñº@l¹—@[|@' ©@>$œ@‚±Ÿ@sn@C¤@:æ=@%ÛÃ@å?ñ9;?ÔšÛ?¥c?Ž]?C7¤?̈]@6C@0(@#¯J@"]ñ@ 4å?Ãÿq?ò?•?ã#j@ è@)»!@,³Í@(ú`@¸d@:Î@&™~@/â¬@A®Ë@QÕ@7……@%ÓÃ@LNw@bYZ@$Š·@C@Øc@ã*@€ñ@ Õ@>Ûl@^x•@ow„@{Ôj?Îq×?Ø@ .Î@7¨ +@$@™˜@ü–?òXÝ@!-@-—<@$Bd@#û@gÃ@Èç?»ãR? ý\?fng?7rµ@…@R?¼{?%Û/@z'@GZº@m?ʾ@+{@@QtD@-ô@¸@I…@ZÙæ?ì»"?‡6_?²rÐ?ËN­?ÄXý?¿HY@‹´@Ù”?ñ×\?̤Ô?ÍBò?È€Ì?ÑôÐ?Ü•@_@8T@!…Ó@VS@f„@u?ð¢š?²G±@$“Ø@yÊ @F±‚@bô?Ê¿?…ãW?Ó=3@/R@’…?ÈÐ?°{Š?|¿u?|©|?|Ž†?š&ï?ÜMÌ?ÔÈ!?ÙtE?Û E?ÝÐ?Û0]?ÈxÄ?ÓN-?ûµÒ?÷Ü€?ÚQØ?ít @iF6@jÙ@Á +@Î@T“i@Z›?’ƒ0?[^?â‹c?én÷?÷^l?úa²?•øQ?z1Ì?ëöj@ë¡?Ò ¬?»_×?¹Ä?»ôÐ?À„ý?Å°?ý1A@$µ@ ¡‡@2lŽ@%å‚@,@ x?éá(?Æ’â?m§p?wr´?„ +’?¦ @ vv@›£?ÐÌÈ?Óò@?·'z?­ÿÅ@/¡[@1ó¹?xÊD?J«|?¬Æ¿?½*Õ?Áå+?Ƥ­?^"?PJ@T@Rià@\Á@iúg@G®5@*?èMú?x)Ž?—GU?ÌÛ?ý¦,@8 @%G?šs²?›[›?;Ë?Ç«@?Ÿ¢ ?©|?µK ?ºWD>ñ¤\>“îÃ?„ž ? =|?£ °?¨èj?gkò? Ø?9¡?s‚²?¥ì§?ðeW@¶Þ@3P­@ J?¬%?•ûš?¥Äÿ?£º?# ú?©œ>‚ÔÌ>h.?jȺ?‹;¡?-Wf>ñ®j?¢î8@¹–@ n‡@ ?ï?É!ú=(Jç=Ø$õ>ðÉ°?á?‡^†?C?c›6?z¿?ŸI^?¡­Ö@^ò@'?Ú=?–d? _¥?ªxñ?g¯?G>ò?‚ØÕ?ÿ5^@Áß?ÓÂ"?ÛãN@@mÊ@N#Æ?µC?výž?½b™?Ùè„?ÍY×?¾ÿ?½¬L?Ã'—?¾b ?ÆØ6?Ï5Z?Ò @?ÔÖÞ?wÂu?l©å?m>ìn¤@!"·@qÒd@(R†?®ÕA?žè!?|´?Œh?°¨ý?²ó@Š@iq?_Ån?EHë?‚0¥?˜½ì?áò@W·?³²>êcS?;ƒ?~‘†?w Ó?a®Ë?g”œ?oò?{À?|Ò?~[m?VÀ?'Ú?-}~?bú–?‹Jü?¯¥Ï?¢šÆ? (?l+?J«–?Má?t^>ÊÓ?¢Dl@u7@1g@ þõ@Iñ?çÈj?ç´„@Œ¬@öð?ÛÒâ?´‡ñ?»Ñ?ÅÈ?ʸ6?Ë:w?»‚Á?¸,:?´à^@ áÇ@>?ìø×?×Ó{?ñk ?ý(Ø?çÌP?Ô®?Г?Í¿?ÆËQ?™ô„?¤Kj?ºc?¯U"?Á€)?Õûø?4@>æî?Tã?ÖÙ~?¼PŒ>B•(>{¦'?ž\â?¬~Ä?¬|a?¬|B?né >ñ>U?Eqß?ÌnÆ?¾ºì>æ +->æ +æ?¦h1?¬’¦?¬™À?¬ 4?¬ªB?¬° ?¹¡±?Êý“?¨Âo>´¨ä>‘Ÿ@%&Î@FÂl?¬Æá?}‰>ëض>¶â?vD?úO??ÙõÂ?*Æá?2ûT?–âÝ?›·¼?.#@?"f?OÎ?°T@ì@!X?í¿/?i$Ô?H‘Ž>²}>ÕÀ)>éßË>ê‹?€¦p?jS?Ϥ¢?êïë?œäØ?nŒ0??Ãá?»S?L¬h?‰Š?jV>tÌs>±âc?m”*?„âq@¥Ð@ bý?uOA?o8H?¤ð±? ]a?æÎ>ð—X? ™?/V¿?4í?#Ò}? %Ö>·äŒ>ºÓˆª™>ôĘ?Ey?Œü?;g>‡þ«>f—™><Û ?u ?xÍ?˜÷×?»uk?J`ú=Sd?B±ê?½8Z?ƒéI? »‹?#µº?PN…>Òù:=¾]ÿ>¨€§>ýùk>ôûø>Þ—?hºÄ?‚Jb?RæüäÙ>Ñ]ˆ>¨Ú>dø[?£>g‰b>ª^Ü? Ÿý>{bÅ>«ó=Ðë9=!€¢@"ê@D™b@-¨Ó?ÖÛf;R¨Ð=¸-ó?åì3?ùr@ KM@ •©?__Ö>e»_>û÷R?G{Í?­]I@ Š§?Á½"=o-R>U„>ñ">ëh#>õ(?bs?7ð?–Zë>­O6>–ø>ˆJ2>tíÀ?UÚå?w<Ý?PÏ>÷¯?Rm5?x©?!i°>ìG’>÷¬‘>øñ7>µ©n>¦v,???Q?Jl?z -?N¡]>þ +¤>¼4>H~N>òÌŽ?—ˆÈ?ŒÚ‡?LÜ?]£?qˆh?]Ïí>ûýu?'Î?¥U‚?˜øÈ?ŒÎt?ŽäŽ?“¬/?ÉÙ>]c5>_…¨=PÛ©?ò-?ç®?Íi?Ì|;=œë—=d=£½O=‘ìÂ?øÐÕ?ïí?#Ù‡?3™A?¿|?¾´n??~¨>ÿÀ·>ÿ:?Cß?Jܳ?¨«?«wÄ?^UÃ?cËÒ?jO?p-â?©š?èE?û˜×?ô â@Tüf@OQù?}s>þ_>ê>ß? o?cl?9«?þу@ £?F?‚)§>%S\>;«¿?€˜‚?zÅ?EH?Eý?€¶k?vnâ?~/?8>?F¦å?p¹e?ÁSÝ?µA6?R„Í?uñz?Á{Ç?¸;;?˜6?XQ3>—!>•IÐ>(—?>Ô Œ?¯JG?¢I?>¾?\ =?úH?ÝaW?Xo?=¸¿=æ®<> IÂ>M2!>½ÁÇ?&U?ƒñ?Ó X?ß½r?ðàl?ɬ±?¤À)?‡ 7?2 6?@ò”?^ Î?%ô‹>Ω|>¼&”>xF›?”ê?znÞ?¦Ê?Åðj?˜ï?aÓ“?s/@?üé?Œ¾¢?•U=?;àæ?}?jÀV?‡"¥?‚(‹?‚) ?l8Ë?t#>ö¬ù>·üå>ø·?L½?¦«?ºë)?ò?þ?#&>ý*µ?Œ$¡?—è˜?+ªI?71?¯jÓ?¹I2?Ⱥ?¾ü-?ªÀ?¡Çý?|ž?ˆÖq? n7?˜V>?‚Áò?p_Ó?)ÌË?@DŒ?‚Ú=?”@*?»7?¬ …?‹o'?Vš?©H?J´±?Žéõ?‹V3?ƒn?»³?”¢K?Z{ ?-7T?OH¥?k[‚?°—ª?ÈlÝ?Û¦?âŽ@V@ÖŒ?×ò?ËŽú?ª{?§‡Í?H›?*õÛ?¨I+?¶`ê?Å&Æ?Ãl?³?ƒn›?½ý;?Êv@@¦@ +?¦b?¥ w?šœ?¡Œ×?ž¯?¬ât?źI?¼$„?¶÷o?ßÕù@å¼?¨å$?ï“?^¾\?Œ¢“?d¨Œ?@áÐ?Ÿ‡Q?Æ÷?À‹?Äð?ÂÌe?½€-?ŸGº?Ÿ{ +?}Ï´?l·¹>ØMŽ>ß&K?V +±?jzú?îçŠ?ëˆ4?äê?Øãï?€K¤?¨@%7@º?]¨?•åÆ?æî ?É.4?×Q?Ÿ:!?·t¿?úÛ@ªS@¿Ç@Ñh?·Ó?‘¡p?ñžå@Ë5?¬A§?„±E>ÙNW>£)r?L^?Wv?§»Â?©OÇ?Äo^?Ç‚?°¸?·°•?·h ?Ù œ@<ï +@"Ç8?¥+8?k`A>93:? ?‹ð$?‹•$?‰ß:?…nû?‚¤@ ê*@D?Øǽ?s#/?©Å?Äén@/Éß@?Ó·?öÑ¿?é(?œG?›'?GS`?PŒ?£V¯?›gà?Mû2?B#—?_¸?ŒNÉ?Øwœ?¢ªÌ>ÙÑ?@u?$g0>Ùkm>Ôñ?W•†?ÆV"?Ÿ*Ô?…,Ô?Š´ñ?„(?ÂÌ?ÖK?½›è?´Œë?×Zr?ßt>?ýx@?øE¸?­Ÿ?Õe?ÇÊ?ÂÔ¬? ˜×?°á÷?õÂõ?ÔaD?…-¦?§X‘?î{?¯Í?³O?(iq?0#?‘Fì?Ǧh?ÇV?Ç»?[îÐ?$K?$T)?76ó?{©^?… ,?Ô8?@Èû@d6?–T?ª”4@4H¼@0 ¢?å“Ã?¼ë >££Ù?hZ?—‰‚?åÊ@GƒJ@ô_?ª¡9?ná%?ø ?ˆ­?Çk¾?|þ? Y?ó ¤@&!3?Âs–?Ž[é?¨ÈK?«¬a?§T>?¢ûA?¾N?È$´@ô @‹?¾šô?¼~?„ëï?¦C@Òø@Fñ?(Ô?Üp@@DÊ@”E?§'Ü?¿ý¡?ÝüL?°/?zŠÔ?É Ï@ví@r«@#é?§æT?V?‚ü?£ ‰?Ü ?ëü?À¢ò?³£½@7>T@C>Ì?X¸Q?$7½?L]1?II€?¢ð?¡~?þ1)@Iv@Fø@AW—@,·ý@/Ûx@'¦×@Qe?Åæ?Àñ?¸šE?íxb@$Êé@4@¦}?îªÃ?Ù.J@+³ö@k×Ù@[Eý@Lø@‚ûN@•ý¿@OM2@Ž„@9y0@E6@˜R@k:@ ²@$4i@íh@ÚÆ?IÝ?ƒ@á?ý`@{Ç@é÷@jÙ@[û÷@ab®?Ô3B?ÎÎg@&'Õ@+0å@‚ïÛ@yï@Þ·@;?ú&D?þŒŒ@{Ÿ@Ù!@ ¬Ã@67Ø@¡oÝ@ï@1q½@E8Á@t¡×@is @QÅE@N£`@L1Â@>¡@Â?ì§|?}fu?Áœ¿@Ü÷?í³]?¤NÌ@ØT@DU÷@R©\@aw€?àW=H4¸?ìª?Œ_?ÔþÊ@ *û@ãI@Qˆ@^t@]ý@H°@`“@zæ@"W7@ &Ÿ@÷˜@8N"@J@"tÛ@ <'@é³@± @ t¥@!Ò@$ @76?õMe?¾Ê¯@ ׂ@l`@5Ë-@A@*@šn@@yê@°´@.°ˆ@@ë±?çñI?¯b@#­@@²k?³•?@ªÉ?¶ê•?Ó¢?ÍÜ´?Ѥœ?‰°Â?Z5û@ø@Jò@|@ +Q(?Í:?£•˜?…Ó'?|`@‹WË@»ì8@9™$?¸.?$ù>ŒÏu?‰¤Û?¿KY?Åê†?Ñm?½Û¡?±$7?ñ @ íÊ?Ó—u?¤›º@"}°@d”þ@64ø@ ‘@ F·@‘Ã?è¬g?¯œ@ü7@V/°@T÷Ï@U¡¡@$ľ?¼™?¿fT?Ém?î®?'X?ˆF¥?ßF?Ìe?ª7K?ºæ(?ì´ÿ?ã¥Q?½.Æ?§°P?D"?cró?—»ê?¡j½?æ{ý?çZ?Ñ/¾?Ê=)@Ýu@/â?Œ¶¨?ˆÙ?µá¿?ºóR?º£Î?¸!Ñ?6¾?0lr?ä˜h?údg?\C`? ‰0?ÁÒ?è)Á?“ ƒ?h¦3?Ó +©?øF½?ºÝë?–ï?뮯@¶@#ä@ +ã–?ø s?Ô’À?±êÿ?iìÿ?*}=¬’û>› ?x\?¢iX@ÀT@D—?)Ö©är?ŸßT?Õ™\?b-Ø>—»ä?š’@1¯Ž@i ?õ!±?ñã?ð£»?æ>¼?Ö?ßà?æh +?åÈs?õñ?ñ£õ?Cc•?>Tr?Ðâ^?Ñ2Ù?Žº!?on?Óž?ô.?íËo?Û Q?£ë¢?‚­‹?‚ÏA?<ü?’ÕJ?·£a?Ü%š@?@ñ·>á×Ë>º>¹?)~@?–.Ÿ?x€1>Ý!.>é¸>ñ”?Jl?p˜K?p{Ñ=ês.=Õ ø? ;Ÿ?B¥5?°×ë?×ú@Eç@—È?ü é?ï\Ç?È^?m_?aM?nçf?elM>>î“V?q¤>ö›_>úLO?¾¹?“ ?¼ÒÆ?×ì?í«ï?ýGÅ@  ‹?û9ˆ?¶Ýé?·\Ð?æ£Þ?àÔç?LÞæ?Hõ!?6Ñ[?&±#?:y.?RÏ7?$å>élC>ö·›>þ½?ì`?€W#?ƒÉÃ?–xÍ?œFi?&+?>t?~ï?Š 4@Xß@MEÍ@½>êi…?!0 ?œoï‰ ?Ôl?ßËÛ?µ¨?¤É?ˆ‹¡?iQ?eÇ=?Q£#?‚‹í@7 @ÊÂ?¥b'?®·‡?Ç×>è}}>ä|^> P(? %0?hnù?âŸU@_êÃ@FîL?‹q÷?‘ÖI?à·?î­?Ëh¿?LjD?ì_Õ?þ¡­@ ­Õ@(¹õ@ÝJ?È¢ç?Òj?­)ò?­HX?Ý%i?æµ?‘+’?WŒ¸?„)Ê?™å›? ¯*?§{ö?¬Z‡?ƒH?qÎ*@Ì÷@i ?¸§¼?t*?2žè>æH?JÍ?~R?ÑÅ?1Šc?#;‘?Å×4?ÎG?Ê€i?Æß’?«Ðv?™eÞ?ŽtŠ?f8?ZÜÐ? A>ðCŒ?¨Fs?¬”k?¬Ã?¬£‰?Ä4?Ño8?Ø[?æZw?Ò+Õ?ˆ±œ?‚L½>Ûš>d_?òòD@>]?¨àº?]”?LY?4œ/?Ez‡?Œuñ?‹ <>ç’>éš¡?ˆì?„í ?WR?Vû?Á}ž?è?•?¨?6Èh?=Eï?Ä‹?*èç?Pw?6¥ ?)Y^? ÖE@ ·@•?áˆR?Ý­?e‚>÷`\?3dE?T?oR¥?‡U0?S:j>í¢?- i?²‡x?£¤ˆ?fm?¦ëÖ?¯®?±„?³U9?³ïÅ?žï>ð¥?þ>ëS5?†µ¼? b{?¸o?Õß?y•>ñ’N?u´?¦1b?6•C>˜„]>Ø>öÈË>Å”ž>¡l?$‰?xæˆ?šZî?»‡n?@õ>½ÿP?M&¡?G˜(?<ô-ål;­Mg>Ê4?œ<>Ÿ=¸>¼`Ç?:˜f?J_é?2òØ? =¶Ãj=&"y;+L_>o&? ©>ßØS>¬Nª>’Ä>qØg?]c?ùf? {H>¶ž´@¾v@^˜“@•ä@$:¹@ ýO@`é@ñ½@ Õ?„‰þ>ñíq>¸ûU> ú?'2¡?‹‡‘?aß%>Öéb>®<à±ËÊ?àèÞ?ÉÏ$?1”?>r>&Š˜>BC3>î.>ö®-?7 ?H;Ž? ²Ä>÷™"?0ÂÚ?QB=>¿ºD=‡Õä?‰¡?qIâ?$ÍG>ιÓ? R?Vº6?câ÷?z#?@S¡>ø„»?]ª>ú²Ú>úÝú>û +>¿¸'=¸>JÁ0?ŽY?=o`?¹Ü?LÄ?‡?1™>l K>¡ÏÁ>üÇ>î¾ç>:>€™:>g[›>‹r?u|í?€9?ô ?¡é>×wá?Y¼?¾¤€?ÄËD@ƒÙ@Oò?â¤?Ô3?>$?IÆÓ?+nÆ?7­æ?ªc~?ŸHž?:HL?5Rˆ?€­?~0¨?!§??>ÔÞó>â ??d?õX?‚Þª?†{>ÒÂ?©ö=Ùs&>²ç>±òç>´IŸ?€[?€dª?€l?†! ?æyƒ?Þ'{?Ž? +W?€Ò?©Ü?‰a(?…w?{Ø~?d<3<½ðÔ>]Ž@?¯›€?ž’Ã?;“Ö?Y"þ?˜uÃ?Œ¼I?j+?uÅ7?€­v?n@>ÕÇ}>¹fÜ>®MÙ?O3…@5â?ú=^?NC ¬>åÂÏ?µÂ?Oh>? +Ë>Å¡>ù°c?ˆís?Åg@ G?ùuS?¼ùÙ?“sì?S?C#?'–>Á1€=Ó7ó?ƒ\¶?ô%¢?c J<“ÄZ?%|?…?@™“?š?!·?µ ?$ðñ>še}>éy¥?Î?QW/?z16?Ë-¤?Ûe#?@†>C‚j>å>åÛ¼?5dü?9Ûô?‡?ŠüV?‚î[?‚f?‚Ya?€ŽF?‚Zž?„c?çäG?Ö7Â>n‹“>××@—Š?ýs +?Ãô?¯¡?®?(¤v?¦LÔ?™Ñ$?T/?e$?‚Р?{km?h¿d?uÑf?‚æÕ?«Òk?ô…!?­±=?:c?yû"?¾°ã?‚k¨?ÚV?­@?Ä®«?mŸþ?*8?‘Ü%?¸Ÿ?Ò2‰?ãÌI?ýŸu@JÅ@³@'Ù?ˆ.ô?+¿>Ôû>Ë!ò?¡F?±-´>•ò2>'%?ÄÇò?£?ƒ’?„t?Šæ?JH?¨#Ÿ?’ØŸ>ˆF>µ¦ƒ?½å?C'î?ªì‡?²¹•?Å»Û?n?=?Ög%?™?+¼‚?än÷@/N@ +¾ò?é ¼?É”Ã?ºút>çû‡‰ï>n§ì?ˆ›É?ƒð„?Š”u?›íŠ?ð2?ÎƸ?S?pçÝ@"Ä?°wd?½-?¿š?ù#™@*‹?¸ág? š?Zn@?…-_?ûÉ„@n%@“^?ûãÅ?¨Õå?˜t?šV ?œ>?C ?‹;l?NZÆ?Ti?§¦ ?©Ú??¬D?ÅÞ`@.T@¨Â?ªüâ?‹C?Pk?m.G?…/?ÛíÇ@òE?ûÉÚ?Æus?ð:¤@r??¨Áí?z«Â?vG±?qâó?‚¬Ï?…!·?ÉŒw?Ëas@Ãè@‹Z? ?*2?¤óØ?¬g3?͇?£‚›?Ür@é“@(P@6Il@*¥²@] ?Á[?ù?‡Œï?Ã<@D®Æ@ƒ—Ý?Þ÷G?+r¥?æ?-|?®ƒÎ?ÇKÜ?ÇE ?ÇB?Š `?„Λ@-,7@'ô·?„Äÿ?…âê?…åÔ?“ÜÃ@­’@ +Ž£@.»@0¢ñ@Kµ@«?eÞ5?°Ñ­@ èÅ?»j[?‹{?æ+D@AÎ@ò@"?Û?y?»c ?ä j?ôó‚?²˜ß? ¿ø?`aÚ?N@6?Ã{V?ázm?†Ô’?jvx??#·?InF@$Ëß@$Ä@A~~@= E@.@z?‘õ?–ÙW?Áó3?À©×?ѱ?¨ y?£±?¨V%@$Ì@$®x@#Æ?@=°<@Z"ÿ@%(?ïi:@ìZ@`u@7Jf@Sö @më?ïЬ@Udþ@~’P@>¿\@%aš@H@P»3@!*Ø@qÒ?Øík?Â¥Ü@E`1@T¿Â@SÄB@QO…@:ðˆ@<@÷@µ@#{ì@ƒöÇ@~‹X@'§@)ª­@ $e@B£?Ïg!?ì$-@4¶Í@.í?ª@Ï‹@”—Ô@ƒå~@#6§@&‡ @2û¡@7‹»@9{*@A!Ñ@GUð@dâû@ž4@g°Ú@ø°@/pû@Mé@O>¶@Qäí@W.ã@\xÂ@u¯?ŠŠ†?L:#>ëß™@xØ@€:@ÿz?žÚ?Ú;@¶#@åp@" *@&8`@&ÿº@BLé@RÌ_@eN¹@mXN@2y«@q@Ǥ@Tï@Äå@ #¨@eö@$Ä?Îñ?º^ü?ŸýN?Œ®õ@†ç?@®Ò]@lO=@AC @³e@ÿ?ÛãÐ?Ïœ#?êa”?ù›º?Áúþ?©?ò!Ð@ ¦N@,¬X@1l@#QÕ@ f¼@÷ó?öOê?Ž©T?M'?øϺ@hø@·@ |@_ºE@yºú?Ë ^? +i­?eèÝ?›Éd?¹ ?¿‹)@ y8@»e@4©?ï 5?á¼?Ö<ú?„~g?0ÓŠ?ëè5@!Ñû?ón?·öˆ@KÜ@xù@*ö@4@8Íw@>u¼@,!7@—S@í]@”N?⥨?‚Q?œ»>?½ò}@÷K@næY@; +ž?Þq{?¯¼?V;X?9¤a>åw?J²?½Qâ?ÚÛ@@ Px?óU6?Õ6?£2?° Ú?çoŽ?ôUÎ@:œ´@3¦8?_8W?XøL?ëû9?ï’>ûs>ûOb?·|ƒ?¼í>(~)=‡´„?Ÿô?—[ý?-t>ú8G?}Íž?“PÉ?¨hw?©î?ÂçM?Ü"g?îT5?ï‰8?´×b?ôã?»|›?Üd?—ªû?°ò?]2?úø?„?×?õá?Ô{?xaË?™â?þöt@tí@hù¥@Rõ£?¹Þ+?¼@½‹@Lä@+¼@+f?¯}?”@8?œN?¡9Ø?Q| ?Ö?çW@ð@VM@t?Ö?¯—w?Ó5?ö][?àbŠ?½|?ÌÆ4?ëqÊ@°â@@ ¨@/b?¢zí?«²µ@ã)@ÚR@€<@ +{¶?¼ÿ?º‘%?Øúp?áu˜@CÁÚ@p<¾@!Š”?È?Õð¡?ìr~?ÙŠ—?¶©?¹.¶?Ã=?Ú@ .@Ô@[@^Ÿ>ûŸ>ò^É=d¢?»©t?ñðœ?—eÇ?JïF?£\™?Ó£C?q%ï=ŸÆ=j÷Ñ=Iþ>^í]?oÿü?k†¶?p µ?p€k?Â÷V?¹ÃR?½?·ˆ?‡î?oÑù?âL…@‰ +@ÅÊ?Ö¬£?Ñ´ê?Ȳ²?Áe­?’ñÒ?…Ýæ>î·>î—À?ä¿W?íoØ?‰ô?c±Õ?«+?²p=?ºH?©)?ÝšÚ@¼‚?äjË?Ž+y?¤«o@'@€K? ‚?€Ëó?›˜ì?¥±Ö?ZP> z=w9È;ò¡o?*ùÚ?Ü9?Ê_Ï?¥¡?%P?ƒ¼?SÝ?#*è?(þ,?Ú5ï@>m@(@# +?Ü”—>ênû>õ?3•?Êt?µzt?¯ÑÈ?á?4?dþ#?€mp?Åa?î>«?ÏþJ?®Ù?Âî&@€“?øé‰?÷S?¡G?I>?>IÔ@yö@+@È?æZ?iŒ¥?±Ù.@@{?gÐ;?g¼?@ÆÑ?LŠ?cÌþ?gnÙ?­¡Ý?ÝY?Ψq?­\å?ž"™?>:2?)“Š?­*X?­!,?°¹?³§ˆ?¢vN?’8C?€äu?fˆV?xzL?‘Í?ŽèP?Ÿ?i?©œê?­Mã?¬©‘?À!K?¿iÎ?qÞý>樊?7î ?¥›Š?¢ +?žs?šÜ£?¾¹ë?Å`1?žªà?™Ó,?z +!?AÑ‹?\eU?{€n?‹Y?â½0?å.œ?­µŽ?¬—?¬ž×?¬¦®?¸t? ±?Æ|«?ÊZà?ËŒ2?Á2W?¼øP?À×(?ÌŸ ?±Ó‰?­ý?«Â_?§[Ñ?ŠŸT?g.å?ˆœ°?¥»u?ŸwC?©„»?™yë?­à†?­÷Î?H>è?5?³Ÿ?è†%?§0â?XèW? +­i>‹Ž>Ã8{?Ë-?Œˆ¤?8O:?A$Î?ÞÛœ?ö O?G«|>öóÕ@ú @%€?’Åê>VîÄ?i6+?Õû“?´8 ?d¦õ?†Üµ?òý?è ö? >:>ø¦ó"‘>Nu~;Ø2Z=Ìì>}Ð?ÇÖ?".á?#K>öÝ£?óS?Tk?9Í®?yM?ž04?»Îë?8î?>æ‚v?Për?F@3?;u‡?&öc?2î¦?ac?9x?–á>ùñà>ýÜþ?¯ã=yç>ÿl?‚?1Ô?5Ãý>äÁ˜>ÿªc?s´>÷­=Þ‚>#H·>Wèd>òÁõ? ?2@ú?!¼Í? —>­z@'à @_¯ @Õáð@sä>>`¼?gœy;ß”?ûHÀ@«?ž-c?‘–â>ïHE>a>e£s>(ÃÛ> ~ü=àub=§é´=^Ýk>è¸?´Ü±?—çä?#Ñ?"ôK=ßN¯>pA>¡ÔÐ>”œ>òph>ö“=?+£O?)ór>ÃÐ>¶2x>væc>W¸?vT?²~Ð?U!?sî>ƒVÐ=­É‚>ÀT? *?O}o?yõE? ·¯>“È?.’s?¤”>û,>è‡{>Î&}? +?‚yö?: ç=(îÔ>PWµ>ü9>Æ>$Ô«?Q»X?>XB>ý‚?#ê?8¡? ùô>2?o>YD£?>W?8ô´=—&¹>2œ$?»—V?´Ê?S³?(ú!>—Û>Á´Q=ý$>@ÑÛ?R½-?KBÿ?cc?w? +Ù?ÓÞ?Q£:?[Ãc?œù?‡V <ãà5?Ùÿ>ÿ"<Ä,È=ëÃØ?aÇe?I©y;òÚà>K>Bq>ΦÔ>ñ¾@?@%ú?FÇï?c&@?o +?)vu?-È?€¢=?…iT?¯ÕK?¦ßµ?¿„?F^™@W?û©>V-ç>åÀ?£Ý°?¤‚»?Ávª?¨^?é?Úh?AÛ–?>ÙY?LõF?5õ³>§‰Ò? 2…?£Z.?ÄÁ@ ®Ä?˘<ú&Ì>.a.>üï?$œÿ?t:Ä?O5V?R¸?q>¸úó? «‘?RóÑ?|.´?ŸAé?¢S3?ªc+?ˆœ>?1ýg?X{'?À.?.­’>ÎÓ¦?4°i?t15?>JÍ? ý?w?¿Ã{?Þf)?ê_ô?ª¿¯?íè?_ÄÆ?6ôŽ?£Æ%?º>m?;P?%ÿ?¦ã?Îg?h€?3*@?uöV?‰Ö?½)Ê?Ã{†?¹Fa?ºßF?‘vL?‰FW?ƒR¯?‚t +?‚y»?…>»?Ín™?ÀÉÍ=ËP?zÎ?ìÔ?gs‰?kZÇ?H¨â?5©H??š‘?ÆN?cÁ?^S¯?d|`?ZNL?j–¶?ŒhÉ?-)à=Ž?7 +&Ð?U_ù?¯ ¯?›Ê?’î5?BÐØ?+Æ?(“"?N‡µ?àz‹@DÏ?½¾X?¬û?¸ë›?µ0Ä?ofè?^Ê.>°üÁ>qª?,Çê?,„?û.Æ?ÿÛ"?¼êô?ÃÃH?Ãmiƒ?fcí?·“?¤W?ƒñÂ?ª„?ÅùW?Ucd>Ýùô?&·?¡?s1H?†ˆ?‰ŸÌ?”#?òUz?ÿ¡^?£Ól?Ÿ!N?N¿"?Jw³@>[:@4·^?ïT\?ßÀ´?•÷Ò?œ®Ú?{â-?q]??„hû? %þ?ÜÊx?ª¡?'fd?ƒtï?ÆÃê?«ƒm?Œ¯¼?O2?‹Ç?Õ‡l@Mÿ?=`l=Á ˜?î?Yø¥?‹¡£?“ü¢?ŠÐ ?‘ý¦?¯Ô?¼ûd?ºnG?­F˜?Ê ? }ø?Ç9n?¼?„×Q?• ½?Ä“«?¸;y?¦<Ý?—r?„ê?æ%ˆ@8J@@d~@Eîh@ÅS?Ìêy@ ïë@A#í?±¡Á?0“|?¢ô™?¸#W?µáà?³£â?EŸ}?5þ?œší?™B‰@Î\@)f?½Û¨?³`ï?­YB?¬ƒY?™ôI?´KN@$W?±Š=Î=Ï>é!r?y{j?M…ì?üO>| õ;ÕÔÀ?(V?…/ü?æÜ@ +@YtÇ@n $@âÆ?å+\?K::?3Q¢?£#Î?™ï?@›×?S +Ä?¥®{?™Z…?RMÖ?™W@*–@¶‘?ãò“?žEÿ>m??'Ã?š.?¼ž?…/›?ƒ:³?ƒŽl?Úep@+?×WŠ?À?N?’+)?…%à@ªÚ@ ?ßžY?ÜQ¨?Å•?4¼h@R|¿@8r{?D)?S®Æ?…†?s2Ÿ?µm?`Ýò?ÆÔ?ÛÀ@Î?óÔw?Ô»±?¦ç?¼Ú?U»¶?„ö—?< ? U?®:?¾lñ@L¿Ê@jöö?÷Üö?ÇNø?ÇH"?ÇE%?‰Ë?…Ò@1¡@,T +?„Ç?®â>@j1É@M5H?ÕÌ>@+L@x,N@DSE?„¦E?­ºÀ?ø­{?¹1?5•Õ?,ô^?$Wm?‰õ?¿y¬?ž…Ì?†ƒä?±„?Ƨ©?¢à?—‹Ë?Ü2Õ?ìý­?B¥y?Qƒ?áV?ðýþ?¢†p?žðë?qä?‹.@Oê@ 55@-Ûµ@&×ý?¾úò?Õ]Ñ@ïí@µì@6)V@+B²@ ¸‘?ûuS?͵?û#/@$ÏN@$Ø‹@$¿Ž@5N:@HŽO?ÎÛ>s]œ?† ?Óád?Â[?»˜n?@‰ò@/d@Goª@ºÔ@¹Ï@T¬$@hÁ6?Ð>l?Ÿ»£@Ù@\x@¯’@Ö+@c0@l~}@ (2@¯¢?·—s?уç@ž¼5@—µ,?‰úì?¦@#š¾@&vµ@3ðe@9Ô?P?ˆ2Ê?)vÓ?Î_U@˜@g¤Z?ÖC&?ÉѼ?¢§Ï?ÙË@D²@L¶Â@Ž¨_@„ì`@pe©@Crú@?€?ó…?Ú­þ?³¾ü?‰†ž?Œ +O?‹p)?„W?ü‡?á"J@ù[@4‹–@Q¹@?´f…@ ‘Œ@0¤@ 7Í?ð@[í@¯@æ#@àü@NdŽ@in@Qª @?8•?Ïç,?Je?î @f»@Æï@¿µ?«Úe?s0h@È…@<½¾?Ŷá?o±@"ø@AC¾@&Œ,@ôË@A©@†ª@R¦@‡?×Nõ?ÀÑã?ÝÔ?å L@'@?:w@i@NF@/½T@<° +@ëý?ç'²@<Ž¿@Xh?‘ü>€~(@Mz@6gÙ@ dÆ?ûÑw@\•@Ë—@C@QyÒ@]@ î@Á@ˆ†@pp?þë±?ÓA??µÝ@  @-›'@A‚@æë@A)|@d{s@G k@3§;@E•@OZ3@‘?Š?Äcà@Ê[?îÃñ?Ϙ„@g¥@[kæ@'áI?Ù¯Ê?×M?ÇÂ?»„Ú? †¡?†2á?0‰i?e@CŠ?ô¢?ËÞ?ýxR@?J@!bÿ?¨?Oe?åß?áèz?›ç?´j!@5¥³@*P¬?{;a?yQº? ëB?Í?¸ýL?¼õ?lTÙ?XÚ§?uÜ,?zkÿ?`kŸ?Vñä?r—?zF?½¯ü?ÖL(?„¾g?:¥£? ?Ï «?‹,™?'´[?ËÊ @¹ã?Øx?`¾a?”M@?Áùï?¼kÏ?·Å!?¹Áÿ?¸>™?ct?$Ý=?˜J¿@d‹@b,V@8Aö@6 m@ls·@g’À@(à@(´s?Ç^D?½Õ?b÷?G!­?“dš?ªˆ=?êâ@ÓW@"f @4Ô?ËD˜?äy?è²›@V\g@<Ë@LW?ö3w?6N?Ûü@mÅ?@]‘?ö/C?íÐ?ÞŸ´?è|m?ÖËÑ?×ø—>Éw¢>= Ä?µ´?ÜU£?Õ¼ ?Øók?üF@ ®?ÍÔÕ?zL¦?Dž>ÿ²±?N¤h?¶^æ?Äæó?þ²+?ò´~?€Fa?Šˆ…>ó‹²>òd1>³§>vð?Û&@¼Ü?ß™Â?É‘ë?îFE@ó?±NA>ñO9?¥Y?€?8¶?³æa?½¹‡@ „¯@ n?}J?”‡?¿r?ÇZ÷?¨½¹?›5?}i?p‹?§”?Ëì ?«4Ö?o1ù?”2'?îõL?ÛtÕ>>îž7?´c?³R?°lß?­æ@ žÿ@!¦.?î­&?²I?ª*œ?£”^?“c6?5.Ô?AUÕ? a[?¨×?ØA?ä +? z_?Œ¡#?¯¾Y?¼Ô?•)–?k+3? ù?ëÕƒ?Æé$?$¾?8ÍŒ?°ä?‡»C?Ä??wL?ŒCA?›B?ÆÆ?Ù ?§‹Û?LU4?SÑ¿?†T?ì@ wJ@Šr@ ³@Çë?–þ?iŠ(@6>@9Á‡@?®Ú2?¦Ïû?š,?«Q?³Ô?ªPë?Æ•u?Ñ.Æ?õ&B@–€@ ¥7@"ü?ö¿u?»‹Í?ÄR´Q…>ßeN?GöQ?ZXâ?bÎ?T£1?Fð?7a ?ƒÌ¬?ɳS?ºM-?§òj?­.J?¬¡ç?¬šá?¬ ™?¬§?¬±#?¬´¨?’–â?më"?’ñP?ÓJÜ?Ïè?Náì?/¯?£Ð?­`>ã +æ>)š >Î¥è?²j?o“÷?Ä¥~?Î|~?ì)?ñ.Ü?›^‹?Ÿi? dô?q™?µJþ?èŒs?§ëÏ?hÝ\?.2>¢ +û?c[?”Ïë?‡©>éóû>ê'¢>°ÎA>Á4?UsÛ?kê@9Ð@0£ý?Ê™?0Wø?‡SÞ?És?Î%¢h>‡í?#í?+\³?N8?kˆa?¸j>Ãû?C?(‡c?78k?4=?“?Ô8?Ÿ„Ý?\5®?Ù¸@¢?ªÍÖ>ÈÄz?ü ?.¨?3Ã? @>l˜>®@?I•?¦&?Ä>!´¢=ÿåU??=¾>ˆ©˜>šn>JQ=÷ v=ÕIx>Qd`?k >ôÚÃ>Ë =÷s[>áÍ? »î?ˆ§B?vr? ³1>£uë<æ/¡>ií´=íA>@49"@l@m!?õ9=g˜>­Öÿ=ÛV@®Í@ ½?…q)?pã@?#>ß 8?5¯?"ÈÃ?/ ó?0‰á?úf>Ø™¯>“…<;>:€N>ô¡Ÿ?+m?¼kø?£øù>õ¶Õ>û9\?€+Á?r­”?C ?Iâ=àiŸ?Ü_?Ró >hØþ;öF=ý<¥“H>ûþ?U¿ü?‡->ŘX?5?:Ö?4p×?Iѯ?ÆÁ>´ô>Ž„m=±wˆ?6?¸B¬?–\¤>ô­>í§d>ü6‚>ð=>¿ç÷>­O;>­«^>ïm4?Dˆ‹?>)=?D2ó?>¾;>ýŠÔ>äZ®=úã‘>‹>ýüÆ?Äv?ÿ[?6A?w΢?p=±?X*?T>?+ñ?ˆ¹u?¨ûó?œX>Œåû>‰ù,>è §>Êb„>¤TÅ>Íõ^?žÃ?™™>=Æ?·d|?¸îJ?yõ?wÛ ?¸€û?¦úä=ÎI>±¬>¤üf>˜ù´>¦”?@ù +?&¼=ñ8²?€—4?|ÒÌ?dwŒ?[«K?µú?ŠÑ? B¨?ü +?ŠJw?‚÷À>ݶš>în?Õï÷>)-?Yž?«?f?\²J?ºÏ†?‰Û³?~?)gS?]øu?šñÿ?Òëá?Íh^?Ççÿ?“íK?<íâ?C+Î?S,ç?Ëö?§T?3‡]>Rü>Ò½p?SÎ?‰~5?»èÍ?b¬þ?c¿?!bÃ?5þ?%¾;?Ö«?hcÇ?‚Ð?ã ×@ß?ZØ?(Í?.?2µ?ŽœèÛ>×?¢Gƒ?µ‡?aÙg?aÛ‰?ù¹ß@™?Á5i?Áæµ?¿Tþ?µž¦?(ì¸?,*ç>É÷‹? l@?ÉOÐ?ºIp?‘·n?uâ“>òC×?Þt>ïñ>ç‰B?Èà?ãä?*Sì?†èR?èj?Ø"\?ºÇ;?£Ù?‚ôÐ? >à?Ä(Ç?¾Ôà?³›'?ºy®?Ä u?<2?ƒ">ê8=>%”F?}Ú?©;?±þ¿?ßKN?€k??Mí?¤ÿž>¶BÆ?W‡J?hqö?Á¹¡?Åû?½gr?¶ÇZ<¼’Ð>;?Å]p?»ãô?ƒŸ{?™Au?ïŸ?å|ƒ?ÖFë?Ë/"?®âd?ÄYÎ?íp?¾Ö:¯?žÐ€?Ì ?ñÏ»@Oê?OT,? ­¾@Ì:@ ÷?‘õD?„8Æ?„<Â?+•@9°"@4¬Á?߆Æ?×%·?‘•»?•ç?ÉVæ?º!=?„i…?¯Ïã@rf?ÎÇ?e”D?  ”?ÓÌc?ÁÛ¿?¶?ÙÖf?ú7{?²]÷?†æœ?×c?ò?Y›†?«?p1?„³n? Râ?ŸÇC?c7Ï?Xü?¹;‡?¾L-?¬Ü?¥6¬?¨•X?£Á&?„ØZ?ŸIÖ?ö(×?ö>Œ?çæù?ʳv??(´L?=±U??2?]ÆE?ôÅó@4Ã?|÷?\í¶?ÞW÷?Û<=?5˜?Ö?†7Å?oi >˜él?Y W@!9#@Oå?<2˜?Ef?MÑs?§Ô™?ôéF?Àˆ9?‹‰“?ZUÖ?¢~@9p™@‚f¯@˜?Ǿã>ãøs>8š&>û{±?$P?¿j)?Ç´Ö>·} >Ûh.@ +î@ª¬?‰A«?„þ|?……? ?â:„?ë¯y@èÇ@¿P@J@—q?üt?ËŸ?—p?“??Ž¼ø?³\s?Ç®?óÀF@Üþ@%'@2Õp?ã_/?ÇQþ?™w¯?•÷U?…Í©?…m€?Ë•€?ÏwT?«F ?â‹,@”Ý5@zˆf?@iB?~š?åœw?â3@?ÄM?¬µ.?”9¾? àC?­±³?¶åô?¾Š?„Ç?€y?•v?Æ @ ËU@ œ²@¨P?öX5@¥@²ÿ?– ¢?e Ð?ß­Ã?òšS?Hz­?8÷?êÏ ?è‰t?ÆÏú?ÅË%?ã:ú?áQG?Ö/?è –@*ŸÄ@"i@Bš@¿ú@@C@µ¡@ÂC@%R@0ì@EÄ@5Íz@'vs?ùjŽ?¨#Ò?Ö +Ô?ù<Ü@$“,@8x]@±@Œd@=¬É@QHj?¿’?ß÷@’$@” ?Ø?Ps?ñðÃ@FÝ@ 5E@læ@,@)#@Qõ@‹É?Tø%?:Ã#??1¶9@í @ÓÅ@#œ@Ô/?ãéz?ÈI?Ç€?\>ù?úw@¿ú@Qúò@*&˜?‚”?¤¸e?æ¿Ž@ã“@&Ž_@Eð¡@{vÚ@hÉ@CÇ@#i¦?ô?6@J@(¾‹@ +œ)?Ò•†@ +q’@)i/?Á‰‡?_»?®Í@£'@@'-@KÔü@`—‚@Šø´@›ˆ^@0—?ÂxD@H@'‹Q@ÑÇ@˜á?ùÉô?뚘@PÿÇ@}ŽÓ@"Î ?è¾?½ö?±v*@Hì@v;-?¾ý«? ?·ð¿?Õý)>åÌ)<•ô?Æ€v@S¦?¶@?ž*Œ@!·@:@¥@ Ù¤@,¶7@3p8@ íê@yT?ê˜ ?áfÿ?ø¬³@R©?Ù.A?Ðk@@u€@ \@-Ž@8~×?Û$™?ª4y?ÁBä?ÆnÁ?˜³ˆ?„(´?®Ïx?ÄŠ +?¦~?¡Ð+@¡(@í·?±Ïþ?|[?Ö¾ê?þî¼?ãÎ?×xY@ ño@!2?îCŠ?Á£R@ü~@É[?ýkþ?Ô½@i@JÕ¥@HÙ@Dç@0¨@uÚ@Oþq@u‰@oe@]—@Z2@R™d@+°ê?ó½@ ç»@'ú/?àWÅ>—F ?P {?ì&?ÑóQ?…b??˜¤Þ?Ý~‘?̱"?‚@¯?|˜(?”áÕ?{:G>·ñ4?=/@o¤‹@jý³?$Ž?‰é˜?¹d?»KÜ@ð@ù:?‡k´?zœ·?«Õö?®ÒÅ?„M¶?zB?z)?z0?¬+?»l ?¦°?›Ç?¨ñ?§S?˜êù?’5?àè¡@Pé?¶ew>ø÷?‚‰á?â¢?Å8?„A±?UTu?y?ÀK>ø;¾?_2@&–8@f‚?Ÿø¤?µ‹@2@#TJ?§Â?®ûÅ?¿û?Te>ü&©>öùl?«ý?Ü“?mÑ?‰fË?׎R@‹?ÎŒØ?Œ\µ?ó5@8ªÐ@ +¼_?‹«?Š\?u”å?nz?tEp?ŸP@²P@þg?æ¬?ß.?™Í¬?šù®?>š?).Ô@‚@¦&?°4{?tß?€QÏ?‚- ?¡­Ø?½s?·ëØ?³Æ?ŸD„?€pD?±ºv@*>s@"8g?êýH?Ý`>2">FÉ>æK>ò4û?¥«?ÉYT?¹L?µ¶¯?®š?¦g'?u×ì? ”º?z²•?èÍ?Ñ ²?r¹³?l-¨?*H?>¢b>9*>cá?£F:?´«?uÆ?[î…?$Œ>ì+?‡Éç?×d.?¬ Ø?J"â?|üÜ?Çä½?¾¹?a:?ÇN@æ²@XÎ~x?h?$kM?=’Ô?mP2?[/ú>í¼>íÕÂ?2n?d¢?§ +a?ÁW@ÀÇ@¼Ç?ãÄè?°‰¢?°û„?·á?¦NŸ?Sµ?S0³?‡¥?ŠŠ ?®¡?°SJ?æ?]na?—“ß?Á[ +?Ä­"?À‘ë?Ìh2?Út:?Í¢©>ø©q>öe&?zAî?‰#•? ]ê?¢G¿?êlS@BZ?ÕÜ?Y†Ã?W{? ¾–?&ç8?å€Ô?îÙ>?€‘A?hŠ¿?Â}>úèh?v‰?°Zv?²Ñ¬?®“?§‘ò?È8?–Ql?­Þ"?­´?òÚ¡@Ò½@ê@V4?÷[Q?Ø»¤?¼Ž?G÷?VˆÏ?i+?iÛ¤?Ô…±?Þ~¤?Û?×›?¤„ó?f‹=?v]"?ñþ? S­@ü +@¸µ@6Š@=úP?ÕµS?ŸJ?ë<Ú¯Ð>·Ý?f/?kdY?y>™?c¤˜?¿;?´Zé?—/v?•ˆ?£×h?¬† +?ݲb@n@³>ëe>ôl?pzî?xÂ?6"u?5 â?s$?‹Aa?‚%,?ZnÓ?}ûÃ?¾üê?Ä7n@#à@1'?¹•S?­(n?wÅî?FR?Æd}@˳?é¸[?ÏC?¾ÈÊ?”E;?•~j?ERÈ?M¬0?u›µ?r +p?jIŠ?qS9?qÅK?hã +?T•?ˆ©,?’Æ?¯3µ?ªØ?yIf?_Y÷?tƒ>³F­?Xïå?lK>¾%Í>°ü? Q¿?ÚX?Y#?ÖÝ?‹ˆf?‹;™?§ª»?Ï<õ?ß•¹@ -@ {ï?rüP?|Ö‚?Y¤š?ONÇ?™¼?št8?«¼ö?½i?= b?$Ý?Ør@SÒ?SÄ?à·?}º?›lx?Cq>ö??¹?w?aœÏ?X">Ñtx>‡wË?1 ?o÷>û|®>ü¯>üºƒ?m2?‚Áp>ÿü>m42>ÍÜc?X¥?¸?H>Øk¡>º²R>ÀS¹>íKÚ=‘ã˜?̵?"f?€V6?"Šœ=>÷@>¤KX?f>%ö>êP¦? M?q©\?_wU?²š>™ùÆ=%(>±}\>vkø?Ùˆ×@#³@gL?ˆ•`>„åÊ?Mm>Ieœ?þGñ@ƒ?¢S6?›ð?J?Ý~?4W?HæU?q ?p®?ÌÕ=OXh<½3ß:ÏÅÄ>§ã>ô?3Ÿý?Æ6 ?Ã2E?MY?‚p?*Ϻ??×I>—ª¹>›é>= ãû>wV~>X2à=û?+š?­–?£Š?˜ï²?P;? ö2>”ë<?Fu?œÎÁ?e0Z>ú™C>çP>CŒ˜>ûH?%•(?sF?yŽ?w˜.?.]Ä=Œ 6=À»Â=õY6>œ8?%15? }>ãv>ý)>ýJÚ>ë8f>¥Ñ>²Ç >¿»ƒ>ÓȨ>ýÿ?U'?¶zˆ?ÅŒ‹?÷ž?ãàò?~§l?vwè??üÛ?L¦y?YO?[ôM>ÿ=Z? æ'?lU?qv3>µZû>»¤¤?bÑÃ?D‰Ž>x’>J¶A>ïIÔ?/Ÿ@vj@k÷?ˆ5?‚!†>Ȫ >ÄZ?V¬? + ¤?L°›?Mæ*?€y¥?n|B>Ñ‘A>ÛF?XµJ?UwÌ?QÛ?%Ž›?Tù[?["?¾¢¿?´cX?€Ö×?–›?æ„H?¼M-?ôœ>è!N>¥Ö >õB|?MK?"Ù=>*ˆ?W?§6%ËÏ>ómü?`;K?¾“É?Ô‡o?û‡;?–;ç=ÏìÒ?,ùu?¯¿?™^c?‰;x?~ä¢?mŽ‰?aúU?H%?A[$?1üè?ªÉj?ðé$?±w??Ó8?wmÈ?t<9>Î>=™;é1ö<ÆÏH=9×<=ˆä>Åã? +Ú?b§?‚Õ?¤ Q?³W¹?n=?Hr“?C*š?=â¦?µ˜?Ã`ý?'¸?JŠ?[à­?h¥Y>˜®6>RÒ?ÍÛ2?ÆF¼<þ=&MÚ=Ð'>p®Â?r?ƒÄ¾?Øý?ÂvÛ?z[?€RÄ?fâ¼?[ô? ˜›?%ôô?‚¿?nÌ?4§ñ?\Í?–®È?¦j?‚ám?qÓU?_ +n?uˆÛ?‚öY?wH<œÕ ?\Oç?Ä“>?£7B?§^?‡Ô¶?ƒ$>­É}>ü§3?6\W?–Q¢?¦Zo?½ñ»?¿•w?)2»?Y“>¿qö>¢.H>þ?o4?œ8?¤Ø·?w†?raò>ú¨?õM?……Æ?‡"8?ƒ †?_!ª>ºù?…?Eä×?~-?°:Ø?½÷?Óá?¯‰í?ƒÕ?ïòþ@6Èš@´×?þ(?‰ª‹>£±w?ßÌo@0É@!Ð@5é@|@ÿ3?h´-? xÆ?de?&#@g†X@{è¿?–ñ¼?„éå?é¦ô?Ûôª?IIë?k±?'`?¤E?¿r2?µMh?„aM?•mÁ?ºï·?Ê°»?òO?³ùç?(YÔ?§yò@„8? t„?Ÿ>[aÿ>²&Ë?¬@R@Al‰?¸„?u”?‚¢P?„´‡@ ì6@„9?Aí?8)]?¬Ù]?¨Ï6?Ÿk?¦–?£¾?¡y?Ÿ2]?ŠùÎ?0q`?eR?§W.?¦$?®.?»×Ñ?Çiˆ?äÕÁ@d?’Ô?‚>›×X>Š÷,?eS ?X‹?bF’?^{?»¸ä?ǘÏ@!'@@&Y{?qÿê?€dÍ?ÌòÅ?À[3?i„?‚g†?“b?‚–?šÊM?ŸH?£ÂP?†BÆ? .j?¸?AS?¨$È@š@ú@lã?®TY?€‹"@ Ô@NÁ@ OŒ@¦@].@‡>íy>´Jt?dž’?¼h>>hwý>ö‘?8?#>å¦>ÿkF?5Ì;?0l›?v>ã"Î>w¹D?2Œü?›[ò?±¨ž?ÇÍ•@/ˆ@d}Ð?óÄï?“Ë&?Žòo?‹þ©?¦Zl?¦$Ê?Ÿ’þ?™Ö?ÄZ3?ÇW?^M?Y¢¦?UAÄ?ug?ë\Ò?âl‰?ÃÄ?ÓœO@?Õ¢ü?\âµ?µE@,Ë?ô^?LJ.?ê‘î@ÿ»@ý±@û*@*@z ?ÛH"?Ë1@-¼@&#È?Ü?ÇU?8H°?&dÈ?±s^?²(t?¯ý¡?³Õ°?îÒ@4Î@DzÏ@/–p?¢ì†?¥Q?©á_?ʺ“@C?Áþ>Š>ÕtN?€6?rwD?žƒô?ʲ>?÷¨Â?Þù?Ç L@;FA@c21?ã„ð?–-°?ú%d@ +öI?›Mv?„U„?•ë}?š? û¯?Ô9?âx›?Þ*y?³^?”¶¯?êèô@€@@Z¢@_ß‹@vïq@o +À@Eû+@! Ñ?3?Ëã@îX?áiœ?(¨ä?Jè?‡’{@%,Á@·Ý@8g‰?ýõË?ÂÆ?Ÿ$ì@ Ÿ•@Nj,?ù?°/@ º]@$ìw?ò¼|?Íd?ÅE9?Åð@ +—w@ˆ @% +Ë@$q¼@Dð_@Jå¦@ ?×@ +oÙ@_ÆÄ@`aË@Z«Ï@[»\@DˆÄ@5dð?†bÝ?¯±Â@AZÛ@/?ÄAÇ?ëý @9[&@)i0@ ¢@ÿ?ò +ê?ÒN³?‚–‰?ÜÁ @DÞæ@1@,i@®¢@(¯@-:™@9«@Áˆ?ä‰ù@«ð@uÃ@ò +@«@W—r@‹ÔY@Zþ›@ À?´¬æ? ÍE?¿G@’‰@i @Ÿ×@×ï@Ø{@ï`?í¨@l@/D“@0G#@1Oé?ôåó?¼¢­@HÚ7@t˜í@~ô#@€Ú?úV„?‘Ûs@ ÒÓ@)ø?ȃ™?‘Ï@]Ôì@‹¡æ@?‹.@áQ?ƒœ? <í?l­±?€É¡@7:(@ZM@'¡q@±+@ €@ ~7@"¼*@%Ûé@1.+@1í·?æÝä?Çf…?ÎDj?Éû?Á!Þ?ÀCÿ@ÌR@ !u?¦œ&?Xò¥?Ù?ÿã7@~ï@ •?i¸°?À¨@MÏ@„@,¢? µ¼?=jp>ÿŠ?á±Ä@m]?âK5?¿*?áÏ™?ø;?ÿ^}?ùˆ?Òq?¾¼Æ?Èm[?ÒÑ;?£ôR?}÷æ?¢0R?¾ZI?Ú¯Æ?õd +@e}J@¨—}@P¿Æ?ƒ ?©9á?Ó% ?¹ú¯?’ ?É4@ ·?ÕçÂ?1qà?¢J@f2@ùã?½7;?Åû¤?ÛÍ5?ê +ù@er@Òq@\Í@ éÖ?L 1?3xn?I¼Q?f28?ãÃä?æ¾#?Š|Ì?tŒ?üñ?þŒÐ?ïfó?éö$@‚¥)@…߶?ÜV?ª!®?Êp?ͱ?„ñ³?hG›?B+ ?<Ý ?Ë@¶9?ض¡?»î?¾3?ƨÛ?šdñ?E2º??Î?7€ ?¬v/@µ†?æê{>øm?Óg?j‘¢?™¢Þ@ë@?ôYØ?þ°À@îk@u±_>QNÅ>b²†>x¾—>e:c?Î ?+A?å10@Ù{?¸%8?œã?ml-?2 ì?íõ¼@4hÜ@ +²?º“l?ŒaÊ?é}?ŠdL@ Õ¾?ùÉD?·ØÛ?«Ûä?£F€?¦þ-?¢yz?¬f@Š@ð‚?žì?trØ?ÜCŽ?úF?¶,T?”j?µP"?Ǥ?ï‘@»÷@ ‘B?ñ{ƒ?µy|?¯Ô?O&=?ÚÃ:?ÎqÈ?-A€?Dbd>˜˜Ž>Ž$¨>`i@>r•?H¬Å?]-Õ?R—z?HÕ?I‰¢?TF?oµí?ßO?ƒy¬?„5Ø?x·?påV?‡'ê?Ý(è?Ò½¢?Ae?6+`?;”ü?G¿Y?Esé?=Ch?‚ÿ?•L?Í#K?ú²Ž?©"?dÔ·?LG¿?*9?'þ–?`º?f´?´yI?´šÆ?x«1?ak'?¢ß?¦ü?Á >÷o?ƒ¨ ?†8H?•Å?£MÏ?è-À?Ô2´?Õ+!?ƴͪš?•çî?º2[?Ôjù?ë-5?º‹Z?yJŽ?yƒ0?k¥?Xþm>“” >«,H?ª‘?°UÔ?™è´?–²ñ?|…±?B‡N? ›?ü?! £?[˜×?rÍ +?°ÑÏ?¬ÿ°=äÄø=êûF?(ˆ?¯-X?Óx?éc­?ª?ó?5tú?—4î@ÃÝ@ p›?ˆ@S?… 3?jÈd?h‹Ç?hn°?h^¯?µÊ?æom@7Wè@%M@g Á?gÜH?fÁï?HdA?Ua?^–ç?wt?tX}?gQÈ?¬T?ä? F·=_â> ´~?­$T?ªÚ+?*s?)¹–?½p“?椭@@þ?élF?D?”r(?ÑCš?Ô¼#@ §¨@é„?0ÿ=ªÃ?@¶ª?¤½á?±[4?Ò›µ?¿O8?ƒò¿?‡Œÿ?º'5?ÆR‹?†¯4?f³?é?ŽQ;?|÷:?G9o?Y€?g8)?^zÊ>þý +? l?©F.?±‘Þ?&@?“ŒN?°>?”H?¨r ?ÕŠZ?ãJ–@Tf@vð?ë?åYy?y)?g³?ß,]@=ñ@Ý?Çà?°O}?75??¦-?4³?#¤Í?¤©0?®9??® +Õ?ªõ$?‰¥“?hè&?0t >õ® ?qóµ?éÒH?Ø“ª?«ýž?¹Îo@ †^@ß?¼EC?¯ºq?)ö>ÈB³>Ù)Š>ìÕ?1 ?lœi?š>—Oy?„—¾?jñ->ÿ¶ê>ñØý>ýXÈ?i ?;o?? Ü?&ëù?ß1@bÊ?{kW??k‰?hy?sSý? å«?«Ê%?%œ]>¿ò_>• %>SÄŒ?eí?Eˬ? 0§>ø)}>ó,=VȦ>‹Èê>újB?qP}?›V{?B1>üÕÀ?ƒÜ“?Å33?‘aS?f¦?°>û*”?aíï?qPÁ?°?ãv?czW?8”=wÙ¸>Î1µ>çÐ>?¡1>œ1ß>—ÿF?|é>º>”ö>Ì 6?#¨ð>Þ.Í9üª<>Ñ @s @)]û@6(Ò?”É>„²?R>²˜C@.k@ sñ?´"?´_‘>½¬>ZöÃ>Ϻ>ñâ¶>'^>„„€>ó+Ý>ówÇ>ð¶¥>+=sT°>Z`>¯¨Ã?9t?¸ë?«Ø¯>ƒMƒ>s?³´?&<Ñ«Ç?Er?ŸiÞ>”'fB<ô>Š ¡>KÈ>}0>ßêß?i¯?«uª?÷Ä;?°æ,?]Dd?±R> +¾¹> Þ?–?†1?Z>«+ò=!°>­Ÿ?Xp1?-ãD>¾i{>Û(?*„á?*.0? +› >üm>ýJ×? TL?.Ó? ~>¸1£>®ƒp?én>÷ô«=Îp>/”³?†|ê?Š¸:?~©²?m¼>þÞÏ>è~>4ºl>Œã`?E…?7‰K? „b?%4ú?›¶?ŠDn?ß?ÜIÁ?¡Rý?–o>xJ)@-?ôž?€6 ?…•?¤C)?—ëº?Xoo?d¥®?¦v6?£‚­? {?¦Æ?ÎÞp?³?(ô×?9ÜZ?Žî\?°qR@,B•@"?€Í«?3?€Û ?„c?“@´?ƒƒé?ú>ïG`>®ßW>×wd?6? ?΢>€ÜÝ? U4?›¯?j!>¯K®? \.?dZ?&kd>=÷—›=¶Z?ƒ[(@û-?ñÉð?Tg?&½¿?ñÞ?”+„?YüF?[? 2À? yñ?h ÷?™³«?—ì#?™á@?¤JT?° +%?õÚ?NâK?;"[? ëk?RðI?z}x>¢F.?'ç¡?bÓ?h0Ò?haQ?£Š|?¯ëp?På´?3K¬?ºN ?È‹…?^ÒŒ?H®r?¹ Q?Ãe÷??æ*?(÷ã?#½ç?ƒw?ÌÎ÷?Ítÿ@’@S¼?‚fø?„V'?¶ð¯?°Üp?ºYù?»?Òˆ¤?Âo-?]ž’?EpX?«£>û>ððW?a?ìC?|iI?Å@¼Ã?¹Q?ˆ{A?F-?ü?Û?" +•?x•`?‡qÃ?$sÞ?;M?ŠÃ?¡¯¶?¤AY?«ÅÑ?R$´?6 ?Š?ƒe­?pìo?`˜]?Ît>Ó§ì>æ_>ÜÂÓ=QO >p¿ü?ÙÕ?ä=ò@8&V@üð?YGÕ?u­§?¤ÓÞ?¼É=?òK‘?Ø–?·æµ?Ô)?ìïð?÷C@›Z?Äàv?ƒé?º*ÿ?Ö™c?@ÿe>~u>Úê?›?¥R?Æp?õ6À@€™@†v@{;@¦@]ñ@Ý3@ÓŒ?ÕŠ\?æ—@8ð­@ L^?„P ?j =>êÈ?_?HkT?¿j?íVe?éži?݃¥?Ç~C?¨×›?ÎÂ?û„4?®Ô¯?KŽÛ>¤ž=?…ˆ_?Å»?ÌÕÚ?ÖÏä?—š?„¬©?„±#?„µ ?…z?Žäí>IXô>qÜâ?Ç*$?½Ùÿ?LXÙ?]!û?¨ \?ª[ ?¬§Œ?©£Ø?šðü?¹æp?øMÊ?³¾g?ÖË?rß;?®3Þ?š?„ø|?ƒ‡?ƒí’?)o>ô±?d5?…·?v ß?mš@ +Ü@F?ÊCØ?ËAÚ?.»? 3o?r™ª?‚…?ˆ3?¦…L@"£?Úw?2°? ‚ï?'ü?.¥¿?n­…?‰€f?—æ0?—¢?“çL?Ô¤á@«?Ûª©?ÃyŸ?£ÙÆ?Ÿ‰¨?Ó?µ?â?Š?¹¶´?º-—=¥ë|<4†è?fpj?i10?†?ø²?H&U?{³ ?ÜY=?ÆŸß?Ùë?£º=?¹†M? ?jÈœ?Åeü@ +ëÏ?ßûS?¹Àl?¾!Ó?‚?óï€@å?¤Ù?…-?ëp?ÿyÑ>üPe>¶Ä>Ðÿš>ûfó?Þ´–?ÒÒí?… 2?‡ú.?žê?³MÇ?ê„Ò?äbÖ?Ó„Ï?£yý?ø?—P@ +_Y?Û™1?œ¸?àÖ$@ ùä?ÿ½?P‡¯?±@$Q@C€?!,>‘v? Ñi?¦z9?Æ…?ÀÞs? RÎ?6 ?âe‘?÷B@'¥´@Œ4?Çn?Õ?ý Ç?Ý´9?›'V?Œi?f ?Š'T?Ÿ:š?ñÚ«@!6Ì?»‡=–­?û3‡@EžŒ?ÜÙN?™¬Y?äøž?÷ÇÜ?%$ >͇>ˆ0Ž>ˆØ0@>ÇQ@HrÐ?ñ]U?ãïš?ì¬ê?äs?ˆ×?ŒU˜?ãôá@`d@Râ½@8û‹?Çy?º¿9?µ'ÿ?·A?¹]ß?ÂðØ?Î/ @æþ@GÒE@ æi?„ó@Ê9@Jƒé@Ö ?ζj?´§?¸“?z?Sõ£?=ÿ4?/gÁ@Þæ@ýz?í?ÞÇ9?åô^?ä(@)Ð_@1Œ@?S•@D°?úé½?ôMÕ@+H@+Ù@8ôø@90 @É @Ø@AUá@?,\@! ê@)Ïü@b>@dJp@lß @Tò¹@¦@è?§ž'?˜´_?]…M?„Á2?¨ì‡?Îö@Y:@ÔY@5@5lP@d5u@BÑt@Z“@!ó¥@+EÚ?½Y^>I_,?$J?Šmé?‹Ls?Ší?í–@"6ì@eì#@ˆu\@[}G@9¥…@Ѧ?²)@ +Ê©@-¨@ +Ñ@¨g@2Ÿ@H€û@-°0@!ä•@,–@.?Q@RãÐ@j ¦@‰x@‘µ§@øÿ?ÁØÍ?²N?¦áÜ?ê5m@t?ÚX?É]¯@¬Ä@!+³@n @Ò?N¼>@žè@Gææ@O`s@O(§?ª¡k?YÊz?é}†@S6@2¢&@?€Æ?è¬?ºd@ å@,²@0Q?èx@ñ©@G)@@ +Á@Àó?øøÎ@˜d@“Í@#²@§8?š¿ ?fÄd?ö¸ @H×@+‘@1‚8?æ‚4?ºdw?Tq{?Mé?ûßÎ@%ãO?ÿ›»?ãý¥?ÏÚ“?¾¾5?àfá?ì.â?¨(«?}ú¨?«]$?Ë>]?Ã]b?¾ 2R?Lz?2Ùœ@5±q@9g?½Šü?¿Ë+?(ŸP?.ûì?ù@@ Œ?ò@?èÁ¡?Ó™©?Ѽ?z“?DS¸?’Î>?šïØ?š‘Ý? äÍ?Ýøñ?û ?¸™?»??Â7§@’@ DR@Ó»@'Ï@=‰@ÚÄ>øoÀ>þ¡? Ü"?r£@ ”@ ¢?­&?Îsb@Šù@‚~m>‘>…Ú>ð7ú>÷2?¡W?ªù @ DO@@ ?¤h?Oq?´v?äCè?óÀ?úZå?÷BQ?õFs?Žžï=3xŒ?´ÞÄ@:Ü@ª-[AMh@ó.@ûs@à£?„Þi?€3@Ÿá…@§(?òëw?¿Î‚?i@i?P?Ú Ã@‹°@…ä@ƒÇ?…ëÅ=5”Ö>Ý…¨?{ÖŒ?TOÎ>ó:?Ë«@#­N@Fb?,ª%?#Í=?E(??ߥ=<üt?­\Y?ÎU)?Ë›?Èç?dt >ñ–Å?ƒ«¤?Æèí?é9@çÖ@é³?³>T?©˜w?…ð ?Š 2?px ?p^Œ?P0å?G¯O?,JÂ?+8«?-"?:Oò?ð%@3š=@cé?¹« ?ÅF[?Ëî¦?±+>îÏ>ûº?é¨ü?íA‰?„­?n>l?æYs@*?˜¼'?%¹£?VZ'?Žn7?†³­?k÷"?¢üù@0pI@7AÇ@3‚7@7¿ @¬*@ín@ˆ¿@ ¦4?Ýà†?²qŒ?°å€?©º??¦¼"?£°›?¡Ðï?Ÿ¨º?“¸¡?ðrê?î>é?¢xÎ?Žh¤?·K?Ù²?½D@?Žû¾?x;?+{#?Dôè?êà¬?è-#?[7.?JÇ?t4?‚àó?‘'ª?A¥?zì?)…?7O@).@%7È?›g`?ž€Ä?§`£?›ñ?d`?[3‘?#÷ß?¿,?š´Ê@ß@™?óËÑ?èz?¦'ì?œH`?ï>Ñ–3?9[?gWÞ?×ÈH@*8@ +ƒ?á›?‰S?¬•g?­(G?˜ø>æÃA?m` ?”°Ž?¨É;?ÆÕ”?¬º?6ŠN?eìA?Áá?½‚?õ-@T¤?Çj)?¯Tw?ß"=©¦j>ö?ˆf›?‰ö>?fG?f?f Ì?f’?†ùÂ?ˆ~ô?m‘ñ?G¸Ü>òŽä=Ö‰>³åÔ?¬;é?¦®À?W©?P"N?¯C?¿L”?Ë5?Ì »?’æ?7*þ?lðH?¬æ?ÀØÁ@1¡Ý@=µ?ïh-?æá0?µz?¢®ý?‡®@?„VÎ?ÈG4@w@?è•a?•ß?‰6?­ï?®a?®#Œ?®;µ?/›2?ký? £K?öJ>¤´?0ÖS@D@QK? 7?)?ÕT?Þ\^?ƒo?mñ?Ás7?ÌÄô?"ò4>ëm?yˆl?Ò#z?>>+ˆ>ðÄ?¦4(?ŸŒï`>û?ð˜Þ?Ý”M>ºå‹>uíÆ?‰¿? QV>…¯„?+­ú!=òÞr>#©ú>›û¨>Ø 0>ø>­?=/À?v-Õ>×Ü6=r#¨>ê™4?H“>å €>oþ¡=¿Ö>Ý A? > Â; U€>å~?ˆÖ?Î?õ¸?Sà?¡þ:?B¨¨?ø>A'=§a;³Õ«>® >ŠìŸ>têÙò¦Y>©ü‹>Ž>2 .?pc?„‰e?QB“?_ÜU>Œn$>„ˆ>àw >ñ¶ä>¤©v>PØá>ðýQ?â?E>óT¼>•›¤=ç´>¹fÈ?!^k?߀?Ä4þ>gb>‹e`?WMÀ?lHq= Ä>-“¹> Lq>çé´>ÿì>òjº>åC=öò +>y*e>¯[Í?Ž?/{Î?Š?ÀpÙ?ªt|?ŒJ”?g?ÁR?EL6?{:Õ?’4P?´à?ºìœ?µR>?ÃÏl?éñ?¯0…>üx\>Èøo>1îâ>‚ia>æ3¬>þ§Ó>ýM$?)õ˜?§!û?®r?Ÿö +?™˜Ò?ZÏj?™¯@èJ@f?ÌY>ô¼‚>!ç?Ú‘@Ë?þy¡?$*˜?‘£>èâ?RY>ä׊>ÚÕ/?%ø‘?=C?Ð)?_7]=¡g=šûä=þ )=Õžâ? VL?#Ž?z.? +Ö>ªOE>áOV?(Úv?DI6?š¶å?Âq? Éû?«~?Ù^þ?ÑÈ6?€¤íî]=ðí`>ãL.?—Û?†Å?Léê?1x$?'‹?Vq5?ÁΕ?|Ü%>‘Ìœ?=”è?RM?YÓ?ôä?ÅÞY?Œ(„?"z?MrÅ?~²?±…?›.ó?¢¶ž?¯ÁÎ?‹Ýñ?RçW?BD¶?=E?…ÚL?ª•¾?œ˜5?’`’?— ¹?”y->þ–t=Ól?„k?ÂÖf?\à=b´Â?7Ì,?wªÒ> ðÑ>_?>2fÜ>]^„?¡Ú?Ã*F?Ÿé?’#ü?Òjš?á)­?aäã?>­?¡j`?ªÂõ?_¤?]Øé?’ [?‘@Ã?ù6 ?ôÙ?ló? "6?„£?j-D=Éš\>“ë?‹òó?ŽŽ§?‘,(?…ÛÝ?*?$˜?­ð>åã>X4?*Ø?Ä%„?Û«Ñ@Ï ?óZ[?âØó?›ˆ’>ÉØâ?†²?èj?œ¦¼?ƒ:?Rð?„1’>ë™=©¬J_§?!!à??Ï#? W3?PÍ?dM? µ¢?¬è?¬6@\$@7À@¸|@§E=…A>-éV?†ýs?„˜ù?…2x?Š¹Ý?‰ö?»B?ð«'?¿Ó@?Dzï?}Ýq?­Ó—?Ÿ!õ?ƒÌÐ?«ZÐ?ßëÝ@ N#@Ä ?ÑõŽ?ƒë?û×±@&¢s?Õ·?”Æ?‰7?uRó?À”î?ÓD¡?—ÜD?‡Ä|?À(?ÌÓ?“Z9?“ík?¢ÀÏ?¦Xí?@L?y¥C@+£O@2Ý?5ž?"q>”]â>‡Öþ>‡N? a?&&?£à>?ë?ÓÛ5?ä" ?¿)o?u?éQ@ní?ªs ?(ì?¡ p?Æð?öPO@#L?ZUŽ?ö˜@dJá@x´Í?<Üy?Æ»?5t?Fíª@ …Ô@•›?¨Ú\? w4?„Ô&?‹ïú?ŸÄ\?ª|h?ÇTd?¸ª®?£Ån?¬YÍ?¬«ê?fW¦>ÐÐ@?H=H?Lü>Ð{³—G>Ë?½¢ø?­IÎ?(a?Vû?E;{?rqb?Ó#Ø?ãÏÜ?øœË?¿£¡?O£É?TNË?Zf?±ó@Uæ@·@¤õ?}ÈÀ<ç%?‹ë”?ÇÏ©?N’Å?–?„{ü?’?´ïÈ?¶„?ŽÄH?ˆ©æ?ÂŒ?¶a3?…9;?‘2 ?ÈÕÔ?Ý1Ô@Ö4@ÿ>?ùȽ?£^Ç>$×>üû?f=´?É•ä@ÝX?¢ÅA>ìêG?”Z? ó?^?¯º?¨[Ô?Á¦ö@`­.@uTö?ðí¹?ÎÑ`>Öj†>ÖR[?Ý'D?Ö Î?…!¼?s¬?¬?3„?§žq?°dm?¼uà?u.?ö?,\|?d"¾?& +…>¯•N?½=¸@ù˜?ª$þ?ÌC>Ž…i=P +?FXï?ß?•¥d?¢?ÜÞ?Úâ?Çñù?Ç>Ûz?ƒ2?Ûr¡?Ô‰c?îÇm?îùS@¯.?ñw?¨1©?° ÷?¹ë”?¦Kâ?…6«?l×7?LP?²‚7@§@˜—?ÿÌ?¿O?Ž°.?®Òó?Å}c?˜±Þ?„xN?»ÓÞ?ÎÑñ?®¹À?¡1Ç@ú @Gc?øÿ@?B?mJ¦?†ñÚ@*ì­@%@3¶@ 5]@@U¡@?E@Mg¡@BT@Tì@ ?Ú'¶?ÏiÁ?ı~?ÙS¸@ì @/F·@fÉÕ@e|º@e4†@Ró€@Eª.@?‡ @8k@L?úM-?Ù48?Áú&?Ç]d?Æeï@…ÛV@žƒ¦@vþ?§j?Ûó?çvj@U'ö@`ž?çõ?Ùõ?Æè?Äþš@Ö ?¬.Þ?ÛM?¯ˆ?—Ö?öÚ¥@£©@ÿ»@R;@µ£?ú“ +?ñíW?â¦Í@$ÇL@p´@+Èø>ørŒ?š›?j‰ð?‡?³?ÑX?Ç®o?wæ€?„¢?åôx?íÑZ>÷ƒE>÷gy>€¨">„øø?ÇÀ?ßV0@^,@v°?Ú²?Ìíp?˜W{?vi§?àé"@Ñ6@ C??öü?‹„+?'Q?ø%²@‚ñ@R1@K’@?vú0?Ž×t?·Â¯?¹TË@Ý@ò +?껦?ìr?6!ù>ôMç?ýÀÄ@ü˜?£S??€?\Öq?„?–õt?´LL?‡é >ó>¤?Ieè?Ûù?ËyA?ßœ?†'>·N>Ìë??!X?3'ª?«k›?À݈?ÕýØ?Þ‰q?„0{?Ð…?²ßY@0@»h?êqm@GJ@ݧ@ ?â—?ØC”?p€¡?paB?ÆvO?Ç?g7?<a>ÉÄ>dsY?Å 3@(ƒ?ô®>?`Ô“?ž‰ @f1?ýãQ?)\?+<°[­=Hí¬?XÑú?nBÌ?QÉ8?]<ª@ ÌÜ@6‘s@Š?š>?pH•>í[q?%8è?±Ý?³­A?ÚÓ5?ÝX?ÊFQ?Ðg{>øM•=d,¿?W§}?±…?˜í²?{>Ï?Ž`?°Ãà?¸Ú×?ëzm?ë[]?¡w?¬,I?ô{È?ùyÝ?•â?>äæ?©MÂ?öØ@$,@tÚ@‹ @{‹@t?¼?ðp?à,m?÷ó/@šÆ@ +Å?Ã,ù?3?Šû?ùzý?ßíœ?hع?h¾¬@Ñ¥@]«?)üÆ=|§Å? +˜­?aù?C)ì?-t±?2©÷? >?C`?{K?‡n-?o+Ü?g~q?Iðâ?A³?VÒ°?g5.? ò?ÑF¥?ÄÅ)<Š™³=ºŒ”?“Øx?—»Û?7êw?T)?ÇØ>æ“ï?X?×?(±Š?¬=;?¶µh?kf}?fG&?Àç?àçò?â^§?ÔeÕ?“þ? +>Î?S‡?ç;Y?Ûû ?±ýá?ªµ?—›¡?˜ô?µ‚?ËÌÏ?¨ŽS?f? €?¬•®?¬E±?¤Xk? ““?ó§?øyí?¼=²?©ØO?µÊ? H³?VXó?¬è§?ž¥X?5â>òÁ?cÙî?v?yT»?~“¼?,ôs>çCº?Œ4@µ)?ø¸?Ê}Ò?×ñƒ?»~'?·t ?¤ïi?«Üº??\Q?‡FO?‘—?\V? ½½?‘97@Y÷@ÕB?˜åx?ŽÓâ?X#&?a/4?©¢Â?­Ÿ¡?L\?<=k>ÿŠ•>˜Ï[?›vE@\ò?¶š >í@$?$^+?Œ8?_+b>î|ó?.Ï(@ó¡?ø„?{B‰?‘8¨?´i>ðôÍ?b¨?qÄr?2å>•n}>ÚÂ0>õ§5?f¦?•ßü?zz>?N ÿ?#€ >ûH÷>* >·¾?Ëà>ú>ø7X>Pp£?ŒË?Rlx>î\W>yÅe>©ªÂ>ŸÐˆ?!Ù=?]‘z>VQs?Ly?hÓÃ?]Šp?QQ~?@y–?WÞç?®!=?°Î?aý?Nƒ:?ÉÅ>ƒ—>Ô u?F<¿ÝÆ÷Ú>Ö>ŽSp>¥Gö>Õ£ÿ?Àþ:?»ÈÏ?ÑŽ¸?Ô>zs[>Vü˜>‹I¤>¢# +?BÄ?>íŽ?¨:5?Û±–?aæó<$øÛ?_?žõã?˜²×?™e?– Í?¦ÉÑ?˜Ä>zd>{K0>Ì $>°˜w>•+p>s†?j%þ?wã?wÐÙ?x ò>KF/="Ã2?t%?–þJ?nP?Sðt?Ć>ùºž?Q{o?r0Œ?'ª>ú~=?)#6?XêÕ?x‚Z?‡ð†?LÞ>ûŠV?cÖ?¼å?€Vz>”¢4>‘üò=ýÄs>Û2À?t­?À6> Ú”>ýLx>»°z>^,?ý¢>ý¤„> +}ª?6ö@ s@ w)?v¢á?mY +?U©˜?CLä?FÝ?o;õ?w?m Ï? +ÀD? ¦Í?F‡?;Y`>²c4>îÄU? /î?‰0õ>ØR?,˜‰?ðº¶?Ûì?+u?(œ~?¯éX?§Ç1?•˜‡?}Ye?cu?úJ?€uh?egp?~ >ýe$>™mñ>ðÛp?€¨æ?yÔ?eA#?V|Ó?0M? %¨?Ö?fxt?þR‡?ç¢?®Óá?´c¿?ÅŽF? ¥í?T¸'?6µá>Õˆ9??év? ûQ?5š?§i½?U!?AŒ?ï}?´Û?].?«ù÷?ûV ?©â"?vN?v£â?ºÌ#?ˆ Ž?5ȱ?@õµ?L ??éÆ?2ÿ?ä?°U?Œ°?·a¾?6ZÓ>¢÷Ð?E°:?Š°§?M¡É?V:?¤e•?ʪŽ?ºVÔ?»Àd?F–?p?—ù ?©Ä‡?n!ß?Löp?‰ãf?•Gô?—øC?š©Q?wÆ?y~v?¾E?¾:¾?V³?S%D? ®?ÃK?¡£Ñ?¦Šq? Î?£€Ó?(§}?=%ø@¸·?øÒ?·k`?”¯–>îÿ>µ¤'?‚šú?Oø>+A>ˆ0?°?`®õ?Ï”?®@Ï?‡}?¥Ê?Ó"J?y4½>?…«>µA»?¯Ë?+%­?‹¦Ô?¿v†?Æ´?ÅÖ?—ió?qqŒ?0‡c?yU?Ý?!…‚?„ ?—_]?HµP?!àÈ?·.?H>?=‹?@~Ü>íòæ>ÍKØ?ºÃ3?É}œ@)©›@+ZÅ@wÐ?õÍ_?%…#?>§€?ÅS{?¬2?vx? YÛ?=(?ÅL?Fœ]?[Ï~?gmà?Š±y?°Ìz?›ûî?ƒÍ?–?§D6@!øÞ@fÊÄ@ +ì?ƒë)?Ÿ2)?°ÜÒ?ÌèG?ÖM÷@µ@#k@8@ç°@ ½c@$/@ÙÔ@²Ò@%½@x=?„6£?Šï}?ÜMÔ?Õ}ä?Ùß?¸>E>A)?‹?ׂ-?¦è?£>û3n?lF>ß(d>«•¯?yæÂ?Ï:b?Lîô=à‰^? Œ=?O¹y?ôT@#Z¿?ìÆë?Æð)?˜(Ì?Ž*Ñ?Ï,?®Q?öë@ {œ?{L~?aˆ¤>§7>ïð?궓?èyI?¢à'?¬Kä?Ä]µ?É¢ ?â}?èIŸ?ôž|?Ãêõ?qu—?ÎÍ©@f@,&Ý@9îµ@…D?ü?‡å¾?¶?¥™?ÑR‰?œQ?Žu@„@ý2?<£>À]>·Zç>ÓÆ…@†?û¿w?…ï?… j?… Ù?¢)?ôµ?ü²@'@ ,Ç?Ú°°?Ù¿?Þçì?Ûåñ?ÑËä?ºNX?¡—?â¦@'û?|ñ?è,?£#?·™-?뀌?ñUÜ?›°%?–6?õšÐ?ó½ý?ßz®?Û½—?«Ë£?§wx?¤y?º…¤?ìºq@cî@&Šƒ?÷ë™?Xç’?¡E‡?éiÐ?¾S~?‘Y4?.ëa>šË?¼H.@àÆ?xH ?3ý>8͆> +®Ÿ@0g@5¶]@ Eà@,þ?lð?wçQ@]@àv>Ë„ð?Û?N© +?|Ⱦ?Åîc?¼e{?¶ Û?ªÞ?‰¡®?Œ…á?ê¡?¹äÙ?åŽ2?ÒÙD?LjÀ?ÂM?Á.¾@õ@$>w?Э=-݈@ã@š‚@ –=@ s?P'ª?IKÃ?òìÅ?áG®?›ô?·d´@È@Ck?ÌÜ?¥uÙ? Zk?/@5Š?ýU(?Åe$?Ày”?´¢¦?ï«@ªW?â×?³gç?Û¬Ö?øÉ-?‚ˆ?àV@²ä@?¬N?Aôà>;z>nïr>‘3ý?Ûa?÷²”?åMØ?ß"ƒ>¯UL>ÛZ7@U›@¸¶? 0³?»nÐ@¿]@"7@5@ú?°ª:?ðÎ@;µ@@er@E·[@)j¸?õÓ@%† @Zñæ@1`²@)P?é¤?Ò, @ ÷I@EšZ@ ób?Ò;ä?ŽòØ?iu.@9U@Úp@ˆôƒ@®@I–B@*ü?ØúC?Å_@MÍa@]›£?¯à:?šnS?¯'S?´OŸ@,_±@$LR?'Š?d?£·ÿ?›É­?–lé?¾)@d2´@hó’@ª”@{®D@dþ?@Rx¼@½9@ý¦?ù„G@OÇ@=k@÷@=@9Ìç@6‹À@U%g@ƒšÑ@@]?ß-@;l@NU¨@D O@>˜.@3»Ý@"Ç“@ÿ@Çÿ@ ¬×?úìA@8êê@b†N?Üò?Ž@1S @à)@b?Âg@u¹@*Àš@F'[@Wª?ñv ?›RÞ@© @5§´@xEq@‹ø™@›¶?µ”o@Š@ †ñ?ÁÕó?¤!”?Ñ`É?ÛùÖ?Ï4A?Êoy@+ a@?P=@)D£@!ƒý?u(-?Âœ?oV)?€Ës@‡›–@Em@ L?Àú0@€‹´@ @ 3÷?Úék?‘ÚK?€mý?˜Ås?˜# @"ªi@;x?åý?ÀJŽ?ÎÎ?ÐV#?ì?À˜?êîä?ø‹¨?aó¨? Á?ùþ? §Š?Ö—@Â?d_{>ÿHI?î?H?Êvw?ñ¤Ž?ø?÷uI?Þ¼y?Íâà?¬ñm?žV=?ÉØ$?ãµ?• À?QÛ?Ú{w@ sÓ?Ànr?v±?¦ež?Æ÷ñ?ê†q@ø˜?ÿ ?ýµg@rZ@1›m@ +?à¿,@FÉ@—YR@=—€?#1?²£×@,$›@EB?Å_³?µ”?Ÿ t?Ú¨@-ßµ@?З?øû™@E`q@5w?ÉFÐ?ÊïÓ?ëÞ?çÈ%?‡ùõ?‡¯œ@Ü@Ë?¼îO?¼¼?÷4â?ú~×?Â?»¼>ö‹˜>°~ð?ÀW#?Ö¥m?=Ò>ûJ?ªÙÇ?ÕŒÅ?âmË?æOË?ïÿŸ?ù=?‚Ý…>BŠ:>³…Ø? AA?Aóc?„K?zí4?t>ü?› Ê?ê‡?ô,%@fn@ª”?©}¡?¢Žö?w³˜?uýü?Cfì?>~ì>ƒÈ>d&†?ÀoŽ?Ðê_?¼ü]?¹ Ï?€„µ?N]r?f?vnV?§€ò?À¬ß?ûªå@Zí?¨°>Þ§:?$\?…”5?ß?˜¤??m%>H9ó?ÛX¹?Ù(i?ôù¿?ùì?²hˆ?¨u?< +?Ö˜@gž@*T®?æô6?¯G@Ý6@1¿¼@Câ6@P6@H¹Ã@> +‡@$È?æD”?ÎÏ6?Nõ ?WHo?»¦$?®‡§?Óåë?Ó]4?œÌ2?‘e‹?›Áˆ?¢RË?|§[?V]?‚F)?›¼ê?‘Ó?q+ì?qæ?|å‹?E'?»ë;?º)×?p…>?pe¯?e‰:?uë?—gU?™¸i?/Ô£>ï»;?§¯Q?ýêº?èçã?Ìäm?Úߧ?ï Ñ?ç“?¿P0?¹‰\?³qÖ?­G?­g8?«,{?t$ +?S¸I?r 9?–lj?ˆI?X¬M?R£?1?<΋?ƒ’?Žô?Õæ?Ï#*?9$ ?'?`nT?r˜ ?mlQ?p¶à?‘)\?¨Î[?šÜï?ƒãE?ƒ$a?mm#?BX?zmB?mQ[?ö0W@ Y¶?þü?åœ×?Þ*„?ê<ñ@Å‹@ Æo@Äó@/ º@,®,?]ã«?W¢7? M?»f?“?»?“?PÈ?, +’?¤v:@"¢`@Š¶?¼2¦?¯p¿?k,1?h˜Ç?­ÛO?´7®?óÅ@ q„?Èû?S‰G?qŽ?¤àò?”+#?9-Ñ?2ŠL?/KG?6.? C>ç]Î?Xý?•Ô?MêÊ=áŠ=·Ð,>ᵧ>Ô6 ?¥Íi?­­?¶Þ?¯¿À?‘£ ?u~?TFU?@£¦?R<7?=O^?/H–?‰G=?ƒÑ?ÃK>æ=?à µ@ /)@^Ù?í¡Û?܃½?Ô?ÞF$@ Ö¨@^?X? +?ç$?Møï?f+?s¯š?xêŒ?jip?i°®?ƒ¹Û@Žb@Äb?ø:R?úü›?† ?+þ?fd?ˆ¬|?m?ÈCF?µ<?f©Ö?fÃï?áZ‹?Ý£?C3¦? c+>›³³>(a?ogÌ?ç g?¸0I?ôa?8^ó?çíI?è+? Ms>ëÇ?QP¨?h¥J?¶`®?ÙÔ?ÊÜ ?¸ba?»Q?à6‚?ò¦£?êœ?â‰Y?e]?ɱ?bl?s~Á>†º=ÒàÕ>²À‚>ì0¨?s9Y?µs?…H>íH¦?Dj?²j§?—«‡>>ÝC¸>¦þ¿>ýoe>@Ø>7a!>ì’>ñ?<™?N–ƒ?ÆÔ§?ãYÈ?‘c$?q_8>§ :>0ê?š ?ʆY?ÖÅY?Óó}?1ƒØ>Ìë?4À‡?„¢Â>Ö…§;úŒv5y8>µtz?$íI?8þ2?f[£?~pv>„]F;þl…?ε?ä—?†¾=?}^Œ>…Hõ>•žá>m>‚=î5±<»šT<´Ïè>ò²>?Mv>€™[>hïÑ>¨Ø>›I%>’+ +?áš>°ÄQ==Ù—=ó•>= ó>@AY"@Htú@_oË?nŒ5=¿5V>ì“Z?e‹ò?SÌ@#ˆ¥@ +?cYª?‚Cã>ðK>ð¤þ>¿#>œõ>€áä>I•7=ÃTÇ=2}î?¬W}@èÖ?¸…?ûÒ?qñ?·m«?²?|?¡•B?‹+å>õµ0>÷L?e?!-œ?Qâp?Xùê?ISC?VÆŽ?u©0?wú? ]U>ãN?Ä?,Ë?•s|?¨=?u…?F[]?‚8ä?ŸÒd?Uä~>úuV?›é?&?|Z}?²9?vFÏ>íO1>ûS? mT?å‡>ÖRÕ?.þý?D®?‰7ÿ?”ïú?e8N>ˆ§â>})·>Že#>]ô>ÀGa?«™ù?”8t?[ù­?°G@;|ï@!v‹?~*?~ŸF?~·©?rõX?<]?@P?#~?ph³?:1T?3Ì >ÿ„£?À?SOÑ?u„?¿Ä÷?©ay> /=ÚEa=pã9=âuÇ?/>Ü(d>GÝl>²ÐÒ?9æ?75?g^?P§b?ñÒ?¼®¼>~ƒV>æ¾>ÎðÕ>òTû?Yy?>ðZ>É\?Ž@?ˆðõ?f æ?Úí?¢ü? ?Eâ&?ŠSï?‘Vç?Ÿ^?ƒwC?²>àè>—Pˆ?6w ?Â- ?¡«‹?M³›?#·‚>¥˜R?šD@#òê?ÃM¦=•í?Dñ?…+«? ÇÏ?¾yê? †Ñ?‰½?€®/?iÊ?.á/?=?¤7?©?Z$P?‡²?ªy?ÍÎ,?aB…>ÁX >f´ƒ>¢Ü?&¥?i<Ò?Å ¬?ìTÚ?¾’=hý>É%1?ÿ·?rZ?Šq¡>®°Á>\"ˆ?3?([¸?yÅ"?‚+§?Sh¦?Hæ­ƒ×>¡x>¬>¼Qá?$-?á=ºÀÄ>s…?ñ‰o?â¶k? ù:?GAÆ@‚í?ã?`Cv?HÊÄ?gñ??à>·+>ÇÈÐ?²?LÑ‘?¸§Ï?ª¨3?|‘G?cüí?Rë9? #æ>"U?b—£?Ó˜•?·"®?¥ã?ë?F©@‡@Cg@Qh?¿’¿@:È@+ª?Š Û?)€?h;?ƒ4?Él?Ô};?—…2?‰;?J£??I'‚?œ“?2§?4y?3¹K?Å&!?Ê-^@ya?üNÿ?³ë?¹Ä_?Áˆù?µëý?‚XÉ?Ú?¹<?´i«?¯•»?¯»š?µÆT?§¢è?˜j?ʨ9?ýœ?ðûy?éf_@Fc@8‡ÿ?ô4¹?û‚?YÙ ?2Âu?¼TÑ?æô?‡¦=¼S¨?LŸX?z7@,J@!¸Œ@Hê@(Ú@B„ò@<î›?¹?4ˆá?ÔÝ?ÆTü?Q%?v, ?©‡?Âë@§^?è×#?Fõ€?^)<¼ ?¤µ|@ Ûª?Êòä?=¶ˆ?×çÁ@6,@ìŒ?ÿv?Ó†?ÅàÖ?ÅÑ?Â~Â?ìÌ-?î‡?L?;Š?ƒè!?‡¥?·å?®\?­úX?¥”¿?„Ð\?¢4@ÖÁ?øþ:?Ò¼?å¶0@´1?ûV~?å ?é›…?î.T?áÏ?о??t£Ÿ?úœ?™Îü?ÆsØ?—äG?‰œr?-©K?BO@W9@ná[?Ž9ÿ?eð®?ž±Ç? û‰@?þc?ªM‘?¨¢?¥Ô"?±ÙÝ?æ!'?´? +>½÷D?ƒ@+£?ÅŠÃ?^?ªîä?ëP‰@2—@]M@º@N\?¨JÅ?â<@ Ò@Á$?à0M?Ô è>§%]>…sÒ?u¢Ö?€‡‚?bb{?…÷ ?îı?Ù;?‡ž?„›?‹±P?¼®!@ Ýë?ßN7?ˆ!?pQ4?Fõì?¹¾€?ù×@ Ÿö@e@­J@ õ?è$ˆ?Å°L?‹ÍÑ?tµ¥?—wÎ?¢“V>ÞJ>å¹»?·}‡?¼Nz@…:@ø2?%ý.?CR?ªE7?¯Øµ?Ȳ?žíj? ?›ï©@Å@Œw?ê'@…³@B°?Öü?¦v?’Ni?…º?«¬?ÀkJ@c>¤@€D-@3sO@&-G@ +@ +já?ä-?Ø ?ˆ\è?ŸWø@É™@ M?ûqÓ@ÛŸ@Ë?å™J?}Iú?ªFU@ + +?Ø;õ?`Óú?“Lô?¼Óc?ó"á@³ð?¾@?- +í?$lm?ÐI?_Ôú?ƒW?¸*‹?Ð/=@@ñ?» ?£gá?H¸?Dq„?¥ñ[?«m>3†à>Ù>@fÉž@LÜN?JrE?g–ð?½]â?ÍÉX@eá?åÎÍ?oÊ?ãî?d. ?‹Î?¬þ“?¦ŠY? ‰?"é?ƒä?ÇÕK@×é@9®@_Æ@r’@hw@`Ú@MÁ×@ ©4?Õl§?ä;ñ?ï#@G@@^oì@e “@fÿ@¶?å,#@þ@Tc@"+:@+¼?ÄRt?Á@3Æñ@,¼$?¶B?PŠ1@3ªg@=/ø@aZ@G<Ü?…½ž?+­?Û¸¡@=©@,„è@A~U@qÎÌ@KvÔ?ôi?àÍ«?ÃêK?Ü +Û@Wi@tÚ@Auç@e÷@‰4h@4‡È?ŽÓ]?è¤@"ó§@BÃ?Ãîü?ïo@C»?ÿA§?Õ¬p?³®§?•Ê©@‚]@BÂ@¿.?ºþ±@î]@.À@èÔ@p»@A»@"0@`¡@ ?'@ ?÷º}@-@ @4Òx@B2t@&ü&@ÅÒ@,aÖ@66Ž?ýÕŽ?ß@õ@!y{@•@¯Ù@¼Õ@’Ø@R£n@`ô?-ß=)?÷ë>@*¬@NãŠ@aX²?Ǹ­?‘ãõ?ï§g@ ö@ ã@´{?¶E?¢b?»“ø?Å—T?ö¯›@FÇ?ÞÒî?ÕÉ@m‡@P¢?ÏgR?À +?Ïfþ?Ïo?º7Ù?¹xI@)@< (?ë1s?Åt³?@‘À>ÿND>L±ð=ê”ù?Ëñp@ L@DÏ@E@®?öØC?£ø-?€Q5?¾d€?Ù”!?¤pÇ?‚‰>@#ü,@c=ø@D¿@1@@Iê?ëï›@-@5a_@ Öw?¾è@=L@ £è@f@}­@ìß@ß‘@>~@¿0@ôk?üƒö?ÔŠ?‘%™?’?z´s?è'ú@€v@OCÉ?OÚr?¤yò@B÷@6ƒ]?áåŽ?×'é?jõ?ˆ¿^@-@Îy?€äö?ˆBÈ?õ?òšT?È[?È—*?Lú ?B›@A±@ ÖJ@ÙÌ@¦l?®V?xàc?Óhç?ùº?äI?á…@¿*@ Æ?ÙÐÞ?¡¦?Æû?ƒÝe?ÈM'@/?ïÉÿ?x}I?‘n?Á"?Òµ@ä1@«¾@ +}€?ú(?&j?2¾O?Ÿ‘|?³?x¼í?mŒ·?Ór?ßz?®2?¦t#?Ø:?èæ?¥^?„?ä\@¨@(iN@8‚?âȱ>õÜœ?¬?‰b?U‚?¸Ÿ?¬$?s?‡DÇ@ A²@ ¿?·¡?·‘Œ@ãY@ ÿ?“ì?PòH?½KB?Úìé?¡=·?lÂ?a’?}!?ÓDÏ@Ïü@&r?Õ›s?¹óÞ?G=$?{þZ?ΘÛ?ÇÞÉ?¿Ic?Ç +Ã?³Œ?·rÈ?as?Z=?¸r|?ÄSì?‡ôö?Iÿ¡>Äèç=ƒ+j>ô5n?'“?Œi‰?²z–?ÛØ@Cmâ@9Ñ3@Ñj?ýdF?X[o?Eô$?ˆ=?’Œg?Á¥í?Ǩ?š‹¾?†Ðµ?‚iÏ?oR=?¢ïn?úe5@|@kL@׊?íž~?ì9§?#ç„?Ég?»”m?Òý¿?OÍ?!?Ruf?€{’?…0 ?“~?ˆØé?R®Þ?V§L?Ò(?àhb?µ‘U?±tÇ?±`[?±I®?°òœ?®eS?wæ?p?ŠÃ2?û‘?ÚY ?B¡}?>9~?°|?°c?™æt?˜Öû?ëÑo@ es?ŠfO>ó½?ªŸä?¢,™?oÉ?…Ÿ?ÜÃî?Ö€{?“ {?F„?î·@ +Æ?¾@6?lÌ?¤cÝ@Òˆ@ ¼@%ýV@'„§?85?ƒÇˆ@Ûß@,U÷?Íí-?‹I?•ô?£G?‘?\¬E?o{o?gÄ¥?g­ ?0Ô7?#Ê ?9øu?9?¹ @ 2†?ðòs?¥|?’ Â<„Zj=.­?njº?Y?^¹~?fÎ?ÓfJ@í?¿ ??1ë`?¾zj?ºÃ¢?ÆK?Ð÷Ç?:}H>éز?F?ê?…з?¤aW?Çu?Ïx…?Ñt½?ÍkJ?áÞ?÷ ;?bÆ>”¤‹?,Õ‘?fœ?¨²ä?æ?åä«?à“(?Û:?ðŠ‰?ôY,?ÄTŸ?Ây¯?Bë>æZ?T]ª?˜v`?´Lñ?íìJ?éz9?z?loÜ?}²?âÑ>úýž>çì7Ž?Z% ?‡›?>,A>©©½?/²Ú?ªâÚ?“85>?8Q?G}í?4L?!bU?õ?µe?£{³?>ñâ'?‹?‹' ?Îö>ýˆ½>᫽>Áh6?{÷?©?ó@ ¬?{|>²gB? +'?³Ñ'?¸ÁÅ?³òO>ó~W?'3?FÙ‚?4¸p??›>ºP€=аð?QhB?l5¥?HGO?h«ó?‚%i?y«$>m“®>t?WD?:à?sÑr?«C=ÛJL>’¿>¬âí>­]>m¤œ>>vf?N\D?‚í7?Ç´±?v[Ç>Cë>êÄ«>UôÙ>•t@R„H@/›?äÆo>Ï.Å>”­ß?(±Ð?D@Ø?Öt¹=¿_M?o©9?aÒÑ?Ba?Ji?QÅ2?Y$s?åº>ÝŽ?AÒ¨?{ó[?AÔà>óØï?Àu?8à?FCt?Tgƒ?9†é>k¼ž>‡„>H®F>RÎ ?Ï°?L[=¸í=„Â?_ë1?u~? ߀>ø] >ãÆ=Äa`>ž°|>äɈ?Ìp?0“>ÊÉ]>‚m]?7µ?+¸ˆ?)±[?8RQ?`Þ—?{'¸?GØ<Øë1?f•y?ò³‹?¹O?hæn?ñ4?½U?¥Ç²?|¼G?6©š>iòÉ>}ñ>\¢[>žQ?%³ù@ßÁ?×K=†ò>Ú2ß?¾· ? Ãt?§.?Dõ?´†Û?ŽŸò>†¢¼>îêT?(›?bËÞ>ÿZþ? TQ?8K;?Rp/?˜Ar?|S >þÀŒ?¹O?lÖ?rµX?xåÁ?~’T?{¹??+.=ê\u?Yè>Õwò>$$§>á ?ªdò?¡E¾?@ ¦?[@0?šmÓ?€Pú?±ã>Ì,m=ß…>ótÿ?¹#£?–œ?ßÀ?Oà7?º=…?¶ÓÒ?¸Ÿ?£‹ƒ? ?tÜÚ?X09?J>V6h>¥jy?u?7(?j¹g?[CX?Y>,?noû?X·?<·>Ý\r?qA?¾rj?€5¨? ¼?ÂŒ?‚ê?£ˆ§?é -?‡Œõ?¡E?4£?Rÿ5?3”ë?2<™?·‹?Ä¡?ÇÞ?"×Õ?,x?'R]>éŒ>Λ¥? jí?®`?¡àÂ?À~¤?ÁÊÝ?½€?7J»?à ?MÙÿ?M^W?šD®?ä?„Ü?‚/µ?Ézr?É Ï?I0W?Hhè>ßR>÷:>1Ôù>Mݤ?‚_þ?v¨þ>ÕÍÒ>ñCy?)¯ ?P¥]@|ý?ê¡?Šq ?ŒvÚ?‚•´?~ø0?h¦ü?·Ì|@*QM?þø ?T<>?3™ü?¾s?sR?PøÕ?OO?5̈?¸Ï>´%?r0Ð?Èd}?W6Ã>% +?Ú†?ðÝ_?Ô¯9?Äi¡?œ'f?‡ùÒ?í@ ç? .?hZ?¥ÛÉ?°ò?‹‚"?Œ(ƒ?c¤?¡D?¦a?žiÔ?‹²_?’•ý?Ê,?ÂÕ?Å)œ?Èw_?ëuÑ?Ùýu?&û!?4XU?‡ŒÝ?„Ðï?ƒ“V?Bùw>)~>°p{?.Ç?u8>»b?€F??Þ¥ä?Òâ?Ï›y?³Ò_?œ-'?ðÔ@j-@gt?úrï?\žd>¬Ì?VËÖ?„ý?“’Ö?Š?'1Ä?™R?{l?„?„þ?‰Ÿ@âh@ûô?u]?Tg@@u»?b«x?zòÃ?³¡K?¸WØ?½ ·?õºì@%Æ@@ W{?ã%ß?¤Ý÷?4,S?sC€?—µ»?±° ?ÆÊ„?¤¯;?Ž€Š?‘D;?6ò?:Hg? §@$Í @@«ö?yˆ(?9™?p)Ê?n—½>O}>¡œ´?~¬5?Ã{?Ç-‘?´‰Ä??Ê ?c©?¨Ÿm?´^Û?¼t?Á ?Ê Ä?©>¯?„ë†?¤¥ï?½Ä?×ôh?ö°W?ƒ¬±>õœ,?av?…ÐX?…RÔ?… ?+?x‚ë@@è–@Tåô@CGŠ@:¥Ú?™&?¤$@¥@O??ǯJ?Dz=?dz§?˜× >di¼>ØÓ!?Z)R?"M?ã˜?ÿú†@ ´?¿*?ZÁ?“?µ÷>ù`ŠžÒ?I¥È?B”?LçË?sƒŽ?(#‰>-R>âM?,_ï@Ô¹@OzA@ †Ê?¯€°Í?ª^@ ïs? ôL> ºñ? Éj?… p?i²V?6q!?e¸”?…Ð>ŽBÌ?Ÿ¬p?ÑXƒ@IÊ@í@@o@í@„~Ê@zB>Ü•>Š0Ë?­ŠÄ?³~—?žŽú?¯ÚU?å?/?ç\è?é}V?Ê: ?§Ö?¨‚ ?Ç @vþ@%ÖÃ?·½M>±ƒn?z<?¼kR?¾ˆî?À©5?W:\?N)?×g¡@F@M@œºe?ä?1ÝZ?ºö?_?&ÞË?2hƒ?°UÝ?¼^¨@Z­@Nƒr?Ë2v?Ìë%?ìá@ ûG@M‡2@"YŸ?‚O?‹…­?‹O;?ÊA–@ü@ ¸@Mì?áEL?‰_Z?Î¥q@ +¶@Øî@(1Ž?èFe?²D@^YÂ@Ž*Ž@/L@¥?Õw®?Åc#@1‹@EMý@@I +@AfÐ?÷f?ærœ@DF@_t@€÷á@ƒ#c@$*z@"H?õ q?ï-…?K.?”@€?¸0C?¼¬@!Šª@›ô?Ä ã?Þ—î@UÀ@&f×@@#@SN¼@‚ÐÇ@[Î]@¿+@ËŠ@/+a@ ¯?ù}ì@!–ï@X-3@T{`@Y¢m@(?÷?ÆÜ@C“@.+I@hÑG@“le@O×}?ú³7@ Ç5@ïT@+ã¸@8§ý@-:ë@#x@ ’@ œ?ßÅæ?Ò¿M@"><@<š@*5e@"3Ž@\:E@o¬Å@Ž¬?ôµƒ?×ëO?È6e@[­„@€Ø@$JÛ@ Â4@uë@ «#?ßÝÍ?ÉCb@Ö¿@Ïþ@<$@J¡ó?êÕ8?ÁŽ”@Mn@ E@‚*)@ˆº?¤Òä?C:Ü?f4¨?'4?«<&?°Ü@zK@ ŽF@€‰@ ¤O?·$è?žw-? Tµ?ž(?ïçá@G®?íO(?ëdP@/Ç@Ùe?à^ì?ÌHV@õo@š?aôý>ÿË{?¥À?Ãc-?’$˜?…_ð?v9Ø?k7®>^ÝW?p‘$?¥Aö?÷C@ ‘?Ø\Š?¿'?zþ‰?>/? .?­cÑ?ô´d@ +Y¢@³@ÁN?éÕE?Ç·Ð?Æ*ë?µ?£êÜ?•w?é˯@ŽÑ@ ÆU@ê2?±×C?G™J?‘1`?½§ ?¾—º?Ç?¿X”?«¦Â?q4À>YÙ?fÍâ@ zD@¥@4v`@ %?*ƒ?…iˆ@Î@QÕ?Š Š?~~Ó?7?0¸?þÉÒ?ôó´?zúu?wf©>6ˆ>€E@©@ë2?§‚P?™)c?ûʺ@ ¶×?¡Li?ŽV’?¯3˜?»{1?Ô˸?ß0Í?ƒý?(T?Öï8@B@/]@¢?øL?Â?ˆÇ?±—?…^?ôH{@ +ÌÏ@/èL@ ?ø I?ßh4?Û?….?M&#?Mã¿?•æÝ?˜B’?öÉÂ?òX}?Õj‰?Ðܵ?™×?Ž^?‰À¢?Õ¯?¦Ž?°!?žoß?Š’s?ÂO|?ø&V@/‹K@`ù@/{ý?Ôß‹?ÕìD?厉ì>?q?ܨ_@-×?ïF>?×ú?ƒ^&>ñu? L¯@Ý$@®+?´À?®€Ž?ŸÛ½?¯ªk?Îý}?ÔR @!÷ÿ@§6?.ç}>ÖÕ¥?§Ö?Ý}É? +?#ú®?VŒÁ?ˆ8ë?¬$é?þí @ɵ?îä ?æu?qR‚?y't?¥yw?¢/O?·¹Š?À|Þ?2p?mÚ"?–(-?²9?ŽÌà?9È÷?bÐ?›I…?ã˜> =ÞÃ?žlv?©dh?¬=ó?¯O@+Ž@,[^@$z8@B#@ª@Ws@"?k‡¡?rm¾?ðaï?êC1?Çšµ?º&’?¾Ç×?¸¢U?= >+€G>ø]Ä?‚ûó?Z Å>îR`>ûéð?æI?2hM?{ö8?…EÌ?Û"™@ç#?ït²?ÌT-?¹•ž?£êÅ?Â@D@iê?èÆÄ?è š?¯¶(?«û?‰æ¨?hAw?¥qž?Üv?ÐWb?±z1?°Œ?øàD?ë•q?5? +Zö?ƒøé?œì8?¸‚?Ómê?©%0? ê ?dB@@+r@48º?¨cA?  ð?^ÿb?>×ó?¶x‘?ýw?×ý?•?¬Šè?÷??ðÁô>æXL>æP +?”eT?«•p?I¦B?^û?®(%@*@ùÊ?ž6,?£,?e­;?Wè?•Ê?–IÄ?©ö±?¦š?µF?Ýë®?åÕ‡?æ&|?Öÿr?7DN?N‹?§¡å?¬¶?]÷?)H­?GÛ¯?fuž?foM?O%?qF€@ü²@ ¹?`Å`?X…?P’ü?H›€?Ò˜@ Ù?õº$?ÇöT?Å®?¼hc?¤»¾?gúË?h ?n;•?hcð?£çž?®ƒÚ?‘6_?n»÷?‚¼C?“é?§[Ÿ?Ó&Å?Ã_O?†ò?‡À¢= êY;è9ï?h•?ƒ˜–?ŒÃ?•úØ?1·;>ìB)?¶ý?ÊEE?xRË>v Å>å8¢?m÷0?O|å>îŸÊ>ô|Ü?­S?4?"ƒ!?,È?ÕcE?äå?´ >ñð?îé@ô‰¨>¹tô>Çþ?xØÌ?¨‰`>ï\û?.ÞA?€÷¬>±C`=Ϲ|?®ð?=H¯>a7y?ð??1d>ÍÙ=Ý^?˜eE?À5>†ð›=ìõ&=æÄÅ>ý>Ê.Þ>ýH?›‘>÷pÙ>ɯÅ>Vˆ>Zª®>ì¿>Ó5k>º$>ïl ?î[>°'u>¸d=àÔú>M×ü?K?AlÝ?j6Ù>—±Š>± @Š@pZ¤@£‘d?OÜ&?#?e?³Å?¥rÖ?£p?H€?–E?šad?Sñ?E3Ñ?m&?4r>¥¢?s?so?0:>ó·/>ô W>ôU0?C°?G›Ô?2Žk>ýÏœ>ûx½?,ÊS?.âU?v–´?tÎ’?(cû?ÛC>øXô>øú=‚$Ó=4åŒ<%ˆ°>‘Ôë>¬:?+#?E’Æ>pó‡>ýYq?L9>© 9? öR?{!9?9Ô>ûyh>†êy=Ì݈>>`>>œ>Ãüz>Êðn>¶ôN>€º =¼mÈ>Œ9>Ng¤>ÆÂw?¡Ô?‡Ši>þ,?FjÒ?¼Õ°?¬}¤?uàÍ?x— ?ŠB?j[É>»*ø>ØXš?. ²?9yˆ?Dc,??@ª?G@K?‰*.?ý¹©?÷¶°?ÐpÑ?´Dø? u>úžó>ññx?=>A?½äš?·Âu?¦êÇ?†£N?^q>îM>®|—?ÓS?‹‰»?c<˜?ní?RÅV?Àøi?”ß >²"Ù>ùcj?8pU?;<?a…¸?HÕ?ä ?‘Œ?þDg?¾ÄY?&Îþ?NêA?Ò?^ùS?+4? +3>— >þ™8?@Qâ?’ŠÌ?ÜC)?Ÿ%—?*¦‰?@ÿç?d»d?P >§? ‚Y?{{I>ñè•ÁÍ?->Ъn>Ðøö>þ [?¥W?Sö?28?"…¢? ¶?ÿ?Ç°>šÝ>AÍQ?'$?^16?0èx?[c?`Ï?òv?ùp?ýë?‚J;?„ó*?{å ?sŽ7@6?À@A&?¨°¥?•(e?ÔĪ?Ó»€@ùÔ@='?¥=÷?šª÷?‚MÓ?{#a>«rM>Ù'(?“u¨?†çf>½‡‘?¡Ô?ñ ƒ?×èt?]ü?B? +A®?rÒ?¤r?‰a@?ã¾?‡_°?n#?3¨œ?A4ó?JPš?  >u„Ó?1D,?œr¡?GÞ›>¤eè>¶`ü>¹õ?8ùÝ?‚öÖ>Ü Z=-¢>¾ò?ë?p­? –p?'¡?=Ÿ?&,6? ¥I?ˆ…?–ìá?˜­ž?“…?ì¾?ïVR@<«@ÛÀ>œ²í>Æ•…@$@È@·?Å*?ºô8?k”?…?ÅJP?ÅP?ÅXC?£6 ?£Ø?kA@=•@Ä[@v„?ÏÙ ?IÐz?–åÞ?ÙåÌ?Å6?¬©ç?Å]Æ?Ò(?î…ž@•V@mK@§?¶Òá?ƒ÷­?j¼þ?f ¬@.ØÓ@N›õ?ÕðË?©Ž?†a¥?„™?~o??Êמ?ÇpK?„8:?L'?â`/?çp?ã.|?²oÄ>».Ë??„\­@8ó@w¼Ó@<Ò“?ÏP©?®ç?„vÌ?§µï?ÆÀ=?Æǽ?ÆÌ?¶ß?²l¶?à™Ê?øk\@Vº@$¶À?á»?ÒÄ+?½²¾?µø!@,ð»@+Å0?˜ÏS?šJ¸?ûË‘?ò²Ý?ð÷€?Ô¦?O@Â?8ÀE?Ød?J÷Õ?µoÊ?Õ×¾@ËS?ÅßÃ?cÔn?óÚ”@8ò6?ÿ’t?¢Å? Ÿð>XR:?Ž.—?Ŧa?”+®?…?…ý?… ö?Ýè•?î‹B?Ò_q?ÚI?…¹?•ê?ßå/?Ê^?,SÑ?zlñ?é@?¿œÑ?>ðp?pC>¨¦·?»?bqM?³Öâ?ÿ}«@T4@ +åæ?jS=Ò÷‡>ç‰-?Ï?Û¡@çÝ@k7@"ÿÎ?˜÷ ?…;¦@øÔ?úÛ?©`?Âã$@<ü@'µ•?¬Þr?œïX?SFÉ?žª@¡4?Øä‹?S/?fÃQ?„?¿S&@Yg?æ õ?ÇÜû@$(B@N³m?Û`”?…:_?ê+R@Å?E®d?69?}k ?…3 ?šêÏ?¡A?ÇÇX?× @0u!@5þ?f„˜?u¨@?vÅ?¨™4?È-µ?ÚN?ùË?É=?–~?šÇØ?”l?’´A?•/d@/#@Zô‰?ïºÑ?Œw¬>›'—<Ç3â?¢ÇÊ?Çwï@#‡@#;!@Ì8@Í'?¥Œ?²€?FÜ +?BÒ?_¤«?‰†@s@&@Y]?ØWð?KÊØ?O2?<óa?¿ºÙ@@†@Ÿê?âhü?·Ë?¡{”?{Î?‚@;?|Ô?zWî?ÿI>ùï=™ü¸@,ì@@T0@5Å@+)Ä?¶¾Ÿ?¨ç?fÔÕ?f*®?¯µö?ºG‘?ú]$@ÓÉ@)@äï@:¿@ +)â@6uÌ@LÆ>7áÚ?¶›@%ï@!€Ü@žØ?æÊ?ŽÄ?¨ú!?ÅÛG@Z>@AÞq@X&±@c”a?÷èê?ƒÂ6@8æ¡@rÙ@52@žy@&ã@'%@â@øÚ@E8@Ihz@+–@$ž@oÉ@Ÿs@Pbl@VW>@E-u@=°Ã?è]Û?ß±£?·I}?ßѽ@sׯ@di @¿@:@E5?ö~Ô?Ì]Æ@²@}}Ž@eð`@6U²@/dã@ @T?¿ÏF?©f?}€“?ÜVw@+ö6@ 8?ÿt?êD@ ‰h@0Õs@NðI@+95@ ˆ@*xJ@GšC@'•õ@ µ?Åj?6î@‘'@C«ö@Aä»@?˜™@34?ü"T?é¶?æ”Î?âòË?ã"ò@ñÂ@5 ã@Ì?êe\@ Tõ@]s@'6Õ@6Õ,?ТC?œ\f@_Ü0@‚!æ@F£Ð@8¾F?ð¾…?Ϻ?…ª¼?o±?´ìÊ?Áò?¹§?‚ô~?-(ì?<3>-s=€œ·?K{}?h¶Þ?µ5£?Á­@2‰Í@@â‹@š.?ó¢˜?fEv?<ö?è«?ü¡t@ xë@ d?¦Óã?•Ñ?@ î@å@ Ú@[@{?T†]?):?ª€—?¿Ê`?íG?ô¨{?f“>eš?Ìi?÷«f?& +”>•oJ?ˆý?­¤E?ן?ã$?ã„n?Þ8™?¿¬õ?¬O$?ê’_@.Å@Õ?þñ?¬öZ?[T¨@‰@bç@\X@VÌ‚@#Ñ?»}?ƒÙm?‡Œõ@#«@x³t@\Æ%@BB›?÷l,?"jç?&æi?+c­?ŒP‹?×ì @Wô@\‹@BL@ ij?ø©¤?ªX,?Ë6@'gá@"’¤?ã^?Î(i?{V×?’ƒ@@ˆ?ù í?ò„3?«Do?¤?O?›î×?¢ýW@ ìó@ =Ï@æS@Ëy?¥µÚ?†_–? *>ùï?†? À$?©Që?¨6?¯]X?¯ž`@ö/@!=³@ÿ·?ÛÌ?¾I¯?‰Ò’?¯±í?øƒˆ@jÍ@§Ì@>@=á?ø:>÷ù]? =…?wë?}5³?ŸŠ;?œî_?Ø•°?ß×W?­bb?°Œ&?¸Û?¹*©?2ø/>ÚÛ?„ít?ž9š@#Î@:ù@Zô?ö!@ Ò¨@"ÂÅ?ÕWa>°pR?`@lø@è?àI`?ÜÄ?ÊE,?džÆ@ž5@F?õÏc?ô‘Þ?ˆOŒ?tbv?‡–‰?’+Ú?xš^?e’ù@#Á@m¤@LI?¡^?Ðò?óS'?çg¨?ÐóQ?ÔæÔ?ÍÝy?ÄYÏ?žF7?›l†?8¥†?37Æ?°ì?›eM???‹\¶?ˆ¢Ÿ?…éš?c®E?69?K¼d?uõ!?C”?´Å ?Öõú@$J´@èð?´nß?´ZQ?þŸ9@~«>šžþ?0<0?e8»?‚Ü·?”=?§¦¿?ÃÀ1?¤Î?LØ]?sœ;?äÆ ?ïœP@[H@•]?„"Á?žb?ø@I@…Î?Â% ?žt7?”‚?z`?HÓ›>_õ_>Ý\þ?ŒÐµ?…më?8?,a?iѱ?l£z?5?w?ì^P@x6@Ûã@EQ@7A?û:á?ò¨û?À¸i?º•ù?ÇЯ?кþ@.c@±à@K@'ðô?×1æ?j•«?²Ã=@ hÚ@¦ü?¬‡÷? )o>éø²>éà¬?•Ì$?ž8­@ >›@ÂQ?çó ?¯µð?¾úÂ?Àèõ?º¿Í?òë–?ûð˜?ß P?â0î>ÅÛ;ÔÚcÓ?+NÝ?gfÃ?€Úå?…÷é?µ´-@ Øk@ ?»³‡?ÉGK>†ÃY>¦@?…ð>?˜Kè?£Æ?¬øJ?D÷? +n†?]CE?ð ?ô£H>æZ§>æP‰>æIg>î'?¡Ì??ÎV?Ë°?ÚVþ?ÚQµ?¹$e?µ×Ë?ä \?Ü°b?À¥ñ?ÄÂñ@‘@;}u?ßï;>íg?_£Ÿ?æ(Ô?Ýw?“ä&?ŒI*?ïØæµ>õaz?f܆?fïë?;à?Z°?ä|ô@÷‚?ÍãX?‚â?¿LA@c@ 6‰?gü7?h ô?æËh?âþo?¶@—?®‰u?’ó?ˆFû?Œ°x?‘?žÚœ?¯Sú?‘8[>–>`6Ê>ê“Ê>éŠ>úV?oy?ž?ÝC?ŽŠÛ?œ9h?—zt?§3‘?¯@? u’?—$?€œ?/'<ÝÓ > +v,>ïTŸ>ï­f>ð>ïs?q? +?­Ü?8>ÜÀï>蜋?bƒ·?…»F?yî>ô›‰?ô? +aÂ?#ðÀ?+›)>ËW>Y3_?ƒò)?º~E>õZ‹?)äJ?zø”?9áß? ‘?X-’?}r¾?±Ë>þÂŒ?¢`g?¿F?Tà>Ûht<Ô¼‘;¼Ÿò>•"1>˜Ãò?5;o?$=Ð}¤='E‹>oö?/‚?¢Ï?{?‹Ç?å=Töo<ø½€>â´?l*ã@?¯7?%e>có?Õ'@\Hw@ƒÁ½@˜…?·B>3f+>Wæ?‚›Q@°/?á°V?›ãc?˜—„?•M‹?Žvæ?bê?wM?9á?A¾(>ƒ³N=ž¨ãŸ">ó”?)où?T‚É?’–>¶¹_>ý”ó?6YÃ?c[S?¬YR?ŸZ…?v}¸?{Dó?£6Ç?©·v>øîí>÷ÁM?fÑíøY>Æ0>,üD>Ei? ø?1 m?Ç”>ìpï?<¨F?XÕg?f£>Ã|c?c·?Tdè?6/? +–>üRà>î^?&w-?Tiª?Gt¼?:€É?èx> ¬ ?zŠ?ìØ?…JQ=ˆ®>' ì>^P>ÃÓ>ìf?H¯?.…Ò?~MN?¥e?õ¥?ïpè?é;?Ðä¡??Šî8?P€½?Xÿã?c,?]#>ÿ”n?.ö¹?•Ãv?‹yO?^b§?2Žê>Ù°ä>­Àó<ßÌ >\&?‚¼“?•–Ù?ÀtÉ?«@?cyç?C[f?r†?K=X?ÀÇ?°=?|ó»?‚zÓ?§N?v]>%i?¦r?Á/?ƒ™=½s>€ñE?úT>®Œª=êX?&#@?®Œ»?­â ?²SÑ?‚Pˆ? ÷?'X?. ?6?Û?Ç[?¥*‘?Íä•?·û?•ýÝ?wš?=[Ô?\‹?mÏ?=³?{>mˆ»>•G¯?’”#î>A(¬?pî¥?¤ó?>NÝ?Ê}?N¤!?bßr?8J#?'~B?òûà@`?®qR?‰ì?‡>?„H>*{B=7ùP?e%=?‚?‚š?’¦g?/Ñ?( ø?Œ²?‰ãu?X?o§\?µþ?Áí”? ?‡Ö>™ ?sZF?…ã¸?¬âd?†Ðu>¸s>Ž#>B×À>ØO?=³T?a†3?~ï?ƒ 3?ļ?™?\dÚ?•¡y?´¿è?àÝ?p½?!Òó>ï¶S? é}?Æèø?Ài†?»ný>ÅÏ=™|°?Czp?i2R>º¦Õ>œb#?L]]?eP"@ +»Ú@@ѧ@ÿ?,Ûû?*š?Ðþ“?Û?Å*w?»rÀ?tx?yÒÍ?²ËW?¹,W?À÷?ÃÂY?Ãîî?†–>] v>öœu?V¡??§ò?é‰?‘(>ðJÄ?Ì:£@ uJ@ `.@‰@ƒÌ@*?çÃ?Òd^?šWŸ?ƒö¬?¬¶?©JM?¦cá?­ _@<ë@Oòz? W£?Š)? bý? +‰õ?ˆ€Ý?Š+”?„7B?{&?;<è?Ôé@#à?ïKÆ>¬W? Ô5?„\8?ÍÏì@$åÌ@ă?¡xd?¬CJ?µA«?± +õ?²þ›?¿Ú¬?ÆËY?K8A>ß$b>ÿ®?˜W?¨5a?űØ@ˆ'@"/:?›Lá?Œí>@C-Ï@C3m?“ßÝ?”ÈO?‘KÙ?Gž?B|6?NËý?>–??†>…Ôü>áÕþ?=¯§?Ò×?´ ¡?z\?ëŒ?µ'Š@ V@Uö@&51@&8å@&:²?Ñ–? èƒ?ÿ? L¡?wü?… û@aÆS@jƒs?.Îb?,OÃ?…½?Œ²»?Ç«Æ?¹}›?e?Š6ø?è“ò?Êúä?…(î?%zl>m!÷?-Â>ïØ>¾ >Â1->¶@?Gjà?…6ƒ?Ú“¦@x@,Ì@%c¨@ í@™l?‘€“?…=9?¬i®?Àî@U]@D?ô_?ís?ŸâÚ?«v6?Çâ?çòÜ@E$@ +æ{?Ôø&?Ù`¤?ÝÁí?£Ä8?M#Ô?§£?Õr?jAô?‘ý„?ŽUc?¿´>?Q£s?üâ?ç,‹@]ß?Ô³ß?Òˆ)?—ŒI?˜iÎ?qɵ?‹¨"@?±„@& ^?.1?pE#?ù3¶@О@&õ@ ?DÖ:?@Ÿv?Pè?ë1Ñ@LøÔ@Ó"?˜‹2?©²ø?³TB?Õ|?è°E?•1b?J#Á>f¼Ð<©Üb@óE@ õ?°&é?¹Ç?eV•?n{U?Ã<%?Ça@$|ù@®?±)Ì?¶Ib?îõŠ?üä@%KI@™C?Ìá¾?ÊF?ŸÍÁ? —?Ÿ€&?è`i@8$§@C©@X;G@%•?Ðp’?Æ"?¿¤r?|;V? ›~@_ß@G%@g?s@r‘Ë@öå?ò›ö?À6•?²=¯? Û?¤Èì@Dzw@Vô/@Êf@H¢@OÒ@Us=?Öý¡?Õ?· +?Åbg@düˆ@ci]@$ ´@B‰?‘\?¨G»@ÿð@,@²±@ f@#»7@É‘@½?çªü?²aò@Ùø@X¾ã@V‹@TZñ@/n?±ù?4b?qÍp?…þA?ŸÙr?¡õï?¤?¿œX?ÔœÌ@æÖ@*oœ@UG´@n@ÏÊ?ÑÙø@"@C@z@+=@i@@8 +@cŒ¨@$'-@#@Ž¶@´@0g@¦2@sô@D–@´d@°²?ãµ??Úú?ñ,?ü½?î?Þ¶e?ôŒp?ø›±@s[ð@ŠÀ@î?øÙD?ô“?ô#·?fJQ?(­”?Â0?Ò1Ë?ôx9?ÿ„`@O’•@WL0@æ´?⎠?ë ?é?˜?ÆO?Á‰@3ÉÁ@@ã%?“Ê‘?e7V?Nñ±?EÔú@G@Oi@NŠ@w¸?†ÇÞ?V+Œ?Ù+?ï-@'¡@dŠ@-ÒV@7²‰?®S”?ƒÁë@&‹@>b’?åšò?ÄÔG@<É@ƒö@'Ñ@šö?Ю?µf@?z@Qñ?éئ?ÚZu@@z@'?@Ýü@¡?øĵ?ìe@=@54@ID=@oýn@í)?ˆ<?ÍH¬?ýŠ›?Ú¨P?¾S@X1@5H7?êKç?…÷g?ñ|@+k¸?ïr?Xí+? A?áô‹?ÝtB?ê/@B@=#¢@1(@ @„?Ï/í?½+5?h'’?˜âë@"n@.„?†%ý?’èV?û%¯@9½@Z)(@OÇ?‚j?ÁÖ?z8?zŒ?§WÎ?°«u?É(ª?ÔgB?ÀuÍ?»~.?6…¥>ú “?”'?—Zî?ÚÙú?ùs@–š@̈@eÙ²@hQ@Ùq=ïÒù?È  @T08@KÌC@8M:@‚[?ÕÖ?¦¨ç?Ñ}ç?¿'R?VöÊ?dÌe?¤~ô?™Ø?dt@?pà©?¹^r?´jÐ?¦$I?›²¬?ÆÌ?˼ö@¯=@üï@#ef@00@LM[@Yb©@Z-?¹ÁÑ?öŃ@°Â?Éë‰>ÉFý?-òT?«?­Äb?¤á‚?¿Õ@0>@E?ÙD?噬?Õù?Ǿ@?a¿I?QÈ‹?ò>ó|È>ÎÏÂ>×ÐR?K1~?{B½?˜Ë¨?°e$?œ.p?ŠFñ?›“?¶Së?¹ù^?ÈáÄ?Ä$6?‘@V?”©?¸)ú?²Òà?Ã÷,?Т=?«ý­?£Dš?°VÞ?µEÆ?ä§Û@öö?ä:“?®›v?Ý߉@Ÿ@ ã›@Ö)?ýIb?´rV?´^?Üüú?ÚCë?orÑ?CcZ?¾v?³Ú?þVM@Œ?ï©?χœ?ê÷)@ ˆ?ñS@?[þŸ?s ù?´Q>?¹£Á@ +`Þ@y6?Õ ‡?Ïèñ?‚Ù?HP?˜F·?¹•v?Žæ=?-íT?45¨?a +^?vÕQ?‘É'?—‹%?‹=P?„Àï@ +‚à@Ét?²‹®?‚n½?`›J?Fn?S™Ò?U‰~?ŒØï?뎜?æ϶?”£I?‘Ê?ž«÷?©i@µ¯@*jþ?ßî¦?ˆ à?€Ë?qsü?OŒ>úôz?«ã?Yl—?S?2¶?;@Ù?¼ºØ?ìg?óÍ(?åcë?ë;ˆ@ +u‹?ý¢â?Jø?T…?¥q?¨«@?\ê>èu?…V?§½/?¤of?¡ë?Ä?šp?—ù?“¿"?a>?ñ£?+D?3[?*À?ª‘•?çD?»0Ï?g&à?‹"/?â¡K?ß'ê?º+…?¬B¢?‹?ˆâc?ŒSÖ?Ç?} +î?1•?Tæ?¿š?¨“º?Xs>ømº>äØØ>æE‹?Nܸ?„ðŒ?¯g:?Ö•?âTà@ @-‡@k˜@D6?Ù©™?Á¢à?Ï*?ÝÕé?¬W"?iÖò?—*È?æ..?ä¸Þ?ØÒ.?Õq?‘l¨?0‘?SÉ;?%S?¤<Œ?ìžó?ßÖ!?«$i?…ç>àøß>ôãå?§®E?£»?¹«°?²|4@ß@lw?ªŸY>?Ë@>î,Ï?ŽV_?KË?gþÔ?iW?®v?²D†@áÚ@ý7?¼â?™»ç?eÊ?0(º?fíc?›f&?Ÿê…?¤xp?.>ó».>êÑ8?]ð(?W©Æ?ýœˆ@‹~?¡Ê?~?/=?M_?ºôˆ@.E@g-?î +¼?Û ?£øÞ?Žƒé?R ?7,â>C¬§>|þ\?ìh>úÉú?kì†?r…>^T^<Úmå= I(=õF\?6AY?P–¹?1·?3òä?fç)l> ¾ >šV>Ǩ>õç?_±D?}‰$?IýC?&uT?b +¬?€•w?wæ?jT­>Ç >¡ >n×>£€õ?).Š?2ò?‹Ë>¯t9:œ¹<ßå=Ãð>¿»?*v?<1?@éK=Hu×>òÒØ?ЄÎ?blÆ=þ‡d=Et0?'+@;êË@>>¹@K &>…Õº>ÐA ?†®?Ÿ4@³³?ÎŽP? >?B@–?–q›?8>1ãÀ>õ>¶6ä>å?Vr¿?r Ã> •>šZ—>óu +?¹ß?Y>üÙ±>˜Ÿe?â‰?wñU?1È?¬b9?«õËó>Ú¡š>÷t >÷²š??v?]ˆ ?_ „>Ý]M>ªÊÇ?1øü?DÔð?jÇÌ?yì¬?dû{?nò?Ž"?›Ã? ¬b=˜jv?R.e?¶·7?,á<àE@>›«?/Â?ªùÌ@Ô}?©t>ü¸^?£º“@3ç?Éá}>Ydƒ>r¦*>ª‚ã>¥Š>f‡>àù*?n® +?B`?¿@H?žþ­?.Õ?çº>í¢›?Ád›W>„¿W?)Œ?pªÔ?ûMf?ÔÓ‘?ˆüÖ?ˆP?€f,?‰u?—8Ä?“ßà?›IŒ?¨š?Â4?F»?ÐS? ÙT>²˜%?#>b?—º)?€Ž?Æ1? L,@ü?ô}m?s'?JûW?'!+?‹1>·Ö>éŽ7?'j?m÷Ä?±ÔE?qŸ´?Aú??ïY?Nt?Ðr@ +UP?Ò¶Ã?¤q?†Ê;?]uW?-Æš?€?±E|?û—/?‡¾?—ˆ>–^ >P’ì>)õÕ>³þ?ÓÅ?"ò_?„y?Ÿg¢?¢ô?š2ú?ÊHž= Lð>ó¦>÷Š?% ?ü Æ?ùúX?²«?û >™[>—XÊ?B‘—?9|½>‚‡%?óR?óÊq?ìέ?ÝN ?‰Qˆ?“‹z?À}Æ?q?7Ÿ·@ w?î¾Á?‚¥ü?ŽP?Ѻ?Ycž>¤…³?Ì'?J×?cW?†O?JQ~?Ú[?߉?å{?e^/?’¸w?nèî?Cz†>ä«È>e9\@!¹ @cý¾?§°í?Þ3?š’¬?¨gÙ?ˆ}R?ƒ.¸>î(Ú>¸ís?rÆ?”8c?‘Bo?™ƒÛ?}é?‡ƒÓ?¨Q?ž²À>@½=>°W|?Å-2?Ðw@¸.?ìAæ?o¡?-¢P?}ø?•yß?Å é?Á›®?µ…·?šFë?sW?a•Z?]¬?³NC?æfc?ÄÒ$?¼ÿ°?¯Eg?¡Hý@Iù@EÖÛ?Ò²?ƒîõ?c?[‡@$Ù@DÈ?Œ+ã?6êù?Ö™?W?ûˆ@…Á@ ‘?úŸ$?„-ú?‹y‚?½~?¥ÈR?BH?h3p@ d?ÝâL?Tõ?í$?;xð?pé?¢ä9?áá@OA?ç Å?¾è4?¹b­?¬—Ì?»´¶?ÆÍ»?f?nu?Zº?Gõ?mf?ƒ.?‡¾¿?Ž´ú?…Ë4?„±“?¬ûþ?´•â?„¾q?ˆ\ ? LE?ˆŠ/>©‘“?ó(?³è÷?ŽÙš?!?Q&?PM8?—­?Ùqó?ƤØ?¤±r?ü~7@&0ˆ@Êk@ @Çœ@#7?àÏù?Âæ>?½/?º~?Ö½?±Ð?îȽ@U=ôD'>D®ê?…Þ?å1?Ǭ ?϶û?î9î?â€ê?Ǹd?§`O?O,ê??Èô?­‰?FèÔ?€^?¶ÆŒ?è1ù@¸1@ô+?¿l?Œ…Z?V½È?'> £Ú=›`³@*"@A~;@G3@>à?…Ÿ£?Šò[?íèw?ë•Z?…Aš?¬õ?­›ƒ?½$?ëÖó?Þ²?ÄU_?¨µI?…AÓ?…CÐ?…@¿?¾}¯?ì–÷?ó—O?üŒu?§aE?dùC?/s ?ÿ ?Û=k@…¤?=? m?’~.?ž(o?uå>?ª&@l©Ü@T…9?¡RÙ?ãÚ@zd¾@=¼‹?•¶?´Û@G¸ @ ”V?[Éó?¶×@µ¿?â(?²gJ?£ŽŽ?•÷è?µ·?Ç•¹?µZ?¥ê¦?¾¿°?dž‘?Ç1?ÈWW@…`@d?@^â@Œ…?5?@D@šQ?ð_Â?áb?P(u?ñù?ýÂ@D‘@ÿ@?Ç.m?·'?™ª?Ϋ4@e‘?ÿ|?ïá?ùéi@ëì@'ƒæ@;K+@:=s@;Ýs?žR½?Ò:?q÷°?‰n?…ÐÆ?„xÕ?z$¢?tkL?Õh?“}ï?ÆúX?Òs?ó»¨?äMø?ÇÅ?¦Å@­|?èÚð?V?|CY?Ž(ü?¾#›@ e@ ”ö@@4‚@=áq@42Ê@1Ì@ hj?ØS.?žQ*?²EŒ?ÅÎf@ õ»@%ñ©@s ?æºb?€qí?/IY?¡Šû?¶W@3îº@C6¡@hÒr@ry@œž@hÛ@òÃ@îÄ>­&>–÷à?’Ûõ?”æ%@$!)@!u¹@U,@~S?¨bÀ?çf#@‰@€²½@&§õ@%ÝM@%@@ó@›o@R ›@LÛ@J,@8Ä'@ò*@%?È:N?ŸXÇ?eQû?wƒ?‚’¶?‚Œ²?‚?¸ªñ?òëþ?¹w–?‚bå@N½à@£òu@XMÌ@A @4îƒ@S @3w’@ò]@Hß@c*?î¹?‡jù?áñ×@j­@tY@ž?¡:?~Í;@4@'ò@_šë@o?[@„?æº@>Ùò@R,Œ@+0W@!Â"@1Ài@6gF?º¯n?Œ–?·ËH?Áʪ?àÆ ?à91@.qY@;½ù?ªbÑ?ƒîÉ@g"<@€@?ïµa?ȼí?WÊ?GÚ?¶‰?Á¼@qb¢@AÇ@(×@)ù?&WE>ê9)?’™$?¥<@Bæ@¥?¸kA?ª—ŒF?:K@:b?ërl?‘¡? 4¿?¢ÊZ?³U@¬w@@Û?µT?ª·~?“Ë?š?,Ð#?l?ØVÊ@†ª?F¾g>\¢ó?ž³w?ò ð?Òôg?¶« @ 8Ð@?Á¸@é¥?‡:È?jfþ>â”M>öL«>ÀÛì>ß#?”©.?œ…Q?i&­?VL’?kOP?qóí?˜âË?¨«Ä?RÅ>ñƒå>²h~=Ñý>¹5ç?‚]¿?ˆ·p?‰ÊÜ?‡eO?0¹x?<•‡?ŸK¿?¤®Ø?“á?“ÃW?–t +?™#ˆ@B³@%uÒ?æÓt?pþ?v@-°@.Ý?¤YÖ?†&?Çö?Ö†b?·€Ä?«³\?±u?­)Ú?“ ç?+5q?$H~?s¾?[«ˆ?×öt?ߌ@RòÙ@j‡á@E8?¬¤~?Ü ?ý%?¬;V>ëÍw?#X?¢‰î?°* @ü@eæ?DÖ? E‚@ê4å?#ÀÅ@ÑZ@ŠO?,‘>é°? ‰?¸ Ý?ò¶Ä@bÖ?ÔÖ‰?¸? Në?/Ë¥?)yý?–N?ƒàï?©?¬Ë‹?¬ƒc?®:!?®-³S=ç7?…äç?ß–o?·ÊX?i/O?€#]?²j‡?µÆß?¹.1?¼Ž¦?÷ø>²¢?ƒ™Ì?¬E?¸$*?Ñ)]?÷î¯@4%@1€r?f`G?fU;=ûÈ¥<§t?%œ?f7?¿ÚF@VÓ?ü`Õ?ÝC‡?çƒ?ÿû¼?üQã@1–@:•4?îd5?³ã?Í +¿?åÎ×?›A>Yq¨>ûr?»W?¾ëz?B,+?2oÔ?.ÓT?6™m?>rc?FPs?áë@Rü@*CI<-fë=Íz?àL?ÜX—?š«?˜ó²?ÉAO?ã8 ?öý>ç‹@?xQÿ?a?iÍò?~r„?’Œy?„ã.?o?fz=?©#ý?¥EÄ?R‡?t(ø?Rîo?1*²?&?e?À…Ñ?≌?鋘?î×@ @^Uf@.Y5?/?Ãä>‡êû>‘êÂ?´©'?´õ9?XH¥?_|†?°/?µXÅ@>@ëm? +Ëu>žSÀ?+¨•?8öÏ?>ó?M‰á?X«C?cèÖ>’˜K<Ãh>«f>ѼŒ? ”À?&7‚?DS6?6Ù*?AP±?W>ƒ?¦â?¨„>‚ x<þÍ€?k¬Í?€âA?™ë­?Š¾~?ÜR>Çên>&ý?>Gõ;>åô>ÿŠu?Ÿ >m­ö?©×?Uè?L?Y` =P|?ð†?΃w?CÖò?]ºÛ@]ÆE@4½Ž@9=°L`>Š +D>Ã1?¯"õ@’%?¸ËŒ>Ø>çDo?o\à?]M>ð$«>öŽ?–‘¶?Õh?zr’?qúœ?í>éÁù?… m?¤j?M˜>óø—>ôJÜ>ô˜2?X l?·å™?›ªï?+«?$ŸU?0d?'.»=ªºÒ=¹<0?j–>þŒ#?ïm?åš–>xz2>OP<>Ga>Øý>¨öþ>Óì‡?‡H÷?š+?BëÓ?œ>ÂX¥>º½>çÌ4>û{>û;6>ûiÀ>X®m>‡X—>üH?5›?'‹S?Kpç?N'Ï?6â×?2º~??Ùã?4À÷>óúy>%.M?Qe?/µ?[ý©>þm?ï?Fn?‚µ>þ’>?ˆg¼@Ë0?Õš¬?É6?†?Á?P$ª?g׿?ˆ>p?{SÑ?£¡?>D>-¿Ø>„cw?%?PƧ?À"H?™cš?àU?+Z?…–å?‡}¹?€Uð?€^Æ?€j?´–›@ ÍŒ@µ÷?ðù?Ä^‚?€Ÿú?M‡Â>ÌÁ;>ÕÂ&>ì8Â>~5©>É?€ãC?~fm?}¼u?ˆŽ?€ÿ?–~¹?®|„?ÐØ=?öä?°àõ?XÌ?q–ñ?‘9ã?8¹€>‚pQ?CñL?›© @?^@9?ÏW¿?ix>Šçü=•÷ˆ>•„<>ô1?ŽÍG?Ä4$?dº?›Ö>çμ>Ï?g>Ä0N>¹$É?…¿_?ªƒ?§ÈJ?¥ô?Š!€?Œh8?¬1?º«0?±Æ?¸,æ?K‚³?íJ?Š~?&×?©?Ñ=]ˆ ?ÜD?ãÂñ@ ˆ®@Ä?ƒ‰?ŒÊÃ?YŸØ?T=À?Núh??M“>€7è>–dL>Þ«ž>¼FÖ>4·S>§Ï3? ç8?Ÿ¨?‚sÛ?5Þ?¼Ë·? ]¿? ‘%?(™H?w¢?\„À?H*7?ˆX`?¶$ò?€™ü>ãÂå?$Ï?¼N?c¹?¦ó9?CÍ#>‰@¶?ùì?6ë?1âk?,Ü×?o¦?”™Š?Ï• ?ð'@E‚@á±@s @:§? °?}¥Â?·0¦?ĸ?=ý?«•?^D?` ?¿%ƒ?Äç ? è?1n?G„¸?K“? D?—Ø?3þZ?CY?ža?“>&? Š™?0RÊ?sÂä?ZPÅ? +Ê? p¼?‡M?c?ë?—ë…?ó‚}?µîQ?iñB?—NÖ?¾‰¤?A >C4?iÀ?¨˜Ã?û«y@å2?Éj×?Ÿ$??,ÙÇ?ùK?žƒ†?´Q)?¶·õ?¹?(Äd?’›?¾5 ?Å$@‘Ò?ö›º? Òé?}Á?&S?&½£?BF?Ž(a@4ˆ‡@ cÌ?[u ?§X@Z?¬e ?f½?Ѭ'@7Ù¥?ú?ë?ᙨ@«ž?ä7ª?ÆÏQ@Lf@0³¾?ÞØ?¹øC?B­f?Ê?ñÄÈ@t?"=€?8Ü@Obµ@EÝù@!v@Pó?Ç'ùž?]¿á?„èK?éßN@)pA@(Ñó@&1Æ?¤^¯?øý?Á•w?ý5a? ¥?[v‡?… ³?€SÁ?{(ù>…ÎÆ>ëg>â"?äÁæ?ÜŸå?Ç®÷?Äk?¼‰È?¿D?ǹù?Žf¯>’l?;õ~?®LS?Û„$@0Ü@ Jl@ð÷@(J5@5¨Þ?ýÓF?ÇÖr@A…&@dRm@›?@ð@#b@)‘]?§šš?£s?$?U¹ü@>„*@.|ë?ß‹6?»†@?l ?‡Š®@D|?ç›?ªÉ$?ÃZn?×ÏK? Ó·?\G=?Þc0@7/@=$?ä‘d@$&…@=ìN@F/?Ø—A>Ú9i=hè?iT2?ª&?ø™^?ø=?…6¼?”=@"*@#òZ@¦@&H‰@v)˜@A<7?òš¼>õÖ—?6?LÖ”?…—?¸Ñ¯?Øç‹?ÌËß?Ç–s@!M@:£å?ñ?Z³?èt?Þã?Ç\«?¨ú>f>åög?µ>?Å$?ã¾K?óÃ@0?îUØ?Îø@ô@:›÷@Xg@ä·?®H)?FK?÷œ?ý7a?ë÷r?Þ V@ÔT@FÔ?Õ`,?Å?Œ×“?„zË?Ä?l?¸wƒ?¶³¤?„a?‹­?Û €?Ù¨…?¾?º¢g?Æ`b?Þçr@‘Â@ „?ì©Î?雹?öt?é‘*?ÙôX@P@@'£@4ø¼@$÷a@6Ë%@Eâ@”T?Íí!?ðþß@Î)?ˆ*?¸É?ÂâB?ççã?u"?>Ѹ@7ͺ@X{2@/(@Rç?ýcð?ür ?êËŽ?ç #=þ#=J6Ì@»@ŠŽ@FØñ@8Ø”?¨ót?ðw?Z•#?@)c@.s@Dœ@Ki@b·Í@%Ó½=»§ ?mS|@*Õ@+;1@)M@.¨i@4aÞ@NÞ¬@sû±@Cͬ@%ƒ?ì'ù?Ëôt?úC@5p@—?ò½´?ÜÁ?É°g?èyÌ?ýÜ?õ•³?õ^1@LòK@‚0G@«| @ÁŒ|@‰Qè@]þE@wÓ@|Âá?Êô?*#ó?ý'8@̯@ Ö¯@˜=?¤™U?T„@N@4ü@ ÂK@ç@&5\@2Mþ@=ÎÀ@= Ó@;h¶@92è@ +c€@Öµ?Í”ƒ?ÁÌ<@Vö@,Ã]@ Bš@wé@Ñ—@) ?Í}Ê?Ϻ4?Ã×½?Á@‘?WZ?Â'?߈û?ñlÊ?ýÚ—@Uê@ …Ø@¶W?Ç*?°ì?À»r?»gß@7´e@F ƒ?¶–?–5Î?òê1@%Ù@?®õ@L_ö@nP@à™@1u—@9dò@VÐ@^‚@%B@/?ãg>?Û>@QE>@cóK?Úµ*?££0?û•æ@ +®c@-š&@:"à@q>?ààN@*©@X?ÑÖ?§hí?ò²Ï@ ?ÝŽÿ?¾kb?§×I?¡?ö9´@¦b@bÙ†@T3@1ˆÀ?Åíº?¤»À?‡µ?©u3?Ê¿€?ë7•@?½¶ç?PEŒ?K¦,?Fþ±?„Pc?½*á?ÈÖm?àÝ›?È-c?À?™£?ªÕ?–õµ?kä?ÎÌ>û`K?øü? Ë™?©H?y¦˜?m£>årÚ>î@&«Ø@(ñx@ @~i?År?»©ù?…c?z??Û¾H?ù7r?ÝÔF?ÌÆ·@4@IÈ@áÝ@AÏ@•,@æä?êÊÊ?ÉÖ~?Ø# ?ðr¹@## @SPâ@#ÿ¾?ºKæ?± ?—?–#®?­‡B?ª…Ú?wÏ?w³C?w£p?u_?9QÐ?4[÷?„?Š€±?Zi?”8&@÷@r”?ˆ§…?¦ÿ?†Àb?”ŒC?)„?x¾á?¾ts?ü9 ?Û‘'?­ &?Á›’?቉?ÙIþ?à ï?ÍQ½?ŒGÖ?™ë)?Ø•Â?ßêG?·‰¶?·wç?µJµ?­cØ?ƒ(>ĈÑ?³î?æ}}?ÆËŠ?µ@5?k¿~?é?¶@ ½Ô@\ä?×x]?´'?&·-?$‚?Œu?˜G?™âÕ?‘åq?²Å9?µ£Û?¥'?œ^?ã?q½¯?J:%?"ñ\?î¨V@OÛÆ@:wÚ@cØ@@6Ì?ÙÕ?%?&?³?¸ +?…YW?oÛ‰?Y5>œ‡?7ë?‡`?¥÷?Ð{Þ?À ”?«a?¸p0?ìCÀ?æt?’å¬?ž r?ÎnI?Ï`ü?vs·?Rç>?l ?m·ƒ?žRñ?Ò®ý?Ü\†?íFT?î8à?ú̳@~Š?vD?yrX?Óã?êÃB?ëÚÈ?çHO?{ͬ>Úˆµ>ÿ¡F>ëÑ>ÿ·²?#Ò?Kè¤@‡@’?Ü?Éš?‡n?jÔQ?‰–W?0i?ÆB[@ÖJ@ ¸?à©€?Õ¯&?˯¦?ÔøX?½3%?±vO?¾æÍ?È,ë?ËÇ °?"ß@{™?ùP¨?(ä…?)o?“n?”ýš?2*ì>æU?mñ!?ÂjÙ?¨·¢?f^à?g8M?ææÔ?æøg?Ã?g$õ?´Hó?ËW8?\æ'>‘>ö»¼?Mp?Ux?^ î?j‰È?¬ í?§ã^?4³k?0X”?Šº?—2T?ƒ”?P&þ?~š?¨Ëi?Év:@Ýû@ Ž?êB*?âŸ>?Û?(6?Ádm?¹ûX?TÑ“?4BË? ºÚ?!­â?€g}?¨¯z?øŸ?ì_V?Ñ~©?§ùa?£¾É>ïvÚ>ÛB$>]4f>š¥Å?‡A?‘°Ø>ôœ€>ò&ò?«F-?¶9?‘˜´?›<î?jé>ž§å>Ê1»?Š[?l÷?l $?96ã?;€?óÝ>óþs?JÊ{?b"â?r<,?{<Í?B¥ê?OK?\µ?C¸Æ>‰EF=¶#í?ÝÂy?ð’œ?)‘_? »ô?XßZ?s4Y?‚`?mÔG?ß">¼_/>SÈ?Œ­>zå‚>ô?BŠD>Ã(À>®8>Ñ==¬æœ=¼®?p?Ωˆ?sFž>Á«=›\b=i=Ò&T<ð'£>ÂÄ?™¤ý@I¸@2“Õ>ÎUŸ>¬ Ø>‹WÏ?…>·¦?ƒã¼?Ó„„?²õæ?ƒ?…š¼?”_2?u?ò>˜­>¬Ò§>ðºe>ñâ?jðl?qÕœ? Ž«>òˆ!? hh?.? Ù§>óÚ¿> >:Ú#>Ç" ?5øª?F:9?Elˆ?"ñ¤> +|v>Eßï?eA?5?hl?}”¹?÷Í¿?ø S=^²u?¦ó&?©t{?2m¼?Ý\?‰e×?žN?µ4;?»°+>Øy>¨H:>û8>û5³>ûe¡>J¼Ù?“5?geƒ?ƒ#?Š§ ?Ug}?-*Ç>¹M+>èÐò?}N?n¥~?Pí?‰j7?¾cz?†Ñ£>Þê?*–?~Xh?”ÉV?µcë?»ø%?ÕFÓ?¨iä?"Aû? +b‹>½]?*^†?™ˆ?s?só?"ä–?+3 ? ˜>Â{?NX=?Ɉî?®ÇD?€0¨?T™?¾8?3ô?€Z¢?\<^?û?K·È?“®?Ÿµ?«¸‚?¢‚-?€¤)?€­??€¶?š ¨?Á*?€@F>\6S>ùȶ?r²?D_Ô?õg>–š–=pRÐ>ªßI?'Y?÷?­@Ržy?è)û>©‡>àì?Ä+Ó>€E?-lï?Rð?“ ?˜º(?dÀö?y?'íÒ?' >¨=µmÓ?xæn?Â]ß?[»?Ÿ?ÓÜ)@Û@—£?ú'¡?¯ý'?™Î?€D1?x ?Qï©?3+Æ?št2?¢“>\IÓ?$„?M·ž?kgq?s´M?!ž¤? î?»}>ùj5?Á¨C?Ë<“?£ ?ªÛ+?£VÚ?šÅ>?,ø ?2K ?7œ—?@;t?G$?8Ù!?LÒõ?E¡?bÞ?e?lÿ?Í"?lg ?v? ?‚€Ú?”Š?Áí ?‘ô?ÀwT?ù¯™@.ƒ§?ñCY?9ˆ´?kÜë?‹Å?K´g?½Ö?Ó¶?Ä+ë?\V„>yò—?-5Ð?‚Üé?ir›?[‹µ?S>Á-&?:¡o?oÖ#?£vs?¸kž?“fý?„/ø?!=å? Rø?~­?Œ=&?i?1?{Æ?ƒ<#@ ª-@ X>U|>IM?Bö?X’I?Å?µ ;?$à ?:">¸}K? Dx?’:Ú?|‰?H}?7L7?ƒ“Û?œ”5?ÅG?Ÿ§?©O?Þë?>œ>ü Ò>h­è?.¬Ü?ƒÈ›?ˆâ>§É?i*¯? Ñ»?£:x?¥¢í?wò?gú?Ïþ?úk?t•?„A? 2>?ž€£?`V?f2Š?o¬…?€¥?ÄÏ1?¿Ž®?€¡˜?ˆ9c?µÒR?±(N?¬|ž?¡˜4?š_Ü?š[Œ?„U?«W?ð`?§à?gS?–¶ù?ñmÔ?ò ?ï²?þÍç@³È?ßÓ?ÆÏm? C'?õè?Q;>î!6?æÊ&@Žì@Ša@ªI?úº;?ï&~?xS?‘™ˆ?ãf?ã%J?Ç("?¯?;c?Þ,?ø:­?Í>e?„Û?„Þ„?„àù?q:?X&2?‘(t?³À@µ¶@O?£(Ñ?z@?iq‘?…?/Ño? èð?[j? +Nª@pl@ t?o! ?_Î?ûT?˜¥‘?©Ý0?£1×?`“š?‚C?¬_)?³Å?Ç»?–Wß>òQß?37\?….Š?¤©þ?ÊD'?¶?¥÷ñ?³ˆV?»Ze?¶˜­?·Ç¶?êËô?ÿ°Ç@ ×\@%õ¡@ +È@)@,/@n×?å°2?âv†@Yì@Ô?¯€ÿ?§÷Â?v£&?¡ÎÕ@E“?Úbð?ƒ9Ø?åXá@4ˆb@ +8?¦NH?Tw?JtN?D* ?H‚I?LØË?GP ?9áa?§w?Ý;†?Þ û?æÍ ?³E +?ŸŽk?¾¯Å?Ç‘ë?ç°?÷Uu?’1Ã?„ÓF?‰RØ?ª?šE?ÝÑ?ÒC´?ÅåA?A™}?H¬«?;ØÜ?så¤?Ú#Ð?éû@ ðÙ@ÞÆ@æ?íOÑ?À –?¿÷?Í?ÏC/?Ãݦ?ãu?Ç5?ÙÜž?ßÙõ@?\@6ž­@(@#ÉÅ@"ï›@$œ4?Òç.?Á”ã?7ñ?v q@O½+@H Û?é€?æ‰À?ôˆÉ@¨ñ@.ã@Õ¡? ø°?³6ø?ç/N@ý‚@Jzh@>Bµ@%)I@p?ß±!?¿±?“ü!?ï‹–@$ú˜@4¿ @B6 @=aé@>Ñ@À?ÇRê?ì2?öþ?×??ϼ_?Š©q?jŒæ@¾w@LÎ?ú[…?ð/ƒ?îE?ëÍš?âÉ?ä§õ?Šþ?=@iÓ@ç˜@c\—@]¹[@{;@Q9@# @´@J +ö@IÎ#@Jý{@6/@ó@ À~@D†@9U@{„N@Z:ü@#'@&-û@+,Ë@KrÉ@xsó@kŠ"@X¦@JØ…@:$@++š@"ô@6"G@C¬l@ƒ8?ý¨è@sÓ@/®I@++Þ@°D?㊺?¸o@vºS@¦â¦@%FL?–—~?àˆÐ@d?§SP?w@±V@"Ož@®c@ Fé?º6?›óú@Bû@\Û@"-E@ÿ@ þü@"<@1‡ç@8>Ç@;n“@>£.?Þ½ß?»°Ý?¢†w?£ï?uÆh?lÀ·@–"¶@©pP@¬3@®É¥@H5?ÿ;´?Ǭ!?ÁAñ?Ö?€?îH˜@®ß@Db)@E%@5Ê@0(-@!µs@ •|?ç2æ?ã¾@û@ aQ?¸F?ªó@$@ä“?ܨu?×í?Ÿ&A?‘÷G?Ð}?Ò!?Åhæ?ÁÇ?ÉÓ?\„@j¥:@‚1š?û¾«?Ð??·Ä?­r¨@]Ú@(à¼?ç?ÏŽò?ÒG?Û‘5@4Çs@Hó†?·ôÀ?OQ|?Âg~?äuH?¾u?¯ÿM?Ö¥>¼!?Zÿ?™Èb?ªá?½k…?ãÄw?ùmÆ?ówO?ìY£@RØ@,Œ?þY®?àr²?¡Èˆ?*G¢?"<>ÔvP?”}Å@G@–Þ@0X@Ôà?+[E?>úý?{»û?….N?˜«x?ƒ +<>ûbù?-`ù?Í ?Ã/?»e‰?¹Ž?±¢?¬%H?›?¢ ð?Ø7t?ݧÍ?湦?äŠ?ˆÓŠ?z ³?™Â?œcº?ÿ"Y@¶ @M@ qâ@ ¨€@ Öp@¯*@á @]¡@š?®WV?û¹?lQe?•m@Ÿ{@0Û@¬ù?½½,?²ÏÙ?˜>öôk?½ö™?Û¿‡?ÊPà?ÁxÙ@TaG@‡9@5Э?óz@ ¿@?à2”?†<?Æò+@yE@§ú@©ñ@“?Ⱦµ?³{ã?9p9?ARq?žéT?¡gÁ?ßaª?íȘ?k“>ñ?8~0?fÂó?„0N?' ?/þ7>ó•ç?Ýj?@ ?(åÞ>à{?cïL?ö6?áùK?”X?ŸuO?ò„ó?ònA?¸øX?µ¦X?èPí?ñÿ?™·ô?qÃ?²¢?Ý#ê?ÈjC?²-@ 4@ƒÚ©@XÆ…?Ùn›?ÝÜÕ?¶$$?¨žî?HFY?B¬+?ã‘Þ?ðÖ?‘CÂ?oàå?„"í?wÆ?Š2S?¤•?çj@%T @õô?ƒ?çó?´ i?¹µz@>¦@7wŽ@'F@"ãU?e`u>˜ÿ?*»ý?m¹Í?‘Õ,?²#/?Ä‚@?íL“?áë‹?¢Ó?š˜x?º…¿?·~?ëc>ñ¯?V?y?ÇÎD?î.ú?Á¨?Ž3?|ÌT?<øI?M/?ÍåC?ÐÎè@ y@¾{?nb?jÙ?Çy@pø?Í.¤?r3õ?M™þ? ~?=W?Èë?)8ô?ºQ?Âœ¥?ë’#?ðº@?£Ó?tS?Ž2Î?œ¡ó?…î‘?2ú?[ÈÈ@ ç`@x$?¸ÅÞ?°PR?þû@ ü?¸ñ»?J-.?‘zr?î®d?ÛÕt?,Fè?2Üþ?g>Õ?g˜m?¼h?Ç™©?C`?€K?ÀÈW@ ×@“á?º9?¹˜‹>¢d˜>ËÆ ?Î`/?æÂ@–q@+K@]¸@kj?ý~s?¹ƒ¦?¹Ä9?à×n?äbß?}‚.?fOT?ïQ?•Ò?ÌŸŽ@í@0?ûþ?ö(Í?‹ø?‡h‹?¹¨1?¹|Æ?ŠÃ×?pìƒ?,'X>õ3L?tÌã?Ëàµ?Âeª?͉L?Õ:Ž>Pÿ>`\?›¸ª?ÈÊ?iMN>æ…;?§wÛ@ Õõ@!¨—@À‡@©ž?µÿ?ºœ?Ä;Ÿ?½7S?“ß­?‘Xè?tF&?#¡&?1¥>çÉ’>øÒ? +Àï>ù]?o8p?wØþ?“¸‡?Ž#?‰|?sô?’ÞD?ŸKl?Öý4@ ++'@«e@;s@9b?ê¥{?ç0Ú>ë&0>ë]­?éWR@ˆõ?SñY>ìgÕ>ùjJ>ÐB­?Œ‚?]›J?7>õÇ\? ¬€? +­?7Š?Œão?]Ô®=[ðÌ?"yK?¾ã?ò†? ?heT?x)?©ª ?ª"?c??FMÞ? k¸>ÜTÛ?†Sü?²Þp?ª¯B?­cÛ?‰ü?sd‚?&[å?ÂÍ?’¯¥?£a½>òj>T•k?wÑ=?Ÿí¡?…½Ó?-Å?ª„?$Â?Έ?]ì?RŸ??a8?¡ë?!L™?ïÎ>Àt*=c*>`ä?žÉ>mdR?]n?KÔp=ê0<ô¼?×? @?ý?¶Q?0œ>Í7F>> É=6ù¤=ó¸>ñÚä>wô=íÕw>„…ì=‡ˆƒ?³CZ@}Ê8@a»ñ@Ms6>^üÕ>‘{5>³÷?³†‡?©YX?ü_’@-äÇ?Ы?W&×?L¤?;D?5˜æ>­ >¤SÅ?œ:?´?`á?iDû> +7ü<¥ÀÐ=B„¤=™h?HS?R¥$?kV>–L«>Æïü>ö>嫲>õ”}>õÝ>ö&ž? þ±?MY?@i=bÂt=;©7?j¾?"%s;F 9?”™P?¤†?>À×?2?\?;U?¶?ö?¥Z[>®3v? +Š?4$í?Dö?¼ >øêm>ì¨>€âa>'uj>û„Ê?B6Q?#.È>ü³?,"t?G`‰?<"?Gª3?¤õ-?ç +?ÊV^?°X?T¦Q=v:n>Ù¤Å?{¢‚?€Jñ?„,9? Ô?¿ {?v”7> ­=ÉÛ>•£|?C‹I?LB>]Ñ ?ó×?•€,?nå´>öö?b½?äD?Àˆb?s€?­ÛE?ø0Ò?ƦS?€]l?w\_?cG?‘ÏË?ÂO?uµY>W>ò>ÞX€?BkÍ?Hl?NgÒ?wµ_?™ð¥?’ Ž?€Û +?Qõ›?­Ì?¾~? ?u6ò?¶9»?•»?o ?‘?œËk?šnD?‚f#?b¿¨?L¼G>÷7›>‚tç?(›‚?jÇë?)n?f×?d ¬?}+?Ÿ¬…?¯i{?µî?º´?WAL?Øå?xG?£.?“º?/Y+?3WÙ?°72?½f‘?DÞ?S>11>B¨>?}?!:”?’(¤?’³.?Yæä?\s…?Ž?¥?‚•£??1û?CŽä?[S>òé>©’[>øåi?kój?Mì.?;S?+ *?hFÍ?|Wt?†Y?Åš°@ô9?ÿ@õ?¤eR?—§?j-^?Rƒ?•k ?\?À£?b:ñ?Ÿ·œ?XÒù?Ôâ?.PZ?Qg?!—…?éØ?Òû?£ç…??›Î?þN?)&ô?(m/?¥w)? ˆ?R(?~[f>d >•¼>õ»–?2Û?Ñ?ƒ<ô?ÁË"?ÆÍp>”{>›]Â?UÑ?!/µ?ņ?®µ¸>Å‘©>Ãä)>íÒ‚?MÎ?§Z?  F?ƒ‹¡?ƒŽþ?ƒ“è?̽Î@#Ô?ñM?~E? + +·=—ßT?kÖ“?Î?C?„à?*é?JÉó?WÑ©?vÿ?ƒÜ×?U³?Fãf?gêÇ?]¢_?†­¡?†Ü~?>Ñ/??,Õ?Àáß?Ò+Ò>\Áí>"ú>€©>h5j?€ÄŒ?„Ãù?„0?]±Ñ>?¯?ŠÞ?Æe?ød> +ï¦?7ºÌ?Ü•?Æþ@?«×·?sEµ?hà?kˆ?¢Ÿ2?¦¡?­*6?…cY?_.Ù?ÆH®?çh—?ØfY?Òç>Ú]2=â†?ªM*?Ä|6?Æöy?Éq[?#É?D@q@@U@ ûS?û˜?èNS?—AÂ?Šñä?-b°?W~Ì?°åè?™Þ?E8ï?Œ“ ?ÀL?¨êà?ö”?«>i?ÂÛ?ë¨8@öJç=… º?ˆV?Ž’Ã?µ,Ž?¾£™@ù¦?ù2k?)Q^?P¯î?šø|?Å)T@?ƒ?ص?LÎ?GÁ?Ceƒ?É•E@æ(@ÜD@ÍF?ÈPu?…> Ø:?†˜?´½=>¯çØ=¢Ëï>ïuê?B”?¿1à?ÄN‹?÷Ž?à÷û>zÏ >¦h°?ì? ¿U?+H?…ŸN@ßW?øÌ?×ò?Ç~a?¤Ïº?Ī?ëw{?n]o?Ò¢÷@;ZW@?ž?úz¯@ Àå@õY?´OÀ?„›?ãé@Tu?KI? +Y ?¤†?|û@é@‡G?ódÑ@¼h@7\@:“ @a0C@Q½¿@Wþ@“‘?<ç]?A)A?Ehø?×bô@_«C@GR@%+?ÿ¨?˜¸™?­=Ü?Æ`?õE“@æ²@)+Ë@4t?Êq?;¦a@ó@CìÃ?¦÷?$˜"?ÖLŠ?ýº³@yO@“‡@š@¡T?¶Û??°µR@&Åž@*q @,!º@&h;?Eë%?Z 2?ýo„?ýÀ@4¥@­(@'~¼@-|í@='©@DÆ!@`w@dܽ@u[@HêM?‡ì?Óñó@CY$@DÁñ@JÚw@\¿Ä@uŠ¹@HE\@ +O@ŸW@·Y@â"?øÄN@2Y@d‰z@bS?¢´ß@nc@C°"@Qô?šÜà?ôæ@z„@vJË@›\V@n†?‚1ì?剻@ Wñ@€pë@ž7ö@9;½@ý‚?ÑVe?¼Ôq@&kÏ@=™å?öÓÞ?ÑY·? †·?”²%@2Ê„@P¨7@+G9@!ø@.G@1ÕÑ?ø¹Z?æ_ë@àE@|8@Ï%@¸³?œE«?|•?SÒ§?C‰™@- ·@>×®è?jY€@Q@?}?ên?Ç ? •?#„æ?².³?¯È!?8á?@–q@ “Ý@¡‡?õý5?éá‘?úí5?úue?â"?Þñ@@.P³@8-@;}?»?q>¨ÝF=ôwÖ?^?„ä¥@õó@U}Ä@&üÊ?ÎÎ +?ų½?¢Öq?ÜK@>L@&xä?Ï:”?Ç´ß?ŒŒu?Ž†>>÷t">÷\P@€@!ýî?ŸêK?‡€ß?x8?vËr?Ê?åˆ@¹Î@í'?äoJ?ºj?¾Ü#?ÅJæ?j™v>6¢R?…@|0@ c?âüµ?à6ÿ?Ê$4?¿4_>ôù,?ÅI?’ë)?Ní?Ltõ?=Ž'?µßû?ÂØV?9“>ô @ö2@S]þ@N‡?¯8°?©ðÚ?¤«h?¿n?é%?ĉ)?Š[ª?“Ÿ-?’¯?–^h?µÙ?ºWÏ?…x?ˆ>°?Ñü?મ?”;ò?qÆ?;àX?"G?E>úÔg?6½?”š?š–Å?å_?–™b?ð­„?è½Ø? ðö?&Yã@1д@6ô@ Ÿ¾?ùXè@ 'Þ@NÞ?Ô|~?†lÓ?“M[?ªWE?­Ê?¯ÓO?–4[=5ýj=é÷â>ÓÒú?²V?s÷-?Œº?a6?BU ?7‰>Ü}æ?LA?˜¶?®4c?ÙŠ?à›j?ýA’@-—?Ûâï?áª?¹õ?°æÜ?7ð-?çÛ?(…S?Tžï?Åü—@2}@ Ÿ˜?ß)Ï?ʲ£?l÷G?x÷à?ÚCô?Øá?wu4?OYá?%-.?ˆ?b?êz>?ø:¥@ àŸ@˜ë?ú•§?íþº@Øû@|Ã?ê¶?ãˆ?±Ã‰?‡Øì?®µs?é(—?ºáÜ>ÐÈ>Þ™6?Û²„?â•?VÔ>ýš?Á?ñm±?Æ5¿?žz?Ìõ@ ¥(?íÏ?.#!?'"?:Á…?A‡B?å-@^æ@ +•@/£?îªn?çݽ?õͼ@üý@:?-¿8?Ür?“oä?¤Åâ?ú¹Ì@.?Ëm]?f’?•´L?æuÎ?àR*?¬Ï»?¬Åä?p:¼?fQ?-â,?$ã?£P ?æ5+?Ç E?Ž#­?™O?û0?À"?ä(Ÿ?æ%U?ÀF“?± •?ï …@ ŠÛ?Ö( ?†¢9?¼åï@:´@0©Ñ?¢5J?ŽÎÜ?4ùd?Ä?S]>æ…»?5™ü?z¨¥?…!?°Û?³%ë?zÁž?wÛ?Þp¼?ç-G?¬kØ?Œm$?ˆrS?šm`?‡Í^?ÍA?WŸ?å|‡?éºÃ@ +: @ì$?IY?:kl?¦Jä?´Çž?‰HW?Rzü?ŸS°?éßå?Æ@?jE(?~Tí?±Ùž?°<¼=­i@=öW?‘×?§'Y>ó b>‡¨ +?5áU?‚ t?J—0?ÆW?0Œç?jù©?=j×>îØ—?5œ.?³§n?Ÿÿù>éöË>è ?‹æù?‡!1?‚Pî?zõ=KS#=…ÌÑ>Zl>®4×?÷Ø?,~N?Že?”º4>¶1K=ó9í>ç©3?Ù,=÷‹1=”¸$>ÎÐÿ>ú3Ž?€0\?˜¾P?$æ·>ü¥Ã>À>Èøÿ?^%¯?{¶$?{|}?ptA>ªh>( Ÿ>ѹ,>ða>T$ò>Uj.>ÌÙF>î·Ô?Ó£? |?±k>_ÿ? +R°?LFÞ=ÖI(<‚ye>Ýf ?6B.?ˆU?xa? õ§>RÓÇ=òªÊ>«‰™=×¹,?Èš@‚òÀ@)rð@«¥>³Mé>Ž÷?E{Q??ge@-a¢@dÏ?Ûí>í÷²>½\>c®>òzá?> +?‰÷?†®?€Ãü>ñ(í>ñ‰R?¨Íá?­g«?o¡š?LÊ?cà ?sw?[´?Dé¼?{Á?™Ž?c¤Ó>õ}>õž>öJ>ÆÇû=¢ç&>No?paY?€Óõ?³Bà?¨gd>ÐÒ>ÂÆÑ?tjë?xâ?Ò«?ËþD?¤Ÿ\?îÚ?§?©oU>–‹?“€Œ?×™?˜à³?vŒ)?y˜¹?s¢ ?c–²?Q³?U›'?Z"D>锲>=ô>à@m?4Î?|ž?ym?³ô?ë²x?ÍÍî?šÖƒ?\ˆÁ>þ¯>÷ÅG>ùGê?7M?~?ƒ?Š¯‘?NØM>¸äÏ>ñ>]? ™?0Œ>ðbg?I©C?’è ?ŒŠ¼?”åL?´1?áS•?¡!V>Û2°>œ¾˜=K#à<ƒÂd=¶a0> >}Ê?6?€uÈ?T%8?'›t?0êó?l>Ó +»>ƒ¬V>ÀQö?¾´?(#?O9C?`˜ê?€à=?@¿?˜‡ ?¦r8?¿v7?ƒ0?/—?~í?J]? ž?)Ë?žº?íL…?š{?7{>ðž§>€7â?|§&?ÂÅ?Ýn?TG§?µø?àU,?oŸ?ƒ?ŠW?Ð?l?›F?•”L?³Ãò>Ü++=Î’R?¯ {?Þ”É?·SG?ª³Ò?ú@Ì@ϱ?³tÅ?¤Ñœ?!g&?èº=…:O>± />¤ZŽ?Þ#?ósà?Œ]?7?¾´(?½TØ>ðÂ>í7Æ?o=Ï?^ó>}öd>Ø\g?Ú²?×¢&?ê¡?Ê\F>…›Å>{ â>”¿>Òê7?7_K?y·n@q ?Ý>;?kón?2‘y=êµ?>*F@Ž?ÕÏ?Œ‡?ëÅ @3Zd?Î >W#Ä>€>”Œ2>záX>=là?{H?Ì +ç? üË?€‡? í>›½Š?c°?-Ø•?ǘ?ö•>ݱ4>ØX*?Â>Ž?ò×?OEÓ?é©?r^x?ƒ2?oà??ch?©¡ª?©lÑ?„h?ƒ>€?ƒC?§¨?M?Úµ?‡ j?†ÉG?§GÏ?§Æô?œU¬?ž¬T?±)™?c>ÊU?Fl?ƒ‹ª?ƒ ?ƒ•ý?‚ æ?ƒV5?¿qÖ?þwi?zYÛ>ßTÁ?X0º?*Ô?Éù?XÁÊ?ƒÓK?ŸhÖ?©Uß?Ä×?ÄÉÖ?Çï?ÏöÙ?©‰a?«×>âµÃ>“Ó`>ûˆ>Ü¥Ö?¥¹ì?¦K»@!`@9{>}±€?ÃEµ?¥,[>é þ?‰é®@3ÍÁ@aG>ÄGú>ëÆ&?. à?O·µ?n˜?•¾š?«Žè?¥¼ˆ?¨/•?“„?„z ?‡?ñq@ A@%®3?÷TŸ?å-l?•âv?„›œ?„ ?„¥’?„WG?…¡¦= }>G®è@ 8@ £x@À?ðL ?„Æw?[»3>µÒ&>ÛÔ:?ÕH? 8‹?Jy?ÅÐ?뺪@ ™t@lc@ýæ@0?ýh?é—?’?Z5i?Õ“¿?û'å?Ÿ…µ?‡òÝ?ù±Â@ \@"v@"Î?Ç?¼.a>ÒÙþ?&˸?Õ7ê?¬á„>±1­?)!?ºhå?Ç$?Ð…?ý(ƒ@$3a?ø–ø?ŸÀR?†è?]©]@]R@N¢`@1¹@&Èþ?î]?ÇÛñ?œòÄ?ó>2ÛÑ<ôE-?öP~@´™?—Ò?³‘?Ei?f@R¾ø@)ŸU?GÍ?R??'ƒ?‰¶Î@ 7@S@†\?­C–>ålŸ?3>¬?~„?TP)?-´>ýY>º'²?{â?ÇçÅ?ÕöÌ?Õf˜@ <«@'ÂU?Ð9??À¡ó?…[q?ßT?(ùþ?b†ÿ@ Þö@ÃZ?Õsë?ÙvG?ôcÜ@Ô@‹V@à£@ +YŒ?ÞGK?¤¯c@ Õ0@FR–@ ™c?²Í*?†š'?e4…?ãI>âÁ>ûV…?}?h?y?"Ïg? Ë@âÏ@C9@û4?ü‡?a»X?\ã—?mâ?S·)?ès?Y0o?ÞK8?Ïc¨?«ú¶?©Ëò?§ŸE?´æ÷?Ç,ã?^àw>Qs€@%ß@]QÒ@CYÚ@5xd@àÏ?Ô<?¨Ðý?–‡C?‚6š?Û?õÃX@¾?Èn?¾7?>@þ?N\$?ƪ‹?Ú_@`)É@N8*?ɧý?À}Ý?=ð?<'’?EÅ?Vo6?ÉÊ‚@ +Df@_\=@;Êð?þ^.?òÒý?Û,…?â ­?çe@T´@€Ô@M;v@†&€@Ž^;@’pÃ?Â4Ä=-G“?A—/?}o/@ Ãj@×@Py@1ø@@A–Å?ó.Ö?Ââ„@Ý@'Uô@å÷@åÈ@Xè@bŽ©@tq@uÄ…?üòX?ÓoŸ?¼$T?¿*’@ %@ D@äŽ@ð@a+@J=@%Ûq@)a¬?þei?öëœ@®ô@ÓÛ>”ƒ0=)‡?ìæ\@ì,?Ær?ÁDÄ@4-@Ûø@„]@Q—@(8c@*‚0@\àû@]Q¬@Võ@G-@Œ°@!ø¸?âÐ?ÑÜÅ@"ü@)˜+?ân‘?Û¡’@ „@/§?µ…?­ á?>äÈ??”@(Ú@zG@oÊm@wjº?½’Š?´–?žF?¦u?†õ&? Ê?‹á1?— ´@!²ø@/Ò ?úà‡?ßÐt?È6ö?Å­Ö?Ê!?ΉQ@÷À@7£k@wÎ?ÜI?r*ž?z…@-Lp@wÔ­@S-º@=u@tÛ?¶ý€?ŸÕR?–£s?¿5ˆ?×7˜?¿…õ?¬pq?³¨¦?½sà?œ„1?]!?ÆZë@Àˆ?áܹ?5C?¶y\@.å @IS?¼Ñ%?À‚Ë?ÂJ#?•v¦>YE¦>­Å?ŠÈe?[@œÅ@×]?pß?~Å@ôû@ÕU@/û¶@(Û‡?æ²?æ–Ê?ÈJ?Ë~?Ò…?Ù‹º?ÂW?»KG?¨üú?¥Q@Ë@)¼,?Ë)?y(U?yk?xþ?ÞA±@~?ÄZ1?ì?ñ@@gg¬@Xh—@Aé3@-@>a@c½@ÞÐ@?̾?»~ã?9Jâ?4þb?ÝdB?ßÒZ?áR•?ë?}5?[ãÛ?q¨„?v˜½?7<Û?A?M†?y#q?ž…Å?¸€Ö?Ão[?ÇâÎ?Ú5@ @ ý@¹‡@Ú÷?u0d?d½>ôüâ?e?Ÿ$û?¡¢?Û£}?ØÎ?ˤÄ?Ñ—ã?hdD? Gá?¸ü”?ñw×?®xg?{h}@g×@v’|@;M}?ÓV?·ä¥?KÞã?@üõ?+ +Í?0C?5|m?:¹´>”ƒÚ>˜*t?^=D?‚®?‡Z’?„ª³?£-Ç?µ1\?µ6?µ’?U!=‡ÆH>óÚ?«Ä?›ò–?S/'?] Ó>ð~0>ð[Â?ç’k@¬@ <®@ì³@ ö>@åº?ÉZ?¥5w?¥«_?š°Ä?‡¢ì?hË?m‰­?eá'?^{&?›5[?’—ÿ?YÄM?MO?eNä?mü?–â\?‰?n6è?:0?h"À?ž)A?›Áñ?„ƒú?†­?}ó?wk?àôv?ëô‚?º¹?¤Ÿ_?GÔZ>ì­?—1¼@/?úà=?¾–”?ÁOþ?—Æ?‡g·@fÁ@ =š?}2?*yÂ?P»+?j±?¯2{?ësª?¶„L?€›?4b•?MO0?fN?áž?ì£?„®F?_Ê|?›)M?¶×í?½(\?Ãzâ?Î$?Ü•Æ?Û*œ?£Ûw?‰Ü—?ß¾?Þò;?bi¸?.š?‹ÝÚ?®$‰?¨˜?¬‰8?­Ž?gàF?hÍR?vŸ?aåH?•ØÔ?¢4@U +@aÀ@Ï=*™À>Á n?Œ/?ž©?ó‚á?é µ?_?fÇ©?ëé@.c?Þ¸?—ŽË?Ÿ=ô?Åc¶?ÉÙÜ?¥ —?«@!Ñ|@ å?2ô=Ôõ°?]²$?ÁD¶?§Û‰?f/?…i?æ)›?æ+N?»?±in?ÐßÂ?ÈÙv?À¦Ð?Ä %?²-ž?²£ê?fšC>Ù?-[N?šEÓ?¤Éb?®Ç?§I!?#H ?E~á?Ž½,?‰¾?7{?Œ Ø?¥õ?¯"?Êu*?éé=?Æͳ?sBW?A4=—K>A±â>ºW>¨K"?’!Æ?–ñ?Aðg?ž->³@>g<µ?$7?w§p?®éõ?è)…?¶Š³?U‚§?w[µ?³°Â?¨•’?pR…?†N~?ê.è?ØþÁ?¥Öß?°I +@н@ R_?^~[?3)‰>þÐ>ôù‘?ŒLÑ? iÑ?]j;?1(ë?Z!¸?rÂX?©5Ü?§WÑ>®z> %>¨Ag>糎>þœZ>üº»=Ÿ°­>àÇ¢>ÿð¤?„\?ìv?•>?r£;>‘¢¢>{ >£ ‘>‹ö£>EÈ?o>–ß7=¯Þ>Œx>«l¢>ƒ†á>•!=¬Œ:øºµ=²ê=ð8ò=ì… >•@s>¢]ž=ÊH?F¥q?)Mø?ƒ @#¶=?ÐÀ)?œ ¦>‰An> ­K=ñåY=LÑ?Ʀ,@ÙÃ?‰ÉÉ>íÅ?]?/«k?7®Œ?g¹ñ?‚K ?—–r?—ô’?0O?lp<óùº=Œ²{?–Qú?¬8?G^?y€>ß/æ>¾˜«?. ·?u„ô?]Ê?)î¹?)>õúò>çð6>Îna>àì>÷>Ù\h=¢Øù>9‘´>øŒ>öo^>‡Ä>¢sæ?—£?ªƒ‡?ñn®?þÛ?ÐéK?ÎÜ>ªp€=zÂ=³E>¬Yä>ò3 ?S,:?{±C?{Ü­?| 5?@H)? ¨?Yœß?lš>ÀÛ>?Q*Ô?È"?„ É>ý˜¤?–9?ðÒ?ªæŸ?,$>´¯%<›~->êyž?~ ¡?~Á„?~Üi?ù> ý`?®?P’?bW?<Î?ä ¬?—lR>ª?a“?av+?¥º=“kÇ?Íø?Œ½»?M,>õ ­>‡ˆ=«ç´>o¯æ?L]?Ù˜?Žw+?¥ò ?R=m>{&>>çõ\?3¹?ha ?š? -Å?œOG?Ü^S@gž?ÖZ¡?}øù?Á“?ö¿¦?±"?oæ?iW?cŸ +?hÝK?€z?k©Õ?LÔq?¾8?V¨?|«b?§¯\?›Ã¸?˜©´?òÀD@¾j?•|Ñ?~R?»?3?2í?¾ó)?”xi?ˆû8?hå?O÷ª?Z"?pu?’`z?™´ ?‰VÔ?“ +¬?>? Œø?À@?ëÃ?ª“>æ3§?™À?§s]?^:K?b‰?½?7Ô?"ã?‚†?z t?nÉp??*`Ð?“ÿ°?Žû«?¬l¢?«ª¤?G$?ˆýC?Vz>Îý>®Œq?¿´ ?×Æ¢@u.?Ó%Û?5]?CÊ?v)W?­S@m?ÑC?‚§mt?#?àÓ?å×?ãûð?ˆ’\? "?@2|?Z•—?nÙ7?fžü>”zm=¹ˆ¯>ô–Q?;L?‚Û¼?‡ææ>T=d9’?®ýü?¼4¬?øI“?øË–?ƒÞê?ƒ?Ë?ƒCƒ?“q?Rè?I4?8ŸÝ?Qæ6?ƒbÀ?ö?Å%6?´¹/?ƒwø?CÊ®=öNÉ>ÕƒÞ?ƒ¹?€¥/?{Ç/?Q+? ¸?‚rK?É´Å?žŠk?cUf?)P?À%?Ä?ÉÀ?Ljæ@¦þ?Õ\Y?ÅÎz?ôÃç@êh?¶ç? )¹>­þw>;Ü?uz˜?„h?ãöñ?íÒ@™õ@V_?‹ó?rUñ=W±‘>f¥?ÆI?§¤š?;œ?¿Í@+d@t?¤ßq?g">²ÒÇ?yH?T~´?“• +?Áû@?Ž—ß?KQ¹?s£?„y¬?¾Œ?Ýôã?÷6s@Ù ?ƒÛæ?5ÓÚ?—75?›¾H?†2j?„¥š? +‰ ?T>ùo?Ò†?ÏÁ +?Éß8?ŸD°?’œƒ?(p]?zf˜?Ü Ä?½v"?‘W?‰çe?„ÜÊ?À§0@ ®@åP@½æ?èåj?Çj4?¨ËÇ?•Æ>þÚÎ>D£)?eÀy?ŒÊ ?¸ý§?ÄF€?Çk®?É(q@BJ@A,i?i?‡§Á>ÖìÚ?¹?Øü…?è­K@X=?ÜÔ?…'õ?–J?½_?ð+ô@¯¬@¯E?ÇËE?º^?±R?ÃáÍ?ÔM§?‡þ ?;¢?“ž?¬^?ôd @áË?–Õ*?…&?Æzˆ?ÌKý?ºu>?º¶¥?é$?èÓy@ +×Ã@õ¸?Ϊ­?µŽþ?…HH?€ÒC?xbÌ?Cä?¦vS?s;a?D?§ >Å|'?šaí?Ö{q?ÊGB?Çêý?Òÿ?Ós<@]G@®I@=ø@E<@˜Û@\®?…@€?v]S=ˆˆw>}‹6?ŸS?¸ñÆ@6Á?ý~ã?Ýh?ß“ø?á¼…?û "@TÏ@_T?ç®Ê?Õ¬”?Ǹ ?ÂJê?Ä?™M?v1?±©P?Ïás?›·¼?÷›?/Q;?±A?úr@^?Ê«?ÒÌ€@B)”@<n@À³@óv?„ï˜?k”m?èÿ?kå£?ó0x?Ô)’?Ÿ½?À(û?êtw?Øð³?Ç.y?½4—?¬ÂÄ@%%‹@]_2@0É?÷i¸?î‹a?íú‘?òEé>R~·@1õ…@2Ch@¯–@¿Ð@Sà@LX(@ÿ9@£W@Ž@›u@,¸q@ý¦?Žñ™?á1@eož@"¸®=™}k?†x@CºI@ âÜ?Ïå@#,@v©1@bŠn@HVÒ@g3›@2@‡õ?¦qé?=q¶?ȘÛ@ ׯ@4Ï@O’©¾?Ÿk?Ó”@'‚#@AL[@\ƒ®@cA@F’'@:Ñ;?õ«[?Ö1¶@G†@"@R@(ä-@/Œ@YŠ@duÕ?×Ýï?§gú?ç©Ë?è @5@% p?qpë?2àz?Û×+?î.@¼™@!À‚?çvÎ?Ùo@—Ö@´I?¤.?Ál@âG@ L?ɺ?ÁFï?œ2~?  ?×5Í?Þ°‚?¶}C?º2M@;@Dš@ýk@lâ?ì="?à`@8É@;Ù*@;\@=?ÖÝÖ?Ê“!?톃?ê¤V?^V–?:pH?özv@–ù@¤?ÿÀS?Îæ¤?ÒÍc?½§"?·D³?34T? 8?Ê4¦?ܼz?}Pb?S¨µ@8‰t@Y$æ@.ª@ dÀ@‰š?ñ”ü?ÀÞE?¯G>?ÉŠ˜?ÒÛ@ z@3ž?­*!?hÇ£@ +wŠ@5D7@'ƒ}@fg?ï2O?½÷?Ûæ,?íeÓ?¹êú?—Kó?­ n?½”¶?èoÅ@Z@ê@(«·@4(@K°C@'ß?ÑO¸@ ر@^jî@;…K?¼Ô?õ”¤@Gb1@.M ?ª5H?ÊáÛ@F"@ÿe?vb?„1R?zߧ?…¼y@)Ç@˜ù?ÄÛx?Љý?¼ý?»±}?¥Ú>?¡~Á?¼‘û?¼Q?Ò¡‡?Ö7,?Xúl?!?Ÿ±=?ÅX€?¡X•?‰ ¦?†®H?„<?Ö;@5ï@ .G?òÅ|?âT ?Ü@Ü?Ò{?¶:q?±xh?Œ‚=?›Î?ÑH2?è›ò@ÎÓ@âÈ@ +Ð@–i@{ ?ÿ|}?x>öþ‚?i¾²?fÚ?‰k5?Œ3â?Ëšu?ìN?ÍŠ’?·)b?÷oö@=0?Á?@/Œ?tÑx?›ö‡?­‡O?Ñ9]?Ä&Ð?u3ñ?l^­?5xÆ?A"?ÛÊ ?Ñn ?Ñ €?Þð? y=>ƃ>?¯¤?Û?¥‡¥?~…×?ã©å@?Í@&…?î·@! @ ˆˆ@$ä@`Ù–@:O?„ú?w—Y?6I?0ž¿>P e>2¤B?0qÒ?)‘W?x—X?’ª›? =´?¨ä°?¯ÅÊ?´9u?ã1½@ ‡(@C??ç?ÃÓR>ðµÆ>üëD?FÂŒ?A"E>ö›ü>ð*[?-Q?=IF?õ©}@ mi?È ð?SKb?ÜRz@3r9@û? ÷h?&)ø?°'?­íµ?²ïl?²Ý3?Ϭ,?ÌžÓ@0þ@k×?ð ?êð²?ˆ„¬>ˆU^?1 Ï?± -?ª¬T?±Õi?³›?È´o?¿¼¯?è7@?ìŽ?W4Æ?%c?? ô?R®ˆ?é?Ãœ¸?Ä3?º<?ÄÔå@Ø5@¸¸?Àv ?ÅGª?› Ç?–¥ò?Žo‘?‚…¯?ЕÁ@ˆM?û3¤?¥ ò?ŽîÔ>ê‘>éús?®l?¯S?ÛO¨?Õ̘?€¼u?8¾?y—q?™H?“…?—"™?ÌH‚@ŠÙl@Žßð@Aš@n¿@+ãQ@,0«?¢nc>Ë…È>ë"v>èó>ÿãã?0bµ?>C?Ò®?Õûà?Dj?}@l@7t^@|&@î×>ß 3?F²i?Õ>U?É«¡?¢õ?­Q?¸Þ2?²FQ?°§.?¾À¼?ã^â?÷íU?È3ü?Dñ:?"‡Ö>ælå>èæ¾?£&?8]0>ôg>­¬?8ÿš?ˆ™ô?ŽED?Ί?“ŽØ?»’Ü?à +t>ñ f>æ(*?áJÈ@ ˆ?¹åÑ?~µˆ?›È?¸dk?×\å@KÞ@õÉ?/ÿ?(=q@´¬@,6?Ð?ˆé?¯¸?ãÎC?öéå@ 0%@ œA@!É@÷?µK–?­g?Uÿå?4îE?™:’?¾¬ô?“r?'ÿ?E´B?®8?­Té? %?— >ÖOÊ>ð +d?¿eÐ?Î-„?òF‹@L8?è ?ÝÝÀ?ÎËÀ?¬•C?¹Ìn?ؽ¾?ÁB?P ?G³?Pe?c¤‚?K ä?\©ç?ŽÙg?‰^?˜§H?«#u?––Î?€5e?^bÅ?ç6?@€º?Ö?ŽÀŠ?p\‰?‡ìU@:!@ Ô÷kq=ßJ>–v?£bž?¥(—?‹SI?}¤ý?EŠ]?IjM?¤&?¡ýê?-š’>ü±q>$/W>Hl¨>·)k>¬I=k-?WÅ?'ç‹=°²Õ>åùˆ>ÿ{E?¤?ì8?IÖ1?`ˆ.?F0n?-@¦>±á+>CÅÐ>ÄC(?‚ë‰?9I?>ÔÂT?k’?“ù½>åÜË>]@ë>(Ãd=ç`‘=xT>#¢%?Gr?*Ç?NúH>¼4>|¥j<øŽœ>«¿ª>öþd>”’Ó> bb??†?®­÷@S±>@1I¦?,°Ä>ׯ½@ÄÞ@,[µ?Ââ5?2ƒ?-[¤>ýc>©«”=õ”k>ð@?ü‘?T+É?aí$>ñÁW>å›±>@ >qF²?¥Fž?ÀW?dÊÉ?(v?*>ô¯š?äÐ?Fb¼?ü½>³<|>“›o=ž_>$>êœ?6÷ý?éfÚ?ÆùY=¤ß‡> l„?4I ?' Q>øºá>ù=Ñ?±Ì…?»Cž?1A?"vÌ? >õ¾?`p? kt>8ÓÓ<ŠÖÍ?¯ö;?ó!v?¢£c?|Œ?+.Ç>ü\‚?1§º?]¼Î? +l>ƒ¨’??HDý? æÿ>­ :?b ¨?°¡ö?Ô.…?ö±è?»Aë?|e?{ä?~¤ƒ?ß>6Ë°?%Ê?Š= ?[RÑ?/’Ý>Ç÷Š>³—n?Zc€?Bâ?_¹?&Z6?[®ç? d2>Û¢T?Àm·@:2^@dp?zÆ?nÔ?\ÛÆ?!û¥>ÄèŠ?u£?T¥Ò?‚÷Í?›¤a?‘ù…?~6š?_/Í?N†?@®¥?'ÿÜ?’f?ز„?®Ç2?€÷j?B3Š?9>ƒ³>=ò°Ø>æ‚>pz?cз?²n?\ÅW?@?€@w?§¼?xH?A[?i…”?gÐ?…Ý?~Á?†(€?”ÑÐ?qÃ?\üØ?§Ec?¾ut?EzÝ?nÉ?g³î?®[?¬q°?µÇ|>¾zÉ>·F>šKÅ>¾Îj?…?R>“ƒ¨>qS?]?Q?d±à?“i?œnu?+¯–?¾ Rƒ>g|NÃ>…—>c.>kï>¨(Ò?X—@vº?åæÊ?ª4²?˜Û©?Nqî?„ÙŠ?ÃÜ]?Œõ\?^Í?…7?2ÄS?bñ?‚²‰?œ³>?±Ö?Š˜B?VÐ2?ÎvÕ@´?Åöã?¦ ?©?©|š?,>®)?£³??Ó’=?/nø>Öån?„”ô?ž)@@"Q?•=A?xÁÁ?¿ü_?ÄÀU?GÝò?Rm¼?"Ãt?'»?,¯É?1¥]?6–ÿ?6nZ? xn?3þ ?¿Ú“?½^1?Å%;?ÅÐ{?Àë¥?“¶$?—?<®?ŽT +?hpb?SŸ?¡Mí@%?¤ûv?‚¼?Vqô?ƒµ%?B ?ªv>?…¼q?bÒ±?ÇðB?ô£?—U?s®ˆ?¶Ì?ÅÜ‚?ßÐ?âg‹?U{h?3}?Z –?b7?”ªx?‘¯K?„4?ˆ”?·µ=?½«'?Æ<“?ž³•=kb?Oüä@4@ýú>ìoy?†û‰?øÙ?Ò8ñ?œ-“?ÊØ?ýtó?¦ŸÑ?Aae?‰ü¾?Ÿ?NŠ¹?Ã?†„Î?š^Þ?LÇ?'f?˜¿õ?­œ¾@ í†@²Ž?†6x?{ˆÀ?ˆÝ?ƒ2t?€ìª?€³?½?–ØÒ?º5`?_?Ç?NSb?Æûß?­Ú'?oL?4?„ÜH?Äkî@b?²f?9RÈ?ª ?Ý`?§æ£?“÷7?Øç?p®?ÇU‘?×Ì ?š¡.?ŒO´?ÂZÅ?Ç”ñ?,b}?LŸd?ú<û?â>ú?8>û>Â>ËB`?‹’@G¶@5Ü?…(u?uM/?MŸò?žŒw?çŒ?Çþõ?¬zc?u¿]?.íà?K!?Nì½?´óÀ?Õ×x>Ç,r?¦6²?Çá0?ÂÎ*?ÆH @A‡I@<Ö ?—ù?Úö>«õ*?Td?”pÀ?„$“?“g?c^r?¯ô2?²¹ˆ?µt€?Ë™B?êäÏ?f¼?r-n?ÐŒó@þ@†h?úBv?Ø>#?èç9?ò¬í?cœ>5§ ?âo@wÎ@,k@Ml?…B}?|ß?éù?Û¼ë?»\?ø?½%?_yÝ?ÇÑA?õ¾‡@!z´@Ì?ÇÈ@Ã8@%… ?Ïo6?gf*?NžØ?4xë?¥Ý ?Ð@?¼½=ïÜ@#]@N;˜?Üî~?ÁA•@«@³@fÃ@\9€?Ö1s?ðóî@B×x@Czž@FÌJ@'?£­u?¿ã @ãè?÷Ƀ?ÔÈy?ÙÐ?æ÷?è ê?æ…1@Ø@@øå@] z@rÄ@¦P?Ùqâ?³9˜? ØÏ?œ„ª?˜4á@ï@ A¬?Ú± ?É8Ž?ˆ_í?„ƒ`?››?¥ü¦?Ц¢?æ¬@Fži@DÑ@;úK@0-d?ÝO²?ýEN@#½œ@#¢?£ŸÐ?½o¾?ä½×?¶üØ?lºõ?¿Z@Šw?Ï*–?mf=?„€¨?‘F;@}°@Jlþ@Ò)?ÅÝc@m#@“Ñ´@]‡J@E·ˆ@§$@´@^e^@EŽ¯@u!@t×3@üJ@e½?«·›?¢ƒ‘@7^@3‘×@tc@ ’¥@H™o@H-I@8{Š@>³Å@^¾{@PVù?ö8/?åªP?ÄÀé@FD@]}@8$¾?Ä’¼@13Û@¢˜C@‡àã@?mµÛ?êO @¹J?ïlù?èˆ:@(Rw@1^_?ò¶ ?åsØ?ÕZ?Ìœ¿Ñ~>³Àª?‹«à?ºãæ?ÀÀõ?‹Î?N³È>7ý?ôÊ9@tÍÙ@̱?<×>çÏ´>9“p? »(?©›Ô?§/?¤•©?¡¨q?¦Â?Ï‹7@wV3@qè@Ð@ +·;?_ã@?E @¶É@Û?÷«?î3 ?c? +…?à +@Y6@cu@Ä¿?ì÷?¡,ð?vû?A?‡y?ñ°C?Ïà?u6Ù?‰‰³?Ò¶?Ðß‚@:@>ùœ†>Æ$K?gtÌ?Kó$>²z>DUà@^Ø@Tg?Ð?«?²?‡.?¶š^?Ô›†@ñ°@ jo@ Ç;@>/?¶„?¯Ú*?r˜j?r€ò?+R¡?%n³?ÐìF?ë‡Å?,VÚ>ˆ`ï>Æó>ñ¡?>¶d?rÕ~?GL?;ë?r?¾ä­?ÕÛ¶@ ró@Rh@ +!U@ˆ-?£œY?—ú ?pt+?\+ñ?²äÜ?Å¡?ƒîµ?/o?µ†f@÷Ž@û7@k6@œÃ?ëðé?ÞÉ2?“ +?$ó­?Jæ?^3?ôÅ @ ê?îy³?Ñ"œ?D>Ljï?rè¦@H?ñnr?¤©ó?´¡@*gl@-HG?õí?ì’Ö?·¤@?¢í©?£~?£ñ ?¼”Ç?ص?Ñ‚¿?ÉïÑ?Ì{É?×P?æ21?‹õ/?ˆK?'†S??®«?ä¢@*X@?š?üÒÓ?¯¹[?´®Ó?ÅÁÇ?»J?‡W?Šr?“Áy?§Kø?kÊ´?$ë?Þé?ׇÛ?Á·`?{ ?‚4E@ Ìæ@@,¡\@,2á@0¹@3Êü?ßez?r¤W?–pº?Á“?˜g >çå=?v©?ÿ(X?ñ”V?ÁU°?·Ì9?ùÆ©@ë°@+ìž@B‹@æc?¶ù·?©S >„ž]> i ?öÏ#@»?aœ2>æ´\? *ú?ÿ1‰@G@ö¶?ï]=>øD>æ™ÿ?ÓŸ?Ï à?¡Õ?ŽŸ8?Mç?Øk?€Ë¼?Èx†?¾H?›ß¯?”jÆ?As?* ö?p º?oÞ?"yí>úb0?ƒW›?Ù‹r?ØÂ?éí?ïd’?fW%?f`@/@1m@;Ž?ÓM?È1Y?°§™?À<ž?ëó?äýg?¨`…?¸²s?‹Üœ?È?E,z?#í^?”#š?Çþ{?ç¶8?þ,ô?àÂ?®¿?¢Í{?} ?&±K?¡#Ì?“Ý_?Ê·‚?ì©@LÖ@.ù4@ +º?º4?Ÿ¤¸?jVu?n¯n??“1?ù3?ë¶?/l>ìá>xï§>'r‘?—?ÕóÃ?wÂ>ö >ƒ<â=Àù¸>[?=ûÒ¿>›zÅ?*û¶?(Ä!?9ô?åh>¯Y÷>8?hâ¡?q-Ð?b¬×?N|¥?3ÞR?H‹=?Öâ?5=I?^çô?M<ã?b>÷¥?bƒÌ?w?fô×?P}¡>u"[>+1»>üf½>ðçd?©?1§>ˆýt=éþ…>økŸ>ÿ•+?l¸Ã?`¬’?ß•>þ@–?[³?$â²?\”F?@ž >wzn>ƒš? em>¢Û–=øð?!>,?xS&>ÞtG>¨5È>ÀB>äð?-]>¿è=<¿,>½{Å?1ù]>\”Ü=¸h=ÊÒ6>Ç}ƒ>Šm?®°:@$h:@¢RH@†Ò–;…Ç??™^ï?9Â@#?@%Q‚?ödð?Ô¾W?O³ž>^aC>Œ3§>§>•¡P>¸ !>²'+=àG¦=—¸>ñwG>ñÛu=åÎ>³:4? G ?Š}Ó?ž×?l¤[?6w¦?K,Ñ?WÑÁ>çÿv>Ÿ¯>Ïo:>¦“<½ÀÐ<]óë=ê÷0>zà2>Î=a>È +Æ?c?'ñÙ?Šã¢?„M?v=ê?‚sØ>ë@þ>®Q?¬O§?Ìå¨?·' ?³ŒË?;w?Ä?^¾û?†˜—>Ó¿$>.³f?”­}?È-?£mº?žË?b’þ?@$?\w¤?h_è?wÒ> g¬?+/?}âW? ìa?¾š?}¨?n6>‹{Õ=¦žT=z~˜? +Î?‘S¬?€ˆ?ORK?/?”M>ôW>Ûè¸?$Äñ?×?¯I½?á²Ö?€Ï =’ Ø>ó¬à?zkR?§2=>º¸?r&9?îÌÐ?˜”¿?€ù?Š©?“X>â¹>ØC7?8ƒÂ?‚Y$?F”¾?ÊÅ?µê?3k;?D­?ëì?R:ú?ˆØ?}8?yôÒ?£1?¶I%@àà@@~?ª×X>¸:¦>]>(Óþ?SD?œ&´?‹§?^¼?[íõ?Mè+?Ò—P@w ?d}è>¶7Q>õª=™+Î?;•?{B°?ÎP?€-?°>v?»U&?”Ÿ?ŽE?“pº?‹Õ‚?<:†?$ß?ƒ?¥„c?Þü?èª?†,u?‘_¼?5 ?(²¿?Âo×?¸üZ>ˆ;>}Q?ò‚á?ì’É<¤äQ=‡ýï=~|>g~?Œsí?‡Êu?@€I?N¨?ZÒG?L2`? N?"+s?J‘Ê?,jÌ?eÅ>ôËë>ºtð?F k?ཚ?¦3Ò>Ñ]‡?©K @4Yw@•‘?¼'Á?V³<®œÀ>ûÅd?u™9?¶c”?ëlã?œô¬?K(?<Ùg?1.?îÐ@#…u?ƒß>…s§?"Õ?O¾n>ch‡>Éšl?ú°>‘g>?+?غG?ÿ ž?ÃÈ´?À£7?ÿt?ÿè¤?ŒñR?Œ{?昵?×àî?;0?@Ü?DÑ?Jö?O¡? ½’?@?…[a@e?ö W?Å'’?Ê@7?á(?«¦">Ç”¬?N¾²?ºQ6?µº×?²Ú?ú´Þ@#/¢?à"²?ì†>õå¯>mŒ>úzk?90?-v‘?( %@3þ@cçx?º¶?P_o?³ÌÉ?ÅÜ:?ãÞ0?ë"ß?jfk?WêG?˜º?ÌS?µ!G?´6—?„Ä?}=j?":&??3?À– ?™t?ƒ@ {?Ïèc>Úoî?_í?e€K?bú?WË\?œÔ^?Ðñ?Ù$‘?ÒW.?ÛËF?é}q?küw>ÖI6?‹=ä?°›Á?`J‹?BÛÜ?\oÿ?RWæ?DŽ}?6Ê >„/U>,¢'@#›à@=b? ‘·?*ª?À#?\D ?üí`?À1ç> ?T>Ÿ÷ ?0<Ž?B]?U"ã?…Æ?¨z™?–Ó?‰,²?¸AÍ?Ô–Ã@v@öÓ?kñ¢>Œ)á? y?[@Ë@Ÿ?ÿâL?þH?Ón&?ǵ;<íxD>L5T@"ŽÑ@V¯?¯}ä?ž>ù?Gû#?¡•œ@0ñ½@"Þ@@.b?ù°_?òÿì?êáÜ?ê;_?˜ö?–l>‡¿ˆ?M ^?¢4Â?¾Õ‡?Ðöâ?°¢>$Q?¬*?Çã‹?ü»?=Ì@DÐ9@?íD?E¥?è?¨Þ'?“„?"ÏÑ?F×L?Žj§?Ž3Ô?œÜš?¸vº?ãì?óÃ@W´?ä’?³Lì?È;Ó?ç;ÿ?õ6?îÜ @!Œ@bÕ?·­?‘¢¹?¿TO?ÇéW?<9?î›@#9@®?ĉO?¼ûž?”­µ?ƒWW>áŽ>äÜ?H¼:?¬f@(§@:"@ –Ç?ä\Ö?¢©O?æ[@™Õ?§B˜>ãqž?p9‚?8ê?‹Ö?{š*?9žd?#í*?L“?]Õì?v+q?|žÑ@¨ +@ kI@Z@iÉ?‰zš?}Ì>Ó64?¤â?‘/ß?ÏCz@-=_@`@æ{?éÒ2?¸÷ ?°¼X?£.»?µ¨.?ʪ@€•@?1Ÿ@5¯@/ý@fœ@´ë@Â3@.Ø@X@ØZ?Ó×á?Æç+@$,ø@(?Ë£K?Æ ƒ@M#?óÚ?ÎDÎ?©I?ŸF¥?¼Ó‚?€'?ú³@— @ì@Óë?¯÷>?¤g}@cX@!·¦?¦ÒÇ?–Wä?¯¨¯?¤©Ë?̇h?Î ?ûy£?ñ?‹WB?“à?Ð?·w}?ÇÍd@CÚ@=¯n@0æ”@)ÀU?áæj?æ®@oS@¢Þ?÷f?ø²c?³‡V?°ÙL?áxè?ç¹'>ö8V?‡úl?Çw?ñ“¡@\ê@TY@4˜¶@ :w?Ã×o?ÀÙD?¬ì?ÞêÁ@|R@D?穉?ït0@ž¼?éÆp?CR±?p.ù@*³@0¬?¯OÐ?ªR­?¸”š?¹FÄ?â4è?ét~?Â?¸ùc?“qO?ýÄ@#Ì´@Uà®@!?üª†?ÀÃ?†–Õ?)«î>¯¬?1Ú«?ã¤i?Õkö? ?©À±?÷¥Ä?ý‘p@È?øN?¤½?¦ý@N”…@eö¯@Nö@ü@†Ó@w?š©4>ó®>£j¯>dÇž?MHR?Å:u?´I?•;?)ã?’¿%?™x?µZã?¯¦Ù?‘؃?È?pñ®?\}’?š‰W?ª9£?aRŸ?Is?„[M?´lž?—tÆ?gU ?J9÷?"À?’:I@4ñ@*Pš?§ »?´Í/@H:@y?Üò?ÌÁÂ@ÃH@ ¤b?÷C‡?Á,?[ôB=û°*>€?¬ˆ? ?{—þ?Š?Óí +?Ë=i?[Äö?KIT?ÒæZ?î ?£?°ö"?”ÌU?m›Ä?•:W?ľ ?¬Àm?S‹·?l¥»?ß)’?äûi?듺?ì–?è›P?äÈa@!â@ó?ùýS?ëê¶?Øù?°Ä?¦¸=?b|?X u?Å}V?ÂS?Ëâ?¼-[?¤]l?¤àl?¬ß?°Ò'?Ÿä±?wx?‰²p?¼:˜?¼ô?×¹?!¢? >m>ï­â?A™V?ihA?¯³Ì?â0@˜é@;öò@1#ë?²¼ç?¯„Ë?zTO?ˆžš?•²?¢Ñ?Ç°|?ÕõØ?¨f!?xó?…é ?]“Ê?iTë@#pÞ@*%_?ö?çƒ ?ß¾‰?âY@ot@Õ?ömµ?{æ’?x?!¬¨?«Ê?Ó,_?äµ?uuW?! „?oŽe?8‚?.e?fƒ?z³Ó?®B‚?©þ¿?±pý?µaW? ÏÍ>¾ÑR>ãâ(>æ=—?{hL?æ5?Ý6„?¿4ÿ?ÆèI?Ú.?Ýòc@@Œh?W0²=@È?+5?º[§?ÃGú?Ðça?ÊQ>é_ä?Y.?|”?ƒã ?ì·?x H?Ç÷5@ÁK?èJŒ?°÷?„›-?föè?g "?üe®?ðl?ktÞ?9€v?Aà?JQÆ?ãÉà@Ax@'"6?®:?¦B?U\f?LåD?½*ù?Å#š?W,‰?3â?†P?²¡è?Ú^½?ójó?Ã"T?j\È?”{?¨çì?Ÿ«ñ?x, ?Žk?=¿:?/˜_?N¶´?DXz?Ib?XÜ[?]ß?ièå?Ç^l@)?³·*?)ýo?%´Ý?9vÒ? ¬>7ã >¯þ?´çÑ?¬? +Ž–>öb¸?Éâ?X¶>õ}í>ô8= 'ö?HŒX?€*[>óF>ÖÈ—?cBw?x?§?.®-?i¼?1ŒH?CQH=Ôýä?du§?~Px?ºmŽ?¶ã?Ìy?Ó >3BŽ>D™¢=”Î>½ %?g0–@z³?²ú?Œ>í¡l>ÂÍì>yjh>w­>s;Ç>7Á]:¾®è=¤¤ç?AÈ>¶ U?`>?gÔ3>èFÛ>ƒµÙ;ò“Ž>2÷;>2Ã?íON@X º@eîS@\ˆ½>¨Å?p¬?fs´>ñTÄ>ñ·*>צd>É6>»€>­ñ+>ãó™?|©?'Ê>ù†€?1Z¸?dÀœ?*È>ýã=ÏÅ9=™›>;PÌ>öß·>ôƒz>è1ª?‘è?¤ÑÒ?žCÓ?—±ö?ŽÒm?\ª@?j9È>Gu>ˆ‰†??­E?N²à?;>úz??hÓ?XÏL?v,Î?{D“?Üú?Ê#?Šç ?›ñË?™„?¡?–?{^Ð?^|×?wß>ô(Ï?U*!?‰K?’×?’Æ0?†3Ð?}ä ?œÿ?·T?«,?2æ?œå?¯+¶?Y¢_>Ъp>žî:>Žœ>§›ø>À˜>Ù†%>òj ?AC?ÊÞ?1/œ>ªtØ?F©M?žv_?qìŽ?$è?qÆ? XÅ?~¨?·ª?K/>Û–?VÝü?¢¡Ø?…M¯?W +¢>Ê_?/ç?žr?2ÕM>›ÈÓ>w»f>œ? S?S1¾?’¢Ž?¹¡ø?1Ùe=‚Ì&<½Ú‚=µ.‚?Ø ?só3>ËÝ?1à?‚¯¾?I+P?6ôÃ?<²?Bmt??kœ?6t:?Ÿˆß?Ä^¶?ÄÐL?ÂI(?/Ós>ܤE>çá>óÏ?¦3[?Àé?Áà‡?Â’u?=8©?"i?ˆÍ?”B?„[?Öj?m£ +?v­%?IB?>€û?mùí?el8?V®ß?]•ê@‘Í@D:?·»V?³‘Õ?ö?§?Áb·?¨q>P™?¹.?´^?¤yþ?™“ã?‚J?qÌÇ?6aÃ?Jg€?‰±?c +K?hY?bÁ?Uÿ5?[9?`x#?Èì=Ðù[>ßùþ?uUõ?S²=‚ög<&½?{”?‚¬~?`ü-?O³œ?b4œ?aÖ?%¨!?ÉŸ?øh?×)R?;in>€ûå?æŽ?9R?Ó?³?º?%Tn?\°Æ?mµP?¡§É?¯ +œ? ^'?ô?¤û?‰‚?¾Ú{?»lŸ?˜È?¡îv?ØnS?Æaà?]ýN?f?%?’¶?}Å?[?Q$)?èZ?à y?Å(?£JÑ?'ž5>ع>Ñ»?ÕB?ŽÒÊ? {=M²A?Dk?Â=%?Äð+?Â`?b‡[>æW{?„ʱ?«~?¦¹å?¡øÅ?ó´‡@*ì?ÉBž?ªej?¢°¤?¤ö@&Ð<@+Žž?W—Z?4œ+?™Fþ?“ŒŒ?Ú2L?ÇÉG?„É?Ž«»?Îô?³HM?¤|?g…@x;@Ïé@"á?Ô5ü=³–ä>ŠÝp?Oï>±Ë>$q¿>ãâ¼?6Ë?3ÿ?¹¤•?šo ?‡:u?­?ÕÌñ?ªW\?›¢?>‹Û?ê?ј?î—½?é-K?ï$ó@X@äé?„© ?€ÝÈ?²?µô?¹b>õ">Ãé$>߇×>ÆQž>ÖÖ ?Ï ?8¢?„Öò?Ö:c@˜Þ?´É?å??¹öÆ@ =T@µî@•¤?®c}?„ù?´J?º}&? P?…¿?6Ñë?NV@|H7@‚Õ?/j?‚>Ñ?Ö8?ßò&?þ‚P?Øi÷?%¹?c4Á?Ã!?çG@º1@•?Ýòš?Ö¬¿?ÇÊ?|?(¦?:'? åb?g,?9¤?i(ð?l[¢?“BÙ?™ï¢?ºC?Áú=Õuí;®?ÊÛ?ЫD?¼× ?Éè@¨®@öé@ âX@ öX@Ù‚?ïHI?…JÝ?ŸÈ½?Çòi?¶øA?¥CY?ïXJ@€j?Ø€?_A@¸ð@Hù”@ZD§@`±j?ûq?Çî¾?µÆ?·â?ùbó@= ?ƒ? +a?«?ß=é‘œ>“|…?[Üè?aál?…:Í?C·?ÖªO?Õ©G?ÇÏ?—Çõ??L;?d?Ù?…`§?†É·?…)ì?ô¯æ@âØ?ñÊ:?áæ-?¨»o?”ñ4>èNb>Š´?aG?l’@©«Â@¯R_?É&Ë?Èö2?ÃrÔ?Úg@.Wb@Lh?ãÒø?ä?ò?új…@Të@2ê@‘?ÿP‘?į¤?„ÖC?–J„?¤ü‹?̳×?í¯Ã?Ï«é?ÂÕ?ÉC?ϱo@êD@!«w@12v@7?æ>­?Í>\@p„@‚ý@ 7@ýi@F»@A ¼?ÿÏ°@¶ +@g>@èÔ@#+9@ic@‹Ø@Z«@ +!@I$@%Pç@ A?ÆQâ@u~@1VW@5–ˆ@9Ù@¡Ú?Ø~5?ê‘•?ùñX?½Ñ°?—’@¯T@8ˆ@­ö@ä×@Q:@f°¦@I ¤@AÇ6@1Ë@0¯ñ?—.€?ƒ¨H@uØØ@|Æ?@ÜÚ@˜?ÜÄ6?ߦÿ@3ú^@;Ó@ka%@f™~@8@'S?Åó”?Ó0Í?ç[¥?äó?ìtõ@õÿ@’Ô@eF?ô±î?Ð-®?„Ð8?íÞ_@?ÆÞ@†`?ÄPÕ?ɯM?Ñjù9q@éþ@!Hq?ÚƒN?Ö.¯@‚ @‰S?Ë`=?¿P³?æ-‚?ê?ÙB?Ø|q@ÈV@@@Bþ@P0?ý–"?Úý7@@ P4?æÁ?½”`?¼Sm?¾Yþ?‹ÞX?p…ß?ªš +?ÀØ?å‹ ?õ–@ [f@å-?Äå¢?|úò?¬Á¢?Ëq¶?§-ƒ?“K?Öò¡@ ™@“:@!§®?æ*œ?aÀÅ?‰ìÆ?´Óx?Õä•@êº@ˆ@…@GY@.9´@@ÌX?ás?“?lû?‡Á?ÃWÁ?ÏÛ@É@:?m^É?dJ@½‚@ ¡Ž>§8f?Ñ6þ@ ³? &2? £t?ì|ë@ä@'?Ú—À?xØÌ?ÚÄy@”õ?úø\?º^­?Ù£Ã@®û?Î 0?I¿?†y™@ñ@…a?ÃZó?Æ,??öñ~?êŒ?èÃ?È4?¹æü?¹I“?ò{s?î¦t?ÀìÁ?¸üå?Ú½È?ìb±?¡xX?ƒPC@å@@1ào@®?¬±)?hëÔ>²“®?8èÙ?¸Ç?ÕB@ŽP@ §ã@ÁÅ@͇@wI@ p§?@"?Š–Ï?R7¼?<ßú@-m@L¼F@Jh?ó2à?7ô =  ÿU?tu?¯ã¬?š{?jT?ú?¯˜‰?®yK?ˆw +?‚\?3Íy?.Ó ?|ø?‹®>?»¹w?ú¼Ç?÷7’?ÔùÚ?Þ.#?ì[í?é9‘?kÓ?h™¥?êyV?ý¦Ü?žµ®?eˆ»?G?›?ÚÉ?"µ?”0x?—ß?šÔ®?ž(¾?¿€?Í-Ê?/?c€Ä?ÌÿÓ@‰Æ@ >Æ?ÿ~G?é…D?›,_?—¡Ã?Œåá?úÓ?¡9?Ÿzû?˜Xn?‘0o?Š·?‚Ô)?Ķ?ç<?ä3H?­}?¬Æ0?Œ×¢?tå·? *¬>æ@Ø?Q +6?²S? £˜?Ò´?/5§?¬¥ ?¬¤ ?~Ï_?h?’àâ?—Ë#?ecÁ?-­T?‹ÂD@ÀÅ?û4~?[YG?< +?‘tW?8ä?©¼?¬ïE?‘ߊ?iS?q#?fÔ6?J:>vŽ>›ô@î@ba?•Ñý?K>óg>±·?…pI?çá‡?èž?åò¨?Ó?hpÔ?h“Ñ?B¡R?SWD?€S?‡¼?=ˆä?ÜÉ?®³3@ +È?Þl2?kRz?SËo?†ò?I•–?ßfJ?Í<ç>Ḛ>üç?Žx¥?ŸX?R´?W¢>PqÔ;¨6€?ž¨\@ü$@Œ?É‚?¨¶Ÿ?o¿c?‚Ž?‘Ù ?ˆši?´ñ ?¹°x?ì3b?ðËt@#ݬ@>P> /j>7óª>‚a>]Aè?&Be?šð>TÏv=Ês?YB§?xO3?sA>ùov>«NT>É6ý>ù(m>û×?Å–>ïEÊ?NôW?pãö?p9?S!?>_>í +Ø= ª>`V#>/¿á=ýVb?1æ?¾7 ?Š³õ?)à?—Â? +‰>~´>ˆ¼Ý>ºLº9¯§=³Ý,?´?‰«>çMÇ?€ ¹?¶­[?ô!>„;ºM=¯ìf>yl„=¡°Ø?rÆ}?ìèö@îu?¸pâ=/áí?¢ ?T*=\€‚@{Y@"–è?mÒ?(ZT?Ø“?(.?=·? uñ/˜>îûÛ=bT =§ë>?µNú?¾·>™ð>5eì>n>Â=®Þÿ>ÈVd?;Á×?$ö? g?á>öÌ™>÷t>÷WÏ?'–?&­¬?'§#>Ñ&°>úÏ©>øßú>õ#?(¤?( ¶?x>úqV>c,P>¦§?Cçò?sÎ#?íü>û¡>‡5Y>…X¿>‚#>Ó>á'>ü«f? %?—>¬ò>”???Qí/?–jO?ŠXö?}äƒ?riú?oº?ŦP?þN¶?h<Ú>,ï?½?g®o?Q0^?7Ÿ¶>¢¤ë>˜?3è?_‡?›Nà?‹äû?ÿ–?¯Ç²?áã=?Ç?®(4?±#?·rr?8· =‘ßâ>—©®>Ü™:?š?¡?ñøç?´ +s?€š½?L>‘??i¡?£l4?Ur×>˱ù>á×n?ã›?±Â@ôm?µB,?À?Ç@Å?ûõl?×1?¶k +?´¹?oI,?sE>ÅB>ÑÒk>üŸ‡?<œ¼Ìf=š÷‚> Û+=Äá\?Sg?ƒ7?¸³?–©?àÚ?Ý­a?·<?°“a>×(>½x?ˆal?ˆ™ž?Á:Z?¾µ +?§ L?©{ˆ?PR?ôË>†Ë4>„fa?m6W?g¿ >ëÑW>öŽ?ä?²?q@?[Ñ(?*SK?4÷î??–³?W +{?‚LÝ?c´P?VC?@-Ú?§H·?ŸqL?—žM?j n?t;?ö"?'H€?"à?óU?ãu?´?}/?Ãå ?ãĪ?û Q@ ¶ß@î?ãÀZ?ª¿÷?e6z?&JÂ?‚I?–yÆ?¢©§?¨P?<å™?Þ¤?ˆ¶w?žN¢?” ½?—©Å?MÑ ?@~ø>çœ>Ô’=é_^=lbé?lÏ/?€°$@?ʳ@O›M?•@?5uø?Óü ?Ë2ë?ƒG¹?‡Jx?œL?ŠW?[U?|b\@ï¹@\¡?Å)–?»ŠV?².?’»Ò?$7_?bìÈ?¢Î¡?,%?Så? µ÷?¢ˆ?þ?»? X?·I?¾b;?úµÒ?°>Ý?•e?ˆ‡É?ƒÖ‹@š)@T?ú?ê6@@'ì@MC?mœ›?X’¯@£@ 6²@2†—@+¬ú?n‰‘?ŠÒ?çȆ?è†Û?É©÷?ØÁÚ@2e?Îéý?6.T?QŒ»?\á?²ÛC@9?ž>>·¹!?8À?Vù:?—ö?°6~?yö`?DŠ_?ÛÖ0@ ++z?ÇPC?¯ôm?×´ ?ä©À?ºøó?­w¹?ëä?ž[?¢I? R?ˆü?„ûX?ïW?¨qn@4Â%@³1?£q?¯ºö?Ø.ð?°l ?_—?ˆ¹M?­²#?ªBz?´§±?³…Í?¡×É?µ¸ñ?ÇbH?›ËÎ?„ó?°âJ?»»f@åË@+ÿB?kß?w‰ó?ê?ûÒ›@$@$>?Å>?±PV>$Yx>f™ž>µ?:? NR?j¢t?†Ç?³q8?Á‘?à~_?˯?ªÁ?ÙÔê@ÔU?〡?ÇÐÃ?ÇÒò?ÇÔ]?ŠN–?S¨ @'a€@Ub~@á?ÿÆ‘?±Ì ?žŒ4>Y1Ý=µ¬ ?…á¤?ˆ6T?ŠjÔ?†FN?QªŠ?ˆö©?ãÚu?Ú7?¼c ?Np?2Òì?™f§?ïró?ß‹?Ë?Ù³A?æ©O?ûüe@L”@M@L€@ *@A?Û¾Ó?Çñ ?%³-?IE?”a¸?“»]@D@@_@~j?ê>¯?od?š¬ö@µ>@oª@)”?÷ÿ?³æ¦?ºËY?ÇÏÀ?‰jà?3¢?0?/Š?Ç©Œ@ ËM@$N”@7Ž?øZ?ÂïÅ?ÅŽ?Ç«?¯´?¯Á?‰Ò?…•@!€u@$Õ@'a @!€u@1˜?ý|’?ßQÏ?àøú?Óµ¦?³ì>?GB^?½ÄD@0”Û@I´?ùµ6?×!|?©Ãì?ÜÓÞ@7W?àªù?Ç-ª?’ù +?d¬'?º*ª?̦?[?½?#kV?Ñ€_?è-®?ôü¹?û³/?‘Xœ?‡ú@#~¡@#W9@í@‹9?Ïié?㨰@%‰ @­Á?Ƀs?Æ4ƒ?­ÿô?ù|;@Ft²@é?–¥O?¢ò?¦ ±?Ñ&}?ýC?ø·,?ôf&?æÂ-?â‹?ÒŽ÷?Æ ú@–•@0Æ?’o÷?'²?Ü:ö@²f@8»ñ@GEþ@_|J@bïÆ@æÒ@ Š?îÕy?çƒ4@T_¢@XP"?Û·Á?áU@Õ¾@Ÿr@$Vo@ò€@·ò@Ö‘@ ó9?ôÎ?[^? ½@$ ô@ Ià?áW?¼´ã@ ?¯Û(=ä o?‡üÓ@$}>@WÚ^@!@;(:?‹ib?§è‘?Ä7#?~g?G5Á?¤Œ6?Ùn?ìHP?íªû@f_:@–Ú¾@!j?ž"…?Õ!"?ìþR?²·p?˜­â?QU?&Iœ@ðU@Og…@Fåƒ@C;T?êb3?¾!@Ÿv@")k@U•‡@_jÖ?òiæ?Ë$0?_îw?c¬£@!Ô¾@3'G@«†@7$@äH@ Œ?ül$?þ7*?ãùl?ì3é@# +â@(4?÷ ??í[L?‹âž?áœ@ZH@¥@?Å@A¡ï@;Wû@=T‘?Í5S?ÃS˜?‚'?€ÞÁ@11@8!Ö@;Œ@:B@!¯l@çâ@ž„@"0Á?éÌ?æ.¬?Ý•r?ßÒ%@-Á@@+0«@@0E?°Ì?§Š?Hü?¡ªW?Ø.s?Õ¢=?íkê?ó7I>/,Œ<ñàE@Êú@¾Ä@5þ7@4¡6?àD0?Öó?•î™?Å›?ÉÞ\?Óç@0Š@Ð@Z´@Qa@qò@!b?ž´Ÿ?bêa?­»?¾›B@ d¿@ÀÊ?á™Ð?¾Yî?Gé>ý¥?¼2¢?ùH?€øÅ?¨?¿Õ@#´?ôÍ?å™›?Õo½?Íá¥?º>ü¤°?Ç’@#ç*@+ë@;.?ùÄB?¦ÿ]?êzÅ@%?°@#œÒ@}æ?ÿ?Ÿî[?®0`?ÆP?›]> õÍ>3\¬?j?/yk?³9?ºS‚@ +Y @|n@ #Ú@^T?Ǫ¶?Ñ?Û«æ?ÑÏ?@ËR@ i¤?5CT>Ùî"? éô?»0X?qëØ?0<Ï?…oÿ?¡QÉ?`>?e}?ZÜÅ?‚«Í?;*r? +”æ?I­è?‚â‹?‰a?“(ë?„¬?6˜Ó?vø?ä|©?ëöB?÷¿-?ö¡ÿ?øÅ?ÿÕ?É/{?Á­V?Íݳ?˨ì@"ßY@/í+?Ã?¨Iê?j¿?)Ýß?X“£?vJ*?Gs½?>j?o'š?†´?wÃ)?T©?”'p?ß“®?ñô=@ ä@#ˆ@)6 @ O?’mL?Á`?ÊN/?Ç¥£@ N @ +±à@½K@Å ?Ê??·e??a¸?±ðp?é¶Ò?ÍÎÛ?µðÿ?Ï m?ód©?Þ ;?‚Ö?z ?r¦M?xž?Â&_?¹ÿy?ÎÃ?Ý¡]?‡€Ð?O/›@J@Bœä@Þ•?µ¦t?¯0s?¤Í ?“‡ƒ?ƒ^µ?¶9?¤9‹?¡d?ž?›Zº?Ž? ?– ?¬›?¨Ò?½P¥?ÊŒØ?SÛX>›~x?Óm@F|P@3ï„@H!@w?v„1?ƒl§?²üj?²è¥@ lÄ@Ë@º*@žíí)?˜‚w?í5¤?ä¾?Ää?µÙ–?™Ïô?¢xx?·Ð±?´¿Š?qèö?q†’?„ö5?œ?b.î?2h9?¶³—@ ;?ñËÖ?¶«‰?ŸÝ#?C°g?cŠè@NÚ@Þ¨?¥6]?‹m?t½Ì?jÂJ?j§$?lë¹?oÀ?jV‹?FQ–>¤uè>â”1?¯q¶?¯`^>²â@>ltÏ?f?˜ª?â;?_5 ?I¶?i ¿?’Çc@Þ@Fæ@(d@!ÐÐ?×°±?È$3?ØîL?Ô!f?Á·v?³ª”?¬æï?¦?ŸOV?˜Á?‘¨k?oÑ?òU?8·>ûŸa?Ñ«ó@*ùa@¿ô?òü8?÷ÀQ?û?ô ö?µ‹é?¬&ô?ýÂr@¦6?ìw?Øy ?Ü?ß‹š?ì·Á@q@_´?¬îG?¬ÇB?MPå?9œ?>{J?4Oa?EÞH?f9Â?M]æ>ÔfÕ>¿Üv?Á­?¹pk?©éÙ?«äÏ?L•?¼¢?™ç?áq=?¿ª4?–ÿ¶?©g?Ëñ\?Ïæ‘?W­…?IC­?§ç×?ºFÇ?Ð1À?åq?Þ £?Ö{?º$?%)?³ø?¼¿™?Ê €?Èrï?ÂN??/ÈV>EÕ£?c`5?ßÿ¦?çB’?è(þ?å‘£?ÐØ?Ès?…í™?y…q?ŽO©?Ÿ?oÿT?J\?Ÿ$l?Ä$·?Ìõ¨?èY?©£‰=×i>«M?þ](@œ}?;“?;?_@Ç?l¡?£ ¹Àƒ?K$¹?„Þ? œ?ŒÖ?4I¬d?SD?ƒóÅ?&d£?›?6bù?.ŽU?Ãx¤?×’™?…’l?wJ™?±äÜ?µ­G>~ÇG=ûp=?0?•n>‘X>š( ?Ç;K?ãÜ>)¬¶ú`+>ÿâL?L(?³à?—ÞS?kÿ ?Ⱥ>ñb +>ÎM>ð(Ã?aU?™?9®>”>2¡2>öNR>û1r>Ç ó>Æ=º =gì;ʆF>njK? sH? ?$Þ?Lå’?"àì=Êø>±äš>î-?¤?ûˆo@ +?¬ eŽÍT@N‰W@GïÝ?œö{?~ùD>vŸ¾>ন?EÝk?[ÜØ?or·?«? ?—ü>ó,V>ü]«?U*‡?G¨ž>èÌ@? q>¾:¤>‘– ?J ?p¯>ë>6ô„?C†.?¨?Ú¨?c{?<ŽC>ìgÎ?fªÓ?ëY?¼n—>÷Ñb?Þ÷?2&²?ãs>B+Ò>b7¡>z³p>`OÉ?FoÀ?O¿?$ÅB?ù ?[~ž?j1¼>*n?KFx?r@? ;5>Ï)>ÂQd>µxà?l—?G?QC?;ܤ>y? 4d?N÷?S± +?bðn??ÿ@?°®?³2Á?ýƒ ?°ôV?i7?2σ?Ò@?&E?#tŒ?)A2?¶?'=?<šn?„Jé?¤‚?„íý?U‹ò?”i?­O?]§ñ?4B>ŒÕÃ=>Pl>XZ>ô†ì>pêV=‘Ì>öÐÇ?[/?E4>¨Äd?;6ó?€±D?‚âª?~8?9åØ?Ë?*eÒ?(Y?• t?Êý¨?š&ù?rB.?,)Ü?â>Ká6=³Mþ??¸Hq?»É=ôsˆ? 5Â?.Ž™?g\d?\Ì?Éãˆ?âdÉ?R|s?wÐ?dlÙ?‚Ä?9ïg? @±?B«²?<š?©ûß?¾O<>‹»<»Ÿ@?jò?ˆÂ>Éɽ>ȾÞ?9L?J õ?3¦‰?%ý?˜i[?žï[?Ÿå—?©‡†?¹›M?²?[lÕ?X#_?£óÌ?›z?^¶‘?5?«=Fï<Ë!:¤€<˜¸ˆ=’Å6>ŒRÄ?p©V?£å@e¾@oy?®÷p?š&6?Q)º?SÆ|?x+ƒ?Ñ ƒ@-Ùì?ø)…?1ò?.òf?:Î-?E5J?O–g?:$¢?ûõ?‚Ëd?ÀÛ7?}¼?(Ö>ÃŽå>“ƒk?ˆ'ü?ÄX?cW?ÂQ?u?™yž?G{?&}ì?wŽC?‚¯ ?…Ë@?-ö?Ð×?…7T>ÔÂO>Œ–M<Úd>̇»>ç¾-?¿š?#Ð?^»?/oì@d¸@ +“A?rwM?fÁ?>ÝÍ?R°?ƒHþ?cŽg>Åöù?¯L?‰¿ð?–["?Ïè?¾t&?pÅÞ>þÅ?µªÀ?þ‡ ?ª/?wñ€?Ä>ÈŸ ?`ÙÆ?ƒÌ¹?ðqN@¨j@R²@ 4W@íR@Ž/?ê^º?êJø?– °?Š/Š?-éð?=°e?nô€?T¢M?j>æÕÅ>½Û? +ÁP@n¢?à(p?†½O?‡K?|œ»?~æò?„FF?–9Î?²?­b?ž¬Q?Ž7Â?„aJ?툳@éõ@ *O@ùÕ?ëö?â}i?Ô,Ò?Êÿ?Ž±÷?„-@nV@ÉÞ?‡j?œ2?/+W?;þÖ@ë#@T[?Ä¢s?Æf?Ü +A?¿¢S?2ò‘?dë5?¥?­P?²S?•Bª?i©i?G&Ë?Àå?Äyž@úf?ÈZ.?É?q™.?[¡@?äz­@ +G?¢äñ?„þu?Ü/>ãˆW?5o?•N@ÿç@\¦?Ç›ñ?¾¶}?pRÍ?|+?¦Ö?¦Õ±?¸G?ʵ„?öhÒ?ÓÒ?…?ŸÂ|?¡ýØ?² + ?Ç°J?Ë”?ÇÐÕ?ÇÔ’?ÇÕü?¸[0?³Ø¤?Uèj?$e±?ÍŸ?±˜B@,ã¼@:sm@'o·@"_©?/1? +SZ?½X?7Œ’?µ«m?oš?;z³?:­?)3Ý>úJA>2Ê ?] +¥?ⵈ?÷{“@NR?åbä?ÌZ ?¾¨*?º^°@j@}(?Eçø>æY?¸&°?Õ1?a"?<Ä•@Q—@!»î?Š¬W?“ <@F©?ëÇí?+v?oÌ¿@ +¨@k@&Ž ?û\«?SCk?¥þ|?ò’þ?œzÿ?5¹?2¤?1š?Âô“@çX?ç·ß?Ç»*@  ã@å–?ÎÞË?¶ø\?V»G?6—‡?±h³?­K÷@ æ@ +5 @dî'@\f@á@¦°@ŠWÁ@lCß?þ½@qÚ@â›?ûŽ?ðFè?¼X‘?gï?pˆº?y²?µðõ?èëÕ?ÖЛ?Ç.p?¤Z˜?–M~@D_b@uX¯?ñ–É?¤Mc@‡k@/û?¾Ò§?¡f×?Ò®?Ï_À?… ?û\@…^@ÚÑ?ƹ¯?ÊDé?ßÈ­?Ú*?µ¾Ú?¡±(?^nà@b…@‹ö˜@;¾?·?yw#?Äz¨@G@\ß¼@=çD@%)¿@"Ã@–Æ?ó%û?ÔüF@ ¼@;Tö@²@L@#@#ÒF@ +’ä@z«?­;‚?¦sC?Ëc?ÐÎ&@ã²@×®@H$@q?Åcn?Á7¸?^}?²Š@GœŠ@2D?‡6? Â4?úZ€?ë,?Äö‡?çIŒ@$“@££?êáZ?ýè‚@ “E?÷«"?Ä›¶@.ù@‘ÈK@{÷Ì@J-@[ˆ?¼0!?¤×?@¶?‰ì?d¥@7é@:¨¿@>®ý@Cî@kƒ@…k€@ Ò?ÆN7?ç¬`@Ô?éê8?Ú<¨?Æuè?¹dî?û¥ý@ ?Q@#A@/Ó¦?³k?‚c?êÉn@ +Ú?W î?-©&?…Ü?‰ÛÊ? ¨í?×L@CÔø@Rlp?ˆDX?U„S@HwB@V&¦@ñq@Üð@TÕ?ùZà?Ë8µ?Íø{@8@ œq=¢†¦@"³@!x@F…@FØ@ðä@m@]{T@`]>?ýÉ?øßž@Z‹P@X˜?âš>?é‚å@( ã@)=L?xB$?ƒ$C@‡.@tå?ÀÈx?À–t@ +a@ +=?ÜA­?ØÎÀ@ +æ5@ +,]?NI?>1 @r$@k?|,?r°Ì?Œ1Ë?†Wƒ?½ +§?ÄÙD?ÍÃC?Ô­ƒ?;¸?-¦>†n >›”?:(£?QK@Ùø@>@24@%¥@Õx@*?Ï«Á?¾¼@?¾¨µ?¾œ§?Ŷ?¿R?ÛÞ?àõ?oxÉ?´]?cå’?&Í?)!/>ýV¿?\ßf?Œsv?û´?•†’@v@%wò?µð>ü©}?÷k@PI£@¬?ŸZ?œç?”«Ø?ÐÁU@ÞË@#'@?„@Œ?7úF?„p?ñË?ò'E?ðò8?éG-?¼ +?¯c“?Òt?ŒuÄ?Î5)?×WÏ@ å@ Ú×@É@ý?ÄÈâ?Éè‹?½.¨?»x?„ø5?yÌ|?Ä3à?ѹ @k4@ +1þ?f¿M>ÅÁ9?‘ê ?ÂÔ?ÛöM?ò~Ï?”iÍ>ø®–?ÇV@-0û?åÛ„??y?×p?×ÍÚ?⯤?å9¶?÷Ã?êÏû?š™ ?Ÿ4º@ÀD@'Ú?ÍŠÝ?ÒZ®?iõ?K•°?*2,?²ß@=—@n6Ç@“å?òåI?¤6)?h—‚?’÷9?¬žµ?©ÿ™?§a´?Òåõ@sÅ?úžý?°ÃÍ?ÏM@+Ú@új?·§¢?¸žÅ?áðŠ?äth@B÷f@JãÃ@F‡@J=I?î,Õ?¶ZÏ@Ôr@Pó?èM’?À–x?¡Rü?sNŽ?žL£?ÞšT?ÛÔù?ÙX?È{Û?rªð?}¯›?þÉ™@c?.$?4f@ma@{@…¥@žsS@jèí@4ò@ëd?ë¨?¿*a?q ”?¶„ @1„‰@5Ö?Žk6?…q?9ç?3Zê?ß—Ú?ð?“êº?oË}?ž2¯?³°û?Äí?Ú]™?¨|?}Þ>ü‚Ÿ>ÿic?5?É3?*8‹?î6l?ü¿?Ö Ó?Ø2ý?†JÅ?0?z?DBì?TÌÜ?…pZ?¸«Ç?Ÿ¼“? êã?1{e?çBV?ê"Ù?±õ•?®¡Ñ?׎™?Ú»=?ôN0?ú£‘@z÷@9@K«?«Ñù?¯©I?šæF?ŒÊ±?×Ä•?Ñ›?çÍ?êú?¤UH?¸"?pã‘?j“[?=ý¦? É-?ÝŠ"?ËÇÝ?¯t6?¯dD?ƒ4œ?br ?‚Ù?Š”d?ë9T@%ªí@K¦?iÜ?‹Ä%?ë2Ý?è­$?¹p‚?ÃDÜ?²ðý?®R¥?ú1ã@)??Öÿæ?Š•Ú?”žî?ž®m?±'Y?ùfj?õêÄ?ˆ;¾?vWL?ñNZ@-ä@OÞ?ò™Ú?òRa?ç"i?éÜ¥?ú—ý?þ ?É@a?Ë;z@åQ@L?Ýæ?¬ùÎ?¥ä? ˆN?…d<<ÌË>,¦?¬ÌÆ?¬Ë?Ú?Ö Ã?{o!?&ÒT?]À ?‹gê?‡më?‹ Ð?™C2@ >G@ "Í?<8ï>ðQp?·?šø—?×™J@í@f¶?¾”í?´üû?ߤa?×Óõ?L²è?)ª«?ÓýÍ@«™@ °7@ò?âàÜ?†Gº?úƒ?›«Á?–Ì]?'1È?/„ ?¨Ûÿ?ÀLÖ?±?g­þ?m¿Q?mvý?‡×8?²±b?Ÿ¨#>ÒQÜ? žÂ?Ò÷š?μk?–CÑ?€D"?3—?Ò?Ë˺@$UÆ@!Gƒ@vo?íeR?>Î?TÂn?ëX–?ë„?Î$?ɸR?8õ/?/|×?¦‚?·»ë@&öy@H ò?åhs?Vì?”›Þ?Ã8?Š>ïÕ¯?oW?¤e>˽/>FòF>…KŸ?³&D?¦/Á?¡ñ?”Dä>¨…¸>ÒàG>ýŠ?NÞ?q9?vQ‘?‚Ð:?|ö‡? xœ?Ò=‘¡?)ù?7'³>ð4ô>´v—?P¤?g º? ÜJ?6~?v ž?ej™?Y?ù?dåŸ?€æF?1˜&?ä«=¹VP>h[L?q!>’¼Å=¸íä>ài>§÷É>ä "?³?2Í…?K¡*? +á? ô“?Qy?('? ‰Ù?$(Ñ?'Œ?ƒ.V?—z[>¯w>²*H@`To@,>@>Ä.?â@">H\V?™&}>ñ»€>Ìôv@>ñe@BÙ¢@[¾?õdŠ?”>X¾M>º.Ö>îp_?©Ü?: ú?ùÞ=LÖ“>¦Óñ?³gÒ?£U®?tÐ?‘ë?9›–?,±?Cò?B?;?-Mq?=S¥?Å>ô×[?V§k?Š´á?Só? y*>¡D}>ùA³?½”·?ž¯>÷Á“?&±ä?¨—?šK—?I‡?•>>ùC¡>ù}R>ùº{>ùñà?6N?‹ú ?Øê>úÍ›=d¶Þ>ÚãÉ?Tï?Å|d?Ú)?…CÂ?X¹ž?T&?°t?o ñ?€=µ?Š¯+?‚žˆ?pÁÒ?‚ìÒ?2Þâ>ýè*?ƒó?°o‘?¸ÿ?¾Ê?g^Ð? +A—?G!?g²?>4?›ne?¡¼Ü?§Z?”lŽ?‚Þ?}Á?Ú¾?Rv?*rä?»z@ }ù?¥B}?Cý?Nõà?€Ol?áª?z¤>Ðú·=hÇ =ñÔ,>ôv7?,Þ]>÷Î3>ØŽ;?næ®?¡Ì-?"¥>KáŽ??Zœˆ?$ÿä>Ü$¸?í_? Áî?'ô? Ê>* m?¬î%?øôÌ?Û…í?Å”Ò?‘À{?TÑ? +ÍM>Õ’÷?OzF?•Ü>í<>˜JÞ?]Ì|?†×?Ž_?’K?ØL_?ï˜|?˜°y?…éÂ@—¬@¨?Êç?»± ?§,s?L? ä‰?Ö?)m;?0Ï)?ô~?ì×Ì?ƒ˜™?Ñd?Ì5?Ì:¤?EÕ?À*?ó|?ö‘2@b‡?ú`d?">Ý,ò<ÓÀ>?kB?r’+?ƒþ ?¹—i?œÐo?4ã,?6¨Ú>ôRê?|#ý?ù? ]¨?„š;@8œ @ q?‚yT?'@->ª8>ôä=ØH? ç?‚”Ð?¡6?~Æx?‚ Ø?€”O?vC?h•}@-@1¡,?ä}x?¡Ue?ª2È?­¸–?R¥A?t?afs?‚®!?Ošm?:ƒ?¿v_?ØZÙ?Žˆƒ?ƒ`=»5†>SS=új? R? uÆ?„wv?­?‘—U?œÀ‹?»K?§Z¼?>ß>ï^K>œÇ®>×+F?$£?[f ?Å Ä?’19>{DF??þ?Ô¦Ü@Ö/@ò7?ÅI"?K.Œ?OðÕ?¶ +o?Õ<™OÓ<‹#©=«[@>Õ©k?ªç>õoŽ>Öx4?a%Ò?ƒÍˆ?wu?™+i?ÀÛ?ÅÑÑ@?@àÝ?Éú„?ÅgÔ?µ:??´3ÿ>6ú>¥iN?ãÜ¡?ÖÖ?T›î?]h¾?•–x?ó'?„*!?¬ ¯@.?Ô²°?„<Ö?œGe?¼â?]´ä>o2P>¯ Ã>ë2+?æ??4ßë?ó¹€@%† @3?éÑp?ÖN?Ðʼn?õÜŒ@g£?¼?ªZ ?‡GQ?„— ?fV?\)i@£ç@n-@$gV@*Be@Cõ@-pš?ÇÌ?Â?°Ã]?Žn¨?$Hq?å>ó‘?Szm?•–?ÆÄ"?ô +Ó@@ÚÖ?™?íF?LÑ?c³?AÁ?—ü3?ˆV?„þó>ë¯c> )ß?ÅvS?Ítc@j?ÿ¥;?†¬t?²2Ú@Y·9@8O‹?ªÙ?‘êÙ?”)6?Œ)ä?zÕ?¸R›@‡I?þb?÷¶?Î=D?§É{?¸>Y?ÇÑ¢?¤°E?–"E?‹ :?…=H?¡©3?¥9‰?!œÏ?C•?]& +?mü›@0@ý6?¤J?"†Æ?¿LÎ?§ñ—?(1g?‰pÍ@ \Û?ÿøv?Ö¨?¶Ó?†+?uOæ?n›#?±DS?æ®?›²?K‚Ì?jÚh?qÿ$?ÙñŸ@r#?£Æc?…O?è%ü?ü@ÂÚ@JÙ?ô‹æ?û!@º?í ?=U<0>>-‡?D•?Ž¾@=‚.@5)Ö@&Ž¡?üç_?dQv?q/?ˆßz?¹ã$?ÝùE?À½=?ª”?£²? ?’g_?”d?Ü?ôÎÞ?™¢u?…@?Ír?Ôv¢@>©Ó@J¾Ð@‰@˜‰?‰ +®?™iß@Ý?÷Är?¶Œê?Ö"Í@ù0@.b@ Ìà@öM?õÓH@-Ì@ +…u@?ÿkA?£iž?F¯W?Ž_q?ªá?­6?¥Ð@/Oƒ@Q_ƒ@-ç?èè+? o‡?™À@6:+@CE@>å÷@?îŸ?ƒaº?ŸÃ;@€û,@_bk><1w?Lð@l?òæ2>Å à?Oö°?ßNw@ Ȉ@OKº@‘?„Eµ?‘ ?¦Ç®@¹{@bÅS@<°Ù@0ý@h¿Ò@“71@;ÅO?øµ—@KY@ …ä@ý°@%©@ \@f‡?œoÚ?ˆI±?º?¿*ˆ?ù§?ü«A?à“´?ã¼g@­@8@þ®@v?‘½È?½pò@„ã@rƒÌ?ýðx@;§@?Fã@<-@2$@&r¬@Õ¬@–†?Ÿ©?êXH@?Çd@R¼?Ï·_?°$?…—Å@ :U@cp@z€—@‡¢è@?pD?í‘?Í“}?³ÑI?çk@@ L@Tï›@€B‘@DÕú@#5Ç@ù?á¯6?†“T?9>?ÓÓ@^@0êh@>ÿD@¹Ð@bÖ?¨ì?‚*”?ˆT?‡×õ?íF@S@5À@@:¼®?£èt?ä@=~»@KQ+?Þb½?Ó ?£°?™L¸?ëÜ„?þSê@,¹³@0u@@uÇ@Cs§?ûßê?ìY|?Ú°¸?ØV¸?Osf?3áº@÷:@ßÊ@Pmá@Tô?ûv­?ý<É@ÿt@Ó@^·@Z@ +…&@¥~@€œ>@x0ð?ß~2?åZ\@Ý@ V@Q B@K¨3@'É@YT?}áQ?u_š?å«{?çäª@úü@ô?Ó«?Ï÷@aG@³Ï?c½? ½9@"i¡@#{’?Šˆª?‚o?¼ ?Átô?Àºø?’×?yæ@I‹@Lªï@—À?²pâ@ßl@%úc@r-?¿) ?ׂ¨?ûÉ-@H)?ÿü?î®?ßrˆ@€@ìÆ@$¾=@.Xj@ “ ?®è?°P¹?²›«?¤`W?p«G?‰Ðñ?½±Í?¦ÇP?ï|?Þá?†T4?…gO?OV ?in @š±@îg?•?z&$?×Òl?Ûµ$?[?Böw?ßü­?ù›Š?¹·Æ?©Ks?b¢p?VË?»c?ù ?´W?‚îH?8k(>ø±°@O*@qü€@paÉ@i©o@5 ¹?Êmr?ÀˆC?¦ii?»äÏ?÷ÅÝ?î>´?¹¬ð?´öà?…Ï‘?ŒN¾?ãç’?×X¨?åf?éu?Òy®?É­?Ä’/?¿s¾?Ž¾Â?}>À?3~Þ?Ÿu?¡Î`?ê?¥Ìò?>“?£Úu@ÄE?áJá?uJZ?¶[T@Dº@0¥T?‡ùà?ŽÉC?·…w?·s¯@ö@%ç?µ„®?¦Vð?ƒÍÔ?s/6?¦Z‰?Àf»?¼–z?¶¨Æ?[Ñ>u•î?!i&?¢Üc?žY ?ŠŸ?‰'`?7íÿ?Cù?Ýý? ~Î?î+%?ò'è@ ä@+v@Y @šÐ?¾M9?uéÚ?Ì +>9Æ?Æi?qy?gùÃ?k†_?…ú3?po?lxS>ßO›>õ?÷xž@âÌ?·zh?œu?Ç$¬?Øçý?ˆo?ù?°¼’@1ÏÆ@[`?fÏ?R÷ö>î­)>?6M4?B€¸?µ" ?¼Ü0?á‘.?ìz—?æ„U?àˆÆ?§.®?; +?2åÒ?@p?fñ?Á¹|?¸­$>ôHL?XÙ?róô?ˆ¾j?·ƒ9?Ͻ¬?ÔcÀ?à±¹?¿ýÞ?kÃ+?žGÕ@M²@B@ }T@ +ù?ã¿ð?á²@àŠ@î%@+ì@eN?úˆ?È ?´ªæ?¡Ur?±1Ä?úD?óÈÈ?–-[?–fž?ªso?¯?¡ù¸?’=¸?—ÿ?ó‡?®r7@jM@`Ù?®…«?®x?Ö\?ÚC®?Óü?×Õö?Έ?´Ç?}Ö†>ˆæð>ù°ë?ÿȧ@A?ÙÎy?ȃ ?ÛÑ?çC?«ðJ?€g ?˜–¤?º®E?¶þ2?œ$b?£?éZ?âÕ¾?¶ïÄ?­ü?C?áü?Ò¬é?¬Îä?¬Ì‚@…k@ô=?ã`M?µ Ä?ª’°?¬°?“Àë?ô²?"O[?î•Á?êÍ&@ +Êâ@ ¢3?D¨˜>k [?n.”?ÏÂ"?ìíy@õ–@ )?Ö¢²?â}3?±L"?¬àÀ?÷?f›Ô?gWX?uƒ?/ï_>'Û‹>æÖ?­Aä?¬aÂ?o,?^·b?¾,¸?½žŽ?‡Úí?g±†?˜¯ ?²çR?š¾¨?sªJ?_¾ó>¯Ä>«n?èÆn?èñ6?ÿ¹³?ÿ[N?ƒÂì?4°0?aYÕ?r©¦?;<í?Œ?@Ð?jä\?†õÑ?ë_w?êæï?Ïô?Ôàd>šÜX=ÞB?´¡‚?èÒ¶?í¤´?ùD@/À@F"C?êÑÅ?:F¯?dÎ?bË?}cà?¾F?»ô?§œ ?ŸÒ3?Ü ?™?*u™??†? ‹?Gu:Ö>?Ja®?^š?¨…Ú?¶õ¼?4Â>ø…Ê=9ìa>ãua>úÕ?A#!?R»g?»C>ý[w?€Ä©?zQ)? š ?ÛÌ?dG>ݘ>2”É?X09?=—Ÿ>ß‘>û¤?€–?5ïÝ?QÍ?S‘-?TÅŒ?¨ >Ö°^<ίÚ=”œƒ?s„“?F½S= +ó|>–ª? Ÿ1?bº?Š®Y>Ú¡ >­Ü§>”ãw>ð`±>JU·><äv@ESR@•Ëg@cAâ@ˆ=B@=f’ð>Å^ª@0@ˆæ?Üšç?ã÷0?aPÔ?,Šù>Ë)ç>ž>dÉI=Ò›€>…1Ì?‚?8Ü£?´ì?4Î=màÏ=®† >e›è>Ž>?doÙ?seù>ÊV½>jÖ0>ÊÇÞ>ôÀU?x­s?¨2?‹¹¨?cÎ? ´<–ƒ½>?Àý? µ”?/Å´?a¦J?SQJ?C~?r6“?ÇË?¾l?›¬õ?ŒúS>ù°>üªß?»Rë?»Ä‚?C>úÈ5=œgaŽ>µÚ?:¯?!ä?hZ?hÛÚ?Ž…î?P†?Òa?îtÍ?31ö>>¹É>ýê>>ãç>áþ†?IÙ?|óG?¤’?´Ð?>į ? ‡9?*ØÍ>èú…>•1Ÿ?Ň?BÏ2>í&8>›·û>á}¿?ïŠ?ŸE?ؤ_?½1b?±­P?ºÀ\?¿‡¢?¿¶?¶¼[? Mu>—4?.˜R?\‡? õ’?­*?…ÝT?dM,?n?†d=¿¡?S?Š\?F®?E8°?Px?[¯b?¦7?µ¿?¿6-?Å5ý?Ã$#?§Æ?öÁ?÷>µ?§l8?Ÿ“?f?ãe?Ð:?Ù¨@?äVâ?Ù¼³?L±?HÅ >´ž->ÑÄ9? ¹ ?“9a>=Ž>Pþ¤?%ã?Ðæ?Âÿ?ñv?‚8û?„8?‹æÍ?’væ?– “?d +Ú>³È½?«Í?~Ð,?24?42–?ç¢$?§Í©?$º¥?Oé?„ý?¼?õK?\|¢?‹#6?C*¦?Ÿ#??†?ióp?¿–?ù?·?¡G?Ä)™?£sõ?™ý?ˆæÎ?‚Ùa?aY?âÂ?<ŽF?M×¹?«‘ù?°õ†?†ø–?ƒg=…V?”d>?’ýJ?ˆ¨R?°À@"Të@? +?ƒ-÷?„*O?Œºð?¯v¡@ Å÷@¹‡?çm+?¯6°>Â"Y>õ`Î?.÷•?ÛO>ˆ/*?Xu¡?ßú#?·«º?ƒ}@?™&,?´*)?A™=Ä´õ@{<@ˆ×B@ä—?¨Ù?ÀÑø?ýÀ‰?sÂS?¸æ?Viç?oŽ­?Ñ_?æ0?ª"?š¶~?äíg?íyÒ@K”@"óÕ?ÉT%?Ä`ó?sY—?aÒŒ?Ó?è?–{*?¥ìË?úró?üÖÚ?ÿ7¡?Ü‘‡?œ ?‚—Ö?…—?·‡$?ýߧ?°Œ¶?,$•?±@Î@Ô“?¥ò.?;š?L‰$?XðF?•4Þ?´i$?Ka¡?t&?:ñã?P³?T¹J?Y[†?½•b?Ï]?‰ù,?„˜*@‹ @ÁH@¢ñ@cG@ç?ýl>?Ì-:?ÏØ„?Ç­?ש?þ²?à¸&?¨jä?°@?¹êY?Ðh-?ñ7@¾ù@`{@Žë@[*?ö!N?Ðwƒ?¢?—¥T?½“+?ÇxÎ?ž#R?“ä¡?Ðvw?àsˆ@Œµ@£?Ò˜E?¿Ûþ?~Í?8‘‹?Þdx?Äð?p?ZVc?¹¨?ŽÌK?'W?LJä? Ñ°?Ð;:?ÿÍ·?óÎg?èF?ûÇù@›¶?¥v#?jDo?E—=õº?:i&?5Š?É¥û?Í ‹@W¼?ös?·WI?ê’ú@AšY@=ø¦@6Ú­@'râ@!ç?à:±?”-c?™‡?£›@?ϵå?â’O?“e?jRt?‚mU?…Q-?iZj?dì‘@Þ’@-P?ód +?ö_¾?(6?)-^?ÀÏÜ?½GO?‚æ ?fÛ”?E?†?h³&?ÀAX@&›?íR?*†~?‹:?Åp?ž§?ˆ ê?‚Cú?}Pn?Æ+9?ëÅ‘?Ī‘?«–?šƒ?›áá?ËM‚?ËyU?õ!—?üó¶>þ¬>ÆÆB@@»…@œ?ÿ%T?É݇?ÉÙ(?ÀÝÌ?´K²?šã÷?ÂDA@ô+@ïŸ@í”@-÷@\ s@[…¸@Zjn?ôÚ?H°Í?Ÿð¯?À8@¦N@%õ»@5Š@>NL?ÔÉk?¦¼?µvÇ?ºŸ~@$žÆ@)ÔÉ?ʃ¸?Ã0?ÔY?0w?ÖX?âá¼?ë]Š?÷Fµ@%_@6Û>Èàõ?aÔr@]x@Xô@R]?òÕ2?Îßþ?œÍo?F:â?Äɺ@‰C@ ++7@$é?úþj?ôS?Ö¾?ÆÃ@·“@}Á?â‹ì?Åêé?‘¯.?ƒäÎ@0 Þ@B*p@$Wã@¦®? ‰¯?˜~Ò?¥ë?“ѹ@©=@A@&@W@ H@¤@_¨à@R~@¥®@ ìÏ@ºL@"äÜ@k˜¡@M¸?àÅë?ú.6@ÃÙ@öU@Ìn@$S›@)ÎÜ@Ø¡@Ø`@!pù@Eõa@ga+@„¼ê@Bþ.@Ôà@d}@,>”@/@@! @CÙd@hÆY@U±Ý@G§º@PÛN@SM@µ?ºá?îæA@_à@k<#@‡@êç?ï·B?¢`@HŠà@]ð@ +N–@R‡@ Û@ù:@;Q?Õj´?ØVÅ@@6@AL@ }@ íÖ@ ·@ ¬¡@ ô{@NÈ?òŒŒ?ë$d?ß?å¥Ù?×±Ä?Ñ–5?ù?ûnÏ?Î?5rÝ?ÇiM?Ê…Ù@#˜@|Š?ò{?ð ?úßu@Í¡@/÷`@4<@ “‡@øX?ÿìe?ûú¿@ ¶@*;?Òë‚?Øz@-õü@(Då@ Ó@kD?”ɲ?ŽJ®@rÕ@z]4@^é«@ZŽl@:}í@5ÏM@ÌÅ@"ÿ?fÿ«?\ce?âª?ëÖ?²Kü?°M·?Ϩ×?ʉß?‡Óú?‚‚‚?ݱÆ?岘@a“é@~M?ôëÜ?¢­ç?µÃ«?¾^Í?¾TG?¾@Ä?ò×÷@’¬?wL‡?™€?Ȉ@f@MÝ@×?ö%m?ݵ?×ü?ÑÑÊ?攌?ðÙ-?ïßÑ?øUó?³% +?Lôk?„©?¤Èe@¢ƒ@M+g@(™e?ª` ?£Kt?œ9J?ƒí%?`_?~ÚÑ@+@¬V@¤~@Ç^? ?Tq9@K0…@A»„@)‰=@'õ@ ÍÚ@г?Ùãå?Ù§Q?Sæ?3ór?ÊÒP?âí~?ÒH$?Ä1±@j¿@4o£@ º;?ðêV?ö€t?øãý?´ ?ux¾?¤qö?ÚßÕ?Ô’b?ËÓÓ?à¼?çâÛ?Ƹ?wó,?‡(n?°?°;(?šÒ§?¤,?Ùµ?ËpÃ@­C@!E?ÐÔ?Ɖ:@ Úp@Þ0@@n‚@'?òÐW?yáœ>öÌ?57?BO +?ʼn?–U?¹ò?õˆC?çZ?1¶?§‡Å@X&+@D?Y&?R»?’b£?—‡Â@9wÛ@<©®?S.¥>¯çÐ>øA—>üd?·O‹?îج?®å+?ƒø?8öÎ>µhc?Q}ã?ÉŽš?³Lý?ö!?ö ?”[¶?P ?À¯¼?¸‚½?Ì/‘?ÒÐë?íøi?ñï&?ñÔ¬?ñ¼?Íž,?´Ÿ +?ÊÁ?Ù97?Õ¡¬?Úƒ?²¦&?, ¿?TÓ?èþ ?ÛÅ!??£Ÿ?.Àó?Ñï?å¡[?ÿG¢@Ó@êæ@s{?Øóu?|9?‘E2?²­r?ä§L@)·&@>˜>î³h>î˜>îxÖ>îZr?Ö¯D?î"·@:o@NÁ@ =?ä¾À?ÚÅp?Â÷G?š>ÚL?%€$@"êS@*óÆ>íXè>ì«c?ÇH}?Ùû?üŽ@ï ?ËO›?›:5?˜?”ùr?§`z?ë”æ?è ?Åá#?Ëý{?³W?°@·?á¬?íðh?¦8l?z}Ö?/È>”?s®?j-š?m#¡?û5?³Ë?ñ×>é°²?¹?š\_?«ˆÑ?¾‘ß@Þý@D@G@A.@-~ó@) ÷?rfº?xõ†¼=ô–>®8¢>»P?ZoI?¬º*?ÜB6@žL@®u?fd$?fnÔ?¸KÞ?¸yš?“­;?|"†?×@ +?ÉTœ?8«Œ?>Û?‡?‡?‹h1?–A?“ËP@]@š²?®a ?g´z?ä“M@,N“@9}?h4&?ƒ·?¹ä?®¾?èÌ?èô'?ÚO~?åŒ?=?Iÿ­?¯‹I?Ç%?ÜNÆ?§—œ?()?3â¶?£ág?¬gm?–`æ?›>^?F0D?(U­?‘ ¯?«ù—?Fh}?ç?ãör@+u}?ïÉ4?Rè?}½?³îM? „Ñ?SÌÇ?-ßT?›>Í6<ß½¤=ŠŒ=ÝÃ8>2*¦?*Ç.?5ÈÛ>ÑH×>¦ýŸ>µÌU>ÍÂæ>õ£]>ù’?©$?¦w¿?Dfv?$ì?@¸?9®³>¥Ó>°÷>ȇ[>àwÀ?º”É?º¹?n?cWÉ?W÷–?7òY>~êé>Å]?óÎ>¯Õ‚>_%t?1>¨‘;>ü?L'^?…Oó?…Á­?†9Ý>A$=´Ôa=ã/>–]“?vOô?7ÄÁ? ´?0— ?Páý>”‹à>1Œ%>PA=Æö=û0=ßaZ<°Zd?Þõ»@&Ô@B,“?Ø&×?$Õ?9LI@7* @'¬_?j?ª?0çÎ?7¨#>KE®>°—J?‡?/‘î?c•c?"ñ›<œº0>½?Ó4?º'ô?eBµ?sKU?DMp?4q$?Íw>ô©b?1!¨?UÙR?3 m? î¶?¬¼>ö…¹>õ>÷Ç??[?±>ñȼ>Í5>‡)&?D†È?r\1?»"‡?´Ï3>—ÜV>®Ü0?…ì ?ìä?¬>úÀß?}æ? ì?h—v?gÙI=ìoi>Ò$0>üLn?B¬?`^?³{I?¿9…?Cg?O€?…éq?ÿd?&µq>ýêŒ>…=ßö®>®´ž>û¡.?XDë?„è‡?™ä¤?›ÍØ?‡•?8o>»ÄG?•NÂ?ùÒ¼?ŸUv?IP“?O‰u?U¼5?8Ô:?N“?5?6Bõ?¡^?Vm?P=É?€lÛ>ñAÚ>Z¾Ï?m‡Ü?¢§~?œ¹Ù?–δ?:^5?¼Õ?Z/W?~u&?2>Ì=q?j?(H•?"tP?§}?ÿ#??O^?y€œ?ÎØ?„ÓY?¿©>ÜÝú?Ûfp@Rb?Ïkd? Ì?Bª??)ý?#ÿ>“"ñ>Vj©?aít?Ž³>†¨=ù˜=ÌOg=Ÿ¦>!=Óœ >ò +â?¯e?¼ã?­†?–4Æ?šm^?³8?™›?™Äƒ?Ì>ÐÓ?û?âjf?܉Š?rg?^Ò©?)L?8n$?GQi?CÌÞ?l[˜?_ˆÙ?YŠ>Ýõ<¢:è? ª@}?â>¸>7>ïU†?‘ÿ?p§µ?W ?Lñ–?ŸmŠ?pF}? +ˆD?TOð?¦B?QU>AËÿ>«•?‡?Eƒœ?‚ó?Éð»?ø>k?“ƒ>?&¬?RÞ? ’>g =ZÊ?™±9?ÕºÐ?}>¹?Fã—?3ÄI?/C?ÙSˆ?õ¦(?›‰5?ƒéŸ?æc?í¯?Ùa?î»?±àÕ?§q[>΀/>Ÿ²t?ï˦?òÅS?³M¡?±pÚ?‰´?íq?ƒ.A?žn[@,@*e@+*Â@ ¢T??* ?dCë?yá?9‚>“<>03(?$ßú?ÐÈü?°¿¹?ƒ~S?a?”ê­??€P>Ôá0?|’?µè?݆Á?ûa?­ï|?‡ñH>¬øt=][t?LŸ“?ƒÄA?ÄmJ?Ö.p?Èx¿?ÅÃ?P{?Oñ@gG@B?¥@?¥Îû?¬æ?; ?2æ?Hê‚?³Wá?µ·L?¸¯?ºvÉ?¼Ôò?—?1>õ›@?0°L?„·? sÐ?ËVç?Âö2?³!í?¬1®?¯2ÿ?µfå?³”u@C@,ºa?™ER?kT> ¡ >ƒY >îk?}?18?4ë?0Uj?+Àð?com?kÅS?„š–?‹! +?è«#?éç ?¼Bp?ª«7? +#)?1ê²?Š£.?›é?™¯Ú?™l$?“Íx?²gæ?ÚɆ@¿@1?Ú”?˜TÌ?ÇÏ?è`.?òK0?þà?žkl?fõ?€Þ+?Œ"ç?ÎÓÀ?ÖÇÑ>jÎä=¬§s?Ãà7?Ï @=o@1‹&?¼ú?*…?Šd-?ˆÔ-?vµ?@|>ªÊ©ôi@8@&?Ò@æ?þ#ü?‹pË?‰^.@Eá@C0v@$‘Ç@îú?Ëlû?¿^?/ë?Çhm@,Ç@ø?új?ø­ ?ò è?ËS×?žÉÞ?yOŸ?A +§?Û É@Yâ? ’Ä?(9ã?H<Ž?[PÌ?k?P–@@¼™@]ßž?¼e¢?¥Q?ز­?ɹ?KÐ?a—»@F=r@.M?½®?Øñx@“¿@Be@ /o?Ãþ??j?ŸŒ@:Ë?¿s ?n\þ?4ùÔ? †Þ?]îS?‰´<@ ß$@&u?ÈsG?œ ¿@C@,¥V?ñøœ?ãw@]ô@Fb@¯ì@çœ?‡ñ?†Œ?†è,?¤Â@ê ?î©Q?¼ö›?žóZ?]æ?±P@ï@ ™L@¼@!‡+@.{·?àA?„Ö=?œ…í?¯l?@@%öî?æÔ_?Çu?ýi“@µ_?¢Bä?‘€!@4e@>mÆ?É,¼?ì+?€mÇ?–ú#@#Q@*Œh@]n@IV@ +M?ì˜~?i¾ ?’ÁÛ?ÚdL?üz@XÊ?ÿX?½P?ƒŠÖ?½È?¬J@Æ@,„Í@B:@ ÒŽ?Ú­À?Ìl`?Æ.?²DÄ?®!÷?²es?¶¥S?ŠR?€Œ¯@0/‚@EÄw@ Q@¢T?Œ&O?ƒ¾d?ƒ¶Ò?…³æ?Õá€?ää @GPÕ@>Eâ@¯@ÏE@6 Á@&XØ?ÂŒ?¸}ˆ?§cž?©(¬?Ê>?ÐT8?㲃@ýê@=S1@#w#?ðó£@"ØÏ@_ý@Bu¢@¥Æ@#@%@pì@ÎY?»§?FT@?@D*Å@æê?¾BŠ?í¸Ý@60@Dý*@dƒŽ@c/’@d„À@?Ú@,³ø@r5@LF@xKQ@»Â@B¼&@,Ÿò?ì&y?ÎI?¶È??¶*4@€$@¬W@3»‹@!/m@‡`@åä@nw&@xsT@™¨@Ž¿,@*> +@"‘@@¶@@BlÆ?Õî?Éí@N]“@Rª±?û\Í?ïá@Fó„@CâÉ?ÖÜ?ÖÝ@9—@8Œ?O—?"{ó@6–@4Æ“?Ã?Yâ@P@“)?¿?2fX@ÂS@´Q@³Ë?øûƒ>äí?›I?¯\É?¶ +?øRÛ?ü«{@„@û÷@N=ÿ@J¥?—M?™ü&@qØŒ@vŽD?ø±‚?ï{|?ìŽ?ñ @I@Û™?„‹y?ˆ±@Åo@"È +@\ª?ÿKÉ?Ú©ê?Ñ|Ë@S„@WŽ?æ¦Ö?ÎiV@; @ ¬ð?±§ë?šæ£@ Ê@ð\@Kþ,@Sñ#@E-@El?à™o?²0Q?´oz?¶£Y@zÎ@8 é@=!”@9¥:?øÿÍ?Ä<?†6?U÷.?FÖ†?<ˆ?zFi?’xp@„E@D2H@”ú?›‰e?«¨?®V.?Àý?߇°?« ?L¹?¥\a@G¤@š‹@ ¸Æ@ +O?õ´Ì> ?Ik˜?§ä?ªÚ*?£—x?¸­¤@ ~L@Nî?·¯÷?²¸‚?DU2?9׺@Jd@Pˆ @iT@nËÈ@) ã@¦Ë?Iö> ܈?eW?¬`÷?‹»õ?T *?âs?ËIì?¼Wk?“¹}?§H.?ò·Ú?õXÃ@ ºF@ z?¡Pi?˜g?Ú;Û?çç‡?ê‰X?í,,@ z}@ Ì@´Œ?ñLv@óÍ@Ïß@ +än?ù:J?àH¿?—zŸ?Ÿû™?iÌ®?tëW?© ’?¦|Í@U!@ `?¬æZ?o k?Y-?§@,?™r?ròä?Œ¥¤?ÂSd?ËçØ?ÎPè?ÃËé?MTŒ?Gg‡?Ýs›?î&&@ Hˆ@6?À°o?ôr?{5+?»ø­?ÛYï@ »`?íC=ÛZÊ=¤u:@Õ´@ Ó¹@'@Á«@2¸™@>•/@2±?ú¢ì?Ùii?°Ø#?ÆFê@ †?ô1?k\?k@î?¹X?¸@¡Ã@'?Ýž[?¬ÓÁ?СÉ?õÀÔ?Èfæ?j2É?f&?=°{?73?Ç×K?¿ÐZ?ƒèœ?i{À?Ku?+\Ž?›7d@ýØ@ +ý?æȆ?éW;?©Â?¥¼;>Ñ`Ö>¸Õ§?\Åê?Š9/?k³©?/uá?r±?Ñ„?Àïi?/Ð? L @#ÂÌ@*ÿ1@—ó?æsz?8ë?A¦V?Ç™@%üm@G…?ç q?æ&ý?ÉóD?Ô‹‹?ß+>?éÛ ?ó­?ñ±ô@Þ@4é@§„?æ}ú?è|þ@ +?÷?ÄíN?Á¿ß?,ë>iD8>ã”y?:æ½?¢ó@@%›]@k?€C ?qM}@*@÷ó?¸¦?•Zf?ß@—p?ÿœÄ?à&?Ö &? w?PÉ?î=Á?ñ@@Úi?¼¾ñ?€Î°?”Õý? ¨?Šq?#5?/1Ã?­ó?¤Ëµ?Ï?ί?„Þ?XP?c~°?jƒ&?¢™t?Ø +÷?Þ/G@õµ@ €?èЄ?è÷i?¬I?›Ü?;*z>Ö„Þ?mg6?¯ô?°êÐ?µá•?’ÅV>êïÀ>ùü?&’Á?5¥þ? ã?Ššo?‚~Ñ?@?$?r>óÝ7?Úu +@j?Å×?¨ty?¡)?‘åM?—?œGa?¯[ ?ÕIy?ÅW:?qz}?Eõ¼<9½Ä>PPD>ƒ[~?D´?O#½>á|>‡8´>ð­>÷Ž#?}Œ¶?ˆp?{,½?yÊÊ?zgž?zü²>Y2a>iy=²Åk=BÎØ>ý©"?†´?–á?+\š?€}í?“¥?x“ý?Jô?>·ãþ='va;±¾=):$=Ç>‹ßJ>û +Ð?uö?†JŽ>Ø$«>ê–æ?—>ó…>Œd?y‚U?Íõn?ŸŠ?…Í>Ϫ >îm?oGÝ?%bA>¨ê%>…‰…@/ˆ”@Qq@E!q?¹én=kÍ8îx‰>ZC€?>º*@!ƒ@Rq?¸T¤?§D>ˆ t>‚“y>Pé[>ö?"7£?nÓr?,ÌC>×·ü>”Ç>á~?&ÃU?)ÏM8ž?!#}?+†Î>ó"&>ÿ ¼>ü·d>ô’”>ôå–>õ9?Qr¼?ƒÍb?=œÂ>öt3>êò=Ê<>·ðô?a#?6¸{>°Vm>|ã¥>'­?y$@?c +>Bà*>(ŸL>e +=÷s™?Áy? Sœ?wŠ?{#ñ?¶uZ?·¨?¥¢Œ?šjÀ?<>üI?C¯ò?K®?Áø?Ü­Ï>Ço@?»Éë@ƒ?EQ?€R?DÚ?b\T>©­Ï< N~?©.?¹y¦?eŒ?.à??g³È?=N?Fß•?:6>ö÷2>ô#n>µ<8>’ÍZ?,Vµ?T¹¨??4s?D–?³"ò?å?s]~>ôæž?¤¿?žJ?Ô_&@ à ?eë.>µGr?)Ÿü?UÛ>Óéœ>XO ?ŒÚð?Á<?¨g%?št±?—Ž/?”«&?\·w?J¢j?6ôW?!>Â>v{=VÃ☷b?™?¢—ð?WY?m ¤?”C?–Óä?UÂÉ?@4?0ã?©±?²©!?¾ü?ik?Ì@âŒ@cê??m±?=£%?DzX>õ)ò?^p>œBò>ɬ*?ÂøF?¸+%?\¸þ?Zœà>¶’u>úã?±±‚?›†>Óõ»? µ0?và²?|>d?€Îç?¤¿Y@FÐ?î×?§T‹?§¢À?´Òº?šè¥?\ÛY?†Sð?´½ˆ?²Â?¥8¿?”[O?‚vØ?`7…?3Jv?6%?‰?I?‚‘z@-˜ˆ@ƒW"@4SŠ?ùó;?Ø‘î?Àòª?¸á‡?°#d?êb@Àà?À 7?¢† ?-)?Ò›?@˜?­@\?Âu?ÄXÃ?£){?–À?êÈ?•š??Øçä?á$í?•‚ô?šð-?Z8t?U¡‘=× ?ƒ.?`Ü=ƒ‘>60>´Ï?:I?àÍh?¶M\>»®?OØY?îç€?±Öö?`>¡k>? Ðs?žÉ?Š?ƒ~[?†À-?Oz?Âm=ÍzÅ>à°?#»d>—®¶=›#ë?8“Ž?ƒ°?ª\é?±°ý?åg–?ð¶Ô? ûþ?“üe?–a¢?˜È˜?øà×?ñ€?Öý‚?Þ›Ä?¥Ô?›µ¦?úô? “+?XˆØ?s=Œ?ª)9?¡ØÃ?’u.?ŒûS?„!ë?DÍ> 5E?!å?Å +¿??Ú¥>ÏHV>_c§>åæ±? ;ä?–Ÿ?Ɔ]?ßÓž?ø?˜½Í?Qj?ÿç?ó­?hÒÏ?y ?W¨?Wôi?—fÃ?˜„>ÊÊÔ>×Cq?„š?v·¢>LnÀ>!7<üµÌ? R@#çK?ýó?Îæ?:?›?„Ä”?™tq?¸‹?’/ä?Q‹?ô^@;il@6ß?Û1©?¸Œû?¦”??m"Á??DÆ?Á!‚?àH?„™™?I²*?Ôt£?ê¨Ö?}ñ?Õ=@@¹@B?ðÌ?®;D?…77?œ‹?¡@.æ@&xK@€ß@ š?åø?Ú1|@˜t@Pô?!ï›?;\ä@A/Ø@0Bæ?Êðý?àG3@$(9@ ¡Ü?€V?ƃÈ@,@2ŠÅ@WŸÁ@EßQ@4¹@ »1?Ç\½?¾å=?»u„?²..?§¬m?¤?ôd@ŒA@ß×@áb@X]@D%@L2@ -æ@·*?Þv›?åqK?Æù?½E>!¦D>Äg@E´Ø@;5L@HÜ@ÐJ?š§?–ùI?„k‘?Š/?—ĉ?휋@:©&@KD@ZàÄ@!:Ó?ËFg?¢?‹&©@:îq@ˆú@1OŸ?ó=Ÿ?Õ*ó?Æ5?a7±?À±?o‚?•?Ì&? z ?y1P?‡·C@7X@@x²?Sœ?ƒÉ‚?¹Å«?À¡@F„l@C%@OŒ0@AÑ¿?´œd?ç™b@j2¸@Và‰@û¡@S,@(Á @:ã.@`1@M¤í@4u6@1¸@$Z@ 2?Ðä?í—L@K¶?Ìqß?ÕÞ@!9 +@‘ì@†^<@x¹â@êW?®°@b Ò@ äÎ@Ná@4î@ ñÆ@ ¤@÷v@oF@2ÇÐ@CÆF@P=c@V@M–@GP‚@mŒ_@z³~@^@ÉÛ@ '-@ dÃ?á‹?T™Y@6@H!T@ +}Â@'@„Å5@‰þH?Õúâ?Âü@ )W@‚¤@NÚ—@Oo;@„·@€¶@MÎB@J£Ô?üÉ@ãË@,Û@ËÊ@\^z@^°~@~@×@¶4@Z?¦k¿? Ÿò?¹“ã?¶Æž?Hœ? Ùí?„F£?•ãá@3‘t@+éá@¸¦@½¨?G)?£R;?¶{“?¯¢b?ÒåÄ?ÑŠ@"@l«? Pœ?¦‹`@ ¨@‰Y?×·{?Õò—?íp¿?óññ@`&=@^z?lò?q³U@:P:@<’Ñ?ýÄ«?ü¡ @Å,@ס@>6Í@5Â?£S?z$@2w]@<ŠO?¼3?¯O'?Õ…ª?ÛsÇ@ ÔÜ@™^?ün®?òù@,Ü“@=†¨@’[?í^?¡‡w?‹W?§”E?¦ +A?’­?ˆŠc@1BZ@\îç?ãm*?„»f?væ×?g•D?¹ ?žùÏ?Še?|¯Ý@ê@6bÆ?ðœï?|YÐ?êóÜ@.„ò@5¤'@= @ {?•'y?­p?ËìÙ?´J?ˆ:À?˜b„?Â?°?±Eè?€¸R?‹ª?¸g?¬ë§?zÌ?`@³!@?4@2Ï›@/Ê8?ª¿Î?¯uÓ?»gœ?»ß?ò1?òÖJ?ìÊ ?óc}@o·@ Ì?ç÷p?µ _?ôáÞ@4?¦ö®?%ñ +>~<¿n€??•Ñ\?é<4@ç@gZ?Ý;Á@(ôW@‹~´@jàk?Óæ·?Àr?9¡R?J‘2?¹Ž?»&­?âQ-?ä¼ß?øh5?î¤?ǃœ?Á^ö?è/?óJó?È‚û?¶ùv?Ú# ?èiC?½ä±?ªÑ»?žøÜ?… ø?ÂJî@ Òh@'¿@-º@ D?·Ûž?·ÉÍ?·²?½¤v@žÄ?ö³ä@)¹@,ÀP@+Ðv@/2V?Úu5?·‡@*$ô@CUü@æÈ?é)r?° ß?s_-?¢åÔ?Þ?³HT?.Fþ?JÝÑ?›ïÞ?¨«£?Û^?ÝŸP?ò ^?ò4£?Ó?É8¾?è`?¾ß?mi=U0>¸¸?7ç?†‚œ?̾÷?Ä”Ù?¬ë??¥»¢?BŠÔ?8zº>ðl >ðN•?Í5P?Ù“?ˈO?ÍDH?“§f?o¨Æ?>°÷?2ã?¤;Ð@”L?àùx? Òô?M¦!?î» ?ìi'?¡ú?žü?D#Ô?M?¹.?Îx³?x~t?©>컶>ír?<W?§Â?®l?º)š?°Z?ß5?á—?áTG?öö?ªì ?žG·?‚â‚?b5ê?TV?,[É?šTü@E@Ž¿?¼ý:?°wv@i™@å…?͹n?²NØ?Œ€?qçè?‚ã?“s?©óa?Éš?Ì@'R?÷^ˆ@,&=@/Hû?†¹î?îd?“q]?¼ü? m?v;¨?TÏ^>ïä}?V«? Ž¢?Ê9?‚™?|š[?«`‚?ºä ?¡)?‘|Å?¶?C?ïmà?Φ?+âé?9„„@/-@»§?òÞ?çpŠ?¾…?œzn?ÂÐ@Ù?óÀi? »?¥,Ù?.œ’?5®Ø?_¶F?fÈA?Ú ç@ ú@Tó?é”Õ?Ø0?°XM?´ˆZ?Âc„?É·6?ŽˆÔ?‰ˆ?}~æ?d`â?>'?ÂÓ?x¬?÷ý½?þ÷/?à‹e?ä`§@ZÄ@^é¯@ l+?Ùª˜?Ûâe?éÝ?¼]?+—Í?=?ï?WÌ?/wÿ?äÄÉ?ù׳?ìú‹?棪?¡r?fÄÙ?o¿Ÿ?Ç?˜Ò?ÉIô?»Þ;?ç6ö?çNL?ç³v?ô ÷?‡¶ ?ó?AâÐ?h“?J/3?+£?‚%?úpø?ùœÜ?©¾»?²¡ô?§)?²8¸?ë|@Û?Ñqg?­ìx?HØÙ>/{? ÷A?<Ì?ã?ž",?ž?O‚?ŠßP>4È=›W´?EIl?m.ˆ?¦A¡?ÂJ?ë`?ô«ê?ÁŠ‡?—¯?ˆ?oýØ?[É?@'?ZOj?q†ò?BöÁ>ã$?ƒ?mcE?…Z–?^è†?(*0?f;?Ñ“?âYÅ?²ð>÷ ?s£Œ?x¶Ê?¥í©?¢9?¾??M?PLÁ?:.->üòŒ>õݽ<¿>Âû?§?ža?¨U/?¢À?¦ X?ˆÍ°>ÅÁû>êˆc?Úb>Šì>mš€>·~ =Àßû?bQ¹?†IÒ=âã=Uó;äf–>6ü>ã`?7;/?‘ëK?kt3?pœá=’ +‘>GûÕ>[×@rØ@ŽA@S}Ó?΃? A>Ǹ>§“¾?q‚{@(9¤@ó¾?¸Ò?·“>Yh>S«Ò>ÔSm>íÆð?>?;²t>¼bl<ï::ó²=ú^¡>ñ2Y>ëc >·#Á>¯å?G}?@ð/?ý>çÃn?ê\?&¸å?RK>õ$p?‚äþ?¯?k$>þ‹„>„C;=XõÐ>5€>ñÛ>øë>áâ©>•¤ >ÐC­?y?w^1?]ã?Hò5>ú +—?8Q?d!›?k7ô?‚5?}æÉ?¹õ¹?¼¥y?X&x>Î $>ÄIJ?¦²õ?½¼‘?'Å*>Ï1?Z,@?}¡¬?Le6?I<>‰Äî=]…q*­?ª¶?6K>^d?,£?z¹ø@¶@ «?Ð2?“¤ÿ?o?Ï?W@Ž?/š½?v#?œÓ ?ÁB³?éôn?ôü?œôš?†?È>”»[?¡ef?ÑÔ,?ÀÇ®?¿uä?8ÿ>ôD}?øD?&ˆ?­˜ª?Ââ?›Š®?–(ç?{j?oü?â/l@E]?–£¶?ŒfË?’y?—³^?ŒM¨?“=!?VÃ?>«?q@?zD ?¶³?€³t?°?•:Õ?pû&?a¸Î=íj>`>²‰~>¯Àe?òö?1xõ@@­?á)s>bÆd>‰´»?(Sù?Rà?¥?D?€V5=Ãp‹>KÖm?ì·?çb>þBª?R½?ÇMµ?´¦l?‹€@? ör?Ã|?…È1>ž *>ù€×?4m{?ŠQ±?ç‘?¤É ?‚xí?iÏk?SÞç?;/>·{$?Ì?L-ô?dÝ?s?-¤¼?¤I?´?w?L?‡p?ƒQ?™Û0? Ò >ÇÆ>þá£?Ô«?ÚY?ÝÈ?³Á?Ä[?ǘ?Ì“H>Æ}ë>§U ?.ø5?:!>q×=ôÍ>†‘ò>EU=HH‘>•Â?Öî?‚hÛ?vè^?m(?cE¤?P)¿?:Ò?1g?Lp?-??ˆ2˜?Gþ>c!‹?ƒâU@ÇP?Ýz`?Å/‹?±V?šBã?x´ƒ?3d…? ¾Ô?Òg?„È\?¬wg?¿ñ?ÅyÇ?O—â?Ï?ü°?Ä?¶¢W?ÐÄß?¼ )?µÕÏ>ÉÆF>¥?„ðL?™ @!ÒÏ@×ø?‚õL?Š\M?˜Nã?‘@ú?Š8+?”¥?á^?Þ~?Æ#p?¯%ù?t=?§ÑY?ý§n?·&ö?°Ó?¶L@@«§@cÞ?ä«™?¥/k?mc¹?㥭@-‡?›=œ?2)¡?³œ_?ÑÏ?”÷|?„t??¡?©=´?Öž?‡?¿t?ÆÏÏ>ÛZN>ÖV +?Ÿ„:?Ÿô`?Æö?°gd?«x?|FÐ@%œÜ?ÿ•˜?»B?[„?½o!?Ö ?ûQ?¤B6?Ñç?ðáÿ@GEý@?½ƒ@9aP?ëÝc?¥JJ?D0¡?U?´‘J?×Ê@=P@ò*?˜k²?…µ?%†ž? +A?… ?‰á}?¹ä?Î@Pz?â²€? ø?¢û¯@5Ȇ@(%A@M…?Ú"o?pi ? -}?ÇÄ?Ëðp?Õ„ÿ?­"4?‰]?›?¤+1?”l+?„•º?©/_?±n’@R¨@ìÆ?„q:?pó?I?‘Ü?Õ-±?È­ª?‡‚?[Ï='ÎÀ=]ðP>³!²?¼u?µw¢?êÿÝ?á{Ý?Ü2m?ÒÉ•?Çýe?¡’?…S?…Tw?…Sô?}K?g\?ñ^@˜?Õ¸|?Î!–@#€¢@$îz?¤Ãi?šÈb?xƒ?qB“?T? Àã?…û>?šö?Ðu3@÷@liW@D\œ@-Ì?Ä@…?m@?Ìu@Š@ +f<@;]?Ÿa#?AÛä@yÈ@%%Š@]R@ +ÝÝ@v?öIÿ?ôÓ…?÷Wµ?Éî ?ÏÑ ?‘”°?¶n¹@·c4@«”e@*ñ@%@G +Î@,­æ?ÂÐ…ã>x|·?Æï?Ý7š@€Þ@v_@S@œ@ƒZ@j[?ô4¶@öý@Cý@=¸­@8Pf@;?@F‚R@Bc¸@C‡…@Q%ý@W‹—@ ¨?œ*Ú@NÑ@3×ô@5µ–@. A?ðB?ÆÂ?¶å?ªvq?“o?Œ{ä?”·ƒ?–?ÂR?Å­ý@>Ú@E¶Œ@8<7@2}¸?Å–Ç?ÐÅp@MFÁ@?¸?m½®?›Xp@&e@)@Ü@ŒÙ$@xdÓ@r8@Q@í@JU-@ªF@|Ê5?—f\?½2›@c=@8 J@‚I³@)ü)?.LD?Á8Ü@ å0@#/ @'`‡@K®@h*@,¯?û<ð@iž†@š‚Þ@‚QD>k@Ùt@^C?´.~?§nD@Vß@[¤Ù@$Ì\@E@í@÷Z@ T@ì¢?ØW?Ϻû?ÙP?׳(@H™X@b‰@0øÀ@ 1ÿ@4mÃ@>´?q©5=½š(?¢î?èm?˺ +?½¥•?—C–?|±½?¼4/?î$Y?³‹ì?|[¯?½É½@4ò@c@0¦@ +|&?£&û?«t?ͬ\?á3•?ñÌz?èï?ï…@V?@Èr@ îŸ?¼??§£?Am?5{?ÖTZ?î„ò@hŠ’@aß$?¥Ï?¢•L?ÿ™§?üÒi@'Ì–@*f?ðŒÉ?ØÇ—@6@×4@mö°@‹4;@ +¯?•Ì!@$m@X +œ@`?¶Dl?Ѻ ?ëí?ø$æ@i?üþB?×é÷?ÿdš@0­÷@7¢‡@6Ë…@'?n?÷—ß?êÂÒ?Ó€`?Î`Ê?¤ˆ?¦ó,@.¨ð@6«¡@?ö?ÿ¬?¿Ò÷?µª¨?ç:?ôŽ™?õõ?ö*þ?ˆà?¬}i?És?ä«?ØŸo?ÓªX?æ§u@·Ä?ès;?|“Î?Œ?Î?·¶[?Ãfo@(Fï@.½}?Î…Î?Ôü¹?³ÉZ?±ót?º3-?·›Î?Yõ€?8Ø?zS×?Žå^?[ŸA?kq?>SÔ?xÁ|?„©?$P?jœ ?2ð0?F2?Í?ò?Êsk?à#?ã @ ¢4@d@ O@ ™d?‹ó+>í\?3;Ñ?dÜ?oÝÝ?„º ?žª?Íu ?¸x5?p¬›?l™¡?6°j?0ù"?—F˜?W„?\Ü?Mʼ?†Ü.?Ž~ï?¡ñ=?³¾?™Ò§?qÅ?Smž>îúÖ?m)?Ž3a?“Vß?ˆy×?‹RË?‘—!?†^E?ëâ@ц?ð~?ÝÑ?¸±Ö?Š_?ƒNÇ?ŠE²? è”@kÕ@Ê?i/Ñ?c4?±š÷?¼D*?Ÿ†Œ?Nn?“Íß?ã–?3%2>ncî??ØX@ O†@áÚ@y0@4@2·@èé?î{¡?çn?xÿZ>û!I?2õ +?jn?¿–2@3¸Û@%O¹?ÑÅ|?Þ‰ð?Ï¡3?ÞŽa?)©T>˜ÅÆ?¥PÌ?õß±?Íß©?¢Û»?¸úH?ç}M?ÑŒr>è¼°>è­‹?$¢D?6ÁH?Œ@?¢Ï*?œ¤/? –?´ûÅ@¨§?êo +>e3v>.?<@È(@ +À£?•= ?puI?v„H?y½"?ÐÙ$@-½?õƵ>¹êº>áØ„?a'…?RÛ2?@1?EjŠ?º»ˆ?æ­j?üû›@ âÎ?ð¸°?o +:?ƒ>h?ÚÚ~?×%ï@ƒE?þÙ?ÂDÉ?¬½?›D°?‡?}/Í?fCb?|Ü[?Ĥ=?²é?¶pú?ɸ­?r`0?DW6?GÃY?Hrå?Höé?, +ù?RÇd?ân„?î`Œ?DVQ?&ÄÏ?ÃþH?åØ¡?ŸÌ¨?fÇÆ?fÔÅÅâ>¤Èo?l†»?…O°?)´>ìí?)²?Hi?‡ Ô?Ù+Ä?Ù”Å?ëxE?Þ¢%>ëõn>ì=³?@­Q?(TG?T3ž?lÍ“?ð„Ž@ 6–@2@ù?¶f™?l¯?wc2?p?9êº>[Ð>·; ?oÇ??w®>"½å?Œ[+?×ö?•?¡rØ?JÊ?T*ù>ö5>ö­?u1l?oF¢>+v`>uOY?Žî.?—Ÿh>….Þ>Dßê?•x¼?¡EÓ>ßnÌ?¯\?t›C?O ç>¬·>ô{?ët?4æ¶?†©?’{=Øs[>s¥Š?è¿>ýW>áH>ñql?š÷>Â>?Ø?D)Ö>á}â>ýr#?æ»>¬°=ßmè?BŽß?–®õ>ñ õ>W0>è^ß>‡um=*]=:½º´@9ÞÃ@SrY?äë??¶;T\à>Ú9Y?x>­~=?£!«@EG@)Ä?š!?Ÿ¶>j’\>ƒm€>‘‘R>Ÿ¼Ö>Œ:1>IÌ’=Õe~=7©o>Ö­®?kÝ?’ƒ?ÙPØ?¾Æ?T9?Ul? =ò?S?8RR?:Y?lt!?td ?­„>õñ?,ÕY?S°?`Är?nˆP?6Ž˜>ä(->××>ÉØ8>Òc¼>ø?c«?Fê:?.‡µ>ü!? üÇ?ŠÆ?‡y÷>úø>ú=é>úuU? è?·—É?ºü?€F?‚ãŽ?l¡ƒ?d¡¡?Õ Â?Ø?‡î?gkµ?iè…?z¥ ?N¥ ?I™Ð?P?V˜ê?.˜é?ö^>õ0>þ5Ã?ÄçO?ûX2?b2¦>þÄE?•Ö!?³^t?¥g?›0¡?•Ã?Žïù?µÆp?Â¥þ?”õ'?‰ot?„ƒä?€!?gf:?b4ù?¼ô +?å„4?Bè<½ôÍ>¶6a?—?y2j?›Ï?¸( ?ÀòU?Ôé??×S²?:Ra>×ïY?V.?‚DG?½ŒÁ?ÛÆ?04>Gy>é=ß/Î?ã»@2à?¦#‹?.“?€}c?{&?¼*?L?€Ç¥?VI?8iH?*Îó?‹Yr?cW?›ã?¡—>?K6?7¥6?…óð?ð>§Û>}F˜?á®?îà[?%Äã?lŽ?‡p?}%ù=mµË>ª„?×ò?qŸ=õ"F?šy/?…Ú_>McT>Çô?½xê?ÆÉR?²íò?Œ£»>8²ê? [?òƒ?Ì‹½?ß¼?8ñ1?‰6`?Eµ~=Yì<Ÿz«=´Í>çÁ°?‚Lc?†úÜ?«²?¥OŸ?¶R-?z°T?g—?Yؘ? ‡?‚€?IÛ?%Õ?„Ê>Õ >œ²õ=áêp>Ý7 ?'É??>ô¥Ô?ÄZ@ìæ?ÍöÐ?·˜D?Ž« ?‚Äw?!}>Ãî©?HÌf?Z·¼?Uµ†?P°ë?0©—?=f÷? WÒ?]>eø>A3>«.#>ž9«?#à?0ý›?Ä´?´…a>ì8>üà? g >Ú-3=gµ`>Ô–…?¼L·?™Tª?CÐ?I;?Mù?B3Ò?–…>?oœ?BD?±~C@$²@s°?©Qa?‘?€Ø?Ñs´@ Ä?Út?«ÎB?+ðõ>‰¶´?™Ú¤?ÍÂ?•[?‚jƒ?áya?õQÍ?Z¨¡?//>¸P>ºéK>¦s>¶`ã?©Áq?¢ô?æl?ö2¢?êòÂ?Ü»?ÍÈD?Öü´?ï¦6?Ю=?9O€?€œj?Õ'›?¨ã²?Òa?Dè’?‰×ª?ŸÜW?Ä) ?© ¤?/(?²Ôƒ?Ï Á?¤ é?„RS?áì§@ MŠ@@y?ðÐ]?ÃV!?º¿ ?fŸ´?D?\É?„|?þÔ?†‚?•RÑ?žvp?ÆÜB?È!$?ߺó?ßPÎ?´q? ýã>öW?"p„?†O~?iÜ"?»6?:á6?ŽW?¬›|?Õ¼?×–E?ÒfC?Ó!Ç?à È@BÚ@ Ük?ÐÿU?§\Ô? >>o®œ?1º±?VþN?Þ·%?õž?|?i ¸?mm?sú­?ŽÍV?Eé?Ÿ¨?€½×? +Âd?F8Ê?¿‚.?Å ?áKÄ?ä È?á¸G?¶í¦?ggl?±õ?ôt¯?Íòé?­o„?o05?8Ò?-‹?¨vÑ?·Be?Æ_T?ëIõ?óü%@#f›@,¿Ò?f$E?ëaâ>è?áW?àî’@©@¯1?Ëßf?ä&Õ@&>Ž?÷Õƒ=ç÷Ô?@R?÷²x?÷óò?ü}@…@j@DÙ?Ý®}?ëT}?ü&?îG‰?åöã?è°—?ã\@ #ò@nF@-n@1Z?xû?Nº!?ëÿj?ñŸN?Ó‰¼?Ñ3Œ?ÖkE?Ð_X?À¦?à¡‘@E‡˜@70ˆ@„P@$f@X÷B@K/‹@3¼L@5ÛÈ@7ù,@?’@F„…@+º @ +NÛ@ +7Ê@€Ç@Û?éó)?÷¹?ú”^@dE©@Hš@`!·@:áQ@3ÜR@2Iä?äóê?Åó@MJ@ä@#?e@$Ik@ajô@d€)@ŽÒ1@Œ.W@Þ:@Àk@E† @:ˆá?¹¼\?ßê@oy‰@^k@#”Ã@-ݬ@5°€@.Éq@$>?@7Ê™@lÚØ@O$ @Jí?ÊAK?d­9?‘Q3?ľ:?Ýü¡?þ“µ?í£?ÑÌ÷?¦ c?‡9o?³Ás?ÛE?ö£ @ØZ@Vf@†`Ï@ê~?ÄD?áŸ\?î\Ú@u@Ú#@*¥g@1ÞÜ@½Ë@£ý@‹@‡‚™?Æp?[Nƒ?B?¢é@DN™@`k>?‡Ó? ²¹?¾Þ?É®k?ý&à@úo@òæ@èÚ?‚}à?ox@U‘¨@[Ü@L¥@Q'ü@9ý@«@UÝ@S‘>?‡§?‡Z¸@S0B@P& ?–]?Ž°Œ@ Bh@I@“ ÿ@’Pa@¶#@ +‰}@EûÀ@8e> +$T>Q#@öh@®@Þs@†U@%˜E@&3?@ å@c‘@¡@ÿd@ ±€@Ru@z×?ÿñ_?ýö?ÿÇÐ?•wì?Šª? ž·?J‘˜@Od@Uä]@i§Ö@gøy?ÀP?¿Þ?’"Ö?‹^??„™á?~?Œ‚?•yÜ?‡·?‰”§?Ìî7?Åvª?±Üe?¸Hù@/ƽ@0D@m=@vãx?Öá[?Á{@ …m@¬¬@Pq@]$À@Ȧ@¾ÿ@V0@ª\@]™™@q@I@DÔ@8—?À'?ƒ&V?¦½7?¬ÁÞ?áÖ +?ý×@ +œ7@L@?ªÒ@WÞ-@&XO@¨˜?¨`?7Î.?ŽÖ)?½&¼?Òו?ðOA@#Þ@2Íù?ðùá>û²”?ÆhN@`-@/v4?o4"?Œ¹?½· +?“ëz=ªx?/‰@'f‹@êY?íŸÞ?ò$O@ ÔÄ@%U¬@â@?õÇÉ?Ñ—j?¡ðß?’nÃ?u`ä?uR6?mˆâ?}M?·¹û?µ¾?žðÌ?™A?H‚¿?8¦'?n?t@@øÇ@æÏ?úþ>óÓI?ƒ´?¬?ÓrD?ðRq?Óß?³< ?£³Î?”*â?‰‚‘?9yk?`?òŠÄ?ò×?µ¿r?µ¬B?àòí?èxœ>ðø›=€í,?£Øh?í©Ã?©bò?qX?»b@(À@"@ ˜Ï?ï|?']­?,å·?2r +?8y?»?ŽŒ^?t â?ÿ´n@Q7?Æ *?¤ò™?”Òn?ki‰?‘¤?ßó?Ìë?{þ?‡ Æ?Þ5’?ã‰7?ŽF§?m`¦?hÔ&?as±?c&n?joÿ?ÂØó@8S@*OÞ?—Î"?”‡Ê?gû6?Y)n?·Q?¾üs?úh™@Ôˆ?½úŸ>þÙI?7!?¯q6?±;? Þ?™ft?TOØ?Fw>á4S>¿•Ë?NßÚ?’ÄN?‘Ã?ˆ‡†?…]?– ?|aß?ˆ0É?{Œá? W¡>ó7¢?‡/?zm?f\?·BŸ?À‘æ?©…?š'õ?ÇæÈ?ÄIM>íõ>§É?±Ù@?ïh?Éèu?ªÂ?ÍHŒ@yå?ùýè?Œ ?“h^@{2@»_?êòH?ÇZc?¬­¹?™ž½?˜“ï?Š0L?©@X•@d%Õ?‰± ?s³?/á?Ê2?{ñ>2ç>¾I‡?/rB?GÆ ?†È"?‚Ò?Ú}?Þöú?±¥ú?¬ªï? 11=òxü?wj?ñ^Æ?ÇÒó?g_?b?Bè?[,b>ü§Ù>狽?ÆŒ?­Ðø??yÊ?ƒ”?lþ?’4‹?µ4?Æšº?Ë ?ØÿI?7Ÿ¸>þ«°?§å?ÔÊé?pàp>ê+?‰³?ÖÃG?«þ?h.Õ?‰V*?®¢-?±]^?Jvë?7Òî?Ðù?Þðq>e<²(?ø/?Ègj?ÇàÖ?ÇÅx?¡Ö£?l ?döŸ?pÃ?„ái?¢e?‹Åó>ô/t>ù|>ÊþC?Üf?ó$?ÕGÐ?6@-?5õó?‹E&?lQ?A!&?̱>úè¾?û‘?üC?ማ>¹ë.>ãÁí>û¢Î>û6/>ûÖË>÷F=°š(>ȃ?õÆ¥?çО?¾ªR§>n¢>>(Ü>˜í¤?¹? ++i?øZ?ºn@ =‘?© ¾?W¼@?å8{>EGz=íŠá6Ñî–<£="X??‚*¿?*ù–µ;@y@ LÑ@8 ?DÒ8=¤Á@>™åK= V?Pë?ìÊ?æo&?°=D?¦a +>씸>ÑQÄ>µÿv>š©ß?Ùz?ÝØ;>·Í>7u:=‰&x=&Ìç‘$>ÙU?x€p?I£@>u]ö> 2Ë?,ûx? IB>ù÷d? ?I°?4q?zÛª?y?„d? »?¸¾?Om?Äé)?Ï\ ?¿D)?½tà?Ðê>üøà?0Rp?2Gð?QÃ$?L¹þ?Ò!?û—+?A„G>âÀF>(wÁ<³ký?A+Â?so>?6;Â?/.Ð>çÂ>Ùƒ?=ôh?a5 ?Šõø?›š ? >’èJ?,?UÔÛ?g*?Z°½?r£>Üy¹>ùû?a•>ú<ÃÈØ=«>(>„>´œ?Ìh:@· ?›"ö?`› >Àë>ƒ‹%>æ÷K?ð?$B¾?(«Ä>Ûu‚>Ê#„?ƒ ¦?‘…}?‡”Ì?ƒ—|?V»?>²>LAø=’ì?aÓ?]Ÿ?R?k?ì?›ÉÜ?G>à?A„?$­?‘¾?Î&$?Ø.O?—à?‘’J?²ñ?È9?«Ú½ö>Ø@q?… +‚?°»?Òª¶?µ<”>§E ?-?ŸwL?›/%?‚)µ?TÛ?­É¥?Ì?ˆ@bÙ?Ó¨U?vÍ?I‚?ü?gb?°ï? 9+@`·?½Z?Sw\?­È?ìg{?{9">Œzj?&óZ?fIë?t}?‚Ž-?7~K>ê‡?µ?°õ>öðì= º; ë>üþð?‘?Âk‹?Õf?é?‚Ö2?;Ï ?7{¼?†Ù?uN>ƒNì>i5?7#X?3™o?Z¼Æ?_à ?dÆ?q]C?¡ƒÑ?“s=Ø +>¢ÍS?¿JÙ?´cs?xèÓ?ZŸP?$^½?aŠÃ?ª‚Z?„-O?M8?D§?šQ^?’°?ƒ`\?£ÌÓ?Åf[?±Qª?ŸœÝ?bÔA? ò%?Qg?=?ßâ±@Å7@3@Ñ@‡±@d„?~…Ä?Ã?âI +@¹O?Ä6?rƒ'?VŽZ?J‰Ã?Ìì8?Ëg¥?„ŸÛ?‘Í?Ý=d?Ϲ?¿#l?ÃE•?ƒú?2?ÆÁ?›øÕ> ?ê?()ã?øÓ?ÎL0?råp?˜³Ÿ?Æ>×?‹ÈÃ?8?ƒWQ?º@£÷@2@ëJ?îÇÄ?šýt?m¯l?íá©@xQ?Šñ?:?K²s?J°?œp™?¢´?–ùæ?,ß?Ÿbf?—÷Ô?ÆÚÎ?½fÆ?=fl?)®ç>â¹×>¿f½="n >Ü~™?Æ:¦?¯@Q?€Rí?€Ùû?„ö?‰ôG?’GI?Ïi~@Ñz?¾¿Î?„ØÙ?u7 ?q,w?–qx?¤K?Uä>m?>™o¥>¢s„?Ç\,?ÜØÑ?=Û|?&Å¿?"Om?)…:?½b´?Æ‘­?þ¾S@_¹@7e?ÈZ;=¯£Ä>Úa?>W?¤ û?Ƕ,?Á!?¶³;?ßl…@.p?´ìå?léö?;&b?êì?3¾ì?JÚ8?8DÊ?$>…?ˆwÜ?™ù*?Ã8™?Çäh?×€‚?Ö?_?òºò?ñ¡£?¸î;?ÇA]@2·@Q¥@ŽV?áF?‹u˜?̬i@!_þ@ŒI?Çüô?™f?R¢·?’î?°I_?µ9W?½† ?±??§† ?©–?±4ƒ?2AŸ?UÕ?Üï­?õ”N@17©@.‰?¢m†?¡ÏÓ?Ò%¸?Èí!?–¼Œ?š´Ö?Å +ë?Ǻw?ËJ?EH>8ç³? Hq?…E›?} ?i¼0?¾=?ú/ñ?¿Ú?žNÒ?ÓÄ?í Q?h«ý?x?­þ®?ÑO@ò@+?öCÁ?öoc?·ÚŽ?»¤ª@U˜@Sž?ï :?÷ï@µ8?êàé?†uV?kÉ>øÌ?Àh«@[·*@BÇ@¸$@ +‹-?ê ø?ãíê?Üýî?éáF?ïÛ!@´Q@,·@&á@&@ ¾ï@Ê›@;!Š@G$Š@ k?ÿùâ@"Ÿÿ@)¹ç?å)Û?í¾‘@—j@v‘?/í?—ò+@”y„@‚Ó@…U@N@/ …@5ç@?Å»@Q,@m¹L@Qû€@0™¸@<ç?û¯1@F@˜3?õþ£?å>k@Å@ +–ž@¾æ@$³Ú@•)þ@²“u@mÎ\@Kš‘?Ûb¦?³ï?—LÅ?Ž&6?üq@í(?,' ?2î÷@Mþ @K×ý?V™€?Ž¢ä@_ß@^ä@a^%@``4@qÝ @kTF@G—´@I˜5@f ‰@F7–?ïª@›ž@á@t@:m @!«‡?õÅQ?Õ¾#?¬é?ÂW{?Ô»t@'òô@g-á@ž,?ƒÏ@Mz•@šZð@kv@:§'@X1@kÙ@:B?”õÄ?†¤†?„øU?á^{@—-@*e›@5«“@f‚ù@{Ä^@]@c??rIÐ?,zè?öËr@ +]?Õ2Õ?À ?°º?³º@øÃ@àÔ?Ë s?ÃïC?Œ¾?Œ°C??ð:½@Eá€@I±3@"íô@"U?×y³?Ûñ@bË @^ó?<,?Qˆz@2¤­@1ì@aÁ@Ä@!Ÿ(@¡…@;‚@Ë'@ @‚@Þó@flH@^Ÿõ@ ¨ç@‚ñ?ýä?Š»C?ÅÌ—?æ“J@‡úì@Æ +@^?@¼.@¡ø?û:ý?Âÿ_?ÎJ^@{¾?ö~?€f—?Žéw@Ê@‘A?r¹?ldí?çßo?å‚¡@ !ß@ + ª?µ-|?¼k @ëþ@ÓJ@á1@a@9ؘ@5}?Ü÷?QD?—Å?›á€@?{@a @å^@ çâ@hÓ@ ?)Ž:>þ†“?œF-?­Íº@Éf@–Õ@ +Õ´@ ?øŸ7?û¿­@®×@Lõ?ÔL­?º8Ï?¼vŠ?½W?’(±?„e?þ`º@3@^Ðq@ +²@H D@.¹]@2Èt@1i[?çMp?„ +…?‘\?Ÿ]­?‚äÊ?IÚÁ?¼7i@;ª?ÁZ²>¼ú—?S!?ÇžD?›ò? +!ë?m'1?ù«?êp?² x?ÈgK@ Õ;@ Pš@7@J¾?Í„»?ÑÍ?ÿ @ +·?˜—Ü?š ä?C ù?AË?Üç?ò}–?[ú?0%c?Ž‡?Œ?ˆC|?tÃ5?ÎœN?ü¢d?®.X?xÀ-?ƒLg?ŽÞß?´!?Û˜?Éð?¬9(?éHÁ@%[@+Rk@>íf@'_a?¹˜±?À?õ?×-Õ?ãÚ?ÍSö?Ò;??‹{v?ˆßô?. +?®î@θ@<Ü@?ø8Ü?Óô?Æ},@py@&pD?·ÿ^? I=?{6#?¸2¬?»òš?¾œ?ÁÜP?Ô‘‡?ÖÔ:?æ¥#?ã|ù?ôÃ5?ô%?Ú£ã?ßÌ?{ä?„9b?­Çµ?·ÚG?³Zã?«öÎ@A”@?¤¾@Ä’?©ÿ¦?ß¾@ F¹?ï,ù?›nö?Š²7?2dz?M«†?Û}?Ýy6?µÁ[?µ­t?µ—F?µ?…)G?qÏP?£=—?¶«?h–?¹ ?(Îÿ?])Ý?s[Ü?„˱?–M¾?©€?±³?sVð?gð€?Q€­?b²t?œ€î?­½ƒë±>UºB?Áñv?¾u&?¬o?®c÷?®&¤?ªêu?§§-?¤f,?™>¨?“¥2?¤âÁ?¯ƒu?¯s‚?æFx?àfK@"ø<@/&¤@½,@§Ê?ÕJ?Œâ(?wðŸ?kbH?„jb?àíÐ?ÝŠ.?¤î?œˆé?;ð??9?h&á?r Q?†<?œZÏ?Ôïx?ÊÕ¾@…3@ +3@n¹@ k6?ÄÌÕ?˜Kÿ?«0ð?Ãð?ÄÈã?Þ¯¢?ã½?Ìÿ8?Ї ?6•>òÚƒ?Æ …@>¿?¬gª>í‰×?b”?ìcž?Ýä? ¨?L?ì¢?þ²ô@ty@ *?¨ˆ?AÏ°?9P?æCn?Ð&D? GP>õ0³?¤‡w?¥‘@ ~N@£J?‘\(>‰‡ÿ>¥6>æcÚ?7D?jp?‚ì?Ì»#?À´H?.æc>íiv>âÏu>Ä_\?3@SE?ðh/?g?Zà4>Ã,ú>¡Âz?fl?R?’?Ÿw€?±%P?ð‡d@ +Õy?·Ô;? œ'?HN¤?®m‚?¨õt?hÛG?i ù?šhw?®˜ê?:Ž?YÄ?AÂ?f Þ?tÀ?‹¨G?fþâ>ë4?,C?’Þ?“Ë?;°?¢'«?n¦ž?lÖå? …‘>âÇR?“u(?²…ò?;ò?Øoò?ÓÎq?Ï&,?šÐé?L¿!?2W>ðÜ­?gU?o Ÿ?3ªà=·?>•0Ò?”¤÷?§F°?–’Z?—ÑQ?ë(a@¢â@ Á¡@rŠ>÷El>ø¥J?fB®?‰üÉ?XÎ?P[?gÚ?PT{?l?¾5?}/¼?|Û?‹ÅÐ?‘‚f?m}Ã?tߢ?¯,?} +?,ò?0¶…?^ÍA?C ?ç>Ùj? ë>ò¶u>×úò?8Î^?Vc¼?2)g?¥­=÷¸:>ü¿|>ˆ©‰?6xK?e?PðO?5´Y>lÂY=ÉOU9ë8<@@@LC@MœÁ@5^?~<îŸ ?MC?k¶>Þ›‹=D/Ë?0É?„Se?®ÿ?øª?ß‘:?kÓÝ?lT{?lÌ£?mKX>‹û=ÅÂÅ? Õ‚?YÀ?϶³@á?Ý&z?`V?Aå>ñ¡ >ÿŸ`?¼M?‹*?¶Zø?¶¢&>»¶G>œP>˜7=>sÛ>Î4>õ—>õÙ´>ö-ç>ÿQô?ÖE?Ê?ÒÒ?Mr^?ƒè?ˆÌ¥?¡aÐ?‚s€>øúÒ?t#?L?&QK?ü®?*?ˆ.ž?ƒËˆ?qï$?rüŸ>ûCq>ý`Y?j¢?dd"?:]”?Fþ +?‘AÍ?–ü4?OCÿ?>»W?u™?}O¹?ŽVË?—S[>šûJ=Ò7‹Poð>]}>Bõ^?¤³Å?Å|ÿ?ŸîÑ?ˆ\â>óh>«|›?•-?ÄI? ¹>¬h>ÍÕù?f(>ÿNW>ôÐd?‘¹?¥ºã?1è>Å7!?Lô?~¢m?k@ ?l„H?!¨¼>üÀÄ?+ƒÞ?4kC?(~?2,>y²†=à÷Q?³@¦?áH?¿W}?¼ßç?ŠA²?Dh?lu£?^/v?ø?¶?èç?p0?,[_?5÷ÿ?§y?£S3@ S»@ܯ?›±Ý?—@g?Â{?ÁzÅ?´9?{¬Ê=õç=¥gF=‰6{= =_Íä=Ó`>X'c>Ë%©?—a‚?ƒ‡Ö?óë?-Þ…?·´,?¬"å? ã£?†¼|>‘œ>j\>:Ä?&$Ý?5îJ?k +)?-÷==ê…è>Æáô?|sÎ?TÐ? 1j? ‘?Q8?W2?Z`?œr~å?;¼Ä?‘‡Ð?¥£_?ª„…?ØtH?ö_F?„di?˜>ú­¯>ó|?üä?Ä©?ž +&?²œ½>Ÿ1Ô=®³$?6²8?b¸s?ªéQ?¯;È?ŽÄ?âk?~ã/?‚ë~?7ä?í?P<?Vá?Z…Ì?P˜ù?F¬?/”ð>f +>É1R?˜$L?h¥R<„¯P?ú@U@+”H@M“÷@¼)?3ž?«ma?Ñ%†?›¢?0Âä?5© ?:‹>?Ÿu?å”\?ÕŽ¹?Å2¸?§ÊA?–W>ï^Ó?X.ª?©`°?úF @±?¤áÑ?u¥b?=6?‚­Ý><Ú>.?ª`b?»sñ?,Â}?!¹ñ?¤ +?¬œ ?Å‚‚?Çj@$à§@´Š?¬4*?«uä?Ý6È?Ábü?uÀ¶?mÎ…?,Ê?dp?¶s ?£]?"?c̺?¹‡-?‡N/? N?†…"?Æ^±?MY>ž²ï>²çl>É+>h*8> ž+?‚8Ž?°”?6o?k…?4Šœ?B5?ž¬7?¨&w?ÎN?Õò@ý@¬J@'?õp?Õ~>?°Íy= U‹>Ržÿ?%s2?8dS?ƒÜÁ?^ìÄ? Ç ?q߸?¾•ð?¢¼1?„Ë?ÿy@5šT@Ñ@Õ5?‡i?áÛ?-É_?CIU>°e>v{?.S?£Ó?ž‹ø?²Ôâ?k©?i°?²5O?ª‹ú?š6‘?“¡è?…?r=ö? §P?´§>ý>¸?±?‡Ý>ë?>‘óa?3ûg?•Çè?‰j?ǯ??¶?3j?),ª?Aú?į?:µ?©¹?ÇÝó?ƒ m?bÍ»?˜À?¡öÐ?æó?ë®?üº?’óî?%Â?+›?|r§?’&?É@?Èþù?ÂG%?ÞVÆ@ +_E@~@2@ù@L•@ç/@!Õ@:ÏP@!“Š@µ¥?áQB?È?Æ>‘”Œ>ö©­?W`?ÎAÆ?Ý‹@k±à@veå@S%@R—@T@ ÂI@#ƒ?@½ú?yá?,·Ë?ˆ2K?„x?m—ç?©Q®?ó_8?‹Ü>~ïv?ªtn@d²§@=c¸?²¤­?¢­±?8œk?@ýk?àóí?×Õ?¾.A@yÿ@”¯¿@hñä>m >øa‘?Ÿwæ?»É…?î„í@ +2t@'ŽA@<É@QÀ@%5?îwé@C‰@42@,á@#›Ë@ `Ç?ükH?øƒ?ó¼Ø@¢ó@Û/@ )?ð‰?yyš??-Z?ëvv@$@ ìù@kí?þ ?3@ k @ˆ?s¦?—Ñú@fv @`Øü@@M²@5¹”?õ‹‡@”µ@€žÝ@wà@TáO@O¯#@9áX@4’·@@œ8@.L@ü8?ð¦?ÄÙo?¾"?§á5?ì²@#ãi@Uü»@ƒ +¤@@þ@Õi@rï¨@£©ö@fUß@(,Š@Ow@då6@JYT@84º@+Ã@"A7@º@®@BÒÎ@S.è@!¶«@>@2·t@6¶?ÑJ?­JJ@Œ@´@?j‡@JK§?bÉ?û½?·áu?ÃS?¦?i*?¹ft?½ß@]›@¥¢@'ÄM@)ç@"@ï@"Œ@:p @7]Ú@vèÙ@r~õ@ Ñÿ@k@À@_N?çÂÃ?ï®ù@!¢Î@!|â@‘@o¤?œÌ¶?³Ô@oXo@w6”@Ž¤k@†’ç?À˜A?³žÀ?ƒ·?9|û?ô›@kŒ@h€@Î @¢ñ@ +Ö@0‡@ MÙ?´úP?·gû?¡ïy?­ü3@#rí@!Þ£?öà@#Ó@*I›@#3È?ŸW?˜{ƒ?iÁ‘?%¶@óž@J‡?ÿ·¼?þž®?Ç‘!?Ð0¥@1Mz@,±ê>@–9>^Ê?|Ú^?‰R@vã@^Ù@$3’@#˜?ð?Þ ï?I·?é*?ä¤~?ë¶j?ø~?ôcª?9’>U¿¬?ÛÎÍ@>Ž?›B•?}Ž«?‚b?œ?«0o?¸¤f?ŸøB?œ;9@oÆ@;e?ÒÄ_?q;±?å+ó@Ñ?ÙoV?šž\@Ò@'ú*?³zb>–ð"?~+b?çU/?³³—?>;@?‰b^?åKC?Âa?n’Ý?!#?¼cb?­|?€ÁA?…¸‡?•lW?¤¯Ä?Õ‰Æ?á"±@ ¦@ýê?»¾™?»íý?Ãî?¿ +Ê?›¤ˆ?’øÆ?|Á%?y°ñ?V´?8o|@)+@L˜®@aá@l$e@6sO@š(?ÆÅ?xË ?¼¿R?ì[·?· Ü?‡?y?ÁJE@,°?ÜÓ?¦¨¯@UB@jén@B¢?w¦t?k +«?/Ý?^|?MJ¦?R¶§?‰ç?‘?ÁOÅa±>Çh?–Ñ?"ù?_|×?VD?:;3>òP÷?(Yz?|I?lÄ?(œX?8¹€?n?nsŽ>ÐL>×XÀ?âä@g;?v>¥ë?n?ÀíR?Ô'?ö3?×°ò?rŒ€?ŠY-@-7D@(–Ù?ž?šs ?‰¾i?u€?V®?W-í?€ZÓ?”^?”Xr?Œ$ë¶q?¯¬Î?å–?|ý9>( ?‡D0@J?õmò?nD?(Ÿ?ímu?ô+ç?÷Ñß@y—?½ Ù?Š}?ôÝ7@?°@.>?åt•?àB&?èÅê?è´²@v?ý¿Á?9Üü>Éu’?VïE?Ž-r?…?gƒ?ÔÖ@&¨@3†=®Ÿ;<þ2é@:ü@+s?dž?}ô¶?‰¨ò?˜Cÿ?µ¯Õ?î‡?ßÜE?”?—ŒÆ?ÎŽH?ØcÉ?ºÐS?­,?«¤y?¬+þ?ªê3?³^?­S3?JnA?Co?p(*?…—?ººÊ?Õâ?žÇ?í?‘&5@·¥@ž@ ÇÂ@ õì?V1?GX?ûa£@“?¶Hå?6?DáÁ?Yy¡?\FÎ?vÏa?I>q@(é@*2@l­@ !ø?è—á?Éìt?œtš?ª?¯èÈ?òb?Û‚º?¢H³?™ô6?à¿b?ö +?é)?å’ @Aü@q?¾&R>èJ+? )ÿ?NÓy?`ë_?hâs?is>4õ=×–î??^1?iÇ¡?ÉË>÷qÿ>¤<ú>Gd?/\d?©Ük?š‚x?”ß"?œíl?­M@?ŸHT?lÈ$?lßù?©xX?©ôÊ?D¦D?.H‚?½É©?î¸'?ï?ïiŸ?£­z?l!?‡ž?–b?!ŒŠ?q¯ ?NÒ>¾ný>ø7Ç?‡o8?qk›?MÐ?e°Ñ?þ_?>àÁ>õƒ/>÷W,>ý«á?Zc¬?RxÆ? Óÿ?™º{?c2·?‚Ù?{üõ?{æs?y„y?e¢>Â>O{b>!°&>‡DF?»¹? +?4†?²â>jâw?û>krÉ>äo£?ϯ>¨§j>ª???L¤½;²åà=eG€=iœœ?Ío?Œ #?ŒîÏ?Šh>?˜?C æ>–#>ž‘c@kç@j²À@6o?Xi:;t™A={G@?œ©?‚°£=ª¾.?ázå@:ä@‹u?”úV?§¦º?°f°?¨ìÓ?ŒÍU?‰£«? t®>îu>;Õ1=,~ >ˆíò?ö„?MÝ?Ô?˜ >ñƒŸ>áA>°#? Ä[@áÃ@Q±>‹Ü¢>.‚Ñ?7†ƒ?Va>ÿZ¾>ÓçÆ>î3õ>ö ?„‹Ó?¯&à?,y=º_´>gƒÏ>Ü ò?$‰?2?Nÿ>}³‹>Ÿœ—>¿×>ÛBê?W?mz:?¥ð¥?žÿk>é3z>öTj>û?Ó>üé?ê?<=ô0¿>>¨Œè>Ÿ2?2$K?<Êo?CJ^?Iδ?XX?Lƒ¤?™ >ýñ«>ó=Zo=>ÖÅ;>ÿÏï?m Ð?…è?)Ý’?iu>ÚµC>¶¨Ø?[ ”?mc?õa@,ó?Û³?ÒãZ?TŠ >þP >¢"“>qäï?vŠ?’qÍ?“¨>ô°¦?x©?€¬?þ?$¤É>aMo=ïÙí?É…Ä?îL?Áëc?°ýú?À^™?À0?‹Q§?€ø¿>/'Ö? NB?Zº>q1u>->æ¾P?9g?«þ?ÝO>LW>©®>ô—8?eÅ?Yõ?YõE>[´Y>QD"?Øu®?â(¤@%T·@,Î?Âÿõ?Á.°?œ¥ ?¡ °?¶È?‚n.?‰_?ÿW?ú‹q?åc=q]G>à7…>ë ?;hŠ?[Õ°?›Dñ?šóa?´•+?¥'??|€?#xö>g8´>Q²õ><0:>× ?‚%s?YÚ ?1?"›+?f{Ü?œ/<‹‚?‚ð¯@L)?ámH?s…I?Ú}>@ õµ?îH ?¨’*?‹ÎF?c¸Œ?ů@y%?€ >Šý? ?53÷?<?´r½?žˆí?–Îõ?Í¿?qyH>«‚=™;¹?Ææ@|Ÿ>èÌQ>Õó?F€À?ZÆ™?¡7?¤´&?Vj?V£>gX‡>NÇI>ß1 >ö£h>… 0>•xƒ?úÔ?™?®e7?°éš?³jÒ?³¬ö?¬8ÿ?Êpæ@¥>@Ñ’?*î?J¾í?ÊM?÷â@+Ï@s@?í:¢?àíQ?Ö„á?˜¸?Y¡?_’?c{?@rð?‚O?†âÆ?‹¿¯?$°>§au>¬¤y>˜ÊW?¾? -†? +iç?ž>’sw>(=:ÿÌÚ­>òññ?¸!‚?Å©U?w%:?jXç?ƒœù?‰pq@Ý^@Å9@8ž@*?¾ÈÄ?ÚZ²@ñW?í©3>Kþ>òjÚ?˜Ä©?¢€¹?´1ü?Ž³ó?1 ?/ÇÎ?,pì?ˆš?Ä>ª@ý@"^¿?ƒÕ?û¡?WÈÜ?çì>ÅWÆ?µs¹?ÝÚ¨?‚í?T±~?ˆ,?‰R4?¢Åt?£s±?RÉ?WTº?œ¤ +?¨QÔ@)’$@+à@ ›@lÎ?Cè?…±@½æ?ÉPÚ?º?5R?Ñ?Êc?Ç'ä?b™°>K?t?5ÅZ?˜ˆ?´$ƒ?Æ?¨×î?’Ç)?ŽH4?‰Ë.?Ÿsž?Ÿþ?X?’‡>‘ü>1—ü?(Œ)?5¸@‹@×C@ +Œm@}‚?˜®"?žÔM?ɲa?îí<´]x>»÷?:¿?“õy?«?­Ø&?°]?‡dª?y¢?·óú?¶­o@Ia@;@?·(Ä?š=<ÿLN>2E?În?—ˆ@!ey?þÍÂ?˜ [?ÀÐ?òâ?£Ÿ?8Dz?Î9@  @ ëï@ Éz?ûÏ#?ë\?ÍAø?¸dÕ?³Z´?¬"1?Ôäo?Þ¯J?µª?·^¬?ÜKq?ä'‡?ôw?ú2ÿ@ô2?É%Q;¶Ó@=£ˆ?»/ˆ@v?@C™?H ö?·Ä„?ÿ×…?æ½d?Û±Ô?_/×>Á"²?âNË@MÖ?ᱪ?ÇÔh?Žê¡?{â?¦a?®£„@M×@%Ù?ÒtZ?×Îb?DZó?Õt@f@:Ì@#‡S@ 6?‚^l?°v’@zB@½@&DÛ@ dú?Ç|¦?¹?¦±Å?‚qu?W©ö?`A~?hØõ?¥jt?¿qï?|ó”?Fý?­°}?½ØC@1ç@D y@3{@/à?ÙD¿?ÙÉY?¬%W?À¶@F÷Ã@1üV?G?;Vm?É~K@éN@‹‘{@\ß@¢ú @{És?ü ?¯Pd?íõ@_³@~S@6Ð?à- @ ×µ@%W°@M{ä@f0X@(ý@ ¯Ü@ ÏE@ ð?þa?õ;E@0,@>¼3@ mÜ@û\?Æ!½?¿ßÑ@~v²@„P@DÕu@>DÛ@@…È@: V?ôŽ?ðÔµ?ü—Ø@ >À@„[@@ :@1"›@( ?»?ÆŠ?þPé@ S@tÁ,@jR&@mæ@¦ú@ v@–I@Q·_@GÆ]?€ÿä?¿5º@§§‚@—,³?ù[–?íƒj?¦®r?«F?¢Ë?°q @«Ž@-Õ?óoÉ?ï§}@(A?ü½a?ãNâ?ã•?Êó?ÌÄ×@q@¥™@š?ó–Ÿ?é:?T?†å»?ŠÙ†@O@—ÿ@y¸’@r!-@#@#‰­?hw?–‘ä?þ¤?öI @H™¾@H]"?éôC?ì?õõ?þ o?ÿ-]?þ`?óéÈ?ùhž@ +X@ ¨?˜ÄÈ?}åÍ@”@#”?¦š$?}p@Ch@]}?Ý Ô?½ì†?ºæ?}L?iºM?páð?‘Õ™?—¬Š?ºèÎ?Õ3?¸³Ô?¡³@¸¢@2%¯?û?~¦»?¬€?æn:@!Nj@\Úí@&Ú?ªþ?…ºï?íÈ?]d ?ÁØ?Ì2?ôÕ|?×{?zÙ?³Þ?îÓ?ÞJù?„4”?÷_?“ZV?—Æf?ú%h?út?Ü1„?Ý›X?´™¡?«±Ù@èU@®i@œ,@\@VÔ@ +/³@c@Í,@->Ú@8R@%8#@\@)­?âtÚ@ »@28@¬’?¹i[?ü„@S¾g@9©F?º +Q?º£Õ?Ó¬°?Î?¦êÀ?˜Æ3?š.?E‚?âó?îsF?ÓÎI?Åù3?ºúú?µé?³UÙ?±µ:?¨»Ž? \]?ñ d@î­?¿ÄÎ?2í?«{-@°?åÞº>ä‘?;Óh?õâ?à47?˜–?Fü?òÜ?b?°Ùt?·6¨@ ²y@Þ¶@~ +@ÄÙ?ýÃÔ?è¯Ï?·3Ê?žÖ°?ûd¢@+–Ú@#)¯@÷®@Vb?î“?ÎR >¶+Ï>°*ù?“3p?˜Ÿ…?¨ü?¬€•?¯-±?±ß>Óhº=”D>ÇiM?P?¢7?þ*á?å X?´´ð?«^r?‹?‹ð±?3Õü?9±G?î»ø?²öe?ê²b?¼ß³?Š›?yíc?ƒ»‚?›‹?Gœ?7¶?äêì?ÞS¸?k['?8 ?¸t?é]N?“Ž¤>é.Ø?=²I?±P?´Sò?·–ë?ºßø?õ¹½?û’á?`0?. ?;˜ÇÒ?°§:?°"J?]ðµ?Sh™?\’Ë?|òô?xÙ?f[3?ŠË¡?¬Í¦?Òü1@0¦œ@5Oœ@V@$?;ÛÐ??“@DÕ@Q…Ë?Ù5> û?4ü?þáB@[?ÑÂ?ÕL”>Ñ”G>Á¹?’±ø?­Øi?Óc&?îg&? jï>èN’? 8Ð?8ýÅ?>iê?Žâ?‰³5>²ùµ>¸bZ?Pg?iÊÞ?hÖª?a *?ª>³ž«?+o?£™Ü?;ï?±?<(1?óÒ"@©?”¶Q?°n> e>-Ã?´(?”I”¬>\ú¢?;0ø?@Ã…<ìÆV=uSÔ?l3?Yü>†»>ÉHð?»7?¸…+?84E?Éð?dñ(?g²"?Hž?:ô>Ö[}>¿?>§w>É­‹?<š?$â}>ÔËÛ>YûÝ=)µr>õ?{®A?$V>¿+2>Âxû>ûü=ÔB=ì^á=‹S¹<†Az> î>êYb>g’>#óP>—®Ò?y›f?†r[? îc>Ä/>>#ç`>r¯Ì9´¾@Pö³@mÂê@œ¢?×¥?6ú?%Þ³?œ˜*=n‡?±â%@™?É >êoŽ?,Y¿?±,K?´/à?„¤ß?‹Õ*?#é3?6¢>ÝäÃ>Ù´ë>3kæ<=ð?V+?×â?œÉ”>ñgn?à~?З?/Ï‚@+@ Æ1>ý$¸>ô +·?E ?dã>>xÙ=„÷3>µÿ>ö ˆ>X¯=ðé +? ¡/?H^,?gåp?‚ ˜?/ >“þí>0 >e¾?I‘¨?Oˆª?B€Q?+<{>úYz>ÞP=‹t>+7?¸:†?µa?áâÐ?Ò(:°2p?%Û?ž0?Bœ€?>™ö?8W‹?28?nM?„?#>ýóú>ÛuG>âúA?òö?°~?j××?~Ïþ?â·>ÿé>ÿ6Î>ÿU?…0ã?˜(´?±„?½Ÿ?dA?6õ?„ª?•ÀÕ?…¡\?€9¶?Ý#“?÷Ž?'Æ=“!-?š1n?ºÎS?.7{?™q>ÙòÅ>Å@@6¯œ?òFË?Ü€?Â(%?ÂiÂ?gQ­?NDÅ=óìB?$»£?Iuö?ˆW?‰” ?g>÷þW?u(@?|&l=–åó=±7 =êí•?yK)?wQ<Úë1:.©È?À‘š?ÁÐ{?¤#‚?¨î¼?ÛI?ÐÂL?¯5? *?2À?a?º½×?¨ºó<˜È@=¦u>ö«ý? +,Ò?rE?lÕP?ge£?‹[#?ð@Þ?Õ/>?‚~?uû™?Fó@?dt8?˜6?ˆG“?`ØÊ?s4Ë?”yÎ?u¢d?*>Ê®„=uŠ>_È¿>û#]?=y¥?‹§«?ŠÖ‡?‚V?H ³?#Ûì?¤;Ð?ߌ?\ïß>Aõ??;`?™Ju?%ÿ–>u¤²?v8?R,>ób>¿K¯?¦­?f†x?‚®‚? âË?;ì=Âx2?¢L%?¹·×?IË>?@óT?7‚?Ü!?(žq?…Í9 ï¯=Õc?BŒ?.Ü»?ûà? ?YI¸?^K4?cH\?eÝ;?Mãî?_pø?®V?š›Î?ÌÆ?,¹þ?…Ê€?Œ *?™³º?ÚúŒ@æú?ß×?Hf?-ô?Z¨?TÞ?f?Š<¬?…jx?€—_?wî>÷°U>A§ó?<àY?ƒŠ¨?›Rê? Ê'?1ÿ?ž]?ÌÛc?ø3Ÿ?›À/?ƒò„?¤S?»ô?y²?*{?ëÝ6?ç·Ö?%3Y?4òa?®µ³?½‹Û@ +&?þ’š?J)? ª«@@Ѽ@Ÿ>¡ý?&Z”?±Ê?é<@%a@³?®Á?ÙÝo@+?Â÷?É1?òó@%O?¥yø>뮲?ÛvP@ŸÎ?¦tÈ?gÁ§?7ÿ?®û?Œ–j?„jž?v¿4?}®W?á÷~?æf?A’?@¡ ?®V/?·vS?î²X?ýÎ$@:@3»o@¥J?õ4µ?ÀÁÿ?™«›?é?? 3R?›Ì@â?Ó™„?¢H?†äo?güß?{„©?„Ú€?²)9?ÇR-?ªø;?£GÖ?Úߦ?êH?f:!?;+C?6±À?2:ë?„9?.ù@íy@`)@ßÔ@Þ^@"Ûx@œ@Öš?öÌT?À}l?Ó²`?ü‘'?—~ >4Ú@?ò˜?¿1?Žþ?…0˜?­]s?À‚„? 1¶?™Óh?4ò2?;M??E?Q‰?°,£?µÐ@@ Îö@ÿ½@ ©@ ¡c?Õ’£?ÌI÷?(¯~?€Ò?2K?<Û?·¹?7±?“½M?¨ÃJ?¾Ì?‡-?;¬>¸Â‘?­>@T¶?Ɉ? !?Ò|¸?ç¹@ø0@8{@ f=@ ÚI?ÕŸ¥?ȺT?…ç?‚ät?%-g?<ô+?¿)9?¸\ ?Çü—?›æa=äh˜?UwÃ@!¸ã?Ò¦>Éý\> –=ª„b?q·?åé‹@=K@>r?£}?+Ó?ñ?²£ô@5“<@JÁä?™©ñ?[ñ?ƒjÓ?…0'?² ?¯”?wÝc?}My?åK1?Ú +0?²½=?Æ,q@ý?Ã=/‡?Z‡"@$ÒB?ëT#??F?«ƒ¹?þeÊ?á’u?Çs•?w¯4?ð¦?sÃ?–US?\ ¶?>€—?å1@ +k?ïC˜?ì ô?îÀ¢?ðàG@!¡@(Ž6?¹?‚?EK>½ž?°9[?ªÌì?•¼ß?§T«@ KM@\o@nS@“‡?…±?”7 ?õp?í!½?Vèq?kù¶?Ï|?ÑG?—†"?•¢Þ?¸«’? î@¶ä@à‹?Éò?Ô«n?Ì­¿?Ï»Ý?ŠµG?Œ«?|,A?‡#Î@G©â@JTc?ˆ-A?~¶H?Àà ?¿³¦? Ò?Ç"+?†5`?~9Õ?!Ž?‰Nô?G|ç?F‚@ÿb@5 9?¬. +?}‘y?°Qð?¾ßï?¾Ó-?½ïc?àï/?ê*)?eOë>üé ?’¾I?½?@¿@\¦@ Ð¥@·º?¥z°??¥?¶t@âh@3+@r@?Ê@q³ @Y²à@+t@‰§?¯?ð§@;iþ@ i=¼ +À>°¬?zÙ×?“ߤ?ú²?ú·h?ôR?è‘F?Î?Å?ÊÃs?ú(]?úS@ Áá@S?âòi?â+¸?öÑU?ùŠÊ?\lŸ?3Z?Cù?Tb?hÈÒ?„fÌ?Ìô?úá@A¿œ@o©J@ + +2?=ª/?ˆ_?»ä?Çn+?ÎÚ­@GÐ@9èx@"A„?¹`Ð?ÃQÝ?Ý_?åŸÄ@^š@Je?ôî!?þ÷ô?¼[õ?¹c@:Õ@Mýá@$7Å@+v@‹¼@î@M4@ ®q?Æß?“¥v?Èñª?ê?±qÎ?hû‰?–SË?ÐGª?ÁËN?¯)?³ÙE?ž2?™ä? –™?˜™Á?¼²£?¼ ?»?¸xÔ?‘ð?‹*Ø?Òã?ó¬­?ÛCk?Â%€?ûjî@"ð©@ÀÕ@ˆ.@ï?¢ûü?«9Ø?î¸?‹ü?=ļ?2¶#?ŒÝ¦?ŠÈ—?“úa?‰£g?e>é`>ë+­>ñeÚ?•f?ñ3º?º íÒ–?7‹?m–«?e8ñ?]>7?¡âŠ@4µ@<?å)?ßN[@Û[@†?Ë/˜?³xƒ?¦Hh?¨@@p@+”@ ´g?ÐÉŒ?Åe÷?2p”?+?Ù0?ß­?ò¼?ê Ë?lP&?wq?Ÿ`?Ý”è?š}œ>â>Æ—?\ ‘?ið$?¡m?±[È?±]™?¯.C?´Eã?¸?‹Ý?Âk?B¯K?®¿T?ÅF@ =r@*|?²? ? µ-?“߶?Z€„?%Îw?Á2Í@.í@´ ?¢Ï?£ëV?p?iOõ@äF@2–?£ü}?…ìV?µÌQ?Ó}Q?ª‘ß?)<¶?B¢?­=?­0Ô@+s@ Ƹ@Ì@ß[?ú*‹?ä™”?ó@ ú?ü€H?f{?fwã?µ>u?°Éå?XHt?7Òú?–šL?ÆòÕ?½Ë?gÎ?k– @,Gò@(Ô)@9;S@/ªe?bã>æPu?‡Š²?²\-?•¢­?zè(?¤Lý@ð˜?ý@½²@×t?ìÎG?Ü:E?³¦q?¹lü?¤CF?bñû?›þ1@úè?è©?ƒ0?‹Á?œù>ª…z?žî?°€_?ZlÄ?!û?A ì?Gí]?!•>ÇŇ? {a?–JÖ?šÙâ>‡Ð>0ÁC?<~?eº?›dç?©Õ=?¸¦Õ?½Ž„?w€@>¢:>ä~>É<>Å—±?L•q?]aE@$ü¾@. Û?ð¾?Ò?å?‡¸ý?\]6?9ÚÖ×?gV?z¬¥?’ù?§ï¯?¡Ä>>–¬>`=Î&=Ö]>þ¨ä? ¾?²H ?¨£·?.„? jX?š¿/?¢þ`?ÐsG?ÑsU?‡ž?t?{¯ú?bÃ>þÈ£? mø?ï?xp•?I¿“?rŸ?¢îÜ?9q>÷»?Bn‡?ƒ.P>ù¤è>"ª˜=it*>®óz>žŽü?_Þ?›ñ?Œ>»%=½ND=‘*Ø>f€C?.»?Q‡³>ú¸O>¹ +ì=ˆVï@Iâ<@7µ²@-C?5¶?(‚>`&~?f<,áö?¾€@ Ø“?áš°?¥ë?lX?kMÇ?dª?"Ò??-,?=·H>#_P>[©?*ÓW?#Pþ>ñI©>Ú’C>±jn>ÌèÐ>èig?‘>>ó—}>óõf?'T?8òk?ý1? !>û{†>õû?>ðA€>â;j?=jÔ?w1…?Wõ¢?EÄÁ?r‘´?‡ñR?S`Q>ó"ì?ˆÈ?,gñ?S•z?ª ?’ >Ï +?wê?³v?}LR?~Ã?ƒ£É?P?“Cf??§ ?6GE?§Ã?¤’X?6Èg?<å?Cc©?Iå—>Ãq2>›ˆ?»?(Ú=gÓy?Z×D?|ÊF?I? +Ôh?Èq>ÿR>ÿ9{>ÿW¿?#å?0ƒ¨?˜)?¡VØ?žWq?›ZŒ?FóŽ?*šF?RlÒ?b J?•)G?¥ ?®>?·X >‡Ü=d­?ùê@ãË?º4]?£:¯?é?ÿºv?†|%?kÿD?€F?€ì‘?Cߟ?4ÔØ?ƒJ>ñ}>%Ì~=äFÚ?œ'œ?°Ø_>n? =¬j>ôŒs?•<@ h@ „Ö?Õƒ?Èz>’Ô¤>¥å?¦Ä?˜xÁ?,ÐÛ?ATƒ?™H?‚-¿? Q%?¢ â>¶Àð>í|¤?§ng?§ßZ?É¡?tµ? á|?!?ܘ?·Ô?ç{?—ã§?ç±€?¾×?ƒ?1ª?4 +?$ÒØ>óu_?f¶¿?æûî?ÔQð?«\¤?ŸLH?‹Ë?†Ê„?jÓ?RÖË?!”²>¼Æ=!Öe<@’D=<4ø? +À?‚Xà>ûMš>gP?ºÙ?+ö¡?%!®?Œ/˜?­„H?v¯¤?@Xw?;/ ?6 Û>Wd'>ŸƒØ>ÛôÎ?~¼?&?ƒðÝ?‚]ª>—•?®p'?Ä1á?ÝT%?×Äö>LÉÀ>"è~?/eã?8“?a{R?S †?ƒC§?„ u?:2é?I¥?œ—?O>¿iA?/Ê|?캯?¸Õä=y¥$?]M@¼6?Æï3?ÓX? ¿B?ªþ?[§?§–ä?PÀv>ä2>ý‰Õ?Züö?Ä™@ „ï?¼Â0?€Û?¾±O?↦?R.j>¤ùž?¤)©?Ò^î?Ýu¼?éW§?>­U>Þ·è? {?]Ô?î·4@Ù×?(ʤ?»8?¿×?Æ?H¢?bs¯?Ö–-?ÌÞ?°¶Ù?ήõ@GH;@&yÈ?A6?˜j³@+°×@aÖ>PŸ!>î%?„ñ?««?ö‹i?´ö²?JÁ?™y?òà?™¸K? Æ?ä?þI@e@5G¢?¶-?`- ?´?„YÒ?„^Í?„b¶?„h$?„l?WFû?M‹@®ï@bR?Bë?/ +?Ï&ú?ÕPŽ@»@ ùý?C™-?…¨B@¤Æ?å) ?‹QV?†u?‚™$?žU)?Áo»?ŒL,?0õ¸?o C?°Á?Ç }?èÏ ?§\F?„Ùþ?1‚?°Š?6Òe?@Ñ–?™A¬?§f™?‰Q³?„÷?Zb?\[?„ÿm?‘tm@&áL@"'€?Ç‘¢?Ò‚8@`@p”@a“Œ@G—Z@".?ÁÃt?+šú?K ?^Ö? RE>ÍB?˜„?âàŽ?ÂPß?µ”Ð?žt ?Ž”Ó?]ÿ.?H\?<5??:@Aã@ýÑ@pž@r?»ž›?¨c5>[Pè>ÓÌn?ÚH?Åì?…NÅ?Ep*<Ìš>IÆ?µ?I=Œ?Žx?V$g?Ww?+·o?D¦E?š“;?Ç­?¹#e?­¾é?À®¼?È(?¬Ñ?¨Z@?ªˆl?¬¹%@ +J@žÐ?…ša?…WÑ?…V>?¦`"@E9@6ìÕ?Çþå?èuð@#S@›»?Êó-?Æò°?¶oW?uf¹>áÙŸ?ºÎV@Á@Mr@±ò?äø>¹Å?qNœ?Ψ@1Lã@TÝÓ?—?6‹?³Ç#?¹^½?Ù(?Þ7?ψ|?Ýç.@&ð@ k(?r–À?‡û ?Û…ú?ÐÌS?ÅLÄ?šæÝ?ò?–´±?õ¢h@ Qì@ ±@E~ç@cbá?àÄ%?ñ¤?´V?ñÉÊ?’gÊ?Q?õÚ‡@–Ý?óñè?ä²@DúÖ@H=¦?½¤M?²E`@%.(@"q›?¸¥†?Å+Z@¾D@è@l@Cú=¦7?3ž@|@(?W@Bó&@'E?ñ%c?·$F?e}‹?³}f?ÿ7 +@sŸ@!&‚@šƒ?ÎwÃ@9C @fÜ|@)–¨@ E}@`\°@…]é@#Øl@Ûy@„q@—î@Oø;@`o?Ÿø½?ƒð;@¯d@#Yú@ÀÊ?ý¤»?›Î?·¬‡@z«@r4˜@LÄÉ@Dù/@5º@1g(@Å<@ j?Ü_?DoÚ@_-=@\¹-@œ’@Fù@+Jþ@/*:@2E‚@&%é?‡¹?çu?»z ?Æ«ì?ï/@Qµ@7Ñ@@=O$@|ôû@ˆE@’­f@…‰?¾!ù?Ú*V@?Á@5u4?ò€¬?Ü|ß?Q‘¶?o‚Û?ðäJ?åù ?¬—?º«h@ý@ }'?™UV?£â?¸B‘?º}?ÿðö?å÷á?Te­?G†?!6‚?;QÁ?ô0?ïk%?ž.??•$V?ŒT?’Z¼@=…@:øM@R÷µ@NDS@Dl @=gž?Ñ6?ÊCR?Î[.?×ÎO@o@ ɬ?Ýxˆ?ÞË?¡tÿ?›j?˜À?–j’@Dÿ@MŽç?ˆèÚ?)1®?â]Ö?ý½u?¦Þ`?l7?¸·`?¿[ª?‡#?ƒ:í?Ýû»¸?Zw?±%?‡ö>ûbÆ?Jt@Éz@2??ïí†?Àɵ? „Æ?|S@/³"@$Cø?Þã?äõì?úY#?ûÜ®@þ-@ »Æ?û³@^˜?nû—?h¡¤?²…¢?Á;,?xª˜?]š¤?‚e?…í?Ò{S?ôíP?¨ñt?|Ðã?®’Ú?×ô ?è/?¤¨ ?sc-?·j?ŠÄµ?ãO¹?øU@®Î@ +@ ëÑ@|p?íí?Üá?wN„?q¯R>÷ï>÷?Õs7?ÒEa?r¼>öŸ¬?ah=?€Â·?ˆaÖ?_?—ªÑ?ŸWþ?žÕÈ?•ÞK?šPÐ?­‡É?£N„?€á~?£ŸÛ?ù‚ô?Üv”?W¡?qœ?âÔG?éÂË@ãÃ@Óº?ïkÖ?ï’Ü@ÑA@Õ?ját?›¥?˜*P?Áóð?©Še?šÒ´?©£?»f‚?•‚ˆ?#æ¢?CxÞ?_Ú?U ¡?ˆöI?Ï®?µÎ?µº¸?·þ?×ê#@5>;@Jí?a ›{a>ñjÓ?|ç?ÂDé?Â;¯?¸a?¹ŒR?Ê—?¸#ù?—)‡?¥=M?œ?žÓù?¶+?Á>?7qÜ>ïÂ5?@?·¨Ê@³@0o/@ÅÏ?‰?œÐO?³ C?´"?µ„ç?¬˜ÿ?ÿëÿ?õü.@ò@ÊÂ?¦>f?Eî£?iëú?„‹-?j¡Y?4Tû?¥ +I@L3@=Jl?}/u?„žT?J é?`†?Њ?Ì?›·§?¹Ò?üw}@)ßÎ@Œ?ëò?:?¡Úƒ?¤³?Žñÿ?…`N@P—@iCj?ü¾?¢’?­4/?½C?|ÆË>tB>ÎÁ?›Q?x)?Mß/?3ª¶?‘Ú¾?ŸNÝ?'7e>”oè?ç{?ãéÍ?ÔÙ?®¿¸?º+?ý’@àF?°E§?®jg?®[a?®JÍ?¼²Ç?¼ÐQ?ѽB@¢²?ï±µ?|Â?z÷Ž?¦ÒÈ?¬²w?% ?&gŸ?Çô’?ëÁ*?§v?n=Å?TëÆ>ç½>ùƒZ?P3Ë?eÁX?7jå?$6C>ã¡>Óx>â¥.>ú‡?<é?ŽQ˜?™ÃV?œr?˜¶m?Ã!?Èo?\µñ? Ë?Fœ?fS?„¿?³ïM?ÅÖ@Ž@&a?—áÕ?«TÅ?¸.ß?­+?qE ?WrJ?Póó? °ì?{¯a@ZN@Æ3?†¶?@§?[oœ?x¨K?,°¿? Èa?´?Òõ?Ý{M@˜·?ûE?lj«?S2"@[®@ÁS@NÝù@fˆ@Âù?Î#‚?žŽª?hVÇ?Lj3?«>ãpä? P?ý«?Luâ?UƳ?5Ø>ò)´>üî‰?t?1Éè?WD?‚a?„Ÿ'?ZL?;ìÿ?C¿6?/º?`u?l¦C?m¿:?{C°?‡GÇ>Åßó>L?A7¥?nÒW?‡Hc?†Â?¡ —?¦û?lÏ›?J¨>¦ =hÜt>Ÿ?Þ?O/•?4N>ó‰Ñ>ÙÍ>/¹~>K’¾?1h?"Â?yÖ?h9?ÚŽ?:ù ?xœÆ?y.Ú?yÅ?s?-<*?Fýq?li¡?i¬ ?߈?y/?c^?X/z?h^V?Mßø>™Ê>Ë&Ä?£a>˜@è>‘:Ï?-Ë?5ÅÀ?.N>¾³—>uâd?C™l?iz?œ?’?t!þ<M·>9á>×ýé>¼ão>¡wì>ÕÏ>«5 >0D»=®¨:?¬>EõÚ@b÷ù@& ¨?kQ>eõ=Gæ¿>õö[?(|:>ˆ7H?c m?¤?u#{?6÷ˆ?DžÞ?1Z?JZl?Œ/e?ˆ˜¦>z à>>{¼<°æ9€,“>ñ-ò>ÚÙ>˜ö>¾7v?=c+?$øA>ó€ž>óÞoð­?MÐÃ?l7[>Ü–‘>=—è>¼d<>÷¶t?LkK?•Y?š”³?š¾{?Ž(?yVl?‚Í–?Ž3?^– +>,y:>¹8¥?¯=Z?¥´?ó +?Ú?{œP?‚/N?­å+?¦å¤?Tƒó?eñ­?¨¾?Ÿˆ>ŠiÛ>–Š[? B?0!?zÂ!?}öø>\Ù=ÙÐé>ë +÷>ÿ9æ?­+X?³µv?­”o?§rØ?¡Vf?›8Å?`dê?Nìù?“ƒ?žq|?‡‘E?‰\?‚dÃ?€#Ð?QU¼?=ó>± ê>[ú×><Äö=ÉAB?ZçC?us†?Ž½Ã?›Mð?D­ ?<$§?µ&ã?Á-8?gz?LCî?»e„?ÀšZ?ºÊ¯?´üº?•¢Ó?™M8?0@¹?Ö³>ÚF>>à/N?º¿F?Áæó? Ê^?R2@ý@µq?IœP?Yžÿ?=¬`?:»Õ@„'?÷q2=§äo? ˜?’ê>FìÅ>Uàã>çcP>Õš€?1&?!A&?bæD?‚ˆ—?À3?Á%?¼ÑÂ?¬hJ?ëÃ?¬½C@x2@ 7?ˆ¿!?]ä? Y>âk>‹ ,?,¬?Ã*²?µrU?š'å?[§Â>•@í>б?ß÷?w •?»_V?¤e¢?…*?DÍW>ù?A +:?‚Zæ?l¯à?O¦Ý?·u?érQ?c­>½öâ?Ÿ»é?à±è?ŒÞJ?FÒq?L®?Q7Î? \š>ùÀÃ>Z’=úåË>:îä>)Û?Årþ?õù?’Mƒ?‚3Û? œœ>ñÈj?4?*Ô»>Ð2>ðëž>ü„>½×ì?—\?®ò?%ÉV?1#ª?ö”? yÖ?NAâ?ˆí'@V9@ v?{6¦?Vÿ?R-â?>ü>åùÙ?N½J?Çë±?®°ü?-Á?–é?·ê?¶P?¹b?Dr:?aZƒ?Û”U?ºT?«c?œ,¾?†œ?­U?Ë°ç?Ž“?F?ã3@Dj?»°?’Ðí>Ç/Þ>'(™?p?‰V @¶H@"¹"?) ?¼?Á#?-V?q¾?qW†?£ß¶?±^j?òûm@Xb@_Sy@=æ?K‡ã?WƒN?ƒüÏ?’£–?«¹ ? u¢?™Ñ?T:>ˆÄz? \Ä?oaî?Oo?#Ud?]ó?‡[»?úç·@!™›?÷ïï?Ùß ?`“?Q?œ„z?¶Í?a?„bJ?„h½?„l³?Ìm ?ÍÓæ?€Gä?„ëË><<@ l@ ©t?ôrÐ?ðÚæ?׋?ÛgÞ?ò‹?äÇ4?¿õH?‘b‚>ÿ[[?u·?Ç?ߺë?ô©ø?ÔJÉ?»µC?ÊV¸?×=5?D.>¤)5=ÉC’>*™‹>lKI?éV‰@UÙ?jæ?R¥?k§Þ?dŸš?š;™?™¥„?¦Œ[?¡dŽ?¢®.?³TJ?×F»?¾"U?…§?Ý +Õ@F$å@A\Ø@8Ãg?Ê×)>&Ìö?º~/@"•p@˜?Û¡?ÞCØ?Úíº?¯E©?¡g½?‹ìò?…=ð?‚³ý?{£g@ p@‡#?Ë`?ÊB»@ +¿Æ@?N?“vG?ªà@û@)€? +Ñ?Å‹â@&t¾@ ‘D?À:j?ØY™?úÚ?¹\?q\¦?Deˆ?'mC?+ÏÐ?00Ñ?áþ@ ãg?Û"%?ÈÊ@îŠ@ó7?È +n?¼æ²?–D?š"?¯Ì/?¦«í?hðŠ?nÈ?itÈ?{üË?¿×±?ÄøÄ?ËÌv?…ý¨<Õ +‘>óv?Š«>? þ?´‡¨? œ?u¤K?µæ6?ÚH?ü ?¯©c?¡×? L\?ôð›@;W?˜¬²?Š?Ë ‘?Õ=¬?][·?W²¹>ºÄ?«@`¶@  Ã@G°@Fª§@DH@: ?‡ß¢?…—Æ?ƒ ,? ‰??ÍÜé@!_@^ ?@X4—@Vic@%‹™?ÿ`n?æfL?Þí¼?ô?<—V?Ì"Š?é?éBÿ?믖@MÕ@œñ7@¶µ@r÷@9M@.Û3?Mæ3?‹f„@Aµè@,å?|¸ò?Çv!@b#š@J»œ@ô·?çk‹? øÏ?ãn]@ß?ýL!?§8_?òtµ@»?ù‘â?Æ€¸@65@)Ú÷@YZÙ@w«E@M@;îb@·—?ÞÝ@*Ò¤@;úä@=Ò@>y?°Qj?ˆJÞ?•-B?’Æ„?úe"?þ ’?D¢?,ø @Ã@'IH@ƒÂÇ@rEä?÷,ˆ@(f…@¨@@‘¬À@$@Øî?‰¿?‡Šœ@GX@)¸@XÓ@0ˆ"?Ë:@)@„H@hÒ1@Ie@Áª?¶>c?ñþ@“õ?ÍâÔ?ƒ¡?ô +@"-^@#b"@#¯{@+þ@2—™@†÷@—´Ÿ@/€\@VÁ@Žß@%VE?Ñý?´+©?ÊmÄ?Êçº@'Q@29ˆ@kz0@w\@ßf@q@<Ÿ@Cjú@C``@CQý@|²@Ÿ @~@?¡ÚÂ?¢‰_?Ìk?Úsƒ@<ã@=§@>#Ó@8v§?Ä,?ǤD?–Ä?­†¥@b¥@¤â@0S=@-)©?«®â?©Xý@ä@ ½@$üÅ@ õr?þ¨i?÷—?ÂZ?¾®è@eŽ6@{;l@7µ]@0?@…å@ zÆ@-C@Îá@0@< +E@"[)@·Œ?Þ»Ž?ÆÔí?EA†???][??|¿¥?|+W?„E?gàS?\õ?Ÿ.g?½.à@ Ö@5~?â“¡?(šÒ?4ðŒ?@4M?`Pç?‰¡ä?yn^?D‡F?I­Â?{9}?¢ ?¾æ ?Ë‘?䳄?Ó`?®%?°ªŒ?Ž:]?Ž9N?Ë(?ŒL?ðÉþ?õ‹{?œg(?™ž¤>ç>{>¾=8?ˆ1ê?‰ô†?.…ó?§Æ?¡î©?ºæ?­6^?®IÂ?àHò?ö÷ß?ôQ“?òÔö@å@*/ @îY@æÚ?Ø“2?x4§?Ãô%@ ?u@ _©@)Ûœ@$ î@~i?ô)‚?wQ?t€Ó?;Âø?1ŒÒ@ƒ˜@$º?DBû?|\?¥D›?·ß?´[‚?±¸Œ?¯ù?¬oÖ?—b0?Œ2B?£­y?²Tu?’Ï?i?:?¬Ù¤@±Ñ?ÿ3$?æ7\?Ú”?· Ù?ºÏ°?ò“4?ÿµ¬?²G(?²’&?¶Ð¯?¸v~?…=á?hÀ?3¥2?&ö3?‡7G?¥öÇ?ßv @ +g!?ÌÒÐ?Gû?lÍú?» ?¤2B>™)²>ÇdH?¤ô?§¤7?óŒ>ò?›U>ýóÆ?ÂJØ?è Û?›¦Ú?a‚à?@ÕM?.Ña?¨(S@ –@Rå?æ0–?˳[>m>ƒQ?À Ë?·`w?™(Í?ˆ¯¶?; d?$±?²×‘?ëÄ ?a¥{=«2è>£Œ@?Á­?^Vä?ádÆ?åíH@ y¤@ ð +?Ü<¥?çË?î—Â?îi?Ód/?ÅÏ_?¹ª?²7û?ì¨9@ºx@½^?°œ?Ÿr!=ã9=ïoÈ@,t4@&:Ù?2Îø>i?Ü]¨@3ž?­£?`%?‘×?B{~?d¼? ´‹?œÖ:@ X@#Ó?‰GÒ?x` ?òç³@ Am?¦ÄÓ?,µø?nº?™ö?¡?ê£?ç.ú?·rÃ?½ì?¯;œ?¢Ýñ?¹ØV?Ï,r? hf?e?‰qµ?®ÀÎ?¸Î?èÒ¨?èÀ€?×[j?Ó¹é?EXR?%¬E?•‘2?ÃÂN?”ýÜ?O?KŒÁ?··`?«;Á>ó>ëÔ”?UAt?Y€M?êßI@t?ªH/>ç=2?G ø?¯äJ?“ +F>²•>•¸?Átì?Ĉ>ÔiA=7>…¾>椺?BœÕ?£#ß?¸aç@ ò@ q?Îè ?Éû%?:Þµ?î?‚«M?/´?©îŽ?Ó@d?»Æ>òô%?qè?¤}? ›E@ )œ@+˜ä?ÍÂ>?mîj?rƒl?‰5?‰Uè?ŽÖZ?ŽŒÖ?ìO¤?èMì?² î?§ŽQ?2ìu>æØ­?¨g¦@]g?Ó¯?lá·?„½?®ì?ºÜq@t@º1>œ+Ä?O½G?›Ä¾?­$?Ðë¢?­_æ>°M>zI?)•?BÅ?œ]Ó?®ˆÁ?Î x?ÑEü?Ü̼?ß|?Ìrü?ËDˆ?œ±¶>‘}§?Ês?¾0›?¶Ïw?l­?lùP?mFa?mŒ>--?*›Á?nÙj?t7?Ÿ\+?íb@¾Í@X?ò g?’ =>Ì~Þ?¢¸ ?—:©?u?Wr?"ù?'¾Ò?uxR?Šù?õ?à®Á?b j?R±Õ?(Q?9¿N?yÖ¾?gpÜ> (§>%Y?tW?Þµ>ý—ç?2Ï?j?T%>_øa>@ùÆ>5šx?¯™>“]`>ŠÉ?J(?ÕH?5ZM>¾Õx>—ºU>²Ïö>ÜÇC?éë¨?íÎ?‚1?Jr²?c“?æÁ? mÁ>¤[Â>@!ä?ªÅ>í¬>>Hæ9>ò¿R>$?‹>j @OC½@wkÓ@•þ?ÝN=?J¸O? Èd?_rÏ>ÀdF@g@@#ÅÎ?¸>ö•¤?‘¨?„Ã?…?‰\m?0.ò?>Fç>Ýw=`»?-æ9?hIŽ?…q>ÍÈ–?CÃö?•Þ¸?K®\>2¥†>Ðáª?–†?1Þ>ójè>ô¶ð>‘Ž¯>lOs?¨¥?·ãæ>–6<5™?…‚.?³¢\?‚w?GsÍ?Lu?R~Y?bÍÄ?x?1?‰ ß?œOy?’ Ž?yNm?—í(?̘ˆ?´hj?zF?@œ>;þâ?vÁC?rX’?{™/?s%ï?:š¦?B);>üfå?—Þ?“H„?ž}¬?/ž?êä>447>ûp?‹àÿ?Œ?’Ð?Œ¿a?ïÝ?µ§?yò(?…–?,—š?/E´?‰Ôc?‘ÒJ>׊2>Âœ\?¸ql?ÂßP?ŸK•?’)‚?–~s?•sû?š–¦?¡å|?½fé?Àˆ“?èæÑ?÷V¡>z>7=7¨>ýpS?Q—?2M?¸?Šb?•Š©?ƒ%)?€àœ?n?‚FÊ?Ž Ä?™Ëð?fg?R µ?~­t?(Æ>š„©>O}Ë?±Çœ?¼'Ð?€ó«?{ew>:Óˆ>¡F@ +¯·@\?#ø?7•[?Ù8Í?ÏVÒ>Ìa>¦nü?…FÚ?‰-Ð?e¢F?j§Æ?¯-W?¨<Ó?g×{?H9…=„ñ‚>mk‚?Øò?M«=‰5˜>äpˆ?ºŒŽ?²ÿP?«m×?ª?•H?ŠGv?R¯L?4nj?Ü?vä?à¹h?ÓãY?Ã<Ò?Ÿür?^·?dŤ§?R&¤?oÀJ?O¥?³¡?6?rï?uĘ?|$ß?w¶?rò?UA¯?I*?ÕÅÅ?ˆkD?ÚN„?œ:‘?R?fÄ?L?˜§E?¡h&?Ôm?íã÷?€¨•?,7³?º??Ôíì?‡ ?q²ò?»WÒ?Å|s?"SÔ?R +?~??DÓ=Ta>= +?ñ­D?ㆴ?ƒÓÛ?‚1©?~Qñ?–uË?ègº?áM°?¨ý?¥Â?£pÊ?¼Ý®8?·Ý?`º˜?s*í>ãÀr>¸#`@ œ@¬’@ +@±à?eèW?iZ‹>y¯>—j=?qÇŠ?q˜ ?ÆÑ«?¿D§?œ¨•?³¼?øªt?Údý?„¤à?ŠÃI?“˜_?3‡b<»CZ>vÇ? Í¿?ªtW@Äq?Ä°?Ýb?Ó·É?úÖ?²+ç?Šûë?ÅFI?Ñ)Š? >•^7@­ß@6úK?“AÏ?v{k?p³?ò?±ÔË?¾ö›@  ×?ê×é?6'@*zý@ Å&?…$?]ûë?Y|?†þÛ?ØJ¬?«§é?ba»?²¢î?ó°?ù?÷‰$@ãP@Üc?ð&?Òÿí?±u?§µ@ !ö@J?ªKƒ?žèÁ?ÇLÔ?ÅË?˜P´?œË @CÖå@L—9@,oø@pŒ?ä(¼?½>Ò?Åõ?ÇaI?ÀV=?·«û?÷3›@ÛS?í +C?å®<@;-@þ @Kä8@RÖÉ@JÊ;@A_>õ¼y?5Â@+[s@C?- á?Sø?b ? !‹?˜÷?BØ£?„¼?ÔB@%”ã@…?ùž×@-Î,@]ç]@%¥ ?ðÛG@'`g@Fp¹@:±@5é?ù¥ ?Í‘d?æIð?ï2M@ øM@S+@ +ä@ R @DG(@N @Ñ=@)?«×?€„¨?…K­?|áå?Ñ?P–@?ëÝÖ?åEœ?¨E?êÜT@“ç+@…c‚@$€è@*‰?Uk´?~?â[Ç@\@dIk@}õ/@“v4@“3@’h½@Yê“@A?îng?Î&Y?¡ˆ×?ƒ"»?š€¨?¢ËV?±ì(?Â}.?îÖY@R\@Aþ˜@]ùÉ?í`G?§àÜ@óS@»@@µÌ?둇?Ô‹t?ÛêŸ?à€š@&‰)@3ýÏ@ké@r/@=Z@7Æa@/Ý@0@¢@J!A@Jº|?n2?Z}³?eœ„?K'b@]î£@`fÒ?„È?‘>Ö@;â@1Üó?;^¼?aãß@"2"@ÝÜ@±@¨‚@žm@–Z@4ˇ@.Ö@h?ðêí?g`?x*i?ùã?ýÔb?éÿ7?ãÜ?Ñi#?à!@!bO@S?ܽE?Ù±Ê?úÒ:@NC@#‡¢@UL?Íî?&ÉÕ?µÒâ?³ˆõ?±D?¤Ùå?XÖ£?…$C@ ÌŽ@\@IÍ@;ë÷?¡Úý?§úÂ?Ài!?²bŸ?+•Ï?Rs@Ó?þy ?óaõ?þpw@$ ×@" ß@/=@Éð?þg‹?ó®Š?t°?‰s@v@À˜@K™@X?ë¶E?é„@sA@!@:cï@=»€@¼ @”?ÛÑ¿?Öƒ+?ÀgÄ?¾ý?Ê?ÒÑ@)òƒ@;Õ?­ë»?„(ü>T8)<, #?Éþ÷@²â?β&?½Ô?3Œ>Ç:>“Ö»>ž?^g?ö"?k6>ŽÈ‘?Ñö?Ü+¾?ìòÖ?üV?Óf/?©,?Êè@?ï$m?Ûïw?ȸÓ@÷á@1§~@ ¨?‚œG?ïB/@tï@Cv?‹ä¾?­X@ +¬y?öÙo?zˆq?lWŸ>ú^–? k?fßp?r+?»Þ?»q°?˜ßT?”Æ@ +3®@{6>ˆ?„—Œ?»ã?áL¡?ø©@N@:W@Eä­@Qnå@ÍŒ?NÓö?›`w@eÖ?þ*§?Øe¬?ñ8ç@o×@ +6ý?Lüe?\vy?¹YÀ?¹IQ?{~? I?¤™Ô?²^Å@ŒÏ@5ä?ÿãó?ïI ?¦[Ò?‡(„?€Ÿ?uÝ¿?æ?§Å¸?º˜?Ä28?ï@)·ò@Ó@ûý?û$¢?·£ +?®ûa>ûÍÚ>Æ­'?•²k?ŒšS?±æA?·õ?†h`?sé?—ì6? æ?¬U?¶Ÿ‚?Ô‘÷?øæ›@]™@ úþ?åG½?rÛr?Wb>±æ>Ñ+k?¼R?±Ü>ü]ž>òC?X%Ñ?l,r?rl8?{Ü©@ÎG@$ÎZ?¸]9>ñ=»?ŒÕ;@-ñ?äe ?‘fN?€ >uJ1>¶@7o@#±@¤½@ÉŽ?» ?¡2d?ªã ?°%B?%6">BN7>ï²?$Ûw?’çÓ?›#8?²'ÿ?ºòŸ?n·/?nIè?•Z©?¢µø?›ØŸ?¡k²?¯?²9Ò@°B@>(Ä@ëÇ?i.+?~Ï?£Q3?š›?xäw?{?‘ (?‰®@j@ ¾®?Å«?â•?h‡>ë¹T?Uº@ <ñ@ +æÎ?¸ä?´¿ÿ?{¤?jòÁ?§ðõ?¿êÆ?«Ž?“7Ì?dºú?&D‰?~†¿?ê+?á$?8yV?>ô7@O4@ÿÇ?Œ·Ó?†¦? ³Á>ûÒ3?JK™?®ÃE?¹Šò?èÕ?ç¸,?`‹û?tÉ÷>Çïí>oŽ?BŒu?~7œ?HRd?' y?{µk?Þ¹]?ÙK\?tñH?f1?@[¬@1ž?Ö‡É?Ëc?¾Œ5?¥ÇÛ?³Ûj?çJZ?Ü=?g?fòý?â„?õ°?ou]?×{?ÞSÆ@%=?ßE‘?“Á?=¥Ö?“© ?¦WK@C*@bÚ?3ûµ>¦JÎ?Æÿ`@Œå?Æ6~>æP™?@)?â‘?ÕaL?¬»†?¬¿ ?ælŒ@ ?ɪF?¬À?š1C?ƒ3?£G?æ~=?ì £@€·@—Ñ?*óß? DÉ>ûçd>æÚ±?Gkû?•¾·?h +H>zùÂ>º  ?;¶9?*Í ?ge€?g¡5? Êç>çÔ¦>Ôè>¼ŽÁ?.Ó?‡Ì^?§È°?çg_?ÚÐ.?hõ/?iÂá?—~? @»?n¨?kJ.@ +Ôã@&"t?ÎóI?†þ?ƒCÒ?fc?+ö¾>œ[&?àeä?ßzi?q¨?m›?Údó?׆%?–o>šžù?~?5=›??„Ï?Ißd?b5?pQx?äB’@4y@ “F?–b?w Ø?LØ-?‚™ê?¶º0?³Ÿ>?ŸÇ0?‘Lâ?u†E?vÈ?|ž°?uPÝ>FðY>š f>ø½Ñ? I?yæä?h®s>»°š? Ö?¹@?³j?rCÚ?Tø>ÿ >ÂË>Å>ÜŒô>Šm/8øÉ>3ü?X„?Ç?4\> –7>S„ >õV=Ó©Æ=PZ<“'=œ7”?ײ?§C?*]Ò>„Bß?$j?5Ôð>á¿>Ó@a<]Í<¸¾¨=Èv=H"Ø="›±>&~=sÎâ> #@ Z@ˆý@ÖÍ>ÉS°> –°>Ö2l? õP?ä¨*@ b™?€öÝ>…˜?Ù?”ÞE?|ƒ>”N>“¢µ>¾|¼>Ú½u=É€<ìÏ?\à ?¢°‰?r C?6¥½?û*>˜+}>À.J?3Ì?1ƒS>óRk?Õ†?Œq?ˆèŸ?©ÒÏ?¯Ò!?Âd>õ½?\V#?€}'>Öºø>?g>tΔ>•j>¯¿>Êf >å>ÿª?9Aš?yED?¢lV?èŽÜ?É­ú?z?þ?9KT>YBm?{)?gw?7?Z,>üG>é$>,ë>vŠ^?D¯Ü?Skã@2J@Z)>ýx¨>þò­?­Çå?±cÓ?Õm?âÿŒ?†Ã•?®ƒ=´Ve=¶Ý>ó|g>ÿ!î?Õ“]?Û&¼??h$?on?ï’+?ÿâ4?ÈŽX?ÉH‰?ÁÅÛ?À<®?Žáü?z’-?—?¤Èó?6Áí?ì®?tÁ}?uäZ? +*¯?¦)>ô6=ëðX?pÅÕ?€ÏÙ>Òšs>ÔÏ#? dH>ÿÜh?+Êþ?Ýi?¼m?ÁªL?cw?eNÂ?©·à?°/?>ÿ‚ëÙ€>üz?Ù?Ôþg?}å?šä?\Ð?^f^?—Æ?žæ?¤€?f—?©l^?¢è?\då?\’8?9¸î?*k ?¹À?%{?}ÝÅ?€ú¢?xð?wÕ—?Š%~?¨kù?è£R?§#Ú>˜èÝ?-¨ò?ª‰÷?‚ïm?¬?fç6?ÈÕ?ßx5?ó÷ ?™â§>¸Y­>þ7?ŸŽ?M¥§?‚GË?¡6t?Àaƒ?¬Î?Á$$?nV?`‰?Ó%?5öÏ?jÙ`?‚r?‚u‚?‚y¹?`Ï?dIÚ>åä>†ãm?…ÎR?©xJ?2Æ?>\õ§>7?§™?.Êæ?3P3?&KB?€•ï?ƒŒÒ?‚´K?‚Ç©?ô~?ñYV>BH#>uf?Ý”?áA?æ²?#p7?ß…&?Ê™Ü?x—?+- ?Ÿf?š +»?‡Öù?V>“ói>Ü£G?Txô?8 s?n->ÀØâ<î¡8>W?$¼>³jq>{? 4ƒ@ßü?´_X?S?,íŸ?W9Ì?”‚Ã?«Gy?–ã¶?‡ØÀ?¯Ù¢?Å6Â?_Ó?’^„?J~ ?4vP?×)ì?÷NS?‹Ìj?\lï?³M?¿%Ó?‡Øé?ƒ³l=,2”=š{˜?p,?[Mþ>©Îœ>óßX?ƒÕ,?cd> ">Xp#>Æ3¿? æ?yÜ¢?‹Úm?¦(Ò?¥çC?Ÿ+ ?!q?.2+?IJB?dˆë?6¸¼?"Æ?—i€?æ2?²l?ˆª@(,@"#?¹9?} +?ÙuK?óîÉ?¯ï‰?™¤•?놾@¢?ô^?öõl>¿•C>”>xh!>¾¢Ÿ?êc·?çð ?ÆÐ*?®¦L?’¦?:Ã?µô\?¤¹?pt½?¢S¶?ñº&?±¡®??¾Ã;@"µÁ?áÏ:?‘÷?¬ëâ?¼Š ?í@¯@Ó;?Û>·?ÇGð@2C@ø?è>evI@Íg@&- ?ì×½?ä>ÖÞ¼>Ü*?›®?§i†@ ÓÇ?ô×ü>ÒÑ!?rG@6,÷@kì?…§?ÍKÝ@$º¤@=n¥@^ϵ?å>9>~f?Ô¥w@2Î3?Íi>?s¡Ó?Ír1?õ|$@•‹@æà?ÛT?ÇÚ§@{½@U?ÎëY?Èoœ?÷¸Z?ñ¾Ü?Ûm?Ù®;¡?1Zà?eL“?…Y@¿T@YBŽ@ý£?®MÑ@!n@?Š¼?»e=?…[6?…[¯?…[(?‰µà?Ž’ +?ÇWX?¿ž>1ƒ»>Ò;Í@.C@¹]?’Óz?¾Ä@&¬U?îCÉ>ø¢>ŠK?>°vW=Ó\>¸®?È?Ÿ“¹?â6?ð7Ö?ü&4?¸É:?›Ù@1ñ@J«?ؘz?ÇÜ>Íú>Šå˜?–??”V?7ùÌ?Umj@<ï@>@ä[?ò" +>Fš¦?»„?ßò2?Ç^[?—÷ø?e¢™? ª³@«@‘§Y@dÆ-@+Ë@€å?Õq@âä@ +É?Þ__?ÇbÑ?ÙÜŠ?â80?ä[ ?æ{*?è›Æ?ê¸?ŸÃj?’D€?õVÔ?ôT @¾ö@$k?é¸@Z¹@RŒ@AmX@£¤?üâ*?Ò£û?µ_|?‚´5?Äö’@iÌ@*†J@A{;?þ¢µ?\æ.?Âo@ `9@!|@/,±@<ï½@Frù@<_ò@6kƒ?®s?Lž)?ð ë@ €®?ùq?ð¶ü?ÃÙö?¶ö„?ú5?ø¨9?åô£?Þ«Ÿ?? «?Éœ[?ÊóQ?ÿi?ò,?ŧá?ÃâÖ?º^?¿B?âYýË?ýµõ?ŽBw@\‡@[/æ@ŒÔ?‘̈@±@"‹(?Ð%?¤?ˆª?oÂ$?ꤌ@ +cå?äu˜?ן‚@˜â@Rœ?jœÒ?)z?뙵@A@?M@L8À@?!@:è|@BÎ&@=2@/ôd@62&?6B>­Ö@\z@`á@õ…@£5@®?ú`•?•3Ä?Ÿ?°_+?¶}@"3ç@rÒ?Ôx¸?ÉIJ?2i³?h…À@ 0@2ÿ@C‡m@3 D?«‰?ªÎ+?TW?—ß@ #±@ ½ò?ò[c@‹ÿ@2Å3@6\Ÿ@Z¨¬@=ñø? à­?[¦@!<@ ?ÎÕ? +º?‹­F?–1?Àþq?¶ ?€”q?•õæ@€b?ôƤ?¹×—?¾Æ‰?¾c?®l?a·å?j\¤?T^‘?{Ô?î¹¢?è¼S?³ ¢?ÏP1@Ho)@;ý*?ÇÇR?½Cð?±ä?˜hc@4Öš@-lã@›@f2?ÿ"E?üñ?¥sx?¬š@C#@5Z@(-@‚?à€¼?ÛÃ?ãW|?æ(Þ?ÕÛ +?Òµ?wŸ€?X/ >á8p>£î?§bG?¾3V?5M’?š0?iÄ?†q?±­M?½Öß@@m@µ?¾q+?ˆw?ãS4@Z6?¹³á?†îœ??ž²ª?ŵÅ?á¢x@d@¯˜@ÁL@fy@#@æû?÷/?ÚW?ÜQQ?ó7Y?ú¢Q@ä@ +à@5Q@ðh@µ@‹½?«=ü?›ÈÍ>úac?² ?E•Ø?D(¶?»û?»u??»_z?»QL?¹/=?À0@'–@ +ç¯?ˆr)?T ¦@:A@n"ó@"G+?øÏ?¯€é?‡›ð@c‡@:ZÆ@1½)@*š@0’?Î÷¿?¶ì!?•„»?«6V?Ù'f@Ùg@Pî@8à¦>÷V¨?Ë?É{ë?ÆΨ?‘?ŒY9?1º„?ü?ÜMú?øMY@„Ÿ@o}?øÞ?Ýט?ƒÓ?‡G?yž?¡É×@¶@~}K@P ›@ Ï?÷ÒŒ? ¨ä?¦Å”?·§=?¿Ù@ _à@÷6@,j'@0p?Æ•½?·?´M?°ÝF?UÐ?'³¢?‘á7?¶¢ü?ŒÓ£?R§ ?«d@¨¤?Ù!C?;£¼?^5c?¥Œi?­üö@ôV@!õ?,›;?"J?ö¦?Åê+\>þÐd?ýc‰@t?bªÇ?RAÛ?4s? +X?M§Ú?oè?o#?f‰?_Xv?^ÍÕ³”>–Y?7¹?‹ûˆ?Ž‚¤?„Ý?9#<óbÁ>/åÜ?wBë?~h!?Êåè?Á‘?WŸ?H>>?Õ¤{@nÓ?Ù2?°õÇ?”G?EÊ?lÕz?ÐŒ?Ø ?ëLì?ë(å?êZµ?æýè?½ Ä?°m@ ÝÐ@/—Ø?ù*¼?_ã?}Ï>?ËUÊ?ÇŸ(?UÏ?HœÄ?ñ½@² ?À¦?§b?ÎòT?êJ¦?Ðùï?®Æ ?Ãë<@ —*@6³?Cmw?<‘<>þHÒ>èe +?¬^L?è=¨?táä>Õ +?¶z=pP?1@“ø?åN&>æ„Ù>è‹?Âð?Íd§?d÷O?>t?Ôñh@,?ÙU ?!¦—?Mí?æOA?ßw?)?*Ïü?ÂRU?Дå?‘Î8?fh!?EÃÛ?¸?dƒÚ?Ú˜f?ç_#@#mD@+äñ?µ·ø?žè>ÉJM=ûX–> ]Ì>æþ>¼3>KÂ>¹_5?œ‰[? w³?xtg?p4?ÕŠ?Ýàû?Ñp?Ä:?«Mù?™…5?³ò÷?ç–?ÇÊE?A˜˜?I4/? +#¾?6g=¤›<Øj€? çø?ab>ý.ë> ËÉ? +ó?jÐ1?A¾ >ï((>þ„(?‘Òà?¡'Û?±‡Ñ?¯!˜>”ˆ >Ƨž>ð->îAI?‚a.?ë?F<5? ?F׌?pZÌ?”òå?¹«ó?€{°>Ž‹>Óí™>òÊï?+˜?šøÂ?¥ +Ÿ?Á2Ã?¾˜²?hí½?sÀ?vŸ|?VGö=Å]e?Eàü?;¯c?Fõ?8rW> ¦4?|oE?k[¯? ÿ#? à>ÃÜ>`4õ>š>º =äëC>9·.?ßi?y§“>ྒྷ=ûž\>ÌC ?A&?dÕ?fR? f?ݳ>ûèg?è³>òp>ІA>ý‡ò>‡æú?_¿?HdŠ>RÑ->Ø¡ì>nQ>ìx8@=–Û@@q@>ÿ>…–S?,ûü??cµ?ú'y@ -)?–/ß?;EY>êà>q>w]T>.*S>k=ïõ¹=¹££=ƒ;g=y±<3Âû?*kJ?€Ä??9Þ^>ðØÂ>ñBj>ñ­d>É‚à>j• >«÷_?*ãª?3‰$?¶üô?·B–?†ç?‚z3? +Ó>õ·Ÿ>Íï=ªÝp?›¦?Æìø@ hF@=Y?¦]ã?ÊO>…i•>®¢ì?Iä??€·?ª"‹?˜z?dß*?*¸ò=ý(<`®=ñL>±€ö?«7+?‹‚‹=òúð>_=??%áç?$m>àf%?šx?ÉÌ?Íb>£b‹>º ²?}ι?{šç9ÆNp9ÙĬ?µÃ!?½O6?>è)¾?©|f?§‘ ?ƒ?£ãK?Ó5Î?Ϲ?”ÒÑ?›JÎ?Ÿ\ô?›„î?«x?•zÜ?ð(@¬v>©t)>íÓ?ÞgK?÷'?Šk?€’b?vc9?oÞ¾?›°p?•?)%ñ?* N?$ ?¯ú?9Zõ?AÒé?¢èÁ?§YW?ªN??­?k +M?V^P>ÓŠà>ãÁõ?%Í?5¾?ù?jZ=4Ù>\t?ŒÌ?„ >A>Eîú?Ž ?Ž?‰±s?ä:?¼-G?¤¾?Pèr?O#ˆ?)‘?D=Ò?¦pr?¢@"?Öd?f .? ?zÝ? ž>ÔNX>É8?Þ|?Ђp?›ó%>¸Aä?dCQ?ë‡?¨?w? |?H€l?°œ‡@ +07?´æä>æ_Ò?Rçö?ž?‚X–?bE?…Iƒ?Œ.??„aq?„‰Ð>ä=n/,?œÁ?kw?9rŸ?&GÇ>Üö+>¸ÿn? à?Ãã? lˆ>þ4Õ?d‚\?‚•ï?#¸?Ÿ?¢¾?¥³?šœð?­|ß?õ(9?ÿ@p?Á§.?Áân?Âw?¿ÛÏ?d9?˜ ù?Öû?Ư?dÝ?h2?˜«`?ª_O@ À@þ!>†ŒÂ>¶k.?\ü?‘íO?î]?Ø€ô?•Ù?¨GÊ?Ü®?Ÿw?Œâ?`Ê? :Q>¢T±<"$>éjÚ?nEe?¤í1?Ú͸?Â3®?¥b8?»âk?È¿?©¾h?œç[?Ñ ²?è‰â?Ï?Å7”?™J>Ÿñ>[Ÿš>'ß5?¦PÁ?Åb @ á&@`¢?‚¬?lŸ¦?‹‘€?‡Š@?‚0{?u¸É?Ó–?/k?^ƒ‘?j‰?¶ÀÊ?¥5(?8äˆ?pÄ>gì­?M¦ô?GJ?Gœv?QY™?gU?L?? ->Ú;>¿d?Ù>?:X–>š3Y?^7#?¹u‡@!G@E ?ú«æ?Áñ@„µ@ j?ÛŽ°?Æ…?ÆŽq?Æ’Î?œä#?œ0u?›¯>þ»•=ô…ñ?§»é?ª ï?¬YÂ?€¶?0eƒ?:+q?fxÔ?Jã?¤û?¨u?«X?h-»?»ÇÃ?¥è?ˆ`É?ª©!?ÁrS?6ܦ>u{¸?"†$?]B?R*¤?Q×?¡¦?´a ?¥ˆ5?˜Ñ¹?×À]?ç*c?̆x?ͶÝ?SêY?jè?Þ ?ϵl?…‰?¢éª@ Ü9?øD±? “ +?—Õ{?Ž…7?ˆ¥Â?†A0?È<7@ Ô?Çòj?eÿ?–¸‡?»<¥?±r?£å£?¼Ô?ÇÏË@&ûô@:pª@,?ëA‚?­ª’?¨ç\?«.?¯›Ù@;«@ Š?â¤â?ì_O@L¤?þüæ?Ó#Y?ïZx@ÞÓ?é4p?Œw?:9f?€cÍ?›Å„?ºIÍ?ùz@Ò@8½@Aš?Ò» ?´ ?¡Äâ?¤&)?Œö×?…[Ç?¤i>?¦îÈ?M ã?@( ?â¶5?Ú‹?`À?Œ-C@5´ú@'„x?Èû?áÑ^@@‹@ìÿ@³t?¼²w? +>‘·ë?A¬M?·t2?Ÿã?‘áA?µpW?ÇìW?mÇ?/ÈD?â¦}@BŒ?²K?£'€?[¡?BGÞ@-Õ¶@,%2?…3¿?˜èÊ@26X@2æ’@-â„@;ã?…"ê?Ñ’ó@K÷@U"è@héˆ@A[t@GÜ@ø@-³?à&ò? „—?¹C@?Ç}ƒ@.­n@Væ@)?óÄ@(­¯@3Ì@ ó@Ek@U@ k?í¬±?î~w@$ô@–(@À?ú ñ?h½Í?¬™Y@kC™@XXš@ÆË@q‘@a3Á@&b9?c?rA?Ò @‡@bÚ;@ƒ"@’q–@Ší@…š@EÃË@2Ì@Z—@ ñG@(3@5 +>?‘°å?6k@"$S@F>±@>—õ@:åä@8¸Œ@6†O@U +H@YàG@Lÿ@Híà?Ì•.?Ñ´|@#ª @$FÐ@#”ô@&ƒH@;šd@(kV?Å–?ÚYö@ @ Æ @æW@N¡?ËI¤@Z@t8Ò@^7k@5˜±@PÅ@€‰@<Úê?ÌúŸ?ò,¥@ +åß?ºËŸ?f›?¹j?ço¡?òü?þèd@Oj@€=@AÒ@‘x@è?‚â—?3E?Ø?ا@Á?é&p?«žt?ÃÒ©@T¤l@I°[@/{m@ Mñ?<»~?[ß'?Í +)?Ék$?ÖµÞ?Ñx4?ÁŶ?úîÔ@„`@w³…@,šj@îT?Ô`?Òjé@¾‡?á||?ÏÏ?W²?€¾¶?Ÿ +Â@Ìÿ@‚U?­h”?«„;?°VÀ?Åî@è$@4¬?á`.?¾L™> –?Y¼?p«?Ò??Ä»õ?€ ¡?®œ{@w®@mÀ\@kü@žr?þ[?û:™@Îw@R2?ɱ?ËIé?Í€(?ÒmN@V?þð!?í•¿?òUU@ 9@Tù?ÿ¹?þkK@þÛ@g?êä?êXT?ü‚T?ýïð?Ðpo?ÓÁ?´?²vk?¹Ýá?¼Ø@B£@Tt@:Ì_@1af?þ«“?äšX@,e@##´@½R@á“@ ¸h@ÊŒ?ñ ¦?Üd?ç,Å?òg‹@ cv@‡?¿²Õ>ûÃì?¤6Í@Ú­@+@PŠü@Æ?? +??Q¢ã?¾j¦@@†;a@i$É@9?ú™?»éÖ?«/k>úeS?zá?êC??çò×@vÿ?Õ¸?ºÆê?áN?øc'@ •@g@ëÖ@ Ž¸?Û…(?x×?Ü ?¥ ??¦Å? sì?Ìïú@Jµ@Ï@5¤@`ù>¢Lâ>ßdó?ƪ@?Ï5ý@ˆÄ@ì(@/@ÏË@Ó¥@(Ä?­Õ¾??ýku@ÀJ?•Ì6>õáW?×x‚@)ýØ@BåE@lŒ@;ûŸ?¼}î?Âxj?¿Ý‰?°Â•?” ¶?›^?Ãþt?ÁW?°1™?²ÈÓ?~eV?uáÜ?IV? ¹?Þ¢>óÃ?Ns?=†?¤á?ÖÅ›?µE?•T¥?šš?gr ?”ı@Q·@nJ?„y4?ŒÂŸ?µ®š?µ˜?µ„Ÿ?µr%?µ2‘?µE¬?ZÞ™?­Í?hða?Š¢“?ÄÕ¾@ Å?åÑÔ?pÓç?p±m?p–?x‰I?´Gü?´0G?GèÌ?2Ÿ ?v­?€Áñ?{?uŸ?º»â?ê?`?Ÿ^¿?d:?iÊÙ?àš¤?ã[a@nu@\>@^Ø@"Å´?ØlÛ?À‘?GÜr?}‹H?n„?’85?Qjk?i“Z?Ýí?ä'ç?´×g?²«>@ˆW@ âK@ì +@ 3ä@¢$?Ô—'?À…`?‘N ?™Ž?Ç&,?Ã̶?°Ñ­?¯8ñ?xã2?[#|?Îxï@_j?߸?tp ?[y>ø‰x?DÓ>™ŒÞ>´¸??ŠŠÞ?0Ñ?·óí?Òr?l¡º=íÿ™?ì^?çëŒ?Ú3ª?eDz?si…?igR?gˆ?¨Þ?½¢l?Ê¥?ÐÍ?µÀ÷?”â?™ª@?„ãé?Œ.@4@< e?þÆè?âìr?ŸÖt?SÖ?r‘Ô?£Æõ?Ë©¿@õA@1¤?fuÙ?fn¼>õÔ>™Ìù? +ºœ?8]¸?ÉŠ@(ò«@ëh=Ųþ>€??P‘V?H½þ?DX?5d™?ƒwŠ?Ž2`?~ô?frÐ?ˆ_U?·ÖA?©‡? +„>ôë×?h/?w¤è?Fe?$?SÛ¨?vUç)M? +ÅR?gV'?jTu?­§:?­½ì?ß+h?çÜŠ@š×@ +û?µV?KÇÏ?—èç?ì +ç?Øš¶?>˜ˆ?.6z?V9~?_v9?lrr?^oø? L">êS‡?sì¡?•I|?[ò:?8 ¢?rŽ?ž%6?‹Ç&>‘æ5>yQÉ?²Pi?±Ë‰?Nÿo?6vŠ?„p¥?ƒI9?»Œ½?ÔûW?‹˜Ý?O¼?e¥?pd!?•Â?´ãð?¾Rn?¼[?l™Ê>?ØÒ>¼‹??NX??}¦?j÷?âØó?LÉë@/©?î6>Ý?xÛo?pOl?,†„?ùA=ĶŸ>GË?zZ‰?{W?jÿC?C@÷>©>±>±s^?PD>«€ ? Æ!?·?a?¢]Ô?‚ Û?hÍ??°.>°R8>wÖ²?GY?…Wó?,sí? ú<¢{>¾£?–ô>Ÿ >0>x­>?Ä>È:?oŠv?NùN=+gp=“xH?ˆþ@=½|@iW@„†>\3}> +ü>¿‘I?Gg?X÷Ì>)kú@KŽR@OÛÉ?¡>?#o>Þëš>cC6>Ý-?Liú?1`2>쎿>í >íŒ>î!>ö‹†>æÞÒ>ûÁ? ¡Í?9F«?Q]Ç?p*?ˆÅ?-1=æ‹?êÐ?62?¶ìX?¶Û?¬;ø?¯ÕÖ? ¥O>õ§=¥X+>Wá8>Àôd?x½?®6¯?–ÉQ?xƒ>åÁ>m Ô>ù3|?ž?5'?CQ>Ï™¿>í˜K?«|>º„> 2Ö? Ä*? 5>¿0??§¦P?ž!9?RÒ€?F/P?qÛK?_©?(}>ûwð?%`?‡†”=Ÿ’=vmì>ï>þÿë?õár?÷?=àÃ?+ ©>¼t“>Ãñ?Jmç?[Qì?ø€?} @-@±?°D?þÿ?Šj+?_]?`•=.\>mß•?öw?ë?Ðì¿)>þ—)?wÓ?|v‰??^è?-3?‘ÿ?ø“?rŽˆ?‰†E?ÈI%?Ǩï?ø?~Þd?[âõ?qÉõ?ˆD˜?‚‰K?“Wd?Šú+?ãa?·?w?Ù@@GÑ„@(by?ö¬Å?² ×? ¦?5$¤?‰¯c?c_?‡ò”?L‡?'s?/€8?r;K?‹ØK?œå?ÌT?örü?b÷T?¬èÝ@ï”?õ{P?Á ?Z°Ù>çÖ¢?QGS?‚mÃ?+Ô!?ug?eÚ?~é?mŸ?‚‡x?‚Šd?‚æ?Uùé?Oy?8ïÖ?.^?(ûí?#â{?8?0¼&?³B¯?½§?!"? ·=RØ=Ô1ß?ÈŸ?)à…@Öƒ?ú?‚à)?~×Ó?Y9þ?yÙ?Æeá?½ý%?FÍ?#ø>g˜??*†?ô…?Ü‚?±Ž­?‡ôF>Í­ô?V®?Ä»C?©ÑØ?ƒ0*?¿(/@‚Ø?Þè.?¿Ö?ß3y?ûóŽ?¾†R?’Ò±?¼ðÉ?Ùd¤?‡<²?5Ç-?ƒ:!?›Èö?»±ñ?Å7?°>PÊJ>æÕÐ?ŒÛ?‘|?¤Nc?‡¦°?ƒŸ‹> L?=`€â?ý¨°@ÇJ?Åž?µ’ë=&ì>-ºN?ƒÊ£?ŽXÿ?Å¿?¸5ƒ?ƒÞ ?[r£>§‘??©)§?ö­?EÔ? U¾>_ +ð?xø¼?ô‡o?Žx>”•ù?tè?Æ3|?/ú=”·ð>@Ó\>:³Ö>Éω? ò>ONÿ=î&?­•$?Ùž ?œè?’†è>í¥—>áJ'?¬r?¯?¦?“^Á?ŠÖµ?÷]?$ôC?Ã^\?«+-?”H?1¡å?\~»?R¶?(,ƒ?#§?"ÿ?+ï?8ï:>Õ#m=…ê]?§Cr@$r§?ýòB?Ç'…?”.#?bb…?ãPÕ@ i'@í¼@pŽ?ÀŠ?° +?Ù‹¯?ã,/?Ý?„ð^?KNý?PÝw?rÑô?ˆS^@ýi@ ýu?… +?­TÊ@F®@77@é¿@Ú®?ú°/?ÌeÒ?ƒš?'M>«ä?‘Æ?ùú?²è—?…+Ù?[¤÷?K%ÿ?­Mµ?ÇÑO?ßz·?î™Æ?†—??vB?¤ ?¤µx?¢ƒª?¡Ç1?Çë°?¼G^?8Ð ?bbk?Êk¥?ÖX.?ç­Ñ?âaí?Çúò?‚´ó=7ë?X@#­À?ÈîÅ?Ý_?Þ™r@&°@qŽ@n@u ?÷5T?Ô$y?Ãû?\Š»?=Ý?œ ç?¥øj?Ãå˜?ÀŠH?Óª½?ÚòÃ?ö]>?ò¡[?÷ä4?ï}À?È…?¼-ñ?™’?®W9?ÙN«?̳ý?Å"Ã@´@_?¹¬°?$Uè?d$Ã?…LË?±dm?Çí ?‰öC?a À?‚h ?åu?K·!?@ã?~+A?†v@ R¡@Ü?¹ø?Ùy?Á8?ou^?Ô‚S@[Q¡@ch@kMI@NFÌ@&0Á?ï°8?ßÁ0?ßöW@f/ƒ@\#d?'e?ƒ"?Âß­?´—­>? @pg‹@\Gj?£÷?Ã}¾@B•±@? ¢@BM.@=™°@{“@§6@)ßv@ ?@Ûs@ ‹Œ?Âî§?Û}Ò@2³@%‘û@‹Â@‡Ðr@nU@yu>@‹ã @…û@@ @%ÿ?v+?¥Ú@,®7@ Í?¬«n?µ¢?Àây?ÄÂ?ÑâŸ?ÙÅb@ +]ú?þŸr?)R?f^î>Yß>ÃÎÜ?©¢Ù?ÌL€@6žž@!–u?›Wr?´ƒ@6Ó)@)Ói?„~À?‘G @JÌ?ÿ‰ ?ÿwv@ ÷Ø@Iü@†­³@že@ùò@ch@[WÐ?¿Ø?Ãa+@Y¾A@Sõ#?¿îà?ÃéÝ@N-Í@R(„?Ê9C?¾”¬??#äg?#z?n^:?}vš?¶ËC?Ë ˆ?¢ý;?žÛÏ?·Õ¤?½´ê?Þìe?ñÉÛ?êð³?éž–?»Ìy?ª)<@@=6@"Us@!§?ø$?Óx?®A›?„gN?šf“?¼¶w?çoe@ Y¿@!2?×ǧ?×{™?ù(@Q@*G"@Sà?Ç›Ö?Çd?»êš?¼‡3?ºÜÈ?Ç4@@êÁ@?ïE@iÐÆ@me<@KË@ +ºY?ü8y?ùš¿?+Rí>ùfÑ?uøª?†$ª?¸…?Ãë +>ñŒ<­R€?£ôŠ?þ"Õ?á¤ì?Ï9†@½@+ +z@ +wÒ?ÏIÝ?ÓÀ?Þƒâ?öhê@PÓ@$3@>2~@%þI>ÿÁÞ>ãÎ>÷*›? ¶@(š.@,`û?¼a‚?µ¡ö@R@D?¡Úû?vJn@@2…[?Çp +?SG?©Îˆ?ëhå@Ùî@œÈ?ðÌÓ?³e`?¿k?í"€?ÓÅô?ú·?CäA@É_@%?ˆrx?ƒ †?~VT?t[?mÒµ?gyw@#]@Â`@N¼?ìL’?µîc?–£×?ž\Ä?šsÕ?«‰Q?Ñ‘y?ì›i@+e@jA<ô“?ªì?­Ÿc?•?¼¦±>£‰Ã=’¶>µê >ñ~ý?¶?´ö¥?×(•@}M?üâ”?à<ø?Äï×?p˜¶?yÞ?´J´?´0á?ö?ž?í»_?¼w–?³ßü?¬T ?® 4?‘q¨?z¨4?:í=ŠÞ^?"Wy?îé­?Ùl?r(À?ƒ@$?¬Ù?±æ@?í?Ë?ù;Ï?u}?Gñ@èe@gÙ@ÜÔ?&Üê?Û0@„§ @fð?±½=?¯ +Å?>u?PæÞ?…sc?‹{=?§o ?±&k?›±K?|͈?BùW?â>?,À@8±@½¢?¯\Ù?SÌ?g)é?zË?›iz?Îw.?ÈcC?éï?éÚP?³¢B?¯9…?.›G>éqt>õa >ïÏf?.`?i ?¤·Œ@Dé@ è‚>™š>‹èø?è"Å@Bp?§ü ?ƒÉÌ?eÍ?-.?sˆÌ?ÙZ?Ë>ꉒ>ò”@8_@<>?}E&?6¹†?ÿÁU@7ª@Ùk?^€H?GßÙ?x¾?+ü?Á2‚?ÍJK?ƒ—?dHÓ?gÆ°?fª?®¤™?ù“j@ ûm@I¶@EUB?fw|?fr5?8f?¢S>è9>ª°!?vÉc?éIÏ?Ö¬°? åƒ?Œ–S><>zàÙ?Oî-?LÊ?“ØÀ?¬ÐZ?šÂa?…Mµ?œÛø?Üó?ç x@=2@ ‡!?d@?@¬?ˆ?Þî?˜?Ìó×?º¹ä?— +Ç?‡&d?‚ˆÍ?|²?§T?«µ÷?c? +­@¶@<à(?âK?:X^?0VÐ??|ê?k7œ?f?žz?&â“? ÊÔ@§ø@ "?^U´>êV$?¦?êÀ›?˜–Ä>Ö e? /ý?k¸‡?Š…Â?Ü£²?ì)@L@Ñ<@[?û”ƒ?ÜÎâ?Õ3«?²Y?‚Ý?]h??1èQ?Oøp?pmÉ?–‘È?´ë0?uB6>îèJ>Æ>Ô Ó?Ÿ„‰?}³«?<ôz?,y|=“S>Žìž?ůð?¶{Ê>±¹’>¹c°?6K0?B?N˜?K,r>ûTX>úI>ý_Ï>å†>>4?i>¢¹À>ÿFð>Ù÷ë>Žé1>ÁüÆ>ÂÀN>»[V?á??D†e?‚®Þ?H}K?+Cž>Öà–>„WŒ=yO?NG†?cé™?ÔÇ> +=ºÒ~=œ¤`>ª€R? ¶ç? +AÐ?à=fä;Ýcv?(¯;@=å.@?ª@F•=xÚ=ŸÈ>„Ž±>©}9>å@’?n\<•EÌ?ìÐ)?ÿ¥×?Kf>é-D>éÀˆ>êK¯?A˜¿?šõ?Ú!?1lÁ? Á¯>íi†>íâÊ?¤Ï?®ë·>³r=ŽÀ´>!å`>| ¤?0k›?U—?8¯>*0Ÿ?ìÚ?ã~?¥ R?¨?œO?Š!‡? ®>úqü?¡ê³?¨]A?:e>Æu"?›:ˆ?¿18?>,õ>ËJÚ?!¾Z?4g>éh#>šÂ³>7M¶>¥%?rZ>?RºÍ>ñåë>ëì‚>û‹>Ε"=óKÅ>LK–?Òé?÷?(Q?TÕ@?½ÕE?¸r?‘Y?™×?®P?«_? ?<=VÿC?¼Š?¶MÆ>Q· >’³?|­?£r¬>«°>Á¦–>]¥Á>rä¡@ ø@Sø?U’S?Uf%<ˆs•>“òh>bC? X/?Z“@û@ ¶Ï?yå§?oõê?õl?)?¯®!?ªÞo? ‚?$ A?ÞÆþ?ßÏ­?¤<È?ªìÌ?ð¯h?å>x?km.?^‹ +?+s?ˆåä?vGe?|ñß?Šn?yXA?x z?X/)>1Ïô>Œ½c?#â?1 +)?V?À?Bvç?¡~???ç“?j;ü?Ðg?²j±?Æè?ŒÙ@4N6@$ïM?ñíË?ÐQ£?v8Ü?€oö?ïq? ^?áå ?¸º¼?Q‡?aL©?^á6?5Bå?Ý?1ÚB?wäm?F83?*>>ïè >ÇQ?¬p?)e3?iy?˜˜)?"a2>¡Ð>Üź?„Á?¼S‚@|S?«1Ë?v¿ž? ?‚oH?(I +?wq?¡©I?ÃÀ?Ï?ÍS›?È.g?à û?-F?š‚?H„#?YSr?€‚?‚©…?¤[–?¬…d?fÏx?j½:>wå=æ«œ?À“ð?³)”?Ï<>û^u>´[Q>èŸ?#yL?ÜÖ>*{>>zò>R{÷>¬¢#?A•?En?={4?‰kE?þÀÀ?â?$?–o ?lô“>æâ?E€Ù‡À>¥$?€¿Î?µÐU?Hò>ð`˜?=®q?U9?ƒXK?‰Ä›?›ý?¥þì?››-?‘ Ý?CŽÓ?.Ù?KçØ?Gq?Ôö?¼Ê?AòÎ?0.–?¶e£?½²ó?ÄFî?¾æ0?t&®?”t@d#@R?<õo?ŒH}@Wô?Æœb>=’’? #i? W7?ŠN*?F$/?-Ï?V?±L@FÑ?ä¤2?— 7?žI?©¼?HÇ×>ášØ?å\ @ 1×?” ·? Á„@lœ@ì7?pè ?)?>¦?èy?EÒ??F?UC½?m«@ Æ @èÏ?„y£?ˆk­?©{´?š)>ÚS¬>Ød?’È?8]t?–Ïl?ü?„¤?²8÷?÷ã?À‚ƒ?€Y?@ûy?‹Q?wG?/S?c=?„Êû?núØ?sÐÅ?ôãC@ Ö?×J²?ÇSJ?}ç€?r_ò?„Ÿù?„è^?³e?œæ?Çuì?Þ‘}@G@1ãë?˜¾?µk…@ P¹?î?&‘?d‰?O>ž^Ç< TÅ?=óÀ?¼ì@jv@?“…@£Ô?»+û?Œ?hYË?Wh/?ZþØ?=áí?8ùï?aœ½?Yüy?À¨¾?Çä?Ççs?ɇƒ?á=+?Ä(Š<Ú=>1§>‰°Å?5Õ?o"é?À=Ù?©.@?úh?My?uQ?Q‹S?~ãç?¬¥?¤/A?ï°ù@ ®‚?ìœu?ÛY?—qx?ˆÞ @0¿O@=„?ÿ,È?í n?Ê?ÏV ?ÙlÜ?ÖýG@4™?û¥?¡i??´Í‰?åô'?íËâ@XÌ@ý^@8ZŽ?÷- ?T?„¹[?}á?3Áú?DÿG?zO?…G°?\3?D—?‡Ñ÷?Ž ¢?í&{?éi?õ,?‰?ï‡Ý?î·?ÝC=?å3ƒ?ø‹?àcx?ˆ!¦?¥Â@@S[@.rJ@¤á@ZR~@%`3@H=?ö]?Ï©°?à #?±|?‘yk@@?@y'‰@*s?ôÈÄ@ád@ Äí@9xš@CÇ™?~vÙ?HÔ:?øBŒ?ó‰œ?ž¿”?¬›¤@æh?JÆ&?»ˆA@Y@}(Ó@cnÏ@2Ây@¥ê?óKN@ ªŒ@)ùj@2ÜÖ@Cä-@5~@(¾@ yw?÷ó—?ýäÕ@E{@u@ ž_?¶?mR÷?×™Á@)­@-(@Ì@HQ{@fG¤@ à@Š¥@´{@Öã@Q§Ñ@b§@  ˜@ª’Û@Æ?ñ,Æ@¬Ã@#5@02@2Æp@pd@yÐ@]:?ö û@!%Ï@"á?g/Ç?dN@&@2@4GÃ@9ö#@xüv@tPN?ÅQð?»¿÷?…„'?¥Íõ@cÎM@_t@Æ@fI>…Ú? O·@ på@Ãü?F_?°LÚ@$Zç@'wt@GÞ¸@>qÝ?è«›?Ь?,o ?•5ò@^Ù@aQ@Nàé@=oá?Ò$z?Ì,?ÅJ)?÷Bû@a@K—Û?öÎù@´·@w¢Ý@`*x@ ] ?öŒ=?“Zƒ?¢xÂ?×ûY?ä+ò@ÝP?óK? Hy?Ž•?7W·?7ôè?Rd½?®±@”J@w™å@"þË@ùP@²/@Q”?Ýe?îð@^ˆÇ@Uu¨@p"@©>@«I@ì)?Úsq?âÐ@ áw@B?¿ ?ÃÅ@@Ca@H–%?Ÿ??œÀ·@0*@ ÜØ?î:?ç-¼?¯íÐ?®Ëª?Ò¥Ë?ܳ?ë2ü?ðج?ˆµ ?v„o?æ´??ú7?Å&?¶¡?»• ?½µ|?mºA?C?~ƒ?‰?H?¬ÖŒ@ã»@a·?ã>:?ªÜ&?¤h]?¢£O?ࡦ@ Ë?üf?ÖO@õÎ@kgz@Ž”E@¶]@Šz?¾/?ägæ@Óò@Vü?ˆ¿6?Q7?> ×?Zà›?§>v?Ç3$@Zð@XlÄ@+ŸÃ@,Ïó@ ?÷ ¹@w@Pé?“ô¦?qUÜ?®`W?ºîG@ZÌ@ ÿ?±yï?wÖ?~U?‡ï?Æ$?î)Ó?íð ?÷“1?üGe?øê?ÚÛ?®°?¾YG?Ø/8?øBZ@'õî@„Í?¹ˆÈ?¬`–>÷.V?ºp?—Ùš?Ÿ}¶?zz«?v´9?²=?¼nû?ˆÒ?vMü?—ur?«†û?=:?uæÔ?uÏü?u»A?Ö’/@d+@Ó@Ôø?ÛL?Gx?mD/?¯¤\?¸Ú@»,@"r›?ßW4?çEU@c@*7?ÆPÌ?°ªì?ïή@™??éN?ØçH?²r?‰lï?š¶p?¶W²?Àß?פÈ?èpº@ ÐW?üër>—ï>a¡?]?bvè@Û¤@/Õd?¨ƒÖ?dê2?bTÃ?_Üü?? +>?2~¶?ÆT=@ ­Õ?úa?€ùp?A?”øÉ?’݇?h”? 3ê@$TZ@.‰+?¾.?£»?5™=>ïšË?£’z?é@X?zÌŸ>¸xÑ?• `?ŸÑ³?°rñ?¥$?nwg?nX?­=?²–­?”¦™?ˆÎÖ?˜ñE?¦zÑ?Úõó@ Ý=?û?´®¯?¿à&?±¾_?´Ûp?öuv?éû@?Ê ê?Áæ?æFß?ï‡ÞÄq?2¸ò?Éñ?Ñ"²@'¾@,nå?""?ÒŽ?%ñ?C}š>Æ8š>Á?UÙ?‚[K?¢²Ú@°Y@Ö?Ó<ý?Öt"?„¸ò?ˆðé?*æ=?æ?ƒK?®^ä?©ÏJ?§ÿ?¦¹¤?¸0æ?Çõ=?«ª?¡[A?Û„•?ë«?‚†Ï?Tˆ?ZhÕ?’Lj?’·†?I}?vÚ©?k p?a3c?‡ »?’¹Â?! N>çoo@ÞÄ@wé>@-›Ê?ri?…êÛ?™Œ?‘{î?!^?¬?îÁ>ì­¡@’'@:M@LJ@h@[Á%@I¸°@E²?Ê ?¾¥-?ß1`?æeï?ï?ð7¢@ @ Ù•?âGÌ?i)?Q9>³ÒF>¤÷?8*f?U5?dõ?tòˆ?—%0?¬Û?© ?£ÐØ?©Bd?¯#ž?±a\?a¶S?Qéô?…yË?‡ÀÇ?”ÍN?©§p?ò-©@&ÅX@¨Í?É$+?½xò?rT?iòÝ?cl?Z«þ?ºÏË?ëp”?±8æ?hf™?QÃ?¸ß? 0·?H¡:?_x?Úþ ?äC–>LéS>Så?6¸d?MIë?‡Tg?¥"3?‘ó?k<è?P‡?+‘ð?POq?ƒ?Õ?µ\b?¿E¸?øŠ›?þBÝ?Ï ”?ÍD4?‡×?TÎ?‚0ª?™¢?ˆ¿ÿ?pwž?µB¶?ëF?––¢>°>õ?üé?IãÊ?cö?½bª?œ«>±ã?»€?’>?}ú>Ÿ>´C>’h*?;µª?(Õæ>ú'¸>ú¢>ûfE>ÍcI<9þH=$OÈ=+è>JU>Æã"?M ?Q’?³m—?ƒà?ì?Fà ?‚»I>îâ>/˜±?$¬'?Bi’>‰@›>{:Y»Œ;ê¶>)å>×±„>¼n>¡3o>L”>ª(‘?˜Û? õ‹? Å?TD?¼F¬?'M-?^*@JÞS@Vx@]ÿ¦8ð˜>"‡Ã>¦ã>ƒw&>„¼W?ç=éÍÅ?ÚMÍ?×pÐ>ÁY}>:å›>½8ä>ê–?•™?@H?^”[?“Å“?Žøš>Í‚Ñ>Û‘Ç<³Û =PãÀ?°uà?ˬÆ?Jw>&¤ä>µ7$>tOp>i¥@?YôP?_½Ÿ?,ªD?L1{?Ó!þ?ÝrQ?fSm?pÁª?n‹?a?W#¡?^ˆÚ?ŽÎ!?¡Lê?Y'?DS?_”?@{d?&&>¼—î>,_´> +>~ ‡>™}>ú¡>¨ h<”">/ˆ™>û‡"?CÈ^?¿‚?¼^?ÏEå?¢ýÌ>ŒÕ>»B¾?„'¦?‡ƒu?Xî?Mw?]DG?aS?Vƒ?[Ym>þuË? ½.?¿‰?»Þi?\7}?X“t?á‚Á?Ø@?+?¢? F?Øü? §µ?ám›?ãŒB?1^G?+2>ÞoO>º¥Æ?š÷”?£Ó?s÷ö?z 3?€s)?‡Ž? ºï?¤t?Þýx?Òœ?F‡Ò?UÏÔ?v®°?cãl?uç×?zWM? gÇ?6Q‹@˜¡@æ?»ô?Æd?Áâƒ?´{?Rß?¬É?À†ˆ?¦iœ=©HL>v¸¦?W"?aÉ‘? ùÅ?…“ >²¢¼?+ج?Ô8ó?±i/?Dàq?f:Ë?›l²?w'?Éú?TL?×îä?ÂÆû?à?.bé;Ú‰= +È>‡ÏÊ? ?j?~? >Ìô>“½?t?T|ø?R>j‹>–Õ>Šˆy?G™Õ?›Qï?ŒŽN?‚=¨?Ù¯=çœ? +;F?_äi?ÂáÌ?øù`?…,? É{?aÂc?‚iw?6[?ˆ?´ŒÑ?Ñ*ë?: ?ÀÍ?~&¶?”2“?¸ê?Ä2á?»¨°?®¦Ñ>Ù$Ç>¬j«?SŽ?cÊ??Ê?2ÂÝ>œ,å>~X¸@[þ@X¼ñ?#š?h?ÐÌ?&/¨?Ù¬·?»`—?â·?> d?ÞS?®P€>Æ^>¯ê?ü?K‰—?¾a?—-?#Ç|?k5G?°úJ?Óx'@3?­ž*>ßc>è× >ò¬ñ??ÑI?„¶²?G½á?C? Ë9?ÞŽ†?ìR?÷Ë–?”c?7ã ?”+?¬,?…*?xì2?QLÁ?GÚ|?Ѩï?ìD¾?¼»?¯†‡?åøÐ?çÓë?œÄ ?  ¢?ü¥?ø›£=*ð³<´ ;f>%Úp?ƒÁ?‡Vc?Ÿiš?§Î(?©çÙ?Âpƒ@ /,?ï«Þ?¾w?˜™Q?ÏÚˆ?¿0?¥ÜÌ?ƒÑŠ?=Hã?–Õ‘?Ø',?Äà¿?²ÍF?…>é?>ôt>âVJ>qÂ~@jé@‡qB@M8o@Fƒç?ÀÅ?Éà>n$=Œp?Z_?mðø>‚Ï>é.?—¨?(b¦@[Wñ@NÒ•?Îï?¯t>‡ù@? ó¶?»ö@?˜ŽÍ?’??L>–?´G;?Ó®7?õkQ?ÅÁ%?—ÍÖ?l…K?"úG?÷_? šy?7X?¾OG?—4ë?„Êù?yI ?nŽ?èR@ÙÁ@#ó@%¬Ù>ààl>Waâ?9Ê?C-j?ól?!ëØ@ã@tŠ@#§÷@ Ô@î÷@*P@&O›@ N'?²‰t?–Dw?5Ñ?XE?³?…P€?Ç´±?¯^£?£í ?%k7>‘|3?Ôá@ «™?¾z1?Þ‰?%?;¯?¸ ~?ÇÝß?†NÀ?‡)?‹€ ?”È-?ÖøÍ?Ílí?Võ?¡"<'ë¾?¡_?…XP?…Y¹?…Z°?coM?ZSM?Ô2©?ø1Ã?R„¥?\ì@`Ì3@‚SÉ@Ñ´@-˜?©?¨¼E@ +0*@*Î?µ¯°?­A9?‘êò?¨8L@ÆÚ@Ìð?ÿ—w?Á? hY?·£?I?¦è˜@S@$Z-@:tÃ@W?@cÈ¡@E¬?©H?²$î?´+$?ÄŒ ?ÂH®?~W?væA@/z @6ž?‚Y?}2Ú?‘ "?“&ˆ?…2¬?’@z?ÇÁb?ó¨@9N5@#Ö?Ûäd?ðñ°@ +ã ?ò§X?É+?M +ö=¡f?».9@Ÿ¹?É2€?…Ü@\x}@‘†ô?ð€9?€;½?—Y’?Ía?ŠÅô?‘ó?9å?ÙÒ@Ü°@"Ž?á§?â†|@¸ñ@kW@ºp?òò?’8?•èï?«M?š½w??®«?%͸? hê?}* ?ÓZ=@Àd@)ÚÆ@Aë@T›á@+m¶@ à@øØ@¸ú?Ï‹3?þn@u÷@(pù?Ì(?¤x@g¶a@„-E@NÔæ@F/u?çeå?ϳ&@… ?@‡I@L@Æ@Eë2@D‘Ð@E@´R@1IÔ@eïU@0 ?úzÁ@U:@ä@@ +}?ÌUS?Hu?í´¸@ïm@>@â­@†Ì @£V@d%@?‚ˆ@Â@×`?Ô{±?ÓÎ@7@)`É@'†°@"´ö@F©Ü@Jz@MÛ@ïY@là@p¹½@ =v@ KÆ?ÿúË@î¹?+˜?(ð@5g@¢?Ã1?Æ$å?þ"—@1ê@ Ð@!FÛ@ @*@-¦(@'B?ÉoÌ?Ôz±?Â?ºÒl?Ât?È3?߉½?áQÉ@ XD@;%?£K?¿žk@Ñô@ â?Ù*Ä?³õ;?2×?VΡ@¬>@ &‰@ü®@3g@ g¶@ Æ@!†l@"·Û@0@…t?ðª?þòf@¥t?çæ³?%iC?2ÒÎ?[ÿ?:\?÷Td?ü–]@^ì?çS‰?€IO?‹õ?´åJ?¦¦L?š‡Þ?Ólg@nT@dÜ@I»@&Tõ@ˆF@€Ñ„@*?íØÔ? ð©?1ƒ¡?3Ò?Hýœ?ŒÑ¹?^?‘OÙ?–ü?¿ý?¼õo?s{?˜ÆŒ?ß}?ܦ?›?˜Vq@/’@ +@m?˜q?Žèu?„)¡?oÕŠ?…5Õ?…uv>Eš)<ÿFœ@S6­@wsx?™Sâ?ë¬?¥Å3?½·³?>ÍÄ>üËÎ>¥o?ªû¢?üv¦?Т ?¼.”?•‚Ü?kFò?„¼ï?‡@j?‰JB?™K?â9æ@ÅZ@n@ÒÄ@@ á?º•s?×î?7w?››?ž9?°Þ¶?¡”?Z„@?xN™?Э¿?Ù!@#¯Ë@#ƒÀ?ع ?àý@ Š+@Öè@€J@êU@ÖU@ˆ/?¸Òû?§l?†Ái?y ²?¦`™?¹º @´ù@ŽU?¨ñ§?9¹é?ns°?‹iì?¿ +;?ø"©?ƸÍ?wöø?…H?š1Ý?Å}˜@$Í@[?¤'?œ…Ä?3'?àN=²¹=‰’«?ƒÝ?‚= ?ê?ôŪ?‘à#?vPº? îÁ?¬|}?©Îè?§ h?»»]?È°?Á$4?È'Š?ù!1@S5?æ¿Î>õŽ?U½@_&?þÂ?\?^ Æ?Aö?×Ñ@n{@›è?™ +­?€aý@ã@+ à@P“?â]}?œaù?T@E??—m?(ý?8ñ¢?I_X?qd?Çs–?ÁG?rp?nö^>òI4>ò)>àX1>éŠå>ôH>ÿ(„?×ÕA@ vÍ@˜¡?ó@§T@ Òè?íþp?ëP?2]?´wÚ?®c×?plÅ?pH>?p-É?p]?/Õ?Œr?Ûa? +=ö?¦éã?ïdj?ÉôÝ?—Å!?¦ÆÑ?лƒ?áï§@G@… ?Ù.Œ?Ðœ?ÌÞT?Ê4Y?Çr?ÃûÜ?¾ÉB?°*°?†*m?Xß?šsŸ?ì7?½Å >°>Œ b?œ—?¥Ò§@*œ@ÂÒ@)Ì @2o4?ålT?Ž~@?­ù ?Õ)?ßÑÏ@kå@ïì?µì‘?²žF?nöÚ?cv›?—9×?›­·>àç>ýÜn?Œ^]? ¬ì?ÍU(?Æik?ƒŸ?‰—¨>“Bâ>D ¦?#‡?S,Ž?Úp†@ýº@ Ár@ +Sª?óïn? ‹?¢< ?è´?èû?~[?pí.?‡-@?ˆ#î?<5Û>è?cuC?áèÊ@x.@8ù@w¡? ? ¹ @§Ž@=^@n/@2Äþ?ì®>Í{?„ü?Âé?Éÿ?·õ¥?´Aá?¨Öë?«æu?×lÂ?û•Ä?èkG?ØC?ÕöÅ?™yÔ?·îƒ@û|@Ûí?ëp¬?æig?ã¼ø?òå\?ÕiÛ?ª…?`í?[Õ?[¸Á?‘ÃC?‰ä]?C Y?3©«?z•€?‚eÃ?“ñ“?¬ÜÓ?–Ò?V@£?‡/@ïU2>ÅSá?]¥o?• +?‡|Û?}/=?ªâ?NÀr?8wë?i`Ï?i’‹=á…?5Á?ja®?; +÷?'¨È?16?:ÖË?#¹>± m?Lò?ç?äÚ3?±²?±Û6?¿?Ä9N?&c/?'u?Œ}×?ŒR?‡^Â?U2?SR ?mj´?, =Àã´? €@ô@'*?œ:}?ƒú6à>úÔ>ûw4?¼Å?p·?(¿:=²‚¥>’Ú©?&ó¸?À« ?›Rð?Púé?;¤Y?\Õ?Ö)?¿é?3D ?''«?7'Y?O#'>ÒˆÀ>ÊêÊ9±´ˆ<àT˜>ƒ>°¿´?ÎQ>7Ò>ï?Ó?´-?“ +ì?Œo?–­?dY9Xk?Õ¶€@¼õm@¯«Ò@›fB=çó.>Ás?Ðh>ݘì>´&@6¤Î@1úl?Lo¼? G>îÔK>é÷Œ?1ø? A™?%`S?0‚? TS={= …˜?]ø ?‰ßþ?Š¶>°é>£®z>–sà>Æã>÷é>Ýcì>ÂÖ$>¨I>²…>§?&sÙ?Û=ÓÜî<à#>åËâ>ö s>D+¸>Bؽ>xY>–˜?G?q?wüÏ>·1ƒ>¢Yr?ç½>ôcˆ>ˆ‹»?=ýÓ?°ÿ«?†àõ??,`ô?qÇy?†ŸI?«é?¯wº?Ì+q?¾j…?•8?Œð2>ü¿É>üï1>ýˆ?ˆ?§‰î?ž®°?f?z(>pùF>NÜw?Õ]?$? :˜?äR?ß?]>íÓx?:p?ª¦è?¥¾?Öo??‚®b?‰ý{?˜ËÂ?–H¡?­Ï}?ªÈ£<–‡R?y]?¦?ˆ>ÿáŸ=.í7=Æo?E:¡?R°—?Õò?¯w?]çt?b{f?þÈ>÷¾>>l9è>·‘_?êŒC?Úú~>×J>íƒó?©˜? n|?Tô?\,?ðˆ?uò>î<?4kÈ?íI?Ìf£?C¸?"Pc>š®7?°+N?œL;?´ž?HU.?¡ô?ªs?Rç×?R‡†?ZGÐ?V‡l?qTð?"Ÿ9<îl]?Õ¾?½)N?Ï?íÕ-?‰_›=Ígf>sDé>»u?T:?1x?ýy>ê?Ä4?7çÖ?e¤Š?¶?Švy?‚?ô?Jù‘§o=–[>Å9R? +œ ?ñÃã@ G(?âèk?½F?Šp?mBk?]E?h®8>öÛS>¬F>óf£?ŒÑ?µ7â?Ä×?Ëš ?Ø32>¬Žþ>3¾$>®è·>¿å0?£Vº?¬ñ@KZ@ Ö’?Ä$8?Íß@!¹ê@w)?Ò?FY?˜Q?„ì =ü>Ñ?J?Á/ì?¨…~?ôÈ?÷¦?üÐ?@u?¬˜?~ú¥>G>»dU?6bæ?V¦?Ù%,?u…¸=©=û‚Ð>˜>Á?Æc?¬qN?ø e@·î@FV?‘€B>è°?].ˆ?ƒ^ð?“"ð?›ž™?/ÎR?q?u[?{À?—z¥?ª+-?ºÙ¨?ĺ?õ@ZZ>›÷,>\ Á?ÚR?ÍÐT?®$>ðöA<»B>‘F*?ÿAT?ú•4?õå›?Î`G?: ?¥~?Ø´?Å4 ?šÜ³?—¿?”ç;?ªÊê?Ä ³?·l%?¡ ·?ƒ«,?Wb‡?ty•?„?—`?¨§?¤df?¦ÖÇAéŸB&óAMr@Ú±@J ¯@>Ýò@oŽ?ç!?ŒL»?„X?N<4?D ,?žç,?©3Í@=ú“@1´±?™A%?CÂ?¶Ì?.Š?´®»?‘sP>ªÈR?X–?„š°@…§@Œ`¾@NßZ?áV @¼@«à@ÁŽ@%Áä@#Ϲ@!úã?Àþ¬?„Ë?7̆?ά?’¶?§Ôx@îÒ@ÝŽ?.½?oäº? ­?†ôÅ?òñ?6!M@&7@ %?ø7F@,Z@=˜@<¶q@5ÂN@ +{?Gp?¯”@@ñ?˾? ˜K?ˆfM?Ç´À? ã÷?…(˜?Vª?¤ÎÅ?@«? ÇŠ?ÓáÕ?õëä??³?<8?f˜?z”î? +p]? ?ž±?˜Ý—?Ÿ ?­e @Éf?ó2é?…N8?‘é¸?¬¡?®¾û?¿F*?¿­?¿U +?âº0@¿^@ε@N{@ + ?øq@`“@ ]3@ß@^š?ÿ¾?óÉ{?ý†ô@šÐ@€ï@?È`/?ÄÕ?Žc?¡Ž)@\•@ -@‹™?û•|?\n?IÆã?°Í?¼¸?È£?Ê?Êð|@(S¼@fr‹@eÊœ@f.@ ¦_?Ä×Ô?¤¼?”6?¼s$?Çîœ?Ž|R?‰_@ @!?¼¢?ÁKH?NR„?^‘S?tÓ¬?p½Ý?…2.?…ç­?þa?«)á?ìq›@Œö@!Ã@)O@7ëI@# +·@®@ÇÒ?þ»@|p@&K6@ +ô?ós@=Ð=@_!b@=ý`@,jE?Î&N?®üo@Sb@ n>Àa>ƒð½?¦dT?­ß?î “?ïé—?ßhŒ?ÞóÑ@ºï@Yè?ÿ2N?»(>»µ?—K@]<@aÿm@f.õ@H·@!û-@"Û:@%žY@Wæ:@aK@ZÔ‰@>Qv@1¨@'8¥?ÁÒvJ@=G?íË ?â+®@]@h…º@aþe@WL\?ü;¦?ï—c@V”@‚M@ Ís@*è?Íþ ?É¢b?¯Ú;?³‘œ?Ž6¾?±" @fu@‚ô‰?Ñ0?ßÒn@íN@¤™@-…@ ¼@?•ðî?´è @!öŠ@ c®@ž-@eÓ@Í\@¾å@,¿8@,ø`@ [@ É?% ;?…'@!h=@4Æ@ @e@vw˜@Qµ4?ƒæ©?–<?Ê—?؆?øbƒ@^Ý@3kp@BÎ?œË4?˜I¾?“Á$?‘¾V?›lD?œ”b?žŽG?¶KÑ?ñ$”?üë»@( ¡@Ï?³×?¥?'?U[?’°ä?kº}?‚g½?ºF»?ÅCš?ü‹µ?öKq?·ñº?³U2?®¼-?«Fo?²m¿?¼Šä@E@Ï\@ 6'@ß-?Iiy?M,-?þ†ó?þW?Ú‘o?Ø1l?¨0%?©»§?Ï`?έŒ@8}’@>Vñ?¿}?°d´?õ×?…€ù>>>*ÛÀ?™"â?¯/e?ä©?ðõ? +Ó?>”?Ã^?úšK?¿½?²ir?¾m?¾²Ú?Îx-?ØÂ@ù5@Ø—?ÉpÜ?EÓ3?Ÿl?á>?ýù@‹E@&q\@@N@&° +?öì¯?¹o? ß?ƒÐL@´¿?úÍò?z•f?‹b×?Ð…ä?ÜhÃ@ä@ b?ÝNÜ?Öƒº?á…š?Ò¼N?ªAH?¤b?árt?ê™"?1“Ý>ùAZ?j7”?sû?#ò>ý;×?–‡†?ÄÚÏ?•„I?d8'?«É?Ú×?Ñ\O?ÎGþ?­ø«?wù½?J9ù>ñö1?'O?0L?‘W?wa™?wK³?w1Æ?vQù?U8î?@’R?á6ü?ìFÞ@Z-@8÷?YÍv?÷·?œ?+vë?¶Íô?äŸ×?¾@Z?§ð?‡4?>H?› ?ú¢?Èè?(‘ ?RŽ ?·°?¦‡˜>ô¸3?"á?t„ß?tj?ºDá?¹WÝ?´vm?°Š«?wîK?p‹ð?ëúB@˜?µm>?EèÝ?„T]?¢øü?•(†?‡S©?€_U?Žàu?Œ Ê?‰4¸?„ˆm?" ‹?` =—ÚÜ<{3c?’¬y?®Hü?»sM?Çs?°ÖÓ?¥?ÁWr?ÝÆ÷?½'Û?pà?~š³?˜3a?™Úq?Ž³!?‹»ä?©Çë?¡W"?Õb¥?ÓŸ˜@U¸@»?œÁ"? %?I¡F? õ?˜Dÿ?“ó?Þ@Ù7@’Á?¨¦?´Ï?ë +Io,=¯<æ¡H>äÕ=?ÑY ?½°?“ñ?¹È?ð'a@kF@€@!?ÌúN?€Ì½?²Æ-?ñuà?è”*?¼¹?¿zõ?ë[Š?ë9T?±5?¬ ö?×ù¿Ìø=òo£?æà?êtn@e,@­;?ù:m?ƒ?”Ñ@ o@‘¶?‡qð?]Â@ í¹@$º¾?¶Ä‡? ë—?Kºœ?¨Š?ÑŸ-@Kè.@OH¸?fmò?PSÑ?Ï3$?ø™@±~@#~È?ÝL¦?ð?u?g “?lÂÒ?ÜåN?à‰Ó?.¤‘>ì]?‰U?´ºV?ÁÅü?È@q?¬•o?Qž?M8¤?æ~b?ætB?ÕZ‹?Ö…K?:’>DŸR>‡>ì¨d?:šß?¦>?£‡W?¬Ä*?¬Ål>à=C>Ñÿ?¶]Ù?æn÷?ÇÎ?¬Ý`?Œ>¤??¶?jå"?b‘?#v?$áÆ?¨C˜?ÁãI?€H\?-´?^6?‡Ö ?²@Vß@Šý?­¯,?­ÄK?Œý?†è?”M¼?¡ôÎ?ÊÞã?í¿”?¡sœ>è¾z?@—4?Û+—?×)ý?sC?kú@Ķ?ýâø?U³ì?.,?alˆ?v¹‡?¨J¸?ć.?¡ŽÑ?•è?¡kë?­\,?ª6?uâT?nw?ßw?Úy¨?gj?5ʧ?7n—?Fn³?ñö­@Ý­?œu >ö ?r ü?£M?Ã~`?ò%?©‡Ô>ó_?*úÒ?q¯é?-sû>[ö~=±øã=ëî>•.–?(•Ï?7«_?))u?4 Ø?Lm?OMÚ>·e>ÕýË>ûˆ?¼³?|ÌÚ?Wšx>ºìð>¿»7>ÿƒ?É”?xòÈ?'s>òF? +°?œñ?ª9ž?}«?ƒ©H>àN´>ÀÏ=‰¶=Ù °>‚·j>xµú>-ªj>ÊZ}?/àù@,)?þ©?%°?UÜ>­C=`ã<ôÛ3=yâ>¹nî?¬£<œ÷ê?Âkç@˜d·@nk@KÜ>&ã°>Ž;?N(>Ò-Ò? 6à@J@J‹Ó?9 á?#V,?:­>éÍB>ÿ¸ë?Ð(?B™Í?…]†?xÆ«>Íßš>Ô{¯<‰ð?T5Ä?oi>?‘³õ?”^Ô?³é>6¶>œ>ì¦>?U?B9Û?>˜J?,ô¨?IH?–3¡?¡ÉÑ?·Ç’?·çT?ÒÙ>ö->ÖÊ+>Åà?&›?+í?`%?wñc?¯?pG?  >¼;Q?,Ø9?y—´?yÛ'?z ?t‹÷?rWà?”ɽ?¹öR?‘Ñ? ÕÃ?©>¶r–>³€>,øº>Ñìq?…‚?ŒÞš?²¿«?žëÑ?}xÍ?….?ŸŒá?´?´‹s?°|?~yš?pOü>þÆä?(M?® ?É>Ä´>åb?¿²Í?µJá>Ù'Z?Jd?{ +â?l}”?lQ?yŠÛ?5ë=?>Œ«>Ê@‹>£*? ÅÅ?/å@>-Ø@09>ëÌö>ó›0?jÜ?e:?_1 ?Q)ë?ìÊ?öð?ö>ójˆ>‹ža>Ö\?©ä‘?¬Ø…?¯Ç?¡ïŠ?G—?Pð?Yf?nú>ÿVr>ÓÅA=!OÎ=Ó'4>«ÀŸ?U„?bTl?SEv?+š?,£?«›?'à?ñ0?‡¤t?¨ª‘?²Ê?¸ý?Í?åè{?¾?ø?M¥?)A‚? »®?8Â?ƒ¹¿?*Àþ>féŒ>'U„>weÍ?ì?j? R?*¬W?J’Ú?fgÈ?…–¬?@œ?;+?Pvÿ?‚BÇ?n×l?fÎÕ?erF?O??noj?‚^ ?¯ˆÌ?ÅØ?˜3M?ˆÌJ?„oe?‚uu?²?}Ô?‚ ?…þ?‹0??®ã0?Ã=ü?¡ ?”ÑÑ? +àŒ?¦ÆG?:Td?5h¬>÷y>"C>ºªb?!Ï­>Ô­=>'?bj ?ÊYò?6â;ã°»=Qý,>Ux? ÞÔ?N=K?Y4?MÎ?svÌ?ƒ^v?E &?3*ÿ?L’%?M~P>¬´S>†”?œà?žøx?AæF?0êþ?,.e?'oö?ƒG?ŠÈx@)ô@¥Z?4%À?=nf?Ä8?ÍTÚ@Áâ?îÓ/?”¾Ý?ƒ1?ÔW?‡\¥@òô?Ë¿C>´Ÿ«?/ÑÀ?dþ?·†l?ê#¸?§^ž?[¥Ú?ï>¥Ö?=ðË?„”?4èˆ? õ>›-æÏA«aÇAó ¨B5®âBKè8Ag7?%î©?ô7@PM@Ø @˜’?'’?'¼?R#Ÿ?sY?ö¯h?à×e?x¸?‘Õ?„€?Šù +?—ò ?„×H?@)p?0â·?;?a?‹Ê]?Æö§|@àh@t®-@G*”@$€9?¥ÅØ?!~?¡1Ç?¿$s?´ÿ??®$?‹Çï?„ÙÞ?ϾÕ?ÜÙç?rX?lÿÂ@ŒJ@WT?ó?8÷Ž@”@g|@ n„@ +·?û¤@{V@I@,‚`?ç½U?¦rž?m?{Ùœ?Â|ã?£C„?‡s??†»(?…(?ýx9@L"?u&¢>ËÿH@†Ó@ø?²NÉ?–øG?„§??4@ +)œ@§Ö@$p•@o?’c?œh?² É?¤X,?…NÐ?·ûl@ I?íÃH?eÐc?@¤?V?Vÿ?"A?Â"?(½?£%á?Ð×}@zý@&²š@ à‘@ñM?ý; +?óÝh?’ñc?…^v?ÕøÅ?àÃ3?¦- ?¯ƒB?óÑð?è +m?ñ?ï¸?ám?Öº>?¥ƒ·?…å?5Ú+?ˆ-|?ÏÍÖ?îÿ,@Ç-?ê ¢?ͦ?ÖQ?Þ÷þ?2·S>!Fî?´éi?íÆÄ?¨¤?˜>¤J]>8Ž_?ýƒT@ +2?Ò“?Ïõ?ùC?"@Tˆ?èó ?…2¸?aË@>ž&Ë? M?”™6?³wÉ?ô?¾Áw?I5ù?ª&B@—Y? q"?¬?%Ãé?:2æ?ª–v?ÒwÃ@…~Â@£Å@›v@—‚±@P J@8Þ†@‰ H@ŽtÊ?G]X?}h?IÚ—?YÌ_?Ç5J?ØTß@/ûÃ@*JŸ@»v@›ö@Yª@7?­¢?±,ÿ?Æð"?äzè@%@á@!¾@0z@=›@ˆh@§@-°?öàÀ@[ÑH@… R@+03@c?Ó£j?Æka?ßWL?çžø@pÝ@íæ?Û*,?´@@i›'@mêý?Òâ°?ÅJ@?LÁ@6á?ƒ?Cž?—Š?ÄÛf@g‚@N‡?ãá@@@ƒ@ ÅŸ?ň¯?ʸ0?Ö±”@ªd@PµÓ@%–U?ÓR‹?ù™d@=ù@=©@"¡r@ý?ú̉@K¥@/a@ ?éH?úgO@(@K*è@sc?­ze>PgŸ@:™@ƒ‹@!"T?ý÷C@a@nH?Úc?Ä+‚?€%‘?c}@:ÌŽ@Nœ¼@'«T@#8¬@Ù¡@ؽ@AÆ5@AúÂ@Ý,@•2@X…N@YÿK@ŽÛû@Žiä@÷ @¸°?íÐR?æ$?÷:?4`@}Õ[@~¥–@e¸M@eÚ=@UÊ×@FëÆ@Wí@Y_@:ÐP@!vf?)mM?UG©?Ên¥?䌒@,Ÿ@-ƒ @b»@Sï@jn@S\?Áèæ?³s?3H?´™@/G÷@!£?ø¯i?뎡?¼|†?û`@`)—@Frã?ýV÷?ï¨?Éæ?Ñ£?è®±?úÝÛ@?ú¦ã?–¬ì?äû7@igÔ@8wš?BŠm?‘|Ñ@#Þ\@22?èfD?÷ÄË@ò@ýr?Ä0Ì?»§Æ?S‡î?W[‹?—ƒÁ?ƒÂf?÷Z?*™t?¿œà?°žã?ô}?5‡?Œ4f?¥§u@?F0@7„=?À³œ?Ã[ü?~®î?†à©@ú$@j?þ\‹?þJ†?—^ƒ?”1Ï?èWî?íy_@Ý@ Ár?<²? . @ +]¸@¥@rd?ó¥C?•–¶?…«@@9¾?·1ã?Œ<¶@ ¹ù@({L@1›@ ¤G@¹O@§ñ@SC?àeD?ÌmÜ?¼ý/?Òí—?á;q?¼™â?˜¡Ã?“ÈÐ?Žír@D£@u•|@a¸~@;Â@ƒ^>úðJ?0:…?õÄ?›b?z˜\?Ç ?åàó?óì7@.úE@,P^@Iµ@Ê@?Q´@A·Î?Ò>£?ÑÊ4?ÍXÉ?Ê +?xÍ_?L´¥?®`$?¿×Ì?MÆ?xàN>¶V3=òw ?¸"y@ @X?Î9“?šM}?«Ìý?ºŽ? (·?wü?gò^?>¤W?gð>URþ>Úñ}?¦Æ¢?© ¶?Í¥†?ÃãË?üx½@D?%Ëì?qÒ?ä ?ø> @%Z @'‹1?é…±?æ}î?æw»?¢Û‚?º›?°jP?´)e?­¸£?«ã ?¸õ?ÞüÓ?ÛÚ?×o?Ó/Ÿ@&¥ @Jb?ß–s?Ïü?Û \?ØŠ?¾èœ?¦¡ß?ÇÒ.@*Ÿ@"Ù™?n@?’cj?¦˜%?­2Þ?L&h>çQ?DÎY?š1"?ϸ1@5Ï@4äÄ?­²A?­Ç’>%d`=á?^dô?™` ?×_æ@ý§?³ ¸>èĬ?Y??•Y +?ž…J?§¼œ?®W”?·™j?ÁUŒ?tøÎ?Eøl?zÓÌ?‘ ]?èy’@"ƒÝ?í´?E¥?#ªœ?qtx?^\ó?!(? 7_?TÜÞ?rÓ?ÍÃc?Ͻf?g0>£qr?Ðø5@ ³?Øù?²Ý¹?“,?ƒ!?w© ?w{?mäƒ?3žû?|Â?Ï*J?Ãöï? ò7?±³?²ÇŠ?‹ÖÓ>öñ/>÷y—>ø –?!Í»?„ˆ+?(Óœ=ñps?®1?TM®?ï¦I?¬¿”> >y>ÿ—&>Éþ>&Ü›>y©M>‡¦X>œµ¡?“&?_F?‘ç?X¢S?<?;nÎ?{^=)O^=ÇA@>òé->Ø#p>½ »> >tãü>Æqˆ=¾˜:ó8^=WP>>ÿ=îå>>4L>qäÏ=9Àõ>F+‚? 8·>Pî=±r;G%\?Óù@˜]9@cK?·¢u>Æâ>¶êÍ>܈ì>°ú=#ñ;>Âb?á·—?ðâ?†éÖ?~u±??Yb?,–a>ƒûû=kD=çQ”=‡¸ç=”"?i~5?dÍ>?mPþ?oM3?ܽ?ˆé?|>•ÜÑ>ˆ¥þ>vÙÒ>¤Dç>ò»«>«¨ +<¨¼=¯‰4>.øÜ?ªº§?µ ñ?î¨[?å; +?÷¥>öªð?›±?!d’?d”í?wç?¤Iò?¼è?·ºÅ?«‹R?ƒ ¢?W{f?yÁÐ?‡ž‹?ahú?>ô?ÎU?Ô€?4Ü?ióå?"h>Uê?%è)?[?( +?ƒÜ³@Ly?àæ?#R?Y:U?ÌÄU?ÄÓý?ió?pTa?vºã?|¼†?zñ?hç?!ã?(èè>ÿ[:?#ä?SŽ[?R%õ>“„°>Ü,Ç?ý·(?á@ =¿¬?`ÍÅ?Pˆ@?Ú¢^?ÜkY?ñ»?x §<—ö>z¼?¯,?~ ?@U?8ï?#- +?íä>8v>£9L?‡¥A?_Ýb>9w?™ì?’àF?9%?vv?2âô? ¿?\=>Õ< <¿ˆU>Ý%?ïPÿ?¼U>Ø«Ù?A„ì?â¢Â?Ä•z?¡û?tí?LG[?B=R?FéX?RÀà?OCN?€ï‘?®"¡?’¦‰?Gq@?°oi@ +j?çõo?ò;?s¸?û5?{ ?gè[?£°?Ò>‹?„‹0?¶?_MÃ?”œž?:¹õ>åqt>²&Í>ˆ-ž? o=?5±Ó?+è÷?2æÍ?DNã?>Æ€?ÙyÌ@A’?¨„¶?rwh?€é[?ƒX˜?(f?·4?mx?‚w}? ?^?P¿É?YŽñ>ˆ÷(>W^c?1o?BÁw?ÁvI?ÍÚ?pRÞ?^“³>ödµ>Øþr?!fB?"ŠU?‚½=?nÒ=&§@<¾¶;@"À>0j5?{ZV?“ù?û‹Ç?Çzb>sþ>«Öd?îm?:!?5MC?@¨‹?I´ï?…²ü?¿Ú"?š ?S'¸?Z\?UU‰?F6Ÿ?G Û?QuÛ?[HM?°Æ ?îåÑ?Æx?#x?Ö}?¸VÙ?B]=¤¸>ãf´?ë?#÷s?(ÏÜ?‹ Õ?–>?¦<?¨Ð8?d–?Cvâ?ÔD?á±?¹>Ž?±ŸY?„b ?ƒ,i?gh?ö @)“e@-~¸@,ó@ÊJ?ƒ¹R?Zæ=Ù/˜?2@”¬@N?¬Ã?Ü Š@$Õ.?á]>¯Ã?TÚþ?ÅëB?¿`­?À/ì?e©>nWT>[ÁË>I6ä??_$?<¤?#êÏ?C•L?[¿ây>áÀ@M¦@«4?ŠÍ<½7ˆ?,¹?1¢D>Í7/>öQ|?l ù?m9¸? “?¥°r?ñF]?̽>aF›>”](?áß?C"h?²?Á’å?Ø:^?©É„?fé?~h×?Æö9?íæB@ +³?©oÌ?,Ð?” +k?Å‘%{?Ìš?膟@$ó£@'´²?ÊJ¥?¼¥=?ô¸?òýœ?IY?W>µ?°¸ø?µ7ä?®7‘? E_?X_Á?‹q?×ö†?¤D?÷y? Ž~?#Ì?}\? AÒ?P‰ ?…#»?=c ?³¤?«À…?Ý)}?âæ?Ý Å?æéó?îç +?ÍŸ?ÇÚv? e?>±?øŒç@¿C@–Û@`œ?rTÊ?ô,@Kæ?éÀ?…NI?‹XÉ?²?[ò~>Y*>¦9©?þü?¡? ý?O_`?mŸ?­í{?È -?þwš@ ²l?ñã“?ê Z?õÝ·?õV•?S¼Ä?8åã?ÎÆÓ?Íf?§Âd?²Ke@Qw@ZK?”±Z?”‰©?…^?ÔÂæ@Oêb@)c]?»gw?Ýo@ZÕ@"£'@D @4Í*@%à @]HE@}ï@4çT@¹J?å"R?ÕØÞ@¤@#|'?vÁœ?0Wª?cÜ?pÆ«?Žp?‰œ?…<ó?•p@ ˜Ë@ÆO?Ïê?Ã=^?­Á_?ÂÔ ?÷¡ï?ìS\?Ö¦@ $@@X@ëª?~Æ?Ë“C@UD?þ,#?÷°õ?¯y‡?sî@]q@»h@n7[@‚Ÿ£@G~@=‚w@CÛ@#@Ø?Ôa2?ȼ‡?ƒ ?¯Þ?«7û?µíº?ñÛ“?óüñ?öé@ +#Â@4ï„@:º.@L`´@)á]?ÓÖ®@x@k= +?þˆ=«5à?ͳŸ@?Æö@-«@ï‰@ +ˆä?ù@j@R•@61?Ùr?¢ÝÚ?ÞA?ìI@ÅÄ@4Û@lCì@}ß·?½¯?¥fñ@~ô @†­Þ@””ô@‘„¼@+ûD@$ªÃ?Ï%?çÈ +@EÜ @KeŒ@eÂï@I†?ųÆ?èÒ“@$¯s@Óà?úðã@C)Y@ŸÂõ@|‰é@#+\@ >û@¶„@F®@M´@#ä¿@5?¤@<=B@?Ž±@IÛ@PqÛ@"ˆ@ýL@È@*?þ,i?ü,„@TM@pô?‡ób? +³?¨«¶?ÇÓJ@-h@#‘ž?Ú:Ý?Ä,W@µv@ +«Ç@=7£@CøÑ?ØL ?Îs@æ@'_@0ǽ@592@À@ís@Cƒ”@A (@Y@ËÐ@C×@ +~??‚#½?«”@—­Q@{?Âÿç?Ë‘@α@æŠ?Ü%?ñ±D@â˜@±@̵@sÖ@ÅD?ûñK?”š?›ÀŒ@^@²•@"lï@ 7@ÁÛ??xÝì?£â@Ó@ ÷?@LÞ@: ¡?èào?ј?›Ìö?­cÏ@’B@1L@›%‹@?ù# +?Üñ?ˆ]?—Šy?´’j?¬f?€†?¬X•@#t¯@ k!?ä±ð@ÕÀ@H”@*+F?§ñ?“^Í>îA>Å>u"?"vì@•‘@ Ò¶@9ŸÎ@0öR?üI;@Og@:Ѧ@&4î?oØ;?„3Û?æ‰`?Óg¡?J¤?¸d?þ1:?ì f?3kÞ?F8»?ùà @€?þ`¨?þ<{?ÖiŒ?Ô?¾ãY?¾xÇ?xùÂ?_Î7?†A?†Er?l¤y?r[C@,­@;Ô4?×.û?· ’?Ÿµ%?¡ ž@s@%IÈ?Ûeâ?½‡@j`@Þ @2@~è?þÎL?Ù)?Öžy?Ô.Å?Ó³"?ÞºÞ?â6õ?àlS?à,?á n@”Ž@0@ ?ý)0?æû_?°…ç?®?T?±iJ?ƪ¯@Xš?ùvå?Ð4U?ÞÈC@[o@…@ @ ˜?ÊvA?Ô:Ü?Qd“?QƒC?ÿ÷@E(@ ¾œ@©E?õÈð?îÓ?Ϻ¥?»ý»?Ý:?äòë?уä?ÎK=?Ùc?Úo?œÙ ?Ly?£»Û?êÛt?á!Ô?Ù±˜?ªýL>÷š?-ïU?¶–§?ÛÎa@GÙ¬@=Ð>´ÿ¢>‹¯Ü?ûïº?úH*?Ùß?Gù?ë?–œE?²5?¸Ÿ/?ŽÁT?uõ?ŸÝü?²-ê@Jö@"6@¨j?ÊÉí?I>·¬z>µÙn>ÓWò?#C#@Ÿ-@:-@)©@.ùß?ñt?÷Á˜?ø«R?ú›5@Bj@UY"@ý?È%Ù?›:a?seÜ?É„@÷‡?í¾?‡„q?›}›?¶.?³1?¦0!?§‡+?cƒ?‡ºl?èFW?ðQ}?¼$ ?©ãÕ?< •? ¶,?KO`?qX=?Šæó?¢:u?¬)N?´­Q?¼2{?Ðd‡?ËãT?º|°?±ŠÜ?´*¨?´Ô?JÆ¡?$׸?Zˆ)?o¦o?)!©?íV?s>í?©oÜ?…Õ?E?’•I@; @/›?®ã¬?´ÔÐ?V)Æ?5Åþ?*%?@?·Ôé?íºO@îU@)V.@ ÑX?´Ñ‰? rr?$%§?M Þ?ß?ÛÍè?¡S?š7?KV>ë)]?° f?ø`ù?Ç"[?ŽîÂ?Ö»Ì@8ÿ/@4:.?ïŠ'?ì?ò?fG?V³é?Í ?ßI$?µ´?ä£?ˆkÂ?jg¼?VÏ-?3i&?{æl@¼½@Š?4Æ«?È?ï’@ éš@êY@€¼@g»?éq?Ëî¦?„9G?…?hº¾?h¤—?ÅC?ÏGî?œO˜?†_Ô?Eg? +„‚?)¯?gùf?Ÿ@@+š`@'ã÷?­òv?­°;?.'Û? Ÿ?0??#¦7?F-ð?P¼ß?A"?½ ? Í‚?ϲ?Àéš?z ï?fÎ?‘Ôê?š›?»¦…?æ¤@‰™@ Ì’@+j?™"±?¤“8?R(‘?IÜ4?¹Íð?ß×0?¨ìW?gªN?‰Ì«?´ÿ©?­Ì?SÂé?kŠw@_'@æz?é!:?Âf“?ï¿ @éz?ñÒ1?{îè?Ÿ9@,ý@-j?}ñõ?¶.?¥i&?­3i?¤?‰¿?tYý?g7Ð?·?£äÎ?¨™ƒ?­±n?­ÊÜ?Ê‚L?¼&ó?¢º‰?š`j?ŸíW?­‚¶?•5 +?F±?Œ_>ºÇŽ>ßl¨?™ >ò¯Z>¯)>rôÄ?Ѓ?ê·ä?ó„Ì?ìÑa?ì†ø?íÉ‹?¶æìæ—? @?ºeæ?«Ã—?Ž@»?›Øy?'­>Ò#=?Žã–?³å?Ml¬>ý†š?EÅI?qh(?6Tx>ò9ë?>?< ú?V‹÷?tª?%{á> &?›“?-÷Ø?YÖ?)Ä2>Oˆ?´‡?ÔGO?¹Ê =Õ† >Œè@?{ª?~,?Gr?–¦?Gî?ZB?>(?Cæ»?Lp?šäê?õŠ?yþr=Ó,?‘˜«?ãĨ?"?K â?ZL9?‚ò> Tn>^ß<ªµï=åY?ûn?,ØC?b¹>Óé>‘›(>&bæ?¶>ñ@>ÔBv>_:±Ø;ã,?’ 4@D1þ@Š&£@g–`>dþA?yu>F?€€?†ëW?­Ì?®=Z?—Îá?†"?"/!>¨ÀA>ºs>볜>§ê;S”{<0.=µð?8? +[>† ±>€L>Õe>ðýþ>ñi>ñÔ¾>ò@)>ò¥9>¢Å=©äñ>Èx°>Á²ƒ=‰ŒZ= „?¤$?¹œ?Ôèþ?ÑÓí?È4ê?¾I?v5>Ì,a?#O3?<‚5?¢FD?ʉ?pª>ù‰˜?YŽ?›Îã?à`@Xv?©N9<”Êp=­,> !†? 5g?d:?ƒÏ®?|U˜?G·ñ>ŒË?&|:?Ú½Þ?¯­>µ)†>²Mñ>ýÓ??`? +úC>þ|¨>Õä=íè=žòM=ˆ¢t>†Ü?¢ ?œR?•ö ?éË?‰ÜT?÷D?ãƒ?×Ñå>Æ·ž?kÓ@ÒÆ@àü?3›B?IÂí?씤?çëè?‚;r?ZÒµ=&®ô>5c?kF&?‡H}?ýíò?Õ–6>¦²>ùŸ?Á‹y?²±?3.È?6qT?‘ i?“9£?<€?ˆ:+?¨çæ?˜¸×?ò?Aïy?Àî ? Ü¢?"Õ??ÄF?n,Ó?c*p?bRí?¤0»@hÝ?Èà?8zM?,`Ä>ÿÆ?"M÷?k¬?\k…?Z!x?0ÆÑ>¶ös?›?pZá?pC'?râî?§Q<²»ð?y°¶?ö` ?Ã`®?š¤E?¢ j?ŸÆ“?±Mò?Ã7Ä?$J,>#P[>z't?€Šþ?¶!j?6ÜX>¥z?q1¼?¤Í:?PÂï?z;>+=æyi?EWï?‚!>q== t>÷Ü?·+?šˆ›?£,?:y.?-ŠÂ=‰¥^>ôò?š¢?žB?žèŒ?©¿Ý?¬=?šŸƒ?0F?f0’?hò¾?[QK?[U? ¿ï>éîÄ;“sn<~0=›åâ?Ýè@Ý·?Þ¿Å?J6]?J@’?^Û?tM&?’µQ?^ðj>î»P?Lñ(?©å³?l[:>žó~?!ð¯?†S?º>'²w>„ü”>jõ=FoI?•5?ä÷?­«?Äåè>ý{£?,»?k’?˜Þ¼? KH?àC7?ïÙ?ˆÂc?s|v?}M?ƒ^¬?ÄVç?κƒ?¡ð˜?©é ?™'³?“žS?$"u?!Ãî?1¿&?B—–?¾º?·H¢?…Ê“?ƒBÁ?{lV?¾Ï@AÑ“@=€Y@31@ç¦?†n?={g>.|?HB?Åë[?©ÍŽ?‡©?¥`O?ºÂç?b«N? Ç?wÔÆ?•¹à?‡<3?„!?A.u? +¸?Ÿ¤‘?¿:1?É/l?ÈÓŽ?ýäì?þ]â?ˆrŠ?zW£?©'‘? ®V? d@?/‚Ñ?–ü_?œ÷?²Ãõ?œï„>š->]&>»î%?š‹ý?´ Ç?è"‘?çƒÎ?ôÕ?é?ÖÎ5?ïÊQ@ „?ëÂñ?Ç ü? ED?‡ +>?/µ”?ø?¤hÀ?Ç/ô>¢ÃÀ?µüB?×g=@?XÅ@GQC?Žzp?ÕÇ?„ëª?ŽõÝ?ìñè?וø?}ÐR?‚…„?žÀö?¡ìý?²;õ?Ä5±?è_M?É”d?‘5?¨é¾?Ç¥}?¨BL?ˆ¬rä¥>}Ë,?ùc`?ëfP?Å•?½èg?¬-?ÆZ.@úá@ -I?ä3À?§}ñ>é}$?˜J?v=x?‡Ä,?ÿ±?Ì +@âË@P®@€7ª@dû?È ?Ï`ë?Ô5D?Ë6?ÈÁ?×ù]?Üô?ï»Æ?èh9?•å»?± ?È•?ÄmO?£ëZ?Œ‚†>¡ù´? qð?›6Z?µ¨?ù=?ÚåU?Ÿ©«?¡?ùï@Õ@ Ò@¼é@&€n?³å2?GfÀ?ÞÌb@ Ø¢?ˆ2Î?:Óà@j:@ˆ­j?ÓJ?1[ñ?”o?”gø@0$*@",r?]9?%G?ªbJ?¶‹?耬@Pi@ýÓ@yŸ@/¼@P%@ƒ‰ @Oz@1¤?‡nh=bNá?œ?‡ÀÓ@'%ž@`iw@Ë?ö1Ê@M W@fh@Sk@P³¼@S˜T@QÇ×?Ââ¸?¬4?âÕî?åã“?ÇED?Îì@ ²]@,l@þ:@ ‚”@d¡@ç@X§C@bÂÆ@sq@W—­@)D»@k‰Ý@¥Û@¸u@`c*@pg @E @+p÷?Ü9é?ùs$@jó?çí?Ùï?>=W˜?ò·²@_¢@ W™@$€Ò@P8S@U ?…Ùñ?IÅ9@ á@ý•@zMn@|“@F1@>Hé?ýÐx@ +€Ï@EÞS@>‘l@"š™@Æ¡?Å´?Éá?Ôéá?ù€“@¤È@E.Ü@‡„Ï@Fó„?¬¼Í?¨i{?¥Q,?ü¢r@(•@å@k@2º)@Wî:@Jµ@B}@÷™?ã?áXÔ?èªÁ?û½?ù"@?‰È?4@«?ÔÇ‹@,Æ?Ÿ¥æ?…èš?ÁÀ¼?Òø7?—æ{?Žw_@.3°@<1?²]V?§&?ý+?üXH?ê°¡?èf?Á£1?Å¢@L}€@FÂö@C„2@?¤?¾`ù?¼*ô@2ÕŸ@+gN?‚$&?Œfd?íè?î¡?É©}?Ö¡c@!«(@7ð@˜§@‚B‹? œ·?Êâ@3ç¤@"Äw?Íä°?¼3‚?0‚8?Ÿ–å@KG@(”ª?@n?‚ M?`k?)Úö><·?löè@V@Ú@B¿k?äî±@ ôU@R@W´Î@^Ö’@>Õ¦?­•?¥ £?@¿W?ˆ´©?É*9?Å›C?´ˆ +?²@h?¯ó›?Û—L@+Yf@Mð?ŒÛÕ?Ðì @S+á@I4ÿ@:9„@&FÉ?˜ø:?´ +9@‚x?ò}??Ÿd ?¯ë ?ÿøY@Oü@ ÃJ?ôÕ.?ƒÚ-?À‚@|Ÿ@o©I@0¥È@-i’@3c@!ö6?<»C?=¶Š?”R¦?œ^¼?‹ ?Žíû@AP?üQ¥@ ‡0@ uŒ?¶#8?½l?åB?à’@ë7@¡J?Æ8³?¾;>}n¤=’xÃ?¨ßú?ë‘?6jA?è ?¢n­?²xP?´š¥?¾HÚ?±~Ô?¨ÎÕ?«+æ?±´@ +µ@Ç?×и?§’ˆ@› @!g? ª°>”øÎ?f5)?µ Á?z˜ž?Â?Qïe?Žo ?µæt?ûSã?ù§ã?õJC@…ê@@ @i @4HŽ@!Èž?»ÖW?ÅFÂ?ú@*?ó?Š?¸ó|?·úÁ>ùçF>ùÎh?‚,?vt@&*Ñ@+$™?ãФ?Ïg?‹â?yè@0tÆ@X_K@AE@@5¸^?×ká?†T?«ôN?É%?ÆÊ +?¼o¶?Ëç.?ëêg?Íj?˜¶?Šj^?1kï?Aµí?}ºú?’ +,@AÉ@‰d?÷ ‹?÷â@þ‰@Ñ?!'î>ö‚>ÔÈ=Ú¼ò?T‰I?‡#ß?߇?ÿšL?ÅhŸ?§ñD?⯠@¿Ç@|«?â¥?ßíL?¿hª?½u?ÉNõ?àè–@1v@)’ç?tŠû?tqVïqö?p™±?³fP?—Ú?N­f?€Õ‹?åðW?ù Œ@ +xì@ß•?ÕçL?×Àg?¨v?—¨Ì?ëM%@2?Ã&¤?‚ùt?§ôâ?ëh?ØU5?¡åo?‘g/>âe ? +<@  @€?¹K:?’w¡?²j?Çùl?‹ìR??lëÖ?Ï5«?ÖÖ@þ[@þ¡=]œ=°‘*>‚>¾>À ˆ?Ê??^6?ZSM?jh?ju©?`Ë!?‡/ƒ@ E@Ý~?”l?šÍþ?¡rõ?¨?ˆñÉ?y±v?ä‡Z@%R'?íoÈ>‚—J?‘ô@5o?ò‹W?æ†é?ß“4@ ˆÑ@ a?»©þ?}cS?zð½?vEá?TFd?Æ~?8³!@Ì@-{?‘€r?^É1>꽂>ov?86?­fT?½ Ý?òþm@úV@B-2@EÖo?™j‘?fÏ"?oüª?z™µ?‚?¾qG?ÏJ?÷ù8?ô]Ü?WHÂ?Gõ!?Hl?0ô?©$?ÃÂ0?p)4>ëV>¿Õ÷>YI>»ÿé?Du?<…¤>í’1>ægÜ?ó;@9?ª=K?47i?‡£?â#6?ûÖe@-Ç@,›Ô?¡ð?ÏÃ?è6 ?ñYs?Ã,?³¼ý?£h8?„Ì +?€“J?x©?~ž?¯Ú¤?­Ì?ãø?çóû?œQœ?ˆîÛ?{Ìa?hy„?s{S?‡´?_+ >&Ý?º÷@gP@bK?£¿?‹/? «?³5«?¦®Ú?´ ¬?ê*K@ +*?Ü~V?kÜf?…ö¶?°±|?ž->ìëÚ?Æ÷?ĉ·?ÉÂV?}\À?_ã­?e€Ë?ƒ ‰?¢?­ûÂ?HSk>ð£`?òWw@1¾×?°G>@j>ª[ß>ó i?7Sp?‰Qo?6m= Yk>‘n´?kðÝ?gû)?wb?s(\?NŠá?#¿õ>ùGÅ?÷ï?BöC?6c?xïz?@ +>#?—>Ìà¦?Xe‹?s·'?¿?Û“?¬X?‡Ñù?póI•?Ʋ?uHŽ?„ýL?ƒÎ‹>8º‘?GÉB?c­é?ĵ>ÉÞ§=±èî>³T?:dÁ>ùçÊ>gº+=;,?ú +?üÌ“?‡U?€ Á?rFæ>¨sH?ûÕ—@“¤F@UÍ@.W‹="ïüë&>ªÈ¯=r7$=ÒÚZ>é„ð>äŠ>îo>ï>>À¥>¯ªW>JÏ“>7?í ]>G4\>®H»>²1²?lPm?{G¿?³×?­¦?2û?Dü.?–?¡jÖ? 7`?‘±Û?úK>øi6?wå?“ù4? |®>µd>`È”=©8‚>„lÞ>ê«>€]>ÄØ?Xy¡?ù”>µü¤? 3©?|R…?‚pá?…¡B?›/?à&Ñ?ÕÒ7?¬Õ?‘v´?û?*ì*?iÊõ?]`™?K?3Èà?¸7Ý?¤¯i?]&%?¢ñ‰@Z¹j@@Ïv?¿ºw?¹·“?šé?ž¬?ŸV?˜§?€1Š?ƒ\•?“3U?”éw?³»ü?§0?QW?=Ž\?þÏ?韓?lñØ?U$š?âK?*à ?„G?‰øé?T8¬?aÕ?ÄÙ? ¹÷?£°Ø?œá2?aòN?i!Ç?“©?vmå>ÐX?¦?g*?rò?~_?£•Z?õÖ?îùÕ?î}X?µ»?›?PéW?€?›X?µ?0¥%?Á)?„mŽ?¼\?„Á?U¢¸?|"t?£üž?jO>Ü)3>Ÿ—w=ÕaB<å`=“M0>UH>XB$>AqT?;ˆé?“Ÿî?–W‹?™;?Y·"?Mb?/è%?A1”?¸¡?ê]%?„?1+ˆ?Eøg?@–B?]Š‹?p"t?²%†?Ö¨>².¬ºÝ>›|®?8?‹í?JùÜ?Zÿ&? +)?+^¾?V’‰?I4 ?"€>?ŽN>- ±>€ù,?z©?gÑ_?øè?3H¡?¶€?¨jO?–?¢Í?µÀÛ?¤fT?‚ï¹?w—µ?e@r?NGÏ?ÜK?Ú?‹>Û¡>i*>‚[„?Ux´?­ðx?i/a?Cµ?¸í?<ä?q?_•?Tz?eX?|?ƒV~?Q5?K‡*? uù?±z?$EÄ?r:>†2h>Õ¢?{«¸?ƒ…3?ßé?4f?Å\?¾Ž•?D°ž?bV‘?Åxw?ºPŸ?yö?ŠÅ#?À®-?¥ën? +¬>ñIx>°hõ?<Á…?´²?73?Þ +>ç—w>²à?d3`?Åé?þÌ@Ôî@ •—@o?”wJ? L?ÏŸ@Ç÷?Á{Õ?”Ö@ ó¹@(§?ÆÏ,?š©F?úüP@®?03-?¾?»ÂÝ?¿¥i?j>?‹é'?\&?&¥?äyÒ?Øê”?¯ë9? x?RX¢?d;Š?‰—‰?ƒœº?‘U«I>ûeU?±±Ä?º"š?È Ê?Ûœ¹?ýÑ?¾ÏE?ec?ñ_è@9½@bÍ@qØ?Ý‹‹?¿—ê?ócn@Qú?båÁ?Nå@iÒ@‰˜ü?ËÎ?œåÇ?œ‘Ù?£Sñ@B‘Ó@7¯r? 8 +? Cí?NV?Yd»?kÓ²?×jà@rr!@Fï/?éÃ#?Ú(à?Ç·v?ÌDØ?Ð?±¢Ž?‘EÀ@AÄ@EÅí?Åvœ?B'»@ +¬@!“‘@FÅÖ@U2ú@ƒò@ˆé@mcÅ@h ¥@®#?ï-ø@Aø@9þ¤@ü\@J«@<Þÿ@Hp'@t»â@gÛj@<ê€@<:ó@5ü0@Qœ=@‰w»@uÙ@?x@j_@’*@Œ$>@„#:@w¬I@jÞ»@=rÂ@T@ ™@ls@B©o@Yœ6?óÖÌ?¬ +à?çž?ý[?èµ?æ +@w!³@‚²•?þV?îŽé@ÏŽ@y‰@Qó@Þà@/¢®@'¬ä?°¸&?Ùh3@Iï@.—”?‘¹Ì?¦è;@cƒ@?d@¦à@}|??ÜyÖ@9{‘@˜ºT@VKF?±Jx?¸gô?½ÛÎ?æYè@ ªò@.õ@Dš@1m:@(°U@"{î@I«@lM @‹fc@Ðî?±,@_­£@‹Uú@8:@Þ˜?³Ÿñ?‡ŒÝ?ëT@bÎ@1?þØë?”\N?‚É”@Ù@IŒ?×÷ ?É—P@G¶C@LHT@%®@‡ò@MÂ@Ô@K.@Or3@™@â×@D@C„Ú@(ƒ@ +Õ?RH?[¢-?S£?ygk@  ‡@yE?…:?… ?dA?˜w?ïã?ë¼?íRž?ù_@W?äÑò?Uã?½ß@pYù@L[b?£M­?ŸÈ ?­w¯?£U?a(*?BM?4£?4Ø·?ŸCh?¶Ç·@`@„Ä@AxÙ@1@o_?îØ.?ºçÙ?éÍÝ@5²#@#…?õ?t?Ø)?‘/ë?¨7Ý?éÖ…@¦t@-´‰@2+±@M‡º@7õ~?Ù-?Û~¶?ò‹å@#@An]@4ñ£@,@¦?ÿù$@œ +@_Õæ@M^±?ÿ©¹@1@#‚~@Âá?œ 2?­b?âpÉ?èv?Þ†$?ÒÐÉ?•v¼?‘a?˜Èæ?›Ë?´)5?ÅÙ@?@K? Ù3?—ŽJ@ Ã@¼9@-Z @+N8?Ù•â?Î<ô?ÄX ?Ás?õã”?û¯S?¿:@?±>C?èCm?ñúV?•‘n?|Ô"?ŒQÔ?’ÃF?ÛüÔ?ð'°@wó@ oƒ?ÛfÇ?°»@´…@-9N?Òƒ%?V"\?ëR@.¶\?ü|?.t?ùu>@>­ï@HÑr@ZqE@L„·@6ÀG@ ‚°?OêD?jVC?ŠÐ?Ü!?»Öà?¬J‚?GJ0?e‰,?Ã?–>ùê>ùú¡?µ¡?¼˜E@BÒ†@Jäæ@®@@œ×?¨?‡`#?¬ ?ºá/@ +õ‰@Ó@[_–@u‹§@ !Ð?Šõ»?–’?£¸?ž‚D?”à²?j¤ +>÷Ï2?i"¾?çV`@Í@2=@"ul?æ¦?ë’È@ó0Ø?]z?½§[?Ôþ¢@¥c@?‚@Ãç@‰:?Ô·Ä?Ý·?x™Æ?rÛ>†Á=\"?í^@ Á±?·:p?U~y?Šd[?Ÿ«×Aâ?7¼Œ?ª>?™3Ø?pz?sáð?À¯?É\P?­»Ì?¬ä¡?ä(/?ð×&?ŬK?ªŠ4?’@±?‚Û?(?nü¹?DÍ?œ± ?¨9M@1@)…@€?õ®?ΊŽ?ÍæÔ@û°@<7ù@#Y‰@Îz?Æúº?1ö?-®?}Ÿ¦?{ØÚ?2ØÎ?&EQ@œf@¯?ÙT=?І?äìä?ì m?Ízþ?¦wÖ?ÛvT@+Ïâ@,à0@-7 @-Ÿ±?§°Ù?¹f@,Û@g?éLU?·a¯?¦ÚØ?•5Ê?«úÆ@ðB@ Í'>éÍM>é´? CÝ?º?‡l¸?«º:?¶ªc?Ìú?ÿ†œ@%o@]–?°ÖÞ? ?êQo?ò†y@EéÅ@c?g@/Ò?®w?Àœ?âÉ?Úo?¦Û*?ÿé?Hä ?et·?èý?öu?Ÿü?.Ø?“uÓ?Ù@x?½ó?‚ C?‡µ$@îþ@ Q@@Kø@ pŒ@K4•@^"l@5h@¬â@ig?Ìʼ?Ï õ?õ”Ý?ê .?xFÆ?fsS@#@D®¥@)’¾@ à–@”Œ@>¿p@'¼Æ?êˆX?Þœ#?ØpÝ?Ä®«@ õo@",?°Òâ>ºž?%‰?¥ï£?¡ý•?‚ˆ°?–½3@1¼d@)sŽ@"÷r@ âp?•ð?j ?pOâ?­m??ªjL?¥õ¥?Ä“Ø@I#…@BT?“ï?Ž.J?8j?øS???ªÁv?|™í?@?*b3?i¶?Šx,@@ìæ?²$?¯‡>é®’>¯ >ìP›>Û¶?Då9?‡™?qÐ?[,:?e?mhZ?qÉÙ?YN-?XðÌ?²)÷?²f·@Ùk?ý?‘>Òøt=ëm"?H‡»?xî†>¡³.= ù>¼¨*?Pa¹?Qe^? ;Ç>Á*°>‘@?&+?›–?€¹t>õ ˆ?Dnì?±åA?‘ã•?Gâ?$ó¸?/·?:9ã>ùVç?M p?æº]?³2çþk5?Cõ?›]??cHÄ>¶V¸>;sZ=-×>ˆ,º>ä B>òsw?A>ìY½? ;Æ>„‘ë>6¨;C‰û:÷ܬ;ÛO>5Ù>Øõ¤>–mi>[YÀ>ŠcÆ>§s =§øð?{ =?²Pc@$²?ØØ?9¦7>ï…l>…l¦<Ý +?®3V@M>ª@Tï@%6–>¤BÕ>€éÊ>1^Z?Cì?›• +?œ²}@I]À@*eV>"Y0>>´?Wߨ?o\>ÈÖ >'lL>wúw>²ã>Ð/>ì{1>¿Ò¿ïæá?YŒ?ú?K§Ÿ?q§=?ŠQ¦?È$?‰??ŠÏ?nPw?Èž§?·–>ôÈÞ>õ¦-?12?™ý>ö5Ô>öƒ«?nÑ?!k3?tpˆ?Š³?TÁ…?8-?²½]?Ò1˜?&·€>;M>®t>ú‹>^¸M>ýbÝ?qÃù?p²?{rè?Õ=ê\>¬^z?*Ù×?šJ‰?“%? ×Þ?§ØÛ?¹SË?ªvû?\ä?Io=>þ,™?2i5?²ÑH?®Å?¥ø?o9¯?iî?GFz?×NÚ?ê6_?êæ¤?ÕLQ?éÎ?…?N?¡á?™?Â?Nhž?j;Þ?­~}?«¶?f;?ˆÛ’?€†s?iÊ^>ý”s?L-2?÷dÀ?Û‚Ü?k¹?eçg?`ß?P‘{?.rÊ?Tƒ¬?¤÷ï?“ÁÐ?F ú?i‹º?©yq?¬k¼?¯XA?ˆ–4=̹=žÖµ=b9=% e<®{ò>òð¶?ÆÂÈ?Û•×@‘T?±Eù=ý ½>æó?«z?–b(?²7¢?¨‹?¡ú¤?œ‰3?å‹?µo?˜Š:?g³ã?ç>‰\)?T¥l?Ðá?FøM:Zíÿ?DC ?¯±?ƾ•?Ô£"? †o?‚"«?‚ã?¬Žò?©äÉ?§>ž?»/?Á£µ?ÕØ?ÝÈù?c¸¤>üó7?ƒÉ?£éã?nõ?A‰#?³°@?ÈßÖ?ŒæÁ?6o?¶z®?¾C4?Ø@? ?A›Í?AÓ ?3?Œè?‘ ?Œ„?L#h?D*¢>{Š>Z†$=¹"f?™‹d?›©•?‚¸}?€ÑÇ?oLÀ?fÞ?a>ìJA<‡Ê®>ƒFî?‡#ˆ?p?|?!ë?<"T?[4?‚ñ†?UsŽ?ùs?7íÏ?ƒ¶?/|>ˆ°»>ƒ®>Sh>?ï>,Õ?4÷g?“Á±?V|Ì?¥+?|þW?—˶?@sC?=†?ð?E?c Ù?ƒMZ?2Ä?5?•ÂC?¡­º?‡Q:?ƒij?‘¢§?Ž<>®d&>†‘N?BøÚ?Mot?>ê?•t?™Þ2?”Jü>ˆu>Ô?ѽN?µMõ>é,F?_?µ)?Ký?ÁÉ?ÍA»?ë·Ú@"‚@.lŽ@®u?Ö°j?»É?›ÌÖ?× +¹@ ;T?î¢H?ÙÆä?¿«?§l?u°?8Æì?’°Ü?°e ?À¦À?Æ0Î?A3P?(b?ù8@@m†@!>á@#£?“‡?‚²?ˆ ?‰Yñ?|š? r&?nit?\P? ×?9@ò?šº?—hƒ?„wQ?¾Eô@'W0?ñº?>òtý?©b?sH?7‚«>ªL?GY??¥u¨?VB>ò4?B¬?„³€?©æ§?À£&?–T.?„ÃK@ƒ…Ê@œ£ý?¤†Ä?@ð?~!ß?„Øó?,^?,T6?\–H?_[?ê±? © ?9/8?_UH?¨Lí?¬Ç™?¹ßÃ?»}?±G?Üú²@{u@ Dz?üÄÚ@nd@1@ð?ézØ?€—¯?6¾L?*?¡B/?Ñ]?´æ­?³Z^?X?…3 ?ÜLÀ?æM?Œn^?…³‚>S^=02?žÎ@W½@äÏ@"üé?˜Ej?5_¯?ië„?qòz? õ#?·O?Ç×¢?Çíà?±„Ù?³ÜY@&“6@»–?¨?›S(?B>G?ˆÈ¦@ .î@+ËA@…²«@bv—@ 'Ñ@§Æ@ …D@²b@[@­¤@&`Ù?ýEô?Èmf?ÅÙë?¾rr@Á@&H·@*Žº@,Öê@V@a®¯@h5w@h¢n?Å +?¹µ@vwU@r)@ µ@t@]‚r@V…¿@W+@Q«E@0gÄ@-[>@.@4jv@2(ç@*I@§o@ùì@'˜@&ÿ6@'xè@`&@ ª@?¿ù@^é@"ï$@mh@‚Ê@)N?µOe?†ó?Ü5?í¥1@‚j@@^(N@lT¨?ïÙ«?à…ñ@(:@%Sè@2\@-H5?Æ +)?¶þ?5’?¯ã@fÜ@s:5@‘=’@sô?È P?ç¾ã@á@2õ8@P‹ý@^£'@}N’@eÆ¡@?&@+Š@u¥@Äæ?ê¹R@¡§@D*œ@)Ô@Ĉ@Aí@]n@@ƒ@¡H@RJ"@j@ˆü£@£7@¬s?Š&?ß\?ýµ(@(@"Ÿ´@!}œ@ _þ?þ?ð±@øQ@Üd?°6«?©A@ +uG@ˆƒ@<Dz@:Þ?ûT@ +ª?â.l?ã¥/@¦°@ˆ©@HÝ@K@:§2@/“?çs?e¦@:‡Å@3Í›?ÿТ@Ê@û?è3?y¯g?ªBØ@9F@5ÊZ@-Ú@t ?æí9?æþú?Õë?Éõ­?½<Ê?ÙI@q–?Ñ. +?\ß?n›Ã@‡¤?á{Å?x»?Ž£ž?Óâ¢?áŽ`?÷$@ ¸ò@:ñi@FLƒ@_ˆý@E#w?þã¶@ˆG@A&f@6y,@ýÌ?ä÷`>®*>ÆTû?)ê„?¯Âƒ@MDt@.@'?¶á?ábï@ `@@Ù ?ô;p?öB?ëe>?í“?ïÈø?ñþ/?ô+5@ R@J@?ç?üý/?çq?†h9?³ s@1òZ@)Ôû@"I@ Ý—?Ï;÷?Úy@ +ÃU?ùý†>Èü›>Õaé>‡¦ƒ>”mu?„Aä?ŒIm?óó/?ûfø@Ð~@ì;@Uü@WžÝ@î @e?ñ˜)?L¬–?>Ë›>—K? p*@Ža@~°?l¹˜?cj‚?ƒbÃ?wÛW?ê/¥?ùºÀ?×M[?Ù±{?û}‰?þ¥°?g|?{¿ó?.qB?!9X@4 +@}`ç@GnA@ñš?ÒÂt?x1‰?ã@r ?¹²¶>÷Ñú?dîö?ìŸQ@ ¿Ê@J¦@?‰K?Ê“?Ñ$#@«à@)}?”•ò?Š!¨?w”?yµi?­xz?²­@1ó@ ¡3@ƒ-?îy?Õê®?Ôôò?ð`?²]g?Äâê?ÏD?Ô×?å¸ä?¸•u?•‘?[²¤?ôe0?݉$? $?|ãÑ?´˜t?³8?îˆ?•c@^Z@*¯°?ÍY?+à?”ͱ?ˆBG?‚­P?z+[?„›æ?”ç?Ž­&?Œª?µç@&Šš@Åb>òYq>ò=Å?‹ø?~æÑ?l]·?`Ñý?=?H7Ë?W¨Ë?R 2?«â?´Û¥?W/a?+c>@nm@Ã$?E{S?Iq5?m6?€Û?y39?}˜³?û@Ö}?¿±? +ÌŠ?˜)?ÙÔÁ?ÓÃã?ͬ’?×Ý?ý.¾?îÚÁ?²èÐ?²Óx?çØ3?øê?y÷Ã?NI?¥X%?»ïØ?èK?f¡?×Ö@+ìN@$÷2@ c@ Ê3>mƒÔ>¼@‡ @´?Å’4?¯?§?ö¿@ 7ƒ@“„@i@I‘@ ãô@”Õ?å‘??åÄ2?kþ?3r?Õƒ¢?ý¨m?øXT?êp?é(ß?ÝÁ?Ï¥F?Â;H?³ !?'O{?Í6?šŽ-?¬¥?®üf?®û>?à©ñ@ô@²@+²„@ã+?8,ó?12U?ÞÒ?ÝM(?ä ­?ñi?¾ ?›D”?¬{?lµƒ?ò?­ã´?­C(?—:r?¤?é ˆ?ý…­?Žúd?.9 ?«×@ã?ýW?ÉÉ?¶øÛ?¶>òï?^^²?~tX?}Nc?•'?¯û?¿,(?Éòò?Çyj?Ói@ µÆ@qù?Žr2?~;^?ïŠ@ ô%?¢‹R? +D›?:†?„×Õ?¦+ ?Ò"S?Ú?Ýí8?íÜv?‰º?hkr?» “?æ‡:?¥×¬>û$¤>¼Ó.=—©«>A—g@ðU@ 9Ø?örÌ?ú'?Sÿž>=a8?_VO?Ë¿¥?©¹?ZFÿ?TkÝ?(À?4º? Eç?Uí?v)þ?€ö?™9Ñ?´1­?šþ…?hÑd?h÷d?i{?iLi?lv?‚&å?|]4?‚½±?sÇÒ?U+?3ây?6›?Ù?°ˆC?†Ù­?B>ýZ’>òA3?b|@sa@å ?þÖÔ?õ1@cs@ÇÈ?tn>¹ò;?‰×?­Í"?±&?¢ø?3•>°Ò>«´ >Ø"&?’,? É?ƒŸ?CBS?"9?kë?š-?ýß? YP>÷'8>Ú! >xè>§½(?$1Å?-;…?j;ú?Tˆx>ô×>Ì•>Ü’’?é>þ~K?GÖ?¦RD?¥ip?¦gÆ?”×?}ç±>ç¾ß= Ñ>.6>8†³?bê?lʶ? ’™?Ì5=©Ù=³Û?j3>öë¡?(`>å>i>™µ„>{Øà>C…> +¹=¡A§=xœ>¿É&?á¢? # >´¬‰>¡&<·vÐ?”Ex@˜@† »@U64>ž7—>Ã_®>ÖM½>¢4Þ?(€ÿ>‚S?¢Ù=ↄ>{æz>ì[ ?1­?k.z?YÁù?3h? +6Q?R¦)?Ovk?'M ?&HI?›Z:?¶ ?‘§?rgJ?„?Çפ?ˆ@p=­7I> “ÿ>ô¸l>Óè+<˜uˆ=†ÜA>ö#W>öwm?îª?¾Or?\µ?D§‘?çÞ?™l?Ì¿L?øèõ?…’™?Ê‚?{÷?,5>j”…>†úà?à?@€¶?{nµ?eu??h.?|”{?¦>+?e5K>ß+Ä?)Q?}q?d„X?,@ý?&×?ñÆ?/x]?Qe? ùê=f`>ÁX/?¼íÔ?ªþi?n`6?m·˜?g[?{G8?{ñk?jÁ>ÖŒw?56?Añ»?.¼'>œ->Út?Z‚«?5&?(Ô^?|,?]ñS?àS&?·ã{?û|?bb@ד?äDE?zÔ?X ? š ?7£²?]-Þ?G-?Wa>÷’4>åù¨?%iÕ?‚ùK?0|=ÐAö>¯)??=§¨?MFf?D‹?Uû¤?®P?µ<¡@ºü?¼èÈ?Cz?†.Š?³!.?öM?,~6?IÄ}?`²…?eþ>wWg?Ç÷;@9Rì?ö1‘?€’á?Æäl?ýß³?ž:v?H:?4|ß?$SL?›?ÃD?Ž”î?qš0?ªé\?Ä¢T?óœ—@Gl@·@±î?ZZ„?Xp?¼Fó?äsó@R£@+?Nî?öµ?³Q!?óK?¼®È?¹\¨?n?†’> ¢>%òµ@ +‚Œ@o>㻾>ú9~?¢*?7w?…Ð?d Û?²§?®'?‚º†?op?Â`?-2?±#™?ªô6?z?`Ï? +ت? ª—?àÔ?&)³?iÑ8?q ?‚òI?‹¯·?”Žú?QÑ>çK9?èú>ýP>¾›Á>›$œ>¥>®Õá?rü?³ÀV?ŽmÛ?n3Ÿ?ø@ i?Àz²?ƒ=´>—ká<¶Kp=–¢“=õúb?øã?«ù:?Wxo?Hºb?0]?/²´?ê5?!«8?«]Ì?§Áx? z?œ£¼?â÷b?ǽ¤>®ªŠ>Õì`?duç?„dZ?áX6?À#â>>M ?:Ä@€œ?òú½?Å T?ŸHÇ?+@U?¢¯:@O@Ж?Õ¿?¹¬?˜†Ñ?óƒF@$ìô?·Íb?ú,?S6.?„?„î?„ â?”ý”?š<¥?×°ý?éEÆ?H?‰?'ô?K@«%@ ײ?"X­?è ?Á˜b?ÅM‘@@ Y*?„\Ã?Ž°ò?Þ ?¦úê?0& ?ðÆ>ÓR?eUí@-œ@:ý?ÿc?©Uî>ÑÔ?Åi?]Ä[?Y?-?Im¸?¨"»?ãBw?£}[?y¡?2Hó? Ï?kŸu?„ÎW>â6+>æœY?§8?²¹1>˜º>k²:?5Þ?àt?äÝ? e@?UÿP?T’î?X„ç?X' ?„ø?Wwö>=q>Ü^\?/l?…ƒ?Ç’m?Ηˆ?Õ~+?›ië?=Âp? õ³?&9?Þ ? y?dVg?‰{·?3Tm?©p?uuÉ?…4*?ùë’@7‹?B½e?2^?ò3ñ?é¿`?˜`?–wT?EßÈ?OüÙ??Òe?†R-@M¦@PÌ@=·m@ jt?EÉÇ>šÐÄ?ûc?„³N?lì*?p¨?AÚ/?eâ)?Å”Ö?Î0o@®©?ô#®?°¦ä?Ò³}@ +…?þöX?ÖÅÜ?Ý7‡?ë’÷?’¤˜?Z`?Áì¸@é@Gk0@f/@r=¦@pv£?÷Sž?¼)x?­îV?§®˜?˜t´?™ÀÜ@'@Ì@b@SJÏ?ë<±?ã:K?ÃN/?Ü‘@ÁÔ@(R@1ùé@£0?©OP@*§Ñ@’[@@X`{@ i@Y@(ðk?Ù%?†Þ«@W¼@"H@:pT@C^Þ@BDH@A,@FRä@Gs¥@²vé@¸}@JÖ«@;l>?èÈ[?ÿJ¥@8w›@H‡@¦É@˜ÄZ@8Xu@6Ñ@îá?p@n&@,*@jC@gÇŸ@.º:@&¦@ @òÏ@‹,@ƒp’?ò ?ð&§?ÌOå?±ð?8Ò?j’@sû@W&@ +Éè@]Q@B•¦@&è?“t?š‚R?®£?­qÝ?˜ŽÓ?›:?¿‚K?¨Ûä?;×€?—Né@Â4@JE@ `ð?ÜøÉ? àl?~'ä?ï=â?ù- @Ýœ@ñž@ì@ˆ?…¢ö?žÌe?ÕÄ£@9ž@pY@LX¾?òYç?Ñél?˜(ê?¨êk?ã±¼?»Ž½?d?FÞ5?Ç^“?«Ÿ½?:ì?[B­?À8‡?»‘ù?¯f?¸74?Ì$Ž?°ùñ?-u2?Tb•?ÅÉG@&¾@yÚã@_ª@%?ü÷»? ·?›åÕ?> (?†/Ñ@5 U@"#>›tj>Ãœÿ?¦Má?†?uzæ?oVY?˜ F?™Tú@j[@܆@&ÑF@*‚'@aÏ?ý©_?Có?¾±@.ú@׋|>üÔÊ@-Ã@Sæ@j3?ü€”@$}Ö@0®@Éz@ çg?ÓÏÛ?®1á?œE?–ML?­M¨?¼ÁC?¼­ ?¼žÏ?gwd>@qQ?ŒÊQ@dX@Í`?¼9Š?§jø?zч?kô??e;?=ä¢?Sµ?\›?Šå?£èe@9Ç×@68m?׌¨?Õ ?â›V?å?, Ï?v?.Ó?'a?ù€@W{@ŒÎ?ùsv?ÇÁA?±™]?ο=?ê²?硳?åüÎ?÷t?ûbÚ@¶@:s@ ð?|¥Ä?_WÎ?1èb?@?6?wrU?’g?÷B?òÂ:?Ôr½?àç@,x÷@1›G?†„Q?v˜º?*4?)_@¾,@Þ‘?ÓE?®³¦?õS?uÏv?u±”?u—¸?´Y?ú4Y@ (j@?@ma?Œ-?Ç('@b“=@W‚?°´‡?±Âb>ôdÞ>ÿ=‰?¿»?¦M@{Y@©?òai?Ð(Ô?¥¼??ö?“§E?–Zç?±£?н´?§¹Õ?#)v?LhÅ?Ää?Áú?3º?"Æ@J%%@Qs×?Sõæ?­²@[@5+@1?ÑÔf?ÀFE?´Ü@?•™½?Eá?~:â?Ûk’?ʧ~?"ã ?H?Q\K?Wi?®©å?³ô¡?3|Ü>öûq>õA'>ïyÿ?Xn?9IÒ?o’®?™TU?¤Ýó?¼º?¹‹³?jðœ?vñõ?…Ò"?x–]?‚Ï1?r¤¹?°Eá?ÑÝä?w‡W>àÿ)?*.|?ŸŠ?«Å?ÿ @sÆ@p@ Ÿ?\’V?uàû?ÀÕ?ÐÃ?ðäã@nñ@ +pi@ ¶O?ðx5?§¿‘? 8:?kkÍ?m$»?\ü ?OÜÝ?ò?ý¡?§Ca?‰1Í?¾çî?êp“@½@"é‚@$ƒ@&g@%±?£A¢?¦Œì?fÐ!?aš¶?ÃJŽ?å@ÏÅ@@áð@!b?Ò ?Ê5.?hÂO?h¬,?¶×?Ç +¾?Ä?³¯Æ?‚œÎ?:ò?mB=?¬?½?­E-?­ä?§19>ŽÈö>¹Øÿ?­–?ÄNc?'²0>o„‡?<[?©€ˆ?É°-@8?þ‚Ç?füÍ?fïœ?¦©f?¨wƒ?žYz?”¸Ê?À†´?å1?Ì;?¬ðœ?¬îâ?¬æ?¬Ý’?Áã?–¥F?Äv?Ü€‚@Ê@”?ﺆ?ßØ?¶…þ?¬Ì‘?¬Ìq?¯e¸?§Yƒ?Ó,>ð?lå|?¿÷?¿k-?¬ïá?œîœ?Où!?F#°?»¦?¿J1?,”«?–I?NÄ?NDN?¿#ï@ˆ#?Ýà¯? çi? Ê?cqØ?Z×Þ>îV >çû?3ë{?T’3?A›¨?6j??…W?H®º?d¢Ü?‚’Ï?ráf?i~‚?i®C?iâ ?j»?È^‹?Ò2?£fN?…~é?Ž¢U?¡!ý?ªL§?°ñC?žKß?g-é?‹ÙÜ@ôÏ@•.?ß Ç?éQ??IðK?a4>íÑ;>% >Ѿð>ïû?¢Ÿ?v? ´T>ñŒ?-_D?@{??lôo? ý½?º=ö?ÞÝ€?Ùúk?¹í?Š[v>ö#k?2;ƒ?"Ê?„8?r‹?q÷Ÿ?ŽËH?dÒ>àÊ¢?D=?µÃì?mB/>-…º>þµ?9N? î/?>Ó¸c>u ½<í>“y)>ÔˆÄ?þö?!õe?‹Ô?µ0£?H,á?!ì%?$É>ðx-<òÏd>UXÂ?8f>íî>È>œz–>¹¾ >×Zâ>ïû>n®p?h+^?1{? 7{>$ço@#`ù@˜ÍA@kÇ@-x(=—X>>Q<Œi=uÆ?¢ýê@µ¸@±@5Ãr@+ËL?*ÉÓ?2"?9?ç?@y&>öË2>²Êú>çF??àÕ?|>÷#>×WÐ=A®.=–ùÈ>J¬ï>¬’?ÂB ?ÐÆe?´þ?´QU?£Ó‹?‘)B?Ñ‚ë@ +ø^?½¼i>Ⱥ +>Ýhü>ôª$?#ØØ?°×a?š„=Tl=ÈîV?Wâ¿?m(¸?/’?.ñ7? "Æ>ïp!?êL?²pú?aŒH?5F;?TyÇ?dÁ>ÅT =in>’.>úó^??>Ì?{kq?;L>qx(?9„‚?©»?†7å? FÉ?0Õ@?}?Y?"Bˆ?;©Î?\³©? ¸R@ +.?âª?ÌR?I±Ð?¿ç?½£ð?· +o?„>gxå>ÿîE?–‰w?p_³>”úœ>…?7>ƒd>^==å7^?U>ñ…%>ž >Âó&?dM¶?ˆHŸ?Àä;?¼.À?·~?‰Ä8=«še>óݽ?Ñÿà?¯^-?þw?KD0?Ö,Y?ÄÊí?„ûê?Uöq>D¹W?G?žÇ2?‹£3?j,?#°>0©?x ?À±?“`>òV¼?#“ø?o{B?t×?¤o?¬Œ?²#?…?‘p?)ô1>åüw?mð]?ãb?¬áŸ?ºv‹?ÓáÀ?ÎF$?Âòµ?ŸSÐ?‚P?ìOÍ@! ¤?®Fã?&p÷?ðý??"P?'‡?6²^?[;©? ÙH?9?ˆ…F?¢iF?¾Ë6?Îá¸@Åö@#&†?–äÃ?Cpn?eqˆ?Z~9@†8@|o@ì+@‡?‘8Â?‡f`?Šß?Œ¡H?ÛÂÊ?×"²>ÅŽ>¼2¥?ñü}?î‰]>”n$>½ ?ÁI®?¼=?õüF?çí¾?.Sk?2&?cúÄ?Zb9?"+>öžA=ÔŸÔ>;™?Ò$>¾Ff<ìÕ8>Inp?á–? 3c?O?#MH?(Kï?„ÿJ?Äx?Žué?¥ý?%ŽÏ?FË?Œ²Ñ?¢v›?9´A>±e,?%xü?c³??:­(?þ´?®¡è?è<°?œ7t?{ºÂ?â|K?ü‡‰>×ØÑ>Ax >‘ú”?í˜@A¶>­<>.IA3÷>>iQõ?'@?"hÁ?¶V?JHö?½3ª?²gE?ŠïO?<*=0*>o–5?Éœ?½9@:Ý,?÷ÿ?B³?‹=L?±ŸÕ?ê|•@aë?¡6?ù¡?€JÛ?£ÒF?Õ?„ à?¡¤[?¯ã@ }‚@,ñ?–}K?TI¶@YZ@%<û@R×f@\û ?ÌžT?í–?‡la?™vñ@Bžã@Bó’@Hçÿ@0}Ä?¦?ž?^ü?L¡l?! H?‚Èq?ﯻ?õÃ@bw?ÙcP?„?‡•5?„ÌH?f?£¡Ø?húæ?õß?(Fˆ?'Kè?a¶×?€’?ç¶+@Ýê?Ê™–?·I¿?;¯Š?+ð?ž?=?œ}º?×z”?ÑŠÒ?ÊÜû?Æ–y?Öóð?½žZ?3m‡?A§R?I´ ?5Fç>ÝdÄ>©5n>9æ—?Ÿ–I@.þd@¹p?ûÇÖ?ñ©Õ?ì_Í?¶x‹?Š¡ë[c>¿o“?ƒ=k?„“?X ?S°l?OW—?‡~@°Í@=@?—ˆk?ÜZ?…`;?”å?¬‘!?á2Þ@Ÿ§?ÕP?r…?.VÒ?ZØ@ü @h;P@R£ú@IR~@45?êÀ(?f{?2mŸ?ºr²?Çõ?7R«?.%@&k@'s@:@9 @4ì@f @4—G@¦?ÇÔƒ@f«@\‰V@6½ý?å$‘@'œ@m»@A€@g@+ÀI@DÓ“@!²†@¾™?³:m?•?Æør?Þüã?¸™?µ‚†@N[—@`{1@˜G'@žÜ1@Ú‘`@ÓFV?ßyy?ëó@h@h¶Ñ@p1¦@wl@|l·@sJ‘@Qð!@AŸt@%åÏ@ ëy?¬Ëú@ê@l§¡@~0Í@ˆ*o@•÷È@¥[@ˆF4@e¶ä@vµ@¡?ó@|¹ü@ZÂŽ@_òe@]ƒ@Pq@GßF?ö ¾?ÔÇ©?Ÿ „?©v?àü7?åç˜@=Fh@:P@%+Ú@ —f?Æ Û?Öi@-Z½@+‹t@à@@/@_ U@Btæ?ÉOû?ÙQÄ@uË@@vÔ@Ÿ·@|Ž@¤^@‚ö@§·@ù'@)~æ@,’@,åŠ@0óÆ@7™a@#ÙÙ@ë@Ø@Kƒ?ãS?¶;¤@-Ãy@]dÏ@Q@Eƒ·?B>Ƹ•?б?ôþ,@sn@'wŸ@ äÑ@õ?žw?“>ø?Æk\?Î@¶€@A~?÷–P?òÏR@WÍ@ñÃ@—ùG@‘Ä?gT?àö@)ó@ŽB@Qb@S”@y@ @e¹?‚<Á?Š®˜?Ã:”?»&´?‹“ß?¦€ë@o@ RH? +©Æ?hû²@"Wõ@-Ü*@VO@Imº@(¥G@-îŸ@7yi@7@A×@v*?QŽ™?ˆÆô?Å®?Éìª?ÚVè?Ö²?Û b?øÙ@!„Þ@T?Â>@2—@[üÇ@`Q@kûè@O¸l@[b@ +ä´@ +á@eé@{œ@~?ƒ?ÃH¿?®úË?Ôf@ ¸À?õ^?¨Aã?ˆW?d?%&?{+?NR‚>Ñ\?GR×?ës½?ÇŒp?^ù?›ÁU@ ~°@ê&?ÿÔ½@ <,@&„´@ î2?‰d?̼@VAÕ@=¡f?´¯|?°% ? ®ƒ?›éú?£5±?ªõ?Ž +;?‘‘q?Ü@?ÞUn?Ü®?Þê@Æp@ E@ «ó@'z ?ÎQ½?Ëæ?ñ¡?ôÓ2@p€@$?Ƚ;?À£¡@²P@#Åó?;¶^>ÔT?±Õ?Ÿ¶¬?¥«M?µJ9?Îß¼?ÕÌÞ?ø•<@ýÜ@MëO@hÒ+@"ÝÖ?ü‚?°¥ö?rþ”?Š3Á?Ÿ`)?¶œÖ?Æ{º?öN‰@ {@ Îáßó?þíÓ@¸¡@¼Å?ôg»@ Xü@ô‚@>?éô?â È?á1¬@”µ@:¥@„?Ú$¬?àš?èRJ?Ä•¾?wrb?ˆÄ?ÄçD?¼è +?»?&r?•¨?Š‹?³é¸?·yZ?x>öf@A‡G@dGø?ÔR‹?vÚ?•Š?¡àw?ÇSò?ß­8?Éo™?¸ n?ÝÛë@ ÌY?ÿ^½?·À?Ètù@Ñæ@h?g/ô?jpÂ?Y>ôHë?Û?æ?ßzl?Í%—?Ï“?¨I,?s­@`I@¿e?Þ¡é?™™ú?¢(?‰qÈ?™¥‰?¢ú¬?Œ_´?ŸD?23A?ßSì?äÓ”?±ÖH?´‰å?²cÑ?¬R?à¦?b?¬à?ÄýN?¦úÚ?Ž@Æ?‚,n?f4?Lñq?ÏT?ç‡?FDn?MX^?S©Ÿ?Aò7?®v?³öÆ?®·è?²D†>ë¢è='U,>{\>ï?Ù?ž÷,@òm?êYO?nÍ?pY#?q!ý?d¬È?¥G“?®T ?êô¹?ü}?ƒL^?êã>†žþ<´§K?™â”@+Ý}@ @‰i@V?Ä?Ó°ÿ?´É?À2?ž«€?±:o?™lV?‹xž?—ö-?¯Í?¥N”?|Ê?v6?o¦m?p”d?¬oU?©á? ? Žï?ˆ‘,?›®Ë? ’?«ü?Ò‹…@à@Gu?ÿÙ)@‹¼?€Š?z9¼>cšÛ=B½?¡â«?éU?Ä2‡?®Èë?Õ"?þ+ä?íðý?µú„?®ù(>ñ§F>耡@ _¸@&™@~P@ üh?Ô`t?hß?k‡??ršj?k‚?·Ñ!?Ð%Ï?½Ýº?£f?ž™ð?Tq?’M'? Ë§? ¢?{n?lž™?¥‰?ïP?ì­?&ð#?­Àà?û¢?×Ò0?\à?—Ù?±?ˆÅã?1\º?q°?ÆB>ðqq>óê_?q?»Î?æf…?ã0?Ò·?Î÷?¬X?´ ?¢ª×?•uC?n>=»?¥"?« ×?’â&?‘?ûZ?­?­Y?% >ñ[ü?I³‘?ð?Ä ñ@dè?úþB?Ä6©?Ÿœ{>ô0-?åÁ?ÁDZ?·w? ¼I>è;E?BÊ?™î4?Ix>>èØU?RÞ†?×?Û’?¬÷•?§Î?iå’?jl?™”y?¨Hõ?¯?£Ù…?Ë?kmc?…Ž`?£T§?¯‹Â?­nv?­)A?¿‰_?»Zñ?UÑB?j >ÒW4>¥|¼?‡m ?žcð?+bA>ó# >%Øñ=‹Ì>©Ÿ>ñ—Ð?1Ö=?q;n?zßÛ?sL¬?sÅÓ?t8ç?Ôœ:@6eø?ûg‚>ö2?/?’dÛ?ŽÈ‹?‚¨…?šfv?»"6?‰·¸=˜*¼>çe"?¼ü^?*>·Û¦?ÍÃ?ƒÆc?Qâõ?ô>½Fe>em >¢# >ý6D?@NÂ?h»Ð?=kÃ?9K ?;,?¿?7íí?[—ú?¼ÑG?±È9>ôãà>ì«?FÎ>ŽWò>&}=³P;¹Ý"?'K„@™ð?Í~I?_S>cX•>µ7->¹B>™2>Ĉ@bE@€Žµ@F‘™@Uü> >¨`I?Þ—??FR>?Üêó@Hç`@“ï?Dc?¥+ú?n²¶?a¼¸>üÒù>éáA>nfª=àbR>ÝËy?NÑ?•ÜÖ?êZ?Рû?UÄ%?E>»¯M>®Ÿº?6Z?fFŒ?Clä?4Rµ?eXý?…Ä×?ʤË@ +à&?´¼=¬\>>x>ô™i>õ«Œ?XÕ?­Ó<ë¾?WnÀ?Q$v>L9Ô>LV®?aÑñ?xE>Ï>šç¨>¢=>ˆd˜>Ðû0>ùï»>è,j>é°T?EUP?vov?vð»?{h@>õã™>›ƒ?) +®? êî>ÞŒë?(R?Bâò>÷B>mÈO? (3?"Á&?(´d?a%%?º°Õ?ª›?{*?„¤ ?‡Í–?e'o>ÅØ¿>ótâ?QüL?‚1?¯ùê?…%ƒ>zQŽ>b8±>J%Ó>ÅDY?sê2?‰=0?Íó?¦•>¯I? +ð?¿œp?¡Ê?…Ž?B>×;9?j>@§c?êéd?U@o?tÌP?¥dŠ?.?>.°?In5?d)E?«0"@ÿC@H@Ÿs?ïò?º¢z?¨±m?ƒN±?3³?{ Z?{dÕ?šÏ?X.ž? QÔ>û›>§§d?Ì?Na~? ¥µ>ƒ?#´‹?ŒY,?š`¹?­”?êå?"Oh?€ªR?­Ç?–R"?‚">Úoø<Ù¢¦?r±à?·lQ?S-~? ê>xUá>M?>Öê>0Wu?ŒfÍ?²CF?ñò@ ?ˆ_ü?Nn ?±?Ã{â?”i½?‘þ7@"«@E?=¨—?l¤?}ì?ƒ†b@&ˆ@|?%.}?=B@)@Bp?o? Š??ÃáL?ÀŒ€?Œc?‡ü#?¥?2?¤EW?¡È?:á?˜Î½?…ÿ³+i>7yb?âß?,a?kƒ?=ó?ó•?PÝa?šNv?6ª?ƒ‰?B-Õ? +¦?Å\J@»?Á{‰?Y1Ó?VÑ7?I¦u?G8ï?SVH>Ú Œ>=cí=Óò?IÍü?‡•>W°ø?=¨Á?WrÞ?p[…?„+X>ÚiÞ>±#I?ó¨·?센?^Ï?M«p?HM?U®Q?:Ã\?)žè>«£÷>ß½?bî&?nÀ?ƒ¥6? H?uñ·?¤ùl@¸*@»e@è?ûKÂ?ö7?¹¹‡';Þª€>Ùô ?B˜?€À(?Žô?宫?îà0?Û¶?Ó×Ö@À/?ÿAr?7‘?E§?…aŠ?–îð?éú.?ßÚN?´S€?¡w??Yѯ?¡‡/?öŸ”@@0`š@,ê‹@+m?Ç*?!ÐR@Dt@BwL@ Ý?ÎF`@¤Å@ >à?ýó$?êg–?úéà?ûŒˆ?Ø£C?ÏŸ‡?Åõ°?Ê¡™?¹‚?ÁB?ß×?ú_À@(ôE@!„G?ÿgˆ?ø€?òí½?Ѭ›?˜QA?ÙYÀ@û¿@*Z9@Bqã@.C†@ 1’@\¡ +@‚Dà@k¸?Äž÷@lÒd@Š¾Ñ@F@0Tõ@7Z@Ò¥@-@„ñ®@»£‹@»†w@:Á@ne@…ÿ2@zV@#ýŒ@<ðA@ 7@…„a@g ø@\|@8@A²@O‘P@g̈@‡ ù@›6Z@²a@ŠDÑ@Iw?@[Hq@gêá@Š<@—¥@0j“?ø“"@°@ A?ÚW"?ÕÇ@[Ô@j7/?úÇ-?ä§@SÿŸ@TN@.[‡@4•±@%+>@ ³ä?ÛoF?Òí?¤ö?Çýì@2ûM@6B@5•‚@'ó @ ä^?ÀAž=cº?ÔWë@•…Î@‘}æ@ˆZu@;³?Ÿ76@X0@¶.y@‡e-@:ÖÛ@LcX@X¹@$Ä_@ŸD@!,¥@0Ôr@-Š@*?Ÿ@ +E?ïK5@Y5@‚T @ŸÃ?ìk@h~ä@†›‡@oó;@g[ò@HØ@C @#˜@l?™ü)?Œ#Ã@hÆÿ@pï[?®™^?¦À?×¢Ú?Üï±@y9@yp?<^?d9@Bø$@DÔ@qæ¼@lܨ@Lâ@@‹?§¸?§ôó?Ã:s?½›m?¥Q‰?®_’?½~î?ò¼M@cJÃ@LÍ@¼N@ Õs@*_K@6È@V€t@Q݈@JôÑ@+©?ªÖÍ?©_?iíL?˜“K@rp@¤@NÓô@N@N"@5lÜ@ _ú@aN@9a>@<œ´@AŠ@;?rƒº?·Š•@å­@f@?…°˜?Ÿï?Í[ ?ÚØ?ì6?׌?±Ú‰?”º\?C¤‡?rO?˜†8?•Îð?‡sø?‹º ?¡a»?©›:?µPù?óúŸ@L"Ü@ªz?E¼‹?ž O@,¶´@&YÏ@3ƒ@(W™@ i@‹0‘@{Ùþ@^µ÷@aœ?ñ”?)#ï?C@?ŽD?‹VÃ?W·ð?Sç›?`„?y¶˜?¾ëF?ÊNu@cR@…Ë@Q·@KéA?(¹Ý?* ¥@!…@ ¼ˆ?ø#¢?ëêÂ?%G?€?íº?ü]©@6?a@;DÅ?O l>ý›?©×?½¢b@-Cˆ@8«.?Ĩt?–oZ?ºa ?‚ý@6q—@`øå@!È?²YE?ÔR'?èƒ?‘e?­8?£?ñl?؇ +?¼}?¡‰ï?}°?›(?Åš1?ëc¨@6!@ßx@78@«³?zz/?c¬?U¸?^Úw@âÓ@ 3%@ -±@ +š:@—@ Ä?¤XÝ?œ¯W@ðt@Ôr>üò*>Χ? èç?½¡£?¼“€?¾Ôû@Z“@5ÊG@à•?øh¿?¤±B?IÇ?Ä'@†ÿ?úh‘?·y@¶@GUœ@#ç¼?‘ÄR?Š/À?`ÉÌ?O¯´?Hm3?kLå@,C@1hÀ=Ôl= Íl>áG>öh¯@$‡»@D—W@ët?Ó¡£?Àså?¸^Ú?Àü4?Îï?ÕÁ?ÔT¯?éñ»@ ÿ?üjÄ?ÚÂÖ?Çôø?’˜õ?†z¬?"V? ‹@HK@Åf?Á÷‰?½øš?U‡?†Så?{$?s©i?Š–?£µÕ?ÇX×?ÖU·?ƒ‚k>Rq ?Q6@Á¤?é ?ˆ]+?‚Ç4?_Žp?ef]?y¦=?t#?¯[7?µ`Ò?¢û“?–¡?È+Ý?áQÙ@"Cé@Bæ?ü"?9²?2no? ʳ?‘q?LÊ?Vä?ÿW?üH?žš?¡]w?2”>ù\,>ë=„>Ù¯D>`ù£=¶¾Ü?®?’Ín?ª§ß?¿ùg?ÃÃ?ïT×?ç3Å?W‡?K5?£=a?£¤à?›ï˜? îÜ?S];>÷›e?/ñ ?„2ø?¼Ò@/ø@ Ÿû?Í#è?Æë™@«@¹Ý?Ú>Å?̱Y?ÉhÁ?Æ ž?›dƒ?Lã ?‚Æq?ÉG?×{²?éW…?‘ÿ"? éÃ?†øM?ûüc?ï;?¨Fƒ?¯)À?ŸÔ»?‘,a?瘱@|‰?ç­í?Øà?¶ŽB?o1?Á?§êÿ?¦ +q?³&?¤—Ò@ lè@&•?íuÜ?Ö#?@ +aÞ@#Ð7@ îÿ?¢îÆ?œ3¨?Ù¾0?äDô@„×þ@‚1?Ñuú?K}H?T?r„?“§¶?¬ó?£¸û?Ž/þ?}yD?ª¡½?¬Ù4?xî?câ?‘¶ü?¢Á?_O>Ô*T?7 Õ?Â"?Æ Ö?¬Ÿ?‹‹?Ä?ÖEÉ?¨ ?ƒ`??Bÿ>êí?ÿG?W›ô?W«?­ß?­ Ÿ?ÑíW?ËŸ?…nE?FaT?|:?¡O @Dù@còæ@Jä|?_MÓ?V«c?æK8?èÈ?3Q/>è=8?ÀE@èç?¸?+Äõ?­ß?~Ô?pç.@E²T@:´w?еô?lji?=!÷?*³œ?,„5?"n†?KAì?kqr?0<ÑÈ>ó š?±^`?œ¤ò?2Ö\?fÅ?çX?ÎÜ?=\–?Gú?´z? ùb?O{?n1G?^t/?H?H1-?HG?„¶?“ôY?‹ÝN?Œï?¸ú?tAé?#K=ºŒ(>¼vá>ö>?ú¶?,pQ?$'h>øm–?HÈ?».L?¨l?zƳ?{§Ÿ?…“?aàY>ý\*?B70?žÅë?ÞŽ?ƒÒì?¢’¥?¹‰s?wTd?“x>˜¡>~ÄJ>dÇ£>h€§>Žò¾>©ñz>&ø=Ŷ+>ü±•>å [=€æÔ>Áö ?bš:>ÚN?Jû8?ˆŒæ?ÊqA?¥ß?‰k?RU3?Jš>,8>|—>opÚ>™i£>2QÕ?½¤W@.p¢@)áñ?ã >²C >ÛŒ<ƒ–?‚¬@1k?ÝÆÃ?^÷…?K7?a©h?oË>ûð[>é¼Ô>·>³ >V>X=hŽr>_&ç>õ!? +M?Oç? Ø>ïø>= bþ>¾é >ñO¤>©Œ'>’xû>̱Ù>òþ?”Í?e½? >ãèÒ>·´<›À>joú?`n?Ž ¿?^?!aò?«Ô?{á?mœ?x=f>¦^>;ó§?l%ž?¿-?˺>Ï^>3„Ù=×Ü}¢>üI¬>…è±=Ü$å>ˆJ>M}>7@ù>õÙú?}Ö¶?‘ä?´-î?¡Q?uÿŒ?R¬n?g°? §Å?æÐ?à>ÿnÜ?l̆?íÒf?Ó¹ä?µ"F?¡Ü>?>ák?8ìî?2ø¡?sLÎ?ÙøL?Û¨©?ØÇ,@~Õ@2\@BÞ?~aÖ?^Qî?Á±>¿ÿû=§×~>ñ_-?² +?=>²J?>ú€?Á¥?¬•ß?, ¨Å? +„Ð?qµ?™S3?ÀF·?§jß?¦?š ?¸æ ?Ç|³?ÕÖÞ?^dT>ùI?Ãœ?f5F?C²v?E>–?,1?/Ô?VÂ?ò›?8J‡?ý?Pˆ]?‚·?ƒyS?}=?ªÑä?Ã&¹? a*=°Ð?‰?B•>ë„Á>­#{?Ñ?¸•¼@¦)@†x?ˆ"?8òn?Ù7é?ïÉ>Ð[:>"ü?NÁª?mÅv? ‰¿?n¶?°0t?Àoâ?Š¥??¸??xRh?su(?Ïü%?ÎùH?bg”?hè?ÃäÄ?Ãé…?ÃîO?³øæ?;g>Üá0>[¼M>ÑáÁ?­­…?œ6h?%gg>ð׸>( ?LÑ?V˜?¿Èj?«÷¸?y[ñ?GSO?ã«?8• ?‚ì?wÊ”?aÔ„?p°^?‚üI?4±Í>ߊÚ>°°x>ƒ~ì?€ž?Ī?ƒœ?0ÎÎ?ñs?ĵ‘?;1 >7é?—-?Äѵ>á M=YG>ÖD¾?ß®?c¬?ld?Áõ?<´>~> }?˜u,?›¤?µIr?ÁŽw?td½?rüû>‚÷á>£\Ó?ƒˆõ?hs>:B>jÏ?›'?^Ò?k«£?RÐe?­]?E@¸x@Y@Ò?î»Ì?Ë @˜@,‘¢?ì/q?ƒÜ#??—M*?™¦»?›ÿ{?z˜4?N†?N?n?:?P H?‰é?—Hú?­:?³]u?‹+¼?„&ù?… ?0Z>ì?G>÷†?ÀÂ+?½Z?H?&?zõ€?‡n?Ɖ¹?Ö^á@‘?î-?²>?¨±«?”=?7¹z? )N?¦­Æ?³‘D?»Ä—?œö?„—n?qb7?d?¾ Ô?í&Ž?¦h‚?„±?×k½?ú#m@¨×@¦f?=áI?ÈD?æ­?ï&¥?ó&ˆ?ìË?„܉?oï?ïZ4?ç.º?¤XØ?§Þ'?™Cƒ?˜¿?„ø?bÚT?[”? BN?)'5?X ~?… Ø?­¢ü?ÜÁ?ËÖw?¼´”?jÅ?p(ß?9ªO?¿#>"°Ù=´«Œ@ÿV@9M4@ ³è@3½?ÿñ¨@ù?¶õŠ?³fŒ?±5Û?´¸ö?âñB?Í[*?D)å?ƒìb?á¶a?ÉâÑ?Ÿ¹¢?½ ]?ô’ª?½9C?gNÿ?Âs!@ %@s@Ó @2ì@K^?O™i<­±?’Í?¾©?À?¾ÿ„@1mK@:¦Ô?]»?p{?’?˜?Q?Z*±?~F?÷€Ù?â«Ú?§?´Pª?ÕjÏ?°š?ieý?œ¾?Ü»ß?ÚŽ…?Øc¹?´ È?Šš×?µ|?×W??šIµ?}lé@ ;*@E®?È ?–øa?Jìy?Bõ?˜Æ¼?¢`‡?×Ú?ÙØ­?²éz?¨µÊ?7ñç?HK¡?…BŸ?„¹m?†‘%?Ѿ@BÜ @.fú@èp@ZÓ?ï"€@ݤ@!R¯@þƒ@×ô?óUo?Ǫ?œÅf?…8@ ó@CòÂ@zØ.@†¹?»“}?s‡:@+ëÊ@88@mÕ<@r¬T@Í<Ë@ÄÙï@AgL@H5ã@Œys@‡kÉ@Wï@n7h@¢\@Žô@(ê@=¨ú@q¥@‡# @ Ì%@$Î@•<@š@ˆø[@ ö”@µæÁ@ú9@gëÄ@Do@4ä@#åT@™n@+@.4ó@ÀÅ?ø¥ï@}ÍÎ@Š†é?Ä¡:?¡no@L9@WÅ,?£á?¤añ?ûåÊ@s~@e?÷2Ú?ˆ,?• ?íJ@ Ü.@›Ú@nW@m•Õ@ˆ¿ç@³v@¥»M@”?W@‚»«@S-@ ¸Å?¸8J@(‚Q@|¥@1®Z?ÅGq?æÐ@T\@°o@»@KØ/@uLÌ@WÖ§@KV2@42@.l•@4@ Zž?ÉXQ?«T}?Ùõ?ߺþ@[Kj@wï&@4+u@$Å,@#´@#–ï?ÈÇ?»WÓ@/M @7=‡@ ­@ìÏ?Ãía?ÄÔf?ôÞ?ó‰ ?ŠÔH?“Qü@#zF@0‚Ø@‚\÷@zñ%@.­@$à\?Þ…?ÝrÔ?Ã>$?§¼Ì>yya>ÅÌ?“ýX?Ê×@^©%@T—U@ µ¥@j¤?Òþ?éF@Þ³@"MÈ@B}ñ@,n·?Û_É?äU@Œµ@,Ë@5ã¡@2œÄ@6~@K®‚@u"ñ@J÷?ÁÔ©?Ù˜@ʹ@Ú¡@Gî'@³?B#Y?€âÚ?Ìaµ?Å#¶?À0@VD@ˆRÏ@o£Ð@6ׄ@2j¤@*æ?@ù@B @¸,?ú9?Ì¢?q*’?œqÈ?Þ¬/?Ûá7?å•@ +@s«'@JGÄ?®Tˆ?´›|?¿þé?ô3-@D3 @@ñö@;¶£@6ªé@ þ†@:x?ÿbÊ@ š@&E.@7ù?`?¬œ(@EÙ@'¿>þ·ú?'X?â?å²ý@*@·|@>±Þ@6Ú­?)~Ù?@îb@67Ö@7Z§@qÞ^@tC9?Ô½×?Ç•?‚È[?#µ@‚Ø‹@Š¯l?MÐ=›NÕ@ 7@'üÍ@F×µ@P²@0jò@!'ê?ñ6?Ùñ²?òHÀ@ã?€Ì>ü?ô¹?¨èù?¤“t?œ!—?Æ›c?åÔH?ÔÁþ?Çdî?ħý?¾êj?¢ï|?úI?‰Úå?™€Ô?ÇÇ@°]@ +ø?Ô5ç?¬j¶>šÆ?(O@*ÎŽ@+îí@*ƒe@'ëˆ@LW@}S@Ê”@î@Ú)@GJ?УÙ?Àï~@,ºÐ@;¿D?º’®?€ƒË?ÝÃh@už@ +¢@#ý?ït9?¾F³?ëR@Ôx?ÈØ?6íù?˜*Ë@Í:?ø¶q?£{8?³ a?æYx?È’˜=Œøo?ˆxÖ?ƒ3?ò}g?ñh?B~>öhŒ?Ñ–?ª¯”?x_ ?b?¢^’?¸`S?Ó[?ßÁ0?Ø*q?Ù$?ô° @ Ðe@è8?ýËR@w[@ …\@‰Ã?çQ$?åj¨>þ“?>†_>' À@8SE@N‘¤@Åû?ÏÊ ?È¥é?»Ú?Â`-?Óm–?„h>Š'?açi@*.?ÿ%H?ÓßÙ?¿õ]?1~?$^ ?¼âA?·7ê?¥î? V?tu?"Ö\?¿Â?ñmÂ?ãÒ ?ìA,?ÃC“?pù…?r(?~›[?‰»[?Ÿ£÷?ª²V@O:@ +2ƒ>»à>?ÙÉ?ý(;@‰³?‚*>ï‚ò?& $?@¥ ?hŽM?ú©?‘Ã@?¦À7?±B!?ÐpM?ØŒ)?²È4?²±m?ýb@.æ?c‰î>íÐ@?8¡?i%%?c»=lÊØ>Òä?”`ü?¢³w?Áß:?ÄåÏ?æÐK?ö‡S?Õ´j?Ñ8 ?ÔN§?×jT@Éü@1å7@.Äw@%O@*?±è#?°J\?«žM?¨B6?„~?„Y?×#>ê®…?¨Ù@ Î?äU$?¥_´?ç—?:¤˜?:¹?º Ç?¶’ç?©2ÿ?­Åi?Cص?¾8?® Ì?ðªI?õDx@λ?ý.2?³Íû?¬]?¿¼©?ÍÙî?µÐÔ?®BÀ?‰P?h/É?ñ @In@??XX?4T‹?ç³?ç¡Í?Þ‰?îíŽ?œ¯+?[\§?°´[?ûëæ@?J@lE@ +ž>?c$>ìãü?‡ë¸?©æ´?îí´?õa +?߈Ó?È•ô?Ö;¨@V@?õ)¤?ΰð?Þ$ ?Ç-å?¾N?9 >îÏ_?{™Ð?¬Ïå?Ä8ÿ?ÙŒD?ª†c?lÀ? â?¬Óß?¬Õ?ÛøÊ?Úâq?Êî ?Ñé?«:ù?dêÃ?‹m?Õ¿[?ÈC(?„;*?ˆw—?¹Ä·?Ì ©?‡‰}?dT†?~.?}‘Û?Âø2@)Üp@5Û?¨Š¹?¤*?Gö>?b¤D?Cä?1‡À?„?§G`?¨¼?¡î?¦—_?«K,?š®n?*nÜ?czÈ?…à?™üY?„Ž?p#Z?BÉ#?@w=?J@C?T­?0z>ôî>òÖº?>F?-^Ò?LJµ?]¤C?à€;?ôC?€Ÿ4?cõ?lÅ?oZ™>?A°<­ŒK>Íœ?¤Ã?Q»?q¨6?š +5?»9 ?§¬?”°6?ƒÛ³?\?>+>牘?D?Y7?ÛÖ>PÈ>~<‡>–aœ?¶ã?”!?“«¼?t˜®?TÝ +?µt?Rg°?”’Ù? ü??v?£Ä?¸€Ç?D¢ö>½YI>£í%>ŠG³>`°W>,HK>Äd>Ûâë<]ñ;>T+d?dý?õ)>Á²&>¼^Ñ>mƒ>ÒÒÀ>¹‹ž> ÛM>YTL@ ‡?Ð z? Bí>‚¬?“B‘?þ5@E[?ùéj>Q'ª=;ÿq{;•?\?ÓÝß@;þ?ü²-?¬ì«?å§>[³›>x_ +?#ýÊ?ê2>¬Æä>^i)>±˜>ëÜx?VEÝ?¯ã«?=>íðƒ?V?U,?NÊ#>©2]>”Y>Þ´>ñ W>í.S?>¹Û?Dà¯?^Ai?à +=„’Ó> >ëx£>Äç–>YÙ>ž:>öž>÷¡?(ü?.Ù1>í6?tŒ>ý@>øÊ®?d™t?‡ÆŸ>Þzç>*ˆì>×Óá?¯?Oê{?r0>àt6>NHô?ï?¿æÇ?=2‰>*ê”>ynÇ>Ë>½>é˜(>åª->ýz6?3Ü?}Ö ?„)w?‰¡)?Xzg>þ‡¼?Zžš?»Lp?É6M?æäh?»#ž?bù8?”nB?è…Š?Ø)?¥0?¢ŽK?Ÿ˜É?”À?€>?€Ke?€[Þ?cdl?rî?<ìÑ?ˆï?]ü>úøu?/Á?é?—?X@h?®?±*ÿ?¡+è?~]Î?ƒ1‘?ª? Í?Ÿüz?ª­U?Áá$?¡‚€?NnJ?h`?´‰'?¥hÇ?‰Jœ?‚×Û?~½²?¸ÒR?ûÁ¾?¼Ù>`>©ÞÝ>ïÐæ?"½ï?1 ƒ?”Î?Ï&Ù?|âB>þ4•?>ÜÕÑ?.?קÁ?ÁF?A‹Õ??|…?.wÜ?k‰„?‡±‚?ª‘`?ÁÙn?]G‘?Ìb>þ¬Ç>Øû +?Í ?"ž"?P•Ë?Y@w?œQŒ?¨o×?¸¬ƒ?ÂÑ×?ÙtŠ?Õð?Þ Ó?춎?‹Ó ?h~f?$ž†?ô'?º?„•=å%=*\?z?? Lt?‚ƒ'?€†‚?29?:Á)?$¼q??A?Ãæ¸?¾»?ý?›õ*?‚§?xbè?:4ˆ?F}ª?‚·Ï?‚ºù?‚¿)?MWa>Ia>Úac?‚Î%?_N? U?¢u¨@i³?¼‹Ç=x¥x=îè>Kùþ>׫?&cY?+ZÂ?0TE>ýÅ4>——-=ô¨÷?‰k@?à³Ð?£ü?ƒ,?“‰ñ? ‹?»aU?ÄÅ$?¬fU?«? A?ƒ>É?„0?Ö?þg?Öá=ùRú=±J;õ  ?‘>„?˜?X½ø?X9|?|m?…y?E¿?AÙ¨?NN ?<Àë>¨Œô>ùmÁ?u!g?NcE?¥‹?¨³?­^?‚¤@P²?»nt?5±?EÎ\?ˆÄ?çM\@)š¼?Ï? „À?[Ÿb?ƒå:?ƒéã?ƒïÓ? é´>âSå>¬®>„IR>ˆ•Á>–C~?sèÜ?‰—Ç?cÍ‹?a¼ð?HvÖ?M°Ù?!Gæ?R‘>Z=ÆÆI??²?,°È@!³º@ ýg=Ì‚Ü? ²@}Ò@R4?å™ +?íâ?ôÉ?ä?Æ°1?¶q¯?”dã?§ "?ű?Ç'õ?ÐûÂ?·*‰?œ&Ž?K:Š? Ü?Äk}?ù Í?¢yf?„±¤?^‡‘?<†0?ãè+@©T?ÌY÷?¿pO?Ì"Å?Ï>°¹>ÈÅT>pÐ?0Ë@* ¹@ZÖ?—hN?Rt?ñ:?=é?¦é?çF>é;«>‚Æ7?"H#?­¡›?†ÍË?DŠ?ZEí?sL >ÉS)=`ÏÈ?»Ñò@#? ©?â—·@ æ(@,·@2·>Ðøé>¼^\?L,?o‘_@jW@:*@ À?ùªc?Š?Ÿš ?ï=®?ð?âæ±?»"ç?„@ì?–ð?§5?uP8?<£K?&â`?B >z‘‰="á?½Q?Ç|}?ø¨ @Ii>ðÞÓ>L±@¬Š@Cñ?¯Ao?£^?cB?Ú?°OÇ?­§Ò?³(˜?Æ ?êNZ@ ¯4@H•@*·?”üW?«-g?Ë' ?ì$¬@`¤@3Z@\ßö@3÷@gö?a¸é=wÚ?‘å¦?Êø[@Gœ @[üJ?ܵ“?´§?í‚i?î¤?È{!?ÌL@"ÿ@ 96?À*š?·˜m?ªÇ’?±z?Çd4?âõ @ øn@-7ë@;‡H@.Àt@]Î?Õ$B?DÍ“?—‚‚?¿?Àë??Ç«C?Ÿm?ˆA@£¨ó@Ôìª@Š%I@kì6@ Mg?ê~t@V°ì@aNê@ê@[@è£S@âD@ˆ»G@Œ)@©l0@üW@hvó@lÑ@{¤v@J@ƒ¨¢@ˆ¤Ý@Ž_Í@h=å@aH@N@…=¡@šrF@®i\@ªa8@¥¶ì@yø6@H2…@r+@ð\@EÓ5@%Ë@? T@F™w@Ô¨?î˜ +@)Œ9@4üw@9:£@2š×?èj…?æß«?ÆIÆ?Îæ§@pï@T@;÷ç@0ñÿ@„@ A@LÓ¡@w£¢@Á7I@·ê¶@ŸÍ¨@‡Ðö@%±©@LÂ¥@„ÍÃ@zIº@bK%@Y¨á@LãÄ@•DQ@Ä$A@„xr@è?ü»wz@I]¨?Æ#Ò?—½x@‚@’þ?îý?ÌXÊ?Å ?Ä4æ@ ¹C@#m@@ +†@ +7T?O¹u?kãÎ@5<@)¢ +?r}·?€‚Þ?¢ËZ?½œ'@KÐR@IŒ¸@\@è?Ã0ƒ?Ã(7?ÕFm@m1?ýäÉ?4? +>5? ?|jB?ü`?ü¼K@½s?ýƒ—?ò³|@½¼@dtÌ@H€Z@ ùH@u@-vF@!Î?ÿç§?ôü}?è$¥?ìuv?íÍò?À¹ ?_Ho?Ï^^@GÓ>@?æ@%†w@.b¥@Ad@+®ç@‰»@"6@f¬ì@[^@A +Ï@&Ád?ëÕP?⺠?˼Ÿ?÷é~@ ”»@ bó?­X?ÍqA@zP@§á?Û¤{?éÖ£@ ~Í@öò?Úã?ÃKÏ?¤ÝÝ?âÑ<@Dæ=@9EÑ@>ê@sÄ?ÿðœ@º^?ÿc±?ëaJ?¦zi?¹†?âlJ?ß{?ñè?çŽ?O£Ê?sx´?þ’Ç?ðQ¦?2 +?–=£@$@€µ?+›2?(‡*@SÆ@é@DX›@Cƒ@íë@s‚?‚š-?{‡ù?,Œš?Iþ&@ c@‹ß@ üü?jM?’"ï?ÅÁŒ?ìR—@$wA@LJÄ@5±¨@2@8éV@ZÅ-@%EÔ?·øk?Éä?è‚©?Û=•?Ê +€?å +}@Y@ +…+?Ùm¤?átz@T²@•À@M†@ß?áþþ?äú@ZZÈ@ZQ7@èÈ?ùV—?ñ•?òæl@Z*@u`?¦Uä?bo?^?2•±?Pþu?m+Õ?ž§?¢†À?²ÅÞ?Äí˜?ºçÖ?Ÿ¢ˆ?ÂÀz?ý¢„?̹?wy†?“?Êz;?®uÝ><ÌŸ>“6g@Nù@Wç?wåª?{üµ?¬Ð#?«¢?®*Y?¬Ó±?0t‘>ö?Çë¨@7»@ó5@¯½?Ö+ ?›È¦?×É@‚#?ûÉp?®ú°?ÞÍm@J(x@8o(?€ï?Ï?¶"î?´-?ª~÷?¢ƒ@áP@+/Ò?ÇZ?ØÖ?±M|?ÀQõ?½¢?¶q‹?°¿?œÓø?œdø?¶o?Ë©š@Ƽ@y?é6O?íˆ @Üy@wL?ðп?ã@G‘@º´?´e¢?™x?Âë»?ÔãY?µgä?˜ÏG?‹=’?b/û?fZF?ŒØ¸?½Ó?Ñ”Â?Ë–Œ?ÿph?ûê@&j@3 “?ºÌÿ?c´­?.WÈ?m0?ŒŸÅ?Ý)ê?»«9?nÓ¾?c”ù?3@??Ÿ.?²Ë?²²?£#?¤:À?L"Î?c&?v>õ2Š?a?¥÷Ñ?Âkâ@Ì¿?úÙa?ÜYÐ?Ù”7?ãPÄ?Ù±¾?Ïš?Ëþg?—­?ˆpì?¡,Ï?°ë ?©ê?¡ò„?·â%?ëoÏ?ö[É@Ceq@<¾Ï??ôÊ?Œi?v(î?„¼é?ˆx–?‘~?—Pƒ?£D–?­´?¯‰­?±æ°?ÕQ?Ü0$?Ò>ìûÒ?ÚΧ@!U?Ä°*?œ;k?µ¡?ÖîÆ?Ò¢Ä?ªz°?± €?šÄš?Œ­‰?¦ä=?®D³?‚¾?[>=?eï?ml?›g?Òæ>æ…=?íÛ½@+b?ÀSž?¬‰š?Ëÿ?ßrä?À4‡?Ÿø±?Ž`@>ŠÀç>‡H;?¬ÖA?¬Ö?ÿЛ@ôù?7H>æŽ>>‘<šs'>\ÁŒ?+Á?93ª>Ž<¼>¯ó?ˆË¿?ŽÄ>àq>ï®?V6„?·ý?³Y+?¯"?±a?­ÃD?­D´?IÊ?Ak?©8?¯d?°õ)?¡qF?‰«\?€Ó?wÄ?n“?i?^NÆ?Zwv? ‚C?›õ‰?­kœ?¯îÖ?x |?E¨Í?2ª¼?Ž^?8øp?ià”?‡R?¡×·?±sÕ?óJí?Î k>Ýí~?&ª?­Zå?¼Ü°?ˆZ?|*?"½>åÚ0?Ó¡œ?øì ?ƒöÇ?(4±?(¸? ä3?GmW?V<—>èh“=šg>T÷+>õV?[Ò?›|?mX>ˆÝx>À~=¤î6>5Ð"=°ÒÞ¸2h?g ?4FÌ?$t?¥“? .¡?8 w?_ma?,F/>ñù“?‰àU?Â2?ìÎ>–²>S-¢>„.Ê>Ÿ x>º6Y<¢²b=T{?Ñâ?Ò7?†wK?)ù>bâ>£'·?‘Ý…?Ác?Š¯ô?‚Ø?1Û?“Ÿ>,†>‰Ò¸>‡H%=2 —>—6>Ùsê<ñvà=ˆj/>r9‚=§3O?³íõ@ G@>_»?þÖ>Û +é>0íŠ><¡?{˜>3ó?óÚl@+ÐÍ@‰Ì?öò?µP÷ë¼ø>ìDÏ>îs#?x¡?afN?m1Í?¦({?¡¯ë>>8ÏÛ>ßsï>ñ&=ùÞ‘?+?‚Bæ?T7Å?Aœ?:JÐ?|°n?ï‹?²ýP?‡À4Oו?Œú$?†¡·?HŸŠ?3«ª>›ê¾>š¯(=M¡„?DÞ‡?yÝá?z$?zd?#çu?Æ=>A©?3×=?›Íß?‘¿ô?z‚Z?YŽ?EXŒ?}÷?›Ì?EçÎ>¡_ù?S³?\;Þ?‘®Ð?¾¦Ñ?‹~ò>þ‰]?`ÑH?¿$q?€‚Õ>€º>‹¹>bq?2¦¿?¿Ë´?¤?T?iŽò?’¦?À0¹?´I?™ÓÍ?€À?2i?SàT?€yã?Q"?±’ž?w•:<Û;R>4žw?Æ!?[ë?Vë?lÍþ?Áoh?–(?äµ?Ý°?8ÇD?VY ?ƒå?‰¸n?‡Ÿ?ž>?®Ž¬?›'?Kõw?‡Ç?²0?…ð? +Ì?Tò?»2? @>Þ7>ÓXÀ>È%W?4 Á?½5?±C?ܱâ?‹<Þ?U,?l˜~?°"?Œ)(?ìÞ?f³>†iÅ?jod?¬YZ?¬]¾?±o³?X°C?š?m?±?½xª?ä ?9=ÿÊð>„ça>ª×0?Æú¡?éÑè?ldq?BYÙ?¼I?ÖˆT?V„ƒ?/kf?á¡O?ó@?Š•£?‚j\?”–†? d?ËI?Ç™@ˆÅ?ùƒN?ø¿?ê¸Ù?mÏp?^Ä©?’³?› ?˜Ž±?ŠÂ2>Ø–‘?©?£Í?”5ñ?M@å?^¾™?‚¹?‚»?‚À2?s/›?Qú÷?oøª?Š®m?¡ô…?Éù¡?p´à=ÄÍ"?h…?çýÆ@–B@"?ìB?¡ª•?œ»’?—ÏÝ?JrŸ?¢? í ?M?ã^@‚Ù?ÇÓ?(?KÆœ?MÑ?ªî/?ÄÄÉ>²Å/?IýË?~C?¹Ø?ÃÇ­?¾G7?¹)û?¬»…?¤àÜ?³E?–NÛ?&ؽ?=fP@ÀÊ@ œÂ?žïr?•° ?õ?ôà?vé?IU>@U?é¶?óãÕ?ÄL?¤Î? .¬?|.?]‚ù?µòG?¥(G?ƒ¦?žð›?Á?¬îÎ?ŸŽ7?©øÏ?©õ—?èv@ “?ï?Ùl”?²|#?˜z™?cŠˆ?G? ]>çg?õ±@86?‡–?Rßø>ãÌ‘>µ —?MÄ…?_µ?”¥g?Œ–{? ‰À? ¼¬?É"ª?¯ x>«µO?Û…U?¿ L?@š ?q•.?«¢?¨]?œ™¤?¹º—?ãjÆ?Õ§?Æô@?¶¡€?¡ó?¦Öl?®Ùo?s¹?+²9@>Üœ@‡¿2?ï‘?tI'@‹Ë@:ôR?µë”?‰€e> ¦=¢{6?„zÿ?‹•38Ð$°=dDu?Oy?k€y@5”?ë9É?bÛü?f]2?Qÿ¦?ƒ¤-?ÇrÓ?¯ÁP?„ÿ"?1ñz>IÎ?jD{?à}‹?Ô쟳@ +æÄ?¹¥‡?°xí?£N±?XCì?Ü?§6í?ÉM—?É`?Ë°ò?¹¿}?°–@NQ@Vå­?švH?–ìP?¢PÌ?³?œŸK?–6ô?S?y O?Å=.@Ð@Hp@!j?ñ]?Xìx?bC?­±A@&@íl@±?Ë©?Žõ?”~@?’“/?‰p?†6±?‘¸?QÜ@Ž'@ˆ@Îç@Ii?EB?a½v@B‡@ N?à*™@²:@V$ò@Räü@Y+Ü@75n?Ý|á?ÑZÄ?φÂ?äd?õ˜Ð?ñðÑ?è¨Ã@?„{@{7@ ƒ~?Ï‚´?ÍV;?Ë&&?øBU@ ê@„-+@’Øj@ßz?Ñ~@ù@dÆ@Ëõµ@Ì @ºé @¶+@X5¨@dñb@ª³@‹˜@Xù@\ò¦@hgè@b'ÿ@S;U@n¸‰@’@cÅd@³L?öI¾?ÝfR@ »ä@MÒz@‹}\@¦]b@x‰@FÍ%@¤¾É@Á΄@…©@\å@6Rx@-ç@YÊ@ô+@W&@}@€xš@„Dk?Ìè1?Ê^í@"5W@"¦-@eP¿@l+7@{x0@cæß?³„¡?íKu@_ß@w5e@€Â@<@Hœn@G­@E»9@-ÄL@ +û8?Ð-8?b×k?±¬c?ö@ ÌÊ@%;ø@"'–@ru?èß?µïâ?Ø4þ?éP@ °@Gÿ@ ùü@)„#?Ä E?†ðß?’œ?•òŸ?sÄ4?Y}a@-[@LH@LÜ@J/ø@ ˆŽ@¢@Vß@Ÿ?ÿõÕ?ýº"@=.5@=ý1@5°à@1¿œ?Ìè-?Î=æ@:b@4=q?Œ·“?‘à®?æq?çØ]@×Í@ ]0?Ãv ?À p?ª~u?ºê@ëp?ÿ(A?ÙÇŠ?²Ü?>¥‰h?Iû³@'gì@"‰G@—ì@ ¼+?É„??Ú¾ @½m?âk»?‘LZ?¼vS@V@ +à¦?ÚÂé@5»@703@.+ò@!¸:@ <_?Áõ@»@C%ˆ@ V)?'¼?‡œ$@oÏ@§€@8‹%@:º\@<í_@?õ@@xF@@è?™U•?¡Ì +?¦Wø?ë>”@,¿@†X@Y@Õá@5="@"ÍÀ@fW?õ„;?àn?âž0?äÙ?ùÓÞ@D9@!$ @Vã_@"7@?¬?c?7ý²?¡ØL@;²@%‚"?À ¿?ûaÌ@XIn@@’Á?ìqQ?â[Ð?ÍIì?ë²l@0…@@ü?-Ð?V–‡?ÚÈæ?Ê#Ì>þiq?fÏ?ãÓÂ?ë?@Ìæ@‚5?ýðé@ ¤@jgC@gûM?À—J?¾&=úÂ}<’Lí?åü†?ïç`@¿Æ@]?Ñ©p?ËŽð?I9g?#§?kó¬?…\B@ª£@º?±X™?€ïÀ?tüé?c!?’R³?¨s ? %‰?’Z?Û¦@"@I@%G@§}@þ@µÎ?öî@?âª?Å~?äá~@Í^?îðŒ?‰­Ò?œÍ¦?Ä2³?ÑÚz?ôÑ—?ù‹/?õX!?ì¸Ñ?»T«?½‹@GtÕ@IâS@ «ž@D?ÄÌ?ºÜ?–)­?ƒ"*?wg‰?q~?kèñ?fÀ&?a–6?\lÒ?Þ ÷@ýô?·WD?,n¢?ÜåÎ@==”@?Ï @NtÝ@/õ?¾›h?½pO?Õ `?Ñœq?Ÿ*Ê?¬÷î@Qg±@SL±?|I®?v¥@*?°@/s@ßW@ð@:@ Â~?ð59?å8 @?@ ¨Z?¶_?<Ø?Ém @,yÖ@#rS@gY@F—@ñÀ@Á¾?Ä­/?¼4?6?wtƒ?µ4·?·Ñ@&¿w@0¬¢?®S˜?s°Ì@'”P@RF@Û¸?–Ç&?ÔI&@4p@«Ý?ÊŽJ?ºÀE?˜qY?œjs?šŠ-?£ v?µ¥â?µÇa?Æ5?ƒ ß?äí?üo?Á[E?¤‹º?•F:?•†8?É9?õ§?Ñ¥ü?šJL?˜ º?‹ +?›¸É@vÕ@Ôú@*žd@.há?™i·?rúØ?¢¬´?­„ð?¤¾Â?›:?–ºS?›Ñ ?“³…?nÕx?‰‘i?λ£?Âzf?ø¢0?ïLË? !?“d?¡ð-?ªˆâ?Ç4?pÊî?nß„?v?Dƒ>Ó˹?4V?Â?Å?»åû?ÅTÂ?Ϋ‹?ÑõÈ?kÌ‚?øÆ?Ž­‹?¾m.?†öÂ>ë¬?J(»?é]f?çl•?ÆñO?Óóý?cßP?Kø{?KÔ?‹jü?àbå@jP?Ö#â?—cÕ?ž0V?Ðxä?ÄÀ…?ˆQ?x:?f!‘?hD¯?Ìçæ?ð8j?‘«:?ü?$¼A?G +Å?X¨?hÌï?oU@˜@K?°c—?¡C5?w4#?/û?rH?­/´?Ú÷@&m@!Í@<ï@À@qð@³f?Ê á?œO?ç@5‚?ÿþw?ê»?+=?­@ê?­:§@O6?ÿ¢4?‘¤f?fÂX?’®ô? p?‰°?]™=?F N?ö÷?/Ý?5?-Ö?”<Ä?¬m[@A×@%µ@ Ã?ÆìG?©É™?6çí?2yG?“?—B?UV?KW°?e¹>ü +2?+jâ?^š™?„Ô?ǽ0?²'…?ë ? ¤?¾‹®?ǃ?žw…?€ÔÊ?ž&ë?Ë×´?ÜÈ\?çl‡?Ð=#?v>Æ?€F«?Òð?™w¶?ˆ_o?’Ÿh?ï¨@K?ëÛ?®«v?©Û4?ª•B?¡¦8?i‘z?`ù>Ábê>ùâÆ?ˆ~~?“Ÿ©?˜€½?qŽ?‘³¥?”öÎ?a˜è>ðGB?*“ª?~®Ò?Œ^?¯9?¨"ž>rò >M5õ>}>±±¡?ŽH?¤…r?³2?¬*?¿vÀ?Ñ æ?_…È>ñº³?=c?!G?öµ?É°jX>xu‘>)ÿ7>Ä|?fZ­?uk?w^§?n?|>â?4=Ñ0w>W +_>¥*H?-À>Šßk<‹~_??Šz`?!É2>­ò°?7Ϧ?7Ø +=¶n<u=œÐŒ>fÐ>F¢?“?g;+?šo?ý”?‚}j?":>û„I?Lt>wr=“ê>*>¹ð¦>.8ˆ@;@^‘4@@Wo?Ïså>çoê>Ú¸=|Ð<È„¸@¼­@AcÅ?å$ý?N°?eZ¬?5þ?¬¼?O¡?3Z? 3:>ë>åÀÇ>ê!?ç?mºz?‚‹?³ +Ý?­tß> ¸•>“¬J>æ@ï>ñB>ÞIa>¾ª¡>Ú’>Ï@Õ?A_?^/­?‡zã?ªä³?´Æ¾?·ÕÍ?—Ù>Ѫ@>äÝþ?8.?%^g?D*?`³?˜±ñ?œ$3>‹Hc>˜àõ>ˆöW?VÌ„?yÖõ?cÙ?i%±>‰Öì<ˆ#Ð?ÄŒ?YFÛ>ÖÐ2>ncì?| Ý?½1Ô?„ík?5”÷?±Êx?øm˜?tn·>%µ*>ºY&?>~?ž¡?€±?8u>¡R=)ŽÐ>x¾l>ßyÁ?@d?G4!?ƒ?¿Ìž?k…>RYQ?`? ?£›­?¦²ú?hý’>ŒY>äg,?€{?Yíu?!S?60,?€®;?"8§=«X?7¬?ãmT?¾=E?òV?z§l?*¹?3$Ù?Jã0? þÇ>† >‘›R>.?Yr?¼!?GË>Gê>âA?r/¢?¿Îs?‚?W?—«>Œÿ=ý~>ž6?±•?{¥?®c@?dßX?í;?4%Í?@ž?œ¤ƒ?ÂÕ•?ŠÆÐ?Vݹ?u–?ù ?@.a?²>:×?´aX@Q?¡ØÊ?zJ5?· Ä?Íæ?,^‰>Åb?(^ ?/üj?¡|?·.r>Ѿ#>~D´>‰Â>”^A?s¼A?‚YÚ?™Kƒ? ‚H?N£~?S¥’?Ü4?é†K@^Ž@ +ã= Ýæ>(£ñ?‚Œo?–S?Ó—©?Ǹ“ñ*?[T?‚¸—?ˆé¡?”ÿÈ?Cøï>ÿ(u?³×‘?ìx¦@ ^0?ºƒ¦=—ê@>cüè>Át?%£?5'ô?G,Ì?ÿ?˜ý?|Í¥?P+8??n>þ×?Ÿ0¦?Ü“õ?½Á??"?‡”ª?žªÕ?¼ÄÛ?ÄÅ4>žOV>Û$‹?=Ï?nÖt?ƒº1?÷à +@Š¹?È?ÅU?Þú?’Ë???0’?˜HG?XÝç>†ÉÄ? +â?ƒ½Õ?NÖ?jA?S:Ã?ƒÏÈ?î>¡ê?œ×ˆ?ê"v?‰‘T?6an?œÚô?º×œ?“…ž?„&?œÊ¨?¡\@!Ç]@1rQ?±”T?è»?äÊ?åJM>¬æ=÷?À?îdU?í?þ?„<+?išŒ<Ì›Å>f2ø?rª¨?[Ü?,ƒÝ?'Ò)?a±?†ã@Ïq?ÈD>?3Ï%?N²ã?uUª?£Šš?ÇŒæ?ÅC´?ÆÓ¢?¯žŠ??Œ½¿?„ž]?„¢ß?„¦I?tÜ>ÝA?y†÷?‹Ba@ÅM@"Ô—?Ïè9?¾x~=õ:=æ«¡=S4? ýp?8S¤?—jÙ?‘F±?[×??‘þ½?úÖ?Ú,æ?¤ÙÛ?¦:P?£%?p­?{?/ÆU?_x‚?«¥)?Ø{ñ?¤˜Ù?…6?±øJ?Ǩ¥?’¤?} >mh <.oE=Ìøj>6FÉ?áF‚?ì >bÈÊ>“v¶?؆ß?×´‡?Ä…Š?ѶÁ?ñ2?â +?°ëH?©:ò?§µ?’W?R—n?­à@O@\@&§Ï?×C‘?lä+?êºë@'R?íò?È?ùß@\5?YUr?Æ4>B®á>2þã?k%ò?‰'?…öÜ?œØ@†¡Î@q**?±c ?¶Ö[?Ô±U?½øH?…b?¥`?õN‘?ØÉV? ?§?›4?…t?ç_—@&¸Ï?äÉ‚?’ûù?¥¼í?µv¢@ 0Á@!¼R?ä²ì?ÇÚ@g)G@}é®?ö + ?Ù"8?žLæ?¢¦î@Uã@Hê<@JP@ÑZ?òÙc@×=@8V@:€\@4Åï@=ÃÝ@Dè@Ïì?³†q?µ>í?ÇÆÏ@ˆ¤@&sþ@gâR@6æ@T…—@@&@ ˆ—@¾?Þ­¡?É7ù@›èO@´`’@::@Ù½?Ú«þ?Õ3>@í¶@‹6@Ôu”@É4J@ex@`Õ‡@Z!L@UW´@GB"@\T?@‰ö @õp@hWç@[Ö.@GK@.S(@ º@5Þ×@Z¯q@r±y@†z)@£LÓ@·—@M:@Fˈ@9êï@:ÀW@sS­@Ü@MÕå@?Få@S Ÿ@Tª¥@é@óß@”Gð@—‹w?í'F?îïÅ@GEâ@C\Œ@%‡@ +7@0Ó’@ü ?— D?ÌM|@EüX@Iò?@WA3@[¨Ë@`µ•@WÁ­@DÜ@+›g@Çs?±JU?¹Ò?Î?2™?a§è?ƒ›þ?æÆc@>5?Êßì?ƒ|¨?Ö@û@n~@;Œ‰@T³“@/Ù€@HO@@Ý\@–ó?þ‰i@±0@ +’ð?ÏB?·¶3@d½@|Á·@$`Ö@%@@ÄÝ@AG?Ѿg?ËŸK?à‡è?çó@ª @gÙ?ÖE¢?ÖæZ?Æžë?Ó.ˆ@@<¾?ଣ?ëB®@4@ý”?Ürš?åG5@ ‰D@$à@†5o@x\Å@.e.@/p@;¯ì@TÕE@ý˜@i×?‡ªŠ?¼vÄ@éñ@ $?Í`?Ç~ð?³NÓ?¨!©?•7•?¤ä¢?ÂFº?ñ­ÿ@,)$@0?@1š«@AI?øÝ@`8@Ib^@2è?%×Ò?Ëlq@X’½@:™ó?ø¡p?ý&¢@ïÌ@â»@#›@ I@5Ù@Æ•@[Ø@?é}p@݆@7Í@2 O@+ÚÔ@­>?Û¨;?Óµ?Ày +?ÊN—?ÜcO?ü`@%¬A@'½l@#Ð3@{—?“$?€_•?ÿØJ?ü©?õxÜ?êÌ?À?ü?Â?ÑH³?ÕC”?Èrf?½'/?0¶?¥k,@ ½?ôû?Pðƒ?…ù@£3@©Z?|ô:?|8æ?£ñG?±Ú@yD@~ ?ì•A?ùå>@˜;‚@–;!?Æw'?ú–?ʧ3?ÁK?…ºä?†êÇ?0æ?3ÝG?² ?½¦®?¢gj?˜½Ç?o!>ü‡?äè"@ #˜?Áæ?šà?Ãî¸?Ö‹Õ?Ä?R}Ø?wÈÝ?|‰?ß¼@µ´@ ‹ã@¸ ?à«F?½¡3?‰\¸?°?tv?¼#N?æ£%@¨â@àf?îÔÑ?ê þ?òbž?âtì?»š=?» S?Ãý ?Îg¡?ÓrÃ?Ò‚@r@¥¼@,@/rÃ?²¦z?§KH@>ÜË@VçÝ@|Ú?ñWÒ?œ6I?x› +?6}§?üˆ?Æ+„@?ÔÕÖ?‰ÝT?«¬{?é³ç?äEÜ?ÇMq?àÉî@N?êLC?wK±?ši_@p5@ÿB@ùh@¾v?ò]™?ô)ä?ǵ?ÌP~?epy?Y_ý?Ë16?ëÁª?­]ô?‘Pø@%@*`O?ÑÏü?3T`?¶¶Š@G,@ =›?ã´?Õ&4?žŠR?ªÂr@ »8@|@qš‚@o…€?†Ô!?$s?÷Ó@Žd?¾fy?¤§s@ +¾ @.$?Ëy?4‰?¯Œ>@Ò?ðâF?Þƒ¯?¹¸è?¦8?ªT>W9>QF?²^“?´ú€?³:q?°9W?éU?ŽªO?«Ô?µö?…[\?DJ +?€2T?­LÒ?«Û?’±?‘›?•?‡¹"?±]J?¥qP?æc—?꛾?*]ã>ò6?üÃ?->ÂÊs>”:T?Ÿ©?oF?©'Ù@H ?ûú@8þ@ õ@ÆØ@ +Ú7@Ï“?ûÏ?œI­?|äå?™z;?¯$?Ìeç?ä\@P[@A}…@¼ë«3>÷•>÷g?s~? ÅF?ÕË?=¢?B„?ŠV@?™ƒ@!˜@>oŠ@ìn?É×ð?ÜB?ô”2?ù$?Î8 +?ØS§? +xP>ì1?ZF0?ƒn?¬ Ï?¾eN?ÇJ?Î…¼?±3¶?hËÑ?n?Ñ–’?Õq?ƒ e?h[å?ó?Ä@ ÞÒ@êñ?®?Ò/·@%u@y ?²sv?Àì!S>“ì?«—^?­:@[J@YqC@`•?îà’?¦# ?‚ •?¤ç?ÆÇ?»@?—q^?–?½Yª?Ìú ?1‹À>íÌð?­ý?÷£®@bü@¸?çþˆ?fm4?cñB?4—"?<´H>ÅI2>³°š?X®?€µº?™î?ª ÷?œ¢…?‰Û?Š¼?¸;?#5C?‰¦²?šúÖ@n?@Ùô?ºœ?$“½?€%ƒ?æCÀ?» ö>ã>nz@?­ð×?®9>¼<>tºõ?ƒNR?®nŸ?¼W¸?Áyk?nÀBCÔ?i“?f*?$Ùp?)h?b,k?j—ð?H¤r?GÐ>”IÛ?0n+?¯)Ÿ?½ ®?×å?¬¨U?'ç?4Õ"?k3?Qýè>—àŠ>^l/=––<豫?ý-U@»µ?9pç>¾ÓÑ>ï™6>ñÄ?k¬I?ž¼0?C>ÁÏ&>ãSr>ôm”?f–º?¯ò ?Ý”€@P?¼<¤>x5>ã±+?JÆ1?3üÊ?W?_,?º!+? Ðý?|O„?{ƒÆ?_ +Œ?X)»?cÝ`?; +?Å”?%?l:?Lʶ?¾^>ØÚ²>=®(?ì?ÅQ>±ö.=ø@º>R¬b=Siò>¹Ÿ>8—=?Ö¬? ­Ð?!yA?œ>¯ö=>æ£?'2õ=å ,@8+p@ƒg‘@D‚:?Ø&¼?=÷?×BY>ÂÊ?úq3@Ú6?ˆ›×>îÉ?­‡–?›!1>=[Á>"è›?÷±>Û´Ð>ÚâÔ>ë$>^±Y;ÝÜŠ>¾Á +?m¡X?Dýn>œ:>É©Á>ïš´>ð¢?8A“?52U?8Þð?B@†?€‰L?“‡Ë?G,Ø>ó‡Ð>€R>9i~?[d?)D6?c·y?ONò?|¾?ˆÝæ(9?9«>‘ù>šzõ?Döõ?VúO?]«k?dVê>ŽH~=Ší¬<½Ù +=}ý€>œ2>¤?>Ài¾>Í…ý>þ”•?“”>ü¯¦?ƒñC?ÆØÜ?}ÛS>¹ÇÂ>ËUç>f=¬£?$Äf?±3u?»¿z?º~?š_B?ot?G}¢?°d?0©?P=Y?Dmà?=÷?pã?¿ºÀ?˜Š˜?LðÂ?x(e?pi?lÈ-?Iœ&?]›P?qgr?}ý~?‚©Ä?°¯”?ñFs?­…™?<·j?…÷È?±žÈ?Á¨?Ö·#?À‰?¦,í?U»€>zû>Ö?ø?Â?¥?@ ìD?§‰0>`¹> *ø=…•I?™t?}Áõ>ùá8<ËX>‡)ž>àO>ï}í?µ¦?)ß—?QìZ?n@;?k¨Õ?Q–i?ETè?ŠìÛ?¦£h?J¬Ù?ò??såà?“8|?†”V?‚Ž>߯M>¹)?Fì¸?‚Ek?â%?úÆ\?¡Hú?ŒQ}>—.Œ=øE~?ä–-@|B?“ô*?‚F³?_/^?I³?aœ>âžå?y›k?‚\¥?²š?fŠ;î>F; +íì=ŸO”=ÈC|?‡5a?‘…›@!ü@¯?óQž?쨙?îõ5?íø @– +@ v_@9×@ôÛ?žìý?”<”?«£?Í>åNd? +,?V@Ö?—©V?éAf?˜#M=Øgb>¥$?г?gñ?½A.?Â:x?¾Ü?y-–>ê›è>ಳ>ÖÎÊ?.„ ?d}¥? +§¤>­Nw?F;Ü?ƒi?iˆ„?Lå?´ýk?Ëç?ÊûÎ?Õ»ž?NQT?%Ð?›Á?¶>[?+9>šôˆ>òô¹?>Ó=ÑŽ¡¸ùE?aÚ?ñéê@@9‚]@V¼?…ˆ?‚Í1?€ f?¡ ?½Qi?íî +@#Þ?ú…È?ö Ð?!4°?w…?ªó–?* W>ýª?>ŠN?Y@W<@ ^ ?8Ø ?À@7@%÷?=ê½?0·N?q„? …?ˆËØ?˜{s@·‰?Úê}?]s?$?Xë?C^“?ªPO?ÞÆ-@%…U?ô:Y?ZzŠ?UúÁ?Q|?ÍE?£:?ÿ1(@a?Ñx ?”é2?‹˜?„žv?oo(?iNy>—íy=¸?‰?–jY?¹Ÿ?§È?‡Oÿ?³Û?iq;É(Ã<³GN>å61?¿¥?àþ!?åÙ@ ™?çD?1ãx?HâÃ?†²¬?hp…>ûÂ?n'£?Ç|Š?˜ w?9V?eÃ{?ƒ÷ ?­N?Õó–?·¾B?Ÿ 3?¤0Ä?­÷Ç?Xz?Þ?³N(?Ūz?öZÝ?õ¤ú?D£³?>«7>Üöe>õX.?ÇÕæ?¿Ãy?…>%?•µm?àØÝ?Ï¿?š®~?—-?HÃ?HÎÁ?>^$?¿=0@yÑ@êá@ø[?³yn?C—?˜ 8?¼õ?¹5?º¥i?÷–Ù@\K?Ó‰h?Âï4?ð°÷?ïN?‚VË?sTà? H&?KƦ@:Ë—@.j?]þ?€—@?º_d?¯Y?…d#?…d?¹y?F­Õ>Ùhí?‰˜??óî|@ þ@:K?è{ì?¹åO?„@ï?@d??¸Eð?Ø?œ =?‡Àš?ú£ï@ ¾|@n@¡ñ@i«@d@u@Œå@bÈ@3!ƒ?òÊ_?ì=®?å³T@÷Œ@ 4ú?áDx?¿*¡?Q²>Áš4@)°@s-@rñý@vWÒ@2¸…@Dw@ ê@š¬@'™„@1 +ª@&²@#ëi@Uܶ@_Ùð@2çC@*q>vw°?[ª?fh?…û·?‰»¾@5ô@3ä>@Pç@IVO?ów¯?ïÊ•?Ø”?ÛZ$@ÌW@eK?‚rø??ár?àâÄ?ë'O?ôý0@ ¿2@+ô¯@ŽGÔ@†åA@Ws–@D·´@@Ð@A>v@(jå?ÁZÜ?ÂÓ?ΆÙ?ÿŠQ@3#@Ó?ô˜?ûÕ½@>5@!»ð@\›/@3FW?Þ9@RŒ@bEC@J~@!¢½@Nä?“Uº?‡«‹?\Ä??” +0?È‚@?ÈnV?Õ?Û®Ù?ñþZ?ýÜ@¬´?Ô7?"?þõÕ@Xž¸@R @FÛ@0bÇ@.„@»Ë?íi@ í@+YÌ@`à?Àz{?àÁô@pý +?¯Zk@%ZŸ@S +?åU@_¸@n<@E‚?ùº.?Ýe?´óç?Ë¢c?òKL?æC?Öî=?ÛÆ­?à¥!?ï®ê@ν@Qz?»š¦?Äcê?î<¸?ãö’@ +¤@l?æV‘?èÄ7@ +da@e¦>â¡>U„k?›‰ö?·ƒº@&)ú@7?å®?±É‡?HµÛ>øtÔ?Ȫý@¸@:¶@4?­æï>ƒn(?3+ñ?¬›¶?¢Âp?£)f?–GÈ?Tί?~›@pÄ@Ž?öëô?ò¨>üÊv?o¯?²‹ð?¸Ö?t>öFü>¾°Ö>̆ ?„J?¢ ¬?ÇÏœ?éšÒ?ó…È?ì“?åÐ?íÚK?Ø-6?¦Q?Éhl@š@z¥?;ÿ·?1vê?¶M’?¿g¡@-M–@(Ø%@,!Œ@*P-?³OÍ?Œ«?ªã?¶¢?]·'>óKW?µ0¢@hê?øÍV?§š?‡í?U"?rÿ¸?µÓo?²?]?r7é?rz? ?)™?  Y?ñ­>ÍÇÊ>Éã]?o¬?žN´?[<·>ñB?;¥¥?š¤V?Ð)â@4kB@.£b@&!¢@)Œ?¤ÝÆ?© ¿?$–>ñ’?Jl®?bjè?†8n?½ò?~È:?o®?Èêô@3%ƒ@ ºè?²ø ?µ¶?Ò29?ÅÉè?än¥?ó¹³?Ê^?¹¡ž?]j?>ú]¨?qˆ¢?¶ýP?µ•?¹÷ß?ÃÊ? 'f?¥Æ@^î@ì¬?¦0õ?§ ‰?›Žç?Ÿ:n?ü@Òˆ?Çm>ë¯=?ŠŽ3@/¶@Ç=NCd=›°@>á>êïO?´¹?ÓÃS?Æû=?ΙW?ˤÖ?ªh?‹”–?Kº?Q ¾?:Ôà?‡ø=ºjh<p?2JQ?iaé@Œî@5ÞH@ ê?µ—u?¼ÀB?¯y´?©È?Äüç?Á\Ð?¥ù>?—È?@ÕÞ? Ó?‘•ò?æ1Ø?·&¾?dg7>DF?CIì?chÉ?1ðÔ?+»??æ>?Ïž?Æÿæ?“ee?ŒEµ?#c~?A >ËÖÓ>úý?·¦ü@íý?”“!=·#X?IZ?Îc?Ìñ)?ó@T?ÞÄ?rô?U ?Ò·k@Ö@?îxó?‘'Ð<àÖ>ïm?B\ï?-S >Úgç?þk?4G?zð?­zŽ?Ñ<Ü?à™é@ÿx?ÔYJ?fèÞ?ªé@5»˜@!î»?iÿÄ?j,¥?æùm?Ýs?v5Ÿ?7#Ú>’^d=X#>€Îü>úù??„.?‡­?µàÊ?÷Ã?ÏË?u¾w?…u?ˆÞ‰?ƒð´? ë >ø[@õ@0Å-?½·{?€¾Ì?O!?9¸¨?Z5?r¦7?>ƒ!l>½w9>üs{?8?…?„eÿ?«£?âÐF?Á¼¿?qgP?d÷Ü?„“?ž9"?µ›?hôz=´ ª>³ª?¸ü?=qš?nÓc?ƒýš?¯°?|\b?Tªø?š])?¿Å=?— g?Èr?M?—P?l??·æ?:èE? ¦?À=c?µ+~>øN–>Ý\>¡>§X+>‹¼ì>’IË>½½ =¾–Œ?„Aÿ?_ÀÇ=ÖBŽ?c¥?ìè÷?s’>Õ/(=+…6>]O…>ù‘> +H»=Žãˆ>2n\=8¼?ô&F@;b6@:ÇÁ?¾ +â=ä0;¦ŸK>pÂù?IyÜ>DÖ’?}oX?œJ?_ü¯?ä•?Y¢?­k ?ž=E?#r¦?#L?¡ø>?³‡*?À'>ÏH‡>äÁ™>ëz@?&øï?m‡§?Gõl>º\Ä>Ë?Gòô?A©Ñ?,‚s?4C|>¨sÞ>’¥.> +>­° >ÜåS>óx>¡@i=ŧ&>]­Ç>õH?!ŒP?u¾÷?CjŸ=ùµõ>¶²<µ>„Ãí>oæv>V@˜><£ ?É}?øã?)>ùÍE?X~?q’ûÎA>1Ë>ù¦O?E®D?í¦>ýº? “? ’=?[f»?‹S8?løŠ?*nô>ÀE¥=•ü?s?ýGV?§öü?P>¹¿=Þ + >”˜ú>ÿÃ?öP?43\?„“߇j>Ä/}>á?iÌ,?Ã(´?Œ§b?v=?ÌX?åP?qˆO?Ázì?Éÿì?×&.?Îݹ?Áº?µ(Ž?žá?«uø?ÁñÔ?·?®½?ˆÄ?fkØ?4›ä? ?†?Žw?FÎÖ?wF—?s#—?r0?³þð?زF?—Eí?[Ùâ?&¼ì??bcÎ?Üï?ä¨?éÜ?qÍ?]±±?¶I¶?Ôr¹?Ò¶?l”?©#%?¼ŽÛ?ye?€÷n?…jÒ?‹-"?³„ƒ?¹_ ?k^ÿ?GW ?ü±5@ X?“ú?‚HÂ?3 Í?;°K?G$`?KÆ?PÐï?V†>µUÃ>¼-Á=÷N>y2??ØÍ?=¸û?¾¯ï?Á-{?ÄsÇ?ºRå?$Rý?3Ôg?CUâ?@I›>ÿÝ?ev–@ ?û0`?jÑl?jã¹?…n +?o¶³?Ksu?H.q?2“ ?Ž;×?ûf?¹)§?ʤ>óav>âOv>öÇR?Ø×?@Y@?„\U?Fj?çX?@ =?oU??=c?#¹X?2å?0¹Ž>ò¾¢>Ñõn?°b9?æô@Í@*m?Ï ¶?›¹K?nãO?R#D?‹•¶?’¨?Ôè?èCJ?7ó‚? ³J?»?Äd=Å…Ž=š×G?f¶?6µ:@ Zå@é>Ê>“ZU?¯šú?§¾a?¤??”?ƒ9?‘ÿ?¹›1?—*?s?>?˜œ? Ob?µ¢j?¨O?ŽÎB?’?œ|?§ÐG?Åœ?‚? +mn?Yñ?‹Íð@XÅ@?ua?ï$ç?¦zK?(Æ^>°ž??¥?n<Ö?É$º?ÐÓÔ?.1>ñ?›ÇË?¬F?@V‰?.(w?ù¤¹@ó +?Æ@Ž?ÄZ¢? íh?À ?¼U§?¬9? Š?) ö?x_?zõJ?vuw?€e?’ :?wª,?6È?…&1?¯ï?h]>Ú!ú>úLü?„Ö?ܤœ@, +l@·©?Á¢ä?¤³Ù?™™,?¸¬?µ»M?FBÖ?²c?; ?Å?º%ü?Ç ?ÆÜx?ÃT´?ºÀ?¨œq=‰Ì>V?ÔY´?Ð@?¹{N?­ ?]ÚÌ?Jô#? $C>ùsÞ>Žk˜?0ªb?¨O)?ÎÒA?ðA?Ó’º?Ça?v_‚?ð?¦Ë?á®Û?%gb>i=?Æ<º@sV@`{@%bÒ?žëo?Ž|]? §û? +´—?è©?Ó¹º>»Ä”?þ?³Ò?Çá @$«?ôÚî?ŽHÓ?|ÍD?H,Ç?w“a?¢_[@AU@`¬Z@6÷?™§ì?©VÑ?¸ +ë? Ú?òÔ??¢T?ׂ?Ψí?ÿ3I@‚E@\ê>«Øf>L 9?¹ý?¹1É=Îz +>“sÚ@cá?óÃs?_”h?SEž?9G¢?= 6?AöÑ?‘&†?è&?²ë¹?SQa?¢ÙÍ?ßx ?Ò"j?È“?´?¢Ò2?Þ2­@+ã@+½ @>ó»@œÌ@|‚@!%;@%Œ@&xÀ@&©Ö@Ü\@Dí@ J@O…@€º¨@kÉ«@Ùû@:d@@Û[@AÖf@Iø6@ãs?ŸÚ@p¡@[t”@U„@Gʯ@)’)@;Y@:†@[5Š@VuÅ@Q,V@uE@ +F@œŽ\@¶ª@œ®?Ï—£@ÛÜ&@ìòy@hžù@a½¡@›#æ@ž¼¬@èªn@áà"@¯ü¤@¨ÎÀ@’¹Â@ŽnU@y³@QU±?ß%ß?ó²ä@«Ó@`*v@«Ç¿@Žzü@W@–"Ž@Á¬@Í—I@Õcç@¡Ç§@‚zs@ƒ‰Y@„n³@…ñ@…½Ê@žoç@¥’5@Z”!@GvQ@#zû@„Ø@v÷Ó@} @MBJ@Etœ@%OÅ@ƒ"ƒ@ˆF@sÅé@eë6@½)?áøü?¤q6?‹„}@¬0@!˜;@@à@C¹@>-a@>Õæ@Xí•@^ƒ>èv\=à‡~?÷ì$?ÿš?ý#V?øg¸?Ýÿ”?樺@/K@.V? +¿9?B·@^^@­¦@=FÇ@1k?꿯?é=D@aÊ@û?÷[?å\I?­Ö@ª@—‘”@„‡ö@Há@ +4?óƒ@9¯@ †‹@3ãŽ@aB›@JÙn@Óß@³Œ@ ž-@ À@¬°@ Y™@"§@ ›?úû@ûc@8.@+d@ro%@J˜)@x²?ñ'?·?ŒCp?'Œ?Ò @S2@:_@ò¿?ÛP?.¡W?Áí>@>×ô@2ó×@mÚ?ãÈÐ?cF`?¼-E@¶"?÷ ª?£³?Ñ¢Ê@ +Õý?ú´e?Ýî{@~l@A¶@ÞH@ìÊ?þŸœ?°Š!?È}´@¨?ú±ˆ?ðþ@@/@[]Ü@G?’@¬é@%ùN@~Kh@Bá/?-Ù?@“?T ?À|@%Y5@ÔÒ?þé?êˆQ?’•x?‡<“?HÒa?W5_?ŸI¸?©é[@‰F@ ÇV@0øþ@1‹W@Áä@ßš?¦«›?¡sR?ýžS?ý‹S?'Ý2? ?ô¨ê?ùžœ@•E@ {?—¯J?‹†?Ä[½?Ïa×?õD?ü‹¤?òcX?ô©@ +w@ ‡Õ?Ò·§?²¢?v&?“U@¨2@$RŠ?Û*"?‰3z??ƒª>û]??páÝ?·`%? ¨ô?€ò‘?ʦ@$@çö?¼;?­¬š?p=?¡ö)?ÒÙ¸?×UŽ?Þ¾?é”]@ÇÉ@ É?îÝ?ó$o?§Æ6?ª;&@@R@@@öº@µ@Ñø?;y±??¤¼#?Å?çÍq?ð.?™ÉW?]+æ?”Vú?´c>?óM¦@ê¨?»™ì>÷âU?¡›Ü@Ϩ?ø ?w‚Ì?a_G?S?S/”?ëƒ?òA.@ (@—˜?s•˜?tb‹?}? å?ÏÌ*?Ó0ü­s>ñä¶@7yË@J…L?δ&?‚5Ë?†?ã?b*?™à]?›J”?¨ë´?ž»?åì‘@4ù#@0WD?¸˜³?Ä ++>ð0[>ðW@Nº@P?Ì&7?¬áI?(Õg>™³E>õ >–Ðo?à@Z“@ÿã@̾@ —@Ø…@ ð£?2˜j?lb?¼q?ßí•?êc?íws?ê ?è à?«y¦? «È?,ü·?ˆSÇ?§?ï_û?ÿ9¢?”>ÊO>°Æ>–ë’?¼ìµ@1k?Ñ[? J?æ@0D©@+‘@ê?ó<?˜Õn?Ž¸Y?™à?¤9?‹Yº?g›ð?ÑN‰@$Ì›@ þ}?”òÍ?‘Âj@ é@ Dp?ì¾ó?ã„?ÝãÈ?Øžl?¥!g?– °?Â1 ?à{?ÓË?ËÐ]?Ï?Ø?Òµ.?Ö";@íù@â(?Ð8Ý?ªÎ?[t?qÅF?Ré>çè>çÎ~>ç¼X>ç¨?Œ:÷?¦ø?æ??å 8?à6Ó?çEH?Í¢!?¥?ž²?eÇG?fýC?€y?ˆ&¹?ëÇJ?ü‡#?´Ãº?Œùb?Ë?”¢‚?‹ÕŸ?EoÕ?Q’È?µ¤Y?±¯•?­âü?ªd?Bƒ‡>æp¨>ÐóQ>Ú§*?\”t?ë€Ì?Üa´?fuí?fz”?}.?ŒŸ?F\Ú?‚i?¨@YM?Ô®¼??£ÿö@ñã@ 6??´{E?­CÊ?,·>ç'°?¹CZ@ {Û?Úæg?aÒ?£Ê?Òý:?ÀI9?~mü?”âë?Áw?á|?UŽ?š ?V>íÛ?),Ç?§Öp?»ñh?›çV?—LÒ@ Ü@8'?Êåb?°Mà?k^Û?ñ!>÷ÛÂ>ìp?&‚?l ^?Œª±?Ò'y?Üx•?¥$?’K?¢ŠF?§å3?rÔà?oy?@$lO@4.l?¶èú?‹A?~—¼?qÖÝ?R°‚?J(?¥a‡?Ée?ÖX]?ñÖÜ?³ýÈ?ub?:>r?ZE?‰›?Õƒ…?}œW>²êP?p|»?«¥k?åR-?—#€>ünr>¼-Ž>n©?Xq÷?«lœ?¬ i?€È>ý“H?SÝ?í?ÅÊ?,64?9Ñ£?r‰­?f‹A?¡ûG?št’?vqŽ?c­;=ZrH>®‰W?cÕ‘?ªž>Œ'Ò>·°‰>•¸À=æÆê= K7<®kˆ>‹úã?X¸?¶ |@²?Ëà‹?ÑÁ=î¤É<¸ïh=ÉÒ$=%Œ<”My?PV>Ú‚Å>Ú\å> Y @o@@‹G@J¡þ?ä=?¿<õ÷Ñ<¨ŒÀ=Ü7T>ÆY~>‹[ä@áÍ@$ìÀ?˜ŽÖ?Ú?Ò ?%ñÖ?,¸Ñ? +'É?j)>ÄQ=Úˆ—Ï¿>ì^¸>óþ ?jÐ?`nr?Ç=ö?£óg>ž`¾>¸59>TNÞ>oIÖ<ﺙ>{4î>‰Ð€>ê}a? v?wQ?®çï?~Ê>ôøG>±ªÛ>\>Æà=x1ü>žq>»¾¸?€XÁ?liº>¯>š8Ø?LK?VÎÃ?hù>ùÇu? ê?V?c5p?~Ö1?ª E?´;?>Ø×>ûÌd?ÊÁX?ûÈ¡?¥:Ë?|­4?óh>‡Y>sÅT>:d>!”>Ëþ?Jüa?³¿?¤´?„¯?P?‚v?Ii>ÿ45?Xf?–J?I’?XU?- —?ñ?9Ÿé?€'?GV3?Gš>ßH¦> wP?Ow?ÈžY?jS ?b(Ø?ÿ.?±$<ó^¨>ƒcÏ?çR?HþI?Œ¾?P·à?cÁ?^Ý\?œbº?wŒ?£¶?š*Ö?ŽH?¡†‘?©–é?qOB?=ó? pæ?‚B?‰ž?’?LCÛ? 0?=³â?Ž˜?Ü/è@"ù?ˆ>(K?zi?žÄI?ˆ(´?à?-à??u?ŽN¼?«Êá?Ïþ?à¨P?€md?2ðQ?R¹=?i¸?¿ >þÍÏ=ï_â=ˆÛH? M?(×?ª@k?´OÚ?%n?# ô?~¹6?‚JÏ?` ¤?LÓì?øák?îE ?kò^?\“2<­åà?lÜ?6@sý?ùó¯?B?dG?ñ?0•É?¹!Ò?©ÔÅ?p"0?ˆ8E?Æ›¨?³I?—fo?™ø‰?œˆr?¿}#@]b?Äø³?´U? `(?$ˆ?-Üs?)*É?$%u?$¬>¿êN=’›3>‹oÄ?Ùa>…g™<˜”Î>˜|?è>™4/>1f2?–¦?Õ×?ÚXß?ÜÜ?·›É?ž}Ÿ?ʈë?ãa’?µ†ö?¦É?¾h?Ä­Ì?éß?ìó!?»m¬?µ‚?MuÔ?,ð¦?†66?ˆÚz?¾®>?ļ?¿ˆ?ºªt@’–@ k5?š‹¦?Ý.>„½(?ñµå?ßÑà?‘at?Š±O?ƒ~º?œ¥?í»Û?ÎTN?pÍè?ŽÝÑ?°v_?§è4?“â?œ×?®g=?Õ5,@FZ?ê"û?Ì1Æ@(¼L@]êð@…¶?ƒÏÜ?À_Í?êiz?ì@Ÿ?æ ï?^Á÷?íñ?D 4?S«Í?Ú+©?ÿØ?³Ý•?¢¯¸?†ÛH?„_?[ +??]UG?QÎ`?R1?ãt?ç:ô@ :ç@Þ¨?<Ï?¥ª?….?hL? ‚ó?2ÆŽ?„Wí?–µó?¹`q?ªéP?‘kú?z@?]‚…?nø°?lµj?.ÐÊ?„Û?·ƒÅ@Ü@ {i@öp?ÕJ³?±vz@2È@V\?¨B?W]Ì?Ššã?Œ»É?Çm?Ê­n?Ä +?Ã_?cï?#lÀ?i2-?Yô?7 8?båî?¶K…?œ?/ÛA?‚2×?Ö³?ª±Ú?M3b?eÜ?„ý5?¿µs@ZI?­'?2½o??ù?/åŠ?=*µ?Š¡·?˜U\?Ž9Â?ŠVÄ?ˆ'x?†p¿?À/ ?ã?õØÎ?ï Ã?Òˆ?ߊ@|Œ@ZÔ?ö÷g?ô¥^?÷¬B?âA?¡½?¥|Ú?§E°?™Ò?Œ»Ã@zÐ@K‡@Ш?ÜÝ6?¨&­?…V?±'•?Ès?Ÿ+?&3>«Êÿ=¤–«?©’¬?Ɉ?Õ>ón @ty@ÏÄ?£”?§Ä¸@cå?ü‰?³ A?¡Š;?Wýâ?<áÕ?cŸ?c(J?ɉV?żÊ?³ÓÏ?Ú@c[?æ/ì?È`?ûfp@ ö?Ùg?½»?²“û?´.à?ÁŒ®?ż?ÈŠ–?Í3à?=Hƒ?<¨,?ÐEw?Ö@S´@J–@E@Nt@'G_@÷¼@‹S@&€Ø@Í'@_£@ð°@o\@ ^?Ìcë?Åå“@‘*@8•?Ä,T?Ä•$?Г5?΋Ó?‘k£?®^û@{\î@jÔ›@‰@Ž@q@•.@@@,µü?Ür?ÙþÅ?®DË@ M6@§Ž@‘˜í?÷ Â?â ó?œFÞ?·Ü¯@Iî@:&@bÛp@b,Ê@^1e@HP@yè@-º‰@N)ì@4ß«@ +¿º?ê© ?”ج?˜¨Ã?­e>?ÿÇf@AW#@ ?XR@?¼û÷@®]?öÄÆ?) +?¿¯n@<é?ùÀ?«…Ô?åÑK@$>?ùmF?‚{ +?çÌz@?ˆ²@ |ú?qÉÀ?×nã@4ð@6Y@6Üb@"µ%@ )T?Õ™©?M0?™zg?ú @¸©@?à@ã@ s'@à ?ì1Ú?ÞÅ…?À?¢Üz?@®Š?À·Ë@O=4@EKÿ@<‚»@>Æ(@7Ë@2@/dŠ@ÿ?}í™?™f?Ðu¬?¼× ?W?€ë›?É|q?Ãùè?¾ÑÅ?º·Ä?£à?ªÞb?Õ— +?Ït^?£Ž«?ªê=@2ö@-³?ôÉ?÷G|@9ò…@„´·?.i_?¹ é?ws?>Œ…?†ž ?¼r?¶Ëû?©æÇ?¬þz?»½Æ?Á@W?×s?Ïêy?Ô³?ŸRv?•ˆÈ?•&ö¿Ù>úöå?°.?íJ?á¸-?öH¢?ö*¹?öï@!H@'Ôj@¤O?Úñ?מ6?ânp@ å­@(Ã3@xH?u'?yÍò?rœb?ráb?°óì?´­Ï?ºˆt?µÈ?ô>Ë?ô$ˆ?ª€+?®?¤“Ü?¤„A?Ûÿ?ó‰'?€dµ>ëYæ?U¼Ì?“M?‡† ?râL? f?Äe³?´6–?rrÁ?kýB?È>ù¬Ü>ò6>ñç™?›ûÒ?¼¾[?˜|?‰×•?ôã?q@ç?µ4±?ñ º?çø]?à#]?¿_”?!Êø?/]?% †?L?¥D?G?à?ðÝÕ?í!?è‘‚?Ñ«z?»4ü?^&Â>¢Â¨? G?‡23?£Ý¸?÷4²@|ñ?¹äô?°‰ô?˜2?át?Š‘Ð?„JJ?Â’Ê?뻯?í…ã?íd…?õ^?øý†?ïÂ)?ñšž?Ú¹r>ÄT>ÝÎ/?¥EP?¨$?`Ú3?G%?’?û;?¥ˆ?Á9§?”¿®>üSÀ?E ý?ò†*?õ³Î?Þ¹?ÙÈÍ?ˆÛA?j¹?éY +@=Ø?û‰?ä®°@8ì@/›ô@+rÍ?¿k?¸Ð?æ0Ñ?锶?—ÀO?†wC?kð¢?I•ß?fkd?•?ü?t?’%§?•œ¯?™›?œŽ¶@ +)F@Ò?ÐÔ3?+Õ?²cë?â—?ù(±@Rs@)%?Û°M?ÍÖ?‡L?kd–@©ë@g@/ ?çG”?¾‡Ú?uaI?Y·³>í>õæÎ?¥âw?¢º?|t]?„g?“‹?’°®Ö‚>!{c?¨¬?èiF?“Ž·? C÷?‚£œ?ʺ”?½p¾? W…?¨à?BëØ?S·5?)lª?P’?™*?Üòu?ÍÑZ?«ì?¶,h?ç¹Q?ÜtÐ>–Ò>…Ë?U\n?hR?͉?†Ov? Q²?ЖY?ãvx?ã$o?¾¯¶?ižü?uV?¯„?¯¨²?xß?Œ_w?«Ê?°R?ØO?ë”@8Ï@ ³?òß´?ÐTr?˜ë=>Áx:?+¾€?Ýò?âÈð?P‡¬?[?xR?pfÝ?.º¥?Wǽ?r®±?q t?qqí?qâP?ˆÊ>§r?¯B@ V›?Šy=Zo0>·þ@?MW?!ËŒ?`?OéÞ?©?i_=ë²>‡@Ë?²?îG?(H?P/¯?V ý>å¾G?u¨ç@ d@„ÄÓ@È¿/@7 Á<ß=žS>õ?bD?ˆû¡?Ϻò?ܳ?×»ƒ?ãOü<³‘?<°J =°ó<>·J>u‹>>æWÚ?OaŠ?/]?å9-Ïç> B‰?/‰û?Š?Ï\Â?§"c?ä²=»r/<¾àö? Sµ>ðq4@.,>@WFp@K~?~î´=…2×9?iU>âi?zªÌ?)K1>Þmç9£(à@Y"½@]B1?„û>&¾ð>ôÖt?4C9?7>;ài>?Vì?}‹?*Ã>j›=^5›>§y¥>ìCC>u=Ld>%ˆ>Ñbž?/e?p%Þ?Rð>†µ>r.>X…>>í?)Õ +?P¸?iñP?sY4?5J?Oî>÷áë>ôêp?Iê?6r?PÑ>2À=?JĹ?> +Í?,%È?3§‚; ?$ÿ4?Û?Ø~?—ñ?{;K?ŸP?w½Í?zÑf?¯E?¼y¾?=ŠÃ>ûÊ™?}Ñ¿?¨;@?ª“0?¢"Ñ?H³>l©¤?w>?-~Á?õó>ýÙÆ?77V?h7J?‘Õ¥?°i?¹Ä:?½»Z?Ö=°?èP?›¼?6sÀ?_ÊÕ?Ȳ?iŠÏ?LS?Ó¹>ÿ}?!y?4š§?*¥?0?[t>c¾H=ÅùÜ?7h{?Á.?¿.ù?¶@Ú?°ü¶?®IÏ?x>‹?Ï?\Þ?çc?{l|?,_?•>m?Ÿå?4ã>š”?t…V?Åæã?ã¹?H“B?#ðš?„÷?‹0?”%?ŽÆ®?¿Ù?Þ?ê©?»4?«Kà?9Â¥>µÑb?ƒÍN?³Þ2?’¶z?âœ?$^æ>æøm?Zå?úB?EÄ?ѱ=àÄâ=÷s;=MÙÙ?Vú4?t0Z?­Eª?°xÐ?D2N?=Xi=‡†‰?¢Ÿþ?©ÿ@&ë@7@û…@ Œ?h).?rá>©öš>ü?±N=?£gµ?Ùº•?ä.Š?î—'?æHÛ?±?¢gC@#@ §?‚”?­w@“Ð@Tï?ÜSr?¾¤©?‚¨ª?ôå?Þ³ê?¬C–?µ#?V˜?[É?.Â?7p…?A„R?K—?8Èt?Ñ¢?¨¶>ó¯9?FdÆ?,R?¡[˜?¸Ê>?®³ú?¤/ƒ?¾¹?Ô#G?õðÃ@x?º?LHÅ?É×?笀?NG?IÀ9?…xè?‘ÿ ?ÝÞ?õí½?£?’Õ$?§µß?¯4¡?»øÀ?¾ã$?V`?‚ß ?Äñ?ÅVs?ÑÏd?Ôhð?¹Øý?§Rï>Æã ?ÌI?ÙâF?à/}?íkJ?Òdå?ƒ~¿?Œ¯x?¢M*?lcÃ>PÀ>ùŠÏ?ƒ™G?Ô0?Åu?…}©>×q§?]SS?¯¬~@ zL@=½ü@ Uø?Ï‹ù?¤<¿?ƒÏg?K6?2õÑ?J?]Ï?M¸?]¾>? M¦?¬A—?éŽ?ïT?ça°?å&?a *?SÐ?È?Ù?ÙÓZ?ÜN\@"“@Ü?èâÎ?Ô Š?;Õ?7g«?Â<?´#?€ªË?€fT?„Wú?¯Ÿ¢?üÕ?ùËÑ?÷‘Í?Íì¥?›®?Ä»­?î¥?·K?‰-?ÖDQ@¿?Æ”ï?ŸB?‹oÏ?„ž?jݼ?fWç? ìÓ>Ïù?«Sð?¾Šõ?ó:ô?ýS—?@–?¥?Àå«?°`Š? e?9qÒ?¯(a?¥Ð€?•f5?€²?ç?3áé?Ž¯ÿ?Ž›?„õÚ?kA‡?IÎ?(ª_?²?m7Ä?œic?—ñð?Ž]}?³[‹?Ç Ô?ð3c@ _?Òò“?DZÍ?ÁÆ%?Å +"@ I@`·?’ +Ê?”ÌÙ?eÜ?›É5?ó‘À?ôJ±?ÚÓÕ?×þN?Çâp?´}?…F ?ªKS?êvˆ?Ø—ˆ?»C?¢¤Ï?”e¸?Ê·?õ;8?½? ?–ea?£€?®¡Ö8þ>,Yl?`+ï?…Yì?iÐ? yÌ?ó¼É?ød@;6è@2”*?ÔÏÚ?á²i@u•@þ@'¸V@sœ?ØÅ?ç3Ú@ «˜@K@uÜ@§ž@!¦@?§?öéÛ@8AÈ@i1@?×@&pæ@5ë@@CÔ¼@ ?Ô?8?̽¯?É›%@:cÏ@Jy@ÆŒ@Ô‰@JøŸ@L1-@;£‘@Y®k@Ò4W@ÎQ_@Çbø@ÆT@À¯D@¹IM@¦¯@£6ß@˜G@Ÿ¡'@°¸I@Á±@ÝZç@£Òc@Jn@9]>@,Ñõ@¨¢¨@åk@Üj‘@Öô@t¶e@%:š@*0â@14Ø@•Pï@£ˆ^@‰×‚@‚=Ù@zlY@€¬@†©s@ˆép@ƒ„@²@…¨@†ïî@já@R,.?¹£â?ܲ2@Ky@;Nœ@¬Ó?þËp?µ¿@0²@XÃÝ@S*@RFÐ@W¥j@]„@€@þ@“ù@8‚·?‰ õ?‹0J?T@t +@0xÇ@R@Ií@j'@%Ã@rn,@!Ê@#š?çw®?¶Añ?¬™Ñ?Þ¢?ìäO?šf_?x”@,F%@C§?é ^?Ñ*.@µm@Ë?ÂoC?Àšæ@AÓé@B¥É@!óƒ@[?!B?Iw{@2ñ@5Ü@tãÕ@jMÐ@L¸@E.{?ëï??ó¸Y@Pš@xm@U˾@7jˆ?8Ü?hë?׉?í*U@Ë_@ =Þ@±C@N@4ú×@8ïß@J#Ó@(*|?ìò?óBG@&Ïå@•À?ÔE?ÎÐs?Ĭà?àýY@œv?Û‰å?—Ît?q.þ?x¥?Ëu`@Tc@ò¤?hMñ?Ž8?ÁÛÆ?°Â×?•6¸?¥ïˆ?Á¤š@f—@;ýQ@9·R@7•¶@Aç?Å]Y@U*r@¼Ú€@ø?¹©Ç?ݦÍ@ E?ûÐ?ÒÈ1@p@Ab@ Eã?€i?e>I?z´-? ŠÒ?iY…?¬N?Ö”@Ój?ìÔ®? H?¨tæ?㙳?ØØv?»ž#?¶[N?šÔo?™G?¢‰ö?©¥G?ü³„@2@#C?@!õé@@š;?Èb?º¾y@(«À@5Ú÷?µŒõ?x¢?Ÿ‚Œ?¬÷Ð?²ž?xE†?¸:ò?òJ­?×Ã9?µ‹µ?¬c;?—ÓÜ?Îh?©?©?£ùr?ž­‹?§?Þ ¼?ë¢Y@ZÇ@Ñ`>ïê?>ö†>ö’>öv-@¨ß@?ÿC$?öø@6?û@N¯Q@×?²–?È90?ËA ?°Šë?¡¹?„Á+?/$Ê?˜_@I@ +[ç?ZŒx?…@7T=@3AÝ?ƒ ?ˆ‰þ?â1?ç3?šT?Œ1Ñ?×·?ó‹?†æ7>úÃM?Ò¯?RŒI?UýÜ?Jãl?ˆ—?Ö¨?Æ j?aH?Ù5@°@G?ë%©?àë#?†%?q²÷?šöÖ?£áe?‡ÏÄ?q>§?¥h?Ѭ=?°q?pÍt?R°£>ê]?6º=@&°5@'#?p!?p +£@>û@Oÿ½?ìóÖ?ºçÎ?ü^¤@öé?ë‹®?µ+Û?¹~X?Åå?±Žô?!ù?›m‹@*ý1@'Ñq?ò)A?îž?õˆ!?ôD“?yÞ‹>õ¬'?B +ä?‚q%?sUž?X?‚’%?®t?±z÷?MÓø?:……?ÇЃ?Ó¿½?\ÉY?`â?®sI?ëñÁ@ +L@&’G@æP?®a/?›L'?#’?7PÊ?çðü?êõø@r@͇@ ×@Ũ?Ú4?jM®?yÌ~?“F.?©Ý¿@ +Üê@9Î?²þê?±®ª?‚'g?ieÁ?ý×%@#C3?Úr?:rx?Qd?X•?Ž„»?ž ?–ä%?V˜Ò?T +ˆ@;óÁ@|?¯” ?"w??L<"?g+Œ?T×R?V…e?ŠìL?­¤p?»¼^?ç¼r?áP?ƒTý?tâ²?h:·?hT“?Ü*”@ Ú?—M÷>Gªö?xª@9£?ýö[?¢¾´?¤jš?Ôâ?Ïî?`…ã?3¯?Í?£Œ?ËËí?åpt?­}?†‘‡W>Ï?¤?Ž¼?†,É?-ÞÕ?„?±Û@?²ÂÝ?¨ì?žPE>à V>¬°?K‚Ù?qëx?)i¸>ÐQÇ?1¤Ï?s§{?2>è;&>æO>õ—+>Ó3)>Í®>ô÷>÷·9? +¹H?¥¡?0¸7?s.?tå¾?i“Ü?DMõ?(+M?‰>q>ƒÝ>·a ? ç?m#>Y±•? Ev?:Ç?ál²@õ?Á–Ñ?Èk?Än?å†?Kü?)´F?§çI?ixµ>©§¦>Ö€>Ÿà[>¬l)? ã?(²?³ ?j2?nD?{zÉ?ŒÀÛ?vr—?tìH=wÆð@ ¦w@(¤Â?ù1 ?€ü´Ñ>IûA=¢ Á@5?.@9)/?eór>‘ôU>Ûø™?&Vì?$Æ>èï>ïÕ?%ë×?3»î?õÚ?Vn>æö^>éóŠ>äu,>Óž? +¶?9×-?E:=?‹r®?†éM>ð6>ð¬ã>ñ$#>ñ”º>­I>­œµ?5î?]ðP?då»?kÒü?4l¤>ôÞÆ?eê?ÇÀ?2µ¹?8n?}E3?òn-?Çt„>…´>„œþ>Öã|>Æs-?xáæ?y,Š?yw?y½¥?¡%˜?®%Ä>Qɯ<ó_Ð?›¼\?¼y‡?6H>ûÇ?e?“>?“ì†?™¢ ?‰²á?u,#?2òä?£š?YÍ:?f‹–?"ö$>þ8 > nO=ìΆ<áôÐ<þD°=ýª„>nh?XÙ\?¤€¶?<°C>X/?.‚i?€ F?"Î>þ?;¼?š•¿?/)K>"‘è?3Äÿ?E?#:Z=‡¶?>gõ?¼Q?€Â°?á?²I?&{[>ÃÕ=óíB>ø$D?Uk÷?¬H>×6?‚qê?¦ý?/óO>Èö??*Tõ>±¨=ìN›>çÎ?%áÌ?”X?MV?“aÍ?Âxœ?%ô®>€©˜>d~>ZXL?/Á?]"…>ü÷¤>Æi)>ÜŸK>òÇ>?bå?ñZ?– +ô?™—•>óå>#H?&±?QZ²?} Ì?‚?åtw?þ³0>Œ4Æ=ro ?­?&Þß>Õ¸=è_…<+ä@5l@ §™@ê@s)?ZI?vä?  W?M?.¸Ð?r’ý@KÖE@:Ä<Ñ=?¹ø ?³ÈØ?¯»_?À?Ø?°æz?5/’?:L€??ee?CßÜ?>‘}?Kx‚?rìç?7¶>ž×°>¦7?–)?–€? ˜?& ?ƒ"z>íÕ>I>î4@?,„ç?6j\?@Nt?³%J?ØÄH?6ög>¡\n?s,û?›Áµ?¤^?H[?}|0?iø?8+Ö?,àZ?—Ÿù?¤ºª>ñ˜­>Ù©3?€ª‹?ƒ%Á?‡ò? lè? –?ÞŽ?‰X‹?…m?.“?^ë??Ø:?Åãü?—Ä-?²‘P@ut?ÚGÞ??-k?k»"?¦?H?8†"?AœÊ?[¥g?”[?Åt¿?{êi>”Í‚>#6F=w?ÿ=,{<Ù¡?Áæ±@"­Y?ðxž?¿ñ?ܹ?å­3?Hî3>ÇÚ,?_ï?ƒë÷?–sÀ?1¶@þ@ëé?¯ÿð?©i%?:h?-?fw ?bÎp?Ëï†?ÍFæ?—¦a?“þr?! ?²¶>îÒS>Á¬Ùà‘™?ÃI5?ü"¯@7¸@ k¶?œÚ7?‹o ?i í?ˆ† ?™¾A?’ W?°(?†,?}ÜO?ƒsƒ?‡÷+?Œ|/?ý»?ˆÝ“?„?òT?¤ì?ÐoD?î\i?­îø?ŸË3?&?/»@$Ƈ@÷È?Yh?’q?Ò^?I9­?þ%°?Óa?$âN?•ªÙ@<?ï„£?•ž3?¬qñ?ÏD-?›ƒ{?FpS?€çß?—q½?’çÒ?—Â#?ä3@ ±?ÓA ?¸M?Î>#?ÒTÃ?Â`T?Ál{?0ú¬? ¡7?ƒ7£?Šä@?À? 1ú>pÄ>¸ñ}?ÇÕK?¾Wª?—«Ý?¥^Þ?Çä?²ûò?…F?›Ê?Äq?ôTÔ@F(?ãÄN?‘¨{?­Üd?Çýš?¯zM?¤Êñ?nmH?:UQ>s@©=Ž>.>ô‰/?n=奶<…Üö?{èÛ?…`®?ŒGm?ŠoÂ?2b?%ã=ù6>¾‰‹?­GB?·Gæ?Èg?¡D?+¹,?lƒä?¥‘†?xX?c‚?©Æ$@cf?×ë?³X…?¢:ù?•Èþ?„ƒ?…^?½y}?È —?’î?…Zï?úƒ@"B@#Tü@#;o@ HŸ@ z!?‘˜`?r¿?ØŒˆ?â¥@U)@fr?èG@¯¦@ZoA@1Ç?…=?Ç@Àû@ïÁœ@ßÀ@¸Û@ÊK}@ñé@ïˆÚ@îå@äL@ÖôÔ@¼’@ž·@߸@NFH@dÕí@rO‹@¯É@ËLC@Zë:@ =Š@gøã@‚Ò@Ãê@щÆ@+â@”ùI@g0@_‰½@¡•@ ©…@RÐÚ@Wnú@Yïñ@SNZ@.ÿ@2Un@üì@• @Fü@Ej@/öü@¤?ɼb@‹t@€Î—@ACH?•k‡?–¯?•¯@fR@fcÎ@sgs@y$/@S …@3Lª@kby@‰þ(@%¢4?ÅZ¶@/@/$Ü@eˆ’@€>¥@3bI@×\?‘”?@j?°,X?Äè<@¡J@¸?ÐiG?ĸn@(—<@*C“@tÚ?ýZR?”Èñ?‹—¿@BšU@DÐ!@b>í@`ÕO@l«@d¬@_ ô@X“@*T@+dÄ@ ¶z@ Œ?Üii?õü @5,†@-¼=@›@ ëŠ?Ôz?ÍÑÀ?Ç&Ù@ 0@‚/P@}þÓ@où@v³8@ƒÂT@‡ z@ŠSg@W€G?…gd?aà®?"lE?ô>L.#?u”Ô@®a?þA?ÓÑ;?¥rª?-3ƒ?œ†T@‚¨@Ž%@OÑ-@2C¨@Oà?ó@J?ÚÙ4?óâ@ Ø@üd@Ê@@ x@…¢@L«?Èb;?øŒ¸@Ù|?ôuË?™…l?þqª@6“‚@)ßÃ@ @@ @ ÁS@&ÿ@5,G@å†?Ιž?¿…?§³ +?ëcB@1k*@*&@ õÚ@q©@í?îv ?ÀÇ@p.@C †@J.b@Qëî@´¡>ÿL?×D?/q>ô·=j?0c#@uo@1?’¨F?Ÿl?¾y‰?Îœþ@Eo¦@>ÙN?´ÅÍ?·b™?ÂÌb?À]c?€$?„$@6H_@: Q@v@“c?§óÕ? ml>äkÁ>®’T@?Ó@aÅd?ÛVÇ?‰Š?˜hs?Y?*™´>ûâ?ßÛ+@ ¡ø@r*@Jq@6û?ìÝ?Ù[?Áè?»Õ2?¶³ï?žÕ?…'1?£öª?ÕK??º‘?z‰ý?¸Ã6@%7›@Õ-?»ž-?»’û?»}8?³¹÷?yÐU?y½i?y¡‡?|v±@Lñ@"Pæ?Ôã@?ÉyÜ?Èr+?Á_˜?ï£Ï?þì€?Æææ?²U4?“£ø?‰~{?·?xE‘?J ·?+×?vÞ6???›Uí?µf?È5<@/=@CÖ?å½?Ý!‚?¬òþ?£!?«Ó?¥»£;ö‡@?®i±?¬c"@*Ñ9@2ñ?¼º?œÑ&?Þî?û!è?ÁÈ?œ­´?ÎJ?þ¦ò?··?G_û?ªº>‹ó¹?ŸD?…M«?E|g>ƒI>ÎÒ@4Çš@6‹@î.@ ·v?Çwù?ÃÈß?‡j?sÀz?™÷?©«Ë?1}?sS­?K™ž?±´?;ƒ×?q¶?qs?‡ñ?y?,4”?ÎO?$a>üÞA?¶T?»:»?²6?qµ?¦x*?µ v?j‡?'§?ß·@(tˆ?ÜC”? œú?]H?ÇÒä?ÉSà?â÷˜?âùÐ?†æ«?€Ü¦?n–¬?}ɉ>¦ +ó>2/¢?Ü?cv? Ü®?Æãõ?Äæû?Ä\í?ÆG~?¶Ø?ÏÛŽ@:í§@=íG?ÆE_?ÈúÚ@#%@'N@s‰?ìD?æy›?á&?Ã…B?˜æ¯? Ã°?ÇHa?ÓeÃ@>²ô@4ü ?»¹v?±Jã?³ÄÒ?«vü?Ú#ã?÷=a?Ã*F?„ e?ŒXf?°¢}?¦ØZ?[1?Tpp?’1u?™xÌ?Õ)i?ð©›?¢÷:?r«"?]“§?ARM?"ä`>³T†?}³?¨’Ü?«íï?nØ?oé?ke?igj?„U&?Ÿ=æ?è'@c?ç-5?o£¬?‰ƒ’?üüí?ùSh?=>èck?…ŒF?©Mø?¬«¤?¥¥K?êù?ÿ“×?Û ?Þ?.s?èÚ¾?åþ¾?¥¦M?˜Í?‹?€íü?«î{?ìïˆ?Ä#d>ù©Z?ñh?fð®?fá›?àÕA?úâà?Ïâ#?¯$?œ<?‰qy?I×?f– ?nJ?³Y ?¯a4?ÛøD?Ø?„Ñ?XPÃ?¤Ç4?ÑÅ?ÌÙ?É?Ëx-?½9?ÅKW>ÍK?ì!-@+Äz?Æ+2?ü¬?^-õ?­5?Ÿâú?Bn?dºç?Ãä"?ÁÚl?ƒÊ?g,@>è =š©¿??­¦?˜yè?Df±?h~.?­ù8?®§?r±¥?hZ+?E£?(Ÿ´?ÀÑÅ@ ¶Æ? 9?Å ?¥DÙ@151@™&?z©?Ž•?Îòu?Õys?¡è?Œ½¿?}óU?oi?lÖB?l'Ã?ŠU„? Ó¬?”¬Ä?xÙµ?u»?›ç{?¡:A?¦˜?«û?³j×?³±î?)hó?)ŠT?š’2?•(?J60?<ó?}qþ?–IÃ?Î?}¦„?tyˆ?kno?`º^?Uïâ?£ >‰ˆý? sZ?X=?MóŠ?að¶?‘;Rj€?#c×?±õÁ?Qª8>5N>îα?7âú>®#?5þ?µxÏ?c©^>å—¹>“¤}>¡+V?¬´1?ææf?‡qý?OJî?ÒW?Ø’„;t?’ã"?w8J?ØÓ>‡÷?H,Ú?¨¼õ?ˆ–|?ˆßè?Š„#?`Ȥ>´äB?ªÍ?Xíe?H°Ü?0Nˆ<ø©@MŒ@BÒ@@hw³?¯¢=êy4>¸!=>Â|â>Câï>>.X@fp@ˆ[?Æ-??¦’í?( ö>oK">c<*>ŠtÓ>œß>]O=×ëÈ?9mÛ?Oqã>Z’';Õÿ;<Åo`=M¨=ä,h>Qëö>´A??u?ú>ð!Ä>ó£#?dvø?Wªó>ÁWÊ>‰¤¸>Ôë>ó9>ác¤>ã{Î?;c?oùS?ŽÎ=¦>Š7B?2Î?A"?–Ô?‡6>dþÖ> É? ­ +?#Ïê?ðœ?e%?],ý?cÒó=Ø46=Z»?aí?se·?«Ñ?wr?•ÙS?Ÿ¶‘?_g™?Q² ?–tú?¢G?Á1? ú?2N>¼V±?‹6?ÉÇh???~¶?†^Ó?´Þ??ßN9m+>¾¨È?5˜‘? +u|>±˜—?\Æÿ?¦n%?Wø?@öª?°Ò&?õK?“W‚?kk?²¨?Ç7?}ef>ÞîX?›(? xŽ>xg‡<×3H>•â²?î»?e=?”GA?D»Ñ?è?A‚m?c*-?F’Í?BQ?8 d?<È?T‡è?fþ?3i?xÀ?w¸?¦u?²çë?»$‘?[ï? +ƒà?PU ?d<>†ß?IJ@»»?ðÇ?¡_;?Ÿ‹>‹M‚>èaÌ?™D?€9¾?“N£?E8Ù?&Ë=Ö~[?p.õ?‰žÇ?,(n?Äô?³ï4?¸¨3?¶hf?±^?\À´?Kpù?¾tî?µÒ]?Ãøí?Ëœ?“äH?›¯ž?Ï?uH?dÝp?aãÖ>.z[>G?eôx?Bqë>ˆ‰{>ŒTV?Ý?‘î?ˆ_?"f?‡£?‰™Ô?Œ0y?‹B?‚›ö?r ?R ?x"Ç?’3?DþL>pH%?²™?‚¸0?‡S?À?–÷§?8m >rÃù?‰#3?ñO´?a0È=& ?l¦š?Äa•?½ù³?µ2?OP?òB?K:´?hG? å®>îÌý?•8?G?z÷e?‰,4?œeŸ?©SË?‘3o?€ó?…bç?ƒ&g>Õ§/>ľ”=þ*=ºTé?xq?—ýÛ?·Í!?³5< "N=›ÛQ?‘í?yù=¦|>e«æ?^qŽ?rø?ƒl”?™v;?Ýàv?²…»?~?.‘È?ƒ†Ü?Ž3(?žuç?‹A_?\bæ?Wª?¢nÃ?Ÿâ?Ÿb?`ò2?´œ?·Ò?¼p?‘\Ê?ÈÞ$?ŸŽ,?Šr?’ŽÁ?™£?Κf?Ù)W?”Îø?ƒì‰>îÁ>Æ@\?íà(@ýÉ?‘Ñ?‚z?t ?Y +?¬üM?¨îÏ?Q>ôŠ=ÿõ£>ˆFp? ×?hÐñ=ÜXô>>•Ô?B¿?z ç@óÂ@Qt@)k?êÂË?ãû?pŸ8?¦ÿ?£Ø?ßAA?Íí‘?¼õÅ?‡ÍÞ?MTó?ut=?‚&?Qc³?;r:?u›ý?„?(Î?syØ?‚V’êL?Ëd?@+Öj@Åw?ïâ÷?ø±?úûF@tý@_+?ÆJô?·kŠ?ƒÁ?…Zy?†ò ?‡L™?ÌP‚?ÒFZ?ÏaÙ?à>@0Ž{@$þj?ú”í?øjP?ö=@%Ìý@‡ÅW@xAñ@V`Â@!ïß?¦”¸?¤h!?¢<Æ?ÃRS?à~ô@â@:Ú@; 7@@Þß@Fð«@G³ß@&‘±@°"@Žy@ ”@´¯x@³p;?ü‡.?óáë@€è#@Z©@˜¾Á@“ +“@PO@R@ÞÍJ@Õ]@ Ê@Ë¢Ð@ÙŸ{@Þ¥@èpÒ@áù@Õ1J@ÛT@à@¾nþ@£@œj¿@’=ƒ@Ú»@’‡Õ@Ëó3@ë¾<@¼(Æ@§G[@²0á@´#w@ž|ˆ@œ@Ô[÷@Ù„X@ÄW«@¿”D@Ùk@Öh@Q_î@SÙ@@‡¤@|*Š?ò´&?òÐY@©@©?Æ,?þÛ“@Q@ä@M,î@FŸ@#öþ?Åð1?ð\”@ç@%î‘@@Ï@@Õ?†Im?ð”Á@+ a@k”ü@¶`@€Í©@sDb@ K?”Ò;?Ý &@›@d5@*W¦@¬=@…œ?ŽkÀ?H‹?›“Å?ª7¤@Ñ@$ž?øDˆ?èŸ@ Ú@Œl?ûÓ¬?à'%?öój?üTœ@@@@@÷ß?Í>Ø?Ö9a?åG @I@öë@tf†@£@™©@0"±@,.ç@•H@E¹?Ï΀?ýêm@Bú@5^ç@öy@ õF?çÙÓ@ ;@KK!@;P@u†?ûH×?ÃÅ?Ljˆ?Îj@LC@B)I@©t?»…˜@“@Fçü@+i*@ìR?áPº?’Œ£?–ú¤?—‹_?²w?èÊY?×—ª?¹Ï®@“¶@.0~@„§?Ϥê@ ú?@B¦˜@OË™@a\¦@@0ª@ ìa@ ”n@ +@Åý?ö5E?¬—¹?éë?™Kk@K?÷¸S?×*G?á?ïÀa?îÔ¡?éƒ?õ @j?ÔHØ?—ò?Ñ…@(í?ï|.?™ã’? *?ªTõ?©x?¯‚¢?¤Ï?‹Ö¿?«M¦?ä65?¨B)>ÿ?& Ž?zÅS?Š{”?ªŒŠ?Λ@n˜@·??Î3B?¶Ê£?~Áü?Œã.?¾ós?Ô>ô@@€m?~Hi?gÆ@.n°@)Nø?¾zê?Í‹´@9ÑL@8¦?’V7?O>?îs2?õvÌ?¾-Ü?»•@r8@!Á’?uy?–dt?Øÿ½?Û6Ž?%=>¦]+@4øüÀ<í7¢:WQ?ð›ý?ðLñ@2å@8¸S@ ß@âX?mËU?/5?u.$?–jæ?¼jà?Ð?|T?V…P?MÙ?Ræ?µú@2:Q@&í]?ÄŒ9?¯ôl?¡×?;3?øʲ?ûvM?Œ$ë?†Ôœ>ÃL×>“M‚>©¡|>ÀÛ?@°¢?sV6?‹%»?œÉç?¹n?ß €?Ø´@?Ä(?ÉÄ?êP?ò®u@Ãô@=?ziÂ?}¼‰@h@åð?¯ÿ?ŠB ?¥Z&?«B?âˆ7@ÖÈ?úM?–ݺ?“ ×?·ð?À’?Á‚ù?¿Q +?Úrã?ã_Ê?¯»>ö4T?H#?Q6?©˜’?ÆFj?Œ’Î?F© ?$P¼>Ϩ?0Cº?®¬S?¬–$?Ô<ö?àˆ?–ô?BÀ@y’@—ßW@ g„?o¬?Ø(Ð@'—@(2@±ì@n`?ii·?‘S@%bŽ@.ðä?î×®?á/V@Ø=@ +äé@¹Ï@˜@ <_@&U@¬¿@Z¸@Ê?¨á?¤›µ?kOù?jùZ?-´ö?'Šþ?Vó²?`£a?‹iP?žÜœ?`Ô*>žÛõ>®€Û?iéØ?iÎÀ?æW5?â¯@@$@P!?L¶Ô> +¦z?@¢J?Ì#”?¹Æ,?**Ï?5n÷?¿øN?Ѩî?UÄÚ?*†þ?U>ï²K?r÷Ó?® F?úVý@>åš@,AG?Á~?¹³î?¤ˆ§?³E‘?àiX?Ø?:?¯kJ? Ói?ʨm@8o?ô£]?c‡+?UÛä>Ä>RzH?Æ¿?æÈÄ?ÑÌi?Éš?¾Qø?¬úñ?¦r!?Ži/?Œ‡Ü?àÜl?äÈ @Tà†@[—?°;x>æv–?´Ñ@[°?è?1‘Ÿ?L;j?f|¿?fL>$ª¤=oë?1U?kLÓ?®qÖ?ͺ.?Ê0>ÈíÓ?Ëc?Þ?aœ?–M?¬/™?˜´—?‰‡3?–K?© ?ÅŒ?áúú?ïðý@ º«?öÑ5?­ü¶?®T?q”/?h[y?¬/|?º{d?²(º?®»û?• &?^‹K?{åÔ?¾—)?ËW?~/?ka6?{a?‡öâ?¶ƒœ?Ëø?¸@Å?¯¸M?^Y=ÿŒ@?»4?ˆNÙ?|ò?’¯ +? O©?¶?ªŽ?®LÃ?”îÌ?³q?³¶–?¤-a?˜Îy?vbR?……>ëGÚ>y?Žº?Pi?‡@?³N½?”†>?t°?C{>‹"ë>Ñ´>ö¶.?UÇ9?¤iˆ?s{c>ø÷e>ŒKS?V~'?ï(‰?§c­?*Ð?@oõ?~ê?#)à>få6=È8<ÜE?™›Ü?çQŠ?o>´[Ü? 3T? óÌ?´…š?c?ƒaà?½?›À¤?$ p?!2ý?æ%>ÀXº>B~õ> ´É= ‚s<´z#=× ª?Š”M?I†¢>>>¡œ;?(Á?a2‘=¢5;•Iü@ví@EH›@_µ ?ô +>tÜ®>Ög">ÍÌ>Rf¦>˜V¯@ î’@`r?¥§m?œ‚~??w‰>æ†H>³Ui>:ˆ¸> ²?7„›?)mí=¦ÄÐ=ZÖ>ÃÏ>ê´ïg>ï•>ð³>ø˜±?}¶?…¥f?P.?Oêé?"d?ð×>T˜-=²d?K,?tÅi>ü_="”=ø®>€/µ>öïQ?"Úé?…éÈ=‚Jw?ŸuÌ?¼Ò8>Ò}(>&–¼>òfŸ?"Ú«?iø?}y?Xd?N6=?l¶³?g¡Z?še?Šfð?*ú>ê +0>ýõ&>ú‰q?=Ï‚?bI¸?bÃS?dØÛ?(™Ü>ÿÑ?ˆšê?À\?ëbí@#?ßS?ÖŽF?¡¢?RÐæ?Ü$>¯ä°>4Er=‹ÎA?QÄ ?»q®@I¢@ +L?£¸”?ñ?ŠÎd?Áz?6"¤>&>?H³'?›ÃZ?!-Ý>dÌ?½?d¯€?B+,?/p)?,G‰?Ê>U+©>¿v? D@%+Ç@\áI@,<\@´€?#¾>ïL#?< Ë?2¯?²™w?6?éY?f:>ì{q?€æ`?‰>Û?;²÷?9š[>¤ >Rë‡?œƒN?³¦?ï?ý9?Çcñ?ÃH¹?%Ñ?$Ö%?˜?Ñï?£H±?©¤j?­u\?§„§?N¾?K½m?‚\ö?zjÄ>Z°>ôŸ?ƒ‚?¾ ?ô?èXr?¬^?§˜–?‚€Š?gÜH?)è?Ïî? +Ýz>ÜÆy>°§?X"j@ £¼?ìYÈ?œç¤?pVG?Âq>þ’/>ŽŒÄ?P-á?¿ãý?¥k?ç?…'Ï?›h?ƒ8?‚ÏM?‰Üñ?[¾?I7(? ñË?º2˜@sh?²5¾?‡§ÿ?§\p?± È?R÷? 5>ä>·ÞW>ò~®?Ð?Z¯?xg_>¼6¥>ˆßi>øe|?×?©i?®fú>YJ>Zû>É +²>çõ§@A0@5=µrØ?žŒ?…Ù2?ºŒü?¡Ø>Þ·%?¿V?i@ ?>ø!>œ0ž?+®Œ?Å/~?ÀšÍ?¯òg?§öñ?£‹î?ŒÐh?fÃÄ?têÆ?„Ê?M®?¢²>¿,[>T3D>º1™?´%>ùas>÷½±>E2È<ä–;?8o?ƒÎñ>¹>'3h?øG¦@Nö?ôÞ?àl]>€©G?>ÁÚ?g€Ù?€Š+?…9?Q?sn?TóŠ?Vµ«?./M?82·?ƒõA?ˆPs?ÆF|?·€·?„:d?b Y>ýB9?XƒZ?Ȥþ?ŸŒH?:F>?…÷Ø?°Ã?¸“[?Æšå?žI?~_Ê?·®·?߉¡?§ä?„‚s?±MÙ?ÆÏx?ØVz?Ø^»?ý?ZN¼?ïÆX@£w?“?„¬ã@A—›@O½?Àj•?¾]Q?„À§?’ìÀ@*ñ?å(5?)=_?v§ã?ê"Þ?î€?÷Ñ?¨¹g?FhV?½ÄO?ú|{?·„«?c—?£Ñ>?³ Ì?%…à>É–F?ßX›@Ü?©€?{¿?‰d¹?ˆÝ<¶gÑ=mL/?‰\z?©÷@Wø +@E#ë?ð…†?ä1'?ÇÚk?ÿEþ@>|@×€?…F?æż@8±¥@Tq?ä°ÿ?à ?¬ˆ@žY@&§y@5Ò½@>¥ ?ã/¯?«L ?¯©þ?´@|–@Žø‹@+aê@$ž?‹×U?ˆ×œ?…b2?‰?ðšÆ@[@C«?óƒŽ>áÎc?¡¡@H|@C‰@:X @Cy@TøK@'jè?ÕºÀ@%Md@\V@Në @H Á@.ä½@$þ¿@¥ø@_¬?xä/?(åø?|M(?…[~?Å'·?Çõ@b¯ƒ@Yâ~?ÇþL?Ë'µ?éfº?ëº?×jê?ð,@º¦@)@Mc@@Ø&@!«.@.`Ê@8´s@‹<@ï@ +È@Õ÷@8_U@T¦@߸?ØTé@7­9@Tä@ˆ7@‘¿?ä:‰?—Œ[@µþÒ@Ç<}@,"²@#öÙ@¢qÉ@žG@t³@‚3¢@ªõÖ@°+¼@ÖÕ?@ÚŒÜ@Þ;–@áåÇ@ñÏÞ@ô_+@øæÝ@ñ€@èc~AÔßAj™@ä^Ç@— ¶@˯Ü@ôݽ@´z=@ é@€(Ø@rŒ@Ä&(@Ü~@äŠæ@æ@\@ÕÉ8@ÐÀ5@Ë€l@Ì Å@ee¼@b/@µô(@¶ i@QG@Y›·@”Ë)@‰[?ý([@å‹@q^@ °?Æ.O@ ÃA@rŒ@`Ç(@<Â{@ 3°?Ôú@&2ï@q§@H ?ü°é@5l@ì÷@ŽÈ@$¯¶@<ˆu@QšÜ@rH?öúÎ?ðºº?å±ä?Λ¦?ÅD ?·¯2?¶?~?ó»y@eE? œƒ?€Ø‹?‚4¿?ƒEm@ÍŒ@$r@Òæ@²ž?ëÔ?àÑC@:¥•@?°4?–´?Ž?Á:B?¾ŸG? Êþ?"‡v?Ä2B?½Ã~?ŠÍw?®Ü@#Tè@Nø?Ï?æÍõ@+>@û-@;ð@+#`@’É@~H@Qû?ÙÞ”?2!7?sSŒ?Ð4ø?¹^v?Œnõ?©Û?øDÑ@o7@(ž@æF@ÖÊ@!¾-@$Q@É?§¯|?§ ¢?™»Î?¦·?±ór?¥.~?–wK?|Ç´?4;¥?«±(@ï„@áì@4Á}?ýù?NÁv?¿<í@‡@ #@F@#@/©@:6•@J1?ïè=ž™M?/s:?½ì¿?¿82?Ç=Œ?•ZU?+kJ?†?ÀÕK@àƒ@9Mj@Uz?ØòÈ?¹‰·?†Ä?Ð<‡@÷Ž@ +^û?Ú]+?çÀª@o?ìÄ?Øz?¸"R?³ŸÊ@`‹@¶@4Þ>ÿê?(_5?lÆ?,N?†9¹?Úºv@Söò@< é?þì?êµå?ª†W?¶O ?åeH?òTu@/@ØÙ?Ö0V?ÄåÙ?Žd?hÙ?å—·?Ú’$?œ†£?Ÿ¹b@Ú«?ýôS?û? Ê?ü}©ï=? + +-?]Ç?"ðÚ?5Ò?Šo$?¬‰$?®ž?¶.ú?ÔÖÚ@gí?òV??¥<¥?ªè ?°˜ä?¶w@—¯@1ñ@ýŒ@­9?½o?£€?ˆ:µ?‚¿À?\Âo?36¬?“÷c?ìMž?æºH?®YÑ?¬& ?ðbA?çœñ?.Ç?ä@'<Å@/bW@ø’@ ÿ?˜²u?K#V?–þ?³%&?½?ɲÐ?ÇL?î®å?Þ!?L??ˆ:?2Ç?>Å2?´ë?½‹?ŒÇ?mâ"?OÌ>‡Y6?ß¼?y±?4"?F?:#ê?1u?.lR?ëÐÜ?øNç??ì/%?—Ù?VßÙ?±óU?ó¯?ÙëV?µ±?¹U$?°yœ?°«K?Ì?ÅX9?èú>êÀ…?ìÜ/@ú¥@z?ýn9?ç±e?¢Í ?œ?^„?dÚŒ?l·È?ydÙ?³Là?ÄÏ(?›îD?rÌE?‰Þì?ž„¶?” 5?ŽÃä?ƒ£%>æÍÚ>»øE?äm?ðåÇ?”$ó?h<ú?Ñ^À@ ®?éÌm?³?Ã(–?ÁÀ§?Å^4?oµ¯?_sœ?þŠù@ʾ?ÂÐ[?gMœ?ù>µ ¾=D>&¡?>ÎF?/}?ò9È@|ƒ?·–Ä?›+?Ÿiœ?¬ü¤?Äߨ@º?òË&?¬é1?¬åæ@$õZ@3#?ù~Õ?»Ä²?Ì*ô?ï½?Àk >Ù‘á>ã£?†CX?‚'?%v? ÒÓ?¶Ó?ä„r?Ž±Á?*ŠÑ?8ÒÇ? '?#0Á?ˆ:j?•õ?Ú9#?¼€?ÄY2?Ó,¥?q½˜>ìÐÜ>þ£´?&‹?’í@“æ@Œ?U­c?gÍü?i3ã?h\É?ÁƒÓ?ݼ+?¿‰à?¬ýÁ?••?iOâ?œ?ôs±?Ú¯v?Žj?“N@?U?@Çö>ÏJ6>Æ^æ?K\?m ~?#Ô>ÇK>ì +|?Ë +?'P?1N;?•†æ@(žÂ@%b[@8”Ã@C´?²À‰?³º…@Ha@!?{ƺ?=†Ë?.Uú?âB?4i)?Xß+?tØr?wé ?1Ý–? É>ì‡@>ª]?NU?›Ã?æ'?˯?DÈã>×ûU>„ O>ŸL>Þ4 ?l²J?£wÛ?czA?¼?Eõ>?f'Æ?/v?:W?E?BzÁ>‚éò?AˆÚ?iWÞ=Ÿ<Î>6Ó>·"¡>üÃÝ? ¦? ˆ?a³?"¸[>ø> [ß>]Û> à=ɳ‡?Â>ÎòV?̦X@ O¢@Iw??| +=µÄö>iZÈ<è'?5D@;½x@8üx>ç,p>§ð³?Hm?jX0?-Ÿ>ç®?#•ë?ýÂ?œbR>ÁªÑ>Ï|Ç>ôcq>íß±>=À=ÎâP?ï?„$?9‡q>Ág>»X,?}ÀÓ?fæq>ðí,>ñ_Ò?Gul?=ðÑ?gÆ=?s/?ËÕ>óë‰>ô® >þG6>~ž™>§^w?8Mn?8Ïþ?JÞ?ZJÇ?“‡á?£¤Ü?Ê_Q?Ïž?ÿß?•Ø¶@Zö@”*?«Õo?²L+?yÅë?zÂh=µ^?*?7‹ê?c4?}Õw>FŸG?‘¦[?ºV€?>Š>ýyI?¨EÁ?ÚÄi?ÉJÿ?¾¬Þ? ¤&='¹ ?#nå?|¯Ï?|§/?>-?=ø'?; ?E‚(?Y3à?&“—?OŸ?‡ïX?¼›à?‹œ-?5³n?sX?—+ÿ?§`Ë?²í?a1}?¨?!S?¾? ??A2>™W|=Ž—?˜þé?óS£?–oë?/ït?‰+?§mb>ò]Â=ùZ>(O±?Qò?×ó>³¼÷?,?ù?{* ?Ê?Š³ @ +®™@"*_?s’p>Ï‚'?-‹?9R;?q²?à>?X`/?H~ß?—CL?ŸÄ?ÝG^?ë³›>Èeý>íÕ?ƒý…?…Ö?"æq?'%?¹W?  \?Š|?LE@b*@Wã?n~w?c'>ƒ;>±0â?˜Ð?˜æ"?‚XU?~¹›?D!B?.Õ#>–Ol>ë‡ð?«M(?±u?¡V¤?‘IÚ?{ù?!B’?‚‚?€¹Á?~›Y?>æ?}uÃ?Ÿ´?áF]?´i+?sv?‰U)?•Ý“?{•ò?$#^?R|À?‰Hq?¡Xœ?Ç›¯?Ã8Ý?Åtí?žLZ?VB¾?X`C?eç~?£Q?ÄBf?—Gx?yï?¯t=?ÆSU?[Úò? ¯`?ŸÐR?Äm\?Gk”?új@mÎ@+Â?jg{? U?‚ãë?Š«å?ˆ[È?}©’? "N??Ëýø?ÚG:?2Û’?$`=íî>7ö@:Ò?ó#i=¥w=)Ô<«Õ>†'?ÄýÂ?¬kÞ?\®?8ÍÃ?¶»’?«xç?‹Î +?˜=!?Å/(?Ûu@}I@)ƒ@ ?¯]µ>Ýüs>^µæ>‚Ž??¡s?JF?ƒ©Š?a²N?9ëÈ>•E„= +?4o?‚–'?‚hœ?ƒÍñ?œ>ß­O?M3Á?xë­? ^?ªk|?G7¢?(oó?½ï—?»—ï?ïâè?ãåù? + ?s?ªUs?ð?„Ò?™QÅ@ Æ@õ—?¹ã?®Mˆ?„9e?I5™>îG?kñ @#£ß?öÈž?|%F?¶F?ýñ?ÇËÖ?“µ?ÑTl?ûǵ?Ùÿ?ƲŒ?èl +?ô·ö?‰ŸÏ?H·@ k@@%¶? ç|?du5?ºâØ?ÎÎj?Œ2ˆ?„«d?WÞô?`º?„¸Â?„¼.?„¿¦?YÑ?Èek?Ó«¥?øù*?ÎÅù?@ÒÝ?f^á?“PÆ?pp;?åž?L®­?œ=r?Ühp@Ó?è¥ ?©l¤?âO@ ¶1?î[F?×u?¯‰?š%_?;|?xÄ?Á+?åYñ?cS ?4yˆ?Àz†?Ç„W<ÓD£;?‚=hÃæ>nMð?­R¼?¼–?Ô:X?Æ^[?–W?§9ì?ÖÕÖ?²Lo?8]Z?ž®#?üþ§@Rö@D^?Ô<”?¡NÃ?úa@Ö‰@# Ú@&«¿?ˆ`š?W“?Z?\?Ú ¨?ø?/=B? Õ@e Ñ@Zýg?ÂÚÑ?ÁšÊ?È3?¤Õ?¯ ?­Á ?‘Vý?ÍbV@2 d@\?ñ\?ðko?çY ?êŸ?ù' @Ÿ1@îÐ@Ɔ?ôV‰?ÄAš?©›b?Â5ì?Ó›v?Ëy,?È s?€÷ì?v/·?ÿfà@Â|?ÏÅÃ?Ó.?‹”ž?£¯@{@ß»?û»¶@*ƒ@å@(ž-@[ˆ’@H@,p@$¯)@# ù@?lÈ@SÅÌ@P†N@MEj@- u@¶Ÿ@Iò@`n@t‘¥@}`å@mm9@hò@f71@fÆÄ@hÃÌ@j‰ @G2È@Dy¯@7þ«@A7-@h¾ü@ŠY_Auf@÷ØŸ@Çdu@ؼvAäýAÎÒA"^6A|ßA¤1@ó“W@á9@ôºAä4@þ´·@íe@ìÐ"@ì>æ@ÒI +@ÂD4@¶.@¯4ÆAÞjA$ã(@à¥ò@Ç–G@  ª@šû®@›G#@œ®¾@F‡u@?=w@O©@U=:@]Ø@aO@Šœy@‚Ír@,Ë@žÕ@$B‹@À½@ µð@"˜¢@eÍ@\M®@A¡±@)Î@öê@%7­@W@@dÛ?o>?þ¬È@Cý;@3µ@$¯ª@k=@Ž…“@)pÝ?Årß?ÎÀä?Õ?ÊÕÓ?ÅF@7óÞ@P¼C@1¨ô@'âN?ûzÿ?åÍ@-9{@0›@{O@÷l@)`Z@)!ù@CF3@A/@0¯d@.H?îh?òe?†—è?‡œ†?ÁÎù?¹M??ˆfŒ?ˆÓ ?q€?Ÿ1Ã@VJÑ@=X?‚™?Š-B?°Ð´?Ì–@çÙ@‰¢@0=•@(W?çÌ?êJ?ãóD?ícö@L´@õS@+ØM@A³õ@mØÓ@82?Ûy? ÷?2w„?‡™Ë?Å:?ü«@Ër@Fç@sG@7Ç?âk.?çn?òK6?úK(@?ñ°?À¡#@ó6@o :@IV@!J@2?åØô?Þ¯?Ôj†?ôF&@Ö_?õäJ?Œ—?ø!^@cœu@$­+>ÿ‘Å?ú?ë9?Ÿí,@2òì@5@DÆ@÷Ñ?\¼Ÿ?‡—ï?¿ ?Íј?þš¶?é«?œÅg?°é~@˜e?çhÓ>þ ?=¡×@ËS@‚Õ?îª?õú0@Uh@å(?ÉW–?Älf?¾?¿ÄQ@YÎ@%¸?õ+˜?ñ}„?‡ˆ®?|»û@Q@G,?ÀT™?±Ï˜?cy,?>ù/?•Z?™™P?ªkÔ?·ÞD@.N¢@Sd®@7}f@/È@3­Ô@4“z@W+À@uº@)î ?¼F\?ñv0@¿¢@­Ó?Ô[?¼£Ò?Ž;ù?—¨.?¥ÕS?Ô;@.,U@Äo?Ûh™?ý²@Tël@J–Õ?ø±¯?í'Æ?xI?c§?®?£}ä@Ïó@Ng?˜µ9?ž/?«U?²Æ†?Íð%?Ñî ?µè¶?¨7¤?Öï$?ø!-?ý?ý7 ?݇°?É. ?Õ ?ÐÐ?ÍY‘?Ã71?Óš×@-á?ý|=éúÏ=äõ9>þΫ>ýò?µŽ³?²Ò|?]S±?mË?»ô¡?ÉS:@ o˜@³Ù?ÿý2?à¡þ?¡§,?l§W?ƒ-·?‘ª +?˜n?¦N—?¶ÆX?Ϲ±?È*Î?¾ ?¡¯Ù<È&ÿ>Ay?ï»?ì×9?‰ù?†è>†>õA?œJË?Ãb?í˜?÷…¸?ßç´?Ù¹D?·ž–?ŽÇJ?ÇZº@‡@¬Ù?%«?›?ßÒ>þ_?»ÿ}?Áµ?‘?¼b?Ñ­¬?ßÁ)?Œ&ü?B?`“¾?s¬õ?‹+ø?ŸL?Ûþ @?®“@7i<@û?û9®?bn"?hZ€?³G?¹Ùº?’Ÿ?óü?üLó@8‚@,‚?ï$Z?È\%?ž™?°?¸R™?¹‹‘?åû? íÛ>ró>9*?òœ¾@h˜?ѳË?±Z-?È?Ñ.±?´ËÐ?—’?Âa[@á@(H?‘é8?š n?½*à?ʸ$?lÊ? +[?ÈÕw@+dl@%³@—¬@Ðö@"Ÿ@á€?ëì?êýi?’0±?xmk@³@CÐ@:‚?‡Dõ?|÷‚?d±?g^‹>ÿÃd>òû½?®:1?ªÈ;@‹Ž@…ˆ?²â?†ó±?¥ÿ]?È?ÛÒw?ün?âãô?lØ?ë@²ä@ G?ªZ@?o]Ì?˜F×?¹ñ´?£6?gìÕ?}þ|?­ÑÕ?­kÕ?cg˜?r'»?GO?Aºþ?I'Ý?P›ü?i5?vbÒ?hKK?Z W?Rö?¢}Ó?ž¡ @è{@> +?˜›6?/I?ŒnŸ?Àé"?å@&éž@"?±ù?­~ô?æî?ô1?‹¹ ?MhŒ?Žß®?¬×´?šÀµ?fx6?„‘ø?õ—Ê?å –?”y­?›–ü?)ü¨>û,‚?!Ù>æªÞ?[5“?Á¦O?®Í?më™?\Öë@E!ú@LvÚ?¶„R?yJI?k±m?g+h?a/`?Xpj?mÊh?¥EÂ?¬ùz?v6B?dH? +¥?` ?™ëQ?®B?‹?i?kAô?iRc?•?§Þá?¶@é?µ œ?«vß?‚Ö—?Œ¯Ð>© > [?‚=?¯Ó;?Rò…>ì6?m9?¯T{? z)?‘€O?¼8…@=›@2-4?\º?qçŽ>÷ž`?g>çüè?$ô¯?öÑY?üç§?­5¢?Ÿ%æ?6N>òåÈ?˜#4?ºÇ&?°òõ?¥Ot?šf&?gÞ?œà?»\?©X|?•^B?3!=T®ñ>ë:‚?la?$så>½;x?;Üž?š5å?'>>ÏV?+c? +¤/?ƒ`?KW?i"°>ÿú>œù¡?)J??×7?%+?ÀR?0@>ê˜=ü'·>í«Ê?† `?W8?*>±éS> ­¶?xe?å‘?‚ÒV?ms=ä\ß=ä`D?T,ø?¬22?Û“>íQ*yn¶>¾K>˜•ä=ÿüú?kµ‰@tAL@q«P?Ë´‚?µ®?sCû?bz[?>Š´¦>Å?&(f?$ U?GY?ië>€¡´??mç>?1?õ>Ÿˆ-?Éd?³íÇ?¦Uè>ðÛ8>ñO[?Šòs?“=D?cL?]«.?š>ã+>ðP)>ô¬ð>çIø>ÑÌV>ôr?÷î?@Òþ?vÛÃ?R„>÷†? –t?2€?5h?yNÎ?rÆ<¢Çð>ùñ^>ú;<ù²I<Õ:>Û™¼>Û5î=öì"=å„Ž>¾ö>ør=̓‡?’öÉ?ÁË?ÐÚ>ž8Z?†?G?¢8˜?ª¥J?³0g?=Ë>é0ú>ÿt÷?‘Ú?rÖ? £»?l¤>ÿŽç?P¯Q?Ö³?Gæ[?å>\²Ç?‰£?€RT?l[?SýÖx…>ïeô?!¥2?'ŠÏ?+è ?‡[­?£$v?ì¢>m]´>Â(½>òD\?žA ?ÀîÇ?ÈÓî?Ñ?ŒZÈ?iþ ?.ê»?&Ž’?s˜?â³?CÌA?<Л?yW?†äx@3R@^?)¡Ó?ÿ?šHÀ?§ÇÀ?tÈJ?s¸@?»Kæ?À^3@ vÉ@ß»?-¼a?FØ?‚@ö?ƒùí?“ù?†"Ó?-6m?2ˆd?7×S?FË#?‚aE?o í>ßU,>·«c>5~->˜ý?H\Z?7Î? +?.¨z?vÖ7?6®ô<÷i·>ª:…?‚’á?‡8Ä?“íÞ?oÈ¿?Ÿ_?77h?‚§¼?‚«*?‚­—? ÁÛ?Äk?´‹!?¡ûO?µ¥?W0?Ä.¥?q®?Ð?€ªÆ?­Ïâ?SØÂ?Ý?ìd@"N?DÔî=»D?‘§¤?Än!?@YH?ú­?òÀ?²Gå?wúF?V®(?#?+{Â?qŒ–?…ѽ?~¼?p§RŒ?R´£?ô&?ãb?Å.Ì?Ωº?áeÙ?ð%^@‡ø?Üçö?Ÿ½g?mŸN? ì? 5?¡y?;D?k +ñ?ǧ?ýë?…¬?»?Ä®8@¾³@2"?ýÇK@@@³ê?Â~ß?©v+>Ð>–X?Ëæb?Ù¸@4¢'@7øu?Ú$?äº?Ÿ\²?œÒï?àÿ?ß°o?šE?‘ ?erÙ?p5?„.‹?‰ŸÙ?”àx?Âõm@Ú@-™Ã@E¼@B.U@:ôŸ@òt?˜òá?Æîµ?ë+?±^ž?‰?ë´@ ¾@V3?ÿsP?ÚŽ?Ÿ#?×£ ?Ÿ’M?•ö[?AÅ:?,¡K?¢6??£¾«>ݹÅ1?f +y?q9Ì?„¾¶?¡¨¹@%4`@#‹-@#–@M5?´QO?Õ¾+@6½?ð·ˆ?¢¢Ù?“¯œ?„í@ +›„@Syf@ /F?¡jì?’¬¢?…Ï?…C?…4@è}@Ü€@¥¹@?xË•?8ll?î@è?Êm +?ÆûÖ?Œé?}ì>ýþ†?@¶@JŽ@N=?‘s?›?·œ+?Ô*?AL?&p–?XŽY?˜þƒ?ÏÕ?¦Áÿ?†t?›Í¼?«j'?Çõ?ÚB·@ õL@À%?ŒØ@?$Oî?öÛ? J?&öa? |õ?Åfc?Êy?ÉÛî?Ñö?È8?ÏøQ@âÝ@e@ºV@‰»@é?öãV?šÅ¶?—K€?…dß?Öd×@ì?ØA’?}fâ?¥Öb?È ?È?Èü?öæ¿@aÖ?aš÷>åÁm?šS`?³ü>£…> d?¸™A?Ä.7?†®?ˆ†W?…VO?™Tk@ +Q¯@”@SÔ@IýL@5Q”@9“7@I!@2Zž@ Õ>@'ö@=UÇ@/šé@.9«@Lø™@bÈÎ@06#@;ù@6g +@G¾”@0t@,ÃL@Lt@V£þ@\Ó@V)m@f@h‘7@£‹á@žMì@&Fñ@<­@¹öØ@¸_À@À¯]@´óµ@€ÜÅ@ÐZ¬AJIÇA=Æ_A+ÎQAí@߃@ãÛ¸@æ©:@Öüâ@Ŷ@×c¯@é r@óÔ@øÈ”@ø¿@ø¶„@öáH@ö˜A Õ-A8Q@°„@•âý@tJ÷@m7"@âØ@éÁ@©†Ü@¥3©@ϼ@Æmn@Š›{@ŽÙ¾@·ë@®@†/@ü@V–!@Ut¦@TXa@TÕ±@Uá@jÛõ@Ó_@j^ž@ãê@‡I?æÿ®?>Ó=”?™KŠ@Íí?äƒc?ÊâX?ÿ¿@á@]¹@;‰?Æ ?“:—@@@@kí @&sf@æ×@§É@ ‘.@ZeÍ@eH.@ˆÅ£@Žå\?ýÛÜ?Êçª@d2@rÇ‘@½Ž@„VÏ@lÁ´@iõØ?X¸¡?Le?á´-?Íá@?ƒÊi?…h‚?‚Í?x<ü?²a?‚§^@dªâ@IŒM?‚™™?Šú?­' ?¸¿þ?éäq?âr?ÈGô?Ø®@ ÁÙ@ñ*@*|‡@«‘?§|Ò?´U%?ãDm?ç^?ø}¡?äEV?»Ì?ñB@% +@R¨“@MD@G'>?ˆiw?œäZ?·në?–Æë?^õ»?Ïåm@$K…@wÍ@òÙ?ï‰0?—}ê?¼Ã0?ßz?ÅhG?²<@?ä@ J[@Q°^@”°@]ð±@Û„@‚×@J@ ñ?ùkÂ@™ò@@©•@4+Ü@(å?ã÷?;Ù¡?x0ï?a[?š4¶?“r?»;n?éQq@9Õ­@Œ\W@K¯¯?Á†?·G#?¥_ð?¡'Û?–_ç?‚hI?F©?ŠÜ?Ìñ”?¢Ô‡?2J?¬Ä?S¼?,ðo?|çð?ƒ?—*1?ÆG?hë¬?¥ö­@ò?êå?¿?º¥B?°]n?ØŸ@@&Ò¬@ž?úÚ?èº÷?£O™?¢8Ô?Õ”š?ÖÙÀ?¾[½?Ãê¨?ý¢@ni@u’@Ù?½ûl?½ít?ñ«?$s +?2é?A ?'X?0#?ÂSÛ?Ò$‘?ñ?îçg?0]>òäÕ?¡šã?½s@5Ñ@5Š…?ÐÏð?¸”ä?÷2’@–?õŠË?ï8“?â9?Ô¥v?ÄÔM?·û²?®ÿ?£Ö?ÇØ÷@ ß@ Ý_?î6;?é,â?ºIu?µâÔ?ôLì?ô/J?}«™?sþÒ>Þ•4>©¢æ@È@0é¥@1‰€@5à?éB¢?ƒ£Ð?s•C?H¡?}U?°óg?ªJF?µà?¾L[?ô¦d?ð‹L?î¼Y?ë» ?ƒ^Þ?q¼Ð?Z2ù?dš?“ñ?7æ?c÷ã?1Çã?–•û?ãû?å6t?áöƒ?ó»@*À@ŽH>ð,˜>ð@Fk1@M|ö?¬©Õ?o¡?Ù@‰?¹”?r@n?†G?„ä?a|@?8ÎË?E…å?n{8?oz?¢uÿ?˜ÿ@?§??­l:?…²æ?oË“??¹q2?Ì2H?ßö?ä6@Ä?ù¨?D ?0“?¨pv?¤ ÷?Zô¸?Klƒ?Š Ä?“uù?¤š?·G7?²•?¶¨2?¡˜'>ç4M?FÜ?a?Û?…@å?ºË@#½ @E°å@ø½?ÿv­?æ³?¯˜-?£g#?_íÌ?mlP@I˜r@Bœ›@YH?õG#?R >>–ÀÄ?3¤÷?Ž_ê?¶Þ@²¥@ ß>Ùí7>®îÆ?Òœ?áŸ@HÙ@-š ?¶ÖE?"ï?’•·?øwß?é9•?ÒŸN?Íb?.˜?'!§>÷Àú>çi +?@p? ;?‹ Ç?ç)P?­BÜ=q¶Ä>t ß@ïí@œ@ ðÔ@>N?„¯’>溋?YÙŒ?­?ÍŒd@ÌÅ@Œ?æ‹H?æ ”@#‹u@%7?§Š?FÓ«?‡Ë|?¬Ø?¬Ÿ˜?¦Wû?®â@¨@" g>dÜÈ=r–>²›'>æ%>æ¤Õ>æ¬w?>¡?h(ˆ?‚Mú?qÓ?“ýê?áe?îv(?¦t0?:¨?ˆ|o?hl;?6o?ây?' u?gÇ?‚á?í€?ä'¦>ƒ 5>˜ù?nË-?œï‰?‚:Ó?g„‰?¥t¹?×í??δá?ÅpÇ?ô+?êá?è¬,>ê„€>êÁ?[yô?k3u?¢Àm?°Å)?§¼Z?™Én?½/»?ìÅ?áû„?Ñå#?à½@l„@ñY?²ÿ1?®£>ïU„>ï´W>À2²>¨ò®?ݪI@i?¯#±?Žë?%Âu>òñ@hœ@SŽq?Ñeì?$ó?;Ó?Räx?™ê?³Ãñ?iÅZ>÷÷?d1?¢ô>‡Ç=¦ +ð>¡k®>û‹P?‡Œ?9uV>òb$>,G,?T6 +?¶“r?cʱ?‹?ÿE?³m‰?ö½c?Œ?mFƒ?HØc?0{Ò?E0º?G1¾?,³>È?j?—¥î?Æ”?!iÁ?|±>Ó€Ó>wx?evL?í1?x²=md=˜Å>qd=3¯ö@nÂà@\è“?òQ¹?m½>óñ®>Ãñ>A>´ò¨>S¥v?DÐ@ Ÿ&@I@5ä-@3G?¬ªÞ?i½'? A>9Nò>*)>úK=Õif= À§=Wê½=V}îÙ?(A?’vã?–ië?m?Ó?!Ä?|’?3å?çÂ=檘>õe>”Ø7=öŒÔ>°_?'JQ?á®>c¯³>ÞUâ?x"i?[ ¥>¥|>ƒ[=åj=íÎ>ùíì>þ +?sê#?tTU?¢¾>û<æ>Òk˜>©Ú=%°²>…Í>‘>ÜÄ?·>’Š?>?Hi?¦q½?Ú^J?ƒ]?OÙ¼>’ày=.É-?6àØ?}o|>©0Y=\€ ?k¯ä?¥´a?Éú3?Ùº«?‚)¯?2O ?”ã?¤­—?jÌœ?J³ ?‘{f?«£?—ÞÔ?“ƒ.?PÅö?/?ÍC? +‘?VïÈ?ƒ—©?@ÅÎ?#E‚?”þ?¤ÄÁ?Fž>!ͨ?è7?5Eø>Ö¥>ƒk=?N7é?‹ÈÉ?…â¸?p%?Z‹x?@Šö?§¾W?Â]€>½ ,=t¸?û5@3s?n­E?ïA?Ù?ØŸ?œø»?«)&?ò?ðQ?÷Á?ýz@v˜@i?&¯?L?€Ÿ¸?q§?F„?5*Ù?wŠ9?~E?ƒ‹¤?†è”?:š?“$?¸Ýý?·Q9?ÃpÍ?´þä?S ?;+±@cN?ÜêÚ?AÛ´?G"]?Lg¤?V‘ä?^c?k¯? %L?›î ?‚~Î?dr?T°?5Øî?„ÍÒ?®‰ç?þ¼º?·z.?M!?f*?©Ñ?ªùI?±mÙ?š·è?‚®›?‘ÿ?ŸkÉ?¡øl?¤‹?6úC>T˜T?[³?®Ÿ`?„.Š?E?L½?HS!?!ϳ?×?˜âœ?Á?Á+ ?¹h‡?“|Æ?‹Šó?x§;?jò¼>…m>[?™§¨?­>.?3Gt?V="Ø)?ŸEC?©F?Ž<¿?…<Î?T¶@?P——?’Ä[?Ö.?píú?hÛ?4%?Uè?‚‘?jØB? T©?/ic?Œ!-?“Ý®?œ‚õ?ŠÀ‡?q à?ˆ?šv¥?D??rra?7?£ú?´­½?ÅV?Å]ž?ÅbE?{eï? ·?-Ò? Óá?‰ðÎ?±±(?nŠ?#_8?¯›?É?oéú?Œ¶Û>å`Z>µÏ?®e?ÅÎd?›ž?Žá)?Óד?ÜÚ®@ܧ@ H?ÿ2?»@Ôâ@þ`?w?+hL?Æ) ?°K‡?'ó—?4žÙ?m¦?™G!?íüâ?§™a=ÍAä>t*Á? lƒ?¢á¸@ ™Z?—ŠO>Àà?,8?ZJú?,ß±?m°?pr6?Ÿ‘ç?¡!9? V? +t¯>‡·ã>ìò?½?`Uø?h‹·?Óøñ?Ö±R@ñY@¾ @ —‚@ =•é¤>F9j?R6?§“>@Æ?ÓÞc>4-?FŸ?ÇA‘?ª?oôÏ?AŒ2>ÕÚ·?1:?1m ?Ïœû@&gö?ЮÑ?K½P?pÉN?…Ð?c@„?Tè@@/.@sñy@ŒÚ?ÔÖä?¯î1?¬å?ŹG?ǯ?ǵÇ?Íg@@ŠÀ@6Zd?-"?1sX?Õ¥«?ÓÔ¨?¼„ˆ?¾0©?ÇÙÈ?»Ž?ŸÂ:?M?6#¢?ˆOŒ?¾æ‹?·K¨?§j?Çv¥?ܨÙ?õ#?Y ?­qÍ?Íw?¥?•eq?ž¼C?œÃþÙL=¢îÂ>ÖDƒ@R±?úƆ?Éö£?ú\U@/£ô@-1ê@&š‡@Yè?ŸñP@O@@ä@>1‹@0<à@Š½?ü)@%@ +?õ‘x?ôMö?@¨Zâ@»p¨@[@JøÈ@JÒ@R4ë@€ù@‡…i@Çë@ϸL@ôD@éÿ@ÎÐœ@æü&ASYAJ6@¼óì@½¾@µíg@ç5jApAÐA ´a@ð­ô@Ñì;@à«Ù@ëÅê@ïÝ\@ò3j@ö¦‰@õg@êu‡@çû¢@£‹w@•[Aƒ³AgÆ@щ8@Í€]@Ä@ÃÝÑ@Þå@Ü5j@«øR@°;r@ÖïÎ@Íl1@ž#&@š:*@ŒŽ‡@‚ë @XË0@]õF@kݽ@†Z@Ÿûm@’1œ@vÇç@#îJ?_Úß@7@uÖü@@ +e@ @y©@µë@ý‡@²“@ƒì@ ¸@~ê@ Íh@XãÈ@y·?¾?À?3´?í@@j@“t@¤.@K÷ð@:ˆŽ@ý÷@ÎÞ@,åº@0¯ @ `@ Í@O\!@Xm@6Û¤@?uS@›n@—a?ÄÒg?ÁÚÙ?¿žé?ÃѦ?ê‘­?öÛ+@0²@0@ f³@+@"—Â@"Ê@)+e@3XŽ@VhA@>G­@к@Û§@«W@0³ß@b¼]@]¬_@T=¤@)m.?Ã'?«ë?ù”?ó"y@\ó@Hº·@%Â#@ ܹ?¼vœ?ëd@za?Þ]È?eO?¾á@ú@)ƒ6@>Ž©@QS?‰"Ã?ž¢ü?Ärü?ÛþË?ãÓ@'¶@e‡’@N+F@=˜?ù¸?7›B?¼LE@?ÙX4?oc*?¹´Ú@$¨?¯% +?(&?ñö?äí2@ öœ@$ÚÏ?ÿ4ÿ?®/M?¿û?×»¹@ÍÝ@NUÓ@ÀG?€C ?™µ?¶¾s?ÌÏ°?í~?ظu?Àà?ÙR?ÿäM@ç‡@@ ?Ýß?Z?_Hž?­ò?Î ”@n°$@LQ@ ™@·@UR@”}?’åJ?¤RB?Î>õ?Ýÿö@7ì@?Å@ðâ@ÿO@o?ü¹ù?“†>?›^?Ýèö?ßNh@ Õn@Sé?ðÿ/?óM2?»?¿·ª@pv0@h™?é½U?Üv@xœ@è?šW>õ:6?÷|@ +ÔŒ?‡µ³?EÓ@Pè@2Ì‹?ÛŒÖ?¬V0?wðâ?W*[?ZÏ@?N ¢?š j?¼‹X@‹ @ ˆ*?·¶È? +ĺ?ºEt@4@÷÷?Ó)¯?ÌÛS?»ê@9@OQÕ@%­m?†?¢»‰@ V@k@‡õ@ ¯v?ú¢?Þ°­?Œ„?‰ì?‘÷;?ŒÓ«?瀙?ó ¡?ÂF¬?¿<@#]¹@/\›@ ?ø‡?Î7µ?º:S?­Žù?©ç?R:?l`ò?µÐî?÷¿m@2ÈÜ@Ÿ@Y%@ºå@ÇÁ@J¹?îß3>öü? É©?nD?}KQ?ðk?ê«d@ Ç@%:û?£éb?‹²ê? ”?§Æ?çà?üPD?ÐС?¼tÄ?®èÊ? î™?¾UÇ?ã’É?܇X?ÐÌW?ÏÓã?·‹o?Òч@4á@2Á @fí@î|?°?ª +"?d ?N£x?Èž„?òÀÆ?Å–%?´*!?ƒÔ³?,,¼?‹ˆn?ÉÇ=?öÙ”@(7P@?­ÔB?Á”@*/@èq@”@¯?å +?Ùf¨?Ç,—?»{Ò?ê1?ýÜ-?|ôB>t?S +H?¾?—Ö?kÿ?ºä>È°)>èu>Ö >âš?êÞ?öûƒ?_Ê?o¤â?N ó?NúÑ?€¼%?Š t?£Ê?ÎÆ?¾žQ?‹Êé?t[±?¦ ?,Æ‚?ñ h?ý€³?ùÖ?wf%?’e>òô"?Á¬@ À*?Ù…Z?’©À?‡ßÙ?H)p?Töº?a¼b?n“?ë?ìnê?˜y+?vhb?ÓvZ@Iã@ ùŽ@ém@¶C@ÖÂ?õõ:?C9Ñ?8êÇ?|pî?h7r?+mò?*èI?Ûh%@Í–?éö7?w¾?›» ?˜¼[?Žº?>ó¹? Ùó?5ný@‡?@"º?¾?iɧ?´Â8?ô ?Þb?Çj­?Á +?®…é?®pñ?¸C¯?µ%ú@8|@Y×?»J;?Yâ ?³Í@ô¿@óÖ@¡@Iã?g y?g+?á>çiÂ?þ??8?Û?䫬?Ö[[?Ÿô!?¡í?@'+%@%8I@˜?þmš?µõ?ˆŠ¬?OT?>?M-?¬óô?²oE?ãæZ?æy»@?á#@Eg7?ÁL1?fy¿?·s?î¥J?Ë£+?œH? ‡¨?VS?=†K?4*?Ëã?’Ûã?¦E?”²?NïÃ?eŒð?„\??hÚ8?-K#?9/?° +S?£þ?÷>ç7_?§V?åe¸?©S3?T})?ƒá›?ÂÓ?¶{^?¨Í?º7#?Ry>?7Ï9>ÿËR>è²£>C¬*êŠa>êÃ?‰NW?†{”?úŸ@R@?øn?ßTs?©vÃ?€%µ?”²?—× ?§b?ˆ?ºü]?­Gº?¬²>ï^0>ïºÞ=ÿæª>›?•ö?–«‚?Ö¦b?ܳ?tqF? ?O¡?ÖÐ?‰ø?Ÿ]ƒ?”e?‰XÅ?¾?§˜?p±å>øÆ?)÷ö?kr_?:Ln>ß K>㥠>ûžQ?#hÿ?>S>ûñt>¯ö?;$?¯È?€4õ?z*v?BÙ@?Bç?TŽo?I9>P@?ˆw??ˆCq<βp>v>Y@÷>9ê‰?3þŒ?¥ô?C“>¸!?±)=p2t=³ƒ>ì½>x>µy>°ª‰>¦t8>ÕÀt>ó¸Ò=¸ +Ø>éŽÚ>mÙN@ €“@ Í@!ÚY?{=`Òñ>xS>š@?#?âzo?×óp?wå@?“¢[?‘&3?Žâ˜?:C_>çO²>Éô×>¦?>Ðl?öÇ? +×?i98?j%^?ðŒ?Zà?HÖ_?m»¶?—è°?³7ñ?n=?,õŽ?? t?„ö—?“š?H ?ŠAÄ?Y€·?]‚`>NdW=Ëî?®Ñ%?ëGk?dž?c¤£?ú +?ŠqöÉJ>ÑÞ>…Î"?Ñp?—'?‰‰@?O=Å?XFº?S u?Bl3?=Xv?¯<Ú§p<÷ÛÈ?²_w?¬±…?ŒÖ>ûº=)„Ë?4mš?G +¶>¬þ>qo,?¾?.Á??†oÝ?Ȉ>±×ã=»TQ>àLø? +t–?›ÊÑ?¾C?‹;)?d0Ÿ?7\…?37Ö?U­?q‚?)?1?Å?¼£D?þZP?ås?Çι?g3™?,&o>qý ?Ä?nŸo?¥•†?½®X?¿ð[?¾Ã¸?Oäœ?ùã? ùK?:³?? ?2!µ?€ù”?Ž-Ü?¢) ?£Îg?^¥Ù?8t?%».?,T“?ÅTÇ?â6‡?¾Œ?¸Æ> -?×µ@#Þ?D©F?ÎT?Ö?Ûx?Iêù?_®û? ‹ö?ò­?ù!?þT?¾?Í?‚³?wÔ‡@áu@ oŽ@Gï@`?—ß?÷c?ÀÆ?ÀéÚ?¹‹Ñ?«(#?+D)?)ä>ºç>á–?TÞ?6iu?ë ä?Ó†¨?dã?gÜ?kB?AC€?í?¦R”?&¤ù?P¨%?œLJ?ÜÇ?‚†@?”‹¦?¼"C?v'=¹#¸>øÝÙ?u.ä?„q?Ãs?¿‹½?óE?æY*?ÖÁa?©*Œ?‚µ½?`¯?E”4?BÕþ?8Â?*£=?-ë'?rmŒ?‘xÉ?ºì÷?Õî–?ž±”?‚Þ? ­³>ý³«?ghG?†6©@ÑÝ@3þÌ?{ÒÚ?@ >Ú>½ÜÐ?FbB?^Æ ?‚ \?ƒ:> öè>ƒyŽ?F7?N®û?Ÿ×Â?ª \?¯÷N?¯?”ß?‘52?:Þ??yÁë?f«U?KÏ?É®?S"?Í(?N?a?Å?˜¸?l-?4ż?ƒs?r$?P\?f¨ ?ƒ…-?”|Ï?¨IK?¸´÷?Åa7?\P>¸xŒ?8J?K.»?/«µ?t?ÇšÃ@ÜÉ?Ö(g?ņ ?ÃÍ?Á²?„U2?e&Ã@ ó @–>?ý´?õõG? ø?Ó‚?Å2ì?Äbs?‹CÖ?–$@% +&@…}?x?(©-?¯6x?ž®Ù?>º©?5–¾?,˜? !Q?Ó®?l½Ç?Æ^>?©â‹?ƒû?¢ËŸ?ËD6?J¾ó>“ *?c×?}BÅ?¡þ·?Yn?[B™?L3>Ú¢c?8}'?Ii7?°À?º(½@Îç@ ³õ@B9@Öø?ø:î?ú«H@%Ø@¨á?SÝà?Œˆa@Z¯Ñ@`ô*@g7@EÖa?»H?º©Ì?Ç@ä?ùÙb@')±?þˆ,?“yâ?Áoì?õp¾?­•Ñ?m~¸?––Õ?¨æ‰?¦´T?¤†?œ±˜?“ßE@Š@<:&?žKÂ?NZî?)€t? ó¬?àc?äLj?ǾÀ?¾*==(>¹E?ƒ0Ž?[‡>Î>?¹¤È@¯£E@ÂÁ?A¼—?md?˜Àð?G/¨>>÷Ë?™ê^@p#?ÖP?¤yý?Óy?ô:w?Èå?§õ´?ŸA?–‹ã?žyƒ?¦Æ÷?üH‘@[)?øPC?úá]@"õV@#‡§@BL?<àÓš?‘@]£¢@0|?d®?…r @îd@?¯ T?³xw?·ÌÜ?§ó?.?«h?ÈÐ?ðƒ/@d?íéÉ?Ó¸œ@É#@&õ?ÆSP?¸‹à@,@!ç?ÉÄ?Á+Õ?¾¬`?ÃÐ?ÆLj?ÉÖ?ø ó@Òß@§Ýä@Œž@ê¿@þ@?60@Fh·@Sxb@S¾Ï@P‰ï@4Ä@EÎ@^PÊ@è@4{ +?×õ”?òÄ®?ù…Î@ +|œ@c@’8×@¦mÑ@n£œ@^¢ò@ £ü?÷±Ã@¼ö)@ÆØ@æ¯Ñ@ájS@Ñw @Ëùâ@¹Jº@·¢@® t@Õw»A à +AÔÎAZþAåÕ@Ú@@Å+õ@®Ø@ì¯VAj´A1{yACÕ•Aï@èG@ìP•@êâh@ßGç@ÚõAÕ¢A%Á±A@ñç@¥I™@•™@îð£@û–Ñ@‘Äì@A@Æ*@Æ´­@ÊN@ÉX@µðÁ@·^î@Á·e@½fÄ@¥G{@­V^@Æüß@®w^@c@La@(2@J’K@W@Û¸@^[@f‰@Þ¸@}(?Õ3z@&{Ô@_òX@,§Á@Â@¹(@³–@»Ÿv@öù@t˜Z@ +Ý@z»@xÝ?Ú9Z?Á$y@+r@5@nŽ@‚w @²€@Gé@AN@89?Û»o?Ý)2?ϧÒ?Õ¤(>e#>c’!?Ä~–?Ä n?¿,n?Ì&ì@")[@_=ÃQ«?5y@X‚@CáÒ?Ý´?îa9@ØŸ@a@,$@2dë@~±@oÀ$@P¤”@*ý?‚TÙ?®âr@š(@A‚Ý@’v +@’Xö@•$ì@e²©?¶€=?«–?’:?¢º?ÂÛ +?ÜÌK@xÛ@à?ýÑ8?êõ¹?Öß1@ÚÓ@%.M@=5Ü@\è¤@#jO?Î ?ηV?Â?µ[L?¡'×@ @T[‡@uä@ŽéÌ@KEd?ÔE?³c ?—H]?¨ñ?·à·?S¾Û=ñg?J®ª?Ã1?¿Wk?¸ª?ô`¹@Gô@Ew@%T?ó^¦?À¹ê?¬¢á?—“?¼Û?í`D?Ð×? F?¯v?Èþt@­£@YÇó@(‚ù?ÒvX?㙶?ÿæ@ +=6@@}@)|É@?­*@Ô?~:f?…R¤?ž’@?¶”?Ò÷Á@8@€ì@aþÞ@ÆÝ@ñ?þžc?ñÀp?Åfx?ÇR?âÑÒ?áLÆ?¾š?ɪô?ý§@[G@.»ý@-™)@8Ï@0Çà?‹Ù½?„N?^:? ÁÅ@A1C@C…T?“JÚ?“~}@l@ ´ñ?P>«ùQ?¾²N?ÖH?Áš¢?½0O@iBÊ@†¶¾@4j%@iö?¹?"ûì?®;k?àN"?ع#?Íô@ i;@Pˆ¦@'3?öË‹?¿$?—?§N?¼”@w±@héz@[ß@Q•@7|?ßã#?Íïì?œT°?˜¯x?yÖf? 0¼@Ymh@[œÙ?«,°?­¹6?ØÉð?à^…?z_7?r· ?väQ?}%É?(Ñ?™sò?”q{?•@+@ÑÓ?Ãýî?x$§?µ,?ý?Öeë@ŸÕ@0é @[Ô @B§÷@kÉ?üc-?¯#5?“¹? +¥?,:¶?òOÒ?õC?ö›É?öƒø@1ç_@3$?ë¹?Ôó¯?Ïsë?ÉúX?’f¥?ˆò ?„ ™?uˆÇ?£9û?¿åå?§]?”´°? Š?¶?˜3á?¾\?¦I>õ5Ã?hü?Àuë?ÅóÚ?éBô?çß?Ö‹?Δf?çÑ?çÊ ?Ÿ?uˆñ?P š?@­ ?±@9/?æl?»½Ø?¯†„?b“0?y'6?±_E?¶öÕ?¼¤7?Â_?¿b}?Á™?w*?e‘?Šw~?œf5?Ž£{?r¢?¼v>@ +Z+?ï°ù?-?¤N4?קó?Êë@Ž·Õ@’?Ãùj?o£”?^‰J?QßV?uÙ?Œxó?® I?Óç„?·0?„×|?‡£?!¶?à¥?? ¦J?¥l?²qY?:+>í®Ô?Pi–?ŽŽ–?;€ž>e3è?2?ˆGÿ?Éî?v~#?ioP@¦@W|?Ò)Ù?ØÆò?±Iõ?‘S»?µ‡?ä@Û?Á¬Ú? Œ?PH?¦w?]E>Í0\>õr½>j™Ø>YqÚ?‘·?3€?hù¥ìƒ>™2?6ú?± ×?¼ì+?áòì?ܼ¬?Ó†ï?ßl?æáä?æÌ&?úæ@@'?£Wª?½²?jž?¶ÌÂ?²SŒ?¬ê¯?®Hh?ñYâ@C @MÖ@Z}ä@ Õ?ßæ¦?½ø°?RæÑ?Z¿6?·yb?Ãæ-@RO@ °p@Pãx@[Ø8@|‰?Í,ç?¼Oÿ?­²?¡ïq?bí¾?Xç?ú@â@„ã?WÆL? Sý>û{~>û·Ç?;bo?g•É?bC?hÎ;?„Ö¸?’vT?„î'?˜±L?žrÑ?Œ>>趬?@Eµ?b—˜?‹-‹?¯1?ŽÌG? â?oc¡@W«@(>êŽj>êÆ ?ûZ@“Í@Ç=@SÖ?ˆÔP>∸?Px?%I?ps?mc%?‘z8?ßMî?Ó`?nµV?òo@ 7>@æÂ?µ”?ž¦?vp?qL‘?ÀaÐ?æ'Î?Æ©&?¶Da?ŽÑs?oñ?9òD?0ü??wo?”h?-Ä>’œY>ÏÐ>ø¸>‡ÙO1þ>úf\?,ä#?R€w??|Ÿ?@Vl? þÅ>¹?‚÷?iBd?~@?€œS?(³C?dr?dè ?‚0y>ª¾€>%î? –?­÷À<}ò=¢›»>ÝP>ƒ]>§?z?]•?Ê¿3?_å=¤];íðÈ?µ÷? +G=·ˆž>‘c˜?,ð ?uue>$_; ~©?åû_@ /@g¤F?,%[>£Y>hÕ=”÷`?2GÌ?âV\?ÐÍ­?Óa?²?XÜ)?eÞi>óè¨>Šê3>™¿þ>„\;>î<œ?¯Dƒ?®C?jàv?ktS>'r¾=PÃ’>Ç÷Ë?-ô?͸?Ç¢? Yæ>ï®Á>¹:B=Íup?Œ@ ?“Î?‰?èF? /?RB>ù&?r? –? K(?X6x?Š\C?%ç©>.Ò—>ž7õ>÷n˜?%C^?ƒÆB?mxJ>øµÎ?6ûY?Üg”?éî¼@×@ Œ?sS?qK?ûß?¿*=Àzõ=á°n?/zÝ?*‡ú?s~(?|£?¡Ã?w¡*?zgŒ?}x±?Õ7w?âPÀ??pÈ>þ?Ž?T‚¡?s6µ?uù¸?Œ @/Ð@NÁc?hyç=˦ƒ?nQs?šPd>ëKÿ>FÉ-?•?9D?×9ì@ ó?š)?*Äê>ód>¹,o?“c?&Ó_?Zëâ?zA:>—¸=dÄà?7 Ø?q‚?å?!?ÖÂí@©n@ÅÜ@èÌ@.@"‘õ?¯??dA?-f6?p?ì‡C@ºw?Âþ ?¡/§>f6?ýRæ?ýüß@ ”<@Ùf>®Ù>eÇù>üµ?¥?^??J—½?½:š?È…´?‚PË?„u?àü?æÝx?¼ã·?±ép<àÀ=;«h=ÞQ?> ¼=Ÿ°>…*?••#?ˆ¶@?[z8?_+M?‚^‰?XV†>y,Õ>‡¼>‘˜‚?F»?¬Ð?¡‘É?‚{?–ê?Ý_ ?ÅÍO?Š’x?-û•<¹Ý;ŽŠ>t}4?ÿ¡?{Jf?·'Ý?ÃÝÐ?Õãè?ªrÎ?†?%?cà¾?:Æ´>éú1>„Mñ?ãH?Ný)?J ?2/3>Ôw„>Š<ª=•]3?/©?w¢>Š N<™8’<@çÖ=:®Ð?¯\?Ûõ–>­Ú·=Ìý?“×Ç?¡3ã?Ø? ì?1íž?9è?Jï#?F±¬?~{?qäŽ?R?n?[óù?T¥_>Ä”É>½ù!?c ?ËÒ?oc?~Ð?hß?)¯?S#?VŸ?[~?57h?)?‡Ew?cÿì?&7ä>±2?ÿ_?9:S?`˜›?ƒ„¸?“Ø?¡ 1?¥Eþ?¬ž?]aË>ñº’>© N>wÀó?f*y?™[T?¦ÿ?³ß?¿‰È?Ä>?=›Û?õN?ߥã?÷T“?ݤÚ?ß]˜?Öí?×BL?´±?…ͧ@ §j@ý¾?Åý_?ÁJ?§[ ?¦ØŸ?< T?=.y?YY?2¤†>>w ?+‘?0S?„6v?˜r?»ÔÛ?bÙc<Üè +?}¾.@.\?t3? Œ%?n)z?ˆŸ?–=?W\%?1µ?¯ú?Å'ú?qì?„†g?óQu@6i@?¸Ñ@Få?9kž?U?ëi?ì]^@i@ï‚@w!@ïf?„¼A?­Ì@%øp@s?Ç4G?¡Of?$Zj?n6_?¶#?×ê??ù?Å?—'?É‹ +?åùe?Уã?Çt¦?š¼5?‡_“?»=‡?Ò¶Ý@6EE@I76?úb”?Ú{Ì?ŽG?…ü@)qp@2ô­?dzT?Ã-×?…(E?ÅØ?ÆYõ?«4>ó'­?$ì@-ö @)+x@ hô?Ç +š?+ì?“Mú?Ø¢è?ñ»…@ z¿?Íìp?‡Û”?aì"?N?Ë'ä?ÿžP?ô«ø?÷(Ã?†”G?J{?Úi?ñ„?V?…\?ö©ê?ôb¡? KŒ?–œ?„?nï>?\º"?YŸÂ?c©?á@e‘?ýh?â5l@â%@@êC@#µT@ ɤ@Ÿ‹@sñ?âã4?О×@‡@7ìà@nÆ@¡ ?ÏòU?…`Ì?Õ_o?çf?°ž?£ ?óh?]Ý?…v?¶‹û@h+@wÆä@\œ@>m÷?«]@¼Ù@`ÔÊ@I)Ã@%t@NF•@]q@S«„@#u@@ŒA@Y¸9@;Y@&ƒy@AüJ@Q9‘@!N@ +òô@€ð@“fŽ@?y@+Úž@¤‚ @®Å’@nD@mÚh@·G­@º3Ý@È»…@ÄoŸ@¨†@½ñ™A†@óú®@¾|,@ï}žA&!uA!äÃA|­AuDAAOÜA$³4A9VïAN´³A(ÅhA +öTA ß¡A ’@ï¬[@ÙöÖA ”A*¯kA0Ñ£A3ƒ~@ßxÉ@Ç@óŽ@øfœ@˜V×@“!„@Æ“V@Ȫœ@íRû@ç” +@ÁÇy@Æ('@àäa@Ñ®°@›@–R½@ˆév@º¢@‹ Y@„©@l”|@j@“þå@”M2@”ëÅ@eDn@Ó@$$ã@18°@ Ž"?Õ_Â@ €ˆ@$Y@J +@^yå@/Í@&wä?üâ?Ód‰?Éi?ÅI?øOÁ@vÝ?‚}g?XŒ¾?ÅyÓ?ÞÆp?æßÐ?è±@Á¨@øÕ@ög@å>?yJ©?gÏ?‘—?x ?°9€?±•œ?ˆ¯ˆ?†wŸ?„E?¬Ò4@Xxÿ@FÒ•@¨ø@íÆ@@%`\@c¼@JÂe@ˆÏ@ ,@.l@@%ãÃ?ÿu—?ËSÝ? S:?W™?·ð@ÝÐ@c@>ÈÏ?á<à?Æ‹Š?H?®nù?êÕ?Ù… ?ºŠ¾?õÒ/@" 7@:?Çá€@M6@O“c@g‰?ºA@ ¨@=Ý@2Þ¨@Mù?×·Å?o¥š?«YÖ?â@\F@Aß@>~'@9 @ÃÇ@ ?³²?.OÊ?5?À?Yî+?‘9Ò?¶d@ XW@?­þ@>tS@:ý®@ÑÏ?Ò/6?·™+?šãƒ?—Ì`?’5î?ÈÖÓ?þ/Û?ÒÁŽ?¥§?m×?<”b?|!ƒ?œBÁ@·ä@V³ú@.t?Úe"?ò¾“@ +ç@¼@ j@4@5ä¯@ ÷?}ºC?U?@ü?ÌÂÊ@1&¾@!$@ ûJ@ s?÷~ê?Ûè6?†å?ĦÏ@4^Õ@5?Ù¥?­£Ü?òJ?òÏD@ …œ@¯˜@ErÍ@BNš@à)@Òê?öÔ@ [@<õP@9+‚?Šªd?”8Œ?}¬^?|æŠ@äÃ@r0@@ ÅÙ?¢ö?–è÷?·¢Å?½1¯@+ص@B××@+?³@%6k?ÆMê?±J?Ž+í?‹«?åaf@µr?®ù +¥= þˆ<ýUð@ Ë@,@"?>®ß>D¢??ÊÓs@ Ÿ7@žõ@ Ê?à]²?¹ö ?öÅu@ôÇ@ +èv?ßûÚ?Í ?§?£?à“@9eE@ 㤻>¢ ,>ò†u>òiÓ>òM1?á-?y[~?4?±ûÒ?µR;?›ÆÆ?¢ñ?Šªª?„±A?qx7?pLj?³T?ðà>?é·¸?Þmv?ÍI?„km?k˜š=EH-<ȉõ>ôý·?)“?¢P?ªâ™?§¼…?¤”Ó?¡op?žG‡?À¿¼?îñ>?Ñ–?ƒ*?…‘â?Úˆ•?ÚMp?nBs?n)ö?Ÿj?ª B@@Ш?–ª_?2›?x&Œ?²º;?ž/X?‹Š:?” t?±”Ÿ?±Ú @A!@Ñ®?<+>u?ÄÔÝ@ +¾Û?©ø˜?°]?zè?ãGW?ÈA?€w&?†?¥??—“?Vâ±?:šÔ?Ò3‰?ø¾ ?íO5?ê[K?Ýƾ?į¤?°_?q/?tzË?é½Ô?韵?és?ép=? ð?@/?®/ô?ïùË?ãŽÔ?Þ•?âìM@®@é?L¡·?"›?Áò6?éKÎ@H@Îá?¹¿§?!r?ð ? ¼??a?‹›?‡Ó!?„t?€:Ö?xÛD?ÂØð@š¼?ÿOÏ?³Ö?ÂbL@ @;6?Š»‡?„Ðï?ô¸ý@8œ?¶Nn? /?k‚í?øÑ·?éOn?®'I?¬æý?‚ã;?‡{ç@¼Å@)Ñ@œ?ëqò?Ðõû?¬Ý4?¨„*?ƒß_?^D ?n?pd>.RG>¥Îˆ?‡?º¦²?§¹"?‰Žg?šÑ?È%?Âfá?šî[?ŸXê?«¯?­jÎ?ú\@ \ç?ðÛ?ÐÚ?Ï×?ÏËÏ?»·¥?¯p?¸KT?›äà?‘Óñ?y>è· ?…DÈ?¬(÷?Ün@Øi?Π?>½ ?^;?Ò[±?Ûxý?û°?mz?Ê?¦¬"?²/v?»¡Œ?Àró?®¿®?»Š+?ÓYL?¢?>c?ryÙ?²‹?¦¨D?bP?p7ÿ?‰ÔY?™Ùç?îæ?ðŠÞ?}Á?Où? íó?ˆ¡?Š ?ª¼†?Þѽ?ì:©?4á=ò>äCå?0 s>âÝ3>ÊÕ¡?¡>ýws>õi(>ô¹ >úvÕ>Ásà>±þæ>ëYÈ>ý +Ø?EÞ®?~gŽ?ñb=¹ñ–>ªýS?Ïõ>çø> ^/?Hè?DÇËÙ=ÓÓô>!ã|>Zƒ ?C•?zIÛ?.>:Ÿ8>å»G?¡Î?ŸJ?záˆ=êK?>{q{>«´>ÙË(=…P=†`%@å"@#s@Dìƒ?—=I“p>Ú5·>G£ú?¥>,@5U÷@©¥>Ž32>©5à?\ž£?e¾þ?3Ê ? +&?æúNZ>ÒZÃ>+&=Òâh>ws£>Ÿ;…>¸ |>ïŸ>ðI>×|2>ÄP>ñƒÞ>ö€?‡* ?„+?gl½?k( ?s?oò¼?iÓ?c²‹?“rÅ?©5¹?Nš7>Ÿ€^>ý2ä?>Æ4?#5ò>øi? ÏÕ?& ¿?,:¤?\B¹?bâ)?i‚µ?Vø™<í,t=£|?qÜv?oß?ÏÿÙ?ß«?}ˆ?|.??Èâ‰?Çh&?½Ê?½Ê‚?-2T?šƒ@þW@¡k?kH¾?ÿº?ìl>þœx> Y—<^Gç?p.?MÑ¥>b¯?VµT?’˜H?„Žn?l„?Z!#?HA?|Í?õ?¬¶=?Õìý?­R?¡¯F?§©^?­¢¢?Z»Ï?Åt> %q=€vh>¿²?:w4?fn+?£[c?¼+Ÿ?¤Òð?¦oN@!u@ Š?«&?e?rò§?€ ?˜0(?¡ƒp@˜´@àn>ÖÇ„=#ò>Ù>>ÿ¦,?y ?ˆ#?Šå7?³"?Ü+?.J1?o^?‰Èe?qï*?[ +ƒ?@??åæ"?é9?/Ö¡?-x?‚|?{Aw>Ô(L>ö1?‚/?x‡Á?MŸ>ýÀ¢>ó>ÆR–=ø m?>U·?Aûj?*óÔ?•ò>Ì®>òÇ_? l;>Ûz8>hùi>æB?‚u½?wP ?_‹ˆ?c8­?S´/?w7Ö?ª³»?†$‰? º?sU@?½)ò?JóÕ=k™È?ê??«eF?Ä?Æj?Á‚¯?Œ0?N¦?$Ÿ|?”(?%À?: ?ºÔ•?î÷ ?¥(ª?‚Ó=>éˆø>JÆ/>÷q?M°? _3?oë?l)M?{®Â@-ê@;Æ?.Èô>Ô|?ˆÂì?”H?ó)J?îûž?[)å?NºÞ>ë+r?„­?Máž?m¤e?ß°?ϲ?.\Ú?=¿?£5¥?¤o?9‡?–°±?½¬ä?Ï +#@ÙÝ?òr–?¿~$?Í¢'?ð1ú@ Ò?@,”'@( ?äÛì?”˜Å>° +Ð>†Úø>Stê?j2„?ÈÀs?¢:?‰tæ?oí?T¦?±ˆ??Úë?ˆ¢i?GŒØ?Äeù?ðÍ>ÿ:l?MT?ƒÁæ?¸G?¿ˆÉ>²r5>vY”?¶ñ³?ÅËÜ?H‡D?G‡Ÿ>ç‹h? +¦?Ëe ?Êþ‹?uœ%?S?„[?³H? ‡þ?Š]ž?a?’Ž?QŸà?g›?Œ>>?‚Õ„?„5s?_Jb?O?¤@‡?Æ’•?‹ÞW?C>>çŠK>Ž>LÕ^>üc?' ?ˆø“?›ä?¿Oð?ÓcY?•Ÿq?„…f?„O?ˆÓ@h,@Ì„?´…ê?²¢â@/·í@,–<@ _Ý@±W?Ç=?»Ô,?„»Å?®ùý@"Ý*@#«?Ç2Ñ?šÐÀ?Ôò?8¨K?„ÜØ?tìi?f#?jó ?`³?êŠm@&-õ?²9?0Ó'?EΫ?F:?vÌ8?…H@7%d@ZvC?î@­?ÏÝ?»±?²3¸?’°Ã?Úy?¿=™?¼<ª?…'N?¡ƒU@%:Õ@?-?æp?i ?>õo?0šÃ? üa?„Ù±?Óds?ò_×@¢â?ô“?ÇìH?Çî{?Çï#?ˆBˆ?Bò‰?¡†8?ºB’?ƒc]?]Ë?×éÁ?ë‹Ú?¬`P? 3ö?‘3¾?î+?+•?"¼Ë?ϽI?À=B?…bY?œr˜?öª€?÷?c¬>û`Ÿ>ö?£èØ@âx@/³@JÍË@/‚@”w@²?ç}×?ÓPÔ?À»Q?ëÅ?úÄ @ +àí@·¦?ï4ƒ?ØÔg?XoÅ?6×ô@6‚ú@?”?ÓÏh?Ê Û?…Y}?ÛÀ?صg?í8@ ü\@aü?»þL?òùZ@6é@RåŸ@xa×@>–·@î½@A˜@*¥÷@EHn@X)@8ï@&ƒ€@xLB@Š<á@‰’¾@ˆ¥¡@W4½@F ±@j]@j(6@y=@o"~@‰¯;@‰)@¥q@¦â÷@¨ah@¨âÃ@¦@@¿áøAâR@þí‚@©òî@ÞCA&!pA'½A'õ[A*‚KA.X›AˆAÕ AæÜA¨ÅA&ìA-»Alå@ÎL`@Ýrí@Ý#ZA-—[ACù?‚!Ð?šY‹?Ãq?yŸ?ùö?$? 0ì?áyß@aÒ¯@Ü8?†† ?¯`‹?çkg@†@'¼@ Pg?æø?éøÊ?òŸ|?µ#&?L—Ü?ľ!@@/á^@P&p@>åu@1úr@mÚ@ü@8 @: 1?Òm{>¦ú3>Ö =? ¨è?‡å¸?ÅI?†®•?%?ªÌÖ?ùf?¼¤Í?€õ?˜a[?¯nñ?´È? ?±r(?šÈá?µí?Ƥ ?Ù=á?ù=3?»5ì?_… ?{°±?“=ñ?Ô>÷@¤E@)=ÿ@?Ít@ø?ŠX?*¨+<]–r>ÀýÐ?Cù??Úœ²?÷@¨@“¦@/p@ Ê?ñƒ?±e?ª ì@3°?ùQÏ?Ÿ³@?ªöØ?ÔŠ.?Õà¿?«?´„@©S@Ýþ?šPÑ?¤ž?¾‡?Æ%¿@"§@!L?})±?}§Ó@Ê@.X?Ø_?Û]?^í?jïm?}¸?|m1?.¬?/–y@¶^@)f°@ö?ûê?Ý<Ô?Ïä +?ãç?ç¢?¨J‡?†ç—@LY@6 å?꟧?ƒe?Å’?úêã@¦ñ@ÍN?Ѽ6?;–?]¥I?’W?®š?ú3ß@³m@ xö@ó˜?—nu?¡Ú?÷ÛM@á@ ã@ /@]Xµ@c©???w&@ÌK@:@î¡@Pþ@?á‡@Gò‘?½R?d"T@ 9@:O?àq?jæ˜?uI?ƒÑ«?ªíê?Ñ`‘?¢åÅ?-Ên?•5É@°@ +°^?wÈ?wöC?{¡ÿ?…‡@#™@ƒ?ˆ¨ö?†B?Øh/?êÂ?ôÍ'?õõž?ÿ_@v?Ø}¤?´ ¸?š¶,?‚¿??¾@™.@9 +@8!û@^[?‡h¯?˜%¾?õj€?õÁ@b(@ìz?a¦ó?|s©?_>?iî€@JE@6²á@Òæ@ @ó+@"‚W@"à@$%b@ Ãø?¶%?ªç?v7¡?>Û¤>úLƒ?zÇ@³'@ Bp@ WJ@ +—}@–ë@—š@’Ô?ým?ˆ­b>ñ?…w4?ØÊ?ÆiÑ?¢l€?¢\?œ9Ï?˜¦?›>ûë[?±^Œ?®O?„²¾?€àŠ?ƒÞ¡?†ÞÚ?c”?LÜI?oé?Ž4·?ªlÕ?ÜhØ?Ü?²áŽ?°]?nBG?n+¨?‡¼>ý¬g?îžÂ@Ž­?ùÏM?Óä‹?ÅÑÕ?ÀÚµ?Ĥö?ÂN‡?©¡p?&Ða?=”k?Ó´Õ?ÖÛJ?“ Ò?…Ù?£\?±?λÞ?éÿÃ?¨¶Ê?Ú8?¬? 6?ù™?™XK? G?~¤?‘gQ?ÚnÌ@7?íh?Ù^ð?éÔ°@3C?úC$?¯r‹?±öe?龓?é¡^?éò?érÐ@–@Al?È×r?§k8@àû@K‘F@4¾þ?Ζy?ÇLž@–’@Ü3?XG>ú¸}?¬Êi?ðí©?Ý¥??·v«?Ÿ³¦?gÈ?p˜Ë?È­?Äã?°{¨?­’›?µ'?µ D?’²½?f k?ˆÄ?­M…?°­)?× ?ã#ƒ?–>æÏ?ñ¿'@J÷@DÇ?Öd,?ÿás@(Çž@"ð5?å /?ã°@[%?ÿx¤@#E@Ø@ ‡@ @d»?Ùp?Ýa@@Ú†@*ª?ÝpK?ãzƒ?ß=¡?ÎqH?C“>®<ž>À¢q>¸~ ?` ?}bH?šÊ?„çk?€—Y?¦¯Q?­l³?­Ôº?´Â+?¹%­?º4Ì?ëÞ@#¤@Þ!?1&c?:Yå?Ô,0?Ú¨¦?!C>Ö”©?@3«?pxí?†yt?œÔ?–ç?iÁú?uNÁ?fq?‰¾?j“u?jÐ>:ã.=“ ?ˆ G?°Òt?›/"?—`T?¡™ß?«ã?™!ì?PB‡?mÁ?²¸?”Ë,<î^>.?àµÖ?Özd?œ£m?§½?ºu½?œµÅ?3¥™?4üóš?¼œ?ôÖ?-É=à® >`Æ??M\?'…°?O9?x&Œ>êc;¡¼À>‹ z>ú„I>Ò»œ>œ!o?ñ²?4y(?$µ?«3E?²x?¿ëÚ?»G¹?¯I >ºÜ–?ßô?>@±?1š?$×?[>ò¤h z4>ÍÅ >²žx>—,Í>fæ?˜ì?}q?)’? [?s? + +à=çÛ,>£™/?$µ ? „=¥n!;ºž>#@Oý@`@›{?/á ?y(ª@©c?ÙÌ·>œHu>‚z?`Œk?eŸ/?ÁÉ?­7È?'w'>¸yÕ?›?É?•³4>ÝBÓ>ëŒ?]´?_PÇ>þëÏ>¸Â­?ü5?FÚñ?@³€?:…©?"4ƒ?ÆÃ?ª~>Ÿ‰>À7ú?™À$? Œâ?&o>óž>?^§©?tr?$ž? ×?"`¸?88>Û\Ñ>.‚?r8/?àp?›û½>ød?‡ƒ?%Ä?#áÛ>ùF>ùí>ùÛ‰?ë?~F}?†^ã?ò$?ñïÖ@1ÎÀ@- ? t´?&?ªî?³XÕ?>>?D³-?*w»?ô–?Ó³?ë¯(?k ?Nܼ/??*Fö? f5?—’?Ç?tC?ÀMÝ?ñ’&?Í;O?»Dé>¨#Û>éö?t/>®ˆN>›Î?;Ãý?Pì?ãŸå@Vm?€0É?Jåä>›>%>233>æ2Ò?Š„?„Æ?Œ•Â?‰µ?«z=Ý <+†)?­#V?¼™¹?†1Ã?ÔÖ=yJ?—åe?ž1Å?G%3?D½?ÃN?¾ +p?'¢ë?5K¬?`Íï?U¡Ø=Äö>D÷? d?’­Y?Äæ&?­^‰?Bc?#g?^ùÍ?YZ‡?g5î?w_Ö?›??v¸Ú>ŸŸ–>ÒÐ???0»é?oè?Ÿ+?T}?+¿å>¸Ûã?]}m?Ûwâ?bÑ> J? P[?‰«,?„+[?„Ü?ºz™?é"°?é5?íÙ?ÔÂZ?Ħ?›˜i?„.W?žKã?¨¾¾?»?‚½ô?‚Âå?‚Æ‘?¯²ó?Ä3?†µ{?a –?ŠYß?äÜ?zaA?u‘b?²Ÿ?‚æ“?‚nE?‚í?4ìN?;˜Ä?ÜlÉ?ân>¥/Ò>‡ _?ŠÝÕ?˜÷?5?5ÖQ>‘ïü>šŸx?=àª?9F?›?J’?ZP'?P ®?1Ð?=9¬?ÑA(?»ô?w>I?y”¨?{a?–4x?Äû??ïìý@ §R@­m?²©µ?Útê@j´?ììÔ?Ç?Ÿì?n€I?˜«ó?ÀçL?ŸÆ0?}?R†?7-?«;™?Ý"¸?[1ï>ÄÃU?VH1?ƒ¯ô>µƒ =ã`?P¡Q?E¾?ƒÙ¼?†eS?vÚm?j½g?¿Ã$?ÅÊj>4>ú^?<ßü?2Áÿ?2Š?:“?P!‚?pÔ9?æ‡?Öt?Œ-y?„A¤?4é¼?b¡Ó?²U8?ß^d@ìö?ÿGE?„5?œå?À]@š/@b8:?ÿÎ? +Ú:?MN_?y! ?gÞ ?W™ð?bW?gAP?И$?ó ?y©Ø?8 ?{EH?„„u?ŠÎ?_?já?æ¥?ý‹@?÷'D@(a©@)Ì@@æã@é*?ÒŠ­?Åq ?’Òj?Že?‰ùv?†Q±?‡*ù?…»«?| +û?gË?„Ûè?|ß ?jr?®ÛY?á¨Â?êì´?øix?ŽVD?A/?Šj ?¦)æ?»&ô?¾Žû?Ïå=?ÙX ?TðO?-·@N,@ø7?Ö¥Ý?ÑŠ8?©5‘?ŸË??“¦?l+<ª%>C¦™?Žr?Šu@d6?ö=Ô?Ÿ‹¢?žr[?¨Ú?‚ +Ã?1X—@Ø/@H9H@) ?¤0M?Â]?…N•?äH`@Q†?׉?Çþ›?óö@û•@ ¹}@ [}?¿¤4?¾cû?ªÈK?³Hê@AÄÔ@290?…aë?tp +?*û?hÆ?³,Z?†F>>ÏŸž?®™@ôW@œ4z?Ú·]?È9@¥@e@ 9I@èí?‡ð?­aÞ@Cà©@40÷@SP@ø§?ÿ=Œ@ܽ@Y“¨@?kh@ @ƒ»@#@/w@Zà{@Bv·@6J@@_ü3@oãj@¸w‰@ÖOI@Ã6^@¼Il@œ™â@•ÉØ@«Ú1@²‰Ÿ@ÿÊõA¨¬@Â>¸@¾~@*ôD@“—>¸-B?¶›\?¾[‰@0@L«@ž*@·C@ @F?ñmI?îL?¼3?¯oB?‚A”?|m?Œ?ˆQ@Ac;@\–¹?úõ?Ëfy?ðNÿ?ûÄÌ@{•@'ü@œ?Øçþ?Énê?Àíñ?¾_Å?»¨[?žxq?ˆÔ2?‘Ü«?^0?¼\¡?Û<n?O'å>øOý?µw +?ýHf?»v\?‚Àï?;éÇ>èÙh?~.?ßÃr?­s…? (?ò?J¶¬?HÍ?w±?ƒûZ?¹r?¸Ó?¾Ý¼?Ä+@ ·œ@ rU@ ‡L@ m­?Ø,1?ÎLù?¾Às?¸O"?·Ë‹?¼/?ìH©@B­@_§?þkû?Ö”º?ž¼?«ý?á*Ô?öòê@Ò@?øù?ûé¸@Á?üÊn?ŸÁ-?‘u5@ó@)k?¸Lü?–"W?Œ¼D?„9º?¬:9?Ƽ¬?´/œ?¨ˆ@õ(@}…@a½?rQŸ?ƒù€@OT@>@,¾@p?ãI1?Ú.é?ßùù?åÍ¡?[ >rŸé?P‚/?´«{?5÷?(õ¬?%†½>ðnŠ?L€?Xî=?dý;@f×@ȶ?½Þ0?ªþ?EB?v?6¡#?D?=Ù?7Š+?EæN?nº®?|ö“?ŸgÛ?Ÿ~/?Së3?Z$C?‚„Ž?|œÌ?p›?|CF?ÅÚ?íwû?¥ÿ?3‚Ë?€n&?Çh?¸|°?:wZ?(Mc?€]§?†Õ*?ê.=?ëÒ?¿Mc?±¢?³%ù?²?w?¯IØ?¦å(?·Z?÷ã ?â)°?k‡?kZ?-î–?.=j?•`?¤'B?¨žY?¯ÆG?¡í;?ˆ`?Žñ?´â?³.?é¿?é¤â?•·µ?‘O?•À„?¤û÷?J­?>nÓÎ?¨WÇ@^ÿa@W¼@ð‚@|á@”Š@%'?Ì„?ª ì?Ž‡?†Ö?Ž!ð?•xó?¶#ÿ?û Û?íÕš@üñ?þ,‚?·´0?­‘?Ôç§?çOr?”í«>ë‡Y?èB>è.Z?s{5?ˆ%}>H +ò>w>ü:O?ÔÚŸ@(´=@3ª?—˜??“L‚?–tê?™6S?j—Ï?jÔc?uZ ?mƒ#?ÎvÔ?ã÷?›{©?lUX?"Ìo>ßÉ? Q²?eoÏ?—c·?ÈS”?²Zà?pa¦?næz?¼PÃ?Áà0?pÞ ?p˜Æ@8I@ñ?a¬>Þd>༩>ó?aH?"Õ}?|R‘?jF>µ Ø?+åò?Ð?Šƒq?„òâ>÷Ž;4Ü=Œ¨=ÕÐ8?5…?H°È?V›? ù?¨‚Œ?ýs/?Øm€?½ýÝ?˜Ø³?‹`Þ?+ >¤;?(³U?LMÞ?Z:ñ?hT‘>é‹? F?{xu?ŠÂµ?×!Æ?—µ?Tü>½f9>.U>¦Az>òÎ?íAø?þŒ¶=ÇÇÅ=ñ–à=ã=³>W“Q?Ëùó@^˜?AÃÎ>ëXÊ>¥?Ú ~@9«w@‰?vKu>¢Ñ">cøß>Bž?ål6@K¤Ÿ@Žó>ãc>å Ô?#’3?*²š?cì?~‚i?6¸1>ÅHŠ>ºe^>éaó>ň#;DC?eŒ?lQ‡?\˜>ígô?B¢?nv¯?(½ +>Óþà>ÅS¡>WƒT>†V¥>õäì>ÝFt?1@?$„ô>ôlÕ>ó’ï?dxÚ?tg]?  ?¦xK?ÀæÓ?ÈO]?´%?ŸÓ?›”÷?®¦?s >ŠÌ2>Æ,&>û´B>õ[r?î£?µ{?:ê?5ÛY?µÅ©?¤ÑK> Zï>Ÿú?¨{n?±V_>ûìÚ>ûK>¹hú>ÓRO?‹î>ôªé?.[?:ë?§˜?¬î?¥ý>ÂЦ?eþÊ?~žš?+I?k?¯›:?Ë÷á?ÂÁ4?¿´Ä?Jƒ%?$±¨?n¨ß?€´>Â' >skí>îï?´Ê>ÑH>É[þ?˜µ?Q\—?mPV>y¼Å=ÿ >Ñ0Æ?L'=ê¾@?Š]×?¦¬+?“”R?‡ï>ìº>Èr¤?Âz?àÒg?hÛŽ?9Â? ö?{­>¾t->¿Âç?¥eÍ?·9”?(ûd? Ø;?ºqZ?Á{€?ûÔÎ?ý¿?½P{?·[N?P/??ÿå>¶‰u>®<?©šó?¤”Â??pY?NŽ3?Ã;?µš»={Њ?&H? ¶?VM?MjÞ@ h4@…@b¼?ëÉ?|÷*?‰6?ºTX?Ÿbå?)j?-D ?Q2Ò?Zlx?RÐT?6Øq?j?œ2?=ïÞ?^òú?ŠÛý?3qÁ>Ð7>’?…N?1s÷?s +ï?º÷{@“A?¦Z?Áí?Rð>? ?mÄ¥?I[Ú?Gôé?F"S?X*€?YŠ?+åX?!àÀ?‹†Õ?¤ú?Œ…?‚ÇS?±…c?Ä3Å?dµ??'—Ò?…Ž£?œ—?:Tg?Ϭ?hx¤?~¾ ?~®?}º´P>¹ƒ‘?K/D?Da?ã\? +|? ¡? ’?‹P1?ˆœ8?¤œ÷?–N²>YÚ/>Œfy?0`?û¯>¿äª?/ãƒ?ßñ—?¾`†?_ï>ÏÒÎ<ÒÌì<Uá=5½¤>š’ø?8ƒå?_>6!Â?*am?£¢G?’¿?€8;?¦Å?Å7Š? ÿ‡?ƒƒ;?–Ó ?¦|H?‘ZO?ƒ“ç?³í?Ä#Ê?šÈD?’å„?|œ?nïV?•?ƒ·“?+qK?‘C?ý’?“?|ô?ƒÓp?­–?Å¡å>Ô­D>Ô<Î?ƒé ?†$?˜:±?¡6×?÷©?ã<Ý?¤¨?²ÜV?ÕK?°Úì?V_?h¯à?„!Ã?Mc>Èÿ¬?äÂ?qÌÇ?vZe?zêA?F è?Êä?L +[?Œì?¦nÝ?¿?Æ?˜êH?„aë?„eX?„jÈ?Ã1?Ûmª?E¨A?|?sï‰?„ƒô?†·è?‚aþ?oÈ ?\¦g@48Ã@6eÙ?ÛÝ:?ÙªÂ?×wx?Ù ú?ñZP?÷Å@ð@q]@ž3?ò‡?Å\é?•?Xæ?G7?„Ú]?„ÝØ?„áN?—ìÙ?«ú]?òþ…@8|?¸Ž?„÷?ç/@wà?Øëà?Ïan?’¬û?… Ê?aÑ6?a ?ev¶?iöò?Ò+¨?ãKÎ@4†@4z@mB@BS?9;>Dz=³T?,î%@ tV?ù¢?ÇÖþ?ÖïJ?è +Y?Œ§†>´&å?ª³Ò@…Â?¯îy?Aí›?FMf?J©x?f?·Ä˜?±¾?°¸Í?JO:?+1¿@\@g6?{?‡ ¦@Y?ñ@Md“?£q?qç2?Åí?C3*?½…?Îj<@u4?âÌL?«¯0?Ñ@d +@]‹?óê!@ +ín@$æ?ŠuÖ>|0ù?‘/?ÍG?®ž +?Ÿé$?àí§?ô”ª?Éÿ?ºÿ¢?©’‘?¬ó}@/i@1ËÏ?¹ç*?ÀÖÎ?Ó Æ@@$@”c@z6b?Îxv?áDM@P4?ódA?ÐÕY@ w@*Ìœ@Q³³@|eÄ@eŸ@Uæð@Sˆ@J¶²@™Ÿd@µ}r@¬‰!@ªS@¯?@²p¼@‚ë@x˜@qú)@eË@•‹M@“£@‹K—@A@Å7à@Ð{.A +´zAÝ8@îf²AõñA/‘ÑA0|ÇA3{±A0{þA0C½AAQ¢AY»ºAP{A@ŽA%%ôA )AgUA”Ô+A‚E7AnndAF5˜A3í1AB«ÆAI£A(XèA÷î@òO*@à„@aÛp@FʾAôæAOyA >VA$ÿALéAÌa@“¼Í@¨IA]¾@þöŒAÂV@ïïÂ@¥IL@ ¨@—½;@‹¿ @V ú@J5M@8uÕ@SS@tm@EÈÃ@]Á@r‹@¤çÙ@xû{@6å†@Mn•@V~B@ªÓ?ÈMë?ö8Ñ@ 8?Ök?ËÛº?¡Û6?÷q@\‚à@ƒ‡x@*ð€@}â@V_@`¨ù@[½@_Ç×@H]ø@Cœ\@D«`@D×ù@'£w@-De@D³ @H>@‹c˜@Š@Y†@F¦Ê>jÂ?* +š@àq@j®?Â9 ?ª‚?Ls?hÁ?ïȬ?å‡?Ó¯?ÕC©?×e²?ÚI?âx?Çlì?t ?œ€ ?åBƒ@K|@ã±@*Ë7@O@M׬@L²~@ã?‚ #?­ÂK?ïÎ?ŽåÔ=3ÜË?4ln?Åq?úÜz@iã@7+)@Rm²@lª0@…²@:/y?ÓŠ?â †?íHò?ÞÂÅ?Ît»@$@þ?à ‰??Ò?œòÎ?³}@¢Ñ@aòÑ@Ví@Rrp@ öP?ŒIÃ?ÝRF@îx@ +|¹?ý,Ý?Þq”?»‡»?‚™ò?,¥s@݇@UÍ@@êÂ@1­@ Í?Á¶œ?Í“v?æÖp?ÍË^?¥çØ?°]|?ÅË>?Å1?À(?¢ít?€þ?â#ä@0Š@:á@E(F@)x @Ð1?î§_?Æs?¨@A?†úX?î7G@JWÊ@+g?ñè•?êm°?â‰Ï?ÍßO?•¾ ?¦>‰?È0Ø?ÃfA?¾žÛ?éiÑ@H7@C^I@ÀØ@#¦@;E@0§º?±ó?¯íì?Žh?˜áe@Tú@•?ÿAy@P@«f@i”@JÛü@Gíi@ZSú@V˜ó?˜1‚?|m'?¬7ö?·‰/@-@?$:?ž.™?JÜ×?¥µæ?Àø@ž×@ +P.@"8@2ÚF@¦¼@1?ûg8?úG—?˜Ì”?]?@ëú?z¹Ø?Ç©š@â¬@ –¼@2-i@wì?c?ª(î@C@’²?ðGí?þ@d@@N@µ?Ø$ž?Ú‹t?“Ä@?Ž”u? eÌ?1‹?B?mU?ÞµÛ?ø±Ç?é¡ú?à×F?ÐßÚ?Å0ñ?»÷A?º÷?¤|«_>Úþ”?› 5?¬#?cCÔ?R6?¤Íµ?¸P»?á|g?í©%@aö@ ¿@'°@DØÎ@,ö£@î?ÔÚÅ>ôÁö?c£@Mí@pà?ôUò?òå³?˜àÅ?¡I×?F…q?DÒÏ?s¥?†`> 8P>×ëï?+¢©?ÁF­@XÜJû>þŽ?}êÁ?‹hD?dp ?ZÊ?'…+>î‹A?OÐÆ?œÜ/?W_æ>6†>„;˜?'%?wÓ7¨ý—@d…@ìS?•gY?EŽ?“ý‘?”h€?Q&é?#¡?iÈ;?—Hq?p+?–±??|â?°ÿv?¢(8?ý²? +›e?ÔÃ?ç&Ã?¾À?¯“«?´nð?»4Ç?«n?’ç½?ÁDj@Ð>?ÿw3?’Õ??”ÿ?&´Ë? 2@ 8e@#º·?Öô¥?©O®?˼¨?鎗@ @(Éð@n?™ŒÄ?Ÿ¡‰?km?k?<&Ñ?1#Ø?Ùm@Ë?ÛöÒ?¿ç¸?ÊÊÀ?àôw?ï%õ@ ´@@¦@õO@(4?†}=?itH?¼m‚?ÌAQ?½ü>?¯¨?ÎRõ@ +Q?÷B?”8?—à?ƒè ?xÓ}>:´=}°H?­Ó?h6?hô?góÛ? +ê@ Ÿ"@ ]'? Ü½?³Ž¶?ߎJ?Øäq?àpÌ?çQü?Í‘?¬Ò»?˜{‡?v ”?€¤A?’rø?š,M?¡êË?©¦«?`´š?9H»?ÞyÑ@,)Ë@Yw?߸›?Òô•?föÕ?fŒW>j ¿>•#î?À(?â|ë?Ît?ɘh?¢"¹?=)?UQ ?”&ê?œ€þ?æEd?æ1?X‹?‚á#?›µ?´y3?šBý?VÎÒ?;}­>AÜu>0íù>º”%>†"K?D?ç·?¯z?ÖÓF?íOM@IÎ?ÆéÙ?8Û>?9«?Y·ì?H "?C~à? Dƒ>5I=ÿ^?^e?]\ª?¦"?ìFX?û:Õ?ò‹?×Ñ?&”?‹è?®æÄ?›Œ1?¡g¼?®È?Þ¢À?ë̓?»z¹?ž5G?|ñ©?4¹?>ží+??gu@¤–@gú?²®(?ªW?ɯ?†ã¶?!ˆ´?,„Ô?âƒÜ?ãÆ?Ðܪ?ÙLÈ?BPÌ>ó)ã>óž!>ôF?_o§?Ž"‘?3>sL?…ÜÓ?ÌE?À"0?º.å?º–?²,^?]—>¼ª?4jé?ÅØ>¼Ò.=õt0>¬‚t?ÿÿ?Ô=?£L? ¥Ú?‹;?ð?WT?&.¡?»­9²Iõ>2²?Ásâ?©œ?x?e&?aH?ß¹?_9>mæW=, >>ó­?1õ >Ùo>‘bI>}q? MÞ?lç–?€]?Q>ê´_>R-?¤ì?mê¬?Y?).ö? ï™>¶*î>¬8Ú>£’…?šòÕ@9¶?ßµ??‚P?.Ba>Dà>_öß>{6>‹$.?p°¦?®¹?€_i>éHz>À& <Ô•)<à» ?äùŸ?ß?|R˜?Rö?«s1?Ƽ,?^>…v‚>¦C$>ðef?'ô ? €¥?ŸÖY?‹ä?•)+>ÖA>â+’?ª·’?/K?™G°?Ÿñï?¦ í?¿P—?Ä°?e­•>ZßA?k…?c?™O´?š¤?›‘}?²÷L?‘©)<…Á?=½é>>é·Ë>ü(?{o?s4Ê>ûë›? ?¯|??Ÿn??7%?:P?/Öd?x5†?}à2?º»0?Íî?ˆÖÂ?~Ÿ?k{>þø?r­ ?…Ã1?5lÒ?0…¾? À>ÿçB?#(x?01>Ë¿>I>_X >´û—>°u?·c? ÑÏ?ý?,‹>ð½>ð$Ž?g§?~ƒK?pèK?d·>²>Ÿ‡ƒ>ÂF¯>äõê=žÒº?ææ?7˜¾?{×"?lN?=·Ó?.ê=‡ÅŽ?’.?£ë/?‹r•?‡€õ?óðí@Ü>&%'>3“?!š¦_>ê‰@1ƒÕ@'E?¨¨ƒ? &7?¥ùK? [Ô?æ?ÅÉ?¦¤›?˜tp?Pß?’+í@,Óp@%ç?„_¤?žõ?ýU?Ðàk?%Š?ZçM?§A?”d—?]èD?KùÖ?3¾€?XÝj?‡È?VÑ|? ¥#?{2?Ó:;?£[“?)Ú!?í?†!?ŠT?‹s?¡†@”’?ä O?Áu|?‚?‚¡]?zµï?nl³?,)Ê?­|?T£Û?‚³V?{åû?hs?¨¥Y?ÄF?•…c?‚ǘ?ŒnÉ?”¼Ÿ?Nzu?: r>ê>¥”?x%£?‹ºý? åù>ö"&=¦—á<6c&?yª¸?‰Cö>ò>Ù*˜>Yÿ±>€>5$>'±>;$‡> Â?ÄŸå?½>?ƒd?‚m;?q·¶?m‹m?ƒ*„?_ž>]P>Þl?mM²?gêä?ƒ@Ã?c€3?22>²ÿI83×>Æå?zI2?mØ)?ZýI?:‘ä?"¿-?D´?^³?…n½?œ‘ó?rÛ??^?CÌŽ?H‚•?ŒJî?ž3W@{-@ˆÉ?_oG>Š•N? +„[?m?‰ûÁ?“Ñ?½³„?Å ±?‰Øù?‚Õ?y9?^Ï>V3L>ŠÊC?mcr?d/Á?'s&?9÷^?šL×?—€ä?†µ»?r©?„­?»E¦@7@EÛ?6ãÜ??º²?^†?)D>‚­×>±Øl?3”>÷L~>ëNŒ?C7?„DÌ?>æµ?Î}?^fƒ?‹à?ø1’@•x?×Æë?¶Ý±?Êù?˜°4?™æp?•BG@к@ WA?¬ûæ?¦;?Ë‹?ÐmE?­|?µ…@ ?ÿâ'?ÅM?ÍÕ‰?ÇR?¼\9?ÇÌ?²Ù?0?ƒÓÊ?†9?æÛ]@8ó.?èÈ%?#ú?„ØhŽ‡>…†?… ‰?eb§> ”?É¥?£@Í>ü38? Ôû?4µÀ?9ÔÞ?6aˆ?Á@;¤@È8?ùá?åKÏ?×É£?ò?û'…?‘³:?FiÌ?o8ì?v"¼?ëq;?üœ#?¦cÍ?˜Ú @U©@YD?" ?)×à?в¤?Á”d?0‹b?éo?ò½?'‚?ŠS±?ÄòJ@"£@ +¤h?È?¹I3?©I:?­ž5?±ò½@¤@&¾$?~…?cÍ?¤ÕÆ?ê¾?þPÞ?ÑÍÜ?È‹@&ü™@/óÖ?+ÖÄ?uä?Ìà(?»op?B±y?„¿"@f/@\>Ò@)ÌÝ@2r@@?*5@"Âõ?Ò,?·D3?…L¥?ÌÁ @ø@?øG@jL@oM@o@H@žš9@©»@°êm@·MQ@¶žù@˜“º@h@29@£@ÛhÉ@ìTf@ñ)»@ò5@În|@Å&D@kWI@‡Ù¶@ú¥bA%[A×A8„A" A2Q;AT26A5„ÔA A*/A\ŠZAmÁóA€'yAg³aAPl:AoõºA…>$Alz§A\’VADÔA8•“A$"üA‡ªAµA :}A JzAE@î@V²A8{AÚ.AéqA»AôSA,A*Û@ù”æ@Ê5@Çã@­ +ž@±ô¯@¯‡7@½*ü@Ú™@³t`@g=ä@u’Z@ƒeà@¨@Ÿ&3@V½´?µ< @Mé]@¡1@NÀ?ÚÒ@„54@¼€@p Ø@")@ˆ`ž@Ÿö'@ †@?ƒ¤Ù?ƒžB?ƒ–·@H÷(@nD#@%˜@ +@R²F@^¦?íL?ÛÙ@-Ò*@5µ¬@Ré7@R©~?·l?¸‘Â@YÂ%@[å@‡„-@™.@?¸fT?ÆNÚ@­˜@ ¤?öŒß@ ¶@'1@ ªh@½ƒ?ÿãx?±8?µû}?Ęè?«s…?’ê•?äm@3ñÄ@0 +D@)> @;o?‚…?‘–?¡¶´?vk·?\?·´g@ ©@ž?ÉHù@—#@FnJ@àw?×u÷@±ô@)5Ç?ã.ß?€i¡?ï@(fP@I-@Tä@mô@o2@N1?èôò@ +Ëã@#Z!@ js?Òœ#?¶·I?©æ7?•—ã?€àr?ƒ7+?ƒxö?£vº?Áx?»ê?³,Ù?éžÈ@Ǿ@ÆÇ?àÕ?Û·©?ÕBý?«1?€Vq?®÷?Þ2ð@â¡@-©?õÓ¾?À&þ?·c?¨ØW?Æ7Õ?ð%¦@)@>~¾@1A´@O1@>oC@xj­@?Ÿõ?¼$=?ð= @'p3@6†@L¹@þ?Â?~µù?+vß?‡¨J?þwœ?ã°þ?žy?Õ‰i@5°.@*¾Y@{”@V?áÜŠ?Ó.Î?˜½¸?§pB@"º@uÛ@ý@q{?¿ª“?Åw”@ "@”@)a@+ÓÕ@ ¾@ z?²?¥Ã"?ä«Ó?æÐ@ùÐ@³ø?–ª‡?a,/?ž-ˆ?¢HÀ@5î>@fÒ‘@&’@¯Å@º@ˆ†?òþb?½²ª?Ù{o?ëF~?çµÏ?æN¯@y@œÐ@›Š@]?õC?®i˜?©ý›?·½§?°ýY?iX•?xz|?»C(?¸C?ž{ÿ?æ@?ùU?ù<?|t¼?y*?î`´?ôå=?Ń?ÁÊ?ÃV?Æ€@n‘@)Xv?ì?º è?•s?wö +?‹òz?œ{?ç—@!¥9@$<Î@&Ñ—@0”@D:@.èW?¹CK?§c'?™??7v@o©5@hÕY?ÖpN?Êؼ@.Gµ@.¦5?ù ?Ü’@ ¾@‘,@)‚ƒ@8,¥@ ?Æå1?àŠ’?ý` ?ÞgO?žÛ?†Q“?.¿õ?»ùZ@—’@†øs? Û?*é ?¬ÑJ?©îý? +J‡>óÓ ?:d?BÅB?I>õã½>ü“š?H”?Yk0?Öü?sÆ?ZÏ?Â`@AFC@,ª'?nÚ;?i·? &ê?Ò?÷nœ?î [?úlÒ?õ—?À- ?§a?¯É°?³ñ(?“ÁU?pæ5?C>ð°?'í3?5)?’X8>[S=Ø´@ºê@ì:?Ž%Í?o«7?¤p@?³‘î?‚Þ)?CF?¨7Ç?òe?¤Ü´>Ju†?“?ñ$Ä?ó~_?&?Šo?p8Æ?mó?n§Q?s©?žœS?²„?²|?±ðn?Óáù@ Æ@ §?ð2Ü?Ü`? N??8/H?.?Xú|?ld?sŽG?oZe?«/Ä?öÕ´?ó5?Ò«•?È ?Cd?™Ï@ç±@Z @@P¹?äcøl?  ?îxÙ?ñà?«?¯?ŸÖî?Æí?Û•‚?¿Øž?¯ï4@ 0 @O(@3?á?v¿Ž?Òñ?Ýă?ˆ/V?[~?ðü±@K?Â,A?Ë.?$˜˜?J“Š?g#Â?I ?*ÿ—@yˆ@-“Ï@Ê?áJ@ÿ@+ýö@ Ú??¤Þ7?±„x@ èg@ h?y½V?fЯ?]?K|H?€|?žåI?¬Q¨?¹I??º[Ÿ?ä+3?ÜOD?Iíj?1º?l/?Žðî@ ]X@*¾ç?Ò@G>—¯>Éy?!sÎ?éJ?ãa\?æuR?;Z?™¤? '?ª®?¡®2?ùy½?·àÔ>æçò?»Í?ž§ ?£Ü?Õ¼?ä=b@çW@ dÏ?ì@ä?̦?²Gÿ?gØß?iû?zwÚ?ˆã@^m@_x?”·¼?hÂó?¿|?Û8D?Ø›?Ù™?Ê‹W?ÂÄ­?à ã?˜¼9?¤‘@5ÿ@â>‡oÝ<­ñw?½å ?ëÐœ?§ük?Švj?ÖÙ@Q?Ö^K?›øW?†·ð?9› ?>[ž?³ ?§V?{ì?«Ð?ÔF?¾ú ?¿+—?Õî ?ˆl­?rS5?5>ó1á?Kx!?`®_?.ö;?$º›>Å&V>‚“à?•À¥?åÄ?ÈdÿOØ>¸:t?aJ?B,è?`¦º?}L?— >f°?-UJ?|Õ?#†?Ë ?,ñ?”J?ù?a-¾¢?öZ?Ü_?gÓW?ma>ÛñB>È =>庢?Ûš=±–=•G©>ŠÊ>dl–>–÷>Ʋ§? ]µ?•U?”œO=Š°{=½x>u8c?ç®@YY@@ŽAR>¾b¨>´zß?ÀŠ?ö>‘̃?Ñ/F@c?ì/²?c!?Z8Ç?0>êhr>h°ž>6ÜÍ?=FL?2?X^Ó>é0S>ïc%>÷¢1?XÞ?³ïw?·¬Ã> ¢´>RæÚ>ã?Œ«>Õ’>SÅ…?R;?cøõ?Q‹Ð?H?Ó?9•ä>aÞ>%X?á–?ò-ë?Ž¹™?u-?u{›?uÞ?>å£?&$?€ìq?®*P?^Ï>ŠH©>¾ÿ>øšO?s0¡?ênœ?É4?hÙ?\Iö?“‘?Ú+?r{¨?n¥¯?{j4?oWê>ûéE?¥™?|a’?}”?›Á?žÃm?3B?ÍÉ?'F_?3¶=4xU?G÷!?eQ¤?S.>üðW?pØ?N‰>?ƒ=À‰[?FùY?[Â? lA??Oæç?L +F?“O°?”pª?Á©?Ã>?sÚ?`§'?P81?WÌK>=µP=ÑÇ>áeý?ád@ç@TÊ?ã '?ÍÖ«?[Ÿ?6à‚=£â?‘Î?ž ‰?›>u?˜pQ>Àõ'>ŠTm@ ©@`ó?ØuÒ?Φ|?!ó?yy>ù»Ú>ðŠ:?sPU?nBû?áó?…U?· è?¬X´?Õ<9?å¶-?á8?Òº ?žá?* f?“@¸?¢]?ß1¹?½•/<÷ =ù ã>ÆZƒ?Àñ?@—@_0@2?s“ž?1Š?â? -g?(‘5?<k?TÅ?Z©±?xßV?Q†>óv?wB?R•Æ?WÌÝ?\þ>?5ƒa?‡)?å?)Pø?­ðß@•Ÿ@c©@þ4?¹[?‚¡à?èr@¯K@ +Œ}@ë?¬ëQ?‚´Y?m=ò?kÄ•?AÇ?;³¥?GrŒ?K_ß?=˜?3Ö? +ž÷>å¡Ç?ª?§ìC?Ë Z?ÍÜ>3]4?¯Ëœ?ÁR?*?Çp@9?@ \K>Ñe>ÇH>½Œý>ÂF ?*(^?'³…?rmÔ?‰%?ÄÞo?°”U?a õ?r?šl?ˆîT?Ÿ%?:²Ë?ƒyê?7í[?‚>°*:>ˆV?{y?ªF?Ê_?ÚZÑ?©N?•n÷?\¯³?R»X?î Ã@¶?½–Ò?¹å„?&œ÷?–~?õeÏ?ör@‡c@[‰?Bœ?0ý«?£J¨?›92?ƒðf?‚ã‚?m?³?XH¸?B H?…÷\?îÌu?ìfz?Ñ̸?›&Ê?I?G–Ó?”ÿ9?Q—>×(>—cb=ù¦ƒ?û¤?‡¸?«5î?Âþ?e¯û?Ð`?ƒÉr?¤–$?˜„?“£×?DF?+à?Øí'?ðÀš@ž@g?€ª?Ÿc@cÎ@m—?TQ†?g‡*?ÇIå?¼Ù? ]ã?zß)@Gqc@.£¼?­U?–=ø?0„?m³?Æ›Ú@ Õ@G:N@Ú?´ÿ? ¶?’â?“C>e²?7{n?„î(?.?õˆ?•k)?«-?£jj?˜=ã?†“?… +Ø?–<²?œ?·@@Gü?£Nü?œs?… ‹?c-Ø=Kl>ê‚<@3ã?äUÜ?‚7v?½EÑ@ÑE?ú"^?°iT?ÆÉ?è©@a@zq@#BÔ@/Æ@uá@µ?æs?Ç“³?—æ¡?Žf@,;X@D¨˜?·}ò?ŸÎ[?ãQÍ?êÚ…? ˆ?¢y8?ø<.@:p@C$@8:@S&?ãñ¦?…`å?ØÑÁ@C½ñ@) ¸?ýÕ?ÆüH?…d?µé?ßmr?»d†?ª¼Ø?ch?q’?ˆ¦?¨Þ?âIp?úXÈ?½þ?°±Õ@ »@+w'?¢å?Ž—4@kHù@k^)@&³9@&U@$¶•@`@Ó9@vø@)L4@&Š’@ +@@Á:?é+Â?©¿"@ @1ÝS@d$º@…AÑ@KI@-…W@”*R@­7É@Ãóh@ÎC@Ö*ê@Óy«@¢@šW @¸xØ@º‚u@Áž@ŪjA_@ÿƒ„@šR7@œJ"@¸¾Ï@Â/b@ßϱAè8A9ìôA>»®AKcA8NÐAÕcA0ŠäAS°AaéAp¬Aan!AVNàAy¿4A†0DA[=½AA‡LAHÞdAL©¸A>­A7,þA0σA/§û@Ï]@¸g @ô‹@ù‡øAJá3AL<ó@É©³@Çþ@–¡r@•”’@U½@h&@y‹@ˆh³@¡¡î@³-@é½@맰@øà}@غ¡@”tÓ@âû@°Å5@Ÿ"@ˆx'@‰:c@‡BÕ@ˆËå@Œ´í@c=Õ@5r5@F¹@OÐu?î¦?ŠØÂ@™ñ@J­2@@{î@7¦ó?Žñì? .@”;F@±ÃN@Os@19ô@/eŸ@0nÖ?ß:\?ÍN¦@wG@JÃ@6¨í@;B£@3›@W@{w@€¼²@¦G@¥ÙÙ@€,)@kúÏ?F/0?qkÎ@ +â0?ôcë?‰d?ÓÇ+@Z%õ@B£@­?÷µB?Ò@Ö—@r‡e@bí&@C´È@AÃŒ@;">@£?á»á?´°v?-q?†ÐÊ?ÛÁ?¥OË?*$#?xÇ…?°©ä?øÓo@-z@ ?¼D‡?¾p¼?À¢Ñ?¤|U?„˜U@}@B‹3@8Œ÷@*ãõ@º@Ï×?ÈHJ?YzC?ÒŽ~@¢æ@jÈ?ß¹’@$·@TèA@8 +?Û£b?Ÿøø?Vfê?ü@Õ@@C?Ý à?g?ej?4Ù?¦£Ê?¾?ÀW?Áá?€³È?ˆy?hm¾?–§Ì?<É>»pŠ?{—d?À£?ßXÉ?ö{›?Ť?¨W@'¿k@€/‘@Z5ï@,vf@òæ?ë=y?èß~?à<6?® Z?[Ä5?”„Ì?ÍQg?zÛ7=«=ñ?Žø?¿ss?Ãèß?Αf?Çœ ?¼ýØ?϶m?ÜÇV?ì…?“‹î?˜ö?Žç^?‡K}?@™?˜¾@+/I@)Ly@ +o†@ {ù@™'@Å÷?ý©—@ün@ß?@y%Ú?Á«?ó—?û²?ù‹@¦»@–ò@ª(;@¥Ö5?úú?ê.„?ç±o?å(­?Íþj?ÒŠÉ?¤×?¢á?åw÷?ï @£Ü@Ÿª?æ?º…w@’<@@ ÝÅ@?Ÿ@"½2@; ,?ðð°?‡j¢?b·c?9;Æ?•é ?ÙéÑ?­¿¢?MAì?g?‰µz?r2ƒ>ú +z?CÏ!?Ö³µ?à—x@ +V@@†@ Ï +@ =¶?Õ–¡?Ý6U?ƒåê?€µñ?µV™?»Óo?+R?½þ?Ðé?ìþ‘@(lW@:@H?Úª0?’¶?…ƒÇ?wø?wà&?wÈJ?ÍuS@÷@ 0Ú@Ï@Oç?÷6ñ?ê¨Ü?Áj?¾¦5?»å®?©ýÙ>-,è>°’V?Àñ?Õ~@zý@‚X ?麤?»ýM?ÖÁ[?çZ3?ò=-?ý +?ÒBÅ?©7H?·`U?Áqg?ä8@s@¯@"ä@-P@ò°@eÂ@+˜~@ ½—?#DM?.ƒÉ?’ëT?‘N[?z9?s¢H?B׈?6q?‰ØI?•Žý?*©´>¦mà?—ó\@i@jh?rŒV?[x>øø½?¯?­Yp?§hA?È‚b?Ï9ó@#÷Ö@+ÁI?јJ?ª;.?Ø€†?ñ$2?™7÷?̇>þ¾ >ªÆì>þQò?S}f?n#@ ‚>@ýÐ>üÍ ?i×?¢}]?©ï?°½g?³“ë?j]¢?#ïB?v&Ì?­>•?Œ +->îÀõ?“?n‡ó?„È@×@ —Ù?—×?‚|E?¦Zû?¯ +É?Ò4;?ãÓ?²³s?†ºé?¬† ?íT?ê©€?ê¦ÿ?ï>¾? c7>ó+?¤]??±,ä?”$H?„_?¹7è?éµS?Òz?¶®Y? ,?Aÿ¶?k†C?צÖ?Ô*Õ?×þ³?ì—ž?´'j?¨ Ó?¢_¶?“º?œ‡·?¯ ^Ï>œŽf?Œ¼s?™Í‡?¶Gú?®#S?¤XW?™ý[?5s>æµ#?–óÒ@ Ó?é4ô>æë>ó€#?K –?Txô?vŸÛ?jÖI?ɱÙ?îäÅ?µ] ?„>4?gÁ‰?&â?$#—>èž>ñUt?®Cœ?®[¨?y§i?hÄ?Äþk?é`@9@ (×?á‘?”K˜?œŸ?Šê»?vuû?Õ7_?åÍ?è?ëÕÔ?Ôà‡?Áfª?ôoa@)o?úNð?¹v0?Øñ +@ÈÇ?â4É=MAœ>ÆB;?ø·=?ロ?ã?î&Ê?oÊQ?K$‚?‚NÑ?‚Üý?jP>ó:=?M?p?Å->õ#H>ý=å>Û?mU+?©‰n?†^?g¬•?0Òx>ù‰a?5Kß?VBm?ŸFH?¾ì‚?m¥¾?,U…?f5i?~·w?}SÝ?€V?%@V?ÔÊ?72?Ÿl>¢þ>ªEF?Y×?6$ò<©Õ~>RÑ?«[®?Œë?b%¤?K…"?xð?P>»ï=•`-8“€>ãŸa?)b?–E&?MY>‰!7?ºú?4ê¬?¸±?Ù6Ý=¦=Ò´¥>Ûš>F™ò>¹Ã>Û¹>“ ?çÔ@"³Á@Su€=ë¹²=Êg`>žÐO?ŒöÕ?eB`?‡²q?ÊÞ ?ª6ƒ?bÿX?KiÕ>Å>Q>àDð>é)‹>æ‚é>ç*4>çÕ +>Ïç÷>Á¿?UT?på›?`{¬?ÒÞ?N©>Ïö>¸wš>«Ãö>Ÿ>’?Ô>…uç?@˜?|”è?[F9>ñ;B??r%+?cåi=ô>=ŒÚM?®2?¹OV>Òï> \«>=3c>q =>@n>,_º?ð­??5]>²¼>^| >ø’¸?i-Ö?ÉÄ ?ž‘À?g?1ÿ@Ó†@å ?zæ*?U­†>&¤>}Â>ûè +>ó¸>·½>Ù·&?8ß?@ª”?',? ƒ>-ÆN>OC>¹%I>–¬n=¤¨Ë=Nɹ=R„Ø<:0¢>õLk? QÌ?œ X?œo?Ùˆp?ܽ?nÎÂ?POà?g¤?x w?Õo™?ä1?Ý3?çØÆ?Q6A?!ŠÇ>†W¾>)‰]>éA“?ÓÅ?lš?1ë?-¶¬?9ÑÊ?À³P?ΕD?‰Q·?4v?4€”? ×>¡2>Š #?vì7?ˆ~Â?Ž7Â?“ì,?7Q?=F?ÜÕÌ?ÚAD@ +‡{@ î?}Z3?ƒ\Ó?ü—î?ò2À?ºàý?µ Ð?ã„?€jâ?s—‰?xzÏ?ü?9µ?3›?;¿ç>í.>ÞC?¼? êž?8ÿã?/™ö>¡D°>Çs?d#&?nÝa?y™Õ?ƒA¨?Ì¥?•)?‚OÇ?iÓ?8dK? jS>V>ôPã?‚g§?oÝ¡?JF*?D;`?G€X?\þ÷?h‹€?3ÚÒ?Y>âšs>ÈY…?d%°?¯Ä}?ÐÚB?ñ‹o?“û?ã’? ¸%? ïñ?3d?X‹ ?lÕÖ?€–?„Ü}?‚´¦?(jó?»@?Fì?NÁ¯>¿Mi>²Å?…·¶?›K?˜<û?74?Y z?=(?ÇC'?ß@5>œ'=á“|< ˜Ó<‘t¡?…\?Œ¬?ÔKÙ?×åÖ?ªÎ?¢9¤?bœq?u'?Øó?ňF?OQ'?h”D?à»?¬u=>ãßp?8ÛÂ?Ün?¥>02>¥Z?;±)?2-’?(«1?Œô[?øÅÞ?ær?Ãk³?\"=ªœ?S¿a?Ï=?”_{?>/?p½>¸ð×>°G>Á}E?*ª˜?MA6>â‡h>€ØÍ?JªÖ?ƒ’¸?–?°?šƒA?‹j‚?Ž«©?FF>Ú2?˳F?ìg`>rkí= jó@6#–@Ckž@Ù»@¤4?@¼â?]›?­c…? ·r?Gˆ?u1 +?Ý!˜?̸?ì?¤²Z?¬yê?¥£Ì?£!?ÅÀ£@ +±b?ÚïS?[¡§?€O2?£…Í?2óH>å/û?g.×?£~?Æb¥?ž=g?…ƒç?««k?»°?UlŒ?ÌÎ?Ÿc˜?·ç½?€‰=?br?;“?‰?m?(L‹?(áÒ?~? Iº@Hgƒ@B#à?:‹Í?F”/?œmœ?¦¢ù@¨?ð5k?’Y·?SDÞ?V™?öY?ÿôD@Ýr@„ë@ mÐ@['@TÉ?Ú„à?¹Û¸?†‚?BW.?nw?„í¬?+?õ?… g?ŸÄì?ø}9@>è?¯až?Ÿ«p>ÃËé>²V$@³e@'?êØx?ç›ê?§x?”â?.¬—?èg?)S? ¶@"ãÖ@"[\@&þ@Òu?ÿO@?Ë `?”½—?Ôxš@Bm@³W@2³é?þÄÅ?ÇíÖ?ªÄÄ?¥ob?d³ó?@Ã?ÁVI?Ø—v?#Èþ?Vf?‚é}?ˆÂ@[Æ@—I?¬µÎ?°›Õ?ú:_?æ¢P?†ªy?ÍúÚ@@‹ @,TN@ |ª@‡Ê@ †q?Ñ|¹?&ç˜?´y’@d“?úÂÅ?çÒV?¥[&?…dQ?¶Àe?Æ©ƒ?wp’?R*d?–ô?` ?ʸ?Èê@D9Ç@EAd?­°8?À7@+"Ô@%’!@ ç¯@;Å@"Û@—!@d¢Ó@1/? Ql?¼xÃ?â“O?èR²?çR"@ í@&—m@`;2@…AÖ@VÄ@1,@« Õ@ÏÁ+@ªÒS@Ÿ¢É@øgÖA`Ö@Ê•8@½ìí@ÞA^@ÝfÕ@Èpr@Æ=AôAãÆ@úi–@ôjÂ@פÖ@äÿÃA +ŒàA +TiA ˜óAÿrAUA913AnÀAbÊ.AW¯?AWrCAWÝA.ƒèA°ArwÿA˜Œ¨A‚oçAm+¶AiAóAeSÊAg(—AjêßA4¹ØA*©@ñ@ÝqõAn3AµzA‹˜AûÌA+3’A"ð@±@µm@ÙåL@ÓhQ@̶²@Ò?®@ïøz@ëà˜@èãN@ñ¥@þìî@ÜN‘@¤ýR@˜§Z@†@8Ò@sh8@Œí@¡¶@‰€ƒ@fß@r:@|¢@ŠµK@’zJ@Sî_@'¢ê@%‰„@%¢ ?òáú?Ø„?ÿ|A@3ã•@9:h@§Ð@[u@hs“@f²@ž"@­?øaœ@±è@DD_@FBG@5•@,(Þ?ß3Ê?è€w@4b@//@|®a@[ËV?ƒ) ?¡²Ç@ ÷ @ +i @¬’@U?÷š#@B@myb@gü­@Y@:†F@`Ç?ÒuÞ?@é?’’Ž?à×Ê@¦+@'¥{@ xX?¿§g@ +ž@B¨;@O,t@cx§@ÿ5?w?‹›I?‡_@°¶@|„<@0¦Ô?×}@Bå½@‰\¤@Fr?@ŽG@&É@®Á@!NH@)Vú?îõ?ž–¼?ÃÀ?æ‰ß?ÙPh?Ͷ?Ȳ?Á«1?Ì0æ?ÒÃo?¤Žw?€÷ ?È@ßà?´Pw?sjç?:ƒ?›¤?èCÝ@1â¾@>Æ?ëîÞ?Øßo?Ä7u?¾ç¡?À£@ D@4Sÿ@QÖ?£mç@Ñ@4:@W‹â@yp½@›š?€fd?Ì‚3@bœ@¯@ôÓ@<ù@#´@rS@ÝF?ï¹Ã?‚/·?ÈÖÌ@6R@1Á3@[&J@?ŽR@ì‹?ùy?”«?ˆ–?JRv?.í >ölÔ?«*?%•?X=Õ?à¦ø?á[‡?Æ‘”?ÐW3?âm8?â“=?Æï=?Êö?ýWB@œ@<¦Á@6¤?þ(?ÉtU@xS @~NÍ?L¥?áX?Ê#|?ÔM;?†ä’?|D®?Ôz?Ö|·@ ×@*!x@žî?å¦@?Ã@%†·@/@óQ@œ½@ˆf@6õ@Ô?ó£«?·sÄ?°ó×?¨’¬@ç3@U­÷@60­@ +P;@ðÇ?û&Ó?îg¨?ᜅ?Ð}¨?Â×?ܶ\@"ƒ@']æ@!C-@6½?]|o?Ig?ÁÎk?¿(°?Ü?{k@=$³@G'?£Þ?@—Õ?Å +Ÿ?ì£?øv?ôµ+?ÕôØ?ÁÑ„?¼vÚ?·°?ÂÿÓ?ᬕ@Qc@&°@_š?Îg¹?ÛZÁ?î˪?ò(a?öÖT?êÎÉ?l+B?^† >@—n>€Îô@—´@#{ª@9à2@5)½@,ܧ@$‘Å?Î.X?—¢'? ÔÉ?¯sz?áj@ ‚Y@Ìc?ô÷Á?Êž¨?g ñ?ž#l@^¹@ V?(Þ??N?Õ6Ø?̤Û?ˆ?Œ¹4?žÕ?žôM>q”¦?®„»@¢Z?–øï>˜ªŽ? îk?r¨?~Ãq?ˆ%?ƒ­‚?~÷8?p³Š?zˆÝ?€(Á?"·Ñ?-Á?†œÆ?›4t?öõK@7Œ?áIÏ?Ó¸È?i ž>;û>›‡>ÏüT?U­@ ??þ¥Ú?!Qi? ç†?²-?¬3 ?á×µ?å«[@÷•@w—?ZjB>3ö?8É6?™28?…ç·?ZÉ5?Lô?Ix,?}£I@C¦ú@N¯Ù@$Bê@*Ÿà?Õ(?²K1?”Áò?Š¢H?Wz?k¥?‡®3?í +?ÚÂ{?”9?‘JÍ?š3¹?h8?¾‰?¾}™?à?ì—?‰¢»>õ‚]?cs6?°°Ð?ƒÁU=Ñš >±\x@ ´@EŒ@ @ŸJ?±Ñ?‘¯ +?®'?̳S?Ç£“?·„6?ÏÖ…@°l@ \˜?À?¨?Ê»W>ÿ¥¼?´p?½ˆò?ÒA?–%ö?i ?®?×ñï?ÒØ?ÛRè?ßÊ@$Ì@ ‘¯?“)ù?…aš?[è)?Q_³?ƒq¸?š?æô@JÒ|@Bµ?ñ³æ?ù*Z?¦x.?¡¾?žÔs?£“£?^ñœ? Y?'j?’„?C†à?Å¿Ö?äÚ@sâ@C%?„.?žù?ˆ¿?À¤9?¼Ïp?¨D¾?À\ @Ó@Ð?¹g3?»ž@$ ù@2ËÈ@B?üo4?Ÿþ>H>²éª>žoé>vº¨@H38@Fÿ?¦Jë?{_I?\’¶?@çÖ?F ?aM?OH>æé¦>üPt?YÑ?6¶Ø?ÕÌ?æ>ª?æ *?çsŒ?Øut?ÄÔ˜?™ U?2éj?)ç? Ó‚?NÍ?®Cä?®[=?x­+?hÉÃ>Äef>‘NÈ?µ³@èV?öÕ?¯`!?¯„É?¯­°?¡ò=¯qš=B:T:¬`#=¨·°?šÕÜ?½¢?ÞœP?ìfô?¹Ž¨?žX?Šî÷?7.©?"¿µ?)¿?Àà?a=D?ZD?¡ÑP?°­?ê?–ŠÞ?œ7°?¡íf?Ë(ã?Æ]›?/]½>óC»>(_=Ê '>¾Äì>õ/è?#V?BoÛ?fZà?wC»?Ÿx=§µ? Ó?j·?8xÝ?%B?GvŠ?€È ?9±>¯?Hè?‹ ²>¬=›I$?3-u?^/‚?$?¨>Þ\½>¦}{?ì¤Ä?öx˜? Û?„?½c?‹ÊÄ?Xà¡?/òO?†?§?ËJZ?»+~Î?^¾©?]Ðj?®q?+¼ã?tõ¹?ÝLÀ@ Ê?Jb>Ç>ç=É,˜=f>>ÃÉØ?ò4.@ Ÿ@"ú1>åóq>\Õ›?‰Æ\?[ã?£å?Ö?Ìft?¾òk?‘ +…>ßi>ægÁ?~¼?~õ>‡l¤>ãì ?¯«Ç?§¼S?dب?^Ù+>ôbÃ>í|>í¦ç>î-Y?%¿Ü?:WÎ?Û>ð6‘>ð°¨>ñ+Î? ©Œ?Uß8?\Á†?c§?j ?>õ?G?`5=i¡?mcÔ?‹Oh?ÞZ?pß{?@0?3ŠÞ?`ê>ÜXW>¯ª}>£—v?UÖ.?Ì\?¹¾m?…‡ñ?7€“>Â$¤?¸"T?›ÙL>Ò Í>íô ?Z´ö?:Ój=.á>üÖ0?H?T$?dø¼>ý®•>þ»ê?žÊ%?¥R´?¼—? „/?zX ?~ ú?yª?sñ?‡Ix?‹/?]‡¡?j”?1d?/¯ø>‚Ú¡>nEÒ?Í‹ ?ÜÿÙ?Lñb?-š?Ÿd°?¡êz?UÖ?VU?RC? +µ¯=›ù;<•&y>í±S?ç?% ï?3å,?"³á?&#x?+ñ6?1½Á>sš/>o£1>ƒ@>Žª1?kR?‚ò>§xq>Ž @‘Ø@’­>ºÈ>‡\0? ;H?›u?ÄÂ?»K¸>7¥>Ö|”@Ÿ…?þÜC?ðÐ>î5}>AoG>9ê=þ¤?HJª?T +˜?d!7?5€e>Ýi?x¿?Þ¾ÿ?­«À>…ëß> +¨?4?ÿ_&?ÔP?‚PÚ?‘/ô?©?stb>ºÕ³?UU?‚h7?‚k'?‚p“?Jÿ¡?v/?Gìd? +&?@ P>²S¶>}ôÅ=øO>ÂËQ?O:>Žmð=(+y?šPš@`h?‡Õú?£p?¥Ö?©=>m9=÷Î?îh?+®Æ> î>L5P?€|Ä?¡L!>…%‡?¸±î?Ý_?‘9?z?æ?œ±?¦`¢>Q“d= Ko?¤W•?µR?U—?Ï‹?€4¥?wÍ!?!3P?*üH?4¾}?P w?³9Ø?©Ãm?„;?y&5>Ø +þ? c“?¤Ó?›@?ƒ"ø?‰Õy?¥ß?Žº#?0Y?d³2?ÓcO?Èy?»Â?Ž­? ]O?=ô˜?ƒ8Œ?¼3?ó)œ?Ø ?Å:?·Îü?¨w@?‘x>ø–¯>„_Ä?&‚´?O?¯éÂ?Åi`>Þ$»>åt?Òå6?ù=?.ë$?´_?¹I?½8?xîš?„O? Æ?+B?·€ç?´—?ÅË!?Â$`?¥@±?™ï?€–Ù?z¦²?6Ý@?”>ì@2?öÁi?‡)ª?ŽÅ?j¹ã?„â?¯Ê¢?‰Õ¥>*ùš?_{,? *?œÞ±?„€d?Û­š@¼à@Lk@@ýd?ú¢j?_Ö`?)¾4?Y©?Z¬0?Ÿl1?š‘>ô0¼?o(?Ë…D?Óg²?»¡?Æþ‚@=y@x?äe?Øñ½?ªŸà?ƒ©>Uú> +±>;é>‚•.?‡‰?à ?&1?¯¨@×|?ä}S?ÇN`?½á»?¶ +Í?ÓKÁ?Þm +?W d?ô"?|§M?Šnc?O™?Qˆñ?¾ÔI?ÇŽ?!Bñ? hA?àåo?߬™?•YN?©ò³@ vg@D@#ü?Üå:?8.?_U?Ëj)?æ¹ê@JS@0@7¤?®ã”?#õ?ý?«Ëˆ?Øêe?÷*²?½@š?¡Em?n?Ië?±I¡?Á=é?¼è4?¸?Œ›?‚©?ª?«C$@ZÑ@  @BÒa@*04?Â(?TÓ??Ï!Š?É‚¸?Ñ’=?éTÙ@cc@|Š@ N¼?²bß?c¯?âž@3˜î@8V>@;­Ô?¡Uª>é³?¹?@5ë@:~@Bߢ@.Ù)?ÇR@‹>@Jö@0h¢?ùÕ÷?Ì•9?’ˆ?ûÓì@6èW@-hž@&–Ø@"J@$í@dÛœ@ƒF@¡±Ü@° N@¢+ƒ@œÚ”@ÎF÷@ØgP@ÊÝo@ÎVA TkA ¨šA.¶-A,;½A +.YA ñÍAsöA +E¢A%“-A é¢@b°Ü@ªÜºAHòAïA&eA'‘ÒA.½§AJ6§AeôAC_A%÷½A'ó;A%%8Az³¥A–™ùA6ApY¼A‰‡A»ýAPQA=‹@”©x@“óÁ@‘7<@“³@–ÿ/@â·@ˆi’@n6z@VNJ@EŠ@9™@eE,@Êu@z6Ž@ql@ibB@e¾@1Š@Å©@cЕ@rãu@šY@ Ê—?„ÚÄ>âp?ïÌ.@i~@‡ô@eõ@Yî @c-ñ@ÄÀ@d—?žK>?äO?Â4w?Øê@@Î8@Bê@1¥Š@(ÔŒ@òE@×@¤@?ÆÔÂ?ÑÙb@Á¿?öŠÊ?Ì´Ó?ÎÝ/?ÑK?ÒŸ‹?Ú!W?åß?ð$/@fš@èº@ ¿*@ÅP@xá@/.-@'0Î@$)–@že@ ¨Â@@ïE@Æi@d6@?Bx@'ƒG@¶ï@9i@HŽ?ã-?Ëê,@>a@Ê +@ +«­@®?·%m?]cµ?¡®/?Ь¾@1°d@j†@ fâ?SC?“¾ +? –•?Ž;š?-ä?³°?×êa?ØΨ?Þ±?¢½ó?g®›?ÊÇS@'?Š@">_¤–?»…õ@ÑÃ@™@?@â@’¼?äÐÏ?σ?x H>èJ+?v²?·î?…uÝ?+TÝ?¡Ì@‡š@-u]@MK®?Ùè>,ò=?qâÕ?áÕ³?ðîì?ý2§?ù ³?ÿ˜Ý?ÏØ?‹a?‚*a?Dm?´Ë3@þ(@2׿@~óÛ@S•Ó@‰–?к‚?)K“?ǘâ@W<@‚™>@-?*>?RT?µJ¼?“”ž>ýÓ?!}‹?š¼‘?¤Oõ?ô]?÷h?ýV/?ìŽý?ØO?$TÒ?„.E? O@]@n@]+N?ý?µY™?¼x7?½Sº?ƒÛ?|D˜@Ä @;@>Ú@ °6@ß>@¯6?à—Ü?Ìh@ï°@Ŭ?éåÑ?Â0k?—¸þ?{¾Ä?=Á©?q•?õöÿ@Hc@×?Ô}°?ùáÓ@í@ #õ@Ã@ Ç@³ä@ ði?´]Ž?¯7½?ª"?§ø¹?»!)?ÆD@(q@$øã?ù'¾?ùÉ?¿s?¹ã?ÆùJ?Òb?±mí?£ð³?V­+?> ?ô™C@?áE!?±ßs?·ê?¼Oâ?aÖd>CHö?RŒ€?äXR?®ld>÷:¯?JÔó?ÒP?ÑîÙ?óä ?üE/@Z +@ÿ6@!/»@(†÷?úc’?üH@MÔ@dè?ø@Ç?›HÁ?f )?)`þ?8BÅ?A±ë?œ×?ôù³?½Áø?¼1>àÁ=%³_>Ä}õ@aZ@Ÿ?Áo%?Ä2&?&x?“â?éû ?ÿ„C?¢¼±?tòƒ?J”P?A‡…?^_–?rý¶?€',?†—?Ÿ?Üy¼@â$@5ÁÄ@#v.?¦ú?~L>ò:>ñËŠ>ñ±¿>ñ™@rC@5@J?ïu×?œ^è?&õt?Sa?’(l?”k8?“)?®ÿq@«@z¡?rÌ?wü¡?µ?½÷?ƒøc?zÄ?ÚŠ>”àÃ?Pœ…?±î?µ*Ë?³ÿ?¯è?—ä?„Ž¾?>Çd?+œ•=ä#Ã=ç<š=A=µü?n÷1?§å€?ãy/@;Á?úµ?í ¼?Ë +‰?2¬?Kƒ™?9û?‰Øê?ÔÆ?ßD€?Í`€?ÒÊe@Éû@a÷?Ô²:?yÍ?lìL?5v"?O¡Â?ÿ`3@WÍ?Ú®â?ó¥N@_ö@Ÿ@?ÃII?ƒ›9?¢v?ÓΓ?À-Â?j’¶?{½?¯Pù?¯A>Ùù>¦´E?Ø0(@ l?«bþ?2]Š?˜Å ?ú܉?é©?”ÈE?œ‡Ç?›gf?À»?7{>ûºi>ò‡>èS?+©?góÔ?—¦U?ûZ3@Æá?óº€?èYæ?yÿé?gsp?)Áq?øÚ?¶JO@ ™?Ó?e?R@K?Jx?B¡J?:Ì4?ùæ@]³?–*Q?fÁÂ?6À? Hp?w„?V¼ñ?eÎW?z—?‰fV?Ú”?× ƒ@M@'ºû?ÿøØ?Ù1?šjP>‹|y?W?æ‰å?çõ™@Ç@Ø??¼¤?f¨>õEò>ž6¿?_þú?®å`?ƒd>æë>? k@‰ª@þ?®÷²?®?س?çrÿ? •?bq?rR?gß-?Sàö?‹o?*s#?¢?¦Ð?‚È?hý=?W¯^?@‡Ë?'ªx?D¢ª?™™?Ì?ÂN!?¯°A?¦´f?£w? "°=?‘ |?°è¯?‡Ô?‚ßk?Ó ?†}Æ?›üº?ÁI?³ã?©®…?ˆÃÄ=–µ„>ž^8?¤bí?~?pY:?pÀÊ?Dvù?MÜî@O{@Ÿ\?š!?m¬Ô>^­û?Ea?B$ü? v>ö@à?I£J?wP?¼ë‘?ôPA?¬˜?y¤ ?/ÇN>úÖd>¶XX>i}q>ù£? ’X?¬Ç÷?ñ—g?t•y>åðµ>‰'¥>œa&?t¸?€ÿ²?)÷?9e?µ'Ù?¿jÇ?Ä:?»šÃ?¹úû?¦vì?…?Qþ?’¿?ˆ(â?¿ÅÖ?•g?È•ý? ê>Üe“? +?'?„?XÄÃ?6Ë? Ž²? +?+)?ˆæ´?@Û4?aâ@†à„@Zµ¨@7*÷>P=?>ú¦?£í£?g™ ?Ûç@¨?´•‚?]W??WŸ²?h>í6?Z”?N ?^æG?g¡·>ǧa>øÜŸ?¬VK?åº=R\=Ö°>ì]‡>í´>=„Ý>Hñ>›5+>ÓVÁ?6X~?cþ”?DüŒ?!²,?-€ ?MÕî?1‡š>òîR>óX‹>óÈÂ>ô3Œ? )É?žE„>ÙÖÈ>³†Ü?-µ?PøñÒÔ>^{é>ù+ã?]–?»Rr?{K>Ž&?`¨?hjã>ûey? Ö?íˆ?t>¡_*> ë2>üÓæ?hÂ?(ˆ¾?&Ó?*ÈQ?!®’>¾™À>Ììq?WM%?cä?ƒó?€G*?&x?Rø>(¦ù>9VU>ùá+>ÿð/? Ö?¤>"Ç>Š ?vB?Ž\?U—F?S™w?ÑÅ'?ß—É>i½Ì=¯š?;õ?>ì?o¶?~“?À(? +(=Å«å=ÇÀ)?Ì>Å?Ë­d?˜ëà?‘òH<³JÑ9`:P>ÿÂ>è%Y>˜d¦>¬ÓÛ?–_}?þª? 8?ò@ïN@ !?»é?€d“? û?Dz?f5 ?fÈ?¨ž??¢í?ò^? .?$ZÙ? #Ê>Žà>œ_¯?x?.+?ª`È?“ŸÈ?':?âç@ºí@ø?ûÊ?²ÊØ<Ôèé>®h?†äÉ?fî³?‡$>ì\>š³¿?[T?`oÒ?"kO>»Nä? +ýÎ?;»d?O°>‡w>ÊЛ?~N>­K3>(Ä?¯Ì?Aýt?søq?I ?=RÀ?—½?š&?‚?Æ?£û?¦Y?©„?;y"?Ië?×™?›Òû?…gÎ?qG•?~5A?‚ÀÜ?PÁ?5Z|?»Ñ?Ó?¯¸R?´‚'?cA?Ûù?ßc?á ??®?x$?Ž?w¢É?„?áè"?ÄI›>ʺi>Ï’¸>-õ >[ß>›ÒJ>¿?<}?IÔz?K™¢?#£¾>DX–>Ég¾?R?s?ŒÞ?Ùvi?²7‰?]ŽÙ?m\?{˜T?D =?©?£ØŠ@W?ãå?Å?S*P>¦aè?¨K?<— ?Èi@w«?o˾>ߘ?©@?“?^)/?u…ô?´¼7?Åg?Ta3?*•?§Ÿí?¶êœ?j¾>߈¹>è˼>ò +,;úö=Bpb?ÁŸ{?µË?Z{?'Œ*?0½»?9ì¼?C?Pºœ?_ê?EÈm?÷O?nNö@‚?¹ûy>ˆ=Y>†Ä >[lß>îPæ?Zli?±§Á?òr?ߣM?ÞÂë?p[¿>`œï?)}c?~Ë?±=?Ç ¾?^z? M6@PŒ@%t7?¿H?Ÿ®/?¦W´?¢f¹?<È?1©L?‰Ê ?“¤h?¹ºý?®ûº?ÄM[?¹¬Œ?´ü ?ÇM@'?òÎ?—Õ™?„Ä?"1—?7¸P?tÇ7?—QÊ?Ç m?’¢V? +±Æ?~ê?À8e?†J‡?4Z{?5&?61@ÁD@.;@Ø3@ë·?µ6?”RÙ?Û°P?ì7>ø¯E>€œÑ?‚b +? ?v«’?‚´ù?šF?œkS?Ǥ9?ÍV?ñS-?ûÕe@ .‡@ Êq@)?ïè? +K„?vîå?Íeh?é³Ç@6 ?À?mÒÞ?ïtƒ@"„~?ó±y?ÇèÝ?¶nt?¬‡®?ª]š?¨1Ž@ ™@–ô?õqŠ?ðnQ?Å’?É +W?Ï”?Ø1?ÁY¨@X@eÜh@I»5@”@K>@#H¹?á÷À?HÆ4?¤ÂŒ?Üo?ì¡5@ß+@ Ë@2Ùi?û‘?¾Í©?Ž?„h@Ü +@*‘r?ð3?è®(@VÈ’@^øØ?ùÊP?ú/Ë?üWâ?ñÝõ?p,?¦+§@ ×?ñd7?†Í +?ˆ‡?“>Ö?Ãv@QV@ Ë&@xË@+úK@Gïð@Çl?ñ`@'F@ ˆ@~!Æ@™Ù4@½&@sÞ@šÿ]@ŸV @¨@­Út@‰iÆ@Ü›@æ0Y@ê1¶A)£áA&õ@òù@îÀµ@ã='@çÙA±AÒK@ÿ+mAµñA]å¡AMš}A5.úAI¾5AcGÜAlwAyZeAZ$A<èA>M\AAñZAƒÔxA˜ÚA†gýAzqA’ªA˜™·Ai-AW“ªA>¿WA=4A¦}A >)A½0@ÿ´^@Ûy@Ûx°ARÒA€î@â;ÜAh¢AcøHAJ9@@Í–Â@ôXtA2˜YA3¼òA7ȸA"%Î@ýŠ@ôò@ÙÌt@ø=–A±P@ðcö@Â{?@²Gî@¥Y@YÝð@Ÿ @Vd?ú÷c@9l@V—ž@±²„@Ô_@²TÆ@¤Ì@3b6@BÌ@'¨¬@2Þù@Ï@ŠÉ@:ï–@%ÿÙ@/?@ ˜#?øƒþ?û@Nf@€s@Hœ@Üâ?†÷?É3?`$?n +?×qe?ñÑ@VÖ\@J?ûà†@Pœ@nA@Šþñ@f @@RÎâ@!’:@/:@T_@0<Ã?Ãê‘?¯Xº?‚Œ;?°‰:@û@ ‡@@=R@1³§@R¢ú@Z²@cûp@+¶M?¶/ ?ÃÇþ?غ@?÷ŽÄ@‡R?Öol?f˜¼?Ô2ù@"eæ@œô?Æb?¤?ƒ-ž@²|@?¡¯@7??øð ?r‚q=í,ô?›¶ +@á@%Ý-@E{Î@ ‘?¥­Ÿ?¡Èº?¢£? œ?KØñ?À2ž@Ù?Ã~c?“,\?{Á?RqK?×n/@`@;¼9@XŠr@'¦ê@c@5H‚@Ydö@6a@×@¨[?ò©ú?¹ß¯?‡Ù ?jç@?Q ª?Y†Ð?Xd?ûW@@H%@36O@*Ñ·@Ço?®$y?ÁÁ½?éÑ@+¬@fg/@6¦?÷˜ó@Ò`@Bâå@+³?½«³?×fj?ÿ"L?ø˜Ë?÷%É?íó+?ÎÿŠ?½¤C?•¹`?»Î¿@ê?ùFã?Hí¨?qÄ?¾I?Ô[°@±ê?üpÛ?KQh?kó~?ÒÌ?ÓL‹?´©?¿HÖ?ø´ù?ûJ™?û…a?ø_®@”@ÒÏ@BÁý@Cä™?[ïÕ?gZ•@¢¹@cœ?LÒ?4­i?3mð?A2?©‘¤?±É'?Ìm|?ÑÉ´@6@ ÅÉ@ ? +@¸µ?ëñL?ã6N?©º?}" ?ãË@T#?ÞÝ=?«¹à?ÊwÇ?Ýü?Á–?£ãÙ?½òO?áÓå?ò«Ê@ Œ&?ùþÌ?¦?Ôð5@5Ñ@$æ?»!ì?ЕÚ@`já@\þ¢?ù(½?ùÜ?óð?÷ÊV?ÀÝ7?º‡?ºxÝ?ºfñ?¥{?™§ ?Ê „?å=+?j¤˜>Öm¥?a\¼?™Ã~?q± ?,ÞÕ?jþø?¦_Ù?”U‘?N“?ž‡@(eg@õ?¹"ø?²°?‚¬+?K¶?צ?Ì5@bÝ@!ÞX?ßö>?Ëc@†È@#TP?ÐL†?—»—?k½?Fž?šà^?ɱs?Ûí?ôú²?ã4?¾-†?Ú@Ȉ@ ~Â?ÀÏ?ÂcÌ?„h\?‡3Ñ?M>ó×d@(»@<£½?ùôJ?ÔÕ½?•Û?\Ã|?|l?Œyè?š?¶S?“è?u?‡´Ú@5 <@*çù?¬Õ@?¦­Ò?]Wï?WN?ì”>ñš?’ñ•?ºþ?ôœ"@"î?²w7?B°7?VÌ"?^š?0çŒ>¯i>ÀN?yäì?nú9>ô½Ú?dv?©©é?³Å»?te?NK?±(Ó?ÏÝí?ŒŒ ?1‹u?yD ?³¼?Þ*L@2è@+PI?Öèí?Ý2ú?ræ?~ÆI? R>Ý}Ê?¡£? Å\?œæ›?äáÿ?ûy7@ky?× >i¬›>U´?È ‰?Ä¥w?£ðQ?¤‹”>îv†>,t?—^Ë?ìÔ ?¸p ?k–?ž•?ü¦F?öéŸ@¤c@àž?Icg?' 1?Ò[x?ûdt?¸Ò?“Î#?m»ì?*À?%Á|?l¥¶?jÚO?våï?}ØÛ?’¢«?ŒÅ=?™Qo?¥14?R2(>é}?v”|?Õë£?»;Ž?W=G?Zžt@xòÃ@€úY@09?Ø'?V]o>è?,/?gôÍ?Töâž?žº?‹ˆä?“Æ&?è50?þóª?kl§>‚Â}?M#3?µÊ`?²ÞÁ?ÞII?Þ\?g%?{÷Ô@Ê@Ûo?—?"ˆ?«–&@E'?Þ 4>æî? ºŒ?¸?Ð?³æÚ>:vg= Ø?ˆZ|?·ëS?¹¦X?­œK?pÌ?gÞò?^ul?#J?ÉT?~¹m?u‰@cÎ@Ư?zY? Á?K:3?a·©?´<Õ@P?þµ½?¯³N?­LŒ?ž¥¹?¨¦?®6?¡œI?„;|?„ñm?‡ñÎ?~%Œ?uR\?˜i?‘?íše?´d?>?/gƒ?¡0g?—T?³»"?°¸¹?paá?pÈ~?“"d?|œº?›_?ªÚ–?´\c?²Eö?œâñ?ˆ™ì?•Ö>Ø”?›ÚD?° +l?†å—?wZä?*ÎQ>ü1?Š(?°Yl?„Èd?L¹B?üh>ü.ò?°ð?@ƒ?;/H?ܦ>)ž¹=…1*?(Ù?,˜æ?bż?†Ï>’G> B8?€?Ô?ƒf-?…X™?ŒNq?“¯æ?†V\??Í?H>­û€?$&?i>òx=ÑÈ?¥Ž>úzÆ>KB?gì?~»I?ûU>âøþ? si?+o?Íñ?š‡?Zt/@hðª@R¥@9æ>p>x/ë?·m/?†Q`@I»1@fƒÏ?øp£?>”ù?qÍ?²¤?§ÿ’?p—Æ?~vë?,n³?&}á>©0=œaÁ>Ï·½?j µ?7¾—:´ùÐ=ؼ=Ò˜?Á?ò»?;ê?~i?<Þ?|0 ?‰Fr?þ?Ÿ.I?Õª€?ÁA?åà?žr>î‡ó>ô'> ˜}>J©À>¾^g>º>>ù!>*ó?/?³>á?¦3í?—™ý?…Ù’?UØú? bñ>¼¿è?:? àI?WÆ'>›Ñ?zÝ?Yøk>û`3>Ð_>ì>­0³?þø?}šë>üÒË?ðÝ?½ñ¤?¶-€¶>JT¯=ž¨Ê=ª¾‹?·ja?¼Ó”?F´?vè?¦Ja?rb?$ˆ>ÿïm? ð?c?0?A<›Òx?-%6?.JK?Všp?_9I>Óp>ÔÑ¿@ ùÌ@c¨?‚yª?€ T?ªà? ?£†p?œáM?ž¥r?¥L??–t\?™Š,?d*?OI?t€? «›>Õ†'>ÒÛø?­K·?¨ƒÁ>Ňù>ÜS?)à?LÌÔ@&m/@¬?¿Ž~?«³ì?;?ðÑ>JCG>‘ED?óX?)˜?«[Ó?“¾¥? +³?•%?| 8?hqf?R›?5Þ>µŽ¶?=1?Ùo=?Í]Y?¨r?ŠØG?C½?Ý@áò?Û%A?R·?R&ƒ?Ìz?Ž?‚ap?ƒÀ+?|².?:Ù¯?p)>‚ +>‰?~"?7y?Wín?‡_i?£d¢? tÐ?¢Ÿ??Nß-?˜E?¥õ?ú@?Ÿˆ?¤?“îh?°­„?L—õ? d>ëØ'>ìÿò?J7?eØ?€î¶?‚À¨?ž=}?¥o?‡J?‚Î>Ø<Ì>¥qr?!a?"Uf?7h#?-t³=‰Rô=¶\h?Àîë?¿Vp?]?~)Ï?‚÷}?|ÃL?H­'?UÐõ?Dð?] +ï?°Êì?£7œ?J5?cʲ>ŠB“>¦t®?!{?%u +?g?Œä??ÄÇ?’ªv?6µ>ÃxZ>*Õ>ª„ö?$Ž>¡E™<è¹+?‰÷@VÓ?ëÊ>PÈ ? f?Ñ*Í?|MB?'¥@?­~‘?Ûüý?´ j?™ˆ?XÂ?CÖ?¯ŸÖ?ÅU­?™é2?”¾Ø?†àq?ƒ '?ƒ¥Û?ƒ©Ã>'Q=§Bþ>€jW>8z…<âý©>@#/„@Ê#?{]º?g?·?Ú;?)oÏ?§C\?©?ÅýT?¤ÖÔ?BÓ©?:Ô?;ò?ˆ’ù?·".@­—@kí˜@`†?-—?€Ö¤?²+?[1ª?>Ú?îG´@#àH?ç¸?¾7Ž? "‰?ž8Ž?·7Ï?¹{5?˜ˆä?–Ó?h/Ï?\ά?&Õ?}?µL&?À«þ?è3K?í&œ?ÑUê?ÈžÅ?ØáŸ?Ψœ?Ÿ}"?›-?„¬þ?nŠ"?0:ÿ?ü¼?DZ?Å…E?Å]?‡á?É?ˆÁõ?¸‰†?`õÇ?Ûí?aª«?“Næ?¦ ?®·@“d@ 2æ?Ë‚ ?¿¼¸?aø3?FqÖ?Bß?=ËÀ?ƒ +J?~é@w?ûç§?Ç¢?¹õA?p'B?¥4”@À¥?î.—>NI\?E6?Æ_Ì?Äà=?ÇÉ&?”œµ?={C?jíÑ?…;?È™Ò?þ%Þ?¿E¡?›·w?»t?Çéy?Çïv?Çð?È?Ъ5?Ê~?Çù—?p}Ò?_5º?VŠ^?a™M?çö'?Öè?…ZC?Ø5?m‹Q?œ“k@í1@Ùº@%»Q@Þ?˜G­?¨˜ñ?²ÑÁ?ÝÈð@b¹?ä¹$?Èz@A@&»À@ +e?ÿïÎ?$g?JF_?Ò ?ì¥Þ?."?a&@ÉÞ@ùR?Žº?š‚U?æ +?ÜÞ?½Xý?áD@;H¾@({²?Ê l?ð‡ˆ@"X#@½š@NQ?Äa;?aC@œ@Gî†@Sžx@X=@*$2@v÷@qµZ@‘Q*@¢Q´@¦¤›@’ÇZ@Žˆn@˜t¸@•¸ê@³‹@¸DÏAPjAÀdA7IAœA +eAy'A2Ô\A'8£@ê¯@á ü@Ë>´A FUARÊLAUÎsAXžA^Œ…Ah A^AT`Aj'AyßAn4Ad™äA‚HAŠòŸA——1Aœ\A¦ðA©³`A~9ŽAhœA]ÞAsA-jÈA2;¶AÂAËùA +ëA$@–×2@¦FA’-AñA.ºôAbõ@¬5@ÒÍA A()*A8®œAlq@Öžï@àΪ@õ¤AD\A¥Ø@嵈@›d@£¿æ@¥Š@JÑø?ϸá@éÊ@ªš@{B@´†|@¶od@·Ñ@´Àÿ@´Çj@ÕáB@Ú¿ ?ïI?K¿«@P2c@lá @},g@~–@¥Õ@{pù?ú«?ì:&?á˜?ä`L@{5@ûÿ?sù+?‚Ó“@³@ÉŠ@”@ûB@+?‘@ÆW?Îúz?ù˜Å@Xº@kœ±@ý@Ž@Ú@€W=@ƒŸ©@2’@lJB?ù.?Ñ4›?‚‹!?ÆŸã@#k@TŒ?Üé[@m @U8(@Sû,@T~o@+Î…?éçI@Ÿ@ ' ?ñ á?ÃÅ?ùåÄ@ñ@{²@Ëš@‘_@×Û@1r@ ¤?@ó?Ò˜­?ï0š@¡ß?çÂF?ɾŒ?º¶I?¹ÿ>@Ys@KS@Çq?+P?tf°?Aù?¶ t?æå¨@|@ ²`?Ù;ä?®òt?óÄ@ÿ‚?ß”Ì?·Ùz?Áýš?Æ=?å‚S@DN@&Ñ<@CSN?ýu*?œ}=?ºF—?Î¥5?‘Ûr?JnÞ?<&?.‹u?yT`?›ý‰@Ò(@0cæ@‡?À(÷@ <®@4Ó“?Ò¨/>Õ¶?¹(@ Œ(?ÿ à?¿¯x@"dV@v6@)Ð? +ý?·¸?ÿí?ûd?ô#í?ÞÃ~?¿,?¿ ?¾ù?”h>þy?7âD?œæ4?ËF@g«@T¢?—A?™¤õ?ªî?¡(?9U„?IA×?œ%p?›áú?Â÷,?ÎmÑ@“¹@˜8?Çج?Ùñ@†Îo@„z?Ÿþâ?›d@0Ç@2FÇ@o=?óc?‘Nm?y$}?Ï=@?á¼É@ˆî@P@@A@$PÖ@;Zt@B2Æ? jY>–o!?wÄ"?¹Èö@9ã@Õ[?ów?³Ä?£ÜN?™mE?ð­@+N¼@ ¶?‡„?ÚØ*@=‰Ð@á%?’Ým?í‘"@—ñÍ@ˆ£„?ÞÎH?ìpÃ@Y¬t@]‘@ÎØ@Þk?# ?bÓ?¯=r?º†ì?ºvv?ºhE@k@ …?òg?âÄ÷@ ˜´@0¢°?ùb‚?¹ÖŠ?µ¤?­ %?• û?wk9?¬p‹@“×?à‡L?„.?Žo5?¿mi?¤~j=V>+†õ@%5@»Ó@0È´@0¥f@LZ©@K$´?øp%?Ó<0?ÀÈ­?¸.c?X…å>õ_›?‰n?Ñ~Y?üÜs@ö@Òç?î&%@W»@So´@S–þ@Lx@>á?t%Y?t™?Uõ?N?‘øŽ?¬¡?žk?˜x?Ðö?çæÂ?¾a`?£T ?³ýÔ?Ã*:?¶” ?§z©?É»@¸@ ZU? +òî?’Ó? ¹I?™Ó?Jñ9?KÐ? Û1>ñ[Ê?j”3?šH?¡„Æ?˜%®?¯©5?ßε?â»9?å®?âÆ|?Â)ª?¶=?m^ã?gÍ>páî>}Ë'?Šº¨?¢Ï©?“Ê?—Éâ?  ×?—BÃ?’æ‹?šã¦?»¨Ô@A @ +œµ?WfI?]®9@'‚,@/¶.?^A>íºò>íŸe>í~?u±ë?±óÏ?ß±p@%E?ð3S>ìÐ~?—ã@ •³@ 2´?GvÕ?; ?À«[?Í"@"Xñ@Lçù?÷‚„?ºN?ê`J?j‹;?¶4}?ÓOQ@Sr?ù©æ=à´P>(×È>¦=†>Ó¯@év@/Ã*?ïÈ„?£¨Û?­Jö?Ö«!?ïU@ †v@ Úò?ãÿû?ç•A-?s@ ;(@¶Û?¥w"?¤—Y>êËm>ø3Ú@Þ’@ Ÿ?²5/?f¹?Æn„@E6@Òd?½xË?£·“?Èí?ÖF @"@ +¹Ý@Ö÷@`Ø?­r?m¿Þ?»Uo@I%?Ø·l?š˜"?¬0?¤'?¨ßª?ß–Î?ë¤Ã?ØÕ?ÄKÝ?œÖè?Š’I?¾™û@í‡?þÀ_?¯´6?¥Ùi?"ŸÉ?26?å¶?å?1?>G¶?PÏ??¾ñ?_š9?íX>4ÿ˜?cy ?áB?Óx?²²ä?¾î?ç©=?â­*?ݲœ?ÐN·?1Á'?<ä7?í(@@WR?)Ä>âi=¾Å>̨?\É?‹!?;ó6?V·?´õÚ@>?¨õ.?cÖ?(â>øÑø>–Ê£>•ç—?AiU?zñH? +Z>”Š>œ9Ô>Yqû?¤|4?úÄ?Èf?ΰ…?ý(?´ª?–a0?^€œ??æ¢?bŒÁ?~ Æ?ƒÚO?rº2?&‰Ü?>ȇ?MSÌ>Ð t=„í¥=pÁw?S•Û?}Fè> Aà>¦XM>ø]?K¼?€Ì=µ€ >ï³+? I>qMÞ>‹>²Oƒ>£0Ç?Khà@C[K@“@º³>/©•>ÎÙ?98>¿øÁ?ÃòH?í%??À§ý?—ÕÂ?}^+?Eôƒ?V;ã>åg>æ›=f">¹ô?ßO?1…?iø~?Kí>ÝþÒ>âˆ?Dá¤?8Cn?ç?ƒ(>Üà†>Ó‡?–?Ý?ÃÉ?ž|Ñ?‹ŒÏ?ƒ©Ö?U’i?iü°?ˆó-?m‡æ=+î<Ò?_ ]?SYf?[ÊF?Xp?4zÉ?!8(?&nÏ?3ˆ?:Ny?MN»?©úÜ?àÇo?Žñd>¶&Y>uÞ>Uˆ'> +)={Ä>­¶6?zÛS?5y„= @Í>1€>ºÅ >»ºé?#{?šZ>f!>¤‡å?Qáû?R±b>¤Ã_>ß]Š?ŸQ‘?’Ç->þs>þ¥X>þÐù>ÿ—}?„? +F? Æ.?+X =äÍf> +M«>"X[>:VS>RHÂ>k«K??g§>?™H?—”U?:5?£‚=ïéA=µÛÀ>ÿ@n?ÅÓ=4É¥<“Ís?z‘U?tià?%­‘?3>‹?02?} >¥’4>Ù¯?èGÚ?Úh…<ùï?Lhî?®ao?ÏÚ³@UŠÑ@HL?ƒ%–?²Í¾@N³®@)' >ÒS>ù³?`(N?Y€è?_xR?@Qœ>få?"$4?áèÐ?¬)>žÆÛ>‘ßÊ>ãc>‚ a?4M>ÚßÙ>^ŒQ>“j?FM>¢t=†¶|>ú²§?v³\?qV?ŽŸ?gp?%nh?>Nì?]{™?–4À?°îM?h#?&5>¹@ +>™Žá?M² ?˜b>?JŒ±?Œ'>¥}W>6Õn>Ü¢/?;­?Â'I@½o?÷à=&€?’ÕZ?Ãÿ>Ú(‘=å}†>§ðó>·ê­?B´«?Tª­?Àq7?ʲé?Š‹”?‚ʉ?QwÔ?Qž?—ÆÞ?—é?•q-?“'?Ѭ@?ËŒj?æJ?ÿ?vq€?€ý?‚í¿?‚ö?‚øH?r_^?þY?ÿ%?#$!?sš¢@ Á?ëÒ+?œÐÐ? —?Iƒ?0>O?"Å?7â?‘èç?Ž)!?†Û?NC»>Æí×?9ˆ?Ž^Š?„“?yÈå?¢žå?Äöé?~”?‚m?Nš9?eŬ?‰=?J¦?¤|?¡Û\?¸é?Å1®?ôù@~Ê?`ÌÛ?‡e?‘´s?§æ§?%;?™[?_6?—Î?HN?I¥>Ûðü>Ü(%?ìoq?î ª?À³>óŒ*=*¢>”ñ?ÀÃ?ª ?Ú4>ñ•ˆ>±Ž¦?<íH?áõ?ÃeF?|Ny?nÇ~?uì%?Œ Û?¥®?‹ºƒ?O8?Ø8@.9@BÙ@ +?Æ"?{ƒ?-ñ4?5x?p¯?´?]ûæ?‚ær?…ì¼?‡ì}?ähg?øˆ‡?üÌÛ?ü6I?H?Ñ?&Å?*ÿ´?/|m?k?R¬>a·Ë>Ñ?Eã)?…mö@)µ¸@r¤?T?}L?Uϯ?JD!?IãÅ?„ÿÝ?»ž²?ºYè?¹?Ÿ`T?!¿?¤Ó7?Ât8?},?ÿj?Ü!?Ûì?Ðñ@åí?„ÉÓ?,î·?Ô?¤@*5\@3ˆ’?ÚWs?Ç™„?‡¦?‡_O@&K@$1õ@²‹@âó?Ç¢?®ê?$?K‹?Ðò@¶«@EI@#Oß?Èô¸?‘ôƒ?éI?Ÿ Õ?ð ?ïª ?ð+F?™½?KD ?š¿Ò?² +—?¢¢?Ÿ|b@ ²d@"?ƒØé?DÍ?óÐs?þÊÆ?úyp?òf?‰Kþ?šÅ@ŒÁ?ûφ?r?‘?MàR>=1>ˆ®h?¥?‰ ÿ@[@C1ù@ŒW@A«‡?Èú?ë€@b6?Ætt?˜§?—ð£?ž²p?ƒc?r­º? .\?¨p˜?§?©Zè? D?b¥?`œ?Ýi>ï2—?è[@&·ê@?F?…[Ç?ˆà?“PJ?²°\@Ý?à¹h?Œ~?Ø×@#Z©@?²,?ë|c@|ÿ@‡t@×»¨@p\‰@Aê@JŠÛ@i)~@‹z¦@•Ã@›ÿŒ@›”—@ØõE@â«›@ÁI*@ºì @×âÍ@Û vA |pA +«¿AI…AuA ¤éA A7A×A2úCA3yäA9¥A>-ADþÿAC ÕA@ÌëALÙAV $Ar:A„ÙgA_/A•, A™¾wA›‰±A›ä$Aœò–A¶ƒÙA»ªRA•ìÁAÔ(A9*A(á}A!=#A J¢@Ј@Ì95@Ìì£@Ó7¤AøºAÐ9@éë@ö²kAoA#Î@AJQ¢A=«RA' ‹A<èAj¯€AS® A. „A Ÿû@²þ>@¹l@¼¦—@† +Ø@è@†@Ê¥I@®Ût@˜ÿ™@¯#@¹Á—@ì]„Aâ@àïó@Ðê@¡êA@“ex@Â.?òt@D…}@Lî2@ˆ¨Å@‘ü@DÊ]@> Å@7@#;Æ?á"?ß "?꣚?èLË?æ J?íïõ@8¥@2Œw@8‹@5t)@H@›æ@5%@,A-?úÇK?ùˆ?åÌa?ë9‹@ ¨„@ôv@m@žA@N¨«@[ˆ.@n4<@9ò‘?³âW?÷è³@9‹@•>?ìz@ls@@%ž@; X@3®<@Žé?ÞSd@ ©O@-òš@%„á@½…@—r?öeT?ÝoÕ?Âá??çÌ@'•?¥+é? +›¼?ŠŒÀ?ÂŒ‹?æÅ@£ä@^@4zŽ@(Ó@„Ã@é¼@#²Y?©ø>Úõ¸?v?¢Û„?àªx@ €é@ SE@ Ãÿ?¤À?5Ð|?ït8@+´_?ç°/?”·q?å`@ ~•?Âì?„ù8?¬ ú?ÍÐ?ÄDs?·ýb?ùu{@)3? ÓR?nÕ?»@в?vë>Ú[?XæÈ?Ÿ•à?µep?À)©?ÜSx?û?Õ‰¤?­ÄÁ@/΃@…À>@7§=?¶è%?¹3?»€?ÜYâ?ýpA@$rÇ@Vªm@GÃã@4Ç4@4ç?ï£~?í4í?êÀÐ?®™>þy ?ËC?9íW?ż@^ec@Fú@(B?Ý9œ?VBÞ?…Y?Ü/Ù?ìR@#Ï@Š?ýW÷@ )O@|>@që@g@°ò@fÚÏ@g9j?ŒÐ?5y?Ÿg’?¬¡@7E@=5y?ªÎ?|ȳ?ÍÓ?×lý@=‰@'U“?Áã?›¨–@º¡@?.@2ê@/a²?µéÞ? ¯ƒ?NT·?ˆÁü@“‘@IÐÛ@¶L?Þì‰@ F@/d¸@ÕÑ?²[ý?÷T¹@Jü@>Ó@I¼@*Í\@zÇ@r8J@ðk@­ï?îpÌ?ênš@J®ý@O˳@V ,@Wè$?™q‘?âª?²~?ºk5?©°»?¬.?ä! ?ø0;@Þl@9ÖW@¨~?×ýu?˾j?Æ ˆ?¨iš?wl ?§ ?üØÀ?펄?°¡4?Ï©à@†®@š,@|æ@ –?8Üp?Nš?ÜjÉ?èJ ?ë°J?û,’?åÙs?Úí^?«"J?›&î?B_>õcx?<‘ ?u/±?ñîË@J ª@&‘ê?°ñx?¦ša?{ƒ?_ß>‚Ð?Àú@;ÈÅ@4˜7@}™@‘?ÎCÎ?µ‡†?V½?6hj?³Û ?åë?«sw?s=?¿Wý@ky?ÀC>ò”{?4#®?µÅä? o=ëù=™1Z?\óÎ?Vê”?Ÿe?¡Î…?"ª->ñ`Y?ú©?¯øŸ?Æý?èX?½Ò™?‚Em?› 7?¾ÿú?ÖÓÇ@+.8@1EÍ@1ÿ@*ȱ@5†@,?­˜ì?ˆ²i?Š—­?…ä?©¤C?в©?®í?nÃ¥?xâZ?ˆà?yâ‘>îO¾>î3B?¦©?¯O©?~ÚÅ?d‰Ž?ü¼@yŠ@ +[@¿í@Š @Ž~?ÝnÊ?/š?M¡²@€Ü@b”>„rŸ=¿3@0-7@da@ ¦o?µjÄ?³»Ý?¡U?|Æ?æ¢?FPÁ?ë#°?ë y?9¦?+|Ì?Øqù@çm?«GÔ?D ö?™þ?äÉ?Ôíþ?°ƒŸ?ÁŒÀ?þÐ?íä@xž?ñ… @šq@#8·@X}ü@l&@ >èäè?-È6?»qZ?È?®fÜ?®v,?€ô8?,)?sgü?h?š’^?ÃVh?Èǯ?ÊôÁ?ÒøÆ@Èæ@À@†?û©4?Qý&>çT­?¼4W@Ð×?æi?gë?Ô\?Ä2Œ?ÓÒ?go?s<÷?^ ?2-Ð?P?É2Þ?¬[•?f x?jû´?|Ó7?…½6?Ela?]íœ?À…¾?̇ ?¡œÑ?jz?„}É?‘R?† é?sÒ#?w©@?ã7?Öåê?ëÙ¸?ôr×?¸Ž$?–©ª?ºíŒ?ë@o@W@(6I@$¼º>ç‘>ç&$@ ü@^?KÛ)>ôÐâ?3 S?=„?§ßo@Ѐ?ú3>“Ž>‡›Ð?z¥ö?qnâ?‹¬? ²\?(Ö?D­Ò?bÂZ?i~¦?iQ²?wM/??¯¹ƒ?·<ƒ?ê·p?ê÷?³—%?·àá?œËõ?Ž3é? Üñ>ì}Ô?3e›?L 2?~5ó?§œ?¯¾?³Ä˜?šÔ?îþ?ïR4?ï²Û?âÒÑ>ðqŒ>ðØ(?‹Û?†>…O=èñ?«€Î?Ï|Ø?Ž¸?uS¤>ú‘¿>¦ºõ?%¶x?-@ï?Tä¹?tX3>®cà>Òâ?2!E?4|¥?Äš?O&¹?}¦‡?'þ?µ!?‘êæ?‹?°PW?ËŽÿ?©Vƒ?³vF?žŠ’?¨]†>#}Æ=œd? ú>þK>‚*>Ã?GÁ¾?OMs?ÂÃ?åR?»=øC¯=ã¶>ÕcZ>Ë?i? +l¨>Ûã²>CÜ´>瑼?\?€A¢?7Ú<3%<œõ­>¡À>D]©?›ì¹@„¦V@`Á\@4µ>°¥µ> ?¡?i®>¼ +Œ9Z)/?ûóy@†?©Ä?ƒHÃ? ½=î3>{éu>‹s“>åe>ÂyC?–?A°Ö?ZûÇ?iãÕ?GI >ë¡?ã_?lCa?lÐÌ?No?FmB?â‹?Šá?¯R´?ûë?­Q;?!¼ÿ?4ÿÇ?NAÇ?|Ò¥?ã3å?éŒ?ïz–?ävæ=£Éà>~½? ‘?m?P?%³??’Z??¿?cr™?^n>÷ g>¢RÁ?KBx?œOS?³¤Ï?ÄFV?ºÉJ?¶J7?º…?¸|‰?Œ‰G>Óºè>ÖÛþ>ûà->¾}>{M€?ŠF©?O4æ=tø©>²æö>ñÔ­?݆g?Ô]Î?¡C? Š©>þÒr>îA<ƒÿ7=çó?¯lÛ?¤‰ò>ÇVO>»xÄ>¯ž?>žº<¨N[? g½?ªlï?À®‡?ÀNã?zï?g) ?¨Â?2ú?ÏŽ?jU?v„d?F!?¾W/?¶ÜW?î? ?¦k?6¹Ì?ÜÕ6?Åóö?Q—Ó?Wœx<³ç>YZ·>ˆM?Âà?¶Ô?¥H?#:?_Š?º?ÁÒ?,Kµ?Á…y?¸†?¢ÑÃ?Ž{3=Á·Ë>šÉ>ŒÙP>,>8®†>„ô>ا ?ÆE?–|>MO>’¨ñ?+Á?¸? ²?i$ ?¹ÉŽ?‘?Iâ?=×í?+k?Gž?¨¨?°¦ê@ 8?±s¹?dÔ>¨Ô>3y$?Xpú?¹ÂG?l÷?qn>ÿÙÌ>Ù¥r>ìÃÊ?…Ñ?!?$_H?=vï?VÌ?lª—?wÙL?5”6? '¼?Ÿ û?¸f9@ 7:@j?““È?Mƒõ?i?·R?'Uƒ?2Çø?ÏI?á(Z?Y’­?FÏH>¢>¨>›îü?¿DB?Ä^¾?×CÌ?ÔGß?Ûƒ ?Ú,‹?å‹>óè-=ˆb²<îØ%<“ÚE=^¤ú=½SX>Iq?þž??¯?7(?}êv?…?Q?ƒ×?XuD>ðý?QÃ?@f'?; Ê?6ݽ?"*>¨­ >µ«}>ÃßÕ??…­?¢"Á?`^^>ë1õ?ƒ§?Âغ@ù@È?í9?½Eá?gÅø?Zì?z5(?”šŽ?l L?Zå?£†4?¸Ž?7È-?‡i?:ÝÑ?KFX?m¹L?h¿F?“>¥?œc>Xxm>c/>Z ø>AvF?(@Ò?–?çÝ? w/? ‘?6 +Ô@?€?݃V?ÙB>Ìw!>åe=?غ×?â<¢?ð~S?Ûõ°?´±?«Ei?¥ˆq?UŸê>”7y?[‘`?¾ÔQ?–Ù%?`_ ?Æyà@T?¹Â—?qž ?oÉ­?{—o?2n”? C?Ø}@@¿?f…†?1¦°@N@xÅ?·œ#?¥¡Š?gN"?],x>9œÊ>zåþ?gˆì?hq§?¨¶ð?¨/Š?͹?Õ„¨?à0Ï?̽?B?è¢>Å[?"[K?´ ?eM ?é?>³Ýo=˜.ù?˜Õ?†œ>îJ¹=G%h>´˜˜?Ûx?‹ká?±ûu>íŽ>rÄ?¥u“?Âa9@Á{@*Lh?ðk"?è´?‡çÿ?ˆÿ@ +ú @ +Ç?`×?‚g?ÿZQ@Jù¿@(9õ@=:{@@4Á@x­à@ ê@…z:@†™§@æ‚@ Êl@C¼@Ha@ Ñ@ ào?”RC?¡g @@@OOy@M‹¬@ A@Èê@DS@6¦4?åâH?å6f?Ð@”·@s¨ÿ@ƒª’@,F@˜±@€ŸÑ@~Ag@~Í[@lš@«\?@„LÃ?õ°,@ð@Zl‰@Pv@?ÓÕ@*\F@±Î?÷Ó?Å­#@Åx@+·@)ts@,&“@N« +@v2@.`ƒ?ÂýJ?·?Š?¯§%?øe@0b@Q;Ò@€^™@'òÏ?Â&?…À?6ÒÇ?«çJ?ênÍ@º#@*Ìl@ˆ?Ø~?æÞ?â¤P?ÇcU?À?™¾}?sÒ¹?â³M@ l?–¤R>êS2?ŠOí?ÁrL?áf?÷c·@Au#@s#}@lÊp@býò@KD}@;8@|€@‘÷Ó@4¥Á?ÚÑb?Öùc?Ëð?æ) +@¡?Ÿ©?ž?=?¢üú?že6?¤<1?¬°ì?®ˆë?~@‡?5žÜ?é@8à @–(?ˆùø?{J +?m†Ç@ ä@^<¦@Pˆ@BK@î,?§µp?Ï™?þËa?Êð¢?tt§?£™Ì?Ý d?¯€?DIâ?¬íÉ@1¿ý@% ò@"È?Øk>ýÕH?_.†@>1@N/@)1@'d‘@L4@ \k@=š@9ÝÏ@¶ô@}@]C{@YÛ’?|±T?|œA?W þ?Qv@5¼-@=6>Ž^Ï?§›A?ÆlZ?·r¢?ºoq?TDd?bí?b9¤?{oÃ?nþZ?m­º@ +ø@9ªÀ@gì?¸°Q?æª÷@ +2ß@ï¼@Òë?Þè×?‰<(?ª²?ÓgÕ?Ü +©?ðL"@Å@ÜE@±ç?ê¹?å4À?çL?ùK@@<@@Ô‡?ʘÓ?ÅQé?ø\?úE?þK?K?v±?†Þ·?˼µ?تH@„º@% @ ß?Ýš‡?ÿØ@ »?ÓΗ?”¹ï?ˆ|v?wkì?a»?4E?MR? ?Â÷@QMÔ@Iû¶?øØ÷?ôa?g<µ?a°™?¶Å??¸£Á>Õ+§>ª]°?í}¼@ 7v?¦'Ì?u˜Ñ?H€R?)·F?füÈ?Œ€ß?{ž?\Ô+?_åË? ?®L­@PC@ Jã?©G?±ô›@ópí?L1Þ?s:j?«Û?êqa@3@"§$?ñ+(?¤ ?E&?¶ùK?´|V?§®¼?šÌ‰>),¤>XÃð?¨CD?µ6?eÁD?>e7?ÕNn@TÐ?®] +?C~,?2í8?ç?l=¬?úø?âÁ?€Í3?‰ü8@4n@3ð?ÝJ?߆?²O'?¢o@?’Òþ?æ?µRa?ÑS§?µõ­?v?–ŽÓ?²êÓ?¥R7? ±?¡ã>Ü]õ>èž“?[dÜ?m½&?²9?Ô%Ì?Õel?Õ£?µ ?„Z*?oѾ>÷Vé?¢-?›Îá?Ÿ ?9®G?$µ‚?ó‡‹@õ?¶l¢?n·;?ß¹u@$fK@?êMú?åQã@@MÃ?o +î?jÒ¡>ëÀ>’Å?JÑ?ÐóÈ?¿¬û?©ëŒ?q<ÄÊ­>0œ?4\Q?P¦£@š@S0?üçø?ðÅ@,s}@^ÎM@:>èå¡>ã¯h>¬×Æ>›üŽ?±Þ¹?®²>Užy=áì†?¸Ýw?ö´ ?Í7I?­ú3?¬w9?®Ä¾?ÁvÂ@Q˜@-@ O‡@Ø:?ns¢>çVL@¬œ@yŒÌ@$o"? ›Ç?#óH?fú(?fíÐ>èßñ>æÕe?ÐÑá?þ7?˜— ?Ôù?72Ÿ?k]x?~ö?¦¤2?¢Oƒ? Ÿ?‡Ö@?¸ÀQ?ǤÈ?Ükó?æ‚Œ?× F?ÊZ?Æ +N?§? …=j§à>BeÙ?¤D?»¢ñ?˜‰²µZ?š4?ÞÏñ?«œt?q™9?Œò?¨1¹?›X4?¦2L?ªô>?¬ÿŠ?¤Ç?›p?’?|5?i‚ü?Œr?œß?›•ß?¾ÑC?¾˜/?à,§?é_œ=¿E›>K† +?ê!™@èb?ˆˆÜ?2üf?B7l?j„6?‰¦Ï?Š?©˜Æ?í’?Àå?2Ëü?‡$@ ˆ?@D[>ðyØ>ðèñ?‘õ?œƒž?ºl‚?·lÌ?x¦°?QuR?Ö„~?ôcó?ÍŽñ?¶„?A>ac?£Úd?ð¿è?¥§l?x¢œ?±oç?»;G?}¹t?C7?J6(?r‚1?–?“f?1=å>ÿOä?$„?6X“?0)?6D”??§­?3´—>Æ ´>ßé¡?º¬s?³Ÿ”?ñ5>ùä8>¶Æ>ÆÂ?ÌÀ?„W•?×ï­?nœÕ?ÔÖ?:‚>ìæx?ë­? ê>? +{? ˜?8Aî?^8?…åM?$À¤?((=à¨?>… >Ò­L?ÇÀ@H¢Ñ@Nc@>–¦>ÿB:Æ1X?áÜ?[À?¨=¬´<óUB@Rçê@O‡·?äŠ?bI >ùXŸ=ºõQ>Î^Ô>´Ð¾?]”s?yÌ”>ÖA:>…•? +)?iÐw?i³ª?dk?P;W? Î/?¨î?…µ?b—>Ñj>Ò¬[>í Á?Î? ¨?Oî?ŽL}?ã›?ÇO?rÂ_?`r×>ÿá?,)5@("‚@Ç?H>õ¤^?G­¢?L í>왞>ÜõÙ?€%Å?¤#ø?:…µ>¬îÉ?žc?9ñA?’¸t?Õcå?šã¡?e½?2ˆ½?€÷?}ÙŸ?gÁÀ?#‚Þ>j[>Ç4?tÍ`?€ËÝ?·nË?£\½>ä½×?ÇA?«Ör?ŸÔ?~Ó?zÅà?i¿¼?c>þÒñ>þñž>÷‹‰>ðñ ?€ã?(ª¬>ÿÐ>ÿ÷U?>ñá¨=g×Â?€¶G?{Õ6?À°?¾Êv?¯k?¶š?F¯±?M>)>Þ;3>ß›=Bc1=1Â? çø?Õò?p»¿?bü¥?3J? Q¾?‘¡ã?Ž”m<û”‹>„8G>‰u?„˜>ûH>®FØ>œGd>”Î>øâ?n:ä?\¬$>ïjt>û‘o?<ë?AÞš?¼ ?›µ>Ô„é?äØ?ŽùÑ?uu“÷>«{æ?À¼? 8l?#z>ãÙ?>²?)~Æ?‘q£?‰ù^?‚@V?—þD?ºIÝ?À´=?Âgô?…±?W,?]ñ?¥4¹?'U?c^?HŸC?,um?,ªþ?9g?J\}?DS‹?A–R?Mçõ?_,?\" +?ZK?b‘Ö?°U>‘¹d>ø‡d?¯Ÿ?ÊéS?ÿch@²ÿ@Ô#?¶à¶?œPÉ?7 ó?á>M°T>ò‚?Fd6?V5*?»°š?Ä#»?Š Ø?€ó&>Z6>Wý/?Âð½?Ãð?¸N?½Š‡?<ϲ?.à'?å?$µ?|}Ý?‰Ü$?Áç7?›, =Õϱ?þ¡?ec@Z’?ÎFQ? ‡?*Þ?ƒ?HÐÕ>už>ãQ?H|?6hÄ?i?O:ß?ƒ.®?‡Or?’~Õ?(_¨=Àwœ>CW%>iÆ?!à ?€»>Û Ž=вô>á?  ?ZI?nÂK>ÜÛ>… ‘>é«ì?tr?(W?7šH?ƒç­?‡Ú?Ÿ?œú´?¦ÉÁ?«œE?‹du?F=?Æ ?Z?N=|?\Cv?¨ªg?³'²?Ô¼?Å5t?„?—¶p@Ïì?ÞÚj?ØF?‚•@}@7­?ÅßÎ?®Ù3?†¬@?|„«?[—?—µÅ?Æ x?–$Q?0ÿë?! ?a?{?-G?iIƒ?ý§@ Ðï@:Ó¨?®ßý? -½?ŸÉ>?ÁkÔ??X?vÎ?n`?z®V?›Ô?¦Õ>ÊBÓ>¿m?'ìþ?+ˆ¬>®RÚ>ȸ`?Ÿ‹? Ìê? ö ?²Ô@?ßa?ÊM»?¡ÛÍ?š2Ê?ZFÛ?‚ø?¶L?­  ?¡XQ?œK»?Œâ¡?£H«?¿«?ŸÌê?„¶€?51ý>ó I?þîa@.#‡@¹é?ìÚ?9L°>¾gZ@ì @Œo?ø”…?îKÒ?E®?@5A?¥H`?  œ?g´?Ùl?°‹?Ïb±@4v@ ï?¢±d?žUh?™ü?nŒ)>ò›?¥æÔ@#æd?ñrß?…/Ý?¤‹8?À5t?¸7d?¯íÖ?¥Ï?¥Ý¦?å”÷@ðå?µ«i?•ã¥?±Â³?²‚@q@ìË?Ë™o?È7­?¬ºx?¥¼?Çÿ”?Η­@ @ï&@Zâ?Ü>w?•ô?—¬e@$Rb@2@t?ÓmP?…b…?à'?ŸÎÉ@*8@-Ï•?Þo?–ׄ?Ó¼?ó¢‘@-d…@@Ôé@;¦ï@8ߪ?£µ±?ˆ+Þ@J’@ÌÅ@E:@AÉ-Af$Ab³ÌA2Æ5A/*EA~ÊA‹A6awA,¿@ó“vAYØAEë…A.¬`@¾> @èËSA ¾äA'A/ŠkAp@Ô¹÷@÷¤‡A@@è|Ë@­d@²aÀ@º^Ý@ØœŽ@çäG@á_{@à $@á›@á¢Ì@çÕü@ï€O@­Ì @”>Z@£ï®@¦¤‚@£óT@¡Ÿa?ìž?¯yÚ@êé@çÅ@5cO@5)÷@;¡@:ëj?ÈЬ?ÒÄË@;‡Ã@1Âò@$&@zä?‰a?“øR?ĸ§?áûæ@Dž@.Ó?“¡£?©¤º@ó#?ø®k?̶?¦b‚?ÐÏ?(ÿ’?ŒYø?¬Ž?â@…m@'-W@Ms@Œ@|à@u|@ àË@F¡?ù‰Í?º±ª?–C?CUN?²ë@²Ô@?ì²÷@ÂI@ ›R?óÓÏ?Ñ—|?…%?ëp?u]Û?±ç$?œðþ?„\?¨¼^?ÂŒX@`¶@-‡e@ W?ö<Û@‹%@!ÜÍ?öæ?Âì?½×D?ĸV@¿%@Ý6?ÓÊü?¤£Q@ +>Ï@0Ðp?æÂ(?™?ž—?¢œO?¶àï?ÁS+?·8A?´¹a@`>w@š)@Œ„@}é³@<}y@ŠÈ@ü’?ôgŠ?Þ à?ÑÛ5?®‚?–*d?ŠN?€Fû@ŠE@0¿»@^ä?ñ}z?öÎ@‹?ÐåŸ?—Öw?ï¶ú@&ýd@àÙ?¿±|?_„¬>³?µ»ü@>é=@BI?Î5ã@³u@+ÞR@ à?Í€ü?©ò8?XV ?¶Ó`@ Ï?ñ˜ÌÞ>Ð)˜?'áì?|°d@?i?çlë?}„å?¦uÆ@8Ž@6±ú@ÎÒ@À @Å@²©@ â@r–@ )9@p´?%þ)?(š?ü:¾@¿Í?kÛò?@Á?rÿ¡?{ñÜ?;ºS?*?„`?ŽÞ?«a?{pÆ?JBÉ?'ò¦?˜é^?¾XÚ?—`d?€»A?†´-?ýP?˜»¥?¥b.?£ýd?–ñ?³i?⸠?Öå ?ÀÞ?ÎA?ùâÐ?ü{P@vÿ@iâ?Í“/?É2s?»z?ÂH8@Á@f=?üL˜?ù^D?àÁ>ø¹s>1vâ>&ßû?òI’@aY@¸ñ@:@_Ã@ ßJ?Üý‹?¼?¾éØ?¹¶-?±iF?£ ‚?–W?Ž—´?µë®?ÿíÇCÍ>»@?ª†ñ?µ6¤?¢¼:?›mú?•þ?›&º?„µÊ?RÍA?«‡Š@˜§?ý?F@¡K@.Z?ðB?ð0C?ó´Æ?ùÂý?‡f?‚ûA?ªûk?³™a?Ú[ë?ä8×@7â@`¯?àòµ?„ ª?ŠV—?¦?”†?ä[?}CÉ=“êréÆ‹>é­I?ºÌY?Â+Ì?»¿8?ÃFƒ?„–¤?7V?b¥>èæZ?:c¡?ÉÞy?×ñ?ñ[D?è^‚@Ф?üU_?`«?Z?™ˆp?Ñvü?¥Ô*?/íZ?m:´@,r@XB?$>çsh>çb.>çWí?M4ß?œý?¨ ?‘òÑ?†F¦?fü®?fÀï>k“Î>…J?Cç +?w˜N?«­’?½Ú?ȃ…?å €?½§?kÕ?%˜Á?¬ìý?¬ç˜?jÑ?ŽÊY?é.ö@ ‡?äŒ]?¨û›?Ž?\‹Ò?lŒÛ?¤û*?˜;d?Ò>+?×3¾?« Ü?”ñí?ÍÁ?Vú³?j97?“»½?·“@q¯°@|ã?'×n?Ãû?¯«}?½µ?°R¢?¹ƒ´?Š>çéŒ?pl@E;@‡ž?Z;¢?c³á?kx½?tÈp?~j¦?„O?’iÅ?–?Æ‹@YÔ@tb?øMá?äöô?Ðþ?nI>Øʬ>Äâ]?“5Ê?±4˜?¹þ?°™õ?;Ïï>—­\?pÄr?Ün +?ѹÞ?³¼Ý?²n ?œð;?Ëè?“ŠO?¡~Ú?.í4?#ÛS>ñNi>ñ¸ç?Ü,&?ñ[?‰c?s|R?“ö)?¤Øt?—(Í? •?Œm?`ק?—»ù?´jL?NýŽ?›ß?t@ï?Ÿd{?×?‚?áQ§?3Æ>(]‹?§îî?õ&å?UpÏ=E0Éù©‡?”L?v”þ?Q­Œ?ä™>ÖS0>“¯q?\%?F\º>´Ì!=+Vl<öJ4=»UU? k? ø? +‰^?.f?o +À?6*{? ßJ? {->ÿl<8@>–>¦>ã¦=L'?ù?ÝT‹@ö@’;£²÷=›"<2Mç=i—È;¡¬0>*Da@Gõ£@JM¦?l_;>‘™>›PŒ>€nÈ>ª»P?1•o?81n>ç>>Z?'‹t?U’?cÊ?iºì?>VB>ø#ø? A>ì!J>þ&Ó?»ÿƒ?²¨;>1W£>-4>Xe>–®>¥f¸?I0?µ[á?›Aî?S7(?{–ü?µ7>?¢¥ÿ>pÐå>Çnb>öä¤>õž+?“{?£«?2ÿú?å0?*‘ƒ?3ÏÓ?`<?xoà?€Ñ ?ŒŠ?³N=’Ã?9u?¸Éç?T° =\e`>á”…?{Yy?FÐ$>¼v?wõ?”VG?†s?7.]?=|¬?CÏû?iõ€?¹Æ¶?¶]È?~?e6>Ôu»>àî>í Î?=Œf@ü2@É>ÿ€î>ÿ¬C>ÿÒG?éG?X’å?Oø¨>ÉÑM=îÚ=ÏP¾>êG>2 ˜?€íþ?uƒB?ê>íËÖ>wò>YÝv?5??º?J[?ä?i³¥?Ldê?s’>ð’5>”iê>Ú[?—Ö?bòm>ƒzœ>Ÿš?-"?ç =)_®> L?J’?^nõ?ý¸?眳?«É&?’dÛ?F*í?E$?/ã?VÐ=?‹+n?vŽe?=ó9?37?6ª{?fé>§$Q?f¯>?âjV?¼T?Œv%?Y? P?~ű?ÃRª?¡?w?x§??¸³W?î-}?±?‚fê?»j>®Ÿ>éGÞ?u_?KÎÅ?—#? ݪ>•f¨?\’d?–HS?9u7?Žƒ?ª£?Ð]û??Š´?*?H”?˜Ö?’ ?'?j?»y?³ ?‹Œ?_ù?4'|?1<Ó?¥¯?)o+?âÉ?ä#£?¼Æ?"Õ?«|?¨ýí>í¿ˆ>ýü¸?ÄO™?´z$>ÝÖC>ëŸ?ëå?&?Kù>á m=ò^¤?ýŸ?¯A?yDo?c¥\? +?IÇC?¬,ƒ?„©L??Ù? Å?H? v9?G}@?ƒ.­?l"> Ñ×>âpõ?5/•?¢pÆ?çƒv?…ï0>úu?SOE?~½?{ B?y+?€µI?ƒcÃ?•ñ>Åíþ>õœ\?tµ?§é2?º?W?‚¯Ñ?|sU?¼z?ÉS'?Š??ƒ–Y?¼ä?ÆLÉ?.K?'û©?0Í+?£>¢%Š?Ä@=K{@2¬ ?Å?¬óÌ?–??;Ë?vH…?ˆZÝ?¸ðY?£uX?K5-?ãÄ>3 >ÿß?jdÑ?Å÷N@Ö?Øï.?ŠÊ?‘§ë?Ž—R?†­?„ Á?ÿR@%3û@ +‡6?üb ?ä ö?ÕeÚ?Aþã>übé?¨?N¦?¯c¼?ÀÅ?Š Ø?„`ó>ä2Ó>ËĘ?e+?a+=?\ºÂ?T›5?9œà?@ú?K ¼?‘‡„@%µÇ@í?bÕ?A\?šÿ ?•»p?„«’?)¸=Ò.\?/¨ô?µ§?~Úæ? b^>ƒ5˜<‡5$?$g?~@B¦µ@€?ÔÊ?X&F?h!?eC«?Û÷"?ô¿˜?½“ª?»*?—‹p?a@@9v@.Ä?Ù!à?)£€?b ß?â¨f?ç Ð?ën»?óšû?ÿ;G?¨ŒÌ=U8ü>õp†?‰Çî?Ä3º@‰ ?¡j)?!:¸?˜­r?ÇÖ‡?¾Ü—?¸'Ö?5î >ð¼©?‡7Œ?®N@ '@;l@ýë@U?/?E @ >@ )?Þ¶u?Ê?*?bÈ’?î—?ÞðÉ?¢ˆŠ?¹–ó?ú‹¬?ël?É7Æ?Ǽe?Ä3c?„ÏÃ?Æc?¥TÃ?í¡Ó?Œåã?'Þ?„G?š2?À(L?Ñ×s@bˆ@#0ã?ŸÕ?ƒÕ;?¡œÎ?¢tå@wËC@uÿ@ð\@Ú@ …“@Z$@-Eø@(E7@Ûà@Äã?…V¥?Ò_G@&¡ù@1;Å@@ß@,?ãs@: @oÝž@Q-@?°@0”«@0Ûn@›‹@ŽÞ.@e†F@WM@³´+@¾D=@Öí@ØhD@ ¾@Ú‡@ót +@øQhAæÄA¯³A7¦ÔA,M“@÷ÃAî-A%Ö°A&-ŠA%uòA@c£An9€ALXÔA!šÒA9ïAS=œAA§A1ŽA†¾"A;@óúà@Ëy1@Ñ2@ÒhýA§ +ABÅAì'@ÎnK@¿¦`@±S^A—7A"BÏA50A4|Aˆ±@ÿì@¤nU@w­ã@™@F@ gL@Ò2³@ãH @¯­Ê@¤‘@w.?¾§ó@eM‘@pÚË@xÒ¼@wyÿ@È@˜q@.ðh@)Α@Ed @JÎR@Fê@4mÑ?5â?,¦˜?Þ¸›?å~@¡ç@Õ?¢)™?ÄV@ @ àË?ýnr?ÏþÓ?Ns?1¿ë?‚­Ÿ?«±ü?ÿäS@î©@U·—@+d¹?Ò(Í?àŒ4?ò2š?Ë»¸?™Ÿ0?˜–?‚X?±¨º?årˆ?±³Œ?tÐ?Áïâ@¾ù@ „ +@ÅÈ@÷x?ôÝD?°9û?Vòy?‰Æ>u!Û?™)W@õ?Ýø?Âú?ï0ß@ ƒÈ?ªí¼?KÛn?ìÂK@!Ýy@?Á@MJk?õQA?Ž$œ@ÐI@@?ã+†?/Ç?‡µÉ?—P?>ÚŸ?v?-½ï?@²?¤–?Ì’?”· ?QN“?qç®?„ñT?…Y?’N@Gb8@‡7¢@6=|@i?¼jA?‘3º?Zß?+ ?†á2?¦fš@¸e@@J×@7‡È@1É@Bß?Ïæ°@ @On3@3›6@Š?ø#w?µ¶‹?×M?ú/ã?Á×ê?*p? nq?¿[”@ ~3@?8æ@  å?mJ?­ëw?Ùñ?ûü3@ Ù?ò´?E¾¨?’õ—@]×?¸,Û>Ÿ_?“¿€?Úʆ@e®:@IÔr? 3 ?ªû°?ýZâ@L@æWÅ?ƒ†©@ç×@¸‹? ¢4?Ã?z¨À?€É?‚°j?…`Ø?Ûµì?ÖÞý?ƒ#Þ?v?üå~@…@K?ï—Á@(«$@CÚJ?äŒ?Q:W?q.?Ÿ +Ò?ŠU?08?Áª@rõQ@UsU?ÅA¨?Àbý?Ìí?#?‰éÐ?ŒßA?Ÿ?žK?Ã%?Õ Î?Žaú?D­Î?›9­?ÍŽù?Úà?ܪ?É?µñH?µ?´º~?Á ?öôt?ö^?Ÿð?™ãŒ?Û™u?Ýçk?¼R¯?µ +à?Œzó?jÎ?vZ=?‡Ì-?Ä•Ø@»?ÒÒ=?!ë?RÓR?ä1Ã?ÞÅð?ÿ°?†Ù?l#%?o¸??ƒÔï?‰Gr?©n„?¿u?é¥@Ä\?úŸ*?Ç| ?“ÊŠ>î‘R?Û­?¨@“?«9ù?eùÌ?kú”?u– ?§”?H0·?>g?¡+F?Èz€?“w?(oô?n×È?Ñ'·?Ì7?˜€º?¥¿??†*a?ˆ?ï!]@ \?×pÚ?°Ûq?Í´[?ë›i?µ›‚?#l?IñŒ?Ýz?ä ç?êÁ—?ÜÈ÷?ÈS?ÂÕ‚?ŽÄÖ?TAS?‡\ù?¯£“?œwR?q?”X@lÀ?ò‚–@°„?üÊ?e Ÿ?*K?‰Øš?›ÅS?„]|?Zÿü?>†Ì?r¦?B«˜@GÜU@I÷‚?ý-‹?ðt©?†šÅ?)Á£?´‰@q¿?êhŸ?§]é?©C@=#@ Ôq?3.D?Ð_? ži>ñ£>`ÆB=ÑœT>®4(?,â‘?Cûˆ?fý`?fPµ>ÝlÊ>½¢O>=[=û²?ªKB@{€?Ö­Ã?kf[?n&Í?W2?Pìó?ƒ9~?‡Pô?mƒÙ?f‡Z?éÝ3@á\@k@ñŒ?ú{m>÷Wp?I?¬ðÐ?¬ø(?·ÔR?½V³?²Ô™?­˜?­L?­$ ?º­?׶ñ?Ü.Ú?à°?å55?½ä>çN»?'Gº?NKN? M¼>Á… ? Nh?%%§?mÍ÷?ÿí0@‚è>У>â•Ã>ñÝh?r˜?‹¥«?ž_&?wY8?]dE?’r[?¼ºw?Î[c?ñzš@ å@4¢@ç?ÙÛ ?Ë+?ïÀP?è6Ð?è¯ñ?싶?£'q?mt?VtC?P)ä?Š”¢?²ÇH?•±“?)WW??F®?AZ~?1ò?y¸? 2!?SŒP?2Çï?eêä?u?Ö?«ì?h ?cLq?tv‰?H3.?0º‡?@Á?È&?¢³h?ƒ86?$wó>ø¹‘?ˆ`?¨©7?½öŠ?Úø¸?É‹? <Ã?®7ž?¾_Û?F†?µ^?î'?"EÈ?‡$??cÕ?WmÂ=ž;×.2Rä?„P?MÑÜ>D€ >|sD>`‰ò?@è9?®xÅ?¹ÉÀ?ÈÝA>r»3;͘>&ÅÚ>³ê ?LÛ¡?*]Ç? ½? T? î­? ‹'? +ØË>Чü>aX_=kßX> †ª<°?ºz!@sGê@v?âÅù>Žñ‘=¯ér<úÖþ?b?€·? ÎÎ;[8Ü>Ë™O@sl@@q€@¬o?¿¿ž?9®>F E>agÜ>|;ñ>œ?@Šw?4ò>ù>èbß?<¬¤?i§Á?8¶,>êÞ8?nâ?X`?P”{?Yí?m¬>¶çõ>…§??â!?. »?T¨i?pÑ?…9é?˜³ ?Rº =}L\>ü¬?y™‹?TÐ<›!ž>õ/q>õ•†?>¿?OVÖ?sI¾?wÚ?F«/??­ø?†P¯?‘ýÓ?Á>x`©> ">Ô›,?1í.?t;¦?P¦?­q?²íŒ?…~6>ûÚW>Û+¸>°Z?ž}?…­?J¼œ>‰ÓQ>–4>¢“é>åÌ?\­?F1Ð>™!>#Æ©=U>~R]?Âo?´Î>ÿƒô?ùa?¤¤â?¦§u?Øí’?ÄeÚ?3\?+ª>|9ª>ͼÖ?¶X?¬’6?— ¥?• +ï?â&?"%?o»?s´ü?t?‡s?¼wÝ?§*0>á…>¾ý[=àåD>>†‚?L~?!?þ®?#”?u-? |E?'rt?+d_?˜Ó?{CS?að ?ˆ0v?Ͳ?­è©?‡?- ?´>?b«ö?$Œ¬?UO>‡YÂ? $T?¡r˜?|?…?%/(?pÅô?{¦è?ƒ?§?^’z?Q?r¥J?¬—U?Ì“@•?ò§6?Íé¬?¨‘´?‚J˜?‚Mÿ?‚ä©?F^@? »?&)F?Ds?4º?"ÌO?`?¯-ñ?€Á&?O©w? ö?}I>¨S¸>br?`»?0Ãì>à×ü>½)Ð?­â?Þˆ?Ão?¼"#?’|‡?…UZ?·s.?¾€+?%Ð8?¬~>\l=Í< ?1j€?Jô?J¸?½¼5‚>·'¹?µ!0?³Þ?Ø{z?Î@?–c?‹t’>&‚Ó>C/ý?ë0?4òç?•!?”¾>2'?rù*?†xÓ?§Ô–?£,?ž5?¨ÁÉ?ÄœX?ƒh>fl±?Ÿ’?}õ?¿?Ĺ.?¥‡Æ=»ž=`OS?, ½à³=Ì”>èýð?…s?ºþÏ?×”š??‘Â?rû?Á11?ÞO•?/­?„­?¹ÛA?ÂMí?WÜ?Q§¸?‹0?ƒGl?_–ž?{ÿ]@.¥©@.|@ Á@&?Å›m?Ä?Á?ƒ?© º?γ?CO5?½‘f?»QÛ?¹¨? Ÿ+?e4›?.³'>°s‡?\B?m–8?×c\@"öW?ÃÆÂ? ?tx?Ôe?—Ñ ?](!?ãé4@(’?Ñçb?­0™@ ˜@!AL?:|Ö>o¥>âU ?Mµ?M?í?€yÙ?„`~?7É?ÈÂ?&–N?8SÉ?±&‡?œèÏ>Oø>¢Z?Aj¼?‡8™@Q ?õ¬?«î=?£#?…ð ?©V?„©?C’2>ÒŽá??Qà?KIÍ?¾?¦K?Ä€|?š÷_?„Ñ­?qE?€¼±?§²©?¬·l@NÕ@ ˜3?ѹ²?Çf,?Š›,?„ö¹@ E@°á?ƶ»?Û$@7§@*_4?@S?E4?Ötß?»o?…È?žJÿ?ÓOÛ?©k:??<#?Ÿyë@ÎZ@(¦@.ï@#sÕ@7ÉÄ@&1ó@ij?뚟?ÇÜ€?3Òç>¼°K?e>?…E@:5°@M¢?—îš?ƒ ;>–™½>±–}@Q®@S$@T?ùKá?˜Vm?™ºb?¢­‰?Ï4n@&±…?òûP?^@?6á@¯j?¯Jd?g=@C@p;A@]ý[@Qµ?¼ƒû?bO?¶P +?á«r?»ƒ3?¯6B@ô@$9@ l@;? 1?…Ü?â“›?懞?±ªy?µ¶ ?»™ÿ?Ølˆ@3dI@ —?Ƚ?²Lˆ?…U³@¡¹@”ă@Ryø?ÔNÝ?Єe?Çòˆ@2í@o¡'@F¾@/×@,eò@'ÙD@X#,@i)´@}4l@~Äž@®L@¸ Ó@ùQ-@ûf®@‹r@“]"A$ÞA PŸA,×÷A()HAA ^å@èÜÉ@ûuA›A#[ðA6y=AP3ZAx¶ÃA`‚XAAšíA`hA}çMAHÊ´A µƒArÄ°A”!eA£Ô{A®UžAŽ©›A€ê¨A•lVAœò+AÑ'AÝüÎAvæAZ@NAkýApF«Aæ†A>úA‰=¯A‰AìAQÜDA^ýSA•ùwA‰QA#WŸA+ÉÒAPkšA7o@îX1@Ù¨Ð@¢5z@Þ0°AUjA,…@û_¼A +¬A±\A¦ÐAIGA «´A§›@ç +(@ÍùÆ@ï A^@ñc@æËp@²´1@žÖf@Ýàì@öšå@¥‹@‘\@g?Òö?þá@ƒð@,w¤@4;H@~Ô@äÌ?—¶Â?'H@Ÿ/0@—½?· µ?Äô@î…@"½?½‹?È„6@µB@ +ä?[°ª?b|Î?ˆph?ºêè@Cß·@+»’?²‹®?É~Í?ü·»?Ç*?Là?™8@ äl@IÅ?éj@"Õ@aD@ G¼@1}ò@ +&¼?¬ñ @Sµ@Yes@3ÞÈ@¹@«@Ùn@'[@6è*@W@9?ØOV?³Z|?õAË@B@x•@«[?úÄr?Æð@žÙ@B6?Ôß?f?ÄW?ßp?¾´Ô?²´6@ +m¿@+?u@>uÞ@C l?å÷~?•ßR?o¹Ÿ?F4c?±? ?:Z?*ä˜?¼ž*?òf?ñ¡o?ö @-íÃ@O‚q@¹~?þåm@PPò@yÕ%@4S³@S??¬+?FÇ?1WË?!Û?´·?í„?ç®h?æö>?ì5ø?ù/@ªÒ@óå?Ë V?˜ˆP?­^©?¿ï]?ž©?Ðû?.^?¾`“?Ý’?@‹p@;@ 6µ@Ã@M_@V?ý0r@ ú@TÈ:@@ÿ8?0i_?EÌ?£?œ¦ñ>‘p>¤¢³@s Q@uÿ?ë<;?Û†ß@ l@¨n?«ÄÔ?”…_?>‚Å?! U?ôX¨@ u@$ÉÛ@1Ö?³³'?ž?Û¶@²/?¤?>úÄz?¦Iá@½å?À$Õ?V€?“ô5?Ì#.?É-þ?Ñ|…?ÙX?àÁ8?Ö/Œ?£CI?±¶À?沿?ë2 ?ñ–0?àyC?…”?‚ ù?z¼?‹ú@²U@ž?÷Êç?îy(?“?Šò @.EÈ@NØŠ@Lf?÷þÕ@ûE@ @Ú@=@2´@ ‰Ï?»­a?ãõ @ +#Â@¥{@4¾Æ@!L ?¼Ï¶?º?·Ò?¯Ø?vzá?vr?Åa\?È9â?º ?vË?Í8?Û1f?Ó©?Þ"ç@ +5ð@›O?­M>õ2&>õm>ôÿµ?‹B‡@-V@^V@ëß@”¤?}²e?CÓ@çT?üK<@\1?÷ýI@6¡@5ì›?Œ2£?6ªð?u ?‘ 7?¬i?±M?û#6@)N˜@m+?¡A ?š%½?n_©?…g?º€‡?´àH>‚(¯>¥ýU?å§b?ñ ç?Þ–™?׎›?’¾ˆ?x "?GŒ>—¤à?AZù?¤Z?§U,?ªRs?–">ÿ¾ë? ~?¯´îÂ>îer? Ž^?¬¨\?|½Á?U4P?ƒê?œE?”è/?~d?‘P?ÍÈ?°\×?‘ ÷?›áå?=ž5? æ?Š[%?°Ûª?Kɶ>”€†?Càé?»Ó?±CÛ?°Z´?±dÒ@F5@«×?Ñ?Å«n?à£B?÷#%?ÛÕ—?´Y?œüa?iúQ?€®?Áí™?Èø4@&1@%‰?Á5?—ÀŒ?ºÀ?Û±~@Ìk@ ø?ö3B?’Çú?¤%Í?艥?ìkÙ?éR¹?èNÊ?g>G?\n?«X›?ÿ +@Îí@á @HM?ÏÜç?©uà?¡w!?rç/?MœÌ?–P?´@0@GÒŒ@+ô©?Õ–‘?É/j?f“?fŒ?/ ‹?-g£?Æ +?ú¿?Ô€@?¬år?¢?zàÞ?†Ä@&|e@ ö?»tî?­¸?“Ùù?8?ƒÎó?}½Œ?™Î?»‘‰?¼9?ÈÈ%?³^W?¨mè?Ÿ{?–Š}?‹ ?Byz?X? ú?8«?EaR?,§y>Ýð=¢'—Ø-Õ>èÜÑ?Ø9¹@+2?šÃ?3ì?G¹¡?iîU?XìI?$. +?!¢J?n +?xÄw?·`Á?¼“¯?õáò@ è?òŽ°?ìö?¢)t?m ]?'Á°>uêþ?<?²Ê8?­?—×6?ùÅ?(îE?2yº?'´>÷c@?ÕÆ°?á/¾? WX>ù#>õB>ó‹h?@²?*¡{?fZd?u}f?7^ï?5p?´e±?ðØ:? šÿI>B=Œ>wé?sÒ?ï¾?iê@?ˆ}= æ<ÿƒÊ?>Ö!>Fð‡>W2l>Woä?î·?jN?èè>9H¹<?RS¦?Kúþ>€´?Š¦ ?F@ >Ø6;>øP\? +¹˜?€Íi?bÁ—>,/Ô>çØ?„Æ|@4ôÂ@¤¯?Â)>¸N%>3µ;í £<úþr<Öi =ÒÖ>™6¿@‹}@ )£?&z?Fý>èu =š9>My–>nð?e˜Õ?yÙ‹?5ð?×5?;Œ?\È©?gÕZ?d2•?bWô?kþ;?_þ}>í!›>í­£>î9Í>î¿‚?&}8?9›Ÿ?@u7?GQÏ?>¸Uã>Å’>ÒÐ*?R*ÿ?îØW?Ñ6>àµ>? Š?Ó'w?Éë•?Tø +?L_³?šaý?áö?Põ!?4¼? ”¡?ºM_?o7o?:˜&>™=>Š|>ú?i>øÄê>íã6?6fN?‡"»?VÎ>ûØå?8©?$©T?di ?½›v?Ž*Þ>gô>O Ý>7V6>O!ë>º«2?™@?©<˜?™¤”?ñ€?IúÉ?ý·M?Ð6Ø=n"¢>4ë6?5®?ršI@a?äí?7‡?#=?ƒY ?{„¹?°??¨{ä?™Ñ?S½?DEE?ARÎ>ÛÀ5>ÏÁC=°©/=ÈT? +Q^?6¶?"D>×Éú=³õ„?M—>Òø^>e?E ¥?[•Ý?¦$‡?«sn?®²P?£ \?„§w?’A•?áLÞ?Ü™c?¼×?¾ji?Àåý?™äµ?åù? 7Ý?Wæ?iÈ?’w^?‡9à?X1Þ?4iŒ?v?¤?P>ÈJ¿>Vÿ>?,v)?®T?‰y?"’?“î_?ãÿ?µ›q?‚Kè?³?Ý?€ŠÕ?yûŠ?tÂÚ?o†þ?”EI?£å‹?‡l?€u¦?R–?7Ä?i?}X>­®Ì>’‘?-<ý?VY>ê;¡>’Òœ?$Â?70?c+iZ‰=b¶N?a'?v†Ü=«ºØ=ß%ô> ¦>°y>6¢ä?Éãì?º•µ? Ò?èê>ô?ïR?¸õª?ÈM@×»?ä{=û”Ü>ƒE&?‚å$?l6m?ëu?b?€]?&Sÿ?u +ž?RHÛ?"?ƒ¬j?øX?ÓÁ¹?•Ç¼?¹¥6?î–Ì?»Ù!?_'l?e›˜?ƒÜÄ?ˆ¥Ÿ?má?{]¸?X‘¨?]Z}?b?Q'?8àp?dä?ƒD5?ƒFÜ?ƒKJ?.?¼j?—|g?³Se?‡÷Q?q•§?”ñ?¡ô¬?w ?_ï?\ ?eãü>•} +>jp?Öa?ç6z?I­‰?:&#?Ô¸ß?Ô[W?¡(?i?¦˜?¹îù@zz@Ðö?ÙG?ªc‘<}Ð'>€÷Í?€²ˆ?Äs@:=Ó@ +¶?4Ë©?|¼5?µÓ?½Éâ?ÇàÜ?Á?ºT?¸Nr?ÀÕ;?×}.?Ýr?•9P?Si?_“Ý?\oc?Á?éhxC<)jY@-Â@^Ÿš?¬ëÌ?Ø ?{2Ñ?‘–‘?‚¢?†àÂ?[˜É?ZìÆ?ƒÏû?„õ4?¼C?ĺ«?ì°u?×ÏÂ?{°+?q—;?wUñ?£¢R@Bö@É]?…D?¶[@ :–@¯O@ v?Ȳ„>üJF?„1¿?É-W@ †B@)f;@Lyo@^ü?ɘQ??=9?»N?B?'FÙ?3¦¾?Éð ?çÚÝ>¶R>O?CN?D_?î\û?ù4Š@Dq@ãc?´eÝ?Êû@Xë@ nx@½ô?èã ?àî?H@˜?…^¯?¤d2?ÂÉî?Ò=y?êãy@kD@2‰?ëš›?¨Üð@ ¤@Ãä?ßè?È\@OÙÜ@_ì?ô¾7?èš?…‡?öÔ?æ°?Ô?œd ?¬Ÿ@ +§:@žç?È #?Δ?Ü+ÿ?¼)`?…U¶?¸iš@ëg@#í3@B¼h@_(1@wv@}µf@‚B†@&:ì?èÁ @QRÆ@uǵ@Õy?ØÞ<@¶U@;ö@Ê€§@Ç@@ëwP@òš@’V(@’”@ÿ7MAéîA+MYA'ûŒA gøA ÊA3@Ûá@…u@¤g0@éþbADšÂA›¹üA”NA‹nŽA—w-A¢ú A€¨ŸAL½æAh«YA{šªA„ZA‡WxAr|±AiôNA3]ëA*&‡Aˆ.BA”(øA_TAUœA7¾$A5“ANÏ¡ANíAáBA;×A+š6AA2A§DÐA›MôAEôAR|5A|<AFúL@Ž\Ø@«€ @Þê›@ü­€A‡­A(mÔA7…‘A@úAKã!A=2‘A1VˆA5ÛKA8‰Ã@þÿ@±É)@Íï&@ÚŽâ@ÞÏþ@â”U@›D/@€´ï@]“ @V`˜@5à)@*Cu?­!™?…B”@nv@!´@>Çf@@TÅ@€+Ô@|о@n½@góŒ@žDq@˜À?ƒT.?Œ«î?èÝ??ö¢@3Êw@*V!@ã@Ͻ?ÛTÑ?ð¯µ@#Å[@ í?ÑV?‚ð×?;‰ª?I3ž?‚Ñ·?Á±®@"í²@+Ðò@AÔ¾@Òq?ÃíV?÷û@#04@:Ü@[Å@9…@ àB@µb@>Îö@°?âu @©‘@F<@'?v@ ‹Œ@Œç?ï| +?«Rû?c±{?Åâ?ý ”?ØH¹?ÂÆ€@tÐ@’p@°D@ã?’åñ?f@?+B?Eð>ã×â>~™Î?’\ß?ÖŠa?ø‹Q@ ‹Ô?ßh¥?¯®4?tLÃ?>Pñ?9±$?5?¾ho?ì *@ + @(9K@¡Ç?åþ7?Ú”÷?Åu.?½iÕ?ÁQ@2h©@b( @]@4@WŽ@J³@?’@ $?Ñ,u?¿¦¿?½éÃ?Ïš~?Ù’?ÐIÃ?ÄÆÆ?À‘+?À,b?Þë¾?ñäQ@_„@ŸÃ?èŽH?°L©@Û÷@%$ö@"}?¿–î?¡yT?€ÿ5?õ´„@7É@?Ö/Á>̉©>ñ­?®ø?PJ?‘Xª?´ë6?ç²g?×i˜?¾Àá?èô‹@k$@Jn?™a]?Žn¶?{Ï?®Ê4@5!@þ?Š–Ÿ?²‡«@3’@,÷•?öëä?í˜þ?Ž?–»Ê?lÛ?p4ø?½ƒù?¼­ö?‡ôo?€…K@ ª»@*2¤?ÆöX?½3?Úgë?à×?Â%q?¼×?ªl?¡š²@$Jå@B>Ã?õ†ú?¼sO@.?Ø@Wr@3Œe@×q@\©@ ˜¶@"ˆ?ú›g@íº@í1?üZ?ú=v?¾YY?4äá?u ?·Ê0?¹L©?Å’'?µY?•?¸Àì@>‚o@;€?²DW?·îÐ@7]¸@9žµ?Ç Ë?Ãââ?‘ÎÒ?$ú?Çx?ÊÀ @]@/Ÿ‚@ Å(?øË?õL°?øT?ê­‘?Þ-{?û>?#Щ?¶ @*Ά@%DO@Î}@5?öÞ;?öÀÌ?ôàÙ?ñ‘?çôï?áUu?.,?9?Èá²?Ëún?öÉ?m?‚€:?p o?‰ål?’gÐ?r2?…’S?Xj?,-È>ü„e>X?Lb@?#@øÞ@.í@,–8@KO'@FŸ~?ª?F?²Ó,?Óʽ?éü/?æaŒ?Ô«’?}ú>D?´MC@’¸?úË?ÙQ]?‘m«>$Ó=Ÿý¼<9=FB=î—Ï>— +?÷½ö?誰?žX? ©@@©@ æë?s’0>ñ0.?&Xi?1”?y¶?¨ŒN?Ÿ?-?•ï†?ˆÌc?pC}?ƒ•8?í·-?ê~D?4§¿?=Ý®>ØNC>×Õ?L?o=?O16?2V?x>îÊ€?N(H?×ïí?Öâ|?.¹?z¼¡?!Ç3>ûü+?d!O?y”y?rx?m†G?mhã?mK{? D?Ó… ?¿h’?›˜ +?Žìv?²w? +Π?½ã!?áM\?Ã`3?°Ü5?õ@È”?ØÊÄ?Xx:?£'ª@0Ù@&Ö­?Îi?ÑÇR?•£?‡_?‚9Œ?c¬á?¥Õ·?æ/z?Õ9œ?¬×±?ª?¯V\?¯AÚ@°@(1?Ü=8?Ê¿?”fÆ?iº?Ð%[@(Ž§@ìr=‹äâ>`•³?éð?èu@$.,@$ý‹?É?Œ¯k?§Ì°?Æ1\?ÉêØ?Ó+?ã?ú;Õ?öW³@Pm@YX @4au@,¯.@•!@ –a@ Ñ@5!æ@"œø?¹õk?ÅÞe?Ì“??Ð~‘?Ôw/?Økô?ÖD”?Úò?Ê&×?±É?–v,>“Æ>ë•¥?›~b?—Xÿ?C ?*×k?úèÜ@#…³@y,?·ð#?ÏîÎ@ ‡|@ Þ²?¼R?É3ß?Ø +B?Ô­;?§$\?’]­?_<á?ó?`* +?¾•ö?òuR@dÌõ@fv6?b±?gD?á½?ÿh?uÌÃ>Ðìï?#ÙX?N†¶?žýN@'nR@}7?hqâ?fås>ö©„>èá"?ˆ“–?¬Šš?Ž>?iú?·xÂ?ïz»?Æ ®?¥"À?ª4á?¯®?­Où?°q¡?° ¢?Á:c?ÈK©?ä˜?ì— ?¡1?m%è?ÊH>@­r?Çp¥?«§?;¦r?†“_?Š³ª?€:‡?g¸©?\§’?z· ??–x?VÄ?†÷>ò²;?VÌ‘?WJÞ?LT9?AIÃ?h— ?uˆÞ?¢»~? Å?Vä!?xe?’îÓ?°Ü~?‘>/|s?„?BJŠ@>@4†¬@³(@cÄ?Üq'?°«ì?˜â(?ƒk¯?n/“?ƒÞÕ>ä>å>Ž¨)=µ +=“•+?;Ë?÷ü?OM?ñˆ>˜†&>»C±?ûŒ??æ?èŠ?§>?ó4?2ó ?ƒP…?[S?[“y>üÒ¹=N_“‰ÉX>ÅïÜ<™á?K‘¹?ý Ž?ÇÕ‰?•1=†;è?1 +>ƒfñ>‹±n?¯ôB?³×Q?Tµ?„ñÅ? Ž>Â>žj>äÑ„>Òr­>?R>«r?xE×?‘4>Çv <ÌA4>rÝM>÷ïä>ÃÁî><ã>±¢¿?‘ ]?Šã•>ñ^í>î°L? ží?¨[þ?„+>µM>c:%=æû=RØÛ>áÎ>í)?u©>ôQØ? ¼x³=à#>„ÐF>íY¦>øÈn>úËî?p¥q?³%??|÷{>ûØ–?SÓV?§uR?Ék“@?´:T>ˆºQ>•ê>¡p©>¾¹V>Ì Î>ÚðË?+8?6V©?~×?G€=#Ì=ÎEà>ÿ g@·e@¡b?ö¼?U–ë?´Ñ÷?¡œ©?y.ò?nø>”F>ÀÔ]?+Aù?ý“>x+>Z;¸>h¡9>Ç«»?½„H?ÀJ´?½^?–·9={cz=ˆç¬=Óæ?O>ïŸ">žµa?Ù +?ÅŠ]?©¥5?JA±?ˆl?ìiÂ?ûF7@ß“?ê*¿? ?5:–?É?1ü8;¤G€=']Ô=&ùœ>Éá˜?ôP?^: ?"^F?Ni>­*„>š¼G>X¥>³CÝ?è?$©?(>å5¡>®›Þ?_‹Ï?³³…?x•²?šh??0û?m)Õ?:ëõ?~">y¨È= ß =ôõ,>$}ê?G©i?‘íï?›Xb?š1ç?q(?Q#?–j?…€ç?}{,?gΤ?Tz?Š?GKi?_®«?´ ?ÃßÛ?.>Š?œ?+Mÿ?S?t£‰?}fŽ?üi?‚­Q?a§Î?U2ý>Ñwe>Á0p>·6>·æ^?Ìm?Î<ö?=Ö°?MÙ?¡µ¡?‘ùµ>Àá>øq?ƈ¸?¶ÛO?ß?!r?Ž%5?z3«?¦b?Kgÿ?Äf{?ÂP4?À§£?©½s?t´w?blC?SÛZ?%x>’`?ýº?†Ûs?·Ý?êIB?ªjÜ?DÚˆ?|ÞC?•á.?ƒ?`”/?tÁ>»ú«?Y’â?›7?Ž7–?ƒC{?}×ã?}²0?+pµ?®š>FA0>9 ?à ?òŠˆ?˜Fx?ƒiq>Æã>›¢b?Kaè?Vº*?" ?ù¦?j?¤ò¼?„3?…IÞ?¶z»?¬03?-P?0u-?eØ?t‚™?Ñ2m?ðÎU@E—±@!ï?Â{?&s£?ƒÌ-?ŠdI? os?«Ð:?®aÜ?Ü^d@Â?È”è?&t~?ÀÒ@K?Äü??Âx?— Ò?ÎkP?[ùŽ>›´?­Ÿ?óiò@ûä@ Œ?›ªj?:¾D?cô?v!>?ß 9?úx?’# +?ƒm=ùÜ7=š[?ÍÌ?ŒÝ?2jR?@XS?„kL?ˆf1?­K3?¸~"?×;I?´‚{?„>è)>‚n?%Â?Æáx?Ãá?Â4&@<à@3·Ô@"šB@’-@æû@:§?ëÑ?» +\?nò?¤[? ‚è?Ô•Ö?—¦£?z4$?¯*?»-B@Ad@J?,K?íO?ýß@{?Òô—?Ì?¿3î?Äd?‹±?¡°>Ï2~>üR?[8Ü>&5?¦¨P?­N?äÜr?ëò@ßá@´8?­Ë?´¢ ?Úÿw?å~¢?ê¾è?äCO?ÝÊÖ?¸…?‹4×?†™°?‡fÔ?‰ŽŠ?‹¹?˜Å¥?¥`¼?¾‡ì?È„?½ ´?¿MP@æ@$¢p@ÉŸ@"í@>ç‡@;4 ?©qä?¯3\@†È@âÅ?È õ?Ãå¢?¬ë?¯iK?È í?òÎÃ@,×@ Ù?…U³?†Ùò?‡e-?ˆ=É?ÇZ?À?ëÕE@’¿ @Ê;ç@»H@c @lõ@s?ç@Ì?ëií@—ia@®Y@êb*@ñY@@ÖøŒ@Ó AŒ·A……@úÉ@ömª@èó@öÐ`AœA jÝAA0ÿA=FèA-ëA%5˜Au8AI®FAŠPIA•RA 4A”­âA‹â¾AÂlAl«SA`AZœAuÍóAD\A&—"A +™Ï@‡Ú®@H²ÏA9Aô.´AJïƒAX…êA=:UA$¤ïA'¶PA+RÀAþ<@Ù¡€@ù±áAÉÞ@àìQ@Í• @ý3@m?7@“ +@Ir@hÇ +@Ž@œ£ë@¢Åš@9b@$@¿ÂN@ÅS(@ˆd£@†¹4?ó6Ý@«*@c–c@^w,?Õ8¤?åý±@LSØ@Gi@DÐÉ@3‚ã?°Z„?ÄN@XJ@rA@6žî@'é²?þ ?ô¶?ñÇ?Û.p?™ì?;“@#r˜@?’V?¿ì!?üòì@Êç@éž@€@:p?Üd=?X?¿ðÙ@àu?ûˆ?æ Õ?ÔÀ”?Ìêº?è­?ö‰;?Ù@Ó?Ã?v¤Ø?þ@ T@_Xf@“×?ÂÇE?¼Õ‹?¼\:?ÂX?ÄlÅ@Å@IÛ?Ü.?¬‰Ò?~g¾?EOf?»íÞ?îÝû?ÂûÙ?©‡q?ôG@Âè?£xE?DG†?n ?ý?ö¸„@ 0O@öz?äÖ@%„2@AS@ŽÌJ@© @1ûÂ?º"ç?¾Ü?ÇW?І ?Ù®|?¿w?¶ H@iõ@Ï‘@ J=@O¿?¿À?™D?«Ú¯?ºî´?Ò”>?Þ3Œ@#À@F [@WÙ @lMÄ@͈?À`?ôbÕ@.ær@´?¹?½4”?¿v}?ß´@ö@1Þâ@^k @cã?˜q?Û/ª@±1@{™@Ù6@µc?ã$ý?ë)?þ)(?×Q[?‰ #?q`&?RÜ?pò½@à/@ ?Ö{Ê?ÊPè?¯i?£iˆ?ØW?§»?}+?ËÈ@„@ µô?½ƒ)?¼Ò?Ç*?’0ú?”š’?—Ü?»X?½ò?½k?¼õ-?ƒP?Žq†?¶G?Åi?¿ª:?¼”ö?­Y%?¬6j?ßÛZ?ø@õ9@Ø?²[È?7ç#?˜½â?ÈX†?¡²?.Ù~?‘¹L?ÒEô?á?®?ì’æ?ßm?Ü@ã?á^?îÉ®?Ô+j?#F^?9›%?¬û¶?­Ì‹?—æ?‘Üu?øÿÑ?ù K? ?T—? ×ß?Íx?>Ù”?Vv$@G@=@nŠH@8¥V@ Z;?Ö I?šå?¼K+?ÓMK?¨:?wqV?’ª?¼;†?è€Î@Õ×@ð•?ï$B?Þê?}xœ?„+ó?‰˜Ó?3ø?ÐH­?ÇìV?ò~Ä?öi?™[Ö?ƒe¯?à +Ê?Õ•+?Ò³ï?ÏÌí?ðÚi@$ˆ?ÞVS?«LY?¿¦?àw`?ǃ ?y-x?€4 ?ŒºÍ?²T¢@ò)‹?lý?¦x¬?œýˆ?šò?¢ù4?vX¶?q¢y?ñOÞ@¸á?Amé>€ey?žió?ðóÁ@ta@€Ê@ Õá@ k?ú§?~…­?…ïá?ð?ïíœ?d{¦?XŸ?Ö`?zŠó?’§3?›«?—Ïâ?”Ž%?æå?Qÿñ?B‹’?"J'?7=?•d?¥Gl@I²@N”ƒ@é_@ UV?ÃqÅ?¥rü?^¼ì?&Á?¶tQ@÷Ø?ìcô?+ù?'…B? ½Å?æ‹?‚Ž£?€%?A¢§?†q?³£?è¡j?»a?Ë?‚!œ>ëcª?=/n@à@ +Ø~?°4;?°¬?° ³?¯öµ@ Wš@%*ñ?õw_?¨~Y?c•Î=“øC>»]¡?¯UT?¯œç@ýÒ@í@ B+@Ã?ÇÙª?¢W£?k"6>ù]">é´?LŽ?4ù@Ü @ž?÷âE?ûÝæ?ûô?®®?Öè?ðlŽ?¾Ë?gÎþ?‡Ë'?뤀?÷í@;½?úÉ#?½kË?°5™?·é?¾PÆ?¦½%?‹'Y?£åö?¶±P?°ˆ?à ?Øu(?‡è?„Ã?‚G?qàÏ?¨6Ñ?äÔ¨?Á:6?>ºc?9y‘?¬ï„?¬é5?•¶Æ?ŽI"?òÂ@ l@¼?ÜG?Ï°“?«#?µ?ब?Üel?`#?d¹?†©`?Žñd?©œÌ?³˜?‡[=? Ÿ?i @A @Iò^=¹u=Ëœ?€Ud?©ŠÕ?™ßÎ?vÉÙ?Šö­>èãœ?ª½B?ÁÔÆ?£ÊD?‘ÍŠ?û€€@CLF@‚ô?}vœ?q H?i–Ô?s~ó?}Àu?„ +?K›~?WÖþ?ýˆ@°_?ºÒÓ?„¯g?Ÿ?¶¥?™±?c0g?`ׇ?o$á?iå5?dj?z:Â?\ƒX? ‡_=±ÈA=2™Z@Â@@õ?µß±?§*þ?>²?0fw?Àö?b?åhD@ý@(¯˜@7æK?Ä_(?‡»?†×H?jr?ʱ>ûT1?sZ?ŒäŽ?GÕé? ¿]>=Ä>ZoO>ºêö?²¨?Fï?6?xíy?é‹>ßüç>úö +?E=>æûA>Wà>ÿ Ú?MŽõ?(A­?-?3ûî?mÿ!>Œé#=>ø?cx?"›~?)!Ž>ªB¿>MN<?<p?ˆÂÏ@7^'@ã·=Ë´ì>\Ù~<+z‚?ï?²=?Ç¢Ö?˜®$>Z³i=Gm<ôÓ<^p>³7">å†Ù>Ù΢?ÖþI?Ô…€?ªN˜?©QŽ? P>G#©>Ò%ƒ?%•“?ó«>™‰>¦–#>úŸ>gd>°µˆ>ܲº>è™h>êª?:€±?“qã?€~¼?7ò ?D™Y>î>î£b?‡{b?£øU?‘>&Cé>¬5b>ñ£Â>¨óÖ>«€=›&><ÓÁ^3`;>u Ç>õßU>öE.<’S?@…?‹^?åÖ>û“=Î2*=UÇ>‘³=>úÊé?EZ¥?†å¶?L°Ü>ûÕa?×?TÑ+?„ +?®£P?¥)a?j,m?ÏÎ>9¦/>Úð?‹˜?˜6Ò?¨ƒ?£¶ß?„€ÿ?bÌ{>ú±ù>î÷Ã>ã!.>ཇ???®/?3é?LÛ?²B'?šL*>„æƒ>©”q?$:†?òÑ?V'½?cnª?€¹é?ˆÁÆ?­qT?©ôš?…Ô?Ë?Á’¾?צ²@\•?Ò0»=ò(?OŽ?[/?d„?>úÛ?¾_Ž?©%È?:ã(?Rð&?”Iî?“ÿ?Ž¨?‹$â?k å?vÚ?Êc?,,¯;ç6å>3sÜ>ðY>¨">&Ê>÷¢Ë?d4ƒ?u{É?ƒ?? +ÅK=ÙÍq>€ÀŠ>Å ¨?(×?t£F?®|^?ûÈ@"Ì?Ó¯)?mY>ä£=Fi?mÄ4?Ä;|?äG6?ñõ5?ž0á?]ˆ>Ó™>rÁ$? wo?Süp%†<Ì*ç?ªû?ò(?·r5?¸H–?iè?f¨?Åd?œ¢?Õ5K?Çð?KO>?ZÔ”?Ä2’?±¯É>ÓI>Ê?×A? ‘?ƒ±T?„ƒ?¬ýÀ?¥ÙB?‚êû?—WÉ?ÈCé?°Ù²?†R²?dèœÄ>¿dŠ?XÒy?tóõ?“é=?z®@?C™Õ?™%´?Í*j?ç‹Ô?ôaí?v>˜”Ë>…ªu>e† ?=Ò?ƒBy?+¤Á?J?[ý-?‚ ñ>wß->=0 >šÓ?òP? `?µ!u?»4@@é©?Š}Ú?ƒñ?ƒ…g?‚ô¨?Iÿ²?^·ô@•?ù‘L?\ŒÎ?!?öH?öˆj?ï o@[!@2žû@?{s{?”¶ ?Þb?Á[ù~O>€ =·‚?‡Zl?ÖwÖ?ü°@'6?âÒ?Ôt¤?„ÿ§?Qàð?T?AÜ?EÎ?¨ ==Q=K¤ó=‹„=¯-×>8‡…?„jZ?|H?,*]?€2 @s’?ð­A>eù€>£D—?Ž?3ÈE?‰ž?‡Y?e "?žð.?ážS?Ϻò?²û©?ž}Ý?½ë?L¹U?-?ÄXó@ÇM?Ûb?Ç6 ?N´g?"d?FÔ?h@t2@ ÛÐ?Ù¼|?ÌãË?Ø?§2²?âT‡?Þ^(?ŒçH?„/ç?€9I?ƒN³?ŸŠ]?¨’?Ç™V?ͳû?ÙkŽ?ÄU?Ÿôþ? 9ì? X«?­šÒ?û?>èa<œ8>»Ÿª?)ê¤?O?õ?+¿r?:\í>……›> ¸?¥!?Ç,×?m½ ?UðF?‘?Œ +G?Èö?Ò'½@1’@ 1?XL?„ÍÝ?àûœ?ÃÈß?Gf“?ÇY"@N @E«@<=@ s?üŽi?€ð<¸µ¿>«¯?Ò«?”‹¾?¾C?ê%ž?üeò?¢?…aC@ +E@`ð?ó±?à1›@H×Ý@TY‚?¦Ê‘?¡è?wµ;?u÷ ?—„P?°U@\?õñQ?¸e‚@V@SXÚ@#"¼?¡cÓ?®†?Çûþ@4·M@ó @sý?€j@d=@@®Áb@ŠSª@pÐU@‡µ@Œ+C@s1¯@fÆå@°®ë@·ñ®@Ã3Ñ@Æç.AQAÎ@ã@ë».A +Š¨Aí6@Ç’È@ë9}A6VA'Vx@ﶛAœÂA*@AK»A9ÝA®ñA3?ôAC™IAUiAs2[A„êÎAzùüApÙéAv9Aw×OAe +æA^ùæ@Û~D@“LZ?Õ±³?…rW@0b@@Jº&A?@ÿAMžóA/uA(³}@Ð…_@Ö±µ@ë@ù‹ÜA*:-A:Á AˆëæA†9CAx]ãAfÆA<¡PA:õ¬A5ûvA)?6A)A ‘‰A-2A0~@A5ŃA5ÂA5ŒA(¿uAÝHAœìA0&@ð)Å@ÕþŠ@¦g@ºað@ºþ@¹ÙT@‹\à@yþ˜@¡3@©\§@TÓ@>5–?âÞ?ÈÊF@©ñ@"H @¤Ex@«¾@ÑB@‚3?è'¨?òTg@„ÿk@zQ'?Ý#õ?æÜ @;@#U@DÏG@'@N¯1@)wT?nö?ÛÂO@D;P@6ÃÁ@ ž?þnË?‚®U?µÅA@ž@HG@7¥ò@ uB?£¹R?™àØ?„i?ÝÂ`@"î~@ ç?áf9?ã„S?Ú~Œ?ñ$ˆ@3?ôæ%?ØǼ?‚©¹?þ|?]¤º?Žš?ÄV?ãvÇ?ŒRÞ?#@ÂF@@ß@µ¸@”š?•æÿ?+%Î?#‹m?W?Ä-f@h @ ª@Ý?âO+?ºO?-Î?@<ó?›óB?·M?¸¯?°Eo@ŸS@2ö±@1ß—@4,x@HT5@T—Ú?·Ï¬>ñ¶5?a©?b^?]"?†Sì@ +@+ýþ@»?Þ«Y@–@ oÃ?®NÕ?0Ù–?ˆr?£Vñ?Ç"?áÂ@»È@2Êè@¸r?ÿæ|?Ö­?°á¸?Ô5–?î'¯?¦½5?cìß?™{?½Pô? Ûæ?…Õ?çÞN@*÷3@ +S³?¿­?ÓÇ?òË?¼ˆ?\j?ت@6OÅ@q ?ž^?ŒÏ-?50©?_ûŸ?¨"ûžP?Ç'?äàQ?€x?/ú?Ÿó–?¿ª‰?\'ä? gÃ?‰»Ï?­ò?³Úz?»òê?ë†W@g@ ÕÜ@%@ÄŠ@ƒ;?ø+?f®?˜u?ÆÛ§?¨Z?+²¢?@Õ?y_™?y‚@=*@Œi?øþ¸?øïÐ?óÒL?ëÊ•@ +Ù$@-?Ûê*?˹9@ž¦@¤@@Î~@‚à?½›e?wÐÌ?Ápq?÷£?¥Ö?&:?x>nM?ÅhE@†Cn@ZO?‡[ö?ŠT‹?·j?´š??±Çº?´@D£8@@g”?¬‚?¤Â÷?¶%¸?¸\ˆ?¶O†?ºÂ?öò@›?Ù±j?·æØ?Š'?C R?1×F?¥?{,×?÷òW?ãçè?²¬?È:@7&<@3Ÿˆ?Š?Œìx@‹t@ ë¿?a?ryÅ?ʧù?þ“£?½)Ý?‘+¦?ÕE³@—@:ù?ùOe?À›¡>ù9¦?&Ï`?µ¡f?¼¨R@Ž @ü¼?(ˆ¢?!?šB/?­ê? Y?Œhj?¶;7?Û·?æÒÚ?ð¿Y?Ön·?ªÃx?¼&•?ìà?â ?z®+?ƒ‚ÿ? ã0?èä?¤DÇ?³šÕ?³‡?³q˜? ØÈ?–m@?ƒ‰?_–Å?¶{@Ÿ@+0=B'?¯~Ù?³§Þ?‡¨?Š.Ö?Î+?àD?¯jJ?ŠëT?¹œs@“?åKæ?å•?˜ž‘?ØÙ?ÜÀ?¤wˆ?§…Ö@D~@."A?é*•?´f•?Êt²?ÖèT?ºœã?Ž%g?’æ?»Ù?²ÍM?”q¸?—Üs?¿Ö?Á6Y?Ô·?à.Ÿ?’÷¤?ø"?q’×?Ûç^?äÓP@^„@L?ÒÎ"?Ùê?¾Ô ?É^‘?Á-?¼>X?Ý%©?÷þU?ßêp?®Ž{?©6ë?o¶Û?y²}>ˆ ê>¥/%?\öÙ?…Ýž?ò¤å@!P[?ó[O?gÎ}?o L?…9?[@1Ð%@;îk@0Ñ?åþv?Â!²?­hï?Sµ>aº>óà?Æ ?ÎgÆ@ÐÞ@ÄJ?n#>OjÃ?Z6’?£@ú?ËÛ?p¿U?–Šœ?Ñ2S?Ä9‰?†6Ý?ŠS1?Ã…o?Ç)¾?|G„?B¿®?ëÆ?£né?šõ?mTN?l}V?€×W?‰uš?Ž ÷?…šB?¿(³?Ë2?Úæ?÷‘g?ÍLâ?fùQ?jÎù?r8 ?qq?R·-?@-/?]Ɔ?g„?z3±?Ž +x?¢‘(?­ô-?™kc?8Žç?3»?¬KÇ?¬¸?a»¤?R“X?Íe–?é=?ìèc?ç±?ÅÊ?³;—?¶´2?§]ü?@Æ&¤>vëk?7[?8Ì$?¥Çþ?׸ò?Æ^Â?±ä¼?Α­?ëU¶?ÓT?«÷J?µµš?ÌY?¤>ïß=?,}˜@«º@1M>ÊdS>àôÚ?´‰*?ÁD{?;tº?=§??¤£Ë?Ÿ"É?h~>©&?Š“A?¯vR?ŠEA?€¯?¨¡ç?­Ý2?—ú£?– á?„ü™?bÿÂ?Šï–?£•?Úùb?úă>åNý>U~…>”Ï?:?ŽÜö=s93>^ÝZ?ú?Ã^>À=Ê>¸+þ?Ä?É7?d>]L¹9ÀÊJ=ÐD>|é¥?mû;?4=qï=–MG¬¥È>ú>±€/?N+?Ú¾²?µp>Úw¹> >Xšˆ?œ5©?P?|¼?_‡@6¹P@1Žá?¨÷?©>¶?” Ï?Ó?e¥/?d¤(?1Q˜;žå•?Ÿ¸½?¤nã>£ <ËcÝ?L«+?©Y±?”}F?lÛ?f>>ìõ*>í‚>î[>î—ª>„à9>Y1? _?!ñ ?1¹]?2u?7Œ™?R/9?híá?vÒ£?,ƒÑ>ã¯?H|ô?>Vk?RÀK?L¼`?i'? +V?7Ó×?*•=½¶,=ê;ÿ=þN?8›¥?y †?qäÚ?sW¹?¡Ã)?¶J-?³Ý‚?³^_?ÃfT?ÍÕ»?e[‘>,E5?T°~?Í ?³t?¥y?…\%>ý®û>øøÈ>Ï·•>ü9?Bàd?x< ?É£†?ŸBé>ÿ3>ÿ`>ÿ‡ä?¸Ì?L8?5D?Úi?¶“‰?1áé?L®@?ƒ$?}‚?‰” ?Ž*Á?‡?už~?€»I?cÆï?ØË?:x?½á?Ï>u@:¡?Ô]˜?Íø >Óã?R.>Ó¸>D4M>·e?=ÞÖ?iE?žzÀ?‡zÓ?0Gö>æ[K>€tW?2ˆ?I8?˾?WË?XŸ?0üÍ?z…%??Ë>Ûa<>¥]÷>yŸ€?’,?V>«?®ß0?çmm?]sŒ>ÂDŠ?9É›?ŒåE?Áð?â5¡@ˆí?žéQ?ë²?)·â?)s ?¿zš@Rf?D£E> >8?…ù­?¹üÌ?¦B?—'^?sª™?\Ô?ž?´ë”?¡~?‚¿>ÔF >m¤x?¾ñ?ô)>?»÷?·CT?ök?ÃàP?‰»%?‚ ?úi¿@¢ö?‹š‘?€GÕ?ö[ ?òSÝ?‹§¬?:§?¶Ng?¯å¸?*˜Ç?ãï?Í(l?P ++?EI4?Ö?Kš?ò:ø?Ëgà>Õ`3?(Œ?‚ë:?¹Ò@Áo?핇?Í?5'™?vs¾?EìG?>ëÅÀ>Àua?Sóž?®cŽ?³×Ž?µ.Ä?›6(?…q?‚ +?ƒ$"?¸Vý?æÐñ?‘zŠ?8;?‚%Æ?’ +m?lèë?^ž?4Ÿ³?ä²>CìÖ<¨øF?ùˆ„@ ?J×L>â/L?Ë7ë?Ý`D?ÕBÒ?× ?ÃkãI>Þé3??¯µ?J˜¼?žòÚ?™-y?·Î~?®94>¯Ð ? át?Åyq?¹'?ƒ¯›?mõž?îN>ã€î=©Èõ>?@)? +[? ‘?Ar?¢0?Û&?à?ä‰?tC´?¿(Í?£¾†?ƒö??™Ñ2?©3?© ?¤Í?çg>a’V?i9?=£š?è"Ê@ ÁN@ ¥*@ ‹<@)˜@߸?{k?2”°?æ? —ú?}¨Î?{ôo?ðñÄ?äÕ?§e2?Å”?„iW?®´>@E\Ø@/á°?ö1†?ÏÉ™?Q5? r”?‹ø?\M¸?·A¥?˜c½?xÛ‰?ƒfš?„¥§?Î Ð@ ÓE?ßÛK?¯ÙÓ?¢W?“* ?Ýn<@]Í@ŒÝ@#Õ€?­_©?|‰ù?ƒg~?„Û€?œÄ?£ŽÐ?÷¡?É8>7ÞØ>p±¨?Ÿ?©?¤FÓ?ÂU?ÁŽN?¨ö?ªB'?¬v~?¼?ÞWU?ÞQ?åh@)@(®@ù¯@¼ó?à£?…(?óªB@%¬|?Í”v?5{?§à¶?·*†?‰„?q•?“¯?”Òï?¯@å?²‰¢?ÿŠ‰@ `@ +_º@âd?ųó?ÚqÚ@<¥@,çL? ?“¸?°C ?´Š?Èz@ž±@O»Æ@"yÅ?·ö?Mxý=f§?Œx2@¬˜?ÛÍ:?½Þ?é¨k@ªö@*··@:U-?»kM?…aD?ÍÄ$?Þof@3ÌB@:ºG@¬Ð@ѧ?È?Ê£?åC|?ÈýŽ>§$¡? ,É?¸eN?¿ƒ?¶(°@ѵ@…Xb@oOJ@D,Á@ç?ÇüÂ?é@@ˆS@K3l@uÜ@‚ü²@ŠeÀ@Ž;­@Ž¦Ú@]v¥@LHP@› @¥Òk@ñ°¤@ü°Ï@àBŒ@Ú¶ü@É:}@Ëä“@‡¤f@‘´>@æA/@Ö÷@_~@’æ^A +/÷A¼¨A1m¢A9¯AI÷MA@ˆHA.áâA5ÕIA>‡ÖA;¡A8„ôAN6A`X‚A^Ø A]»ÓAN×¥AI’âA}@à°T@yÉò@=¡2?C\W>†ƒÛ>ø/q?µ_@Óh@ë÷iA8rÞA<,ø@4vG@Bµ%@¨*·@Æy¶AAå¤ARËëAoÌA„˜A˜VÂA”ÁBAŠÃAoy“A)‡eA"ïAe¼AUƒA)† A?Ÿ˜AWj£A*s£A¿B@Þ³†@ÄQ·@óžÜA£½@èÀc@ÎO@–—@|^@”:@ Ì@XRé@7|@¸W@Í·@4?ËC@#îª@'N»?˜Ê“?!B@.¬ê@8ý¯@;¦@8@6aû@0Üæ@×u@·À@!£]@!¶@2¦R@-PR@40/@&=?Ì¡Ð@°´@Y0o@<—¦?¾ï¶?ÉQ)?öYß?ô)5?姞@è`@=+@ <Ð?1V?¤h~@: @V@¬/@.†@CÔ<@ 5ä?äΉ?½–?–óv?¯¹?ÍM%?Þ À?ç À@ù@CO¬@<Ü@1½ƒ@ÁW@±?Ÿ“á?%h?·G×?÷¬_@2/h@Z @3.ú@ôÇ@ q$@¶?ÞMÉ?ÇÕJ?º£·?®Š§@ïf@7Të@PáS@\èt@X'?¶$´?•Á¾?CÅ?T´­?BXû?¦¦²?Ëaý@$dé@A@@;æ£@=<'@%cÊ@Rû@ÔN@Vd??ϯ= À?€ä¦?¿VÚ?½0v?»È@³9@@¿ª@éþ?À§n@ ›“@ n˜?Óž‹?µŸ?ÜÜ@»(?±ö©?‚cä?µJp?Ζ?Û‰_?êoË@#ƒö@AWØ@HÛë@S¡G?Ãý? +!?‚/S?Ÿ´?¼Á?¦1¦?•Œ[?«Õ^?¿¸?©§û?4ž?OÁ>§Ô?‰§=@G¡@¸õ@ªq?ê„u?Ñ^¹?º×!?•„î?™ð@?¬„?®çÐ?±Eî?±†’?® ?¾¿Å?öûú@g¤@9z@4ŠÆ@/•@%K,?Õoª?Ú…h?ÚÉé?Õ*P?“ÿ\?–lã@£@=U?á??ÙÀ­?×-ç?Ôžµ?“d?‰äd@)×ç@CoÚ@@M§@ºï@'e@OˆŒ@tâK@(›þ?óõ?™yÐ?,ê\?dEè?“£h?ÿÃæ@;®Ê@*H7@ªA?Û ¾?91?f7)?»¾°?²ùÚ?D®û?><¼?‹"N?–‹É@Ëû@ÄÛ?õ ú?÷Ÿ—?½wó?¾±n?Lj­?ÍD|?ògà?ø`b?¥/?#µ?¾Ûx?Ó\–?†| +?9MT@ +ñj@Ibq?ü8À?L^h?|ì?¨¥?û©Ñ@SjÈ@Ež¶@WÝ@ 1 ?y²Š?…ÔÛ?¸ß·?½*¬@&pv@)#(?Ø÷„?Ìn€?™ú?•A?'Ö?u?Ãcü?ë7‡?©¼‰?P…?npî?/[?Af…?=?ÝKf@S¸Ÿ@1+?}|?“Y”@ré@ @ÈB@í?åõÑ?èP×?Ö¸Ÿ?Õ-Ñ?ˆ“³?CI-?(å†?‹F?Ì Ã@#:à@ {®@¢K@…O?´Ïå?œ"—? ça?6­G?ý&*@–?X×¢?I2Þ?+Ù)?-<?šöX?½¡È?¬šÓ?žæ;?¿¬¶?á?·TÕ?]‘¸?€¬?°õÆ?ºÆ–?êm?ä ?Ô´$?Ëž?S m?A­=@"ˆ@BÉ??Ì(¤?5ÃH>Ɉj?8¦(@_X@ur?¡>Ñ4?sÁ?orr?nJ +?mª?Ð’–?í†á?ãm?Ù(?ÅÆ“?±Ï?—+f?F*)?gÔ•?ÿã?¡:©?‚îœ?{?Ñ”Ý?ææ•?Âùü?°Þ ?µ?»j¤?é¾Ì@2½@?¦{À?¬@?ÕÓ?J?ÞÖ–?ê›?ÓCz?Ãfi?ÍÐ?âÉ?écT?éþ%@ ÚO@^±à@Xñ‡?×SP?Ó ?$0r>éH]?cg‡?Šw÷?±O]?èÇê?ßÏè?®Ÿ?ʹ²@J~Z@Båò@ÖŒ@ ¢†?¹ñY?›¸ƒ?£ãØ?»‰â?É"f?½IÞ?®Ü?œðÀ? ¿u?…öc?|^§?¥6?¯m?Ï&Ê?Ý~y?ÆŠ³? Ó?©¹?íÎS?êx@!-@"÷À?… 3?N9e?26è? qÎ?aÝ"?©»þ?ªbl?¸a?¹Ô¤?™E?•u?½É?Í D?¡]Ö?|&O?í©?ž—Â?¸ ×@@C@n?f™~?f£é?8XÆ?EÔ?ðÇ?®ÍY?³ÑK?­(?¢UV?‰?‘›°?ãQð?ã¼W?§bô?¢Ê ?žSª?™Óy?6­>縕?'ƒ?é-?ÔvO?Èï ?Ê£V?jîù?mñ?¥*=?¢|Ÿ?™ E? <$?Ï<§?î;¾?¥P¤?M¡?X¨Ù?¡-.?ƒ¡?dy"?[3ƒ?½7?©5}?ß D?Ö®­?U=Š?m?fTÜ?šŽc?¥8+?¯ŽD?ƒp¦?Äw?Tíc?M?•ïÛ?4tp??oc?¡Ö?œï=†å:<¸|?rÒS?€_å?šæ\?’ ì?Æ^ð?Õe¯?‹çŽ?u§„?abÚ?f”è?uÃ?wÌ_?8h=?5ëÔ?0(ï?2Y}?ŒŠ¿?¤Ój?Pkà?Ô?ÛQ?Xƒ?RÒÔ?M´Ÿ?4j?Û2?q“3?N”?¼y?À9?"˜?[é?Yâ?“¡ ?`«?Y$l?BêV?¦Ž?X>U@ ?G ¬?mË2>áNà>ÂÖ?;Šè?0Z{>4õú>“Þd>ûê? +?œÑ?Á·J?¥ØÝ?¥>•{a?äÑ?°•?ß–?¡¹=ýEQ?*è>ª5f>,é?¾õ?É<…?Ò¦ø?~Ð?ƒ‹?xÕ³?ƒ”Š?`üa?1zC?‘T<ýj6?Mµð?TÈ?•>éL>9§Ê=žP>éN>Ö•>ŠIv>ìåÇ?Ãò?„À?}.î?p×å?dzê?\t?:t?z¡0?˜0›?ÿ·=‚×?Π?±C´?yjI<çæø>1Oç>µ…?¦ã)?¢‡¾?v˜$?vó^?˜<±?N´?H¿>±µœ?Ü•?yP?M1,?f‘?9±â?_ë?Ýe#@ó"?Š9«>Wô~?x7Ö?Ì,?”Rp?&¶þ?iZn?­ŠV?…t>ýA >ývš>ý­÷??_µ?›£V?³Ÿ?Ü(¹?üÝÇ@ÛÌ?ìIç?(˜>¸æ =Wù=Ë +Œ>Kœí>ÖÜ?p92?^Îc?:p?jM\@æƒ?Ô£Î?8 î?oäÊ?ÕU…?Ö?€¼-?_Ûˆ?ÙI?*O1?Š?Bßo=6 ”>k‰Ê?&£?>æ‹?¨9?o±>·4>¤)õ?!´•??j’?†W²?ƒ5?7¤?ž?©­?̸?—Û?¾?À˜?¾ƒƒ?¸oI?¯C¢?Œì?FÍ&? Ô‘?/?xD?Ãã?n">…ýZ>ͬ +?ÐŽ>ãâ>©D>³ø[>¾¥[?!½R?Sñ%?»$0?ð +“?ú{ï@ÀÒ?ª™Ð?t²š?Ô¯â?û‰I?†#h?Ëoö>m´?] J?‚y¸? Ã>ðJœ?¯[?†?NŒŸ?Gšâ=·ì?¾¨¥?Ò 2?” =?ŒJÚ?ðñ?ü G?àÛ?–·?„9?+Ä—?»¬?°ÔB> bþ>Å?¼E?×J?Ä# ?´} ?Z.?K²?„ÿ¬?€5?Ò ?œ°?\Æ?Edê? Uf>Ï~>HR>ÍÍ?vr?&Ž`>@áÞ?õ%?6‘?‚ûy?}[û?m¼£?hóÎ?d* ?™!º?Ä™Ô?¦…}?‘+?ˆ`?€2ƒ?=½Í?Uõ?nú0?‹Ñˆ? > É?rsÌ?¦@Ã?È>)SG?… ?³Fi?¼ï%?Âs&?“¹e?GÛ?€¿?uoW>ÔKZ>Õ.?Œ1›?•h±?„Š¤?ƒvEðý—>2ñŒ>ÙÞº?×?›?Æú|?àm?Ž›?ŒW›?›ŽÜ?Å Ž?Ŧ ?Þr?¨„?|y6?H@?Ú3?4?jnî?“?²¬¸?˜±Ú?ƒõL?ª*h?Åÿ‹?­9?¤Yk?ŽÒ?wq?¥×Œ?¿s4?Öæ`?瀯@T@HN? +R?„4x@Þ¯@Éî?ÑîÅ?ÈN>@bu@YWV>+Êå>›%?Ž1Ø?q@>d^V>ë‹R?ÅG?ÑfÏ?Ƹ?©´c?;´Ó?D!¶?I‹?­8Ü@ÎH?Ý ?KC»?v•?™¥•?ºß?„¬¡?]eb?5}á?µ—?òt?Ùò–?Ê?MÊk?uÊ?ª°º?ÁE.?ð)ã?ôþç@qFP@wf+>1ž\?A!f?]Ž-?¥A?¢æ²? ½Û?¶q.?òÆG?Ü„®?«I?þ£@DX­@x¥?½f¡?©~?‘§?Ñê@“ý?ßÙ?Äiz?›ÿî?Œìû?²3?»È®?ÅHc?ÇÞ?ÇàA?Çâi? ÉÐ?¦ô?þ*ˆ?þ9«?¨]}?¹Aß@$ h@f—@…˜@ü?Þ|I?ànO?ÙÅŸ?Ò2ü?Èx?”¿¯?—\??‰H?‘A­?Ê?ï>H@"Ÿ?¹iÊ?–ôY?5ßã?S @&@%4|?ÚÄ?È@>÷—@Ht?éFr?å‘Ç?È'?ÔIÎ@#5*@ z>Ì;ô>“BJ?#¿Ã@Ê1@4ßn@qƒï@Uæ‰@&ª¤@ Z?Ëñ&?©2?‡Ä¸?Ýh@áÇ@9à…@Qˆ?@›Â®@°Iî@ÜU@ä}ƒ@ÇÙ¶@Â7-AkóA +.¶@ð~½@ïÆÖ@…µ5@‡1Š@µ³¸@®ã @ Ce@œÈ@‚T @Ú@Ç¡ü@ã:mAUA0FÿA›Ak @Úq8@ßy @çf @Çel@»@¥ŠT@–ÚÌ@VÉd@3õˆ@!d’@²@ÅQŽ@äÀC@4›R@¸h@–j÷@¢Ü1@„H’@}ky@D´@A«%@ŒŠ´@‰pŸ@E.@?d¿?á‘m?ó§%@ZUJ@Tv†@: +G@?Ùã@E×ê@0é?½îG?ãs@8!ü@+ °@õ™?ÿeð?Ôˆ5?úé"@,ýñ@"¬j@os@æ¶?ÿî¼?¸Þ³?Mˆ?ÏœN@@šA@Ç©?®ê?´Ü?ÓC‡?Ä©?¯£v?Âÿ?ÓÍ‹?þø°@g@ß@#‘æ@C‰ð@`µÄ@%Úÿ?ídê?Þwè?ÊéÇ@!LŠ@NÅè@>Ï@0(?à43?Õ£@,@ATì@+ +@.0?ÅŒÄ?Šô¾?ϧs?ùð?ÍV?Áð?©®œ?“þ‡@d´@U—?Ô\?¢‰?jµ ?Jlû@ J=@5åU@,Ñ@!d@CÔË@a@a{f@amD?¿ËÉ? +s±?`û?çk?Õíç?üOÄ?—,?_Lá?¨­?À¦„?õt¢@ º…?Þ•W?ÀlZ@ãá@2@§@]-?½Ró?ÕðJ?ðC´?ÇXê?ª +”@*@l:¯@C=2@Áh?¯m>¸²J?w7)?ÅYé?>xâ=SÍ?Õzl@M°/@0œO@…¤@Ëö?Ý¢A?ãQZ?èôæ?ò·†@ãž@9K@=º=@4Iº@Ú?üó9?s,?‹1q?£ä?–T³?}„M?`kM>ýY$?+$"? òý?}?‰?F”Ä?ÑÌ?ÛA#?ñf?ê Ø?Ÿh:?¥4•?Ñ\þ?ÌTO@P´@ ô·?ˆ +p?‡2?؆@?ãº@)@0J<@L•Ñ@U@5äy@/l@9D-@úl?ºEU@'Y@ Ü'?Î|?Áo6?›Ag?h¥«>HË!?)ÁÚ@¿@f?º@?·ÔG@1}@/gï?²ye?·²w?}"Z?€TÏ?–?!DÜ@ÇÏ@õ‚?æ|y?Ðw—?£Ü?•4˜?žñœ?œ-s@L@M“@8E@©¯@ç@ûe@>;@4xN@6›¶@9)C@&‘9?·žÍ?µkÛ?¸à/?»‘C@[W@±w? ÁÙ?%Éâ?+«Û?/x¡@žv@ H?ÑjØ?ª‚r?M+Ì>Úì²?×>ü@=C,@Nõ?©ßã?²žÆ?¸²?¬ûz?tfb?‹­‹?ô4Ã?ó/E?çS$?ïç@Œ„@”?ª— +?˜V¬?´Kø?Â?Ë ¿?Ãg—? OŸ?{“?ÌÕ,@ º>?ïî/?w&¹?\»‰>ò/??è?À½w?í]@&½@ ¢4?}º1?<ªi?6|?0M{?8ª ?E‘E?–%?ÄÅ?“6ÿ? +æú? £¿?pHª?‡«ë?ð’?ïÄ€?/ŒT?B’?À>ï|¾?Ú{@AÈ?² ?0^C>ããf>0ì?e ?–iø?Á!b@NˆÁ@S,]?µ)?²)?xk”?mÄ!?öÆé@ µ9?°d¿?o+Ç?§}Í?Òc•?±s•?O?TW?¯Ñã?¥ ?Œ?–É?mãˆ?gŸ?m»P?tG†¶?Sc6?Ü‘³?ê›”@Pë@ p?¡›º>óa¬?’.p@ +â@ù?º$g?ÌÚf?e#O?z´†? +òÀ>éH×?pRï?™]?M„?e'$?sy0?§Ùl?Á¤¦@.Z@0O?ýŠQ?ÿÆ@®W?üP•?l">SÂB?\l?ñùí?Þ8?g©)?jDC?çˆÃ?çr @ +äM@}@ Xë@ Sƒ@ Ta@SÉ?÷f?ÁØÍ?ÓÏ@%g@È?‘B?PM?½q”?ê0L?°ÑF?né?–O*?Úq›?ÖL0?Ò*P?ÍþZ?–„í?”(g?¿Ê?ÞЦ@ +¨@9÷D@Fû?­—?Æ*ï@ Ð@ˆ?º(?¦…?™w?Œ\Ú?×\?šb?¯h™?Ó'1?ÉZ_?kÍ£?p£[>*Ä*>‹²À@1#@F/U@'­R@ ál?ÿ§0@vÁ?ãh?Õ?$¼?®-?ª¿b@!e@Z,@;K@=Z?ÇÛ?¯4?ÃSy?Å]ó@mÑ@W¾ @C¢€?jÙö?rù ?½)T?Âj‘?r‘Ñ?‹às?„“¨?‡Øù?©‚>ÃZ2>óì >ô’?-‘™?[¾ ?yÿ™?ŸGç?±áº?ëÐ#?Å·o?L~Ú?P²i>ñƒÛ>ò#¡?²Ì4?­Á„?=Iy?HæT@4à@~‘?W‹?,{ž?¦=?p?Y.?wÕ€?hÙž?Y<¿?M–Ã?AÝï?i7Ð?{y›?‰Y +?ˆ$³?|Ã?{ ?|²(?™Z?€++?€‹‰tÚ>ÞlÌ?iã?iK?NHi>ŽD<>Èd?3úé>ŸßD<%¹à=ˆ9>Ä0v>õf>ƒªÖ>[±><>Ý>âk`=õ0Ç?Ü$p@Dä?ô€#?›³–;7@=x»h=0?+Çw?ÖŒd?ÊÂ?`­A?ay?x?™?p§Ò?á>|êI>?jˆ=IeG? <½?)¬>ì"Ö>é;f?‡Y?¥öº?ƒûÉ?D„n?@6Ï?L9#?:­œ? Û?Ç?0tk?D((> ñ¹>oÚÅ>·g>Ä’~>ÑÁ_>Ô=-´DœUÊ?–·À?…”ˆ?@ˆÏ?E†)>¾hž>×ø©?7x%?>šZ?¨7Š?¨Äó?d²þ?XÎi?NoÏ?8‚?Áݾ?òáÖ?ù?š?ýnÐ?¨PÓ?WËÕ?uâk?ŒýÖ?]ߧ?(²G?Å]>üËÒ>ý>>ý@s>Ð5F>Ÿe>̺>þ¦>èЃ>Ћ?OŒÉ?¿#a?¾—?½ŽÊ?âé>åB9?Åv?M± ?K¶7?[,¥?<*?;ª?+Ò +?—˼?’;þ?II?Núx?Tép?{ÑP?¡t´?{R>×jÿ?_î#?øQ?×HÅ?},À?t÷ ?twQ?#?ÁÝ)?²nª?Šöœ?gÓ,?1s·?Ióµ?x9…?H+?wb—?ˆß?ª’ü?”Q,?^Ég?ŒI%?µßþ?™—Õ?f¶)?8/<Û-€>ó®}?…ý ?£Ún?Âó·?‰ž? –?r¹G?š4V?QŸ?h?)õñ?EÄ&>¦3=ò â>8å;>#–û>S=ò/8=ÇÐe> A>çÖ ?Qµ¹?€iF?¯,ý?¿ãh?'b>Žkÿ>ïÝn?m?¤ ¤?· |?QŒ?3|>†Š>Yø >‹Ed?†ðJ?ŸÉi?êŒ>ò±ñ?³+ü?È¢?¹»?¹Üf?„$ñ?‚£M?‚¥ö?bŒ?«L>úoƒ>?n>—ò?Q”®?U΂? 3? ªü?Ä#r?¹rœ?‚Çä?n?F?ä?:??D9¶?€ +’?¤˜ö?óãë?ÉÏb?QçN?6ªD>ånÕ>­’8=›ß–?9?À\y?×=Þ?ø:Š@Z’@8‡?Ó*@?ƒe?Ôh @‡Ö?Œ¾©>P¤q?8¬?†ö>ÌÒ?§ÆÖ@)ú?®;4?ƒ1Z?*V?8ª?P_?pa>`5>Ó!9?O¬?q|?ƒV½?·|A?¼ã‹?Ûš>Ó~Õ?}Ke?ƒn?°z!?¬”=‰?&?¨1Q?¥#?Gø?º4?Ë$¸?«Jä?œj?1l‹?¾#?ÊVÔ?Ó;é?Íð?Å‘X?ÁŸ?¼rí?Á›‚?Å_&?Ý\?ý…*?©É»?Ø©?B  ?ƒâ?f{?N™î?r+!?ƒôI?v/H?rÛ‹?\¥/?G•?‘V?¨Ïl?Ñüß?±Ç?¢Xˆ?³ª?òZT?Étv?Rô0?b·Ê?„Š‰?«Óv?ê¾B?ù[¦@šÃ@®@ÛZ?È /?•Ùâ? â+?­}f?RQá?»ã?Î(@ÃÓ?¦xì?ƒê„@)|ü@?+#?³¨ ?˜_ú@Á @Â?TóS?DÑ ?Çb‰?Áöå?¿›?žÉ–?Ö–?¸~°?K +F?vu9?«>?¥~©?—®v?Ãé @Þ?ÊÛÂ?k¶t?|Ai?…«?öö?ý0ÿ?»Âo?‰”º?±A¸?ÇÅž?ÄK?À¶‰?ÅÖ?ÇÖ±?_¬Z?D^}@ þÞ@r­?o\B?Z.÷?Ÿç,?ªK@¨ +@`c@ <ü@ ÷œ?ü,@?âÜù?…Sž?¨µà?øH8?í^h?ÖÌ?Àïi?¢—ø?½'¯?ØN²@8î@GíW@25¨@$ËM?ÃÚe?…_|?Ÿd©?¢žÁ@,¼@/ç?Üì¸?ÈË@;ª@ ++Ù?¢ïÑ?¡P‡?‚{@ªðØ@ô ´@ì¯@¨¾ý@³Ì@ç±@ç2I@íëA +AA´ÁA"}A5ëkA{f½A±\ÊA¥å}A•ŒAzEÑAM¢A)ËAï@˜îÕ@â¤?òág?Ï ?Jíú? )X=ñ ¹?/–?J|?I~¬?Vê±>¦u‚> Š8Ý=k=µ?‹Ü•?ÎN@²p@ÙÍAWaÆA^pAqÒ7AwÁñA‡,ŠA“>ÙA²A[AuûA„³AÞûAzž‰AK‘þAEëAAJúA=ÏmA:ëõA4ÏA/‰AoV@ÿÄ”@¯»0@„ƒ;@¦7 +@¸#Î@•é¸@Šs­@Î@Š†Ð@a·@Ž×!@‹@ú@IQ^@K=.?™ò?“¤^@æu@ŽŒW@…Óä@‡;A@–®£@¾Í@3A@1Â8@:–@7;@®S@oñ@C7Š@*?Žh`?¦ï>?ጡ?Ô0­?˜‡?·NK@òþ?önö?ÌIÅ@ÏH@F™Z@½?ŒÐ}?ŸÄ?À¼'?ß‚ì@¶^@Ÿ@_¿?Ý%?‘y3?Ù‚—@’@ãø@+šÖ@Nï6@ld´@î?ÃÝ=?Ù?è‚4?Ó›4?Ãö@-Ö§@_v@%wž@ë?@9:’@a«Ô@4ç @i1?ͳ?†Þ†@Y•@" Ò?Ã0þ?Ù?¬ðŽ?Â; ?¬ˆi?ž.î?µ•‘?Áÿ<@k¾@î?ùÎ?áeQ?‡b1?9åA?ØS!@ é@1M\@DêÄ@SÞÙ@ZCl@_ƒ"@alV?ãè,?€»Œ?Þ̪@•±?.rê> Š¼?Îs @‘/?¹ o?Ž?ºí7?ÒÙ?«)Þ?—AU?ü‡÷@Õ­?é?ÁH'?‰˜Ô?J?N¢Ý?SH?‘ÒN?®Ú¨Ù?À&<@¶X(@ Sz?z%?w¹?„Ó˜?ˆ18?”ù?¶“P@”ËQ@‹É¢?}R’?†¦@˜À@ñÇ?ÂÜú?°LQ?¢G~?¤}-@#fP@5‡@.uù@.R­?ôO?Îàj@í«@4{?ô ?¾”†?"J>?}?›?o[õ?ÂÆS?öða@›°@0ÛÐ@oD?è9?Èg¤?œæ?ŠdË?/?‚ )@ÐÍ?ì!5?8?Tù÷?ù1V?ïY¯?Á?£¸>ýd&?ì¦>ú.Ž>ø•Í@5ºÐ@Jóù?¬ :?r^L?™q¤? ö7@øŠ@xÁ?èæA?°ñ?Úäø@ôö?æî[?ºA?ä¿@¢’@í@7F@oGô±>ÿÃG?rœ¿?°§@âz@_7?gxð?o>ø?µw¥?µbá?ù¾Ž@r#?Œzž?qg?qKò?q4H?Cx?# ¯?¡Ë³?ð¿É?Êßâ?ŠŸè?·„?pIo?m@vX@Yí?¡?š²? ô„>ï|Ž?¼VM?߉}?Âúƒ?¯÷Ž?kÏò>îÏ@?Xµ?ÏéÊ?½†§?,MY?+#Ü?ég ?í @ y£@ Ê{?²EÀ? Z?G½•>íNH? „‰@°?åvˆ? u?Ʀ%@&Áµ@ ‘F>‘;t>Q&ý? c? þj?IiŒ?kÓþ?ÿð@1œ¢?þÈ%?kb¡?…§3?¸Á?ªæŸ>ÔÁ&>¸°q?Äm\?Ú‘=?ÖŽÃ?ʺõ?•<Ú?fsh?¢C„?îÏù?ömÚ@!3?ñéˆ?ˆÔ´?‡¿?Ëè?ǽ‹?›yd?‰}â?¼T&?ú\?ÕÜ?hºú?i_^?p ?† ©?…3n?Œ ¢?&S?‡ä:?JN>÷¯?à-?OÐ?eS9?g©3?loª?ïl?ëv_?·–ã?³Ðë?Û„/?ò/ý?öØ?ùðw?ÑÛÁ?) Ž?J¶@3Í@+ß@ †b@ +Èó@á‘@1@n@#¡Á@%!Ÿ@6r—@(ñ¬?ÂÑ?Æ6ú?wʈ?f‡ï>óóÎ>¨Jq?S2?¥Ò[?—ÿ­?hf ?•nx@,ó±@,úÐ?í…?æ´â?¡¿,?–¦s?‡G?fâó?p z?y;?é}?æ¿?ݘ{?çqe@é¥@9ò§@N§¨@8?Df‹?‡U?Ç}K?¸Ý?­Ã´?®ul?DË?f†„?m¸z?kd?˜gî?–tý@g6@=Ä@¦ò?~ñø?‚¡³?¬kÜ?¥1?ƒy1?ˆ®1?Uýø?3H}?Lh(?Dãí>š‚=”3×?ChÕ?° ?vŸ? ‰â?^g­?³lð?ÉO³@ +u‡@ø?ó$?¢ò?ÎA>ýw?îQz?ét?›óÙ?ŒÝ?½³t?á*??•Ü>ÊTÎ?Tnš?vÊ|>l+¾=©Ö^?‡+z?©_§?V”[?8¡?œx?¦õ¬?¿è?ÅÇV?:…1?ñØ>m÷Û>|Úø?eÃë?€“á?‡vÙ?•j +?Á³¾?Âé\?Á€¢?¨’>,?6A‰@ø«?§6É>eÝs?!o?}†?À;þÚ‘?L½î?w4?3¤v?-›p>›?¶=?q{>û;Ç<Á·-?™v?³¦e?PöÂ?1ŠÉ?Äš>hP„=+¤>«©=kz¸?˜µU@!„½@L» ?ôpµ>zö? Ý>ñ.?>¤è?EÑK?Þõ¹?Â}>qoØ>“’?·.•?Éí?‚¸4?ͬ>Ìœ¯>)&>S ?M¤?T²>ãç±>܇±>ëÌà?c…?=ßÜ?k¢q?l6?lÊÜ?QÖå>’•æ>‰œ±>òî >Ù¿N=;­v?/¸.?´ ÏÕ?·¾‰?¡>õÆI>îp>—ª6>’ë‹?z|S?n;Q? À?ž¸>íÆ\>¸7ý?¨ÎÁ?ѯù?Š¸O?kÒ?y¢ƒ?‚{.?€öl?{Kë?>ªA?Î +? î>üO²>ü=>üÌL?xb?:R}?*æª?ØÄ?`ç?"›k>èNù><7t?%kÅ?¹`Ü?¯c?¡8?] +”?²à¸?p},>E´ô>ýU?€h?Uõ¹?á?8ãW?#l?ŸÒ?p^?ðç_?¶>¬Ì ?žð?€÷5?-2<„´È>_‘ú?‡‚?JÑ?2ÕI?ûû?Áÿ5?‚Òù>>'~>£“í?~?4#z?†æÄ?‡íy?¢y?M5k?²¶?,}ƒ?ipš?j4>ñý?Ýì?EÛ(? zÖ?…¹?Âõ’?¶+O?¥Ÿ~?€Mô?R˜µ?›S¼?·’P?V:ô>÷~ó>VvÐ>¡ƒq?6Ç?ºtðk=qB+>Ìkÿ?æF?Ϭ5@¶?—¯é?b™›?ºâ?l­?QwÄ?t4Î?aA ?T®Ê>À¿>΢>…†Ë>v¢?R'¢?M¢¯?¦'X?¯>ú>O†=øS3?À+?¶#w?‚Ÿó?‚£—?‚¥~?}è‰?ª>ï“=„Ââ?Ó7?$æš?HèÆ?RÝÖ?\Ѐ?]/H?9¶¾?>«?Cœ¤?fИ?žä?p´;>9Xœ?òR?²ê?‡Æ> àò>JKæ=ˆ©`?*6#?ËÇ°?igö=ùy?@Ä?Êã_?›¹C?\êË?z?ƒ£?º¯?îA¹?˜-?³ú?!£(?6R$>â >s^O?€<Ü?¹A¡?…B%?\s?7}þ?#¶*>鯸>ØNÕ>„‘‡>$>ÕË;>ýñH?Áÿ? U»?ù–?‹Ù>`=Å<{?±-¸?³ý?Ps­?R)=ˆé?uÅÏ?x^?Eê-?}"8@ b¼?ú3Ç?›m>ßJ|>‚Ã?H?Îc‘?Î2$?»ã¼?˜ŽW?4I?;é¸?ƒj#?»îO@ÎO?ÇêÄ?uÿ?™pð?¸8>?nØ?èã?æû?1@|?|º3?¤:?\ae?Cd%?¾äØ?Ý”\?M‘Ö?F?ï÷c@H-?´fß?”Û>õµ°>Ø©š?l(?y‰ ?ŽƒK?‡Û<¦á=·ñ&?ˆr?—I”?î©1?̉?eÞ?Sœ?÷HË?Õà?„F}?]t>Ó’O? ¶#?BJÁ?b8¥?ˆäì?Æix@˜Ê@­d@†g?æJ6?µ9;?q?r? iæ?»p?ÛW@ Z7?׋£?Æ®ê?™Ä?—ò +?ð•Û?÷_Ø?Ê*?ÇRE?…‰Ò?…£ë?™ '?¨Å>@ +3#@Ûd@hJ@8?G›.?`Õ×?¡ñÂ?Š#Ì?6.J?‹é$?á¼?¥°Ø?$ÓZ?H#?s6œ?m¦?mÅ?Éó…@ì–?¯Tÿ?‡QO?8dG?\@1;@¶ >æð}=òŒ?yê?œO@Kþ@Vt?­êP?¶aß@uÓ@\'?ÅGÝ?ºÎ=? ù@?žÒŽ?œ«•?°l±?Û2?æO?ûü8@î@!€õ@9ü@N¶@Hð@G-Ç?ÀsÏ?Ý?õ÷F@j2?·á?‘8H@§i@&¸n?ØQ’?È–?ÈE?ÇÄ&?;}æ?E¦}?‰…Ó?ÏØ@+-Q@&µ@›?û®Û?±ŽÖ?äµP@,ÅÑ@//¸@-›@8[û@Gý½@FL @E[@Ž¼ü@µ~K@`@M«@u˜š@•ò@zr@m؇@ÒÞ@èã @´£Q@¯ÃR@ø¹Aü@ëqœ@å-Ó@®~4@·.tA¥ÀA<@á õ@éø(A +óîAØ A.­A68tAG΃AA*A2ìÃA+nMA#‘‰A‚ A¶AÒA9A)I`A3Å@Ò÷Û@/eF? Û>» k>P =™U0>Æ<¦>÷u=66u>`Ÿ>Rö"l˜?=l@¥µ®@Æ AA2JÅASª±A¦ö=A°][AÍî‚A®ÛÒAK¥õAi~@AŠÒA…¶ÓA€ +ÔASî¢AWNA!Á´A#IÄAb¨Að¬Ad|@íƒñAûAZQ@ÞzŠ@¾°+@¿ôw@»¿I@o@’ +4@À¯î@Î4d@¾”h@¼ë@G§#@+í“@¥ï@°°Á@•7@f[@kù@jxÏ@Úy@sÇ@Dõ@PÙ@†»R@znÅ@@U@&4à@%@ð@5»@CÉ?7>´?XÍ ?©öo?¥ }?®Ù?Å/h?ô¬@"s@r“È@–Cñ@Ëߘ@¡ +ý@'\ @kf@-@3@ È@*ô?×ÒP?ã)á?è??µ?ŒÕÇ?ÎSœ@Î@U@"?ñŠa?£Ž?’ „?Š›ª?ž6Ï?«MJ@2÷@tIÂ@À?׊¬?¨p;?|Ã#?üÙ?‡@?×Ù@Uÿ@Vɯ@@‡j?Ô¡½?Õ?ˆù£?ŽiÐ?¤C?’àM?Ó?ì¨#?²P"?›Ó¬?Ïð?ã=Ô?³iä?ýþ?¤n?©H«@ @ï@rÖ@6X.@AR¸@=o@B)]?Öƒ?†…"@,Ýž@^ÂÞ?ßÉ7?qj@Pó@‡ü @%ž'?æiŠ?Tv>Ö‚ü?î¾?-X·?¬·¿?Û|?ºJ? ™?†ó?mâ¤?Eç4?-m:?†Íà?£á?¨?§”é?Žš|?q†?E… ?ªî?È\@ /?ü²G?ÅfŒ?ôOS@Ô?Ê?_.?‘ªµ?¾Ý+?Ö™Â?ñó7?Ô€î?¸r?Øòç@j@5È@´ö?Ñ#?X™?nPê?Œ­ö?`xŠ>XqÂ?.ö@¶K@uL@y‚ä@Xµÿ?|á®?Š Å?æºl?뎘@=ü¿@G˜”@3K™@*†@Tî)@Q£*?â„x?å„å?¹ž0?¯5 ?à’d?ãé(@D@Óç@Ï@Ò?´-Î?†_¥>·¹Ä<˹y@Â@FA†@ ÖÇ@Qº@6o|@b@%C^?ÒÅt?ò’V@ +Q?ÞÎ8?yæþ?–-þ?Éz€?Ú®@И@ä?»%?Áv{?ïd+?òWØ?ùU?øxÒ>ú#Ý>øÁ?eƒ?fÉo?ÓÖ?“cQ@çÍ@ I?”ÖD?_”à@¬@9Þ›@%ÿÛ@,?îy­?¹—?|4ø>¸k?C´¢?Ã5Ã?àü/@Ã@¡t?tT=?rÃ;?ˆ©²?a`?¸½Î?¸§`?§Q?£ôØ@JŒ¹@S15?É4ê?œš3@ÕJ@cv?ŒÍj>’°?Š<¯?èa¾?Üî?Åx„?ÑÃ?ólñ@!~@+à|@%Hg@"{Æ@Ž¿>æ–>?K2ø?]$j?zw?r˜8?ÔÌg?óBì@Må@Iž?Ͻæ?rÔ?zdÀ?˜¯?S>ú ê? ùn?r-?„û?惠?ãbÝ>Ö9 >ö&?d?qhb?º_?”9Ö?®?pôþ?›KŠ?Âùf?Тi?Þo?Å\²?j¯ã?pöú?íj?ŠBc?9ƒ?*Û>ý8Ï>ï{s?·ðÅ?æ0!?´c›?šôR?a„!>îÌx?8Û£?•‡?¥wñ?öõ@?ì„*?~ñ†?rDŠ@ ¿@šñ?qSf?Öã? (?¯c?¢è’?¨S¡?‚U`>‡¬)?,ó²@ ª>@'?½d?¹™÷@?Þ.@NT@!ò@ ­?ÓÆ?°­?¢ Œ?ke>?±…ç@8–@(Y?6…ø?=o¬?¹8Š?¿™?@ 5A@"öI?ºj>ûÄ>ùzÁ?”K?XFc?È3º?Ôç£@%1@Ê?ж?ÒÝ%??…ÞŒ?‡îs?Œ?{–‘?tù?€Ù@d„@ Íí?©nƒ?¡¾??ñ˜?øæ?~±?+.*>üÍ8>5î‰>Ý&?°ð?£ÿ8@³µ@©¨?AÄ?ÃË?'è?9Hˆ? «?ç—?Âj©?0!„?5v5?ºF8?ÂC™?±µÖ?½îb?õno@ }?ëƒ ?½$Í?¾Þ×?·]ö?×$@÷_@ :?´Õå?¡±¨?w†u?1n?X«!?†*å?rW?f“w?ŒÌ@'—@Uî@>÷,@8Å?ÅÓ7?‡=‹?Wø˜?DÏÒ?z1Ž?¥k?´ÔJ?æªÅ?æË8?ÃyÆ?±f¾?¬XK?­§?—;V?ŸSf?¨Î¯?Žo?ºƒ0@&²"@u<åÖ1> R`?ôzw?æŒ?£F]?…zÀ?Fó-?:?î?ºêk@ N@Å°?êt-?ÝÖ~?°)1?¨Ÿò?‘P?à?f?5àâ?U“?tS•?ib>Í _>T°“= S?¶×J?„ç?fZÖ?Ï”š?×+˜?„1©?o†Ñ>[­?QÒ?~*>áz>zbs?×uñ@NE?íTÿ?ïÕ‰?N\>þL6?AóS?9Òü?tGW?€šÑ>´À'>°qœ?¤Ü0?±„m?ƒÑ]?v]>Ùq?,/È?кÁ?²¦Ñ?;Y>®i%>®ÒË?‘ß?©Þ~?½É”?2? +Ât>ûÕ\?*h?+º? H? 4›?µ.?˜Ì3?7þU?^¹*?R%?ÿc?fÉ9?Åþd@DkÕ@Ä?æÝ=ÇDF>ý,è?×æ? Ç)>Pj1?žo1@&@™>£ü)>—¦Æ?‘#¯?£l¿?˜ +–?‘Ík?‚ß??Uø?3(?&*?,B<ÓzM;»p°<ÒÍX>C}? V¬?wòm?Ì/`? 0È>6tÝ>kÇ-?2(Ÿ?8ùæ=ŠU5=ÛÏð=é»6=·–=„KÒ?­?sJ"?pç?b?DFù?&v?]r> + >#œ >=!w>„¯–?™§\?v>j >3éØ>”-!>‚Jà=ôØ¢=¡OW=_Tø<øOá?‡ö:?¹¡?-`?{IÙ?lK“?^,$?#%ô>üNù>üÇ>üË>ø< ?B(?‚E¸?¾BÑ?ªp˜?ý4?”?—$?Š$þ?~ÚL?±}?ýÙ?Êj?…û•?’rÔ?›ft?t³^?$Qî?wm#?¸XÏ?›šD?x0?l¦E?H.ã?y¢u?š³t?šbr?°R?Ê°?ö±è?Ë‘?wgÝ?Rù?kM>úK?)ø?5­?@Y?«§ÿ@'>a?Ö|D>¤È¨>Äî +?~Ö?‡ÿ?’u?Q+¬?š ½?af—?³ì?NG?e|>±ƒR=y¢b>úÎÌ?zŽ7?¡xö?»íÙ?½™º?Â÷a?¥ãm?iÁ?HŸG?q? mm?IØt?]ï„?N»??>ªß?.›s?.È ?1Âe?ü'?”¶¾?’?sV?-€?Re?b¡?‚Y¼?$‹d?,·?¼ó?ÊH>:Å=Öz!>Ü>ÄÕ?äI#?þåy?- `?€ö??òS?@ë*?¨ð}?¶ÖÀ@ãë@B‹?Œš¶?(ƒ@5@:·€?‚ 7?‚Mp?~¶¤?Èù?€‡;?mg >èÄ?ýt?«Æâ?¦Î;?¡Ù?‚[<>0Å•>†P?Æï>áö >Ü‹? y?§º ?ŠK†?ÕØ?.YÒ?‚Ýð?«É?íÞÚ?ªü3?àÁ?©¾@b–@£ƒ?Àñd?¢NŠ?ˆñS?ŸAü?®ð'?•kþ?ƒd?dôD?TŠÐ?­ë¶?ÓÝ0?O?™ø?Ü +Ô?Nu?7||?2ÇÕ?.ˆ?”Ã?¤¬Ô>´9*=À…Á?‹ýã?®á>q–’<ªE×?hoc?€Ó¸?óM§?øb“?­>×ëñ?÷Á?ïµá>]r>N3í?)9ü?Ev`?þ;Ë?ÕU>‚±9>Ωœ?ƒ ?v“^?3oâ?9|Ñ?Púñ?¾þ=ì=¢>̾À?ƒ´?˜åé?¿õÆ?Œú?ä?{š ?ɱ?Œ{e?âõ?^T>?î?ÖÒ¸@¶j?ÂÙ?™´Z?êœQ@ +Z£?µ8\?‡Â™?ýE@Þí?mÂ?á?‡Š5?›QŠ@ ¤=@Õ6? ¯Ó>•ø?ªi?ê©?ö‹e?ûs?É»?ÂÖ?ÂΦ?Âh4?Î¥í?Àpë?o«½?Œ^C?×¢x?É<¼?›ÓÕ?fsä>¡†é?9% ?®-õ?x?n?T?œŽ?z{•?2&{?{X?—é?Š®l?„²?=ú^?á<@*@<Ã7?í,˜?Ç.¾?ÅaJ?à +R?@ÌM?8;©?0è?8—’?#'û?A'(@ák@@\µ|@Hû©?ã·O?ç""?é_Ù?ç7"?å ?ÂƵ?… ?—6¾?®¹V?‘=J?i>„?Ž ?—xN?9K$>ºÝÇ?®¾?'–ô>Y1<Å?DAø?~­×?õÁð@ +Q”?á«?ÐR~@¢@и@F@G}¯@6{º@-n@J{?ÿ4¤?É`Ã?¾ÅH?bg?©½Å?ßô2?Þšœ?ã`V?áx3?×TË?è[Å?ÿ²Q@<m@v¥¾@DÀŠ@!÷à?ŸL?^´>”v7>‰ù•?É.??ôMÁ?åO?çZ?ËÑ]?È&?Íç?ë¬?V·?`RW?È F?Ök@¢k?úž”?<9 ?ZŠ¡?œy?¯®k?ÚÓÔ@ .Û@9„2@>J˜@Bç@/k@×ô@ÞÅ@©*@Båq@d,ñ@jãS@pðh@RÞG@Gä/@¼³p@ÔÜ@ZU@…:A%¯æA+Á´A+pA'ÝY@õ§z@øÐnA"˜3A!ŽÅA +A@èð»@ÿ.AdA ©ÀA!:¼A1p&AK;±A-/iA€AA8TAq]†AD»PAl6@È @~6Ð?¶†Ž=Ït=Iä>†¤>š¾>J!È>Tµ?›?†ïK@• @Æâ»ANn»Ao–A±…·Aší=A?²‘AD·©AN¸”AAßA/‚xAXå=A†‡vA;@¾˜ãAÌA&uÂANAà@ë¬@ÇŒB@ã]²@ölŒ@ÅÕ@® ã@âœ@@ø›æ@Ä&³@¶Ä»@¦èâ@¤ŸÎ@ $+@q @t-o@jq†@)»}@$’1@4­@ƒèD@(Q‘@&Ö&?“­?¤bÓ@$Q§@4Ÿ.@ C@b–?­ÙÔ?ÜËž@]Ï@R¹i@~ @ 0¦?ãÓ?æ"&?÷¨C?õá2?Ûü·?ÈÛÆ?² ?çV@#›„@ëë?E@Œ£@Wlq@CÍC@"á?ÖØ“?*‘F?ÂÄ@@¾Í@'vµ@5Òû@”Å?žæ¬?Èu?íÜw@‹r@Ã*@”?䥧?„^?$H?—U+?Ë?ì ‘@ýW?¿‘”?hf@U@M³ö@aM?áÙ±@8üH@aD®@7­ø@#¸Ù?èüc?ºs„?¸ â?µÏÏ?Ã5?ho?Ü[,@UÎ?ŠO'?5gÖ?ŸFé?¾tE?”Ú ?†õ?–ïÈ?™Èz@/M«@Wå@5 +r@* ¡?¡â?Ñ¢?1?´“?ÀÞ;?š ?”3 ?€“¬@ û½@0ßd?ü?Íl?„k?:øu?ƒñd?”9?°;W?ÀH«?éðl@_?Ä&­?¤(Ç?­¶?®F‹?Ò+f?íU·@ +Ð¥@è©?ÅgJ?m™â? B ?¿uo?Ä )?ÁåK@}@”8@î?Ô6ó?Ýš!?ßöØ?÷àç@ +êd@,UÏ@Xéy@0s?èpÏ?Ýw?ÕÀ?ù’«@&Vµ@ +ZE?Œà?˜Ø?Ìi…?Ál9?«I +?ת|@4û¦@"®î?ƒæ?Ž.±?|Þ?tSÀ?>V=?Tóò?Å?¬¤Û@QÕÀ@Tì@jÏ@$g?S*?9ñù@)œ @/ʼ@áÑ?þ×£@Xƒº@lƒ?æ³?ší´?Ö;?ñÃb?õž?÷‚Û?Ø«&?Ó8Y?h8Ÿ>Ú?§òr@þm@@VÍ?ëÀ¢?±²?”’T?;ï}?’Óf@RJ?ô´?»þC?ÈWç?Ùž?Õ×x?Øé­?Ôý?ý½Ç?ü?É@8NÄ@2 +?ˆuƒ?x“ ?÷ªE?þL @ekÄ@z'Þ?Ê—s?F‰Ð?½ý}?ôVv?ÿú@äÀ?ûÞ?ãŒ?¾v?šnˆ?»Ê%?í ?ï´“?òY¸?癜?·òy?µ®?²Fy?°`?¸¼ü?¸§f?¸•‡?¸…Ó@Nê@_zb?¢R·?6I”?–X?ºmì?ˆ­Ï?PsJ?¤°Æ?Ñ/?ò'r@?ýçØ?µZ?èžÂ@7ML@* ?Ök?Ø÷ ?†§L?{¿A?û×2?ñ_Ô?Ù±ñ?ÔÊ?Âda?°J?Y­Š>Ü@G?1àš?rÒë?œK¶?ÂÓÿ?¼Ãu?¶º1?¤˜y?r-Î?vwÖ?‹?–?+½¾?9v?&9 +?.—?ŸŠc?´æA?ÏZ?pö¹?V†°?4åE?XØ +?Š€?fÝ?Ä•?Rƒ@- `@#Þ=›ì=Î]»?íà>Á–Ò>Gùá>¿`w?šÒB?–ü?ÕqÕ?Ü#&@E/>@O1T?Í?…®?€ +?k×?†¸e?… ?»¢$@·@þ±?ˆ5«?{=Ï?ßÞ?êž­?®‹h?Ÿ€Ÿ?ÐœÅ?ì]@×y@;£†@(j˜@<@9Ì?ÙEr?ëOü?ˆ8U?aüÐ?3Ž??†žâ?»F.?¿Cm?Ã@?½9Ã?êP.?í÷á?°St?®7£?¶eÝ?ÆP5?m©Ì>çù*?æ? <ô?l6@I@"#£@ þÀ@ Ù?½øv?¤¹€?:"©>ç4š?çDß@Q¡×@"mw?fûÍ?r ?´d(?¨E ?3‚@>ä¢K>ѳ>æ´"?iE?¬ü?»¬?ú;?MóÚ@&½Ð@*ä3@nF?üýÔ@s@ÞÌ@ +&¬@Z@Ê +?â&?Ý ¦?ñyŒ?õ×S@'Ü@#-à?Ó–~?´Çw?wŸy?Æ4?'Ë?Xu¯?aêÕ?kOÃ?wJ˜>Ȩ>æ@?Ý?­¨¹?@æØ>Èõ`?¤¬;@8~@ +¯G?ÔË ?Ú7?¨c(?šDŸ@†Š@•Ù?Ôõ?È÷o?y§ø?"S?•4?Ý2]?âWƒ?燠?Ñxü?v×0?…èw?»‘?¬?JB÷?%R|?*‘²? +(>àÀF>‰H?Y¤Ô?«É?¿ÈH?ásÄ?¿I??ƒ”é?c³u?=Ð'?7X¬>ª>¹ëp?ën¼?íÄ¿?€?…ï>èƒ?·Ž?2”è?U±–@ ¼Û@¡n?a²>ÿÜ)>îVù>ÖÇ>ŠXW>£º‹?‹Ñ>íòë?Æqê@,?¨KB?ƒjš>Xb=E¿z?V™0?Ʊ?€DM?€¢o>‚û.>ã?JŠ?Pš?¯? Ñ=Ô6‘>ÈÀz?„cû?Z¬£?&±p>µnÍ>¬‰N?J(?'×c?JÑÅ>J\>®fc?YP?i?h?y«>èx><Žç?¤™?ÂZ$?mÙú?\_Ù?^ÐŽ>ÑZ?À/Þ@l?䦠?[øå=‹4>Å€©>j?|ûÈ?ð E?Ép'>àf…>á3ý?š?#må?”>ýMŸ?+9Ñ?eõf?ƒªb? Ž^?¤4Â>%©ç=—±?‰AŸ?¥ØÁ?EÜô>ë…·>ãuI?Ý?\?®Ù?,§>îã>ïkÁ>Äí§>§¿+? %3?€>âGT>Ñ2?9Â?sA?s±{?t\?n±?_Qª?QõË?0þ™?Î2>˜FY>‘>ïwÖ?C>ø'Â>øF?ŠöK?ŒÚâ?&ÖP?)œ>ÿ“ƒ>ú*^>Y=^(¤>Ò£ß?¥S?ø?FŠ?{wë?“„?mId?FÁ">¬w{?c~°?Ö`ˆ?¾ÏI?¬wª?¸ß)?Έ?¬þ?r¤Ï?v½ç?›?Ω@¯Ž?ÏjŽ?/Ø»?q í?œNm?Í°?‡¦?Enü>möY? wØ?rþ?¯+¤@ ù?ÞøU?€¿Ð?”U??¶ P?ø‘?úR?®?ÿ½­?ÇÎ×?uñƒ?pR×?jµT?Q²Þ?S +(?gª5?TU•? dB>g/ç?5à ?›”Á?$‘?‘Ë?‚Ì?NDn?sh?^–?W+›?ó>®û’=¦P?”V?…Ï?Mòœ?$‹ð?!ær?1ñ?H» ?]j>¤÷Ä>Ôu?5ÂÓ?,Y?¥Öå? ‘?šR@?§h«?°˜0?§¤[?¨lž?„}a?T¡·?l¥Ä?~¿-?ôW?_Ø?cáï?u!P>A©?Õé˜?êýÙ?Ãœð?È­ˆ?d€”?Kçá?J‰?Á +?à? @Fa—@O; @j@ °>Ü`ø>Å~Ý?sÍ3?qs9?Ë?©½?‚ª\?ÿ?wä?fœÀ?1§h?cMW?Ä.?·Ku?ƒš?¶¸?ŽêØ?ïŠ?K ?eØH?Ÿ¿Ã?l(&>¥†Ò?Õ+?_jH?Ë/‰@.åF@?‚èÓ?Q2C? 2?As?ƒO“?£€`?¾ó:?Jl›>wɘ?oªŽ?µiß?&8ß>?0?6Âw?‹”É?{²g?X§`?Ñ™.@óO?ÕÆç?¸p?U«k?.¬-?Ò(¢?õ3¿?^kŽ?I+=¸ 8>çˆ?Lê?sÈ?Xë?¬?+_=¨]Z=Ü¢o?ž´?šãO>€Ÿ@,Å´@"ñø@ ðM?ðñ×>O^¬?ƒ?ƒ“þ?ƒ˜§?‰z?¸?„H—?ª$?Kǘ?£å×?™þT?C?‘A_?Œh?Mr?˜|?JŸ?w²Ñ?BZ?å_?VR?†û?±Ñ?Åèi?ÉÓµ?Ò1$@r@@o @!@"þ(?ŒuO?9©?]lB?\µ?0?'3±?¡ˆ™?¬)? Ío?,M?À¹?6̉@#lJ@ø>?Æx"?©R‡>4ø…>Y?x>?¶-?×y?Æ¡µ?¸;2?™OÞ?w¨a?}?¡îp@Í…?àÔU?‚‘˜?9©@>Ýú$?@ë\?„ ™0?Àk?ÕÄ6@RÅV@V~‰?ÖàŸ?æXÉ@*cš@(ÏÁ@Iz?ÿCÞ?ÇÈÆ?³oY?xü?Œ‘@?ÀÖš?¯U?…T?½ð@V‹?÷yu?ßN?§ñ‰?||?;re? ^V?òÅN@"Ϩ?²$?q­h?½?Þ?Ò ¬?œC„?”D"?R¡x?R3?‡‹?„2?×ad?Ù2¬@¶þ@ ôó@7Ù3@):b?Ù’î?ጵ?…P½@%÷@kz¾@T¡K@IPÅ@JaŠ@KsV@3MÂ@,EY@óïA +$~A"A¸ASAð\AZ:AƈA2A¸A@RAjZA=ÜA7R@AWxA`æ@ÚýA©]A/(ÆA(ÝrA'-ŽA:Ç»ARŽAX‰ÝA^ÔAQ±‰AEù@ʲ´@.'„?˜_(>Øk-=äJD¡¶Ù>ª\×>³Û?B¬Š@FØ…@´ÖÀA€ð¨AŠ£>A­Y7A™ÆˆAT—yA…NfA¸÷eAœUAbp+AR×NABôÖA>óvA4­A“[A–[AItAW6@ëðÒ@ÚR@ÒOŠ@ÍÞŸ@;•@Êû9@¼O;@¸åë@™ù@Žo‰@„#@wò@¤¹–@¯)@}ÁD@v}ó@Aan@4å?@BQ@Gßò@°C@@©êÈ@Sln@JÝ@$Pþ@1ZY@‹‡Ö@€˜?ÝN!?ÿû@Tb—@8Òÿ?ÄЗ?õI®@B†Ù@ CG?žU(?Æ2F@ãs?úžn?‚ó‡?Ψz@*‘¡@%$o@È?å.D?5?…$F?ÅÙ ?¦¿„?|\(?Ádv@ÿ3?ªl ? 5G?‘| ?ÞU?ž- ?„Õ@[.@=š`@³}?â‡?¨~Ò?wŸÍ@8È@GÜø@9˜?ï£z@Ø@+'²@Dö?Îï@F¥@ymÖ@Dë…@&”N@ ­@ ½?מ?ÂV9@’4@ñã?ùoý?áäï@ x@'Ê?ÛÅŠ?µÈ-@K—@'óH?ˆ{Ï?U?Š^K?¨QQ@ˆÌ@7$f@¿h?áO?œŠ ?ry¦?î?»‹?ÍÆQ@³M?ÒÒ»?½Øh@ #Œ@  $@`ý@6™?÷F?Þº™?çY¸?êæ·?ͱ‰?ÀJH?¼&–?¾Þ?åð9?ñS@y@ ¿l?írv?Ò©’@D@ ãÿ?ŸßÆ?gë?‹¸O?¿v2@W4ä@ê/@vpX@<‰Ð@ëk?ô¥?ßö¹?Íñò?í¤ì@ j@'Ì@0O¿@8’ú@>žŽ@PBÇ@gø*@CßU@ Ã@IŠ@Eð?ûä¤?àG_?Ëu?sD?gÖ?ˆ1«?§Ëd@%ˆ@€ê@2Ýý@0ºõ@>m@,Fk?|Ž_?~þD?¤X}?°´r?—Râ?™Ê8?~à?{ó$@-¤©@<±æ?°‹ê?‘ý©@µª@%ê@ÈÑ@ þä?²ñ?‡uR?0±?WÕ?WÂ?‚éœ?lD;?P‚?2>½lq?½þJ@&ßú@{‡@a1?ºË>ùæê?M,?»JÈ?š2—>ùŒ?TÛµ@ ap@ +m@@\@;ƒ3@,ö@5i?9Ã? 1@ ½Æ@Œ¤@ô@!þ@Eð@Výx?É”Ñ?x:@0Ç@öÎ?å@–?°ðÎ?ЂI?öÖ?Íf+?Œ3?–ŠŸ?¹P½?µ2 ?¯à†?Ã2U?õX?á±w?Ã¥?€ç?+b?6v.@Z@[ý?ÿÙ@.P?¯ûC?˜y?‰ýP?qFI?mû1?i7ˆ?ÑñŽ@Ç?ëâc?©¡z?Œ Â? ^7?D˜5?Äì*?¿ä§?„k„?ŠàR?· ?¶ëî?÷@¨8@ } @ÓM?›¡î?sBÇ?”J?£öe?¶‘­?·6¢?ã”j@pÜ@ ²@n°@ À?ç“?Ú«|?©ÜÉ?¦ZY?q¿F?q¦¤?Fû¤?;Ó÷?ç@‹Ã?Æ£ø?¢å,?—x>?–“&?Ã?ùGä?â@L?±¶:?½Wv?÷J¹?ú{ž?–#8?Œ—ý? rð? 7£?œõ‚?™±¯?_ÆÁ?7ÉQ?¸…‰@ +«¼@ 8²@ Æ{?ðt™?ÕÉ? +¸c>û?'x?ììì?ý¶P?¸<?± û?ù?Kg,?OF>^«J? +/?…R ?†0–?¶ÌF?½–?ld„?lI@TdÁ@k Q@<ûÏ@%«@±W?Ò©º?ôÕ^@v›@,S@â @±Þ@1Ê@_ï?©‚?¯<²?$ú8>Ës?á#ç@/€@ùÄ?übž?ëýµ?œÝ%?¦êò?š¤„?–î¦?Æ—|?ÉÔ?$³?ˆ +!?¡Ú?Ä–„@6à@?ú\@?›@1å@E;@Œ @¡i?±¬±?˜ùw?™G?‘Òü-?0öå?tF]?mbp?Hw¤?BL?i¸d?‰¹R?ž©¶?³°¥?ˆµò?fˆQ?1€É>ùs?»½?rË+?˜ @ +J@%?è ?æ¶à?žÉ?fÄ?:¢™?)±¢?;Wß?&Šd?k~?gò?lÀ ?¼/«?ª +&@Ü@ä×?ÜúÑ?¼_þ?Ýùµ?øVø?µ:ä? Õ?VÕ"@)é"@"Ý•?ÈD?Ñft?ÓtÇ?ÎBš?\9Ÿ?_¥?d¡?˜?¤ ?­ûc?—kÇ?¡‘?"„ê?ÁÄH?Ç’?”%›?–º¸?ªiÒ?¼yV@!°@} ?>E?ºa?°D@ ð&?Õ§I?\[?N¬ä>ð +‚?37?§¿ê?¨:b?u[f?@y?­·ž?¨_?=$¹B>Ù&>Á` ?ïN@ ?˜"%?vÓb?+Ô>ø¼?pÿ?qÜÁ?­î?µ¡?N÷©?<%Ÿ?±v?Á¸?‡ãõ?_*?%$ß?)ˆû?w‘F?€«×?³‹j?•²ž?Ï¿? ¡ã? '?@+?˜O?…¦{?„mú?L§=øÈK>?<ô—M<ï¿à?R?já§>©2Œ>Ž@®>¦e>ÅËG>å•?á²?ÍZ>™>ÖÄÙ?@õ¨?%ÇÙ>§ì>$Î?Kóå?Ó\@Bú0?ç:þ>57¸>õüÚ>Φ‚>wr@Åo@|E•@<€O?Aè'?;qu>áôá>⧗>ïÓ>JÜÆ>ƒª>˜|Î>´x;?41?FF?§ç×?«˜?>y²l=ðn?zø?Wõî>äŠ>7L÷?$gr??ÁO?–þR?¨²?¦ã?eÌ?)ŒÏ=…Ó€?"b?{Wû?9õ?в?[T4?¬ñq?>ˆßí>³'¥>ö@>Ù]i<ªÍý>÷íÍ>øBF?· µ?º²É?Ž”ñ?‡n?J:?LÍ?bt'?qôš>ˆA¨=†\?%ÓÍ?^±g?L^v?Q|?`ƒ?¢¸Æ?+Pž>rc?:Ù?œ“m?†éŽ?Y‹>úNr=ÄJ­> ß¥? þ‰>Ù{; ,À>—¶&?.{U?Uy’?hNl?“qA?À$t?oB‡>=­?:Ôì?­D?­W¯?À¡?ÀÞ"?Àô ?¶ÏÑ?£C‚?Œ);?jÂC?÷Û?µü?¤ñ·?ƒ!?S±5? A?’1d?ë7Ý?•k¦>½^ß?'†?lÔ?vWU?Xº!?‘R?Ær?†¿ +?¤è?B¦Ì?ˆJà?¡Ê•?´Ák?šT[?Ñy?Ç=Ì@nÊ?”?²{?ˆÃB?²MM?VØ{?u>´v1>™Œß=ó Ž>IÊ>Œl+?tnð?Ÿò?¥ \?ªåS?Ïá?‚BØ?"MÕ?Jò@eà@:çE?‰T–?­à?…Í?a2?«'ß?¼!Ç>C`‚?a5?ˆ­-?„D?‚{·?:Ø?:Ûß?‰”?¢?w-“?lýÅ?“8è?šcÖ?Ãàò?Ãf +?̈~?É?ŸÍ?-Ðß?ý ?ïuë?‚¥¢?—] ?øµj?æçÒ?­mÖ?£GC?“W?|„„>ÿ +‹?%j?kˆ?_Ù?:¿ô?™xÎ?þô2?³Tq>ÃÈû>ôÇ?*°?Z +5?˜ˆ?’9ž?‚è?,‰?{ÄG?<$i€?Ï?ˆ?Þ‹8@ ó?ÂS¬?‘­ÿ?°Ñ?¸Zp?Ùú?æÛð?y¾—?-Ï3?ÁÁò?⪔?£ÿ?™ÎY>Þ<2>3C ?’ê°?³?˜(?A>‘¿)>K ?û?8•?¹å?ÁóÜ? ;?|ËG?äÈC?×] ?ƒfž?zB)>¿Â’?K¬@fX@ Â?Å=ª? ·¼>ÉgD?Ü-S?¹>=?UBÚ?ZÔ?U,¤?{•¶? ÄÑ?Ä*@m@ +f@_0@:ôJ@‚#3@%øÄ?€â?šÅ?ƒÔ3?<«y?Ý?€»u?¤Ü×?¹?ÅçÆ?µ¾8?¬qß@Øi@%É?ú>?î¡?R`ù? Ë?¡Â?¯žt?F¦F??òK?&(}?EŽ?3ö?kB?ÔAö?Ïy“?Èé.?µÑ?gh?T G?ìÔ¡?ãýû?Û'§?ìx?@­A?âžÜ?,ÿ5?@òA?W•?—Ÿ¢?Ûàz?åƒ ?ç}?Ò“Ä?½B$?›á?„žD?É?î/?è›?ëú?½‚U?¥ë?žv«?—é"?ƒÏ–?‚Æ°?„´ý?„ÎÂ?*7?1•?Ðê?ÒA?¹hL?¼Zø?å:Ì?Ë[f?2B+?6£8?;8?S4?„ý1?_M?&? ñ? x_?Žœø?Þá?´ø?…a?ÉÄ@÷ @ O?ø5§@Ðß@&pø?¼Zò?†sÂ?Šoq?Žm3?ßñi?梖@/è@3ë@5¤#@6©ƒ?´õ?±»‰?µ€Q?¿]©?ä_j?ØlC?¤ù³?¢jÙ?ŒÚö?‘Ó¬?Ž[?©™?Øõy?ÊM?ÈK£@$@2õM?×u‡?Eî?r«?‰e?ˆuU?‰iŸ?¶+¸?Âj˜?õÃ!@dè?–ª?…^k?Ó)-?ÓË?ÇØÀ?ÄÞá?ÊŽ?Ÿ¤F@_N?õmö?¨L$?ÏÆ@Wë@ý—?‹ÜÜ?•xd?³în?»Ý?Ë’?óMå@ L?ÈaÉ?…PN@G.@“*@•@@”^@c;‹@GëC@ƒ¹‚@‹0_@Íwç@ÞoMA®…A$¿@£ ·@žÿZAØA Ac|AbAn+AA$ìpA4•ÖA_¡ ABv@ë¿0A&pA„ +ZAR ž@ü’A&úA÷1i–?$q‹@OÁo@ÍIjA—R2A›ÙÇA¤qAŽ¦2A3ÌXAIfzAx,fAJçAmAu¿A5åˆAB„AN¡!Aˆ…@Û7>@ò¥¸AhAh’A +ÔÁ@òï@à™BAóA]v@ɯ@²:h@Æj +@ËaÌ@²=X@ªžÙ@O «@8ç,@’ý@Q³@Æ·@Ð?ÕÄ?Òj€@¥Ð@ ö@ Þ0@  ?ÛÆQ@(@ƒcÎ@mä+?Ù.@ÄÄ@]f@G¼è?é†À@_Æ@f +@JeR?üF%?ë&‰?É+³?­T¥?‚óñ?Ý_ô@=†@&¦Ù@Ò@"g@8õ‰@/s@!”]@¦o?À +È@ B×@;{Ç@/Ç?ÑÂê?Æð?Ão?ߦÜ?îê@W@6Q@Ó\?廇?Ð#Ê?Ã6T@ Œ@+Eu?ý8º?Âü¼?Âðž?Ââ6?Û“3?ìü@B1@– @pwç@Íž@1“@£z?ÕF?ÂVá@J5Ð@qÝ ?øN?¡Tš?³3¡?¾ãá@òz@§@ra0@‰ë3?ñ==?zvÏ?UMY?N¡ß?æéQ@ L@]Ï@¢7@%lF@/uô?ˆO>䬲?ýA½@"¸?‰.t? +Ìú?¦h?Ï)Ú@uŠ@ ‰H?«r¾?c‡?Ö#Ã@F ?ð;%?æ|Ì?Ðû?Ãq@Â@@ +µ@+fö@ñ +@Q?ì}i@pû@)ìb?ו»?uI? ’ ?ºzk?¿#é?ž|@üd@!×¼@é:@^`?à^t?ãç?ÙžŒ@^@}@Ý8@ýí@-ZR@Mл@²@RÎ?òüø?ÞÓ}?¦šP?’`?_¨?¸v@?|Ê@4 ?ø ¶?û€2?þ?ž?á¥?1?Zª?°fý?É­è@z%@Q?•iùç½?bD?Õ~B?ª‰”>ùŠÐ?*n:?«XR?ÎG&@E; @B§Ž?îÉ?ô¦?÷/®?ïžÚ?ÇZ?Ë*?Ærú?Çý@×¥@*w@-0 @.À…@;žo@Gš|@o?Â=›?Æ?wt”?ÎRé@ìz@æí?Ö?¢³?+ +>âó—<ýo>éÒ@s @ Ù‘@Ï?øÆß@©W@/‹?tn?bœB?ÇZÓ?Öî?òÇ@5$?íÅî?â½ð?Ýò?Û}õ? ß¯?$”?Ê p@Sz§@bæ@‚³@UxB?¸G?&µv?¶ÿ?¶êô?¶Øn?¶ÇW?vú?™1?‚æn?sC”?s+Ü?s @Ä·@BN@Ak?åõþ?ÁÑB?r‘‡?€#O?„aö?£Šš@#ò@Ô½?øì?ï¯p?æcC?Ýs@ \(@•?ù x?Ûá‹?™MÆ?3ÛU?¥ÿÁ@ ±_?ñÙë?y·\?rÃm?(ì?…†Ÿ?ÿÌ?…Û?ˆ7?‹Sv?cÆ|?_hs? ‡>ï +¢?Š¤?ÙÚV?ã2Ç??ã?º°¾?¶Â +?±-h?¯5N@ê“@{³?¾SG?£Pò?<Ìö>íMR?!5â?:é„?ž*/@Ôè?êu>ì¢Ñ>õ©R?Vµ¯?]iª@ æ@0]à?½z€?ª}@Kd@#á^@8Ð#@W¥¥@9Ý ?à]Ú?íöŠ?ó”?ú|(? +ö1>­U_>‚²Ç>/è?ωñ@/Y@ 9ó?¶ ñ?¢A?kc?Ï?‰Ï"?^³?ßS ?éHx? ;¨?ˆÅ;?C|þ>èåR?…?h½Í?|£?´¼?»s³?IÛÃ?dà?¤ {?®‰?ª}¥?®ˆ^?±Ëy?­Ü?·È¯?Ú\¥?Þ•?ç…B?çtç>¥k>`ÉÐ?š@?Ì6Í@ñž@"›u@f™?èÁ?ïþ‡?øÐ?ÿýÒ@7Å@AŸ@B!œ@Gìž@%œò@ÝF?ï?D?Çâ?µ ?I5š?0R>ÐÜÀ>§?$¾x?M—ê?V?^ªk?šŠ?ÞÞm?â€ï@!"@'Ô?Å2H?ÆŸl?›¤è?Š®õ?Yfv?ZÃ?Ÿö@žì@ Ã9?áèÞ?Õ¼ê?‹0?”/×@qT@ 8¾?üNe?óB¬@!‘þ@L-Q@2©P?ãº9?Â+Ô>?'C>ÒƸ?‚ù?†Ùó?ŸŠ?¬Õ&?UÐ?MÕ?+Ïò?º¢?8gô?nÄ:?lR#?Z†E?N&??í?S¸?êP?ÛÝ?†#>±D?£"?ßø½?¥ªÔ?dq?à:ß@+'B@ ]ø?Ÿç"?rȽ>ð‘? à?Y¹³?tÎy?¶?­_…?M?6Uò>¥5Æ>ˆñØ?Á`P?¾¸?¨óï?­Ný?ˆ4?wϾ?n&n?a|û?ª%Û?ºïÌ?¹åß?Å%£?KI>e¹?ÌŒ@?ý’@]–@b$…?-k>3Ä„?”ñ¨?Kß?ú|{@Tè?Š¢Š?{ŸÂ?¸E>ð –>Ê”…?Þ„?B|!?jÊ>* Í?‡W?~Óö?…t;?wúÔ?„ľ?†z>ažÿ>»ò?7Þ>¢Õ‰=¡ŽƒÜ$&> C>Õ#ñ?± @&²?†Ù=*e>1Üã>‚Vh>iG(?â˜Ø@8iÏ@@z?`<%?[Ñ">áÔN>â˜?Õ?$°u?[_¹?…͆?Bx=ËEî> ׶?hI?hí]?’¦>ÝÆ?A.ò?klu>í~=O½>5á?>œz?j?ÆÕ>Ák>¨D.?,ì>ë©>åß\>òKo?¤qÊ?êÞø?’úU>ôÖ?a~k?·¬É?š§ï?1_?.ãa?G¯N?#Ñ-='>÷éí>ü2~?º;?º®í?®N?°À,?zI?q²^?®ú•?¹øí>¤|<?7Ö}?{Ì~?%+¹>üLâ?ÃzX>ÚåW>þŸ>þK+>þz'?7û„?qð{>ö´p>wë7>ÿŽ.?×xÉ>¬2? ºu?JÌG?o6Í?Ó?§ûÛ?ÂÒ¹?èÞ2?ü$?OÂ>@¬ª?.’?i"Ÿ?§P?¸¥]?eîy?#(->§Ž>m"×?×S?Qÿ,?**š?!V ?™k!?©8÷?|?W{î?À“H?àìp?Éùè?È_?Œ½Š?€z@€ @äŠ?!ýC>Óž +?Ëk|?Ðt?…Ø@?‚|?Tg«?M0?pÁ?„X?ˆ:??e`í?`L?œŸI?•ÔU>i>>å?(½û?/óé?‡%Ø?r½\?Ƭ?%,)?Ž†`?‘†ù??@Ç?"zï?¼²>²0¬?ÜN? V?S‹>ŠÐ»?8²a?ÏÓ?Â1ò?›¾!?†Äº?]¢²?Uâ>rãì?#4¶?<?[o§?é¡? …”?cÈ>Û¢°?ºª?Ûâ©@ð7?^¼m>”<?•)å?Æ}{? ð.>\Ü ?ÿ‹?0÷I?U&H?bW?žŠò?©ÕÔ?{Š?tÞ-?ñI-?þF‹=Á<ΪÕ=Vc=ýÄY?“VÕ?–« +?ƒf ?çå?dT|?]Ž,?[Ö?.w@ ÜV?å²d? +•é?cƵ@_²?Þ[ñ?6‘J?w•G?ÅnH@±_@E¯œ@j?Jù?‡Í¿?¾T7?øí@G?ÀÍ ?…ã?‰½å?¾Öž?%Xò=¶¹Þ?£^?÷ؾ?•V’?U¿o? õz?ÁD?µ¦\?Üb²?{V(?D)Ü> ³´>\µ(?BÆÍ?Yú·>Z°Ú>@O?&Ø?ƒþ¹?Lú?V¼=@|d@©õ?ü<À?ú{?‘?Í™Î@V„?ݾJ?ENÖ?z, ?².? 'H?a‡â?n©ª?„z?§Âz?Ïùz?ÇHÒ?Æqñ?Û²a?ì;Í?¯}?„Æ?˱B?û +V?’+“?JVp?à:,@ uË@3—@rë?F”Í>ÿe?{ão?„Í¿?öë¹?ó÷©?ÊÓ?“¥\?ÇRZ?Ãú?¨E?šE?ïe?+Ì?’ž? ?B‰‹?09t?›>ü9±>Ø,»?Eê?›½;?™“8?—l?Is;>ßàÃ?<ј?võ-@ú3@)?¹ß’?…* ?¸ÈÑ?ÃÌü?I·ß?7!ü@;6@G×|?é†t?î0@+$Á@ {5?°k?ËX˜@1œ@"÷?ï,$?¸’?LÎ?e¬Ä?ÖåU@Ø @2p@?ÍÉ> Õ9?÷~Ð@iZ@@ 8@"bM?ýÜ"?Й`@@%a?æî¶?È ++@’å@" @Üû@G{?Ûù}?Ù³ô?U÷»?tÏA@ §@Œ ?È +Û?½†œ?†¦.?ÕÀ @l”@G÷k@YÅ?ò«Æ?ÆE?£Gÿ?eÚð?Ý?§@,µf?ê½?L@?/@+Ø÷@=Œ,@Jð@_áp@fWm@¥Wã@².Ø@–†O@“¥b@¿»@ÉS5@pCH@lŽ@È2 @Í{@ÔšÔ@Õ¤ì@Ðp¼@Ôþ„@áÞ›A¬,A3E +A5ï¨A9wA)ìzAOžA ƒoAm/@õ¢R@بAGAŒ§hA$¬«@§d¶@bu~@&#±?GVh>Š°Ò>ƒýß=à‰>­üŒ??†b@0›a@¢_—AN_iA]7LA…7 A õAyÎéA[†AîA +\@ÙA0HgA~@…AB„ãA ½ÂAz4@ûªØ@ûµv@ýFAü¢AÖM@ØÖÛ@Á–»A$Ï%A;ÿè@éwç@¿K@Öä`@ÜÜ@½çÈ@½.@•°@@ŽQv@uo @p+ð@{™r@d¸@Hµr@F%P@I03@LŠ?@>÷@B)s@l$œ@k7•@ƒcÃ@™ž@løƒ@_Ë<@Dè@>œa@(¬@3Ö@U$,@S2^@NsÞ@BÃ@/¾1@¾ç?©ùõ?Ð(@ 1@…]@ n?è+x?¡‹¾?”Ö8?‰{@,æM@ôÔ@^dÓ@'H@?Ïø³?p5Ã>Șì?.?Sä?³í?èïT?ü>š@4Û?ð8ã?á©ž?w0Å?y?³6§?íÈ\?·s?¡#‹? w?š…ü?ü)@`>?ÝýÚ?ÂŽ?P½å? q„?öL@™;@×?ø» @ +Ê@ +‘à?§kt?T³?³}?Ë£@H¹(@mš@‰¨?Á­J?‹¡1?iت?¾Ì­?×ò?ÆrS?ÁSW?ÁD2?Á7V?÷>uw!@†Ù@?x¬?óEó?¼«Ô?êA?ú>¬? ?[Á/?¸Ö?X(?æíD@ö5?Õ ]?³†?·»ª?¼`¨@ T@1rð@ q@€?Ïí¤?¬«?Îû?ÝP?ª¼??‰äí?ƒ'—?F?ÌKp@}z?›˜?$-?7@J?Jf¼?l1P?~¥??‹“Ô?àô_@ôM@a@ f(@P8@/€@gf?±1h?×ÕÅ@ü?å¯%?< ?+bÒ?‚Ê?IÛ7?½æ³?äª@üâT?O0]@*(·@%2à@%*Ú@!›]?½GB?¿ñJ@Qç@?>ß­?>.?x˜º?{μ?îûd?û³@jô@¡M@B4¿@L]_@Àâ?ÒPî?Â~?½ë?VÜ?gQ?lÝð?›½1?£eÒ?«à?f¶§>õff?JEd?™ºÀ?˜$|?{¢N?¸é@JE?ô¬C?Qp¦?€ë$?Ü_?Ì;ñ?Å‚#?¾n?Œn]?ˆVD?÷†n?ø½ÁSù>äOË?¶?¶Ç7?ÄY[?´Ôý?ƒŽ?sBx?²œf?ƒš?¸·Ò?Á¿Ì?¬§½?…ÚÜ?PdD>óY–?7pÓ?¯íR?²: ?ØÈ ?ßNf?ƒËô?õñ@ 1@â"?æLy?Ö/?ïÿ9?ó¡¡?à¿é?ÒV?ǃ?¼ÞÊ?Êtv?ðJ©?Ðà>ÿËb?¶¢?©¡?¦d6>±`>ž4?*/ó?:þ ? †ö>ï°?Bf?‰W?¦…,?Ò-?Ø€?ÞìË?Û P?rÝè?qÍm?í’ü?ö>X?¿¤]?²& ?³Ðº?¬Ö?¼{?Ь?݈N@gR?â:º>좡>øpq?Ji?/ +ˆ?ÙŠ ?ëÜè@ªJ@ ÷ø@´%@ü*@Lz@D¦£@4Ã(?ôuá?ä,Ý?Èàˆ?ÅCï?¡?¡ës?–Á?› 0?Ìùè?êèX?Ô§Ã?¯})?‡!ú=ãd>s³Ê?¾­þ?·Gw?”vï?›„;?n^-?>«?]#>?c•â?UüY?p o?œ¿1@)jÀ@#¸#?š?öÆ?‡Ðü?ŠDZ?-Gn>î«•?8γ?„ò)?›ô?Ç(?ÁºW?ç‚ê?çr’?%¨>Îh4?Ë{Ù@ pš?é!?ËÅo?ÌÎÊ?­=¶?­4q?­-ó+:?H'?y2Ò?ŽÂV?Ç“®?ÐP{?óŠª?ëŽ?™ô?€1ï?Ãáp?÷çp@#,`@[qg@D—e?°ÝÀ?´’? àh?œYÄ?½ÿØ?ȃ?ÿG«@pÉ?ç™T?Û ÿ?Ц¡?±µW?£ñ¡?Tš^?Aš?Œë?G4?%7?.ëì?¤&H?ÖJ–?ºY?œXk?À®ˆ?êWw?Õq ?¦á‡?›ø°?Dq?:n†?ÌD²?éìF?‰(>[«Ì>Á]T>íXÜ?>`ù?m÷s?§LÙ?å•÷?ÕŸ?¯,ˆ?›š¸?"Œ+?jî?!u±?4©?ïèZ?ä>ò‹Î>óä?EÇy?;­%?ðE†@µæ?Œb?uðw?©¯A?·þÁ>³÷å>LaÁ?sÇ?•­ ?%& ?ÿÚ?Lnx?bI¨?æÀI?ýþx?|‘S?%>ü~.>Ÿn"?/F?`·>ýĘ>·ûz?»ß?³”ß? ?=…Ü?¼|^?…ð?‚¼?/¦q?Sè?{?mÔ>.Ñ®=ô“B?Ó·µ?Û¯ >T“œ?‰'E?d³>öoa>I'¥?wO?Fæ?™Õ®?‚Ž ?lí>À¯Ó?´­:?þغ@S:?ŸÿT>AåÝ>ßW=fÞè?ÁN›@rO?ÿÿÜ?Á–Ã?³ Ü?6u?0H‰?*&Ú?1qc?`À:?†¶?kœ™? Ì8?åQ?[“ ?bw?gè?cŒy?*Ê? (š>„Í^>­·I?\@j?-‚Ô>s¾Z>w›??fª?F2>?´9Ÿ?Å¡?4ñƒ>òBÃ>ô?ó¡?k„Ê?C¼ô?$Üä?'y¹?¾Ð?9˜G?vte?U¶¿>€ˆ9>ªPŽ?‹ÙŒ?a?~%à?ˆ–o?{7,?yˆ?‘“>ú!a?Ó?&ó>ðD,>ÚÈw?“·|?®Ž‚>ñÝ.>#yœ>< >T›Û?9*u?}?"?9^?LN>ë¬>³²ì>âÃp>þyó? r“\<—'G?ÕZ?t¤#?Ú}>6[–?ULè?ÅcB?æ]>£•É? Àú?F‹Ì?»µ>‹ì?>ß?4´§?µæà?Š¿R?Qè½?Ξ?µd?½|O?Âd?HS?¯?—‹Ï?•ó‚?’)z?• a?—äZ?GŽ>à¸o>üá*?–?œ?¦„?1î¬?[oÓ?±]>­Á?+ƒ³?q±j?£¿÷?¿U‰?EW=‘]0?'¢ +?eò?Ÿö£?µæÞ?GŸµ?sO?+{Ð?2#?!šà?§?c´>ópn>ˆqf>Hó ?ÁZ–?ð³ë?å^b?ç?Æä>”•ò?«õ0?É=?À.?ÂÞ?9 ?8eý?o·€?lúª>ñŽ™?ì~>¢¬À>²*Ñ>ÆÁ>Ü" >÷>ž'>?›ÑD?—Gº?ÃÙÃ?¶äˆ?–? ÷8?IU?r"¹?ÍÞž?Èö`?¿>?µ„?‚Oë?€†?‚° ?hz+?­)?2k¶?fÆ?~­&?›SC?—§u?œ#?^zY>r (>µ‰5?Îò?Xéò?ªâ`?‡X6?+ÕÎ?C32?f?–€.?¹’ +?À€}ä?5‘¡?‡M>àù>`k>å§?z?"£?$‡?EGè?W’¸?‰ï?2o? ’>?=??‘ˆ?êƒ?t6N?}9?}Hç?„ò_?ûTÒ?ëb$?ƒ\Ã?ˆ¨g?¸ø(?©k ?$ë\?2§¼?\)å?—Æó@$\)@ 3º?ƒƒy?ƒ•û?ˆ$U?q$?¤?Ehç?…G?“(Ü?£²h?Õä”@ Ú¹?Õ 7?‹„?QD? +Bá?L,¬?ö»?C?7Ç>|²Ñ?ŠŽÉ?Õ8x?¬>,þ>˜8>¦RF?_Q ?ƒÿ£?½lK?ÅGÑ?Zñ?<_±?‹A#?‰?‚mï?vö‡?e¹í?tm5?ïL>?߆Ü=•=hßm=¯VW>ÌÏß@‹@%@V?â^Ã?tDÎ?Ý?·ïð?‘¾•?*¢=?T2ð?„y¢?nbÚ?_€Í?£4ˆ?È`C?¢@x?‹Ð ?ˆãš?„œC?†Ö?€Œ´>‹Êi?I‡ó?zI->'¦<Í­ò>ùí?Ub?,Ÿ?4LB?ù ¼?ðÖ0?ÇP!?¾À?„æu?“Wy?ÉŽ?¹¸>?žÁ$?„(Ð?û??\Á?Dúo?ˆ=É?¼Q—?³´¹?°J`?²yh?´ªÔ?úܺ@·v?‹1¢>á#\@È‘@8Ý ?º¶Œ?ôC?!åC?že?rW«?{ ?hÎV?}|U???K_ª?Ÿ: +?¼»ò@%ž²@ X¿@PÎ@ü@§Ä?ÚÆ$?Bòh?€‡R?ºS ?Øòÿ@Q¯?Èoh?p†ÿ@q@[ÉÆ@)m®@Xx@Ù{@$;?믪?Çôl@û3@"Yº@ ¶3@ °¦?Û#?¿H?ÂÒ?Ç­Ô?¡)‹?²ÒÄ@]€J@Q„}@ +¢R@ G@@9 B@‘Þ%@kÓ?×U?ôìÆ@N]@(|@G5@:Õa@.z„@“ª?ò'6@LMs@‚3e@DÃd@&ï @@½@J|'@oÓ@|¦@qYN@p Ô@“xn@•ß¬@¢¶y@žN@B‡l@U™Ø@­¯@·•@é:ù@ášÌ@Ñ}@êlÐAÞÖA¬QA-f>A$ŽAª¦AÆÏAÒ%A ¿CA4êA[YAz†-A)K}@æÞ_@„þ@&#·?>¦ö>iN >yT“=À·?Û@{\YAv`A‡¯²A¤ €A‹ +cA0Ô;AM”¶A¦!AbõA:5A,c÷A"2A”«A½\AùA)xA¸D@Õ¿$@Ì¢#@ÈmZ@—¥@‚=´@ø4)AmV@ïE@Ø3Î@Ôº@Õ4@‰µ¸@qž@Ÿfç@¦…á@†ÿ¦@‡WP@+¯Ò@(>5@æí@‚Ù@’û@ŒZ@'@#@3;"@ƒsó@w@ l”@&_@2£6@:›ò@Då@]B–@‘¾ä@€@3[Ï@2ŒŠ@/7@-@·)@%Ê?ñÍQ?Õ;Ä?¢&î@ž7@IÏÆ@Kï.@T}@P¼õ@FI_?Íjz>Gm?÷Ò@]<@ª‰?ø«?ä>*?õ2ô@**µ@Hc$?Ñl—?4„²?«ÑØ?àé"?ã#?åJè?×ű?ÅVà@ õ@"|—?äÂ\?©_?ãà4@Øé@M¡³@ræ@E?ѯÍ?É`é?Àn?\á?0Bx?С6?ø—Ì@½€@!Ã?ÖPš?®zš?Ì ‡?ÒWë@u×@ à"?Ø,È?Á«½?€O6?bõ¿?Í¢¼?ëÜS?é¸~?ä,?ÔE(?Î@ yD@ª@æ@ Ñ­?„òe?p@VÕ@ˆ²w?é™Ï?jîö?»øz?ÑÊõ?œ 6?‘c*?¤Ki?§II?3(ˆ>í5?ìà @ +?ý?ØÍš?ɳ?¼9£@ @6Èà@UN?¿–X?¬?–Ü“@ ²@_¥Ü@3µ?¶Úõ?î’=@ LŒ?Çmï?~£ ?¤öO?Æ«1?ÀH?Ås’?Ña¦?Úã5?ê @\5?÷¹y?äU#@¼}@)§]@ìÔ?ÍÔú?ÙŠÅ?êYŽ?Öb×?Õ>I?½5L?‚Ú?ŽÄÄ?´ÞÞ?Æg£@"›¿@^?Ú ?ØøŠ?‘|}?™¶V@ŸÄ@–h?D‡é?<\?xzê?{Ì­@±¦@V?ÁU?­¥‹@Pwv@t›w@Y5@SÃ@á?ùW©?¤~†?qF ?1“F??-²?IÄ?V…L?~#”?õmÜ@9®;@Õ1?ÛTå?ûäø@ ¦F@ÓÔ?vñ?Ò‚¤@qPñ@_»í@á@OF@!$ê@à”<=ª¬°?·x?,N@(ô +@3œó?’÷r?RÄÏ@#j@@èK?È,x?wÖö?·¶ô?ܦ?çVg?ôÃì@€:@ ©Ï@Ýt@^?Û?€o«?Qe?¹é’?¿‚ù?×ëá?ßW;?¡-‹?›‡4?•Üt?1Ð?ؼ?Ü Î@fŠ@i0@AG@WZ`?òWŽ?’À’·j?ƒ.?òž?°Að>ôT£?‡¼w@,öâ@Na?µy.?±¦¬>ñ¾Ž>ñ¨?fÑ?‡x?Å¿™?Ï÷Ï@¼Å@s[@Ðú@*Ö@Ÿ”?è+?ë3Ñ?î9³?äpT?«ßæ?¦ZI?³Ý½?³ÎL=Ül?µ;Ù?Ü?ƒâï?-’†?'¬? {n?`ÿ‰?¡]ç?—}O?Ã?Žò?íÆ?é¼N?íŽ?íÂÕ?`‚5?42è?[-?z³]?̪Z@ÔQ?ȼ#?=34?:ãi?d?( Á?þž@&?ÂðÒ?²‰ó?5O?‰Ää@vA@PŒv@6µ¼@[š@sj?ãW£?çð?¢x?¬”+?É}?¹Š}>¿D=PR–?‘Ä\?ê»?º98?x×Õ?‚^»?ƒ^W?p»7?xJë?‡Î?,;>éFÝ?~™?œÀ8?ðÓþ@¾R@™¾?«dd?Ñ>8jü>¶Š)?!Ñ=?0É ?bÇ?—U:?„¨Ž?\Í? ÒÐ>çÌŸ?`öñ@ +·}@ wÖ?ð)?èá4?ßÌ?ÒÊÚ?åßš?õòù?Ý ×?¹³-?Ÿj¯?nD£?~K,?‡43?D +?¾i?º§Ñ>ì+¸<‡MG?Ï3?x†)?dT]?8=q?OR ?sŠþ?b¸¹?974??­¯?^+??f‰?`)Ç?aÎÃ?eÖ?f–ƒ?Z™a?+˽?=Añ?úÈ÷@üç?p1Ð?—Ñ?GÎt?fä?”v‚?¸x®?”JH?.a?c}?)­u?<?N€ä?a™?÷½/@ 'F?úîm?®È?¾MŽ?ã) ?ð]À@]¹?ÿŒo>èÖå>èø?d3H?ePõ?q^M?c5E?8SÕ?%Ç?›XÌ@@µd?à‚?Çšá>¤÷>Î?#R?›?„÷a?‚ò?³>í`ˆ?ôs?«"æ?ÃÌÊ?Üó?±ÿn?oaæ?a{ž?H/r?}0?Æ•Q?£ÂÀ=o^>uÿÖ?Z'e?O,S?ž›E?™t>?µIy?·´ç?ið?e|>??\=Ì*¾?I%?yWª>G×>“Q>χ?ýQö@ep?Ç œ?¥Š†?dÌ?Lq?Ô>Éä ?«Å‡?²ï;?nÅ)?sì›?ɬ?8Å?~œ³?ƒ¡@?C·É?o²\?¥. ?l¶û? ×x?_o?h™©?m3ð?ˆÍa>‘=Ÿ>4Ó¥?1K?z?N?‘Î?T¥?@Ü?3ÐÊ>Âû‚>!LÜ@%Ý@=~f@ +Z_?Œã=…3¼>_ïF= ¬m?Ê8Å@ ?íB?·^?«ò¬??#€ý>òØŒ>ãôÁ>®¤6>™~†>ýúÒ?M~?BM°>ÎðW>ÜY¢>ë,>÷@Q>ðK;>ëW?-?+¹S?/\j?Q•F?4Áš>i‹>˜;?(^ÿ?"[û>­nò>¶ †>Ã’>Ð5>7êÍ= nÁ>•Ùƒ?g•>™zˆ=¨™Î>r7>õ¨‘?{,?)­U?4 Ï?< ”?Z¾?ÝÖL?ÔeZ>ŸP>ˆ„[?xñß?yˆy?ÏF?ýÍ?«>‡?¸cH>‚µ =ª6?˜g±?¼Ø >¹n6>㜰? ?WîA?}>>¯ïã>X‚>–&s>§Y>ËS¦?@Å9?~Ýe?ŸÅ|?½9ï?.óå=¨¤`?@?žP9?a|×?"VÒ>˪p>8'¯?¶Æ?€cL??—8>ëøü?üi?=±„?£=?úÖ?–¦>’d.>«hK>èÁ?yG?¿"ð?œ¹k?m‘?˜ \?·º?˜ß€?Z»µÆ>…®4? I#?5L ?KSÀ?Rà,?} ¤?–VÁ?E½N?Ô?VO?âç?‚<2?| °?¨v?»•°?æ‹Ý?÷>[?‹š?;:M>š><ìÁ>¹>K>çÔš?Áúë?Þ~³?‹Âì?h×?´X:?Ãf?›8F?‘2ö?ôé]@Sõ?Ä}?¿!>:ã<î&’?°bÌ?¶Ùô?§Ù?“V>Ï]†>Áø…>·­P>¿H*?£&/?‘1?>l²ê>É @‹+@¬¯?ÝVÛ?Æöð?–?±”>ö¹? _ã?Ûà!?Î!ç?oû—?}T?Ä å?¡Œ ? Úš? Að?¶">Ônö>p\¥?r+Ü@xP?Ä®>Ç6¿>û3*?MÒ?V¼L?rÊ?Á*?‚Ó·?oÁò?[Öå?z¹q?È ?|Ïú?‚æa?™8t?±!Ô?u—<Í¥?$WY?†¡¿>ÒTL=‡r„?€sþ?·Eä>ÖmÈ?d•¬?— à?~#Æ?dù>¶L·> ä>Šß>“óõ>f>¦Ô>ý!¢?0ì?\Ùï?is8?n$??rØû?Ð?=âÚ~<ë+ž=”² >a,§?ƒ\ ?„~d?Žþ'?… Ò?kr??è ?Ý3!?è;@6³@™×?§5?‡£$?ŠÔ?ý ?I™?#Xþ?/Ý÷?#¸°?&€ƒ?«ŒŒ@Gc@LÖ?Ö@|?¬~f?‡Œ‚?ª*â?Ämá?š¬Ð?|8>³m>?DŠ?’¸j?¶ + ?º|?9wá?õ¼?-ã%?<ª?Ð1ª?æàX?ý­ ?öïÜ?»œ^?¿n^?Æ(0?Ì#Ê?m• ?j±1?¸«Í?¥ Ý?“?=€¶?Óè?Ø@@Y@Q%@U@ +‹+@û@ ˜?ú¶­?ëž?Ñ[f?Óí?Ûú?åÂz?éwŸ?áR±?æÂ?š8?@Ïœ?ˆA¦?žX ?ÖäL?óïe?V>Ë¡>)˜ä=ÉG?d?%‹r>ùäŠ>ú=d?‚fÄ?ƒ•<ù7>¾C@×±?üÿ\?õ?ˆ®6?%Í?Ng?®Œï?¦€-?„ôÝ?xÔ?Nß÷?b¸«?…2?¤Œ ?щd?º«‚ä7>÷ ?H§>i?=Ú>ã(?/?´ü?À¾ ?~‰?t×Ý?¬¹ ?¤ä?f¸“?p +?±²?åÅì@H0 @#aq?…Iƒ?v.?K¬ ?˜Çp?ïy*?Ü¡»?Æ)ƒ?àoT?ø%2@!~@-Äu@X‹@fó@{¸@‘A?¦CÜ?„'@+(r@F-ë@B“'@@1?‰+?Ye˜?’e?™7ÿ?÷ë-?ôò ?øå•@Òá@a•8@N®>@6Z@f[@8µ…@ö]?…XY?–;ö?±ýc?«G?¤”Ž?–6?…Qÿ@%íN@sæý@>Â@u"@ öj@w‘@Œ(@¢C@yŸŸ@i4D@±=õ@·xK@€t@zŽ»@« @ª»f@W‡@•X–@ó@•@óJAôA~ @åtrA$…A#¬AåAéAKBA A7A’EA OA"aŠA2K-AfΗA‰]A:dšA”‡@3½¯>ZÚ©=™W2>¦ßõ>¿Ø]=&ÅÌ?iÂU?k§–;³Ji>)–h?Slh@}5œAXÉ5Av÷A§A‘]AI¶AQñÏA^<ØAWìANÜA#± @î…Y@î"Å@íßA_Aþ@ñ@Ñ·@“ë@ns7@¬œ@½ø@ßܾ@æ{e@Ûž @Ý3=@¬ts@£K@Á‚Œ@Çx¦@~r‘@n;ã@AÚ@4¦«@M„œ@J…C@ÅÆ@Ó?ʉñ?Õxõ?Ï‚{@)§@Ÿ¤@•ûH@Q ñ@Hðo@2¨a@ þ-?Þ6¨@:²@b9®@e•Ø@X*ƒ@=Â@ ræ@ë.@î®@&…@ 3@ T@á¾@$"V@SLÒ@ÙŒ?‘W@7E@|àš@FV>ükÛ?è9?Þ~M@ðT@öd@mÔ?â×Ì@Mkt@‡]ý@Y=1@.;@RŠ?ç\?¥•?„&Ö@ `@5˜å@Qó@Z¦Ï@Q«˜@Ql@u=?·@„à@ +ŸJ@@dÕ@Z^÷@w™¬@€“@ó«?ó$|?ý°¯@|z@@ÂÀ@TY?²B?M^p?ݤ@Ar?³é&?X?Ÿ—ÿ?¡Ýu?­ +ö?£‡?¤ü?ªä®?á¹>?úŒ ?Þ\•?ÙÏ7@bvÒ@‚áR@9M£@ Ñ™@M?ý„Î@`›*@õ@ùD?ëÙ?¯«…?ž³ñ?á?ñ8ú@i@s)?©¦Ý?PÌT?äu¿@S?ù[6?æši@Þ@×À@FYl@` 7@œß?à—!@+@?s˜@aÎê@}@Nµ?ƒ@ÿ?«â³?ÐB¬?Œ³???MÚ?lÝ@ûÄ@vs@-ÇÇ?¾žó@y @,/M@Ư?òé?ÚäY?¾Ç«?ÑÞl?íxJ@0NÊ@Ÿo¶@–c/@Zsµ@TL@=?@.ê?øÓ2?ø™?@Ûó@ñç@YŽT@E,1?$%¯?<Ñ>@ L@w ? ^?y??~4Å?{Í?þÿE@é@*ø¸@-lÜ?¯ß?ˆÌ¡?îX@š>?¦†¢? +À?Ð&¹?ñÌ°?çÞò?ݺ?ò¬'?ýÞ?×k?»°Y@&é@[+@>ˆ8@ r@ ¬~@ +MN?ÜÂS?,Öû?Û@9Žë@4ñ @ 6ç@Ëp@N{8@L$§?wÜ#?nÕ?çn?á p?ªÓ÷?°ìØ?¬Kb?§š ?Ù[?ó»Ã?Óõ?½%Ì?¹‹?¹¼˜?ˆ÷H?L#ª?Ùŵ@)J8@. u@3ýö@,ç?¾I¬?̧™?ö­?óG9?ðhC?èTÖ?¸½j?¶÷?@,Ý?KW³@L›@«0@Ó @m]@„æ@X?ˆfq>õ9²?Ÿ#?Þv?ÀìÍ?ž>@[³@Ua@/ßQ?À=þ?ËŸM?ߦC?áO…@)@³­@F»¯@Põ=?°3Å?˜€p?…Æš?†&?zÿ€?€Á?‘Zu?ƒ?½q?à5?½º?pï†?Xã"?3¡™?HÃ?(®i?<Ý?»³1?²q«? "*?¢§?ÎBH?ñ4,RÊ?˜?Ç+U?”‹³?oF?nê¹?nÎ3?°Í4@Q?@ ²>@V”@ ýá?µðd?´ä?ì?,Ìá?µ2?¾­ª?´•ß?ªx$?×õï@ó?ÛF?ÌW?x·?‡ Í?~œ +? ýh?@#  @08ø?­G?kÓŠ?Ÿ?Éf?ׯ³?Ú6à?°^>Þ~I?.>?š^ç?Œ)V@ìv@,)Z?‹ÒF? šE@Å»@KqŒ@ +c¦?iú ?í?Ú®?Ìð?<Ú ?5qt>ô,@>éH}?IÛ—?i?}÷-?J2?‹´5?h» ?} +T?¡T‘?–>µ?Ħ?¹5L?Î*§?ÐÏŠ?¤ïª?–Ø?†GÕ?A':?uyŒ?ÜC?çò;@+Å+@-¾>ÛWð>n¿ +?«±=?ç3Ö?¯T?ˆ¡?•.º?£]6?Ž”p?<¿å?,v?ü×o@ + ,@ML@ Œ`?ºD ?f¢|?\ñ?B­¥?QQÆ?¬îˆ?¬è7?*—B?›o?R +?f‡¬?+_->í D?oÆ1?ÚÞ?Ç"S?‘?†b™?åf"?æ¸î?EÀ^?Èë?q€g?‹$J?×ò@(ö3@1Ï¿@:[ì@$‚n>çKŽ>çaµ?/š¢?/ ?aÅ¢?…~?–=Î?¢þ¯?˜PÑ?nÊ÷?‘??ôX?à®S?Íy@ÛZ@Q¶?ìf ?Ø]r?·%? ªS?ÁÓ¥?ìû?ü,@ á?þŸ~?pî?Ö?Î`å?Öy?›|I?šÛ°?5e{>ò ?Ed¢?()?£X·?Æ_‹?©GÚ?oj‡??†ÎS?”§Ÿ@ N@Á>è¿Ú?fã@J3?õbb?’ØÛ?˜é±?¶Ð?·½Ÿ??îZ?C¨?eõ?oÈ?Sa=?92Ã?)?Í?4ÎÖ>û‡D>°Œ:>°òQ>gª?Æ? ª?Kæ?¥®>Ùw¯>Ûš`?rŒ?#Y?€Ý§?vêÈ=ªÜÈ>µ”?tî¯?Q|?²H?ƒ?M¦Â?u7>Ì_?DK¿?„Ùè>ªˆW>8zë?WåN?Vª? è>ÎZ= [æ<÷×ú>Â÷? )#>MWÎ>2vË=¤æÚ>&Ù†=ÉçW=±Ÿ5Û”h>Egè>ì-?ÊÞG@wd?­ââ?¥Ó: œ?ýþ@"MH?å¨Ù?~´?k >á–>â[n>ã!h>ãß.>ˆ>–[>…úÏ>æ¾ÿ>Àž@=IxÏ<ËÏQ>è?u>ê?Hí?WÒÅ>ä}>q?;|?@D@?+†>ô6>ß ¸?­y?!>±á=í¡QµÀÍ=;>z\¸>Ê÷¢?*?T¶?2 ê>öiQ?w?w)p?Œ ?Ô k?ÇòK?x‰Ÿ?xÞ¼?y0,?y‚#?jÄ?põˆ=‘?ë=#?Ìv?ÛÓ?•6?‹å ?è’>«²1?¦Ë?2îÁ?½y:?Û]q?Û4>Û£Ë?2Wš>±Ü«=Ïeæ? ÖR?bÜ?+\³>ÿ¿x>^Ý>·÷d?+ôÂ?On_?^`e?Btâ?%BN?{Öà?£å×?Xàf? +'K?g'%?¡‡¾?MgR>¸ÎI?m­]?´àé?0èš=V¬•<ög­<"¾J=ø =ž;°?'ƒ:?‹ãC?¤?±À[?º@R?Â&’?›Ëƒ?„â>ÌX?CýW?›Ã¼?¤²?®?:=ñ,î>J¦>ÝSü?Lt#?{@?­É½?ÁDD?Wz÷?X0>ÎlD>È‚>—A¤>B³=•ôP?9¾Y?Z›M?ȾÄ?è'#?³Di?©Š,?˜_è?š[Á?í¹?•®ä?Ø ¤?æ¦ç?‹Ü?‚[“?÷/é@tã>¸>BÕ=‚Î=¿ÆÖ?sr?Dü?_o?[B‰?‰x?…\L>¾:?¨.¢?¯ÑŒ?·sÄ?²ÊÖ?Uç?xÑU?å¥d?¾û6>,û>/Jÿ>e¥¤?+ý@cÑ?ÝÆå?| Û?/ 7=š,l>NG¢>ËU>ùÉ%?C^¹?jwæ?u…[?t*?‚ÉZ?½0j@Îü?Õ,è?n?…µ?Xg9?ÀD@ +ÈM?·" ?VýÂ?l>\C?+lÅ?€ß\>Àw=LÐÈ<Ñ_`>ó>6?6a?F(Ø??ì˜?Ò¡?ÃÛ?«õ?Ä¡ø?y0>‡ ³?*ZÌ?.o>‚ðT>Bõ>?L¯¦?Qêe?'|¿?!;h??êß?D$?#þ@U@è?bš?x1?ƒZ?ƒ\¹?ƒaÝ?€ö?ghë?e¿º?}bµ?…?Œˆp?–•m?¡ ?ŽÛD?BÕÒ?ƒ©ì?Å]ë?ßFã@šÖ?×,©?•›¬?Œ$?ƒ­?穬@$£?úÊ?¼êº?æíž@6?Û‘ ?ÀvÂ?lå?`¢ï?.kà? n ?´…a?ئÉ?Eѵ?ó²>‚1i>^)U?Ï0Â?çÉU@úi@ ƒÁ?Mš•?5Áò?1N?5“š?ÑÝ:?è ˆ@FFk@4\-?uìP?§6@:V³@ð;? ˆ?4“ˆ?š,?”^"?Ÿu?u.Ï>×âJ?&­á?oë ?}/b?…8;?øÕA@33?ÐÀÈ?:ð‹?nØ‚?„Þ?ŠËM?’<±?¸…?Æô(?¸­?µp ?1öœ?³ ?¡rW?µxb>e$#=ç×?Â%?ÃÉ¡=àõG?Î[Y?Õ,ƒ?òË?Ùv2?jt?XN?-Pz?|»Ä?ØÉõ?¬“?>Ïv?C,q?GŒe?g¾t?…ž?´H.?à!2?Äöû?³gh?„X?D”±?œÈN?¼%L?¡ží?“Šm?ñ i@'’@!‰é@"H@vÓã@zU_@ts?ï°>›ˆ>Á•O?'½m?&p2?Aª?Zèm@X!@“B?ò†^?À¨ø?E|l?yÌY?¬-«? )?‰ T?›Y ?´Ô°@¹æ@@•&@D}?ÈÁ?Âxp?ÁÏM?XjC?¾m?°ÿ÷?Ñ6?ׯ´?Þ%Ø@dÁž@g¨?*áÀ?(©?rAZ?€:M?…ZÂ?¬?Õ@:å@)^@?Ã?î@&¯Î@Ñ)?…WÐ?…V@?…U²?žÏF?°Î\?Œ_“?n‰¨?ÂÉ¿?îä?¶Hu?•‘—?í”™@ô?á·?âЃ@#ak@.¹k@•Ï„@Ÿ=z@¨0J@¦@ù@š•Í@ŸX@ש@äNA$u{A$ÍA#ädAšA!AþÉA*S/A+QA)chA>"…AZcA*(‡@áÀÛAT@*AšhßAÇ'A‰ïA¾g@†@-1¤?ö}v?Tóî>å!l=¸X=Ôæ´>q<˜Ì?Z±v?non>—"¿>ŽD>…E>_+>í_}@ Î@æ]òA®¤´Až‚ƒAua#AS ´AŠgA)d™AA<A7 ?A.µâAJâ“AcÇAoAw5&A67çA +‘A+ÞA˳@ð­@ƨÎ@ý¨›A ùMA‘ +AžH@ÛÚÜ@Á÷×@¤ú@œŠT@²b@³ü @‡‘ã@ƒÆ€@¸V÷@¿N@z;z@y5@¨h@$`@E±á@AÒ3@>{(@J×Ý@–É@ ¾È@Θ”@µÕ@Dü˜@5ßÝ@Ú@1@ºp@+r¾@aßÍ@Uôÿ@8+ƒ@%ðv@H‡@4€@|)¼@H“¤?ôüG@#Š@'Å @‚ñ?ý¨Œ?Êz?ŒÜØ?¥p‰?À¥M?á@.?þûd?ç“?Øàñ?ì ˆ?õĵ?Ó3?ÉñÜ?Ù&?éK @Çt@&Ì|?ˆ£>„?¼@ +r@fWÉ@‹zý@2T>@³…?f)Ö>§{@ ]R@=÷³@[?Ú­$@*L@B¨4@)¯”@Š`?.6?9±÷@h}@/±‹@ [—?ùN¾@ ð\@*Ï?Ï,R?¦{?£Á%?¡l…?ó|l@ +4å?ÞLI?Æ{?+Ù?o?Ö?07)?N4@R 6@…tŽ@5©´@b½?€ÍJ?-%?¯B6?Û—+?¥l¡?”…—@"lº@;ÉÜ@YÚÆ@cm @â@OÈ?Öü^?À(Æ?ì#@@£8@“µ?煮?ëÍŠ?ïNö?ïfö@ùõ@4*Ñ@6|ª@8Òê@(4Q@ =?Ñ:‚?~ôƒ?Â_#?ö¡X@"_@)z?Ÿù£>þ{Ñ?·ñh@%‹™@Ýg?š”õ?úOZ@?»@/a@‡…?á`r?T(m?œp?ÿÆm?ÂÆè? »?Ÿy@A(†@7$ @Ž›@OÁ?Ŷ?nék@–Þ@ +â?Z»?ƒPø?—ö1?—7ƒ?ìx§?òFi@‹@1@2¾¹@)ã1?šO)?‘k½@Vq@*]?À¯N?¥‘Ä@‚@/­ @Ð?ýHŸ?¦øÞ?…ÒY?Šî1? ]?ôi+@ƒ×?ö~’?»®í?«¢²?¢'U?×ÞD@ Y@ G§@‡@Kh?ã¹È?Û‡?»×?´KÇ?“¹?•Bå?Æ”Q?½X¾?x×!?xÀ3?¾=?*"}?©·U?­I½?g¦?Ž~k?@@?+“…@4¯@=u?ç P?žs>?‘Jõ?~‡H?œpÝ?Æd-?þ±g@Ðï@ `C?áü,@!@uñ@Tû ?¾ã®?ºòL?†¿§?ˆÉ»?S¾é?N Â@ *@Š•?”¨?u¡?ù’@p•?˜“Š? #?Ý…@$\Ê@0Ð@@´U@?k@5gw@6™j@0¦Œ@'Û@€#@8¯?Z›È?nÈš?ÌÍ¢?Ï«Ò?]z?s{Á?¨ú>óF->‚Æ>'›>«m¯>òÓz?¢:?*A9? ÿ5>õU?:ž?©Ëi?‹^ù=À¨>*~1?Ö?£%Ü?x&Ì?qiµ?ªTŸ?»ã?±uÇ?³¼?Óì ?ߥ“?¤å|?8äÄ?ArŸ?waD?€.?ðe?êí?¢á??¯Œ6?ÓóÁ?ÅâÕ?¡Ñl?˜À&?«Ô?o 0?níÌ?nÍH?•ŽÊ?À‡º?ÅxB?àJ?û*1@Nfé@Kú?o õ?[JÜ?×­?퉱?€Æ:?4iq?ÐË'@<@<ï?Õ›ý?ÏtP?±x ?¬®k?lb`?lGÐ@ :«@¥Þ?óÛ©?Ý;Q?Ö1ò?Ï&÷?âC©?ûÜ®?è=­?·¢:?¯šÄ@@ÆÙ?zT?jy?•,Q?¤hÀ?L¸˜?ê8?Bçê?iü‚?wê?“ö?ž|¿?»ïö?´†r?;A>éD–?J°I?i?ý?>%Ó>×â$?mˆ?aÀ?®gÝ?®mp?º´“?¾pÀ@N@%J?ƒÌq>çø€?]1?­Ù#?¦˜??—Ñ ?¨È­@! @Ý>?Þè?Ç"@ uè@fƒ?¶Œ>ç€?M¯ç?Óuô?Ýç+?Ѐž?ÈMÏ?¦?§¨ @(ub@GÂË@0U¯@C½@ðˆ@•·?ó@®?¬îX?¬èî?µ1(?©ú?h$Ç?SÁN?aî?fxö?Aè€?”,?SãV?¬õÛ?¬þ“?æ]Ž?æ¸ü? ªå?n×?™Ûa?Åô\?º~S?§F¶?Û¿Ý@0t…@-Xž?¹Tê?« á?r6Æ?g’”?Xj?A—£?^5?|O?ŸA´?æH™?ø‚Á@&q@!Jç@Š]@ Ö@ ˜@(#y?ÔMî?Ÿh?h} ?ç>ö É?‰Ê?'ÊÇ?Zµ„?õh?á°¢?Ò†Ã?Ê›Î?ÅÌ&?5·‹? +ÏX?K}x?kËË?—„¸?¨¹½?ÂI?Ú"¹?¡É“?6É>?“Ag@²ÿ@&x?«HÆ?Š™T?®@|?Ÿ1Ÿ?p¤©?H?s’b?t «?ˆðà?•|C?«ªÜ?³%?K÷?ÈT?$ò?“ù?pl?Þ÷?MAú?QœÈ?£l?´äÞ@[ô@9T?•Ë‹?~µó>È¿>‹¹ä>Ü‹v>¯5Ê?Î?…S¥?¿¼?²¶T?‚Ýg?},?WIR?aL$?tjc?Ï¡>]û>Ê´ß?—^> ,ê?"_C?<ÁÙ? *r>ɸ!>¢l? lœ? !À? šW?CØ?FÝ>‹]@>Þ:¹?5 Ž? « ? ‡Y<Øæ?«ú>çÕ?‰LW?³‹÷?ÃRS?‰Ì?<ø7Ë¿ã?¿÷N?ð0?Çeü?˜Š1?€Ï >ሖ>âN{>l|Ö>~Cÿ>Éí,>åH!>æH>æ´ß>Þä¯>ÎìÓ>ãf?g ¬?ci°?Ûd? •?@?«Ãò?ŒKÐ?m•7?nè?n©¢?YÎ>Â`>¦¹>¨˜ˆ>µ§Œ>“z>N™Á=‚ä`<“Ái?Hw?c²2?Ž*)?¢Ó?n„6?Bz>éKž>8w’?$?¼`‰?±L?©!#?«?xŒ–?sZP?Ase?MIm>ùÔ>ú,=eš07öê›?uNá?˜?'„×?¡t? {>üLk?<ô¦?HŠ[?ŸS©?À@d?Cfˆ>ȱš>h>ßÔ? +O¸?3ÐR>pê$>³2*?ŸÑ>ùg>ì ·?<ø±?jKË>þu>…­¼?7?-u­?”Ýp?À™?$Ö?oŒ¦?9ÁÔ?a>ÿƒ>ÝÝ?v2?O 5?0óe?éØ? ?\>úã%>?#?Ÿ?iÆW?‘`¯?”>u?—Ê?büâ?8 +—>á›B>†!?óè?f™R?ž­?«yƒ?†+4?^>¡¾M=ž;->Õ:? +»û?]à?ƒ>¡?ÙþÍ?ï®C?B·—>ÓV€>È”€>½Ú‡>³ ú>¨pA?Çéo?è$?‘À)?‚1Ë? ¢±?Øù>ºƒ>± +…=2ö>ñÒ3?T?oXÞ?zrÚ? +ʽ?7­;‚ãì<˜Dm?cëS?UˆÔ?sC?ɲ?±'?¨½G?UD?\úi?‘ÍØ?qu÷>‡ í>¤Þ?’?*¬™?®¤ì?³!ê?³/?žè|?nè?«†ø@$ý?ô…j?¥u? +v? *Ó?}/?à”l?³ñâ?i" +?VÚû?9?f>?šË?´ž?˳µ?Ô±ž?æ +?óT¨?ù¡W?Î}?®oQ?Œd¥?cÀ>áåM=–Š?žÌ¿?þ|?ˆ·X?x>/Tƒ?|YØ?­ê'?:˜Ø?û>˜×>ˆt“>² >®à¡?IQÌ?mK[?ˆ¼J?†õ?„C:->¼7?=Þ?„–‘?ÃäJ?ŸÃQ?e:?©Üœ?ð#w?ùä¢?üü?¶Y¾?khd?ಊ@ê?¸º?W#?Åø? +_?`Ví?ˆÏ?…Õ?ƒ× ?vÙ²?lP~?Œˆ ?– C?œ±?˜ˆ?8ÿ?&–?±¹P?Ãeö?U€ò?LcS?ƒ‘ ?ƒsö?Yݬ?d?Œ÷Ó@0M?ÒèV?"µº@I@Y´@=åÞ@,±¨@\ ¦@kâÉ@M»n@C€@ˆØG@Žgz@]¾@Y”k@æÖ @éL @ÒE@Õ @A +‹óA›A=¬ A7ÉhA$\{A'qÇA*Ú¿A$„[A* +AóAdüA4¯…AY¿¥A>Æ×A! œA7PÜAK»AF„A? ‚@Þû@†WN@- F@çð? æ=ˆ7‘_Úl>‚—?­r>éÀæ=X>J¤²?GÒS@>ÀAÃáA×b@i]?È®?‰^?EJÀ?Fü?­p ?ò +Ï?Ýà/?ìå?èWŸ?û@ƒ@a~g@„Íñ?öæž?ê{?°5ˆ?ÂÅK@Â@P @_d’@{^ @6E¯@ æ½@Q;ž@^o&@%›w@%ÿ@1m@;g‘@ŸÕ?åþ:@SÀ@kð?À1d?m׉?²=Ë?Á«§?¦Æ?0ã?¹´Ç?ÌÈ©@Y=@ +R3?ºRã?EV?ó¹5@„(?ËãP?¼Ê?ê{È?þ3Ù@-¾O@9b¯?‚a?šé?Çc?ù™Ú?ìnÂ?ò W@ÍÌ@È}?«I?q——@&¥ +@MY¸@/<õ@%ÁÚ?¨@?*¬‡?³g'?àók?ØŠÿ?ÛêÔ@lö@ +66?ß ?¿Yä?k=á?i¡?Vn?.F?¹Ÿ@@Ÿw?í§ñ?Ê.¬?áú?ûd?Ð-}?£Ç?žR?ŸsÄ?Õ2c@ :‘?ã6?’Ý?âã&@Ç.Á? }u@ cò@X¢?½'k?¾ai@ ó@ Ëë@C.@N›÷?]“L?)°-?¹(?´ÁÖ?7»?›?²›?¸úè@#QK@<ò ?Ÿ(…?J? +hU?‡¸?{£«?¨¢@ l @4@@Ñ/@IšW@#3K?ùèb@ÊT@1‹@D??»(—?Ʀ?܇b?ÖiÑ?ÖâË?éáƒ@£ @šÖ?|(î?xë˜?°íE?«‡?驧?ë£@)øì@+¥@aŠ@(±@Ga@%ŠX@šÇ?Î#b?Õ‹G?á…÷?˜À€?~?µ"!@#…ø?Û-è=+'g>Óþ÷?»læ?Û½@+š@¾?vQÆ?|rg?Óê?Î84?ó ;?õÔk?¨"ä?™`?°µ?¸w?œx€?\ ?®ÿâ?ÄÄ]?’K0?4?s/?¶©?»ðÃ?Ä–†?´-ü?L7?xª?÷ï?½”„@æ…@l³?_Á>öcR?S‚n?Z +ì?k°k?f0§?0žc?ŸZ?ªOl@ ?áªO?t ¿?ˆNT?µ¥z?ŸŽn>Á§Ê>¼è??´?#T>ËÂÈ>Û%Æ?…Ñ?“X£?–Â0?Ž;Ì?ο+@ Þ¸@ Šî@ +hÎ@!À?ëfJ?îxa?ðä?îŸ?Ú?ÓŽ¥?…dÐ?Åq?®?³sª?Š»%?o?Vf˜?Fùu?—9Y?á7ä?Æå\?nY¦?oÛG?sq.?…P”?à.’?ÚÈ”?œ%7?— a?M õ?U?Π/@"ñ@@ £ó?È”©?·ÆD?‘7g?”Ö³?laô?lC©?ppJ?qgÔ?©½?¸€?òä?MGy?O •?W‚|?ŽA—?É1?ߎÎ@ +t?þhú?Ç´?³”?K´²?è?Fžf?g,?eQþ?iú2?¿i@9×$@#¼Ü?€6Â?‹*¡?ÀÓ?²…K?+ ?i  ?[E|?V›Ú?ƒÁQ?«Ar?¸œK?ã%š?Ü„‘?(£?70²?ã +ö@> +?¦¬§?[°®?|—?›¬Å?ƒ‡o>ç§?b?ç¼?èi=?çµ—?çS¾?Úz>?ßC{?´mÃ?x2ž?{h?Œ˜X? cƒ@!O6@0ç?‘+.?yÁÌ?ûd?åw?°4?üÈy?Ú¦?š£Ü?³È?ÊÉ`?Æ‹J@FY@U?‚QŠ?Àê?:úæ?er ?…©†?@?¢=M?ÖO?Ñè?@§ˆ@HÌ?ïåÁ?úçÙ?™iˆ?ò>¶O¾<òû¨>˜fÆ?æQ?¦»±?çMÀ?çd:?¹®À?«[ý?«Ol?­Õ€?­í˜?®›?˜¶?iŸô?“Њ?ú€×@Z»?¬Mý?ºô†?±›¸?¯Ê?…Xó?i¶Œ?•Ý—?¯–’?—]þ?cJ?stŽ?”¶›?šˆ‚@¾û@sØ?¢Xþ?±ë?f{?Zɨ?P#>ñD×?©^Ž?ã ª?¥cù?zUº?Râ">ïw›?8΢?¤ +@›Ä@Å/@€´? e³? §>ò±²>þ•?»ò#?°¸s?+.?L?[Ò +?n-«=÷Øf=RÎ>ÙÏ>øIU?¦q®?»?P¡?#b»?BLg?aòŽ?zÿg?ŒÅ?¯¬®?­‚>—ïå>vI?EZU?Z\?ŽÖá?ƒ9?™'?ð?«Z?@-˜?ƒÆ]?…Ÿ}?’¾?‰¡%?sP ?Y?…Dã?Ït>Ñ™v>GW½>•æ ?Eõ†2? z4>RK=à¼i?.¯ú??¸Š?‰%?8`b?~ÏO>¦Š;ä:2ö`>¹Ñ>± +?óƒ?þÓo>06<×Ø›=6y<?TÚZ? +£?™f?§à"?Š?>átÄ>â9l>eÍ>I>Àa'>å4Ï>åï1>æ¢q>ºOb=Ȧ“=A.<;U=Rn =gIF=›J'?O T?–}ë?ˆÉe?m„?>þ>èÊÐ? é—??œ?8QÆ?“Ú+?¤M•?JL>é,>öÃN?üí?¢Á?#®œ>Êgî>(]=¸²r? Ë-?Ö£Ì?³NQ>÷Õo? ³?P~?FÜ>`µT>9zå>Ú7=>çp¨?·AÞ?·§d?/¯? Ì´>ÿëA>ûÃ?µ`V?À¶M?ˆØó?|†>ÉSõ>€I³?%^a?K*‡?5±Î?%™Õ?’;ø?±ˆº?q_=kÂÀ?pa?»2?¼â?¶K2?îÄ>)?®Í?>6 ?J»?S»ù?†?œ£â?Údœ@„h?©U|?oˆe?€}=?‰0|>äÝ‘?4?e(@?4Æy?C?#?.ù?«³?äAv?¢ØŒ?[¼? 3>ªüD?*ú¦?Mó?á·?—?Iq·?U~‹?Ÿù ?ÃïG?Ù@Ø?ä5Ë?pšG?9+?f`O?ä/>’[O<™™Ê>ô(Ë?(±û? ¤ƒ? >?ý÷> þÒ?>G¡?WÎ?©]†?º?Š'þ?‚1?YŠ>Ô¯>¾åV>©ÑK>#¯=ÿ}œ?1d„?-:î?“þ??‚6œ?…[.?ú?êGÇ?‚jÁ?»}?jÛ‰?a»{?K œ?fJ‚?¬q ?ŸîN?cGè?Z1.>~J>½ýÝ?mUß?u‡?˜9'?²Ð+@ +Y#?å +?ÇÞ?WX¡?½a‚?‚€–7>À?pÖ?¼b—?| ">Œw?q÷B?éý?»³ì?‚½?–Š ?¬@á@:!‹@ t?Ä3$?ÚÂ|?õ–{?ÆC?™$ä?`Ï{?%Æ•?¼û?ã®?•rÄ?Ä[ö?•ç?Ø?)S>üßc?g8?Š¾>¥6ó=½?'e?CÂe? 6 ? %?ˆb’?}?xg ?~>|?ÿ? ?ˆ?Û?‘þµ? 3?ã}?<‘~?NMR?Ò‚f?Í‹b?žLÙ?È? ï?ª?„f?£`£@V @h–?jY?–?§ÆÖ?Ï ¶@$I?@ݤ?{(ÿ?†?ŒNø?3™?ÅŸ?ˆ >áÈ«ñ?k²?±Š[?´5D?Áøÿ?„Dâ?3·½?nõk?„Œã?”FÖ?”é~?Qfê?2î©>Øg>¾0Å?’½?!D@g@ áŸ?ÜeÉ?ÒM ?éÚ?¾½à?ËE>ðÞ)=»ÈÎ>ªWX?²Ñ£?³p¯?ÍÙ?Á̬?„çñ?^ñÅ?ðá?^ú?¼K9?–ÙF?E[?˜O€?Ú5Q?·%?“ôÞ?Œ3?…ô?KÔ?'WÂ?8*Û?8Ps>þ=>è`?{KS?‰Gº?ƒÍ0?‰1d@Àþ@‚þ@^ M@Q©â?…5Ý?˜a@”¸@ +S?@>4@ñu@‘…@\¤@9o@’r?…Hs?’[?¢\‡?€³?6Ía?ˆ¦??³‡v?w½ž?%”S?ÁÇ?þ×Á?š’³?PY?*Îœ?}s?ëxâ@9¢@#^ @&®Ï?è?›•?Ô‘Ö?Ób_?¦R +?´K«@†@ +B@yn?ã¿t?£¶?ÎT¨@á@@ +e•@Ù¥@Æ?²° >¼V?fbÉ?¤à?â&·@K`@C:Ó@b…’@–gC@¤Ç@H g@'Úá?ôjB?ñ%@[ç@c“ˆA“`AMo@¸$¢@ÀA@ˆAÿäA)€]A$2÷A ¥ŽA$A*^;A+èlA0*ËA7º,AB~ìA?¸¨A>4ãA3–3A$º8A(ÓA.Ž}Aq†AF[A4â7@ù’Ë@¤ü@Z·?¦RŠ>ê@Ä=¤ê>3pÛ>X™}? +?Ù?Iý{?<­É>ò}½>Ô¥>¡U ?ŸÄ¸@‚ÁÍA-‘eAèûAÓÕA£ù A—WA‚®RAˆ÷AA‘@fA|"ÀAMîÝA]AcAkAÍAƒ áAŒqrA†ÛÇA„0|A* â@î¤ô@´Æa@™bš@Ü‹@ïv_@¼ã@®zµ@þ/ìA +@Ãqá@¸ÞU@ËÖR@ÑŽ¹@Ü’V@Þ +ž@³Ï@´v@NŽí@@{?ºiñ?¼É@EY9@Nm´@€-@ci-?Å+¢?ï5@TËí@Dqü?æ2?ñ~)@AË@ +r@–¯@9@(Ï@U×@RÌã@_¶F@tNù@l+@fq@!H??”ÍÉ?׿Š@ ³@¢Ê@ñÂ@=°6@bl(@‡?‚Wh?çÔ¼@³+@a0C@‰RA@K,¨@@$ÀÝ@'Ü?¢]O?Dò?¸ÿ?ó@O@5 @SÇ@1æµ@"µ@€ºö@˜×@G3?¼ƒâ?ËýÚ?ѽ2?³æ6?­Ër@ {@=:?¹A?†õm?é@6z@2Òi@>3@,7@(6„@Q![@Vîì@Ѐ@Úk@B=?þ4.?è†T?âõœ?Èó?ÁˆÊ?Lvg?¯?ü`0@kM?ã_ñ?Õ|o@˜@×?¼f­?–)%>¢g“<ï¿\?WnW?’BZ?¬{ú?®cå@fO@œÙ?…a3?%Hþ?²Ó´?Ý í?¤£?ˆL±@$®Ë@Q¡‚@`,‰@]’@>î?Á[g?úC˜@±5?³ÏÁ?aÑó@­¸@PnÉ@ÌF?Ì¢³@4´@8΢@ƒ‡?詉?·ÂŸ?—º­?µì%?Ïåñ?Ü0è?ê‚?×ß?¾›æ?†>þ?µ-Ê@,$E?ê]Ð>ý«¿?tJ?àcŸ?Ïé1?¯hŽ?ªàw?¶§u?šR? {?8v?½¦ˆ?Å­Þ?äžÏ?Ý g?Õ ?î*¶@wÞ#@hËÒ?½%úš,? ‰?D`?È—w@ó@88@YZO@©¾?m&’?Ý!Ë@;JR@;s?»'á?ÑÍ‘@ +å?ëîº>ÊA?3Uº@ɽ@Ö«?ö¼k?õt˜@Ñd@¬?˜É?•v@Þ@-.ß@/Ð÷@2và@(Y/@°@$Ú¥@(’?öÂ?¹—-?™˜±?wFH?`+?JþR?>¿ ?O ?+=¡?zN?hS”?)œ’?RŽÞ?­V½?©º?}?¢­É?ƒ¸?‰Ûõ?–Tg?™ò?Ü”½?é)l?¨'›?’Rñ?Øú“@"@ “@ +ƒ?Û ¹?wR?¡Æô?ðÙ@]@6÷¤@!¨0?š/(?¦5P@6×ÿ@6Æå?k ?4R?»˜P?Î…P?»vó?¼Ðÿ?žÌK?…z‘?G'Q?V}?œøÛ@h÷?åëƒ?R¯?OÀ>ñô¾? (x?ºíT?± '?³$m?¤M»?—ÊÍ?šDÖ?Ázd?Û® ?dž(>a¯/?ȉ?€?N™ñ>ðH?‹ ?p¯?‹û¨?¾ïø?Â?“- ?ŠOB?Ž'?’³ÿ?¨³½?«ýt?Êd?m¦Ñ?‘x"?À¨?®½[?„QÌ?•Î@Sº@È?¹µ3?¼ù?¨Ù-?¡¾K?OÑ?$Õ\?¥ð•?íkÞ?È=8?’8¡?…¼×>ìž¡?s?~N?wQs?¨´?¯ÝE?°<²?°Ûñ?„µ·?MÀ›?Š4>“¿7>Ë[!?1Læ?M‹H?á\Ì?ëé–@,Wá@5(k?ÿÕŽ?å‚d?è‹ +?æ[È?—ùG?IÂ?ˆñ@?½9@/vÝ>=ÌE>[Ï?¯åæ?Ð{²?}?i h?@ûu?˜?Øð?à?*þ?€p?†Î.?M`;?E®ó?ñ_Ë@˜k?§ Ñ?vsƒ?Ž?#?—Ð?~@=?C?(Ñk?ç~{?çp??¸WZ?¶É ?ÐŒ?Õò'?Ñáð?ÍÕÏ?Ò–&?Þ#‰?ÝÛü@Û`@>?Þ^?Þ¢ê@[@$K?ðø?¸¿/?œ9Ð?>Y˜?Y"y?Érl?Í¥â?õ«6?ÿY|?Àɪ?¬äK?Z¼>êxÁ?yÁ?Ýñ +?Ën?–ô?Ÿ=?ÛöM?í²>?·º‹?”¾?¦†Â?¶oÓ?°d?¬Ñ +?¥­e?¥b¾?œ?l?Zy?v23?ÁP ?̸ò?§¬Ç?œKá?§?®¸?™ ?h}U?¦,?¸cä?º71?hÞN?iA?ÁA?Ç :?˜Ï?ƒ #?–%×?«\?–Ëè?j‘`?…¡þ?°?Ì?®[¾?¨Í?²> ?$ñS?½>óÿó>ìÜ?P ?j#>?;îX?@d£?%09>î¿??Dž?‰Sß?€Œ=?†ø"?Šõu?­>;?®D›?exB?tg?è÷s?ÒhY?Óé‡?Ú% ?yÚy?uP? Ä>ö"?`ð]?W"0?Xl±?Oî¯?&£Ñ?Cn?Ž4ò?ŽÞF> k*=žˆ”>ݽ? #ˆ?/LÔ?L)È>°Ý>}::>š°²>ÁØÐ?ª$m?²¶;?‰'?cÂw?ï >ðã`>Ýyb?»¬?µ÷>ëy>âàQ?? ÞD?ü?¨Ì!=™T=¹G?Y¾ˆ?-¥=ÓqÂ>’;]? 45> ÎX?éŽ?Íé>£ù>è’ƒ?ä×>(Ïa@!wé@?Œ?¦>>ôK|=>ü>õÙ%>PnÇ@:‚k@C•?Å Ú?-Ùñ? 1Y>/ïf>J?>dW½>~§>Œ„>™º‹?Ó´?>È(?:ªj?[s ?U”n>æ÷>ܽ>Гª>Ä\?E>P?lYv?@²Ù?#ðÐ?8Ÿ>t¦æ>ã³>ï©>éu´>ÞR>oªz>ìØ2>ò!È>œ=?Ýï@”n?ÑÈ?£8?E~€>³S>:¯û>×á¹?˜Åh?‰¹£?0Ìu?!£>ø…°?QÎ?Š¾k?y»úeþ?©†?oÙ‘?lSå?>ûÇ?V_;?tb ?ÃÆG?É&/?8…A>û+›?Têw?d‚k?1;Q?0I?T[i?c|Ú?¼*>þà >4åÖNç?§|Ó?ߤ·? "-?€D?Nȇ?8sº?cIF?‡vA #>¡¸>Ò®¹>‹T1>3?m`?¿äK?Z³ù?2^>¥¹*>PÌ?èã? Q³>è%d>®¢?ñÿ#@ëe?¢ $?B£:?¾ÏÛ?è[K?^¿n?»F?}£1?‘Å?…¼?Ør?wûµ?y´?áGa@ Ÿ?I µ?5?å? ù=¡Ÿ1?`Ñ?‚"?ÉA×?Íj?¨1Ç?¢X?„Iº?‚>Äã>Æå?Áþn?Âp?k1?/s?…¦½?Š|;@gH?õ²?`á?!ëH?‚tk?†òO? 'Æ?šAÔ?™fô?‡ÛÀ>”øì>¾’S?Bß;?P>?¥—?Œ£Ü?º?Œ•u?“ ??Œé?‚ŸÓ?‚¢·?‚¤[?-ñ<€Ê>N1?=h? +Íî>ä?oy@?Ñ`ê?˜ÂÇ?'25?Š²?Ä$¸?Ð)ó?é£U?î©£?䪆?‹Ã?8¶?¢éÞ?Ûh?—¥´?aæ ?MÊð?7?¾?‹c¶?«†E?>v{>÷ðå?ë°?óÝ?¡©?½å ? b?X©Þ?¨»?´sg?uº-?\nN?^n’?i]#?a$???h?Ž?#Ë?&ã?+ >ÿmŒ=Ò5Z?ê÷?ò{<@ÿ7@ +q;?sÆ??„–×?rç[?*‰ë?L +?ƒ^¢?q¥;?;òá?ˆªX?ꟳ?áuÜ?Å1«?¶Ýí?Ÿl7?‡Ä­?DŠ?c§?ƒŽõ?‰Íç?•r?˜iÆ?‰.?m|?i1¶?Ãn?üÛ^?Á¨à?•¿µ?ˆA$?ƒÉw?±ÿÊ?Å°Ù?\ ?$,y? ? W?†^Ï?”üù?^ä?Z>œ?Yѳ?SÒ=?­Î—?¼/.?§‡W?ŸÕ?µ& ?­y +?Æ#™?¸?#?6¸?å#E?Ä_²?8?-¢•?{T%?“Ú‚?ÆiG?›Èè? + $?»º³@;•Î?ôô?Ω?SÁ>ÈV?|±D?Ƭ?¬¨?”×–?¯Ÿí?¸Œi?’ªM?„Œî?¢qê?´¼A?‘_ƒ?„žO>¨fI> ‚?¡ßi?±½]?Þ!°?é|”@-r@ÃY?ˆÚë?‚!Ü?Y)?§ª?t¥ò?_‡ö$ë?=3Ç?nÄ?_ ÷?]îp?¦}Æ?ºaR?¬ +Ó?¬ÈÞ>Ûn…>°É?°þö?Ì(?Š²?ë@R @­?â°?ì2?ôhå?õ@ ä @~Ø?Û…L?ô@Ž@•@€¤@!‘ó@'‡7@(¶ð@öV?ª<”?¦sÑ?ž²Ä?œ»?šfG?˜?ú?–€?À¤â?Ôt¹@»Ÿ@7´ß@7'@l@‹#@%ü×?ÙÃh?ÒâB?Á$o?Â=5@Ëï@a ?•Œ¸?¬@š¦@dŒ?ÏÍ5?ÕdÚ?Ðp›?̹?ÇÑX?éÌ+@d<@ @ ƒ¶?°ï'?"z_?®<Î?úÓ?ô/-?ó8“@n@"ë·@RW@dŸ°?ëp?Šó×?ö߶@%´@§&@¬®@ŠÑ@‘ƒW@¦‚r@¶cÆA€AQå@ãé³@êXø@öG“A´AcA²ÏA4b­AC+A[5£AH!öA/ÿ}A?W)ASÌÆAAºxA/æSAX|TAqÌÍA,Á„A @ªÌ@„æï?ÙÎ?{ID>&šå>ºpC>Ê»<¾.‹=“èL?Ô’?ϧ?ËEh?½h]?„¢º?`¶b>TÍm@3ðA ÿÖAKЂA³„qA¯A¦BA‹AAŽÉA:ëA5j…A,ÜA$½mA'™£A*páA,4A/æA,»YA+ägA)þAðà@äÒO@Ö­r@áý @ê6:@¡Í{@‘ `A1åA ²@­T@ž7Û@†$G@ƒÒ«@Çe_@ʸ@o’ð@qŃ@È»@È8@¬ž}@§s:@F}þ@J`@gã@`ìc@:w»@P#×@•Ì!@õ@0.@|O@ãa@À[@œ@$âh@=9Á@N_@v6(@‰F@Ÿš@ì³@x¬s@7Ѥ?ÄPö?˸*?ÒB ?¯–K?ŒS¿@\ø@Ax|@/ˆ @!ài@ƒØ@Â0@AD¢@m>Z@0¡@ æ?£-·?V‘?rµ?–«d@0¨@HüJ@BZ_@B '@!õj@üë@1f@;q@Ýa@S?þ\Í?ô)0?Œ}?C‹?°(º?Èò˜@)@ @@œ‹@A@š@?x?œ±?O¿:@K‡J@p5@/bw@#MŒ?†¯ÿ?,gŽ@e=@Yu?Ó– ?¾£›?ôW?û×¾?¡Sª?pY?ì$r@á†?¤+?[ö…?wèg?€ºµ@šB@2W˜@ +¡¾?ÿÇê@/…‡@8Ì]?ºsz?‰?Å-#?Û8Ü@3@AU£?ß3ñ?©‚ ?¹³å?À(Œ@4i@O˜@…®@”åä@SÑ@*÷?ÕHt?œ½n?â8u@Hi?×O–?·‘ @;SÂ@xü@1\ž@¢?¾=?[ã?Ãå?ç+?éêú?íÕÀ@ ý@W@úè?ãÊD?Ƹ~? T%?Õ$é@WL?îCo?‚´+?‰L@qŠ@Â@ª@|­?n`?{ëi?†[Û?j§?#•?Åi?Å7A?×Ðm@~Ï@ ô@*iú@(½?”Ðl?˜&*?µ€Ð?º}›?<5L?5.º?Ûsn?åf?ká +?XšZ@a^@ +Í@B‘:@5+B@•©@ª/@%¸T?¸¦?ÖíS?àÕ(?÷ûÁ@õ£?ú#Ì?ú@@+ @UÊm@Ó?¥W?ãø”@-hÏ@ò?»)[?À:‹?Ì40?¥Œé>=§K?T@AF=@4O‡?{De?´ž?‰ˆm?‘A?{0é?xc?¤œ™?±¾v?Û\E?èš-?ú}@Å·@ V@"F@T”?æ Ü?¶'?ŒUƒ?$AT=²e$? VK?­þÌ?ëÊ5@8“ù@2>ö…O?|ø?¸»ª?·ø6?§ªm?¤É¾?±¥ÿ?©¨?¹í??·2@76Ü@Jk?Ýn7?ˆ¸ñ?ã¸È@œ?­¥/>ôÒK?hÒù?ºn?·…ü?»³ +?ÐÍí@ p˜@»¢?¦ëä?¨UÝ@Þ„@Ž?€Bs?uñ?ÉŒ†?Û7$?n°Ÿ?Ã?x•ƒ?ž¶?‘§p?~­?v¸l?tÒr?{!?eí¤?‹c?ý…/?îdM?Ç«5?Ê­”?åÂ?ì?D?½¨ ?­¦í?W ?!A?Nx?pÃn?™Tb?¼›?Žq>ðHÞ?+b?¯/ ?¨)¤?ƒ'?†K?Ú”z?Ú¨ã?ˆP|?oE°?¢~œ?ºôÔ?Á]ë?ÇÌH?Ô·ö?á¨?ç7-?îZp?õ®1@9[@Àj?çd?ãÅ+? ÿ>Çôî?,Aÿ?>‘‰?Q5%?nå£?<¶…>²æä>Óîg?4gý?L–=E?FwÕ?|qK?—j?¡mb?¹R?Í'¥?½j»?°H?¥ûúÊ’>¹bï?OÔ?_þÎ?Ê°µ?ïæ?çûI?Ú&P?ì=ò@C´?ôðÕ?å´*?Ý:ô?š–ï??³?¡Š?¥Ïí?¬^é?ªú9?–ˆ?†*o?ˆžÛ?fœ³?g«¨?’? _@V%@ ø?âIý?ÅNl?Ã[Ø?­_?»-5?ÞJ$?Ó—u?‰e’?€9ƒ?ßÐ?á‹Ð?cÂ?%lØ?‚IÑ?¦Ú˜?¬ÐA?¬»¡?´Š‘?ÝŸ¾?Ö .?šê?•??z›‹?w'?©¡«?¯M†?‘àÏ?pz¢?¥‰ˆ?Þòî?±_Ì?5nU?X.?–]ö?· ??[ï?Jq>Øq³>Ò*ñ?OK,?myQ? ø,>î~?LPH?‚|?? ç?ÖðD?Ô9U?ÁÆf?¢¼-? Eò?9M×?âÝÿ?áe@·Ù@¼²?¶¿é?·u?Q̲?[?N?(6y?€?p?°?k‡â?x^‚?£•$?x?Ÿ4¹?¬)“?z‡b?uL8?yx¨?mÙ$?a™\?UAÇ?§Ü•?š"Ø?ŒÅ2?I©À?¾¦?#÷~?ÁYä?špb=ö^é>›oí?Çñ>ý8?ÁW>ºk\>1o?1Í$?‚H¤>Þ»>çS>«};>šTt? Pd? Ü>? +k]>†¹‚<Ÿ²ð>³ñŒ>ÐtÅ? 6ä? ¼·>âæ2>áú?õÅ>('?À9l?ý™H?á¸?)­(<ëp>,­—=Ù…Â@‚@†7ë?ßÁ>ß³V>Q£<±¸¡>a6R>Hnš> š6>–›°?qÓ?ÀÞU?•ÜH>çè‚>Ʊ¬;ËÐý<Ò•Ð=O™±=›Â>7^G>€ô=?¢¯?@N,?/;>hKH>ýn?… +?iÚ¦?(Q?5«S?¥‰? +™?\›á?ny?|??òF?“Z?#é?¢Æ>õ2>Ï£=>›*2?)Œ?œ7”?›?wÒ@?p ?MÙ×?Uˆv?žS‚?’¹G=‚=‰HN>ú_©>ú¬r?òÂ? A(>ýZp>ûÁ=?SÁå?U'Ã?£;?±±Ã?mH>þO?­ö?¤«I?1Á[>냥?vK?˜•?z>þÝ1? ‰b?Þ›?ZFÀ?’?¡îh?«‰B?1ÊB?£Á?¬s?Ôš¾?]ú?f¸>®s'>tÿ®?oŸ?¨u>ã‹‚?–½"?æò°?È^å?¹ÈW?”ü?ƒ?*CÍ?0w>ï>ÜO>ôHÝ?\?‚­?˜†*?¾$Ò?ßC;?…?A”)?zó7?‹ðÜ?(«?º#?‡Ì«?¢Ž?‰·‡?Õ‹?B?ä¨=¹£Ã´.>öÄ?MÊ£?6Tõ?Îõ>öN>—ë>Ç8h?Åc?>E¼?²vÏ?¤h'?‚?…õ€?ŠŠ?WMÕ>û9?Žˆ?üy?Â#—?u’Ü?R™]?6$4?!ýn?½›?ƒ´?Ä$Ç?|­Ø?Æø?h<²?¢ÓÄ?/©I>`{”?X w?¨Ò¾?‘lT?q'ç?©2ò?ÄS­?$§p>QþX=¢4^<ý&x>ËÃf?Ë?2%?Pþ?ðß?±?…ÍŒ?’Ÿr?®Ïz?°9ý?™†˜?’tì>Œ,¨>nWé?ËÁ?Ô?"Š?%£?*?W¨>šàÄ>¢n7?i?d;•?WK>úÿ>å`N@!Ù'@Úó?UJ>Ô`>õ©>ƨþ?k”x?= U>Ú€g?Y\“?Å/f?»{?©Ö¬?› +ý?…V¸?gÞê?L¡†?E3R?4ô•@¸_@R1?ñÒ?Br?«ÒÕ?Ûµå@ @ÎH?»×“?³“?+à#?ÜC?Í9ó?ñ?ê]t?ã¤V?èæn?æÁ\?+w0?ïJ?.mb?6ðU?Œés?ŠHÀ@Äé@v??Ô·p?×&Z?”P¼? 2?- ?j÷m@ )I?øÝ2?Z¢?N: ?¹?ZÇ?éž?óeÊ@ ÓÔ@ !?ÚšÁ?™ÈÂ?_ï>¡7û=øf&?dW?ôóÚ?òË®?ð¡q?Þ ¯?Ú½ ?‰\M?FÓ?D—??>r?N}¬?Xwb?,Ä?|ª:@ù@@f®?ƒM—?^×j?!®?ºÆ?Âjë?Öe@Dï,@*\ö?»?&ò?w· ?Ý:Ø@|>N@4‚? Ÿ?Dƒý?„îv?™F¬?¹Å…?Ü5c?õ(­?ÇCÖ¦@+÷@ò@4û?ñÆ?]Yá?†n?Çܵ?Ó~m?ö‹Á@ @Âq@γ@"‹@#?£¨?ÃN&?áýò?Å ì?²:?´d?¶ã?ÇpÉ?Ö2‚?›€Ð?…V?ÀY(?ÌÒ?’S?‡^K?ˆ:¢?Šï@<Ã@5Uî?§‘?ºC×@\@ $@Xì@AÚ?Ú\Ð?Î^?¾GÑ?ÏÔ?èÈÆ@ +Ch@*lA@2dÄ@>Õò@øØ?Ë¿?ÀÍ?·L©?—ˆÖ?…Ký?ê‘f@ MP@ “>@ +Û¦?¥ÝP?…§©@5c\@BR@À)#@Åmk@Ã!@¾é@³ˆ@¹s°@ñü@ðã@ÖTG@Ú/å@ëÂAY£A†XA%,!A@zAHvŸATbÉANù*AG‘ASD@á!gAü—AC©A_ûArCúAn"´AjVb@éõû@”òÏ@Tk©@:"Ï>â´p=¼y¬=ó×;Ỉ:õ>Á>²Ž¦>Ƕž?¸Õâ?½&Ó?Ávn?°ø“? +èÄ?4@×?”¨@gàÄA*U²A\³A­ÇA´á¼A¿S8A§^[A÷,A\zÕA+²@@ê3á@m8@ò¯äA-# +A O@ãB‰ADA¶–@´Œ@IÄ@õïƒAƒÕ@öx©@çìç@iÎÓ@4Ó@´=m@ÈÕº@šÐ.@”\o@–b)@”ÜÖ@ç¨Û@çøÃ@ƒ¿«@ƒj¥@{¦¼@y·@I8@K2Q@dÎm@M…µ?Ž$?ÛY@€.%@oÐ?@?š¡@Bþ~@=K@BÜ«@Qëƒ@Hé@8³©@_óõ@•š¼@•ž@Dæ²@ÿrÓ?Rã?D‘?Ïýb?ÿ!_?±Ñ9?‚ø’?ÇÁ?ñ¨7@V@3’L@#¾Y@ìA@Í@EÓ@’±@Üš@«?Ý\Í?Ýë´?Ú4?ç6D?ý¯”@ +ž-@pÝ?æq(>ýY=?€@?.6º?’Eª@žt@*Æ?»J?¹â™?½…d?§>Ì>÷#?cw@BÄŸ@4Ž?ÎjÖ@\’@@6u@A§K@=}t@.õ'@V@ 2,?Ñàš?àdÔ@b.?ð2Í?”¹?¾@dá7@_Â?·ê§?»è‹@@¤?‚÷?xe?ÏÃ:?ÔÏ'?¾+÷T? ýJ?µ?ÃâJ@uŠ®@XH[?åˆ?îRà@'ð @"Vø@ýß@³?=£!?J„Ø?æ,?õ °@3ÐF@J(@!¦ª@Й?é<;?ͧÛ?è°?Cª«?ºH‡@*:?óˆ?}%?©ÚŒ@†©@ÐÞ?ŠÜ?×?¥×’?«³T?«3?qÖÌ?}Æs?†c7??{?*ÿš?E×}?AGZ?’¬o?ÁÍ¥? ?qË?P-û?zŽ?MT?[r*?uµ÷?‹O©?ŽYC?Ö>?Õ¹?¢u?¡ñÏ?…Û‡?p÷?–U?¡ó_?° $?Ò`X?¥Oö>õ-?›õ?zü?~…ú?oÙn?oºÃ?šAI?¡Áâ?º|þ?¸_ƒ?‰ˆ?oƒ?nêõ?nÍ~?zÐ-?ŒÅ?ª3¯?â!?Îo>÷ ?î@7.@zû?ìñ?ÔKõ?Ž/+?mL?q¶Ø?j ?¥\[?äŃ?Ç…Ô?¢?é?­µ?ìcv?ìC@8û@Du?–^Œ?kÏ‚?¸˜&?Ûû?Æa~?¹‘j?±Ì?“Ä}?œä?š1|?¬¡?’¢¼?™m@?‚êm?r.@ƒ¸@*Û@j?¯zL?ÀçŽ?ÍOá?’Ê‹? 8‡?¸÷:?µ²Ø?æäÄ?æÒ–?+F*?–÷?N«ú?z4 ? :’?º+Ô?è¸n@å†@Ÿó@g@ð?mp?fˆ±?fŒ"?fˆà?¶[?äôq?ɈT?¢¶?„'ÿ>—à¶>ÂŽÈ?"»?“œô?˜v?œ”s?`ê=qS¥?WÌ~?æA?ãÁ?ç'ï?íjÑ@@ +0„@I@@=ï?HZK>z^?-ˆÑ?€n‰?ºC+@ÖX@PÛ?ºd¥?ÄÑ4@.®@öi>_6Š?i—*?£ë®?F?°¥'?®9‘>—FÔ>¬V7>„·ý>8¸?9öl?m|²?°±F?Â%æ?´tã?³V?³^^?³¥q?ÔF@uÍ@oŸ@>,@K?¾Ef?¼‡=?àÐ?¤4²?™ÈË?Ÿèô>ø>õ*{?áD{?ô Ö??®?atF?É Z?Ê +?¶Ñÿ?ÌÕ…?Š®ó?zà?úï>ü(V?«1E?´½ñ@,þš@'?â^K?ãÿõ@5æ@3Ùí?q¦l?’|?…?uÅ>Áh²>äÎ{?Bmœ?0‚&?Ë!?q¥@?˜ÿR?7Ìm?ZQ>è˜l>º®ž>híB>‘ÜŒ>°ðŸ>ãž¾? +y>‚Q¤=ž+l>#|?—û?”ð?¨în?o…þ?’>ˆs?¬»?–U=?7`=>X–A=]ˆ>ßúâ>'³<Šlå?ÿØŒ@ +m÷?ž¦z?@z>àBŸ<Ä->dп>"?)ˆ!??xŸ?8Ž?%cß? +?eM>ôÇÌ>èÀ¼>Ü/¸;T+>”|Ô>«Ùg?f&ú?›…¾?`€„>ôÿ³?0{?¦ZÀ?”Kº>{õ> þ?AÞ.?NÞq?žå?©Æ>ô‹'>óå/?FÍ?`‡z>ͨŒ>B>z<>5³*?ùÈ‚>ÿ+7? ÷h>ûbb>úõA>û<Î>û„ä>ûÇ5?v1ð?|G3?|‰-?|Å`>· X>}ÃË?_Öw?}¬ë?u¹Ù?ƒ*\?MÐ¥?GF?§á>þàN? |?¿oA@ €¬@™b?³å?‰ñÆ>£ô?¶\Å@CM?”±y?I£×?CóÅ?>@C?_¢?ã>¢Ì”>?'¯ ?fx«?lBÿ?rí?wÛä?}¤R?€&‹?{‰>œâh=”³.?ËjU@ÝV?Œ1Ð?SŸ-?VÈÖ?NÎÕ?è?šY?¡«?«é?³?¼§? á"?"ûž?ZÀ?mpJ?">‚? Ec>1¢i<™5r?]é?"àê?3K?CJŠ?¤¶¡?²Öe?†¡ˆ?‚#=?v¤9?dâP?ýP?_?£)?§!6?‡!?’?Ɉú?È7ª=ç>j`?Ì#?lÇ?`Ð? Ì?—?·n?‚l³?‹†A?·Ðo?ŸœÊ?yD>ÎE>(sb?8ï ? öÉ>²yy?–ð?’Ür?‚›?oÍí?QÜ¥?Žn©?Ãõ?x Ô=·é5>zË?ÖÎ>¿’¦=ïD´?O?lÙ?E†> +µš?!Î?[¼¥?-¤®?ǽr?¯k{?òáA?°Ô‚?š<2?¡uN?¨­G?.{´>ô?mÔ¾?‚d|>XóR=3J€?PºÈ?qD/?' ^?!>Œ?E@´?Rs>?–9æ?›¥þ?l‘U?Y‡>}ó¶>Šú?#Œ?%¤?)Œ? ×?^ Ì?XÉD?6¸?ê ?ƒ=?Xµ¹‘þ?d×h?i[W?ƒcð?qqT?@#Ò?doî?™¸j?‹@H?náQ?œj ?ÅDý?¤Äz?z¬?Œ¢´?œÏç?áÑ®@Ò†?ák4?µNb?øäM@"Î?ÈQJ?‘ö¨?KfR?§?f”2?Sí?5üÚ?-º?‹éš?šÃO?Ì!?ÕÇ?x9þ?^ÿÛ>]/¶>GG¸?Âó†?Ä€A? Ýò?¥¹È?{Í€?rî§?j ì?gN?„¡?yµ]?EØY?üD>‹C!?xñ%?z$ˆ?{.ƒ?T‡°?¾T?µÁç@RÙ@ ¨%?é1÷?¥Oy?M +?$¸‘?ž#?§o"?Þrº?^[˜>áê?f9G?…Á?(‡?°J?4ò0?6•Ù?È©d?à ±?X§ª?HXþ@ ±w@à¿?ÐËë?Ê9Á?„¿ç?{9~?ý?Qµ¥?ýœ¨?Þ¥2?„Ø8?·»@$ª‡@5ç?EÞ?ºˆ?ßP?È>;?­¥‹?â‡j@ëþ?óhä?ÇÒ?І?ÝÆÎ?âoÛ?ÞóR@.ÿç@LR³M >y7^?«Æ?Á¦I?*߇?žÑ?‚š–?q²>,«j>“ ??…G?w_Ñ?àQè?¿"8?N¯™?…î­?ÇàU?ÙMK?ýçy?Þj[?¨—™?¶H?Çï»?Ìãë?Õ3Ú?à×N?ÞØé?¢À(?…Q3>÷¿>\Bz?VÉd?…U‰?í—@Âò?Ǽ™?ÅB?Æ ?ÄUí@)¼ @(?õ†ì?õÿ)@ Ê3?ý†?xŒ(?£‚ @W??î—œ?¬1Œ?ÂN-AU(/AIÛÈA?ÐA<•PA;gjAg…ŸA‚V®AWôgA=Ar–A†bAlÒA\¦*A$I»A!É@™?¨t˜=ç±@³º@ŸQ?{l?EÈo?’Äz?šqL@*œ"@BJÿ@‘´?ñs»?ó²ç?õ÷‡@™à@¶?_Í\?’h?Ù\?úèú?ú” ?ù#@%¡@-×@!6î@"r@D;@ÑK?ûE©?åžÆ?ÚÂ?Ýüï@.‰@-ã @|Ó@?ì¯h?Éö?~0Å?5Ø ?ŽQ;?¢ƒÝ?âȬ@w€?بQ?½ÜR?ãê™?þËø@Z@ +S£@ç@+@.@—Í@Tõ?ñÈ0@C{@BY_@ÚŒ?Å¡\?ß#î?ý®©@ +âi@q˜?é‘^?0!?‰LÁ@á>@ªÐ@8Ìã@\ì?€uÉ?mL?kÖ?Ÿ>?xô@…o½@w¶Ï?§)?ŸT>ü„>þ D?{ÞV?{Ïb?éŠ?õþ?Óc?ÅÁò?Pø8?v®?ã{‹@j±@âˆ@?Ý&â?¹0Ï?º‚R?»õ)?âùG?úoF?¡Üù?G)?Óv×@MR@ p@Ñ@Ã[@*4z@Î?ùp?ú“@q7@ Ý@HD@ ÜŸ?˜- ?†È,?ž‰?Bã@i•@^]?èhd?à&??Ë?Ë´Ä?šë¹?’ù0?°ýo?¹àH?£}d?’Y?‰¸ ?gŒ?H¾X?“z?ùž?\Õ?å?ü»»?ù܉?øY‡?ýð¯?ö‚R?éÝ?§’B?ºÃã@Óþ@Çš?ì/Ö?ÙU£?ÓŸ8?×&K?Ô£É?ÐÐì@œ@ ”þ?«åB?I9?àÀã@,’a@L¬˜@s0@\Ñ¡@.¦Ê@F6a@‹âV@p™Û?t?x?F? ß‰?ÙÛ?µY'?¶›È?y´Ï?Yªe?n;¢?WÍ?½R„?ò×@·3@ åc?½>>ö‚ê>ùêå>ò0Á>ò>ñö†?îh?qÀ?q§q?í€ä?ñh?»©?¥Žþ?’üf?Œƒž?Ï^õ@áz?´g ?GŠ? œa?p@•?‘bì?åºF?ÙñU?¨SØ?¥ +ˆ?Ê›U?Å!$?è;?ïD™?×Ø?Äw??¡¡á?Š~À?My©>È a>ùÿê?nVM?\ˆ>ï¯>ñq£?Œe ?–[ ?ïŽ?þ¸ë$8?rÿ?jíS?jÑ5?0â? Çé?’9¹?¨{7?Õ@Z?ðÂ?Ô†~?¯xí?¼vÄ?ØV?Åc~?7j?/ð¿@og@{UÁ?ìA? Â?mú7?}¡>µ™y<·)²>ô#F?ÙžÛ?Í¿¬?h\y?hFH?¦ *?®‹?‰“=?}ì?ŽÛí?“±ú??½Ø?µ#¬?­—²?·#¸@:ü»@?Fµ@‡†@~^@Ÿo?êŒ?Í$Ð?°,Ó?Åù?ØŠ1?Ü‘?ìJU?èÄà?¹Câ?§q“@$ã @YÆx@)]º?Ù ?áëq?ê]p?òÕ?Eü¢?J=Æ?Å?|¿s?m.0?oÕä?‘ª`?¬ñf?‡~<ú1%?]Ú?‹ø|?+i~?(R>ùV>Ì.O?‡íÚ?ç?ÙŠ?¸?»þ3?Ã?Õ¨Þ@¦ +?ÿ«¼?‰h0?Jdœ?«–ò?âÊf?¹Õ?|9?æM?Û¥`?ØI?ò«á@¼2?ñ¿>§T‘?Vl©?Ñá>ü½=!„é>g/2>ê\?CµÀ?´x×?—úÌ?+F?Gª,> f­>m„?™8ý?­Z•?±ú?­ù?n¤w?V@ ?ÕÉW@ +ù?Ë)‡?‡ˆ?½ƒ@@?±’ö?ŠÖ ?wô£?5?Æ?:›Û?#6%?qRÄ?yãí>5’«>Eèl?਑?øw/?Œ ?b ?už?zïÝ?Í#>øh:?wS'?‰Àß?û'@²=?å,5?Û,c@*°÷@ ‰¼?ð?%à?¾Aó?Ÿ x? I?|Œ?í©?cŠ?Õü?Â<ñ@ b)?š,`?É•?[ôÂ?aUü>š9>M©>aÀ?ß<>€®>§lf>¿ÏÕ?ªÑî?µŒ?¾!?‡ˆî?¨>é±@OÇP@o0ˆ@Cå?kaÊ<«îÐ>Y'!=äŸZ<ƒã‰>8ã™=\if=¹Š¾?Ý3?Ýä +?ìm?è”Y?˜?Å>ùÉ>àyˆ>ÇÃ&>ð±>™ô?X•–?“ϵ??N÷Ê?^#c?h:Â?f©È?œZ?“:Î?\>?L ‹?Eé?PÑ„?Cl’?12¶?4>Z?(ª}?uß>ð•Ë>áì$=¿¬ä=§|?©¡°?³¤m?‚ è?l`ì?q%?t¸Ù>¯d?>Ó©ð?o9=?‰hú?ŸA?‘Šy?N± ?XÍ%?‹h?y<‰? žÄ?3I‰?ó™w?îÑ?rõã?iŸÏ>û{.>û®A>ì:>š ?¡E8?¤8k?O2?>]å?­Ï‡?²¬¿>²Xþ>ÑÈ>y*‰>`°ä?%:i?0%Ä?œ”N?¸Ì^?@Y;?ê×?ø™¯@E?Ye >Á™o?†Üw?«Jª?›?€fâ?€vÉ?€…?@¸ð?e?#mø?(­? ð!?ã>áÈì>á¹?{1?/¾?aí$?1±?Vs>ÞxÊ?Š§?­N2>Û4k>" K?|ò?54Á? Zì?™¯?d¾™?q'?<Òð?.|Ì?›5ø?£–r?V‚>Õæ"?Rá?kÊÅ@×i@!1³>†$š=$ÆW?aù?o?+Z?‚û?*ò1?,¥}?`Y$?lÌ?=VÖ?E?? Ç¯?›§ë?4ÕÕ?2™´?Rs?Dýç?íz?(,ó?‹ïü?‚®?üÿ?ëS?í‹?9[³?½M7?Çb[?ùlí?Ï}‚?wR?Wª?."e?†¦>Vw‘>ÏW?HI¶?§°>b¢+>œ¢?“Y?"ë¡?`¥K? ´d?!-Š?Ãòƒ?Ûá6?þ¯#?åB/?¿Ó1?ÕËy?é>C?Ía?¸3?^\¡>Áè@?†É8?Ä º?h ø?ĺ?Fƒ?=YC?Žd–?§9Ç?{ví?U`S?‹°õ?¤? ˜“>h ~>„øƒ>hÕL>/\Û=ëóÀ?×Ö÷@ Ä?’®[?qu•@ ܾ@ì9?ˆª¾?hÊE>@ñ¨>Í¡?¨—?¬„3?þ*?,÷W>‰¢´>‹Öþ?>’y?>?¯?gWÓ?Tx?,ž?1ë?"ªŽ?+;m?pK6?TMï>€÷B>ó±??ÁIÇ?Áµâ?»}?”PÈ?;)?‚°,?í®µ?Ÿ5A>‰>›s>­ÎÖ?"Ã?RV?“An?ÅBÉ?Õ¨+?ã¥[?Ã=H?«“J? g?šéÃ?¼W¬?Ɖä?…ÈÌ?V‹g?Ñ?ÿ¾!@!ø@èß?~òg?Žá?¥|¹?¸ïç?‹£¦?ƒÙ|?rü?“@p?Þžy?à"?±c‘?¥Œë?mËÛ?€˜ž?ÍÞ$?Á¸?§‹ö?©Í ?¬ +Ã?¯D£?¯d?Š"ã> §Ø>„y>LtÇ>½öÈ?G _>öž<û®? x#?Ä\?›Â?0MÝ?²d@]y?Áüð?„g^?¯y?Ž|,?Ì-?ñÑå? AÁ?haK?ㆠ@Àß?(>oÖn?6Ô?Uý×?1Z¬?4UØ>ñ +º>Êl(?Ÿ%u? Ö?ÿw?÷w ?„¿?„Ãs?„Ç+?q¼¹?8?uÆ`?ú3¡?ë«j?ÓcQ?Ë…?¶äü?žQ?€Ö~?·iÛ?ð¿7?î™Å?ìu~?¯þ²?†*?ƒLö?v_?Ú -@ œ@@Œ?†[ ?LÆ^?¸Óã?Ç«`?“Ó~?‹ÖI?ûç1@€Ã?5¿?6LE@9…€@«D=‘1V>`O6?U–ä?|Å»?¤lR?¬g{?ÇÞä?©W€?n¬N?›ŠË?Çé)?·Ëç?¨D†?µÔõ?»ý7?ý­h@á?Þ…á?ªÆš?š­?“½9?‘•²?oÿ?¾”‚?È=>p:=Ô=ôQ=ÌÝ«?–6Ú? Š?Ñò?Åð?ZÂe?SÀù?Uò?l™Ô@VØ?õx,?ÇÿÑ?Ó5S?çvë@î,@á@\@Rj?ÀOµ?…PÉ?¾Qq?Òhf?±Òš?¬Ÿ”@.…¬@L—Ê?Ã?ŠOn@.ÓÜ@FX}@ 3@>Ž@`@b¸»@“14@Fº@pœ–@w’þ@Œ*‹@›ã¶@àv²@ܘl@ǵ¾@õŸþA-³"A'ˆdALÌA3CõAV£Î>´àà>Æ3p>׉¢>èÞƒ?”Fp@„|4@¯“ÊA¢óA0ŒüAj5A€·¬A—Œ[A˜³)A›§yA‰ù^Ab:ÜASbÒAD AC*ÜA@IAxÇ@èÎ @Ùœä@Ò–x@ýîA ÜéA +nyAÚô@È6Î@²½ã@©J@¨»R@¦t@¨˜@»˜ý@½•ù@©@O@©t&@˜Á!@˜ÌØ@‰wù@†•©?èEª?é O@J@÷”@~U@{Æ@Gg@PÄî@‚†°@iŒ@ r®@à?ÎÑâ?ꃛ@ú(@(1@-u?ì[?ªS?Õ‡‚@2 ?è[Š?ƒ8?Ö3%@#Â…@`Áþ@šü @Š{¾@g`µ@v²û@ƒc“@T@#pD@@v@?ÛS”?Ž@e?ƒ¤J?¡›?Øw@ ¯¢@‰(?ùË?›Êy?c•1?° 6?Æmö?ˆ¢$?gq?À¢?àê†@€@&«@ UW@ü@‚ä@- 4?Åœí?’÷5?‚”>–¸0?¯Ê‚?Ò…&@Kî@#¿ê@Sõì@a@*-™@•@?Þ#Á?Ìô‘?¤õÌ? :?‡Cæ?@R?ÇÖ?Ñ 3@'á@3 9?bÆÁ?½?òMÃ@®Ä@(½Þ@+ñ?øè[?â~Ê?®ð†?©&é?Ìä ?ÏŠp?K]ú?#Ž?© ™?ÃP½?M…º?,´?Âý?äo°?Ô¬Ž?Ñ3?ç2P?êóÍ@ §Ž@Ó?ø­z?ãp`@ó@#’?ÝÎ ?®ýC@ìS@6Oz@D ?Û“@< @6Q@>Ô]@A‚0?àˆo?€ƒí?ñÛq@]?Öb?”ˆS?íP˜@OÄ?íÅ?¼(?—r{?cßû?DzÍ@?é4c?}Ò”?”’?·à@m@_|p@!m:?}U%?ÃL¦@,š‘@1?½Âá?­½·?|àÄ?‰ïÄ?°&J?©IÏ?šR??º•@VZ=@QèÂ@ÞÓ@o[?Fng?D¸?¼&F?·¾?äwì?Û‰ß?ùA@­2@"j@(µ@@ñ@?¨ ™?€O^?Ù¥Å?ø'ñ@D@Ó®@6Tµ@G™S@ Px?Ã’„@ Æ€@/ÔÛ@?žº?é‡W@-¶@]¾?âcÉ?Ìa?Ž„³?ÙUÔ@râÍ@n5@3¤@,¯³?¸âÇ?ÂD@U¾Ä@Rû{@K±¦@Gm-@¿ä@ È4?·$-?£7É@²ñ@8@ôs?÷¦œ?ÈøA?³¨?¢k$?Œ¾c?£¯?µ=7?Óê@f§@MÃ@>@ªó@3ƒ@°?)ò?*1?Ùäá?ßu@7ƒÆ@8_)?貃?ÖÉ¢?ïgÏ?õoÕ@¡¬@d‡@œ8@Y?ݤ?°6°@4@9 h@#'?ý i@<±@Kƒ'@Dšù@gÚ?ñ’ß?ßA?’ÉK?l%9?u;z?Üm¹?æl¿@ Úº@\B?ú•û?Û +>?Ò-?z?e—ˆ?´LÆ?äŸ@%Ó@ÛA?̘f?ÀǼ?¢´f?Ÿ‰R?ïJ?ñjÅ@ûŒ@ §s?½‚£? Ð†?ˆÒŸ?pÄý@jÂ@xň@8ù©?rC˜?Xç?òv?.Xz?*Ôù?@n +?G}š?˃i?Äå”?9é€?0¾?ˆ2r?³7?‚?‚? tË?«± @1Dý@!zs?¶ƒi?¯}@>‰@H·¹?µ??iQ?®¥¿?Û‚´?ã¼?åÚ×?öX@&l@(±?hY;?hDá@+U@$Qõ?Â&¤?~Ø?œ??Éë?⊨@ JI@‚Ç?hï«?o¢?õŸ@DI?à.?ÔÝç?¦ð­?ŠêÀ?\Q¨>.åÊ>¨Ý’?­+å?­ÿ@BŠ@H?TG?s9Ç?¤˜\?Ù…M?בx?¬ï?²RÈ?Ç~?ÂØ>¤HI>°ôØ?º­ê?á½@˜Ð@&¶F?ÚL‹?"’?Qµr?”7e?þi?i#Í?zÿ·?)Z>íXM>f”=ºm¾?'0 +?¯§¿?¿ê3?Û£?ÌúÞ?gTò?giG?úšÕ@-?yâ?ok?€¼y?®L?–æu?hP?„6Š?¼b|?Ê°@s$@Å;?šjN?ˆ—û?„mh?‘gF?ÈP?è°Ð?{,é=‘9>>Úgø?œk?Ÿîø?iÿ„?@ó>?FA$?Põï?y~Ï?sHý?Ò?¹?ç<?²#ñ?wÉ?Ÿ£´?ǵ+?ŸÔ?!pN>ê>q5>¦K=?s[?}x?„t¥?”½Œ?Ûß´?Ë$ð>R7ó>/Êc?Æ5B?À°™?…Fõ?vHh?Ðb?ÀÛ?4lå?PÖÕ?Í€?Ó„?Qqð?Mg9> BÞ;òÏÀ?cŇ?}žâ?P¾?f•?ú­ð@I @àô@#I?íV?s^Ð?GÚ?«>%>ß>]²y>‹aˆ?!mð?kb¢?x<û?ˆž>³8=¡5?NN?:{¹?ÒC“?›Še>$É>ÜUŒ?…j—?Eù>õq±?:?Ò?³ÿ?—Zö?F +b?CAX?õ>=þæ@%‹ì@§?¡ºJ>É’ˆ=jn!?#Ë>‹‘:> '?«ÎØ?¯¢Ü?›‰Í?žÎô?u¯·?ã*?0þ‘?b»>?c~ =-ý•>£!s>æi>ªÀ’>³>  c?jp¯?Z¦>«â>hGÈ? ä?F!?^b>í` >íî¿>î|?&î¸?oŒe?Q} +>ð“½>é4>Áu>ÐD¿?}qé?xJõ? Öÿ?L >OP·>l>¢qü>´‰6>¨^ë>œ.š?)v?O?‡6v?–¼¾?ˆ·Ÿ?xeU?÷¤?ØV?½?D?hÉ}?ZÙ>ðÕ7?Â?zñP?lÚ=Ÿoç=ᢞ>»Ç>¯ÙI?SB?c&L?:IÆ?=%\?ºû‡?É~o>ìpË>­yl?ƒÓ?xÜ?Ù‡º?î@œ>Þb<=fæ?M‚F?x5?C±?LŠL?Ù"?„?•T%?«¢?÷É>Ù›>ðP­?Æ)?º`?Ú”¸?e?ç?2?BÎñ?9è>"ÿ ?6¥a?vûß?€³v?43?è³?Im?Þà?-?¨Ï°?³7?køq?OöV?Ç?œ?s)S?Š*u?ƒê?½€?àÿÿ?ò`?u>&>ßY=ÊW©?©XP?ÀS\?¼öü?´‹Û>4žs>#C@ “ï@ ;Ñ?b´'?\Çß?½’×?´PÅ?‰r?ƒ?4?…€W?†D?å‘?=½?Ão?º.?f@,?y~?¯ý?´Éb?¹ý¤?œëp;ûõè> +wð?,?t/@t¤?íäó?£Lñ?–ÉÁ?‚}È?8Ó>#å?€8Ÿ?Fvë>’$e??alø?&E>ºi•>§’>[&.?)ì–?©Ñm?šâ +?‚§Ç?‚²W?„T,?S§?*F5?.Ù'?0Ñ?Tf£?d˜?l¡S?eù?8…?Å>»9e>‰/ã?0¤?J·÷?ec?eKË>õàè>¶ŠX?BÖsmr>a÷•>ÂMt>º§J?T‡ò?c£?m®"?^ ?Hîš?MŽ +?¡\0?œá?‘šµ?ŽVÖ?,úÃ?=ÅH?“t¯?‡ ?1­M?ƒ®Q@£?øÝ?k>?R©?ÄüÀÒ?o?Dnü?;L8?2'î?ä±?Óm ?’¨ò?5ù¿?–Ý?ÉRï?ƒ;?Èõ?U/?›±?îš@+Š?™°>Ì:Ý? Î?ÍÐÇ?•Úþ?ƒ½_?ƒÁ?‚rç?&|?ö`d?‘Ø@ª€?È°–?~ÞÆ?Än@[n?¿3??„dÓ?Ê~?ö¼Ç?Šäw?4û?‹_˜?Ÿg¢?Í-$?âoî?|Ä|?AÁ‚?mwp?m{&>Ü)4>®ÔU?«_?µ?ù··?ù% ?¼/?¸ ”?„½ò?„2L?‚ŠÞ?žq@¬„?à?“ °?·Y|?þ@X?é&C?ÇTš?Ìá?Í\¢?Ò&ƒ?ßì?öÞÿ@øW?–Uä?ÿC?ªŸ‹?ä‚"@$Z@]´@ð°@ÿ?];7>ÿìû?¿N"?ÓU”?·?¸ÿÌ?†²N?ƒ\[? +j +?)Cu@ GÓ?öÊ|>è­Ù?O @ l?þÔ?ÇØM?šž{?Ny? tz?B3?XR?£G™?ÈU_?æ8I@ ¡@!Iô?­*?+Ó7?¥ËD?Ðw?²…l?©Ò9?á]?èJ ?Ëø?Çýð?ËàÒ?Ê& +?Åo2?¿ÄÚ?à Q?Ý=Ü@s€1@S ™?o„D? ¾þ@Js@¥_@UM?ôvø?ÇþK?åœH@Üü?üUA?ãúf?æ(ø?ïdÈ?ú‚O?ø”@I@}Xè?ú1w?wÒ‹@0,²@Z9†@ +‹?äc„?3àS?Q¢?·?º'? Äÿ?Â6÷@¤¨@F1@NùÙ@Z´8@‰Ú@›ƒ@×Ëš@ã7AOñA +sÖAé.ARjAŽA ÃA'àÁA3Ö>AB51A@5ûA;Ò3A7jA50œA2ÌaA3àÚAs3ÕA†tÂA”Ê+A™zéAf ŒAU±@°­ @Ž´_?ª`N?’¡?Ëm¶?¼Ã@>ºKŸ>¡ =·Ü ?{€?„‘¨@EÝ@ž(KA)µA>¯ßAhùTA€[HA˜>%A•áA¥«AƒÔöAj$AOnIA1jÉAT~øAu|zABã`AÔ‹A ÑAƒ@@÷wt@ì°1@ß‘v@ÜÛ¬AíA +Uj@ÕAÔ@ÃIâ@¦Ôm@ NÃ@šÒ@œ+b@oVº@jį@‰Ë@Š •@ª˜ý@¥t;@6w@7J@XãÒ@[ ‰@]59@a1»@jñ‚@>Tâ=—Ÿ?*jO@!ðQ@Õû@¼@+tw@X;X@'Q%?‰ :@ ž´@‚\@d?z@7E¿@Ù0?éι@Æ@Þh@,ï@¼µ@ëe@.Ö@(-@#ƒâ@#x„@#o?òzú?§¢@çŽ@]P¶@NêÎ@?~d@*ú>@»?ô¤Þ?ÎÀT?a¥1?U‘?¦æê?×|?Çã2?ºlþ@1ƒ†@MJT?ù’Ñ?Ã[@E§@*+L?üÿ–?ÚÔþ?åL¥?æy?±°?¨tå@ +t@˜“@5ë0@>?‚E»?´@>$@\Ö’@k @hòµ@xÿ?äÅZ?¸—}?®W›?‰7Ë?‰j@;e@/Ãm?Þ‹?½j?é¦?þ~ò@'œ@5kª@@@ÞÅ?cݹ?žâ@Á@ t?øðì?ôÜï?Eˆ?æ˜?( ?k?ÓRõ?õ'c?Êü‘?Àfd?ò€Â@.—@ 4x@ óÀ?Êâë?¹À”?ïÄ)?ÿåj?Ùµ?Ͻ»@/ƒ@¾O@}t@ +¶?ÿØà?õ´@:×Ù@\ÞC@ ìH?¾X›?la?vw@G;@Š¹ä@z@gài@Çk?ªÎâ?‡?L…?˜ë?Æ­¶?“86?D}?–Ø“?ÎÞß@,˜7@“€o@[ ¦?Œ¦m?·ß?—V?—Ÿ?µ¿ ?ËqY?ú/ó?Έä?¸™?r"²@z@ ó>?îo"?øŒƒ@Ñ @ç?ë—>?å?}@ ¤­@ T@ õ@b?ó~>ß+µ?ô‚?ÿ²?ñÐ?òÒ(?Ї?Âp€?ëÆ?úÃó?®õ?“î†?ʇÙ?îÒ[?Ý^˜?ͧä?Сp?ÙßÝ?àþ³?Ýp•?ÛL?â é?á€ü?ÒŒZ?ÃÞ?¨üT?¹v›?àüï?ß f?ù€?ëÃ’?€QZ?v?(?HdË?Ü„S?éRÁ?Ù‰û?ÜŒ ?À|?º&@Â@ú@0 æ@4‚}?©Õ€>÷uÊ?‚i=?¹uJ@ýB@51é?öœ/>Þ–·?%ÊŠ?~!”?æDÖ@†·^@pNk?ÕšK?Ö¤Þ@Âœ@r€?Ô%Ÿ?ß65?ôr{?õ k@@'l?îH;?Þý@+–@OÅe@Áò?¨@``@s í@'ò¶?ê·?f%l?Õ£ ?Üv?×f?Óu,?%ز?+º”?{+?q¬*?è2‹@G?©Ö€?’pÚ?–w%?‘$Ê?ž´8?°1A?ƒIÓ>û]»?WáÀ?ÈÐt?ÂäX?’ ­?ŸL?ßû?ÛÝj?«Qe?°«!?´‡?¢ç€?•Þp?ŒHõ?§)Ê?®NÔ?±=?»…$?¶‰?³D?±?©’?µ¶^@®@@5½g@1@k@<@‰x?ÿ»¢?ï>?’AÙ?ÁF?Z ô?šÇî?f¿G=®fÿ>±¥ ?íü?íΣ@= @4‘?’Qç?m†}?’ˆ?™†×?¥Nú?´ó™?cf? ÓÝ?SpC?±u´?¶…ý?ÝŽã?ä`D?²wÙ?®YJ>©jÆ>Œ|?Ì)[@^g@šÁ@Õ‘@¾Ÿ?­›Ç?˜Ê\?0ø?ðN?îcâ?üï,?¹@Y?¬ñ?ÕšC?æ,´@}„@9ð@þ@$·r@w?É)d?ÌÄ"@PX@+c?ˆ“?M—z?k‡ü?uCæ?Že¼?¯€“?±û?ùx•?û9ï?ž"r?š@?öS@ øÏ?µX(?”Ñ?†¾ð?gÇ?…Þ€?­¸^?­­²?¬ä¥?©0'?†üE?ŒZÃ?‡Þ»?‡ò0?h±f?0Ï?/¢M?HX ?bjþ?ÔC:?Çâö?btS?eQ¤?žRe?¦R?¡á4?ªé?“,`?‹k?Ÿ¸J?æ‘o?æ‹ ?:s>ÊDq?¦#í?¸öJ?ôó¯@Ý?ç³>æ—K? ¸É?s¿j?‹-?Þ3?Ã\?¿ûY?Êе?¤zX?‚\ä?5,U?Ž ?PÏ ?¹Ë?¾¤?¼|?²ÊX?Ê’?Ñ`:?‹È?gÑÝ?>¦?§^û?)>ýd÷?P$?Ù¯?؉ã@³÷@•Å?ºy·?¯‹?Vª>VCú?U€Z?¯°¯?D‘>Åf.?›ç”?¥¹2?ë’â?æ´Ù?=$^?(`¨?¢*Ö?¯«À?´3?¹§,?p‘!?@9t?ÿ1>îßþ?E1¶?‹bá?† +è?€¯È?œÜ?í÷u?΃"?rE?}dK?ªÔ?­0†>óͬ>ûKc?¿¹×?×Ï7@ƒ@8û?ùƒ?÷mQ?„”¼?O]Ü@ z&@5?Lô;>Å…‡?Ž—>ö;? øŽ?›?¸¶æ?­T}?–©?Ïô@?€«3?B@ .@ ™?F?õx?,Ÿ¢?5>êø?i™H?Ûøú?ÐYÝéò>Cæ|>e‘?ν+?б‘?.œl?U‚? +¡0?WsN?=G?"›—?‚Z?Œ¥?qGÐ>­?Ñc?‰¯N>g`k@xpD@rZa?ê°^>í¼»=Q§”?>f1 ?$°Q@‹šv@…Ò?‘-®?1K>´ù”>1ç>Þ"´?M;?Š$Ñ;üËÊ>{ÒŒ>´†£?P“Ÿ?¡r™?¹¦6?ç%t?Ðä>Ðf{>ÄE>çaÌ>ì)>j€ç>3ê0?)¤g?q÷m?:Æ"? ×?5%`?f õ?6×=Á+=ãUø?ª0©?°Ë?´¥ê?¯¤n?pð?M!C?Œ6à?—Êz?Mà>3•X>Ôó8?,e*??<?Rë?0°>¦™Ï?€Aç@#“@©“>ùÀ">ÈÉÇ=žE?ç?HÎ?Ÿ'Á?Ž?è=þ•Ò>æ>üƒ +>üÃ-?„ºÉ?rï? V?˜a>Ç>Z>¢¬µ?1p?¢ë?¢ˆÓ?˜ïK?¯xý?º8.?)*?Áœ?`Ýt?m.?gz„?aÇÆ?L.?T‰…?-T%?5¢>¥I>|un?Ž‡?³Õ?”>å?q[?Ê»Ï?Þ-l>Ñöî=‹¾ë=òj=“`·?Sm@?2»>b2=‡žp?F×??f?šåŽ?¨ÒÕ?I- >±an?†ÁH?’`?ÃE?¸âÝ?7…>êCr>Jô?™ÚŸ?‘»K?Nx?T?V­? æ? ´÷? +`¤?‡T?·Å?y½Ö?€åÇ?—ÌÂ?™*)?’Bh?ÕŒþ@0å@Ç?kŒÆ?#Çö>x‚>(-Ê?tÊ?ÃÝ4?t¼à>õ>ñ ?hö€>ûEb?£”?†Ò^?ƒ'…?‚žô?=þ"?®ß?C'Í?oC?œ8u?´X?¦ú?šZG?tyÍ?Qþ?úª?Èê?0)B?>Ÿ?€'¦?’R>×ßÞ>"V>Ür ?Ý„? ì?¹ªs?8T?ª}?ª’?Á.}>]ñh>sj>ùc?ù…>ÛlÓ>Ï‚-?ø?ÝÚ>%³ì>`gô?œ|i?½?ƒð?‚Îe?‡0 ?‚†?$M?÷¦?ƒ)Y?„Å2?’y¾?Ÿºø?¸±ñ?œ@ƒ?? ?kŽÙ?ýç2@ p6@!àé@¿»?‘†?œp¸?¢§¸?y"Í?#€a?“¨v?Ý—R@ Ÿ@¸?Ì?É?WÏ~?l[?ƒ‡j?R­ì?!U‘?(»ê?0P?…W¨?¡ÂW?éÜâ@©›?ç1á?ä"Ø? y?ˆ +4?‡YÕ?„(?‹o?Ë•?k›”?t1Ó?À,8?ÅÌÅ?¥¢¨?¨9¦ÓH= ȱ?6Ãg?8ð7?33î?I±ƒ?†«¸?z\ã>Ú2>À™¤>¬ïK>úÆm?c~3?¦¶÷@C¡?åÿ¥?b:"?7—=$?l>ëdW?ƒ÷I?¤³z?Â0¹?ÇRŠ?Ï; +?¤Ôá?„d^?pSã?moö?†FÞ?„ýÄ?¡1Ý?¬p‰@®@4¨?£=?„Žæ?‹¡™?‘3î?_#€?\Mð?„ ù?…M¬?·ü?³ëY?[L?h&½?„»ñ?z_‘?!Z'?*C†?‰ ?Š³»?„ÔH?°Y^@Ú§?È"?A–ð?—7r?Úå®?¼š”?œÍó?”À?aµB?ƒ#D?†aN? ‰?±0f?ÀÙ?Î)¯?ÉdQ?Ë<?á#?èå?ùéÝ?ýã ?DLè?%C?ŠXz?Ž»Y@Ÿ?ùs?Œ›?a…?zÓ(?ä"?à‘?Ü!î?Çד?¤”R?7Œ¡?¥io@ CÂƆ?ˆ)d?¦Üœ?©mo?¡ ¯@ì0@6Øy?Ö4C?ÀÞ¯@~ª@ë¹? z? ïË?‘?3ı?¹[?Ö¤½@Iµ@'é@/Fù@#ãD@TP?órK?Çý—?ßÁ@"º@ @7@ ?èé§?¬Ù?ÿÚ3@"}ë@|‡@L4@Ù´@ ú@JÈ?õ5Õ@gÿ@€}à?Ä‘¾?¤@µ@6€@œ<ƒ@˜ío@¦‚­@£‡+@‹’õ@‘îO@µÂS@Åcé@ÿ'ÃAiAÍÒA Au›AˆA!óêA!\A"½&A&"A&¥›A=APpA:…¡A,Ì›A¬,@ᵇA/«ÔAF¹aAn”Ay'AO¥AHI»@¼Ö›@£ôD@ˆ?ðI@¾@!Á@=@\.>¸Ò…@[û@ ÌÊ@l_@ºs@°ˆ=A‹A[åâAyK +A”²@A—¡Až8ÚA†+ÁANä¥AHËÍADÓ¡A@X$A;ñqA7Ü1A5RÇAI­@úÌA¿ßA§ó@ÖÖô@Æ3k@°½t@°Ñ@°dß@±ŒÀ@’º”@@}p@wÞ@Wó@T˜à@~;@‚-@Äì¤@Â$Y@]>‹@Y÷*@+«š@,¥Ù@8H@D¼ô@¹@qju?«á??†@?ÍjI?ÿò@@̃@CN@Kul@$®ø?¢?­‡Ñ?ÚJß@ Š@1 + +@Ö@÷@‘ä@?»Ã@\…3@Ö@I¤q@zà@/:É@<êñ@)ÎO@3Ø@F…•@d°‡@nÂ?šê}@·§@CÎE@pù@ƒ@8Æ`@O v@A–!@6Ñl?Ó y?•Ý!?Æ€à?Ûd.@-=ð@I­d@/àR@!R›@&r@,ʹ@ŸÂ@ î†@q@3?±Y?… Š?ÇÞ?Ô¥æ?éø¢?õ×)@4u@@Y¦@„ù@ RÖ@ðÂ@ [?±¼ý?ž+ç@/P´@›_á<âð ?SñÑ?}µÀ?xïÎ?t&©@ €d@5rÐ@jp®@qBÚ@‘š?ÔÆ,?—!½?‹É ? ?ȱ?©l/?¨0¨?‹áˆ?½?ꨑ@ ?ѸŠ?¬'Y?À +’?Ém¼@ñU@:1f?׸×?«¢?ËÀ?ôà¶@<ø-@m„¥@ €`?×B£?µŒØ?’¶H?´dó?ÍL:@|'@Àü?ÕN?9b‹?ÒÔŽ@9‹r@—?¾!À?âk @ +¢@¹@ò?ÎÂh?<}?E$Ì?¾‚Â?½þ$?±‚?¾T#@ÉA@ +hþ@%.Ù@U?ü2^?ø +ó?Ì…¨?ÔÕ?Û¦?ã;h?½oi?¼µ?¼¥7?¼“õ@FÑï@Xìô?âó?¼T/@„@ <@ô&@°?´‘ï?zšÚ?é¤K@8?ªòW?D™?Ÿsl?Ì%è?à›?ùæ?ßv?¶½•?°6?²·‰?³VÂ?¡9k?ÑîÔ@:äD@2Ï”@ “Ø@?ö±æ?ó–½?³—K?®!¨@¸–@¨Ù@"Û:@ ¤T?…z?UÜ?Ùëì?÷ÕD?÷ãª@¬D?¾Îú?‚µ,?¿Û#?í›ã?˺?œ-‹?DÑ…>wý¢?˜$@VR@7¸Ä?×Õ{?ØB?ü?œÞ£?éüð?òqÀ?¢hç?ŸaÀ?Ï…Ì?Öì&@FN@ îx@_q@"Ö§@*÷ë@1l@øæ@ È]@#ÏL@8L×@@±Š@I@,Ò.?ê ö?ï2*@sÞ@öš?Øع?ÌÚ?׊?Ô“Û?º%š?¶rƒ?q¿?Añ?ï.@ùˆ?à#y?›¯Ü?íLj@4Š@k?ë?\@?Øé?éh?3Ö?.õò?›­6?˜ü¬?B“?,š>?­œZ?Èi@mŸ@;?=@S?é‚k?Ã7?u%P?ˆæõ?´ "?±où?¨M?´åe?Ô¡?äM¯@†Ï@ˆ ?êâç?ÕöD?·îï?œY»?tã_?&Â]?0úë?câð?”}d@*ú@O}>ÜÓ.?Tx?Ã_„?Éš{?ÒÓ|?Ô–(?­ð’?’N ?ŽÕO?‹Tc?¢|ô?ÛˆÖ?Ãÿ'?^-¤?dÿj?¯f˜?±¦?j—R?CÔz?’¥Ù?¹ÙA?ÇÖÊ?Õé*?ÚÙk?Ï}_?¾§¾?Aï@?HÒÝ?ï7?©'?Yà¹?j`ü?mû‰?{ÜP?×ÂÒ@®?øR ?†«õ?“`+?6Z?’Ùx?·[?¿» ?žÜ>´ +#?{?®¥ù?––ž?kˆÏ?BÕÑ>×>ÔÁX?6¹­?FQ?*F2?,m•>³pD>0Jï?;?gÅ’?ƒ`V?§fy?«¦Í?­¬?­‘U?0? Æ?‹Ì??B2ò?g½8?Œìe?­:7?ºÀ@šd@ ¹l?)<9>ññø?v?ì?†„?¬øw?Àÿ…?Öð'?ÅÒ??µØ?½Ú?æˆÑ?æ‡c@SW@&b)?ªÓ?U?A}?KÆ]?Bþ?:1J?:ݶ?Ù¨~?øô?WÀ¿?25?Ûç@Fá?±d>ç—?H?€ä’?ƒiX?{ +‘?‹‚ã?“Úd?˜h?®;ß?£ta?NçQ>û±>ë!µ>èR;?31@?¾`?Ç3¡?ïɇ?æ!?²ñl?¯F?¥ÔØ?§wz?`:<ý¼>}/W>½©>í°†?Ks?uUZ?µÖ?À>!?Á¹#?¼²Ÿ?lÛß?jÀ£?ÒK÷?ää!?éö|?ÛÇx?³Þ?“…¡?¦?Æ ?ÉÍ=µ?aá?)5?K>Ž Ž>n|?´’,?Áêœ?G×?_ù…?Zʼ?p€)?ýbå@­ý@vñ@ 4 ?ÅŒ ?·¥ú?Ö>ýº,@ ܵ@"ê?Ÿ%=?”áŒ?bç ?ƒ[?ü÷?Ü,=¢ì¡>/èm>Á/<>ùòÂ?¦Ÿ?„,?ó°?pž?”?`|ù?r)>Þ»>šôk>’L >×Yü?PÄÇ??£?gØ?«¯?%v?8ú? c? ¬ø?²4?22ñ>—O):pˆ;¯Ñ?Ìõ a—>4àõ>.?)Ê:@f*_@kÌÒ?]ÀM>ßkd?.²®?L#p?BÇÅ?dGš?j>DÀ¨>FàÉ>¤n>ç¶?>ñGÿ>ò‘Õ>é`¸=OŸ!=šÁØ>å8>>ì(x?Uº?]$ß?W"?jΉ?YÍ>D@É?î?ËÜ·?µ‹>ñ†Ñ>ô¬ð?þ>þ™=%ݪ=ªŒï>ñSn? û#>¿ä>Á­>¼Mg>œ×ˆ>âǺ?ï?¡‹?"02?Ž€?$º„?—Hû@Uå?åÀ4>ÖÏÑ>»fð=}Ü;é(<å{x=‡ï>hL\>Â?¸N?€Ö¦>ü…r>úœr?'bg?9”Þ>òüÇ>ÓˆŒ?H½©?U»?&·¨?qh?ý±A@ è?2!>ÿ=O?­>ÿ—¤?n?ëÉ?¬0Q?±*Ö?ŸC6?–´V?ÆŸŒ?Ëz/>æð>ã +?&øß?4Í<@ø@rß@ +ÄÄ@  ?7F +>Þ-?¡câ?ºý1?À–Õ?¿;k>b(>Î>\ó>„ßÓ>›6‡?GêE?Q!Ã>ðÅø>ô+õ?w­&?®œ?#I?&D?,7i?%|?ÝÖ?êç?»L+?»âÇ>'—¤=M°c?8b?í?³ó?\y?ŽG‚?‰@=ù ?&õ? +æü?rðÜ?pR¥?:Z?Ãþ>ÓÞ>ÈkØ?Iû?Gw?B Â?-i¾?Xƒ?$Ë?n…–?¹@A'®@ Ül=¤ã¬?uX?¹b¯?¦Ë…?‚y? ­û?èÿ+?ã¨>?Ãà ?‡o>Šx«>ÆÜ>ò“‹?’À“?Mhõ>¶ÿr>àõ›?œ@>ÉW>eï?qnT?Í5 ?}ê?M ?êö?±-?Q=S?‚¶@?TÞL?@ÜÎ?„$ž?—-’?!Ð>Ên +?1Ïí?I9?.? #ð7<ÍÒª?ì`ô?÷Ry?»­?³¯G?mØ?Ù?;?+>µ;e>ÂB«?ƒ?ƒ?ƒ¸?u߉?Ô?Y\?‘Xò?ˆõq?ƒ++?^Ž>Š]ò>ÍöÖ?m˜?Rºó?@c?D ?G7?0þÏ?ˆ}Y?fœº?N?J?À?ŽM©?„¡ë?gÆN?‹^?«žó?ç¬@˲?Å`?xe‹?•õ#?£ƒ?¥KØ?©å?lÔ?YZ¹?<D?(o÷?ÕÆ@ªp?x=– ?¤¦Ë?ÊyØ?ôؽ@\:?4ôa?Ì+?é¥÷?õXh??¾x?:p#?$'?)›è?6uF?=•ü?½u}?¡Ó-=£ó-?g?Z?À„?:>»Q3>ܪË?*ñ?;bÿ?k5ê?9ÿè>¢oÇ>Ç£®?¸´? UÝ?ã? M9?>³¼Æ>B:i?w?ïË[?}Bp?kÒ?ÕJ?Ưí?PA?=?É»??ö¨?z+?IvQ?vOÛ?roÔ? +ÐP? Q?4Y¾?A_ì?„«µ?už=Ã0$>bS?Œ‘ù?¸Îi@AêÁ@-Hü?ů ?è @C%?éµ–?BË?[R?l«¶?ƒ¢?—Ê¡?¦ ˜?°*š?t˜?¢,?€Ë5?¤æ.?º,Ä?»†?3°V>Ïoø>¯¸>³°?‡nY?–]X?Ͻß?Ô›¯?ÒxQ?ÐS2?Î-ú?dz9?‡O¥?|ò¸? +ÇÓ?% ?…/–?¢Ž*?þöç?íB?ÇÔ¤?ÁZU?³Æ?éé@¤Œ@ Æ"?ä—_?÷B™@øQ?Ô—Â?²¢'?˦X?ÐL¨@û@(èQ@7Ž¡@@OÌ?Ýçp?»äÇ?¦ '?œ©F?ÅJ±?Ç™é?ƒûó?”„ð@>áI@*ßa?…U·?ª/Î@&©@ X›@ œž@j@9–?îáÌ?j§?‰Ñ&?¢Í?Å í?éÃj?£›v?Q}¼?D–T?5Ñæ?ën)@>n?äû?Çìá?žb?™à@Õ5@-˜^@ea@j‹¬@”ý@”{õ@ôFÝ@ëI@˜ ï@¡7r@ØÊp@ØFñ@àb4@ò€tAAmù@ÑüAÓíA-êÎA$=aA`mA&öA ÷±A¤§A*n°A/{A/¾íA*¬ +A(ÌA ŒA(xA9–ABÑéAbCAi-mAåSA’÷ A8`Ajá@í6˜@å•ä@ß 4@Ù ‡@Û:¨@Ä‹C@ @$Â@±Ñ¤@µ 7@Ðu?@î.@¤a¼@ç-ËA;“AfÔPAšÃÂA‘A|²ùAeœAK¤A)ÝÊAä_A =õA©@Ú•¯@¨#aA¦Œô?çÃm@ 3@vT@&OŠ@#ƒË@"Z?ð¥?£#?îÿ€@7~@5÷U@=€ß?ä,;?Ëe6???"¶?¿ò’?ÝÓØ@7o@ ¼?Î<†?Á¦×?²u?€Çr@*ë @7ã?Õ Ñ?²b¼?Ò%¢?Ýc @'ù4@3ªû@Bm@r?x“U? ¾Ï?ä ?Î?kö%?€jù?÷ž @ +íÃ@…@%5?¯¤†?”;‘>Æô>FX@ ]­@1D±?å÷P?¶®*?‹ÿ¶?¾?ÎëÂ?çÌR@ af@?ýdV?êrr?ï4(?óúT?²:?ƒU¥?©Br?â“?õ¾@ j›?þ8R?áëî@"]@DÝ¿@íY?¯')?æ}=@ ya?þÌ?×½(?ñ!Ý@ (§?ç?ªrÒ@_@xBV@cB @4,¥@ÎB?ƒ8w?]Mé?Pm?'®?„?ˆRõ?“§½?¥b„?ìw(?úH;@:ð@ –?|?‚=ë?Þ –?ÖR?¼©,?¼´1?¼¥ö?¼”·?­Œ£?®mk?ÄXß?Å/H@8%R@Rj7@ü?ü‘è?ôõÅ?ì“ê@Sº4@€ H@"U•?ÅÖš?±É,?ªwf?Á© ?×h+@Oõ@,?ÞÁÛ?,rQ?ž’?æã@@4V—@>Ì@iˆø@\ ?ºŸX?»ø?º~g?ºp6@5°#@4—?QUS?JÁ@4 %@=Öp@¸Ÿ@ ‘?w±,>å/?¡óT?à]'@ ÿ@B7ÿ@R¢Ä@l7ù@G¾e@ ©@+¦?¹‚O?Í“Q?ñx‹?Ñ*û?á?;è@ uc@1@¥ @»þ?$´?uQf?³£?Ãmô@z,@.T¯@6†@Ô?̘å?‘Ú@æE@Q Å@)fÑ?È?å?ùu@-S@DÓ?ª ?¶T+?âÊP?誻?Ó0 ?Õ„Ž?º“­?¶qÒ?–€h?’à@)£@bU@cùF@di‘@+“?¸/¶?¸”%?¨šK?‡Ç9>ÊÖ•? m'?yx¡?f»?´©ß?µj?MYà?=ly?Š,Õ?¢ª¡@ø@*ó2@œ"?­ƒ ?à\e@óÿ?ê…? Ï?3ž?§ª®?£ÛG>•4÷>¯©?ì±ó@Ï @Mõ?ýà(?åQS?Ü„ï?½|^?› ¦?‚›I?+Ÿ?#V?vÅ6?†Oþ?š;?ÙÎ?»Vþ?Ä^u?Ç¥Œ?Êó…?ª³Ò?–K8?™¨Õ??ÐA1@#¼U@•?Y¥?aÄ?l÷?r¸?ÌÞš?×$^?m+(?ƒ;?k ?˜Ö?³N?æé?ÆŽŸ?¬³?_G?&Ç?‡Þ??eÅ„?fOP?çó^@ @ œ#@8@2?¯Bé?˜4Œ?*ŠD?1ã(?£ð?5½? +úû>™Cß?‡$Y?¾I+?äÀÁ@žy@!"¬@ZΕ@?(?Eþ¹?>>U?ío?é¼å?v§F?íƒ?AUò?g•?m(?s¬?”–Ï@+0y@%2·?°V>çM¤?±z ?ÊŽÛ?—E2?cܨ?eN¥?…`6?ˆi?•»¦?êå@"å +@+,ú@ ¾ÿ?ÿ“?ɃÆ?¬øö?ÚÚe@@í(?£G|?› á?ǧ9?Ð=î?Šv?k„¹?·Ç¹?Ö<@?‘|?¯D?<”K?•ò@?Ž§7?‚ó>ÿ´>ɯ>“®+?ŸÄÑ?ã«?’lþ>ç $?k–?öeq?á? ò`?“ +?¤*?œF@ +üì@"í’?èç—?«ÿ?©V4?ŸÒ1?¨8È?×¹œ?Ñ?ĉí?Ói ?²sÒ?¯t?‹?wy?½„?á~È?hL‡=ÅBj>ßVø?ƒ ý?gGÌ?7Î}?N8?Ü £?â%Ç?3£m>öm ?¼?1ù¬@éT@(OÈ@ %Ü?îì9?ùs°@^î@ m$@%\µ@)B(@À9@^Ï?¦#Ú?¤ä?¨ºa?‹G8?sߥ?yde?Â%j?¼-?xÌ?/±?Ÿ£ ?•Už?‰r?zá¶?ª;Å?£¡?%ùj? ?N?oêj?‚¡?¥|½?›Ä@¡á@?‹¶j?•Âa?73„?R?(?)w??U¬?"Þ>žÏ¸>ƒ>ô>NÃ9?4z?ˆ›P?!Õˆ?ÛÎ?ì²?&dñ? |?^>mím>z2;yJ=Vˆ=êº>ö{?? Ÿ? »Û?,È ?>ê]%?ŠÑ”?¸`>?åúƒ>½x>Š¾|>Ð==¼¹Q©@¡=ýz>«/?¸¤?4Ï}?`¿â?C¶²??5Ä?fFV?gÈ>Ïã?toP?æï‡?Àf>ÐRI>Ä9F>êß¹>ì³?wï¿?Û?’w>fû+>ðÅ?(Ø\??c%?p€É?[å +?n?dè?f‘GjÙ=›ï%<«… =Õ‘:>27>ûú?4š!?|,‰?ž¯ ?F‡W>(Pš>FJ+>o-‡>>m™> ±Þ>æâ?¸üÆ?ŸÁm>í@?w?UV§?9ÁU>»\à>㎙>ü‚?y©?½?5? v?V?/a¡?(m`?5ŒD?CU(?^Q„?F†K>ðC9>ó9W?qûØ?yl]?œ?Ó²>¡¤>±wû?†l…?”â”?ˆØ?ƒ'>Ì>€2?e§†?€¨–?XÙ?XV¹?ØZ?ÒØ>Ÿj>æ>цÕ>óÉ­?pÛ°?ƒº=ùôs>ÀSd>Ì£Ÿ?8??6v¤?,kA?2á>§kÍ>ŠS`?vZ€?ª×>ãåž>¼èu?+#:?:ñ†?dsò?j™X?‹äD?Š¶?ö±?øÈŸ?T? Xd?¶T?¦BÞ>=ÍÔ>¡S??f¦?B%†?–-!?†ëê?.ç?P×?Â?ž???‰í–?F»?0A?³$,?›>*?U>Û¬>œ©=Šøرº%?qÌÕ?R7M?)ûÄ?rœ-?´°O? ú|?‚{_?uá®?g,˜?bV?H™7>Ýü9>©O¿?4†O>áZ>ÌÌ>„=‚>É?Õ?t?¹ê*?üô"@¶ì?«à?¨[?«Ç?®e>‰ñ>"Ê?+s›?gFÃ>ðÀõ>Ÿ¶?P+?s;ä?DôR?>-t>;»T?Šz~?·Ž?¥ìY?–IÁ?IGE?DN?Uýn?H¦Ô?D?œg?tþ?€Ñã?1?Ù%?\Œ?! í=¦Fÿ=èµ{?õ?ë3?Êò)?¹?3ÚÒ?B-º?ƒk?rR’?H?kj?™Ô±?¦ë,?°.?œä1?b¹„?m?l¯=?GÐ?]?Ä™? )½?d€m?ÙA?ŽrD?S[? +»¶?‡?Mìh?ƒc?&O{>œWO?‰Dk?ÝG&?œH?Mž{?Š 0?¤½?Sy??C?®%É?ήÈ?•¿r?ƒžE?͆?êc™?N>A?¯>?×’`?ü†¸>WÑ;u?i·®?`Ú?Çe?ÎO ?±#f?¬Ž¥?ÙÝ?ÔH?àL¨?ßær@ò?ù·È?•8?q4>„‘>¤,>ã{?. ?´ã?©!'?—¶›?}?"ö?œÕN@ ‘?ÌŸý?oÀ?~ýJ?„D?¥ö?ÀOd?ÛR½?ê¿j?×Ü^?ÒqÚ?¸*–?¦ü?¼33?Ƭå?’g?w@ˆ@…?Ö£(?Ä?àõ!?âóê?DQÔ?4\{?U>÷ç}?„¨$?‚pØ?Q¨L?k „?Ø¢?Îö*?¾å ?²H³?…}Q?±_[@lÒ@ q¾@ïº?Þ"M?„Þ›?ËÁ @ +¯?ѱ]?›ƒÔ?>„>×q`?é?¨3Å?Ô¾_?ïÓç?¡Â>?…0?$@>²b?z0W?‘Ñš?ÕÁ?á\ê?çÝa?ï.…@ N@ï??Ð)??À@ô?ƒL?š(Ô?ýj»?ï&?Ò˜?¯@Ñ?A¢ƒ?¿ÿú@*¶ð?å(é?=ß?]‘?up?Î/à@:˜?ÊÅÉ?œ‰ò?Æ™Ý?æ’!?°’Ó?;†?x¦ê?hÃ?ih?’@ +H(@Ä*?Ì6®?Åxï?<7?¯f?‘F%?–¥‡?…T¹?–Ÿ³?ß.¬@OU@8@12ª@&§•@.g@4Ûã@Åð?«*ã?¦ñ>?¦o…?<™D>•³?Bwô?…L×@ xÓ@3Rf@.¤?Ø8ø?´£õ?¯èì@T +@i2^@ƒÇ`@…?Í@”:@–m@«8l@­}@¤|7@£Úw@¥O¶@¯Ï„@Ð_@ìæYAPA kÉ@Ë°A‰A/ªÿAé¹@á¾A@ñDÑA{&A 5AXRA1AáAGƒ;A.Å4A#%AG÷®AX!£A`áZAdwyA{,A€NDAl&ÞAk-D@áíÔ@ÏÿRA %ØA­AŽcíA‰7A_¶ +AKe€@»Úæ@ÉþùA õdAË@ß8*@ÖTé@¾»@뺓A&ÿSAQ~jAˆ²-A„A}©ÕAd®ŽAFÝßAK÷}AQ%$AZ@ÈïcA GAÊA.¼A(×A)ÂA3ŠUA¥Ê@íÕÙA‚ÛA Bª@ë–ƒ@á•d@ÔÅ@ÏñK@[°5@H"¬@eŽÃ@b…>@‹Ÿ\@ˆ'J@¤º´@i?ó¦‘@•È@šL@–œ±@[[ª@Oï^@¥µ?ëüÌ? û€?¦`k@fƒ@SD§@$8Ó@ñ®?ãSy@àð@,+>@ž¸?ñÁ¥@;c@Iƒ}@A= @-—û@%¶8@$ôš@ñ@!û?ÌjÊ?]6×@##@@@e©ð@Pc7@]LI@iûÝ@0 z@8Ä@{¨b@¡ƒ"@Cѱ@ð’@;¼ê@QLF@F°i@C‘?Ì9V?‚DÞ?òÈÎ@ ÀÑ?¹»ª?¡–@1k´@R›8?Ô®?ù?ZÝ ?>â«?óí-@r?ŸK+?Ç@÷f@ë®?üøL?ø,5@xO@fè?Ëè0?’6?Š^F?Š/e?§4ê?§3!@Y/@Œ¬@Ž @,@)àü@+pô?—#À?€D@ ùù@ b@TC@X–€?ß!>?¸š{@c@¬Z@t @?S@$ï@³^?Xì ?m?܃~?öO?Ϭý?Ê '@5Ë›@BÀa@6ä÷@/T?ìn™?ÆŠp@ ÿ…@Â@,,¤@.þƒ?Ê¡ï?™,}@m@}œ?ÿ<ÿ?ïÂÔ?¼Ó…? !©?“N*?‹‰0@%sø@\È@[m @V®€@wC?þŸp?ßà‘?̸/@/¯W@gèØ@#ó?ÎÜ?¿8æ?¸%?Ûµ.@¦å@þ@‚,?äœE?¦Ú¨?¿p?îE§?ôôX?ý.ö?êÖH?ÂÒÉ?›è>þ7:?Y¶‹?ò +C?áXÏ?³ +©?Ìä@&)¶@$É0@2èñ@*Àz?Èóí?ÂÆþ?¹j@?Ä1 ?ó1‚?íüh?©7>?©ƒ?‘I?‹öt?ö@:?›;?l?%?’ª?žcŒ?¶@\ ”@ŒÜ#@+´ê?Ìæî?ÿ/3@œ”?ÕÖ·?˜±g?Ò8K@.—@@¿@•?ÛàI?•ø?·‰Ú@½ï@uå?ñå?íŒç?ÂDj?·«?~Êä?‚M¿?ÓÔ±?Ûí!?ïˆ~?â÷X@à¹@eH?áà¦?μà?îú?ïÈ?û}ã?ÿP«@ƒs@5 4?ï»O?^õõ?EΔ?>\?Yhü?¸$º?ÉH'?öƒ?ûJB@À?ðÌ"?}M*?Š»?•`I? Æ? +¾>õ¢k?ý¬r@˜@4«ö@?Æ©?Å +a?Z-X?ÓA–@r?À¸*? [`?$? ?ÿ@¯ˆ@ ‡ó ñ?3)??æ?’\L?»˜ð@a@4i«@ZŸ?µ£…?‹9=²¾¸?D¡˜?Qß.?Ø_‘?Õ%©>ÐÍÕ>Š ä?;üh?B˜F?N?šA?7“´?cÙ?ºê~@—8?úÈÁ?d4—?qb£?³Þá?²ð´?$Q¶?>©?ÚÒq?ïA?á\­?ë(‘?´}W?ŽôÙ?|_¦?;èˆ?J¯–?€º^?tÅ?nÔ?n”§?~›Ê?‚œ(?…î%?‰<Ê@ bj@!m?¿Ñ?m ‰?•Ýô?³jà?´íÂ?ÑÛ?Ͼ^?¤OK?«/ù?°Ëç?­_#?@‚?5åû?Ý*@o¡?ÁÑA?ŽtX?°áÉ?ðx?æÊ&?œêQ?–þ?Þ,Ä?á¯å?0Ev>ðâú?Jn? «@J×@n5@:Të?Ã?w?µ‰è?2æ ?+\u?¸hÜ?Á˜l?³tß?®È@¢n@'?òÊ£?vûK?Ž¿F?º^/?É“T?‹?9?¨‡W?ÌðÌ?é~¼?Ü™ ?§~?€ó ?ˆHÌ?£bê?ËS@ItÓ@Ge&@C¡à@5²D?Õg¬?¶?¿?Æxé?Ƚ\?™†À??*cK?x ?FƒF? å§>ú)B? Î“?¿Î?ÐÅo?Õ5|?ãb`@8¨?óQ?¸”?ÀŒß?® ¢?œÑ?¬ÝÅ?®¥×?®`ª?³ +?Ð2/?äFv?Üðá?ð ©?ä¥E?­Ê?­ ?º²O?¸’5?´å?¯˜-?«?¡ˆŸ?™ !? Ñf?§i}?‚ìs?ù?̲J?Ô*Ê?îí±?ñÔs?‚ÿk>èÜa?•d?èÍ?„c4@s@Oú?±Œc?§Ñ«?‡¸2?;?©‚É?¯\²?‹Ï?w$­?9Ó>µµ?DBæ?Ókæ?²ª:>ë™>þô†?”aÒ?Ÿ0@ +RÁ@B6?Ã?Wƒç?¿ËT?ôgà?㿽?Ô r?ÙÐ3?ì;Õ?¹'¤? ?EÇ +?¿€}?ÐB?á_0?Øk +?Îy¦?Ö c?sè±?}mÏ?ë¾á?ò/ô?v¯:?vr ?4I×?J#?µK¯?ºƒ½?ÈhQ?Ö+Ð?…cž?{-·? O? +‘>žàr>âV?‰º0? ~?2,?3Nà?Í!v?¸$N?L>àÕ>Y”B>é7ÿ?O0—?bA>§åÓ?Åt@F2=?¬ä¸<µÍ`=¢d0> ¿Ë>ûÉ8?µ?>âòÍ=ÊÊÚ=D]N:•lF>*¼L>ŽÉ^? Ì ?"\>èÎf>X|?1U?‹‘X?íÇ—>²>k>$—>€YŒ?$2µ>QÔ>‹ª,?‡¼!?”ÞÇ?Õ‘É?Ç¥>üëÝ>¤_*?dŽ?U»?H‰l?fAý>»Eú=CÈ9>ÏÍ?jçõ?X[…>êDb>â~ =͸>S\? Ïd?#‚!?@¨?8xš?0‚º?>I0?Dü:?K®¢?JVÆ?@«æ?>‡L>ÚyÍ>ü>Õ?ò@B?ð`n? óÑ>Íôk>ÁÞž>µÁ•>©¦|>„Õ?Ï?>#c?:$?AO4?"‹g>ørÎ?ÔÃ?<Ùß?YÏ?y¾ +?­”?…àÜ??b«<Ô|>pþ?{}8?d>¾(>¥eE>,3u>n#ô?5¢>?:è>íüí>×Ø ?N89?T¥p>’„>oš3@ ¶§@­[=Ï>ð ?‰Ë?l†Í?nwy>æ²:>Åõ§>*{>£.ú?GO_?Lf´?¢¶?¡;?‚¸Ÿ?€«?‡#—?}ø³?¨ûñ?²)´?†E3?j>uk=¹ú”>í"h?Dg>ñÿÞ>äy?cóä?hDˆ?€@£?u>>[ô„>C ¯>ýÄ]>Ûz¸?®&Ê?¯h? Ìh? ÐË?€ÖC?k-‚>ì»>¶âv?Ö*?·9>†ÒÏ>ð~V?Ã;o?µ}®?MsØ?u~å?ã³­?Õp?¨D‚?”#—?I•?0?c=?Móˆ?Xð?AñÅ?¶ä{?˜Sè?x?*È~?‚k?®)?qìÍ?X*•?<Õ?^ïR?‚{©?Šý+?’=Ò?™EÒ?¥úÇ?…_ä?6‹=?UˆZ?‚’Q?YŸú?+g›>À÷-=öÈð?þ?‚ æ?|U¦?zFÒ?2Ðç?©m?­?¯w>ñy)>Þ…&? 7?ù«?88?7wQ?çE¶@ ?*Ô`>iÚŠ>…sý>zR?$añ?7ÔA?Ïó?ðMy?Hÿ?2‹?ÈüÂ?áfÜ?qÕ?hf¡?7øË?Ô®<^<Å%ø?ÕØ? +”ÿ?§/¦?–±ª=ç¬(>)Uæ?F?cé>?&·>§ô?ƒø?{A5?C®e?0@>Ý +j?J(Z@'¬?Ño~?-ú?qUO@¹?à`?ƒ=a?ƒAR?ƒDs? :Q<–Åï?*É‘?º~@µ“@,oƒ?Ћ½? 9h>›Î ?\¦¢?Å,†?ž,?ƒ{â?Å÷€?æÊ7?@’•@N9?¯Gá?9ç?ˆì^?’®?_šs?BÒÀ?„pu?‰½¬>NX#=–?´ÊO?Â'Ò@V#•@V3©>}îÓ>°zU?Ô„õ?Ú©ˆ@é¼?ò™ô?= L?uf?âÒ?¶šW>ÂZ?„_?©¡™@­?ëYy?±ÿ®?¢OÖ?„)?ºôù@Û?UA=^Lœ?’ ?~\ô?@Z ?.1?e“à?’ ?†?¦7?‘Ûö?”ä?eΖ?T§&?‘;?œéë?÷`®@ +Q@!š@?ìôq?ìqî?&»Œ?,—Î?°Å?±þ?–y”?%Ì?áö?óJ„@?A@?!P§?^æ? +¿ ?šîJ@#»’@¯@ M¹?Õ¨_?„ß³?ƒ6¸?ˆÞð?£eÚ?±pñ?qà‘? Ã&?Vµ±?xe?œ]Û?¤J?kMÉ?Sœ?.÷õ?.~=¸Ñè>÷”ë? +?#‰?)Q|@ i@ +@B‚Ç@67ä?ÆDZ?«BmÃ@Ä6@_©?ƒæ?çc”@&˜Ê@Wn?Ò…?Á^i?™¦8?µ¨¸?äæ@( f@u>@P6ˆ@#ç:@>ÅE@a„'@E–¸@##@k7@Â;?ü|P?Ûyá@ CÄ@#€¿@x +@¾­?¯c4?qñ@ N¾@>³®?äg?ˆ.@Ô@ äL?­ ?m¦?wâ +?„%M?¨Ú??±|ó?»R¦?Å{K?j?8è@‹|@"Ø?ûè?žô!@»þ@&„*?ÿPÑ?êc^?Ì÷õ?¾¼¿?Š«C?¯B?§«?ž?ìòè@Ô+@T?û¢¯?öï¯?òDÕ@*sP@.ª§@ T@ ýU@d)@-@Ì@Lé?yß^?CL“>¤À> @  @:f2@7•“@4Y@ V@ Or@V@ Ì2?`% ?{v@ Ý@W«?¡WÉ?ŠGq@;mã@MCb?á½O?È<Ð@©@ã¦@1#y@43?÷sM?Ü­è@–¾@![)?ß– ?¿Ìë?Þ:²?ê¥Ì?˲÷?¿’@žÐ@HÈ@ kÇ@ÄO?«?~ò²?þ@@"ö´@ TÃ?þ¡n?ØL!?¾×Ì?ÿ£®@³Û?ë*H?­˜X?ªžŸ?¢TÁ?Ÿ0? í?‰¸?dË?»h¯@õE?ö -?Ín ?âÿ@ÎC@![?÷™°?ÕÊ|<5.@Cb¹@ƒ?M@‘¼@™•¸@/?»®W?­»Å?­¢@r$@'gT@°(?»K@ý«@Hö¤@æl>ù] ?&‚?Š%-?”H¹?Âè¡?Øôd@7á¬@2j£?·ž­?´C”?„‰Ò?‡7&@Zžß@_}à?Ú«?ºŠ?ˆy?wÕ1@›Á@Çë@~–@"5ã?Ýtñ?•Ú)?s¦b?,Rò?‚u?¿¾æ?©%¾?|­Û?Ýñ @lØ@bâ @M\@<×?˜:?“xO?´E]?«–s?ƒ9Ë?v‹#@MÈZ@hÜ@W̽@Yñ¢?¼´Ã>õO?ªæ?ÆÜž@/­@4ÞÃ?õTj>ôj©?”p|@2@¢é?¦ùú?Ÿù?sÌ?sµH?<8?5œ'?l9&?sD2?l¥>ó ß?›•ò?ϳN?æ¡ë?òÓ?¢àn?ÑU?bh?µ¡?­Éú?Žÿí?‡Âo?Bõ?Šº@@åß@±õ?ºE¦?š'?÷¨¦@ ì›?±“h?p¿–?:Å?wz?[Ç„?´2ø?—¦J?.»>þ×>–A>¼À>—ëH>±àç?Ùp£?ï=Ú?Pó >ï¸?*.$?>܇?šƒ‚?ã\?ä:?å7Ÿ?÷j>@ñ@ Û@½?@ü@uË@ ª2@r_@ ?離?ÇY?Å¿'?×Ú#?Á·{?lšH?aÔÇ?5 +?ƒi?ëHJ?è K?×]º?ÊÇø?Õs^?æ×”?Âû?—dÊ?‰‰û?v€?‰~|?°ÚF?»>Ê?°Ò?¯ï!?sH“?gѹ?f7G?^Ï?Çr_@}ù@ h?Õ\±?ÍY?±þL?ªr€?ŒH?‡ú±?¿ß%?ÆhE?µ{\?®¤?@x¤=8‚0?.?Óp)?ÍçÐ?ÙŒY?Ê;?ÜhŽ?Åeó@eç@"0²@¯µ?ÆÓÅ?•ƒô>ùô_?%“?¤K?•‹p?àÊÙ?÷až?5­Ÿ>¶¼†?«€Í@î´?Ñô·?† ?©‡@0?@:Kk@š@ [y@¬@nŸ?ëD?¿Ê?ûC-@!àq@ ™Ø?‰Ñâ?‰c@òš@#@”?÷íÇ?怮?Áua?¬çB?¤ y?¢¡Ð?¸ñÿ?Þ;7?á»X?”ã?™iœ?ÐDZ?Ü-|?ÝT?ã·»?É¢?­EÆ?©JÃ?kZ?‘)S?4Î]?+‰ ?“NŸ?›0¶?ùè@ \ë?š8Ì>ì§Ç?N;z?›ð†?—§?¬õµ?²ã„?eø?†—~?$¹?4é?ÌQ?ª H?LQ>ûg®>ŸÌD=çæn?;Ç?§-i?¤2q?Tyß??Îf?+ë?é?fç?vÂ[?£¾?¥üp?ä#?Ž>î?·šr?ÌÕ¹?ƒR +>ï¶C?Wèí?´Y*?|g>Öx?\É?ÇŸ˜?¹Íó?4Ñ?Sëª?´†Ï?¤‚?·°b?¸`?µ°Y?° ¬?ì +>÷–•?õG?óþó?à ?®i?€¦?{9¼?y§?m©x=?4ž>øR‡?vf?€?†À?ìêb?êðë?•Ò?‚E?•´¹?oÑ[?>5?;Èå?öÆ>ƒ=}N?y›}?»1…?y&r?@:ç>‚Òð>·ë?«öÐ?tσ>è‹??ò?„ûZ>¯_€<Û“ì>­˜5>œð =³C<ˆy=?Û±@NPU@žü¬?B2‚>¤Ô¬?´?ûp>@Ià?ji@1@(¼_>ÿ…£?“>Ø +C>‡Zò>¦àë>âµ>Îÿû>->VG?DC?4Ös?ʇ>ÿù>?*AK?gµ|?JH>ê7>÷Êä?8?+ðp>óܧ>í8?B®®?jxÈ?,F>ïm9>Êy>¦´›> £>Cìe>Q\=Á<ò=ÖÚÏ?tÎó?€›?i +³?am¢?[›$?U¿6>œµ>0Ñ®?ó?47J>ᔫ>ŠnE>ÉE>øk&>‡„>ŸS?USk?¬3q@f6?ð7œ>î6C?ìâ?{yþ?¢o@¸G?òã‡=Às?F%^?E7(?}kŠ?s +ê>Ö†>µY?~Iø?}1·?MÌÈ?Y³< Í·:ùì<ªJÚ?!f?ùŒ?O¡?¡?8^®?/×(?,çk?4Yï?³žÂ?À ?½NI?¶Cæ?Ά6?×S–?m®?bé,"5>_@>¨€>‡ð?à? «Z?í¾?l7s<=Üé=Âî›>ìÁÊ>óÒ¶?EÁ?DúÔ>Â5S>ÝT?Y_É?KÒþ>Øα?I¶@6Ú?ô¯?¹éÖ?S6C?Ó¿?”Ä? +RR?;c?‚o?’ñ,?§Q’?©t~?°qþ?‘!b?cØ?ˆö‹?Ÿê²?¢’?NŒs?‡g½?œd¥?™äÊ?—j€?tN?B‡?f'|?‚ç?4ÿ?¡¦? o?²[?ª?¬r>I~ =”9ò?073?i1?|æÙ?‚»L?´y?Ês?ˆ£ë?[ÀÍ?‰?Èj?q3?‚Îú?>É{?//7?½Óõ?ÑŒÏ?…é?gµ>DŒð=úÛ¹@56T@=¥<æAÆ<‰‡¹?ó¥?…?'üñ?5/=?NÂ?D²ó?;Kr?$Çþ>¨<>Ë?;1º?1gO?øï?¥>?Mð:?|ÍP?¿ÅS?¥v¥?(ê<>ó=ãóæ>Ê6“?s/?}$\?ƒ@ç?O\?—]?w÷ƒ?Äø#?v#ß>ßM? ?`?'­?=¡?Í>Ù@ K2?‰˜s>Üqy?°>?Â+R?)•>hýÜ?»(°?ÿ8>ü ¨??ÅuÙ?æ’?ñ(”?Û$?ÒÃ?Â’?Ã|?ˆ ,?†¶®?9?¦ãB>á +è>à$ ?D‹?Ÿw„?Ñ—?6Ö?E5Û?¿HÖ?±Iù?£Z??½ W?×?¤?¸ìù?”„‡?%e>}ÐË?8¿>’tz=IªH?–¸¹@‚R?Ù6?À;?˜p?„\Y?=‹?"z¿? ¿?pÆ?'*Í?4>è>·>á‘?pxU?ƒkð?¥»~?©y»>a—Ð>€>?²2y?´( +?ëÚ­?Ñì(? Û?;?˜/"?¯{è@ ì@;]@ET1@Dwú@E<ç@’?•db?Öè?„Û ?—R†?¥i?¶ì?Ç]w?¸É;?­Æû?æ‚?ùª?  ç?‡S?<ë?tyþ?'’Ò? Hg>O•Ç>Ø5?€å¦?|gW?žv?¡é@Û@âC?Ïóo?á²â@%7ò@Nb?úÚ?µF>cg!>Æpç? Çô?Å’4@5¹Ö@ +?±oÕ?¢U?’i]?¨Å?±ú¤?¼³‘?Ë÷d?Z©š?Gô?‚?š”(?r{?e×?ÙÝ?äC?s:Ÿ?Spã?ùÿ,?ù?ö?…Pò?|-?F??F½H?Íò—?À·??–?Š@"?m~G?†•“?«H?¦ K?œ}K@[%@@0@)p²@¾u@«'@ …‹?ã`Ç?Öþ@<%+@^Ei@qKŒ@xêÅ@žÖ?ïÞN@YÚ@‰Á¡@0&’@(üý@‘A½@“­Z@„›_@‚¿?@s3R@cF@ž2ª@«@Ù®C@ÊÒ‚@«Yö@½ˆ@ÞRÆ@êÕ*@þ'IA(OA ç4A+ADÓrAY"·Ag!ñA{òTA…;sAEUA" §AnóAßÎA"q!A$)AVHEA_ÈÐAOžåAOöAz#šAyS/AK"ÕAKœüAAèADKAW©”AY +A_¿?Ai‡A} ÀAvaA^É‚AYþ7ASeAP4çAGm°A]õäA€óAy Ap~Abu]AVè{Aj%Ax,ðAi@ Êè?Ê®U?»cP?Å^‹?Â¥¸?ô.6?÷çH?à%T?åE.?‘Ü?€BŸ@äÀ@áŸ?ÂV?µ9F@J¾ë@]\‡@‰œ@rO?ë0?Ùüy?³ÝŒ?ªQ0?Ö!›?à Ð?³Ý?¨R@ }O@"Ý¡?ÉD?‡X>Á¤â>s™?Ï"@@ Š?¬•W?3…À?×JÑ@öØ?úKv?Ði?Ù?â7)?Ÿ x?@S)?k>Î1˜?°X@(Õ*@i?틾?ù}Ã@¨@¦É?Úœð?·Ô?~u ?®˜@÷v@ Ò?é(Ä?ôïÁ@·@!´@;U×@9?Ø@ +u@ ûá@-æ@*ßë?ÒT?áì†?§ñ6?¨}¼?aC_?]t{?¾,n?Æ ï?½™›?¼6@Týw@vŠß@ Ê—?á<@VC„@‚ïô?þË`??ôµ?—½Á?¸$@¤@V¬^@'Õ±?Ù+?ïF @  ?åsû?Šñ=?žXn?ä2ù?âÙw?ùA?üiÙ@Ê‹?ûm?õùA?ô(0@|@ +ø$?Ðú?Ýú_?™ÝÆ?‘ÌŠ?Dh ?2|@ +Ž@'~‹@ Rò?÷t¢?­‹j?gFw?›ö?ŤÑ?Ö o?ð1-@‘v@—$@ D´?Ð|n?Üé?âQE?òŸ@ »¬@}a?}â?‡pà?ký6?tk'@:·@0ôÌ?à¸*?·ê?_JÜ?Žù?´ +æ@ÝË?åëº?µ´ÿ?Ÿj×?lõ?Ÿf@-Ë?ü¨?·q?¹:?ÇØn?ÁhÇ?1°?7 T?mƲ?sA.?ž>ó +¨? -?Ã5?ª[¶?òœè@$‚†@R ±@Zç?šº? ·?µxL?©×?EFµ?Rní?—ÿÝ?ª¼Ã@:"@QÖ?Þå?Ê?‹Éþ?Wí?ן?‹®µ?|T5?p7?Që >ð Ê>éað>½³>° ½>¢õ?>•Öx?ÙAr?ï>š?¥6g?„ž?žÕ«?³í?ÍBæ?Þø?¼ø1?ˆ}é?Fz™=«„>‡pa?‘‚Z?›„@D@ ¿?É¡+?±õ4?ÖÃW?òþq?ªÎ?ì$?)!f?R÷M?oÖ?ì]5?ì=¸?ì$Z?ìû?ëç…?ëÊ*?‡ù??`²?Ÿø‚?ÑÞ¯?­Ö«?^G?>Э>êæù>ôM¡?ŒÎ=?—Ÿ¨?YH>ê‘_>ó÷´?@d?þHõ@OÌ@9˜/@{â@ q?­:¬?´›k?ÜU¸?Ô´M@(@O†?תº?ªæ[?ÇŽ6»u>’§y>Ê-­? º?gWà?gnO?‰¹?…kÍ?´Œò?Ït'?ß^?åHÉ?ÞÛ?Þ7]?Éòð?šœ€?“™|?dHn?<í8?4ø?2 P?S¬?bqw?¼°>ê>‹?U6?,g%?OUƒ?–uV?˜$?°»a?¯Öê?¥?ª…á?uÍÓ?m «?ûBQ@?„»ß?'ÆÞ?ZrÍ?wê?lR?—é?_.h?²%š?ŒÃ¦>ÑÖ¢?Åh?µÚ?¡à>óÕ?*½˜@g+@?±S.?¶Iå?~`‰?…}k>ýld>÷ A@%jX@)W@Õ°@ XÉ?ˆ ö?{Fe?¶§y?´v•?¾wï?¥ï~?…˨?rEå?€ì?€p?€Ô«?p­†?7?t?Fyò?C¿4?Mh?/)­?ˆ’ª?ZFd?p?ºƒ?èü>¬˜g>ª¹O?×?¸·@Ïn?Ö­|:]X=›<? á¸?Dê¬?%–ñ>ð›f>ö›?3{>rIÕ:‰tL<Žås?Ÿy@Eºb>ïߧ> Ä=´YN:Ψ?N¥»@a¬@³º>« ‰>Ÿ!e?…=²?‰€?p™•?(¡‰?êc>ãø9>ä´<¥ÏJ? ?»?OIh>Úræ<$Lt>0Dy>ê1h>Ø+7>M…>€3ž>#ð >3Dk?M¤?4¶r?Q+V?ZA³>Ø<;>‘'-?XÞž?_?f6?`èé>õE?³*?sf'?tŸú>ŽÄ™>|b +>¦4d>ž.Î? í?>{Ü>‡ø>ö¨è?Q¦d?Zœ>·}->U†m=“†¿>zÒy? Él?&¹Õ?tÐ?r°D?{tò?dÆ?5ñz?BL}>§¨T> ½>Ùóè>ò*?w? µÆ>AzÏ>T}?Y³‘?V6W;#¥¿=Q"Q<ê.†?ªX ?£èŠ?®¦Ð?¬rr?ƒ?fº?|\µ?€ˆ?¥a°?°,X?²r2?…"?€Ò¿?Ó€?òöÿ?î¾?+ž¶?0z?J?«Ì?Dyý?3]Ÿ?LÕÁ?MÎ$?ä?ÉÊ?Ñ°?p¥?ÜG? nQ?‡†/?y‹?-o>úÐÚ?¯?"9?nxñ?{“c?¢ÛÃ?”n.?Yai?7×{>™fË? ÿ^?ãUª?Îj{?•„?°i.?ÚU?Ëšõ?±ý?¤aÊ?‚T ?+zx? —(?Áœ?‘ ?hª?7¹$?‚n¬?‡s¶?8ð?’Çï?•T´?˜Ä?“äý?ˆÔZ?‚ƒÅ>øt¯?ÄÒ?P?¡Ò{?®—?¦€?£L^?¡‹û?™JL?>\ý? ê?U0¼?,r?*I?¬ˆ?M á?b%%?*?§?"ün?'ß1?ã[™@E&?­:?Ÿ ^?[\ó?CNû?˜I?žCH?…=Œ?‚ÒE?}Ðr?n ò@ã³@ï½?xTE?u)?yâß?ƒKo@gÓ?÷¬…?}Óã?nªÉ?öq?ùÖ?·)?­s ?ƒ?_–Á>6ë’>…ž³?/?^Â?Gòê?+¥?P? ÷?"ž?-\²?ƒ*9?cû[? ¾ô? ˜>ÝÇÀ?)í?{_ü?GÚ˜?Hƒ?Ddj?‡z¥?E?ªÄå?Œ‘~?l¨?@U¨?',ú?²kd?ò Ü?/pÔ?;ßn?†)‘?UÐi?>æ?·bÖ?Ï·>õYL>%PÌ?†ï]?¥ƒ? ïæ?šÿÝ@Òð@!b?‡ÿa?|­?„7{?ƒÃ ?ƒÉ›?†56?³— ?¥æJ?ÚÑ?ß·?ä4? +ƒÁ?0×/?F1b?ƒöx?¨Æ@L:@KÔ@ S?Ì®?ÍÈ?>g@d@mô?Æ6¦?qqG>I x>¯c?6>?Lp…?„@¬?=s? ö>‰š=>n¯?Bqå?„\g?É´†?݃E?G×?l¾?NÁJ?Z†?œ/Ç?š°á?‹ Í?†æc?–?¾Ø¿?é”>º˜¬?þ@A@èá?ï_Ú?ô”a@Y@·w@! ®@ +ôÇ? +T~?m‘? 4…?kó>çÆ>ï#Ù?3x?Y[?QXz?œ'6?ÇØû?Þ°ð?ði§?ËÖ?¼n?šº×?…B…?€5?sÖÏ?Cùd?3ö4? ~Š?JQ?äÛ~@Ë @$‰@P×?i{ü?tiÄ?‰I¯?l 1;ÿ>Ÿj?Çù?âØ¿@=Ê?ø(—?…P?¼@þ@ Sr@Øÿ@îß@˜Z@›°@áÚ?âª;@l¸P@ÃT@Oøã@dÿ@ a…@c@,î@5™@E9Ç@Gã @•C@œà@PÐF@HÞÆ?Žá?›ïî@I”c@Clå@L©@4^î@¦yö@¬ê@ÂÀ@³]h@Ž¥ü@Á×ÿA —@åë¼@¤Ò™@Ó}žAhÈA=ÖÇAsnAmtîAmJ÷At@Av­ASG´AF{A3ëA*Ñ%A9’AMYAD„ƒAPr @ú’>@ê§E@åLl@ðŽwA8hA7h;A#p>A#\‚AéÅA.Ê-AyØA~+ºA|A~j@A;âgAY#A†ŒvAŠÙ-A” A‰Ô÷A}]lArOAc›³A4ä°A ¾A> AhÂúAPLQA@}HA eÛ@ÛØó@¶îÍ@®6Y@ü±)A +³º@ü+6@ôæßA k¿A à±Al=A†Œ@ï°@îå@ŸŽt@ž¬ê@æXh@ã1Œ@f´=@o{@²@@¯ÕI@ŽŒq@†JÜ@5Ò$@0<‘@>ð@%îv@Qéo@T @d!!@R™@#5@ P•@ð@t@Ok?÷7o?ᦢ?ÉÛ³?Ÿ?®”?Àgÿ@ Qƒ@n+Y@LÙW@$å @$Œ?á;Ï@7Ç@q/Q@$f5?Ò7A?Ù†?æÂz@”¤@ ˆ@ ì"@ ˆ@/j @BÞÐ@-2`@#ð@uoß@‰D?ø¼F?Ž–u?Æ?Ò,9@æ·@-c?¤kÛ?i~?ýëŒ@:å?º>?–bg?æåº?õÛ'@<ŠÞ@O`Z@Xï@Zèú@­G@ j?ÅþY?»L7?Á¢/?ÂNÆ?&&Ú?W%@.87@>z@ ~´@»A?h?J?Cm?Ða(?Ø(M@3lü@Ag?µZ]?Ÿaû?÷N>?üZD?¥u/?™£Å?øí¸?ým·@Ax±@HÁa@ÉO@$?Ž.I?u>U@À<@õ™@:À“@<  @îì?÷ïñ?ëø‰?å“d?à’Õ?ä´é@,@°4@ª¾@Ý1@.d³@/¦K?ý¸N?åÄ?˜Ç?’†?ä:@4k?¢T—?`B@ X@4tŸ@;s@>?ý Q?¶`S?œAù?–¦@U>É@D|@k¡Ž@Ló??öäŠ?‚ø?³]†?Ùç§?Ï®ä?»ø¯?§ó»?˜ùp?é @(÷@¡t?­×»?‰Í¹?á²?Öûr@sÒ/@G{î?½˜~?œ¬ï? »?€x?ü…??þó­@`‹@ +s?ä…?Ý1U?ˆ¹Ú?¡Mr@<ä-@8Àˆ?(Ò{?R@?“YÕ?’A?†‰F?w7®?á,V?ñp?ãHÈ?Ô#Š?[?‚5°@ppö@’9|@)fà?óǶ?àX?Èä3?û°ð@mõ?ÿ5Ù?é@,å@ ëF@ T@—†@'«@LJÞ@: û@ì¾@À?çÝ{@ éK@…«x@„Áå@)²@™5?”ß?œ-&?Û ›?×ñæ?ø¦‹?õ(ç?رù?ÉKe@ÊÄ@,Ë@A~ã@BÆ@¦?÷E¼?ï~ ?êžÚ?ÍÑŠ?«„/?Æœ¤?ó,½?öÌR?ñå¹@g@)K•@<:?óÒ?Mf±@ @ \F?èøz?ØÏ?§€ó?©£?“Ø‘?‘F?oÉ ?Yà>Ì=v´?âx?{Þá?uQ'?thp?°(@˜“?ïÈ„>À†>þ½!?}²"?‡›.?;«1?5Œµ?m&r?sC?t˜£?dø?Vž^?[‘‚?¼Õ?òšÖ@2†@qÖ:@8Öy?®ÛK?¡ÔÎ?…ô}?–hQ?áo?Шê>‹Ós>~d~?Ãxœ?×· ?x+?J·?g¶‹?^SZ?Ãã@ Í?ÇOñ>úyl>·==L¸> F >ïÑh>õî?Hî?BMv?à²Þ?ï>£?Å»á?¾ÔÒ?¬ƒ´?¡¢X@ Âj@Eò@>±T@. ^@%X?ä”?Íiž? !ˆ?ÔD@†ÿ@âe?´.œ?°Ú?” £?—h@?“¤O?‰Þä?p­?(g³?KÿÚ?á@b?è"3?ì +?ìØ?T)k?;ð0?¡ûË?³Xý?Íyü?ëZp?ÕnÔ?°W§?¥ ‹?eª?J®û>ˆ"â>9>ÇE{>çž»?®j?Ö¡?ô+5@±@…§@/LA@Of?iŠ?j +«@¼@Žc@}@#è›?Å°?o\ô?ßO@* }@!æ?è"™?ü/@jD@ C$?·àã?® S?uÆŠ?A[?½¸9@cù?àÌ_?‡n>ì—ì?‘Ç?Í>ê#¥>çL²?ÝRæ@n„?Ž¾j>ç †?=é'?›Þø?¤“ù?¶=?±Õ:?jåu?q¢Ú?ÌØ~?Û”,?Ç£Z?À|E?àIï@-?ë-S?oÊ?•Ù¡?¥ï?“Ðå?Ô®£?æ8ß?˜ÒÜ?UqÊ?”M†?ÃÚ`?Ÿæµ?'Ë?=Ô¶?¹·ù?ÂÄ ?Cd?/>R°µÊðô>>ôw5>5‘=Mlà?*‡?Ÿ`ü?–7š?–¥?›!¡?°Ày?¬ei?l2L?lxÈ?®€Ÿ?­ú?ÀÇ»?ÏuR?O~%>îN†?–î? +ù•?B 1?„–?y?p“ö?LáM>ñO“? ±ž?K±a?N¨­>ó£?r”?Áo?Íé??w6?v??vA>ð>?DŠ@0i@ Ê6?¯é¼?®#?†åö?}н?=´?(^å?ø0\?þ3?¿P¸?»‡>?.‘h?O¬‰?‡î÷?^]=Ÿˆ>·]‘?žL?AœÞ>‹q>ÎTl?0É?–i ?¸žr?k†?1l©>û‚‘?5 +±?Êý™?‹e°=Ú R<H7?<ª?Œ Y?S¯µ?N1æ>ºáv?II?ÖãM?wв?…=,Be<˜šW?R¿?r”?ÃLs>A¥t>Àó‚>Úåm<ÍÄû?™ÖN@:wì@*PÆ>ÞV•>ß.¥?K1?wk?7Øþ>稸? ð?¶??Å>y{±>D]æ=·=Au)>€ço>å¸3?<&?¢œŒ?„A>^>“Ÿ\?‚ª?•õW?ƒã)?‚8}?ø>>0>‚ž=>ñp`?'þ?r? + +n>óT@>ô{?Ï? =Ÿ=*F=û2h>/t»?E#4?w ?#|7>Ü7o?Kwì?aæ?¨Ç¶?ºÒL?w¨ð>ÔY·?U°Ð?¸v–?Œ??E¿>Λ >m>¯Kr??õ?OÿQ?“Gy?¶d?§_>àSa=ïI?`d7?Y9»?n Ò?Oüs>I§g>3Æç? E? =ô?‚Sð?sb+?â¦?0c™?,Á?7ÂÕ?Cvø?OØ•?T.¨?MÏý?€(ú?€‰m?=À—?7ë?¶«ü?Àµ\?]ß8?bÓ8?›7Ž?•NW?xf?“å%¼Å>Nùƒ?“°?u¢?>‘—?O ô?8å¼?.˜v?Äš>úÞû>À¼>?Y?˜‡¬?˜Åƒ?¼÷G?«W?Ÿú?6?¨>ÞÑR>'œ?Fv?ôm*?Í€ã?,Vþ?%Î?/ù?!hu?€b–?sf4?)vM?l/-?Ö}h?·Qh?`ï?‚Ö:?›ªÛ?D|Ñ=p9L>Û ?‚df?Rr<Ê`¸?,}:?»aý?¸ÙG?¶R²?û3@ÕK?·ø¸?  +?|ñÿ?§>!?^¿>ý”?³?7ó÷?dŒ‡?‚”g?3sù?˜m?®Q‹?í§•?u” ?¡ü?|? +S?$]?«?ž…?»®ñ?†ºë?jò5?f?a>Í?±Ä½?Ç¥ž?ÐS>Þ~Ž?t]^?‚Ç:?¢?*?¨E?…ß?‚ÔN?ëŸÞ?óUÞ?KkI?OFª?[?¦?)¡q?n4=$jx>W¨ÿ?þ×?ÝÝ‘=ƒéï=ÛI>›w2>ÏÄ?&RÚ?öÍ>¬®>º~?Â?ls™@(÷?ÔDz?=ý?ÒŸ>¤U?#?—P?Ž<?ƒ1?:>€{Í>®\m??ú? ù? Y?E“Ï?ƒPg?ÆY«?þ~k?˜oÓ?èö>¤àx> +¨?¡kl?ð÷ø?¾Ð?-?ÐÇÿ?èF?µKB?¡ÈT@\r@—>?‚Óç?.ã?i¾é?hï?çúf?ûâ?áÉ?è]µ>.1=S‹¤?ÅêÐ?Ǭ°@µÒ@p.?%ÉŠ?5ýÈ?mÒ?¨×@c"X@<ì?\ö?„Vé?ÓM?íž3@"Â@@’5?Êm ?˦>?Æ)?¢¶á?\:Ú?¦¶Q?écü?¯ |?nÖ?8f?7V?]hB?^?­Óa?ÄÏ_?•N`?t…Ô?.2÷?3Ò?ˆ1S?Ÿÿ?,O*?o_?ÇO?ÛÈÖ@·Ð@~?§í?£Ú²?çrÙ?éz,?½e9?¿·@œà?ýX?¬ƒ?¤‡Ê?”ã?•wW?¦ ç?’y™?fõ?ñc@·ž@Aô·?qÎ??ñŸ?m¤‹?œÉB?ÇGX?ÜŠ1?êk +?„ì?ç”?ðä@"â©?s#«>—69?‰Ý?¦y§?Šº6?…Ñ?î?%?ù@n?!Á>ökå>¿cJ>Ö­2?… ?‹}f?Ç©î?Æ›ó?ÂBã?Å`?Ȭ(?³C´?Po?~Vv?z Ô?¥i ?äýM?”>ÇJf?GÅç?šSÝ?Ár÷?áDï?à m?ÖL>@Ö@(È?³²?Kó?±b ?µMï?qÓ?Tg?^l>öf½?°/?Ã*> m?ÃS?©ÎP<3l¤>ÕI2@?ø5G?ÙÙV?ä«2?ð%)?ýå@@2Kå@^`¬@ ÞÃ?Ç÷?ƒÓ?B7+@,\|@}ƒ@UÓõ@E@ÝÐ?ÎW?ûâ@D¹@S‚™@]á9@>.@=@@cð@d @Ác@#3¢@'Ó@B|W@­¯9@  Ý@w¢í@|rï@‚‹c@Œ4@@J@ºf@ïSæ@Ò±…@¥ï\@áé AËgAA +Ak+ÆAOýA::iAKÄ%AX Aø¿@çbïA6DyAM¡%Aå³A@à#{@Ôæ%AA[Å@Ù ñ@×8Ø@È¢ @×4?¢¶?µŸ|?ÀmE?á\J?à+I?ûÀF@ +¤@/ã@&ð@AÀ@YR?ÓGp?¿§@ Ìù@w@0ñ+@6@0?Ÿµ‹?ž?Ñß?Ñ—ú?ü. ?ü³ä@:ÁÎ@B@Vð@Vû¿@$â†@È@B@C-@Rˆ…@OÄo?ݳ2?ÆP¥@Q¦@!/¯@ 6Ÿ@Œ.@ð–@d@AÛè@Ivá@ ËT?ø¨I?U¶à?'?áÖ ?ûæ?Ëñé?Ë,ã@aè(@p$@Trí@Lð@¦‹@sô@7œÙ@@# ?Ù‹?®$ê@+(@?êJ?ÿFÔ?ÚÜ]?¦íQ?–æ?N6l?9Ü-?îìN@ý¸?òpü?ÖZõ@  +@ï?½¦N?ß(?ÌÊd?ïݤ@ŠÙ@~0@3ņ@GQ:@ ð$?»ã‰?º¬ö?¾?ÝnÔ?þ>?îûð?ØÄ?@ «ò@)ÏÔ@ ?Ÿµ{?Ÿã5?¡°?ÔDÉ@ ø@ S%?¼51?ÞÁ#@#?ð~ ?4W4?‹‡è@­£@—W?‘A?“DÃ?Œ‚ ?Œù?ÑÁ#?Þ†Ï?Ù6¬?Ö4?¼É&?¼“¼@º@κ?Å »?¼R„@SP^@nG½?ûY5?»ýú?ÍÃ?ã°±?ñU|?ïz¿?r//?“Í?¢­4?æ€ë?°†ï?yãË?Æq@ è6@"̾@;7l@L¦Œ@|ê*@Nä¢?˜ý{?•ø/?–ÙL?‚°ð?ö?1‡@jˆ@»@*ß\@%Sì@D)„@A@±?É“?¼Yê@[—@ dà?Σç?¼Íö@M¿@‚Ôp@ Õ¯?Àš¢?×bÙ?ßÂ?ž”2?%'Ç?±?”ó?™€‘@4`Ž@>••@l @Zy?ä'¢?ßœà@W/@W@)3g@(¤Ú?ÃY?¢±%?EÚ+?!–ó?H€G?LC?:˜ï?(â¹?¦Œj?øQ?©$A?j”?ZkÝ?Ë8?àŽ$@Ú?áR3>/¹>O°›?1¶~?7ªê?Ãl?‘q¡?¾Øë?Ïš"?SA >òÓ?šÊÌ?âAT@¡d@f?ò–ø?Ûp?€–?qö‰?tGª?‰~Y?“9±>ñ€õ>ñeC?Þb?碫?=¦+>ðò–?Ýï¡@w‹?Îœ?|ë©?õ@P)@73@´¹?Ó¾^=Ðó>;)?È•J?ÁôÕ?­$?²5¬?…ûb?o?nâ?nÇa?Ðqï@ @ ‘ç?öð?âß»?µ'Á?¯!>íÙ1>íº™?®Ã ?ÄÈË?¥ò&?—¡·?¦~?ªº–? ·V?žna?°U¥?Éä‹?´î?aÝ÷?kƒ?²[?µûs?¢çÇ?˜Ñd?•KË?›öx?Îæ?‰m¦?½aî?üª!?õ|?ýÖ?õ|ü?¥ Ì?¨œƒ>(±B; ç€?~žb?¶†@dè@7AÖ@ü?ËŸO?ºèÛ>é«?ë?¨ Û?³[q?Õ®í?Þ¢«?Ä>?±gt?–C·?…âM?b]>Íá>øð?Âu?ÅÙ÷?°KÖ?® +á?Ì¢?›9×?^° +? {é?K}¯?ªÚÿ?ÙŽÊ@W‰“@Is¦@%N‡@™@*?ÿÚÕ?w[‰>ƒc|?&rç?”Û?KÝ?ÞoÞ?â~‹?å9Ž?ßîð?UÎ?:ð?qY©?‡‰“?¼ô–@¥·?ÿŒª?æŒ?éÕu@!*@%×?È€`?­Ö? ™N>*J? ê¤?—˜ú?v">X]L> ?;ZÁ?DiE?° –?µ5?‚"1?c–÷?«Ñ?ç ™?ÕC—?¾%?ÂúÅ?k+?Xyõ?ƒÊ(?Ž2ø@i…@!_†?ìS?«­o?Ä·¾?è[*?Èñ?hª?…Q…?ù%ð?àŠ¨?ØSg?ÝÖÊ?£bø?zÌÁ?ÛC¨?ÿl¬?¸e?‡Â?o5ú?-É?QÇÖ?œn¯?›Úû?Dà?ZQt?¯f‚?±Ðž?Až?5ù‰>¬²Œ>Uñ?2¯Â?‡c˜?’¯˜?žø?‘Òï?or‹?$£l=¦é>—µ®?FM?/ˆº>óû?w6?7êË?0~Î?·Å?¶Ú9?±—?«å¢?+!?Uç@4‹@Ë??d å?b4?Øse?¾ùô=ÍÎÃ=ÀËL? ‘/?²Ð?þçI?êÇV>ᥠ>Éñû?¶tþ?¿Ê,?®ñk?ƒA°>ôéÒ?Nòù?©rv?šÞ?H†h?‹JI?Â;ƒ?¯i>rÉß?hýc?‡.ž?±?šŽ@ŽÄ?î¹òŸó?V»?=ôV?l©?!z,?Žà?¦Cd?Ò)Ü?tIZ?¥û>ÝHV>‘žÖ;ú<3`>Á¼¶?H«°=ž˜=ÏÔ7>fæ)>;(>Ñû?¡–±>‚S2?–÷/@(»©@<õ?ŒÈ%?‡ þ?áj>àÊ]?8`È?\¿‡?MZÆ?cé?aC?(?5*L?€q>ç=>?HT;‚»=R¤>oÂ>8ù˜<‚óW?F/G?@fî?ˆ»N?“ç_?$Ý>Œ >ø2?IR?`&?pµ?p½?ò]?ÓF€>ôÑw>ó¼×>ô-¹>ô™¢? *?‰6t>»Ê>œ—>à›˜?'Ѓ?@vÑ?U&=?R€É?k‚t?Œ=à?í‹>Ǩ!?l§d?G²†>úåˆ>¦,>1¼=?´Ä?B£?“#¼?ˆb?4Nh?0Æá>ówg?ÉÖ?¾fH?¾/™?ÆH{?ÂÖ?KŒ?Y@ê?q0!?‰D@ÂÇ@âë>ÿÀ? ËJ?ªâ? 9à?.ì?J¹?-Õ?5Òp?€wÑ?|P¬?¦º?ƒ•?¹9?Ë?MŒ?Hž˜?çë?ê’?² ä?²±>ù¯µ>ÿH‘?‘2?N=§@K(@=‰å?„?Â:??±QÝ?X?Í? ¸?u;?4?K“?GQ?ñ>êq5>oÙ>ÀŽo?ìqJ?Þsí?í¼?SÕH<ÐW>Õ@Ú?õ¬?ß Â?¤º)?œß? ö¹?‹¸[?"ï>Õ‡>P +t>õám?„Êd?nÆ—?[¶?Oâ6?&áÒ?.á?&¿^?„>4?Ý|¯?¢MÀ?[q?5çÛ?:?(~?yÆ+?H¡?!âÜ?aÈ?d€?ªPÌ?Ê?©¦z?|ü?Œp?žŸæ?£`?¢©ž?Ž0ˆ?‚Ž9?‚ŽB?‚’±?I)r?$ñš?Q/Œ?l½à?#;9?žµ?™Æž?¿7f?Â.9?¾&?JÓ?"<?ýñè@6á?fX ?%þH?x6p?‚»ä?žk>?˜+z?n½?£?}ƒ‰?‚Ë~?‚Í'?‚Ñ?à +f?ÂÕÊ>ªb>³?1®?;‘y?÷Þm?÷†Å?Ä^?´j? Q?yÅ>æ÷S>·¯>…B¹?¢7®?“a?Zd)?@‚O? 3?Z'›?à—n?³¨S?Pa>ǃ>Ákr?‡S8?uép?Fõ'?„±W?®QÞ?s^g>ëàù?‚ƒ&?Æö ?Ä,[?Áàñ?¤i?’E?„ür?nIt?WW?C¯|?b€p?²Q?ˆ†º?Xæ?–'Þ?œ÷]?¤¾?¦up?Ý)?ìËQ?½º=?¯3˜?úêÖ@Ÿ_?¾•?¸©F>Ì”î>…k©?p?†ü@"E±-?¨?ù’?ÙpÑ>ª ó? +»ï?ÿ?ŠÂÑ?q7Û?möV?I3?iNB?·?dr?Œ?Ë?ï`ƒ?EJ?+i?{?øÜ?­þ0?ùé?°ôÂ?„?„Çl?„O?(Ò ?Xe?|Ë?¼ï?\à±?e³õ?'n?/ˆt?­\\?¹Ê?«e™?¨s?è-f?æš?ìà?è‘?¿"à?ű§?Ì>c?Ì’z?¶ÿö?”$?>‹¼?§ ?¿Év?™?‰L?ÊéD@B"¥@/•»@z¹?Þ‡ÿ?‰Ì?vK?_ þ?hØ?co?¸Yž?ã¸ç?Žë?QÚW?sd†?ƒ3È?…hÕ?…F@M@†?¡9ñ?…Î?Ùk?(?“Ê­?”þ`?²×þ?¯Ê+?‹7S?¥~@[@Dµ@öî@~¢@8 @Eâ?L =? SË?Ú +µ?«ÌÞ?…8Ù?«M¾?ÇØ?Ѽ?Üb¯@ @&¦–¢?³5Ñ?Ù5$@š£@‚½?× ?Úc’?Ÿhw?Ÿh>f³Ù>ƒŸT?ø'?ŒºŠ?Ƙ?Ò¼H@LÂ@û{@;Ž@@«æ?žp?ßã%@1q@J—<@€æ@P‹/@!½?Ä//?Oû?â5b@T¼?çšý?Çëë@ ç4@9RN@*JÄ@"µë@zòz@†’«@³É@@-Ì@Sœ4@U¿Ž@LIS@Eß°@3ÌŽ@€=N@Ë¡@þ‰ÙA&¯·A ×p@Ѳ”@ù€qA4SA&-A7ÂâA7Ù“A9zëA)3yA L@Ú¶@²,®@óA'ÕA" A$‚A7ÙÅA;€‡@ÀÇ^@µÅ!A;Ü]A8ëÎAËA¶ºA¡õAFµA'¸òA3‘ìAa!çAZÕAQlAs) AÏ–AœÄA™oEAAºA‚¨ÞA@7™“@Äñ@-ë@Ñ@™+@)G@/¼a@ ¯€?ÿ·Ó?á÷?ÖWÕ?^œ!?–#?ªÁ?Ìfé@Ðh@/"‹@ ¤?û·&?§ø?~Ã…?>(E?)¤?¼1{?ò˜†@2,f@V B@"ýI?þ#«@$@u?ß|´?¾]À?Á0?Ç×Â@Ç'@\£r@1¨®?ìp!@Rí@]5@f@·J?ú²?|Ú¥?¤Kž@$î?íqS?¬ N?¦FE?§i?Æ <@vN@Äœ@n@ lù?AÃÉ?M~D@ 9¨@ +Û>?ÔIß?Ñ4?¤‰p?4¯?Äñ?ÆæÆ?°%%?±‚©@í»@±õ?ÙÌÕ?»ò›?›ª‚?’‹?hgd?:zÊ?­}>?äÕ¾?Àƒc? â\?éÑë@qÑ@I3P@†t@Y ?ù])?ôa?êÆ_?þ»'@¢@ R-?ƒ†“?„ñz?¾«ß?Ƥ’@ÊG@yš?¿D?Êÿ”?«Ò ?¤»µ@£@ }ƒ?¡B›?w¥f?ï¬6@ŸM?µB??EÇ?êú1@2ðù@5í@„õ?å Î?¹ÿ?§Î‚?ŒÏG?³J?@Tb@V?y}×?“Í@/8?ÿü?Ý¿?ÈÍž?Π_?Ù¨+?ßt:?å>=@>ö@9Z¹@;Ä?è.?ÂØ?„o?› S?æòT?æ?›í?Ž¬²?;£3?5‚L?à]Ã?æ +ç?ŒÄi?s Ï?·9>òÒ]? o‚?ïI>Š–˜=2Š>à×á?r-8?†Pœ?¨Yë?¢‚?Ž›Ó?‰µ¾?¤²ö?›-?¸çì?Èp×?Vé´?Bí?Åí\@·ë?ï¡?̲_?£W©?uøØ?—l‚?Áa ?¾#?Œ^÷?¯î?YR?7t?ÑÛ,?ÒS?Ÿ ò?6 ?˜”Š?™}N?à‹@ß@j;@)’™@D?dï?7VK@j=@ÚÊ?ùËP?í’¤?½'ü?±óŠ?ê.n@nù?É[q?‰JD?¤€÷?ì ?Ýùä? Õ?Ö@Ìr@9ö?¾~?°ÔŠ?¥*d?>ù?Œž'?vÎ$?¯Ð\@ +·.@,@ ãÒ@pÉ?j«ø?j†>—;ÿ-?zPz?¯™Î?ûŒÅ@ éÜ@g ?™*?ù­?foÛ?JÊÆ?¤¯?‘¿(?ÉË™?Ìw?ÕEF?äK®@ ñ@$»(@õ¢?ˆŸ’?‚¿Î?®:ó?®+±@[ ?ü!ï?¥¿>?†2?˜B?œÑ¼?ƒØ?cÏ?€¬µ?ÇK_?ÛPÝ?‹Í?¡¦?¿-:?Æ­Q?´Br?‘­ç?¯§ ?öü”?âjç?¥` ?¨¢û?h?w p?–çG?” _?–‚A?˜ó?eŸ?‘ûŽ>£‘6>ù› ?—E??ÓÞ?­„@?­•?‰ N?j“Ô?T"?]7Æ?»ƒ«?äÂ>?ÎW¹?»P´?À'“?»l?ÆuÀ@2T²@7h?¨.?¤@&:(@Iå?ࣄ?ŽÃ?c«%?ÿ1?r¢Ì?±2?š”m?‰ …?rÉ:=‹; <Ù—!@ bL@ å?;{¿>í´ˆ?tƒû?}Uz?|ƒi?sãØ?Dj?z'?'ò>ô¥•?®Í?B…I?@r¬?r??fŠB?-*?=¥õ?·c?·lµ?·Í‚?µÿ½?ƒpZ?‰5š>¤À >Ö:ô@SÛÒ@Q–Ó>ç9y>ÐJ$@‚n@‹…¶?²®?”Ɇ?'ñ?9R@íê@Y?в?ž¿n>ò›_?1V°?Â’>?ª•Q?,ªA?&É?>-)?]¥?·&?{D?Uû?ܸ>ܧ±? ÃÃ?=? ×=?/§©?Qð:>ÿ¯Õ?œ*?€6ð?+.? :³? Õ3?6ø?O[€?x½?ŒŽy?@P?µÄ>=|>//p>tÛ @;a”@'Õó@££>VJ>¬>Úܾ?É>à¯=-Ü<Ü«?/Ùã?¹?®ÅŽ?#Iê?0l¬>ôžá>àÅ|?p]Ÿ?«IÆ?¤ù„?‡c‚?tâî>Ââ>ç€>Dê];‹Ù>¸'…?PZ?-J‹>·ûØ>±îÑ?«?#S?)ø²?0 ?>²‰à>E²û?J|?KDl?_³t?qjê?•SÓ?Ùk?ÍÞ=?q³D?aÂd>ô/¥>ô›‘?+©3?8ã@?.p‹?.º=ÒY?í¨?3O±?O”G?r†ñ>ý'´=ú0¦>&”>s=¤š+<âý)>Õšà?u¤Ò?@æž>ØƆ?S +?Ïß½?¿9I?¨£Ý?‹¶>ü÷·? Ïo?@7‹?… V@I×?ße¸>þL >Ù?¹=©“û?¤?Ýì:n®€=àÎß>ÿà ?ßw?À2?²cÑ>æ1>N…Ü?Ta?Q«1?€{+?~°½?7Ð?#WÝ?º·?¡¿?‡ZÕ?Œè?K;¼?TÔ?!7—? 6k=i”¸<(û<ÜK.=™E>ü~Ø?1?ù?x?”™/?©¼d?¢T(?‘Ð?£n?¢æ?p ;?³Á? õƒ?/]Ü?óÂ>¾c?èf?ÞW?‰di?î˜?eŲ>þÌz?ym?ª)?F,¶?‹Ô?™];?´?…™?&Ô?\²£?ÅE?¯Ð?¡í?jk>hä>Õ²>ÍF1?‚L=?N‘Ì?T´>òk°>ãƒË>íÍ>ø ?r?à?BØ ?u÷H?ðïC@*š¼?¦?%­Ï?¯‡?îg?ƒ”Ë?¨ò?%£?‚®r?„Q +?‚J?‚?‚‘À?‚”œ?‚–~?h• ?N²¸?"TÎ??ª‚? ‚?1 ? Êt>4==m¦v?2ô?e&â>s“1> TÏ?k_9?‚»¬?‰™T?‘ò>²t>†Ô(?&B?ôS?T?%£"?ƒÔ?Š.?h—a?`ÖOÓs>ÃKÇ?@][?ºê>r +µ>™“>Í>•eà>( b>šv>$Š>Ë?2[i>õƒ>fHÉ?‘ue@÷Ã@ʇ@ +t?”4°?†Ã?{Ñ?¹`?ØÄP?æZ½?Õu?ÈŠ¨@Öm@h?tÚÙ?}}?î? }M?¯?ç?ÅT?ý·<@–Œ?ãë?ãuA?¨-?žu?í,?õ¶?z£*?~ŠP?†›?…Dª?†ž¢?¤¥@:Á?@í>Ø¡Û?ËW?ƒâÃ?vvy?5&â?!}µ?óŠ? +Ö ?Ç?7·Ó?‚=?cܲ?;Jb?cü?‡©Y?B©”>áž“?Jþ;?Šb?xÏ?teÛ?C“Ï?¬L?`s ?„G­@_n@Ž7V?ì%?xXî@$#@'-’?q#?&L>ÎBc>³¡9?õè‘?þ"ƒ?wÒç?€2>?Ŷ?Æâ?©-Ä?¨º¤?ŽD¸?oI^>µ\m? pá?•KG?™Åç?®y?¦¦¨?Œ®Ý?¾w»@_ò?Ò6?Š={?êÜT@&_@|Û?½7D?ÓN?Þœz?âÒÝ?ä^8?ÌQ?3a?7\½?;¶M?Ûö·?ðls?®áÃ?£y@7ù@Ñ?jš?„¿?Ï ®?×R?æ^@?ÒK??Gyß?_ñá?Àë]?²Ø?‚²]?…³™?Š7ö?LË>¤+`?SC?±€i?ò¥@ÉA?Úê$?…8õ?p1?e‡¬?Lq?>T?¹?¥òm>ÿèÚ>m?ŸŠÝ?·øZ@0ƒN@=eÌ?rç>?Hœ>kó>‹ ?Çó?¸‰n?N¢?˜D?…NÈ?QBÇ=Ò×@??Þ¿o?Âêè?…N»?¬›?è\9@ÊØ@.MØ@2@3 @‚£?Ð_æ@Ä1@é™@8‚@ãÙ?éä?à†F@83@JÀº@8¥@û@ÿð@¶˜@9[Z@=a6@GÒþ@C¤Æ@%ð@ H¶>CCƒ?nô@GÄE@må]@¤ Á@ŶfAô›A“mA!.@èvm@¥#À@ñT”A}A*äA6m7A1nA,ÁeA :2Aùy@Ò÷G@¾K‚@﨧@üý¡@Ó¾@Ía¦A•­A Û@— X@Š8A.šA1òÞAb½AXòÀAv#A´ÄA%å2A1ù£A`¼‡A\…ÃALeAP+[A`öAm×.A€þ†AoŠ¬ARÕlA*¾@îj@èÿ?@è6tAø¦A ´}A1MAçØA iÇAëA&_JA5LéAÁ´A ÒÖ@ô@ìMš@ããû@à'•A;AÚP@÷Ø@ô£HA%®A#å³@Ù†i@ÙÏ#@ɨ"@ÅìÃ@¶h³@¸x@:®@›¦Ó@¨(ˆ@£íÌ@…ÉO@wÔô@$¶@-Y¶@C$*@&˜?Ö£6@%@b œ@F=¼@ “x?ôXš?´d@ êÏ@F;]@Gl @L ì@Ó?ƒÚ?þTþ@=¾ì@Lß@V +Ó@¶7?»í•?Ù*&?øÊd?ÌpÔ?®’?æLí@¼?í•e?Ý5ð?ð‡4?ý/@z‘@#'q?æ?Â&‘@ ÈŸ@é±?è|ó?Ø™6@&L>@4K8@ ×@é¯@2M@7™?Àèœ?ž¾^?¿Ü=?ÁnV?Xê?8/¸@*T#@A_O?úúQ?Û€<@ «v@ ?¹+Ó?¤’Þ?óo ?þðÊ@Âà@!R©?:#ó?÷Î?Ý}¡?õTö@kŽ@ o@ƒD@„" @({7@!^ù?ÀU ?º³*?ÃF?¾àý@²Z@ H?Éð4?Á2#@ê@xI@•…@Î ?;4X?Rë@,@G@8Ð?û¬&?—/š?ŽøÈ?{Ès?ˆ˜ÿ@±[@(¡?¯õ?•µv@fÂ@ Ó@´?þBW@ P @ Õ„?ñ¢?èvÔ?Úò—?ÚéHP?„Á±@líñ@]gÇ@= ê@:3Š@)RÀ@(âQ@l@ Û@ÅA@Eá@!“ @£c@¹s@ ¶b?Øä?Ú€c?7#¹?»ú@: õ@[i«@m€Ä@m¿’@À~?å™@?r@Þ¢@P‘@&‘ÿ@Ñ@äà@¶—@ @ë@-9Œ@#±Ü@³?÷tq?É…b?ݤ@n,@òð@ Þ?ûÕ?ö¿È?öýŽ@œP@.”@ M¿@ó<@Æ®@Yƒ?ôä½?ï!Õ?ÉW?·J/?Ê5—?Ѹ?ÛÓT?ÞvÙ@Ô²@k8@/a“@C÷‡@Þé?·~“?¸5a?´™h?͹?@ò·@ ò?V²1?_?ãW?é ?0[>õŸ,@?@÷@7À¹@A·Û?Ç‘€?u,?‡i?Šü@{@oØ@$@?‚_?_äE?­&™?Œ¡@>¿¥r? ¶{?¥Ðm?¨ X>ßË$>÷è?íUï@@C?H?O´ý?d•A?U›?žÆæ?À¬'?~¼Û>ðJ +?O„X?®«'?“Jœ?-¸ô?:#?Fæ?[Êo?ÎÒÄ?Ñá‡?w¿P?]=?»åt?×0?—'?„¾f@ ²@Iƒ @ƒ·?³g†? Í©?}±I?‚  ?…:?ƒ•å> :ä>“ +y?¹¹ò?Й?ÏæÍ?ÊÂÃ?î3?ÿžá@Œ=@ +ò?Ê;>ü¾>»/F<Ä“¸=åkl?YA(?{³?§“?²Ñy?—AÛ?‘|ä?ªI?Â0?´Ì:?ŸŒ?{D1>ºr?!Bb@m@M?î4û?ñ¡²?Û?‚¯?þÓÜ@ÿ?á]:?°F?»¬?É ?¼8R?¥ c?¯ Ê?j§Î?jŽx?>/>ç—?µ ?e?p$±?¢cA@œ7@C:Ý@(eÏ?Í+^?Ò4Ë@ƪ@`Ð@%ìá@* ?½-?e?ì?”³`?¾©Å?À¼õ?®YÈ?²Ï ?Óx>?Ï¿@# @Ð?ØÕ›?¿‡V?øV¯@uœ?äÇD>õFö? ‡™?rè"?zâ+?‘ªN?‰Ñ?ÝQ‰?í +å?ëk?ûô«@é¢@îz?é)>?fÙ¢?dzÏ>ê€8>ùÀ0?d‘F?€<@Ñ[@‚ù?¶r–>qN?·Ï?Ò°ì?ɨI?ÇÍ?ÔÖ^@9>Œ@FÞ?·eE?4†å? ^P>܉?+ë"?Èë?ÝEü?Ò¤l?×9ÿ@=z@Sˆr@¦ ?ß[?{“Þ>º¬Ú?z?„ŸÏ?sóª?j¹?}¦ ?ùâî@Û1?TAg>ùbh?§éû?èM?·Ïa?‚0‚?­ÖÒ@„Ø?ÿ¯É?Ù¤¤?讓?‡'2?|¾/>rq:<ßè§?™mX?×?™‹?B÷,?¦Šó@ÿè@3?Âß¾?´™,?#)?ë¸?±ï/?Àp¤?ÆY9?·K‡?¨ô‘?±oÿ?ê @K?× è?³Þ^?œ*d?m§?†C?¨:?—ÍÓ?rF]?„Çô?ªŠà?£š?·2?·t?·Ó˜?µX0?v+?w&‚?nÅ$?Jm@@?j%@Nk? ê>Áj?·q?ÊY&?½é‰?½’Š?RÇ?JjÝ?¿+Û?µäj>Áì³>ÁðŒ=üÎþ?),?#Ê2>¾p?(§+?ƒr:?¥•¦?ºÈ?È1?„=¯?-a?@á>nrª>fv>|ÚÀ>ßüi?î¨?™X¡=]Ë`>M¢>òI? H7>œøL>ÃÄì>Í‚›>ÁúÐ?¶,?ðê?Äý<­LA=ô? x>OîÔ=ÿë†?¯•[?ÎRš?í‹Ÿ=¼ZÊ? Ž#?#¦?©O=¶‘?á"p@KyÒ@ MŠ>Þ5ú>ߊ>ßé>àº"?‡œ?+`?8Mè?Uz`?NPÂ>Ìz>çt¯?;?e Ë>ý»ç=Ñ=H>º†=Í“é>!~¨>ìŠð>í!S?6M?4Ϫ?*>ïY+>ïß]>ð_æ?$Õ$?X|p?]®=I>> ¡l>òö½?Ì$?gÚP?]ð*>õ1>õfm>˜ç´>­jŠ=h¥²??Ñã?wµ?‡>®K¶>¦k:>ºD?T{R?DÔ?B +Û>ëœ?4ý;?zã¯?oE=ˆoÊ?šÖŽ@F¦J@´?’Ò4?ªs®?ÑáÖ?£Š=>ýk?Pó@"c?é’©?%7é?Ðq>Òùú>ù\í?°œ­?f1=±Z>gp?vµ?Y»>x >»3Q??Ö†?;ë5?€S—?x¹‘?7ÏÐ?PÅ8?Àæ»?·Œ×?3()?*Ab>êÆb>Â>^Þ]>‘ U?¨¤{?±¦û?¼M?¸NB?uݼ?\’„>ßÁŽ>ü—?k ?s±?}û?oUT??#"R?£?•m³?:ÈÖ?0Mó?' |?·›> µÝ>Á?ª)ï?¤‚´?ìo?C°×³„±> 2Í=Ä[C=då<§uœþë?~e??²è¤?’E?b¼>±f›?sü}?ÃÂú?†PW?DR?”Ÿ?›?„yÍ?™–p?s€?aì?ß%r@˜‡?™WÂ?tÓù?ì¨ï@Fž?›Ý?€•=?î=>é‚i?%Þ?°ì>Òò +>¤˜?vB²?‚¸¨? +‘?½Ë?«†i?§ð†?@fw?-ô>Wû¶>Vø=?R4? ÓÆ?ô5Æ?䤿>Òé\>Ç,É=~¹>>½g?‚æ6?Žè?Àa×?ëíŠ@Q¸@¢u>ˆìI?ÿ ?“ö?kKa>¦A]>³ž> G[?+:ö?«Ì?€U¶?Î?7U=?ƒÛ?v¤Y?YM?>¯?%ü?vŠ?¬#?×Õ?þ³ï?Ú'?¾ã?qšþ?®? Õ£?P0?cÆÚ?Žq?™êr?¢®¯?ÉH?ÙO@ÿà@(?1¬?x±?ôÕ>ÿ p?{0:?Žg¸?Ìãè?Ù<„?‹H¼?ƒ›_@Eµ@ +¢_?œš0?”¶~?;,?òÈ?ˆ0?*p?ƒÄ$?†[?ž¨=?•S?ÓÉ? Á™?#^?'“?, + +?pE?¾X?ÀÆ?ÎC?»`?¥cs?Œ?O©w?§?Àºf?Ûæ@?íw@{@>¸;?Ęå?0L?•·§?ÆX?œ(t?†ü>µ >dw?È‹?n°?™§Ï?´|?&ð!?gÙ?ZÝq?_~m?í­o?øúp?·ë?®F ?„†‚?‡»ú?¢Ùæ?§›ù?ÕB6?Áµ·?,ã?MÝ@?µµc?•1Ž?®š?Y p?¾{@h±@@¿?ÙðÔ<"(?‰á?“þ¿?’!Á?Ž;?Ù}@Ü%@à(@â—?œïú?] è>±Ã¯>UÂd?Ð>@”Š?²ý„?¨_„?ÍBv?Ôg?ؾb?Øgû?-»|?MBO@Kþ@š£?þu#?ãvÑ?l‘µ?^p@?¾N?4xú?…%=?³?q Ð?Ô,?¨œ?žµ?±’’?€³?+hæ>¾-=>;:ò>Ò´Ø?ºUÅ?„˜Á?ÛÅ)@'@ZP?äof?¾*}@ê"@7Œù?úøO?ÖËÄ?Ö+?×ðM@ƒ @$·?Ôœ”?ÇÜ`@9me@C3_?Ü>¬?èAÚ@Y©@AU£?‰÷T?óIô@­Ê@”Ï@*NÄ@; «@eŹ@™@ñ@Ü@çµè@ôj@÷é@÷m¤A :øAYÚA)ú+A7·A=ä)AB¯*A®[@Ïk@öeA¡ A§øA9@³ŸP@£•éA'WA ãAÍ_AØîA^üÅAY*ÈAaWA ›A:]èA8V³A3)åAC.ÚA|$Am(AI¢ÞAZ•­Ay +¯AvÐAw:BAaž8ADvƒA.ÛŽA@çÊÈ@¦;D@¹7%@È0ŸA‹úA‹ A;ÊAQéA4KÜA).ì@÷Z@×"AµµA!ë@ê=@ØÜýA‹¤AWÅAÓÁ@ÿ<ÒA„£A" @z`@‚ ä@®¢í@¬i¥@V+®@gC@²aM@ªöÔ@f|b@fM@cô@Rƒ<@$Ç@N@‚@¤–¬@•vð@R@$“Á?“D¨@ s}@€Ip@b*‰@5è@$Ë@/±@ áA@8H?àý¯?¯ÌI@ñv@`ú@8ä¡@Ñ@[<Å@€¤b@ òŠ?‚Û€?¾À??Ûž£?ô#¨@»@‚!@#S"?óÉ:?ÌŽð@”¡@%9±?‹o¢?8?ØY@ "@,-9@4}H?Ù[€?¼[?Þ€B?éb@#†R@.qá?…Ć?:T}?ÍÌV?ã¤#?²û?ä°?óL)@Ò@*ü@4Ós@3*?@4¡f@6ß/@9$Ù?Þà~?Ë@Àk@!®;?Æ·Î?·ÕM@e3@j=¡@ ›I@X@1ª@:@ž@5Ö@ ïz@ —°@Ö-?£\V?£wã@,¨~@3çý?Ì»¦?Á/?Æ”?Ím(@ÿŸ:?~ÁG?¨Þ—?ñã›@Ъ?ÉOh?}Ð?Ía@šK@kž@%/z@3"@=ýü@T@pj@C¾?üþp?ê|?Â?½:?·¨`?°Ô!?¥gÄ?j‘?§º_?²Æ?™ò$?¼>@‚h@$ H@\_[@X‚¼@7}@Y²@Oû@Q5;@*Ît@,¬?CÒÃ?Ù?|?ƒb@Uò¶@yŒü@5>@#í^@Ž@n?ó;V?Ú‰%?ë›?ù¼¹@ãŒ@ ö@%Ýø@:ÐÕ@ê¸?Éij?ÿ¬k@09@¯D?½Í(?ÁbK?±V»?ß®b@QÎÃ@Gä5?¼/z?»õ4?‘ÿ?™õ @.á@ …Ò@;Ø@ñB?ê•ä?Ý\ë?¥Ã,?ùÊ?ñ‘â@Ý@']@6ƒ@<@ l@Aã0@ÁÒ@8XÌ?}Hu?k”?¸ßÃ?¼”ˆ?Ì|?Ó* +?Öâ|?ÒW†?àŽç?Ý’K?¥fÕ?›Ž|@‰@çG@B*‹@LºK?ØÓ5?ˆJ½?Ä Ï?ìîò?Ïv ?µ†D?[o?l]ê?pùS?„…?©üÐ@Ï?ð}Ä? à³?›é ?Evª?32‹?ÈÿT?Î2™?*At>ó {?âMû@@@ Òê@ +U§@Á!@ª?àß7?€«?]Ùì>ññ>ñÖº>ñ· ?H??µ" ?µ ß?ÏE¦?Íò@äË@`ž?×ù?´Ë?Ñç5?ê­?º·•?r:›?‹Ðe?­ +«?—dâ?Ý7?!$à?‹«9?…Þ?p˜È?o<8?¬z­?À]à?ÔŠƒ?çåä?×Ö ?¼ÛŠ?©-?„¬?“|O?àÔ·?Ï"ù?ž:ý?—Yo?ÈÓ„?Äí/?¡Ÿž?–ÓD?‡¥>‡÷¶?E²—?›È?¥@â?Ê™O?Ëü¬?¬ð[?²Ÿ{?ìâ?ìM?ÚÛÂ?Ñ¿@+!÷@D ¿?úíÍ?ïÙ?Á0@¸=?ßôú?Lð7?%UÇ?W*?^L¬?Ø>êÂ)>ê:>ê É?Ù’™@%¿Î@=‡@ +ïØ@ ög?¯$ú?¯?®ûb?®é ?ñâ@5ã?‡Ae>ó—2?1„?to>?ŒXL?®X¸?¢w\?*ß?JÞ?ÄæÒ?ÆúÉ?À9±?ÅÎp?µñs?˜I?•Ü?«<Ž?½G‹@-@F@B©Â@92Ë?ÛA?ÃBf?¦e?Š‡??‘A?žr?—Þ?fÙa?fÓÁ?d"»?[Ü=?™«Ø?Ÿ!»?ï˜d@ÏÚ?Ó2ž? “q?W?é´þ?í`?;ÿ?У>êžl?u¬? +né>æˆd?|òÇ?¹›?¡û’?Ž=£?‡á?À3Á?»¼?aï¼?[¥S?Ä-ÿ?æîð?¥õ?O Ì?z *?­e?ŸJþ?*v? ¬“?‰Lš?“¹Ñ?Ž ÷?|†í?áñc@r˜?øu?Êl«?ôP‡@2ÎD@º?i`?i&p?­C®?¯$à?‚;b?f…¤?u¼'?ŠyÖ?[ùø?Qç?–\Å@M?ýœ?ɽó?Öwâ?ì@à?ì€m?é¸B?ä­h?ž‰$?„)?‚è¤?ne?ËúA@$†?ÑÚ?¥Žý@ ù@.¿ @é;?†ÿ~?§ï?áE?ÞfP@.Q@UÃ?äß·?ËÎ’?¶É?´Þ?v2™?yb?¹tÄ?¹è%?øH?øþh?ÐßÑ?ã´?½!?¼¤?ñg_?ëã?-1q?A¾`?¿3?µJê>¨)o>*è<“ô><©y?l‡$?Ÿ<ï? nð?ƒ|ˆ?ÝbG@.ïy?ÅFŒ??YÍä?mg/?7íb?ðO?BÒ?e´@æ‚?Êö;Ž @> Íl>wé ƒ½¹@7­)?óóz?Ÿ$:<Ìã>ÿ:ç>É—¤={«<ƒa0?Ä|n@,9@=ã?ŒD’?†«?€ÓÉ?v«?AÀ¶?'úq?Ôô>ª§>’/>sE¨>Aøà>¸˜h>Ï»‚> …Q<+°>p'ò>Ïã?xê @ ò@?ìÒ:?F,¡?@k®?–¿£?•ûâ?rÍÅ?Z³À?ku"?h¾?5„¯?ªé?Ÿ<>òW>°m;θ>>D]?t*¨?k}…>õÕ>õhê>®õ>ŸÚ>“Òv>‡ÈÑ?µ˜?Ïžt?V;/? Ó>d?–ÂÚ?ùµ–?iÉ><ó’ +<†=×Ð=,ÛÈ?f)@š?ß…!?'÷?A€>?„d?tà¦>ýp ?E…?cI?kcC?’aC? Œ“?ãë¹?Èg >ÿR?1yT?Ĺæ?§ð´?~ú>ð¥ >…|·?à’Ö?Á­ð>­kÛ>·Ä >[w¶>ªÁ?‚¥L?‡G?€º?ƒµ?™œò?™?e€3?Q]Í> aÏ>à?&ã>ßiÌ=7ׄ=¥ =†øò>.¼L?cé?"ô’?(†?5½r?QE?p$¹?Âs/?®.¯?I«ß?,…†>;”“>ñ€?%êŽ?9ø>Ñ»?‡?uDæ?Yâ¸?ܼ>¼£è=ï,ø>ày=é=»QN=姰>9n|>m?¨?q(Ò?< ?7? ?Hø:?Yä?Ãh]?{ôM>›)R>¤'O>˱m? ÆÐ?`L‰?wG3?‚_ã?Ç#L?þ¡¼?\-Ù=T? 3ï?‚qÁ? @X>†ñ?I¬®?‚Oä?jn?mÒ?P"?B4¸>n×L?©g?ÃÙ4?%Z¦>»-?»Öé?ê½?[g?ï ?ÿ]?@ë??Ôìb?Â_î>jTð=OÈ>ì¾Q?°¬?Ÿå¶?£¡B>° å>¨zì?,@?Ïi?¹ÆE?¿$?ƒœl?ˆ®™?p¬?j/Ý?–É?™“‹?Ždæ?‡…¾>SH´>a a?à–? F?~RÐ?i'%?âÀ?60¿?¡îã?Gô>ÚY>´ò«>yRî>×æÃ?4þ?;Û?T;B?…ú‘?¾:M?‹??:Ø®?ƒ¢?•ï?® å?‡µå?@qÆ?48j?ó¯?‚êä?´B=?aT>÷ªj?ÞWY@!?ê@¹*@.X?Z†e>(©Ô>úÊ€?!¥?ƒhU?— O?ª2•?³Ç4?2Xd?y:?73”?Eôñ? Ôû?‰ó?K͇?X?‚s3?ƒœð@ gg@â)@ Ðç@½}?“iU?˜Æ?ýH­?ó¥G?ƒÄh?ƒÈ’?ƒËü?‚ r?r‚[?ƒ­º?§Â·?°Ñ.?ÍeX?£¢ ??Bç?¡[G@úï?ïnÎ?Æ|3?¥ê?w[6?U¼?4î0?´®Z@å@ +n4@ Àb?±­?Gš±?¢rü?ÆUØ?ÃJõ?Ãï·@í¨@ÿj?¦9?zχ?‚é ?„^m?¦Øƒ?§>?†8?„o»?™ùN?ž=Ô?áX’?â{P?Ëù?¾î?§æ ?­qJ?¹Æ|?·Û ?Æ}h?Éc’?ºc +?š;~?:õ±?Z¬ç?ô²?Ÿ+-?½T>?À¦¸?ÄX?@„Q=uÔ?"v?„ÖR?`Ãö?S],?`^­?m_ ?@ï?0ft>Öî?^n?„÷z?£@S?¤Æd?¨ß?Y#?·©?´¸?Ä?¹g•?•Ä›?ž¸?Ô?£: +?ŸP@L?²/Ž<š6à>ßšv?…+»?¹¾´?öº_?òn?î$*?¨?eV?Ga’?/~2?õ?¹YÑ?¬÷?¨…ü?ÛÌí?ë‰H?hWh?:Ÿ-?c1o?^ÅÚ?Ê?Ö€&@&š@ß@[Ø@MJ??ì­?)&©? XX?*žü?‡?a?Še@ M?äF?nÓ^?¦WI?Ï. ?ùT±@v@ +¼â@Kç?ê¢ö?Óò@M@%Ye?èut?»¸ú?»z8?¹2!@+¦5@=ã|?Æì?¶ƒû?*+‘?,H@!ù@4B+@½÷@±—@$=Ö@@™Ô@—/ï@}a?ÕÓO@-*ƒ@›…@–ï˜@”Ìh@¡ö?@³·Â@ç&8A3mAÀ©AA Œ˜Aç¼A?êA þAÕH@ùYAØÐAkAùþ@üôs@çëš@å™ @Ý!$@ß ñAðAal@è@÷ÒCA4$ºA7YLAT VAS‡LAQ\’AY1×AvÔÛAs½AfAkÎ×A|ÂA„ŠXAŒÚIAs¼#ADM`AA ØA;7A$oâA ø²@öáç@àº@Û°‰@Ù,ÚAC/A,bÒAÑÏ@íR@ߟ›@ØÆÂA²eA%5Ô@õq~@å+t@­Ð¤@ªv‘AêAaA ®/A Ï·@² :@ªhX@tºD@q…ó@E¼×@H!X@[ºé@dˆ¨@Fì@‚ëK@”˜@‡—©@<`P@76@/çÃ@Y~ß@Ÿ#@Ÿþ @¡ð@—8‘@ƒ]%@Ž€ì@5 @€g‚@9~.@3ô¬@- ?õÀù?—ak@99û@>@>Çý?èħ@Z*=@”7˜@8¡?ÔÄc@qò@-c°@%õC@+¡@+Ï@‰?ùãT?éf?@"U3@7ï–@Ö@R@Ç•@b‰@§B@'œt?Öz`?µk¼?Àk?ÃAù?åãõ?ñ@È?â×ë?ÖºE@zª@No@Õ"@­Û?ðx?ì? G?”Ê@ gÎ@u?úuK?ùi @¢@Q¼@¶A@™Ù?Œ`?…ù@[¶e@fæ?ç”Z?Ý•º?o.?pA–@5S@ÆÕ@½@ +~è?tg?€jó?ÿ@Îé?Åç>?Á/%?”û?‡ Y?Ê÷?Î@šF@º@Uw@ ™?62Â?éì?‰†Í?™Ùž?“„Ï?–ŠW?ƒBí?€(×@?e@Lnœ@*þŠ@ Lˆ@¿I@¡Æ@öB@"ô?¯˜ß?²?Ç ?Ù*¾@,%@BÕ.@-ms@$ @ ??þìm?ÕOR?¾›š?’¡h?~›?£¡ò?´.?ÀR¹?¿ÿƒ?ÌvD?ÕÏ?ÊB†?Ë]N@D¹@"@ m@"1´?þ*?¬ÇA?äÓº@­@Qv]@Ž º@`Þ?õ½@{Æ@X7@¨›@W(@ã·?½cÓ?«­Û?bÙö?“ì¶@€L@Úé?êñ?õâ“@¡»@¯Ý@åT@‘?Ÿ +Ó?·;é?Èò?ác?@¤¦@ À”@2Ê@.o²@*Ž@¹1?X&r?|OÚ?õé‚?õÏ¢?¬ë?—>S?ä½ê?áô@ ª@. «?ò@?Å—Ö?¼?·š3?™©?x˜ˆ?”¨ý?³NÌ?ÔÖy@ ¬å@1Â@ ñÜ@†Å?Øn?‘6I?i¹?uƨ?‡É`?”G¤?;4?»Ä?Ðn+?þF4?Qz¿=¨¢ô?5—?xUa?~hy?r)Ü?„ –?šËÑ?…sÛ>ñ·? HÃ?× N?Ô_@çû@­?£åû?‹f?±×þ?À¬Ü?Ë¥v?Ëþ?Ôæª?îu?Ø$£?´M?¸äˆ?ÆÞ‚?¼ŽÏ?³®$?³˜?šƒ‚?•cU?’?ŽžŠ?zpk?Z?³ÛÖ?øF=@FT@1;{@‡©?|4ž?ŽN¡?ã„?à@ +žã@ +(>?Äi?±ðJ?†FŽ?Gãk?„±¡?¶».?Od>ì“‚??|U{?jö?pæ?–É?Ú΃?ë×@&üÀ@:æ°?¿[£>ÜüM?@ó@ gõ@tZ@ÊÈ?-³”?ªà?¥VÞ?­6v?¥Ý˜?žià?µë?ïp)?ÖB ?—ÓS?p=?pvÉ?€uÈ?›Æ?žÑ8?…Yü?yï? Zf?¯zß?Æq?ÛÝ?×£?ÚWH?Å_ð?Áè?9?¨•Ž?·<`?mŽ+?Fè¡?Ý1À@ ýÄ?çá>îÕÄ?*~‹?»g+?ÃiÜ@Qn×@Sß÷?°x?g! ?–ßæ?­D"?•V?fëÒ?j¬?rn?tÚ™@ [p@ ?”3ä?ß›?Ü8I@š3?ëÂ?Æõå?®Üo?fg?p.€?¾cð?µ«Û?­B>æ‚Ò?w˜?” ?­¸·?×å?ê8“@?ý”?ù “?ô–W?5©F?cÿ>ï‹©?õD?Dë°?g s?=’Y?è¸?+O"?gYÖ?gt6?zlJ?Tyó?ì¦ë@ 'H@"Â’@*ÿ'?õ¸ù?”?Ònì@+8[@!ŸÙ?‹Z?†%é?¡®9?§˜]?°'õ?­Íô?ËÁ?ÒÞV?€ñ>êÇÁ?ˆ‰@@ÅÒ?í ð?¥C?ŸÐ?ìF_?쑹@aÚ@h¢?Oe¹?äì?\Cû?nj4?«Ž{?Äm??ƒî-?®4?2›R?ˆÇ´?z›P?Ø¢?`Ö„?ʲb?秕@ @ÍÌ@K%@>­‘>ü¶B?'…i?Ý `?Ïy?”ƒ.?šï>?®2D?ÁSÝ>þ ]>úG«?»ža?¼­V?ÈÈÇ?Íyò>ý’í?]u?d™Ê?ˆÛ?§„H?­Zú?¦û?Z?+0?ûÖ?¦S?à˜?VŠe?eˆv?t±?=,?Y¨?ty?)(4>âNâ?‘(?XO˜?Eñí=Ée‚>Z?ã·>dj>„ÓC>”µ¡>i²»>a‘>è’Ê?È£?Žm?h(e?|#Q; 4V>…á>ýV=5mç>=®@Nt?ÐÂK?žq§:í–8:@K.@Unå@}†?$#+?1˜?ƒs?‡$? Û>éÁè?A›?9BÊ?8ðO?(ªm?5±·=Èþ›=<¤Õ>©f®>å’'?gÚ?¢kf?¿‰m@‚ ?ò9?l„?l?é?\‘?ißi?vÞ?ï?£cr?¸`I?"H?XQ²?)©…>ØÑ‘>îéª>õÿ£>î‚]?à??\‘?TÞ[>õÎÞ>ö3œ>ö“Þ>ööæ?¥öµ?ÅŒ®?St0? >s'p=ÿ¬a?”3ï?åÈ”?‚ËO>ê‘$>öWW>ò]?`x“?£ßg?‚Ôh?Sö?éŽ>"=ìúö>%˜ >ýkñ?Jo?¾cÕ?¾Ž8?¾´_?®îÚ?~¬?f'?y?…}@<ª5@$³ä?wB?D‹?=”X¤>úÇ? +àØ>ªçA>Ÿ‰Ä>”-·>œCø?™x? .?Mý³?MÞÒ?)É?#p)?Þ´?&z4?p`n?ae&?&?F)j?ø#´@¡ +@)@÷ã?in?rÍ?}T?Ý_?'?~Œ0?zg +?tóI?< ?);?Á§?Ig?:¦?í€=Ïëô>oÅA?/]?/æk?W–?+«À>¥BÀ?aO»?“§?Ì9u?‰QE>·6-? £o?d@??êÁ?3•>Éê¨>‹æ¯?‰+Î?õJâ?Ånð?–?3o·>j&Ù>AC>V?N/?‚_2>áKV=„{?l¤?kü€?žÌ“?¸]?DÂÒ>ÃÖ?°Ç?ï’]?6DE>S%?ƒÆ›?¦ÖÞ?_Xò?-J–?ºü?Û¿š>ÁÜ?6¶_?i¸?Š j?‹¶þ>'>é§$?V @ Ûÿ@EX?%Bº?­±?4°?A¦Î>Åd>³…|?V™¡?SC0?‚½¦?“—?Ãð? +?Œ5ž?‰C?ÌÀ>ú“a>“™>§Ïœ?Nܳ?PúD?&À0?rÔ?ãv?a?I?C¦5?¾µë?‰¼C=¥ût>¤©ö?I¸Â?X;Ð?ƒ?’Ö(?¬'@?¹?Ì‹?€‚³>†ÁÄ?Ô;?ƒ?V’¢?+Æ€>ÙU×>!è? Üÿ?k…q?=û®?å>¾¦Ù>*œÌ?1Ü?†Ï?FË)?.±]>e>X>¿f¡?^v?˜Ú?²?Ó?צ%>æß“>a]?¶ûÜ?Æ%“?Só™?<¼?iŠ??dŸ?0™?9`U?ƒšã?ˆKò@ +º@ Γ?å”ÿ?Ûò,? ®Â>çœT<Ž–r>Ñðï?ü…¹?ÞR'?ƒÑØ?£ç?ùKÄ?ÁÌ?ë? é1>ª¨?e6?•*¹?É2@þß?éuŒ?Æ ×?ͱö?Ï,?Š·Ï?5¨Ø?iz%?„#ú?´»À?Øñ“?ÔüÔ?ÍÊø?”Åæ?+?è=@?O?XH•?ìº?Oâ?´A>ªv0>´Ÿ;?#˘?+SU?„Eù?…P/?žra?£^?Á/¹?¸)?IðÓ?i©è?·uö?¸:?Û1?½®¤@?A?þša?ª–‹?ª{±?©nö?˜æ&?]n±>Òã<¦ÝH? >b?z>åë>Z>Æ–%?ÚC?L¢Ð?h<:?cò6?_¦…?6›?$:ˆ?7I^?@lÙ??›?LW >†W>>}½P?ðB?õO@¢@ ÿú?Øð´?àT5@þ?Ѫ€>Q¸?T—@ˆ4?Õ<ªì7>ÚN:?…'¿?§¹Ñ?Ðê“@QY@ÀÒ?ïïF?¶ 9?³åG?±Àv?îýY@:\?»‚D?£éy?¦.?¨7µ?`¸ê?SÕX@ïÝ@„ ?—¶%?Pˆ?hWd?I6¿?6tm?u:‰@›9@3ô?{Ì?_Ýÿ?×þ?´‚%@E#Ñ@1ßA@Ü?Ë]?ZZ?É/@†ð?ÄLÛ?†ü=@—¤@@œ?ùÓÓ?Ä p?ᙫ?ðV=?ÀÛ#?º˜8?±·Â?±‰^?ÓÌ?ÍMx?Ô^+?Ë· ?þÞ·@™Ö@GÌL@8?ÇÇš?ÈÞ?Ôõ@Õ@ŒA@—®Z@´eÔ@§¢@’o@£¢Ê@¹,ç@ʉ?@ß=´@è—@@ñ|ÿ@î&)@éJ¾@Í>Î@À@Ëš@ÒðÚ@úìØAäApA¯#@ØËû@Ñ©O@–ýš@“f@¼OY@»ñï@Ú¥@× +G@ÏM¯@ïƽAI1AD +|A.×ÎAKRsAŽ!¤A{ZzA4&VA,éAœ?A/jÓAK(·AFˆA9¼=A@xT%@vhŒ@uc@Xí—@)û@2&r@Fßä@dj@†o¾@m î@DØÕ@QE @]ïf@"D?ƒÊ?Ö–¨@õÝ@ö‰@l7@‘¸@$M¸@J!@[Y•@Ï?ÖË]@5Î@[TX@—?Ãù‚?€W—?=›??%Li?ÅÄ@+J@BCZ?ñnï?Çãi?fH»?I •>¿e€> ±:?úb¸@ÇÇ?÷O%?íÀd?Ѩ?Ó!~?›ÿ‘?ï@S¥@fük?ß±â?¹?Öp1?Ö2:@:íD@Bg?Ý0?ÌÂ@ Å@@Z?ý5P@]@:ý}@9ð@(Ýâ@*T¿?–h@?Ž•?eøÈ?™/ç?óš?îa?á;I?ãªV?æ,?À~{?‘È?ÙÜÕ@:‰@F?½¾¿?“¦à? 1¢?’p‡@êó?öÔ9?†.?:2ý?|Vï?±îp@= Ý@**•?”¦?›¦g?¼áÅ?¼ÔA?¼Ã?¿ƒ[@ +$Í@Íô?½Áô?¼pd?®ø?°•?õ?­@‘F@‹@K™í@TȆ@4h«@#ÄL?ö®Û?Ù€ö?ô°º?ûåf?>ùá«?¥£l?û [@ R8@Wh˜@C„…@Ø*@*ªà@JÁÐ@>P©@´Â@SU?øÒ%?øÈÇ?ô»?ñ6Ÿ@}@®›@ÝC@ ¤?Ш­?ΗÃ?Þ??Ý®ø?¤_??êÔö@q+?Áx>?Žt?ƒš?e§ý?È‹@‚¼@Q¥®@–jO@„ý @8àd@8Î…@8»ì@#=öº›>¼à~@7f;@2ù?êR??Û¬?ùêV@·¡@N‡@B1@ã±?õ ?Íñ†?·›‚?¹å?¹{Å?ÑÃ1?ðm`?òÛo8.>=Ê?1mÏ?OÞ±?܃à@£5?­’N?h)?¶ñd?ðeZ?Óoð?®võ?®™«?µtN?®üÊ?ñ[?˜BK@=D@7%k?û_Í?ûÇÔ?ÁÁ$?´´U?ß@?ð¸ì@%½!@J™@ È’?t!¹?´úƒ@»)@Öw?Á¥ ?ÃÔ?³¬ ?³˜?kˆ}?pw{?çxø?øµ?üNð?þý¾@ÕÇ@šF@]@ÉI?ßÃß=q_(>,¹¤?6Hd?Jª†?€IÂ?Ž‘W?h³ÿLn>Á©è?6„ +?ð¥?é7ž?ª÷È?£Ò ?B~§?H–?ˆ˜¨?¢úç?«û?šA6?²Žø?ëç?áÞA?Ê:a?ϱ6?Æ I?Õ0ø?²³¡?¯¾o@%œ½@:×d?燹?…a=?‰ ª?Œº*?ƒùž?*Á(?$+?Br'?I÷l?šÜÿ?¦Â[?ϳm?çZS?ç®…?è¥?è‹a?èsû?Ù$(?hIt?h5@Õš@ Ä?u@?Ðñ?”Ï+?ŶU?µo1?¬ª‚?²ÅA?ßïz?ÛêÖ@ û@$/œ?ï?Í€a?¶>Œ?­EQ?°¹?©Oõ?¥ò]?Á¨1?±!?²q?ˆ¯8?]Ât>×Øz>žu1?´I?K´r?~£@?µê×?ÅØÆ?Èë?ß?W?£AX?¥I?þ«’@v=?š  ?ë;>÷ï“>‹­>µØ"?g\™?gtÛ@zB@ 3ÿ?‘ÂP?gßË? [ë?Ã9?¹æ?bæ?Ž+æ?…Ñ©?Ÿ‘|?®ÂÓ?®âR?TÜ“?\z•?п,?ç[,?ÆyŸ?¼†0?JÕn>8ü[?*5@?Á"˜?è/ê@X-@~?Ûa?붶@«ÿ@;‚?ÊJ{?¬¾Ê?Sx\?8¨?ÉÚ?ÿ?Ïü?¯:©?{‰¶?Ó?KŽ?“qÆ?¤uÕ?Ù‡Q?㱘@j@ ´>@¾‘@²v'y?ƨ×?Íþ?ÂÑ¡?´”>›5â>µÑq?>¦?×÷?ùà¶?ôuj?½3X?ºdä>ýž¾>ö>@±Ã>=»^?ì^?}?€ùŒ?O³—=í_ã>‡M7?­Ÿ?$Ó?0£'?0;Ð?%Æ¿?»zë?ý‰†?îš>Ú8?Λ?P?;ŸÞ?!‡ß>ç4:>¤¢¹<½àè>Ž§H>ËdÈ>~¡>Œ/>­V >¬É¹=®™>»€?ž1>™_³>¤,Â>]D\?«M–?§!Ú?›=³1…=öë¥;mŽ›?ãÛ?øª"?¯‹¹=Õ˜K>!×?_Ó®?`§C?@ŠW?#µÌ?•?Wó?R>qÊ&>@oW>åçÞ>çk>2¨?<^F=‰â>ú”? ¥ë?c|?†9T?›÷?,4>L +º>em>~Ô¿>Œ×>Ù,x>ð^q?¦ ?*ò[>Êô$»>ú?Ê.?"1Z?“²ä?Îœ>^,ã>\ò%?¨ßb?®f¤?Œ­#?Žá?E2b?¸û?6î•?Qe.>Ȭv=‚¹<‡<…<ð>¡x ?æ?>ûü|?k ?,Ì?ëÝ>”¥¢>ä¢?=Qâ?@âº?d ?uõ ?ƒåî?ˆªˆ?~±s?y`”?o)ó?ŠqÞ?½lã?£Áç?¡ï>Û\/>ƒU¶?‘òn?ƒÀK?VB?`æˆ?ŠÒÿ?|–??Ü~?:D€?4±â?6('?XüC?^·]?djÜ?T™|? K?^?'=?9\?Ä.|?¼wX? ½¸?«Ž6?§X]?Š…Ô?}? {ã?2]#?)Œ.?Ÿþ?äÃ? ZP?!)e?1÷¼>ð+™=ûÕx>Îgˆ?/(?säé?Kˆë>ù\W>£1s>Éñ?‚Ž? ÿ‘?ÐÄI?•g•?#i?(w¿?T ¸?NÒõ?I¦˜?%’×>ô5?£E¡@ zá?ÔDd?›0?Ë£?‚Q©‘ >‚W\? ¦¼?Õ.ô?“…?€¨?ž¾?(1?Ì ?â¼ü?ä ?á´?¨e°?£¨(>Ìã>]*>äiì?–f?’D?§0)>ÑB?>:÷Q?rk?‚v?‹K*?“S›? ·#?®²?¯”?´B?µà?mà?­•ë?«/x?¨Ë`?§#½?¥&m?šÈY?t®K?]ºž?Ì…? zÉ?9Ôƒ?&©Ã=ãcv>»öç?ºÑµ?Ÿ,>òº¹?—?‚?a‚?˜?5»!?^}ó?fÎ?‚ùÙ?bª5?)hc??)Ó?bx™?€ÿ?—Ö?-q>ûH?ƒ§?>¹v‚?(GÌ?5íƒ?;è?WTí?s¢¿?ózÅ@<#?ïxn?Ät/?ÀW¿?»;«?‡IÈ?aÉ?iÃG?jÏO?KÌ'?Mdá?x~?†Í¦>Þ2>˜¶@?§–?Âd?6G?T™?¦Tô?¬¥>» >©Í?ƒœk?€¦¤?¦>?šÞ>“>€d?‘q?ˆt?Y`?RKó@Èu?çÔ?ƒÑb?W˪>Ý¿>ì¼>¾»«>Ôö?ì…?ƒù??Ýlˆ@í@&sS?Ú¨?WÖ??©Š?ã’æ?€>ªu?(‡©?fð>Çø)=ÇŽ4?¦‹Ž?ð(?`ÎÛ?A³?rjd?‡†?šF?T ?Û/F?ê±?ØË…?Ï?le/?aï?.e*?-J¥>ʳO>Ü&Ì>혌?gï?‹?5œ?t¼?’=y?íf?á öë?Ã+?§¿?§m?{@?k„ó?Ò >Í"Ý?Ôf¸@9?Òõ?¸¢'?,Z÷>ð ÷?–ä?¥9?ÿ—?A‘@&Id@0=Y@&› @&ZØ@,É@)Ÿ£?ºòè?²ÿë?…I°?Y!9>.çg>h¸o?è?¢˜}@)¹@l?ÚVf?üIð@ ™Ç?¼c}?pÁ?l:Ø?^]§?°Ü£?áq?¾)-?©3Y?ÀÔú?ÄE?‰Fs?r‚õ?Åñ?ÊA4@Ui@ZZ¦@?¹¤@@“ ?àHÒ?ð–Ï@GÍß@6¦Ê?ÇÈe@DË@fF’@\©Ó@PGÿ@ŽA@ÓY\@´ÊØ@ˆ´]@¶ Í@ë• @Ò¯é@¼¹/@«ºë@ Rå@¶Ì@Åæ@Ìár@ÍÓè@® {@¢»ÏA»FA,Ø@Ä¿ü@¯îk@•Ä@Ÿ‰ƒ@–Bd@’^U@îÞ@õC&A¸(AÓÃA#bšA €A­A)ï +A\ô"AgVA…hArcòA7ù Aü@¾ @ü¿A)¹A=8«AWQGASU¯ANÿ;ADàA<6•AðøAš±Aã†AFÈA¶=A†,A)GA.ßôAT­@éKG@çfw@é¼’@³•ë@­­þ@ñ.B@÷›k@Þ9@ØCB@ù’U@û¥Ô@ª¢í@«y-@›ê@šZ¢@Ž{8@‘æÈ@²²±@ªÀé@¸Ž@œ’y@Ëd•@·ŠÝ@i#Ñ@u,Õ@”‡@›Üä@¨^Õ@›>•@€Œ‹@PòZ@–Å@Jb@’H±@‚¦Œ@`•Œ@;ÞJ@š@”!@K?ïÔ†?×ú?Ò3ø?Öõ?¸ìÃ?£aC@DT1@„÷@Dá?šÆB@SO@'y?õ~Ö?Òì?íÅ…?ú¾1?Ò_?ÃÉ ?Á$¥?Âc3?õ±¾@‚Œ@A7À@K2»@Œ† @Ô÷@ .å?åü@!ò@Ú@YR@Ÿ? ½Ë?‡Ë/@~@%|Á@•&?ô5?ídž?ï\|@,v7@2ýô@#×é@ÕO@;ÈÏ@?&n?š6Ê?†XE?îr?$»S@„@dË?ºÐ?µ?â=?ßYe?ûÇ!@¤?µ-È?¶¡Þ?¥;î?¡ìˆ?à‰ë?ån’?óÄ4?ûV/@I1x@RcÐ@IJµ@KýD?›f?‰Ý#?÷#?ÅEñ?"¨F?å¼@Í@…§@ä!@?ˆ@Pñ%@XÊÿ?¢ø?€<@ôˆ@ÚX?Z3Š?0N´? }w>íË9?ëa@ Œ?Úñ?ÛIw@"@÷ç@fY?ÿ¾?Œ ‡?4«B? Lë?Ž~?™€|?º±?¡c/?œÁ>?¤4?«{,?åŽ@»q?_cë?BIó?¤à|?¯Ç™?¾:R?¾-ƒ?¾ÿ?´>k?«Bi?×®­@ ´§@‘?×™ ?Ïñ9?ÈDó?–ûr? j!?YM?¯pî?Ÿ}?|V?‹Iå?ÂÜ?Í›_?Ï]‹?Ò<ä@ïŒ?þ£Q?ù^*?ô Ý@Ù@§s?•»)?™ë?4‰?‰?椬?ô*q@]@vBs?ÑB£?‘–Þ?ëún@@ím@%®5@]s?ã~@?†.…>ùÞÌ@L¸@Z)@"ZE?ÄÑg?ì7Î@`†@ Çõ@|µ@á¨?øþ&?ó–ˆ?æŒ*?úÁã@Ó@ÕÉ?¥?˜ß†?Òs?×í˜@1Š@0(|?âª?ÓÚ?ÅË?·Wv?lEÔ?Eþr?Ô@Ý£?ð,?ñØ*?þÉG?þš4?ÆM?v¯Ÿ?ÑË@8ß@F£%@l»x@Zn)@ +›¤@;î?äqö?ó$E@¿ @š[?Š›e?ug@@-@@q(?Ü°„?¿0?ÔŠî?îrË?¾ô?‚ ?›¾?Á3?Øå@@ +*é@%Éü@#>>ßý¡>øA¦?-l„?)”?"Õ¡?Ñ?[Ðâ?rÐ7?%k`>ò˜Á?œˆú?ò`d?ªÎ ?ó+?^ +¿?µsž?Í’–@¨p@)à@²0@#Œ¸?¡¨p?œ"÷?± b?´²?Õ 4?äÖ-?Þy’?à7‡?ë®k?î@?ȹ?ŽN`?§1ï?áÓÖ?×ð ?ŒL[?‡'?¼5’?±pÌ?ÅÊ?Þî?üÁK@0O@·A@4Ôg@ YS?RÎ?• †?Þ?ÜÙ@[a@½?U0?C_±?u1"?t%Ã?r1˜?€èÈ?“ü?™E[?iº5>ЄQ?5c@@:(@/@ •?ÓFÄ?Á­ø?8 R>눺?œO?é+L?í^%?ë'?äšç?Å"“?§Q®>NÀï=í0?W¥$?n_&?´x?ÕD•?‰‚4?ª ?¦¿9@®?ßl†>þ›(? >éHø>é2¹?l±ÿ?x.?c’Z?hÙ?vÚì?ƒî?¶Ã'@ ´@W*?ºl0?²„Š@"@3nF?±uW?gà?ç1â@"¯c?û¿2?i•B?ƒ?˜?µªx?¹»|?ÍÛU?Õóá?ù I@ÆÏ?ü¼?ì›c@;X@ _1@+L¢@Eƒ5@D2«?­?­ ?¢ØT?ò?‹)9?xó?h¿N?fŒ?;?àIE?îG?е°?ÝÑÅ?>û/?¶×ó?ÚAo?¨$‹?~J9?8„v>~óR>š“j>ÈþN>’€l>Ý{Ÿ>æÏh@#!@*Þ?Ò.y?Ií?[¤?{à?_‡?6dS?@9?º‡{?Èíî?Œ©!?k½?¼Î?à@?ÛJ?Ö„;?°p°?6’v?L`?ì^>?ÝŠÆ? mÖ>ÿšÒ=ºÏ™=æ‰ÿØ?)G¯?›\Þ?¬E±@ ‡;?üÚ«<ÃŽß=0*¢?)ëÕ?V{?bâË?€?«Žß?¢dá?ÐOu?ÿ4?¹¶?oïä?9 S>ð±ƒ?S‚a?µ%>?Äò?ñZñ@Й@$ßí@Ú—>mGÂ>+$Õ?hy1?Ne{?8ƒ?Z°O?Õ:×?×\/>/)Á>ÇÌ?æò­?ôºý@ç@½¼?ŒÞQ?’%æ?Eû$?5Ä`>ÿ?CŸ?¥=?l]6=.å¬>Lð]>ÁË1?¾n?†í?ˆÖ³?˜m`? ˆÍ?¹’P?žœþ?‘Ñ™?$]?Š{u?GG?Oî=?_èí??k>PEŠ?x©?¢-? Kí=óû¶>`Ü?\Î>’J=9cp>·?Ð>¿~>à3ž@ Bë@É@ýW>pdÝ?»=tõ°@_ž@6¹?íeê>¨`>¥ã.?lr?3©?ad?0 ??l¢(?‡ Þ?‰Ok?½ñ?†§Ø>Ã>ÐÚ?î'C@qƒ?‹¬Ç>Ϥ?ÑÙ?kH@?N—•>ì{1>ó ÿ?¨€>÷#?W ?F„”?G¹4?CÊ?‹?¨gÂ?– b?<?Ku>ùÓû?cYÍ?ânö?¼ôy>ôûW>ÿyk?Cè?Pu0>—|>ˆÛ4?È!–?àö:?1àÔ>ø`ý??ð?X¢/>¥=£%@?â'?i†Ñ?vn*?s.?.=>ûru³>øí=ö‡>žWÍ>êSe?bºî?UyÑ? ?3²µ?f"?cí?xlÆ?”Δ?ÚI;?¾×*?eP?¤?Ö¹,?Í6s?À±g?¡ƒ?¯©?(X?€¸]?nŒ2?*œ?,ÄÍ?<óÄ?&—Ñ? Ž?ú2?ÎZ?#0?ƒ>/?jø‘?n…?8OÓ?Ž€?v$§?{X?D‚?Rï ?d{?‡ON?Gp>n¥Š?½É?²›„?`>˜X©>Xa+=ÚÉÙ>›M>?#3G>Í—=?|Š>Ò)?yNØ?­áR?ô"q@©@YC?ÓôÕ?_5?DÀl?1²€?6ñF?C'=,ô?mš~?¤U?‰?¡i ?:m?uK?”^¯?µˆ‹?ˆSP?|”?Ð’%?çJµ?!Í>FyÅ>éC?Žh?’?”g>m†±> ‰’@¿‚@kÞ?ÄIð?Â1Á?ý6¾?û$-?{µ?p¢D?º">þò{> ˜<>@ñ?ZÊv?km?’(?¦¸’?ãÂ4?ÝÄm?§0?™ o?Ê>Ö¨z>LÓ? C˜??]>?–Ö?kÓø>R÷>uƒã?¹÷?,v ?|ŠŠ?UÉÁ?˜?J)?ùR>àx\>\s>ž{¦?¬>¾Ñ@>_Æ'>Äý¥?±ì?ºV?ñt>ÉèX>=¤0>í°7?9ÚV?ˆyO?§¶•?pë¬?*úD?Ž‹™?´¶Ÿ?ÁT?Ää¦?Tr€?~?z{?2?“¦?#•>`/¯>m=>!Šš>3¡¬?¨è‡?µùC?Ie?z?Æ•>îß?—?„r?š—?›Îh?ÍÔ‚?¼>j?Næ;?]“¢?ƒ«Ý?¡¾\@" ç@"¿È@#ó@,?æ?#r;?Y¡?OL?žù?‹…$?dq¦?<˜ì?è ?2°?úñ«@ÄÆ@4rY?²™D>Ï2Ù?8“ù?!?™ô®?tŸÐ?J ¤?AIL?8†N?N­%?Iæº?Ÿ˜?=6@Ö@#¤&?ž<;?~‡Ê?Å{S?Ïíâ@6H@8ÇÔ?ê\E?åÄ0?ù¼ç?Üúš>$s.?”Åw?qsq>…¬3>êv?Óò?ƒPí?4ïˆ??n¼?a—š?ž ?êR?»R?^ ­?ŒÒ¯?¹h?E8.= ¸?š‘É@Çg?¹Vž?‹šÈ?è!@ +fœ@#‰@(f‚?ÇuC?ŸÍ?›~º?—2?’âh?Ž•¾?¾²Ð?Ƽ?®SJ?±‡6>œÙä>üõ?ó1?õ>Ç?÷mK?ö?ícx?ép?Ѳ„?¨H?'®?•*@³?µk?.Ë>²Å=ú@=âÓ4=Áð&?Jå5?–„ç?ŽÎŸi?ê/°?ñªX?ô-?ê¯,>Š:>ˆ*ß?’éû?Å/?ŽŸj?»ãK@$z@Bç?… …?¶ª}@bú@‚S@„@[0@ ²!@ +~@W@3ª@ €?¯Øá?Wë?‘Ú—?£Kã@“>@hß@7‰e@7äQ@'ž@&ŠË@q`“@tÀë?…7 ?¥@ ²³@J®@6šù@+ŠW?ÐRÉ?ûMj@GÜÜ@[‘æ@‚¤F@!Š@‚}î@–¼@¬Ê¾@²B@¼Ñ{@œ¬@N‚@‰Ì†@l@Ÿ a@§r @±ÙI@¹Øâ@½³w@½Ž½@óǃ@ÿC¬@õx™@ô¦@_õ=@<“z@Ôâ˜@ÛP…@Ž_@šº¥A‡A†è@š­Á@ÅœA:ã›A0åÔA¡PAfˆ?„•?¾—ˆ@@0mP@ÇX?Û˜w?»mN?¡ +?¾pQ?ÖA?¿P.?¤Ør?˜›±?Œž5?îá@=½<@9`À@5ÖE@%r?øæ?¾¡5?Ì?°A@@YÇ@6΢?¬C?©1H?ª™?·²S?ó)N@*.@;èÕ@5¦ ?Ö¦?ÓUÔ?vñö?fö5?¸‘[?¼N¯?Äê?Ã>?‡jl?zÀ}?ß­?ó?Íݵ?ÄãÑ?^á?,ÈK?}G?¿Ü?qgï?G¿€?ÌN@{@J˜@ÛÎ@‹'@Bz?à®ß?ŒM¦?¥Úˆ?î»å?¿W=˜ÊÛ>¦ÚŒ?ù…”?û¨?ëžï?æ+ÿ?ìU«?é~£?þÈX@!?¢ _?•¶Ù?Æí«?Ùþ¼?¥^?ˆyÜ@A÷@1ëE?ª–>XŒ´?œè¾@va?âÚè?-Ë?’™´?Ä å?í’@("œ@4q?6½??[4²?uém?x@®?õµÊ?õ›ã?¹;ý?®PÈ@$µ@8²¢@,xS@)Õ@@D?쾃?•Å¢? K?¬|Ì@à±?åú?„+?ÙíM@\“@A4õ?¥ÈÉ?¢¸o>ƒ‰À>n“l?Ãl ?Àª!?bnX?Oü?V Ç?\#? 6>ò—o?ž~g?òhò?ëåê?ÜN:?ʤº?µt2?¿Ä_?ðÈ´?úNÔ?ù”+?ó[?—ëŠ?‘8S?Ò}?ÙE?³õ?¨Æm?[Hæ?Ï?‘V€?ð3Ì@  @$Ù\@ú?L¢D?o(?Æ0?¿{Â?ÈÕI?ÓYÖ?#" >´Hq?‡Å?³ ò?…6?-Åó?·èî@.@" ¯?î¡?ðª@õt@P§?uk…?mz&?§ÆÏ?±î?˜¤o?ƒ°Ù?ÌsÛ@ˆÂ@ +Uw@Ùy@ >ñ?ìPm?é Å?¸r°?¿x»?K#?L´?ÀÁ??Ð[b?ßù?콤?èŸû?ë²?ücé@Ò¢@!3Œ?Ÿ‡y?¦Î??v<¦?jO>°¼‰>l+l>Æ·’>éåŸ?|»"?ð¢L?àüh?PÆ?1Ýh?£?õ?³û_?¼ÈÒ>âÊ <Ë€?²È@v@ @G @&ë?€oþ?Œ*ß?7à ?:y]?zü ?‚õ?”Ãð?¦ñR?Áû?å¯Ó?ßzL?Þ¿è?ÙŠ%?„p4?ˆ|T?Öž ?çv@É›@Èv@m?Ú¾s?æ‡|@¼¸@:N@B§@9–A?¢Fp?ƒð÷¨î?œ(@?¡?öÀ9@c?æõŒ?¬ï&?«}ª?•à½?¼ç?¬ÿ??­ ï?<Ý>ø¤õ?¼¤Ç?ó7I@ +¥Ö@kû?ܼŠ?Œdœ?”bR?˜4?…N?,.É??¾¬Ï?å_F? ¶¤?†,ß?¤ÑC?Á#x?³Å?‘}?©ÚP@v@þ?Y³ô?`•Ö?gD#?W`Y>òÞù>îYì?|>êÏú?Œáp@ƒƒ@»”?ß<‡?Ï4Ï>ìSw>ãæû@ô?ô$Ö?—VC?‚KÃ?½k1?à˜Æ?ÃÝ?Ÿí7?€f¹?knñ?7ÿò>ð·Ú>Úöâ>èÂG?i—à?ÓW,?¿Z«?‹©?”Î%?â „?Ú±Ù?Âç?Ã^?—O?Šó?pE?„Ù×?wÎ?Tl¾?”è?‚£7?‡f±?žðóÂ? Ç.?_†ƒ?\Íö?æi?z?Ÿ.Ÿ?kX§?‡ù?W«€?…y-?’Â?TO?]bA?GÔA?†s­?8á=\éÊ<F=XÏD>¸Î? W}>³`¼>~Ò>¹4(>´\½?úá?UVú?×?$ÜS? –>DË?‡…¿@þ­@:Ð>sþÔ>"÷¶=¡±ã?Ÿù'?d ;>þ‡û<\YW@HÕó@„G:@>ƒN?µŠX?ž°6>ßÊC>à÷?)ü÷?"åó?ÁY?¿î ?¹ó?¸:µ?²T¢<Àù>«¢i>ê ¸?Y:b?£•U?oÌ>m„>‡”¡?m¤Ò?n49?Ï7Î?Öx[?—I7?ŽÆþ?X«Ï?>Òu?‚ È?¢3¶?¬ð³?´ÅC?ÇTÉ?ô#ž?À| =À>'á‰>õÎÜ>ï9µ>BÊ,>[%>î µ?si?, œ?(ÑÖ?"ÿT?(þ?Tç?}s>‘¶y=Ïv@>­B?c>uýY=yÅ>ha>Ü·t?ùŸ>ü}‘?ÄŒ?vg?S“D?}O?>‹ï>Îõ?6Ÿ?VQy?Fë’?«W?UÈ}?®•é?¤²ã?‚Ca?¥ú1?øÞZ?Õýi?’z?½ô@ Á?Õ…µ?%Ó:?Eåë?jO;?Yo€?„H>ö¨?v'?/c?Wë?v£?¢Üž?ˆÄ;>ÛYX?xý?&¡?^ó?±·?LJ|?³vË?ÁWB?é?Æ?±£û?~W?Q?1Ö?HCí?v™?Œƒ¯?›Q ?§îï?ÑþD?Ïײ?»ö?‚é>Ë«b?S™r?º5â?¡¿â?}<é?Jåè?¦|?KÀž?‘Hq?Pû?ìþ?M$Q?‚!S?šy>;!(?ó>?K,Ý?»b@;Y?k·>QÌ?‰òP?Øcý?ÊÌC?ÃvL?tî?É@?¿:?É,=?[?Q?b¥>ý"ª>ðüã?Äú‰?ú×'?)›ä>pÛH>.™> ž?‹¼Z?ª§V?+xó?©?mp”?‡]?x/b?gš-?'N?7?“?“/?zk?‚—o>™°*>3`=™ž£<º Ü@Ü@§?÷G|?ê.S=¾*u>ø?Bˆ?KŸF?ÄÓŠ?²c˜?7lY?C¡"?Nj?~{(?J™,?A}?Êš>áÎ>°x> ?g7•?‘q@?æ2ú?ÿùe@èK@‡Ö?ƒéÏ?öf?‚ê@?€`”?tCˆ?E>³?÷?÷£?=j>ì¼8>6W ? J?d?K 7?C3ú?a|ñ?fÖ^?€.'?ŠQf>Ø49?&º‹?{É?±¦?¥KR>ð =>–?4«?Äåq?G:?J½?N)?Q ?[îJ?mD>õ$6>ÁUˆ?| Ê?ƒz‚?­éE?¸>?¾š?zž?ñÉ?„?Ÿ¢ˆ?œƒþ?–?¤!‰@…i@ -æ>jÜv>°Ë?˜ô?¤Ãb?ö?áâ³?ƒØ†?¦ˆô?üW@ Jì@1DÁ@é¥?ÅÅ/?š‰é?%ú?™Oü?óâ”?í«;?îö?õ‡@N?åV©?» Ú?–º’?„*?ŽzÅ?™*B?ªÊ?´‘?ÁR¦?ÆA@u*@>ª?lBQ?=¹=µd;<=û >òÁR? %­?…ƒ€? 9?ä" ?îô?Õïâ?Ö=C?¿ˆ?»?(¯8?KTª?ã*^?¸>?Æ?>Ý«?až?i?“ÚB?„Á?“[_?µ?ÜŽ§@: ?¹0?´È?¬®@–Ö?áÞ¨?ÉÓ?Å™¬?Á¹@ ãx@ ÐÎ?‰"?1‡;?Œ#É?˜È?fåz?b¨÷?šî/? ´@?†"Ç?„Ñg?A‹È?+±>_¢®>¿Ú/?ÇŠö?Çv?Ç“Û?»Âƒ?”$?®?ô³á@)†@ Œ!?ÜÌu?‰c4?ßäC@ ¿×?·<â>í¿Y>å%">ÜŽ?/?D4z?f?Ÿ²¹?ÝÚZ?ò¶?ïð?íËð?©ŒE?¥~¿?ˆ€f?…?§?«µ1?¬ö‚?`ëµ?Lg >À Ã?/?ä?å1+?ð³?ï”·@kU?ÚA?‚mÊ?êƽ@D`^?ýßQ?4f??™RÐ?ÔÉ?£ì›?„rW?¶lx?ØKl?¢,g?…F_?ù@C@ /•?Ñš}?ÉCY@@Ž½n@äˆ@1ö@0ª»@1Sí?©t?žý}?;‹ñ?Eþ®?—»†?·š¹@$G@7@Ê3@=˜@ ×6@Ê°?êT‰@a±ù@·ô@µ$Ö@²°µ@¡#q@¼D@†N9@`Ç@žQ>@­×>@‹*è@z@µ¿@Çv@þØœA¢@à#9@ÚiF@¹@¸¾(@–p±@“G„@ä”@!x @qÅŠ@€Ù@Æ|@à÷EA/ ;A+ßAÙ A ¶Ö@ÈKË@ÕÙ—@ê®ÐAcSA{eAPyA;ˆANU/A…”6AFAT(A +€A‰?Ʀ@!œ@&XF@#õl@”@2#¯@DÀ‚@q(ú@Š‘Â@HX^@ {õ@ž @RÝ?ØÕ–?¥ž?¤,µ?¦—=?ÔÒ?ìg=@àJ@-ºÐ@=ˆ{@Cù{@ +j?æ¦ß?ƒ ¥?;/?yˆä?„ù§?ƒî?„øQ@:èË@N¢?ŸÎe?w¤?¢h?¢É@$ˆ@.^§?¯.?›`ý@ã,@Yæ?·?{´Z@}@ï@F´@¨?¯fŠ?¢ß»@@~¢@JÜÈ?©?—ˆ%?‹³©?†Û9@\ª›@\4#@qv@Mµ?²=v?¼(?¹ïÀ?Âò?? ?Á¡C?“‹’?ë¡?Ûï?ßß"@3­@`ß@.å@-@–@ð?üo@"?s@· @^e@`ó:@/N@2âL?Ëd?¹@’b@æY@­Õ@«@- +g@+#Ï?Îì?À/?š©?¬6?Ú¿•?ã^1?âš?Û²K?ÿ§_@öh?ï!©?ê‰^?ôIP?ïWÜ?rd¿?+Õû?Éšú?ò•ò?ü{2?þ±ÆcÇ?ZÛx?‘ú¥?þ3ä@&íè@ÑÞ@Áp?ÉÉ›?œ`À?Ü @ +þm?þ[N?éØç?Ïpý?¯sp?ó©Û@+·@¨?|Ô=?R o?´û?yw?顯?ÈØÃ?Žì5?±%#?ë¡}?åCŠ?Ч?ɉÕ?¼àþ?Ïj@=G‘@9 Ž?”®¶?Ÿ !?©rm?³ÖZ?èKË?âL?øJT?úìŒ?–©¨?wã?±(‰?¿rð?’¥º?†½?·€?Á©#?Í4]?ÓÂ?ž†à?yߥ?ç«‘@!¡@1@Lëæ@>ì@&Š6@Ÿy?úš£?áJ?º½Ë?®)]?bô?ˆ +Ä?»Ä?Ί@4%@/è¯?øBŽ?ø3¬?¼Á@?º¦@)2Ë@*߶?ó…¹?×Õè?í»c?÷sm@¢l@ÈX?ÈÖ?‰3É? ²¸?¹'b?ÓÐ’?ö°F@ëH@3sö@O?Ëní?ÍÍ?¹’"?±Ðy?ÌÅ?Ç™ð@ 3A@ +­ë@ -@£´?åü½?á<Î?×–A?ØéZ?¯‚º?ŸP?÷Y*@ó$?Á|'?H?ݾ? Ý]?[Bœ?Ùm`?ì&|?îÛv?ÜD?;ˆ1?5X.?ÛÎÓ?é +á?M¢?}Æ?k¹C?jl ?-E#? ¤t?Á }@ãá?ãÝ?‡ÄŽ?u–©?/pE?^w›?µGª?¹S£?é–a?ïÕ}?œ5?œWX?ó»¨@{Î?«©A?ƒý›?…bÌ?‚‹>?uë+?u3¼?«“?ÿ}Ö?Ø•E>ïÊ? H¢@ Kz@ ‘M?{Î?o4ë?ŒŽI?Ô?ÀOÙ?ÒJý?åùa?÷eO?ÂÜ_?rwà?‰ÖÈ?¶ýŒ?ºYƒ?½¦å?Àû?ñ¶²?è?ò­´?ïœ.?¢´?‹¼?難@ ¸@Ý@ +4@1„?äÄ?ß’S? ?Cã?“º†?“i?Ä[ +?Ü]?Ðu?ÌÎD?É:„?¾Y?©§V?2#¬?%QN?$M£?$v?Üô_?äž¹?ù~?ñR¢?´'•?‹ýa?}Ò›?iªà?£®m@7P@t?iE}?i.ø?ê-…@‚q?)¶§:×=à[x>§ó?´@P.G@0ï >èCß>è0¶>è|>è6?¯•ÿ?Êsª? Vì?€e«?q{?l· ?³qr@<•@3ê?oÑ?I?Íl?ç6@Cä@X8?à)?­-^?‰¯R=ü[{=¥®¿?ŠX¸?Ÿr +?vÚ³?f¢®?+šq>þT³?»i?80K?`u9?žb÷?¡aC?›ˆR?¨we?wÜ€?sÓF?ÎJå?ö ?®f@ Ô…@& @-IÛ?÷;?&ö£?hþ#?óÓ€?ûÛ-?†U?”‹ >e&†<Ì:ß>¼c®?M?!²7?CoÃ?ZÓj?h¸Ð?t`??œ<\?¡ZT?9a?ƒì>îóZ?S„?lJá?ÑU?Q¸õ?6œ?{-Ý?¿]a?¾š?¥iJ?›j>çÑã>ïdé?ÃUn?Înî?`®?[Ãô?Œ~L?ŽÆ?Ó†—@,?œù>õEì>ôÅÀ>ð¾Œ? à?á +?OJ?¹ü ?¼Ý?¥ð½?–û‹>ôQv>ù>>õQï?$E@àc?÷Ûf>÷zœ?ÄÇ@"eÝ@ÓÕ@*“@?{%?„#@Âv@5°>wT>ǬF?Ń?ÆP®? w„?ÍÉ?vi,?pë?òA?qäÓ?A«5?4,¼?&‚æ?*¹ˆ?Uz?Ya+?…‚ø?†É?†€¦?—L?)yã?¾âÙ?¹ +? >?Çë>ñ¨â>‚»A>Eª >ƒoº>®q'?p%U?ƒ©Ì?Žy=?A?ÉÇ>¶’>b5@>“eo>ʱ>þÉ?û8E@ }Ù@É¿>ÑoN>û÷T?Û,?&Þú>Ñ>.U¸;e÷„@1Pm@c¨›@ +^?@ª +?7æ>Vµ>8·ó?þ ?0Ô[?’ý?¹¨¢?¢æ«?LW ?#Ÿ…<•*ý:ÊÖ‹?i ?¢<µ?k¶m?)5]?i?ù?ŸÁG?‰Ä?)É?0öH?–æÜ?š›½?:¨?² >,]o>Z(>ƒ>¨U >ùú#?0¤]?…žù?iÅí>Å8ó>ÿ Ç?”$R?‰©?¿? L:X´ý?³u?²Õ?L×?X.ë?svä?y«3?š¨$?®_?¹œÞ?¸Ð$?‹ï?\Ë—?¤’Œ?Åf„??Ý>ée=²’|>âMP?|ÓR?Q#?ày?8È?OÑö?NH?aò^?YAÉ?2Ú†?mÉ×?¼Èh?ªh˜?†Pê?‡»Ø?€?¬Àc@±?Ù¢?.°ì?Ý?uó>ùÍà>ÿWÒ?¡ >Ö0>Óµ~?Õw? Ùz? ¥>æ¤=Ÿj¬>Åj ?‰ñ¥?ƒ¼ô?”E?YÀé?-ñ?SUk?š_}?~*©?{O? } ?T.‰?§>gY¶? +Ï?§í?Î/?¿ü?¬Ÿ]?õ¥n?·\?’*?H^¹?“ñJ?RÞ;>õN?¹?'@“þ?Ýþ^?‚Ø?®Í/?ÒC?ŠŒ?%«¼>u?Š›ê?ðÇÙ?Ñ~õ?ÅW?pj‹?=ã?¹Í€@D°?Ã1k?¢øl?†?neß?Æõ?ò›1?oú ?]è?aL?f2>™O+>™Zç=±h>—TM>¶X>÷jR?Ûõ>‘®f>m×?1Ðí??Ô‹?Y*;?mTÑ?†Õ|?5¶?Nq‡?B)?€E?‚–7?ðuÀ?ùw?ÀØÓ?—#?Ť?À²9>Qî§>–˜>×·k>×:P?#$"?%Z‘?([f?K¸s?b¦?‹˜¶?†Õy?wøa?>¯m?E­?gœò?H‚x?ËÏ>òÍÚ>Æ´Þ>ß1ò?ÖÝ?+ï×?‚ܾ?•¾Ñ?¿€)?z0G=fnˆ>é@|?‚î ?•9 +?ª†Å?€(?&-ù?/«=?,üS?n[?ëä?5Rt>|4.?Ò¤?è¾Ü?ËX ?»Ïý?0>>!© ?¬qô@°É?B©—=°èò>Ä7v?7Æ?ŸbQ?Âî¬?Â÷£?¾‘é?êp?ïw?ÂÜ?¸À®?#t5?\÷?v‚?˜³k?…:Ú?ƒo·?˜¤?¸?G‡?>z#?ÅC?Â`o?Šdl?wú?R„E?Vs¼?’äV? nÕ?ñ®?Ò–ã?jm?(ƒý?г?¨e@Áø?åF?¢œ? ?Õ|?šÑi?¤ë?ÁFn?ï*?ÔÜÌ?¶ ?ÀcÌ?Åö?Âè?̸3?ƒRá?j?nùJ?‡[Ä?jaž?bÈÿ?—X½?©.?„»?tr/?3V?•è>¾ä<›M>ì¤÷?J€?€J÷?„Sï?Žtˆ?-9??.¹?EsÅ?*Œ%0?„‹g?™o?ÆàÅ?çdV@,Û@õã@%΄?ñì"?€°k?hcx?hÛæ?~+ð?„½@8!@EUU?‰†`>§ï? \"?Úß=?°˜(?œáb?ÚŒ8?äÚÛ?|cÂ?\Fp?8׈?;¹?ò•ì?êý¥?¦‰o?¨ +‚?˜UÈ?™¯ž?Ç„å?ºQ@?‹Š¾?šöv?·á¸?©jæ?……?Ý/³@<ýÿ@%ñ>@¶Þ?«2r?ƒ·>¢*=Oœ?ÛÙ?tÆî?½£+?Ý;?ÌK?ÇÊ4@†Å@«N?­M~?–ŒÖ>¶ +> ?ÙÂà?ßL’?…Wî?„uL?ó?‚+?Xõ?RU@ý@ÔÛ@CÃ@/um?Ôµ´?ŠZ=<†ŸÆ?Z„@$<@ó@=û?öÛ5?Çç?·Í[?¨YÍ?Îq?âc?ÞÌ?ÙŬ@ÓÃ@!íí@t€@@(C@2s²?»FZ?®Ï%?ÛñÊ?àü›?åK ?ì·Ð@k0?ý5Ç@ +'ä@Nö@,I@9R@&l¯@Ep#@y‚@CaZ?ǯ@4_º@ŽS‘@_z„@&C×@^(Ò@„!*@v#@hÑ%@•ŒH@¦CG@• x@ŒÏÂ@Å£@@Õ“G@òj›@õðá@¯Y@¨ u@e¹@c›ý@•,`@l”?JÑÇ?4@Ãå4@²­^@s@]-)AÒ[@éq?@fék@¤yŽA·@úÁc@ì”AyöA?ÙA @õM AGðA‹¾;An¢AIù^A|\@ûœ…A +A âA-+âAC9AÅW@÷ïÛ@¯ýØ@™7!@¼”‡@Å%Š@§ÏÓ@¥¹:@âY“@éž+@rC™@xÉ¡@†K@“*@ÅVü@É[%@áÆa@Ö¬@ƒÒ™@‰wº@’[§@Žy@y¤@‚Wï@†.ú@’ •@°I @·ÌŸ@Îy'@¸Õé@‰«@uÊQ@@!Ï@Um@x™Î@VéÑ@$4@2&@Bþ}@3U¹@$ì?øBÐ?¶?Ñ@?(p@‡h@6½R?ï÷Õ?ÂaŠ?ª8’?ëêÅ@÷|@h(?ûñ-?æ™?Ýê @*ð«@DW@_k$@e\n@+5è@S›@ @ª¥?ÚÌ+?æ?1v?‚^ƒ?ÇY>?Ý°}?è¿å?ã%‚@<Å@Ds­@wÔ@RÚ?”XE?‚|@#a—@(¯ö?ì?áÓÎ@/ÆÕ@5ƒW@Ê@»Å@ +ù@ +9¸?·?F?µßR@ïh@“@G@s@>@ @Cá@S@J£@úÙ@ -?µ j?±Ê[?Áxµ?Áœ¥@ÀÃ@»?æɯ?ãâ¦@™<@ I)@2×µ@4¥©@*˜Ì@,Àæ@‘PÒ@&Í@Ola@PÅÃ?*¥? zê?°ð›?¼Ø@É@ d®@qas@sGq@+mŠ@&ÿ“?ø€Ž?í¾ð?ÄwÛ?¿ÿþ?ø…b?ÿÕ¾?ýE.@½°?±±¸?¥vª?”(Ù?”ñj@Ýö@/z?à¤~?¿Om?ó•?~äQ?ÙF?ûkï@Aê…@U‹²@'-Ÿ@ÿ?I +F=Ù$ž?ÒpÞ@ƒ¿@!ý@5Ý?àLe?±a„?ÎF?Ü$@iÚ@*Ü?óa¥?–N•?´N›?Èj ?¶´ž?¥C›?“tÊ?ƒ3?­Ô‚?ú?×@B@T¿@.N??§¬?Ã?@}=@*@ÑÈ@!E@p<@\p|@ ©…@ ‰·?PÍ?;"‰?&+ú?'·@7KÕ@ýÚÎ? + ?8 r?S=?A•¼?R3H?â±"?äÙ@÷û@¢9?Ê_?º6»?ÕO­?ÞB:@3œ@[§­@¼©?°Ý?¨¯¥?±Œ?Ëö?ï—Ì?÷9–?ýy/?íî€?¸µF?àûp@@År@5H¬?õã?õmE?í-?óO‚0û?ÔØ@46Í@ç“?èËë@…@t0@ Š!?Ô+?Ñg~?â¶g?ß½n?s‹4?spg?­æé?¨ä×?áå?Šö-@ÂÎ@*Õ…?ø*?À??¸W„?¸f?‡Ö?âŠ?’¡”@5¢?úeØ?ŒÖã?šF?ù0y?ò´u?–~{?‘?¯?f?´®H?ŸˆW?I?Ñçä?ðuÄ?¶™€?p>?‡6?»â†? Ø@>ïÆ?&Òë@¸¯@£Ã?={×?5~¨?¤ÁØ?³:Î?ßñ"?ü,Ð?ÿÖ­@Äi?æ½Ó?®øº?Áº ?éO+?؇Ø?‚pª?…ÍY?8þ§?Z^ç@DÎ@B‚?ÉÞ4?{¥?¯FÃ?Ü1™?Ȩ«?§âõ?“ +÷>ÿÝ?êR?ß ?ÔI¬@{@L3?ˆ<`?N—&?=SU?0xì?M `?k ¢?‰Î ?¾ëR?¼.Ë?ÌÚU?ÛƒP?³C‡?²÷¼@Å@K“@ WŸ@,?ÑÆ?•›‡?¯¿w@ Q@{?†1¦?‚Sx>çlÝ>вÏ>ä­ò>ã×"?½4A@·@ Ù@‘Ê@Ãç?zWI?j‡?Z «?J·Ü?Üg÷@3¸?ñ7÷?áüº?þWC@ 8@¹?Ôþá?áGë>çG >ç9Î?ýÒÑ@ +f@ “g@nB?æl?—lï?¿Y`@B¼@ m¦@O@ï?«¾?šøÛ?~ô*?f!?`­ß?MW?IW‡?f„}?Uh =¡0_<ƒ¶A?ÈÄ?ס×?À·ü?½2?ÄÎ$?»&ç?kpø>,=Ç?¬þ%?­ +w?n5o?fùƒ?õIk@TÙ?ÄÆ9?™ ?¢Ws?—€ê?©Ò¥@ ?°?ÿbK>“J>3Œ+>Úó~>ânt>áý>è U>èHD>èhT?.{?Ø +?ŽM‡?—™f?öŸ@!@ÂÖ?í¡T?ÕÉ??¸35?¯Å¹?Éàq?Ó@Õ?×ó?Ýùš?¼r_?”æË?gŠ­;(G=)Ú|?Xx?4Ar>jŠ?>S?‘Ь?²â¸?•Z?‚¢Ü?k×^?mÙ?§‰?Ñ”0?¶ãì?Ÿ>µ?™ºU?”.s?„â÷?TÛc?L8­>ôW>ôÖû>õZ9?—ë?ßÒ3?ßé³>÷‚â?³ß@L¬ß@UØd?‡? ¬@“j@ WŽ@3¸#@,xŽ?¹ß=?Œ >ÿFg?2?„ÙÍ?€B·?+Ì?Q~³>«£ ? Z?J›?G?H€W?±©@!Ó@–Ç?ô «?œ×x?†‰è=´¸²>ãÔ?|š? ·å? +Iƒ>äQ>¬'ï>Œ¨È>kÚ? Bt?2+ù?‹ºŒ?Vß²?(ô> :ß=J]?åì>µ5>ÄóG?Íч?¬ì*?“×ê=S7Ý? .c?Ip?ïÛÓ@Þ¡?œé=Û,>h `?ÁS?ç¶>š>XÑG‘>åhÆ?„ñ?¯ƒ½?`j >ëDK?8³‚?œšµ?Žï>í¤5>ì +|>þb? Õq?‡Ê?ŠöB>´ý€=Ë1´?¤=ª@ôÆ?ãâ?´º?… =?w?$íÏ?]>Z?cœ?Œìò?‰QŸ?+¦ò?-%)>ÜK>ù c?LÒ¬?d”1>ÉK‰>Š'?‡*Ð?¼)&? ‚Î=ð“ü>‰Aó>×ÝZ?…Ð?®©½?¢ýY?—P8?n?>¶Z>¬j>Ùúi?ŸN?EÄÙ>Äpó?z=î?í‡}?Ãàö?yr?O½Ÿ?ãà? ¼?‘‹?(vî?WNµ?ˆ2?¬='?“¥`?MM?3íp?‡f?9Ÿª?›»?v¡‰?Õš?™›?B™Ä?;½È?ˆª?di?ô8£?ºÛ4?ÜÂ?0Üä?uO­?£Èé?ês??”Á§> bþ>µ÷5?/Ù“? ÓÇ>×¹>¹Áô?°?‹Úc?çpË?ÀH?‘!?ÅÊ@ FY@r?út®?‚H“?ßn@͉?ÂuÆ?‚ °?Œ¨ß?šc­?Uÿ1?9?j:?)É¿?šš¦?Õ¹§?vÚI?#¼?+´ƒ?8:?©$\?Ù•?i§¾?MA?˜a?i#?Ì?\C?^:?`Á?aÍ?|’.?£¾?¨%>ƒi3?„ÎŽ?D>óTa>¤$u?Èù?B¼>ýö?œK?*èV?ú?ÊôO?Ú ñ?³gé?³†î?Q(!?W´ò?s7M?x»?}Ô?{àV?t?;r?lôÖ?OM=®¸L>~i?¤Š,?–w¹?3/3?jÀ<@ + X?ë0£?4Ù2?Q®?‚Á‚?„õ?»î?qäÙ>±²û>™íV>ú¶>›Š?0÷j?Bqù?x˜?"t<ˆlÒ>Í£‰?yš?Gý÷?l´?Šb?Äl°?\{°>˜³>Ñ=æ?.qc?^æ³?ƒ\? fð?¬»n?M?ˆ»r?_ç?5Ì&?1;?,§…?(7?#†I?Y ?`/?%†„?VL?bæ%?€¿F?ƒ´ª?…â¾?¾L?ÌO?ÆKW?ŵ?|°Õ?fP)?Ôë?ƒf?¬As?«èð?QÆÜ?M?£z?¥¿M?¨N?°Ç?îLé?ëV½?Å_\?¼Óu?•Ô?š*¡?`?†Ùk?k‡Æ?^ƒC?Øx?0½?ˆÒé?@Ñz=Þ÷X>õ^>6gl?£ u@. U?èù“?Têo?GOî?5H¨?¾¨¨@à,?…=>‚³>rtÌ>`æN?”³³?ز“?ŽÏ?Q}N?/q4?"T? Ðv?0Ý?¯Œæ?ÆV©?->?†ò?Õ=?L?³¨?ƒêµ?Æ\?«?bo?59?cÿ?‰~Q@Ç`?öŸ5?YW?gy?PŸÊ?EDë?L:Û?j7ž?’©ˆ?Ééý@þÀ@]Ó@š@#\±@,ǽ?°S> ¼}? ?wšè?ÔXJ@S?)…"?¾‡+@@›@*˜ã@3Ã?ì´Ç?Ùs?áEÉ?Ý™Ó>ˆJ>UÊ?´a¥?º»`?„øƒ?‰–?²(%?Ãô)?ùz?Î|>ø5?&•?…·?€‡v?r?Ÿ³?×/U?Ì"Z?Ä5X?Åâ¸?Ĭ ?¾'?¶R?e±÷?aÖ@ ír@9]Á@ :@ȼ@+a@¶6?‰®Ÿ?SÏ:>°]x>Œø@/;v@5N?¾_ò?¶…(?rªœ?D²?ö‹?ã;É?…Bd?VVñ>60?^J>@# Ö?éÔñ?F™?uké?Êó?ìÖ@„Ø@,“@Í3?óò?ÇéR?ÓJª?ÛNj?ýSë@Bò@Bì@B]@Ï@#‡?GÝ?…=›?UØP?WCý?…9ì?†~´?˜wb?²Ý‘@K8ó@I\9@+ËZ@#úQ@ }¬@^@'sZ@ýH?Ö®½@XÝ@)@[ã™@’Ø@Aûy?Ç¡T?ººÚ?¼@zÞÆ@¨Ö±@‹‡½@€§:@œ´ì@¦=Ÿ@µñ +@½E¸@þÞA-¬@c?@ €?ëA‚?Ø+@Ž‚H@ŒY@& @44@–¬+@›‰‰@¶¶)@»Q|@Úëe@ËÓñ@›á@¸QF@ÿ8ö@éÄ@Ã[E@ìa²Ap™@ÿ&@ÓÕA$qA]ÌAO>AC•™A G5@̤Û@ÖÊ—@ÜJ6@²Òc@šAU@³Rè@¼Û@»½i@ºšÕ@±ý@±âI@^SH@GÛ@Ü"q@ç(ì@j±;@^|9@‘¹€@‘˜‡@œ±@£k@æ×ÿ@Üìj@‘3ö@’‘Ã@©;$@Ÿ^l@wA\@eS@Iìw@oÛ@Åsô@¯Ñ@@€^Ô@˜P@zƒ“@Xi8@)µÄ@dà?Ѹ&@½°@%"@$“j@%·E@U&?Ô;H?ÈE?¸•\@MF@$^G@$Ý@±h?áÑ…?¹2?â­,@>.@DfÐ@c#«@*d?¶|÷@ ŠR@#SV@cš´@€´¹?“ߣ>L<Ó?‹‚/?£kä?®Cy?¸œˆ@a¢@ Ô•?_L]?D'?‰˜±?—R@ ‹1@ÍÎ@Dˆ¬@F.h?g”3?2y¯@Bþk@QSŒ?Ïé ?Ä¢:@Ä’@"E1?ïQ?í(@G@Ev¡?‰o?™_?¶&½?«?û^æ?ÿ&ž=ÓV=ˆ¶`?ˆ7ê?‹®@=p@<‚Í@Gój@BÐF?H ƒ?RÉó@Aƒ&@Ar°@°Š@m_@0è¬@2"ü?î§Z?õ]¢?Ó‡4?×Õ@šÊÙ@ à@–@ Ρ?žMô?“ô >ýÃ=$t¡@eÆ@ d¬?ã«û?ê Ž@ËO@º ?v÷?kÁ}@‘@ ?…@¾C?ÿÛ·@Iø@åÙ?™Fì?‡*?†Á)?:@ÆÞ@t²?Æ|‰?³c°? ÚÀ?”z·?†‘ ?vå@KÍ@|ôÀ@l?ÏCk?LÆh>Éšø?ŽVØ?ǘ¢@ì1@*Ju@qf?ÌÙ‚?åV•?ý¢Ä?é†k?äŸd?‹¥>¬~?À¯s@7«d@2ºé@)¢9@r®?—d@ÿo@<`Ü@U³?ÓÕÂ?ò«@ö¯@Ð?ÜàÑ?êß]@ƒ@ ˜@~W'@tû?û«¤?û“¡?û?ü“¸@½õ@à@Z‚@V«©?í>è @Í\@ÿoÊ?á,?l½ñ?^…ç=¶Oï=âÂô@f.p@e¥¤?÷…²?Þ€ ?iú?9Æ[?¢oÊ?¹“y?¹ƒÞ?¹n÷é?&uV?V$?>¸j? +6ë?,¡?‚?lOQ?Ň?g™œ?ôTš?ùC}?Í*¡?Î5?•kÅ?˜HÇ?”’Ì?‹aI?]Í?Jñ@?£rn?·¾•?Ë1^?Ü?±?ÏE?»Ú&?¸±ˆ?»?¯b[?¡~?³'?ÆÛj?¾X•?ÒÊ?Š{>à4°>øš?»ð +?ÃúŒ?Êoq?DZŒ?Òè©?ÜX—@ðp@è?éór?µÁ!?ïj>ò$}?€*3@¹>?è¤"?!H?.…Ü?„Û?“ú»@ê½?ýÕ\?«õq?¢ÑÖ?n9 ?<­ë?¿t?ú:“?Ô…»?²¬Ò?Å-–?ç÷n?ÈZ¾?RÒ?[¾´?·`Â?Á<ûg?Ÿ¯×@HØû@* €><š>sq¼?ó]'?ߘõ?â~gz?tg>ëLI?>©?‹F?žr?Üjb?Ëf>)%l= ó?]>?q›l?¯NV?ÅÂ-?æ«0?üqõ?ݽ±?¯?S?“‘î?‡“?"ÎL?®ñ¯?®àÎ>Ñv`>2¥F>À–£>èÊ¢?Œ??ʬñ?ÌS­?¿‚ú?º$?( ?‘?ö¢×?íi?Ç ?» ¸?»û>?¸t@Ȳ@È@J,U?…j?0Áš?ˆBU?€ +?èþº@¿?ÃF[?šªt?U­ï>½ýJ?``@CS@ )?…0Á?‘Þ{??¦¯?>`?œnˆ?°?“°?i?”è˜?§u5?“z?f|s?ee?Ú5K?æ|Z?Ý.d?Õl^?ÄB?ÁrP?¼¦Ð?‡fg?csN?’ +Ç?›:¢?t +?g°?{Æí?–??v+\?Bû8?Ÿ1¸@Æ·@|ä@:ž@-'O?¹ì?´OØ?®i?©“£?ÁŸ?ÄkR?¡Í¢?‚Ô?•´Ÿ?É ?Ñ?ñ@*?ÿÑî?ÕìÖ?äó™?º£¦?·:™?h>±?=yH?ª@?é#Ó@a @&W[@&-Á@Ç”?ù’E:‚•<ìùþ?Ë—è?»“=?)‹>ÿB?6öÓ?hAñ?…?–®?Ý<Š:(?@²œ?ÀAz?­îr? 3?ŸÙ??µãú?–‡±>ók:?;w? A”?>…á@ñ?÷B*?á’?Í<>…`>¶O?š2º?¥°?„$Ì?›{@w@¸‚?¦ñA?Ê›@„š@£€>¾*J?Ř?½¹r?¾Ên?¸ ý?e§>§˜>¸òA?ÛŸ>µ<º=àNŠ=[¸Ù<‰o?Kæ­? /Í?Så.??.£=ejOÒè>¢å?‡}T?…ì?{‹ ?l²Ý?]¬é?Sw?ÐJ?/ˆ{?1a? *?§Ü?»c7?—ÖJ?uI-?S >í>ñâa?Òb_?.>Ÿ°á=)=|?/"_?ÌD>Ô4î?—ã%?´QG?œõ‘?zMÉ?Sîp? +?È6>çÑ>â,c>âòÌ>ã·™?'Û¸?~Ã>?v[!?ǧ>ýú±<™—;© @?ˆ*G?¯­?ã£=Î̪>Ÿ„?œµ?)ûd?:¦'?+Ðí>_0¾>G=?”è?¡m?#¼÷>ñQƒ>œ Þ>æ=n`­<+h=ß=5@¼=½Ip><Ú>¢Ý?ÊX?÷>öŒ¶>újì>ü¡G>äÇÝ>Ìã4>´ý >ðZ+>ù d?+ à?'‰E?¿[ ?çw ?™?}¦H?qZ>Ýñ]>’??B>?¤Ò6?Â:l?Öð?‚â4>ùm×>…“>4- >¤c$>-½>lñ?* £?šg?_“>ÿf¨>˜<<²u?pÒR@ðÎ?­Jò=ä•œ?Kx?ì¡X?ÑÒ¯?¦ø‹?¤6I?¡y¡?•Iè?Šˆð?ƒO?m ?&…>·?ÁÞ? ˜8?t²? õ?‹áÁ?ÿƒÛ?šˆ&=ËÕ? TÎ?™(?cUR>½O>Š>6œÉ>í|’?J©Û? Si>†Ôœ?Ÿ @ûh@ºB@¨¹?Ê%?Û!?–_h?¯k9?;&G=?R;{?Ä$ý?~r¸?ö>ª^ß>!Èv>/q?,ÐA?‚&?‚'Þ?‚->¹åü?TO?Šï?šþ?˜m9?PD?$cé<ù>óh/>ý’?h¥¨?‚cC?‡†?‹!Á? êy>ÍÔ¢?4±ô?M‚a>ÇK>>s>ÆZ">åáà>“ˆ§>|o£?¹O?ÃÈ>?œ|u?˜:R?‚©Ë?Ñk=çü·=äjê?(`¨?Z?™¥>òv¤<+k>a?ú%?×>fåB?ÄK?¸Ó?‚°õ?˜1-?õÇ–?Ä >Éö?‚¾:?RäH>œªf>‘>+Õ±> ù?$Q¼?\º ?¬&’?‡:ÿ?Ù¾>þ¨Y>û!@?Ÿ?û??sÀ‰?µìˆ?…àU?2yš?C_ñ?CÇ=>Ø‘K>)gæ?&¯,?ƒË?ˆó»?˜)n?&N/>Œ.B?Óß?RbA?v.?ƒÔ?ƒ"ô?ƒ$Ô?ó6\@´Ý?«1¨?ƒ3ƒ?'(? [ë?¬Ä?ÂÚ7?Ä^?ÄîŸ?Äöd?ÄüÀ?裮?çr½?61k?+«µ?íYû?îï?Ñ×?ÇG–?BG«?L|?ƒ€?„ˆ(?’ˆÿ?¡Wv?ÚEù?´1²>§n>ÀÞ?­s{?‹·¶>5` +?NG#@÷?Ûˆ/<öŽ@?C|?²•N?•ò?\y+?Å?Àµú?ÍjU?ÌÚv?˜È·?W½v?¤¦7?ÙZF?Xqj>ƒ…±?c¥„?˜66?m2Ê?Wo¦?{p?Š@'?†ù?„"â?HÆ?1 ?¼ÖÌ?Í(Ä?¾ª^?ÁiÕ?ÅRë?Ác×=Ɉl>!Re?í~U?Öòå=ÖË>ÄJ?´Ô ?Ä(ê@%?þ‹š?n~â?g‚?Þt?_Ð-?‰z?íA?:%?RBã?ƒ£v?ºJ¨?÷+ò?®ÙË?R?h?såZ?„´>ãšß=$?3x?…ù?¯sÖ?ºª)?õ@@ÑÚ?N(:?¿?>ºÄ?Ia@?¥µn?¯Ê@?ÕÖÚ?Ƚ?îz?¾ñ?„ôh?„½ ?|Ãg?›bï@n,@Cã?‡…|?…’S?hÉ?RB!?‹Š?° f@"!y?õ˜G?‘… ?M +Æ?~?Y$?ŠE>㤩=–î:?2Ó8?‡<®?ANZ?4H?soš?…•¨?Î7°?Õ& ?”—?‰÷Í@yb@ .@;@R@&‹±@Ð?܃“?Л>?¥ö?š„c?…BÈ?²–†@ "€?ÈÂì?ï?œ]±@€°?ËbÏ?ä“?sdB?V&R?HÄ™?>å?Çé?÷ÍÇ@p­@@g?ê)?ã.÷?jv5?DxÞ?Ÿƒá?£ë?˜ÎÕ?‘Ç$?td? ¼?Û¼Í?ÛÕ=?çS?ù|º@1(ê@9¤@G½û@G»¢@G¶ý@Ã=]ÿ ? Ù?˜ÿÙ@_"¼@¿lq@h¯d?Ç›*?Ïa'?Ï^n@MÍD@‡žC@{á@mɤ@šX@¦7é@ž¡@›)ô@Ôߥ@ÞTÒ@«.@¦‹@]èn@P&Ò@~ Ñ@xfÿ@N^æ@V4@¥üu@±\€@èL²@ãÞ“@׫ô@ÚiM@à;×AòPA$Ü­AžYA Ï@ûµ§@Û·@âR@åykAÒA/ë9A;L¤AAîûAè@È5y@ξï@Ò9dA5fA ºAZ@ð}@Ýö0@Ùi§@‘«@„,²@“‰Â@”ûp@´DC@¸U@¡wã@ŸØ@ÌKÀ@Çö²@¡IÕ@§%@æÖ:@àM_@µM@¬4—@ƒˆ@Šœ@›–†@‡Îu@mC@7Âì@š)G@‡~@.›·@n(™@¶ ‚@‘ãä@(½q@2…@5ŒM@7I,@AO@4ƒâ@$ò@`›?ÄÒÃ?ÄÆš?Ľ…@Ð$@Ú’@.\’@:H†@Yç,@h6Ð@j—?èV\@êœ@6üé@s?Èý?ÂÑI?Äã?Ýîø?Ü>? ë ?ê–@!|¢@:ð©?+Û=Ì´ @ZÜ@´<@ŠWP@‡Á÷@pΊ@fŽ@$yÏ@n|@1Å@5¶P?ÒzÆ?½B?æ|?òæÔ?ÊZ?±?èÙÓ?òñ?¬ƒ/?«ºø@… +¶@ˆ¿Þ?™”)?.Q@9µ¸@CT ?Ãœd?Â|? ¢ ??ÀÞ?8B@ #à@ ¼Ì@.>@/ü?_¿e?]´@£@‘ç?ªáU?¶h@1©¶@/ïd?31?šæÅ?°ç?«@€@Kì–@B«Ú@+’°@/-ë@Yô@h?ºàw?¼5?ÂvN?Æšç?ÀÖ@?ÀZ¶@cÔ%@fôK?ã˪?˲Ý@/)(@4Õ¸H^>$“û?.€B?Žû?’ð?ˆç?·¢?üÒ`?Îw!?€Ym?™v›?½]?²`i?Z€?žÓ? -?y"?Ñ°§?éZ@*Q@#Ë»?ÛÍ”?Üþ?Æ>y?Í E@ò@ ”Ù@›¡6@œì4@6I +@)$?Ìív?¼ ·?ïž?òv\?Óëì?Óßñ@QÑ@bÔ?ä×.?»ˆª?®Ø?£Pñ?îÒh@Ϲ@@C@&õ@0b_@D@@*¯U?ù,@C¨@š@ Z?ºœ/?ækÛ@W[(@FèB?í?é%?þF2?ðF¯@:î@Bå@8£ @3Í@ /»?ø]N?Üh?Ó + ?ÀÖ²?¹oÚ?o¶Q?ªû?8k?w³?‘H¨?þy?ö´?ïíÊ?È|?d.F?iè?‰ãô?ŒÀ?š–?‘Œ?u°ñ?uš?¸Ja?Á=@@dj@Of?¿‰ë?©‹Ð?^ã?Hx?δK@Ã[?Åó=¶Ä®? ä´?­L[?„y„>¾ŠO?Î.? ÝÕ? ?<C?Dú?¾°t?Ð3?˜bï?„•?Û?è®B?¬«?tç(?q¤Õ?c ‚?Š˜?ÃG£?ºPH?Œò?ƒó·?K*Ž?7âÉ?Þ¼³?ð«?oh?MiL?ÎL—?ð´.@̯@-7 ?Ï9À>ý]b?ê?)+?GŠ„?oÆ#?oª…?o‰÷?oml?“ ?–ê?%bP?öñ?§@?л‰?¦˜?~ôÍ?Žû–?®hO?´5Ì?Ç>?Ò¯?½¬>?¯žú?b„ž?†%Ö?Éùñ?Ïñk@ 8Î@¶þ?úÖä?Ì˃?š ?€?òØ>ó’ >äƪ>iö>ˆÕÜ?Ó™?Ü?ªën?™ºd?˜È®?ãâ?„µ?…‡+?‘i ?¢‰?¥¯é?©KM?¬ë ?pÄ{?jGú?) +Ü?#µ?•œv?Âd\?ʽq?Ï!É?¦*’>ÂE¯>ˇ{?®ðT?®Ý^?Ó4ê?Þ¿º@.¤@ 3?Û“¶?®sƒ?ŸW?…ì?€Av?'>?/C?ÞeV?õ ã?àv?Û@ô@m @Ì?ò*=?¿Aæ?§$W=°º>"R×?­u-?­j?u?q«Ÿ?…N?…mþ?<#>™FÕ?3¹5@XÏ@-Š@Rå@F5?Ey>æž?Å“†@ 8?¬C7?Pœ?ƒ9@Á@?f|É?f{S?«wn?µÒ +?Ù*½?æ‚—?à‹?ϬX?ää@0Ê@ +ƒD>æ©Å>æº4? Y:?¬?ÏΗ?ÓÓe?™ÞÓ?gº?—.?È™Ò?ö?k²]?V#F?ç”Ò?ç­ +?µ? ?­íž?³ëš?ºø¶@ œ@/¥g@ ?µ²4?г;@yø@¸? +•_>ñß9??.Ï?->êcl?S-,?“ª?b?‹?©•§?ã¸ø?Ïé>æ>ÔjÅ?@´?`ø?ض„?Ó+Í?pmK?é ?Í$>«çÎ?c½Å?¯ u?«Œq?´žã?‹§Ñ?)Ö­?^bT?ŽÌ?s?,?ó?o°ñ@Nc?ú¾'>È>u?1?÷?§Ð?¬‘J?"ß¡?~N?7_×?09u?õ>?õ”‘?û>ƒ?øü?¹Ãx?©. ?¶Óœ?›g÷>kÔy>Žo?‚+?„Âñ?Œ ?^#Ž>F t>¬qG?ä„>æê~>Ö@ÿ>ûÐé?|n?Zñ.?…¡>µ„>pâ‚>p˜i>HÅ™>ÕQr>õw?Ïv>Á5¬>güî?OQ?HÌ ?s?ƒŸ?^Y.?-Ež<:-?{•j?×òx?ØóÍ?È7 ?*uv>èÑb>Ø+§?»?¦ü?Ma=hŽ?#¬}?$¬¡?e€?–Ÿ|?¥6 +?‹à ?yЫ?B"ò>!ih>;å,>á4–>â*ô>âñb>ã¸>™-˜=ìˆE>‡•ü?UFÞ?XK="YÈ;$e=•Ï|>!#w=¨ºT>²ìó?FJ?Lœî¾×>ïG?A)„?J¨ž>ÚvÙ>¾M ?tÃX?¡µÈ?S•%>ò’~>é,>ݯo>ÑÙ¢>Æ>Ê¿Ï>õÉ«? +>‹?Fˆ€?M™?›S8?™‘ò?¯n[?©¥?P×??–?—Ò ?¥«æ>ŠÔG=¦o>Ð ?F?T“$?lüI?âå>Ç7d?c?$„(?E²ì?bÇ›? d~>b°?ðD?TLÉ?GIa?TÌ9?IL7?BÞÒ?ˆý@<É?Ç•? NÔ?>õu@?’í;@0"@› @ù?ÖY?võÕ?‹°?™ð{?ŽG +?};?8Ø>“O?¶9@Õ?Ê1êUÍ>ÿÎv?›?‹c?Ï;?•Ìñ?) {?rm?¦vþ?Kj>{±?y?Ü´ö?­{R?ÌÈ?q‹?dì¢??`‹? Y?A'¿?pÓŒ?7/C?çÞ?N#L?wÀ>ÁÞ>׆ú?-áÁ?ŽÌ?¨5K?{4?E$V?¸Šç?ß??¸šú?¬Ò?a¾$?>ÂE?)ß? t>ßÀ=èôŽ=:±Z¢´ˆ>Õc?Sžî?j5^?ž1¯?Ÿë?ÿ÷~?ûê?4*À?Ñ?‚Á ?D½?‡s¿?–ó?sû¯?‚{¾?–B}?’+'?=Éè?=*E?°?«ëi? ·X?"â?Â#%?µ‹µ?Œá5?•¹~?¦9?œ-]?‘q!?š+?°w?¼Æ²?í‘?Ãr?ä?)à:?‚½Î?Z'#>Õʲ? ± ?Z¾7?cÎë?‚Îå?IÙ>Óe÷>ÜÎz>æ:ð>™ýŸ=Kw[>òIž?€Üö? Ã?Ä_æ?Lp'=µ¤œ>Á  ?"õ”?2·/?3l´>ùñ>Ê"õ>±¾y>Ž†k?ÞË?:6!?]½¶?lã6?{ë¹?ƒ?‘Ná?”p+?†áÑ?ƒ*ð?ƒ/?ƒ4 ?|ýy?2Ù?… ?„Ãb?‡Ù?‰M´?/¼?-xP@-@ª%?¦çä?ŸO?®³?µ7^?ß|0?Ü:`?‡_?‚îâ?ƒš?|éØ?7{?f7?ñž&?Ë<>Âým? `?hzV?‚•?½[5?°­?‹&£?0œC9Œêó=á4> +"8>"¤n>"äH?v«Ò?ê{?Æ4Ñ?©îõ?ßmÄ@¿^?¶òf?ƒôô?i~å?Joò?kí?°U?I,=? >Êís>¤¿z?_Í?„#t?¯NÎ?ºj?ål¥?ñü ?#0»??1?ÀS?Æl?ºO?´Ü6?Îïy?ÂÍÆ>Õ–“>åù6?Hû'? ‹ö@G‡]@(æõ?žQØ?¼Ù?Lžæ?2E?Š”? +HQ?Šm?H‘?f¼â?‚L-?¡t}?rù·?@5?Mö¿?„´7?IÝ"?Üõ?¢øý?Ê +]?˜,V?ˆK3?z?”|®?¦ +¯?¢Ìœ?v:?hÍX?ƒ’ ?„æÄ?ÈYJ?ÌÈÏ?SYW?Fs¹>ü‹ë?-ŠË?Çyó?ÃÊ?»h?0>UA?(vè?I¬›?…,?Æ$Ñ@4[@ÌÑ@&`ƒ?Å=? =?DÃ?ÃA²?V•M>çH˜?Û(@ [Z?¶Ìë?“¶O?ÃŒM?Éo@@%ô @-ÛŒ?Š#š?~8ù?…r?‹&”@;¶@3ì@½w@[ã@@@%•?èn&?×ê\?ž½q?ÈùÑ@³»@0@Õ@å@u¥?æç?ÂÁX@;„@0N@¾]?áR×?ûл@C'@@›@A?ÕK¦?Çß?+|š?=Å?¼nŠ?ÇÙ‡?Ï—å?Ôô?ÇÒa?Ëšé?õÏ@{@&}†@ºê?‘)N?̯z@@>@EM‘@K@H²‰@BÌ¿@0Ø4@ví@u.9@«„D@EèO?“©³?‚w?v|@aø+@™âZ@Šï@…K@—Pû@‘Ü@—Ú*@˜†@¹ÊŽ@Áµ;@£@ ºK@Ø”@Å64@–÷_@¯Û@Òté@Íjr@¥ýÍ@²­@çÐ@àW@ÇÕü@Í»@Ùr0@ä @ü‰ +@ýŠI@üp@ä-@ÁŇ@ñ€A³A)/AX/ACöuA_rA:Ô@êv@×7?@Ïž¼AŒ£A/{·AzAÿÃ@èÀ?@ÙÔ{@”¶@‡j~@¡@¤¨¬@¥^e@¥Û-@´@³#W@žŸ@žÕ"@ŠôQ@‘’1@Ã+@Ä#¯@À¹@±;×@^Éh@Z`@Uj›@Hø@aƒ@=ƒ@„ýæ@u<@ZGt@\8@^Z@$Ë?K~@·Ò@šÒÚ@Vi??Å4@3k@ÅŸ@MÆ @‹m@H¸@y@<ôµ@Uý”@‚g\@ã@ƒ¹ƒ@}@9hê@0t?´>¨?„•@4Ë•@_±@dí?ľ@&0í@?ªG?úw®?ÑÌý@&ª@°u?è£"?Ò4½@hç@éË?þ€È?à~@&ÈB@0âs@‚•@„x3?¥7?‹+?©é(?°8 ?ôž>?ñÒp@B×@à?Þ~Z?Õï”?µç ?°q@6й@=Xw?å<¡?Þ£¯>è·>h”?É]½?ÆÝ2?½~?Á#H?ú”?ñ½6?ýÛ?“¸?aoƒ?xÉ3?àËï?ßCò@7@1Á?Úx?Ò@¬.@"ß©@EÇ@ýÊÏ?›“?ÞŽà?Ýe?Ø¢?Ÿ^^?RqÇ?û%?ÝiÛ?ÑD°?½»¨?á}‹@ê ?í$ž?¾Ž“?ПŽ?÷’@x¢@›Í@¤~@6™%@#‡?眛@Ìb@†Í@mÅN?œ?ž¸à?˜¬F?’—…>ûSƒ>û=‚@vF@e @Wbƒ@]L÷?è,Ù?ņå?ñ_?ú•H?öC@?ò "?³¢]?¤n}?–†Î?}?«Ì?»dª@¿@(± @]@U@í@Öà@«@ɾ@w@&ìð@P/?¯ï?©Â‚?|¿–?ˆ\?‡--?I?ÐCÌ?ÕÄ«@r]@ÿ5@eÕ3@kRC@k˜@ +Å)?ÿƨ?÷ml?ûY?õ2?ÆVÒ?¦$K@ž@eð¡@^tƒ@S¿·@(bÇ?¼ª?º¦Ö?¯Ä?—®L?‹W?Q‡?$ñ?&kI>ÓCÄ>ê®ô?°?®û®@B[@.{­?Ê@ó?–üZ?º÷-?È?Ýô(?òUÄ@\†@+ð?ãÛº?!Ws?0÷l?4{?/Â?Q¥?G›9¹p?Œ¡á?ƒŠ?Œe?ŠÞ’?¬xP?¶µ?ŒÝ‰?r‘~?rvº?rY?«¯Ç?âêV?à‹&?ä—?ÍMg??”Hl?µd?µ +?fÏ?XþS>¾u@>ª_á?µË)?å˜?Çn}?´Uò?3O®¬lã?Z?†(Û?«KÇ?ÂâÉ?[¼<Ÿœã?S³n@*aê@µ§?¾¦?—F?ñ^ ?ÜqŽ@²;@{Ñ@ýX@—±?äR?¥pÀ?ŸS?˜¸?ˆŽR?rZv?ƒîç@E?úŒj@!y!@ ¼$?“s?RØ?”¹à?²œ‰?}•>ëg?úW?jÏ‹?n¹\?Ó™?t¹v>úx(>ü+Ž>ð9a>êÖ?´Z?ýrD?Óä?ª¿é?¯eP?¤bì?¡A +?ÏHq?dž×?‹YS?{mH?ÈÃj?ëef@EÌ@öU@? ?ëÒí?Ö ?™úÍ?Ž'?™Âµ?Š-Â?~2P?‰ÁF?éˆe@Ë?ØóÚ?n\?€EZ?Š ¡?ƒa?ùvº?ñ2o?  &?†¡ ?¸ '?ÏÔg?Ñb°?ÝóŽ?È)?o—»?ŒÐ<@4SŸ@8Š?„ì“?>u±?Ÿ=¥?ÉHi?¯ä¤?‡’ ?u—Ñ?8ÅŠ?&Å4?f{ë?f{¬@IÜê@N0¼?Ùbï?˜‰€?œ¨î?¨.v?¯5?§ºó?£×>æ§Z>渱>ðp±>ñ\?˜i5?·•?ñú@½M?Ó$¯?16?¨‰s@Ê@ÞI?ñ²?ìe(?*Iþ??ªƒ?+PW?¥ªo@#p?â<Ï?h¿‰?ˆ=´?Úqo?ÊŸ$?¡¬Í?­5K?¥ì@?›Ï>?fli?Bì?U©,?jÞìh´>ý·/?ÄÃÑ?´¬°?¾—?ж"?Äè¸?É{ï?þK‘@/¼?Á +è?uz¥?€£Ú?†”æ?›Ò?¤[ž?Œ l?r”?{Pf?”§ü?ÏP>ÿ*¶?;ËL?•üe?ƒºÌ?v‹S?}+?Ÿúñ?¥S†?Ÿ÷„?©æd?|ºJ?‰Lw?Ç.r?Ë K?­à??»wô?É3Ú?ÉU·?e€?… p?ÀdÌ?áÞ@)w@0¯?Á+¶?i€ò>¢ÀG>Gû[>•±š?¹>Žÿ>†»6=‚Ï?6Œ•?!ƒð=Οh='šì<8ÿ¦<çc>âC>‚_ë>£Rf>·§6=Ñoˆ>`½›? +æP?$_ð?YÌy?}Ž?w Z>Ë·Q?ž\?ú½²?ìÊ;‰ñX=²ì>/hx>lÇl?ý?@æ?À/?˜†z?K  = ?g¬ì?\'ú?³ï>ã³È?3´?^>û¤$>ÄÌ>Þ—\?c&?eŽe?ZÃz?Oä?<Ó>·a(?FÀe?ž8?E?m›C?[ûÚ>>ô3?{+¢?iC×>^dU=Ì•þ<ª5¬>žÉT>ö4Ê?²ÞŽ@ v4?ϱÔ?]4?Wâp?R+\?U¿˜?v„?~V-?™·¬?œßG?ª™í?´f?§#Ä?©å ?&_Í?ª3?¦e?÷H?£8Ì?¹ÃÝ?Š§™?{no>©-=З0>?>ÕÈ?}?K‹?£’?ÁkŠ?›9>?’÷H?RÓË>þB=>¬¬>rX?P„Ž?µå ?»Ýå?¿ˆ–?¿n?»º?¢X?3´?¸¢Ö?é¸1?Ì ?™iG?‹Vñ?€tF?H5”?–>û8 >ÞP ?Yun?¿ !?Ïød?à’Á?¬ã˜?U¾e? ç=±d¥<è?2;úý>‚!v?N ?5º\?l>‚? -¯?Òð¯?–LÔ?-íB?tR¸?:×?^0?ªX?ˆ³T?Π‘?´69?–Ü%?`|?!Pù?HÁ™?nññ>Û\©=#ìþ?&e?‚ ?69®? ™>TÖØ?H–è?’[V?—J_?˜?f?˜¤?œØ¬?ŸqÓ?¢?½³­?Ì>?ƒ,:?VŒ`>¤ý.>å)?#ŒÒ?Q‡¢?†~Ÿ?Š1?#=?œ=Äþ7=ˆ< >×hs>åP­>C{{>N&E?‡ÝÜ?”OH?¥€€?³’ä?†½?‚z?{?ƒYÈ?{eÈŠ‰>ṇ@ +9ñ@½?–±?•*Œ?‘µ?¡Ä?zª?›û?‚Ï1?tÍB? ä•?(©?ŒQ?ŒL?‚§}?††Ï?•À?’zC?ˆîž?—8d?§oè?K?E†æ?6öà?”õ?a…¼?­¦ü?žä¨?‚Ë_?4ÃÏ>QL³=ÉÇ$>÷<ì?†§?Àõ…@\“?£¨¼?†p?D×f?Z’š?0V?¥å?«b°?°^Ö?;Åà>£G>ßBÁ?Þ?‚eß?¤ûÂ?}6›?g: ?’†›?™…?›4õ? ýB?¯\?«?‰—?ƒ0‰?"ÉU? ŸM?êOÊ@1ë?.¿Ö?$Å=Á‡Ñ=ŸNÆ>ìå?ï]?FÖû?Qr#?ƒbˆ?Šö?í ?ç=t?Å,?´5¯? +Þ)?/÷—?ž,?¨¹°?Ûm­?°U;>/W?\M<@$‰ @ þú?•-‡?µ€?þ¿?ºþî?­_>ûÄy>òóÃ?ÖÝ @E*–@æ€?Ó¾µ?ijì?³f?¡‚ä?< ?‘`?ƒñä?–ö>?£že?níè??÷>Öu >¡¹x?:o?]¼ç?Ÿ't?¥ÏŒ?ˆü?„(Ñ?$¯ß?kH?&Hü?¶¼?á?‚>¨=¤’d>I~?Œj?˜×O?äG€?Í6S?gÌé?œžÆ@#²@Ùâ?­º?¶ñ?Íäè?ÊjÆ?ÃÀš?•è?(J ?Õt@=u+?éeQ?+j]?µ_$@ªŒ?À(í?„¯¨?¯Kê?Ç1@ õÎ@!±@?†[? +{ç?Ï®?$Þ?´6©?Ç=´?8K!?$vB@ŒS@L‰?1p?:Áª?„ì—?‡{?ŽK¿?…|4?ˆçz?–&?®g=?†<>µm¹?n?—j›?•H£?“#/?âBÓ@*Aï@'l@ àÊ@6ì^@G}¬?ÆF’??x?\=©?z#?a¾?h-1?Ž<?•Ø]@#AB@2Î @1Ü@3!Æ?Ó¢?N2U?}çB?¢.¥@¼I@G†G@ò]?‰²~?˜¨?¨@?7#>ÐÈ`@Œ|@O'.?­x?ƒ”¼?m4ë?m ±?VÏÄ?Mó¼?à¤y?çáØ?üÜN?ó: ?ágÂ?á£ó?ò^^@?@.õÄ@%¯µ@†Å@Ë¿@ U4@/@!@ƒ}‘@„é@x_ @c©7@\­…@ZÌå@éa?…°?¸I?Óky@š.£@Ìáô@˜ã^@„ÿ4@Š v@ŒÃý@UÇè@I¯}@‡¤g@‹’@Èp]@Ç¥Ÿ@¤Â;@  @W@@d‰@¼VÅ@·×£@¤5€@®þÂ@Øf£@ß÷´@÷ š@ñ@Î@æ†AÏÄA$ztAC@ÁÔ0@¹ÿû@¯‹c@Îåš@ðâ A +A™@A?ÃA[;ÞA¥i@²ÐP@Ó€ñ@ÜøÒ@ó“‘@ÿÊ @øõf@òÂ@°/€@ ?M@ \@¡¦ê@ŸÕ—@š¿ê@³Ké@µÒ@‡ºû@†åü@S;@#{7@S?ë@[ #@…'¦@†Zh@„Ù@‚žä@`?N@Wt®@4(.@F§­@u¥Z@”@”ç_@ŒY @fÓ?@ˆ\ö@«¢˜@‰g®@#Ô@ þò@$<´@×t?ÁL[@]É@&-y@¸q@ ‚@9¨@P×@0U@L¨@NRÞ@Sü–@`²w@e+@mßb@mýú@23(@Ô@NÕ@id¦@fL?Ä I?Ãþ?Ãðe@yT@ Ðë@‚ÖÊ@”$ô@N¿@>6â@|õ@U >Ä@=Ì™?ït[@¢Œ?ÖD?ßÝ÷?~Q?°?§©K?¬wò?|Õ¶?‡šŸ@!íd@#@â@¥•@ËÒ@°B?ÃT€?Âp¼@mu@ §®?µó?¹µ|@ '@¢±? ˆð?:?Hr?!ý3?»m?½~@$üJ@¥¼?¡ye?ªpœ@ W@#3±@ ½#@ @ñ @{$@iÆ›@oˆ@ƒe@ë®@ íN@pØ@ ¶@ «ƒ@|ÑZ@‚œÏ?½ðÊ?½m?‚"‚?ˆËs?ÌI2?Õï?ž²¡?£[v>2.C>y?œM?ªÂÍ?Š¨©?Ž¡q@a=„@p!ø@z*@ ¼µ@>¯@N¡š?ÑÕ?­DN?צ‚?ä¦??س?϶å?óï ?þº@º@"&?@Iÿ/@T@ ¡–?Ú_ã@¾@¯y?¢ðv?&3n?åy?¬õÉ?ÜÓw?ýA@ Ø@a?ò¯ñ?½öm?Œ_I?<6Ý?ŒnK?½·*@Š5@T1N@@}Ï@UŒ@Éè?ü}ë?ܲ{?›SÑ?·{å?ø¤§@ji@u‰@‚F@V5î@K×?žN{?§#@&?þ)Ð?)š±?$„?À=ö?µ¸1?Ie¬?1ñ‹@(š@8˜µ?Ú_Y?¾:@R¬@kaX?®;•?Ë ?\Ô?z ƒ?¾+Ÿ?âCë?î˳?ù­´?¸œÔ?l¦ä?ËH4@Õ¬@4@ZN@^XX@e]@0dÌ?c®?3;?º;H?Îá-@/É@%f=?º.þ?ºˆ?­HÃ?µ¤@òá@ùD@xh@ =?ýj?÷o]@+ð@/d“@j@:ß?õuE?Ôxî?æí­?óÒS?õó…?ómF@ û@+s$@È>?›Bž?­LY@µÛ@8µ@ aö@Ž£@›”@Ì0?“ݾ?t+¼?æÀë@¤u@ û½@®è?à¼7?µ#Ä?õº¸@œÕ@M@‚?óm.?Ô=ƒ?¸¶æ?GÛ´?-Iè2?¥?5@'>L@8ø?³ÐÍ?³¿?³¥?³Ž?°Sû?¶ú¬?ÀYÆ?·Šú?²fV?³ Ç?ì9»@ F@?ÙU?tXá?Oª´?/…?v†a?áC?ÞÌÃ@20@Õà?º„L?²”@ˆý@7J@ ì2@‘Y@ws@-;@! + ?î½÷?㇢?¼I?Ã`Ü?Ö”j?áôF?»Gù?¤® ?„?kE!?`4O?H r?IA?jÍ{?°™?ÓÖ?áÛ¢?r‡¹?`€d? Fä>êÖ?Á?FŸz?‘H?²Ô?®ŒR?ºµ?Í@Ø@!{O@“?Ûñ?Ü„?“×ê?uFÔ?óѶ@(û„@Ï?û%?ôÒ/?ÈÈû?Ì­@'Ù”@$|?0Ìë>7½^?¸za@Ë?×ÅØ?g…w?Hû?­‰z?°½ë?û¬?ÿ»Å?Ò™ ?θ?Ý¥n?îµA?à?½ºD?ï±:@HE†@=oÉ@,¤@F¨Ã>>‡.e?y|š?Æ?Ñã^?ÉC?×¾@9{@¢·@"@ ÿˆ@WŠ@þó?qV>è)2?V8à?•®ú?|'õ?9¡Â?€E‘@ ì2@l<Ü}R<Âß?™v·?¯~~?…ÀÂ?jjc?j¥=?jàÿ?–cÁ?ÊTÜ?ÆÎ"?«(?¦?e#?\»-?“;?ž¹ ?u’&?mñç?nK?nœg?™‚‡?­T@2ƒ¸@dN@@! Ù?Ò{?šj¤?XhÔ?žt?¤Üß?‚ݦ>È>ìÒß?µ0Ã?¤z2?‡|•?›B\?év?Ëbs?Füª?NþH?7}?p'?º(b?¯/B?.j ?LEŸ?|¬¡?qo'?Š£?1C ?C?7®E?ÀïJ?á½÷@(¡ž@"Ù¡@!Õ?ÖÇ5? +«>À®@>V9M>¬—?ÁÉ>"—“>…|*>†„×?TÖ?Y&>ä?–?äÃ? U>êA‘>Ë•o>¬_> ë>Í,'>£U>î X?BÁ?Ám>‘oç>$Uä>iÕt>}ä?Ç +?Ë&D?°Ir?”=£&0?)q>7@k§—@h ³@ãj?¦ƒe?UE³=jó†?[_õ?h|ç>Ê´>í‹>õ©›?*” ? +–d> .“>Vë>û—I>ì¹=Ö í=ØÍ‚=Ë=ÏЀ?JM?‰u?V×à>Ëé>ç"~>î»ö>ÿ +?®!£?·¶?ú™>ñT_=Ön‚?¨Ë?qeO?|1Ô?Š•?2ü>9ÏV>¶Z?]2?†a>¾×Ž?¼´?wO?}™m?‹¸G?‚ !®=Þ3¾=L?PÃ?12&?(ê¤?/ôB?¨?Ú®Æ?Qþâ>W3&>öŽL?)_u?C³?_ù?sAÜ? ø?¡ˆ?¿Ô?;¦ð=Lôt?V¥?€?…›)?Â?Eá>瀋?h3Ñ?§¸?ièW?—L?[ ?œÂã?^ø’?Ôo?6È?>7r>êß©=µÉù?/Ø?†ø? c<Æ0>€p!?P?{7?·!Ë?‡r?C0Ú>ëä>/ >íë?89?šQ?ÁM¡?ºÅ?·@Æ?’gê?‚sü?^{ÿ?C[?¥i>سï>ãW'>íòò?Þ{K@ ú“?™~È?Š?BÄÈ?Yx(>ñ~Ö>¾§o?0mÊ?V…t?¸þ¿?ÏÃf?¯¾ì?£Ø\?cí?Ks"?¨?@O?Eô?Ka>> '?›DÑ?»bâ? ?x{Ç?ó^«?ûë?ˆð5?uèe?¢\^?žDÒ>N>‹’N?˜‡a?–Öx?ªB'?¨C=?ˆ÷?‚+½?†Ûh?‹©X?‚…@?õ@&Ž€@ ÌØ>ûÑ)>àÄá?JÐ?ÇT>í$H??ƒÅ?Tš¿=¢=-ê>¦.>Ñ?<…?„{¦@zÆ?ψÄ?²?"4?sAˆ?T&¯?¼>Óè>]êC>ßàO?Wƒ=?\>Š?`ù;?e±-?jl%?)‘>Ž”e?N?»Ñ…?>ë=µ€> ?À?å“? 23?}Ï?hÙ-?‘Þ?m?Q.x>Õ"‚>Afˆ?œc?Ôi‰?RÌ«?¨?Súu?\mC?†è?–±á?JðK?'ô0?þ¢i@Ï?²©@?•Ò*?rú?sZý?|q’?ƒ]u?»|J?»2M?¯åú?¨Ìm>Û´Ÿ>ÏÊ@?\-? +d£?ƒc ?ƒ\ ?(H?•]°?¡ ?Ÿfô?|ì£?7:?û—k?õ2µ?ðhz?ÖYE?ƒ–„?¯y@Ó„@ ëû@¨»?Ü™ã?“?†›T?‚Ð|?kò?~q|?ÈÄv@<¬@×î?úI?Á8`?•©‰?€3o?[j•?uƶ?ƒñm?œ¦´?¦ó¯?«Ç?„·?lc¶?QÆ°?6È×?/É ?Ù‹(?öÄË?“ ?„)à?`GÌ?ej^?ü„@­æ=¸a“=¹/?¾U?¨/=ä¯ð>’c·?›\è?‘8"?$Ä?9 ’=<Œ²,?›~?º/p?BU\?0&E?kF‡?koŸ@ +ìÏ@ òø?Èø?½¤›?„êš?‚&%?qÙw?_…>Š)œ?Uy +@&<À@ Ýæ?œ]Š?¢ÉÍ?´}ó?Ãío?ÖW?‰ëO>§Z:?~‚?Ó÷k@Q@Cïv@¥V@y2?«\²?…&Û?Ñ—Z?ç5á?˜tÝ?…+¤?arè?s(?šeû?¤úe?Ç7?ÇÏ[?ÇÑŽ?ÇÔ~?ÇÕè?½¹X?q%?eÆC?]‡?§Ñ@&v@‰G?Ò1?÷HÃ@Üð@Cíá@€f@e<@Fª@^Ú?ÄË?Áö¤?¿Î±?L—ª>Ùf?Ç£¼@F³?»… ?ì@Úg@®k?“Ê?…;L?â ê?ê‡@8yL@6ƒë@5~@Eô@ˆR@Äý@-J`@'ͤ@DÐ@Vï@@J݇@D ª@?GÓ@;1P@9e@:ÞÞ@AW@Hù@6Wz@2·@5Sæ@5Æ_?°Ä>?vêi?¤K‰?°IJ@"–Æ@2Ow@ +šå@~ë?þ +?þÙã?<’~?[—@;Å@£þ?ÓY?Ë—¬@#@vn?¬÷›? Wä@ ´²@" ?©c¦?™£Õ@P©“@S³@!T4@£ ?þé)@y4?ïç?é"B?h?àV?Žoq?’ï@^t@[Ýt?ºõ¥?½kò?eª?{C~?‡)?Œî3?â¸û?÷ˆŠ@Ž>Ç@†S@û@0¯?ÚÈ?ÝÁñ?üÝ-@Í÷@Íy@Åê@'ño@(Q?¬™?°½Á@i@@A?Ì@£?»W˜?˜‰?Žçß?™ï?€N‰?¿/!?ÀY ?@ë?³†?Go˜??Â7?{âº?ÿÓ?òÌ?ŒT0?ú‰\@ 'z@‘š@ ´@¿l@O±?Èx?·Q,?Ê–û?öø@Iÿ@ é@t@=#@ê@L?”kÇ?N=^@%© @M(a@ Lç@—ý?ðº8?ÒÞ]?»9õ?³ýß?Ê·>?݃@X$@>€@EÝ?Ó¨Á?uL>„½Ù?Qs?½»´?ãÌÖ@øá@w×?ÿ)®@-ù@V’F@5Æl?é‰?Ùèˆ?½Ç?Åw?äq¯?ôm@ð@ +õÓ?Ý‹H?óýÚ@eïc@Y´•?“ðN?“­@MX÷@J¤Í@°?úëo@B?þnt@M`:@WyF@¬@ §q?gK=És?Ý*,@›Ý@až@6@³Ý?ù¯¨?Éa:?žíA?Ïxç@1@6@.ë1@Eúž@o V@G„¹?ˆÍs?ß?ºx$?³·Å?–ô?™Ø(?†Ë*?‰ÍÀ@®»?üÒ•?˜Þª?”£@[@)èù?ßÖ?Ù@?ÔÕV?ä:/?è‚£?è’Ž?†ç¦>®tP?a‰?Áá?Šff? åE?&¹ý?R‚F?œ;-@ ?ž?ûÏI?Ž¿µ?©*@ *B@ñ@'ÑJ@&?ÖUQ?ÌŠj@µ@þ?Ü]‘?·•Œ?•PA?yFE?yN¬?…\…?¤Š?Ê­t?Ÿ‚O>ýš‡?)wf?s¿?gÉ’?N(>òÂD?Å—?ÑàÍ?U>òýd?pè-?„t…?ï«Ô@Î@hü?ïy›?›&?ˆV?žuc@M@£/?ÈÚ?¶>Y?;äµ?7)Ö?Öœ?Ù>©?ÜYr?߀º?°¸ø?˜ÿO?çÒ§@´@3¸Ø@Kõ¡@3:@P{@`ú?‡!‰?Šf>?¥É?ç{?0ø†?7[ÿ@s5@Vƒ?ºc ?–G?©,?²Þ"?èWô@Ç´?þÄ?¦¸h?œøŽ?n|?–¿?Šw?—ë?¹ÖŒ?° ó?–Ó?Œ¦ã?µ&}?ÏÁ,?õ ý@Ò×@èï@0©W@Óå>Ø/>dæè?|eÄ?†“ë?Ö­é?ë|Ì?´Ú§?‘;p?ˆ¹?‡¾?{< ?7DF?1—ü>bj=(ã?a v?j@•?[NÁ?P€Ó?fš?dû}?“k\?˼?¯¥ ?;š¹?mÊ @-™g@57ÿ?}?Ý? Sè?º¥Z?á‚(?ë÷í?ÿk?ëð‰?ÁŽx?º÷M??Ä?“,n@(¿@.ŠØ@L”?ËRÆ?ø"Ã@Ê2?Öà?g…~?˜`£@ÈÈ@‚@d@ð*?¡Ëü?”ï6?pô?f÷·?ÉæÚ@F@P"?¯ê×?ÁÅ'?ïY?óŽv?èa@?æ™Î?{^’?4v?ˆb¹?¬âz?èy@C%@>IÆ>ñÁO>ïçc?'^?M2ž?A׌?D‘?¼N£@~?×v?†¤Å?‹|Æ?È U?Õç,@D†–@Bð @ +(@Ø?¬­—?g¯?‰µá?±œ?²éÿ?œ:’?¢by?½²?³…\?°_+?¹¿œ?£Í5?Ž³¥?›Š ?®Uš?—Ù¿?N¯4?)›>¶ÛÔ>ͦ?N¹>â´»?fs?€ët?–ÆŸ?™…ƒ?¥¹M?©K>?¯™ ?³\Ù?”w?kâá?F“Ì=š¬1>Bò?mí?mV;?1²-?7‚˜?·[ë?·ÿž?.4?·cÕ?¬§q?u‹{?„‘€?Ê›f?Ô?‚Ä×?f“_?†ë ?w§Ø?ûÄ?A$¯@_×@l\?3ó´?JMÐ?i©?7ª¤?V?˜?ÿE?ñŠ¿?áFÂ?ô£†@#s?á $?¯ —?Õt0?â¾H?x-‹?ÌQ>ã,Ø>¹üž>t‡>Ž¤?jë>éé6>©[??„ûè?>"+*>à|‹? ²Þ?0`?;uJ=‘LçÒ>Ÿ*=ÍN?-§R?íeÎ?‰“#?Ki=ÒUÛ?#ôä>i˱@+Ý@1,ø?À"—?zg?u’l?TÔ´?9ü>áX½>â&ÿ>Ãgê>¤ôË=éUÅ>¤RÆ?fœµ?t‡ÿ?©5}?¬¼©?¤ë?›a?¶1?·2J?ŽE3?lqî?-¦h>‡¡Â>Ω÷?g j?NÆ>˜.Ú>¤Ã´>±^+>½÷?>„OŸ>"€¿>¹²$>ó¶J>ý<š?ò>óË>Æ¿ô? å-?Rr1?(¨>—r>¹˜ÿ?7o€?Gee?è?š¯l?x²”?yšI?ŠËÏ?‡ú>?ãèÅ?ïÜ;?!$ú>úxy>í§ñ>à73?>¼0?Iµ?%°?#ŒÚ>±ì>D˜Z? Á‘?;©á?Ê">ýÔ#?N¿?)?V/’?\Œ??[ùæ?kuG? –?¿†ð@K@ a?Έ`?€ƒ?GÈê?á->˜ÚN?„0?™-\?¥%¶?¥ù‡?  †?¤¾Å?eŸq?Ðf>ίþ>‰uÑ? »?^$=?•wn?Á­ø?œè +?~ÁB?{ûÞ?x@:? 5>À?"Y—?b²?öB>¬ÕU>Ù¥Ä?˜ ?†j?ÂaT?¸Eå?²-ª?LÙÓ>®H>÷À?qD>—$n>1ÿ›>©=ºÏÁ>¸‹?Ö+?³?’?]S½?‚ ß?ÍS>Æ)?¤$?Æ e@ _Ù@À]?„ÿW?:[e>¾”>Ò?#q’?1Ͳ?w·?‹[Ä>.ä ?…r?“az>%0~<Þ^?°W'?ņf?†ñ*?‚aõ?,U/?2rx?—j¶?ÎŒ?ð†S?ëË´?dF‚?q»…?ŸÞò?œsç?{C?m‘?Q +c?R¿?,´?K’s?ä¬?Ùò)?‚E?]”Á=χ¾>°_W?À—W?³¾?v‡Ð?¯ˆä@*x¢@”Ý@ºŽ?ïZ ?¸æ?Š1x>6äû?j?ŒË‰?](5?¶B>ÖlJ>”{V>È(U?À×?ÄÊ?Èc?°ì? ½?–m?éV¶?™þº? [ì?´?q©>l€a="ù|>¥2"?çU?ÿà?¯?Ãâ?õ²?¨ÌÐ?ÑV?ͯó?×·<>÷Âð?€&?±ÌŸ?ú<>¨?””,?©;?£tz?§ÞÁ?å‹?ò–O>Ÿrd=ªåA=¼><ìÖ?»ß)?ÄãÁ? ÷?&T|?ON?S?Wi?$ÔL@y?ôuA?U²œ?d ?¨ï?¤žs?¦TK?LJ£@‚@’q?®º?©’ä?–kV??ƒ›Ý?¥9¿?édk?õ©ð@êL?´XP?O¦?'_? ™m? }?5Ù7?C!R?Pfþ?ÑQK@ @?º°?ƒå†?ƒés?ƒíò?zä6?}„Ž?´T.?Âr#?÷Š@ +%?Œ?„Š?Í®t?ØEÿ?`w‚?QRd>eö~>”?»Z|?Ä@t@"tA@Dí? à?-ÀÏ?²óB?¸:û?ò÷î?Ö˜k?jXÐ?‹(?Î&¾?Û¹@s¸?ÎÊ?<ù‚?µJ>†®°?v'7?úåT?Ì›“?”ÏÓ?‚Ä9?Wnì?qW€?„¤J?N?¿Í?BÊŒ?7 ?i#¯?„¼?$æ¾?º`>!F³> Yî>õ†7?ÐÞ?€ õ?„ÙÔ?¯Ÿ?E?'‚ÿ?Qpq?×O¯?ÖŠi?Ýqv?™"?‚rV?¯Ô´@&:N@¨õ?Ç‚Ø?ŸŸ??;(Ý?’c,?ÛÍC?ô¡Ô@2@Ø*@?Óÿ½?‡¥?°Ž‰?Ê4? Ã=×Pd>{#è>°eÃ?¶‚?#Ê(=³Õ"?ã§?íM?p‡1?vš?~ž`?†ß„?§Ü ?¼«@ eù?ó7&?b¯‡?Þè@vj?ê?1Z¡?E?…=G?µz@?÷ì¼@aÿ@ ?Â-7?ˆTÌ?Š{÷?Œžñ?6õk?;9@ hK@/áB?Á6?™…œ?Ô•ž?瓃?³É?ªò=?Æ|²?Ê@&Í@"èw?ïoÂ?åŒÐ?š{Â?®°?ìmê?ä@A?ÕÁî?ñ‘ @·Ù@;¤?ÂKH@Ï@(›/@6îå@Iš@fá‘@}Ð/?ðýÚ>úøÍ?”ܦ?Èú@Gà@»u@&çZ@0F @e_@t0@1Ö@&*@W°ê@_Þ§@Tê×@SøG@‘##@šÛ2@ì:Ø@â×@‘‘Ö@’„G@¡Áä@©£=@Ø@¸0M@–1c@“rÎ@ñÏ@§Ò@Ëv@Ñ\•@ßgœ@µýñ@‚ÀÓ@z·é@rP¯@ž=Ù@½«ÐAÃkA4??A1°BA0á¶@ó ¿@Æ„@b£@ø@º´@ÉV†@Îó´@ÐmV@‘ÿ@ŒC'@mª@i6E@ÂÌ@Ãa—@’ëŸ@‘¡~@ŒÙ\@†ÿ0@Kðƒ@IqŸ@5RJ@>I˜@cm›@hý@fŸW@hÛj@r'3@]rf@'Ä@AÕ.@nIð@Z¼I@B¼Ê@P=@\õÛ@V™o@L‡@>Ná@-¤)@$½@5¹@•?Ƈ¬@0€@nÛ@2Ø6@IA’@Fºº@Dœ@âù?ú¼/@&þ¿@9#ñ@Ö@á?Öx?Ä:Ú@§Q@2+?¹ ?wç½?~ì÷?‚ŸD@0t@Lé|@ žõ?ùÓŠ?â1Œ?×g©?Œ†y?‚Z|?„ÜÝ?‹¥?ˆxó?‰å{@h>½@qèq@¸w?óSƒ@)¿3@-3Ð@j±@î=@Oc@R@CGs@EFã?oÁ ?i‰Ÿ@»Ç@:c?še?ƒ´?ϼe?ÑШ@0¥<@0qB?:Ù?JG?ž?ƒù:?¼é?¿V¿@þY@O@NÒ¯@NiÖ?x#?ˆ ~?éTÐ?å:?ÁJé?¿Â5?¦[æ?®Ž?Î$2?ÑÃ?•‚%?“¼B?°Ä>?¹¨@‚j?@„êÞ@3—ô@8>x?½EÖ?¿+ +@Í@N4?èÄC?ßÛº@þg™?MHú?‚~Ú?Üw?þE@ íN@"T?¡ž?32Ò?†?Ÿ1@¨U@K¦@;L@*Àè?öäf? wn?²ìÜ?É‘§@=œ@`ü@P[Í@;á¡@^¤è@Œx@I=š?4vb?¦qÿ@'Ãw@Q"?¼ùÓ?Íýò@ +3ÿ@ Lá?û¡¾@†÷@9q~@;|?¥ìU?¬ÿ@r{¶@sºÉ?÷Àâ?ñ’@½@@±J@5‡ó@<¹?´ºN?‹B@ÆÏ@¥9@ ÆÂ@¸@%R@/Õ-@&ºe@¿‚@ :„?î~y?Æ™?¤ ?¼èí?ÓØ?ÔN+?Û÷ž?Ñi?ëûR?æm%?¼Aÿ?‚­?îžï?à©1?x>¾?yï?Ú/Í?ß»?Íï‚?ÆÉ8@?ÏÓ@Je¾@ót?ãøù?¬.q?/?²Ü?Çàú?ñJÃ@ e@%JÔ@:ƒ0?Ýnm<´ì0>¤-Ê?eO?‡ 1?Õx]?¿÷$>¤¥ç>¯¹‰?u±¥?u—ñ?¾¾e?Ò¡?üç?·¹Õ@ Ö=@.µÀ?õï@?È`;?Ë) ?ÃF·?·*¢?³_?³¦5?·ß?š~–?4•?p÷O?îÖÖ?áMÛ?»fB?´›æ?Œ±ª?ƒYÇ?NØ’?>žè?Ž$à? X?µÜ²?º­Õ@kb@4B@¨,?¥ü“?تã@@ @ p?¡Ó?¡•?qu’?s`?´ê=?´ØR?´À‘?´­f?çC*@çJ?§"Q?hä?õ=@5@ø@ch?Řç?¨vy?¹o?(If?o¯?p +y?™?Žö­?ÁŠ„?ÖÖ­?NÎ<>î´¶?‚¶l?²Ü”?é@åD@ +á"?çÞ?ó l@K/@ŸW@ „@ ˆ@ö‡@Ç¢?ÊËÈ?±¶ó?ÂÿH?ÝÜÛ@  +@-…í@&Úê@òq@ +:æ?Rî|?DuÕ? %?Ÿ±ƒ?½]M?Èé0?”>?sçh?~ƒà?lÓ‰?Þæ>MìÎ?º÷?²¡Ñ?än½?ÞÚ?°ƒÈ?¢VV@š@#%+?í(¦?‘Ú?‚³ô?!¥j?9ÏB?êË?Ú#@: @G ð?[€>¾È?ߣ@9œx@0}i@#Èq@ Iv?’~‹?Ž~A?çîª?çö#@M×Q@sd@5GQ@ [?½Ö>ü‹Y?2Q?_´?ˆ"@…@À?‹¬}?g 5?M¸~?H.5?Ì>(@"©Ë@!dÙ@;@ qx@ Š@ `.?ÇȺ?Ç?M(ý>ÖØ¡?Gõ?š»Ý?Ž˜6?>e?1Ý;?«Íf?¦¢m@ÀÙ@Ö«?‘dÜ?<3?³§ö@H@?÷åw?Ò´?±Ãö>Á">Ó›P?àX?ñ¾o?‡½?u4?Lgš? Iñ?qN?§|?™§Í?„@?…¤@%w@ Ôp?ín:?á;?ÜLm?×€Å?À/ ?®V?·_Ø?Ä,=?£DÖ>Š²–>SaÊ?æV?áŸQ?1?j_?ÙM?öVß@ @Nƒ@=@ ³¤?ü—€?z¥Í?’!M@â ?éñã?m b?m\?9³ž?+j@»é@ƒÚ?ü +?ÆR¼?²z?§TÂ?ª#Ú?´³R?¡Zr?•;ü?»aë?Üf?©¢j?O?T`“?ñEÖ@Ó@0A%@{#?2ôÚ?Q??·E?È,?º´È?°,>ú*ê?"{r@ Ý<@Á)?ÊÆ?¹??ü3?÷z±?n¹?|p*?‡wu?….;?FaÃ?’Åk?âœ?Ýç ?¾es@ZŸ@dY@ ?¸«f?ªö?œe4>0fÕ6Û `?‚;>æ\µ;¸†@=ÉG¬=ÂnX>0ÕP>™òê<èž=£p™? •?BT?PÏ>ÔN>EãA?{™>ɹ>ÜÛË?ˆv?Ñʼ?– +Š¶+=_r@=jÂ@<­2?±E?^m?M³?BÛ?6­¼>VÙv>p1W>ùÃ??‰á>÷'g>®@Ò>èéu?DÑ;?BD6>ñf">ïŽ=ÏÍÒ>$3,>–ˆw>Кž? Ι?À?Na!?~h2?ˆ·K?³ þ?¡Â>/NR>7¸>}‹7>MÇÅ?•qî?®êG?2?p>ïà`>ó¬ >ô1>ôŠÔ>ôú >¿å¿>ŒÄ(?1°Ä?¯x?”þë?;²I?4âÌ?.?Š?PdI?[×p?¬Ì„?¯ÿ|?†\[?‚z*=¶VK;õ.§<ì‡d=U3>ø+{?*,>eU> >’àŒ>›H>Þ¾H>ýgÅ?{Ïÿ?‘=å>·‘÷?gÆ.?¿··?gþÖ>ÿ +S?ˆÊ?»K·?˜±­?„õ?„çt?€æ?7§Q?,[>ÜGí>µbK?bûb?¨3¨?›(¤?š¸?~ ?HC'?wº‹?…nÜ?~òc?€ëå?Ó…@gN?ߧx?®w®?"Ê›<UØ?úQ?MŸ?úcf@#G?¯|a?!W?š/‚?ÃXæ?Š?Má2?ð?ªì?MDo?oqƒ?x¯ü?Èä?½›?âÚ?Th?UÚ?x%C?îv?-=E?ç1?ÿ?ù?  ?ßþ?¼?²?T4‘?|«?Úpÿ?öAè?ëé>‰¹I>~ë >jkô?Ÿ”ú?²ž@>9çH=ë 1=àGI?ìÖâ@SO?¥ƒ?WŠ=EûÅ=V¢=„WS=Ò®×?¯¹[?­¡x@âP@pÞ?t·©?~o?r? ßü?‚xÕ?x¶Ï?{?2?—?D°?˜§?˜¾Ó?£ç9?—K–?m{?rXá?w8H?aäµ?Ú">Ë;=Kò >ˆR+?R™@?¢–}@ 8?åÍB?‚ª ?+ªx>ä5?Ò6?‰?E°L? +Âî>fL>®GÕ?ÁY?±Õ?)s¾?‚©?®¼Ä?s°_?Ày?HØN?{ó?Ç…?ì~?¤ „?¶¥þ?Fó=“K?e½5?¨¸ø?DàA?õ7?¹`?ò¡®?£UÔ?ƒ?À4?Çk?8…·?·>ˆJê>@Ç6?ð*k@ á²?z1??º?Oö®?\ŒŸ?éí?ƒ4?ñî÷@i¯@~F@v=?¡Ñ=ÐΑ?q¦-?m/Þ?h¹¾?rÓ?½Ï+?µÒ×?3Xæ?@›f?uF??sÃÃ?E +?•Þ@×Æ@uí?WLB?•^í?ì@)?×S7?°£µ?ƒ‡Š?¥H?|D>?ÑÑ?ÇSÅ?Â"È?Ã7Ä?¾þ ?›„R?x +?˜ÏŒ?­p?­5ù?µ†?ñ~Ž@o?Êñ[?¬‡_?±û&?®§q?£‡?¨u(?—‘F?š,p?‰Q_?„š?Òê?â½Á>Šé_=æ +÷?~?‰?„z?x»ÿ?ǃ?Æ]T?´ÞÓ¸¬À>Ø/#?Œ5µ?¢.°?ø~]?ë¦ ?¦ ?¶G±?Øü?éÄ?øãå?¹Y“?#,¯? b? Æ?ýÇ?þQâ?ÁãW?Œ˜ñ?¸˜i?ÑQÜ?Éî?Ç®t?’1Ô?r>XŒ?GZs?m +V?K?>›µ@4è@;þˆ>T‹‰>m¸‚?3p?3%n@á@ 5I@9§G@$0¬?¯ÉJ?¸ a?Ç×Å?ú[.@0¨Î@€/?…=Ö?U‡ ?üû@@ƒO?äƒ=Ð>¿Èã?¥-?YvT?tvb?4–¦?7›W?~MÆ?…<?=W6?5=?™Æª?¡k¿?Ç?Êêæ@Ši@!@ [Ï?ùD‰?3ØÞ?…‚O@õÛ@€@(?ñd˜?½RG?¬]?‹6S@&q%@”à"@zMØ@G¥™@)è@,ÿ@"5÷@#ùÈ@»#?é³°@&À@(Àv@Wn¥@`¹P@{Xy@nù@1`í@&,@4g–@4xS@€¡M@|Gh?Ýx“@Tã@±õ@µ@w@À~¡@·-H@‰Sz@ˆ7÷@‡¥@¢Q@ç“Ö@Ïvl@£†m@¥þ.@¬‰E@¬à@¬kº@•I«@y®»@¬~ó@ÑÞ@³,²@žÿaA°BA7¢ïA, +vA' B@ñö)@Í0 @¼ˆ2@¶/@C@…—¢@¼Ô@ÃBP@J-@@2Ψ@ƒTr@…J,@‘÷@” œ@„±Æ@€õô@|ø@x2@*£0@2pÅ@VýG@BÅ?î<|@ùÕ@{:Ü@qZÇ@Wþu@>)@@4Žœ@í@f6Ž@@ž°@EB”@E[©@I b@S@[å’@Ž?¹Ýi?ç´@Mv@žŠ@$/@I-™@aAÆ@Ð÷?ë‹r@ +œm@NØ@Ct€@Z2ø@ ¨ ?ÞÇê@(Ýü@8C@Xy@bw@0½â@#_8?©6Š?‚ŸP?߃?ôÖ{?×`º?Ïwj@+ @8ݲ?§Æ?‡–í?‚9v?‚HT?ðÿ¶?ö?ç@=¤@‚“?¥ß¿?¢ž*?åßC?ì³/?±µ®?´Ñ@@y<è@vúV@2—ò@0rU?¤E?Å @ø4@":?œr?‡e@‚Ì@ {X?]¯q?ƒâ×@p:@vg·@@gN@<4n@9þš@2Ç?Õ¡Q?Ý@1@ir@ø“?õ2—?èT?±?¸o¡?äüŒ?äŠ|?ùâì?é3?µ?¶Îþ@ –'@??€“ +?ƒ;c?édé?ìE?‡h„?„U~?U—?Šq@ ò@ JS@Qï@‰?ôÏI?üΉ@¬@@k_@åš@F3Ö@D5k@"ÐÒ@"\4?ôÅv?á%Å@#gê@&v¥?Öß?¹„ +@[—@}U ?ÉÚ?~»þ?{¿º?~E@^#Û@ƒ’.@Ñ ?©2p@~•@.Ó?Ì›|?’‡Š?ú'@½P?Ÿ¾?8Ïä?øâ @4ž@CÑ@Pn @˜Ù?É(ã?Þ‡Þ?ðÀõ@2jÌ@yGÍ@DãJ?öÕÔ?»œ¤?7*r?ƒ+†?«Ì¶?Ö ì@$Š(@Û?¼üÉ?Á¨?Õ$:?׳´?Ú;¬?ÎT?C-©?]~??ð?åéi@AbN@EKp?Îû?Åɵ?éâE?ò,°?Œ×w?‚¬¼?~Ó¹?za?š­à?­gp?¢½j?Ÿï=@ ’@'˜e@Æ@Ÿ@$ @,Ê%@ +ýš?Â6¹?ùK@-Ѹ@RÕ•@‰c›@]¢Œ?‰œ²?©X?@/@,j@5œ@-{%?ã¨T?Ü›°?‹î`?Ž°Î@ 1‰@µÅ@<×–@G¸Ý@w @=@m¢@5?ÿðY?÷?°‘9?vÚE@Å7@T£@@I¾@0±Ø@ì!?°+e?¤+à?‰gj?†oº?MsP?P—?ž)5?›&Ù>xd]>SGo?ÁØ?ච@NN½@f…@+Ç.@Áj@Lð@pù²@/I?{¸Ã?Å E@ØI@¯?ÔG?î¬D@+Õú@Zò?‘#?›Î`?ر\?Û³X?”¬?“¿4?_&?;T³?Ê(ñ?÷=?óü´?õl}@,$@tÈ@§À@.Ú?ÿ¿í?q§I?‚¹#?»½?³ ˜?~*K?…~d?Õ#¥?ÖÿL?:·Ê>ðª? +.Á?†:?¼ò@QM?Óœs?Ók?f@ Ø @,ÿ?à ³?¼Y)?Ð\…?Ó¢”?ãƒ?t?-S÷?Fº?ŽH?¹ý`?èX>@í@ JÀ?íû™?ñÏÁ@&@Ð:@Ü@5$?¡v?—5ù?Ðíê?Üç=?‚n÷>è1š?™á»@ÎÜ@‚r?³Z!?¼?ÞÑ°?ׇ@h®@ä1?üg¥?õÝ?¢ˆs?a%u?×?×~o?©EI>ÁÛ7? +w@ ì @o¯@,Ÿ@)’ç?õð®?ÜiÌ@R¢@9ñ­@D…?’|7?Ž™}?Š¸S?›£‰@/t¤@7"?èe3?㇩>ñ«?þ«‹@bY@AÏç@¡r@w»?däÛ?vø÷@À¸@°G?œ&;?Uù·?i¸»?rz?¼‡·@?î ?½Wý?± +?¶L´?ªo?® ‹?¡Ä”?}°h?Lý?} +ä?¦Í“?ËÈš@<@1Ø@/ @(¡?¸â?¬ðæ?„xí?fÛ?{˜Ð?„®d?²¶Õ@º@«?f!&?n.1?íì@@?š¢´?f²?Á¾Ç@±¨?ì”Ë?ÙK…?Ð8Y>ÍŽ÷>=ÉP?© j?±•a?Ÿ¸Ù?‘Œ ?«(>9ùÆ?.üã?µ®?±wÎ?Žƒf?“Mc>ç™k>èß?eŒ?ƒƒÌ?dË?—O^?”Ⱥ?Ŭ?˜nÅ?ªìl?¶¸€?®Ó~?¬ P?h<§?xi?Í…?Î ?Ó;?à¥@ú@$M:?Û7§?.V?nM9?ëêÐ?ÍŠ3?.ç6?Q…Ÿ>æ¨>»ó ?dùz?nD?˜‘?¥4Õ@5Ú]@i¦@G'?k\?+nu>åób?A×?o7?Œ‘ê?ÕÌ?ËÖ7?sœ?—÷'?ô–×?àBã?¢>Ë?»O?}>c?XÅ+>÷ÌÍ?ñJ?Ñó?ÅÕà?ï1µ?ÛGŸ?Íh?£1?Í“@¡½@"&À@>;Ø?Ÿq>XT?réG?»?&®Q>áúz?X>âÒÞ?˜ï?µºŠ?„}?4ÔÕ>1ÅÔ=´ý? ¤¯?}‘µ?̼ã?MÙ<>µ3D?NR?8N>¤E?p+?êë?Ï_,=fÍ€:É_´@ªzØ@¦œ?œº>f².>Sá6>%I(>~aš>ë®>Ófý<ÐS&?Nض?q«?5hÓ>6Êî?^×Ê?d… :Èã>•Q>ìq>ý–?5?Q{Ç?—! ?‹›°>ïÌ«>òÙe?Q«?WŽè?^ô?dšÉ>jhL;÷oT>£=>ô>ô†»>ôõæ>Ùð½>¯©Ë>ãWÂ?<ôö?6Jg>íÄö?œ?…¢À?€Í>ø²8?cs?\¬‚?fÀ§?Ãå)?Á)Q?T>÷?—="ÓY?¢?Ö¡`?ÁAv?³ >οŠ>Aù>ÚSc>ýaw?c*??Í?!’õ>­q>–mÕ>~âi>ÌhE>ÿk?HPì?vum?/A²?Ð ?Q)?€L?º‰c?Ù©°?vÅ?M§?×T@P?¤/a?’°?¡¯?²K?ƒv^?»Íî?¨Žç?’£¼?}Uè?i •>îó=Ö&"> AÉ>ýoÄ?² ß?ùo?ãþ—?à2?@–[=÷Ñæ?©d@„ç?w |>Ò ž>ù–’?¦e?‚²?¦Ï?YUé?)Í?žLÞ?µ4´>õу=½U:?@Š@?êÇ?~y?€¡¥>…ç<= Ùö?¹ }?ç{Ð@ <@Ì?LÉÚ??KÿL?f•ù?)í?-ò?1Ý?2§?ŒÍY?¢>çÖ‚>œæ?zA?u¶³?ÍïÝ?ß ? ö?TV?z”È?óQ?v5É?g>O+Á>£e;?ÞÚq?ànŽ?žpÕ?™}}?”‹?…˜ƒ>ãñL?ùÔ?B†?+“>™W.>êt^?—·ä?© K?âÁ˜?Ç<7??Ó¯?Í?$9r?‚’ ?“ÏÆ?»Ë\?€N=pT>߇?›:Ð?ƒõ˜?$ÏZ? C£>­é?Z7©?Ð%ç?Ãi?Ak ?`µ?wÌ +?#0ò>£A?m~?¾T?çS@ º½?ÑvK?J‚?T°h?‹? ‰?K^?¹¯L@Ük?6Âç?>?5Í?4)B?ñµ?=r?]D?AÇ?9@@?Ö0@ón?œˆ?wêS>ÐE±>£„Ñ?Òš?÷Y“?ÛˆX?Ô>Ÿ?5¶è?3#?l‘©?yi=i|M<Ì—r?Å/?É׺?ðûæ?ÝH«?_?˜˜? ?W r@Üd?èË¢?ee?û&?OÍ?x™ ?Æ;‘?͇+?ùÈÃ?ÓKk?4~Ÿ?‘Rd@a.@ò@°ý?çÈ?F³/?±@´=?Ä[M? Õ?…3õ?Åš¨?ã—^?ùR|?˜¬e?1ë€>Ò±¡>~÷(?¥ÿd?î}T?µ`A?œ¦ƒ?²®Z?¾8x?ÊPš?ÃßQ?Yq®?(œ>?¨vÉ?³ˆ?jØ?asR? +RI? ^?Â@ÿ?·Gç?7?8OÝ?Â6L?¶4›?*®y>ÌN?v­?±¿?C ??Ff“?AÖR?Ÿªµ?â:@ +[@¼Š?«*Ó?( +O?h"n?„©C?„«µ?„°»?~ûj?ê6?ˆ+?†5è?#!Ñ?ä?¸H?¾_‚@Ò+@Ž?ë6?å}_?Îî»?¶Àè?å·>ÿS‹>á¾¼? +É?HÛ ?DÑ?@FW?”Vi@2¼?õh=?ßá­?Ä«ö?–aÉ?£¼?»£?±ö$?¯ o@¥U@Aʦ@ùd@Ÿ#?¶ª=«êð??j?c›h@´@ ?ï™?åÓ0@ˆï@f>§‘<>±Ó(?Pcá?|Ê@Ô’@Ù?Øí‰?Äv_?Xõü?‚—Ç?³c}?»ïv?ÇÖï?ÙB„?äˆ?´,?ŒÈ^?éõ@!¦ô?Õ_ˆ?ȱ?/ç.?:ð?šT?½†>´&2?çâ@ +&®@%Œ¾@#{°?·’€?¬Kˆ?ì??ìZ@2°@ &@GÈ@. ó?*Oå?‰U]@Ü@¤Ô?úè.?áÍ?¦ZÏ?³0é?Îo¥@‰|@f} @7Ä@£@K+@|d°@7æ;@="@s@®@L§=@0(ü@@ÛK@%ÿ@&%q@' @&(D@EIZ@G[@•@þ¨?²v ?Õãë@æó@á¼@¢xè@¡Û‚@ž¢8@¡Œ.@¥êH@´´b@×e.@×-Ü@Ô˜ @Þé6@îD@¿ÙV@Šë¾@¦&Í@½Ój@ÜÀã@øvI@Úå@Ãð•@æ~^@üÚ AexA–"@ÁW$@ o6@½4Ý@Å˽@Áe¶@¿‰@Ô!›@Û¤ƒ@”/K@‹qŽ@•ú@•Ü2@#ʽ@$ìó@'óÙ@"åÀ?®§?¿ñè@wºZ@zÉ£@ŒÆé@ŠvK@‚@eþ˜@Ý°@L +p@˜«ì@ƒïï@5 @6§ð@?îE@TWí@o l@cÑ@O E@%]?ãcÈ?úr@êc?·v?ê?ò)9@Azô@CÿŠ@C @W¸x@e}8@{4Ç@€èI@RfÓ@<Ý@(]@"õ.?êL?ÄQŸ@MìÎ@tU@\L@W¸@9ûÇ@0X¦?¾Û—?˜ j?Ü.Ñ?å‘Ò@Ôp@Ï?¶ì?¬WØ@È @‡ù?(u?1ö@¹4@Ñ@M@Ã?‰Is?‚¥@%zÖ@$’?„,Å?‚‘@E„–@Jð÷@©@y¢?¡'?Ç‘Á@6™^@4u0?»#¦?ºrá@%C.@">lK;>45W=ø4ï>>&3@Ÿ£@§)@öG@…?øåù?óψ?ϼ¢?Ïü?¹wA?¿, +?©ß?¨H5?¹\ +?Á|(@ ‹@éˆ?æÆd?ñÛ @Të‹@VcD?€?„D…?ÖnØ?Çé%@ì}?ë—>? Bš? N·@ QÃ@ Fa?Ï£Â?Óô*?óŸ?ñh?nq?uNß?æùp?ð­@f + @nTz@&C\@wÝ@2Ö@Q@B/@M†"@£ @ù*?²K_?“`5?¦=?bí?,ô²?M ?°f ?Þðÿ@7$—@IÄï@µÈ@aw@ÇÌ@ ‰ì?ᢷ?×¼-?ÂàÊ?¤è ?±ú…?Å¥È@Z(@,8û?Ôëõ?ENÈ?£"±?ãh®@æû@UÂC@ í? u?†Æ?òÕ ?Èèä?†…Î?Ý%¯@O @0<é?¼øM?«Z;?]¸¬?h~?r…q?‰Y‡?Í& ?Ïu@D¸s@Eã?û‰?û m?âPö?ç?‹³L?ç^?~_„?z¨û@5ð@Ïî?rã?º?³ss?×›@4¿‰@Wí8@5ü¸@8f@)?á(?õ @i±@iú?çèM?ïAÂ@Öy@ï?ë)?Èö)?tÏ? 1?)pa?BG\?8Î +?Qˆ@r”?þ[š@g…@Û5?øWš?õUu?ÅñÄ?¹?¹~±?¹eW?¿À.?Êh?³NÍ?–·ç?Ù¯æ@.Ð?ÿšG?À¨P?°XZ?ƒ‘ô?ƒR”?vd?go¬?#1†?,äz?b߯?n¢É?íÇ@?Ü6u?…>õ&Ù@,¤@!ú½@Gë?ìK?@mÓ@JO?ð8`?³šè?ºI¨?Ê‘æ?Ëûö?ÆÃ?Üß @Ëq@PÄ?;Vç?5BÀ?MtŠ?_úÔ?†>òù~?èéù@T @ ˜ˆ@œr@M@¦Û?À«Y?8„?Ÿá•@×?Ó’ô?"'÷?KàÞ?Ð'\?Î2«>…ôY>’ÙÌ@_Á@?Y „>ð§ü?™ ,?À X?¶§"?¹(ó?´¤‹?¡¿?“è¬?Š­²?¸ï@/óA@*Qo@Г@²L?ðßD?îéâ?¢0J?…I?¸v?à¤ç?´ky?qÙ2?Z1Ü?˜)?3DF?Gó?_Ëv?Ÿ­5?¦§?F÷>í,¹?C«?½—–?Ô ¼?Þ|ö?û¿@C@É@/¥@{t?“1?5„@;U>@éË=>øèø?€Æó?ŽP?ÒY?܈þ?¼Uí?·ýt?ŽO/>¢ß?*"Â@Ÿ<@%7~@+uZ@%m?Í÷?­2 ?dª ?™É?ߘ?6Ý?%{<>¬ì{>ä,>û}u>ê`Ì?YŸö?gëÉ?h Þ?h+ì?hU?hv?Nù%?¨?@â?¸dì?®|ä>ì¼K>ü|,?¬Ì?¾ŽR?´_?¯Ø8?¥Ñ?´Ì?œy?S ?“Ã?êOÜ?Ìm>ìzD>ßZ½?Áq³?¾/ô?Ë”?¶_?ª¡Ä?²À?‘ ’?p2ç?ÅÁA?ï'?·OT?™„?ôm?`?õ:?jŸ?¶M—@1„|@PX?QPI?VðÀ?™óz?™¤?Fñ ?g–€@.`2@3 +£?úE?ôCª?¼¥à?ÉÆ•@q@ ¡?‘ìä?ˆRé?tÞª?Œ§¸?³¶?¡Ë?•å?u·ã? +Ú?^€ð?“‘»?ˆç ?ƒûÚ?€G“?^Ó>ÙÍ÷>ÍU)?zŽ ?…†z?b>>ñ•t=²Ì2= +Ð>q(>­®U>Ð6N?:¤?%¹<ÐØ;=¯;›?d¸?Nps?š«¸?¨ÝÚ?ž¡g?ZÂí?€b? õ?•WO?œ!ª?„]?üÕ>¤‰?Ùf?øÈà?'ß@>£âK>-=±ß_>Ød©>ñ©x>M²>#a?üA?Hv5>Ù ï=–=ìvj>¿Ã>‡‚ç>õHV?n½Ž?MäÕ>˜ò>³Ïº?8 ?,Fð?2ÿ ?"T*>ñlJ>ïIÊ>òþ>ô! ?8½Z?^8Š>ö̼> µf>µì'?]:>ë/]>€¿4>³MÕ?0’Ó?3c†?MÓ]?9Â%>ù]‚?³C?ñup?óN;ä© ;£©€>⚌>áç?.áª?G¼÷?–5ò?¢Ã>gá!?kh?Av®?8B±?%·ï?=à»?R‚Þ?Xq?^dN? Õy>Õwï>áÀ>쳯?T[5?}<Þ?0VÜ? ñe>Ñ2­>Ê}|?:È´?[ö³?­®€?àh2?%m?“ö?'ôÞ?:â?5a¼?/å ?c¥Y?‹Zœ??X;?Ï?Eòâ?tF‹>Ëa<ÀA$?z|?Æ7?t²b?(QÛ?E›\?F6?þ&?$Í?cûF?h¿ü>×/]>{ r?ªE?K<Ó?™á>¶Bc?Ù63@Îë?’–ŽYˆ>H@?®l?–,?ùø:@)'>„*x>Ò£?z]? +ѽ=Y;1=~ôí?ÀY?ºF®?cùŒ?V9>?7#º?Jo¾?”‘Y?Œ³ÿ? +ž7?1c?”ÀÜ?|UÎ?Øw??$Cá?‡©?‚?qù?‚‡u?†/ü?Nâ?l‚ÿ>åk?"Õa?…¬Ø?¿À@!º?çì|>é'c>ûœ{?;¦?a#Ý?¢Ïa?‹yÄ?Z é?‰r ?¶äŽ?¥™É?†\#?’€?¦KÔ?D­€>H–Ð?’i@ãM?¹G‡?f.?¢4_?Ä5q?µ;2?±.?‘ä6?~äì?6º½?Å>?’/ÿ?«øî?NØ“?hˆ?ŽL?¡¯~?ᮢ?ï„2? ½s>Tš(?]ßÞ?ƒu?„‰?‰J?.ù>ɾ?'ì?,mY?Õu?æˆ@,š@3[©?Á>ê#N>ó3u>õ a<«0”=zɨ>Ý@>”[*?sõÎ?TÍ=Ýä>¥=¡?ºAå?±»1?Y4Ø?_¯Ž?ƒkG?‰1P? ô›?“œÀ?>+?Af?Tß+?Ieþ?4„Ï?˜“l?öúz?ù7†?ûzà?ØŽ=k—?LçB?È€?è¥E@¯A?žœ?*Ãû>¥®ö=®–J?ñz?Jl?H?RÀ&?;ü°?4$¼>ù#€>ä Y?¾ú¬?æ­Ž?̇•?Æ 6?¹ìú?¿!?žÝD?’‘>Ì÷ª>Í•m@EAÓ@G¸?ÿFï?öh>?„81?Œój?Å—?¸,?së?Ò°‰@Z.Ø@'@H?Bø?fD?£`T?Žšu?\ø ?X§G?TY?qÞ?‰~ù?Gíô? Öö?*ûê?:‹À?‡úl?®±?£[>?–þ¸?}SÁ?m:?Š/·?Žp"?;nZ?mÓ?åÃz@‰ä@ @C9?”‘Ö?Œú1?™U—?˜·ª>ê _?#®Í?Ú=c?Ì +…?[NÚ?;õ>›¨P>Ј¡?D¦>?Œƒ®?ßöå?°Û?Uêz?Z:&?^‰ ?øcù@Gÿ?úÍ‚?oȾ? +ñÏ>TÌ?‹Qé?Ì5Ä@öÃ@%³É?²À?wx?‚³4?…"Ú@0jq@AÆ?0e¿? –@?SQ?i y@ º„?ý’?=Íz?_ѽ?ÇΕ?³V>?@›„?’>g2Ÿ?±NI?Ò»?¹M£?»ìù@1ø@=k?Ñfï?dž¯?¿)&?Å¿?é?÷lì@*Ȉ@f®?,?y4ð@ú>@9N?×Ê{?ìx°@ç@Îa?ìuÓ@ ý°@#Al@%q +@%lä@)gl@/Ÿy@L,â@Y@9sa@1ˆ.@*—¾@&@£@9Ïè@7É ?Éç+?« {@> F@H}Š@7ë¿@8±%@‡’]@„«ë@Û@ô{@¨d@®ì@¯Dq@¡+&@rÆ°@‚é @¡[Z@­ª@Æ0M@ê–ÊA/@ù–@¾/@ËKß@Öù@ºîÛ@¥’@Àâ@ÖR<@½6•@®"@ÃSÐ@ÎA +!A+ @½©š@‘¢'@ª«Ð@±(Ú@ÃLð@ȇZ@”=$@‰ÖQ@©U@­ïù@¡ˆh@¡%@ šh@·@£c²@™Ÿ@l˜@ _z@PY@N³›@Aï£@Bö÷@<³b@5Õ=@ VÂ@)$g@x †@qhï@VLU@<°•@mi@'¥Ø@Q­E@^¨­@p;?@T¡G@4 =?Í‘ >Ù§Ò?|³?¾,d?¤Ö¼?Š6i?†£?ŽS3@Úÿ@HWÚ@=»c@;W´@ 4@@å@Zwó@rÅ@3š?ÄS4@ Û@S@@á¾@$p@-D?íLã?Ùñ ?òð¢@C@m6Z@~ƒÖ?ˤ>€j@&Ä5@;ú€?Јò?À¡1@;‰<@@X @ZH”@Y6’?ðS+?åçÆ@A¹ê@Bú7?­žØ?ªè ?Ýw]?ßø‡?äl?â +?ß®‰?à=¾@ç€@Ž@+ßR@$à ?‡/?†-ž?Ì’%?Ë*K?Ó3T?Ïó@Í?ùs?‰¦”?’“á?Ê¢æ?È?Ž°ò?Œ%¬?%¡‰?@Ñå?êßR?昮?Ê=#?¼L ?Ég? Š~?¥îƒ?ªP+?óÊ?»q%?£´n?¬ý@tiJ@€¶@°´l@³†š@]q•@_0»@^Iå@[GH?ÀEy?À4È?ËÙw?ÎY®?Ÿçá?™Æ½?¾Do?¿Ý@5_@< h@!T…@!v›@ ¡{@Ÿ˜?ï‡ý?çÿ)?Á™?«9ë?ðwÍ?þÞ @UxH@npU@÷>?ûô?ZÁÔ?”?ãˆ~@ §?ã­?Í…"?ÈâØ?ÎÛ®?cžÒ>ýÄÚ?³m?úD?Œƒ? Zp@5@f#@9{|@ -@öÃ@0ÈD@+ej@!èU@Ã?ü¡ô?Ìf?ƒüL?¬r¾?ì8†?Ø·s?À89?ÇÜ?¼ø6?×àD@h1?û@?Aç\?ww€@Ö6@%6i@@IÏ@:¬š@¼Ä@ û?˃¹?ºz ?×9Ë?ÏZº?½qÀ?»Á@*jŠ@8±W?ÕFi?¤‰$@Gm@nã›@XKÎ@QÁ@#(†@RÍ?ÁHÙ?y¿?§Øa?Òž^@!Ü[@pR@Ua\@'Ý@@ + F?xÈ6?‰o?·¤?·Q¿?±¥ +?¶¼Ï@Hv@+œ?ª¬3?³ñ?â˜À?éØ›@êO@O°?Ð.?¹?¹›?¹iµ?O >÷ Ö?ÔÔ²@â¸?â÷§?…ž?zñ^?{qÉ?·L7@ j1?øW?ª_-?¤:5?OM?‡Õ?AÈv?<r@*b!@.âT?—¤y?uê ?ÈB’?ÔÌÌ?¾oµ?·‘5@# p@Q%@D ?@1Óç@-06@(‹ß@Àv@¤m?ûÖ-?̾8?ÍSK?»Rí?°Tœ>Ô„ˆ>»Œ?h¥d?`œõ@%W@04?Õn©?HŒ?2ñº?tÙ?–Ó?Ú¼?¹'q?•ªë?¬ü>ñ£#?3h^?÷x¦?éœ|>U®s>;¤š?Þ0?ðÛT?iC?6˜Z?÷SX@*ÎÏ@ Î?íˆ@.@ ²‰?Õ“c>ï¶ì?C$Û@¢…@–@B¶½@@ì?À?±ÔY?Ín?ÎÞ?–Ó¤?ns”?¯¹P?ígíù>íç–>íÀQ?¼Y?êŨ?à)ç?ØÖK?ÇÓ?'tb>¨@…?qUk?±†?ÃAœ?Þä’?´*>õá?0@?¢€æ?›5+?½.÷?ÐCˆ?yô ?[*û?BdÉ?ê?ǃÊ@%¡"?ïÕ>êÆ&?8æ@´i@¿§?“?û³? +q†?íØ?Ê +Û@¾?¸ë*?.]Ä?pGv?ÔPƒ?Ü„?ñÂ[?ÞOH@"U-@,o@#š?ÝÈ?ðÍÜ?úXß?Ý)?É€©?ÈGY?‘Ѽ?%?hW?gîø?Z±?9cG?èj>ïÚŠ?ï ?Ä`?Dˆí?¡Dl?§üŠ?8Uš?0°?ߥˆ@‹Ë?©2•?„Åí?â§@#/@+@(âG@(ëÞ@V5ˆ@E@3@ ?¹‹?ƒÕø?løl?f|¿?–ú?Âoå?­·U?d`e?[»Æ?eiÓ?fwº?ž2”?¹*ì?æ\¿?êj?¨9Ü?!>k?z?8’? +ZT?p¹O?Œ³?>Çx?1œ&?*ùó?%~4?üR>ç4Â>ð>…>Ûy>Ÿî2?WY€?e? Ï2?Bp?)–?ô?kæ?Ý€?‹÷?‡ +?xF?ÏiÚ?Ù ¯?h¡?^-?{ÓÏ?…?¥¡?¯Ú«?³0?—}È?VŒ@?!øÿ?Kô?®{Ó?ÅP@$ò?Þ Ú?ÉQ?åä@d@.Ÿ8?¼F®?o׬?q¼ñ?p;a?†$?¨‘¨?ŸD#?qÛo?®ù¹@ D?¾%­>åÚì?ŒÄ3@7}Ú@,{|?ø‰Å?ÏŠ?;PZ?ké£?Ü¡?Çà4?R?†žS?ÂMY?Çyz?¼­Ý?¸×­?ŸEÊ?£& ?œ/Y?•ºþ>ÿǾ?ð +V>ìßì?˜?L?›ˆ%?†Te?„zp?„ò–>‚"?nŽ…?…|w?)Öò?G—ý?Èl?ªÆÇ?c~»>¸®?„/ ?¸D=aow:“>þÈÃ?É?ŸÞ×?¯aå?fŸ†?6ŒÊ?W1œ?íæ!?Ð?}f{8ö;K@c±@y“?zŽÃ?@µï?Qk?RQ\? –þ8Ư>„ï9>’ŒÌ?6ú/?Haý>´H??€ü?åÖ7?ÑÞä>;>R´>Ì_g>ìtb>í ¦>íœo?<'y?“Gj?tŸO>¯r`>¶ˆ?„׆?Ž½[²<ñH‘>´÷ +>ô¾>…H¸>5‚>˜$*>°0—>î¦Ð?*9\?R +>ltG>Ê"?CDx?P#?zBÒ?{ñÙ?Ê‹?+¢{?Ä"¿?¹­æ:~¸?qà-?nîb?iH¥?c§‹?§ò”?«N{>4Bâ>²)÷>îWÒ?h =?†Å?!ÎU>þ>×?8Ö®?@—Ø>‰ü=©t·<˜I?„£ ?¾¤k?NrÅ?>&zê?kù“?®Zí?,\>½è–?[Žs?†‰?•¥&?ž +!?qL$?QþD?@Ñ>’?“?OjŠ?€TÁ?$Œ:??\Â7?‚ýÇ?ÖÒ4?þ˜È?y”E?^h?µfÅ?å)È?I>÷æ? É?M,\?J˜M?ÆU?´¥?=?'Í?u!b?>°?•5ü?*n?¼Zw?ÂÜ#?Âçm?Âí]>Œ #=¨cà> t?”Ô?9÷ž?Œxð?•B,?„ £?‚"Ú?SÊÙ?If?Ú?¤Çu? î6?7?ÔÞ+?×±M?ám?Ž+?j²ý?quà?Šï?‰X ?»rœ?µö=„|Ç>Jaf?‚_I?kÀ@=ËÆÕ>l÷s?‚gò?y_¾?*B?3Ää?“óé?’f3?DaT?aL—?÷™?«zŸ?0i¨?7ÖÇ?`Õ?„ć?¶‹?…t=†|?dì?ÃØ?—ø.?SÙ?×Q?—?-Ú/?n¡?,Çu>Àï[?ðÃ?,X ?1[?5ܲ?y/x?¡¤?’èâ?‚´³?{9?i¸?tÇq?‚¿+?O†?#3Ø?3c?¸¤À?-ýÁ>%(«=,üÜ;¹\˜<¼UÈ>ÛqÖ?!.¯? O"?ç/?.ºç?F/'?ñnÀ@ ªL?v?ãù?4«È?@54? Že?ù?wŒ?ƒ “?®6#?­Šy?BRî?Cu?Ââ?ÄÔ’>ð¬u>µx>+ÿÙ>6‘?Á·®?¾ïš?¸4‘?ž:ä> ¥5>VÉ>ѹn?:?ƒX…?saû?/ÃW?HZ?ƒh¼?b?pÝ?@?¡œ4?ˆáË?6ã?ñÇ>)û™? +zÉ?’êV?Ÿñø?¬¡¸?ì·?—¹?¥NV@"^?àÔÚ?Ç '?rˆÎ?ÁÆ>DíŸ>Í@>kr?5 ?aŽˆ?Ÿ?–à½?>*p?_é>ø¡ñ? V?{;¨?‹K9?Dýè?6ö@¡@ÉW>¨­1>‹C?„#W?ˆ‘³?ÆA­?Â/?™ÑÏ?˜ a?Ã3m?¹Y?„I ?š¹}?ç•Ù?ºÉ>Ö7È?H®¦?Æ‘%?›ð?/z?3`X?7·Û?Vu†?|\´?fÚÓ?? ?‚Ú"? 1?8Y>º¡*?P×±?Þ?‰Rá?zO½?ª'ö?¼à?Åa¾?Ç&?Š°z?‚ôÅ?Ã.é?͆¾?ö#?É?ˆ?QH=¸²0?Mée?O”O?2S?b¸˜?¹3Ï?¨…H?‰?°õp@0S?Ø­Þ?oÌ™?|qø?…¿â?Ýì@#Gj?»ïC? ;? "ò?Ú©º?æÈ?õ&N?ÔzR?Æø‡?Æ‹ú?æŽ?òB?…Ð?qŒÒ?Ž[?š¹ê?• ú?ßU?€½?·?:?¹)g?SÅ?JSø??€>?þÔ?àV‹?Ò62?¹bœ?r6N?ˆ @4–ä@ `Q?Ÿ¦N?…Ë`?fÀ³?:J?xK?aæ½?†ša?0HÐ?7t?RfK?f¢ø?M|ß?T­ó?ØÕ*?çU?íþD?ó~Û@ ú­@ +?Ä?=É?Wà*?éÂv?çüÍ?ìªÿ?ì‚a?á! ?Îo?š7?ª?Ø&? “+>Ø}ü>³xã>C#?KÿN?ÃÖ ?é.@¤‹@P@€ìÝ@^?À@LwØ@-ðÅ@2?²‘Ù?Œbõ@?tÜ@^=ô@9U?îÂ…@M‹¤@W@ +y@ûC@ZH@Yþ @A9Ý@6YÁ@ 6@;¼œ@ߪ@ÔÑQ@­S@‘ªÜ@k¤(@ƒ¥-@¢ÛW@™ëS@‹7D@“&@˜­Â@£ó@±Þ@‡±Ï@E¬@ˆ—@¤E@¨ÏÉ@©ëˆ@¯ª5@³í @âçæ@øRâ@Ï€@ÃÍC@Æc+@Æl‡@³œ£@¯5U@¾æ@É…@Žsx@‰¥Ÿ@ˆ‡<@‡?V@Ý|@ð'@h9þ@pí2@i @‚Ü!@ e`@l|@$Ø1@(vV@3i¶@E”0@zÿ#@jd˜@KSŸ@Fþ @D(‹@E×´@Eb¡@<«#@3”@P®@ru@d¯@U ~?á÷>>>b(?4_o?’%\?ó-¡@!Y@‡@E@È!@ ÅÚ@ñß@¡¸?æx¢?Ô ¤@O¡@yG8@Óù?íç@!g@*ž+?ÄÀx?¦Uî@w¤@ +Äu?ò[+?î›d?±1ç?›Š¡@'ó@;Û¸?¦òë?‹T‘?yô*?{÷ˆ?‚.?ƒ@eœ@%q°@*? @, >@âI@L>?õ¾Ù?ý\c@"¿¾@hª?é¸c?éKñ@ì˜@s)?!i?™µ?Ñv?ÙŽî@¸/@ÁË?°Qó?­Ø?í Ã?ú7©@5•€@3@?Å®?Í5@ @ä*?Áºå?Å?Ç:e+?º—6@¢°@F|W@j®@ø˜q?j7*@4Ÿ@*á—@ü„?ûäJ>uî6>‘‚à@=ƒm@<*@%þr@( @'ç@ii?ÇIÈ?¤~X?Xd¦?Èý?×P@!¿_@ +@_ù@ ??ñ¨j?òD*?þ|ý?úÜG?çöj?ÕÒ?Žà–?–»€?Áõ‡?¼?×â–?ÚÀÜ?óD=?õ$ù@ ±i@Ïv?Üüº?À#u?Ãv«?¾èG?Ú©õ?û…Å@ Î@oÙ@5@ßU@ ÒB@)\ê@Ý-?`Î ?{Âó?”1 ?‘´? ïà?®X@ü•@I/@2‘@FŽ·?è£d?nß?ë‘û@-t@ L?¦ö±?ž‹†?‹“ ?‰Ö{?©\–?´Æ|?Œ?‚R@D5@ <µ?áxz?Ü)À?}‡?*ñ@/@j•@C¾š@ùº?å`ƒ>ï¶ò?2L8?ï{÷?ñº.@#Ô•@(Î?\ûð?Ä”?Ïñt@+y?®·?nu|?³“V?îõ„?ûÝH@Ž?ãBD?Q³ÿ?Qç?µ®Œ?À@î@À?Ú‘C?´±W?¥Êï?£ås?™$»?ƒ3Œ?R^³>ëB?$à=?äiÂ?೘?ÎzÉ?ÆÈS?Êüo?¿s”?²k?°e¥?ï 3@¢Ø@%µ?7$÷?@9ž?¯å·?°˜Ë?Þý®?Ô,»?ï@¥?è÷s?¿³†?¸Aw?L?i•>?~ê?šlT?¼z+@UÕI@[Œæ?¿àÅ?®®c?‡&„?€ŽÄ?©½Ã?ÊP?»Õ4?˜hZ?•„?ŽÑû?‚ k??Š?Gƒ"?î’õ@¾2?×’M?®5T?¦©N?žnÇ?±>2?ñÍJ?Ø6>À`ð>áŒ/?-Ãô?<>s'´>òÒ1?o™W?…åJ?·qi?¨?ÇXA?å`m?Ùzæ?ÞÃ?–h—?†k…?r ƒ?Gð©?ªDÐ@î³@!/??ã â?Ú7,?¤8?^k?¼çg?×Ø<@¥@)d@)©E@Æ9@a·@#Ó@*´a@ =R@½?«‰ˆ?ŒjT?Z?3XR??×ö?M7÷?~Ó,?çc)?ÙþL=—(U<“«\?D—b?RÀú?‚R÷?…5Ó?‡?’­Q?Ÿºü?®–?š˜þ?Õ÷?²:@Y@æ…@FÌ?ñ<Ì?ˆ¼¯?cs?͆x@á>?óø0?¦™3?h3<<@Yè>æ“?öõ²?óâr?c$§?Bkè?7…2?CHÜ?lØ?I7?h¯‹?p‘ú?™Ü?¨âS?°3o?¬L)?~ƒ?>P×?–§ç?÷E©?½.ˆ=Fý>>Þf?P{–? Cè@K@Þ?¯$o?¦Ï@@š±?·|R?²ñ_?…2?‹þ,?’Ü ?•Å?|ûL?iªO>þ_'? ­?qm?tó?'½˜?cn_?’Ö±?,6H=ƒÊ·=ÒŽì?:+@ø:?Õ°•?¹H:?\O{? Å?HÕð?_ÿ±?p »?fŠ? Šþ?H(?‰ ß?,F>ž#ä?5þ_?h“—>îš=l[ô;£oj>ÿß?â?^J?RŸ>®¾E>“yá?wi?±Ð“@Áw?Á¼î@$‰ç@%8þ?ƒB¿?^ .?o»>ûîì>ÆÖ?˜þž?ÈÉ?Eb=ƒë>èË?©Í‘?™’Î@:O@Äì?÷h*?Ú-º?s4é>í¤?uFç?Î÷Ï?µ=L?oÑù?_Œ”>¿@¤>™AN>É¢ß>Ö£D?Ó‚4?ð·?IÖd>ô ?5}¤?Gåò?Lö ?S>ûŠ¾>;:a>n÷’>d¿> Yå>ø>¸“> t?>³Å?e£?Öë +?Ѿµ<·Æ„<„EL?ár? ìV?óú?úB?‰J?À>Ó  >åÑ>’h[>†å%?( V?6Þ?Z+Í?X–?œÎï?®v?]Òe?*¯>Oíº="ÝK?=mù?€½‚?%ë?c??ÿÂ?O'?‚)?’(?ÄŒk?ˤ?‹\?u À?€,]?…Ï1?yE ?aþ?ˆÝ…?“v@|@'l?•j+?Ð?”Ö†?½ „>ðšj=êþ¨=´ðÈ=‘êX>—q>èÁ-?u$G?†g¡>c]?6ƒ«?|ˆ? ê?´û>Üh¢>»ÁY=ˆ">–Ç»>šÑu?Œª>?«ìŠ?·óñ?¾?&&â>÷5=v¤Û=œ ô=ÙÒ?Y?'¤´?ÏÙf?Ôm?†VR?‚+í?¢W?¡c>›ÐÙ>Úã?½y´?Ä¿u?Bc?ª³?›ÿ?#X‘?»SI?°g%=Gûc>Úƒü=êõ>žs?ž³‰?“ë?‚h†?df >±ŠR>±éI>XôU>èÎË?¢{í?…á?‹÷?…­'?V!K?5ú6>º¼æ?‡H??Ü?x`?&Ý?g?»°?ØÇ=@°@ -Ë@0?áþ?‚a?@>Æõî?e?\ ?Wâõ?S+ø?°‡>îˆa?#âK?GÉ¢?Š2?©ù?qŒµ?/Ï?P º?d ?z˜??‚Ê?§:ì?¼Í'?Ã=… +:>¹è¿>ü™?ð1î@„é?£?n|Ö>“†ƒ>!?ÖRe@ôå?%cÊ>Ë°¬?AWL?Iêi?€%?~œ?O©?Qn#?¡ä«?®ú>²œ.>Š™?Ù?Çò@/Ê­@1Dñ?úu¿?éßî<>îi>°®?†ão?jÊU>(A´?mZC?o?ƒW?g™E?`ç?=+Þ?«i?«}Î?«=¬?¤¥š?¦z6?¯Ò?¸,?™M³?Zö¨?:¤? ix?)€?Q£˜?\–Ž?v#ë?z”p? ?¼‹?„kŠ?8¨$?ÂÛ?ˆl~?¨«Å?0)ö>Ï^'?‘Cµ?³W_?ã‡S?ðò?p_N?:pY?W b?N"J?š¹%?›ý ?…é?„ µ@¡[@öª?ªlÆ?¢z¨?MK?dƒ?»ßd?Ô˜@73&@x=Yªœ>{ ?„I"?µL@ ?ìÛ?[?•_p@,?ËyÄ?jÐ?*Òh?Vð ?,qÊ?{­?mó†?¦*?º±?ÆÔn?½Îä?´Žµ?I7U>ì+L@ "ê@5/a?ÊÐ5?šÎ?Æ?õ?ÍÏ0?ÔË>ÿ«Œ?Ÿ7?‡K‡@9Mõ@2(ù?w¤´?‚Ó?ÔƒW?²Pº> ºp>•&,?]øá?T=?Q˜ï?hB±?~ï¦?²nõ@dE?öÇ?âÛ??Üäà?ÛÏ,?œdk?>Òú?3à»?"q?ó|\@+m÷?‰½Ó>m=‡?N?…Û?ìx»@q@ž@ø3@\Ÿ@•Ü?Ë>M?Æž“?'Ú? @¶?] |?TŠz?;?_Þ?°Î¼?¾—@lÓ@“ù@ûÂ?Þ¯ñ>³æß?|?Nô?°ÆI@6ö?‘}Ï>fšE?NûÁ?š{g@¬@%P1?“xð?7Ž?ü4]@Ê@¥¤@ fÀ?…%6?jd ?íÓª?õ@¦@FÞ@ÕÊ@Ãà?õà?Å.?Íí ?æ$?ýI¨@,Að@!?Ý{°?Ã&À?ˆOÇ?7æ>QúU?=#?¾Û:?¯¢m?—–?®€?È3@mÓD@£ê£@%ëL?©¢K?ø«@ Àä@¨@¦¹@`Ek@sЯ@JÙ@@üN@5 @5ˆF?ë?ñá8@d|Ù@a}@`l+@cü@Sõ +@PUg@6U@^» @µx—@¨¯ø@‚Þ¬@fh÷@'fq@€`~@ÅW@Ê!$@Ñ/U@ÐÏ@ÏnÞ@¶•^@Ÿ¬·@˜`…@•0@ä¦@‹¬ô@¤©Þ@¯ 8@À '@Æ’@¦6Œ@œ0@ÔÏò@ßN@¿Æ&@¼X@ž9‘@˜Jº@Ñà@ŸZÍ@žÑ@fŠ@A «@Hcì@ƒÉ%@ÆM@k\\@sé@‰aK@n+?àQ&@¾@-Ÿ@7;@Pè@m@À @zvÄ@6a@.õc@&ý°@è±@ ’å@-•ð@Zµ@:¸o@ÉÁ?éÌ?œh’@Ü@@+ŠT@¹ö@r9?ûU?@00@>9@\kL@Xýµ@U‘à@M—N@G/4@[ûG@e"Á?õ &?²ïê@ l@0Ý?‡_?C^@$w@(CM@Ÿº?òTã@'…@1*?œ;,?s?¦Àö?°˜±?H²ú?)Ï?yÓr?ÇØ@ZÞx@_;@@j<@>€@"ß@"QY?à ?Ç÷ü@oð@g¨'?oÌ?•fK?¹Ve?ÂÏ?´ÝM?«5¬?ç›Ë?Ût^?¨äf?ªêÎ@)û2@#(?ºÄ|?ª¿•?u5C?6@vX@#o@@@K@3˜%?‰?ŒT3?š17?¬°U@Ÿl@ƒÀ?•fA?žx¬@µE@b³@dË@w¦j?¬þ¬?¹ýh@¢?ûp?¥«Í?¢ÌZ?·rB?©¸Ò?5î¼?;r@C=@»®?ÂÙ?Æ +V?€-F?£‰@ÆÀ@ ?àƸ?Û™`?¾$5?Å @{‹@Ð×?ä¦?Þ¨ç@©†@ Hh@ß}@¤8?[uá?ð;@@.H‡@~ו@‰Ÿ@•?ú¢q?ͬ?ÂðŠ?àÿ?âÔ@ ð7@¹+@tY@´?®,x?_Äþ?ÇŠb?ø½—?š¥.?8Ã1?³fx?íÅÙ@(ÆO@PŸ_@1“®@—Ì@ ¤š?ôMŠ@Ý@8xÈ@/RÉ@›@÷ú@ÿÓ@¹—?°Yû?Õš@ ³=?ô4š?”æ[?™t‹? y/?Ì¢?›6?™zë?¤i°?®·¯@ 7j@$ 4?³#ˆ?¨j˜>6·=¬2X>÷má?øše>Õ>>ý>å´¨?ÿØ?Èšó?êä?ÛÚÅ@Kýß@QQ?ÉAæ?¶€“?ö„Â@ 0?Ééƒ?¥´?«ê?©SÞ?Z×g?^³?§‚€?ýù¤?ÝB~?»ä?ÑÌ?ö=9?è—a?ÆŠr?Û]@§î@ )h@ ¥¿@ +Ì@Œ›@Ð@íÊ@@®@ 2@  @ÜY?ýV¨@èK@1”@?ôXs?÷›ñ?ýÊ?É3?XÅ?xB?ç–1?Ú–G?8??¶u)?¶^ñ>eïV>úø?«à ?ÒFr?aôá? E"?‰Ò?³ññi½?$?¡³R?«ee@@Žx@ES?¢=À?\fØ?Ãq:?ìáá?Ϩ+?ÂÞ\?œÆt?D ?YFç?O:S?‰®?ï ñ?ƒ?ý?néÁ?V?To?[*ë?aíÔ@Ïy@NþŽ@ ƒ>’pÄ?‰?m¼,?r!o?œä?™N&?i—à?}Þ¡?ËÞæ?êÅô?9à?R?¦:µ?ìuå?¦Ù•<­^>/?ˆ?…Ð?ŒüU@ <<@ô?íÊ?ä¸e?é¡a?ã>Ä?Èï°?«‚s?­P?ˆ?Ðí ?¶?°7’_¨?c7,?¼ P?uº,=ÅÊl>‰äô?f¬ ?fÓ?K—X?Y¿€>€v–>r2>æ>?‹{?[q?DZ¨=šF’>[ÍX=ÏýR=ýZô?\Åp?¹?œ¤T?•<ž?¸•>@hÄ@ù?²Cõ?®8o?ém??ºú£?­4˜?´›ô?±›W?Àæ9?Øp€?Òy?ÛxK?ÜÓ÷?­³½?¨u2?q^?gì?º÷¤?ÒÅ„?r?hy¼?Šb,?®—Ö?°Í/?µjÏ?³ÖS?ì®?ñt.?¥14?«zÿ?§-š?”–‘?m.Ä?C{?då+?‡€?-ÞÛ:Ï ù>’8O?¼ùâ?¸„×?`ý?(¥>ôO†>îÍ?ì¶@ +ù?ùí +?ìÅW@eA@ ¢@®]@£–?½ì£>ñçá? +?,{[?àq?òCw?¹>æ>ô¸&?M}Ó?õÂt?öÌ÷…>°A>Ø_ê?@™ò?‡DÞ? JB>¿1?k½†?…úÓ?–øj?f?‚¯? [?’—?òË?(þ´?vÄ? +ÓP>¼qF>Áy? Žv? ;Ò? +Â(>²õH>Žˆ >„Iµ>Œ·;g•:>9v?ÂG?™ãn?Il@=b@‹OÈ>ØP'?-åÓ?Öº?<ø}?e8†??x>Æ2ý>Óí>ßÖ“?-B?ÙdM?ÍË?×u?åD_?¶Æ*?°_ã?)}d>L¥?%8Ý?›µ?Ž« ?Cóì?l‘?Ä”P?¹¥>ïã>÷åÄ?œÃm?¬Â@?‡š?tøŠ?L2>Š-©>¢a¸>™8+>úšc?<€£?6ή?1´?Æ>%K±>.â>lT>-f¸=ŽA=Èj»>ú‰>éoM<ÁW:=eo3>û«>ûïh?ÛmT?Øûå?_–Ö?M¸î?…Ì?ƒ K?µ0?·5ç?w09?vÇ?€8?~ Ž?§“?´@$?2;Ç>ÿY?eÀ³?€ˆ?Ãh>ÿÿn>pKŽ>?HÌ>l…J>ŒØV?ké²?0?8ó?Žñ?Ù?®i?lâü?‚5?¥Ç¹?®ƒÒ?‚\0?gXI?ßz¤>Ô²k>Éñæ>ÈÓz>딬?dJj?n—ñ>³ýc>s?‡W2?˜/†?] +C?SßÂ>‘ 1>3n?‹¼ª?¨Cµ>E¡T? `B?”s?t5?~Rk=½Ï‚>ÈÊ€>ÏJî> ¿·>ÿ @*á@âÂ?@ê?<'ð@"?ÿ>fݪ>QS#>¥®J>¹{ò?'€œ?&‡ë?i\¡?ruï?ŠÖî?‡!»?}ˆ?qÒú?UÝ?$|Ì?®ê«?¢ò?Ž8 ?—”»?²ËP?¨N×?‚hª?c'œ?8ë?_¥?A’T?4¹?vi?!U®?bÐ?iD>ñX¡?µŽ»?·ü˜?ºl ?’›s?Ç…?:Ñ?ƒ¾?ŠiI?“'b?+¼?‚™Ú?Gí¬?Y?q¾X?° ²?VÍ(>ÄI>F;æ>Þ q?AU¬?gFR?‚µg>ÌÕ\?ï ?GÓÜ?F¨?S Z?\v0?eÊL?¡ÜË?ºKð>Îéþ5ú?6Ë >Žƒ¹>1µˆ?¬ÈÓ?Æ÷@—B@ƒ\>¬Uï@í¿@†Ü?`ý?LM†?@_·?8Ø>Ë9>²LÙ?4 Ö?Bíð?µÏ?´Èb?ƒ#3?‚rV?yEÜ?r¦²?S¹?‡õ? Yl?2pg?®7?«Žù?¸äØ?ŸY?$b?7ts?\¶ž?Zã?iM&?‚7&?›ŠC?£¿?¢È^?²z?Ñ3=?ã\?ò4Ù?Ôغ?¿T?îJö@ +h?ª9v w>žB?3?œs?1´?L?ÿV?æ@&?„D•?š*?Ôk¡?”Y?=µ&H>×"Í?€Ïa?V)?hÕ?Bß?„o¼?³J?ØŸ?¹Ý+?¥Å5?¦C?©ÙT?Åðq?×ÙU?æP?‰ã‡@gæ@8@ú…?ñà÷?î"Ï?ó#>‰6z=GB@+o@"ÇÛ?-Ž?9¢Ð>{>Ïê|@µ @ + +ƒ>ÆÀ?F÷?„Þ??q6Ò?#±?D°ë?‹ºd?¶¦g@Ô@*S@!è?æ‡r?„ûæ?WÛ“?Òƒ?}³n?£ec@ ÊÞ@1Å›@*Ýs@&Ud?´yh?‚¿?º«?ÊLÂ?Щµ?Õ¡@(’@ +¼™?ýÑ?ú X?ÕEä?ÐjI?Þc+?Ë?UÒ[?`l?˜ºt?’á?QZ?¬¢A@–\?ë]Í?-µµ?£Ÿ@7V?ò¥+?í=©?ÚÁ¸?ÇÐÈ@©I@8Ïç@ÿ6?É„F?ôG%@HÙ?~™V?AÎÜ?˜7C?¨ÒÍ?ÚE?Ùàú@0´4@3Q @1(@/d@3ï>@( ?…,Â?¦[@$8@%*•@3ˆp@)†²@#Ü@  $@K+?äð?nL?|?¡‘®@#Å@Q÷ù@ ?Ç—i@7“\@o 4@8¹@–ø@ + 1@·@ +Úù@ ‰X@a’@sd_@Wé@TF´@Êõ@Å@[(•@Tmý@ká@gL"@#a–@"µr@;'7@H:¹@€ÈÆ@{9@lyB@bºô@\O@[´@P]o@“ ù@×v@Áå(@©ü‡@ÈÇ@å|½@žÔ€@PÈ@M2@KÛ@Œ•Ã@Ÿâ@®wû@¶ô@®I@¬Î@ þå@ê¥@åe6@õdr@ª`%@ ¹@³ÿ‚@¹…–@~¬Œ@{Òw@b!(@_‘Ú@T&@çq@ff@[<@ ¬@$*@o +D@d‹@2â@ ‹K?çÄõ?ì(?ðŠî@m¸@eV=@;‰ú?Ùlg?ñ^Ù@— @½ï@8³@R C@pÚØ@1¤Ç?ã–¾?ïòK?ù”[@Œg@ÍðÿA  A%ü‘@±Í@#nÍ?ÒF?ž8’@J>v@€’:@!öÔ?þ&¿?ãg¤?á‹‚?›’Š?‚Ü)?ÕX¸?é¥U?ÎÈú?Ä‹1?à»?èýÁ@2ã@@; Ê@ KX@‡@']p@*i¤?F°?”Ä@„`@fU? .%?jÁ@]öo@c׬@}iñ@{4T?Ù•Ö?ß+‰@Ìÿ@)á@ð@‰W]?àöU?Ûj’@ +‚õ@<™@3Bg@5VD@B|å@@¢@-b@0ÝÈ@BDá@B1@D†ò@: ?þz? ÝŒ?ýè?-ìû@Ù?ýà?%R?w¸?&6?1BO?³D«?Í+õ@6¥)@,I[?õ¸,@˜â@ ø(@)9?²_?*­@vY@¬ç?Û‡?ìq:@GÏ@AÖ?ä•?æIP?„äI?‡ÌW?ÿ´œ?ù|x?€)T?€~Ú?Ÿb§?¦j­?[Ãð?jKÿ?Öª1?Ò–b?ð¸¶?ö¯?ÿg>?ÿy:?¾4W?´Åõ?¨&¼?©Å·?•5%?$ø?ÅQp?ÊÌ@"â@)4é?}ºS? ¦?hCÌ?‚é%?¶®ê?Çga@(Õ@Èf?Ør?·RÂ? é?Ž£?”…?›¬ç?±ßƒ?¹À?æy…@o@=Â@iñ@"P—?¯Bé?³Q?Æp³?¹ª?²j÷?Ô[?þLh@g@¥?êÍ?°Ù_?Éua@²ß@G'?Îi‰?Î[÷?ß®¿?ÉM:?Gø?`2_?–??—K?Ï]´?Ï*(@P¿‚@L°?ˆJÏ?z¯Ÿ?¸Ø?»ºb?½Ð¼?Á"W?áíM?ä°@ “@&q?Ì·?¨+J?Å^®?ÖR±?ÆŸ†?½Ñø?¾~i?ºù;?±ƒ ?¨@Ðè@Wôg@@¾.@n?弑?g˜?S?iTã?pÏ…?º*¸?Ŷ@J@Gh@NR˜@Mv?Ö;I?½.4?’>?W—?¯¾@?ÌÒx@Ày@"ö?Â\k?c b?ðQ¸@3ND@)Ø…@Ùï@ ÕØ?ö;W?äÚº?¸ˆÅ?±Ì[V>‡Q“?-_?&ʳ@5M@GkÇ?’é•? Fï?w§?°çþ?ÕF;?íú@˜k@—É?òC?o³?†xL?Ô*h?ß>?³IM?¹ù†?|Õ?nài?\®:?DÄ?X±>îmÕ?5Og?v¸?¤òë?ϱŒ?©s?â3?(7?ôÈ?ðr>üÛ>Ú3I?›æV?²ót?`§`?`Ø?’A`?ìt ?Úˆ?­Ðž?¤þÒ?¨½Ó?¥ ”@F9@ÔË?æ2Ž?Ðþ!?öŽ@w›@ e%@Ø?Ö _>ê¾–??U7@†È@…û@ ¢Ø@M?¨2?±?î ²@ V+?ñ¯?ÇÒ?­ÞJ?ˆhg?˜ÇŸ@ºP@¨ +?ì #?è¬!?¶A0? Sf?阬@õ‹?Ñ d?‹ G?¡@ +?ïv‚@° @A@= +/@ïÛ@ ZŽ?÷ZE?è=¤@"t$@M+(@@—F@>w‰@;r?Íî{?ɺ?ìÓøY>«ç>¤³>M–[>M-¾>ùý#?8Ì4?Ò >¤ix?Ã(?ëë?æäÊ>ɧ>‹0>©×É>Ù?n?P4¿?ŒŠú?©s|?Îvè?ÈND?Œy¿?›ðã?­´¯?­Å}@Ôo@=?½1X? Õn?›éz?ùÙ?¦Èz?Î*?Ç0Ð?ØkQ?ز=é¦P>Œ×“? ˜?j›@c@ §§?Öºà?Ï:?³Ê}?Ô æ?Ñï?«?'?Œô?)?AÜ?U{ñ?4£Ô?šo­?‡»Ý?ÖÆ)?Ò‚?º¶?µò‚?Á½ì?ÏÀ ?ý:Ì@õ?­ˆ?>”êc?D“?¶#i?ºÜ?¸Òw?Ôhœ@jø@&Ñ@ Áä@ y?…ï?ŸÈ×?ê×b?ß4?w î?…€-?»Ö>?¶Ku?•Û;?œfp?˜|W?—t4?²"ü?¹aó?¿ñò@ Ré@t‘@*È>×Dÿ??$½>Çqm<0µ =<º ?˜‘Ñ?Ë£?Ž‹W?†>?ê1ó?î­³?3Ï?Ó ?œž>¶K> =Ÿ>Lh:>†³W>m>]>!%ø? §ß? ? æk>”+?zØ?ŠW&>èá‹?Q0j?¹L?Rîà@'wC@)§‰>Ðc>ð‘F?,6P?5K4?¨WH@D‡?óÀØ>7Ó> ?t?- ï>£Sî=€…S= Y‰<}3Ö<“3•>ƒT>kÏ9?à?‚áŸ?+ Ô?G>ÐC>‡8>òp?/#–?!:>ïÐ?,¦ð?Àþ?ºàt=ŸY=^—?j,|?s;?wQ‚?~_g?£«Ó?¬(?3 M>°ëÓ>mS€>: ­?¼€?wN‹?_î‘?BÀì?¡ >¥­M>á–I?=Ü?CDJ? ôL? n>ú‘n>áy<æ9@>û«‰>ø>+>ê4É? >©e>»v>?“?›÷,?Ÿ?¨Ðµ?ð^>´àõ?•N’?¡›?oÙ0?hš ? •Â? +¬`?£àå?¾¢?‰¾P?sÞ)?`+î?QcF>ò²Ê>»w?ÃT?å)?˜÷?Gã-?"?­f?»`?ÊE?c!°?€ãT?@ƒ?ÿ?›lq?¹‚?Äc§?ÄsZ?<Œ¢? ˆå>%JÒ=ˆ¥?µ +û?Ùè?4¿>µ¾³?ƒF8?š>Ð?2Ò? +ò?ãnu@°n?i¿«?2  ?R%I?MKÌ? rÌ?غ>¹Œò>…ãÏ?ã€w?ý”í>&^Å=}(?bdÔ?erÌ?¤)? ê>ÈÈò>¼l\?½p¿?Çt?Qr?T— @Ž@@?vå?]÷=É¡~?•GÌ?Šk?AJ?-?±tË?¥ã`?M¾?y”?Y>ß—Ò>Sã>G*à>6\×>Õ¢"?’º'?Š?Wƒl?Tóß?6η?Tçü?…p?mém?<ëõ?X¯µ?’÷ä?Fi>Ž:öæÆ?‚‘¦?‚•?‚—*?Cþ6?›¥?Xªé?•òè?9óú>¥ ž?%ßÿ?[FA???W«v?‚±¬>ü§>3½8?\ &? ‡?Î[>R)9=OÚUGÚ@9W"@[‚½?œÐr?]ã®?„Ðß?­?¬ &?¤†ñ?Ùì?îÿž?"!f?´?#‹?žE?œ?~?—àP>¥Nƒ>¤ÍÁ?ƒ›?ý]?o~?kˆ¬?•?F3Ï?þ“?ùR?¿ã9?±µP?Š9d?fqž>‰„£>ñ¬B?fÀü?Q´?,,)?=tV?Ub?5–Ô?kç?hL?Å.p?ƒ?Oü˜?ÎJ@$fê?½¶3>•Ï?–f@ð»?Í9Ö?—=?O­å?u›?—/?ÆKƒ? ]Ù=ÁD6?8âË?v¬Ð?`¾m?jea?©sŸ?´Žè@ ÒA@Њ?Â"?·ä!?¿?ñ¼?€2U?€~²?N^[?Sã?„ ¡?€Ö|??7 +?´*Ú?«{?£6Í?—bd?/:>Öžã=?&Ã>‘\Ÿ?„C?…½u?Š¡6?6±¹>Q$Ñ?[ß?Z9?Ÿí?¦0‹?®ú*?«¢°?²;~?¬±?¤Ó6?‘Mê?„‡™?–ÿÄ?Ý}?+Ë>§ø¬?®m?&¼?^ùF?p‹Æ?;ì?®3?sØo?€îÒ?„°-?ˆ:?jE?}¼i?júV?n·ä?¨¨?·E%?Øí?«zÍ>¤jí? J×?„â¿?ðÛ?¢d?–ÍQ?…]_?îq@9¼?ä—Ë?(3?¹ ,@ÿb?ÿY¿?ú+Í?œpo?[Ça?ò¨è@Àå?Žº!?#þ?tfT?‡c?%W*?'n?6j¿?Do?Ó?ÔB¬?§ö?«k2?¯¸ ?¦¤?8JO?E¸§?\SÝ?=@?¹V?{$@D?ÌÛŽ?n‡ ?Ç‚“@ ¬?ð!ä?”w}?©ª?¼Õ2?p ö??Á25@žÐ?ÚÚ?Êe ?ÄI?|Ÿu?ƒÕx?…3a@…@¾ï?¢ )?¦=?Üï'?õWX@bþ@SjK?ñKq?ê7î?ðÍ?õÛP?ã'??Ïúì?­Ìs?»çµ?Ç®å?¹05?™}ˆ?Õêp@h@jtÇ@‘?@@à?Ä…7@„Sj@³xc@w@C£@hYÓ@qÈÚ@XÌõ@PÄ@x³G@…ý@!à@ Q¹@CI@?°@R0@WÝ@8á@@„G@|‘ö@z$Þ@hfÎ@sxW@õ@žž¸@À‹’@šÊÆ@ xù@[”@³†@„òa@Î8@ã@ˆƒ@…ì¡@½Fð@¯Êp@¡¨ @žZ›@›@¬î@¶\@ %>@˜„d@t@§:@ÑGç@Ù°@¦êd@¢,@€@}ìM@eÖ@`X5@N(S@LŒN@F(Û@KÌò@’ú0@C@MÅî@Xå@ D +@$·@,lÎ@RG£@¦Yj@~ôv?E_?jµ?˜‘k?¸§œ?ø J@¢@ N8@é­@“¡@Aþ@ 6ë@&¶ +@E6¨@&Ô@’A?õ*?îT‘?ú°Ä?ü¥G@XXä@¥Ý@;¢¤@-s@H·@­Ë@(†¾@1Äv?òˆ?Äzµ@\’k@~ º?øró?­ux@¬@(ÙD@ç¼@xÌ@'ï@è=@CG˜@L')?ï|?Ýk @4Ù@<Ç?¸ƒ›?¢hÚ?Ál?Ã{•?›.?†Ã„@À@G£@Žó@£@3KÙ@.Ð|@ –<@”Ý@w+z@vAç@6Ÿú@4³½@-I|@-f@ì@=E?åÈ?úÕ@"që@$ @S}h@E +Œ?§ +M?Ÿû¹?˜ä?Ÿ,{@p?üÝá?ÃëV?±*„=ÙÄ>¿ÂW@ +MÄ@Že?á4?ìK“@6 +@3Nd@X‹@èÛ@ ö¶@’G?:÷?nÕ@@îª@5‹n?€Œÿ?™¦@Yv™@N|)?;­??:‰?ÀzG?Ãl?ÿ;·?ûk¿?€*2?„…Ü@&ë@ Â*?¢Yj?kÚ@Æù@Ê@ˆ@º&?ÞŠ?߆c?ŽvY?“^H?¯ ù?«¡È?½`?¿@I?ÝÞŽ?æ«“@oud@/@B„ÿ@:²«?ᯢ?»v ?Fþn? qD?ÝŽ@´¯@¾<@¡1?üÛ?æF†?¹RÄ?¡«ì?Š J?†Sa,>÷Ñb?=—?†aV?‹†˜?Õ7{@+6;@'?dÂ>?¥L½@-ú@'«?µ{?«8à?3äA?I£Ò?íÉ«?èBÛ?çÄú?ïšþ@‚©t@„¢ç?’Ç‚?ƒEK?긇?øü>?9Ø?žÌ?)m-?<=é@ˆü@3†-?ÃG?yÏè?Œ‰Ž?—©ô?Óæ?ôñ¾?Ò²Ž?ºøû?±¸?¢?»ˆÃ?âå‚?–s=zAê>݇¶?¾ßL?¹M ?¶¹P?ÉïÜ@,XÈ@#³ñ?ÆD­?Ô]_?ââ?ð¥4?¶§^?µßQ?íÅU?÷aÔ?½'8?¦>â?óÙÑ@lw?¢ŽQ?Ø©?ƒY?¸õ’@8#@7È=@T:v@€™ˆ@EæÙ?ˆÒÓ?„ˆ>?Nn?Eš?.B?9n?¸Ì?¸ó?íæ$?âoó@$â¢@0Vû?O}? ¹‚@­@8´À@_­?ÁÕâ?Äæ?À¾X?¨ á?sév?”Ǭ?çœq?ñ,?×V®?Òmp?¾S¥?Ä|à?C?”˜?¡ ?™’ß?Š©a?‚.?Æ>?ðfG?­”?a„l?†a?¦µÖ?˜?ž?kÛ—?2±—=3Ž?<žx?C¶?ç|&?åû¥?ñ!Ï?忶?–9¸?p^û?ÞS'@y]?ý¤d?ѧ=?×ý5?Άã?ÕÖZ@?þ¨@DÁ?ûv?–µ?Šþk?ËÌÏ?áòX?p×2>îo€?’‘?ì ?éDÆ?íë¬?ÑË~?P-†?Kã7?aº¡?L€¯?1hë?7#?Ö6Ð@.?¬ÝQ?lª?¡Û‚?ÛÈÿ?Âà;?nð^?£w¸@=Vë@6J?¦‹?°9C?§›2?«A?êÉ@ïL@ Ò÷@×Î?ÝÌ?Šu? ô?eêœ?q;Ó?ƒ³?Žàv?=¸)?5¤?Ö1Æ@ ¥Œ?çf"?¸?ÅÏ?ÂIX?Ê@ ùj@ Ý?îî?é9@¬ö@ ÖX?ëi ?ÜÕó?ÇO§?–Ów?’Ç?Ž¹ê?’'M@9|@C„_@at?î-Ü?žæÔ?lžU?Ò„ó@¬É@ÃÌ?â<š?í‘m?ç/¬?ç ‹?Ý2ƒ?Óø‹@'@'¹v@8?±ò=?‹ª¶>üŒÃ?E´Ð@»H@Â=?ž«Í?¥«’?ïP@P?Þ/~?¿+æ?âf_@ Èn?ýö>ÖÊØ>Äêq?ö\?ŠÅ?`1j?;)N?Cåy?K¢?_(?“"Ä?¶;½@É£@ Xþ>ç4?â”?>è¥=¡è¼>l?¬á@?­Å³?Ô)? º3?&†÷?"¼‡?Mtæ?y÷?žÑ?Ù`?Åh¨>ÖØ·?…÷@!ú@ÊŽ?ë4Ý?Ó®‹@âr@1Q³??˜4a?mãS?ß?Žö@‹$@ #Ç?ð`?Û0›?ÔOÛ?Ï @/@Ô¾@=ÓÊ@JFo@#W@9Á?·Í:?‡&=?™‘Û?­áH?…V?õ_?]¸÷?ÀYÏ?óêÒ@4ö@ÇÄ? 7¸?ËLu@Ú¤@ d?ž»¿?‹ j?¢zÐ?žül? +?*¸2?»àJ?³ä?{Äå?Í?ÖNõ?¾Çc?h)?uqK?þ?²A4@Â+@»­?Ù¦f?šió?3Ù>Ág>05?–w?uî±?4L?è_?=Ê?Jûm?¬sç?²>?g ð?eë?¦¾?+éo?Eïý>Š¬?ˆ?.AB>ò{“>˸Œ=h¸?2Rø?•7[?¼o?Û^¯>Ã6s>[Ô=]èW;2å{>É_u>ñ±.<8á«? ®C?ˆ5½@$?¶2©@ #@ £æ>¬Öe>¡j>ÿš?žØ?’Ôš?ú¬S?î2/?@…?·ß>33d=ßXÃ>Œ3œ>ÆÞK>Ó¤>àmÆ>äCµ>Øö\>Ïk=? ÊM?<(?D;4?E˜‹>´%Ö>M ª>°òš>þ™a?Îh?#ÇÒ?¢í>ðßÛ>ñ\,>ñÙ~>óÄS?rW?sB8?®$J?²]>ãëÅ>…oC>59€> F\=~N>¶¾m?6%?¨>(,>@0w=-¾=黎>º¤’? ,À?–á? +<ï>þ•Y>ðŸ>üŒi?jhí?^å>Â4˜>¶¿ >«Io>ŸÐÓ?0 6?8í?]‡>ýÏ€?ª Ç?¬¶y?­?ºA¬?9e³?Ks?R‹?h,?/.?¢>Ÿz=ºÖ¨>û!ä?#‡?“ÂÃ?ž-p?[qv?c€P?€£Œ?€?OˆÃ?=u¤?dF;?dL ?Õ]?áƳ?V-\?È_?I’„?`}©?âÍ ?ÿhr>Âû¨•?€#ýCE>Þé +>ö<-?ó?"P ?L•?{áª?l¼Ó?H¡„>Øë¦?)h×?³­½?…å$>&”R>ŽOK?k?%ç˜?|ú?£O=?Û‘Û?Æ»Z?¤ž3?c,>Ÿõú>aë<=ò”î?)?¹q¸?¢[ì?‚ˆ)?ž`½?Á°?ƒM/? ¢?lJ?4‘>©¯é=á8?¦»?‚Ÿ®?lÅo?V3@?‡Ê¼?žîu>õ­?“?NW?³ÄÂ?ËRn?„w?L?E2?NÚ.>‘Âý=]³>-rË> k;?U–k?c#?yP[?pÜ?nÃŒ?‡…Š?¨äì?§"u?ŠJ?î?ôâƒ@õ"?¦X?ùq>ô:D?ËM?‡i%?Œy˜?‘ +c?—ˆ^?­‹?¥öß?ƒÝ?{¬5?…ƒ?2‚?µ^?§Ðú?òÕ?–^? +Ìm?´ö?û? jÉ>Û>µ=>uŒ•>îã?_]?ió?ƒaÎ?r¹Í?MXn?ŒŒ?Å,$?¥Ë®?sÞ¿?Á‰ˆ@ ¹º?Ï@Ì?ƒŽe? +¦¬=íT/?¤„ª@Ö¹?°Y?oEÇ?ϼ@Fz?ªít?yÖè@ö«@6Ô?Ý?­O?èÑ[?÷ß?ÕT8?×Ń?U_3?6¡Õ? ±?óÌ?ßÏÂ?åÜo?B'A?=F?„ ?‚×W?Xû?y¤í@{@µ->“ÑZ>¦!(?$è?3¥S?€•ð?‚û?„D"?_þ?ª–?¤X>àÔ>“šÒ=å´,>ÛP¡?O#9?™®î?Æ£ë?“úÅ?R?S?º§ +?ì= ?§?„ˆ©?‹§6?’é×?¾2{?Å”€?‰ª?f‹ð?ï"?©è? ‡?.Ê?Kå?~”?†P¢?…D?„Ä2?ŠPÂ?À4K?¶ ?„Îø?”V4?ÖÔÇ?Ó1—?º3J?¤¦Ë?„äÔ?màª?=Þ?_B?§ŒI?ÄÆ?ô1é?£Èì?¸Ã?‘?¶­€?Ú´ +?èŠ?u’v>õq?Ž”?$ð @ Y@Cîô?tp‘?ßÕ?³[²?¼ +?ð9?ìO½?Ç£Q?ÀƒÅ?%¿Š?@q³?³£?¥§?X‹?‘žü@ IK?ÝOø?Hü? W@ § @‹E@­"?á?­³ü?°-?·Ù6?›À{?…3ç?…2Ü?…4T?/YÓ?3½@d&†@’ý ?­½ ?›&?®Zõ?½M\?¬ƒ?±›¶?¦Âq?¡üw?²„î?»±Ø@#¿@B?•G`?”F??F?“*­@5$?áð€?Ól?dòŒ?Ç®ó@ +ƒ@C"@.ö?šÏ‚?æ‘@)­?¦wú?Ò?hìZ?ž³@:u@e;^@*ëÿ@Ú[@¢j½@³Æ6@l£@[‚|@SR@L×÷@&ÖN@)ÜY?£Éº?­,|@ß·@-…@[b@d¾&@…S@sÖ@/ ¨@S·@›•@‰ÿ @G]@a”Ù@…òt@^éI@%KË@3ü@B–D@%°@#1@n+É@› @ŒÔ¼@…V@®Ó@Á×@Sj@ éd@Gx8@0’Ó?zF?G@M@¾ü@¥h@!V@U«?Ñ;>?ÐEÇ?¾Q?ÏB@ t×@š´@¿~@[d?F ?ˆr³@YÃ@L÷q?УV?Ó2·@)èŽ@)Iš?ök½?ó9¤?¯å|?°3µ?ï¸?¼Ï?€*:?€äS?œ›E?¥•]?ñ«§?ï4Û@ @ +½‘@¢@ÄÍ?ÃRÂ?¿š¼?3>Ûmº?ñ4?ÿ,p?ûw?óÁ?‹”À?~Ø&@oð|@‡¾??ÅjF?Éd?åw? +ÖM?æþ>þ=P?€}*?˜ów?ûr£@øH?ëW+?Õ_b@Ø@% Ñ?œæ^>ñ1]?šœ‚?Ö÷¸?–wb?UX1?˜‹=?½µ”?Z•?7µ~?ö_@X¨@@$¤@ýÛ?ëå?|EÜ?°§ú@ £Á@vj@ò@„q?À5?¯2f?4k?Z2÷?¼–¹?Ïw«@)Œ@%Û?÷8L?ñÑ£@-ï@0“?ÚCÙ?Χ ?Œ­?€ D?¯øÓ?² ±?©?e¢L?ȉ?êo?½Ù?¦9W?£q? ¡¾?ãÚ@ ±2@ $°@šu@øA@('@ üe@}ª?î‘Ð>øÄN?~Ò®@òJ@m…@Úó@xC@§—@VP@L@±t?ÏG-?Éb)?@®b?5Ý?­N?Àéa?Æ—?ÌF«?ø?Y{—?‚°? ?ªŸ?Àýë?×è’?úY@80Q@ŠN@Mü?s™?f_?øqJ?ã!·?…!U?õ'?š8 ?&­@ç@"k'@9lÎ@6¥é?º°o?ƒ¶@(u@N–?Ùj ?9?zÜê?·R?ç´@ZØ?ÿçœ? ÑÞ?¹Je@vp@¹¹?sB÷?s'A?$y^?ê?ì“`@©ë@Š?û3'?€È[?éj? Š? ¼$?‰ƒ}?ãh?Ó3š?µ5è?³ëƒ?£Š¦?žÄ>ñ.x>ñÔ@°^@ø•@îiï>öª>üdŽ?9¡¦?‡‘?ˆd€?m¶1?|*Ó?×w'?ÓÑê?|¢D?ak?mL?ž²?Ô?‚¾¶?kÙ°?5á?x"]?èÜx?ï7Ž@_@æ?Ëâ?Ãü»?Ì?kj ?ÇîÑ?õ\@b£@ +f@']?Ì>N?«! >ù±á>ô·‚?ª~U?¦3?½è€?¸3?½¡«?Lj¶?¯&·?‰ûO?šn?ÖŽM?Ø?Ór?ÚÖï@ ++@Ôˆ@%þ¾@*s +@àw?Ø€B?¦Õ%?SåR?cÊÕ?s¹Ý?„Q>?Àˆ?»ê?ù„@þ?õÍ?ä;?ý½Ø@¥>@J?­zˆ?¦^?Sç?uAˆ?üŠn@s?þŽ(@åw@®Ÿ@ Ê@ UŸ@øJ?ôpª?çÔh?ù Ë?xA>æŒo?ʳm?û¯(?‰=>´î"?-é¸?¥Í–?´Î´?Øv©?Ë ×@Õs?ûÆ—©(?2éØ?e8î?qgë?†wÉ?kÑ”?•_?)&?i7ë?p¨Ä?Žé€?‚ó~?0a>è4m>ª/>‰B,>“Âi>[Ö¯=ã¨ê=›ªÝ?‹x? BL?7&?˜E?ìÙf@)B?ÞÏ?Êp©?ÕMÛ?à=à?þT‡@@½l@)ò¢@!Šß?Ëßä?Ѳë@¢ø@ zš@"u@x?ÒÙ—?½÷?²OŸ?¤ ^?ž€W?˜ðÚ?˜C$? ÃS?µ5?Ø*û?˜=¶ëׂé?:‡‚?æ2«?Ë?7>þ”È>Åx,=´?âœ?ÑCÏ@¸@1f@pï?ÛVš?ªÙj’=É?$»?5ïe>›s>Û­?®!s?™Ì'>íØ> u?´u?r—e?¹tÅ?h¡>ÿõm?+VŸ?Qì=y=¸>І?A¥?$á‰?nû'?ªâ/?­+?v¸?X­ê? ö>YLr?:c­?®…Y=\³>±Ë=?Û?ŸVë?4G'>ßâÒ>‡Ç@ 'Š@À?ã™I?ØfW?9vR>ßÍ8?p±?("ï?$¬?ëû?„j>ëc>åC×>ªR=ûé¶=tÒAø>ébh>ê 3>ê¯>ëL?lN?8·>-ý7>ÓÏ”?'d?{¬Â?¹«—?R@>ðÚä?ô? Ü?wx?bÌ”?oÐ?éC?ïu?€ÌÈ?H²'>ðœs>±bß>¥¶Û>šÆ? í}?<÷c>¾Òâ>\]à?ÔP? Ia>¸JŒ??µ7D?™3é<¨bd>,$™?{ªÈ?fÏ>=唤>I¦B?•¾?ŽcË?IQ?Cuâ?=Þ?8B,?¬C~?¹Eç>|¹> +C??ƒH­?‹˜>lKú=½r†>å)[>ÿª =„ËÑ>Üò?#m?‚š€?‘*>òþ¸>¦Ô??"vX?8À?>eG?DC?W¢?k}o@„ì@&—õ?¥‘?€ûO>žú-> \?–Í?·öç?¿”ä?º]>ŠR¤=üNB>ëz2?iÒ>/ÈÊ>Rè?¯™í?ºþð?L±?œï>>qR?a[?eÅ?,a ?5A"?­¡©?´m?«®f?°Ÿ4?¬p?êÃ?ï«?¾,=‰³b=ôNõ?ñÔ?#a?´q„?´sŒ?êªZ?âé~??ÚŒ?‡4÷?…$? *#?«ó@ Ò>@ôý?–L?…ÁÔ?>h>æŸ>u >Ðió?ÃkT?´¼?Ñu?‘[?½òN?›1†?Xü>çµ’>¹J? ¢Ù?†zÖ?:—>J(¨?"?‡HÃ?š~0?ÍhU?ì@ Àk?äLû?–ò ?qœ?!æ?cqv?˜('?‹È?‚…t?AƒQ?=#?¥2?Œ(?ƒ?’h?1ÿÂ?Nô´?®¶[?àé?¦ì?‚ .?›H?¨6Ý?O»é?j?RŒ?spM@@)ðž?àgÅ?±;–>éŠd=ã9:>÷þ}?ã7?Í8j?öËn?Ìv?ÃUô?0½‘? ‹é?¦ýð?±^D?DDB?;®?økÀ?ü³Ç@"Â@ñ?"|?S?Õ?„&Ü?~|…?oW§?½? –?®çˆ?²Ù]?ƒ`?‰ œ?©l5?‘¹x>å8Š?&^Ó?½8É?Â|?Â4v?CI=9‚?MÙ@+8¾@rÐ?Ë›Û??!?)Æ‹? ¸4>½v >ÏMé>á?ê¥?C†Ð?…#?¨?ª¿>?¬ú³?Œ/½?_\Û?T—„?A\D?ãZ@š?~‹-=ÔM>ÔD“? ˜ª?a·G?ƒ·Ò?“4z? {Ë?“Ô?[ã@[@Îj?´Þ?ƒÝ?Ò¼?çZ?‹3?‹¶?xóÝ?‡›?¢Uó?¡Æ·?¸«?·‰À?Û¾Ü?Öóî?Æ&"?Èψ?Ó(Z?×Ðî?軋?¸êd? Åþ?0À?„}Q?ÄŽ„@F=?ÿÿø?³»Ü?’{ÿ?QæT?Xà¸?d¸?öt?Æ ï?aã³>ÕtÌ?í?á~>?¥Z^?„„?SSê?9Ë{?Ú‡ +@?þ?0ø¢>Á&ý?wÉ? r?”º²?—E?½ÛŠ?ÁñA?Äo?Éó@½F@Û€@ä?ÿ°Ò?ôaõ?ÜB?“¹ö?š²?«DA?¾8·?Ú¿g?®ÿ?R5…?{Ïõ?¢¾2?—Ÿý?„ò?¶½Ñ?á<Ø?†B÷? +è?Ä{q@ m‡@óØ@Ðà?Þ¤Ü?¾ì^?öJ³@âµ?ÐÐÞ?ÆK+?ÇF†?Ǧ=>‡Ùq>±M3@6«Œ@.P ?Ûa·?Æ6?TÉÀ?e»ò?…%?ÀÒ@9~@ðn?§ú?ºØŸ?åDt?¼6˜?…,,?£ÍE?˨?Æ=Ô?·!? 0?‘‰y?‰@?…0Î?-,§?08?Z?ÒA?­~?¼¾@1 @«^?÷CD?î#?ùÂI?÷òv?õÇZ?óŸ½?ñw?Ö•^?¨Ã?6gV?¦??É“@]@Р?ǯ?ÐL?ÛÔX?­[§?jz†?«¨­?牨@=A@{¯Ð@EXv@!õ›@ˆ ú@¢ã@)<Ç?á4<@ò¯@ü?@З@ Ó÷@liZ@v{@4á‰@4ZI?òÌ$?ü$å@–ìr@‰@ò@ô€@+²¸@Kþ°@¥ûä@™ž@ca@`VL@a “@dÚ’@e_Ù@{×6@“΋@cI@@eq@¢N@y¤<@:Ñ:@kv@‡›@4ÓX@Ø®@j|ô@ŽDæ@ªn,@°éF@†ùŸ@qGŸ@Æ™@”C“@ªâá@®û„@„~@~y»@e–@]y@g&±@i¯¢@7<@+ú?¢©Á?¿•K@cÄ?@[ª@$á@£?©gÚ?ÛãL@*&Y@8(e@W‰A@H¹¯@.rÔ@/]ù@-’@(Ó§@$ŠN@k!‚@¤y*@tV<@À¬@*å²@E/@4@'Ûë@ŠvS@·hY@9•?W}?»=H?ô]é?ýKa@Ÿ@L@é@DÏá@]:R@©%?Ñ $@ 7²@ x@+gÅ@.\ž@Af?ø‹2?ôf°?ý^?pÊ'?I ©?ûÉÈ@ ©"@ ç^@'°@ØÄ@ÞÂ?O“±?1Áî?‚n¦?gá@ î¡@"Î@"P…@"|0@cÀ‘@]Ú”?ª?ÿý?Ùðz?׉ @ÇÔ@ ºa?«ŒR?²S'@ºb@žt@Bn)@Aå5@l\°@a1?¯’!?Ës³@lvý@`õO?ªF‡?§9ð?Â'?í½@Š=@wvð<EV>” C@D@ƒ©?ÖŒ¿?Ñ%?1×?¢°@7Š?õ;È?²9Ã?Í“€@5+[@)ë?×F?ë;-@tÓ@qDï@Kq@D§G@e@ÚŸ?ÖGg?¸e>)>^o@%@?ôeÈ?€'@?€*?€?‚5²?Íî?ÐL~?Ò¬ø?Õ @³{@ÂE?Ÿ›+?žÆ8@ x5@|f?çJ¢?èA3@çC@i“?’¼µ?~Ò*?ù†¥@ Tß?ÑŸZ?ÁÏ–?,mi>þY‘?úG’@Ô?Ë»?±÷ý?êî?ýå@5$@E +×@:¨@:98?êè?9?µÑ!?Êxô?¯ •?9?¸~Ñ?ÛÕÂ?êÅ"?üÄ3@ ÂC@‚ @À¿?¿“l?qÍ? +0r?hì?ÈS³@ýž@Œû@lßÌ?ùƒ?ÉêI>û™¾?~?~ÇÊ?¤­1@?üvJ?§‡7?°·>@%²z@"È?b´Û?>1?‘+O?—À?”"±?‘1T?¾—`?×i®?ô{ @bÐ@Ìn@0@Dîö@r¸†@ö­?,Ä?µ…€?Â4°?Ü+)?×Ü›?¶›¡?°ƒe?y»?u! @Šc·@˜›à@“a?ÚŠ˜?hðÂ?Ú¨?É{@¶s@ è@(¥@"©À@ S“@ ›e?¶Á?±Ùë?¨ö¤?±aÎ? †?3?IÅ‹?Pù·?W/)?]m9@ª@/ry@ »«@`)?¤Ve>ò?jD?Ä6i?´¦ã?Ž÷?›ó?Ëéh?Ê _>ñ(l>ñ¼?k_L?pÕk?KÑF?1Ý@}>@/Ö?—l—=ª@x?Eõz?Èa¹?Ô=¨?ÞÁ†?È(–?op.?ƒx@)@ ½˜?þë6?êG“?Œÿ?n ä?A +Ž?Y¾?š€ ?êŸ?’ˆº>°>±û ?m®…?€:­?í{`?íY»?µøè?±ÒÐ?•Ä?‰ºG?…Qa?L@¶G@BC@%i¨?³1?Àb9?õ,0?ø¨?ë¹"?뛌?¥_0?• G?¹pÒ?ÈPì?ÄÊ:?ÉôQ?ö¢É@"…Ã@Ûè?¯Þ?«N?u”?}?Ïtê?¹Ý”?Š\E?‘!Ú?‰¦\?È>óL>÷}f>ž>ÎA>?¦Ç +?è?Ûœ>C¦/?Ér?¹òÏ?¨íú?çø?çà ?„—,?g¾?ÜC?”Æ?Qt?“Gä?¢nn?­xø?¦mc?8-È? ¡?›˜•?°¸Ï?‡³&?fâ„>ß”—:i?#C ?í„?Ýg?0áþ?B&A?v0w?h-˜@ +¢Ê@$‡˜?›ÔÅ=ºƒ2>YòÖ>ñ•Ñ? f?|(?†û@!¯|@#`z@$Ú:@«@ rÈ@ê™?Þä?}ù?šÁ@%ç@Q?úLâ@7¦?Æà?¨æá?§îû?­JF?­Y‚?­jZ?¤o?””M?£«?¬ìè?¨_à>¯Á¡>·;Æ?)Mk?5¾Ë>Ô¢Î>6´&? ó?-?L¤Ð=Îh=r„?"? ™>î¶9>ê +?vú¸?9§?`…Ã?.(?C±%?YYâ?ü=>N£ö?΂?‹s?)Þ?"Ò?DQ)?­?¿†Ö@GO@d€@)˜3@Öè?–sU?=ûQ?¨[?ÔÖ?˜ó$?K¤?.FB>òîœ?“šñ@³ß?Ý\ÿ?tÛÿ?–3Z?ﺠ?â€?Ž9ú?¢hó?Ãç?Ò8<@Öç@ +£Ñ?XÇ@?ƒcÏ?Š99?v.ý?¨læ?¢fß?@ò?+Ün?pÂÌ?lf3?’wÈ?Ÿ9„?¿²Q?³¨›?‚u¼?€í=œµ‰?d°Ý?®sN?ö™³@B´>­É\?îô?óéá?Ž"Ã?‡Óí?~?dó“?f^¤?š?© i>³ãH>è±? Í;? Å{?µ>¯?C>O–ã?°®J?Ћæ?eæ>¾ç“;j€?Uù%?–d±?˜b?,šÊ>V£>”;r> Ì<ä½Ï@9ÁÉ@)¾?Q°5?j¨-?I—?4š ?½ì>áuÑ>­AC6Ý¡ ?sð?0"?^Ml?vLP?/å/>è2>Ÿ€›=mš=hÞù=¥Bk=Ö4,>â—•>ì†ù>§?Ç>†ì3?ŒŽ¼?ÎîÛ?Ê¥½?Ô.o?ªMe>ðãB?#Îù?«hˆ? Ð¿:-¸?sîo?„¦?þÉ?K?‰ª?–CT?0Àç>ö’ô>à¸u>èÊ?Wv¬?†n0?/±S>¨Dö>âE¤?<¦i?™&+@ —+?ãݧ?Îù>ïêÿ3¾>þ7¿>þeû>þŠ?«9s?³r+?da ?fÑÏ?½?Â==b?Ví,?j9i?};ô?€I>+i>2 ô?<Ë?Igo>›|>…²Ö?O$ƒ?KJ8?‹?á•?q¯2?€üù? +±?>%í{<ä‘>ê'? äW>ôƒú>äa>þ¨‡?k8?Œ2á?‹0¶?ø‘@Œ?ìu?&?@”?>œh?ˆ/©?7 ="gF?:>ô?IúS?KM?9P-?æÁ?ëÂ?ðj>øÓ=j&?qݲ?_u«>ªØî>Ü?O”‚?ZuP?S:æ?e^ž?Ã8?´„Š?PA?_Q"?n‡?“ä?ëî?ÅŸÝ?=õ?Ú«?[o?„C?¾%¢?=«<§ >æ¯n?Ã}³?¾´?¯j°?•Í?HÇ%?¡rä@ö?⚺?rUÙ?KÛD?22Ð?'Çù?p?)?l.?œ85?óa?¥§ +?‚|?­ð+?ã ?±7Ó?wþ->÷#‰<]Ÿé?Œ)ï?úze?Žá?’ò>žÁ>PÒB>Ƕ­?V•?Œ›+?­lv? ï?ßC?g¿þ?B†Ä?‘|?§Mý? ‡k?šÀ&?Ofñ?7æ–>í?>Ê‹v?†yp?–ö¥? H$?ÈQ?q#‰?‚öï?¸ +K?»¡l?3ú‡?&?jL ?jÄK?®JÏ?¹-§?Àî?ÆÙ!?×?)í?½þŠ?¿sT?… ö?…o?ú? +‹?3 ?-–]?ƒë?•¶|@ƒü?ã˜è>TTy>zÕ? âß?EæÊ?Ä–þ?ÒÅx?ñ£q?±Jw>ènØ?"7Ã?X;%?AL¦?Vp?\]?ªd;?²ª#?¾Ñ8?d9{>†ìˆ>Çe¼?·!?S ?ƒ?VÙW?,yÚ?Œj?µN&?Ç ?Øz?¯2?’$ø?»‹?Ë82?L†J? }?¤SÇ?¿>? Š?ƒÊ9?qe$?~{!?„vá?ƒÜ?˜Wß?•¬ò?é^z?ëF?‚´?÷Ñ?ˆ?‘ZŒ?ÒÏÜ?×.?Û‘‹?Õ’©?¢C?¹í@$@³n@TÅ™@/å?Žº?Bù?Åkˆ?¯çã?‘qÅ?ô a@9e @hì?îš?ÐÊT?µ5M?½éw?Æ J?Só> ÌC>È/³>òÆ?0^ ?IÙx?yni?„ŒŸ?„™?„––?7:õ?w~?y4»?„¥{?Ý» ?ë×?¦r5?›|?‹þ‡?z¶÷=.ý¿>˜€Z?ÌË•?Îù4?Ñ!e?óí@*Æ"@if?ä¤=?À¶¦?†êW?™¼?¬;³?ya?ì9?ƒŠð?Âu;@uz@p§?Ê-P?„ëd?s´ÿä?3BB?Ö ‹?Š?#Ì? «ä?…%2? n¶?ô`y?Òq-?€bÝ?ÝAF@2xÖ@ zP?¸þ?ˆ¬8?0mã?½‚@ ~„?á*F?ºÀØ?ý¥?xâo?&ñ?0R?oXH?„ðD>k¨Æ=çãÓ?ô’„@ ÁÊ@šF@¡Ô?×lì?Óݧ?|kW?‰¹(?µƒº?Å:–?÷u ?ïéë?é„·?èu›?ìÊÜ?óʲ?úº?ì<É?à-?£®º?&/‹?!Ý|?Š??¼ n@ î?Á-¹?Œ:@3@JR2@.)Ù@ †q?ŒœÛ?A`€?œ8?„ø5@„êõ@á\@Njm@F*@¡Ø@Xf@“­v@?Éì'?û2Z@g†Ž@nb(@”ž@”0+@}!@ƒ;@Ga@z.n@®Ç/@Ÿ6@ƒÌ@‰w'@’¡>@Gœ?Û´¹@ @ ãì@%4@75@x Ò@‰uˆ@Š*Õ@ŠÅ@£õ@­Æ¼@¾½¯@Á, @ƾÌ@Åô7@¨þ7@¥U@‰ýä@ˆÝí@•¦@—ðm@J¼@Â@n¿u@lÈ/@5vÓ@9»f@4Ž§@02?ˆ+Á?Ûú5@vþ=@V[@Þy@%2 @f¨£@@…î?ëjM@$ÀÒ@p 7@/ùV?°ðM@5o@“°S@xƈ@A}É@V²B@j +@75–@ +Ï!@ì¯@,q@ø@õ-?ªl‰?+$?jB8?…Sh?Þª¦@ö?»&ø?¨e[@WX@2~b?—š?Då6?ÐÕ?îM7?òÉ´?÷A7@*"î@+A’?¹y?‰?òQÔ?ø8"?±ÛN?®0ö@4 +Î@;,J?ÙtÛ?ÐK@€rG@‚Qz@ ¶@ ß<@Ϩ@o|?Ô(ð?Ù_z?rx›?qpÒ?œë'?¬F°@"lj@Í?í t?ìäh@Ëé@ ¸@bŽ*@_B©@0.f@%k¥?¼ˆ¶?È3c?çøV?ëŽö@£X@ÒÂ?çØÁ?Óòü?ŠÆÙ?†N?€¡?Ž}›@#A@…\?ø-©?ìÁ•?²Ë¡?·¬e?èCÐ?ÒÆ>ÁÌ??(å@=ç†@<'g@"gà@!ë!@Z@¸›@Av@Hüå@pˆ~@m å@}d@Kê?àã¤?Ør#@;P?ôü?’•?F/?·Â?³zî?ys?’ +?í„©?ëo)@Ñ[@Â5?¥dŸ?¡@oð@ +€@?“hÀ?µZ?Îjê?ÈäÎ?…H?~Ø>Ó.¥>…ªÏ?ÞÅÝ?þ…¸?•Å?z.j?Š)?”~S?¶xu?¾‰ò?î?Ð?ýç@+ŒP@@w@)­O@|è@ +{®?ûÖ›?«èÔ?}@i?Ô#Ð@ “˜@$ŠÝ@5;h@qû@…J@Gž@kˆ@)¸z@[Þ@=!i@Gl@~¢?ñ/k@Æ@EÜ@2Í?çª?Ìïõ?F>P?e›?ºoà?À·0@!_@7@ºÃ@ ÐU@+® +@(ïŒ?ÐF?É‹á@^]@7§?’•°?zW´?ñE•@Öh@¸@ «?ÇÅ"?¦´i?æÆö@ãŒ@¢±@\*?ÔÓ*?yL?¬rï?èîv@aÌ@:²¥@ò?©¸û?¸£+?Èu ?®Ãa?~r?ƒ O?s²?­a²@dÛ‡@YÙr@ñù@¼Ç?¨ŽÂ?j?›CÐ?þl?ÇZ!?Ï#õ?  Ù?‹mt?Ö=&@ @Ö¿@2š£?¿ä=ß+>Ât¢?œÇ?6…?Zø´?³—@Pxö@6Ë–?­˜³?µ%3?×q?ÚW}?Ú)?ÎQÄ@‰Š@ž@Xó @@)@^Ç?ÂÛ?ÿü@@±.@ 9”@¨¶?âß~?©H¦?ÖôM@Ïî?øݵ?ÇE?!B?„ ›?h™¡?"S +??†?x•w?«G?ºJ?ÜÉK?ô[Ü?g'õ=‡Ù$>¬½Ü?4“‹?Osƒ?q™G?q?qcÏ?u>é?Š&¿?€Bd?&‰?0ƒÜ?زI?ðœF?ÁzN?±w-?÷˜h@ ÖË?˱Î?‚Uÿ?·~:@ @C?þö×?›ÁŸ?¥ÛÞ@4Ç“@;l@W c@[í?­e?VŠù?½&?éDg?Î4ë?´0?ê’¾@Ñx@ ýŸ?ú‹?óR-@ #Æ@Kž?ï!U?æ!î?ªHù?ž¦å?St>ì| ?!®?lf.?E ÷>þ—8?3»?º„Ö?¾¤Ï?ëµ4?ë—Ý@³Ð@ÆÐ?Σr?¼Ò?­¢®?•«h?—~?§g|?­¨ ?³e†?­y_??‡?Ã?«}…?Àâ‘?Žbµ?iÁl?ƒ¿ì?•‡!?ŽC?_Ú ?eÎ?Êíþ?Ö• ?[#>èÞx?ˆ–?“4?ÎD?–CÅ?r.Õ?_­?}Ýü@.@+±Ä?øåÓ?ô¿v?…|?g¹Ò@ø<@&{Q?ô;?¢sZ?£J?­wŸ?­jk?­`n?­T×?¦é?‘è?“Ì?Žb? '<—jX?[•T@%–@”•@Íb?óå†?‘Û5?^@‰“@")>?È6?ò2ô>`êk?•˜ã?‚™?^s? pÍ>“ Ö=¥kJ>ðêÊ?ž6ÿ?e§~> «ï>"B?C8?0ž?¦d,?³!í?¶–õ?Áð›?‰º?K +?Œ±?èõ?É~X>yŠ?£á?š–è?ŽV+?˜Ÿ$?¢ÑT?}D.?¢Áx@…l?þ~H? +Û‚?‡k¡@@ÿ?Û?@®ˆ?~0Ê?¥‹(?“Iä?† ??ó6?*ßM?||ç?¤«|>ê~ß>Zôt?‹†?¨?ÆåÃ?¦<3?ðg?G–ž?aј?Q3Û?wÃÝ>þh^>èÂ?3>ÌÜÚ=­Š€>ŒÞÕ>®íP?ì‚?þP>Ú%Ë>ž ™?ïF @AX¶?*Wt>§Üä=ûFD>·;k=Ÿø@žÕ@Ú¿?D8b?>÷>ºÎÍ>®C>ÓôØ>áx@>ÛëJ>´g­>œTÎ?!û/?.œ•?Šµò?¥?O‰]>èf>•õf=ÿÜô>‹>ѧ>í­Í?ˆ0Û?·*Ë?^¾¦>˜D'>Ûw ?\D?#aÙ?]Ú?J¯=SûÍ?¸>÷›>>ôþc?'ó +?>ÝÐ>¬P>8}>Ú¥Î?5G?hg?¯2‚?«l?x¶:?¦>ôÆ?5”Ÿ?C]¼?€Þo?|¥ý?ß…?„??ŽGc?‡Ç`?4”? (W?&¡?#êÅ>–NL>¬¢?žªx?˜$¼>þÆ>þ7>þcg>þ'2?BP®?Nÿý=ÁÝþ=JœÌ?nXg?}Æ¢?v‡?kIŠ?}çD?€ Æ?"ÆF?!.?3š$?(ÇX?Ä=I?Éâ¥>Á*>yY?¸g?Î1i?F;r?)D?Y%­?d{ø?j ¶?o@? +š1?+?v€L?~ÆC=΄Â=h{Ä?¤D˜?¨Ì¶?ÀI?Â4Ù?-Žû?:û²?Qmm?IÈ ??j?FZ¯?±ìÕ?¥ÌÀ>·å‘>Ÿîì> AÂ>!€Ã?Ñô;?×h?-5?=? +?5>õÌÒ?¸?‚?DÜ?L°…?9û³?½?!~›?« h?¬º¾?Ã1U?²jà?8Øï?>N ­?l@¬«?Þ³T?8z>ÜÆà>+4ê>ÏD\?±Ù?g2æ?YÖ?)üi?†÷÷?lî{?(¼_?)í ?iÉ?' Q?Bn?{Ú)?š¹Ì?‹Ð›?WÏZ?+?j?íü?•Í?Ag”?ƒfI?†X”?‚xG?{LS?`ëR?&ð?3?ƒè?…k?²!”@ˆò?ú½3?íº~?à(?Òý?‰ +-?@? à?Ãël?—T?‚ «?‡½?…'–?'±—?c}?’vE?«u%?£h>ŸU>(Às=ôWÃ?ÙÏ\@ÀÇ?0WŸ>í€ ?gK?€7> öï=´o6=_g@=…¬?>?Â?!XÙ?&0¡?‚Ê“?€U)>C >‡…á?§8?§å?ý ?Â?“ë'?(†?ªI£?¨³&?aD/?;šk>“Vö?±Ö{?©Ëà?ƒ(?„ÅÌ?…4ƒ?BD˜>²Ü>àº?b$¥?:ò½?H‚?)áö?b™¤?ÔÑí@.Œ@ ?Ô,¤?³Ê2?†_¸?}?oD‚?V¥0?Sýì?‡$_?˜š"?–j%?”:‡?0Ú >Ä>þ?ÎÝì@ @&$@!7?aú?³â?#a?yô>\Ó#>%æ@(ž¶@:“·?[,?)ÿÖ?V3k?a´¤?MØ?dé?Ëݯ?ý¾?8Ì?tà4?Q?Ußâ?ZCv?l¿?Œ]s?¡&Ö@j?í»1?¨‚æ?Ã5‹?÷§«?Õ +p?†Æ8?„ù^?„C”?©jÕ?Þ¦ß?ÀRÆ?»?}wF?G:0?1Œ>ü€…?;8+?V#ä?-BC?4ü?/^?€¥? Ñ?I?"Ð?œ5é?æ^r?õÜ?¯0*?¢¹–?&[|?‡C@0ù­@3ÚÍ?ø/ ?úŒ?Är?­…}?›²  +>ÂÑ•>}n>½Ã?ÛRþ?ÝÔÙ?ÿJ2?üI4?çÌÆ?Ö x?©†]?Ðõ@ ‡ø?èI#?š¢?´@²?ˆÊ?Ž?Y?”)Ã?²#±?´¶2@:?(@Ff’@\S9@boñ@&!/@&Ö{@;/@5dE?ä'Þ?×™«?GJ?¬'¾@‹Lw@ÝŽ@’ÔÓ@– ,@£@ß9@^ͼ@9?ôÚ­@$§@d—6@:ý3@¶@]d@#j@"œ®@"V`@$0@% @D@˜à¯@g ü@MÉ@rÓ­@Ó·@¶%S@Ä=W@­ÌN@­]¯@l5ñ@e¾2@Né]@NòU@& š@%þÇ@F7w@BKw@ +Ç+@‚¢?Œþ„?ïäE@΋.@Ìy#@³âH@¢û@iH¤@^Zp@<[µ@`Ÿ:@š\™@jŒß?Ř?þu@1?ÿ>É?Pó±?õ\R@SÖb@?q%@*µ>@Q^Œ@uNg@h"L@[“Q@D…@4¿O@™s?Äêž?õW @ØÂ?Þð?Ç0@'Aÿ@BJP@R°F@T'A@?æŽ2?ß© ?Ö$¡@ ¸#@$Z@ Ù3@ +‡õ@Býs@O“Ä?ùõx?åüq@Œx@u6?ê?‚ƒ@žR@@é@;†@`®@]Èâ@fåy@L@Â÷?Êç +?É#ü@;@•Î?ºÒß?»èé?ê8Æ?åNy?åæß?ô~ž@,©ï@(P”@ØB@þn@gÕ@ @PÙÎ@;ˆB?1½ ?`s@{@ SÓ?ÐÒ³?ê±ú@Nf¡@IuÍ@sÕ@9@µ?õ‚½?Ægâ?ÀA«?“êå?¦;õ?óÉA?êbA?Á]8?·Ö³?toU?‹b@úº@ ‚k?Ã=?Áì??†?Ž~Œ?À™Ê?Ä›…?°ß?«†¬?i"?™½œ@r±2@lÄ®?ü>û@!@µ˜@å<@‘å@ˆ‹Ú?€ ?…dØ@ôœ@x£@ =¥@ k6?¿ÿ]?¿—î?•?r(?6B?/-@06@N¨?«˜?š÷>?é§4?õäÈ?í±'?óA­@¬@pó@aõ@j #?Ì<ë?ŠÉe?½)?Ï?>@0µ@Hj@*jc@x@)Ÿ¹@.Å?¼ÁZ?HùU?¶»?ç»ó@6`H@mI@=€ð@[D@;S˜@i¨J@ k`?€6Þ?`õ ?(ÿ-?_¯˜?“9G?ÍX @tÄ@±†?æ©€?Ë›Š?{™ñ?ˆ¬Î?½}v?Á×y?¢š£?«ã?åOB?èÚŸ@Ln³@O +.@ô@$v?º3?¸¡Q?ƒÙÇ?zT?æ#?ú&@<Ã2@KÆZ@+¸Â@º@(Lç@.E@.#@+*Ö?ÛíÑ?yHf?“ÜÕ?¡kO?ß÷(@%XI?òno? œâ?¾£@t<@[/?òµð?ÛlE?x18?Œ}^@iž@'@;Þ@6²Ï? Îö?˜5T?´µÂ?³ ?è?÷*[?Ø?ÉHÄ?‡M¨?8¤B?•/(?Á¤Ó?º¹²?³äž?ð”q@%×›?ñp?ãV?ˆ¨³@+RÀ@$&Ÿ?žåv?›ž[?š;?œô‘@(í/@-Wˆ?Ôç'?¶"?²þ¨?¦{ˆ@$x@Pu@1 ‡@®ò@ѳ@ê?ó¦?§!–?»žî4?ŠÍÈ?²Ì‡?³Y?²››?‘6?NÉ?€ŒK?¦,¼?­f?–›Ç?¤©î?Î{.?ÚÁø?vE%?Gp«?Ï÷Ø@_€?Á?[0q?5ý<§Æ>X¡)?¶?„}‹?Áù>?ÅŠý?¹ r?ÇÛÿ?ÛóÒ?Ò]ç?Ú#?êë?ÄV?{&M?¦k<@/G÷@*>J?ÖÞZ?Ë]a?ŒÊ?†Ù@?E›?'è¥?Í?ÀE?À’î?×ïg?Æ¡…?ìû? 2?pÍ?ebÃ@¨<@ j@a·?îÎ?ÒÕ°?µAÞ?ÄD2@ R‘@Ñã@Ä¢@ +¿î?¬›‡?ˆºÌ? Ù?R ?›K?Û¹è?û˜°@"gz@TC?­\Y?­Oa@ K@ÿi@ æÊ@õ9?âOr?¬÷ì?«î ?Åa=?Ì[Á?¶PÞ?Ç¢ä?—%Ñ??èï8?ù³?º,u?˜l§?Ž\)?c¢’?­º@ ™@š >?Ì>#ô? #Î?.XX?C<-?>͇?€^~?É—P?Ã(ñ?i¼?yÚ>ƒ)€>ÎŽ–?0¹¹?M;?¤hy?ß®/?Þáß?Ïþ¼?Ó]p?§q?«çé?° “?µ G@ÊÈ@g?Ƨj?®'•@dõ@iÄD@y¼b@u¾ó@NÖ•?o?Œà@ – @ ?åÔ>ê!Ô@›Z@6ä@À<@åÀ?åÚÝ?«êž?®ÆÑ?± d?ã @7¶@{m?o +“?Bçß?žƒ+?¥qû?¾ql?·'?‡²æ?€ ¿?:ñ/? z?»Š>ýA‰?‘[£?êÙ?Ú¤Â?±/÷? =Ü?UÕ?£Ì%?ãe?ÏL!?šá¶?®…(@ß@ÐG?kÍÙ?v?ḑ?‡B@@ +†Ä?ÞN1>zÏò?•#?¶;†?¤)ç?¯™?¾Ô?²SË?¸·q?êæ8?²¢Ô? µè?–i?õ%;?×5Ú?ÁT¬?gp?O>mª>Qâ>ö+©?6W;ùÜ'>o?‡Ã|?EñÎ=®vô?æÅ?‰ð¨?†{±?RÔÆ>©bc> +­7Ôð>0ä>é©>>pˆ?Â_þ?ïܺ>þp=1°Ø?Ý'@3¸? („?bN>-E6=ƒ ´@9{Ý@ ÆÓ?]RÝ?^25=ë3e=éÁl>`º>âv?cÓ?Y¦>R{=Ù1>Äç?>æ×>ñrÁ>î‡ò>ŒùË>"W?@óö?1Œ>É›Æ>íµú?I‘â?nÒ1?õ>/>´m?1â?"ó">ÉØÝ>âdÕ? ®?!~@kÙ@´r?­©À?¡Ýl?ý8>õÒó?Z§ ?h-??<ˆÿ?5“ò>—`?N?»ÿñ?c›¡>vî??½×?ÓÓ˜?ÌE|?°Ò?§?{"ƒ?BÅM>m‚>¤7.?`[t?KA>ü¬Î>üæÚ>ý'­? Ñh?|3u?ˆµ?3ºm?.%}?(Ù? ‘Ÿ>pZ¨>DÉr>þýû>ÿN?/Á?ìõ?øZ†?öê>,Å>)B=àÌ>c_? £×?+ñø?­¦?·8=?©-?žž6?·ðÊ?´©#?Yk´?XÊ¡?J(I?= +ñ?ç ??aƒ? y?åù?]Í>ò¹&>æÔÏ?ˆ¹¤?¼^?>Éf?H¾’?…ä8?|L?öo¢?ì=?E76?C?Ò*º?Úf?¼M?-g?%Ñk?äÜ=̱Ä>tB±@ák?ü7.?»®ä?ÀÝF?¼£Ó?Ç]Ô@|@G»?é%?Ù•‰?ëÐ?˜]”?™È‰?œY?žè?¨´º?Ã;ø?¥/?.«?.mù?—X=?|òe?8Ô?9—?Wõ)?›0£?þa?­s9Ìx>¶qÇ?‚Oß?Ub,?S—?*ý¶?h‹?/D >¸É£? ²½?‚a8?W§™?,õ? ³l?jå?H'/?Ž+J?BŸÉ>¯EÂ?.1?‚v“?Ívf@ +„å? ä]?@?ó?÷?v*?Á?? 6?.Nu?<‹ù?JÅŸ>Û[E>†#S?³‹ç?ï¾?K+–>Ñ€?Ÿ¥?Ãö?Ÿå>n;?-†_?S,V?W×Â?\„>éqæ>Æ8í?Ĩ?ãø¦>gš<ò½«îÈV>øÊÌ>ïŸ>æt‹?nï?mV?¦Ú¼?¢¨v?±v?¯U%?¦“Ó?œÃ?ŸU¾?ŸHB?‚¢@?~Ý?•Ûd?’®o? &•?ë­?)U?é>Aó??4œ?Lú±?ˆ®0?»ìY@!9¥@ʽ?vS’?VÐ?¼bã? öº?l¤u?¸ê‘@ +"?ß5€?¯ã?Ÿ¥Ü?ƒbn?‘ÿ@?¢/Ü?“?ŒÖC?J––?|?ƒÉ?¯™G?±Òï?´ h?Ø‹w?ínO@\ç@0;Ð?êÙ¦?Áe£?<Ș?´y?·ì?»J>íµ¦>àÈB@á @2Ö@6Ê@/b>?Gp?è³?uíà?pZ•?ãH¯?åìÝ?æ7 +?Њª?¬? Xþ?3.¤?„ª@~–@–º?ù\¶?Áçù>¨çë>È?ô?²‘@IP@?<@-Ò?Éwë?‹·?Yvº?ÏÀ?¨?¦p?—¶9">dÞ ?¨„w?ÆÛ/?³‚T?²âè?ò?ùŽ*?°ß?¥hw?)ö?5É=0‘=ª‹ ?;>ìK= `Ò>üi§@É©@ +Àj@!h?Ûñ€>Î(??y%?œY?ȳ`@ãÙ?ªtÆ?èH?­4m@ÏD?Ï%?«›Z?Ø&g?òdq?·ç”? ø*?û¸×@Ì?â5p?Å2\?6¬ ?á@¥ @#'4=ÛÓ=½¾-@&\?@ƒ$?—§?¡1?Ǫ´?ÁEµ?¨Õ¶?­©?±j0?ŸÊ>?Un¹?—›A?ë“T@üÑ@6:‘@Ç?‘-÷?¢w?°Å¾?Á˜Ê?Ò??·ñ/?¢ª?²À?½¦U?ñ£¹@C¨?¬ej?Œ×_?¾ÑÌ?ÇÄy?¤ ?«ï»?Ç€³?Ȉ¹?ш˜?Àö?@Pý?wf,@ Ã@ +û¾? B1?«æ§?Ç´;?žj†?׫-@ +IN?º?ê¸@‹@-Ír@E¡@.Ø@%}õ?å*?Ãí@\-1@t8-@€ÓŒ@²"@HÓ@Hð?¯èN?³_7@¿@¾@¤@-è?È£^?âŒ8@4Ê*@Yð;@­øu@´¹‡@ÃÖ4@®õ@€²é@z—m@h5@[Ò@JÜq@TÙŒ@bú1@fX¤@fa@ «?ÒÑ¡@|åô@¦ ¬@k5@C@.¢n@%ˆ¤@zñ%@‰/@x;^@yÞ@„îD@„³*@:gÚ@,ãD@?;‡@>QÄ@%Jð@%›@3Á†@6»@:+»@/Œñ?ì~Õ@?Ð@MÅM@\/n@“)û@¿X@ +` @)@EÂç@M@`+@-½?•Z«@R]@q ß@,Ù?ªíŒ?ó4]@$uƒ@ ¯œ?ã @ Ab@$QR@#b@% @ \n?õÉç?é¶Í?ݲÝ@Ð@ v@Až@Ø?«iF?Š¾@&{²@G©»?òê‡?Äs=?ø¾\@çU?ž¨? Ù@(¯Y@7ÿÚ@G¸¤@Gá?÷pu?ãæ@ ù_@ +õØ?¢¦ü?™Hc@ß@¡ù@¹@@^+>Ú”>ê Ó?ðu–?þÔj@.z@z¾ +?Éb†?ÛVÌ@T9c@Iô’@ÿ„@Q´?òë +?ú§z@-~@&Xd?Ðj(?áuZ@O2@?½@E@7„&?š4Š?³5û@&åÂ@:Æ?äe(?èzÃ?á˜5@@‹£³@†z1@@‚@"n1=Ȩô>\AË?æÄ?/À?œN?¼G +@%¾r@Óâ@ ßt@ fÓ@û,@h? QÃ?§Ëj?æhú?Õ„Ö?,ì?EÏ•?ÅD?°žÚ?1‘?TY/@1@tK?€:Q?MË?ˆtï?•ÐJ?õ¥G?ÿ'?€ü?ƒ¥B?â¾?éA @¤Ý@2?¿¥R?¿—¾?ÞÐÒ?ܪ!?‚•>?$•>ºÄ$>²/$?ÐE1?âk?¸qé?µÐL?(Vk?—q?ñ? ‰Ž@œ @(]ò@,@'É0?ÞaÎ?¾jT@<õG@^@>ÜÖ@0ß«@3ú?ÝÛ/?²¹ª?ŽÊò?Ù•t@×ê@‚#@-ˆ-@0?½‘¤?ŠÇ? Ö¿?F­R?}¼?G\w>üCÜ?¾h;@Bê^@2”q@t—@Jí?§p±? ±Ä?{™¦?Œ-?¼ß?·‹L?ÌÎ?É×?û9@º)@·D@ É)@d`@¥ˆ?27Z? lÃ?åÙQ?ò¹,?É>À?ÄÞ9?ä‰y?öN_?²jÚ?£Um?åþÍ@A@%ÎÑ@;±@g“?üÈ(@…m@:Õ@/*?æê?ºÉ§?xÀh?´~u@Zz@I+@êq@Âi?ç“X?ßUë?Èö®?(Í#?¡}(?£Ûù?”üv\>Š-4?^R0?Är›?ŸÎ;?#âˆ?Œd@)$7@Ãò?fÞ?‡éŠ?ñ æ?ý†.?¢?Š«¼?€&?ueÛ?nÞ'?hé?¥¡Á?Úxá?´¹Ç?o« ?©˜ž@-7[@$Cþ?ï.ø?ï ?ÁÖÄ?ªÏ°?4 ´?†Ò?Ž“?²Éf?Ò¶Œ?ìw?Îåð? Zž?†`j?éb?(äË?ƒì§?yÕ?­êe?©µQ?f8ò?@^?nÍÞ?Ð:?-™f=¿v>>ö@˜?¨E¬?„L >#0>q4?‡_ç?Šû¿?€vÛ?nÇS?ô²€@ˆG@¡u?Û‰–?Íkä?¯þr?Ådq@a^@5j?¶“é?ºE?2â?Z?3#’?5Ë?²•@”w?çÙˆ?ž`? ?œšI?¤_n@ë–@7@PRŒ@^ƒØ@ ½Ã?ú¯?åp2?È>è?Ä‚„?®?²pª?÷ÆJ?ó Œ@/ä7@A¼ù@v?Ûrè?ônR@ +zR@ +`u@ƒ4@oÃ@öê?÷E¼? @ ??¹ë^?¼ˆÙ?ëÚÍ@f)?ôËz?­»?˜ñØ>‹oã>®,æ?¦ ?¬ã +@Öt@.*E?Æš?+'?{p>ñ\$>üøÙ?0wö?T€}<ÛÓ?Ž`¼?¦²è?‹U«?ˆ´a?\C*>æÅ?"$Ñ?¬‰?§h>–>¯Å?nª?}a³?jpë?G|•>Ú’?=õ +>©y—?r¡ª?tÈŒ?­¶ ?­È6?hDº?‚R(?eæ…?dtº?a0Â?D¢?®@t@v—@{X@VÓ?Ÿ¡?Í/?Ó+.?¾ï'?êE@ Ø@ Â"@ê'?±9>ý"Ç?Pš?± 5?Ñ‹Ø@&õÆ@*š?³Äu?¿(ö?š¦Â?1p@éÞ@¬·?Éʼ?ª7?w„.à%>–&ï?ˆ°?éD?—F ?v³1>â·Y?,´­?˜øÃ?d3¡?Î?S=è?n£…>ý>šÄÒ>ùS?U±>ƒñÒ>‹¼?†3?<7?Œ?‰þn?½ã²?åZï?‰âx?mö>:¯?7 +?'”˜?ð ?B(²?Füš?eçª>â­©=½ªþ=ˆ´œ?oŸ?Þ¨Õ? <Õ?Ä>î¹z>™»¿?¿Å?¸ ½?]V6?^3„=§žâ>˜üÝ>áEÎ>ÿ-¶?6va?2t>¢á>¯y.>à6r>æü?3H0?b{?d?W´0?#’s>(!^>ž˜ˆ?ÓïÒ?Åa‡>Ÿ$8>NW—?ÍW?7Jd?k3?{(º?Yá=~•#> /º>® C?©î5?¨âÏ? Bö?!k?½e?…gn>`º>*>?)<–?VÚ?A†>÷P>4«Ý?qµ{?á±{?¢©ô?;xæ>óÕE=šE™= ( >(kÖ?΋?30>Û×Õ>æs²?žß?hä>®ƒ>lßi>ý (?X¬? !?5Œ?מ?1Õ?¨í±?Ÿ2n?`TÇ?b¬?®>?h•?wš¦?wóú=t¸À>"-i?b:©?W†?˜Ã‹?R?fq?N€>Á8ý>دþ?lH?‚ŽÓ?Çv?Í ?d³?S×?¿†è?Á_Á?Fb??r°j?yÁA?½è%?¾g%?Ú¦?wß?¸¥?²P=ë3ƒ>6‰‰?Â>]?¿Øœ?¦J¡?­OŒ?>ÿŸ?IR¤?u²?gjÌ?T:é?]ˆÓ?ÅÖ?vK®?Òï?%o=?ãë*?Ï?Ø<±w>n¼~?Âì-?Ø«@"{ž@ÒÕ?Ðà?¼N+?JÉ?r }?«Ô?Ž.Ž>âþB?Äö?ƒóŒ?…zd?l?u¢æ †>ŠÂÏ?hz?¶3ë?wDJ=-×>J±*? Ð? n¢?OÝ?8YZ?‚SÒ?¥¯Þ?ÍŠ?“hè?1/?* ?šp>ÈÒÛ>„›#?ã:?8Ú?yµ0?˜Ò~?‹jR?‚r×?\W³?5–‡?Û?{>?Y‰?…¸‡>Â7<‚G8>±Nº?‰û?N¨-?n#>‹Ef?/œë?€.-?V÷>ž-?‚qµ? ü>ðM>Œ&‰>ð¤~?¬†?)¿è?,¥Œ?8pG?#i¶>Õ[>Ö›ô>34ƒ=ã†>õµá?ÅØ?Ø‘?€#ö@5&/@1a"?š"?*Zå@/Ÿ@) +)?ó?ë:´?±ky?¬¼?:Í?=Yã?B?9™ >dã>«Ü?x~ò?ƒ s?ƒ ß?Hß>íÊ;?æom?àê;?Ķ:?‡”$<ѳ?Jà?Á_H?ØQ?þ‘Y?ø…?íÎÐ?ºM?„ð1?~Îí?\»?EO@?6Ð?…ÃÞ?¦ñs?€2?:»l?¾w?x?Vo;?ƒá?ÍÒ?•s1?“As?‘ß?-ù?ž?}ba?p?k§?ÂV?«Ú\?¼7¨?·ß?³„É?hûá?oM ?Í°?Üæ©?úª?î •?œ?}?žt¶? §ê?±–@ia@w?дa?¹Á8?„Ž?œ¯?ôDÍ?÷v%?A÷ +?‚õè?˜Ü?šb ?–‹v?Eâ?*&"?”í½?¦ õ?^4›?? ?Ÿx¥?­Üq?‰K@?„•p?Ôv&?×N©@Òü@¥?½ ?¶2¾?&ˆþ?)­È?„®Ð?mq>û?>¤,?Ï(?ÔHÞ?ßœÞ?ÊÌp?•¹X?“ë?™¤?’ç?²´?}„?OT?˜™?É)ä?§B?PÝð?¸œ ?ß©Z?­ð_?’>y?†c?„ÿè@D©G@gë?¸Àú?ŒÙ?‰û‰?‡Ùµ? »?©Ž@8B?øÑä> j3>8Á>š„ >úÐ5?…Ê?Y¸A>«Ÿ?dv'?ÿŸ?Õ3‚?œ« ?øý1@7˜?ßG?'Z?h|•?œÕâ?fC?+ðá?´¶Ç?ì"Ë?­8…?ù{?³Â²?Á;@Kœ¢@eµô?i R?5l?ºòX?À­?+ Î?8èŒ? *»?¡7Ì?…%±?–?w?óé±?ß6I?…!j?—?=?Ç°k?¼Þö?®Ù?¶8"?îúç?×;×?²è-?Ô¿¨@%›?·¨?mŒ‰?×Ò@ +•@!a5@+ì@ÐZ@±:?f³?¼ú@0…@OtÍ@“@Ê@Z|@Ï?å‹ç?äÃÎ@0(á@08h@GFc@H=ô@IüY@?ÍÃ@(õä@4£Y@UÉß@^$@hK‰@RËb@'ë@0>U@H-Z@OÞz@W?y@1Q»@£g@wë@&†]@÷‚@ܱ@r²{@™çÍ@?‘o@ ~¬@†mP@šdÇ@Œ¨Ì@Š‰@Z—°@L\@-T§@0¼»@žÄÔ@¢`:@B,Z@@]0@ò@8å@ ø@ h@jÉ@m+O@aëg@nn@“Ç@vûÍ?ˆU?«õ@àç@¸@E¾V@*y„?ëHƒ?Ûpw?´›[@úƒ@e Þ@6Æò?íZ.?â±ü?Þ€.?å n?èt@«å@$N&@'ÁÍ@$Šy@ÝÕ@DÄ@ UÛ@™?ûÖ½?ìà~@@#î~@:¶Ê@BMÇ?ËV³?™¸?E?+?OW? ;?ÊÝ(?ÌÄ@ç@|©@9˜õ@?£Ý?ñ§Z?äÂK@’@ñÿ?±µ?¬es@!³´@'l?å>y?ç$r=¾^=¹^)?-èA?)½š?Å÷³?ÅrÍ?Ã1P?ÈÑ›@ ¾o@…@7;±@+;5?¢®†?©P?Àà:?º•ú?5#?{˜·@1I&@-ÿ@¦@ år?ÂU{?îÈ;@|Ì@eŒø?iý?¤ŸÈ@1n®@/¥@@ç(?Ãkí?ØA @BÃ@´@,–@àD?€ùé?ƒ§=?™ò?·¯@ (@ +<½?÷û6@ c¥@@åÿ@,¦D?Àä$?Å7?Úi?àÏ…@&;^@ ‹N?Àm?àÐö@pÀó@b*²?t<­?@»|@ ä@n/«@`Ú?çØ ?ÞÕo?áÁ?›Ž‘@IÔÃ@Gï@)õ@$÷8?¿q#?Ä?? ?É<ô¶U?†ÀØ?Žœ?U<?X=?nH?uX ?³Ò ?¼Ò?Ãá?ÊxÃ?Öm®?ßp?Æ÷Ú?¾hÞ?ö  @ c_@0A«@>&@ \þ?ßo—?Ü‘‡?âXç?ø½ÿ?þÞZ?ûFŽ?üäA?á°¸?Èà?æ59@V'?á"n?½4I@ªö@1v%@LO?äÎR?Õƒ?«‡i?•M`?&É‚?Sþæ?¢ï7?«‚?Ú×í?âÈe?êºð?稤?’ê?Žºï?zë·?+¾@A1û@?Ȥ@™¨>Éë?-+?MP&@ +L–@ ¼¸@ IÑ@ð@†Ô@•íå@Bßù@*3@H Æ@TŽ?©qˆ=Úw°?`„‘?Ê:]?¬ +??sÝÙ?¦!0@ÏÞ?ü+r?ºÿÿ?±šJ?“òÝ?–> >†™?/‘§?dé?Wñ.?rw,@ Ät@1!&?´Í9>Ï-Î?.£z?ˆâ?Œ ö?‰êë?¼™@C%@6µq?_v?QÇ?%n?2‘?ÆÆ…?Þw—?Ð=(?½Å§?X° ?\ä?•íP?ïàp?å8?Ìl›?Äô~?α?âû3?ï0á?ïE@—@#47?·{w?Ž¿?¹có?Ä‘Ã@ +©º@0PR@ Mm?²f]? û?M?V€–?²?±ü @ +`@.¥?Á´q?±Ÿ?z”y?Ä?d'x?­ž?°³>?±ë?¢Ô?A¨¹?4¤õ?k±?k•—?¨Íí?°‚Ë?µ£S?¾6ë?œ& ?ƒJ$?Ž~ ?™°r?‘Kˆ>ûtŒ?5©?¯°~?¯˜í?•U?‰÷ú?B°y?)¨î?±#B@ß ?Ï•³?iR ?VV:>ék>èü)?­£?³øA?£ºx?³óí?¥èä?™Y??—N?Ž®4?™%Þ?®ê?´"¨@ MÒ@ J‡?‚Œâ?aŸj@BÏÐ@xðd@5Wé?ôEî?þÉš@ðÜ@ X?é¿?ú…?ÙŽ?ÇIÞ?­qI?±›:?™ß¹?wòO? Y˜?å|[?ãló?þ]Œ?ìR¤>²Ó'>Žu? ‹ ?Йÿ?¹•ÿ?Å?;ñç>Æn•?7Ÿ?­1z?­®\?Éë?ºùl?]Ï„?Sä“?˜Ä ?¶í?‘ç+?-R7?I i?¤ƒ?¦ºq?o÷»?yêŽ@¶p?üÑQ?ä¨?ËX?²ÍÆ?®^§?–d“?h×Ë?iã,?nªp?HÊ?Þ¢?ÙÂÔ?”E½?¤iÐ?Gò©?Q›?Mn ?ƒë?¿i²?éo²?ã¬?âÛ?×Z¿?Æs?ÁÔn?m@?m—?ퟫ?î=­?ázÊ?íÍ@ Mm@#§t?—ÊŸ?$òA?Ž,ò?¼ðé?ÜÈè?ò"E?ã¾(?ÀP?´Uª?®±?¨òÁ?£(Y?VR?—v??ÄÒC@?`@1X?j™?‡2 ?³"È?¹DD?å¼’?òÇ@¾Ð@ºÝ?^S8?®Vh@:¤@w?,ã?‹ûW?ú—[?µq;?NS?7é9>ÊÇØ>Õ¯‹?~j?úÞ?·ß?À‰“?±§¥>ÖÖ>·‹z?†Îè?zN¶? +'„?/úu?W¨³?Šã/?°w$?”ש?‹1Ë?Vö>á`å<ï…à>PÎ>¤ìV?1”?\]E?‡¶4?óC¥?Ÿ´½>®}Â>ÿêW?‹f‘?¶­§? ·Š?'?i}z?Œ ‰?Ãc ?¾'Ù?dµ¼?JÑ?Ô>âå$?2sª?vÂ?F!~>ôzæ?<Œ>"$…<¿¸ð=„\=¨ò(=ªºw?{LÖ?Š~?7ó?b¿?Viw?faà?Ÿ²ë?Ä4 ?b‘{=ÿã>»à??]âz?4.Ð=‚Z»> +gC?oí¿?l×ð?¯‘¾?¬æ=Ϋƒ>>6®²>N§æ>f>tú>Y–v>¼¬7>ø»>fè>Õja?Jø4>ÞR<ûµà? nú?¸X +? w?li?fz:?`êö?S-þ?.î#?‡ü>ý#ë?PQ¥@ú:?ù +>Õ¶¹?’?¿6o?·‚Ì>Á%K>ì´ì?‰Tä?uø>ÿy@>ÿœ#>ùä?*?¸Æs?´"è??_?[²‘?RãË> ²‰>•¸>Š½>’1>?ØQç?ÏG?Á8ø?¿æà?œÈ?ŸŸÿ>Î’n>ÛN??˘>ú1^?Í?ºø?¸¨’?ù­?ìå>ÉS’>ÊS¤?P`?N%T>Hco>¥uc?¨,?£'×?‚Ð?±#>£î>ÃaÀ?8¥?5Âî>Í”\>Ä7h>8Y>@4½? ?6^f?Âêv?Å!}?Ò;?¯Å!>˜£?éŸ?Ÿ{K?™fÇ?˜öD?œh©?”\Ž?Wµ{>„©?ײ?¨=W?‘ o?.(‘?JÃ>Àxö?-¸?ŸYÙ?ƒóV?L?g¶ +?¿DÌ?ž?K=?gÕ?²øÁ?TÏÿ>R¦Œ? +´?nºì?le¯?VÕ˜?kÇ\?‚_>? TO>‚;?–ry?ñ/?á¯?Ú† ?¥ö!?‚r? žS?¶m³?h¿}?wP?ŒÑM?¸•y?”±µ?~Ü ?§¼y?·> ?©Æ?‚Ž?¸D>Æ/*>Ja$>#—>ß*?›»?jØu?‚¡>Ë[>v‚Á>nˆ>œ²Ñ?mv=?‚±Q@>º@‚m> g=Ä?bÁò?v7Ð?&ÕD?”@o@=@?”q«?ž½?²Fý?ªSZ?…>ý?ŠNi? Ì?¶>µ|Í>Ð{ï?ña>ó¿ >†Óï>­–”?=\r?uj>Eag>–?5k$?oA=ú¾H>‘Ir?/Ö??_„A?°œþ?¥ñu?…fq?ƒ’Y?† + ?3²¯>iî´>ù¨é?Iß-?_-?f*F?ì>¥d??võ­?»ad?¾[?Å©?±'Æ?¥l*?ŒÇœ?p¿„?Ž«?šlÍ?·R?ÅO‚?Ñ Ÿ?Ó}b?[uX?W?Î$N?÷H7>Ö•&<þL ?fÙ¸?‡Æð?(îÅ?%|?ª¼s?¬j?„Ÿ?ƒM?a6?žen@BK?ñYž?ƒíÞ?“±‹@mf@ d@(Ò +@çv?$­x?BÆ)?ˆK?½–X@¶6?ë°->ØâA?ÏPK@n¬@(¯’?{¡½?‚µ?†t?ƒÎ¯?|^/@ñ§@R¶@ ?© '?zL?„bç?,? Kö?¨Ž?À£¦?Âø…?Ƽ¦?’½?„ƒž?´±Ä?·Õz?ˆ…ô?„–”?Ì^\?Ö{m?±V(?§Çž?t’?ˆÁ ?önY?é8?‚³?m~Ë?¿¿? +¥¾?!½ù?*Tn?2ëÖ?ƒy?Ç;Å?„EC> òÉ?–?XñN?GaÛ?>LÊ?ŒÇ?¦Ûn?sf¨??Or?›mY?¿4±@I@›&?¨Tî?„þî?rZ˜?qìÂ?¿³?Ç‘?Â?f?Ä0Œ?ÌçO?ÈŒõ@’?ú<ï?j“?ƒx4?ÙlÎ?Ëì@?·0?ÄÕ.?äø?Õ°v?ÐJ?œ÷?"?™Êg@|Ž?åÈ?µ0¹?e;?}Gå?S•Ï?:d?ZPâ?jÃ>?Øš¡?õ¹ª?Ž5?m…9?âX9?þ´)?’úW?ƒc@v;‹@y@?¶²Á?¨jÑ>M( >oÄ>ˆöç>ê(?š&?IÌ?8—?’±µ@a.@ ‰º@Hp?ù‹¼?«»±?Ì(¾?ò’i?¯3l?R2.?y8>Î>;?ÚÕ@ û@IiY@_N¾@4Ö¿@%BØ@ +Ì"@yË?Ýf?Ýu•@1Xˆ@5ì-@ í@ Ô?©nþ?±õG@eI@t.?ð#@Þ~@1¢@=c4@Rë@=ã—@ +F@ ù¯@G·@O'd@\Õ<@5çÄ?ã¾?ÔP?Ðl@Ån@( #@òå?È:ë@Èd@BÆ@_œ@på:@r&&@nM@‰„v@‘Áw@™¸õ@ša@>ט@,+D@Ù…@Ç@ž|U@§‘A@ˆ¡@Â?äÜu?åqç@5†Í@,fÞ@ ¿@C8@F ê@Qƒß@‚[[@oñ@"Ûœ@=r@€Ü@ZC@ M@7á@‚g@`îc@-N@"ç@tµ@¥ @å|?ÿì·?˽q?Æ™F?ÅAv@'Eþ@Zh@i‚Ÿ@z]u@©¡@ƒUS@½"?¹Ïé?içˆ?'·?òXÂ@(@ +mU@®½?ÿt= º@%£„@HŠa@¶K@„m@û/@>–@Æ@ç2@"¨@#aÓ?ïWo?å;@O°@ ¼ó?¡?šsT?íK¬?êDß?‚ŒŽ?Û?41P?6¼@EQ@\e@Ò³?üÄ5?„5?žžÕ@YÄD@J; ?®º°?·k4 ¨?Ãá ?Ô2B@**k@$–ë?E°ã?g|À@„@ À@ºÉ@‹ƒ'?¸Œþ?Ê,x? <)?µ>ã5´>È|{?1)? u>?úd?ûJž>Ùá7>p >Ó¡˜>êw?h«‡?~õœ?´î?¾¦•?ë‘k?órø?¢‘?Ž—€@ „¨@+8?öWƒ?æ"z@'£@-ÚV?ôap?½ëß@ ·@'½@Òá@ãQ@ %Z@ß@@Bh@hƒ?÷äx?ºß¤@Ùl@=0@ ?${S?™Rò@$Q?×L¾?Su¾?’•y@Íë?ô†f?½îë?³¦Ç?˜cÍ?O‘?Ñ­?Ï *?ÍVû?ÄÙF@VÈ@Wf?ÃUs?»ßÕ?Üö? +I6@?ê@Vƒ@)•?ùûè@úE?ý,Ò?¦³×?‰þn?Ýl‹?ü8\@¯q@3Ç@ÎÈ?÷]/?ÒH´?¦/Ó?ER?3°?ÛÁ?íØ$?ÈÕ? àë?C7h?ÂÃ?ËÂÍ@Öž@á?÷Ñz?÷»†@‚³ã@„??¦®-?Nc?ë²@ +LR?•"û?=:Û>úÐÈ>Ì„?¦Nm?ö˜ø?¸j˜?€ƒŠ?³G4?ç·?ìòð@—V?Õ—>¼Ú?Cd6?JÒ ?¸é[?¾Ýž@1]×@6¿.?Êÿ\?·ªÒ?·—‹?·„(@ò@7aÇ@’ä?æ´‚?‘¯X? Qh?!X‘?z(?S1.?¥ÒN?»#?ópÄ?åêš?̸?ˆÓ?së?ræ@KÄ@YŽ¿?Ê,*?…A?vQ?‚…8?=*>ò +?ƒÇü?ÓL¸?ýr@'é@£o@àZ@r?Ø'?ˆ^§?>y›?ªF?b2‘?p’†@%@Nï€@:]?ã&A?ÌQ¬?¾êú?²PT?›b>?Š† >ïkâ?ÂH?™Üˆ?¤?ŽSó?‰‚u?Ä’Ó?Ø>#@.þ¼@NtË@ºg?º%˜@þÄ@=Î@‚?¡¯W?¬ÙÆ@¦è@ <å?ðWR?öN‰?ШŽ?Ãr`@nÓ@9Î|?ûÒª?s¢?³Ìœ@üÅ@³Ø?¦¹?£Åø?Ç6¶?¿¼‘?• ?’ö/?ͧ?‹¢×?"‚>i0ö>ˆS=aG?HêM@h\@VD?yªW?€“°?©®Ç?¯j?;å>é±r?´1Æ@î!?àêW?IJö?K®5?%|õ? Õ?åGù?å› +?B†? +„?²²Û?éO?¡µ?*K-?O»D?—,J?Ÿš?Ù';?Ý&¤?'e>ñ‘ª?ë?ÌÎý?ã~?çb‡?á-C?ÙÛ?Ôf?gé?g@6hì@B`?©Ë¢?Ï?:rp?iß\?­ K@ Q?ððß?†$?Šmç?ű?ÌÇ/?ž?zv‹?…`Ò?œÂÊ?½=}?æž3?ç‚n?ï’)?ôÐ?×Â8?Äò3?‚Aê?fm¼?Ëñ7@ å?°u>ð9@±â@?3©(?P›?¾Îœ?¼Ä©?mçÓ?8ªf?‹ûá?ºðã?•_Z>ö¥t?$ïâ@ R@Ç?µËv?ÃÏï?ðo›@ð?Ø+B?®bË?‘Z©?Y&?F?­V?®çX?é‰x?éÃ9@jS?ô«±?áÿG?Øëë?^:">­'?.l?mïv?Z%à?6?)?˜ëŸ@ð¼@Jº?Ææ?µy´?ÏCË?ÚÓÏ?!ž>úïÈ?¬ä—?ן‹?¨Ð¤?…0:?t€ö?qHö?Á¬t?ÿRÆ@$â@TªU@c§@uª@?x˜?ß»?âl9?îÄe?Ñáz?‡)z?(Ê¥<ˆª{?ò]@Ž@ ÊŸ?úÒ6?ôåw?ñÎc?î,±?S"µ?C‚÷?ÕÎ?p…g?4t?7´§?¦t ?Œgÿ?É«?…?äÄ?ض‹?ÁW—?q$?Eäv?„Û]? Ê¼?; %>ÿmS? ¨¯?‘ä?†Í’?`Á´?)®f?)16?B”ê?9S?C‘™>®õÝ=Ð+K>¦”?Q’À?¥µ´?²ºÔ? +Ï?B·=žúo<[LF@–L@=oä?íäÍ?ˆêñ>Þä¬@’îG@agO?³9•?¶ê">ï+-?†>±Ìç>_$™?f1? ð?“§È>œ^>T±?F~Î?X0Ý>”T<«+{=ã?Jh?E …?™Ø?˜m7?vë:?wsg?U€¦?D@Ö?CØ>ðëý>ñh©>ñç?zÐ?b…Þ?G2B<ñ =Õ•ã?¯?%Öí<åîu?>‡?v?€æ/?„H?H‹5?2?,ë ?'Iv>³…=ú…‘?ü†@Šz?²^>êe>÷¬–?û?6ÂÑ?{¥ø?{êý?|)$?|ik?|¦²?]1>ýþ?>ø¿?ÛRX?Ðãl?}ú4?hâ>þ[/>äm«=ù~'>€ˆœ?«fÆ?¤‚¾>ÿp>æÂT<=1x=¢f#?\Ó?7)Ç?³›Y?¦[>‘ø>Çl?‘—?†œ:?‘Â? æ#?ËÚ£?Ô·Ø?©0?¥½?åõ>öP›=ÒUý=÷n? ? ×=í(>'pc?ÿ,¬?øÐ?Ê´u?Åp2?f³)?akˆ?\*à?e÷Í? :4?™X?½ ;?º1¬?‡g¸?€]>Âfâ>‘T<¸¨d=Þ •>†Dˆ?Ø­?¥êw@@Õ¿? ûM?0Ô?‰Â?‘×á?ž(˜?‡ôÍ?G•ð?FŽØ?/Š?:¶?\l4?PðÁ?ʪ?•¶?Ms˜?R|Ú?W†9?¾K> G9=” =>³ð`?fŸ&?@ò)?AR?‰0?F~?zeÙ?Ãq,?KA>å„ø?asZ?Bã›?/Kí?šíÊ?Îê?zÑ¿?aù?“¹G?Þ3#?Ü$Õ?Öü?±B?”úÛXH=Êx=ð +ŠŸ>ù>(>ß³??1ÇL?5pk? +y?–3>ÞþP>êlç?`Ë?Ÿ<>ì°l>Õ~2?G·T?Y@‚?½,?Ä Œ?h?s?O} ?y?»S?ñ.s?ùuÕ?€NY?ƒ›? +~h?®|?‹= ?•ù?Þ­¢?Åñå>¿yA>ÎÒ’?-OC?+П?PƒY?>yj?ó(?+í¥ôÒ> M´>Åð?:Ví?¸Þb?€›Ñ=é F? ˆÕ?Ľ!?ªEÝ?ƒ/P?™:?°³1?”]§?p)í?F&#?"…—>ŸT¦?rs6?݇ñ?¹r†? T¦?IÜL?|î?…2È?©A ?¼ðQ?Å<ä?¶é?²(ß?òy@>?ª"v?ñ€?,3‰?‹Â?áà@Kb?’ne?ƒ´[=÷± =y²û@‘U@|+?·ç?¶}\?ÏzH?Çñ?É&(?Ã:?:Ðâ?Gã}?™´?†L®?¯-?‰C?êæ>þÿØ>©?>Òx7?%À+>æ.=Çó<>‘Ã?€A>Óä>ôŸ?£Ü?„'?åÙh@)Î@5¡?@KVu?Ö Â?<°?/Õ€?).?3[\?-îŽ?Îh ?üºÐ?µ€÷?£Ñ6?‰íÈ?„‚0?Çbq?ÔzÓ?gx ?]"÷?•>?‘“@jÏ@ß_?¤à? ]?.a?À? +‡?-À?º-?Hܲ?º\?¢ö¼?sܱ?¾Oÿ@Ü?Óš ?;ê)?]ŒÔ?„Ûæ?~ >`#Y?Q°?£dZ?¦Qÿ?¢ÉV?>â?ñ˜?¥¾y?Çst?g`~?Eä?[¹ +?Qp‚?´ê?¿¥?3@?†Fƒ@c¿›@X´I?¬? ¨»?‚)?3¢“?œJ?©†?ǨY?Äduˆ>¦?>óP?gûú@‰ç@Dvª?2ãÌ=|jd=õâª=¬wþ?·¡¥?Æ_&@ +Ù@ Ñ?$x>?L­@ ?ðR ?HŠ&?‚‘@N1?ÌÎc>HD7?WÒe@È]@!Õ@6w#@Q?¾E´?´e™?¯T?¼ól?Ç—¹?P#Œ>zd€?³>}@?÷¿?õÎ@S@¬"?Õi¹?ÉÈ°?<ì·?ˆñ@8§¯@Gb]@n@hØ»?„å +?†"×?š«›?™ü!?„×-?–˜©?ë(?÷.|@¨@%×@%ðÐ@(K@(û@ +6ˆ?þ@5‰»@ƒâ@HËc?ÿyÌ@!¨Ä@AxR@!°²@Ë?ãŸÉ?ÒÅl@>µš@gÕÕ@P©@2G@}l@¬Ì@QY@Dâ­@ ³O@t'@tÓ@"Š(@3i¨@9Ô@RÍ@ÔÌ@!T@*ºÉ@€9@}а@E9@>ƒ@4¯›@?[Õ@_Ïø@E?Íú÷?ÿ×@H/@G6@>é´@OË@qØ@CA?ô¦®@ +¾@}4@©ç@æÔ@' 1@:Ÿl@ +t§?Å;€@c(@¡»i@TI{@ ö¸@FÅ@j@Gºi@6Ÿý@õÖ?ØE¦?¤eá?še?éf·@t@ãu@¾?îN¸?è%£?„TM?n‰Ñ?ªÏ»?¸Ç?¿Œ0?ÆQT?ͽ?Óâ~?àÙò?ã‘k@³@'?á}Þ?ÜF@8å@6!d?¥¬í?¡è…?Ã~Ð?ÆIá@@P@¯ž@@@¼(@ÓŽ@Fæ@9]Þ?úv?¡ @DØç@<€Š@"N&@%&k@6bÆ@1+Û@Ę@ vÉ?È2j?θk?ÂUƒ?ÝO_@7„N@+u? n?®ò{?ÚAF?Îî ?³õ?Ûz¤@?%]@5f@8?ßBð?À/??ÇI?ÉŸf?ü¸˜@P­@B/q@ ¤!@ tF@/@ ³x@ªJ@wœ@š@§)@†ò?ó´F?¥£p?¶Ê>¤Ö? +‚·@~n@Ñ)?ÀS ?Ûç@]K@M¼ó?Ì–i?ÒΆ?Þ„„?×v…?ßúž?ëÜ@>Çû@CôI?ã¼ï?Ô@·?¿„K?¿v·?ïbú?å~Ê?ºÙ?Á†„@6¥@@ô?ÙèÚ?Ém>¿µ¬>,¸Î?¢?î?ßn\?ù½@,3R@4Rë?Ö¨v?¯" @%Çw@>AÐ?ý¡Ž?ʘê?ÏÎë?ÚjÖ?¡ã?†·õ?”·i?£b?ê–á@ ÓÞ@*às@E½@Ë'?Ä3b?„~Õ?Té??xÀ?Ž1~@*@[•î@.á?ÚW?Üv¿?Ôq?ÖÚš?îño@xú@u@ÉÞ?ò‡»?ò$Û@]=@ ^ˆ@*ÂN@3ð@< ÷@;ùz?°O>?³Çx@$@eê@8ïé@?×@ ›…?ùö!@[S@žÚ?Ðâô?®·ã@¶@:c¿?ýgK?ªgk@+†B@y@i`@ZË„@4dÆ?ååZ?²Ô[>øŠã?ñs?t'ƒ?]Ó¼?7?XïF@?$@Ó–@&¦·@#µž@rY@BË?¬Êô?’ñ?€K‚?`Æ?¤YÚ?¹6?.ü8>€5Û?©'D@zx?¼z?vv}?—®Ù?¿Ìß?ÔO?õûë?Ø«‚?~d³?‹s?çç¿?Ðã >øN?/?“Ö±? SR?¶WÕ?·¬p?Á(Ð?ÀyW@ „¢@8Ä×?ýI÷?º“+?snÃ>ôc?s'?ĉ??éÅI@.´@ •?ÒÒ3?Ê/ƒ?b·Ú?X™Ä?µI&?««£@K¬d@]÷@ þ.@•¨?‡çx>ûæ†?œp?×j¥?Nƒ?Tä¦?Á¬R@,Ðc@òŠ?µ(?­†B?^U?PÔD?óša?þ§c?Š’¡?pŽ?Ñèû?ðO?ƒë?ÜÔ?Í¿°@#–@#.;@$ÅÆ@ ˜?¥+î?šÚØ?‚T?†'ˆ?œ±ñ?¡68?Š«è?‚<@n‡@*ʬ@šª?ëW{?óm@”Ñ?úÈÞ?²7?½ì"@—¤@±@©w@ +WÇ?álÈ?ÛHø?®‰Ì?œØå?¦û?®=ª?ˆÝ¨?md??a?+Ò?…lB?šûû?¢I!?=â;?0óÁ?˜ ?°U?™Q6?ƒŸ’?Y¡]?äª?LÕé?íÃN@äw@QÓ¿@FCÚ?3‰°>ë8á>ó9>é«î?™ú?õ%ô?±™î>«+°?k£?Ò ™?ÝÂ?oA?wuU@¾‘@(¬õ?Þõ‘?¯'?€eG>è;f? %?hŠ?yä¡?æ¶?ÖM?r.–?cÞ×?JÀ? +Ûš?‚ŽŸ?»š’?­˜–?ŠV?‘ñ?©ŠZ?¡Î@ä€@&¤?í|?Õ–ƒ?¥’?f¹Í?1ì¨>Øá?wŸÈ@?>„@/í_@ûþ?÷ê§?æ… ?ïV?’Âo?ÉV?‘€<@sš@^Š@ï>æ¹N>æÃö?¾Pø?àÚD?‡K ? (?MÓ?Ú“i?ÀÀ?g`Æ?…¦±@ÃR@Ó™@ öƒ@)M?¨Î·?“ ?‹È¬?ŒSÔ?w^?Šu?wä@@P…@ +¼Œ@ Ñ@ ”?ëÞç@íà@-Ãý@/Ê?öz?о?¬|1?kïƒ?¬te?÷êÃ?æ_(?ö@ø?õúu@I´?…#S?[^?o»?kn@:H[@NØ)?¼I9?[…Ë?‰H?Y%?¿=`?ÿ0¿@(©c@S§p@B@Ñ@.c3@ia?Ïf?çÓÖ@ îL@!k.@M^£@™–>÷õý?2‹ˆ?Ðש?Ú)È?Ôu?ÌkO?Œyµ?˜ì0?ý†r?ܳÝ?~‚?9]P=ÑVî>þ\s?‹b˜?5èV>¥IÞ>Þ¥$?¥?L;?†ß@>ÜÇ>jÉ>L:d>„X§?‰•°?¥8#?á"Œ@jw@Up?½àY? »?mQX?‹Y? ·1>–Ü?°|?¯Ã =¯#>¥íý?hD?¾qÊ?—Et?•¿?û>žý?÷\c@/qé?¥>/?!ƒì>BõÉ> +„á>8‹<@RvØ@‘wÊ>† s>Wê>e6Ã>ÚR?|É?0+?‚nÈ?·N>ìN>æÜÇ?KB¢?h5¹?$Ê>ÖÓ?ŒMé@ö0?ì$?—ú?ê[?±Â¾?²S?gÀ>îâ??_‡7?zÏ‚??e˜?OÅ?¹ð>ñîØ>¦8À>D“Ü?lJN?VƯ>ôž>õ P>¾ø?>²È˜>%'>µØ?™æÍ?µ?i‰?A]_?… Ä?‘é¥?QQ?1_?™>ùüá>—2–=„âi>èI?wšÎ?’sp?µ1?ŸŸ?|+ç?RÌ?ª\?‰iÇ>ý A? û1?<%Ÿ?Oçô?}û¯?c÷w>þ^z? +.?>„6?3Z ?(2ó?Ö?n>ñ“”9³zV>5Ž™?²X«?¯8?ÀG‰?ËÕ:@ +vn?îèH? X>?#õ¤?FóÝ?:ì??°h?1Ç?±_œ?§õ#?r{?T$ÿ>ÌG„?KI?¹œU?·ûv?‹¿]?‚R?‡Tº?¡t@F$@ s?i?g¹¿>˜ŽÙ>Æâž?CÂ?Sµ?<òØ?B¾w?=hò?1zý? ÌÀ?j+>›{V>’¸S>Ê¥3? ”_?Ùf?Ý?ãj?‘ñ×?¿ U?«¶m?÷w?”gõ?ÃH?º>¨?¡ ð?ªSw?Áâ×?—@Õ?˜–?RF?B„4?.Î?#]?&w?+?-æ?/†>°_ê=ÍÆé=ì8í=üÐÁ>½hD?ÒÂ?EW?³Ê?JQ)?«/?B½ä?S ‡?4(À?$š?Âü?Xœ?‚Z?¸ß?‰G?EP}?ÑË>å(ê?l"b?š@¤?˜”?’2?mm?Kã„?eŸ¥?qöd?©³X?¾ÿ4?‘·–?€öñ?yj|?oös?f…s?]z?g^?g¯ë?¦ª?°r$?oJ?Tû‹?#&€?)??Fc?B]?}ó@?‚§H? žÆ?«Í?–T/?  ‹?äØ?ê³Á?-L?O5>ëÁå>ë„a,^$?¼Y­?° X?My?Oqô?Ý6?Ùp?‚äF?vKü?7x?n¦8?ÌÚU?ÃãÓ?Äv:?³<Ô?ƒ?ƒ9?ƒ*?Jû¹>†­?îÈ?ƒÒ?†¸m?‹8?œÚ+?½í ?]Û®<ÔL–?;¤í?ÄÔX?¤âá?ƒ@?B´E?Io?Y«:?Š“J?y"?›@?Õ–?ót‹?W–Ï>ƒÉx?n>¶?Ÿü ?¹œe?Å<.?”½š?ƒ‡X@À@—b?Ïo?ºní?¢ª?—b˜?nã?O?È»? OÌ?°>?°5>Áá>óe€?Ų1?À¹õ?pf˜?~ì4?ƒÝä?kFï>V†•?R~?ïù`?ëÞÜ?óµ}?ÔcN?«æó?¡Ï?„ ‡?—W?¸ƒ?“ÒC?8µó?L‰»?v­:?ÕHò@ Àe?Ã?ZÓ?§?*¤–?ÉÛí@ iÉ?“eÝ?X?†S)?£1?­3¡?°Œq? Üo?žÏ¯?¨sê?¨Y?¥ä?£Áõ?‡+^?„‰£>¶CÅ>²Ã\?¨òl?œ‹??„œû?`?Š??J¥Ä?ú +š?ä7Ï?{ôÃ?‚‰Ø?ƒ!ñ?¨ue@Ï!?ÖJê?„É ?}´ŒÙ> Ÿ‡?Îç ?ï*6?‚±Ô?w¿þ?L‚%?8¥X?… A?†&ò?‚΃?€¬?}&?•,k?ô…ü?æ¡?Ç¥k?Ñ^§?ãlŽ?ÖÎx?ǯ±? –Ö?RO?•Q#?Ç°Î@Ix@êR?¦%>Íî?^ó?4€†?»ö¦?çûä?m~x?åw?=4+?8¡q?¾²¿?ÌÒ@à'@ƒÅ?x?“[Š?ôÙ6?üߘ@Aýš@A»²@AŸA@(å·?ÁCË?µ¥ž?}I7?še)?äS4@¶@%¼Ó@Î?²SV?’=‚?X5X?¶À!?ðä·?ºj?•a.?à­ì@?‘º/?3-T@!¼A@G~î?·{ ?†˜@aF@C@ ßË@9ª@(Ÿ@¾’?&z~?:¿?².Ø?¯üË?­ÎG?Ë5@)l¿@á >Õ?…ñŽ@AØé@2Îÿ@#“@((@=tÜ@,Ué@{b?ü8?Ñfß?ê\¡@ŒÇ@?ña@i®P?þvû?‡×@HX@‚€@7äe@xh@`öE@x)»@â±@‘†@Z’ª@NU?ñáN?ä?†É?†5@½@9Ý?ù8?þ¸@/¬ò@><¹@”’P@ˆ®@Ú¸@ ï@e@%}@GU@ˆÎ˜@ãOw@§™S?Ø@°@H@Jõ¹@!Œl?ÅÂ@ +=¬@;»ª@5Sœ@-p¨@+|Ë@.,à@Ç‚?æm@:ø@wó:@/S|?ôÓ'@ »õ@u|@ !˜@A@¹@ +s@ ÔL@ü„@ ñ™@%×æ@#¿X@#ÄÄ@6Ñ^@7îÌ?ž/?lè?*·Õ?%™F@g8@JS?¶gö?©“;?Ÿ×Y?¡§D?¢"?ÃÖû?Íâ?ÒÕù@6‡>@:8|@cÏ@)•?Ãè?Æ]¤?û³?öNú?dU?h”?Ãr?Ç®?ÓY¹?Örç?¸ìê?ß'R@||ˆ@kó’@ ƒ•@þl?á¯Þ?üÊ<@0u@$£X?¾á®?ÆÍ;@ bõ?ìã?-¯=?(íÚ?$,«?pw´@$@¶?@¬ð?uÒ@bu@A@V?çö?tk/?Žíã?êÁ®?ôú@qs@(‘Å@W]œ@6?hqa?|oc?œ{É?³º³@™,?üÈ?éƒ?èm?Ú·®?Ú§?ÀŽ?¾óï?·O?¼–ª?ͺþ?Ô¤@ æ@~!?úWp?ý‚š@¤F@Ú›@Ey@ ü?{È?‰é +@Á@&\?yYþú¦?¨ñ?¯5ã?ùœ|?þ¤7?þ–?þû?ö?ûj+?ýÅÔ?þ/®@6ú@Ìj?¦Î‰?Ñ?ÿÏ@Òx?ÌÉÜ?°íê@ûh@39?ÃÜý?“22?‚èå?cÊÂ?§à.?Ï? ?ÔÒ”?ÖM§?ã×?õq[?¿¦u?‚ ?|‹?|:@?pä¿?{l€?žÀ.?¼ï‚?ßñ¬@•Ý?üe?–œ‰?ÕR!@Lçb@=ƒ@³›@®Y?øí?õ`?€ä™?Sf@< ì@;ýÞ>†˜=íù>ùå&?9&?‹hõ?ù'@4ºÎ@F&z?÷úø?Îì@Kܽ@mÔœ@ Wø?÷œ +?®}¹?f£Ó@ +Ú/@Y¼«@0…T?øèÊ?ÌF?…ù`?dã_?û`?dÃ2?ô‰A?ר±?hõ?´Ä@3V¼@-`æ?Èz?Ó…?2Žd?3n@ð@&Aj@&ƒà@%¿6?ÍÏrû‘>]¶°?BUc?)ïõ?ßÄ„?å?ç"Ü?ë¯Ð@1ÔS@NÛê@E?·5u?Ì1^?×`©?ßz´?óÜ@Âã@Øf@` ?jÍv?Š ë?êã?æõ@à@ÎÈ?륅?è\Á?ÅŒ5?¹·"@²@kÆ?¤L"?.§$>áJ0=ö®Ê>ô.Ò?”?¤Ý¾?´ÿƒ?®TË?‚K¤?ˆÝ¯?q‚?pÀ??p¨•?pŽÒ?ÇŸö?ꂽ@‰@ Êó?îÖ&?Õùo?Å+Ô?¨´2?µ¾U?©‹?³z°?Ó ?ÖnÒ?KÐè?Kq±?ƒ˜?’½;?†n?uÖM?p ±?zk?Ä.¥@¦?ÿ×k?²8µ?´Ä_?Ê1Ä?ͨ0@-î@‰?ª+?%G?eoz?28™?B¶Ö?fè:?ŠB¹?¨•J?Ž¾ô? ‘?`S?¬/?"ük?“žC?‘GÆ?·QP?Å¥6?¸p‹?°$¿?³Ž?¶5c?Øpí@.±è@&ðôO>Ôp/?¶f?ý¸@,¦Ä@&:›?½[?°äè?Ãí¬?À,è?ž +?kÆ?`C4?h?ˆÌÊ@D¹@F Î?IfA>í@–?­©?ÔnG?¼T?­‚Ü?› ?g:9?¯ž@(P@Ô.@V6@$ª?Œ[å?¨?v?ª8>?±&?¸ÃŒ?³[Ü@8’@|¤@_œ@ µ?ÐÔ?¡Ÿ>?ƒ?fe?³ˆÈ@ÿ×@“†?¬Ë?¬ËÐ?°?Ëq×?Ÿxì?‹UŸ?1æ7>æ€g>æ„ÿ>æ‹·?>‹H?ÚÁ ?ÆÜ2?”>º?ŠÊÀ?V,,?^>?hƒ?g Ë?ŽÝð?­h?œ¢Á?gfG?v`}?»”l?ÅŠÎ?¹ç?ËY˜?‹Ï*?h;Ã?S>¶?4€2?žŸp?úo²?¾]Ê?¼?9…4?cD;?†ž ?m ¶?j'g@+tð@Oì?Á6?ù?Ò©£@,˜É@14?œÍ™?¶À?Ô¾?ÄÂæ?¡Æ?{Ž?²w%?²¸›?|ýÍ?nù?Ì#¥?û–£?•Ü?þX?L­&?ídK?ÕOñ?–Í\?ŸÅ?³"ë?Ãëk?Ñ)›?»žÅ?·>ÄÒc>Ô¡?sˆœ?2°ß>0¹>¡J]?¯­?a­? ??FÔ?:¹>Ûp>óm ?6-=ÕØ…?!c? +Òó>ø?ðŒ?ˆ?^ˆ)?Rº?¾a? ??†Š2?‘}»?Gï>~q?|S]?&e=:R:Ü5/?:?#j&?/ö>’åB>iÑ>í]=¤'Á<N£?“?Ð?ºÖL?ëL?éiŠ?€: ?ux¹>ÉÒº>\ì”?#^?‡kO?€k +?wQ3?„½×?IY?¡$?EE*?cšÃ?$s²>éŽ?eK}?Ð~ñ?®@>̧>*)J? š'?àó>xÏ>€W­?ƒg±?®›‘?u—‡?1_?(>@? ö%>¸Õ=Î<«:<ìÌ>ã9>ô›~>ìÓ=Ûíà>Éþ?¡N±?›á–?{k?wU^?E¶&?2×Ú?žˆ,?º‹ ?…³ô?Y¯A?BÊà?%*†?G•â?r {>ý*æ<ÒC°?0JÊ?¼ºó?Í”\?á·„?À.›?‘Qý?pN>ý[>ÒËŸ>t'>ê‹?}÷N?kg?*^Â?]Àð?Ï?Äað?ªš’?ÀRø@*?ëHV?{”?tçŽ?†ªA?q¢ >’ƒú>êAÉ?˜ý?–A'>£¡“>Ér‹?€H?y Š?<¦}?T@®?Ðw«?Ïã«?µJ@?ªµW>[`l>ˆ ƒ?`äª?˜•[@8íj@,a"?=û?bÒs>¡ª>Áw.>V¾Â>Ñ\K?‰øc?’C?Ë•I?¥cx?•Ö?·¢?FÖ1?Pg?Gû?;Û?[æ“?2NS=éœÎ>ž:Å?pÑ?vä?{4ƒ?6œ <òjb>ºöA?ñÏ?„ñœ?w[?Ó×H@*æ@ ¨ƒ?­aÝ?‘¯M?7Š•?—¢¢?çeã?©•æ?:Ÿ.?`‹Ê?†ÑG?HË?*Ë?JX?ƾ?_!Ð?’áã@%´@>A&?ß±?3>Œ÷Ê=\x¬?OÜ?‚J5?ÊÁ>bþ?|—?Äh?P9Ú>Ó1v?ª—?è.Ž?̺ô?¼N?­ù ?«GO?eY??)qª>Ee«>¼¬?q?n,t?‡­e?#B²?f?¥šÊ?¾ý¬?Žº?‚„D?-Ü?ë0??ƒB?NÇ?Oû?‚‘B?¥¥,?§¢?Å?Ãd)?TŠ?MÃË>«ÌØ>¨Öæ>²›>½J?’·?6¨?Ü…?ŒR=_`=äg<˜òÄ><¼3?ú—X?Þ®[? ?#Ò™?Ò£>ä3q>€Í>Âk?¯Tï?–#D?é?mÇ@õ›?úÙs?†¥R?™]?·É5?œw8?Z9Ú?Qa ?@n7?jŠû??£Ì\?ħ÷?ŠPï>öMg?¹[? +r>—”>và?‰Iµ?¯ÌÕ?ƒ”£@ÞA@£?¢íÕ?Œ$ö@'ç@ C`?É +Ë?ľï>å)À>ÖÿÐ>Y>ÎϹ?d¸?oÛ·?¯÷?¦n?n¡|?Šiº?þ @Æl@I¹Œ@'Èç?„'?„?„ ?¦»?ïœ#?ØÏH?ª“ö?—¨x?bÖ\?˜µ¾?Ëm÷?ƒž?7´?® U?üš?݇Ä?Îãx?—ÃŒ?od?mâ>Í ?8ý–?Yû6?¡á3?¬ï4?¢‡?¢y§?¤§A?¦ÑË?‡F?„†¤>c³>f²@v;@L?„˜ú?ˆ/?Ür?™”Å?•O?f=*y>Ø9ž?ÅÓö?ž©!?${?“/%?ö‰m?© +î?Ë?˜M ?÷ŽÐ?°:¦?\óK?öp-@,¥L?ÀûF?KãY?t”2?ˆì¼?,ü´?î²?ñ¡?òœ?ö?ø?Œ3¬?“l? šÕ?êƒ@?Zô@; ®? ”?ƒÑ?… 1?(¦?Á¾$?ÃQÕ?ѽÅ?³?>À/?ªK‚@%@1à?ó8?¯½J?;© ?€éð?¤®Ý?‚0i?LÓ‹?Qœ?Uiû?I”?1¶?¡W?º¯!?ƒï~?o'Ý?Ì?å7 ?íГ?öeŽ?‰\³?…Ô?Åfk?À±?’ +ç?žºJ?çñ÷@5&@5s„@n?…/?}~t?c¹D?Ç3…@1´@ë?éë^?¬yK?A·?•j>£…Û?ËÕï@&Os@u?Ø=?åpZ?ð£ü@ç„@ò@/"I@?]î?éKß?Æ¡Ø?• —?”Çd?Ëu½?Ðû<@â@,ô?â?çZ?ÇIæ?ç3=@K³3@R@]@Û@Nv?„>¥?@v•.@RrÄ@Ò±@ ü@/ÇE@. †@/¾Ì@«†@ +,ù?÷?Ûû@S¡@X»@gkä@Aos@2ˆO@0$Ä?Ójø?¦­J@ +ÌB@†@)jò@3øã@û?ÿ$œ@ +B¹@_ @^ãS@TfÚ@4†N@42B@?Sc@;¡­@0r´@=Ðã@ƒEw@ˆ'f@˜’Ï@|ó5?ÏÒ?ªG@`ÙŒ@3n¿?‘/Ä?ðÂä@=j\@Iž¹@a—,@,w“?Å?Ƨ2?Ï·?ím@­I?öûž?á@%v@$úä@!‘C@‘®@0k@<·R@,'@!NÜ?ÿéä?ç€?Pj¦>¯ºœ@ ¨^@:ûR@okb@à@Pä‚@BæŒ@D h@De¿@îÐ?íC"?ÛÝ ?ÓI±@; +ø@DÖ?…S@?j%ž?ì”?ëNk?IJt?ÃÒa?ƒ$®?ƒÏu?ò†ð?í#Y?ß$?ág?µG?·ˆ!?¹ÇÈ?ÅiO@D @Ì=/>Š6’?ÿ<@mP@4·ì@'< ?Ö¢‹?Ó™¢?rs#?€-?Áë?¡ó@",@+ @óÕ@mY@BRv@,Fb?˜¶?™‚>?¥;¯?¤nþ?´ÍJ?×Ç@*'@- «@C¤å@!qü? +|€?É¢? «2?]IÆ@ôè?÷µ”?Ñ,½@_\@kº@Dí«?¼h?Dòã?êí+?ßõ6?ãáÚ?߆ˆ?ÀÇl?½Š?§’5?ªI ?Ï:’?ÄâX?“í?­7@6p“@+Ò?‚Å¢? á?Åg[?È¢;?Ôs¼?Õ8?­\N?¶ Š?Ãgá?¼ ?¿Ÿg?¾ +§?ƒ‹?}‰P?œp\?™æ'?‡“@?~J?ÚN?ÐìN@«r@Ûé?ù³?ø?Í?@¶º?À)?t|Á?‡µÚ@ fF@ ˜@æû@î‚@~>?ý¯?ùF?0(@ED@4R@eyw@S–g@wÍ@@„¬?üÞf@âA@$OÜ@€ã?Ì`#?æ”@nâ@6#ø@r'@cy>ü ?\’=?¼é?×y@v§?òå?¤'Ž?äµ%@[÷V@Fo?ØÍ?ȧN?{ ?w/@Í;@þ@MÃ@Húù@Ý[@Œ=@V ¼@S²?ž:‹?z$?Õ +?ñP~@+·Ã@4™b@:æ1@FGo?ðçI?šÁ??¿þÈ?Õ¤‚?ü-Ê@¥@‹#@\Ñ?ÿœ?º‡¶?Ï{ ?ø‡?Öâ¿?C,?¥N@óo@á…?áo?ãÔ?wÉÕ?w±ý?­Dd?¤ð/@LÛk@Xf:@)‹@"¬Ä?¬/ç?vð¾?ñ¸@Ã@?ÅB¥?€J±?œíæ?¹Ó?ï–@b|?ó}?”Ð}?—¼®?›è9?Â1ã@Ø–@ëX?7’v?3ÓÄ?ÜÕí?ßÉú@ú@ ë§?Сµ?·„6?Ÿz?ˆâ@å&@O¡@ólÛ?Ô±?¬ì0?¾d?ô/ï?ýœ?¼(Ú?µþž?Ö¸v?æôT?œD¸?€ÃÃ>í +=C?A;Ô?³¿f?­Â#?¯D?²¢?Ôñ?¾³8>ñ$>ô?¯?¯ø#?¥éy?yÈØ?pŠ¥?#£g>þŸ¡?L­À?†`þ?'«˜>Šk‚>ƒCñ>y^>ÙÑ¡?šk¯?–Û?—…8?šá´?ÓF?ˆ_>©Ø}>(ô?ÛO?½S›?c=Ò>û|?Œ»š?ø¹?ó\d?ÜEÁ?ÝUô?÷åo?ð£u@@j?ú1^?(¬?[ù??ž¼K?Å×ë?Š—¨?–{?¸À@ùD?è÷Ê>ëÜ”??Ùrt?ʆØ?­ºë?²iI?¹ÃÜ?Á0½?Õ²?Ø[ü?Ö¤{?äÈ?ÛLY?³÷y?º·B?j2Å?j9?™Þï?šìÖ?Ý®v@äY?³'A?3gö?d•Ý?½€?Ì‚–?âTâ?æ?±±b?¼Ž¬?‚¦?h’º?,Ÿº?%Ò?-í ?, "?2 r? +`?FÒ@Hg@ _Ï?ŽÐÔ?ioC?ž~H?´®?áon@X8?ÏÊ!?g7Ù?‘ÚÙ@3‘¨@;ÿí@]l@«Å?özž?â^¥?‡„Ý?V?Z?<5r?p.?¼á,?´?æ%`?ðÜ?ëP?óÉÊ?¾0/?„±Í?Œÿs?±™?ö©@wùX@h?«[É?›$ö?ÓM4?Û|Ä?—k&?GÀj?}Ö>ù™£?†‹T@D|@;XL@õH?üxŒ?-ºþ>æäu??¶à?g¦?–y?¸GË?¡$¡?gbL?h¨ô?wMî?€ªN?À+ä?ºbÂ?°vN?¦~l?œÔ*?ŸM7?ý ž@AþI@#¤±?`W?V"?Kæu?AžZ?(³Š?2]N?ÈhI?ñLE?ª°Á?xZX?•;o?¹úÆ?¨`?l%k??B?¨‹2?£·>íS>öL:?²{+?²¿x?²äb?¯=y@ûT@H©?»Ì ?™%Ö?Žj?wæ?ÏUŸ@¹6@±É@3V@|?íAŒ?Úç}?¤êº?ôùÐ@@V§@)¨3?͵?èÆï?ôÌr@ps@EüÜ@7s@–¼?éD{?+é÷>ñ¨ý;Ÿ<ž7h?Pi@ïà?ÕžÜ?…3¶?C¦Ê?ã5?šP?š´?Š?˜ú?©Â?/Rü>Áeõ>qÏÛ>«l‡>ÆL=u«<Uõ=@H=zË>–.=ñæò;xÅ^<,0=öh¸>žÔ¥?>Û©(>¨xé@ˆ©@§? +Dw? ;@>öVì=¾¬?yàî?ŸS2?–óé?3¢)>µÏL=%4?Gi>‹·H?+›?€Ž€?@éâ?I!>í?ãÛ?[ø?^¾?¦ÝD?ÕËß?”œ{=(!¤?RSë?XòÙ>{óT= +†F<Žw@=J,=ò‚'>¨ý>¨hb>ª¦Ú?G?¬>‚I”>\Ç!?œõ?#}î>¡€~=þ ›>÷ÄÊ?]úw?>ÍŽ? \>÷y`>ìmh?9v?e?U–7>¾•>³˜?mÜh?ŽÅ>íe«>䯬?‹??—‚Ÿ?žŽ¦?¤Ù]?<Ã>ù`*?…šÈ?±ZJ?W¶^>éÇ>ö¿Ÿ>õõ>–â>/q>éuþ?L˜B?Cß‹?$â?8>?Kåú?¯v>„Î>ÊöÂ?G+i?>ÿÃ?'>?q8?î’"?Ö(™?i?–¿ò@+@–?¾Ñr?¤Ld? ÜI>쟠>p8Æ?gÖ?—÷ä¯Ë>ú¹q?[^?Y?Oñü?@P°>›3†>¼^w?eûï?MFî>N’R=ýß<Ï&b>LR??$?~!’?cˆ¾?n÷ü?šÅÏ?{I›>Ý6?7ó?Ȫï?ÓH)?Ïúþ?µ<?{äz?†‰û?·R¥?£vi?* +?$ßQ?·!?Žÿ?jÃ?GË? 'Ç?œ?VI?Rîï?¼ì)?~•>1£¸>¿‹?BUÛ?&ˆ@>ª'5>Ú\?j?Œ¥÷?ÿ‘b?Ü ?žË³?³Êl?ÔóÑ?¯¡Ì?rP½?tõ?‚0c?¸ñ•?òÞ +?ßç?Ç3ž?}Vj?E]?AOª?jÇì?Ü>@ÜÖ?eÈ?©o?€c >ň:?iÐ[?¼>Ë?Åq?ÉŽú?åé?å“„?œ+¦?‚hô>ò—×>s³ä?NL?b´?´?ù?Ït?6Ûº?}?«S¿?ÃÀ&?\?‚‚‰@ƒS@Ð,?„Î}?`[¬?€PQ?‚‘‰?iö\?qza?™uX?¢rT>¡™>”"¯>Ñi¯>½6ï>ªº>¢ºp?¢’‰?¤Âœ?m&Ð?iÆ{?» ?ѳ>ù»Ÿ>ä…=Œ $>C,G?˦?(C¾?­—?œŽÀ?F21?+àÏ>ôþ[?n‰?Sç´?›è¾@íb?äŠL?õ?Z®t?ÐX?²ÏÉ?\óW?2P+>×üÔ?Uç'?Ä›{?»YÇ?²Œè?SÑ=’Òÿ>‰ôW?*`??ö?r¶?…f?•û(?†:4?jç±?>È3?'Íç?ÔXa@ z·@ Õ?÷²@cƒ@¶'?bü?KY™>¹3G>J÷ @7œ@F¬…?ò-U?Åé?˜@+?Ê‚?&a?I#@ ‘w@ì==ðkh=w¦==´šB>6Þø?µkÇ?¥[ú=ƒêé?%vð?VÑ?òƒö?÷ÿø@ Uj?óoø?ƒíÆ??è2 ?Ã_â?Q-‹?f\í?„ ?4P1># >•q¶?w?É4@7 +@4?öôž?˜¶Ó?0?Uõo?‹9×?Kɬ?#zo?jÃ?x?†$?•BA?u? @v@!ý?Àg*?©S™?åéÃ?æ=ä?ˆô9?„r5>¢ß>½J9?šm"?˜Nf?–,ˆ?¨Š@é€@ ÁÖ?÷QÂ?Õl?*]˜?¶?o>¿:è=P8?UGR@Å/@h +@&fn@ k@RŸ?¾bþ?0;@Wæ@GLß@ +O§?Í?­?š°?‚A5?{úî?so ?jç-?bW2?5€(?+‡?ÌNñ?ÖDF?('1?Þº@ÕS?öpd? 4ï?«?„ÝE?…¹3?Š8­?š.1?Çœ¬?ÀœÁ?¬*}?òy÷@> ‚@ Og?…v8?T]?¯?o»?¨Ë +?¦¹Š? Ãö?#©F>̱?±;Þ?óqµ?ê¨?ð)¼?‚J?>!?öÇ>Ç->GöÈ>Ýä?Ê?dÃ@EwH@9@`?… œ?œ_³@V£@À@&gÞ@~a?´ÿ”?„Šç>7Ä'?³=ú@hì’@GåØ@‘W?üž¢?Â_ª?U¯ÿ>R°ñ?ºÊD@K€@ï?ø\,?ªk\?…/?Îl$?îÑi?¶Û²?œª}?ùºè@ã@–é@Vz@rÈ`@rá?݉=?Þû?¨xY?˜Ä>í*÷?`¸@5 o@HáÚ@‚k…@`pÖ?èÂÀ@'ŽŒ@Œ!@cô@ ÿf@!™ @<³@×À?×#N@žÎ@àï@6=—@FÝÄ?Ų•? +§Ë?Æu@Î@ª@§E@|³@j¿@q¼@‚@w%b@o<Ñ@X@†#@"ØŠ@%T@§Ö@“M0@UåB@RúX@?—@:á?ñÖL?õì@.ÿ?ùp ?¬Šè?²bÞ?̘_?Ô̯@Ž|@¡Ã@$g@9$%@d8N@oá2@kâ@2–Ö?‘zI?¹ÂÞ?âÕ‘?%X?%?¡Ñ?ëê—@ÙŒ@&@2:@H\Œ@9fÚ@3¡ô@?—A@FÚ?ï-ê?£{\?þ#Ë@É»?Ù¼ ?ıã@lö@ê@ñT@”K?o??JÈ?À X?Ïõ:@DŒp@L§i@eA@"ê?k”È?RÔ*@ Œ@‰¬?„ªÞ?†Z¿?»Æý?¹Qö@@RÒ?]ùk?dyl?‚S„?„G?–•?‘K +?‡½?¦hÔ@aTã@V¨@ iE@ 2r@&íÇ@ã?æO?Ždâ?Í +Ç?æ—@>èE@-{?ùži?ÿ²¬@Ó]?üL"?ù Ã?íPL?“ØÏ?¥œ?Ýçè?Ñgu?Ç?ÀÞo@G=l@P#@[»@6iè?~l?Ìd?vx?¡ø¿@ê¨@är?òk¼@l+@5&@ í™?F–?žñ“?÷‡!@9ë?ük@¸~@9X@eî?Øƨ?àh4?ñ‰?óéí?öD?çãñ?…Ÿ\?7W@ Z­@ ]?…î?Ló@5A@¹d@;ï@/Gö?Óc?Ò3(?˜TŸ?Šï?áʯ?Üãº?O9?]÷ò@ sv@ +\Î@75«@={¿@Lxû@U»%?Èáy?¸9Ò@¤Î@)‹?Í-1?º¶Ä@,³Ã@:S@8¬@7ZÝ@Aµ~@A+_?«ù®?Lá·@ÔÅ@HSó@Yâ®@ffU@k?½Æ_?Ë‹Ì?ØI=@%ki@JŸŸ@1@y@Øî@'ûÅ@6à@Kmz@^4$@ šn>ü.?‚ñä?îQ7?Ò Þ?££¤?®R/?¼«ü?ûi@[úï@?íÆ?§y·?£Á)?Nå?z3@A3@¯x@|áÿ@ÄÏ@³È@Ž¶@ÑÔ@«Â@/–m@,#Ö?¨Ž?Š3‚?¿…c?ÚZ@%Õ @5ÿ¨?´X]?8X?˜Kí?Ãcˆ?Èê~?ÎtL@-ë@xè£@8Ôk?º‰?ÍÃ*?ô3??åÍ7?¸µç?ÅÁ?ÿk»@„@b@ +‚Ò?ý?ôÐí@c‡@ 9?ö’N@k°?ÏÖŠ?Ɇp?¬Š?W0?Цü?ë¹»?Ík?¸î[?»9˜?¹‘@àË@51W@Ó ?«¨s?½ ¦?çøñ?ñþš@%ä@E7?8g?Bk‰?ÐF¥?Í"Û?ÚÝ•?Ö >?Ååv?Àˆã@.·â@P(ë@UA@U¹@Í)?Óª?ì,º@ÍÅ@•8@ã_?‘î,?³ì?‡­‹?Mœx?¾j‹@O*?î?Á?¤ýx?¼E?ñPˆ?ÜÓõ?*žè?(}@%À@jH?¨9æ?‘RŸ?£~)?°ñ0?_,?p>?ðÔƒ@(â?æ?%¥?Lûm?³†Î?¨æ#?7Ö?> c?Õ¢?å|ƒ?¬³?–C@ +jô@,(´?»}²>î^?²ž‹@'× +@Àß?ÃÎÊ?ÅS˜?ÀÄ–?Ëbæ?ÚIî?ì??ÞÊ?Ü'E?@oë>`Ì ?2–?è)ò?Á—Ø?„È?¦åc?õС?ãºÖ?°¯Ç?»¹4?Bó?3&y?]qÂ?k?ÖO¢@„@}?µeQ?±‡¿?¯Í®?µ¥M@FÀ?üéi? >úèÐ?s­í?‘u?´äK?Ó{?­»>é>®?î­?®Ç?°x@I,ƒ@ALð?¢˜?hŒû?7>“Ä4?S•T?­ñ?‡òQ?%£À?MÃ?­å +?­Õ?µ"K?®¾9?Aœp?ÛT?»ÙQ@–@@ +?ØUÇ?ÌCð?Íôý?Ò%™?¯Š®?­,?¡ÒB?¥€¨?Œ Ì?^g2?x?“U›?{ ?žZo?§w?¬ã—?¬Ûh?Ž6X?>6?Ñ©«@ +ä’?Æš>ÿ‰?N÷ +@>@ì³@›¼@ìu?ßÓs?Üa°?ÇB`?¾¢Ú?«Ò¥?vV ?‚FÄ?¿jA?ÓBB?ôÊ?ùœè@ã¤@o¿?¼Îž?šß’?µK?Ý6}?¾¢?dú?€;?Ö›?Ì>$?œ¤?£p@»@ Y?¨ž?LM ?„›Æ?ª¿Ñ?¾.?ÞXg?Î÷]?ªÈ¯?dÜ›?ŽÝ?¼§?W?l?ÙEY?¹??"{g?Ÿ£?§Î•?­¸†?³bM?³C?žöê?ª8Ì?Îóò?ÔM?Ũé?É|T@ +kŠ@|˜@90v@o5•@MGo@ Øb@·k?ç“M?Õ Â?ò•Ò?É–n>“N??9é?øz®?Ûó}?˜×‡?ÀG:?è Í?ðý?“— ?`Eq>9N>‚D?o|’?´¸ø@)ÿŒ‹>8£ï>ìaE?~¬?L!ó? hg?#?’y>ðçT?G +?3¿e? r>êH>?hÑ? n=k±á9çó9J,=$@p=âÆ<ÿ'à?ÇËæ?ýÂ@“ª?a[â>gÙs;w€?Óòù?¡¦G?A×Ö?#×r?6Â?eP¿?žd?ÅûÏ?ˆH=&ö8>æ=ñ>æñ,?Ê–??æ2ø?¼…? `ë?€-³??S?;õ/?JÜ?I\õ?mA´?mЧ?qçý?e­€?Bß%?D‹2?Ehn?7ç?€V>ñöÃ?"yŸ?bŒš? ü°¨H? Ò7?•=Úò>5>ñ¬>4±Y>Z¿>…;?‹ý?ž}Z?«Z?§ê??M@C?²m?H[Î?e€ˆ>²:]>‘Û>û¼>ñGÕ>Þè.?XÓ¡?£8ˆ?²pq?Ćò?’@ê?/w ?VÉ?ÃN?c9R?6ø?v™>¯Ÿ,?`K?®±?à-@/-M@"…Ð?ïë?ØŸS?€>ò?IB~=F+h>€ ?QT~?YÝk?‘˜?2…?æˆ? ̺>Ä>¡7?>ô £>üÁÈ?2ï+??.V?€ßØ?m¢¹?…?AHÌ?¯Î?›3*?#·?;o’?¿·9?¡zý?9C?ŸŒ?4…F?Xÿ²?‹æ?¥ˆ«?ýŸ7@ @å+?ô·$?„ž‹?…%ú?hr?w‚?–6¾?ˆdÚ?dã ?aáå?Zû\?j1?y¬ä?€ +Ê?H?Uwù?]Š?:Yl?Yä>÷np>œP€?0•ã?ÂÒ?¶]â?s¤>÷•€?`Œ¼?¦'?¢µ®?š8’?® ×?ÊñÃ?°Ø€?SÚ?Üð?‹ff?Ã=ã?÷‘¦?Ù„?ÀøG?¾£œ?½e6?…í)?Y@H?Ã>Å–¼>ëT ?Më>Ç5>žÏÃ?$,?H2?±)? l?óü@§:?Ä‹ü?–àU?¢TU?¡Ú¢?{¡Ï?nèà@³u@¹é>èÑçç ·?nÕ?vO¤?‚~Ê?Ÿ)á?©üD>³u¶>ŽÇ?ÏñÇ?Ø ?¼\?³‘k>„Ÿ,>‡D?;J×?+€¸?P8:?Zðˆ?®d?£¥F?¨ó?/ä?§?oš?ܵ>ùh>f¢]?¿>Y?®¿Ð?y(Ò?Od.>*>¾ˆ>?!r6?ZŠH?¶SÆ?–^4?3£?}çr?Ùžò?¸•[?C¡?B»„?NÕ®?õ +?­n^?§‚T?Ÿ`Í?¾?šDW?Ák?)¢?_‰š?z»?HÙ?£Ò?Im¿?ƒ/u?ÓL> Næ?- Í?ƒ@³?s?cD¦?ÁT?ñ©?ÙMp?ÒÙ>@1%@Ø×?¬“ ?|êÐ?D«?së?áѲ@~a@©@FI?¬±g?žÜù?]ó?Œ õ=ÔÉ7=´?d?‰í?¼=á?°?!’O?%? >Ø;«?…®?¥Tu?¹‘ @†<@±Œ?Î?¸B£?>fº?A#›?Iz?;þ?ü¥? àH?X“M?JP ?*áa?&“9?"G?Ž‡?Ð÷£?…mÌ?+Ç?F7?Ú?«F¢?Ƀ?–RE?zCb?v¦?q¹Ì?H„v?Cdá?±¥ü?Æâ?´ñ?¼Ð?ÆéØ?ƪÃ?;X?¤ôá?†Ž¨?ƒ>V†V>Žm?ÆÕî?ÆÛç?ÆÞÅ?ÙØO@$ Ä@Í8?„¤`?²c“@Æ@ xš?ÅÂ?ÂÊ*?»Ÿ?¿¬g?ÏGç?ô¯p@6À?êÖ9?¶ù¬?pb—?Ôó?¤«?ê +“@Ë^@ßÖ?çÙ?K8“?š»R?«š?Ø,O?ßkñ?£2²?˜³y@Ã@û?¡Ì,?¶Ò?Ùš†?ÎÍm?‰È?|0Ö?èà?<?Ãð?•¼§>R,E>Æă?9=p?–Ýó?û˜?ØžÑ?œjH?ÔˆŒ@æ6@¤ó@,Ñ?ì9€?©ô?p£?&Ë´?¢«%?Ç®ó>Æ´?…Õü?©Ðc@ +©@r?È?ÁTË@S7@ ?ʇ9?Ï6Œ?—¯?»\á?¡?Ÿ?‘ü ?À{? ·­>×µË?DÕD?± ?º§?â ?æC?á¾'@à@¹ª?½?;?;ô?ÁñÍ@Ü?ßk~?dž\?¤i/?“?O¨ ?+ð¡@4?œ@[%X@,ã@%—d@>ýn@;Ç¿@:É‚@*Õ¯?©~?¯ò??ßÚf?Úìé?Õóø?Ñÿ?Ì ?è’ª@\¨¢@Q”ò?òâd?õnË@ùÑ@(Ê£@x§¶@jå¶?¿¼6?ÀöÛ?Ï0å?ÊÙj?Ü—í?Ûå>íÂ>Üq‹@­¸@ (*?†µ´?‹¥?—=z?ˆB—?ìª?Lš?ëÃ~?ú\á?/õp? !â?Œˆ`?¡cŠ?Ö›P?瀮?ü0"@Â?Bw„>¿Šˆ?8yï?h¥Ö?Àdï?à)?ÛP²?ÕŸ?¸Mu?£¶·@-@oK~@H´[@%ÿ?ÎÆH?!o?õ¡Q@\ª2@/´?äÐ?¬ÒU?Mˆ!?£r @v^@ïª@ÑŒ@Ç@¼’@ ¶€?“uÆ?~Óô>û?"é’?é~?ò +Í@!+o@Ĥ@™ç@‡=ñ@ê=ž…Ï?ƒÞQ?šï%@a@!€=?Ê”?¨Ñú@ 4P@ ØS?–<>ùhu?ˆ7j?²êç?º@?½6@ü @Y$z@- *?ÎëS?ÂH?µß4?¸©²?º>ä?»R÷?Á2&?¶Žj?b†^?ƒ¬9?Þøe?ä¬@?êbÿ?ðô?ûl?ê ò?Ÿñ>?’}ý?à={?öë +?ÞÖØ?ÏYß?¶W?®s@ —@7Gù@ä@Ú@Z3@ ún@Fê@?Ù?ì-L?w•h?‰©?tì +?p½@Ï}@8t?üJp@/5?äý?â‚J?¿-ò?´t…@Kq@8ÕÕ@2|O@(¶¬@'@@'ˆ@'_U@+­@ ’X?b§u?ƒd?œ=}?ªP’@US@Z-?æÇj?ÞZ!?¥&>a?„ ?µ§?ý?qöß?º»U@¹d?î>³?Ån?Ãh?ÑÂ[?Ä,??ö<ï>÷þ›?:?ň…@!ÄÀ?÷Å>?o”?‡š?³3?·¥?Äý?³£‡?"5å?qÇ?Û¤Ï@÷?™o?bá?lÂ?f˜À?VµC?b¼ù?k¢ð?>;õ?†—†@"t5@¥Ÿ?ŽË?óx?‡ÊÜ?ê§?¨Ú?±iÓ?‘Àx?lP}?Œ‰¾?«Ìþ?¹˜z?øl}?ö=n?œº{?˜ñÃ@¹È@ :È?¬dm?‰¶*?ŽÔ¦?Žªó?ª?à‚ð?çè?è1f?áÝ„?ÃDe?ÊÚŠ?§ñ?”s?FH?.ø±?[”+?„º?~#E?F|Z?Tþ‹?´º?°z·?µqü?Å7•?Ó´D?Í?/?XSˆ>ècù?ož?ÎÀƒ?ωŸ?«Œ8?¹v?ÅÔH?½‹5@Ø#@Õƒ?*TX=Èt?[b+?Îg ?Êã?¾L?Ñ3&?öÓ ?ê?¿!â?¸çc?&Ó>Ú6^?·Ä_@ñ`?æpÊ?¬û“?£C}?fè?f€Å?Å =?Ãó?±'??¬ÍŸ?¬Êï?¬Ë1?–3’?^›«?o”í?¬Â³?¬Áš?îÃ#?ü²÷?uש?:ê?9`´?%$È?‰°x?ãc?Ë¿i?q€–?|@?‘4é?šÂÁ@ +†æ@Ìø@ —]?ùÙˆ?ÌÈA?¤T0?kÔ<Ap> áÜ?-ñ†?KÔ§?¼p?¶È?ß[ø?ÿAR?¢¡{?(Ñ®?A°Š?n¬Å?0ÁÉ>Män>ÝŠÇ?…¤¬?‹§?)MÌ?D\&?‡ª?ÛkÚ?ªŽ?‚þ?.Ú >ëœP?Ë=?K± ?sgm?ÈhC?Ê,?m^˜?m¯÷?n??n\*@ êÂ@È?”ú?o̤@Þ@ºå?ƽ%?‹m­@6ÃE@•}í@a@yÉ?ý&Œ?ç–@“@)e?óòv?Mz=?†k¸?Ø=?àÏÄ?½îZ?¯Z‰?XÌk?L@ÿ??¯’?}r?å<û?Áë?}¸Ù?YÝÁ? +jd?58~?^?ÒÆÈ@È~?Ë,Õ?>×Q?mÂ?‚ÆÌ>ìؾ>má¢>»‹_>¦'>†N¨>Ÿ±?@ 3`@\K?k?‘??f-?´S?…åÜ?]°? ‚ö? xy?Ê»?3{>ìaô>nc@>*=ý*O;ó´‰@ZHÐ@fÚ?½úQ?¬>a¶>E-R@Ù¬?® )>`ñ>c®Ä>Æ{±>áËß>â–*>ãZ>ûn>ùn>Í©é>æL½>æýÂ?V]u?fÅõ?mÅß?s¼ ?>xQ? ‹©?ß'?5L?+b?mNá?ló?.Î?Aa=?u >ðÅ?T¯V?…Gq?Iº^? ì,> ¨>0‹>ì†+?ø?e09?\72?>ÔÃ?N\?ûã±?ê`Y>øŽï>÷^·?4Ó²?@Ø?¢û?·/3?\–{?9‰?[üþ?O§ >ÌX^>Fs?!÷q?xŠ„?š?z?®;?Ï2 ?ïXy?Æñ?£tÝ?ŒU4?L~i?8P¹?48L?Cs{?F|Ô?LJ™?RC?d÷O?~·†?¤È?´] ?”ùU? +q|>çÙÇï?®¡?È_o@ëP?û¹??¯d +?¹Pï?Ð/?µ?Ë?ˆ§ú?ŠâK?Ÿl?£É9?³x\?¢Ê[?€à7?…:j?‡¸?m>Ø>Ýbq>ôf’?Î>ð=.§:>ì@?³¥?®c‡?©!€?ÈúP@»?òƒÈ?œõD?Ÿ¥E?•¹È?Šúˆ?@Ý?DΉ?h¹÷?”m?“Ù?Ž_c>ÄÌF>•‚“=¨„›>‚0? ¢œ?7Y¸?kÔ?N¦?í ?9„?õ?lÐ?F]?2–1?*ñ¨?•Ka?Ü’Þ?„E9>Šò?C0?Ÿ™Ú?”ê¨?’(?hþ„?)<¼?šrÀ?ÑÕÜ?´#„?¦R&?ZN?6I>Kèµ<†È°=“÷Â>Å7>Çòé?=õ·>Ç“ï>tn©?…~\?©Ëó?ÐŒ%?Øš?¿ù?Ãó@?cYú?0F/?‰ÚY?ßV?0š?r›?w¦?za?wE1?‚~×?ç/m?ë¼¢?œ ?Ш? 8d?0?±Ê{?·®c>•–Æ>rç?¤;‡?£òÍ?8¯O??.?Âö?½±š?©:?Ãq?‚®;?FÉ?t)Š?VŸ=¹>˜Ró?ÄMµ?ÃYx?¾†µ?«ÑV?\Õ=?Z›?h*¸?esp?v†’?]¬f?ã(?,ç~?‚éq?Ž÷5?£‘?{v¦?øT?"š¤?V±Q?5£S??$ >ë?Yçc?°+Ø?Ý‚@Š?x t<,´ã>™l;? +£ô?=_>御>‰UÁ>I»–>ú"¯?%]P?DT?Y06?@^Ø?7 Ž?¿?ãaûü>ö™?†¦?"æ? •!?(W?yË~?uyÇ?q'´?e(+?B%?j~?¿;?ÊÔ©?×?7?Á—i?Œ«7?>”¨>מ0?˜ ?‘  ?‹&®?væˆ?`U?dZ ?h´,?²RÜ?ñhÛ?ŽžŸ>ëãË>]×<²ðô@ë€@cR?˜¤½=Ï~œ?Þ±á@4C?ð£=ñ¡­>´‰b>èç²?PÎ?Ye??˜ÎO? v ?Se?¤Â?G©¡?R?”µŸ?’Ä?ÆÒÿ?Äu?³öŽ?ª@ ?\\?b¸0?Žûm?‘L?–Ù@?Œ?‚î_?Z­(?~ï?Î @;ë‘@ÍD?Òí}?ª“6?„Ï7?6Ì>"¬¼?²k?6S?íÏG@¥ ?Só>…R?-Œ”?OÞ-?ð@o@ïÆ?¦0³?ž“?áÁ®?éÁ»?ûôI@Õ³@!bW@³Ô?Ç…Ò?¼^?ƒÅç?„k¾?ˆ×á?jÞð>éÒU>¦uÃ=Å´P?)Ÿë?Çû?²ô¯?š“?¾Œº?éí×@ pJ@ѧ?©|I?¢?† I?«0?Ò¾?ßàb>ÍNï?bœ‘? «?›`©?›Èe?Žä*?Œ( @E"@"Hb@%@“­?Ç®?½{?…ˆ?£Ù@èã?׳5?E +4?p k?°Fˆ?ˆÓÓ???.É?…è?µ7?ì“Û?Æ®Ð? ¿­?ÀíÐ?ÛH­?ë%£?í¬†@Í@B?ÀÃû?²¡?¨{û?c¬?ô i@*Ý?"ÍÙ?í?û$?ýBQ@&@TD?!i?2çä?Œ ¶?¿%?† ,?šÚ½?Ç/B?Ü¢¾@‡Z@ +oè@3@&°@´§@(dÇ@Q”®@›?§¨í?³€¯?¹%›@™þ@9³>?èiZ?‘µ­?àÿ¦@Y)?Ö×?Á¤@õ@?.@H°A@T_u?ã©O?ƃ®?ëçß?óœx?˜¿?’w@Tíí@PùÈ?çÙK?õaž@.K«@"@?ØØ]?ØøB?Æ?ɦc?Î †?Ä{ø?Åêò?ú-c@<ñ@6&ž@$¹@IUH@´@PMÈ@Ñù@?î_ª?ön@¥›@1@:„@ t?û(ú@[@6æ@S”ò@góf@í?ÑôX?ûe@Hî?˜çÊ?cÀk?»tY?Ñ™@'õd@?bH?‰ú@^A¦@]ú@ViÐ@S€I@!˜)@%μ@;.¶@#ñ:?÷‚?—Fì@äU?ûŸ¯?Ðc=?Ø%s@ ¡¦?õ¬.?6‹8?ç@0D0@:ÝÐ@Zü­@RêÞ@!Ôô@o @ú’@ù´@'@,ð¿@Sz@Fíº@è—@ ˜‘?Á¥ò?ß‚}@!HØ@&Ý@7âX@ ¡¶?º.ÿ?¿Ëc?º$ª?³]?ˆY?…å~?GßÞ?ž+}@BBx@1{?Í:þ?ß`Å@ +ð @ QË@`±@I¡@y@hh@†@6t=ÐÝ)>‹»Y?ij?ÎP@iè@¿¤@l|@À?¿½?ÄT¬?ÿ{=?ùêU?œT{?œ?BÚ’?H¢?"?‘þç?$?uô)@4×@?€v?ó·??ïí?„V­?y®@ìë@Ÿ¬?ÈeD?¶IÝ?JQ­?43¸?ÑkÛ?ë;|?·hB?Ÿ?¤?°Cð?­"7?ŸÍU? w @ +l +@"Ù¡@^u@îÃ@1Hß@KLî@HmÈ@Køî@V¬º@\Ö@/uä@¦Í@M@5c«@¤x?aû¶?¦•¦@ý¾@p@<ª@ù¡?š¢\?ªâ?Þ¸Ò?Òyõ?„ [?ˆp€?ßa?ñå@{{@‘1¢?Jš? SC?§â>óaû?à>Ò?ë®_@G>Ì@TVK?Æ{?%²?üj@3?†™Ý>ùjp?ŸD?ÝßN@‘@Í™?üÇ7?ØÀv?þ2|@=¹?øù?×?ƒš@?zû¦?À-˜@KQ@, +¦>÷û?ëÔ@uò@ȼ?“þ‚?–ØL@@:?œqI?‹5®?à¼×?öòÃ@ Y€@•—?®”“?0Ÿ6?ˆ!8?»8s?¿£‡?¿J?í P@»(@™ô?õƈ?êÞC?·€¾?¦ÂL?™kÑ?›?Ð~}?Ü¢O?’,Ç?‰³T?P%Ó?‚æ°?pDw?›»ù?©:?¶bF?ËïÙ?Ðo˜?ÉÞy?ÉF?Õ¬?é^.@@ð@?ú?q·Ì?n¨?xÊÈ?Yÿ>°Î²=´$Š?ª‡¤@Íà?ù +™?̯"?µF½?ð#?˜›Ü@S@¾?ÒÐÍ?Õ¹ª?G«?n?™Ö?ºò?›f?uŠ?¢E ?æ¶?Ï,`?Êa?›mK?×C:?Óp@A—\@R¬?ñ `?°IL?Ò¾?ê͉?Ï­—?•¾ˆ?˜|r?ê]Û?íR¸@×@15?~Òà?w ¹?KÎA?.‘ƒ?[ä›?rñª?‹K’?Á¶µ?Îõ&?Þ}?åPÎ?®ŸÛ?®…]?·8ð?¼|?µH[?¥Âv?IJ¹?à­T?¢“²>èà?œ”?ÿ“ @èÒ?€-ƒ?kÀj@j@~n?¯ë‰?7×É?—µò?õê?æÀ?ûµ@ÿ¯@0=?ý ;?ƒ˜<ŸR ?¢»@1]@ 9@ôm?ä`Ï?fŠw?f~ø?Ê{v?Ðöÿ?µ]¥?¬Íi?¹t?·ªa?V-l=”Mp?;7\@DM@8?ÏŒ[?ÊðÑ?‘ôÍ?pôá?pÀƒ?‰ÖÅ?£á6?±†è?¬ýj?¦©?¥ì?ñ?âÓ?³’I?­-Ý?Îls?ë?ÇÚ?Œ(Í?41c:Ù¥­>T˜€?ÇÈj?¸ñù?utÈ?†Õæ?¹M?·°?­:?®e{?±ž?°š5?‹àá>ËuÂ>¯÷a>ç>¹8¦>v%{>F7o?²ÉÑ?ÌGÚ?ð»Ê@ 'k?Ɔù?^åq?“ßø?Éw™?ÇýÝ?ÒŒž?·ÈÁ?mb?nƒ?~Á²?sÁÛ@^Aó@c°Á?±°Æ?oÕÐ?ÜÒ@«»?èû?Æ‹ë?nžà>òRÃ>÷Œš?öà?–ßF?âÀµ?æ™ ?õ6Î?À 3?!:Å>á$G=O&?>ÌH?ºi'?·e?©sa?¬KÊ?¼ÛÙ.¿>õž?›Ê?6Ð?òq?±ät?¹g¼?„‚=?„‘?y2?šf??ÍÏ ?TG®>®+Ø?7?1ŸI;® Í>‘—? WV>ðÙ;>¢ß3=¨õ?¶„S?J?ø ?B$?]>±$@§U@-ÙZ? à>À  +?!‘š?t²d@ ”?åjG?¤¯J?t0˜>@Ø>k½>‚ +>Žf'?+u¸?§$‘?œì>Ài>Ì~Ö>æÿè>èª@?9¼?ªI?W¬þ>êð\>ëŠ?>ì%;>ÝHú>¹‚b>ÑÔ>rÜá>[¬¬>àb9>ðm>«yç>|Ë(?$Œ?^ú>ë]=SK>ÇJ«?p,›?LÞW? Â?ã;?ÿû?*‰?ŸMe?¬4B>÷M>÷[>‚k¿>‰_¡?"œ¯?(7Q>¸y0>aD?Ô[?@ ›B?ûˆ«?ñ9Ð?ÏkF?»Ô?#z >&“t?s}?J-M?kó5?|¡u?|ØY?}}?läÛ?Iý?©k>ŽTè>êNŠ?+ˆ?9FÙ?]E*?v·?Š¦å?‚Ñ?t@Í?“h'?¾Å¯?§WÜ?…ÂÇ?zWó?Z€ó?_€Ç?C$?eÆã?™‚û?–F?oÕš?zÞ?‚î‰?šàû?ÎJÝ?»õÁ?€Û£?Žb?²˜»?‡/™>†!>ÖÇ?|§?„£ ?|X%?ʵ?Áëø?ÓCž?ö­@ôç@9k¿@Ø7?¾Ó?Žq‰?‹Ü?9Û?D4?ë +>S´?0n?Â(?…$>€YM>”œY>×ÿ?'3°?x l?EeÜ?ÑT?rG?¹0Þ?pã?ð?RP ?÷s?B n?[ãÀ?‚jè?› V?€¹,?GâÁ?fs??‡L-?c>?3û?FL}?\O1?³#Ý?æA‚?Gt=¡l >ÁØ? ˆþ>hV#<.Ú>£ú>ð(Î>ûk£??Ô?\í‚?‚C?˜ž?œˆ?‡åÓ?‚K'?§£-?¬¦ô?c±X?@d›?u'î?‚[?뺭@]:?P~>…¢S?©ùu?Ø‚@4ö@?'§€>úãª?W4?ud? èú?S–?‘ï_?š¾9?ÂÇ=?ÿ´<£B¨c¯ >ÒD?‚”#?€L£?N1?Pw€?0ˆ:?"»>»ãh>èäa?iÑŒ?Y›¼>à®+? ²A?|:?§Q©@"¿@ vÌ?‡Ö¤?s^‘?È?U(ß?¶ +Ú?®ÑO?žÖœ?¨¬?ÀN?Š«¨>Þt?]À ?Äaø?¨ÀÖ?uÇç?@J?û%?ÿ +?E?†ž´?Ø>?•ŒŠ?³É?·S@ w ?žTc?ó¹?õ?¾~h?º ?µ©(?ά>?Öu~?’ ã?e§Ø?%ÿ?L°?Ÿ„ò?ºÔI?Þ[?é +?yÊ?Gšü?À)Ù?ÛÀ¢@Η@Ns?æ(i?â ã>€|j=á*f?}V?ƒ}÷=…6ß=ªYZ?¿&¯?¿&â?Ö‘?sìÉ?a?zt?ÛÏ?n=îš]>¤°Ø?ƒÐî?Ž†T?³!?¤•³?s¸?As…>†©k?#Ôc?¯é×?ÁN_?Õõs?¾¾C?”×þ?ƒX‚?fch?U‘N?Wïá>ìÄ"=øhJ>Á ?  +?Zíô?‹Èµ?ÙÆS?ñ9 ?†Y‘?USÛ?–øÝ?›+?‰>½¼C? º;?¯‹«?Ó ›?Ò&-?†Þ—?†NÚ?äbM?Ô‚÷?˜mµ?¢nz?®ñá?ªa¯?„‘ž?¢xV@ ?i?üpÄ?°í?Ú!#@¼]?í$%?}>« y< à?z U@ ‰2@#Ê@6ƒü?ë“m?„É•?Æêõ?éÉ.?í^–?ìZs?ôÑq?ÿ½å?d+?àÏ>£WW>“)–@³E@ª?•Ý>?ÌŒ?cßh?ks‹?Çt?Êfb?õ!N?òÄ?Á\g?­ô–?,å?&+¹?…©?ƒYÒ?{O§?p(f?[q?tÕ2?•õ?r«?-‹£?ÞÑl@+˜{@C?Ç¡ð?¡ ?…sã?™ó?¢DÕ?ŸÊ?¦­P?Y6š?$Ç~?õPy@ í?ÿÿS?þ5á?·„B?·Ä +?Ù?ÚÍ?…D±?äÉ?Ǧq?±q?j?AûÂ?©ýó?ÞÓõ@&n°?ã +V>§67?%?Wº+?¼†@ ?þñå?ç(f?°è$?ŽÅ°?Š%·?…ë?ß6€@ŸË@O+@h¹G?®ÉÃ?1h€@<$ž@Tÿz?­HU?‰Ûg@öŒ@!@É@¦¥?Ùl2?Î?£?Û"?#yl?£Íi?»™ý@ D@ ŽŒ@ Æ@=¬@%íZ@,?ê)à?àd?Ó@7Ä@‰øÊ@GV?÷@2Þ]@[—‘@í ?ÆÒ@.b@*²A?ò\å?dz?ONž?ês@8õ@Z•'@“µ@˜Qt?ôZ>?Æ|Í@9½Å@;¨¾@7:f@1¶5@ íï@ J@N,@ „ï@Jv“@=ä…?Íg?Ê­Ž?Ùï@]d@OƲ@4zw?Åå¤?ÅÝ™9?t10?âÄ5?ÇËY?/¤ž?UÏð?Á£?³þF?¿a?²C@ ø†@ Åø@ _<@'à?Ücš?ö'’?áÊ¿?× ´@+@€ß?åÞs?ÕOÜ@;‰Ÿ@RÔÁ?çü«?œ_ˆ@öZ@8ƒî@˜ü@~@>ƒÉ@gŒ£@!}?Ï{@çÆ@U­v@K{£@;@GĶ@XÜ@X2>Jþ>¨Êþ?œ…?tí?Úåé?Ü+Î?‘?¶‘?Ÿ?±¾n?û„@-Œ@Ñ0@óy@/Š@0>?»ãJ?»×X?ûc¹?õß?ùa³?ú–@ ][@(±ß?§–X?yÀ ?Ê©»?êS?k¨©>ùdÝ?Mp6?ƒÂ²?Ç’÷?ù ?ÍW’—Ã>ÕûÖ??™?€ét?ïO@@Ê,@C³Ø@E5B?o1B?n½K@@.@W@–?îLÙ?îãâ?òC¦@„ï@?@œ|?²-B?¹t?Üê?Ñ@\?çõ?߯?¥ñÅ?•ÎU?°¬—?ÊÍÐ?û´B@ãR?¶T>=€?2 ¢?þê±?ódI?ë—î?ëv?•x?ŸD?ž"ë?œÚ…?±fó?ÇFç@#f^@}R¢@a¼ð?ê\L?êá–?ôÏS?øŠ„@Ìm?ï˜/?Àê6?­ ý?æ¡á@ E4?Âjü?7?y?i?kml?®?®‚ ?>¶á?.ûº?žü•?ÄÿT?þr@"Iù@%ç??"{Û?”qö?ˆ Ý?˜>ì»F?À4¶?úO?Ü Ù?²^j?Á-q?û‰‹?íé ?8ˆ¡?AJ@'mV@-(ñ?<Ð?+X?œÆÜ?ìÓ?Ï(Õ?ŸÜì?®ÚÄ?·S]?®~?ÅkI?Á™B?‹PK?‰5”?ñû@$]@òO?œ ö?êð¥@“… +@’§?Äc€?È÷?Í™?Ò=2?Y0£>‚Z–?0å@ ¶M?õm°?tÓ…?„²l?÷S*?ü&é?¸©?­+a?†A¸?gº?³)@ê‘?ô`&?¨pë?±Õ»@"/u@I?Š™?qµ;@5æ@&€H?ÖM±?˜v?¼Yš?æuj?µšÍ>é;>?Ío?ô?‰=?0ìj?$” ?Ò•á?þQ?™F3?ªø?µq.@€?ùØ›?ì5)?êv‹?ìȱ?û7;?÷ÿ–?Ï?œèb?­Ãb@/¸ú@<=?¥T(?oØ|?6Ýè?A?™[k?ÀÌW?¤’ã?>"¦?5öÒ?fH>?”M?Éò[?Ј?×*D?»ä^?vO?\ÕÙ?$8? }œ?‚ž}?Œ?‚4?£uŸ?±w¿?ä“O@TÚö@%Ž?Sø£?¡’?Öâ]?ªê´?J[? =á›t? 7?‚ W?44“?»Z?0;?¨?~ºE?™yZ?PÓ?aÔ,? Ì^>悹>Qðì?MN?}~T?ˆî>>nÀ?ž?Ȥø;Ê_A=ÿ²†? gØ>ȧ>‚:n=²8@MŽ?ú†Œ<§Ùr>Ú„>£˜=y.X? +Ø‹?.àž>›ë=îûÌ@ ~Y?ƈ½?‹Æ?oôæ>ˆg>‚8 >m±Ê>VÓç=oÉ-=| +Á=ô¥U=í›Ã>Š=Ïé>ÖH8>åƒË>ù +¿? Ö>ÑÐ=³›|>Ú>ì1Å>Ù6÷>L3>˜½;?3× ?.S^>˜4>™£á?QC?qP?[8>ÊUT?Ed?Ø!?5™Z?sÕc?Þ6?ÝŒ?°°>õ|a>õå>öHS?%²?D-P?>ž¶>öøÝ>ÝÚ¿?vu? Äà?,‘V?8`:?Œm?’,?‘ñR?‹˜à?²?}g,?žÙÀ?¨Ev?¥ÜR?£ÿÐ?.nM>’J›?Y4·?¥ÑJ?žr˜?œ|1?cG5>àŠY?¹ü?Q]ó?2 ‰>þ³ž?Oƒ ?¨¤Ñ?†˜”? :¨?ˆs?þæ÷?З¡?€ÿ?z§?j+? Ù¯>¯»>µa>0°z>—1Ø?ˆY?˜@?¥²?*’ª?€Áx?ctÚ?/Ã??]@”?5?pû?[ ì?³¬³@ýk?Ò®U<îq>pêR?kk?È6@\o@!Î,@Yîƒ@'Âv?®Bp?µM?°-?h?At7?kdÛ?‘ +õ?¡~?ÂŒb?¶û?¢?==´F->t~H>ë½>év:d?©Ÿ?†Zq?¡¿D?¹]>?•²‹?f¸ç? g>76>±^£>Å~&?á¡?=u¼?C-?>¾k?“«Ô?´Ó?ˆf ?S¹æ?ƒi?¡(?Cù.?*°?b- ?‡ÎA?«á?Á6~?“!p?{5Û?$?>¢?a=ª?‚B×?Uv÷?O>ê 7>ÀD³?yR?—·Y?YÉå?E¦–?­:3?·Ìg?Îhø?ØÑì?[ æ??ùå?îŒ?ž;˜@­É@“™>p½<Àæ?¶X¤?¿@? ê*?z(?iV?y?Ç?‘p>º‘Ò>±9/? ©i?¤&>•dr>’]/?F ? +¾?˜¾?"3?šA?ˆO>— ä>Žè@>Ì<>µß&=›—>7Ã>ðÏÛ>ÀèÇ<€ –>GÇ? Ë$? IÁ?É?ùÏ?9>@?n?Ä>?«øË?…lÒ?kcp?S?˜Y?>"W?€˜?§"€?t¶Ý?ùo>Û%&>´¬R>½§M>ÆšG?/%?X~¥@ ù@A+Î?òŸ?ˆ%¾>Ó³5=s8?Я¤@4?~$>¶g¬?WÁ?ƒBŸ?˜Ãf?œqÞ?ËZ[?ݪ‰?Á-ä?½…Ð>ðá}>…óE?.3?;À?Þî·?ýºÇ?võ¨?`àC>Ð>>ÌNn?›g~?–p^?™‘?‹³?Z¾?/¿«@oõ?ðÀÈ?|H1?ŽzË?é»?Á<>Îu? we?ƒÒ’?¨cÆ@_N?éåc?µÚ°?È™õ?íƒð?½¢P?{í¾?•Æµ?·Y™?Ù@–?ø¸Ä?æ@?sš>K?-³'?„'p?€hÚ?€Î?2ü?®¨?ýóÙ@"¼À?€"?K²?)ü?;sÂ?œ2p?¢^›?™Ô?šÆ@(Z"@+ó²?ÑG³?Î(ô@%`@$Ük?æƒÉ?Çœj?X²?kµò?˜Ð?ªØ?û°]?Ôé)?ýæ?<2?„©Ž?Ý8Ò@?™À!>rÂ?Ü’d?þÄ?ƺv?Èð>Æô>Ú(?Çr¨?ÀHY?sÄ>?|÷„?‹Òÿ?¢rq@¾[?ç€-?…Ì?dtY?qÛ?»ù?{?M ?#•Ð?E%?c“?Ìl@y)?Û6\?¡63?ºYŸ?Ç¥?Ý´W?å…ü?E¯Þ>Ì•!?ßW@Ù?‡‘^?h96?ÛÕì?á]?7}¤?';º?*·W?&â^?…_?Ž);?Ǧ¦?ÅnH?¹á?©7Â?…p?µðî@ý{?õwD?Šùº?©[Z?Ùð?½t?Œ{%>]H?ÌÅ–@ þ½@_½º@}$á@9/@(šñ?ë†ç?Î5 ?ƒö­?r>?ï»@ +Þ@ås?üÑ?š¦Ê?•H@y¾@ ¬·?˜Ÿv?• Z?šêÕ?–!³?›©Ñ?¡Hâ@Y(@×»?ß]Ù?Øá ?Þ*?Þ»?îþ¡?ÝÓ?¤†à?ž7ƒ?Ž´W?ˆÍé?Pšç?W ä?¿ðW?Ì°@½@*e@Hö?ÿ$?ÂÓ€?¢b¾>œ¯?Fxy@,€-@&±k@XO@wf@™ï@ öâ@ˆb?û˜O?ØÀ?Ý*1@”%@[??²f?šË ?pÑ?…ÀÀ@MÛ@äÀ?¾ƒ?Ð?ú–j?êÖc?Éïž?Ü3@…–@#þ@@t‹y@Os¿?Ó ?ÑìÙ?ܳ!?ÏH?¢Áö?«Ãæ?¥ã?ºý±@lÐ?ùÝ?Þ’?Ò¡4?ŒwÐ?©¥„@˜È@öÝ?½Í`?Ì=è@ #?îê®?‡ïŽ?šM|@Uv@ +Þ@&@ ?ÖiÒ?× [?¿{T?½¼~? Z‹?¥Úè@ L@úú@t×ô@yÉ‚@‹"n@Žsæ?RÒø? Gy@V%@W‚@R}?ûÕ¶?F?+‚ø?:ÕÖ?J+Ï@n]ì@ˆqx@%ˆR@¡@ëê@$íg?çA?½á”?žfÿ?™EU?îÆ=@)@ Ùq@3 ‘@<—@¤¤?ðá6?½IÒ?ü#g@zñ?×Çì?R–?²* ?ýC%?ïÛx?âoS?Õ}?Í“\@ìÀ@SòK@0&±?š³ò? çñ?Ë· ?˨Z?±û¨?Âó@»…@Y4?Ã.5?Àeì@68³@:lS@7¬“@4ÝP?âá´?Óï +?Ž#?yÂr@Ä@+y?ÑzÎ?¢£"?š,r?‘®?׶”@˜X?ùVF?èf@?ö’@¼ @ì@7Ø@8×@:@3Om@`º@Ã?? õ’?»f@+Î@"8?¡Ío?žÒŸ@&9e@),@'§U@&·?ÖCØ?¹1Ë?¹N?¹ â?³Ô:?³\>?·[:?¸Áõ?¸°?¸˜/?°_È?Ÿxå?s^ß>Þ;_?œ—?‡Ê?”‹?·ë~?¼g?“(y? +ù?ÒÉa?åRÓ@Xö@kw@èÖ?ñ€?£™?€±8?Û²ÿ@ +3V?ÓçÕ?™À?§µ€?¶²©?½Áã?Òí²?ÊO=?Ší¹?Œ»|@ñ@"?º˜D?µô|?°]w?²HÍ?á@W?ìWº?ÐÔ©?ÈSl?Á P?µIß?¥I(?–p?°™?Ô*ý?Î¥§?Ë!?ÓÞ\?MC?S°È?•Ç?‘É?+¾š>ý{?ØVÖ@jú?¹W@?>6†>ÔSU?ÇØ@Šo@ ò@%æA@&Áe?G!5?MúÇ=Û©?¢D?çB +?íýk?î¶?ùìK@8:@±e?ÚåØ?Þƒ@@·@éw?¿!Y?Í{,?ÉfŸ?Íèô?,W>B¦ø?Ý?n’j?AVˆ>ÓL>ùŒ¥?bíì?}ž ?t +‚?…%?=À?„5?vqX?ˆ‹?"3Ó>¼ýÈ?ˆ8 ?öÀ?Àuð? ¥?0ëc?º¯Í?¾r„?ÀºÀ?Ï•>?·Hì?±®2?ÓÉŠ?ù‘@?Ö0ž?€Îž?|V`?z ^?qFÄ?å¡?á‚ ?(d>èƒ ?†Ë?®?b?ô>l@f?냥?ò©?ORÝ@vˆ@šl@%´M@)¹½@xÛ@ ´ý?·™#?a"#?¯_®@^ÿ?äþ®? Åb?9÷?þ4¸@Âë@$ì@Œ'? ¼ð?Ik?„„?lj‰?Æt‚?æ†D?æxó?Î[Œ?Ò_Ù? ùC>2.›=O0=?f0¸@ Ø­?ùþ)?Ñ̤@=t@)n@ê +@bÌ@Ð8?±QÀ?Ž«^?…¨Ò?cƒ?’«ƒ?Ö­h?ÊS®?–E\?Ÿáó?ÆTî?Ç‹?¨Í?“Ò?Qä?cã?õ?lwÏ?’ªð@þµ@‹—?_?aÿØ?Ï“È@Ó?¶j?FG?Gy1?k(Q?†Ê6?œ ?¨\Z@CV@%¤?<?<Óž?G«‹?R—õ@ˆœ@J¾?ÃÂ>«.î?#4¹?kd?}á°?qO?¯=×@W€@^oÍ=Á‰·<‘ ?çžù@d?O?oã?•(?…ÇÇ?¢>ñ@­ø@„‡@3ç¾?®³Ç?›Å‰?Ž5?»4A?ñ°?Ðmî?›åt?ÃÆ?¹Ÿó?·î(?²Å´? X8?yàp?7â? †å@úÄ@-‹?>ò?¼7´@ °x?ÉÓ?_Éï?`”ð?6]M?9³Z?4À?/‰??î?O®M?iÞÀ?tè?­œ?'f¦Œ?Çåâ?›Fë>ÔÒ¿?ðQ?TÖì?"dÁ? +nC?ˆ°%?Å? àê>ÈÓq> +œ¥=ÉF>>Ÿ‘>žâ—>3)c>G? EÉ>Yh?†)?£‰¯?¯¹P>€ =¨Û2=0 ¹@ †Š?³«?]Ê3?T­O?6&z?0´(>áYÍ>áì÷>È(_>§‚ø>ýrV?/ ?:À?xÿè?nî™=¤^Ä<ƒÂÝ?;Z»?_ +º>¢·í>SrÂ>ì3µ>ìÇ@>í\Ñ?Ñ?•zÒ?’Üñ>Í>¬u{?6Bf?Q—‹>x~?ƒÿ}?æÐ{?Òª?µŠ?nÕª>v`¨>öD?ZOR?TÒo?OOk?<•Ô>Ë„>â©j>úA‚?ë‰>\’U>0zz>’-'>‚Ÿ—?³BÈ?Ú3¦@þ@ß?Ù´ž?»C>?VÚ?¡*?¸CÊ?ï¶c?—È?4G?pº²?–f-?ž“I? ’F?ßÝ?›/ý?BÀÀ>£´V? ï?C§?åï>ÿ˜?'¥Ù?gƒ?••¼?À‘?¿Ú«?º­'?o9ó>-v,?‚Ñ‚@\?ìñŽ?©já?Z³„>Z–Ê? c?~¿|?‘mn?µy?p„·>&Æ? +K0?¢ŸN?eý:> ±Û?#O?Áª?rr>þ8¹?+´(?v$?˜ûì?Í„Ì?¹XN?¥t;?X“?-•C?}È?Ý–î?ÆœŸ?¡ÖÚ?±)?ÍY?ªÔ?€Å|?¸O?ò°*?Ÿao?ÄÛ>¦¾=ÐUó=}7<´¤>ŠE? +\?Y?&yY?#—f?Wö>ô>ô‡a?I€$?a„? !ú?¬sš?êc«?á +?×ü/?Ä1)?ı@?K¼>Ømm?’§Š?½2Œ?F™Á?'>)Ío=…ZT?=ú¦?rc.?-}å?? e?AF?™ÃI?¦OÆ?±Øj?¯{>?]W‰?BIÝ?Òàë?éu?ë ?‚XB=âã›>`£u>O.z?²Â?Õ?ï]?h¦?„Ã?„&»?ºü½?µÀ‚?ˆ?Øp?RÔ?%ÈÆ?`Ð]7?+ÂX>ø>W> á?–Ò?¸?½ ?&â?t…?(v=Юv>÷)?”dO?l‘?Øæ?XÂv?©¶b??~y>³¦?J$Y?D•^?5¸?–>úý >‘Ž›>™ö>nÂÖ>õ«?Á3B@NÞ@iæ?ùÐé?Ø•3?¾íû?Ç)´?ÑX?¹ ?[@‡>À$¶>sŠ?qĵ?–ë?(‘Û?P?šl?¨Š>Ü+~>ƒJ3?85Š?MöÌ?—~?p¥Ý?Þ=?y¢Á?š4>÷¯½?ߤG?à^ö?&¬C?8®º?þhÿ?û·œ?Æ"?Ù¼?@7¹@§F?ÎãN?±~ ?Å—??F??³¹3?ÐöŸ@µ@ÛY@„º@…@t¹@;9?Åíƒ?Ê-#?ÓXO?®#?„˜?^‹?Aa‰?lî±?„h?˜>m?ŸV€?JÜ? ° ?›Ë~?ÄxÑ?šr2?‘²?‚ëæ?vð#?ÔO=?áD§?œâu?•Ã‡?ÛwE?ÝQv@›@9 ?âæ®?ãh?Åfv?Öþ…@0‹¤@%[S?iNe?y=±?±ì5?– >Ç–??à›?p†€?€ÿ?Œ·u?rŸ9?*‰¶>¯7M<š '?î¾@[?ý¡ä?ö +p@éy@ö3?ÇY|?„Í?é«>¯YÈ?ªÀ?Óú??{ –?Kt?0¤?€{»?·Æ¢?ºg"?^?‡ä>ôju>ñ?§N)?£.Ì?4Ó?MÇV?¿ø?Å/½?ÍõG?“ùã<Ý«r?Uí]@B(?Ô6 ? +? ? }?Fô?…ê?©7?Ç™1?ŸÉ™?…2?à³ã@¢q?Ä´ƒ?®Šß?¥ÜÖ?ŸW™@"¾¸@1 $?¼"ò?šóå@&úê@-?³I¦?º-!@„O@£ ?Šf£?†jÞ?‡i?¯Ú.@»@ J0?¼³7?²J ?£„Ð?Žó³?S(Ñ?Ö¼™@/ÀÜ?Úw4?Œÿ? _?Æ?¦´?ìF–?îm÷?ð‘?mÆä?üÐ@-ž@_ó_@€@ô?â*û?×´ü?‹zs?„ê1@A %@Cû.@=@j +?ÇKø?Åô9?»>?º>W?ÆAÖ?¢æÊ>%d?€8X@BÆ@B< @Gm@Z‹@yÎ@$á?d€J?Ř«@ ë @5È@ £?û=§?Ök?»ÅÐ?±E?ÝG?õÓÎ@al,@ƒ÷W@l“Ï@^£)@¡ø@<@qM@|åh@oª@o¤H@dk2@_ƒð@zÛç@mOt?í6z?ð%¯@ô‚@5R@LI]@=\@NÎ@9ÿ@ѽ@`Ñ@”@¼:@$å@…V?›wù@ G@f°n@Kˆ@"4j@3Ÿ@NÃþ@i½?¸‘Ø?Êlü?Ôt‘?ç£?ó˜…@‘–@ cÿ@D ½@kqÇ@N±Æ@Epò?Á˜?;Ó?•w?­,%@RZÚ@xÖÐ@„#?½ät?íNø?ü¨>×ã1=´Y?® K?Å î?þæ"@æ‚@3/¥@3 +î@©j-@©Ù@*Ëx@ ££?Vg\?]›v?«]S?®!º@#/m@œ5?¨]?·¸ñ?éìX?ùxí@B¦”@@Ê@úJ@ ´S?ÃRþ?Ûåê@:̓@,¸?œ?–ð¬?Ä„¹?»À§?Ž^?ù|?Œžo?†zi?Eô@?ï‚@"*é@†?³5g?ënk@HEí@0.Ì®Ú?ÿÁß?ý®E?óð€?ðÿk?–Ž?˜‹°?šûá?§»@—@ŸÔ?J-{?TJd@ êÝ@ d”@«@ª?ÃO?¾Ô@ìâ@‚|?‹pu?‚çn?wo÷?oå?j¯ë?e~m@Â{@2®@#¬H@ló?¾»ª?šA›?œÌ‘?ŸXã?U2`?¼ @*k@tSÂ@[,@PI‚@ý\?Ðoë?ËÕ?ÅÄj?ý[Ï@–Ë@ ¡¾?çú +?Ä(c?¡ì@ñ{@‡¤'@SÖ¸?ÓQÝ@IŽ@U-@4Ìš?£¹?‰Ö‰?•u×?Œ~?8ô?F5@)6@är?ãÛ[?ì?‚î=??/?šé?Îù)?¾™?»lä?Õï?ÖŸ‰?ÐÊ?Ù=ª?Øç/?×½`@L@&›Š@±2@MØ@g?ì ?þi@rë@¤8@­@yÙ?¼^k?ÑÎb?þ„`?ò±õ?­Êq?®bö?Õ” ?áHJ?“ˆ‘?–d2@£*@ r4?õ&I?ýh?ùe?íÆ4?°úÍ?¡Ö½?Ÿm"?‘Õp?£?¸ƒ9@0O@.ýü@*i„@%Ò×@P?€÷?yø?‡+|?€eõ?uYŸ?~{ß?Ðxâ?ÍS>ôu[>¸ˆ@,‚æ@@§K?íæ?½=y@‘@0–<@ S?ý‡;?‘™$>}>ô{"?R7?K€é?*—Ñ?fŸ ?Ù$w?äO½@-c‹@3¶m?½¹?µó?‡ªÓ?yA5?§<¶?¸½?•›€?‚xè?΃§@‘?ÖÙš?‡â?Ž¬è?³+?­^u?Z8?Jú?Þ6?P@c¢@|Ž?øIf?ï=?Ê‚w?¿†~?šðã?oÇl?wHR?räz?† `?Æmb?ÙA^@¬@“V?»–?ªc>þñ;>¶Ä]?´á?´­?¦?Ü?î¾@ ¸ @&‚í@Fÿ@ @D¢?íT?ë±?^–K?P•?Ó¾´?Ð÷J?¦½ç?¡É?®•ø?±Â?–?^×t?@XQ>ëÇ ? Âù?«Z? Õ?“?–7±?þ ‚@º'?,%>„Ž?º1Ë@K„,@Š >êRW?æ%?€•#?„b-?¾æ?»ŽZ?œ¿µ?HH?…5?jz¼?€³?£)~?°¡f?Ý—d?ã±?w†È?ƒ² ?Zuá?Iû?wA?‹ñƒ?ãM³@#åu@˜?œL>ôð3?T^µ?\­>*==Íò? ø?Gvl?€dh?‡Â:?ï=?à¯>?Ý!•?gX?fùÜ?#VP>Ûê?°§?ä_0?à‹¸?Ð-ã?Á(í?½&H?ÔíG@å8@uÕ?~Kg?† ¡?ƒ½Ü?{1>Ýuj<¿ƒ[>ÊÐq?‡Ñ–?œï=?¶aV?ª¦@?’@ Ç™@?4@J‡ ?³«$>]è­=­™P<é>Ý„?„ÛW? f?šµ ?•óD?ÛµÚ?æà>?ô,?öNÚ?³Sí?g4Ø?…ç?ª?¢øù?›óõ?«Ù?€óÇ?j'>¨øk>x?¡;*@wv?ånC?­û°?œ£ë?~%É?–T¿@ ¿f@&?ÝŒž?¼qø?O€?!:R?U×ù?n©?kàÖ?Eh?’ü0?Ô…²?¾ ˆ?¨“3?¢‘M?âž_?Íí¼?nw?l<<@&~@(1(@NX?çkF?ê7¾?ùÏ3?±V…?fµÊ?¹G–?ôOÊ?»¥?‚¾g?©º?ÉŽr?ÓÃ?ûÂz?ì~L?ÉZ?Ó¼š?¾{W?ˆ ™>Z6ý?"ç?yìP?X±i>ÚóÒ?A"×?îY]?äm6?¾V¼?Á¼?Öi´?¶×=?N…?]Õ?:Ò?‰N>?¢B+?ÜÔ§?ÿ§+?ªVó?ƒÉµ?%vF?¸q?3!?­Ù?/A>ëGá=ªÜ>¸á?=¨? ¼S?J´w?j &?[Ü?ª‘?ÇM•?‰ ¹?`"v>Íÿ>7=¤?U!?W?Éò?PÜ=O,=0(?Íh?çÁ†?ñ§>ã!Ä>Çi>ø^…?äþª?@?]Ýü?v];?’Ì•?}>á3>áúæ>ÿ€]?g^?i½·?œÁ™?œð?šƒ1? |ð?£üp?¬*d>elù=®¾.>š F>½\‹?=¡?Ž`g?` ƒ>ígÁ>ùÈÃ?0«3?Eª?o™…?pµ?H®'?7X’>¢1Þ>üˆ? +ž?)ÝÆ>‹™=.x=p<>:‡?å·?üå?"5?ä<«eæ>uœn>[òP>“C> Aa?J°'?X–n? W>ùÿÜ?›?"þ?`Á“?|÷·?" +s>û§B@(@0ÍÞ?ÍÀ?|¡²?!=>½¼É?]†a?œ+#?°(×?¾q¥?kL>¶Œ?+¥?‹<±?qC?.T¦>Àþ=E3ê?+xõ?¾J™?Š¡¨?iX? +7Ó>ÕÌ^?~i#?ðÄw?ÖÔO?«™6?rM>”º©>âÿŠ?C-±?¦ÐH@¾?ãS|?©]?†! +??žn?_%d?‹[³?¦6è?ˬM?hé¾;µà>àž?CŽ?…&£?Œ‰h?Y• ?gÞ?)î?Wz”?¤ ñ?è'?Õ.q?Â]C?±Ó?M?—«·?…c?œ¾™?—{?q­n>ÓŠ¹?<¡?Î’?ÓÜ?Øí>êdž<ëˆp>2;?èÿ?@‚?hE%?¾;>¸“H>®Ža>¤‹ª?ˆq?;Ƶ?V>ùR¿?\ºz?Ž¶é?Ÿ•g?¯,>ãÃb—>ä)?IËð?wT·>—¼N<ÏÁ?‘$>?¸)H>ÅÒ> ;c=Ó3Ð=ÖÖ=ýŽ>>Ô?·?Ú|a?o-á?_'î? ´¼?À]?Èu?Œ´?„(?‚WY?Á>Ú/ú?¹HR?¸,¤?qÐX?sVÎ?æð?/8?¿Ã;?Á!?…ù¯?…¤Ã?t’? u?k o?p¹­?²-M?¯Ú÷?­Œí?¨mÜ?Ž¸?•]$?ãS.?в²?JÎè?c6—?›,A?³E@L]?áËØ>´zO?¹-V?\™=ÈO0>W½Þ? ˆ>¶VË<Ù·È>¾[?‚Ã=?vP¾?S«Ó?—yö?ãŸÉ?ŒWB>,!Þ>ùTB?jùÒ?&@v>‹­3??Ø?œÉp?šÊ»?œì®?¤qŽ?®øñ?P5Â>Áà(?~¦?·û¬?­×4?¬0?Nß<ìº;À8_=H?@â?ˆñL?7vè?˜Ù>ìÆq>Ìï>”5S>˜A™?h`Ô?}H³?jf—?r¿®?‡Ú?„¿?€33?w«&?ÕÆS?åèÎ?ðÙ?ò ?âÂ?äZ?q§w?knw?Åaâ?¾L?}(Œ?‰zU?Ä +)?»¨¸?˜A?”@Ÿ?Œb“?–q¡?«¤œ?…‘ª>Ð$Þ?YŸ\?Ûs-?×P‹?Ñ÷ö?³\6?}bj?®+Ì?å7š?›ƒ?!d?í +?ÞŸq?û†>Ü —?Wµ?’! +?÷c©@s«?¿L¤?„*[?-Øå?Ê0@4]Ü@]Ê?º?–?¼„ä?Òí}?»j?µÁµ?ª‘/?®}æ?²Î4?µ` ?rxð?qz‚>þnä?ÑØ?gU?A—¿?ÆÊ!?ÂÂ?¯¹B?­¼Â?µ“?¡ç?RÂØ?Šåü?϶:@ v@>V?ñ¶Þ?Ja?ÅÖð@#…?Á­?;°?UÓ?ot?‚½Q?„Î3?¸˜ ?ÇöÁ?˜T?÷?ˆUÙ?„Ýs? ù?§Ÿû@Û˜@ç^?ÃÜ8?´;“?ˆXŒ?Ÿ~?ioz?s^Þ?Çse?ÀÏD?‘ ?¾I¿@ _ù@G[?‚ìn?…)Q?•Ý?½J?íB;?æÖÙ?ànÜ?–´?)fr@%?4@~d@.©6?üwÒ?ä÷€?â&Ë?  Þ?ê?·Vœ?ǤÉ@;+c@Q‹c@$³^@"ç>@6Ÿt@92‰?5uœ?Ržç@UÓ&@Q:à@e@ýÒ@q?÷²#?Ó€V?²Ä?.U?uÛ?¹?œýt?dt'?n›Š?ŠÞ‚?ŒB?… |?ˆÐ¯?ˆü?d3û?Xgp?ªš>?Ç‚\?½Ž4?¯…—?ü=@´S@8@†@H÷@‚?–À–?‰n}?Äý?Ë"„@â‘@Ü?ÇL?ç¾U@QÉŠ@2€_?„Ò!?w’2?9xN?È­@hT¾@cð@YìT@X Æ@W“ï@ ùî?-’?‹ö?Æ÷@Ù›@( ý@ –‘?é†å?²|?†å¾?€­?gb/@0ËÇ@aÍ@3•©@'æ½?®wd?‘ê@ TÍ@¥É@1Fv@4ì°@©%@£)@F¥ü@JU@üê@ÜC@»Õ@%[•@†os@ƒT@YûÀ@EŒ?ñ¹'?ùÌ[@ «/@î™@ðí@`L@@5ä@bžñ@W[Ç@E$Z@÷?Ö @J%@¯a@*4°?’Û@/ÿ7@xÈÏ@Q…n@9“^@©Ì?Öï¡? Ì ?ƒcÜ?[X??Lìå?¢Æ?³ü @]Ô@„»H@L¥´@='?ú—?Ú/™?Öò€?ÁlŒ?øW©@T?/í>?¤Á?:Ç?Rå¢@& Ž@5$?ô÷?÷Wæ?_RÔ?a­Y@ PD@ +òˆ@5ŽE@* Œ>€„>Õbv@Û]@«Ä?À=?غS@1,á@(QÆ?ÃRþ?ίó@¤Æ@ðÝ@Ž@Ši;@aXh@3Á‚=± p>È™)?¸œP?¶:Î?³Ûz?ç°.@O}î@EI?ýï!?Òà?z í?>?ÀX©?·º/?‡úó?“y,?Ô0S?Ìö?¢U?Ÿ1?÷9+?ôl€>æµ›>˜Î<@•ä@9-†?™¯×?Åþ@e!@;Ä?ëQ?zQ?Ù¥@ü?èÇË?v[ö?¦f¡?ã`b?à:¨?Ý6?Õº¥?¸R??¶(‘?õ#ö?õ +?§ÀÌ?¨4N@[z$@p@'ŸŠ@Êï?Þ•£?Àþ˜@¶@-rz@ˆ#?ážõ?¹ŒÀ?Šiá?Q‚ƒ>†’>äÖ³?¶X4?´™Â?¢«I?¥Ê‹?ÂLX?¿ÌÇ?«ðÁ?¯ +Ü@ê@1@©Ö?Þ¾F@†³@CX¢@'P{@2à?ÔÃÁ?qA+?‚èO?´ÈË?²«7?‰ýC?†8?ÔÅÜ?Ⴖ?½òL?´H†?´ˆ­?³ÿ5?å7Ü@»Ä?º\/?F??o¡?™9?š¢C?º9œ?Ázl?Å'?·?û#ø@°n?ø•š?î=@*”^@HÇÿ@<<@2O@"<•@^œ?úC$?ÌT?ÏGE?±Ë?±¶Â@)ÍÞ@@T'?²”?# ?¥ò?ëü?Ðñw?ª ?ŒÂ>ëÆÔ?Í?ëŠ?ël«?™Ÿ?r¥@O@4;@’è?ÅY:?ý?@+cC@™w?Ý’5?ÉÐK?j~?iúB?k˜ä?Ó?¥ƒ?¯-Ã?ÐcW?é][?µäK?R¦ƒ?Hôo?¬î?@Ø?ªf«?¦N ?v©–?hy[?¥ô›?·²Ì?°Û?´êi?ɳ?çôÙ?ØsÆ?*Î&?ê«@!×–@%„ø?|ýC>çiq?(‘?ÓΘ?éXò@€_?ä~8?ˆâÖ?„”p@æ@$  ?}s,>îA³? Âœ?æ§Ñ?òŠ?þon?ûñ'@ ï¤@T??®"Ã?–¾o?°b?¶v·?Š6L?dz?a ?fWm?_¦ç?W£?uÕž?Ìl¤?ÇÎ6@m@!Â?éø{?µG1?z#<>ãÖ?"– ?£N˜?š¶h??ùŒ?S7½?gH6?†€H?ç›à@ 0Z?È´)?pdo?«Ð@ D:?ì ¥>dú>š‰8?©‹k?­÷˜?#ý|>è@Š?LAš?yº?†“?®¢þ?‹³?i<¥?Š+—@ö@ƒ©?þGì@"Š?¬¡û?œ/»?¤šÜ?®ãº?«K³?¦³?¥Ðò?·‚Ã?ó·ƒ@.;m@$‚ª@¾@ü?ný?nsB?ÂÏÏ?Ø^Ž?”Ö&?œ”?…êõ?ƒïS?ßé¶@ +w•@µ@j¥?´L«?iÙ?ÒZ@3ÄJ@6?ƒÁÞ?˜)? ô?¬S@N@“Ö?›Ç?†ŸÀ?yóð?…Ïí?—’•?ž„?½nk?½ñÁ?¾x?¿µ?¿ŽÜ?·æà?¥Ë÷?†Ç¿?SŒì>âFà>’R?”F>»A}>íí>õf+?À?9µ?Œf>àüz?FS?†>ôÅ?Gu>Çjv>‰îÎ?f«À?«ñ?`/:?­C?ñó?Dë>)Uü>‡ñ>ƒá^?–?b¯?ÖŽ?ul~?4Ü>ö[ì?®:Á?S€? Ã? i®?DW?X®?á?‡Š>HÁ¥>¯Cò?)°X?ñj>æ|>Ïžö;¦X@>Éd >Ó‚n>á¤>ë1?C”õ?‡¢Ò?@Ÿ²><æ>ŠÁE>ðèí>ûðÏ?À׎?¸oB?Þ?…Ü8?‘s°?Œ¶@µ§@H•·?ú–¦?l‘`?.e>Õö?6F±?Á?}ËØ>öLª?:L?Z²?7«=>y„Í>Aº>ÈU>±€>ôó­>ùa?a¼w?S¶?¨ }?¶Ýå?ˆ²I?{ƒ?LE>û¢>êÙ‹?)>Ã(ú> å?xô¤?žÆ2?`=?9EV?dÙ?…VG?k€Ÿ?POÛ>ÄfI?8ñ?³]ì?jl??6þ?ͺ?É|?=z[?v/É?<§?ë?©.³@pR?Õ¢Ý?€`L?‡‡9?‹G?Rtó?%l?’Œ?@¹F@¸@¥Ã@­?ÑT?Ã#þ?¶æ3?éÄ@Æ&?ª2;&Á%>íΔ?>M?µ‘¨?ìß+?€ >) ?LÖ?râ?™6F?¶Á|?›sõ?€rÖ?…ªW?ŠÛ4?Û¯n@??ì˜?±g?RrÏ>”Zç?73?‰Ô?q?QÑ?5rß>öû?D…J?sí?9I ?¹|?KW¤?_'?Z h?U6?ê`?Š¹?±åYQ>½OÛ?‡ø;?˜Û?yî9?bW³>¨F¥>ƒÄ™?mC?rþð?™lÜ?™¼ž?„|e?‹~ö@tù@  >áy.>à¯&?bQ?ñ? Ö>ÿ_=Aú¶=¦.»=vÒU>NY?·J?«a–?F¦®?Cõ;?$E?5„?ÃÇ?°ç?9¾³?l M?¸¹?­Tv?ªÁN?¢r;?†X²?[Ë=ÿ¸>Æ“Ì?ŽC?‰,@?‚«ç?˜Ó,?ÆN“?€Øé? á?¼¼?¥ç?‚ù?sk™?e\ß?1%P>±ã¯?‹N?RÐv?NWÉ?Ià2?¤Ø?æφ?ÕoO?ÄhL?ŸÐÑ?‚÷Ž?¾­> ã?,gü?ƒð?ûY>Q§¿>¹èË>õ>V<?=Ë?ƒ)_>š5á=™bÓ>Ö_v?9>Ò \>¼Õæ?AtÀ?^›ý? +Ô?Ž†,?{ v?€ó?ÀÒ{?ÅR?xò?h‘Î?­[?¯JÁ?ƒ|È?ý@6Â@F?»S?­áÂ?™‰?ƒD?k³?!¨(?ƒ¬Ô?P`‹>9Q>—ðü?52?"؉>ÄÂ)?-)?XØ?Nõ‚?6Ÿ£?cˆ¦?Šj?“¸?¨7?¡1@?Š?Ë´@ Éé?ÈÃ?E?ÆÆw?ã|?Ïô?Æ.f?’‹}?|.E?€Aø?‚n_?»±’?Ó>?À¤‘?·j?’ì7?^?E%?Dµ?ß4þ?ßnn?„d ??ç?jt?K›? Y9?c/?v|Í?dù?nSü?ä?ÆRu?­b?AA&?‹w™?à³?îüY?ÿÖW?Ép`?¼?‚Üû?„€?©iª?Ï?Á?¢è?x¸ ?tx"?p3@?€ã?„È©?Ãf?Üki?Iû$?Õ?Úi?òÌ·?õŸ?„ßí?ÈR]?Ñ’o@»´@q?2h?·•?ør*?õVS?Ô•È?ä„ +@æY@ÌV?Ž/?‰^H?…u ?…Ë?…Ó?í_†@>žx@µ¶?Ô¿9?£¥¸?g!â?óã$@/ùV?ÑÿÃ?‚A?¡c?©B +?Ø–U?ç‰z?µå?«üi?‚š²?—œ?˜ÃŠ?˜Ó@ö¨@@2?»e?¸ñ$?…ý?”î@ +Ô?úrõ?È´?÷ñ@?º@1}ß@:‡?í2;?’æ+?Kp•>‘4>?)ü?„1È?—`ÿ?¬É,?Їf?êö³?€ßÌ>øü?Ôåo@ ó·@æš@}%@8ò†@DZ@&Ð@$Ñ?h^|?*ú¬?Á#P?Çf–?—?ÈV?ÉL‰?Êñ”?ÇFÖ?ÌòÄ?ñâÍ?ì–¯?¸2?èê¾@7ý@'æY@îÙ@%Õ;@Aì[@'• @Ô?û‹„?䔘?â^·?à*‘?Äag?² >?­h®?¥…ù@+CR@[Ï–@xÏÙ@‚¿?ð¡a?Ž{<@Et²@fT?µêE?„`)@0ò@<Ð@ Šþ@ »¤?ÇÙ¨?Éë@Œ†@Æ4@9Y1@:`_@H÷@>ÙŒ@@dt@¯M@÷¼@‚>@ *S@Ù·@J‹?î®g?È?r?ÑØä@ ­@01@E%@%°à@HŽ@+J@XÐ@3ÉJ@Ôz@gš@“üa@O­Ð@3é@=^Õ@H‰@JF?Çeô?” ?yGA?ösÉ@¿@8¦®@DÌÎ@ @ :@®|@%Ÿ@ Üw@³g@VL?Äl.?» ?ã„?Þz?Ó\?:Ã\?Jó?<?FÑZ?±2B?°Ë?ò¡ì?þù¬@CÎ@<éZ?ÄE?Åån@ü˜@Ù ?`8>?y@8?ñ·†?êÐ?µN?Îê@"­6@"@ !‘@ù?„To?bÓm>×?úá?÷°ó?õJ ?ážê?²Á•?Ë7&?ø7@ É@&Û@ªy?ãR·?ö´Þ@P?åo^>©ë¢?Óý?’»a?¢?΂¹?ζß?ч?Ú³ê?ÿ`?ºb=‹˜€?}¥x@RÓÓ@ óÒ>VË?-÷?ÑÂ?ÐM&?Á.œ?´/?©A×?·J¤?Âô¶?Ç{÷?ä§o?Ëñ?^ä?’x³@ âÍ@þV@ Ý/@r@;èÖ@6Ü'@=N@}?ª?fO?Ó¬É?Ïðú?–ò?ª÷¯@ T@mõ?¿’#?Ç@T@<8@ã@9¶@Zµ@_¸ @=­N@@ðÕ?òUÔ?ê§`@+Ñ}@0•ÿ@’«@&Ø@×›@¢?<¢ò?õ€?å°>ýË?à÷?ýŸa?ºS0?¨ib?‡lõ?}K.?Ç è?ÝD?øÔ@"?Ë]:?§êN?ùÚ@-Ã@µ@›(@2H@Ì•@ ‚?úuË@ @ ‡’@9Jœ@V«&@Eø@, +5@&@‡@Ý,@ V¯?û\E?û…£?øOu@b¸@5c@,Ý@ ¹º@À(@.nr@1b‰@7×@9)¾@:xw@:óG@æÝ@@ Dë@:.?¼¯Þ?°0@@ @Qðº@ ?âï.@ @ê@8+*@&·—@@€?õWž?ˬ8?¸yÒ?žZ˜?Ó¡î@}6@B?ºGÀ?¸o?º?¸É?®J?®æ;?Ëp?Ó(í@~@ ;@9óo@8&Z?„tÂ?=“+?ë|¶@ ÀÔ?Ñ‘6?ªœ@ í@Cº¬@Ql%?÷yµ?ÀI?áéû?ðë‘?¹ö×? 'v@±ë@\K@G@@(Ð#?ø»…>óYâ?D£?‚{ó?•ä&@ +·´?ûƒâ@ 6è@ùE?:æ§>ÿŽƒ?Ææi?øpä?Žk?¥ =?3>?Oˆÿ?œ–Ï?žºD?‘°Z?˜V¥?u](?pwŸ?«Â?´äß?´!?³ü=@ Ý@-\§@%ô¨@A@@‰W?õÌ?Ü B?o Ý?wj…@L@t ?‚è?]?ÒEj?ïÙ™@ +”=@øå@2U@IØ—@èÈ?k•Â?‚^?‘J ?–åOA?{bj?Õ~?Ò{-?ÙØ|?ɉ@ {@ lõ@$D/@0A@ù)?îk?È>æ ?-#S?¬í4?¥Ú[>æ¬ø>æ»…?PГ?9Ì¥?“ì?¾„÷?¿»?±,?Òý“@ž_@ãé?ª«ó?–·Ô?[U?me¹?EÓ>è<Ó?Š;Ñ?µ®Î?–Ž?m Ê?T§·? ;?(êÑ?–`å?««M?Z‹Ý?CWÝ?.-?¼û>FËÓ<î½?!ø?°:æû<ás3=!Zü?Žï”?¸³W?lãy?DW>Â]Ñ>ÇôX> >BÞ!?‚Æ•?5›~>!«>€žô>¯>ÚÈ? +Œˆ?ã2;@æ?†!Á?T±ç>¾ÕÉ>• 2>¡™¿>ó{>·ËÔ?âì?tÑ?L–>c’n?‘ݶ?šÍ«?¨\â>’¸=rÍ>ˆò<žÜ>_÷]> æ=ô~&>¼>V?5!¤?0¦ì?Z‹Ì?rÔk>¥Z(>#—…>˜h•>°3>¯ü>æ‹ý>ϳ4=‘Ï<¶ò<§Ú=6B6?Â(A?÷\‘?©·?lPR?,õÐ>È>·$=?2z3?P=¶?⧃?ëöÆ>c{g=ùÙq?À² ?èL„?f«õ?|û?ªôŽ?ð:_?°h%?e[r?qºÉ?ˆOÙ?eºð>öQò?ç¾?`¦??s!+?vZÜ?UÏK? +ñ?Ëê>«‰>·8?êÓ)@%z?„nÄ?pM?vCò?zܘ>[Ô¶=Kš®?¥«5?Ëä‘>Õ²q?ˉä@t%?>ý~ì?N,?qÆ?(AÁ>þHN>Èé'>Œär?)†Ù?a?ûÅ8@5®Œ@›?½„K?<4›=•«€=®#z=¢ÈN?¥ÓZ@ PÄ?ø®Z?«p„? ÞQ?›?ôçÆ@!,?þhù?Ë™L?ž»?V…;?‘?Àñ¯?³Ýu?–ÍÄ?d)?q?8þ?r?Q°? ×W?¦RÙ@P?²–q?CvE?_Åš?qR?W}Ñ?6ï?ˆÉ?¤¡$?œå,?•*?q,±?U\X?„±?“Šì?ȱ ?èÎ÷?Éhë©S?&‰?g®ö?ú™?ÊéK?çùs?˜¸Ú?„ ?_½?NÀ?j‚Ð?€ÈC>‚+Î?jè ?žV?+;$?$M?¦¹ï?À»0?´7?„û8?2Ùo?0%K?ÜC.?ëmµ?ÙÐ?Ð~„?‰4¨?‚?Z?˜Ô?5‡?Rù?Is?ŸQ8?¦Ìt?ÂÞá?Ãy¯?Üç>ä23?"K?(+=ÁNH=Ðiq?ßö?%t#?ص?½ŠM?z¿V?}%?® ô?ø?1èo?3uâ?x‚?`Š?„?5?‚5•?œP?¤e_?®4±?ƃ¬@#/?@8õ?QÚ'?6½Ð>¨{Ù> Ò«>ÃHœ?5Ô¬?¸ Q?¡ÿ??gß„?§žU@HÂ?ë¶?½:–?j>#‘¾>ºPM?uJ???eÜ›?aaK?\è+?†>Æø?ŠB?=ž??õ?K"»?‹î?Äf ?¬”g?™£ì?^¬a?'l¸?N*¯?j„ ?£?»B¡? M=êâÒ=€ŠâsØ?–Ö¦?ªø?wý?bäv?–ª;?˜Ÿ?š©$?ó`@ +ù…@Õ?§à´?¦ÎÏ?©·?ª"?Wo?^?e?ƒ}É?ˆtÓ?Ëz?Êuê?ƒ™?z²¢?)cè?2Ã?…–€?jjb? ¾ ?:>éèÞ?õ?p z?Ië ?É™?&Yù?^Ø?}5?”RG?–ÀD? úO?¦(‘?£¨Ë?ÇÓ?õ*•?”b?8?°1>ë›\?¹ŽR@p@?ß=¯?Æ-³?ZÁs?—k? P`? ž=÷èù=sXt?kÚ`?‹£?êô–?òOè?¿ˆ?U&?jë>?ydd?0$?1V5?j„?%0´?ËóÀ?Ç@Ç?Éÿ#?µÁÈ?#4Î?¿|?2`v?+AÝ?%S?',?ZÊú?/?¨¯?„§?ãã?K˜?ƒ&Ž?¨Ðç?Ç)?wFË?!Á?n?¹'?˜ý?¶íõ?žÚ“?™W?n‚€?X?Åbä?Ü#ÿ?ŽUD?„Þm?À Ï?½ŽÖ?T ?]~S?š›Â?¡,?µL?¿Å(?î;?Ü÷?Ž‡v?¬»@Wî?ò €?Ç`Ê?Ýö»@Ð@žÿ@ CK?óèè?Ǿ?£‡?… ?hz ?Y`?Žõ>¤¨N? à?1äÈ?¬_?ÈïÄ?Ãû¢?½µg?8­ö?/’?©99?³ßÚ?÷P:?ö~é?…°?…"?…?…„?…ö?’ÜÈ?È"?Ê?ÕIÞ?´‚›?Kù/?Cãº?bf?4 +b?D=Ü?HDÆ?\A?µÍ«?ïü‘?è1?åèn?z“2? +Æ?ÄïW@Áø?º‚\?œ%T@Ùò@ k×?wÈ???½–¨?ÇbÅ?Ç]c?Ì<ô@ƒ +@xH? +:ð?]¨@>Ì’@,†½?Ç?ý@¶ˆ@eË¿@bÛ‚@hX @ZtÞ@:G£@dh?¯ËQ?’+??Dt?„âZ?®…B?ï–Ä@“Ö?ǃ?„˜á?×d@-@ ø[@~©@I=~@_uB@5¬±@'‘ ?©Á|?‰£#@/2$@;²Š@.ò@)á?¢¼+? Î&@ÌÃ@o¡?ïú¸?ýŠ@1ØM@<I@y{!@YS¢?†¨?Š„Í?Žëß?™œ'?®Ý2?œ_f?N¾…?À¥Ï@>ºM@Sƒ?Ï–-?ØÖé?àyæ?Îpý?Å>L?ª_{?Œ Y@( +2@~Ÿf@jJ@Y'’@i||@wϘ@![Œ?ÛPX@?ûÝ@m@$´ï@a`@‰p@©@=Ò,@Jy1@iê.@nî´?Á÷V?ƒ#?ý³î@ =?®lt?™f÷?¿¥K?Äo[@XÙ?ÿ–?ø1 ?ñCÀ@~x.@x®!?©C›?¤ÏJ?Äå?Ãõ¿?Ãë?ȧó@ +î)@ +?Àûq?¦ˆ?‚k?€Ð?v¶×?‘a?êB°?ÖPi?‚5s?¡……@œI@N@ÐÕ?íWP?‚Ú‡?€»û?r;?»MO@U¥d@9Z®?Ðr?Æ|[?¹\?“g?ªã?¦Û @ +è@Î?ÂE-?Óèþ@p@?Ö ÷?5âö?‚ŒC?÷Ú)?öMÅ@8¾@n@ÎÎ@Œ+?ºT{?ÑÀÛ?ûS ?èö®?ÔÉb?úF@u@/$?Þ?½öâ@m]@ÿF?´?ÃÝ@H?ð‰ù?À»¢?ºG`?¨²À?« ?­€l?Í[u@*²@X@ ç@§@c?ÿÓè?ý“g?ÚFÆ?Ï?Sa.?é?Úz ?Ÿó¼?ú^@Jˆ@B×Ô@2pâ@+¿ê?à´?ØÑ?G‚?›b9?ºýú?ÅÖ$@>üï@>íÐ?§‘ ?« ?[š?8†ö?º-Ê?À[Ë?¸·«?²¾Â?(T>ýÏ©?ŒæÅ?ŸX@+_@ ?Úùó?ÈP·@XÛ@-Ç@.@-ò<@ š?üÒù@<ž@Aÿ?ËöÝ?¨Ks?Ók +?â@4ñQ@zNÝ@Km@µ?ÊÆú?Áò?¨O5@?©@ ¼@ Ý|@'­@ƒË@ @;?i@:wu@BÖæ@2’¶?¨Ï‚?´o?ú¬¤?ûçq@ äÊ@b/@8 @Ë@7Sd@5Ñß@2ÿ@0$ø?ñœ?Øï@iê¢@ˆ>@<§?@ܵ@:Ç@Kº@_¼@mB@PÖ@0+è@ß @Y@Ò!?ø{Ï@¯5@.š@°[?õO?5,?¹ô.?³ò ?[²?šw8@&b1@'ÆR@g ð@g>Ê?óá?ßBó? ?fÁ)@$@'%8?kWû=>I?°WÖ@…Ñ@+¬”@;©9@2?ÄŸä?Ç—?ʉ•?Æ•?¬•o?¦iÇ?·xÚ?¾?Û Œ?í†0?¡Ô?™S{@&_@2ÐÛ@6Ÿ™@7Mã@!–ã@ý`?ÀÔ1?söä?¢Wq?Øõ@+«Å@{ÓÇ@Aé(?zðå?c…?-W)?^Æ@NjÎ@^n"@.“´@7¡?¤°?:ó?¨.S?¸Ñ®?®H +?¡ââ?±c_?Å›c?¦À×?qq?Lµ>ñ;‘?,?@î?Bfø>ðÇ >ð¥?ˆuB?†“8?Öm?î¾b?ŸÚ?|Õ?®ôÛ?Ûæ@ìO@=žÕ@7ëœ@&x@+?Å|?º 5? Ë?£ˆ?bI$?:¶ý?òH@2@1N?óq,@ Ư@!-M?þˆN?F½?Gô?mG?wµO@¤<@ ñ ?ÜdN?ÍÜÒ?5 b>Ñ#?>u ?oßÀ?Óß5@!dz@É4Z›=ø¾¸?Åv@Ø?Ïs“?œó©?ÎØ@¯É@­@$yi@ (Ÿ?š }?žµÄ@"¼@+kÅ?Ñßã?y¥:?vˆ;?f‘1?ƒ&^?Çðd?ÌT°?JB³?7û+@G`@,ÃB?Žxaç+?‹YB?á•?çÌV?í—Ö?þ@ŒÉ@™š?>Z›?)^Q?Q^?:ì?¬ó;?è¼@ôÊ@ û[?øâì?ÀÑÙ?¦Nt?9”™?/,“?—‰?(¾?¢°ä?¨=ß?…äÃ?có?(¾Ý?¼‡?±Md@¨„?ôp‘?È6ß?ïB@%^@)2@ @Nü?¯ ¦?¤ªL?ä$!?ï÷-?®!ð?ž·Ô?¤Ó?–ÒQ?¤2?µÞ@$Š?@`ª@1»¬@Ù @ëÌ@3…?ÙÙ7?`‰þ?x/'?{Uµ?² @™I@š™@6ªH@h(?nœ?O—º>ôÀ? Ù?¾‰À?»&%?¯ªo?©D_?¢Ðn?ÅÕ@#?ßÛ‰?¶Î ?ñØ?‘?Û>?˜¡½?„Òþ?U>ºµ–?n¾Î?^dÆ=ÇUv> ‡d=øV>˜`>òáü? +›Ü?¨H?º?>?"–a? ¡k>„Æ?Šlc?¾‡^?—‰³?F;›=É€È=cG„?•!?‚A¶?!Tà=ÝGå>"?WÚ>!‘9î­@Š2?_r>¼ýz?_¹f•á>OåZ>ÑïÇ>㬧?V†”?ŽÑB?`Ýô>摨?3š?«‘?­!Ì>èíS>Ò¡>·m‘>êêË?GƒB?lW?|7M?‚Áå?gʘ?3<¥?'&³?ºË?ñ×I>ñ) ?šÂñ?«Ï?O?kÕ?p™Ï?{FM?UN=öL>®Q?ÖÕ?/àc?OŠ2?J ?DŽ‚?_¬ä?º?¬Ý>I1>2nk>¨ð>â|=Ü6b=®¶>>í¯6>úŽ÷?ˆõ>þ~N>ð×È>âœ?&ÛY?E´®>øY>¶ò?jÊ?œoÊ?=Ùß>ý{ ?)ˆ”?O«s?!·þ>þCª?4Û!?[o?r©?~üì?š}?²k?mã ?Ýð>þXM>îx?/?%?XhË?‰–‹?®†‘?£WW?•>ž?Aî¢>Ò¨U?§­-@O„?äÞá?›â?V?ÍÌ>v¼?cCÎ?àqŒ?ÊÌä?µÚ+?Ü/?ÿ¡%?Ú1&?·ÛJ?‚ ?>Õ®>ñÝÿ>x &?d:ë?­fW?]6¬?z?‡+z?¿Ô„?²Îg?­Å?_*?¡Ù?ƒW½?°S@?û³ö@O„?»w:?c‡ˆ?m¼?wìü?,¾#?Õˆ?H{? 'É?K'Â?QYÙ?´cØ?Î÷9?ö+Ú@€Ï?ÆŽ?¹:º?HuŒ?¢u>þ²ï? =äÃQ>€;¨>Œõ¿>ïe=Ë{X>¼¾Á>äê ?\Vx?xp=?‚1Œ?‚(ñ?í¢?-‡>¤»Ã>À†Š?–u6?£èœ?….0?‚9>Ðö>Ó¢ê? !?C{?k›?<¥?¨t&?¬qn?Ùz“?Ðc”>¿z$≯ý?W¾?9ç?»ªó?¾î?Ã’¿?¼BW?‚dŒ?ƒ ~?‰û?ˆ¯}?n*Ê?Wú²?u‚?Dê?U?Tºì?5 ?N?•mÞ?©E!?Ë@‰?¬¦L?? Ô»?.Àh?1ž>ˆ<ó>êkb?lMÿ?(çy=ýcþ??½C?ŽKæ? é?=(>ìrÈ?^z?®’o?NyC>tš>éö¸?*d>?/>¤C>fL>fJ:>Я”?±[?RH8?Œõ +?°šé?Äj[?š—2?‚û?.ÛŠ?/?Â?ŠÊ?‡fÁ?«rù?–ÿ +=ú^>ad?p‹l?‘p´@Å?óÚ?ÀHK?´?B?\\ç?´Q? ›?è?9m?h®ó?'»Ð>žk?’M˜@ ·??äS|?©du?‘)7?ƒ­?K—M?T¶?KÕ—?fXå?‰eÜ?|?-&m>È6…?šS?Æ'´?œ#)?‹„N?‘T6?k3?ðhx@v?“ÑÌ?„>º?üåo@G¶?ä”ç?ÜRÂ?Õë?ÈÛª?] +? ;Ç?UÇq?gº{?À#?Å>?Ľ¨?­tÔ?fFë?xß2?„†M?¡›Ž?â}?æÊC?ëD?/Ì=¬!Ü?3ÿ¤?¹þÜ?Ó? |?¾¿?©? cÀ?·Z?Pzî?râ@äd@/É\@u?ááQ?a¡û?5Ÿ?¢w?ª×e?¨¹†?¦—@ÒË@Â2?ãY?ñ'?‡¡ó?}åå?dE?z‹²?¡ùx?§Á?Çn?Î(?Ù\#?Ï£P?ÇyØ?áâ×@ÿ[?ÓTö?”D?¯Ð@?dž9?¿ŽÉ?·oý?äöI?û¯?·Ù‰?–7Þ?›â?–EJ?¾0›?Ç *?–Œø?–Â?Ûø?àQA?ŸjŸ?™¨,?ëôŸ?äT“?¡ Â?š;þ?…‘?†2V?Šw½?¢ ü@Ê[?åZ>?ˆíú?®M?ñ“)?ëà?ä«h?äƺ?è„I?¬'j?_âF?J™?Ke?Ò@Žæ?‰óè?ñ?,Ø?=MÝ?†«í?—¼@)÷@A™$?ïº?Ö˜¾?¼J?¼}ê?ϼ·?Ò²—@<]ù@7?„xy?•mH@ Î-@=@UÎ#@Kœ–@:s›@;T?@7ïL@2J‹@&:9@$›h@0é?Ñ>?KG˜?ƒ³¦?Ÿ"ã?Û?@ 31@~´?ó»?äå)?åw;?£ö/?„r@ 5É@%—Ÿ@7œà@?¥ž?®Y?ƒö²?ü×@ "ž?œÞ?–¥O?îï½?ì„B?³†±?ºÝl?ÆR}?×Z@9ût@;Ä.@PŸV@Böï?å\º?ÌÏZ?–²!?¨Eø?ã"I?ÔŸü?ÅéÜ?ó`“@$ÞP@-î@×Ò@=q@…IS@-Áð?ƒÂd?ö¬@¹?ð"?í¤e@ +à@V†@ª±@þª?ÓèO?˜îp?¯K!?Ãg ?¦¥D?œöñ@7·@&8@/Pæ@7Û/@i^Ì@|±?õõœ?¶@¤d@…@ö@±+?Ï3?ÄjÉ@Ož@"Ƨ?Íâ?ÊkX?öPt@›?6Þ?F~Š?Ãú;?ÆeÖ?ï?쨻?êL+?âj#?¦ã?•ŽD?ÁÏ?”P?Åu?FŽD@ת@â?‚1R?•@Ë?îÚ@d@(žÞ@rÿ?À/?ÏJÔ?ü(å?äq ?¬l!?ÆÙ?ödí@(m@AÚ?܆§>´‘.?±–?n¦Î?˜º?ã+?ÙœÍ?ÊÎ*?ÈI½?¼èm?ÝÝ4@«@ÚM?Ë®?¾ƒø?Ša?lnŸ?®A?¬ä@  v?ö™?¼d?ª(ˆ@AC¶@@„Ø@:d–@(¸!@ +ã“?ú¾x?³‹?ß?!@"¹@qy?Àµ™?¶Þô?˜ÆÁ?–H ?“ʵ?‚‡?Y?'­·?M(v?zïf?öÏg?âI~?1’? ?´Žå?¡¡Î??½•?sqA?àU"?Þ9Ë?ûb@9?¿Þb?ÃÊš?tö«?uòË=\³6?„Ä;?iW@"@ ?LÃm?<ñ@@R‚´@YG5@h?üäÌ?('W?Õ‘@¾@ b¨?’nÕ?}w?÷C3@ 2$?ânË?ØÁ?ÒbZ?Ûã@9›@YÍ£@· ?çZZ@!ß@6(Ö?À*~?)Áe@@á´@™…i@B *?¾ô?ãH@²9?×B?œ§Í?Óµ)@>s@w‘?¼ y?ä—L@×@ $@q{@?ß@)dU@š—?¤›Â?ªmM?úªˆ?îC´?më? dY?‰qÍ?€"¥?ÁS•?Ìs@£E@ü\?«†0?žJ@#„t@=H²@ +¨Î?ò«˜@0d@IM…@3ö@+’@cí @Š@!!>ø£±?‹Ç?øuÞ?Î@¹?{A™?oã?xZ?{ý??‡z]?ˆB‘?w¶¶?‰ÿ@.Õ@,‰G@f3-@hRM?¹Wß?¡Z!?Æ~Ø?Òã?Ën¿?Å?t Ù?1>¥<<å3B?ˆ7û@!Â?ûiƒ?éÇo?ÖøÅ?¸E?ÜaŒ@ã`@ «4?uT?j4Ê>Æ]>­@ó¿@¥Þ@_@ +ù@#dš@/Á`?Â?ƒÜÜ?Â9v?àá ?ª +˜?s¿=@8]@kI@;Ä´?–5 ?žO?­Aú?Ÿ4?+J?=?_ZŒ?Fšá?Õe¢?ì D?•8?x»Z@@?ìx?óÞ3?‰Jž?ƒ¹è?qtÕ?„©W?˜.Õ?Ž[?ƒüR?s¼w?_q¾?KŽ?èÖ?ðo±?2Ï?rFê?ï$­@ RÕ@ + ú@&?ü$Ÿ?ð(@Œo@¬a@ ¥÷?©â¨?¸£¸?nÏ?n©—@°Ñ@ Ðx@?ðš%?…?o?eã?gWs?s4?ÀO!?ìÊ?Õ)t?–¾E?™‰º@%Y @'Ô@ž@ ýf?_=ð>‚ý?³D@{ @(Wß@J~Ø@!–Ð?Lù.?YÁ~?½Ðé?¶8?éÐ/?ô—p?²›S?—£??—¨?‘°?œ<Ê?±¤B?®í±?¤®?œp¥?œÃ£?¨W÷?Œ„,?Çh?‘ x?•|8?¯8Ê?Åμ?ƒV>ÏÑ>Â.?¬Ýã?³ûª@œ +@ „î@hü?þú­?´"4?¡¯/?¬7D?£÷F?ÓU@+x›@*)ø?ØÜW?á—?äkÒ?Õ¥†@JËË@d)?îVO?-‡?µ~^@+—œ@"¯’@#(‹@+µ?UáO?'ÍX?“Fm?±—Œ@P0@–ý?îL§?™õ!? éÌ?ʶ®?Æú?—Úß?œO*@‹@(ÿ¼@´ë?â)á?™³Ø?¸®?T²?¿Oý?ÎÞy?d4¥?v¿v?·Þ?°¯â?óIC@y?Òæˆ?fy˜?›(ç@ø?õ(‘?fªÛ?f»>?\ø©?IWš?5ïü?"pp?DHô?k¯?­°Á@ 3@¿e?¸-ë?Ì\>èÅW?²?Vl?h>ë?Ä?íß©@wC@GÂ@#ö?½mœ?«÷’>È`c>òôÑ?‹‹ù?†•?X?x&·?mëP?k6?) >ë´ý?’-¦@ +áï@ ²=?Û +?Á!ö?í}H?ìçÍ?êÿ5?òÙ7?åc¹?ßM«?ÌmP?Ï¢??°%?pÊc?Î@~m?Þ€?µã ?´)ò?Ï +½?ïÃî?ônR@c`@ÙÝ?òjé?H]?Æ@SöÌ@(Šzž^?[H +?+?¾–×?¬«è?‘Ad?˜Ÿ? j?«“?§›?YµÓ?. ÞÂ>fÒh>Ú!‘? +¢ü=ÃÚò=x>ÿ? n›>Ü,Ž>WV>†ë>Ya+?5BÖ?SO@¼?Î…Ò>êE>œ´?˜eù?ÖcU@†­>Ž¶G>ÿ8?u+?5+=·¨Ü@¢ä?J¯˜>Ÿ5i>Ú¬?Mi? >áió>â1®>âùÖ>ãº3>¶ì}>«Ê*>Þq?q%?üP?gþO?io/?cVh?^ £>ðRf>»»5?pqž?Ÿx§?`O?§U?c§??³€?˜y¿>ÁFK>§z>§9>³?Mõ%?^­l?$zF? <Ž>'nÿ<îBà>Àû>Õø³?QÀI?é?ž,h?¥^ü?–_[?w™?gKÆ?:/?4ð]>øl&>ïš>«M>Ä{›?OÓP?>Õ^? nË?æ?ríÔ?yÛ? G>ûŸp?šu?¥p¼?#½u>üš¨?¢sÒ?·‘¶?8̺>ý{/?,rr?.³>ɲ> T8>âd¬>þŸ¯?Q@?~ù±?/j >ÿLú?†Ù¿?»e†?e·>ÿéZ?K?€/?»†Þ?â½?¨c?€Yü>ßý>à6.?B'Y?•¥¿?Á +å?†á_?,ý >êGS>†#Ä>ÃSD?úô? +¤™? cD?%B?•/>†H<=àòD?‘¢ä?佌?¶Øõ?”zŒ?Ôü?•Ó[?F‰×?y•>î“8>ötc?Q™’?tÊæ?I-G?0øS?dŠY?«F>Úã=×CÍ>Jͯ>HÈ=Ú•=RЈ?ˆÚ?¾u^?H'ò?Ú ?)2?P?KÃ?iL^?‹³?™à¼?‰û]?ùa?º?¢Ò ?(?·=À^¢?5æ=?`•>í—6>ÏŽû>#>F¿=Æ~g=Z?¯)’?ÁRY>%žË=Wºq>ÒÜ_>Ö&?ÞØß?ã¡Ï?² ?®!Ô?{Ù™?iöó?¶?(¢4ôÚ<ËòM?N;?Wx‡?ªŒ#?«ï>ŽLR>’b>?6 ?6s"?‚Za?‰µ?¼,k?Óyé@ ¸¶@ w ?»C?h?§?,MÃ?eñû?aRB?\¶S?C~‚?{?01?™8?…Õ€?¾ ?„&?‘n[?[¤>±!‚>å¾o?>á=?DG?6±¥?OÞÛ?‚£c?TÚ¿? +…(?;;W?eÞ?G6?¶E?š5±?ûE ?{D3?(n?Àµ?ÈÑn?è0É?nwà>”Þè?`¯Q?£¢?r9„?;|ì?Ž?¬’’?Ÿå?–ZI?`¾>Ê6°>>¿j=¨4]? +Ð?'‰è?Ö·@q?œ+?‹%?‚J¢?ƒ+H?'>x?”Q?ÐÉ’?æP?âÇ?Ü;?‘?œ± ?ŽÆR?‰€?äÁ?çN?ðxÏ?ø€Ë@mZ?ÿ×L?É?½?0? ¿]?3&ò?Wh?Å]X?¨ñ¨?qº>ÉíŸ<âg >®‰×?{(/?P-'?¸$?5r?ƒÃ ?C-á>»§?à9?j†˜?ÈŒx@ Ô?“Lõ>‡bn>}‹ >lPô?cŒî?¬¾Ü?QÔ•?>†Ø$> õ?²ó?Òz•?Àý?¾*@ $Œ@á1?¡Æ?†²-?„Íá?„>C?É+n?Ð9’?Z±?¡¿˜?Ö¼ù?Õ|ã?pŸ?›£]?­¾æ?¥qt?„kw?˜2Ô?è{?·W>d:U>È_i?X…­?MÕ ?9.?Ot…?i¼}??xö?›«>÷ß>ì¥?A¸–?Çm>Þ)=<„^X>­Çð?µW?—F=?¼yS?àR?óÛ?ßbò?ÚX÷?¦ý`?˜Lö@û>@ +LÚ?©à?¤Û¥?êi ?ëâW?<çD?OŸ×?ÚQ?Çm:?ë«?»e?Œ10?ǃ;?LJ¡?Lj_?Þ?îô/?óH?ò?僶?ãÕÍ?ÉF¶?Æ*I>åq>mtâ?Á‚y?×QÅ?È?Ç{þ?íÑ?ø¹–?ûr&?ïþÀ?p„?š¤™?ÓÀ?£œ­=¬ »>ð¹+?Ä`À?ÆOk?Ï V?Ñ2`?ÓU?Õz—?×¢µ?Æã€?³ b?}WV?'3À?»/¦@¿Ý?Æ´|?¦%Ü?“?„÷¡?"IÜ?òs?ŒÖ?Ÿx?î7Ô?ùõV?™Ï?s›@hO@T£?AŒ~?>¯Ì?ÆCÎ?Ù Ü@#ä@6ã"@‚¦í@lb@%øä@=$‹@o†„@?m÷?Ü¿ã?Ú*7?Þ`þ?»§±?„ªë?¶Ëà?éªE?ç]…?â#Á@–¸@:G>?Úhb?„‰%?›”? ¶z@Ý&@4+I?ì´ ?Ëû¹?>¸ê? +aÑ?¹™0?Ê£q?ø̲?÷¢A?ÑÅ®?Ô?êKÔ?Ý/ø?R4Õ?–È@pnŸ@l(7@]Æw@LHp@%¶@™P@/Y=@$Ù©@Ì@r)?±éa?иñ@Èx@8?ñ‚”@@¿|@J]@7¸Ó?ƒ¼å?ÆĹ@¯.?ãi.?Åqk?Ë9º?Ñ=¢@ R_@9ø?ÿ/V?ÝE*@`u@Ö>?®ìZ?‰kï?´Å?Çä‚?©Ðï?žß?øVÜ@Ô@îW@ù@i»@>?ÁÁÑ?»Ó?Õt3?ÐÇÐ?Ãï?ÆGÆ@c<@(@ƒ-@ù?«59?§ÍJ?ÃøÅ?ȵ@–Ÿ@Öß@=)E@0 ª?¿úU?ÃÃï?³ ¼?­°¾?ܱb?Ýæo?ìŠ?Üa?¢Ž?Y¾?˜ª0?Ó~é@cšD@9íÓ? ­®?im?Ÿ?9ß'?ÙX?‡d@?›¦?£ÑM?µ°ô?¹Y7?«.?¨¯¼?²òT?ÅQt@~g?åôí?ø÷?®X…?ÏnÊ?¨J?MbÜ?”}>dd? +e?Á¶Æ?Á¤š?Á—?ÕA-@TQ?í×@?¶z?Ïkj@ c?ñ; ?šà!?¦ê?¨„—?·ñ‰?Ï·î?ËLx?ÔJb?ÖÝ?À·?¹Œ€?§·¤?¯±š?Ày&?¸êv?žHi?¸||@À@>Ö?Š\?Túù<)æj?.£Ï@Up/@;]»?«aÛ?Ä×@0G@$ï™?× ½?ÝðÝ@ͽ@Äæ?Q-?É?d]?[>Î?ÏéR?Ôï‘?ȵâ?¿ƒ@ß1@‹ÿ@t—@¿h?Œj1?€ÌÕ?š>ýí¼?¿Š(?ÒÎ>?¶(@?®Îð?ðo,?ýo`?ê“s?ã†_?´¼à? :$?ã~?ü÷+?¿ª??§Ïñ@7ÐÔ@l$ @S°?½W¬@!@Síì@³½?»¾x?ÜÕì?ûüÁ?Ŧé?ˆV!?è˜û@4×Þ@,M|@Ü@ •?ñŸ”?ÝÖ„?œgº?´Y@ ‰Ž@ ‰ß?æó@?åj‡?ÏŒ>?Ó ?—ÍŸ?”Þ¡@:Î@:ç”?ûl?ôË´?Ç»°?Æ7=?±dJ?ªßë?´/T?¾¾?Ù?ݸÓ@ qÒ@ï³?á~Ý?£dž@ Å@:1@![?sO»?¡I'?ì&À?Þp ?ºÉ?–Lk?.ƒ?#me?wær?wЇ?w¸?!@9¨,@9”Ö?ëf÷?ü»?†öÏ?w ‡?Âô?ÃÛó?èå°?ö¬?䯬?ä€?ìùX?óˆ¬?ñü?öÜ?ßVÂ?Äsú?±Ác?Œòõ?¡ŒS?Û†’?ßm&?¸³I?²u ?¬4½?¥ôæ@9Óî@>æy?Ÿz?ƒ‘1?'jû?E²?êLr@µ‡@—¯?óï$?æ ?Óûô@ qÌ@AÀ @¥³?2ÎÄ?TŒ¢?¥­?µó#?òåc?òÁ§@õ@b¨?™’?~›–?¨I­?².‹?ê#¯@ßý?¦rs?í`?Bóp?qq?žã®?ñ1È?ëñÔ?Ù1K?ßov@ãÒ?þLR?çLÞ?éŠË?»œ?³Z‰?à0¥?ö‹&?ùâ?ý*i?Ýýï?³™A?Æ8«?ï?È?çI2?²òõ?š?‰ïû?†X7?¤1–?ªØ’@)ï@2”@ óè?Ûù?Oæ?š?tIÎ?Úµ¯?òAÍ@˜ @+?Æ&?ÔŸR?Ûóê?ß@+¿@«`@o@‰?çY$?Ÿl@? ??kµ¸?‹@@f @‘È?¶Š?°\â?®út?¸Þá?Ùtª?ø0À?ô‡C?æJ ?Ék?v?fš>ZÚ«>ŒzÐ?)?'I?ƒÈ?ðo?‰î,?…é®?äµ?{»Œ?zÃ?v®?s¥å?ºò?Âç²?¤ü?«&\?ð½ë?÷Ó¤?¾˜W?¡ÔI?¬Î.?­êê?¦t×?gºã?g§t?&i?”?ž2ž?ÑÕ¸?²Q ?¢L?Ê—˜@0J´@,¾¶?å¶e?ØÈÉ@} +@fÖ?Ù@=L ?8)Î?ž»?ŒC=?AÑÂ?w€ê?ÉRî?ÍZŒ?‡k ?‚íC?ðÆ@ 1ë?øf?æHÎ?ò8?õFa?ݹ?¾§(?°ß$>hZZ>†¹œ@ ¹@%vô@ ú5@Çë@@ +Þm@l4?ó„ž?ñbŒ?–k­?‘¥?zk?ƒñ&?·Åø?Âîq?¹.'?¯Ê?‹‡'?3Ö†?M¾W?Ùì?!ú>>ð‚Ð>ÆNR?- Ü?KE?ÏÈ@ +Õ‡?·`Æ?0ÖÚ?nxb?„ ^?‰àó?P‘?X\9?™¢Ú?ŸG?¶ö?µ±¥?°|ú?¬E«? ØX?’‡â?ªûø?Ò9@N&@Aw;@8 Q?Î$Ù?ÏD¶<Ù .>0Y?Šj¹?™Ôh@'•ú@'ά?Þjþ?²—?LÿC?ÙÑ?†õ?µæy?uIS?ÂM?žùD?ôt;?ÐÃ?£Cä?Ýù*@Ê?ô;(?‹VV?Œe?<ša?(Ô?Üæû?«Ží>ò©Å>n6.>­o?„AÁ?˜¢@?¬»*?µ:¶?¿ .?γ?ñpï?›ë?Yˆ?&¥?>>–?7Ðà?5J??çf +@àH?™Hö?¡2n?xx>Õêv>Цú??©ï>ürÌ>é'-? ëd?6x? y…>üp÷>¨ y>–º¼>¹»?Ÿ„?È$U?×å·?©0ï?r>G@«?›¢d?˜åÂ?¶¨á>d¥ÿ=\(.=È7<ª­=^˜>iô= +μ?æç?7u¡>Þ2œ>–†x>/gh>´FÐ?b~H?W“ú? ï'?»õ>03+>ÄåÌ?Uâb?\`2?bäM?\1û=H§P=Âx_>ÔX>ë<?[aþ?ˆ!†?-•P>Žç?'JÚ?³è?¥1ÿ??‡??=–”>’Á½>wg? MÌ? u\?’[Ò?ªœ£?;jù>ìiú>î(>ôÈ‘?²?0ê6?<ǹ?H¡S?(¥ò>É›”?™ç?9·F?47?.¸‚?ß©>#Ø?ù¶ˆ?õÕ§?Y`,?e¡?pš~?z1ò?²ý?°£+?6 +š?,ç'?6X>ü™9?{¥?85f?Kp¦?D$?¾²p?Û“û?/µ>=%¦>ø!>¶†?a‚À?ŒU?1ˆ>ÿO9>G8¥@Ã>ÿìÉ?ð‚?"C?›ˆ{?ÏTÑ?ƒÂ>?).ý?…ÑÊ?™z?a…B??µ?›¡?Á ?y#Å?(%Í?Jl¤?_²?9¾K?uë?KåZ?u4g?vcÉ?}x*?ʳ„?ðàÓ?óž?;V?Ÿ$3?Â?˜õª?h¡?ÛG?¢%>¿ûñ?•ó;?߀¢?Ÿcó?+?eâ‡?]?c1j?TŸ?Ÿ…?¹àé?–M?…v?à÷@ðà?žLÔ?vN?”?à{?Paô?b)Â?¶Ä¸?ÂmÖ^¿?_¥C?€„#?™ñ3?•ìS?.ŒL? Q1?‰Tä?ŠõB>iS•=Ùz«?¦)$?ºp.?w\?tÑl?º}é?Ã/@?¸0u?°b¯?v+´?n#?ΫD?Òפ?LxŽ?S^ú? +ª•á>­Í»? +œ? ?”™@?–?µë]?­¸á?a*ó?X Ì>óïX?!?…( ?•(Í?¸Jå?›u«?jR? ©Ä?‚oI?‚qh?‚tK?a 8?{ ?G'?¼ •?·r?£î ?¨NA?³L‚?Ö ?WÁ‘? +V-?Pû?¨ÆÈ?–Ø\?s8±?wÈV?|Y!? +ô<*8€>þ:?{*x?v­>šHh?¹‡?LìÔ?²¦Á?òï?¼ºp?ú…?™Ù¯?°?ª¾?§Ž?ƒû¼?‚è?¸?Ÿ?Ì4”?Äá?ÄrT?Ô®=ø¦ +?ÿ¤?/wŒ?Ýrã@®?šk?€Öç?¸žO?Áî!?0åÆ?d?hw¨?o8ö?½­?ÄÚ ?ÕÝæ?ÙEÐ?†&-?ƒ|¢?Ä¿¸?ÂyJ?€f?ò@ •Œ@Þ@82@a…?Xfo?C¬ã?€¿?/îÈ?¸ÆÖ?Á¨7?Õ¸7?ж?ÉBè?³XÜ?KR?V¾ü?¤G?`ÎÆ?±ój?e/>bfø>KUU>ß?"[?S?¦&Ý?ÕL)?›N?Hã‡?D™Q?@PÚ?kŸÍ?ƒüE?0A ?¦?M±?&ì?¬ÊÖ?ÔB?§¨Û?•}“>¹Ïþ> n’?® ?Å«Ô?Þ˜?Á:@7Ì@8„«?òK?é‚?“ë?–?˜?h?ŽŸV?g?—q>ã¼?æ?ƒ½]?Ye">”-¬>œÃ\>¥XL>K>%/Û>óü?fÒ=?3´á?›»>©!=úp¦>Ìî„?úÈ?»=–@Ùr?ƒ6?µx?Ÿâ?ÇŽ?jƒ?=¦Å?ÛÑ2?÷ ?~Òæ?_êž?ÇZ?Õü@/Ñ@*)?„Ý?‚ØÕ?P`­?Z×m?„äÙ?„ðƒ?}Óu?Š‚?Çfî?®›?J”–?#ð¬>¯ý)?NÑ­?Ó·@¤u@!y¹?ßÜo?}¤Q?M˜w?.ØB?»á?ûO$?¸ï‡?˜ Ò?‰[Z?ˆl”?š˜Y? ¢>?Y\E?DËy?u?~‰ +?T°?Uò*?–¡"?—"ç=ý]Õ?¸:ó?¸‰ƒ?±s´?Ì ô@Ã@%më@BœŒ@'¥ß?Çï?Ç‘Ÿ?ÇŽ~?ßLÈ?þóŒ?Ë?”n~?–“é?˜»‹?5O¡>À'a? +×?)õ?ŒÁ?¥ó?ç”?„ö*? 5I?ó?¢Ã?–Ó?°ÁW?¶Ñm?âXâ?ßdI?áì?õ¾ñ@Z+Ç@M£L?„á”?œ.å@£@Ê:@O'ó@ciÅ@‰š@kä¤@&â@Ýa?ÇA?Kô?³)?©ö¢@ ž—?û¯}?ç<ò?Æܸ?µS?Ò +=?Þd¦?…Æ¡?nÜk=¥sÁ?ÂO?ÎQ +@ô±@VÀ?ÔÐà?ÞÞË@38@ +¯@H¯@D°F@(?æ@!Ã|?èE?øÉÏ@=Ù@ +E‘?É?¢6?­2?¤;—?’×Ú?‡$_?ƒÖX@Ô_@P–ô@ 1??†‹}?¦û°?ÇÕ4?Ç=Æ?ÅrC?‚…Õ?0ŠW?ð€!@$g@W@;W?Ú½?½$—?©C? ‹Š?Øbý?ã9º?Ê ?ÄÜ(@€b@-Øï@$M?óÛZ@ J@ û +?†0?so@4Æÿ@?«:?’NP?„,?ˆ> ?ŒÑ ?˜™â?¢RÑ?ùœZ?ô€–?ÃûÍ?ÏËÄ@.å@)í@@Ÿ¸?È?Ùïb@4b²@'O±?·Hr?Ôï!@"Ô@U9?ãf»?òÚ +@ ö«@ÒY@`æ@JK’?þò?ò2Â?½lL?œ?î?¦ù?ks}?ëcÁ?Ëi ?´ÿ?²í‡@Rú@ïå@((¨@ê?á#?Ù?k?Â%Y?ÙXG@ 8ç@ß'?Õz?¹£?3²? ƒ„?ß©??ÏÁ€?¼h;?Ó @¹0?í¶î?Á]Œ?æâ¦@,·?úo%?d_á?­´_@3Ÿ@þ³@(¨¦@ +i?†’%?ŠÌü?¢v*?¢©?™¾?¢]a?Àz§?ÌYí?ðÿ?Ý7¼?•EÌ?ªg@h?×!?üA?ؾ?—Ù?½/s@—@Šr@‰C@”é?ï?y@8J{@+9Û?;?K ?¨%%?®2Ÿ?—>š?šÜV@u,@h“@:Ü@s?%I§??ôqÐ?üñ4@é@Nâ@0<â@/Ž²?Ñ[¼?¾4—?¦“6?§!È?¬LD?±q^@(@>ò@d?üøû?£=%?|Í@ ¥¯@5®?ýWN?½]“?çÐ@IC?ŸP? ¾ª?F÷û?‡…ú?…=¦?{Ö?éº@<¾g@3@?Ñ>™?Ýf¯?á ?ÞCš?Û{­?ɼê?—/?›ý?¼ ÿ?±°?U!?e«»@nð@@ @§ƒ@|?ä?é@WI@_n²?³Añ?z@9óå@L@I?Öjÿ@l´@&“!?÷Î4?Ã&~@ƒÆ@Cˆw@7på@.c@K?ˆâú?¬#?ö´?Ñ€®?mD5?T/ý?bä?B]x?Õ¡C?Öf@ªÐ@_ú¸?IÊ9?†Û»?Ÿ™y?¸kà?²§”?¦:?ãœK@?¯d@*À»?õJ…?òœ ?Ü8Ã?ß°¬@oú@³-?À—ë?·k¾?­¸K?±;?·˜B?½¥Æ?á%u?óðá?óÛ;?ó¹a?áÆ?Ò¼ ?ÀO-?z{å?‚غ?£ËÜ?Ÿb?ß–¯?âÄ€@‹@%?ðcØ?ìTA@'›@Ô}?—?5Fì?)´>ñ¦—?Pè$?Êœ?¡¢?´p‚?®Ä¡?…q»?’çÌ?éZ¨?öÄó?ÁQ?»þ?‡áä?rxœ?ÍÁ×?ïïš@fŸ@&g@ ª?ÚîË?ß[ž?ï;Ó?ûÇ—@mÉ@!)? Ã?¤0ë?™âž?Ž^±@#@1m?¯§"?yÕ?q´¶?—v?Žoh?‹PÊ?° ³@ L¯@Ñ$?&ñ?œ?˜-ð?¤AN?Úœ(?ìdÙ?§yØ?sÉ?Âv@Ø?õ;ƒ?ˆ¯?Àªz?°Áf?ÀS?ÌV?ÈF²?–`>?wÇç>ª%>cëŠ>ï5H?^)i?Ý…t?ÈS?1’¡?!ä°?甦?Ý×?̦ø?ÇÙ?·ì„?®ù?¥$•?-/?ÚÅ»@I£4@;ó®?;?Iî?`ŒÆ?hgØ?­g`?Ûë™?º¹|?}8š?Œ%T?¼†5?±Ò·?€tÀ?p$O>ô·§>ç‚s?­ +?Ë>?·ÂJ?­eH?·¹d?ÌM…?Ùï2@Õ5@gÏ?’‹l?ƒÛ@»@$ ™@ ‡?ý¤ñ?¨»O>æ‡Ýþ™>¸ÒJ?ø;s@÷Õ@?ׄ@_Üd@Kf@*¶Õ@Vx?º¹i?»8s?ŠÂ~? g?2…?å6?¹%ú?øöé@_;@ðÀ?àe°?U…È?K ÷?Aµ\?7·>êˆÃ? p?-?m;?Få?h’p?ŽCó?¢š ?œ[­?žn!?•ô¿?‹ºZ?›»'?j \?jC\?Ñ9–?æ$ò?—¶Ù?u²é?¶F-?Û„»?±Vb?0»?–‡P?š›Î?›‘E? aW?©Ë?®ôÊ?žÖ1@¢R@ÐÏ@3ìt@C'B@“µ@ oç?¬9K?q­T?(õÑ? zZ?ä1-@"² ?Ú©å?”ÍF?»­è?ÈÓH?ÝTÿ@.á@$)#@0â¯@[2?V?dpÕ?šqe?š™ ?„6å?Uù»=®Wœ?.Dz?ðÝÚ?³Ö?QÈL?’û?ÅÅd?çÕ$?ñN?ª@ç?€kó?£~¬?­³f?ŸœW?‘cg?‰q?¥Õ!>¶P=>P²r?dá?k…>á!à>§X>£ÔC?RPÄ?¢Þ+>æ€ó=“Är>ýƤ?(Bª?·Yý?§[º{‰?‰ê?…e=‹y>«LŠ?€>=á>:N÷X?žÃA?`)Þ>§C9<ím>9B?h=ÃË>AÿC>ü6°=Í?‚Ór?P!?=à(?JÉß?Jÿè?A#¡?a`?n ?µ­x?­ø?[l>`×>Œ¤J>ÅÉü>Ò~>Þb­>éU‚>ÜLX>Ñ+¾=Ñt^=Á¼A?™®?Èd7?n¸>í”`?A8d?•M?ƒÓ?'ä?&I|?L-%?R '??›?KY>J<÷+ü?Œ]u?³(^?FÚ:>ôÆ{?3Ó~?Zƒb>þQ“>Ñ–=Öä>žƒ¤?wÇ?[Ø??K-?ÿ%>1yƒ?]Ž +?dêx?_‚??Z?2š…?!yÜ?jx†?}sv?z…?ˆ˜â?&Øò>þ;h>?gäZ?¥Ÿ?01 >â +Ò?nN?sƒ?Ttõ?x7¡?&™o?¾? E"?;4á?kÝ?U?×C+@ÃÃ?©3?C ?Š?¥!?9Àá>´ú0>Þ•?ÝÄ?xäÇ?˜þá?ký ?6î°>~J<=oÃ>¹IÖ?ªœ>ƒ­X=•!¬>`_L>®‡æ?§ý?(èÍ? V?Â+z>ïÃ?µ¤v@‹”?€Ð?!·H? t9?¥Š?Ϙ @°N?¢§Ò?º‹?®?¾˜ø?¿(Š?ÄÅ?A”¡?¡é>0N=¶Î§>IÜ>ƒfY?V?1N?6¬?aB>‹™>z¶?Ëv@?çG?dí?w0×@¼š@£L?(–V??ˆ?‹<¥=׶= ¸© +ä+>?œó?Ã<Ç?¨V?Ÿ•7?œT +?©à¾?–³Ü>[=ó>ª¨j?Âü?ºH>>Ჸ>÷™­?”mƒ?–;‹?‹Ù?W?hw¶?T˜h>–->M€&=–‹L=¯Èˆ¨Ž?‡‚¨?T Œ=œ†>ãý?µ4(?¥H?‚pL?wúí?U’W?zÒ9?§pê?™_W?‚€M?Uûd?„>Þ_›>¨-Í>SÖÌ>¤¿?;??'Ä?ÃÓ?k>ñ>;™>Šo+? ΂?|vX?¨Úä?f÷¾?åž?qå?—z?DÅ’?X{£?_‡$?o9?Zȸ?F­~?áìv@ î?ü?\C^>²•>7"@>À6ë?¦vy@¯?õÑP?Ò»?¤|?ƒåß?ƒê^?ƒîÉ?©n?¹?‡\³?\ç|?‹¢?•÷D>¹¶L=Ú!\?×õp@…@!|@'{?ÊÙ…?Åç?Š~O?ˆj9?EE ?]ÒØ?Ñ »?Ê¢–?")Ó?1Au?„V"?mÊx>ª³Ù>Üa>H”Í?H²‘? _É>›N>Ì®>ýÕ??/)È?›.?ø ?¨Ù ?!‘?_ßý?×?Æ;?ø`¦?‡»Ä?«?Äe‘?úe‹?©'“?ý×?'˜×?¿Û?Rœ¿?o«?eí?]dù>Ò’Ú>Òõ1@\‰@ R ?¦|—?¤;R?šŠ?™Z‘?·¹?ºŒW?à"?Ô‹Ý?¦@¬?Â4?ý“@t@/a4@C @]v•@7ı@ƒ*?¨z?ú_?‡ž?³ðÙ?DG¼>àÑÖ?[Ÿ?…?—J ?šLw?Q —?:Ñ\?×E?Æ?ó$l@ÔE>Ê7*>ŸG?ge>?Xb>¢­j>²\?j[?rÿ?z‰ç?Ys^?"ÞY?;{(?ˆ1z@o@‚Áø@.>·?~K?-¥†?C†G?kYe?…û?…V?„ÿB?!RO>¬¦Â?È J@÷–?÷…-?ìŒó?Í£y?Á_?‡(O?lY@Ô7@–€?’;T?„ç<@y@g >«èI>±v?ž€_?“–?‚Á?œyî@ÐŒ@"2Ÿ@&3@†(V@•\¾@j™?ב?äxF?õp@my@ _„?ý´z?ø²h@~Y@ J?Ê‘i?˜¤?݃«@p?E>íÊp?Ï´O@|@&Ÿ@%+?úê2?áCï@9/@En,?;ÚG>ý‹§?û¸t@‹¼?Ù'û?ß$9?ú°?øL ?üØÏ@OÇ?ókû?ç€?ŸO?ŸÇF? K¨?¶‘þ?Þ†&?Ê?¬:5?Å +&?ò‘^@"’@EÍÛ@<&?1|@#”G@Š\ @A?Ìvv?郦@Ö™@2°@c?Æ)å?qç˜?¹ú?ãpÙ?§ ??s3D?V­0@/I@1…@%Ø÷@$(@ÏÎ@ ƒñ@J@*¿?Íád?ħÌ@ ¼ @\i?@õ?Å?Þ†?ðƒ‘@&¾@?‡?Åe¿@qƒæ@bÃD?F+^?s5½@,9´@)6@-ln@/^K@2g8@&m?áAá?ö…é@2|P@ Ÿ¼?>=?§?G@ôy@¾Ö?‚-`?³?@6À`@6îŒ@3“a@Ùì?… +î?æw@?œ€@:©/@1¤*@ ¼¿@Æ6?Þ¼²?±?ŸÀW?ìN%?ߘÅ?Àù4?½›+?ŸÕÆÖÎ?q95@ P:?åö?1©?ÐÚ@U@Z.@(?óß?¸ñ?{ÎÆ?¿ÓP@ ÿæ?à„?{xÊ?›d#?Öw×?âïõ?û&È?ë¡?¼9+?ÉHï?ùSå?òÉB?ú ó?ò¬o?©A?± ?ò¢¤?ø"˜?ô:&?ë¼d?¯¤?ºÿL@C£K@IÞ@0¥³@2¢i@,x@¤÷@':Ö@>>Ä@:{Î@3\@<§@G­3@¼V?à^?åÀ +?ëp?Ì„Ñ?‚F?³p@- @¢?£Êc?¬ZP?÷²ù?þ›ô@"äÏ@ê#?˜H?›-ƒ?—D?“Ñ?ê_?ð?è.±?êQ¼@C@iÍã?éÕ?ËS?=$%?vï?®I?éú×?Öy?¸@ã?Æùõ?þ”?û“?—ù?¥õu?е-?ÎÅü@0æ—@7 „?»ðÿ?®|?,±Å?B?Áú?ðà;?®ˆ??ÅÍ”?óµž?Ðïì? YÎ?°ü‰?Ö S?Õ‹æ?â¸A?ãx?¢ìÚ?¥Ê>òžk>òˆe?P•C?f¥ƒ@3@£@PBj?ÑÖB?]‘î?VÙÞ?P!¶?¬gœ?þÿ?ïÿ?ÓXæ?·Z?V‡z?HùÕ?;[K?-»^?Î`ë?ÜÀ^?î R?ï+H?î²Þ?ïéÄ?àa?ÝE¤a`? —/?k½l?¥ŸG@þ™@°°?Ìéì?Å ?ïý ?þ¨?Úbõ?Ñ9?¦y‚?ŽTt?f¥?5g?4Ý?¯]>?¼ÔÉ?ÓD?ÆÅÖ@A@ì˜?±÷ +?nL? ±T?ѹÆ?Ê×…?½Àû?Ê'?ÖŒò?âß‹@ @1?‚+×?K‘Ì?y§·?Š·J?™Û"?­Mä?¢½÷?fî!?fâ @ +á@ \N?â¨?·fv?ùõ@¯@ î?Ì ë?¹’.?ª®Á?¡Lf?‡0§?$ú?$-ÿ>ûsç>;òí=Bª¸?* +?¸áÿ?°!p?ˆ|Y?Šü¿?0`?9®½?Ç] ?ì˜@ %«@þç?í”x?¼)—?Á5û?¬èë?¥ß?#äã?-˜Û?šsã?™!;?r¶ô?;ùj?›é>ôàD?0kØ?g]´?g}Ö?gŸÌ?g¹Ó?_©?7Ž?Zf}?h@¯?pý?mO?ÅU@ +Š @f7@B§?ó?ÑÊþ?·÷?ˆ¯—?ƒr]?©*?°¨?×â?ÞžW?ÈM,?Â'¾?¶Ú?–ØÀ?uºu?‡³?0›?]6ø?ƒœ@¹È@ =Ð@L“@ "N?î™?òž/?­ ?­.?†u½?g©ë?œëf?ªP•?° ³?Ô+t?§³a?7s ?¾@%øe@ y?¸ö|?¤þÀ?“4˜?ºu­?ÓK¿?›.ž>ú8 +>â>ŠèÌ>è ˆ?|×@?€v?já?­û¾?½º»?Äö ?Õ6@m$@,Ú?ÉÙÔ?˜:?Þ?7k-?ÊJ?ì?5ƒ™>ºÌg?a’Q?j2¶×˱?Vó0?[Jà?‡é•?8ñÐ? +Ä? +sÿ?M°?Jæ˜?mxé?ˆ:?€€?suA?5¤ù?}? NÍ>®(ž>%æ¨=…j£<$—™?G¾‡??¯;?!€=c¼.:)²=1ù0>:dì<õç@d?…Ž?^Xc?uz«?†cD?d‘/>á£u>çý?¬ _?»/A?ŸŸr?ŽW¢?ï6==%‚<‘,;Ä{ç<ÚíÖ=KG ?;f?:]b?¶K?3? +x>í¥@?DÀ?•eÅ?†Ï}??äv?9—H>ðÄ@>ô$™>LJÑ>™xÙ>ÿß?6z?žbè?¶ü¹?BH?>ôÏÛ?ç–?ÝU?'èU?(ýS>öˆ>’wt?¸ÿ?wÎ?@OE>J£Ë> °=5Ø}>`n>)Ê=†J=ë¼@?Q—Ñ?^÷„?”Õ>Ý’Â??Ôô?MSE>œÖ=ïÛn?:4˜?{ˆ»?¬Ö*?¼I3?G\Š?a?IŽ?ca¹?Cv?Uj?šæV?Ì‹Þ?›VO?€ƒ?€ E?€­g?^µo?SÆÁ?8šH?$ +û? y?и±@´@!L/?”ˆ?¦Ç>'š<ñÙ ‹Ø +?—Ù]?Çi?8ÌÚ>ÅÃ]>ï:¯?¤º?ä·@ó²?—î?p{Ê?€RwÔ<Æ߸?Í•?ñ˜Z>›°Ý?‚Û½?’À>?ê;?ê'?*Ô!?5áš=¥Å +?mç?ˆ²¶>ôšN>ÁåÙ?¸ñB?à ô?p7?XÓî?³ÅN?¹…\>ðŽ=>ñψ? lX?Ìñ?…x?‡3|?e/ò?]Ù©?Ž¿I?”zo?ÃE¼?ĶÒ?ÙtH?ʯ\>˜·Ø>¹ßp?‚;0?| ‹?K1?T–Í?b-t?4lÚ=½°>ÊQ+?*1E?ÝÉ?Îyk?z?Ä?ò`?ÍJ?>Øš=“Øê>¦Va?_µ~?Læ?:±?v Û?±R?‘u¡?0½Æ?c#è?ž6ã?¯k¤?ÄP?šYÈ?;2?[k>¾&Î>«îc>™· ?Vf¡?Ãâ¯?ªÇ?Œ¿,?rX=³8Ì=UÂo<Šr«?Ìp[@:ï?ÌÚ?$¾Q?SV?kt?TZŒ??‰U>ìa>¯äÛ?,C\?P·g?#>÷ˆ\?ùÊ @(ûe?¾ÁÒ?‚éÜ>Éôù>)3r>Û»\?úy?Œ÷2?›š'?¼°?Ä‘1@”Z@Î,?”VW?†8+>:QW>G?+?Aa ?ÁˆA?ÄËy?fS"?^ç?X¬?awB?jCk?‡AŸ@d¤@,‚?àí?Ñ+?’1ü?„ò?3ÎÂ?\Â&?â´æ?»%>¥cr?6VÕ?ô9Q?Öó?ˆ±Ö?ÇX@#S°@-Q†@?3=@[Ð?e=J?+À¥>Óýk?›¾õ@Tì?Ä‚Ð?˜Æ?“g‹?z÷?¡uA?§¬?¥ˆ=?£em?æ0_@ùÙ?Ç[+?¯!e?¡Ì? æM?{59?YÍ'?ÄÉý?àAb?ö}ú?üæÊ?‘þ¡?…œ‡=ˆ‰=b¦*=7“Ÿ=×çO?Ž@Û?Ž^”q²>¶þF?_$?È?jhÞ?iR½?„nþ?^ɦ>ô:}?<^¬?žÂ%?œ¢^?š…?¤ª)?µ‹?´¹›?¬êl?¾ÏR?Г?6~¯=œÜå=ŠÚ*<¿š“?@@9?V×@†¦@µ?e$ß?¿]?Â^?ÄR?¨ +¼?±Ç>Çê©>¢Úb?a}?!¤@(E`@p?Í ë?Ñë.?Ö4?×Tš?ÅlÉ?¤v?'d·?u±ó?Ô[Š?‘I)>Pºf>³qú?©+?JþŒ?††Î?¦•?½Ú(?ŸÕq?ŽÚ?¿îç?Ô‹?,NÝ>3Ù?¼?LJˆ?%?Užz?•ª?Ï?õu{@²?BJÁ?%ØÔ?®?©?°Ææ?¯±?ž(#? [?pÃ@;!.@(„ß?Ç!?Éþ?Ëd@g@i:‡@.?º?«ii@Ëå@7—@+p‹?ÞÆÿ?…Y?p¥?\®ê@1E@Tñµ@&2û@˜‰?÷öÿ?ëF?¶94?¬Óœ?ïnC?óá¢?rgy?e÷¹?—iÓ?¢Ê @ß“@ +´@C»@-ù'?Ú:?nÉg@$â½@¦A?¬cR?¼.†?Ñ_Ì?±»“?Aå¤?Œ?«ùæ@ η@GÀ?õ´«?=U?–J?Æâ@Á@4ó?ð+>?×c­?ܵ?ÛEO?ü¾W@{@œƒ@%>@X÷û@d~@*¹'@$Æ?’é¸?‚6½@€·@$Õ??Þ9?ž|,?›Ýs?JRÆ?‹Þi@%Q]@#›‘@%N>@¸¼?J˜Ë?½†ø@S@"@,9„?¸¶h?ºÖŸ?Åà÷?õ”$@"à @ =ü?ź ?äÃß@Ŭ@ š@u£?×5F?…žy@gz@Bª@(:®@{P@J/§@bÜk?Ú¥¢?a?½?s?×ï+@Pµ@sÒ$@'áÃ@>@/@½@6Í?êq¸?Ö +Ú?Úr‹?ØA?å„ß?â­^?‰©×?‚ü+>-tn=¾ |@Á@!é@"7@!È×@gáj@_÷M?p!‚?Ž,;@\ÿ@];@gl¯@a8@Oúá@NáŽ@?Ý,?‚ ?–J?ÍáÉ?Ç ¿?Ç°?ï†@%r@ Kø?—¼ ?£ ?²Þ}?¶¨?ÂrØ?§(ç?Pçž?F¡’?=¨?³ŠO@.¥@Ô\@"¦@òk@Hn@ +Á? Ö?ËŒ¯@dƒ@"@áF@eˆ?ý·ë?×Ð?„ÓÊ?ªª~?ð+@Óú@,@À?®˜W?—ÜI?]ÀV?¢¡Ö@„ê?ú“?ßéß?ß·?æxl?èÙÄ?ëB¤?òœX@<Ë@E&@#ˆ¦@"i?š'?üQ??¶G×@:(@93v@D5Ü@68?ãÕ—?ÔÚó?¥oK?ª¦?§‹û?°|ë?ÿY?êæý?×,?.6R?ðqP?ç‰?¦w†?¢åJ?ÍQd?Ê÷í?ô÷)?÷z\?rT¿?w›…?¸Ò?¶”å?·q»?µ<@hù.@rxâ@!ð´@©@?r«?/ü³?Gû?•sò?æ‹z?üó`?¼ÆŠ?¦Áè?ĬË?Ï?â|¶?ð>t@%{u@@®O@;?ºs@9@8Ø“?ÞA?æ?®à@×·@ 56?ý„²?â0Ý?¼|·?ãÄ3@?¬@3¨@’=@hF@Ë@„Ì?ú¢ö?ç·ã>úw?+U?…L_?wM?¼Õ@?À:?df?yáR?–7…?¬lo@ÿ:@GP?¡óø?†áY@{Q@>@7@@2?ð8l?ÛûP?Ö2M?ºï? ]©?‰•-@€¢@‰ÖX@ZÛí?Ä9ó?ž9?¹ë¡?´ƒ?YÚ?²`r@&k@%à>?^?™ý7?ý? Þj@Õ@&´¦?̓F?¬Žÿ?ô²B@às@WÇ}@‰h@;ð?ê*?í.š?õßµ@…U@¡Â?å»Ë?ˆ +r?Ö?wCa?†xþ@S@ªa?·©.?·â?fý*?aå?‚Ø=?€Dç?§Ï?º]²?ùYÑ@ +?²ÙŒ?Yq“?Æôü@.i@ <ä?óHÐ?ý­O@ Àe²7=µzî?“á??Ä+y?ÜÙ?Ý^á?‡—Ä?‡\?~ o?¿3a?É&?Ó…?Ó£@?´¶?¶r~?Å ,?Á¥Ñ>þ«>ð`Ã?Ò’^?ïë¨?ŸwÂ?†;¢@ oÁ@5«x@ ª?Å–w?ÑÖN@zb?õII?h˜?ˆrÆ?‰ípÌ?y¿?4wq?4Éç?šæ?± +?¯îÕ?±v†@!Þ@#>?™ÚÓ>ûGb? pŸ?J?Œ,è@ +ã@àî?ºÌG?³(Û?èõüFU>ì~-?q¼?ˆ>o?cv-?HÍ—?W¤?g)Ü?”;1?ÆËÆ?§ï?·f?¥Õð?w½î?nš®? j?Öu?ç•U@&{.?øÐ3?zœ?µ™€@ºf?úÊg?_£Ú?D¨Þ?„Œ?€ÎÊ?»¥ä?×U?¨Î?€½?\GH>± š>Ñ}ƒ>{2?>8W>Úщ>æR?Çp>@ Fë@#•?à†š?ψ¦?¬ã´?¬5A?›<¹?ŒÂZ?Üg‡?æà?ì¹ +@ s@ ÷·@/?éºG?¢Än?Ø?˜âÃ?“æ¹?±„ú?¼R?‚L·?hJ9?£A?¯ô|?æ +D@6?ù…ˆ?¬F?À~‰?éx?ýÝG?œðŠ?¢rº?¡‡Œ?«%¶?‰Üœ?„m‚?Õ“È@ëÂ?ÆXî?“è.?ÁN²?ÿ;›?ÚmF? Ó ?³?¹3G?Åu?–iÏ?¡k?p±?z&?^F{?<,?O½?g +?Gv~?€dS?ÿ= +@$´S@¿?Ò&œ?Æ™¨?Ó×\?ˬÂ?´¿¢?ä ž@ø?מ“?uË?Àß?@?Üç ?½…Ö?›ÌC?ý?”ó?µ}?«qÛ?®ã*?¯§’?¼A‚?»4ô?¨æ?š“?˜²?Ÿ—˜?§]°??šÀ¿?6".?3,M?ØC??6>¾+>\q?F,>½àë>ð3!?Ø=O;> +t›? ž? 9u? Úÿ>Üœ>Ð~#?ƒð?{Æ=" =a¾ =!ØÌ?‰lz?)ƒ%>¯%ï<â?Ò4?›qM>è¹=›?òE%?-È ?‘n?BRÛ?`›?cãè?`Ä?JÊé>1y>Ä?‡áÄ?®ÛÕ?PHü>ÇG>Ó‚©>ßÈ;?-‡?¤jP?œ +?k?í?kXy>èØþ>£s^>Ωà>í§¢?0¶„?n¾M?jÕÙ?WU=?2MÕ>¨7J>æ­Þ?ØîL?ß'¾?Šã(?×? yê?Ñ?Qõº?eQÈ>¹ó=ت˜>Ì)?!ß?]K>÷j?-²G?wÍy?NÊÐ>øuÌ>Îd6>Õ>€Ôµ?A\!?@Ç›>úF-?Üî?u5…?ƒõ?ï¯Û?ãX?†_–?‰lÙ?Þ.‡?Ú(>Ç1ö>µ P>ú +û>ýo‰?mìÜ?}Ø +?‡ ?Žlc?”ö?™­p?ÅÔ~?×{4?›î ?‡M_?-ë?«?c$?ƒ[P?y@#?ncv?,àÆ?Í©?‰©³?™ +œ?¤»?§‰ ?Št?€Œ¥?­„1?¹ˆ?A«?ÁÐ?]oô?€Ø>»º +=É)b?ÝÝj@õ6?¯Ç¦?~Z?!˲>ôo8>ê ¹>ß­^?•xþ?´ ã?"؈>åF™?d;?l>Êm¤>kŽb?WÅ?†Ç?—cš?š£¯?$½t?¬?ËÈñ?ù¥e?\ú#?aS?X‡?pHú?F?cg?Þ?#A>óˆõ>Ù þ?,óz?@Yq>UrÎ>$Åõ?Gž¿?P¼à?Cx? ç>ˆk>²Á?˜M¯?š§?•ï'?›€?ñæ?ô€V?lT?l%«51`=M,?Ã!?Â|ô?À¤½?ÍíŒ@Qnœ@;‡ >AÕ'>ݲ³@ËÍ@jZ?—Ú‘?Ÿ'S?µ =?Âwá@âB@ t?<”]??è?sð?`ÓŠ>žÉ>x{¤=ñ =œÏ]>!·Ž?-?-1l?€6;?€ë˜?tJŽ?OÓ¥?Ûw? ?e^?=O?Je«?VqÒ?W¦Ø?f#Î?‚sÂ?¶Ä=@y„?è>8?¼=?”²o?Tl|?Y&?]‘?¡`?ÓÝ?Äd?¹5+?¡Î¤?ˆÄó?„ Ç?‚£4?©âo?ÎK³? Šh?uZ? [H?·¤Ø?k?$š2>í;1>¯í>¶u¥>Ï£>íô?¦U?âêG?„ú£?Qr?_ñº?YÝ?pMá?jÌ¡?뛹@þŸ?¼ò?³š{@Ö@¿F?Ñóµ?ÃÍË?f+?pÔ²?u?*;?Ž!?“Ba?å»0?Ù¹1?>¢?B¤?HÌ?5\/@fx@»ê@dÄ@ ?Ïäˆ?ÔHW?Ø©o?ÑîG?¨õ?? jË?š +y?—¡Û?ƒŠ©?”bv?¹ék?¾E™?¯Œ?–n?'YÁ?[DÝ?ƒ°Í?I?º2?Ç%Š@$·?º} ?Ï?fÛ-?“[8?™=j?¡e†?£”?¥Áo?—p?˜ ã?‹¨Ñ?ƒü8?!øò?§?ÇS9?êAÄ?!¢>am?€Œ,?Š|ž?Æ>¹?ÈO¨?„K$?¨«?·@Ò?ª£?á?Sï>Y¢Ö>‰q…>Á'?™Á?Æ/4?Á‚å?Æ•h?ÞžJ@ !,?ó©?ÂÔÂ?¶à1?«ÌL?­ó5?°Ä?‰MÙ??ŽJ?»Ð@ }ó@æð?ÿY`?¯©?~ì?ÙŠ×@è:?©-?„­?ÀŠì?Öáß?º'?®¸(>ŽÕ>¬ø?Œd?™‚Á?_a‚?^H@Y4@”@3õ @+8I?£_?’¬Í?åÿ?a]±?ÝB×?Ñ›1?–ÓË?±A¶?î‰Ð?Ùl}?´¤?»ß?ÂQÒ?Ã@?ÅŠY?ÆÆ ?Çtœ?ç2'?ù&H@‹±@ç?Êû¥?”š½?­>þæÉ?¿ u?Öø½?™î?‹ç‡?‚Œ¸?†±á?ŠûÓ?‘&?¹ ?»Å?@m?óÓ(?J«à?rO8?â³}?ÛB;?µáµ?ÎA~@}Y@ó<@Ÿ”?Õô?€A„?)–,>´û?“–Ž?ïû?ÑÁE?µÐj?–É?„ú5?Ç'(?î @?¾@ñæ?ºæ¤?§Ô©?¼G(?»jª@Ô@5?‰`?tØr?EWz??ÖÀ@ +èJ@ +Ðñ@‚@©…?Î’?ÉÖ‘?Ê_T?Ë3(?Á;T?Ñ?ô÷M?ʼn?l5¯?_G?´E@ †@Fþˆ@ r?¶D)?À¥ç?É*ª?Üüâ?ñ¸?™L)?V @ÁÃ@9^·@ 5O?ø/æ@‹ÿ@š'@0Ç @:Ÿe@–?ýóŽ?Æ)A?Äõò?ŒV¦?“yÿ?øeê?óö×?ï”?ã.ø?¤ƒ¯?¯×@Í@Ã@x´@ §ª@-¾‘@0/@Ix@5.@ó ?ø‹?Ük?×›í?ÌF½?ÙÙH?î¤P?ý1Å@Z–?™a>ƒé>¸Ø?¬%@û©@Eh“?óY-?Ÿ•’?š3?¢?²ìµ?²×—?Î×|?Ûá8?øÝ9@íÈ@ @0Ò@.v@2ªw?Ñ÷?´©w@û@ 1@eQ@ ‹?Ì6E?ºƒd?ž!?–‹0?“å¬?ŠÉÈ?†|¸?”Î@(êO@"£?Ío?JCB@1íÆ@/øy@ø©@ná@/ @4 +´@M©Õ@;çŸ?¢‰]?›ø?Œkg?Õ›@wL<@oëú@H{y@3Ð?Ã%Ì?ºÚ©?œ¦j?ËŒ2@6Z–@F•@a@U Á@?ß:@Ú­?Â9?•\³?†ˆ?Âxè?ÂlÆ?»¿?©Á­?’J$?H`â?·25@4k@3L[@.}7@!í5@@å?ü@@?òë?âÉ@?Á­Þ? é^?6ßÚ?!#y? tã?/û?€å?¬xp@Ñß?ÓÞH?Ê”?½¡@çŸ?ïÒ?“Q2?»zå@XI@ùÅ@Jk@Š?À?²²ƒ?”Ƚ?«­Ç?Þ©k?ºÞT?E?gz@2%@!—P?¿ûõ?–l|>$—Õ?W}3@?Ä@8eZ@þô@`?]Ô?–¶ò@ m@ÇD?ÿF?ìü!?5ë?L{@®+@AÓ@ I*@ÝH?à¸g?å&(?¾¶T?¾§R=ú==@†?óPY?úZ?ÂO?¾Oâ@[Ä‘@kÅH?®œ?‹½%?ä´>ýA?€ÎÚ?†ö®?°s?ÃÿÝ?¤¸ç?•Œ–?øÞs@,?Ýê?½TÕ@&Ö¦@U§?Ü—Î?Ç?¦±š@ËØ?À4×?ij¿?µÇÙ@Z@|µ@)?ÿ(k?— Z?´‘?øê‡@H4@F u@3ü¼?¼º?½¾Î?ÌZ™?ÇèÛ?8²?1?Ù-ƒ@LçM@-Ý»@?лm?}TÞ?©¨Ö?ó!È?ã,­?¹å¹?·MS?©)#?¬<›?æ–[?é:2?m?x×o?Ê@9?Å’?¥E?¬§÷?‡#E?v @%@C@Qj?êžë?zyã?„wñ?†b‡?¤´¸?Ä$Ä@Ę@/Qì@ U?Ý{°?îíÓ@_@,í?ça}?í•’?~ß®?ˆ¼ ?b?DýØ?Û\˜?ôX–?[‚i??%§ð?F¾Ô@ßv@;Ý\@"`Œ@%?üýA?³?åʈ@?ÔF@3üR?rßœ?t?œÉ;?£Aª?挋?ï†?ño?îUà?ˇc?¿¸‡?jo>ñ›)?x¾õ?Â)!?¥'ò?q*X?…üÑ?´°C?¶õ?ÏÏë?Ö~à?JfÎ?*Á?­î?µxì?‰?oæ?ñaá@$‚@ñí?ȱÜ?¯I>?o0p?VÌç>îù?Çô?¡lÍ?¤ßÔ@–F@(J‡?£½?mhš?Á×?æÚê?¬âà?m ;?_ó?B‘R?b’?³áŠ?®&D?¼eß?±N$?Íʪ?Éö^?ã ?ì^×?ë‹S?åu>?¾ÿ?‹ë?ÀÑ@J8@ +™??§?®•ð?¶?½™Ñ?³Ã?°(?Š.?j¤ë?Žˆl?¯$!?{bf=ôÝ@>»ÈV?Ë­?Ã1¶?¤ì +?˜÷?“pÇ?—Æ\@™@3ˆ#@"lB@ø@È0?èvŸ?ÙŒz?WQ?%v™@#l@,­ï?õ¦?Ëž?±.~?ŽÌc?¡cË?î1¯?éºl?g°ø?gJ`?§×N?¦*?çã¢?ñ†˜?¥C¥?g)“?ŠcÄ?µC?×CÀ@% +^@')¢?—?£FÃ?{AÇ?] ?ÂOª@Ùs?âë{?£Aô?®z¢@Ý.@çë?÷´Ç?ó+§?ýR@LB?³\?xoô?x¸¾?fEô?w *?Š¢ˆ?f`B?L¯?Mó:?ˆÂ?¨îˆ?¯V€?³˜þ?ýì»@RPð@:˜ ?§Rç?± …?õjê?÷ðo?º ?”±>ü@h?Õt?b²ô?­Š ?­œÈ?­·˜?­Î?Ž-Ÿ?ˆöO?nul?h@­?¹ðÕ?æ¯?Ð?À½ƒ?­ù&?iH +?™»@+$@ ¬B?†›ç?Xg?»‡>÷0?Ý-@Oz@ s¨@Zé?Êô@?.ã?l +?ÒH‚?ìUL?íÓ?âà ?wW?„Ÿ?ø²?éx¿@ ð€?ô,?Üœ]?ó&?±¸?€„á?qÖ¯?r£Ò?ŒÈ?¸Øñ?ÁÞN?ÁÇÁ?Çù;?©vÜ?“Ê·?,æ?–¿¤?Ë&?°'Ð?MÑ\?ž@—@`‡@%GÃ@¯Z@>?º°¢?y+>…G`?"Üz?Ò?D >É>E? v~?-Û +?7x?Á‡W?tcP?DR?¨h8?ªˆ[?9•Ò>ðž‡?²ž?š ?Æfj?¶5Ì?™l†?yeÃ?P —?L•?“–?[Æ?‡ ·?…òl?MÎ>›þ>^Ê>‘ê>{?mU›?Žéð?ƒÅ>?J=÷¿ß@#P?À+þ?PK<áÿŠ?-ëê?S >c7¨<ºJ@vk?’NV?…u?k[™?`(?H?.?,ÿ§?=9_?žq?R€>Ò\Î>¡fH>éŽ=vÒ<Ç…Õ>Iµ;?q‚?rɯ>.œ>H)>V>-Ê>¼8>í·K?5‘a?nÉe?`[õ?Y®?Fè>”>£¿.?qÈÕ?r]Ó?צk?ä92?!¶ù>ô4?ZŽ•?tÙ–?W0Æ??mê?HPº?O¸Ç?!3X>÷!?Ë?9Å?;wÔ?/ +ü?–>ù>>íÑ>©»õ>¯×Ö?5?Þ?ú™? V?ƒZQ?‹¼¤?´q¯?°à@?šF@? '<þ§º?@V?E9š?x¡?}ש?mãÊ?`-Â>Èd>³iÅ>õ[¶>þìO?©µ ?¿oô?ç?ÂD>ïc=N|=¾Pì> +í=Ý=áS\?¶?NDÆ?y?Oœ?3¤™?={?“3Ø?«3¨?ºJ>£ã?9?]sà?U?îõ?›)ž?¹í??3]I>øÅ1?Ó› ?øÌå?•úq?q°·”n?_ÔR?iö?-²Í?‚?« +? 2?¤?¨íÜ>üÓ>±æ€>3™z=ô@??b\?±=>®€ >%?¼®?êÁ?É?ÌŸ=ÐB¦=£ÚŒ?,^?¤W+?Žþ]?†BÚ?Ѽ&?ÑŒ?@ø?>~?‚J¼?o<Ô?]y ?p¨Â?/Ä#?-]B?±A_?¯°*? +‚>ùv=€ÿä> ?¼§‰?±e¸=Dm>Ym?¤c%?œ@è=úzÕ?‚Ò?„J ?,–ë?N<0?¶ž?ÉòU@ ßU@²?‚9u?X‚b>G¡>¨Ø^?\?R?!h%>ô/p=®9–>ä8æ?·¯?‚ÃÇ8`>5Ÿ? †v? Û?\è?)?k-?A3ä?i¤>Üþ->°žå>Ãx>Õ_e?È;?âõ$?ºˆ$?U¸?wø\?48B?©ˆ>³Úö?œS^@j?¸Ã‰?n¶{?”s?¯É®?•Ôƒ?€o±?ƒ;?…‡>êž¹=ì¸>óÐD?23 ?óˆT@<?ë}n?ÇH>âBð>ÝK?’?Š{?¨ ~?Œb?‘¸œ?¸ñÇ?Äbª?Ù;ƒ?âÙ?Ù(Ý?݉û?R;°?'Ea?„RŒ?‡´”?ôZ5@˜=ú’"=˜+?´»Á?´J¦@ñ@ ¤Å?¢°ê?£„Ç?^?ÿ?YäH?UŒg?Wا?lB?³_å@#¢@Ä?ƒc}?ƒhý?ƒlb?”¥n?ÌÏû?Ÿ÷í>p„º>ïÑŽ?ƒ‰%?cäž?Ô?±>?œô?})?¦Y?Äe?9*?DCz?p@ÿ@ÃV@=°%?ÉÁ?Î?:1_?fE?˜KS?¨ð‘?¦Î0?¤¬ª?_–?*Ï?Æ¢ä?ä©k?BýÖ?0?TÀ?hòo?¤¹§?¯Œð?Õ‚*?Ô8@£@¯œ?ÄÚÐ?Áj Ô>©j7?‚¹?™0µ?Æ’m?É"ý?Ø  +?Ì]ü?©S?ž+?„yñ?rlß?Ze+?Ìú>˜j>θ?’c?—Â?Ñh8?k÷?Ÿ,?•ux?Á â?Ų +?Ä +Î>ÙOÃ>-ØF@¾û@fw?€rS?J]%?)åÎ?,å5?„Dš?„“ú?žÏš?·µ_@ª@®¨@¾D?íÐ,>YÁ>xMb>¶÷ÿ? cÒ?‰Ý?¤ã?„éÅ?TŠ¹?í1?AIw?„ñ ?I´??  ?RÜ¿?ˆj£?Ž/v?”kÝ?Ÿu®?¨üo?šÃÝ?•F–?¶Ì§?·Ã?±ûˆ?¶±¹?éi?ìéº?[ú*?G9?BïÃ?NnÂ@@?e?Ææ ?Ì\e?ÇŠU?«›@?H?´??3Á?Š;?¡ÎO?Ɇ˜?ÇOÏ?Ãrî?HÕ?ˆ®Ñ?ýP4? 9>?Hç ?·W¢?ßaƒ?øú£?ÿ U@ @)ƒ·?ã»?ÅnV@”/@ Ö·?º@ø?¯ÁÇ@Ÿ@?þ@-¥«@0)’@&‰@H?¹Â?ojS@*‡@'n.@$é±@˜¨?Ç(/@‰¸@=…e@,w«@û@?÷Ð?Ç a?Ï»?ß8¹?øé@¡?Þ«?ÃQŒ?îà÷?þÞH?Vb?8ïO@RÁ¹@Š*Ï@÷©?µF1?%é>Рf?¨gi?½ó›?Iœw?&]|=²´<óóT@ ¢?ûê´?ÍÎ>?Ôù/@7J?ÿ¨k?ÆE0?Î…?ó¥?Õq°?hL¯?°T¼@,µÔ@$]@Ë@Æ@œð@ÙÐ@çW@#àÏ@O)&@BöS@7n'@#€±@Å@#>?OÃŒ?ËN?¯«?žø?ª±•?Éå?¸ª¹?ÌÚ?¥œn?Å‚Û?½-J?‘«©?“Ñ‹?zÇÑ?^,?æ0¬?÷]@VlX@Xr*?û]P?þ€?ú>Þ?ùÛ<@[°@bÄ1@1ùF@&:®?ø„‚?ÞÅ?ÛÜX?Øêý?‘˜?B¨{?*ã®?!©?°‰œ@+Z@š@,Cï@ù”?ùl?½ ?£Ã?£KO@C°@(k?ŒO”?“§n?¹£ó?ºTú?Ä4w?¸BÑ@2„@3²?‰µ?:…¾?Œ?”™é@ `u@#ïõ?éÛj?¸‚@ àß@-T¦?ï÷Ü?†ž?­ §?í¢ì@ ·×@2áM@(â§@!«@ë?u.?nÐ>=ú +ô@B—@{×?ì€è?ë3ÿ@&^@.ê?ž%Q>óå˜?¿MK@Ío?å?æ™?šûÓ?¹¸r?Éþm@L‰?ûtÁ?Ÿ„?•¹Þ>ÀŠ¯>͉ª?±=?¸_ä@#³Â@1´g@̇?çf¾?{`?OqV?”[T?ÌÄ¿?Ǹn?´Oe?©ÕÌ?™½?¤xG?¹?«ß¡@”@1Ì@H‡¤@Psü@ s?àâ•?sC?ü|?½Š@‘i?Ù\P?0+ó??»³?YRø?K.¡?Kë?RãF?®H‘?²Äa?'¼H>ð4‚?Qú.?…‰´?Pœæ?ÏR?ˆ_?碟?ÄgÄ?g¬J?ˆH0?ã.%?î?ê¸Ë?÷ùU?å]s?ãL¿?¢s?viE?OÙ?h?rÜF?Óʼ?àÇÑ?üÛ8?혂?=Êx?>aá?jØ?„ò?ƒüW?x“ô?Bý¶>ôW?dS?I׫?HÒô?”Àë?œ~ö@%®G@"úº?ŸTH?ioƒ?!àˆ>é<«? …?˜¾?vÛ9@ÛÃ@š–?WV?Nß?¾À©?Üù'?Ñ÷þ?ËG™?Ô²?äg?¶Ü:? •`?R?w™R?iJL@#U)@!Žú?¾øš?¥·?¶>o?µ5Ñ?¬ ú?¤û?®ª@@°—@ü—>`B9=¦_c?Š$Ç?§¢@<[Ú@ug®@ÝÌ?8Ô|?Z@‚?úòÿ?î?û…÷?\¼T?•k?‹S?§e[?·ñ?É[ ?¸WÃ?¢|?ª,?uô,?G;ú?õeÜ@ +«Ô?XV>õ¦º>ý$3?ª‹?‚©@ +;@”Ú?f¤Ó?f·?ü–#@1J?Ñâ€V >÷½b?ßy¨?çÞ?­Ž?§…@š®@‘í@X %@c’½?¹â)?H ?Ýæ¦@@Qx?ßl!?˜O??G»?÷÷?ï–@ N5@h\?ôö`?òi[?íòÜ?ñ5¥?òPl?¨Òù>úQ?Å?a~?HIé?e3?.WN?L +8?tU>Ô×? œl?R%J?‰Ð ?¯)&?gô9?`Q>ŽÜ>%¤?Ë-î@Î@Ñ(?þÄ?$:n>ý¼°=‡";?R?ËZï?¦–? Vé?£Ãð?ï!˜?aÜ? +çÛ?\ê?ö¡>Ä>Lë?3ú?>² ?Ñ8þ?ˆŠî>º%=§­f=é©ð?Ö¤?ÂÌÐ?²è=,W˜=©Ì=žÑ?¼Iâ?.Q +?4 L?‚tÑ?‘R?DC>[Œ>’DA?c]%?dâ?ˆ‹“?‘¦q?$~>ÈØJ>wSÃ÷µ>¸Ù ?#¸/?"?61%?<àò?VŒQ?nÑ!? +¼> ô-?Šl?€z*?@¯»?FWÖ=ѯ•=kÊ€?`AC?oú_?Ö·?åF¤?a&Ç?ïL>ãY>š»*?EL?‡§?A.ƒ>÷Ð#?^óÃ?¯Ú?ƒØÀ>ùm?1ÏS?žâc?¢Á?¡ùÚ?«ß?¶2P?²gÏ?{Zu?qªM?_­?/Ý×?|Só?y¬F>®rà>¤M?£-”?¢±?Ÿqã?œÏ_?^×?jê>~U>œâ>é_Í>þä›?¸oª?Çt{?îÃ?úRð>¡)­>ÁYi>ÞL°?@¹î?Héœ?º?ÆÑB?QˆU?>•??ZÛ?Eæ? ì?£l?žp? ÷§?!‰?%–w?Ê?é‰?yO÷?ˆÝ­>ª¼Ò=©R>Ú—î?b‡?oöV?6[?>©?HD?k“?W?›g³?ªzÓ?‡D>?rU?œZ?£cM?†¨‚?ŒZ>äç…>¥vo>õ +6?¢?F~0?Y +?ç=P?øU&@@ À0?Œc?yØb?g +?\6J?¾°¬?ÂÀõ?ÂÇ?ÂÉÅ?ƒú½?‹ ì?Ño?Œ\?âî¡?àžñ>_—¦>m„?ú…?ƒS(?”07?"v?³X?áp?e? B?$? Sê?¾UO?°H?‚ê?‡Ð”?¡?”(q?dVb?‘Æ°@eY?þjC?©Ã[?—_†?>žU?a†Ö? W—?‡œ?8¨?n¶?+º°?7Ñ?dc¡?RQ]? l? }§>é©À>«o=2Z?ͱ?½W.?¸¹8?´²?‰ j?í?”è?c?™ûh@üG?œï >œQ»??}S2?' U>o“ü?¸–?R4²?Íq>¦Ê ?žF@Œg?Ÿ®?%'>“€)=hˆê>šÃE>ú4æ@9ƒ@?Z>?Óˆ¨?jÒ?Áˆ?ã;?zò½?=\Ž?•¦Å?«D#?¬šO?¢©Ÿ?VQÍ?=3?EÖ?BdF?Í]®?êiE?ËAô?Ä]d?ž1L?•md?3:ª?Î?®iÎ?ºÙ?Ä ?Ä­>W=·°?úµv?öu—@­@yD@ˆ”@ŽO?µ©¥?®³¯?ƒ:ª?ˆåž?­Ë?úí>¼Ü/@ð ?ýÚÉ?¼½å?±Ðð?›½s?¦×?¹¯T?š¶P?g¨ï?ˆ9Ó?¥z%?ª±â?¾[>?Š1U>üU? Á?£[?™íJ?óp +?™±¦?ž€?‰žˆ?À×i?•ŠÖ?``ó?‰ ?•æÐ@Æ.@q×@ ÇO@S.?§å}?‹­À@(@S8?Zç¾?1?CAë?E[??â¿>ªtN?Wlk?:¸p>Æ[X>¢˜d>&Ì(>ÊÈ?Ìh?e¡‡?°`?ƒWu?n‚?"ÚÄ?Pn[?wºw?Š3%?šÊ¦?«÷?‚q'?BY1?ÎCU@ ++Ë?Oº?pB>AÐK<©_?JYË?†ôí?|y?o±?Éú‚?Ü¿Ÿ?î&G?ëAQ?dC?I?±šõ?ª’Y?"p„??§¯@¬™@\8@"Â@öÅ?ç\w?/Ç?“è?aJi?é.?K|u?‹e{?‡7p?„ï‹?ª¼+?Ä«á?›Í…?„õÝ?„÷È?„ùÇ?;´—?$+4?äf!@üŒ?¾õ?¯TD@ho@â?Šäµ?…J?…±?‰™˜?ÓM(?Âøµ>­Àò? "=?´½z?œ]m???J?B(ò?u`œ?»·'?ò¤Z@#Ø™?ó£ ?ˆ^?Ü@é?Ô„ë?œõ?‡ E?i\ž?oÀg?€F¾?ôc9@fW?ýq??ùÒ¶?ë§R?èéw@") @*Á?ÞB‘?͹õ@ s@ý|?ÙË?ÜÖâ@ß@ 2À?—?Ê0Þ@^×$@E¸—?˵N?·µž?‰T[?ãÔ@Gk@/GÀ@ UO@ÂÆ@,”‘@ ’ˆ?Ý[Ò?ÜÆË?á@,?«-E?„—^@ ‰å@78y?ºÑ?SV¢@Ñ¥@:ìÌ?º(‚?„t@è@&«4?›ì…?„`²@g@Õ@è@Þj?ÈÇ3?Õ^@<@?@¬zÅ?ň?ì?´¥.?¦QØ?÷6?ýL?‰*Ô?k Y?ø.Í@ƒ@.Xó@3¦Æ@'Õß@+Ð_?·‹a?©Ä¿?¾ÖB?¾­A?ƒÃ’?™Ô`@#kj@ÁŠ?s¢–?…C?÷ʼn?ÿâ @#/Ý@(ƒ@Cº½@)nƒ?Ùj?%|?‚\?‰lÓ?¦ÃF?Åè“@Ʊ?ûù:?(×{?¤à@M£³@FáÕ@/Ï@ %ç?Ø/‰?ò(@"8Å@—\?†o?¼ö@2U@ +>@;}´@l?¯©?­;?ªÓ…?¾´ü?渰?äK;?áÖ:?Üâ4?Ò7û?±? ?>ô? ^?£íã?Õ…Ø@þ@‡å@ˆ2@q)?¾€>?ÀË?ÁT­?®:¡?L§?sm)?é?ŒÝ>@¨œ?òC?Ö³ž?æRñ@ƒJ?ýÕ ?þ»?ð»Á?ÀŠ?É»j?å¡U@&„@.~Ê@dú?€#•?r1F??"ß?’@†±@Ïd?1t? ;?ä3?*3’?†2?ˆó?­ñÛ?§ˆ??–2d?‹²>ÿ Q?¿?~á3?ˆu?Í‚?à +ý?ª$ ?¶Þæ@/(°@.ñ8?¾°_?¾å•?ó`Ê?ø|?ýëá@Qé@6å@6WW@w}‹@uÉÿ@{ðŽ@xWy@â;?ý=œ?Ö5à?Õ\@ Ú@,¦4?àzt?Ä©É?ÁôÑ?µêë?„#?b½?†Ýä?Úb@YE@SÛ°@QÞ?À#?µ‹½?£…?HÏ->§º?_å™?ÁBP?ã›?ÕEÁ?λ™?¼XÏ?¢Ù?Dð1?ƒÔ?Õ‡?Ñ|¥@ °š@ Ûs?»€³?´8þ@˜@Ý?ùõ¾?ùÿ~?2’ÿ?5g?éõá@:D?ЭE?Ïwm?ÓÃ?ÕPÈ?ïÏË?ù ?Ñ/?¯cÊ? -™?%=?Œ8«?‰Gñ?Ô?‘ÆK?ÓÒ@3p?÷<Ï?nÓ¸?© ?°2 ?ºAð?©o¤?£ïì?‘óÀ?•fL?®AN?º ›@9SÎ@?^ó@Ÿ@à˜@ 2µ@ +Ì@G ®@e²™@ rœ?·èÕ?w³)?2KX?í0‘@:‡@,O#@Ÿm@µ?Ì¥?Õ4¨?·õ+?³j8?“0?ŽÕy?Eµ?8õÔ?²KX?·f'?•®>ôPÛ?Z ?‡&¬? lh?£«ß?™?è?™Õ×?„Î)?F®?`'Î?“?"?¹÷§@ %ë@Í@?ÌÙ(?ͪÞ>Ç')>’¥´?èDù?ôÛÀ@CT@=ã?»O=?üŒ?¹®0?Ï8Ò?ÒŒn?Ù„?½»f?—ðx?‹sÈ?5?UÑP@I@!O?Þ´6?䌻@*°š@4{D@ô…?ïÜ„?Òþ?µCÉ?Êù?ô"#?è«÷?¸ö¿?§ñz?šô3?”ï>ª`>¸€?«6ô?²À2?:þ#>ñ´d>ún?Ø?»÷@ Hu?éÖ?¸­Ø?³ö™?pIõ?U—è?lé ?lË£?7×?$µê?q-?}?&Ò¯>÷É9?… +€?̬Ô?½n…?°¸Z?ºln?üÞ@I?‹ G?yFj>Ðí=äu³?_û‹?©då@ g @JÞ@+ ?§”?©f‹?ÉPZ?Á^?ì;Ò@ª?¢›?<±L?^>é5?}ÒO?ÜS?¨3¦=MP >Dw¥>Ÿ¬>U†Y@"¥…@'Ù=?×ä˜?®"1?›ÀÇ?ˆ*?}ɲ?gÒ ?†rÑ?ë1?æ…)?+7ö?Iç ?ýp@ Kƒ?·žè?†Š$?¾Ñ?·Ç%?¸r?ž-¯?¢¡’?Ú*5?âÔî?·òS?¬ö8@D@…g,@#æ¬>‡E:>ú‚æ?¼qú?Ì:Ö?ƒS?}?É}¹?᛫?vq‹? NçáZ>çýß?¿ž?ßx|?¡1?i^Ï?a¸?RÜŒ?H}¢?>þ?RC7?¯=¾?¯Ø)?¿*?¹Òæ@òã@ªX?ðÎ?ÕùÆ?‹V\?LÛ[?ª'S?Þ®?©©?O%w?Gn:>ûÏC? ?ç|ª?â½?Ø}?ä +@:ß—@F+Û?æSt?ÌØe?g©K>ÿ}?^ Š? $?Ÿ ì?ŸÊ?øãà@5-ì@ +m¿?žvý?³—a?»d?Óà‰?÷îs?àu²?Ž1?ÊVB?¢²?lÜõ?°?2;Í?zñ?U˜?°ÃQ?iZK>Õó?(“—?‚¶??h?ŠI?K?`ê?6²t?8}-?¿ À?诀@'Žu@6àJ?’ñÒ?€X >ûlÃ>Ôâè>ðö??À?òG?1ùŽ?rÈD?0\í? %b=„•+>A­¥? ¼°>¦è=>YÁƒ>[?Ê_?CY°?Úþ?€›ý>fÆ3=‰™>!åš?Ò“_?i÷Á>Ì Ù;†ém?ˆ× ? H?¥N7?A6÷?;ÃD?‘•K?¨=à?p<Ÿ>áèç>øÔ?8Tr?>¶T?`ù? î>‰´J=êï6>!v>î²Ä>ð0’?(à?'N`>êä >ë“?cW?l«è?3÷Ã?(?Të +?nÜë?<É>ÒÂÁ?}Ø”?_·=Ãi}>ªÖ?¿P?z|Ô= •= ?!?)Xñ?†>õ¨Ü>=§?óH?` ?09Â>÷ד?YpŸ?¬v?…èŽ>ùŸ?Å?[b>îs—> +=W>Oš¤? >Ó³Ä=*,>*>ûÞ±?s?à™T?ÐñŒ>üÈ2? ‚Ó?ä(;?àÃß?q? U|>y9K>DÃ>¡F.>²ß>ûª>þæÞ?î›ä?ÿ8?‘¤¯?‚*?· ô?·d-?ç7?ç^*>Åie>ZYÎ?Žgñ?¦\Ì?Eí?1>þ>ï=F>î+}?m8F?ulú?ž1§?©,§?‡ÉÅ?€ÒÂ?K?6?žRÛ?±*?ñ®3?ÿ3Q?“Kþ?} ?ˆ?Æ2?sq[?Ex?ZE?V>>øX›? ÃA?2ˤ?:NÑ?|ø?}¤?›Žf?›£Ú?0(û?/A>È5‰>ÃSo>¦¡|>ƒRú?ƒ·0?‡žè?‹¶C?„Ù‘?¾Ìþ?¾/Ÿ?º/?¶ü?1$^?? ¸?òÉ;?îÐ?—‘?’1§?EØ?Œ¶,?ä"°?àb?²sÔ?¢Ç;?Tñ?iä™?Âûh?¼2?‚Ü?tD­?>?f®?U?r_?œP?Ù„? ö?åE?-5?Eõ­?‚Ü?›‚Ú?ÿü²?ãñh?f-?g‡Õ?HÝf?T[C?†Ù?ldu?5k?6ȧ?—yÜ?†¡?D€%?A>?T÷Ö?‡>·º?iã?S? ’?E®µ?‰†é?šº ?«ï?§W›?¢À¿?´ +/?Öv¨?»ýò?oS?)Ñ@>qkÁ?gÿ ?»/x?lν?} ?0^?Z=.?®ó’?ãY¹?«äG?‚>?)iH>åâ’>.ô>¬¾?Z?e¸É?‚ª›?¶'”?ÎÅÈ?…ÿ&?H;>Ë¡T>sÔ?€p?A6y?Q)?Lg”?yà ?‚× ?[¦[?a]?åÐZ?óYG?É,ù?Ð+ ?Û×ð@à$@®£?÷Ý*?ç~ê?ƒ9u?Dm?Äå ?·x?cüõ?‚@÷?úâÖ?ém‹?ÙŸ÷?¬(?ê.@<Êž@¹ò>Å×L?ŠæÝ@y?êüš?‹,å?'¥=ßW?§ä?÷Q?†Q}?ªÌ?2æ=¥p?Ž€†?ê9l?åíÄ?á¨)?ë,ü?ð_ô?Ï|«?ËÜ6?õ€h@Ñ\?ºU ?›<†?ö:@¥^?dØs?.Z»?–ï¬?¤H5?Ãç‡?Æ}?Æ#s?ÆVÌ?£í?•£¢?£Ä?Oº?Ã?†?¿¥µ?°W`?·#«?ñMª?¼¦õ=þrç>™I´?7ë6?/d ?&Û`?N C?˜r¥?±Ÿ?Æö?t:^>•B?wWÒ?ׯ™?ÿÝ×@¶q?Õ€?¦˜€?þ‚ª@ßÑ?½ñÖ?„œÉ?8 ¬?ìC?¨Š?Å\%?¿Ø?„¯?‹Å?Žà²@.è@»|?æ¯? dÕ?Ç%?»j>Èà·?Óó?Ç6Ú?Ó©a@`ƒ?î<½?¡X‡?Ìi@"õ:@Ô3?ÇQu?¹Öˆ?§÷È?{ Ï?éÍ?ƒÇW?Çdž?¨<½?Š°œ?>vM? E¨?˜–|?Á? Î3>*½?‰•˜?©¤|?÷!â@ý2?÷„Œ?òƒ(@ïO@ÿ|?¬FQ?¥RÑ?I^Ð?R¸ó?…+?{ +Ô?€#?#ë??˜v?îO?Y?eš¶?é`ÿ?·ñY?O>?Fƒ9?„ÿ?…Kh?„ý_?[TÍ?<ýY?nš ?„ú?‰>yÉ?š¨?Î(¦?×üx?ߤí?sPO?>¯?˜ÄN?¥Ä`?ÿ µ@å´@ +“/@ . ?Ê-»?Ê)€@)ÇÁ@Ë»?½\B?¾b„?ö ?ìÖ¤?¼I]@£6@¤jj@…Z†@Ù¢?ñ‚œ?ßÙ¡?Æ×í?å‚?öl“@.QŽ@Ò°?¯<Ä?¾?Æìp?ûdr@ +Úø?óÈô?ë°¥?Šû/?;•?†I‚?˜vi?ª†?©ô0@z» +@Ë/?Ô÷?¢Iç?…ÞÄ?„W‘?¾²l?Ä4?Æmy?Ç]j?Ø¥ã?Ì_¯?ˆ?WÄU?Ý£s?Ï]?Qt?¢È@'´™@ +ø˜?t¸î?¢§³?è.@”@‡[@&?œ_¶@›ž@v”@)Y?¦ƒ?ÚÍ\@¿Æ@m$@ +Nî?ÁÏK?‡ìË?¯¶$?ÎJÚ@37Ù@Sˆv@Q]_@N.?áÜT?¤Lx?j¢>²û/?–—é?¶4ß?Ã?Äâ¸@p>@‰?´d°?…Œ@ ŠR@3?áÀ?ã—?”©H?W@TÖí@Tß–?‚ÜÈ?ƒ’J?ŠA»?‘0[@#n@ž±?ôÓo?ÿ–@7 õ@C›ß@^A@…àú@YSÛ@=#Ÿ?‚jZ?v¨!?@ïu?8$½?œà?zP@†Ž?ÿ¼¥?©üÎ?ºÍ?ôî±?Ó:‘?nê?Ób@Z›@KM @!Ä/@Ö?Îm?l Û?Gýè?””Æ?êüÇ?¯Ç>Úp?8*~?˜x°?èÔ(@9 @/Ns@!ªà@%©”@/eð@á?®§8?Ùö@ö@ Ú@2/?ôY/?¹G ?§Ž?„eÇ?‚`¤?‚É1?®ÎÝ?ô!?°WS?¼È?gAß?ÑsR?½3Ì?•ê?’ôT?ŽÞ«?ŽB–?€r/?ŸV?ܼ ?¹YÍ?]=à?…âm?É’Š?ÅÙƒ?¨†?ÅÅÃ@‘.@²m?ÿö§?ßuº?{¥Ê?‰>?±=?®Æ)?³‰? “§?D<?V ¨?1”?Ž+?Ñê?¹\µ?@|?x&@6&@{¥?©±?©l ?î_Ç?îÇñ?¾³a?½Þn?„Ð?‚2o?¿'®?ÀÌÓ?Ìôà?Õ â@?â@¾Ó@Ëq@Q?àUg?Õ&¢?¬¥’?¡UK@ûM@oœ?Àâ”?‘/˜@e@:1µ?ëJ?Ø+?ÈW·?ëíÙ?Vó?=´ ?±$0@”Y?ô÷”?¼ÖÔ?¬L'?“ª¯?•l?£ïA?‘]‰?_ÒT?£É¬?ýí?í“Å?Lj?îGk@OI‘@<öƒ?«ÁÆ?ÍÁÙ@U5—@TT?¶¡ó?·ðT?}4¬?„(¾?ã‘™?ÞAì?½òC?»? ?Ñý¼?ÐŒA?¾³h?ºúM? n?¿ô?dlj?-ë†?¹þ?ójØ?ó Y?ïé@N¹@ïÞ@>É9@t_Ì@`ˆ«@1T@ëŠ?ã=a?é[Ç@ +…@I7?£Ž¹?ŸN«?Á?w ?ùTH@ƒî?å%Ý?ãö§@««@QD?ú ?Óô¢?–Úº?v€?0ôé>ö Û?ØC^@>(@<\@8<²@' +²?øþH?ÐÜ?rž?ƒ6÷?ž¶ã? Å’?’?˜6%?¶6?·`w?Ptî?¤›?šîL?³Ê×?‘Có?ƒ”®?~=Ð?sª_?s†?sv¬?y¤?ys,?²„?Ù?Ýe?Ø Á?ÊòÙ@«*@Sþ@œ@(»@/“G@3„ @6?Ü…™?ËÐQ?ÆyÀ@¥²@Ac\@z>ñë>ÿ·?ä4?ø?Ô}W?ÍŒì?Š¤7?ƒ¢Á@ 7“@•w?„iR?'\?™>p?Â~à?Ð~þ?Ù©•?ÐÕû?Í·Ì?¶K¡?ÚÖ?hŽ>hµ=Õèù?—’d?¦Dq@ ´‰@0x?¾ +]?^)B?Õt©@è@ê?åÝm?ö¦@#,#@Èž?£1²?›Åh?¡É•?¦#?ÝEý?ìKÚ?ëO÷?âL?ù×E@¥?ÞL×?>ßô?mã?Ñ‘p?ͨ?¸ŸÅ?¿ðt?'R>êÖ?Bå?j•°?gú¦?vÓ4?†c%?|Ú?{F?Y ?q@ ×@þz?Ç‚¹?§¿)?R ?b?$—?Q˜?%3„>u?Ác­?±Å?ÿ3[@2…?ç„?Éî]?¹ý?­üY?­R`? ¬"?¦y@ ñR@)Ó?hÌY?Tûò?œ7‚?ºb¡?%?qÙÌ?y¢f?ŠxÐ?ŒöÞ?žlp?‘cü?„Jn?níA?Îò›?ßÇ~@ "Q@DU9@[g?5t¢?]hð?²v ?›¢ú?Ž`(?—e%?t`?fCú?”‹ê?Ÿ/?Ð÷~@K@ +&à?¬«?¦<>¸×>’—_?§ïH?ËŒã?û :@ã?ç† ?¬Ò)?˜ù?@¶.?B ?d†?‹[?»é?»“­?€3!?]Òª>Ô²b=Zè>»ÆŽ?gc.?Š!?à ?DZ??`†x?¢+?®5ú@ C@+ +?Þ&Î?hêðúÍ?Âù?ïÚ?yùt?®?¢ö?Û+Œ?·dP?ŸlD?’§þ?Wl?³LÊ@:Ž@×?ƪ§?®=c?y!t?·ž@Á„?ä(;?gJ‰?JCG?€?‹*l?îð?ÂßQ?„ëŽ?•?ã?üÓ?®¥i?ˆ±?¨J¦?¶ÎL?•C?ƒEƒ?ÒŽÜ?ä>5?ð½{?û!&?ÁM¨?·d?›h>Åoù>ªÊŽ?Thà?_]?DG?m-R?‰Jý>û,>½ã›>GwX>„õ8>fœƒ?3®Ü?ƒ–@³?ÿô¢?žÍ?.‚†>W@˜?ðˆ?»B?XÑ™>P…s>;¢0@7½>>l®T>Éž>ã!µ? ¶Ñ?ߣ>áúÉ>Îk>Ž'ª>š)Ÿ?/?`†?]@†?XÈ„?_0-?ež?fnZ?aI9??›b= i£=Ï 0?œ@T?žºK>Âsë>Ep«?:ÿ?4–º>ýDÈ>‘êÀ>­>Ó>3_¯>ÁOK?:¤?¶ì?µZ¦?qÄ?k¨5=å/={-?;\?ZwH>ö\~>©ä?Ð?DéÆ?fEd?xBw?4z‹>ø{f>øÐ,>ù?+¼x?yµÏ?€—…?…ØE?‘Hý?¹?‘Œ¼<Sø=‚¿×>–ùU?Ëq?Ér?–Þc?’r§?°r½?²XÛ?;Èþ?@Ó€>þ.>ÿºý?üv>ç3 >úk]>þÝ‹?ˇ†?Ý›?ÌúŠ?Å’µ?‡¥?‚…I?Š1n?—?]ܾ?J›ß?§Ò?­šb?˜ ?=„>î>ŠçÝ?iN?†Í?‚M?€¶)?€ÀÐ?€Îƒ?«&é?³«"?~ÉM?UOÙ?¶0H?Á‘/>1g÷=»,>êå,?/Ä>C°ÿ>Jr$?—‘Q?žUè?†¼a?zRF?ŒØË?‰ï7?B‡/?Cá^?…é(?bÌ?u·?UÙr<¨rÓ?¡¦¨?«ÚJ?°æ~?¶-ö@ì@/? Š?-¬?ïÏ?àí{=¸µÖ=öN‘?ÿ(?!@£?—IÆ?–«?kVT?y­u?žÊ?³@…@›8>¤:>û].?Âó~?ÁÉ?¬£Ž?•´C?º?'Ïí?µS ?¥É? +‡?ß?û?·±?o§›?XŒÚ? (Ì?\×?Ã/é? Ø^?!Ü?'O?<©X?.·‹?+Š?-Õ?/&?(k?‚ç?ªlÖ?ås|?™þ +>FG£>ž=w¶>Œ˜¸?âß?rŒŽ?¿^Ì?¼ÚÖÍ°=† +m=C÷¢<÷òˆ>¼D?×»?^fq?‚¤Ð?±õ¦?Ä’?“K?‚´ö?Q‚?9 ¤>Ôõ¹>§??cuT?‚Ën? L?£Â®?L X?+?µh?ÎÎF?Æß;?Ä`î?*¾?ó`@JOŽ@Tô?~,ö?xâÏ?u>?tež;ž;U=®B?§?V >¾ˆu?–½?Ò«|?ÁB}?'Ê?SÈ#?ÄÞÊÜh?¿€?mÚL?ü)?´Òn?¹-¢?½†Ò?Ã&?Äd³?Â?ô?À ?ÕèÕ?à«s?õ_@»ª?ÈW?¨f?éÊ¥@Î?µwO?ã;?îMš@˜{?º¾æ?¬£´@3@–N?Ç y?¯¤÷?;¥L?'±?“¢L?žWW?¯Ô?ºJ@V"6@]xø@g@h£ç=eÞ•>€üL?Šæï?ŽÜ ?š.©?‘ž ?K œ1?ºÙ?„Z/?‰¬?ŽjÖ?+t?¡Î ?U>k>l¤Ý?Yîú?·É@ú’@%£§?ÁÓ¢?G²ˆ?£î?ÆØz?˜€?„–7?±¿Ã?Âîû?>ç}? û@]ü@y±@ Õ?ön@„@µe?Úa,?ÐWÐ?˜çø?”Ø>?'ÓÌ?B1+?Ç0Ø?Ìcî?çÂ?ÔÔ¿?Œè¤?™AJ?®_°?°†(?²¨þ?µy?%œÈ?§?åE?†Cw?Ç^?æÑ @]y?Þ'?Äã@!ž@>én?çM@?©–p?VÂZ?=Þµ?íyÄ@ø?¸ë—?²Œµ?Ëi?“²‰?0kÂ?GÅ5?Æz˜?»/6?¡´4?¥® ?Ç|X?Ç|M?Ç}ª?©Rf?$± ?( ?31ë?‰Âþ?Ý>F?²ÜÙ?‚"@ @CmJ?¶n‹=J-?”«Æ?ô«?rnS>Î.“@â-@KÊ?ÙJ‘?œvÂ?)ÆG?èï?š0Z?§-ó@C-@"ÙF?±z}?®]u@á[@ ¿w@ciM@_Ê@":ì@vÌ?t©õ?l¾³?5Ì?“Ûg@#EÔ@Q?@¾?ÃÌi?#ð?Èp@//h@˜÷@ Ëq?šúl>¥ã?¶\»@ À@$æ@4d€?þé]?Ūã?•æÚ?„‚?rÑ×?c©“@"`@!‹ÿ@?ñÛ@I¨»@èX@…±?œà_?¼x? ã?jh@ï‚?ÿõ†?ÆWÌ?»©I?`ùõ?ž8@Cœ@‘?ë?Ré²?Ý0’?ÈQŸ?Žü ?§DÛ?ãÐj?ÎÿI?¡€i?Æ,È?ø ½@ß(@|“?Án¢?$*g?ÇÉû@Rx@7‚b@Pbq@#¤ì@f¬?A¨ö=`à¤?–´9?à›’@æ×@/¦§?•¼M?# ª?´I]?ÉÅI?ÕJ3?Ôó›?ÆÙî?ÄÚU@BÀ¦@XØÇ?œï¾?oë\@"¥@ 1i?Ähf?¹Aå?òÍ ?ì¾?ï[#??xc!?‘¬S@aÂü@UXO?ŒÜ?žÕÌ@¬F?ùå±?³¯M?ÅëÀ@À“@ Ë*@ Í@ßj?©†`?’ ‡?Y5?¹~?2Þ?gO_?àì;?äÙ}?ÛS?Î)ö?£ ?‘Š?.|1?ƒN?÷¶?úœÔ?þŠš@ ‹š@øÔ@áb?²)?Çi?ö`å?ã6æ?¼„S?±ê_?«âö?ô8Ÿ@<ñ`@,óP@Ü^@ <º?÷ׄ?ï\‰?ÔŠ@`?@Jò4@@æ@4ý@ L$?‰Êˆ?ŸÔ9?ÅYœ@ýl@>…@FŠI@Xh@Šn=±â>òí?œV?œƒ`?¬Ÿ?½«"?ÚX‘?ÁâÁ?¢y?Àƒx@["?ë£.?Ài?¸\!?Ó\?ǧ¹@ &v@³¥?ˆØ?¦¶6?ü&$?þh?ü„ý?ø¨N?øÿ°@X³@q?én >¨º>žªé?/ï?~'¡?†?ò?~Ó ?„–_?ÓwÉ?çç†@°@Ûˆ?ã¦?¥ó?Éý ?Ç‹®?Ê×ë?Å¢Ç@Â@¦«@RÁ/@O”½@5â,@1¼;@w˜@ ¹6?ÉWh?½è?ž\§?š¦ã?Ñ ?Ûƒë@ U‚@1Iö@9@#@Bü(@V<@`²©@çO?–?ÕÀ/?òµÔ@2lG@YÛx@O?¼Ò’?dˆ`> “?J”Î?©ÂG?Ž„@?JÀ?xõv?µ§›?ìá@.n‡@ „E?äÂy?Òøc?z—”?p+F?(¿œ?(Dù?‡¸?€Gï?‡ ?¬S?õKq?ùÏÚ@œ»@ lY?ý´ž?ùx!?Ç’u?ºó3?o²?9Þž?> ¡?G,?äB'@Þ+@.Ü@>Óe@:Pr@2À9@)•?¶Á?èy@++@<£?<í?˜ê?«ð?ÅY•@² @ò?'$ž?8ñ]@ÿÕ@ö@Kê@ ñ?¯‡?•%5@+úŒ@P½‰?ß®Ó?v7É?›WD?­Ã¾@Í@8_G@{:?ÁT?Í•Z?ÙÙG?Åy¾?9N^?D¿¢?“˜„?‘¶S?›PÖ?‹‘„?Á1°?À¿ò@&?C@4/1?àþx?·V? Û>œÆ?VM­?¦±?Éç7?ìêk?Ó¯Ÿ?¶iÁ? p©?T'n?“@%NY@+{µ@ @Óä>l˜=Wë?Ë??ú@­?©ø&?ŽdÊ?aF?>qq?šJ¾?å Ÿ?³+Þ>ñ?¯?‡Sò?›-Õ?ýI´@˜±?ÞqL?å1ð@Œ@??nxj>ïØÑ?¤¦ ?à¢p@^*@0ˆª@“ª?Ô"Ã?®L"?¼å?âz?:-?+Êã? R/?¥@»¨@2i?Åz?m×ô?cÔ—?qj¥?¥\æ?ß0&@*@2ë@,ߧ?ª¶Ã?µ¬a?¿6?­¡?ì)±?öÕõ?£òó?zŒt? v¼?Dz?ºs¬?‹mª?‰Kf?ªø?±šG?l¦??k ì?& ó?Uú’!<ÏM>óó?¦43?Çrº@BH½@2oƒ@ºS@ WÐ@Íi@ï?Ár©?ü"?"?>pý?(ÿ?ßêœ?Å1.?2D°?J?ËÉ ?ѽo?Êê9?Ìçò?½ÄN?­õH?åÊÛ@(‡º@cm?¯õï?°Œ×?Ä?V?ñ$'@Õ¶?½,‰?Žb^?’¥q?–æ?¨³¶?é×.?ûqz@ ¹ò@˜Õ?Wä"? Kø?À×Ä@’ç?­æ±>É–è?l”@!_@þ? ?!?oF~?l¤f?˜J?¬©¿?Ú-@‚ù?áâ{?[*â?r§›?ŸŠf?–,ý? ñ>æMæ>3Ó =oð?;&?¬Ï¯?¿´N?äâÛ?Ùˆ?åa|?Û®e?ÃýX?˾?iºÿ? “Ì?lÚ?MK?–üü?ž# ?©•Z?ú<Ø@Y›?¥!&?´—Ú?§,£? àE?O!6?hò>?[{‹?:»?F4'?—(¥?Ÿq!?÷x-?òOõ?/Æ>òn?ÿå?(õö@3@TÊ!@1ÐJ?øö˜?úRª@ Í}?ùíj?j­ó?x~á? €z?•Ñ[@=®s@@äî@`;?øÆ?6ò´>ñë?ê&>@d©@ Ÿs?ù·†@ +@ g¤?Âpû¿!?‡FJ?óBd?¯·Ê?ejþ?&ð?Ÿ J?€$I?&ì•?w; ?³©É? ˆ>?tà>Š¤ã>µ£t?Yt?–øÎ?ÃÍw?Çan?…8?…÷;?}§N?dÌÅ?12?Zå?¿?Œ¯?Áôp>¯Bæ=›T?8?AõS>!§>°eX?5~?e½?¥Ô?Eņ?‘r£?C•æ>¢.›=j/Ù>ÑÐB@=@k?׎@ÕÛ?r‘t?bDÖ>ÉqÈ>€ñ_?of?[Úõ?51>¨íÏ>“¹?›ÖU?Ÿ¬8?å÷>Ë[)?Ì?y€? vá?iÄ.?R³‰>Â?(>µŒÙ>¾]`>ãV¯?¤å? +žj>œ#b>uŽI?1—?;9?4k#??s«? µŠ=Àøƒ>†yS?¢ÿÑ?¥a3>ô ÿ>ü¶>âT>Õb >L4¤>Yþf?yh£?’^?€¹Ï?w. ?ŒÿÓ?šË¡?S(Ê>ø€R?%Ì?$n*?6æ?] h?„($?ª4ú?œ_‚?n'e?5ü)>Lô?[‡ç?\¤è?‹Ó¢?‡°µ?KV!?[Á?}1‹?r]L>ý›>ýÍù>ýÿ?Îh?’zõ?—¡Ä? Ô?<õ>7±Ü> $@þê@[é@[™è@Yº?ÄúÞ?¸6_?‚Ú›?€)T?éÊU?í÷æ?e·F?`.y?OOó?FnÒ?G?œ?Dé¤?P=?Uçz?[>ö?kÓ?€ã+@Õ @'Lr?¼-ú?· à?•¢>úHy=ƒoÕ=eyL?›¢ï?œ×§?AEÙ?GN,>ø=‘?Ör@}á@x¥?Š"“?€s >‘•º>˜K ?øx@&>'«X> l?:-=?.ÌÁ?¨U?hL?Ž, +?‰aB?À¥?¸Yë?Ž"?”òˆ?¡8å?™Ð„?’l~?Ž<?­¹U?­‡?µÜñ?¥ep?F?côv?æ¡ ?ÎÒ>ÂÀÅ>ó¢†?›ôå?®¥?û°?ãø=?ªd>÷¨7=ðõ>. ?·Õ?*—?z7?Är-@K'„@ }†?gw??]>ç¹)?ä®?T+?77Õ?%×?EKZ?ŸÝô?`ÚO>˜ÂR>ŠÞ¨>1În?b4ñ@rË?Ü‹÷?‚㇈?“|@w@-Uy@`ï÷@ós?ˆu¾?Víˆ?ÛÀ?DC›?}:Š?LL¢?ž?>Ô{«>D>?("¦?‚k%?¦a_?ÅÃ×?z‘U?ßo?!÷Ã?+ v?«ï?ƒ´?WC?‚‹?ù>áe°>üEg?— ?™þ|?ÁÐ^?K6? ßÊ?¥`Ÿ?Ä*?ä/?éG£?–·G?‚¼[?–TŸ?–(\?¦áë?¨¾?Àã?Ä:S?üÿ?þu*?p”7?EZM?§Û¦?°??‹ñª?€Ýž?õß¼?øg>á ¦>ä©“=è”S>"y_?Êœ?¸?}h?[)®>“Ñ}?ù û?è¦Ü?¡w@?›Þl?™Jó?*Ï?Q¹Â?`ëÛ?‡h.?©Ëì@Y“?Æ¿Ç?aô?‡ã•@kå?ôð;?Ö¸ù?£¬}?8L=?/¨J?' D?!?”?…DÉ?ÅE?¢™{?ˆa?ŽÍ9?•Å­@¼@8;¥?Ò¼_?ƒÄ*?¿£?Û¯™?̱?ÅÂœ@$Ap@6‚³?•AÒ?Bb? –'?ó_?ñ°d@üS?žá?„K?¶&>Ýøk?F?Ç]?„?|U$?'›?ò%?€µ?ˆÈ?ÀOŽ?±©/?„@é?¼E@)Dy@Ò?½0Å?Ã…”?Úk?°–?r "?l9 ?Oà?DÀ?@ñ˜?¹ +@z?ø„µ?ô_æ?ÂbÚ?£ã×?¼?Æ×?Hk?wS¶?{ ]?è-?¾ê?Ç™?F(%?DJÝ?1 é?9ŽÎ?FbT?S4Ø?`3?u”®?³¡¼?§"–?4I?\H?Ç0ü?©ì?2k?;t?›ò·?¢ï?¸I?³ÀQ?¯}‰?«>?¦ø3?jK ?ä[?ƒQU?¾Ü¶?¡X¹?‰(Ž?7w?íë?aÆ?6ÜÁ?+¥)?*? ÷c?ö\?•ˆ7?¨Ÿr?=ùŒ?1/*?RÎ?ÅY?×õ?!Ä}?çm‡?âJ?Œ±V?žêp?à™Z?Ô;è?²«À?±–?¦ G? ªÚ?¢Æ>?ú@?‰I?õ…”?ú?£º²@AF@2?ó_Z?Û2ý?ÑdE?—ÀR?mhÛ?»é?áºP@È4@Üq?©A^?‘ ?ŸeÐ?¤f5?ÆÝA?ÖÚ?X'‘?XXë?œÿ"? G?âñ?ÐÑN?ÔM?;??1_Ž?„ÝÚ@øõ@à ?„Ã@?ÝË@DŒp@K @S‰@2&ú@ï@$öÁ@7b”?õÉ'?‹ß?ù®‰@%À@?Ú›å@%ñ@%Çq@€@ +_1?Á5¦?®AÛ@3Pc@I¨Á?ÑÏG?¶ìÝ?Òû ?È ˜@ ³§@ +•ó?’Y™?;¡@eÜÌ@SÞ~?‰?£&P@nú@ +’?È2¿?Þîà@N?ÓsÖ?]à?€‚?žä ?–°Õ?ƒøé?‘AJ?§§•?¿ ™?â¢9@&ì@0p-?û²J?”œ‡@^@`WÇ@vÁÜ@†X@@d`„@G#)@/¹G@ -²?é"Ž?ÅEï?ÑÔ½?Ú–i@l½@à?àaâ?غ7@D½@H@ È@U¯?Í|?ÄÇm?û—•?üO ?Ǥj?Ęý@‡Ó@h@+³Á@-s€?¦oÌ?œ ?ä-?/©´?ýã?þ…F?Á–ƒ?À?Ë@?á®ê@,ˆ)@#Í*@ +¼V@Ï’?ð?í®f?ëL¨?Ô{º?‡D‡?’)`?Ãja?Ó#É?õ,?êÊ?ë]B?½Ï4?C‰3?‡´n?æ'?Ått?ˆîQ?`¿F?ݯ>¹=í´D?N…t?ûÌ8@$µ@j„¾@Sç,@1F?ó³4?+â?6j?…Ç?•2 +? ºÆ?«ÂÔ?²Óû?»ä?RüÅ?Ù9@E¤ã@ U¬?ÉÁ‡?ÏÀ ?ÊÏŒ?ß 1@òK@%B@`¹@&€Ž?Ž?§@&?¡Bò?ÊJz@ ˜z?ßÕ.?”ïv?¨V ?Ì=?Øþ²?â»è?Ö6?Æs!?¾q?¨<õ?âa>@-d@*†w@ (ä@8ð?Ò:?ƺ@?·uz?¬ w?‚i?‡E?Œ?Ö?“~O?¡|Û?®¨ ?¾9«?»Îq?ÔŠÈ?Ô¤®?à>?Ôõ?ßji?ÄÐ>’+#?óÆ@2º%@2|?×\?Â[?æÛL?ííÜ@Gz@é*@;Ák@=’‹@@\Æ@A¶Þ@Wåü@WÖ?î-Ÿ?à–)?¦B?½îa?ˆdó?}Ú@ î+@¥@?û ö?ñNh?žG?|›Œ?áïM@ML@cMä@Ž=’@ «À?’£??*F@C‡@Lõ¼@ ž·?•p2?sá?GϦ?A?¨?-”Å?8û?@:“?wõ©?Êmß?ÎCè?¼}?¶ðù?ž¶X?ž{æ?»Ï&?Àìv?ô´h?ûó3@9O@3·{?û¦z?ùÑ×?Õ|E?Øz@Q,@ãö@&Äx@&­ó@"¡%@ØË?ÁC?‰‚ù?Àm¨?á0ê?ÛW‚?ÕrŸ?ßZ?ð²œ?ª9n?‰¦?«\/@7ò_@#×?ãÎÓ?üY@0ñQ@ wÕ?Òû}?à»O?î’¿?Ù @*0b@,³¼@4AØ@=ì@@Ïu@ju@|«?À6?{Ñ7?Ÿ8à?¸³?úë9@YÜ@¯@®?Ε«>½é|? Ñ?u9h?ƒàY?·ÂÎ?ÂÅã@7œ#@7…Þ?à^!?á»?ò¦?ôO>?ó¡½?ðÄÝ?b¯=>Í ?Eíê?‰èÝ? 4š?½7?¿¼)?¶h3?“æL>Ê´s>òÍ0?Œ12?„g•>Õa>ŽØ_?Sw·?hñt@öó@&¦?Ï@i?ª{?‚7å?N}?Šð?¨£?†‘ ?31\?žš>ðß«?D…?—¯£?¢D?1?{{?pôà?x&&?m*;?_[?¡z?ÂÝ¿?÷®A@ç@2Í?í£Ð?êÏi?Ê·ÿ?Ãi`?¢‹—?¦?rdË?nOÙ?§ä[?¶B~?û´T@ö?Ìw`?’ò-?ªšÖ?ÖzÔ?Øy{?î&Á?ãõ>ìß>ìÁì@=ä9@I¦P@Ki\@M)€?â.o?l?D=1?#ʲ?MÆ÷?ˆÍ8?{ªä>Ôš>ò÷2?ØÅ?ŠFÙ?qz?j̨?j«f?jŽ@ô¸@Eìu@Ä´?}ÍÒ?—­ÿ@ ¿¶@zù?ªÈr?¯Èy?Ä Ì?Ãôé?«e?¡ù(?·š? +?’ø£?Ã?!Šx?Räc?JžP@4ì$@:$?áˆ?®Ñ?®?­ó?ͧS@ÐÌ@ˆs?åêª?å‰ø@ºª?÷‹p?½=?¿AÛ?—KŸ?gŒ?zí-?‰.›?x1™?'‰û?n?âhO?æpb?°ä#?œ’Œ?‘0*?•D«?†:º?>7Ú?mèÃ?òvQ?öÓ?€Ýá?x®?þ4è@ñ?Ž£s?X³?Õ6+@7éÃ@’ñ?´Ã?£‰è?»h?ÄË?BƒO?D6?Hlà?`_¹?há>ƒ…Æ?Pbæ?ûa?ùãÛ?ÎD +?Üö€?ZŒõ?Mƒ”?Ô„5?ïNì?Ç7~?­^÷?­t?­‡¬?§+§?ŽAÚ?“*?#?uRv?è?…¶>§àG<ãjÈ?Ÿ°ð@˜õ?éÜ÷?–Sf?Œ3û?i­q?pw?æþo@%™@N@ î?a.Á>ëQ?¾º@ûŒ@›S?ðÄ?îØ«?Ê„?µº>ë„ü? £¾?qÛ?ˆ‰F@ €Y@õ@P:|@[öJ?™ŒJ?Ûú?Åè1?ô\E?–>5?oï?¾â?í ø?Ðtè?¥J@ Dž@NÎ@:G·@Ƈ?ßøÐ?x Ç?ä•?×xŒ?Õž±?»7a?†žU? ›Õ?`µ?ü,?#§>þŽ½?8–F?€?j]ÿ?^…1>ç@@<×"¸?c”û?§ ?aÍ?%mO?­¹Ê? qg?ž?®†{?¨«?~+?†­ ?rr~?:>m?H­?>Èö?Bã#?gˆ? B7?M?‹¥”?Z>›8,>ÿ)ø?û#?fŽW@×ú?žEÔ?èœ=çÝò>¦—Ü@?®»”>®D< +·?“>×ñ>¦Œ?Ô3±>¸P>ÛZp>h]µ>A;¼?00A?$/?‰ ?c§??f9†?ÐN?~ª'>8ŒN?Åzw@+:"?åTÑ>üj?¤,>ë 3>éô0>«†s> l;>«q>Ç—W=ód?<°a?ª?¡P?‘oV?s7Ì>ñëâ>Çø=Iub=˜1>ö’€>ôÅ>ô‡Ÿ>ôì1>Î…î>¿`?*¨?HÁ??“àÑ? AÚ?‡PŒ?wØÒ?P|Þ?/R¶?#Ó?)D·? +»>À-u?Vp? a>Áñ9@>}‘? çž?+Dœ?|NU?dUS>ü¾?¡g?}-û?lëÿ>ý“>ýÇN>ýö¼>þ Ì>þUè? |?2Ž?Œ5?h"?kØ ? ¾b?Éë?€r÷?Š%=ûÜ×>7¥?'[?#—?\:¯?nl•>BÍU>=³Ö?1(ø?:’ >‡Ì¿>‰uL?iq©?ca©? ??Æ«?|Ñ¥?€Üª>Zk˜>Ö’:ñ†?¹tE?¾BÇ=T>[{–>Ÿ‘?dÉü?_§;Â5Ÿ;2<í?»e?ɸU?yâj?€è85ZP=1µ?²¹X?«I³?OÍõ?R©?ßyw?ÑO%?¡!?"¤8@I]@·™?e$?L‹? W?ýV?,Ìô?*`b>¼c3?=Ê?¸9?Åð¢?ÜM>?Êi½?>¾ú?YÆæ?¥7±?›µl?RN÷?X]Ã?Q˜[?$éY=ñh>‘Ê­?oh??‰ÈÊ?½ˆg?¿Z4?Á)?Ø=‘èj>£’"?qþÞ?•+Ð?µ3?‰”½>¸ØS>ç¸\?1<þ?#û‰?—?]Âä?Ä"C?ˆn>[È>ÊåÖ?/š¸?`k‹?”@I?‘íY?¨?'T=ŒF?”˜@³¤?ÆC?Tà?¦³R?ùP¯?¶EK?p):?k”%?g?ö¸?‰F‘?"Â¥>¤Æâ?8¯J?‚fã?[}ô?D§í?`2š?\jX? ­ä>¸1å? Çy?'à?{™¸?„G?>cªß?t]?*€ >}¹ô=¨ü?Dú©?|(C?2?&»t>Ö?O>×ÕJ?m©F?‚¶“?“Æ?™'¤?›c6?¢R@ºÎ@2£?˽f?ÐeV?µÁÙ?¹ø(?^rê?\?úG@ц?Ò¨Ç?ÉSU>R2>TG]?¿A?Á´?ÂwV?Ó@´@ô@pŠ?äüV?í0V@—,@Ï?ÄÈM?àTû@ø{@ +½½?Òìi?¶‰?{î¦?‚â?ŠJ?€SE?8þ£?€%?Ã_·?Ò4?â˜i?в?·gô?¿š?ÅHX?ŒÅ•?"¡µ?WºŠ?„£\?>ß±? Ðx?Ù™*@ú’?ÚJÁ?¶–c?–ê?ƒÀ#?‘ª>?™"·?Ûš?íÿa?´Ù?³½…?+•c? Ç?õ"?ïÝ?ȸ?Ù³x?ˆ·Å?„¿?åhI?ç}p?oLb?u!)?„“?yRÆ?!ˆ?˜?„+’?q_®?¦ +?bù?ƒÉ?t…?ð*š?ÛŸ? pÍ?©ýè?°û“@U@¢?˜ü•?ŽÒ?r*¾?b„? .?c„K?ë?Ú&C?ºæM?ÝRV@Ù@…ø?øJ?—cŒ>Óð¡?gI½? qï?¹á\?ÌD­?p1ž? +f‚?ÊK?üëä?~—=‰_+>ßѼ?ñÒ?ýë?'=D?Æk`?É¥à?Ã<»?¾Ÿq?øáÓ?ïq:?É­?ÀÐE?œ³-?œjf?¼˜4?Ð?ðpÍ?å·?ç†Ö?ž=Κ^?[·@§ì?­§c? š?”Ú? "R>œŸY>¦ˆ?Î{^@ê+?šC/? r?å®@ W ?Òñë?ÇuË?¥^ô?Ÿe ?ì›2?ïÅa?Ë §?»Ói?yj5?t¹}?®sî?®¦?™O—?Š¹?ͯ?9‡˜?Ç/?œ0d>3G >åH?‘DF?ý-@gS†@Z¹m@J)I@-Â?D+Ó?ÅúC@’ó?½¬à?QÂ?×¹Ð@hC?ð5÷?Ñž@)Ì'@FÉe@0Z¼@,Ú#@Ù@ •?ãuR?ßc +?%=?„b€@nEœ@|ÂÛ@Bôù@B¾@(Œ@"#ë?Ŧ?Ì„?Â0W?Õ¯þ@%6Ö@]£?îWV?õ<Ð@ Ç%?Ýçj? G?IÖp?«Å?›õî?ƒóM?ƒì¯?ƒç¡?4>ž‘?‰U&?ñ¯;?ïÂÁ?èÐ@O9@+•ž?ÕÅà?vLñ@$»·@bI›@#$)@ N?®Ø?‰ª@Fx@;Þ@ _@ +¬Ù?‡HF?O¤–?ü;?Ÿü1?í ?ý •@D«@EFú@40@2?³>Ê?¬µœ?ÙïU?ß‹?ÕqÔ?Öä7@# Ì@ƒœ?¼fÏ?¶?Ñ?#‡€?6cÔ@ÂÌ@”Æ?þÑ`?ïéj?®øî?¬ñ|?€©?Ž¨X?«?¸‡|?Ü‚?ÇAò?x†4?™i?âV£@¨¯@B®À@<í@"æž@`?²,x?ãŽî@*‚7@R?Êl…?ŸÚ¼?ß ?0³÷?yãª?”æ™?ɶ¡?³›?“Ó2?Ðç@-}?Ú©?-¸?C9»?gä?ƒHÙ?£9?Ȇ@ó?å_?¡§Ö?í£”@1Ä?Ïp®?;¨4?îke?õàŸ?üéc?Ïé?„™3?ŸüÓ?»í'?vFŠ>r¹Œ?.g´?­˜S@Óþ@E„P@>@6²ÿ@˜N?»À:?ž0Ô?E~ ?€ ç?±Š£?¬@$?±µ7?êÇÀ@'}8@ ä§@YØ?íÐS?¾o?sò?þZo@nÓ@F@I@w¢?ûÒd?Ÿ[Ò?À!8@×@ p¢?Á“÷?á»@ ¨@ŸK?\Z‚?c‹[?ÕN$?ó +ï@¿h@Š'§?Ǥ|?·ºë?°¼r?µNå?€­x?ƒöª@¡ý@Oe?±Ï?¹%?H£»?BR7?³æé?½ç@&!@*Ìb@+¹I@.e$@ ¸®?üd¡?ïÒ?á¾@3@,AŒ?÷R ?ÆRæ@¿ÿ@ëÜ?¦¢>ûç@Oé@x Ø@&.?0ó?Ž?Ķt?Š^a>û?z?”õà@Ȳ?èz[?m¿ ?…?¼¸?Á*´?ا¾?Ú›?Ç-V?ÄS¯?ÁsG?µä<¯õ±> +\@4ê@2Ôx?–Ùš?Š÷{?9#—?FYŠ@ —Z@"ê™@š¡@ó@V9@»„@ +Ë@÷á@T@¹?ó:‡?ºJP?º9Ù?º!î?Ñ?ÿý–?ÒNí?7#Ø?ŒÉ´@u@ÙL@:Õ@ ^¥@6'Q@9Í@ œ@ À¼?iÒ?PvS?믊@t¹@& l@1Âî@®‡@Fa@_2@ƒ@>. @d¼Å@(^H?Àä?¯ª?aìd?I^–?6fˆ?awè?Ðââ?ÕÁƒ@$ÀJ@'Ò?Ñy?t|à?åªÜ?ôEŠ?Ä·À?º\~?Ôä?Ö½ö?ðÀ–@?§AÓ?&ÈÔ?• >?ö…?Ï:6?rþ.?€Hx?£]W?ªqT?æfÁ?é˜û=þA<Ž¹Ü?Ífü?öNS?(õÝ>ƒ–…?kß-?£5?Üy'@ +¥ð?ã³h?•¼Å?wê½>ðÚ ?+]u?ð¢„?ï;,?«¥¡?¯?|YÁ?p +{?õtÍ@ >Â?q“ó>¸‰!?-Óª?}Ï“?°«Ó?ð&?Þ¦°?À;/?ÀŸ!?‡ˆº?ƒä‡?L7‘?Xcj?¬N?²Ä?•E?å$?’ ?†ªæ?’]É?¤ýÒ?Ûol@/[]@ï/?vû'?`¬•@0¤@ƒ‡@"ˆí@+Ž¿@ +aÀ?ãm€?§N?T!‹?r„ ?MJ?¢1 ?¿Dâ?¨/E?°16?°?ï?c?Q~?d ä?j‹ú?¯õÍ?ñ¸U?ð¬¡?Õ‡¢?Âe_?‡l?Šóz?Õ,v?ÊÉ?ºû—?ÀzÍ?ˆGb?PT?ꪌ@EWO@::¸@ +ùú?ó„#? ¶? À?¹›ð?ß¡?ªù™?“ða?£} ?­ðÃ?²Kf?·G?³ %?®êD?°5Õ?.1Ñ?Kä ?Ö²Ÿ?æmA?žÓ?g¾?Õ?˜'+?¦ ¦?ÅÞÎ?¼É?©b½?­V±?Øí?ݶ?™¶ˆ?fw‡?z¡ô?Ï`?˜%j?¬Ä›?­`o?¹³ƒ?µ$£?­”œ?­·/?†ß?T¹?¡;¡?õ×O?û±Û?ãÐ?㽓?<ýà?Fh7?£qÝ?¬µß?¬ºë?ª† ?…ä?72w?f ^?ÂQl?¾<‰?fA?f«Î?9wH?"€ +@o#@H5?ö|H?u ?_??8¨É?P‹?g›É?lˆ@¿l@ ck@éŽ@ ×Æ@°{@ÿ$?ãǘ?Ûã·?È[?ŽR.?ˆ©”?=¦/?Aý»=´`¹=;|þ?´?¸y@æ@ +õn?°eÔ?‰t·?Í”¨?è>B?¶P‡?ƒ¿ø?@ +;¬Nð>­ŒÖ@Ô@§'@$]@{ú@ý.€?y„¦?©J?«‰!?ž G?Yq?Óv?ÆÂ? Á¤? ÌÓ?.þ0?rGi?ƒXÁ@†@ µæ?vȯ?-yv? õ?ZÒ?†´©?e^¡?¾V? “Ï?,ŽÖ>·´¾=”¦>ãb?·×>YQÁ>Pœ=ÛµM>9z=#”t?‰>Ö?h^ ?m?.‘D?ùý=Õ¶`>Pƒ?Éš­?®5ž?–7<¶c?&1ú>ä’/>¥#ø@@!L?—°?ÁÓ=¢Òé?#Þ?b?;.=¨ú=ÿ$>q>éßõ>ê|¦>ëŸ>ÛóÒ>§î>ùŽ? ˆ—? ™ ?/…?,ÖÓ?&3?&h ?\Ä€?‚u?N©ã?Ä?Â>òÚº? +ü?s€ñ?eîk=#{H=~Þ>êû>õº²>ö 8>ö}È?¼[ê?Þ†?˜Rf?wà¤?x2•?x„Â?«ç>õÍ> ®ú=æÏ?+âo?²ÛÊ?^TÄ<Òò>²y½?r?j¥ +?l•?4KJ>W…&>Ëg?V³±?jöa?¥O?—¾Ž?A]ò?< +t?6µ«?*×£>þU?}?œø³?™5Ž>ÐŒâ>éíð?fqM?r]¹?€¯Ž?zj…>ìç->âºR??#?Ñü?È-?-g–?"ÕÕ?LaÞ?J ^?¤(¤?”±P?[[C?m̨?.D8?')?<Û-?Hñh?€æ¢?×_=]ü=€F?×p?¬¿?r[@?h Q?]Ç?Mت>d³s>„7Ì=PöK?ò¡??ÌôF?ºñ>ïùÝ?Ú›?ê?åÔH?š| +?© +û@ ¢R@.Q>Û¬?ÅW?yŸ?~†{?€×x?†Æ¿?·Âi?š€=¥â#>­w?Æ],?­^U?R¶?\Œ%?fZf?ƒ“·?©¤±?¨öè?½ø?ž‡Ñ?è~?Ia|?×>T?´ª_?!?1?d@?-ÇÊ?x'8?W8ž>ÿ÷$?PÌ‘?¶»„?Œ°ñ? Ã?5Mô?°¿?—×,?žeC?©Ñµ?¾ëç?™ÇÀ?L¡Ø?D<?C*F?u¦‰?”²°?“¾>?™aò??‹¨ñ?¨¼S?ÃRU?ïì>ßp+?n3Ý?º“?=ç<rD?4¾?Œ„?¨ì>wä?&À:?‚Um?`?MíŠ? ¶·?¾ZÜ?–û3?‚cà?^q¥?C®?x`-?”‚Ô?Q…Þ?&¦T?M (?^á1?”?¦¯€?«5c?¯»A@˜@á)@3Ä$@@nÞ?(í|=~ÐX?–«Ê?³L?À®>Ñ«Ò?m¹ ?‚µ?52À?.j%?£Ø?©Þ»?õø@Ñh?W/­??U:?:ð?6¬1?ˆFø?R$>¸çy>ÛM÷?Ùh ?Ú§?‚ú?‚þk?ƒ?xÞ? ®`>í >+>å/?Ìa¤?º†›?cÔ??h(¿?Dþï?R—ô?yÞ‰?¡7r?Þ_?®Rw?K4?3]v?~&Â?`ÍL?OÞJ?3As?he?*Ð?aVØ?e²€?jQ?˜@±?»'?輬@v\?ßÇÓ?ÂeF?kMÚ? h>ª¾j>›p$?PZ­?ƒ¶F?̼?æ·s?¿6°?°ù??Ò˜?Þ¿??PŒÉ?w?¿ ?¡¨N?K¤?<º?![?(ß:?˜Kë?—‘?•`Â?‘~ó?Rp©?KÙþ?„ª?x1? 'è?ºñ?„*ž?‘@ì?¼ä?©<Ä?vƒU?€*l?‘†ì?ŸÊ.?´ë?†ŸŒ?VT?™+@]E?»%„?L]?jV?„m*?Ðz¿@w ?åa)?ɤ¨?™¦j?„…?Ë‘o?ì +]?°È?™/?$\?˜Ð=þ"<Þ ¶?ï…@ ß>’,>tæ?vYÚ?z`Ù?Çâ?¿Ê¨?Šç?+Ä?^[¿?cÑH?T7È?Œ1å?ï*?Àð?SG ?S€·?:°¬?ŽÑð?Ü[?Þ õ?Ù±Ü?‰ª >â?·E¡@dE@ K:@çC@Ñ@$¼6?ŽŒ˜?»Š?Ÿp$?¯°s@¥@(òÐ?AD+?óJ?mS4?€´µ?²x”?º{?ýÉ9?û„T?ÃÜþ?Ã!t?­¯L?¨TX?nÖ³?ÁÎa@R‰@#¡f?f.Ò?Dã?÷W?bh0?´Ü.?¬ªƒ?˜òë?Uf²?äO?‹i +?º“ ?£Ó?ž·>?†íf?p•?¢þn?¸…E? ˜*>¬®?œ/??­…{?Ô4ì?ßHÌ@CŒL@FR?‹¬d?uª?„Ø£?‘a¢?ñŠ•?Ô‘X?&qZ?Tæ&?Ç+b?Îï´?ß“ó@ |þ@G.@j¾Í@”u@1Ò>…‰ê?£->@>@%?³@8°?ü:ï?¡ªÉ?ûè +@;²@&· @+{¬@$Xô@$<Á?Î.Ž?¨’R@9Oi@U\‚?Äxµ?™Ï?ÿ^+?ûU†@-"³@3¡:@¦@Ñy@FoÛ@9nÓ???*)?ÆQ??Èu§?Ö ]?ãïÄ@ 4?î5†?¥"?´Sª?Èž˜?ÒD?îlQ?Ó2“?§ë±?Á‹å?âj´?¹Í ?‡/þ?Åà’@¶¨@‡(@$³Ï?áMJ?‘W?[ä?(;“?ä@†¾?íú?ÆC?–él?ƒ€÷@ u @$Oj?ë;/?Ó x?…K|?aľ?”}æ?–ýù?¾©˜?ÄØ>@36ù@BfŽ@$E@ @?ñ-÷?ääR?Û»4?Ñža?¿zÚ?Í€±@œ@m?tÃ?”f@>\@EŠh@b²:@VÃœ@ ^0@¯?‚”ú?“{?×±?ÝðÂ@zì?ÿ‚u?ìo3?Á¬±?T%?U¹ ?å…?ôÍð@ ðt?ÒTŒ?!?)£Ï?‚G?†¤í?ŽÊ=?°âQ?ûÀT?þµ@(ø?§†ç<ïÇà?t?•ý?’F?¥"?±?@2T@ ôH?­w?”a?g˜Ê?q¹?zR?ÍüÎ@$@ ²‘?ø·y@={@ŒN%@;K?5œ?nPB?ª3º?®ù¬?Áhˆ?òÛa@¬+@*…ˆ@: +s?òs>Úìy?¤h@#óÌ@!PK@'Xj@ J?ÂG4? Ì?£qÃ?‰Œá?Í3@@Éa@_ +%@]A’?Vš!?;á\?ÄÀn?½Õh@:Õ@ƒ°@È)@ {à?y.§?\D?ð"?”g%@(@"Ž¯?ì°Ð?ß~[@Fѱ@]"”@L †@HТ@W²í@\Øë@÷7?òË?­ub?‚Ò?£©¯?¹¡z?§LÔ?¨J¿?“ËÍ?b—6@ Ê@W…Ä@Uâè@P·œ@@æ½@9Ô±@@ û@AKÞ@#¾H?ÒÙ?ºFŒ?X$B?ƒ3K?îÇ4?ôíÙ@&Ÿ?ù¿©?”>ïn?’“Ç?žË?~Ÿ:?y  ?ÿmõ@6?ø|?ùFH?ç±?ÚDG@Å@}@¯,?õŒŒ@V@D?ÿ1?Úcý?ÊÝ1?¾}?¤Ö³?ƒµU?Ã<@!‹¤@F@ög@ +¸e?ÑõJ?á†@ a@ '@4-x@.‹?$ÿ>öË ?cÀ©?v“S?áGˆ?ý€ ?£ƒî?v‹;?fN?ŠˆQ?¼ËÕ?ðòU@r*?þ’”?ü”`@´?æAß?›Ÿh?§°™@I@Þ?áìÜ?äô?¹î*?©é?úÑ9?ý\µ?•Z?z¼Ô?õ‚"@‡®@áF@CN?ôÑ@?¯®Ð?Ïf@…?ßs¶?@ˆˆ?l@—?ć?´ôO?Æd?¤Kz? ­þ?åÓ?¤µ ?¹åT>Å:?aéê?µ& ?¤4–?žA?Æfm?îåÞ?ºUÄ>ð×õ?2å?ÿû?øô¨?_cD?f-?t¯?p +H?5uÕ?<ܶ?>±>?a„?«¢?ÖšZ@q;?þ¦…?nا?ƒí°?âá+?Ø ø>{Ù’=ú`4@*À¸@Lع?óñ?©g]?ñ7c@ËŒ?×*û?mSÚ?¨¸±@&÷Ã@)J§?­‡ª?¸Šé>ôLé>ŸBè?R€ ?q0Ò?ç3_@/?åÈ?¤¥x?¦h?°ª-?Èu.@ ¾4@"8~?°QÊ?°=.?5|[? Ö+?U?smT?“¢;?²Ÿ7?”|•?5d_?l(™?ĵ?¼²¬?Ä ´?П?š(_?ˆž?†J‡?k°›?œM±?áCè?¸3Á?r%?+NÆ>èK>èoò?çØò?ãl£?¸øÛ?§70?‘Ÿp?‹l?±#þ?ç¹E?çª?çm}?äV°>ò¢ú>ç^1?Žk8?°£?wk?,ó6?o9Ä?œH1?²¨6@A•@`³?f°½?h˜?Ó2 +?憤?¸Ï?šs[?‡Xš?ff¥?_$Æ?Y­&?xr?µ:x?Ç`W?´Äk?¬¾’?ÊOó?Ò„ ?㌶?ù›Š?ø¸º@Ñ?艔>–õ}>©Éœ?ŠÈö?¡f{?ªÎ!?¬¿º?¨^-? )í?Š-ƒ?L{+?eúŽ?Œå™?ˆ ú?$?—\7?òLO@—¥?ýÕ?Öñ™?‡xŸ>mû>¢úí?g™î?j2ü?Á3?Ë!?‘;Z?wá@Ž€@+«¸@ bÄ?ØßÐ?¦‹M?* Õ?:{7?HĽ?5¨?FÕá?ˆR?صÍ?å¾ò@¿@#Ø?³æ]?5NI?åW=@LiÕ@PÈÁ@LÅ·@*Tâ:u“>}Îp@Ñ@ +.Â@!šþ@$È@8ÅA@@ec?X5½>Ù”?Ã8??ûà…?Ïß–?¶;?Sÿ?lÂ?ÅËd?ÎSç?ï@N<ù@•)Y@.°–>Ùï?#~?:‘x?É9ä@;ëq?ë@=¨Z>Ê·€?mòx?™¸Ê?Ôu?í,Ø?ù¯?–K•?ÝN?^L?Ä?“M%?kž†?{Ö|?ƒbß?¹4§?Æt*?Õ¢º?ÍÉI?…Ÿm?‚uœ?†½\?cí!?È\>X–>±×A? õï=ÅL=XUZ>$dK>Ç44=ùè?ŒäQ?˜q?œ“¬? üà>›Ê =oÏx>×— @ Â?¨Î?c;ÏFÔ>9®î=áä~@3ã.?^KG?_ú=ÌŒ>ˆY¨>ôܤ>í¬Ä>£H£> ­?Û>J]½?ÀEç@iÚ?ÿÌ.?Û'z?¦_>ë%>å?h>ªV7>ŸGÔ?—9…?™B$?Az?:{?A)Ê?Aè#?™e?Öq?òØ?—:?w»Ð?I? o,?r|‹?iwd>ßî½>Ôí|>ôIU>õ½.>&ß6>`>?Z†>?‰5Æ?´2W?º+Ç?v²*?E`Ÿ?)7>ù K>Óל>¿áo?E/à?Žöh?QŸL>úÓh?`­)?ºŒmÒ?|¹C?Žø?½Ü•?¨lˆ?:¼[?@ZB?EôU?? Ö>þOà>þ{@>þ§z>æR”=¼bK=‘EÎ=L^þ>-6?¿žã?½¼h?¶Ë¦?±‡Ö?¬B)?¨üþ?ψ ?ÊïF?)~c?3 N?€h-?… +?ÿ8Ì@š,?¦¹?“?TL?PV¥=<×c?€á?zŠs>æ÷?·A?Èœg?¸§Ú?yp? «?Øu?~ì>ʃÈ>±­=éû?N0?0.?µí€?Á¡%?¾?³pU?¥§?‹i»?…Ä? '?d¢?QN>$>>Ù[? /Õ?=?T*?Eú„?þcë@!@ <‚?ñ€…?Ÿ‘g?£»‘?› f?ŒÚÅ?R-“?æ +?à] ?ÚÆØ?ÆÒ ?¡ :>Vl?#q?Å~¥?·ƒ"?í‰?ð[?òé?VN5>ê„—>¨9ì˜H8?R;¤?´æ ?KîV>+>µP4? }Ÿ?I;?Æ?€ºó?‚B6>Ý}µ?Pä?‚Oi?´·?Í”ï?š|?…õ ?…ÿÖ?‚_á?‚c +?‚cŸ?'GV>å +“?kA?¨±?®«?x­?y”?~?Z?†D?[;É?xâ!>{Wk<ÐVþ?RS?w‹C?…Ìs?ŠƒV?¬1?©Ì?ué?‚±?c/i?Zì[?–x³?œs7?uóµ?{UŒ?E»e?H%–?‚ÏÉ?ƒ=]?½@?¾ûK>íÊÌ>Õ¤ù?íõ? š?oÞÈ?vZ†?‚ýX?‹c??À?¬‚>û8:?“$?Š3?ˆ +¼?oQ¦?œÔ­@GØ?íZ]?µ”ž?´?ÄÛ2?Ú2Z?ù8?Ä“+?…ä?vFá?;rö?MZé?bE3?2p?mÕ?HÜ?!œH?UNi?ƒ€5?ßzà@‹|?¢ŠÐ>þ¬c?’íú?¿ÆÌ?èU?jÂü?¥œµ?ºæ?F?b<¡? Þ8>ð¶Z?K§~?eE£?â=?ƒ×@ }€@^Œ?‘£Ø?ƒëw>ãK>ÃE?®­?µ8¤?ûûm?õo?ú_]?òä? aÎ?•­b?}êo?‘ª?„%?„Ì ?ˆ<Ý?ˆz8?„8õ?Ì“–@-0º@Ö’?•)?g¸†?PÌ?lU‡?·2{?ÆGY?Í_A?£†À?„h&?‹çM?˜þØ?Ì s?ìRô?§<#?„?ª‚6?²?à²è?ó@›?PAý?ëG?"?‡?ÃØ?É{e?¹zU?±SÅ?„¬©?‘ùm@¬ +@I›?¤(?‡hh>-Ðo>j#”>ÏñÙ?n?—Qñ?¹ýÐ?ßJ?´E?„Ð/?оà@ö?þy˜?㊠?çÔØ?ì?‘d#?õ‡?¿¹@¿ù?ÝŒ?ÉX?•T+?ô?ˆ3û?Œ&A? +í±? + Ö>"+ù=ü€Ñ?]Ò?aéæ?„ñ#?†fú?Ÿmo?¢¹o?¨¨?Ë`>Œ4[?ìÏ?Çp?Ê o?Ú$”?®†«?ôx?6Lj?wc?Q`?,Õ?ê¸å@D“Ÿ@j9?Ä—(?íer@!Ð?‰ï+?¼ö?hSl?„ê?Ó¿A?èÄß?ì¿Ã?ä§?¤5?ž@>ýà>ë¯.?Ûg,?ën?¼^i?­Óh?UUµ?ƒœ@/Y@OT?f—û?’e‡?îœæ@®O@>Mæ@?t³@@cp@)íh@^?îà?¸V?ü»`@%Ï1?ÝÇ?†OW?’ZË?–Œi@¤¹@%¶Ó?ë*µ?ǪJ@3$@Jë¨?ÀNÃ?„{.@m@©h?çŒ@?Ü¥t@c\Õ@tä+?á}?ÔZk?ܨ†?Ó»F@?‘×i?ƒ—ç?àqŒ@ØÞ?rTr? #=?±\¼?ÖÎ*?Ðm>Ÿò7?ƽá?âû>@ Q+@ »™?©Åj?žˆ?ÁÃJ?ĺ±?âëí?âCõ@Y8@â}@óq@ûc>Ú>ñЄ@ ³ @£K?ê?'èh?»9?À?ÇÃŒ?Îê·?ÎœŠ?ئ^?ñLÕ?ç{?ÒId?ÎL›²>Idk=’L>äÔD?†aÛ?Ð%%@=Y?ù);?¡»Ñ?Ó5ˆ@‰ç@Ñ?ÛíH?¶Š1?€C?ÙPå@Ao@+]ï?îîw?ßO±?Ê£Œ?ô?ºY¿?Òed@­?ñ ?É‚È?ø$Õ@5¨X@%?ðM{?ÛMu?—>¤?¼‡@,Ûc@l^?ÝV«?ÅÔG>âÐ?!?¡¸?¼W@#»y@!p’?¾©+?ÉK@CmÙ@Kä@;ó@=*@<¾)@;e@:.@8¥{?Ž—?}XK?¦Æá?¨q}?˜Éb?™;q@Pú@vý´@g$£@[i^@;6@6ó??çº?©£g?³7«?¸¬Ï?•€G?~Ž?=Æ? g‘?Fý´?{‘›?“H2?ºuú@ + y@CŽ@+ž?õ‰:@!x@ru@YðÂ@âe?ú ì?§jÞ?æÔ?»É|?Õ;²@NhT@Pû@rº@Ó?¶*U?³B +@!m,@¼a@#X@%š”@W@7á@™‹@©9?ßP\?ºªD@¼@IJ@<‰@Rs|@VÜ@YQ±@<¹A@ð§@;¸›@lâÖ@X E@9Ù @ 3?wÌž?’É&?Ì’?ÄŠï?²_w?¹ö¬@>< @D%Ý?|ªc?Hż?n½J?v³?úîÈ@Ê?³N|?xc’@IW@Jsò@ŠÚ?ê„s@°ò@/wÔ@ +›I?›ÓU? æ†?–ÈÄ?ª¼?æ¨h?éjŸ?¤´“?§Ê‚@;¶'@C(‰@Ii]@O±Ê@#ˆØ@?^L°>ÃV?–™?×@0’@ê@•.?³É*?´?+Ët?~¯k@#@¥Ï?A%?-=Ï?í.¤?ò2?¾1à?µzØ?x3l?Dü•?”ÏÖ?µ f?ŠÆ?@À?ŠN{?ÖŸ“?²}Ú>ðÐt?=0ø@Æ@ È?Öˆ?ßa?Ûîn?ìDt@¤¯@Ï€@½³?ìPu?ýa¸@ +-Ô@Ve@pì?ãf?A#?dU@+ç@,Ë|?®5µ?­»1?'õ?ÛÃ?b;Ù?€¼?³{?ã‹p?€L>¾¢?-#¿?®íÊ?« ?·å?¡“?è¼N?ìsã?¼Õß?±.¨@6wE@dwö@IÉ?°Ók?¾‡º?×hO?Ц ?ÈÚ?Ô7?Ǹ?ÃÆL?›2ú?Œûº?£ ?¯ãH?-_À= *à?fî?™3­?’•W?›Æ?¢Úb?j#ã?i‰†?¤¦7?®þ??ù–@ +?ß-T?hï'?”ŸÒ?Ûß¹?Ïý?Ã:?¶Ù¬?ÅSJ?ך?æ€Õ?èê?´o?yc©?–ç?ßl¨?â¼J?æ(G?ç~ÿ?žyÆ?• ?1wK?û?zB®??£¿¨?Ó)‹?á@/ @š—?oí ?f¤º> Vï>£ ‡?›û¢?ÓYß?ÒjC?Ëî"?–ó>$Ÿó> LS>ŠQê>'x•?Ä?ä±??$6>©Šþ?¢Ü@Ýb@%˜@<ñ@ »>ä%ï>«•=? ï\?mò?Dã_?n?ª¬g?Øå‹?ÞÇj?åá ?Ñ>w?Þgñ?Ô«?%_Å?`ë?fDÍ?m›.?·7p?ç%­? v…>šë¾>áªB?kÐ?‹Ú~?˜½?Ž†Ù?Åþä?߃Â?ëH?õ ×?Ä[g?–Ÿ;?“é?oº?u•Y?¯CÚ?³’º@ )@¼8@E„@DBÛ?õu?Òá7?œ{R?kÜ +?À² ?þçl?¹˜V?&ù?!,Õ?d¤K?eGõ?À–J?Èé®@s½@ª1@*Š‰@&»ê? '‰=Þx ?µ¡T?ñõ@¥&@C +?u->o²ˆ?ÔÓk@7š@ ck?½Sû?öe@*«Ã@7u?ªÉ?yã?>.q?¹LH@#N©@á?„Ü?IXj?ÖZ?.Ž?['©?¨Ç[?ïF±?¦„0?Ûž?˾ƒ@ hã?ŸÊs?è?.J?=¥?ˤz?Ü^î?øÎÔ?ý[Ú?„‰¡?×?»’?žb[?RºÑ?z§>®I~?"^&?,u0?Ôm>òÊ·>Ò”l>†.:=f}šîC›>€=É©º>À{>?÷Qs?wº€>g&>Na/>íã?÷4ë?½ä/?¸çÁ?l~>ùªX>šØ>M¶²>£]]?=}?­Q?µv?Îþ/>úf <À >›v?³f>ä6=® Û>®­¡?ºb»?°·×?Æ?R¹=Ðy0>òý¶?%û¨>äÏj>ŠÅ?T5?Îæ?Ú¦ ?æÉ÷?Äõ@>ö¾ >ü!ê>ôœ>ükz?_”Ý?ZB¢?…™?}U? + ó>÷9?µf•?ØÇð?“nv?b™±?W®Ÿ?L¾>Æ÷}=çïN?rõ¤?ßp,?”í±>úÔ!?4ý`?ÁM?*†S>9àw>äÉw?G+&?†ÂÀ?×Þ?¿ß=?–ìö?‚f¢>ýÇ?ü©?ow)?d»/?Zd?8E¢>¹[8>âqV?/8a?3›>å &?2Ü?¾yö?°S»?Và?6i?À+?º“7?:(?…4J>#>h~ò?3Ê+?6߇?9íñ?_Üa?õ§?õ™²?.Nî?!é­>ŒÌF>“­£?hï„?^§Ê>-Y>Òº @]°Å@J¤–<Ù<ê>A-?q:]?—!?ÙhÆ?¿eq>·bÕ>ÂŒ7?#?Fg?aA?ï+?¦Ý’?§‰=?h?]ûe?S÷èú„?9å‚?ªe?¤Öã?Ÿõ?ZÞ?Eø'? YR>P?­>hœ>®þ`?¾­?c¾?ŠÒz?°JÏ?mVv>#')>‡ë?‚?c£?Ãœ?Ž¹>ä?”?2þ?Žºý?xŸ‚?G¿?UÈž?WÜß?i+w?‚ï?Aì,>üO>>ÈØ>fºö?'Y˜?’Û_?x ?]Eœ?P?HÎè?_nÀ?oâc?} +?‚8Ï?6q"?X >noQ=‚­`?Q?aÝ*?›ñç?¶3*?¨L¢?¥þ²?þ>3,4?@-”?‚]¤?RÚQ?AcR?Eó?J{Ô?¾÷?ÜP/?Oq?w¹?ö–?!Ææ?2T#?/õ>ö¬e>êk{?süC?„À[?‚s‚?‚—h?‚M?‚Ÿ:?tH¤?mÁh?°&?³ËŒ?Ýh?ÜÜ>Ó¿>Èÿy?Œ:?ˆÓk?F ??à?ÑA?‹?4v{?8>/?›„-?˜ç(?"ñš?.ä?óÆ?y?‚ü?t-àü>Ϭ ?}Ø?Ò7?xɾ?Y¨s?¶J?ˆ¬?ô~a?ëü ?Åý8?•cu?MZÓ?’ës?Åc?špÖ?S€g?X%B?gƒ‚?]0`?Y{¶?ªz>êÐ>‰— =°a?‚Mb?Åkv?˜Bc?ƒ¥g@+ÕI@PØ?åƒB?§]"?]µ%?9Ú×?H€?–B?…—j?ƒÖ?™Ê?¢é.?†y«?ƒé{?y?'…g?šäE?¡²Æ@ »d@•Ì?Æj?Ówñ@öÅ@ P?¾t?&-Þ?‚›¬?f]E? +ø¾?C +?A?[û?´ª?¥î,?„Jx?NÐ?P^?‹µA?×,?ÆG†?¾r¸?²ä¨?¥Oq>úgJ>¯ X?w?®ú?¬¿ö@P­@Í?›„?qè…?“&5?“@€?¸Ù?ÀÂÙ@ß¡@˜=?4v?"'è?„«­?‡¢ê?ª@*?rÎ>Énq? ?5E?Vò ?¤>ß?„̨?2&?†÷ü@Å©?ÞC€?„Ð?@ É—@nÔ@+ š?À~?°ç?£Óƒ?§~"?¦ˆq?À2‰?ÎFx?ø@æ½?¤)€?„è#?$èf?k?\q?^Š>æÇV>ÍrG?²Ç×?¸@ @]à@Žw?ÖG³?ÀèŒ?4ˆ*?)Ç,>€hê>âKé?Ëì?ncƒ>¼8’>Í÷?ô‰?¦³x@·%@'£?ÒÊ@°8@#?¸õ„? '-?Zê÷?ŠÆ?„F£?{`í?«Šï?»Õõ?¦K^?¤˜©?Â/?“4?‡Ÿß?„à°=Œ(?ªâ8?­ã™@5 Ë@')x?Ó*?1°·?Ý´›?Íií?‹ “?µO@+€@s~?öŠ_?êÒÎ?Ì;£?ž=7W~?9fæ?Ç ?°9?že,?ŒŒZ?o^8?‡?µ˜ ?ÙŽ¤?ò$[?³ÜU?’Å@Έ@AIO?†ú? ä@Avð@[ºØ@+@À#?̦‰?Æ‹¥@ l¢@ ß @Ž\@‹Š†?°†ª?¸ŒÍ?ÆYÞ?Йˆ@Þ?é”0?‘X¶?…ì£?0*?Vro?“”?£H?¸˜µ?¹f?ÌÞÕ?í@0Ç@•@$©K@:?Ï?‡.l?ËË@7Á@W­@"›?ø¾?G(ƒ=¦bÙ?@eê?‰‰@å5@$h]@!¼a@ñ`@0à?þ§¤?â¹/?Óèl?'°? à +?ÿ@#¿?Ý°¸?Ñèï@ ‹@'ô@¨ @4È?ÅÇÄ?áØ?ƒ?…£?Äm?Ìe@~_@,¿?–º?‰%R? ß"@Ev@'ö;@?Ðy@pNÍ@—w@@®R?<÷?4Ñr?rv¼?Œ]¼?§N?r=? Ë?]Q?·Ó?Ç®ú?Ø6?àDœ?ñdj@ÇM@/ê‹@)þŽ@4ê@eû?ÖGZ@ÐÐ@(;@{ ?éûé?ÊÙØ?éN?àºC@_'v@0E*?„FÍ?œP)?Ü'ø?ÃlU?WÚ??ë„:@­@8«@:-'@4NÜ@´é?~¯¡?wd­?<Ò?Aþ­?¾Êo?Âç?æj?ÕyR?éÞ>Íd;?û +Ô?þ“m@÷H@!;Ù?ØÃÐ?Ýå¬>–»·>}\G?‡}õZ ?2y?x‘?nMå?tø£?ƒâ?ØÔe?Èï¡?·?·?·Sâ?·Aó?·1‡>šts>ë’?tö=?™„c?â;@ +%@ ¼Å@^Ú?î??™;?¶‰?rñ4?ŒÍ‰?à>œ?äžg?ò…ð?òd[?÷l›?ôí?ŠÉ‘?{0æ?u<°?q¼?ŸD1?µ •?•¤ð?qEt?q)Ã?q?—m?¿®?´ p?ኤ?àÈ¡?pXE?p>Ž?ÄÔ?X—?Õ'i@å@j@´]?ìÛ÷?¼¥J?É ¢?ÑU)?¹çr?QàŒ?cªð?ì`Œ?úB?±>?wŸ#@8 @I|i@éK?Úà +?ÁÀ{?²"¦?‡ýC? ó?;jt?µM‹?˺Z@&Ih@-£Q?䉑?ã0Ù?®Œ¼?«Ï·?“Tµ?–L™?õ.'@k…@ ÈÈ?ë„?Özi?kGL?mäß?Ô?×Ñ??Û?ßYÜ?¿µ2?¯Üc?eÄ>Û'R?<ì‘?¯‹ñhÏ? Ý-?wÕK?€…¤@ œ@OÑ?Ån?“¬/?‘Óÿ?†ð±?˜eo?·~Õ?´€Û?åA?âp÷?Î).?ºßY?ìÈ @#¾@ z@j?ÿf?Ú¶? 0Ô?Í +=?¿bc?²ü‘?®ÌÈ?}AŒ?8¸ ? 6f?úÊŽ?çÞ5?®ü?¸ÀÓ?¾Û·?º#ž?¼Ú¡?´­!?ú~n@Þ¸?±]‘?I63?¡>@ @}@&@?Ò @6Ã?„´q?fÒ´@ +&Ý@+}Ò@C²ä@SCÑ@ R >ç^?:• ?å Ð?ÛK?çÔî?çøõ?a`?æè?Œëü??Ëø@3{Ì@Ô™?ß/½?ÍZá?m·¾?WžÍ>³Ý,? T@6{¼@0×v@(ê@3~_?Ûp¼?¸; ?=Å,?%ë†?­ñ‰?Ý¿•?ÑGd?¯©*?îZ@Dæ@nÁ?õãŸ@ ‚1@b-?òEa?¥åð?f;š>ˆ™E?7àÊ?¬ó>?ÍÔ?úp?ª%>ýR?&_k?Mâ”?`Pê?€·?o=?jâ¨>ÓëD=…E¹>ÕH?‘‚?ÿ†?rˆ?ŒE?·¥K?Ç1?¼š%<°¬Œ>mïŠ?Gö?qç)?‡Û?\Ä?A¨ý?Æ^ú@ä?›­M?s¯>~Ô>qù£>‰Ÿ8>˜ÓM>Œnê>Ö!r? ™¥?J¡?k+¯?Ù·d?,ÞV>¶áS>Èsö> +Î|?7)#?€‡V?€­=>Ü>ÜF¾>®¿ˆ>³‘k?ÉN{?^á?–”m?d¾º?`ì?auË?W >é|Ì>§ª]>æ76>æ]Ù>ê +…>‘íÁ>o± ?—àó?™u">“V>‡ì’>ìÙ>ã`œ?&¹ˆ?Bv¦?/âZ?,,S?PCz?Uåë?G°¸?[a?h’?r^»?[¶`>ôž?ÇS?ug‹?u{H>ÈØ>éÀU?EX?DáÛ?cŒœ?w_Â?Ø&?íp?Èl)?ºÚÚ?WUV>ù¹}? +m8?l?’{>úÒò?9Ý?{Uç?qýF?]'Æ?9²7?†û?Ž[#?ü²5?Äû$?/Ø?D >mâ>?K?¢/Õ?¥²?§Ù?ˆ¡> ½ù>Ä?³ ?’Q·>BM?‚€º?l[Ë>ÿÌ£?_Õ?‰‹k?’J«?±gB?ª?ƒòÜ?[L>K±:>l;Ä>…úã>ŒÃ?”Ï? £?€­c?{øy?]Ñ_?bê:?LÛ‚?Qœ0?²eø?· +L?ºµ?°ä>õ¿F? ¤Ù?!Ÿ?”«@0„@8”@²©?ú§Ë?0qé?:;÷?ImÂ?8o?hÏ?&#?¨5:?¦&X?˜Qö?”@?c!/?b|¸?W8Î?vÑ?™¥9?œ6?ÂgD?¡¾#?¬‹?1T¹?¦z½?£¯S?»?V"²>·v“>øN?a]¾?[EV?;Z#?,›ˆ?Õ|?ÖÏ?ÚÖ?Áœ?½¥?Ï*?E+V?«†%@Í*@ j˜?Âè±?¥Ñ0?zô?Ÿ¶?„¶’? )=o„ ?,É?¶ÌD?SP«>™?8^J?­i??«Ò?¨½ ?o»Ú?öm? Ï?<¿®?¼K?ÿ? ¢?% >è³>¸—…>Ùï?/¨?Næ*?‚1J>ÖJ'?²&t?”Ñ?æ?8D?©>?oD¨?FÔ:?qݨ?y9?Î*ž?ë£?rˆ{?+ÔF?–y?¢ÚP?±€&?¸ “>Ø)à>-6?¡¢Ü?¾UP>Cvµ=†¤?kù¿?‚šA?¶X“?¸¾?’AF?’S ?oÀ9?{VX?‚@`?sGè?m/Ó?wØ¥?‚ÆG?ƒW?nJ¾?UÏ­? "?%¡Z?ÝP?4ä?d›8?U·~>ÕH?èî?‚÷â?šù?ÿï@¦°@«?æ>–?ˆ÷Ò?³¸@ +?†@­@°ß?ÃÉ ?/z?Õâ?)å?gü´?©4z?Ê›D@¸ž?°sí?U?j?Å k?¹s€?°y‹?V›>Åš>mØ=Àå>,vF>8œè?¥‚?üùF?«³â?…%Y>²H?=»º°@-º@fn‘?Õw/?’0\?=£?)N¸?Ûʈ?ð?VVr?:“Þ?]±?Û?DÜ?LI/>ßkÍ>à?®\\?©I?:Ød?S†3?¨£?¡›?],R?rþª?‘r?sÑ7>ÿô>¾9<¯H>³ý?zb¦?“¦:?»ã?αó?émä?ÆÕ0?žËß?ÃI?Šu ?µP?Ïûâ?ÈÓå?Æ•‡?_ž£>ê`•?l]?W“?ær@|¥?ª±?•4?ê?*-?öK¦@’u?9ë…?Žå?„/Ê?ˆ†?ÀN|?¼p1?¿fî?¶Ä?„¬³?€G?Hòû?;µ:?-yÕ?aB?¶?µ®c?ª:Ž?l (>„¸m?Ý(?„Ë9?¶ ¢?ðîG?òϘ?úcX?ûîé?ù‰@Y&@Y?ûW*?òá¶@Rù@E?]¥?·?nF¼?~Ý?„ ì?„è€>Š=ç‡?”‡¼?—¯ë?ª­?½þ@î%?áG©>`@ü?„B?‡Ÿž?—ò5?•þw?"Š?šƒ¯?’ã?¸¬Í?ú=i?ïýp?çä-?òú³?ûÍ¥?ÙY?Áìª@ _@"Å?VQê=ѾŒ?Â,p?þï'?Ò8>r³8>õÄ™?ßá?¦P´?¯~–=ˆ¥|;·Y?åHÈ?ëà@@c2?ç_±?é÷Ð@ó@<5@‹{@ ø÷?¡»Ñ?–'?„»?¯| ?ýÏP@Ù€@DÈ}@5<Ñ@"DÂ?ÿ?«?¿é?û± @YÙ?Ê‹?•4-?ÕÇj?ô\?ñåY?ﮃ?Ç÷9?¿î?°D? ²|@/°@HÛ÷@†…@tá?¶Œ^?³‘{@Â@4U?¦ž?‡>žÛñ>È?ÆSß?°”>? o°?d¤Û?üa¤?ç3j?±g®?°ÓŽ?·KÀ? $?wUp?‚ro?ƒ÷®?Öš@$è:@  U?ä” ?×çD?½±ý?•ù ?e£ã? ©Ê+?1”?•gï?£Ùv?¿(?ªá?ƒ•?*`ˆ=î †?mZ?‹Oñ?ˆx&?Ž?_jà??ãÝ?…ãõ?ª*L?£ 5?ž??m½˜?EB?”Ö‰@2?è—_?Á™ü?°?Ð&Ö?”¤~?úš?‰Z¦a@@øÅ@d»–@fG¸?ÄÝq?¿üù?Ô?È4‡?‡}Ž?ˆøÆ>Ú¨ö>¿iv?pM±?}*f?ÙÝ?âúô?V$Ñ?;ó@%Áè@BA@FÃ@A6@ +9¦@ ç4@ ?«@ ð?¿¥?‡û*?7cÝ>ý?ól@<Èy@d›L@Ý¡@P”é@Y8?Ö™z?N µ?e¿?„#A?}_’?zà?°¦ä@èÕ@ +î|?è’}@=@H‹R@=È\?»¥¥?À9«?øÀ?ò܉?»fÊ?»QÚ@FÐA@Fm‹@m¢?ùjÄ?æ´‹?àb@QÍ@¨@Kid@côá@-?ÍÁ?¾`?ºa?à¸@j@¨@7{Ø@¶?½c(?±!#?—Óv?š²?‹ Y?”§è?»E–?Ä&‡?Í ?Øc@g@U†?¯Ûä?¢n2?Ü×B?éÊ?ªÆÚ?‘2€?£&Š?´ì*?Þû¾?õú™@´L@"E@ |h?õ¤?ÏHý?ˆíø?¤Î?öîÞ?Ð^Z?c?S@9ÒÚ@>5N?·jy?·U0?¼Â ?º)õ?梅?æqÄ?›-?ƒ·/@{a@Dâo@'<@ Àd@!{_@9ï@ †0?@æÿ?p?È{É?ÆÈv?ÚÞÞ?áfÖ@ÍI@ZÌ@1Ã@ï?Ç<7?©Þ±?°G?µ?½hô?¿ý?Ÿ,½?q?¬–…@P.@I°?ÃPÂ?½&f?€&R?yAC?r?Ê?k€ ?+ï?/+?æmŒ@µC?ËÒQ?oG?µÞ¾@æe?óë2?É{B?´O¿>î›»>ît6?±ˆS?²©h?ä'1?õ™?§tÜ?Šn¦?Ö.X@_Æ?öF#?ß?ÔWË?É4F?ºEu?vø?¡'?îC4?ÝùÍ>Ú¢S=:gÓ?¾o@ +Þ‘@fY@+¡?×FP?sÊ?‡l¥?“ñ?²F?°I!?°3#?°”?°\?´l?³ Š?êuŒ@ û1?ÖêI?Ä?’”{?×Kz?ß8Ò?ÐYÎ?ÄIw?ÚöJ?ì,l?ƒÀ&? Z`?tûW?³E’?ÀÒÒ?óO¬?óˆ?»á?¿Þ.?ØEK?áÔT?PN?vL?Œ±ï?½jh?¹)m?´â‚?»Àû?äåR?Ø•B?h?ã?gLî@u(ú@Žh!@‹?`Þ?‚™Ø?–î?–uð?Ý5?ßé?«äX?¯¹R?´Î?¸{¥?ü²@½@Æß@‹ü?éw?fN2?{ù@˜J@$kš@C4©@C‘ô?ÌB°?f+ë?¨³?æ)D?¶Ø®>õæv?":7?ÔÊÁ?Ù†ž@$˜@ ºA@#&Ó@)ó +?Ü­õ?H?P#à?„L'?¨¡v@3+@D>8?”:w?w4?iv?oçú@¹ô@O±@Lþ?ƒÎ?œJì@Àa@2€?¶gL?Æm@Ú@+ª?½fÙ?y£P?Šµ?š®?X-?kÇ!?‰\È?¯F»?§ÜÔ>)6«=%Ní?Ô^V?ê×¼?ëd?ë[&?ª”´?bÞZ?…Ä?¹ +ö?­-?x¥7?† ð?­½­?‘lØ=‹@!¸@*”¹@8ë?ú÷a?Ûÿì?êvÙ?¾m?£þÐ?­¹+?¶,B@ +ñï@&ó?ë¹ñ?¨¹8?Ö4½?øCå?§QÆ?EV£?K´?(©ì?ߌ>Öhj?8êŽ?˜“X?›@³?ºc°@ öZ@9£ì?à"?3;å?%(Õ? KW?JíG?<šä? Zù>÷þ(>V²â> lÊ?c|Ö?„D>û2>•-½?©Bý?³k9=Ø!ž?Õ?6w3?‡ß9?7Ã>’zo>Ü‚? +k> ¿>U¸H>Ä$Ë>œ3á>—áè?&·Ë?}W£>}€<“d?Uº?Sd?ÆÃb?]Ô>dÄÇ<­=$=™âæ>€l?S-w?F=˜ì2?&z;>,5?¾Ãw?^›Ž?_Qk?Ä?#µ4?S#ó?o£?.ë=>I>‡8>af>19;>’Ì>ê!t>Ûé2>¾Qù>£†ù>ˆë>§*È>í—ã>î&?,O=?6œá?.ÝW?%‡‡>¡tÜ>øÓ?Š›-@I?ž ¬=1p>öž->ûtí>ô¦ +>ßuÉ>0Ã>goj>³xø>¨|Æ?œ¸ª? ?“>¯[n>võÆ?¤ÃÌ?ÐPc?²|¾?¦Ì3?)Ä©>¿‰@?_2Ï?6ó?>"7>úÓÊ>s@Ž=ið>–/Û? à>µL =ÑÈî>Ž.H?ù-?9ªÿ?LâŽ?Uó>òE?·µã?“Ðc?"M‘?+ç&?"ˆá?E^C?—øU?lë™>%mI?hr?ýù;?Èg4<þ®x=€Ðò>ü,>¸Èy?ŽÈ°?‘}ú?”6,?ƒ¦¼>›Ð‹>×ì|?ƒ±K?|þÀ?rš?Œ—Z?õ1“?Ýd>?šïÍ?™Iè?Úãj?ÊgÑ?ÿ>ø;Œ>Šx·?»÷Ë?¢™¤?P? ?O„Ê?}®•?ÉÞ?®8ê>9õ.>œ?9üT?#[k>…|<>ã#û?rE?YÜz>­½,>îYu?BÊ?Mó>ˆ÷?dò@8Ò—@"³?¿“ú?Á;?º»Ö?¦ÖÜ?±6?´°?¹S?y6?^G¬?Yk’?TŠ­?j5Ž?‰ø(?…$?€N?6Ð_>˜9?2ú3?¬¾w?ŸçC?v?J\Ñ>G\'?2|9?»5g?h\=º¿“>ïÿ©?ø9?zŒƒ?gÜä?EÀ,?1 ?Añ‚?B ?¾ @ \1?ë`\?ÃY?(n??6¤?fà?‚à?ZH?4m:?/Ë™?++d?•iË?Ã;í?X„š>×J?L +\?‚1?,>F>ü5?•@ó?ÀI?\ ?‡L?²6?ªþú@ +Ì@?¼d?—¦¿?™ï‚?œ7?‰GS?‚\x?Íñœ?áÑT?†Èò?lÓ=?]S?ZiÉ?˹±?ãt®?…½?lzH?¨X?´9?§?ŠÙ=~>·?qê³?‚™B?Š‹]?E—>k<Ÿ>q¡6?aòÕ?[³d?rÊ?u +?¼÷?Ûû@ðf@çÊ?ç<)?×¾—>ÏÇM>ÒÑc?.ù?/G?G¥Ô?(!>LÝÝ>µ\j?‹d?†¥è?}æì?CÇž= £>\Kh? ¨? ‡¡?PT?‚¦«?­1B?œ +?aŸä?™›d?Øúc?½<?žSD?£˜Ô?¥……?“HÆ?zì+?kƒ¿?p¢Õ?•J?˜« ?/X>Žð?!|s?hˆt?žÀ?¼ó˜?^ha? “Á?ÞS?-I?[ån?rS©?a:J?vk@1@)ä?éçQ?Ñ?¯Óš?°«¥?c·…?R+ý?1°?Ýj?EO?>ÀË?ê?)˜?œ)5?“T(?sé?í?#Vž? Õ>6.(? {Ö?ùõØ?»$ž<µëo>'©?S?-ˆå?„5?žB~?ÆYL?´é?¢´?ž}?—w¥?W1e?T^?œ3µ?â@@ +bÝ@œÁ?‘›D?é?–¨[?»ÌN@~h@5\?S4> {@2½@3i@Â@9é?Ä=r?Âyd?É.?Áϼ?:Ò?"[>?‹‘u?”-Í?»ÕF?¹¸Û?·š??±LÌ?Ÿ¬?•Ú?„¾?—k?¡ˆ?S™?†ò?<?„ÊÃ?Š™±?”€¾?.5?±ö?¾Ðs?èì½?[š>–ÈS>àÉ?Ýè@!â@"ç?uS?Ø=? +XU?Km>"A¯>m>Ö >Û©$?ê?×ø >!Uo>pÅB?C˜Ó?0]?øÇ@á\@X?Ï‹E?½Ú§?•¨‡?Ä`l@KÅ?â˺?¦ÏŒ?‹¼Ð?Lì—?s­Æ?Œ¡1?90s>ü9é?_Ì?‰¨?,(ð>òIê?~ŸÒ?™DÝ?6>ÏËÀ?•ì´?¡²ô?`Þ²?aX÷?'¢º? d?ÇD?ÉÆ +?ç»Ü?ï»q@!ÿî@*žÅ@;C)@*î¢?⊞?ð:É@¿@?ÙÛ»?sÒv?‚7l?‹.f?¨¨´?Íg#?Éey?ÌÈ÷?‹?!¢x?¡É»?ÞŒ?§J¾?„”?Þ€@ŒU?ªla?ŒYÏ?Ä&™?ÎÛ#?Á€Ñ?Çó£?©ÿ? Ñ±?-ŸÕ?(¾Á?—¢•?—çÞ?µš?¸ ž?ÆsM?ÏÚ#@mî@â?½öD?Ú¶Ñ@#mï@'I†@@æG@&gÎ?Æ%9?ÆÜ?Æ/?ܬÑ?ÿµ×@HB@ì_?ñ„?¯Â,?¡èœ?†]?ÖA`@œn?Òyy?“w!?²Q’?Å—6?§Øž?“Ò|?ÍS^?ïôÉ?Æ·-?· ¢?ërÖ@ÛÝ@Ö]@%?¬ZÕ?ƒjR?ƒd1?ƒ\“?E$?CEC?äî!?ñýÌ?Ê›8?ÎNû@QÈ@#?§8›?¢çª?½^Ö?¿¸—@4&e@'Ù ?RðÙ?`b^?æåA?Ýå²?oöŸ?ƒK?½æÇ?ÔF@ ça@;ý@¡_?ëµô?Š¼-?i>™‚ž?\¸@RÚ@ >Ð?Ù˜ ?õR@ýØ@+›?à6e?æ`?ç=†?ÏÄW?š„ ?eAT>¾Ô>Šð–>pBZ?XØ4?ù|Z?å¸q?ÂÀ·?ñ¤?Ã]2?¥E??q¹4?©†Ä?ðì@@ ©?Û­Ð?Š>0?ŒYÑ?˜Ôß?°R?W?‚i›?èí?Ätp@žS@qb@eG?®'g?Å?°?ûœ?Òm?-¡ÿ?„ÈØ?ÃØ¥?¥7p?€Ã?ƒK ?ˆ]¾?Ë€j@ ì[?éd_?º‹z?»Áa?­=(?ñ …@)]»@À?€RC?™M?À`2?Ø›Ç@-?½õâ?”?ƒáÕ@(õ@0l?ÿç.?´+#=³·Œ?Mc@#Y`@2Bd@N4?@lª?J? #B?%+¨?=YØ?~ûç?U,?ÖfÐ?ÒJ?¦T?±â¯?Í»€?ÒÌ ?Ñüé?Ù¯*@™ù@K°?‡Öj? â@­È@Ìj?û¼O?ù +?·c·?´Am?¥Œ˜?ŸÀd?€´?}*J@ÃÐ@$B?¥8'?€æB@ ºÜ@ïK@!S@…?†!‹?Þ‡?x¹¦?“‡ì?×ù¦?ü ê?ÓR±?»pG?žâµ?•f•@B@M«Œ@/3@€0?þry?Ι’?Ó?¼?ß@$?ÆŒ/?šÔ‰?ê‚ +@S×;@>—@\Ë?ô´Í?á0³?ß-?´¯[?·ô=?¼Úû?»]y?ƒA?„K?®ÿ(?¾M? ›*?¢R~@Ù»@„6@! @)ñ2@ Kí@ó@02Å@:†€@ÔD?ôy‘?üÆ@ âÚ@ä?ø#ò@ +B@5@/lÐ@'{@ˆ>?w˜u?w€•?wlÇ?M¯?ž`°?%ý?Þ *?çt?ö‡Ä?ö¿¦@ ‰Ñ@ Ç@Š`@÷2?K =P‹‚?œ…O?õó&?ÿX^@ûÁ@-h@Rø…@’6?’.U?¸Lt@ s™?ê®>Éâó>ûëË?áÚ-?äÑ“?Ð{s?Ê2?õô“?÷3K?‘YB?€×&?£ê¯?¬þëz\?.7?ÎVÓ?É¿à?°DÇ?°4‹?£Þc?¥{m?ÅZ ?ß‚E?f5F>:EK?K¥ì?Ðøq?Ó½7?ûk?òS¡?«ÓÈ?»¼…?”2Ö?† ý?sŽ)?i„?¼½ @  ?îè›?€à?ŒIÎ?®`?®E¢@ /Y@·?{÷? û#?²©@àû?ëcŠ?ÔŽ@´È@Hw@B$¬?gíá?gLó@ ¹@1:Ü?מ?p}1?äæ@6\@3ë?£ý|?¦y³?hg!?mv˜?¤²Ê?¬ÝÂ@ø@"6Y?ðt‡?‘S÷?œÔ)?ªT?ðŽ?¬¨J?¬¨‹?®5?»R%?¯­ª?ŸµU?¾Ôˆ?æ'v?¿?j?õ‡?½9c?¸~¹?§¢P?ªPn?±¦8?¿íŠ?µš'?œ½Š?¦²€?¹ g?£~r?‰c?„‚¹?“Ž‹?ž–?ƒ¸'?fõ‚? #@A?îm˜?­ƒ‰?­™)?ºrÂ?ËZ7?1õ½?f&?d,1?k§@ã¾@a'?hô?UXò?+²K?@èõ?žz÷?¦•û?Ç/?³T@<½æ@?k8?Èþ¾?žªÏ?ÒD?ëç†?¼\­?vVô?ƒæ©?±Ñi?£U?y$8?ƒ&}?}Œ?bÕ?Ѓõ?Ö·»@_¨@iÜZ?÷T?;ÿ?^{é?ƒn@×…@ª‚?í«z?ëb ?µM©?tä©?Î+‘@,?¡›Ž=©VÊ?=Á +?±I-?‘°?yk[?¹@rã?™7z<Ò:>Š˜ß?< "?Û‹?¬¥×?Ù÷?á +¹?Ú¤˜@ó”?ô?ÄÄ>â „>¹:ó?†Ø?¥mÝ?²Ž?¦|˜>õv>í_ÿ>’ R?¢õˆ?‘^?‡ë,?y7v?pÖ”?"z? »?n@¾?W_ ? ãµ?<>õÐr>Ænû>å=ã[ã<™ç?cš?=Z?‘ÅÀ?Mù4?4™=wê’=´¢˜>ÉÀ¬?ÏØ“?õ„†<Ú >„$…=ïhÈ?»n?^³ù?\¤Œ>àR‘>á^>áè.>âªü>ý„s? +?+#)?Iè¡?H<7=ƒ´S=-T1<¥ï:úFB>•ËÐ>ê+¿?}õŠ?É P?£[i?'¾:?vê>í¢#>î-Ç>î³Y>ï8??ÁÙ?ã>щ‘>­-¥>ùÈ‚?Ût?S?¥™?,E?r~Ô?QŠ¿>ôªH>Í7Þ=…êÆ?TÁ?N´]? +=?H€>›Vh>xÈ2>‚Q,>’,Œ?TcU?y%u>íÚ—>i+)?J?ÖV?ƒYÁ?  ¤?ªœ?óLy?bÀ:=p« =#%4>*ÿÔ>²•j?úh?}ô?S’?}L?ZJ&?ÄåÇ?—W$>¹·?§˜?‘ Ò?ž*e?ÍKÏ?Ës!?±KÞ?·º?½æî?ŸQ>ð™>æû>Û§>çOh?ý5?b“Ž?Ù ?ᤷ@Ý?Ò˜»?5±Ô?nH£?ÀÕ?Û=@&E5@&@2r?üï5>ÌÝ*?"bÂ?¹NY?—žm=¹7Ÿ>rñ†?ƒ‘3?m r?S>ÐþX=Ëü6>§a.?7å?‚>k?zKý?d°?J¯5?$Û2>}>=?×®?ÑY?“'£>®-U? êŠ?©÷ò?¶?»Ãq?Â\O?›|E?9t?Vs?ÂtÍ?ÀVÄ?ºe?·¥ã?µ9K?¡†ì?·¸?¼É?¿_?‹_í?¸? (¬?¢–î?uO9>ÚET>ùq(?)Í´>ÍrÁ>ÉÆ?iúü?€ž:?Š0?ºN?ùÀ8?…N+<êi?½w?öé? •z=´¿F>'u>€Y? ?ìt¼?©Â‡?g¥Œ?\bn?Gñ.?hÎn?‚[?‚Ã?‚?‚o?‚?Ÿ?²ÒL?82>'C?2„z?và>±)G<£ÛcÅø?<Ë>›À'>Œ7Ë?¯'u?ãê‘?›¥Š?‚LA?Cß?5>üÒt>ï°?©¨?Ç.¯>ðÓ>R,(?ŒÄ?-öá?w¿Ú?‚r?aÿ6?OH/?Ù´?^?ÛA?÷?€ù?€H?‚Kv?‚“|?‚—¦?‚Á”?Ÿ6ò?–…i?$;?&5œ>°®Œ>·ì•?R:¼?pàÇ@ Å…@¿?ãU?Ôžœ?‚Ïþ?~ O?Y]{?¦?Ö€?Ã’ç?‚èÖ?™4T?ßvÃ?³´?ûO?‰n¢@"37@ ?»5c?£”£?tc?QS•?ï ?o3?²û½?Áˆþ?ÚçÒ?¢ãZ?8$@?Ž¼Ê?Äç?å¬õ@þt?”¬¶>ÑŒÊ?R‰‹?™Qð?‰¶¹?lÍc?Ñå)@ ÒK?ÓÊ#?§Dà?Œy%?ƒ‹ž>2<-ê(?HÕ¬?ƒœk?±š?¨c?_Æ[?ƒÖì?ŸÄÈ?¦¹î@s/@º?G®j?7ûø?OWÁ?Jy?Dìô??]B=ò0ä?­ µ?´¹?Þ̹?Ót?„Ù?†íz?ƒ?O?“œ@?~I‚? Â? 0'?&¬?>2?“ê?•›é?þz??ö¤ç?ìÓ?Îâr?³ê„?¡V?[L?êIº@òì@Ê@Óú?´>ôñš?RBÚ?máÔ@³L@‡ö?}p?(1—?›ñ!?«™É?¯á—?´&µ?†›?…øŠ@¦@ ?‚¡%?tÎ9?H?Nv?þÐN?ñºÚ?Ç0?­ëÄ?PÓð?g¸+?„¹?l„2?;߶?@#’?Dl…?f#è?„Ç??)®>¡z@?dgù?²®?ût4@†…?ó{$?Ô€‹?W6t?Ùå?ž ?½æÔ?ô©y@7û?6ÐÓ?â= Ø<?­„Ï?®)$?Öp?ÛS°?êÕ6?Ú q?ªÀE?‹Bò>™žZ?2DÞ@ á?Ür8?N(ž?]nt?k ^?`CÄ?_Rª?'$5>ÅõÆ?‘‘¥?ð{Ü?Õ3?¾ü?# ñ=‚U`@Ô­@E[?Ê5ó?]²?°ãT?½Ïq?„ÆÉ?n>áx >ÙŽW?˜)»?š^W?®#?­T,?Ç:ñ?Æ¿?ÇGä?δÖ?ÛEÛ?á…é@ wm?ôh?a.P?”{E?éÎå?À`®?I’?„¯Ÿ?¿æ@ +H@Alú@$Ä@‡U?sÅå=R©Ì@y‰@R&7@’£?·ˆ@\Cò@ˆ)ö?ýô}?–°È?ïµí@xd?÷®Ä?érÜ?’p?ŒÎ?*ú2?ï?³…?Æ0?¨m_?§'¬?ÔÏ?ËæÞ?–¶Ý?ˆDE?‚¥?uÑ @%ºP@š?Ô%V?Ôrt?Ƹ?£(§?:µ?‘kò?éݦ?ÑâÁ?±Óœ?Î@(?Þ„?¼ö~?£Ì?ê-I@§?¸Ân?76'?¨%±?ÚÎ?äm’?ç¥?£.?ƒ®?S¡??2;î?_ ]?yáì@Zgã@‚¼?›6 ?}@dÜÞ@€ÂC@\á @PÆC@«w@?Žˆä?ƒ-ä@XËŒ@ZÎà?Åãä?Å<?èQ?ðnõ@:k8@8]Ð?›.`?¢1†?²æ? nu? Ð?(Œh?‰Ža?‡8R?„á•?‘*â?Æå†?Æ„à?¼7¿?§ã?T!?q¯ ?´ëp?¤rÐ?X<û?›ÏÙ@J??ÐÖ??»{? @H?ðƒ…?ª)F?¥„?–Jù?šSÃ?¡ž?¦®¥?·ù"?½d±?ºÀ?Ù~?ÿI„@ r@Ku@Yƒ@›E@•@;×?Ú7S?“š?r¤"?/0ä?ŸŽÖ?ðJ|?È°`?¡µ@ îƒ@J€C@¤?—¡ ?€¤‘?GµY?0‰÷?˜?™óù?ùØ?þsv@Ò\@7Í@<‰Ê@DÀn@O<ø@ 'â?Ù&?Ù P?Îö?¼KÍ?ªÈc?½ e?ÛlP?Óiû?Á¹?²‰å?¤õà?­e«?½•?Ú@ð@ß?Ê Õ?JEÌ? ;@ +ó@T§@%Þ²>dË?¹W|?½úö?­™ø?©Ð ?‹—B?˜ Å?•´ú?›*J?ðVC@·Ì@$-^@1Rõ@ ¤Ÿ?üX@@åÉ@&;@Iö?öl@?¯l-?7Õ?è3@ê¹?Ü“X?©ö]?¦€³?ž¼f?Ëž?û2@B±@2XÂ@ ¿?ÙÇ@ }Ž@Všä@UZ‚@HÀs@+Ón?Gø?_¡?’ªÖ?–¹+@—?ïaÂ=‹q‹=æ^@?®8?®Hè?«_$?¨pî?ÝSß?ë•L?£[?˜ƒ$?ù¾{@ZŒ@$±×@0>v@?YB@JÁI?ïyd?1y? ¨)?ø ?à0e?ÃSE?Ì'd?Ôô}?öÍ,@´¸@Å@$ß@n?gN?€ 4@Ñ›?üfÃ?ör?ö¹ë@I@^èß@$ó@5d@U2@è@K7@I?µõ?=2Ø?™©¢?âG@×l@ ¹?íùa?¶å?¿,*?Æ0ê?·µ?‘¼Û?›¨@G@n@–ª@3­?™1~?súþ?Í–†?éç?û¹ ?ÿt„?õzy?úôc?º<‡?43‡?:°F?A*-?. >’#Z>¤ûí?„Ý)?}?«…÷?²Ud?Õ?  ?R‘?Z^ ?›¢´?µh?ˆE +?>î¼?Á >ÿ‘˜?\ùv?ÊU?°Ì?Wµ? v>ÑØæ>ߣì?ªûÐ?³ø(?Žr?‹[?'$[?êÀ?›~^?â»j?⌭?Ìöà?¬ù4?‡P˜?Çã?¤5[?§˜Í?_LÔ?fgë?nõ6?möU?mØ£?mµ$?\«b?J&Ê?I#V?Z‚w?¦¡×@Ù@©n?Åа?Í+E@LŒ}@WÌ ?µbä?pm@Öþ@; g?êo?k¯Á?AÐÂ>ët?Fe`@a @°?°??°-n?‰.n?~èU>ôñI=Üäv?5F‘? \ ?£@®?¼w[?Ú‚@$çu@!O+?k¿?ZæÖ?Ù4A?ãcr?Ÿ–:?{Õ? -×=àã>E7ý?±? '{?.„±?>ã#?É:Ÿ?ßÝ?Ðçî?ÄÅ›@’Å@~!?éÝ>?ƒ ?@ܳ?íG ?ùnZ?„‡?´?º È?ÏÙ?–à?Zñš?³H£@„W@f&?Uè?bÞÒ?«nî?¨Ð?‚®Ì?€:??Û;P@ >?Íø ?fUo?”ìå?ü²?ÿ@Ï?¤Ä?¨£@Cà@ hÐ?ú?)¼Þ?r¢"?¡.?šgÚ?t]¸?‹^H?æ+”?æ. ?•k™?sN?›]?¬·?–k?„ó?Â_u@ˆŽ@‰›?¬íŽ?¬øu?,? ýæ?æ:@ ZC?Ü Q?º*?¨ÖÀ?Š…™? |5?ÎÈY?¯,O?Ë ?›;|?¥¶F?­ c?cX½?]˜w?¼\Ö?ãÍ÷?²ž1?iR?ae®?J/r?wù@Gò@KÁú@¬Ñ@^@Ë@Z@)_C@7E:@ ) @ÍÃ?ûN£?±Ò«?…­=Û¸Ö>ÖƒÍ?ÛæÓ?Ù!e@à?úa"@e¹@cÖ&@#]=@N?ŸÍˆ?r†?¬7¦?×öÞ?y³Ð>óê?gÜÕ?“ ?Ló§?¤8?æ>ÇV?‰ ¦?øA–?¨þ+?^‹?ªÏ@î.?ý¬k?¸LB?ÔÃe?ò&Í?Äi?¹5“@› @lsq@>?*@lÑ?L’²==¶?¹ÜÎ?ôO•?µ‰B?¡ÀM?å¢?ùx$>=_<“§*=­†‰?1%?3?¤?Rž9?1@/? >AÆ<#ÝÍ? ²Õ? ]>D:Ê>Ü]?`ˆD>Ù_6<|"Ø;"ë˜=Æxz>ðÙC?‘Ó¨?Œóƒ?u¿=Ÿ¨=œÔ†>\zÝ?în?ª5=ˆÙÒ>¿I2>“U(>.M/?ûl?•”Õ?’8¿?sla?hûO>¸rœ>€6Ú>]”ô>>‡7å? ÿÚ?ûi>Ç>Òÿ„>>ç³Ì>"C==ÈØ>4I>º[¸>ûv?T? M½>9->d¡?rp?g£>Žl=>3›B>‰\8>‡ +ð?=[Þ?„_)?˜Tã?°”±?„ÊÓ>öÍ>úÑá>ô´N?"wO?–Àp?‘¬Æ?§å˜?¤W?kß‘?[oÆ?>½V?:"=–»³?NFÇ?y,2?yy$?yÀ>>óÞ~>ZRç?vÝÁ?´ì}?Á=yã> ¢‹>Þ~>F\¿>Û˜?WÐX?fJ&?} ?=†x>ë%!?3£{?}àþ?~ ¬?~=_?Ð?‰=²?]Íš>–Ÿy>ÖZ?9ZT?Bo?{‚?Zx¶>ÿ¿P? ¾‡?n*?‚ýÑ?£¿2?…æp?T?tØò?ã„B?Í ?MK?‡Ó‹?úÇù?××'?€£Â?VX>¶ÿ>Ñdè>×RP? · +?‘ ?©v?þÁ¹?ßÁZ?§?`'»?)>÷]ï>Ѓƒ?`@7#?ÎI?Ÿ»?ƒè>ÝC³?8•Ô? ¢r?±}?ò•ç?´\â>/î¨>]³¼>¾çp?Hõ?†™?‘.L?´¯?£þ +?~ÕÔ?V g?  ?n~ƒ?Â?®7?Žž ?ž@Ç?°Á?œr ?»ª?b£?8Õ™?=±h?B‹ô?a½?Ðu?·*?>£þ‚>Û÷>¾ ?ßX?€Z!?Â×›?A˜?({? œ´>þZ0?ÒŒ?¼Ò?h.£>Ø>Ï.Û>Åα?·×?Rö²?Xôp?R3ý?n(?‚ C?[žö?F–Ú?' +?¨œ?aòv?‚`?‚á?‚!@?š`P?ª° ?F×½?*c?,È?.¤>ÿÈ?8ke?w@Ø? >×Öý?Ég?ôÐ[?ks¤?*ÖK?O«Û?Sj>—\?!RŸ?F>·G>™…›?ŒRñ?˜»¹?„?‚p_?ÜM?ê:?Eéû?&Í?ªBL?¶…?¿Z½?£3? +Ì? ‰h?‚ˆ8?‚¿H?ŽW)?ŠË>Qd>>$Æ®>ÑU @&1 @>@¶=@ ©ª¯?RÎ?Ϊ­?ÂEÈ?‚ç?¶åõ@,b0@ý>ðü?NN´?ÄÔ ?ðf‚@¹á@O¯?¼0´?µÍ'?«Ž?žÖ?”QV?[¾Ž?l?„Û?;Ô?`Îœ?¡sÍ@ \@3±N?çì?ƒW‰?ˆ i?…/¼?­Á ?ÐH@?UÑô>Ïj…@š@6ã ?Ç.+?ƒŠ3?…½?„In?ç1v?ÿG`@X?@Ç?DÉô?±g@1¿@#Ú§?ÅùÑ?ÃA’?a9a?Tf(?:š{?@m!?Gí«?>á>îe>þåý?ƒî?ƒô?ƒø?ƒúò?„í?ë%?¹_¡?Å7’?æ~ö@Zº@'5c?ï4a?úø?5ÈÊ?~G‰?‡ä?–Ö€?Ïz@@?Ëu?–"•?eJÖ?0Ž·?¯â¤?íä?s^ï>õB$?2\?JB7?Ät†?á«=?ØÝ^?ÛeÕ?’úY?„}¬?VL?„?HÞª?@Œæ?ƒ£?‰î@ƒ—@úö?„‘Q?”?ø0?ì7«?ÐÑý?ôÐ@1Ýù@‰)?¢Sš?p ^>µ¿?-{D?‘S)?œäú?¬­?†—[?K¡†>Ãàþ>aï>³|ÿ?ŒÚÂ?Ç;î?Ô?ßó)?JKH>ã!‘?“ ?ZÇ>›K<ì£Ý?®¦?¿¢P?_%>é¨2?Æ‘Ì?Ä«Ø?“o†?£ +õ@P}@Àô?³Q?§›J?S¦?K)æ?D;¨?3.%?ëö?’N@ ó?¯óq>²Ý>†µ¦> !É?Áµ?„é?}8š?w·™?Š~ ?ŽeH?à]•@û?s3? ôø?{@ï?¹2>¤ßT>R[?Œ}¢?’ç®?ðož?ó‚À?dª2?uߊ?Ç<À?ÇÝ}?Èv?ʃl?óxí?é·ž?­ý?™š?.i8?<„I?hyË?°@ +È’?äÁ¹?œÑ?‰Ãb?{‡õ?BtÏ? +w?MâŸ?q†ó?»…ž?ïý?×EÙ?ÆÕ&?ø¤@L&@"‚Š@#±6?ó¸?âr„?ø¥í@t^?Ï?{;?Áê0?Æ‹k?Ɔ»?ÊÝ@ `@ ?Ï]%?Ù?êÏ]?ëp?ËÅ`?ý*&@cüÙ@\Íž@@)@"µ—?ÆX?Ð÷È?á{€?­v8?I-á?}¡ö?štå?€î?ú5S?æ@Å?Êx†?´àP?«?†©é?RÌÿ?¼ +?ñŠ=@¿@-F?²£9?S¡J?ãfŽ@ÂX?œÁ=»_ì@g”@“€:@’3?¹ u@'dŒ@8¬Š@7•F@:CÇ?ƾV?½©@ÖÎ@ ³@Itø@N!q?çŽ +?ä/?ÄY?¾Ò?Re?[Ð?‘?ˆó°@ZÌ?ü[“?ŽÌ?™á™?ÚU·?ÐþA?ÃþM?©JI? /Ò?KÓ‹?Ãп@š¨@‹Ó³@^ãé?³Zé?¸²u?Åÿ?Ô¦Ò@KQ?ôóð?ÌÅw?Ú¨Ç@Ç\?Ø\?Q‰?d6µ?„‹P?s’?Ãp5?Ã8}?¯}?«Í‰?µ`¥?ˆÝy?ž¸?¯¹6@"N@ + @›G?¤‘Ã>Í~j?²é@þe?ï?•[C?š¦þ?­Hv?½0Y?¢@Ls@J¦ë@ˆ?Á¬ø?Êû?ÓÀ,?¬¯?€÷«?šW?¸æ^?Ôé?öô?ÿ7s@j?Ö +ü?¢/ ?Íõ–?õœ?ÍŠ"?¡ ?ëy?•åq?Ë\5@?@¥@!*s@ +†4?ÓËq?©¬?[÷?£n–@?õ6r?æaE@$Ø@T4Ä@-æ}?½W?褥@Zþ@+ñ¾@H +@ á£?¦KŒ?àÙU@6Xe@"«™?ÛÂ,?êìÖ?þÍö?þ•â@ÍÙ@ú@’+@ ‰‚?Ò¾¢?È ?á?’™ª?Ѫ?ÐgØ@A?úcñ?‚± ?‰Æ‰>ãy”>Øßâ?ºõÁ?½üt?½ð…?½Þs?€“Á?ewÕ? ÅÄ>üØf?ÛÁs?ôŒ¿@ SÎ@ +ü[?ãW¼?Úßâ@e&×@Œ¢{@äâ?±9@‰F@µu?ÍHL?¾š?¥²s?±ã¿?¯Ë?¬DÏ?»‘Š?Ò(/?ôO@³á@Ý(@SÔ@í$@†ì@z?Û­=?Áÿ>œÑä?µ¨@]@+K’@šä@•\[?®ô¼?¦[@+XT@('­@9‡­@5in?Ðð²?ºéc?Ç‚?¿²j?Òƒý?ÞRÁ?ëÜÝ?ø—@[’@*)5@à:?øOÜ?õ±?õy?Þ±?¹ôM?ߨ*@ðÂ@.[?·;°?Ï]b@q ?ý]3>÷3.?©¸@;;6@>*®?äÐá?âé»?Zê¿?2Z?¾º]?ߨÜ?sÈ{? ;º?·q?ú¼¾@"Î@“]?¿i?u‹Ô?ʤ/@% @ïI?¹¼è?È®@ sS@zò?kÎÑ?d€@*ÔÃ@-ô:?Š8Õ?t6Š? ž?íÞ?ÄñÝ?ó¿Ç?ÞVA?×l?È#Å?¶€ä?Ÿ5S?w"Ç?X'Û?+ +É?-"`?NS‹?\Q÷?“8æ?œå>òC >ò÷>ò2}>ñè ?ä8õ@av?”+D?BÖÀ?`Þ¥?q4$?>oÙ>á:?Öç?›¬>?™æ?7?9F¢=mÙ§<ý+[?aµ?u–3?q¹B?o¶˜?IêÄ?,(6?c†:?•?йR@s$@Àç?y@>sŠ?ûS\?Ì\¶?„~È?˜°«@u'@6¦?šà.?ž°‡?¹Á?¹°u@ld@-w?ᘀ?uGI?}—?‚oø?‘Df?ÊVv?Ú“?éN9?á/ž@Û@ ól?Ö•?®ÆÏ?ªû ?¬€‰?¸ ³?Óëù?ÁÆ?„?‡ÌÙ?•™ ?’žt?«uË?»?͵º?Ú|?áWò?ç¤h?ÐÝ‘?q‘`?ƒ"›@@±w@1¬?ú˜­?çj?ú?­8¥?ŒeQ?5m?ì>æº0>Ý<›¸U=æx@,Ò%@=n@ Е?æd;?çR½?ÛX?¾Ü?›À¡?žœ?‚ºÊ?s)d?lô?‚¨.@(y¾@Iá@ë¾?ØiX?£(>æ •?…}@ ñ?ú˜€@ì@*È@Õæ@Ü??ÒêT?›?ª9Z?á)@?í¥—?ÁBº?¼cW?¤Ú?§›;?‚ˆ?|iÏ?ð&í@äòÔu?@Ó?Qˆ‡?ŸTË?ÛI?Ð2ê?§•µ?Œœ?M,?#b¤@i(@h|?ð!h?êØ?æ¶?ôšA@;)ˆ@cßR@,@~?ðœž?é º?¶“(?½}?ͤ?¹ë?ƈ¶?Õ@A„W@>Ô>@wÁ[@†}€@@ùÎ@4V,?® ?r +™?ìo @j9?“<­?)v?œ°?ÞùU?ÍF?¶QÏ?Å…y?ÏB€?Ú"0?øOÍ?®Ã|?Í€?EÚ—?©R}?·Šk?½ß?öºa@lO?õN? ÔÛ?h3Â?2dW?ÍO@/Ù?uò!?téh?Å£?­ +›?¨°E?ž¦é?«§?ti?yrk>î+C>¢ 7>›ø@?A×µ?•ø? ý?øµ?uc?ukD?Xö˜>7‚å? 2~>£2Ð= ê>é ?­?ç›ÿ?ÆÏR?º]É?§ŽŠ?¯­€=âŸ>®?‚áú?–uJ?€§Ä>=„ë?€¾Ò?('>Áq™@~°?Í,?À”T?NÈÙ?ZÈ>x,>µ ?á?$Gö?K€?:zï=wŠ%=É2?Q?ˆ?g¡¤?Ýj>Ѹ‚>Æé>¼(>†nð> (>C‰>pi>ŒWp?.e??à¸?.è¨?$Å?!«?.A?ŽQñ?ªtñ?¢\?s ô?s}v?sF‹?‹2?¬o@?žQü?…ëa?\?>_Q?B_?º–?¡h>áa£>÷Z?*cJ??Ag}?Pôè?V¾¯?\ƒº?—’ ?©x?5Ôb>ìAô?M¦?s¼³?›OÀ?® ?¿?<?«&Ñ?¨”Z?¥þ@?M‚ +>ˆZL>ñA?DfS?`8?~5õ?'çÌ>E?!Ý?¥ÀÌ?ÓÑ@º;?ìÌ¡?{Tb?SËÞ>ÿ¸-?uÝŒ?î‚ ?ËzÏ?Ž"?) ?3=Ë?we%?χã?¼v?žAÕ?´«?é°"?Èm$?Q0?S?-?óÞQ@^@ pÿ?ù?ÄÚ†?ÕÈ?þA?¯,ö=aŸ?;í–@ Ü@ aN@!zû@bH?~ ž?TäO?E_?qÏâ?â`Þ?®˜'?†2?&sð?.F?(ö>Ð`\?]m?Q]Ü?@9?zƒ?v?’×?4<Æ?}º±?R É? 7Ð?N·,?ª%?eÑ?GUP?gà?´²?$ÐJ>Xýç?Ö?‚»??b’Ô?KZ?P)_?Tü?YËO?^™~?A·¯?^Õ?}°Þ?°Í7@ +ø@81 ?Îi}?@?ŠU?Âæ?p ½?òò??\ú?eÉ­>Ý1>"h>øíj?2äp?gÕv?‚~?ÆØ>‡!>Éí‘>Ôßo?OŒ?‚Ú?io?ay?IÓî?5)0?8?"â?&@?(_?fÉÑ?~T(?#ä¦?]K?°š?9Ë?‰½ˆ? ¦‹?'…R?C²?n‹D?‚J½>Ò›Ä>‘kC>yèÒ>…Kô>t€Å>Z˽?\z8?~U?9ßG?;Wì?€¤Í?‚rY?Ÿ ¯Ø=Ÿ÷k?!?ºÚ?€GA?x(Y?q?t“?çê?«¸>Æä—>ÐÉê?5<ô?;£?«+?ÉR@'E@T ?EP,?I¹¶?N&/?FÔç? úê>ëåa>¹èï? zŒ?‚ãÖ?gÆk?SP>Þöy=ºÜR?Y?Å÷?Åò?˃Ó?{2?"k?X?K–?<§ó>„Tž>ýh ?2ÍÌ?Šœc?º½?š½Ž?ƒ?/?Ü™ @R?Ëm”?ƒS…?Äž8?ïž‘?x ?)µ>Ä-½>gü9?Šžö?»h?’C­?ƒ„ž?¼?È€û@]é@"ÒÒ@Vê¦@^ºù@3J@ ¼@ÕŒ@ñ5>È‘é>¤'Ì?0'?6Çÿ?Q³~?YúÁ?É-º?¾`?ƒá ?ù×?SŽÐ?`Q?ƒô?†I?dÉî?iO?mdW?0šä=øÚ?"±@óç>ð?)N@¢@ +¤?º`?á™*@+‹?ÿ;?±™H?”O?mÊ?ºhv@½í?•æ¿>‹´>‚ŒI>Zím?v¬?[`Ê?¨‰C?Ç5ê?Ò¨À?Å›@?#ùy>¤øl?­²œ?ÍMå?Çé¹?ÇH)?‹ÍÓ?ˆ u?ºÃ}?¹n’@É?ýH?î ‹?Ûs÷?q´ ?€.¾?„äÂ?„åª?„å?dÌ•?åx?„,Œ?ý‹W@@GZ,?õ»ì>´Ïµ>þi•?)‚¬?\-?„äq?V+?+¾??ÄÅî@-=?×Ý\?ÆKz@òä@_È?×Ê¥?¿=?uÓ»?WÍE?˜q?•žj?©ø,?±´S@ †@œ¾? b4?·Åû@'H€@0©?„ÄÃ?Šò?ž•C?œgí?š8v?”î?†ô³?Á!x@g@Œ +@%×?»½È>$e£>¨ß?H?ø¶°@<]É@(,–@k@, ¢@1×;?ålå?´jë@ßà@0ö´?Áõh?Ÿ‹%?ˆoº?„kD?¢ö;?¨9Á?ûX2?ùýa?®ÀG?»*è@J~I@:é«=¿C?7¬?H²š@ð?Û~?WF?3¿?‘b?”¦Î?‹Ú\?ßB†@9Ðz@ìZ?f£8?[+¶?XO@?À-#@ Rk@à‹@'Ŷ?ðßø? E?ˆ‘i?oª'?Ôͪ@„ï@!P¼@3r”?ƒ¤>XGî?ÞÖú@æÿ?ÞÀÄ?Å9¤?ùÏU@£@QWc@[®Ð?¿4€? 7ý? ¶? ?q?ƒ8+?Óa1?à¬@¬@È­@@ËÀ?¥“D? v§?õ§? )?Ú=Á?Í‹8?%7¤?Gq%?ÐÂr?ë<@<Ã@,&J?Ãûs?µ¤â?€ÉÊ?€Çæ?ˆõ@?Ƕm@>¶@/²‹?õk?êe6?×Ò¤?ôŠ@[@ bæ?þŒÎ@V¤@ º?Æ7?Â>¢>JÜ?&¦Ë?§‹Ú@÷q?ç+?-W?RT4?†¯9?â'=à0&? ?´ž?³d0?ÑÒâ?ÛF +?õdø?àØ@?­?˜Nñ?MZ‹?z´?žáÞ?ÂÅ{?åú«?Õ ?Á¤2?̯å?Ü»?É’“?ª`?£ì?›±©?qzù?!BÌ?¼U]@ 6·@ê?ºÆØ?ÀÆ?Ëÿ~?{½>€K?ˆ;?€q¾?ŽB?§Ëy?Í?û®}@E @<•ù@ì»?׆…?î*Á@ 7?ðz??µ:?ÒL*@#¦?ã¦l?´?®¤@í#?õ‹?݉?×Y|?²ö?´|t?ÅÇ&?П+?Ñœ?ÆÞQ?¶óÐ?§Ì°?Ev?6ºÿ>LÓ>ÿtÍ@ Y@߈?Üñ\?à7@Îè@aS@ñå@€z?½Þ?¼Êd@#0@ Òœ?òKý?ï;p?“²S?‘ì?”‰,?—%`?R¥[?@צ@û?@+Ó @ àC@$ÌS?Ûú™?±RŸ?û/@ º?‘'?#-P?¾(‹?ûý¼?°ò?{¬?Þq=@´g@‘±@$‹ë@ W1@&@ü3?à#?ó5]@å~@BÙ@âÖ?ó6?=Vå?y×›@ƪ?ýöv@ :µ@K@@'@³f?€Ø¥?ƒ¢@Uä@Tì@ÎM@³@-1@*$¿@WÆ@\¶U?÷§?º h?"J?Nï@@QêÝ@(û@C?æ(Ï?À‚Ó@+¿@5«ä@ *—@C­@,b@‰~@Z?N0?„@$(@ùÓ@bìá@[?@"yí@'?ÿÒŸ?ïí½?l=à?(çÏ@få@7ý?ªè?’m?Ò¬—@‘ë@z¼?Ó)Õ?ÆU?ÀìŠ?ÁËà?µí +?¶(ò?©Ÿ?µ.A?Îç[?Õ+Õ?Ûp?á¿X?€äF?t-J?ÞàŒ?éz)@Ã@,Þ¶?ïJä?¶§Ó?Ì‚¤?Üc6?Ù–?Õ¨?«ëº?Aoè?5š>ò®’>Õ‘ö;¬¥A?©^>÷Ú¼>ò>ñä„@f‘@/H‹?¹‹?LQ? >Ë„y?S?8ù?=ÿ?(Ú~?|Á>c9>]•?@¦{?Àç?lJÀ?oîP?oИ?o²á?0„?Ò1?¦A¢?â¸Ý?È{–?µÛä?јF@‹?ôÕ¼?²æ€?²Ê¤?²±?²žK?€r?|„Ê?Ñ0?í«Ý?ݱI?ä.Ÿ?ÑÜÙ?©É8?¨-P?—vÚ?®tl@V³@Ü?â Â?äÒÁ?â©ý?ê¹Ü?®±{?¨h¶?ªò?¢>#?­€J?°…?¶!´?Î~j?Ìz…?-w?&Ž?Í1 ?ábï?»–ô?®\P?fÇg?%?r9¬?Î,8?®ÓC? Šœ?-ãÿ?Î*û?ÚZ?–QÑ?…b?¨%o?· Ù?oâ&>êw;?¦©“@@cv@9Gª@,0@#·@d@4?ÂXì?Ÿ:?›‰t? ¢O?Íb0?ÿm&?½‚=H4d>¬¿?ç½^?ýÐ@=¬@ÉJ?Ç =?”§?˜øÈ?Fr?ˆ1>æ³6>æÇú>á×0>З¾?Ë…?É{R?âÂ8?æ[À?æ¤l?ôh•?è +?“‡#?’Çî?ûgý?í¢?ãDØ?Ú6º@"\Å@Cfî@Û°?u_Ý?| ™?"@Ø?E£Í@%‡¥@'êÒ?.…Ø>ìKé?”¬ø?¾ŒZ?¹ n?¬Á¤?šr+?foÍ?…?ú­?õ#?cK?]™E?ɯ/?Ýô³@Gh½@äŠ@7·o?¥$?¯n‡?¹É·?Ë'?ÂJ?Ѳ°?ä¹?â0?^×? ^?ª+é?ôÞƒ?Ëi"? ½?¥µ5?‚‡:?…lÝ?ïÅ•?ì˜?ë_?êÞJ?žI…?z®@ qÈ@0î*?Ô8`?€ƒ?¡Å@X-?øB-?‰E7?’li?ŒÅ?žB˜@CÊA@G_@s›@Á@Oß@Ÿi?rÐ?œ%@ J@6>V?ô,ƒ?¦fÞ?š*)?Ö{?~ÔŒ?yÖv?¢4a?Çÿ‹?¼à?³¶3?™`Ö?vÙ;?^9? Y×?9Q?‚0P?MI?2?hÐø?~Þf?í»?#Ì?zUC?¤EÖ?§®å?Oå ?2)ñ?A‡G?Q e?Ra…?54ú=3D=9Ó?óë?+|ã?€2?UCÎ?Y“[?Eöé?ÏÈ>",f<Ë5 ?<ï?]Â=Ô§^>µ›;>ضÇ>üIA?k? f(??™Þ#@·?Š$1?[=\S?+Üþ@3?¯¿=?v=ÉÜf?!z0?õô>ˆ…\?Ý6E?¥ï?!Ö¾>à¦:>áo¢>wo¿>@ŠÁ>ÐÞá?œ?æ>åØÂ>æ„>ç5‡>çÝï>>ìyÕ>ìWp>êc >qö¨=Àú¾>²^ ?%›¥?$ûD?>Çš?&‹?6?Dµ>…ˬ>úë?Ø2?\ë?b!ý?h!È?n']?sYô?ëX>â>5µk>3ú®>³»R?T‚Y?J‹Š?ôg? ¶¸>‡©>x[¸?}§Q?‡IY? +Kú>ù.|>ùz.>ùÂÃ>ÓÔ>ÕµU>9ùÜ=kAX<ž[/<ìj@>Ë>.?6¹?Ã5è?ûR=?µø=?šÇ?Â#À?å^ë?³Ûâ?ƒÂ=?>E>ýÙi?":Û?O0¦?@à?#Ÿ?(3>þÜ ?¤?¤ó?ˆ¾>öˆX>ÿ©>ÿ´¸?A|?3>Ö?2~¢?ƒ?!…?&jQ?,]Í?BÕ[?f@s?€n)?k Ð?F(é?Dq~?1&½>ä? Ì?Á.?ëï0@&ÂÓ@‹(?úl×?é±?Ã*I?¿$Ì?­O÷?£fB?¤¥Í?š?„?h?Áfš@ ”(?ÎBy?7M ?ƒyv?Áÿõ?!>Ý+¥?5­?˜M?ŸXE?°xî?`Àð=ÌAK?‡?‰\%?R³ë?‘/>”Ç1=€>ð»?tºË?•lj?¶U!?­ ¯? {Å?_?³Î?‘…Û?˜˜.?fzÌ?=E.?JŸ>‘o)>Ñ©?Ìk>ÖY>·Î?'¼?gJ4?#do>Ýõñ?7? Eï?PQ¤?QÃ?§Û_?Âã|?fõ÷?ðý?SÒ?õ‹?H¡>¶Âª?Ž)A?¼¾?¬Ø±?¦b"?I>}Ê2?o'®?&g?ow°?W7 ??? ìC?Ã+ä?B·Í?"t? ¸š? +S6?Öœ±@Ã?˜·d?yDÙ?t·X?p1?€?‚=?X÷?C~?r˜S?‚HG?W z?Lƒ?O‰?BK?±œd?°ºb>‹×ô>;7w>öœ¼>ãc?^?gúÏ>™–I>ryP?‚>ò?‚ÔÈ?‰•?~Z<Ú¦=·Á9?>? #F?pL?`–b? ´?Ó†?)ŒS?.…‡?%è%?u/Ô@'ÎÎ@ 3m?Àµ?Ý#?;aN?h„?Ä:$?œy>œKl>ø…#?‚âb?‚è?‚ëÿ?…ª»?‰d3?²G£@éü?º»á?‘”>¹§û=g’>˜‡‹?Fú?ë>Ɖx?[?+º¢?œØ?Ýn–?—^O?='?e¸Q?„8¼?…E?ƒS$?½ì2?ÜÇ?ƒ@÷?9 +?‘.J?¡¯¯?“ï÷?ŽKŠ?Œ,ˆ?Š +7@ !¾@!º?_nr?C{?Çs?áup?¦fú?¥Û?\]?aC»?î[ ?äÇ`?™”7?–M¯?«c"?­Í¢?ä]2?ÖŽs?I¬?B?Ó?ê?Om?Zä¸?Irà?ý>ösP>Ð$)>çEŽ?î?BµÒ?”kñ?¢ïá?ÃÖ,?ŒÐ}? ¢•?ëÆ?5Î?iQ?œÇ?¥Zä?¥RW?„;?^ü¬?óÄä@!è%?櫦?¿å?@é[?jË?wа?ñ,?xq6?|μ?«½?²àŽ?˜|?”™?ëÇŠ?ó@‹ @#û?ÆÚN?¶˜ü?'à?.Ë?º6 ?¡u?H¥7?I|?ïÌ?éÙY?éw?Õ +?¯GLl`?M/h?À_ê?‚2Å?/:?!ùj?<Øø?œ6?¹Bg?±"Õ?³°‡@]0@‹W¾@L,?èµä?ï"Ø?õó?у[?ɶå?ï…? Þ?ÄßÉ?Ãw0?:[ç?Z< ?Ô„5?“?áê? u ?0cL? Â>Ð:!?P£ª?Òþ—?ë¬Á@ñÞ@í§@p°?Äa¶?[?ü?_‰Ô?cÔg?z´Û?„â…?ÄBÒ?æ}‰?К?ÇR§?”à«?ƒÝ?+õ?`Ì?ƒÚ?"ÛÈ?oà?wA@"Ã@'Þ@ S@À%@j@q?:Ÿž?}C=@$ï@W?Âkæ?²Íx?’#?lH?°ò?ÌKÿ@AÐ?ñ£?Ç Ü@/õ@*h @'±¢@%θ@£?Æ£?ª?2ŸÞ?«K?ØÄ@4™@,U)@ ‚W?÷U @ +4¦@‚È?x2?9N¾? ØÏ?§Ó©?PC9?JÁ¦@@SI?µ&Ú?±Ò:?Ì•Ö?ÉÚî?ZEÂ?;Ðã?0ïÉ?^‘Ô?ÚÒ?â«+@|q?õhs?Ãkµ?Ô¡¿?ùÑ@ â@*Ïé@ s?µï?«c>?œøô@¹@9`9@ Ò?Ô©Ð?õVo@É®@ + @ 7°@7ÄL@Q@»b?â? ó?ƒ—Í?”ø ?–Ò«?´³¤?ÀÙ?ùñÄ@n¤@xŒ@ +"…?É0a?»÷j?Ö}ª?Ð_Û?¶?²Â0?0äÙ?28@hÃv@`,{@±@A_?á¦ò?ÍßT?ò³?¶?™Eú?”Jr?‚×G?—½©@Å@ÝÚ?ôJc?í”Ö?Ãùã?µè:?‚Þ?‚ŽK?‚‡'?˜è©?Ø«?»`e?]>?¢?Àn@ †¥@Ž„@R9G?ŸDÅ?Û6x@% ?öÍž?7Y´?Iî]?[Km?Åe@+w?ß8>ÇÛû?l?ä“ç?ô7æ@9Ä?¬{>úBC?7¿Ø?˜a?£ðÚ?Î?àë2?ò\ ?Ú†­?½?£3þ?O•?¦Â?Çz¢?±»?¤â0?š¨¶?‘—ë?‹• +?ð?Ç9@ ½(@S/@%Ðâ@b»@2 ?à½?ƒ7?ÜÎP@N@›@ã@!†L@*os@Ìs@¬?öŒ’?´q›?¹\÷?ÃЖ?øìÀ@&Üm@ì^?èŠ(?ô²@ +@@ÁŽ@'íý@2çê@C Œ@\#1@(Ce?ƒŽ@?™ä®?¿‹²?à(Ý@xi@Éd?ÜÈv?íØë@2¹@ð·@wc@pð?y?Fî0>–©?.PÒ@ôV@gú@Pç@ T”?Ó!ó?Ì«õ?¾eÐ?ÅqË@©N@:?+?˜M?AÒÞ?P÷v?|!?}$»?/õÅ?/%ª?» ð?ÁÞ?Ü6M?î ú?ç2?ÙYr@¡±@ W÷@!D@+<@ð,@=—@î?ýó6?‰[¿?Ha?Ñ)e@3á@:m@TÎ@3H´@Ï®@3ì1@W„¸@%™Ÿ?¼#Ó@û)@TÐX@I5Ÿ@/¾’@;2Ð@qB@Q;É>{ü>¾¸x?ùüÕ?þ o@’ž@Yz@?ï~@AMJ@Cwê@?.Ï?özÓ?ón>@%˜¦@5ûâ@,/Œ@ ‡?ªV>?PuN?ã˯@ Ž@/y@::@*¸°@Ú@Öò?Âð?Æ<˜?Âw0?Ðo_?ÿW©?ém»>÷e;?X%d@F±´@Lïy@‹ÒV@Da@h\@mš²@R•V@PÅm@ +5p?öRà?ó –?ô•t@4 7@IG@:É@2Òz@ (c?ÉIÉ?ÛÙ?ìs§?ÍŽç?š)à?W™?_Šœ?]rö?C?Š›ó?“D3?ŒÏÆ?—xW?ˆ‹)?®Ðó?ºõ?ŸûC?¡Î?jˆJ?;¥E@vÁ@EX @ +D?•R?yD>òÞ9>òÀh>ò¬~>áŽÒ>5¢k> U–?_Ž¢?lÁ8?[ß>ñÞ¯?ˆÉ?¨ó?©vQ?¢CË?š-ô?ŠØf?^ÉG?0)l?pc"?ÆÛå?Ï«L?ÌSÌ?³Ÿ@&‰@,ú?ôš‹?é~@øÜ@u¼?ت[?»¦?áY @Ån?åÙó?°#»?ÈÙÒ@ +¢I@æã?¤ñJ?¨Dt?¥L˜?¬wÎ@&9ì@*–?”³7?:%„?+#??Ï*?‚µ?¹_‡?˜T?9¦?Eš–?tFö?…N¬?Ç6?¿§K?.&¤>õ|!>Vb~=ò~Ä?†‰?k§æ?™ò;?Ô—]?ÝŒß@ Í?ó“—?MSu?&bc?®š7?¸Íò?Šç?l¦}?+­–>ê)B?xÅà?éô=?ÝÌþ?¦Öß?š¤"?Ù¬?ŒÃ>?Ü<|?ÞÚH?òd:?øº›?™º>ëÂÉ?lþí@>-@^=@ ƒ2@¤)@ßU@Ff?÷²&?çôT?­Öc?€¼@^@z&:@YuÕ?Xç?F¾¸?$¹Ã?5ÛÞ?—ßÒ?·•Š?’,?fìÐ?fáN?fÏ»?O ?'ƒ>ú2^?c f?Z,w??]H?€{‚?£=x?·zf?¼Â/?µB'?ÇLp?Ú§Ï@9”è@Dôä?V|ò?_*?Š¾?²þä?º0G? þ±?ŒÎ4?‰ÚA?~Ã@€@BE?3$>è±?L"ˆ?yп?¬›€?Òáe?œóT>éÒ ?<0,@Ñ@ Ud?;Î? ˆÓ?½ÅÝ?æì@Äp@74ß@ ²è?gZ\?gt¯?g• ?gÆñ?Pþ‰?'q?¢û¡?±6?Æ?¿ô¼?ðU@•K?ô5?—ã_?Ž)ž?¯L—?»&d@-ÊÕ@-Ú?ÄIß?½á•?ÂýW?¹ž@@ÇØ@%”?ßÅ–?l‚?ú–@kFr@* *>%Ë’>›Ü?#b,?I³A@&|®@)±±@n?Ûê=?­ÀU?v þ?ç&@!dé@8_?¾#?piÙ>žÐÓ?DÅâ?ž.m?±£?·˜?¤ Ð?„=…?5º>ÿ(?ì'>Æ+ò>ÎMè? °?Z[p?ŒrÂ>àbî>Juµ?†b9?Ž/¤?ݧZ?ÛéC?Á?Ò{?ø?Ša?§9?Eêe?;`?…“~?œ[9>§">?0B? .? Ñ>ÔÉ(>;>4ÿÇ=Ê‹>îø?!~?·«?Ú¬ð?€Ï—?aÒ<×þ?Võ6@ Ï^?…U>õ? &Ð?F-N?ñ¬M?íç?Ã>à½t>áƒþ>âJY>ã ³>…ú]>[§>„pf>åéÚ>æ”^>çC>è`°?g€H?g?B?œ¾#?¢¢²?qüê?:…Z?$?Ts? S?&R¿?1"ø?5¯‚?"ßK>‹Þ•>˜Q6>ç›è>ñV+>ñÏZ>ò?P>ò°{>ój?có>ùšÅ?]¤?¦oó?Œšê?H@­?3ÙZ?ü½??ðª?¢ª?’­Ù>aM¿>wÄS>‡ +>’U >ö•">ù+È>ùxã>ù½R>Ÿ¾>\?Z?Ã?«á,?·l?@º>ûÈE? «[?Ö¡—?‚Å?"¯ï?ŸÀ™?Õlh?ŸPt?s8?Ð>ŠE?ÂK?.W‘?|©ª?£Ûc?cY[>þÕ¯?9ÍÝ? ?hÂ<˜¿°>ÚR?ŠúC?€—Ž?±#>ØÔ ?–xm?LUx=‘¨‡>Õf¸?€ê?€ññ?‚\b?„ðo?‡€ø?†j?Ñ?·2ã@;?º/'?X~?Cí?BW?1ª?€ û?ƒ‡Ó?Yb?È?ÂË?“þ]?:¡)?4“?²Ì?y\?º&?ŒÎ:?Ìb?7*>û/:?<”?˜9?¼ÄÄ?÷l?ÂJI?’EÛ?ŠÞÀ?¬?…U­?Å?Y‡Ÿ?ò<>ú®Î>ç„8?2Ê5?baˆ?@R??d?,P•?®8‹=üC?MÇ?ymW?~/î?V£?«?Â×î?”"?pï†?6–?:(? ¦‚?ôE?"?;ò?Âæù?çÒÑ?ÒÆ5?ÁÏ?ª<²?§ys?]â›?/ö–>Ù¹ö>º¿r?ˆÅF?§¡s?Bµ?oþ?b5^?{‹?¬Þ? ,?«°˜?¾5Ý?ìºr?ñ0ü?¾ÐL?µ.n? h?=>>°é>¹²‰?.`È?9¾?¼IÆ?Ãvù@3@°?Eø¸?2?Y?–0ë?œ¡¤?Êa?/‡?Z ?£œG?ŠÄR?ŽÐ@@²?ùòá?€9Ä?lë|?Š:?Q?šÿ?ØÇ?šî>ç(>ûà>‚›?1>Â?–(«@D ²@(?ƒá©?b[U??/G1?uj3?Žw†?«'?¬@â?²ó?ž6¹?‚æz?—]ƒ?½aË?¬üÚ?Šû^@(@~@3º?°¬u?È¢u?å;}?øcŸ@>Ê?…q)>S„>·«à?×?h¦?Œ,F?eEý?E1$?F.„?MLó?E?½§«>ízž?²Ze?÷7?½Ë?®N—?²¢Ë?¶öM?‰)?€°Ü?‚˜??½ì?Åkƒ?&žr?ú¼?Í?±d?…„;?Œ ‹?UW? 1ñ??/Iz?{¯ß?qçò?ܨ?ß“?ä ?%Š”?‡iQ?–Ç«?Æ'Ç?”Œ>éãè>ð.ä?À^?£$–@ôi?Ñ ƒ?v©?œ]?ÿ Ã?œÙÂ?.«?¤1©?ñ2µ?·‚)?”ß?Š¹Œ?„F?“€¨?œ·)?‹º?„Uè?)ð’?ú‚?v/?™/H>®{¦>EòÄ?Jê@?_ïR?ÔU…?Ö|¿?Pù’?dÜ?ë{j?îw®?Ìmÿ?®!<0žü=ç¯N?âÀ?2‰?y“?“»¸?Ó ‹?ÐI‚?Ç›?šÿ?-ë¿?{…ù?¥á?Ýîb@ Ëœ@$§8@5½@>F?¾'í?íMÿ@ +ù?â­?ÁQ?¶ï„?·Iá?aŒ\?3j?*ÞÞ?"Wa?ãx}?ý9?ÂY?yx?Æó®?½,Þ=ƒÑO>B4?‘a ?Ÿð?×\ˆ?Ç 3?)C?‡tæ?$V×V@6e;?Ýð›@\M@M£ì@FèY@=?ÑÑ›?õ¢Í?ôî¯?ù2?ï—@~¶@/Þ?f{'?…›‘@É@å†?¯®D?¶jò@@4X?•/Ì?£÷´?÷ÂN?à}Ô?s ?‹aÌ?Ãóî@ÈQ@b_—@4ä^?‚€*?¤Õ?úûB?Ñj#?g¬R?¹‰ @&¯Ÿ@”@È@Œ1?¦È?¯øÂ?Ã2ò?µL\?=ÿ?Ësë@ Ì@¡I@^Ô@ ±G?Üw?$>>Fÿ?G=c?Æ•?ŠE?¨”?u4?»àE?×æ?÷ÉF?›Ÿó?1ø?‚Ë—?Â*?Ž—?4€D?Íj +@!Š\?ã|¯?(B?vÑ ?c4ä?—]ò?¼?¬e?ž‹j@º@7b‘?øvÔ?wˆf? +`E<¸÷²?EÂè?Ëzï?ëÈ@©O@€@/¹û@ Ö?ЋT?ý®@øQ@ +œ×@Ik?×’?£æ?»¾å?ØfÔ?²ÏD?€?M"">ÿùã?Y˜Õ?¶Èµ?ê\¼@ͯ@K&?ü“€?Ѽˆ?†=b?°Ì÷@mê@wê?ÿ—@;@ +ar@ k@ƒ@ |&?¿Š?¢!`>RµÂ? ¯@ ÏÈ@¹(?žÇ+?µ?ƒ@d·@êg?® ±?¶ˆè?À^G?ÍçÃ@m,@d”¸?géf?b†m@Þc@..?ÁÆ?´û?³[G?¹? Öä?” ñ@(øZ@=]z?åc?½:û?È(ä?É]e@XÖÈ@†ò@Y>þ@<Õä?Úó?rË?è•@,«@YÆ@…§[@%<~?{HØ?»Bã@ Y@³õ@`0@&-@H4@>ùó@ ð<@0Ø?­÷?¸r‘?á؇?êÐ_?õ#Q?ù¬“?ýQu@b@pg@mt ?§0(?©<Ä?§ÒÔ?£O¯?Ô!˜?Û¤õ@õv@'¨þ?úâ?ϪE?»´Ì?ª(•@ ©Z@:6p@$£€@N@ _?õUi?òHq?ï0@Æ:@§&@ +÷‘?¹áõ?š6@@G@K,ö@O  @¶"@ ³@ÝW@ +ö?ú ?î‡Ã?¼²T?³Ó-@Ñ:@:Ã$?÷R’?¦[)?\A§>ÍN7?­}?æµØ?ÐE#?˜4O?¡­?·¦u?º‰2?Êk2?È™Î?ç÷t?ë{@?ì;@M >ûš==ª¢I?±Ý)?ß®¡?f>Ï>ó‚²?¹4[@ÑØ?ÔÜÝ?7êL?DN?[·?Na—?AÎ?<¡y?rgr?lë…=çn<#i +?¡¤»?ª’%@ Ì@æ?ú`A?ÞwD?½¥¤?¬ Œ?¥…­?”&E?¯&o?à2Ã?ñq`@@f@?ÏÈ?p?b?p%Þ?²'?·Uß?À¸?È ›?Å|S?ÅÑ?Þ4.?ï.µ?á©?ÒÝã?Á2³?›*?¨C? F?’Õ€>Ôˆ†>âðÿ?f·/?‡Ëý?ÃxN?˼?Úº?ÝQ:?Þ:?í* ?¿‚ ?)²ß?ð>Ùsy>­èF@ßð@ tJ?ú*¹?ê›ä? « >ü\ü?kž§?“””?ÇÆk?Ñ0?ñ5í@Þ@1L@+T?ÕÝj?Ñoª?»fÓ?¯©¾?\½h>ê)H?zo;?éêÅ?ñÁh@¯¢@Ò?¯ —?¯þ@{†@íˆ@ùz@ Ó?úÙ"?¬âu?šk©?…J±?y+?•®Å?àì@;@Q*?ì±¥?çð­?×ý«?ÅßÛ?ÇT&?Üé²?Ï¿Ž?gp4?eB^>çE¶>ç6>?j7?sbœ?g ?fî\?Šó?žõ³?„Ç?r%?cBí>ðHy?þ?±k!?· ?ŸF2?”C?­S‘?Øiý?Ũî?f7‰?dú¹?Zÿi?d!â?Ð=C?Ï£e?Ÿ ?f??¤Úè?àÏu?Þ®ý?ÂŒ£?¿IT?Ť?¼´?ãéÃ?â¥?‘0È?f@¶?„?@t«?Ú¦ß?Šö?¨œT?ï'?È|Ô>¿¬U?ý?¨¸Œ?›m¯?áþ?ó=«@Æñ@Ò?Àa?¸úò?Þ*³?áÑE@ '·@æ½?¹?˜?tF?Hk?°É?Bn!?vÀ?Ç ö@ ó@y´?ø`”?ß®_?´1|@ µ@LÚ@/m?õ>??«-0?QàI?Râ>‹BÎ?\üO?±f“?k?ÀÂ>w„>BÔ?uý?úf?®‚Ì?׃,@·œ@%.^?Â2ò?¯´·?$>Å»‚>¯–®?`…P?®¿‘?òÐY@ ó@;z>vf´>YCÛ>þ~?ƒZ? O‚?Tòï?Š%q>Iÿa=›Œ(>Û6W?‘þÖ?d7…?4Ör<¤þ=&Áà;·ôR?P)@© ?‰¹>ñ²W=ªi>˜Íð>Xݵ=Ëùk?™Ú?vw? ›è?/”™?*—Ú>èƒ_>ã)€?*Êe?:U;?rÒ>æd>æ¯í>ç]à>îâs?eíe?iM¬?¢8?•b??Øè?‚U>ìÑù>íbR>íì?/›Ù?ÑTÁ?ÅBð>•èŠ>°q>涶>òK@>ò½›>ó(?Ä?ë@(H?ÖðÂ?€2A?xÆ?uù?QxÏ>öHÙ? #*?Uàï?We‡?Õä>íø£>b8>QR#?)lj?$ÈŒ>¹o(>¿5I?¢91?²Šf?°?´¤?/‹Ð?®6?˜@?®l?‘ÉÎ?ŠÉ?0þœ>ü¦‚?j…Ê?–{?¼ú4?Èîë?gé­>è?<Ñ’?~-–?­ä?Ù£Ç?Œ,>þÑo??p,??E˦?Ì?+Õ?¢Á?5W¬?_6Ó?š&†?Êj?ÇÓ?Òùá?§ÿ?`m?]S?F‚™?‰;þ?Å2Ê?”B?6Ä?†>ë:±>¯ó@>g¦~>¤¦«?ÓŸ?1ý˜?yE¡?€‘©? h?? ?R.)?•Á?ŒÕ’?âQ?ÑÓ)?­ P?‰:T?MÈŽ?(Ju?M?N?x\?O¯?Ùj?ŽY¯>ÜÑi?/&ù?u©?Œþ?’™6?Þ‘@œÌ@u @¸?÷.?»ä?ÃGä?ÍÍ•?Á~?²<ö?yçà?+Ï>ÏZº>O1•>²4ˆ>õ½%?NÌ€?¾ñ?˜\=?ª +?¸ùE?È&í?±ÖÐ?¤™?>ý>Úh??-Ÿö?9¤n?ýÅ?E?\—¿?†/Ë?8– ?äq?©?í%>s.>Ú·=9gh?„x˜?¹V?º&?Kœ?Ï-?žŽ?°ì“? „>–·¦>ê·&?B?Xä­?pݸ? 4f>ïÝp=à9”÷2?ïý•?à‹r?¶{x?·6|?ƒ +C?‰¤?¹ÂD?­,I?r;È?\|Ê?™6?Äî?< g?òè>5´$?0f?ï0u?Ùk»?€le?Bæ>~êÒ?H¥~?˜“Å@ 0j@Šk?õrñ?ÒDõ?‚æ ?~„?v¡?ȈZ@-@®X@`±?™¥÷>Ê5?ŒÏM@·@ké@ +z?™™>ºÁ>±p`>¨Í¿?ÎÔñ@AZ?ði?ÆjO?õÕ?=Õ?_‡?g5?®3?wîÀ?”6 ?¤gœ?EС?”d?'kÀ?"’É?#h‘?[¼??wÆ?yè?•¿?sl?s<Ü=×7=å3›>¾T>:b?4wú?+ð–?#iÎ?!Ý?Lûà?TsJ?‚G?|œ‡?t7?ŸþD@ÔA@êQ@M[@9¯W@ý?α?\–?kyh?z¬»?¥ö=žfa?E‹?Ȩ?¢•5?zö?Tõ‚?Eþ%?2w?"°ö?&ú?+AÀ?mãF?„N?LŸ£?<_D?@© ?DðÊ?¸§5?Í~R?&ÃU?mß>²+z>´O…@©@êÝ?»É>ùyF>Þ÷ÿ?½ê?öOœ?ÞQ?’?U•ž@ôÄÖ>‰+Ô>¢·N>¼F?äõ?ax”?¡N}?ßH3?üS´@Bî@RÐ@„‚Ó@&b?ÎÆR?gV²?ÄY?î€â@8?ÌP»?¥ùä?מÆ?ßÚÏ?Êâ?Ç> +>TÐ?ƒŸ?ƒä²?ˆ%a?‰?koÚ?YÝ«?’?€l?ù„?K>ð?ÇMœ?Ùež@ ?á{A?ªX×?¥\S?¦3K?Å~0?ä8/?­Îä?gQ3?F£?-á?>?Dòæ?¢¶Ä?ÇLá?T"ä?ÛÅ?ÍAH@+¥?Ñ|Â?Êùó?‹˜ ?}\¹?ý#Ø@ÕA?•×º?”—?Ø*ê?Ô©S?„Ìe?”}À@Ⱦ@Å¥@Ä ?ëͼ?†ÒP?™cv?¼\C?Ò€O@¶@"ó?íNü?¢Äò?«@@ +z…@‚öE@^¿^@1÷ê@¦ˆ?Ê]Ê?ž^?„‘€?Ù|w@¹€?ø)?ñï?ÚÕV?×'?ᦟ?ßkÖ?/?m•?|•?„fh?É,õ?ÃCu?ÀhÙ?¸vR?rÁ¡?†]‘?ÆhŠ?Çží?Ç¿Ý?Ó‘@ÉG@+¡©@l)Q@4¤K=­ë„>³cJ?„#4?4áv> ?j™ê@ÿC@K@,Q@éŽ?ý?虾?ØrÕ?ÓõG?Ïv?o½ÿ?/â?Ô˜@:¥@ç7@Å=@†‰@ ‘w?‡µ«?"S!@(7@*,?>—Z>K­Û?ŵ? +Õ=¾~ñ=^ë@z…@é\@g²@g²@nˆ@1Þ?¼³ +?Ä?Õ?Öäy?Ë[ø?B? iÿ?Äø?Òƒé@#¬ù@"%Þ@`ä@¸¤?±D–?°”©?§pD?šhå?)­7?_ca?ÓSÎ?ÜA@ªÖ?ÄSÀ=–¤@?ˆA?@VF{@-îù?µ˜2?¹Ž?ÌÖR?¿î¹?”Ô-?£#J?ÃHP?ÐE7?㥨?ÉÚ„?§U¿?Ÿz#?”íÖ?7?í]?XÍ«?Ÿ?'·?«é?ÚÏF?ûC@;sº@~ø›@"©?‡‰ +?Þ§œ@‰C@—‡?ÄÞ·?¨ÁÏ?•¨a? ?Pp?Ô·@!‹Ž?á˜D?(L?¯Kù?Ú©/@{\@4~@Ì9@˜W?ü Û?ìë#?®À?Bþ¯?Æv@ê¾?£*¿=åSx?£&ü@à?ðñ7?¬aw?°Ëš?­’?Ê?ñ“—@UÈ@4JK@" ü@ +B²@°<@ u@ oË@¯î?¼!:?:EY?Y^|?‰l^?Çó @?÷Ž?ß,?˜9J?¹i?«S‚?–Y?ª ??Ï¡@ðr@>Þv@-£½@¤R?å‚?~ž?ƒû¸?ÉQ?›Q¸?éÃ?Çc©>¼ûÎ?Ð?çà?ÖŸ> \»>’GÒ@<@@:ä@C:7@DíÏ?è™/?ã6û@ê±@¹Y?†(?†6y?ä8…?åÎ@ +)ò@ ¸?þË@Û»?ÞG°?Ï5±?åu×?ïŸK@©@|´@.¯w@:p­?èÚ=„Ù?xÇ÷?Ïë4?ÖnŒ?çÌ0@¶Q@¦a?­x>ûÔ?Ô³@[z4@R…~@<9@ #°?È,j?¬Wè?‹& +?x÷?? ·?q?„Û¤?ˆJS?ùËD?ùú?èE°?öˆÛ?ý +?ñ0…@Rã@XÎ?ÜÛh?×íª?×·?Ζ?È…?Íì«@Ï•@g@•@'¼?ÆÙ,>øÂ?j™™?¼_ƒ@ ;ú@L#H@RÊô@i&ó@Wë@@%#s@" €@ø¸@Ô?ÜÓª?æJì@Œ_@ÑJ?‡ ¹?vxþ?Ó£?×ü‡>ÔÁÛò >±*2?l˜¦?ÝïO?Æoµ?š.Õ?¬<?ê8y?ìÏL@ <ë@¯?ž\u?¤³^?<¯j?qá?baƒ?e‘£?ý|„@E‡?èdj?ÁÇG?Îí&?Ü/)?îœ?4Öm?S]Ž?…'À?•·ò?µû—?­a×?rgz?n“b>ò0I>ñëÌ?áA?ìPÞ?ÿº@W?ܪ?È(@&<@N?ê*°?´³?õé=@>…@ ?†M?Ö¾?…w·?|áš?ë?5?ìEr?I«¥?"m?˜.1?³‹h?ÕåX?ï.ý?Ô %?³5I?x >˲“@ +Î@s3=ÄÉz= ¸Î@,£@ ë™?Ñg¸?¾ʇ^?+T_?k ˆ?{hÈ?LŒ?—ô/?¬…?²;@Ma@S%«?Œ¦ã?4òµ?ž?±^ê?]BÉ>êú>ÜК>ô¡S?cs@yk?ÿ'/?q¼Q?€Þ¿?‡5]?ƒŽì?‹D?ˆ÷¤?:Ï}>ñÎ?…š@Èþ?ôÞt?ÅÌà?½fâ?ø]þ@¥l?¹Ô¬?¬EX?ìl…@ =?¿ÛO>ç‘›>îµ >û4â?»?L9g?C’Ý?Ú̆?ëíÕ?Œ ¸?9­°?®SK@ O„?ýßá?² ?´<Å@ Ü+@òz?èÖ?æf¦?p…À?º¤?/dö?80?f8?†?ŠHó?Wü>ìhw?Ñ°)?æƒ?µhÅ?šý½?¡ºØ?¬Ž4?¨ ³?¦…á?½1@ ø_@ [2@ åM@ëå@+ !@,ÍÁ?Ä¡5?†Á?Mé?’-›?^¹?6h*?"¤Š?ØÁa?äÜ+?U†ê?-r›?³µ>ç‰?æÀ?*Ò¬?cä7?Ñjƒ?ݺö?F >ùà×=¨Dì>Hº?=’ˆ?h˜Á?߸@¶ ?ÿ™}?™³g?¡Ín?žëJ?7ƒ?°„ß?´Ÿ©?ÝS³?Úú8?­ Ã?«í(?þÉ@xP@¬?ãRm?¨G}>þ¤_?IŸ¥?˜öX?¥$}@×Ð@C(?}?‰Vr@dÅí@m k@;?@-µ?·ªà?œ5?î¾Ð@Š.?¾²L?Œ\½?«›?½†2?jb?‚˜?0v?kä˜?›m?¼™?Çé‹?â±U?¨£¹?æ¯?y½ ?Å¡?ž%•?Q/?$¡y>ÛÏ|?H•Ÿ?Ь?‡$Ç?#u?lI%?M n?1$?;¯J?z?ƒ©a@@B£<µH>BŸˆ?ˆ?¬°?ε?þT?9>aK°?YYO?£˜9=…Ä>w‘>Ë×?MG?ŸÏ=§xã=NaI>Éf?DÌÈ?²Æ»?›;!?“z<šx>Œ²Ö>>Ï£$?+Á? ´ÿ?á¾¥>í5U>ÉŠK@ ‡!?8Öš?•R>Çî'>Þò>äÆI>ã@¢?‹’?«…-?ú?#ãb?ö¶ü>è·¸>ï ?U!ê?\qÕ>¬z=ˇ>š~›>ìß/?41?=Ây?MéB?•0?Šo?)š?9.?‘ï?u>üõS>ü^„?¥,?.ÿ? ô?»j? £§>öIØ?7i?I¯‡?2…>áñ¿? Iâ?ms?_Aú?KJ•?QÏ>x§=ê<Â?k·0?zIs>ÿÁà>ëÃî>üÙ®>ûN_?icŽ?… +K?€PÌ?|5â?fN?Xå?oßJ?} (?™©?²Ö¥?–6ó?}Ê*?=;?±ƒ?ZùØ?~yQ?6Ó€>þÈ·?Eõ?9?tÀJ?t‡×?ŸL/?ºA1??ÒI=ÿ¼\>é>ñ?O„¶?O¹¦?Jc?~…ò?þG?ªA)?Æéo?„N(?~>ÐN¼>G½”?!¬§?™I?¨t‚?¬ç—?byÄ>Ûh>þ7ó? î¡?š,x?ÿÚ‡?¥Âm? É?”?áDÜ?…Že>¿ñ´?YÝ?«9­?­Nx?§Ë¿?—7?ƒÓ¡?¯¤>e W?6]t?£þ?¸9~?Â?—½?g9ì?µN?ñ?š%?Ž?:´? k«?Ñ? Ù?#É?-‡?r Û?‘rt?|„Ç?Yï?9h¢?\^?Ĺ? +0!?ý?½=z?§¸?šºj?z7p?Rª?>Å¥¬>Š>+ÜÜ?òr@3®¬? Ã?u(?gê? Š/>DË=ˆ’ð?€âÒ?¨j©?èÓ>¼GØ>²ü»>©±>½cì>Ù—2?75t?DFB?:Õ?+9Q?¶hX?Ô0Ë?‹"?]mhº=3Í?eÁa?óÐ?·,>?·&?€¢ä?s3À?n­$?j*R?e¥ä?a&¥?+“º?.‹,@Æ@Y?ƒ•?‚¨E?>Ì^?3J2?’ ?˜ü?W!t?]ÓF?ŒŸ?‹Æ>]¼X>ø8Š@cî@Q€>=é=>‘'H@˜3?ä·ª?\!?Ö?R>ÿ®9=ÔôM>Ém,?²/E?¦Àî?Œâ?¦…Y@í¦?äÑ*?G‡p??Ü>p@"?ÿÛ?¸‘6?Ý£]@8˜?Ę‹>‡eÅ? +ª#?‚ßH?Og×?ê*?ï›?òš?~?ŧ?ÞÏó?ðS‡?ž¨Ê?=°P?‚oÓ?ŸS3?£‚b?ŸÌ×?›€?—1?á•Ö@ º?öÄ?äMË?ŒJ÷?JÏX?]Ó$?p…Ï?ï M@ÙÛ?„)?%Y^?s‘E?ƒpà?̈î?Ö™?ð&c?úÀÀ?0¡y?ŸÕ?yØœ?|÷@4¨@1ð]?Ù#8?ÎÏ?– œ?†e7> îJ>ðÒ2?­@8?¤ú?ƒÌ=?‰¹²?¤Ñ?µ/?â€Æ?àGä?èš?ÕÄI?˜\?¤öv?ÈZå?#M>‹ºq?"Š?MÛ”?©X@ù>@¶*@#_š?•ÇÌ=Á}à>¶1B?2º>€>Ô=é%Ä?'|õN>¸ÂÒ?;ȶ?Qé¿?M®¡?IuJ?\?„am?;Ê?ik<ØWñ:¥Ù ?óºÔ?÷©ü@¾c?ÿÓ>>2ÐŒ>b`?.?Bê? å5>Ñm=³Ô>t ?™z?$E–?^.—?}Ðn»=Õ€B@Þ…@–=?„ÓR? sÀ@W:@I@¶Ù?àؼ>”ïB?˜•¿?š¿Ü?¢{É?¬d?íl?µ¹?H²?®Ñ‹@Ýv@È-?ùÕ”?Ð7C?®Ò€?Çè?×ø?´a?ºã­?WÚþ?ì?Ò?Õ(=áà<ìì?j¨A?„Ñç?9 ï???¹Ê??¹vÜ?Ç1_?½“Ò?-õ;?>?Ä?¸€@)ãà@4ÿ?¤Ê ?«ñ@?Ð{?Ìóä?Þ[@ûË?Ý­´?®HÉ@*‚@TB|@®´?±Ý?Í $?á%e?…¥Î?ו?¿šX@²û?å%Ÿ?Ο@x@?áó.?Ã…\?8߃??Ô4?øóÄ?ÁšÉ?½¶a@1à@ƒÆ?ÒÝÒ?Ì?½á?ÉŽR@ÌÁ@±•?ƒ&+?‡ì¹@j@ò@ U‘@yp@‘@³“@í?ÿJ—?‰Ü!?ŠoÖ?©âA?ŽË„>ÉÄ%?GÙ@ù @òÛ@5®r@¿§?O=;?è¬Ô@ Y(@1õY@!›L?à6ï?ÚÚ ?ãP½?öèš@îA@ ßF?&œ?%?•Ñ»?•?¸/o?±Ô?‹œ? |>cx£>¹æ?’»j?—ü¡@-Z@+Óö?e±? G?é9?öç~?ÄD?ÇBC?+RÌ>üw?µï?×¹™?ÄDÐ?½$@ &@zF?í ?Âe?áW?ì)H?Ì«?¼š—@ÞU@6ªú?ý¿È?¤èR?Õà?ö™,@Í…@$m@8ës@fåu@}‹†@‘b@o0 ?Éðß?º¾°?…™ô?™ÿã@‰#@H)?ùË{?÷ù?»0C?»!:@Ë¢@_V?çz ?éKE@J‹@Ùæ@È•@ Î?ÝŽ?¼Ö ?á¿z?øp«?Ä¡û?™;D?SLo?‘À?®ŒL@œ@‹?ÚåÕ@­@0ª@5e]@9@3Tö@Þ(@Å„@1ß?ÿÇf@H8@N@B?°’?—S @4zk@K¦·?™jy?"[?¿¸p@Ë]?Ï#±?¢¥³?„Gì?S[Ÿ?`8#?ƒJc?¥ÜL?×x›?äÛ×@ dÐ@4@$›g@! ¹?^¸?D7n@&éƒ@1~¿?ÎÄ?³Nð@Gýõ@d†ù?ؤ[?]…l?CÇ?9O?’Ð?¸ìç?v-¸>‘;õ>ñø?€ÀH?‰Šè?„>f?| Ø>ò28>ò +Ž@ 'w@P/?*á>ƪ?bÝî?‹æ?ÚÑ@&@>6?Ð o?΂]?Û&é?ày#?»?°¢O?é¼?í#?ð®}?ïÛ3?°nö?þ|?¬ +?³Œ§@Ò@Uf?÷d†?³/ƒ?‚>#>êCŒ@VQ@p$?V·Ç?e*þ?âï=?òª?èË?á€?™'+?kñ?€{?x= ?’ªV?Óû2?ÍÕ.?™1?“@êa@ +‚Z?ò×?ï›ö?e8`>ëÙ§?¥Å†?õq†?ÌÀ??˜G?› +?µd?ÀK¥?ÿ*@dN@\ +@[¦@%8Ý@.•º@ ?Ò§Ž?Áœ?ªÛ?”ä±?Ÿú?‰Ú~>éwX>é[ï?_ÅU?ƒ{Ì?í‚â@nc?É{‘?eî ?™ÂÛ?òà?ç74?—ß#? ?`Ò,?mJI?} +9?gĆ?Ö°‹@ ŒP?µ,ê>ðô˜?#5è?¢jr?š²?ŸK?šñ™@›@·ë?¦«É?Z¥?ŠKœ?Ù‘ ?ÜË?Ýç½?âõ?´„h?½`×?”f¬?•’q?tWl?

ì§ü>ŒÛJ?<÷S?ø ?ÿ+“?´¹Ú?¬P?°#¬?µ”Ð?ë£d?úç£?° ?aßn?v/á?mBV?kP¥?æÙ?æ?®©T?±ðg?€Æ?ƒtß?w¤ ?:6²?Všx?Œòª?Šç®?•?¢?²7¨?®N?§¯ñ?œ×ª?ß\´?ÿ&ž?•—K>d2ò>› Ê>ç•>ôÀ?gÕ-?gúø?Ö?ÐD‰?ícF?ñ}?à©l?åE6?¾Ú:?iVp?¨È@*’q@(¶Ì?é Ñ?ä„.?ê ˜?êç×?⽨?Ñ¡[?õ¶@ Â{?ÛV™?©W>@6I@e$ô@#:?._ß?oJ?æ$€?ëÝá?3™?£d]@0rÄ@EN"@½ä@€?žíË?r)Œ?êü>@Dœ?âqå?È«?á™?õŠ?ò-…?àò«?þòh@Fm?Úþ?µßÊ?Zâ÷>zÐÞ>ý,¹?qgÚ?šéi?½7Ò?žÄ?}¬R?~k-?".?™‘h?´y(?·èÝ?¿ÿ+?ß"›?åk0?U ´?Î6?A¨Ñ?]üQ?V‹?r¢™?‚å¾?M3¬=û+>«AW?Fn?›Ä>¾²ó>¤Ž=Ó|l?ÑB÷@+Ì>æ4>«Y·>Šzü>ÍO>..? »?®ˆ>í]¦?«w?J³ü?ˆr?‹à#?†°J;V.ë>¨·(>‚C<¤Ôð>¶j?…:g?;ó=>øKt>»Ö='ë@L9?_€`?5ñ…>wW>bG¿>â6{>ãX2?€‚Ö?š26?•Ð?”ÍQ?‹gw?Zºí?T)>å<÷>éo&?¢?¨¬À?&‹>·þ‰>Ñäw>ìì´>Òu÷>Âp×?Е?n†ó?[ˆ*?µO>þŽ?¥ôµ?È;b?¶¾C?±h#?G“²>ó…µ?{µ>?«¤]?¦[¢?¡2?‰§?T l?Zùå?výù?>>>H „?ž ?ŸŸÉ?‚‘Ë?pë?rZ?|?`g?gàˆ>S€¥=µn²?_Ÿ?wòP?®[¨?µ¶K?ˆ€?|4ù?3?"9Å>Òz>ºùc?aD?„€ê?¿½b?Ö³±?2ÉÀ>?Ê ?€ì?·Cú?jr?,3?‚ß´? )?hR=‰5Ö?Y‰^?¿²6?–‡ž?`”®?a¾œ?eú5>ôíU>J±?Ær£ü>€²l>œOÊ>Ô”Ž? 0?Ÿc£@ó~?’?:> –?ÁØ?nŒ??ç"?ü@?rÔ?ü(?,¶?@ýt?Ü>Ãk4?3‘?(p?C`¡?Vÿ?¶$a@Ú“?˜£z?K=>®Þ·>@ô?S>?®ú‚?c¨õ?iÀ?1œ?]ÚÑ?™jç?¹{W?ÙE< §<Óìà=7ÖÈ>©Á?’ÿ?Q§r?™Ò? zÜ>¢/?ƒ*?3ÕD?i!?­?¬1?Çé? di?Æß?³ô(?ž?õ=þw«?QÒ[?ŒõQ?8QÚ?µ?huQ?ƒ“¸>‹EÓ<Ùp<%ˆ?¾mø?÷”@T@I×?Û‰Ý?Á›E?KÜ?ùº?”i(?£•ã?×Ô?ßû›?a"?‚´?Ì¿?Ü? ¨Ÿ? €Ÿ?’æy?—a ?¦X>ëÊn?j0ž?~ ?xh?.W=õîß>Ùn?æ†?ë,Ø>ŠéÊ>ˆý¯?] ›?Y12?áž?锞?‚BC?´?‚è +?‡e°?‹ã¿? ¸?_œ›?K<€>–Ø>­€þ?‚bÈ?q˜õ>ÝO>î`Å? z¾?’´?€w9?rvm?€{?1w¦?³% +?¸^¹?Ò'Í?¼ö?“ÁË?•ü?˜1w?®??ê‰s?ÅÏ…??oŒ?n¥L?/¡?‚àa?7;`?pu/?®U?žjÚ?‚Ô/?‰)j?œ?XU8?çô?½? Ö×?¡@3)@wr@”?º§~?sÁË?0Œ?· ?JSÙ>Ö¯?æðê@#{ ?žªý?¤?^| ?~Œ|?ƒ?}8>Ññ÷>Q„Á>àè¿?Z?mÇ?ƒdò?S?»@ }@Ò¨?@#½? î?õQ­@uM?åy? ?Âb?¦5?™uÝ?•UW>¶gn>Ï‹º>¹~ú?*4-@!ü9@²?©£ ?¯Cû?Æÿÿ?´Um?’n­?€Ð&?è$?=2V?œMÜ?Wn >U1?(0Z?¹»Ý@ +•5@BF@î*?‡Ùv?ƒÜš?‡bŸ??Ì>ò²¬?‡>ã?²ô?ƒu?P¼?Áé?ä"]?ŸZö?ƒª?CÄ?9¹¥>ÿ>3>÷ÁZ?>»)?JÓË?uM¹?o<Ì>ÌiÄ>Àûó?ïWã?á}Ô?$¤‚?%·¾?Y«i?‡m£@¼.?ènà?7?ƒŠ?i?|ç»?}e?V²œ?Ò1?¾©p@1k ?åý0?)æ"?^žÊ?‚]¾?‰ÈŠ?¿z?ˆ?„¶ +?_™?L…?‚¢ù?’?ì?mð^?]+¹?•Ñ??£V@ O@U†@¶É@ì?é?Â?Ä<Û?¾îÊ?¾Š?Hæ@,Eo@cð?Xåp?e?NŒº?“_@ uÙ?ÚÐÕ?ZÿÀ?qÜõ?•M?¡ø?§^O?ÅÏ:?ëyŒ@U-@>?äÅJ?³ñ?àQP?øV„?Ÿ…?o‘±?ØÔ?„ÕQ?5*o?ŸZ?€²«?„¬4?¶?x’?Œ†?³?Ƴ!?Ç,Ý?Ç+O?÷?ŸM}?¡®@?ÀÃé?Å Ø?÷¶?æï[?¥ ¡?¨ß?¡Òª?}?!?¯?:zË?„©n@ +;@N ?âѽ>»ý™?ŸÚ•@æ;?‘½±? +¦þ?ýó?~‡?ùÿ@"z#?ßL?¼¢?…¶?jǤ?«Ä?³5í?Œá?h'@ —û@)”?†C?ˆ9W@P˜@H?üe0?ò W?Æ_‘?¾Íê?–^ ?¬XÞ@+P@à@Y?Œ@A^˜@¥b@ '"@$)3?åÌ +?°IO@"@,jv?ÖCd?¢‡û?Ž‘(?‹~>^6Ñ=DE¯@/±@CøR> ù%>¦?~ ?ƒ9ø@ò9@|?ƒ%²?‚ÇI?„ó‘?•Ø-@ +Ë@ŠÐ@Âu@e +?á´ ?á>Q?ìý³?÷5†@ Ùó?Ýß?vê¥@ˆÈ@VÜD?›º?o–Š@a€?à‚N?† Y?gŸš?Ò?QÚl?¨æt?»´e?Ôòç?À¨-?— ?ŒzŠ?‚+S?œ„?€:?É#Q@ËŽ@ P¼?ü”·?Üáò?¯xˆ?±É ?´õ?£'\?‹©±?…ï£?²é?¡Ë?Ât"?ßKu?ùM?’$ >èeÛ?³%\@ „?úù…?è‰!@Y·@U@Y;@ƒ«@ÿ?ÝË?î z@<@T™@{•?áýa?Ñà?¤ 5?[äc?ú0@A+~@6¨?ü²e?âI3?Ìns?7ã?#R?¿žš@ë?øÿg?Èë„?õS8@¥#@ +q2@D®?¶ïÊ?7RG?š8 +?ó»ç?òË?ë—¶?á¡þ?ÏbQ?Á¬Ï?©a¢?ûÉ@Bb½@d?~Ÿ?Y?s?n2m?´û?¹¨?Àö?¦û ?~ÞÓ?ŽàV?À£g?éD›@¦@ ¸?‡ÖË?«Úò@Êx@d@M®@ÉÅ?æb©?Þ.À?}Éä?ŠqŒ?ý‰U?ø(è?ëëk?Üݦ?M?M€@=7@=Ð?eŸ?Znƒ?¥–?*›?—ßJ?—{ ?C÷Ø?.Ca?m +"?|I-?¢Çö?¯÷@ÄC@Ì7@.6»@:§Q@ç2?ûŸ@?Õ¤'?¼™c?¼þ?ÆÁÕ?â-o?é>Ç?Þ!Ò?äb'?ôàÖ?úåk@ K„@)…@^…Ð@¬Â©@‘Å?úG?óñÜ?ÕÛ“?¹Î? ([?nÖ?$&?&Òõ?».ý?» ?š5´?Ÿ(W@c•"@fÓ&@Ô5@{?Õ ·?Á°n@>@Ž?âu?É"&@ +#®@ û?á7?‡ºT?·âb?ú?¶ú??w·?Õîo?ê÷à@ÖÞ@ @ ü@#6ª@fÐ@cçé@¶s@˜!?øÇ?öqÄ@z¤@ Ì?êÓ;?ï‹?õ›‚?õÚ»?° o?…˜?Á?uuN?”°?¯Uó?žè?–>?¦‹\?ÂL]?Ïn2?ô¤ý?ô«ä?ÿº\@:ó?‰Úö?5¥@AR¶@NÚ@Üà@)ô?§rõ?R?ü–ç@)‘@ï?Òæö?§Ý3?ÞÕ>ûÀÖ>Ó¬:?Ö°?À²Ö?¹b?#E4?Š@ú@!Ñ?Š#??Xc?ÌÚB?óœ°? 5;?aQz?½»Ï@ +v?Ù_?qËr?²‰@K»â@A~?­Ù°?±H_@j«@gÆ·?±`?‚ãH?¦žâ?³‡†! +=º>“?\ÌV?Ÿ@6ë@T¾Å@ ?u?±÷t?½³ç?Ñí'?¼’‚?™ ]?£„#?ÊtN?Ñã?œUÑ?"Â?â˜V?ì?¹Ú?ž±.?ƒ[+?{®?§í¸?Òëo?³út?5Ñz?S¢ý?ûé?ëı@ @(Ö?Þ Ô?±ûé¨ò>ô¦ +?]7Ô?L÷õ? A>ß•?µ÷‡?î²0?éa?äñœ?áƒÔ?è…®?ÐF?÷z?!2L?ní­?`Œ@ß@v@.$,@N°@x©?d?NÝG? mD?"úâ?­i(?­]‹@c@;Ó?›mg?®í?fÓ?Ò›°?³ &?nX?b´?:ï?5?á q?êKƒ?¦¬K?Ž?_܉?¬Ô? Åy?f) ?€}E@ ~@ÏÛ?çŒ?Ü@Ç?²w?¬`ò?¹d÷?­Š.?¹Ûû?ù—v?ò5‡?Ü +?àÑ¥>En8=§à›?#G¨?Kâœ?~‘.?•ÏL?‡íÄ?vå?‰ ? =?‘a¤?ÝòP?åß@?O~\?Ú¸?£¥?ç d?Øù>˜?ô?Ð?gÑÐ?gö @ìM@'3Š@&µÅ@%¤ª@ `’?ꚶ?·o?iXù?•Ãˆ@|@òÆ?±?g?¶ÇÍ?¼Ã?Â=á?¤C5?°&¹?û7=@F©?ÒÛ¢?‘ÿ™?ôlD@Q:Ë@-Cô?”Ib?—‚ã?Ó´o?ËŠ¯?¡¾Ä?– F?1'ñ? +ö¯?Þf8?ù©?·Ž?¡‰@@Ø@ï‡?ë©f?Ô¢_?ܨ“?ëÔì?³Ñ®?‹äù@Jû@M¨Ã@#”d?øz[?¼œ ?y³e? Õr<·ó?r®”?ñ +¥?àô“?Ëg×?7Ú?NÆ?‰p0?•^R>ÚÓ˜=c0(?´ŒO@ö7?‘kB?Fm>ÄÇ—>» +8>ŽË>t?…G?qáõ>Ʀ—>š >„Òw>ƒž¼>†?mÅ ?ÈOá>èˆæ>¿dÌ? Zÿ?'v?‡ºF?;Ã"=€¨Å>>è>Oz?=—?KÒ~?œŒ>øÚñ>{;>¹¿r?Ã?UÐ?©–>ç•Ê@À?_¤B?*FÃ>M¼}>ˆpÈ?„]?xçc?%·ž? …J>õéW>·Î©>Ãxú>Ï/>ºöí;½ød5„Ý?€<Ú?–ˆ? >Å_>¸ª•? È?4@ð?•ÄS?Gá?W|A?d<.>•¾>~Hp>Ë>¦3Ê?i´¨?ƒ^Ñ>Ÿ¿†;Ü+ß?a4Ü?·¨¶0>åM*?P“?/Ò?´•?­õ?´£ä?»ùX?Ÿn¡?—L>ú `>úNW?²¸¿?¸O?·1?{M?Š¼?'ï?0?e>X<·>!Ý>—¤£>ŸÙE?Åe?,?¹šú?åß?‡"×?/= ?ÔîF@ 9Æ?«œ•?c²c?ûNX@*žØ?ÿÅc?¶?™“–?‚1Ì?éùï@o?Çß?€ +¿?\ZÐ?7î†?vP??‘Çà?ã*›@3º?¤Hy?qî?s¶?‹¨?¤?)@o?$2 ?$q?Sç?€Ç? ý<=òï:?™-æ@+1?“Æ +?ùÇ??ÌÂ?mRÒ?.œÙ?>?~ÌU?­Oi?±Š?k!Q?ýåO@2ª—?Ì[7?;Øk?v(D?‰°?imm?[ãe?¼“>ÈÃ)>‹²¸>ÓÒ>¦gf>ð'?Sf?€†?wC'?m˜?›Öí?­ès?Z`C?°v>ëÌî>³¶5>æS…?£—?Zâ?©ë?˜­¨? Ca?8x?µô?®á)?ת?6Ó¯>Â-?ˆ«c?«s?†H8?uÊ?«xË?¾VŒ?À†è?¹íz?*ˆË>å3U>¬†Š>ÄÐu?£ï?Ž‰?‰µ9?Èø?AÕð?6pG?-AÐ?9Cú?€ Z?û,?µž?³ÆQ?B\K?*å?YßÅ?džÞ?ø1@ |>ͧ:>S-1=Òèb=Dph>ù._?·@/Ÿ@,’U@@@*¡?Ë~!?Á.®?°u^?¨ÿÏ>ºÏ>Õ©¯?9ôÇ?:Ä!?H>ù£>“P>ºÈ?wÓ¶?€<"?]èâ?kôw?‘TË?v¤=¨"ï>jûo?‚q~?Y8Î=ƒ8[=÷¸Ø?•?#6k?ŠKÿ?ªxo@Ž?ân?‚—H?jSÈ?,7?K-?‚§ò?†þ?ˆt4?šSª?Ç?Û•R?î"?Ç÷Q?™@f?—9?”ë™?šõü?¨Ï×?Š *?;?ì?Z²r?‚î­?Ká½? +0ú?T"d?‹|Š?ËY˜?ôóª?iD»>šêÖ?­ÿ+?ñ™¬?÷@·@?cŠš>žÑn?(BÐ?J F?’»à?¥ÏM?2¥}?O­?T ?Y?p`l?ƒbŠ? A?©K¦?ˆ•?ƒwZ?ŸCi?˜Ý)?{ÌB?›*?Ê?¡@€z@·?ƒ¤+?†|ª?™Ì‡??a¸±?€'?àI +?ÈòÎ?$½?‹z;@ñº?ç\k>ï±Á?…Y?7Pg?ܶ>²b>öÎ6?&Xm?[^ë?ñû?ÝÔ @cî@ä‰?Îñ›?5~<O?šä?~ÌÂ?†q‘?2½?¬÷?¹ +?„¿?mnb?µUˆ?ÆlP?5æ£?O¬?N?mÚ?~G?hG?¦`M?«3¾?$ûÔ?;®«@Žô@ í¼?„ye?iëJ=Ç×>¾ºš?×CD?³Ç•? ƒ´?t U@ƒ?Ú­Ý?„–š?,¥Õ=—?½%Í?†e²?„Í“?„ψ?‰ã@?Ä¢â?ºq¢?•ˆ? ˆL?³†?¾º©?íož?ÚÿB?¼€?­fˆ?„Øp?v-?SĤ?¦T?¤g?¦< +?¨c¢?¯¡´?¹ç³?6ä­>2v¸?•Å‰?ÙF•?„ϯ?;±3?tåŒ?„Õs?Åï?Ñtæ@K@$Ò?Îæ)?¾àö@4N@0¹6?Ç-+?Û?“¼î??QÕÅ?a½Ç?‰"p?§³Ð?øŸ?Õäµ?†›F?¢¾w?äÖ˜?»{¹?juD?–‹ç?Ã÷È@0 @ˆ|,@JÏö@«??Öþâ?©Œ ?‹÷é?5? K?sÀÔ?•‘õ?Èg?Žˆ¸>¼•®>f¾ø?¯S?ƤÕ@ Ï0@ ¬?Ãù??Ì2s?ÍÏ$?ÈHÔ?È’?Ø?@%Z¤@(þ?Ý–“?ÛWÜ?Ù\?ÚËÕ?ë““?ù5 @ :@È?ÜBL?¾>?Šè?Ÿaø? ƒ@ ;­@=Œñ@¸4?û­?Äø’?•.}?“Ü¥?˜ëü@ ?¡@1Ö?顨?¢ha@˜[@ÇÈ@0?7@? +»@Ø@øí?•?´á@hµ§@‡8û?ó…=?¼ö?Ü"?‡ô?À‹Ð?Éd?õ€?î¡?½Áb?¹À¾?eµN?“Mž@jmŸ@\/-?ð6Í?Üœz?l»?‚†Ã?Àñ??Åx“?Êç?ÑEt?Ý•?ç€Ð@È™?ùÿè?AÕ?‹Cs@ž@Þ?9dø?–[J@Ýã@+¼š@=¼ú@A¹@MU˜@"uH?·@X?–×?F +z?½æ@"ô@U¹?¨ùÍ?š–‚?…B?‚¥±?ˆGï?ªÓL?Ëð?± €?•ÖK?‹z–?Õ=?¦–w?Ík?§r²?±Ö?£$?Ãd @.3@Â`@bm?ÞY`?½XF?«D¨? Þ÷?”o?‹& +?‡H?ªn?ÎdÍ?íhÔ@º@ + œ@T^@AA@! á?ÏT/?Cög?æ(™@,ðé@6Ç@A+n?Û!`?Ëc?ƒø¯?Àóm?}3?‘$?.s3?jMï?ïAð@.r¡?ø>ã?œ½Ë?¬d`?¸|à?í@¥þ@ùX@ùÿ?¿ï“?K?´–?ð¸@.@:ow@@æ8@Nˆ¹@¸U?ä_?.Ö?u˜ ?¤Æ€?õ.[?Å ò?Z4ß?nàÍ?~àº?„)ý?Œ<¯?¥#Û?ü º?Ù׋?6óy?‹ØY@!@¾ÿ?þö?ç±"?e¨„?hœ«?bCŠ?‚»˜?øÒ@Þö@g¼@ªb@&ŸÐ@³e@ Bq@ß¼?š&ó?Z–?¹üÿ?¯Ø@ø«@Ï@ÀK?÷æ`?£ÄÎ?‘i?ŽCƒ?‹€Ö?å›g?ô°¿@¦@Õw@&ݾ@9hÝ@-C?ò¥0?ÌDÓ?®Ê@5A¦@„]@&^?zùO?Úû¥@,‘¢@oä?õë»@ÿè@fé@M ?ëŸü@ÓL@@B@/e%?»u,?Í‚²@4§­@(ÈÊ?…6w?ˆ û?ö¾?É2@| ¸@ˆE?ÌÐ?™$ã?üeÅ@}M@ÝÈ@ ¿?Òºc?”%@ p6@51z@)c@ê@)¦^@7Õ@Äÿ?g˜?™?éu¡?ßÖ?ÍQ?úˆø@]"@TÚÇ@-¬@4Åœ@9 a@8ûö?ÌtÓ?Ëër@Ð@,µ?&»<äÓ?‚Òš?¼ßÒ?µÚŽ?­€t?q^Ò?¹P?‡®Z?Ï5Š?ÍZm?»ä¬?©N?“±ˆ?¨×Æ@ /Ì@"?‡ª7?h˜á?ëŸÒ?ña>?,Λ?&tó?©å9?Àö?a,±?7D?ëÄ—@3ßµ?Û›>ïè?Vk?ZÜ?yma?’Ý:?©”¯?ý3Å?ÿV@1‚þ@4b´?ûW.?÷·:?¹> ?¨|8?‰í8?Š]À?‹¼Û?€#b?ÁƒÙ@ +Ì@~?ð¨Ú@çè@ «‚@ ?|]A?u@Ì?·aå?Éš@5¤@ÊK@%@ì…?Ùï +?ª‘Œ?±©~?¸¼n?¿ÔÞ?Æñ„?Ó³©?÷¤@õ@/úi@1·S?õ8]?ãú@‰Ã@<›@)Ô@1€Ì@'´?íÚ?Æ.B?lÜ]?eðU?K#¯?]+Î@#†@)!@GÓÆ@K¼×@0Û@"£>?­Ý>ë‘F?Gv?§M­?§YS?‰q•?‰s‘@F4@!óæ?êÞ1?ãæ¦?ç¹S?éñ˜ž?? W?Òï]?È\Z@Q?ù†?ÅVˆ?ÈšÖ?ˆ†5?% Ô? úÕ@o–@ Ü?µù?ºÍ;@:µ@,´\?´91?ªý?̽z?Íu?¸ +Þ?¬«?±1¯?­Â7?™ÿÊ?¯b?¯fl?²íñ?·O?ˆÓ¸?fp?ÈÖŠ@ÈB@ +ú?úà?öj?æõ?ŸB¤@#;²@’ +@Æ?õ·r?ÝÞŠ?Î…?™§ >æ^Ú?(EÈ?õÚõ@nd?¸’§?®5o?¥5Ž?™Ð?‰u2?‡»Ý?W¨;>Û+>øuú?g•Q?g­Å?gÑÈ?g÷•?¯©4?Æ5ý?Ö32?æEÍ@"@m@<ù€@aý?iX?n³?xk˜?†u9@Ðõ@ +rc@ +Ý?ÿB?±Ý? ã?ëܧ@9Š@<à@%Øá@0GÄ@4-º@i$?²d\?Ãîª@â@€n?Ûq¾?὎?ïæ*?ð}"?0ö?.ß…?~>?Žtò?ï?©nƒ?«ß?ˆ~?0‡>õ#?ø?–?óJÞ@DæŽ@ €Œ?ªNB?¤ŽO?‰¿\?ƒc£?zdç?~Õ>Ëâò?Ž'Ž?Øð ?¨Œ'?[Éx?´:7?÷¹6?E^<?P˜÷?¦¢f?aÜ÷?E9Ù?Eš? s?³}?Äiz?Ä+¶?ºÊ”?£¬?PUV>xî?5b?Ú? ÓS@j÷@ +³…>Aæ|>溄?³OŠ?l =ãQ6=4:O/³?¤’? 3>²K?(Yž?’+:>£™?r`/@Á-@ g½?ÍR>ÛÑ£>Ì‚@Ï’?¶ó?—"i?5s8?-?˜% ? ö >a®ˆ=©ÖL>ævQ>à±>Öh>Ë…Æ?drŸ?ƒj¬?L‡Q? Á¸?¤Ó?(‡È?.y^?4eÐ?û¤=«;P?qæ?q‰Ÿ?Çáÿ?Ó¶¼?Üe_?å£?–ú?q?u´f?€¡Ì?«:ù?Ï´Ó?mUè> +LÑ>ö†?i´?ˆÒ½?¾ä€?©£}?‡É?|Ó>þ™>ôEz?Å‚?ÂQ˜>ÊYÃ>Û|k?m„ ?s)é?}H?{I¦?sj ?m´ú?Ó¤¸?Öéz? ¸Û>µL‰>AY»>9¹P?=è?Pz%? ¤?àÑ?:™e?M²`?—HÁ?«ä>?B3>þ·I?.Š?!?Ã<ð?ÿGÆ?¬~?‹?‰Â.?–Lc?Ï´>K‚?5œ?€! ?Œ¶?—UÁ?ÐN ?ùä?ŒG?k?xÏ?§_?‘Kp?€šN?‹Hä?#¼?†?€¿Â?¢qÒ?»é@_„@Ÿ˜¶@7ÂÈ?·UÐ?fV\?)?ƒÖ|?£f¥?—jZ?•8Ë?Ëö?é?¸@ â@J?Êv?Bo?ŸUj?¸˜?™q?wÝà>¦{`?8Ý?‹`»>áÈ=¢ê¹?‚J>?ÁiÊ?V0=ŸÆ?°´m?ù=Q?ÁF/?¥Ð>íß÷>×?cÁv?‘Øæ?R ?;Ì_?àM?£„„?…u§?j’?»'?Øu›?‹õ ?Iä>é¾ý>Ó\Y?ìú??'¨?ÊQ@öÕ@Ä:?Zìœ?Ôb?NQ?TW?zàÍ?Ý?c?Y~£? WÔ?æñ?ŠL?ŠCö? ¾ >ï·+?¥¦?·Ô²?œª¢?–È}? ^??Û?Ò`?áá?çõˆ?îÏÓ?Íý¹?Ȳ<ãä=z@$Âõ@#ƒæ?9Ýw?C`¨>Üí›?WÊ?ò r?é ê?}°?_G>ZÅ>lƒÌ>~t°>¥œ?-H?T>Ã&}>¯š>´ë$? +C?´ a?žO9>Ø‘î?‚ª?‚l‰?©g@•j@®æ?¾%›?œL5?èã?]ù?Ïlß?›s +>€*Í>ñþ+?\[Æ?J»?4Eú?0¢é?/FZ?X+\?‚¶(?ȶ³@j@ ÛÞ?Û2 +?½ó?žÜ²?„?<$x?£ÊÑ?ñÍâ?µ¶þ?zî?ìž»@# ‚?ùÍJ?ÀÙ{?¢}?’ø?5ÖÔ>ÔçÎ?ƒñé?´þ +?‚Ú?Vø«?© ?ºƒŸ?¬02?§8›?.¡^?­p>®€>˜ïÑ?$S§?1e?1´2?;sý>Ú…>Ì­–?cXU?rg{@+#Ž@6Sò=O<Ì<‰ë?‚HŒ?{±?.‡?EÐ?ƒž?}!"?;k ?æ¼@8ìÌ@'ü>³÷Á>½Ë>œq?—?¾ï?¨…?J€}?NËÙ?Sž?*.>°¼? ˜ž?dDb?‹eÏ?ªÚå?¯#m?³kï?û "@?ˆ&Ä;Ð/©?rø‹?Âb?¿ü/?½ä'?ÃM?ÆL4?Öqî?ÕÒ—@ k³@0³?õX²?å"—?°½­?¨ÔÐ?ÃøÄ?Ɔ9?£È?Ÿw>Ï>Û‘Ž?°þb?´’÷?¸¢ù?£{‡?Æû?oTj@Øü@X…?‰+>?š¡†?ǾÒ?Ç+n?ÂU[?j9?iœI@žj@Ÿ\@£V@ Ü@|Æ?Ç­Þ?ž|?§!ó?¨ôã?¨ ?¢cù?iÏÅ?QðW?ÓÓ?ñùü@ S@ÀÌ?N×X?"µ1?šO?„Ç¥?„Ç”?…´?‰’?î?Æê{?ªÌ-=œÚ>œG?ý¢?®”@Ñ—?ð§û?µ€î?’€Ù?0Øž?°$_@¨X?ú Î?̃õ?¥ñX?„Ö?€P%?qÞ”?+Í÷?ÓÒ?ž-¦?Ñ¢?Ë£.?Ç9‡?“èÁ?„Ðë@«s@vA?NxÈ? +Î/? +lø?ÍÕ@zB@ l?,¥¨?3Bž?!S¯?VÏ@ºÂ?øÎG?ð%~?ìÝ?ýy?ðÐY?Ç +é?¼¶J?® +r?°}s?¬ä®?Ê'‡?ô•Ý?ëƒ*?ØSV?éÁÖ?ü&í@Ê+@*á@ ýC@5I?­ÝÛ?„é?+j?•[?õ™š@ µö?¢—ß?Œ7‘?Ê0?Ížp@þi@â÷@=•@BÀ@Í@òP@ƒÐ?ûþ’?Ç`?ÚÚò?ï(/?îRp?¸ˆÅ?¦úÿ??¼•?DD??Hε?r“?Ñåj?É!?™š"?ºAõ@g@ݳ@§ô@ W@Òb@#?…RÍ?„`Ë?Œ+?«d?ßà?Úá‘?ÂG?Þ^'@Ó?ü|½@:Â@é@ùü@q@&à@!„@5@{P@"oO?éZ?…nü? é?‘Š?»Ž¼?í_?µÒ¸?vóA?ºmF?ýtÍ?¢ù—? fÏ?°Øì@{P?¢™º?BW?„ 5?¯ÅË?Š¢ì?Tta?yjŽ?ŠÌ?”è?¡Ì@õ¡@.Ô?íŠv?•5Ü?ÃàR?ãß:@.Ý@ù&b=Š!T?WÕ?qy(?­§?Ú¯L?â˜Î?õÂ#?³b˜?SOè?A?7“?©dõ@e@À&@.0?Ʋ>ªÞÈ?eL +?Ð;…?ù' @<µ?×o ?b2?¦r&@ë|?óY~?S{?™Aî?Èõ2@Ÿ‡@2þË@ Õ?~ØØ?ªº@.y?êS,?qŽ?IO?Eç}?¦aæ@Gs¾@7nY?ÚŒF?ËÝì?J5?+s>g·k>J;??iø?, Z@i‘@<’@§±@ *5@HC@Cð“?Ãõ? +É?æ@)?ôö‡@ +í×@TS@;šŸ@D<¡?àn‚?½0ô?ðy?óþU@a•Ê@ˆÕh@z ë@sƒÁ@e•Å@Z£Ž@2=Þ@Þ¯?í–Ù?¼u‹?ü¬ÿ@"ïÎ@&‘@Š¬@6?غÊ?»%ü?f?¬?œ.v?úo®?ßØ$?êÌ?ØjO@M @=Õý?»mã?Â`E?þ²R@…ì?é ú?ãG??Ÿ‡˜?™8H?íD@K ?¯…=?ž9C?éƒ{@ @.­î@:oÙ@<‚£@AG@#tˆ@³@&žÍ@7ò½@ ?¿µD?ìÆ+@æ¦?û4Ž?Ç‹µ?ºjÃ?žš?½Åf@Ays@6Ú!?{Ø™?‡Hæ?ü›¸@ïq?ù>ökà?ŸvQ?°Ÿ¹?ŽÆ?}W4?úÜ°@3Æ@"Ÿ¹@(*;?¹Q‡>õq‡?hï0?·ìæ?äe@(è@ú9?ê#z?üÈD@7w\@7~@= º@Cg_?³Æj?´^@r>@é?Ë4?¶ÁÆ?£I[?”÷?³G?ÍÆÃ?›zú?8ÈÁ>ø +O>A +ž>–Z?+Ì?^q*@Á@ð‚?î'C?ñ€^?š?"¾?!Mg?,?áк@×Þ?ºÓ_?“W?ì…Æ@ °@ 3¥?ܾè?Ѷ ?§g?«¿Ý?´"Ì?´ ¨?´L?³ÚC?•Wü?š`Z?°S©?Â+¥?Åî¶?»œª?˜°K?nÚä?}{û?Šç ?k£$>½#o>úçÀ@J)@JÏ?òór?íЄ?í®â?í^@F˜@(ºt@‰?®7-?¨«?ŽYÞ?Š¿?yUÂ?`!1?ºL?¶/ù?²lÝ?¹ç¬?ž˜Ä?Uá?ƒß}?Hy¨?5hK?(c?hfv?ÑD?Ô& ?¸ ? U?µÝF?¶?¯på?± ?·€?jÆ?µ —@®J@Œæ@°@Q"?À?³Öâ?÷§@Ä,?Š¥Ú?Ä?òõv@D3Ý@72@.\Â@˜Q?hPÎ?h+¬?lžž?[çj@ ±b@DËß@ 6Ù?¿Õ£?µÃ¡?®:Ö?¶¦C?çY?æ‘?ÍoÀ?ÖK?Ö°[?É£Ç?éÝ?úϦ?¦»d? ±5?‡”‹@)xd@-@I¬`@I£ç?—?fY^?èŠe@èŠ@ +ØÖ?ý41@_¦@3iä@52?âvÛ?ãøu?²,Ä?¬„R?„r°?fu?É^¦@Æ?üs?¬„õ?¢'¯>êìÒ>IrÎ?¡N?¼(º@%2¼@:ŒX@ 8#?ÅZ¨?¡•§?!^Œ?(õn?€tU?w@ =@H?Äç†?­/ó?£Ë?˜3A?Ÿ­?¨ˆ8?•;?g“~?e‚&?PÍ^?d.À?§Én?®2Ò?ì°??û9@Í@?#í@ñ?iV¸?‡²²?»ÚP?Ç*@IL´@Cûñ@/w@Ñ?Â’ß?´Ò†? Ä?Á³? £ï?-¶?‘«Š?ï?ȸj?²d1?µÑú?ÎæK?Ü ö?³~?³ÀÍ?è±0?ï[æ>eÑ>=¤’P?›_?&e¢?¸Ÿ?³Fç?“"Œ?œÚÚ?W}>ýv‡?½ÏÙ@·—?ó[·@ü?³Éˆ?-§ç?k“L?¤YQ?¶Ñ?»S”?¬…ó?’Âä?Œ6?šúÊ?¢g‹?©àË?±oÎ?¹š?¿˜í?±æ¤? -!>Ÿ +?3[?@6?ÅœÆ?ç±d?Š_¨?„Ìø?ŠZË?€8h>ø}?±b>÷úw>Á)>ÓY?Pª?ˆn?V^:?ƒ;7ßâ=è)?#ž>?0 >é{Á?‚ñ?…Ñ?:3?c3]?f ?yßl?’3]>›Ì? H?š?¦7_?mU¯=±¶ +>RF=ð?<é1T?ìê?¼´,?Ÿ!B?Z“Ü?_ßr?"—~?•5=›hÓ:â= =cV€?_´ê?Z¹$?ˆ†?`Ü?I?0’? +õï>î3>îº2>ï7>Í>>e>y)(?L‹á?PÌð>¾÷;>Ê'?d`?Ú²?Y[…?t?Ê<È?èQ4?èÐÅ?éÒÝ?·èð?„ª[?—i˜?¹I¤?Âù +?Ö;]?´"ñ?(†z? 8”>µ…>½iÛ?_G? +ùç=¾£–=Ùí? +S? +@…?¹ÿé?ºàt?}ÂV?{¾Ö?ôz&?ü0È?¨^&?™ìc>á"Ç> m6?¥dY?¾¢>÷Ð>lyj?Ôq?/£»?'´½?2E¦?'ª?î6?;»?®+?ا?òF?й¡?½”ž?ud=éô>ª">Íü†>’D>¬œ? +¤3?.9?ƒA[?œfE?oO?>_/?gÚ?€‚K?žZ;?ª&|?Ÿ¦Œ?¡™y?§Yr? ¨ž??†fÀ?9=j?òÆ?ÊÉ?~? +Ë]?þ‡?!t?ð5>“Ɉ>—Q@@,çÐ?.g°?!æD?a%[?UÑV?IêL?@?D‰I?€¾?>?…AE?²á@–¼@¡º>ëîª? oø?¡?,|_?È[?ošX?‡óå>?¢=W*„?ª?œ†>…µ¡>€Bæ?âà?+9‰>häA>Jm¤?N9]?o\?‚¬'?ð•?>Ô$?5©?§WÓ?­±E?S•Þ?DÒ‘?KÖ?wJ?)…Ñ?#¿m@. @n?£O?¶=û>*×>–ÁK?r¯ ?t^¦?›WÛ?âÂ?l÷D?ß’?˜~ë?—Ú?eðï?;ª]=åhN?V€Ç?`ÁÏ?R¼†?QÈ–?#Ñ?(m´?‚Zì?RŨ=¹§û>ÐÔ?v| ?;ÔÈ>Óúr?÷)?ž'‡?€(?0T?•ß?‚‰j?GP?WV‚?‚™ª?téD?TÇ_?‹.®?·{ð?›†R?‚³v?‘þi?¨!]?È ?íí!?œ~i?ÌF?ƒ?ÄA8?¡é%?‚áˆ?O¡½?Ï?ÕnU@ Úš?øh?Äz ?køÓ?Å?Ö# @ jN?Ì|?#*O? ´é?!†?fiâ?‹šO?›7l? 3N?g¯L?Aå\>£„r>`-q?«?'¼î>ÃL§>›ƒ¨<·û¥?¾õ?.‰?çj?íR=Õ}¾=XY]<:˜>6Ö?»ß¡?±÷›?ƒ¬?d‰³=Ôó:>Èä)?Û¢+?ÈŠå?0©?3œN?S@?d¬U?ˆßT?H8>ŠÅ±?÷b?’Ý?~¦?ZfÅ?6v™?ô¬?ù+?þ'?5 N?SŸö?Z4î?qYƒ?9Úw? Ö„? ?øî?òW=@|‚?¼VV?+A??¦?¤®·?·è_?Á¶Ò?íy÷?÷î–?¨né?¡Uk?æÃ?çkq?‰O7?Œ2?S°Õ?`Tõ?š¸÷?¤þ@vJ?ùB²? ?¦ò?=Ík?eʇ?¼.—?Ö<ã@ùƦ?]+K?¥èQ@#@%Òp?ÒÈ?„«Æ?ýLé@èg?ü +Š?è¼'?°p5?—›M?’JÙ?–Ê™?Á'å?ÍÏc?Œ?„ÂÓ?UR ?^<‚? |§?›¬[?¸H£?·»Æ?… *?X?º~?>4«?.Oœ@Ф?ÓHP?Iæ?zž +?œˆ}?”cB?™Æ¥?Âíi?å)??×-7?Å@|?ÄÕ?Ç>À?eáë?ÑÔ?\À|?xÑÕ?²C³?Ç8)?’·?„Îr?~?^æT?¸ü??Åw?ˆà?‚0@†Ú@Ìó?´ˆ×?°5@?«ãG?±CÕ?ë2?åû~?Ç…0?Ö–ù?î× ?Õù?£œØ?¥wI?ŸŸ»?‘8?„©=?cE?1w*?°Ø@žè?Ûá°?¹0n@t´@4%í?Ñ­•??±ßD?Æ~>Î/B= :ž?j¹†?•÷¬@JÔÉ@a5?¢¿Ô?ˆ5m?¤‚?`»?W\u?YW¦?Æ}3?ÌM…@Ãf?õ?¡*c?žïG?œ¸Y?ÌË´@FH8@7hü@ ¶’@?Üœ,?Ϧ¤?¿OV?ñó¨@"®?öO?ƒü˜?ÀµÑ@óg@Öä@‚‘@Oéâ@€Ië@¨?˜R ?ÁO¬?Õó?ÛÕÛ?ãm?üÁÎ@«‘@ @ X?äB“?ÙAû?¹Ž;?²Ùg?Šz?ræ—?¦$?²PE@¤5@R@áü@Ó"?Œ­C?ŒÉb?;Ô£?W q@ù @‰ ?ÕÙ+?Ö%M@'7@ Á¾@Í?ï¨K?JOá?f¶„?½Àø?¥Ø™?Pº¯?C("?Æs?á5? óµ?z ö@–Ÿ@ÍÑ?³è ?»Ž*?ÃÏâ?ä?ÁÚ¢?¬%N?ˆé ?Ÿ°­?Ãí?õ°î@"Øs@ñÍ?ïóð@‡Ì@¼@@$ @@t @J!)@XZ @5L(@´1?²A>üX?„ùa?ÒøV?°K¤?@ I…<ûšû?†fé?ù"?½ž‹?‘ºÝ?¡£¦?¨F[?´…ˆ?ƒ?ÎØ`?Õ{u@Û@Ã!?àŒ0?¡‚(?ì}Ï@P0@‘?È>”?û®j@D+?¤Ò”>ÎY&@(S§@Žã„@7›?ÁÊ?°•?wšØ?y<›?€7?]î??JA ?—…?Àf?Ì®ø?Ô7?Ö ;?ÓÊN?·Bd? ÿ?«Yr?µÌÿ?¥žò?•Ô-?į‰?ÿêb@Ýz@ ‰I?ïÚÄ?¿¹s?¤|–?|šØ?S•A?Êê?;·Z?ˆÃf?Ñú @-±e@)lc@9L@Y@2¹‚@¤x?Â÷æ?­t?q²?…_½?ÈÝ_?Ãs¬?~=?”s?×OU?áåu?ö/@PP@ƒä@•¢@g ?üâ’?ùQ?˜&ø@ë@‡§?5ä-?$×&@·@“?ár.?ÛÏÝ?ÿ:Ð@ÓÈ@`H@R‡@$x#@2‰?SÔr>’2?;Å®?{ÇK?©¡ƒ?ÇÀ@P¬|@…'@‡%?‹xš?ïàý@>B@µq@"îÒ@ Cð?¿6Ï?Ã3w?Öm?àå…?úoŒ?Ê ?Z9?fr?úÄ?í8ä?´?²qÄ?m)?Š}Å?Ã2¨?Æeþ@>£@8¿Þ@‘¤@ ØE?¥$—?˜Ë_?x ?l…Ô@#é@/bÐ@éØ@¾?ùzI?Øî½@å­@á?¾§ù?0î?up?É]T?éÕ@ ØT?ëd¯?wNÄ?µ[@P4K@={?–àæ?‹‡e?*}å?$Fì?¢…?“eW?y0?vâ¡=—m‡<œµb@ ¢@ k?¬×?‘t•?óSR@Mh@“ +@Ý?ùmÅ?‰@ô5?Ƀw?HJ#?Tº@-kˆ@;/?æW?ß J?ñç?m¹‹?múÍ?jl?^\y?^Ü?‰:?ÁÖG?φî?ò|?ú}·?¸?®Ï?Ýp8?í ‡?êë?ó+Œ?Ú8?£Nb?®ÿ?š&@?•áü?ç¢×?àÄ?ÄEN?Åò ?ê_n@Ô?ÿ +ž?æ¯w?ää?çQê?èzÇ?ÿ¢&?öê¯?‘$y?”[•?ª)?À?¥œÇ?f±{?‚Ú{?¬ðä?«žÄ?BB¡?w×|?äfq?ãÏn?ݽ7?æÓ@`@,Q@uÿ?¶Ò¶?­Ô>¾X<ÃXÄ?Ë°7?ÞCO?ðh”?ý?.@$Vé@9Þ•@¸á?¤ï%?·n~@}¶@\j@Lë_@M“@Zõ@&?Ã{‘?ª?ûØ@ \k?òg’?å—@n¥@ ]8?ç  ?‰ƒß?£Y?ì@‡?ÒÄÞ?³~*?³ÀÊ?Ï!Q?·V??¥ƒ±?’j7>œ^ý>?BÝ?Õ©ö@ô ?§¿§?)c?˜L?·øw?Ýv@XV?¯k^?aÄi?ŠXÈ?“žË?zR?9i›?¡[?øý?Ø…?½W±?ÙÿÖ?ä§i?Šª–?.ñ=?YXY?tÍi?©,\?ÁÑd?Åg«?®Rò?#û?c‹?/°Ð?NM?m@·?vÎ=ÙÝü>"½>²Þ$>¼P+? ›>߯L=Ù.y>ÐÄ2? Öš?mI?skœ?ƒª÷?+-b;·t=žÌ=Û)„>ZLç>ý3±?Yå1?’>ï>¹åò=Æû>©ó_?*Ü/?àu½?‘­G>dŸ}?'8‡?ÿu>ÌAV?wq?….¦?57>VÆ\>©H?c õ?cǨ>]¥&>= Êà;Z¿«:ÚäŽ=˜°?jXS?jò ?ç3>ìŸ>ì§g>í0H>íº¬>î>=>îÂÝ>ïAv>ϱ3>’d>Uà>¨®£>ªp?J9?aˆ'? ®¡>÷ò[?bQ?‡Mp?VEi?Bxï?–&?¸ÉÑ?§Ì?Wy­?DÈF?+œ?Q.?‚+?šLŸ?Àt?ªû^?y}„?iÛÙ?Ò?Ât?m€‡?jÙ’>û“? +}B?¸^??µ¶!?9/¤?HH?‹ð?ûx>w$f>8Ð?‰ô/?›È? ±É?˜^Ó?˜H?—jÿ?"ÆÆ>åµu?(ü"?G „?4ô²?"- >9ôý<ÜÕ-?ÖÌ>5“é?w8?¤—ê?ŠÊ ?€bf?YŒÞ?LÇÅ?°n•?×x?}Õ ? ‡?óG}@ ã·?õ£?ÌÙ÷?½–?¾‹Û?“?xØ$?¡ü?®q7>öYG=è#r>eûÛ>›öf?„È`?©;Y?“ü[?†è£?(â“>ñÛÙ?Qä?;,>ÖŠT>°ç|>Ð=>ºfU? ?,L?]èë?w4ñ?.bK?e?`z^?zq§?¡Ôf?§?þQV@i‰?‹³H?8N.?ŠÔ?“cü?I‘v?: ”>¬Ÿ>„Á>¡û>—#?ªê?*@?M~ð?H@> Ðñ>N5 ?¡C ?ºe¥??ü&?Ðý?DÊ?øº>ö®m>ê„?¦`?¬à=ÝE&?“éë?š_n?ÐëX?ȉæ?i"ú?UÏ?àõ™?Þ¦R?Yì??#»p?-•?ˆXH?›?=§¹?98…?¸¦G?³ZÔ=:==á|õ?À€á?¾2—?u0x?Yþh>,a>„E?Žã“?Ý¡?a¿L?b%×?‚,ˆ??k:c?eEÞ? €s? !?3|Ô?Æ€?E—?Jˆ???Ïþq?B\$?2VB>Ô$÷>çL?e•>»»š>p? ö?Y‹™?·¿?£?‚‚L?•+Ÿ?´íž? ¯]?‚“è?“ï¸?¬?«?º1ß?ÖÔ3?¦ »?Cö?ª›™?ôàÝ?ÌQ?«ðC?‚Ü?*uò?f‹?•¿4?Ù¾?‚ÛÀ?™H?¯åï?–Ô^?‚îP?«Ó?Äsó?埰?ñ¯Æ?·€*?¤Zp?@“F?$?‡Àp?.³?˜ä%?”˜¶?† +>ãÔ?elƒ?ƒE?éÔ?FB=±?E½Ð?^™q>@–J=ü<'?J S?XíÁ?a‰œ?o¬n?Å:?¼|z?"“>èù=ÅÅh>NÆ?hŠ?6ª?Ÿj?Š_?%—?VŸf?°Vü?ÑY9@œî?éÇ?zíf?Wßý>þ߈?P¿ã?´êD?’'´?2˜×?.]z?*¸? ´>Ì“"?·]ò@ Ð?‡§¾=ʸi?p8Ú?¿Þ–?Ãý†?À‹6?Gö>jÄ?˜«³?ºð=?%Œ?„6Ü?„;Ø?„<Á?¾oí?Æg?øB??õ´4?ŸJ?¥ ? |‘?–v_?:ÂŽ?Wi?ô}g?Ò÷>¾?7Ìc@uö@wß@|V?ÕÞ;?(6õ?p±Ÿ?È‚?ÇSY?ÆÓ?pG¹>3G??¾/?£À?iëË?$G?h”b?“A×?ŒÕ?„§Õ?ÍBO?÷®g?¼)?¥´d?óÒ5@´ ?‘Ö?gúË?ƒ»J?€K?”ù³?• >êoØ>Ý$©@)d@ + î=4›>(SÅ?„Ç ?‘)…?Ç/¢?°?¯¦÷?Å°@Í1?ú™´?Øg;?¨¾-?WŠ„?"gÂ>¥ÁÍ?Fý½?¢U?Ȩ?è½?° Ð?Ž¿?;åí?Íã?ÞZ`@Ì?ÛÄy?Ç23?œcâ?/ˆ@^©|@{aó?¥Þâ?„Ç?@b@¬?È?:Ä?ÇC?ºº?8šæ?A:(?Iݸ?˜%@Û½@ á?àø»?ĶÝ?„®?Y?ª¬?ªl?  Œ?©œi?²¼ñ?Ýþ|@˜â?Ðæ?¡Ký?œíG?˜Ø?EÎt?Ð)? @?ÅzË?Â?»ƒË?:Té?§q@x-@#¦@!5"@v©?Ô?ÉÞ?Ù°’?Ö{(?ìÍ$?ïA–@È@ú¶?ãçÃ?æ~:?øÓ@ ð@FBE@ ¾-?g²c?³'¬@1@¹ô?‹{ ?£'Ã?É^?ªYå?ƒø›?ÂŒ¯@îp?Íc3?™Ò ?¦Ég?½FX?¡ ?ƒÍM?Ÿÿ?´k„?ŒÌŒ?vç@9ú@eS*?ïsQ?©WŸ?ðW ?ùWö?—È’?ƒ‚ö?ãÒE?ÿû?¯‚?‘ÑÏ?¿w ?ź?ƒÌ0?‚™´=T!<=«¾à?óB?êýd?ϹÕ?Ñú…?Ô3j?ÜÓt@ ²@hÚ?´H?¶S´?§3N?»û@Å+@«?8ìò?4HÔ÷‰@ eú@lƒ:@"nì?Ä~„?×ì?€šl? Û¾?¹ì®?”áê?i>¿?¶î?ïû#?à–Z?ÖC;?åV?õà>?Ý`?À>`?Ñ-Z?äçä?÷™@Y-@u@…“@«@'ªÕ@ þµ?Æ­Š?É?6ýæ8?/‡?Ö'±?Ûhé@ÙC@NM?¾2?&)¹?}IÇ?…t @00Š@-r?«sH?§öÆ@V‰@ å?ÁE+?¿.Ö?ïqã?ïÌ@AÓœ@Tªã?”Œ?ªÚ?dS¦?{íd?‚ a?.¥?Ór?ù?Ÿ'?~o?£T’?®à¸@ ÈÐ@`?®ì$?ßÙk@ ‰:@ ?ßà@6@'?C@Ü?èdÜ?Þã?ú?Ý®?#³ÿ?6*‘?õ–_?àɾ><t>…¶Ü?Àľ?Ï1{@KK\@NÌ ?ÞYj?ÀžN?Ôvë?Ö¾ö@5›>@GåK@EœÔ@I|@E^@6@ +ê¦?èil?îÔ_?!ÙŽ?±Ù?Ys|?^áÃ?µ#0?Øk‘?Ñ]Æ?Ä'­?œ '?rùJ?—ÞG?ϯ´?¹¿?Py?‚$?ßµß?ÑIÔ?½±?¶¸—?v˜Ï?q¾c?=Ô?G€?ÔF•?ñ»¸?o;w>Öž*?£Í@ª&?Ïúß?sÑû?RëÃ>H-·>òD‚@.Ÿõ@2y@3ç–@3Ô°?Ñ»‹?¿¤Ÿ?«[? e?©D?¾ó4?²¡ ?˜ÑJ?‘À?iŒ!?–Õz@'lU@+rò?nÃ?mªò@*@œc?(¹?m‡¸?³µb?ܾ?è.@eH@c½@~@ »?éS?ñwn?j<>™Ïª?žn?³÷ ?Ø%?áy?äò?"-Gž.>zl?~>o?^´?h³?jyn?jWê?j>P?“;æ?¥^‘?‰¿?E‚O?7çý?)"?<€?¯i?®ò|?’Ì2?—?ò*¥@ Üâ@§€?謯@ +¡Ó@,”Æ@I?F±?WKß?æ^ß•?4ô,?†ô‰?ŒÃ±?® +?Äã@fÍ@T*Ÿ?pIÃ?O9?±‹~?ÈlÚ?Êd¾?Ó‡Å?й•?ɱ@?á¿{@* ¨@%I‰?6ûú? Öü?³¹œ?ø¹¾@ Æ0@ Ç{@ä@›t@Uƒ?¥Ï7?ª˜÷?sh?dl?§‘_?ÍÚ?¿i‹?¬²5?µHF?Âî?½4Ä?¸EM?³RC?g‰q?vúÃ@ _¥@ò@® +?ç†?ž Ù>çMÕ?JùÏ?öÞA@)@ã@³ì?½‘„?¹5›? ª?Ÿ¡w@—@\X@,2?؃‘?ìåå?å–ì?åžÇ?ƾ ?Ýd?Âö*?Ƭu@Aj@W„@5´ˆ@Gš5@o?z߉?” ?Â¥?¿fò?žª^?¢h?Ù¤Ê?óîÞ?Óô?ÈJÒ@uÓ(@nÃ?ÿ#¤?ä—ž?Ðz;?°ëÓ?—©ù?¢]?´µþ?Á¦–@Mi@5á@±½?öL?2b>÷gá?~ò™?ºt1?Ì­$?èu›?˜Ï?Ê?‹¶?½Y ?±s?»ƒã?U?ù>â;>ö*¾?tè?“6Ç?ÁÓž?¬F¤?°t?úþ>\Fé>”Ñ>K=õL=e²ù>è®ä>ÙÁR?4÷?Þµ>Ý*7?‚?7Ál?ŸØ?È·î?FF§?63w?Ь”?¨Œ¯>Lø=§*¶>ÁþÐ?U=¼â>ÞI•?z[v?.•"? ‡¢? Z?¡@p>mŽ’>Z ò>pH?'J>¿;å1?`.²>¬µr>¤È>iqÊ>–vÿ?3sé?9ˆ>§#\>¦´>-«(=¥òn=´ñð=>/ý>祉>á$îs®>ì+‰?zb¢?ŠYE?-ׇ>îQ2>îÓ=>ïRÔ>åo>ºòÞ>’и>‰Ž=ó‰¹=Çð£=œK‚=a1â= «X>ó&·>ôYh?špÂ?±0m?ƒê™?] ‡?Cåy?Am>?!&?>÷1?"?bÀ?&Î?4&ô?óÒ@÷“?è:†?y‚}?m6?J}?Iúõ? +RÔ?«>ÿ®?á?÷Dò?òŸ?©ÀÚ?¤GÃ?|((?|’"=Õ5?%l¶?7`Ñ?– ²?¤€W?ŒÆ9?‹-?’ç±?˜DÑ> hº=àkx?‹Œ?­›µ?6éÓ?Ì´> £ <áÀˆ?I_?¹›?Jm¾?Hê×?«\?À$Ð?$¦>¦aÖ?<•l?nëž?M/i?Aù?ž[´?©yN?ˆ®ì?€Ý?Ž'ˆ?ÏÁ?ün@Àú@bÖ@îŸ?:@A<‘[Y<ê–(=†ñ`?L +¡?Š.µ?ª>É*;>¿Að>µ[^?tj©?™GV?+ +?u¢ ?[?6¡>Õ/ž>M,>9šÛ>&,?¦• ?ÑÚù?¥öh?¡‘?.ûR?g?Ö€.@Àg?›ºÄ?uª?/¡’?$L?¶ðÏ?ÏǺ@2#@tÒ?„f×?]ìW?T¿?Ku">±Ü >€¾L>Þë>Û—Ã?g±°?cD?’g,?ž}Y?Ses?N#š?WŽÇ?`ïg?å6K?÷¤>GMÿ<%Y +?®œp?·j?-M?+°>?P +?G2F?ÓO?•“­?Âz{?Êõ?ý€?¹?›ÀÙ?¨R>é_>Òôg>D*@>ZE?oz…?Vÿm?¤'Ø?¤¥Û?XŠ?[ã‚?«d? ò?iý?‚?‚ß?e–&<¦à>DÄ>‘áÕ?#©z?((n?,©?)V?1]? Ì?>¢D?ƒ´.@ q?Þ¢?jBË?f )?‚Ê"?iê^>Íkç>’~J=Ë\>l86?ì>ÅE?*„@´4?¨€@>l?O¯m?ñ*?ñ˜^?öÁ&?²¼m?'ÿÖ?„Úž?Ãêe?¸–)?¨xî?‡¾—?E¡ç?´0 @ Ó6?¿Û€?Sö7?XV‰?\·`>ïS>œ?ü¥?V¿h>ó0³>1¤ú?1?‚î?2üL? +`z?ln?\N?¯â:?º õ?‡ì½?hº?‹ùU?–A?k2Ë?aÐ?oà?bäÅ?L+?FE?xùÖ?x:A=·QF?Pü?VŽ?){ó?$"g>g.È>A—->QÛ>N‚C?¿Šä?µ¢¨?·H?ëª?yü?ŒH¢?ïܸ?íp4?û5\?Úÿâ?f¯?‡ß?Å’?Ú9Ë@ A?èð-?‹aH?r.ô?Fªs?¦»>–Æ;?"_n?ƒæJ?Ž‚Õ?—ªl? là?ô\?qŽ¸?€Kd?„ Ÿ>¹«â>¸ƒØ? Í?[r`?n”,?ßü_?ý¬Ž?š7Q?„4ß?„9Û?„äš>–nŸ?Ȇ¨?É®Ñ? 6ä?£\¥?Õ«?À¢î>šÔA?"=¶?ùÎ"?øš?ó@s?ôòZ?õ/Ú?üÿi@+ì?¸ö?ÁÇ?@ØË?mí3?Â9>„·Ã?`j_?¨L_?ÁJT?΋?¹u§?¯&a?iW(?<Û¸?±«?È©ÿ?È¡•?Íñ¸?ÈÍd?Ç:?ت‚?ß ?¤9Š?¥¿?úŒ§?ó"?Á8?—?ï?'Èk?„Æ”?TÏÞ=‹çì?\@3Ñ?ñÌq?Ò§¸?Áç ?¤I%?¥ê¾?Ÿ'Q?¯JÈ?À³-?È~?Ðqâ?¡Fñ?„'ž?ƒ‰è?yÁ ?œÊ×?¦0»?ÚeÃ?ùer?©Y£?–#Q?¿©¼?Ç,Å@ ¿4@h¿?ŠÊ?U%@D@ka<ëŒÂ>0•?Ç?ÄEõ?®}??½Z³@¦ò@ ¤¹@0]º@'S +@ –?äT™?„¬?’Ò.?£…¤?¢«Ñ?ªæø?ÍiÃ?ñ†\?ÜÚ’?ÏÌ?߇Û?ë#ð?çzö?é'§?¥åt?„‡s?„ƒX?„5?êàA@îµ?È`µ?·Á¤?›m¦?œÁ@%@­@-—­?€›È?€ªº?±æÕ?¶H,?º£¼?»úk?£Ô–?´¬L@?$?ÿΟ?ã|@ ²X@Pì~@áb? |?q¿ã?ï5ª?æ'??Î!K?âuØ@3"@Úç@"Ã<@!y3@!öZ?ûíW?»|&?±ß!?¨+A?Ë«,?á™?‡ Ô?3-ð?›LU?²ÙT@,cÚ@UÒ?ý4s?¼ó1@4¼P@N¥?ýó?Ò!¶>è>r9õ@[ù»@}-?óÊ[?×Iå?$ØW? ¨u?€"?{‡õ?Ê«±?Òv—@@‰\@GŠõ@9Yn?Øã?Ú4C?ÕÜÃ?ÏA ?Äh@?ÊVû?å[?äöí?Õ´À?ÂÌÌ?™Å–?³h¦?û8 ?ð¼ ?é¿?ø_»@$©@‚]@?K4@ º­?=Ì?gp?¾2u?õ(à@'ë_@!&@û@bÎ@Ù-@Õ{@Ý?ô¬Ä?Ãe?lI¹>…Ëf?…º*?ôbÈ?Æâ]?–©J?óQ?Ën?¶ +Û?ê[@©¦@2í¤@)]?ú-J?ºéâ?‡·>ÿs=âæ¨?+@í?H?Ópo@@?óUá?ìúï?ÁU9?©÷?¾l ?ÃÜ»@|a@ÃÆ?îÚW?Áuô?å +}?ùn(?飃?æ”?Ò¸H?Á"¾?ìè@?g™ü<½<?/Û?†ó]?„D?€x@?Ŧ©@c!?—Pô>ÿì¾?…¬?À^3?Ò Ë?áÂ?Ϧ¾?À&j@Š÷@V­±@78ƒ@%@lÊ?¾SR?ÍM?ðÑ?ÚÙL?»É?¾Ç…?¿zp?뇋@ã?á™?P?¼b@(!@-d@3¢@"Ò¿?þ†ê@Vç@&B-@ÌW?¦‹€?²Gû?Ñi¥?¶+¹?!Ü?l¦A@-¶Ï@'fÏ?¾3Å?·ä +?xP?s—t?}H?‚Cð?åÙÁ?퇗?‘.?“Ð?ù@?ü¹÷?O˜?>ï?ò‰@7·?ë8ƒ?è+Z?‘ýU?|Ú?˜ðQ?™Do?¶AÜ?Àg§?¼Åh?¾èÞ?’ ?kè8?B­R?2à¶@er@h0Ø@:c@ =§?å==?¹Ž.?ÔÓ@?ñÌ«@$ûÐ@zh@såØ@jä@Rlj?æl@/—@?€Ë@8]í@% @é@$9Š@e@Qq@HC?@#>@ʃ@V?øí7?Äÿœ?ÀÉ@G@jÏ}@AŒ@+·]@Ó@››@#67@34—@;?ü’ý@ @È.@ÓV@)­@ ?æ_®@Tù@]Q!@IÍØ?·1½?¯ª?„ÆÏ?vóž?ëÆ?ú] @ ]@®û@½b@Íí?¬£”?uɲ?ñë@h?ö7Ö?Èû’?ç÷½?û… ?ó_?÷ —@!Ù@üº@©ö?Ø?‰É‹?†€??ƒk”?‹?ÁóÕœ?ÅÜF?ÞºO?À¿ó?¶‹q?ÃG*?Íüç?Öç—?Õ‚? J?) ?9†*?`¡?š:@?@”@A@µ@Þ?.Ú?ÄÇ?QT}?Vù??Úw±@³„?½­Z?…Æ?¨p:?ÞÑ?À >?gêj?N›ø?pY?†f®?厈?ëñm?¸§æ?Ã*š?¶QÙ?³¥²?’¶?Šù?‡ÔÍ?|£ü?†§?‘rË?™­?¶EJ?œÙ->7–m><ì°?no?múå?~ÄÌ?Š¡?ÉŒS?ÑŠÝ?ÕÛí?×Ù{?©{z?p,d?½ E@.ä•@ Ió?3€L?HpÒ@nÜ@|?]Œ?l'?ÀSa?ë´9@ÆR@ %”?÷îé?Ö¨Ÿ?¦ðy>ë??@X?ó}?ÿ,â?ì?}½è?k¬‡?j6ø?ÓÞÄ@Ÿ…?Ü´š?œ´Ö?£Ÿ(?¹M½?©Û$?¯]?®í3?^ñŸ?8ŒU?™ã¥?±¾!?¯vŠ?³a?ÁÔÛ?áØ*?Ø(ë?=Ø?5_[?ÉIŠ?Æ/?¡ªN?¨Ðu?þ‡þ@_@f@?æ€@a2@RÈì?º¶Í?¼ä×?¼Eq?·Îw?÷íú@ ˆ@@g?æ‰?×H®?ZCÍ?c?`vÚ?V™Á?º£u?Ô¶T?˜¨Å?`B`?…ÊZ?©¤?º.y?Ñ…m?Û“z?3Þ>õF®?…™ÿ?ªxŠ?ë´Í@qÒ?ÑoŽ?€4?v„Ô?Ž7Y?4¶@{4@ùÑ?;'?$>½?Š]j?—Å@ m@?uÞ?úÍ®>§È»?-1?¯P‹?ÇŠ@?6@4Q?·ug?°0@…ë@*d@*ž&@*®…@ žû@Žq?ñÁÕ?±ìm?Š¸W>û-û?:>î™[?0Oí@,¾@#s¿@¡L@£ëõ@ +P®?ñhs@Þ@kr?çè8?Ì+2?Ò8µ?áÍ4?ñ:L?ùË1?Üz˜?ÇØa?’i…?>ö‰?ìÕ?¥ê-?¬Ú&?š§?“`?q’†?Lda?HPú?› ?œxw?‡ôC?fx ?¼©?ýß;?BÌï>lÿ?«yÿ?ÓÄ?="ø?ñÊ?VHõ?qhF?ÄdA?ºó=?vXª?gÆv?YÇ?MW±?Z——?pT?¸)I?_ðì?ƒr>F‘>2É ?/H?IqK? [ >ȵ^=Ü.]?Eœk?†Bø>éá>¶ÌÊ>“ää>˜ÆÕ>×ð«>ý¶i?7¿? üj?žT€?á¦>™ˆ>§‡œ?M”ß?8 ñ>È&É?«ke?Lg@?ûë>áÊŒ>ËI>…A·>©ß>“õÅ>wX>¡›>¾—B?+å?h†?g=d?g¸y?Qc>êä>êã=ÂJØ=çj +? kF?FÙ‘?F”?; +_?5ïT?0̬?…}?½¬e?šùj?%M? à>Àßž>Ñ—›?? +J“@)Eh@46y?ÕÁ>â•?D[Y?u·?Ñt?•ƒ7?@Ô‘>÷Î?:\ô?w¼Ö?]0?@zé?a°Ã?‰?…À¶?W &?2LÒ>=áÛ>œë?m„?u#T?}VŠ?kMc?»?&=}?$=°?7õ?®WÀ?«ÏM??q¿¶>QT£>b4Ò?xÏ^?vò?k³H?aXz?Vôé?L•Ð>ÑKn>Æ>øÂÍ>þé +?k€#?/Œ@ Ð\@Ÿ?Ð’?¸ö2?-‘’>ÿê$?¦!Ý?À?¡1«?“¥!>Èy„>[›£?£Ke?¾’X?¯¡4?¼?¤j2?•ýd?§>?°?½º4?Áç?Þ!s?îz'?™?~õg?Þç?ñüc?˜Ã>?ˆ¢¡?¥ Ý? ²·?›Æ.?H%Ð?0͘? Ç”?#W?¨%R?¾ç&?`N¡?5&~? +}?AÞ?¾Œ¸?â-ò?œ8>ˆ=$?Fk?`*?¶:?ÇF>ŠzK=`¾ð?›í?±ˆ?FPÖ?5ü"?î$?3)¸? +?‰ ?sÈ?h>¤yÈ>€Øz?97?K‚Ú?Ò-?ç‰Ã?GÃ"?&‚\>Ì-Ä>¤Ô>;d¼>Õi?"#Á?0?· ?¿ÓX?þÖ?þ%¸?zAt?o†ò?|?Ë?ÏR?ƒ4½?Ø}Ã?Ô+ý?é~ñ?ß5½==ÃX?âõ?ØÖ?3ær?Kc¯@ž@r?A†Å?&y4=òÍ/?ˆÑ@?œñ”@ ;F@2?‚ +™?€rÐ?g0 ?NI?Õ99?ª4 >Þ>\$c?%?Ìê?Qî¸?MyÅ?I +r?qCD?ɨ¶?¸¼ò?g“É?Lûú>°°?Ùì?±ÌÐ?••ë?Ë ?4 œ?sÕ?/…Ë=Ój>Îz?ƒ®˜?‚ò4?q[?€&æ?•6_?™ ?žÇ?p )?Œk?'צ?\´™?æ1X@.Ä\@B¨?ƽ–?¡wâ?‚°?\wœ?5hŠ?~å?•\¨?+øà>Â÷>¨G?_„?´T ?˜«Ü?†Þ?Ù—Å@ú˜?vaŸ?'b?÷Û¡@ÞJ?7O…>c•©?\?ƒ?,?"@ DP@R?Øå¨?Çv²?ÄrJ?Äá÷?—Í>Ìp•?Õ‚?Ú>ÿ?„1?‚h;?K_¢?\ÁU?­·Ç?£¿Z? ?xÌÅ=A=±'$? IÍ?ª5?.}Ê?;ZT?H-É?a_{?ƒ¨¤?–²ì?Å‹?Å’¯?Å—µ?Å ?Å©Ä?» ¬?¥Aœ?‚)F?-2J?k +L?œ}e?¼25?Ú>ž?UíV>éw>Ô0?¶P?FÏm?išA>«”à<×3ø>ÁBý?Ë?¢Ë„?Àg¸?Ù/> ˆ ?m"“á¼>©áŒ?¥Y?¦ƒ?Ɔ_?­>Aí,>¿&¥?˜j?™zô?§'°?£ÙÄ?øî?iè?{Ú?=ù%?Šˆu?½ëº@±ã?ÿ*š?üÐC?ÑI™?§ª›?6¢ó>¯Û²?t‡?ªt§? k?›Í´?rÆ8?Rp?Ç»|?æ±È?±g¬?£&?óJ?ûNö?®*?„¶v?/*ø?+­*?· ?°2£>Ü£a?ôp?²K°?®•¾?‚(?ƒ¾ó?€Cž?‡^?‘Ó…?“E?”C?´ó2?ëfQ?ÄŽÑ?˜&?º\1?ÞÒ0? -E?_g8?—×î?¨ñu?¥Ö?©Ks?àë ?ÿ'P?iGŸ?ÇX>ì¤Q>Ì •?¢Ãc?ºrú@Bm?@SS2?N›Â?}³?†„Æ?Œê–?ýe&?ê&a?Œw?Ž8#?`þ?­ß?‚<˜?— ¹?ÁY?­ç?v)Ï?„ê2?„¨#?¬:Ó?è:Í?Éãò?¡Q ?¦V?®‰W?—Ôä?|•‰?Ÿ¸]?³ƒ«?ŠgÌ?^åÏ?xtÝ?„ƒ{?7?êÅ?…O ?‰UE?‰­?‹<Ì?$ò?Å?ظ?å­C?Ô6ˆ?ÍY?Ü^±?Ñ£L?„J?š¯‘@(þ@ íé?¬å?¬°?‘?Å?¾÷@0[@ z%?'1*?EP¡?„S?²@#?ÿa ?èB&?ÅþX?ÇúE?È*ò?Ëü3?Ðh?¬¼K?–?Î2 ?ùw„?¥ê?s³?¯Dà?Â+Ë@hH@Ð?Æ}W?£¬%?Ø…?éäe?õ®¯?þ†>@CðÖ@O^8?ÆE?¢íl?žš?a@7 Ò@A¨Œ@ /@'Š?ÄÔæ?½¦®?/?A$á@#ë1@ 0?þé@]Á?ó'Í?àH(?‡ãE?ž÷g?éÎY?àgÃ?ÄIþ?Ôcd@Kâ?ø‚&?¬…„?å¸@:Š˜@À4?ŸI–?ÇB^@¨þ@ƒú@@ Õm@!>?÷K•?‡.,?·}?ž¾ž?rû? }W?˜Àû?ûÆQ@^Û@Úa?ÙÀO?ž@¨?g¬ß?\? z'?M!i?Z¬:?\C ?lö}?Èl?s ©?iF?‚ÿ?‰ô?YíÀ?̯?‹Ó1?À|¸?—/?hšX?5‡?·?ƒÉ +?±à?® ä?«B¯?žL€?ŽŸ?¦CG?¾wõ?ýÚý@V~?åWí?©Z¹?÷EÆ@ø ?õÑ2?¹Üò?´\w?·Æ @Ð@:f²?ÈVê>ýƒÔ?…4?ºÖ'?׫?ë[@lH@…¥?£öv>­ð?Gô°?š?½Ði?ßÞ?±Ê¶?‡Öµ@!à@€q@Póš@íg@.äô@Le.@’ª?—5â?_ôn?ø??üo@!i¦@W@P@IR>þõz?™—q@A‘@)¹¾@>þÙ@ a?¸Š~?½Žg?º¨n?§Ô°?~6Ç?’ŽF?טÂ?ܧÝ?Ò–§?»wu?(È?”žŒ?È1Š?¹I‘?}jB?}T,?}@9?~-Ç?‹Ž#?Ž©“?«Ug?¨–Ô?úÅj?ü³Í?ªd? n@$<@Cê?áJÚ?ÑŠr?©-’?›Ï?òYå@ +ªW?ÿ¢ ?÷Ýá?s ß?K?U,Ì?{eç?nB¹?aU?“ì9?Á9?¾?ç?·æg@s\@Rpé@)è @q0@Ÿ³@Oub@*fy?œ&?¡)á?›¢?ÖÑb@u–s@f¡¸?ûfù?ùÝ?Ñ„Ä?Ûû«@0@ò@'¤~@$Ò˜?¼ûa?´Í?"›ý?Á`@#Ö@=-m@;ÏÃ@@dã@¼Ë?ÄÆ~?¹’c?µV¤?¸½æ?»Qù?ÙOÞ?ÿ§?ýâ@?÷o$?ï{ù?àžÀ@ ˆ0@dþl@[ß¿@_a@;·@G@ô?$Áý?Ô?àÚ@?áÍ?Êv?¾r +?·e‡?´=@¤Y@2à_?çp•?‹™´?úx@7âÿ@9%Å@8Å:@$ù?ÿ‚e?ýÙy?Üôp?ÏÎS?ž°q?§^¯@Ë@þˆ?¾® ?®ôd?ŽØt?ŽÏ`?ðQU@ +M??Û{\?ãšv?ò̳?¹?C@A?ŠØ?áÇ?ݶ/?¿òú?³hƒ?å>þ?¬B?¨ú?ª ?§²_?·ã?¡1Û?us?YQd?Rgª?<Œp?ÇÕg@4l;@4c?„G¥?€³r?z>m?s?srd?zjœ>™pÆ>•Lª?é`@ M:?¨x?bs…?¢¯t?ÌÛ4?¦@?ABÙ?LàN?‹L?…§ƒ?uÆ?o @?i§@>Çs?»*3?“S@|_@0@ nÝ?íå~?¼ ¬?P~ó?\z?¢qæ?¤’%?„Í?z6m@>OX@C.ï@äU?볺?åD ?ê+@ Èf@"ù ?ýh’>ë¾?=†?•Ó'?áÿ?ãßy?êoý?HIl>ö²º?æTÄ@)ï÷?èiy?ASj?iëá?§ +d?´%Ï?—én?›èò?á 6?èÿ°?íR?ë^û?ª£ ?rçB?Ó]Y@0{@±?˜bÃ?”Š?°J?¸¯Ü?b”C?t¨?îè½@-¯Œ@P¼?çj¦?øôÜ@{b@ÛF?­V‹?­I•@ ã@Ü$?¦yç?D2Ã?‚^ì?•„?GJp<áÁ%>¿>Pšú>ž'ƒ?Žù"?–†‚?¦á7?§®?Õ†1@C‰@ 3Ó@§©@"æ‡@ ]è@Õ?M`›?Ið5?f¿?'¡?×Ñ@»i@È[?×V’?Éð&?7>ì“Î>õÿ?>ð?û@‘@Iz?©>æ;]?3¼þ?‡²ð?f¤?SSä?]b@ o'@?‘2?fã¦?¯Ú\?ß'Ñ?ÐÏô?ºR?Èr¢?ÛPö?âÌ?ñ#}?ênÚ@–?î,Û@%º­@-N@ä©@ ‰?óNM?¯b?­¾²?­?Ï?·ìå?ŠDÕ?µß†?ñ@)„?òËþ?{5³?9ª>ü‰ô?€EÅ?ÂÜ+?Å`#?ÐxG?̳?À¹ù?©û?š/ö?Ý>=?Déˆ?ø€?>9?)ÿ|?¿Ýá?»w?²š?0>ÚÙ›?ï¯?7ß©?ÂX?WI?d^'?ƒoŠ?Âë>²£¢>Ed©?8n?UC?ˆ•?Ž>ï?Žì‹?»X?Aú?ò>Â?š> ïá=‚^c<ä%<É%»<ºü¯=«Òá=²M<>¹ j?…å´?“ ?@x¼?¸?†žî? †¨>`Yb>³£>¹&Ò>§¸Á?dÓs?e…>¬Û0>Rµ? @?_ K?:–c™]?]Å"?X=?;ë*?1]ù>Pu€>"}Þ>žF¼>Ï>?9~ì?opÆ?™©D?Ð¥Ê?¶ÿþ?N1Ø?7 Ú>BIô>q/6?¨ß ?®œù>ÿZ½?N‰>î>>ÙÚ±?ðÆ?kæ?Ú1Ð@GÁ?ŠŸ#>÷?@ 5?wÀ…?;öØ>ø^K?<#›?Ø’?HŸB>ù‚?‹ç?J¨þ?>3>ú„?/l£?¹ît?º??´:?½Jú@ +_!@iÏ?½F"?·È®?O=?eçZ?âlP?Ò"R?ÝWŒ?Ü%—?‰†?%Ÿ?’|1?—Òt>\ŠÖ=äö>ëbµ>þç‰?qUú?)Ë?Ou? lÕ?ݽ?gÒ?βé?ÜwB?™(š?‘?“§1?–GÆ>Th‡?•þ¾?Á¦ø?,W>Õãñ?¥w«?ÀÇÕ?z3W?_ëû?› û?©Åï?S\>ç ? ÙÅ?'ú?mÖ`?ˆ5Ç@8ž@ }ä?úxL?ôPÈ?'F'>ß:·?H½š?S?Z­?!,?©X?Ãÿ±?:Y?F?@|??®?N??ayÖ?ªC±?¶G:?rkÔ?gH¡@(q +@>_?×ûÜ?¸®ð?0I;?!EÑ?fö?irR?I½?<Ûa?™”?…Ü?.D?7¬M?ŠÚ²?ƒìì?z¢'?r1?i5k?_Ѭ?€‘?¤?¯á=?´T˜?|?‹(š?뎡?ôÇ=#á;<¯`?Ä?È]b?õ +Æ?홢?Æx?ȯ?"Ï–?@Éê@-œ{@&7É?µH®?­¢=Ò“È?ŸêO? _¸?´Ùÿ?«1Å?êŸ?‡<ª?²‰5?}>Rûâ?»¬4?½=ç?½nk?Áê:?ÀÖQ?¨°?ƒÝ?] N@i?ØAP>ÅZ˜>Ìû?"¡?Jfä?Òùê?±4»?<|%?B[+?A4Ä?Iíœ?XxS?;Z¤?* V?YÍ0?”~Ý?‚gø?M?8R—?\«?bæŒ?Õr?«#!?ƒÜ?‚nS?‚qý?!ñ­> äÔ? ãT?‚„­?’U? ¦~?œLg?—óo?ÈJÿ@*.?÷zë?â±C?|À?HÖ?mX?‚¸•?¾¥Ü?ð–x?o®?>‰å>%B=ÎzÆ?´?Go»?›8[?»Ý·>èh<ÓO¯?Ž’?º}Y?gâ¢?M„@ G@°†?t[?&úS? œ®? @ G#@ºð?Ê:×?Àñ­?T‡ú?S + ?OeV?R>Z?쎀?ïËy?—¨?ÖÖ>wo·>Æ•Ÿ@)(~@)Iv@\?ð«K?†"‡?ŽûD?ÀËe?£Ý?“Ö>Ïò³=¬Ü>·?ƒ¦#?˜Qz?ʼn¥?Õ¸?ï×?í½«?ë¦?ØH?Äþ?¸w?¨E9?·ùu?ÅÐ?é9®@éT?¶Dš?hv?eÚþ?nø >Ü¥Õ>ý$>èš??e–É?ƒ +c>‘{‹=öÝ4?“öm?ª ?32?z¿?»<8?ÆSØ?ì¥?òªj?~à?d?O… +?T«ü?¥?ŸPf?^Eè?l7l?góZ?‡kZ?ÛAó?±«??p–?V#à?Æ°ë?”<‹>éUã?Œp@­®?®ûl? €?Vê@?‹b?_A +?+’û?I-Ÿ?Q.$?2\e?)%Ã?–?°m?aFn?:4{?l29?€iE?„¯ +?ˆðá?é‹?ûaÝ?Œt!?„¶‡?„·y?ˆ–?ÅA|?«Mä=`¯>6kd>y,—?&?0 Ù?„Åù?—$V?ÁI•?«Š?„ÆR?¤Tø?Õ–f?²8ã?„È?a®?›Ä@?g©Z?3?JÊ?|t=?¯çL?Áã"?m”?U í?ø¬?Çi?že?µS?|³a?nз?sZ?wfk@bÀ@#5?ćš?Áá·?‰xûcÛ?Û,a@‘â?óã%?éŽ@Îï@'ƒ?ÿï¹?ö‡? kQ?b—@"¤£@'Î@Ï‚@SÊ@C€_@9³z?2T>ýˆ¾>¸$€?™Y?Øœ?¢‰þ@«?íVl?X-N?© ?ßÖ +?Û•X?ÄKu?Ë™»?àùW?ÍQä?šåÊ?¸€â@ À@ß$@û>@²€?«—9?ßá@%î4?çº?aK?=”?‚_C?â"@10@Võ@Ï&@Ð7@'Û{@½1?Ã*«?¶Ïy?§l?¶Ñ?Ã=M??qsl?ƒ<©?”ƒ¢?Œcª?Éw?NF8?éð?d?Âz @aÀ@ê@?øÚy?ÂY²?⌂?öÇ ?ÌuÓ?¬QÅ@2 @;>?âxö?;?§S?ÁÀ#?Æ ð?ÅÌ?›qÄ?r?b\Ì?PÉÛ?‘oø?¨3‹@æ@+q?Ôn?mÚí?¢î +?Àÿü?ŸF?€Çp>ïäå>ì’?7¼?•bê?¾&¦?ßs¸?‰ºõ?O?Ek°?€9Ï?¢ +×?À>•?­•?•Áï@*÷ê@…áÇ@uÊ$@_á @+‰?å?þ @N1?ã°f?‰úì@.L@uŠ~@LzŒ@ ,?ð«‹?ÏÒ?¤²ÿ>ú8>?f¡Î@ÑB@¡U@4²¸@>=?]>2=O?Úc?7ˆß@-ò@*õ´?õý¬?ü@Ý?îË ?ä “?-Ån>å"Ã@HÚ@x‹¥@Ô?ø[ï@{™@{V?®ëy?npl?›Ã;?¹ât@*ú@hÚ^@FkF@îƒ@qU?¹t?ߨú@3þå@2j`@$Ú@7Ÿ@@ß@ÕÎ?±zk?¦ºæ@lºÜ@zP›@=tÈ@5té?’ƒ? W?¢Ï?×ïü@J¢@,sT@$í‚@$×@@ß@f)ä@CÕ?éô€?ôÀÓ@Øý@L“?tª¹?WÜC?±Z:?´‹£?~Šý?{Ñ)?§6i?¬¶?Çö-?ØÓ(?ë/U?ó'S?Ÿ5Ï?6T?<+Ñ?(Ÿl?=‚ì?ƒ-D?œ!½?Þ«?êÝÃ@_@;è?·^B?µF_?à°]?ãæÇ?²êG? ?Â>'?Å€³?£? ?ŠÀ?Ì Ì@!yA@í?Ì i?Äçâ?½¿K?µG_?oÜ‘?o¸ö?”‚Í?–ä?Ï +?îæ-?€GÎ>ï5?±ŒÏ@å?Þ¿`?xƒ»?—§™?؃ ?Û…%?²Œ?²ü?ôÄ@©Ì?ZNæ?ô5?š +ó?Î΀?ñz@@×@ "?ô€?ÔÞ?„Ôq?‡ê¤?ó:Ã?ïHü@+µ™@3Ä?ån™?¼–e?¶«õ?°”Þ?íuŸ@ §r@ Xˆ?´“?}.b?Ë/Ç?Ó¬?â ê?æ‡Z?Fé>ê)@Î@Fç@)ÿî?ü˜M?Æ(M?26»?3lœ?‹7è?‡°?ÅŹ?Ôqú@‚@ @\?Ý4)?×êƒ?æIË?ý|W@ ¤Y@Eë?si?Šý@|ñ@Øá@$@­Ñ@6?¯ƒq?œóÇ?H!?pJ_?­Rt?­I™?t?6?t¤?X]¾?5ÏŠ?ÆÈæ@%5¤@!±ˆ@ üŒ?ùûŠ?@ÌA?.ÆÈ?èŒ?ñü~?•æw?ùä?° +z?Õº£?ºƒ ?fA?Z b>ü þ?">ò„*>åøÎ>åõˆ>åðh?”UÉ?ðËÖ?à`L?¬{A?°ßM?Á‹x?­1š>.Ê=—Aæ?â{¶@tÕ?¾+b?,$ô?“Dó@¤?óÜg?'If? B‚>÷m?A?]*å?fßø?¬Ç6?Í1?™o?< Ù?„_R?Ú´¥?Þð`@/n@|I©@P(@*¶@'†¥@6}*@µ-?Üú?Êß?ºã£?¨ª¿?qJc?}Ó­?¸¯q?¾hê@£z@¹í?´=-?šå.? ã?€d¹?›Ö?³Ód?ãh@~Y?ì˜ê? ÈÌ?’q{@/<@Ü@œN@'@4©ì@4n?•o?‰EÃ?*& >ü™'?˜ó[?¶rj?®N=?°šF?N»s?¿V@žq@[¢õ?óýW?9^È?§_‹@½ ?£Öï>{>Œp? á?;Íb?Qʉ?eÿrÍ?‡°Ë?¾ô?Mú<>ÎÜ?uQÓ?—?)f?ü?ŽrÐ?­ÿk?µ?#žÏ?oék?Bµ4>˜}´>ìÿ¿?aj¨?9Ê?b(? +‘?õ>JÔU>J?>“M>´=¿?Gì ?/àó?Ï>W›Ã>E¦>.Ô>L?ÿ,>õÀ>ç‹p?¼t?Ó¤>¸Ë\?«…?ɤ?IÌ\=1¢'<ÿ @ +PÖ@ ]w?‰ü‰>`p>ÍË?cƒ|?d:T?díj?eŸó?R+P?T:á?!Ã.>÷ü5?…:P?ä¡Y?Ï_?©IÓ?¦ö^?¤œæ?¢D¨?4#L?&È>³–N>…ܶ?uå?¯ù´?S9í>•n2> ¨˜>«åÉ>âM«?BiB?@Ïç>Øïº>åó„?§‹>ôH?¦‘É?©î?Ȉ>õÄ¢?2ú?2šØ?MðÔ?Ht?7ŠÝ?5?¨>ø[?{¼e?Ëûõ?•R >ù³>ÞA^>Ïû>¤xÁ? +>#?Ô>öeø?¨¹?tò?!à?J¢?Æ3?í|÷?Ù + >ü»”?ÑÃ?ä{|?òï'@Ð@ ˆ€>ýôj>ýø¬>þ•>þG‚>þl‹>þ”à?-?$#+?kðÞ?w!–? Ä>ÿbã>ÿ‚>ÿ ?‰™Ô?—7þ?ƒ^”?€ Ï?€}?€#º?¾?¹UR?‰Ûu?€'Ø?~w†?€hÓ?̧„?Ö¡–?˜zj?ƒÄ´?)f•?VÔ>«Ts>ZÎ? Í?½|}?öí?úÜÌ?^Íå?C÷ƒ?EWs?Q>çàœ>¸Ç»?ŽO?/‹„?‡Ä½?‰M?&Q?$V?©ÑØ?Ÿ™±?hí?X%">Í >¿3?qÌÃ?J˜=ÐöÄ?sò?ƒ¿&?÷»?„,Ò? ƒL?j¯?Ïí?.)>‚N7>‰*ù?•rç?–lf?‘±Y?ŒöÉ?Û,1?á¹ú?†ç ?‰ +Y?ÂC?’†D?‚UÐ?Ðç?’Œo?Í ?Κ®?Êm-?÷×?Mì?ˆz>ûÈ=O8Ò>ár?R\?“¯?¿?€î¶?cu?l Ã?Ôh5?Õå¹?Ï4?püV>ŒP>­JÓ?…ÂÍ?¥è@(ËÑ@ZK?ãã?é?ì–?c0u>EP >«¹è?‘“*?}ݳ?ýü?6J?ÃE?Îf?ñiÌ?Öþ!?—{½?…Öj?_?ÿ?"?T¯ú?Û]?Æý~?Š§?­ìÂ@$—?éð!?ÍB?­›?97í?X²)?óÃ?e…}>düa>ŽcÛ>Ýd?[W,?¾—?Ánx?Ã…Ü?‹? +"F?8:„?cîé?o‹%?‚|©?bV!?F˜r?–É?ÃÖ©?¡ ú?‚˜±?’ õ? Äš?{u)?@R?§²?Ò*?…4ß?/½?e é?‚ÅÇ?CWI?Æu?Ò™C@ «R?‹ÊÀ?2Ï?q”ý?„‹?´‹?Äoc?¹í?³Ã?,$?Y¯?_æ°?ct¥?=G?’@7‰@*Âß?Ø@F?ÉÙ$?ˆ<š?xg¿?uÐñ?p1^?ÝŠ??×0a?‡ï—?Þª?ƒ_?ƒ?2•õ?Eê€?½£±?¿Î?Á÷3?Ñ@c@²œ?ǵÞ=<ÿ>’'?^z‰?$Óç>g.?ŠRO@)oõ@±?±¯û?µø?ºCà?Ôãû?êè3?µç`?ƒÔ{?¦Cš?ÅÊ‘@ >@$WO?üÀx?Ó¹,?‚Hˆ?;?“?•ÅÈ?²Ò÷?Ám¥?B>?á9?¥þÚ?¸§#?ÃIT?Æ5I?²÷Ñ?¬A?J£î0½?­¹?sâh?•Ÿ'?Þ5@?¯q >Ä¥$?>ï?¹ÝÎ?q¯e=ˆæñ?:sl?Ï\>?©ˆ?ƒ’ð?ëv=šâT?°ô[@ƒ?ž¬¹?G>—Ž> ÖË>ÀÎ?).?G‡S?U{?ÿw?¤Ð?¶ñ?ÁR?£úŠ? -?Z<†?\m?™¾’? ‡B@ü@·Û>–=ë>ê¾æ?Ç]?ê“e@;'n@0q!@–È?Üí®?‰öò?´/ô?ö‹ü?ÉÓ’?’†`?jûË?(Ù6?†tZ?°Ò+?–Ë9?„ÄT?p#?Tê?¼Ú?«ña?A„?Áö?+;û?1øÄ?ñ?—£?SK?¾”?¿†?¼ô?÷P ?ú49?{?ƒ¸l?„·˜?fLÞ=@áº>Íñó?ê]E@@-1x@!Ô0?ÿ¹?Ði?ˆAš?”}M? Ff?•9[?„ž?j Ý?M4/?¤õ?Ñ…?Ö›?Ü s?sQç?‰×?,^n?6Ù?q=l?„}?âµÕ@›j?Ñ9Ü?Æ¥ê?=²m?0Ÿ?°@†?²Á#?…’?ƒÉF?g.ë?j7”>¦ÙK>÷Ù?¼É ?ÀêË@Ñ™?ùés?ÄTG?ȘN?áäá?ðNê@¸?ê6±?¼ÿs?éáã@²8@Í@øú?Ñb?ƒ÷ê?ãÉ‚@$oÇ?ã¯?‹ïã?-=‡§Ì?õŸ@?Ùª?·é@?&Œe?½‰µ?ñJ?Á Ÿ?«(í?z~?Qø§@@5R@1©V@8J?¨D?‚ ¿?½Öq?Å û?gúäO?”å¢?öÈL@1ù‰@s @0~É?“ç?™xN?Ÿ˜­?„M3?;œ{?Zpˆ?Àä?ƹP?ôpÝ?ú£<@E _@>oP@lrÎ@ik‘?ê¤Õ?ãf[@*ï@?Í>x?µì•@„.@(’û@-Ñi@&^`@ Y @L?‡Ù?h?ÂAÅ@œp@Dã@%¨o@#ÈB@¡è@iÆ?ãÒV?ýd@,ƒ@ÿï?œœL?«I’?è“?â>P?Û‹ç?ë!å@dQ@wÐ×?ñm)?º»?¶9ó?¯Ê€?³ÿ’?¸'î?¾,?Ïe?Ê]½?ÀMt@E@UW`@?Óä@ ]ÿ@ ë@zê@ o@+‹@*‚ö?}¬?xÜÈ@0ã@Cè?ô:Ï?èî­?Ã5ë?¶…Ì?öWá@ µ?Çá2?qþŒ?O‰?C¤8?*´>FY>îìe?Ó4ª?¹ó¦?å,Í?ñ?¶×?µB#?’¨·?”/M?οb?ÜŸƒ?ÚŸÖ?抨?Ó#3?½Bt?Ä&Ç?Ë +¹?æÈ@VÁ@èH@ +uŽ@M@‰‡@ !a?½"¢?³š)?bd%?GåÓ?E¥¶?8~?¶Üƒ@ 9k?ÎKì>×8Y? *m?–ù}?l5?¯Fƒ?²'†?¶ù?¹Ê“?uN.?O×?À«%?åS”?ÔnŽ?Ï’Ù?õÎI@¾ï@ ù2?£'ù?®~@[„@4@à×@³l?Ï£­?°ÁI?°¥Y?°V?·N?ÈÄÊ?Ägn?¥N^?¦;ó?-fÀ?=‹?¤Šé?¬Y“?®y$?§|õ?ݬ@_?îÊ?Å;A?ÃPŸ?’÷ò?‹bÇ?YÌ?rç?kC?hô)?ðWè@´£@Æ@(/ˆ@7Ë@­*?ì`?¬¦_?Á©¬?®`?­ìÙ?Ò>w?éîÒ?¡L?4\~?¦ž2@ Z?éì]?PÒ—?L<ç?‡gˆ?‹º“?;áÑ?$îœ?Ž·ð?­ Ý?´È{?Ê\†?Ý?ç¿9?Ü'A?kÏ?e?¢ò£?º›?ÇJ€?­¢#?½ó¤?Û‚0?¼ £?†Pâ?}Šá?¨Vø?Ÿš?¿•d?µ·@?É™?rñ!?ˆñ?¬ya?¬r”?¬to?Ì™z@[éZ@cZ?ß/Î?¼ÐÃ?Äð¹?Ôɳ?¢vÓ?f5ñ?9v?ÂÜ]?Ј.?æxú?惑@(&æ@ûf?h\å?˜Ê?V?ŠB*?ƒwí?F=Á?£ÑQ@@S @A@@ÌÈ@äš?ÍI$?ÌPÃ@@^?õëÄ?âF$@ÏŒ@µ@¡³@¦Å@´›@ Y@Q&?Ý)m?æˆ?Ê8Õ?³ˆ?Á²œ?Ãý?Ø=¿?ëJæ@ 4 @%9@%>+@€L@d@p$@v_7@,]%@!]Í@Qç-@O¾$?èc?qsÌ?qâw?rVà?º«¢?ÈVª?–ÿ´?~Ô{>«<5=EÎ?÷Œ@Kõ$@+Ös@ n?Äܶ?ŒÇå@rH@Qq @°É?i&$?ô]?¦›Ç? "ý?™Ÿð?1!å>ÌÁÇ>ÿ>N?µx?.?¥ó?S$¢?<‹7?jE?X ‹>1S#=O´/@‹W?îÄe?¹?˜à?O}?Ðñ?X@?+¢ ?&§? Sr? ù>Ô~j>´º¥? =? >Ý/?>o,Ò=7u³?Žœ§?«×Â<¨>WM·?O“y?ç•> Ž=žø6<•ÏP?}~S?é«3?óQì?…ö?šÌl?)Ý?¸—U?ÃÎZ?œsâ?_Â#?j’?ˆ8Ê?€ ´? ¿I?,%æ?9š?)£¤?F¤?a&€>õ•V=C"À>w•I?rÛ?ö>–` >·”q?šÏ?ÃÖ¶>ãÝg>SO ?}¼v?·ÄK?OÕ>4Nù>Òý> O1=çz=¼F¦=‘å=Kž>v§?ïþø?ï{?E?›ƒ? Ñv?ŸQÕ?R ¸?.™)?@^?¡íL?@¦>÷È ?„·?­Ù?ŽÆ?x÷¶?@a->ù†¿?JAþ?£õ-?–’4?m›n?(Â886à> +j4>ûzÿ?GÚn?ßp`?Áû?W?t)ï?•NÕ?œÂ ?ðñ?áYë?º;D?Á¶?l¬?\ý¨>þE?ê¯?CsI?8Äy?¦¨@?¬>ì!‚>îš">ùÍ>ÿP#?²Ü?³˜?cw?âT?Š?!Em?yÚ+?€ ÷?Â[e?ÐÍ9?£hŽ? Dw?ƒÛ!?€g?°ó²?¾œë@.@@?ƒ)?i)?ó*@³À?1LÈ?öß?™?­«?àKÿ?élÈ?!0)?ïŸ>!è>>$Ø>#áÜ>7™ƒ?Ž_?œôF?£wÔ? ìt@\¾@`§?‡sî?Hµ=¦ Ú?qEþ?Gq=z›{?·ƒ7?Â/?ƒó*?_c=œÎ=fæâ?hÝZ?jßc?–}[?ãë?Àˆ¨?Â"?™“£?œé?ÂCž?Á ¯?ô?|??,?W'S?\ͳ?Ži*?˜Qý?ÝH`?ã]Ø?Êh?Ä i?…"?‡by?½a°?·"?¼6j?¯?Ù?´‡?R‚? ñ:?%?*+?#É>ÆL|>õG?Hçì?N…Ž?}­?“0@ýŠ@d ?,>?<¯?a p?e«ò?j8ì?Ž1Ÿ?ë ?Éÿ>ôËŸ>ÿî?D?0È?s?œji?¸ß?¤Åb?fÊÜ?F‘»?í?Qg?Ã1Þ?ª?ß?r†z?³-N@r½@$î Â?ˆg +?žêþ?ÀKï?¤PÑ?~<á?F#°?Öð?@ñ?¤w?Døg?d!„?uK?Ã×z?Ÿ'Ü?‚–»?˜«7?¦`ê?ù=?‚¨o?Æv~?õD?dg?X?\b®?`¼P?{v ?‚Îw?Åø>ÂÍ—?œ?¹}@¾X@!áí@;@>¹N?µ„¦?‹p?¡¥?Ÿ=×?²h?³Ûš? ëè?ši?ÙqN?è“E@òØ@/ @4s@Šy?‰â ?’åñ@GÐ?ö¶‰>'§j>^‹ÿ?eZB?z$?¸°¨?°K?v›‡?}$?ƒz~?’^·?ÆKÞ?´u8?qó?r´d?ƒ—O?wp®?Oõr?F“?Y?yü ?ƒ´¦?c ?9E?‡†?½t¨?¤(?ƒÒ?Ö’†@ +¦W@Âê@$ý?œ’@>¿Ð®?eTc?‘ºf?Ãò?áî+?“.ß?rú‰?&·º?,ó?ãÄg@,ø?ÎN??Æ2i@/*ð@3¶?6R?gb²?þúÂ?ñ·¹?Z?VK‡?R°?e’]?ÆvH?°&x?ý…?F<>Ñnï?%"?°EÓ?ƒ„b>?“x?ŸVs?x§[?Þ†?³‘L@+›?Åçî?ñ€?7ð>øKØ?¸Æi@È?Ž: +?“4>&ýÌ>ŠXw>´c\? =?7Žµ?Nl ?MÖØ@6”f@F,}?›—0?ŽÖ™?;ƒÜ?94:?±Wü?­™Û?JtN?\ö7?Ç©?ÇÏ?Çy?žaå>lí>býÀ? +9”?/”? ßC?K?–iñ?¨Ó?ºò?}(î?Ã9?ŠŒ?Ç%l?†Í”?8­ž?‰+·?£´?§Î?¡ï?›}×?•Æ?†×ý?„Á?‡W“?Ž:³?3±¸?"ž?5©€?.rv?ŒÙÌ?ˆ~­?+­å?>RÙ@ŒU@·Ö@n*@eó?˜â?ƒåt? &Ï?@@t?‹±Ô?†Ñ@?[÷ª?J™á?:ž€?`?„›š?¤éŽ?¼×Ï@M£@%·w@'V]@%tÓ?Ïk¼?ˆ—B?Çf*?á4?³\ë?Ÿ•?“L?r ?·Ñ‘?Å¡.?Á ?¼ÒP?ý,@?ÿz?òF?ñô6@8F@%Ê2>·³5>ïPQ?µ¼?Â^?ët³?áK¦?Çb?Úªã@*’@}'@@·í@Øì?i Z?Ÿ¨=?ó ã@· @½?ð—š?0 ?ÅÚ@mX?âùŒ?Âl-?– i?h?Æ?$?Ágp?³~ò?¤â?ºy£?Å™?PPÚ?Zæ?ŽR-?¡ÐÝ@=†W@QN˜@>…@ Ð?óœ??ðàN?Û9?Öªy?õ–…?ù¶ˆ?åáÒ?àDý@Dï‘@@|G?¿Ú?Í»À@Ã0@ú@äã@Ъ?Ä™y?¿V?¥L¼?¨ÃÐ?®W?Ä?ë€Î?ÐÃy?‚×?‹4Ó? µs?¤ÉÏ?¹‰‡?ê…½@!¨@ Iò?Å?Îs™?Ï1ÂÜ?Ó· @I@:ù@h˜@,ì@Áú?ÀÎó?|ƒ´@!l@ac]@:X‰@&8@ ù@©?§ÝÏ?Bm?×µ_@ù@ñI@ Œr?ï®q?±þc@yI@#Ë?ßÐx?8U?ÚQ®@îd@-æ?úô¨@ ž›@Uy@ ¡f@/¹g?þg”?ÿÔ?ŸW¡?¶£]?Îiï?ïÂ@ OV@äñ?ìT?†U÷?n¹Ù?G.Ô?mÂ?•T`?Òu¸@Vð?çe¯?~yC?‰óò?œ^?ºŸ(@ á¶?õ@ö?®þ?Ñ9?¯e ?ÅŒƒ@ŠP?÷3Ø?‹Ú²?ƒ“·?RÆ?… R?oè­?€ªï@ +“N@Oœ@]K<@\¨€?,?1[ ?êž?ùó?§¬?¢‹·?¬ë–?¨“â?õ¼t@ìµ@2°@BÜ?èq?¸®?¿;û?½óƒ?å<„?ô¬ð@ë@î?ù‰þ?Î/»?Äöé?´Rû?ÆO?Ý‹ª@E0@e²(@Vr¯@+Jå@)Þ@:&ï@.K@S†@˜b@ÉQ?蜻?~8w?’ü @¤@ãb@yWh@y?e?û³†?ù ª@*éW@,û™?³i?¡æa?‘?ƒ¹@2®ñ@dY!?ÄÔ¢>ø&z?v/’?ªó'?ö~C@Óœ@'óE@6 @*¥!@ ¼@ È6?ÌÃ*?Úï+@ʃ@’X?¶L’?±”@5G@Þ?T³Œ?/GÞ?¬}q?¤×!?ã¿B?óßj?ô²6?ñ~ë@a—@(S:?ë)f?§=?¸DÔ?Ƥº?í9@ÿ@Çî@ð³@u?áØ?æí£?ôMi?ò~?¼·h?¹az?ú?ä_@¤@+öc@š\?â ß?ÆÂ_?ÁZ.?¼3Á?¶š'?›;‹?WY?bhœ?~Žž?Öi­@’Å*@ˆú©=“¹ <¼# ?í\?꤄?±Ñ?§2‘?¾Èæ?ɬ3?¬àž?™ ?nØs?=ù?„è?¯ãy?«Ú?ÂR;?®¨A= 9¨=y2©?¸Éß?¿Ï>?‡¡ì?„ä"?&?ŠÇ ?y?nùì?Ï b@ rÆ?áûW?¡9í?ÁKÂ@ÂØ@ ãQ?‚ÐÒ?p§º? (Ï?/.?Ÿ?9Ÿ@T@KÂ@ªR?λí?àû~@y?Øì,?5I?T×Ã?ßÒé?çaD?ƒuå?„³·?‚4´?‚tu?¸Cƒ?× ?¹&ˆ?”8í?•ó?•Õ??o¨?x ?vAÔ?ü¬Ô@ Ël?û!+?éë?¶ˆ?i´?f-¨?gnD?vx?WH¤?.K³?ˆúj?†äÈ?À ?äaâ?°›û?wÈ?¬§B?Ì‚Ü?½Ä?9/??1¾??­ûæ?­ç^?‡Rè?^s³@ô\@H6$@#•?ꓦ?çÞ™?ψ?Îv?@Þ!@ ëm?ИÔ?»«C?¡ù¯?Ç4?K€Š>K¼%>äÜ^?®»“?°Ïf?—J?Žˆ@æ»@@]@ ;@@a@®Ô@²n@ ñ@è@ ä*@7í@2ƒÍ@/å!@:0x@3Ä?ûŸÖ?¬v«?±z?¸˜³?ªÜ?`÷?x·ö@Y@ +0D@ö @r?·&U?0½T?u;?¥£?£Ä¥?ß?ä¦?|?Á|@W?@U’?”ëð?/|E?…"?Á%Ð?ÖÊX@·õ@@--˜@+6L?L¸»?4z½?»¶Ù?ä µ?àR€?ÆÜû@¢@iHl@\ËÊ@5ˆ@¶¨@ùÏ@ëU?´•?°3@H¶@íx@Áª@Ÿ2@É¡@¿g@ T@…å@\@HÀ@KÎ@+8—@.~œ@y +‹@‚+¼@RÙ@R‰@wÀ?ôšM?X‡?8Mô?ÁXÓ?âµF?½ºI?³AG?³=?¡uî?ã„û@´F@3ÚÌ@GÀ¯@ݧ?Éš? š?ÖI? AD?š×?ehG?–Ÿ ?¯0Î?¾‹?0aa=³1†?Ä?}WÁ?ªÔç?ÁÿJ?€OÈ?FÎŽ?œ6?°Ü'?;I>öó ?‡¨ö?•0e?•ö˜?†ýM?U)>ç(>>Á¶}?œN‡@bG?&:T=³€O?U1÷?WqŽ? D]?B—g?±s(?ÃZc?Ñ])?iŸï?OT);Ù†;>•_«?‘û?¤ü.?ÄÏ¿?š„ñ?oø–;€/>'”-?óº…?”?ÕÖ¤?KIÜ>Ûfµ?.)?bE?8‡Ó>êÒ8?±¿?8¥Í?-àY?aýÝ?ux>(›u>¤º,?öK?®õ>ð‹f>Îa›>­¢ò>Ë/¶>òR >ú"_?ï >ç¾÷Æ&?'E?ÇÎÍ?”+A?L<?:²%?Ý`?ú>Ë6>ã×Î>ú‡Û>¦úÄ<ï¦>h>ûsE?'_«?áF?™±:?Ÿ¬?˜¡?’lZ?•{ê?¤½ +? ªk>ýlð?l?¾Nþ?¸ Ž?X^ ?RÕ…?œxˆ?œo0>η >ÒÖÿÌV>ÿâs?ƒ?$pq?+î’Ù>þ? /”?TÀ?ˆóí?ƒ8?’oÕ?‘Ú«? xõ?š)?âò?òµº?ˆ ”?€½$?¼c~?»rà?,û:?/à?ÛÎq?Ût>ç×>»æ>±6Œ>§m?¢¦?¦w?á/4?á¼Á?‰12?‹Aæ>p·>3î;>Ðb?]àH?i#>8=üUC?´5Æ?»¡è?Î?Ù?p ?g`?8Ô?g?d³?‘Í¢?”4«?”©?0xô?6©J?rll?zìÄ?AÜ?8¸??‰Ì?±Î?[A?BG=€“-?5ìÅ?G¦?òe†?ñÁ?ÂwI?´9¿?È©?z> Ù >oDÊ?¶H?l8?e2à?}Ž?ÈQ¦?½ýÎ?¢D_?›^Á?¥Ìñ?œ˜?ƒÖ?u`2?Ö;>âÀ#>2ÖÊ>n›w?ã^?ãþ?è +? Í?YÓ ?õj=‰g>ÙÍ—?Àê)?¾ê?½Ín?­i?‹¸O?Š:Ì?‚«?Z^7?j?*;?^‰E?CýµL=??ø™?ç>?41Ð?Âb?‡-?¿À?Ä*?ÀÚ?'ž?v–³?6üC?v5?J}˜?‚‡?d?S”´?¬¨?Óßø?°õœ?Ÿ˜?£¡Q?¢›o?ŒýØ?‚¬Û?OvÕ?1KW?\?¿Ô?y„?‘mr?ó²@áþ?y°?Ùû?}Ú=?‡ôQ?‡J?ÉR@ÁÅ@k†?b‡e?2[q?¹¬B?Ä’N?™ñ?—ˆ?­J?«î›?’ß?™b?Á–Z?ÁÛE?9V?Ïå@-µ@üa?.np?*,@?%ëË?,š?l·š?\}ú?l?Ø¥?tþ@?Qˆ?Äyw?²ŽÀ?ƒˆæ?–45?¼l ?“îW?>?Xþ?‘–?®ùŠ?ÛéC?¹ni?‘™†?²¨ž?Ð]å•[>•$Q?w«Ç?©!$?ôÂ>"ab>a1Þ><ú:? 6ê?Äl@d¹@#~ü?PÑë?"Ì@æá@Þ™@*0û@&P@%?Í@#[@ÃÙ?ønÔ?«É?¢ºÏ?«­?o‡>ørÄ? eÞ?S Ð?žç‰@©ü?øi@?©d?ĈX?úÂk?Å-j?u1½?‡#?­‡?§H?Ã÷,?Ãâì?¿¯œ?¡¨??”÷>éöé=À´^>£†>Çô7>NÛ>$ml>æî?œw?ß·„?ôW™@-M3@6¡Z>ÏtN>™ ð?Ÿ&Š?šiL?\ªÓ?j?ö?¢Ü|?«ôÌ?Ç š?Ç ?Çw?ÝC@ ¥¶@Nù@ŽD@›?ýÂŽ?Éf?„¼æ?£A?Ç?Ì,?hÑ?‡D"?™Á?~Æd?Vè‹?wË?„¾P?ÊÊŒ?èþä@'Æ@½ +?/¯?„½z?:Z´?à„?}e?”V?Ò66?ÑÎk?Ç+?Óå@@>@3y½?…TB?Šg²?’ÝÛ?‡3*?ÂÑ>àÉ^>Øig?£™?„Vš?0¨D?…BÑ?º0ô?ÁN™?ËÖ/?ÇQ ?ÎTÙ@5Ë@i&@1Lf@í@{Œ@5@îi@À¥@ ¬ý@ Ø5@ü@ß„>¥tE<–l?tÉ5?ˆ¡Ô?Éð ?Ï(”?ÑT!?Ð9Ö?\\?·\Î@r2?þ°{>¿Ô‚?5?4@6i?ò“­?¥~Ã?¶<°?ëe?Ì“2?„Ì?Êx‰@( +z@'ãÞ@&Ѳ@ûá?ñ¢?ñøú?ó·¸?›Öš?w ?ÔåŸ@" ?«>à?OY?¶Ò?ð'°?ÒBh?Å™×@‹‹@øf?§/x?t:û?Da(?>È@D”;@h”s@Ã$?ào³?ÇÝ·?Å+ê@ƒ@fb@ + +$@‡3@DSg@DS­@3è3@/(‘=Ô?‹ËG?®#{@@ï“@6Q)?ú4?ì~„?³íš?­¿'?š"b?¯‹@àG?îg?¥ïU?µ¯?â£L?Ñð¼?¨Í.?êQ“@DÆâ@ \>Ç7?w°@† ?¿Ïñ?ŸJ? …v@ó¥@, s@\LV@>LÅ@4E?ê´'?Ž*Ò?Ù &@ ‘?ñûÄ?ÃÝ?¶¾â?¨þ(?¦•M?¤, ?‘ë#?‡â?Q¶÷? Éy?[’?¾™?¶?³]v?â“7@Ÿ<@#W]@<Á+?ž9<¿må?Å#Ó@!Çä@#@W†@ Ù@\N?õ£®?çÚ?Žrd?"Í÷?ŽÔÈ?ºÖ@âè@"“é@Éz@  e@5ù?׋h@*¬@Q7Ì?ÑÐ? P?—ñ¬?Ç9a?Ä°à?˜? ‰?Èû9?Ííû?ÒØ$@m @Vc@Qµ?ù¹ ?ÃÅR?˜O÷@rh@4ƒî@ ðr?æ–F?ó•ž@]?üÙä?â>Ì?܈°?ÜÜ?¢rÕ?YÇã>ûÀ;= ¹¸?-é`?ÁÚé@Ü¿@2€Ø@p?Ü;Ž?Ádä?•‹?Ìïó@>•@Œ­?È*T?Ö4í?þKš@e“@Ø@Ì?@jÈ@-?ŽB/?¶œ}@/7û@.ó@Á[@Ì’?~'?…dí?·‘Õ?ºÈü?ý¹?úpì?Óè?âx2@S¹?üül?Ŷø?¿?ò?ÕŸm?Ï;[@&ý6@) Ó?Šýi?[þí?¸«?’áø?ÇP?{°¡@œ@:ûµ?§.¶?$lä@~^@6[ˆ?ʼˆ?D%$? ­Û?Ón @)¨†@b•ê@I +?¦a¨@+|@jÏ2@6¼j?‰ßø?ÈÈJ@'s@)ÅÑ@;]@%™ý?z½?{äP?Š2¹?¤“ã@yQÊ@y1H@(ª®@%rÛ@¬R@¢T?°à£?•dR@«:@é=?éC?Ë_‚?%ø?U/ +?h>u¸ü?[³V?¼b?©X?˜¥?Üw@œ ?þ¦­?ŽÚ?›nM?¹@t?ÃGµ?øÛ?üx?èö4?ä"@' +5@*@@Tª@W\?å8°?¼¤^@gnÒ@„ó}@1o?×ÄÙ?ã¿H?ämÎ?×ð?ϯ?Ò5˜?ÕTÒ?Ú‡ö?æ}›?áàp?·bw?À?ôI¨?óÎ*?îyî?ñ©=ÌÍv=ü;>¡+ ?Hª?„˜½?œl`?ºï¤?Ã~?¼P®?µˆá?§FÓ?ž±ä?Ê‘@D@.´?«çï?¯Îd?µ€ï?³Ìš?ñÇË?ñ¨(?Gì?0ãŒ?¡Â?´æ–?úu—@ +ët?j>ð¼â?zù½?ãE"?½%ÿ>áš>Ãu5?!ñ!?œˆ@/Î<@*`?Š:?oq?Ç÷?Ú¡Z?ÆÆ2?·hÁ@ç®@81F@s%?KÂw?{,Ð?Æ2h?ájØ@-5ô@0j¯?¯‰w?¡îS?Á.D?¾¢‡?¦¯÷?¸x7?½†ƒ?³’r?¿m‡?Ó‰©?¼(€>×lÓ>¹/?·ã?sûz?ߨY?á37?³¬š?£­?œw?ŸE?¹!?Α„?Ï ?â£?Õ”ò>fÍ°>'S2?ÓÜB?åVÄ@ ü@S?Ä¢½?þ?j?ÿu?)÷C?/Û?N½„@ÈŒ@·k?ùm?ñ•’?í‰=ç›?ER?ÙÕ^?³åî?ƒÜ—?yNŸ?$9n?-' ?uÿc?ƒj~?Ї?îÇ1@T½@%X¤@­Ä?ç[b?ÁáÐ?>„?jÅY@<@ ±ç@& @C8?ÃBJ?xÚ?²½?àèy?¡`=uÞè>ŽlR?¬Á?¬¼¶@=%@ú?ÓÀX?¡¯¯?¯+Þ?ÉÓ©?Є“?×]§?þ6˜@`…@Y~2?ñtÔ?ó Ö@%P@]‹?Ý,0?‚·ä?šir?Ä£?½¨>åú >ïE?„zí?—'×?Ýàf@ø/?ìŠ ?ºÃ‹?Òœ·@ð[@z?¸±c?¯=o?©¾\?¤ºI?ï`k@çn?†ëÄ>åýÈ?ŠyI?çE®@gu@!Q˜@¸ù?² h?ÁbK@6Ë@,^‹@ÅA?ëZ@kÎ@f¼?øå­?¯c?Ýü@.•¯@ 8^?™õó?ªØE?Òs@?ÍÔw?ùQÊ@ î²@4bT@G•1?°- >•A?€È?íIr@ã7@Uù›@O|+@[C5@R<Ë@”5@8?öL8@UP?Õª?ÝÎX?ªÖs?Ú˜?«q÷?¶}?„Û—?nôT?Ê8ˆ?ìõ@„æ@Õ@Š@0hŒ@ Õ@ + +/?¬û?}‡r?–à?¤«M@„j@¿7?ÇN7?*ñ?Z+‘?6%>]þO=BâÀ?Š1æ?Âñ?-ªÕ?@S?qæ_?ƒ„>ž{;=ª{À? +2ð?ß¿?)ß%?+IV?\ü>Ç‹k> ¦>™Äú +>áX8>˜|Ã>ëð€?*/p?Â?†>_ƒå>ƒ7?4j?ñ{?46—?RŠ*?8”R=×=¬w>µq|?µ?¶?C j?3ý¹? Î->iEß>¨WË?Ho?$š>—.=Ú‘?F†Ó?V­ò>#ÿ<ºZV;Ç5©= Rˆ?Ž¾? éî?n‹>RÜ>’Øš?Œ”¾?‡q”?ŒÄ?‚éS>sÞa>,¦#>˜@y>r‚$>í=>¦—?&®Ø?3>?s6ƒ?teC?u+Á?m3¸?tÂÌ?u"Z?b&=?\J ?¢Q +?±åÜ?Ç‚>˜œÅ?"²[?=¦á?a[õ?jŒŸ?A²?)?Rü˜?y†ý?ò+>;hÌ>™>ú‹W>úŧ>úük?'Y”?s Ñ?,+T>WP>à!3?Œç?i¬U> FÎ?3r?‹,?†e?€äE?wà?‡/? +?¨!†?£˜}?D2U?*¯"=Á„=²±L>&³=Ñí½=-Í=J°S?x€Í?sy_?nwµ?iuó?dne?_n?Zi9?R««>?pS>]ï[?S6}?BÎ>p®‚>]”{?Ì +£?Ó¹ ?™}†?À~?"x¶?¿{?‰žç?ˆ0G?w:?|Vº?þŽ-?þí~?¸> +?² ?>(A?Kù?dt?"?Y“î?UI?˜Ø?›×º?láñ?þÆ?›n„?‘`>ÓÆ>¦«¼:=þL<@!? û?8Ì?m=‰?nž >ë8Ã?3“?ÁÜ/?·'P=ƒ½=ûî?˜?áý?h­?v>c>“">Ǽs?“ô„?Œ(?KG™?KA-?€œ?q >•Š>ÒÓa?«Ã?Ÿ­þ>‘I$>»a?§e¯?¥;Ì?q‡o?„Ô,?Âu‚?¯¦?åO?ƒ>íx+>é‹›?´?=ƒb?æº?ÌÒ?ubi?”Û?ˆt"?š6,?®9?¦fª?Í—?”?8C?4 ï?/ƒ ?0ô>º…ç>Ôl?ç\?‘$&@4ö*@ºº?†¹?<<„Ðf?PŸ@È’?üP?‚µ?‚?‚ +ë?xÃ7?_ä™?:³??Þ? r>*>¢?JÝ?emÜ?‚5K?%&g>"¦½>L=þÐü=Û˜ñ=¸bî?/Lz?®Œ?ŸÍ?‡Ös?¥ˆ—?Ö,?Á?½ž?–6?nÿ÷?›C ?´h¢?Ä?€?Éõ¤?Ñm¨?ÛèË?îin?ñ8â?ÑË?Ãñë?þþ=@Õf?ÍÞ¿?²pz?}[h?Pæ•?’@?¥¹½?F‡s?ž?’Ø&?1¨@ “î@æ>Ï×=(H?7?—Ì ?âŸ?äE>Øà)>ºšæ?~¤0?ƒ¸?˜bã?šö§?¹? ‡Ç?É'•?ÇY?Û0'?Õ3¤@ ¡4@ x?ƒKL?€HD?bâF?ZÒ‰?¡¥?a1?"Â>ãó="÷×>š?|4?“0A@U7@ü¶?Å\^?}¯ý=ÉRž? +%0?”‚?ŸAR?­éÃ?’Nr?i9Ú?•¨Ž?¸n^?ž|?ƒÍ¬?À‡\?ëëi?ºö§?›c]?Šú)?ƒé|?…?|'±?€¦q?ƒûå?å|º@¿Á?’t ?~ê°?…8Ù?‹Ü?ð·í?ó¸L?™ÜÝ?šf‡?ícM?ñ¦ò?¸$?¾ó6?ÅU·?Ë;r?Æ`±?¯ã¼?Hî?¡.? Õ?KàÞ?° ?Âÿ@ º@ˆ­?õÏw?Ý´"?·åV?´m?.k‡? ¦­?ö1!?›ñ/? ~b?Tq?‡h??h¢?Ó¾?Øó§@ 4?q%O?“3?ðs—@ )ù?÷D—?êÞ@ ‰¨@ÔŽ?êš‹?ç¥Ý=PþQ=G?Æýõ?¿P&?2¬A?.hm?*&¡?_  ?òvX?ä*?ǵ@­ø@Yf¥@@"@ ¡?ØÑË?‹<œ?¤?€?¿“ù?÷òM@à@wA?éM6?‘Ñr?-x–?Æýy@õl?ź?ª.a?‹B€?„Ñw?Œ”È?–Œ?ø~?ÿ†Ù@ i6@Úû?ªTè?§*•?í¡?ñ…Ù?Ú›?ÕÀh?Ñnú?ºŒ€?—¹³l?K¥ò?u¨?±ï?Ƽ?IY>ó:%?™ôâ?µ[ã?”/·?ˆ‰¦?Lº? œŽ?ýMà@×J@ù•n?œ …?ꉥ@Ä_@—¸?ÜŸf?šð +?}If?Iâ?dp±?À“?Z1;?D¦8?³Ø¬?ís/?÷S?ýœ?ã×€?ÈŠ‰?0‚?‡@?u‘?“¸?ÚC@GU?» ?“»:?¤%?ªQa?Š—?Ø?èG@±5?ßL ?µåA?°ì?«÷l?ñƒ_@\ž?àR·?¯f ?ß²‡@¢Ô?ü†­?ý£á?Œå|?4d?’;‹?À¡0?íÆÄ@.@ Ÿ¾@ ±³?ñ??Ñ 3?ìÖî@ÖK?èu×?¼™Î?£¡´?‹Œ÷?ÙF­@‰x@%³@ Wo?«D>ÄÚÊ>åNk?€Ü?BÉš?€Ç?×,@"lL?û?•Î»?\>ÄY-?c²Á?Ô…Ä@@$ß@!bª@¸w@Ú™@²þ@ +CÑ?é ?àEL?¾^J?¹ +?©†Ø?±W8?¾#ª?Ûc‘@<[º@%Pî?ª±?@HV?ýÃ?þå@ä@”¾@@¼?ÚX?Û´@)v@+aÊ@&Ôï@/Ük?ˆc??+›?ÕÑ?ñ?£TÏ?ˆ<ý?.VP§?³È@J8@Fà@0ã!@+µ¼?ø%/?ù‡s@½@·Ö@.ib@2Ö6@:Ùm@:Åõ?Û׌?Õ¶\?ôß‹?ø®a@IŸ@QÜ?î]•?ÕÈ0?üº/@ +0ø@!Ì^@2Ü@&r^@Ôò@#_Ü@+¸A@,&•@3ç@?Ðá?Ð’F?ݶ?àe?õªô?ñ3Z@F@¯)@ï~@2”@8i@BM@M@s_?«Iõ?˜?Á?2Ë>|ÁÈ?‡u?Èß~?Á7?·Ò?ÆX|?×@?¿;Ç?“sò?Ÿ0ã?Éùò?Ë”?è.Í?èÈõ?¼• ?¹>j?#h>â¼Î?ìN>?ú,w?•Ý=?sOå?¯žæ?În–?­{R?™ ?ƒ¯p?DC¥?‚æ?Á..?¿™ê?•ø&?$Ð?¯äè?´nW?€«Ÿ?‡z6?aâs?Tú¥?ƒN?µq?ÚiÃ@j?ʵ§òÄ?s®ƒ@$‡@V@(¨@*= ?!˜?8¸x?a(?ÿÉ?Ð?&‰?qM4?Ú|?º?á1?µƒI?;‚?ÜÕ>i2;>{›f?{÷?w2ô@ z@ +Ü?¦j?–‡v?‡ ?WIr?9r{?4F&?Vz:?r¡Ö?…,•?Ò?Þ?Û -?ì.þ?ì>?¿??‚?Àû?Þ$?Ï æ?Àð“?³õ?¯“Ó?±Íå?¡8?‘x?2È·?B’ú?‹^?zA?¦bb?ºŽ ?‘Ž(?iÛÝ?5^œ>騷?7d?®A?®1?úŽD@SÖ@Î@‘–@í @&-?üDÍ?è«?™¢>‚'~>’Ó>EL6>mð?%±?.Ù>ô +`>ç­?5D?`wy@-˜@^b@>Ùî?ìt'?ãF[@z@®{?Ù‘g?ÜSã?Ι?ÊîI?ë?±ãl?œNú?Y_)?j×Ã@³?þN ?õ1Ê?ì ?ÓG´?Ï–?¡»!?f“?A¢Ð>åÿ§?M´?÷œQ@#a?Œx*?…mð?qÀà?eãn?B2J??Y>åí>éé>îŸ>åøG?_t®?fd?ž*?¬—á?ìºc@±r@ +Á?òÑ’@«J@ J@1¢?qð?y ì?°/«?ÀŒä?†8?(L?Ž‹?çG.@à@y…è@t=?åª?àtn@ Aü@,[Â?ÿ_?è3™?ä`?Ó´#?µÔ?ŸÅW?ºÚ?îc?è i?j6|?jr?Æ×@?Îr?cˆ•?I¤?õÔø@oR@–;?Ú^<@ ‘¨@7D™@+x@-gÞ@K7€@x}ó@r0ë@U\À@Qh@‘ +@Â?‘d?Ž[Y@f@ ä?à~›?Ä{?svq? +PQ?[K??‹öÝ?šré?¢tÒ?«HË@Fñ@.WÍ@¸3?÷Üõ?µ›¾?‹K?³@)7?®šq?+…?kâ?ˆÕ?©â=?³?ñ?½<>䫽?ƒÍV?yØÔ?/?CóÂ?¥ú?¾Šd?ý¯?q”…?c-?-1‚>Ž«>®Â>Ï:O>gŸà<*Š¤?ã³?¿®Ø>ëµ€>‰ í>­\6?Œ‹ +?$„< Ð>½il>ѹm?I=E?-úÌ>LÊŒ?ekê?Ì£0>}§â?9–?—-h?¢’Ø?!«Ñ?å|ø?Ö‰?'—6>S¨L?«Á?€Ö?tÃ%?-? ¡¬?Ç«?k·?û¦>ý¶]ê>¹=?BVk?Mž‰?‚ôÚ?Uc>Þ‚ß>Y\Ã>¢‚5>®×¼>È|å>ñŒf?;¸f?”O‡?ŒtÊ?\ ?QÉ?µ+o?®»º?tǬ?r‡Î?,ç?ÃF>‡’…>’ªß>AÉ>>5?vV?6?¢?Š›Ê?žÊü?‰,x?x÷É?aÀp?W$?lœä?zN?E,? +Û?ß>ÿt+?a\›?¸k?œe’?VÔ?:‚x?—Í?'£?,¬ø?/ÚÚ?c“Ú?]Zÿ?7$‹?,Z>Ä>ÈBY?Q +?júí?­fH?¤‰?0?>XS?¸W?»¨É?ÁJõ?±x?X²? ˆ5?µ5? õ>Xí2>»\?%X?&ö~>¡=û>³2»?ÀR3?¼ºÙ?<Ó1?4˜Ä?Ã%?+íL?yöú?h¶Ê?b†ú?lLö?ÀçM?½t±?ª®?x9?ÀÔ2?Ãyc?Á0F?¿Mp?n#÷?b4d=ë'>ó{?()¢?0¡ñ?€ü‡? +Ì? y­? ;“?Å g?ÄÂ7>Ëj6>É?MóŸ?3Mž?CHv?J¸v?*¢?ÉÄ>wÐ>ÿ?Áí‰?¼…‹?s³ò?uYŽ?±Í?£Ç?ài?é®>ºÒ?f?ì!à?âY?¦»T?›t{?AÇ©?5";>_4N>¡¡?T”î?rІ?¹>G?¢õ©?d]?–W?&­?Eà?Âg®?¶^?€Ü?f3ì?¤ò?/Û§?¯>E?²Cç?ÐÇE?½o`?]Í?mž“?“Ñp?ˆv–?q›c?\n,?Æž? s?Fý?+|I?U ?g >}o?ߧ?C©?¯RH?º¦3?È(?­Ûb?€“?‚„ó?Ž’?HZ°> +Ò"?#¿ë?µã?tò>ŒÝ+?‹µ€@ òÖ?§á>TÚ>‘4>ˆm*?1ÇG?š"%?e!+?Le?´?7?:û??&?s?cñ>¤·=uD ?"Õ@VÉ?˜w@?õ ?½¤?ƒÐ>¬>&pð? +/?=°?å?™?€e«?š »?¤(`?°¶¨?oI ?AA"@u@9~Y?éøG?¼/?‘Ic?‡¾k?\׸?Aîš?JÌÌ?W¯@òÈ@9‚ê?¤4?°?v³ú?}ªò>#d6=Ë+?*iv?Bæ†?So4?J:–?±9õ?±?ƒb?-½??^?â¿1?á'™?ͼš?Õ?6?©Ó¸?©Õª?š !?Œg:?(Pð?S^¥?¼Iœ?°ô÷?¡Lú?‡1·??N>Óùp<¹ ¤?38Ì@;û?Æ –?"YÆ?kâÊ?¡ê?¾? ?æÑN?Ÿ€‹?,¥O>ÛÌK>F? +„)?MxC?EI€?FSw?ŽÂ?©XR?«~?­£†?í‹?_ÿ5?Ïm5?ûÀ?ŒQÂ?ZIÊ?½“ ?Í(“>º¶;=»Œ>ôæ±?ù¯?šn?)I?»Ûú?º«Q?¸ ?•LÉ?µtg?®N|?„5?u„X?ÞT?…ÓÁ>š^W?âÛG?äqöé6?Ô´F@Í2?Êñ?¢Wj?¢@I?¡c?j¬?HO_?qÇ0?kú¥@xï@5Ø;@{@oÖ?ò·?öþ?“#D?˜­y@“/@ìf@(Æ @¼4?Åv;?Ó|@©?ê/,?”'Þ?ä^@Fõ·@øY?• ?½é ?ô{w?à©?Ïë?ºZ0?¡ö±?ðóà@??¿f ?uX¿?]ש?YTP?¼Í¦?âC?´|?¨p¦@%³Ü@;æ‚? >¦@Š@%{i?Í??À”.@!ß@?Pº"?…RŒ@8};@%û«?MŠÎ?W@êh@"?Ò% ?¼ÐO?‡3`?¬$@ æÅ@ÿÜ?ã]—?írò?òÏw?ùCç@Q'@št@øD?¿Íu?wî?|Z?€a?мô@ؤ@Ô@'Ä?g>{†?Ÿ.É?Ô„þ?íÖQ?óëW?Š«ž?c8?«½¦?¼VW?)D ?‡"?Éy.?Ï p@=8Ú@E#Á@Î÷@k½?ÉÏÌ?¼Ÿ?5bæ?<C?öˆÁ?û±?ÿ‰?î ?"~?ˆ{@‹¢†@pÚp?£ˆ?Гd@5 ·@¬p?œhö?Ÿ?T–ç?n)Ý?ŸõÙ?¶Öš?ᜂ?ÌæQ?´bú@T§@y2@JàÞ?çD3@$¸@šœ@[&@r×@gµ@`–@ÐÕ?þ­æ?r™>vì­?9£?—ê@F8Ð@›—@C^d?³´?ÄNa?Ûú+@¸Í@1A«@ =L@!é@/¸¯@B/â?öó?–´?ˆ5c?b®Ø?–x?¯2r?­›_?µí@=ŽÔ@~rn?ê~?vw? >d?Â?¿‚@@R@Ä@¶ã?²…,?\¨d@îÒ@.Ùã@$’@!9_?Íö?–ý?Î]—?맙?ÄÒ?°Z@—F@"´ô@Ïü@žá?³(¹?‚ÁÁ?€ë?z‚Ž@}º@4II@µJ@U[@!Ä`@7KA@ ñ?׈¯?Ñ®?ǬÊ@\n@¼®@G]?æSá?¨Vì?Lî?oÓÖ?0Ò?ç 5@°“?ý¥Ì?ºf™?Úφ?ý¾±?ã}?Ê€æ?Û¼õ?éL³?ÄjÑ?‹?®|?édÅ@”®@Ÿ²@Ϧ?ý¶a?ûZú?ã|?õ 7@ ë?òE,?®S?¨°?C,?‚æ4?ÈÖ"?Íæ¦?ÿ +Õ?ðØ?qÐ?g?@ò­?eûý@¬¿@zÑ?Uæ.?`±‚?àší?ÞoA@9¬“@=>?Ë+2?­v%?¹Ö?½ž?±˜?±Øä?æi*?ö/Ä@•@Å?º¹?-NÝ?~ ú?”²g?û0%@ß[?Ä3á?M4>?ÿ\@J;]@5kq@·ð@1%@¶œ?ÒÑn?A?ƒ¢y?ãˆ?Ñ}Ò?‡À{?¥ Ä@“Ö@éå?Ü ?¬%…@Mç@JŸ†@:Ó£@:¾»?ŸF?—Q­?îG=?ø¨¢?½-k?ªû?Æ9?Áª?¢4Þ?’˦?©±@?¹ï6?Úzª?ølc?áìà?ÎOœ@ \¦@9ƒÉ@$s—?÷0¯@Ç8@ þ@n ?÷Ôž@H@0Ö%@%^@“@#ö+?öy?ƒ|“?±ü>þy¤?[˜¶?u³?Ÿ/>ËfË? ¹I?äg…?öx8@ë€?úXÞ?ôè?üx@Y°?íøÁ?ÏZ&?̤?Ÿ!?ªy$?ô†?óðÁ@$ª@°d?¢éá?š†6?¦d1?¤é?•x)?‘»A?j¿Y?5k?.I™?'xÌ?:Îß?ZùÙ?du@ ßE@†?åï>ù£6?ø5?Éñ? v?¦¦>ý(>ªR?ˆç>?´²Á?·(¤?¾½U?Š^¼>×É?n@¹d?óe¤=ï{›=Õ®‚?­x?¦Cß>*J*=ÞL™? «Ò?ÑÉ>ÿÄ>îé)?p[¶?§Á?¿Ò?å,Ö?ÍÏ?©A»?¹õÚ@²U@‰ï?)Kn?=;ÿ?›P?¡Ä:?¬³?±Ðk?æßó?þæ°?êu?ì§[?ÐÝ?lh$?~[æ?â?é‚š? é›>ëÐb?飻@ M»?â´^?Æ"ƒ?£í?k%?wP†?•?”ý’>¢5>d¿Í@'–@.ð@YEó@[ ì?è/5?iÛä?¡± ?˧‚?Áø?ÍE½?Æt?f!?~¥4@6n@ ùI?Ë€c?¯ìÌ?ðZ§@ ñ?ï5u?¤è$?ŒËÇ?D¯-?,rV?gñ&?gÑÕ? ë|? +Ë)>ó§‹>çx‰?ŒÑÞ?û¾|@]`@zÉ@ ›A?ãöá?ùËŽ?›Éç?‰pb?³ÚR?µ=ù?¶?Õqb?ãõú?ÞsC?α†?š”?§¤Ç@ +Úƒ@à£@_ä?íûñ?Âr˜?˜ÓM?dÄñ>åýÜ>é²á?'Û?.49?è%?å†v?¿m¼?¬i:?dZ€?Á?\?†aS?YÌ–?«í?¤h?þÓ?‘ß?nøý?Š¦Þ?¯Ý?Î ?¨ŒJ?JL?fu(?¤¥‹?­«Â?§æÍ?¢×è@/@Í?Ó•?­J ?â¦þ@ ¿P@òì@0Ͻ@#y½?t˜Ÿ?„÷ ?œ—M?­“Ü?°­@?®q9?Ù·è@*!?ÊÒg?CTn?%;Ü?w8 ?Ù?ÍF?ÂQI?Ð’â?Ëšä?‡n?VA­@Zš@,a8?¹:?¼[?Ä4@%º@—?²zã?ð¯°@g¡i@pËÙ@e¾æ@hZð?…Q÷?—Ý™?£óŸ?žC@AÚW@Tô@Mé@H@!± @5`C@‚M?Þ]ä?Å»À?¬Æç?lGD?+ðB?Ä}”@Gq?¶Þi?ÿß?IÄö?<è?ä? çA?šd@?“Öü?¤û/?¸ú™?Y}+?¿¥?ƒ—v?„P?âü†@8û>¡ñë=Yõ =]¶?Œí? iO?0wÿ?0°>îÿn>°¹>cŒ/>¸)Ì?hp?!|¥?KSÆ?j ?¯n>_óõ>ìiÐ?ŒO?ö­=«0>-L>tï²>ž¼Š>Ã??Î?• ?ÃP ?¸·?»ýS@üÊ?¢Ÿ?‡à?†;·?–|¢?.ãÛ>â·>ão >ä%½?]Ç?Fm4?MkõuG?Zƒö?:å¨>ì3©?@?FÐV?AÕ3>Pôl>[ùà>ܳ>ïÉ£?s?=û?!/?fF>Ñ{§>/I¨=¯ìð< é<4V5>‡ZÙ?²¤?¨<»>õˆ>õ¬‰;ðà->”(>—¹z?.ô?=D0?:›?A•m?G!á?L®â?á—>ù‡b?%TŸ¼l>˲>ý-?S£?‚>Òîw>]Ç6>ŸZÑ?,'?0‹H?[u†?s(ë?¦[ž?§QI?Ä‹?™{?øúà?ÚNÙ<Ìs0>bW?¯R?¢5?J2?8}|?:?,?‘J?—ñ=@œ#?öm=?€I?p¶»>Kš‚>›»¾?ìnM?å)1?>tN?B÷??Àá¦?¹W?ä?µŠ?~õþ?|Ýé?—?F?ÙL? ß=bn?îG?ê?©>¹?£Š¯?f? ?}?À?Ð?‡?q?ÚH?Ü{?A7¾?2áÏ?—Óè?¦2@!ŽÌ@Ñ®?¾jõ?ªÿ™=X!>‰ö÷?‡?¸ÿ?hö)?HF”> ôc>c€?2½e?d[?Â&*?§qù>~>²øC?:?+ýæ?‚Ç?I4­@tC?ï—R?I˾?váz?Â]?Àèþ?½S‘?•Ý•<ØÞ>¹VT?¹D´?ªt[?ŠÚ¯?šS‹?†š?±Ûˆ?µE?“ ­?•í?´µÌ?‹¡á?QR_>€15>©Æ>âbà>ßô…?ÐN>Ìš>[>ó’?Š³Â?e´}?*ä˜?ö¿?þ;?£2¦<*8L>Êkê?ö!? ¤>‹ài?4“=?¹ >¿¯ã?Áp?N*?ÝW?!9?¨ñu?Áy$?æ±?mjð>ƒKG?5?9?>ö?8eî?k[¬?3¦?N ?­)ó@k^?ºö©?™í?~1d?yÕÕ?$b‘>Ýv>ô†?x0>1Áê?mŒO?¬ÞX? þè>ZXë=„¶“?©ò©?çõ¿?“?fµ>ï‡$>¥zí?³þõ?Ô€ÿ? >¤¿?š£W?´Ã @É@ &?Îë®?Ââš?ó$c?î×r?`.?ûj?b?ƒØ?“kÿ?–×C?¯Ït?ª4?T c?Xk ? °?˜b÷>ÿGò?R?º‚?´@?­Š?¦Â«?ƒRO?¬Õž@îp@#-Û@ö@ Ÿ—?¾ÕE?«oí?k?Xþˆ?v;?aÂ?Œr?tUK?ÅbQ?›”e?aFš?»Ÿñ?ù°=?¶¿€?zZü?Áâé?ô2nÓó>;ò>KX8>@š3?àYø@þç@Ü@Ù?Ël1?Ãrô?@Ÿ?Ž¼?‹•?’ŽÕ?ðl/?äU?”Z?¦¼Á@œ?Ù™†>«G˜?Æe>?¬,?F¢3?‚÷w?ÆzÈ?ŽùF>¦³?c3x?ÚÕ™@Èt@P¾%@׿?ú5?ˆŽR?¿#r?ç³8@Ó#?ÞQŠ?ÈV˜?WLè>ñ{?w»)?˜¾Q?g?¡F'?¥±õ?¡¡…?ª?•>c >Xþý@h²@‘?ƒé?ˆ9r@¤Y@Ae@!÷@ 1G?„ª&?näÝ>ü9§?\óã@¯w?ÓJF?08?I°/?„³I?R’Í?¶8?ˆ£:?ßö¬?½?I?™¸?DƲ>ÎLq?_?Ðúo?’%Ø?Z¾?@•á?;ÿ[?˜pÒ?§'@0Ë>@A¯?¬Íµ?“`&@ bT@z?5ãI?+¯Z?·ó“?±É?°?T¿@@‹@+Ÿ(?‚€”?m^Ñ?g??/ß?ÞQ?Ìs@ ?û ö?·.?°¯?¬ÄA?›¤‘?„•ç?·v?õ+u@ãL@Ý?Û+p?©ôx?ˆŠã?fo)?}9Õ?„}?Z ª?CŠ?éN@o-?ÏÁ8?ÆŸÑ@Q—@$'3@$“H@"âj?Ï«x?Ò¯²?´ž”?«;C?„±(?™®â?Ój”?¹ï^?\ëã?g¼!?Sí?}ø(?£ œ?¤ø]?¢áê?“?mj+?ºE@Ôé?¸j¦?“?Œ?àÜ?›š?&7W?*²i?$Ý0?º¡É@¤?‘­!?/ …?»âï?à•@Yž@}S³?õºU?©I™?žÐ¸?–ÔÌ?Èã?Ï“S@SW@Ô@#‘–@(;†@ø@ x\?à ?Ó#µ@DÐ@BSØ?ß*ž?ÔZ¼?u]\?zéF?ƒ2/?R™?*~¨?Mp>?ÁÝÿ?ölB?ž¬?Ul7?ôøÅ@$ö@ –é@áþ?áè4?¿ñ?¼>à?Á@?Ê?Æó€?‰à?LAú?µ&?ê^?ËÉe?»ƒþ?—k?€zº?³6ß?×ë¼?Ò7b?ÍF˜@I’Ò@‚õã@ç–?—Ü?¾ûw?ÜÚ@ïI@0×@ ¾?Ù÷€@c@i?àÁ? ,ü?íd @\ó?Ôns?i\¢?št?¿Àm?Às—?¿FL?Âî¨?É•?ÆoÒ?¿ ?´Å÷?¨ñK?®!?³NC?÷ +è@0”t@ u±?£™e?ÔÏÅ@'ÿ;@Î?IP?Ô+Å@]ô@OW @¾œ@!c@=j|@%¦? SÝ? ¾#>ý ñ?(ê£@-}X@&F?Q¾?Lö2@"Zî@Œ@ô@!\±?ëO ?ô +á?¢VH?›Ur?² ’?« ©?Åo?È,:?¾šÍ?½q?ŽŽæ?oëè?ÂäI?ä‡F?¾A‘?°X?ÞÅ?õŪ@³h@*Ê*@,(ã@-ˆª@)?Ò°±?ÖÔ¾?Ýü@?¼:×?yû?¢àM@R@!i?ù´e?Ùçç=ƹP>åVÐ@s@Ö@nÄ»?ðžŠ?ùZ6?Ë‹j?ÃO7@3 P@7LK@]1G@Z@—@ÚE@u<@ ï@‹?á¬?ÄÒæ?š¾?{J˜?¹È?ð¾5@#@9…E@MS?¡ž_?óµ@]Ò@;©†?x©ü?¬Yg@wÖÍ@uf+?Ç\†?Ɉæ?„*?uäç?ÚP?íVA?•c¶?`tP@*bg@iº}@&"ë?æ]P@§K@IA@+ê@oN?òùI?ŒÁ ?’€?* ?2Ο?é/?ﮄ? ]?ü˜@X{@¬V?ìÓ°?á¥Ç?êAR?æê?’×/?7dx?‚‘6?§6¸?±¢?Òœ?Ï…Þ?µ l?»÷Ú?êp¥?ñÄ°@*Ã{@"?”>?‡<~?Ã4? ?t­?”Ý6?† ?p­z?’•–?´Vê?¶µ?ŲL?Ôä‹?åmp?íq?ìZÙ?è§Ó?™?‰ä?sR~?o"w?«}?¸R ?³¸™?¿G?î€9@­@÷?€3…?zÒz?x3'?wÿë?cu?[T.?ÍŽ?ܽ÷@z»@DÒ@%°@5¬@$¹Œ@MP?æÖì?›%±?§¤?l'^?lPª?fê²?^µ?ýé…@: ?õîV?Õ??ÄÌo?¯Q?„E¾>§á@>ï7?×ö?Ëc@1ƒ@Ä@,!@5ÿn?ðô¹…?¦Y?®§¡?ßÐú?çø?êFð?ñ‚®?ÞÕÄ?¿ž“?Æ3?Î@ž?ÈH?‹¥?‡P¯?ƒ–?}Z(?8—G?E'?¼Âø@'¶ö?þ´¬?Bs?[žx@;Ž@:`@q@GW@ ã¾@7ó?Æs”=«T>•u?y/q?±t@~ør@jŠ@e­ª@[bÆ@Ó“@x0@°²?ü ¾?Æð)>ð/o?ÍÆ?Óôæ?Åå§@­w@"]î?þƒ-?åØ;?mh½>ü.?˜1g@_‹m@[Tä?¬³¶?¬sj?™ºD?1 ?éb¦?÷4@õ—@Ÿæ?·Ê6? …ì? +a? wÿ>ðÀé?¬o?¬ÿÿ?“ê?¤Xt?°“Ê?­Eï?ò§@*×0@:›@J–é@??Ä?© ä?¤p¹@3C)@+´õ@ o˜@™?Êãt?®ºž?ûÝ“@;¼@9},@ o»@Öæ?ê7?êv\?«é"?¶qÏ?Áü‰?Í9?ÓE÷?á‡j?Gïµ=\“Ø?Žvƒ@Q‡@ÆÄ?Ïï?åî@Ís@Š¸@‡v@;á?®w?¨½m?´#?µ&è@^)ã@lO@"2@ µW?ÒÔ.?¹¤M?mŒ‡?GÊ ?¬O]?Òȹ?Ÿ¸h?w§y?ê¾@'®Þ?½ÿÙ?;…>’!û>œ?‹xþ?Þ°Ê?ºé™?«U?’4±?¤?+¼¶?™™?sr“?—ˆ£@С@M‰?ú>VdÖ?Í?þu?{À?Aí/?ðû*?¬‘ +?ú®?<,¬?\Åh?29?‚? î? ¢¾?Xå?@6i>­ÙÝ?¥ò?ƒ%ë>öPÁ>ùf³?)C·?ËuÎ?´›?˜Ü?û*?¢¨›?y‡sòh9)Êè>*µP>x·`>¶ü>ä@r>äñ>åç>Û4þ=fK=e›Ñ?Àó·?å-¤?¸Î?&Š?§¿n?gÂh=á4–>Tw2?Ã3?!\—9¿,€>T²Ö>…,?>YÂ9>*ûÖ?$zF?q¤Ý?~Ò?ƒüj?°>!?q¿Z?ƒ! ?· l?£r¦=¨P¯>œ7?ˆô¼? È>E5®>?í›?"½$?6¯ø>­è>‹R>àÏâ>øú >ù>j>ù„¦>3Tç?>ÏÁ?¨ó’?kIÐ?Ì·?¹Ôg@Þì?òÍo?³pæ?« K?ª2#?}(J>¬áê>¯/>üÿ@>òM‚>óLP?æY>ý¦Ï?Êö?#h8?A?h3…?<>}>ͨ?;_š?ðGZ?ÏnŒ>ölÑ?÷?sx?FU>CÖ%>À.€?Á-?…2?›O²?Ç?]¥F?€4À?Õ‡)?ÌÛ?C@Á??”Ú?W ?Ó?—Lá?œS[?¡Uú?¦Xa?«ZÊ?²P$?Àï½?«u<‘%>FLR?¸~A?³˜ï?®ºs?¨•?–Ùî?—+¯?È®€?»|t?˜Ý{?Žv>æ\?˜>? ?ˆÜ-?µ(£?Ÿ>©ÐU?}@)Y@$w×?ë‰?öÅø@Í¿@ß?=$?+Û?¸ØÏ?´—Ð?Áõh?¶Ô½?W?…¿?ŽPÞ?}“”?*òµ?-*ñ?l ½?Sh>…r´>³ ô?Iˆ?=ìÚ?{T?W³?€t?n×R?f‰?A¢Š?ÌoŒ?¿›ß?—‡H?{pF?’Ê?dþD?ÿä?ËC? –?y-ƒ?õü?ýƒ@=«?å.ë?˜+u?Y›?".%?R¢>…-Ð?=àì?Ø´?±â¢?bÁ??YÃ’?PÁÐ?´fY@$KÉ@ìØ?­S¢?¾jŒ?ÏRz?”ù?çß>œ§»=L¢0=< >cS6?ý>©'Ô>­n?i­?Ûñ­?•(»??/?6d?½è?º?Ã-×?Xè>R„ó?«P?YÖž?f«Ž?kUa?;É7?€š?$Ÿ?%??‘?¿¬@-¨w@a›î?õ¸­?‚`Ñ?É-?èìd@*@»x?#òl?ŠŸ€?ÃÆï?%×Ô>š2ú>þ„Y?àé?Œ¦)?¦ ?¨9±?ªj~?Š¤d?‚±ø?ß²i?ô‡?¾Âj?·†Ë?2TS?qy?²“@?ÀB%?¢?få?…Æ +?E?µ%?²![@2B@ Ü?"Þš?#eÚ>ò–?…?ƒ0?‹õâ?Ì®©?¾›?ƒ.?™Iü@7r?çO ?V“Ú?x¾™?ª¶ã?™ÿ:?_øñ?“›3?û”¨?ÖF-?ƒj&?XbÍ?t?5å?H ?˜Âª?¸\K?ïÖ@¼ ?»•)?œë?L%L?ŽÐŽ?°Ëf?ʼn,?ÌOò?ט? è¬?íà?„í?ƒÌ"?Ý +Ÿ?ó“Ü?4Ò¦>³+¸?7`?G€“?‰—†?š¶?ÛèL?î³ +?ú½æ?ÿ¨À?É’k?Ɔ?‚hC?{[8?2©?( ·?Ñ|>?Å8g?#>÷?(»?Eä5?0kW>be?uaj?[_Þ?Eu?U?\°Z?vè?{Tá?žó8?ÞìC?ºµ?„Ìí?ˆ?&?ÏÏ?|g?h.9?£ªÜ?½˜?™åý?…O ?.+4?~m>a<>KÖ?˜Ù?¹U?™ðj?–‚5?žf?šiá?0Ø?DX@ …@@n?¥y³?­7Ç?ì £?ÙIž?’Ì? vx?„¤(?›g?è~?ôªÕ@«}@Üq@ ‹Ô?ÙÐd?zñ7?‚å¦?ƒkÛ?MƒŸ?Ì?« b?õ®ì?‹ ?²Y?ŒlÐ?´¡Ž?²}Ñ?°Z,?z]h?Sme?²ýM?Ç Õ@S<¦@jšz?»u´?‘Ï @¤â@Â?†&‡?†_f?¤&?˜VÙ?…á?Fo¢?ó÷ã?× ? +C:?&E$?‚~ ?\v÷?¡š?>ì¶?š1’?™<­?“¶e?ÎÝì@’(?³ +X?4ø?†Ó¨?²³@?¬ˆ?¤ùœ?à˜?„‚o?ÄË]?ßØU?œ%?„wŽ?¸a.?ƪ?ñóy?üÐä?¼,S?·Dc?óܧ?þÞ|?ʉ}?dž?õ‘?3µ/@$ó?õ©?­ +@?¯«V?×i­?À¿ð?2‹›?g]?ÉŠ?Ëm?Ë»«?±:ý?‡db?–…?«%¹?ü‰;@:_?õ‹7?(!?#®‰?6‹?²§?üð7@ Ó@» ?¥ G?^m?§ó?Ȉ?s¾³?–CÐ@Yös@‡þ@4¯?âÜè?¥×-?šIÂ@.Ò@=s4@mÅó@uöÂ@_@=(?° s?¬x@C4@D­½@2Â|@3{Ñ@gC@ô>>áÞ¥?”3?Œ^2?‡Ä5?„Uú?œúz@ +·v@»¥?ሰ?î@óß?àáþ?`›?µñ´@8Œ@³˜?͇)?»?£6ƒ?²®?Ãý?œµi?1†ˆ?œãr@÷†?ëÐË?µp?Ë–Ú?à Z?Ö Õ?Í+©?ÅÁ?Å3(?乚?úHG@ Yú@ ã@,@?€.@-ªÄ@"Ž“?ý":?ɵ;@ +é@)Ï?í˜?¥.?Žò?lïp?£3?Â’?šŸa?¦‰?¡?µóú?з¤?Ùn?}î¹?0ô?ÀÐ@ëÚ?‡3M?O’?HÉ+?jÝ?ÇÐm?ñGø?V5#>¯Uà?z`?Ág?Á|Æ?Ár+@d·@Úõ@Õú?ï"Î@ æm@¢@ ¶@­(?Š[?Ä?6\?'’?½mÿ?üDU?Õ,?À•j?zâ?1ªv@^ˆ@C¶?êVX?€,E?p?s?mÑ‘?Æ‹Y@‚Ú?áš?ˈ?Ý?êpÇ?™7i? ,?ªß8?ÿw)?‚E~=eé@4Ep?{ (?Oƒ@GN@ •?’†ø—>ó¯±?‡·v?šÿ³@× @*Ú@cÈ@¸R?º™¬?oÖ½?¢ë ?ÛÁÇ?Àaê?‰8]?›v?Ñ6?²Ñó>è‡Ò? +wB?úq–@™o?„?Œ?qWú?è6›@b3?íFŸ?×Jd?̯P? f?À-º?ÅÏŸ?œð×>ù¿>½Êä>ý7? @!@#>¾Æ–>¬Éè?U ¾?o"ƒ?ñ/è@N?×SU?ŽÚO?²ïf?ã[4?Ø3Õ?Í +]?Îœ­@‘£@š­?ï·? ¸£?ÓÏ ?íT÷?ÿ6@ È?Ñ0?›(1?ëzA@'}I@N@ Á%@+N?lC?kú²?–öi@@ø@ce@ ’©?¯[?¯(?èS{?Ê»r?3-­?_¨W?ü š?÷Ð1?ÆÞ'?»–‚@/ ]@I…ö?ðÙÇ?‡y)?ÎN@-?òÜ–?Si?|7ã?ó(¼?æCl?µuê?­·Î?ÅÛ?àÑúÿð?„¹?…z˜? Ÿ?ê6ð?êvJ?m5¡?júâ?*^B?4BŽ?+L¦?T?Ý@S@ð@(õ@ +`‘?¶B!¶=‰ä?««?,bé@=a@ ’@Z7-@nÑa?å"?¬qÁ?µ\n?·J ?ô`å?ú?¯­g?–ŠC?‡âÅ?w«f?‹ü:?ŒŸ?¢äé?³­/?KlQ>´î¤?¸ p@9ô?¼r‰?~8z?rö\?x/)@«å@*Ež?cl±>½B/?ñr@ˆu?ŠšÌ?n Œ?vB?wLâ=”]Á>ÖjÏ?ùÈÎ?öú>T’/>…#w>‚]˜=gV`<àp=ºNÍ>,f?:5??[>C¶>ÜX? žL? èÈ>üÇÂ=·ÿ>>¦>ŸSÉ?®»;@[>»Çã>…åa?VIû?±–B?¢³ò?x¯<ã´¤;½·Õ=³qp=‹œ>¯Og>É€;>Ï>äfl>åÚ>å¿Ä>ëG?i©?l?VC„?f 0?Õä>ÛåA?5˜²?}7ë?…¢P?†Á?`hk>íqª>ý?M¯…?=öÖ>ð{°>Ó7É>å;>ðÓŒ?0™?R ö?~¤?–]A?.ƒä;Ÿ¸@>ŒÄ¨?„X?kûñ>ÊÜÛ>ëßF?¸²j?·ùÄ>¤Xå>–Ã9>ï >÷Ø*>‰µ‰>YÕ¾>ÚVµ>øÿü?p…¨?eä>“îâ>±´>yº?pØ°?¾Ls?3¾ÿ>'±?_Ót?¼âŒ?ŸJ)?|=™?Š¬1?•¥D?‹?‹s’?–ñ?¤×f?ƒ4¶?6€±?¢ª>µ²È?!LR?·å)?*—=Ç® >›Ê?p¨??ö˜=‘ò?Á@*?øjz>ßq²>ç;$?~?² +>Ú +æ>û?á?Ô\?€)ë?uÆã?=æ?8ñ)?4Ç?/>?*&é?%:þ? Mð?l'>Õ:0?.‰?´Ûˆ?¦µk?Ö>ÿeÄ?û\?-9?‰Ã?ƒ²?8TJ?VùÂ?¦h¨?oR?00´?1Š ?öA?!*?bb?;‘¢?Ímâ?Ìó?¬.@?«ð_?Á³e?°c.?R}?JµC?1Ú?7s?:¬?*ì? ðº?F=b?Áð;?´:ÿ?P\?„w-?’7`?¯0@XÊ?Ðj?d™>ßú`>w°©>âú?uÄs?QD?wß?:{Q?©°?Ï/ö@!â˜@¯a?ã|ÿ@§‡@9ul@3q@ø"@»q?‰e?k?Ÿø?q÷?Nôn?f¸Î?†©?Šþ?°e?EnR>™$>ìÖ÷?E;…?‘b!?쳑?̨à?‘;!?•ÃØ?šI?‹ÿÎ?d<1?>Rã?Ûµ?®x@"Y?Õá?l7?–!R?ù¦?¹™S?g:b?3?úG?%™”?C¸*?¢8Ž?ì†?Í®+?ª#'?€\³?<Ü—?cOÐ?„¯7?"¡>˜ñ?H“?–bQ?Ìh?ò_$?`c?MÖX?ŒZø?§’0?’ “?‚Lã>¸àÂnb? !>¤Ð®>‹ùä?2¸Ù?kMk?Žà[?R™?bÓ?YÇ=?è¶?‹Á?.‚X??˜]?xÞ?‚žÉ?VÌP?Qø?}Ñ”?‚°?» +X?ÄÞ?—ô¢?ø@?ƒÂÇ?‚Î!?y³?|€?‹Ù?€½?Œî?ƒQÂ?ÄMb?Ã^?¤õ?ªþ‰?¥Ü?˜ž>·Ÿ}>Áv»?2í?E>’?–,?˜™¾?ƒ-–?˜ï?ÌÄ?¶ó–?4aZ?rÜ?ÝùÈ?ñ©@ YË?û“.?Åb?®C5?ƒi(?QE >ùÓü?’4@ä(?¯4Ì?÷»?3…\?T!?hÖü?jwf?f@|?bý?%¯Ô? V}?‡9™?ªn ?­ñ?©P[?nÿ?KÝ@ô×@9§š?V‚>.Ì?³NG?×a(?È>?ÅèÁ?5õÀ?Ü?rO—?~e?Á·?Äò®?„;?€âî?P?'}?.ËA?ZÝø?Û‘\?ɧl?ŒÌz?RJÒ>šZ?b?i\`?E>زÂ>p Ô?9½£?Éø½?»"ü?™à“?ø1+@.–@õ_?¹‹í?Oyå>Œñ?:æ{?„q©?2ä/?Cß?v¸?~@37@,R²?ßýå?ÆÍS?³Ä?„ŒM?ÀÞ¹?ÆØE?<ÇI?9?? ‰Ÿ?¡t?„œ +?„·£?‹ER?‰¡?“Έ?˜ÖV?™òá?Ž1zµ?çW=a?7Þq?ÆS&?‘î?½'î?¤Šr?—m?È ƒ?àè¢?ïI?÷Ÿ‹?³ðÃ?šÂç?Š€'?„³?º]Ý?Ç ý?þ™³@1Ç?ðWÁ?î>·@NC@V?™\??ŸmŠ@ Þ2@ñ0?Y b?a¢É?RAg?LI\?3\?·F@#„@ž?}œ-?U|ó?ê?u“ý?¸m­?¶ÿ=?¼û¥@‹I@"’q?˜tõ>[‚>¿,†>þt ?ƒL ?¢ÿ?ð?Õy›?l6?3`´?ÁÊ?×±6?¯Ð‹?­M¶?S¸›?6=?ë? /Â@#ø@&tÞ@]¸@Kºà?“ y?¤¾s?ütû?貚?”«W?± ‡@û„?öZë?Ïäp?ÎÁ?¿kÔË»?;?+!â?RC?™G—?¦Ü?°B?¯LL?Î~æ?á?Ù@9OD@Cr@ÁW@=ˆ?¤í¼?¼@-y@.ÉB@Rr@Z[?ází?Ë×>«à>ªÅ?öÐN?þ€ý@ØÜ?÷‘1?É?ú~@S @* Ò?Ui?7µU>’ó?6+?Þ@ ?ðM)@Æ:?Úð0?ƒúÌ?˜‡0?ÃýL?ªÏ?‚™²?­¼ä?ã`ò?ÂpT?Ÿåa?ðGà@/¿@)óa@ C?ãž?ËA?…à/?‹W@?“Ù?éc?êñ­@ +½@9e]@Pè×@ +Áî?«š?¡½š?ž9?&oC>ƒ]?c«/?§^ó?õ†¼@T€@Òa?ý¼”?³¿/?Ž€Ü@ +Ô@2Ý@Yr@–@]@cñ?Ñuc?´9¿?XÙ?ªÀ?DBø?dšß? UV>¬u?ðO?ÁŒ ?Áô?ÁsÕ?èM?òU&@ÅÓ@!D?ÀyÉ?€¿{?áÒ@mà?èY?ÄÛç?ëc`@N(@?ol@]úò@ %È?À•–?]÷¼?Q ?¢û?â<ø?ÝÝ­?Ôj¦?Bþ9>X8?{ï?À -?¼?µ “?¹©ÿOA?›Çö?üä>@ ÿî@sg@p§?ÜÉ@€o@H’ @>ðx@4ßÐ@K?ËÂ4?¼¥?¢Š3?¨Ó??ƵÝ?ÇZÌ?¾ut?ÃÂ-?ÏfÈ?ܼÓ@«â?æ«B?pÊï?ª¥Ö@?å’g?ã¶s?Ü i?ÍØ@7~@/Â@Úi?oî{?’¢]@iåÂ@da¥?Ð(ß?´µÄ?>Ž™?#N+?Šµ¯?°=B?âŽ?ø»(@¡#@"æ}@&€`@* 7@HÝ?r®i?{Î>?aÇ?Yõ¢?K=?^N÷?»8?Ô?Ü?zò\>ìÑl?ºs?@;ͧ@&ÒÒ?ɳ+?Í@Ç?…pæ?oËb?§&$?¢†?äƒE?ú¢C?‚Cÿ? Ž€?™¸˜?èD0?òtÑ@ y¶@/?È${?Àé?ÝMS?çÕ¶@'ñ@6ðP?Ø_t?„f?Ř?ÿàx?æéÒ?¿5•?²oq?ìd ?ø¥¦@ Þ@‘@•„@=›?£>™?™B?¥~Õ@o¯@X4?9òä?+3O@õJ@ oR?³r¬?¤D>ði±<#È4?Ÿ$@]Œ@¿¼@lð@lÚ@é@ÞP@%ÛI@4Á³?ôÛ?¸¯?w¸x>÷ª¨?ú´@ êþ@Œ ?Çî¿?¾ÌÁ?´?ɘù?±.Ï?šà?ð=¤Œ½>®˜?hHÊ?eè"?eâ¼?eàï?:lÈ?I¾?a³¤?e×?àµ@+iw@({?¬eÅ?¬a"?®@=?³V?ãÍÚ?åúÝ?ÕY»?ËÐð?ªN?—Fã?†zÓ?Oˆœ?t‡?¯¶D?²#?? NF?ëÝœ?ý˜Z?µ‡ã?íxz?σï¹>ÿ¹ç? 6Ã?à«h?DóÙ>žE?‰è¯?¹s ?CÑ>?¨ß=0{‹>Eæ?¦u?ƒ)Ï?8?Eó?8My?‰ö­?ËFß?tÛ>üdr=Ø(?M$p?HÙ?8Õ?7?ñ"? ÿƒ? ê$=ÔJ[>¿¢R?‘C»?‘öª?“„¶=èß;?Oü?–OC>ö¾F>‡£Æ>¬<³?à©? :·?1›½?Ý>䃳>üäÖ?µ?E?U?[C?Æ=>íWü?Jr_?b]ˆ>Ýpk>!?,[“?±T?“øã>íÒ>ïŽ$?Ór?*<>þT/?k±>ú'>ðßÙ>½6>³dÄ>ƽF>¤”ˆ>:ÏÞ=Ÿ-Õ=;9ñ/>’9ù?tä?qº{?_ç ?TÑ?;öe?? ß>,‡>BM>ö w>÷Ø<>Šy1>‹ìp?ƒ:?(N½?Êú?õ1`?D™Ö>‰_B?{Sá?¯q@ñ@P?ê}$?¯ì ?•Û?‡X´?ž%‹?®~’?´pÓ?½sz?˜{x?bìT?Ž4U?¸˜ô?´Fp?š°·?˜9Ø?•½z?[f>Rè>¹•—?bu?+õ;?J"F?‡A?÷Û³?ÈÃê?h?\´œ?¯Ùz??+>ÿ¯«?x ?7Ûœ?vzÑ?ãæE?ͧ—?¤ù?™ýÕ?€8á?f÷¨?|o?7(B?€a5?€kI?€rï?W|>2ñœ>K%d>è#Î?øD?{ê™?eS{?µ‡?adi@ác?çá½=Ù¦[>œûÓ?€Ú+?Žäz?»Å ?¹Ê½?É~€?°¶?<¹ô?2¹ø?LÅ??Š\É@š?óÕ¶?Á©Ã?ŸÜ{>“uÒ>²ƒ÷?.Q™?»‘?¼•>Ç ½<”A0>̾b?Áä¤?±œ©?Iê?hƒK?"NZ?\ú/?Àð“?¹òÕ?ŽE¹?FŒ‚>“×q?‡.n?|Þ?3¬?Šz?@v@/¨@ +†¼?ÖúR?€y?Tè¼?ÂK?«Ë°?Ÿ1?­wÂ?ü‘W?Í*Þ?stg?nãà?j\Ä?Ah +?£ß?ˆ@\?Î#?¯¡?÷ß?>ÿ‚?C‹>?H¼?D\Â?4x?Ck?Æ“>ãÑ@>ÂÜ;>ËÛ&>ÔÝm?¡<Ö@à„?àg•?„Ÿ??HIÔ?$»?Mò¸?ëÎ?™[ò?¬±q??ml>yÞ?ˆB?ð?¿Ž?šz³?S”a?£?(¶‡?Aœ >»µ>›¦Ð?&¹?„0Î?°´’?B4>ªLŽ>üJ>kr?2¨|?y®÷>³lé<‰QÈ>´ý«?XÛ?³–?ªû³?8“r?hô?z$'?“[ý?)¾ó?}4?DZ2?Q×?£[;?«G§?ˆEs?‚™R?G£N?8/?zc¦?‚«?¼ßX?Ä?¦Õ ?¨’?…¢Ã?‚Éñ?$yß?|¹@(†@¦&@‰?ùâÿ?‰x?‡y5?Û-?#ž?=ø-??j1? +c>í„z>:>Ð~?³jÚ?¤Ìü?ƒ'œ?ƒ+”?ƒ1Œ?x»A?T%ì?XrC?\À¤?¢5†@ .E@®ü?Ñlê?ºzf?“¤ÿ?/Î:<÷ºa?Žˆ}@#‘ë?Ël§?‚?¶ë%@lî?œ¶>\! +?j²…?³kÁ?´`E?®@q?ºt?ÅŒ2?¦‚?ž6{?¤­ˆ?žq±?ˆÀ‰?ƒÏ®>ðq4>®,û?Á@ä?ã{]?ÊQ¥?ÅáP?‰ãº?ƒô?5Þ$?$À?ƒT?€«<ÇÈJ>GZÃ?öÄ"?ã?Ô?t#p?†I?Ô}F?É„³?–°?‰Ëv?-Rv? Ê>?"ð?Pþk?‡Ûã?V¡€?Hƒ>šž?!f?°V:?ï +Ï@»:?ù[?»/?ÒŒd?ì}ô?¦eÿ?~uW?…@?…E ?&Lý?z‹?‰÷ä?¥0V?“¶e?ñ—?á”ñ?粟?œWÑ?™yÐ?l ? ›]?Ò€¸?Âqi>ü›ç?Âð?—ð?œ ?9¾?eÂv?Æîê?·ü?‰Š?–‰?ºYÁ?Ï'ö@@?»«¤?+Æú?ˆ´?Ç,?E&N=Î +0?˜‰¹?ø3¡?mô´>Í’ü?=) ?kp>÷;ì>«Iž? °?8ý?*±ž?3êR?DœÊ?I9h@ üš@ %•@1²6@.»??±®Z?¼ï@ζ@Ü>KO?6ÄK@K'#@#¶?Ÿè?+D?‡•;?A)†=¥ú´>àÎ]?v*€?à”†@2˜@Ï?´®P? ‹?|F?§£“?·)?{Ÿ»?R~L?¦x¥?Æ»€?–Ù:?„wU?!>>°´?¯l)?Óãb?ÁŒ_?¬{p@¹@»ç?‘ß?‰‚Z@#f@Ñ’?Ñu?×5®?¿\s?Çä–@=:?ù…Ã?¶~j?×@%7r@î¬?­—ë?’¤Ò?>)®?‘û?æ¸?ØZÌ?ÆN?Æ®?Åÿ?Åù—?Åîå?ÅêJ?Åâž@Ÿm@«Þ?|úê=¾#e>âŒg?¬Ó?Åpí?ù-2?ÉD\?µuã@(àÝ@:”Ì@‰¼?å9?ÊÈ?Å[B?›ëŸ?‘S=@ +‘5@¶V@qL@oŒ?Æ¿^?Ä­?¾âþ?Æ•Ë?ßÌÚ?êK¯@¤@+t?ƒ3“?tÃ?'[?B°b@€]@Ôƒ@@è_@H¿[@ÂQ?íð>½Äî>Nñq?/b÷?„¦è?ß 9?Ê]é?¢0?»¼†?á/ò?ÙáŒ?ÌKE@Ä>@ZwË@8Œ@ +^?Õ´—?Œý&?É4@I[?¬·G?º?¤F+?ühV@ \¡@ i@ §í@?èK—?ܧ‡@jÊ@ ›è@ W?ñü¨?±2Ã?‚bŽ?4#?CÙ?Ë›¿@^T@D +R@cÜÛ@”Õ?š³?µÅƒ?µ-8?ü¢ @Q?¿®c?„u +?®íÂ?Áð?T³z?8€?3…?'b?Q?;?yËÂ?š×º?çZ@w‰@r©@®ª@/j@!þ?¾z?€»^?â§Ð@ å–@pƒ@“Gˆ@Jàb@©k@I9¡@`Äg?ËY.?-`?RÍk?i©?ÃÚ?ïþ?ÁŽ½?«8ð?Œ’#?`¹Ð?ÜMf@‰Ö?è€Ì?ÉcÙ?·­J?©­ã?¨~õ?¡½?«¢?¯/?j÷¼? ö3?DÈw?.y?¡ƒÁ?ÇgÉ@eL@Liè@uæ?ÇÍ@ú@TÙY@2!9?þ^M?ãöý?»ˆo?©ŠK?~?›/c?Õ&[?ßGA?ýÁÕ@ýÏ@$ƒÁ@¸§>ýs¯?/3Û?»{ç?¸i­?‹Ôë?”ùÚ?¥Ï=?±Ÿ?½!?¿bŒ?åÇb?ó:ì?ñ¨-?÷Ö?¾«?½4?õ”§@ª@}œª@‰õ9?ªËþ‡=?³ù»?ê°ª@Š˜@/šõ@OÊ´@lÎë@-,¨?Õ$€?Ì{?ÃÆ?£›÷?z?°Ä‰@ìÿ@ [@­?þm?ý&?t#-@,Ê @*Y*@N£@FÔÔ?åUj?öÿ2?Òúá?ÔëS?×Ò{?Úºy@>â®@Mpj@ $?ø=ð?Ës?º ?×ß»?ìd”@/P@@VË@2 +ä@à&@ ³QÚ?!?`G@?…y?ëÇ»?çVý?hHã?aD†?¥j–?¥èi@ H°@âÍ@„y?ók?ÉS?¨›Û?¼¢ó“ª?Ñäz?ùÝ(?æK?ŸNÕ?±^­?ÕOX?åO?õÓØ?úòë?©óù?ô?É®¬?Ø´?Ž$.?vþi?í–ø@cR?øßK?Ô‚?à.?êÈÄ?Þ=[?gÕ2?g»«?;B?C©}?"WÂ>ït[?kLý?ÄyŸ?¨Ú?#öL?\“ø?¾ìa?ÌÏ?ðì?æêi?î#9?ðø-?Ê ›?«U8?‹9?)ø€?`@ä?¼—»?Áß?Ùµ¯?ÅXÃ?Èzw?ÓC?xÑB>¿ó?óW>Q&,?ÌJ÷?Å4=?…p?eÔù?<—Ù?¢î?Rq±?¬b?£›S?k#Â?täY?¶tµ?½Â¸?ÝJ„?æ ¬?–1À?=B}?0¡¶?ë?U¾ƒ@ÙL@ Á¬?TÜ?J½œ?°\Ô?Ô@?›Ž?g?™O÷?ͤ@È@DÁö@PÃé@vCÔ@kÉ@“W@*†@ *@R/@ 8f?ýúM@Á@*t@3Gv@=ù@'Œ?‹^?ÈZ|@‹º@î#?õ]ô?ÞÆÁ@Ž•@=?ÿŘ?âK™?½ê¢?¢ðÃ?ÎS¬?öPü?å5Ý?üP5?÷u?òüÚ?ê?§¨?6o"?÷jT?Þ•¡?ÞQ?òí¢?õ)~?ójg@&pg@1kÛ@A¢@EéD@Y²@ …?ˈL?§4§?ˆÛ^?nP•?Ãkx?åÕÉ?ÅäÕ?ϼ?¸£A? à¿?©Nr?°¸?tGù?†¤?—¹?Àú?äà?ظ³?ã‰>¦©?pÞ]?ƒ.?Ä?Ðð?‘¯?Œ}³?º ?iQ?/ôb?€Á?´ÏI?mÞ¨?›J?B6ð?5÷y?Hý?cjs?‹u×?2 û<·5=¶dÆ>²Ln>Â}„?K9?<?#N?‡xT?‘ý=ÁÇ?T½‹?›í+?A3˜>‡ó<#Õ¾<÷–À>ë>k„Ñ?E0g?RÕT?.%´?’?e°?.hÅ?,Ò<>çIÙ>çì?_+?g >Xu¶=‰T€=8?IH4?ÝrÕ?¬!M>í•í>Ê̘;¦“¹>cÐo>Nܵ?k&˜?t}??­Ð?kŠ?«FÕ?è–Ú?©þ±?iíÒ?o›?qÜ?m˜[?tï‹?uM“?u¤¾?`=“>öM>Ýù,;:7À>X‰L>mðƒ>s"|>X.b? Cü?!Àv?%{=?ö(?®º3?Æéq?j4˜?"E´?mÏò?uÆ@‚à@63}?Ù3i?{К?.B>°ª?«æ?MÌä?+J>üôN?Be ?i+?‹ò^?¢Bˆ?¤ð$?§˜ï?¡?ØZ?Ž^¦?‹äO?ÐaI@,!)?þŸ¡>ÿ0?|æ{?÷.ë?»ßï?¼Z?]y®?¦"M?ˆïy?#¥O?dVQ?Ä°Ì?³Œ?oŵ?i™?Bx?1–>ÑÆ…?–º?€]“?€fz?€o ?yì!?j4“?7‹g=O‰û=7!§=¬j> +vê?°5?Žb8@<ã£@q?L=ø?jXµ?¯Œ?«ËR?®ÿ¯?©õ"?”0g?“ܬ?ùl?y0O?6èë?„ý•@ è?ñÖ?Á¢¶?É°2?Úêô?×oŸ?âß•?ÌÆí?|"}?\6é>ú?E|©?ÁÝó?žÔ´?±?Qº?¡³d?”ù?Sc?wÎ?g]t?<8ƒ>Š ?ùË?šDÛ?„$r?PkM?†«{?Å$)?²\‚?y1?Uoã?J?Rè?´ÂU?Ž'š?Ü×>ªè=¶ž >ö’T?–H@0³@_6‡@çî? ¬?²»•@,¹?å0 ?«ž?!J?G?B„G?>Ù?sU?›a?a—²?Å>ÐyÌ>…HJ>ŽŽ>’ü>½—Š?×v?y¦¥?¼Q?~+N?ã¸?yÿ?B??,l]?CcB?G³q?W†=?vý? ´4>¿l.>“¤ >bÊ^>÷?û>ÿ¢y>ßÄ>¯lf>¦Z?FÓÙ?‚.É?‹Ï›?—'Y?®´?¹Œ?B]n>죆?aS?ƒì©?Ýš&?úÎ7?Љ¤?Ã…@~O#>%£n>¥ó×>È\ÿ?£?½S?‹äJ?‚–Ý?‚š:?‚ :?Wû2?Wlx?½-ž?Ä?oüî?XÊ]?¤öÊ? åç?Ë@Š?ÊZâ?þv©?þD£?…e‚?…£”?9?8‡$@öK@¿?i®?€Oi?ν?½”]?€lA?”¾®@º@È?éÿé?»œˆ?Pã?^ÃŽ?Âgd?“¡¡?Fs?" ß?d#?™ J?ß¿-?ê[á?õP¹?±é†?Iw>¥Çá<Ïèi>—?³?‚œ?!¾g?J´±?‹¥?ï¦?•4$?•_?£ ó?®ù?¿d”?ÅŒR?ƒGx?K'É@—š@#>?–Ç2?Q#Z>ò†>¸T?š¢:?©h²?¤dÝ?¨Ó?†Ç\?ƒô–?üo/@ô?„Š?‡Ÿ,?ÃA ?ÄC×@m@ +”?õcã?Ö?:»Ù?<'Ú?'ñ[?\Õ¡?°&î?«Û^?žíJ?§…Ï?Æ^§?„Ü<>‹~>ë®7?"1 ?Më°?„U…?X/ø?)yy?Ù9#@"ÄÝ?®îQ?þ? þ•?lB? ÷9?Æ«W?“á?-ƒ?´®î?¿3ù@þ1@òÂ?z=ˆ?dƇ?„@ï?„PŠ?ÒÆ?œ?¹í˜?¶ç?T´?Zö_?Ÿš‚?‰¾?Õ(?_9Û?Æëû?â7è@v@’ @*Ô_@,“?ÐÅ @™@ I÷@æ?ÆþÐ?4Û>É÷ª?4A^?T$£?XD?þ?¬e?Ÿµ?¶F[?¿ûÕ?¾+¨?~ÿ?]î0?Ãvæ?Å¥@Ç@•’@FþŽ@CÄ?Üv"?Ðsì?µU]?¸þ´?ºN?Þ2I@MÊ@(¯??ZA@1B?©çÏ?“r@5!‘@GYL@ai¨@"G&?ÆÔ?ŒÍë?1ž¶?Ù32@@#g?êwe?Ñ)à?Æ·Ê?•² ?„tÜ?„rÆ?„p°?€P·?r‰@bû}@€"@T@Tþ?¾?¼‰¬?Év`?Çjy?Æs?¸˜;?ò·?q‘ª@ãö@~?ù4?Ð!‰?D2?Y¿?d#Ô?I|?þ?™×a@®J?äì#?Œ{5?œùh?­£¥?ЬZ?í½õ?ÖkÍ?ÅÞ#@0Fn@lA"@U*?Šb)@F@?o…?p-„=¾ü>õë’?!‰n?ÊÕ¥?õ8S?‡gº?fŒ?‘ßÌ?˜wt?fe?U²@ ÷?@gÈ@+ð@m?â­?ß«¨?¼P6?°Èõ?«Fð?®ö@AÒ?÷T?ƒ4™?u\Ê?Ï?9ž$?Æft?¸±Á?‰Í¸?ºÕ5@'´m@ P^?lÆV?|J?í5?@Å?˜Éu?–áé?2?¡öE?¥®?ÉS@¤à?þË™?ûf@ +A(@ÜÞ@³¾@-’?úú?¸|¦?þüÌ@"ê@0ÆR@@Çs?ýs>?‰*%?‘C–?š¬‰?›‘v?›Þ ?dÅ?%9b?“V?Äñó?üA€@kK?ãnc?ÁlŒ?_–>â¢á?j¾°?=[?[-?”\Ü?M¼ñ? GL@'ŸS@pÈL?¹š+>MŠ!?´­ô@PH?«'?‡/ø?ñ7\@ @&ñ@9?tÀ§?/?Zºè??»^?Û²,?´5‰?ž+¶@ÎÔ@--:?Ãth?€»}?—†l?x&?Ðœ¥?îS ?Õ¬?Å5B?ïÒþ@õ?ÓË?´‰@#6@Dîµ?í +? `;?©ù‰?«3?žˆ?šBb@x"@PhB@ŒA?›”Ÿ?µÊ ?Ãjp?ÌÞg?ÜÕ(@c@ðŒ?탛?›Ù=?‰vÆ?)@?CR,?Oë?ªp@ È @Iõ@"ÁÍ@B@+?êŠB?°g¥?É>¨?ä/?°ñÊ?EQ‰?7?æÜ‹?û0k@—S@].@1ÚÐ@¯Ÿ?D”?(=µ? m÷?on @5¢ó@$.I?´;?²Ýe?½&?¼7r?©´?«›Ä@™€@Wº?{‘?ƒ9P?6s‡?,ö¥?í|Ö?ò©?ˆÑ*?`zJ?ãŠR?û’?ψÌ?¾Û‰?ëzK?ûE±@·?@z@Ê8@,-i@G??ééÞ@"ei@E¸É@"yò?þ ?÷ê²?ñÑ?Ç-x?z=?¿ìƒ@#'¹@‘Ê?ùÀg?ûMÐ?úו?ÿH~@§@Uì?µ¿…?ÈE/@¬+?ú]ö@þ±ˆ?,?µ'?_f?urp?ó3@F?ÖR?‘ÚÍ?Îü?û.‹?š>‘ò>Î`d?Úô?`æ]?ÿìü?öÿ‰?ÁHÕ?¼}°@†¨ø@€Ò @!m'@"ê@*(@3 @ö,@9#?Áö ?n]‘?u]²?‰¨?Xüý>»fG>°žl>òa>ùì&?;ä?‚?çë?àçÝ?‰Óh?‡æÑ?§ÔK?Á…:?á­?ïb?Ò¤?À¶´@ Eµ@9Ì@!’ +?ܲ‚?´Òé=u‘¡> ?¸]?»Ÿ?Ì +š?ÁÃ?è}Œ?ç?–ë3?nÔJ?ºº?î™(?Ôîò?²À’?Ì4A@ @Ë;?±.©?´U>?Cð? ±»>‹Î>Ï?àŽ8@!Ö?ÓÝb?—z–?¶*?ÖMÙ?ç6@@®J@¼.@/‰@0à÷?·ÉL?°Ä“?n¼ƒ?K…€?xyE?jý?Ê@Rœ@ ¢ê@X8@³?ÉC?Ôó”?ç ?çèŠ?¼v:?·èê@Ö0@ƒø?á•Ò?–}Y?£Œ?Á1 ?Ág@ "@ â?,€?›P?•K´?«wœ?œre?¡–â?¿ ³?ÔkÇ?Ìë%?È­€?Ò1c?‰'Ø?„Î>Ê°B>HW(?›<Í?ål7?”¾v?ò×?qùË?Ë‚¾?³We?“[„?Žé¢@@@³@s?Ï£å?nd@?·Ü@Ñ@c?ƒ¿r?ˆC ?ò.Œ@Ây?·`²?š…ï? X=‹-?G¢ñ@3¥?÷^°>Á+*>®S@«0@ ±P?x0?lå?T7Â?ì§?—bÖ?¼v7?®öì?¨íñ?¤ Ø?Öu;?ÓÇŽ?Ç H?È›ß?»ZK?›&«?jq­?@)?Œš@ËM@xN?£0?ž??t¥Œ?fÌë?fäÍ?g¿?g$«?g>­?}?ð?‰•î?ßd?ÿr@ú½?û @(Ã@#˜æ@i —@†3@+mi?f¹N?²{@ér@Âv?ÖAv?Ðë7@ _ã@»Ò@‚@)¹ª@"?îrt?î%?ì¯|?î6‹?â±r@ &@\fM@F£@C@ãm@1™@%Ó.=©þÍ>EÀ?Ï:?íº÷?õh;?× ,?ê?ón)?T̼?.Ù?Ťl@x—?áuØ?Ù^#?£Z×?wÀÎ?,Ä>øùG?ÌR?.B¸?ªÄD?Ï©W?‡>Î…ó=ÖÂ~?8õ1?€|Ò?„3i?ŽG®?õí@@œ >àF»?5f{?iþ ? F ?K!?¸ºG?©”‰?…†:?Xd«>¬Ü±>™š>:\è>«±¥?¥>©T>ÈÐi? +…?¦,?JR™?{Ö>‘l> ï‚?—òá?}'>é¦û>ƒ]J=«>ë`É>¥mÊ?(?`%?¢ÒÕ?ßØ>¾.’? ãi>FD>>\–?(®?Eÿ]?CXˆ??l +>à‡¶=Éð>çe>èc>èŸ2>éc>ã4š>×»G> Ü<>LÐ>öØ^?#½?Cùˆ?62„?’á>ëã²>}¹0>‰ÄÒ?¡\î?³ôÃ?ÞŽ"?ñóþ?ÂËü?¬0 ?_¶ù?Ë…>öT·>ö¨Ì?„-?é6É?£Òñ>3&@?äd?ñÉc?ÊöÁ>Ÿ†>•)Â>ŠÊÁ>ƒvé?6Ö5?2³>\Mö>-µy??6â?Xb?¿ïV?ØI?àÉ?è*|@(ÞP@;±?¤:2?(D†?fgÔ?{ÇÍ?]Øþ?A†i?›K9?ÀöÞ?ŒBÌ?JÎo?4šm?5oê?ãY?šÃ7?Œ<³?}àŸ?‰=%?›¦? 3å?¥_Ê?‚|]?¬L?œ>þôN>£;E=¤1À?ùc@,­?õ`ø?2vl?I*¸?\k0?G)?-rœ?nZ¬?¬ý+?…?-¯?î¿?K·9?…õ?À¼É?¨Ø?€h;?R<>Òz>ñWb? ô?Rg‹?Àçè?šÒ?¨Â?V–â?Ù«3?ÄÇj?€Ä8?Qc§>×$r?"@ ?€Ú9?sƒ?J“2?Zr«?€‰Ç?†?œ;l?¹Ný@?îTt?Á•§?Ö«Ù@€c?Ãyä=‚ï{>R»? +N?Œo?.á?UÍÞ?ÁÕÑ?ÎWh?áRÊ?Àèÿ?‘Š?Z^¥>£?#9r?¼B?a?X%?^x»?ÆB§?ÁP>œ_a>륳?+b;?;Æ'?b'q?4a1>Óã¬? K?,xã?O‡¯?†ª?œØ?»ú?¸‡´?»Vg?Ѳñ?ü&T?š-È>áê?b`¨?ë¾ä?³”`?Pço? ™>íÄ%?]Ê? J.?¡þ˜?¨v?UÍ->­°?Ìþ??ù?…A}?©bˆ?^Œç>âæ.>ëÙ%>ôÉT?Gï?€¬¬?|Û’?xo;?3rH?ëæ?£ŸÑ?æÊ?‚¿?ùí>Ðní>¦ZÏ>ÿƒ?½Q?8;?Dº?ˆQ1?ž|c? E>@Ü? ‘ü?]x>»dR=óó¢??®W?‚8ª>Â=d=ÐG'?•Ýg?Å’+?Fo=?ÌÒ?×-ó?ý™o@Jóü@^q?³j¥?e@8>êF>´Uã?‰?# ¿>à~¡>æU?uÏã?‚’h?Nšè?M’L?h?`°ù?Óyº?×;*@ +>U@ +%@ß@bÞ?ì+?íÚî?tõi?vO?þÉ?á&?{Î?…—^?Ö÷«?Ç•‚??=¡?ÕÔ?€@#`B@»c?·î4?º«?¼]f?©Ô‡?7¡§?™6|@JÏ?óÄç?/pV?+5Ë?&ö ?.ës?9«í?|F?¨­k?Æ·?÷•ê?ÀØ?‚FÂ?Ù?úßí@5 @0”ž?á!(??¹„>†Ro>—Sã>¨V‚?s^#?œ÷ø?‹?ƒ¸a?äé0@w?Uñî?ɼ?G_?Xlû?õnÓ@Ü4?c¯p?@z?Ž¡ó?Žæ’?Ť‘?ÃrÊ?ƒú‰?‰-g?Æ*?ÆhL?ÊŸi?Ì¿Ø?ÎåØ?¿Ó?n0…?Q?$H?PPÉ?Æ@Å?Î'}?à ƒ?»"¾?|5|?3Ç>"?!?Ä?c{½?*ï +?ŸÝM?Ñ?«0?Œé*?”È?™Ìñ?,ÞT>îï ?Ÿˆ?ÄjF>°Òj=)áˆ?@²? €>Çá„>ß?ÕÓI?ÚÍ?-<¡?+0??ˆ;? ý?„Œ/?‡ß ?¢Üó?µíÔ@‘û?Ï_ó>ïœ?Þá?Ûÿ ?Ùàÿ?­Vs?Nse?¬Ì[@Ÿ?ñ¸W?ÓI?Éu$?ÅÍ?vf>ý=?\?¦.?”?s?»gº?¯W¯?§H’?;*Ë?!ó@zå@Í?þ.?w{Þ@-Ño@6xž?bcÿ?fò@¥ˆ@ úÄ@Ë^@!+?ÍÁ¯?Üj^@*ü2@‡=?+?™?^£í?ÁŽw?ˆz©=/<à³@>¥€?Vû­?Èë+@hE?áv?•mÐ?/r­>©Õç?4\å?ªÆ@4©@(Ï×@8X@R/?ªi¯?„pä?Áæ?Ê8ê?ÈÁß?Ѓ?È8V?Æ‘?ƈÚ?ƃl?&@û?)T®@‚ž@@– +?ûÏ­?ºÇ?¼Q¾?Ú±î?Рž?¡VŽ?º-?ë|?¾)5?Yy}?ûU>^T©?“’H@%?äóz?>Ê£?_œß?ƒùÙ?ÞÆx@ªœ@ù²?ÕéJ?»_k?®“5?³k?·nÖ?ó=+ä–?êE_@·?Ùãë?·Ô¾?ÁõÎ?!_Ì?|)À?Ð. @ ò?ã?†¡–@*©@@QŒ\@"@ D©? Æ©?(Y­?ëú¬@.Y¬@gÜ?»ÑG?žÐ!?z<€?z(t?zi?‡A²?•›?°¤?ù¼¼@ +»@X;«@6Nô?'ÆS?„p@=âœ@:ø#@uËü@o”z@B¦¯@?–Â@a¹ª@kfá@*ž@g@²?ø4@î@(û?ì´¥?¹á2@Íï@Ñu@…Ö?ñV@èQ@!@çê@&¥ê@ ù/? OÌ?žŠ?™‹›?Ï-k@‡Í5@‡9@R3Í@Xgú@¥?þ“Ô?wå?lì‰?«è•?¯éz@'õB@ ?ïr?1ü+?Œvô?¦O@ ì¨@Â@Ø—@]e?ûB@ÇA?Íä7?Íq@4y¶@B©¿@E?ê@AMV?ï*Ã?˜ïÁ?Wø£>ò‰U?X©?µ¿?¢¹ ?O`?e ³?ñßF?ê·?º?ˆ?½¡"?ª?r?¥‡ >­Ö¨>34å?¸fÂ?ò:Ÿ?Ç[l?§¾ ?«²?¾5?¼t­?õæ?˜ñ+?³êN?¼g¶@%µ@ yJ?ð˜^?ïHô?Ýq¨?à°z?€° ?3Z†?¡s?Ø4‰?Øõ2?Шä?´‡Ø?}-%?fŒæ>üA?²?Øi?Í ?ŽQ?uáåôÊ?ˆ¶¿@È—@çÞ?Qâù?Ho,?»¸-?Ó„¨?nfÎ?Œá?tl¾?¬\g?Þeq@#\m@Â?¬fú?¬j0?º$”?¿ƒø?Êú?É`?ó¾Ú@ªÆ?ËFY>‰o\>ìêQ?çmÀ?샠@Vô@I +?Š©,?fÎj?fäÒ?g?2û?‰9ù@˜@õÛ@Œ3î?Þ{_?ÙLE?Åv½?Ù„›?·†m? +©@.•a@|tN@$úÅ>ü?G­?Ãî?×ú¤@Ø…@ J@£Õ@Lñ?O¾œ>¸á³@Z @‘x”@'o?¾F?¨]B?hÈ@&Ž@Kmø@;á¬?î¿?ÝÊÀ?v–­?’6‰?ÀÑ?¨å?âœ?Ò{ +@¹ý@(„1@U~?óv?O–O>ôv?ú o@Ï|?´8t?v8?w,¿?wÂP?5ÉÌ?Í?BÙ‰?g-?¶‰?ûÚ?¯–$?eâ ?`¬f?FßÙ?ºë?ü»-?ÊQ?±ç?Î!‰?à ’?,ÃG>£?=êºÚ=0Å4?¿Î?³>{?”Ln?`?DAN?ec©?†‹¸?¸œù@_n?¸Õ?|©Ø? K>¨.™>Œä‹>ŽF‘<ŸWl<(¿J>˜Ä%>ßÆý>½Èß>©5?ú;>Ò¾a=Å­?½ñ7@ +Ìi>\Öÿ>aÄ?Ž¶1?³…Ç?n >Æ7 ;~Ü=wq´>xLÎ>cûÌ>OI>;¸>ðÜ?êæ>¸Ã=Ðs~>5¡í>ç† +>è(->è¾->éZ–>éò>êƒO> Þ>>nz?!;‡?Ñu>ÔÅv>Ô–â>ê ‰>ñ ?ÁS?š®?Y1?r¹ð?b%x?bR¦>ܱY;Øè“>íœ?†¢õ?‘Ø9?–€?‡“?€` ?x¢í>öÿ<>÷L?>÷›Ž>ôøÚ?¨?|Ä?-¹H?'¼>´T>·× >Âv}>Íœ>ô§·>ú€½?ùû0@þ?}ôî>û`'?V?{ÊÁ?ŸõB?®uÝ?‡È_?unþ?O0ß?0‡×>›žê? y2?†È?’E?•ßº?gñ?"Òû?,nñ?2tã?Pj?~¯?B9Í>ô!Ÿ>üPm>õ\B?¦2?J¬Š?eÆø?fˆõ?mcw?Ì>?™Ëu?¼J)?–w?\ˆs?z?~G,?JØ??~?€Ä?ÿÕÂ?ÑÒ9?_NL?‹J=½A>Ô›¿?‡sc?˜#Ö?¾Ö-?•of?¥¡?/îy?ˆ§|?FÙ§>Lú>?,Ž`?ºò­?¾Êk?Ô® ?ÂwG?¦'?•ä¹?€Á|?ÍÓÑ@%“n@ -n?Ô|?Éòâ?¯‘%?Š.?Ð?¦D?#R?7¶#?"?˜ãê?¿4P?‘‡?+±?)ç?Al$?„¡B?²}´?¢ˆ×?…´Î?oàb?dHK?%A}>k; +>±¨?7Ñ>Úûã>O÷Ò?aN?–Ƕ?©6ú?¶÷?cÓÐ>’ ?r}ó?óÆí?ö?*?ùú$?Ç©3?ƒƒd?ØŒ@]G?°ñ >…mC>'N—>Pei>ò€ì?Ÿûb?ùÝ ?²qÚ?Uat?¤ÝÀ?á’€?®éU?±¶?GŒ{?zÖ>™;º> ÐK>ˆÁ9>Ï ¼>mñµ=ŠÞ=Mé=¢ñ?_ùù?Á¬g?%—ê=¥È ?Ù @*Ѩ?·é>àÜR?‡v?÷z>’ìý>7=„?ìˆDÃ@"Š@c?‚äD?wJ7?%¾ò?9($?kø„?aæ·?@ð¨?kA4?ÙBI?ÀEÅ?6¿E?Tí?ˆzf?s(?NU??nYŸ?Žî?w*ö?+Ào?D5Ü?aµ‡?•_?Äþ¢@¼y@,;Q?á&¡?%|?¢?yd?ÑH¶@"¤d?áŸè?¢>à?øí¾@D?ÉK•?”Úö?.Ÿ>µ£?Š³?¬Ö‘?8˜?ƒ·‰?ƒ»h?ƒÀl?™bˆ?—H ?F6t?4IÜ?âÏ•?ó¸~?·§,?¶"?¸:0?º^R?¼¨?ºÿ?s>š?„¥Ú?Ä"|?ØA›@!$¨@ ¾?Æ‚?ù°?¹ÅM?¥ç£?fÿÙ?‹ån?ÆA?Õ~?ïGÚ?© G?96?"¸S?EJ"?A(?<Ú_? ý>Ài+?ÅOê@à2@(’u@/+!@ +¢%?òâ?3d>*Uþ?Q:™?„kÂ?¹0¦?À›S?òÆÒ?ö!®>>‚?Èsã?ÕFö>Ý(>)Ñ?‡Z?’>Ë>®?B4?©,r?¬ŒQ?Èfh?±S?(®§?yJO?ñT—?ú¸˜@šS?½!>õ^›?Xö?è +^@ mr@ý{?âü³?Œß=Tçà>)j3>ƒ3m?¦?AÐ>ï°ø>»S¯?‡9k?¡u¬?d:I?Q*Y?ó†˜@ š>Žm>™KT?ýý ?ïQÏ?„¢&?|2@!U@½“?„ži?—2i?Ñ4¤?¼;?Š“f?³ø+@•·?¡÷?WD—?òLŠ@u·@:ã?×ÂÒ?%¥?5Hô?6n?¨Üä?ΉÜ@ ¥@!Á[@#ìÍ@&p?øìÙ?Ù,/@:÷¨@IZ?“ +À?R)?®g“?·fW?­?±À?½æý?À|?Â=N?ÑÎÍ@$ï%@ëü?‰kŒ?¬Ò@°ô?ý…4? »?wiÉ?êòY?ø%õ@û¾?Ýï÷?›rÉ?Þ½@%z?ðò‘?„·?lù?TÔi?¿0ó@îÆ?ò€´?ætH?‚à?Û]?Ö?NH?[ ?€|á?³•R?É+j?Ç|?ņx@Ñ!@Ñ ?À2Û?¦ô?–Áä?—Bù?Ã?:ç?½š?—Ö|>þ‘U? +ÓÌ?ãKã?ã‹ë@ž`@èØ?Ú)?×À=?Õp?À¾“?l"?)¯9?Ì)Í?¾I¢?‹ÇD?£¤å@”@ŸX?øFs@o@'×@@¤æ?bÒJ?´~\@d @ ,? ¦ô?°¾z?Ïn»?î)â@B?ál5?kk*?ª3?ïs„?ñ¶û?óüý@ Su@á¢@•È@`»?·¢p?åâ@kŠ@}(J@HîÈ@&73?Â2¸?IE?pÄ(?‚í?äæî@«E?î j?Âо?«› +? •b?´Ú3?¶>ó?˜–¿?‘l?–0Ç?šðc?˜6?[è@µ@.Ž@7éÇ@<Ú\?nüÃ<¿è¨?Œ½Ñ?ÆÓÓ?¾X¿?¸1?¬¨?¤g?Š&—?[?Ûá´?ù<[?Ï­ã?Áe@ˆØ@.+@4„c@;k?í>¢:?¨×?â¯l?Ã2z?¶‹õ?–Ÿ©?…Ð?ÚYÉ@?…Ì?B?¢ï?Ê%?æbP?ñ:4?šª{?W»}?pb±?€a?¨nP?Àr?•$/?c™£?Ä;¥?ÿ²"?ó±ò?íb@ø@2‘G?òêþ?Bå?Ÿª?·x ?žtÅ?…d@„@nu @+y>?Ìcb?€ªø>•#x?R&?¾Â?¨ùB?„Qq?Œ”?¦ßÜ?³ŠÛ?¾iÆ?·°?£™z?™åF?‹Ê•?„'…?n0z?™Z @Ûˆ?ñóC?ÁTb?Üê5@+á)@|F?½—X?ÍAx@3’–@-—œ?½[o?¼¬Š?œì$?Ÿ§ò?ª“?žïB?ºy•?¼óä?Ùq[?â‡?£m>m@`è‰@‹Ò©@ ¶Â?¸.2?Ðv?ãþ.@Zo@,™4?ùzÚ?ºôé@(!õ@_œ‘@+‰Ÿ?÷¡£?ÇÛP?•?„?‰¸l?zˆ?ºr@´F@éC?ß‚?αÑ?|9?›\?鮸?è/ @ Jâ@@*@±O@2€–@5iŒ@ã„@]´@aº¼@lH„@£—?ø8u?ßÇ ?Ò:Ž?Æ/£?¿ä`@%Nª@W7@dø@jÚÞ@˜H>øòA?®_Z@#¿&@ˆ?Þ/?ÉÀZ?š·Å?à ”@3I@31@1³@ðÒ@+s­@& v>°(Î=ŽuC?Î œ?ñmÇ?Fˆ?¶u@Ðó@2¶ž@3ª?ëú?ÎF7?·—í?Âjî?Ð4?Æ„V?·G‰?½»?ÎR´?¿›~?}í ?~ÊG@‹d@Òg@Xéd@V‡P?ÇX†?ª1á@ê!@|;?ìØè?³Wg?h©>òâ?L ??¦h?Ò2‚@ k’@£k?í*Ì?틸?µ2W?µ?ã4?á¡Ò?‹–?aõU?Åèh?ïÈ©?â{ê?Ùg?Æ6ý?žf¹?ÚÃ8@4@ 0N?¸™?¨…T?Õ–?; v>Çyn>ût?=˜0?Sj~?qÉŸ?mÿ?¥a?È÷Ø?ÓZš?ïI7?å³æ?²N?Ø@¥@NGM@D—S@*Åä@&ðP?Äš?±çµ?k…p?8x¨?ŒÙó?±?Â/ï?ÚÕõ?ÄWÉ?€l?„H–?µqù?³’*?os,?k¥l? ùy?¹_?Ì<?Ã>!?³¨?°7e?©/M?ÒE?¹nŠ@¨8@Žç?üÛ>õŠC?Ä?×{?!> k˜?";?i{Ÿ?XFÕ?8jë?UÐ1?®ÇÊ?®±ß?„? ö?–"á?²…j?a¬Ø? 3Ë?‚×=?Øâ?÷‹Í@Ò@3‰?÷×>û#&?‰ÔÀ?Ÿ{‹?Ð{n?åá?ïF„@á^@ +gš?ûûã?íÞ?Äüý?Ò1þ@ņ?ëÆ®?°6y?¤žÞ?âlA@å‹@=?@ðê@]Ú?¬£Æ?¬™È?È>æ ‘?kó§?v?Qu1?,7y?¸PÃ@G¦—@6X?ÐAÅ?ÆÏÄ?š*ý?“]+?¹·×?Ã?ƒ?´üî?¬[ ?œÆ€?t^>?|hÑ?¬e_?¬eÙ?Õr'?Ñùê?àÕ?æ +k?ên§?᩾?ÓOÀ?Öá1?ì¸à@*@ ,€@' ß@$¤?ï U?Ï#i?¿´ñ?°8Õ?¶¼¿?Ó=@ZX@K<@N¶Ö@#ƒv@F¡?|ýß?h<æ?’¢6?©î ?ËèÅ?Ì´J@e@Jg§@>Cû@6’ @R>?·¸©?ÈÛœ?É-î?øy?õ B@@d?@…ao@®?±…K?'£?}+.?¤bM?ýÙ:@ë¹?îÃ?øsI@ÀÚ@ +h|?ðS£?ð¾d?è+Ú?ôÊo?ÁáÂ?©Ê.?ôy?úšØ?Á?§‹&?¤œ?¥Üƒ?s—7??|´? Ï?˜ÊÔ?ƒ£ì?xç²?2Âa?-Ê?O ,?‰P?Š$6?ŒçM?®ÔÜ?Ôtt?%zÎ=•“€?SîK?‘W±?·<‚?ÂF'?¢pý?•,$>üÊ>ö°„?…_?‡|Ž?'Hx?lí±?Éõ*?‘Í“?Cð‚?3,?š¸?æ–? ¾?”ÈÐ?•…½>…He>Ž[7>ú>¼å¿? + +¾? )??Ç>‚œÖ>Æ?œË}?_¡ZD=Ý&?ÔÞc@Æc?v)Ç>­Kä?-Úº?)*T>åùÛ>ãª9? +(?öõ? &Õ>æ\5>çÄ>ç >æŠ>àpM>èþS>ê Ã>ê™Ù>Òžð>À“õ?Ú?,0?ª«>íÏI>Ó:>ƒ2>qw >\º>D§u>—·>¡ðË?Bü?TÓ7?‰vª?Œ>ÐP =èÍ>™™©>ðO>ö[a? ->ÓÜŠ>ŠÕÒ?H?—â?e(w>1gr>{à[>÷œ@>ú­ø>ê >à9?xºE?yŸ>Òõ>‚¢2>[×3>2yL?>ÝZ?9Œ? #£>þé¾=ñÒü= +hz?A?{Á»?Dbì?8Î@?)H>ü†|?3ˆ$?JÔ^>îMG>„ƒ:>}´˜>H¯?y®%?¾^/?|7?Z=/?©tQ?ØŠ?£Ñ?nö=?˜¢=2òƒ>y?>ÿÁ?5‘k?pš(?tÄ•cå>Þ†Ñ?)7)?=ÄÒ?D¡?g*þ?ˆnÂ?™f²?ÇâÓ?«:?€Ž*?€D©?{‘ô?ª,Ô?ñðe?¼1ö?OÚ ´?mµ×?”êu?ÁÖä?­âj?”óê?„jÀ?QÑ"?Wh?UÉ–? %>wùÇ>æS?6'?ˆVs?Âÿ@}@ON@„ˆ? D?žâ?ræñ?>š?vÖ@®@Žë@!·Æ?2Œæ?"u>ØY›>ÏFŠ>Æ6Í>7#?MÒq?Êwj? sM?tؘ?¢%}?ÄG¹?3;?Bÿ?‚s€?¬U?HYì>»/Z>šû<>Y‹s?h'?8›K?C%? .:?,F?|.?N’Š?põä?U?¥?]·>©àª>«(þ?ò>Í¥ >ª^.>äÔv?2?\¢«?‚z?ÜE?÷¸Õ?“Ðë?p ?®¦–?ÆAÆ?†«ø?cºË?‰´Þ?ŽŠ?·cX?ÃU…?6mk?@?¬¼?Áħ>¨?>j^?V»§33>–1w?¯ck?Áf>?å¼?è8T?r©M?c­ß?« ¾?¶Ö›@¬ú?ü£¯?~‡?!Ó=?‚¿ƒ?‚{?zôË?â0?ƒ^?¢Ú@Ó…@€@g?õºÀ?ÂÎ?L¯®?³Í?š¼?,õ¢?$Ÿ•?É?:ýä? Ÿ"?ƒZ>þ;‡>öjÄ?0•? #Y? ©í? ç?CŒ?x±5?Äø©?’¤?-q¼?ªæ@?‰?žø? †É?S¸ò?‹îy?­sì?¾.ñ?òS@ 55?Þú‹?Å^Ø?Š %?_™&?¯!"?Å{ù?Ðä?Îè?­ŠÂ?¥ ?¨¡ª?°R ?Ñÿ;?ÎT‡?Å‹q?ÅÂ5?CÁÚ?FÁž?kAÔ?pÌ‘?ƒï/?v†Œ>9]é>,< ?? +M?cõ?O¢>4Å? ?Æ#(?£§s?$%?tª*?Æ;?¾U ?µ*á?—7?Nñ•?„ q?¥`Ë?“‰ú?„C›?¡ÏŠ?µ¥"?±i×?­0t?°sx?¶L¤?ŠÈ?pÍo?²aT?Æ”S?›X¬?‹^‚?¹š?Æ•»@½¯@"¾3>GF?.ãi?@YB?•öö?Š:”?‚b?¡“?xøe?ƒ)j?ÆÐÀ?±`g?G9?]ã†?^?ª$â?ßX»?ÕMa?Ìx?ák„?ù9Ã?År?y“Ê?¢¯p?ÎZK@G·@$0Õ@L¿û@e{Å?œ!¼?#´÷?`¾?êÚ?©Ëà?¥ƒ§?¡=4?À?¢3?£¯°?«ƒ|@ ‘`@ßÌ?ƒ6]?ŠKÙ@%Ç@Ád?YŒW?džÍ?„›y?„˜ç?„™]?™˜Ô?ÝÓ?Ùj‡?ÀD“?Ùõ7@kÁ?ìœÎ?¾Ý´?ùP©@"1±@ `6?è·å?Pì?‚Å?T=?„œ?“nì?£z/?µ:5?½¿ž?ö¯Ù@o˜@ö@§D@GËš@Wƾ?õÜã?Ú²Q?š¸¬?”Ï?dö?q?„b?ŠÕÞ?„Hø?šáy@$‚·@Â? Y?3*?Ÿ q?§–K?«‹Ï?“k?K!q?‡1u?ÆK@ =ï@?CÑ@*žï@ƒY?ëAç?¢–@?c?l–{?ëKö@${?Ò®)?ƒß„?4ω?ÕL?i© ?Œ#?Ohÿ?"ÈÒ?¦„A?Å?”Я?‰T?È$ì?Ù¸"@2@×%@ Ô@»Y?Ž—$?|Â@é›?ý¹Î?Ô:Ê?Èÿg@Á¯@K©?Ò?Ü_#@9Šç@,Šš?õB{@Í1@1ÕÜ@+¢×@x@w@#ª@(Ù@BÑõ@'• ?ʨœ?°£8?oL?Á:@§)@2Ð@r?ðZ×?‹Mê?¬g‰?Ús ?âv½?ãRd?ÇV ?©?ÍT?ïê?ØGÆ?ä.?Îf¸?Þ…-?ØÉ?Ë|Ÿ?«8™?ŒJ]?©R"?̦e?Ð7%?ÐW–?ßíg?â1š?Ätu?²ò)?‚h(?Tüÿ?¾´¡?ê3f?½‰³?¤n¼?Î-;?êÅ.?±-Ì?‹øª?”=?‘¹?¹h4?ÔÏÒ?¶Þ6?¡;’?ÓâÁ?ñ‹8?Ϩ?À±¶@ á@#J?âšõ?Áǹ?ÁÁš?Á­û?×úø?Ûþ»?©2ä? HÁ?Õå?äø£@*ð„@B×I@Z\Ð@Zµ?ô7¡?ª(Ï?¥) ? Œ?ˆ™¬?€f?¹B1?Ì:*?ìJ?ÿDê@=Í@RsžÞê?EŠ¼?€’?‘Ö]?ž?ï“¢@Sˆ?úR?çøô?ÄWø?­›?Ô« ?òi?èï²?榿?]9N<¿Ð?IP·?¼›Ö@ ’@bÓÄ@=|÷@?ÇW*?5R%?º–ˆ@j±?ò”¦?›çw?[‘‹>ˆpÐ?$Ž?¦Y&?½Ëo?ë¥?ã͸?Ë|§?¦°?|?Š— @8ßR@) s?½ÍÊ?ÁGì?ש?ïé@(z@"\X@ØØ@Ð?½U´?»§¾?|H$?|:7@™3@JØ?Õ¼v?Ï•Ì?°[Ã?¥@|ü@#@r¾@ L@BÁ?÷3@@"—Ü@-Àú@i{U@™ì@W7»@;Íí@Sßo@hŸ9@ZŠ¹@I¦@v»?Óû?¶P1?…?êæD@G¢e@ ¯œ=ÚeR>Þû~?¼×?ºA3?À{?Ò/2@BF@/Ø?ºÀ?¼VÉ@Õò@ C‡?Õ„v?Û˜@e]@ƒ“@£9?ø/ +@CK@Í‹@cÇ?÷Ñl?‘ù*?®ä?Ó (@#ýÃ?®‚â?0®?Þky?Ð!E?¬ñr?­å•?™Äc?žç?ÞR?ëß@"ùH@!å@RÊû@\8r?ô«7?ïÐ?ÂW7?¼\R?§æ?˜UŽ?þÃ@;“@ ;„@5Q?ã<?·–±?ºEæ?Ãx?ɯš?Éiþ?×ùJ@ ¥@˜š?­a?³¨í?º "?ÀŸ{?Þœ¨?ðÂt?©ã?‘®Ö?ÿ2-@˜?ÆMÏ?œó?”ó7?}q/?…ó ?—|€?|Ñj?2? ªB?[y?)W?µ3ö?µÓ>Ù¿9>üáƒ?Æ›9?Ú6“?¥ÑÛ?–3F?© R@1õl@.Ø@"=@"üÑ@£@ ¡Ê?©mu?¢ >Å–>¯J?ã›?ò76?’ËG?q› ?¢òŠ?Ã?¯áS?ƒ6ý?ƒöï?«©?¸Í?îðf?ö”¾?•Æú?¤Â³?±?±çî?†!f?lìs?©×´?Ê{Ÿ?ÆŽ[?£þ?Â-A?ÄIu?Ê +¾@°R@¼•?s$Ú?kŸæ?!W?Dz@ V@4¢Û@8[?ãœ3?³?G<'?‰|u@i£@$DÏ@ˆÓ@™ð?ðÐá?éæ(?ˆ‘§?!e:?“ma?Õ¨?¥R?$eC?=Z]?¾b ?º#?µçh?±¡3@1×@ Ý?ç±™?Á9?Ô!?÷ u@–©@!X@#àU?Ôb@?Øš?y«?4‹?’ÙÖ?¯â?³^6?·¬:?´_Ï?¬®Ó?Ã-Š@R?òjˆ@Q@brý?í”ã?‰æ|?xÉ9?l»=?‚ãÏ?qV?¤Ù©?ÓLÓ?ε™?Ì}?¶Ä?ñ¶X@â@xñ@ S,@!¸!@IÀ@?æÈ@ Õ¦@tŠ?±6?¬S?œ![?£ˆÛ?¶%â?¸Ë\?È­s?èŒG?ì“f@ þ@ª4@¬J@›C?“íä?vŸ?öÇ'@$-ª?ö·¹?f4Q?}úU?±«>?¼’?ÒÉÚ?â?«?ÞSû?åAO@ŽY@#¡‰?åUÒ?xÔÄ?©>£@³»@J\?þnÇ@¡¹?3¹½?*ýQ?Ÿp>è‘a?ö´ù@3/þ@J€@h³@)i?)Gb?œˆœ@$H1@d&@_â?ý\ï?œ>?ƒ¨î?v†ì?Ž `@1@ä@$Oª@*“@^À?²ˆÐ? Ç?îÁ¥?ïp?ñÄ?÷eE?ð\?ð•?g»÷?}'?ù 9@³«@(¼3@4Kl@{@’%?™ž?IÊ?‰Š)?ŒK«?¨â™?ЙP?Ó?wžá?q ?a_U?´S?¬Þ?F¹á>ü÷7>6ôô?~þã?´Ìk?‹„F?€¸ ?•<ƒ?¢kà?æZ?æÛ>•“w=¶p=gE>~—?cR ?Œbì@ÓA?¸Â>n¾õ?Å,>dxO=ÛÅ"?«t-?ΩZ? ‹?EÜ:?í…?›Ô®‡>ÉéN?¶l¯?£ù?"‹Ó?ÚÇ?2 ÷>è§F>­Ð>> +L›@¤í@)Á?¢ð6?Z>°Ž>ÒêÊ>蘈>€rñ>Š>?êÞ> +n[>qsB>µöf>Ù~?¶ >ØÔÂãj>„ã>j¤×>/|>+ã>îàù?d$?.{¾?!¾>0Ì’>´?4sñ?2*,?°Ø¦?Ζc?‰òE?dSÁ?žÂ?´Ø ?'á6=Of„?E¹?Ư»?˜9Ï??d•?Yvm?lƒè?5ŠÕ>]|>µ6]?x5Ó?m:#?à“?#tõ?.?8¹|?^yüƒý??0sm?@ô]?@äí?òï>à»]?‰& ?¾Zq?Lá_>¶"p?¹p@?¬½d?%?NÚz?‚Sí?=88>ÿh?Ù?*P?H¶¿?»?fo?Al?Žú)?zR ?P)?6ƒ??ÿ'??×]>Í%>ƒ2Ñ?/è?H„?žAƒ@! @H>H@'¶+?ò=e?ÉžÌ?ˆ +?ÒÝ@Ûå?Òöb?-_U?*¹4?Læ?–“?Àâ?Ûq?Õ®®?Æšæ?±f`?[¥™>|{b>ðÄ)?9(f??r7?S3ë?‡DJ?¦:?¨zÀ?³ªµ?ŒQ8?%¯Ç>ѽ=Õ L>÷†?‚vÆ?œKç?±ÖO?Ié£>ÓZ>s6>°N?8E?'çh?TÑœ?C[?Ÿã>?Áìq?„u?NŒ?@Û?U ?zk?Œ?ƒÞU?bK?’³¼?¨)¼?ŠÈ"?D¡O?–N>óŽÅ?DX§?‰q?‰#•?w–j?6Ir?…’?:W;?e„“?Nr?5Û£?†ðm?ªü?Z¤M?œé?%!?C[h?`>ÛÓÖ?%RD?U_Ý?¡>”G´? +w?K5›?³æ'?æ±?Ÿt6?næc?'YÆ?KÓ?W#"?Ù9?ËN¦?éÝý?+ò=© l> Ì?&Ï)?X'9?‡1º?ŽdM?žÀe?¤T$?ÓÛÖ?ð‚˜>övâ>€5Ï>¯~…>ô¹?'Ž?†?ç!?¬ÏJ?³L?*Ÿ??f?çÍ@¾>z?×øà?ñb?:±±?³ó?Vš?m¡>;á>6™h@%²?ÿ½„?®¢;?¦…'?£\?¥Âˆ?7F?<>¸[\>×¢@¬“?û3˜?‚´.?‚»!?‚¿"?y@.?OT?$ÿ?„j8?\.L>Ž?>É??™ˆ³?—$?n=¶?wù?“Â?¥f?Èç0?›Õñ?í?.–?ƒ_?a%?£‚|?“É÷?s¢Ï?¡&X?ܵ?–Ù?D¥?2´?ã¯Ì?Å?°?®ÆE?Á¸?Ëð\?Â^z?¿â°?l®Y?é«?œ?_…>Ë`D>«{l>©þ>³œ˜?\qî?ƒžŸ? ë? Ãd?Ù½?”øí?ÝŠ'?çª?c•?? ¥?é…X?ý&Ë?Èúo?ÅÀÒ>ëAÙ>ÖÕý?zâ,?o„W?™4ß?žûz?ô°?ßj›?U‡?Œœò@_@-´ó>ìxw?^¯?ýƒ?Ñ'M?irß?\=?R§?I„?3é$??`?ª0?‚Á?B!?m!x?„CÄ?¡[w?¼«X?ümI@Ø|?¶¿Ñ?„U?’8>ÖX +?£ùú?Æ‘r?í–?üx>Ÿc<£?&?“t‘?¥>ãÖ8=¸Ã >(Q?ƼT?ÃÀV?Ÿô?šœT?œª?—g¥?vú?’QM?ÈÄL?¥ÅŒ??N?w~?½Í{?›<?.II?|d?¶Kì?õ´Ð@!èÿ@ #3?ñ Q@(~@ƒ/?Þã˜?Ë/ü?\Jt>ó±¬?a-¡?„ @?GLx?¸ÃÌ?à?‹Îì? ¼]?ÆÚU?ÆÖœ?ÆÖb?®+?—š@ë@RŽÎ@ +6™?¨¼ë?ö}?„|·?“¹F?—Wž?X=?<€'?©õ ?Å)­?ú_ñ@Ë@Có@óË?ö%Ð?óû+@ëF@ÜÀ?]‹? xä?²Ï*?²–e?„G ?ƒîz?ƒ~?µ!ä@ùx@=  +@N*ü@JÇ[?úÓ?îK?Ñé ?ÖØ?ôý£?Ù‚=ÁÑ>›”p?‡“¼?°)p@î?æ y?¯Á?¯¯?¾Y_?¯§K?Rm?ÉÚð@Ö=?ÿ9j?ð3?Ø•s?ÅDð?¨ÁÉ?‚ˆÖ?±an?믤?Ûk?ß–?¯'!?Õ;?ÐW@•0@ä@ú7?ÒI©?ƒ†œ?ò2@‘w?°úL?B«?€!g?‘|?ÖU?óÏÁ?àCV?ÛÇT?³$R?ŸŠÛ?ŒX?º:?Çi˜Gp>S¾-?_M˜?ŽÐí?,Ì¥?±ä?ägß@Ã!@_1@ñ{@ˆc@óõ@h“ƒ@‰Õ:@v¥?×@ õ@¹v?»‹J?–ð6@ k@ Ú?µ·T?~·ô@G5û@~Œ?@2Ý„@ «–?· ?Ž—Í@@,?‚Cù>Ä5t?K‰?øÌ?æ•@CJ?ÅE??­÷Û?¸?ºBÝ?¿Ž?‚­E?!â²?5Œ`?.­¡@)B7@Œ$@Z+@&¬­@p@¦?÷ ?Ú›m?è¥@+]?ßæ×?¢#Ý?’üp?mÛ?·£ï@Ë@Ôc?ÑKI?â+@š?èH?0»?ŽJD? !?=ÿ?½Ï2?Ç÷»?ôž›?ï…Ò?æéÌ?ÿnx@@-@6¸E?ã¹9?Þ´Õ?žý1?œ.Û?†j²?Œ6?¸ùA?Ã#/@ Ñt@Þ?“3j?{’/@/(@8h?æ*[?À9)?ÍJ4?Ø·@Bº@j¯…@´H?å¦@@7*´@9A@=Íh@'ô@ [¸?ý–†?àå—?çjQ?ùá1?Üâí?˜Ì¯?©°5?÷;S@zÃ@PT¬@7yÂ?t?§›Š?º¾m?½ÁB@*.@›™?Âe?¹7‘?Ã-?x\Ö?Ò.3?åÎ?çWË?ÞÜ@Š4@-f@lÒó@™ ü@)|?Ž0µ?K[>Å÷{?Po?¹N?—?,Öt?bpw?¹7à?ÛP£@%»Å@[+@&˜@'£r?ž_Ÿ?”Æú?"E?6?§~?¸+†?¸)?¸Ã?ëÑ@‡?Ìw·?©nÝ?³‹?·©?’§÷?C6à?~qË?¾2?É—2?Î1?»™+?=³?—$?w'â?}±¢?äSl?çšt@!,@«ô@-üv@61Ç?Á,?2Í¥?›}Ù?Ü“A?ßå¡?ã<ß?àÞC?Íêc?Í\_?ñÁ?úMø@HGU@A9Ö?–Ž±?„ï?p§ë?;i?HcP?4k¢?¢¼=?ËrÇ?¬"?”b„?š(]?’F³?‘hÜ?°º.?¯æ¡?z`¬?€½æ?ȸ\?¾l³?磀?ùÙ¿? Ì?j²?hŒ$?n„~?Äô•@®?ÿ0 ?{ ÷?`p¹>ùâw?S?ª ?¦6Ù?ýʈ@Ñî?è_µ?×0«?à¦o?ì±}?ì/?ìt©?öÁÚ@ +{'@–Æ?¶¯+?µ@ œ9@kÎ?:²À>ëa?¬2?õ|c@„Ù@1 ?ͨã?Ù•?$ƒ‘?|é?w³?ëz?ì}œ?êÀ"?éÞC?›mT?i¡£?˜?Åy?Âþ”?£Já?¡¼P?Êè{?Óö?Îx?Þ”N@{.@Š´@!•r?»êÓ?é„}@;@œÖ?±CX?¶aE?ˆQW?Ü@Y¢@'ÍÀ@R¥m@a«¶@ ‚0?}ê?Iùs>æê?Dÿ@u´B@nÿ«@]’@>¬@ +n¯@ ¡q@ÚŽ@ ¯§?ìu?¢0¨?¢F?À7?ÄÀ¯?ÿ¨l@Kc@£È?ôÖ³?Æ ,?¦×´?«q&?¸Qo?Ö»•@Ÿ½@›?²À?‚„?ˆuí?rES? !Á?Α¾?ëCc@ ·Ò@ +jË?ìÒ ?ñ¹h?\?¦$¯?ÍU²?´×I?é]û@Îá?éë-?Š@Ù?nÛ?m Õ?{zÙ?Øä¥?ÓÞ~?꺗?æR(@ 5@%’‚@¡ì?¥š&?¼Èß?éJ ?áz€?Œ“H?—Zn?¢ED?’Â:>áoõ>ˆ¢?þ§ @CûØ@I™é@M?Â@&"£?‡Àí?—ùª@%úS@0¸Ÿ@@@ +@|?ç”?å¿P@L˜6@^SŒ@/s|@ @J@F9@ÿÍ?Ÿ4?¾¡±?ý½…?ÞIu?}Ô?ŽŠu?Ãç­?ÊhÎ>÷‡V>ñ¤¶?ªáÂ?µå @[?úM?Ì”Ñ?̉•?'Qö>¼Áù?NsZ?“I|?pg×?*§U?ú°?0»?ˆá?­ÖÓ?ôûÈ@kc?€“>§²>D?-?…&¿?ðÀó@gW?Føª? ¹œ?ä‘ò@ iz?,È?‚to>ò›g>ã\?-É@?;×ö?Y¢½?4 =ï¹Ý=b¤< ˆ>¢z·>Ó­x?RY?„@;>¡ú&>Ä*À>æÅp?ð?g®?Ýë?7 l?">øÛ>½b·?„ ˜>½þå=››M>y®>¸´?üŒ2@ ,¡?¢ö»?ä÷Q>ÂðÄ>êí&>leW>X9Ñ>Cñ>/—f?F ?P‰>q8>­¡‹?gÜ6?T‚â>în>çå®?¤N‘?^ö?$!ú? N>Ù>©a<>ðìë?ÿØ?j¨>îî\?Þw?9ë?=ÕL?#úx?±â?’ÀÞ?™‚‡>ŠÇ>£ÿÙ>ÿÒ >aDµ>´™^?B¥?:> Þ’>¿º˜?UŒ$?#H->œÚ@?¶w?žëZ>¾À>»;?™ß>ýã>ùÁ°>ú9Å? îÙ?æt?fëD?wáW?µº,?¼|ô?°ª3?©«1?¸mb?½Ç?4ý˜>ü{Œ>ü§b>üÖÐ?%ý·?:Öy?@ +ˆ?E7µ?²•?Õg˜?J« >TÖ?r$¥?±¹?‡Š?^š¢?™Ñ?¹)X?k5K>ÿ 4?A!#?pþ·?vÑXÝi?uJ@€¨?½bˆ?h@&?¾Þ?›?¹?G³?q¾Q?Ù ç@ ¤~?ªõ=¼œØ?C f?²… ?BÇ=À¨4=ç>D>åÆ?˜@!?ÞB?Õ„?caU?¢p?C÷?Hûñ?¿Ò>£>?z s?Ü>?º×t?0Æ?«Ù¼?˯?Â!¯?¼Òå? ²?Ù? ˜æ=íÀ®>›*>ÛÃl?ƒ×?ÉÕ?O©>ÂD?F«?9©?Ž‰?‚©?‘âh?€#Ì?} ?N-?.]Ü>´\í?„?^ÍL?.8?_·?¼z¶@Šh?Š„=Ïš?X{4?Áû?s&¯? ¼?”r?~Z?Lãv?…?J]?'I¾?ø0? R?>·‡^>_%á?zç?Bn¼?‡UF?Ž—?D[¦?©û?9?]c,>Éj +=è•W>Üb4?êL>A:ò<‰¨<?3ÈD?ÑÇ?Bd3?2§0?ù?(¿×G>P…Ç>¬er>­˜’?X3Ý?j"%>¯gŽ>O¡ü?+—"?5óŠ?Ñt? +È@U@""¿@ˆ>?ðÔŒ?G €?9ÿá?§Ô?^ >®”>N>²"ù>«Èï@%œ@ ¿ƒ?àØÎ?áÂU?¢¹4?Ò*?:[X?>UÓ?š2Ç?›dG?Ëas?Ǽí?gWØ?k¬Ð?oþ?„??½³­?Á,%?Æ^?¶š£?zïH?\K‡?Ôæ?ï?i¦?µ•?"|?;À_?yË?>Æ>@ŒQ>ý­c?ƒÕ?ŽÐ#?£½'?¿1?áqò?ÙH?Õƒ“?±gÓ?|tÂ?ò?Ü@4º?Ø ?2*•?©m?ðV?šô?DU@†[@AY?¬S§?|C?GäÂ?^—5?‘â?š@4?‡–é?ƒ™£?†„±?€ç¯?K”?O?·?Âe³?§Äö?¢Ò?…A‘?ƒÇÚ?ÄYÛ?Å0¢?² ?º„¤@Z­@±e?æ ©?ÛMh?J$±?G•l?‰?p[?±¬?f_»?¹z†?½+/?Т'?î û@øÙ?Æ=Ô?`?#Y?'×?4?r! +?Du'? ƒ˜?(Ýs?L.? +ò> ÝÍ?äE,@%]:?¦î*?BÔ>Ä°ˆ>SlÅ?—€?½‘t?:Ä? ÚÅ? žÙ?ߣ?¹ÒÑ?ÂDe? ›ä?X‹>Ýé‘>ë̦?“wÖ?*?Qxé?o­Æ?¯A5?§Ø?As? JÐ?ä–?ËËj?„‹?mì?8>?Cqj?^)ú?‚có?•ËF?OL*>ÏFé>Ë?š>æmf?ÒÜí@ƒ?óµ?ˆ'?_Zó?°‚?ƒÌ?„š(?w> ?n—Ô?'®?/ò^?¼±—?Æé¾?5ËÒ? ¥Á?óP?‹Bâ?¦L?­Žµ@Ö/?þi@'3@ ß?ÊÍ ?Ú6Ü?øª?ò¢¡?ä‹?ט5?·¤?½tç?ÃF8?Åkü?ÆÇô?ÄÌr?Á ?µéÏ?¶È’?¤+4?’à#?©Õ(?³ûÏ?‚\’?`®ø?[ æ?R‡?š~b?¦ßö?Þ6S?ð®õ@ Aª@%w×?»2K?±'U@+/@3éh?©Ñt?–?.Œ?3/ç?Z¶?†w?Ž¥?müN@&é–@í?¶Ë?Å!?ð¤?­Eß>ÆT¶?_z?ÉT?•ÑŽ?"¯Z?¥Ê1@ i^?ônð?Åõ@•@Ûi?ÄQé?Yö@Ù@(Á?¦ŠÑ?Ì ? 3Þ?Å)@‡˜@=ÿø?À~u?…D©?ð#?~T“>s΄>\S?!k?9VV?Ý0!?ã}@.5·@.½Ø?zp?hå?’)?¡ïÝ?äõQ?ê@-@!:@Þ?0ö(?~àé@2x†@12Í@®@ õ¾?§Ç'?¨Š©?Ĉ§?Ö»Ú@~ö?ïÒö?É‚?Ûß?ü?½Sþ?sr>å.M>l‚?H^?àÚÙ@ö@·õ?ú@?Ô½?”ÃÏ?M\ ?[ê¹?_"(?Žc?±ë@§ @H7@/9¿@¾{?ÏÚ?‚6Õ?‚/·?‚'š?­ÐR?Î8Z?¾Xþ?®…Â?_áÙ?ôÖ?² +?êS˜?Ñgœ?¾ò?°pï?¥i(?Ð1o?ÞAÔ?É@!?Âv"?ãaü?ìÍn?眡?ñÇ>?£RÍ?sŒ?‡Þ7?ˆ`?2S?Áƒ?_æ?{…ë?ÆÉ>à÷¼? r&?’?m?‹2€@1ƒ@,¶M@Ì›@Û@8e“@?P&@GŠº@HÔ=?úΧ?Á‰@R,@)4@î‘?éÚ@Î@Iw?‘T"?  ?kÞ?—Œ”?˜j?šÿ?ŠË?€1Ù?Ú@&†?Ë© ?Ÿ)?_O~?:`N?²uL?â(?ž¡?aÀ‘?Ô%@ _ú?î–µ?ͧ™?¾²?¶sU@2üä@yvÐ@7? [?–!S?Í6¿?ÍCs?ËE¤?äÐg?þq^?ôõG?çr©?Ä¿?›6h?·_&?ßñ@µÔ@SsH@/„‚?ïU?éçÛ@zŽ@,L@=]@ÕØ@sÏ@I÷ü?ä¦?€üA@5¨æ@-øC@y4@ö¸@¾­@ef?C Ý?mf@ Ó@ Ã?Ƚ?ºÈ¶?ª”>ûà?³~?¼ÅÐ?wý/?kª%?„ôh?‚G5?¯–¯?¼dr@Õ5@.gb@Ôå?÷êQ?b½ï>¥.5?ŸÕ¿?ð£;?åõ1?Ûä?âþá?î¹n@m@/F@Ç@m@/â@4K@:P?y™”?©mÃ@ ›]@$G@%|•@}?ººB?º„P?À$ ?É1@=n@9p¦?ÃŒ•?­>²?ɆL?Ì”x@'+f@9ù¥@L¼ª@U­a?ðË??€r@Z=@IA@]º?Òp[?ý ?…Ed?³Ò?Èä?šL$?tòÄ?«w¬?Ö»ý?¶g?†î?^ùb?- ?q¿ @xö@æŽ@ežÐ@kq,@5@|q?B¨X?@Ä®?÷jÉ@ ±@.@ ê?Á¯°?•ï¯?²®†?Ë—?ª‚Ï?‰î?É7Ž@%‘*@ »j?ï”}?÷Ô×@³ø@ %?6ÁŒ?9\Œ?†îÿ?†S ?MF·?4DC?†Ÿw?¬?ý?uA?©Í:@ B®?âŒ>ê…¨?Q¹?­ÿ$?ªKu?À==?Ãñ(?µá$?³:Õ?›Øí?–ƒ®?¡Ìà?¡w ?™üë?’|â?•­Â?¬JÐ?Ð>ä@/¡Í@$Ÿs?åï?á5C?Ó‰Ñ?Ùh??¬ ‹?¨ªG?¤¹6?¤€?ãü¾@ðu?öDt?±"c?Òêe@MÓ,@ISá?/z¢?H^F?:k?Œ3?EÒ%?)ž\?T°?‡Æ¶?žµ?§¦"?›úÓ?žTl?¨-9@OÞ@ß!@ÃÑ@ ¬ ?Æ:?œ?©&?²Îµ?·‹Ã?Òlu?Éâ ?‚÷?}‚Š=‘ {?âÈ?è‡s?çvO?Úüû?¿¸G>ôPÙ?£!?ÂT?Ãà”?Ñ5˜?æûÍ?£çõ?R¾â?® Ñ@ Ù\?ûP?š‡M?¨ºC?Ùx?̶?¸?¼ö ?¦©?ˆZE?zx?hdÙ?º5@nä¤@b¦ +?¶—Õ?¢Ö@)@0O~@ ´–?òÏ¿@4ú@'ÆÒ@1€Y@>°¯@1"x@Æ+@E´@¸ï@f?èÜ"?Ïƪ?Ÿ˜2?g2Ô?¹5t@*ÝÔ@IA?g¾/?gæ?âñV?è6 ?LÞr>ÔZ^?ÓçÜ@]Ú@÷G@ù?ì=-?.a?c©á?É;ô?Îx?©yç?ºÁÐ?¡<?§_@qj +@®¢@ñk?Ë@•ñ@3"¢@?›zÖ?ÎOö@64@)=©?æOÖ?ÔÒ?‰ë?|E?7B?*bÓ?œrx?© º@džA@‡g?«Z.?)æö>E­î>ñÒ1? Ü¢?ƒsf?¯‘U@<5@Ý?@°‹?ë @2#P@Oõ¼?ÔË®? GE>’ï¡=Án¿?0Hz?î@¡@ í×? Œó?\1Ï?‚e"?m¹ö?„* ?óo?ÑLI?\î?.·š>g-ê>›Pþ? ]?$`?§_?è+?½“?Pp¤?M¼x>WÊö=õE6>îˆ?‡èK?7:‹?Ñ?¿‡>õÙŸ=O =Š`??ä¥?w*?S;M>üD?ÆØŠ@wB?Åüb>þŽ~=7pH=ìÐ3>[®>˜0m?€Ö?rÊø?dF#?ev†>¯·>¤Ê?OìÙ?Zó ?eƉ?g<…?rc—?x7&?wN>ëÿ¬>ìˆF>í >Â4Y>´ß¿> -“>_µ4>›û>ïó? |?pÔ%?pz¤?: ?/ö >Tž>m)>,<=Ô8å<±êœËb?¡³³?›ñì?ITº?^ƒ¾?®ï+?²ØX?2°ö?)¦R?išI?nÖ±=' ¬©;>°Õ?Š ?•Ÿé?žÈ?‹Ÿí?UåÆ?@ìÃ?‹ãö?“Ég?¸?\?Ï…x?ŠÔ%?YØÄ?„Œë?Œ8æ>¾×>ÊßI?Ë+?·(Ð?øñc?­Ð?>?Y“?m£? ó">‡ô&?ËÀ…@,ÌÐ?ßV?k®½?{¬Q?€9?ñn>“7P?¸ä@Å|@§°?Ý• ?Š›0>ÊO“>Õùù?n¢?¸ëI@FP?ÚtŠ?x–g?ºÆ?Àè¯?s¯î>Ò#A?K 4?:÷?fÖ?Vi?`?M. ?@ÒÇ?>Í>?<Á>‹>¶ñ>¿,?[éh?§`k?©ÿ¿?²ú~?Ðц?îrS?¯_?mºµ?€nu?‚ ?|Zl?oÀf?´?æhæ?ø?Tä?‚Jõ?‰öÍ?‚|?6´?W<æ?9‹?8̽?C ”?˜(…?¸X?¥g?˜?Ã?Jì?Vç>Ý¥)>Ë¡n?(ß>?]ì?2/n? +¹¬?,ð?\q?²[E?ô[?§hÎ?p1˜?8Åá?V¬>¡ø>wÜ>öÐ>§S>žWÚ>•^$?<õ?Az=?Ê+x?û2\?zä?¦>ȱW>µ„—>¾sé>Çc»?eo?ŒJ7>¤>ÃÎ?)Z?³Z?@à>51=t¥Ô?UrË?îÝ?ÜÜe?óR?”¦á?7¡?D‹?4ƒÓ?8ìà?=Sn?•M ?¤©?VØ?71¶?¤R?®„Œ?öP•@Ú?”ø?‚'?êXÛ?û5Ý?xÉÖÈ>ÀE9?ÉT_?Ä››@ ,r@Ü{?ž²ß?žã^?‚Ny?‰{?Ÿ6?¥zÒ?ô6¼?ÙRU>µÒZ>È?‚?­Š?&Þ?…Ö?n˜'?iwV?•nA@Ëú?çÆó?‚ÕT?¤ ?xøš?ŠX?¯ ¹?ªÊÕ?¦Ž?¢LË?ž°?eÎm>¨º?ž?ƒc?‘°i?¤¥?¥!?®yÄ?~b?ƒ3¶?­É?ÜæÙ@ø@41@ Ì?¸­:?„í¨?3µM?–÷À?ÁIµ?Ãrt?È&ƒ?Âá?º­3?»ææ?»Ä?ë)›?ù[B@þ2@ |­@—g@JŠ?Ñ.i?Å‚ü?¬?¦Ñ¥?¤Rb?¦¹ ?VÒ?‚ ?Þ*î?ÖS?6_.?I?¥›Ð?n[?çÞ?ap@6¢ç@.:(?ý¹½?Õš?q?N.?Æ ö?³q:?ú0?À0@ *›?­$M>Ã>ôè¨?[m?^À?‰Ô?h¡Î?BnÀ?F¾?AÇÉ?2VÆ?;¬?´_R?ñŒ?e·>ØÞæ?`'Š?„V?uóî?u‚³?yÇà?~ ‡?ƒÿ5?„RÞ?—¤>XíN?°˜?í˜Ä?ÜS?×Ȧ?3)¿>fy½?Þoá?c‹ì?¾Q?Ó?ß?ðn¢?¦«>¯ñ?Y1Ê?ïAê@ +Ó@5+Ê@^S?‚ q?~«Å?xtõ?~Ñü?l¨?·n”@ù @C†?Ð$?Öc?é‹ûà‹?î ?Ê’¨?VjÕ?.Î&?á@Á?û\®?—dT?€÷â?’“?¡©+@"ÉD@> ‚@&~s@Ò´?à¢?»æØ?»Ôì?»Åê?ŽF?H}?á~À@>9K@5áL@"¾Ë@æ§?ù«Ó?ÖÒ@?|]\?Œ4„?ÄA\?Ý´H@!/@O*?ŒúÐ?”ðA?ó¥?êŠå@D|@Jwï@:@͇?ì=?å–u@ M@! ¸@'¬@-(@6Ì}@9 y@uÛ?Ñ«F?´Öh?”¤@7‰@Nô@[·?‡”Ð?‚(Å?8êò?`ȶ?Ī?À7±?ë>?û ¸@.i@9?ä ?¢B=?té@?¨æ¨?Õš—?ÍW?Ãk²?µ?Œ»?Œ ?¨S?…ì ?a3ò?{ÿ?õ‘Ô?øËK?Û ?ÏoÌ?ÆUÒ?ÉÚ?»…Y?¶*¶?rÐ[?AI>?|Î;?œè?‹¾Š <Ù0Ç>ú Q@`·k@WÍ?³y??³a”?^;]?Wø?ÒÕ'?è:þ?ÊñC?ÄÛÆ?âà?û;?ÐŽd?yºY?!i?ðb[?ô¦A?ºè×?¾šy?³eŒ?±ÕD?Áºž?¹ r?‰T?U~•?Ñ-Ô@.¶¤@Ÿ?¹qC?ÏØÍ@1Ô@2RB?`BÂhQ?\áé?ôeã?àp•?&°ÿ?~ê@ÀA@Iï?¢À?—_é?a’Û?C^8?©¹)?écA?ÍvD?˜§l?¤ƒ?ʉ·? 0?_k>ô,?í³”@›’?²ä(?ƒˆ?ÊR{@í?ýu?™¥?¯«P@‹{@NÌ@-”„@= &@ ˆŽ@ õN?׆?”¯Þ?‰È?Žø? çÖ?ªé?¡úÃ@QÓ@/Â?íp?[ª´?'Â?§J?ÉÍ?æ7á?ÕÎç?ZzK?>èÓ?øfú?ü“]?Rq>åè>ª9j=þÈ®?w*@* ó@!TË?õŠ?æÛç@RŒ@“R?›‹æ?e´?”çò?¾:?Á6?¬Õ?¯×?àϨ?þK¯?š?¢Ù@gA@'¾j?Ô;Ù? ?°æ?ñä ?Ðõ?ž­?¦{'?¡Ë:?±J6@ +f@ ë@> ;@IO?þÓ«?rËÉ?ÌU @H¨@C+|@&·ù@oéÇP??ƒ@ªF?ûrd?GÔî?1?F?ˆí?·É@O@†Œp@²?ŒA°?Ø @&ä@*¬l@Œå@ø@Fäô@;m?¹Š‹?ÁU?Ì *?À.>õ+Ð?³L?kèù?r“"?„Nš?JŠ?ù»?ü½0?Ô$Ý?¯‚«?¯c?¹Ï?£é?ÃJ?§b?Á?ÈQ?Ìtœ?ʦB?ô™¿?Ù¿?ÅR?Ž'Ã?l3Ö?)¾ö?a?¹Â±?î’Š?Sõª>Ú#¹?Jã?k£Á=‚üc=?8Æ?”„?¥?¯5?—Ä:?<.a?: Œ?5N2?6ú?±?5D?Å.?}.C?‰ÂV?o]?/’›>üÂ<¹=ÖÎÀ>Ý|°??S¯?4«2>&°9>™Ñ?zà?vÝ?.=?A€Ì?@C?¶âª?ór?ô‹?û3?+ +?#%?…ž“?n?/;€?&%>›<=«›|=&i<"1<W²=„¨>ü2ã?£n?Qs2?SZÅ?ˆ‹8?Žƒ¿?Kº?0ô>Ñ&¿>{—3>kÆ>†´>ÂE?FƒŽ?VÉ?¥E:?¨+p?J"$?Qñj?Øý?호?àŒ?±› >ØÉ>¡>”Š?*Ãc?vpj?vÅi?wÛ?Q“‹?4ä?® ?5?0‚o?+‡€?Λ>8/ò?­ú5?¨? ? fÝ?€oÖ?|å8?ò>ø?é@!>=š3<äÐ?+ؤ?M¼É?X S?b^“??Ðg?:¿®?“h?¨ía?mà +?OjÞ?Rô9?Gˆu?M¦?¤n>>æ>¾=‚'$?©?øu¢?¨…?ƒZ$?¨äA?¸zï?“C²?cm?Œº8??îI?•²ó?’ÿó?Šo÷?‚¤?€y?v±D?[‚Ì?™¹†?ÀO§?ˆ²?]&ó? {.?ÍT?uÎá>àÛN>y½×=I«ï?ä*?€†‰?¢Ð>!~g>¾¶Š? ?¤2ü?ðþÒ?S1?=?§5?14Ö>u—é>Ç<>ç²¢?!¿?QJf?šÂ¢?ÇO(?x$?F´F?kû]?€ú•>ß c?"è@%Ê?“QÜ? ¡¬?`¹R?’ý ?ƒ¼h?g•?Ù ô@3Ö?¿þó?-»? Ý>\þ=ÀÅž?‰lç?æË?ÑA¼?Áì%?e‚Ì?Ot>‹Zã=ⱂ=¾5#=™Æ?1Ò?†pž@$ýd@`‰ +@Ž7?Æ‘³?iÆW?\œ?Šy©?§@A?.Ø–>»–?“ƒ?¿Ž?¸Ô³?²+?«dà?¤¯4?º’ ?ШW?]"«? >27=ËŸÂ=÷v&?‘V‡?ÂŽA>ÿO|=Ó£X>ÕfÜ?ؘ?­’ñ@M[@*a>—t,?"#©@!÷?Ò?ê¦?N¾7?¾x?­€Š?Œÿð?%?‘Oa?¤Ö‹?Äw?Öž?ëêX?¼}?ƒq?¿aÇ@n^?åHà?¹‘?Œžì?S ô?oé_?ƒ8¾?=Îå?C"?>¡£?lÓe?¼YN?ì¾ò?®q[?‡Ê?…®æ?„JØ>±õû=à;t># +s>Uñ>?Óâ™@ˆÂ?Á}Ò?·Æ•@U@oV@ 9É@ +®*?¨…Á?¡Ñ0?¥”?£6˜?281?'w‹?¼Š?¹ ]>§e¶>ª2v?%>1?%E…?5ï?IQ¼?œ¥ +?‚ˆS>÷ÙÎ?#à?‚úš?ƒ8Ç?‰k?ˆj?„ µ?1_?Ÿ#ª?9½?SÓ&?»m?¬íß?’ Û?„8N?®þ]?Æ^F?xm?2#?Š~I?¡¯?‹t ?„Q?<À?U?Yû?\~?vù'?‚¥Ä? S&?—“?Æž?Í7;@IÐ@Ò—?û%9?䧬?dòx?ks?ƒøð?– ?á>I?Ä~„?ŠÚ?›?ÆÆQ?©MA?pyE?gø'?_sX?¢¯Ý?ÙJ¥?ĶÖ?¯*@?'…>üå??&,?Š=\@‡Û@B Ñ?þì +?ÔÜ)? 8?”"†?AЛ?4Ït?€K©?„– ?©C?ÆàÕ?…€¸?‚û÷?:³/?:*?“¡?15'?å~¤?æÈl?ühc?óZŒ?ÇC?˜›Ì> Îæ?HÔm@ +Ù@¦¾?öܺ?ç?ËŽ+?ÉcÁ?Æõ2@pª@!"‰?ß™W?žêò?÷W@ÛŒ@@Ü@%Žá?šyU?0F?äé{@ +‹–?Ðg?V@N*@~¸?ï¦?í¹?#Þ ?Ç™?¨?˜„˜?Gü?î5?›Ü?’(p?kdê?…s„?½«h?´À?‚ o?¥M5@$…?ÏT?/ÂÓ@…@Œíº@1æ>츂?d¨f?­á½?²q@?½¿?–¶?ôì?Þ¬?+Cî?_dV?ƒÛã@;’¾@}Ó˜@ ó?ŬÃ?ŧW?Åk?M¨ý?0 @![H@BÚõ@) +W@"ÞQ@^i@fB@:DM@2ß•º·?.{j?T°@»@1Í@ÉÐ?ä³Ð?ÞS?Ò²ƒ?×b?؈ @}ã@€ñ?ºž¡?~¶Œ?+Hƒ?³©? ö?¿!†?Á„?¼ÆY@ =|@VÆ?ÑÆä?µS·?ïã@—?ö“4?éù@ R@ 1A@O™É@a°@"cB@yT@X§á@tÍ?Ê3?^6a@Ã@ ªÌ@‰æö@¡²ú?çÛº?Ó‚?aÇï?ƒV?z¢ù?pQ?uø>ËÅ3?äý%@À?á;¤?ÀŸ?¾Ö?±Ò ?pé·?<µh?[a¡?dÌ?ñe¸@!}X?óÒØ?¿m@@zx@°Q@³ó?òæ{?À:k?§\?˜Î™?”gç?Šæ3?Ç~q?úwÑ?ÛHÁ?»¾ñ?¨a§??q?¬Xs?Ý1«?Öw²?×ãK?–Îw>¸¿? %ö?¯†?»it?ضÛ?Ø9û?½ä³?®Œ7?}Ô?®K¹@.Är@á?Êv-?Ä|ù?²n?žø@ƒ@ ;e@^Íg@YÆP@@<º?… ~?sâÉ?ãËA?í¡ä?ð]š?óä?õÜš?ø•?•|?{0ú?¨¬’?³o@A@+M˜?äC¡?¸"¼?mÑé?àI?¡þÅ?Ú—Á?³a?‰¡Ù?’p?­8,?øm³@.é@îB?ê¼²?âJ„?¾<½?º ?ºù1?½ëX?Ï°?І@?ªWW?¬ã‡@W@ýÚ@A›@N^@8 n@::?ÁWN?§qÎ?¶$®?®$_?›<-?«@mï@9¬’@Fˆ?¹‡=@?@R¼Í@<Ä©@,½Ä@éµ?E ñ?u¼á?¸óÉ?È @ Â@“ª?gþA?L/=¼„L=‰oú?c¨Î?qU†?§Ñ?™?¼L?ÕWÙ?ê D?õå@1$@Gù?Û ¥?˜yL?Œš}?tzN?ˆh¾?¥Xô?»€e?ô?Ð¥$=Ûaç=o~Å?àÏ?åÞ?»ô?ÂŒ@]@@# @ËS?kH>bt•?)ý?+‚X?ÑÇ@<ìå@|*?Ûµ?SeÉ<n>øL?eNÞ?^5y?Û/?æ£P?HWY?'µ ?Óe?î\Ü?µŽŽ?ý"?ª¿¬?´)ã?Àˆ}?Ëü5?¾˜Ö?³“~?¸A@&@ +ç~?³u ?³^Ì?Ž‚’?‚Y‚?üiÄ@¹?À®?nkË?¼Ý­@×z?ï?§cR?£|®?t8D?ƒù??²ú?²„?±ìë?±Õ}?×g?éÞ?úYÎ?÷¥?Ò""?±Mo?ÆÞB?ô @V+@/ÖD@0™É?€‘? +Y?ˆ?›Ë@?³…û?µ'?».î?¼äo?œÊÃ?jJ?‰ã|?â i?å"Ö?°É„?·Hû?ª5½?£Wœ>÷›b>!eŸ? £?u÷??Ö?i&þ?‰?û"i@ÄJ?«3 ?­Z@¾²@@Ë@ò«?óÒž?Ñ_D?»÷«?¿ôñ?ŸÂ4?œ!X@%Uh@'m?„n—?!¢3?Jšs?€Ja?Ì¡ˆ@o}?ÍZË?;Z–?U«J?æ¿G?æ±ò?3Òq?/ì¼?›û?×\?3¡y?_c?Hº›??1?lÃ?¬“?¬Ša?µŸÞ?È0{?…?>&?¡á?â§ã?ú_Û@S"@_‘@$Ýà@"{Ø@1z@Žý?¬’Á?…ˆõ>üçñ=4£? ?­4E?µX×?Ü(6?×BU?i ?eá†@6(@2š?ùG?¬ˆ@yO@Fm_@:ã +@”?û$ ?œ\å?—H?î-µ@Š @‡/F@©g£@Yå*?­b??Àh-?õÓP@ÿC@ KÚ@%Á¿?Í~ ?ÍÍÿ@-½ü@Io²@p¹ú@‰‡é@‚“«@[÷å@4>A?â%­?ÉP?¦Æ?ÉÐÈ?ê~N?Ù¡C?­¨?®NV?èV@ +Oi?Â0?Š4`?£™?­ú@b™@PO¬@/ÿ?¶á¶?¶\j?³°Å?½>ñ@ †\@ aè?*e³?>(?  ?–W“@ ¸c@g¦?°‘ ?¦W?œ`±?¬^?ß^|?âƒ?ÿcU@t#?Ñåº?ºÓ=?»I ?»ÇÐ?Š'?9hÄ? í>ýR>Y_5<ÆmJ?-lÆ?l—±?‰Öÿ?™Å?'xg?@­>Ò‚Â>ؾÖ=-‹=F5…?»©`?±>?ž?Ä®?$Ìæ?‚#Ÿ?¿üý?¤Ø°?ƒo?w¯¬?hhí?…‡š?‰&Ü?‰>u?›IJ?‹¦Ü?rÿ=Ǭ>P5?ïÑ? R >ÔUÕ>ù^ÿ?g?3½?°°>Fõ†>32?“ ]?ÚÍ@ “^?$Ì?+ˆÿ?0£õ>·º„>£ˆH<¼>z n>¾²>f‘á="©a>•H÷?h³y?Fè=C=oÿ¸?bOµ?l,\??`‘?>Ñ>ù_Ý>ºê<>߸ >ï&±? Z¸?îÄ?ßT?"0ú?(BÅ?qȵ?nd.>(Û´=þã?Mµh?h?r¬Ù?xÉ?í}>׬m>Í‘¦>Ãq¶>•ŒÊ>Ž’ü?#Nì?w?9η>âJw?>õï?˜¦Â?†–C?Iá¨?(>²±>Çß?yÁL?sõ?Y¹I?p[þ?¸û??µ¿:? ¡”?p>àš^>ÔïÙ>Êë>Àã/>öµj>ük’>QÅi>Gýæ?˜ëý¯±?¤WH?¾vÞ?8¢->þ6Á>þZß>þxN?L‡#?qØ? ô?%p?šv?Óf?bèw?Vè?«x?¿¦Ó?n™ß?+9Ú?O¾1?jg ?«†²?ÀûO?­„7?­mƒ?¼@s?ÀFu?`Ž??¨>‡¢ =Ðq3=µ)?1}×?Š†ï?ÏØ"?ý¢Í?ªéo?g³?%Ñ°?šŠ>ë +?ÅD?)UÉ?-Ú×?”Г?Áî?E»™>‡ß? éç?G)Í?ÄÝ?Úä?ßN?ä>K[Z?, '?‹\ø>ÖtT?y#?}ú¿?Íjc?öH¤?«© ?Ÿ?4?â?B…°?2å9?’¤ï?«7h?`ÆÃ?ÏT? šj?i›?’%Ý?ÁÚs? 4š?’ƒ?=ª?Hµ?\Ò?l®?:)Û?=`[?”û±?·é?»ª ?À…Å?Ãro?³?å†=ˆ’¸?‰ª?Â-Ò?Š4Ù?_ÕM?o¸8?‚í­?àdi@†Œ?ÏI?¿Ÿv?’”ý?v¨ú?ÊÅ?š>ÿ??jÙ'?r£?©™?· 7?‡.¿?uJd?€™?¼o?çWß?ÿß?¨´E?œzñ?Do?."Ï>˜À>wÃa>%C©>[?ƒ?§?’SÃ?».Š?Âé`?#qB?ù³?íbð@=?‚ï"?^÷¨?¨éô?¸¢«?¤Z±?¦­?ªx;?®ÖS? Ôëð±?Ô?:ôŸ?KÇ?žœè? ­?ßr?»Ž—?N±\?c?ÈŠB?·ví?x­L?u³ô?‘Yz?’„®?‚œæ?@ +Hf@’)?·É?Ô[@57@ +Õ&?ÀKÖ?¯à?¸?•¸?ÄGƒ?›Ox?ðÖ?fä ?¶˜Â?§½½?• +X?ºmü?ñ,|?ç v?Ðéa?Á®#?½Ä?Õ¹?ìƒõ?³¸=?kôy?•áŽ?¯{?Dò—>¿©…?/Ž?T6?*¾c?ÈŸ?¥×¡?ÏH?ÈúÛ?Å°¶@ÎC@Œ? ¯w?§ õ?ÑÚj?æ6Ý?å„—?<¯,?(T¸?˜oJ?¦öV?«.?§û‡?Kf?…d#?‰¥C?Š Z?Æ +?öƒ?ƒÌí?0¯|?·L?22C?„¶?„º?„ +;?ZÜá?ås?b†l?’­â?›æ5?®ç0?qLF?ǵ?Fõï?nðõ?Z*î?Hl?¦¢L?Æ[W?„Ð(?Yrú?Z´N?Q|Ê?Dþ?LUO>ô½>ÝRÕ??‰?á¡?^é?Õº?¿Š¢?‰o?‘ô?Ø]ò?ÔD?ž®£?¯o~?æ)ã?Ñxš?š×?§µ>?ƹ?¨À?L·Í?ˆ‰ç?ÆÄ?ÆÄÝ?ÆÅr?ÆÉ?ÆÉ?Èwû?ÏЋ?û~x@qÿ?Ê/q?T?³Y®?ÆÕì>æØ*?–Ùì?Æد@½P@ù¤?H^?’´>v©>{tA?¿õ€?ÆlN?„—*?é@Â??K«Z?ŒÂí@3pA@ç$?L»?Ëå>®°>çð ?)8}?­x>Ðòà?+b?„„>?À ¯@€@Á“@NK? ”í?#p>­qÍ>&”?¸Aç@ +¶¤?П‚?·&>ýŒ<>)¥]?®?ï*@ 9m@+ß@»@ÉÝ?ÏI¤?Æl?­¤Ò?±‰_@k¯@ï?%†Ó?Fú§?ü=d?ÜzF>{Ø€>%‹ë=^Ò <©C<Âݨ?"ý4@ ?ÿ‘w?éD?õ» @1‰?þªº?»‹4?“Jþ?b+¢?P¼_?;ã­?šBB?Ç7?éDü@ —?Á˜ ?œ†ì?ÿB@á?íHp?Ũ:?§ÊÁ?£¸?§•á?žú+?¹Ý?à ª?I0?‹Æú@B“@+ª8?ê&z?è^æ?‡F?ƒRN?(c_?9LÊ@g¯@h6?ÕÅç?Þ|V?èIB?Ù~ +?§Å›?£‘E?ƒ2Å?”Pr?عÀ?Ò€?ĦÍ?¬ºÛ?D$&?ŒR2@ýé@ á@bžY@-üu?”7?§Aö?´\?âÃü@Ë @¹@I@ H¦@ÚØ?õ±u?Þrý?Lj‹?§™ ?Йn?ñÜ‘?¿zÏ?›2…@@/xh@t}@ +H@f@?@ ÍB@¨¿?áùq?Õü=@*Ÿb@:AÝ?Ú°S?¥-›@Ïâ@5/?ÁÐ ?‰~?‚×??Jf@#Œ@>¹Û?•²?8ª@þŒ@4?•g?eg¨?¬Yµ?ÁÝ·?âo?ç+c@q@/_>@ ºÊ@ÿx@.‚l@7¾Å?òLl?½¿Ô?ðék@Ô?Ü©Z?È@` @ x”@ìÃ?ûd:?Ëÿ?¸­V?AZÌ?+!?ÁA?20y?N™6?[®Ï@ -@î=?ê¾X?½y{?«0Ë?¦B?Åés?Ôæ?ç\?í=?@ý¯@j«?¾¶ ?k½”?{Ѭ?€f|?Âv1?ò¬ç?–è ?Ó¿?®\@y?ÝÁ.?ªË¢?äÐÉ@=x@™‡?Þî}?Áv“?ŒlQ?VxÄ>ý£p?ðì?_»ê?1îE>bôí?Ì ?Ò…?´‘Ö?¸µ@É@%D@Ë@e\? ¿?£y­?ä§E?çð,?®ÝM?®w ?±;?³þ?À‚¨?¿w?½Ay?¹tû?o?†|? \W?.? Ì>ú­»?I ?U>?šVÏ?ÛI‘?Á>™?®‹¥?Txü>ÞD?’®9@¤?öìÍ?Œ +e?º|h@7 @½?ôïP?ñà«?îÖ'?÷ÚN@"T @Ÿ{?€Ù,?Š~@ +^ +@ Úã@*bm@-Ï?†{ä?R¥@Çã@3¢@%¼@×@+A¸@8?™?œÐÇ> ÔI?â#?’‚x?äÒ#@_ü@ ÝÄ?êÒ¦?ènB?öš¥?ðª5?ÝáV?à÷î?ä ÷?Þþè?*ð?H9?%YA? 7ñ@ +ÿ@÷é?u©ï?:Ãá?ªž?Èùe@‘™@êª@¾?×Y¶?µ2X?’ _?¨Ý?¯|l?¾h{?ÿ,G?ò¸!?¿ÑÊ?´óŒ?o`ç?h“ù²N?š¤?®Ó'?«:Æ?´åÓ?´ÙF?³ÁJ?©f?ﺬ@™ë?Á™?ŽT? Ê¦?´$F?ï{n@(^F@Ò?µG`?¬=R?„³$?f?á>?ݹÚ?ü™?ù*Ë?ÁŽ7?·v?¼ê3?³¬M?Ÿ´ž?™=å?zu>íî?åž9@'Y@“o?¦Bß?b?cô]?jP ?€Ý‡?žË?–e?Ž?…“Û?hïÏ?i?{®=?‹?=8_? ô€?S9Î?h©?’íR?ð'3?üå¾@Ýâ@¢@AV@Hß/?ññô?¨@?³Ô†?È™C?¾³?–°Š?™w?Ì^°?ÐË`?2ò>Îßê?}UJ?¤ñ¡?ʇ?Ý~š?ŸQ9>æ)®?;6?¬‰³?¬„ +? f-?š¹?ÙÃ?ñ™±?Ón7?³z @ÔŽ@v + +@^Ü=@i”@É$?Âz|?Ì̽?×ä]?Ïæ ?_‰£>Å#¦?ŸÁÆ@*’@ƒ¸?åÃÊ?åÈ?â ?ÓCÞ?¹Ç?ÆÍ?ÙÛ”?Ðç?ã4 @ ÃE@@íš@¿"?ÕÚ?Ïïù?üø‘?÷@ITÇ@‚;Œ@?¡?¼lƒ?¿ã5?çqý?ïxÝ@Õ]@ê€?í4b?àÑŸ@Gž@Á»?åC?ÀM@)Ú@Of@.Çê?Ò ?Íœ›?m)?KÞ«@ˆ&@Ea?Œ1.?k–f?Ï”T?ì?Øœ?®Ô?ÔÁ?í`Þ@Zo@I v@8?-?û¥­?ØH÷?€)œ?™ÇÕ@)ò8@&{è?´êÑ?µAì?ýâ¸@ “?Ñq?¼·-??Å? ?ˆY>õŸF?·"ü?úQ@ ^{@3É ?Ðû‘?‚y?‰“9?±?˜i?ŸQ½?`­Z?Ù[>÷Ëâ>öùˆ?•·q?´Ïe?Œ‘?€É¹>ÈØ[>A€U>µÍò>c+ž?}Á»?s¿-?2?W¤Þ?„´i?SØC>?ô·>Ѭ7?kô?AÏ`?¢Q?$bo?5^õ?¤Y?¡Ž>-ý>žÑ³?œô?¦ª?´lÐ?->­><¿ì <¢Ç.<6ý=‚š>Õ?<'R>ÑÏ?|2?¯Y?ñT?T¡>[Ÿ•>Öqè?µC/?® Ì>FîY=í·g>*UG>´>‰ƒÀ>Õìï?RÃ?iº?C"ô;²H? ì#?„>I×K>±a>„dZ>FÁ>kœâ>h}]>é¡™?NO´?d­?q8?jµ»?S°?X•?^!?c¯ï>ò=qEc<­ú=*à=?!¤=sŽÞ?#°?\;Ý>¤]ã?@á?w  ?hÜ ?HÂÒ?‚šD?º0(?†'˜>›šV>¾rß>ùGŒ?Lc?yé?KM‹>÷-?nï\?xÃÂ?vës?oh?åï¡?Ü%?cMÿ?^e£?Yy ?T”?s†Ù?et? “?™ˆ1? ?¡×Z?ÏÙ>ý¨M?˜ÿÜ?¬>?Zæë?4·?vª>þq}><<ÒÈò<0H)<` >Ûì>ÿ!ñ?¿‘0?çûÿ±u>ŽÓr>SÂã?ºâ@ê?N”,>‘*i?Yg?’s.?9|e?hVE?Ó]Ì@ †¯?Âiã?ƒeá?‚ËF?€ˆS?-’r?•»?šJì?ÁÜÚ?Ïìœ?ØO?¬ª?š–?B.;?Ã2?*?;Ó?Z`ç?dO? R·?ßô>ˆ±u=öiI?bØú?«ù>õ)`?Â) ?qy>‰C>èl?}h?³©;?Ü`Ž?AçŽ>ôµ?f\ñE6>¦ž´?ÿ§¹@!³?Ÿd1?ko)?Ct>åB?iz ?¹Á?„sÆ?…O×? &!?*?¡»¨?­ˆ—?c ‚?G¸Í>×Ôˆ>¶2Á?°yV?ÂÛ)?z%%?r‘8?M<Û?BÝœ?¾-N?ËѪ?¬ ñ?«P&>Ìv>›#:? Ê? 3…?à8?Œd?-„?)ã?¾¢K?ÁKD?¦ ?ºAX=<Ý>­d?ße(?ÌwV?Vm?Ð?”Mz?›9K?ÃJ?»¾-?‚sÇð>’]ñ?©·?ø‚?²«?$¥?új@ +@ +@e¥?jW?Y•?b#?h?ˆ{_?}U?÷,4@c? +šü>µk¢@eÃ@¾@ Gã@ÿ%?I‡‘?>×®>$>¨Ð¥?8zñ?IŸŠ?° ‰?žo??'¤?#nî?:->øl°=—Bë>hÛi?#Jˆ?iS3?Ƚ°?ÃYN?Â(=?Àˆ?½ù’?Ÿ›?o¨?œC?Æ#…?£Åó?„%?‚j?vX_? w.>“W/>‚‹(>…÷9?~«P?©õª?bví?4€?5$?²¡>y4>ŽDË>‰bÞ?„[o?‹ŒË? _Å?Æ£?„‰¸?‚á? l?oÔ?Œ«Š?„Ð?p²?-nç?hô¼?KЙ>¨ .?˜ˆ?½$?–t`?„|ò?å8?¦F\?¨gî?ª‹Q?Åà*?Þ¾ä?Û* ?Ì6±?Å“a?ÂPê?±þ(?°xŠ?ÀŇ?ÆÔ—>ã„ñ<¨â7<‰ø‰=XÌ$?®J³?Óê£?ì6?è¬A?ÖEŽ?̾?Æak?Å?„‘?’)@_@3f?¨¼I?ÚfB@gûV@Gö/?¥kÚ?ƒæ/? š#?+Çl?„‡§?&Ë\>ò·å?ŽØ^?Ã|á@~ß?nú<Ø(?_GL?À5?¸S?¯ñD?žµN?œFB?±>z?¶c)?h°?6q4?1UŽ?6C_?òÑ@ b÷?”‹:?„X3?ß«@?â©p?Vz?Zûw?„HÆ?‚Ÿî?f â?w#?¬¥j?º·€?ïd?à "?pà?ˆò5?‚OZ?»Þt@"á@êZ?—‚ù?— +ó?’-å?›©ó?©?¤¾œ?˜W?}$ž?Q1B?Á&ò@ëé@3@@ý@?üŠ?ßÅ?„¯J?&|’?£È?Ŧê?|›>Ž‹Ç@ Ø¿@3¼?²u?‰}j@3î³@A‡?Ýÿ©?Òšø?5a?0g@‹,@ ¥ˆ@0aí@&`È?Ûzc?Ù¦ï?ªR?¶*5@x@ ›1?¾—Ì?°MÚ?ƒ1ã?¶?ñ@6‰@&Ê)@I ?þáÌ@ ½@|¦?øTœ?ûœn?ÿ,?×oÑ?‚à˜?…+?ŠW?Á¤(@Õ?â(?¤4E?´Á¹?Ãû”?œˆ?j‘4?ká‡?uÛ?È°Ê@ +p¤?íûÏ?äÉ?èY@[£@sò@ü@ Ò?ùLk?âü¦?ÐOO¨?lK?¾’N@˜g@9Z@‰?ÝÄ?뜥?þeë?ª~?*#'?ùñ@Uâ¡@jJ?Ÿ3?¤Ã¡?¯ÜŸ?ˆÓf>ý¥m? +ý1?x?qsù?ÑŒ@Âé@xØB@Zâ‡?ú0@¡õ@ t@*P@]ƒ@Mß?âY>?æ +Þ@1—ã@'µ?|7$?ÿ4?Ó±s?Ël¢@ SA@¹c?ƒ?”?{©#?{“Z?{}F?ëfÕ?ûQ@@dB@tet?Êïq?zÿz?XãÍ?BZñ?†cê?”MQ?UïÏ?0sj?ÎrX@ ®™?¿N?b“0?€\Í?Œ—Œ@ X‰@vãê@KÄZ?ñà ?âld?»?¼óë?¿+‹?Âb?ÄÿQ?Ë°Ð?ë T?òÿL?Þ‰ì?ÑXß?’ta?›v ?ÄÀ”?Ò®C?šÚ?‰NJ?áv@Ž6@"#K@/÷Á?¤•–?ÎÁ?E—®?_ð:?Šú?¡F&?Ìî"@¢¨?ß?ŸÊ?ÁÙý?öšz?è‹^?¸ËÀ?²½„?”V?›¢?¬»?¯Ù·@ë@{?üÍ“?ù¿|?·úß?¢†T?õ'@ú¬@ Zã@ .È@À?óø?ç\¤?Ϭ¶?øÓÍ@!ƒ@_7@ v¡@»@_@xµ@2BO@+wô?cˆ>ó?Á?HH½?LîÝ?F O??' ?^Q—?{ßx?Šý?ŽNÉ?}"d?NT¬?­·Z@&èK@!e¬?ò@¬?Ür?~q?‚©0?† ð?‰”9?Ÿl¬?¨–?²é½?´~¯?¤.?žpH?Ç}?à6í?É N?³öU?Õw@”[@HN@ Š@ñ™?KÛE?a·°?¿?ŸÐ“?ƒ~É?n¡—?»þž?î‹?ª}Â?(yè?9G?¦û? 0?{£8?Žd·?Ù§1?ÑöÁ?´2?±Ç2@»Œ@$@ÃÝ?ç6²@Òx@Ga@Ds@@{„@>SÌ@!°@ ¨¤?ãv#?ßg?@t?“–?“k?°D?Á ?Óïj?Â(s?¡°?šbž?FÉ?®«?°¤k?´kÿ?ëÜ?öÎS?ÅÍB?¯$j?¿Ûò?ËÛ·?Ë”‡?Ô‘‚?Øœ‰?Ü®À?àÃ=?j x?h”²?h}I?haê?FÒ?%ZË?Ž‰.?ÖSÌ?´äŒ?{t?‘T@¡Ž@8v@Û@(€`?Uÿ>›®?L Ê?­E™?”ìI?PO?~?àTÈ?×^ó?ôÕª?ò¸õ?P¢ü>æ_>?ô}È@Aƈ@ m?I®€?6C,? dB?'þM@#›3@#ðÕ@<@ +2è@Fô@)@T:@yÆ@^d@´@ì?ÓÛ?™µ?÷¢@k?€Ÿ†=èžÙ>Wâj?›x?cìº?åÃ{?åÂK@†N”@|Õÿ?öÔÐ?£¥_?î‹C@¼¾?úæb?x>›?Ÿ±$@ìz@åÝ?æsX?æ‰p?ÿþS@ ~f@µÉ?ïƒá@î3@Cm@-üµ?çr?ïªQ@Ѳ@è+@Jq@A®Y@ U@ æ›@F¡˜@f~%@2tÄ@?ï&I?¯Sd?¹î?ê;K?é1‘?Á:#?»»Ì?‘È?lÿâ@Nž@o|‚@òæ?ìºQ?íN?íbA@”ý@%:@G´@†OÍ@n‹Ú@MÝ@ôJ@4M¡@3¢§?ÎÇÞ?ÈåÀ?–£?‡mÔ@“e·@žÁÛ?͆“?RÁ?šo­?š†w?‘ZP?[?Ívæ?ó-¬?¦Ø?y(ü>ýü¯>§þÈ?{E?C´¾?R!Ù?`¿>È)n<ÆêÒ?‰E?À2@ š±@ +ž[?zÁà?.é¥?¨8£?»Ç?ÀùÌ?¹Q?ɽ? ;?>’?GûW?2h->Ûº=UéÆ?l.?€X?p÷m?a£Ù?‚×?A.>Ũ>² 8<Ôó=›uX>‘9\>åó>m:¾>ƒL<>!ûS>˜fÉ?dð?YB?Xl?M-g?Çù>†Úý>…Ì ?ÉÉÿ?ÏA´?Wk">bÁ‹>â¡©?—Ý?¯{P?¼ã>òPò>æ'?(!X?B@¡>­RÀ?›H?®…¨?ˆŸ<žñ>ëÖv>ì[Ä>³×ü>¡âx>×…>î\2?&T4?6P0?'3?Ðö?,8J?q¦?UÈD>ñãÔ>ëä>Êܲ>Þ²ù?±ºÒ?´¢÷?|?iá†>C€=û>ø>P¶}>¤G|>­ˆú>¤ö1>»…’?)'?nlò?Š¯K?ùƒ?V%ê>9 >]MH>°ý³?™£?_Å?=Y>=êÊ=òä3=5‡Ù<#i= +7¬>O$?)5L?>&Ð?{Ú?ƒá¶@X?ý©?WÁ÷?bq*>s…>p­[?s~ö?}Qà?þ@>ýŸ?‹ +‚?‘/=?œp1?¤¬?1 ç?Ô²?¡¸? ÁT?h™ƒ?x1I>Yï=S°¤?i¨¶?–¾s?vA?^yo?Y¦9?TЈ?hæá?aÆ'?_D8?y׃>êóó>_DS?5t5?\g,?4Ñû?$§ù? 9y?Àg|>ß»?Ñ>@ò ?‹>?ð9?¾î? ’B?Rë^?krž?²K¤?Ð|×?eYk?"çä?j–›?€®°?(›2?ºc?-?Eød?}‰??s¿ç?R[Ù>ûðT>Âù`? *?ð1>c“=K*‹>¹Š?÷W>'Õ?M;J?˜Ë=?·RŽ?Á•f?äªC?ðûR?€á ?,³5?Hí_?MvD?’¸û?¢¾;>²ô?Œw¤?ÁÐö?±œ’?­ùô?V¤`?ð?G=?¬TM?]F?O×?±Â¼?Áýï?Áò±? [?Gç ?Ç?$£C?26À>ð„0>ÀP?@j,?XŽ @rë@ºL?Ñdä?­Í?[H0?=ØO?˜?¨¡:?œ‹õ?–ß-?„àï?žÒ?/ÊÑ?y2>h¼`=ÿån?`0?² @.4w@?ôZ>Ñd3=6†Æ?ë,?*7°@j@ †-?€ÝË?]ìÎ?’øw?™&?ø¾?é9?9j@?AÿÃ?€–Ý?ùÐ?‰›?#)?W8Š?\Ky?`ªÙ?e è?igT?kŠÿ>à ¦>ñ%?zàó?‚¹g?ÂÌÅ?¶à#=W÷p?6Ü—?Hlõ?jrá?um?² U?¦:ž?Y6ä?t,¯?© ?½²@ê2@t„?}Œ?w´)tÙ?Yò?Ö¡?žÙ ?¦âÛ?‘jñ?…zÐ?–ÌW?žÐ?8…Í>¸á`?_ðÁ?– ?“U‚?˜ýï?°œª?º¹?RC§?¬f?ÒTœ@u.?ÐÿB?¿X +?¿]£?¾>«Ÿ)>5÷÷?P?¢Åv?l+‚?_v™@I@ïú@$ a@!t¹?ƒ«²?zA¬>yb>¸T?¹¤ˆ?¹Î¥?ÚV?ÑÅP?–QÖ?”;š?’ {?qº:>ß‹ë?a†?öW›@¨>@C…”@± ?Åù½?“„ç?!Üî?„DÚ?º\@?¿Xq?Æw?¢'§?„–?oP]?eºè?+"?(~>µQÒ>„Ýî?OI™?„6r?­!À?µÀ÷?ŸDÇ?˜Èd>˜–R>_?¦€L?ºdü?³ Í?¶Ø +?•?)Ø?‡HÛ?tã<Ù²=Þ*â?©§?;Y]?®ÙD?ˆ?œ>4?M©@ l~@ ‘?פO?ÅV?©Î ?§°×?¥’C?£qÎ?¡Sw?º’?××î@Ñ@Aè2@1ß@&§Ü?ª)î?q?¯³º?ÕØè?c¶í? D?®ï?Áåù?úoú@•Ç?VÉá?A·ä@3'@8/>Ê“³>ð(?„Šq?„¢€?ÚS?Z?z{«?š×@}·@Šµ@W¢?ïxZ?®æã?“W?:¿ü?@E>tu?W¨ó?Ñ«j?Ï‚Ž?ÍU?§«I?†Ä>ä!@=}a”?¨ë£@õB?¬~?„kŒ?P ‹?Bôì?/Þ?,Yª?Ž‚—?•çÑ@_,@î³?d’Å?F`2@]÷@/‚?¬‚#?¥þî?Æìe?³?¼^?Tù?C­é?({{?‰¶r@"ÜÎ@ö‘?ƒC?¯æØ@uK?ÛáT?„r?šNµ?¸ŠX?Ÿº½?„ƒ?»$ì?ñšO?Ëø™?«#?Ê£Ž?å J?¿G¸?¬Ï÷?Ø/è?íÍ¢@¾ê@#ß#?æh™?ÅÒ?Å–)?ÅÁ?4·]?ª*?å$>@à„@|ô@#?ʾ¬?ÅM~@Ûo@>Ë?Þ­u?àä=?©Œø?¾'>@h@ +ê?ìNÎ?èïc?ãÇm?ë;²@:?í h?ƒ-ß?Åö,@]*³@VÆ%@3É8@&ƒî?î$?Ú¿? t…?v‡?êÔ?3)?‚Ý”?É¿A@a@®ë@¦L?þòB?³ÚO?Ð o?ðvÃ?­÷6?RA?0­ô? ®.?&cø??tx?µa`?÷>@ a@v?ŸË?K€?ˆ±ó?·¡4@A+@µÐ@Ey0@_!t@bS@_S@&¹´@d]?¼jŒ?Ž]f?›`?¤Ds?ø5æ@ Å@òg@¸³?éÞ?âÕ?ÒLõ?ÙÞ3?ò È?üà$?á6l?Ôÿm?[ù¼?Oú?ž?œ™ð@ íM@zì?Þ}\?à [?‘ÝÚ?‡"@ÄN@f}@ +XC@äù@Œü@!%G?gWž?Û?Îuí?ûBÅ@º @ ?¦Òë?‘b‰?hf&?[–-?¢ÒQ?©ÅÆ@Qàí@x#Ñ@M’^@@‡Ù?í¥¯?¼Üc@’W@#³‰?}š;?(Õ?˜Iw?¯ø?é$ˆ?ÿÿß?ä6G?Û ?Æ ?À•1?ݲ¿?ðK7?ü\?ÿk-?ŽóŒ?ŸE? aà>×_Ù?Ô6<@]í?ó58?¿b?¢þ?”™í@%®º@iYß@cÿW@^¡@)á?”SK?Í„Ñ@öj?ìã¥?ž¥x?g?h¨?€°©?’ö˜?¥œN?Ì g?íîÝ@#U@*‰@=Ü@=n@<¢@3~°@ã@f?íåo?û}*@p@ Ž@OÜ?ú×d?7e=?S$0@…Ï@R +@"l'@)fV?–&±?Œ¸?}lë?{w{?áÀ|?ô}U?Ç"?ÈЫ?¼_?´µ>útÁ>^­Ò?ˤ„@ÿ +?»Qä?‰@l“@,”@ØR@£@½@bx@;{?ëúG?Û?»5?ÀL?Û?Úã°@µâ@#×?ï3?Þ ã?Œrë?£ñþ@C¤ß@>¤ü?¤ˆ¾?›iš?ÇÆë?»ò@--@&£?—»Ô?bK?¬Ðw?Àe¸?íÁn?ùm½?…ðÎ?CL? Nô?ë"-?¯CD?hí‘?¡„j?Òzq?Ám¯?¸Ô?É»+?éÒæ?ÐFJ?C³¿?;Ð ?uø?uÞ;?ÿdH?ùë?ˆnI?ƒPa?¯`„?·ñ?ï†÷@#¥@8Ñó@Q7ý@i?·ü?Ç_¨?Ü+©?ö{Z@ì¼@¼µ?¡ü?«*£?»‘?¨¶ô=ß8ó>ˆtB>òöï>óCÏ?š¬?£÷?Ú°=?á‘š?_VF>ò—’?MD-?‹ÙÈ?¾ã?ò(ç?ÇT?qå”?±›@4;,@# Ž?qrÆ?qS+?q9œ?q?›Ñ&?œ`‘?•³‘?—®—?”?Õ¬?æ®@u‡@ãÄ?Ø ?á’@¸Ý@$ø@0@+úc?Ä7?¹ä?®æ?¢ÞE?ŠÞ?n›ÿ?…‡N?Š®!?¤Q}?¾œ?£?mèt?ƒŽ‰?¯‰M?°‚ù?íd ?íN²@:ñÞ@6é{@;†?ì'ø@/š@‡l@äH@ 4{?ÿŒÑ?ªnK?¤u?qzô?…ÏÕ?ë›Ô?ëzG?&Ì„>ëC^?ÔSø@´¥?È@è?™²²?3h?1Aü?˜wï@=mô@CÓ*?è a?ä…î?“Ø? a?§ò?¯"Ø?¬ŒD?°¯8?Ä©?ÖÆw?ÉM?®¤£?®ŽÛ?b^U?h=½?ËBÁ?Ö©æ?Îà?ʼn?ÛÔÌ@æ?ãÛ'?€o?mñ?‘”¢?ˆÙÎ?ŠÝØ?v,]?¨u>Î3?¸Åh@´Í@/›?Áø?¬Ï9?£®Þ?¹øy@ ›@ +O1?vo=>ùúü?»j@Å÷?î’³?f.?Xi?]>åÐ@ H@+üR?÷½¤?Û±Y?©/ƒ?lt›?¶®+@ ¨Y?þÒú?¦à!?µ'‡@U@ˆ7?Òµ®?Åz3?ªLÒ?†…?£R?Þ:H?ïíS@6µ@/-@´ã@³ðg@[™4@6—Š@a?ß»²@$ô4@€ŒÎ@Y—f?ïe$?þ a@eÔ@Vo»?þN~?Úqð@=üÄ@fïü@ä?u‘Ð?¯$@ ·@.v?úLñ?ÿÙ1@WÅÛ@be=?ˆŸ¼>è‡.?æ?E@+¬[@oN?·¨Å?þ%í@8@î8?³|ø?¿ ?Ê¡ì?ÖR{?¸×±?°0G?ÍÉ™?öîñ?ù"$?ìÀŠ?ûØß@´S?åi?ɺ9@Ê2@„òì@p‹¯?ú~“?ú°¥?Õ(Õ?í8G?À(}?Íp@m©?þ#¸?Wf?¬ÚÚ?Š1{?tœã?†ÿ`?œœ”?ää]?êñ™?¾ªÜ?¶™¸?¸c@?²#¡>îЋ>ùK?3þ?%ŒP??•ä?¼Ÿ?“•²?Ž??èÁÀ@ ת?ˆÅÏ?Y ?Pë×?k˜C=ZW&>SãÇ?jK?[Œš?Lå§?7ùü?8Œ‡?DÓ¬?Ò¥?R ?‡Ã?J7"?’Â>‘%?vî?Çë>âE”?"Ú?€Õ?HO©?¼Q?ƒJ@ *ü?°Ý%?Ç>uZt>?ã>E¦²=;l¦>D…Ü>‘ ?¼‰?õ ¹?Ó Á>ÔI§?5ß-?+œ?& ?Dü>ªôe>— –>å>æ(*> B=‹ßã>ð=è K>bÈ”>ò*M?‰c?Qû?8 k=¶ò@=àÅ@?×eÎ?Û«õ>ùŸ>De>øž¥?2ôÂ?{„ê?›Bƒ?†€ƒ?Id­?7²>ñöV>ëa>šbÌ>‡ˆ?jxX?oü?t=?t˜à>þ8É>ÔÜD>ÊÕþ>ÀËC?›µe?¿&¹?k>ê?û?fA>÷¸–?Zœ??˜,Ó?…dŽ?XW? [ë>p¤>zŒ%>ùÀÍ?K/ß?Ãw@?±çù?€(?¢›Ë@Q­?þ9g>ûvQ? E?{Ô_?A`?²qj?±ÇH>4Ê>dТ?Uåz?GŠo?ºÚ™?· |?=ì>ý™£?wWh?‡™)>ݺm>Èß?p)?~_·?­ 2?¸'?‡Z??~×Æ?«&‡?«¶u?/Gû?ƒº?mó£?n>ÙEJ>ªJU?£t5?¿Öð>Ÿá«>P‰u>ÛÓ?‰¨¢?¨ó§?ªˆj?¤ý5?¬Gv?²ËF>ôg]> h>á¼?V?c‰%?~Ý~>‹ö=: ?Š»d?¶5ù?cT?>á?u?„—u?A]a?2e?d?·T?»Q?À9?)¨r?3~ñ?ƒí?—çQ>ÜÊF=ÿËL?0²4?k#Y?+!à?;? ¼? Z?»º>ö)_?¡ƒ?2S?#±l?1ëm?Pßr?f?w?o?bc ??±ÿ ?Á¶Û>¹©¶?~‘½?¨ü?œr?•{Î?R®?Cš:?Púr?Dk£?Vï?gê”?®¿é?¿Ó.>¨®=…<=[=hÞ`?æûŸ@ +0å?¹QU?¡—(>뀵>¦b?àvš@ðË@@X—?IÜÔ?¡\?‘=?›¶ÿ?“Ï?–èL?–R0?’è!?Rf?Oã?ke3?rcó?†{?…½Ç?…&vrß>Y<­?…ŠD?ƒ×¥?EÆ?IÀÀ>_98>Fú=?×[?Ò>»(>Éq?ãj?î¡=ë? ¨Ä?Ñ®?_i?z»G>ôÊ;?Šà?t®?Ž>Þ@ ?þR’?EËQ?QsY?Zi?fÅ?›åÄ?™Ð‡?”çy? ~¸?¤”‰?žô?‚‡i?x8Ÿ?WëÊ?\<?`Œc?• =?é*¢?Îr?Œ}L?°,I?úfK@o)@@E¿@.É?†`v?‹Ø?’€‡?s Õ?3AP?.D¶?#¥p>©œÎ>ˆaò?¦?Èmš@ä‡?¤ÿ?ÿ?¢É™?à¡Ñ?”ƒ ?Vû¢?µ€Ü?ØJ¬?3ú>s{?qûU?™CÝ?‡á?ƒW¿?x©®?|µÁ?ƒý?…º¾@è¶@È"?-Åq>ÛÜi@s£@'E?<Ä?*÷?ÃÿÉ?Äþ?Ðt?ÒˆN?ƒ¬M?€ÎÞ?C;¤?Rù?´Ø?¿i?ɾ?ÃãÌ?Å·p?¹fè?™ k?€#R>ª{>Ód%?*|Ù?r“?÷^?«ã?†š¡?Õ ¿@Kv?ø4ž?Æ ýŸè?P7?z»+?ŠS?Æž ?Ö'à?ýyp?û(«@ +ß&?Û*”?@,ö?ŒŒÃ?Ʋ‡?õ @ëV?ÊÄù?\Âd?\å¼?Všõ?]³g?X@v?\°º?g®*?_?„†ø?þwž@t)@Ož@©Þ@s^@ù ?Ñë½?Ì#?ƒ”C?ué ?æ-_?ïä?–Ì ?’¦]?²‚f?­Îw?•£¼?¤úä?ý;Å?ÅH½>„®?j¨?˜£"?{UÿÀ>!oe>ç2E?iD?­`k?ñà?úÁx@Ü?äJ2?ÉšV?Æb#?À•Ï?ÅÙ?Íe?ë‰?óu?½ªI?¨ˆª?z²?bÜ?["Ò?c;:@ ·¥@a¦>Åd>«¬?Æ9b?Бâ@Ã-@æ§@ß@±F?)ù?eže@ =Ì@=Ð?Ïôe?ÕÂ?ó4ü?±½¦<…¼J? Þí?ÊA)?°uW?„}?æq=@2©®?ø£¾?„?Çm~@÷á?µQ+?l¦Z?§w?ÅÙº?‡i?A¢Ô?¤Bù?Å·E@ i@$±Á?÷°’?×õ?¼Þ3?¸ƒÝ?PB€?%äÀ?°[N?ÁZ><0= ›/?~ ?‰É@")@$O@M@„I?l ?›¹?Ã?€8?Žôü?¬»G@z@ ]l?ÈÝ$?·úè?Qà$?l̺?˜É^?3?i˜Ç?…žº?µ@"å@X@º@#^? ©?gÈÂ?Âv?Åæÿ?Ñ ê?Õžÿ?Ú.d?鮣?õ»g?¸~Û?|Z˜?ƒDÛ?‚”¤?–cÎ?¦5ê?£Ú}?¡y„@4a@0.@&D@# ì?žX>Àϲ?~.b?¦æî?·Q ?Ã=³?Ã4—?Ã%x?ÑÊ> Ðw?“Q?Ê+5?¾X?¶êÑ?غs?âI+?ù³Ó@Çø?¨o¦?ž‹?í¿ã@l?œT?g¹¼?¥U?±Æ­@›‹@ 2?­±(?Óf?ï*õ@ ¿é?ü‰a?ù)ò@Tô@ U>?×?¼!ê?û8*@I ?‡i?]:T?„™l?‘¢æ?"6$?ÙŒ?¯ò‹?Å7µ?i þ?RÊS?h‰?a‡P?WzÓ?Mce?ì— @ \—@(y½@2î¥@@«¶@B“¸?ìQ?Ào©?ÆËÊ?Í8Ò?ØÀÁ?Ò0*?Âá³?À7?ÎM+?Õº0?âý?äÿ«?Íd{?¿½ +?|qU?J J?ŠÉ?©+%?¨ÿ? XD?ü@ãã@%@m?î²…?¾bÑ?à¯1?ô¹¡?ë¤l?òs?ÿHy@:ó@Qr@gz@ ï÷?ïÜ?äÙ?Þn?ÏGr?¾Qh?Þ©Š@ NZ@ Yß@F-@;2@$ê@,ýA@6ƒê@)i ?þËé@|<@•@Ñe?ðØ?èa?κK?Â÷´?Y¢;?p5¦?¦ü¡?¦‡@þa@GÏ?+˜?)\Z?©6?­À…?—§#?S§?G9?ˆƒû?³Ÿ^?¼Zä@"õ @0;Í?ðý¶?ÃéÁ?ÓǾ?âëO@ $@þf@-Ñ@;þä@#‰ü@O?érÏ?ª•³?¡Á?‘wk?š??£ Ë?þZ´@W +@H&X@ÇŠ@Nn?Ä»2?ÃiO?ªÉ‹?´k?@1,@¤U?´:?º@Dt¢@F¾6?Ͻ‹?ºû@ïD@!Y›@ Ɉ@‰@M^ò@unw@JÈ®@+‘?ã¤R?“€L?®¿ñ?ÀVL?ºŽË?ÄÉÖ?¨Q?8Í?Œ{Ü@ ³î@È?ÊÆ+?ÁAø?uü-?v)&@*áç@2ùû@5ÓÔ@/q­?¦_?…m ?¶7Ú?ÉÄ?é¸@£Ö?Δ ?˜¬þ?µ@C?Ï~L?˪ ?À>F?™ÙJ?%n;?Xªß?óÆú?èWõ?iÏå?\=ç?`ÒÎ?Z\?Õ÷ß?߯Ô@Ÿ@½Î?³WÔ?h?#š›>òT©?¡sŸ@í?áç„?” +?“z?¶d“?ÄD ?ã¦c?àÈE@G{t@<È?Æ#?´¢´?ÐMe?ÍüM?ª²?žèÛ?´ø¤?ÂI@B»@b°@$ùd<楋>º²Z?ɉK?Óü?Âø?Å–?„ëß?ˆn?Ù¶?áχ?Ün]?Ù‹?à¾W?î?ÇÐ&?~tc?…]?²6[?¶Êµ?í`®?íCI?˜|?°Lg?Ϭ=?Ï?ÕGJ?ÍRÆ?±v\? Y?s ˆ?lš{?†NºwÞ>b µ?½§?÷/!?¿,?bË?ªÐû?é@?âÊ?˜P? ›æ? `÷>íŸC?ÊY6?èQ-@%=@,@ßh?çï©?ÒšØ?£?¯î?¼Ý?ÉËÔ@@*â@ÀD@¡3?´Ñë?ˆLî?¯:à?Þ8[?Ê0Ò>AÇ·>ö)@ú…@\Í?¸rb?©B?e•?(%Ò?÷Û>|%Ö>Ñ-”?f—?eôt?Ë?Ó8C?¶ ?¬_ ?éÖè@¢ô@ ©Þ@‘@8Ð@å ?ü´¸@€x@²?²Wö?‘DÅ?Ûœ¯@ Ê@W@ ܬ@Q~?á•?ôå@|Ô@‡U @b”d@RÝó@Q‘Å@X „@H¹³@-Mô@0!Ä@"™-@»@0]š@?ò´?ëî]?ßEé@'}À@JÐ@>ÞM@,)@Jyï@…„Y@j`}?粟?çÜK@ij@Ú?T€ >è ?LM?m¨¿?äÉ@ [j@ÆÊ@ þ@ +U4?\?ŸG?λ ?¬–Í?Úµ"?êI?½Y¼?±Ý?¤­Â?§—?¶{?ÍŠÀ?‚æ>îù?iÃ?z…?™M}?ë? "?¿g¶?²®?å’?‰ã@%h4@1‡Ú>ºH’=à ?O¿?t¤ˆ?´Ú?lx?ü¼z@":ê?²s ?o’Ò?1â?%.á?3Àñ?÷Ÿ?TKÜ?{Ä?•:´?•?€Ïß?€÷?¨¹¬?°X?{€[?z:Ê>ÝA£>µ Æ=ÿ¦G=®:p®D<=‘h>‚ýŸ?(?§82?€ÛË>˜£¹?6Ãk?ÃO½?;p>0Ez?9>ù?ZÝ„?Ÿƒ#?÷†?t '?„^q?‹F¾?…J ?z†I?N|Ç?PÐÎ?,BÑ? Ôó>‡×Ó?-i\?´3‡?½ 7>¥Î>—Ø>ÏxY>üž?ƒèÊ?¶Î@Š‚?¼›>è¸>½>÷œÛ?-½ä?†úG?}Ñ®>¦f>±ý>àŒÊ>ç…'?¡F¼?ßV†?t}•ŽE?bö?…ñÞ@&CÙ@(LÃ>åø?¹~?1Ýs?Ð ? ÷'? +o™>ñ-g?Þ…?Ý;?Pé?àT?Ò·?2">úZÆ>öøp?³˜?bÃJ?d’M? +×>õï>ýô$?xs?`%ý?w'?)ï¿>÷¹d?dóS?žU˜?¡ “?£Â;?^nã>²$N>¼~n>ÆÒ¾?hW×?ò‚‚?ä3ô?»ög?¼k¬?Àîe?æÉ@* @YÌ?{Ð\?`åM>‹åx>݇ ?¢X½?“¦?l¹?‚1ª?ý#*CL>TŠ>|(Q>Ušê?ŽÿD?ýo?ˆ?@I?v7Ù?~ÇÊ?v‡?:>> N=µŸ?*E?¯DN?Œýa?€,Ë?_$Å?hà>ó?üG?);l?‹è?—x±?É̺?Û,ž?­?›½*?d›£?\· ?‚É?„… ?²Œ°?¿®@?è$)?ꊻ?ÇÏ?ÀÀw?„mÐ?bÝ1?ŠGW?”qÕ?hÆ·?P^?‚ð?†Z?P.k?=VŒ?Žd÷?š]â?'}ˆ?Ë?ñæ?!a’?îp?Úà?Hu?eé¯@<@V?©Ã?|§ +?ä·?ûJ?ý³?V?·¥ú?Оd@ !h@ àå?ÿþs?õ°Z?e$Ï?5“>¶ºO>má)?Z#F?*Å??˜„>ïY>€Ò¬D5?Mì?}zH?@·>ù2"? 6}?­o ?ûÅ÷@ ?xÎ>¾ð?/éÙ?1’n?Sjx?d–á?ðZ@xX?•Ïc?xL ?žˆé?§­â?EE +?-æH?¤9?°œá>·sÔ>US¶>ób°?¢N?¸?Â|Ö?øQn@µr@ŽÑ@hJ>jíœ>:³?eNÁ?h‚õ?à¡4?ßν?ÂÝÐ?¦*<†GÆ;ò2§?Â/ê?ÁÎ?A{Ý??È?oœª?d—”?0%>?*U>à݈>ßvÐ?x/?ƒç6=¡_>p?‚"ž?uSê>þ—‘>èz`<ÙŒ=ìs?§O?Bb‡?ÛuÄ?ÄS?P?ƒÈ?‚[ð?r½T?4CW?ßD>ìç>çu+?‚y?‚}…?‚ƒ7?_V¸?ß?Œ+?(Y¬?ZY‘?ŸÛò?²°"?سp?°.Ñ?m^?'ã=.…†>q–â?Ë ?B|H?‚Ö?˜„?­G? `?Ö}S?ßs??ã1K?†E?ÿ8?½N?ÐKÐ@–Ò@Qï?ÒûÇ?°Â½?ŒI£?d3??Öøù@3Û?¨"û?ƒ=Ø?¼Íî?ØT8?PE?wûD>hú=”x“>ì¤l?×Ñ?º?3E?áé¬?èa"?„h?‰äL?¤9?8û?˜Y™?™³?ƒœÞ?€Jz?>'A?JÓÿ?ƒ¯N?|n?<j?k ?é¹ï?ñ÷Ã?í(?¸Ež>¹µ:?B‰{?åö‰?éN€?ë«å?Ðj„?‘íÎ?‡bê?ƒõx?§.V?Ò~K?l˜È>{›?m:?·Zƒ?dn´?‘?«]—?ÙÖb?‚Ú!?:÷Û?Š>Ø?¡ +„?À‹?ËùÃ?x+?Tz$>‘†>-ñ¿?}ß ?‘Ùþ?…¬t?„HP?rU¯?{ ”?Æw?ÏïŽ@!`â@þý?Â2è?´E?„^u?s¦ý?.ÿ?a˜?±°?»ôÁ?Æ Ü?ŸQø?+?£?T›?Æ©?ß[@è?¥T>ðv ?vÒ?©qŠ?›½D?›£ç?-ü>ÃÛ¨?B}Ò?nùz?c9³?f?–$?–k?ºŠ?Æ„Œ?Æ÷~?ÆÅ@?øC?÷n?o(?¦á?Bs?d„$?õ[é?àôÿ?d\à?›P2@ Åš@é>†Ìá?U%@2U?Þ7i???’=?.?)¿Ã?%l™?S•?„vr?§Læ?Ƭï?é§(@°?·‡m?…åO?ˆ_?Š([?å„B@e§?¬òª?’Ím?‡mú?„[Ì?™>Ù?˜LÌ?nçv?r$L>¤ñ>ŠZ?¤¸?¨:F@(H@ +}Û?—ˆ•?›ù?—>’?¬ýP@D®@ v?éŠ?´Ò2> äÆ>ÊK?…ã?ßAö@@Öï@$P[?ø>@4u`@{°6@EÀh@ ÛH@Cúd@søç@í³?T¥9?fFò?{òÒ?ƒ«?ƒ×V?‰*?¬´?SÖ$?0Ý7?Þ@¹0?¶‹v?žä°?µh +?¼UŠ?¹?ˆ>u?¾ â?Ãd§?ÿÞ? Pp?Ò2i?×ÿ?Üz?Ú”}?fu|?n/?°Xƒ? T?Jš?S†@ ù©@µî?¢‹?˜›?nD¿?‡î?Ĩ*?ÑÝ?ôxS@ƒÐ@#ÞP@[òì@£@s‚Ý?¡×?Œ—þè?t™Ò?Ô[I?ÉŸé?ÿ?žÐ?„”O@RC@C•î?ôG$?—-B?VH¨? žÎ?Ààß@ Fƒ@ñe?ëMå?Æb¢?¼‹?Á£²?½+]?¿Ò¢?ÂñÜ@ bj@ë‡?èß?Òõ½@ ðE@·@?u‚;?³Í?ë…i@êË@=s@‘z@‹b@6@e%@í?Ørß?Â_?¤B> bz?vS°?‹ˆM?#Þœ?Cê?rx?†4Ö@ xg@Kë?ì:(?Õ+ä?§&?™§>³ñ>FIê?ºè?Þå?‘“S?m5d?Þ??ò:á?í.–?èÍ?¼Ñ=?¬F?¨€0?­„Æ@ïïx?¿D?);¯>¹g=ƒ?.?÷'æ?úåy?ý Ù?üt»?ïG)?ÜŠ]?Œ4?Ë@C@ ¾‘?ž“Ÿ?›~@U;ö@Y3n?©§ ?“î—@!8@3s1@4ë¥@6e +?íÆ“?¹Ì?çx†@Z9?Ö·?­e ?å¾Æ@?•?íN? ˜v?‰¤?9?g?ª?ÅE?ÝØ@F@ /…?’qZ?‹°.?/áÖ?•Ò?²~d?Å#¥?´‚ß?­+@2i•@I©ù?Ôé%?tÒ™?Š[?™ a?ª«?Ä1Ÿ?êÄ+@BL@ ˆ¹?Áº?É(ç?ó¿2?ù‡5@a•@7i?àÀ$?Ùݾ?ðÿ?òÿ@/‹d@:&Ñ?ÄÔ–?}®"?kK²?K¦k?¸Òr@_»@"¿Ù@2 š@ï(?¶Êó?ÅÉö@U&@ñ?ÍU¤?âmù@ˆ?û“Ÿ?Öq€?×É?ª:¥?NÆ?¹Uù?â3‹?å¹_?é7‘?íH¯?í#%?ÙÄ?³Û?±W…?†“?Šô?I¾T?:é´@ + h@%Äw@*Ü?ñkR?å„T?×p©?á6?êŽ?Å„?nã?.Ñ„?íYC?í?˜?5 °?G ?xâ?•o?@{ù@&³´@.ø¶@:e|@|i?w‡I?Y„>òf”?Ìð?°ªþ?°‘Õ?Ï;?Û"?Úž?Í»º?Ù¨l?긚?³.†?*€¯?sÌ@ 4K@è?±æ7?µîº>þ“B>¯ }?Ûš}@ê\?Äå?q(ÿ?ƒd/?‡[J?z=5?3"N?j’@Y}@N@"Í9@$-?Çäà?–Ï?Õ6!@g?ÑÕ~? _U?£ó?ïI?1/?]¹Ÿ?hBo?ËV?î¯ò?× Ú?µ¼ð?Ÿ~t?Œ¨?˜w?€-b?ehÈ@Oí'@S¥H?‘¨±>æ—?2?Wq™?D†"?$?S?&l?/£„?Q.]?mœ@?æéQ?çüO?º×?­T›?¢‡Ä?c ? |C?¾ãâ?Ñù}@ +@ +Ó?ýXà?óýÁ?Û·?׿_?Îmº?´Ã¿?±HÃ?€ö—?†¸@M¯¼@HÌu@CÑÖ@J=ð@0ì@>@èA@Y@bþ?17ù?´Ý|?èã?ÒKT?Ï¢p?Ûž +?Ó¦¥?¾Ò?zñÑ?•kÏ@VÖ@^÷y?K =?Ú?š9-?±—?ÕCp?Ú€?©Ûß?x<?`1I?DP…?z¹û?ëÏÁ?ÁÜÍ?œd?1Š—?«Ë`?¸M=?´ô÷?µM‚?æYr?ï‡û? (>ÒG£?¸eß?Ê?º/`?¸B¨?Õk$?ÔÓa>ô}ß;?ž©ð?Ö?–(_?ztX?‘: ?•t?Ä¥Ç?é™à?p:?.?ÅðÂ?îä×?„Åå?Aé’>ë%>ÿ>Ê;z>ø?wÔx?V6>¿Å‘>øˆ«?¦L‡?¡¾Œ?…¾„?Sh?ÖÇ?*¦>ÜÄ©?:¢?C#?凉?ëø…>Úô?%_?‹tž?#á +>‹ã¤>ƒDé>Œ~!>×çI>t™_:ë7Õ=P¦?)%f?pDe?Æa>¹œA?…Ër?šY1?qhm>Qß>¯>˜ï—>ɽ„?*Ÿ?«`z?žØ¹>t= +>L >±Ò>ÈØÍ>îð:>óN>êjq>á÷Ö>Ø=I>Îu6>úÄ’?‚i?„Wì?’÷P? #·?.ºO? ¦?KP6?r<ß?$t*>ÁÌ&>ÎMê>ñA¤?&à?r?l[c?`Ѫ?hY?s—£?b«";ðrp<à‹X?X ? ç'>ú™0>õ÷>Á >ªì%?L}?w.´?# T>÷¿È>û*I? ‡W?/ÈÍ?Kw¾>úãP> +4=ñÎQ=É‚#?c?¤÷U?²ùš?¾~û?„+‘=g¥À?qÓ?Òö¥?¹ô©?ç ?ç>µüj? [_?ÓïÁ?ÈÉ?Eš#?WÃ?Þt+?Þ¸Ø?Éù©?Ë«~?Qñæ?FØ’?^?Ä?f¹–@IC@BÑ?vp2?wth?»Ô?½¢z? fn>þøÅ?Vb¾?R d?‰¬:?Ó‘?»¾Ì?¿¤}?º®?±ï?c¼)?G§?—Ö?£§†?FÄ?‘ „?ƒ}Z?€# ?ßÓ?òw“>ºZ=’dÛ?£³,?À}?Œ)$?1Õ?†Å?‹-—?ç€A?öÕ3?ê-L?ãIý?Þ›±?Ùè±?É?€ÿ?nžI?tï²?€Èv?€³?^èñ?f×?=y‰?+8 ?qh?€Îâ?;r>ÒA>L|2=è‘Š>OÒÁ=ý)?ŸÐÄ?¿å?‡‹–?tÜ?oyµ?jæü?•tÞ?¡M{?ôÁ?¨2? —æ?¥Ñ>ðÃ>Šš¤?cþð?yƒd?O‰Š?O2Å?‚¨±?A}?>×1?@wY?b?jƒw>¨ ]>2ä€>ùí1?+?°Ãã?¾ +ã>‹Šì>Ê…?„ +å?—:?ZÖ|?E"?&‘ù?).„?\×?m¿?ˆ ?—*$?Ûtr?ãz?¥0Ç?œŽt?ƒB?‰ð?”µf?“Å!?‚k(?–â?4õ¾?'& +?¼ýã?ÂzS?ÄV?K?>d?#éÅ<{*(>*D>XL?Ñc•?Ò’¢?PN±?WZš>£Êê>£*?sD ?};?êÌ?…¸’?Âë~?ÀX+?™?šñ¾?ÃØ?¿‡?¥>å?žï??lø?w²™?YIÅ%Ò?xë#?r5?vû?Nü˜>‰åÌ>·¥B?Pê? +T?*‹´?$,??cß?>äÁ?®ÂX?”5?Dt]?HÃf?M¯?Y-j?a\Ç?Yh”?^PZ?¦@ 2@`i@ ‰?°{!=T]^?)·ý?Á¿ß?¥¾[?€Yÿ?GÝ—?¿?^;¸?ÎJÙ@ ¯Ž?· Î?Vˆ1?"ô?¬?Üì‡@"A³?ÇLº?w`æ?‡‹©?“¡?ÆNÀ?Ý3Ÿ?\^?e»ö>íO>‘£Ù?&?2Á£?Åí_?Ó»F@`*@!à?4„?p&>€Í>™¸,=Ñ=óÌ?ד?Ë•í?+ó€?)˜à>Ãh†>É45>eIb>óéÅ?æ†+?Ï@R?ƒ¸Ô?^î†>¥vî?u4A@.ßH@Á?źz?™Ç#?Û6>ÁK?=óò+?¶¶4@Z÷¨@E&J@"ɺ?¨od>£Î?…ÿ%?à€/?¯O_?’%¨?.“>¾Ç´?G®?…ɤ?0O? ®?rÕ‘?ˆ%^?ž.?¢üö?S¶r?9]â? +h?:ƒ>ª·Q>ø?b?l]$?Ò”?#%?·d‘?´â#?{yr?‹ëÍ?ƃs?­›Û?õÓ?Gî>?²{F?ƒ{ô>d¢á?/h?–õƒ?³ºÌ?ÛDÙ?¬ØÇ?p¡ž?‘Å9?§b4?”-?„uí?ÕÒ@ -)?“ÿw?|?>Â'P>"$?¶¬?Àï>W©*=•Åq@ïH@A¬o?a®ø?Þ9? A_?Ð4?Žb®?™-Ò@iŒO@Z¼Z?©7?ºd²@3µR@%ƒó?ÂóEî>ô`Ï?â ­?ÖÌs?¤æŸ?´÷?àƒ?×+T?Ä¥ú?Ðu ?èð­?×´î?®NÞ?³lj?Öl @5°™@›ã·@X§‚?ƒÕB?{Ù=«Ì?4¡?°'¼?ž^~?‘Aj?rcC?8YÚ?œút?Û²C?¹ç…?žþÝ?¸@”?Áuî?íû"@ Õ¬?¦±ê?/©[?«5e?à—´?ƒÝJ?°C@% 0@j´Ç?Ã=­??ŸKþ?ÃP@"á†@9¢Î?«úI?Y„I@ŒÓ@+,@‡H?ë£?ɶ¸?·•—?Ôs¦?à‚Á?âÞw?å7›?ÑË.?ÐÛå?Õ£Y?Úm#?Õ³z?Ñn‡?ÚW?ã'À?êeÒ?ñ¯í?Í[«?Â#ß?òêU?øî@â—@!KŠ?µn–?ê?Zc?N‡J?wòz?pg4?³ûH?Á&í?Û’8?ãLº@ xZ@< @²Ÿ@ ±¼@'À‘@( ?zNé?V\?èS½@A'@NuÜ@_Cr?÷¿ß?Åñ?ú8s@þ?–£?`n¦@D²@ @@HÃ@K§/?—a>ùÒÛ?ž—Ë?ÈŠD@Òk@4dn@!ìg@Iº?âtT?³zí?Æÿ,?ÌfI?Ÿ~?‚¥?ªÅê?Ð ÿ?Àà«?«ºQ?ŸT€?œëÄ?å?~0«?D–6?/?¤á.?ýèw?§ëI>ýºm?q z?À.„?Û[Ù@æ+?Ý.?‰Ž§?cµå? x}?ŒÙô@Ú%@/5?÷=@iv@,‰@.ÈG@A¤Ù@46@@³R@c´?Ê‘|?ÓÊH?›„È?Ÿ½@$þ@'´?$´Š?ž^@)žŽ@2Ø®?ŸjS?…¸ ?y?ˆ? µ&?:@‚?Çä'?à?—£m?zœÌ@ Uè@/d)@2ËÍ@:}å@ÂÀ?ÕšG?Æúï?»qí?ë·<@¯–?åÕM??fO?oG?¸®?ª6?ƒþÁ?£"j?ù"?ü–Ý@ É?÷kg?½`Ã?É4E?ÿ9?ù@Ùa@ ¾?Þ?nÈS@£A@!g@Ü‘@šß?·(?}Â??¥®_?¿!R@ +ÔŽ@'|L@$@TB@ Õ?¹ ž?¤R?v‹é?¥ž@*ô@Ó“@<'÷@:w†@ÔJ@ÿ@5§r@73?Œ`?~3ª>žt>‚šÒ?… +?·?ÿ‚U@¹ð?Øõ?·s^?¦rã?’54?†òB?t,Ý?šÿ¸?éHÐ?íÈ“?ó»ä?ú>…@5(@Þµ?óLÛ?ó/<@!àu@"ŸÙ@;8Ó@CD?à0~?Ž¾¥?”ñ~?¡C¬?‰K¹?J Æ?§ñ{@äJ@,œ²@o“ó@O¿\?Ž“§?—Õ½?q,Å?q ñ?Y5?y•k?w<3?p’»?±{D?É?År?Á½2?¾æ?ºGø?ǨÂ?ï_„?ä«?³‰Ø?«}>s˜¬>—.à?b²6?nÈy?§¹Ÿ?ÂKì?éµú?æb?¤—N?n 5?‹?®ñ_?±kä?ªŸ¤?¥m'?½`?ÁH?)3ä?$ ?g¶Ê?ië?¨?s?Óâ?Ýò¿?ß¾?Ñ$ë?°ÿ•?¥–?g–R?\å?ŸC?-X.?í¹‰?úHW?ºÊÉ?±ëV?ÉhÒ?ÕÌ‚?¼šM?–;E?ž?P?¦J‰?¸ ]@+è@$é(?Õg?¼ @?Ìê4?Ýòà?éLƒ?Ù÷]?¼ðà?®Ã.?·q!?Þé?âZž?¯ñ•?²¿?ÀÁÑ?Î4 ?ãÈ?®Ã?°6?Ç"B?·yÒ?g¸?yÚ?ÁN‹?§k?mÚ·?gCˆ?t?„_?Ó@ÇÜ?û} ?Ò’=?Δ§?ýlî?øâ-@UÂô@gd¤?²tÉ>öš¹?³´r@¨r?É—­?fv?€bó?µõ?¢ó2?[²?*¥ž@Y!»@‰Ó—@v¥?gô“?Õ¦2@/·@#6÷@J}@ T"?é‡?ûËù?ïõ?öŒs?¡¼À?A\?{Ì?àÐ?Ù8Œ?Ç©–?¾“ý@e¼°@eÅ1@4W?ü[ä@›C@:k@ fN?çîÙ?òaz?û¸ö?øö@co@Nε@6Èe@-µÌ@D0@N¢5@ ~R?çMÛ@:‘@aíÂ@S¬[@ +å@+D@9®ó@8"¤?ÞI7?ÍT*@™Û@ú4?´ý?$›_?¦å+@Z@ D¡?ÊN‚?­Š%@¾@ å?í¯ï?àýk?“$‹?…D®?¨  ?Çi‚?º N?°NL?àˆ¥@ dý?Ü+‹?¤?F?–e÷?ˆ¿‘?pr-?vZs?ɤ¡?þ?ÔÍè?½Ï­?âÄÑ?Ö¡¤@ø`@ –x@ 9X@ˆ‡?ûôd@‹=?'ë?„Æ£?Çãl?ÏÊ?Äÿo?©`m?¦¢ÿ?rB„?n{?)£>ÌØB>«>ˆ¹é?‹D ?dý‹=zÜ=>Žw?Ϲ>\ø.>‘÷?”ÅB?$ÆÝ?‡ŸË?«­j?Òò>Ò6'>uù>QpË?ÁK?RËt?«yÝ?¡Ú?Hƒ>?N'N=t¨?$3©?dÄb?(Ùî>êì?EÙ‘?¡â?‰ƒ4?·:?‡C?IDÈ?D‹i?&µ‹?*îê?ï>ï–p?Pœ?:>ãÔx>¦ D? +Î?r?L6A>òáZ?Ø?s³?súK?oƒ¶?]ø5=J"`=Žz>ì)Ð>õúe>1Ä6>-×>›“>ÂI>ï¹>÷¼µ>&o¯>2¾>žÕ+?BKm?„3ž?9v­>ù¼>áQæ>”ža?_ÆÛ?õÇû?·?ú>ðûû?!áß?…<|?J'=É–>U±C>üÃ?F7?X§g?ZEa?5 ð?M¡ë?Ÿ+!?™îõ?Iïî?`ŸÖ?¾9“?´¨*>ýã¹?U«@á^@|? F‰?.ö?yóÕ?‚¤@;õ@*?Ñ?Ýg?Ïÿ?»è?ç:w?ê‰~?‰Úu?G®@²’@Ý—?á3*?ÕnC?“hé?‡ø?~•?€™?º”?ÀAò?Dø©?%Š?Æ·÷?Îø?ÁZÀ?¿ü¨@@ç@ÕÇ@œv?¬$Ì?ÈŸ?ËíB?Ô+5?ÖWƒ?Ðøi?$…¶? F?•p?Ÿ~³? ;>ÑAp?Ÿ +1?«ºü?i±‹?_Ú>£œÈ>C:7?d Î?€Ôý@)4ã@<ãI?V2G?ÖÒ@ +ñ¢@C£>×ô>3GB?gý?€ýD?™ü¥?˜¾>—@Ô>G·¨?žå?©„?ÚS8?àÌ?ùõ?ŽN-?ÉzÛ?ׇ9>Dµ>²5->Ðý«?ª}Ê?¹û¸?‡ +è?;ì?»Ò8?Áè?YC>êq_?îk?]ÿ?z¦æ?Wø?cê?[Ó¾?Ún?fˆ?J0K?J^?œ*¦?¢DÒ?ˆ +Ó?‹Dš?›#?˜’ð?¬.#?¯©?³ü?¬I§?©gè?®·?³!ø?·i•?}Ò?€Ö?äw?©ð?knƒ?e¸À?£xÐ?™á?<Æ*?GÓÆ^¦>íîÄ?D±Ó?/v³?ï?¾'?ë˜?Å“?à”>åv=Õd>O’>ئg>«z!=ôAû?4=X@“ +?Ó>>>ä­>Âb3?aCq?eŽâ?DÚ?+œÉ?|?oÁX?Ü ?¡©?å?q÷?Ö?§TÀ?0j_?/µ?-ÉD?G—?yÂø??‚Å£?€6?yVÅ?B-?¥ ?HÞ?hyÏ?«Žø?×LŸ?¿ï ?­LÂ?´G?³Æ­@ö‚@-Ý?÷¦|?âG?]§Î?# ?B )?\>õ´>¬ƒ?œ7f?¸.)?ÖŸ”?ä¬@KÌ@]Vm?¢= ?„òU?»Ðm?»g>ýüb>âpÙ:êe< ðü>õߌ? l?ž"ë? Îþ?ÑÍ3?±t >–þ&?p@ÎŒ@ +<1?¾Sç?Œ˜?oÓ@tu@Y?¤aê1 <ùd>%Ë?Æ>E?·Nã?~N{?'ô?Ì%?„Îç?R ö?”¨?äí|?Þ‰?ÜË°?ö<‡@‹?ÐG4?£È?î?JX"?Žº-?«©a?12O>­ã}?6Ì|?cð©?h8?l}û?.98?j?ÜÜ‚?ý“ù?’ÄÎ?„xØ@e‘@°«?È`?Âý?ø$I?ùØ3?’§’?®Xý@.Õ@ ?±ø•?´F8?«³ ?YM?€èQ?Žœ ?™ +ƒ?µ{&?üFQ?é)€?Æ°?½…{?´þ¬?‚pô?)•?e¨š?w¼>è™ô=‚?­©@)?‚JA?¥S?{Î?>:?ÞÓè?îG@ +‡@ î?¼LÌ?°’?¿ˆ??¹Ö@£l@³?ÅHB?Ø7¬@!6æ@…?W:½?jâ ?˜h?œØ¬?¶iµ?Þ‹?@)™…@ d?z¦?YN6?®.?n…Á?ÈgS?ÌÌ*?ÓY?îs@üp@øN@ó¯?ÜGW?¿äÛ?¸*ù?­j6?¬ #?µR€?«8Å?¥Ô@%@2Ëä?ÌÃá?›n®?…WÖ?fº£?€Âç?y­3@"Y@.Ê@%6ƒ@$wP?Áç`?Ác'?;–?ËT?›ˆF?©5?ñɘ?ñ÷ì@ ¨û@ßØ@O?üù›?&>]?IíT?Ä×?Ía?ä‚e?ੱ?ê_Í?Ú1v?­P?Þ¬@#Èó@JǾ@ŒF¾@j¬§@@ÚK?¿Z’@¬­@bö/@’I?rJ§?~¥ú?Œ!?'Ž>`Þ°>è V?'ø‚?‘¦Y?ÃÍ ?žÙg?‚y}?Ì« @u@ Ã@ä!?›Q?™zÎ?^}þ?:›?ŒU?îO?…÷?‚9?;*?7Ö@)©ò@aI ?µ>u?:ñã?Ô8?Þp?™lI?¾·¢?Ÿ>‹?•½v?ë›i@®ï?Л?Âk+?Ü´?àµC?©íÛ?›Â?fS?Yve@ +£„@?~#?-?g?;·?Ý9?ÿì ?H¢?7+?Šç1?œUð?²¥?³e?#ÝB?àä@ ¢@]?ó;!?ä Ã??„Ç@}n@ YË@0et@5¤@ ì@!Ûä?¹hÀ?•"`@!¬@8ˆ(@rü@€ +I?Ð?…l¶?ºdH?ʇ3?‘ð?€ f?Ú·I?ý«+@óŒ@ õ?µ¡Ê?„9ñ?”«‰?›œ?Ù¨€?û?B?Ю2?³ãÉ?Žá®?ƒ?Þ4ï@ üÙ@+?ûmï?ý Û?ú¨v@ ˜»@ÍQ?È|-?~NÔ?~>Ù?~(¬?xQX?eÎ.?³pÁ?ýÞt?Áb'?lß@?´ÐZ@_Í@"n@/F@Ó?õóŠ?ÕIí? ï¬?Å Ê@\×@`è?üÈI@ˆ3@ W“@Â:@e0}@VÔ½@ 1Ã@rä?̇=?Ƴ€?øz`?õÀò@A@¼Y?J4?h“@ɧ@¬Ì?ûþÁ?û>p@R¡@•B@+ÌÜ@)¯*@.Æ»@.ç:?–¥?#!s@$ô@NÀ@s?º#ƒ?Ð|Õ?ßâ6?Ùº?ϵÜ?¡£??S1í?¶‰Ì@¼Y?ñ ¾?y_ù?¡=y?ò?È?š?5Ð?;%K?‰¹?h&b@ZÁ@ ?W@=Í0@:²L?šÎŽ?•m¡@n~@š„@Àc@&S=?ÇÿÊ?—6t@f’@9L%@5Ü@1S@2?Üã ?õc@„@b@Ã7?ç´`?¹?Õ0®@ u@âU?ÑÝ•?äÞ»@%cŠ@!°á@NÚ@~S@ší@»?àW¥?ÉyÀ?£‰7?”Ѫ?º÷¸?ÚeÐ?ñ&Ë?ô•š?Ó\õ?·CÊ?žmû?t(Ü?ˆøæ?¬eØ?À–…?û^Ê?õú?öH½?÷¡&?Œ¾ü?“{ð@V@!¹&@ @á/?Ï¥?¼¸?±·í?¡±¤?§¸?¼Î»?ÔÍ?ë{Š?ßLä?¸ðŠ?Þ7i@&¥@®š?¦KŠ?¢©P?&M? ?†ós?”?Â…b?Û°|?ß0?â­_?Þoˆ?Ý|]?ÄaË?sÜ”?i{?½4?|âó>±\>¢,I?cN?nÂk?l,Ç?]Ìk@ë;@Iûš@ >?Œ?å?€Eç?mÑø?…d§?²' ?¨F[?%©¾?4ß¿?®á–?§K&?û%˜@*ƒ?Ì*ð?¡§!?ª!‘?½àw?±Îe?§;C?‹Ž¦="bö>Ma?›È?“Äê?ðñ$@½ï?·¿7? ä?¸žÝ?ØÃò?¨ ü?>ù–?#s“?Ä>ñwý?•è?@fÌ??9?SW§?ðp@ >?øº?ûÚ¯?ä7•?Ø?¯D¼?ÜîÇ?ÈŸ?鉸?å§\@ë@àž?òUë?è…?À¢?‘‡ü?*`?ˆË?ž».@HÝŸ@S«¡?›F.?hãS?¿íÝ?Õ+?úƒ‰@R@!áa@>¿@.˜3?ô#œ?ý ä?°vE?¬Éò@&M§@GÜ@÷»?ï "?òÛ?é`?Öú#?ÄÌ^?Ò¨??ôþÎ?þÃf@#ãŒ@7Ëa?äËF?e¶î?”úž?ØôH?ëñø?ÿ™@ %@ +Íž?ø‡?À¬ ?¥6@ù´@*Ça@”B@ |]@Žç?å®?æìÐ@UñÐ@X|¾@]@V™þ@T"@P¨•@V…¿@7T+@±a@sé?é¯@I +@bx“@Zä@WJ@T˜ô?»?Sü]?×é@”G?àNc?”Ë@?@Qc”@GZ;@6$G@6¡g?° t?°>Ü?yKÞ?~Wó?sÑ?l?Œ >áÊÌ?HZW?išå?­'E?ìÁ?Ñ‘?ãÔ÷?ª+?‡¿t?p$?—þN?•š¶?ñFÎ?ñÀÁ@M!r@S€??Ôy?Á¶¿?×G?çz¦?õîÃ@ÔD?¥ÎJ?vÖç>˜Fˆ:9h?¥æœ?êÓŽ?óÄ?ús?·Ö1?’°>öð¤=ÚÕm>¼’?°/?3Éé?Q?ÀVš?é±ý?:/?­œ?)½§?½Ï?Ã.?¼§ó?X”R?_Çø?ÊÎ>·÷Ù>lìo?Æ>>€¨->Â'Ñ?=¶?Íî?r…×>èí?XÍ? Çj>¦¹ª>(Ÿ]>nñ÷>›é?= J?M °?Dé>–Ö›=¤¥D?©#6?¬Í?fSc?'ßÿ?uæ?Fm?#:ã>Ô|>§Aë>‡^Ï?@bQ?MØì?…_¿?sØã>­ >¸©=ªÂ:=T*[>Ðå>õ±è>éß'>ê6•>ÿ"P?$÷?.rü?QÍ›?Yÿ¡?Ÿ‘z?U•>]>QÓ®?!;)?0Í™>¯ä>;É_>„â¾>““Ç>ë­¾?<‹¸?2f? +)×?P?fŽ6?pÛÍ?t`_?iìö>Ú¨N>Ï)Y=º™O=ä^?(úù?)=¹ªO>Á00>÷ÃS>òR*>Úv>„öÜ>2|’?ž­@ÕÈ?›cç>ù¾?§‘F@ Ä]?×%N?vT?Gz,>ûà?+žu?{g£?n–?I4œ?H%ã?XÌ?=bÒ>üq9?Ð?Eq=?>–??Òb?CSR?2(?KßÄ?¾6{?³1U?>w?FM°?³›"?±ph?~WÚ?nâ=—=AϨ?aú?=} ?åÉ?ÝØÓ?Ö¡…?Í a?mõ?|˜ë?7Ÿ>ÿ™«?È®d?؈(@Ü@Qì?³Û^?¸Œú?˜n²?“#ï?N…?•gò?³x?¶Ï +@,ʼ@6é…?ÅÐI?¿š?þšê@Úû@hÿ@ ˆÔ?ïö©?äì?Âà;?ÀÄè?¬Ûâ?°Bp?[ÜÈ?H(?8 ç?GkÊ?™í¡?›‘?µ9`?À ›??ÀÄ?ˆ~Ó?G‹?p“ƒ?qå'?ºå¥?ÁE©?à ?á_?†!?“¾¿?ªÌ>Ö^ž?t¥?€ø?LL?Q)8?.l?•À?ò²k@ Â?ão5?ãZ$?å¢?çì×?e:j?V¿k=~ '=â:n=˪Ÿ?s ”?3œ?†æ#?„õ[?»“7?ÁÒ+?YB?wL*?t?N*?·¥?~(>Œ¾«>˜O?Uxê?SÉK?4‚_?9MŠ?ÅTO? Ø?¾.?ò¼?Á%?Áîº?ƾ?Ô÷@Ž@ô‰?L‰²?>¡´?!ý$?ì?.Ý?ø²?À=?ÂX@Ò@ Ô?‹ž€?Œb/?fô¸?lÒž?°°?¬‡±?³ë[?½¢¨?§jp?–Ãù>„êŸ>¼(9?—¤ñ?‰©M?3ê?4dA?[z?;ÈI>™>1?áI3?È~?ý?h„ª@¯0@lk?¿–€?ÈsØ?ëÚ™?ºõW?=í?mû?I–n?_“#? Zb?„§Ë>§fÖ>Wìƒ>°ÕC?‚oÄ??Øo>Ì?L\ ?Ó|£?’Åz>³•>Ú4û?™E?]E?«û ?×WÈ@­á?‰À<Þ…•?Gm¨?ÂÇŸ?Ÿúö?‚Î?|ºé?rÍ?œìP?¶=ä@˜—@@m§?ÍîE?]]–?¸ö ?ß]l?ë?üë?ïèD?çü?0Tö>žc‚?fÅ$?‚Í?>¡ù> L?E +?kí>—'?£[Ñ?»Wê?el?.Ž?¿_ã?ÅT?¸ÀÝ?²Öë?\¹Ê?N0>ËÞþ>ÔÆŽ?Ošæ?‡àz@$zV@/à?´Ï„?¸§L?å1 ?îÖ!@²m?ÏA >Íxs>ðÎ ?.´?Aé?ËÅ?ß@ÕU?Åì­?JV.?ÿ¾?ÊoI?¦3Ø?ƒï&?…rQ?ˆjÐ?=Q>­­@?8?ßÙñ?¸.?¦Sm>ýdw>*ÿë?R×?„Ê?Λ?ä S@B@&<ä?æ¤-?ÌûÝ?Ý@%?ÝØç?Ýã?áG•?•qQ?‘q7?n•?i¬p?Â!?„?(SŸ?;? +MÄ?‚þ#@Š›?óÇ?˜?>ÕÊ?„_q?¶·–@de@ +ì@î8@ +½ª@ + ï?ßÌ2?¨ŽI?4Jp>‰^D?–ƒI?×N-? N<?uPø?¡¹©?`òa??Òî?e ?sϘ?Šl[?ŠÆw?ˆ¥W?†ƒE?¶?‘«?¼»¨?¶#?ÂB?ŸWF@Có@A@V™@@1í?Ü°G?Þk?î‰;?ÐXõ?‰@‚?²h¸@_ÿ?å‰?Ÿ]Ö?¤Ê?°©?¥˜$?–¹?ƒ£?lït?˜—Z?³X'?uT?$T£?u:ñ?ˆ•?² ?¾¯p?DΉ?é˜>Àê–>Éã"?Íà«?èh¼@ü·@G?ßÿ”?à ?â@ñ?ß×?†s?Œ +W?øÜh?ëÂH?6˜a?[²ÿ?ÆFê?» â?”–Ì?xBÓ?"ñ>ü8Ç>é§Ô?aý?ÉYn?üÐ@#MÓ?Òðf?¤ä?«æ’@út?²é ?]àB?z¼?ƒë ?ãCê@ ï?ŠE“?Ø$?Ò³¬@K6?õ5WŸä=mÏÚÔp?}uæ?µ´?ºP?±Àç?»¯®?Ã!?•Z‘?…$?°z?¸é?³­X?®ÝF@(à@%>?¬S?½(?Æ{?ÚѨ?æ$í?æ?‘¨V?‡¤g?fØ9?h_Ù?23?kA@pÀ@9¨,?ß»3?Áë÷?8,½??²?‚+²?†Y@+™o@8E?¢§??U?åÉ)?ôOQ?Ö²?Ê,2?ÒÄR?Þ¶µ@4@µø?ðà?Úô@D£@ ¿Ê@ÿ¡@"Oß?ß?¿Ë\?Óà?àsö?ÀT£?ºÄÖ@E|@_yÆ@¼?ö§?Ê„I?À,N?·è?€ +h?±”a?¿òõ?Ížt?Í”@¹Ò@!@~?žte?Uç(?Ržõ?QS2?âûî@ ¼d?ÐÐt?¥#»?aG>hî?-—ü?z¾Ô?Î_?þ™3?u!¾>²-õ?¹¦@ œÉ?ñ¾§?×#?Yä?bc?„š[?š3ÿ? ”?¢wG?šH;?‘dS?÷€@DN@L¬v@ZÊ@bíá@kð@:Åû?Ä+?•ß=?Â×ê?íî@2°@CôK@…Ý©@i)??©ÛF?Çs@/cÜ@-ðî@,zv@)¼*@Y@Q•?—a‡?œûÂ@¿:@ …@ÿ?ÿ³T>8µ=lŽm?«‘??ÑÐ7?±ß?±?]@Œ@# ¯@¼Ó@"á@áB?ÝÁq?×ÒF?Õáª?Ãw=?¼²@ @/¹+@‹ª@á?ÖŒÒ?‡AŽ?|äI?ƒ€y?loC>ù +]?@íŒ?éÏf?Ùž?ÒB÷?æÝâ@6Ñó@9Ås?ºÅÿ?º&Œ?Ú“?èüL?Áq ?¹ß @!Š@2Ôí@9’/@9þ»@LÌä@U‘\?þÁ=?‡\ª?’hs?Ÿ«??âõÖ@/ @&Ò @9C@=›?‡ “?‰®^?±\‰?Åö@QT˜@NÃÕ?¸CÓ?¸3l@aý@\E?ÏeÝ?ÂÞœ@ܽ@t÷?ϨÄ?Ÿ`?º\(?Ö:ç?å4?æì(?¾Å?‹8ï?‹â¹?ŽÖ×?¿ž¶@@“u?ÌõÜ?Å÷!?ÃG«?ÂtÚ?Ù#5?çÊc?½?aÁÞ?~¯K?–mŒ?Ÿ@#—i@+=÷@: Î@;®Œ?þî?ªï?Ñ”Ù@ Ò‘@è›?ÂEÃ?½»¥?܆Ê?ËøÐ?G(>ý:¼?VV?†eA?¥$ ?Ò3(?Ùm?Ë;a?½F—?À8 ?»Ð'?Š?qå ?¶G‰?à -?Ç’~?¬;g?¬5À?¬3 ?¬1·@N@%OG@pF@•%@Ì÷@|Ë@Õ @ƒ±@0è?½–?à O@ +b@"d?«Ç^?‚‰A?× @ +;;@ÆX@ N@@­¯@mH@I•—@IªË@&¿@$'<@_?îQ@âÕ@,%¤@;…?­÷?Ácm@kþ@.Àù@9‚†@D~Å@<™@A"ø?®2Í? õŠ?›’Ý?Û@@$;@…[>@l-ó@!@ ‹ò?ãdž?ÆàÊ@ ^Ç@ +i?º`b?Ÿ…?§LØ?”ƨ?¡ýÅ?ÉŽÂ@4‚@–P6@fdƒ?ò#?ByY?o ý?vƒ£?•ÚÕ?ŸÉ ?ñPY?ñÄ´@&x @5/x>Ùì>”ª?6ú?_Äg?ÍÙ?‘¸?—?ŽÓT?!¤î>îžq?âpß@àì?ìj?Ù|®?Ømb?Ð/à?ïÿ?r„j>’'=jª|>ËŲ?‡>ñõZ?é7?ƒÃ?°9?ÿV@j?! ?JÚq?˜>?x¤Â?Ï–>ã$'>HBJ>”Ëþ?Ç¥?<ð?H”z?(Ñ6?¼¨?Ò…Ã?ØÛ¶>½>F:—? ÊŸ>÷:1>¾‹a=ªÈÎ?‚±>»ú¬?[? {>òŸ\?$\ð?d$>†c¡=ø¥¨?iL4?>¢?#?£> +·Ë>>Sï>djœ?ûý?§v>äõN>µDW<ÛF?'ò?@?˜ŽÐ?­Ûp?I»³>êO1?&?Z+?"j6>\¾>§®?BRÛ?KBŠ;?†?â6?7”¸?0Y?&u.?‘Ð?) n>ìšó>PÅy>Ù£?Ró„?þ>X“?tf|?U-æ=\aÈ=‘Ô0?£‰?¥SG?/L%?=>†ž«>nÓÅ? Á?Bo?o >øÇ{?3êÕ?VúÒ?# ¿>ù·>ùó >ú(â?{T? G?6“Û?uŽô?E“–? œ?b0u?°?x?§>©?Pt?ä?bìF>Ý{-?n?xÚn?~¦Ñ?˜U?”#?”™C?ˆ?®yQ?©8Å?~Î?ï?‹d#?”  ?ýC?æÐÝ>þ¹?9 ?2Åy?9l¼>ÖºÊ?Îa>ÿJA>ö>9¿>gôÄ?G­@?D  ? ­?¢œ«?4ÖM?/sx?”„â?™q½>…=íZ¡?Šö?‰º7?qЯ?v®=Ê”ê<ŸRÇ? ‚ò?Çý@ƒ?@!I@!Ö@uË?O÷-?LÛ?©×e?©1G?¦ás?¤’/?wš>ú±Ð?Lu¢?aØ?ŠT?‚sw?Pêî?FT?ʉà?Íç]? çÌ?ÇÜ?µSÍ?½«`?… +?~üª? ˜? Ê´?Óh?è ?¿?1:?]B½?Z†÷?— ?€üH?ü·ë@Ó?Ä Ä?Á”?¥u/?¦ø´?£žG?˜ÿ¡>÷È1>Ó>¢?Õ?[2?iÖø?q2?­a]?µmC? ;?Ýß?V;? j?²& ?®(Þ??'?LH>Áæ +>¾eâ?ظç?ÒU·?uØ?’?™âD?Ÿ ’?m?Œ?g…ú?{g?¬ñW?¢©(>½¯l>âè{?ÏVâ?Õ´?¨¶t?¿+w@VQ‘@UÒ„@`?ì[Ì>JN>‰³>Ä)>ˆø?¹?{²n?Jc?_ñ?•©?—¥ñ?¼o?µQ!?EHf?_€º?ÉZ?¼6C?Q¹y?WåÆ?Tê›?+Ø7>c:>]à³?AH? c¢>äí ?8æ?Ƨ›?£ÑÂ?iC?/}?#æE?ó®=ž®?{ýc@@j;@ +~$?L¨?á ?W?yµ?˜aÑ?˜-;?¤AÂ?ˆã?1j±?L ++?‚‡?) ï>(Y£>À×Y?$%?T–?u?œ¼´?ýÃ?še›>õP˜?‹?“Â? +¬b? ÚÕ>šœû>‰ê??ˆ?f®@`o@M@?·3?óg?›~¦?Äy¨?á¸>tD?šHv?ÄœÆ?2ؾ>Ô8? “N?Ãh+?uZÝ?K€×?Š¾ª?†Ý=Û¬7?ŠŒ?U?€C +?ƒM(?Ãé(?Âì> ÒR>~Û¯?»1ç?¯71?}$?(„?b4?h­³?œnT? PA?’y?’d®?€a?„sF?hÞ?WÍ?XÊ?vøç?Åå.?§# ?nË‘?œm?ÞÅA@àŠ@$ÎE@aµˆ?`'l?„Õ?š=ó?¡Z­?¾eF?ÇÏ@”ž@¯µ@I…@CÑ?ÝT«?Ñ.!?¢¹}?‰w>Ò6œ?·¯?–ï?°2¾@ @¦@)”Æ@E4@!žâ?Cù?Žpb?x;;?¥Sü?ïÆD?¹¢?h®ž?­­U?ð‚?ÈLÚ?ü?Þñ`@ $?¿É?än?²WÔ?Ú1?x«Ò?Æ ?õŒ–@D ?Ô¥Ì?·>?‰‡>Ü=W?¥Å¡?¸ä5?½+b?Áq? Ýp? +ýú?Æ´ð?ÓNk@5[ð@"C˜?l¶?Ò@T8@%Tû@1(ý@ -?àƒŽ?åÄy?êÊ?è  ?æ{K?¿õ¹?ªé?£³’?²ÎG?Å–L?Ù€!?„‡0?i˜?h†?fp?áá@cÐ@,—Š@Bš“?N;.= rƒ?O%Ç?ySß?dG?X‘ò?éýº?ø@s?¿„-?Âi”?œHN? ðˆ@ +S@*?ÆYº?Æ&ç?ºµç?ª†x?„.ø?–Á$?Û¢¦?Þ,@?è9’?´#±?h>»ÓÄ=ƒ†:?NB@$@rM@$ßo@7X?ºÖÈ?Âÿ?Ïî¤?ÚßE?Ü §?¥ªÖ?ƒå ?ÈÊc?ôN¶?³a”?ŽY? ®?↰?²ÏH?™Ê @—W@Ç[?œâÀ?ˆjA?”×9?“ƒÖ?“lª?†1à?¯»ƒ?·¡?÷Þ„@hö@"T@"h@$Jó@m4?–2ò?œ!2?­C?»Q*?áºN?ÔcØ?±,"?¿ ¼?Ú\?ü›@C9¬@"…?Š¶?~·?3Ö´?k„?¶ÈÛ@kU@<Ò@?-^ø?¶ÙÑ@ ‰Ð@¬ã@Ç'@|Ý@xˆ?÷hš?åzÂ?þ¹æ@Ë@Û“@ dÏ?öN ?Øuƒ@,öm@Tµn@E?¿š4?ÄÙÝ?ÄR?\¬L?Eú?vUª? ^?‘?è×@<@E™?ý9æ?ÃK?ÁE?Â@A5@¯(?…°C?'ÂG@!ï@B¯•?ÝÆ7?¯ŒÅ?qÂÕ?`ïÇ?ªÆ?ºÖ?2K>ú¦z=ž+à?Öª?,Ÿw?tà*?V(?Ð’Î?Ù›-?•XÃ?ˆ+®@²@T?O›v?"Ï?Æ!?nn?ŒuO?›7n? $ø?¥ ?@j?.àÁ@Š@¼n?ÿö}@M@@ ºÚ?K ý?…a@(›É@@©Ë?{ÓŸ?»'?|ð?†i ?ëB¸@Zö?›nó?‰÷@ ã@1Î?ƒØ?a‡?ƒxp?“Äa?§¼×?±Ìn?Ňç?ÖzM?•±b?d¥¥?¨ñi?´¡?¹wÓ?¿e‡@7ø@ß?òÖ?àkµ?z„? +ƒ@*èž@x?¿ +?zQ‚?Ú„-?¢)Ø?rqÜ?‰C„?T‘?‡ê±?‚À?@?šð‰?†¿q?Yr??–äõ?Úéo?ÄT?–!]?§z?„Ð'?Ô²ð@=Ô3@ ¨?S²?á@Í?ÿÜ?¿‡Ô?´^)>¬Ù“?bªk@rÖv@d1B@¥ @‘?íö ?ä£?#šg?áŠ?ë.V?ñî@^3@ +Ò@Hù@ªv?›×c?„v ?*y ?îÑ?ó9 @!t?Óéâ?­ë ?ÜMæ?ø?Ø|.?Å|?¯÷ ?Ì+@)F0@ŽTN@o>@$ªÆ@(Åë@6Þ@/¹Á@ºR?÷ï…?fW?„Añ?ÙH¢?ã¶?ö¨%?ø&l@=ñ@:AÇ?Ö¿8?Ó—†?…ÚÌ?oëì?°Á?¹ÙE?ëªè?÷š«@>» +@Xè?ÅÊè?>4?³œ-?ßlá?ðé2?þS?Ý=Ø?Ä}ö?Ô±M?õºò?ö‘ˆ?Å? ?Ü|@¿I@âp@>;C@8“Ô?½j³?º@3§i@5ÅÑ?ŸÚÔ?…œ ?Ïï¼?ìpX@8e@Jéˆ@7Ô?óâ›?Ø,T?Òu´?Äí•?¦ =?´öt?ÔæÛ@F„@ã@wž?¼®!?Åóš@`?û:@ ù @ Ê®?Ç?¶[?˘#?д%?§Ág?W?Eb2>òà>ïÕù>¥ã:?\›?¶_³?Ίÿ@Í1@™t?ÓE?ËÖ)?‚Ñ*?‰5"?F›M?9ã?a¯•?pF?ïiÍ@+ˆz@¾Ô@ +Ç"?þqŽ?µ*p?»YG?ÍÝ|?ÓoÈ?—Õä?Ÿ&!?Þ³[?é‚+?7zˆ>Ǥ ?¢ð?Õ‰½?®n?ŠÉW?[??ÍÆ?7J?»ìl?¼ÚC?®y?—Hc?é +?àð?ºõ?­3A?˜<—?̆?ÌiŒ?à|-?Ó"ü?Ä×8?› 1? +‡ý?,#¾?°—s?°°?(#?ŒÔ‹?ÒÅ?ê×H?§z?jžQ?v!Æ?€uÿ?¢ÇQ@:ö@J?å^`?á1œ?Šž,?…¤ê?T{‹?7'5?ÙÐ*@'5?×5>èñb?<·d?è¼.?ê4x@(t@A*?WÐ?&. ?â´ó@nÜ?û’8?é*ê?¶Z…>W>š‚?5<Ô?ñÞ?Õ_?êeK?÷ÇE@F?Ñžò?™ñ­?•tk?ï??¢‹@à¼@UK@A‹ê@F×@1Hù@)+þ@\B@/e?Éè¡?†›Õ?”²?É~Ã?×i^?ÒÅ?×&`?Ìo(?¼ ð?WAW?ÿ¯?†8?ØÇ?ÅK½?‰/–?øÅ?ÒÐ?\·?Ê {?׃ý@ /Ž@*F•?ÿÏË?Š`‰?Èg)@9E@,ó?åµq?å½ö?ÖI?É°?º*Y?°ú0@-$V@‰é1@wp@Aó@;Ó;@ ‡@yö?ÖÿÆ?Ý´õ@‚Ó@q?¬®î?Ýß?ª¼²@\É@?@Jf½@7•ï?è”Ý?è#®?ßa$?ⶠ?ÁîØ3?C—?o§=?„èš?ÏÑv?½Hµ?¾ð¿?Ò89?2­6? +Ò=€ô:?o|?‚Y?«3?¸N?Ç%µ?Ýè%? œF<êQè?cšý?°[Ú?¢†#?œRK?¾­"?Ø+Ž?lõ¬?e ?SA4?[`û?¢ð?Q?:Ñ>ÓgŽ>¶«1>Ô@/Kº@A1‰?²^B?£&?œE'?¢ûr?‘†¬?l>?`b?DÔ*?Êß?MÏ?¸L«?°Ý6?©e¼?<Þ¯?_†Ø?š?h?B¶=kq¬>®u›? Ð> +¬~6áÌ?ÕˆK?£Jh<£ŠŽ=üØ=àê?%–´?*®˜?S4á>æ³ù?ªÿR?ÇèN?d t>Ç5?Ø=3?œ,@?pÙ>êŽk=Ð0>U?בÄ?Ý'?~Ó?fê¿>œ¿µ=øÐ>‘Ü$?£>· ˜=¼ý]>íˆi>ó¬? Zï?zÙ>yÃc>(`?vÊÓ?û>³–á>Îeæ??‰->×’Ò=#ï={àŒ>‰qº?tpŠ?q|?Xe?C¹t>Ä´æ>Í‘×?åd?âÃô?æg?wTe >Œ¯¹?a€?(G.>Ø…i>µi[?d?†`3?+`4>ú* ?P¤•?ƒi?{€i?zü-?uË_?k½—?yI?Š§ç?P 8>´ñ ?}˜?Y7É2? ât?Ÿ0o?¡»•?¤Iþ?†³k>ªiÀ? )?}Í×?x+\?gûw?‹D?ëÈÅ?ë +V?Át“?¿C?·ÆB?£·>þåX? +<7?I½¾?XóÈ?ȵë?®#=®Ì·?’ ?tRT?ªÝ?~8?šn¶?”wQ?+yt?$VA?›? +°1?À2A?»Ê”?2@? +|[?úÿ ?û®ì?|?ã?u*?) ¹?9Ûä?£/6?©†–?N,?½E?•*)?˜æó?ç]æ?ä£ç?¢Æ©? áÁ?“ ^?‡@mÙ@ym?­~‘?¯šö?ñ‘€?óÄG>ÜÃS>à†@?t4.?z3;?½”÷?Àÿ?ºŸ¯?µ˜’?>;?Vä?hNÙ?d½?¯ã?­{ù?,~Œ?0Î(?Žqo?—Ñ @Â@$ß??‡?€ÓÀ?ßCm?èâW?­œÇ?®æ®?båû?g¢¬?.$Ê?"ÛÕ=Ø#8=ËV&?¿…0?¾ðÃ?}Aè?|·X?Áß ?ä?ßú?Ðæø=ÿ›Õ>B‡D?ª,?®Gˆ?O??‹ãæ?‡{Œ?€Ý‡??_s?2€ï>T•R>”šÐ?Ö˜€?Ñ×?0Ì>çØÈ=Ö!Ò=³£=û=Õ°ï? +Ô?ßî?üÝ?{Ž²>ðóG>Ê××=¤Ðö?Z}?Gó×?ÎsÏ?±ƒ?0·?:²?¹?ª>õÕ,?š,? Go?vŸ?ê ?/;¼?­°¡?–Ùä?ün? +i?Q˜Ë?'ëp=„óþ?)o?ô0œ?ÆÇç?Úò?&±?*á?EIç?§Ò?˜Ò¨?“KÜ? ÷?Ÿu†?è?.à5?wB?·~·?Ípõ?åù}?Èí‚?¥‘i?‹.?QO&?E*?-¯³?zgÍ?¥98?b¬?œP?¬h?»)£?AF<=Û*â?jmy?Ä8Ê@;@8÷/?Óy8?b¶Å?À¢.?ëÃ?ÍI +?ÇÑô?[zL?òw?F†›?iãú?.s@?*©?Àd.?ãëš?Äè®?¹Iì?“Ÿ>ªÕO? y?²#v@"Ž @/6b?-ûœ>Ëë.?léÔ?z¬7?ƒHa?ƒXp?„O×?‹g?ò&Õ?æßq?Å*¹?¼Ï•?kºº?]“°?'9ö?4˱?Zóe?h‹\?ÈT?ƒC?J2|? yQ>x‹{>¾;¢?!Ù?‚šê?îÍ?íIc?â´X?žî\?Îp?®®@Òw?Ðh&?p¯ü?I‡¸?^à?´û!?þ‹?ˆË??òÆ?p,Û?µˆ?‡Û?„>·j>!mn?‘h?­·€?Ìò±?Îï¡?«bØ?¥R¢?ÔÜ?Æ;¢@bªÐ>éÓë?þ”?ðìB?µQ`?Êî®@b¢@)4å@~{Ï@<'?„U¬?m’ÿ?K~?œ$¾?Ø^å?ŸÙ­?UÙð?§6¹?׉?Ôw÷?Ûv?¸Âk?¥š3?t‡4?> ™?• Ý?®Ä?Áå²?ÁT¬?¬UP?¤„>ìz><?ÍK?"sZ?$!n?¥?Äé|?º¿Í=µæq>¨¦—@ ˆ@ÿ ?p7Á?i t?hPF?Žý@?Ø/U?þ Ñ@ ÚB@Lx?¿H•?± P?„Un?µ5Ñ?» d?dh¬?bën>Ÿ£#> ï>²UØ>÷SÁ@%Qt@'éÀ@:ò¤@.µ§@„•@¡°?ÓD(?Ôé¦?òVö?öšÜ@üV?ÕíK?8èn?…ø>äòg?tEÕ?ÓE ?fŒ“<àé?u†?ˆûn?‹+à?[©?µ+ü?Ó³é?£š4?ƒã,?‘XÂ?š‰O?ÕTÐ?ì…@™v@ð|@º–@«I@H¹R@\Š?Íù??’|-?½ëw?Ån@H‘w@TSÜ?3Uõ?‡³?h>?eŽ?%Ï?5ì¶@$H@ 2¥?õä?Ú‰ë?Ò?>Ñ?§?¬bª?®rÏ?ªÄy?­cé?Ô¥!@/4?þ¡Ý?š‚?ŸÂ?´êŒ?‰ÕÎ>ô?‘›n@ík@®?ÄU?Õøö?òå?þé@Çí?æJp?ÇOÎ?‰‹Þ?" o?|æ¥?¨ ˆ?¦v·?¤Í¯?Þ†O@‚Ô@¦ø@²=@ +v‘?ëºã?ºð?¦k?‡1›?eÒ?òÊJ@Çâ?̨?¤·–?)²$>ÚØ?¤>T?ÈÐ?ËR‹?p!?q´õ@†#@)0?·üB?”Ee?hý?TœÑ?:u?9æ±?íÛã@[\?0­ç>×… ?AŽ±?V¥D?  ×?£¾P@ ÐI@Dò?Ø’F?É<î?Š%?"°?Z¹?|l+?ãiL?ê¤Í?ìH·?èn²?Œ÷°?€Û ?ã’j?ç‚)@Ôü@?î÷¾?ßî:@3t@;tÒ?||9?+è@.@'´_?ç'M?ÅØD?¸+8?¹õz?ëçk?ü:”?ÉÊg?¼*/@])­@w&@'ü@jS?¶ë>›Š(?dË?1'?|p?„4˜?àA?ÿts?ýYt@3Á?Ç ?¬èè?Ð,c?Ù·ú?wÜ£>þ„Û?Pò?‚C?ªï5?Í´D?™X“?]e)?{E ?Œ¹?–ýò?˜Â,?|…ì?`é?­WÅ?à3’?¿lš?¡Û?ÇJ#?ì?º=÷?}\Ø?«ÍÞ@%@À@)ž?øAê?ø+ì@c @a?ð m?áo¥?â\h?é ³@#Re@7ä×@ 4÷?æ«®?Î?›?ÅH?ŸÇC?†?Îe@@8?£åÑ>гŽ?¬O?·ga?öp@”ö@E¹Ø@Fs?ð…Ó?óª»?„`?Œñª?yK?Æý?Æ`Ë?ãJc@ @$m@‘¾@•?݆÷?ƒü ?ƒoƒ?Šý ?wu?76?(Qã?uw?DÍ›@û@¡}?ÊWœ?Ñq?®n?¶È@uÇÛ@Œñ@³?××?µ?—?¡ðú?–Åæ?x\?ܳ,@E?Ó@EpY@3aë@ V˜?ÅH?Ënt?Äý?Ç„¨?¯Ë?¢ö?KK?.Z?žè„?³G?Sá>ð?Éi? ìV?ËË1@k§@@pÈ?€À?wÖâ>ƒ¶©>¡>d?ŠHÓ?’çd?“¹‰?Öa?Î8ñ?ö„v?è7¼?Úå‚?ä9t?ëÉÏ?¾Q? ã ?;[?Ób,?ËŸ¦?ÿçÕ@¤@^ì@Ó8?eà{>™½Ü?ÑÜÊ@=_@NM¨@fœg@cý@BzÃ@2Ç?ß›s?ÛƒE?~u?k«?µð ?Ïá?©ò?ˆ%´?üõ?¥U?©Y?­h?±ƒ5?´{Ü?¸‰`?vQ?iŽ ?ßþä?÷M¶?Î(ø?Ëån?½(g?s­‡?…cË?è°ê?è«x?é‹š?íÖ?û‘R?í¤£?“?‚6'?’™D?’1Ç?¦­?¿°N?´$?Ý0é?ávm?À?òÔ>¡> >°ÉF?n–?ÒêÒ?ÙÌt?æ·?öH¡@6ÕÔ@4Š"@"‰&@&x ?üš¥?êP™@þ‘@Ï?ìâe?˜À?ºl?eä}?eÙM?¾·—;?ä@?ù»¹?Ø^/?Ìl&?Qv’? E(?ñ-ü@[Û?êÄ?Óïã?­®‘?›eç?”â?ŽT:?´ø?}G> *¥>%03>ßd{??5µ?OþR>±„p>$5Ø?t£J?çî?-‹¢?Gú‹?7á?†›±@ÓÂ?Àv{>]l£>‘"I?Î>ÓéÉ>ýÙ?jŠL?ä>tPr>­k@Ø?»´=¨°¨>SÁ=séP;¥Xj?²?¢Œõ?Â-?nà>ã›y>Ïà?]Å?“Ø’?+'‚>Q)¹?m{@ù‘>ø† ?7†‡?=’?B›ç?@{$?$äD?;?Iòß?T¦=ùÊ;ÍM#;¯ïÀ>ÖI>ëœZ?\?1µˆ?ú->Òò>DS—>Çëi>Ü…P<–j?ƒyH?žB»?l0>Švd>#Þì=Å—=u? 0?¯ý™?%¼>þ)J>ÓÞ&=ï]ò>ªa?Ÿ³õ>J»?úï˜@7Ï?¬;é>ú#k?Ìíp@ÉÏ?«íx?Y?j`? {¬?Ejf?{°?n?XRû? îõ>6w°? +ú?…óÕ?‹Íó?œþÔ?š¼?˜Bá?lÅ¥>¦* +>Í®\?> Ï?<%y?Š?'ã>åtQ?d/@X@¶? Ž´?=ûa?®N?˜Ý ?P?G— ?Ñ{ó?»˜¸>£º%>õ }?Èø?ªƒú=쎩?Šœ~?‘˜?•×Þ?I#?"G>?7tð?Øêœ?ÆÞ·>á¶h>þÈè?z{?v–?4É?g#?sBk?vl?µ(°?²Bh? qB?œ€é?«è?¨û½?³hr?»&°?âóy?ݾ3?Ëfl?ÚbB@( k@&L>?€¥©?VÊ?¡¿T?£ †>°ŠW>ŒÆh>ç¾Ç>ðó™>ú)e?Ã@ù¿@Ò8=sš'=¢">Bô0>ŽÕv?ÁW?¾H[?WA3?JöP>NÂ>‘=ˆ?ú€©@OŽ?ž™?—ܯ?e?™R?Xï™?Y-*?Ð?åï?Áªó?¿Aú?eb?Šíy?†|»?|Û?“X?´+?‡Ý?Š©y?—wÊ?œo?“:(??­ñ†?­q’?Áý³?¾`o?ž8ù?ªW?b?{õ³?7h ?5ŸÙ?U«i?rÂË?Þ€Ý?ÍqL>˳Ó>ฃ?mÙ?Ó¿?xû˜?l‡?dG?£H?zþ”?tZ?a]@?n¹?¨Õë?µwš@¸£?ì_¾?ýE?q¶¢?ia_?O!À>Š°æ>¼`Ð?6»?M>›¡“>Ì{T?,÷^?2t?$Ê“?w[>QÂX>zrx>àØP>£'„|¶?%¹H? 7?:¢?dcÛ?Ãgv?¢&?Y [?$Ä5>ÐB?¯ê@%F`@êæ?¿¬L?ŸW?75Å?[ +Ì?‚Ê?¦‘Ó?Ï…R?§úV?op¦?€˜0?‹ü½?§Y§?¾æÝ@§.@"dú@# ™@%j¶?¤ì¥?)š?ÇœT@Ø?ÎNc?³¦+?‚˜6?\n>³þ>IQÙ?¦(}?Ë.Ü?§¬?¦x¤?”4ü?—”2?ýE>»i?KeZ?_ìÐ?½«X?ÄÏ@ÕÀ@Šä?1øÎ?@¬?ŒU?‡ÒÍ?ƒXÛ?ˆd?ɬl?Ý1Ž@7é{@%&ó?ƒvA?_t¹> +)1>©?"?ƒŠ®?iú3?Z?AzÎ?ƒ›‘?sHD?Bñ?\Üg?Ž«?‡‚?`”R?lwÓ?ƒÀj?Z1„?![8?k^Ý?˜õž?->K?ã h@A‘°?À˜ß?ü@?\Ò?zJ?aµ?ƒú?ƒý?„ +?jÿ>¹»µ?ô@ C1@ñí@Þ?ìàm?çðd?åÙÒ?ã{}?µ¦ì?ºÎ?„,+?‡Þè?¼nÏ?¼­ã?„8‡?‘à??ÐàÖ?¬ _>–ôƒ>"ÁŽ<ƒWÁ?úM?ÔV¾?’~H=à¾,>”âí?Sˆ?XQŽ?£aL?¤üt?ŸŠ?ŽÓ?Š=?þÇ×@ þk?ßÅV?§0?£ +P?¡Ï¤?³—?¶º‚@Ĉ@¡Q?îÆ?瘟?¾ `?ºG?²ó¬?¶tâ?ûh?þÊ?‚Â'?‰aK?½‰?«_À?1>ê?7–­?ñÊ?0G‘?hÊ?n ?„n¦?ãÆ@[rÇ@$*Ú?„nd?7Ž>„â*?”y•@ ë?˜æŠ>§P?±"J@n[@ +fJ@a#?š(@?2„?æ>>ìW>n@2=°å?7è?Ìøƒ>ª„=Ï»?ù?/£ú>D=òÓ@Íf@ êG?1³Q?<ð†?úu·@Ý;@Xn@êâ?ÆFè?É{å?Þ¤™?ß §?Æ3“?±i“?q^?‰(?¸Xl?€Ñ>af?¥ t@9™–?ë?nÍ?‚Gu?Á†°?ÿ¦9@©á?¯[?8è ?m×?ƒÞ$?¢‚„?¯£­?²µæ?¸á÷@RDf@xH@)DÕ@nN?À)—?«~@Hȇ@[¡u?ËÌ®?´cI?ôn +?ú›Z?ˆ/?Œb?¿uþ?ÁÓ?Å‘?½Ÿ‰?Ž¾/?¢…ò@^Ž@Ø:?à1Æ?ÀšË?%ðµ?€î.@(ì?÷AÉ?ô?@Ø?š¸;?Í @6@?Ó œ?Çí•?¯˜e?¹ò?Ädd?¾ž‘?¸é?‡å?ôD?¹J@O¯?£&º? w²?ãg@1²x?ã^•?‚™V?Jî_?#¼ö?Ù8@~Å@…‹?ø\ @žÖ@¢?ãä?¾#¸?ˆË\?o’ @@ ì?¢?AÔ>×*>„?Ö^7@F%? ?€pÄ?ƒ'K?… ñ?±_î?º:q?§/ý?©ŸÉ?Còß?%Û?*œ¦?/`Ó?†í?ŠÿN@ @Õ@2!á?‰Ò?LÄ?7.g?.nI?ýv!@ +%Æ?±q£?¨Xª@A@ Ã?ŒâT?|T@2)d@<¿[?_Çy?-X@(c,@5ž?š?€×?@Qæ@`E?†G?­Å?ôHB@ !@!¯û@*¶e?±IÉ?–—×?™ g?ž¹@C·Z@\ËŸ?¾\?Ž¢?£Ó>ù8Y?ày6?ü™í?µ?´à’?§áX?©ÅÞ?\Î?3—ç?‡N]?YÇ?Ðâ?â0>?øÞ?ÿlÀ?—Ø[?_à?t ¾?&ˆ?ðú¦@Î…@Gäú@eÿ·@0?¶ß?掲?ûëÀ?¬ës?~eÓ?~OÛ?~?´?ˆ˜»?‘¨£?Áä?Ý“¥?ê‹À?ýÍ|?¾>Ä?}§h?œŒ±?È¥?¿ÍŸ?¢;¯?Ÿô?¥Dœ?£mA?’ôd?Çä©@hÜ@š{?øAÂ?ºž”> b?_ñ?‡?™rÉ?½,c?Á©~?Ð<Ó?Àzr?œB?žiþ?ÈßW?ÈíŽ@KK}@R;ˆ?¯Dª?±ÂM@Roq@YCÀ>ÏFá<¢/æ@’~@ ƒ?¹,L?ºøÔ??²’?Í?­E?ÓÍ“@ T+@õ`?¶??V[{@Ä™@E¾@M×?‰b@Ä'@^˜e@‚¥?žì?k?9Œ?kû>øùy?kîí@FÏ@Á?úÚ@üå?øh?øTB?ø8€?ø$@Q@ω@#§@Vu?¸<ã?á4?‚>?yød?Ñ ?÷3ù?±yI?‡DÕ?« ë?À£Â?Äò¾?ÜÔ?Žùš?F™Û@Ñ„@ O[?¿îX?Û36@¤û@[=?Ç|P?½¨O?ñ8Å?ì? ó>õ?ö8'@4›@Á@´?ïÐÕ?ÖI?Ë´?Å6Ä?ä9?ú\§?ù6Ý@€@ Ž\@0_@'ùÚ?½/‰?žÅ?é|?å“Î?¨}¿?¡Éº@]Œ*@‚Bz?ý2"?›P6?TB,?$Ð?è›@5~G@1Á?q¼?t?ô;p?íLÝ?´ô^?¿t¼@“@$Ù?F@F?QY +?©õ°?­ÏÚ?ÖVÂ?ñ§¡?¬úK?Z% ?ˆpÜ?³Ñù?³Ã6?½ð?¤±>º>]/•>«çá>œü`?#–?/$]?=Pj?TK?žšB?©C5?—2å?‰Ia?™ø;?µq¾?¢mG?ÿ˜O@  ¹@ íì?ðKô?Ô™Þ?³Êt?‰•ê?ˆw7?…a‹?þF?ä<%?à +Õ>±eÞ>¾—?¿+ ?ý» ?€€i>=®±?aS°@@T@'U?è«·?í™@-6@)Y?‚¶‘?bF?’·f?Ž˜ß?ÅEÊ?úÙ¡?äsØ?í—)?ÿë?ÊB÷?½»?{¨¦?aP¤?L±’?7úß?¥Ç"?æÒ(?ðJÁ@6@Lj@Vè@Öv?Õ•?Û;5?Ž36?qvj?À*@?ò ç@ W;@Þ¹@Úö?/Í?90@?ÿÊû?ŽŒï?e¬W?–”0?¶JÍ?å:h@ÕÏ?ãÔ?Šã?»²?¶CO?¿îÁ?¼y?µ3N?ÿÈ>@Ö?ðpâ?¿‡µ?½L?šR?¤a—?ÍV?æqµ?4j>åÎ?wÞj?…'"?¦˜ ?æÐ?ׂí?¬ “?µ¦@ê²@g@(aw@&Ã@=˜@J~@ô¼?áÈ?ÒÜ!?Õ@aH@€f]@…êR@/¦@&ðÒ@E~7@:èœ?êŽú?»}@#üž@`„@6ËÞ?é˜?ð?î%Á?ù¨g?° +Ž?°*@ šZ@ Ê@¥y?øG>?¯]´?~h?–‘½?£Ó8?ÄT?ëÙy?Þ²?³$1?µq?°¢Â?¿Ôò@A¨€@7~?Tó{?aÿM?¶»?ÃúÒ?p4Ø?Rñý?ó\@ l?À+ó?½ŒL?…e?kÔó?{t?s"?¼8—?ÏX?ªpñ?Ÿ; ?¦‘_?­ÿz?’M÷?€ ´?¡k~?›’>¿°ù>R`?Uüø?^Tù?E+9?`š?€0À?‚h›?m ?_-ç?Pœª?€x€?ò‹%?à+í?¹‘?ˆbá?Ò?>ON?"?C>Ém¥>ኾ? +C>ÄPË;›‡À>Ü‚·?!?Jä>œÃ“>™U?h7„?iJÃ?“ß7?(n?AC$?›4³?ûb >±ßõ>Á§>Àì>åsÖQn?,x’?Woï? ¦>sÅÐ>JXŒ>äÍ?M5?:¸ð>jNà>V›c?/¿?EŽ?,ƒ?-ó?ß>òcì>S˜%;—*À<¯ò8<èZ€>[#Ü?‡¿ë?|DX>Ö¬‚>ü,L?)d‡?.–2>Œú>{Oë?oŸ˜?…H5?SE ?M¸p>Ü!´>¶ÜM?!?+{Ð>õäZ>ßOÎ>þˆ$?Ϋ?IáL?tÖ?.MÜ>ûPO>¡Ã'>O¦?ƒÈ?{þÚ?“@’? Ö*?†"Ž?m•{?‰cY?Ÿ8–?–á×?Š«á?\†?Sõº?‰¿>¹~?gÚþ?'…>Ý»?­ü?CkÄ?·ï=?š«Ú? Ét? òô>þüÿÆ:?wÚ?©í?©¦?‘I6? ´ @ K>?ýuŽ=zFÓ=õák?ý?¦û?=š?7¸? D?Î?‹‡œ?ˆƒq??Þ=?I;œ?R ×?há-?§€\?¦i?¼C*?¹Z?<»?I@R?Îì?ÑP@?©©`?¡gv?`%š?hC?öÜ?ä?¹<;è=NOó>bY?Æ£u?Ée’?«RÎ? ?R<Å?O ‹?‘L¸?Šq>§³‘>ºÛ>›Ù>£_ø?==?Rd8?ÁzÔ?À×W?¦BÉ?”L? +3?ð?!þb?,Üë?©¬¹?²\?ä4¥?î¦Q?ÿ@™?í¯S?+I?Ä:?3o?‡^ã?· µ?ªo$?=Ú"?]rQ?Áî?¼‘?™U\?“Y¤?CL?X|$?œÒg?•¥?]>?u$ó?Ìö?¯¸>äNf>æ5 ?[sû?P£>íb?.?€aÐ?—æq?ûæ*?à³?¤£?[ +ó>”‰ó>ºþ?Ð?#o‰?VR?ñµ?·Oõ?ž‚>?H ?S'Ü?…1?IçE>#a~?D(?=h?`ß?€r%?4ñ?fŒ[>_eÛ>1= _Ñ?­%?Á%ý?]D>óös?Rm¨?²‡Å?ƒÊ‚?7ç>㨭>ËMž?’›ç@ +ˆ?Æ¢?m÷_?½Ð@w?äîµ?§d?µB?¸AN?ÀË™?Æk?œ÷?pâ/?ßòW@'Œ?õ–x?Ãî¿?œ¢?‚ª ?«‚¢?ÄO?Æž ?ÊèV?—«þ?vQh@'h‘@S%À?ÜÑÃ?’þœ?4N>¢ëö? ø?£y²?Ñ:$?á[Ë?–þ?‚`¿?®%·?©=?…o/?ƒH?ƒ=?yÀm?¿¾?Ä̹? +ýú?G¾?ăª?ÆÅ€@Ð"?û7§?Ãl?‰¯d?Å?Öã,@(f§@!M?gn?B=‹#<>§d–?Ä(?sÒé?pä$?ƒœ³?ƒ¡¯?ƒ¥¬?Œ¸À?•Ú•?›Mò?­ÇÒ?œ˜?ƒ¾†?Œ+™?“%Ð?È”Y?üy‡?ïÎQ?ëùf?¯ÁU?ƒâ]?„«F?Ò—?1€h?’9?gë|?ƒø4?þ@@ÜX?º„l?  '@×X@%w?êøØ?á•Œ?ŸQ ?¡d?Ç)þ?Ëš?tF8?i˜¾?X¹Þ?S±[>êõ>÷xý?i¹é?ŽŠû?ò:,@ 5À@8œu@£>ýõH>°é±=Rœ?Hìª?îæª?¡8¨?S3?tÒÚ?·”ä?¥Â?—‡?¸>;\!?©fW@`a?ö9?æ¥?ÐU?Æ—Á?ã—?ï?âc?Ü?`Ðã?Còô?ª?«Mv?a<¸?IðH?—–¾?Žw¸?nì?È=?Æ©E?Å5µ?¸åý?ªß?rŠÂ?†ô?·1Û?Â¥{?ác?ä~T?ü2?·z`>⟵? JW?I}?Ò õ@-*N?ů»>Ǻ?V6"?H:?àíî@aU?ÓŒä?ºˆg>Ù¥ü?ȧ‘@WÖ?SŽ? +™Š?ÞõÌ?ñ?‡Qm?tÅ?žõx?š£@,™s@+½®?±A?°ëò?ÆV ?¸ë©??Û»?[‹?¦^Q?Ÿ?r;¾?Š;x?Æ0À?à´ @ z:?êç?’o +?—ÃV?¨6˜?…\?6†?Î? +Û,>‹º=¸oÂ?Ÿ€@ð?”'Ò?åu?YS?ƒÜÆ?#~?8ü?‘r ?«´é@J @ã@ á@µë?ÈÏ4?¸¸’@›@$a?¸µÆ?¦¹?ó@?ÅU¨?¤Õž?ª¹Ñ?‰ÒF?‹Ký?ÃV§?׫@>¤ @+%–?’Ù™?©£Â@Qj?ý¥?Ô*Ä?Ê?Ã-_?þëæ@E±=@ç??*7˜@AÌ?ç¼??Ç7&@´-?ê&1?Õ1ˆ?°ü?‚Þ?‚×å?‚ÏÌ?Œ)?Ž¬#?¦~(?¿¹D?é)þ@ qH@ø?îQX?áQ?ÔÕ|?û…•@ ØÚ@5º"@J×)?Úy\?zŸ­?­Ú²?ÇÌ|?Åm?³ß·@>@/g?ýK,?ÓpQ?²rÊ?¬ä@Jü@8á‘?¿¥? ìU?i‚¾?äû?¶ª?º¬@ j @?Kul?³c?±W?À¥@$qf@,PÝ?ë'?áš'?¿Ò2?°#Æ?œeS?˜\?@i¥@!¥¯?s ù?6ñ@~é@1-¤?S®È?ª @|Ý@"H?ÆŒr?³¨?l"£?wec?®w•?°u2?œ·?®*?ÝYÓ?ÖÇ @?s$@B8å?žÖ±?‰ÁC?»!Z?À½æ?díÜ?F.ô?x‘ý?€ZL?çV®?ùK>ËŒ÷=Œï?ÚWí@&>Ì9ó>ËÉ?™u(?²tÓ@W@£?÷„ë?çÞ÷?ú5 +?ÿ’ò?ÿ„ô?ÿjÜ?º³ù?§ ã?Ê!¯?Ì5?ÀÀ?¿>¿?’nP?~Ü7>À=T®Ò?*¢?ƒâ2?̈m?ï'Û?ÉE9?±¹˜?ËÉ?Ù~Š?àžC?íÉE?ÐöÙ?¸üè?½>Y?¸Ä9?›[ð?k8ý?µöš@²8?¶r¤>ý-F?š®@Ý@ â?ø+B?¯å>äd>‹#ö>Õ„Ü>å'f?Õ6?uØL@À£@Ìò@ Hà@˜?ÛÏý?Úg&?ï ø?òy?•¦¶?›Ó?{mr?{[f@8+/@ù#E?0?fìn?• D@ t6@ÆÍ?‘mr?¡ôö@ ¨@ …?ø:p?ø"‹?ÑäH?Íu«?¡&´?–x@@ž@D§?ݽ.?»C”?S ?jÜ?MØ?­?ÔJ?öÒÀ?ªZŸ?,ä?:É?9=ª?§”á@2Ãç@óœ?l?‹[p@að@ƒŒô@3-Ñ@6X‚?R?„â@1ðÊ@4˘@z@Â@=z`@Iæ¨@$`?Õx{?”ÃÖ?Ek1?Ô§Õ@4"¼@4b°@,åO@¼±?m6?©Tm@N@Gj@Ef|@@,E?V©T?K~q?m.à?ˆó(?TpÏ?=Æ?ž>èå?¸§@Ð@?ûÕƒ?Ž¾?¤?ñf?ð?è¤Ù?Ü¥7?ŠÚ{?œ ˜>¨8>†ýý?Ðg`?ðr|?ˆÑj?I¬¡?ç@ùì@E?ÏÍR?º(—?³›H?®•a?–Eô?ƒü¨>ïC>îß¿>îÆ>>Þ•õ>¿B'?Íè>@ ¬:?õZ“?ÜV!?ÿÌØ@†¾@jä?¬%?¡Í?m.)?m¥?‹?§@ÅQ?ë0à?ÍH @–~@9~@Ù¨>E3ç>¤t°?¥«-?Ÿcg?¨Y?®ö>?W°µ>é@?måß?Ìí?Òo?ûc5?ó—ð@.Y(@.C @-Y?è‡y?¯Éb?¡ôÈ?Ô²¡@ð~?Ï¥™> ³>ÑA@$©@(÷@|‰¦@w]ï?óÚ? Ã?ò¾\@Â@Á?桧?ÈÍ<>æ#>æq„?–JU?†BÒ@)ê @@n™?æ?C?Œ†§?«§å©>å­©?_ó°?Q< @*Œ@}}e@?âe?åÿ*@D>@9Uh@,—z@,F!@1”ñ@/„S@=Ö€@#€Ó@Éý@¶[@ %!@Úa@3|¯@%|@,æM@2€@K2@SìH@§Ô=@¹Ìx@Zµ#@ + +n@„Ý@Nå?â[?mµ?|› ?j5÷?z‹ß?Ñ r?´ª@%€@;4?ϧ’?Ï¡á?˜­?‘?i‘Ó?SgL?Œƒ?²¦¡?´Äª?³&¾?Õ'â@r§@æ‰@Ã-@%w?EåL? X?ìÑ?íàu?‚Ý?s¬@*h@ ‹®?ŠÿÎ?@P ?5·?<¯?W•…?x,?©õ?ºú”?Q?z?{4×?{åZ?§Ôÿ?¼ßç?½•?¿ D?ûi?YU?¯dü?Á\>Ìî=dÛ=?=C? ï?¡°?.eã?>U¾?`˜Ç?œF;?‰ô~?°t?E)?} i?W®ü?-žÐ? +uŠ?$/=oq<”¾<®?ù>9D>åØ>è>¡å? î&?ãü<{€? +Æ$?Tœ†?| ›?\Y?Ǽ?O@Ê?¿Šƒ?å´Ú@Ó¯>à Ø>'¶æ>£I>å˜%?5Ô?Pk?:Ì>”?=¶Jº<ûän<27e?9%ì?_…C?%'º? Fƒ>íe½>­Ú<>Û_?x?+¦V?‘L(?Œ›>xjÑ>†w—?Äó§Ô>„T>¤ÛÁ>Ä7Ö>JDw=Re°=•0KØ‚>è= >“—ü>çˆc?ÛŽ€?Àv[?-¾Ô?O>9¬³>\Ô‹>÷ˆ>÷ܳ?4÷+?0ª +>¦Xô>£su>Þœ >ÄãÛ?“Ñã?¯Ë;>ª’™?-X†?wJ÷>ªŒÖ=K°˜?Ÿ¹?k +›?Y•?G^š>í84>É?Uد?¬À?±ä?¨û +?¿D?Ù¼†?’·>ý'ó?%x?Q¨É?3Š/>þO¾?C ?AS6?4>Œ«?$€?»óV?½ÌR?¾æy?šÑ>þ½ó>þÑG>þê¸?mô?#^R?=ûä?F?lÌ ?6³Ü?1"û>üÕÙ?X]?5•Ú?@˜"?Úì?Œf–?¿úà?±4ê?f¸ž?XR¯?¡?T™@êx@ÎÓü(@ï@Çö?¡=?ŽÕ·?fÕ?0ð?çéõ?ÜÀ'?£)?— ?E ?`ÿ^?³Q‚?²«Ó?×¢9?Ù¿ð?иß?Ñ]2?©Ðµ?zØ>`ER>¢”™?Á7?¨ú =hO>+Rh?¹–?L–?êŠü?Ó?!h?@—?¯IHB>ºw&?¨Ï_?¥`ç?ÁmZ?ÂЉ?ÛNÅ?Ó1?+™?=#?¢­?—³°?K,\?$­>HÌ`?ºÓ’?­??#´?QÝ? ä=?4î„?ÁË1?¶As?d÷C?j¬n?”mG?“_Ù?I*?zh?J–P?^’?¡c?‘%?]‹?ƒK2?Â}?Ò[@pp@£?ô7?Êd÷>%]e=Ñ=Ý-(?Œy?<õ¦?Å‘4?œ}^=ñ€>£}Ú?S¨??}-0?ÂYL?²w?™b+?¡Ã?‹®i?qð>ê'W?u¾?@qÖ?&Ö>Øž?z?}ƒ7?k?&·y?oyá?#à?6ŽD?%î?³ í?¡» ?ŸDà?¿zß?ĈÓ@CÂ@ u?Âg]?´/?«Ø­?µ ?³\h?µ ]?ˆ*Í?}.,?ÄÞ¢?ÆU`?Õ”Þ?½”]=+Þz=­¹Á?.í?0q?šlÇ?Ž§g?pb?+.÷?”Úí?Ž‹û?ˆ:x?È<È@5Î?ÿoÞ>æ^á?GšÖ?¤lu?²H{?Î)ô?Æï¢?´m¦?›C¨?ƒ»…?œXÅ?µµO?ÆÖJ?ÑlÓ?@ .=ðZß?!«¶?zñ@-­w@c ?ÜÙa?|as?-Lí?Ûü?•^·?®?Ãù?Æ*?éÃG?óQ?¤‰ô?žì½>‰Ý>go?æu?Ý#Ï?©ç?¬@Ñ?£¤Â?¬³—@ v?íŠÌ?$?7À"î??UI?'J?Qcw?ttD?SÝð?= ±>üùX>”—ô>ð">ç¨/?:‚±?¾Òï?ébý?ŸÌ*?‰_k?¹ÑÀ?Æ“±?ýs@cz>ˆk@@^Î@0@c @}^@:A@ûö? +%?#~?ÆŸj?©s>¸.>ë—Þ?¼ £?ʽU?ù÷~?ß›?ª¯e?ÎÉ@[8?©m±>™Þ¼?ð?‚A¬?m·£?Z²?x›=?„_Š?:Ï÷?^ì?̉@ Ð?³q?„X">ŽƒÅ?Äv@bˆ?›ñä?ƒos?‰ª¨?ŽéS?ñÞ?õ76?“lÂ?‘¶•?‚Õë?—Pé@'‹s@^î?“?A?‹ÈP?s$÷?mé? '¼?cÔs?†Û_?®s\?Û{…@r†@#å?¨<æ?T¢ =¨eÊ?/Ÿ?¹Âø?äœ@ÓD?›Ò>úËâ?á½?͈r?n¾Ü?Ýè?"o?$è ?xBÁ?†Íû?”j‹?,Â?W¨A??k?η?çÓÀ?ê ‚?ì9+?)?˜7N@ »@  ‹?¨Š?©Rë>ˆ”>‰Ð¾?¾Qf?»UF? ­?ymò?(r?. )?¸ð?x?I”2?—_Œ@ð?þD.?,¼`?hÐ?Ê„K?Ñš?²pz?›X8?†Z!?•Zü?©ù?ì '@.+!@$ ?ã!?³ a?l8¯?pɧ?uY«?ù¸@=¤@2Ü?IJ@&Û @[.´@7 É@Áƒ@,M@46f?î)Ž?ªæ/@ F&@'ºÿ@®@ k²?ñd?߸@Ö=@/„Ÿ?ãev?­?·?Ò ð?u¬Ò?1ÿû?›Á ?´‚G?÷…á@)Ü@MB@.Ó?§r@?‰Y+?÷aô@é'?Œê?aª@.Á@,}F@ZÖ@©.?·±Ü?¢©Ø?ùú@xC?³æy?ªœ@ž¤@! Ó?²d?¦‰o?=?‰çŽ?¼W +?Á£×@ƒ×@!Hp?•ÉG?‡p@¤O@ +E4?™À÷?‘2È?Üya?×({?ÈšD?ϯ´@Ð5@oö?È>ü?°¿?†?’ëÒ?Îh?Òq¬?Ìøæ?À–?Ñò?ÏÀ?ùÂÆ@3à@N@5•ô?á±B?°ûþ?¶cÆ?¬!þ?†41?w`z>©<ý¾?§žÓ?þ^?÷ÇÊ?ñÛ?¾ðÙ?£ò?´‹p?¾oN?¯ØD?¡–!?àÎ@ lú@Ø?õj_?ýŠÛ@Ñw?ºj“?Bp?hÁ?¶g;?UE? Us?yÚ'?ìØ€@oU@%›@ ¼?Ÿ´?´ +˜@mô@c¹?²Š(?³L|?žšÚ?¨X¤?°²À?©×?É;?ƒ9z?§¹o?Ÿ‹@5šc@9¨@N?ýi?1 …? +o@CÜ@\n?ï„]?»Þ¹?Úï…?ë1A@,<˜@>þU?ÿh•?»|?É1?Ðxº@2%@z|é@31Y?»ç@S@^ò9@D‰@ã´@¨Û?ç9?ÛoI?É…Ñ@´@wá@c5Ò@,¸Z@*xã@êÁ@Ç)? Y³?©Ã•?ÓØ,?Ý–@%°Ð@2â@!ûZ@÷!@£?æÓZ?è»?ë:‡?½zÌ?Ÿ?™]õ?ˆ*?ÀX$@ +®6@ kû@ƒY?øõ˜?uüž?jñI?(Ýï?41?ëœE?ò§?¶ûµ?³; +?ÔËG?äúä?ÙÁÒ?Ûa`@¸~@1f?ó¬‡?¸nÄ?“õ?Wcg?‹g?··?ÄØ?à"?º¿:>ÿÝ?8ï?þ —@§´?­žÔ?¾ª >@5Ù>%r{?ŸÕõ?¥p?RÄ?-si?m“?XÆ?•Ïƒ?‘8Ó?Þz @+b?ñ›q=aÒ˜>­.F?ŠP½?‰{<>ñ>ðã?̘8?ÂB?Îù,?Ö.Ÿ?–®C?iüš?ô^Õ@(A@M$ò@|2 @^Ø€@ÿ\?ú=Ó?¢}?‚:O?LŒ?D“ý?¢7?˜âÙ?¿g]?½Ó¨?Âcu?Î$†?¿²(? ú’?ÐP^@P@2m@w²È@ZäN?Ðé‡?É"ó?æsr?Úù¼?ÏéG?ÒÌq?Ö¡8?Úf-?–Ê5?Cö¬?ˆ•¨?µ'C?½8¿?ë“>?áNÍ?PÖµ?H»á?à?ëÝ?xZ^?GŸ¨?ˆv‹?ž˜ë?t÷ä?k×? x?o ?Š×«?›5?ŽÊ‹@:¶@`™?¬>? {?]!;?!“Ò?Ð?øÃL@áÕ@CN@E ³?ìè?õK½@`@gÉ?Ý#O?gð”?‘@?§0ò? ++>ç‹y? «Î?ç\s?çFì?é²Ê?ü¯²?vý?(?’‚?Ë ?ÞçÛ?æ *?Òßz?]\?AÓ@â@&­×?q¹ó?'T士>å¯Ò@£@*­6?ég?®ê—?¶aF?µ6?ʘª@ H@º^?çaº?ñîÜ?°ÌÄ?˜üå@ î•@,ú@:`@B’É@E W@Sžm@O>@-~c@(Ye@4©±@)Ø @OÈÔ@d¢E@.^@o@µà@/Q?ý¬¿?™?¢!u?„þæ?›È@}a@‚²û?а?ÈMm@Nâ@æQ?ÄY“?™à¾?:½>íl8?d¢’?³8F?¡ª?‚§:?—%§?Öò?íD?äo^?×;†?ΦÍ?âF?3?CŠ>tâj>˜r÷@<¦@'s¼?Ó) ?¸U?áш?ô&`?›?xë?ˆ¨z?“œÒ?.í¿?d‰?˜.t?¡ö?„mË?«Š?¯ß[?¿0?Ÿuy?€&?¥@–?­”?1©t? êA?÷Ó?æ¼=öo¿>™à+?ˆ@ª?[/Ù?ÚL?-Âä?”?N•?Ë2?’³»?±š?Œe?Ma? £]>®A“? +\I>µÓA=ç Ô>8Çê>~Û&?˜Ú?º.ø=þà(>¬±D?Ò4Ž?Ü~V@æ?£)Ã@‘ ?èŸ?.-ø=åÌ>‰•>1”½?C‡t?Ìó>åÈ>úòÉ?®‡?*C#?¢ÈF?¨:?®3X?«×H?Š?ÔÑ??d?U‰?€lp?‘/•?i3\?!Ÿ0?JWÈ?˜¯î?Œƒ>ã8E>ÐPï@!Ap@(ÁÔ?•{­?qº>`û\>¸NJ?`>óBý>ïÞ>ÅN<Úl@<ÜÁp=Ú”\>ט?1©E?¦b­?‰4æ=™wÕ?>Œ ?5“1?$I?4]>Q;>(ýf?¬uY?ºôA?rj?c?>fqø=L2.>Ä^ +>ú‡'?TÜŽ?m¨q?& '?!M?#/?'Æ>î/,>³•e?fVþ?¦0^?–.q?’íÕ?ºï»?àðô?£Òý?1©?†Fµ?¾ t?¹©0?¾q?ئ$?òÐŒ?Ü1,?¸Sa?Œ6˜>þNs?„7r?û(?àð,?®•‡?‡M¤>þäÔ?«9?[j?H`‚?,ÙF?PŽ'?ˆ¼‘?_ä?®²? +5ô?»É?C{ú?–+f?™?®e*?’·!>̱ž>Ö$B>ß™µ?*~Ÿ?¹JÚ?ÙL@´È?ü#V>è;?ßX? ˜Y?˜„ ?>´?^c0?˜aÑÔ·?.”]?úÙ?ò^Ü?Ág?«• >øöý? ó%?³Æí?³  ?Ìks?¿Ùõ?bl?~)?Õ”Ù?»‚¬>žvƒ?3z@èÐ?æC?K¾?Jí?õŽ?é?+[W?YZM?Î~?Õ7Ž?Ûï©?½æ=„#°> **?·•>Ü +t<×Í>Jºs?w]Î?xÂi?‹z?n|s>el,>ÎÕ?=ô?_Øn>¹v¹>ëž?8~?F`Œ?€?eùÛ>b+i>Ë>6?’LÐ?}É‘>´Ç ?)¨×?ÑP¼?¿ùå?Œ@?U·|=M9*>)ÚW? Æ?eAÖ@2q?Êî0>æÐm>¶·Â>7$ê?*[?ÒIÕ?´¥?R83?@2÷?¾´>²óŠ>¦­®?Îõ?Õ?Ø¿?MVF>¹qz>é£d?8Nt?^‹>¯>À˜¡?ÿ ?|? æ?Í[?ƒÀ>ž–=“"J?6?»Þ˜?]º>: Œ?T@ +.ò?¼¨[?3Ë~?R?Ãu+?Ã~,?È•?Ug½>„ý?6e’?‹Åj?žñë?¬?ÈSU?Þ#?í,?õèA@ ‡@#>è?ŸŒD?¦?kú?‡¢¶?±(Ë?Ä&?é«Ñ?ñæb?†Â?Y2?½ð?ɘ¸?Þ?‚ä§?Ìå?ÖÚ)?×_>Ýîí?k ‚?yF? O)? ]Ä?²„`?ºëÔ?Aq?&†?‚d4?‡1@ jÙ@"#Ò?ÄÛÀ?ѱ@2•@2)þ@_E?ùè/?¿DF?± +?ƒeƒ?jh¡?nu>îÞ>º¡?WÞ?ó¤nÇ>²èe?Í_?lQ·?ƒêß?«‘M?³.Y>ÌÒÃ>Y~ ?ƒ†?•Ò¥@3¥ @:ö?àe€?Óê?—äþ?ë¯?ÄŠÚ?Æ7H?MÖÃ?‚…C@%.³@"àm@§@–?gU2?k•t?oÔå?š¼=?ðFV?¿­?,Ñ??%û?„\t?Wñ?»îÍ?ŸÌP?„L>?D :?P0>f†'>à\¨?/¼H?Gh²?S¸Æ?¤U‰?ÁÛk?”ûû?€‹?ÎÎ?ár?ØR?ÛpJ>©vn>6“?œ:ò? «ž?¨a ?žb§?g?[?’;ú?šÐN@±”?ì¸3?r +ô?tÖë?ŽaŠ?¢Áî?Ôݸ?ü.x@!?ýÕ?“v?¼?R€ß?‰T?ªr®?’O?sŽn?›ï^?¸¢ª?{x?/ýÈ?Ðe@ /§?ÑIû?«Þf>çx +>  ‚?mÓ-?[ã?»=’?Å‘Ã?üm–?ÿu?˜´Ä?–k^?„Ãä?€±û=ùô>Œ±@¿?øÖ‚?„2Õ? ?Æ@ ?ºº?„/?W¦>åT{?)1U?œ_p?± ?à`?¹­?aö?H¿i?0fb?'‘Ù?À³?Ê{?@"ªë?þ¶s?À}—?+(>*Üo?íð@ ¾7@>Eb@OÃ8?º—ã?Uiß?á~?þÞá?¤ˆ¢?‹t?»a¸?Å…½?«N$?©Õg?ñÑ?›@ +$@ÊU?…òš?x'„?Å@Ð?À²Ÿ?xÌ?sr?ø‰?)”L?À˲?¼>Ö?·³$?¨Ž?p8?ŽwQ?äBb?°~>!ád>£b?#+¹?rÖt?ÛŠ?œè”>‡„•?=N?¹š?œ§™?`œå?ß?¸yÆ?‹è3?7Ù¯?M®‹?Y(¦?g’ê?‚»œ?‚µ?ƒÍ?÷â@) V@ub@ħ@='ž@\ßì@E@3l@†Ï@΃@>@R @ÑY@t”@r¼?ø±Ì?î‚?îe?uO|?$‰¢?•=?¶—›?T%? Ù‡@± @'@!r-@"Vë?bR)?ñ·?‰™?™wŠ?°Ð½?±Úž@ ‡Ø@Î@ òª@¥)?ªæ.? —‚?Ú”h?Þà®?щ–?ÈÿÕ@"Ž@  ?)hè?8Z?Ì™?Ô(?¶¢8?¹D@w€@!8)?Çþg?»cG@úþ@!r?¾‚?±CÑ@Z°@ ñ ?Þ×?€±?‡†Ë?ƒu@ +Mð@€Ë?*n?yÃ?ÛÂf?î—!@Gú@SpM@Ï@HÅ@F¨@2:?‘IÜ?{'‘? Š?—?èKÚ?ó%¹?îôˆ?õÈŒ@4:é@?Å?ï;{?Ô·»?ÝÛO?áR?Õ÷¶?Êå(?ÿìÖ@ œÍ?´'Ä?Ž c@#ÑÅ@Lm×?¤#ª>îÊÎ?Vì•?wÖâ?ƒj?)f?Ö^ü?þ:@S@<¨?óŽÄ?æ×Ì?ÏJ/?¾Tn@ /@-Dj@Ç%?®ßK?Ÿ“!?‘@ê?›â¾?¥äI?‘Æ¥?|ý›?ªñ¬?ø±?掴?Á>r?¦?Û?Zø·?™¥i?퇖?äE?Ñ•J?Ë®?¢ÿ1? ½U?œäô?-å?âb?ä¿?ê¾Ù?÷ +@&@f•@ù@÷¶@<æ¤@;ôé>ªã‚=DU?ôu @*V@åû@ +Ñ?Ñp`?»¼\@ ‰ë@'`†?àÆR? Jþ?¬ ß?ºŠ?äSù@á?þ4L?àTb@8M@•-Ú@f;?Àl¿?öïÕ@1ßf@'3á@ ’Û@.£T@ªåý@ ™)@(Ä@&â ?ãëý?ó?.>ÂN¹>œ¯²?’Ù?–›¦?ÎÍN?â$@$Œ@7“æ@ y~?÷*€@ G¹@~?¬u"? ?—‚?Þ/ý?ý±/@ö¢@@Û@Ú#?ó |?uþ—?‰õÀ?Ï>ñ?Ãô8?‰›ë?„Ï?xsð?~Ûš?$¨?(y@ [ã@·î@@æJ?ÏÏ?˜#J?¨Su?·-{?È˼?×÷L?ÃŽ·? »v?Žæ«?yk_?tb?(Ö?š#º@:Wa@1°_?Ûï?Ç?˜?Á¸r?̃‰?p¬t?>|?/g-?îm?¯“s?ýÓá?ÎöE?ŒG´?¸Ý5@ðG?þç?«Ñ_?¦Ôx?”U”?N?½>ƒ?Éh?јü?ÎAŒ?æˆ?ð'é?ç#Œ?ä…­?œ×™ ö?‚Îj@‡Ö?ûRþ?]Â?ƒG ?(é?–?ßœ?êø`?Ž€Â?G.§?S'†?j~Ï?tˆ9?{t?šã?ë4=?Þ£®?¯Tµ?¯G|?ÌT­?Öm«?ôü©?íò?¡ÂM?i+?v|š?ç˜?“IN?Þž?Ýe”?f)?ñÁ@,Èh@Ešã@ G?Ùõ?Û[?粤?¶Y?Pã?4œ?ßÓì?ä!#?ç‘?ç,?¬:?‘m?{2…?f¿®?©KÆ@@w?ûèI?÷U‹?ò¿Ù?¼ü0?³-T?«„?¢U>?‰×ø?R'?²€ì?ðG3?Ê£o?4˜Y??T4@ ÏÅ@..?V#²>åÈ?ÆP@|Ù@Éb@{q?íí +?(* ?6Qf@ð @[í?‡DR?X¾a?ºš]?è k?òo#?í'Í?æ@?þÒ0?æ„ò?$ÎZ?Å +@WØ–@ƒG½@9Q<@”µ?¸ÞÂ?]Ù?‚Mü?÷Ó’?èØ‚?¬¼C?¬Ñ^@ à@’@ Ó@*?µ‡ ?[¯?çzð@Jo +@J‹@J¬E@JÚ'@[ †@hð5?ç#h?°å¬?¹~?Â*´?Ài?È£ß@ –^@ÃR°?‡G:?í s?Áòò?nÞ½?”L+?á ?Þ8@Ln@>>ñVª>ñÊ?²>?§Â>Û`×>¢ %?Î/@=ã?Çù_?¸U?ÉÔt?¾Ê@0ém@>G@?»›?yS?ì>ÂÀ¨?ÉÛ~@ ©?¬á?}UA>ÖÎ>ÃöÊ?d(²?€ é?,.?6ÞŽ?|n¬?¾]?†_Æ?‘„>Âb>Ñ@?‚Ò>?ŽÇÈ?rY6?>gþ?ÒÛ>–zA=ºJ¼?T?£Òî?±'?Ê5A?ó?æ,*? +¯Ž?.5?Váý>¤_? +.—?HNR>. ž=jl>~„Í>Å™Ž?¶,#?çá?Ïp?€…<?·ì|?à¿'?òœ§?C >«z‰>’;>Ò( >ð<¹}ê?„+™?+á>åëz?dm?S3w??•>èO>ö´7?hƒ?m{¬äB><?0i’?‡O=?P—±>íùÙ?ZX?cW?xÑ÷?“Ñß?‘ZC?`ý? %¬?VÈ?Rgh>ÛE?"h?gŸ>ºô;ãí°; ü>ÁÀ§?RIž?H˜I?>æ?jà?¸×¢?š µ>˜ +>Áw?wŒ†?h³>aç–>RêÒ>øŒ]>øÈù?’‘ú?šê^?&÷®? á?;× ?.ºT? ©?{Ÿ>þ›i?Wb?iæ>û=>SÒ–=Ôkö?óý?WŠ?žÊ?½+í?Ì! ?˳c?›Â?|Ðú?³‚?˜ Y?’\á?”¦ª??à?c ?¨?Û?”t ?q†Š?Bâé>þAí?hך?Â58?•e? £?Au?déD?kE?~ÿ??q3g?R?„_°?¿{b?£&a?>Û»?ä>Ø¿Ø?)Fª?©j?Ÿ ±?Û»?@ –=ÏÁÏ>á >„Àá>Œ2¶?À?Bä?®’?áÕÐ@t(@ÿ,?µÑ?£èA?b)4?A¹>î|Ó?#-‡?‰ºì?–*_?£}?‘s‹á?ªBÍ?¶4Ê?ǹ?µ+?}¾"?K8w>ú!>•ä?,it?Z¡¾?±¾Ô?Ÿž¥?P³?YŠÙ?P¸Z?†Š@áØ?Óy>w§Ê>o4Ï>—ö>Ò˜„?0Æ?[b?ül?Š?*ù?RZ?#‹˜?3ÒP?…@(?žÜ™?ÿoz?êÙI?¼œ ?­²Ì?%ï?Gà´>£q?¯u–?®(a?§f.?‘jˆ?L,˜?(z<>„F•>{NL>æ ?k:?‰™b?dÁo>ï; ?D ?ã±0?ÝÆý?Â-µ?žh0?|?HN?¿Â{?Š&Ç=’¾Ø>zAŽ?” ?@W²?¡w¥?§–‹?ÂvØ?‰—>9Á>ÊI­?Sv0?ß»>‡€?C ®?„¼ñ?¹½^?¢ñ?Û›?@6—>šìC?‘E?•­ñ?aÓ;>ØÏ>>ï”î?,?;Nï?‚ ¿?»^´?ùî?ÀR +?ˆ÷ˆ?³ÁÊ?××?œµ?^•×?wú„?‚?Ø??xJ?¬?ŽâŸ?Ã~ç?wpÜ?Ï€?kµ?–”ø?‡ày?‚rF?iBÛ?] h?²v?Ó‡P@æ@#9i?Ň¾?‰Ûì?ÓV®?ùKM?gjm? ÁM?utÍ?ŽÀÔ>˜ÑÑ=£âÃ?ët?ŸÉv?ˆyø?‚à@?ó0.@é#?‰Ðò?e·?‡¥?…£˜?ü^P@!Y?zâñ?i!?¦Èà?°$n?ƒ$_?¹Ö??™d?H”¨?ÄÕß?¯Lr=Uum>|e{?À }?¸Á†?…©Ü?“ƒÛ?¾…È?¬te?qLé?H·>Êü?f¹|@}ò?³‚Í>;l5?>U?Öƒˆ?éN @Œ?ÍØ(?ƒ¡;?!`>L;?zŸz?ÜÎ?Ñg§?Åœ?¼µ_?¸Ç*?!‰> +‘ä>P:’>1á=eÔñ<•;>Ò%Ú? @ª®@-?»óX?žè{?2Ü?&u&@HÂ@ ï¦?àò?à@ž@ Ž?ü# >€)9>ˆŸr>‘?Å"?ý£ +?ÙOå>*¦b>™‡?H‘Ô?@±?7«t?5¹’?8 Z?’ ‹?ÿ¤?êC?Å×&?ýñ@ ¬­@,–?öÃO?δ‰?¬#¾?žÏ"?’G ?S¾~?/™1?°Q?Ôßá?™/?„U×?ƒM?†ýå?©<5?¶2?k©Í?Z;u?€PG?vEž?Ñö£?Ý“9@á3@óè?b¦?FÏd@@…@4y¹?ÆíI?áAÀ@ÓÅ?û ?)Ë?ô?û¢?Õêû?›ÿ°?´¨o?Åýy?Ê]o?Ó¢f?µ?ž¾×?¶×¬?ʬc?ß®©?íúÿ?¬0E?„W?„Vþ?„Sè@I@…ë?¯ ÷?„N?äÂÔ?þc}?¨Ì¼?ŠÄé?ˆ!W?Œ~?¾«?¾¨í@0ùm@&Íú?L^¿?:œk>èhQ?·Ó?3 ?A‹ˆ?t[?º?Å¢?­Îì?M¾?†±?Æë?¶Pà?˜ƒ$?µú,?çîò?ÎÅ?®®æV6?Ktå? Ðº?Âî@ø¸@I?@ ¬Y@ +Tˆ@h?î€ ?Ä9¤@»*@1Øz?òN?‡=Å?„åÖ?‚å¸?¬­è?Îf£?Î/m?Í·?Æ‚?ËB7?ÖÙ?â~·@¢O@Q=@ ,Â@ ’ê?õéq?ãK4?ÿ¾~@–?× ?Ã:´?¿ ?·.?˜;™?Žùõ?Èë™?ÓTŒ?I<¬?š=?¬ +?ÆiE@0³@s?™5u?¹Ã?C£?Bn¯?ÇSl?×dj@ï'@!çÐ?j$7?>Åõ@Fà@šB?àéÌ?â 4?Ùt?ÕX(?š8ô?‰97@ ‹{@#?.íØ? +s?µ _?•è?ˆu]?†Žk@ÑÖ@)@[?d@ZÀh@§¼@ +þ>?H Ì?3±®?¹ë²?Àä%@ ­@æM?ÇÅ?_2Â?àW?åÏ@?_@ ?ɦ!?Àb?ù§@-\@N2@ß/?—«?€ #@%[@3~ÿ@¿?î,C?Õ›˜?Úï?ð‚?ë{“?‘—|?‚*c?Ö l?ò¼P@[»?ûÊ?ÙÇ[?ÎU?Üës?ÛÛ?Z—=Ío?°‘¡?û»?§AÑ?~RY?óÑX@Ø|?À8P?…A?T!§?658?—P?¾N?ß¼.@Žþ@Pþ@(?á?˜9I?ÁÂm?ù’ý?аq?†R ?†×{?…\Ù?°$?ÍP?9(W=ƒ9?éw?üWÑ?ìò_?½p?½}?½ ?ÌÚ‘@ ¬²@ +‰?ðm™?åéš?£}ç?™â?û^;?ûJ/@â×@J´@t¢N@zRn?›Õ3?b÷Z?¸lÐ?ǹú?‰R?„óV?Í–?”Ý?Ê ?ÜÑp?°þ?˜IO?Å°ç?Ô +—@@#*@&³4@Lâ@íÀ?yB?“Ô¯?ºÊ›?Áž?Ôç?ç0@¿M@ Íî@0Â@: @,—@#{¾?5î?/°‘?ÖŽó?Êth@ 1Œ@ @!?j‰Õ?&­Ë?{Ui?›J?Õ®ž?÷?üß°@U!@ÅÛ@!Á?îf ?¬?Î1û?ö`T@ +ƒi@ûo@TT?žÁÜ?¬÷ï@‚•@ ú\@ c@ïš?¶l{?³? çç>õ )?¢ž$?‹ß?Ýà?èÊ`?´b?™„(?È­Š?åS?ýP|@TÚ@¥L@#®­@Dã?¹tÆ?¶v?²m?²ŸÎ?á7e?îØ¿@VÚã@SA™?<0o>ß_>™&J>‹b³?–öß?Ã÷&?âW·@£ÿ@š@2é¹@ 0‘?~ǃ?vµíÆ?— ž?8H?nî‚?nÐå>Ž‘>rõÊ?ãö?û¾@¶@*4þ@«?õ~?ïÀ?í$?Êw?mX³?Pî[>oã>›¬%@ n@åå? U?±[—?Î8ú?Ó,2?×¢4?âïÑ?éû?í ®?Ï¿3?k†?zp¡?À™^?´yŒ?æÌ…?êòß?Õ5´?ÒPW?²¬Œ?•´b?˜»‡?§º?ÜÕÁ@/*½@"×O?¯P–?¯?7?þ@w?ûPÂ?«Ç?«e ?Ìåæ?ÉÈ3?©N¹?”ÖÂ?–&¯?z$»?qûÅ?§Iº?ž¨e?ô¢@Z?èék?ß͘?ç ?ç©;?ÁÙQ?g~m?r.m?ŸÝ9?¨›^?rjÀ?}õ¾?ÇQy?ØF¹?È]?·³A?¯À‚?»ˆÚ?Ôƒ?ÿÇ¿@d^@hÊ@ ,à?VÕÄ? +­l?]2?2«?¡kw@¬+?êoh>†Ÿ¾>š•?, ??>Ø ? +ɶ>èyZ?…4?¼ÿ0?̃?â ’?Îýd?.JÊ?),?åth?åpÐ?Q”w?*@+‡@y~Û@QP?–d?“SV@,*d@(R3?ež—?e¤ñ@Þ.@í>?¹(W?kP4?ûŽ?—M—?¿÷$@" {@L?û_6?ëÉ$@è @ +ßa@H) @ezë@0˜?ùë@!§@oÁÔ@YóÑ@•@ y-@Jš@h@´«@â@?Ð× ?®¨7?ºÍš?½@ßú@Lr@Ae"@'*@!^à@ @ ä>صû>ª–÷?]Eè?œ"?²=\?±’?YVY>”…ƒ?7Þ?´QÈ?è3@£Ø@)ô@Ë4@ÿ@ß"?þÙ>ñR«>ñμ?Ç?¨v?ç­?ÙŒÄ?Ùü?É5P?øqö?í.ý@(ïË@8½¶?r+?)ëP?5ì?0R]?>)?LÐÖ?ƒ›Ê?‡¢?{’?}TÚ? ѧ>·mÍ@x@ò?U«Â>Îi³?_—?~Wa?‚-‡?†ñˆ?ÎV÷?£D²>ˆ*3?,4?è…¬?àoŸ?Å|'?>ª?Xs>ÿ¯>ìûŠ>²ÉA>¹*†?t Î?r*Œ? +mî>Ô$í>ãŸ>$eZ==ª?…ûë?F &=¤³Æ>JÐá?e²?fá>!rŒ=\ÂÏ>åo?S÷è?¤ÂÇ?=Æ>ÙÏ>{¼3>õö×?Š?{>DC?>r“>â‘û>­Zù>ͼ>çMu>çåì>èx>ÑVÈ;»N=r>ïÅî?3å?6¿C?:ò–>Ñ·>ŠF?-ir?…×ú?RƬ>îüÝ?Y—?˜fÎ?˜?Â?p­Û?q‰>÷JÈ>ñÜ=c.>ºJ->óSn?Ÿc>û"ƒ?€ý?«/Ã?4 O>Bæ?åÓ?uë.?€®¥?ŽM?u^­>÷ õ?ó?5Ù?;Á-?4Â?*™>ø‘“>üá?!?;Ã?[©¨?cÜQ@Åå@ ;N?Èîÿ?»ßA?†ª?s²?¤R ?«qQ?쬩?÷ˆb?uK­?"‚¿?}®U?•H|? bŸ?¯]Ð?©Î?œ©º?¯=c?½Í«?ª´?‘íB?#½µ>}™O>ð6?+4?¦>þÎ>÷‚>øRE?t°1?¾Ò?†H9>þŸ?ˆl?äý?¤+ÿ?"×s?'¤Í?,r?D5Ó?li=?uøî?€É?pb?I'Û?Mïs?R²Ž?sT®?‘¹e?‰¢ ?iF?”¶?ï)ý?¼‚n?¦°?‘?[f>Ü€>d¬€?l +a@ë·@ +O?â…¢?Ô'¾?²Ì?‹ ƒ?^?24S?P¿?hÔÚ>‚Æ­?hî|?œxˆ@ Fï?׫‚>½@g>Áº>”Î1>^bé=úû×?,ׯ@ÝÜ?ýÉV?¿4?"#×?i ?Hs×?½©?t5H@Ö5?óxñ?ZO©?`|0?€ÓÇ?±¡?º,¶?°~x?~ ?Fv`>Vˆ>ÿ¥‰?¾Ò?Ÿfò>º_ü? ª?g?ƒG¡?¯?·?â?Á“–?ÑMw@¼&@±û?ýƒv?êuH?¸“H?”C>Ì,?I]U?ðp`?Ïc¹?ƒ²?cµf>Ö">Ǩw>yK>ƒ«2>hÏ#?K& @ µE?ëšÕ?„öA?ˆ’?h)?ŒÒT?ªÛ~?Œ“å?w?-®«?„qÓ?Z,Í>û®Á?$³+?vÀÊ?~P|?Œ ?ŽP?|É?¢y-?¶—-?¸"?0½4?T1>”C>¹ûõ?Å~?l%6?Ê¿z?¯q»?Øl?Þ?âx?@ñv>º¼ú>4²s>‡†?þ“?I+ ?„Àæ?ƒMf?†3†?…áY?‚N?‹4'?—d¦?ÚE?@ö?»èN?‚=g>â_(?cÛH?Ã|Y?‡Û?BI€? Ê}?ÊÛÝ?¯HM?›-%?zÚ?Ts†?¹^?äŒä@i?@ .ÿ?ÕòÇ?¼%Ú>Ãxp>Ó­?â™?Ö^h?ú?:Ø>ÞÀ>d•ó>^þ’?UÀ?'4Ÿ?¡ªÂ?¯¸[?è¹·?ëB?é,k?ç(@g8@A?a5î?lžJ?E? ¹b?ƒ#h?ƒÜé?•Ë?¥qô?ç%X?Ìán? (å?'—? Pq?º?Üš?GkŸ?Å«?³Q5?ƒj?^èû?s‡?F…E?¨Ä£?ž•n?€³^?Ž×©?ªC ?˜(?ƒ—Ó?hF{?J²­?(X?©Æ?2^?[©N?–Õ7?³ï•?–]Ö?ƒÄ­?’°?–E…@ó@BÔ?³ŠM?ƒŠ´?À ?Í +?’N4?œv?üƒ?aù?pr@?f¢w>ë3@>úÌf?ð ›?î#?áJk?Û?Or ?:îÖ>òÚÏ?.%™?ì§ö?ÇÓy?/óÚ?P3 +?¢à“?«›5?¸Ðü?ÑM{?ÿ,´?Ñ;¬?„7!?Ÿ‡õ?Å•n@{ä@%P‡?ê‚™?”å;?(ù¼>–Æ´?©Tý?÷Ë?Üœ?Ép~?vÓ?J}R?}?"?„Tï?¢?£3g?Ss?<ˆL?Š=?‰«)?ÂÅ«?Î #?qK ?eR–?Æ{?¼Õ?-?0„–?Áó…?£ë<âzŽ?9àY@DO¡@'hu?´ôi?»‚€?Ó§8?ĸ-?£Ëj?‘µ‹?ƒ4]?lyO?OÇ^? +ž.>r,Q?¢V@c ?ɲæ?«7‚?’í?„Tž?ÌŽ?áš@ +SÖ@¢É?›¥Û?t—¤?‚ñ ?„I@‘tò@£G6?¨ÊÉ?„?¦?ÄΛ?Éh­@*TA@ •¡>gx>¢ññ?=5L?eõP?íÒ/?Ä Ž?$¯?$ÝK?„x?ƒ\Q?{Lž?·ùÏ@à½?îѬ?œÇ?³^ƒ?Ƈ?‹Y>?pÈ?äù@>‡@ J?Â{Ÿ?ë7¸@ë@°´?ûÀ+?ñ“›?èhc?á¼G?Û.?¤Ô…?— ?™@Y?›w?Ê{?Ï º?å ?æ°å?`0]?MÄm?›u`?›ÓZ?ƒÌw?…J?ä&?ù}›@ŠMD@…Ý?¼¡??ÎÙ@ :`@Æù?†‘²?Kf?”'?4öP?rS-?„š?§A?¶&Q?ßþø?ðœX@÷µ?ÕÌ+?;?Mv¼?¤ÿ?ÒkÚ@øI?Ò‘Ì?•a?˜‡1?•Ãj?Ãõ—?ïž?Ëþ?©m@?­8ø?¹üm?Æ\r?ż)?Ã:?Ãå?RA>Vð°>uZS@l@ÃÎ?ˆÎ;?cÕ›?L´¼?SÈ @0@!ç÷?t?Q?F…#@€’@$r8?Ó?¼|ó@ì@$˜@2|@#ßr?™—a?‹0Ô?i?;?Ç÷?¢?{t ?€îê?3wT?=Êð@¶5@ í?€‹Ò?y^?W9‹?O Ò?lÀ +?yÜ?úÕ@„Ã?­ð?¨›Â?ú3¯@ý.?šÙj?Ž;?§4?®¿©?øêÔ@.†?Üà?……Š?µÜï?¹!ï?¯6? 4@ùn@=Ò?äàJ?ÒÈ ?ËÐû?Ò˜³?n¥P?=·­? ¢?)Í?ôæ@S?þ%2?ï³à@#ó®@5-Ó?êi:?º`y?’„z?m? +š?~PÍ@Ç@8ĵ?í1e?œN9?`ìd?#ìA?ü;@8D?ø&?œß?ÊL5@‡¶?ÛÌ +?žõT?Yü?hq.?æ;˜?ý½Æ@o ?à{?ÊÞ?o‡È?ÙI®?¿?šð‚?²¹…?è0Å?ö/Ã@œ±@v.@h{@xJ@I@@q4@ @v´?Þ2?ã½Z?˜Ç?hB@R–…@[Pf?Ïx)?¶L@ Û@Ê?µäÅ?˜û?E Š?+´ß?Ëø?úl?ОÇ?»u#@ ¡A@.Š¥@…8Ê@«¾ì@r«@yv?ÍðÁ?‡-7?Ũ,@ u@ù£@ç{@q_@C…À@0r?ã¹?å‰ø@…Ä@?Ó!?ÉÁÎ@Òõ@j@(¿ë@,Vy@ÛÊ?þ°o@* —@8\"?ìÄs?¾À8?yÎÓ?AÍj? –?Õ²®?êmB?êë@ÑG@øg@#Úó@F7I@8¾V?äî?Úcö?œéß?žk\?ú[­?ø3û@®³@Sg?àòˆ?Òvû?Õ0N?Бø?¼wN?·rk?¤V´?—å\?³Ö\?Õ[À?àÝ?ãÆG?³[)?MÿK?–¦Ï?øÍž@°é@0oÅ@&~Z?è4ª?ä©æ?¹2¼?Ñ·?øP’?ã³ú?žgà?_;?îÇI@Éå?Åbž?Zí0?Æže@¤?ïÎ×?qi,?ƒW?¡¾(?˜Š?‰/û?Œ³V?Ì0Ž?ÏæC@5@Æs?ÅÄÇ?œIí?µ ?Ï}C?Ý— ?è¾p@ÔÛ@ —¶?Éê÷>0*]>Ì3?Ê {?Âx°?¯­>¥—i?¤’i?¬?ò?ÉÁ¼?ɾ ?Ò×»?å&¬?ÓxT?¹¤—?á“@cÂ@ Ø)?Þ±?ÜÚ[@ °x@ ˜;?íRË?êí¡?’kô?€NM?¸…?Ú½p?ƃ?š¥a?îÄ@/'á@%y9?¯Oq?¯?>?2ë?P9l?™Î|?‘³a?öÃc@$_?ßTP? èi?Yì?ìO½?äV¹?®Dœ?®/à@~Ä@ ?Ö1Ø?­ä?ç—°@ x¸?Ü8?g{?cS)?0È?éô?ÛMR?Ú)Ñ?¿ ?¼wŒ?Ö#ÿ?æ°Ö?¹ '?Tó?Rܧ?Ž{?—¢?¹(?m(9?õ„@kö? @?F(ˆ?ýñ?¾lH?¶( +?7ÂÜ?A>ÙL#>åÊ?=Õ ?cøù?iÝD?x‡?£ÌÂ?Ò¥õ?ÁBb?žÑ?‹¸U?¿Ü?ÈÄÖ?¹¥€?°œ ?õ«a@/h@rå?¬S§?­^ø?ôóˆ@%y?ýV2?ß I@GO@]Ó¤@lÚ?âìÉ?ó‚ø@!Í@¸¦@aûý@V°8@,ºP@,ÍÒ@ ™?ùyá@×@8‹@_ø?ñÛG@%tÔ@r`@gC†@#<_@–ë@<@‚@Lè]@48Í@-ÁH@I`w@JÓ,@µ?éKú@±H@@ Ý@9>«@þ@#§O@8@-]?[³æ?-ßx>³«->~Uc?”˜—?ÅŠ·?Óa?åd?ë(õ?ëT©?ßÖ”?à=O?ÑQÇ?‰ õ? Œ?ŒŠ?’è/?Þ?8l?®,¶?¡¸ê?š?™iÎ@"å@%l4@0LL@?p2@4Ì×@8ªô?ýæ9?ÁÝ>?7zÍ>ùW¡>©£ß>¤Ùk?p¸®?¦3°>»ß1= ´?‚Ó«?˜g@?èº`@Ñø?°i?¢2?¹ÿ?øÎ?õXÇ?ë ?ؾ3?¿;>={§?MÕò??le?½?-?$Ö:?.Lõ?Œ>ŠM>#ò<>ß•>ÕWC<´ˆ>¾v†?H»?'-÷?;Š=§Z¬<Ë„å?™¤>ÄÿD>tÞø>¶˜t?Gè9?R +(?\ú>Ö{o;é[!>:ñ?>1?£s×>‰dƒ=ì´>¤ù>’÷§?«Âm>íæ†=Ømf>·¥>çp!>þµÚ? :Ò? u ?gW1?^{=pD‹=|mY>ÝB>MÞ^? ?%ÅÒ?39a?R ì? >_X…>˜ãÉ?Û? úÅ?ç?"UÎ>ñ‡Ä>ñé(>`X>!ï>Ñ©ô>óY7?º@ö?ò=?ÌB©?·„?ŽKc?Oª‰?.@‰?¹§>óBT>šÐ>ú¦ˆ?Ff ?f4_?Ÿ¬_?†1å?  ?>øW?h?y–?zå?K¥!?=Ó=œÙ=;µ?¥0 ?¸áÍ?„lŠ?zÚÜ?²™¥?¼hR?ÎOn?׬L?‡‚Y?Wâ?—¬1?¥Þ?n|?D4?á’€@ ÷?È\Ò?¤\ê?ÊW$?ê( ?£°?]Ý®?†hK?0ø?XŒ§>ýôp>|µ<>S‚<œC¯=ž”T?AßÉ?®Ã2Ýþ>§˜ì>ÿ3‹>ÿI6>ÿYK?IÚ0?‘ÊÃ?€¦?ZIÞ?šŽæ?ã²Ë?ø;@¨ß?âcf?]šY?kE§?x6"?Q/P?DÑ?|Wæ?ê)Î?µ)?Q ,?[¹ˆ?Y"Ç?ƒ)ÿ?§,Ó?–¾3?P‡Ë?\·³?€]†?D•Ç>weã>öû´?‹øö?¸]­@ +ÓÅ?Éñ×> ¸D?Òõ?Í|¦?±Åô?pñ÷?0?‡Å?`m¡?­]?&…?€«~?|‡Î?lÐ+?gˆl?wA|?ºÂ—@Ÿ?á1_>¾,?ÿ‘?€Ò°?`S?‚ e?Sº >•&í>»Hæ?æp>· ½>Œ?öç?ú³?ÿX?HÉÉ?¼œ[?­W?‚b?…?Ê?‰¯C?Y?Á§?ªÈ®?gø?C¨ž? bä?1 q?V{?c¤>‰’c?KJD?g™ý?™,M?¨/[?Þ²*?±÷ú>ùbü??A +‚?0àÞ?hò?q/?/Ê@?où?¾Ñ?©£À?€&?R>0? Á?fYj?¸H¦?ð^?eê?<î¸?qù¿?LÈ?®‹?"Lu?L³”?*¡?¿Š?ø´?IÅU?}s?šm»?Ž"/?ÛL?L?¢Äõ?UNK>ç?­å?tÿß?vg?¿Ó³@-­@ 8™?Øœ.?‚¥?Eõ+?\A? `?ÔÝ?[µ?‚7³?å¼>¨Õ0?‡s\?ÃsÈ?žr6?„ž³?¨?‚a~?›´Ú?ªcÆ?œžj?™®o?—Õ›?“Dì?Š¥?fÐë?yØX?‚•Â>‰«‡=”?ÑœD@­w?Vf­? M3?דµ?ê?ä¥>Ðÿ?˜-?¡'?„Óè?‚ãE?ÖõÊ?Þ|£?¼\ú?¿kŸ?C’T?S1?f²?Z—œ?«úI?ªÍ„?ƒv?~^d?" ³?Nø…@ ÓÞ@]m?ÄÚ{?¹Á@?ŠfŸ?£ðÔ@s?Þ +­?ˆÄ?™ºu?»q|?£›Û?k&ï?rÇÒ?ƒv?‹šô?™Í?ѧk@ æý?ßU3?¦¡0?ƒD,?AK{?\1 +?n6“?-1?­Á?;ô!?bü?g:=?kuÿ?ÂÔ¨?ê)¸?›ê?|r›?‡úÁ?†”>[ˆá=Z’Ü?cge?ƒål?èk?ð(#?ŠÚ·?ƒôP?¾%|?µš?°Ôè?³Í·?žªÅ? Í?¢îŠ?›?JH¼?zÚý?ì h?ã +?š™±?€ä–?$]?ö2?P6!?ˆw¤?¼xÀ?¦©ß?„1µ?„5•?„<ù?‡uï?Žµ ?UaW?·?ÃÞ@a ?ž½?¤ºw?ˆ‰¦?"?Gd??%³Ñ?3Õ?>F¦?”:ü?¥àã?¤š’? þ2?ÿq>@T©?j¼?VSî?ö ?øò?â‰?Ô“˜?„[?›ÚQ@² @7s–@7 ‰@7†°?bÃ¥>Þ@à?–>??=“?ùíG@J ?‹ ?„+s?T4?,¦?ÙY`?ÓÞ¥?Pèx?Cq5?(™?c$g?ó_~?ØjY?R]0?]¡T?„?¢¦ø?äy @ /T@@@@@¢?/0ù?¼ï@#žì?úÆè?ˆ€?É Í?÷!?³Öo?ã'?‚÷`?…äú?ŠL1?Žµ,?ãd'@Ð?¹ Í? \‹?J(Ü?)1«?-?2 + ?Ë5f?á>@«£@’?U?x³?Ü!?Ýòy?š0‘?šMö?˶?À[t?ž‘?˜Üf?Œuó?’¶Ñ?Å$?ň¢?Äú¹?§B0?GÕ?›?[?yÔ½?øIœ?Ý(K?¨e“?¬ëŽ?±rd?±ŒŒ?¨Õu?¸LÚ?Ç<§?õB­@³?àä´?bõv?¡Ù?×­ø@>M@<ɉ@7jH@4Øß?Ét? ÄH@±¹@aš3@·ä?ÃÝ @K@6u¨@2êè@/aÐ?þ“?ÕÓH?]è?Vò‹?Ýù?KÜ?ƒí?¡ä8?‡â?r»÷?œyë?ž¬˜?Ý#?ñx?¤l?çÃ?Ó<ì?ètc??ö¨a?Éa ?ÀÏn?¹,?± õ?TýÝ?Uh?ÜŠ,?䶇?ÏÞ–?ÆÞu@Uâs@]£í?™Õ@?r+?ÛTµ?䬰@›@+Ã?ÿ;ü@ø?îçD?݈ ?Ο»?Ì%º?„c–? :@KÍ@j×@¸£@û]@¼t@ “²@32'@2vÎ?Úµ?µ@‹@”ü?þË?…tï?ŸÄ?£<ø?ÏÏ?ÉÓ?_¿ˆ?Yûˆ?«D¬?²*—?h}Ö?I°²?ì‡Í?üB¿?Œq?€f?Mñ?N¤?šm4?œ¿ß@*€ë@7^Þ@@Ÿ.@>ŠÝ?è§k?Èìß?ߤ?ݶ_?.†[>е¼?_Y?+Æ]?¶(·?α‚?ßv?êM!?²?’çF?°+°?¾P>þÛä=Ât˜@š<@>›˜?Ä!í?B>?4z ?+RÅ?›XE?ÜÝT@ x@:%@@¢ž@/¸@ ‹@ Ù?éD³?}c@ @hµ@5I?Ã/:?p®¾<¿[ø>Éà›?\“?Ê®ð@ ë¯@ø½@µf@–Ë@’½@øÉ?Û?â™?ám ?ÙÅ$?{~¤?…Ìô?óƺ?ÝÙ@þƒ@îE@6y@GÇ?ýV ?õ ]?Ò?ÒÕt?ÀŽK?»Ñÿ?Ýdö?Ü@!?ÕWf?Ø’4?Ú?Öþd?¤‰š?~Õ?ÚDý@(}@›®@ W@~c@õÆ?íïÇ?„t?u$¨?A I?fã³?–5?œªç?xÆ\?ðÚ?g¡‘?`r?߶?æ‚Á?k ´?}‘*@Z@ K@@ +ëË@áÌ@!è?÷kå?žÃ/?€ó[?½øU?Ó¹Å?îuò?þ1@3çŽ@dv…@1od?ö{£?ë +=?¶ôd?¡ÓL?”Ø@?«o]?ú»‡@9¨@Rù@)@Sø@C¯>Ä—V>¹³€?±þ`?ÉÎÅ@ ]P@*«?ØQ«?·KÛ?Öˆ?Uq°?`{?¶÷#?I~>”¹%?€&g@7á¯@6,@6uï@-ÅŒ?ÁZI?Ä·C?’“[?‹L?ê6ë@^–?ûúr?ü39?Í O?µŽA?ˆa…?ïÖ?5Á2?oš½?§ +%?óPê?ЮØ?AÀ‡?Z™?îá?î¼Ý?˜ô]?”æé?§C?£JÔ?¾lÙ?Ñw?’x?-Ê?z.!?²ÖD?ÇÅ?ýmË?ú §?½½Õ?±¤g?šÛ?–#¸?á?ìk?u è?@­?¥›’?ëü³?Ô‘:?±Ðß?Ä&?ëwX?çâ»?Îç?ÖÑè?§E;?¬u?(ÐL>ê¥?ŽÊ}?¾õñ@@;„?@%î?²>²?Á»J?à¼}?Ü‚º?€¡?]£?ùE½@½@}¦?úõ5?Ò ?‹§Å?§!@  [@…@'Ñ@ –-?ºM·?ºŒQ?œ?Ž/v?ú»9@-¸@ïö?K%?‰¾«@%W@+Ž6?‚÷?Ï>?êÌÇ@8?ÙÌg?Åú?´#?•9f?‰?-™Ì?e+?à’©?äøö?‘8\?‰sõ?š·d?›Â?X1 >Ϲ¤? ç^?£NÇ?²&?å©P?å¡Å?1¬>éDE?|/Ä?¢?@¶:@>'@»?>?“‚?@Ï?JÏ?Â5V?Þ)G?·;?¶³W?ãR@ËB@ @jœ@@9Qå@Cuk@!î:@!âˆ@ã¡?åÏs@ܯ@<œ<@2£F@,h¯@;z³@Pô$@I0]@"þf@$ƒ/@. ?è$Ü@Au@8a\@hÏ8@Ÿ¤o@*@;sy@I -?Žß¡?ƒ÷@¢n@.Uƒ@# •@%Fæ?ó)y?¥}h?Ý©ò@ªó@¥›?ÑC9?ÅTÛ?ì5?ïçÄ?sÕ?‘?sFè?pW©?¶,?Úe?·z”?¤ë?r‰v?k~?o û?³%Õ? Nî?;2‡? ós>¥1^>ꕬ?µó?¶t÷@. ¤@$Êž?+·>ó³ù?âÛ@}m?»wk?­íÐ?‹i©?‚vE>ö~·>ï²Ã?zmÒ?•ò>}uY=d0=C­“?;ÖÜ?cRy?…1r?”AL>Òα>à>òè4?ðâ? ƒ?ý?Ç3þ?È´?”?›=šÃ/>U”è=žCÒ—]¥?àë?`é|?‡í•?w?T¶=²9™‰¦=ؼ3; @>ª²ö?Âi?¦ü&?±Ñ¯?Í‘„? ™?áå=Ï4°=äŽ==6Š?´õb?ê• @Þ}>›¹?š??hf³?@_ì?”y>Çr>?e“¨?â_P?»\[<Šx=„Ð/>Òàº>É|Ù>À>¶§õ?Ýð?…«?õG>îG¼>†Ó=—*„>­‘¹>˜>®<>¸Z?ndG?r´ä>úÁ>àåý>‘q<2{7=s(=çjÈ>Ƨ`?5ð?tz>õ÷l>ˆEŠ>{k ?,È®?=C?l¡©?QÛ?>[ר>’å-?)"?/S?y »?ƒ¶Ó?ß–S?ß_ž>Ù‹*>ãKÛ<b9’ô?lC?z×Õ?¶?¼eL?Fžm?4G0?q‡:?{×?òäD@>Ö?×áØ?Ä•?ÐB%?ä|@?È‘š?±/þ?DÒ>ý?Æ?.Và?=ç¹>ëK|>„IT>ØQ:? z§?š>þ!¯?…#$?´èn?·¥8?¾ãc?N?~³:?¯òÑ?â;9?µWœ?x×W?}Õ>XÒ>k +á>}ïÐ?>Ü?­;ß?¢Þç?’< ?ÏaÞ@ Á¢?ïÚ?²{?Yü´=‹ìE>s2Þ?-?gN?¾„!?¾S—?Å1?’Ÿñ?.°?½!@ Û?©·„>™ç•?6Ñ?¨]?Š'…?9@?'¹?aC?U?5•:?XW?”¦N?ˆl?F[î?œnÁ@ýj?º>ß›·?€ î@„:?ì?¾éŒ?§Yù?€§?[?­É>Ürv=èÆ?Wì @ÁF?åX¹?#ˆ…?”¶Z>¤ ?=£?n?ù¨?+î¼?€ÿ®?–™q?ÁuZ?ªïã?ó?8ð>H=ó?@õ?†?K›V>½®°?3ìÊ?¬6å?‹+Ñ?¡ø?MC?Ÿ’b?­[ˆ?ƯE?­8?g‰?xî?—”x?`0å>†Ó>>ÁD?f}?…ø?ê`*?À°Ù?sžŽ?J¿?g?Ó1?…3?kìu?ÂW>?¢:Š?gNÂ?N>ô>žúç?«`?;fŒ?´‘?iå?E ?#w?Ç7?¥‚z@ûZ?»Z?ZÔ?¦y>Á³?[`d?ªh-?tL?æ™?G¤Ë?|¡Ü?;Ë°? +¹r?¯ñÚ?ù{5?®K@?qP?R>ÌÏÂ? “³?&€«?€ÞD?–¶?{JV?lúì?u„ ?~ 1?˜“M? `?žEd?œ+u?Vcà?-©?Ãdß?æSÿ@Ùì@–Ø?¿>?s†i?¦^?¡H@ +oö@"¯Ì@} ?ø9B?ÏÛ“?ÌÁÔ?ã +=?ß-?—.Ï?“ï?¯×ø?®üð?c(I?im +?ƒ6¢?øL?_ ?ªÖ@¤?û«¶?ƒ”?€{z?\Kà?€¶€?ôi?Ýì>È™? 5 +?¼…;?Îúb@DN?Òôb?E?÷? Š>à|>Yùæ?} Ä@Võ?ßv?ƒu ?8•->­áõ?HB`?©•Ö?–?|Dø?‚î>?ƒ›õ?‡Î{? ù?€-s?_©P?WE_?NÝo?/à? æ1?@B×?Aü¦? )>îþ¥?Ûi¦@ÞÌ?Î+Æ?½C?Šc¶?ƒäŒ?”´û?š~§>{‰>yŽ?lÚ‘?{Â^?ƒýÒ?€k+?8'l?ÚBö? ‘?€ýÍ?…#|?u†?F|Ù>é u?7D?˜ì?î­?„1G?‚ƒ.?‚OO?Çš}@P +?ûWÊ?óW@6@ öú@ g@'¾@”œ@®F?‰û:?4˜v>žô>c7Ù?´í#?È$¸?bËã?]ƒ½?æ%°?ï¬?Ç^¹?ÅÀ‰?³ë†?Áª!@%o1@ ?„YÎ?¶Ùð@Y/@Bw7?ÃŒ ?ÇT??Ã)ø?Ù›®@-A@Ýs?äç™@ +Gì@./N?Ø”?Wë?Ó?× ²?š±Æ?hâ?‘Ï ?¦gÀ?©:?ª??¾IÐ?Ær>?¥Äè?˜f?Ôb?é>øNü>2_@'p@?’0?Ì! ?Áfì@x@È.?ú R?ñ?é?ÆKº?Ö«Ø@+¬ƒ@t&?Ó_ ?ËZ?Æ4v?¶;×?„Á?ŽÀ8?§d›?¥iÖ?«[i?Üh @N†?ée‰?š*>? ù~?§{ì?Ö Ñ@ö/?À ´?ƒîx?Aöz? ðx?[O?„3¹?3ˆ@? –£?Ðç@Í)?xH6??e?X÷Ò?c!y?^¥Ê?Z+?•ïî?ž»º?Õì ?â.œ?Šÿ{?‰¿€?˜g”?¡¹t?—Ó?£Ú¿@ +ö@"Kš@ +°@ÓC?»…I?¾Ñ?Åï?Ý@¯@@öæ@CÈ’@1…@)šd?ð.;?Ùq?µc?­ Œ?Óš?Ùn½?µù>~%‚?]ÊR?Šö@Îû@.˜?¬~h?‰±%?¬5Ö?´ž?O”’?(bs?μ?8‹?tI?‚]O?„˜…?†ó¶?®¤ø?®‰;?œæ?ŸB?¤ !?¨Ö_@:Ìï@F“?Ú¤Í?ÈCd@.?ÿñ?ÄÞ÷?Á÷ë>Õ3>¥åñ@L•¼@ZÌ9?âÒ×?áE?xß®?v*í?D{?½´?Ç?#Ñ>?˪?Óë„?±?Ò¾Ì>±¯³?‹åK?ŽõÓ@&3@º½?Ȫ?À>w?‡?€(7?yUŒ?s>’GÀ>ˆv?Òêà?ñtÓ@Rz<@_¨Ä@±‰@1–?È-?Àl?¤ha?š‘?-²Ê>ý­a?·±"?ß1ã? ¶¬?‰çð@ˆò@>ôW?ïn?¾P>å?·Ø@ +7Ã?«4$?\ðR?Wyû?Qþw?œ@ü?´x²@+"™@oL£@]Œ@Q¡@x?½í`?Ÿh°?}‚?¤…®èë?|rw?¬°D@ Y@©Q@•œ@ +$1?—+ñ?®ôì?þg÷?ø<$@%?ùÑ°?§"ô?¹@‚í€@†hf@ÏÅ@¢*?Ž¢?€¸ @1G²@6˜X?ÿêç?ïIÜ?›®Ã?ŽY1@ +db@hí@ ?þÕ«?¼" ?¦Ö³?¾ò‹?ÎJD@Ý%@+ýc@À?Ü4À?å(Ý?îÑ?ÄÒŽ?yÔ?_Î?©¨c?±sº?Ìçâ?°¡ž?O q?wXš?îf'?ÖG ?x ?x¥?d¦?EW @;mi@@{;?´8?‘aé?ãœÜ?÷Gh?Ç-D?³í?àH"?öâ#@ ؤ@3Q@&£!@8hÈ@W ?vS?ÕVÂ@8”Ê@­?epp?>(ù>³¢÷>® +ú?u‚Û?z†?»™^?Âå>ï—U>Æ7?+Ç?C¤£?ö¢Ó@ê£J?Êyl@ Q?Ø9?Ž²…?ŽX@?¯p~?¶©«?é°?霌?‹-Ã?Š«|?¸S;?Ïš{?¿1 ?®¯½?Áž‰?ݲ-?Å°¦?h{ ?h0µ?*;?U±@x,@ gß?ž™¼?gˆ?Ò¬@i2?Ú©®>±aZ? m?­pã?­Ùs@#†8@€Ë?»•‰?¥·‹?ÂÃæ?Ìî`?ÆG÷?·üï?¯$#?º›i?¶/?±b„?­zA?ÿö@^˜?Ë´Y?¬oî?>õj9>ìó0?}È?#U?ÍÓ ?×;a?- +>å‹y?C"D?{t?·êF@ €J@‚Ÿ?¨ñ?ž9‚?[!¬?=Ø?g£Ú?jÏ©?— T?¬€?£~?£4K?öÚ‹@h +@^!N?åŒÉ?å—?´Ñ#?¬I-?BÎò?—¡?–?âÀ?ð¯?æu?öÚ›@TÁÄ@_[%?ûÊœ?æŒÔ?Áâ’?¯O@?øn@P‚@8Ú8@ouÿ@l@bK?õXö?ôAø?îïO?Šü:?€§A?j†?ŸG_?ùÇ?iF\?µ—’@ +M@ +¼@%ž@+á@/M+@*\?f]—?GâU?†0©?“ÀJ?™ãõ?  w?N×Z>ín¿?¨û4@ +/@@µ?ò–Û?ѦÝ?Ê&ã?¢Î?^•¢?¹ûj?´ ?9jÒ?yè&?ŽÏ?ƒ ?¬­?¦±Ê?€i¥?uÎ?Ù–#?ñ#W?9¾u>¶|Ò?:vx?uN?14Ú>ÞCé?.[?„g>ËÊ>q?Ù!?,#í>a¯?ÓÓ?ç?gN;?€-?$&¿?@An?(§6?Ò?"‘ +?é4?r_ +?OV?ã¦>‰ïÈ>¼>´ •? +ØÓ?¢Ï¸?¼yË?-+”>ëB>ñÕk?£3ñ?Î>§>Þµ•=f„Ò>*R>îÕ>Ž;>wö¼?ŒÌ™?§s—?“ï‡? —<³} ß1r>Ð @ @gÕ?°‰‚>5ݬ>Õ«÷>‰>=»C:ó|…?e]Î? Þ?µÙN?tT>·*Å?cÌD?2i:ô•@=Si=‘=¸›+=à/®?"±ž?G~Ö?qãÒ?‚Ø¥?B©>öÐu>ºšþ>Pcl>Œ‚?ù?ÃG<¡¸R?rW²?rÀ =ýu„=õk?Mu?rg"?i‡a?_ÿ'?`²ß?a)·?\„¥?Wá;?mæ®?yëå?:È%>÷Í>Ðì>€#É>pëÜ>‹;Ë?j ?’©X?Œrî?yP?pn¾?Fã?? <Í™à=› ?}bg?†|„?£Û©?¡O?6?{Í•?²·r?Äf?¶ç`?¶Ç?4çÄ>ü¬H?5B?±4?“{?y¬7?®?ŽÏÏ?±tð?¾=Ì?”}™?}Ý{?:°?˜?O‹ç?‚aî?D:È?>h?Œ\¢?²:r?K\R>ÑÉç?„£?¿8´?—Ï_?]î?*„¿?­?v°ˆ?­Ö ?±C>?²ç?²‹þ?¿¹æ?™`@?d·Ñ?-†>ÜY;>üÓH?{œ?:D +?€i?ž ?À"€? —?l¯Ä?e„Ï?sŠë?kÊ>UÛê? ÊÅ?Às?NÒ?7ÚF?}Òr?a|ç?K'—?T >§Ô?N>0?À±}?çe@rº?¶»a?jLó@…M?Ýn?©"?fg¦?»¼Z?¡(ö?mæº?8øš>È“„?YÝ?ÓÃd?¶/y?€»ù?€À5?€Å ?®†?¡?¡É¡?®6t?Ì¿ò?ðS?´9?6 ð?d[?iB?‚¿›?Q|¢?YmD?€øø?–ê•?¿¹?‘ÔÌ? ?/Cr?bF^?@8Ë?Í?_%k? )Q?‡Q?U¿?L€g?4A?²ïo@Oþ?É»Q? ,?En:?öµ?O°¡>¬!^?ý‰?TI?X,?^€?L•ä?e~>”á£>_F?uò?{f?y?Ÿ?&22>èPq>WÂÒ?)?-?õ?–:‚?m}E?6‰Õ?^K¶?¶*?I?yD?ÈÞð@–€?£x>®”>Ï ê>Ëå>ß|^?çÈ?>¨c?rÿ}?H¶œ? A?T> ?c•?ÎÑ'@?´˜,?‚A?uïÊ?i‡^?ñßû@.ø?¨œO?YÒø?Xòü?P7?Ó?N6?†ª?¥Ó?в9?ÝÙš?˜ÅÇ?‚nÝ@Ðë@1I?Š?NÁÝ?%Þ?;|?F? ÒØ?¬o£?Âk²?ÅÝz?Çèg?Ä£¿?Ä ?Í…û?Ð{T?‡e?‚Ðð?ð5Î?ñ$?ìä?㟜?õê ?éb?‚÷º?s›@ÿª?ôÇ?R­D?RDQ?.i?¯>>ŠXÔ? —à?ì.ª?× ?ƒ5å?¦‡@”?¼äv;!€>ú;8?¼]?ŒGz>äžz>ÜM²>þÉU?mîæ?´3‹?‹–t?2C?_È?„—?{oÖ?®H?¹¾×?Àš?iV®?ï?H÷~?}¤?¡É®?²/r?‘æ…?ƒ¸Ë?Ü;ó?ü–>÷w=Vð-?˜sD?¾8w?Äé´?ÅÄï?ŠP}?ƒßŠ?ƒå?ƒè?ŸD?™R°?£Ò0?—.S>ª)?‡X?äƒ?ÕÁm?®Ý€?š:B?K¼¶?qâ ?ŸëP?ŽsG?=™?hi€?º¤´?ÕØ"?ù¥?ö?òiÕ?¾[g?zìB?AB?/›?Ñè@$?µZÒ?+¯¬?¤åÑ?Ñ-?å*ê?ó•þ?ÖmY?ш ?Hô?E?±ËY?¿–~?÷…0@Lo?©ËT?•f?â~?“Zb?— 8?ŸÌì?Ðð»?ÎP¤@ž!@‰?sg·?tè?oD¢?Y–ž?/Ò?QeÇ?Æw?³ó·?’r¼? ·@S2?Ñþ?]Â?`¤?Qa?x|u?´Çþ?xÀ>?{-?…µ9?¦Á?qïö?N‘ ?…~“?• Þ?ªlÁ?² >?Ž5?„@Ú?„?L?„@G?áPq?òTs?,H?eB@"ô@ ä¦?ŒB?‹9Ð?%²¯?R…ü?ìn”?öyP@#ª?ùù ?Æ-?´ðó?„É?,D?|¿ +?@·³>Š,?k ì?øÇš?ÛL†?¯K?Ç[¶?ãV6?ø&\@ò:?ÄÔ?cè?‚ÈG?}žv?«•ƒ?ÄÙ?ÁúA?½N?ÇgÑ?Îlz?Eôó?Á~?n?ƒ·G?Ñ~t?Û;[?ûÐ?ùP?Œf?ƒš*?G™?@DÀ>áÈ«>Ð1?„+? Á"?ƒwù?”Ëœ@¥ú@2c?¡º“?¢¬Ò?Åw?¸Öö?†Å®?˜LÏ?ÐÇ°?Ÿv >úí>,=&>P‡¤?7ÇÌ?Ö>m?Ú:?Ùàð?¡L>›J,?R©Ò?Äqã@-?@Da%@îÑ?g«?r÷š?‚Ñy?Ïýþ@ ¾@æ@5!?â •?°WK@3h@Aþ¨?ãJ;?}ý?ùë>½L)?ñÏŸ@# ç@šõ?óŒÂ?ã?Yëä?Ó)(?ø“u?,Š…>‡Oò?%O?Ê‹?|*ú?Ð^?ås-?ë,î?ÇBs?ÂÇâ?ŒŒ?‚j*@‘@ ó?ÌôÂ?ƒ?-'?SU?ªšš?¯"^@1Ta@65ç?äD„?Þû$@u@!±ý?«¼š?§ÝO?‚¶2?:Ý?­´?±€ ?!ç?¼g?X6`?@ËÕ?Çq?ÄFõ?€Z?yãÉ?Àg?Á<]?¶í?³=W?ïÚ¡?î}—@›T@%w@C±@<?Äöu?½v?N¢?Nd¨>¿^>¡˜?Éöü?Ït–?Ì×[?Ê>Q?Ç¢“?Åt?Ä\ò?¿¬[?ô\“?ôK’?­v?žÙk@ +¨@@Ÿ™@–c@ +,@_ˆ@£¯?ƒò??ª?–Ÿ ?¤”?Î0?Ô´?µ0?^‰?­‘;?¿ ¾@n@3ã´?NÑ<ž… ?‚a;?®A½?dû?@+?m†?}õ?·Y?Ò†y?Ë% +?Ïÿû?üò'@Ì?ÝOk?¤žs?›Ád?–ñ?œ?›CŸ?Π@ f?ð3”?³¸—?ºçå?µß:@ ­P@d“@. ¸?™¸?ÊĘ@ŽJ@çî@ +†@;@„â@OW@""@Kl?ѵb?Õ0?¼yç?»þŒ?³Ñ?µÕý@;!±@;ÚÅ@tµ@ugl@:a@0Ä?n£?0©?‚‘œ?šT@  @E&?ʺœ?‘àz?EÜØ?"aà@"j„@€>w@¿‰?N™?R ?Ùî?i(?¸g'?ÞÌŠ@Â@V²?ÈýT?¯ª¥?%}ˆ?„»@:6@2… ?Ó]q?Í}‰@ò»@âª@&h|@0)ë@ 7d@ 2U?þp†?÷?é?õ0Å?ñ¨“@ ÑãÓ?w®@ ›"@ƨ@!Eé@ò=@&-c@+l6@$¦S@%ê?§ »=nQ˜?D‹.?óéã?Þf?§×?¯Ô?ŠâÝ?Èl?-8à?4¨:?gù?n:h@ÿˆ@;©W@ +°?Ä~5?Њi?ñHd?Ò4? z?£˜@qà@[Ý@’ƒ@u”?áeÐ?ÅDh?„‹ÿ?Pæ€?±‹7?ëïÉ?éöW?ëGö?Ùå“?¨V÷? œ¡?…ÖW?‰Ë÷?ÂY?‘¾²?Ÿ …?“ Š@š>@?€@7q +@,®£@kž?¯m‹?°W’?¹Z?½nÉ?ÄX?¼(?#PÅ>÷“,?¼†?ú'Ã?ÅÃõ?™¿Î?•…’?hyˆ?gÉc?\(¯?Sv?õ…©@î?¹Î?’8?Ø‘@ `7?º A>M 0>¬xƒ?±hq?­²Æ@¦[@¤À?¾£V?›•)?Æc*?æ¢?Õ/M?Ç{?×ø?ÙEî?ÝÂÛ?â=ã?åRY?R}T?;x¥?È2—?úÄR?ÙRm?®šù?ªsÜ?°NZ?¡Õ¦?ˆò?~ïo? P†>傺?º]‰?ûIÖ@¶„@ åª?ç=,?xõ?‘Æ?Ôß2?Ù¿'?¾§W?¯´?ÎHT?Þ?D?Ó]i?Ã7?áâˆ@6„@AGz@-‚@v?ÜÞÈ?À"ö?­Å¶?£Ê–?å°Þ@Ž4@²f?Ňx?×uË@&6@ ÔÞ?ãµÅ?à<ö@FX@^š;@¨?É<Õ@ FÓ@Bd@6SŸ@)a§@09\@³Ü@ Sy@ZB@[»9@)Ù¥@Êk?§‹?*ó?¶@@% ô@€ô?ê.i@Ù@i ®@c§ä?‚A?k‡Þ?4(U?3á‹?œ<Û?§.‰?Ežø>ík>?ÆÊQ@/K@ ‚Í?° ??»ž?¶vÜ?êë@]ô @dʃ?í¹_?îðë?¦)â?™¦?´®ù?¶Ë™?½ˆ?Ë2û?¶â{?™r$?ÄÚ?CG?¸8?šP?’ÑN?w£‘?º§¡?Í ?͘õ?ÃSl?㶇?×c0?8É×>þÑB>—m>Lj^?—‰?‹öµ>¢Ù=8À?ohû?e¥?ƒ?„nC?’ý•?ŠùÃ?N>ªÖK<þÓÐ={`?O?=Y{?~ý?‰B)?À.ˆ?ÌR?¸JL?e.i>È£->Då’=¦«Ê?ŒÒj?‡»d?ù?oÌ> :?v?x4?“ô ?Òó@G-«@)t?ìFM>NÅ/?quc?l Ó?Jç=w¤Å?Eò>ý‚>·èx=Û%>DÒ>á{?>è‘I>àʲ>À¬>³*>²7ƒ? +ô +?Þ—?r ½?¼?•”M?•þ?I"b>‰î4>SM$<ØËY=þÄÚ>gø?\HÎ?a|ü? >3?Z&?¨]4?¶cä?1¡³?‡ð? +˜½?¦}?¶Þ?È ?2‰I?L‚Á?*¼ð>÷ +?w:?;J4?tXâ?¡ŸÝ?–v§?¤K?—Õ>?Vbœ?=ÌÛ>GÞ9>c=uo=8hp=6b=©ä?¶Ä?­Û–? +Ì?¬¼?‡P?‹ž÷?~; ?{Ä?0?-$ó?Ûi?æOÌ>ó+Ù>„Ïö>èÉu>üæÌ?æ&@ÍY?„Ý=û`©?vìÔ?¨Dg?’)Z?…$?Ú©n?ÿ‚í?Òmü?»lž?S–Ò>þfÇ?]q?‹ÿ?’Z?ŠÇ?ŒÑ,?•˜ ?RÐ?!#?^ê?/{?–° ?µ:ˆ@.v@34?ûX>?¿°œ?w³í>ÿµÕ>À£~>X\F? –?„YX?êW<2òA?B¿ê?Àÿ?×öˆ?ìû‡?—§?(ƒ?•?5È?+ì¢?"ÊÏ?1@¬?HB?zêî? å?ƒíU?6i­>ÄÉ:?*.?À¤â?¬6?˜n¶?Fë(>g´? 5Û?‰MM?ïGº@?8*?õn€?1Á?Fá‚?€Ÿc?KMR?§½?l!7?ÁŒ?¦IV?€¶€?@*>Ú¯â?He? ’g?  î?”Ð6?Í`@-ü?«­>š Þ?9Hi?²~0?ÕB@J?ÓM/?ißá?E¨¡?*e?k«?ÿD?g~Å?¹öl?œ×ë?j)l?}Ð?‘u ?ªÃ?ÃûJ?ˆUp?' ?†—”?ñ¬£?‘ T>Ô.Ñ?j¼?ïÉ>02z?,,‡?¤®E?™q’?Ž±l?TQU?`Ï>—"=ñÉ>‚ÝÆ?g{?<&Ô?z&ç?–¸g?°Ó?e‹‹>ÎñÜ?Çt?Füq?OŸæ?XD#?/ú{?©3?EjN?±ù?¤:ï?˜-?®µ?›Æµ? I@?/ÏÑ?ŸÚ??U m?áÔ?æË?ì´?¦‹?ñO”?±öú?‚ÿw@4É@>´%?ÿ÷u?ºZ?ÜÕ?ê{Û?Ë(?ƹÅ?Z †?6x?Çs3?ø©:?c¦O?K|?1ËU?Fª[?²¡C?Ï7Y?”Zî?‚k²?êÀ<@vh>ñM=áOç?6ö?]®:?€hX?‚˜e?üÞ?HU?µa? ?ƒòœ?ŠL??.†?1õŸ?´°'?³ÕÞ?¦Ûe?­8,?ñ ¸?òâw?Ò¯3?Ûò³?êê¬?ä+ ?ç‰r?ÒÔ5?¬?“?Zâ?mæ»?”ò?’Û¯?È9?‹Ö?ƒ2?·T@Ög?à‘Å=>Ü>¹Ôl?‡Ô?[©å?YÓ>õ†Å>Öx?;Ç?“Óº?l·¶?,³\? ?¼}?ø%ÿ@åÕ?ع-?¥šê?yoˆ?<:°>°g>@Ý,?D¨Ë?ƒ¬ü?mYA?hH?¨ï¯?º!u?AH†?Tu=¬ú?kã”?…‹Ñ?½±*?¿Üb>+¤‹>5—­?û‹i?ü"h@o @æ}>%%?¥³‘?°[°?¾R´?§p ?†ò?q5Ã@ ©¼?ùN«?¿•Õ?>þâô?¦²ì?¥e¸?›'â?nƒE?!Am?Λ?,À>jÇ©=Ô?vÃ?ºOž?›M?Žyì?¶d ?Æ[K?ò>•óª?Íd‹?î«@\´@%VX?´G4?£ÈM?ä›z?ï—?Cƒ9?8‡L?4EF?^¥2@Ftt@3EY?#8Ÿ?#e¿?1­? + >ŠET>6BT=¨Öž>®Át?†…6?œÓ?¿û?¯5>¬}Ì?#w?jzf?f.®?aâé?uH‰?„LY?Xðƒ?<9`?†ïz?¢ðN?Ç™?zŠ]?qæø?i?‚?‘åÖ?™/U?—l?”Ù]?’®‘?‚=?m–?S¢.?„?ÅÎ? +-?A? D?]??x²?…Rõ?Æ6’?æsr@5¨Ÿ@€n?W¢¹?k2?„Ó?][þ? ¯?ž1@­?è1Ú?Öî‰?—0?*ú¼?]H?ƒóì?¹o?êöî?Ét?±Å­?€6?0ÌÐ?fCÚ?ƒàí?…an?‡’ƒ?â·?ÿWx?Á­?¬Uí?@e•?%Ùí?lû?‚fA?Äp?ÑŠÒ?ˆèî?ƒ•º?F$I?LÈ!?¼Ó ?³‚¿?3Ìþ?:¼ ?—&?–‹¥?¦Ít?¾ @=Ó@ ~æ~ô?³Eý@T?ª@/”?õ!É@Ã@–?Þž?Q©ß?€#ˆ?¡¯W?ÓJ@]?Òr?‘4@?fdf?1å?®ÂV?äžË?äæ?çí?<¨=a|í?¡N¶@0.@¹õ?ÿ™9?˪?­Š~?ð& @uS@R;@^c?•¡ë?YͲ?_V?j©…?†}&?…´Ì?µ?½E*?}°€?qPï?jâ?8?¾’±?Ò?V@MSN@^þ?Ù¸‡?½ì?ÂEæ?–f?!|?Ž–î?¾¹$?‚0?Òy?˜ï@ +Ø@-?†‡ ?r|?›±À?ÓÑ?Û­Ð?å-?„yà?G ?=ú?6ë?¦ê¡?¢y\?Ƕ»?»½|@7?Ö@:º,@×S@ƒù?‚ o?€â«?û +¸?ù[@ÙË@rO?bŸ`?o£1?ÓÄù?Þ§Î@ `µ@Ι?àãj?âG¦?>ø?3S?$˜?.¨e@ØS@¬ž@ @ +|ù@˜<@ Í@ ƒ@áF@5?ÿÿ?øo?õ)ß?ÜÜ‘?ß}ç?ì(?ê~¥?„àˆ?ƒJá?Û‹B?à¢v?iýœ?I›?Ð?R?é8K?¦?AI;?´¼?Ê,ž?¯æ…?œUk?±£Á?½i?‘ª??„Nú>¹{¯=©?œŽG?Þ¤@ñõ@ðW?¦3l?4f×?ªB?Ý@á?§h?}U?Œ¢Ä?ÜB?Óž@ #?ÀÖg?4ÕO>Ùÿ—=¨I}>ÔÍÛ?€”r?£!‚?äÃo?ìû‘?áAâ?Ý@?ãPù?ê1ü?ùÉÚ@Bý?ûÅ7@Úâ@–¯@ q?§Ô?¤x?¼t!?»Å?£ŸÒ?˜Ý@=Ë"@<˜è@Óµ@¬Æ@@E@¦@¤3?Ïéw?¶(?ß¼@?ôÊo?£ök?Š3ƒ?^¦>/wž?­še@e~?¹'?yTü?ÍZ @ï—?Ì`Ç?•c?k|Q?ËOÍ?¬??6?ZQ¶?‘0ê?“4?ßò?ÓÕ?Þª ?ë8Ž@ñ­@Þô?…08?gó°?îA? +*ü?ÜåY?ø7?œºw?†Tc?Y>êÿÖ?a\?˜H?Ú€”@ƒ@MD@’p@q>À@-¡M@eý?Œv?ÿþ?­'ö?¯mú?¯Ð?«cJ=Ü”Ö>“m(@L}@{?ÆÜ?·Œg@pô@ <“@ \Q@ +Ó?û6V?ãóÂ?ª³\?sç1?]0?.äÎ?¸! @P@>©*?îˆõ?Ð2V>9 Ÿ>©Æ@‚y@ °ñ?]4´?8ªÚ?Õîi?ò5Ð?ÇX°?µ~¾?ÁeP?ÒŽ@½Ê@:QK@^G?qPW?:Ê'>)Eâ>áÂŽ?Ô@Ä?ÂÄß?ס¬?Óæ¯@"Áä@-Ú©@N?ùL~?Ö2é?½\ø?´*ô?±}Ï?Ë9?ïJÞ?ÍH»?o Ð?aøv? Ý?' ?7ï]?0K8?f¨;?n2ø?ÐI™?íñÚ@FM@2F)?½59=PÐ? +ÚÞ?¨˜v?¤rî?©§V?·WŽ?ì¸Ç?ì™R@R9@!®X?Ýô?À#R?Ñ¿ç?Þn?´SÒ?ocD?› ?â©ó?×Y$?ŸŸè?›Ò@ öß@]S@€B@¿›?ýÝN?üe©@D`@  ?þJ.?¯f¨?Ê°k@7 @.¥Ê?¡?£ª?&»>Õ¼Ø?åÁ\@0_Y?é×Ù?Ôø?ëZ?kÔ?hTÃ?h=g?h 3?c±?ý?Þ¨@a ?ûcU@Ü?Ø?O%ó?{|”?à¡Þ?æ E@C-@@ÀG@û×?ûù"?Øzk?È$ë?®á +?sÜ?{Qˆ?¹Ê?´{?²êr?­¯E?£ê"?˜Æ@»µ?´±?‚â&?ÅÙÔ@Y@àž@a@ ãý@5u6@B&@6Lª@?µ?Ò´½?pPO@Í8@€Ë@I[â?¬Š*?Àà›@>çJ@A£?É1?²'æ@x*@1cù@'Ùÿ@§z@û @'mª@.Æ@ê«@:ð?­é÷?® ?ã ?ýâ@C[Ç@XD˜@ –Î?•–??ή@šá@¬?ùs@G@N³+@QÖ?*n·?M{>û«_>ìQ?·ÐÖ?úÞ¾?9D?Í?ßÅ?E´z?Š‰'?žý ?™ö?“ Â?Šo?‡¶ ?œ•å?µù?»Þ²@(@¹?–¬Ê?–n>?«t¹?¡'‘@8j@/>?Ø»_?­È?¿¦y?Í[k?Š:ö?€p?ÎC?ë +j@* @§þÎì?2Z®?04?²ÙD?ÁmÖ?…ï…?tN€?Ö$?(iÃ?81o?Y2=?‰?{´b?UG?WU>õ4ê>N¥ +?0üé?1H?s*0?uë%?(?_å@ã?ÿ>¢¬a>ÑÙ>‹î>51-?ã}>èC>‚?)>‰^Ž>‹8?¯9B?·ª?}|Š? ™@jŒ@/Þ?®C“>qŠ?A‹>ùiy7‡€?ñÐ?ºÌ¨?ÑQ°?J¯=@Ùµ=%ü¥<œ©Í;¡M¶<½ÎP>giô?˜îÀ?‘q>ì¶p>ì¼M?¥èÓ?±J?V€Š?)l½?sç‡?•¾¥?XL>Èm>–Cý>"¢>[¤Ú>ñɬ>ùþ?‰? †ö?gÕ?lÎ*?°éD?·(\? „™>ôÖ/>(Ïå=­}??V? +€>ö–Ë>öØ>÷O>ëd›>óŸª?ƒgÁ?îÛ¢?Æv?LÖ?D€.?§É?8sL?ˆüÐ?tîï? ×ï?ø¹?tíÎ?l5y?3ª?Ä@?mZ ?bNŠ>9í¡>cI¹?zFû?{Á÷?‹‹>üé?w"¸?Žb'?ž>îûˆ?…³¾±">ò›‡>ý—¢?š Ý?¸ C@ ö¶@¿i?´7±?‚PÎ>«Š=~l¸?¤;Ü?å7?ˆjó?Dß?”8·?©>îš>‘`õ>û¾r>³i>]e?\0Ș7?mî?­‰d?µè?»a{?œd¶?~Ï? ö?ÀL?‡_š?8ÅL?X*Í?d/X?‘6J?­£A?}±?.¨f?Z©M?€Bw?^(\?Aâ?s?¶Ô¹?W?Mˆ?‘0Æ?äÿ¢?w£1=ÚºÓ?³?€zt?°÷h?îi[?Úôý?Á•?ÁB?·œ"?WÔ?Ô ? ­º?£4?å1?H÷>??Y,W½> +Æ=Ë¢*?`]?„ßØ?ºÍ?ùŒ]?Ý)?Á„ ?¤Æ? ×?SÅ¡?! Â?qœÊ?©Ö§?¢a?9?®ù?Î{Ó?ˆ:£>øþ?=PÎ?ŒI–?lÄ?.ú?¨eB@LØ?ã>Ù?Áþƒ?ˆ&ì?=?Õ«?×U?FŸ?€˜?B ? bµ?_÷?"œ˜?üÿ?‰×?¿?’*?2Ç?XÎ?T‡?PGd?žÁT?Ǿ½?‹?L¤Ú?z…™?°V>ñUG?n?mqµ?'5?â"?å ?ë>> +Á?¤Õ:@Ã?²Å'?‘†\?KpŠ?"™©?¨=M?Ï’Ù?àÉþ?ã +/@ ++@ +}@ žI@Ó?͈þ?¬YÆ?À?¿13?<‚&?£9??™uä?àÀ½?ò6?†è?ZF>@R×=¥äª?j¸g?‚•ô?Ìú>?ËŸÌ?þˆŒ?üÜå?ûIˆ?÷Rã?²ÞS?¯À²@Jã@@tr?& +?1Ô?˜³±?œ”ç?ªIk?¨§æ?ºžx?ºd¶?†„m?}¦Ë?À? í?…@d?Žh²?Īõ?ÈÂ?Òâ„?´Wd?^”#?ŠX0?¿@á°@AÓ©@N ½@]½/@C ?wÖþ?’o/?­Ì?~c¯?# Z?u«­? ¨?Ô¶Ö@Î?²Ô?Ä}:?Å¡?Å×Á?éÓû?àk?Ñ°?ÌŸó?¡f?œ-@ ‚à?æüä?úð?u‘?„^?„X?„N?«üÒ@ ?èúQ?gò?-‚±>¤:]>Ä«??£‘—@ ++Š?ì‰?Æ9°?Œw­?(<6?-!?ø|?•z?ÆNó?Àý8?¼¦ @ x@]?T2t>¿ÈÖ?ÌGÙ?ó>:?¯V^?¬Ûv?ˆøÿ?„D”?Ķ?Á#ˆ?Nñð?\H¨?µe¥?ÂX@2(@#¸?„M?Žc5?º³v?Þ¤Z@%c-@ìg@O.?Çý?–ç?>…?Š;3? ”í>ú®c?„M³?„L¢?„M?Ö ?¯XÃ?„0?QÈ?}´?‡¹?\Ÿ¨?X£?±­ï?Æb½? ‰X?›câ?á5?è°ý?®¬K?¬ª^@0“ï@9‘?¼˜I?½ÕÓ?ÀHà?Ä+!?Àr?Ëd?@NÅ@ Ù@?¾?¥ÄÄ?öØ?å ?O?Ÿî^?­kÅ?”X?Múå?ºÖ@&KÑ@/Ÿ;@3ž?Çér>>bà?3@?—YT?ž$?¡è#?>ßé>Ýtˆ?Íæì@i3?½èÞ?…’‰?ƒç–?ƒË@" o@=ùÌ@ +àR?û^w?Š0G?fSM>o´5>'Ý1?Ég?Ô^9?D"ð[>¦Õä@…ü?þ X?ƒ|Ï?Žÿ+?í‰È?Ö´Õ?B"`?Bhz?paU?;æ?£ ?™Pé?ÂÆ„?µ6¨?‘ÓZ?¤½¿?µá4?É­;@Vö?ã^?¤-&?Õ„¡@ —Ÿ?ÚÇ#?‚þ÷?cºý??dQ?¡µÎ?ÞÝý?™/Ó?6ñ$?§q>«t°?ï÷u@J¥)@IN£@DP?ÈòÒ? ËÇ?ru?‹H›?¯œ¶?Æ +6@ =ú@1?›6—?GÛ?‚d?¢Ý˜?Ña§?ÚÃ-?£q?!ý??U??5ò²?Ëœ×?æ;«>ø]¢>JZØ?BèM?T&[?þ'å@ ׺@*R5@2X²?¢1d?ˆ (?²ï|?¾l?†ê ?·p?!õñ?$ñu?&d‘?¥Þç?¦ ó?£¥“?¡*£?ž­P?œ2?!X?*k×?Ú©¡?àA-@DŠJ@IyA@â@™Î?çc? q–?Àv~?¾^@Ú;@ l?Öc±?ÛJ°?¡â¸?œÿä?Ø +õ?Ò½ ?L« ?a!h?âAÀ?ßÆŽ?¡‹?šcà>•Ì>§Ñ@wc@û@S—@%¬Û@ð$@õ@X˜}@_Bú?ÑýŒ?Å%t?Ǫ”?Ê5?Gb—?=ëL?ÆÞ?Ô`]?„Ö?cˆ)?æR×?ýÄï?k³7?6PÒ?ב)?ëhþ?Æ‹,?¿&?ñÑ?þ´@BÃ^@Xœ¤?ÈàË?} Q?¬"v?¹Æ@?:3>Ôòg?½·c?ýíµ?Ïl€?¾+”?¢Z?‰3(?áÞ‘@qS?ÁK*?}UV?åÉ[@…@axy@ªÐ?§?‡‚#?€‡Î?²²|?òa?í·?ð‡E?Ææ?[ÔS?}^•?ºWq?¿×?Ë¢??ÂÉ°?ÓG?Ík@ÿ;@þ@ë@rË?’?‚ñ¾@ š–@z@.8]@.rç?¯É?GÄ¢?NIÍ?R^?¬?éïš@ };@XDÑ@!Ö²?vÁ?šÂÈ?Û…õp?ƒ8?mŸ?_³4?“›Ï?ži.@÷“@™`?óN?éùë@Œº@%Æ-@#õø@#¶?ÚSŸ?sáÊ?¤Ì?âGÄ?Æ´?zÇ?bÔ?ÇŸ?˜,=Sy¡?Ûn|?âE]?A´^?3hJ?îlß@Uó?¯ºo?’§Œ?`ñœ?",@ëÕ@„¦‰@T©S?éîv?Ð!é?”@Ù?•d?سe?ݧv?ªËÍ?±÷Ý?†Áª?}R?ŽòÁ?ˆ•i?ÍÁ?ï½ß?» þ?€Ö²?Âk2@ç"?ð½­?o]?ª}ô@O¦N@:wã?.§7?6q?U(?ýó?£NÚ?Ç4²@Þ@%%ñ?í_—?eVï?¦ºä@ +€Ü?è<Î?tÅ?2áJ@O5@H‡?èµÜ?Ýs–?— 0?g‘:?w}à?‚lG?q±ª?k›š?U!f?-þ?L©O?†Öú?ŠÊŽ?ðû4@u?¶”¯?«^? }??Ÿ ?´Bj?°P?¯a%?­:{?­,??Áðm?è9\?ÜA>?ŸÀÊ?ŽŸ¢?žCå?³ú-?— ?Vk}?|VÇ?¬U?¦h?h:?h ‡?-_´?¹}?Çò@Y?Ô]?œ(ä?}œÔ?!GY?"ã(?qg|?l:$?8p¢?ký?¼˜N?Óñ?—i?c"U?¥5¾?æmV?æYô?æJ>?ç-@Ùö@H @ ¸À@Ø?©>’?eØË?‚äJ?Ž +u?ˆ)L?˜qÜ?ŽûÀ?…‚l?x>%ÀŒ= œ?„ª»?¼ …?ÊCÒ@1¿@Ü…@Ôä@ ³@R³@q?ê?äiB?ßÞª?ÓO°?ð«V@`$@â@îm@´j?™ã?žú?®Î;?Š¿Š?âND@2@6ðD@vy@Z@M@K¥@"¦ô@%[w?Ýàä?Þ‹@\½@{}ð@'5´?Ý´¾@ì?@z,@V}@S™Ï@U¶?Úê)?¿r[@ (…@P?Úíå?Þ¸×?Êy°?®ºø?èÅ1@WŒ@,:@7÷@,|i@1ø¬@5^?[Î ?@‘(?i!¸?\§ë?Œ´æ?‘ê“?È‹y?ïNÛ@àl@4õ@ e¥?³&o?¢ÎÔ?‚½?oÉô>Y¨>z¢É?²S(?º‡®@5± @6 +û@ 3…?õÍB?òï4?ôÇ:?¤€«?©ßü>‘¼›>+ I?hˆ2?Å1?º‘v?­¶¦?Ãhï?ÊH?>A>ÿÚÆ?nz"?‹2?ÅÀ>þÒß?j +º?€+?«õ,?¹ˆ”?ƒeÔ?Ä?j¤)?\HÞ?MÎß?_¶Œ?Å8¬?Ê ?²öÂ?j¦³=iŒ>„ï.>°Fx>ê¹ý?ò~>ÎÒÏ>í†a?ʽ†?¿ï?¡›S?P—”?®n?i 2?|3^?Hu?ˆ?rÏ>ØDR?>Û?Þ?Š"·?q-=Šì;×<ü@eÛ@-H­?£X >ç¿?QÏ?-ÿ<­‚?H?Ü?{]d?{?â?$B>ýŒÿ?3²?hÕ?TÜ=á¤??$Ïr?Q©"?M<Æ?”ù½? K•?*Ç>î¡?³Ò?4ä¨?:.??78?Šû>¢l>«ö«>µë">á9D?IÜ·?Q.ä?Åm? L{>ñ'? L=©U=Jì–?ï¤?–wb>æÈŽ>€À?$! +?L¤+>Ùž>NéU=×õÞ>߆}?eŒ¿?\ó?R¨T?>0i?5¾1?m¬(?¯ D?¦»À?„&~?hE«>ú5?MMJ@Jw@Ü? e-? Õ1>Ì*ˆ>ÙjŠ?¬>?¨øÕ?Qr?Lù?^>d?Os?w4?|’Ý?¥Ü\?±¨A?9$ ?+½l=È—¯>¨F†>Ñê?Gšc?dö@ +¡!@´Æ?qIV?€;?P×”?^˜>èK„>ʶ>\5> +£T?Vö?W|>ø†í>”!~=¯F>2¦)>3ˆ?AÏ?Yr?©[@?Çö·?-c‡=Þ"t>éšh?$ð'?YJ‚?Ì&?£úŽ?¾ôy?mX ?·‘?M{0?mŽU?óù|@$m;?Ûß-?’•?®„½?»SŽ?—9ú?€8?¨ªµ?À}?­ê¹?®4Ó?­Å­?©Ž8?Ï6?÷<¬?£_]?;X?NãF?€p?¢X=.ö>˜[§?…î?HÖ?„Þ¡@ Š@F…@ +&°?¦Kn?‰U?]·O?,Û9?§^?h«Ü?¦V?š?›»Ý?„ØÊ?GïD?6†Â?œ?.}L?Pý?K«>xZ†?'?‹ûÏ?AÁ?t[Ó?»Ú?ÿ‡Œ?â}?ÃÝÞ?Ã?Áxë?¡’7?+?¬ê-?ÓP?¾c2?­¤?¶¾?ÁªC?¢×m?‰d?Êi?*Ö?^ƒ“?7ŒŠ?[ÛÃ?:þ?¹kä?ð?ÈÓ?¥–°?Žü?nöq?œJ?¼…?x¶7?âù?F—?{Ó'?w?sFc?20d?e?:gú?b1Â?®€ÿ?Ù©ˆ?½ +g?©`”?šé©?˜ß9?'­s>y¥ù?s§,?¬—#>ù9O?£Î`@Ж?†‰n?Ú.?Þ¶?å>U\á=3Œ—?.ïm?€¢N?‚Q?‚.?(£? ý?§ª?1«ï?²·z?ÓYÝ?ÍÆâ?ÓËÅ?¹³f?³ˆ?·ÊA?¼²@êæ@"ã?œ{Ò?^/4?ž»y?¬H?ÓJÕ?ÖùÍ?ïÙø?õÚd?>CÞ?Eë?Ža€?àö@WTë@b!J> [Ï=“ª÷?æ?+Š?‹Yæ?Å4?÷“ö?ñ‡v>©:>•-?Û?Ô‹Š?ÄQs?Ç t?ÐOl?¶Ü?AúR?IYŠ?p9»?‰û?×äú?Ðô·?±»Ô?Á“P?èá_?£\Ò>Ü?mGè?{0I?ƒ@š? ?q?ÏŸo?̯õ?¾?b]q>…ä?ƒ?ØäB?±Þ§?–ö ?¾‰ß?Üð ?`x>—@B?Ÿ'?FÂü?äГ@Í›?~uŸ?¢?¢Ž?¦?°Œº?ÔõT>ʦÌ=ɇO?x=?Œ#Æ>tÐQ=È€J?§¨?ÛÚ?…@\?‹9@Ù5@à~?ÅÒ“?ÈŸm?ÙÀÈ?ß­æ@‚—@zY?ôÿ?3ê!?©ñ{?±xD?Ç€Þ?¹|?¡ÿ?­)?ÆÞ?«áv?„+?o +¾?GˆX?Ãn´@€²?ê z?¬üP@¿î@=â‡@u?Äæ¥?›#?‰ O>ßWÕ>Z²=õ%½>að?†~Ø?Š²?˜5m?™‡v?„}?‡;?“~k?ˆnú?S Ï?wÂ?œ+?±L›?Ïc?‘»‹?{%?®åœ@Û½?ôƒÜ?£Y™?½ñš?ÙÓ?érþ?øAõ?ojµ>…yŽ>Vm> ùI?Œ"Ì?Ãiê>Ñ$e=+Š?¨"T?Úòª?jñ¶?Hüž?¬Ûð?µ„î>ó΀>µ„£?¯Ò?Œ{Ž?µ”í?®G:?M"?E•w?­ç ?²ñþ?œ«Ž?¡‹æ?á?뙦?å~-?ÅV½?¹?bÅü?øJÇ?r„}?³j?xTï?räÒ?É1Ï?Ï`Ž?ÑÀ ?Ô“?¯€?«z@?<ü?%Dó?žÞÐ?¡»ï?¤!õ?¦f¤>Çj >´o/?Zb ?aÙ³?Щ.?Î4©?ãÌ>?ê‚?Áqá?ÀKù?‚%y?ˆ9z@< õ@7Úï?Á'±?Á?Á +ê?¿¿F?yëi?ƒFê<,@€?ßt?á¼P?ú}?õEà?°@,?ªÏU?L™Í?@Ãõ?6|Q?,0Æ?êÊ/?ô~é@nh@¬9>4´£=æ«?j"?'ÒÀ? ²s?¡dT?Q>}?QD8?· q?¿…¤@`Ã@!§Ö?çu?Òž:?íÛš?ûƒÌ?ÚÌþ?Ð)Ô?õ`“?þªN@]•@©g?rjõ>þšð?ž,š?¾¨}@*I@@KÂ@9u?ýç³@ž-?þº„? ?gÒ.?ð§@g ?ï”?²ð¹@êð@(†·@1…-@?1?ì%e?zŽ?n¹h?µ™™?»º?»ŒP@x@Al@Q_?°¿?£ë(?½”?ºt@ -¬?úÞ;?¼ÌÏ?·§?¡„?žg×?{e×?Ž0I@ dù@  Ø?²}6?´¬ ?‰‰ê?=Ôšø>B ª?ê?ú~w?¤ü?ž\8@ÆÜ@%$o?î¢?×ât?Ü Ï?ê@hîI@”€æ@JAÔ@ Íú?úÞ8?å"‡?Ï5À?¶Ö ?º»?¼Ô)?ÿÚ°@2^S@ s–?x”µ?­çË@œ!@ýÓ@#§@Ô?ÞoX?æji?ÐÜ?Í¡Œ?¾Ë?±ô8?¸Yx?¹‰ó@‹¦@~f?ÚDC?É„‘f;>Ü*÷?…?“*ç?×5?°c?v ?©®Á@# ?ôàN?~ ÿ?Ri? ?9[µ@Q4™@H×?±Ÿx?«–ú?Ü$?šØ°@ O2@>@$@ a¤@ +s²@ +´è?ÇN’?sÙù?s¾?s¢h? ƒ¼?ðg?ýq×@ é‰@¤ó?Ã5Ö?º´'@Æû@wM?W„†?7Ë•?Æ£?åùÌ?ZÔa>ñôö?†ÀÏ?µNH?ìU@ü?¹Ô•=üd¨?)Ã@?åêó?Åœ>ÛÁ?Ç?½{?¶Â?¤O×?Š?Øî¢?äÉu?éÎw?ï´E@#…ò@MÍõ@* e?ôÝÜ?Âît?¡o?W• +@ áš@[!>îŠ>îd¸>Ãi2>¡9?M®?Zÿa?òŒ?9¨É?ª?–ôÊ?ž’?šmq?,sA?12-?PÅÄ?Gª}?Çr?ö«?üþèý>åL>è¼/?Ùø?Ø()?Ïl!>ÀÉG>§½a?h¼Y?‘‚´?ÚýB@>ê?Ýt?˜E?ªÏõ?ãqW?ãCå>ñï¬>æåQ?gÇ?‡B?Z¿S?-.?x°W?¾¶f?Ç¿j?ÐΙ?ÛL@ eÉ@Çû@${ô@&»?õÓ|?¼Y’?¯ie?®ÿ%?®€?ÈÑ?²Jd?å?劘?„(?Q܈?˜,?ºŠÃ?“óG?5%¸?„¼t@ §?ò]œ?|=›?K2[?VÀ5?g{Ü?þ?µüú?¯ÍU?®†?ävï@*Ä;@!ÞÖ?·Õl?£@på@Œ~*@+œ?í¾@!@>¬@<ð@,‡¯@+à@"Ýà@ª¿?Šy?lÊú?¦ž?ÓÞë?á”z?ÕÀš@M›@Z]@H§@$<ý@(Åo@X/@cN°@^@?ù@1•@08o?Ò}ß?iA©?›Tï?Øíä?³Sn>}g’>”„`@:ó@OÁ@#oª@N°?Á?W?±c?Â^?Ó³Â@¼¡@Lþ@ ´™@¯®@@#ˆã?ìÒ¦>ï° ?!Wã?œú×?„*°>þOÄ?!–@5·¼@6¬@Gψ@Ešþ@Çè?ôÀ¿>ë1J=¤a?óh?@ûâ?ÝÈù?ËØ?ц²?èŒ%?ÎÄ?Ô« ?w)Ä?4H? +;Ð?²5?IA«?Eõª?F¤®?VzD?eÇö?u:ð=˜S=>=•?çt)?Ê +À>î%®?zW?ú´>º™>ÔñE?gò"?]må?[®ô?L?ó†=ŸX³<êÅB?‰›ê?€#Ü?% ™>ÒW?":?gDÍ?Z?3z?ì?8ë¹?xÚ1?& G? ‹?£Üe?ŽÒª?i¬?Õ?Õó=ƒ¢@ µÉ?ßGÃ>¨k¼?(TQ=:§>­»E?„ßU?‘N?nÃÓ?_(?!W>èà)>ér>Ùs“?™Œ?YO‰?V·d?l~@?lö&>§! >ªf>æ5À>îÀú>šdK>y‹?™”?XLö?è>/u>·=çôÝ=Á·Í=›h>‹Ñ?ä˜[?ãa;e’ì°¦Ž>‹!™=‘ö?0¬è?vŸº?\O>Ž^Ç=Ûɹ?ÙÞ?…ê +?ŠÚ^?È¥?_Cš>ƪ]?# ?aÚÙ?ƒ¶Ê?­X›?”ïˆ?”â>Èxk=»Ã]>ÊÞF?­å•?¡×ý?c`Û?Yyì?@¦?NÇw?{Ü\?ywn?gùïé?Ôl?ljÛ?bK>Âjø>¢ã>MH>xý¨<–N¾>4™›>õ‹@¥ë@¿?T7P>þ7?fcÞ?~Fë?  >Ì0?y!?‹}?/£>þÂ¥>þÕ«>þäj?;ð˜?B¾Z>».>^ªÔ?q©?PáM?7zó?$ë+?6®?7Â9?•ù?¶ZW?—¨1?„¯`?.ºq?ñ?Qñ?vëH?3 »?>À?}­?$1&?‘z†?­í~?©þ…?­Ì’?Û¨?îdR@ØÏ@3?®ë„?7¡D?`5{?€P?6l«?Yà?\Ëi?ŽŠ?}¾?m†z?9Ñ? +ËW?©WÜ?þr¥?·Ùß?€Ë?e®q?gl?†=ì?—?‡zÄ?€œÚ? +ÚÖ>/y[?;¢?›…?7Ö¾>†Ú>Ã÷?¹2?3ïj?n0Ì?•ÌS?¬é??ƒ.c?B2r?8?µÏ0?z)…?ÿN?€AÉ?¹To?w=? 8 >¤|ü>ç>Ëð?¬À?7;Ž?\Nh?V³?Of‚?*~?³r>ãq÷>‘V?+rË?&œ?A/^?T?8ÃÙ?Sð?„H ?œ ý?U¹&?J¶?*Ím?>÷ú?i•N?‡P_?4?wð?/Y?lî?=”ß?B;>¾0=»?î>ÒÆ•?!Œ6?…?"q ?L²?dk?Yr?IË?EA—?Aœ?“&Å?»\;?K€¸>¸ý ?±k?Ë\?uû¿? )? Ũ?ã ?çÉ?ì¹?ñã?ö?`]ô?‚w?|Uà?uÄj?qÕ?mZD?C¤!?@ÄÌ?Æ1?܃‚?a&·?2‰V?6Ìs?;µ@‡@3 ~?øe¾?èhW?Ô¤€?ÊŠ?éÀ¿?ñE?È ?ó›?t‚‘?n>y?ÚÛ¦?èpf@Á@@Žš?¢K?—Ø?}‡—?‚ ?õ+?â ¹>”n>ý8y?ô+?ácÜ?¬eÖ?¹¿Ö?콯?ú/@#¥´@ ¾œ?Ç?8Û£?¨©:? ×”?ƒ +É?n?8q¯?kVÛ?¡’‹?aóÍ>0f>¾­=Ú?>ãj6?€¡?ƒQ?…iÈ?üO>%?B„?¥e|?MÂ>ì'º?‚‹¬?².Ù@™ @7³S?”@>[,$?C$l?ƒ‰¿?ËØ4?ôî€?œä?j§?¼5?¤©?b¼ì?kÄv?(b?µ?™p?ªÊB?Ðì·?Ï !?†"1?ƒ…w?ƒÐú?‰åE@ÙÏ?ý?Žuž?’)Ä?¡~Ë?•4[?y?YÆx?Â0Ï?ŸÅÃ?$Ê£?BÜÎ?}ˆõ?œ6O?Æ ‘?Л…?ßðQ?®­?\Ù?†G¸?£J?¯5ù?¸÷Ñ?>Ýu>h8?!Ç?~Ò?®ãÍ?ÆÐî?Zh? Ë+?•Ø?¬¢³?RÞ?7b?–Jx?¦Jz?PVcôž>L\É@?µ@$°˜?¤HM?£.?@$:?6>×?Bï>âR>¬¸`?æ>×?À°„>Îï?ÉA?wW?ƒ³›?Œð’?[ÏÌ?0„?Fß?‰¤?¿±?öbø?³œÌ?mË?šX?´¾˜?tlu?02E?‘S&?¬Ñ?‚™?t÷?ÍùF?é:ú?õãr?ïël?Ä{?Ä¡5?žuw?–|J?âyq?ì~9@-Œë@/®?!õa?D’@@b@p^x=°3È?®ö ?Å‚?ýgŠ?ùrR?ffµ?VtØ?¹?˜¯ÿ?¢–F?¢ÃF?|l ?qXê?où.?tEŽ?)ÞÏ?oˆê@$7X@R~?n=Ð?{¿Ê?Šúô?ª$Ä@¨v?ñ‹?Á 5?Õþ~@)r?ÜwS?™å?Á¹?öžœ?Ëd™?—V?Ê"Ê?ý‚À?ãÚÚ?Ën?¶K6? gá?é@%?Ë®ª?‚ø?¹h°?áÕ ?Ú È?Ñ*?sš&?©f?£™Æ?˘?˜xn?‚ˆJ?&ÜÂ?s?¢?ÚG?ÃŽ?Àc?ÌÉq?Ȩd@+K@U?¸Y,?ŸŽZ?¤fO?õè?ô×W@ ž?ï4Ÿ?îˆm?((ö?ï>?ñŒž@ß@ÿ@&$>Ik!<”;@6] @<¨[?Ä¿?º´f?ÂU?ÂX@?‘;?’ì—?•R;?—¹¤? ye?•áw?Nð?º&?Ÿ€­?œ9?7°Ê>ÍI·?ò¾Ÿ?òð†?‰öu?t{¨?¶\2?½=L@?û†Ú?ϱ?Ø3„?÷º?ó¢¾?Á?½¦?Ÿú?ºÔ?lŠA?\í ?xž?ƒ4²@å°@éÉ?艖?êͬ?‡bO?ŽæÑ?ÛÚZ?ÖûA?Š?€?Ë/? >ù3>î,?«¥R?¬Ë?;Ž?;1>?˜8T?—‡ã?ar÷?dÅÍ@=¨ä@N¬J@ +½i@k0?©£?–,o?þLe@ +?ÝÊ.?Úƒ?ÌêU?ÅŠ?@NÇ?Öx?Í«â?ùÝc@C±@^L:@ Q­?ÍŒ·@ ÷À@–§?˺Ð?Š7\@¨¤@.[J@ H?âæ.@åæ@.?üì¡?Íc?ª–ñ?ˆ,@?aSÍ?Ìl?¯â"@3É@ö=@mÛ?Þÿ?Šü=?Ä£@ã?÷ôz?‘ø?§c?¼Ì×?Ùä¡@‰—@ +æ?¨Ø?ªsÈ?Üî?ϸ’?{ç­?'«¿?<Ço?¥±_?«LØ?é¤!?þ´^@´m?ÿéÞ?â`y?ËœM?ïÝa@ËÕ?æém?ËNq?º]P?¥Få?•Ö—?ˆØˆ?· Ï?öáQ@Rå@{?ðV?Û¶?‘œ'@%y¯@Ù/?ïXs?í=N?¶vä?³?àä¤?ä’¼@B¬@@p±?í3e?Öt¡@ã“@ï@v'.@‚Ãt?õu?“õ?¬ò?­È7?äg@g¸?²‰Z?x•Y?¢ÈL?ÂëM?ÍyZ?ì @¡p@A0½@>xÀ@<@½$?…̆?–I7?ƒ– ?†¢?–ó·?‘ÍÌ@+â@%‹¦?Ê®Ñ?–ðñ?â³ ?þ‚?Ìw)?§ƒ›?‰ª…?bâ‰?9‡?„-™?{ê?‰?Ê?Šg³?B;;?fñ¯@ lº@×ë?Äü?·[½?™R ?‘l?Bw_?×Ü?'„?µJ?µ22?µs?„eW>àn„?8|?À$?±7ô?&h}?!AÂ?«íº?³ +?ø¾@€Q@ ʼn@ }@ +[^@jâ?±gˆ?o¥?} Þ?ƒƒV?cïH>îüö>ûÌŸ?!2n?/L”?™0/?½¿?FTå?FŸ%?äËL@’÷@¿3@Ow?ÐÚ?~Ÿ×?—Gõ?±ßr?Ÿæº??ôÝ?\Ræ?Òzÿ?Ît©?Œ<Û?u ?jˆ†?l¶?¤@v?»[Ÿ?èD÷@Á>?ó3C?°~à?¶zw?ØÌÿ?Ô@©#@O›?¬,°?›Ò­?ö¹£@h¯@8u +@d¬^@:/*?¯Xµ?Òý@D2Ù@7•È?û°K?ñ†Ï?º•?®Áv?¢øø?•Ã?Y¶ƒ?òû>ºE<"(3=¶«…?(-Å?B?w?‘C!?¿[>ò»÷?¸§m@i«?ÔÃÐ>çJß? +¸ ?l2.?qk{>ê=Ä>æÞ? ’–?L‹?r{ä?kÄ?^0Ä?Ù?=2æ?z?qj£?n¤¸?xIÍ@ÚÞ@Õï?›øC?,|Y?ŸZI?Üû3?®ÇÅ?ëû>é~?üxŸ?î0'?ã(ž?Ùæ0?º …?¬ ?ÒEF?óøÕ?ú©Š@&¼\@.0 @2gñ@/ñ ?aV<>ê¿/?…zí?¬}?í ¶@oŠ@ë²@;‹ò@9@Ä?öÃ@ +†?ø7S?èM%?èm-?å¾^?ô T@•@¬@àð@ +¡ @ŽÉ@)ÐÝ?Á$†?®÷#?„/s?uÌi?ˆE?˜½@#»@Y5À@T;@"sÍ@ÊG?õ_½?êý$?뻽?ñ2é@ Ë@u®?Àæ#?3a=?~Sw?¯D«?ÚÌB@-•´@ È3?ˆBd?™êÉ?~«›?§Þ@S{@z?Å*?˜*Ù?§‹˜?³õÅ? cÖ?Žs¾?ïÎ@?*}@?¶>’#0?'é¶@ïæ@‡Z@‡"@¤I?|¾Ä?žÑO@Qcô@UD)?ÈØÙ?Ç?».?¸bë?ƒ?™`’@_Ü@MŽ?ŸR?ybÓ?4cÛ?²2@/<@W„‰?³Òî?^h;?vmG?~Ù>?àÉ?-Y>×M%>îÃï?u´8?_:m?ƒ•?(CÂ=Ìh?ü5>Ãtx<áöÄ?X¹U?öŒ·?™c?<`q?¶ï?õ=˜eè=]=?‡Vþ?uæt? +¼]>ë"ƒ>—‰?‘l/?Ó¼l>j<ß<ò¸T>Çê>®ÅŸ?ƒe?ô?ŽTZ?Œä=V†<¹²™=Ãë¬<© Ô@D¤B@1Œ¢@ F1>/¼?2?#§å?(rá=4¬ˆ>U…Â>0Y> +jß>Ãų>èƒE>=™¦;Y]È<¡à=¸L=˜T>Ä>”ªØ?l”Ê?lÈX>¤-S>–\9?’ëà?žrþ>£úT?:ˆS?œÖÊ?HÖÅ>¦,>°\>¹ñ^>÷¸M?0Áõ?¹ÿ?—5>ü×.>ôа>í=e?}5¥?œ>èëÉ>ÅžÄ>¼4D>²Ê >›À8>­cc?)6`?B4?Øõ>ô5˜>«ÄT>õï>ü›À?&[ ?`°l?š+$?nŠŒ>ùfÌ?N‰? +s?(`q?v"G?xÈÇ?p^h?S¦€?´ª?^og?ãx?Ô—G?šç>?3œ?)-2?"Ï;>S<¼>nÕ>eã>zp5%=¬ÿ…?¨ð†?¸0?ý#>ýÓ>ýðŠ>þŠ?Úï£?îhj?2¸<>þ_.?€¯ƒ?ƒß>­–>/S>ß½»>þÐÙ?Y1Ù?|d—?N,o?7[Z? °ò>ÿ:É?‹™?4ß?±ñ¥?͵Q?¥íó?’Ò‹?¬yg?ºÖ[?Jž–>ÿÈ‚>8‚¨=‹°8?{!i?®N?¡ýƒ?—‹Õ?_Õ‘?HV÷?pwr?€¯?z|ß?‡Ï1?–¾­?Ÿ2L?uþ£?HµE?MB ?QÉê? ¼N?Po?…GÉ?²"í?Z ¥?a¸?W¯.?…Öq?= +?ƒ?O×ô?€ye?ŸP?°>T?²?´ +?±âl?¯®Ô?D5ù>ª°š>²$Ò>Ð?$g>?DM¶?.y?¯ý>«é‚>Gó>å¢?/&K>ñ6 >„v?+ªî?€Ð9?–b®?žv¤?'V<Á}Ù?nv?~`˜>Öº=Ü|=§oh?KW,?£Ôû?Ÿz¿?›#¢?£\a?£â߸L>ì´?/Ž?5ë?9‘?—~?BÒ?›‡˜?×׿?¾yÎ?®Û\?`:”?€©>R1ƒ=)ú°>­å©?n5?€wq? iÕ?CI?ƒV>9]_?{.%?º¹?rÝ´?:} ?þÜ?áÞ>4«[?è°?TQ?Wû,?O(?A©?Gb:?ç?Ûf>êŸ +>é”í=þX?Lxè?‚Ô?Úe?îHê?µí7?¤ÒÁ?ywr?v¦Z>žá>=Mµ>íD ?;@2@"lù?·œÖ?¦¶@1@ +fP?µ§u?¯E ?Ô ?ÓÈ;?^µj?IÓè>%•9=ý>o?y€Ì?wà,<­J‘=ß_c?þ‚?öÁu?ËŸ¦?ÄÇM?V.Â?j—P?ä8¿?ÒÔ©?+Uœ?M…×?³Ît?µ~ƒ?´9?š`ë>‚6Ì>ÀÛ?M>q?nîå?›.#?… +ª?§^?‚º?ös‡?Í\?ƒ$=?ƒ)1?ƒ.«?VrÜ?Î?•?ÃKÂ?Ûhû?ïgM?™žó?+[? +’u>Íã:?Ý?M G@„)@:ñ×?›¼…>›•>Íâw>ø†?3?@M?­9?Åa:?7wj? ³?µ+T?Ñ¡…? è$>П_=.@@!@Zy?‚Á?„ÖÝ?Ä¥?¹¡Y?&ŸV?VÀ÷?ó©D?ÖÌ6? WŽ?xb@{Z?î_²?…ÿ®?JëH>¿´ý?ˆ¸Ü?§žþ?Ó3E?ŸQ~?0rN?,8Ä?(g?{¨?Ÿ’¾?Ž2 ?„‹?6 à?ë?¾wˆ@ÿÊ?¨´ü?€iy?‡o?Œ(n?"[?/‘?t V?„1s?Ùñ?Þö.?°°?¤>?ùå ?üD5?BñO?Q?¢ºÉ?•)?<ó>ìl]>/Â>žÁz?e±?%Ø?à4w?ºt ?(æ‹?Š¿x?ùÜ ?™õè;æ^¢<ÑÐ=‡€ð?ìú?•K§?ÉCE?îße?·ÃÌ?•Y2@ S&@'3ì?´¦¨?k œ?«ìP?´†?ô:Å@òý@!`ë@*Õ?”!Ÿ?`ÊÈ?Ñ'’?Ù*?‡É?„,†?„(Õ?†5á?¶:¨?µŠ?„# ?„7?†¡{?‹«)?”ÚS?±¹Ý?þýJ?©ZÖ?¥œ?‡k?Ÿ¿2?µÍð?÷+Œ@&.?û­É?´Ã*?¹Ìt?»’}?’¾?Wû??ŠÜ?¤‘à?™¦©? ?›m?›%È>üÃÝ>!M­?ŸC?Ć?9C,?Ç•?žRë?¦ ?‘û«?’ŽR#>ÇŒ¤?Ň¿?ãžH@$0‚@ +²?68æ?WW?¬F'?¶†?Á'?š Ÿ?Å??¹¹?&‹\?•V:?ñIÑ?¶´?],?Jøß?*Ò?µ)@“@0—ô@Le¸?ýsÄ?…l?¯„L?Ίþ?”Á*?W¬ç?¬¯ +?Ëׯ?ãü|?÷¡G?±«?‹—ù?þ±‡@¢®?ä\Ù?–+?–?yöT?Ýdg?ú¡â?ÏP?Ãz…?Ñ>â?Öáì?ýr@òb?22[>ç>?­Ö?ÅQ\?ã[^?éfª?ò®›?îÃ5?Em³?$/@8ë@3ˆ?Úñ&?ÑÍì?²…?¼µ?ø,?•¯?….Ý?ˆíÂ?÷|?öõÖ?´@¢?°þÍ?(Sœ?.m>?±æf?¸ÍÅ@ÃF@éú?Áæ¨?ÀÐ?3E?~ÂN>ùw‚>ï©?Ášú?Ì"@l6B@hÇù?«:?†›?€*?‡8N?Á7?º={>–¨>ÅQ ?:\ë?T'l@N @ -æ?è˜x?ä‚­?¨c—?£ÆÑ@8J@(ñ@Là@ +È+>›B‹>‰—ð@ +Õ@Xö?¥Ï‰?šSO@¿ö@èŽ?Àe³?·²E@2'Î@1Ýë?€î?b™¶@Ñ)@ ôt?@/?™ø@vU@ ûÕ?ÊjÁ?¿H;?ÕpÌ?Ö0x?éÁ´?÷¾[?r+?0¦Ê?íK-@3¶?ŸÀ¿?€Ã"?$´Ñ?c?¶÷|?äN·?ïåœ?ï?¦Åû?šž?D¶?oÙ?Íà&@ Óƒ?÷|?Ø”L?£÷ì?}?éô_@”Ü?üüA?Ç”$?úÒ@³÷?Ë®]? ¡?Ä[Ú@67†?ý…‘?kT?),ö?[Ѧ?ˆ—E?›êV?“…“?›…l?ܵ@cú]@TÕ¶?å¥ä?î1S@ =@…á?fÅÇ?zõ@¤Å@ ´?öGý?ìߌ@ ûg@¡n@O¬Ü@Qw?Ýåõ?»”•?ãÛ‚?óÏÓ@AøÜ@W©…?ÒÓ_?p;?ØT;@Ý@çŒ@&y”@#Ô@°“?á­K?€pY?ˆØÞ?”­Â?¯mÛ?ÍÙî?Øœ @bü?ýi??º#À?¹èó?½Q?Æë?çÖä?ã'Œ@?Ÿ®@DC>@:Kª@BÀ@¯®?öBÀ?¢Æ“?¡´'>ô¥>=m?]bµ?ŸÈ‘@y±@2ª#?Öà>óeö?‹}Ö@Õë@å@/¨@QO?­g?®fä?«|4?µ ˜?µŽè?±0¨>$>DÇU?#á?Kà?µê™?Ç>Š?½NÓ?·1@Ø@=Yg@Ep?ôš?°™p?Œ‘?çà@†5o@erö?èT®?ÏœO?ZE?X×8?Ÿå*?¦É*?­²5?´¢ ?¶E7?µ˜å?¦#™?š[?‘µÿ?˜…¸?¨Šë?²¦,?³Z¹?«üª?ª]?´½o?±·¦?¡¯?ú%?š@?–‡Þ?’Ñ-?Á?‹Ym?‡”S@[¿@'j?ÙÛ^?qS&?‹R?­¼?p!h=ÜE>ñ?D"Ô?G™¯?Ï®…?Ó[„?‡ûÞ?k(x?ºëk?ÉÃ$?ÕÒ?å¤@©2@gÎ?ßlý?šs?È ?´i9?ýr?‚»ø?áÀä@ÿ4?ÔK]?{ý÷?k d? ºa?Bà?›3ó?£6Ü@'Á·@4úW?É!Ï?œ6?ô¼†@bñ@KŽ@CL?ëÂ?s4Ÿ?m’Õ?PÇÂ?‰Ïˆ?´×õ?Ám?^§?Lž?¼ü?èÁÍ?¼WH?‚¡Ý?‰Ë¿?«VÓ?”üˆ>è#Œ>è?‘‰? ‘Ž?³·»?¡C2?Ÿy+?­•‚?|lÅ>ÂCt?* ?æÑz?àPv>ë€z>æÚl?ÜR†?ïÕÔ?ù¨?ÿ?»'{?6âo?6M›?£x?¬óÔ@*î{@$ÓM?ü ?óÄ?£±B?R[Ò?¥âÜ@¹¨@ á›@ .´@1w@7Ûœ@C°*?¢²ò?ûé?HéÒ?3®¦?ÏëÖ@,Y@}]?¹å??ÊÛL@0Î0@:œf@,¿@' t@@Cì@G¨J@9Ý1@6íÈ@1ö0@Y@Ž¹?‰±Í?7Ï»@  â@,êþ?ÕŽ?*¤ ?¢O?åÕT?Ô®^?¬?±cm?ÇŽ£?­:U?á7ž?æs>?P8 ?™A?'=?À&1?ê÷l@«¡@*üŸ@J™&@Hë€@(F@-+?õr?èe)@!‡n@+íÍ?ÓÄ?[¥–?ƒBô?¯?P?ÏÚ³@Êx@d|?`=?4|<-ˆì@J @5H@®™@ õQ@,_@9@ ª7@Yq@«á@DWÒ@ +Â?nc>ýã ?p€¸?bÉ}?»?:LÂ?U;ú?HǸ@0ƒ&@:gÆ?R­”? ò?©~?¸_Õ?´v?­Õö@ @@?ê)½?Ã!–?‰ß3?z¨@÷å@ Vj?? ¹ï?nt?~ب?)ˆ?.>H‚n=OºÄ?v ?„Õ¤?íM{?´¬î=‹¾…>ÂwÓ>êæL?äè?. ?Oœ{?6@Û?çô?l¾?ôT>,ÝÆ=S”% Ú?tÈ?@/Ò? ìQ?}áÏ?­×ð>ÆzÐ=Û8?ÞÔ>•Ö?ixR?°e¢>„¢>T¬½?ô”>†Æ,?ðÿ?ÿ]Ê@BÄ>.‘[?ëÂ>Ëf <»¾ð;‹P?LD‚?=û*?Gèì>óš9>ÛÖ?@‰`?fZ?'wÉ>Ô\þ?+?B"? 7©>sÁa>“k>íŸg>îŒ?ž„?®;x>ÿžî>][@>×É-?­ >ëli>‘úu>µ-?9ú?á;{?Ë#k?knõ?‰‰@?òo>?áÿö?¤È? ”=¶~˜=ÅõÕ=ì—á> Ÿ¼?Í?†‰>ÙgV>Öðó?P-D?w¨õ?";y>ËÜ?5}ú?x‘b?Kl?ŠN? "o>ùj±?1 7?yÌs?H«k>òüæ>«(0=/~è>¦[5?kÚÄ?uàb?–Ñ?¢?AÔ–?n Ã?ºxý?ž™F>‘ô—>”q[>üU*>ñ*v>¿>§@H?¯ó>éÀ…>)”>a?K?Á?Yuè?e<~? +ùæ?À¶?tlÂ?w†j?óg;?þ*?$Ú->þTœ?¢û’?­§'>ôO«>§)Ú>Où‰>T"À?/A²?@šj?rŒ6?â?B#?.[õ> ÅÔ?Ôñ;@ÐÀ?øèF?õéù?—®?u‡Ú?Gq>ýfZ?X>?nú}>¶°>R·x?“½Â?À3?I{Ê?1?S?,õ~?[eo?^¢@?HѸ?A_Ú?'~?6j?#rY?/r.?d•j?rîæ?`ÉÖ?ci‘?D)“?(ð?”µÝ?ºëk?»¢?¾4Ÿ?¿&?½'R@)ú˜@Pã:?Ë(?2D#?œMÜ?ÀÔæ?_òB?•y>@i >åÁg?=º?g×?¬×?"Ùr?3Nö>¿-A>'LÍ?C©?‘Iº?†Wü?€Ë=@Mü@1¾?´+6?Ùà?¶#î?ÿÿ@ …x@ÐÉ@ `£@ñ)?œ#0?:Ð(?œw;?Á…˜?˜ãð?† o?œ+ +?®£å?®Ù?¢›j?pb +?I‘Ž?›?*¡?±/?(¨o?I¤©?c«Ö?§•>…*_>)®â=Ù[X?(v…?}µª>´O >©ë2?l‘?èÂ?,Æ}?a¹?~å?j¤¼?ˆ‡?Gu?=Ÿì?O¦ö?K=h?ϱ?8?Pv?bTœ?€õ?¸ó?¯ÔQ?Öoñ?<5>ºO>Ã(]>Öœï>‡yl>(”­?—Q?ÀË>©™>ÞÖj?h6?. ¹?@²^?ߤ?õ‚³@8?ùi>€„É?9>Å?Mžá?Ôƒ?ãñ?Ĥ?¼Ñ?õ‹„?õ›È?6?—8“@ +¢@ +Œ£?Êìé?Ò|]?pq0?u´?W…—?>~?€ºÞ?x‹3?Üe?yY?ž?A‘?¸È5?¸°{?Ä$M?µ§-?^"X?t>j?¬PZ?›d?Mq»?7Tš?í?i,?<¸„?xå?Ć?Ó?ñ¢@?ÛÅW?´^‚?²×?§aÿ?¡ê?šÑŠ?­– ?ÈM?ÄP|?Ä®?¦†K?ÒÄ?…V?sºù?õçý@"Ú¦?Þàî?¡V?³¼@?Å»Í?¦P?›>?ô;>Œïá?Ð.Ï?ÿ´v?¡o\?°D?r-¥?^0Ó?UÍ­?Mh³>›Ú|>cÄ=Ì¢= ˆH?ÁÙF?à (?Áˆ?ŸÒ@Ð?ë=B=(">µt?<¬f?P)ù?l] ?›‹ @ÍÒ?ñ¿}?ì.?'Ÿo?m»¡?ÂÎ?w?Ÿ•)?Kæ?„m?²¸W?ß?—L ?>3?¶|?ùÛ +?¥,ý?_å«?:çD?wá>8”Ï5?C ?„%æ?)¼K?~?ÏtÛ?åSa>ÓŒÿ>~ºy?"?¬‰‹?†Œ=?‹Z„?n~ß?~ù?¬“?¯Q@8O?ä’y?; >õœŒ>®`s?Þ`?qÏ‚?\5?<8?t.ÿ?¼§î?šm?/Çn?û?ÒÜ?=A€?yÊA?~ ;?„>Œ?"°ù>Ä`?Än¹@ z=@Ÿ9@#ƒæ?Î:?” ™?þaI@ñç?ñN?éé?ÑÜÏ?ÐZ?ƒ9G?~Z?Ã+Î?Î6ƒ?jû?l—?é?•%7?&QA?(}»?Ö²?ŒBÝ?Åi?ª›?.>úê>–E½?Ãë?œÕ/?¡(ó?³ï’?»?Ä’4?Ì6Ü?àÓ3?í'Ã@nG?’ë‹>rßY?Ç•?7Ö?µŸr?ðóÇ?¥,§?jÄç?©Ï•?Å»u@ +›Ë@nq@5HÁ@?Ï@(äÕ@#|ª>àÒS=006?­³?Å?ë_Ñ?ê?Qd·?;Òú?ØÊ©?Û*³?ÁkÃ?È=u?ƒ€é?ƒ±b?€D­?o•²?8ùt?,j?bÓ?_¦›@jœ@ ®?ßoU?¶›? ‹ ?k×?ƒ6ý?Äá²@"^@K­@ˆ»¦@Gã®?ÎÐ?×=ê?Ú–?j]?ýu?¸ +@Ýœ@2 @Mç ?õ^?CÛˆ?dïm?‚Ë?‰hß?‡•µ?ÿÙ @'ÞÛ@I§?Ò‰?ך?ÖÝ¡?švn?‚ˆ?2÷F?l6>,u=ŸÂ? Š*?‹;®?¬­ ?ÁÛ³?ÂiÁ?à ³@'`@-¢G?]g‰?=z²@Ⱦ@)+‘@+¯@8è?6r?!µ?½÷?¾f =»'¨=Ü4÷?ʺy?Íf{?: +¨?Eî¼?œ<¥?•²b?1 +ú?@.@ Z@½O?àï?Ú•ê?3e?‚üþ?¬&?­÷?×æ?Q?ö³î?ö°?Ág­?ºt±?š¿?bd@ù*@54?]^³?_Šè?×8q?Ó§0@«K@1@‡ø@€ß@uÕ@û£@‚`@ÉE@;AA@<Ép?§Í?£áã@2e@9‡@(|¯@.Þh?Kf?€*?̉?O?Ï@6?Úº@ ;ê@ +{Þ?·(ö?¹î_@/°@?êUK?áMF?Þš?Ûå¥?úsù?þé ?{‚í?GE?¼ˆ$?Ë™*@& µ@7’¯?ØÔ©?¹'?ì„ó?òÔ'?Ê<¢?¾Ü?¢ì?œ# @aE@!èO?œ@?¢Ð?ª`?ÞsÀ?Ì ?Ç~ž?ºQ·?©9@!ß@eG¸@15?üÎ?òÐ’?îÐ?÷ž ?øÌ\@!½§@Y]@%Ðú?¤2?ˆÐ?3‚œ?­ir@8¬ @Ô€?8×Ú?‚×›@ŠØ?ú¢z?¼†à?¾ü®?Ì‚o?Á>v?OÞç?H=Ý?úâÄ?ú_N?±n? 6?Å:!?Ѓ?ú”w@k>?~+°?U•¾@í@"”ä@(‹&@2¶¥?’œÃ>³@¿?Ö¤Ÿ@äé?ઔ?›‹}?î³@ËR?ýúA?¸¾A?Ì°â?è¦Õ?ÇÐŽ?˜¦€?ö¡û@dŽË@IF§@–î?çAè?x!?…Ñs?ðÊŠ?ù.Á?Ö9?ÜqN?Êï? +À?«d?¹pˆ@#®#@.>ª?î€>ÇDh>’mo>’Mz?ÅýJ@ûl?Õ±”?v-™?¬>?è"ô@Ú+@">¡@ „Í?,ß?pþÓ>dãX>¥?z ¾?¨o?ÐÏ?Ã.}?ý!?ø ?îO&?äÓ@'˜@1"í?¼Ì ?k¾„?ZQv?5eµ?‡q\?¾­‡?Çt>ý‘j?Ú??¼?J½?©¥Ó?¦Ð?¢Šv?žöq@06†@'ʸ?²Xû?ž‹?Ýv?ñàJ?}!å>º…|?Ë·?ms?’7?´ç-?†Õ.>@ª>û?‹Š?–ƒ?÷Ä ?ðV|?Ïïg?ÊÃÛ?åø?áÏÕ?·k.?«ÚŠ?¯|1?²®À?²L?³^Ð?ÇÝ?ãí?З¿?Ã^â?»K|?²ÖÏ?²¼1?Ô¦‰?Û v?êÑU?ü5T? Ñ¤?_R?n—?ßÕ?ƒÙ#?mÀ?™ß¥@ +e@ë†?±s?±YÙ?Ñ®??Ø ?®3 ?¤Äú?Ö»¿?ð/?µ*?kƒæ?F­Œ>ëE?“™?œì?˜Å·?Ϩ?”Ý¡?Ü’¹?êq?õ Ä@XÅ?Ö5h?¨B|?¯T“?©ý?¢!?†-[?sò?àÐz?ÔÈ`?¬!ƒ?‰™?žš?»ƒ@?Úu{?ï ä?Ù½?®<.?¦ê5?T¶?KT?ßë1?ܳI?ßq?òÀ?ô¸”?áª?œŠ>ª‘…>óþ"?æ®Û?æô#?þoÊ?ì|_?ÂI½?ËFá?ÝA–?ïGX@¶x@3Ø?õ«~?Œ&r?||ß?kGŸ?…™¶??‘/?F^?If ?O»Ž?bm˜?u%Ÿ?³†ø@*T@-*8?Y¢†?bó/@,ì_@5è±?žƒG>åY1?ÊW½@;;B@È/?œ0V?•ŠÕ?ÁîW?¸€?«6=?´“ý?îí¡@ Jy@ tÁ@ ü@Rì@4Ò@/ @W5@f…?@|“¿@€Ž²@;¨}@|?ç×—?Á r?ëHû@õ@ `u@!ÍD@/±?ô;›?çå?³Òé?™œ±?ª´¡?Á´¶@íC@*ïa@)ýŒ@;)@<ÿ?ðÓ¾?éßÒ@9ìÃ@:»@1<@è‚?êSU?®é_?¶ñ[&>ýN]?r@Ì?rºm@%ûh@%d?Îöf?¬¸?«®?·jª?Š¸V?ˆLl?ÑЀ?ï +‹?ºŽ^?É£o?x^?Y´À?K¿? <Š?]Îó?Xa +?™`?ž!Q?›Ú ?Yã?}óï?€ñÁ?R˜??Žž?œ:F>w¡>\þÃ>{ìÃ>Œ…¹?ˆ?8.æ?oçÞ?`Ô8?Q•a?B3[?2§>ìä:>ñÃ@>€ƒz?Š¼Þ?}8 ?P].? \? &F?® ?É’S?‡¢I?!?:ëB?¡0‹?DÛ??$ßl?ðø>ˆà¢:Ult?¤Åø@¼J@6{Ÿ>S«¤=æϵ>ZÛá>þ„? Â? ( =Q£>«’L=‡Ce=êÜ?%5í?iâ%?+¥ª>êéD>øéF? !?Xiê?ØŸ›?»¾ù>%¥`>9†?$³ó?/wî?²÷>ïÓ> Ÿ>3eý?2Œ?Mëâ? +ZÖ>P>ïA?rÌ–?P >óu >Ããm<Òø¨>ÒG>ô¶¹>üu?KÏ»?B|¾<ì©?}–?( '?Èë? +Q'?('Ì?;á±?@Óg?EÄV?Jµ³?O¡“??•’?:?,v0?»:?18N?`š?  <ÈOÁ>½øS?n³”?Eú·? Ê×?Qá$?¯ëÕ?œÓD?Y_?²2?Ò»°?¯ZU>U@R>Œ4½>üMJ>ê¸Ñ>X!m>†©}?u 8?}€?!áñ?ïV?I`?KvžþF?äˆ ?í=Œ?ðu%?æès>á½>”Ýü?*Þ?=H?–°?›‰ ?‚ãm?ˆ>–ö~>Ñ?Ʋ>?÷³š?Ìz?¿š?2ØÑ<³ðz?JQ’?Âê>aj?Uì›?$=?ç8?ù;?Vý?P? TP? –x?§>úAT?\7‡?qWå?¢Ð?¯Ñ›?©ä·?³5Ì?0/Û>Å0•?…1?«º¥?ˆû?táú?3‘? “?[AT?ƒ«C?•w;?¦ú¡?‰:é?h©ì?G·³?Bâ¥?Vˆ2?W?j²)?hú¨?€4Ÿ?…%€?+»‘?¢¨?0°ü?N?Z³¸?Užç?ºÜ×?âÇC?ª¸D?9Õ?n=?a=&?$Þx?Ñ'?“0?Â:¹?ÆÂ(?Ìç?†”?N¼¤?!¢?ò‰?”š>?Áx×?ÃGå?½¥÷?R¡S? ?t2-?žôX?lù>>>Þ{ü?#è?¦Ü/?Ѥ?[³¹?6Ó?…08?ªÞø?‰¶Ï?t(œ?'—?Q^?[ ±?{|›?%§?bß?P +W?n#>­Áú=êð'?ZU?”y¬>©E?<5?”P?™l?â?…õ®?`Ñ?§Wq?¢ÆD?·P?ÆÊ1?Ŧ?­?hx>ŒÃË?¡tû?ÂÊî?‰Þ?}T€@h[@À/?Qn?ýl?¢L¶?¯ÿ?\æX?WH¸?€TV?ŠÕ¬??{3?)–?ìnÅ?ô¹v?ç…Ü?åU0@~h@(Ø?Ø¡x?ß³ ?–h6?™!ž?øà³?ü­¢=ïîE> 1Ÿ?C+ ?hÊ]@t¡´@g Q?H¬?ûÿ?œŠ?°¾?x)3?gÏî?-Úî?6Nœ?>ÁÄ?Tü?‚ÉC?œH?î5§?ÆÚ?:**?V¥?„ Õ?”Á´?½½—?´ é?«K†?­k”?¯?ah?Bñ?¹,@K.@ [@#ó@ Ã@}?{]ؾxã?-W?«ˆ?ìq?Ôü?Å?˜i¡?ƒkü?lœ?j‡Ì?XM[?K n@Gu@5‚ù?ÀFÙ?“ê+?wÈ?µT?¬j?²wå?Néä?L;Ô?¡2?/ +?Íð¹?ÆÓÂ?%Ï;?Íä<ÍÐ>þc>ôÆ÷?2—™?ìåu?èæì?ío}?×þA?¦—e?§F=?šµó?¦"×?Åã·?¦ÎI?W¸¬?ŒËÑ?ÈzØ?«Š˜?ƒÿw?áŸ\@#þ?¯F¸>˜˜Þ?\¶‚?¨bœ?Û?13?Òê½>÷õË<‰ë,@Tƒ@@ì›?°ú?z†¢@Å`@¢j?¯Gô?˜'h?„¹?„,v?Æ›?ÀĆ?ºfh?± `?œÕ•?«NÖ?븂?è¢?¯o;?ž+?f¼”?-?õŸ ?ãƒ?·Ë?¢ž8?sì²?Âw@Né?¶èn=¤9y?š¢?„8­?¤»$?¾ìA?Ò"F?Ù£á?šæt?‚ã?¿a?Ú8?¬ú…?œÎ?ïþ“@2Ø?GÂ?Óƒ?wkú?„-Œ?(Õ{?w?-È?+ž[>ÁEK>ñ¼[@ +×Ø@Zß?Æ-z?µy§? –? #7? ‰Ø?&ŸÞ?'î?šÈÁ?ä¶G?³ÞO?8Ö¿?e$?•”S?Ÿ¹¯?¯Û?— Ž?m- ?‘E?§8õ?“›?wá? Ó?¸àT@šU@:êÃ@Ɔ@ «ý?Ô4š?¸q +?²¥ +?³÷³?½^ù?Á1?‘ Å?…ÏŠ?µYÀ?¶•Ó?5p ?)Lé?ûb-@œ?·Ò¢?²Q?Uµâ?kÐ?äÊÇ?Ô]“?ƒ|h?‹8ž?Å*ž?Ĭ?¹ø“?š÷J>«š? ä? pR?ÂÃ>@yÁ@,SÅ@og¨@8J‘?s”q?}Ý?„8í?Àiõ@Qü?þQ‰?Ä–ý?²?žý}?‹‰½?`Ód?™>ú?ÈFí@¡<@#•?é'_?£Ù?}#*?L„F?™i¢?½Æ³?¶?°½„?Ó¨%?çþ¤@Ư@-(Ô?¾_?‚‚@ç®@!ðï?Û?¶ °?2)æ?Xö? üÄ?µ’?¥²c?ž=W?ÎÌÊ?Ú‡D?CÂø?\5?°¬?Ãs1?Þu?Þ˜ª?í?üü»?cÿ?4J?~K?ÓY?ZjN?EO?†„‰?…Z‹?‚ð>?ƒYE?òÚ4?ézº?úB/?÷vÓ?Ùä4?Ô§[@@@ OÄ?¼„©?²0 ?rk¿?.?Ã&?Ãs?MFá?WØë?–·?rm>…0}>”·8?ªà?°(ã?Á`~?½%?€ÚÓ?„k?ÈuV?Ïãc?ð*5?ó`¸@3RÐ@,Ig?Ó?Ý ‚@) Ã@"V?¹ÿ ?Å…@½I@"²?´ê®?¾,ä?ìb|?íÝ’?ÓlÇ?Ù„Å?N¶-?9ÿ(?mt“?w¾Ã?±ï>ÿÞ¡@PÅg@Nx•@ ûD@½è?5á?%à%?ö‹_@6õ?Þdˆ?Üî$?ü)R?þýœ?ÐBƒ?ϱ?¯˜?¬Ç ?å”I?ñ¬‘?Û4n?àDÚ>Þ$ +=O€e?Çõ/?þó@Bu@Ô"?«{p?}Ôâ?¼y?á·ì?ôƒ²?ñ:@þ¡@Ï@ +ßè@Æ?î5÷?ç‚Ž@ôO@ @ ü?üÂ?¡±#?ðù?:~ ?€:§?‹±@<Â@ÄH@Oè@b@Ðã@®G@ \®@ÝŽ?ïd€?õ÷@ @&&@.e´@8§ê@^B?öÿ°@õ‡@r@”u?Ü9y@¯ª@@ @g3c@ R#@™n?™@`?˜›†?©âÃ?¢á?Œ|å?‰HH?¤?˜sà?±Š°?¸h÷@„Þ@”ÐG@~µ?¡:º?¯G^?­;D@ 8Œ@Q-w@ 4&?™a5?­p;?Ôd™@Wv@/µá@!þc?õ‹€@ =@JµÙ@Cf?u$/?s8?1¤^?E™·?¦Y?³øÇ?Þxž?ë-t@Ðp@/mÖ?¬¶?Kf?žm|?âó?ײ»?Ü?Ôr?·h‚?Á >?á½…?ÀUç?,Qt?:./?H?Uú:@Xá†@bÿÏ?§?¥?rC?¨}Ð?Á?b?úΨ@ õH?­Ö?ª?.¸?{6Á?—`ñ?Àõ?¯´„?¡S?š‘e?…ã?—Ö¯?í '?ð9@‘@ré?º½?~µ•?s‘K?oîì?Bôý?©”?q3ú?Ð39?ËÏ.?£eg?©(?”Ï?˜ˆ¹?°þ?²‡”?lzv?7ýƒ>Çg,=úå>€`‡>þs?vKÞ?Õ1?â}þ@‰@õE?ðZ?蜲?ž©„?q@?£. +?™-`?ÝiI@ Ü{?Ñ9?k|Ë?‚ à?˜Ì%?£w +?ýõ³?õšÙ?”?ê¦?ÈÑk?Øò?¨4?‰H ?3Ä=¯ ö>«õ?u†Ð?ŽÝ ?Û6?Ö×S?”ÍÞ?¥©>?æ¦_@Ë»?§(?JãF?­ A@…?ÙIx>øÚ?"Ûæ?£_[?žõg?Ñô?Ý>g?rùà?4­?ÖD'@äÆ@3o@Ño@É?® +q?±›/>¹¢é? œ[?£? Ì/?s#l?d?¨–?Õ™?éû_@Û @ ‘Ë?«Z?§r?Á2ì?¹©r?“ì?xih?LðÂ?"ÌQ?[Ôï?ÉAð?º’? I>ï@î÷@0:.?¼˜…?A@³?Î¥?ý7ý?ûÿ?½‰r?Ì3Ò@F$@D?4)Ê?î8?ϯ@@iõ@è@i@öf@Mèƒ@KmÙ?Ô²?ÄÀ=@5Ù#@J#?âb¾? +®@0h@A[2@:Žt@L°8@@l9?Øô?y:‡@Æ@“M?¡ñ?|D§?ƒ—Õ?‰…?ÇÂI@¶N@Á@ãð@®—@-à8@,­í@E–@‡=?Ø·>?ÆQ?š»ý?€Ú?±ˆƒ?馾?Øõ¸?¯2?¿sŠ?ÖÇ?ËPL@¥g@4Q?¾“Í?œåÇ@3l@a…)@|—l@€Œ@,®i?¿o,?Ȧt@Žõ@ ”þ@)?öxr?â¦?æË5?¬5w?™_>‰ð">½Õô@:ê@¶‘@ƒ¿@'8?6ú‚>ÿÁÚ? ¶½?ý?IŸ?k²£>¼ÈŽ>$qW=ÚòC=XO?Gù?py5>³3O> >Õ?UÎÏ?„Ìß@Pe@ <Ù?Œ3É?ýQ?TF?6¯?7‡>õiö>ɹ>÷Õ-?ƒýù?„t?„ Ô?‚•?…æ)?\Æ?F~h?}Åp?‡õ^>¶¨T=Ÿƒ=a¡°>¡¾—>æ„.?C>õÓ×>Üð1=fê$=¹Á?!˜€?€@>³+Ý>™o·>¸â?wÃ?uˆì?ò—>‡!®<™¡@lü¾@7{]@K›>+Âp>$X3>çìñ=7Ô>šØ?)rp= ~Í>tÅ?FÓÐ?b†?ŸäP?­N8?TlÕ>ë Æ>ë†l>ìj??zà?kl,;ÌõA?9­O?5ïŠ>–Ïx>…Án>Ù`é>ð²¥>¾mb>¬®?Gû?Y/?^>ò?cO?B,Ê>ó„Þ?¡S?o/?gC}?h¼ò?\€?@?¿¢?84[?.D±>ù7E>ö°þ?“~Ñ?Ók?ÁÊ>÷©ý>¦m>”µ#?…4©?¢íL?"I=÷YF? \x?cá?"q>ü?³ú?wzP?Ce¡? ?¯>úЀ? ff?0¿?O,C?{pr?ƒWö?“î?t+v>Øt>ÀKi?=An?8ªÃ?4?#o>² Ð>¶o?6Œ¥?2T>ObE>!fœ=…×>˜ ?¾5^?¾GR?¾Y·?¼¦U?rÒ}?nE¾?i³K?d®>ë¢? Y8?A y?Yô&?&u?Š+²?Tò>þÑ\?Òª?ÛKa?^£Ñ?Ps?/{^?%„a>@0=æRã?“Ü?«áŒ?r÷µ?jX9?æX?ýÐ>?“Ü?¹®?¥^‡?¦t•?3ÉY?öÃ?›¢G?´š»>Õ‡ì>0wã? â?Û—>ªoÊ>ƒæi?'²Q?U†2?ßÿv@0Œ?<|ð>œO>+i=ñ(? ˜î??øó?Î? ¦™?Äk”?ùä`?¢8Ê?€dï?+#$?N?˜Å?´ÑT?„gÝ?``ß?4Óª?)ÿã?„ò˜?™¸x?›ñß?ž(Ç?9‰?v?P?hY»?l¼ö?€b?à±6@#Å?ùè?ç~m?¹=†À>ºw¯?Í8?Wªg?aù?ƒ­à?…ß4?{ÒJ?o?j¼à?flÄ?Jë–?I>.?•˜…?­Ô·?Òi’?×À?WgÈ?Ì>–">´ˆP?þ?óP5@"û?œD?!ž$? nn?<ï? +O?~…? 7†?ðÝ?úž.@—V?„³?`v>g5c>„Ë?uЀ?—l-?…a#?~Ü?ÆI‘?Ѿo?°&Ï?§Bÿ?\Y?@Z? ‹V>épf?ŸÎ ?Ç’Ý?=c?»ã?©ä”?ª%?ŸZA?ž'H?½¬°?ÂÈp?4!? Mb? +'È? +^?‹Õ?øÇ?³ëh?ê?®N?§¥Æ?¶³?´?§rn?­¹?È¡?Ñ‚ƒ?™??# ?ãJq?ê¦!>™¯›>¦Î?ˆëÕ?‚œë?xŸx?g“K?!j?4&ç?îbù?ì\i?µ¡¶?³Éº?…l ?ŒD]?À1M?²Òñ?‚¦?lûË?±†?¸}?¼?f@i@i?äæf?†+ˆ?n'p?ÝF?T­ö?Ä[ ?Ͻt?çø ?Ä=£?‚ý¥?žéß?Ù?…À‰>ÏÞQ?IŠM?ªi-?îA@‚@p ?É‚Ð?=Fc‘‰@>õ»†?‡9û?´(~?nd?5ÇE>ó;N>ÉÇ7?[ +™?ƒiœ>Ì“>IÛq?ÅóÁ?ðc²?ÇbÅ?È^?婧?ë4?ÏÃ>½·?xË)?ƒŸ^?Ž>ô¶u?7Èý?9ý=?õb ?üé6@ªs@ 2ü;¤j‰>šzX?ûï?Ö¸?6­?u¿Ÿ?ÒZ ?è š@ Ÿv?êðø?˜êÍ?ª*„?Åàá?¶«Ý?¡la?²6?äÕ™?–R¶?µ¿?›J?Ýݽ?÷‹?`Ðå?~i(?6¦>É~ã=²«˜?ÖF«@³P?…Ü?? Ï?‹Á?ô&@ +¹Ž@­¾?> >Ó]Û?2™'??g¨@8SL@61Ü?®‡Y?·½@.ù?ô‚>?0W?;x?Ò®?9®e?¿?èK»@%BF@…U?ÆOU?Æáÿ?À’Ô?šs{?E?*T±?L©?ÙÔ„@BïÅ@#?§@¥.?›Rã?ª†?ã•f@°«@<—?Új@û]@(¯¦?–4~?4IÝ?ÄÌ!?â¢Ë?}­±?H’ú?›™?¡Eì?ª8S?­rû?±Â?«ê>Û”p>÷e6@ : @¦•?²éÅ?²os?“õg?±ß{@#ví@í? ø ?\í?Î^Ì?³{2?n¹ ?u·T?„?a*n?.Åg?Cý ?T^Y?b¯z?|‚?Ëš`@Yð?ѱW?¶°2@×@"âï@80@­ç?Γ£?Ÿ_Ô?cèß?<·?jµ”?}’0?µ±á?ÄB?Å[?Å~?ï?ìB?Sœ?S¡p?’èô?”£}?_ž?jÈ?ö=š?îç€?ƒz?‡ªp?¤Üa?­4N?Ï5º?·ü? ¾ø>ëýò>»„ ?þ:?‘‡ˆ?£w£?Δ ?6l>&†i>s?Ùñ?>¨¤?‹ßõ?C?‹ý»?íEA@)‡@1-â@8 Â@À¸@²”?Í6õ?®??ƒxù?Be|?hÐC?v»©?‡‹™?Šw´?M +l?6_j?W9?g1@i@J\Õ?ÓQ;?ˆHÜ?­¡à?ÀlS?’¢›?†l~@c•—@9…?úî?ÃmB?ìì8?ò\7?yQÉ?]_Ï?:v¦?9%î?=Õé?B‰O?öf@ê>§`®>:±@$Ø@+•7?©š?0@€Æ@Â÷?Ñ!?ÊšÇ?½„Û?Á*5?Æp?ÅÖA?4¥?Wƒ@N´7@HQ@ +k@ F1@4¥@¤o?Jßá?Z‹@YÃ?ì¤?74?DWC?ק?ÐXm?’|?ˆnÑ>Ñœ6?ÛL?È{Ë?Á³?…‡?•-@@8]?×?'?á ¤?ÖX?Ú¿r?ýó?ô=°?˜øn?—¦v?nÚ(?t¡:?º5Ë?Ä”?ž£x?—S6?”še?‘æá?Ʋ?̼>£=zF¨?¥x?ÃH?Ž?…‰3@ Yê@:%ç@V_@ ƒâ?Çò­?ª¹“@Ìç@v¾@§R@ í@+@&ãt@@l?Ó”o?õ÷@‘Z?õIç?ç~D?¬´"?h?>Üf?ª&?8ø?|HÈ?×Ú@*ýÑ?ëqŽ?¨?¸”‡@H•5@0Ck?ÞÏ?ÌÓï?  3?˜Ëç?V‚ü?lóS?ÌÇ÷?Ϙ²?ñ+Ò?ýŠW@šg7@™dK?¾?ÄWb@áß@€Bc?>èm>úGó@ +^)@ê@?ŸÕÝ?yê@@u>@!Qñ@4”¬@A$–?âN±?€kg@ÿ@?øU@,Ê°@{é@ uB?øá?û:n@S¿?ÇÇÔ?Pé-?° Î@$¼%@˜-?Ô”‘?胱@@uê@e÷@9Ì?˜OÎ?ž¬@'›Ý@.²Ó?•Äã?yM@+•@(/Á@ +9@A?ƒ|Ä?™?ëÃ>@,ÔÓ@'bÑ@Â?øÍ?³Ü?Ú!¾@”å@ š?à‡4?Æc? +0†?Tÿš@OÙñ@H6¿@TI´@Hƒ¹@LÐ?÷¯ ?|^?b}›?‘,?–M-?Ì0òØ%?²D?Ž,~?‡Þ? v^?¶r?)"v?Ç?<­ß?8´¬?”ù.?µ4Â?ÚãÎ?ô§Î?Ôgq?¯‘1?¢B‚?‘x‰?Œ€à?Ga‹?[™Ï?„P*?k7•?ë@ó?ðº?̱ ?ÂŒ?¯¯Õ?¬Õ?‘€s?p¸Ý?jîs?`WR?IKæ?3…?Z„–?œ$?“ø?3)6?:¯^?ÁýA?Ä£z?û·@Q¯@ .@¿ù@!v©@&q@êÆ?¾,q?¼]í?²ù™?ÁžR?éwá?ñ9·?|Æ?l-¢?ÒÅ~?ùÿÚ?™Wm? ?0tö?ktß?˜É:?ÞÝa?ç{š@Þ6@F‰?‘ì±?•ðØ?™ö€?ž†?Éâ±?à "@LP@.Î@Ÿ‡?Ü©“?Ø'?érû?é_¾?Æ€L?µƒà?Ov?ó¤&? ù?ÎQ?åÒÅ?r5?Te?]ò†?‰ñ.?¨žµ@›æ@»ì?ÔÀˆ?â¨ß@9êõ@D±@ýµ?¿q›?ñ0Ø@cB?äžz?…Ç?‰ç @ +¶€@ -Þ?Šæ?[«n?¤+r?Ém?±^¾?œg·?Üei@, @) +B@ E–@Ü?‰KM?z<Ü@ôR@‰D@z8@ â@à@,v@!Ë"?¬›ó?¬°Ç?ðÄ?çàŸ?Üу?Îç @£_@"Ö +?øÇ—?­hä?Íž@ ]5@&*‹@,¾ð@.S@SŸ:@M›D?éù?®•B?™Ôú?yâÛ?–XÛ?Ô Ü?Ä™#?n_à?¯@ B@ +Nd@‰D@Á@?Úç¥?Ùë}?úí @ +¡«@n@@™ ?í6Š?˜ÄW?­`Ü?´`h?¼ú?õ>I?æÃ?eR?b:È?±÷?$¸>§ØH>ŽWÓ?ñUG?ó½ƒ?Ê#ì?Á4î>wŹ<”Cð>Ô¹ê>öîì?;e ?=og?X©È?IÙ?-Øú?jÄ?¢?µ¾A?uÕ>§ÝßS>õœ0?ƒüF?…(j?„ø?…hx?…æ[?m˜½?JÙ|?ym‘?‡ô7?´O2?Á±˜>ÿ%?ò?=—w>÷…>uRv>1<=اµ=l¡=’ìë?Ú>ÓÓË>j¾=ÄÀ´? —?5?îÀ>…pt>%†€>à‰º=×áyçAÃ>(ëô?V0;?ì =«õ"?ÅyÔ?Š;?¯¡Ž?‡êQ?[Ï_?‚?˜<Ÿ?n™ê>í >ýap?úú?4•>Ö_*>é¥>>~Š>Oº,>†y0>›}Ê=Ê9ü>°¦ ?­?<>òæ€>ì¡>éT>¨Å<Ù¬>… ?tÅò?ˆWÚ?Ó¸F?Ãg?ëq?ÓŽ>økî>ö²7?Ž.m?—…å?Ú>÷¨‡=Ÿ(?Ò‚@¶i?¡û«?9%ú?zÂ?¡™?Ð?¯½?rL=?˜\?:x?s¯²?‘t@?«åå?K¯Y=ÌÚè>œYÒ? ·ë?%|ø?*FÌ? °>ûóì?!zH?|54?^09?Më?³v?$à? *ƒ>,Ñ?I˜³?Mqã?²º?2ùd?¾(u?¾.!?¾I‘?¾’?¸Ø??²ÿ=?~­?|îl?Bß›?6­Æ>°>¤h?Mw?«9? N>þ³£?þ²?ŽI>¬‘#> ¤­?Í?’—Y? [W>ÿ>ñ>ÑoZ>×–Ÿ=Ââ=,߇?`ôæ?}æý?æp?¤>{÷Þ>G¬?˜Ç%?¦/?„l?ì>>äpH>¨5? –?4ÍX? +?>ú¡'>ånØ?ÄÙi?è^?¸}?§°X?_‘9?=c§?É…ö?êÙr?ŠŸ?gø>€zZ<ùé×?•z’?½Ë¨?8§?dƒ?¢Î ?À¥?¦ù?€t—?ejs?X«?šS%?§êV?[?j?;–?B Ô?=Íé?‘Û?¦®§?^ë>®Õ?o€À?’)@s´@:Â?Šåº>ÞyÚ?ü?TH?ã?@?_ë¼?€Ô^?€×Ú?€Ü?4Q?›è?PÈÆ?^wK?5Ï?- +?È«ê?ö<á?dÍ?’>¡ë€>l +â>Ú¢^?Í?{°?—çK?ˆ7¢?,?M1(?2k?]=ç?rrS?qz?F¶?±I©?ÃÙK?Cš?x.ü@> +@\šn?ÌÚ^?AS>â{M>Ε?ž˜y?Ĥ¤?¤+ä?œ0s>Ø%>w]Ö?‰²j?Ÿ=G>ɼl>Jó.>™;Ä>®ç?uý|?÷:>‹M=Ê8Ë?—›³?±ò?ˆ@)?Þ[?ó·Ö@å¨>XÐ_=ØC?|A?‹Å>¢ÇÎ>žû?^ö¶?a0Í?¿±k?Ã00?6;‘?6Ù?ÕM\?Ìè»?ä¨0?Øg1>dÚ;>|¡O?£ L?­$ˆ?È)A?Éüj?’b›?9œ?m\™?eö4?ž.?2¹—?ÃÏc?­Âï?1>îaT=±ý>ý»?èÊ?î’†@k?ãrë?Š*?v Ã?ÌQ?6{n?ì?…_?~4]?§O ?âÎ?»’ì?‚÷ª?Öa|@#¤@ +?²½Þ?Œ'=?9©º?„¡¾?±Éß?ÕÇ?ö˜?Ý°³?ŧö@)r@·ë? õœ?"Å‘>‹r°=Á@r>¡f>Å™1?²ÐÖ?ÝϽ?hÛ&?$t?¹pÐ?Ú/ï?•êE?ƒn?¼Lÿ?ÅN1?‰Y©?ƒ’r?2Šü?7`?½½á?ÉÝx?î³S?âü?ƒ®=?r÷[>*²æ>*©Ë?&?†m?‹T?brw=zŒ >èâÛ?ż`?Ý´‘@ û”?ç!?ƒàS?œö”?ÅÙ^?º„?¨õ? ›?çgÖ?„Ïv>d×Þ?ŽM?ï˜Æ?–Ýl?,W½?·TG?úcÙ?œ;J?JO‚?f^¸?y+k?‚°¢?„ ?¹r¨?ÃZ?B®¶?2R¹?dŸg?`-V?nzt?k½e?Ô·?܉¶?-i¨?Fx ?ß"ù?×pÞ?‹õ~?‚r®?D?Å’?zà@þ.?óïÍ?ÆIV?óŒ’@'@2þ?ñ°˜?Æò#?‹G?¢ñ™?À±?è?¥@0Æ?”Î?1!? 5 ?Û|¹?³+A?¡ûÊ@i´@.Ó4?¦ù@?YWâ?f¦æ?sb2?=â£?@«Â?Mž?Zt?ƒ®{?„ž?ÂT?ÇŽk? €?ýZ?!ù?šÕ?b?S*»@ˆL@5š?…‹?§i…?ý×Î?ûí@#?¿äa??‹?IH?ƒúñ?% >&݃??€'?¬¨¨?gÐF?æÐ?ŠN‚?Éé¤?ŒPù?:ö?wò}?‡Y ?Ál?â%[?ÚŠ‹?Ü™?þð#@»¦?N]?´û?°o? +4{?|ŒÞ?‡’8?þi—@œh>ª~=ÓÄ?!œÇ?*vî?ƒ…k?|"?Ån?Â>ão&?•?ƒiÐ?ƒb©?ƒ_›?ŒDŠ?­4?—ðÔ??Œ?g¹…?âby?ïER@S+@ Ñ8@ µb@@N<@'?þa[?Lå>ð€?®!(@*8ö?ß?uΛ?ï¯ß@#™¤?÷¥?µŠ ?Ùѵ?ëÝÀ?»·-?¦¥?Áê ?Ó°Ç?){‡>!­¯?1ç?_ú?ŽðC?˜Yê?¾R«?ÉùÞ>ãñf=K"ž<©$Í=clø?Žïp?»û:?–¢+?0ð?ÉQ?Ôîl?¢¤?–Š?[`v?Ni?I¡? #?¼¿p?Ë¿?“Z?ˆ |@Í @&lå?ÕhL?Ù@L@¨@¹l@½H@Q<˜bå=—Ð>#¸ž?s E?n´s?Ðõ?ŸB?ÓÓ¥?Ôªú?Å »?Äž‹?80ý?^—@!Œù@Ã4?ò#?Dè @}R@B?õÛƒ?àûR?±Ñ?r`?ëLD?ó?ü§"?ôÚo?Œ?ö?™Ùÿ?Á ý?ɇþ@ lï@ß³@u?ÿ+i?î·C?è¶Ð?``¥?uži?€]?‡Ù¯?èì?Ù9‡?–»O?˜6)?v¤?'¶?õ¯Û?òæ¤? +§Œ?Á,?¥0?Œµu@7¹{@3Ä@P“@~?àw?äns?Ö .?ÏÝ?±›u?¨9?Äÿ?~õã?¹š-?¿ C?«ä?¬-ñ@@@ ¾?tÊ‘?/¸Ù@ÓÍ@Šx@js@u0F?°øO?Rݘ?•âT?¨]Ë?þ7\@ @É@ ·@ Ñ?½î?š:?³|×?½äÆ?ÆË?Ñö?ðr@f™?Ç?‚?‰5R? œD>'^~?€Ô´?úLó?Ùy?¶òä?Ä>¨?àÇ)?Ækà?ˆ=Þ?Ž.ÿ?³G­@Š5@RœQ@3›Ç?Ò.Ñ?Ìm?ÒÖ?×Y+?û#£@ 5›@`3@gis@n¥@pß³?¼×?»é?oŒÕ?ŽNd?Ð'‚?ʘÒ?3[?.{5?pP ?yâ°?y Â?éË@ ¯Ã@!„e@£V@ DY?Á…¯?‡#?Å­?ù°?œ1? Í?Kµ?Œ'Z?ªÛ˜?Î@|@›@‡Dƒ@m|§@$-ò@¤ñ?äÎ?û@×@@à?ÔE?·v¸?¸Ïï?¹qí?¼å¢?º„?4^h?( +­@¹@.Ú?}²­>¬Ë‘?ê?Ñ›M@ +h×@*â@,ÓC@,¢‘@3‘@ ¼?Þ‡W?uå?‡È×?·ôÅ?Ïx{@97š@6`4?³è?ÇQ@l¿¼@l$€?$øØ>Q̯?ô¢»@­™?èÚ¶?ÜZ?‡jí>å®L?£]Æ@¶€?ýŽ?¸?µ¦q?©ëÍ?™8i?XŒr?Wéò?om?Þª?§Té?•žI>ùø>¶•&?p²õ?•ùe?´#Á?½ºú@(p@5±ñ@ [?´Ú‘?Æ? Ù?#¶á?H‡?[ÏL?ðd?ðH‚?ð*›?ð?Ѹy?Ó=’? Û?…x?Åì?î‰P?Í8S?«‘ë?³˜G?Á 3?µÝa?²ò)?»;O@p?í:v?ÄKç?Ê—C@Œ@-NÜ?îmÁ?´f?ò(û@Ñ^@Y‰@{ü@ sŸ?Ãr"?·§?’Ä”?–£Ï?p$‰?l"B?i¢?K¼’?ô#Â@+[ @Ç×?«Â&?¾~ô?ë,™?ÒEÐ?QÖÛ?x¨í>èí‚?Éæ?\Ùž?j\ž?®r?Át‚?Ñ“·?é0Ã?ì¨.?é¦\?Д¿?Q‘?nµ@Àè@¯Ï? |)?vmç?; Ö?40„?»‡@ö?Û/3?k§?E¾«?®¬?­ñn?øI±@i$?ÙÄ?σž@„;@;7‡@ Îg?sËq?SßÍ>õÚ,? ï¢?|c¨?‚¦¤?‡Š?‹Ž‡@Eá@,ÏQ@?Êò‘?쩦@=zc@C°O@ +ËW@~Ó?›+Ç?“®?vWS?>(?ˆ-ï?Âvê?Ù›@ ^Q?öì[=RÃ<úÉç@|;@„?æ/?¿Í@ˆ@W]@<2?Ïçí?Éåà?õF?ë§Ø@Ó@ƒËG@h5Ü@RÈ$@0û¡@ '?ö×@ Õ@0À?M.?$T¥>ë‚¡>ñÂ?á8n@9+@!R @]•@K@E@œÓ?ëσ?Ñh=@s¨Ø@}£?ÙDs?F©?Åzp@U@« ?Û‡Ì?Èc`?·G?ÔÅ@7$@¬«@Ø'@' +ò?öâ•?Îëµ?ë$W?þ:û?Æï?|Ô¸?¹û@-[`@ª?š|h?¬IM@ø@-ã?Óí:?Áù?5Ö?bÚ÷@ºÆ@/}@5?ó0?è­.?î܆?ݶâ?ª/Q?…+©>ð}/? _É?c u?\FÍ?Á®?b?»J[?ÉŠ@Ȥ@›?ôà“?çC ?(‘#>öú½?ÍgÈ?ÙÀ?¾7ì?» +ž?£q~?°Ÿœ?¼y?½?¢±®?íš? á?m³?Ey¤?.à_>÷5#?è”=¥ºï>bÕ>@w>¯ÿ½?ƒ‰?ƒŠ¶?ƒúÏ?š'ý?ÄB+?Œ¾ ?+Í=?iY?†çl?JÒ€?O?É?”·?‚Ïð?Lê>½Ü|>Ätº>¤J’>úÔ? "{?Œ>îÃP=ÎÞ±>Å)Æ?$Nì>°>8Üu?&I®?kF?î²>ƒÚE=4œè>>àM=‚Û<Ë$?-²?û—Ä@JÉu>óÍÄ>_¬à<ó; >‡ a<™Ž?hä; °=v@<#UW?DÔ!?q²6?(li?rÒ>Ê„>z~>Ì«e>í.?/_?n +÷?V³07Ëè?Œ˜/?ˆ-­>æ›ø>¦§>“qB>€Ò@?xÑ?[k?(.#>òö>> é<„ }:´‡™>‡:æ?tÔF?S>ºTÑ?"oP?ñÖÂ?Üo>)<>=žk?„I?Ô? +O>÷¬å=‹>ÿ“ü?*f2?ˆUo?œü¥?™?‘¾?*jÄ>㨆?¦s#?öŸ¯?³Ø?zm?FúÂ?“? zÜ>Çv?ë?Wÿ&?0¹¡>û¨Ã>¹Å>X—’?x’?aœ?h¨#>UM„>BØO>0WK>oçž>щ>Šÿ>&]?¥fé?®k?ºC?²ç?­Ë?‚1 ?„Š¨?Œ›å?´J_?§ÀÎ?‡?6éæ?Äy?¶Rr?X‘?ÂÝ>þ¢">ü}¨>sË>h+>Ïd“>¼(r?“^ ?™Æ?*¦>ÿ0ÿé>ÿŒ¿?wÑ?–×?iÕT?^ü}?‡b8?Œ–4?)•Ð?"V¼?TÃ{?T‰Ù?‹äú?‹ž~?¦½Ì?¤ {?žmŒ?œôŒ?ºØL?À2É?в?Øm ?—C ?‘Ƀ?šñ#?–^¥>zõ=T~?VYc?€MÁ?´Âå?À€ ?ˆ'Á?rêï?†õ?‹»ô?ƒÄ?€p.?6x|?(Ë¥?«b~?ÀÀÝ?qaå?GÔ??%?CNÇ?‘Ré?›Ô?e#Yê?Ÿ{k?ÅÙ,>×÷«<®¡e?G'Ç?€Ï©?€Ô/?€ÙI?ô'Ž@$?ëG7?ß(ö?GÝ÷?ò„?£Ç¤?Áyõ?–M—?„â?Ot/?<ÏÓ?8‡ð?4<Ð>Í”T>­î?{s?’'2?Ÿ™?¨aþ??üt?H?VŽå?qýŽ?ƒÙ?‚Pü@ +ùš@i=?óÐp?ï¬i?îä4?è?¢<ï?*È?:/?-bà?u¶?‡À?Íà?ÍÒx?¥ç|?¤\D?O"'?5G¦>Ô­>¬‘~>àR[>Ïý•?Np‹?PQ€>ègÚ>à6¨?j˜T?zz!?¹ì?Â)?¼³,?µû¿?„/*?üF>äÒ>Ðô?G a?+[†>²š>î{Í?¢­+?™ +¥?r~??‚|p?2û?Ç£å?ÄÆ|?ÁÊo?½/ö?´½W?Ä*Ü@¨™?ùö5?ßO?м? ½±?œ6?˜cê?ˆ:ß?kD‰?€„z?‡«?Ñ»@!ØÈ?ïDî?‚õÇ?Ü5@#À>?Þú?ac ?”OÀ?¶w?„ã»?*üß?"^?;J?½d×@üŽ?µï%?Œ¯Í?Ô^?ð„Þ?•X?XkØ>˜§=üæ?¨r–?Ù È?d‘d?3Ä>?7û™?<4X?Ö¯>?æiJ?¾?‹ZR?„™?ƒ? 7>öèÚ>ݺf>ö!À@!Å®@:o?ƒ¬×?“an@Å'?úV‡?Èï-?·‰?ƒÃ#?dœÑ>êip?!ˆó?Rã?…?b/q?°:@ëñ?ÛF?œ!?ž/‚? LV?‚#—?E))?f¢×?x‰ð?…óø?”"?§´õ?­g->æÎ?¯œ¬?ûÒö?T-?>è O?iı?„)?¹è?Æ Ë?$'£??µ7]?¼´±?"d?÷?#ÒŸ? vY> ÀI>y¯³?e‰b?‚Þ>?Æ=h?¿a"?¥t?†£i>g¸²>ÄùÑ?Vó"?ƒrç?±Ô„?¡å?„/Ü?•‹³?§Þg?³1ñ?ÆHî?„ú? +àu? +;®? !É?Ü*®@°å?éü ?ÆF­?½¢¿?·ìˆ?‘7‰?Œ¶Ä?«bf?¯Jƒ?ºh?¶‡ø?Öæ°?Ïv?¤ ?–éć{?„?³l·?‰Éc?µ¯@Õ?è,»?®ÌÞ?ÛH@@ Ì?ÁPä?6•?Ž¶Ô?Åâå?½Œ,?°‘D?©÷ü?£[?OR2?gá?ÛÒÿ@¨H?¡@Ñ?a–?h=]?\Ä÷?Ò…¼?ò¤?[¤‡?§N?ë¸Ñ@ä*@ÂÅ@p)?ÐÅ ?ÍCª>çƒ>Ñ`Î=èo>W»¼?²Jh?«ê?}Â%?Z¡>—4›??Æ“?Ô”¶@ ²?ès˜?ƒRy?•Šü?Ë6Â?ë…ý@Ë@œƒ@ * @'be@Vz@h%? ¼?ÐÈÄ@A6@tU?fG‰?$Ãù>ú[?ŒN]?Á’¿?¼(ª?Ãщ?Ô¢w?Þx$@|h@2äy?À‰[?I‘"?‹¨>?œY?XÜq?+þ¦?ÆU?õá?í`Ô?îKÑ?ù«û?þ8/@çy@k”>ÆÓª>ë:ü?à8?tÒ?‚Bý?3¾?“_?•´]?˜Ï?>xð?7OØ?cv?ø5°>å14=òˆÝ>Œ®›@ø1@¿H?‹?ÇC˜@n ?ô?^?±mâ?®×?á¾?Ï-d>²_@*Õ¤@,A‰@&ÆA@+;ó@4‘q@(Oþ? f ?!ùV?€Ô?1…?€ÂÖ?‡]w?Á ?Ã"?Út?Ý}œ?Òj«?ÎÒÝ?—?–NÛ?[ h?Uôk?ŸÅ?®ÏÔ@@l +@7«©? +?w}†?°%'?©®?À"?¾¶À?–š?‹îa?ã?ƒló@"^Ü@#Ê@:c@91W?ñ+—?í>Ä?ª§~?®h¨?³¦ä?¸àv?ƒ,ñ?~ö ?ºR¿?¿?Àzƒ?¸©@Dº@#k?í·?åKÔ?íQ3?õV…@3N@AG@2y@mð?Éð?°Ã‰?Òæ?äHq@( ô@9Ø?µÛ?AV?CP??U +I?˜_a?ª÷×?°±?°`›?¼‰É?È–n?ïV@l·@@“?ü)K@x€@4 @$™@ÛÔ?ÔLý?C‹w?„—?¶~«?ä4G@4Ñö@( A?ågY?Ú}ì?¡Bø?½³²@éù@ȳ?ç¤?Û;]?Ë"?Ä̈?ùœÎ?ö–¾@*b¨@#( ?ýÄý?úQ‚?Ⱥ?åP'?õÄ+?ëo@*zð@I5ï?÷I ?ª^?¥!ê?¥Ãª?Ï,?‡?´K¯?·­ð?Às?Æ*?tÙš?tÃÇ?¼Þ¸?Ú.ë?{^?P?0@9z@Õ_?Ÿ}*?$ +Í?§;€?å…ý?ÅlÜ?¨ Ø?ß×í@2@Í@ƒ:?ñmr?˜?s>¢»Ü>¾Êž@ @i?»Ug?¦#M?$½¹>ñÅû?®Ñ +?éKŒ@$âI@PL·?ëøy> ·…?P÷?ø©‰@/Û@¢^@å4?Ïô_?Ó„›?¾~‹?ÅQ/?¿‚y?¯ŸŠ?ÆzC?Üú@ÍÞ@2`Y?ØSN?^?ì-ë@{™l@Kb/?Ž~?©ŽÈ@QŠï@U<ä?š½?ˆEP?ë `@;Á?öŸw?ë¤6?“6?"­?ëN@_°¶@8Ë»? ¢*?œt8>çß?æ ”@#Õ@}¯I@Mü??Τ?EC?÷¯?xÌü?…ìý?…ÌŒ?óû@Mð?æàK?¯¦?ÙC¿@'@@ô÷?¹ÿ?­?ßèŽ?è@Ó?Ô™ ?ÓÒ+?9rì>GI?b&?ÜØÔ?æ(×?ÛïD?Ë2ž?®l?­î´?ÂKà?Ç–g@÷@në@ <‘@‘u?ïú)?§ÇR?Û§â@BSL@2Âê?fÃb?f³ð?f E?fŠÄ?·ý?ÌÄc?íäm@‘¶?ïÅ?¢ST?´×@*Ô•@(v±?ÞÄÖ?ÃR,?„J?]&??©ƒt?å’u@ !@Mš³@L¥Z?j3 +?_X@Lö@RG@:p~@C°]@?ò#@H‘š@>’p@ Lñ@Ÿ»@!ä@(t·@G‰‰@R @_j@ú¬@“0@Èî@‚¿?<^l?cÿ-@ +5@ Ê*?%¥¾>å‹F?lú±?žM@¥¸@4ß?@0³µ@'x@«<@TÀŽ@\Ïe?Žj/?Šew?í;=?ö\?ûÐ?ö¶?èˆ_?õÄ?Ú†f?®W?,éQ@ºÔ½@³};@ˆ2ê@{.h@= {@#•@Y?è?â /?Àß?õÚw@KÕ(@5V?j¢N?k½l@N=@nR?¸§(?½¹?f*? Pš?Li}?“kQ?»Š–?ÙzÌ?õdÝ@W!@«*@ o?ñà]?Ýö? eY?qY@?t æ?Žvý?•Tø?®hñ?¡®Ð@ Ã@#'?Éíß?½pQ?up?QÖÄ?yj]?¡SÀ?•›ô?š¾+?°§=ÀN?Pæ?ˆFþ?Ù‰?äÕ'?0V>Ä‹{?;:?¬ +“>'D<Ãÿ€@Ø?áh‚>že>¦öY?U"ð?‚¹¥?¨â,?‹Ý-?‰£a?*-#>$òK?_ßV?¥{ä?4-q>®9¨=†\pQ>‘9>¯C>Ž#<>XÔ>Ø„¡? "ä?ƒå?küÇ>'p,?çí?0D?Ä“?¥\Œ?i <=·0="ôü<¶íÍ?™?û>þ@Azú>8°`>8Aü>¡£>UV%?©U&?®G»?­ù?«m¿?"¬?Y7í?Þ[>µ >~é)>np>Á^ã?n!?Ïr?žU?;A?žt?¥ÊÍ?{§s?pêx?Te’?RŒ?É…>òRk?iÖ?úu>ô¾É>íh>ñþ­>é®>îÏÅ? &?8]¹?“Ð)?ˆB?€¿?†>æ? ?p?ôÝ?Åë?,D>ÿ…Ò>÷©_>lÇR>>à>¡ þ>™¹F>©ùE>¾®¾?¾l´?ïn:?d=(=MÌ<„±*?g?zeã?s@Ž?i¯3?e+Ô?`£§?»ü¿@F’?’ã>4]”>¼„T?üŸ?`•?ûcc?¾LÁ?3>ë?.´À?*(–?Nm)?šû1?e‰=,|>â}>šé6?}rR?Góè<„V>p¾? +*ó>üÍ”>uœQ?ºo@(R?ìBÛ?¥úé?«?s?¦ÏU?šCÈ>þ’? †?y` +?oöM?~ÒŸ?{Eq?*Xg?%×?!X?Š;=Æ)•=µàB?o'y?sªg?'=?ée?FM?ÓÆ?},¢?Þ?çã\?æ¡d?¤ùn?ÄÉ?€¼È?â÷?áíc?åî†?o{ô?sûñ?¼X…?À +?§bœ?§‡›?„då?€"0>m)š=ûy«?åù@3±?>¸? ñò?y³é?‚²€>sÖ=V2$>ó~`? £?§Ò9?µ}F?³Kù?± X?ÇšV?Å5ø@‡W@L‹?.Þ1>åf?8`?>ê?—Vr?¦5?NK™?-„’>Â6B>Ùç?‰MŒ?¥{¨?³V?· J?â|a?òCN@Œ‹@†³?¤]à?€Èé?#gU?i«?H•?eðÀ?_s³?f²¾?q?ê?LRø?gjm?pÊ?x¹þ?9ø?‡?&8?CÃ=öU?\ +?ŠX?8¼Ý?ZÇ?‰¹2?’ÒÉ>¤ìª=Ù¨c?Òó@M?œ.?Ž”A?2'\?$'ü?? þ?O=(?µìÛ?Â#?¡„?—,v???5¶?Þ,?ù³Ï?.Õ¹? :–?•F9?›ÞÌ?™Æ1?—®?âëÆ?æŒ?Ôäë?Úç>êæ>”Ø>ßì>ï^­>÷á +?˜Ý?Ò®?O"@—@Â?>l?tx?ÿ£?€À?'a?6w ?¿——?±Ãé?"¥ª?>Ç?ÀÞ‚?Ëþ@A @ȇ?Ñß?Ç)Ë?)<7?Wþ?$Gu? ?k?*·?bÃt?“&@å?Éòê<¯Ñ=l(À=Û¾?Mg@ëL@Àú?§€?|´?GvÓ?pÂ?˜(N?¨¬?¸Ö2?ª“g? ©?Ú&è@2¿?á‡â?‚ðÓ?Õ¿ø@3@?̆¨?Nt˜?zñ?‘»­?¦äª?º+ê?Êöö?ÑEd@ ɧ@ ØØ?š+þ?v?¡dü?˳Ž?ÀªÙ?¹éú?(Uñ>ɾY?3Ï?QÀ?¶ä=?¿æ”?iAÛ?O/H?•m?¡ä{?•/?‚?¶¸ý?µä¹?Å6u?ÃZz?Ÿa¢?šÌŒ>ÌÍ>øÐ&?ƒ¦è?‹B+?¸¼+?ÔÛY@ CM@jæ?Ãj?¯(?zw?Xf6?½*>ßs=òñ¢?q@ ‹Ú?Ç´=?3G?_´>ÞÁê>û³@?ëË?‹„N?ÅèG?—Â?iÉ?´ µ?Ý~w?vT?+? ¨X?Æf? a…>MD‚?Tœ¡?x ?ÚÅ?„JÕ?+l?>6O>VÕe?qia?mÛm?i ¦?j×Z?‹ˆ‘?“@Ì?ë¡?Ý®?Æ4|?¿«?¥é1?£f?š’“?ƒ`?6 ï?a&¼?™ æ?’;?„*í?Ö:@ÿ¯@ /?Æ?ö?œµU?xÑx@ ö~@C¹@{D@Å ?¶˜™?­,?¶àš?Æ;9?Óö«?Ñô˜?¢ç?š?U®?UÃ?É ´?Ý2­@@@Á?R"í?Rñ~?4a?WŸ£@(Eœ@&ƒ¾@¬@Îr?ñ¨Þ?аö?Î? t? ¨?U+[?êø?Åà?Ì®Y?žÊë?03:?¬¡Ë@ ¨K?èÓû?²¸?Ò9°?ïŸG?Ðt?¼ö @¤Ô@5U4@iÖ?È"ù@jÿ@¨?ƒGe?ÅC?Ùûq@¼?’2i?qø?«˜W?¸„ð?À«ƒ?ÃfŽ>.Y=ç:@7Ü@:2'@\þ@ð)>ÏÏ>Õ8+?M`M?VG?_1v?eÝ?P 5?_¨Ø?¡Xá?â*Ì@W2"@1R³?ƒL?zÚ?T_?Š¹?Ô’F?žK›>àwÈ?J?ƒ"9??p?Â}ò@'P@%AÎ?êÆ?ƒ?qR?UÚ³?½©@çÁ?Õ8:?¯u?»þ?Ä6ê?ç¾”@gÔ?ï=r?ÙwJ?¡¨Å?i˜?nˆÓ?Zêo?„>å?’Sƒ?œä7?š1Í?²Ši?¼à?ú¥o@¥Ì?˜á{?z- ?¯~ô?´Í%?16?B×?©Pñ?²Ž¶?††¶?‚¢?XKä?OÔn?‡ç#?…;´?¢Þu?«Û—?\&?D†C??Öº?έ?‚7 ?Ñ?aËk=ø=÷>T«?¼•?ûº?ü1!?é‹>æ_>ú2?¥y‡?¶^c@ÛR@ +#\?ÂŽ”?ÒøÀ@BÀ@OC@~-@œÎ?(Åû?<z?êó0?æ*?¯Gú?·`§?ç`Ÿ?ç%é?ÁMV?¹¸?€Ð?¥Í?ý<ì@ g@†´@r{?Àå?ÀÚq?ÀÌÒ?¹é¸?€wl?‚úž?›¼ü?ž=ö? Ä[?¬¯ @ (@ ðà?êíM?ð¿{@Ö@ÜÏ?ì¼/?éúÈ@:e@7be?“è?‰=ï@ZþU@Wj9@$´k@%¹Ä?ž8¢?£Uå?*â|?-Év>Òb>âè?:ˆØ?BÆ@@@§±?ü¼R@?Æ6?~€?6^ç?!ª?Öˆ? úÂ@Wæ@{› ?Ôí?–™4?Ð?Œ4‘?²ha?¾3"?ý~„@–Z?±é?}O|?Éc?Œ +ã@Àa@Mä@-’ž@»?ø{¸?Ï·r@‘ö@Nèá@?½jŒ?ß¹ù@øì?ò*%?Ôí?›Ý¢>ûçŽ?¯œê@9ä$@<?¼±á?šb…? ™'>ã >îì +@ð_@"<Â@E¡ @Hžl@4he@5rw?úu¥?ú5÷?Ð/"?Øÿê@f@‹5?’Ú“?uR–?Û=þ?òð@G¥@Zv?¸?Kë ?¬ w?¿~Q?ƒF¿?<<~?a»%?€üv?|v?xȲ?“ÍŒ?ªË’?ù^@6T@WÅ?ÏÖÈ?±L5?eÀÿ?²Ô_@HT@@ÖË@б@2,?­¯~?¤  ?N º?4fÅ?qfÏ?w}Ê?è*Ô?ü~^?—t:?v¢!@܉@2Žs@ç1?϶õ@e‘@ @p|@ z?Ðf„>ÉÄ‘?Ì?uv¦?wü±?|UJ?v¼¿?{ô?±@=ÿg@5„j@Kt@ñE?¿Äª?·;K?è ®??¼îJ?£©O?·i6?ļõ?ƒ8þ?äÃ?eã?·{¦?ñ„›@2ó +@­.?šð?ŸÌ ?ðr*?ÚS˜?ª÷?¹n?§áD?¯6?Hþ?6s?x\@?1w?šB?~þ÷?”À?¢YÉ?íÇŒ@EU^@$n^?ÀD?²—?ôz•?ít?óžI?áW@Õ›@qä?Žy}?=¢?:Ï?ü?•r?Õ‰£?ÃY=?Ëþ¼?áø?¿W-?Ë`ê@@ð @>é#?¦«“?¡™?“Êo?‰K? TW?°¯*?Íá]?ÛZk?´6 ?›–¹?Âÿg?ç›?ÊÞ^>í3·>Íf¯?q§y?`6¤?“Í?“€?,Ä‘>ë£@›@_¡6@k*#@‡¿g@lûÃ?š`?—¿?Ð ?ÜCµ?¶÷Ü?¯¸Ý?麑@ªŒ?ÜÌö?®Õý?Æ“8?ñðÉ?ÐÈh?Ã?.òß?ñ$®?è?ËG¨?Âù?pjô?9q¸?#ÿ\>õ ¡?•Ö~@)]Ç@'t\@0I@'LŒ@bÄ@Tx/@5Áˆ@3ù—@My?÷ë}?ÏϹ?zt?¦O@.Þ‹@.d~?fÃk?f³ù?*Âp?&ïS?+S>µ\?D[î?¬§$?–î'?}6>ýŽ?ƒkÄ?•ñ?¶”Ø?¾d—?ªÊÑ?“\c?[Í?¼pó?Í{ø?åxÑ?±j=?¡ïá?¿øw?ƲÙ@cô@>è@A»Ô@S³ð@Gqr@ +@ E„@™6@”{^@±z?õˈ@@ un?òÀ+?­b‹?Ø`–@6Ûî@B@L¸6@[ïˆ@‚@&Ëž@í,@´%?ÁÚž?i/'?ÀÇX@–@eÁ?¼@j?Ë‹m?¡?›»Ó?Ë Í?Ñ8Î?ù>ì/?´Å…?çá±?¡nÎ?m_g?~cR?‹Ëg?ЛR@G¢@ ®?ስ?ã@Ã?¾ä†?®­J?«/Ò?¨?ÄÒÊ?¸`2?Ú9ý?á4ç?Õ[>WÏa?ÜÛ]?ïVH?Ýgh?Îø’?n؃?)â/?Do?7d@o@J?b…!?’«?ÝÜ°?ýgú?ÄÏÎ?­zz?i…ÿ?3Y?v÷’?o‡À?ؾ ?âiÒ?NÚ?G#Ì?^¥Ñ?– ++@/5è@u¤=Ëß¼>’ò%>²¢Ù?;µ´?Œ.?°ü?¿(?!Ð/?œQ>ê %>à(? +½B? Ps? é4? ó? Î=€Á>%³>Ûµ™>þÅ÷?rk>ÌŸ>Ö'?ý¸?û°i?†­ð>Òâq=Yœ @À@& {@;á(> ¡>†u~? üS<›¬d?—É?@‚?úÇw<€îhî_†? þt?‘™Ú?¦Øl?I\(>ì(>~=‹>›çü?nBW?†ˆí?Í»)?Ç—¹>…ôÇ>‚T?Ð?"žú>ÆN >µÌ??2(?L?J¼;?\ÖòY<‡<&>ãÈ„?n`?ö¡=zkX>€Ïë?,Øò?€ga?î‚?Å">¯·«>ѹò? <?-h>÷w>÷¯P?.ñî?+?IIÝ?RÃ>?g…>ä“?ŒGr?§Ä£?1!>ù³ð?’o÷?¹ä?PD±?U|?®ÅÓ?é<‘@þl@:$±@T ?³Õn?5S[?i +?¡‚‹?Æú’?ý&§?×,?˜‘-?Ÿìë?©æU?Ž[’?CBg>õò +>ž™»?}5c?}M(?}fd?\ys>ùE¬>óî·>ýÃÎ?-[%?Ÿ­s?¥G?Ü:l?ÆÏ?%ðÓ?]Tû?æd4?ÊÛÑ>þ„?gB?F·"?SÓB?J¼l?Zr ?”ð±?’¶C?zS?†¤l>Í>¼>Ü¥‰?ˆ}?¨¾?ƒ Z?€Ý ?}¬?qû=´ñù>i?ÉÆŸ?Ì#ò?¿ò0?¿‰µ?€k¶?Ô¶?­Ñœ?³¤‹= Š?xk]?…”)?›Z&?˜Ü=?€êÇ?€D?Læ€??Ú@?Îâ?ÝÚ°?‡Ü÷?€5H?²-[?»?„[Ø?xš? +Ã?M¥>k¤ë>®„?‚Ú9?•?ÊçD?Ô7+?pØh?oýð?(`Ë?eí?pÍÐ?€€?͹Ç?Ñâë?á3í?Û¡¬?‹&·?€™Ò?Jü?8åŽ?„ù¹?Ša?‡?²*?id?%>1®U=gêp?T$ö?q­Â?¤Ã‹?¨­e?t?ÜØ?Ž Ø?—z>¦aC>J.?t^?†R?€Íê?€ÿ”?8ò›?«>Ï@´>°f>5xy>!5?Fl?gR¢?Ñ@W?æ½5?»†?·õ ?!Í ?.?槑?úŒ„@T@7?‰ù®?i£…?@:±?Dµû?´›?–‹Œ?Æ?}[?wLK?ˆ­=«!»?™%Ø?§¼Ö?wÐ?~Jž?ÙBv?é*+?2‚f?µ?Ú`?æQ”=Ó==0Ðõ<ÚVE<'#Î<$¯’=Kp?Íæu?ÓgÆ?æÄ?Ù”‡?ðÒ?,—’?ž·þ?—Ÿ?„Fp?áÏ?™Ãâ?g?‚1\?ŠIg?Ã[Ï?¶ ¸?PæM?~ür?ïÃ?ÝK~?‚^·?wu?7TÂ?U>X²Ý?ºÒ?ûY×@ž°@yˆ?ÙˆR?tä?\¹¤?DÖƒ?d´?‚­E?l?¢µú?·b2?Û½°?Çôè?´þþ?¡·M?‚Ù?´æ?„x?”L1?ž¯j?ž$?§µ‹?ƃþ?×â„?ÂFÝ?µi€?¾´4?º§?ú%M@Uü?¼o?€’?+Œ?6‹? Š?~¹?{[?Ì ?Ïqê?Ú…í?„ó?`å?¤ +Ó?±¢8?‰>«?ƒn>?Š$?†#'?¿íÞ?¹s +?²b?¼}þ?ôÈí?ï¨&?Êwb?©{=õ?G>€y?ŽÆö?~p?¬Y?±]?µU>ÆZÃ=A‡h>ix`?8X>Ïþˆ=§ ª?/Ÿ“?Í!?¸I?©•|?¥GX?—ž›?†Â»?gÎ^?¿G>|FI?ùc?VŒ½?c>õ?oñ¢?dK?\hÛ?Î&x?öq^?ÆÒ!?¸²L?ºÕ|?¼óæ?+ê? P>þ«Û?+?>.??°Lê?«ÿ*?„ì?„é?„à?…ÙÖ?—Ð?´“@%'—@$2h@ë‚@î@?è??Ôi?®/L?¶Ðb?·°ß?±Ñì?°¸Ò?žý|?„)?¦O?ÔvM?ФÁ?Æ>¦?ì‡é>ŸY«@(¿@Là³?H 2>¯å?¾æ®?Ça_?[˜]?K=I?¡qÑ?«ï?¶_1?ªÎÏ?„?Éi?îù]?æß]?×Û©?Ì»4?„ +?ŽÙÀ?©•?• +?{ÇÃ?0T=.Ä>Š•Á?¬ƒ?u(õ?°à*@OÐ@7‡@<“£@@Nô@ê6?Ý{—?ÁR­?©Å.?Ú@3*?üÃ2@̲?ãê?Ö/Î?«C¸?“„?ߤ?÷˜ì?o“ó?1wJ>ñ…Š>ëKe?q¡¶?`?þÃy?ý²I?ÓŽT?ÖÞ?Kòf?sMu@ dL?ÿú?¡Kû?ŠgÓ>3tb>Ç~Û?ª6ù?°ç ?ÊèÌ?Ó¿8@ fÁ?øÙ–?œ” ?§ t?Äàš?ȾQ?Õ®˜?êó*@«?ìÆš?§?•áË?ˆY[?à«Y@#Ë?äÙ:?‚ý£?¾bW?î×/@6ªç@e–°@{8?ÄE‹?kû?’«?ä^Ì@Wï@)]6@4?Ö°?Ñ?‰"$?‚& >¶©1>½.?ÁØC?ø¯˜?¢Î½?Šd@ ‘@ @æ¼@*i?Ë~ø?Ão?!'¤?:#@ Jg@q†@G•¶@EBj?¸Œ?©c®?Á¹?Ã)?¢³?šU£?ËÑ»?Ñ°?óP?‚¦¡?¥ky?¥×8@/ @.?‰Ýû?ƒ ??I?*‡@ ?ôo×?~ö?(Zg@ez@ +¥?ãy?Ý|?Po?– å@!‘¢@! Š@ Pˆ@ û?¥(?¤sÄ?’r·?—×?“–é?Û?fœd?~Ý5?ÁO?ºòº?‹³?„5«?„<?„çW?mE?—Ÿæ?õcœ?Ú±>Ê<Ù?[¼?ªÉ’?±61?ð |?àá? pÜ?šØq?€DX?ˆ…õ?Ö1?Óz?ÐÙQ?ÜmÚ@I%Í@I²@H¡@H ?ün—?ü­¾@€È@ dù?Òþf?ÙP¦@ Gá@8W?Wgv?QœŽ?¾l“?²uF?â¨K?ׇ­@:H=@?ç?‘Î(?~ b?­Z0?ªu?2}?¤#?Æ?Õ?Åš@/Øö@@ºó?¯Ñ?}æ?üms@ +ø@?­:—?‘ZŒ?”+?–Ĺ?†CË?}I×?êà@ž@K‘ƒ@uñ@19Y@p ?˜»x>äëC?5-Â?|‰Ü?„KÑ?€È>?زÃ@ÌC?æ¿È?‰dw?§3ã?ÈÀ+?Þn@ ïï?ôÁX?šJ¬?“'›?dÏ»?) z>6Qt?-{;@-ái@®?¦I?¯¿Å?ËÄ,?¾µ'?~%?ƒºE?ï]?#¼µ? eù?«Ñ‹?ãÜ?äyÕ?À²¯?»aÒ@XÏ@/¡?…¾a>ù|?ðR¼@!Õ @cO?ãÑW?ÙèÅ?ÈYÐ?ß/q?õ|ø?ñÓG?ðÑß?×–?Â0Î?Ý ?øAâ?îk‡?Ì\ ?Ò±y@«ú@?ðº†?úÄ@ÀH@íÒ@$×4@!“ö?•_‚?}nÞ?€+¬?†Öï?¨N!?¬ÔŠ?âI@¤ƒ@§@,ï@ÿp@ ûö@¥o@(y$@hÆ?Ù¦?ºô¢?„Íü?=¶?»Zï?ÊÍ7@s»@nª@V6@Væ@8,@7`ò@Ji´@BÂC?õ?©?Þqb?ïÇÀ?óÞÞ?óÃ-?ó¥™?ÍE?œ,?½Ý0?ôÜ®?áûE?Ê« ?žž?‡*š?‡"³?y?“¨ ?àG:?Îu?ŽI‰?}Bà?7¸?6)B>ÐjK>8æ²@’Ø@†ë?@79(?´Ès?³º?¼îV? Ý>8Dô?ͳ?Ø—@-J}@2÷n?­Ø1?™W?ÂÈM?Äê’?¶DÃ?°£Ã?yMä?,ÊD?…>ê?½{]?¯'7?§E¼?´“.?ù.|@‹?Fñ?‡`ó?Ü?í¬ÿ?˜…Ü?kd®?8~V??š;2?ï<?Ô|?¸’"?·8ƒ?2i?9õa?¾˜:?ɲF?÷9@@¡Ê?‰ä”>õeu?EðŽ?œ Œ?Ù<@Óv@`&?Ô<«?Í"?jžÚ?j˜?¸þÜ?¿(?‚‚?[¾“?-¶,>ñÃ??Zp?¸"V?ÜV@#ñü@‚ã@s³@‚¹?Å…?Ác9?""?1Þ?>ýe?r_®?šø{?óÂ?ïö +?º®S?Ðc­@E!@% !?Ì„ý?´ y?»©©?§”µ?¸Ê?çÆ?¼Â?tB?IªS?f¶ù?f§Ž?A +K?1={?0x?:–?w™?ŸðÉ?½ !@Îå@þ@HG@G¬?‘ª”?…Ä ?Ý Ê@`H?²:?>1ƒ?ý9?ùÉS?ãoë>í—£>ÿ{?Ê,?Ø^Ý?¹?h?«ë?‚åÐ?35O?‚Üû?Ùen?Æî?‚ŠÔ?jP£?¯^?ųë?Á8T?Ϲ ?Øã?È…?Ôý?÷Ĩ@@qvë@{Ã?œ$H?qÅx?¦§æ?¼¶?ñO¾@†)@=ÐÙ@oå/@];?ïƒñ?êO,@Fä@T’@.‹è@®z?ðwä?ÈM?¿³?­^ù?³s¾?¾öT?¸e›?ì-?ühh@ +Ì@0ç?“¥J?iñN?Ÿø?¨ç?×P)@@ü•@ ìº?ûõˆ?…c}?Šþº?e7?}??ÄŸ>ìZ?O„?lÕ‡@5h@hà.@2¥k@sÎ@ý @Ek@¶?ÍK @„s@…-®@dãæ?ƒÙx?ˆý1?„×|?™zØ?åÆ?Ù@|}@©?Žð ?ŠÀo?`?>?|±?–\:?ŸA?¶~ç?» +k?²O?»ã'>§"â=Ô~/?ŽSð?µö@?¬à6?¾a?áç?ò\?ƒÁ? Që?7€?X¤Ö?‚6—?ŒP?Äžw?–P;¿z€?xN?˜ë?Áv> öÌ?*÷B?c‚y?Ì´>þ•@=À m>³!ø?[m:?/uP? æ„? ƒ¹? "˜=P_n=ªðÏ? +÷`F>‹Æô?-¶~>æ§>‚¶=Ó®è< áŒ=Z >-¶;å=Ä?A=˜´˜> ?i9 ?dŒ•=u¨š==¬ñ>ø˜1? -°>—LŠ=ôÌ>o]a>¸)?@,?½…?ŸÓƒ?2YÔ?'û…>NÙ$><Ÿ>*Vð>2>¨9=æ{Ø?Î @ñ8? ¼??î?q?ô?4XÐ?g ?\`O?žÌô?mýü>õy?SzD?ÛØ?ËÀÁ?k{A?_ä +?vùW?l;°>÷qø?ËC?•k&?“7H>­œý>®On@U:@ +fs?H…?Kƒ>þº>ù¬!=ÿšO;Ãå:?4ö¸?qº,?¡·?l‘?ufÔ?~¾I?„ ?ˆ²³?žÆ6?»z¶?§æE?Š>>?G«w>Hpþ>ýÇó?††?‚sÿ?}V?»à)@2ñ?ù¦?rIÃ?vÙ—?‰0?˜Ö7?¾‚7?«C?WV?Šjr?þNä?ß +Ü?EeÙ?(ÙÍ>t‹Ý>ˆµ+>þ²ý?Ÿy?”|?›‡«?®(?ó?>H¤»>ˆ9?‡Ÿ×?Š»n?»à»?¬òò<…­'=­£¤>éU3>Õ¿Ï>pP)>«ªW?ŽKŠ?”Üñ?ÙÂ7?Î å>»‚Ò>Ë:•÷ >Al>:w?¤k?§?€ƒ¥?€]?¬ü?°ø?÷E?$&?‡ÜÝ?‡yM?ËÄ? ÈQ=¿3<ßä?mƒ ?t?g>í-è>Ölø>Tä>o²?<^?M³>À¤>¡ò}?+:Þ?8¡>ü_È?âç?ÚZ?ï@ lG@¯Ë?‘Ða?€õ?É£r?ÏEC?«ßË?¬á_?g½?ª€?‰a?òŸ>ýWé>ôQ)? N!?ù ?än´?õ©Ê?Dæ?a*ß>óÁÆ>öÜë?%°?EÂ?’*?ž¶?N3°?Cö[?·=î?Á~‘?´8’?­ã?;¯Ø?%_è?:ú?|?"V?'0?75;?+Îo>ü@¿>þ7O? ¿“?îË?Œã€?˜íÝ?¶5Œ?µáÂ?¦´?¡F—?ƒ¬?lb? ˜?w/?{Ä$?€¿>™ •>z¸?zÄ*?–d>cG•>7 ×?Mü5?:[ð?Éw?®@?J6?Ã?Æ´?Ì?Ó?ØQ?3¶?Ðú?†ôª?…Ö!?9Œ3?RB½?¨×?7Ô?Hê@?gŸ?ÂW ?Ù Æ@Oð:@5žÿ?>ï*?€”@k @{»?ªZ?ž¢Ç?—?ï?š‚o?”AO?’¤ ?šwÏ?£©õ?°¢¨?¦íÜ?‚y?¸îo@ êâ@!Æ“@ÖÎ?ã<É?œæ?€Üœ?íW1@äo@DZm@ÉÓ?«„?Ôc?ý1'?åj?Ì Ò?†W‰?Üy?K=Å?‹à)?ˆ«¯?p–銓?*4?$Ê?‘š$@ ìº?èÌ?¾L?'Äœ?_æí?T•?Xƒï?ýÜv@P¡ü@ ]Õ?šdï?†Ý.?n÷Û?>ºK? È@>¶ÍZ>uÞ1?º[??*UM?0ˆ”?¨ƒŽ?Åôå?’‰^?ƒüŒ?Ÿ·?žV? +Öt>òƒ=·ñT<–7r?÷u?ü³>àË>bZÎ?„ñ?››t@C“‡@-çã?„X?–ç®?óœ¬?ë"Ž?Èô.?׺œ?åhü?ÈS‡?~[.?™6¸?Ó§k?¶"?„"-?ž‚î?¹qw?s>×áZ?†(Ä?Ïm¥?¢Ë?„"!?ˆÅF?†lï?ƒ?îµ?/OQ?F>1¾?Ñ}@.&>ž¡Ó?ÜÐ?ùv ?ŠÛ ?„î?†7}?ƒbÌ?ÓÉÛ?Õ›ß?„¦?Ž=?á`Ð?Ë÷›>Å z?!Ø¡?µ&?ð`”@[ë@“š<åI?8—!@`Ú?ãxƒ?º£?‹t“?+õ¦?%§ž?,‚¥?Ÿ ?áþ?½[?šû´?æXv@ Lö?Š¤Ì?Ðß?Wt§?lðL?Í€?èšB@éP@à,?¹¥¸?¤ÑJ?ñ I?õO¤>ÑÂw>4r†?-oª?"m?ÿf@B ?‡º¦?‰]Ò?uüN?fþ?ó?îj?II?@ +U>¯(=>üÒ?ÉÃ?¬ò??ßü…?Õl?¡š©?ªvq?Äç¹?Ìu÷?Ú ?¡½Ú?.6>Ë=`>C8¦?»&P@RE8@.G@?ÿãŸ?äëû?È]-?¦†?‚ù6?é³¢@!0?ÃÙ‚?yÜN?‘mž?—?‰ Ú?s£?Åö??ø@ +?Ôs|?ÉG«?¸t¬?µˆ?ª?¬Ù?tâ÷?H:è?—D?ª1?Çßä?Ë»m?É]œ?Æù¡?ÃÛ„?Å0K?Žmª?ˆ­l?­¡~?­»?ªwg?±œŠ@ ´A@ë^?È̇?Ã[?,T?4<@ú,@¨›?Leè?Ró‚?˜ÛÛ?™¼@ÉÏ@Q§?‘ð?Áé’?¹ä?µ±|?'Cà?#}?ÃÌÃ?¿•'?vJ?‡3G@?ý<—?A—Î?pΆ@3é?ñÆ@?§ñ¦?²¬c?¾¡ü?¾Ò³?ž,?–P:?`Ôr?tµÜ?Ôp›?Ë%?”m/?‹p¢?¯@¯?ÆŒ0@üã@ʉ?€·.?©èp@Mî¤@<ð@•í?ÿöV?îÏ[?Ì\j?Z2?; ?õÚ?÷ò|?àçY?ÚX?¶ÓC?¿:±@R–@q?ÍJa?Ô=»?ËÝ?Ø Æ@CC@71D>úN«?;?ÃÝ¡?Æ'™?¿¢ž?Ä1£@8=@5å?«Ê?¨á@ ±†@ fÃ@-Ñ(@/Õ¤@1@2iô?}?~–•@RŽ@ [>‚S¿@Í@b®@8‚*@>€-?Û; ?·Ã@,û@?©fü?}Ž%?ž<Ò?¦Cv?½¼%? +?Ôl5?àªê?Ò¯ÿ?à ›?‰$q?ZJS?ئÂ@CÐ?Ò¯?Š@0@‘Ï@[¡@,t“@Ö±?ÆæF?| ?²–r?ûÜD?ãô ?¼Ê'?ÀMÊ?ÂÙ[?Ðl?ûba?ñžà?È[?ÙÕ@0øÓ@%?‚?Œ®:@.¯ú@-[?{ºê?³ˆ@[#@ _?âu?Û3å?Î¥É?Ðëâ@a»@³¬?à!Ú?ܦ€?ÆEÏ?°ç+?Â߸?ËÈF?ŸÇÛ?‡@1@úÝ@1…@'1@©@AÕ@iv@3°?ÜnÀ@Ë£@OÖÄ@6úæ@ 7@@rt?¶xH?´r?À­'?·Ö?­†?¨wý@Cít@J;©@6Ä]@82N?̦?³Wå?FÆ?,?Àêº?ã¼3?Ù r?ßÊÿ@É9@ +Û›?õgo?Ï“ƒ?ߌ”@š?òr7?ÂÇ?Ç‹?è_?é—4?¾HW?Îg@"ôü@&@§@!N<@"Ô@ @ é…?š×f?t…?âdc@)µ?ð4/?æE@$Ñ®@Q¡@j€à@‡©d@Fý]?€~"?@q?rºéØÆ?œõ?Ãóx@ÉÍ@5x@&k3@å[?ñõ?¦‘™?·Ùã?èî5?ÐÔš?·)?¯ôl@ F@# ?›ºô?x†®@/@0ç?Ïɵ?r¸ ?¬³?Ó0?צ(?î¹3?Ñ„?n~0?a3i>îDÌ>î%U?œ1Ö?¢l¢?áñÇ?í¡“?l²Ž>óãÚ?˜úY?؇6?¹y?¢“?Ȉì@]ò?â>Ø>ìje>ìNî?@ÊÝ?J¯?{<é?}Ä?¤Ç?²,È?um?kSv?|®Õ?“¨á?›¹?£Ö#?ªõG?’Ó?Œe{?Þ^·?ê9)?Š?)M?£›?åñA?¤"? I?K`z?¸+S?Ôð¤?É>a?Ígþ?• +º?Áf»?€˜?k£?Mò?(øð?þú=@9¬ @rf?ã¼—?åh;?ØL?Ì—²?öÑã?é7…?¡—&?‘kP?Nã7?Fh?r]ä?¢ž„?yh`>ð¤7? µ@?·õÀ?Á5Þ?뜑?ãÙ‘?Çr)?Ê<>?µ›¡?„Ž?¶½e@0°ø@'@™?ªf ?££/?ˆ'’?Ž:$?ñêF@§‰@o?ù°G?èq@`@¤@K½@ Ÿ¸@ +t@Ÿ-?Ùè^?½òQ@$Ã@`ý @0‡?ؼ’?ì$?új7@ +?ƒKð?ey|?9ö?8õé?ÏUã@ýò@}@ST”@SYÿ@ ù@X‘?·–?Ç)˜@A^@U85@ ¯?Ê”?»Àí?­]G?ÏÌÑ@1‰@ þ@+kp@%ú«?üÏ?û…³?å‚?Ä.©?è.ó@ œ<@“Ó@ý4@…Õ@,ÂÊ@(?jP?jâ?0ÚM?%51?{Ï? ´›?[·ç?n ž?³ÂM?ô^È@Ç£@h @#m?âêW?öQ@œ£?æSä?ú…?Gðv?Â?SòÅ@<,²@æ@Ì@œ?pØ?o‡Ù?uDè?uÑô?Y™p?I/ª?o›?xþØ1?[´6?u}?~À÷?rk¶?£lî?–Ó;?¤åÃ?§žw?ØE?žÂ?>.yÃ>ãv?ªz?ò#C?„8±>Ì =¡È >ýëï>úÞ6=Ú@Ü>ö1ª>ìü:>ÀÈ­>ä>¸?K=EEË<“bL>"í>‚›¼>†’t?7uu?‚$#?Ø«o?³Ââ>þÌ>A”†€ 7?<‚/»? +?hdt?hS9?i)Õ?lëð@b;@W?Ö}Ÿ?ÉÛ?4¹À>¬Òi>ÌÒ$>í¡ ?1k@?‡ª@?Y8>pz2>–I>ð š>÷ª +?!ÃÚ?`«>óH>ñÚÝ>ò3X>ò†ã>H(=”(,=î;Â? W†?l&ñ?u'_?ƒB®?NzÇ>õƒ^?uæ?C~ç?Lý»?Vx¿?Uè?2yy?9?7¨?=/r? Õ­? ð¢>¤@>‘¹k@U@x?‚"Î?gHo? +µK>ù¬?Œ·>úŠ–?ÍÓy?ñ4ß?¬=“x?o›ß? >ùÐã>ž>?c¬¨?¥Ö?{ý?D[å?Eá>üæ>ü%’>ü?¿?‰Ô?)Uý? ´ö>ËÕ4?á7?d ½?“ˆ&?½Óõ? K±?pü?¬Z%?þ¨š?¨'ð=·À¬>`”>$Ñ•>´ž?:j?9§7?%ß%?„1¿?þB„?ÝWØ?~gH?_¡é>þˆA>þ–8>þ¦>éÕU>¨_ú>ã7Þ?\¬?a: +?eÃ?ƒbð?ÇuU?¹®Ê?wçÆ?j¾ >û¡4>ôi>ÿcT>ü%>×ò‚>Ø ]?}·?&^W?pÁ#?yíF?"Ÿ›?€Î>ãU>ˆ“>~Q•>¡L¡?Òª?È™>?–ùø?“Â?€š?|Ÿ?Ù?vˆ?¬¿!?±g#?ºîž?½3“?À0€?¼3?ø†e?ô”T?°ò ?«Â%<š>>úëÊ?Xì?TVá?Qã?MŒù?I3<<âXs?u¨ß?€ygæP= òÈ?rl?|·?€ûÌ?I—?Š`Ï? ?ñ ÿ?òÂT>ª¬>¡ù,?9#?rÀ?ðãÙ?íwN?§@:? p?¼k5?·s3?ë’?KO?ïB4?õoo?œj?–-÷?g¯?Sh]?Ñd?:? +iÉ?5¼?w">ðd7=’ä >²1?ðÁ?dõ?Ò?’”?aŠm?låû?­8?¿gÊ@$`@8`?H~âçx>Õkˆ?m.?3#?Ž ‰?eM*?„?bÈó?Ê*?ÛðË?ïV²?ô…#@¥ê@m@i©?¥‘>Ÿ-t?‡]i?ô^L?Ørå?»k}?_å?Dµ'>úäÇ>’Ùè?Žî|?å#Ã?ûG@/¬?žNw?!Îð?Ë/Â@ ×ï?àѹ?Ä©?ëÐ=?ÿ3?e¿m?J@ Â@DÕ«?´Š™?ƒC?ª?L >Ž}¬> î?¥6¹?®úÙ?–2¨?Šæ?a·×?xáP?Å»Ã?¿Ñ=? qñ?Ÿ!o?¬‰t?žtP>´ß§>ógV?ƒ•š?€Î¹?né>?9Á·?L|-@>ž@#ûý?Ç4?°ÀU?} '?~ó7?ƒÂ??NÆå?É6?Ô™@?z?ÒeÌ>°A&>‹‡ô>R·?3ý?ƒãw?^PÙ?Bjm?z• ?ÐØ?š\Æ?šÃ?›ž? ¿”?Šg?ƒú™?§.–?±¶>ÚT?vãþ?„Q?Åsc?Ç„?sAO?dÂÚ?ö¡?4 O?ÈŽD?Öœ¹?äH¸?Èe\?\àð?vd]?‘>…?¨xµ?éé?ç_·?å@?´º?R”9?Š·‰?±>x?Ç¡3?î×x?øK?ú;õ@÷Ò@ àF?ÂÛz?‰–è?üäÇ@"#T@ €\@|&?d¸‡?G>è#m>×]Ì?­È*?Æ*Á?Vij?4ì¤?[Qã?h—ù?„Š?ƒ¥‰?9‡?ƒÙ[?@Q6?IšÖ?Üh?ˆ/à>+À¡>7ß'>‰k?TT8@2Ô¯@%;?÷q?ÄŽü?—Ï?jÙ??ÆC–?­ÇÚ?‰K?ž ?²éX?eù^>Ðb}?þŒ?(V}?‹  ?¯/S@ª@8@?¦¥‘?Îp?ÍÔ@È;@*–W@8ÇC?ýL?Úæ$?7£Ž?³°@9CJ@S»H?ÈyÞ?µhŽ@=x@C?ŠFÃ?‰9?ÿî«?ûw?öø©?à)w>Ôþñ?.¡à@Æþ@Mã?[ûÙ?aYj?ƒaM?t¦—?@P?{ +?Äôä?Äìt?Äå’?ëÚÊ@÷ ?Û¬s?%žL?ƒ`ƒ?Â#?¡$·?ƒà?ˆ*«?Š>9?¥ý—?Äu?¡`Ý?‚õÈ?c –?Wk«?ªî)?É+‚?y£°?*Dl?Ö;ó@ &C@å@~h?çj³?Àœç?Œr?oYÕ?(Ç7?:P?–Ÿä?±æ(?HQÜ?ç]?äé@j ?õFÏ?ùÓ?È”¤?Ãi¿@Éj@á@B?ùº'?ºÁÌ?³Õ¢@e@‚h?ż’?ÃŽ>¡j'>ŽÐÖ?âyÃ?åÖ?±îd?§ú5;@C‡Œ@`gR@[k¼@SÅ«@K„†@7UH@)7.?¢¶P?¾²z@M´H@7&›?O”„?>'u>òÁ§?ÔV?‡à?‹ü±?åÎ?¦ @÷Í@‰_@Zeý@B&?KØÆ?Vb.?¼Ï*?µK8?€¢Ñ?„‰?žäp?žëé?CM?e:&?°ð§?¤@M>¬ä>Ê—?i‹?‚_?¿M?Àe>?­|?ÇX‚@)Í @ ?gè]?p…²?çÚ&?þ+@Y@JÒÐ=$!=Ú„®?¿ºÕ?££?ötw?ñ­?¸í?Ũº@ ñM@ !Ô?ÿ ?ÿ?Ú%ú?áÚj@žŽ@§I?²\?§«ë@ aŸ@;9? à!>–jU?1ëò?&åù?ä¾$@³#?˜a›?†F?ð@(?œâ?}6?æS? †@?z´–?–É?´ D?½Ó•@Íh@‘?¬%I?D3C?]±?±§Q?âb¡@Tî?ÙSx?¼¶þ?ÂZO?ÂtR?ŠuÛ? f?\ î?ŸaF?¾cN?å?ë?Þ…ã?ØÚ¶?Ò–?Á ¶?×ôe@ š?þ’j?X£µ?VØ@?-k@2‘Þ?3õ)?I‚²@:.¥@4°@~.@o??É‹?Êþs@ª9@à,?¬B2?«Þ?…¹?#ï@ rä@;_?ÿ™ç?׉°?´ ?¥V‹?Ž4?xï+?xÕ®? ?å¸@'q@7á?˜‘?øô>@NYÃ@=#«@ Ëü?ó*1?‚ÆÓ?¢YJ@ÛL@]@Ð @×å?ØÇ?ÎTé?üa¹?øÀK?ô´Ã?ðú7>ÎÙ…=ÄSr?ܨ@ ˜?²"L?v1Ò?é9Ë@º?ö„Y?Ç¢?©ê"?u—0?©2«?ÿAd?ÀZ=ʾ>‰€?·¾á?´O4?˜¶R?¢Å?¬Ö1?¶ì)?€é/?eP)?\¹?NþÑ?×›G?ñ©Ú?ÿ=Y@§\@{ô@Š\?Ý¡¡?©Ö?Øi?†³ˆ?„|?Ö?™»Û?²'?»Kì@!Û“@ë£@*\Ö@-‚<@·~@ ¡x@Ý:?êòÕ?Ï Þ?¼ß¯?Ñê8?îµ€?ãj?¼×?¸šo?Ã'Ž?¯Öô?Š¡Y?†w?Ó¿!?å×M?¿«Ó?°öR?Ñ]D?í!ó?ÎÒ¤?¢w¦?Êsx@l +@->ì_G>ìA³>ì&>ì¨?¦žø?¸ó²?ý|‚@mã?Çß8?kH"?Ézœ@&ŸÃ@ 4–@#€µ@µ?•<ˆ?™I+?°ä/?¿s9@/ô@? @AWç@f@³À?UW?^¬™?‰º“?„Œ]?ÎÉ?É£Ì?ÅHÆ?Àæ#?Ò#û?ÞÃË?©‡}?h`J?¾ò‚@ _@f@3•Q@,ô"@}@OP@g(?ûÉ @%õ·@Jwf@ ¼p?¯Úÿ?¢?}`ü?ž @;6Ð@6 —?­“?m?ÊË?‡e(?ÄÇZ@ðY@E«?md?j´…?¬ea?¬[i?¤’è?°­P?É«ö?Äñ”?êh@mú@rŒ@3¸¹@1Ýì>í^?í=>S€A>k‚Ì?=ZA?’„Q@/¿@†ª¨@V1?še?·=Y}(=zG?nŒa?’=Ó@”¢@A¿@?¼¥@z«O@U(¿?›ÿ;?k]¥>G*A=)¶ ?PÛÆ?eyä?QZÍ?@cR?þÔ@H÷Ÿ@:¯@žH@:Ö?ÞÌÕ?ä/‡@'°@!6n@3ãŒ@?mì@S@–}?Ó +G?›ó ?Ò@@:…=@E>ª@-Ðh@-õƒ@ – @þÙ@ }@!ˆ?âIœ?¼Ò?î~Ä@:ÿ@ç¹@/Ž¸@$.?Åwè?¹ë?®Ré?¢¬H?t þ?lÊ?sá?°A??°;&?²Z@B@<¹@”?Ñï?ª³?è$?yO?m¶o?qÖû?™'¢?ž8L@8Öp@NW?à ?Óaš?0Ì>?qJ?©»a?­‘V?€ë”?vñ¿?D3?HFÂ? +»n>ùaã? ØD?·^¨?E˜þ??9ô?Mb†?@ +?2/?$60?PZ2?*?yÚ ?€÷ž?’1v?—u˜?& ?—aÀ?Ðã?¯š[=0Ùñ<ˆE=µv?:cÅ?¼ƒx?œã?^$÷>Ë+@=õB ?xx?€ö?U0³?Ë=Èh2>·ç=¶H<·õ2>óP‹>Å€[=à(>¡–í>ÆÛã>ìž??Ê?£{ô=Ŷ=f=ô‘¶@hNñ@0j—?ý +=ª¢?˜¯Â?5}ç>2o÷;ö¶?Z,?\u?3í<*>=»Cb?„Ðí?‹ò?<Ù¢?>„ú?‰\?4Û?¦Û>+0>=ªÁ>P\p>£÷>èÒÖ>ôµ1?)=ä?!Ô&? šf?+zH?ï?l™?˜? +š}?TVJ?k¯?v©m?s 6>¹Ãý=“ó,?O¤ƒ?®xj??Y´g?yëu?“cœ?Žëk?ŠpY?dyÇ>öÿc>ôƒ?HÅ?--?­h`?ŸÎï?'²d?2ã™?Y„?^zÎ?Ù0?ý>úªÄ>ù¤B?«Ç¤?º–?0@3? ƒ?S$Ÿ?Tß?€—W?‹~ú?UOÀ?0‘?}Ë‘ú?Zžñ?®9ª?FW…<Îý^>b8Þ?#¨?ŒÅ5?æls?²`+?Tg?zM? ©?‹à?W4¥?|üƒ?®ûà?—™ñ?8?*݈>þs¥>þŸ>þ“X?ŽÓ?ÓB>ì‹®>þÍã?¾?Ï.?Pù³?Þ1£?ÈØ?þ}? Â?}wB?Mä^=)ež>Ÿ‚>ÿd—? Y ?£-ó?‰Ê5>`>¼«X?Ñjä?¶O>\„Z>‡ƒù>ÿÑŒ?˜˜?Ѻ:?Ö–Ü?¨Ú?¥À~?Z˜¨?[=Ñ?°?6?'ÉÁ?%\(?…©?†,Ù?½ô?½¤|?‡# +?‰E›?£K?2ì?Ï—]?Å¢9?Ÿ7¼?›å¹?Ö¨[?Ð4 ?3}?8iO? +ØM?>?Xp?€Bn?Œ‰×?‘ˆA?7ú?€{?v[?Œ3?e+ ?kÙ?Tf?š%?Áܲ?Âúý?¿´c?»Äÿ?{TÊ?s‹s=Ƽ=³ç7@ØO@ úŸ@\v @Yë?‹QW?ˆè@?"~ò?*¿ +?FQe?@V?N|"?^D?3?ÿã<ˆ ?ñ?T?‹ºˆ?‹xH?·øó?»œd?½Å¼?¿íN?5¯?Ú&?€js?3:?¢?E–?›†B?ŸÓu;áük<&H?VºT?VóO@‡«@`?¾d«?ÃàÜ?äþ®?ßžî>›ÄÒ>©¡Q?œ>>ù„W> .˜>{ÛŠ@ľ@ù¸ã?,êÄ@B?äTð?A$ù?Ždy?ø^Y¼?U©%?Îí?œžW??|ö?C¹?7Î0?o»Ð?š\ø?£¸Ž?¨a¿?~ä³?BÙž>©U}?ï?g ?Š-?—Ó®?Ù~ß@g·?€ûõ? +Þ?À´?´R?™`?‹Xž?ˆ™­?ƒ3[?¾É?Ó!?¿g?ƒ<¢@‹@#ÿ&?q­8?A+|?N¯~?Y ?Ã5š?Äõe?c=S?X[?¡ðú?­ Æ?âªc?ÜM¦?¶‹?šn >(’K> b§?ƒ‘­?p'B?õ±?W]>‡™ç>è'Î?ƒ¨þ?™€?Å;µ?Äaø?Àë$?¦Lø?ƒ½S?°™®?àO(?ø¯ @ oé?æe,?±›Ç?pŸé? ÉV?]”Þ?ƒÝú?ƒßî?ƒáð?T³ ?;ª?ÐÇÜ?ô +?o:n?*,i?wNÀ?ƒôŸ?*ü?MB=àU=MÓ]?ƒ?…Ö7?ðš?,_R@<«@/øs?´5i?› œ>R§?>µ8?l‰·?ŽÆ_?Ç%?ÂDz?Æ?Îüm?äP#?æo¦?è“?¦sP?P?r¬?Âó?t|>–ƒh??ÃÌ?š‰Ð@O@,~?ú¡â?À)™?•‚xˆ•>»!,?ÁQÒ?¾§?Æ Î?»úé?ƒõ%?}ì/?„Ý?3N?«^î?¢A?ƒù?³«ß@Cá?¤~<„¼>ñ‡ó?ƒìˆ?Ví›?'Éq?µl?à¯?Ý?Úx?‘E¤?Å¿:@"€ó@E¶±?õöÆ?ªûÃ?ìé@ÂÉ?ø¶N?ú­1?Ìâ?Æ>?™_Ñ?‡Y ?Üï?í`î?1zw?¨@Æ^@,T@¼Ž?ún¨=ÅX›>P º?0²Ó?7}?w?hHa@E#Õ@0¢R?°(?¤^?ƒZÔ?…äü?‰4?—Ñy?Äë#?ÎS©?ß™Q?ð+¨@ 8??äšÆ?ƒ'Í?õÜ-@KÆ@ž{?”Mô?Ð.y@k?æ²?Ä’?|2B? ø¹?Éâ¦@o+?ìs4?Òì?ñÑ…?ùûK@Øp@«@" Q@-[_@ è@ µ@?û.–?¼(?¬Ô/?‹’Ž?‚…?jâ¯?iŽ;?ÛpÃ?òÉ ?>ÖÅ? +÷Ž?p­??½‹B?Îe?˸+?Í~t?A5¦?=Ü°?„æ?®ì?¢ä?ÃN@-q?òëÉ?Âä@?Åп@ÿ”@¼þ?Sá‡?m8@ JP@D">c÷ž>¶^K@ H@¶M?þŽý?ú"J?Å'q?ãÏ9@DíH@B þ@&íð@"®?ógJ?íý»?åüó?ó´5?÷ãg?øÃg@ +vQ?òDH?™ˆì?ü?cϧ?…è@òÛ@à«@2– @-²@ ŒF@ƒõ?Š7o?t» ?à„?C.?õáì?Ý-´?k¥Ð?jüê?€|ù?lÜ?mÖ? ••?LÐé?EÐâ?>f¢?Sù?“õ +?‘À?»ó¢?Æ?ÜîÐ?Ø“??ŒtÀ?š{`@¶ +@³í?½Í?³ÈÙ? á¤?=z¯@6ÙR@3œ"@#|@å»?Œí®?—+U?‰wº?‘{¿?L7?~×5?ÙìÖ?ØÛ2?ý ?þ ?±× ?¯Á§?ø=µ?þ@Ú@2¢@:ZÕ?ÖöÊ?¿î&@(ü'@0‹ö?9Þg>Æâ?½˜;?ÙÌG?Ôé ?Çéþ??–A>ý:q?™Œê?½Íù?×^?å©l?¿;c?«í¸?™oh?ŠQX?ÜÕ@ Û?ªš¦?JÍ?ý +@RRl@ú?§M˜?½1 +?Ú¶Ä?ö @'V?Õ^Ä?(MÖ?tùR?·³w?#@>¹oj? aß?•e?€¸l?M +Ë?’@6v.@-Ž?Žk?bÈ?È…t?Îi?»Êm?»˜ +?ŠoO?“š6?Tõr?C5›?2o>ùš´?Îl¾@„ì?£k€?y?#?I:å?'¨Þ?z+ã?Žýw?ƒ„?x´?½¬@$ó?ô?Ürµ?¿0?¢õ ?Ÿ=?„)Y?…®Ë?/rA?Læ?Р?Æ{0?Œ=Î?‘§e@/K¨@2m@5š@8Xc?™BÜ?‡G?™Þ_?“çô?ÅÄ%?Þmz@%P@ñœ@+·E@GIÃ@ +Á?‘ãý?†G>?uÂ?®ÿÌ@ +dz@ O?õ$£?èÆ|?·¶P?¶Ùg?­L=?¬k{@Aƒ‹@7?=@ Z†@²I?ù.v?ô8?¼Jä?¢é?Xµ??¦±Œ?ÿß?Á†Í?spL?ÇW@'9\@'å@=A@.̨?¤J’?®u?ò6I?ò¦?h8”?klN?À²W?Õ‘ú?Rhe>ñlÊ?‚@j?µYZ?š·?pùþ?Š‘ä?¥å£?­3ò?¾É?¸•¹?ó$V?çˆô@?­è@=»!@±Í@·7?ˆwí>ë÷?»÷®?Ü”÷?ÈIÅ?²Á–?”>?kBŸ?Ÿ"“?ðúÙ@²ý@Hp@GàØ?ݨ¾?Í ù>è >³•¹?Ôé@ çê?ái©?»x3?½þÜ?¤Gq?‘Q?A£Ë?Wôg?«÷ ?´eõ?¼Þi?ÅTÒ?Èì?À„Ü?™6?ki¨?ŒŽl?ĵƒ?Å«‚?›‰÷?µ·Œ@„Ws@Ì @ÞH@ÌW?Âë_?—é´?¹¿?ã[ +?×v?¦»v?¤É»?꥗?ü«ó?‰^e?ffo?·Ë??ÓØ?¡ƒ?Dôr?lA_?á0×?ä¢í@/Ì@~,?ËŒ?º·ñ?èE@59?ÿØ?ü½†?ðiä?§.{??ð?áF?ÓOÿ?äK?ÐIö?Ÿ)!?„#@"¬@‰«å@g¢x?ù`?úf¹?iïO?^u¶@V®@YQÒ?áe +?¥8Ý?ùÒ^@@’F@)µ"@-Ó?êñ?å$'?¬’½?¢Õ=@ ”l@»·@5l@Vž @P‹@L·ð@A²ª?²¬3?­Ì€@D«@E':@ @æK@§@¬Ó?ô²%?ÄÜú?ž"ý?giû?Ž¬@Hk@EÆ¥?¶0ò?´è}?ÞÍh?è¸h?h“2>±ß¸?v½G?âŒ?íi¦?ú8,@(O@Bø9@5ƒ?´ëÂ?Á!?}C¶?lF?yA>ú%Õ?­4 ?߯ý?Õ•?ñƒâ@!Wù@=¶h@ô_?Å<´?ÖL/@xr@(é?â`?Õ†¾?•^å?Ÿ%/@K›@܇?éÊ?òG@=Ý@ gn?שi?Ã[¯?Q‘÷?(õ¯?žE?-½>ý7? ›?ì„6?ó´C?Í¢é?¼õ?c‘Y?]!N@ƒ@p@z7@I™?Zi?y…l?3? X?#Ü=?0 ?‚8s?WÍ?Æå?…á??Â`>µP‘?>f?xí=ÓŽ÷> r:>‰Ú->èTb? 6à>üö? ß¼?ñ¢? ˜? jj?MÊ>¾Ja>›3>o_9>¿Š>îL;Ö=yÌ=™ŠŠ@^H@HÊÄ@`L`>wŒ= í=·'=^°²=‘~>óÒh?ä C?̤ä?Pû? ƒ?Rƒ–?Rg|?8?ð—Ø>•nd?5x?ƒ¨?Y=z?6“ˆ?J”W?p7V?Gkæ=“i-?‡¼ù?…¡??^9û?bzs?íS>óGW?Çæ‰?ò©Ø?™ï½?_ëŽ?rÖù?„G.?š‹Ï?©ÇÉ?…ï?G#?PŒ0?Yò?*ÃÅ>bŠ˜>6¹>„Ýþ?®Þ?Ÿ§>W¸>HÓ‘?9G7?0¾?c°?h€>ãú>êhs?p ÿ?{y? ¶ß>úH¢? ܵ?§þ?hÌÞ?zãP?2bK?#S\?f›6?{r?ÎñU?ôä4?ã2;?ßîr?•d?_r"?¢Ñ?½Iý?NÒC>¹¨³>·†·>’tš>ê*«?63?5Ê? 5{?Ü>ý]|>¤¼§>:ì?“Ì´@þð?Æ[&?:ˆž?[„ ?}þÅ?]‘ø?.ö±?úI?÷lÏ?ÍžË?þç>Í.˜=Ýï•>ÿX¼?4A?¿’"?£éu>µf? «?­¿O?¡ÛÂ?¼?4´z?Àa5?®>?n½e?Yt3?"¶±? À>´\>íÉå?Ž‰B?“~?µø?¹=?À*g?´8¤?âM?”?½˜?µ¶.?q2$?`c>¿Â‰>ûµ ? ?½N?|ŸÄ?†÷é?ŽZ“?T?Åáä?ºâ)?(?!#?4št?2QO?€xÂ?{ãb>»B>Æ1%?‡½?Ü?#ÇÐ? ¬Æ@–?ÿ’B?Ð|?ƒ³w?¼‹…?¹Ìs?^ÆA?T¸£?hå?zu?¹pe?Èû‡?˜ø?­(?Uä?WÉ?€ný?€y\>rçÌ>aÛô?3ã?1fÃ?+~È?ïG?=©?H K?´¥Ó?¶K?q&?uI,?y•‘?y‚N< 3ï='OÙ?;‘?)÷?póƒ?iz‰?dÄ?*Aç?½…N?­®>¬Q~>Î\?ŽF?‘²Î?=‰J?Në]?ÂFú?¶P<>R‰>Z¡F?™V? {â?lš÷?UÀ1?¯’? ¦R?p¬ä?XO¢=%ÆR>®ª?ʱ?‹Í_?Æ~T?Ò!j@èé?á¿”?ôÞ?8‡Ë?ÓUÎ?¸Ìµ?$qe?u‰~?â#K?»¾?<Ó?~¢í?çÅ?æÄx?Í Y?ÐÌ?ÈÉE?oé>~p?¼B@4gŒ@ ÿ?îíV?Ãn¤?iîE?Ùb'@=^ò@ ¹?‚ˆ¬?} ?kÜ;?{V§?#ü?œú?¦Žä?ªæ?±#?¯î?­A?¸áÄ?Ä.¦?q1Æ?ÔÀ?'þ?2TÔ?o[y?‘K¤?•š?™¼D?q„ì?G®‡??T·?6øÞ?}‘?­”?Ñ™v?ý‰@!'@"·?^`I?I4@ ab@Ub?¹Rq?µíü?‡}Š?ƒN+?xN?Z'?_^t?oÌ?ÅÛ?»¹7?ný? ?!?›’?¹­æ?­Üy?.¯?ON´?¦Sf?šå?ƒ•3?©ÖÂ@ž¯?Ü+?ƒ§ ?ƒ©“?ƒç­?…º+?‡ØÏ?»¶"?öÆ—?âK¸?Ò0?ÔRÔ?ÖpÏ?¾š?­Ç4?¯Ï“?¬‹Ï@€@1·?¹‚­?ƒà?™ìÊ?Ÿøå?¾7Ž?Òg?‚ç·?`˜‰?dÖÈ?i#?¾¸R?»Þû?!h?å?µ¯ +?¼@Ö?… ?s7)>GºA>©hË?%¢7?YO ?Õƒ +?°‘Q? “?O˜c?Û>X?ãÏ?î¼R@SE@¢j?ÞM^?K}ð?MhØ?;ÐÀ?h?ˆØÌ?qÐ?a†ð>È>Þ²¿?/;‘?\w?{+;?4ii? ú$?Ô¤@€@K6@¥;?øï?qÒ˜?n|à?Ý?hí?`˜`?Y¾?uªÆ?Ó£‹?ÌC"?é‘?‹Z_?ÉÅ ?ÑI·?àÞŸ?Ý'Õ?Û¤?Îç?–')?ŠL1?Vèÿ?mA&?–êY?Ñ(@ÐÇ?ôÉÖ?ƒž°?ŸC?ÁÆ +?…?å†?ád?àÙ?>¬›?eKu?¥©š?Å»Ÿ?¡®¡?›Å?›¤Û?œò?î½@Àb?¶Šn?žrÆ?Kvë?0M’?ô—«@ ÃÞ?®;‡?ž‹T?¤ÅW?ž©m=ú…=¿Ž?ƒ ?—ëy@]@I¨7?·&ë?ÑÅ@CŠß@>jÏ@E I@0™ý?Å?ÉÞ8?ÔÞ¼?ÍX"?Äù¹À?øâ?õ“?ëf?{Ž=?‡Œ@.F@rÙ?‰Rq?ŒFò?–Å3?‘ ]?ÃÐ?ÃU¬?"ˆý>ù”ñ>ù +>ùg7?Šƒ?žˆ?°œ‚?ºË¨@ ¾(@/@Iu­@UÆ­@P®ö@Mß-@=Íu@,N3@<”?‘ÂÖ?ƒ¬F?ULÎ?ˆ«¤?ôI„?ôÏ«@?B@"??ëê?ãç®@¶½@r?úÈh?÷ø\?ñì +?êÛ0?ì&b?ê$|?}ƒ–?FÓy?˜5ä?¼­ì?òB@ nŽ?ú‰^?Ï5Ž?â»1?ìŒ,?¶«ÿ?u^;?˜žš?ìt0?ÜÞï?|L5?£·Œ@Z±í@PeR@¡@ ž?ø1Ð?ô/V?ô‡?óùÖ?À`­?¸q@åS@%4­@(Â…@0q–@ +‘Ö?µ_¢?á9Í@¨1@’À?†M?˜¦³? Þ?žð?Ò^?ÕøU?QÀÄ?'¦{?œ0?¢?:·W?Ƨ>÷vl>öžb?rƒv?­Ù?›˜8?‡PÆ?Š²_?•R7?±é0@l@ í.@/†;@5Ð@Ðœ@S1@ +E„@=]@oE@t†?°YO? WÎ?¨¦å@ð"?ãtò>Í2i?éÃ?Ìá”?Èæ\@yš@eÝ@¢“@ ”@%¬^@05B?µl$? v?†³O?âo@@+å5@%@Ñ?Ç„æ?»v¸?CKk?2\Z?‚ÖÕ?ƒòq@ºë@L/?÷ùJ?k9c?­¸ @µ@C¹@0@"Î%@<¢I@:yè?)G>œ…I?Ž 8?´"H?ÐÇß?æž³?“i8>‰•x?7½?‡?xá+?-E\?5µ–?–¯A?–Yì@"”@®S@ ?æOý?ÏçP?®0?¢.?Eâ°?=Ù@jµÀ@xù(@Õh?Ôx¼?¨õ—?kLä?XS–?kس?¼2@ Y@t6?ÖlÒ?ÑÒ¾?î>{?âYS?é}°•?îã?ò´6?ç‡r?åœr?å”ë?å…†@€‹@…½@Ø@qƒU@jë§?m å?€e»?½4”?ÍÉ?––ò?ˆè@kÙ@w!(@>y¥?NT´?fvð?°~u?©@e@Ž(@—7f@ R?}SX?Ùnu@’Ç@:?ȸO?ɇ@I¿@%@ +]h@À@U/@$*¬@6@Ñ@1<@¦ø@ Çe?ú@¯?çô~@-:×@1°ó@!´ @-@=>?æÏŽ@ÊU@;»@!í=?ˆ Ø?Š"@0¾Ë@3­õ?«ò¸?—q?Ôû?è°í?ul->—1>²çæ>ôÞ ?K*£?¸Ú`?Êy%@ œ¾@s‹?©BH?•ù?……Ú?|„?¡ŠW?«ïù?“ ¬?”œL?Žf?wÏç?ÌUP@)6…@!Ÿ½@öý@Ð?¼Ô?·[?\©ú?n3?ôÉå?Ü7­?ó-í?ó³)?‚!f?y +‚>¬ë?£?À\Ù?Ôo‰?ˆêÜ?x”?x»?y[??ô.>ú°?“?'?¸{?ô;Á?ýa`?|ö;?<™X?á¶Å?ýÌÈ@f@`…?] ?‚ý?y¯à?dÉr?ƒ?dÝ`?Ú?uR>Ï%ï?}?C6t?T:q?#Id>8í|=5+>òÉ9>ç³>Ç0v>ë¡•?RÒ¨?7@#? ÜÎ>Mˆ¯<0 Ã?Ûm?oÒ?jq?3>°my?kþ?¼´p=wm> ls>æûZ>)+=òpþ@Rš@Fä@Nß>R<?N*2?ãAd?µH ?ló? Vv>êÛ>ëø>6ù@>Z$Ÿ?€'Â?`d?$8?>íõ‡?uE¾?®PN?_€|>€yé>üær?pF†?:¼/> v?˜±S?›Ž¤>Ë¡¯>Ô´¹>ñ¸>óRØ=©I=5€?<†­?t|ñ?tÁ?u ½?Jxö?6C ?JRÁ?O4?J¹|?FTj?³z>„ ±>%Ÿ´>9·*?+ß ?'lƒ?"þÝ?3?©?œÃÓ?–|ü>Ͼá>Ûl>ŠŠU>)“Â>ýZ“>ý „?o£?o-?k" ?f²¾?¨A?­žs?‰E>û!&?bÏá?{dx?®>E?¼¼ø?<þ?Hj>ó€¸>ÍR?]—é?“B?ÖÔ>ÉÝ?RDÔ?¥cR?¯ËP?¶!I?²©?´©4?š½?zm?· $?åã6?º™z?ž ?Œ‰ô?_è®?k%«?}ê÷?š—·?¶8¢?ªŠC?¢3?’“#?~R3?Qæñ?Ç‘?‘c>­¥‹>ûôR?\-j??ë’>þÇ>âÜ3>…Œ{>Ûu¸?w/À?2^ß;ÓÌ‚>ÓD¾?°)m?œoö?l;?Yý?7~±?1Í>ÿo?Im?‰?\£5>Ùò ?(Iö?¾’n?ºgí?ˆ&?Ð? Ô'>ß«˜>°>¹Ú?¿ûé?µÖk?€P?‡3o?´1û?¯‚?yÞt?]¹2=R.>² ‚?ñ–?×›þ>Ñpª>½ë>€Ð½>Ú¾?Ã(N?¼Wû?Àt1?»gu?—¤%?·Á?uuQ?_M¤?Lû?XœG?–x¹?‰Îˆ<¿ÑÞ>Ë\†>ð#Å?®›7?¶›s?÷ŒŽ?ûÁÞ?ÿÜ@I@¬Ÿ@ªŒ?‡?f|?gû?^ñø?¿”?ļ?ÈA?ˆ®>§£L?šóÄ?™Sâ?Àª1?Ã.÷? ý³>üJ1?g›œ?h:Ð?A? Ê?Û?3d?€»­?zÉN?3æ?8D?=¤?€¨9?iJ +?rL[?ÒÞÍ?Ï°N?‚© ?Þ2?¶¶`?°bì?ª ?¦:³?Â<™?°î>˜X…>Å/C?[nµ?i>ø?Ì~b?¼èÃ>Ë1p>áã`?YY?Éh?À>Ù{<3G¶>Â!@73?óñð?ÊH1?Ý^ó@ Ü?ñ°¥?‘Ú˜?’rG?†¸9?‘e.?Êÿ’?Ôoê?Ó,O?·!?Á¡?‘>?º»?­I?å¾€?¬/>µ|‘?jÀþ?õ¼?Á˜?W+E?˜P>,áœ>¢²r?‚]?>÷½?‚.?‚‡)?‚Œ!?MÌß?¬‚?]Tì?ßw?áº@ìM?ëÔ?ÄÐ?ÛÇ—?êµ?¯A³?†*À?] Õ?SVÐ?lÚ•?k*? šx?ð¢?ƒ$+?¡%‰?¼“Ì?ć˜?‘µ¸?ƒ‚?z«§?{û~?‚ˆœ?ƒj‚?4V?,M?Â-Å?Ô¿ü?¼þO?¸·Ñ>†ÇÞ>„s?aÁ7?fþd?í¼Y?ÜøŽ?nÅ’?l*Š?i?¾±?sº­?e·?lƒ?k>Z?ƒ‚b?£’¹@ŠP?â0 ?ƒ‘Ã?Ÿ?á78?¿¼Ë?rÛ?q‘?…×Û?ŸM™?Áé«?/Ò?2«O?4Û¾?3â0?—å?Å£x?‚–i?,¹?Mœ?fˆ£?¥o[?ÊRÖ?ƒ65?F~?®I¨?ÅÏê?$~ý>ÂðŸ>ù°N?éÅ?#é?#Çã@>ð*@Oƒ”?–ÑÈ?ŠU¥>+> >U­5@_=?ëRÃ>S N?¶?þ?¢ù¬?LÃ÷?u3?¥L¾?žKž?˜©ý?Ëcg@Ÿ~@J@¾?ºª.>‚Œ?P0J?¼Ðj?ÓU7?ð•?ÁÙë?‘m?/‰w>ºß-?woJ?¯„?Y Þ?%?¢õü?Æ?”ßž?ˆ3 @dR@!å£?Ðo?»p-?­À?¨-ò?.N¸?*¡:?²i;?°¼@,VA@#͇?À¶?¼v +?„s?‹Jí?µþÝ?µ½©?šý?™ßô?  â?”'@ôU@ó:@ð ?ëh÷?ÀB´?«4?‡½…?„×á?‡yç?ßá@ð‚@ e?â½|?ˆ·?%3ý?B ?XÑ?´Ì[?Ê),?›ç1?‰ð6?ÏOI?çÓ ?äR"?àÂË?‘‰?ƒ¬„?ƒ§ç?ƒ£J?ß‹!?ëTæ@#u@#à4?jGÍ?ty8?‰:%?”Îÿ@&v @'…»@Ƀ@NP?ºv\?Öç€@Þ@ Žr?Å ²?Ö7@Ss?ó¶?Äì`?Ãÿ?Ç9ž?Ô9?ÖQp?—VÃ?(¡?ˆ@1½È@Ê°?ø .?ð{¼?á@`?Ëñœ?¿zB?Á¹¥?Ä*¯?殟?ø@2Ø@R²?ßó,?j(|?©ö&?¼A?®Øs?°Šˆ?A‰?‚¬g?+‚?¹Ü?12÷?;§§?"Œ?R0?¿¬?Þ{¤@@ x@AL!@HzÎ?Ëh?¹?Çë¯?Å_–@Y¤@_8É?Ç*¬?¹ßR>õ&î? «?Êt?hÒ?‚?cÁ?P+?T6?Ævj?¿µ?ŸU´?¦ŽŽ@ &@3>?º-?—ô>@5·Ý@5_3?øù?û[á?ý±Ú@, +@\8?èÀ¡?Lô9?ŒÏ?ù!6?ãÕŒ?O?Ž6o?Èa,?½w¡?©º? B*??e?„¿°?—šN?Ü·ß?Ïó?R¾–?/ã|>w[Ç>£#•??ƒ?€vf@ <@ód?€gž?l?Ú?šv?"PÕ?ž¨?ž× +?€w;?Œ?Àš´?±#©?NS?0Š±>sÝ>×l—?£´A?ž>á?]Öš?†¸¸@í@?òõ?ùÛÍ@>ÿ@=m@x@@!1Š@;?‡ã?Š}$?”?‘‚g?¬¦,?®8ä@ …Ò@ ô?—±? iE?³Ïß?© G@g¾@öõ?²>?œð?ß³?éóÌ?5´™?Ö"?>ã?í?i?pâ?……Ò?Š¼ô?ÄÑ£?É6ƒ?ŒÌà?}WC@ç @,wí@ +ôŒ?ýP?âÏì?ÕLq?ŒG ?X³£?la?a@c?çË?¯â@?iƧ?ï?Ó`?¸C´?Øñ˜?ûó”@~E@,”?ùÌ?{£°?r—6?lÒQ?c&è?/žŒ?X>£?´Þ=?–F?×Ý8?æKå@B!?ù3u?Á¼à?ÆS?ùĤ?ðÜ +?È @?ФK@#Lå@F2@ûD@¸•?þLá?ù·a?sÕ?qš,?e^?YÐ?ÕS?ù1Þ?à‹‰?Ðub?u4–?%9?ó&ž@;@­@K…t@YpÍ@3î%@ +;@%‘m@Eª™@W-?¹ó×?ÚÛë@Ù_@EÈ?ðûí@ô@9…§@;e,@R€#@Ja+@„$@„?3d?d&@å<@Óš?–ë?PVÏ?šÌ~?©s?ÙLŒ?ð˜¤?Å—ž?±a'@Fž@sô@7®(??d[ã>õ´>úOL?s?-b'?ì[?øiñ??’ñ?MN?¦ªD?±#µ?·ë\?¾µL?m­>¤à!?þ¬@;ˆ€@X\?áÖŠ?¸,Z?u†8?óu?‘>b?Úî¨@>9 @R{?1D?5Rá@­Å@zÞ?Ťé?È}Þ?ôT>@Ï•? *G?qaÐ?-n–>ò(Ø?;#Ì?€v?‘Êš?¥3„?›ãy?‡€?ˆKæ?´%i?¼=@;Ë7@0…"@9•A@GÇÞ?Æð_?ƒ@š?sɪ?oN?—•˜?r%?µ¦?êO]?Äþ?ù?)õ±?î+?íÚ„?Ä{Ú?À‚W?ðÍ?óéi?™l•?uû?×ñÉ@™_?Äê3?‡ Ã?£n?â{º?ó0n@°@v‚?ž›?¢_?Æûæ?Ø/ì?™Ý1?wEd?}Óo?k2?†&?©mÅ?Íð @µÎ@ÎÇ@]ž@#“8?¡øâ?–¼¢?àáö?ò Ì?¨°Q?xiM?…‹?¹N?½´‘?ú_?êñè?iK@?X¨?‘wÉ?§Z¤@2Uý@S?âúN>ñ#B?¡KE@ 2@Og?O4? b@ø@ ]?§-k?‰;…@•Í@.™b@Ý.?çS“?½eù?3 (?cX?æ›À?æˆf@ æm@Ét?ÇÊ?šÚQ?û£‡@8'Ð@ý'?cO¢?`öë?µ}?ºù?t +?~½?Èàè?å‚>@ÃÓ@Z&@O@ãc?êãÖ?ßBƒ?Õ–=?‡½9?„ ?!¸Ë>åi@ |x@yVÊ@>”Ê?Zvý?^G=@++ú@&~@TeY@cs"@7\@@Hð@ qj@i_@]ã@Ü¢@²4@G¸@P@Uì@`!?äiÖ?׫Ÿ?´áe?‹ör?Èî›@9y@%¤„@eÿR@d{?Ãÿ=?ÍÏÜ?½Ü¯?ʸ>?½Í?´ø‰?ðû’@j–@ ªF@FZ@GI¯@G:Ó@D“s?@_?Ê©@ Òè@!ïN?ì*ß?º7ÿ?®ø?­Lã?Ês~@º–@Q@Dõ@@0¦?¹ø4?Æl?¨YÎ?ªN">ŸÅr=ÃzÊ?lk–?¡·+?ã]ï@z?òÁE?Ø(›?¦Kê?q?WfÐ?ë4Ê?ÈaÛ>ñJc?'·ô@&-@…Ê?Áfz?Õ*?¸?µŸr?Ÿ‰ñ?‹!?sZ?˜-ª?SÊ\?Qô?„@~?‚pU?N_>ú¡ä?ä?'¶b?Æ܇?áLº?‚!?•â™?‚åö?Wq?Äé‡?Î-è?Zä?}½@?]{?{S®?Q"?SüN?¢u?-œ”?i? +‚Ý>là?nXÒ?ÂæL?xYo?ÛÈ=‹gI>­? ŠL?4ñy?„`?g±1?F?÷?~@? ”e? çÅ? +>Üß5>×k¨>Qšû> ‚ê= à??—?Eá1>¸d=£¤t=„¤?üÏ[@ã-?ý;B=´a?à<>š Ä=™¹<ëf>êÝ>»Zâ>²¯ ?Èô?Ú?­?}zF?>ç9?0}?/ÖK>ïJ>X²L?±À?ŽÒ8?VÍ’>JK>$r¦>»,>¡F>[àŽ>%6>í÷“>ób >ózÕ>í…ö>þ†¶?§ ? ^O?o?é·>õœ°?A¶M?v?N?–?,n?8Óï?<¯ +?8+=?({L?7n*?wé¶?“9]?ÈVd?§Qò?bN?YI>ÑŸ>Åx@*¶@*+»?wèÍ?zd"?¸*?µöv>@i>"û‘?á«C?ì?(h>û,?j!Ì?{]?“&p?š>$>èZ>o¸?"[~?I"˜>âA >¨r>æüè>ü€h?¼!?G­?>RÍ?_ )>¸þM<½µ¤?¾››@·?Ï&º?Š ¨?…Þ„?}:?G_¨?ËÇ?!U™?%Ú½?~~À?®ë}?•5Ù?pÞ'??¸?½ç?úË>Ñy™?6çz?”þÎ?QÒÿ>¹u*>ÚS>þ»¸?~çP?îå?³ý·?nô?0®Š?}*š?Rd?y0?³‚?ìfE?Ô‡?£Ï?j^ˆ>s?® ?Ò!€? ¸ú>“1_>ÌD?@ ´?K†??oðï?}òÎ?¨59?Ž^>²Î?Ûé?“HÎ?”°é?€a?c›>çwx>·U>Š6Œ?·ÏÃ? ³©?+f?A/Ž?iY;?Qÿ>ÁS>Äš?!£§?-*?J@?'ÐK?FÛ?Y’?ÂÍÔ?³Nñ>–=Ã>çF?ÀŸè?¯û:>>†4Â>¤l->ª•?Kº˜?DD&?ŠÄ>?€›{?ú?Ra?Œv?‹OÓ?©??1?x„?5»Z?ÏiÂ?ÁÓ?W—o?O‡‰?3M¤?3£?ÖC>øth>uU>œ?§? Ü?ò¯?‰û?Þ@C?ÓÄI>Ëš>òá©?Šoõ?ƒG‚?›5?Ì?'A?‡“?¾ ?Ç¢¢@‰V@éÌ?¾I?,!Ð?‘Ë‘?™^“?Â?º8?‹“‰?–ë“?»Ôð?·S)?ƒ}?z³ß>غó>ïyÆ?{h?s È?›->îo>gLâ>®Ê‚?±•?m? Ôb?æU>ü?í>ÎJ*=³÷<>¶—5?ˆån?œún?ÙXê?Æ!4?ö ? _«?ð^?Ïb +?‚Ý?™m?ÖKå?É5?¢m(?ºU?çÄ?Á%ö?cëb?ÁÍ>!ÝÊ?^w?“Xg?VÝÂ>ŽKf?J'¬?Þ0?ÁQt?À1&?£3?‚xD?HCF? I¿?Ô1?è{?’‚?&¸? ɨ?3‚w?N] ?[NÍ?™ñ]?·r’?©3?¡V ?Ž?u|ž?ªÿp?ÄT6?‰R›?\;?5—º?'AÞ?…a—?šžL?k_ø?^üþ?i¾?Ž?hÇñ?€O#?ï.?ËÒ?ÍC?!?)zž?1âó>ÒV>Ôßñ?²ý:?®U ?šDÈ?¢(U?Z_?Œ,÷?ˆ@?““?çèà?è‘t?ßüY?ÎqÏ?šÍ?°¡±?ô«™?âÕ?®*ú?l‡ƒ> t=ÎÅ=9¤ñ?ZФ@?@·b@!{˜?üúÝ?¶ë‹?l\€?º?`¤?“~×?Cj@?Çd?=ˆ‰?WAƒ?e·o?a#®?—E?×¥?³L?¨¶N?úVc@"€?Zªl?-9l?]È?f÷Ú?´aÜ?¹£æ?±¼ ?¸­?öSó?÷åÍ?ÄW?¾E?{zz?xÅê?‹\¤?¡Æ?å4Š?ز0?ÆÇ?ÝE‡@áÅ@½ò@5‚@–¾@q +?Ä??FXâ?“b¶?ÎTã?°H?”Ö"@ü@/B?õ*?¶Û?gò?°)?t?‹˜?²õ¤?Â×Û@J˜@"½™?¬¸p?••ò?ôž?ýö0?Ê +„?ÆÓ>/‚>&H¤?­Ñ–?´œ4?èÒO?ê‹?¨ƒc?œƒ?G¬Þ?`Íæ?•…š?œ ‰?Åøè?¬â?P¥þ?™$n@ñî?þäÿ?òå?Çì?ƒë'?×9±@!PM?¦½û=EVˆ?)è?š3?tú?J¾€?cÛ?g??Üœ?œŒ?ºRX?΢ +@•N@U@?ƒE?Jo*@©=@‹ô?®¥”?šõž?˜¸†?–§?³ìh?®çä@ +è@JB>:º”>} +Ó@Üy@5«@$[«@ú?ÑK?Û ã?ñË?òÑQ@cy?êÔg?–Ï™?Ÿ4µ?³3V?¢ôZ?tþØö;>Ôf ?Ä?º?®CW?©ö??ñê?…!¹?¾^D?¾C“?†íq?—>Š@ ½@N¢?¾—¡?±à?}c\?€¸Û?Íæ?Ê‘¶?È ?Îãs@y|?÷È¡?¹w¬?¸MÐ?Ë<î?ÉZ?³Þ?·­?ÔÔ>?Ë0?™‚?¤èf?È—j?¶Ô\?|*É?g“?4—Ü?HI?—¿H?l?BnÛ?†ü@ÊÙ?áM…?:’ð?p?& ?5ƹ?·œá?´Ý?·ò?¾´x?ã`ò?Ƽþ?OÓ9?`á—?€U?yVy?Liš?IM¼?€2Û?†’Ò?¨w?‘ì?5êï?SG•?¥K‚?Ÿ¯±?0´ð?g0Œ@7 @6æÑ@2?ý,Ü?·¯ä?¹x£?äýg?Ýi?¿\²?¾ù ?‹ 2?~5œ?ÖÁ ?ÒO.?=T>þo|@ 73@Fì>ãŠ>;?w?¯þ?ÏQ©?±–,?§EÝ?Ãë?ÓaŸ?Ü8{?ß•Ÿ?âT‹?å ä?É´?¬\\@¤@$"t?´³5?'‚”?Œ§5?»ñp?›ö?‚µM?‰®ö?’½™?¼²z?í-n?Àÿ?{·?J)>ûsÖ?4v?÷C?Ê•o?[¹—?{¸ ?²}…?º«Ê?þªD@H@@6@/î@¨Â@uV?ô1Ï?ðV?ßد?èǽ@e¬Õ@dÏÎ@'Ò˜@ 3“?“?€¥Ñ?œÚ?£áÒ?ôÜÇ@Ø@ %õ@Åû?à&Z?º£þ?»%Ž?¿?¬èn?¢Ôê?Ñ|r?øMW@˜@Žß?øvð?–pâ?»Éù@ BY@{"?Ö÷°?ÕSA@‡Î@!ÉÎ@“zx@šŒ­@43@8/?'@™>ö²?<_K?_ÍÆ?åÂ?ú¦±@Y¢@ ¿?ÿ$Ž?û¶z?˜h>õ¶1?¯¦#@o,@ aÒ?ì]?¼™Ø?ø©?`}´@ª@®?·~—?¿] @76"@+4ª?BÞ{?1h?b?”c‘?›–Ï?ˆê?¡µ[?¶¡R?tÔ2?×?Îá@3ш@74¥@@E@-ý™@À9@¨?¿‰ö?°óª?ìÔD@¢?Pbe?I +¾?„Q¨?…ó ?‰5?„…M?Ç;²?íÄ#@@ +y?Õ@R÷*@aÆ}?‘¥E?OÀ¨?ü¡ƒ@Ù @Ì/?ç³Ô@H@ +ß?Ãçò?BÈÀ?€™ð?¹[¢?²¥?»dÜ?®Ì?¹7?Ä“v?ûÀ|@“‹?˃á?°y?·c?ÄI?¤ŠË?lÃ?cÁÏ?ZrJ?éY@¨å@³Í?Gî?OÚƒ?%é?»b?â—8@³†@'=@5p?ÞI2>%ò?ki¨@3HÆ@)èŽ?È#s?Ãä%?GT†?$J7?þÜ@&ÌÜ?µ¾Ø>úé!?=Un?Ž2í?¤r??ÙK¼?Ü9ª?’/A?–b¡>‰c”=ú*R@!ÜD@lýO@( ?eÍ“?ŸYÌ?ûV,@ þ7@'O¢@ÛÏ@˜I@­?nŸM?b”? k3?oà?œ”ª@r¨?ñk”?UA¿?V6'?¾¶•?Ã/û?’ß®?—àj?h6?D>ü?‚Sq?¤É8?‰ÉO>êYï?üR?¬Sô?¬G ?«ë?Z§?Ì°E?åz­?¡œ5?,`?ǯ*@xcÜ@}Nˆ@]bM@Sµ­?Ô%?e¡?§â¥?­±@&¨@€°d@m²-@0z@*¨¶@ó +@d@XÞý@]Áì@&â_@j+@çå@ Â?ì.µ?«ã_?º¢“@^{@M6@&h?@%Ù¬?ò¦?ά5?« k?”(Ã?Ø,@.@?Á@d,@fÙ@<©@17é?ÿx‘?Û,Ž?¨„?‹*Ÿ?Î0@d@Â,?é1t?ï€"@7@¼?4l†?œ„@ê’@2³f@7â?é€?œV>òT(?VÓ-?Ç#?àör@¨/@-mä?»z¹?©Ø—?ƒØN?vØÁ?jãÐ?W&R@ Ïó@,u±@H'ƒ@^Õ-@5Ó@ ¦ä@ž?êç”?Ñ.P?…np?‚3â>ñM¬?T=?¹õè?ÃDQ?6KÝ?b!?¹N÷?·Šù?·ðR?¸U€?†T?vèœ?6m>? ˜? ç ?¶½|?¸Kè?«•4@d.@S—?®:Q?£„p>Õå>BéÌ?[ÞÔ?ÝB?ôE?îÝÿ?/¾¸?8¦|>Õ*>¤¬>Š ¬?œ?Á o?·!¥?µW ?W¦>ƒŽü>ŸD‹>ˆÍ?Êëe@6Ö?…>÷6™?f$?iM#?”…æ?¯µa?Äód>îKf<·^?s¸?ZÑW>¨*#?âË?q£ð?'o?¬Z?2?:"n?WŸ;>š‚à=ƒµ÷?س@·Ï@: =º¦=v¬„=•tÌ?}M?èe¦?Í8?£Ü!?’úô?ZJÂ?n"?óBè?꿪?Çj?0½>Ôd&>ÂÀÎ>çRÄ>î÷H>ï[>ïº?!=?dí¥?Jöa>ñ+Ý>å…ò>œo9>Ík?µÝÅ?±×Ð>óé>ók€>ócý>ô==Ĥd=W'¤=v=´–\>½k¼>õž×>µ9>£T>ƒ6>H-Ò?ûö?w?xRÿ?‚K?r—œ?I’?¢aV@ç?ýðm?\^>?a©?eÁ?ESú=#¼ª=­9I>ÿ0? Š,?€¥ð?€„„>Ù¤|>Ï,æ>džö>ïæ>"Že>R‚?œX?¤eñ?xå?{? B>ûÌ™?+×%?0“>Ú†>¦h?*ŽV??vd??Ìu?MPî>³R=ë >þWQ?à?”«Ô?Àó´?˜"W?}Wn>í\>(;>èû=ð ì?  ?VÒÿ? ή>¿¾É>êN>þ©>x%9>û 4?~Pÿ?‘ï–?©?] 4>Š–>³äÉ>þ¤z?#°›?\äI?o—Ç?~Ú_?Èé@9È@$?µˆc?uoÆ>”Æœ>òP?6u“??Ýd?6Ê×?bó?¬ÄÌ?™ú?I™Ý?æ?Àà:?´±?£ +?“œ1?P™?2ÇÌ>›w!>ot=ñ>µ8?Š«P?ZÝÆ>xð=Èx=@,)>mMÌ?‚£|?k¸Û?‘?Ï'?€$]?{ˆ?a!*?V88?0žF?4>>7Ñ?€G)?tºº?B6(?DÀ?!`?0óÑ?©ùä?žó"?7©;?X~ò?²­q?Ť©@éÓ@‡?û¢n?ý¼?ý¸@Ð)@J@ÈY?  ?£¼?¦Ì?#òD?Ñb?ËK?Å_x?±"î?¯ð?»Ì?‰¥ÿ?Á¼?³E0?> €?cQÅ?ª-R?§ìò?±ÕJ?¹ƒX?îU.?Þ·f?òÖ?ŠM?jª?‚3 ?€#‚?‡~9?¸|Ü?—A¨>:RÕ>˜aœ?Mç?Jú—?eN?iÂZ?mþø?nq?i¢?8O>€?zý?víÃ?ØÝ?£"¤?øþ†?ó*~?åàØ?À’y?u0ƒ?«…?þÙ‚?Þ(?§~¥?™3?‚ú?š×?Ã?œ?¸ål?ªpq?¯ ?¨‹Ü?7J£?çî?·3a?´»¸?³R&?¥Ì?Ž@ˆ?K“Ú?@†?¸”?†Ã?ŒÁ2?ÌðÎ?|1?®>àga>¿hQ>ç¬?´ ?Väö?‚ºí?Íø.?ìÇT?¶•ñ?¨*Ÿ?Ó_n?ßJÀ?ïîÀ?ñøý?ª¼H?•“…?#ì¯>ç>űx>¤:?ƒ§?^œ=´N"@£@t´?£ ?‹U?O?i?+òÂ??™? ª?}­?^¥;?Š}æ?ÂeÖ?æ\9?ˆ‡?"0I?†‡o?ž¾?Y$‚?3R?¨Ã›?ŵY?@åÐ?Ò"?ª»[?¿ ‹@:À!@Ma4?¢Vÿ?ƒàê?T-Œ?G©)?hig?kµ|>ÝrZ>ógµ?CŸk?9[?†B?„œÀ?ƒõë?·?¿»?Án?Ñl?£*[>¸ ´?>Žæ?¾Èò?œ…»?>¿"?¤#•?þ<@?¸-g?D¾}?h‰ü?„ƒ?]?6Lë?æ]@&Ãh?ÛOL?”¢Å?’|é?Zj?¯Š'?¾]?‘ÀÚ?„ T?¹ÐÉ?È"v?Ž?„…?‘—`?—G€?t…?‘ó]?I& +?9»>£þ>Ñ ?ƒÿY?‚P+?x´?±½?ƒR~?œO8@øk?ð-?­ë/?°?²<?¹^¸?ʈ¸?½Ä=?™ß•?ŽI{?ƒä¡?TŠÀ?‰N?HLÃ?}bš?¢Ü?¾Ïé?”øs?pÿ?~=U?ƒÊ0?°ä?ŦÏ?ôœ,@}? ›‘?83?ªb¨?£9?à±?ô•?oÂ?•èM?šN\?ž·H@χ@ ç?¸¸ç?ºÕ?½ —?¿¯Ÿ?ÅA?Üc4@D‘h@*ÞP?¶4?%Ô”??œo?¯\@P-@AÎq@ÿ@"~?ƒK ?‡ÐK?ŒýÇ?«Ô?åýB?î8ö?õÁn?òˆª?ôíJ?ǯø?–«’?‹éÎ?ƒ Ø@ôv@K¤@"­?Äsþ?ycË? /2?R–o?~rÉ?yÑ?u3o@ œd@0ô>@²/?â©@k–@#¯€?¦«Å?m4?£0?§2@8œ@ ?„ &?Sn—?X ú?\ª­?ª5?´%q?0>˜?Ô¦?çjë?øpV?ö÷?ÿ +Ÿ@2@+É?âA?˜?†?ZË?¡/£?¥3¾?–M4?™ãô?©Ðµ?§f­?¤úÔ?–Ù$>Š`>Õ_ë?­?Ìg”@ oy@Îù@-»@ù?íP?ñç˜?ö¯‘?üÝû@6?â;l?%2?n21@Ú@uÁ?8½?zr?ïÓ¥?úTÐ@³¡@j ?¹÷Š?ÍB?ÿÏõ?ææf?› `?”¦¡?ì(?\”n?[¸?SS@ ìþ@Žà@G3$@.Øç?ÀÙ‹?Ëíë?üÝî?áä’?‰Ý–?ºµ¨@2:5@%ZN?òÖƒ?ä½b?Ï]‘?Ϙ?âÀF?Ô É7?QÚƒ?lUÐ?îö/?Ór…=Lò>z+?„rá?©nu@PB¼@< ?LèH?q‹8?ìñ´?ë©?øQH?ó6‹@5±@Îñ@? @>¸E@k?@°?­9Û?®¶o?´n‚?©ˆ @G—o@Sñ.?™-S?|ÿô?óz@Ý^?ßÉr?Ï¡–?èúˆ?ìs@@E@2?àEš?Åã?¦o? j?ɇÐ?Õ¡ì@ +@8[…@8Ü@7›@«ó?õUÉ?µÒ¡?‚1•? dŒ?¸Š$?ÒNw?çvá?¸­?Öw?›Q?¦öj?ví>ûp%?nÈì?áŽ*?ëiØ?ë g?ýT @Õ)?ýü>½â®?/¨k@¡þ@ Æx?»?4N?úG?ûõI@Q@ Eð@6ŸÀ@;©ß?ç^?èøf?¨ÆÆ?–Ac?•Š ?“Ø!@oŸ@3e?¼K‰?šÿ?»}X?ÄV?ß…L?÷!1?³‰ÿ?xw„?^v?OÜ´?Ž­=?º‡?¾ÎÊ?Âæï?Äúº?Ú‘í?âÞ@Éj?þ±?ä?‚Þ?™[H??¹7?¹ëØ? 7>ö¨Ã?ĺò?Ð?²é?´­¯@¥i@Éú?æìÿ?µMê?îºJ@É?õž=@Ÿ½?óÌú?ÊLæ?À’¬?·É ?Kç?~ ?yf@'$é@ fŸ@Üê@Q@?°b{? fù?²ý%?¶ñ§@¦w@8Ea@ û?Û¥1?´v¥?¦Zí?±;ö?ºƒ~?²!q?£†h?œ{å?V"Ò?€”Œ?¼Ø–?¿I?6ÍÊ?/“|?™½?ŒÌH?®GÍ?µ+¾?ÇÜþ?Úä6?ê+´?ñÁ?ºÄq?’`>?sG ??­?q-Œ?Ù?Êx?–Ä{?›8é?£®?œ û@g@ 8?çÿ¾?æÇ?ÆŒ%?·ed?‡n¤?Tס?;z$>î ?J³ü?Í«Å?ºeý? +q%?ÆK?€3?`áâ?ݪ>írµ>öñn>üp9? Ú?†b?qk?Ÿæh? Ê?ŸÎ©?žà?Ú§o?äôž?_†?FÇo?‚=Ê?€—Ð@z?@/xÏ?Òé?q2Á?K—W>¡?†Gê@]T¤@V]ë@Àµ@w~?Ž?™,ª?0Ð">õÊ?y•ícó<ÛNp?ŽÈ@#¨@»o@˪@µ—?ÇÆr?Ôȳ?l¯?F Y?yÆ¢?‚à,?BkÚ>õ»¢?E!¯?£‚$?š¡Ú?= a?OÁò?Š>æI?DÃb?SÚ?QÂî?f?ƒNq?©/;?¡|ç?¬Mc?¬>á?d?¤®f?æý¶?ülb?ã[Ð?Æå§?ÙÇô@ \´@‹"?œÚ?¬Œ©@0…@+ì?û0P?æÝ@‹@??2@CT@H_ì@;é¹?­ŠÄ?¶µÔ?Ýï¢?ùNÉ?ï°N?å —@ûÖ@+Êd@ƒA?«Ü–?Èíw@IÎÌ@EˆÐ@çˆ@E@4z@5¨X@–?··*?«;#?¬W—?Ôú@J8@JŒ«@+@ @k©þ@t“Í@ch?–tj?± +x?Ä”/?Õè,@ @ÉL@ ›@ d–@”Ÿ?òèñ?ºf:?®K?Û<ø?òË?í9?äÉ®?Ú†?Üûƒ?×]º?Ѻy?ÎÓÀ@ío@ ;?¨ï?¨Â\>Ÿ?*=ÕÄŒ?Á@ j@!ýz@71†@Ó¬?Þðê?ÐaR?°`?³¹&?¬WC?“W:>ñEú?VÁ?®ô?¥J?߬Ê?Ìf‡@@\a>Ç Æ>Ø-?k)…?vêÉ?ÈQ?Œ’å?ès?‚HX?ä€?ðçO?±,«?ÎpÍ??}Y”?îÏ?”¢-=ßÄÄ=!°?6½³?gÁâ?Q_?>1'? Iû?[Õ?º±’?ÔÖx@úÊ?ÕWÙ?˜†‘?a†Ÿ?ÙÎ??Ê?o-?va ?ˆÄ>š>‰¼æ?¶­?…ãÖ>¥u?Ø?k˜>ª„ ?Vö?!Rý>z=Ð?][?•U?8a|? {?X’?>?? £>¦®8=‘|r?ñ©V@!G@TM/> Ì?ˆž?›>?W +½][?kQ2?g§_?dCD?vÒÚ?yÃ?hÞ¶?éV? Ü,>òÐa>ï†>«J>‰ —>r‹E>*=Ú>ä#í?]¹©?{q•?µr#?¯ì`?ž'x?›&g>åhÊ>쬳;ì+|<®ý ?› 6?¡¥b?Hq>Åå(>-Âö>í4=<H>@´ó>¤«?sî%?ºíI?t”>÷~?(>Â?VüÉ?M¦?S¾?E¶?åI?$?ÿ?Y¶>æ@õ?%õù?»(ý?°æ?zX?‚?ªÖö?¦b?•&?ŽQÊ?‡¡[?€ÍÔ?R£A?^ß->áýk>注?:/?9 Ø?Œ?ù?o–é?|/?¢¡¥?­$…>ë>;¦?;À€?nU!@‹õ@:ø5?Åq?€1?ú™%@*•?Aqî?‰=À?Ö´S?XRW>ðé?@ÊÜ?…œá?_óß?7½ý?Wmœ?~C?Œq?”ö¾?}4?[ÇÆ?!¥>ÊÜ!>–Îä>]1? û²?ƒ…4?©ú<º6ø>ü ;?„J\?K;_>ÚL,?§³?cõL?FF?#¥2?(õ?,|¸?N\?oä?‡ˆ;?oØ?­@´?¸o·?§¨?‡Ëã?Ž¶?§™?ƒéé>ÿÌ?T¡_?ÊÍo?¾Á;?¬R…?³óé?»›Ø?¾Ú£?½¹˜?ºHa?²¼¬?†Æñ>0ƒ7>›¯ä?äò? ÷Ë>Ÿ¾?&7‰?Èd–?¦˜^?8ù9?0~=?JM?,î?^¾?pB·?€ZF?gkë>ÞÖh?Që?€l¯?…†Ú?¢¼¿?ª•­?µY?¤uK?`{?g¶?ø?7ˆ"?rKo?Iif=»Éb>U1Á?@»~?_ã_?ºÊ?²@a?Áó?Ãê?,þÏ?&äÒ>„iT>Æ5¥?m#B?dªn?\1‘?Lóx?7’"?0ït>ÈœJ?"ñ'?íÙ=?Ëσ=;¥½=ÞË¢?,>Ü<'=PV>°Zå?³V7?¨ªb?Œ­…?xa_>¼IV?&U?Õáz?Ã??aõ ?`1Á?:)C?Y?¢?¤ûo?¯Ao?–!Y>¤?Ô?H?®Üß?šL%? 3?/¯W?ZdG?#KY>%X +=À›F<«°R;ö„c<ùRP=† =Ľ<>.Y¤>¥¯h?HÚ?ÑrÝ?²t|?^k²?uéÅ?œÞ?Í™¸@h}?äË?£Ëc?¯?Ã=á?¾ÿ ?´Ùí@<@X‚ @ +>Ëpµ?ò7?Q“œ?.O6?`?º{®@9¢?ØIò?‚W?€&«?|(ê?¥½î?ÃÕŒ?×y­?ÞÃq?Ø…ú?ÒHð?'î]>)‰ã?xTô?ª¶?ÇÁŽ?ÛƒU?ZÕè?Ñx?¨˜é?ÎË ?ò8y@³Ý?¯,?ž3Z?Êç?Ù.–?õÌ9?ûL¢?ÚÕ?Ñ·N?ú?%?½ À?½Õ?Äw9?Âm?GÐç?P >LPô>£/:?¥/£?®/?Ç!7?­TÚ?WV?8?Ë¥.?Îiç?å+?þp~@)fW@Ò$@x?ømÖ?Ø¡(?ÛÕ?è¬ ?÷á«@÷@2ªw@bã6@7à@7¤?åŸ3?ÁDÖ?¡ ?ƒ¬´@ +ê?@; O?Ó!?iþ?Q}¯?O‚Ä?×?—Y¬?:ƒ]?$>e?€¬]?†ˆô?Ö©:?é’¾@qä@ +ïd?2Ô?ƒàŽ?Šo ?’[I?~òœ?cM)=±§N>¤f×@;• @1õò?À¡Ç?Û^¼@!É@Zp?V$?aÊ…?ÅùÂ?©ÎË?L¦Õ?: ë?**A?Œ«Á?ÕY#?·JU?Ÿ›E?„îë?HUe?• Ò?¿Ó5?›ø’?„?t‚?…ð¤?¾Öâ?×"¨?µÎ?¬j\?~qí?eåó?‹&l?Œ‰Œ?¼Fr?Æ@œû@Èo?4O>?C?·Íº?·Ÿ~?„¾?~Î>¸{Ì>ùÞN?ךÜ?Éxã?ŒùY?¢@&†?îï@?±fq?¿‚@?Ív#?¿Ì?¬Bß?aûÉ=ý:?hÚÝ@åÐ?Ìó?ƒâ1?Î/·@ h ?æ–£?ða?zI??b.×?ƒÍÿ>÷7<>s# ?"‚ú?R ¦?Žò?¡²:?àÄ?a·@b˜@$›|?‚ãy?Mòæ?¥êq?¢Û?…,?zš‹?·ˆ©?°ba?ƒ;?…ªd?Æ?š£?¸X£?¿}ä?Ç=h?Õzõ¼?ý¬?ÂÈ?Ŧ ?×\?Ïà.?²- +?®˜?ŒýÆ?‹ë§?Ž¢Ñ?ªok@ õJ@ð2?ºù?Ñë@!¦ö@ø?Ú?ÓL^?Ô +?Ö:!?ݺñ?á?ʸ?Ùó@…“@ +…-?Ûò“?Ò–&?Á6?Þ0@W,@J@Fã`@N×ü@q>@S}ª?¿‡U?¤Ûd?_p?àì>{‹? +@N?êúé?Ú'”?ŒÿÞ?¤XC?ØÄj@¿u@E¡‘@6Ñ=@ g´?î(Ã?0˵?Ô„>™1? +v?ò?áw?Íe?„‹ú?”«P?–‹3?ûfÅ?ëj?¤Q+?°PG?¦:?»Ã=@[L£@P@ &@ áD@"•­@@Qó@PÍ@Lþ@CÝ?’ƒ%?pÿ@(#@.^E?ÕT?ÉKa?Ãͨ?¾‚¯?Á ©?Ä•@+äò@2è5@E'Ç@D‘@tT@ö½@“?ý!Â?Í‹æ?ºƒ@ö‹@™r?Ü÷a?½€ú@&&@aV?óH?Ë®N@„º@!8?ŠN]=Ñ €?¬¹V@g~?¾»š?†å?\…Ä?“bí?cq?D¨?m©?›?ˆ?Ö“º@(Ñ¢@¬@ +õ@F´?âÛô?ôúÛ@•s@ÉÚ@Ì @ù@R'@HM%?Óu ?Ùµ©@2už@0éÉ?Gè?2ÎS?é"`?ù‚#?˜û®?Œ‘ù?à-?×m? +ªÚ=®x*?¿ðv@I?j“ë=?+Ú?UnŒ?² w?†?Î\Q?Ô?ãØ?²€`?T5 ?¥¨¦@„Y?ßiš?)*d?z¿‚@1Yr@1%²@g4@‰À?Ãiy?ºž ?wEü?j/R?æù?öw0?¸à?¥m?·ÕN?È…G?–g?¥@?Å@Yq@â?š-­?ÆX"@ ¿Â@ Ë?º‚?ÒJË@q˜@«q@7v:@.á>ÖND>ÿ(?…C?‘Nó?³=_?¶é?íz?̓@r~@Kà?™ ã>Lûí>’‹.?—?°Ð@$º;?òç>òŽø?=ëv?êu?ߥ4?ÔÒå?Éÿ˜@ +yè@ 2 ?Еë?Á±1?¦á>S¶„>¸&1?”?E'a?pÔ?†.¦?“γ?“²«?§Šª?»‰‘?ëæ‹?Üí?Úbf?Þ©?З{?È?Qœg? øô?ß* +@ã[?ž2¿>îÇ>î­ò>îŽt?)›T?’†E?*:?C«|?,`w?æ„?õöÛ?!”I>ípê?¿]·?æ ?ùð?ÿ.Ô@ò@La?ã%8?P´?ZÀo?!?!hJ@ô@×É?ßUU?áòÑ?¿rö?¸µ%?k+>ëˆ?]+?±±‡?×Ò@;’Ï@>ù@î]@'*_?J¼>¿ÏÌ?[[¶?ryÄ?l¬?tÊ ?¡¿?Í<Õ?Å?ζ3?߯·?ð¨¯@ØS?¤c„?Ã@§í@ Oz?·êÆ>Þh?xÍç?þ)"@ny?ùäÜ?ð²?-'p?5í«?b¿J?Rª?¼o-?íës?èÔ¾?â¨Â?²9Ÿ?©z?5l?† ?yçÀ?g¤?U'r?•°º?¸@¢?—x?Yär?AN>ù &?5ÍM@Õ?þ8*?ÀèV?±Üœ@&N@0{£@ ?ì‰ã?ùQ ?ë%ì?ßr[?¦?¡@}?ñÕ7@©—?¡»?jÏ@“°@EÊå@=3å@=&’@7¯™?«½ø?«¼¥?‚}?‚ÿh?—ø&?§¼+?íM›@M…@-Á?«Ùæ?Õ1s@²¤@}Á(@oÌ@dý|@,A@‚<@$jd@%^@¥?äÉt?ùKù@fl@dCt@lEq@_ ê@?Ê´@Kª[?úŽÅ?ˆØê?Ñ‹×@¤Å@ +ëe?è6?÷~*@(tY@%Èã?õ(@r?´i?®}^?à#`@!@˜e@,„ý@•*?‘™m?¸Ð@ÍX@ê¶?ëÝ?ëhl?3‘?JÉ?K’C?LªÍ? †×?Æ8†?½g?²„©?²ÏÉ?³–?¢h ?wØQ?˜ku?ç a?ºÐ0>1¨µ>ª’?¦>3?Á…;@00m@3ÛQ?€ Ê?Œmö?í#?Ñé?Ô™?h{?†TŸ?›ô'?ØíR?ôaD?Lç?@’Ÿ?VbC?Iý?@ƒß?N}k?ѯ»?ìª?„x>ð\=ËLð>17?U—?nôE>;0 >Ÿ&?‹B.?eý¥?%_µ?cuö?„Üè?k y?@Ü&?~Ì&?s†â>ƒê4<Þ¯¡;ŸÕà=Ì%z?qc4?c•ì>Ñ‹r>]As=“—‹?ùZ@ |‹?(e>èµ =½Y^>$Ûƒ>P\â=€¿Ä?³û? T?Ä×>nè`=’3Q?ñ—ç?õlw@à8=»()>;ëI><µÈ>ë/>äªJ>héÎ=&´Ø>!ÓÜ>œ?O!F?OÙ8?±à:?²1>íÓ >Ïv>íFÙ>ï+²>™ê>Gà>s÷‰>žD?r$¤?á%?Ï^t?©¾2?‡•[=éW¸=¡ùú=5 +â=ÂÍV?³°?­"ü?€ND?‚%>5pö=Å…;?÷?²)§?Rï_? zD?kªÌ?…é?ŸŒ?¸Œ£?m“è>÷|"?‡Ó;?Ð?ù?—u·?àÉ?|ÇÏ?¿R?™Êâ?UOÒ?!È8= ô3>»T?ºþ?£8?r?Œv?…áý?Ž[?»íl?¸ ?.?Ž€P>û­>û;>‘h.>‡K?™Þø?›8¼>ŠÐ»>GP?>¤S?S8î?7,û?Á!²?›ßE?ÑÍm?Å?µÈÇ?Ðm;?ázø?ßNë?Ý'0?´¼é?™IÓ?‘Ëç?“'˜?‡~ë?guz?ð>OÖ?„g?m~?–´?¶´¸?¾/™?¾"y?ºt?º|¬?ç>ÿ¢? ï?‡@?;Ö«?[fï?‘Wš?¼r•?žêï?W’?½Æ?¢O-?ž â?ª)?ºÒ?Ï\Þ?Ó¿”?Ø!‡?±3_?=‚`?P‡?ôºš?¯TD>WŽ½>‡AÔ>ÿó?ç?Ž??J?ðÈ>ã“Ë>Á3v?¡æ¥?˜Êñ?…؃?„ý?Ÿ6?— ?H=}?2À?AÐ? €¾?$~—?0¦Ð?€R?Š”ã?­°?œä?F’?+Q>$VÏ>XŒþ?wÜ?°E?z#ø? Á?»æ?«ˆ`?€“?b¤d>ÓŽ•>ÕòJ?¥¡?9š…?Å{å?¥il?¸†?J¯?WZi?!¾Ý>Ç—ö?øá?îÁ©?Øyå?°Tg>pÎ>{{=ëô>˜û;?‹u¹?rDi>é(Ù>ôŽS?€?±?wÒk?\ê+?|¶?8ί?2‚?‘ù?ÅJ÷?ž—>êF‹?(j?S«?ÃÞ?JÉ9?3É?Í—?&Mw?rªâ?;c >@Ó,>Êc?Š¦?†x¬?‘H²?¯@GŸ?ù£1?»6ú?˜‘?ïd?q>ýwþ?fâ@ùR?ö¢%?¥‚?g æ>©qé?A7ì?°™L?·Ë?Ànª? íC?…œ?–Lú?¡?°ý?Ã1‰?à@,ÿ@eŽ@8ê(@³Ÿ? ™&?Am“>S>áî?&„?3õ³?2ñm?Zkç?‚q†?:ÚO? +nÑ?^Nù?Š¯ˆ?aQ[?L¤*?¯PF?ÔvN?Ù(>ÁÛ?xŸ?‘”?§Ù?§WM?¡µe?`©??MÏo?¨¨?²bÊ?n¯5?Q9Ù?Hâx?@Œ?­sh?¹Gš@ O@2ó?>à ?ëë?¤í?û?ĵ–?Ä:½?´” ?«v?UNA?'Î@#íÌ@rï@H?êÖo?Tê`?õz?âR?ìÛþ@bH?õyJ?ÎVµ?Ê+}?¾´Ä?½8@?·u6?§ÝØ?ƒ‚?,Õœ>7Ñ'?±è_@6Æ@<4l@@ÂU?ÖŠ”? + (?ŽÐ¨?¿«ý?Š,4?gÎÈ?f>?ƒ³™?poò?b“m?¯;a?ÅŸ9?Ëþê?Ãì?†3·?€Ï?  ?§ h?ÝÏ?à!?bÖ7?[]ã>+öÈ>Iǵ@ ê@ +ð]?wä ?x†î?Í9µ?·¼Ï?À,?$û?ˆºž?Šàù?|8?`wt?,E`?‹n‘?ëI@ $Ö@/:ß@'u]@$ùÅ@—Å?ªåî?–+ƒ?ƒýË?—'ï?¬Î˜?–ès?ƒÿ’>½þ´?™ÖÕ?äÖç?^T¬?0>€iD>˜%?Õc@ ?Ì}l?Årá@ñÁ@*%@A»@°Á?Æ+/?Ǿf?éÒ=?ßÿ +?Ÿ6?Fv?³Ru?º$?ÅíÄ?Ë.%?äâù?¿bÃ?îÿ?r£?þÌG@àÅ@;f?Æ-Œ?ã‹?—vu@ßá?ÍŽn?‹z@!ëÝ@}æÛ@qט@c…8@$Ü?õÀä?…‹Ä?oU?…ás?™‡º?ÂÑ?Î8Ó?B-o?´õ?‹Ñ±?ŸŠ»?ó%@??È–?¶up?ÙE?æ@l—@&Ç?îe¡?óÂ+?k¼t?„”+@ R)@Áä>…H>¼ó?Åš?¹• ?ŒŸ‹?¹c"@«É@9¬G@~ÕÞ@RÁ™?ô#@·0@ )?ã´‹?’œ°?’¦×?…Å‹?æ`ã@2µ©@+/³@#ßÂ?ïg?›”¨?³Fø?ĆÆ?Û2Â?æ­Ù?ñçå?ÿ?ˆÐè?ãç@ "æ@@(@(”@,Ë?ÏuK? ic?%’ª?ýx?§‹š?Ãú[?¢½N?œPÂ?Ä™?Èt‰?ÃÔZ?ÃÃs?›A“?Ž"?½•?Û7@%W@ +œ@2ï@Eí?ëÕ*?ïĹ>\u=^oÐ?à ¤?ÀÍÀ? ±ï?1 ?p?€wß@!H@Æ?òQ? €=?‰«1?‹@@?;Ùw?H•Û?ÇÖ?†—`?¨FÏ?»x@ jð?þÀé?šD?‘L{?Ùìs?ݦ«@}þ@uØ@nÆ?é›~?„‰?‰žà?™x{?µŒ}@@H?þÜT?ð…@¨;@) +o@[?¸ua?Õ Œ@îp@«j?æÿÒ?˦ ?XZl?¨Ü@8Èv@;,G@C²N@2¤d?Õq??¼R¬?‚aB?Ÿ!Ù?ö9Æ?Ñ;ú?^,´?L%$?7‡à?]çž?šÂÜ?– +?˜Cþ?°‹S@ó›@Û@@7Ò@+Z•?±_?§ëª?“tÍ?Ÿºü?Üd¾?ÍÍ?šÜµ?È—Ã@r|y@c§t?Ác¹?Òwû@@g ?òáq?ó7Ò@ »ˆ@‰@Ú´@Úœ?Í?×a|? ðb?¦nñ?ð"?é¬$?«Šæ?®7`?ÌM,?ɬZ@ÍÞ@ ]@|ú@CH?¡?„i‡?µ+?«»@a³Ò@u @m…Ë@eƒ?äü?µæ§?»p\?Àø @œ@Ä?þœñ?âç?èˆã?ïqh@J@«÷?âpì?¹Ó?–£?k._?üþX@7ñ4@Ub?ûÖ‰?Ðg†?§0 ?´^ô?ÄÙŽ?¾†y?¼l-?óÓ‘@0^Ü@»û?¼+å?¬=?zÁM?‘Ô?Ôf¯?Û„@»`@¢…@ïl@Ž?»z?»Û?ñ@?ú +û?µcÁ?¨ÓŠ?ñH#?ùv…?œìû?„ Ã?Œ§1?¤Ô?$ª\>øñX?6?®f?gb>ò™>?D­$?ƒí5?¦à?È'?ÞŠe?øÇ?·¨ ? ŸÙ?q”D?ÿWÝ?èyc?w}º?¥*†@2åø@,>ó@ Þ@(ò-@2‰@7·ƒ?õ’â?éö@(:x@+úX?úÁð?âß?²X?ž’–?‰$ï?gst?J3=?I?›ŽS?ÖC]?¸W¤?ƒz`?£í—?ðºö?ôØS?ùH?õÑ?Ù)¥?à’?¬:*?žyâ?Dd§?;}?¬x”?¶æQ?˜?Œ«F?(‚æ>ónå?·Ê¢@ ÉH?Ï!Ò?o-ÿ?€í0?i?Ïš÷@ ã¥@ 1A@sH@D@?ñú#?ù +/?Äj\?ÊÂ?¶?é?À‡s?ýY˜@ ÛJ@í¥?ë–?Æ: ?«LŒ?­}?´k±?żÆ?äJâ?ïC³@%Áù@!$à?žÉÑ?¢s…@ â£@ÄÌ@72@BÌ@&?óé?_J‡=ÈGì?<?Š“#?Ÿ¯±?Öb?Ö-@i?üåî?X/í?@¯l?\Û?¢>ó½B?Øí?(®«?Lƒl?»=‚@ÿƒ?ÈMR>‚ b>¬•I?CØS?/S@!‰@?°’?kŽ ?ÖŒ?Ý—?sš‰?™d€?·?êÕL?à?ÈðH?Ñx?¯Æ?¯´‚>š£{>Áñ?±ÆŸ?è5'?£u‚?iŽ?}Ed?’“?À÷@í@QÂ?Žé.?ŠŽo?Ï·j?Û#?’L©?8FÅ?>û°?aâ ?­¸Ï@ w@¹’?× +$?à3Æ?äua?ÉÀ?ÏX?Ø'X?ôëy@9P@å7?æÕ”?úOÂ@.J@º?ÒMø?Í«j?°Gß?¬­N?m[ü?,Ù?Q,?¸<>ìðv>åÒN?ú«?òKB?öêÛ?§€Ð?¨3(@`¯@;‰?â£Ö? àÉ?˜lH@+çý@#¦?Þw?Ù—_?Š0Ê?‡Åá?‘îó?‡ñí@¾@q<´@O ?ñëÀ?Úµ +?iéŸ?sâ ?ÁÏ?†±?±×?Ë\?ÓQ3?å'?ÞË?Ç€I?¸í?°{;?Ë’?’‘¶?¶  ?µ†¤?¬ï@v†@SBÄ@Q§@Vz¥@c ¦@€åâ@€6p@$ÀH@.ö!@H@u+?ÆÂe?˜¿‡?áå@T6@ V›@@ »?ÿFÂ@Y»?Ô9Þ?ËpI?Ø ?ÒU¹?”N¥?i;?´×?º½ ?ž3ƒ?¶?jã4@ í@R‚?ןº?ÝÞ?»^Ê?²ªµ@ÝX@îj?ÊõÕ?±÷¡?¡ õ?˜ûë?¯Ëµ?À2à?Ç Á?êëì?êÙà?ðd•?áÊg?’Ûg?sÏ@?X´~?ODÁ@!3@‘"@Q÷$@Cnú?ƒP?‘o>´?>Y)?‘§.?Ó? MF>ýyP>þ±0>ú”-?½³,?ÅþÛ?š¾?€òì?ŠÄ?†ÞØ=–·Ò=1ù®?–P·?QK>ß÷? Õ•?(ª?+-œ?·ZÐ?°óá?ydz?R&d?2×F?CU ?T ?Ð4Ç@Ç?ÚÚñ?Ãlb>þú±>û<-?–Ë'?€8ƒ?dq‹?03ú>ùà>:û>¢ª¿>@>#®ì>$ +©>Õ‡?ŸŒ×?ÖÂZ?¼#?Q`n?ª-6>üP=`Ú?ÀIÃ?ÇÄ?¾éÆ=Ož? >‡—>àr<ˆ"0>o>Ї0>~  >QB?lxÔ?`‘‘>ïâ?ýÒ?ÒJ?×I>îbb>ïH”?‡Éy?»?Øä>#/?Ak?†S?uúÿ?E·?Ná5?Xç?a? ?jo½?d]z?ƒŽ? ŽY?z¿? Ä>Ï»<>Á¨j?Ep¬?c?ƒ>Ü">¯\\?•ëÂ?¸øÉ?cÇ?wš?+>„>÷Ç?—¶ ?áü+?¦IÍ?UZ¨?Φå@,E?Ùï>²A>èýl?ª?yÉ?%v?²fÄ?£pƒ?zDX?Ye>¢Sc>êÕM?zÓ€?n`ë>û ?N9?EK ?EÌù?¼©Ý?»zù>” Ì>˜ýË?V ??O+u>6+¥=ý{€?5 +?Ná\?xÃw?|«›>2°†<¡ˆ?Òë?÷–‡?JÒq? ¤?r¡d?‰_û?pQg?_(Ë?¨ÏA?¾6?¯Å?®õ¿?³k?·è0?¦%?¢@-?·©ƒ?¾š_?›ï?€ñd?§]?Ê+~?–“‚?dw?D2?!¼‚?û$?=g?ËK”@o @ t7?ú??µhü?lï-?Žþœ?¤}ü?¿°/?Û”=?êLO?ÿ8?Ö& +?¤ó¹?¬1?½yä?–aù?8ð?&°6?}?LvN?˜?‹Gé? –à?ª@)?´Ž?ÒÂ+?ÿÖ,?»X)? +X"?0@'?|õ?÷(?³„?eéØ=Í‹d>²Ø|?4.?M??b>¢C_?k´™?Mðï>çÃ>¼’&=@ðï?§?þuÈ?ÝIC?€ŽM?a@+?–÷>Ïb=õÞX?v?Ôžê?¨~y>? ˜?ÉN?Á¿?£Óç>ÿ×â?Uñ@H÷@é/?ê2`?¾ÝS>´«Ý>ÍÃ?ï¨?7ðÂ?¶¥ ?¯u=Òø[>,üÊ>ø§„?°@?·?$èž?u^Ë?Y¨Í?‹b?'Û‹?Z±Ý?DLÍ>¶¤>òv?Sëð?]bv?\[?bl?šˆ?FZœ?Â)Ð?œYl?|‚?6¾?•×~?–èF?¢%&?tÚ>>›W>Ç›?dsØ?síØ?¶×?Vk{?ÔŸ?9?‘­?NHç>cÌÙ?&¢?™Æ?~cê?I}¨?„í?®([?š!­?heŸ?Lú?? m?¼eb@*)?ó8§?Ïîi?¢§?ZQ9?=^Y?%òÖ?gÖR?÷Ž?²:Í?Í@Ô@@ïu?æ5‰?€-N>Ê»<à™ð?w‘;?¼›?Ž¢t?md´Ot?TË:?un +?°û?ÄL?Àå·?Äoß?‹ø>”º?ÌB³?í„®?ðÏ?ì{_?Çàš?Äm!?”°Ì?Ž°í>÷[>´d<@ÿ@‹C?“¥?n…?ÏÊ?, ä?ľ„?·VÈ?Éo?LOL?ôÓf?Û–™?!kþ?DB±?ƒO?“W8?Å#?ÃÅ?Äê ?ÐP)?Ùž?¼i¼?‹`?W‘á>ô[ë?M=?£Øâ?ŒŸF?o¡?ƒ-®?‹YW?¬^²?Èö·?Å ~?Ãâ?é^_@ý9ñÞ?›v?2V“?t¾?«³;@õf@º8@!@@P?ò›æ?ÞÖ—?Åùþ?¶ Œ?§#ž?¤ï?žªâ?PxÕ?x9?zQ²?†.¯?.c?ƒÿd?$Ž ?Ë?¤ôO?³ª?Á°e?ÅþŠ?ˆÑ7?ƒ?Ã=?ÉÍ:?9[5?Fò?Ž@˜?‘!?¡õ?™ Û>â‚ ?'–?ƒó‘?ˆßæ?ŸtN?‰;c>þÖ?¤§??‘?TC¨?ƒêu?Ýס@:q?ì1>ć¯?†°•?îÎr?Ò_?µ?™Sr?€5?=%L?N?œk+?Ë&Ï?–ôC?sÞT?ÔØG?ùH?Þñ?Ø.>?Ì•Ö?Âuï?E}?ƒ¬R@=Ï@Håµ@'r@$ˆ?ƒ›˜?hy)@;¦p@3½¯?“a? ?XXu?=„x>h©¯?" +@^0-@Q±@*P?öà?Àñi?¦ÿ?H6?¨@$‰@ ù?¦i?Â3?ðõ®?¿µ?Q[ï?@5³?:4,?½±Í@¦-@´î@ +\l?´i ?,öh?|G«?£­ @fˆ@,·A?úßl?½b?[þ‰?áy? ?»å>©xð>‰e#?¤?0“?²,‡?Å&à@Î@£H?Áfß?ª¡J?¶ôI?¾Vû?§4Ä?¥?ú2™@r°?É™™?ÖÀ?õÙp@D?ÔË•?Ïvì?BË?..•?½³ñ?Á›5@Mÿ@Ç_?õ›e?è´…?‚Ð?ˆT‹?ß«ª?âÃJ?Ê£?Õ—Ž@0W_@br?‰Š-?ˆèš?¡H&?žØ±?œiO?©âÓ@H?ñÕ–?˜h?¢ûí@Õ@ª”?û¡³?ýüt@0Ò?Øü?ñž? Ìô?ªÖ?¢Ì>ÉEù?U^8@-`@@Ú@ «þ?ûèæ? ?—ù ?áÛ_?ÈE'?_t‰?ƒ«F?«g?Ï3@e@x?i&?°µ¡@/,v@a?¾Ñé?àö@ +Þ?îЄ>û>éÉ«?¥° ?…®U>ÞÄ-?n®Õ@Ç@ ~?ªÅ?¿]@K@ ØÁ?ÎLÒ?Ï!\?ÀF?ÒÖ)@k¼@ý/@Â@8y?Ý·?´Ü?Á}?65‡?Í ç?ئ?ÿ9o?ì(&?E?if±?ì“Ë?æ-g?F¸M?E: +?~£?…S%@. @LÉ?Ìý!?ÁÓX?â/?ç‹,?®¯Š?²ÔA@Ô!@ï?Ä|¡?¸êƒ@ Ó@)ö@‡E@ûÁ@b8@s†È?¿1d?}œ?˜…¢?œ¢3?µJ*?½–?ú~Æ@ ´?ïd°?×Ũ?¡ä?…­Ÿ?[¿?ô²>b†6=‚5è?8ES?¥,…@>*@4üF?×!Ë?æ?Ø}ÿ@E @?ž“2?»Iy?ññ†?æ«n?¼,6?§ÇX?by¾?­Á@EŽÚ@Jé@:g–@6}0@|Î@ ì›>¾^>º—J?ŽÇû?‘¿ß@3À@2X?ãùé?ÜØ?ß +‹?â¶?ÂÛ??ºÔ ?cÇ?("á?º˜W?ïX=?§_’?u“¡?»É´?èîÐ?èu*?ê4™?Û2Í?ÎPx?ÛÊç?æÇ?æd©?ïÈ­?Ð5/?’SA?¾–Ä@NÝû@B|À?ü6? žá?}aB?z†)?ºyS?¿]Ø@uC@€ç‹@=D?Ì(w?¡œA?•º?¬"K?¼;ò?‘.£ç>¦>á‰d?·má?¸Ã?Ƀ¨?Ì×i?vyi?t +?ädü?ê c?¿õì?¶µ¿?”?n65>¸57=Š?z#µ?î«õ?Ñ:°?¬Ú¤?ºfj?æ«„?õ T@Òö?ý>Í?s ¹?€¤Ž?D¡8?KXØ>JÀñ=¾Á„>Üâµ?ê2?Xo?·p?™d†?‚ C?c3ÿ?î?¶ +?ª³ç?Ó &?Ü ©?¶ºí?±o?G?v?:¿?:ð +?5’U?Išð?‘õ•?ë9?é[˜?Ë_ˆ?ÜSÉ?ý|;?ùxƒ?¸’÷?² Š?„‹_?fd ?^`Ó?V`‘?|ìð?œ®é?—Èw?v´?€9;?¼FU?Á:q?kî«?kÇ?yd?róE?Êùü?ß²é?£È?’ ?ÒSÚ@Þ¶@uë?±¡O?§»¥?™çÛ?žË?k?Øo?¢ðI?®KÜ?W6Í?’S?NÈ?ʇ®?Éør?ëîÐ?þQ†?â33?Ù~M?‚ô*?‡à|@,Õ®@[Ú‡@H‘?hº?}¬´?™³^?§@g?­Ä?°ç>@<µü@>×Í?Ðûý?­cê?‚->?\Xs?e[t?riå?‡?£?²J_?A ?¦Xö?”m?•ÕÁ?šc¢?žóO?£ˆåÉ?>óÇh?C¼o?_á{?f•Û?exæ?ù+@È?ç^?¨&Å?Ù/Å@/ã@% ?å?å6@R½@è4@#H˜@%¬@Ó–@)ˆO@/ã@+²¥@9R¸@ˆ"õ@|@ @MÄ@7l¯@"{¸@iÇ?ô-?À2Ó?ô3F@'ºî@*Q`@)èî@"ƒ§@%bU@©Ô@ÞT@uç@0«@QßF@CO@1€@/•@-‡Š@5PÇ@>¡@8Ê@gs@@h÷7@ X?¬Ç”?¦Ä?­EU?Άe@’"@@ +Jg@“Ý?©Á‡?°É@R@"}?Ê?_?}ï?‘ªd?¯ Ò?Ô|_@s?õ´å@@I@¡R?øü‹?áh?äR,?êìN?¶ó>ÔgÝ?/á?R@?Hšé?=ªß?•]?×8¼?’¼<Úü/?>´Í@0½@‰è?ÍôÜ?Æë ?dRq?‚Ðæ?„T?¬Ü?…Å?¦ìü?]&ï?Hû¤?vÉ•?bÙ@"_'@4{?\P•>û‚>ùè>úè?nrñ?”|·?Á÷Q?Ô¬7?¶?¹#T=Ñg?íÕ‡?å½?? ;®>ãûÉ?&O?Aò? æ4>ȪÆ>!&>üli?XXº?Oà>£&?#+?/xþ> ¢=Ó=Øù–>—_:?¦ó7?…q>º­õ>Q©X?COw?r8ž=<»%>»—K? ?‰*¤?O?¯Yé?·ò>»ld>G³B=}›?Ð$æ?ݤ +?ôXÐ=­ Ë=ûÐ=äö¬?Œ_Þ?¦R.?…BÞ?[ø?'m>¼[À>¡0>‚={>˜aü>švÃ>‘í‹?(l¶?.“i¢>¶º?Õ?Í÷8?Ž“ø?Eó>ÏÑ7=ìî]=_]=‡vç>w=¨Z»<ÊjÍ=¯ƒ¹>óàî>ßD²=Vö=­[ò?^}°?ZZY>%ðé>j=>œ0‚>œx:?>Õ#?g ?E²?:iô>×9Ñ>Ù©?ek?¤oZ?‚õ?@Zg>Ò¨ =ÉÜ<=ò>Îw=™[È<îž<@QÊ<ï»?#p¦?õà?á»è?²Vm?žÕ?CG?3—?!ó´?X›K?Þ¶Ú?ÉœÒ?{Cw?ƒ`·?¼žw?±ËP<þ'=?¦¢ ?©.E?Gé?<Ì[>g­O>3òÀ?]pÖ?nõÑ?X>ó1¨@jf@"á?BðÖ>ý`?hÈ?}>Ê?§ÖJ?®Õ(?b=?M\‚?Û„Ú?ôâ?¶??¡Ý?2H™>ýíš?…ræ?¤^v? =è?¦þz?dÌ?!ôµ?šŸ?=Æ?èM?¶9£?´…Ö?¶fW?cÉ?k?tt?á#?y;^?D$?]þ?ŒÃ?±½V?Ðï=?Œñ?08$?Qÿ§?i+…?²6è?âÙµ?Ÿ+G?EåT?Uñ>C7¼>óœ??W_Ò?Bdº?EÒ?G”•?¨á?«K5?êq†?×ô_?ºKÁ?`c<Ý@?"N¤?¿øú?Š¶á>Ö”>$ê>>–:?,?6¬?#¹?aÿw?·YÞ?§;¸?€1³?ª— ?ø/x?ÉSÑ?^Ø:?~· ?³?™ô¢?ƒÌ?*qt?AZØ>û´>ß9d?¼h?ÒÒQ@{?Û^ ?€…?þ?«C!?£WÄ?“¿Â?›Ñ?Àï:?—…>£>ïí?oõD?šÎ?á«?Ãö?‰š?Jü?‘‹$?YËœ>4e?¯*?>ò…?ŒT?…'×?t‘?5a<®j>Úá¹?½äI?ºõ?»–>?·¯?­ i?Ššˆ?2¨?Vvu?Ê?þ?•S´>·´y?- ?¦ÒG?ƒJ©>û3¿?W§Ý? ’?—¼“?uŸ?X|œ?ÂA-?œ ÿ?"?B,?˜ê?3Z«> >á¾Å?¯&?7`?€áƒ?±K¨?ùÐ?¨ËÙ>ßgW?ˆ:º?öyÞ?ÑC?Ÿö ?Nra>­-æ?B³?›Ùí?¦É{?©úd?ãdj@î"?¸Ù;?¼?M\?Ì×?šO7?¦ÎÁ?£Q?§1¿?ÊÑú?æÖÇ@!l@sY?qb.=d`;XîO?¬<?ýÄs?€‹Œ?b_?1Ò?@ýß?Â?¢a?„FÂ?š¨Ô?úuo@<=?|~Œ?Cx4?<Ã?-*Œ?F?«•×?ú}Õ@Ö?§ÅL?£µ^?§ëú?¬"©@8ý“@;jº?ÐV7?É/„?†~¢?{ý?S?l?ŠD ?‰ÌÖ?o»?b¼a?A77?4®>·» ?o?­ +m?œU5?s§ +?Šžû?¤Àˆ?кU@¡Ü@d/@jP?ë­m?Å,ð?Úm1?öLê?¦ZÞ?lÒ?‘¶?Í”Ç?í+Ô@’?Φ?Ö?™Le?Ê=˜?¤¢D?•±‰@’k@[.?ÞCr?ÅŠ’?‘)–?ƒ·?ƒº?ƒ½ƒ?cëÏ?p¹†?„N?ƒÇÙ?Š?+_?7<ø?7\U?³„h?µÿt?fØ?]€_?Üy? +Áq?%M¼?kaŒ@âL?÷r?Ãäb?™H?é‘?»È#@P+@-g?ž“T?†´?J?B?'k½?ö?:ÃÜ?lI¿?ãf@m¹?Ù„L?©Êß?H»>Øò?í]@#­Î?ªr4?bˤ?Lõ§?=,·@@ë@aïJ?Úžƒ?ºy`?6U?øå?‚Ä?‡I¯?}0 ?o V>^“>—êÿ?·ØN?¤~@>¾\Ï>ññ¤?ƒî?•Ôû?Ñ×2?¡nè>Š…“?%†?À‚¤?žúà?SÒ?ȧ@0³?æ—Ý>ÏyT?.-?ƒÖz?N Ö?ñ?%E?%¦Ê?¼fÿ@¯/?Ú»•?Å¥ª?À‹Â†Ò?W¾?>Z?€¢‡?vOL?F;?ëѬ>ýJ½?¶ú?±{?ÓŸ3?˜yÐ?’1¹?à„?ìP’?ÒÈx?Ê"¹?ŠªY?‚{w?Ä ­?ÏÞ¾?®’F?­À5?X?F×Î?ÅÖ«?ÒÇ+?ðCg?óóD?Œö‹?† +ì?5?ú?ŠþŠ?Š»?h×?$[?æž?˜öÉ?ÕŒX?çAr@0¼v@'v?žp?¯ªA@6N?êv²?Œa„?’—•?—æ¥?ŠyR?=~D?ƒA@ƒ5?ùT?Ñ›~?ÇÂ?¹™{?À$v?½,e?ÆF+?ì¢?Õ`Q?6N?ŒO&?gäD?˜r|?ì(Œ?ÎP? ?¥Íò@˜?ÎuŽ?%c+?‚8ü@J@Ú>@ Œ ?Û¡Û?½?«;?šz?4Js?Š<ñ?µôi@ ª @&ˆ?`¶±?žÛ@XZ@8Ë?·¦??Íâa@žß@æÖ@#Ëñ@ Û$?¡ÅÐ?¨h­?²Ê?¬Î ?«øþ?²s?¿ãÊ?¿ÔÆ?¿È˜?²’?v÷ù?‰³ô?½._?ÕÜ@5³€@2g¦@3’œ@!6ð?\ÊÎ?~1¼@ݬ@ +nS@+d(@çÈ?Í+?!?¾Ôá?Ä*@+ u@,)Æ?~&ð?~Ù?Eü”?/Dý?ÇŽb?Ámé?„é?ƒù‚@ôn@o;@Zœ@'™@'Þ@7Ä?~A€?5"å?ßÙ¦™†?Ôòõ@WŠ:@!f]?›†!?˜ò?•¾?™¢Ó?ª›?’F…?Èÿ?€>–b>ozÖ?C?§ê?+‘?gzç@@Q@£î@Ö|@¸@ÿÅ@%r@.U@'ó?‡=î?j5Ç?¿È8?Ëéñ?¾L$?º¬‰?„o?eä¶?'¢ó>þ“³>ž°„>xÀ?”óÕ?ø+5@M@0\@Åw?ï@Ü@@Æ@fº?Ðå?ż]?©U:?¬/á?¢Û?–æÄ?µýO?¸M @®)@—†@qj@|å°@/Þ@>a?Ša?/W‘?…•Ï?—%?{bØ?ltx?»‚Ž?õ`…?ÚÄÉ?·áï?ˬ½?ó&>@±…@)+!@º*?·h ?¿-=@K@ÈÖ?tÈÂ?tå?·k:?ËO?ZYë?¡Ï¢?éBš?úñ @{¶?ýy¦?¥2?»>·êÞ>AæÎ?AGŠ?o@N±@U<@'9ž?ì‡?ð¼@K@0ë@K•@æä@E¾É@HŸl@U^z@WJB@1nß@“þ@23+@YǪ@7zê=¥£>©Xo@2ì@!²¿@`£@t¸@=¡@-Æ?÷v?´2–?Ðø@ÿ@fî@<~™@6ü×?¼?Žïe@83å@SDg@z +?áé?çõG?ã¾?ÜÏ]?å»z?ÿ9ã@u@.ä@#yM@2¥É?¾½“?±œC?Ì´F?¼Ó?=¨1>íBè>íœì>íù>?/5*?n¿v?|û?°|?Èq€@<‡@1?ÖÔ÷?¶Š=Ør?Î…l?ºá%=l›0>%É:?Óì?*Œ­?8àx?a.Ž?ó´|@ 'í?Áÿ¢?· o@™?úì?*ýÀ>ûæ¢?´0?2<?d3?vŒ?¶€8?¥þ? »ë?¬9C??¶.?EÜæ?$Ñ?ð¼?x¶"?7ÿÔ>Š6æ?9„?Ží>Ãd—?e™?°Ùv?:¹\>÷.Ã<¨ÖÉ=Sœ:>ùÝà? +ïæ>¦à/> L<ö©-=Bá@><=ìfP>fÙY>xm>Iå="P?—Mf?ëÔÈ@ã!=ÎOÞ>/é>ªÀ3®?Bf½?>Zø?:EÖ?64 >…HQ>Xø<>‚Õz>”þà?> f?z„ü?Eåž?ü>¨+‘=›à?Jw?«gw?•Ú?qz»?”U‰?ëdÜ?ËÝ>×H‰>Ò§U?»?ž;>·f>«ãâ>,0u>7,?p¦?‚ ?{Š>÷¢>æÔ>ËŸ=?%ª?MËÂ?ƒÝH?˜ì¢?Nä£>øŸ?<¿Ê?x÷Ý?>¼”>ùL¦>ùu°>ö“¬?š‡@š­?Ò;¡>gDu>¼àT?nX>û‡¾>r$>¾K?šÏ$?ãÝ?{;?Î?¬:?‘H¼>T( >‚§Ì?{æ‘?‚ì#?ÎÆË?Éñ?a¶ß?fÁÄ?"Ï?ÿ†=Iá(<‘J?³X?Á¹s?€Z%?p+y?®›Â?³¾>à«’>·p÷>ùaò>ý~b?©‘¶?Ç)?£Ø ?›hG?[©Ý?<Í?m +â?~ ?½'>®Pœ? z?8p?lü?~Rô?•ÎZ?™DØ?>P|?è¬?“(J?¾w?^ µ?>?¯Yâ?äMá?G®Ù>S&t?CFV?‘ ?b5?'j—? ›ˆ>ÿ*É?¥¼ü?üªˆ?©ÀÎ?9er>ø“¦>;“>ÔYè>ÿyC??úÚ?ˆN?d§\?QDè?.s¹>ÿµï?Òƒ? Å?<ñ?y¶?$R> =r?3¨¯?«¯?l% >Æ:õ?Bò?ZœŒ?–ý$?Ò?žýç?6Ö'?æ:>ý-½?k´‚?ÏØÍ?ãra?ð%W?¥> ú>ùk?aä7?œ "?ê}ö?¡E3=Û]>d Ž?lµ>¬ÞÀ={DÀ>…U? ð¼?;œz?‹¿?)Â?M¬?‚Î?LŒU?>9ã>—=?±î?‘’@ éQ?ðþœ?Å^?"A?aŠÊ?"ñ>­§>Ò2m?€ãÑ?ÛŒ?µáä?šü¿?,Ëî?.û?­?*_Á?‚Œª?;Å[> ¤>ð=V?‹„?E§8=â]r>÷ë?æš?dª?¨=ü?á?l|W?8¬>†±¼?IW–?ß–F?¤¾?qó?-×A?‚îØ?o¼??od?GÝ?PFF?yÓÿ?’´ª?Œ —?†`?Q^z?:?@ûs?ŠªÒ?…¯À?rVÊ?)š1>Í_*?ªú@Zž?Ö9M?ƒEO?©-ý?Ñ)í?Ö 7?à­w?õj¬@Ð ?‚pA>X•ð>œy5>·,=?Kð?ñºI?|8ø>ÊT¹>ñl™?Oé? ¿/?²?™&?Ãœ_?Áæa?»à÷?î~@µ?Ÿp(?o(-?œµÙ?¥”4?xU\?^™º?|˜X?‚ªå?ÁÅG?ÕÓ²?³þ?¥ÖÕ?£Ï?¦à?Ÿm¬?›ýb?¯‹?¬×ò? +Ô ?è³>Ë >ßñÌ?ûk•@´#@&õR@#sÎ@&·?ðȳ?é?%í/?¾ ?Åd?ð¨ª?ÿ*~@A@¥Z?ÌØ,?®K,?`íu?J‚|?Pˆ?[Æ6?Å¿?º —?­®P?Êgå?íQ%?æÿ?Ú{?¼ýû?¢ï)?£åO?cÕ?Ä‘–?ìÒS?ï`…?ôåÈ?BÆs<_> ?„’?Ål4?.Î>¢Ü?,Šœ?iŸ¯?µÇ·?Ҥ?VJ?ƒ¶.?ƒ¹$?ƒ¼?ÝŽñ?Ù«?§D!?£Ù ?œC)?”g?ƒÎS?y–>,0ò>ŽZ?˜n?†ä\?8'µ?^ÔÆ?ΦF?Ú³ñ@ám?ôÔ»?ÅZ?Ø`r?ú³?îG?è<â?Ú%?¹ „?°'?£»Þ?•ßº?…éP?ŒC1?’À"?³x?×9“?’¹?C° ?pâ?ƒõ=?³?Åó{?C¸¿?÷?ºI?¨^„@ À@+©T?Bÿ|?ö±>ø´¯?i?dz? ¡g? ë¾?GB¡@b¾‚@Cò>£ ‘?+4?¢¿?˜²‹?ƒë(?£³É@ê?ï>Ñ?«LÅ?Åc®@ä1?Èóð?8Çÿ?Wƒ?ƒÛä?˜õõ?³ÿ—?¤Ž³?‘A0?”ý?•ó ?õ¥ @ #?÷gw?Æöq?œI?ˆ@~>ÛŒA>TäL?“®™?¸Rn?š–Ä?•Pà?œÂ†?™t’?Cü?8xG?\ÄZ?QùP@ÿb@ë?©‡%?®Î @ƒ“@ÊH@O1@>z–?]ê?g±F?ºŽ ?Ëdƒ@‚â@ r@!¨q@x@$×?èÖ‡?µ õ?¯K?“Ñ>÷T>… +è?-œ@vâ@bS?Þb ?ñÚø@$?µXÔ?@õR>îÖ+>S-x?.µÂ?ƒE?+Bƒ>Ϫ>?_êÿ?ž#:?„ݽ?TÆÖ?ý×¥@#d@ = @bÈ? ¥n?y‰?×=?³„?~Ôò?‘Ôü?n»0?]§m?í}œ@ì?ÁýŠ?¼“§?‰(N?‚xˆ?Vö?RÉ?Y?XCÅ?ÓË¿?ÕÅ?u[?!`?Œ½{?z?þŽc?÷äz?Já? +½E?‚?:@ù0@?:@A£@.µ?”.×?“j?†ŽXQ?Uœ?é'Ï?üŽ@¼V?ïœ<Í(Þ>ÿkS@L®?ÿq<@D·?ñµ ?ÁÔé?¹×X? 4Š?ê3@†â?ûÊd?1?ÉP@At@!ÃÐ?¥q1?õ·­@_X{@M@=@×p?šeÃ?˜]?˜ Ï?Ͻ_@:@lO½@¬½]@†åÊ?¸ð=?¿xÇ?Ú@?ÍÛN?¤3Ê?´À=?×om@zÏ@R?@4²¾?½‰†?µ÷?³”°?Áìò?Ñ1„?Ñ9?í ?عý?¬)?œ¿Å? ?~až@> þ@!?>#h?† n@ !Ö@ ‚ù?ÝF?Ônœ?Â?Ò#©@Má@ ?rN?Œª†?Ø'Å?Õ®?Ö}ô?Úø;?ªnŒ?¢…=@¿˜@v€@Yaü@\þî@ÜL?ó¼°?З?ÓA?؇¨?Þd?¬Œ?©¸ó?²à´?«¤9@;D@?û=ñ?ñYè?ûif?ü• ?¸­³?™8=?Œké?…ïã?º¼€?É–i?âÒù?ôbN@Áó@8I@®3?«Ìý?ŽÓj?QG?¯ßà@£?â7‹?žW?¡ºR³?ÕÀ?ùú?þÂ?ñCŽ?8ÙÁ><Q?{ª“?·[?Œ$~?YB“?}×q?˜3+?áÀ@‰_@"wF@#xB@Wh?÷œf?ê ~?Ê„F?ÂÛƒ?‹£ +?¤¦½@/½G@+ƒs?vÙÒ?w©—?…Wy?ã?´FÝ?Ê?ÁÀ?Éõ?›@b?ƒÜ–?ç@öh?£¥?.²a?¥Z…?õ[?Ú%!?·â?¹8¬?¹U?ªÑø*v?R—¶?{Bð?iR½?S ?¿Iú@né@bž?µ i?¶{­?ü?ï?ú5'?P#j?WÝ4?é×a?ðTÕ?’ à?~“ê?›Á“?¥X9?©Ê±?±oB?¥‡ý?’Z‹?¢4Â?ÕA±?Ýt^@É@ Ã@#ãD@+…Ò@/çA@-éƒ?ÇRÄ?_K2?àµþ@-=q@ ò•?j†Y?ŠB@ º@;™@Ùì@vT?Ðá+?®Ö½?RŽç?/C?u“.?¿¥¹@Æ`@\] +@H4ù?T>ðÏ?¥¾ë?âà @;z?è­¾?D§p?‚m]@HŒ@@ ¡@ÛÂ@ +7ù@ Ñ£?ÆfÕ?k ¨?„'á?¦læ?£ÂÌ?¿ Ï?ÖÖ?Δ­?Èå?»®~?À|@&”@kÅ~@\]‡@,«@5[¥@+Ì«@+Ç?ìNô?ÕâŽ@¶@%`s@.'0@<ŸC@^`º@‰Íö@„·@Ø­?þ ‰?c¢H?mà@,h@YÌ;@lR@yrÕ@k×À@KsI@@Ã@1¹@9F@0þÅ@5aÓ@…Ú@W¹@2@ ó(@ì@@¹m@ ÿe@ÒD?÷ò@QËt@IÄà@Áü@$ö@:È,@F7·@z¨?Ûzg?Ôȧ?µÐ?áO@_í3@]G"@ '‚?úúù@J*2@axQ?ûÖK?y`õ?“t?¶¾,?¨·Ë?ˆU"?Ÿ­P?îAË?òÄç?…]?~“å?¦Öu?°ç?îá?Ò>>õñ>L—>~G=>˜!l?5Þ?n¹Å?º•<@v\@W¤?Òf?Ú`}?йJ?Ç<¼?3A? K@%Æ @2ý ?_ð?Ecô>ùŠÓ>õ¶k>ê°Ë>µ˜7?eŒ"?xg?âô? ¤W?’’?±&Ç?²t!? å? ‚¤>Îur?/~±?Q0?~2?Šk•>’š”>ÒƒV?@ö}?-x#?"<>ÚòR<þ>áÅb?¡6?¤Þ_’"?HÙ?-$?ô>êl?7ˆ ?ß&>w¯°>0×ã=ÒLä>ߎ ? +áL?ÚåD?©Ûƒ>©„Ì=ã•Ï=x€A?ÑWØ@C@K„)>u£=÷>>°j±<”Ìq>5•>y”=àìì=“Ôò> +„>YËt>Ïvð?$ÔÛ?. ?mªI?f2?,ñ?1t£>9Ã>†'¥>¾=#>°p­>Cÿ#> çX?(ù°?q^?!ñ>΄>üÞ? &«?V>õ:½? §à?€ê!?lÎ>ô‚\>ôÃõ>õZ>õDü>õ5>õ5Å;÷O?ˆ–ä?—BX?ñ¨?púH?Ž“?‰F?SR>÷Ý>ÅBN>·k>>ãç§>ø•X?92ü?jÅ?1ÿý>ù@F>ùjÂ>ùˆ? Ëm?(øe?F÷/?Rb²?.42>úm©?-ñ¼?ƒˆª?UÜ>úì^?)Ã?{*“?lîm?>ž?LSö?fþ#?aRl?{Ö?‡Ni?Ù.?Òè?Y?6?´”ü?´ &?˜Z?ÖI?|?€‚­=¶i`=Ñr÷?”?*[õ?“/?ád?^€ž?Uå?wÕF?}Ž ?=A?7óo?•ÇÎ?gr?›?C?™­?99‚?&ë>Ö[?#€?Ja?÷§¾@C?´\?ƒ–c?mº?°q?'$Î>þ¤L?¯\?3çÏ?LÐò?Jc®>× +t>‹ª ?‚?+^?C{·?JÈ…?…+X?žt?P-N? I½>|lŸ?°õ?yÝ?b«¨?_Zp>ïúÜ=»òõ>™2>ÿž?tÎ?¶R—?ƒ?Ä©?x$™?iF ? è~>n„†>ÄðÓ>ÿùa?‰²¯?Úú‚?Õ­?ÖéÖ?¦›?Iø¼>ÞÕ?”?•L§?¬Áˆ?ßð´?½Åo?€<´?Lšï?FG?>;?‹°6?š?Ž–Q?_%?µ?‰Çn?ú*‘?¯¼P?vH?¦ò?Ùp?Þ?c ?¦/?’Ï? ‘?%•±?.äÕ?K?™8 ?ÿÚÕ?´?>Ž©?9ô?Á(p?Œ€>°v5?ˆ”?€Ü/?n=?R[?”&b?ãHð?²)?¾—?`Õ?À`z?t›\>Qø?9ð?”ù?þG?™¾ ?APÀ@=û?ÈJÏ?MÅ«?eˆG?„Äé?=½?‹Jï?ˆñ?h#?>XB?ñD>èÂÿ>ϤÇ>ƒR€=Ñäy?Qqw?ègA?×µû?½»V?£X+?—?G¥? β>¬4³>•Þ?4Òû??¢Øº?³®«?ÖrŽ?ïA?Ÿq?GÜ??°¼â?æÛh?áòç?æ)‘?«>?pá?‹¢Ž?™{q?¥af?°%h?’=ïÄ,>ÿ¥ú?-Œ ?eùà?‚TÞ?¾¼?Ïçø?ÄÉW?æ%?óÌ@xÅ@y@au?×þ'?ÃÖ‹?43?‚šý?;fô?0Ãâ?4øÅ?9+ˆ?Ñàº?ã‰ô?#è?t¾?ÖŸÉ?ÝÕN?Ö<Ä?ÚÞ„?Ty"?Dº=òÛê> h?®ov?ñ¡@Gì/@Bõ¥@"x1@Š¸?÷?'Ó?Ñä?U,µ?Ï^?².”?.–?›¹ð@¦?ø™w?X§å?….€?µ6Ý?©°g?¢£*?–Üü?|u?l6?nGl?²àœ?ñ ó?¬åA?Iå&?»bÐ@z±?”W@?‚¨>j«Y= íÎ?†0'?Æ°6?W£â?ý«?—´\?­C•?2+¯?£Ó?Öe?öÝ2?ç">¥pß?uÇ?ƒ· @0¦@ Ö?§½·?§+À@ú @ ³??SÂ?g´õ?¯î?¼<@@+ ¨@UÔ?¸/?Æk·?õ ?÷}ó?økô?×ã?ƒt?²ÈÍ@á±@ ?ÿ²??倳?ÅÙË?”âé?FIU?NÅ—?WG?¸…"?î½á?³â.?‹-Ë?]0Ô?G)÷?Kpþ?O±´?hÉX?|åt?Bé‚?+ >Ú<3>ÊÉÍ>ÓWi>Ûæ`?"ñ“?ÃÐ>÷ =oØ[?°|>üÖ=ó}>,¤š?¸³$?²rÿ>Ón?Q×H?•ò—?Ç›±?½Þ?>¨û?–†á?ų?÷¼Ï@ Vy?êÜ?ÊÕ¸@ _™@#¹o?ìg?Á“Ò?>dï>åÚK?u"d?tÞ>ϼ>‰=>?=–ú?YÍ?’8À?‘ŠS?ž-˜?¡íŸ@w +@#?ƒŒˆ?‹Í÷@2?@Ì@ 7X@ %?ØUQ?˯¶?Z…j?™ú@Ü@ Ù?iþ?ºñ6@"Ëà@~?Šæ?¬+$?ãt¤?ÃÝZ?”Tñ?ÇŸ@ …@*@Gk†@?K @8öz?ãh`?Gc?#ð?¡?–Ÿ?Ùd‹? ?²®;?<ÜQ>žFø?õV|@3 Á@+Vì@%Ž?×ï? B©?Ñþ}?ú\š>ïÓ=¢IZ@K—š@rR/@Ÿ¼@3ë?º^?²~?ð=R?ðmn?‹rì?‚q”?¿d¶?×O?ÖÇð?É0??òhö@•8@Í?­~É?±Ê?° £?´Tà?ƒ–«?†.Ì?¿p½?³Gˆ?E8?]5q?µx?™êý?â§?}†?VeL?LÒ?? j?ŒÁë@E‹@ à?Œ®p?Ç4#@)6@ý€@ ½Š?íRë?C?¸(.@ -@K¸?€áú?¤?ü^‰@Sá@ÁÁ?ø_;?ç 2@/Î@¼l?ó4Ÿ? Ä?¢%‰@Fša@N×õ@Qêï@-³Ö?À‹–?’²>/?ƒv@2äÏ@!ŵ@Öj@ y@—À?äš? +¡?[<”@6Ê@D·@80M@| ?dÅÔ?u»`?Äxó?Úox@Åâ@3?sCn?w—Ì?–%—?²K¥@ ”@ÄÑ>¯—æ?L)@hå@)¸?ùuâ?è®?äÖü?á-4?~A—?‡äÊ@-zE@)!£?¢æ´?«k@Hÿ@)ˆ?ÿËý?ý™U@dX_@cÄŸ?¥Á‘?Žx¥?¨?5?¨h?ÏHL?Ø´U?¼ôf?Ájÿ?C=?Æ&?Ó"?úÐ~?Ë` ?.ÄŒ?fÅ?Ï0?ÅC?¼‘÷?ÏrA@áV@ʼn@nU#@aŸ?…;O?‘êè?Ê+[?Ãõi@ ùñ@ ²É?éÙr?ÙÊ?ò¨r?ù“@=š¨@XÕ@0–@ÃÞ?¼6ç?{? ÿ?²pä?Ê¢×?Ûñ?ûçß@È@Ÿq@]@}™@ +1&?õ!?¨zf?§dk?¹c»?Ç@=@ ²À@FÔ?„N??x‰O?µvh?²+ˆ@6åÀ@6_@ï1?ø,1?ÅHl?¸rž?áx5?ÿ5?ÞÔú?Ê(á?Ú9?æZÒ?ÒÅœ?·Ù™?ÎM™?ôæU?ò31?êaŠ?Ão>ô{ˆ?(1F@ ø_@±­?-g?4ÁÞ„>þ &?v‰ý?€/)>šO´>¨¹>sê=¯?P¼Ñ?xk)?tL ?…á0?·_?ßbi?¯:“?dÌ—?”N?½2C?ÃçT@ÕÛ@;%?o¸4?oš”@úÁ@#,r?Æ!}?²R=?†Õm?nßm?n¿ö?n x?¯y>?îg%?÷`@äl?í?`;ø?yã‹?‚ÑS?^Yœ@ ‚@ò?›áý?m·?y6´?ƒ6u?dsõ?IHÔ?F®Ú?/ž-?PE´?šÆ?Ÿº{?°ÝÊ?°ÀS?€“p?o^®?¦´ƒ?ÁGé?hÞH>êôr?ÄÉ@;L@!æ?­ÖI?­âœ?ê<?êÜ?¦-r?’I´?¢¸h?®ÿÜ?¨bÚ?@å?µxè?×ʪ?ý¬D@8} @2•?–á?›è?’â?‰Œ¡?òýè@'ó?ý)ñ?ÛéP?›º?‰V?LvÎ?ÅTz?Ê¡¤?Ù!?Ç.?}˜?g–?#až>ò“‚?ŒúN?ì +Ì?É?IÊÌ?Xc?誽?ÿÙ@¼@Ôñ?ádõ?Ïì?É#¾?±¥¤?¼©ê?Þôà?Óƒ?œ H?—J*?ß•æ?åh ?ð–õ?Û£j?éH¹?üï®?Ûè&?¯1Æ?ÃKI?ùõÅ@ÓO@qØ@C@Ø?ûA«?Ó4ê?¤3î?°Ç+?ç\Þ?ú|Ê@(gO@%â$?–Q&?€uE@£0@ô°@6  @N „@W=É@`@Sù?é\?î›à?°Ð?ÂG%?:Zâ>å_Û?ÎáÁ@(Ÿ@6×?¬?Ø?¡‡Y?}±?‘w€@P¢_@Ss¶@QË?áóz@BÓ@EÃ@šX?˜Â?‡Z#?­qo?¼ì@Ã@ jR?çË?ú­œ@.×€@>ƒ@·¦@UY?Ì«5?{:#?{©{?ið§?v»?•¸?Ÿˆ‚?ÌÒ5?Áß?ÓR>ÿ‰{?ZÈ7?l»?Œ¦?’I?ªJ> Ðž?)Ôå?†­ž?‘Ž*?º½N?ΦÉ?à ²?Ú ~?Óüù?Ð$Ÿ?ßè8?ÜuM?Ÿ¦?•½?°|?ª2:@òÌ@¤$?Sõ +?Lfè? Ó?’·X@¯@Aá?¼&?© Ç?°«í?À-ª?¾²ñ?½í€?â¬?ù´\?oŽ?éD>´‰ý>¢°‡?F&&?F …>Ç<·? ð®?€lh??ÅÍÎ?Ð;?äç‰?Ä ?šÈ?x|:?yy >r_è>na?Jso?nÞî?KÍ5? „r>ŠV!=ª?;€>¹,>ÜR`?:^‰?4èp>©:>íï¹?&ç?x›³?Œe¬>­†?>ÝýB>…uÍ=ýÃ¥=Fz@ kñ@žE@7ëÖ>wU;íÿ`>NÛ>²h>šcØ>—ì>Ô`‡?%vÖ?8Îü?w ï?g€X>]¥º>L˜ô?œ(2?¢Å?o>ñW?9EÍ?XP#>Äe¢=…´ù?7(?®*?˜|Ã?r­t?ì?²êÉ?ƒŒê=‡ýÇ># ">õ Ä?Ý?RÕÄ?D^Ë:E0°?q<;?v¨2?—'‘?œm?9„?œ>°\q>§I…>HrÃ=ü]>•æ€>ËÙ? /G?yb?ë>ù; >ùgR>ùŒö?q´t?¯²5?I2#>$4Ä>ön?]f?qÃË?of?lŸÔ>úâl?:¨Ñ? a?„BV>ûX?GÚ?ÖÀÒ?½}?Pe9?M ¯?6»½?IN?|*‘?~ÿ@?†¼%?ˆãâ?¹5û?·±Ü?|®P?x?÷>ëõ>éh?«ÌD?§µÎ?¼ùW?½é]@¶@]š>ã+ +>Á¬Œ>g*>d¦?*µ[?Eܬ?ç õ?ò›É>†wÃ>…á>‹O=' ™?|/–?¤‰?µL™?ºfé?¹tž?½µs>Æ—®= +íø>ÀÆ>þ¦]?Û:?i!>>šD>®5Í>þîŠ?T¶5??P7n?èÐ>““€>Ff?—Œ?êÑ?…=æ>ÿd>ÿq,>ÿy +>ÿƒ£>ÿ»>_±>+(?)“?¤ÓÒ?ôá]?è^í?Øäì? ¦H?cÜì?`@'?mÝ?ˆú-?–¡¼?ŒÁÿ?€Š?HÍh?•¹?™$@$Ç?¿ü~?a´p?‰Í/?¨y’?^¨>À÷Ò?mû¬?Ìÿ?Ù³?ñàà?Å$?ƒ‚?œ'É?Áúº?¦$?už ?qhÕ?m2?>|?õ?tá*?ÊJ?…™Ž>´ÊŸ?A—ü?¦‘?½m +?âE\?¬ñ?.FÚ?y8Î?Á">?‡ô>¤ù3?2Æ?`Ù#?,ç>’lš>4«÷=Ôý?¾°?½¨#?æa?`%?ˆÜ>î(–>ñžø?”?“ «@Õ$?ÞFC?Œð–?”M?¬ÜL?®-Á?§à`?’Å?z>ï?K™>ñí.?OÉí?¨ ?´ÉÍ >ÿ„Ô?@?:CU?n°S?|8×?­Ž?ß*†@çK?“‚½?ƒ„?÷ ˜?›ø±?":Þ?Nþè?|%X?™©Ø?¡¬‚?”bÚ?—B?¡š?¢!³?£ù?§8e?˜þk?“¶e?—Üë?•Ã?9ä?;+?š¥É?ÃiÛ?ˆœË?h[Ì@FáI@~ì¿?³9q? =µ?ª*Ì?É‘u?ÿ^†@‰%@R©@ðO?Åín?±v?Ä„•?ÁoY?e±Ü?OÅÒ?š/°?¡°U?—2>ñÊë?Ç4Ü?ÑØ?›ãa?™ew?ÄKé?Ák?`²"?O®|?Ú‡?_7…@V¦ÿ@N‰?ÿÔx?î)?ˆ?‹œ¨?¹7 +?Åý^?ü]Ì?âÅâ?š„?¸B?ºÎ?ÉÚY?Ù‘ ?É…?¸”u?´ša?¦ž?Üa @rs?¿1?®3?]ë÷?˜”Ä?½0?×;?è«?ù î?˜!?*H€?!åŸ?†ß?þåt@&b ?Šl=?”@²@: ÿ?ªËœ?o±L?ÄK¤?Õu?\tS?6Šu?/b?4†©?´Ã¶?¼Äi?B1E?I4n?®ÎO?µSä?n=?’U@:nÖ@)œ?¡11?žyò?ƒÐ+?†´q?¡ˆ?}jh?0ri?¸? ì~?9T?Š›¬?k•ö?1?5?3RL>Ö>Ý¡?@ƒ?!_?ô‘@”õ@œ;?êò·?{º?E‘?µ?êÙ>ßØ[>Â]Ê?¨ßJ?¿ýõ?]o>¼ýŠ>õ=·†>ûVß@ ¡ä?õá?”Ð8?’C³?ƒáÉ?z5?T¥í?™ ‚@Äz@ë†@5?¬Úƒ>š½?–G×@ ¶H?¸¤R?´Þ?]û?·P¡@«Õ@6¥U@å•?ü6s?ß ˜?ÉÄ?Åú?Å‘ª?Eˆ?±Ý?ä}?D®>àdÏ>ÄŒ«?Pá¢?]ï?–¸¼?m?A7??Xl?£å?§!‰?¾*?ºëZ?ÕIT?ÄÈ<>#c +>I ²?r>êl±>8¨k>èhP?Å}@ÜØ@}} +@^cÝ@sì@v?ù ò?¾Cý?F¨4?«)?ÄÎû?e=?!¦€?ÓöÉ@4Œ@(«©@¼€?ÝY÷?&?7Z?gH@T_?üN?VœŒ?D~?…´`?Œ1@; +7@A…@?íÑÐ?æõR?‘2Æ?„D ?F}?3Ca>žpï>žf„?Å„?ÎéÁ@M@›5@/{@Yb=Ë¡Q>Fà‹?$×T?8lè?Ñ‘?zˆ;?MxM?]Êm? Kw?«J?±¯’?¹wÜ?ñ)º?ç{X?ÔÓÉ@x~@Yí@=, ?¤¢·?–dM?…ID?¥Òu?þ?Ú‡,?“ç+?£³?¶¥v?¶n?ÁU¥?Í^•?Ö–Ä?Ö¾‡?ÎÖ?ðÜW@"~œ@cx?€ß"?ˆ×±?˜[÷?«­?Ün8?Çk¥?Ž(D?§Ä?çò?ãbM?Ç‹Ì?ê†æ@!Ÿ¼@N?Ýi?ÊN?Œ©?»…T@ n;@…ž@ ²?ÞÉ >ÜÞÌ?„j$@ j?û?¯?_ä>ú*?j"@ û@^@0/ù@&jg?õOy?àEs?²}?]uú=·˜V>»r?´G€?Ñ c@7@*ìw?Ñøê?Ýhê@?‰@<Õ@/ê@'ýd?böß?zªA?§Æ‘?®â@Ovþ@MÈ>»ØO>‡Æ²?òc?úJº?c?')?¦Òi?»@ ?²Ûæ?®R×?oµ>þm?Œ)÷?™I:?TH×?< +Ë?*7È?÷ ?(QA?ÚZ?wÑØ?‹øÒ?®U]?½)ç?ÿ==¿>«}¥?1{?Ì^ß@ +¼õ?íÖ?ÎR%?Õ&ô?æ](?£¼?3?p?Q?ž g?Èid@Šš@p?èk?×ò7?¯ø?Ý!Ò@.ìÁ@'áh?øÏ×@V@Rb@¿ ?õ‹v?÷Lq>ùÉÃ?…Ž@$R@ò@ûÿ@Ž@ Ý@#”ú?ôVÓ?çäg?ó4?‡PÎ@h@8)ë?÷YÞ?¸Ê(?•Õà?ƒùž?c?PÓ?¥ßJ?âØS?ÄT?–¥Î?Æ]‹@ XY@9Œ?ÊÃâ?Ïpl?É:A?äóW@Jç@I@…Õ@ŒC?ó |?ï¨E@!G:@'RF?ž R?bÒ?“oK?•†h?™pB?—·?¢ò"?¥Ì!?Éþt?äVþ?Ɔ¬?¯Ë,?Ë¡t?ôá@ ]I@2)e@XS>ôx?/*@& @ |ð?ƒ7Ë?x€ö?ÞT‹?Ðó¹?º>B?®Äk?ÕÁã?è¦u?>·™=­o7?JÒ‚?²ñ'?¹£w?Êå?áè•?úÎø?¿u0>>£jÂ?2ˆê?-ï¾?WWé?2óò?T³? âÑ?¥m¦?¸$ƒ?Š½m?pà˜?zJ?ƒkS?¢Cì?¹…?¬Ov?«ß—?Œ€?-BB?=8Ý?±/´?¥ÈN?±M2?žk?vp?oJ?+Š?‰ø?GÙ\?n K?‰ä+?£öŽ?Í$à@Äy?ßC/?¾S?üž@$pN@(CÙ?ŠÛ?q6d?œÃ?Tò?ÅL?ÿüg?À·V?†Ìô?ež ?1µe?. ?@Ÿ ?NCª?•§A?¯M?´MÄ?±þ~?5°?Y?=¦Ï?N?±-@ Ï?þ“?³%]?ÀÝ3?ê8·?ê/@"Éï@(· ?eØ©>óaö?†³\?¯ž?µÌú?Àøp?¸Ù?¤¿Û?­¹µ?h¹@?h›Ð?¹o9?Ê‹Ã?Î2-?¶h@f`@'/y@Æ-?¹\?­03?­« +?³GU@!7$@#d\?Ô:Ö?«-Ï?”˜?|¤?ktƒ?/u?ÐÏC@8éŽ@#êó?µ±&?¬xW?þìp@ô?Ò1"?¥Á?ïB>@)œq@À,?³åM?ljŸ@‹@ }¡@¦@às@)ï4@;Ùˆ@FÅË@Hˆ@H6Ê@Dè3@F@|u@md@p ?þþC@DTü@O²@2Ë@%ð¡@ µ@ ¥¿@ +·»?óÞ2?ýæú?Öd?Î>9@[Ñ@¡@!m@ß@ hM@#ê—@/©ç@@i@8§%?yM?e:\?<(g?&E?ÇÒP@½Œ?Ñ+R?§®?¶µÓ?ÛÏZ?ÓQ}@4r@7BT@V&k@O…¿?Çí­?-[@^|@‹Iÿ@z°?@#•J@C@à}@XO?±õ?¢[º@ &d@:Õ?—½Ü>õÏv?«÷„@§¡?×yï?™Œ[?™ÔV?¦æ‘?£JZ@ëˆ@ L@gk@ ó¡?¸Ên?¡z¯?ˆõÎ?Ö?q¯?HvÇ?©—?î´?Á&¸?ybî?•é?Åñä?Ì´?Ó‚‡?׺¦?Æd´?Ã& ?ë|?ëaî?:c?5;J?•J?ÅÈõ?1>öÓ?@~á@ëé?É m?Ç{?Pr¥?N² >ùîr? +³{?±}^?½í/?ü?X?ä›G?׫c?í?Ž³?:q×?$´š>£V¨>`q<Žþu>Ðœ?“b²?uCT?ùà ?? è?wh€>rE®>‡€õ>Z†>‘i->ú¤[?u—5?‘|o?ªY•?Os\>—2>‚N<–=Ëq?£­D?Þçy@½=Ü:>ÔÒ>dÈ?b”{?Omª>K11=y$=öÔ =—´Ž>ùÿ>íî ?(º±?³?¨›ˆ>ïm>ïÏ?¾ï?Çgï>üØÝ>°•>äÈÿ>ñÆ'?W?Ï?hÏ? qH>‡|J;õ*c>n?? óJ?ŠE°@`?ï¿ø?Ì?°¹?œ?×->œ·B>‘t>Ö ¼>çð¸?u´›?wñ?VBñ?c?JÔ>ì=w?ˆ?ÆÓ>Â…ä>ƒ¡Š?|>Ô?­yh?RA^?>úsÕ>ù…Q?„o€?»\ ?l”/>Ͻñ>÷¢^?-­?¦{?$ „>ì±W>>€°?*¿¤?¼Rž?ˆ2>‚Ž?5{Æ?á´‰?¸–ô>ûÀŽ?œ?å~? +Ï$?b¡É?}·?´×é?¯®ß?‚DX?¸?|bï?|Fb?s£0?h¼f?"N ?5"X?½Ñâ?½ð9?òñ?ùL^?*¾;?Y<˜Z?<®í?6{±?Áí?ÔñÅ?.‘W?t?&œk?8c9>žïè>Q0±>.Šè> è¸?M”Ø?u}H>mùù<€ª>ǵò>í` +>ù'>þ›Û?Ptø?d̺?JX?9ª™?‡U8?“òí?ƒ¯1?~õ8?%/Ÿ>ÿ³?­)ý?×7(?“AU?cL±?² 3?ÔË?fG>ÿS°>ÿc*>ÿj;? ùõ?K~>‡_9=_€¦?hi?½Ë?œÍ?Š`Y?\ƒm?9µ>áF>]¼>ÆÇê>ÿñe>Ìm“>²ùP?aÔ?¥lã?£O„?kµÇ?è¿Æ?¯Ø'?aÿ(?šÄR?ÃìÔ?¤]?~§?ò±?€k£?š^?·ã?RG¿=Ý&Ä>”þî?p_?v#*?¨W?­øß?Àí:?ÍV»?ß½Æ?¸^Â?†Q¬?–Z6?§ò +?Žm?W¦þ?eU.?eCø?Š¡?´ÀÊ?ˆZo?“ì?Iå²?‰7z?ƒ·ÿ?€ye?³Î›?ô-@?ÔÛå?¯òu?ºuR?ζÍ?žaº?F˜?=8¤?,Y?E˜F?gÛ4?_h-?Fæ‹?Aè"?Es›?I¬"?MäI?ad~?~½Ë?[Ïq?%£{>ÂËr=Þu?Ê?o²>û H=1a—?E9?}âW?¦Ì?É»?yâ>åèm?X‚?˜ûx?…sò?d'Ô?§0.?Çîö?Ï®Ÿ?Û G?ÄŸ ?®ÿ™?£bL?¢ŽM?¢ˆ?žnÃ?‚—.?bÔH?˜ÓT?¯A?EOÐ?85?‹%\?¬ ¦?ÐW>p,`?‘DÑ?ww?_‰? ??–?oí>–îª?Rî¥?ø¶Ô?ÑBˆ?ƒ2õ?¡Îv?ÚÚ?©¨“?7¤w?Sê"?|ÒP?ÝW@%ê^@ Êà?ß÷@?¥ií?^S‡?Ã?'@my?Ë©€?¨zý?´j?»Ï?·Ø°?¹TH@P&#@S@ +s?¿Ž*?ŸÎO?Ÿýy@ #­@‘?Ñ€?Åu(?‰Êp?ƒ©×?^Q@?W‚{?ƒ$ú?ðA?¸¼>ÿ^X>{B>°q?ªv?ÀG¯@=t@"\?ÉÎ?9€Ö?¯Rä?­Ín?»r(?äÜí@¼Ò@k¶@…?·º£? ¥«?>¾?yvý?u9­?púH?”?û“1?¡­é?Siê?õ>¬@$á?ÏÜk?—!k?e.Ø?E4“?r¥±?x^?XÃ?VI]?ÙsÔ?÷ËÀ?œÑ?•1ë?`¾?K”??ÕL?Ôjˆ?ƒð?Ž2@%qð@C†@ ½?÷L¸?®SL?ψJ@?ÁÝ@"¦-?ƒá{?Ãí@2à @ $§?ƒÜ8?¨Ù?êMe?ÌøØ?¥Ž7?pHq>Þõä?tL—?ŵÉ?èG@Ëa?³_@?iàè?®S??г?²Æ²?œ8.@u@A2?Vùw=“ÊÚ?“˜#?¶ž¼?„…+?o¦É?Î*Í?ÖžÄ>Új+>¤×W?ÎÀ?Õ(v?¤X?‰{v?BÁœ?_•1@!B–@„a?ƒ}t?v£?wÎ?q/?o¡?)k"?›cŠ?›•¼?®q"?•ò$? \?”Q‚@#6>@x€@D­?æv4?¯G?Šo`?@HG?¢¡?å?ÛÑ?Üð-?ÑM9?Ä¢?ý5-@§7?¯}d?:m(?¥È?ט @ Ôá@V½?›òw?ûà?ÔÅå@ Õß?±¼˜?‡³@!ãÅ@Cì?ìÎ}?Äl?”iŽ?‹ñê?±¯?¶}@!B@(\@+X†@0Ç®?‡¢=?q…“? OO?kÅ?=©Ð?:¢Ù?éxª?î‡é@"Þ@"%M@RF@äK?Õ†§?çs4@.4@/ÁL?ÿq?ü?Ⱥ?¾“+?MÔ{?Ï(?Ò“?ºåþ?aˆZ?cî¡?Ѹ?‘ ?Î9Á?Ò'•?çìC?åìž@wC@Øì@ +#r ?]jh@6@Ñn?ó‹?Û4´?–c„?Ъ?\ˆý?°>@/á@ +QÛ?4¶”?Ov_?•± ?¦û·?Ð%?ÑSU?¿·g?µ‡Œ?É ?•y”?¿rW?í×)@Là@/Ú?¿O›?½ûp?ÀÚ?Õð@ +%`@æT@>þj@4Å8?ßR?ØÒ¤?ë+?†Y@ë¯@ö@º@ëE@ ‡§@MI?x&?ô?yb²?tÓ?ëË?é›P@¸½@ÔÅ?æ>©¥?¹¿ƒ?Ç»?ˆ¡|?|Ô'?„F6?Šáð?Óæ[?èæ?»üÀ?¯[Â?Á§,?ÅZ ?šF?‚õì?ö~‘@š?íu2?Ï4î@  ´@E©m@ä|?’á?£„?«`í?ë4ê@¥¦@PŠ?Ô–?Ù Ó?àøî?½|+?z£X?÷Ë?Š@Ö?‚’«?y¨Æ?¬Ì@8ÐT@@:ú@vt)@a8?˜/?–~@É@òî?»Ì…?¾dÛ@œ©@ão?ëÖM?ÜôÇ?ìÚm?æ&@Ô~@qÇ@' +@±´?âJ?²[å?áƒí?ýnH@ bL@2–?àp*?w»S?©¸‚?÷‹Ô?àФ?¨#û?±ô£?çe™?è§?än¼?Û·y? î?6@5H@1í]@!˜@îR?„ +v?Mê¤?²‹½?Ày!?¹B;?¸H?î±[@l%@%¿z@?D +@—à?‚g—?©?ñ{8@ ã@7›@‡Œ>ôrŒ?dt@lN•@a´ß?üÇ$?õ»c@eß@$aš@ % @Á ?×4\?ÀÚ?ɱÒ?â/@*û@0êÌ@fj@ #@%@Bb\@E?@y\?p9P@¥@?ö~À@ tö@1$?ƒÍ?qQ¶?Ç#?åe?š³«?pÝ!?¶îÐ?|$„?£ÄÈ?ÆœF?å]ô?ÕgÛ?ÒÉ/?Ùß?Ç…?ÉÖÃ@G@¯?ÀÚ?´ïh>‘Ì==¦Ð?L¨ ?ŸöÍ?ƒt?M–P?yR›?“Y{?yZ>ì’>þƒ?^ R?=\u?ߺ¡?ëUR>ãe™=Z6Ì>»h.?‰p?¦Â@ó?Þ)?jpP?}Û“?Ää³?Í/w?Á¼—?ÑÉc>Ä“½S}?·C?~'¶?®Ù@? qn?pé?`­d?h°?h’ó?G€?+qn@IlM@ih@/‚¬?÷N@¡æ@§?ç%?Xxµ?t“!?ñšV?únÜ@3S‹@?Ø2@@Ði@G1T@6¾¡@!^@( @Q·w@Išö?æRÙ?æCn?¼–?ÀøÂ@Ÿ(@6£X?Ó§N>ìÐ??ñÒ?éÌ@Sšp@NÐi?éß’?ú3q?ñBó?ÚÚu@¾Q@W?ë + ?j½û?ƒ¤?´(¹?¹+Å@:& @5}c@6Q*@2´@Š,?¸Õ¦?¡ÁR?p`}?š¼@/L@1¡™@õ @Nº?—!-?eW…@y‰@eòò@0Ié?‡yÊ?iÏ;?~vÁ?ŽÓ¸@@˹@>(W@±i@‰í0@)‘'?Ôºt?Ý?ë_ö@â@Fp3@7ù$?æÍ?÷ï«?³×?¼P?@h°@qš@ †?æ;¦?˜ûÍ?P'2?œ?Òº?Â6º?£ÔB?³«)?¤˜$?ªÏJ?è¹g?ðû ?^k@?;Xô?r&ô?m_å?TûŠ?É?›÷ß?†—1?©fÛ?µkÓ?ºZb?ºêP?Ê<"?¸Æ/>–?kèÌ?˜g>2o›<@Ý>r>òQ +?SÏ*?Bn?®ü?Jcr?·/#?£ÌÄ>ý÷„?@ö2?´œ?m£·>…DÉ?;î_?¥e[? ½<ùºÀ?Ÿq&?¾˜û>X9>n2Q>™»>»g>Þ&r>{ë9ÕÕ>>ï?2ñ?+‰ ?dì>·ñ(>ÿ\=q:‹<Ò±>já?¤ZV?“Š?mÄ>Õ6Ì>âš•= ¦Ç=Øß?™¾e?âö0@"¦Ï>4 Ñ>Jî’>šÄ>‡µ<^^?*Ì?ßÄ?©8=?»s}?r0ý?+Ÿ?"Ó£?ŽL>Ö8>H5t?‹Ý?³T?¢WÇ>ï„¥>òÝj?Dt_?ID=€Òÿ>ÆÎÄ>ñÓo?€¨?¡>?Ô …?ðb? ”>ï–?,‚?i^"?Sàx?H'Ö?q:?–Ä?B„?P”º?Lo\?HD ?/©P<,À>ý˜â?Ò<¢,•?]yi?€<²?E9?ŠûÈ?›ág?¥U'?#R>àç?RÉ_?y-û?&?ô>ù}i?°7?ó>«?‰ª>ú\>ú+î>úQ¶>ŸçT>–Ù>w>šr?*)T?š?qöå>ïv?$”™?‰k^?iH=>û­|?>tI?¸CŸ?ŸZ”>üB?€²?|þoq>â(.=–€ë>!6ß>üà»?­?½Ä?ÁÄ?ë^l?à{j?*ð{?>}?ÝŒ?Í0m?Î?Ÿ²Ë?^>ý·O?¢ª‘?¨¦œ>b-Ú> "l?¡²Þ?¦IðO=ˆÙc>\*>MíB>p…w>‰ˆÝ?w€o?”æ?…­?~ÞÓ?³?>þñÓ?µù}?æÏà?ÉQ?hjR?¸s¶?Õª??]`£>ÿ?Û?' +¦?0xp?U? +?o‘R?luÒ?pßk?¦»³?¿Ÿ\?¬`=¢$”>³ñš>ÿ³Q>ãa>ÉSù>択>ÿÚ>R6K? ?iªÔ?r7Ã?zÅ4?:)?Ÿ?dl?˜øY?6¸>­Òï>Ýÿ?.Â?CÃ?€:§?¶=ý+Ø?|{s?ñå‰?Û”ž?¿žz?€µ? +~p?¦?%‘*?s]÷?˜ 7?tv?9ý?}ú´?¬¯?}†€?:Ü?)ì–?6›º?$"h?©æ? "Ÿ?„?U ?€,f?§l?ßr +?µb.?€Ôã?…Ëù?‰ŒÖ?» “?øäÍ?Âaè?€ö¯?ƒx]?‰Œ—?^m?"ðI?^ž]?Ö?™w[?Ÿõµ?3!ß>(“Þ?y.?Ýú1?™Zo?<7z?’Èå?¼Ÿ?s!!?[þ>°£C>5°¥=Ĥ(?_ý\?„¿?nù?»?NãA?ÇÖ?Àd›?äï»?» Ø?¨ôï?ºñ?Ââ@?í&<@ø}?Ü!O?ÃÚ7?Áåi?ÃÙ?ÃÛ?‘û#?ozJ?[rÐ?Q¯?C@ˆ?%›?oÓ?Ú`@I?\¯?‚V?¶Ã?¡v¤@+§ä?Ã;z?¯,?|Œˆ?0™E?(Ö@%?ûcG?㪪?ÕA?ÄÒb?‹?¹W‘?(-?GL?#?ǃô?¼P?´B?ÀyÅ?Åm?Ó%¸?àÊC?“?>µ3?lol?ƒwg?*My?}á?¦m?dž.?Å,?ÅOJ?…:?ƒ‘?Êõ°?Û *?˜Î?’§¥@¥@ö?‡‚Î?…G8?Ô8í?Ê,‡?KÐÖ?U?¡h2?›ÃŒ?Ÿa2?«lB?ðÁ?Õø?P”/?’~µ@Bi?îÞ&?r\?”Ÿ ?Å·?’å¶?Ò‚?(Š?Óâ?AÛ‡?ƒØÍ?ƒÚÁ?ƒÙ¼?™õã?±O?'©·>0‡?ÛL€@$×Ñ@*®^@&Þ?Xp>€°C? †M?ÅÓµ?³¾»?¦çd?m à?WÁ >X~B>p?Þ_Ý?îò@6@bt?•Ø«?¡¡ð@Bm&@9–È?Èßá?ݨ|@y)@Ó-?èÈ„?ÇkÃ?#̹?Š»@ q”?ÎÉ>ÄÇQ?lÈ?âªT?ç¬.?åÎ?Ã6©? î?椺@Ñd?ùòC?à?Ÿ?˜ÏŽ?@ð³?жˆ@ 68@(ï @;µô?˜¸#>þ‡B?Ô‡Î?üé}?ÿþ@*!@*©@.·?âþO?Õ(É>÷£>>¶šè?ª"-?´•%?o3?yzí?†ýÔ?‹ÐÁ@Û4@÷?ƒv†?sIˆ?pØ? +~Ø?%/‚?xé,@ ˜¼?Ï =ÿ|D>±{ ?x…E?—"P?Ç°n?Ê”"?ʹ?ào?ü§?ÀyÖ?h³›?Öçr@#ëé@#çÀ@ îó@qÛ?éÌ´?ô‹i@, +?º|9?‚ùZ?‚õÇ?‚ï¢?ÙÇü@åô?ŸzI?hÁŽ>‚É?“—;?Ä(Ó?—±d?…§Ä?$kô?º“?·?\ã?â5?÷±î?ǃ ?Êãe@)|º@-"?éD‰?غ^?ŠÂÊ?ƒŸN? ¤á?Ÿ?ÃzN?Äú¸@”F@j‰?gE?Ov>‘JV>j ö>1g¼>iŽ?‡d"?vMŽ? Ói?# p?u†v?h¡ø?I“²?qŒ?² ¯?¯¢J?­3¯?ÆOÚ@Ì@Sf@ ¹ô@9±?ÂkÔ?Âa.?ÂY˜?¼´|?®ý†?µÛ"?Â)?Â!‹?Âh?ÏsÎ?ô¾:?± +à<À²Þ>·V?4?YUÑ?(?T²¬?Á È?åúù@#¯@üª@ö‹@üî@ _?÷R…?¤ +ñ?ƒs?Ç.? +@-èS@3#å@9ê˜@\²?[‹?’À8?õ?ý€ @à^?×rº?fÃD?4¼>èZµ?{%?ïÄ@ÆÃ@hó¼@=Ú?å:Ó?é„\@rc?éÒÄ?š›&?ŒUj?Usv?ˆve?Ñ.3?¹r,?´Ò2?Õ½Á@ •@Å?ÿ‚§?òJ÷?ÔV’?×¢Ò?¿I°?ÏÂ@z>?î@é?~Ô„?¡º@ë»@@ߦ@'ì?ïTÓ@.E@T ¢@MÕ?ÍÌè?Åšk?9¨?1¾?ðíö?øÚÒ@`¢?ø.F?ѹÜ?§Ø ?‚­?TN¶?ùŽÍ@MƒÑ@-õ¸?úçF@eÛ@ +5È?ïp=?–cz?ª>~?íJw?Ê /?¨?JŒp@‹y@æ@ÐD@‹?CIÚ?[ªö@¡@ +À?>ˆú?>]@šM@#ŽW@ kä@ +‚J@:·@Id`?Ò'à?Š%?ÿB\@Cº@)îH@.T‘@!º=@!@A^ü@cV@(›[?ÁáY?¯o?¡¼^?º·Ê?á0b?Ýôÿ?ÉÆ?¼×”?Ï|?“'T?ö»w?ö³ç@ü„@K@+å@èW?¸Ì?¤QÍ?Ç2k?Ó=™?“^ø?€il?Övä@6•@*3{@H$Ÿ@Äp?°ü?‡ä´?—E? Œ>@7{-@ü9>ôjÀ?7N«@ô @`@?¦d½?´0ì?PU€?\pP?›ê)?¥hu?ë»?ýb,@3®g@Q’4@CR@6è@×-?™Ð?Ðóò@#z@ˆs?ã;$?áQ@ FÍ@×Þ?³°?½Û?`Ô›?]zJ>›t=¤˜?-þ´?pÕY?ƒ½?òˆ?ŸK?±ÞT?¯© +?™o6?žV1?¼2˜?Æ»?ØJS?Ь +?产?èc?‡—ú?od@ bJ@>4?ÄF³?†çb?ÅÒb@Д@¥ï?èß\?Ù¾À?Ù1ø?å!@D@$ÏÑ@ ÁF@‚î?’Ê +?S'w?¬?£&Î?”ì6?„•?‘\©?±+-?¶ˆ?¶eÃ?¤×U?ôðN@†-?æKî?ê&«?´ä?š?λÃ?æöò?¶Ò?šV?kÈ?5¦´?O]?™J?™ =ÌÉ›=*ò¡?Ꙛ@ Ûð?¥,¾?Stµ?œa¦?Õ [?½Z?w!?WÉ?=›p?F0®?îPU?ðÑâ?ñð ?ë +;?­Ì?„Œ+?€Ã?|­ª?Š¹æ?spF?gøÞ?­uÔ?­dS@»M@ ¡÷?Ð$Ü?­‡y?¢n?’bð?Ã@ Œ9@~?æO8?æ;á?âQ0?Ë€ó?°Èg?¬n‰?¯¼?eh|?~¬”?™`°?ŸŒ²@+¢@öŸ?™_c?‚&?Ên"?ÿ¨á?éð?»?Áóø?å‡?çSƒ?èÜg?ÕP+?í»–?æ@0`@*Ñ0@!ó@Äþ@8@ Í;?ó R?j?,Àú@Jä@T”Õ@kPü@pû@% „?ØÏ•?édñ?î!§?ëË1@êÉ@Œ@FíŸ@HN? +E?6*·?Ùä@ã×@/TÌ@`ÿé@>f?eÎt?m`>@6N@oû@+§í@>-@G/@? ³@8œ@/±—@4žú@JSá@3Øó?DÑ?[–n?ôßS?ÛdÝ?³#µ?™3(?-¤ß>ù?6?Ž -?ÃM?ÕÈò@òà?ßÆ?!¯ž?b=?jû ?kIÞ?æ½?ëß!?¥Ø”?Œ+?¤pt?±èš?™±?’nL?qmÂ? x??…µ?÷8y?ù=?ðMÁ?éÎn?ÖRg?ê 3@ ¬Ë@?xV?Ù ?„ü“?‹óë?’÷\?š +æ?éAå@'q?~ö?qÖ€?ˆ?!åÑ?絡?úyD?©r±?{Ã6=¥qn?^ˆ?uøJ?Õˆé?½@«?¨†š?›Fû>ʨf>ÄQí?‚V?Lär<Ô·,>ŽXG?OQß??,Á?¿/?:½?¹J?N×?„×?‹ð5?–ë>Árò>€ÆÊ>6p&>¾øÓ>ÂýÞ?Ô?‹F? ÝG>ðà!>òU@>˜Ö?i[>"œ‘:Ÿí?ÇU?²­‚?“X>éÃ=‹Æ_@,lD@`•@;?;П>µyN>Áóå>õ˜?(šŽ=3ý¸=×H=‹®¦>˜Ç>ÏæN? W +?ܹ?w'ÿ?œw´?¥c£?¨%Ë?´?px•?`è°>ï¡Ä?¤?Lf?DFé? 7¯>ëÕ»>¼ÕŽ>ÇõN=µF“?qR“?²q³?‘?ê?pC?5, ?J?2 ô?_ïç?Q>kyç>‡1Ð>˜¥ƒ>ª [>»ž‡?"¤?‡$o?h6K>l>ZÑ0>I¥ã>9‡Å>úcâ>àð?ôé?Žàñ?†æ>øˆæ> ÷=8¸g?=0?vO*?©ñ?¶ ¡@,¸@P2‘?ÿÀd?¥îX>„U>‹I-?¸£?=Z?Ž%A?ˆ^¨?Þˆ?bÅQ>ý;?aìx@Ò”@°…?«?Š?™ƒŒ?4Ÿu?3àl? Y?3]Ñ?‘y˜?–.u@Üà@”?<¯?E¹ +?oba?eÁW?}¯6?}žÐ?&¾í?!°‰@{Å@ #‡?߶«?ãÎÑ?~gÞ?uDD?;ü?‡â?ÁW?’D?[>?\wÁ?˜/4?˜~Î?’+?‹£®?¥u?©¢È?ȬÓ?Ë`×?mc‰?BÚé?>¦L?Dà>°f}>IA ?÷ ?+˜F?b)ì?cB‚?ˆ­¾?šm?64´>ÿ]’>Bo?1´?€na>¦Ú?‚¡@ }?ˆB~>ÿºÍ>ÿÄŠ>ÿΩ?U?(">²ñ`>QŽÎ?º ?C¾?˜Éo?µO¢?§ª?§ Ä?B6d>¦Û7>þ¤³?!gä?EA¤?g ?kâP?p'Î>ò†Ù=|_?!í?7†>õ„s=èH>– 4?e?Y?5\¤?aÕ?€yÚ?€€±?€…Ü?yö²?fL™>Òj‹?ã)?x— ?†>NK?‚dö?ëß?¬º9?^Â?rj„?€ÑA?¡r‘?ÁJV?¤ð?…¶¦?‚w¢?€ñJ?BŽ˜?ÕN>–&7=ç?}¼?éƒö?¹[?‘¡@?=J >¯ƒð?½ª©@!…ï?¹ÒõY?¤?€ï?YÌ?$½s?€Ð ?‚–Ì>¿l>ÍÕU?pª2?zµï? ¥?£0¥?JŒ+?m¸d@óP@Ìa?•ú·?¡øC@šï@ž,?‚çk?p¼?9ï?C~ ?»ˆî?Áé?Ä÷?±•?ƒ¶?‘¨?«Ñ?tà½>Ë*„?D$‘?¤íÖ?Ä?W}?ÆÄç@kÇ?Íkâ?K¦$?Dèë?F™?DI8?:þs?·×œ?ôY‚?¹Æ`?–Þ?´¾N?Å%é?Ž@T?p¼Ú?;‘–?z?Ø¥ð@)Û>Ê®¤=<J?aôš?ƒ3?½Íã?Åa>?¹ò‰?¶Ø"?ôwç?ýxe?„;>?ƒFñ? X?@m?>O?Z2?ÆÅc?ÊER?Å”æ?ºáÁ?•Ôï?Ÿhý?±öŽ?¦,Ù?ƒÄR?miù?0­?vx)?¾³H?Ž‚? U?.ô?Ñð?Ÿ·d?ûK‡?šRD?´<>¾ >jÜ >¬-ª>¼?ë$µ@$ÔÄ@ŽM@A?ƒ0?òÈ?n¾?‰Ü¾?üúª@ %Ö?¥þë?šô>?YàP?H…%?®¬Ç?©¬]?ƒßó?›ë@)µ@“^?Š\é?™?ÅË–?¼r1?˜ŠX?š©E? 9?‰À ?h¬‡?zùÕ?—§ ?‘¡¨?z³L?–¸H?Ÿ4@’@$Â?ërþ?Œu?ÕÌ|@X?´\þ?7?ùW?Å›7@ à@$§t?óõ‡?Ìšž? -õ=ÖÖ?O€¨?‡øS?ŒT?µ ?f]¯?pº?fM?’å>?hÊÄ?_ÇÒ?‚óï?…+?¸8>?´ŒÒ?èT£?Ö]d? e«?,¾?©¥?˜l?ƒ +V?sá?d"G?¤lC@ÅW@yö?”0?L1_=}Ðé?@ ¯@á.@ §–@žï@ñí@2?Êrð?ƒ)ä?ã›ê@#çŸ?öv^?¶k?ŽÒÆ?_ö?S»?CË|?"Cc?«(?Ň&?ûµ?Ó%c?Ëa?§_œ?‹î’>Ñü>%D˜?•,?¾cü@¡O@!f@Ÿ?ùË_?òÚ@?ëäø?уa?Ðì—?Šv?‚†v@š/@ÉE?©ø“?¬÷f@> @œ?¤CŸ?§k?Ãwr?ÂÆÞ?®0?°òm@ +ÐU@´H?ª=¸?¯ø?»]?Åv–?þ +?ï€@178?µ¥Ì?²Ã? &à?Ÿhø?¥î?¼õÁ?ë.œ@cX@ußû@LÌM?ŠéÆ?—"?¿’?àCž@Ë @õ}@yÚ@ÅK@Æ@–G?|¾$?dœB>(&ü? ay@î›@ +³®?Þ€h?äöu?³öÔ?½¨Ž@8ü@@>?îÜ?ò £?ýät?ö†ø?¿/? Ãâ@4²@p¯?Å–?ÎP?yŽƒ?}8c?¹Á–?½Òc?á½ê?â¡?¨[¦?©/?íœÌ?ü …?×ÒÕ?Ô¯ã?À‰?Ø[?ø§@Nƒ?ote>ü¾?æŠ]@?£z?E«1?º=5?ìÁ*?Ÿp?Pš?„­ä?‘ef?û¨@;XL@^N?âbÇ?Ìé:?©|j?ÁêÃ?íüg?ÎEq?zg÷?«^z@½Î@ «Ö?Á??Ãúú?Æñ?ÅWL?˜ ?–ì?ù?ùw,?€L?rŒ;?Ø^_?áÖ×?­ÒF?©¢{?É_.?ØBé@3@ªÿ?ßô§?½Ÿ6@ÚM@:/'@ +cç?Ö“¥@*Œ?@c3ñ@¼¯?Ž×û?ŒJü?mÇm?ˆº7?¹zû?»X?Èf&?Ö@ó?íÞú?ñ=?ô3Ñ?ôÇ?À¶–?Ç/¥?œ8g?¤lm?ÞÊi?á¯Ò?üê ?ýK9?ÉR"?¬l6?ßãÈ?÷![@?c@ ]?Ñ ?‚›?°Ã?õUÊ?òù @BN?×)¼>ôc4?*«?à]?Þ†/?é +Ö?מ?,ô˜?‘÷?AIp?Q5?ù—á@‘@Ê•@?È«Z?‰vÚ@½Â@QŠ@úó?fÖõ?t?Œ?~…Ì?‚)?—d?kV>ñ¤þ>ñŸ?*æÜ?Ýx?Ñþ3?îÙ%?î…É?ç8?ÀZ?¨>u?Ï´¾?ñ“™?ÔOD?´µ?ºO7?Ä2ï?äG@å=@€?È q?ÀV@?¯äU?²4•?”Ÿ?˜öÓ?¥Cæ?¢ÎÅ?r6¦?>_ ?næ?Ù5‚?ÝVÉ?²XR?²?%?²(þ?²Ì=[Fk;¬Ë>Ò»`?l„?ï˜L@€?êüL?±SW?½C¦?Í=?æ\Y@&xÚ@#õq?Tš?3ÝÅ?mX?m²û?î‘?°›?œŒë?Я9?Â=i? ó×?‹“Þ?\?a'Ú?¶ ?§„?Q®é?#˜ù?W="?|L?¼4—?Ò”?žC1?m˜Ç?›—d?ÌÌ?¸ ?q>?VñÄ@±C@ tn@;q@IáÏ?¤Ø>ää?;£å?²»?§ëù?­œ?®öÔ?ã€?¿s?Êü®?Õ—Û?¹_8?¬¯\?8o†> |>öÖê?–¤å?Ÿ¼h?¨Þ?²œ?ø)p@fZ?Ð^w?¬g½?ÉJ™?ãb?Ë­à?¬5?½Ô×@|1@WÈ?ç}?åIß?(•¬>\?¾=@'¶ @Œ\?wdÚ?•-¹?óBp?øn?üþ¸@ñ)?§¯Ü?„Ãü?†še?ƒ:¬?sËÑ?já&? +@!~@†:@3eF@8w±@5‡@A«”@y? ¨@ T@~Lx@lØ@'tÿ@$á@Àù@#?›Î!?Ls@BØ@7æÛ@½^?åªð?öŠW@ðº?ó 3?™–5?¤Œ ?•¦L?–ä­@77Ô@s&u@†Ò @+È@oÕœ@µX@aì?Ë~'?´ÿw@#ç°@-ö•@Ïå@"kÊ?½.Å?dBÓ?v8]?’dÄ?Šš?‡e>ÿ*’?dªK?cwª?h¿à?‰†?×2^?óÞ>›­p=•¯ƒ=l=cœÀ?Ò¨?¤-?g~,?†>?°¥~?šíÉ?ah®?b +µ>ñÿs>çÞ?Ïp?F5?¼¿>ÞÊ®>Ò§A>4.û<ž7}?_Ä[?‡»s>a@>`bŠ? /A?ì]á?éë?Ç‘?Jâ? Øq?„³>Þ: +>-Œ¼>ÿ &?ˆa >¡EÀ;#ŒÇ@ Ÿ?÷ý?e€“>Àc÷=`Ñó@/ûà@(H€@0> ²i<óñÀ?rß#?Zk?(‡†=D¶?ÿAÝ?õ@´?[ö?49>†­>Äk?9ÓÅ?C0?–Põ?¦Ìá?‘=i?0À,?(ð>ï¹?H]?nèø? ¬?Ðä?ÕiÉ>N`h=›É=s«=/³©>¹ðí>óx>ôì>ý†? ×õ?à)+?¦Ê?UO>ªf`=ü0÷>¦êR>û]„?`ð?pN‰?´Ù?°·?oRŠ?fÝ?^j ?RûŒ(>__»>¿3ý>Ñã ?Wt??Þ¥>ý>e? Ìj?»©?j¥·?Sà¾?9"&?+f`?Ÿû=?ºj…?±ðÈ?º*¯?±ˆ¾?£]³?}ð?@â>·[L>»1[?I.½?M•Ë?R³?2Â>ûÁ~?D4´?–Fé?°TI?ìr“?Üor?¶+\?ß«–@`\?ã}ô>F÷á?÷A?½q?¢0>üä>ñˆh>µ!L>´'²?Ôo?6T:?½ô†?³Æ??wt?G Ú?¢ ?ŸK&?N Ì?Rd?V½„?^Ïm?Ž?ŠáÛ?ë%?Öj?{ ?ç?òìn?ü…Ó?½6Ì?¶n??íÿ%?í|€??<Ó?2/?:Ј?Cmæ?µ‹ ?¾üì?Œ–½?ŒŒ ?‚ý°?~ζ?I{H?:€Y?6?Ø?2%>KŸ?l?ÌèÑ>º&‰>ÃÞ(>ÿI9>"†<þ?9‘]?~ÝÕ?wNÛ?l® @™+@¼×?‹¬ü>ÿ§p?C$Í?\Ç2?6”ë?+\(>à>ò>—ûÛ?@ùÄ?÷È?ÓW×@|M?æœË?Ëù"?ŠÒ%?V?B—Ò?<ÑÆ?áG?,=?tˆ?!ä3?PKS?xå?Æëä?þ³Ž?Ô¶ž?²þ«?\¡?]Ô?=e¤?fì?säq?€p1?€wˆ?€}e?˜‘?šê?3Ã3>‰è ?D=?L"#?fÝù?ib?œuÖ?Á +É?…“|?$&v?3Hö?K€ ?í?®”¯?²ÌÂ?·›?™„?î­?ÈN?z©?pÏ?bïF?Jà?HÓÌ?’ê?±|Ñ?c—?#?ŠÉÉ?Ê˼?~HÙ?;É?r6£? þÌ?Ã×?Šá6?€ v?wÏÓ?› Œ?§Ö¶?dêi?£?¼p +@‚Ø?•LH?^œ>×ß=sA*>«ác?¥Ç>“]›>wòµ?ƒOP?­Ü­?†T*?fzë?ˆ'?”‘Â?ráù?U÷U?JˆÅ"?êó@[?L2‰>Òxÿ?k6†?‚Lµ?vä?é4?ó0¾@w?±Ï>ãP?¨4 ?ª¿é?j÷,?cü¹@m@&Ä>©ƒí>¤E¯?¢W?ëè?É’ã?´þ?¸>>÷Û¼>ž¯?âß?ÛÃ?ÙIw?¡o×?¤ØÃ?_¨?–´Ö?ŒL?uV ?—K?}[–@îr?Æì¯? +Ì„?€“?#Qð?ž*o@G?·7?#þd?ƒä?.?øÂ?Í1?¾;ú?§är?ºœ·?Ãz ?¾?»â?Ðk??çò4?âRY?Øù·?ʧˆ?Ū?KwÌ?p?¥÷¬?Å.¦?Å7¬?Å<2>†n5½€>ó%‘?íë?…ª™?s?8‡Ý?;ÿq?Dm÷?OL|?ƒù?‚1 ?V•?Z±%?‹Ëï?xÿ?EÐØ?zäÃ?âA?Ú!Ü?»8?¤»«?ƒ½?‰Z?“¨À?Ÿ]b?¹õd?¬á1?’¯V?ˆ;?€ ?‚^m?‚Qs?¦ëW?Ëm•?|¬¡?ÏÍ?wf?›¬?¿¬h?ÐL¨@Uî@$̨@ U!?ø²4?E,>ùÑ€?ÈwŽ?Ú2?ß<ª?ßò–?wÅi?[o?ÁÂ?ÅÊ7@óº@=à?ƒÙu?‚Xõ?l b?’‚Ç@ ߤ@8×?…÷¿?“üD?¿P?‘Æ>+±i>N`>p•ñ?•§±@6I÷@ +ËK?›v?Œ©Z?s»O?í­b@5ƒÙ@?ÔI?³Æ ?•j5>ßÑ•?5“î?”ñ¡@by@$ ¥@¼)?ðâá@ÍU@ÃP?1z<Ù¨?£’À?¿]¥?µÕ…?°}~>“^.>mfž>ˆFT>™Õ•>«nÝ>ÑRÜ?·*±?Ä–ø@;³@ú>*Ä +?ØQ?œ&:?Ä*}?¸àk?n„? € +@ªs@ 7Œ@Oå?ÚP-?ƒG¶?å@DF‰@ý‡?’#&?âDÿ@;\@ —?êdÃ?Í­?ºhõ?«Ú¢?–·#>ù >õÚe?F ­>‹ô@@¶~@XÛ%?° ì?Û@?A@D: ?Á…`?‚Ç4?‚¿‹?‚¼~?Š¸>ÿi@Š@!–-?ÙB?ËïÆ?ö4¹?øs[?¹Î«?²~Õ?©Ç×?®<í>c<>TÉ×?³¶V?½ð"?¢g?¢oŒ?Þj?à?ó@ cY@ ‚­@Wž@•?5®q?:?Š>)?‡Ú»?…uÓ?¢¿@ðà@U'?B4o?vò$?·ž?µ/¾?²Ä"?”ó >øº?G,¢?ÂŒ?Ü£Ý@æß?î­'?<îª?Ž›Î@ Ö?÷@~?®=×?ç¼N@0Üß@$â·@^R@ §ã?÷ôQ?ªö<ãuí? ÈË?¸B?{dæ>jÜ?$Ò«?¤6%?ª Ü?ÉúM@åß@9ÅV@&WÁ@ߢ?Þ9\?£]k?¥Ô÷?¨NÃ?«'Á?¨=Þ?•0?cÊg?Œ0?·2:?ëd @ ž­@å@ a@ u?úÒL?ôÝœ?÷£Æ?ð^È?Ð…r?ºµI?•ZÀ?”4ÿ?€[?¬,@cÁ?Ô?öY?ž?è*î?¶1¹>½?=Ó?Ë7?Á³×?³^ü?ëü©@>öá@º.>>uŠ?wÑ?Óo›?×ãx?ЊÒ?²×?+‹ú?[IŠ?óGŽ?ßµå??K®?WÓY?ÉÚ?ɉh?©xä?­ú:?¾'?Ãa?ýØî?û?Ç•k?¼‹…=.<µ>_?pGx?j“²?°8 ?®ð«š_?æŠ@a?…J&?›:?–…×?Ã@?“v?iïR?ˆmº?›‹?´÷?½ÉË?Æp>?ÖÃ0?õCµ@^·@Óü@ðm?ÂSD?Ur=?}A]?¢ž?¢½Ñ?‘V?¦Š?ù™Ö?û +¤?ô—?×¢?*ä4?vô@7Y™@+j?¬š?³ÈJ@.æF@'!S@м@ ñF?¯µ$?ž1?10/?ù{@[d@8%â@ ‹?ö¬¢@¶@!z?ð.Ê?ºk?É1¡?ãKÞ?¿£c?ƒ¢E?¯2?ònÑ?ÓZc?£ª?g!?w;V?€Ss?±?¾7ü?¹œ?¶Œ¨?~ŽÛ?‚Z?­D1?ª¾ø?žªá?¤„?Ÿ‰y?ªÆ?å#ó?ûÚ?@%’>@8 ×?ú=C?©ÑŠ?­""?°u'?ä—b@ߥ@=³¾@àç@X5‘?ÍK‰?ÄEÉ?Ëç?Óôc@Èf@1ˆ?ï>)?æ=>ûñÀ>°Ñ^?Üîj@/'?ÍÈ¥?¶8?’w^?r¸H?ÅŽb@m@žº?ºƒ&?³ ”?­º|? ãÅ?¤àÊ?‰>ñ—Æ>ñ|?£ø†?«»?¯Q¹?²íW?‹(è?‚µg@!@9W­@$¥•@0¬?ým?´ ±?½òÆ?àÃ:?ñðÿ@jÓ?øºÒ@± @ƒ?-ðÖ>ùá?•o½?ª3?®×ï?²Ýƒ@@ÈÓ?àfë?dâô?‚j³<)1Å?>ý?]Û"?gù@?ˆœž?¥š?±JË?Ȉ¥?ì&Ô?âöÍ?ÄVŠ?Ç@ ~@ ?¶«?¯·I?zà¼?YÄê?sø?†Mý?Úd³@¼¥?ø%ö?–®?‹ç^>ê7>éý”@g¨@'Qn>ú΄=t°?8ýÉ?M?òbD@ø@ ’z@ –@/²?ÔˆP?ØÅ ?¥?§9Z@ÿè@:­?ò¡ö?ÀN?ÿÚ‚@.µ”@©{?Ëîk?̃ @ÿ×@t?¥R?‹ ö?oë×?hCÜ?ñn@(ì@ô‰@´?øø?Ì£÷?¾Ã?1°Í>ÿt?¤LÔ?ÀG,?‘·?m)‹?Ž:V?¬.0?º5@dá@ @îN?û°q?ºœ?™”?¶ô0?Þ¿?ã¼?Ùæ?Û"2@pd@ûx?ŠM?“-›?—‰Ï?šEÎ?Øt¨?úý‹?ÿí´@ |@m1@Y"Ò@Tl@ ñ@ 3&?Údì?¿Î"?¢MÌ?†F#?ÓÂ?®Eœ?ÔÀ¯@ûä@Ÿ¿?•%?ÅLˆ?ïy¸?ëço@1VÊ@`ø@5ù#?æD?ÛçÈ?¿Šy?ÔÓ÷@r£ù@W‡&@vº?ÚŒ]?ð,˜@öÞ@h%X@žJ @‚ @@ +¬Â?Û®?æ“Ó?¸ÛŸ?ü¡?½ß?µ¬?DÿÕ>÷O0?8G?ia?zžþ?©?“d’?ˆÑê?‘&\@ÿü@2?…™ƒ?‘"Î?ì<Æ@é@1è@.ˆ?ÜöÈ?Æ(¯?÷%º@Nž@ÿ??ÚkÃ?§O ?&ÌÚ?ü™>?Ç¢>ÍÓ?çÕ?è ?·=?ÁKP@ +œØ@:}??£ö"?|I®?èF?|MI?w_q?˜?VÒ?U>úl¨?n1?{Ã?Y‡o?-5n?ÍÚ?=Í#œ>´O¤?T›?Mx?,F/?&T?Uo?{}? 5Ý>³?:C?’“T>Ñ·£>CÈù?Jág?Zu.?6`¢>È/b<—Pµ>Â>éM¹@i„?èŽg?Q(d>›¸= ¯õ?ûÛÉ@rŽ@=œÚ>`È>ö!Ä? Žì>ãö{=té?=ã?•Äv>Š³¯>nô‡?”;? 0C?³ÙS?âÅA?˜C ?6øç?2……?7”×?'·Á>ïÕè>Áyg=Ì\Í?‡Úå?…Qù>È5Â>Î$É?~ä?Ò*>õ6+>ó/Ü?Oþ¢?mž—?6ìþ?&(p?û >ôº¹>z«ý>L¼Y>õ¤à?{½?]|I?CRþ>çšù?B?Õž(?Åéc?‰Ò?~Ën=%Û?X½©?]Íh>ŒÑ¾>\õå?zgJ?R»?y…3?yý?Z ? åÄ>õ=sô¼>Ènå>ùöÂ?ãp?±#?U³v?&}M?+?Ê5?®dì?Ḧ?^U;>iŒ>ó<_?/Wç?Ð8>ûˆ >ØN6>ºÁy?o– ?Ø„?²´Ç?lÉ:?LÕ6? |¼?.y~?€¦»?4à™>ä +?½…h?Å”Þ?ÓŽù?Á+Õ?™”µ?‡ +a?#ˆo?Ñk? :Õ?=>¤?}Z?’¿r?î×Æ?Êøä>žš>>²}>ý®÷? è?ÑA?–"Ê?}è!?¦‰?·à´?¶k?µ”?}b?ûé[?ù–?Œr?÷ü?kòÑ?e C?Ô“>þe>ãù>ÿ!?e>þ®&?0õe?:þÀ?xyÔ?~×?~Þ”?~ê¤?n?S#;>Íuä>»½>&­"=ÉÈl?—”?1ÒÕ?%?aX>Ú@<ö^=Ð]?DË?¯Û?"Р>ÿÅ>‹õ$>N ?x0’?¡î~?ÌAç?Ý¿:?çv?ó}ƒ?Y°k>ªáé>ÖfL>Í$é?.~?MoP?—ÄÅ?·žª?WNZ?:q>FDä<>¾F>¶…?;‘?Pë ?oËJ?x¾?€b?ž‚ø?¯ÃW?­²ÿ?«Ÿš?ÜÈ?€ƒ£?4sÒ?Žf?¾>ô¬÷?‰ ?Àô«?²ª%?ªÐ¸?¶wR?¶Ë„?7ï¿>]eÀ>¢Ùß>Û1?âr? Ì2? 1Q? +©>fS=O1>´óW?Õ.?I??jÔœ?KH?@H,>ÌÊÏ>ìo?,°}?,¢?ˆ(?‰g?•Ø?¡Ðt?M ›?O…>¢ð>=ÿR?h©§?´xµ?‹Ãz?d ´?¶«÷?á=X?Âÿ~?´';?¸X“?¼¼?ÀR?¿-ä?â"í?ì$~?ô²?ù|Ü?£Îš?Ç>íI¢>’™ï?‹{§?¬Mö? ¢>™!Å?³ç?áÏÕ?|A§?Hê@ @°@"’n@_@#j?pQÃ?>G8?˜:N?œæÖ@*'®@:/È?£qí?‡QÍ?Š”„?„à(?À«Ë?ÇLÞ?ñ’n?í.¬?0B?3-^?‚‘?„[õ?èpU?é–1?–ãw?’¾5?ŽšA?”ç;@Øö?î O?´\? <4? •>í2> o•?&‹q?`8^?ܯÍ?×ÚÙ?ºÛ;?Å 3?Ô{G?á@•5?Á "?^? f?M?R +Ô?¦~4?y‘‘?"Ê?…xN?ÉÜÀ?¸ìƒ?¬wJ?¸ÎŸ?ÄÜC?Ô0?åw @ˆE@ª—?¡²?4s?Ïep@\Å?ׇÅ?ʼn?Xü¯?n?”¡?­¿`?¸»M?½þ?— +?¢ü?€#û?|•?à?o=ÌÆ$> T?¥â-?œ±·?+…Õ?/¿Ó?3øÞ??Cs?u1Ú?‡<º?¥ˆÓ?¯i?ê]½@S~@9)¬@1AÑ@6@ ?Õøi?µHÁ?ƒÀq?³xí?÷²æ?®Ù>?!6É>˜cj<¥D?·?‰?¤ž×?²¸˜?›ß?‘;?â.Â@Ѧ?’_ ?^wP?™•«?«ð¶?˜0>ŒœÜ?ä2“@ù?Öl?Òo¾?°ç?¯i´?ÅxC?ÆH/?Õ³:?ÏY‘?€-?€F =ëàÌ>f„p?ƒÖS?o ?ÄÇ?üñ@Z¾õ@2ì;?¦è ? sŒ?™úµ?›9Û?³;q?¹@8?®{ª?Å?ÛW@ §@#/@ÚD@ +:Ï@QS@,@?°%Õ>ü®>°Ê>…L¸?Ñ)+@(Ÿ?lþ¶>ç”&>Q—=«³n?¤‰c?Á¼§?Ž™¼?‰:Š?.(ï?+˜†@ @z>ÑC>»ô)>³$9>´¢þ?6CÂ?J‹?¸åû?§c>Þ³?9—ä?5$9?0³L?‚+@\ã@ ,â@)zð@a?ê²Â?ÐgB?‘ÅS?ð­@E?þ‚Û? H¡?ZÒû?ž?F?„g{?T5?”??²¢C?î‘@ N·?¡µ?ñx?-‰¿?B ©?¨>ëA¶?ú™ú@+}0?E?Û3@z@$¿??°[å?‚ÄÚ?w`?xO>\À²<þ Ÿ?fOñ?‹²L?ó‘‹?ýŽã?žò ?›•?DQM?Eî/?*?Ü?-nQ?&s½?!½?Ô$?ÎR +@ÖÌ@ Œ?é,ä?잌@ÂÒ?ø› ?`dI?u3?µë\?¶ÀP?².?¸x¿?Ã[?Âÿ¹?ÅÊ?Ò²˜?ñªž@"T@2ï@#."?ôY?äó?² "?¯«c?‰D?Ç·;?Û{ñ?´( ? +É?;`Y?ï?‡’ï?ZJÉ?Æ¡=@C”\@Ü?m’Y?ƒVú?’K:?´pC@¸?ÑF¼?…©î?”t,?¥gË?¾Ý?ó¾I?¯ˆ??D+?¡“ ?¯L†?»`/?ÀV?½ ¹?¸0?²þ¡?Îy€@®m?Äi?<¹F?v6^?¨_0?Ó?Ö@âK?ñÆ?‚TÑ?5„ý>46œ?_e+?õÕÆ?Îp?Ú?HýQ>(Z°?γ?¥ô?ÁÉ?œø,?ÌqN@zÞ?ß ÿ?˜Ž‚?[ØN>‡)‰?;œI?óè»?Áš>ÿf?ƒ§O@z\?ì «>½¤”?¿?¼?Â@`?ÎX]?Ò±§?Õ¢?Ìù+?¾í!?¿È¨?¿¶Ó?ÇÝ€@]?íÚ›?©º0?©]}?ÎT?ÑAñ@&@@¾Ì@TÑ>úvÍ?%â@jí@a©h?üX?bi@ Üç@ Ä ?³—?²s›?™ ?ž·?ñ4þ?ü•:@@±G?Äȉ?®ÈŒ?Ë©Î?Îr’?šaØ?ƒÏn?ª‰•?¼Ú?¸ d?³ùÚ?ð ê@Jz@`¦@(E@$@°}?¿,?{ ?²OÈ?ýq?ÇH½?Hð?Fú-?Ifó? Ž@ ×@ å`?»ÉÐ?Øg@Žƒ@²n?béB?~ç@¾F@Î?£xŸ? ´$?îUâ@p?üîŠ@£?êµ?çà©?˜“?‡"#@ÿ@Úh?¬Af?Uâ?û’A@@œÃ?é¹?Üm¾?ÎU•?¯ÐÃ?–ï]?À”D?ü¦­?ÛíÏ?‘|³?²÷s@ ”@þ?î ©?îƒ?ËH{?Èd¿@ML’@DúÚ@¢ˆ@ Ñ?ˆ$Á?v?…îx?³À?Àù?ÓœØ@yM@ ?dz?u/Þ?‰‹‘?½”?îš?vÿ?Ã~z@%˜ê@–Y?Ä?½·Ó?Ž5ù?–9=?Ñÿh?Õ]r?ª—»?»m–?XÚ?D|å@z@-Ó?å¡I?³øD?\ÿ??ŽE?Î]w@* P@@ÅÏ@aGW@@™m@ï@ rc@'Èò@q>ñ•ñ>ñt†?ƒT?q[?jq?n„?—ö?v¡? «ß?5m³?Ž´|?µSæ?ž‰Ñ?g…s?Ÿ¨?òÍ5?öy@<@E„b@ ª?úM!?¹cö?¯çþ?±\Í?³µ?n:Ÿ?;N +?©8¥@Ðß?ç!^?—ƒ?ª^Ü?ÚŸÕ?á U?ø¹V?ô£¯?°*ì?¯òl?}ç_?lÚ2?îça@ ]Z?Á])?Ž;­?Âï@ˆo?çzE? žh?´TY?ЯD?ÄK+?±'™?°r±@^M@ûf?ÄI?ž‹Ã?´ v?Ü—?³jÿ?¢z?$v?U¿?;£?xj¿?pRÂ@]t@«?ƒ!?­ ?Ð @2(@"/?èÇ?Ö…?híe?pö?‰^î?€‘J@+€@I8?É0P?3t?²jZ@ñ@ óî?çjK?íû@#‘@%M§@ûŒ@T ?¥bË?f³›?¸Q_@³â?óp ?ÀÓ?ä.Þ@,Ù¦@(/'?ì€f?åÿ@¨A@#ÃÁ?¹!o>ð–ô?*°?}Ð’?ž¢Š@{w@²@g@Z]¯@aÛ@^8?ÊÉ:?–-@ jó@…Sb@n¿8@#Ši@!?ºœ¶?¢=?uRÓ?dÊ ?ð A@5 ä@9aç@*?/@.¼@N}Æ@Q ?ÊUÍ?Çl™@|@„;?ã^é?Ó&…?ÞE?ãëº?êÆû@Ò@!<@/A@"Ëï@(9|@+òð@4ßÛ@?&m@.¿¬@?—@#@3|Þ@(³@%¬9@A‘@5™6@6 ?’ú5>JëG?˜üR@ «@ Ä?ƨÔ?ůs?‹µË?‘}°?·˜ ?¦Æ?Ò“íßM?3l?qb?…0?3?®èy?ÉU’?£Mc?R·Á?WÜÜ?µ„C?¤¦=QÉ{>hÔ +?tôè?•}ë>÷þH>õ—•>›(Í>CD¡?T­«?vЭ?§ˆ\?Ÿd?¶eê?¦-•?O–ê?RÅ}?Ì;?ê^?†|x?~‹V> š>/@>çè?ÜÎ?Y‹†?Lµ=¬e=ã^©>䢫? Õ?WÁÑ?Lï?nît?à¢=¬Ö>Ä¢í?£¥?½*?£|Ë?¯W?±ÇÚ?ùæ¦?à^É?z—8?‹2> V¨=nè€?6Æ?!QÎ?yZn?KU? å•?jƒá?€è?yô?tO!?3;£>£¦=p@:z@Õ’?©TE=ÇYã>¦¯Ö>‘U;>H–Ïåt>¼ÛÓ>ƒŸ>Œ1Å>”Æø>Œ,Ó>#Š>—n”?¦l+? ¨1?g±˜?r®0?«>ôŽ>ù$?]%?Jxï?d9>ÂMè=Ä°Î=R¤x? ´/?Žv?4ôm>I‘?¡&?€nó?€&?£>?’t£>÷G>Ý´!>6N>e>>»f{>Ý?¤x:?¨”Î?¦¥C?­+[?tnD?w™¿?JÄ>ù^.?U?Y¥—?aÀË?aHz?s‚F?z*0>¶>'•Ø>Œ¨=>•ŒÈ?•Ò–?Ö2/?J³’>‡¯:?3ï?{Cã?€¹–?wxÕ?B%>‰>{ƒð>Ìî–?Ì©?Ãß?l›w?³§?†F?C>¡Õ=‚[|>e°‡?ÛA?š#€?‹q?G'ƒ?uý?§Ii?£&?’¯?j`£>ø°?;Qö?ÔQp?Ç{D?ß>þá>ý˜ž>ã\Ô=òX>KVÝ?hŸ?l_6?p®¼?t9Í?t¢É?tÀ? +³"?߀?~0V?~:½?~HÚ?€Ì¬?Ò/½?ËzZ?†d«?~°¦>ÿü2>þ—»>þ¡¤>þ«`?™û?ç?N„ý?KéÞ@È›@Q}>ËÌ6>й>±ÂÜ>ÌG?¾¿œ?Ý%S?ûnd?ÿ:?Æpô?½íL?/ä?lÁ?Öåx?öÕ&?8 9>Ì!È?‚w?!ø?‰ºï?•U?‹E>™ˆ£?zãô?´*?ŸhN?¦ K? æ^?™½#>îY‹>,Aå?€f?®Å?Èež?Øâ?Ž"¾?\ª¼?©>í“*?](?)>1é<ý¨=£i~>ÀÞ?6]b?€Z¡?ª%„?À• ?£7(?•;³?\`Ä?2x?CÊÇ?F¡1?@ø?C_”?ž‚)?ÀçO?˜–l?€¤÷?Òø3@]¨?¶ú(?€½ó>ÂN? ;0?j~ +?¡—r?¾c?_´ï>ö8”?ˆÕN?³Fa?’_|?a?qÂ?c1…>£’¬?ˆî ?Ò¦V?ßç?æ`v?‰?A›@?@îT?9Ñr?zòá?ˆýŽ>®1ˆ>|o>ö ? R²?·9??m>? J[?(¯?fð?¤{>n‰>-g°?üa?;:V?te?ÁQ?Žý÷?ŒëB?’.£?—ó–?(ê?æ[?‹ªi? f?[$¾?>½‡?§Áç?µ?rX?X Û>€Š>IS@P@ï?ûÑÃ?ú×Þ?ÀÆœ?½÷Z@ûe@!›v?ŠC™?…¨Z?q?‘WÀ?r?|¯7@(E@@çª>Ö¬Q?Â1?˜¡?Ÿ"Ó?Ãæó?µ>?6o'?N2?}·Ó?‡Å?Ä¥?¿†·?\?‹ô?‚Э?‚›ƒ?sǸ?t«?Œ×¯?Î!@3 +^@/€¢@!K?Ê +<¿Å>n’? +×?=6?ƒQ?sà=ø}t? ó8?ym?¦rñ?ÄÈ+?—Sý?sŒ·?){?ƒ?÷?Ùœ@ír?±\¬?ƒNb?¯ì¼?È=/?ñÏ?öîÏ?±»Ø?œI¤>°Ð­>ç>ýÚ½? ”_@0¿6@C@Ü?ýrí?€0T?w¹Ü?ÚÉ ?ËúÃ?@» +?TÔý?žbà?ŽË|? +?, é?³|¹?©E6?¢=ù? '–?ŠŽÜ?´3@ Wý@,ÄF@u@Ig¹?åË~?˶ê?œè ?Šë=?vÀ?Ù:‚@}Y@R?ÄØ?qJb? \å?•ùv?Å«#?š?ƒËG?™ ?¦ÞD?’Ô?„Z¦?ß?Îç? B?¬¸~?šÇ?ÂÐ?ˆa>?ƒÓ•?'/)?-›+?°óg?´O?Öv?ØS¹?­Ú?«­\?ƒÐo?…™e?Šá€?TH<ìÛ„?mS@ ¶?à3ö?+ o?‘bJ?ùo2?Ó->mV>ç¡Ö?^Á…?‹gÚ?®&.?à +*@½–@ Úa@ 6Å@ Üí@›Œ?Ǹl?š¢µ?Œ:?ƒ¬q?™æ?*9?aÈ>†+ù?Ÿ8®?Ák¡?ÿ€£@SÅ?5Ú#? ð?¦•?Žç?]»î?s]? ‰?Ðï?]î?`·›?“VV?…ƒà?rœ>ÝC>c§?O¿ë?Š?È ì?åg@JØ?ûïq?jzu¶>=U?Ó"2?Ó’û?új?ñÉo?ÿÄÕ?öÎ9?Ö~Ÿ?çþ@Cr@;Ù0?ÃbÌ?¼ã?‚4«?„GÇ?Š„&?~cÄ?hèç?cÕ?%»É?Dbs?¾Íš?Á~“?Âüö?ÐÂÐ@ä¡?àà?j@-?¹ç£@3uò@*ëS@("@1„?Â~ñ?¯¶?œæ?Hi,>rÿê?7#‚?Ùéb?µ.‘?}gË?‘g?ÂO?ž ™?,é»?Ÿv@•ñ@Ò?Âóä?ª£ ?' ?Ħ÷@G}?ßôã?U7X?íßÌ?r“ @´ +@ ÇE?ïÎ?æé ?Ó\+?Ȳ–?™"?¡*s?½H?Þ=ó@5ù‰@4®‹@à@~ç?ýñ´@è@)"Þ@!ì?Ã?•?Àh½?¼ª?¹tn@ =|@B>A]º>j;×?+:C?Jh,?{¿¢?|Õ°?He ?=°š?„00?”?³€Ø?¿–¦?z§?_.?ënÁ@ ýý?ôjê?ïên?úu?øäÿ?ÏÍ?¼¸?ìç@û:?âí?ÏU?͉?Ì;Ð?Ú+*?Ùcš?¦sÒ?`*?Ÿ/ù?ám¤?Ñð?Ç•‘?ÜU?ó›”?ã9°?¹<0?¡\˜?(“?]0½?¯çm?»ˆ@ +|*@¯\?áÐ ?àÆ‘@„?ëwi>v†>9ʳ?k¢ß?‡­R?¨›m?¯Ç?Êeë?Ç¿[?B¨—>ÿ?Áío@#†?ÜêÛ?Èl9?ãÝ ?÷Ë ?ºØá?w—^?£O?ÕÉ8?¸…Ø?í/?¨¨=?×Ào?Óˆ{?ÓC#@…M@¦ÝÀ@ž´b?ÉûQ?Öë\?R‚Ð?l‘$?õRÑ?ôûÔ@wÁ@¯@-Av@1<Ã?ÉËø?n?¢°­?£›ô?å—‰@§Ý?ß?t·Ë?¦üŸ?û^@é@ 9£?íÕÎ?"ËÍ?4è?•=U?˜ªü?ºñ?¢Ð@S”@M]?öm†?ê÷?©L3?$ô>Ãߺ=ÖH?ˆF@B}@Ú£@)&±@0µæ@,!Á@%¬?ø–K?ô.?m³ +?W£ç?³8x?´æÑ?:|>ì[³?“n>?¨¯"?º¡»?»&?ë= @ +”“?ÃTG?7rB?‘Ü@h€@ 0?˜ß›?˜UÂ@!ž½@)'{?Á/:?³.N@´Ï@ d?À$í?Ñx?99>Iù#>ÒÓ_?9Ó?jì ?²If?½£µ@ ±—@ ‘ ?„ø?os?Ò³¨?ÛŸV?—zø?Ž"®?då×?'bè?”U ?òg?Ã+Œ>‘»L>òh@!¥Ë@'­f?¹J?°ja?KF>?D°8?˜Í%?°&?Ç-ï?Õ²?´ª?m‹?m=÷?Ú·g?Þ¿è?¯Z?¯@?#ù…?OU?…|±?“qÂ?‰9?“xO?ÖÓ@FÁ@ÿ>Þì->ª™e?Ї+?ÝIP?ˆæx?€¿#>í½ =µß >àç—?mÄ?Œ ø?­è©?»o?ùnH@)K@ž·@ +¤?,zA=*°?•€%@ +†8?øé?½Øy?½ýK@,ü@±}?Ø‘5?×æ?±gŒ?§„H@Ý@#)@%?ËlÈ?àÈò@=wj@;³@pÖP@‚é¼?ø{ö? òf@$ ,@dPÎ@Yn +@S’¹@K9“@³¹@”Š@I<³@Ajw?.Æ?'Šö?$ª?¾|?¤0e@+ˆJ@(|à@¦ª@!±'@ÂZ@IÀ@ 5X@†£?Öü?‰¦Ú?Žž³?­J}?Å‹@ì@"Ø@u$ @sëì@CÔz@5q3@æ^@ '@Õ˜@+rr@Ñ.@ÅÅ@ +"º?•£t?BL@¬ö@?ÎØ?¥«Ç@E¤@bÜK@/¯ ?­^@?ž1´?&#J?1œ?ö¶s@a‰?­[›?¦±?C¾x?U?žSB?×|]?ÛŠZ?éÚD?ïöØ?ó°?Ë÷Ü>qÞÓ= ÓX?Æ8?T??ÝÜm?߃?Ïhý?ȱå?sE5? Þ‘?6óN?nkª?oš?okI?™xå?膟?Ø¥?ŠŸ_? ª?Åȸ?³@]?dØ)?L?RHj?EY§>s¾>”²@?o§Ý?v°“>Û<çGË>G4Q>¹ré?wäÂ?—v?m·õ?I‚ñ?-TT?ú,?va°?~ƒ^?»î?r$Š>†YB>yáÍ?&ÅÒ?-Ÿo?‰z!?b1¤?ß©>æg >Ì›x>Åù>F•‹>’Þ:>ç#.?›®ï?¿Eâ?_…?^¼l?6†?^ ?4_ý>ß/Ê? \‘?lÇa>`®²?CT?¨®?.ãñ>¹\ô¦.?5ã^?l™D?CGü>×áv>“U<{9@@š?þÇÏ?éæs?5¦Ø>§‹\>ˆ—ò>Åä`>õ…=KgŠ? +èk?¿?0¦,?(³É?•ä¸?œÃ?¹-?GÕ>ÓŠ =í!°>P3>?ÙM>/p¼>ñN>ð¬÷? +J—?UôÎ?F@^=˜5$=•“?|¨!?y>_?°Ê,?µ³%?Z?>óÏ?¡? >6€y>áí¢?0T£?8;?PÞŠ?_Ù2?Vi(?ktâ?—ê?{r¢>öèÑ? +uO?)ßt?%¼”?!–Ö?ˆÒ=° +_?%ÆU?å>¶'=¼0`ó»Ù>ùYª?q H?yŸ?yÁ +?yãû?z²?z$œ>íŒõ>¥CQ>TcÉ>L£Ú?zŽŠ?ž8÷?4ì=>äw[?Œ?È?ØŠ£@Àv?ıã?{ñã?>8É?FèÖ?®~+?68D<½¢±;­­¹<ƒÐjù +?[)?Xcˆ?™ Þ?¢i;?½ºÆ? 2w?Vð?:°>€’®>pQ>_y>ÓhÜ?ŽÓ±?Ö +?rþŠ?PMi>ý§1?·Þ?*L”?$·w?&ˆ ?¡<–Z;©†ëz2? +¤¢?K!?O½’>9ål>i…(?Ð8º?Æêð?|+Q?ƒrˆ?”Pc?Œ^“@: @ õA?=™ ?!¢D>"K=ÍÆ|>u€ž>O*ñ?í$@É£?(Ya>ÿÔ`?^V>ÿUJ?²»¶?Çû°@^ÿ@íB?‘£;?]¿T?°ŒÔ?¿º„?s#Ü?Lÿ;?t'?Ì*?wi>ÿßÙ?B±è?d-d?„Ü€?Ce?_í?\ÿ3?äƒ>Ê˨>1í¼=’^Ó> d–=í‚’?:Eƒ?~»‚?z•ù?q°H?ª™?¨·~?ŠÂ?€Tÿ?Š0ê?®Š?†4—?€k+>àÉæ>Eªù? ©ù?:T±?óý?Œ”?^™D?Šè?–HX?—qê?smV?\¥?`K&?d„Æ> +2=ª»Ó=Ã\>ʳ|?–7?•!w?¼5q?^ÿ'?îÃ?`Ê?Ú?_Ä$? ?©ƒ +?µƒ?Ž¾o?†ù9?@ì?“Š? +2é>~¡Q?qï?ä?«¤”?¹:a?Ëú>"sé>Ö5>4á?-¬8?jñ:?o&ß?s]‚?oKÛ?to{?±Ù?À·4?9|n>ï&É?W!?pýŠ?*êK?{T?ùœç@³Ù@G@Wr?ñ?Ý3?®”?¤ÚM?Û6?ÞL?€ZT?Tò_>¹ƒW>ªIF?m— ?oý_@ÄŸ@&î?ú›ß?ëT#?|žk?xÒã?ºy??¿âä?‚§Ÿ?‚Z?‚_ã?Ìé?°R?,¦?ë›0?áŽ[>¿"Q>²gŠ>­Ó>øFs?œg0?…'÷>«S¸?ã3æ?ÚâT?ÄW?ä˜æ@+¨›@f.?`1X?§.¹@=@çì?ÄT?ŠQŽ>Fñù>î…›?€é¾?O?Ù>û¾2?3Êð?x™“?}é?ƒ|?ª¼A?É×g?y¶©?$X?4$?`ÿR?[î3?O#`?b]?¥?¤j¤?§Jl?Žx?ƒN?†¨Ù?qâ@‰ý@+o]@Tˆ?ùåg?§Î ?”ÐÅ?rw?tÝ2?ƒ »?„΢?Å+¤?É?P*?¬ ?Ïï‰?Ï[™?§©C?¡€`?–žÁ?’OŸ?X±Å?€Öz?àäÜ?½8…?£‰?¤õ?¨ì?E&‡?«ÍÊ?·óõ?Ä)K?¦ös?ƒ´+?©ÈŠ?àLA?¡yo?'R?c#œ?Œè+?ÌùI@ä??µ¯a?~Ú“??ƒ,?&Ö?çRº@{ô?‡ò±?%ð-?Ð8\?òDš?„¤·?Tj\?¯30?¿~Œ@Ž±@ÍB?‹Cî?ƒÎ­>Ñ$2>Âœ^?ƒÎý?€‹H?%|Ï?[¦>Õ`[?áü?ƒÎ?›çß?ÿ£Â?ôt?ÃWv?‹¨F>!ã@?iV3@ÿ(?Ø™Ÿ?UÉá?V©??›á? p?Á?Uµ_?`é?¦àS?Áœö?ìÙ@ +½Ã@ ã@ +a ?¹ÛN?ƒˆ‘?hƒ?d<†?Ö€r?ú?ó¯H?õž?’xN?~Nm@1éŠ@D—O??—c?’¿?sf?tà£?ãìÓ?Ú =?„È?zþ?±%:?±,?Å2g?¸8?Më?IñŠ?BP}?<»>–öG?;–»@ìH@;¼@6'@È ?Zý©?˜ †?ò8‚?³÷?ýƒ?Ó@D1ž@«?~ó–?EVA?wÀ?»9Ž@ÁS?¼¡õ?jý?Úx@ Ù?ÊÌa?(ã?ª}j?©Ë¦?ÿ®ô@ÿÛ?³–?‚Ú|?EÖP?- +?±Ü?³žD?ȃõ?Õ™?·}?‚±È?ÈÃ0?ÌWn?ÃÛÊ?¿yS?‹ …?‰_ê@>ë@<[Q?¡äP?¢•À?¹|Æ?ÁÇŒ?ñœ’?ðœ?‚WV?ˆ*ˆ?â¹\?çŽÓ?§9Í?¡öÕ?Uë?x°í?ç¬ý?Ü#¤?:- ?V½ë?ÃS?µß?zÙÃ?œ—é@î?ó¤^?È#¬?Ò>u?ål0?ïNú@žç@$(á@O^@!D ?c^g?Eah>éßi?(¦0?|oº?Âq…@.á‡@c ?Øß2?ÆêÓ?¡Ñn?´é~?Í6é?¯Âb?Aï?¯¹?ÿ‘•?Ïóæ?$³?‰Cr?›c?Îâ…@Ý#@Ý—?÷¾1@ @L`?þ$p?Á@þ?Á7ì?Á*c?yŒ®>MÐ>¨ƒ>ø?}¶???üÿ?¶Cº?“­?+ðê?°÷Z@ C?Ùpõ?¾U?€c‡?Àgx@/¾@A§º@e?«³{?¯sQ?³É?¡²ó?š]Ë?Æ’®?ÿå?×Àd?’†í?{íÓ? D?pNK?ób?éõ¨?Í,?³P\?c?ö­?·$%?›;ö?JÝ1?»wÅ@HÄç@2ð?êî?ëo¼?ñ|¸?Ô%ç?~[è?ø?ã ì?ú)ó@3¶ï@(fs?½"?á º@S_7@M·ƒ?ø‚â?ûFç?üѬ?õ…{?Šêz?Ž¬ö?â’?×ÅÅ?¬z?|×®?<ªß?=ö?/®…?ž?‰`>üaã?To‰?U÷6? Ô?Îz>Lp|=F¸=?‰(o?¿œ—@ÿ@«œ?§žÎ?TM?å«@çA?ïÌz?ÆÐ0?Ì©ñ?Ý¡[?·T ?ŠŸ??½çÌ@‰?¸Ìë>Ì:¼?O%?ÖºŒ?‘y´<{Õ4?W‹@Jb@.]p?»[ô?Ôbn@2t4@/Ýÿ@#mï@ îw@8Eë@>`°?ßU?Éo>ÉOi>‡¡Ï?·ç?¼rì@(˜@:bÕ?èɸ?¶ˆm?Z$ø?-!?×~@ oO@c²@hþ?ßGº?žbú?ÑT@ ÃÍ?ËÒ?&âP?”ýV@bÈ@ry@'õÔ@0þ@9ú@3t£?¸Õ/?¹<ñ?Õ&Ú?Ë«@@·Þ?éî?éug@Z2¾@u‹â?ïwT?tUä?éÕ@4p@Fz?îDC?¹yI?sVø?’#´?¾3Ž?à*@¬`@ Ðá?¶:Ö?ª£[?›Uý?—Òï@.[@è"?u)y?S¯?žÎ¨?­˜@p@3³Y?®b'>ÝÒˆ>µJ>ÅÌ€?H*(? +ê?É+“@?¢5É?ËB°?Òyt?Ìƹ?Åo>Š<2<¯ >Ìä?™0?—‘ö?Âù@ûI@ ºï@Û4?¶—?®ój?§MŽ?±P?ÿ—Ø?óζ?M\„?\Š?­ªµ?³.+@Q`@-Ù…?éÒ?²É÷?µáF?¨þy?–9?‰Wß?‡"? -œ?©H?Æi©?¾ff@+ÀO@/92@+ý»@(nc@6D@0€Æ?ð¹s? ½?¡Ï?± +é?¡E?kÍí?vËõ?§?Ò?«?‡?êp·?èíì?¯†œ?›)·?ÃA ?×äV@éG@"Lå@£ò?ß3?ÚÈ“?’5Á?š¯’?©'É?­P?Œ:>éhŒ?©â?Ú»å?›Ž?:ç”?’;@ J&@ÿ˜@Ä?ñ—Ð?}Ÿx?q“Å>CmÐ=T²x?–a?7,Ê?Y0?ƒ¤%?ÌV?›ä?‘{¾?Ó?“?Ê,2?ɽ'?½OÁ?¯ÑG?¤sW?¬¸þ?ÄÑü?âH@gî?í´?/µü?8ë6?¹Kë?¹ºy?{(Ü?]ëW?”2?¹Û?â A@s@Ÿ@è @dã?ÿS?øÀZ?¦˜?†k@â@F˜9@"U?Íš³?Ù*y?½ãn?ÂÁ‘@ +º@,°C?}o>«bÕ?V”œ?§: +@¯@EÂ@J&…@cÅÿ@Y¤‚@8¢œ@:„ã?Ù\x?«©@U6@O4?ø¶þ?«¥)?¸!m?ñôµ?÷=™@N\–@WR@Lqƒ@H“Ë@lN?óÖ_?¸í?x"h?®Hˆ@ D@I±?ŠôË?}´@(æè@5=Ž?Ç.?r™–?é÷ñ@1@D¯Q@V¯ÿ@0ˆ‰?qw?[sË?Ö?ÊÌ~?;Ø>ÿ„ ?†UÃ?ŸÍF?ñPK@Ü’?ãFm?wÏ?¾^_@-¾&@8Rd@0-q@,pÒ?göØ?Q“ñ?è·@êÏ?¦5?—;&?pW‰?Iƒ]?)>÷4ù>½|2>kë?+D?“´Þ?ˆsü?Ú»?Wÿ¡@ :V@ŽN?±5å?¨™®?s÷|?tO,>ëRa>µº ?‡Lñ?„¢?·à»?°µž>õDš>µÔ?¤)|?œÑJ?Œo~?š&?Ÿ¬·?´«Ú?gJ?Ù?¼þt?¾­T?€¦?f›ö?+:?’í?ý2€?íõ$?­ +~?Y O>–ç>¬Ù„>1¾Í>ºm?"àß?–?¤3<4Þ¥=Ñ‚€?Cd6?S`<Ä{J?M?‹„Ë>‘|é?IÁ?Ýß?d Ð?JªÕ? `ß? H®?>A?½8W?¢Íê?t™#>ÎÒ;ì?ˆAÝ?‡1?:Ð(=Ö¾z=“ð=¬kà>%øƒ¥\?¿}?©?C›ðç>Ô€->¬ãÂ>µlš>½ù¬>Õu™? +e†?ÿ³?¿Ä?ºçÕ?t)—?u=7=òB„=%4F>Í />ôR2>Ò *>¾L+?j‚?¦J?lé>1 +Ë?3½ð?•tK?z«Z?9)–?y>öåV?òbL,>ºÆ¾?œqÂ?¢è,?©`®?¦UU>þ¯¬? +–d?ò?ê¼? t^?UO?u*ò?y×\?#Uñ?²T>\Ƀ>,äÀ? Ý?ï·?¢ãk?¼?Œ¡¬?zòÑ?=œ>À#¶?âØ–@Úˆ@9a@so?¿Ó??{³ß?1%>ûáG?~ã? ®>tÝY>o¡M>åÿ >݈>Õ”?”ÓÎ@Ÿ$?Ì_9?Èá?a6…?â?‘°?- ? ?>¦?ŽX>ŽÆ? $Ú?†?œ+6?ê#K?Ägñ?ër?AÆ“?¨šC?¸¥?ê9?Í >ô€*?Ã?vPO?o$T?q¸‘?`€Þ?ç¯?4?C3?=áë?Xz‹?Qˆ¥?!»ó?*Ôo?õ°{?ý«$?ÿÁ??Ç!²?Éø=?q1 ?~Õ?Yj?\{Ñ?>:÷?3\Æ?¥‘ý?­¿À@8.@ >]ÎÖêß>ÿ?Ü?³P´?¿|Ç@a@ 1w?Onk?!,J>îœÆ>û>»?o—Í?¤>?žâî?¢gÔ?Vƒ?<›X>÷J?“þ(?¾ ;?V@?#‰3>¦ž4>Y'»?¸u?%žÔ? ž$?»§?MGÕ?+N>3‚=\‡¸?MX¨?‡å–?5 D?ù ?—á¯?°x0?Vj@?(×>Ù¨>Ÿ+5?'¯s?G³?jë?„_>­/h>”$?“þ?Àãì?.¹J>µŽ.>ítÕ?±>“ÙH>)uÕ?>ð¶?€Çõ?¶¡€?Çú@:V©@] j?¯†?èÃ>IZ‡=©ô?=‚ƒ?#?n.s?r¹?ì]õŸ?lP ?¤ãq?ÒÓ'?ÕŒ?if¬?*©×>ݳ{>À»Ü>ô°Ö?mø?×?Ü?>&Ùo=ä?Ë<ó@J…?™à&?yñÍ?ݬz?ñ²{>Òqq=Ͻ”@´¬@"7 @Á5@Ui@ \%@œE@ƒ›@bÝ?èë?çkÞ?˜²?—ú®>“¹¸>6Ú¾?ÍI=?ÞÇ8?mäB?g*@RÜo@YD>òQ>ì–=? +™ˆ? +D¸?Åâ?ˆò+?û–?éÍ‚?dY>÷L¨>š>ÖÜF?bÝÒ?>…I>‘‡?Ò^®?­¤„>?ß­?Æ‚?ÞÅ[@ .?ð–ö?š\?„pó?) +?N ê?—US?¢p?®®?ÅŽw?ë9r?§}—>ûþÕ? è?ù–?c•?šê>´¯m>'Š´?w»•?ÓE¼?¸˜/?Ÿ?šÙ@?–³Š?¼2Â?Ïø?|i?¢÷ÿ=íh½?€yb?„Bh?Ä•W?Æäˆ?õ§?ëÐx?ÅDy?¹Øú?=©?zLÈ@‹n?ñÐ?ƒ“1?­Æû@Ý@hÐ?©†%?£6Ï?œé¯?v?ƒ¦Ë?ÆD4@ž;?éØy?ƒ¬¢?Xh„?«ñ?râ +?©Ç4?Û¹@@3é?”‡Õ?­ê?Ys?ƒ½£>½¼=‚˜> Æ>÷‹ ?ûy?¤e?§k?­‡?Ów´?ÕEJ?®Å?¨Dô? P•?¦Ü ?ÀS?»1?Z?›z’?™Wï?t?Èç®?©¨ë>P >§™Y?ƒÇ?‚h®?~²Ú?“‰ ?Å¥§?é´ß@-[?öUÏ?ž|M?’èè?m p?§•?äk9?À‰à?™åþ?™c?áD?z?ƒ³¼?«äÑ?½ðN?¿ýÐ?Ńf?òÁ5@©ó›?õáè@fà?ŠÞ¹?~…K>äò>Æ:@‚Ó?ýmÖ?~D?â?—@?¤jÉ?îÏI?áÔ?¨¥;?ž +?ƒu$?„~^?bú—?`g~?ƒS¥?ƒO?ƒM{?¥=j?èwv?Ãùî?ƒ<¦?›s?¾²›?üˆÿ@##‡@—s?ÁpX?œâ¡?v³|?æ…'@¶ý?Å;a?d•T?êF}@§?£…U?6w?T÷+?r5Á?±P ?ÄNÕ?“ex?‚Ö?‚Ðu?‚ÊR?’;P?“¯?)í¸>÷E'?oïñ?‚ªC@8+t@E„U?Ô8?ÃÜH?Ѷ?`¯?hqÖ?ƒoÚ>\¥Ý>Š’?±¢L?¶RÐ@!šÊ@§?¨3°?©»p?Åôk?¹h&?ž½g?*%?,V>Ü r>žÊå?ßâ†?Ôs%?¹]ˆ?¡Š?õ?˜ÿ¬@a÷O@1iv?§&?ARÃ?•:Ï?¨Œ??ѯ?âÉ­@Òd?ýu?»U?·Wê?³Šü?±³?ÂG*?éGÀ@„ä?Ø&:?-{&?09v?"B­?ƒX?ßæÛ?¿/Â?=?¦P?~á6?š÷f?¾,7?¤J??»=@±Z@úG@8?¥@$Ä'@ Š=?Ô ð?rï?ĸ@*÷?¯†Ì>™Mï?,9?—ÿ?³ð?л¸?§È»?ke]?ÊG@±°@Ø@ÀÆ?ï?w +É?þ?Š,?¶éÈ?ü–j?×0œ?”\?À3L@Ô?ý z?é =?çü*?ÿÛx?Þ?›m?¹!?ÿ“?ä—î?³C?Ý1Ô@@@ +C=?Æ"é?¾Ùü?¿Cƒ?ºþ¶?¬Ã¦?ׄf@-È­@Äpå?Éì@)u@I?¾5?Âí?üùÈ?ùÚÃ?¸ 6?·•!@^?ôžÉ@Ó@t,?ªz_?¤Ý? +–.>ü¦%?±“(?½]?´½Ô?¥ˆ¥?ÏM€?Þ´Î?šþñ?‡?2`?{äi?}Œ?€Ž?HVÌ?AåÙ?²l?ÐWÃ?âXA?ùÃ@-@"9T?×ÛÀ?zï;?Wôm?.ò?N î?z›‡?µ¡S@Ÿ@@¥Ô@T5Ò@)3×?~£Ê?ÚA@wBL@f¨Ž@**…@!¿\@Wê@ 5?ÛfË?æÃÖ?ØÅ"?ÛϘ@?Xì@B³9?Å ž?¯#@;HØ@Sg@= ƒ@80@ +Í]?ö[Ù?Ê'?©˜¾?Á¿A?× =@ð-@ÖŠ@­?þ¦F?øÂ’?ý#0?ØoÏ?‘?Áù¯@Z„@Qî?ƒÙÌ?²—&@UáD@SÑ@1ò¤@-’¯@F¦@A–u?äÆ£?âº?‰5?u¯Þ@„@?ËJ@[=@­b@æ@-L?ô‚ ?¾ ?P>Ëru?ÒÃ?†_¡?‡Å?’ˆC?–K4?“XË?¦‡q?Á$ý?ÚRÔ@«Y@ ó}=€D=Ä›?^Éý?tåù@[O@ü?Ý«¾?²Ç?Ëô?ç?Ö0?ºþI?¸E?™î^?¤&™@ +¹e@iE>ôQ9?ð×?…§|?AÉ?ÁŸ¹?à£Í?ï?ìD ?ßá?Ê1Y?Æ(%?¹í²?¥2¦?}/P?tÊÙ@±x@…›?Äþ?°5¬?º¬õ?Ãw?à>@•>?â!K?‹…?dB?,ÑM?©[?ŸT?nÛ¿@Fý@¦±?!'?Oñ?†kÛ?–î6?’‹Î?ŽW?¯°X@=ʶ@HŸX?¨ƒ?ª0?ÛK?׉Ó?,rº>Nó`?dø.?Ѹ…?ÕQø?ã¸û?á@r´@`„@QÀ@!Äø@Ÿ@ uÌ?öGÂ?Ù¦–?á™þ?üMÈ?ðq1?ˆŠ?u2a?ÀU?Í!;?Géâ>ñÓº?tŠ"?¬5>?´µC?Éç“?ä±@é¾@V@¨=@ð$?î'?å•?¦ƒv?kÒ?àþo@5Zÿ@E?…«/?ŠŒX?Ž‚²?‰Œ­?±%?¸Ëå?£z ?‚²?‹Ú%?Â^µ?òêÁ@C6’@JÏw@ ·@h?×?»i@.G6@stM@]éá@&@,?¹Ô?¿Ú@ +þÎ@x'@Oå@YLY@5·@%é«?ôáq?e€®?W?óúc?ö+ž?³ˆ[?¨°ë@ î}@!Î^@L?Äíú?°Gò?¼vD?Ú2¹@¹>@ B|?­•×?­ý?éMþ?ú¯Ì?Óc?µPn?ˆq¢?zMh?œ¬ ?Æmº?¨i¿?öø?5€?¯ÀÜ?À=Ð@*-÷@0dH@8Ív@*#™?ØÖ?ÌÒ?º9F?ŒŠ>¥w?>öy}?g¤Ã?(ËØ>®·§>ׇ?2'©??XW?L¤ê?`Œ?|nX?in’?XÚ?;JP?ÌST?¾›ß?='¬?K4?¨2?±UÏ?ò·?ó<…?u­?Sö€?NÕ–?‚ëJ?ƒî÷?\]B>6‰<åÈ?hh ?gc)?‘îv?™\û?ƒâY?‘"¬?&î?oI„?(D?Tè×?Ä@G?»{[?“¨0?:Þ±>«EP>X¨³=³ Ìîˆ>JP;”àX<Ûƾ>èX>”ÑÜ?~?Ùð?'à†>:>‘F>ª!¢=Æ‚r<â%d<î§Ð>Ú†}?59?Ú=?¹£Z?A•>‘U?§€ò?÷W[@Hh<>•ö?>yx?(*C=—Ä>ÑÀ>ì`o>ípÐ>ÌJ>Úæ?«lR?Ïmi?—@Á?o®?HÎ? |Ë>ó˜>€è•>‚®>9>Ǥ ?r Þ?Œ@,­@`>ó÷‹>ú1Ù>æó>ÜVÐ?™¨f?£ð?on?X;)?A³?DÅe?i³?g÷©?j &?v#ë?0wl>ú(Ã?°Ž?/Û?E°>Ÿ02>‰öÖ>¬Ü>ÀOÇ?wóy?F^Š>åc> ÃM>'ç>qì?|âÐ?k¿ì? [õ?&>ùlE>ù‹A?2?¾‚> +§> ‹j?¢m8?¢sž?¡œ>?¡¦&?Õ>?Ü:?i²?C‘?2k?/×?x>?•wã?­Š9?¾h?žUn?ˆÜR?/¥~>ûÒ4?w?¼üS?dÔu>ö&!>öŽ›>üGŒ?9Y{?hgp?ŠÁT?©+?XØ?#k€>¶ €>—•V?4‘²?U5?}~?aðÞ?&Rh?_Î?¶ÔW?¯Di?—ˆñ?j3?_uä?]Ym??=?$æO>ý³4>Æ¡…=÷=öÔ1?À§?8Lß?¸YË?•gÓ=¦2>¢ìD?°Ö?Ÿ{I?$Þu?@‚¸?§¥“?¨!?¾Ð6?¾ƒ?ÝH?ã?Fí_??xt=Ag?&23?'—™?¿ £?¾’!?AÃB?43?poŠ?u·-?¸øà?½Þ×?Ät>ÿ1?=¡? è?/¹?˜S±?Fô>ÿk÷=3¥Õ>¢”>ǶÞ?]°7?t¿? g?Œ?>‹Âa>RÛð?G‚À?X£~?U’:?\;?Eˆñ?Hâà?Y?¬ä??ƒž?ua@ 6£@Uˆ?¤Ã´?s›Ž?|P?€<ª>9 =¹A?Q??_ý?O?˜£b?'£¿?h‚?Çç”?ì!?PÍ7?~.>ó"Æ>Ü{?œÔ­?Àß?B, >漓?‰™B?š¸?—dÁ?–‚­?…ge?€ÃJ@ªe@=_ƒ?IȾ=ÖõØ?»ì¸?ï‡á?ÊE?XÔÔ?u[Ô?€þÅ?!²¹? +Ó>ùñŒ?¬G?‘ùÃ?¦ÀÜ?“î??…ݺ?Ì??9«?ûrÇ@»O?‡D«?.•æ>‹›Å>æ>ØÖ¢?lS?hãÔ?yw?$²§? +Q?Þrb@]f?—ÑÑ?±?îy@©D?)¥Ï>Ðþ®?œªZ?´j?Áþ‰?³Œ?Œ%T?Œ8ß@7Œ×@BÛI?o +#?DÐã?­r??¤_(?hÿl?_ Ú?•±?•&Æ?Ùã?}‰@$S@Ô?>‹“Õ>zýn?†Ñ5?y><Ù/=ŸAÍ?< ?0mä?t'T?_D>Òù•>Ü 6?#¿©?Ö>±Õa?=ƒI@¶P@S?­Êš?žŽ?‚¥,?¡Q¤?üÆÕ?úÙœ?ÛÍ5?ËJ·?©ß?m»v>v0>Ïšj?/À¼>ÓtË=aøœ=f?<¹u¢>€à“?õ«?û¥?þ™?·ú @ +¯ü?§•?;öŠ? a’>ÜÔÐ?lä?™¸Ä?‘¦?‘â ?®jF?­BÎ?‹±h?‡æ3?&Ð?E¥?„%?˜±É>L™M?*m­?:j?›%Ž?¨[?Äa?Å N?Å#$?ÁÅ=–?=â¦?$»¼?/å?*y\?;1?k*F?˜zC@$n:@U0?®ý-?»›?íäk?ðw§?ä/Ê?Ûg¯?É£W?²?U?ƒ¤ñ?›½n?Ä3?˜ª?>¸œ?fv?ƒ®¬?ej>=*?`':?ºŸ$?Äw?ÆÈí?^öÅ? + "?½?è¼ä?¶¼å?¡Ô +?VÛ³?Dw¡?}lð?ƒÃ=?ö2æ@Â¥?§Õ? ·=? 15?ôò?ÉTó?Ì8þ?‘o?=?ñ¥M?ö¬È@"5l@# +?‘7¢?Š·?u:E?bJ2?:ù?Y^¤?Å£ž?Çj?Íõ?Ê“?½%¶?Ò§?íéå?Èß°?¥åÅ?Ï#‚?ò5?Ëò[?«Ôê?©§ã?§{è?Í"—?êÎï?ÀE?ª`…?ÛVð?ðˆ'?Ш]?ÅqÂ?ªòè?Ÿ¼ +@1uê@Eeù>áí-=*g@7?û@F7Ê@ó¢?ÿW?³º#?«x¼?˜_Ü?žH?§‘Q?ªV*?àu8?öz@BÍ@"æŠ?(=¯?IÑa?„'Ÿ?’ß(?Í?ÁûC?›«Ñ?’#ë?ƒJ™?œìž?Áu?˜ìÒ?Z|­?€UÅ?=G?IJ}@!é?£_?€™?‰þG?½L‰?¬?¦…ƒ?“ ?ƒŒ?Å*q?î$®?³õ?‘·R?s8¡?U|#?ô~+@²?Ò_ ?·ÃÓ?Ù«¨?Úp?–ú?;?ìïÚ@yù?“h?‚§×@P™Æ@`ÿ¹?Òò„?ÃÖ`?¼›’?·¶ø@..@'Ç‘?œÈ­?—\¡?ÛÄ?Ä=Í?ÛQÃ?éz@þ6@æ2?àçŠ?ã(¨?ÃQå?·˜ƒ?bæW?;·º>Κ?!.@ q5@§¯?– Ã?€ÏÂ? ƒï?GØ×?ÄUy?¶’>?z‡ ?Yæâ?„S? ˆŸ?:Hú?CØŽ?Me7?Žvó?Ú+/?¾Ä~?Ž®Æ?œ,Å?¢á#?îQn@:ÂE@Â%?-Y ?QÚ™?’ +?l‹‡??O?0.?_¥ ? k½?«W’@3x@&­D@1T@D?@ý›?åíà?É ?棄@ß^?½­}?I—Š?Äl@!Á‚?èô÷?Rx,?b“¹?€K?i?Й€?š/1?°W?‹ùà?èìß?Œ®t=2R?a‹Õ?÷Ï?ž?€>I@Á[@[KÄ@!#M?¬/ý?Í8@ ÿ@ù@-‰j@Þe?Ç•?Û@?úG¼?ñ×?Ûå +?È?x?˜ËD?©u—?Íïõ@ ¨ÿ@^O/@?Ëæ?û_§?ç›Ü?¿+–?·“P?ªu?á‹œ@-fÐ@0a?×þ¼?Ù!!?Úá*?Û¡?¾¢Ü?Ë“è@gŸ@µÁ?­Þ…?ÉU—@7x@5¸Ï?ðz?ºç³?[ë?¥@ƒ¶@ýÛ@9"@šë?ÎÄj?шK?–Ra?—Û?†"k?~wµ?Oq?\Àh@.r1@=@ï?ßYÌ?¹sÑ?ºê‰?½?‹ªv?{à¾?Ú´–?ö}k@2Á¸@BÏ¥@#’Õ@ý[@V +»@s†Ê@!Žb?å°g?°ý@?zëp?Cú?xò?JK?z™Ü?¾u@³@šÉ@Ðn@Ìf@(~@…Q?Ú?ÙðT@;Pˆ@,ºq?̾å?Ý÷B@T@8‘@.¢å@&8{@l9@|Ù?ÕûN?â­.?ùf>ÎJ…@ R½@n @ù@-Û?‹u¸?QS?kW6?Š¡«?½'­?ãô©?Ãmß?«Ô¬?áµÊ@žg@´½?ù•v?û³9@ zD@|—?ɸS?Øj@ú„@è{?ŽN?™Ëá?“1?•u.?Ž0/?DZ?Þ|Ó?ßE?4Ø?Š×Ó?åqu@kù@Á¿@ †@kƒ@ªí?ÛǦ?µ…‚?·V?ˆÉ´?¨´?ïçW?åo&? ‹?µUS@Z'@Q•,@½@îi?¦C?˜3@õ²@*ž?”]>?A˜>ý\T?ó ?­š@/Q@ ç?ò!è?æ:À?ÐÚ½?à<¹@< ?ÝBw>1´>'Ð?Û%?âkl?é²"?ﳨ? Ã«?›Ù\?¨èU?¥»þ?Ä¿n?Ô’?§î‚?q¯D?hÔ?o¬"?“‚‰@pV@?aIÒ?+}u>ô M>üÙë?ÿiö@§?öu?ÛZ%?¯ƒc?‘Ë°?” ?Öþ?¢„e?Ü“ñ?×” ?¨éª?¬[ó?rv?hhB?? +é1?Ê0{?ð¸?«¤¯?Š(?®!±?ÓmÃ?èü@”@çd?¸ÔÝ?´œÚ@´ @ö€?šÉ^?@Û?…V?‰n?žž…?¯Ò&?É«?ðÔ¯?Þ ;?¼µR?¸þÕ?Ûc¿?æðv?Àx?ŠœØ?•{À?¿?œDj?®©ð? +?à“Ò?×Í?Îô? ÜÒ?²Œå?æË?ær?‡9O?|Ðí?sdb?iòÒ?“S?¬+¸?›[ƒ?‚Ž†?£¨@¦š@Äo?çOÞ?å& ?Ûzæ?Ýâ?áÜ=?âÝÎ?úƒ@€c@xõ?áGä?Ò€Ñ@hžü@O¢ @ÝK?ý!ã@"ƒ?@DºÃ@Ùž?«ya?³ '?Þ³?íQâ?ÇX?Ëž¤@áÆ@‚à@Ùƒ?û÷?ýZ[@k†@ñÇ@Æ@@ ³¸?N)J?x‚€@]•¬@€éY@,R.?ê9‰?´Áà?e}[?™m{@Òd@+@| ?ÿŸ›?¸\?Ÿ@.P@a"É@r/@p Ü@ApZ?ý¯×?ìÔ?Êâ?ÄIz?…w +?¬«@,u/@IJš@Aa'@2±Ö?Ù4J?iK¥?‹ÏÅ?¯X?¼?ã?Ö±¥?µ^X>æ5©?SR?jJ_?™ëp?cÊê?f¶U@ؘ@* Z?¨Hþ>{7<= àë=›øÀ?iÕ5?äØw?À6s?”Ëø?cY»>ñ ˜?$§¥?µt)?¦•”>òãÜ>ÿ°w?y·¨?¡j?/L¾?"$Ù?’Ï'?‡Ž(?·æ+?¿÷ ?)›?$°Ê?Á±>â8Ž?ýS™@äÆ?Š£?za> +¨>R;Å>¤,Ž>à?Ua?Ð ?fŠØ?c25?ù:>ãÊl>³}4?4F?uâ?mË?:qo?eýC?´>©°7?ä¯?#P<&AÈ=Øäa?)™V?‹$,@Nš?¿Ó—?vç³>užÌ>W˜€>†·O?#›T?é?²? + Û?+ñ?²Ï?¨.B?| 6>×>[@»@£??ó3ß?2õP>`B?¦]?ßË?(½=£Õ>´Mû>¬Š>¤¹¢>ŸE>í0>í‘Ã=7ë??¹V?›-?|G®?o¢“?Õ|?žÂ+?’™)?‡µò?¡bv?Ëz³?±Ù?r)?Iç²=Žå®=ô¾ÿ?r5?iI!=.½=SÅ¢?u?%c ?æþ?j>mÃc>‘û?‹‚ã?¸IŽ?p1$?2T?=sT?2“Ñ?m»>?•¶?0ôd>+±>´é™?bŸ?< ÷?wë±?q„?f_ø?”“?ïƒ?òó1?÷ª?ìd{?´a/?©Fà?juÏ?w•r?ÖŒ^?Éï•>º ¤>°PÛ?°I?2qÎ?_ZD?gl?±†?ºîŠ?R€w?4¹k?2‹? ¤Z?B¾‰?J‡t>À¢J>p$©?‰D§?±æµ?@È >ûÀÕ?• ‘?¼í‰?¼·Ž?¹«§?Wˆ½>ü3I?…uâ?³P?”Ç?|zÓ?h>M?k?q«Û?1¯>ü׿?Nf?=Jò?D"Ó?Uà??O Z?-l‹?)9?% J? ا?§F?€À0?è¡?¶»*? Þê?)Tž?y–?æ?º3?©'ò?…â?©a¾@ÚS?ÎØ>¯œ?$‡?ŶS?®Œõ?[M5?…ªá?ã +?ÊJ?kÙ?0?7³?$°ž>=—ã>U»G?0¯#?F1:?¯Å?´Ò§?覠?åÆg? þù;>û¢ŠÿV®>¹ä>­#’?oYu?jœ—>zªf>gÛ²>… +d>uÞÆ>ñÓó>ÿ¼‘?ß@ø?ìœö?mà~?H±ñ=¸g>´@%>Ø¿%?%ö=?!ü0?jd!?}I?µ”?½KY?»;4?¹)ý?Ÿà>Ó7¯> ’4=øŸ?s…»?”•>ºª–>>é`?ÈЧ?øº?‚Nf?@vú?‘µ?œW1?¤ ?©%?¼V +?ÀâÙ@0‰@J¹@@°Ð?*?€»¨?¶ªJ?Ä ú>° +‚=¿q >8z8>ü ú?Éx?úÇ?*b@ç‡@Ø >ð‰D?3Wý?k‰_?­R?¾³Ý?jŽ?G„?iT¯?gG(?G=?$Ä>ü†À?V?3·€?5£ð?Oͨ?_?ÿ?s!?yxÄ?±°?À€}?ÀÍÉ?¾wÃ?“ƒc?‘Ã~?«˜à?ªë?²¶?²6|?Wßu?Søþ? C¹?Óq@ôÓ@¿ ?[i“?Aø@›n@F„?’?“Àù?—ò#?›4?$êG?$n`?‚#?Œ®@Ú@ î“?ÍDÑ?ÔŸ@ öR@•Œ?}%©?–]@Î@3X@ +ã¢?ðï¤?dsP?8Ú¼>#Ü>¬Ö_?uŽ\?ˆi˜?—t(?Œai?Dg:?EæT?;1x?‚â8?Õ,d?áZµ?ñ‰õ?Ç?‚É?©zš?Û‡ ?¡?/ºÝ?'r>øÑ?¤Ó@?¹–K?{–?XÚ.?OòU?´Hs?ܸ‹?¢ù>ãG?/m?‚‡;?º?¨hú?»«+?sÙ?A?k;?n*e?cŠ?F¡>±†¤>’öz?ÒŒ1?áa#>Dò= Þ?°ÕC?¹–·?Ácu?ê?Â¥¨?¶÷ö?|´U?Šð*?ë ò?Ãñ>Xe>ËQ„?ˆ˜4?‡|Ñ?[9ø?V,Ö?7Ñi?N?|ú?ƒ—?ƒš–?oøÖ?Q/h?]¢?^Ùs?f/ü?_?Wø›?j•Ë?nÕN?sV?: ì?}ú?Äò£@‡ù?Øšš?¿Ã?šé?’/Ñ?'*?5²?vkú?gûÞ?0)?+µ1?õ,@¼µ?Œð?ƒ¾?KÜz?J§î?Á²æ?·7L?9'”?b"@x>@æÇ?•æ? X~?Ó~Ú?µ@å?*Ü?fPt?Êèc?Ç$1?Ä”ø?®ªS?‡s6?‰š©?‹½ú?’•k?œc ?’WO?ƒ²P?°|?Ú?·&{?œø/?Ÿ C?¡H)?»?ÃlX?ª€?Ÿ,H?ÍYŸ?ÜžÚ?¹à§?²Å?ÏA†?Ûºs@.¼ @;?|?} Z?1‘q@mT§@.?ÎG?Ê©J@Áx@!!@hîÍ@VQõ?Å/`?³Ü??`F?L¤?Ìê?µ(">˜MÝ?@_?£_@?›Ý{?ƒR?}FŸ?uH¥?‰›?—”Ã?à) +@- '?Õ(¦>6jà?fdù?ê™?ß?ÉŸ¶@Þ,@>ÿ@*Á£@èß@9F @HÆ“@CH@=u?þÛY?Ämù?ÄfE?Ä`Ú?à?èIÜ@ +SÝ@0@Ú @:¶@VO@"«Ð?*†ª>Öä> 6¸=ÒX½?Šfz?“¿û@ F@KZ?‰d}?ƒ„Ã=ĵ>…@ +jö@ ŒK?4¾1?CÄÔ?“•Õ?¥ø?. +¾?R“X?øoë?í¢·?‚:ä?yN?à‡É?Ù g?Ã4’?²Ú$?Qn +?[ø$?‘&?¦Ìz?ù’?ߌû?‡W?¦R@`?Þ/?Òþ?¡Ñ ?è†Ï?áPê?Ú¾?Ã?T¼?§Ò?Âeô?¦Ž?[p?a©÷?|ý?‘¦Í?²I[?Õ…Q@`±?øŸ?ä.?Û÷œ?Ê~s?ÖË{?û)?â­?¿XË?Â6??Ç_`@¯@%3[@µj@ø©?Ýö@?¯¡£?„±?5¤?‚cy?¥w¢?¾ä ?áÍœ?äCÒ?æ¾¹?ôü@›ø? z;>¿F?Fœ?jA7? Â>HA?w= ?ÿpu?þ[@Hn?àÞv?¶íñ?ë¥-@Eæ?öýœ?“Ñ|?Ô-ã@”N?èçY?šY÷?¬Í?¹Ô?³Î ?®€¦?°èr?µñK?Çgø?ò¡(@Y@2@'"@?S@4¥@£/?îûd?"•ú?€ðz?â_[?è‡t@’Þ@ñ»@]U@ Mu?Á~„?Ãu¿?ÚKå?ÇÛK?‚"Í?Ë‹? R†?‰B(>†=>ØÁ4?÷ð?íÈM?~,›?ˆÙH@yr@Ò/@0á@¸?½ºt?½¬ü?,Á,?1 ?¹ß|?½r›>¡i >S}(@%¦@(‡x@+[×@.+ù?Å ?ª«ñ?‡ç¦?{×#?í? P@&²@%‘Q?û(ÒlG@$AÝ@¨?vÃô?gCG?™•‘?«{?²öç?¹ÅÐ?n¸>÷|Ì?røi?Ì0³?é" @&ù@ ÃJ@γ@èñ@5²@ûT@6…X@-.?³äI?°Í?¡œA?šâÅ>Ÿ¼‚>«ñ&@+Ë,@:Àç?½Ê??„LT?¦Èš?·îB?­ý?ªí‘@£ò@+W@ëI?·tc?µb,?¯Ìê?‚ÌŒ>­2K??¡ž°?´Ø±@0iV@:PN@.Å1@3ú\?Æáy?ÆcÏ?°\?®mÊ@ùz@Ø?ÿÛÒ?à?¯ž“?“Ô˜?­óR?ʇ?­Ò?hW?Ÿ' @-h@ia>ñn€>ö‚ ?ƒ<Ó?~ôS?wn©?s`%?þ¢'@ Ç?ò?ág?܈t?áÍ?ÞøÌ?ÑæT?Û?ç· ?Ľü?‡R[?¦ê @Vdç@c´Á?‡§ ?fÑq?ßI!?úA°@ƒô@ 4Ì?ÏU€?—H ?¡?²\!?¬š~?¡´:?Ÿ»?~gÅ?z0 ?ë;]?ç@3?«>Ò?›Õø@ Ÿ@< @ ?û½Î?ç¥ç?àæ?¼‰?k¹¨?ƒ’?ÜW?äq?ë‰,?ïF?³óˆ?£´¥?Ÿs`?›1h?“XT?’L\?̉Z@’½@Xd?ÐÃ?Ô“ë>ùñ>îúP?ËL¬?Ù@ç?š†Ô?…'ñ?§à?ðã?Öúø?Á¢g?à’@@þ@d?Í á?Þš«?Šô-?~ŠS?E?¬?-î?¯Œx@ôº?ì­e?¦“…?£-R?Öš®?Û'@!"Ó@*>ê?Ýp‘?²W?ç€Ó@O@U…@›?ð_õ?ƒâo?–jã?}'?¡ÐQ?¢Mÿ?©›h?«±v?¬*ž?úVX@3 @"Ö’@±Å@ á@£@ t?ö_•?Õͱ?µ>f?­tÕ@'*Â@Œ)ÿ@a _?T~Ö?‚ÔÑ@™5¢@£!k@;û¨@¼ @Â?áú©@õ@8bq@"Gâ?Ò¯£?Í–Ž?dz?w5ç@`q@:mV@]@z@S³@þÀ@ø?³û¶?ÉH?µÿ?–T˜@Nê@sYy@.ëæ@ «¦?»Þ’>üÅ?]ôU?öP@@Ksv@@™´@1@uC@6@ ¬A@"OÝ@8u¦@ò?Òÿ¬?È”?q˜]?l‘?Jg?˜ßN?¨K¼?°J?Äd™?Ûç?•’ ?"Ãâ?suÌ?¯T`?̳j@m„@¹œ<‡9Ù= Ã@?S-…?I[F?z}~?l,?õ]@(´@×@ Kó?烴?  +†?cÎ?>K?€ã‹?›¼A?™º÷?5­µ??°£?°¼Ï?´u‡?£S¿?ŽZ >6>»>w¸ +?tî…?uvÿ?ó6À?öi@4)E@.X?Õco?¸?€žÈ?zBC@wò@§Ú?íz?um?[W¢?CcÖ?¥˜•?‹¯Q?¬b•?ŠŽå?ƒä? +f$?ï¸>ùq>à µ>bàp=¤üµ>Û%>–ä,?ÓÖ?”Û?¤õÿ?‰Ï·?‡Žý>‚kÑ>–¾Ç?uzB?[R)?§?*—?/Q?lz¸?Qg€>¸÷ñ?°Z?z@—?YŸ®?ÊÃ>…D¾>N΢?WgŸ?Aè>ÙZ³>G/? ´Î>ZP=ba—=à±=ÙáÜ?! ¿?;òï? qí= _Î>ëËÒ?á ?‹zç?ƒç(??6?;{?Èg>òøÖ>ã%Í>Ó??n%¨?ŽL'?¤'û?¹.N?¨jÆ?˜F?ÀHu?úb9?ÏÜå?Y$È?€Ô³?³Ü[?¬«?s;¶?_±m=“Д=¸EÍ?’»j?˜LÔ?ÐIÓ?ÏPÁ@ »d@6·?°(?€„?Ž¬¹?›ÀG?`?‡Û?+í>£¬Â>þ[Ø?4—‡?=}?E°?G8‚?.ªL?BŽÝ?€†œ?YÁ¶>ù• >Òÿ=°·>”ß5?y]?od?Eaò?KE>ùÕô>ëQñ<Ÿ‚¼?H˜‘?DsÒ?5¾n?;‘\?xP?zÏ?`üT?m§]?åá?–€Y?‚Êõ?{`ã?QûÄ?Q^Ú?á? +†?š½ ?ºÂÃ?û:?ÄÎ?(>ü&«>—Ôµ>x>õ¿é?\ã>ïßT>±ZÈ?Lrô?•_/?$yC>ZÐ?šŠ?ý Q?¤»y?%.8?_Œö?•ç?°ß>?Ë©?¥W—?}\,?“}7?©«?—|ß?…H[?[ÊN?(?ûö?€ó>Í©Ø=ÃøÎ>áÃ?ýŒ?¡¡Í?’ÖV?òç?¤û?†³>7÷8?'BL@S3@(ç?~\¤?ŠŠ9?·(}?ŸÇ¨>þŠK>ôÀ>œ©Ž>¹‹s?~³c?~»s?~Èã?Q?r?„>ò? +ºE?o:>øø@>ü€™?hE'?X5©>+>g–y?Ôñ·?ÌïÎ>ÿŒª?¡?• Ú?˜P…>¡ +ý>Œ^ú?=Ú?=¥ >”4í>”ºŸ?ÑÜó?ån¡?Ãÿj?¿â>¶)“>c‹û>B.‘> Ó•?ËA°?èš–?& ¬?>?±(»?À6˜?1 +ž?·¡??9 >Óê>à ?œYe?­ Œ>øÎÚ>¢V9?M¸Ÿ?oÁ?œý2? ·J?¡p?¤œk?œø¤?˜}Q?¹Lc?Àܲ?Øi%?áõ»?ÚðÕ?ÞÜ ?¢Y”?d&?çÔN?þZy?—o?|rŸ?t/ð?kç?áù?åß?W”•?fVf?²?ÈÄ >“ƒŒ>Ö5?_?0ý?>ã? c?/–?|YË?Ž'À?¦¯ý?¬8¿?dÚ?GŽã?™z?§?ÿ>€1ù=”3\? Å?ñù=¨“î< 8>õ<?Æ„?y¡ð?Ÿe?Š›(?†!?ïî?óm¥?m|?[.è?½áU?º¡R?µd’?ºÛ?ƒŸ?‚bÃ?ÂÃ?¿T>›Ÿ>¨yP?.? ÔÇ?“àó?Š¬?‚ +?šÎ@L +ì@K Á@ g@¬C? šÚ?1Q?À?¶»¥?˜Üy?”7Ñ?_¬Ê?^W?"Ž?ƒö(@Ä×?ì v?¤w_?–"?×?¶T?DAP?‹p?Ø«÷?µ£?‚²,?“ª‰?¯¼É?ìc?‚Ç?ÈMP@s@êc?îž?t×Á<î¨?Œ…r@×ÿ?Þш?¿mZ?¸ôõ?²?¡ˆ?È’?q¥»??ø ?ɲ?ðáƒ?fo²?n)?E“«?J*?xùª?ƒ5Y?¹•Á?ÄÚg?'3_?D¶?Snµ?aL?ûR«@ï?)Ú?4ý? ?ˆ?‹°—?œ<"@DKR@2oâ?ƒq¿?ªk@Ò¯b>Øe‰?‚?…ù?ˆñ?7·?‘íª?»H?‰†0?‘Æf?£B^?‘Ý?qkÇ?½ö6@“@‹†@ h@?§òž?¦Â?>¢Š?X6b?‚Ï?Z“@s9@ d!@R@aXu?þg€?¾¾£?éåö?ñR>ñÚÊ>tÅ0?¾MÆ?ÌÍy?°S@?³XZ?¬› ?¨¨j?@!?T£Þ@ºn?øÎÓ?Q2[?q›«?Ù¾G?ÝuH?Ø/Ù?Ý?û?ù)¸?ð`¦?Ï¡©?ß@»,?ÝOÞ?ˆÎ?W'? +L?AÓ&?ƒ´/?Èþ>>r:?!‹û?ƒ®â?¨š?ņ6?žea?ƒª@ ¤×@/ÄÄ?«¿?†ˆ?j,Ý?c¼?½ˆì?×û:?•k&?ƒ˜J?­^?”0?ïoƒ@Žë@€@?´?'š? +¹M?G±?#9N@$Z$@l?¼û?É•?Å*þ?®c7>½U<>æøH?Y7Ù?TÉf?PWÄ?[¬¬?ƒUF? 0?Ü*P?Ÿ‹m>Émž?<ÚÆ?°&×?¹Û +?ÄÔÉ?­¨?Žÿ±?#ÁÔ=êôc?§©û@™H?¶ìý?Y?(OÐ?7&¹?_?ƒŽ_@>åÚ@~6+@7y?–ø/?tèc?eV?‹?˜Ÿb?‡ ?„˜Ê?ò‰P@8É?¼—?­m¥?½Â?¹ ™?o©Å?SÝæ?Îíî?áwç?¡E?“ó?@Ø?›ö>ùU? Ò6@XóL@SMÒ@%x@ã?²· ?À»Q@#n@fý?Ãið?ÉÒ¢?é(z?çÑ[@.M?é‡?pï³?ˆ¬Þ?®êÎ?½ J?áûÉ?Ý4?Øj§?ˈ>?¶æü?¾‘?Ä _?Âè¸?¾ÙŠ?œj:?5±i?…j?Ïÿó?«t?J— ?T,Î?]Â??¢?ÂN?¶Š?¡Ší?…“â?7Ô´?”XÁ?ìmJ?ñzª?ý˜½@)º@c7§@/ÃV?Éi*?°{K?‹ßV?Ÿ­?Á¡B?ü¤@!HÉ@s„@öë?ÍT?’Xc?Œ×>?{ù]?jê`?nt?xu!?7‰?“ê¹?¦™?»³È?Õ•,?Ÿ^?'B¨? åj?{ +?–rþ?úH÷?Þî÷?¿"@?Þƒ7@G®?É?õ?‰[Æ?‘r5?œÃ}?»Õ|?Ù1a?»?=?¢¸?»”ã?ÈU‰?À[•?Æ?àCÊ?ÿ¤,@a\@ iº?ô¤£?²Œ±?±’u?°ã?økš@;Ó0@¨Ú?Å­1?ú>@)¥@N–?S*A?tFø?’¤÷?³<û@’“?ðÎZ?š/D?°lÓ?â>‘?Úzû?ºÖÎ?Íåß?ýÕ1?õe?É–=?Ã{*?²ž²?¹6?¿l?±þ?Ê…?>\B?ÈöË?Éd?9à?‘¡¼>üÖ‡>ü½3?k{¡?yÑ>œÖû>’Fˆ?¾S>?Ò±€?÷² ?ü€?8ê?ZlÊ?qµí?{×?}Ø ?v¾ç@W9 @…/8@G–@'G*?ÈG@?ŽíZ@Á@A¸ @o?øã}?Ø|¯?Èðç?âØb@E„?Ò±º?•=¡?T¯>#Ln?‡+¿@:©?@9Ô!@6 ü@*Žì@Ñ@ _?ŽXG?¢Ü¢@ŠS@/?ô:Ê?þ„8?ºÃ€?º±©?÷R‡?ø¿?ÿöÓ@q‰@NV«@YZ‘?ºd ?x7Á?xþ?x 9?¥Þ ?¹åa?¹ÐŠ?¹Á­?žAŸ?‚8.?¼Ñ>´A¡?P&©?âzÉ@qE@[×$@,;@œ¡?´•?ÄW9?ñO…?è4ï?†»â?Šâ>µxé>Ÿ$š@fÊ@%`í?ïÛ–?ä\?Å>§?·è–?l½?u­?~Ã%?€/e?˜í?·Vó?ÍýW?ì ¶?®ó>¹lç??¶û?¶äÅ?¶Í?¸!7?Ú;š?Ý°~?ŠÒ?n·¡?“µE? ­?.¯>ý=¹@ç9@/jã?øY¦?¨5?¿ÛÊ?Ý0±?–©ó>a …?æ?µ8m?¡ñ >ªÒí>ÆY"?ª™õ?®7“?´Qo?³àÁ@ +F«@[D?â?‚?ã£?nµ? W[?¥â¥@µ@è@%Ïž@ ­å>«Nž>ŽÖÆ?û3?…g>ò¶ ?T-?ü_¢@õl@1\@<¿@ ‚t?ÒD?åÀ?ùä?ÅRá?Mª}?p é?¹ôé?´H ?ne?zY?Ù¼æ?á<È@&œ@'8½@›9?à:'?þÚ@Èo?é?ƒ?„ÿ5?{ü>?]—f?e±?°ã?µ j?a@F@ l-?…ùƒ?7"?¿¢ç@ƒT?Øìã?#X?cž5@ Ù@ +Æ=¿–e<Ð?A9Õ?gØ…?%S>ç¥ì?„%ð?Þ?Ö*ã?µö-?À’Ö?Ì}í?Ã^‰?ï>»?êÀ\?åˆ?àK?úíZ@I ?ïiø?ÍN?×'ä?lx¿?=íÕ?›VÆ?Ú??Ë>ø2þ?»Q@6I@)@ehz@`Î@JR@E5%@)ïä@0ìë@UJ@lŽ­@)@¢?â9O@V]@4^[@'2J?Q’#?3ú~?ø°j@ ÐQ?ÑJ-?µ \?šî‡?m–í?æN@H»@;cÍ@aª@ÓÃ?«µ?{\_@ Mu@|†@X„@.[@ %@üï@Æ??š[?—w—@:MÍ@7»½@=¯Z@Aݸ?ëVœ?yñ$?5E>ås9?to@bË@&¹@I4®@TEÎ@|œ?Ý€?ÃR}?°þ??™²çÉ/>çüY?]O +?kÅ?Â"?Ü-Ì?ÀÅZ?  ò?Çò?¯R.?£å?~ã­?Í?® &?5 @1Ë@ «R?÷‰?é®@Ë@5b&?ß9-?t³ö?qè¸?}í?a™?‰r?®Š>ð#˜?8?´À3?¡´¿?p4?´ì?„T?‡!$?Ãù>õ±à?têÕ?uqX?à]^?ðkC?Šþ¯? ¢ô?gVÎ?ƒÓÌ?›½k?–;W?˜Þ?¦«e? xŽ>üôž>!Ó’>‚ä&?®À?¾~¿?Û_?ëÕù?m¿?hm?í¬?4V²?Ÿ„?\õ>~‡9>Ô>H?%V>—²¥<7—.=ûyŽ>¨=Ø?s"?‡†C?|›K?LC@>ß»?,Í? +=[?FÆ(?o„8?>ºÐ?_g®>_ß9=ú¥j=ZzÑœÏ@3@ÊQ?çÛ§>M…>bˆ>;Nð=¬;Ò‡i?»ô„?žú?F†W?=á{>ÀÎL>Õdû?/w/?3»°?jHW?o4q?§PÓ?³â¸?'ë–>ªy~>×|¡>ñ²>‘¾t=—q =Óâz>L>³9?rÁH?=g1<ö£Ø=[TP=äe ?Ëu?Âà*?3$e?<’?ú^Š@ò?»kg?¹»? á?—ù$?°¾?´Xæ?HiH>öä¾>E ‡>Ê$·?!õ>â[>¬¡?X%N?Ø›?Ë?¯\? +$>ùp>¯ØÁ<ÅÕØ>êÂ>¡J?`ˆÎ?|wb?Ǧ??´6N?&V÷?2¦(?ÇúÝ?½—>úrÎ>÷Ül?«t?´>]ÒO>6­©?ùÒ?"ßÎ?S‹?^XË>ë…F>¤“q?xA4?Š™?xŽ +?wô²?®?©?ºÜ>É=Ia ?o… ?¤?¾z?Ð.?«8›?ÓƒC@-Ïi?æ!&?†ÜR?‹È?S]?Ýþj@Ég?Îb]?Aã1?ͽÝ@(¹a@ +Õè?¾€?¼z½?»çÄ?Œ#e>ý¨‡?S"…?«õa?˜=?}Ø÷?dRÅ?9Ÿ?7zE?$~Ë?I¤>¢Sš?€ ?¬$k?°Ùç?ŸXù?ò ?ªFÒ?™!õ>þsà?Un?/ã?R’H?žCg?š9?•ð??G?éjw?ê~?ÂÚ?±»Š>þîÌ?yÚ?¹²h?¶“€?¢G?š›X?›z?˜Uê>Í>5ËG?,N¼?/í>ÿks>ÿÐ3?<ÿA?AYn>m¨P>XÕx?a~¡?Zá*?½:Ü?¿ÔR?Caã?F+e?~v‰?ôy=í7Z=Bùã>ðŒ?†?Qì? ù¤?nåK?sX? ÷^?/d?œÎÏ?¢`Í?’1¾?“n™>¢Ö>:š„>KM£>\?"BA?>g?³L’?¹8í?¥›?HG?§Õ6?¬»œ?‡ ?€–ï?‘kÌ?‡¶?Ý=T?òå?º^(?¶¬½?(CÎ?Ü$?oêí?€Òk@t!@*?ø;Ê?æêª?¸‘v?¯Öµ?²ÞÛ?ªí†?ÓA?@>‚0~>pÌ+?k¤ö?zlÉ?«:x?©Oá?]!ï?Vo?§ ?°,?…¢e?oe+?3üù?'ÕV?¸†?Â+‘?M%>ý·‰?x”4?|»?¹£å?»?î+2?ìNÝ?ÐXò?Ò0P?±á?®Ð%?×Û¢?ÙBN?6š?7Âp>ñ‘¡?Šú?áv€?Ö]u>Ó¨}>Î?.¤?=ñn?ÃO?¿ÆÇ?ž+t?“ÏØ?\Á4?„f™?ó* ?ùò—@¤Ä?öyõ?Ãk»?©†.?‡I?*†?n:{?j,?eþº?– {?þs‹?÷Ër?Û}Æ?«¾?Šù?HºE?£Î³?Ó²ª@ÀŒ?èç?‚¬L?‚±C?‚·ñòE> Oõ?Âb?§1?Yø1?FãÉ?„L?¬Ù?â¦?>D?+!ë?)±?%‰¦?!†ç?ƒ ?„Ià?”Üw?™7B@\ó@ +F¬@D_„@6sû?ÀâÌ?¸ÛÏ?¥3?º[?á¹?Ít8?£ˆ‘?‘\S?\é??Ä +*@3¤<@»Š?éžÑ?¼Ð´?…*a?—…?©!?ÍÙç?üÔ¥?u6Þ>—üe?ŸX?äƒ@$‹z@ å@D£?„Õû?ÖÑ?Õ=&@Þá?Ö8k?Å„É?Ì•Œ?Ð'>b|k?„/?Ø©ƒ?;¥;?2…ì?ĹÙq?u€m?µ´Î?†êI?T K? @§>ÃgÖ@ Ý@="p?ŒZ>‚çú>ÔÚš>ã +V?dº6?ƒ”|?••?—?„?‰²•?~&ø?á)´?ñ)G?¿Ç€?¾®e?ÒR6?˱K?äz?¼ïc?‘Ê€?œ7?»þ ?Ñåõ@0Ê@¤?bÞ¢?‡ Ã?ÙÿÅ?¶šM?8â£?gƒä?¥Æ5?Äd5@>?ñ2Ø?¶j%?Ÿš?ƒ8D?…;?£ou?¡C'? Ñ?ï!?’™Å?ƒ+ç?y!T?Ì{à@¢•?ú?ó·¿?ìô…?æ+Æ@`@!, @º?Þ—ÿ?wÀ>AÉ?‘¬‘?¯¯“?d¤?C3Ó?ü¯v@ ‡ò?¬êY?™ÊA?èÆ ?ü³ì?Ù ?Û‰­>E‰#=•I@3?”Vï@k1@ ¥w?ÈYÆ?£>@Å“?[ã?›Ž@¯H@ÌÍ@-„:@òI?4ˆÞ?…@C­?î›Z?³¯?« ?rØé?¶Va@V?özù?ž§?™Ï©?”õÃ?”«œ? +à?Ÿlð?¡Ðh?‰¥ö?KÌø?˜O™?ئn?j<>»¥«?a„Ê?ÁÙ_?ÞÇu@,~@)Ò@;³ö@"tN?ÿÝ:@åé@=êX@ yn@ïý?¬’À?#-?;rX?YY?Xëi?KA4?„~?? øµ?œ.½?›Çb?¥ç?¬¸Ð?àK…@¤þ?»íT?<“?m#?¬>Ù?œ¬?ù@?½¢€@@±@ +n_@æe?Õc6?€!‹?t«y?s?›±™?¶²T?¿9Ê?ØÞ?ïÿ?œïÌ?Ð6F@ ¯P@ éÍ@ËS?ß\Œ?§8y?}øÿ?S?b7©?¼Áh?¿IÂ?¿/]?žºó?SU¨?…šþ?£mÂ?†¸?%šº?®Éû@@ÞÒ@ñ?‚›@?³^@%b‚@÷á?, Ë?d€Â?ìÈJ?êŸÔ?Û>j?Í/Ð?"As?_ÌP@gÆ>v,s?ŽÇ}?…)î?{@€?|9˜?Þ^ù?ìûr@#x‹@.÷c?»¬K?‹òß@!ëY@7òÔ@ÇÑ?íþ¹@¯á@ ¿1?ãHœ?¿6Q@@_@6¿Õ@åi?ü¯@?¼V-?z¬·?PW–?.íP?7¹U?Sk?Z7ð?´Ó€?Îþµ?ú9?ìl÷?Ëo?ÝU‘?ù«Þ?àÿ?y~,?‰q6?Ò¿c?ÐiÚ?œìx?›'¼?º¼ ?º«µ?к'?×R?DÍX?%Îã@9+o@S:S?·Fè?x(_?xe?wþ‡@›±@#j$@ N@ee?ïº?Û¢ê?šµu?%Aj?ƒ€†?ÎO+?Úäš?öÜÅ?è²?Àâù?–Ù!<¦I[>tdr?½ê„?¼‰8?vˆ?uúœ?“8U?Œ¡Y?ëåÏ?õ—ž?§§Ì?”½Ð?Ç?‘i?rÉ ?\,ç?¤ ?§.?{K½>ýé×?¼$@/BS@Ÿ?õf2?ÒðŒ?Ýù?v¬?ÖТ?Ñ°Ò?¶Ÿ2?¶ŽÛ@&Èà@&L·@ Ï@ ¼?ûå?ñh`?©¾@?”uO?gÎ?1"@?ZÌ?ÊÄ5?ƒÎ>œ)¿?œ?”3ž? + >æ±k?ŒGM?„ÍU?®˜(?´Š?¦5?‘?Ç?Í X?à€O?¹Zl?’Ä!?¦ú?ÔU?Ça±?ž5·?ž\³?—äÈ?¢½L?¿•|?·Ä:?p5m?dÍe?!'?`Í?ÁIŽ?ÝŠ^?ÙGÔ?ÎÅE?äsÚ@®Š?í|¼?ˆRÏ?Š«?íAH?é">?m‹?lã?„û’?ŽUg?â™0@<?Èn½?—¾¿?¡O?¾o¡?¹ºª?¢6Ž?•0>ëkë>êsc=QÈ>?ˆU"?”“ß?¥½Å?¯êÙ?’è?e—d?ŒË?°mö?‹Xõ?!í?®µ?i™Ú?izŒ?±e:?Áé??ÀÛn?²Çž?×ä¦@ÃZ?äMl?¡ÆP?¥™×?Ú[Ê?Ý€Ô?ˆà¡?oý]?gE6?gÐê?_×>眂??Å9?Œ¿?ˆ +P?g59?†É}@^ @NX@#C¼@+"è?Ü+ÿ?´Ø?¿‚Á?Í_Ù?¶‚?s?ø?…¨M?ò ¸?ûF‘@Lò@›`@9ª @G<@2 [@'ŠK@%ÙÜ@+Uë@;Çd@e>}@e,þ?¿ ?Ǭ{?Œz5?o¬?ûËg@'ö@@.}{@:¿ú@ðM? «Q?)€6?±`¶?˜k³@)â@@<²E@b¦†@)š´?Ó<Ï?ðÇ'@Ü@̈?®ãÅ?¹Y@t3@1"=@F¦r@J »@%?ìï=?âèò?«£Â?®T@,EØ@1 Ö@&gD@%ÆL@(ƒ÷@+*r@;D?›²­?¤Ç„?åU?ñ´Õ?ÌÚñ?Ýq+@*-…@8ñ @,ìl@+€Z@@iÎ@H‹ª@²u?¤’?äM\@5(ú@ç¿ß>çï?œÔ~?«÷—?ø²1@ +‡¦?Ñ_³?÷?°'?Í’š?Ü;?ÏéC?ɲ?¬f½?‡¾Ì?‡œ‹?´·?Ê·&@ww@ÃÍ?©¾C?£pÛ?¼?”Ï›?k’?8á¿?ubI?v™?w7”?w²Ø?V¿‰?Gj1?˜c¥?¤Ž? ·´>û‡É>ôs>üç•<›øN?1]À?@ú¼?/Õ¥?``>ÞŽ´>ûø‡?ä²>ñ>v>ïî?-zj??ÖÛ?Gf.?k÷Â?8_?á¤?‹3>?šlÅ?Å4?®?”I¥?ŽH×=­iä<¨ÈU=.Ü>Æšö?6>?$ÂË>ù°X?6öz?!C ?€Ê?F)??r¨±>}ËG?.5>Òeî@âB?½oC>]ü= ð>«¿à?C­?;Í[=×MÂ?Çè?£ã>ìà>Ü"u>ˆþ‰>¨kß?–°ë?ëö?‹€? Y+?{HÏ?ŠÞ}>Ëß[>¹>ûjÔ?+©? àø>ñ ?[¦w?¬•?›Ez?q£Ù?.>6.T?X?K?;¬Ø?Pår?™y-?•K?ÈËì_?ž-?öêŠ?•|?›)?=Œ?Ÿi?œÅE?yû¼?zJÂ?‹n?‰ F>úhé>óN>f7>[ž>ú̇>ü­i?yäW?{x?»>û?^?îM‚?ûk{?Þh„?ä*”?%¡|>õÇ>þž?×?XJ²?bo?Õ^k?ñz?‡ÖE?Wx‚?‡Ns?‘LI?° ó?Êä¢?4$u>[ði?ílµ@-Ÿÿ?—ɶ>ŸA>˜ +`> rM?³ñ?1BA?o¼>ìx´?D¶?RêÒ?ûF?·¤£?š$Ž?tŽ‡?CŠ°>ý™›?ŽmC?÷“²?™8w>%?‰eM@P?å×?X‹q?6ó>þ ?c.?ÑEƒ?Ï ž?Þí +?°$©>þNü?)]?‡WA?Aœá>¶*?ÏÜ×?ÞïÓ?þ¤.?Ù©—>þ¶W??£ä?ø±Z@g@ËY@†Ë@7±@!˜Ê?%÷Þ?8$Ö?Ú?oœ”>·M<>Äïî?Røw?H‹’>ÿ\¿? Pž?‚Œ½?yG1?:#?7@@?¨ƒ?‘M?-F?‡yc>†Ð4>oºÍ?˜PÕ?”˯?#›?;k?‘??zzê?{°?Ðì?€E?­=ë?«'?:A?;#Ú@8á@ø3?C¤j?$V'? +M?¿·>• ¿>ƒ,Ò?´›"?Çà?|'ˆ?b~–?SpÅ?XXF?\‰4?`ºé@6µF@HôR?ÁÇ]? Xø>Pf§=q8?­’î?¿¸R?‡?€Î@^Û@ Öõ?hVÉ?OÁæ?¹h?Ámä?0d?+¢žR>‹ +?2ir?KÛ@ ÈS@=?RÕ¡?-øÔ?{ôÜ?I×?ê„ý?üá|?Ɔº?Â`?«L‘?°»ë=ª•Œh™>¦çî?¦ä¹?¬ ?œÅm?•3?Vœý?jññ?°ƒ?»Ú?õÅ&?Ö>vhÙ>‹lÕ?¬_?+ ?„6+?‘d?ÃhÝ?Àü§?¶ ¾?–Èã?•?I? u±?LÞû?•¤u?—½ö?™×Å?‰Ûñ?Nr?@x?> ˜?eýB?]¼?Ž›Ù?‚©^?p¼?[?2"D?½º?UIg?¥º?É °?üðâ?䋨?Íb%?Åm‚?×;?n®ˆ?$«@oô@3¼%? Þ?Ì?ã~@ +½†?¬÷?…öX?`D…?T?iô?x&I?ÀŽy?Â3{?„­?s$Ÿ?:œB?2Û?D¸?ƒCM?ƒGC?‚±?kå#?Îy?ôQi?÷Ò?÷ÃÄ?õŒŽ?Ę2?Èüþ?Å]?ÃÈR?½#?–wg>ÃB?%e?“åã?aáÆ>¥ò?¶ˆ@Q°—@"Ì^?½¢…?˜@?D“)?'Ø?òÌ>Ìùw>@©'=™¡x>Ê'Æ?"ç?ùnÜ@*>˜?ël€?¾C!?ðLz@,€?aÇ&? ßÄ?®I‚?Å~?Å€-?Ńå?i¢Œ?Mž3>Ѫ‚>à?v?šw?–2 ?h2?we©?¨6 ?©$W?ÅŠ[?·»µ?Onm?‰”¼@ éL@{?Å‹K?‰|>ÊÇ|?yÎ?ƒ±ì?pYÆ?8Qº?yi[?¾¬´?ÃÓþ?À¢º?åj&@ +h?Æ^?q8Š?¢êK?ÅyÇ?ê$½?úc?,õ?EÇ=?–ÊÐ?Žš?„&?‚°ˆ?ƒ–¸?Ù—s?å`¶?µÛØ?±<™?øAŠ@ó?i?pLK?b½L?nnV@=î¬@:¤?¼b?IA?ƒrô?zŒ?&pq?]1¹?ì‰]?Ò»J?&uÆ?Sm¢?¯A8?”LO?S?>{?¢u?Æ$9@àßïs=ɹf?”Â@/Œ?rù¬<êZº?œ?ï@ ð?¸Ô?Žp7?¸¥´?ή5?¬c5? _(?ä?vJK@@œ@&À?Ó¤d?»^Ð?*f??<?Ö_9?ü»?‰d?{gÎ?ñ?ª‹?¤t?Ÿ^?v* +?cˆ]?É—Æ?ʘ#@%íM@† ?ßC?#×?þH?ëI?bW?,?±Òü?Êüq@I€?å±Ê?;Ò? KH?›K?¢<¯? w¡?“¦m?LéÎ?YÚ?”›?»\?¢¨Ä?äò\@Fѵ@?¨×@"Z@Æô?…ª?˜-\?¯e?—¶Ï?«•?‘¸@Á@ ›@vp?èÓ?—î¢?*„?t?{Z?sR?eÖ?9 F?pšª?¦çG?eµ¨>\á?EÒR?´³?Õ9?úž?Æô?‡° +?‚žŸ?„ôØ?«‰¤?Ö7[@«¡@;#?Ôr›?`?Zú\?Uï?ˆš±?¦F»?x­?~åd?p>?]`ú?¯+å?êÇ?às¹?Ò¹?¡ ï?h–(?ú]>aa?NäÛ?¾“’?¢AÒ?‡9c?ã/7@ ;¿@½è@ kÜ?Ä6Ô?Z?‰1M?°e9?¾*š?Å^?À0}?¿Ì +?ÉÞÈ?ßz¤@ –@:t@(27@ |u?â{?‡¦Ú?ˆ4?‡°?õ>:@Ybf@3+n?æ+½?Ô@ ?¾úê?–0>þƒÕ?D%?Ã^_?Æ7ù?œõ?Ã@[ô@ž?•¥­?¤Î…?ਮ?ÇÓI?[Ã?zì)?ýƒ‡?âÏd?/Ì?2[{?Èo–?ÒÙv@öW@þ¥?½¬)?ÃL}@0Ûð@*±A:üß@ë@½ ? …É?“.?¸ÎD?½à?¼ÿó?¼ïŒ@ó]@3ãµ@;? @<µ&@ œF@þB@¦2?ûNn?Üa?ÐK?–Žu?Bô?ƒ­˜?zÌÙ?\x ?HÏ’?&B§>âÝÀ?«ß´@"@??‘€Ì?³ÄO×?ÆÅl@S–?Õ™Z?qу?°ÐV@mç?æ²d?§­Û?ŽÞŸ>±hó?Bõ%@)wŸ@ Yr?ÏC?˧“@&Çq@1°Á?¡lÐ?€Xq?¥?µÍ?Ÿü?rt?e1?UŒ‡?´3Ú@©±?Åœ6?=?.˜Y?A¢?mÒ.?àwó?ä +r?矹?ë8,?yŒ?sb˜?¥ûo?« £?ü¬*@ o@z÷?ðÞ?™©>úƒ?-¹«?oˆh?LÒô>¹úÖ?`q@ +&í@ÄÝ@ÛM@ ÿ'@f¬@gâ?¨ÿ?n1É?š*?²{É?—Uº?m·Ê?¬'¿@p@@\]?ØŸH?â ?°ÔÌ?­*?*ó?vw?å@ g)?§…h?eæW?v€4?kÜp?k¿&?k›Ú?]Œº? Lß>÷«>ãCY>ÒÌ?üE?°²?Ë’¸?Ó¿ ?Þ?:î ?º_€@&èÆ@Ái?¯Xy?«Úû?aåõ?ivè?Ö]?ß"@#@2’?Ô¼?«Sü?³õM?¼‘Ù?¼äÀ?¡é?¨èa@'xm@,¶}?–ÔŠ?gÉ¡?ž>ç“?pQƒ?³œ?ªÒ?¡‚Q?¦Ö/@ fA@ œ¬?½GL?®Üþ?®Id?¬ßy@L¡@'..@ß÷@•–?ø]¬?VR?qä°?÷¢ @çI@ õP@rá@ûø@x?@ƒ~µ>kÂ@+€@+v“@uï‘@g@[‘n@,–¹@³?z•@?ÁÀË@VËi@Kü ?¥Ï:?›¢?³>Ä?µÐ2@K³x@Ž@”ÂJ@˜ï{@|m?öhë?ì_$@¡@Rþ@p@ ·Ý@ ëæ@VÓ@$è@5ü˜@+6¹@ j€@CQ?Á¨W?±Cå?Ñùø?ÜhÑ{?2æ~?mìE?›¬k?½gý?Ä Ê?ÊÃ>?³^?ùò?ž¿1?”ç?F?y*”?“?¶?³š^?•1E?™)û>¢ÁÖ>Y³…?f6ã?tÉæ?w$?w®õ?¤3Å? ]¥?Hm¹?N6ñ?q ò?<4b=5[D=(P;$ >þvÃ?Nx?€AÇ?lyà=ç”<~—™=Gù¤>å°8?®ºõ?ƒð\?NdÂ?Et?+H?½…?Yã?pÁ^?—óÊ?=¾ë?̃>ªâ>˦/>ííT?j÷>ü>>þW4? P“?…?#Œ\?nÛ$?O C=]_>QD=¯Å°?N‹Ö? m¿@ýL@O?Ûœ4>^Ò“>¯ö}?˜ >[Yû?ÌL8?­€?…[Ø?_ôG>í» ?$Ež?îo4?î3Ð?L±’?<*é>¥½è>¡¤©>©Ó->²ã?Œ½‡?´ñÀ?Lò>ÒóÆ>æ™ã>ò\u>ð}Ò>ò–â>ó‘è>åI©>écç? K? ç;>ôPƒ>ÿò?9w‚?FFZ?Žw_? ±?’ÌC?”òÏ? ã>ö*h>ý2? aë?rÆû?Š·e?CÁ(?* ø?%ÙÀ?ä>’\¶=¯mx? +PU?jm¹?n®˜?ròº?<ã‰>ÿÖ(>ÿ¨ >äÚ©?jÊ~?Ô{O?‹¬Ç=ÕŒH>õÖ>Œ‰?ñn?¥Áh?¯èœ?Ñ>4?¯ü>úX´?(?6c?,#ÿ>ú½%?œ>?R¤¤?Våï?‡»?°–?ù ˆ?ûVc>݃>†Zs>(Þ;=ŠÛ?a 1?vÆ£?…¤? U¨?Þ¨ç?ü‚>ë>ë=ðß?L„g?|UÐ>¼º/>;nø=hÛ?Ö @` ?“Œÿ>Ù— ?&&à?8I +>±G§>öñ?‰Kµ?ß·ô?CKÒ? +Ùƒ?}RÔ>ù7<ŒcØ>€”²>ý‚w? Y…?#™,?­™¦@ÆQ?òöë?éÙí±ù>ßÙ>þwÈ?[­P?óy?ËE:? óe?"5°?xg0?|”?‚Ç?‰Â°?”¥X?´¡Ó@ hS?ïÿ?Ϫ?7¨?›µ?š©?©h¯?šÉ_>ÿIf? +€÷?yž?uœ“? + +/? ~>šº%>§µÒ>¨g·>¤¼…?]éè?hZ¥?ÌÍ?ÔÐ?®¶j?°™s?ÛÆ? CæÏ~?¾®±?ÁÜ!<†ñ;ZÃ_?ö? }?f%?ºG?†?†%“?•i?#c„@\¸æ@Q0?ò]î?åŠ?,Â?6äþ?ŒÈ?šÏ³?ξC?ÆÀ?¾>#?³!?§°7?—\}>§µ¶?Iç?§ÝP?¦?´P,?¶kV?¸†a?¼iL?Ã<.?Â[î?ÀóÚ?¢(Q? +ó±?4!?ˆž?§ ?å@?½˜Õ?gð?Ê/W@5E%?îËÌ>·—R?a„î?ÎÍ^?”Ô?2?7ë¸?nÞ?pf°?‚¢r?Ep?®T?ÝÜ?%‰?‡À?¶âµ?ÒL¤?ßÉ@ÑÂ@«¬?Çv?ƒÆz?Ö ?útQ?à?ÜJ˜? “= ?­‹f?å!ó?Ìfö?Ä•f?WÀ>Å7ž?,?¤@$~ˆ@47 ?Ñi7?ÄÄ8?ŸxV?›^œ?ZZ?^gŽ?b›B?^é¡>Ï|±>úx+?Œån?‡å¿?NãÙ?D3•?‡?¹=>@?üÐ@uÙ?!Ë?S>×®?; ?µ-½?„¤>¶"K?ƒË@åë?=VO?ƒ‡Ø?Žýé?‘œ?"{>¥#â>v­÷>"9°?Uo?g ³@è@'ÑÁ?ÀPY?ƒ›³?±Rx?Â~?û"µ@º‡?Lë¾?ºõ?„6?iª?%îO?¬?F(Û?=†?Tzo?ZXà?«Z?cX?Ń?Àòð?¤Öý?› ï?ºÑ™?:áÒ?¼Â?ÞV.@˜f?º%(=¬º¼>üžp?…«³E?»Ü@ >Û?·-z?}Tþ?\'˜?O_ò?o«¤?‚B†?VØm?L·*@ 9@ “¼>#g@?ÊjÓ?Ì=®@o¹@ïæ?þòo?ß±?fH?’Ï?‚?‹ŽA?dqD?j%º?ƒSL?_ªÖ?L>ú¬±>òù6?cnº?ÌÒÓ?³ÕÁ?ƒ7?ƒ2i?ƒ/]?™0A?³D?¢_?!r?ÄÆ®@É?ªnÞ? (Ü?»&²@z?Ùi?¿(m?Â5£?ÄnØ?»«ë?¶Ñ@ + @<…?æfB?äêú?q•?:ú?=Ü?Øø?Å«g?ÏX ?5N{?ö +?*5?)#X?“ã?Š—Ì@:·L@>nˆ?ý`L@„"@\x‰@Vè´?r»?¸¸?)¾?IC?­\e?¡õÔ?e(B?bÜ?|…E?ˆ?‘=æ?“÷~?«4?œ¾0?…ÕW?“`Î?¶DÏ?Ú;@çq?óãÛ?"ùÙ?<¾A?çÅ?¶ýç@ÏŸ@ˆÒ@Îw?Öpn?„ž¯?˜.o?³G€?y{†>ÆÛj?H9@ +5f@;+@Û»?Øí¨?§\T?•Á>?m]?gK?a>?€?h€’?|8Ï?“œ8?v}5?L©'?”Q ?Á·?ãØg@á"?£”B?Vj?¾—>@œ?æ³*?£¦Ü?”é¸?€Ü?—ØÝ?«¡ ?Œ‰?jüÙ?¸ª>‚þË>ôh(?&L?¯=F@PB@ìM@ ;Ê?´{?2š?±Æ@þb?Áî ?€K?¿Ç(?ùú:?Ī¡?™]R?» ª?ÛNí@)>@^cp@Šj?ñK?™_?ºH¢?°ž,?¢F=?Ö/²@Æ}?Ú‚%?¿‘’?±¤í?šÑ¶?«“?ÇÐ?ð Ê@„?ÄÙA>Åã?ˆ®@5Ö@n?¾ðž?âO@Ìè?ãË€?kø¹?|{? ïë?¥Õë?°ë?¬ºü?¾jö?Û”S@•x@±÷@¿¿@·œ?ñ.?íf°?½«~?ɳ•@å@$¤@Žœ@ƒ]?½©?ÀàI@ +Û¢@šó?T‚î?COr?üÃ?@ç4?Á;Î?½$8?îáœ?êÔ0?¡:¸? †ð?>F3?³k?¦ç ?Ãv~?›Ä?–G@²÷@ +m?ý¡û?ç4¶?ƒü?©×?¸Êk?ù#)?ºD{?‰tÆ?«Kx?ξ8?­ÿ ?Šÿ?ÏWD@ìÓ@ é·?öµŠ?ùà_?ùÈr?¹œ>8*„?,”‚@ +@@ 3„@u@ ?t¬ã?|—Ç?Dò¥?Oó@žþ@"Y>U”=£»Þ?¡<³?¶X]@)Âù@8æí@¹p@ Ôê?Üþ?Èút@º@8;}?íÃ’?—¼?È×?è¯z?ß*5?ÎÓ‡?‘ß?Â'R?âŸ@)Ý»@"Cò?óLY?é d?¾5Ð?Àšü?¸…‚?¸Ì;?ñö?û +†@+]@&9¨?ꇃ?Û¼£?ýŽ@jŒ?{C>¾Ãz?£¨Š?ô¶…@9tÞ@o­ø@©?‹5‰?O->w¡ý>˜Âà>š'>ó£s?Î/v?ãR?¯?É­)?K–?”ó}?©)?¯œÎ?7¯/>ùË(?µDL?ãy7?¢ê?r5Œ?¨Ë¢?áb‘?áUä?Ô‹i?¯Ë«?(u}?O2?Õç¹?Ïà?Ïö!?ĵ¨=Á˜þ<Ú ?Än¡?çGr?ö™B@x3?÷ï»?ïþì?Çwg?Œ×‰?ƒOE?ŒFx?Wù¡=Í=ü?Ñ>ôI×?y¿…?‰2y?Èà?Üõ?”ž¯?n.?š’¸?²o6?‹½?A>"?=Ýá?4\Q?; 3?Èù?ž+?oem?w?€">ì”ü?Ö·?µëž?bçÜ>í`d?>Žð?‹có?yŸ!?QÍ?mp™?«„*?¯G¸?«†?¢­W?ÖœÓ?Û¤×?®‚?¤(b?})Â? Q/?] V?¯†A?¯j8?¯W?¥ô°=%Aî=§ø?£Õ?¹Ú ?è,e?üŽú? k0?,Ö¹?GïŸ?h}_?€·é?¥×÷?•¬Ä?¸â +?°Q=?{po?g¾«?Öw>ç‹Ï?¶?çUJ@$°@Í9@çNÒ>òÌ?ŸL3?ŽO»?ÏË&?çB%?ëÞÏ?ð‚Õ@öu@Uu@MX7@´«@Îÿ?8Ãf?%kª?ÓäÙ?êù¼@ç³@¶@!‹à@8«½@±w?q¸?`Ï[@ +”-@›?Ä' ?«mc?Ï~¨?蟇?¨ü? +uµ?¦@€Šá@M•?³5’?½{Ó?Ç˃?Ò$ž@qÙ@,a@8»@JÝ|@;…¤?±8Á?Æ£k@?”ø@/³Ó@Kÿ?ø•ç@Dé@eÔ@Ï @1U…@$Vâ@ü@ +Æ©@@ì¥?èÐ?Î¥Ñ?ˆÇ?i~?ÓÉè@0­?Êèú>çg? &’?€j«?ŽÔ?Ä +J?¸«ó?®ˆÒ?©ZŒ@!2µ@;R@V»?é0—?þ$c@ l@Ú?j;W?JL=Š>5{ù?òÎI@ÆÊ@ ?Ž@,†?à~?Õ+?š›H?m°A?—°?²Ø/?¡Ÿf)?³!.?Âée@ ,@È?sÇw?rÎÎ?O/4?]8•?2ƒ>úöù?®/>?«à%?¹)?º¤Ä? (Ô>ú"¥?ëÑ @ ¢Ž?Ò>â{~?B§J?)`ù?E¸x?; —?€@g?€ ?D?~jI?dÓ?S‰Z?‡nî?’n?nTÖ?NÏÜ?\>ÖÛW<Ç`>å?,ìì?-,?‡pÏ>ÂÛK>j+5=hÆ>·úF?‚Ož?žâ>HžG=€G>ÇY>Åãoƒðü>œA>?Ï}?THä?Ét@;/@@hÄ>Üyx=î»>œb·=Imh<ÿ?¥=6qû?ˆo0?]i? Ï?Læ?œ¡?”QÄ?™‰¬?¡Å4?¾Fg?Âx»=Š +Ñ?k<Ä?Ÿpd>òÊü=Zzß>“Õ»>òn>yöŒ;X€>Nä9>óo>ó¬H>óæy>ô!¾>ô[Ñ>ô“>ôÊÑ>è%v>¤Ð­>¼äÞ?,4y?0ló?=þ?8v>ò¥>Õ1?KŠM?Uâš>%Š?·è?Z‘˜?YT>÷Ù:?¿?"L?‘>øl«>h7‘…5”?1õZ?§?y‡?*BÛ?ƒ,Ý?y/Z>úPŸ>ù™B? +?Ð?ˆX>ú¯ä?y@?%ÿ?/óô?œã?›­¡?äS?é…©@&?j@,â²@?è@=åØ?ˆZJ?{¿!?åmË?ç2ê?È=?È}? µ«>¿90?aá?|EØ?7¨"?«=û$°?8«©?~ˆ?*=s?l³?¥S/?Ϧ?¶Ïñ?C?„î=?}0>¼t?ê:?dÒ?'y>ô¾?…E‰?º Þ?.¦=D¾P>ÖH„?Qbn?{Öx?\w?T<>ýÑF?7Å*?}ç“?hõÐ?G÷ê?V7»?{Éý?=?~)S?GÍG>À:³?-ýÙ?ªßn?ƒ*>¿!?;·‰?¾ß›?®þß?†²"?k§Ù?Ù!>Éç¹<õ™>`?~ÕÒ?oNx?J.-?^D"?cù?kb?‘5š?“O{?•i9?‚[›>OþÞ>´Gì?ƒ'Ô?~Û?l.?T9?C%? ?*¥Ð??¯ƒ?„C÷?i >›M”>‡A>ܤ>öUŒ?vº?:Þ?¿™Ÿ?·ã’?ƒê?ˆ?Ò?¸%?·çt?çì$?ãÍ[?ßµ¥?ܘÏ@ŽH?úæK?˜Íã?šÊ?eÛè?w~1?Є?ai>]ƒô>G¾º?¡û?­tW?vÞ™?ea?¯ôv?´=¤@ +\r@ÏL?åè? Yâ=©›`<™j%?{ac?€Âí?³nÖ?°už?ˆ½?Û +=øÖs>\r?l6í?}ã¢>Ky8>GâŠ?iÞc?u‡> N>y,¶>‹d‰>—˦>ÊŠ>·Öâ?—pX?›ý¨?¿7+?ÇFÜ?¨›r?¨Éò=ˆÕ4=Ûg?Êøt?Æn”?À` ?º¦?…˜?zX?“? ö?˜Cé?¢*?e…?gc?¸:?ê+?¸µJ?¿î™@\v@S?¦:6?©Õ­?é(?_2Ñ>;cÁ>Ê\Š?¶Þ?Á'7?¾¨Ç?§mí?n/ª?‰W?¼W:?«Þ3?y{O?“^°?¿Â¤?—tt?,ú?hu2?Í—ä?Æü?µN¥?¿Æ€?Þtâ?¯—ö?*¬g?2A@€A?Úû(?¤ï.?”+ô?Œ0Y?‹·?‚¢?s#?Z ?n“+?‚¶}?”×o?žû@ÿ@?oÙ?µŒî?ÔS?˜~v?ÄGŽ?Å@Ö?Ǿƒ?ÅÀU?Äj|?Ø‹€?ײ?Æ°Í?Ä„d?m6?SQ¯>¼7?9›&?M]??ïÈ9@Éû?`±]?\Ä?ÄW?Ã’D?]ZÃ?RlÓ?'ó|?,`>ªj?â?öî,@ ·@rSË@gç{@#a´?ûx‰>>ƒ?1Nï?ñ?€?êø?䳎?ÕÐê?Å'¼?ïû@¸x?å)†?›{›?rÇFŠ>èé4?.?4¦?EwT?ÒÐ>Ö.÷?B:J?g"?ŽtŒ?Žù‰@,p»@Dd¼?Zí?¡?Á>?UÜ?l!G?lÇ>[>“†?§1? +1ï?VÛx?y“S@N@dC@ü¬?í? y6?®}?Þ?É}~?—ëÝ?¥+Ï?Å~‹@Ãß@CQ +@¸?!F‰?›Ñè@ˆ ?¦C2?ÕÔ>œÄ^> ¿è?ƒòí?ÙßT?—0²?M}?Î@›?ø”D?ðÌ?Ÿà—?ƒ•;?!<·? ?œÍ?šœÇ?nÕê?sÛ?”ÉV?›tù?V”?E³S?´L¢?¸`?ƒx—?Šyw@sö?ûË ?ˆsF?ŽvÍ?ȧÆ.~>§>?Æž«?û¨Í?¯ÔÅ?–KN>¸÷÷>\ +ù?h{Ë?‚ÀÉ@Bâê@Rqç?Ž-h?vÒÖ?¬^ö?©Üö@3@@XS@<@dú?ÃÇ&?Á“˜?Šv?‘$¾@>#?óYj?·fU?­á¸?¥?a +?‚KZ?~_Á?\r*?XÆQ?dð•?i±¢?jØÝ?K§?½""?ÃE?6¨É?×@ ËG?ðžZ?’ξ?™4ø?¦5•?Ÿ f?—â?¸_@z?Ó©5?¿j?Ç»Ñ@Γ?ùK ?ž%‰?Øl~@‡@íX@ dx?âš«?œ/?‘B‘?k‚?J±!?øG?lt?å ê?Ø€Î?ÁÞŽ?tŒj>¤×?n‘ü?ʆ;@•g@hú?ßµ“?Sò?†2e?“ð}?ŒÖ$?€æ>?€Þ8?€Ù3?¢ÏÒ?Á+ü?y°:?¸î?pýg?£^æ?àDg@ +[a@‘0@)ð}@\O@ÒÀ?æs?³÷â?êõ™@_ë?ØP?‡xÛ?¢Ñ¶?ÃU¤@ {Ç@/çd?ïÅã?p ?ñ‡@.]ÿ?õH¤?í’?µö-?èÏû?ѺÛ?»?„@lA@V8€@$2×?¿X?Ô ?ñz©?ø?ÿ"Ñ?Ъ>?ˆÌC?™àÑ?·Æô?¤Í—?–àt?½Ø?ñVµ?ÿ×@ߊ@ ·Ò?æ5 ?Áó™?u7?Çìá@;CÀ@ˆ ?§l?ÄI·@ "ñ@…7?Ê>?¾v?‘©»?’¼Ã?½ú°?Çp@Ã@ï]@j@2P??&?OéÐ?”N´?˜-D?½jÙ?½[c?ç˜?‡së?éÃk?çcw@Ae@&Ù>è¤>p(?Ï ?ôWÄ@°Ú@8@,f¬@,nI@ Æ’@˜¸?ÿðq?ûU?öƒc?ìGÓ@*›N@KŒÚ@#?á©A?ÍÓ’?Á´÷?³­?¡ÿò?Ã{v?숟?•*Ã<‚ãc>Ç‹G?‡µ?¡ÅG?Ës?Ü÷@æ²@üv?ùCo?äÍ!?<ðŒ?D:±?¥çý?š%³?Ñ}1?×±ƒ?;G?$ÑL?c<¿?p²v?²?Á-?\Ïö?BÞ@‚@"á³@¢@ZU?áBÎ?YÕ?Í¿Š@@0ƒ@blm@Vg­@Bô +@`É?vžF?bÇ?ô†>èow> I¯>½#?éŸu?ã}?GDr?T§C?Ì›U?ÕR¿?íìú?êÃÉ?ÒÑR?Ê_G?¾D?Æ-=?ÝM%?ë¹?òÐW?ûíÝ?ÇåŽ?tGç?>З>µ +£? +H‡?‰gÝ?zïÒ?:ñj?1=C?‘Â?Ž(?Ð{”?ØPÙ?ƒýa?rÜ +?Ú?ð+’?ïÅ(?ògW@×›@„’?Øû#?IL?ª]Í?Òæ+?Êo¸?§¬#?¯˜Ã?ýeÇ@Äq@#|a@*×·?ç>è3@á@*¸Ð?é’?ÅB¿?àVC?ïïç?Ñ?¼Û ?Á…ù?³›?¡Â?AÃa?9+?…o¨?tw¨?n½D?n¤°@m@¼›?!–?n! ?ÖÏ@™o?ÇO?xÍ?8ù©>¤} >î6J?±ÝQ?®Jè?lî?lʽ?Ç®“?Ã7l?ź?Àš|?¸]?°!?­#ô?°Ú?”ö?(8^?/G>?‚²›?uUö?çÍp?ã‚Ø?Àµ«?¿Î5?‹l¨?jt|?j-?wBä?Œ ?øƒ?ª?;?ÁMx?¼?é?Üöµ@4f!@4›?ËÀ§?_?0L?iÛ?”i ?Åéü?ÓÛ@"Žë@&â8@+;@,Zÿ?Àa‚?¤2?•ŠE?ˆu>?b ?\LM?¹`Ö@'W@*ºû?Ú¹?ß.P?é@@!@ïß?¬”å?¡Ù@?eíJ?eÜ@¢z@#bè?Ð ?®¹š?³eC?¸t?ût‘@+÷D@ßx?å,n?ãÔ¦?Š§º?”I@œé@'•ƒ@~W¼@“<:@o7±@3ÊÈ@!>Ë?«}ø?ª«±?°=?‹ E?Ñc®?ÈêÇ@ ú­@(Ot?ÿoi?‘S?¹O@=†¾@Eô?¡Zb?—í?—FÍ?Š”‡?ná/?ogp?Þÿµ@+…á@`¾?¸’?µLÊ@Tvv@duÉ@%|P@î£@)üÒ@+Fó@5ë1@BÐs@#¨?¬-?µë™@ +®@>×@dÏ@_"Õ?ÌV½?fb'?ìž‹@&e?â1í>æú\>û³.?+?#Á¬@ è³@äz?íü¥?âV@1è@K£°@,ó@1³?ã^?žtö?¥l¬?’\ê?\aù>Ó’D>²Q?°ƒz?°¾+@q€@,Ô¯?­^?lôè?u-Í?mðµ?—ôÅ?²Ñ,?—çD?o77?Ò°˜@=1³@*~?[}?Gx?î)ð?펌@ +=¤@X?6|ïüÊ7>€c'>·Rº?;û·?KO%?ZÌ(?h½?rf÷?nwŒ?:?ÀK?©‘?3v?“[?L{Ú><ýKŽ=›§L>( ?hÿ?‡h?d‘?cŒ?û³>À'>2„>£êå>ªàõ>ˆøÿ>MVë;é¹Ü=ÌA? vÚ>’¿Æ>Ë~?ä¸?Š?U[Î>¢‹?DÔƒ@&>¯Ó=¿Ïò>µ9‚>Çœ>À§?'‰ +=ý^_?ˆ¨?.òÿ>‹«I>æF¨?bù2?ˆô?¨ò?›?oV?o½(>ëûå>Ô >‚*Ô>\~%>Õ6z>ñl·?Q?×é>øo(>ò{¡>ò² +>îkì?‹”ƒ?ät?´”¤?a”ï?>zØ>ôa5?' I?• ?†Æà?è€? +ë¿>K4Í>…?›h?™?vÔ?v‰i?an®?nn†>Ö¢d>œ>©Ã>>¿èÐ>ìBÀ>÷ÐI?ºü?òTf?ƒ +ú?E>I•>>à>àþJ>Œ ¢>!…*=Ó[>ƒH?!~‡?«>Ÿë™>Ëôœ?”o?ïV?<¹i?Xkš?Šƒ?`:ò>úžk? .ÿ?SÌÿ?xWŸ?Ü6]?Ööœ?ˆÐX?zBˆ=äU‘>…ê®@rgî@ue ?¼h?¹f??]?(ƒâ?#Æ?*ý>EÁ=ö–q?S@?%<þ?)jR?-šÊ?†Ï? á²>üf$>üˆŽ>îÄî>×—??W.f?|Ä7?ú‰r@N ?µr?|øf>äª>&4>0Ùü>Þ =Ÿ¿}=Dâ?Ý´?€°Z?v9_?dÌ?’0ò?©‚ü?i?Ìþ?q?˜ÿU?=0Ñ>¶"?.1Ô?}æß?C Ñ>ýúé?Üÿ?E£±?v:+?—%»?Œ/Û?~>·?+IO=ü‹?â?§ˆ?²4„?¾ÜÍ?ΩG?ô„?ÀTÓ>úùÒ?CŽP?º™?–ø>þÒ¹?qáE@ B¹?ø²à?­¸]?—IV?*ä…?OÂé?—κ?æ?›Ä?¥k²?Ã÷×?½3ú?Œz ?…Ü“?nä?'gÜ?új§?õìu?¥}Ä?–l”=Ù3=úÑ?­?(ËÌ?¿4¸?´cÊ?L?Ìñ?À?¸s½?G¿Ç?T0H?`ª#?hþ?J[{?h@Á?§÷V?¢"n?f?÷0??JÈ’>Ää?\ëœ?V;§>§’‡>¥V.?L‹`?Jî¢?ƒÒ×?{[B>ì2f>é†?š‹è?•Ä¤?+½? z=3 æ?5W¿?)í?X’?"©g@?u@x;S$°>2½È?¾_{?µ¹,?sz?bvŽ?–ü?h¬ƒ@b°@IöÎ?Æ??ÐJ:@â +@·à?eÔƒ?}Uà?€&Í?…U)?¹²?œ²î?î ?md>ëÃ6?u‚@+È,@ ?Ò˜?/Hf?uÄø?0ûþ<Æþ>ýÿK?ÃRÉ?–±&?B ? æR?)*ñ?–^}?öÔ=?Æ Ê?‚eæ?¼Ù@Ç|?ÈÃD?<ž?ˆÙ?|€[?‚¬˜?tý?9 ?Ha?ƒ×I?­£?¡1Â?”ß ?»@?ÛXç@ L»@‚?Ÿ–¸?³¨?šoM?Á!m?•mµ?…Ûþ?‡õ1?Š,?“w?™–‘>õØ>¹éÇ?‘I?3¨>á›”>¦Á-?Äf?Î Ã?Éù€?ÅÔ§<¸¶k<£É­?©¤a?®«–?Û¹*?Ð*®?`íÿ?y?Ì?ÄÞ\?ì•å@g^ó@F¶ƒ?µ]?_wç@Lµ?â &?|h¯?’¨?Ë×U?ÍñÍ?Ѐ?àüK?÷«–?÷C:?ÿMS?Ê6?ƒt9?ª÷ ?ÏYÿ?»4P?¦÷¨?TÔß?‚a?‹y?¶(Á?‡4?Wî??¨|`?ÅS›?*žK>—Ô">ß_é>Ê,w@ Wj@${Ç?R{?…@Ì?‚)?}Õï?y™b?u]À?¸¿|?·Ø?J K?COâ?`%º?zÓØ@ÒŽ?é€?Œ[y?¢ùû?ã}‚?Þ6ü?¨=?Âù@¢ö?ì+Ä?°Çƒ?Æ +‰?æ;¥?©J«?Ô…?p|?µÑ¥?†ð?€÷?Æ®N@Öb?عr?´ëþ?oyö?*ʃ?¸dù?êò|?üÔÎ@“?¥äž?† ™?…²ð?ƒŒ­>Æþí>{Jw?¬&¯?Ëç?¬Šä?™ø”?P)?|ü?¿ßW?Å/„?’x?Žîè?rR?„¹‘?úÎÜ@ÒË@AÑf@/wÕ?†…‹?‰Ö?’n6?£•à?ÐðH?½©ç?ƒQ&?u}P?V=™?™¿ ?ãŠ?Ò¿Ý?ÄÚÑ?à ±@4b?­Å?.3?œû@áò?«ÿà?'š•?HðQ?j¡ö?qhÏ?`-?™O?ºäi@ 5è@"£Ñ?¿ƒª?‚ói?Ò5†?곘?ÛEG?Ï‹c?ž(²?”ê°?—(“?™h?}¼¾?e‹±?@vì?B ?üš@ MÖ>´­©>Dx^?Ñ^?Ý?ó?)rZ?!w]?P»[?a©ÿ?þí?ÏdÍ@9ÿö@6v?Ä›§?¿)=?ˆ?‘S3?¹Ï?œ†ã>p,‡>®îf?)Š?6öÀ?S°±?0oó>>‚?C¦?ÇÆþ?ÊÉ2?·MÕ?å}@-nª@ Â?^ì?Æo£@ë;@DÏ@žÃ@ü„?¿Ã#?~??“Ä@(?ÀW)?0»¤?¿u˜@!ô$?ÿM?¬RÚ?›.±?sÝ?@m1>øŸW?:÷=?eñe?^Í>?`°D?«†?ç¹W?Ú­?ÏÅà?ô@ +5ž?ÿÏ?õ¤]?ýšæ?ÿ¾²?úΆ?õÒ¤?µ@ë?€ßy?œ"~?±;ë?êh>@ ð™?¶j?MYk?ÍÈÜ@Fø?ñØ•?؉Å?æ•…?éç7?ÉE¤?®¨Ë?Ž/?fÿ ?F?eµ?Ϻ„@ TI@îö?ý¤@(q@F?þ9—?åæÒ?ñW @?Ô˜è?¨d±?ºÙ¥?Ö#£?Îdi?ÃÒ?Ðñ?Ø;¤?Áu?¬8{?½xº?ÍbK?ؤz?íÏG@ mš@Uz@:@üI@(Œ?·Y+?äÖú@Ò@(4ì@Bâ£@7˜;@&ÃÃ?þØs?C[ð?Í}@K²?ò£’?}ÖÓ?™NL?ájÍ?àÄš?ñ‡f?ýù•@¼2@óÓ?Á‚Ä?´ûQ?ˆYt?£ +b@Õì@ r>üÎè>õ¶Ï>®Àñ>ÕÀ‚?™Ì©?œ«?u˜­?jl?ïf?û˜y?ÁCø?¼üb?ƒÛ?{ÕZ?šIÙ?“ú?´ +k?ÀõL@A@! I?˜“?Q¦?Óa?û ì@-dT@Að@Fˆh@KçÅ@  —?»íÙ?Žü?HÕÂ?y–k?‹¥³?qÌß?l‹?t܉?ys?¤t‰?îÝ?î]3?ù¾@rA@HzÝ@6ò.?ù81?ñq?¼É³?Çk@5dÄ@/eÄ?·¹?­yÃ?ŸÞu?¦4É?y6?…ç@$+ü@6/l?=†ÿ?Ë)Q@ >|?ÉíQ?§sp?ˆy³?láè?w*ñ?w!Ó?ï‹­@97$@+^?èîË?ÉÉW?‚Ø?Ùy_@s®Û@W¦f?Þ“#?àÒ@+ã®@%iò?‘Â1?ŠõË?×¢é?ØÒ@@ ¸˜?ý ø?õ´?s &>ä?WT?‡íç?ß÷,@·´@r?â?¡T)>ôF?'–¦?í£?§B‚?ôf@?ï¿þ?ý˽?ò¿ò?Š@«?†×?‹cõ?…-œ?Ûï?òÞ?ò{ž?ò^+?Æø~?¶½æ@ @-ßR@ Ä€?Ó»2?Ú?ñs?áË„?—íý?:?Ps?^âC?² ?¯c)?–Ý? _G?±¤‰?´#–?’š¥?‡Vh?„\Y?dÅ*?‡ ô?³”I?»a ?×|{?å2r@ ð@U&?n³Y?n—ã>üþz?¯Ù?^ž?n?á~Ž@Zî@·@Zî?Ô#Ð?Š£?˜¯?§å?«Pá?lá?lÁÁ?ãÎô?ì„›?ìc_?ìGñ?ì ¬?ëÿk?ñXÒ?ís&?Ñç£?°§?Áç1@ °@Ø?z×|?…¬b?4Æþ?7-‚?)S3?&ß?nun?†t:?‰'x?–—–?­s@ Ív@ é?è¬Y?é[g?pF7?…?/‹>¨Ä?'‡²?kj÷?Ÿ ´?æàù@Põ@[e?úe†?äò?ë:F@4¡Ý@5¶>?ŽÈG>éú>Ê‚û>kŠ¼>÷Ö¢?‡ñ”?‰F?­&·?­<@ Iâ@\@!K@3@!Æö@6·@îX?Èö{?¹<2?†ý?R²?¿•r?¶44@1¤|@AÒE?Ý´p?Z%?œ®?Ì¥Z?åÒ?þTz?ö¯‹?0Éo?e;?y¶?nÂj?ËÐ@ r|@" ó@+„@Õ?æýK?Û,r?i@n?KO @<ô@_µr@u=Ž@zÖ¹@O>Q@ò@"Ï@`yj@Sé@*Uš@a@bÜ@ßÿ?³ ô?d—\?ýM@Wò.@E€Œ@O»@ y@!(°@’¾?½èƒ?«Ä@iá@Gnä@;·@2€Ž@Ø?ͦ?·ü@ +t•@Ëí@”x@ªlˆ@s•Ï@?ß_@ Ø„?ÚS??Î ?—«¨?ˆþ}?‡ A?…°?Ö¤H?âU ?¶Œ2?µ¼a?ÚŒÀ?ûiÕ@Â@ü¯?ÛÜG?„D +?Ô²@_§ @M5b?\e‹?PZ?CÈ?[¹e?ßWy?ìEa?§3Ù?ˆ(,?ÈpV?él?o?2¨Ç?7LQ?.îm?ŽÒM?ñâÚ?Þ7?}Ⱥ?†ƒØ?ºvÿ?È1d?ò¸¸?ëÏ÷?”K`?ƒÆn?ÇPÔ?ÀìÅ?³Ìÿ?µ³š?z#z?w’Ž?‰=(?y¿?öJ?5D">¬å0=Áµ>ïý>üº?7'V?™‘>1 +>¡Ô_?2ö>î,‘=e]¿>¸¬Ê?áÄÑ?ªÊ…?¥¡>ß)ä>ª?ýÜ?jFp?§U«?´yï>Ì’'?$Úi?V3?0Õ’?2.?š¢>·, =ºg¼>e¸Z>•ûE>¹|#rEã>Ô=K>Šï­>”¹4?Þ?]¸!=vp§;w€P@U¹ó@3CG?¯Ô>u“?=q£?t7Á?'r> R`?‹ýñ? n;>LAW>Á¯>ó'þ?Û¯?ϯ?ovÑ?xv?´0?´Dª?t ?põp?žA>ñ‚„?W’}?r å?ï>òŽÆ>?v)<p=«2â>?S >Áñ„? òs? :v>ôlA>â°,>ØD”?>i^?É 3?°Ô? .r? zW?s´æ?zBÛ??®R?D,I?™ ?¡?!×ô?1ß*>Ö?J>Ÿ´Ù?ÔA? ÿ/?”²‰?¯›P?¸"/?ºGÐ?O >ï#¡?@1Y?kõl>Ç5g>Qï¸>¾´ï>zü(>/j>ª>ùÈ›>ãÇ>Ø 7?%ϧ?z5þ?‰5?°LŒ?Þ +>|>ÒPŸ?#°e?:õ?Œ„?Òs?±YT?¯Ú)?’-¯?Šb…?{b?‚Úv?¼§(?¶i->û«j?h?i÷?dõ‘?F³ò?=œZ?Âùi?ÀæP?”ò?j¬?}9?|ZQ?ù>ü{ú?7 Î?Fõ?tO>?|³-?Žû?ø2?j€ß?` ?d6é?hfw?©•[?½ÔŸ?Œˆž?u?ü{+@=à@" ?ñµ?­­ˆ?‰?¹oà?ÒÄ?e×>ß»ö>ÏZ£>¢’¬?+ ú?}×a?`yÄ??·n?Y´?oý8?b¯£?lt+?gÖP?V9ö?R][?>‡¼?wí>þYÖ?c\ð½½> H +;Ö¯S>¸Á‡?„JÁ?^é³>þÆÖ?:þ?§$÷?²Åœ?¿4?Ûh>,Co>¦9¯?Mx?…ÖY?ÄÍ?°M·?H?c>ÿ_K?Þz?”o[?“…¥?hq2?Pz?oy?t&>ÿ³ñ?3ß?ë›u?âS…?~ó?€Ïy?y b?hø^?S‚?I/ø?Ýâ?ƾ? >ùÐ:>°UÆ>ð,ú?èG4?Ù–ò?8Öã?7?½D? +H?Uâ?ýR? Ñ? Â?3†a?AU‘?“?–jL?T¸ ?]õ?eV8?g¬Æ?£s?í +?{Å?t}F?‘æª?™ýO?­xJ?¦S&?e¯$?nÂÕ?ݤ?Ïú_?î‘?Ñ?5Ó=?G›?Á]?º¦±?FƒM?O³K?ŽI–?•§î?¬\O?›=ß> ³8>|„?Áì÷?¶H?½?·?aW>åTƒ;òçò>G€?Â9¶?¹JË?‰/?o¶¿?”Ÿ?V/Ó@)}Ü@+3Š@ Î@ÝÎ?¡Ê?˜? …?=tò?Âßn?¸Ø¬?’µ1?’3I?bt‰?‰zê?Öõ¸?ÅÆp?£Jz?œ7T?‚ƒ?Zâó?o?r? õ>¯G<χx>Ô5?zl?¿Ã¿@/¸?ÌÏ^?SJq?CúÒ?%­w?6Ìc?Yùl?9®D?vï?~ã?ƒ÷?¼¥ú@?Ð ê?†Qd?ºè?‚¢±?ªÿŒ?Äx?_.?·”?¬Ž­?æµø?ÄÊš?·ù:?J%}?¼­> #=&+Œ@J+@6Öï?«ËÙ?‚ï9?Tû>Éf>ËC–>ç:»?»po?¿Ã¾?B7?”i0@¹@‚>ýih>øÌp?ƒ'@?‰rC?×µ?ǽ>¹ÐÅ?µò?¦èŠ?£žl?ƒD}?ƒGþ?ƒIà?j¦6?Õà?zTø@,h?ÿÁ@.2?Ô?ô§?†÷?[þž?­ëº?óãŸ?¦¾?1Í?@Ô'?[?kõE?|Îï?ú >F?둲@*?ÀÖ ?„É?ìÆø@8Ý?±t6?ž()@×@3±5@J‚@E!>¸åk<Ÿ»?rö(?ƒ–ª> Ū>«Ê?Å+?ÉØo@.@Ý8?àðÒ…Ñ>Õow=£² ?èC?¡ëk@9÷|@E>D?€¢?ZJ?êØ?èí‰@æ[?íy‰?nÎ?f?’é?–Ô?žP?À>œ?ÇÐÒ?ͪ?¥ "?9W?Aå?&:Ì?¡_5?­øU@'do@/P/?žþ½?…|?€ê?x©)?*r?¢?Ä–å?¿G?¦¨Û?Û>¡V«>´”~?Õhj?ʼn?XL>ö½f<®º“>Í•‚@ßN@rC?*`|?` ß?ÉÝx?ì1Ô@@Ít@-×>¿âÙ?5ç?‰Û'?wÊp?Auð?2@%@-o@zL?Õä> ®? ?©J?ªgÏ?ª¾C?œ¹z?}@?Nˆ ?·­?‘Ñ@¨€?öÞ’?àÒD@&kƒ@j³&@0{?ØÏà?ÓîÏ?Ï?¿ÎÂ?©œ?À×?å£?áãD?Úx@mÕ@!…@ Ø?å°D@oK@8C8?à˜Â?-p…?Tn¢?‚Å{?ë6B@HÐ?Ôí?€Þ|?ˆn¬?:?Ám„?ê›?ÇÔ?§H?ý?Z@ ÉJ?Ñq`?c™|?^àÃ?uZ??jPþ?\]Y?^ ¦?O;Ñ?‹6?°v$?ÿU&@æ*?ùê ?ÂÑÄ@r¼@O¡?Ãgž?Mh©?‡ü›?¤.¤?Ë]?èã?þö@¶½?âB/?¼@‚@$óT?Ú˜R?XYu?›^ß?Ô²ó?ÊOj?«¤ì?æ‹Œ@U‰?Òµ§?*—?•äO?÷/È?üðu@¶7?äòI?­…Ù?âç@äÈ@b.?çÙ? Zž?8‘(?:mž?OMî?Î6?öHŽ?å„@?™ºº?™¤Y?}fâ?º­#@[ƒ@DáN?¹ Í?Á‹@¯c?þI³?r­?’vÓ?%¥i?=\?|? +¯?ù#L?óM?¯)l?¨–‹?Þâ8?ÛåÂ?¢?‡@;ËY@RºÒ?ã p?¼¡5?P/R?=˜#?—y?  ü?áeœ?û +@0Ó@I\@ È@ ”C?ÔŠ?¢ö÷?™þÊ?•ý`@ + Ú@G´÷?ÿM’?“?8¤Ê?x]Ë?•J?À¿¹?¢AÎ?ByÂ?mªÏ?©ì?Ǥ¢?ù4??þ’C@ @ 9l@&2@)‹o?èü¢?õ‚ú?5:/?$$?qÁÂ?x?Ø@Dh@W´ä?Ù¼?ž¦¸?ß]7?÷®Ç?À^]?£ªü?…×?€–x?¬.ù?Ì @ÿû@$ô3@ r?Æ´/?Ìó?ÕÚ?¶iì?|F§?ˆŽ®?‡F™?ŠH?z×¹?˜ ú@0 ¹@);?øH?õu§@»Q@Ží?ÛŠˆ?Ðîx@.|@n¨@Ì€@¡(?© Ó? Tú?Éœ?ô8ó?Òe‚?–[f?¬«U?êÄu?ê"g@ô+@ »N@¥š@w?Öî­?ϯü@:?ýâ—?Àûe?·Cû?â]P?òXJ?§˜;?rÿ@úÑ@Ly@9u¾@á +@ G@a4@)Ì?ñ6 ?ßY†>;:C=ÃPW?°ò?´x>•}>'¼S?Y[?@#g?}>ïâÔ?5+³?|ƒ?ŽOš? ~q?Ÿ†+?ŽNÑ?xðŒ>îì¤>þÃ?çwT?ß‘v?\2ó?1!?ª¢Ð?¿Ó½?î1@@(?éƒa?ÖØb?žn2>Hä>o£?½Ý? ª]?®Ã"?ª¥?Ž2r?”0Í@@,ò@ÎÂ@Ç*@•è@0Êœ@‡G?»ìëAD>ös•>ý„R?r?Œ­ÿ?±™?ðwñ@€A?Ì?¸÷>?Á[Ñ?ÉÃï?Èï8?¯B@?ª¥?l}B?{² ?š„ý?”dÍ?º ?µÆ5?Ó¥?ßÒ·?¥x’?ƒ?¥¬?BH/?òÚ?Á†ø@kì@*ó@å’?ýJ.?Öö?Ì?•· ?N[? a?ÁRŒ?£˜¡?ƒ´i?¹ÿÓ@yZ?é??šÍ_?ŸO°?‚?Ë?nZ%?§Ä¬?®.Ì?ììê?ùÂ?Ê­ ?®Û?Ÿå?“¨?“lÒ?nŠÉ?ˆØ?§{C?ŸF>ëLø>ë?ðþ@›?ÛÖ?Þ?ë‚ì?í¢ã?Úì­?½r‹?rº>ï%ò?(?(_f?{'?¾—W?Á­7?ë +?à¥)?Éçc?Ð÷À?ظ?àK?ôÀ?ôf>û‡a? ÕV? ä? Òv?`(¥?~ÏÊ>ÇËP>yŽ‚?Ölb?ö ?žÖ>ü·?zq?} R>ño>Ähg?>)’?9q^?¿ºæ?šu >Ï`(?—ð>czÁ>Ê?5Ú>`‰=½?„?aUˆ?È>ø¼?( ¬?<Â?‡,Û?i,Å<Œšy>4±µ>ßî>•c¶=Ò†U6@`=D$>$žÃ?:øX?Gí6?B4M?GÓó?P>Ãê?•ùù?öà,@1Ù‰>ô­²=û¥š>mî??%%‚>Ç¡>¶#ü>¥S”>‚ñö>´O>çù¥>äÆq? +]?7j?D¯9?]Ýî?´Í?±Ê?U,?YN>Ùm >Ñ&?q¢\?AÑ?XÐ>òœ +?³Ê?ç®a?ž,?XK§?Y h?^kU?Z¦¿?Váù?gð`?~e?qP ?»Ÿ?yîc?0}#?7I?8A4?4c?0‚!?4½¸?¹ð?¸»k>,!å>ª²?­®þ?¹œ|?œèE?ŸÁ;?®>åb-?›Õ?¹’p>Í<¸”H?z[?³¬?b¨>“oy>ùJ•>Ô\">¬³;>Îé->ù»†?+çD?R„?w•Ž?œ‘?Œ.?W¶˜?#`>·*P? +?z§”?€H…?èg?@Z?e®¯?˜§Ô@£@i.?vZ°?hj¯?6$?$§_?±º?®¡?³/ô?®]Z?{×Ñ?~¶?ιü€f?¢:?«p†?–*¼?˜¢?óÈ>üÓ¼?&4Õ?'Vã?žiþ?·©~>Ý›™=>`?å¦ò@@/?”Cø?$r?dHg?}eð?щ‚?ý|O?;5>šOJ>ýª–?²)?4µ8?ƒ¯û?ŸOý?ž{Û?¢,¥?8»r>A:ð>«.½>þ‰?VÀ´?žÔr?vË?±Î?aep?§Í?K¶C<á¨>TçÊ>ûoÿ>ýƒÅ?öö?˜ f@ =Ï@¾;?äŠr?Ä6?®Ñ?cÚ—>©`n>¡%>˜åˆ? Û?˜Ê¼?¹t?C=G?4ÌO>ÿJ >ÿRœ>ÿ_ò?=Ñ?Êžd?¾â¢?ŒO?iXÝ?‹ñ>ézë='õ>°?ËÎ>×Ç´=MéÀ>çþ?±J>?¨Äú?—Ê?•R™?`í0?\Õ“?X¼U?Yy¥?‡ÍÖ?~ì’>`Wå>Çñ>ÿ£]>àB'>^²@>˜?‘ ÷?ˆ#]>ÂX> Gè=÷“Å=Ö¢=µ¡±=”š:=g+=Ä™z?7`>õ´B<¦)?=Æß? ‘w?&Ž¤?Á$?»N?€Î9?ˆ[6?Óz?ËjÈ?UÝU?QÇ™?M­Q?Dˆ?5‚‰?CŒ +?=SÜ?2„‹?Æ?(Êr?ìk÷?Ùd?3„?¹~?´í å>õm:>ýº¢>ØYA=™…=ìÅþ=ê]ø>Z´Ï?q?%Â? Ë=?¼ª@ ‡@ݺ?ä¸~?Ïï>?¦™ƒ?’ãß?B$!?2¬ì>äÓã?«Ä?‘ä(?°0Ð?ï0?¹Ûb?þ´?6ÀX?Žê?j[Ò?ý9?6 §?|£j?˜ïP?ÀÂc?¤B¨?‚9N?e/ ?J •?1¶0?P9?1Ým?b.¶?xn?ƒVï?;˜”?rw?xp?{ø?Š5?ÈÖ–@ ©ß@#6â?¼Ž=?W j?Á g?éÜÅ?Ǧ? IE??ß‹?Bš™?xÁ>ë•?W4r?|HZ?òj?|Ûƒ?Â+i?×oå??_å?ý€?ýæÃ@Ib?›µ}?‹Úx?ÔP°?Û”[?Y†D?Wt3@HZ@?Çw?ƒÝ?€‘Q?N{?^çI?šß’?‚Y>-…›?_b?iÃð?™U?“6”?ŠCò?ª|­@{w@ Eæ@#Aç@Æ©?G?Œ¹^?ƒ]›?M ×?a€?2êe?rÌ(??KÃ?kÙ?B `?hjæ?®â?Ï1Ü?…<?5ôI?ñ¥—@$ÔO?É"Í?ƒ`þ@•¯@BÌè?¶Wé?W=‘?ft?tžï?ã/?‹Ø?ð¯@Ž¥@ ' @¦©@–¹@ £ ?ÏÛ?‘¼?¯ +)?¹=ã?ØL?Ýe@?ó`Þ@_@Þ¥@ pª?Êê’?§;[?4$?Q(ú?÷?–(Š?¯íY?½;?Ó£-?º ‹?|B?¹¸D?íZc?•í ?”[?Kô¿?„Æ?‰fe?Œï +?»ÉÔ?×Nú?Ì„?ÅS,?¹ý?³¯Æ?¢Fg?™c‹>ø‘±>íß? +Œ? ’¨?wT”?‡¡Ë?ØN ?븂?ÇÃ=?ŘG@]Î@¹_@Fæ§@? +¨?\ÐD?I"ƒ?,2·?yG?6€?lªÛ@xÛ@ ¬­?«ÉØ?¸éà?¹Ð ?À/+?Ôu?®ê"?Sæ?mŠ?ÄÓÅ?¢Áý?\Ó\?ž/Ë?ç´?ù%2?ü‰3?ÕM?²Í?È>?à+Q?ÛÜ?Ó‡?ë G?û÷é?”i³?/‚ï?lb„?ƒú§?²¢ï?Ä\º?ÄU(?ÄQP?;–?‚Ø-?l¥X?böÞ?S?Z*º?뱋@R?‡s(?~`1?ßC?áÐ0?vc?gŸ¸@”¿@EÔ@‹H@'j?щu?ÕK@³­@á.?ºze?¿Ëå?ˆµ?´_$?‘iu?’v?q; ?žqü@¡@¿n?ô%?ìo?¥´d?±¾?çÛW?Òsk?¢S?šº?–Ó–?Ø?˜ƒ?bó >¼¨>Ü?×8>ýü>Çh~>îP?% ž?±wŠ@@÷@£?Ñkë?—߀?¶‰ª?áIO?áæt?Öþ[?±Bq?“$?ës2@!´@(ÃÅ@*Ná@ª/?Ѥ\?í:Å@8?Ým(?¬íL?Å$?å+É@èÃ@:u'@ +ÿË?Áin?:r;>[xˆ?rä?¶ÍÒ?´Bµ?±ºÕ?Ô0]?ìø7?êi—?çÖY?ñ;¾?ýôq@ÅÃ@Š ?v€è><ÍŸ>èˆË?%iÛ?µüÓ@^Ù?žS£?!;M?²þx@=–?”5°? aŽ?ÒþE@ "U@¬E?Ú†?õû@(}?Ós?®@j{@-ùS@Œ›?ÿ–@ Ó@!Ã?ÒR4?'?!¦‰?D·?ßí¤@H©¬@4Úé@Û¨@+¼Ä@:C¡@d?þ£m@ÒÍ@2!}@ +Dí?šp ?¬Ä?ÖDƒ?¿RÆ?–¾ ?‰¡Ò?DÑ?Q›¤?\kÜ?QMµ?F!+?‚I=Ä>µˆ_?™Tz?˜÷Ô?¾ Ô?¸ î?ƒ7O?Î.?ÈV?ÏHì?ìÈj?߇ë?|€?…îC?é|Ý?à4¹?ám†?é÷'?Ë͉?Ñqð@6³÷@4¹³?¼N?³&Ë?›wH?*V@*@9~Ó? Pä=~Š˜?•ƒš?¼^K?êØ[?ûr@)d&@<l?üoØ?¼?Ù “?àýë?˜Ôb?Hµq?w?Æó0?ÆŠ?»‚®?…é{>úd3?1‚?‚VØ?ļÖ@ü–@¯Ë@$¨U@Uu?†gè?”v{?·Nê?ÂrÀ?º?³K‹>ø§Ž>ú?ÔHp?Îí?†àµ?/r@ÍC@ÊØ?¤OÃ?…ë?·.ï?Éaf?¿-®?¹™É?¢æÜ?˜:S?¿Å?äÚÞ?æU?âÐ`?ß;ô?Û¼#@)@Mm´@A k@Í@ –L?²Lð?Îò2@Hvw@7ìm?Ýe?î:1?ÓÄt?Õæw?ûãë@’ï?¨?¬?ŒNR?âÚv?ÿ³Ù?ÝN¨?Ãs»?ýÆ>@iÉ?îõ?ÀÄ¡?™î?ð ??šk?è9?–Q?`Ü?oêÊ?ŠC>?Ÿ³q?äEÕ?Îñô>ûa>õ:(?*?‡PR?rá¦?nG…?³õ ?Ê4 @ ‘e@"“>@É?³$¸?›/_?Žžw?“Ï0?¹µ²?·*‘?éS8?å*m?Ö e?ÍC+?˜¾?¥òG?ÃÛ´?Ú3?ùÀ©@ +ôø@wy?àÒ7?Ħ>ýúŸ>àÙ=)‡X=—|H?Ƶ‚?ØÈå?ÇM?×ø'@±@Ì?ÄL…?„KX?Ž«ß?¶«?±ªe?­ã‘?©?¦±?‚‚?À“-?ÛèÈ@óË@0µ8@*V@?@_Í?h)˜?uJõ?èw‚?áS©@%ü9@-¶0@ !æ@ýÖ?®ðh?/Ãà?‡“ª?èÊs?ó: ?æÍå?æ¶R?®¤L?³tÒ?ÕÄú?Ùå@È«@![P?è¥?‰#š?…o?²Jë?¿nµ?1%Ä? `?•I2?¡B…?ÀÓ?ç¬i@A"@Sš@ ÷?e—?pŽÆ@ Ì?ñNå@"~A@+·ö@;Íá@CI?þªÁ?½±p@4@+w@ý!?Ëa?Í—¼@.ƒÅ@&¦?™nß?nõè@ª7@ j£@Ú³@R)@U’@òÐ@k@)@¤@ýy@Æ?ʶ?¬½Ç?×…»?ëOi?ÑYb?Êzã?Ñ,Ï?§´¹?›˜­?ç£?çrØ?³µØ?®/?¨Â?¶8?¥ãL?–I$?‡©?Aä?_ñ–?±å÷?µC¤?àÁ?Öô>ëCO>ë•–?ÎV°?ð+I?€ù¸?Tò3?ì–@ò¤?Î{¶?š¯Ô?ƒbI?1û>ð#H>hX?3‚„@GH@Ê™?‰à?“ßø?Ž»¯?˜—ì?¶Àƒ?·¬e?Ϋó?âK?sÂ?iìá?\¨†?ON2?Aà?4[=?&5 ?Aúû?Qú?Ðè@(H#@Û?¬?£1‰?¸v?¨Âë?–¸o?§•w?œ(?_zR=¢Ê5>Œ¢T?LC?±_?œB·?€/$?†¦?U{?_´?#} ?—? ?ˆ+?}y“? +^ >¶_ø=ñÊ=¢©Ú> à> Öµ?µ=›?´~I?[m>ˆAÆ?u›q?¹®‘? Ð >“Í«=x!L;|ê€?ÙÁs@·ö@*wâ?X%>y=¹>Ä/ß>ÝœI<‰çl<_ˆ@?M]?W‰¹?6&J?1í¼?6–Ì?0Õ?,?†>ﯟ? Ç?’û½?}>ðÙ2>ò6¸>\V>(óÉ?ÈðM?å{?;g°>òÁ|>0a=îOˆ?uéé?¯ Ø?)7ç>9äÀ>Y—Z>yVŒ? »D?Ž{?Šy?ˆ×ù?tA‚?>‡¢?(ë,>ü©?Ó?v^Ø?‚Œ?¹m?µuÑ?CÅí?:òÌ?œ0?¡gÇ>yÉ=¢Ï=ºŠu=ƒ3Ÿ?R¦Ç?xbn?sȳ?jò¾?{ŽY?ƒÜ±> * ? ?Z r?èé>ù|Ë>› I>=Åõ?_›]?»l°?«3§?œð?®#?Åc?¾ýH?ªLÕ?Žr¬ýD>²ÙÑ>úñ‹?”¿?b·?N$F>òv­?³ñ?x%?…œN?¼¥¿?´Ç©?‡¬>?Ž„"?®æ'?­äD?¼ðk?µö€>£a>¼*?§øú?°f ?zyP?€ï>™¥¬>’SU?©lé?¹@ú?=*¿?"ýÊ>Èȯ>ÃÖì?”µA?©d?†—?|ôõ?®M?»ß.?‰?…|?#‡>ý@!? +Üå?t‰?oÄ?›Áy?“ ø?†3?bh?P ð?—¯œ?¬û¾?ÊF ?Þ½A?’XÞ?ED ?æÇ>ýó­>ýûò>þ +‘?nC?ú6?Má(?~5§? +Q=w7>…_;>þ]w>Ž ;Ç3ô?ñ» @…¹3@)È÷?F3Ò?‘|I?Ìö?¯°•?~Íí?pÈÝ?TaE?3`ž>þø•?JC"?¦{?‹&e?;Ôº?["?Û?r{0?+v¾?ð>ÿk?< +¶?¨¾?“˜I?YfÝ?Imç>ÿ­ ?wÌ@Ú„@äU>óÌ>ùSú??z«5@…@í?áS=?¹û:>œM°>ÜU?Pû™?6æ>‘.ñ>—sä>ÿ‡a?•b?N‚?®W?0D?,,?(ƒ?–ë?r6?¦«?…é?bé5?Œ?6r©@Fˆ@|m@9Ò@ &?w?X8T>^Ìö>ØiÓ?³ÅŠ?¦J?G?cYR?«¦ï?£ËG?€ñ\?h>Š-'>¥ê]?E8[?G·?5¹Ã?BN?•RÜ?‹TB?1ß?m¤?fŽ3?s3}?‹ ò?k +Ç>6î·=ÍJ³PÉÆ?wmÎ?Ì/?çT?¯V=²ç>¡Ù§?™‚?e/J?8†?“í—@"ò@FÀ?&…?«¿>~ž‰?Iaõ?õœ??¾üK?3‰c?vñ‚?ÂçÀ?•QF?üV?aÝ?à ?­Õñ?Šc?W?!Œ>—<Šhú>õœÀ?‚6î?~@?sP?2«=ÌÀ?…Z?‚YÂ?¥'Ý?×¹?uíA?o>¬Ÿ÷>jã½?9öj?€¾[?ßW?ó–V?‘t©?1ˆù?±y?æË?‰çÚ?H²=?¿\d?ä`¤>õÂ|=[Äo=ÿ7D=­vg?¢+R?Âm‡>™w>ª|>ò¹Ù?çe?[ó¤?u|W>ÖÔo>Ýán?Â19?ÃÛ?4‘ï?M³“@.q[@'ØŒ?EL«?I‚?;«?e8 ?ôîþ?Ɇ\>h°>ùÖ¯?ææ»?ñÚ,@;‘?óÊæ?Äâ5?¯Ô¬?ƒHs?àñÃ@DGE@l¹?¿lè?Ö/¤?ó*å?ÿh?^‘?g“e? Áx?œŽæ?˜^‰?à½Ù@ ³‘@Û:@"?J@ £@Q+?ä|Ð?Òÿ ?삆@]Q?õè?éeÿ@QÈÙ@kVÖ?†Û'?Åv?¯?Sc?…Èm?…éq?‡š¯?ûC?”Y?­7d?ÒÞî@$?öz?ˆ‘Ý?· f@•ª?ÝŒD?™pO?vZæ?&½h?sŠ?ªË4?‡µY?9“y?,±?Ï„? î?™?“è?Á ³?ë!9?þ”?üTÈ?ú'¤?«®!?”Â?d7?Y¿?³•Þ?eÉ?†þD?Ž?•¡?²?ãeë?ÛQ©?ÁQ?¸ë?Âç„?‰×>‘!z>ú=ï?R-Ž?Ë‹{@5¼Û@8&@:ä)@"C?…r=?Šª?´9?ò0!@,«8?¼¹g>zˆÊ?c%È?Â2Ô?•ËX?P+?²tÙ?þ`@˜)@8“Y@Íl?™ö?‹‚_?.Œ?ÆÝð@©7?¨—|?(Ñ¿?ŒÕ ?¼‰%@Âö@?ô??Ãk(>ìîg? ø¤?)¤K?oò§?ýy?ï;ê@Ê?ún?Ú7–?÷ @wÊ?ÉZ ?ªC#?[œu?y?en?“#¿?À_£?åÆ?ÑWè?Àm/?åÒþ@:Ê?Yj<…è?(4?£wø?¡?Á¼%@!“@ˆv?þÆ?ñ0?ä“Ÿ?Ùu?¾ÁÓ?ïRÈ@o¡?óö?„©Þ?Sq†>ýå§?‰@.•?óS©?¬Cœ?œ½?H÷}?ìm@3Ún@$±?¿¿?±jA?}¤?³?ˆ¬„?c:?ž%Û?Ÿ˜d?|™¥?ó?¬Eè?¶½,?œ8?™I?–YØ?“j×@K0@UM? ?{Ä@1Yú@<¸B?Ÿ’T?…â‚?o8è?[œ®?«mÕ?¼[s?É(Å?Ю@1—@) Ú?Øp?ñ@D+@"ñú?Þ… ?–?0JZ>L’˜?gEÓ?ÏÖ?‘³Ú? Ù?…#ž?î“$@²µ@Ts¨@,’æ?©µA?°?Š§¿?|<î?¶?Ûm?Á5_?ÐBœ@h2?ä,n?˜¹”?‘ê}?ž—>þ»Í>¡l?S¹ï?r~¶?Û|@h4@#ñ-@5ŠŠ?ßàj?X:·?³^¾@ T¾@0Ð?ñ\C?藺?óÑÌ?ïe?/­?'Ž?´Y9?¼$ ?¼±a?¿ -?7©*>ð@úé@H ü?ê@ú?LÅ¡?“ÎL?ŘR?½õx?³RŒ?ª“?tµ?m¬?nži?n?ö…U?ø²}?„™?WÞl@´[@2S@©@°©@V?ø­M?üÅ @ù@ üÞ?µ±l?¹Ÿƒ?HÓo?Wwv?’ù?ŠÔå?s„œ?_íé?ê–?¬’Ê?§m–?°ˆ?­Äð?«U?²¼‹@äM?òºP?šƒr?šYß?‰@Ž?s»*?ó÷m@0=¤@BS?Ìœb?Ì4[?ãŽ?ç½k?ç’™?ã*?Ôôµ?Ë‹³?–÷¿?‹Ï­?Âóô?î¬;?õýÄ@1ë?òLi?h y?}|1@“@Ôå@?Áú@D(?µF?K€W?°Ó?Š]z?_Œ?¨ÚC?¤ ?Õtë?ø>ë?…D ?‡N>Ž­±=¥Š?&|?Šhd?ìì7@ Qš?²±¡?7£?CÐ?3»Ù?Aý™?}w2?cT¨? @?A\F?ÄÑç?¯¢%?ZGÆ?€²È?SYR?]è>ûÅ4? +²C?¨¶X?£ñ?]^?–¿r>Kÿ5=Æ8ø?®:e?º4P>Êb?0*¼?”Ð?BÀ?ãáÙ?ß1|=¢ô>\×?€çP?T‘“=\G¤>~§¨>ùŒD?b®G?7òÞ>þV@?ŠØ^?¼%'?•3?†.]'>bà?¦?Oz±?B?&À¬?‡Ñ ?AÉm>½[Æ?-fS?f`N?Âé.?»©?Žô>üË¥>*ê>ò >Í?Õñ$?Þ"±?ɨ? o)>od*=¾3µ>L+k? ³>·?†§Æ?ª€ú?³ôç?ƒB¸?_‰?Êz:?—û¯>ïÇ—>ÞU%>²š>Ô ª?'¤Ð?'ID3?7v9?‚Vo?¾Œ?‘µÇ>ò@o>ñÕf?tè¬?ƒ× ?’ös?}âm?3p8?Møl?i®i?P¨?CÄz?€“u?ù^?èÀ?§Ò=?¢f>ÁsH>Ïæ¨?4Ã1?(åO?s9©?xè?u^ˆ?x Ô>&¼ˆ={†4?²²?èÖB?:ŸS>ÉZ?oì?­e?£µ>ùju>5^>¸?5?)D?]+?z}?\o;?EÏe?z÷Ö?¡º?ih?EÁµ?„ZJ?¼?²‰>úà*>±{U=?C<üB +‡œ•?{QŠ?šM5?õ{½?æµ;?² ­?©¢à?‹ÿÃ?”ó)?¼àH?³ýÈ?OA ?=#>S“.>uÊO>ü0á>úÖ>cwn>PMJ>˜ A>£IÔ?(?3¼e>-eÙ=áÙ>½O‹>Ôª?^´N?pÿZ?„¡3?‚'>-N= ¥”?Im^?pŠý?ìe>ý??_L”?}WÆ?ŠÕ¼?‘^~?„Å©?}‚Y@HI@#N÷@Ÿ1@ 4?q•Ï>Œ‰=>×[W>ýÞà>ýèû>ýõº?IZ]?~ +?ŽÝ‚?–Úå?@Cç>ß \>þu7?€6?@vW?{ä?SŒ?IWÌ?k“B?m +O?)->š†±?!¥¸?~¼%?’$ä?©ú ?Zö8>Iþ*?.®?º|ì>}â +? ’?‰ö@@ÏT?ê]™<´3D=þ‚=^ +^>´Åå?¡.9?¤KN?ži ?zÑ>c?€k?dÞ?*Š?Þº?¤Ô?§:?8àð?MÔÐ?˜ƒS?Èk?X»?R²ª? [v?„±"@C)@, ?}&?f¤@r+@º?‰1?¯±7? +j? ´Q>Ýky?hï?âÎ?“„¤?žµQ?©7?ìWl?×kÊ?€és?j‹]?÷‰?üí?æ?k†?û?|°M?[?9Ó%>¸Ì‰>Á©>É^þ?¼Ç?­œ`?ÇC@P•?Ö"]?]Ä?m?~Œ?hºr@vû?ë<(?¡â?q)b>nÞ~>Cm€? ·f?ðçD?Âe?\>í™Ø>…—X?‚ñ±@%o²@ üg?´,]?¶ô[?ÂÞ>?ŸVB?E˜*?™/?éZ?Í?±Ær?„Ø ? $0?~Ù1?Âø?ƒd7? +e³?¼ÔÝ@m?Æm?Rþ¼?j‡?‚RÐ?ŒïÊ?—|?°jg?ºNé? +±?“3?ãÖ’?¶n?ž¼?MZà?%Ý>ßè¸>l³>ÁU:>ºkÐ>Å+>×ØÈ>ýÛQ?½¼?çþ@P?•Ã†?„@ì?êq]?ïG?,á?áƒ?ÚÏ?Ü!?JM ?@jz?ñ¥?è ?ÿÄ? ¨‹@?ü›?£úC?§ +‚?Ù B?çf@#ç[@@"?§d?šÝã?“O ?®7¼?úu?êÞ?ÄØ—?¯žK?†×‡?Ïh¥@$?÷®D?ˆ|B?Žõ?–}?¾–«?Ýø}?ÍíË?Å U?Å ¿?ÅE?â¤2?ù{Ç?ëIu?ãŠT?å#š?ëJŸ?ñžý?÷ùÄ?B­…>µfã?Ά§?þÝD?ër3?êƒn?…?rüy?‚ö?ƒ‚?ÿš@Â?Þu? ±-? ï†?m ?ƒŠ?h]ë=Û²>¤•?¡p?’_I?\]=?v?lt?¥?ä5?¯¥È?Žb?•õH@Ïê?úE¤?ÅUî?°‚.?•…±?V'ã?ŽY?· @ ð²@È?üåô?¶b´?… Ž?ØW¶@“³?ÛÕÔ?ÍzS?{æ1?NžÑ?}(o?ƒÛ?8š?|¡@â@—ü?¶Ã¡?§]½?…\ø?ƒp¡?3@n?$H=?gÐ?u @7ã?çr’>ëì?I>@N@ É?µãÃ?Õùz@ ùÆ@ +²?ƒM_?^wP>î«[>ÔÄ>Ï{…?#½­?yzó?aïO?)—É?=o?-}?~L·?ĺ9@F@#–E@ ŽX?áL¶?õ ‘@Ó?¨ä´?Qöä?¢s\{?Yâ@'O4@,ß?‚2Ê?ræÅ?;s?$j”?î?K$?±$b?È „@ @ ߤ@šv@…T?”yÏ?€ ô?9ê?–:Æ?è5d?Ñ‘¶?°Æz? ö?…Üœ?¼Â|@¢N@ ”Q@f@ö"?áï?ÁHa?”+Ñ?áõ?•Ÿv?¡×ý?© O?¡µ?Ÿ4C?2Á?†!Ø?¸ÿ?ÚÑ?§~•?'œ?sµ¿?[öž?”¾ ?·[C?œ f?†<”?=ö¡?Ëæ?j?áü?„[ß?­Wf?ÜÆ?€ÃÎ?½ZÓ?èó+?Ÿ™u?d‘=@Gu@1Öä?Ä3?:Ú6?›N?¸•×?¬‰Ç?­¡H?’öe?€V? l?·¶?ÝF×?ù^Î?Ø ?º H?ÛmÏ?ò?ìÐþ?ç…Õ?³„?‘he?¶Ã?Ú¦J?¹ÇÔ?áà?· (?àÕJ?ÕŒY?¾­ ?™öˆ?w݇?»ú+?ÿs@ í@¯3@oÇ;@¨E@qëË?þ°:?äÏ?Åïc?•µÛ?0å~?c£a?‘Ø?ή@d±?ÜLï?,Ëœ?tÂ>‰+1?­ ƒ@^Ó@)jV?Yuö?‹”N?Øz?Øû•?ÄÛÖ?Î0?ù^”?ái4?}ò?hàŸ?²¥?d'Í@ìW@yj?û1?ðGê?ΪE?¾¡Ç?€õý?‡~“?¤Á?§™›?ªvñ?­MŒ?Œ/?‡ Ø@&Ãë@4â@ªü?÷g×@)‘Â@,§2?¯0Ó?‹_ž?Ôu6?ç-\?Ëï­?Ê‹º?€ü»?<¶G?Ô¯,@ ¯?ºG?n2Ž?D¬?£S4@o@4Ô+@5ï8@9Cµ@Y©?‡ýé?âìç@@ùÞ@4B2@@¦¤@„¬@E@@ És@I¹?êjO??¿ +9?Ä¿=Í9=š;f?´Þ?ºS@Šo@l'?¦÷å?˜EV?Nר?;u«?H[ø?ULl?nÐ&?w6é?ŒŽ˜?•×ï?²Z€?ÌßÉ@ +W1@=•œ@¡>@¦?txe@74š@4@@8Ž‰@1!˜@Šâ@#â@#›œ@%W'@! @ æ@<d@6þ[@ Õ¸@Ô@N¶@j\ @k @o^^?ÈãÙ=Ng ?µãž@,âh@ •Œ?È ç?ß4D@÷q?ì‘]?sv3?ˆò?ãM*?ÝÀ?óm?òéÄ?òÊ.?ò¶W@®A@õ¹?Õ~1?¿R©?¶—?¼¯K?æœø?ñð@î¸@?ƒF@(C@-?ó…À?hP2?[¡ž?®'‰?±³?r­‚?y&ƒ?€CÔ?ƒøù?^K?I> +?Í®°@ ïÿ?ÇÀ}?J4M?Žš?ݾ‡?Þ ø?ÐÐô?Á\+?®ÿÉ?¯\s?n•S?nué@ u@ãi@¡ï@è@ 18@…+?©'G>¢I??mÍ×?ýf‚?ê2 ?x«?|ï½?±Ž ?±tò?XËx?J³@0x@"?Ù4=?°ç¤@í>@$Û]@ +×>?Ã$@?”ð<Ü‚=ñÔv?‰v?•ð? ‹p?œ­8?Äev?ΣÇ?«§‰?™!?Þ>)@—@c?©åõ?­úð?±H?µÉ3?ºÙ?¾C?£zA?–`î?£\ ?®iF?¯ ?œŒ)?ˆ•Ô?ŠÁ ?…kØ?é_?ì³?¬ |?¸þ0?¶Q?¢ó?²¨?Í+?ÉÉž?Ì0?ÒáJ?‚î?swh?ªœE?§Î]?@¿H?,Eª?ņì@:@î@I8¦@,)?‚/b?MÐ@s¦@?ì×`?Þ y?¡?ƒ„í?µFï?éV?ëÕó@ òù@º?äæ‰?äß @:µ@H*%@MôÇ@Gz@B Š@HÙ@30’?Þm`?èW@§y°@¨°•?×öS?j­£?8!?6bþ?š"ó?ѱ8?ɳš?Èáð?ØER?繂?÷<¿?èÓg?äw³@me”@‘ +~@n½ñ@?R@/PÌ@•?îö´?¬æÐ?¼÷!@Xhq@yØk@$mâ@y@!;@/«¡@m$@ä@J@TF@¤H?ÆÆ?°v^?´™S?¾›ƒ?·ãC?¬ïª?é¯@ä.@ | @„8@ +™.?aª?mŽ{@œ<@J_?Ñš?·rÅ?Άf?Út‡?»†C?¥4Â?«÷Ñ?±Ä¨?Ú à@-ƒ@>G€®>xÇH?S¥Û?‚–·?4/:?Û—?ŠMÐ?ª+t?xt&?xŸ?Š]V?`e?z?©?¦|&?ÌÌ@–Q?íA_>ñ¬³?4aÿ?òžh?ß+‰>·çd>·áx@ +‡@¹?³:Ž?¦¡?>`?X¬&?ô­Æ?ìG?-}é?~Ý?mç?Rô=3ù?+Eâ?@W?¿ê?¸¿?$??€ßÝ?TA=–W$>}Ðl>»Pù?$ã>¾é<¸6…=Úgì>¢+³>Ä#á>îFp=»~l=Ëü>D…?ˆ¼%?8{À>ã\?NŽ>°nø>5?jÀ??à£?Ìç+?»Z?NÄ?oá’?~Þï?}„N=Ž?+?nƒ·?¡;>9>ñ“B?pi=>H<Èd?8ºø?—ÎÈ?³CL? ~?U?—:Ç?o}B>ïãP>¼!¶=èÌ/>›„?”fÃ?’G›?ǽ?ë·?k±?oº×=uk0<Ïs?E¿¯?]C^?lÂ?s±®?=Ñ»?/:Ñ>üàñ>¯¯õ>ü:,?$¾S?ä1>ȽÊ?.Î?|L?„™â? ?Ñ?,Z?x¡@NS?ò',?3ó ?1‹î>™å+>°ù ?Ô¼?Úê ?…Ò ?Íê>þxh>ú`ó?fPü?fœ#?…Öê?Px>„™µ=Çß>Ñ]²>ù)ç>ùG >ù_³>»¼>—;‡=½¸D>æ=Ñ?>UX?L>ú&Ù>dsÓ?)¶r?ª`?¤¨B? ƒ?fÃ>Óÿ%>èE½>úô=>öCS>ôŸY?&É?{>ã?£ õ?ûa?¿2ê>w$8>è–™?{ í?ئ@ +ã?÷Íé?{ßS?cÇ9>‘~ë>”Äã>üC?æ +?6›¨?:J«?qÌF?U¥4> á*>BË>ú”ÿ>üšR=Ú™G=ž­¬?7? +`?ã#U?÷œP?Šü®?sî’?‘? A²?]é?h?ï>£j8>i ?Wƒ3?}ZŒ?}fp?}nu?å#Ø@e?ÍåØ?»c¼?‘1‚?b†\?<(0?/Xœ>àc>­Xï?+³V?]ãî?¶¥­?æ+•?TŒ.=û?0-–?ŠV?C´? ì?>þfP?AP…?~{ø?©r?Ë|ú?¢P%?~¨\?à?¿ m?vã£>šZ‡?Ær?~æð?e¬?õ;H>í ó>äÝm>ñ€?­°?6§Ù?€¿?ƒÃ½?†È ?imå?.Š?%úÿ?$t>ùê‡>ûÁU?B¼”?¹N?Äk0?ñH©?ß_±?¥¿Ä?Œs`??ï5?h4i?¤¾Š?¦!á?À¹©?¤á?‰Z?RÅ@ ?Ö°?¥?J?ç1`?ÁI?q‹?$×??D®,?T÷??sS?—V³?ÏQ6?½ã?†±Å?X3>…ôÖ>ã¸ù? +#?Š, ?ªÚ‡?ˆèu>jm>%¾Ì>iî>˜\Ã?!ª?i¸K?õìÊ?ËWÚ?ž‹?Iàù?½¥¦?Š4x>K-ä?!ÓO?Â>ñ?¶£¶?–ƒ¥?€ùÏ?8<8?;ÿŽ?]"r?TOª?7µ=?@æåh>@”:?¯»“@ +p?ž3Ù?+‘?©²?Ü–?²|à?’Z?®·?Ä ˜?¯îW?§u‹?v7˜?Ax4?ˆ~ð?–£—?«Tñ?´7>»û=»ûf?(‚?ër@H.@!¸U?™Jê?‚ÑK?ˆ¯e?L^@,×@,Í#?O ?R¾}>z¶°>¤=f?ª’|?¦ëÊ?úÍ?ÝÃ?•û?«€@ @|Ç?ð Ô?öçÜ?ý7}@ ¬"@%¬Ê@YÍ?Ä»´?ÀPß?¸t°?º‘ó?¼«;?Ã)?ÈÒ®?Æí?ÆM?I +>?ƒIp?ƒKc?ƒNÅ?¬ ¼?Ò,×?ËA?Å)?Å +à?Å #?ªP?0Í?ì€6@<à?Ù¬?Âb•?§Ù«?ž´Z?œ™ò?š~>ù°>»‘(?r“À?ƒxU?%¨ ?A«?€Ö=?ƒwÝ?¸®ë?»#`?•,? ô·?}f¥?zÍÑ?ƒ„Ÿ?ˆ‰º?a§? [?ÅKþ?Æçò?Ťo?Ø)}@ +ZÖ?Ô­ ?5ü?[¹ï?€?¶¼@ †6?Ý`Æ?˜]?¹¯\?פ9?ˆz‘?ˆQ?Ùï]@,à…?é:3?“î¥?Ô˜å@'w?®çÉ?Šˆš?>_!?"Ç!@ ‘Q@&å<@á@ «­?±mp?›¥É?ÂEa?ÎÈ«?êp‘?én¡?†ÕI?„[?âÉ™?ß[ª?Å(?Þœ@…L@~­?´_?°±§?§‰?€‚›?0n?G·ï?Ái^?±Ø^?ƒHï?¨=­?õ·ø?ì9w?ÞzG?Úw\?Û6^?é +?ü®f?¢ß0?*?‚'?ĵ?Ô…?äÀ/?øp7@…@ì@ Î?Ü«?Ć÷?¬ò?¥BË?²ñ?¹L¿>ûï=ÔÊ?F{Ð?€ºÄ>g3w=¬ºÐ?¡B.?½†?òòœ?ùÙŸ@ÞÛ@OU@/¼{@/J”?äi3?çç‡?•?‡q?¡©l?£÷y>’Â>Òf?óÒÁ?òðm@°k@ (Õ?Øt(?ÂÍ‘>#<ò>ˆ ?y»?eøK??†Îf@7_ú@—Ù?Ô§?³ùQ?Ë(?¤¥½@6Ëq@B+@_K@M¢Á@:£@ „?ãà?µ8?Khj?1Žz?ãÓ>ݼO>–%?<Ù?«É­?‘ã?^Ð?Šz?¹ +?¡,õ?ƒ +–@I\@?¨@³i?‹Æ?¨¾n?Â6r?‡\È?)63?½åF@÷Õ?ýêd?ê|ù?ˆ†õ?C#?Ÿˆo?é"Ó?ºÉÍ?•}Z?«IÜ?ĉŸ?Žò?X/¯? úô?Áv2?Áh”?Á¦?¼î ?·é?™, ?Š{^?J æ?!0?sHr?”d? ÿ¢>Eìx?ŸnÝ?÷³¦?×Ù?»K­@â±@5s?â¤`?¦¼?ƒ1‚?d?‰iÅ?’ —?…š{?€1 ?6R]?¶5?¶ã@û@ò?ÿû³?uW¥>Š=?5-ˆ?¿ƒ?‡?·KÓ?ЄB?ÞzÕ?ø°@ k§?öƈ?ÖÌ—?Üä?á[c?æ¦?ëò[?÷|?þÐÅ?£‚E?÷Æ?€ÅD?¾éa?°[?eÖH?´öÆ@U[?Ý"$?­o?uÁ>‹Mð>€@k>jR‡?ˆ'@.4@ ð™?GqÜ?Eë?J,?Œ<Ç@ [?Ð÷#>ý,?WÆ?ô7@94@$~˜@€r?½AÀ?Æ^?¾Œ®?Çi?Ï¢?Ìë¸>ü>Õ?;F?|Ð?|t¤?ˆ]?š?–4(?Ÿd ? M5?‘eÌ?}Ùj?¨Ì>´%‡>½I@@#y@9(Ø@ ja?úéÑ?»Š’?¢V-?8ƒo>ú–0?Ð=@r?ýë?çsw@}Ñ@œÈ@*F?ùîç?§©´?Æq?ÀjÝ@/æI@ + ‹?¬>?¸d7?Ä¿’?Ëgj?ÅM?Ó7þ?õ;Œ?ökQ?•Æå?Ž»Á?H—[?;Ó°?/ “?"÷a7?Å8Í?þŠ?j´?UŽØ?Û˜¨@»î?üñü?Åßú?ëvF@ä*?ø‡@?{d?–ýô?ÍCÜ?ö¦î@IuŽ@@$ @Ì@]¼@D€@ »@%( @4$@IÔ @Cže@8ýÙ@7ˆ@ @‚r@)„@,ª?ï!!?¤è?Ù®×@åj@ù@ ?öèû?–òÜ?Ÿ¾ ?í½>?øE?òþ\?òàš@¹Æ?úát?0£Ú?O’?o?µ¨ÿ?Ï?q÷{?“h¡?·Žp@ …@JwÐ@:)v@ +ýõ@·@@ny@Uˆ?|êx?wüi?îN|?æ÷?±%m?§Þˆ?æõ?pp?µ4?˜U2?ÕŪ@&À?Ñ„i?‘W¥?ÇÍõ@ ¦ª@õ>û?? ƒ ?­,£?©/x?õ:N?ÿ¥ø@ûl@ å0?Å—¡?Ÿ²?c`A>Úoq>ÝÀÍ? +ú;?R +™?æ…l?ØÝ? ›?¶v?ÍpŒ?Éf|@ͦ@ _?àT^?°Ýð@°š@4×@&Ë@ +y>@7Ü?°•N?Ÿ‡Ä?*ö? x´?Îœ?Ö’#?±Fî?­ân?ŽHÕ?j?¾¿@@¥`?{¨?xÏë?®úÔ?®äÁ?ƒTg?„ÆÔ?û­@ ?ÁšÂ?•ø%?ånê@,j@(•ë@ +M<@³@Hý@Be?¹u«?žñ?íkÔ@¾ó?Ç#à?”:l?„A? Ð?%áž?Ò}?ß»l?mÇ&?rf•?.>æ@@µÅ@Af@%9g@ åŽ@ÙÅ?§r?í4@'K@+d@?ø4?å^9@_ñ@ìb@^§@¼@ ¢´?¿ìß?½¼s?ï_?êuõ@;a¤@H[?ºZÊ?N™æ?¹^«@@•@ D®@—“@ §V@ŠþG@‘=B@)Âî@|Û@ÕW@8.?ëqÇ?¿ «?Í‹?ÞqS?Éä?µK¡? ¢>?ìÝ +?ê7@@6ò@p‡Ú@D’Ì@s@ì@@9{=@-)‘>ä¹?>äÍ!?¾43?´ÉU@ ÚÖ@<@B’@±ý@ Ø@\„?úõv@n@R©@$ Ë@+8f?üJ½?ÜŸ?§l6?ˆÌE?ìna@A£ @;Õ"@~ @ Ú?¿`>ññ¾?3™©?eˆ`?Ï!ù?è›o?ÞN?åøJ?À+Ç?z±S?‰'Ú?¯ˆý?·Š?èk—?÷7ƒ>Éð>RÛ¥>šs¤>aGù?€].?¬ñ>þOÃ>bŠÝ?З?µ¾?SȦ?š†"?-¿?oáŽ?*¼<î.<>‰Ê>ñ¡¹?(é?Ïá¡?Ìuf?së?r¨3?d~?rI?}ÁF?†`>ú8>÷ec@‡‹@ÆÎ?ÁO•?¡”þ?õüŠ?ô<?Y€ô?4¼v?J¯?@;”?¾þ$?¹K˜?#V ?y? Ìû? TÜ?4nD?& +?>}?]4á?‘û?ˆˆ=?‚êa>Õøü>éRj?%–>Ü,5>›d£?K˜>ôp{=e6>~£Ú>Á£c>Ó‡?T'?þ$? "?ƒee?,(?—ö•?u1??Ë?LmL?‹ãÔ?7Û`>÷­‘@j½K@U@Ö¸?=Úº>_h>ËS|? l3?º>I?-Ê%?1¾ô?5²s>ÂÜ>DÁ¡=œË>µ—?<è½?t>ð’¢>±4'>Wú{?£0ò? Kp>û >ò4Æ;lÔ9=‚80=Ì¡X>ó²Ä?cE?Jèl?WÞ?È)?é²?tõ[>ôõ•?^/?Øo?W ?2Ø?=5ô?2‡Ž?4òË?F˜d?2°>ö­f>¸Ä'>s§R?¡³?‘Å>g>O+?êß„?é†>øª>ø8§? *?B ? +M/?Y”>×:>Äð>ïS">ù!ó?…O?úþ? >ùŠC? +"|?…/?~òŠ?–ª¢?¢°o?¤!Á>ðæS?×F?zmb?H\n?{>«{š=•í¿>žÇw?Øû>¯~4<ýÍî;ó2¸= >„òå?$’ë?aÉz?œö‹?­_?Þ]?µm]?:¸æ?‚ ±?ÎX?­P>ûð2? +hç?>G¯?Bø{?|)‰?‰¶R?óE¯?ìµ?&q?hT>üxÐ>ü†è>ü“>ýÚ¢?lcZ?q7>ô +†>ö"ü>þâ?þ?l©?p.v>W=>(ý>¿Ôp>Â̓?dº?}K>ߺÝ>¶QC?Hæ¸?jH?jŸ>ý ?·â›?áQÀ?†uÖ?M@S?\i‰?I”?'Âö?±?JE?fx?ìü?†ð7?î%ò@"@E@èó?ìµÄ?µØ?i§Y?Xr?fI|?˜•¤?§%È?®,”?µÊK?¿­?Vcf>Gï³>æö¿?9¡ù?=Æ°?Aéo?,)Ç?Qõ?2ú0?RvÕ?gÏ?:?1ÕÎ>bV=ëzD>Î}À?…²¬?™ô/?¿²¿?wÅv<œ>Gh•>ÿÇ>ÿÓ >ÿá??)žk?ø¶?…I?’ë?uæF?‘?±B?J@?IÊ +?E\?`È?ª3¼?Éܧ@±É@ C)@bì?èÐ4>š?'ÛY@¨@`Ÿ?§ýK?“{?ÈÕ?³“?lA? ü½?Ÿ˜>Û=0>‡it>õN?hG¿?d9?`$ü?-W=>&—è?&RÓ@ßk?Ý„?u8!?;„²>Ss­?K³C?y3Ä?¯>…?™U{?M?V?.n?5Å?;l?}‡,?uJõ?¢Ùu?ý¢¶?íTk?Â?ø4r@0 o@…j?‹¤}?ÃÙŽ@¡î?éªó?”÷?«?éáÏ?ñ ?ÿ¢l?¹Œ??^y?‰„“?«Ä?«[é?i?b6b?X]û?\†˜?`´Í?·o@û?Þv1?¹´®?ä1@­Æ?¤1Â? +Í3?ˆÓV?¿Õ»?mÜ?6.?8!?UÁH?ï¸ÿ@"ß ?½üé?\¸ƒ?YÍf?bàâ?‡tD?–Á?»ªÿçÒ>Ôè!?_À3?u¹?öý@¾Ö?Æ \?Ã4Ê?…̓?‚Ѫ?×Z%?Þƒ?o§é?oZ×?–Š?‹",?)Òé?)¯S?ùj?% ;?²£«?¯K?Âõ?²È?KYI?BYo?!Kß?Z/×?¯¡Î?·‘·?ĸì?®DR?ƒ-Þ?‡¾?‹¹;?¸p§?ýÈK?Æú?‚.«? Õ¬?À}ó?¾hÚ?¼U¨?¡½j?À?ìé@*Ä?Ž”Ì>þT?‹º?«£M?É?ÜL¼?Êâ¨?Çë?—Ê?Øù@â@r>à”>¼)?—§ž?¡t?}-@“y@-¾?þ"%?×÷ý> +ËÝ>¯B?q‚?©Rˆ?õÛ~?àCx?®a/?¬÷g?¨ƒd?›*?Vãœ?ŠWm?ÅK]?¬?…?Ž½Á?„P?_ˆ8?ººP@‡ ?£¼÷? bú?M?ÍË?ê³@$b·?aïb<Æ(?‹©¤?Â7?»ÔÐ?¶Vr?g[?y©@?»@Uý*?LôÉÑ?ÌØm?Õnì?”Å0?˜äÞ?Cùb?VŸÔ@0š™@' š?«P(?¦x?[èi?q-Ü?¥rÉ?ªm?Ñ­u?¾²f?ƒPa?„¾?‡6V?„jG?ƒ-4?8’Ã>'|p?;ðµ?Îy?¥â?Wpù?¥;Œ?é¬`?°…b?XŒŸ?­¨K?êòá?­kÞ?Ø?™dø?®?Åp?ÔBB?Ú8?Øö%?•r®?bÊØ?—?™ël?Žf?‰èq?!&ö?à?«ˆS?½7¬?ö ~?þÂé?Òþ©?χ™?!=ì?ñ¯?˜U ?§z2?„¬È?‚§|?µT?ž·õ?E ç?=c >çz ? +>r?ýBp?õ¤R?ˆsÇ?„™³?mý?´Î?Œí0?‚§Ú?1¥6?S.?Nr?BóÅ?Îr?î“Y@oÿ?ü"à?j]™?ž¥"@æ´@)a¬@oÕ@Y…>@*Œ'@%3_@i ?Éó•?ï ?è ?áö?\œ^?§ôÁ?Õ1%@ Ãû@!ϼ@9à?ó +™?1(Ü?Q´ ?éµ?ˆ;D?–!{?¬‹q?¸S£?Sqv>±K™>è¢á?i—?dÖu?¢}‰?Á{¾?Ù>¸?ƒª¥?B?xzQ?¨?Á?¸C.?ÁµÉ?D^:>zÇî=ª•¬?^Á?Ìý™?¿ ò?¾×k?f‡f?œÊ?‘ñ?·¾¬?ï¹F@È?Žb?'š”?öw¼@6 ?¾ªJ?€Œµ?ª5?Ÿá?ÃùA?À¥·?é¨Ñ@^d?°~?reÈ?½Â?îAy?ªQµ?€0"@W¥@<³@'ÂV@¾Ô@ +Ân?ÿùÕ?Ü®?»’Ó?ã)§?ü¿ä?Þ?Èv‰?¿ëµ?Ág?­ç~?™_¸?Š‚?5?›šÎ?¬—Ç?žDÉ?’Ä?Äç‰?ú…F?þƒç?úÐ3?¡å?x?ûÂ@Y÷ý@þÎ?…ë¢?ˆS–?~—?h§J?Dáž?W¥‚?tŒH?¢³¿?íø6?áiE?Ðki?ÜèV?ýd‹@•P@+G?ë,7>÷e‚?upÓ@öj@*@#E@xÀ@nw?ýŸ)?ÑÈÎ?¾8µ?4] ?@Ym?wd?o0 +?–t?“H|?—Àt?‡q>¡Â>k³±@G­à@V-ä?š¨y?{]u?Ù°?Û»¬?Žž¬?‘˜ý@<ˆM@Sb°?ô#@?¼ ?uûò?;£?Ž;õ?¯×`?ᬎ?ô:?ÇàR?®çæ?åÄõ@È’@ ,Ã@Í–?é%?“¢¡?‘]î?yg×?yUõ?y=û?’›´?Èe¸?´hî?zþ§?‚pæ?ºŠ¥?ºz>?ºkD?ºVp?ºC.?º4:@)|@.?û`l?÷ê;?ÇÛ'?Êé?”ß’?‹ý@&Ô@;sÑ?ö1?Ïéò?­çó?á™?ãei@'é@Bù?öšä@ £@Q‹?ýsã?ôgO?Äæç?Š›?XÊ…?ïÎ]@E½@2²@ X?œ¦}?™+S?Âú?³€ @hPo@„ u@E˜&@2˜S?¬ZÙ?è?¯?ûâã?Ö0q?¬?l?”W?„Ip?Ç„é@FÉ@æ?y„¦?…Á?Vã?‘<|?äiQ?ççã@,ÚÝ@2Br?Ëìñ?¯†¢@@F¤@X).?Ü;?qõ¨?­}|?Ê ?ÖNÑ?í"X?È%1?2#?©rB@ â@»z?©f?®G?-Û?—¦@Ön@ X}?Ûvã?ÇBê?ÿº @ Ø2?þ?úÝòi`?e:?fps?St@Ñ(@HF@ ˆ@<@@D~@H ú?ȼ?,Â+?«U@§«?óÌØ?Í ?Ù1Ì@+V0@+L<@DíS@Fã›@uÌð@ƒüñ@Mð|@ ÝÛ@ @]@ ‘§@ K@Zs@OoÝ@bV¼@ Ö?Ùp)?Ö£u?¿#—?ñŸJ@:šä@43?Sœ?3˜@V?@~n@XRê@HhE@ò>?Ðã ?îД@ir@ ºJ?/s?ö.?±'È?¯x>?´Us?¸4y?í˜Z?þ…š@ìÚ@F‹@5£@“ö@ZÌ@…†@ Œ?n!P?I•?‘F?ªæk?Ç\?ÀÓ)?¾®ö?Ä·õ?ŽÏ?©8?+¿i?„Ón?…p4>^%6>‡Å?€áC?‚´2>‰[$<’÷G?á2 +@m?ãÂ?¿Î?—5O?o­?{Rz?‚b?x<Í?k+ ?ƒÎá?Çf?µR·?µêÔ?©þ„?#ô­?:>ô‘v?yê@#–@&Ò?R±?B‰?¼@Õ?Í_>@ö¢@(|›?üÈÒ?ûO?!‰\?%fi>Øð™? +Ã$?zž¬?“Þ¼?ª¤„?®üQ?Ò?Áä?¢4?aÅ ?Íà?z8å?Äýw?¦¯G?„&?q+ü?F>M?7ÊM?HÁS?¢y?‡$g?ÑŸ?½>ûïà>ðë3? ̦? ~í>îc>Æ +¢>å‚?’C?)-È?é?:Q>oÞ®>‚ð„>=Îá?yÀ¸?UªŸ?B±š?ä_f@<›?q“*>’ÑY=Q¨tîL=?aÑ?&b>w\Ñ?)±?ƒ£ ?žÇ?[ò?R> Ë==Â4Ñ= Z>»_?o°?c.:*Ÿ >Ù¢þ>Ö €>ïm‘>óÄö?_.þ?t.£?|Áà?ˆ¢?h?4?Gqü?pR?MQ?8\>ò¾Þ?v6?@ܾ>öXÑ>ö€J>ö¥¾>Ö(>v«Á>€gi>É!Ø? +å#?ƒb¥?sæ?'-?ñÈ>ø£”?H?q!>?o-7?«3ß?§ký?P?>øÝ£?S'4?V‚?Šžã?’á?×>ùx€?'©ñ?7ÍÁ?j Ú?…üé?Îú?íï?@@>(>ö§o?6?’?ŒÁ?¤XQ?]tõ?eH?ƒþI?¼ï?½€?½ðAÀ?Z”?®íy?‡¢¿?(Ø?9ð?V½ï?tç™?„ +$?y(ž?ƒÀ*?mèø>ûÙi?<ò?{øˆ?oFb?DHô?H^1?Lx€?l€?¹’²?©å’?=?{?2Q-?ª?"Ò?ðå?<æ²0<Ÿg>ü >ý(4?¶Ñ?·7M=9+>ë#¦>ý³?qÆ?}3¼?¦#?¢?Y³?G™l? ¹~>ýv½?¥ßð?¾)á?„Z[?_Ð +?׶¶@Ræ?½ª?ŸÇ?1î>ýç¨?ƒ>X?¦¦ú?†X?~v?Ñžî?þkÖ?¯rÎ?ƒ€ø?4P’>þXN?¥^.?åI7?Í/Ž?¾ãß?¥‡û?”?‡ue?hÖ?Z>gÇ%?#l;?zÂ?Å>Ty1>­X>ÿY?;'½?%ß?pV[?b¥ò? Q=£Gó?R–?³WØ?¸üä?½=?‹Ä>ö™Ð?) è?rþß?Dê$>ÿÌl?U)’?±ZÀ?ž@Ž?üÎ?S #? o?+ð‡?€a?•‘?À7´?ªÌÍ?t ¨ “?‰=ê?„#Â?€KÞ?}ì?y×?O8*>à}¹?è,?€°C?€¶ð?€½Ü?ƒŒü?ƒ‹¥?‹e?²-ø?“a¹?æg>Ýø>|‚u>ĨÜ?7ì’?Ök@ ý?ç?®e–?–IR?E¶{?V}m?lRŸ?Pøý?Ï?=S¸?‰Â5?°Žp@¶?¬H‘>‰\Å?a°?tw?H*?«jè?ž«Ü?Å?ÐTv@"ù@#0@Æw?êg?§ñf?°N?¢å?äsæ@?Ò‰?ƒ?eþ?I…{?›åÄ?Úê?º©J?•Mø?ëº8@†@X@Îy?øF›?Ã2¦?¼¯L?´ß]?“Êå?‚9°?½üè?â^í?Ã/ß?¯Ø÷?Û+`?æÒÂ?¦Ë?‹Ã?•ÀÞ?¡l“?£X…?Ÿ~þ?~v?f¾?Æç‘?Ø–Ò?Ÿkþ?“6ò>z¥O=Ç`n?/ÛÈ?4‘v?ò”y@£i?#ÔÕ?»Ù?¿ñ£?¿²å?Ä7é?ÉFü@q@ +›x?‘Ç…?•Ç~?ž;?„Ð?ñô?h½?“¼ô?j?¤í­?šî©?z9?N9™>Ì°ù?7ü?ƒ?ŸçL?ÕîZ?µ¹t?ƒ'á?•>Î?²ý ?¥q²?Œœ-?üþ<ùv=#úì=Áöb?i[Œ?Äè9?{D]?$Å?‹Äˆ?µ3?œ<é?†}R?°‹G?Å‹?”a‘?ƒ^ï?ƒ^î?ƒb_>ÓÛe>–»²@;•@6[Ÿ?‰ƒ?QÄ7?º?Éi?øþ??ü«@Æ´@ܨ=Ë­Ê?…³ä?¶\?ÉDÚ?¼ªZ?eË¡?Šž›?íç9?×aˆ?¥z?ž11?ƒ€v?[".?€P?8Ä?émº?Ë&«?¥UZ?†¬è?:ÊÄ?œa?Üž¤?ÛÈ*?àÑg?Àé?¡U?¤~ù?£^@¬_@!¥?¼p9?ƒz™?(·²?u@¡N@:–Æ?¥›=¶”?ÙQ¸@ú>?œë?‰?Õ-ð?ÝzR>zV->¡[?Í ?Æ~ê@ +o1@ŠV?Rp”?Kðx?X_?FJŽ@S·@Á¤?ù’Ç?Ûrh?u?Ã?¿3?¼W(?™Ha?$M?ß?>òþî?b©¯?ÄÍŒ@¨@"•l?¾‘Ñ>ÙŒ?m-e?®-/?ÆƧ?ß‘Ð?…¼×?Ñ?w=ô?š­?¾²?ÎÈH?ò0J@úË?ë¹b?åDñ?Ôñ\?Ö|„?«²?¼øÐ?2Ï¢?Ø?®~:?Ä7Õ?ý1P@È4?H»¼?.Ðý?˜—?•m\>0¶¨> ¡¿>±>Ìç?‚p?†c?ÆBn?¿!u?ŸÌo?š›É?‚}f?n‚Á> Ÿ?>¡Í?hŒ?2m?ÃŒ?ÜöA@ÈK@¾M?°>?e•8@ŽÊ?ñÙß?ÓO?ÿ5…@)á+?þü_?Gl"?Œ±)?Úò?ý£!@'º@jQ@!X?õ¹Ï?uLa??mö?Ü?b{j?¶.?šÛN?fOá?¸ò(@³Œ@z@5âÞ@ Ë?ÂÍ?à6±?ùgb?»tà?‹'s?•¼ß?–³~?GwÒ?c¡?c>?‘§?†`Š?G^?5•y?;ƒÆ˜?æ?®@*3è?xË<ŽJ9?£8q?õŽ?Ñp×?Á&a@ +¶@ ã°?¸?Z×þ?˜u­?º?œ Ç?€…Ë?•¦?žNõ?´)Ö?À›x?ÍèD?Ùxœ@Ÿ@'˜?æ$?¥vê?†žv?x˜?¨QÍ?ÃÛ ?Èæ?Ìì(?©æo?—C?øGÛ@p„@)¦¼@4³c@aJ?ÿ‹Ä?Ǩ¯?žè¸@l@ h·@¼?Ѹp@l@.Žœ@›?þßR?ëŽ?в¥@/t@=Èê@)E@ïY@B&?ú¿á?Àïë?[NU?ž¹>·o›?%Và?}ìê?‹•Š? ÑÎ?µÃA?Ý=k?î÷h?ý|é?ó¢ ?ãÒÒ?½‚0?)€Ú>ãÊ<@Åw>Æ ?Æ%?³¹?MÈ? 6@Ä@È£@<÷Z@&ëÇ?FCW?Eô¿?€šø?ŠC?½?¹À?#1T?‹)?É<9?Æ“Ó@ +?ÿuË?û€˜?÷mŸ?úf±?û1ø>¾ýÞ=ÜÜ}@Kä&@zÜC?É»?dT¤?¬ƒ?» :?%Å>—¢?«9a@tƒ?©ï|?G’1@ C4@T'Š@ i?|"’?€8š?y‰ô?yuø?y`?œ'q?ÔØ5?Ä.§?­Y°?¥%?w/¸?yðøp}>øi>þäd?‡9?xØj?…¼I?|†?w}”@!£H@HOr@$?ß¹,@ÒA@U.?ÎuŽ?vÂý?¯p?ê ©@%Ñ @m˜Û@*a>ÿ¿Î?Ft?©ÅC?ÌùB@:ÚW@,b{?áãï?ì2@b@z»@)Lx@,i@ +]¦@‘X@ð\@ +œ[@#c®@24î?¢©>˜@?\­?·c?€¡O>óÌ”?®˜u@;íl@ u?¯ g?¹aë@£Ä@Ô°?¨{?«†?øã?õóÛ>xçN=©‰?®Êâ?ë?ßÕÔ?ͳÉ?ìãI@³?ò ?Û#×?ìi?ñ?ˆ?»ûb>ÊFÿ>Ÿ”Ñ>ðÀ'>é.lïª?!N@¡Õ@˜ñ@"ŸÈ@ýQ?£´ù?Šä?¾ç5?Þ*?¿pZ?¡Ð?Ôò‡@¸»@ª@.ñ@y@?‘6? ¸n?ƒ¼+?˜Ë9@êd@ ù?µbÝ?kÁ«? 06?À/Ô?ÞN<@ Î…?öƒÖ?n}€?ƒ@?¸ßÌ?¼ø˜?t›?jp‘?„8á?”x?°<Ÿ?±z‡?l —>鸓?4×3?¬¨?¶B?߀U?Ö¼ý?°C,?®ª¬?œÏ¾?“é?tÅ?Šýi?­jP?êƒ~?å¶ð?­þW?ÌÙ@}Is@qýê@7p¼@)³?Òâ?›0?‘´8?•õ~?šmŽ?žï)?¤Û'?¬ý˜?¬¿€@%ó@)Á?—w?f1D@V³@.ï>@ +×Ù?´X5?é'@D@f6@ üÅ@ܺ@=…@C}ê@A æ@>šÅ@Ü}?É?Ch?€N?ªè°?±cà?±ì?¥}Æ?˜#ì?´¬?õ?ÒÞ>’¼Z>M$ƒ>àô??{?ÆŒ(?Ô¼Œ?w…ã?wH˜??(•v?0`¤??xÀ?ŠöÜ?a©Œ?Qø^?Pß?#ÕF>¡¬Í>RÀ>> (g?qÚ·?{ ??«FL?tO >äsŽ?®£?…8? ñõ?%«?*®½>¾‚B>ŒQ?¬T?NÜ'?Éx?¸gÛ?¦[>Ñò>A16>ʤ…?%óU>U.?…K^?&é?)X?7¯?Ȧ>Ì7Ó>ɤ,>ïa¸>Óqò=PßÇ?!?ö$3? +ÅÃ>á;?0?²Õ?‡ê>îqJ?.[\?Bf®>È·=i=ðí|?l|Î?ôV?ÆðÛ?aã5?B]>áÒ>íŽÊ>õMù>Ö^<® ã>ó0ø>óh$?Ñ?Ï´?¬„?§L\?Ï >ô )?w†?)©³?ÁÍ#?æ©?LÊ(>p¯!?Ô ?A€±? ÑÕ>öXB? Ì? ƒ ?Ya˜?˜ñT?XÐW>-æA>ìeˆ?«©ñ?»_?ëfœ?Ýâ‹?wG`?VCL=„®°>ãÍ?žÉ?(Ej?`£?\É?wÉ?y S?(w?(‰¦?<ç>ùpŸ?Ô1ä?àÏÚ>•?‹ù?®%?V/3?&Nx>•“[>-¹?¶š2@ ‰è?ªKG?WÝ£? ¡E?ÀÃ?Ü=¸?ø¸›?rä<À#è>˜ ×?¯˜?hÏ>ûN;?'•´?]E,?Ot?J=?5#¼>ûªV>û»Ç>ûÊ·>ôd€>ùë¹?4Ìp?’!m?r«“>ü>?HÊ¡@&??ý“Ð?ÌÜÈ?ÃÑG?•_Ã?–W9?½d?³ ¿? Q˜? +Ù?{ÀÝ?|‡™?½œ×?»…;‚Â=ÃKÐ=êñ_?§Vi?«ñ?~„Ò?ƒÈö?:ž5?4tÕ?€Šñ?€?Iüæ?R]ó?È—¸?Öqè?wïã?UKÊ?´1ú?Ídú?o%ö?/%º>&iœ?9)Ç?~”?¬ ?¾ó“?½k ?ºXÈ?O[Â>þKä?'ô-?JY? +œ?Îœ?½Ø2?Õ:ê?Æ ”?¾ùÎ?L:Ô>‹RÂ?Áõ?E°ÿ?%½Á>þêj?4?Yé÷?Syå?ZÄ??„Ø?{o? p†>ÿH«>ÿU>ÿ`?:W ?zz?›Ç¹?»…a?…¹‡? /¢?85U?k5U?½Ä¨@ˆˆ@š?Úüv?¬Ù?Rà¶?€ž?¥hÛ? ¹@?žëñ? ÿï?£‹?µçÆ?Ü7‹?É:÷?•Cv?Œˆ[?€QÊ?<1/>Lýê>,5R> g?@¨"@x¢?ÕC?ä$?€ŒN?€”?¥E?ém¤?Ô§+?´õë?€Ã&>N:>çµø?Qæ+?ú|?¨Ùž?„5°?â‚? þ?@??–h?J€?‚3ö?»(Ÿ?ªÊÄ?ë?2-ô=öò >“Ô,?×°?=#d?=H?ôì@dò?ÂEy=&¸P=k”€>Óù?pÔ?xÓ?¾?Õµ}@À,@Ý?ÃUW?ÆdÜ?ÂwÊ?›ïÒ?q^R?ý9?¤ ?Â|?Ý&1?üg@ ?à1¡?°œµ?i??ð2?š»t?æÔ?Ø_p?Èéý?u¡? Y?’;y?Ã/Õ?¤>$¶˜?=׳?‚6Ê?®»?Ãd ?Ãm?Ãtg?â‚Þ?ò_ ?Ð]n?Ô”?>}Ç?£€Æ?ö?­à?ª‰â@ãõ@¥ï?®‘É?¡ýõ?g´ï?O…D?ïÞä?ü°¡?ÀO?¿˜,@ <ÄÛ>Îðf?Fi?Žª°?´²N?žˆ?—Èø?t’å?fi?øØ–@ Gf?Je‹?[‘?1˜Ù?*L?Ρå?ÝCŽ?„D?4W>éÎ>ÁáË?û.¼?íˆÀ?t|?gš=ø + >¼D?@"\i@,je@^µé@5î7?O1?!ƒå?Ly?N\?´ÍU?²«Û?°´?µ¤+?¼0£?Çd?âl4?×úÆ?Ä È?±FÍ?Ÿˆ?¹ªÅ?×}?¶…?–ñº?ÙÀ÷@|•@|ˆ@ç!?ëçð?Å2?›¾u?ˆ?µ,X?ÀgÍ?Îòà?ÙAÏ?‚¸‚?Z× +?ºZ ?Å"Î?˜Œñ?—L?]´õ?cT‹> (ñ>©!E?»¡ï?ºt¤?]Æ?@@?mZl?\ëö?/^?`ªk?ã©?Ø'Ô?ª#?“Å?R³?•k?(`i?¢ïS@#+!@l¶?øè™?øF?ýv¶?ò?”?ì°´?¬GZ??X“?Ð?ãÜ?ŽBà?Äœ–?¢à?†Ž¹?˜žÓ?«ÛÔ?Þ ]?ú®ð?Ó…’?ƆÖ?–“–?‚ï4>uU?`¾€?ŠŽÂ?GR?"Å? º? j¤?ñY2@ÄÒ?„ßv?p°?Àrj?Ä È?Å?‡F>­«Yð?7µÒ?SéÈ@‘g?û?¦0Ç?§2¢?›|c?™)?–Ö ?•£Ÿ?(?‘Ѽ?Æñ?Ò\@OA?ò_?¿b?±K¦?ˆN©?rë¢? ñR?“åÜ@zæ?ö{³?¡œ?Ä™@ýz?Ú}ç?ªŒ³?™›‡?x¸I?‘î?¥³??…íŠ?2¨+?i>7 ?3£[?‹Mß?¯Ðt?å?“ðº?¤?ƒº ?ÁÃà?ÃÊ£?ÆÝ´?¡:“?| ?¦2h?Â#I?’ä?\©k?…žŠ?™: ?‹›Q?E}?‚KÒ?}Ý?劻@k_?ÝCi?«YN?¬]Å?±b°?Å#²?̸ž@=´@r1¨?ý°‚?€ÚW?2ãþ?‚‰?k!î?‰³ì?¿ s?Üü´?€Jd?& ý?Žv¦?¡¢?Ô<?êW?¶OÔ?¢Ÿ-?’Ç“?Ž²?o„?Ys?ø˜+@#@$>Î@(†þ?ŸÀ4?(j?“;¾?Àƒ?ç.?ùÌ@bNí@‰5@VG£@7}@ „è@ÅÓ?áË€?¶-Å?Ò ×?ÞîÉ@3àí@e: @;Ú#@ R‘@,pí@8Îè@)Æ?þß—@*È@S‚%@)‡g@QÁ@%@ ?äÈ‚?‹ +¤?Ëk+@á+? ›Ú>¢Ì3?°ì?}çM?¦hM?×¾E?—Äh>ý¡0?…Pe?ýyG?ÌÀÚ?c¡ˆ?–þ7?çƒì?¾ü? +4?@#Ü?½°z?¹äû?©ëx?—â5?[u+?¯s@\æî@E¸³?|Qx?‚/,?™÷?”ËÌ?½»?» +)?–Ö?Žž%?îèˆ?ñÆ@ýz@2?üd9?ûP5?ÇAí?Ä?C?¡_Í?’Òµ@4Ʀ@OåË@ÙF?ÒIá?íyÅ?ú‰?¬f¦?w×J?=Ñ9?‚Q>Qm£?¢ÏQ@º¶?õ6?» ¯@Y—@/tÎ@ S ?®øÙ?†œ? ‡?@zh?y)?ŽFk?»ì$?­ÜV?–†t?‹GT?º_è?±Á>øN^>ùnJ?Çý?åŸ?ri²?p³À?Ýf-?ã›~?Œ¾¤?w{¾?©³Ö?ÀÃP?ĘÕ?Ѥù?ðâ@»>?«ì²?PÑK?Š?¬˜Ì?Ý ù@‰?Ù_û>öÈÉ?>èÄ?¸yY?Ëó·@_ð@ËS?àqó?Ú›°?Ãd ?ÛDï?ãw +?í@ëû?øVd?‘fh?tžŠ?‰€?ƒG¥?%¯+>âˆ?x£/?·™?“ç‡?NÓX?±éÓ@ @z«?¿_?åö—@4 X@3o¸?rç†?rÇÜ@a@ý?ÁMD?ª z?ˆ"f?„@Ÿ?f´ö?h†?ªöd?Ï‚?˜Ô™?;.ò?¢ €@ Žû@¿ò@®‘?ç%É?qó?êþ@-3(@!Í@@þ½@À­?Æ© +?³ò)?„Ec?k±)?ˆŒÈ?Žôl?¦\?Âßù?²¶?Ž–“?l\m>ò=?¦ð?õÓM?ù¡â?áóÃ?ì Á?:UU>íÙø?ŠM ?§ “?”ÃÔ?‡?¡VA?ÔK?³)m>õ0? ?^9?UùD?M¶z?Es¢@\™@#8ø?³P_?kÁ»?¶öš?ë9?׊N?¶ù…?ÁoX?è—?Û÷?°Å?¯ý­?%?!sQ?1Ð/?->?Ç1å@~?° ¡>é±=?\®?itH?ŒV@ïÆ@ ²Ú@Bã‚@:1€?Ô…Y?®yI?žz?˜]l?œÿ?ˆ£È?xVÜ?¡U•?§ãX?ŽÑB?® ?ÞÒÜ?ò¸?ís'?ç=?àÖ´?ÍFr?®¨e?Ž +?‹·?¨ÔR?¬¬@õ@YÁ?d+·?x@ NÉ@IBð@%Ñr?õ£X?ûo”?üÔ¨@q´?å…Ä?çGg@WL@ž¹?ïÚ?Úî:?³ik?li“?¼·@72û@;(C@/Je@,Ñ@1™@!ª¹@ mñ?ôªf@ +Î-@ö4@Ô©?ùû?÷b™@÷@ý@(;ž@. @¤?ß&L@ +ˆ@¿N@ä´@5@:dì?àu¾?ËÃ?«½Q?«F ?ÃE ?å0Ø@'l—@g>&@hf@7£6@0?ô€¯@U,@q«@|Ä@ °‹@bæ?Özð?• z?µùº@½k@m^?„jd?Fb8?Þ9?ë¹Û?¥=»?r?ŸÝ?“p?Ú¬?ˆ>õ?Ë;Î@^YÁ@f»¼?­°?­Åï@%>„@{È?ÊbÐ?®h(@@o&?û2´?ª´(?ŠÈ]? Õ×?<{(?‹5ƒ?Šõ_@! /@/G?RàŽ?¦?öi@¤^?Ö\W?¿åó?–e?n.é?3N>îûÏÚ9?q‰_?`7?òõ°?í:)?Qå?Rt~=Ÿ„=Ìš@+9@!å?ð¢?ÜR?[w>Üno?ÀâU?¿–.?~¯:?{>‡à>¶îÿ?¼ûq?¼74?Ylˆ?o>n?´¨Á?­£?Ü9?n?ô?qƒ>F•e>‹šâ?B‹??“?; ?p:?a…>ë¯È>qfJ>1&'=à‡š?¶)¬?¸R=?œÀ>øPX>«‚ë>H->9ªÜ>ë?Á¨†?Ë]I?µn—?tŠ5?y>ûýà>Ÿ">,oå=º×?è¨!?Е?]ÀÉ>‚>Î}Ô?#ú? »$>)>ù“˜>ò£>îŽc>¡q>š|_=±6é>¿ò€?y>…ýf>UØÔ>ñY>µÚ?=½«?>Ò7”?µy?œVÄ>äÎ>Ç3š=h4²=Ñ3U?å¸?“Í>¿^>È÷ä?Fñ?K~2>„n>C>Û?–qè?Ê¡i?[Ú >õ°?Òo?. "?*N«?&‘¼?au?1€?´]Á?èÞŒ?¹æø?bÐo?S'Þ?!Äs>èð.=Þ> +]>û<'>Ððk=‰{>øo,>ûÛ9?z¤?©ì>„ß>šÔÒ?P¦?LJè?®eæ?ª))?Å¿™?Ö=‘>ÜœW>`¿Ò?©“t?ÉšÀ?±À-?¥u]?Fø–?Ÿ?5i©?I0¡>žö¥=…P6?ß°?ñõs?ƒÜ>ù(&?…ús?²UË?î9‚@T?Ââ?d™Ó? §>u$Š>X=>>Ã>áVD?LÖê?+Š±>û²>¢µÌ?$?àh;?²Ù¢>ü3?n¤?U$~?zƒ®?¾Xð?Æuš?Î?ÍD{?§9?¯‹¤?½fz?½§O?¼÷k?µzì?‚ôa?„ +è?Z5¼?R( ?JÞ??ôN?@ûÖ?I°*?àŽ>ý ÷>Ow>WUè•x>½ ?ŽM?¦)ˆ>éÊ>@ˆå?DÓ?ví?®›²?¾ƒù?‘j:?ƒJ!?&7û>þ4™?I÷?e€¨?2$? "Á?TÛ‚?z{?j?aØø?VS’?E/q?DJÈ?95?3 ÷?5Z?mŽe?‘¿‰?bΰ?$Ðy?/Àn?DÊÜ?#Æq>ÿ4e?Ï$?Vã?Ii3?dš? =6î$>‘9½>ÿ—˜?oט?µ¬Ì?•?qdÙ?¹Ás?ÿß??Ûà?©™y?±þ?À ?Ã5¶?ÃX?¤ÌÑ?€#G?b§±?2Å«?] Ž?•ð ?ˆaí?^T™?by‘?fšè?{pé?‰SÐ?«²Ó?íy¼?±5æ?)Ÿ?”/?¶º?Ìá?.º+?\Bp?ŒoÖ?}î?AÊ?FþÉ?Yxu?6¨?¾;?/È·?I<0?'áX?im?˜'?ôÆ?úü?a?3‘ª?K?k!1??ôp?`íÀ?ŒÃõ?ƒë?sk¨?R‡í?©3>¡¶9Dè‰?U ‹?îF? N‡?áã?yî?´ÚŸ?¸Ãš?Çiù?¿é?¬À ?Ê•À?é£?˜ ƒ? ì?hC? —F?µŒ¤?ÎÏ?Ú?éîÖ?Õ£Ú?¹}¢?N‹ò>Ê$º?˜ +?Ý?·³ø?ýÖ°?ÛwÞ?Å!S?í…ó@æ\?ö@|?ê0ƒ?pš‰?„Ã?¢1é?Ã[@?ç X?ñœé?Š`¦?^¤¸?²™†?ËÇ?™èN?‡NÎ?O›å?U'?Q?QÙã@ Þ@#¥Û?y÷V?G¿?Ýá&?êé¨?ºÒ”?»"h?—óØ?’$ø?ÁFÃ?ÃU?Lj×?ÅÉ$?‚ÆÜ?“ž@ Ö?üÂ>âþÌ?*{t?±÷b?´Q?Ä]?×Õê@ü@Ïl@8ÌÙ@0?j?Ö ?Qyd?³P£@Á¹?â,ý?Jì˜?R®?j§?ú·?±~Ò?…nn?#¸Í?¢?Æ æ?ê©_@r?‡èÌ>è{ã?E¡!?o£?Iã?BÕ…?¹ê?°Ø#?6ÒŒ?OÆ?ê' +@ Aµ?>ƒÑþ?•X–?¨L“@ ØÜ@¢®?íì?9?v?]2@Pü>@Ga?ij?"Hì?Ê©­?µ-N?£„?oŠD@'š@ +$j?pê?{Áþ@ »?éÅ.?“G?hó>>ó¡?9Ðñ?‹gì?—Ý? FÜ?ÑŸÃ@wI?åf+?Å0U?èûï?ûó6?Ê›i?±]ò?ÜñÖ?÷a‘@2n@sø?Ë|(?·DŽ?óÓ3@oB? Y?…qÄ@)IJ@;¡“?Ô%„?ºw7?ô Q?÷Ø?‰"¥?ƒcm?\µ?b +‹@š?önÍ?ˆË¬?€Ó5?AÁå?RŠ?ª"\?›Ø×?, ÷?G(z?ƒHZ?tê?:F$?XD™?•ýâ?ÇúÅ@‹3@³‚@O?Ô ‚?‹zž?©è;?ÍKÊ?° Ù?†?¤&â?³Iý?QÍy>®üÆ?„o²?Ä”€?ij?ĉµ?™W’?|$?Yĉ?R ?€B´?æQ?Hh4?AÕ}>±üÓ>H@e?”3¦?´5Å@(¿¸@;e2@ LC@Ðy@dƒ@½h?ö,=?ðºâ?ÄÓœ?×±?“ƺ?˜T(?Ä3?À û?ÝŽÈ?Î;¸?—`?œ«?I+3?hÙö?í]?¿±á?®æí?ÔZ@3r*@`¼?¡x?º>Ã?öÕç?Ç?>ûþ?µ?¤"?Tkþ?´y ?º@d?Ï0@?ÞZ3?óe^@¹©@"„Ü?üí&?ŽÈÊ?>9>ˆ³÷?NÀú?¼¾q?Ý ]?ýFÄ?ÜEï?½”Ô?òþc@¦,?ÄÝ1?sM?¡Ó?™?O Z?¨ ?ÉÃ?þ¼Ö?¶<™?u?ÆB}?ôá€?ËÀ9?¯A?’|[?L¹?™o?¥]}?¶…}?Á˾?ØÅÔ?çôù@y.@ ÃÁ?̦¦?¡ãÒ?Å +X?ßÐ?ØÑ´?Î]¹?˜øj?€ÙÃ?ª^Õ?¹Æý?à°–?ð u?òÛ:?ó¢?¹n,?›eØ?¥J:?°*—?LjÜ?×?³¿€?žµÐ?•Ê?‹¥£?ƒðb?xq?ˆÛÕ?!?r´?MÖp?”:? 2?Uà2?€ß?;ú?$OÖ?Æ@iƒ?ü -?ñUÎ?Ãq?«X¸?ªv?¤’?ÜMw?ÿ^0@ïø@2R?æ®´?•¦²?Ÿ=H?žj?¾Ÿ9?à ?ÄÂ?›vZ?É\ó?þTÅ?£û?1“R?‹Þ(?²ø?õ£@ØÀ?îÆ?‘.?¸äa?è½U?ûÝ@¸Ž@ô?Ð>!?ðNÔ@‰?Øy–>ýK±>ðÈ>ßô?kÿó?ýÆ?úim?ø·?õÞY?òöW?ÉÅ>ü“Þ?:Ñà?è*+?èæ;?¢Fë?§Æ?ÝÌ?äôA@C?õÉ¿?„Û£?Žu4?¯ðù?²Ô +@´j@¯A?nx? D¦?{bm?…n°?ˆ]Û?‹Lô?Þ¶ö?÷y*@5íX@A…6@ áZ?úy‰@ ‘Ð@¢@ +û‰@dP?‚ç>–#^?‹SŽ?ÔÒ?ÁÂÉ?ºÁ?¤ÂN?”k²?ìç@(Í?ó%Ú?/º]?p­c?Ǿ‡?×]_@ Øø@ÝG@!§@®¡?§¾L?£ô!?,ñÔ?%PG?´E¢?·o‘@5Gi@2gÀ?žx?5a?pC?wpp?üÿC@ ?«0‡?{“?ë +¸@]s?±¨?F\:?ƒ]?Ÿ‚?•p˜?‹Ze?¬¥©?ò°ï?ëÚ_?î¨?í2n?õ´A?êö?¥w?µ#@/€@³!?–ix?‘Q@X­Š@f„?®š?b¶1@¬c@5UY@ õË?å÷l?åE4?è3¦?òP?ø?ƒ?ðÓ¹?ó†$?âÀ?¬.Ö?©l?Ì(×?¶?Wù—?_h¿@^)@L?Œ(²?zåÉ?Σ?ÚÜÿ?©7¬?ˆ4?æË@ Ê›?¸GB?.Ž?vR†?²;ª?Åã@„Þ@{ÿ?äË?ë?f?¼ê“?È2£?Óvh?ÞÁ²?q-@?OL¿?Ùô?òw†?·p¦?œÖÇ?³ö¥?ÑAÀ?óÓo@M^@± ?²$!?§¡k?‡?ŽÞn@t„@îÜ?ž'J?v!?ÈΟ?íŒ?Ì?š?±ûS?ˆÙP?pZ?EÐX?°Øo?ª¹f?©™w?¥my?¡C§?(@O'\@_Z?Ò°È?k²é?® '?ÝH?Ú%?Ù²d?õHÊ@òþ@º‡?1,?.ôG?ˆ%ª?‚ž?§Ä™?«x‹?˜Žò?ŸIk?zï“?ñz?+„^?uR“?{–?»¿†?ÄWp?ù)@ýÆ?ÄÚ¦?®q ?‰Ïý?h_ð?Ôç³@,zd@†|=×G=‚»q>úŒs?(Â?(”•??äP ?åcï?ìö?ñˆ@t@z?¶¿?Y…S?„è?ÝÙl?ûK5@Eô@G[@-÷§@'Îs@ ðB@>^@×d@ÒŸ@çã?õSö?õÞ?xtv?nYê?‘?³û?‘¾A?«3U?ÛO9@b@`÷?ÍÉà5=>™"#?ØWX@A^@>Wà@GøV@;²?K‡s?VTž@6eõ@J“ ?ù;?¸ã8?´?ø?«ÛD?Å;éó”?Ï?‰¤?–Œ@:ë@ž%?«>Ñ?¨º|?„.?}%?É7v?ÞØ?à])?ÕÒ?˜üë?B¢³?Hú'?oÀ?H"l>ÚVú?Ï6?q{Ÿ?p=Š?y’Ï?‚g€?&Ï?¬½?µ_d?¨ûk>÷èo?O‚+?éV^?÷Åñ?£øÉ?©‘œ?Ú°Ò?ñy„=ÜKj>Óø>´Ñ +>š=š?>£»?j-?B â?AS=–Ëu=³çú>™íŠ?eg€?.f~?Zk? Êí?‰ì?{8Ê?¿à?œP?… ?/;M?ÿ>ÌÝ>ñC>€?·9´?‰×¬? ¤•>ˆ‘ +?1Ù?„Øñ=ÔÙØ>N5Ë>Ò „?®ã?rò?D®8?|ªr?§„Ã?k2«?Í_‚?ãW¿?€1Ê>j= ³0=øBÎ=&>Uã>‡=Ö>€>=1“=élÂ>‚^?†­?= Ü>Ôˆ'> «>´Òœ??‹?ïý»?µ¡t>økî?ʉ>òÔ>î÷r>Òs>úE?ªÏ?¦)V>µs›>­¼?žþ?¢ã?o„š?Xa?^ƒ>õb:>õŠ¹>õ·Õ?u«“?“Ãr?‘ô? î?… d?…T?‹Qá?‘$Ã?q1?!± ?‰¿8?æi?îɃ?õáÓ?¾ ’>÷ó >·té>GŠL7Ã?4¯?)Ô]?&uË?(D?G>Ž?X©±?ƒo·?zú£>lJ>‹?jšÈ?yÛž?¯ÅÕ?¾¡-?·U£?¬­ê>áÒ‹>>ʹ>î5E? 1?Rk?r“¶>¦8ö;§E>­‹¼? Ù¨?–·=?Ës¢?Ý£»?ãþú?›¹³?<òp?},>­ ü?JÐU?¥ +U?lTŠ>û¡?V›?œ“?–©?¡‘ƒ?€U“>ûö¿? (n?$ª–?³ô>·Àû>‚É =´Õ˜=bañ>“À±?¶ÍB?ÜQ@<]‘@"‹é?²Ç?6ê?ëLš?׉”?ó?!ÒÍ?[L?N +>&êŠ>?´Õ>™›>’u7? :$?<Ã?›zH?¡º">¯ø°>œ|M?é9Î@)Ã>ò6²>2>ê­{>ý³ ?‘˜Ä?¦-=?#§è>ýÜ×?¡ÒÃ?½Ë´@¦y@‡½?8ñ=ƒÒF>çpÚ?¾¥?Nú‰?]ê?ŒöÙ?•åM?1`>>þ€;>á0>äñ¸?yÝ*?  Z?r¿ä?HõB?Œ÷Þ?›Š?†ÅH?~úø?Õ—>kk›>¾L5>ÿ(¥?‡µ–?¿pL?ž¶Æ?‚+²?;wü>ø}e>ùg>ÿŠJ?I£Ï?‰¼ý?o?c½O?Î#Å@ÙÒ?Ínö?X·j?ƒU‰?šM«?ˆ&Q?s@?X?€)?¾T+?ÿ§‚?šˆß>ªÃ£>ößh?"òþ?åC?ÔÌ?gå?®9i?^Üö=óÙ­>êŠ5?~ò ?Xc<Õøˆ>ms­?”O>¶Ø¡>8³Â>Y‡Ê>z\ô>ÚÝû?(>Ï?O&=?s-þ?q®4?€Öö?l¤ø?B)«?j9>в>òÐm?1Y—?>•q?Yêï?“¥?Á¢þ?µuÓ?©ô?â?Å{?’t*?óÅÑ?¦>e?†÷?|?@?ÆÜ(?V|ã=\?šX@Åß?ëØÀ?±Þ?¹Þ?ÂUÄ?äž3@œl?½ r?§è?Ý<«@ À?à +X?Á­?7“b?Í’?Ð|v@äº?©dë?]š?C×È?n¥Ÿ?´^þ?ÐŽ?ñï[@ +·?×Im?Å3œ?aÖ?'VÈ?aüC?o±‡?A°Œ?<Ç?”°â?§|S?tÅM?W^?’ )?>e?Öl>?â¢k?,fU>ðF >ÿk?{y?më ?‚z•?®Yy?²7?Jôx?O‘+?neg?}~E@¯@ce?‚±#?˜Ûæ@B +@7°1?úÇ?ßá?<ÞÇ?K×?NRV?0 +?ó»–?ñ°_?ï ê?äE§?ÑóÆ?ñÇD@*@É^?~Al?uñ¯?m£?£èÍ?ï›g?Ìi)?Ÿýy?k‰¬?&?*?!?¯µt@ œ@ Y@.f?·µ?‰4?8?8/?\Þ¸?ƒ>™?s>?gy}?°ª¢?Äì¼>çE>?}Ã?‡C¦?ŸvÒ?Œ"é?„JÇ?Ø-×?Ú¥Ô?Ú§²?äÙ?‰Á?{ +»>”†x>·Yà?øpP?é+ô?¥æ?Flj@w`?ö­4?ÁÒî?Ä©A?Ër?ª]»?o >òS>䢌?³M?"ÍÁ?x7u?·#ž?¥³ì?”Éä?Ò¦4@ C?ú(À?åå]?Ä«€?¨qå@ê@(ãÀ?ñ—ï?«Ë˜?¯Tÿ?µGi?Ⱥ$?Ø|?VA?mâ?Û@lÓ@Þk@!ÆÒ?m‡‰??›?ˆ9?­_>Þ|2>é¢?²!S?±NY?ƒ\ë?‚îÑ?˜‡Œ?¬¾?èîk?Ù¬ì?ƒSk?|št?P61?\ˆu?dr?\’s?ƒEs?‘Hˆ?¶Ç??ÊDî?óê?Õ?“:O?i“Ù? j??ª˜?ƒ+@$¿@U=?ölè?Wî?Žå´?Ĥâ?ãCG?ñà˜?씂?ì5›?éø3?ç¸?Ï*R?Ä}¡?¸?¢?ª›?Ⱥ +?Ú:B?Œxf?Oÿ?vó??‚Ûª?LÀ?4û¢?'~V?ô¬@N¶`@c4…?œØa?¶Q?’4Ž?–™q?4E?Hq@ +f@L·@˜Ö?ÿÞ¤?Ð?é?Ê—À?H$ÿ?Lµ?{db?…„Õ?éº?¿þI?¬uâ?´9•?ãßÖ?²Þ-=¼Ëè>»S?ž?N%Â=s–$>ùÒý?¾qà?½få?Ã6À?×ñ?øqx?û @ -?漃?ÁFß?×?êÞ?â?è(?ŒYÚ?åþU@øq@$¹3@_"@ß?¶L??€K?Ÿ9Á?ÌYÇ?Å=È?ÈIV?Ÿµ‚?“?ƒîþ?‰„å?†AP?tj?i3?œ·E?—t¸?“Ú8?ˆøå?Hý?r}è?r.Y?¿sÈ?á?°?ËÒÎ?Á¯`@²F@,#h@+ß@ Y€?–"?/Ïì?ñ`@¾Q?¸Sâ?~*H?Ùpè?þ`?† +o?3›!?öy@+?ž¡ª?JÃd?˜#P?©:H?Áy‹?Ç«?wÄ"?Jf&?Á:Ã?ç^½@ ć@…Ì?ÒMó?±NQ?ë(@y\?ª +?vÑd?&CÍ?‰@5d@1M'?Ìž"?‹›?Ð&‚?ïd?‡çu?*þ?‡S?š™ç?ÅðÚ?ß©.?æFW?ïþ ?¿Œ?“¸N?ÐÑ ?þðn?¤¦Û?<Àa@“›@r¡M@<Ó?ó?G/N?rÔ?€O?ŠÁ^?œlx?²X#?¦Ûð?•• ?Á­(?ö•­?ÑÙˆ?¤H.@Ø@]Þ@I/ @/-¢?û&Ó>ýJ>ÌÃ">1?=nó@“?ëð?Á«r?µÁ½?‘Á ?¥yÏ?ÎQT?Àí?¨*‰?©„Í?½1Õ?¸| ?žºª?¶½@0´,@(á-?:Þ1?"AÎ?Š¤¾?ˆ_@@Q¤@Vc@&«@&f@0D&@,–ˆ?ñ?¸?ßE¨?ç‘å?æü“?Î?Ùß?¬Ë?~½x?Ÿ'$?°>”?ÿù6@ r?ÚÊ?¯ P@«@JÚ@@t?| u@u @KJC@@§”@:ø«@žÄ?¨dF?Àž~?øô'?ݺÎ?›8J?¶R?øš¾?èKq?Ž¯Ð?#?º.?¸\?¬?|Òï?öÁº?ÿŽÊ@@õs@>Á‡?Èä +?¨²?夆?ÿ›¨?çô5?ÙM@2¢ÿ@Wþë@.ÈB@ +ÝØ@J¾@=î@ {§@–r@ õ?ö ?Ãï½?+Qš?‹œ¸@#K@Ç?@ ¿–@JÉ@1N@;…û?Ô]þ?ÎG©@`ðÊ@t.?ë®!?“iŒ?عé?öX?Íûr?¼(ø?úIt@jÕ@&…@-6H@S?ó‚¦?üxr@ +N4@z@6Gš@&Ü_?‹Î?„?æû‚?î(+@°@\s?ù¬?ò 3?§¥˜?ŒAÍ?çK®@~P?ÒËÕ?q[¹?¿¥»@´,?ãŸZ>‡'—>möê>ð¦,>ó”$?‘)?­‘>Ôi>°°j?¡C£?¬Í%?ûDO@Ô8?¶˜?C ¢?{Ö@?”[ ?Á·@û|@ ~ú?íÔn?ä=V?ªI»?¦B[?Hù?±ù%?©rˆ?}ˆo?Ý<>dž~>øˆð@/†í@ME`?Ë› ?k­j? ãb?¾ '?…¬>ë,)?4@ö?µG|?®‰­>ê¸n>ê“Z??jí?SŒ3?ˆ¯M?š¼A?dVz?ë?CÞñ?‡]C?ÁÐÜ@->@?1?"Ók?ƒjÞ?ˆ®“?ÂÆ?ˉ‚?ÏÐ&?ÅG$?‘f¡?QMÀ?Žf;?ådç?ÝI?¢ «?™•Ì?ˆU?‡uN?¢}|?­b?ÀYù?ÒS?ý @'U@1ö@+ÉN@(rX?~Vù?ˆ^È?‘•C?šÓ?œ¼o?ŽW ?Âùø@ÆÄ@/;@³¢?õ$‰?¯1á?¯Ñ›@' @›€@&bg@+Ñý@ ãD?Ärñ?ª!_?L…‚?Tí,@&M'@*Á¼?›ž2?“Ñ+@3@+e9@'‡Ø@©ˆ@ á?Ñ7ì?ÉùÄ?×ñÊ?¾¾“@7çL@8;?ÅZ²?\*?—T&?«*r?–¶?V?3Ë?Ìš?¼…e?yW3?dQa?…‹2?ec?¯×@¦j@W@&õ*@" ?ñ>üƒ=?×íë?@è@¨ý?öŽ}?ë³7?ð¿$@ ‰f@ K˜?¬&N?¬9«?¬öÔ?±ãá?jš?f(‚?¿?çé”?Îå?Âb?ì†'@&• @)K®@ïB@ #Î?Î +?¾>öo·>ƒ-º?¸¿c@ +Óï?•ì +<`¹¨= +§=”Ä>¬ôñ?š¬ ?”ÑM?—\?^?„z¶?y¦x@5@ ª™@Pž*@aõ@#ì @ÒÚ?ÖÂ?¡æµ?“…c?o¶ã?nUò?bc¥?]Þ‡?qtK?fÙU?/é?(¯?Xº?f¦Š?tÎ"?}>Ã?EÔ$?*\S?«›?D»Š? –ß?;àg?=?õŒö=ù>üB³>nR’>ZG?¾Ç1?²]Ž<iÎ>ci?¾U?‘”—?-?<7r?z‡¡?Oµ™?$Il?gT@o=¦Ãˆ@‡9?ñÌÝ?• ?œû?“%?@z>²óŒ?Ö?FÈ=4_>‘A?MË?<¿¨?YüÄ?Çý>àUÆ@  @WS<Á#>C=g‰;ro=£»Ê>¸Öf>ñ|?‹K#?°?? ›>ÇR”;¿RW>ŽÝÛ>ÀÓ4>²ÐZ>¤Ãu>–ªÉ>ÝÚ>ï÷~=ñ¢M?ª¤?qY?š°â?µ!Ê?±â¨?²×Ö?Ã?nñ5?k{?gú£?d|Í?`û¬?Sn°?-uN?B–ì?•É;?Žšü>ô3?Ò?*1?‰M>Œñ¹>o$>~cy>†Ôf?©«?Ð|"?®=?xƒmm>h”L>J:Ü?6Nû?žÜ²?f£ñ>÷n?^jÞ?¶.>?¢:ß?sÛè?‰¦¤?¨k?ˆ|Q?¼ä>âöä=æ$K?ƒ×?8r:?Çê?…°?—F?t?Ü}?Ú¾‹?’¿?‡ÕÊ?u(“ÿÚ<ú?5½´?ð§?Û€õ?™¦`?S¥V?~ª?•ˆ_?{•Y?Cç?·°¤@ ¼‡?ÖÛ›?{Äg?\ý"?,0j?hê_?¤C?£ô,?­çi?ó?aŸ>ìxn>+˜>l9 ?{—?8?ãÙ?^6)?î:ë?×få?í¹?n)?cµ?bi?|Õœ?vyG?)LI?#ú–?K ?@f>çò)?Á?}4¶?}7î>Õ{å>Á½¶?KÇ=?Uh?¼³?ŽçŒ? rÑ>ýœ'=ô˜Ï=,¤>øMÚ?ó¶=¬÷j< Ë?aÈP?‹S?eR>Ý^ÿ?’²U?¦#Ä?@Z½?¹-??eã?P N?Tcè?M‹ü?#œœ? x6?YËÌ?~R?î©?ºt?áÖ@KA?Àþb?’Yì?X¾?ŽTô?I^?Š?‘‡?¿a‡?ÂÍ?´?k‘0>ÿ_õ>ÿl%>ÿ{?GŒ?’Ä?œ>¥?±îw@7™@Mã6?ú'Þ?Sß ??!ü?4$Í?H¬š?KÝ?ŸQ*?Ùfa@„@ 0?¶ d>,ôª?‚?€;a?€B{?€Ib?O%?Ÿ?ruo?µû"?„3—?Pz?9'I?t•M?H€=fh\?QIª?Ôx?´Æ?’É?”–Å?š ?‚…0?_*­?Pg?8:?wjŸ? ­ù?h>ä0?0d?€øe?Z?)µ?‡d)?Áš‚?y¨ª>Ñ›~?5€‰?+? î'=}q?¡¾Ô@ 0º?ý'í?Áþ ?ÕgH?à-ž?ô×½@ÎA?æ–¥?Â7Á?¨éü?–…ˆ?l¿¬?Hä?ŽÇ/?¥4­?ÅT\?ç¨ ?ãÒ’?ÓØl?Äïy?µ9?ÕÑŒ?ðµ?ðTú?ù{Ÿ?’&ù?- ?ÛžV@oò@ OÕ@] ?¦ö?ƒÑ8?Ú?xxÏ@ØQ@­ö?íáK?ÙùÐ?‘ˆ’?‚=î@ îŠ@˜ò?¼(K?¨ð|?=ðï?87m?DÉz?H®?=Æ?6ëÀ?Aõ‡?0¿?Y‡Ü?bEÅ>ÿ>áe?1šE?=€?ý§+?ôv?‚«;?‚Ÿ?†Ãî?Ž²?\?¬-¬@ÍP@£`?¶¹4?ÈÎ@×_?ù[?Ú!?Úr?ÑÕá?Á.I?¦A¸?£Å­?¥K°?Õêe@ +¼Ë?îä¢?ćI?‡_Õ? L?$m?=È?¸?¦?É–ù@¸S@ b @'m?>#ö=%È°=AØ=Y ?°ú?ðy°?l&?!•?@ô?P½(?8@À?(:o?2Õ¹?:Þ?û¦†@#x?êPÊ?ï÷‹? 5Q? @VÑ@zâ?–D¬?›Ö0?âmÁ?Óñx?Øä?•†i?Åå?ªV[?gå?F"d?ň?ŸC§?g ?l$?Ú‹x?ê/R@Ÿz?Éÿ¾?xâ»? E?Å"ê?×Ûz?óÈþ?ñÇ?æ{\H>å”/?eõ?ä Õ@¥@5i@÷?ÆÈõ?¹ØŠ>bFÛ>Éj>Òò–>ÑùÒ@«@T}@‰¥@€?"aj?;ч?â_?Ð|?FÌ ?==x?HØ?e¶[@ ä€@a?΀F?¬Ža?iÆ?v"G?ƒ2§?Åãi@v$@-‰@CrB?òÙu? + ™?fÊ"?ªeV?nç?ß>ÕýÍ>È/‘?¾ þ@ ˜Á?óé2?Þp?Ç4?¾ìP?Ä g?Äp5?úT%@ ¹?ÊwŒ?¯.@p¡@ üû?£üð?‚Õ>?×ȳ?ë?øÄ?ý*?$è$? ®n?¼í?¾ãß?¼›M?·Û?¤G?ìÿ?äß«?믩@ò@"?Ñíî?ÈIÊ?¥ ?¨~ô?î›?¾Z¥?©¯³?¾ìK@_’?éö»?“ ?†ä¹?Jå«?‰œ‘?õ‰Ö?ç,?Àvê?îÇ@ •"@°Ó?Ã*?±¬é?˜ï?Æ}@Q?à†d?®(Š?À™&?Üa¯?¦’?G`A?ŸßÎ?à¶?°55?Èñ?¤ÐÔ?¿8X?Ñ5.?áú&@@°Œ@„&s@4Òl?êÎ?´W”?„:?‚¼?zŠ?st?kS?gO?_A@ œ5@4³‰@cÙ?ýÖ?²§G?‰Üä?«jÉ?ÂáX?Ãj“?Á¤Û@gÊ@+´Ä@ãÍ@T?~q‘?pãÛ?Ïë?Ï\?LãM?\…Y?Șó?é©ò@&]l@6$õ?Úµ?™c/?²¼[?À‚Ì@ ßç@!ËK? ?Cn‚>ÞÕG>qüZ>ûD?®–?è¿?´Ï?ôÜ<@"Í!?½Ç&?ÍS?ùE@¶Ø?«¡J?T´?¬NW?Ê ?Øf?ßLä?ŽA?J3?Ñbý@ +F¾?ÜB?¿ë?ÙÚ¢?ê+?Åͯ?°$Î?ÿú@Zç@â?òEÇ?²{)?~8L?˜X­?­–×?•5³?}ôI?‹:ª?šåÍ?Gt`>†w?ÔäG@]Õj@s£?Wù«?D*t?ȸ?g“ù?½ÓÇ@ά@Wó@,5 +?‚^+?ƒ'?|ª`?¶µ @.X@Vi?çB×?äND?áWš?Ù°Y?ºÐ?Ì@5ý0@.TN@R”@DF?ïüU?ãªØ?ß¿U?ë…K? Â? /ª?ú ª@mþ?Ÿ¾ª?™*-@.1@(7U?-Ö?Fá‰?Gºþ?8XÔ?€Ç ?ˆuõ?âÄ@M)?¹¨?‰Y?‹f]?‰QF?À5I?÷»(?üÀ!@׺?â,Ô?­Úý?•^m?F¿Ê?‹ý?Ó€;?´ÇI?:ƒð?|Tæ?ø‘?íï?ºL +?·?¢R”?ª¿±?Êt?À¹…?ºË\?½ÛË?`YÜ?z'c?@¥ô??Úö?‡…P?“1E?ÝF-?öÿñ@hx@ `@)g@?©»@ Ñó?ž$\?hÖ€?Üà?2 Ð?|D»?[íï>õÚµ?)Ö?¨ ?ÒüA@C¤@:Ò?—Tœ?šå?ôô{?ôîð@Vy@ ©W@‡l@™Œõ@A]@²1@^ä?îµv@ òJ@pÈ?÷üñ?ÇÆ?´!?Œœ#? Zé?½?Ù2µ@fã@ÚW?ŸlÈ?”‘?}d…?v×?{AQ?ˆuå?‹ì"?‘Ùº?P¾>ž+l?ÒϨ@±?Âí??=Å?«kÏ@ †s?ód~?”Gv?©Ô?Oè?;·@•@ð?Åz?³#†?ÂRž?ʸi?‹yë?qÓÖ?,ÆZ>ïQ?’ Þ?ï*?è¨?â½?ø%C@|@@ >Y»9>œ!–?(¦º?WÞ?¡Ð¿?²Ni?þaØ@Y.?½.(?0½ï?Ÿ—¥@9@üâ@/Ða@¶À?¨A?¢ÏÄ?'o?›Ð@-@r?¸Dœ?Šç1?¸ Æ?Þz?·J>üÈè?`Ð?qk’?uP,?SWÄ?JÅí>7—D>B»M?wýí?‡‘Ð?¶_Ü?ضd?Üâv?á5?ÑÖ{?®äò?½ô?Ñ?ÃÓ;?jÜ3?hÂZ?ízø@h#@Iø@`9?¿,?7Ú?XǤ?¶Cr?¯Zq?­Àò?­©Š@:(Õ@5‡k?¥ºÇ?gf†?—¯ó?­1ó?Š´L?“Ø?c¶›@ h@S@“:?ý*_?MTÝ?¹¢?°î½?åéô@ÿ„@#[á@0 (@T®@^#õ@c,@Y^î?åµy?Öé"?þˆP@ +x?ôÄZ?ÍDê?à˜ˆ@`ô?öX’?èê]?åÚß@3Á@0_'?ÄÙ\?™µ×?Î%i@5~@ +ª@Ée@øo@\y¼@a}¹?_Ð ?<­(?¯·^?ÃsÄ?£ Z?Œµ?xv>ñ¼F?1«@yH@$K@)í„@!ç ?Öåb?«=ó@¯@&ïø@Mm@æ?ôy/?Poç?[9þ@ƒ@‡¿@Adñ@#Ùˆ@ö†?ÿ¸??Öôù?„—?•$p?´À?¯JÙ?¬NÚ?¬dü?Ågú?ª?äR1@é ?â›Õ?¥Þz?¥9É?Öò¡?ëø-@¥ú@Àø?6·? ½Í?ÄÇT?§ŒÉ?Æ'©?èæŒ?›>òÍæ?3>E?Â?‰›Ã?¯Ø/?«Äa?k Û?kUü?˜?¦A¦?!—Ÿ?#q?Ò @Å«?âà?µV?š]&?nâG?hôv?iß`?p—?p‚†?pÿ?qmÓ?qä:?r\Ì?^w_>Âþœ>ò†i?sà +?pù?½_?%MJ?‰ ‰?[·>¥ÿs>Wï@Ï@Åš?kµº?E½Ï?QÆø?D‘‡?n–y?VZ×?±@ƒ?°)±>û8¥>ä'K>Æ·«>ÎÑ ?=[“?f×È?•äO?b~>õŸÖ?;§¡?tsî?—Öb?­4?Ï~>¨°{>ÉØ>ë]Ú?s7?ê>g d?:±û?ÎS ?º?Ÿ'›?€Ùž?…?…F`?RÔì>ª!t>¾öˆ>¥5?a:?Exã= …=_KÉ>D´Ñ>¬­=oCæ=b‹>ïö´? ´?“|=ÃŽê=!Ò6>‚›> Ù?µ?iO=? ~U>Ò3 >Ça8?e*>•Éà?Ž8q?Œ+÷?oB6?oˆò?vÌ>ð=¹(?Ò5?Uæ?“ú{?®Us?(Û”;˜T6<(@=1x>Í“—?ròè?‰f¯?¬f%?¨$ž?›$d?”œA?‹¦ ?´r?nï?]?¨>{>tü<±Ò|?np?™E!?16¾>éeã?e©”?ŠÿY?’b'?“Ií>ýœ‡=‚U1>’»Ð>÷i>$M;–‚Ú?%”?·Bª?f¬l>á¯>ã“ò?cœ\?ŠªÅ?¿¡‰?‹ï >Ùª>_9P?ùï?b>Ï%¶?1?—¹l?¢Ä#?áÛ—?á‘Ê?ƒ?!Ý @¦@þÛ>þÛt>´ªÊ?9±?M™R?f!`?kàƒ?fÓF?m8Ï?>ü_I>ôÍÅ>éÜ"?Vè?zâÉ?h>ÊrD?ùu†@,;?¯&?%È»?†er?¤uP?·³ ?Ãf?ñ^@ 9Ñ?ÙS?˜¿?–ÉD?”Õí?¤Ñ¥?Ã…?œLi?@é?‚-”Æ?ˆ?ˆÊÿ?|—?|¥o?|«r?XÔ>‡—?Ôæ?Òñ.?Ãôø?|÷·?s+«?ò??£„?»?¯’Û?j7?>ýS›?˜l?óôn?îq.? ??b>þˆá>ý¤?†F?†úE?o>ýÔ+?®ƒ"?º_'?y">þ‘?!,?/¸ >]²>ÍŸ?¥y÷?ÁlH?¬\?¦pn?¤pž?¢m–?)ÐÈ?éô?¢¡F?Èkº?Œ—‰?s¹ò?¬¢t?¿"L?¿,?¿4)?ƒû?SfÎ?‘Ö5?ªÎí?ÖæT?ô—?­_c?|z=?xt&?toÀ?y®k?‡ý?†®W?w ?Ïà‰@[Ã?ð8?Ô1É?Q{>O0-?ù¨?w÷«?¢¢?ÈSï?–Ü#?Lv??• ?+ÎT?‰õX?µwA?œ?e/,?u?€RÒ?G4v? gñ??¿2ë?¿›á?½Ù¬?wùN>å3¸>¸ín>°ðþ?sp~?Àóø?Áj?Á-?]í?¼?Ãÿ?Ë÷?A¸?€Ù>?_Ñ?­²?f®? R?U’Ë?V?˜¡°?±…?;±=ÆÏ?Ìü?'·?‡•x?‰¬½??…O?GC?QX‹?…‘?U³É?3ƒ\@ M£@OÉ™@òs?òX¯?“º?*êU?¡–ï?ÇÓ¹?ÀPM?Âmì?aºÒ?ªì?› ˜?Õ ?@ ÅT@O&?û»†?Ö/Ø?3R¸>uŠ&?‘´ž?ÂÝ”?n>*å*?îŸ @K?¯|»?‚ V?²á?½•1?cÜ„?O©?LÞ?U{@@:@o=?Þ¡?Ú£F?¢Úê?œ‹È?#*-? 6M?†Î?fÄ?Ho‡?OéZ?êåæ?ìÎ'?+?r?3pÀ?ôÝã?ñu·?«¶o?¶æ?ëÂ?ÔYþ?v%,?k#Ý??5G?¿B˜?µ|?ÀW?ž˜à?ó?£Ö#?ÕŒ˜?µß¥?XÅô?pÞŠ?Ž`¦?Š}Ù?z-?œÏg?Áóû@ +ÇU@D{µ@å?­[R?ƒ +º?)Å?¡J€?âC ?šÎú?Bø?];&?yKº?Í&[?ÿk?¬oò?}[m@)v@O"?ÿmî?Ïmÿ?ÜöJ?ÙýŠ?ƒâP?`pï?€!?ƒC?ê&?Ž ?ÕSP?â;?¦??¡»?r9î?mù±?ÀæƤ@m@­‘?QÜ}?  Z?¹÷Ù?Å +Ø?çYv?àiÿ@'ò@ u?å2?ä?§—?»×†?þ!Ÿ?ðç?Äô¦?³[~?CÄ]?L­€?rÏ?ƒM?­X¯?Ý/<@(þ@®?>U6?]?˜z?˜?¡>Ü?Ǥ„@Vÿ@G‰?üêa?»ƒ?ƒ?{l?nN²?Š‡?“Š?>„?Ø?“"K?œ1:?¥«®?¦Ós?ìf©@›ã?¦I%?Ž€¸@´Ï@å?®‹?”ÖÖ? ã?Ïù?>Y‹?&Ì?„Ü1?‡B3?Á?Ã$?ÃöÃ?Á²Î>*c>“Ë.?âbÉ?ÒW’?C?b?~ûÙ@/!»@>ü?ÿ?²Úù@(¶h@ò@¬ƒ?é'Å?œ¥Ë?¨8ç?Ùp/?ȸ?gù?­÷ø?ë¾à?ÖÏ?™‹¶?Œ$T?~A?'Qh=‘X¢>ûMå?ˆ“?³Öû?íÑ÷@7m@™£@¸!?Âò½?ÂêV?ÂÞû?£|?ÝÒ?Ó#‰@öH@éC@ ys?îI?ÜvM@-›@t@<£?ᘂ?gbà>M2G?¢ÐÂ@†Ð?Œh ?i°?V‰?hz?d{?\h@ +0n@3¤?èŠQ?éS?.ÖË>w ç?“Æ?À7?À+Œ?À$@N:@}ƒ›@1µ?Êük?—n?LJ?,›Ó? ?²!?Õš?ðwx?ÿgG?Ñ^-?¿YÎ?Yö>ÿ#!?‚ÀD?ªÄ?Zïx>þq?g$U?”S? 8M=òúó>ÂÅ?ÌM?Ò—×@@‡7@ ÇÝ@ …Ø@ ëõ?²Ûs?+¹¼?Vzs?}ʉ?$£H>oÓ*?²Y0@9;°@ á¨?Šs?†¯?‹Â?™q?¶Si?{)û=j±Ã?&rš?ôý|?ÿ~b@}Ú?üÑ>?»‘?ÒÐÏ?üVû@“º@X§Þ@@¯x?ݦW?òß@7‘Ô@3sV?ȯ‡?Ço±@5°=@9ߤ>Á›Ý>]˜ì?»ù=?¸y»?÷Óµ?ûò?1ö™?8 +?Ú±2?÷ª¯?ö¤?ë„À?ÄxM?»Ìý?Õò.?á¬q@,À@õ?×–?¯&E?ì÷ @1?Rß? Ë?J|??‰R?†?y<]?À2Ê@ 'w@ !(@E?çB\?:Ú6?‹5Ð@æ?þÄ»?ºI/?±Ò;?Z0¶?_|W@,³%@4^!?¹ò*?¹Ì@UÓi@Rb?åW¯?î†?©,0?¡A?àÞý?öüg@×#@ëÞ?¨~ñ?vŸ?Ð.@—¾?úò–?ÆÇ@½Ô@RÃw@ž?d¶?|9¿?¨ßV?¹êk@Ýw@mÔ?»;j?¶ô@:d@1H? +?Š—?Ò\…?ä~@ pb@P?‘{^?G‰@'Â@xÕ;@"ï1?¢å»?†RK?=‘C?\ð°?”UÑ?s¸?2q?¥ì¡@ q•@ ~®?ºî,?·:?z{]?r3n?ÎG?ØGi@+zŽ@5 @Ç@òŒ@ŸÄ?í¢–?â]ô?ñ ?«§°=¤ýþ>ö¶ê@˜Þ@¤n?ô§ƒ?ø`_?“•>?—v@8@# «?—öË?1pé?) ®?!Ñù?„ëJ?Ç&ì?¶s?‚Yé?u?yNÈ?Š:Ð?•Ç=?‰Ü>?ÉÊç?Âðb?ÐËm?Ð@£?Žþ;?ms­?vgN?ˆ4O?]Ð?”>óat?[?("ã?gQ?8©f@ @W@ôò?èš?ím­?Ôd?ÅÆ?·Ë?°‚?–Ø ?kq?J_á>úÎö?EÊ?j£ë?j‚~?•øÁ?…æK?n¿g?†_?˜Vh?Ÿ¹?®y?¶Û6?¢h>ðK[>ïâ>z>Ó#0?ÄáÒ?¼á!?ÁÞ±?ÐQÑ?¦'J?†·?—°1?®¯?ý‘ @d; +@S]”?àQ3?Û³p?®õy?ˇ?Aâ3>çp?¤eÑ?刷?Ígá?¶¨‰?²­±?®°ª?³Q?¼º?Å°Œ?×ms?ÈWd?þ7È@ Ió@ O@”j@Là@ !I?ù¥ @68@{@ai?ÿÄH@3ÊÝ@CGª@Ã^?ÂP{?ø #@>õ@5Rô@34@{]?žÝÙ?¦ë?y¸?;¤%?¡Ìý?Ý0?Þ `@ç@ª @'Ý[@*T?ê#0?Î+Â?øBò@Ú—?¾É7?d-¾?‚{Z?«&??¯D?͘?¸Á3?àÞ?ïóñ@¿Õ@' œ@>i,@bÇÄ@R(@!–@ó&?\T…?èl@ ÔQ@7¾@q«È@|7­@Ø?ªT?‘r§?lT?;•f?Þ$w?ã¸í?­Ã¸?¬^d?Ú+•?æ³?æ=Y?æfÚ@zE@î‹?îú"? ”c?–?†J?—Õ«?œ:‰?–D?ñçÊ@ D?üz0?Þ.æ?åûÆ?ç_Æ?Ýk?Ýþ?·ü?\t?42À?>A&?JÐý? :?ŒP>ì«Ñ>ì¹?`\Å?Šh~?»m\?È°?ÈÝO?¾°?€T(?©¤>´Ç¢>"f¸>±Kl?'g÷?J×Ä?þ?ß>¨%õ>!zÂ>û0?ÉØ?öYE?ÚÏ1?µ6G?Ëq?yOÉ?xIÏ?ãu¬?ú9?µ¡Æ?­*¶>º ¹>ìÓÔ?½$?»-2?O –?[gG<]ÉL>`°Æ? :K?ƒ’‚?nŒ?9ü~?±~þ?u‰<£V¬>„Ž:?!«?Cbê?sUî>ùÇ>7ß[=îðŸ=Y±?:¬?Ý>ÏÁ×? +[Á?‡M?˜Ù=?ª›¡>ÞN:s4? +¹\?Ø?èŒ@QˆU?Tßõ?ð>íôÂ>ž†î>‚=D=ziz;HÏ=Ü?žš>zw.< 6`=çœn>ôÊò>3œÁ?«€?d^W?q]?o\F?o¡>¿F:>¼XÌ>‘}ƒ>b-=°a=<ÝÑ>Á„+?3Ð?©ã}?ð×q?jK>ãZ°>™/=îO¸>/">…WŒ>ÓÛÔ?5Ø?I»ê?t,Z?lØS?SÊ?X'^? !Ò?Ó&>ôÓ>õcÑ>oH>PÅ >Aù•>3-E?‹×]?¦ +p?šªj?› ?Á×?Õ>?}ó?T?Y>÷^í>÷{p>÷oÕ>jÙ=*>=ìš=n >/ˆ?3Ì?É%Ê?¶]?‚í?y¯X?n6ù>m?ƒ­?A‡?={Ò>”Ì>Ç??’e?˜'?»mO?ºýf=÷d<=«ýê>î¤Å>ú@O>Pá=§Í?]ýÖ?y;ú?ÉÈ>ú«?Ê?^Ü?w>úêJ?eÉ?DQ?xç>û&R?’Dc?¼qñ?ž9 ?“¥æ?渗@ ßN?Ö›²?¢O?±oÃ?¼É ?\ù?nß?)'=ìÍ:?–Ûü@'X©?öv~?`±Ç?s(\?€û?”ø?ºI?ÉÀ?òp’?̓”?|}¥?`¥5?Ef?š +>¸§w>Çk“?(+–?7s?0ƒè?4ŒP?8™~?KÖè?¢† ?ž1Î>Ñ_#>Ìã¹?*îX?B˜ë@+×O@*v„?}gä?}L?'ˆ‡?9?î›·?õzR?‰j?~èi?€µº?‚ïJ>/_=€í¨>èÝs>þö=vÒu?I“ð?xQ?’´l?—f&?¸Bp?¾È4?–ú>yúG>îjq?¾J>û‰?~@?«ôõ?Óêw?ÝJ§? „µ=°|×>,Ä >'fî=ƒû<º÷.??¾+©? r›=ªïà?éÆØ@,Åq?íƒ ?²-¾?öTç@9@’?ÿÂ1?–&Õ?þþ?\ó?„a]?ZÈâ?p?Í;@I‰?¬[-?ü…?7ÓÆ?Y\ë?iÜ°?u:a?€UK?‚ `>óƒ„=}é ?Çï­@/êé?¼™û>ÕÑo?o?õ?@±B?3Ïw?Œp?¬ª?Òs5?ù`Ü?[à±±Rj>“Ž©?9üÁ?vò?Î|?ïÕ©? lÊ?×0?²-Ê?ÂÒt?ÂÝ¢?ÂåÌ?Âî1?Âø{?Ž6?‚­?$‚?µ?gzH?qyñ>SaÓ=Ø[?Öå?ø8F?·Ø¨?­™?«’î?©‡ ?@âK?>o”?ƒ(¹?}èˆ?$³Œ>+/â?'Ï?U½@tÛ?à%?‚¼«?‚Á?‚Ä•?µ‹@‰h@!pð@;²u@#ç?áö +?»7Ô?‰h ?Êè?¦dk?÷W @(ÅÜ?ùß?š{ò? ?ƒ{?èx'@9«@ ¡?û%‚?‹‰£?²Ã?$‰Œ?^,?d!H?ƒ#‘?’°6?¡›$?K©˜?,KÚ?æ?:@22?–ä4?ƒ6%?«¾?­÷?è…ó?ëk?†ú#?ƒ?Ä ˜?ÙV?¨ç?¥_C?2ïC?Zß$@Šä@g?ƒSP?’[??Ð'?Ê ?¾1?ŸBâ?½¤?UX?Åî?š«Ê?ßÌ?Pb*?¿Ú?·rÄ?éš?¸æ ?.p?–ÜJ?šƒÂ?Žá +?ƒa’?Ïø2@aô?ËB?­yd?¬ó¬?«“ ?³Ã3?«»ƒ?4ã ?`T>•Ä|>J”=ÆtR=…cq?™g?uÔ@6pê@C6®?Тˆ?Å!?’“~?–Ø’?ç#ª?èÄ~?“?–‘‹?œÝv?©´U@w^@¿ž?Äçî?·==?ƒA•?“_O?ÄÜ ?²=f?ƒ8G?˜FÁ?ÄÎñ?ÄÌŽ?ÄÄã?Ó°?äí‰@ ]@_(™@%¡¨?Ä­¢?¤Éö?ˆ§~?è @À?ë+Ä?¸ýø?ÞÌß?ö +È?€¸_??¨CÉ?Ô7D?îS?x'@ +¥@#¥1?¿¯·?“1­?çdŠ@gž?àNø?Ö‹?Ç Ã?ÎXĮ̈?ý¯?‚?Û?¾$@"Áæ?ìøð?ÖÍ?‹öó?þ(?ÇöI?‚¸?¡9í?ÍäÁ?¿}_?°‘=?¦·5?–'?ÁŸ?êÜž?Çßš?¥%?æÜ@øM@q@)5Õ?Üî[?RTÚ?½*§@¤P?°³?]V?Å_s@‹?þ?S?ÿD?Ø>ƒ?»½>?”Ñ?b“?¤Û|?µ‰?±”?¶yÛ?²Fè?«=™?…æy?^¢2?J?Ä÷?‚6?œTD?¶vÃ?Á‚@"ëÖ@5 +î?ëz»?ÁX(?ÁP„?ÁAŠ?C%O?È@?Ïþÿ?þ©w@T%×@iß @)„º@é?´S—?’p‰@Åý@!V@W…?ø´Y?抪?á«Š?ä/À?毠?å¬?í}“?¥¨?€1\?¹wÙ?Êœ‘?ÇùÐ?ÅUï?‘åÞ?‚[Ê?…6Æ?…I€?3wº?B?;Ⱦ?@> +?ßË?(ê:?ÍÎå?ÿ]¡?§õö?=ƒ?wÛÐ?jŽ—?™ü8?ªDš?ÓŸ?îÕñ?ù¦ë?þ³A?ÛóØ?Ä@<7ø@{Õ7@C4Ž@ñe@.VÈ@8ùq@H¯?à?é;±?ä8(@„Ú@<#‚?È2 >…d‰?º ý@/§@ ¾Ì@æ1?þap?½ãN?¨ôž?†]?¬â*?ù"¡@Þˆ@ Y@ +£d?Ð’??¡™>t’?HÌ@*›@¢ƒ@.ù@&îê?½¯?Ægm?ûÛ—@¸¯@*¤@#pÂ?JŸµ?R,Ð@GHÛ@OšÆ?ù,O?ù/A?à +Ì?Ä5/?¨–? OD?¸_þ?¼ˆ@#žÚ@.í?¥Øþ?}ò?­Ñ?Ô%d?Ðg¯?ÕKB?¯ÙÎ?•_#@.@Nfñ@Ciõ@9¥²?Ð~4? ø¯‘?yžÝ@M}@ /d?„)?ž¬î@ ¯|@ÃÅ>÷ôù?ú;?ö—·?óLÃ@Wá“@^±?ûõ?d&ð?ŒoØ?“‰Ô?Å°Ô?×¾ô@0K@?¯ù?ð°“?'°?«Ý2?ÃòX@üú@1øÖ@Úù?üÓ?Ö~ß?uÅÈ?—?°?åô:?í¡@$^@ +’t?õ+*?ø¨Í@TÚÔ@]m÷>òø3>j›Ú?F?eÔ?qç1?t¿x?¡ e?ªð-@'l@bw÷@)ÍË?ßl?Ñd`?¼ÉT?¶và?¶` +?žàR?½?.;È?žI`?¨ë{?÷Ò?ól?¶ãÒ?¯±T?‘Úš?“†¿?Û(@¦¦@=ë@ =@è«@&¯e@®g@/Ê?ÕjN?Z©r?Zc&?²(™?Ð^q@f®€@^ù*?Ü_?ÏxD?ü¬I@ ¯T?ésÜ?̧Æ?£Zx?Œ(…?dfÛ?*q?“«ë?ý€…@oÈ@‹£@ I@ +­]@§l?Äïµ?ÈŠ +?ÌgD?ÐMy?¡âí?Œ¦>ÞL:?Ý +?…ö/?NSÆ>ì¯Ã>È+=§Dö>!vÙ?À¡?Ðô›@"\@o•?ȽÚ?°‚?«u>?¥&Ú?‘à‹?k‚?HÍÇ>ê×+?‡4?ÐN˜?Ç·d@ów@ÖË?XÚ>A/?“Â3?„P?Ò»Ì?ðl‰?êo†?åÓ_?¾L>Âlÿ>±g?˜ï„?¡Ù¿?Él÷?Ãÿ"?²{/?®-²?¨2·?¥-Û?‡T>ð g?=›O?µê?ºO +?Mt½?;Ö?¬L>ç¦?ä@-'@@7Ë?Ýþ]?ï2@}˜@ ,Ø?wõ¡?€“}?ƒH?”—Õ?óRL@ ?ùÜ?ψ$@ô]@„*%@†½ª@Xn@L@#W¾@#ªò@3&:@C"i@+´Q@Ð@ÍÉ@i¯û@sÚ@. @}‘@z~?úÎù?Ð+õ?¹jõ?ôöm@q@Mê@Èj@Î@©ô@ªe@‚2¡@ãj@jš@[Uu@B©?d% ?‰ +A?¼êñ?Ï Ï@RÅ@KÁ?öDé?ä? @iC@3ü\@GÍ@VKí@8cD?øúi@áÜ@8Ëø@C“?ÄÒ;?ÁŠš?ÙMÓ@ ?ù{a?ÆÊk?¶`H?¥éð?›¥Â?²º?­9?àÅþ?Üf@? E½?œm¿?àSm?ÿåÙ@â¶@%ñÛ@æS?ùÃ?â ?ØB`?ÌÇH?Š"??¤æ?žzÔ?¥áa?®¡ ?Èùž?éMð?Æà?K?r¸Ð=ƒ!>êû>ëG;?£¿?®y?@4r£@56?“dÿ?!#?rêa?ªÇ@¿Í@7};@JÖ?ëÞý?§®@>Á±ð>èJ¢??ˆ?CY«?‰-¾?¡%\?êSê?æ‹_?n?ý?f ù?¬Ä4?Á*S?š>ü?“§?wØ#?x7/=1=—¥P? W¿??´L>ŸÐ_>€ÄJ?Œ5Î?–r²=¡®X=m¶Ñ>óz2>êåÅ?HÚM?R5˜?_Ö?#Èž?‚5©?S¨ž?N>þåç?ñ›>¨—º>k¼>– §>¶íª?ur?Ë%?Y¼?Óç?YI>âçñ>ŒnÐ>ÜØ? +‰>xQaw!>#¶=£ø= +Ý=EDþ=÷÷º=½Æn>… ? + >íó÷>ª©©>þŠá>Êúd?Ó6´@dÊ?¸O>=Ù|>³J×?*j?%ê§>‘à‹>Š>#(+>rwæ?o\?j¶õ:)€\?Š¨X?›½©?þÄ>ñJ?F‰?±™9>ó6=š@?ÕX?hóÉ?^Âg?Q1@?‘ÿ>à ò>Ï79>óÚÅ?Ovã?ÍY¾?ª¤>ô‘“?#?0‹?/؉>õ=(>ú"?1ù?-kÅ>›N>Ÿ a?gU?vLw?E¥¾?4ÿ?,°©?%K ?O?¹S?Pd0?£ê>÷­·>÷¶?ñ4?®4?¨˜?¢Þf?T¾ >Ê ?Ð?9¯÷?ä¥>æm¥?8­6?“y[?|{?!tõ?4‚2?;§?Áö>Š’Ø>ø‘À?¬xâ?™®z>ù­$? E ?›þ?œtG?.Ä?$À“>ú"¤>úÞ?«B ?´d?¹ÏN?ºäò>$5þ=ª>Ý@>ú¸Ø?Tp?ae?F×?8Ná?ˆ…?“Ÿ?’ j?–'·?Tj?ƒ{M?àÍ? ??Ÿ¤^?˜:o?V¸?±Å?··?Ö™f?~nC>Á^s?=*n?ˆ¡Ó? Ø=Ve¤?#Ù?·¤*?¢."?~tÅ?WÒ?¿Á?›?c„?/D?bZý?‹È”?É\i?Ž§"=*>H¿>Œ> >üãÔ>ãÊ[>„{Ú>È3?}¾?néâ?$¤"?HÁ]?Øÿ ?Ò"?DÜ.?Rðç?Ÿ¾P?¤¨^?}ˆÎ?·@X±@z ?¿ +?ÙÅ>çïø>ÝÐœ?¤¡6?¦\Œ?NÈ?=²×?çvû?í#ú?®ƒú?¦€T?s%Æ?p„?‚`½?|ˆé> ÈÐ?Oít?h¨p?/á?1Ï7?Öì.@â?s¥k?¾x?“ÑI?± ˜?S‹?Þ~?[â?€½°?!êz>ê‡;?̤ž@ö¹?·Z?5@Ú,@7 +@£¡?Õ>7?¹O?¦Qd?_ž-?1® ?J?¼¢ø?¯Åº?±]y?zÛg?,‚à?a™Ñ?‰Ô ?y»¬?dIü>ØÎl= æ>·4™? 1j?<@?Âpò?k>÷'T?]}î?š†q?‰ˆ½?kàˆ3?mœ?´§:@‚æ@P@™?óà¬?+à?¦ ¢?À' ?˜4?Fž?L…?S ?Áp­?ß ?‡£ +?A}È>ç2>¡Î?’Þ?ÂI? a?s¹?%ût? *?'™?)u†> í>A'ä?¸AB?êÀñ?™}Ê?Óá?©«Ò?¶úË?±I>?³t¢?·™Þ?»Àÿ?0,|?í*?«\g?¹6g?îO?òB?Ú+Ù?Ï…?O(?G}ë?’üî?—±V?ê9¦?êô!?öo?±?¢(?£_?‚aû?€8Ì?³<>ûa¨>šit@2æ@-!?øa™@3@6ÿ×@3H…@fB@ +L4?ƒ©?‚™x?‹ µ?¬8Ä?ôÉ\?Îë?‚Ã@?Å;q@#}N@®m@# ?èÒ?y·Î?‘l?  ?…$?C:?£R¹?éèf?äÁE?ÜH ?œÊŽ?^®Ú?µN?çH?ÊEŸ?¹E/?­ïÞ?Ÿ¡Ã@ Òm@D§R@K@‘?_ºØ?¥ƒ? •?)ñ@!('@6¥?e†Ž?'á?»âö?ÄÖ@l£@8??žÁ?Gœ¤?Äå0?Ç4~?Ø]K?Æin?VGæ?€vÙ?ìÕ2?æ€B?ÑäÑ?Ì}5?ä.ç?Ï‚B?ƒU1?‡yu?Œq?›âF?Åm?Áãd?¹và? Õº?ƒ[·@Î!@Pw]@ŒÏ?Ÿüz?¦ÌË?®Bä?¬Ù?©ÿ‹?Ÿæ?Ÿ ð?Ž¢E?{Âu?¦ód?·Ì@H±@:EM?˜¾?%ßí?’ú?Lr? ­(>ãÿ7@ F@žˆ@ub@t’@|7Q@z?ƒÇ8?$/?/ƒc?>Ì=?ƒJS?óü?òÜ6?ß2Q?‰»Û?ƒ_î?*C€?9{í?D±?l°>?¨L©?¦iô?›cö?Æ¢`@ +ð?éîü?µPò@f @9¬@.Í]@ “@N?Æñ +?¢B¦?ƒk@F@^ƒª@2q?Ĥ?‹Vø?aV?eƒÚ?]Â_?œÇ?´ ¤?æH>gÐí?š ¼?Ç%ÿ?ã^Ä?ê17?©6E?™ñ½?ÀÍw?Íʈ>ɵV>bˆ>Í¢ü>Þû&?±É?¹í×?ÉÊ +?Ç}?ÿvÅ?î‹3?’+?P ?o.:?m¥‰?‚Žå?’°(?ðó°?æüù?» U?Ñ&r@# @ ¤?‚g=?”š0?Ïé?ºÒÌ?€Ì®?™wa?Ãi@?¼³;?©0?ÔëI@d@V{?¿†G?Ž­õ? Š¬?ÇùÎ@7N;@YÈ{@‚jõ@Jç©@ –—?Ëø?ìÚ?Øw@S@â©?æPƒ?ã^‚?äÁu?™î?5Û)?œå“?Ù¼3?àU…?â:`@“@!ú›@ +øœ?ü#p?±Bü?ƒ˜–?«Éí?Â$Ú?— ƒ?a¾@ Š²@/@”@X€?¸ë?—”j?¶J?Á¼U?¬E7?¡‰«?¢š”?¦«?ÍÀ?Ø @HrŽ@s5Œ@ÔK?ÚZ?·‘š?±úd?GÞ2? Ll?fS +?…åi@Ž@@,<@Cá@î?ìÌ´?ݬü?åÛ\?î<?­ü?œ?Ã?ÒÏ÷?ßÈô?Ý2°?Úà?áB?ÒÒÝ?¬æ?ŸÅ?Êž;?àiB?î?õO?¡ÍK?€ØÞ?­w˜?º°ó?ÛF+?àjÉ?½D1?°±?³> ?«‰?ä°f?ÿWÓ?¥ö·?9Í?ƒå?‰‹U?ÚG?þõª?í6?ßWI?ú±Ä@²³@OÖ@ëh?³ßã?‚¦Ð?®Öt?Ê'¡?ô…©@ +BÜ?®¼w?AÂa?Ú£`@«ˆ@9&@V*@ ´â?q°?øüB@LdØ@" ?×ë?Ü{4?Øe‘?ÊÐ8?½Ç?¨ÒŸ?‚IÕ?Á–@ú6@ ˜®?½p2?Ï?ï@I?íà“@¦´?ÿóI?½Ü?¶”Õ?ž—7?¢ðò?²!õ?ºáD?â??Ì^q?Õ$?Õ?Ò? sk??_º?–ú@2¦W@0K¨?”»E?‹^á?·pX?l–#?‘P?®Aû?²$?º¿„?éoô@†Ó?üZK?vþš?…z ?½4g?²k?ü©?B?ž`Ò?Žq…?ä.? ž?÷Ä®?÷«¹?Ú ã?åîm?¤»~?–@u@ô}@Í}@ •@  ?“§Ë?Fi?‹‡?§G?Õ&Ê?öXl?ÞŠÈ?Á?Ô!?õ÷U?¸;’? ƒ?Vc±?È R?×L”@ ¹@*´?ÕoÎ?ØËæ?Ü&·?ß‹ù?²:{?¥Z +?_·>ôoa?p?y(?¤Ã ?¶þä?ï|@†@o£?ó“ç@¢@ +G?ßJ?‚l«?ŠVù?Œ-Ë?‡É?lU?Z܇@-o@çY?„ J?~Ús?ÐA?Ö|Z?®ûé? .g?ô“ñ@5@!Æ@âC@ =I@¾ý@O~@!çá@ìé?t +X?k{?B§î?wèÅ@%æ¢@#/Ì?Æ@ ?³Ã…?ö3@ÄÐ@>T?ï[?ăU?§"?ù§u¯?ê“X?ên@ 6®@¸Å?rœ™?#«4?î@'§Ü@ ¹…@î?ÔL7>þ¹a?WÝË?ù[û?çÕ~?éXñ?Ü i?ÊÅI?ÕX.?°±“?M!?•æ™?ƒá?tŠ?fß?pF!?­¬h?­“ª?Â+Ù?º3?X¦Û?'®€?½Ïï@ FJ?ï ?¥@c?·Òœ?çx€?ì¸Å@: ?ôlo?h¾®?6 ?µèÀ?åØ$?Çà)?†;m?pï9?±ŠA?Ê©@{Þž@rAZ@2þ9@+Ö?èIŠ?Ù @N7@!bg@,@3@¥@FDb@JÚç@+%Ä@%9?¯ì¬?yÕY?ÓGß@µŒ@@×?å/|?Ûô@ð@ú”@_ÿm@mÎ@…E¬@‰žÜ@9G•>NjÃ?ÙDŠ@¨P?ü]ƒ@¿Ú@ yÛ@*x@ óÆ?×II?ä +§@ Ž@ +=²?‘¦?f ?Íž”@ãY@”@ˆÁ@@Y@œ‹:@‘Ž@$•™@á“?0>R?)F?vh`?™{^?¬áÆ?®Ÿ=?i„'?ºÒ?€B2?ÌT`?¦¢Ñ>ý*¾>éˆÓ?j¿¼?-G?‘s;?@äV= +e#> Ž=Ó°v>N³Ò>Ó²ú?&½>ò7:?6OÆ?ñ-½?ž?ë ý?Öµ/?>?/¬?›g•?¢¸ù?Xí?fÿŒ>ü°…>éЖ?£W?—‡ã>X?V>„gð?,W(?{™>Ü|æ>ø¼à>ÿ‘>è³>7Ã>‡4?Z†?#²è?‚'õ?0Ÿátº>ü??=È%?€N©? [¶?¾…?hÆî?0/e>}õ«>‘YY>ÙT?VÀä?ˆ‡·?*æ>¹G>–äm?C+@?³D?ðû?ÆC??­3”>Þ(±>Q Å;«“@=ˆ{º>~>Oý’=ùz>‘>ïÜ>ÿÔ?0¯Ñ?*,¦:nâ =§†=cÒÏ?ÈÖ?7Š=ÛV;ã¬>® ï>èÿ¥>øü?Ú?Ñ/? ƒ$?gžX?œkþ?˜ï^?•q½?†}°?teo?„\Š?‡X?WO:>]Âf>l†Å>{RU>›”?A‹?Füû?³à>ùse?ŠÍõ?ŒA?´«?¸ç¥?¤¨ ?¥¥ù?£Í?§Bj?„¢‘?r¾K>“²¦;ɦÀ>³2Z?­?·”?W™>ªh=Â7ð=à ¸=ÿ|>s(i>©Š,?8 i?¢ûÑ?€ó²? =ä?>ß4?›“_?}Ñ7>Ù”Ò?Œk?›ïþ?™Îõ?Jým?="ê?L¤?>R?ß ?Í Ÿ? c?Æ'=_Â<œÈ<œqŽ<ûž…>çÍ>å«ç>ø >ú¤å?m‘b?zÄ ?(T¥?UÚ?…^?’_ø?¢o?£…L?šñ?š[ ?ˆ ¢?v?ï?’º6?¢ZÃ?D&>û‹è?2|?Vèy?«4>­¯?š?Ç\È?‡Pº?´?9£?X?˜HÎ?ù¬7?ÚÚ?²ÀË?Têª=“Þ?N?°$?§±ê? —Ø?šÛ:?{ÿE??ïË>˜é>¬a‡>üΘ>¿»²>'G?HÒÆ?9¾û>°ÂQ>ɪÊ?Xöü?R>á±>¯Gý=¡±Ã>#¿±?Šòw?Š•?¹ù“?»"¡?yÄÌ?pì=>˜ã=†#G?%¯g?/ y@ ¤-@jå@3ðû@4‚Ë?ïñÐ?æ ×?€D>þ<Ä?“†G?Ÿ]o>·f>[æ?¼ý=?àÅ,?É>š•„?K•‰?[ ?u+e?~Ô?EÉ?*Â?ЈÞ?ø®T>ú‚<6î<èÏÀ=!Ÿp?UTF?‘â7?ÒT?å¾?é‚…?óV"?’11?TýÀ?Ã8[?æ^Ð?u$? +ÿ?•9æ?ÂþI?[!ú?D?3âN?SgÙ>̼>”<>»ð?/J?ÂÊ?¤²?a¨ó?†kA?Í«è?ü +?¯ÖÔ?|`¾>ÓRq=É>¸?pN"?¶cä@ +& @#ìÔ@~J?î«û? +È?-êC?Àú@·Ì? #ø?Cì?iÐ?†=>?[1û?3¹?cµ?€ìù?€ôŸ?€ûn??í?±¤š?Ê»w?£J?‹+Ê?2Jö?PJ?X¸??7>Çy¸=ðôH? ÝO?G"e?wù?eä?l¯–?†¡™? ¤?™u?®qù?®á¨?ÂŽ?Ã=¨?×a;?ß¾?I^Å?µ"?׆é@µí?(Z?c+ê?–“.?š·?àá?äÇ?ì?{d?¯Ê?Á~@ÓŒ@è¨?Ó•?Ëà#@~º2@‚GT?+ì?+W?€…ß?‚š¥@ÕÂ@Z›?Œµ +?„:M>ûñ¡?"±Y?ø‹…?ã.õ?n¬—?oÂœ>ÿƒ +?'®?ó˶?åxX?œ¯ò?¥l?² š?¡t÷?(œ†?ï@$è?úP? +^k?‚†@³W?ÅãL? Ž?«£n@#uà@ ä?Ä3?^/?f"?ð»ÿ?¶ßZ?‚äá?•€?¨?ÀID?Õ›?Œ +b?*ðQ?LXÄ?f`»?‡m•?Žª(@@=Þ@?:@ATK@@â?Ëã?¹ÚÁ?æiE?év@ (½@õ×?°Ÿô? ÆA?Âke?ÄÉ»?ôK²?õÄ“?8?0Ó?ÄØi?Ëgõ@^›?þ)?e-b?”-î@$Ú@&i@5Ÿx@Ýó?aÝÀ?lñ?’}R?Ƭ@…?ý@ ?„ˆÈ?Ÿ¸`?Äú¼?ÁuJ?»NÁ?¼s?É/?ÿ;m@úð?ìà?ÅC?¬Z/?ž +?GXà?X?šçï?Å[?ßÚé?ì„f?éÆÈ?ðÚ«?ê!Ÿ?Û=¤?ãËØ?ìº>í]Í>Wü±?gè?}9x?…+?„FU?»Ô?š@i?÷? I`=«sô>M”!?ƒDç?söO?ô–?EŸ?•wN?‹bÜ?asC?dì?„9?œro?ÙÊÿ?¼³&?“¹?ñ"@GUM@a ?ƒ#?±Æ¥?ï}@‘½@ •‘@à@‡?á¢Û?Ây?ñ÷@ Ò€@(1@4ø?Æ:V?g>£?8ùn?*„2?¶cG?ÕoH?À>“/p?-T©?C?³ Ú?ÄG @li@é?UÌc?(ŸÃ?~0Õ?‚¿>h,±>ë-?òa?!nK@ +Ý@ «?Å—q?½)Ì?˜¿?5‹Ä@*U?û·ˆ>s¼Å? fØ@8©@nŒ?Š<¢?°YÑ@ÜÅ?ó´Õ?EQ®?YÏ÷?‚U ?bÍÁ? ‹?D4 ?±}B?Ö†J@Ý?øV?±üÅ?¨? ?Ž°?„óZ?R?‡AÙ?˜}Û@›@mÄ6@$ÕÆ?®Ù×?W^ö>M1?ÔžÐ@6—B@þ‡?»ö¸?Á„'?Ÿô?­”?œð?QcZ?K3?4ï1?a­Ô?Û\J@ûº?Ùï™?³é[?»™P?¿Ô›?XŸJ? ;ü>v&†=ñeh?,k?}5Q?éEœ@ Þ2?ËKÔ?«ªy?H=ƒ?" ?¥­T?Á¢ç?v"?J ñ?¶?Ôk–?hm7?$„?òŒ‘@A†?{ÐÚ?x¹?â2?»q@ñt@M¸?â?ÏÀ:?ní×?K@?º½?ÒF!?竤?êY`?µ „?¤ò_?œ­Ý?¢e}?À²?Ëù¬@:·@V,#@ÑÁ@)¾?‰}È?@²0?–X—?›Ý¿?æµf?ÿv?Î{c?¿Ù—?›?”hð@­l@-À?å‘®?ÔfÔ?ô*¶?ÿJi?d)´>ûr0?+S?5†?Ü=ì@ +F@ ƒ@1@ +À@À;@4@ûS@îš?ü˜¤?‹›á?S?+ê?A¢—? ¡>ýûê?Íö@£,@ +’?õŽ?Úe2?Á+.?¹q1?³¦Á?¨~È?‘–@?Î`›@ãœ?ö{¸?¶ñ?Ð>?øêM@ Š²@ð”@{?ó ê?èÓÌ?ÛÁ’?耟?ü>g?Ð…C? ¡A?%+c?K?ÔÈ?`"g?H=S>û¨Å?lX?‹‚ú?t™?{Tï?—?ø-~?÷z?’¨?~î?~Åc?zÇ“?Œí‰?‘P×@<„@ ¾?«»? †i?©[ +?±W?Z¸¦?1);?‰ñ½?£I?Ü–Š?ù¥?öÿê?ø~Z?´+ü?yOw?²å?‰N??Œj?~™?¤b$?ÈT°?ê@È@ c?ÉФ>@úË?³?æ‘Š?õñ@ L@Zà?ÄÚ?ı@8HÆ@4ù?½)§?¹–>@,@¸‚@ß@ i@ T@ ?ñ~š?Î,’? O)?Œ¥ ?ȨÛ?öKn@ Ö@Ü?È—!? +Yi>Ñt=•¡ê?ú½?åX?ݪ +?Îü÷?Ó:O?×=H?רô@ É“@ʦ@ûc@ÞÊ?Xƒ­?5T@pœ@5ê"?˜Ø?ég?oD?•ƒ®?á5L@ ÀK?óµÍ?Íδ?´¶r?_ÒW?ow+?£ÖÊ?ÀUx@%fc@"" ?Du>úê?n_#?rê?áƒÙ?ñß÷?£–s?ŽZ&?jÌE?gˆÙ@®K@q·&@*!D?“îA?–¦Ç?Š }?cF?³{?¸u?ÞÀt?Ó6‹@;@ :–?3­G?Ãe?²ÄÛ?Ô6@ÇJ@D©?é§ý?š?Y?cFÅ>ý¯\?Xó>?îtÁ?Ï Š>6ÐB>ƒ´.?³ëâ?§Þé?7!?;¾Þ?/·S?Ä?M%@$Ò@gž@Mý@?‚@$?Èá%?Î[ +??˜áj?>h´?+ {?¶&\?ÙB?ɤc?ºPÖ?Ó0µ?îÄ?õÎr@;ä?ørä@ @n@ G@Û¥@©ß?¢ü*?‹ƒí?^(?MÎI?À®f@ ¡?ø»„?©½´?¹^×@œ@æ9?Ö£?ßV–?žVÒ?K?A\)?(<†?¡DÎ?çð|?ÔȤ?¬œ¶?Î-–@N“<@C1W?Æ‚/?Äì?œž?Œ©5?ˆk?ƒed?‡@?‡ªª?¯ó@+=;@%¢à@å.@Úo@6@ d?ð¥S?åËÃ@31L@{c]@YT?ò·K?Üÿq?Gú?°ªé@7º’@?8K@éÖ?Éò@ê˜@,/@PÞ?ÛûÙ?Èt¨?åÔ×?ðan@RÁŽ@V«?ØüÉ?w³Œ?ÊIp@±v@ ?€@G¶‹@F@?}ž@F‚T@‡½)@‰0 @5Þ@t@ƒ@?飭?ó²]?Ýî ?Ã÷@ Ñ@§ ?":?Žƒ•@B@=°P@ä-@vÐ@Hñ?ô2?òà¾?ýá"?æçó@÷—?ì~ó@ ú“@g@>®@KÄo@/€ù@gË@ ~?7>ôC?…®?—7?»†g?·JÀ?À¸À?Ï…‘@®r@!‘O@‰]@±@ö@-~J@-¡ª@ ÍP?îcœ>ó:U>y’?n?®•?‘6¶?aŒ?og ?•GÏ?¥êJ?±Œ?¬q?êì?ë<=@&¥g@/Xô?À¦Ö?šý>Ñ°?W“z?çý¨?½Š¬?‡ð±?höy?AÆ­?‚ê>ò5µ?‡î@˜É«@˜«¼?†t?”Db?$Ç?4ž?Fû?#g!>÷Ê >ø3>ûÛ>ùXã>šÂV>îÎB?U¦?+¥-?|žR?v³X> ÿ‚=·†G?r¯?H¦M=Á&D?OB?#–Ä?‚ Ë?‚÷?ƒF?û?" /?¥-Š?pM5?(Ý>12u›÷>ƒ/`=ÐÞ=Rü="»>ÿúM>ø/!>jcÞ?;Ø©?K”{?)iÐ?‰œ*?–¬í?|ÿn?E?O4?{ˆ˜?ÌÊ3?*`i>œV¢?¡>ÚëÑ>6<¬>Š½?U…>èXÎ<{=±pó=¯pá>Ò>Ù7º?§™†?°È?‡Ä>ñBÊ>ñ3}>òW>ò‰>òš?;ð?^s?®ø>©H)?ˆj/?â4Ç?Ъ(?´D?ˆ:%?×B? !j>‚oñ>˜>è%;>ÛÏ>õd?MQ?ŒÐ?m?”O—?˜7Ì?ªR×?¬@ã? ùú>öÉW=â=x=)H>ØÅ–>ý¡ +>÷ÕA>ñ²?å9Ì@k!?†h>÷ó>ÝcÉ>Å)f?š°?¶7T?æÏ>@”…?ó³?à™d?£A³?4]è?5ÿ?>©‘?\…›?y;h?{ãY?dõú?ƒ‚m?Î?E?ºÛ?yµ7? år@$†¾@ÈF?„—ƒ?wÃ;?œ?, J@:ðÉ@1¯>úcÌ>øè‡=}¦Ì=—0F?qÝä?z´?ÿ`>úÍæ?æ6?'Ç›?>€?r­?”[?Ÿay?œF?ž]?›í??—¬Ü?.gL>ûz\?³:?"ó?¡‡?ÊýU?èf ?ûÇÛ?Ñí?¶[?¶9?¸#h?sÒ#?N¹?IxW?ƒmø?B+#>× +?2YÛ?‹t;?®²?Ùò6?»”¬?“ƒÆ?¾r,?üß´?·ªB>ü»1>Ø¥|>p{>•+>üî?)zã?”‘?€>>ý¸?48—?Òò??È#?Ol¤?iäZ?÷Ig?ãƒ'?òˆ?C?¼EÎ?¬-<ÏÏ[>ýÄô>ù>º?'œà?EW@öÐ@é?¬ÚÅ?¯?‚>þ/ó?7y??\I?­Æ>þdç>þn&>þ|ù?J˜?W«?¯ W?Á¼?}ƒ½?hu?Ùw ?ð9­?Gë?xc“@ +î^@5?Ÿ K?k‰?yiÀ?KK?Oš¨?MÏß?Ñ %?îlQ?Ð.?À3?°¬•?²<Ñ?h}Ù?:m"?`›?Pý>·LH>•´?*Ö?-+J? ‰?¬>Òä9>Ɔç?-šb?V߬?¥ëð?Àj1?˜;ª?‚˜ó?«#)?¾‘¤>ÿ¤?~k®?À¸ö?d]ù?*ËÔ?‹sY?¥:¤?žLÖ?”*y?¥Íú?µ­‘?yT#?=è?¹?Ï'?Ã?´0Ø?ašç?+z¼?Žˆƒ?£ü¼?Šýe?U?Á×Á?æ?ìEç?òu2?‚£? ð9>)e‘=K@?.6°?e}=>–õq=µÞÚ=ÖµB=÷æ?”¥?Â'ø?a¬¥?0Ûü?ÛµŠ@Š”?ÈD?Àq*?÷¡‡@£Ø?x* ?3?N¥ ?ZFo?Ož?CÅþ?ÞÜÿ?÷F«?yì?D3?¬?º‹|?þ?‚/?ƒý? ð?#UÜ?#ï?Çaæ?Ú8r?¨U?¾Ï>– J>˧>@RÙ@Õµ?nyÍ?vt ?KÎ?_c@Ó¾?ôÃh>R p?® +»?³ºU?òb?¡×ù>UjÞ>¡T½?9½ ?—)‰@%Âé@>–@4|@;Œ+?§•?…:ë@°?åN©?¬fg?¿#8?ä ^?ÃÔÑ?–ó€?ú«?v‚b?ùæ?³`g?‹?D1£?†Ó{?Ÿ‰R? -?‚ðÚ?‘ v?—C8?š‰?’+@?²JŠ?ăÒ?ôtð@ +?ý;?þë¢?[D?„õ.?îè@æ?Y]ɳ×>׋˜@7â@I´?WÆ?`‘?îit?âÒ!?5? ¬Ó?‚cª?ŠÅ¦?§ÖÕ?³ (?Ý°÷?ã©&@2\?Þu;?F?‡vg@Ö@´Ü@AH?Ùš??:8?œ‰ž?Ä"?cv?Æš?¢´?ýHß@<6@)Ä|?ÜR?‰@?¯¿ü?Äþµ?› q?ƒSL?‰(?‡´l?Éy?ã¼G@5Â@ +4?““?\ƒ@Zi@9 +š?Îr{?¬+g?¬ûc?²N=??K¼?ÂlY?ÃŒÃ?ƒJð?~òP?HÒ? Ð?\ùœ?L¬? ®?*M+?:OF?LhI?š™/?¦¼Ù?ÄÔ"?¦!T?@[?‘2.?ðjZ?È´ð?fsy?‡‰Ö?´€â?›º?f~?wL‚?ƒ @Ë`@O|<@'=@K@ˆ™@$y@**@ «˜?Ûw?­|?’·œ?‚ø ?löÿ?^óê?zÉU?‰(ç>Ìäë>b½ª>Þgv?(^?ËÑ'?àm @Ë@)¦^?©æ?•ü~?äÐŒ?ÛÒ?ƒ‰n?ƒEø?¼?¾H‰DÔ? µp?“Ê?ëÓ?ÔXÖ?´3?†ÆJ?60Œ?Ì–ï@ï!@ O?î +9@¨y@/£ß?Û4˜?g—'°?šóâ?ÁŸù?JÝ?p¼u?‘˜b?—ï%?µ+¬?¶ð?½ÅJ?ÁED?žÂY?áå?(ק?П?§"h?Åbí?’ÔÎ?‡ÓB>‹€=Ä-?Åó?ï°?\„¦?3†?í£ä@Á?¸åZ?žõj?[jŒ?K¡?Ï3¥?ëÆ?Ïñ?Ïóc?âF‰?êO—@FÂÖ@]0ö@Ì‘@4‹?]O?qÚ?õÿÝ@“ë?éJd?Þul@t„@ +ôw@ü£@?Î ?¢q?›—×?š "@ú?@Oæ?Ù*ï?®¹û?å§?þž@?´‚Ö?Š8î?7$¥?Ö?³¾i?í¦ö?€²Û>þû>‰ }>ß?¤½°@ íí?囇?¾?ƒ?sþ?ˆ±?•>/?Ó+?·_E?ªíp?¼ +?Ë/Ú?±&_?ÝŸ?ˆ!?‚c¨?õ0@YYk@. ô?ÆÝ&?å—a@†¾?öS?¨H?Ð9“@–?ô| ?˜Ö?Ž½?¤J”?™ï?#"6?cS@<*ª@8f´?„|P?|º>ûÖ{? Ù?{d?zñl@TçÞ@PŸ?‘EG?z›Ê?ãÇM?ÿÊZ?D͸>ó+©?%Ô%?-˜ó?'ä?ì‘?;­ž?D‹:?¾ê?óâ·?©¥ò?{H>÷Èo=Ó[ˆ>·FX?G?F +Ç?xð1?›ïx?ÅÚë?þö@:už@ ‡?,$ˆ?Vby?º2«?Í…@8@«Ó@N„@"W?¾×?ȇÙ?¹çž?¹”µ?©He?±¬5?–yù?”!P@K\@ +Zû@8¥@Ké$?ø#¼?§·J?Çã?ás?î¡ö?ö?õk?í`ÿ?òÃ?ðE?õ}q?ùª­@|?ü.n?õY?ÿÄv@VH]@V1Ï@ï@TÎ?ÀÄ ?·FÇ?²™?·òN?ÜV,?Þ«¹?»w?¨ –?”¿ ?’¹?Ke?š ²?¢Li?¶M¦?«p?‹UT?‹T÷|Ã?¤??þ—&?²)?AÕ?vjÛ?à?Ï ?vÿ?hÖ§?.˜?7?ïúã?ïÛk?<³&? ¡?™!?³†?Áàî?Æ5µ?êÿë@ +M“?ßéM?€Ë·?Ƀ¾@Jjš@6'E?¾ ï?­{?žæ›?¦Æ??{t>Û©?š&:?°Ù&?Éàr?áÄï?ÿVa@ÕÙ?ØZD?ºŸ?€Ç©@9?þ‘X?ŠºN?ŽÈg?9Àä?7ú?¾g"?Ó¢ã?çÉ®?ôX @@-Ë2@ ¥h?Š8…?¥ŽÅ?ùìý?þ”_@5B@0°?´k?™¦´?`û'?)U]?y;’?ªš0?ì<´@)ÁÑ@ ¬™?U‰ë?€ò@3@†¹?£±:?–Cá?ï>q°0?nuf?ÛŽ?¾L½?k†?—5)@!æ@'³§?Öê:?νf?³˜À?­;e?¸ ?¼º?ØðÏ@^è?òtÂ?yþ·?–ÚÌ@ß}@Ój@‡™@‡ö@¼á@hº@ í»@>ëö@Ix4@G Ü@èT9?sUe?¤Žü?­?©g(?Ä´Õ?ïMh?Òº(?°áÛ?½Z´?ÉÞÆ?Öx*?­áj?´ @1Õ3@4Æû?¿•?|ÑD?“¿?'ô?‡?‡Ÿ?B¡œ? =û?nÙ?´A­?¡?nð/?rL? ? ”–>ó!…?^?t#ˆ?€aÚ?߯§?Ô¹->Q8>ùK>ÆHV>âáã?u4ý?jÞI?@Ü­?$NÌ?™®¿?¡˜û?U\(?gÞ•?¯yw?»e?·p|?±k?¤á?wH?G—?P)?nvÈ?~©Ú?‚ï"?oÖÛ?=T?Çø?¹ð?@Ê:?kÓ7?› ?½¼?zˆÁ?pÿI?a;¤?ÊÒ>£‹O? ¬Ž? ­?'U>f>²è=½ù>3>%?€ý°?Ó8?<«?J‘æ?Å\Ò?Tö¸=´S>‡ÜN>@ž3=á <à>?¥“ó?Òª:?Á?üþ=-4>8>qSŽ>A ?<a?oR=?)“1=—Æà>ÈéF>¹ìÚ<'›å>ñÅ>ñ‡½<ø4(;ÿP?K˜?icŽ?>òÊÄ>~ æ>8ÿN=£žØ?]p”?ɦ?Æ]?2b?ÒR>Œù™?ƒª?yDý?q¸m?uB ?Y_Ú>õ¤? ¡“?N³¨?B ó?¹ã?³ž??™`?GÍ7?¤þ? Ш>÷¤§>÷²?dº&?u‚@ +áÒ@f!?©l†?pö?(›P>÷äz?„Í?ŸV£?;`n? s?–-À?ÏØQ?¾ÚO?­µg?o\5>øÔÖ>…‡>ÐùÉ?y%Š?¦Êh?ôoö?ìrê?Ô@¦?Ò(5?¸ "?¦)ó?‡àš?‘V?»m—?¯žù?sZë?w«G?|©W?„G¯?r[-?n¥?[ Ì?MPæ>:õp>\6>û!«>ú·b>)Ø…>+ˆ>›u>•”?TÝš?r†i?™K,?›9¦?ÌIŠ?Ö2‚?ɸ>¤>?~÷?3¼×?Âè®?íÞ@P@æ ?·£’?ŠD5??#õ?þ¸>ÿA&>ûÿu?2?ü!>•Äð=–Éì>ªJƒ?âÆ?eª¼? á??[± >ª‹3?H—!?½™?¢˜r?BÂ?'K“>üÁ)>üÊ/>üÖ¶?,q©?‘°?š“q?™e¦?v/´>ý ?]òD@%i@$(?½û*?³·?}gè?j×ä?U–? uv>åù|>ÉÁg=žk=²]L=7?í?jŽÏ?|¬?¨†¯?§{.?°)^?©‰\?B91?>*¢?:.4?63Ý?ž¨>þj¥?¦1?¡.?8·a?Ëu?™?Eê?Éò?†×?_…?D9=Üch<ûáz? ÂÓ?ºŽ[?‰F‹?8?mã?e”X? ?^ø?Ú·a?ÿ†?›º¶?žP?¤Mí?¨vo?c?8Õf?¹>Öt?¨×ô¼>¯‚Ú>læ=©!8?€*p?³RS?½—\?Àqâ?¿ã¸?À†]>ã–é?Ö@ ¹?{›.>Èõ?ŠÑ?®¿Î?›ØÐ?–Êê?¤À>ÒC?Š6•?¦k? R›?š?d?¹[‘?Íåa?M>.‰s?’–?Ì¥`? é?f¥í? ·Ò>Û»/>ãðÿ>ì+©@|‚@>áo?ðÖ>?¹6@ S‡@3Þ?¨þV?V5È?N ]?Eã©?¬.‹?Â\?|1¹?Tß?…Y£?“Qü?áð{?æ„¥?ûÅW@œg?þÆ?³™{?‹¦Ž?~ï„?¹×?Â¥{?ÏêÇ?Ï_ª@ u@Á=?&4?çr? V?Æå?0r?‚~@’ö¨@n +?¹P·?µ>È?g}ï?gˆ?‹Æ®?’!´@"¿ @×M?NüH?` ª?Ãm)?µÊ?H]8?>O³>Ð#x>ê“?Y$?€â×?éˆ?³ý\?‚{m?¥l@„O@Ÿ¤@9X@lÿ?cL?›‹›?½o?¿â?Ë]â?²®??Ž8×?Rü?’iH?ŒØ?‚Â]?¹Zä?í–)?ºË»?‹çå?@®?Û‚?Tô¦?Šu¡?l¹™?TDi?¦§f?Ähv@ ÆŸ@#ŽÒ?߀?¸7?ì[œ?ýì‹?’®‚?vd¼?º?Ð?Ä"@PfÑ@^?7>Àìñ=>ò?N¸?Q¨–?߉!?æzó?_œ?e ø?Üb?涯@n@ û>@.¾@4-?½ÞV?½Ãû?Ô4?Änt?ƒ:©?…Ѽ?„_s?«Ì¹@ }r@ #W@™Ô?Ò¤Ý?F¾?–.÷@ Ñ?©Ì™?Gq>¼¿>xÐ?‘@â?ìÇ?Åôï?¡â?™£Ë?™a?_é‚?7cº?¥ÌÃ?Äó?ÜÓã?熼@G@ÂÉ?³¡j?—ê¨?‡,?ƒJ›@ßn@4å?ePÏ?=ñ?!5?ŸÕ?ÄÕM?ÁÌÍ?ƒBm?‚ê„?{e?x¥Q?ƒ<©?‰ãÍ?¨œ?‰ŸÝ>•¿”>Ñ—?1M3?YÃ.?ž“_?\×a?6ë?Û¢L?Ä]/?«‘ˆ?§”t?‘J¯?k× ?DŸ£?ŒZ&?³_?zvï?!k?™Ìµ?Î2Ì? Ìb?†(?Œ÷C?”¯Â?þT@@Y?Öëp?µ­±?³t?±7n?3´?â²?\¯?—¼? ­*?À­?Ñ×í?é"«?hÏ{?UŽ*?Ó¼t?סS@Vãu@__ ?ò|?ŒÆò?‚ªï?„‡T?•nv?‰é{?ƒ¬?lE=²(X>Ž±‘?–¸ð?˜ó¾?‘ ÿ?¡ å?ÖÛ¨?ÞLu?í‘@Α@+†ò@ x?‚Uà?¶¯ +@?÷E5?•>²?`}2>“ƒý>æ¢i?9i7?’‚o?Þ´¤?W =Ë—>ŽõŽ?̬?;œ?yÝ¢?Ÿ*Û?Âìn?‹õŒ?; !?56?¯© ?öQo@WW@s²?û¿Ë@øº@ê{?ù º?ÆèÂ?{?-µö?B,?FšI?)ƒï?lä?œ:?Â6:?l_?&@G@C*[?ÑÙ'?rO?÷¡ˆ@ ¼@àG@ @g?òr}?ÖüQ?ÝÄ?Mì?¬yº?Á•±?©§Ñ?¥ZÂ?øŒR@w¥@ÔÓ@Èž?ÄŸ?´Æ?ó8@Ãç?³þ¶?”C?];?–"?Ø ©?ó,¹@…î@‰>@]@ +Þ?ÇÄ*?¨(?à j?Ò3u?Á8º?ÁÓ?ŸÀ!?ùž?Éó¦?Õ¸ò?sÌÌ?A7¥?r¾Å?€Õ@ ‡T@:$@iÒ’@}Ü?›kP>ÿ½A>­ùa>ÇæÅ?¢Xb?¿À?þ†¦@ ÷ @ ?@ Œ@(>@/À0?éÆ?¿9?øe@ o?ÆMo? ;Y?ĉ4?݇b?å¡R?íµu?ÍHg?½Eu@+m@94 ?õ?4?¨­Ç?Ö¦›?ë9ê?ñšk?ýÂ?Ä_?šP˜?Ãú¡?Ô´@ l2@8¦Q@2 ?ÊÉP?å&U@9@Œg?üðŸ?ù`³?ø»L?åä¸?Ì[ß?¸œ½?‡¯+?¤¥?Û¦®?ø´@2.@%¹?úX©?ðìŸ?¢âø?±:ß?®é˜?š•C?1[?@âÁ?aý{?tU?µ«Æ?±]m?)^?_?·y?´»?ò>»@FK?°Þa?§ÊÈ?;ž?1Ž½?pŒç?z>¯?Õ»?ݽÖ?Ñ>Ü?Õá?ÛùŒ?â3?ÃÜr?µŽ¨?‚ù?°ö@6?þ +ý?Ô"Ä?ø>@7‡?û&£?HÉö?wuì?º&ö?żÛ?øX?ï%Ù?µpÒ?¼À…?õÆ¢?òi4?ï ?ë¸~?‚ÿ?w.?ÁáŸ?Åe ?É3~?ÚÏ,?ëXÓ?ûóL?©aÿ?vq¦?f±ˆ?aì>?¼ ¼?ùrm@  @A?÷åƒ?šƒ§?Û™‰@=¨8@#Ä_?ÁeÌ?Çu?·x>?Å×@¨>@#Lá?¿í?¯E?µ¡Ó?·<Æ?.'T>ú‡Ï?›0æ?¾_@ @ öÜ?ÄY„?H"?™Ø?ÖpÃ?¾;?Ô?¬DÞ?Çž ?­¹n? »??4Í6@.ƒZ@4Zè?»ñ“?½3Ú?¢5r?—AJ?úÃY@:¨?¯´{?qVV?¸ó8?â½ü?¿e?—:£?‹à,?€'ú?§©@É@Lx@]7?þƒf?Oó?f?,¾?+ç~?ˆ„?™p…?ÄÂ?ÜÕ¹?Ï m?½’”?æˆ<@Ú$@r˜@5'é@$²‘?Vu?œ| @ @W@0??ØÈ?8?â¡Ø@ +êŠ?ÎüÞ?§ ?­Ü-?±™¨?h'=|>í ?ùwá?öÐÝ?›¢Ž?—m?ȸ¯?¸¡e?ÚÑZ?óëÃ@ŸÆ@Éú?¶>>óŒ’?.x?j³ï?¯ í@_M'@Sm0@ 2.@°é?Ð[8?³ÌÝ?—´5?–‘Ý?‹gM?pªŸ?µÇ@Ô@ª”@?Ê@¼L?ï·?üÒ?bjË?: ?[«w?h ?p”?ƒÄ/?mö!?g«?z@¬@™?ÄN?Æ·)?œúÝ?•ò ?ÉÎ?æÁí?»Ñ,?zË?æ$?ß‚Û?Ò  ?™1i?§ ¨@=û@·@6g„@I¸@B?ÅÜT?ØÇ@(„ð@&jé?ßÑ?Ú9à?¡IÚ?—:“?ë]y@ÔŒ@æ²?äÅ-?Ò‘?«}?«?®'.?·¢@¯©@.ÇÐ@´À@¹ª@@*Å@‚Ö@JßK?d-¾?vÒ?äÖ?Þ5B@©W@ K÷@$/ß@1•@)X#@4s@%¤8@J ¢@To‰@^âã@`2ã?Í(5?Âî]?¤gX?Ÿ;?¸Ï??Õq¬?ð«@@@*b@-ïe@lÿ@’@@ôû@G±@ “î?Ù†9?û¢µ@5Á@6?j,?t}@Ñ¿?òí ?˜Ü@? +ó@ ?%@,³³?ì‚?f•‰?…+p?®Õð?ÑÅ@CС@A Ø?{8>Ùô1?4g»?2Y?ùÜ>÷¯?“‚Ì?â@Ê?¶¹…?†Éf?‹ãz?3ɲ?Kð°?“~7?‡S»?kð?p É?œBí?¿,?ºS?±Ú?νø?ï.À?ï1¾?è•@?s@'šÝ?Óå›>Ö¬ >é9¼>y9Ó>ܬD?rE?e×S? ,Â>õàö? ÎÉ?.ÈÞ?õ*8?ð›>ö?T>öô>ªJû=èø(?vÑ?y5ë?ª­P?¤¥{?½Þ +?®ñØ>´àv>Ëq<Ó^™=p°1>l6w?»?²K“?£;í>¡-€>ξ-? ƒ?Š…? +}>Þš¶>£L²> ½ó>‘õ>²’Q>Ó}é>ô¿e?4Ë?D?9H>Ë*e>Þˆ¦>Q5#?$ŸÉ?“’ +>¾tá=Ak>Å2¡>©Aó>B.?qó?o†??’tw?‹à?·e?ÚD?y†Û==J>²[ÿ>Û‚?—=˜j7?”ZÞ?åÇÀ?К©??M>ÂZC>4ðð?=åÙ?2TT?uM=¿b=qcò<ºá=(£=„D>ñcÕ>ñ›ò>ïöÄ>é…?¨÷?°>/>†Ô +=‘¢™<ª¦?†"?3‚?¬Óx?àFX?w\?:Ñ?h¦>ô¦e?)‰h?tP?ˆÌ?•ß|?dHÄ>–×Â? n?¤Fq?­™?½Á?žŒ¸=i[?dò?h#?±?_!>÷V>÷:û?qÊ?„4ï?®ìq?³3>¢[P=¤?‘S?3ÿ>ñþ>±RÁ>ž8ñ>«èG?>¹Š?xžå?O%>h?ÿ>}ºÛ>kft?0n?–9?Ÿ=~?¨rù?œm?ŽÖ¾?Èèï@|2@ +wã?°¼!?°6ÊD°>¸ðd=þº> ÷?+Ñ»?#´í>øÖè>úãË>úò›>ûÉ?4‚w?HwÑ?¹Mþ?È>ó>ÕèH>,ÒÖ<âãï?‘¼º?¼£^?ÿU@d!?ö2¡?éµ|?Êb‘?ºÅw?¼s\?¹˜y?‘ux?pÌ$?cúÅ?Uæ+?¦FÆ?Ó³ÿ?‹ °?! »>þ“x>¦¿ª?/#½?ŠŸÑ?F;¡>êµü>ý2>ü­?>ü¹Y>üÅ\>üÐä>üÛ‚?˜ò@+¹ç@·@?’š?+åR?i_?†Iè?·Û¹?«®F?y%×?ŠÏ/?ºLµ?–ô]=Ön>ι>Æ)¡>®·é>.">wèV?”ÝŒ?£ò…@$–Ù@´3?:ñÄ?>þ?C 2?Hs?2¸O?.#Ÿ@ÏÞ@ ç @Âò@Pã?uMò?gŒ¬?ÕÑ°?Õ­‡?vš?pÌŒ?î|÷?ü%Î?û­²?újƒ?Ž‚Ñ?-T?­zÞ?²¹Ä?—å ?1E?Ÿ¨l?©g—?ª(„?¦Íê?±ôï?¹¸?ÚŽ ?ÞФ?võä?J÷?¤H-?»[ ?ZÌa?%¿°?™–`?±^æ?]§é?++ç?àœ? Ÿ’?©k?Å·2>Å?Ù=áÀ?‰•[?¯’Y?e †?NR€>–=Üæ2?þz“@%ýÒ?³Âi?€š>ý»¨>™(ª?¬×¨?ß0€?±:o?§?¶¨a?µ Ã?]?,ó·?ecù?lij?HcÇ?8•ö>äð>;À=Õ“ë=7üu?TÈ ?„v¯?‚+?ƒÜÖ?DR[?DÍq?©?·ó?‹4 ?Xÿ?P& ?M•‡?3 ¼?/¾{?ʧI?Ö·K@ÿÛ@7$?¶$¨?«¡w±?•ª?Äd?†ï*?dh?Š­2?ŽU?°ú;?¼=>•.º=nZ?Ü'r@DÉ?šØv?™T_?™¦>ãžV?¶:2?·×?Ä›“?½2À>™Ÿ>úV@ ›í@ƒ_?æÆD@kú@B©"@=2¤@‰?ðÚ½? ®ñ?5™-?\Z? a¾@ +Šk@ ´Å@âŠ?Ô?\?9Å?22?¼7ð@#’ @0`@9½•@2˜@*È“?¿¯F?7¼??ž*?H$T>öÈ>«¾a?’£I?¹cŸ?¤}H?¡Eµ@w@ˆ"?Õâ?Äëø?V¶±?0í¢?{¾Ì?ƒFµ?Þp ?ØÃ`?ìs?ò¸?ͧ?ʈM?ÈbŠ?¼l¡?…I?%¸?¿k¼?½@-?»Ý?¦ò?;€À?Z§‘?–{?ŒŠ“?—N?Ž;B?ƒ-&?^Ê?Ÿi?‹hµ@!Ù?Õþs?ƒ /?ØUû@&>@â·?ö¯2@Œ@2#¼@ 9?Ôg¶@@AÔ@VŸÛ@bC?™ñ=²ã”?Á:ž@õ?Šû +?<¤`>õ&‘>â;q?üÓ?àN?p+T?‚Ø¥?ßkZ?æ†Ê?Ʀ±?Ä2x?”ÁX?Š@ @¬ö@X!?²ÔÎ?´5¿?©æ ?®Ž…?¤è?µ@^‚@RºU?ÃFŒ?ÈÍ?ïõ½?ÕŽT?‚‚×?Gâ?µ[õ?¶ùD?ç@´@Ö.@ ø³?ÃmÒ?ÂD~?̬c?¯$ü?_”’?„f©?§Ÿ‹?©øÝ?µ'c@¸¾@9¹°@„Z?‹§1?àÿ~@!tª@Â?ú^…?ù–ç?úbÜ?Î-?¦~Œ?™™ã?”·Ò?zá?kÍU?Ôé?ž ?tVL?AXÈ@Z,@P(?Ô$ö?V¨‡?¦@ö?ÂV_?ªX?šè? /+?ª„¯@ š¯@!¢?·;`?‰Wª?±|S?»²?¤j?¤S|@Ð@)ħ?ÎïÊ?¬6?«?§L*?ŸgÂ? I?¸æy?¹©Ù@e@Q5?µé’?“GÊ?mÁ?fÅÖ?ÎTâ?è;á@]ì!@xؤ?¿Âõ?}¸¡?ë´ý@”¶@2„K@:ÞT?¡úÐ?ƒý¬@ +@œ?s¼€?6’!?;¢i?@ºl?„¹è?•[ò@:T@ +øõ@„Ð@ %Z?—s·?€ í?ðN@V?MÏ?Çx?vä>ÿµ©?”›p?¢Š?«Ï?Žß ?ŸŒÆ?¨ˆc?Í7O?Ù%?ч•?ÛÖ@`@?ÀÞ?©.@¬‰@â˜?¥çÕ?X$?’ˆ>þlÁ>÷{B>þÇÔ?ÂÍÈ@ri@<@é#?×A?° ¯?¬†?ªª¾?¿®(?Æ·‰?ò2:@æÒ@ +9«?ýT¨@¥´@!A‚@ÓV@ºÏ@’ó?å±S?¾@ò?€jš?^?‚+?¬qz?é•š?ÅF7?Z°?°Wþ?ü +Ž?÷|?Ïñ ?¼‚‰?—ê}?—lµ?ʵÿ?±6¯>”Ó>´û­?c*h?Q™7?{Cý?Â?¹•¦?ºZå?õÈË?ò³Ê?¼>?¼î@0@œæ?›¿g?‡H??ñWl?õþ&?ï}¤?þ±¡?¼‚Â? ÆÄ?è?ˆ™¡?i#&?c€ó?y[ü?vãÙ?žÍ?ºêR?pŽs>ùÔ?y¾·?Ê$r?ûˆÔ@èß@¥@ K?àx—?Z«ó?e˜u?—ö?­9é?íFZ?áŸæ?„_Õ?–§@U}@N˜è?Â2†?Åië?Ø-J?ÒC×?«h?­•?¿ª?µÚ?ÐS?É¿?C ?vmè?*“ß>ö8o?³mA@÷2@'17@6¬y?äWö>tÑT?†%é@*m?@ì?ÅmÃ?¹?˜ûº?ž'|?ïæ?ÞxÝ@?¨@=á¼?Ø›$?Ã$™?´Ïþ?µ-?Böl?0Š?Ëâ&@À$@3@ßm@s@ h-?Ë‘)?BKÏ?‚6?Кô?Çe?ƒ”?uÀ¢? Üu?â¹?í3ó?éÞ?G?ã?6è…?Ó²Q?ñ‹÷?ùêî?ð‰«@0á@ t€@k?ÿºê?ÚÖ ?¥ÙF?ÊÓ¶@»@H)?÷‰Ó?ýîØ@$¼w@,?µÍ˜?Ÿ¿™? ¼Ý? N¬?¬óÍ?Ö«Œ?Ú&ú?äü³?⧄?æÀa?½ÙZ?,},?f­?¥RJ?¤-?òU?ýá“?`Ì>Ñ`Œ?±?Û)?›×À?lþ¦?”#€?±Ž?®Z%? \Í?Þ8?¿Ñ?¸HX?–€?Uå?åYH?ÿÒÜ?ÄŽ?¥Ð?À‡n?ÛÙ}?Ë"y?¯L?̧Á@óÃ@ ¬@^×@_è?в£?ÌP;?íÿÖ?ûó¸?–I©?9„?„y?¯|?Å,Â?î(ï?êþ?Øs?ä‚ê?Ò è?Í…®?vwÓ?M&Ô?‘á2?œ +Ä?Üã$@äÖ?ùˆ?ª?ªf?Æþƒ?Ïði@ mˆ@âÕ?¤Žš?‰Ég?÷yÐ@*@ÆÁ?îR­@¬Ë@([@!Xb?ö˜ó?èƒ"@ @…`@hg@ ]0@T¨¥@>@PsT?±ÄÜ?²;ñ?³›?·×Ð?­á?«¿:?ð•?ÀCE?÷æ¥@É?ïw?¥n?¿‚@'ï@ ~K?¢äŸ?¥‘æ?ÿvô@¯†@ƒ +@2?á_!?d&Ý?Ë7?æEK?äo@J1ë@Gwž@Q×@Ot@F_ß@A.@' ?ïØ9?ë»Õ?èšt?î•?ÞS¨?Ö÷w?ÃØ=?´º*?ª$Ÿ?Ÿ‡ì?µŸå?ðS?ðoW@ —@>e?Éè¬?Ôž-@ù‡@/ûQ@z?œ÷?Âüµ@ ð×@Õ®?å*?Ûn†?Á6?Ìod?ƒpP?eô¶?¼˜û?ûÌc?Ëi‹?u\?˜¿2?ä?ä°Î@ b@?Å?Ô™?Áb ?Ÿx+? +?„h?h¸Ë?7??'&¿?FoL?@k?4­:?(¯ˆ?7¸?ÏÀ?Ü]I?r´?k¿x?lç?ljc?Yx¥?iŸí?7+Ý?&mß?…ë'?­éþ?µ.@?Æšä?ÚÌ„?˲?¡Z—?\v—?ö1m>ú¾è?å\Û?ó¦??£?ž“?ÐY?–O?€çÑ?œ»3>šÚ>è?>öGN?$½?œÉ(?Œg&?¥ðm?ëÝ?`s>ÄŸo>æ²—?Ùg?ÖÄ>“>HŸ2>AÙ€=/Þe<Ÿ`?s?²‘>£6Û>Œæ‘>±$y?PA„?¹™? ï>?U¼g?Pò]=ù >Ò‡@?ˆ…Z?ÒÞa?ÑÑs?Ì.ø?Úk5?~wÛ?ˆÚ`?¿ê¤?‚°?L¡>vò~>ìC8?"õ>¸Æ_>˜+`>_5>°t©? eÆ>ß$>>0Äæ>Xgƒ>ñÇ>ð>îÉd?zq?nÄl?kϹ?´q?µà;?_ö¾?J"«>ãpS>¼,?â=?1?SÈ?vA²?ÃÓ>Â{?Ü?=ì?xÊR?–É•?ˆ]¨?ƒFš?>Ë1>6]½>š3?(×u?Œ +$@8n@¢>AcÃ>t¾µ?.9Ÿ?8¥ƒ?ãXÿ?æCÀ?ˆI>øGŠ?´ú\?¶@?¹%Ÿ?¹³}?gŸÉ?L-‚>UùË=éðw>Ñ\I>ø.n>›×?+-d?xŠÇ?Œü>‚g‡? ?63–?žoí?Óè?Ù§j?ãÉ.?¿?—·û?Ž¦Ë?y}æ?†BŠ?‘C?]úL>à„)?Ckà?»k?™ôÀ?¥?Ð? ?5PU?³'‹?ŸŒË>úaÚ?)Uó?çîÜ?Í2N> Òù>®=>?Á>Tüß>úÙ>úäsû£n?TÊ‹?wçC?Õøy?ùþ?}%`? xE?°È ?è¥Ý?”Ú;?O¾?](»?Yè?U2/?QIÉ?*yc?½|?ºý?׫?Ÿn?9Ö¸?NvÚ?e¬Å?J +z?*'?xÂ\?ÇÓ?±‹~?|õè?S–æ>ý?.V¥?Š¯à?hc ?Ë‚>ÿâ=?6â?|>åõµ?À~?ªnh?“„4>ý¢€? ¨?6Py?q¶>®Üs?$CÐ@+¤•@}|>o®>u>‡>ÕÏ?Jí1?L¨“>þP?!å?커?í”Ä>Ì3>Ð/2@$@@+ðC> Mü<çEu>øÿñ? ™?€Û?ˆ’à?¦M?°¹?´Ã|?¿hj?¿s?¿{r?>&N?)–@>Ë@‰j?—¥N?¢]?³½Í?Á‡]?ŸµúöÁ?Ô‹‰?û>Ë?OÎv?f£?@Ýý?J…^?„ˆ?˜Ÿ{?K]Ÿ?, Í?JÎß?M›ç?ÉM??ãv\?fp>‡ñ?»–{?çA?—&?€×3?Ö·­?ï— ?¾e=?³J¥?ßIõ?íãî?8¹Œ>ê2.?Öï?þjA?Ì€“?¿S4?¹‰?´Í8?¿¢?Áåù?‹*™?Pé?f1|?]'?Y?UÙ?¿›?Òt„?åYp?ãï¦?‰m¹?wá>¬É>K?Œiv?—¸3?0××?$Rz?aÜž?i$?Ì©±?Ë~¢?-W«?#±u?ÂÖ?ÀxÞ?ï?g¤@@3ù@5Š ?‚ê?‡QH?µQ?®r0?š™?¶ºÆ@ ª\@Rï?Ð?ÆÝ2?©˜Ï?°qá?åÛ2?Ð>ï?‚Sl?‚WY?‚]H?y½?`'?š¬P?ö¬k?ÐÌœ?‚{?`¡?PM?k u?¾fL?§;^?òß?ðý[@=+Þ?çL?}Ö?yd_?¥å?[á«?¹?‹ÆW?Ä ž?¥™¨??z;Æ?}ºÔ?…Ól?‰0?odæ?Kb?j2¶?„° ?C_”?% þ?¸›®?ÑM?†þŠ?t‡b?g? ==´Ú…Å?›à?ªB?OØX?yb|?ä&c?Ø ®?²-?šw½>Íéd>¶—3>°G?Mˆ?cÍ ?h?lCý?g·Ñ?c??³v¨@êÎ?ãÀ?ÄN,?Ê;?ÑP„?gÌG>Év×?AÕ”?m7æ>Îj>)6>–µÕ>±éä?‹ˆ›?¶ß@ x@ ˆ‹@Ñ@ƒÊ@=ÿ@ ¸?}Ó?X@£?~"?ƒ?F@D†>@SŒÆ?ˆ +H?…íê?ö>©?ú(Ë?û ?ô‡¿?‚Ÿá?q ñ?¯ï?^ie?üôÆ?Þf?j× ?”•?ô?ê?×µZ?™”³?»ø†?÷”?Èçþ?ƒ" +?ƒ~?ˆy ?ˆnl?ƒ¶?^é?-Ì?Ìâ@"ü@ c?ÄË@ W@A@ oì?þZá?„ƒi? Íw?S‰>ð¾º? ƒÂ?=&í?ì`@^Ñ>Ùy÷?6‚?W·”?~}?‚в?ÑðM?âl@Ãý@,|@YÓ@¼/@-Ô@-ßö?‚®q?~©ç?§@?0zF@2?@/rÆ?óÜØ@3p@"mB@÷?Œ‚J?™]?º1?¢™—?:»Å?+±>߀?_›~?ñí3?ÎNN?qY¦?ªSf@L?ÊËg?Lþ?žö?ò‚:?î¾¾?ñ\1?Éh?w|?ÎÍ@ ÇR@f@ +¤?äŠÍ?Ãøº?„Ôé?7À?iò?”[Ü?’N?ÅÙ?¤³?°,?s™O?&=8?, ©?9Óm?âº$@ú¤@:@,Gm?¯„}?.F?’®º?°á?ë6 @{Ý?LËþ>Ãg?çêƒ@É?á ý?À9?Á ?Áéj?ºÄÊ?¶\}?üPà@ Ws?/­>©ÆÆ?¹&?°¼?•Å}?¢4?ð5Œ@ô”?¡¤Ø?’2+?¨©Ç?®ª?•ÒŠ?„zh?JÃî?4r±?ºÁŠ?È5€?ÁŽ?¿UŸ?÷\Õ@Ø?ƒ ?uwj?i»ß?_Zå?¯Ž?Áè¹?þ1l?úL¢?² ×? `ä>½ë>We?ë\é@ +mJ@nÇx@€G?Ó/&?–À‡@8Þ@¾/?®v¸?…Á?|Ù?v½j?„£‚?‰³?«‘³?°[?­Üh?«,Ã?º¶Å?¿b#?“l?d)?æ…\@Nû?ÊD¨?«z@•@6¬@êÅ@áÓ?•aÔ?!©X>FÉa;¾ +?Õtè@0ž?ª¥?U6 ?uAà?}×-?}Å*?}³?œ«Ö?µ°?—ëÍ?}k?Ó´@ `?ñ³d?Ð÷ž?Î?Ë1¯?•j¸?,þç?ƒ'?¿•?¼ªw?¹¿o@ _Ü@‚3ä@J·Ö?Ýç`?Ï…þ?½D?×E@ `W@!?߸Œ?áʆ?Ç@¬?±Ò?{Š2?—çß@x÷@ +%Ð?‘¬S?z^8?¿=,?ÎQ@v@!@Å +@r?§IV?†m§@¼Þ@¹~?ÝÎY?Æâ˜? î=¬b/?¢Ý?÷ŠŽ?®ÙS?ƒ“W?=WÄ>øÿe? 1þ?üXJ?ùÐD@ž?ù¤ú?Ý?×([?º9ˆ?¢âþ?@??h)j?Ï}?Ñþ¨?ÿÔ>?ÿB@4@ Ü?î˜Õ?ë84?œí ? è^?ë;?èÛ_?¸²Á?½GÉ@2@)€?Ìäþ?‹Šâ?bFî?4¿ð>ÄpÇ=µzù>ù[Ž?‰•%?[µ >ËžÏ?"B?‚´|?Šä?…ì|?öÌ?™™y?¬·)@'Ûß@.Ň@5¬”@<œ¢@:ì@ Ï?GCx>ýb +?èk@¼?¸Žõ?˜m¡?‘lp? ?ÍçÓ?ñœó?Â̹?Y61?c‘H?Š³?‰&?™Øœ?²ªá@m™@Û`@Ú@ñµ?#ß<>ñ¹Þ?î©:@ >*@•Ò@&4d?ÛÏ—?™G!?½¥?å|?«À­>Õn+>æ>m>ú‹û?YG”@M@ oY?ZvV?ˆ"@C°@ 2?‘ U?G]?Ùµ @ ØD?ÚÓ?©Ù6?]‚ì=œ­ ?C¡?Ü{­?±Ù‡>¦h? @š"@ ƒ–?ž>J?=¬?ÛÈF?æ"?¢ðÌ?„ñ?“XÕ?¯?±qK?±VÓ?¼Î?ݦ¾?Íz~?·Õ?m?0I™?æ6º?vº^?¸¨ÿ?äͼ@(áÄ@l|?ç7ü?çdû@qÕ@°ö?Ž"?h@ ?£Å?oqw?©n?›¢?¥¨—?½¬T?œÒ?9¢?F!ú?R­ö?_MÐ?®ì¯?«Ã?';?a¶?i#+?jn¿>Ñ?å>v[?(¸y?Éß?’Û0?³Š'?¿ù?Þ-á?ã í?×U?¿€e??È?[J"?sŸè?}Qß?,oê?T¶ÿ?ÀP?°èA?OäT?5/›?wG1?x‹k?¯âý?¢op?zQÿ?zcð?­º?‚ Ú?Ba?W ¨;C°=ø­Â?Œä?Åæ?qìè?ˆvº?˜5?ƒ*>br>±,‘?u=!?„$>Œª†>ÑÑÌ?6¹¶?vt†?.€>ü‡Þ? +à>ýŽ»>h„›>‡º®>3DS=à9Ð=1ê:>–P>„±¸>ÑðB>ˆ¼'>á<Ò,ƒ<È–«?‚õ¼?¹ØØ@1šß?Æbä?Ó‰¶@@@?U9Ç>À«>®Î?$ß?% ´>Á/û?ÿ\?VdÁ?YâÝ?]fP?‡Lg?®eV?Œí¿>åñ»>»\ƒ9ó=‹Öó>üà¡?%?¼‚?©†>&¢—>4­>çc>óQ˜>óƒö>ó²?šã•?²Ù?RúÓ?_Þ?k-?»Á?“zê?Rû?dC¨?-z]>ÿHÿ>ì>‡b‚> +o>ß*˜?‰ã?ˆ*Á?†s4?—ö?ç4ò?ÈÊ=LX>”U@ ž@ZR?@:? žZ?üã?_$?à ?§>Ï/Q>ºé‰>%7>µ?ÑŒ?ž·>Ø ã>Ó8>’éh>q>ÔAL?…)?„aV?¯%ä?¤?xdU?'a_>´³ª?Jtµ?—…×?±íR?Ü£µ?‹e=»öÆ?®?¿“Ë?{M<$!Ð>$Æo>úY? ¤ü?†Ê?š^·?ÔÐ?´Ž2?%ÀC?<r?(â ?!;h?–n? ¢ý?¦h"?™Ñr;aÿa>W{>G°?I ?&¼t>­r>‰ön?¹Œ?nš?º|¥?ÕuA?4üI>ûH?X?6]?Ÿef?¾Ðy?·Ü½?±?—;_?‘0>柂=Ûðª?’‰§?ØÆB?Ÿõ9?|>E?‘3"?–!-?„´ï?|l/?Ÿn$?¹ ×?—è?‰ôµL—?B4?|å?C›ö>Õˆ?j–?ë?Άó?„Êú?’f]?º2U?• ¬>ýaa??¬b?¾±?”‡=Ý_Ï>3¢?}¯t?^Ów>¦€m?aÌv@iøœ@FÌÀ>†°¾>[£=Ðà5?eé(?T¸—>þCÏ? Í?­(?§¾m=Û–€=ÒíŽ>þ–ò?Jé?2]?¦Ú?}ùG?}Ý?~Ç6?~òr?r±•?n%¥?+z®?1?9–œ?A¬?Zl±?VEå?ÏS??â¼?¬çŸ?£?ƒÊ?²$?¢§Á?®%d?‡%?èŸ?ZÛ ?Y²&?+YÚ?Oâ@(nè@D{s@Ý@¤?frª?B?kƒ´?~·?%щ? ÿ?¢°?­æÜ>Á8M>Vr²?E”ò?^B?Z ‰?V'?55—?3Ö˜?‰K?™e>ÞõÖ>t´Ô?Œt>?¦ ˜?‡Ò^?€ÓR?”#?œ~À?Uyà?Hzù?z\œ?€üp>¿CÁ>F¦?a\õ?ç?¡‡?ƒU?îŽ?ü!ß?—cY?‹œÃ?‚ÅZ?Lƒ?×ñ?ÝŸK?±g?«w?©u|?§qí?jå¥?vÄÔ?¡yú?¤„Ÿ?/Ñ?u\?] Ç?X{Ú?Ï7‚?Æò`?@.9?=¦@Ç^@“Ì?üT”?úŠ=?¼dŒ?»»?é +?ƒ5x?—î?œÙ?‚û? ]@.Ò™@!²ë?ÏPq?¾P¿?˜ƒ?¤ i?µõA?Âw=?á]=?Û­à?ÃiÒ?±ÛÅ?‚Q?‰²î?™å?ˆÖÊ?Læ?eÉo?˜$¸?3ˆ?p1ï?‘ ?·Jµ?_Œâ=Iš`?3wò?Á‹-?«z1?œ„+?Ž?š?p ? c*?Ä€?rh?µ°?8Ó?Ä~?‘Ó?o˽?¡Ë?©ðk?¶Ú¨?¸¿Ê?ÅÃ2?Ò_ ?v³Ê?,Š?µÕÃ?ÈQ‡?àG'?ë„ó?Yq÷?&ÿÉ?Š  ?Œ¦e?ˆz[?„(=yÞ;=„(?ˆŽ¶?‘•Š@¶V@³?Ÿ¯‚?¥÷Â?²#I?ÀéQ@ ç°?û_ó?©ÈÍ?­ëä?Ķˆ?›>qÿ ?%’?ÑM?˜ +>®¥? =Ö?lÛ¦?;§?5@?Ó>Ûò™?]Ú5?ºö?†r„? Ý? + H?˜¶?ÉO>æ!>?ÐÂ@Œ“?¢’?D#…?ŒNr?›0 @Øý@©3@9*@DÛi@!Y@–€@ ðW@)%.?:½q?=ý?V3?`/Ó?'NA?!‡?m??sÙz?‹¡‚?‚N>öü?C@"Ýæ@ÿ‹?|Á?˜Ä@-á?Ì +ó>WTø>Ø?mÞ¢?~@ì?ƒ$è?03?Ò‚ ?·#1?ƒ“?‚Õe?|¬T?‹oP?n?â?ƒ–?\†›?@ø?Š‚ˆ?ª¾’?¯W?³|È?™HÊ?‡¹?…÷Ñ?‚›ö@ ç@®L?ÓeÖ?±a?û÷v@ Ìê?«¸?‚>Û(>µŽ?å??õ™?¬”–?¤”Ã@ñ$@ Ïæ?œ”?¤s‡@n@ ÿV?”ʇ?Œfñ?¢Ô?Sƒ?‚›4?aú¶>{4q?×Ì?®ßÃ? ï”?zT@ÔÝ@Ÿ!?iAá?–Z?ê7ß?Öê ?ÊÆ@¸¾@7IÒ@Ðg@H·?Ñ@&?t ò?¿º£@Ñ\?å‚Û?‰—?®žL?ÑÄZ@}B@C@"Šº@ Æ@*@ìø?ÝL÷?ºUÃ?¹•¶?¹ß?3ïÊ>Z®Æ?‚?´%?Ñ?Õ[i?6ºº>^s ?ÃÂÀ@2?ù• ?Ýób?¿î¬?¯,?˜˜?…?Ô“?õÈf?ÿòÚ@jí?¥¿ˆ?„â.?.[?‚Ýé?´C†?ÁèG?Áà«?Á΋?õz—@*A? —K?‚ t>ßÉ>šwo?¦¡Ú?Á…Ù?÷lv@òÈ?¡‚?‡À™?’ðJ?“ t@ ß@,uO@ À@ þ@³ö@"¹ø?Ò·?ÀíK?øôw@?ˆº¹?iõU?%ÀO?!ŸÍ>¯Šå>­m@?î@@e›?Ƴ?À {?ž°7?‘Q²?£â€?ªM<@Pj@g‰@Áz@[?Ö[?¸||@]5 @|„›?»fþ?¨t?œR?„F?‰øc?Ž˜ü?‘5‹?“Ö¯?Ø]Ï?å¤ ?ªrž?ž\è?^é?GÓ²?ÛÄ•?þÅÈ@™‰@ÿ?Þ¤d?Ê&_?ã”Z?ò¸?|¬«?ª?Äýv@¨ä??ÝÏ?‰6?}Õ­?ÒÁt?ûÃ@xp@y?¢“?@‹–?Î÷%@ä@ Æ?éû–?ôòç?üû©?î`?å„P?ïú’?ø‘@ÈÕ@7çˆ@TÙ?Š~¶?›Ý?œ‚Î?›·È?“‹?¶Í?ûôW?ý-Ú?÷8@Hß@)‚Ø@3P?Vw¥?m‰2?£U®?½”Ó@ÿß@‰»?K?kl#?‰”?(Ë:@![@ Å?~Ó?z{²?š?~?¨Fè?Ø}?Ù¦k?ôõu?ú†@'ç@2‡.?þ1Ý?â·Û?¡Ü?‚½?Þ?}Lš?77s? +ÓV?>žW?^*;?êŠM@0Â@@$dN@dâ?ݨ?xzÞ?ˆ°Œ?¢õW?¶—ë?Û¸P?ãd@ yƒ@òò@9ÑŸ@)x*?¸?.?Åå?”Jµ?©—m?¦o?»ø¶?È?'àÓ>ö¸N?jµˆ?‹@+?º›¬?ÈÛæ?äüµ?ö%£?ð0?ðáç?ô•?íÑ +?Ít?¢—«?‹Æ ?R'?_ú?†ÎK?~]?tô«?|l”? ¿,?¥¯z?×\?Ïç?°/g?±ð:?„î˜?q ß@?4@2d@D·@D„e?úð4?—ûà?Óæ @ UÇ?Üð?ž®‘?¨!^?¶’?˜t”>Žw>Á/ò?ó×U?ïk>U׬>´¹w?ë?ìYÖ?¾)|?À]?âp…?ó–¬?bð]>+yx>‰ke>¦W³>9݃=H\M>*ï>ðš?aÂ?‘vÍ?™ê?/5â?²¶?ر?ë¤?ØÛ)?Öä›?ÌóÀ?În?¬¾ð€ž>°¥–>)q¥? ¡?Àkƒ?À‚Ì?™k¸?•0?eh§?Q€ ?iø?„Þ§?äzy@ Êû?ÊÒì?q.S?¢\¯?à³?ÝÌ?ç^:?ñ;?¯’Ü?¯|ú?êè?æÕ?è·?Ck7?Lï}?iHí?“Mç?Ð’ÿ?Ü×Î?º:i?±O@t@˜?β?£Ï?ï—ß@y?èÂ?r_?Š|‘?³3Ð?»áI?Ù4h?çÊ@»º@w?‘ ??fÙº?àI @˜x@c?ìQi@¨¿@û@ª?¬…?¬z´?Âì$?Ê“@,Á@T®,@0´?ÿÆø?ÞaG?®c·?ʇ@†m@Il@„Ë@8´@!Â@·æ?æVP?Ž_ž?«1?íØ?Öù?ˆÜ?¡…ò@§ @@$Å`@;{}@1&@–q9@‘Xk@•:î@rV@,ŽŸ@1|b?Y¸Œ?Uþ‡@Y«@‡Â|@DdŠ?ùï+?å1ã?Ðk{?×ï@FÖ@Gè@"ûZ@i¾?Ã…¢?¦Ð@.•ô@~ýc@F­?¡¼°?²1"?äe³?Ù”`@$h@€?ÝêK?ßcT?ÔŒ¨?Òf÷?úîö@,D@×y@Fi@?æ*?÷kÀ?桪?Pzm?/?¬?‰å@?‰N0?ÃØ’@ ÐÖ?ØÐ?,ô?³™@€¦ß@m¬?èÝP?çÉÒ?rr.?Qëä?@'*?ßÇz?®Ù0?§7m?£Ç?‘hz>ê.ó? ¬­?t«?*2p?mHÁ?xÄg>^›q>ä²?ð{ç@Å?¬j?Ot]?ÄÈ¡@Ð?¾ë¤?4?š,?‘m?sN¥?Í'?¡S½>2=ã>)>÷Á°?4¶?÷üü?ß¡ž?ôý ?òzâ?¥o?«ãV?IÕ?xê>%ñ>¦VÞ?&wO?5¬Ö@š@Àª=Ì„&=2Ž;gO‹=6Àá?“ã?&ˆe?PŒ>ð +T>¶j?-"h?¿Ü?«•?‚¿?ch? 6 ?-f?X;È?Lã?'W>=>¬>ÿƯ>ôÉ5=¶ø>¿ÞÑ?É^?nî?c3>ç¨F>ÅÔ¢>£+>˜íp>z­ú>˜ù‡? zy? ™?`ìû@¦?Ƽ>q£)>ˆfá?Û“@/¨ë?¸ å?3’ð>‡•X?#ðg>¯`>eïx?5`½§>ïT^>êÒ¸>òý?8±n@#@Ä?H?Af"?USÚ?S¯Z?Rº>ó¶“?‘9i?§‰=?Bí>ÑûŠ?j¥è?–m?À>_ºb>È‹}?FÍ>šò>[T„>õÌ/?4£Ø?Ž—”?˜0á?£Ø÷?Öw?‚*A?c>öÈU>ÌÕÖ:ëè€=Ïâl>÷6Ë?¢?iã?fVP?bÌs?_Kå@ae@%G>ö%>©¹]>¥ÃT>º>ì?¿Á? 8> ©u>{›=m›?˜ÖA?Χƒ?^ó>ôY|>Þ ì>ǵª?{õ?ů?z«>ÔÇ)??1ö?‡ª-?а’@lø?ì¤×?s# ?¾ª=/P>[ÿ?Ÿ‹?¬û?K® ?#¥²>à?&·›?Nø>Äœ5? d]?¶-)?º’Í?˜)·?’lf?ûö?µVƒ>¶.P>¥Ü{?Qön?Y'´?š¹?—èå>«IÛ>^¹x?"Ð?œ?Ý¡J?úw?B“Õ?|•>Fi›>… +?¸o_?çé­?­ËJ?“R?nkz?hÑÛ?š+ú?§dÊ?ÔM?Œr?a÷M?9Sè?§Ú?ÞÚ?˜œ?1˜Y?núM?” 1?(§>vE?1ì"?¨;?KÿÄ>]>š90? +}´?¢¨m@2L?øǼ?€~¿?“Sž?²>%?¢!ì?ˆ‰Ï?€Ÿ/?F9)?5G_?"dZ?%œ>.F?4õ@Õw?û\§?B[?(F#>mÑ¥>ÒK~?¾‘^?´dç?V'H?Hß?7,e?@Ÿ?6[]?,=Í?Ù'?—?¾õ?»¬Å?w‰â?~$L?~Ñ@?~á¢?~î%?}ií=­Ã‰=Ç÷¼?`yC?^kZ?$Ä?({/?|Ã?fV?à=Ì?ã 5?…fÍ?žØ?w2?mIë?Mmm?Q+F?}ûx?sÓX?\Ú©?a-?e•ä?iªú?‡vP?‡YG?è½c?ú °?,o?Tv?« ¾?¶E%?¾¡?À‡9?6k>Ëý¸?õ@«¹?àV×?Ö\”?'º?•†?šr?¢T?¨à?±.?=ø?L9?{r’?€Ë®?O?×Þ>5U=èó}?O¡m?lìÐ?Ô,é?èR¸?êã?ƒh©?º +£?¿ºƒ?.=·?%X«?±Ä'?·¹‡?…~?G'?Ÿ^¬?¥ëó?—ô?—Å€?ço??è]˜=WÀ8$?~sØ?Vç?‰Ôù?‚Ã?Âhî?Ä1x@Æ @'q?ñÙ0?ëÃu?÷ØÀ?õäç?´I?·¾I?¶ƒ>ñü_lgê>Ðs?-\?Z?{?~áà?Æ%1?„´ä? +µ"?†AÝ?½±@?»¦É?¹™Y? V¾?‘#^?Bõ—?®C?±¯?î¡Õ?°O°?Ž6â?Á›C?à"í?ædõ?ì©Ž?ˆ3?Q½¾?¬çå?ÄP@+ón@;ƒi?²u6?_|?´hw?»X?ì?¢Â‚?µAE?Ë­°?ÜÝ=?vŸû?#Åô?C:‰?UZ_?£¡?½’@µö@C@4ë@gx@!ó@6…?"0é?5?ªó>?¢ã?”kÃ?o´?1Ù?*Ì8?¼w?¨Æ@=ŒËÛ>H>5?„£D?ˆvà?ƒ*˜?q ÿ?8"?JK?Q¨‚?¶ƒú@1»?í´>®ˆ?^ål?Ñá£?®]½?ƒ/? ý6?Äœƒ?Ò”9?ÞâB?º0?˜ùÇ?V¬>æo’?7µT?!7,?z?“6?»£?ð÷ó@}™?ب?ÍÊ?Y^ÿ?'Z°?B£u?T@W»@)I²?p¥?+üê?Àý?ÓR?è$ ?æ5V?¢ÿ|?™ X>[dY>Œ&_@æï@õ?Ö[ë?Ê}¤?UûÔ?Y;N?ž¿¸?…d×>Bâ¦=ÆÍ<‹Öû>€å?|`?­\#@# {?ó Ò>Xr>¸r•?4ÐÔ?ƒð´?Ã}e?ø½ß@3^R@?ã, ?ãÿ—?à ?îa%@)í?¡óy>›Ð?\A?ÈÏõ@ ‰ÿ@3ƨ@29?þx¥@`P@ƒÈ?»°t?…õŠ?Ìl?û“?Ã?šwo?Ð?ñoŠ?Ãj?¯i·?¿`Ø?ºcÁ?|??¤Ÿ?Ç8?çr@â%@ !?¹2Ã?“ª +?ž‡Ñ?§po?ÝJí?ñ²9?É?¾Kß?;d?÷>9“i>V!? ú˜?-\í?º?Ù?ÑœS?žy€?•ãh?G ? +?"í÷?7³q?ÐK?äî5@â6@ϲ?ÏR+?Á7l?Ï“&?ÏX@Ôò@ä´@9£@>üÓ?ÒÓ?ÀßY?ÄGö?ÇÐ@q@yU?™ÏÙ?_ôŒ?8èì?*£e?Y­ç?jÁn?U[?€:º?¢´â?®µ7?58 ?(Ê@n@:º?Òjz?Ñya@ì®@£¶?Ê«É?¹?€>û?œš?Žc?zr@%q@ q?— œ?> ?¥+Ü?²Zž?à¢?â…I?¿–f?®0©?±1½?¼–?ÊY¡?ÂmÚ?ãsV?óÿ?£Æ3?… +D@MÂ@=’Ë@& a@6N?ÃK ?”B¡?ÉòU?Ým@ „@†V@ Ð@…?”!“>ýYÜ?ŽT?Ë‘â?­Çë?—~5?ÏÑh?üð?¦·?‰Ÿ?Nâæ?‚s?¹mV@îÀ?›Jz=–ÒR?hmP@Ô…@q–?ü÷@È@ +m@ ð@@?þÿ?ç •?Í‹>ûw?>Ä?{r?Œz‘@eL@W]@öá@.§@v@ °ƒ@¬”@”?ªþ?§e>?³TD?ª»Ÿ@Ù@Óõ@D @%jí@:r¤@ §$?™¹?„:F?JÃ?š?{@ +pš?ñ‚¥?c¦8?žš0@2’˜@)Áµ?r ?_Ô`>,r>HÁ€@ ̧@C©?Εˆ?Ã])?<‡>ö¬Ú?uqÎ?F¢?ï(Å@ +÷|@¡“?ÿ!'?´CQ?zk?×Â@oB@Ñ@Y‚?ÎÚŠ?”%?].Ï?·Óõ?¸P?µZ–?®Rß?§F{?¤Ä~@@Ç?‚gÌ?t+*?æÑl?ðHÿ?Ïñz?Ѩ­@9@](@-øÃ@ sŒ@.S@þ3?çœ?rä±?‡[?¦8?² >?ÙÚ?í Â@a@îV@$@äÕ?©ç¾?«”¦?D«?)kÚ?ß¹Ü@(?´Ìú?v?œV?Á߯?”û²?ž?GC¡?±c+?´8?Ýü*?Óô?£r?Ÿ,?ôÈ­?òµ?§S•?›¨û?kIå?O-\?£xT?Ö§â?°q=?pq²?[æÉ?\? ^ö?H?*»?²Pa?²8®?Ò+ü?à'?&¿?Vé_?P¿O?] d?nHÓ?m¹? ëf>‚?†¨?Š?Ž2û?’G[?–`?š{>éj†>\x¿?‡ÄÎ?ºùv?²-ž?­Åc?Á'½?êŽÝ?ÞŸ¨?¯ºÕ?®`?å ?•$‚?ú–Ô@ ëç@'{@è¿?Ĥ?gÚ›?l²Ô?x<Á?ƒŠ +?•)Õ?å”?¦ª]?¯pä@Œ-@«›?½s4?£[g?¾ÖA?áF?”ñJ>ƹ>Çû|?ƒ)Ý?‰J‡@ºè@òo?½óµ?šGü?¾r£?ºÇ™@‹Ç@Hp½@8(@A@•?þ/_?ô¼þ?³ö?¬SË@+ó@ £@#A@A y@3“D@?ø@ ìœ@&©@$3h?¸|+?¼ée@˜J@%­‹@U‡@ $3@Æ°@.}£@&@MB?ýµ$@!=@ óí@³Æ@ ¨Š@†ˆ«@¿]¬@§‰@:»Ë@ •?Èóa?ݧZ@Œ¡@£Å@#|@>2Ä@@?’Ñ?ÕÍ@¨BN@Ø*?êuÒ?ñÝÛ?à7m?È`?y•û?œc?“;¶@¢a@¨?ï®?û»Â?fßÏ?Š ¦?y¬ ?Z²¿?îË©@@ "=?ãbÙ?ãð©?Ñ–Ò?ÄÙ?õ³@ñ:@i@ g¨?6¹§>è1V@ðM@JN@%œ @äG?æäg?·¸ ?œ²1?JUµ?pm/@27è@Dþœ@GU@4b@›@‹@"“p@5xk?÷:ž?Ær?Äš¦?´$¡?°£‡?fÒ?‰9Q?W#ú?nøP?Ãu.?Åy?•Œ?o >òÜ?3?©™?ÆÛ]@ª@â ?R8*?bJT?µ\ˆ?¸;š`>÷Þõ>ú?1?‰ï?—+’?*[z?tæ?uF»?[2N?]“„?F+Ý?Dü?æ}? +'ð>õYv?zÎÞ?8¸þ>;Óò??ƒŽµ?Ž«?†¥?š[^?ºÐá?Åo?²=?ôa>ö*=E¡/>=?G?‡Û†>Õî=Ù8>>ø?~ <×JP>ñ~-?«—?†«M?9¸>90O>¢/d?¥½N@ øè?ªÎŽ?Nè_=‰v >j6?]ì=>þn?O¸f?H2?N¤å?UKü?aŠ?iÇ^?:Õ–>ïÉ:>ñH>ñ¶?3X„?«bÂ?šW‰?M¾Ý?bòr?rá·?k©ñ>s‘¹>‡j—>f>"Л?’?)£‹=÷U>-b>uê8?ƒ&?0…w>¾{"><Š¦=س>}Й>õÌU>…Œ>kÐc?^?U„õ?²ÓT?’ß'?u >¾—…?Ñ @/º@ý:? +¦ ?ã?w˜?tvL?‡©ê?’ a?îR:?å&«?. ä?¡´?)åu?3[L?>S´?9ÿ¹>¤DÝ>Y›@ .>@6s?ït?ºÀ?¢Í?š—M>êIÏ=Jµ=‹SV?„„ä?ï6?Ó»??¸Íš?QÃ?=?a1>?©Ó??¼kI?Ý?³´©?_BŠ?oüï?‡ðö?‡:{?‘ª +?’bF?–õ\?™= +?Á1?º†ë?ÀÞR?ÐX˜@}‡@@?MñÕ?N%>>û +¨?ZÉ?ì +?îJ-?½œà?¼væ?s÷\?püÌ?¶ùÎ?¼ž\@ÃU@Ž‹?›š?bÃÎ?át?ûÉ÷?Ê~Ñ?¼çD?ìBD?ó?O?VÁÚ?À?ª>ü-2?\Iþ?×–?R£æ?I£G?n «?|yu?”±½?§À-?J# >µ¯ø?¡YK@ >Ž?Þ¢E?œÆ?º?„lì?Ë”@!P?í@â?}&k?€9´?„~k?ƒ¡¿?}T ?}`¡?}m¸?8Á>>•>W²ú>¦›.?¾ç?ŠÑý?sá? ¦v?—Ðé?vg?…$ð?¾ˆ-?Ç»þ?ê;X?ÓI>·_>¤€ +?¾Æ ?µ?jºÖ?y®?­JÅ?£™i=4|x>s‹0@:¨˜@+€#=Ç3g=ÿgx=DZ[?± ?¬žq>ÿ<ñ?¨A?ü +ð?õŒÉ?³¢û?¸hÀ?@=Ê?@“Ç? ‹ ?¤H?áY>ÿË ?¸ÞÅ?ÅŒB?Re?3?L¿+?Dwi?ž_Ú?ªð?}ª¤Ò?:@?6™ +?“ØŠ?—©O?F?ÖA? ?kõ>ÕÈZ>××=ÅI½=T}?¬?¼o‚=Ð}=%«Ã>÷ ?(.?¼‘?ÁÒH?!%?3m>„Y>ŸË?€u?*Ô?ˆžk?`9>“_1>S‚?}‡?€›þ?:m?<‡V?ª3L?©ÊH?¤H?’úó@2†Q@-€z?·¡?Ì…:?Ê€À?Ç ‘?¿ ò?®G?ïÒ?>v?z^ô?c<¤?¯Å?Ô ?ôæ?‘B¶@0Z0@Gó>©ªF?."~?Ã:S?Îmû?æìú?îØw@;Æ?×þJ?‚FÃ?Ö_?¬.þ?¥hõ?•†8?|O?H™½?…[ñ?­Î-?€ÁG? …?¢ÿ(@-O?¯1?Œ?Oxd?ˆy?Í +?û(C?Ñ*p?µÃ?‰ÍÄ?`¤?ñó+@}@&w?êÐ"?Ø*?‚Ã?›·›?¡3m?¬>?kÊ=?…èÊ?ƒ®?åŽN?ÿ{'?¯@·?¨ÖÊ?›û›?–£?6ô? êl?~€¸?Æ +?Ø?w²ì? ©;?O“?)”?L¦?¶ØE?£‡2?&àd?t¸@+?úq ?ÑŽ?£}¤>ô¬?@¸#?©¹?ª^½?Ád?pÜÌ?$?7?pS?‚f¾?šÐÀ?—“ƒ?Œêx@ Q3@Gˆv?¬ç\<ø¾>«»ƒ? «s>¡â>3›z?é¾?2Ë?ßݪ@²?¶˜õ?œSË>½fÕ>Cø¬?‰ja?Ÿ÷ +?ƒYy?ƒª2@^¤@³É?¯²2?¡@ <“@¸?Ö[Ý?Î7™?ƒ.¿?„mš?Œ,D?‡"?s“?‹Q§?Åu?п>?ýÝÈ?É£ó?"†?*X#?ƒã?œÇ·?Ù ?Ÿ®­>°v?DG?¶Ò‰?¢?ƒÄ?’Ãi?¥ž?ÉÕ?ëx}@]ø@´?”ª¨>Ö+l?´?Äyë?¶v‰?§?f?ñ` ?’4Ã?â]?×)°?Îû?Æsà?Âñ±@ +@­z?¬\g?4ËÁ?xW…?Žÿ‡?›ƒý?¥Œ8?¬¡ ?«÷Ä?¦Ãî?®-œ?©ÿ?¢^(?ä _?úNX@â¤@ +¼?¹5¬?q?¬\N?Ÿ½œ?…1?b?xóA?zÒ£?³ËY?¿§F?(¡J>êŒ +?øèp@ Ê?£Tü?Ö ?ÒzÁ?Øír?ã¼é?ܸ?º`´?ªLr?¼Þ©?Á]p?öQa@óê?¤iý?šäÈ?è=X?óUg?Æm ?ÁÒ@‰Ê@ È>}±À<Ò&Ú?¯Ýq?ÀÇØ?‹.“?™Æî?àZ?à?j?±ÂÆ?«$;?Ü&£?ÖÔØ?N6¦??jY?sX?m’9?uǪ?]³?“qÖ?ž!?"j >ë†?¸7é?Æi?¹«>?½9â@gªã@sJ„?w¹)?|F?ð˜~@i?ä5B?×Ež?Œã?€@-ã@ÌÁ?Õü„?Ï·™?c£?+ò@Õ3@3l?ÑÙ'?³h?¼€?¾¹$?ïñ ?ÿU@,nù@;üt@ +ãé?è³Z@ë@.0È?íØ‹?¿âï?òØò@*é?Æ`Ç?šÊ?‡/Ì?}2C?‹Ýu?‹ö_?½B?ïlr?àõA?Í*å?â€J?ü x@û©@9²I@Õt?Ö˜-@JU@5‹~@ÂÊ7>üÏ#?lBu?–5Ï@G@5Q?¼YD?¼Kº?¼Ú?»qæ?©?¢09@6Eˆ@4™ä@!£8@±@6Á)@3s@²@PÎ?ºüQ?³ÿ?ÍE?Öå¾?óCÀ?ùŸ~?¨®C?†¬Ð@ê‡@9Æš?Óγ?yF?êsÅ@“ê@FÒœ@e¸¥@1Æ@Ñý?ÞÎÄ?"?w·>ø9ñ?x¨Æ?û«A?¿¬‹>Ð?ôÙe@™h@5¢?øNÔ?öÜ ?}ê?oZ ?Üß=?öu’@!«»@0óÙ@7º@ …?ßÙŽ?´‡?÷úî@@}w@q'@/Z@JËè@?˜?E¼‰?Žç?±¢??ô­ø?õw·@Ãó?ÿêE?nò?k2 @B,n@R¿?̆??Ñ?Ó*?Ì.ÿ@¼€@*¥?í;?™T8?±†a?½T ? ?]?ržt?išð?9+Y?Z= @™@9%?þƒº@æB?±w?q£[?MÏã??¯]?¯/D?ÝñQ?ýÖB@ª«?ñß?ãç?î!?õ­!?ßí$?´*|?«½Ö?‹(q?”âò?³Ñ½?³º'?ÂÔ?ÎXÐ?bÂÕ?@Ýj?Y™>îïÒ?Ü?#à?7˜í?o€¯?F9×>î1?D<|?êK_?Ô\?Ž£U?’“b?pÖ9?mQ(?Ç^~?ݵì?p†?Ú? /?ë´…?É÷Ã?—Õ£?’Œ‡? _c? Jƒ?¹àù?±s¾?©È? —†?]°?Q6îea?¾^!@6¤`@ ÿ?Æ4?½F_?´WB?«_˜?÷'X@Ǻ?¢·f?gî>ãEF<‡–Ô?‘–@0º @#u@!K]@·h@lá@^'?ð`¥?æÆç@< @lR©@E’@ë6@!;@Ý»@á9@7û@2Ï.?óó–?ß¡@5õ@Pûï@(LŽ@¸m@ xõ@Eï@+@+Ò6@+Æ´?ôh?±¿@ @'Çc@T> @pks@fÌt@a†`@^>2@A2@<@N@Šµ]@oí&@]óE@r[P@Œcó@]W?¥Êä?ÄK@)%I@&“W?—a©?˜£@%@:y +@]‡¥@„!@m¡@/l@‡‰?_CN?TƼ?û%F?ø¿c@b M@€)»@IY®@"LÀ@#ø@$FX@.6¥@NRò@[õL?‰ì^?…0á?ã™b@D€?ìV?ëÿ?´ª?¶S?¹L>?å:9?ß³¾>åuÇ>å“(?ð­?“ÔÊ?å U@<;?Ò?¬Ó°?÷w?„YË?Ž±:?… W?sö?Ù„Ý?÷6¶?y?%Š¤?Ú$@¦@³@«”?ý³›?É7?À’Ó?›Æé?”V>ê³Ë>êT“>CÒ>¿v‰?‘˜¡?À u?Ð^â?ß(û?‚¢=?% ? „´?퀌@{A@ëÉ?ör?ÖQì?½Ý…?£g?©“@?„@¦Ú?ç(\?É£|?sÕ?z–ê?»¡¶?ÝËd>õöê>ú ÿ?rA?}ÅÔ?Oñ?4@‰r?÷ö'?- |?" ?½Õ?¶ù=e^è>…³?¬À?ÒÖ?=?Ç?_Š@?ã ƒ?µIGž>Ï7D?%•?ƒ†(?Ÿ¹¥?ʈ?n?^?V~>Då>fƒs>@$>UëÇ>…KÊ>zÌ>΢œ>ñM±?¨f>Xœ>'Ú„>Š?á>ã%x>mPb< –Á>çÜW? ¡Õ>ƒ¹(>L¨?‰Ÿ?ë‚P?$¯N>_“I>&«»>ÉåÜ?lm?MàV>› &=Š i=aBÔ=.Sˆ>†¥>çów>yHñ:-u>F¨o>ñű?j¬®?ëÞn?Ì°Ú?_PH?pîî?©; ?›œ±>±í1>²r?$¹~?Û?BöŸ?BiÑ>£µ¨>ƒJ/= [?…?@å¹?ûÎ>õ@>Žá>~,>Ö ?W«>Éûø>D(? +V÷US>ÛA><Á->Pß=ö­k>QŽi?µí?»¢j?£óN?¡—?…•>øPf?2Œ•?;ò³?jïº?fÑX?¶Ê¦?ÊÓÍ? ¯?”r?+‡v>ùs>G>Ù½?;?Sb?yxA?4–À>üÅ‹>ú‡>ù»??7?ƒ0 ?ˆÏv?‘ƒ?lF¼?¬_?‰- +?è–T?«×@?lŸ?a7à?ÕÒ?º=8?h%¾?Oç,>ƒV:>£›À?¨G?R–>úÖ¤>ðM>±[)>ÚPß?Ÿ ’?£Í­?±Ÿ?²Í‡?-8?‰…?³5C?ºFF?½Ñ.?Á®]?È`? +š?+P‹?;ƒ3@rø@2h?è?á û>Ì–Ë?Ty?‰SÊ?@Ò>?2¨Ò?¶¯÷?Ížc?]š—?vá?Zù?|tI>ú,R> G-?nú?|§?ËŽK@ +Qª?ë](?½¥&?P"I=|@>î?} Ô?I}â? +Vk?Ræ?Ní?f1Ú?°5Ç?€4Ò>¶cJ? PŒ?’²Æ?ƒø×?e®S?¼?œ’Ô?§{Û?¾dr?¯ù§?ŠÏZ? æ±?æ#ê?É Ì>þ-4?)ù“?°ËÔ?ž¬Ó>þb;>Û`§=>C>ngA?¼ýì?Æ@A@v)?÷eî?fN?^Y|?V_–?d?8?ðâÒ?ã+>>ÿ!—?BÞ?ëÍç?è‰>Ñ«¬>êÇ?BüK?;Ù™? ó?»?!>ÿ¹Ñ>ÿÈ«?H?—ã$?Æ?Ô(:?Ýkj=÷u=p¤›?ö¢?I=WW:£ÝÛ@”… @–ÒE?Õé?oð?k +o?g¦?ØL1?ânÈ?}J?~8Ý?ƒ}?€‰D?µ'?—‰ð?^?šî?¶6?¶òƒ?’R?’ø ?[#s?LãÇ?]0á?cÇO> +h=®Y>×>æ‹B?&üV???€^Ã?|%š?zôÚ?x)t@%…@#þ?kýž?s‚Ä@[Ò@NB?Ok?‚’®?’›?’3¦?ÓK‘?ÈË?¢ +??¤ö(?×v?Æ܆?RJ@?[W¤?œÞ?œ4@*H +@IÝ?ëK?ðÉÛ?ût*?ë§?¶%?’G®?Á<»?±æ8?çf?L·Á=‰‘ñ>?(?ü:?Kb1?Ö)”?È)¨?„JŸ?­F¡@ –@²ø@*ñ?øS?ä¡å?×^^?¹•‹?«$K?™Ôü?ªtC?Ã~?uP5>up>æãÁ?/"H?DæÈ?hª†?¸ ?Àʇ?sý?„/?ø7<@8‘–?Á'?=3¤?¢U?Ãê˜?*<ð>Ž??e¶ï?š=©?¯Ú?·z?gbÊ??Ò«?wë©?†Íd?Ò¨œ?ÞµÕ?ÿà]@ÑA?ŒÇD?p?EWP?:ÿ0?Ü‘?èWw?“N?ŒVl?V??!ç +@F?ócÖ?{Û…?hŽ?ý†? +½?8«?¢ ò@Hfë@!uÁ?‚ôœ?‰Bô?ø?e²Œ>Cö>ƒp­>‰¹+?ÏZ?ŽÖb?a-??l„»?¼W²?uØM>«Ÿ?‡Ù?ØÈŒ@,w/@_³ë@ÿ?Ĺ½?_iš?(à@¨@/-8@®Ó?ä¾?¸g?²>Š?Â]c?ÄÃF?RP%?%ˆ?Á(a?Ígš>´Žß>‚ð?‚ì?‹œ#?÷â?ùÜÑ>­´ž>óÐÀ@ E@YJ?º?’ðÓ?²+?˜]Õ=Ÿ"6>î¸W@?åB¾?Šú´?«¾‰?í|,?E\E?ƒº? vu?Ænn?“¢?65Ž?^?ì?ƒ Ï?ƒ¦?ƒ?¶ ?ß_Õ@îˆ@,ü @´Á?Äsi?ÄoŒ?Äk§@úÛ@; Ø?œÖ$? Íì?cêm?‚—8?ˆoà?G +?¶˜l?»µJ?ß#?Þ­@„7@#|ê@n=@…þ@ßÆ@U;?žüx?£v @ûš@5@m>@^m?Ãñc?Ø%÷@:nÆ@&g?ié?Wsú?û*e?á?oo?¿§?ÅyŠ?¢¦¿?å?_%A?×? ¦?^?+´+?HÍ?d,›?‚JC?pèY?O¶?ŠYÃ?ÀÈ?ÃÓ?¼˜A?¥Í?Š×ø?[ z?4Vx?™aé?ÖÉ@’n@HX›@+ÅÇ@o!?ñnì?Áˆç?žjê?Œ’S?ƒÜC?s'ð@¨@(ħ@¾?à(Þ?«û.?˜¦@7@l?óEè?ãZ@@!ïÞ?ÎÓ×=>Ô¿÷?\F? !M?Â~8?Õù??ìnö?ôƒ?øü?ýäg?fx?RøÞ?;¹?1l"?{£Î?t°_?ªËð?²À;?µ9?·±j@-$@{?*ü>ýŒ?·?À½™?°Þš?ª—V?ËCÔ?Ь†?ZˆÄ?U*?›·?©iÇ?Rò»?A~Ù?Ô¦0?Û°d?ó2?ýO ?†Ÿé?f‘±@ ³@7?óFp?òˆ?2&?^•?‚•?7“æ?Ü[²?ãŸ?Í®.?Î?øú8?ÿ.Û@D^f@F°ã@'}Z@ £2?œ®k?n}È?Q,‚?Qð?WGë?\¨¦?’KH?–%k?Ï?Ö·@zì@À@ Ä@²@æ&?ýÖ?íëx?? \?¨‡Ø?Ö¦@?ôˆ@?ѳ?ÀH·?Ü×ç?âð?à‰O?ï‹Å?é:?Ø¢†@QÜ@@ X?öm™@ Ì2@Ÿš@·Ñ@öx@ùß@%4@è‡@–?Ô™-?3¬b?B?þ=s?ëÍÈ?®Z8?ã‹@ã?àª8?pÊ?HŽš?Ö x?É­Ì?¾?»Á—?¶”™?½?@"dS@"ŒÌ?ð›!?ù§1@ &·@%/@,±@HQ?1`Ø>ùãz?•õÁ?Ÿy ?Å=?ØT_?òå6?ùfO?ʹ?¾Í#@N+¢@}¬ô@5£?¦»?ÖEa@ô ?ÅÖC?f–š?–«?¶m³?Žut?)mp?¸‹+@HÑà@>hzt>wÊê?pá?<©?‚ }?„¯8?IsF?i?÷ž?öúÑ@ hß@Ù`?«"œ?œ9w?½Ul?Êo @ L9@ç"?çü)?Àú?v+Š? ê?D~×?‰tJ?ÛHV@gœ@ ´ ?üê¹@eü?Öq(?È.A?ÌôÝ?À¹ù?Þá—?ãÙ@µÉ@ðÁ?"n!? +jž@ +rí@ Ò?šdŠ?`2¹?l™?s{ð@üg@6r?þTñ?•4-?ßQ~@"Úq@‡ú?¥ð?»ÍÖ@ô>@O?thÇ?÷¨?†z+?Õá?ýÿž?øN)?«¤è?›¨º?˜Ú—?Ž›0?µµÑ?ݬ?ÕÚ?ÀÁ ?ß”Ó@ õ@Þ’?´$ã?²•Ï?©Ô÷?­üî@÷|@ß@¸<@Ês?ß³ï?ê?T"m?Çn?H)*?n¡Ø?±L–?ìýu?«k¤>î+|?"ê?¨AP?µ+K?¼É4?´ ç?rK‚?mIz?§G6?±ÈD?øf?yÑ9@ ? @ML¢@0vA@ +~Ž?éAŠ?‡y¯?ŽUš?©\î?±˜v?¡˜;?­}j?Ui+?&?ƒ +?°6Î?¯Å¼?¬# ?½°Œ?Þ~?Èùe?…Î(?€Q£?¯}È?¯j¬@ NH@à?ðxþ?âI?æVÃ?æ{j?éxµ@zu?ügD?À§?ÏKL@"òN@6?†¶?h!1?óµ?ŽK+?}Ì¿?hp?K®…?W‡ù?»äb@J\Ö@HÞÏ@fý@S°?ÝŒ?ÕE\?éÌC?îÇ5?êé?ç$=?êð?ï€%?îÇæ?Ђù?çì3@5â\@4:@V¤’@eŒP@2?ìØ?Ð@y@9£@†v@_7Š@H@;ù@`oN@]çj@Œ9@‘{@SwR@H]Ç@2%Ì@a¨?Ú:?t9?–ŸS@*ýy@*ôê?£Îì?–±@5@(ÝØ@ï?Ë ²?²üF?ˆ‡?|g?§\…?¢@ h@!Le@*zÛ@>Œþ@#þ‡@iË?ú™?Ù +@,@bTõ@_®©?ÌÂ¥?»ú?ÚMá?äžx@–Ž@@¿@,R=@ 6K@bH?±æa?»%œ@òq?åÌŸ?™ w?ŠÇ?ÿVý@ ÒÈ?õu§?«?™fÄ?f¾Õ?zÓ‹?­U±?¬™û?$¾Ç?ä?Ðl”?è û?y>Ë}?Häý?£ÄŸ?”Ö5?dvb?€Ôj?‡\?m¨>ÒŠ>êá?WÜÝ??-Ô?EÎE?<ÖX?±í×?ºÓÚ?¨ç?•ç?.?´J½?­ó?i–?Íè™@¬„?ü'Ù?¡ ”?¨é?¯V?–T>0c·>â´ß?sÆ?f'–>bS&>G|>?5; ?ž >ü]ó?õª>—9œ?þd”@Ô,?Nr?^Øì?¦.‘?¼À?è4-?ËT0?¿+°?¿ì ?¹ª%?«Þ?œjÿ?wJq?Á>ªg=ôê +>ÌǪ?A³x?@ú\?*??\´?L=éû}?.éü?üh?¿^>Ìø¡<ê < P>Žb¸>—ƒ?/¡E?#Ò™>ã?˜œÁ@ãÎ?ÀìÌ?›HF? +>¦¹Ø<˜ÏT<*?_¦ ?Ð;Ç@ ,?¬€Æ>\.·?#y”>²”4>?ð?›ñ>öé>ðž!>?V6;ñ‡}?E$?²)E?= j=qä>‡o¦?&&Ü?EQû?r þ?xWæ?‡œp?yÁ¦>óTí>ùfó?#xX?-iÐ?žÆ?4?¢A³?œ‚a>¥v?>c^>~*>µ¸?_àP?|µ_>ûLO>¬z¬?@Ç¡?uÆ-?UÄ?H}H?z.Í?ŠõÅ?™­a?°L?L;×;ï-Î>?Ä>þY?&ŠÚ?le?J4\>÷M ?&Ð?”ë?zê>·F†>À9ò?#Xå?1zO?“Xš?’m>ø-õ>÷ ï>uHÍ>Âé?yÔN?†Y?$!’?B?oäR?lõP?)Ü)?°<> +ã?‡¶ã?ºö?Œ[Í?qUâ?z.·?zb? _¤?µ[8?”@‹?yÈL?yØø?yåç?=ù)>ú?&–¸?hã‹?)2?£>Ú?‰ƒh?cRJ?7*†>…!3>{-Þ>l +>\ë">M¿>”À–?)Ù…‘>ÛãÞ?6ÁÚ?0Lh?QÆ?d;?¼c ?¸w×? ñ?fæ?|Ç?€nm?s?n^=öÍ=§*^?“®6?¨Ï@–í@ ,„? ýu>£ŒJ?¸?ë=>J4@Áé@0ËÚ?£Ö?;‘?7PÔ?Qqƒ?Pgù?D5?<Í ?Eæ–?fç>Õ£Š?uàK?±å›?Ú¤?úù{?u‡><û¬°=9‡°== à=|#Ô=¦d>1§¡>¥­s?ýó?Yß¹?/©Q?V?&ó?J8Ä?r!‡? ž¡?½°?ùûþ?Çu?2­?.À ?*Í,?1”ª?FÌn?MÓµ?~9E?w±ä?OÕ?;é^?#JÏ?)âH?z{´?S¬?=‚G>ªnu?¹?¾òN?êÇè?éŸK?þûD?ï$‰?ZûŸ?Tè¸?Wãm?U&>–óœ>µ ?¡rÒ?™®U>íî>ëˆP?fÃÝ?V×Ü>¨Ô]>Ê @ +¾ @²?6Èë?-ó?g2?X‡@¬?ÿ¼?¾À¤?½ï>Pѱ>º×Ì?¹åw?·lž?Û ?ò·?Žk‹?‘?](†?W4ö?-|?2-T?ÉŸ?w?…Êl?zþÎ@ ð\@€?œz?x?ªØž?­oª>Àƒ>Ç?&T?âw>¶5à>™Aµ@@¿?À“±?»1!=TÚ =°¥P>“ù»>Í™S?12?ŠÈn@((²@&ëÂ?M¢?‚µê?™|?Ÿ"þ?Ôåu?ÙFL?Â-?É_æ@'z?ø“†?2Ú'?:KÞÍ?ã™?¬+s@ Œ@•&@#Ó:@p?‚Ï?¦G?ïrJ?ßÇ­?Ì‹G@¢#@&KÀ@ÞÝ?ãT?ÊlÀ?°´V?¥¹k?“ÌS?¢?¯ÇM?£1±?‘íÙ?•âø?¡@Ñ?^~>ÌÙm?G8j?Œ6?=}?‚¿?eÞØ?—ôP?Ò© +?è¤6?©Cu???·I?¾}?Ã?Yl{?¼þ?Ñ-%?9…Ã?ºÀ?:?@¦É@‹U@“.?ÇL%?Áµa?î‘?ó3Ê?¶R³?¶(?Mî›?I¢ƒ@ê‰@ÓL?ÈB?¿çÛ?„v·?~tŽ? y¹?5H¨?²“Å?˜q(?þ ?e>+@ —È@X¥?™|U?ÉA@$Ö?âh?J?Á>õš>Zê0?æ?×°?1 ’?>W?;”Ñ?yŠ?ĬI@du@#çE@!ƒê@ á+?òOÌ?Ķ??WÆ»?$@X@'eM@!“™@]'?©Ÿ;?ƒ( ?S›Â?QÇq?òpR@ç?™õ?–¹?çà?‚m?»`Í?´°?¸“?®–®?—¸?º•?ÿG?@Æ2?àhq?Â&é?!¿??ƒ ?iäÁ? +Ÿ? ? +fÙ?–¢»@áœ?÷Ú?m“'?tÔ?ƒâ?§C ?Ù‹Q?§`?S~Ù?®o†?î¢?Ö [? æ?¤)g?™h@?Žô?‚øl?…i?Aî×±>ËbY?¦+?¶/?¼Õ?Ãy@WS$@Ták?;4›?Ivw?ÄH?¼uL?_‘?„Óa?óBr?îÑÑ?ùÀÂ?õuÖ?®–«?°õ?ÍõÂ? €=´¿ ?0M³@!íŸ?ùÙ_?i‡? +œ?#/a?˜Ë?@ mM@²@0™@ƒà?ØÍe?±ñ>?‚<Ñ?‚5§?‚3?¿r¤@)k?öòã?ëec?‰_‹>¡\?!?_\@åÉ@M¬–?ô}É?wh¡?„oä?… ú?47@?ˆ„?¹VY?ó•õ?žc?€„µ?™d?¤˜o?ê?­A?÷÷Ï@@<+@–†@×@‹%?‚%?SËÎ?žM•?§-?É¡?Ðú?…ô|?p_T?…•h?…ž^?„¥F?ou?ê?÷9Â?"Ò®>Ø}ø@¸W@O ?Ís?ÁŒÛ?ÁƒÌ?Áy.?Ák›?Ág>¸Ã >k’š?ª/:?±Âî?½û,?Çb?†C?€´ç?¢YG? b?¾Jð?Àâ?‡Ï?ÌË@4Òm@7þÛ@¸t@€&°@\¬?ð ?Ÿè?–Q ?UŽJ?L!•?âö¨?⃉@ ;y@ îf?ÐÈ?ÃQ?ÖXT?ÝŸ=?ÂoÝ?¿êÞ?¸œK?¨^í?¼è¶?¿½³?½1Â?·Þ‘?Ä÷?’ +¤?éŒÎ?ðͼ?œ!?vF–@¬R@*þ¼?ÿ?ùZZ?ãA¨?Úê/?‚°¹?Y -?‡Gn?ƒ•S?ðeº@õ@K‹¯@^uW@(ˆ@p ?ßy?Ãz®?hã?=ú?Wè?Žè2?îG9@Ùù@4@B?ãì?»ª4@C›@$ý‚?ëÈè?Ÿ,5?õŽ@ç@ñ@$?§!?Í?œ?Ø/?ÂU@¬®?ã@Î?x/H?L¾>ü÷Æ?^uq?«ô? ÙP?žŸ?´ók?ãKÔ?÷gø@øå@.\?–Gë?Á®i@HžÞ@Lx@:.¬@1(?õ,þ?â +Ð>è\? ?è¿?å“ž?Óc)?Öy1@ +“~@ }O?U€?+°k?Ѥõ?苲?–£¹?j\?ÞD?þ K?œ†= +›Ð?] C?²®@ +lF@ˆ¯?å1?¦)?ƒ:—?Bø‹?²Ím@ +¤]?Öµµ?x(·?®¯›@ õ@"9?¹Ú?·%?³ßK?›¶À=YWú>7Є?cJS?h?v@ Ž@ix@%¼@'… ?úÓ?v˜?â¾™?缕?çÙ?øã?ù¨?öU@<:@Qò?Í:þ?uže? nh?Ð3¡?ø¶h@è@ËÌ?áõÔ?ï΋?ý¦L?ýú9?·rÛ?´6A?ˆ…Í?„ð?¶|2?·Y?¬x??ž­?¬˜?ìöw?üf¦@-)4@H³@6û¡@%ö@ôg?é»@BÒ@—@t¶?®±Ì?²Kf?´áë?¹Ä@ RO@®…@8C@÷R?À›]?´þ?´ž?»AV?–Ôî?lp0?ÌÜ@ åœ?½ç!?ÛP?h@/‘µ@8¥?å1o?à…?Øœ’?àFW@>a@B‚¿@.Š*@0MQ?Ò:â?“ˆ¡?€%G?nœ +?è@1„d?õ§€>îˆ>û×?!¢?"w¯?Hàå?i¿?õ‚¡?å@?¸@?±Ãð?±ªÖ?±–N?±†?¸5d@ê¸@,<È@Ô>?d5?"™1?*ÔÀ?3X?&hØ?{v?“+?¤êx?¤‚Ì?ª1Ô?e<¹?ú?jÈ£?½ ¢?¼ìë?¯ªO?¸&{@ ÿ@Z?ìLY?öŒ“?ÊøÂ?µs.?±¬4?°]?ÊF?èÞý?σ—?‡Zƒ?–µc@âM@¶4?=üu?$Á?ÛðJ@ S?üûü?æF´?Ç’!?› X?Ò0@^@Zd¼@.®Ã@*Q?³…?œ‹«@Ûå@ë@4¬@Wq?üFd?¶÷¡?À̶?ä<)?Ö ­@N”¿@YáÄ@NßF@PgR@’F¡@¶ô§@ˆŽì?¯Ú?»z?ï¶@æ @PÅs@VE˜?ü+Õ?¾Þª?ãŽ@Mx@¿½?ç6?óð‹@F*@#®{@’Q@w@(@¿C@R©@~ +ð@Dq|?á"b?ìOM@ˆA@Ø?¯­³?ªðJ?ý»¾@Û@ +Ÿ?ÿ/P@‡š@(¸k@!E?ß +?ÙÍé?‰3? NÑ?Û#?Þhß?Þ6³?äÎ?¼áÕ?l±’?}®?Å_?à•@{’@þˆ@§³@)l@ bé@zŽ@óâ?ñC~?À·ñ?~?2;E?ãíü?õº?Îúo?¼?Ĥ¼?ÑbY?‰ø>ì,‡?I™.?¡¶?˜›à?Š‘à?‘ta?¸ã¸?§U+?·ßˆ?ÒÔ2@õä@è:?}y>‰Ñ?Qã?®CO?¤ð_?ÀW ?§x8>X–h=U>?ªÆ?¤Ë?uJ?l1p?Ö{"?ý F@!O©@%† ?©.¨?P]?5ÿ?OžZ?‚Öa?Ì®U?Åê|?pÖ4?yÔû?‚7¢?q|Á?V'¬?Z þ?Ê2H?·ÿP?dâ:?Pp¥?«|5?±˜æ?tñe?jÃ`?BS*?&c¯>Þ]? ,(?%û³?œ&> cù=„Ô?ŒÆH?—!+?W-B?‚¶¹?ÊZ?ÝÜ?õå¿?ͳ(?«l>­ð;=¹f‚>ƒ®ë?½Ã?fd•?5B¼?Š¤>ø¬>×AË>±C>øC ?Bͺ? Yí‹þ$>ÈÛ‘>%>¼Ó>D19>±£ý?öt?X-5?E¥P?˜‚ó?¢%‹=Œ´=Ãc4>IôC?M¡>0?MØ'?¸¹?ÎŒ?]ž0=X>Úu>ºÉk>¢'r?c­?pDO?÷>ûÅ|>ø„È>ñŒ­?©Ü ?ïD?Öy>Ûþ`>º=‹š?53Ã?Ú®Å?ºmP?sÄ?AvF>Æ5>"2>/oC>Ž²æ?“F?—O?ÓÜ„?Õ¬ö?wj?h<>…dí>@­ ?Ò;?õ?_?%³\>Š™ë?+®ï?YèŠ>Õý>'ñN?“5:?èƒ?†ÿF>èÂ>õl=>÷ÆÅ>õ´Ê>öÚù>¢˜=Ùl=ÐÇ$=šˆÂ>…`•?0–5?)¤>÷œö>÷²q>÷Ì?ý?+ï=?"2Á>\¸l>`»ƒ:ž#P>Š»_>’×…?Å2?úq?œ«?¯ûh?kü¦?[Î4>!(?|Ú=?¥-!?:¢{?È?•Bõ?º¦ @"@6û?øŠ?´'.?g1²?’Œ?u¾X?žD”?WD©>ú8?4\³?€ÔD?¼5?öè?µZ¥??@?Q¶ý?qñ?¼ä?½­”?ª¨?’öa? ¯?ÍíT?¾JR?’?ƒEó>#è?>—@½çÎ>“{¸?ˆÿ?Œ?£!Þ?ÁØ#?€ü?bÅ‚?ÕÅ>üL ?yS@?šS„?;0">Ùwâ>›Èð>hžÀ>Àùt>üµ9?„ H?·üã?i®)>ôè?6‘¹?eG»?$aÙ>ÕŸ%?xœ?Eõ*?°gü@¯e?3 +? Å ?¤v4?«~?uXú?¢Ó?ãª?Ø{g?²­^?–ŒB?R?}–‘?¬˜? Ï’?~'{?¥È%@ +Ô%@Â?æª?ÄxÑ>þz2>þAö>öÁ}?] ™@:¶@?;?Y ?›Vþ?’éý?#gÄ?øî>/®N>‹È…?KJM?eúO?áX¬?Ü0!?»m!?±¼è?‹÷ú?4Y?.Ì?ÇÐ?¿°? +:Ý?¤E?§Ò@?“£ß?•Ý¾@H?ùzA?|±?†*‰?öºš?ê?†ª?ŒË-?á$H?ÕpU?g2?(˜k?®†?«­›?“nˆ?Œnj?‚®? Šj?ß•ÿ?ßÍ(?Ë…Ù?ÒYK?fŽ†?\x¬?VC?T¡> ð>’¡?g á?}›A@zÉ@Þ2?¶ÿÀ?·m ?µB?’©@8=@'s>å}ö>âÌš?¯O?)òC?Ÿæ?–½O>›c”>«¸È>¼>õP?`‰?€DN?€2?„5¢?ˆP?Šöº?‡>?z±O?Y¼?oX ?¡]?²µb?êN?Úm§?’ÇK?zçW? +§?kD%@hâ?É´? ؤ?;#.?îñ@M€ @4CÏ@!RÖ?óò?ÁÏÍ?— ê?‚Ô>ó®>“­x>gHÐ>V®?¥‚ ?Õp­?_x>­o?np«?ŽÖÅ?Ñ–?²A?:§?G ”?ÌÜ’?åñ$?¬–R?œù,?­X#?±L ?e#x?o~?ìµn?òÔð@Æ+@q?ùU?ÿ÷@YÃ?ëî,?|äv?OkÑ>Oÿ#>Ód?l8}?\þ ?G/©?O“Ü?Wý?žgð@’?Ê‘?>UŠ?î>}IÙ?`J{?ÊÍÛ?Ç…°?ÈÌ·?ò1n@Ò(?Ó¼?˜5ó?åE;@±Ë@È?ó i?Õ‰?Ä©m?ÃÊF?¿èû@;@#çì?–¼?Zý>©ŠQ>qó­?[K?ó8?æP?óô >¢Ÿ0>_+?ÅêE?Å«*@˜þ@º?ëAý?ìWl?Û`å?Îlx?q—1?‰Ö@£‘?ôyú?>i?Oßx?“ª”?®“å@é?ÇŒ¨?Ñ?fœ?Ó÷?áÀ¡?îh?¾âx?ƒÛ?lhÊ?U¹¼?q¥c?ƒ¤?š•=Õ?T ?;üª?!s?¤j?wÀÒ?ˆU^?½¦ê?ÆaË?Áv?½?ÂçT?Ä2ƒ?¨@?žÓ ?ƒ¸ ?‚½ú?Ýd|?ܦ’@d°™@_\è?±f3?©xŠ?£ž?”Ký>Ú-J@G?@(Ú·?Žk?M—ä@N—@Þ?å¾T?× w?”!º?œc?ÂC?¯ò¼?}ôz?˜L?³¡¤?ª½?§Ó? þ¸?–s¤?·s¾?ØÿH?¡ƒ¬?6ž ?Z>?¤vu?£ õ?«8È?Ö³¤?õ>D?µ O?‚ ­?·;n?är^?Ê«L?·Ï½?jÁM?Ùô?» +%@ü}?×È?¼‰;?›¾¥?‘bc?5ãñ?¾§?’1a?±SÉ?ÏÆW?×m?¨•¬?œG/?ÐN?áÂT?™•&?‰â?! >?wG?Ì¡?ï×d@¸ô@r²?D0w?P€?´~{?Æiy?ö¬x@nL?–1¢?‹ðX@;~@C+?™ÐŠ?Œ=s?½É?Á‚´?çôî?èó8?3|?xkÛ?Eÿ?<K?÷9@ÉS?jYÿ?OLI?b?Qa@ 1[@\"?Ùõ5?Ιï?þØ{?ÿ¦ß?‘F±?—Ü?¸å?Ë“ö?X«ö?_Ul?êU¨?ë z?«7?¦G'@ "@¿Ö?ç­ç?í‹?Ä’?ÏvÊ?cdD?]YP?ŸäA?§µT@V´u@gÆÓ?ÒAD?¿³ ?φ?Üj?å•?í5?Í×^?ÍÉ…?p|m?W¹?§Ï?7A?™Ÿj? ¾ª?×PÙ?âÍÌ?Ú?Õr@?ÚO·?èØï@õ@(<@?É'@O#Â?—jf?#T@f‰@Ä$?¤}ü?hÖ? #?®8i@ ¯@pá@‡ì@Ü+?ú¬:?Þµ‹?áy^?ä8æ@›Î@[0@!ò@ @!‡±@*¡@!D@Ì›?øbt?µÚÆ?£µ?šŸR?¢V¤?žvi?ÛŠÌ@‡›?Ý Ã?Ò2?Ž[?{¦œ?’*0?¼‚?Ú@äõ@¼ü?Öi;?º_É>áó{>̵= Žc>½2i?ú³¡@§@¿@Žo?úb ?øR0?\¯Ò?hÖÞ@©ú@k?»,I?«bf?¸¹ +?»>¼@5¢@*öG@ÚD@Ô(?Ý°ø?¶ä?³©7?²ÔŠ?Œà4?…]ï?ÂËÇ?ä M?¬…>?xxë?Š#?¦Ðh?“b?KŸÜ?˜—O?é3Ã?æ'í?çð²?´÷>÷´?%ÔC?®¡P?¦mÛ?¯.ê?­Ž?Úï:?á|ã?¹?¨ä6?3?—o6@ ™r@" +^?²‰Â?p!%?¾”–?æLº@~Ï@7Éô@33?ê†R?¶G?‡{?ù7 @LÞA@/Ef?ãœ?Ùï?ÎpW?ÂA¢?·jw?»•…?áo?ÖS-?ÄΓ?½žB>À©<ÚžÖ?W¼ñ?„ZÖ?v,c?ƒÃ@?áÍ@ Œ@7â@hà?¸d>*E?^;¾@  ¨?íëû?rN«?q1P?r¿.?ê~?ÄØ€?Ì0@:s@6û¥@µÖ?ø×c?ÃN?­Jb?ôâ8@ 4O@%\Y@AÛ@,ý-@óm?ñ›y?†i?‡ú?;©€?X"?ŠÔÌ?Ž¦¡@k@Nï?·¾2?¯ é?ºÑ³?ÆŽ?˜âÑ?n‘?nq?|ÀÚ?§ìú?ÐÐ ?Ï4¹?âA¯?ÇÝ:?I³_?1_@ :@ý6?º~k?¤qý?®ƒý?±‰Ä?7ù?qS6?Ýû%@1+Ÿ@ [«?F&B?Pý]?šˆ?w¦?¤‚?›íÎ?“k‘?ŠåP?"̽>êáW?—á?Ú'ï@¥@G_¯@*Q0?Ó—K?×Èç@#°i@*M?ª{?‘[1?½Q?Ø¡@ ÿ@_’?ظ?Š¢¯?½ì?$Ë?A«?èóÕ?ßð’?dž>¾èƒ?ƒ¥[?¦ö ?Ë»?ç—T?¼iÙ?{Óv?Hf@ó*@¼(@;r…@=¦ ?™xf?f¯ç@#ô@]#Û@Gر@+¯Ÿ@Ïù?Ú±Î?Õo¼?ÕòÓ?ßMa@[à×@_t‰@[–@ê@Qx:@‹g@až)?à ?Û»>¼Y?6¨À?xQ?m.·?ë@ª,@+w?¬à'?ؽe@,õZ@'°Ä>=ºÒ>©øÞ?^·?l&j?¤‡Ú?±œï@8É@vlœ@?e¥1? +[•>Šå’?Qu;?±È7?—³?ˆ¼6?˜ÅÉ?è”Y?íÜ?á–?È\?€y?Š?YLÏ?€ÎÄ?uÈÙ?sŽj>ü’f? Ü©?Sý?(êI?|Å>ÎOl?0?O?´š“?¸„$?µ0\?¦+ >þ¸?Jß?€’?†ÇR?¬ú¬?Œ†M<ÖÂ8=R>uTæ>÷¦A>êI?@]?Jä|?ƒE ?"p?¨?*¨?õæ?WÚe?8°=±ì²>ëÐe?íÈ?1Kø? +Ô=ÑOŠ<6IU>¾Çç>®b= 0Ù>’¾?A?0n?B1ß<§š@<›è?š@@<2º?öžª>bn?09ê>Ûí?x!Ü?p`Ò?uƒÄ?s™;?¦;?´ >ÿ¢W=âýÀ?Ž¹½?ÝÅ?ž—Ý?J…*?@›X?H‰?_¬¸?sm?Cç>¤i0>Äns?„{?>Ò÷Ä?‹³?—Þ ?›Q`?·oF?·bã?¥>ôÿ8?½Ç¾?ÍÃK?‡¯ì?u3>ö™½>ÁºA?.ˆ-?O“?w|r?GX>Ý =ƒ¼?Í®?vX*?4 ¿>öÒK?a¡£?¤Ö?d»ö>Í•¬?¥ç%@.¦!@ û?–°?^nå>(tª>ÉÇ_?ˆ¨?f•Ï>‡'3>€=>qÀë>cx>U"Ë>_­?ŒH€?Ý,>,§Œ> ˆ>î >ø׆=:H^=qí=W~Ú?V#Û?cî?—Ñ>ûû?þ?"õ~?lVÞ?„UP?.Ê‘>ù¶?ŠåÏ?»a?÷U@ ¯?Ìü?Ž¡J?Ø­u@L:?ÐǤ?9Ì?<¾ ?Jzu?§L½@ ¯?ó–•?¦‰?µ_é?×–c?ªA1>\gn>¯®?fï>?jÄB?nž;?ƒ½C?¼R?¥tæ<š[ø=¯ù#>çí>í‘Ž?{f?{p¬?{}?{‡Ï?[”~?Vœ‚?'o?*œŸ?JH#?GZ*?tÞE?{í¿?¸.?I?On]?I?S +ê?S,—?Ksò?C³É?»)´?ákÐ?¸Ë"?ª,\?;aî>å½>%Ó>]9>üÖS?«è?ðÿ­?Éö?©üW?1S¼>]BV?‚#?áy ?Ÿá?&¨?`¬¡?˜d°?’Y?‚ìÑ?aäî?AûÉ?¡e·?ýÀ¼?µG·>ýÚ¶?³?Yú-?]ûù?aý[?TŽô?'r >ÞùÅ>S>õË?‚”9@M[@*ƒ?í?œž:?«R?µWœ?ã"?Ü°?Éeo?¿Ïÿ?§¢?§Âì?Ër‘?Övv@œ”@9Ç@¦ú@ó?Âg?F}?Ó³O?Úi‡?íÆ'?ß«ó?7À±?P½+?öå?øîø@ê?íŸ>ø‡ñ?MŸ?Âx¤?Èðy?óÖÏ?ã@È?>0Î?E†!?QW>ùËÍ>Üå?Y¨?–âö?œ-ž?±rÿ?£œ(?7^?EnY?;ó¼?Aã\?§Uæ?©¾ï?–Å¢?u^?˜*|?Ž2?ƒõÓ?‚3?å\Ð?Ûˆ,?îÕ?»+? +U?,±R@óN@Ò@g1@ ë?áÂ?ÎÝ’?3w?ƒ{Ó?ˆ<Š?i(ð>¥né>½D +?8 >?>÷Ó?CÚô?KòÈ?vM?„ ?³«þ?°èÁ?©ÒŽ?¾:?#uÒ?0©É?iœä?¡—É@ +t¶?ç÷?z(ü?¦Š<@ÉØ@ +ªÏ@Ëõ?ô:q?ã'?·]°@ åY?Ö”É?BJ¤?-µ¹?f?pS?Ë@ýY@&»Ÿ@ˆ?ÃAÄ?¶“•?¦ßå~?‚}k?p¢?a'ä?q^>Ф?£éÙ?ÃßÀ?Ò>¯8?A} ?R'Ð?©ô?¬*]?‡Y?€H%>ü]¿>ÚyÁ?Ú€Ž?ê¦?˜èÁ?“3?Ë‚? 8.?‘T?„>‰Iµ>€5ß? ¯?1mÓ?Ä99?ÞDR@Oñ?ìÐÎ>Œ5Á?‚ñ/?^B}?ø?"u{?\Ø?”;?Ó¢»?ÓóË?Òš?«Ix?Z?¨q?âΟ@ã†@ì?Ñå7?Š¶?2èí>´ã±?Pun?‚¥}?>^?˜L? ’}?Ä¢$?”!Ö?…3´?Ž%!?–&+?݆Þ?æi^?vzZ?JÔ?¹o@?ħ?d„D?`Œ\>­¤â>š²?áu?áÿZ?¥! ?³P@Ó@Xj?ØDÄ?Öû?»zd?®š‰?Ûp?d>?ñûÀ@Å#@)‘@sŽ@S©@9Ì?üЬ?Íà‘?Štæ?³7?š„Ä?vbú?#)È?C<hÇÎ?§Ç@õJ?ʹ?¨½÷?¡<ä?š5r?¦µø?¨¸ò?¯¬H?µÍˆ?…¾?quÕ?©‹?¸Î:@Jï@"2¯?Kã?&X?¸ŠG?Ä*p?Ä#r?ÄÜ?„» +?‚¸‹?¨Ý?µ$æ@O¬„@F*@?]Ò@?ƒî™?åÿ&?Þ­?ȉV?Ô»E@<¥¯@(ÁN?Q/…?O·?]zù?Oòm?Bcõ?—ɶ@ë@:¶?…›ÿ?0åN=J¶è>‰ ?!* ?Ñ‘?ìú?·ŸÀ?bßû?¨‹^?ï?éž?Ý•„?º`y? ´¿?‘c’?y·ý?õå®@/7A@ +Q?Ô’‹?–A?cúÓ?ŒÉï?˜ ò?ˆóç?çV?¦öÔ?¾È?@ =;@`Ò?ºæ?ÄÛ?'+”?¸O?v4?’®é?£š?­è?[DÖ?6‚­?Wf? Ás?(í?~‰?Wh?ac?³„ã?Â'@•Æ@p?p o?'l ?åaÈ?ýÏ–?‘Ò>?‚l@/?<@7Mì?†‚?z@ŒÙ@$†@D@ \å@‹j@î·?ûY8?î!`?…2t?€Ó‚@6¬@ñ?Å£?Ás?Ÿe+?£k?±àw?§¤Ž@3dý@9¾Æ@ÎÁ@ó@Ž{@Ax>&ð÷>)¬‡@Jó@d?{õ?&hž?¿—?ÀNÆ?¹ü?¾Cˆ?Ÿ¸é?›é•?M-1?5Û?NR>?E¤‚?t¿?abT?^ÈÁ?E@?¶ª–?½üý?½‹?¸4m?ŽóÎ?‘Í?ŒÙ?âv?«ï]?«±K?5é?/?Òï­?à~Ý?ݹë?Úúa?ÍÂg?Ñ}k>yM?Õ|¼?þG°?•–À?~%¶@%ïc@>E˜[?$'¥@:©¬@"¸>8Ô•>­ ú?s˜?ƒ‚ì?B®?2Ým?ÿH ?ïÖ8?Ô~ñ?ä~©@kzá@dÉî@š/?íÔÞ?Áîg?»‹@†¶@I4@8Æ@ñ¦?¶£¾?„î?¹¦Ä?Í…J?þŒ@ý`@.ç?åê? >ãöä?·?T”?­ž@åè@0éÐ@\ÂÕ@6? +b.?V™@´ß@\ @þd@¨@”¥@‡>?ŠÇÆ?‚ß»?´mÍ?¸àâ?­Å(?¥^P?ϯÒ?ìÞ?j&?Wä?ë©A@5@)Œî@2L‡@q?ÛÝð?ååá@5@ó?ì×?óºÂ?ú›Ë?óë ?·cV?Çvl@0uÍ@1Äe@Vœ@ ’?†-h?d~€>s2 >/¢ý?-Ø?O ·?EÅ?’ðN?Ýg=@Mv?ÅË?vAg?˜m?ÐÍ'?µ·y?~s4?I«îÄo?-²²?[Í?kGè?nBÞ?y^?‹Û4?¢tÜ?×/&?Í-ù?Ä÷?6î?Žò*?‹Qö|ò?zMn?¶A]?ºyú?Î2à?æVÏ?êè?ì”@+?ÿäq?ë£?éƒÇ?‹Ë?,åá?„n$?µ-†@<'@-½ @>¶?>òª?]•¿@9+@&Ò?¶ƒ?®^?¯U!?—¹é?uŽñ?p?·•?ÿ¬ç?ã…Ù?­^H?³ÉŠ@ @!Có?Ñq?­F?ñI @ i§@@Š?ìh.@i”@cÆë@MG?óÁ~?ê?‚@;äU@L¦@ Ôo?åq$@ËR@&@JaÛ@’Èh@~¯Ž@9I@ÁU?òh`@ôG@Mï,@g‹ã@nÖi@v#õ@‰6€@œ>F@g@%ŠS@#“@8¹_@C+é@`Ñ@kà$@“h@¤±N@’´@}‹¬@häÛ@"dŸ@=p@3@@ ÕÇ?ìšP?̾"@,Ã@(†v@Š÷?k‡ ?Ô*=@þÅ@”ȉ?£Q{?“³ÿ@7Ÿñ@h‡T@Qy@;$@ðJ?«?´@?ÔxV?ɨÞ@!yë@-ã@é7@äÊ@¥Ì@2y·@%U@|@ Ž:?ÐÞL?Èú?Þzà?Ížk@b7@"Ò?ä.H?´n?­×­?ª&Ö?‰á?Hy¼?Œ¥,?ìöh?ßÉ›?›ôt?F¥@ðÐ@›?(†7=‚ ž?˜å ?úÀ?ëÚœ?ö\ò?ÉÀå>\4S>Ásí?èá?ï/û?” +e?zä?Ù?>?Ò!ã?Sê?fì?“A?¢ ?ŽêÔ?nG-?«ÿL?Ì N?»„?ØUú?ÌKŽ?—'ç?Šøý>ø| >õÑ‹>¦¥w>ó±3>@b¾>ŒR¼? ¸ã>Õþÿ?u²o?pJ¿<°%v=§zK?VQ[?H¢º?y5O?y^Ô>‡ +>"I›?ò4?{Š?‰?‡]8>K†‘>×ó>?ÆI6?¤Çá?3C?Hz?³Á?x;Û>²"y>úä‡?LUÏ?T»þ?9ðù>‹áÿ<¼û>×8G? ±?5 e?I +L?; 9?WÜ>ì=&>þÉ=¸üÌ>ÊÊ÷? +¾Û=Ûó ;\£ >%..>Kµ +?VÕ? –¬?é–?Œ†?°>}êÀ>H=¾dŠ>©ú“=îá?±Æ•@9¼k@š*?Ë­¶> `?N‘>E4?[ d?d!?®å?´­§?åÑõ?ïE?Q3<>ÞOp>1–>€5ä>äì ?ô?>òÉé?/2?sN?F '>ós!?Øó?s¿q?nKˆ?I=X?Râ?˜vD?&©?L¾ä?U+>ôá#>õ”?J`¾?O¸.?S.ê?V¤>Tª=Á34=¦>·=‹3€?ˆSQ?³VÎ?² -?µg@û@©?v¹=~4?“(?ƒ%-?CŸ7>÷*Ž?Þ´?Mb¦?4J>Úl8>ÛfÑ> ¶@>ºzD?ÌM?-O]?>DA?‡>Ò>¯/?03è? MG>ž Ø>¬ß>ø™$>õ³Ê>»¥á>Ã2=Órz=¦m>é_Ð>ùv?¤øy?µ¸¹?¹dË?¹ºß?,,s>ùnÄ?[±C?y‰c?›ÀV?£é5?n>¸{à?(0f?e$Ò?¤¸?»€ ?É ?Ö#è?š®µ?=–Ç?C>ä³>ñÚx?Xw?W˜Ô?’F7?‰?‘?z¡F?‚…P?ŠÛÙ?tV?$L—?$Í ?,ø™?I )?µÒ ?»Ø?¸ Ó?¡d•>û9(?1ëk@y@]?¯©Ï?¨ìè?D&?$×Û?RÌ?N”±?-ÒÙ?2§N?6‡Û?:oä?:Ó>æò–’+>uÉ=BÌ1<`H?Ad?¹d„?—Š*?ŠsH?‰d?ˆjZ?-(>Å©±>¼Á#>ÕcÆ?Ì?ÑÚe?†Æ?2Ÿ?Q3u?u2P?`Cm?:z?—Þ?ãÍa?³'7?VÄž?>X#?#?Ž?.f?u5?ȼo?ƒë#=Eh = úó–?Â|?±=?~’ ?D@õ>jÑÞ?Jß?šòþ?’Îô?j H?…žZ?« +·?¸2t?Ù-?èª@Þ@P@o‡@«Ï?—4?žÜo?•ßo?¢?_?ãî÷?Õ)É?£´É?©ªE?µß¨?¾ÍË?íÙ\?Ó‘ì=D¿0>‹|?þ'u?õ"?Æj¸?·®Ï??™? þ¿?d16?Q>·¹Œ>Ö s?€iL?wõÔ?R¶B?mŠL?‡}õ?urü?Exõ?PÅ?€£8?Ž{@4@Râ@ ìï@u@ü @+?Û>ý£„>ëvç?.†Á?ýU&@Éé@ëù@ Ü?7WJ?Dΰ?B?W?iȺ?²Ù£?Î(G@%YZ@ ]d?Thß?/—–>Y`=?"?Ä@æ?Ϧ?üç°?íd?Ðb³?ûµ|@7²Ô@[?£àw?El?5è?«Çú@9Â@ ó—?¼?€êx@ù(?×®Ó?Œe«??ˆ¯=ô„?‡†@‰?ÑAÍ?÷–?|Ä8?È'?Ì +l?Óõ+?ï@ Ûg?¾‚Ë?BÁ—?g-´?‚-A?¥àY?ÃR¨?‘04?[¨Û?¸È’?ô/¼?¢â?Kq¯?v†>ÁˆÊ?´À ?üï½?vo?äû?cÊ®?‚y?,B?ñù?îýD@ t@& â@*XŠ?Tþ¢?›#@,?(@9U¼?ê±x?áyô?MÁ?IÉõ?‚µ2?‚n!?Kö? 3?®Ï?©à–?Ê?BÈ?Ä5¡?ÉÜd?óüŠ?åç?‡„›?„Q?çÖ?”}’?Ì>x?Çß?«ø¤?¬”?¸ß?{©J>Ø?9Â?¯½Œ?®á?´ÌÏ?æöP@Œ¶?æ¤Ü?¤T¥?@Â[>_×î?›É@ø?r#Ÿ>p‡?VÙ'?¥éã@"Ýn@O!²@l=?Äš;?Çù‚?ÇC;>¶Û<ì°?VQƒ?ƒ?A@É?Aé?®½!?¶F?RX'?Nq8?™W ?–sú?’2£?ÑÂ? ”Ï?¥¼Ë?¨N?Ê*Á@ Ÿë@Δ?ƒo?VÇf>GK.?h×6?m!š?qnì?u¹t?z‘?“¡+?ÁL?Å°?ÇgQ?Å$—?½c@¨˜@H’˜@á?Ö’§?Ù[‡?Ý°j?ðîÌ?ýû??”\Ï?”Ð?‘äÍ?ÅRå@¹Ž@9?ÎQ$?¬Ññ?°ß?¹´?Å`>?½üh?Z—@?,b²?1 9?&¹Å?ªu¤?¿xE>*œ<Åw*?–? ÈÃ?)¹?2IÙ>eV>”¯?±t¥?¹5æ@.Ùå@'zè?—[î?Žk,?Ÿ®ð?Ò'“@Vª@;© ?‚ŒÇ?|"?ÃÅa?Æç0?ÖÆi?àû¢?ï"·?݆?°‰?ÏI@wû?ëmö?º¼ã?Ÿ?ñ?u±„?›Â!?Ïtr?®ÁÁ?‚?M?Ó÷Ö@.Ÿ@®@ U?áÒy?¤ß²?´96?Ã$û?ã(ˆ@Wh@×]@Nx?—‡Ó>ÃÜ?”6c?Õ Û?¡‰5?ãî?7¸*? +³#?_¤?‰ÙB?Ú•?ô«?˜0[?kA[?|k?©³@*R@B©—?ƒ o?’ñ?/£M??Ž‡?@ì¸?;j°?Ç}£?ÚQZ?×à‰?Õk¦?Á§6?ÈwÅ?Ã×Ï?Áëp?»mT?¼þ?ñxã?÷ +?¤Å…?ž»¨@Ó@¼z@@?üà¹?l­â?Z5Ý@&À?@-S?Áô?ÀÊý?÷l’?ÿ©?*…?,Cå?¨éå? ô!?§½?®¥;ƒ°x:“ãL?\_Ž?g‘”?€TÞ?€F@ «Æ@ ö‰@ ‰¦@ a¡?Àè½?¿ñ²@-…¦@,&®@'†L@.+ì?‚ƒ?|‰?ùÁs?ûÐR?…H2?Lp?°üJ?±)u@ +õE@ ÝÄ?×j€?Íì?lç?rš@×£@Xý?z€÷?QZ&?4+>Í ?à¼?þCþ?¢>G?‹lÊ@&#—@=½&@!@é?ÿ]þ?óLJ@%¡@6xÙ?Þ)Ù?¨ˆ£?›jÍ?™Ïy?±ÄR?À$ë@'@*”"?»8?Ks?‘%ì?°x?Œøô?m7y?rß3?xŽò>èO,<òa¸?M°?ò› ?Ñý?­£Ã?¾¸ñ?Ñrl?êÐ9@ fÉ@F¡?à£_?µ­ÿ?-¾ ?ˆ]û?éüÞ?àÔ&?ý‹@„t?îÏT?éO?½i÷?Ô@“@ óÅ@Iª?£ü¹?”‘…>²:Ç>¹è6?·; ?ÆñÔ@ ” @ÑÈ@€,Ï@‹Û @`=@TB{@@F@!Î?ª} ?X¤?¯Ê‰?¾»¨ +r>ºÊØ>¾ó?©¡Ý?õß?ú`ð@ðì?þ$$?õTJ@VÃ@0Û?ÏOÕ?f0;?ŠSû?·‡?À.ô?ßÎÁ?àÒN@;@Ó«?áò?ìˆ3?¹›?²˜"?h[f?EïË?•ßm?£ëû?&º>Îså?Ùψ@(YÄ@l@ ¯Ž@m#@ +?ô å?°Â?Eø7;ôL>Vžð@¨?üGÐ?:Sw?Hgs?Úp?¿ÕÈ@ +ãª@n@sÞ?é£ï@.^@/J?ëYø?f†?8”?'p¿?‡Õo?üA)?ðõ[?Œ¸™?œPì?¯®Ì?·^?ÓÓÎ?ǯ/?M=‹?§Ë>n¤M=nƒ?˜«c@>å@;@UD@Íy@~C?àf>€ï>aW2?°Ö?±Û?×*)?ám@IÂ@HX?âÅ?±PÚ?Ã\)?Óâo?¾ü>?œ…Þ?˜BÚ?”£?¶l?ÜÜ?Óø@.Á_@@ê?ë9Ã?¯»?Âó?xÏ?Ž=i? 4?¯Á?ê¸?çiÝ?×q»?äYt?º¹S?ÃÑÐ@%üR@B”ž@ÝS?äòœ?Æu‚?´ÐC?ѧð?á‡Q?Ó)U?Ïï?Ý9¸?±¾?®@@;#@`;B@„óô°? +à@ p³@ ºf@1Û¡@,K-@N*@Ε?ÛM>?ÓÄ?¦L?nSÐ?·tú@áÆ?æß?Å”@?Öó-?Ô³ù?ÚÓ+@O!@¾@y,@zµ?è…ö?Ú?Àšÿ?'4?•\?¥ë›?’ÁÁ?­èÁ?³(Œ?€Ž—?†÷‹?˜Á²?²“x?¯V³?ËÉ>ãÛ=µ<ñ?M{û?«'1?¦Vë?µ0Ñ?¦!?oÖ(?>->¼j‡?²?n&!?xPÕ?‘¼Œ?pà«? ¼?¹±?¡Óó?¦rô?u¨J?yK‡?«ã?— ?wòº?x‰$?y)&?y‚J?=ÐR?[¡ð?{‡?j‰ˆ>DR5>›ÇH>‘Â)>èÛ@ +_ª@ ¸¬?íÉ?á…E?ˆ|ª?l?c9?9Ï?pe˜?GQ?£e­?“I£?bð?Ìùö?Óá>²œÇ>¡Ûx?‡y?TeÅ3€>¢— ? +©î>¨ze>a‡?W<Û?Ê)‘g?ÓÒ?®÷?»)Ô>ª„S>Ž¬=V0>‰bÈ> G?žä²@'Äã?äWþ?f»Ž=¢°÷>Ÿ$p>hM¢=ü¦?¬æö?´À8>WÓJ=à ¨=jŽ˜=Ex>¢I¼>Ìô>â¹ç>òuO?/Â’?SŽ¾?‡7¯?£†%?Fo>0€¯>¹ÍÒ?,É?* ?+vb?E(=?y ÷?i!K>ÏÍÄ>Òű?'Û©?(û?HI ?@Ïi?î?ªÝ>÷"i>õ°³>Ó\^>ÖÉN?t‡?ƒæ?3A>ö\<> èj=uH=Ãä?…þ?vïc?“(??¡?J[â>¹¨d?-š{?€Øì?dÿe?J¾?¦‘>åc>Í2?6þ§?+i>ç6>û\Â?EmY?8,>®Ëq>µ¼Z? Óù?%—=ëE|=ß >ÌS>Ôžd>øå1>øú.?2ƒ?¶Ñ>ùqº?à÷>ü¦>ùTM?d?yq?„¯Ä?ˆÝ?XB¨?:?¸ë¹?ÖÖ‡?[J>? *÷?©‹›?ßé?æB?:Z¾?€Aó?™Bæ?K›®>ÃzôØ?ù^?Å'=.±$>.?GÇ$?CÂ>²>©Ê(>e–>{ó>¦à>ѹ?±ÎÆ?«‰Ê?ƒàð?€t?›+÷?š¨y?õn½?ûùí>í©‹>§ó,?–0!? j£?j Ö?a©4?¦Cð?³Ù?©õJ?¬­)?0Z9>õàX?Èëù?úŠÁ@$2@1zÓ?ÆNä?|áÔ?m…Ÿ?a9j>¦±X?F‹?ªÍ?]ºâ>ýN>>®QI>lÕ›?E>Ã?œ—?àÚ?`ú?™\K?¾I ?—äã?YÁ ?O‡¦?E‰:?‘ÄÇ?Õn?ž í>þ(>þ7½>þHf?[xh?¾Ê&?”H¼? +·¤?ZE>×Ã%>«Û2>[.>Þ8è?[~?b{Ï?~ó]?…½û?™2Ç?=S?m[J?‡;?¡OÞ?ŠÑ#>ÑH`?òâ?©u¨?Â\Ü@ ”ì?ñ²¤>ÿ¿O?îë?ŠÈ?x»? YÕ?8mÏ?Äe—?ª>È? íš?a>í>vD±?7???bÕ? Ø¥>¼>9>± +æ>ØFã?/Ë?IXl@}ù?ç÷Ô?<‹®?V-~?´.?¤§?Us?6\€=«uÉ?Æ@?Ìy?Ô>Ù×'=8¢=÷j?_ ?4£á?Ɔz?ÆÐò?´gæ?¥:?läf?]\æ?<!?Z“?žš§?ªf²?«û?“Tg?Æ;?‰Se@"þÙ@4?êÏÀ?Ñóƒ?u ?žÇÑ?îù?ô]§?ñÆo?ÔÙ?š—“?¶Û—?ç¿¿?²Ó? êû?<\Y?„ÒF?ÍNq@N#?Î8 >æF?µg?]æ²?ŒÏ4?£°)?¸¬?Ö²”?®?ˆ†¢?©Íd?Ã)?¢ë³?ƒ‹?€¡j?‚&G?¨:è?ÃFÅ?·ã?T×>ôß>„Tµ?¢¯?ëÄB@“Y@2ëb?Á»?|g8?„|?‚Ð?#îç? >?ó­?ys?Gâ?gaó?Þ¸Ñ?ö»?Óã?Æm"@(É@4¸}?ó(g?èx?TaÉ?Bù?ùÒA?ì ?6, ?>@ó?­át?ó>¿Ø¹>ü9á?œh¡?t^?‚ÌÞ?‘ï?É&Œ?š¯ð<›| ? ·?@5?ʽŸ?"a?ÜÁ>²¹?qã+?ö ÷?Ûë3?Äf£?‚È>Å(¤?ªÆÚ@G@t8?äI‹?©¦#?sì…?Øò@£?½zÖ?yÞß?>øÈ?"4º? Nð?ÄŒ8?Ä?Ä‘L?ï5Ä@"é>Ïu‹>èl?±÷>§ã=¡Ó?´”Ä?Äš>J¼>—›?S;…?[ßâ?¼ª?$¨é?=ƒ%?T¡?Æ Ý?ÀÜú?ƒ?ƒ†?ƒ ~?Nü>¤µ? +?AG?-sË?ª?Ÿ? N™?ÿÐ?¨yõ@!0@F?ÿ@!zá@Jl?ÿ£?`D@?mFO?zAm?©T¨?Ë¢w?¡•ü?‚î™?¯Ê×?Ãù@2 Ð@[‹l@{‚?ù̆?ä?>D4@3^@&6Ø?ÞS?Ä:}?ü%O@Ër>ÖñÄ=ËôØ@”øl@œ[á?’Úd?vòd?؆?n³>ÍË>ØÇ7?•'?šÌ?Æû•?Ô\¨@š¼?é^?gC?E}4@ •‹?ðèj?"†\?_Õ®?û¶?¥€Ò?!¸þ?4wb?nŸŒ?9u’>Sš?*P?ɼ??«Çô?…\?YR¶?Ãñ?õ™?1qÔ?´Å>©È>$È?Bœƒ?Ý‹?²?Å#‰?”hè?Ų?á.@º?’9>>?‘-?±Ü(?å’Ë@Ã?Pˆ`?‰>‹.3>v‰¿?Ü\Ý?ö O?£Ö?¡f?÷‰ @Z>ðÉ>k„[?š®j?®¥?…” ?4¬?óÅ @™°?ýƒñ?øÇ?KÄ?Nå%>bÝa>jñ@W#º@SÿÚ@"a„@%“)?…Ë?€Ùá?àÓ6?ßÄ?Š?Ó@mŽ@ª?ÌŸ>?ÓøÙ?™·T?”½¶?±È_?´"ï=l§Õ=>u—?»1¾?²·#>;!‹>‰?³“–?±™•?¸…•?¬³³?R*Í?Lð?8¥§?C@!À@$!²@ ”@[ù?—‹?œÙ+@2™¡@:®â?+aØ?FT?Êà?n]@Z:«@Z+?ˆDx?@Ä?¼öå?¿Vó@2µ€@5„'?Pß²?F›­=ðH@¥@Øp?ɼ`?°È©?ª%%?­–z?Û4_?æÑÎ@Dø@=€?ÿnr?þ!?Sü?%Æò@PÎ@3Ý@"A@Âî?ëg?Tçü?³ì??ÆõY?‘̨?} £@ûn@$éÔ?Â?„Ad?q1È?aã ?2–4? ¢”?Í >ük?ƒWó?±¾R?šêI?‘Mg?©†¬?¼üT?ï:5@Â<@èe?û±‘@üé@'p@½û?­Šj@Íú@`KÚ@*à;>ï•>ûK?cÂ?”…?új{@ì2@¡ä@Âí?»Ö?Æ«÷@V@Ó+@ñ@oç@(äõ@3© ?ѽ?Á3Ü@n¯@ò±@]l@‡RY@EdZ@6í;@9_@7›?îÑ­?Ãõ@q*@4œ¸?ìõ¡?¥9ï?šþ6?—Á%?é €@+ñ?÷Õm?Ìça?·7ù?ŠóÓ?Jï +>KÉÖ>‹_ø?ôR?e±s@õK@È@Vœ@D©¶?î!§?ö’Ð?«ú?²¡;?Ö"÷?Ôö@’@šh?½#Ã?ªß@ +§@Î@“H?õ>S?Ž¡J?!íÜ?ù9À@BwE@A¸@B@ +.?>=ø?—°@i@ x @ÞÈ@ Ð?ô;È?î°?ƒ†?0,>ý$—? „”@S°@õ?¯È?Œ«¨?ƒ>Š ?ÒÈf@%cð@~@Jï?ä ú?’4?‘Õ•?’«õ?ŒÂ®?°ç?®[¾?úó¶?ÿÔ|@7ù@)Ö¿?¬`?¡ž=?¦±­@ Ÿ°@#g.?¾Vz?‘ú?‚žP?êÝK?×Ù?©Xï?Áp„@RM@ щ?Ø*^?È:º?¶?®+ý@ è +@É?¢ÁÉ?n¯í?*H>üœ?™‹ ?ñõi@«S@›w@ Sz?²6¶?°«ñ?5Ìï?-ýZ?±á}?±Ïì?ËÅg?ÇÕú?¬Š¼?«®‘?Žìx?u›¯?™— ?½÷¥?£?J°ü?p«Ã?°·?³w%@—@i|?éÀ&?â¿¥?œ9?mØ2?lÊÛ?j„¾?ˆå?¯¶H?¾É®?ê ­?Þl?iÉL?i±î?7¾?#p”?‘.þ?‰ ,?¼ÊY?èþG@®8@?`Y@4æ:@4Î(@&Rf?©?È? ;{?œ_X? à%?ëÑ‹@³v?üíô?ßn…?úÛª@@íÒ@1ÁÀ@8Œ@?[?@F0Œ?ìèh?Ú÷@^[@d @WK?Ûð @Bb@:ûs@;ªÄ@'ƒ¡@,0;@*k¢@±î@*¾ð@: »@Gã;@Im|@#9O?Ìd?Íñ«@Å=@%µî@y?ýP@l‘“@„EÀ@i¤û@OZ@…‰!@±¡@“¤?ôFÿ?åFF@,A?ÿ¡æ?íð×?øh+@Gm@‚-­@]¨F@ X¯@!^?Íæ+?Ãœw@+ö@‡Ô@Í—@Ô@ +î£@uk@H/@X[@ ³Ë@’ö@'?sÞ?†_×@'¨@7j@ R¡?õáë?ãÛX?«Nu?Ÿ ¦?d'‰?h6˜@=@:Sô@ u?÷œº?ò4n?ì¾…?å\?ßzE?Ì`o?Å—ë?Ø÷~@'€ˆ@-D¯@]@ +ý‹?x·>øŠ?1§?f@¡?·Ê˜@«—@ ·>æ‹B?;°?ÏÚJ?Ä5Œ?$µš>ñ°:?ž›?Ϥ ?« ?‹¥õ?µ|E?Ü×½?æ%@­@ùì<²ýþ>f¥õ@@w@ +ë’?u•>ìÌ@ @* N?åÂ3?² è?`F ?Ž?xjù?…?®€?Á£?†ö>‰2¼=Ó@J<„¸x>L:6?08?:Íñ>Úß¼? ½?$Ì‘?Bõ?u’?yŒ?¹¸?¸]?$iÏ?3Q§?˜5H?ô>Vˆn=å9B?yÑ^?z³Ù?Dò†?%ë_>þm¥?Œ?¬?¤/‰?y$?A}â?¹‰)?—z?Tz?KH5?pС?6´Ù>j1=úõ=Œ,T?+¢?€ó ?h£??N§?³o"?„–F=.#¿?QØ?±‚^?¤2?š9k?, f? ðí?Á{Ó?«"? +ÇÀ>œ_>Ôã?–P\?Ö-¿>`v=æÞ>?¡nE@;sQ@/‚@_é=rr>®±“>Û_>Ük}='öŽ<N´;.Ù€=Q`?Z’ö?_áÐ?œX™?žò·>š–o=©bô>¼ºF>ò?HD?rã?%%>ðƒ«>‚—·=«Nš>S¬Ÿ? +½?z•î?Yí,?2pé?N5Õ?“9ù?‘­Ø?©?”;?¥lé?¢¥³?W•?YQT>öNW>õ²õ=¯Å=[Î?ËtÄ?è ?0qâ>öV½>óÄ>í +V>æM÷>ߊâ?ð!? éí>¼C>˜?Ü>U^Ä>?4?X¬•w>òù!?xRã?o·?Uê?JƒA>ø•”>ég_>(øó>u>Üê;>ëÁ"?xäF?xÓ}>ÿc>ù%Ö?­ —?°!?³!·?²/V?„,?y~t?+‰?/?¾C»?ã (?ÔèŠ?ÂgÉ?–Üó?X?hu>wÿ?5;?ƒûH?fZ‘?J Í?e×?zW?OuŽ?‰,?8F´?`¹;?æë?¼U?kø?3:?ÐD?PÝ?p—?úòÐ?Ç>äU¶?%Bˆ?©ht?„½Q>> ?‰1ê?oi7>§ºZ>¬t‘?F“?g¾u?ß?ÛÛ{?¼ÐN?¼:ï?«G¶?±¯™={'?Øö¹?ë N?t,Á?MO_?_ÎV?i¢E>- =µDÕ=Lè¨?H8ù?‚¼^?A8ü?;nU?p.z?|Ñ|?|áo?|î‡?ÉzX?ã%n?Ö|x?Ѧõ?73ó>Ml—?¢K?ìÇ?“*|?IB^?\¬Ì?OBß?«Ë?ê7&?›mN?#O>Â=ï=âl=Â~ø=¢ô>k¼>å)>ú“ó?³†?ŽKå?ü¢D?È¥«?s?o0Ù?kAê?‚>³?–%.?šâ'?­}*?Ž&R?*£R?.¥Ì?2¬r?X®?ˆÓÊ?‰l¿?ÛÔ?›æP?™ï?Š õ?Rí?mP@?›†?“ùŸ?U¥?{]ç?Ê*ù?¹D\?†B@?­)¸@¼L?øÄáerÍ?hÒ¦?d)_?lŸÕ?Röà?@ö?!¬©?Š¡X?w$ž?(Ï®?CÁ]?¦œR?¯vü?ÞÇ5?Ç5ì?DÄ?e'Ñ?²Ê™?«e?Y?%À=ŸŠ.>Éf`>æ°?Êø?Ç? Â{?"]M?~ Ú?¬`@â†@­÷?¡?K>'o?`?Ö¯?ÝB?ø†?¿H½?ƒ?JîJ?§.˜?Ñe/@ 1ñ@dü?eV?mÓ?q²?w”Ñ?Xû?€ƒv?°Ä ?z>W·ú>Š“c>Ý°î?&Xò?xÂï?Ì›§@ T•?º«s=ö€ì=üM¶=eÍ ?bÖ^?áé@?Ͼí?ÂãD?ó\@÷÷?¦§&?­?‹?&Yo?‚ì?¡ïE?Ú’º?ö‹î?±“î?‘FÊ?¤Ff?®p?pf ?AlC?^+E?kE+?omW?s˜v?)G$? .7?Ùh“@)ë?ÿ%?ø”t?w­?ty?þp?“?‡â ?“ +â?v,‰?~Šp?Ör)?ܶ4?¹M?»þá?”?‹J@%ÞK@! ?‚°î?ŠÁb?ÙÊ?Ë™m? I»>ùA“>×òµ?Ū?±rˆ?½b”@Ïé?ôKÒ?Ä-4?¯žÛ?‰º˜?›ÆÞ?µ„?ê[@ ë#@ Í ?ä\:?íRž?ñ§í?}œ?}-?ý˜?ÜÐ?Ä®³?¤¹\?‹ƒ»@S¢@#½²@né@†?Ÿµ +?fXB?¤©v?¸è-?»’?½%­?›Œh?Œ‚ë? ö?b¨?N³? Æ@0Õ@ Gý>À£ß>¨¸-?EÑ?8þh>#ˆ­>Të?#Ln?5§I?ÓÀ”?Ó¥á@Z?öˆú?×]:Œ??Ÿ–?q9Þ?¹­’?§ÉZ?ƒø?‡ƒÓ?‰ºÍ?×@#½?ñ¤Ó?Cd?Õ‘A@ ð²@D@0X?ßø—?%ž?‹¶R?‚îó?µ!??Í- ?«H%?£z…?­•?¹*»@Œ¶@4ó£?g‚ú>·[?fÚ‹?‚Òk?¤5?®vç?äåÛ?ò*Y@RJì@_®É>dƒé>OZÂ?¼ûÏ?½ ”?±—Q?¯À×?Üa?ÚÚž@,5?ú|†?‚ !? Ã-@(åB@Ш>ûœ¶?-jI?Ÿâ?‹Ï?(?z…I@ +’â?é_µ?’L¬?ƒ“´?FwŽ?ŽÇ?ðNq@§¶@B]÷@tu?‚N÷?³Ð?ï}‰@ Á[@&jò@"‚@"Á?Ê0?+–ô? @G?çQ¨?ë’V?æL}?Тê?Çi?þÒ˜@÷®?ãÃ÷?Âô*?¶¨È?²D™?« +Ž?ªæˆ?•÷û?‰#ø?ÙÎ~?þ`Œ?jX?P>?«ÿ?+‡­?ëQV@âc?,lá>ÄÓi?g|Í?”Ë>¦C>Nûx?÷=?ˆtÖ?×TX?ñ®}>Ûµ¹>D=q?ÕdÎ?îø)?‹áƒ?J?P Ô?=•2?`Pê?mŒ"?…ÿž?‚˜Ž=ê´¯>z?®H9?®l<ÿm@?é.@Gá?„f?Šì?òâ?ê(_@Ìù@<?“„ ?Œ ì?›8*?•Ž?jåÑ?cðt@˜™?üªœ?LïG?;LG?ÃKÉ?»k-? +Ïô?%Æw@ @w@dË@™ü@ s`?k‡ý?{œ?€1?ƒ¥”?Ϻ?Ê;v@.+J@(v*?óo³?öw>®¦«>¿•Ù?ZSf?K}W?¬Ø?± ÿ?vx?|ˆ@ É@# + ?ü?;#?Š´$? `@$ÏÉ@)w?†<þ?i¡a?Yo\?I5Ö?ñàe?÷)¹@&¿@Ù­?Pk?[ì@?ŠRù?ŠÓL@#qˆ@53½@^R?ü[Ð?ø$?ïIÿ@0@#»‰@V\ó@]ž?^©>,kb?ýV?YH‰?Gß.?@V?•º?²ô?MÚ1>å+ö?4¾&?N›u?€;€?ŒÊ?3¯±>ôñP?¿? ŸY?Â|Æ@ Û?µ@?;ô¨?¶E@’C@£¢@!Š—@*¢@Aœ7@" s?˯é?ày\@6†@ =@øµ?ãZ|> Åf?³?ùÜž?Íwú>to¯>ªrø>’<9?-Y?ò4?ý- @œò@,?œét?™Ä]@AÐ@tj@%²2@*ÉV?¡A|?†Ë4?懘?ù2û?—‡Ø?…Éÿ?¯:?º¦'?þv @Ú@7u@C ?üM?žuk?í´Ü@!ˆ.@´Þ?»íì?ÄQþ?×p´?¾NÏ?¡o?áQ.@7ë™@)Ü +?ûî @ o@+\@(?¹,?½ÍX@Z +@é«?Ÿb‘?¥”^@‰y@$Ã?ÖlØ?°kÐ?¥©Ð?«Z ?µ£ï?¸¬z?‘K ?g«r?ãûS@'A@*w¹@-á:@ªL?Þý¤?ûz­@.Q„@$r‰?àÿ?äqÇ?çàÃ?è¹u?·??¶ëð?u:ü?i‚ö?Åx;?ÛjY?Öcˆ?ÌP…?´–?¢åJ?ÑB@ª†?­ë–? ”?…lØ?ÚX³@ ¼Î@OF„@EqÜ@æ{@»W@+†•@&hw?àÇ?öˆ8?Êþ>ñ"d?R-§?Y4Ó?«»?Ï’\@( Ö@R_c?ôë!>ë)Ø?©á»@+d@? ÔÇ?¬l?¸m?à ï?²K?¹Ó? m? h¡?kh*?Xÿ·?q.€?t*ú?3}2?²€?©s@¶Ò?쎀?Ë@?;Ek?•ŠÚ?’}?ß8Â?Öô»?÷ñÇ@v@?v6\>ý¶n?@U?«æÌ?–%?ƒ¯µ?•"º?©û?¦ö/?ÍL>?Îj@:—b@8dP?¼ßï?¨ÉE@W<@©P@ æÎ@id?Þ2=?¯´ï?¢µ?ˆLQ?‘02?iÅ©?i¬/?Èó?Ĩi@R’è@:i@*ãq?èôÕ@X @=>@(©Ä?êl?õ`?µù?½Þ–?Pmý?O¦?Ò&?B?€²~?²–i?÷â@&gS@ +?Û»\?è±Y@HM@8™?äD?Ï;œ?ÜÉV?æX+@{v@ ÃÓ@ôl@,xT@?XZ@ëh@†=<@f¦ô@qK«@&#o@ Æ@Uhõ@Ž”,@…&t@j”@Q@=@¯š?åWç?î܆@_H£@*î@‚Ž‹@ˆë@E|?¨)Ó?º7?qÈ?G$W@š@i@”˜@ÆL?¼ ?Ù'Ï?êæë?ûŽ˜@g¹?õ:M?;?YãÂ@S@ °Š@1tÃ@GcT@Qo¦@VóL@Ih\@*M8@+ÑÞ@6|j@.’&?£^k?’‚1@ lœ@3¨+?Î’?½•?€]8?â·ú?ÑÕs?Ÿ9’?› @Yö@Ÿú?Ù4"?Ö€N@@ ?· N?Ù÷?9- ?€ÒÞ?‰ßá?¿vê?З@K:@$E~?ºÜ?l^w?‘ +ß?¥Çš? 'v?ªê!? îØ>Ûž>ÓEh@Ün@èá?¶@i?«¸Ð@ –0@[,?ìœ?·e1?Ö>Ÿ@&Þ?Öp?E¶?¯~?c8Ê?P8©?­à’?Ç X?Ÿé’?ˆî4?È¥?ònZ?Ó=ñ?´Gn?WéÅ>î$ ?‹8x?×'â?ÔÀÓ?æÏÿ?æ/ª?¾<?˜À9>éW >±Ü=õ×i>=”>~£#>H{Ý>÷>…²?uˆ ?o}„>; >¸±u?µõÌ?¡,=?ºÁì?ºÅù?K“ø?e<É+ÿ>F‹é?Ýcï?¡>uªˆ>Á/¤?ÑÔ?’‹Ð?ø:Ò?Ò)?+…?Y‡R?‚F?J >¼èy?Oë#?¶2t? a>ÇáP?Ý­?š• ?¯°é?ædå?Ñøâ?\?—?7Jp?$´?,[1?ˆR? £?\§>?Gª;<\ >>xPÑ>ÒØ>Þ(?®`?j,>ÕZÀ?JZŸ@Ÿæ@_/@»Š?ÄÐ>—@=ä!²=Ï5í?³Z?©©]>ì\>âÂV=ˆþ=¸f? S?1u?DÎ?B²›>oå=k?w˜Þ?¤?‰´˜?mOÙ>»Û>̤`?v”U?€3Ñ?t[Ë?y¹V?‡Ä“?‹•?ŽaV?Ÿh?u¸?cYæ>õW’>õpõ>õW>õ§Y>õÅa>õ›âï»>öIP>ö]>öxÐ?WËW?ilH?€>öÖb>Œ>wól>³>Ç•a>ôs*?.œŽ?GÑç?Ž«?¹¿Õ?Æòk?ز¶?ÍMW?¹ö?~° >Ah>ù+V?»é?{Íi?_?ÛÊ?Z ?/rK?NL?qΧ=µî?s*ì”?€‚?…ñh?{‹#?ycƒ?Ä4Q?Ç®c?–V?‘Ã?•½?žGk>ôŒ>]76?€`?›ª¸?Xãr?3êe?G»>ú%?,é.?R'7?A`i?9?ì>Çÿ?i¼L?»ëW?£sˆ?‚xª?®Uh?ö™F?¶–‹? +*?3‡Ð?o#í?ª~1@8Ô?ò\Z?E4ø?{³F?éøh?Ù ;?’Nv?„òé?¿5?0?Ùjw?Ù#0?¼½?¶//>ûÂ5>ú-’>5¾Ô>&ç?”£’?›(„?̵2?ÔÜl?+Hº?–U>Y5õ>?Ó3&?÷ä2?Æë¶?»Ð?,ðF>ü¢T?›š0?³¶?HnÉ?VÕ?c ?†²?ŸcY?ª^?‰e?a–¶?çÙ¥@6O@žÁ?П?Ã+1?ɱÑ?Öjo?åæ?Æa?¢ú ?yßf?7s¥?#Ü?aÉ>°°=È{H>þzß?y‚8?ó, @=ç@Ü?¹)ª?`<–>a?†S@’Æ?Ó~A?E}!?0Rr>þÓÙ>þÞ‚>þï×?Ã?kâÔ?Ÿ¤f?ݯ"?Òb?¿x:?Ÿ ÷?,mD?(xl?$†¯?ƒåT?ÿ¡X?øL?êòÓ?Ý5?³[?¹I•?¿ú_?A>„©¸?€f?G$i>÷>†ã?9?Wšè?îÂ/?Ç3?+ÿ?'}¢?3!?]V?À¬ˆ?©š3?=Ä?+‘ÄŠ>bnÍ=ã[>¦å>?€È—?€Ñ?€×˜?a¥ç?µ?j~á@Î@„§?ï]?· ±>ØýÃ?B’?Ð~?å™e@ +_Y?¿ËS>’AŽ?kˆo?ƒV ?œ–}?×? +ë#?'Z +?Ow?q˜?–´?‰BW?_ˆ +?c¥Ð?gÈo?%à>ff>Ë}8?"Á¨?Sìÿ?‡jð?Ÿ#—?º «?³íI?­Ñ ?Ö´È@Øü?Æ9?‘Ç?¦õ?»Áò?‘|§?U4?aöc?a,?EØ“?ALÂ?¤1?Ölà?À¹ú?¥éÛ?ªlu?¬ez?ªÉº?˜ë`?<í6?F?‰?L‚?SÆ{?r#6?æöÐ@ÍB?Ï»Æ?Çuz?11?kÀ?goô?l­Ô?°„Y?³{‡?Ìü-?ÇÌŠ?]3†?dºþ?7ïþ?:?š?%?æë[?á©?œß¤?šÍK?˜½\?©+@·E@.?÷¼G@ ´¸@CWh@5OÃ?úÂî?í +?Ä5ˆ?ç€?Á +Ï?•C{? V?¹dl@)Z ?ÿWÅ?’ ¿?)ø?ªÆ’?XíÍ>¥A9?xCÌ?Äb+?2Ì?DÅÍ?¾~?íÊ@\ @ 0e?ý0a?ñ£?Lúi>Ťü?Iûd?nBP?r}–?v¹@ —ë@¦[?Õq*?Â[ª?†?{f¹>©Wz>¿!«?VjÜ?S_@ ÚZ@ÌÊ=k‡€?3é?T³°?Ù*??ä^H@{ƒ@hŠ@1á+@o?¬Šñ?o?DÍ?ƒåß?ãB8?¿˜Š?‚þ$?‰{À?Ž?ØÏ€@"y³@2.8@Ci0@RY?¾¨?§uÐ?˜_¾?æ(@ú(?ÏÙ7?–Ló?Ýß<@Î?çh1?àj?ŠÅ?Dá;? zî>å?¸Ì?Ü‚Ï??TÂ>?…Dª?’I%?-¸?ø@?uÞ&?`ƒ?€»ª?‚»}?‚?~L@`+?ù¹»?‹¨>?†žp>Ö·Y??h;@:ÿ¼@)hÆ?‚˜¦?‹÷–?Ça?¯êæ>ˆ2Ü?D˦@ù?ÿ¶M?pöZ?¶Ëq@&ŠÂ@\?£{g?¹ÛŒ?âo?°3µ?z=?¬º«@ cï?¹“.=ïx=Ú>Y”?Ωd@CP†@ ±@?±ð!??…>#óá?Âÿ?Ò o@¹ï@¿n?ÖÓ? ÂÇ?Ò°?öœï?æk¶?Ø_7?Ýyz?Õü™?j~?+J?šDt?»=&?‘,_?Ç@‚Ö@~@ M?´ù?ˆ)>å»2=Æ:1?’(?­bè?¦™?œDÇ@ êµ@›j?nÊ?©ç=+Áé?ö[;@§k@fË@ ?û~^?øž7?Òó?Çú¶?³?¼4®?ë| +?â=@"º@b@Ç/@å@’@ª„@m@²d@œÜ?þÑ ?Ú·Û?ç1¢@)z–@.o‚@Ì÷?öIÔ?e?$ò@<¸¥@6ÈÙ?Ù¹e?Þ[$?Ë +?¿³?€*O?ˆ%§@@ò“@"s[@%?ÌÐë?ÃÌÜ?Ž¼í?fÄ@p@¥¡?;0"?*ž´?þ?ç?‚ ?‹r0@3c¬@-üú@~å@ +e_?àÀé?åé?]Ü›?bD¦?ß”s?à”y?á0¿?éÁ?Â=Ó?¾Ò ?\½j?D ó?›?ÊZ?·®¢?¸Dá?˜o?ƒâª?ë—b?ýÃ{?§7k?òê?ÆÜÖ?Þ»?àùD?ÐåQ?þ´¥?üèt?µDr?š¨L?|yh?a)?¥Nñ?½—;?ý¤-@ ¨]@65?üƒ¼?IÎD<èº>–>ü9ð?Ìøp@Š?Ï^É?\ÎÃ?žò?Ò„?IÒØ?ÎQ?ÏV?š¿¿?íâR@.Ù?ëeÜ?º8?êé@@gò?úEæ?ö¹Õ?ò?íë?§„b=ÿ?%²À?øÈ?Îâø?Dô?BÏß?ž9œ?©Ì­?¹ Ý?¼Þe@O9@÷Ä?´`>ö]w?»_Ì?Îj@oŸ@$úp?‹–ª?®?•+÷?¸4x?]=Ü? +•?‘y?Ô8µ?Û?áìì?Ú׎?Î’­?×ß?Úd?Þ¾”?ÝL ?ÚWG?æ¾â?ׄü?À„ê?¹cA?´ß=?±5 ?‡ð(?†lM@K@"}b?ïOg?Ñh„?ä–V?âb¤?È3Ë?±ôÄ?ˆML?DEö?¬@[¦?éÛr=áK¹?;B@+z@~ž?9r?#«å?ßãj?Øi°?¸¸?´¢I?‰¯f?p¡@€æ@=“Ã?Ðt6=}>yìL?9*?z_?¥5?¡‰4?‰(?™Ü?•Ž¦?‘‘?µ£E?­ÀP?Oiô?ýé?“Òh?´÷}@&@\;Ý@-ª\?û=?éé´?®µ?Ÿãi?“ñ¬?™Rm?æ›û?òÀ³?©‰c?“C? [P?®ˆ?W«Ž?ž ?n{+?¢Ó?«[Ü?Ç”?ÖïÛ@ª–@–@0ÚŠ@7ð?›x8?x2o?ËÍ.?ëàž?“2?B²?oûu?‡H?‡î>?sÓ¡?p2Œã@W?Ú ?ÅEâ?TWd?‚K9@få@ Q@Ú@Bk@Pd?èÎÎ@:ó@twÌ@m=W@iÅ–@kNî@’Î@šDç@J×[@:J^@bïô@léJ@6´’@E@V2c@˜){@—´@–Q@üœ?âÈ}?Ø(8@+Á”@7ål@Gà?³>¯?S¹=Âk >O"q>¤9>›r~@ŠÐV@’PY@9–?Ô @Á»@Ê«?ÅĘ?  ?€@ ??ø[x?ªÎ:?ªË,?àªÆ?ßÎÏ?ÿäˆ@NÙ@ÐB@*ÊM@""ñ@™Ó@ «@$®ñ@²–?w…q?œú?Ÿ?…?Ç]?XÎ1=—›x>ÄèG?~Œ=?…+i?¢rÕ?­{Î?c¼ ?3Ƨ?–aÖ?ÏhÀ?á²â?×ca?Õç\?ï&x?Õëï?e=?eZz?”…ƒ?Cø?œà{?ª‘A?ɵ+?ÝÙŽ?²T4?f‡ ?€Ü?§e«?›îâ?Ÿ;¢?¥PE?zmô?l@d?:¸?)tG?k#?ˆìp?›Lv?­Ã?§Oé?iÕ?~Uu?¬ž=?¨´G?˵^?¿o›?“Ký?¢Á¡?wŸ¦?<Ú„?ÞJ˜@96?·[?Uo©?ªgm?îÚª?¨9l?iÈ?†â‡?èbb?ÏŸ`?j^›?XF]?.J…?%­?5øÂ?(ª±9=sßœ?p?[¦.?Ï(Ó?ÉùŒ>xµC>†×>?_06?Y&;>û0È?,ë?j'ï£Ì>H37>Æ$c?Èã?æg?&t9?‡>›?u%?FE>·tß=ÕÜÞ>ë^’?U&? +L? ‹R<\Î=ãB?tñ?AI?„u>, ¶? ¬>Ùÿ-? ¿?•üÔ@)¡¡@¸=ñ¶=\˜=Õ=>…“Â>¿"|>þ¼:Ê=@=ÁÍÀ>ñS>ðci>Úèþ>×-{?_‘½?]­¥?Úv?“B?4yl?1‘º? Ö=?¶:W?™qA?ö?1>Œ>†ê=>€»l>u 4>h‹_? õc?t_¦?0‡>™>½Æ>ôâ¯?a¤?uš?akÙ?ú&? £>õ‘”>ùË ?+™>ý¼N<Ö­Î<‰G>õ>öE…>öY#>öu±?h¿û?v¡?g¾(?aê>ú¾>½ùÀ?6.$?SÍž?6?"ÜøÎw? XA?zhÚ?jä¤=„9?y%y?x¹Â?ÏÛ?uí?ê?ÌÚ>Ö8 >¥‡Á?‚2;?Šˆý>Öh¦>‰¥?“/?½VD?vÅb?C̘?[ÂE?Z¢ç?6qº?$„F>Óð0>€:=ºÎí??“?³Hs?»Ö.?ÀÌí?„Ò­>ÿ.k?ggã?·V#?bÀ•=ćÄ>ü›8?›>Ä?…Ä…?òG?cN?Íåä?ËIÏ?¼xê?¦›æ?/ål?<ªT?qkô?•&i@ “m@K†?§‰?¶è?™p?‹¿>±K>ÁkS?WKþ?K˜u?y¼1?|((?¬5?²¤Õ?#Í ?¸Ä=‡Îr=bH\?¿Í?°÷)?è¦Ö?ò‘?Š¡s?`ÅÌ?â€>üæ¼>´–†>®sr?;7¿?eo?âv?œ=–?ó>å@5Ù?¼ÑU?}p¶?-b…>ý‹,?š¼†?ÙŒ6?¸6Ì?¢ ?ˆï¿?iqK?vS=?}þ:?6Õ¹>ô³Û??£Ž?…™?¤ù{?¾¿{?~ >ØKº?Le?§È?’¥A?[½³?WÑ#?Sç€?.²·>þê>™Î >ðõD?£úè?²Wå?¿mï?¨wU?^[?píê?Z‰ ?lX?Ô"×?Àd¨?ŠZÔ?\ºÉ>åô?LÒæ?ÂzU?¬£?y¨õ?R8o? Lü?j¢(?ÙÍH?¦ú%?4 >ýÒ¤? UÛ>ø >-Š?ü?ÀOâ?¸?À£¹?®h‰?€|)?\bé?‹?R¦T?Ôe”?¿I¶?€¨‚?…üU?ˆ÷?o,?XKŠ?sÄb?\v?„¶ç?xÛó?Yb? ßx? ¨?%>?jl¡?­Z©?±w•?Á¥J?¶œp?¥œù?R?}Ë?JV?³`J?Ÿ§¾?… Ú?P5>ñ}>íÛE?gy?QI+?˜Ç©?©s?ˆ‡W?d¹?9 E?|¹4?®Ï­?ѦI?÷âª@t@@ê@Œf?„ht?ÅŒo?üÏñ?²Ù?—‹ƒ?ªSÊ?³ß`?sb³?( ?ao?øn?ªÏþ?Ãé?…Â?EO¤?^í>ì;Å?¦+õ?ß¡Ÿ1>B Û?kS?ƒþ?»—È?×m?ƒ¢¨?uQL?µK?·È?‘°l?’y?Õ?ÖÔ?XŠâ?Tkì?PJ”?L.'?H ¡?X½l?ÃîÜ?ÃóH?Ãùï?Ãü?Ä?ÑDÚ@´ø?ö`?Ľ?Ÿ^@>Ãÿ_? ÿB?ˆgy? h?Ç=?¬Õ?…Âí?&çô=dCT?ET§?Úå?Ëüô?´É×?U,é>œþ?L†?”Œe?—Œ?Ÿë?ŽÁÚ?‚ìŒ@Ï°@+:¼?ö?Äl@?£ùý?›_*?ç…>‚O?÷'?3]f?*ï·?"|¶?cOÒ?wfÔ?º¦Ó?Äb¿?Á¶í?¿oD>ù<(>ä³Ó?¸Þs?µï(?² ?¹ß2?¶'¯î?ÃsV@<?ÆFØ?‚æ.?ÊU¹?óNâ?œœ?r6K?m‡?‚ÛÀ?‚Ù(?‚Öž?Ö—?í$×?¦û?›úš? X¡?¤¸`?†¢?‚Áø@_$ @p±®?Ž0±?‚¼3?ƒ'µ?‚ÕÉ?‹WU?’áá?»7—?¬>Ð?"ó@=r@Õ@}@ Jt@;œ'@6º?¨&?»š @ +ÿ¬?ïµy?JY?Dt?U™É?3÷?fF? † ?én?}Z;?ÊÁ0?Ê\Ù?ÈàM?Ä?½Iò?Óo†?ê„?àÇA?乯?——w?!•S?#2?³©?•ü?‹©Æ?ºû?Úps?¤.C?…$v?„„A?÷v?©q¶?Ââ2@–(@8Ç5?½—?jüÑ?~9—?Í\?‘n±?¸Œ?%•æ?#¸®?}.ô?ˆCŠ?h›ê?V ù?L½?C ƒ?³¶?ÂL?ºN?E@Ç9@”?ï‚?f³@ Xa@B~?ó<?ê È>µ˜ø>smù?à{š?í§ö?zX? 5“?¹£r?ÀAN?‡-í?rS@â@%ú@ù«?ýZ?",§?*@E?–—á?£Ç?Û±!?ÜYR?¿™ ?ɳ@\@š?êYf?ëoÀ?ÝJ?×có?ã?/(>½ ´>ÛdÖ@&.á@†?»×à?´Rº?ž#?®2?óøå?òy«@5r?ú5Á?©né?ªNN?ÜÄ?ÚF??¡(W?³v¬@F€t@AY@6é~@:)é@5;@¢f?ë¦ù?ì”?„l-?·æ?WÞ?…ǃ@?hb@?VY@9«?@7³?0Ò?’Å…?Sòo?Mk§?×àw?Ý,? }‹?›n®?í°Ÿ?ì?À?®J@?­st?ÐÜ?ÚÙ{?˜{'?‹}Í@aÔã@{ží@D<·@9| ?eü¦?š?Ü?­?¤H?¿]p@4hÍ@Kz+@×?ý Ï?¥eÎ?Œ1Œ?¡e™?ªŒé@¾œ@"ä(@J‡?ín|?ª´?Öê?í Ë@ª>?°E?L`å?n·9?{æ`?µú?æE¿?õ<@du?ш?f´?§Á¯?Ô…?Ø©'?ß®x?àÕ?ïVê?ËòÉ?o–E?ìö@‹‡Ô@m ?úƒì?Ϲ¿>GB>Ý€U?„]?µ$Ö?Š%j?Š†ì?ùàÊ?ø²Ó?¡èr?¤ö¿?ö¸Î?ùyQ?žŽl?à?êÊó?ù#Í@H @Tqü@^¼Ò@Y3@ wì?ÙÄC?¦Ú1?’å?•7­?˜a@?ñ•T@ÁQ?ì#Ò?Å|?= ->dS >ó®3?wŽñ?¶8ë@›m@$ê?l¾7?ˆœ ?ßJV?ÏA?ð?‘9?”†&?—Ô¯?sz?d[?¤-?¢\?ϧ?ÑÏ]?ÃåD?¾!’?·ëÙ?¸w?ùâ@ +%I@ µ~@ +´ª?åc÷?·¹J?ÉÎÊ?Ü“?ÊJò?·j?Êœ`@ã@ Á½@-nì@6Ž @ð@l@ðÄ@J@ +B @^Ç?íþÂ?ó?É™0?¶7×?òÜ@m @ +\ +@.n?½/`?@?”Ú*@0.*@yI?«_†?¦³?ÊÔ®?Ïáa?t‡?ˆÙœ?¹Ì5?Ð< ?çé®?â¶F?¯wP?—9?[l?‡›í?Ñ¢¾@ŒŸ?Ü?ÿ?a¦Š?Lék?3U:?v?ýñÕ?ô“b?Юá?Ì­U?èý?ö(¡?׶?Åò]?ØìÆ?ë:}?µ?™Î ?Š¸H?IÖL?yÇÌ?¢?¬8>?±pÌ?§›à?mi?lû@Ù@‡?eÑ>ìò­>ðÞC>ìF? &?2¼?)fµ? í?_2g?ðcÛ?öþ]?غ2?ÜÛb?¬/‰?ªaÕ?°çž?±äÚ?X0°>êjÀ?(Ñ?j07?Qˆ?%âÔ?[R?Ó’k?×Ö?–¹¬?œþÆ@Ój@-=)?È ?x@½?€{ì?„Ù?œ†?¼àÀ?³?Ý’?Ô~“@NSß@Xˆý@D@Gq@Z±$@cëP@`S°@Sê‰@-|}?»è—?ºÒ*@8ºÉ@6Vé?³ ?£|ô@›Y@+îy@YŽë@nž@`Z@R@ƒVe@Šn|@„tú@al„@n¦÷@ˆó@°~@{ˆ§@b†@=î§@MR@(¾@.£à@I5h?é­?óg@@]_ì@oÔe@I´C@-¨$@†É?Ç=E?­Ù?ˆ±,?€R@ ô\@ùÅ@%l?åß@HG @‡¡¾@I9í?¡ú?¶îf@°¶@ÌÁ?ʾ?Å‘ã?ôäA@ úï@€Ã@LÌ@%p£@Eœ˜@-3?¸‘ó?¿8]@7–@9µ×?´ôÄ?‚l@$+@;ä™@-Ë¢@8·?ËÌ?8i?#éˆ?ð) ?Ú?f?°»‘?«N?’œ<ù»P?‚3Ä@ ?òk?¥Õ-?­R"?+€*?6óK?ÙC·?å—ý?Ã;?dU„?sîf?†³Š?¤9w?»‘™?¶Ãï?Îeµ?αV?g<Ì?gue?àWð?à£@<}?þ£õ?”5á?1<î?%Fk?>Ÿ?7ì¥?q?Xé£?m?0 O?êúH?ëCÑ?DåÓ?#X?§«Î?Κ?”N„?u¦´?zô¸?n ë? vL?ÎÈ?™Æú>ì?2 +ä?´[V?”òŸ?¬>üu7>•€I>Þýí?:c#?L*Ê?tUÉ?v¶?{L|?}.?àÄ?ÐÒ‰?.“.?<Ü>øÖ>û&l?…6É?yVÁ=’f>Q©¼?KˆöI>¯Z>ÿšw>Õfa;dàà>+Å&?˜Q?3$?m¸†?Mê>¶O<>vÔ=°>™Ë'>áÑß>úÈ9?¸þ>‘Ä>S?M{?Y:f?4.?Îô>Õi€?B-u?ŠTÙ?-«'? tÏ<¤h8(=ø=Ú}>>5…þ=ŽÞ{? Fl>Þ¾?Ž¨E@Rã3@.J@˜=d¾>Ç.R>Š‹p=˜\ =ÒNÆ>ñ+X>ñYø>ñ‡¶>ó&æ? ÷j?P¶=Û8Ê=èc×?c0Y?r°¢?Jð ?L6>å%H>½°ª?)k›?=ïå?‹×>óÝZ>óþ->ôO?:ÐC?taP?.Ó>­i?`N?D„b?Còþ?Vg:?QCq?D¿’?3ÍÒ>ÑÖå>þR?_þ?W›‡>ì@¼? +4¨?¸9\?¶‰?ìRq?甬?s”? Ýc?¦ ¬?­f2>ÈÊ=ð¬->ojÌ>“‡m?‡­Ô?£’#?5ßr>÷c?*1?>Õ?a’q?r·²?1/ý?µÙ?®9?ªú>±¹Â>…É??Ús?a4?èÒ? +RÀ>øz}>øŠÎ>ø–e>ûÄ]>ÿÛA?C3 ?öW¢?àÖÌ?eñ?U"Ò? bê?a¶>ù0>ù;u?:‚?B“Ã?0`ó?%†?Pîg?_ζ>”k->cPÛ>çJ+>ùÅ >œª‡> ?„ê?¤rf?ÇÈ?Ê‚ ?’†c?z.Ì>× ´=¿Õ6?+E®?…{Ç?»ü‹?ìÊE?µ î?|H ?›¹?¼?u>áEÿ>›(à>"H?L? lK?—L?=Ò?ž‡o?¼dz?š‹C>ûK%>ûYµ>ûeÌ?F[G@¬ö@ª?ö„?÷ª?ÊÀS?Çeñ>ÞÆ>ëqC?ϬS?ÒÛ¤?|C?|8&?)Ï?Ü?ô|g?úô9?ùøM?ò¢J?öë“?ö,ù?Ê«p?ÇŸ?ˆîœ?|²[?m,>üφ?%X?%X?}5>ý +?Š"&? 4@?†íj?}=¿?}N?}X?Gßd?* “?—á?´ðœ?O3>ý³ >ý½•>ýÎ9?^Ü?‹‹0>ùñù=¥?&?~"g?B?D¨? 4÷>þZ]>¬ Ð>W ?Jð?­Œ¹?–Ÿx?~·À?cw>JÑ™=õ_>[~¼>ÿ +?ö?ÙÝ-?ÈÊ?¬°e?‡IV?$Î? ܈?ê’?y"?ÊT?Òà=Sx+?;tÑ?ý@ù?èš?¾È?ùÒZ@2ZÔ@)þ?9ç?-Ë?+®?l¿?:P?2Q-?*Sü?„ç,?ó¬Ë?ååq?À˜L? Ô1?CÆ?»G>–ÌX?*À¿?­¦ ?›íœ?€ Ÿ?ºÏ`@ÎT?ã>zìŸ?@Ù…?îU ?¢ í=A…>=?åÈ?J?ðMË?ð=‰?ø@µÐ@,°@M?™?Ï‚@ “ã@¢¢?µŸ(?žçâ?z[?O;?Ÿ¢k?P}^>™¹?y+?êÌÊ?òýÖ?û/¦?ã÷Œ?ÂK¯?ó´?“E?L„?‡‡?¤!º?À¯"?Â?À ¡?5=?)Ù? ÝM??iÍ?™ó??S?ç>ÇÜÚ>·¬š?:Ÿ”?nC ?Ê^V?ç±?Yö?‚Ì?–¾³{?.2Q?7m}?TÄV?K¼«@p@¼¼@±ÿ@]B?©?…Ä…?SL?xR?'ý6?1l]?‚v4?„Æ?ùf?Âá?­º?¤x­?6ç¦?2Zh>ò°?'çm?Ãâ?¾Ä8?©H?«^d?­x'?µDK?ÎM=?Øât?àj ?ê…”@ +Uâ@ ?Ä?ñÊ@!Äx?Ýþ?8Û?Tï>êê?®¦ @pö?Þ2?’‹?Åai?åЭ?œ·?a×?•~_?¨uÅ?½+Ç?Ŧ#?ÃU9?Ä[@Ûø@%H?½ì…?”„ ?¿dë?Å C?«'ð?«Ã±?ÁƒE?Äl9>ªBZ=÷¼2>ü¥?Âc@…¢@—?·Q?²ÉÔ?Är?Ëm@ Š @ ?ªa:?¨?‰^0?œM?Í}ò?ºÉ+?ƒt ?’¦%?Ô‘Æ?·[ø?3Ñ‚?5Q>µXu?1È2?¤·Ñ?½ð ?ã8–@*¹@ H@æE@?¥?ájÓ?‡µŠ?K³ ?»*?BU?\Ð2?±¦7?áwU@!ó@7Ù?Ùní?ÄG&?‚„P?N} ? +ù9>ÿ£d?ŽØ?Ÿä?ê)&?õ˜‚?ºöy?§˜>èQ>Ÿê?z}¨?‚¹q?‹ÌF?‰óG?‘„F?Œ’?ÃÞ|?¾=?‚¥f?{r•?$ÃE?(>??›?î? =µ?5“n?˜¯¶?Ѹt@DGí@3z†?â?ÀP?>qÐ?¨?ÑÜ1?ÀF?™™R?‰\Þ?DU–?MÞ%?lºv?«Ýø?õ·U@ Ú@!`˜@P¿Æ@æO@©{?Žòì?¬zí?Ã@O?<(¡=øô?,Ã?z•×?iÕß?RƤ?ï¹*@_Ô?Ó ú?ž\#?¯ö¦?¶éé?¦{$?˜NÎ?¯ÞÌ?µmB?‰è?fB?„9Á?‰£o@! @=ÚŽ@&ÓP@´@¿,?öyü@n­@Pì?ÃH{?²z“@TH@#bË?ËÇ}?¶ð>@D@º?É ?½u?ä.º?é£*@¸R@!–Ü?kö,?c´÷?r?2å?‰?T?†œ×?Ó?” @>@5+¶?6R’?INs?FS&?Zô? hÜ?›p¼?–uÊ?”9—?Á16?¼Ð0?€½^?…n„?Á|?Ç1@?û ù?ÈÚO?¹/Ð?hÕH?}Äe@,½Û@;ä @ŒÎÑ@ˆ$?þtb?ð<É?€L½?‚15?™%v?§lþ@.‘?þ{G?é‚?ßßÃ?›êï?žØ{?žýë?°×@L]I@GØo?«Kå?³ÑW?ÿ¤p?øÚQ?“Ñã?‘ a?ºÎ¹?º-E?®?‡ÅE@"q—@5˜?ÙŸ?%ƒ>„£j>ž—±?~È"?~!?lK ?wec?¾3´?¾Û@)3@*U?jBÌ?[±ð?rXa?]$é?Ùp”?ë/÷?¼ù¤?½)?ŽHç½?ç}¨?{Øé?’?R?¨ú ?¢TÏ?™95?Ž3S?s±?£“v?㸪?ï¸ý@£­?æ©?¥'?‡Êì>úÈ?ê? ú^?~>Ø?úzg?ü}Ÿ?ùêñ@y@T½)@AÍ?»‚_?½k£?Úe?ÛÍ?– ?’ßø?äžÑ?é›:?øs¥?ùH @›(@õ7?Çñ ?ÆY@Î`@é†@“j?ø“}?¤ƒK?xg»?¿ð'?àÑ ?ÙÀ?Üü ?Ø={?Îq€? ]"?[´#?qœ?ƒ+Õ?ºÖx@©@d4?ì†@…þ@EÛ¹@.Îo?vÃ4?pû®?.U2?4—W?AnÄ?Uªj?ØÍU?âñÔ@"@&L?ë7Œ?ßáù?Ÿ˜?wæÂ@0/@i[€@Á ?Õ§?óN;@5#?ÚÈF?°“¢?Ä]M?Сš?ÇÀ ?·7%?¥½'?”z>ãyä?³´?¶gÝ?‚dN?m?ôY‹@|þ?ç¸w?ÞHø?À>”?¶/S?ÈH—?ÏI?À ?µÚè@ÏH@5¯á@Ž=?¾±®@5Â@‚5]@a`”?µ,I?°}Ô?D d?S.>ü$t>ðþp?ñJ@ ?h?ûgÒ?ðð?éö?é0+?N">öÛ%?³åu@$j?ÿ]š?P›'?WoÔ?™[?­õC@ä…@Þ?€é†?nÃc?ÕÉá?þ›?¥‰&?ndW?1l`?û8?+•½?PÄï?Tw?mŒà?–Q|@MØ@ 8œ?D#¥?L9 +?¿‚é?ÔP=?Qg>ñØÜ?;B®?\ì,?TxA?L_?Nâ›?OºÕ?Z¡Š?°–Ò?­`?vyD?‡å ?€-¹?tÉ$?ü*@è-?îý3?È|è?o=]>ŸÊ?#–?•ÉÈ?{)?_ ?yM?òØ?Ù*?U_Ï?l¢?½®?מü?Î¥>?Å­k?¼¯?Ãø–Q>úÙŸ?,—µ?X‚?dóc?T'¿>nù3>ŽN·?Æ×û?Û6ï?I}Ó>è( ?7G?f%û?F³Ñ?7ˆN?d¤£?~Eã?‹!k?Š?|Ž½@ogC@wü—@ +?á¤e?â Ü?Ë?’ ‡?G¶è?‰­˜?Ü;e?çn?×m‰?±Ú?› ?§½r?sNå?kÙ¬?:˜v?w6?SEm?m9ô>퉾>xÛœ?^j¼?³P?Ù¶-?û¾Å?Ø?È?¹&ç?”nT>ñO¦>ÀJf=Ù® ?/#z?*½?t@O?‘ô?ò¼Õ?ç +”?• +?£™n?¦Cp?ò€>ø¿Ò>ûÏÆ?®ªî?·a¥;¥YÜ>(rÈ>cˆ‡>[û.>JÉ“>ÿ}â>Øú:þÑ;>X†Ñ?b®º?¸s>“‹?ŠÐ>Ô­á>ý‰ä>f³=¼¡(>Ô”¬?¤6?è?v>fÓ§>>çÔ?ša>Áyœ> ] >£«? ·¸?4Ǩ?.Ÿ=ÿ©>.°>ºÎ>–ÍŠ>fJŽ? +4Ï>ãœÙ>¤í=?ˆo@_û¹@[&ú>Ž*?‰?fY?#| =1 ê>w6>ñ e?çL?[0ç?PÌ¢>¸Ù¶>±»>‡|ß>–ëð?‡lN?Š?&è5?†÷?¥K?»z?j4¸?5›v>ËñØ>‰ ˜?+p?E©?/¨?"PX?—‚6?ÚŽš?Žîv>»åÿ>xr)<ÃÍ=}²°=J` =àd<ÆR <=5V> y ?wÒ?y@×O@ß\?g†â?cö?&"‚?-M1=]ºq>œê>ª'Ð?7n ?VÖ?„…ë?…uà?¯,&?¼—m?£„á?œµž?_"¡?¾>唺>±D’>m@â>¯£? +ö?x)Ÿ?‚;?‡èÁ?clc?Gª?Â?Èq?#`?s²õ?Y?À?£>ëE_=ªÏ6>¥¥X?¨ê7?¥_Ý?¡Ó´?¢z–?Èä£?ÃÍD?Ñâa?ÎQæ?³úx?­ÿ3>£ü>†]…>ìð‡>ùµ>眞>Ò–{? ´S?5M?öƒ@x¹?‘æ#?<¼—>þg½>ËŠ&?‡?«Êe?Xä?Áù?‰jf?»áþ?p¥²?Øì?|` ?®È?§ ?œûO?§>š?¼1{?>V?!U#?Rà?“A’?† F?HJw?/8„>ûVV?@)Ã?¹M?šM6>û‡,>òö>±»‡>þ8ÿ?¼Ï?¯Q?"t?%çµ?“K?”Øï?î ?ð@?¹ú,?º˜<ñl¹=¡çå?ƒëá?Šüï?î¾Y?òFó?¶§å?¯[?ôF>üé?k Ê?|Ýz?‘T>ü÷É?W ?uG?ˆ‡¬?€ËÇ?~?3ˆÍ>þ2>}Ì›=—5>ú•ž?HÕ-?>t¼?D´¦?ŠŽY?©¯?¤ä!?™ a?[„^? ×>?Ž@ö?ØMÙ?¼QÀ?¯y'?µx‹?»zÇ?­Ñ?’Q?î\?b,ß?žUŠ?ß‘Ú?¤qª? A?iãç?½(Õ?¥Õµ?\¢?1Vü>(J?c1?mj»?iuÜ?e‚¼?#vÉ>‹Sƒ>›dý>«zO? “Q?f&±?„Ú?à6?y'Ô?pl?Ss?8ëJ?š-‘?z×Þ?J¬Ÿ?‹ZÌ?´E?n:ô?Žì?ˆ\Ü?Âk?£ö?‡­Þ?¨e÷?¡?½Ï?µè]?±Ù?­ÉÇ@ Uü@%¬?¸!Å?^xð?¹äÌ?Ó~?QŽx?ùƒ?ãoû@~æ?Ã;!?Ÿü_@ ôu@êb@ ´@ î¶?IIx>Ótm?«ÌÆ?ÃMù@5@ TV?>ë4? Ôë?zÔ§?‚R3?‚Z—?‚Y?œ«?ùÌ?°Ÿy?¬éô?¶ý?´×à?òÛ?»G¹?YÁN?Wjí?…ˆ>ÞM¶>7j°?…Öd?‚}¥?Oya?wó&?°”?¥vº?‹—ª?¹Âƒ@&$?ÜÉÅ>uÚÖ?0cØ?Ä“?Äî?Ä–?ÃsÐ?¿*6?×PU?ñ‘†?ÄÌ—?£[¤?q©? è¤?§ |?ê¶5? “?VØÄ?‰úS?ž}Þ?ý +S@®­?É÷Õ?¦ïä?ñ¬‹@ áN@fÅ@¨¼@:@"ן?z?N=y?Âm#?̼§?û’C@ä ?„GJ?ÁÞ=Ðua>gè?Äom?¼€8?.ÕË?G»º?°œ$?¯Ú?‚õ?ŽóÊ?¾ºx?ÑT}@³I@ jV?å¥?ÆØ•?v´?uÏÂ?‚òÛ?XU>ôf?â4?C??:¤R?2 ½?Ÿ>›?öå?À @?†Ú?¦ôé?Âúý@¹b@=B@c\@“f@$ú?÷b:?É>ñ?ºç¨?ÃfÑ?ÄC?- O>Úýâ?Bí…?Ja@¾3@+[;?Òà?ÊH @°3@Ã6>¢ˆß>Fl?˜‡Å?š2 ?°E%?¸Uò@1@¾-?Âo?ÉR‰?ý}I?ã +x?š×?#Å~?ª`)?¿¢>À\Z>ï]Å?Yʃ?xgù?¶±v?½zõ?öU?Ç=?¾Ö +?§º•?‚kM?”ûŠ?«1Œ?®g.?Éè?’ k?­N?Ht?‚KŸ?ÀAä@Az?ãØ»?Ëy«?é%×?ø‰@ Ç @ò?Øä?•>E?Ò^Ý?õ¨¯?Žß€?2þé@ ¼ð@?“1@8—l@0ìà@ê+?é,}?÷S@R7@ÉÒ@?@@rë@‹Ö?Á~Î?ªŒi?Ão—?Åê?4â"? ê?ç@Ä@ "@[[@"?ž!?‘8Ž?Ä-?Ó)g@&@)$?þ‹=?ýúi@}Õ@[Ü?â?¡€?üI @ É?qtÝ?^0’?Ž0¼?ŒVï?¹w6?¿r@ù§@óc?Æ{*?Éîg?tð3?où2?k]?i„?‘:P?BÚ?Uç:?m?Á+f?»ˆl?€º‰?€Ûú?ˆ”Í?›_X@ŠU@ü@~@L@\¦@=¨?0ÿÿ?Ivß@e?ùø?ª?½G¬?€Hß?Œ|ý?ç¼.?Õie?i?…úô?ÖËg?ÓéU?¤O?¤× +?¿ýá?Àš&?Ì4q?É•œ?Àö?‰ËÁ?ðKf?ø"V@ê¢@ëý?„}F?{NN?ýò?ÖR@Á@ë¸@7÷±@+Š0?¼·‰?°3?~Äo?šI?ˆd?‚÷f?¾º ?¾×E@$\&@( ?¼…q?§!ì@$à@ÈÜ?.Z? tý?ÒM?Ñ?°h©?¹iè?Pù?R>Ç[H>¿õ}@ æ@HG?”¸??kh?{gh?|ö ?¨Óù?¯·c@ ßq@í+?¾}?‹r;@^ @24Þ?ñ Å?¹÷@Õp@vù?ûÍ?äÁ‡?ɲp?­¥?’ [?{¯?TŸ?4Ü?9í?HÈÚ?§-?ë>F?ÃA~?Žôæ?s+?+ +´?ñ³?Òq?èQ¼@šã1@†oÂ@53—@"^?Õ6û?óìš@8£‡@.0?–€?™ ?œç?Ÿ%Ð?¢8\?¥H÷?ÍÕ?Ê©?ß•?æš@hó @w½@]¥@S‰@ IÌ?ø·‹?ø¡Å?øÄ?Ý¡È?ËÌb?ÈÀ?ÒIm?é½9?ï¦V?ån£?ã“-?Ÿ»Ý?Ic?læ?¹›v?ÌÑR?õøc?è`T?¿#o?½Ð?¹¾¹?½µž?v¿­?y`ú?…;»?{ú ?.!Ü?À?ñô¿?ðøÛ@KP@W'9?hD>K¢?@ƒ&@S27?ñý;?¬½¹?¹¶Ê?·ÑÈ?¡?–AW?ÀúÝ?ÜÂ×?Çä?ÂÉí?¾í$?¥uï?ÃSç@!Ò@Úõ?„Ië?{Æ@Z¡@ ç”@)p‡@(eç?ºö?¤6ö@ ù@ ?Í?×åƒ?Á&9?ȼ!?Ç4@Ð@+®Ð@4 +@9G…@&G@â@ ¸ü@ o@:Ý?à V?ÐÖÛ?á“Š?ÏÚ>?é÷J?ð»É?ãuy?âMC?Òb?Á9¹?= <¼¢=þàÐ>Èw>?Eé?£‡í?”µÖ??v©?Eßê?ÖÚÂ?â’?ü?‡x>…Ó=‚>@?)G?n=ñ>Õ-=eÄ?£•á@)ú9@9ó?š×[? oˆ?Ø`œ?åÞ?E[ô?4Ù÷>õpM>ì©_?Àå*?êS ?⧌?ÛRÐ?¥ƒ!?kël?¥ü?ôi ?Ù÷Ô?—4?–nb?&Ö>ÊXÝ?(Q?«ÿÿ@GNð@e8?á¾€?>? é>—~?L@¢'?ü8ô?Žb¼?_‚z?ŠÒÑ?‚ÿé?pVš?iO?žŽ|?¸!Ù?§BÑ?™Þ?>q?’ò{?“ƒø?®i?­ý?¡]×?¥“¶?8¶Ø>î?Ç@£v@ âÜ@==@Ÿy@¥?üÅÞ?Ï¥?”{¡?Ù¤>‘—ú@*ëñ@c̲@P{~@D¾@4V$@$iB@ ?ä’?.Ì?ã’\?åa¬@ZL@{„¡@N@?´S‘@Lö@rÑT@tú@i¶Ô@c@ø>@’@¯é@Ë>@(”@+ðc@n*@šL¿@Š¥¸@düi@k}@8®@6!ƒ@:<@7A@: @D;î@0o&@¹:@Ør@ƒ@$?L@=?@ + ý@ Xo@üÈ?§a"?ù?Ä°¾@8’.@˜Ò?‚:Ž?@0m @\?¾¯_?ªÓÏ?•HÈ?v3í?çûŽ@:—@Y?ƒTF?…:¶>âR´?6ó?uÆy?|ÂB?“)s?¨±*?g…®>ä·?*rÞ?—»ì?†pN>OÍÌ>"dª?Ÿóz?¬* ?-qÔ>åÒA?lñ‘?ŸÖ ?v0?¾½?èì?²i?ƒp@&0?ò²Y>uœ~>ï%>?š¨u?®-Ó?á]R@ÃA?½‚Ï?1cÖ?í&>鸑>ÿ÷{?$P¨?JõU?jáM?k)3? +ðž?bñ=÷?%§?ž?,Ð0?ÄÈ#?¨®ü?Fiò?[&g?Pl?.\}?ª?£®å?µa)?ÃO3?":d?L??è?s?ÚÕ?¼Žç?qàÓ?BÓ«>ýòm>ø(>Óû†?+5?vºY?6½¡>Ž>³É»>}V)?''?Äây?ƒ™Ì=uàU>’e~>Òª>õ‰%?’ >«X¦>»Ôë?[ñŸ?}ö¦?…Ÿ]?'üû>$HÂ>‚ôb?X¦¥?‹C±=ŠÇH=ƒž@>T¯T>ç‡u?sæ>àÑ>ɪÜ>-"Â>¡Qi?±„?õ Å>é:÷>+þ=T¾E=/'!@,€7?ÝH>œÿ>ñ°¹?[ü?rº?bK¬>òVœ>üÛ?'ç?  Ó>ýÍ? z?+.à?.#?¤’b?´V“?,Fù?U>‹µ>D•&>š,™>hEˆ>Ä?’¦ @z›?“Åi>Sè=Í U> >ÙÊ7>à漩>ñº>øj?/g|?¶Á5?š™>J ƒ>~,M>zp>iÆü?¡ŸÆ?œõµ>½ +î>´2+>ñµÌ>öú0?«x!?°ý?m` ?f²¨?'V?˜[7?…Ow?w‹c?\3é?^"?Um@?LÙƒ?6= ? 2?<ž@?ZÜÓ?Ž÷O?¯š?¬V?ªæÐ?–Úÿ?pi?r>&g>ø­?;†?©3?¶?ï ?Å>›À>óÞ?²0?«Lu?ù; ?öWñ?ÒÂ/?Õ‰Ž?§ˆž?¡ÓÄ?zÇJ?sÌ?B.?EÔÙ?EÝ=«=¥ +h=µX>ÀsC>ú8Û?C~)?jq?¢çv?»lÆ?””Ú?t3?Ÿ#-?»ö}?Jæ4>~ã>ú°?6âQ?!`>úíY?T?)M‰?KÇ ?{æ?€È¥?ŠW?†]Ö?¢‰¦?‹9§>ûqè?9Ö?#]è?F~?˜;‹?–ñÔ?{ÄÖ?Š­S?Ûéþ?×Râ?„Ò?‚À?v!?€Ñ?ºü??µOŒ?¸«x?¶t?Žíe?’àI?‹™?Œv¦?XÈ>üªV? 1?§¤p?à˜?Šœ>§v1>m½m?ó¯Y@ gù?Ÿ 4?ŠW?¨OY?ªt©?pûO?Ym€?×.ÿ@>±?¯ãÑ?‰ 0?­‚«?¾VY@›G@< u@^Æ?úí%?‚ >þ!B?:æ?X‘‡?l$ä?~]_>÷ŸD> +Ÿ?„«?TaÅ?‘NL?±Ò^?…¡?9Ñp?°ï•@?Ð^?—J?aÊ,?,ç‚?T-?‡cE?q?:žú?2²Â?*Éý?EÊÒ?rÕ?r?t’A?|×F?ß0?y‡Ý?jä“?„ó>qÜ>³ú˜?±…?üþ>»*Ó>þh;?+7ä>ä|‰>J§®>×».?;é?\‹?{ª{?›þÐ?Õìô?œúŸ?†Å?‡"?ænä?Ôc™?ÀõB?ƽO?Önç?â+ª?íbq?Á­=?€Ëä?œª·?¿Äw?ÃÂ?Ì}ù?øæ @̬@Ë @ É ?¿üd?GõX?bÌÔ?èw?Ôû@Ž?Ë“?:Ž? ²>u0{>½ ?Té?ˆÈ¡?ÒÉ6?Ã?á¾é?ýÛ?ÿG¨@Ï\@)h?Çö%?­;(?¯O ?±f?¥zj?§ÜB>–†>eÖ?tzh?‚?â?}ñ¨?€ñ?‚@•?‚Q´?z¢ù?m¿Q>\<)>¤÷è?¶å?–¶Ï?æ:?³]B?v??™3?Q€'?_ƒ‘?u¬?„ªO?qŸ?w*\?nä‚?”€l?îFÅ?ñ'Ù?ûz?øó$?èñ?Ø“¢?¹Žw?»¨’?½¿ì?Á¢?Ä?ÄÛ8?¬†?áªV? ±?‚Ü?Å>ËP«?•.°?¯ ?‰÷-?‚ä0?éq‰?ù”?ñE?ôº,?À”À?¿øa=¨sCÈ@:¦Ò@%d,=«á >Ë @ +Õ?ú¿x?‚í?‹Âá?±ð ?¨Í*?ŠÙ0?«IÝ?äm @È2@}u?ó?‚êó?œt?Ä^Ÿ?¬ûí?“{? [T?¬\Œ?žU2?Š”â?¥Õô?Àñv?Â-È?ÄLè?£V?“?¹?ã{›@½@¿·@{7?ü§ò?ນ?ëÁW?îÐë>Ï}Ê?‚s™?¢H@‡j@,ùI?‹ò?I1?0lý?,;ô?Kl?D(Ù?Ø3ý?à‰ù?d]?Tå¨?³á×?°·?y>ôåé=ë +>»ç?³§Ì?Ÿqn?4´Þ?1È?ˆ!?!â±?‚‹?˜ú:?Ñ-×?³¾Ê?{ÓŒ?—ó¡?È _?±¹?‚b`?º1Ì@ C?õ<£?²š%?·´ ?³ÀÆ?¡x?‘í¢?ÆÜ@’?¿ë?ƒ†?ˆ+´?Žî?ùÔÇ@"¦=@·Ï@|Ì?üÁ?êtÖ?™a?Svz?ɸÛ?ü·Ë?ýÔ‡@òî?Äô­?§þ£?Õ ?Ú  ?Â7?¶n4?²Ø?µÆØ>ñ0å>D³U?èÝÕ@ó*@R@YÛ?V¼?%ø?ïÜI@Ž¶?¼?²Â€?°]/?­óõ@'ð@.IÖ?¥»?Ÿ&‰?à0†?ä‰-?t¯‚?eߣ?&eû?4ÍÈ@7½@’p@ðÅ?ó±Ç?‰~ÿ?Š¹?Å ?»4§?N?+b? ¾\?4âÑ@2~@Ã[?!I§?+^?WUZ?lC³?çk^?Þy?¢i?‘1«>_>ÐÜÚ?—æK?—å&?¥Ï?ŸÃ~?±æ?mò?èOÄ?ó©x@ '?ñØ?‚`4?i/ô=äé(>j e?IÏ:?fþ‘?l;?—¾o?– s?£è?äY?݉]?¿ø?»®+?™Í?™Óž?©*ù?¦ð‡?¿¯ç?×dü@\F@YŸ?Òß‹?ÒÒy@-–@öÉ?Å&,?Ðùþ@*‚@&>ú?buÄ?szŸ?~¶Ô?…˜û@ @ýÿ?€÷ž?‡ Û?äÒŽ?çˆH@?ši@Dy‚@'9@$ 3?¡BU?‘¨/@þ@>´?Ççt?¾8—>L% +=¦À©@I·@%Ÿ†@%@> ?É œ?«?ý?…p‚?|ìô?ÌÚŒ?ä1+@sP@ I?Õ”ˆ?½_m?¶?Ô?µó6?J#U>ü7…?”eâ?Åu\@™Ü@l-?ÈOÝ?Ã%?…Í ?{¤?˜}?¨ˆ¿?a©>êš?ŠP›?ôn?Ø>ž?«l?¨§í?¥¢N?¶ H?ÆtŸ?æÑâ@£—@ ©·?˜a]?©*?»®??°šT?Š¥¦?’Ó?yî"?rôº?;žC?KVI?®uÝ?¨pš?æáÄ?éï ?ŒÐ?…µ@??â@RíÝ@ Õ;@qÈ?¡þ©?ÆÚ?b‘?\ïz?p!/?­ã?ƨ‰?ß?é@Ó)@ý&?ÿ!?ÍÖ?•èý?AÞ{?‰!U?¹‘„?§ ñ?|L*?€¥?£E?±ÜI@¢@Z’?"@N?-ŒÕ?cç?s~?œ Ü?Ÿb@*<@/IÐ@? @E¸ê@+Ô˜@ —+?¬s¿?ƒ¿;?ÌLÛ?ãÅB??9Ah?¥,?×hB?×O€?ðõl?ë.?Ãl»?œýƒ?/s?B"÷?_®>?ˆÙ˜@ÜS@ñ„?÷OÖ?úÔ~?«@=?³Þˆ?§úa? zh?ÐP6?í̼@Ù«@ˆk?þÕp?òdP?椅?ßN¤@)¨×@…šï@eKP?ñ¸?óc?ýðu@Ër@t@q~@œ”@Â)?ú²?ð°R?ÜíI?Ï–>@Ëÿ@R@&;™@0%@ Û¡?ËÚ ?ž¸£?:Óà?m¶ ?¾ç?¸hJ?Ɉx?½›˜?³b?³Ê?W,?#ç{?O͇?m«¢?#^>ÎlÐ?˜ ­@Ê@Ð'?²À?ì5?ùx—?Ù'|?žÇì?¢Î»?øT?zÜ?[‡Ó?pºC>ìB@>“h‚?˜z€?ò6??×|?Ê¿?Ç]v?¦Ê?¢®K?Û?ß=?’3|?~g?H ?3E3?©ø?Ã@/?£uW?„Kï?”è“?Í£U?Û‰H@ý@ ?ʘ®?Öi†?¹m¶?­Y@ æF@áI?¾á?ôç?`-û?®9?Á[S@ ›?ÿ‚ó?€­Ê?v=ñ@õ¡@*û@Ý‘?ñ5@/x6@gX±@3Ó‰?Žƒc?ž¿5?¾KP?Çxâ?ò p@‹E@8–@Jo@X["@`Dg@E^µ@u¨@ L0@Qˆ¶@@Ïz?÷µå?ò>@|@(Å#@LMZ@W‘R@Dqè@:»*@E×:@`èN@cž@@˯@$”Ã?Ý?ºõ@ ¥÷@+3@(ª@ÙSk@¸I@5sú@5ÞÌ@Ù@°U@)û}@=sÕ@·S?äí±?»¹×?Šga?Ó½@GþÁ@=/Ä?ÈÎq?â»ô?Åx¾?·<Î?Ѽ?ã–ë@ ÷¦@`ö@F³t?çQg?à„Ÿ@‡%ñ@ˆ€À?ÜÈP?žPþ?ë´(@ ~†?ïÜ×?ÊÖ?ت?cÿ?eÎ?ZÙµ?.Õu?ª¿®?¶ –?I-2>è½Ø?…ÓI?ÆXÚ?¨»[?‡Õ‚?‡9Z?# ?QŽ?˜á?¤²÷?/*2>åË>£³>ª¢K?>5p?’æD?«&@:X@ Ëê@=ðþ@Fýù?º N?•S]?ç>S?ùËç@ÊÆ@ó?Ó +6?“˜¦?vû”>ã=m? €Š?W\ ?X-%?¾ö?²¥ï>Ý$›>ûó?:‹$?aÇ6?nAØ?‚Ku?E:¥?ª?#µg??nÃ?·‘ @M?ëGð?wQ;?˜j,?Ò¥w?©c?(yG?]”?éÅA?ç#>ivm>'ž‘?²õ~?¬ ‚@ $0@ˆ‡?wge?wrR?3Óû?Q I?sù?u¼Î?‘F.?ž0?`¥=?ucâ>ýÙü>èÜ=™w=Á^ì?Þž>ê6/? ÷ +?Ö ?‡¦>¬@?ÂØ@B`ñ?š =ø??&¤ã?KYu>“{`>_?:"ÖŒ=‚F >Æk?>6?vÛ? + ®?O°“?zá)=á¤=šGÀ>ï†? Ìÿ?*J?aÃÏ?r~Â=µAï;÷P(;o¥±?JïÚ@=?é ~?˜¶Â>:ap=ÙBF>„/??ë= B™>†å'? +iq?O¦å?P ?[-?^íÅ?rÝ?Gr>¿Ê>$ùj> 8“>¼V@? !?E±>K¡c>[Ê_?+¬Ì?6ÓŸ>˜¡1>[“¥=˜×>ßë)?"?'Ø?7½Ç?^î?u +? ò >îq>ŽÛÈ>½Eý>)‡s>¨Ø?u·„?u|?{rü?‰â?¦É?ƒÿ0=¤ø‹?-P}?IGÉ?ÇA’?½„Q>öÙv>÷+þ?¤¾=?«ØÔ?žb>÷8Ñ>÷Kå>÷^|>þá? *U>€?ð ?Oã?gh¨?wå?)¶Ü>ø?5ÕÁ?c ?7!? +G!?´S>ø_{>%=<}„…?Èv?´Èw?p÷>Ä`>ðn­?;»?ˆ=‰?C?3U™?˜Æ?\üÿ?ù+U?à†Í?9?-à?´OT?³c©?<:?I{;?5?/á?¬ÑØ?·ûq?aPdÏ´=êan?¨é?)í?1ù>ú(¢>=í==jc?<¸?{äï?{ë?zp“?€®?„l§?lr’?O*°?æ>ú‹>™øÆ>Ð~?$àz?»?–ο?¢nê?ºi?݇§?Äzã?—§?‡ÈÆ?d>¤?Aã>ü2>û•3? ¾Ä?BzH?5‚æ>ÑÅH?¿?à:?¯ÕÞ?È‚?7íd@À@ˆT?‚ÂU?„ª?|Vú?yž°?êe?F ?\{}?XW1?ä;Û?æ¸å?ša?˜K{>º(S>…ã?þ³@^‹?AIG>ý'W?¡¥i?»­Ã?ªZn?™Cç?8¡y?ñ5?–?©Ó%?­Âë?±´Ï?à‘œ?ö¯Ë?кŒ?¿ÿ®?‘q7?s(?ÇQå?ëe{@Ÿ@@$º?”c9>¹S;>à‚Ö>þ…?|^ ?¥Ñ.?©š¾?§U£? 6?~æm?¦e{?ɳJ?£JD?&9?9Úô>á ?xa?¿‰F?²s4?©öé?cíë>ä,†>šØ==¸n>‡Ö¥[> „è>ÃZ)?*!>¼þé>k 6?T¹?Wb¨?¡§®?ùc?l(c?M9Ç?.YÙ?‘7?âáÐ?É"”?£'/??¢=­ãË>›È?l>?Bö?€É“?D‘ž?PR?ß„?ÁY?­ ?P?òr@!Ai?ت»?^ü³?„²¥?–lÀ?åÛ"@Ü ?ÃØ?<¸?f`Ì?||é?N'>—œß?0x¡?bú(?lâÉ?kJ?79k>é;?‹?ÂFù?ž¯?ˆŠ>È0B<–ø>±VÔ? +ë@ –™@3–â@ {j?ùmÛ?……´?:zV?*ÅG?&bg?™5Ö?¬u×?ÐWÇ?Ý^þ?æ‘?åZí?ÈS¾?ËÊñ?µj?µw?i¶Ê?Wó[?¤][?¦"z?j'›?U‰¢?‹h¼?‹üû?‰òS?‡¼~? +p0?˜³oH‹@v @dH¸?¨ž¤?µµÃ@)_°@"Ø@ÇY@ ¸‘?ðŽv?ä˜:?ÑáÎ?ê€4@&Ã@žÙ?ã:]?Ј?¨˜?²ŽÅ?Ãá†?´0?:Ò?{µW?g¢?a™£?Z¬H?‡VÊ?œ®E?©±ñ?Á¹ƒ?£E?„Ç{?M=Ç?Îa@*@?±øÁ?ü*?¯D5?ßÿ~?Ù÷á?Û0…?³M?˜æ[?†?‚ÕP?‚×É?‚Ù³?™u½?œ{¿?†Z¬?‚ßò?”M?”ê?¤K?ª]-?¤”¾?ø?‰Š?ŠYÝ@²@G ?¾=Ë?ºf‹?×3?Ï]?[º´?…ü@ +K?ø‰h?‚è¬?˜GÉ?×A?Äþ?—ž¨?”p#?¢¹Ò?Ô-s@­µ?øyþ?‚æ?žoQ?ÄW@?Œ?í?%VK?L :?ŠÝ†?´‚á?š ?‚Ý­>ÖÅÈ<·Ÿ1?zLî?¿`?Ç{?ÍÔN?²›»?¬‹Î?<[[?ô™?—aZ?¯úˆ?ت>™ÏT?gÏr?‚Ä?žßÏ? uz?°‚+?¹n?`ú©?[}Ÿ?]?¢\Ù?p¾?5Ý@?H@3P~>›ÕŒ>®T‚?Æ5´?¯"r>÷K’?)ß?Šw)?ˆes?lh¢?gðl?c{l?€çK?®ƒp?Æ£/@tÜ?Ñ?Ht?[B€?‚f?‚d?‚_x?N¬g?WA?¯p?Æšã@œ}@6Þ@)?üw¥?ê‰ñ?ÑFV?£ ?‚-Ù?ì<@û4?÷Õ•?×á0?»›Î?®ÝF?©1?P&?uï­?‚V?=W?,7*>¿îñ>…=?(Y­?M¼ @’f@!7È@ÒY@e[?£b€?Âl?ÀŸh?Êòe@F@¯@[™X@Cúò@AÖÁ?šUf?w^?9®?AH~@ ßk@„©?Ç]B?Â-.@ +ÝD@ Õ>﹑>í+?áªb?ß“í?¦š?§ß¶?8MÕ?*â ?ËÆ#?àí`@&Á@y‹?Á¦m?ÄØ£?÷0?ïFßS#?=Z×@h@/•>¨)á>ú:!?´ª®?ÃÍ_@ï?å-‡>ã[_?¯P?ØHg?Ûä¨@‡•@˜C@2)@#»J?jv?ošÃ@[ÔI@G,‰?€MX?Yœ>P|ä?§é±?Ÿç}?‘r¨?žµ?Ó:b?Û$@4Â@…@Rv@8!?¥äô?´«?ÿ¯Ì?òóÊ? ÇÎ?™‘à>ÿq“?Qή@Xç@QôV?ÿWG?ûÄ*?¿N¢?Å|t@ +¼?ýS–>þÑm? .ü?©)°?¯?Ë@,¹l@*ËØ?œvA?—öî@XQ@ 6õ?Ö*?Ûš˜@(J•@,ÝÒ@8ç@©?ÐT?l#?ô’?øº…?­d¶?ž¼@ yŒ@¾@Ï@úÙP?šÕ,@®ô@O|@‹ @+Õ@I³Å@05h?í*q?ÐmÕ?S¦›?TÌ ?yì°?‘q@ H?þ ?àñ?ãªA?Íio?Ê30?Æúû?ÃÄ¡?†Ì×?~í@*µÈ@7  @t¹?ä¿?Óá£?Çdó@ b@çY?ý¬)?ô’¿@U@ Ö?ãüí?¼›T?v3Ú>ÒÈ?D`?¹N?ûÌ@8<+@!hQ?ê6Õ?íÿÖ@¡@ µ?‘tÖ?Žö¹?¦ýA?™°M?=£,?DY*@m<@µ?ÆϨ?ÈíM@QÈY@lîJ@ŽÁ?ñ «?òt,?õ4b?¢BO?TÚ ?§Ùˆ?åÀÐ?õ• ?ö•'?çÄ?é×?·e6>†Ùw>“±? h@?P\Ú@6Ók@6O@2w9@.ÈÎ@Ç6@vy?'–Ý?Ð*?‰%à?˜‚V@5ul@mR…@1(¸@W?Õ5¾?œ¬W?·ìT?óc=@$“i@3@\ˆß?Â>?¾sÌ?s½©?…-?Ͼƒ?Ô‹k?íš ?ð§v?ßj?ë’l@M£@$V @”í?ó¬Í?Ç@P?‹ ?°´?嶪?Ü—?ï>Ù?ï&õ?õmh?ý9Ò?£ûó?¤?ÿ?ÚX…?ç®N?_üd>ñû¸>fÔÂ=‰Š8>Ól¡?ZÒ¯?¤um?÷Jn@ ÅG@Rȼ@KÍ)?lï¸?lÐm?ˆËI?ì +?ÓÄò?èî?`bŠ>Äç?—øÂ?þ/©?ôâ$?Ö\?ÒGà?ëYù?æ_D?°S*?°=@æY@¸­?Ç!`?¥K¨?‘»/?æI?P´?‹‡ ?¶‚Ì@–§?䨶?„|?ef­>ÂTÐ>ÓÓý?û·ó@ +–?à?ÐÇ?Ý% ?Ñló?°ˆ?‘Y³?Ã!¦@T1¡@X”ë?¹Ih?´ó@T@˜Š@0’@9ëÑ@<í @Kpd@%˜;?e_?_—{?™—3?? ?|ÍÑ?;X?é2L@ø‹?áòá?¾1?Û  ?î:Î@÷@mÐT@|#!@z?ï@ZÀk@S¤?ñ5U@´¥@ê@$*@+ @2"@H@DaÒ?«l'?«_J?ø @w@ Ë@±à@Zò@ ¢?@Še'?Ê!©?Þ>Ë?Õ›™?Áb‘?¦>¼ðù?þ @ Ã*@+bC@GVß@>È'@Q /@Mb?'z?à?Ê*?ã•b?Ùès?àUI?ë®Ã@À²@üe?ÐÒ.?à$-@<±@I~V?±Ug?yóŽ?½JÊ?ãä?âî?Ú²j?Ç5ó?–åŠ?šÏ2@û"@Â@ƒë@7¤?¥I?c~@4t@”ie@_4(?·4”?¢¼1?6ñh?Blß?‡Wf?}CU?ʾ?Ùw?‹—?'<›?Ic/?Ž—¹?¢½2?ÔC4?ÜÚá?ôpª?é½ ?€pq?{ ?y­ ?‘3?ßo)@ +á?Ä@>?$ØÉ>Ÿ;è×*>“ÕV?¤ &?ž¡Å?¤t×?±3ã?£øý?–¢g?^o>ìc®>òm7?„X?mDê?‰|0?žƒò?œŸ/?—¾z?ÈFì?Þ¹?î?y?Í4?HÓ?jã>K12>¦é•?G¹œ?mS·?ÏÕ?À#?ðü}?滘?—ÿa?»L±?¶»¬?¨Õ>vØ$>°0?? Ó?°¡>?¦CT>ü^¹?ÑÙ?+1?<`>ÿ0!>ÿ¡ý?WÍ>ò³ç>¬¡y?Ka|@ +ô?ù#˜?« ”?žÛ?ŠÊ?Dxy>Ãv>Êóí?Á\?Èì?ay;»}Î=²¾t>·(ö>·µB> ž.>øÇ9? ê? ¢Õ?ª?€I?=¡r>óÞ?²å?í¡ñ>›Í×>[?‹˜„? =ùn=†É6üþ?ZÁ?öL=@#Ès@!ºž<ï„1<‘ˆ_:¸?€>Ô¬V>‹yX>ÂÚ>üj…?qÕµ?R6ê?E@?:ð?|ÛØ?cAA?>ú?Ù?*T?3™s?If©?=Ì©>ñþ9>ó®ä>óË>óì8>l8Ø>:÷> õ>¢¶?œ”=âÕ?&+L?u ð?u!•?u<^@ü@aÞ?óÝ’>M§.>÷µÚ?Uö?´×ü?Æ_o?ïEz?°—¢<ŠO=Õé‡>b!ê?_;¡?j"?Nâk?Gã ?)ü¨?/jÏ?„§]?€Ðu?=•&?8û=‹›r?aº¼?‘†@?æ?Œ¡ï?>Ñ7?©>èd¿>ÐuÌ?K&õ?‚Ê?6ò¼>øFN?úk@X †@Ú? Å.>§A"=LI >&™Ø>Bàé>_C >¢Çg>øõT?+â¿?¦ª„?¡ÍÐ?aä]?B….>áݘ>Ùq€> Œ“?èt¡?ݨa?Z3]?RŒ°>ùëv>ùºÆ?Ô?/?»m?ÆÚ?¥*>Þ +ö?X½V?sv¹@ €@ò÷?­¥K?zX‡?¤ã›?´ls?}þ?zC?”3?žM¢?lX3?0q•?£ ²?ä‹å?»>÷?—Œy?¶ø‹?Ú! ?Àœã?£—´?±”ø?¼um?’=t?K? ?º?iø}*?=µ‡?õ@n?ß' ?{è©?{ïõ?€ÈÙ?zc¸?“u?ç?|>È?r´l>üZ? DŒ?­X?ªÀ?¦{µ?ªBR?0ÿã?2?ë?ÊR?ÄÔ?žV¾? ,ø?v˜>ý?”Ï.?–‘@ +w @æ?¦?aLŠ?¨ƒ>ýˆÙ?@”?=š? 2W>ýÆ€?ý½¡@&ë?ÛèJ?¹Ê@Ù@56¸?ÀP–?‚Ù?ryæ?[à{?ç”>þxà?¬Xg?ås£?ÝK×?Ü"p?£¸b?~Ô¾?[ðT?Iˆ[?“ Ï?­ƒ?‘gf?†ô‰?Œí6?’ë^?jóg?+H–?Ì>¦3´?‘%?öÌc?˜”‘>ÿÆK?Šà? + ?XMÖ?’*h?„ðü?eùZ? ¦]>»ê >Útê?/Ô>~|”? -?†4?`æá?B¥d?i¯(?ŠM? áþ?®ˆ´?ic>ä9>æžH?—Q?Ë?¤$?KD?‡ªž?€ãæ?{£(?€Õ?*h?ñÝ=ü¡p?êe?€ëm?“x!?©·?Ë¥‹?ß=:?Ìâ¾?Á ö?ˆô=?LAg?SE=?G,ú?†¤?¢æg?l·Z?!o§?´é!?þËm?ÌØ ?¦ù†?ÊÑF?åj?Çg?·Ü?¹¡D?»·Ñ?Oz²?”ú?Éʶ?þ @ :@%c?—åÂ?=w?™ÕR?¦¯Õ?,àº?Ð?A¾"?Z˜¯?´aÌ?ÂØÆ?{R¡?s&²?MË9?>ôÁ?Ü?Ž?.¯K?.¢Ü?«Í{?»tR?ÓU?Ú +?ÄN?Ãvù?Ë1?ÇN=?‰ÐG?…Ç9?vÑ?slé?CKå?f—?‹?‘™ž?µý?»ÒV?µˆ6?Äñ[?î?ãdà?µÝ?Ðïˆ@™@d ?ÅŃ?ª Ü?N ~?¡£?¬9?Ïée@wT?ËW?>­E>âÒð=­Âz?®L#@6•/?ü±?…1?¦EÍ?Â1 ?j½>íV‹>ÓÚ”>ôض?©u¨?ÚS©?’Ìy?r:Û?Ϫ}?îÈ¢@”L@ý?_~>ùd'?öƒ? Øt?íº°?÷ån?¥“?˜tŸ?Š5??)’?8@$@ãL?¶˜\?ºÔù?¿,?±<ê=/ž>Y??F`T?ºq@ =@(Ë=?˜0Ó?=jI?Ãqº?ØÅ>ÛB>UÑ?kª+?‚»?ƒ}?ˆ=h? iN?²A?°°?Pz?+ì?„›½?‘6à?šZÇ@Ø@"(i@^Ê£@XÇ@!á@ `Ò?Á?4„?¼€?­?‚ƒn?G?ãн?¼3Ó?VŽÈ?„Ð?µd@?À“ +?Èæ‡?·Õ‰?¡ Ÿ?žßª?œšé?fVs?NT?¾ q@)‹I@îG?Ñç?Èm?»‰@!Ãx@\{Ò@tî?Â#]?Æ™Œ?ÎcÒ?ȦV?Ã÷?lÁ)?ˆ—?M§?][b>û`†>¿_®?}="?‘Ä?»«?¾àü?ˆð?n‰h?Åä£?Ù:?Úl~?ßÐÐ?žåˆ?ŽëZ?òTŒ@°é?Ïæd?ÆJC?ˆ«h?…Ã@@MR@@T_ø?a?nê?¥-Š?¯ê?”j-?•]ö?ƒ¼ô?Šçs?%Û?c¾@"K@î?¹> ?¶1á?ëA?åš’?%ÖÕ‹Å?z°?À¯|?µtÛ>­è"?ùƒ?Ͷõ?Ê?Ý:?Õ9é?€šë?ʶ?é¡ø?è´x?ÜM?È~?2Ñ>÷ Ú?2ƒ?]Ì^?ýa8?éðÎ?€Gl?ˆ‹–?«] ?»D"@€?ÿ2Å?"™÷?5.^?ƒ7­?¨±D@ür@$Õ‘@@ªù@0Ñz?™Ü?£˜Y?êÞ?ÔW>ÿƒâ? + +o?<ïZ?Vxc?õo8?ã°>?´t?,nJ?¿EÀ?ÅÔ÷?þã ?ÿ˜?ü ä?í—×?¾ú¾?¿x´?Ð÷z?Õ‹s?¡Ž‰?±}H@8D @9;Ö?~!ˆ?Óy?Ìüo?Ê*r@Ä–@Tè@rc@Jß@:°’@9C’>³à>{Ž?°š?žÑ»@^@ lQ@¬‘@Ÿ?nÐ?:Ê­@ï@±§@ s‡@¤Å?ž––?|n(?ÜXë?üN?Ôå?¿×Õ?KÀG>üf@ˆÔ@WB•?öÁ?î™?™¬e?¬´v?úQ@ÀÄ@å?öz/?ü`@ìë@Ûù@ý@?¹˜'?U?£ó“@§±@7ÿ?½þY?ûr£@?O @¤²?L~j?ìb?þ_ã?ÙöR¬>‚'J?àX?ývä?—qC?­ô@6a@b ¯@%ûO@a®@…‰@F4?Ò~ƒ?Õn­?¬¢:?—ÌÊ?­-¸?¶v?ü@$@e @rî@#¤ä@1e,@%§Ú@ ®@@ëy?÷·ë?.îÏ?6Ú5>ñ/f>ñË?³×¼?´¡?¿·‘?Èy+?>w>Æ o>ìw=£Æ?ÿŒ?yÓf?MWZ? X?”ò@¦8@6`?ï3)?élÅ?³8­?³(v?Š{3?…[?£c?¬¼C?¯?¯èÁ?¤H™?–v_?‘?v›?¿Á\@]@ nÕ?ãwš?í{?lë…?lÊ^?Ôäj?â} ?‹‚?v.n>¾…ÿ=¬ÔÀ>úü§?hл?¿+I@:¬@ø²?½ŽŠ?Â!ë?¡ïÔ?¦x@ ÅÆ@¨?È\?¯Ùt@ç¬@( ?Ê—?#ÉÌ?™"€@ñX@Il@RA@¬:> F=ŒîO?•Tù?µ¨¨?^$½?%ÂÚ?Ö$ª@#¸+@ ë±?Ǹî?È>÷@Hã@ö?Ýúë?âg ?æl?êG‡?m’E?'v?¥'Î?쥞?ô=t?ãßK?Ü^¯?昋?æw@WB1@b;Ù?ó4Ë?µ6?ãÁ™?öŠ”@dº@à£@à@ F@Ǽ@Ô=p@â†Ð@™Þ@‡´@TCÅ@'äf@¾@Ãé@ hý@üÙ@ %?ÓÞ¥?ÉúK?·ŸÙ?°±—@ dª@)ƒ·@'Ê@/§î@þ³? }>?JîM@NpÕ@F΢?ª÷…?):Ç?ƒVf?¬´>@^@c§ô@fJ-@k`@_šÉ?¤Ú¨?šz%?¾•?ϼ¡?v;D>íú"?9×P?…^?Ÿ(¡?Ï'š?Ì@M?ýu®?ø"Ñ?Ï8k?¾Bn?Ïh2?ãD?úr|@ !r?ê„?‡p?“ñª@ +-¥@ @7@?ÄÔ@1…ò@'ŸB?í¶?Çâ¦?õ¶š?äÓ?Ïý>åè>å/ž?äÈK?éæ”?Q ?|&?uÔþ?fE?€å?Ù)?“^ø?­\?¸³@ p¡@, *?å ?Ñ;?4¢Ÿ>èÓ?‚±y?®r? &“?™ÎÌ?‚¦t>ç½I?mI$@3­X@ ò ?–ïÂ?ÛD?æï-?ë«‚?Jq«>ý¬Ü>J=‘êT?33?Œúc?Ã:²@?¸O>ïS ?"‹É?sàw?H `>X»v>u¥\> +*+?I3®?dp@*gˆ@)"6>:è>ÚÜO?ë ?„Lè?¿®¥?Ím_?AÅÖ?_µr?º[~?­…&> ïL>÷®&>üC²?ck?,‘ã?C£¸? +T?%]?°­˜?Ž9í? ª?Ù?Ox?^yV?BrÅ?O½?ƒˆq?xîI?bTË>ë“6>xæ¸>¦—g>Э´>%ŠÂ<&¬=ðÄ>®] >.>VðŠ>«I>î°ù?ˆ?æ©?Œ´Ú?6%t?sùš?ßåØ?)^W>ìÀ€=‘b`=Ôà>C‡?ž>(4n?Aç°@fkî?òB”?ˆÜ5>t<>”ƒ™?nš=Ÿn?£«„?ï>‹v?\Ã>Í÷Ø>$€>íòä?!=?f2q>µäÍ>ÎÝD>ó¡??kã¦?pIä?4“â?/Í>óÓ*>óõ.?'ù&?&;e?jÑK?th>É{P>€½È>Õ©€>ôØi?cQQ?„Œ`?cÔè?Yjû>Ø…1=¹‚û=•õ;Á>ñÍþ?r÷â?B[>? Pe?C\?ŠŸ†?òm?JF­?(,t>½y*>™‘P> ÿj>µÔ‹?¤G?“È>@†³>|b?i€?qßS?w\?w<Ê>êX»>ÐêW>O +&>6/5>•¿>©ï§?’'A?©Áº?†Þ¼?wßâ>‡ˆ?gÊ‚?®b±?V^c?ñE>ú* ?5?¦µ>øpx?-÷?ZÙU?™7²?ÌñI?lºc>šø?Têg?wÜI?¥5ë?ž±L?•¡c?Žö8?IÎì?''Õ>pœ±>Ó¢"?ñ’±?ô[Å?¤5Ï?¡¡]>ùž¬>ø…?: ·?Bf?èФ?>Zݽ=U2>Ýó>ú?¥ŽD?¼lÞ?4³?$‚?ľ?öC?—RŠ?°xé?hA¡?9±«?f«Ä?z±¸?•øœ?ª‚Y?z>·?2?Žª ?¼>ï?]âD>‡..?‚ò @¾Ÿ?¶bù?ª€?€‹‡?ae]??};?rWâ?Šqç?êÌý?Éà’=Èmù>Yu”?Ž’G?“¹?©+ ? &±>@ŽÚ>Sd?‹x'?•†2?B)»?Aðí?¬¹Ü?¥É¾?Àog?Ï‘â?Eº$?5¦ð?]Z?Rà·>ä-€>Ôè/@!¨Á@;ƒ?l“{>ý»F>ýáÆ? %9?Ô†“?øÀ?8j +>à¼È?O±H?cœ¯?ž+?­‚Þ?|«©?T¡?—ò?±?bQ…?.Z?85?8?*#·?4ñc?²Ê!?è9?}ïò>âXþ>ôvW>î£?qE’?©¤4@L@*¨E?³èL>óˆ?ÑRÓ@ÉI?îf¶?µà¡?µþÕ?¶ÿ>?s’%? m?˜dß?Í=U?G}Ê>'òi>„K¯>œp¸?s}¦?Àkë?uH™?W +?_ê?ej?cæ?¤\ì? ”’?šƒõ?héÐ?Ó?7‚?CI?¢·,?ÖJ¡?ƒFU?ÝÉ?MfÀ?€Ìs?Âi?í/¿?¬ê?€çË?D C?h.? aU? +(‡?9ˆ„?V\Ä? ¸>œµ¤?iþï?¤O¾?·CV?¿m?¬£y?¦Ü*?}S +?T¦R?¨f?ïÎ?°à©?RI? 3 ?¡ôN?‰Dô?…­?+‹Ç?ðb@{9@@ß?˜,Š?.Äø? l/?¯ @ Ká@`u?’y,?_Ȫ?.{?؈?!~?œ?(»¦? +ûJ?¶e?¿Gû?~\.?l?Ž?¯”Þ?®ù‹?‰Â>Üi??BOF?;‘7?ž™;?¨71?ô*º?øÃ\@:)@H0@!×á@"âá@8IP@·?}G?…üþ@DQ°@/Ï?ã =?··j>ûíƒ?» ?4¶ž?_U?ŸÀx?—Ð?‚~»?€”þ?q/+?_ã1?V Ó?¥u?¼­s?­/r?¥ve?{Õ#?¹)?¸ð>ŒÎh?€É¼?‚p?o#É?lR¢>é€q>õLé?}˜?5 d?ÿ=r?÷tF?ô(e?ü;W@yú@¿$?­ì ?¼Íˆ?Íë)?¸ü—?™ºí?›Ý¬?þN?¢·(?¤æµ?¯+?¸x§?Îý?ú±¦?¯×Z?-<?YP?‚ØÑ??%?Ý×Õ@îñ@/L@@= @¼C>Œõ>•³«> „?1½ò?6‚å?ú@Æ?Ò´?Ð}o?ÎE¿?×{@\Í@àÍ?ÀÈT?Ý1¯@N@H?ŠX?´i@3ó?÷ñŽ?£=Ñ?³Q$?Æ_ù?›µ™?4ÿG?ª®D@Ÿ?âÇù?…¥\?£ ?Ã~1?‘ðq?.-I?p¨¶? Š~?k'?µ?yb,?¬)?²Ré?¿j?l,ú?ôW>‚ÿü>|F?Ñvø@’:?Ô]p?¥áö?>™G >¬Ä±>¤æu?¯uÛ?ß<5@tU@Û@?©Pï?Œ?îžÅ@Ëã?¸é?¥ÉË?ËYÜ?Ïêl?ó9O?ú­ü@P{@¢]?Œ?V?–¸?.ºV?Dªq?íN£?î]%@'qE@$ª?àßV?ÜöÜ@Jr@=;Ü?7;:?P«T@AðV@=ñþ?æ`ž?æj²?ÁÌÙ?»@‹?]d?uø£?çZ?æzŒ?¸Ö¦?¼€¨?Åc ?»??ƒ6Ô?‡…G?†ðÝ?–R–?àè”?Û}m?áçÃ?ijç?¿A??4J@±'?åµ#?>;?cGù?¹Êž?­»ÿ?‘¦K?ßÂ?¸"/?ÂÞ–@ Lk@ ÷~?øR¿?ñŒ?Ç2;?µð?€B„?Uy>&û>Ó;5?¤I?©Ô†?Êå?ïò>2¬>?ÿô@ »í@ ø+@£a?þìw?ÙÓô?ßÍ?þC?á +?\ß?}ÃÙ?ÿ^&?í,Ó?„@?‹nx?¾é4?¦?ùH‹?÷Ÿ7?þßì@.u@˜À@—Ä?•$H?™"Ü?££ì?žÁ¿?zðt?xž ?ËMJ?Ë4?.3?B>t?ýý­?üœ¢?}ÙÊ?}ÇH?p!Ç?{]+?qÁ?0h@úì@N@ qõ@@Ê@N`?Òuí?н÷?Š†Š?|ÔG@cO@,Q«@ïd@ 4æ?Ÿù?|jh?åÛ@­³@´Ó@©·@ —?î—‰?àö?æ$ù@´n@¯?¥r÷?Oc?®q?í®@ ãþ@ +?ùÛ>?¼Q¿?îžÄ@jÀ?ßAÄ?zÈ?Ë%R@¨@ å?ùF?èÃú?Ñ–?Ë(h? ÊE?•ƒI?ŒÂ ?‡1 >ù×y?)+Ï?Ü­?Úeä?]˜Å?g¬f@ŠT@35?ÊÄ?×] @-‘É@6†Þ?9öQ? ‘ã?¶úª?ÏQp?ʇ ?Ë*z?ŸÜÝ?“jÃ?n.Ü?Aw?dÛ)?†e?ø«S@&¡l@ —?êü??¹ã?wV?IÝù>ýÞÇ?©÷ª@9<@@_@Q°@3©?½o?Šb?1ò?Nɾ?ö4?öj$?öÛ¥?ìx©?È/?ÂÄ¡@ :d@1p?­kY?uV½@- Ý@[s@uu?­0†? "?’Du?ÂîÅ?ô…@]l@3'‘@çç?y¡E?dpí?sæÌ?‚d~?µ.C?»*S?ÀèÏ?È?æG³?ã#@ +ã@ 0ð@ Ç@ -?òï#?ãAª@s¨@lë@$–@ ‘‚?à6Ä?wËù@|Ø@t@l3?ÆýÁ?·v?‰€Ÿ?‚#e?ÓªY?ÏÃ\?ÔME?Æ!?ÁÉ?Íß?mÖâ?Ó@ni@J"ã@X?ìÏ?«¶£?Øù×?ë‰ç@2n@†9?³0G?³¦?¡âü?¥”m?…Ìt?y¹?§>ýû-?ˆ?²`V?œÅ§?ˆí¶?ª> ?æ‚3?ÞÁÚ?žÔš?Œš/?lÚÇ?l¿7?l¡È?l‚w? ±T>ùZ(?Áš™?ìû¼?Ê,¾?¯Ût?òz@1º¨@\?kHÑ?{žˆ?¹p?£¯Ü?ª'Q?¯&_?Ü¿[?ãb"?ÁÝ?ÃQ;?äúÑ?åqü?´K?ƒæ?ŸÍ'?Ðs>?Æ,ª?i9ˆ?i[@G†@ @ ?í’¥@T2@ZÉ@Ø?ìqù?ܾß?gô>?i{Z?­Í/?­´x?|q¥?vÍa?XUM?3:?1;ì?L$C?¥6»@;’@ &@?ÕŠx?Ú¹@-A@.6_@EL?àÁÊ@4–@%@6Ö@yÍ@ç4?¶k?Á(@+þL@+ï¨@îK?éh?œ?J§ ?§Û/?äÄ·@Ðy@:…s@,éÞ@Λ@¿?åi‰?à d@Ndœ@yöZ@[€@9@-ع@I9@ ¬@^¼@fC‹@{ò—@…XA@:©Ä@ þ@Âÿ@6² @&;Ö?ë:õ@ +ã@#+@Tœ?ükr?ǧÂ?íNø@ '¤@?T@a@+v@~SÃ@d6ÿ@ü]@®–@/Ó@ÚÙ?² Ë?hô‰@V‡@QíS@)œ?”1?’@?·lu?¦é`?ãý…@––?ËùÈ?´à?Ãá>?¹XÓ?¦õc?¥Ûß?¤Rï?ÊŠ?u@®@ dß?ï­Ö?×ä?æ ä?çdí?¹ +ø?‘±?—?’Õ?š£?ö >ÿus?|©ä?^¶?¨F¿?‹ ?’óF?™M?uzA?.½?uP½?ãÇõ?ó9@6¬Ë@7ÁO@è§@ Š“?Ùéž?ÞxÉ?¾+H?² V?,IÉ>Áò¬?Ž8e?¾C?…T?@óò?²”>È€0?¶?pF?H >´1>¸ïA>ý˜™>õ|? +L?’4©?ƒ ª?{¬?VÁ’?<$?Q@f?l  ?C Ø?Pšç>>)÷=§ã—?»?@?»Ý.?¾ +í? ÿÛ?8á?]ý$>“’þ>ým?wÌI?l»?'R?" x>Hd¶>ÅXg?2<§?ŠE¯?ó²¾?ÆI?ƒví?ƒä¹?„VŽ?-s¯?Có>c²†=Ðü„?¶¢?½O?h'à?8{¶?µá? >“? É;>‚={Tü<'‡Ž=î‹®?-rN>ù>>§ +‹?°=¯ÐQ9e :½\;þ@>¯”?ëb?“Ô¯?t)?GŽ>û]>h¡®?È>Ï*á }?">ñü >Òªî>¨}C>áG?#ÎÒ>Ü¢™=Vž>WÁ¤>cLa>ná½>É#?•ê??'‚?,cÇ?,ú³?T%?Žî¿?N'Þ?PŽ_?S¢è?V¶j? P>ôÑ ?•ºŽ?®ÒÓ>çÖc=¼qÓ?mŸ„?¯¿?R@6>õ7Ñ>\Çß=e€?“R8>„^>aOÒ>œæ?wù?oë? &“?vm?,’â?'˪>üò">à“þ?FâS?XîC?D’õ?GÅ<>)}>Ï1?tž?P„?t}–?&—i>øøM%>øYð>‰+ß=þê?\ÂB?Åá?Tœ¨>„c?!Vø?3¡)?Tv?Lc¸?/”˜?Š•È?ý+ß?Ëvð>ù6?B€?dø9?P?^?(ªC?" V?fn= ?¯%?±U…?t? ’¾?øm?\m>ú}>ÿS¥?¦q¾?³?¯?jS??‚ƒë?ˆÜÚ?›… ?%º?¥cÂ?¨â)?‹)?z²ù?\U\?EÆé?ªîÛ?Ü©?„ >æ”?‘9Ï?îÌ$?¡t>ÿŽ?¾ÅÞ@3¹_@èñ?í¤q?¨p>Ónà?.i?{§¬??ºW;?™KT>ûÞ¦?:D™?¸D?¬ù?§F?ŒÈ?I±??:ð{?é?2Ú÷?’ƒ%?ŽÞ6?õQ?j¬>Œ££>ˆ¥G>üÇš?%?éo??ð5Ú?‘o¹?‚@k>£›€>ŽÏ²?Ño +?áS2>Jñ@â{@‹?;)’>ý¦=¥¡õž>?T †?~Ò±?«*?¿8 ?±^?¬h?¶Ïª?ÃaË?a >ÿPù> s„>)Š>BÛ=ÅVt<ùõ={Ê=«¢=ì©Þ?yÒZ?¿ïþ?ÒÄÕ?ÙS\?³5 ?¡â_?¬ª_?Cµ?N‘ÀB?@?]Ì>¥ Ü>9ä>‡•>´ Ä?r\?D,?Áß0@–û@˃@61?Þ/‚?{„@ Ñ©@?2Ø?À'Í?ÑŠ?“Y?¸E=?Ðò?Ú›Î?ê8+?ìÐ'@@ ?¾o™?(†?–8?žoò?µdw?Ãé ?ƒêÆ?L×>ìäï>¦î?–"?Âê?Îj;?Ñ »@ÎÄ@Õi?³ùã?ˆf®?Š ¯?‡6˜?´A?ÆŽÞ?8¨B?¡|?ªÿ{?‚¦?yEÑ?nèK>µ‡‰>äN>øHB?Ш?Å#+?Ï×°?©ž?¤Í_? Pn?§k?Âñ]?ÂïÂ?¹F.?¿µ?…hb?éc?Ú?»ð?>Åùr>½E5?sÅ ?‚G™?ºú?·Œ¸?„Q%?‰K·?“T«? kd?²£á?Ót)@/mc@ ‰Ž?O¸?9`1?…(X?…ÄÌ?‘¸_?–lÐ?¦?‹øQ?Dñ˜?{Î?§ãL?f˜í>¦8þ?˜•@Ûm?­€?M?`q?™g?%i5>)á¥>Ç­4?Añ?Shð?…‹Þ?û.I@æ2?»K ?‚®¬?toÍ?imÒ?e>z?ah?Àl ?Út¢?®ó?µË?÷œR@Â?l3è?H· ?€vá?‚É?? Æt?Ë)?[¬?b:?f??e^Ð?ÐN>òYk=g˜>#ú„?‚Ó‚?q8Ž? TJ?/³ç?Ž%U?”:[? ‰T?8ˆ?"?T\Y?§£M? ?0(?Pª>×fI? ص?;'Ç?py?±RŸ?»#(?¶)û?ËÃ?ZÜû?t n?‚ÎP@Ù*@Q¸É?×q=?$ÁŽ?¾c?ý7B?-Ù±<¦²6?ìó@!",?ק?²3J?eD?R…L?¨ÐQ?²u°?ãF?ðÉ?ªP½?ª©“@vØ@!\Ð?UœO?5*ó>`Úú>fñx?‚¤H?z ï>·éF?e?çQÍ?ë±Á?ð?Îw=Dö> £½? ÍÑ?@BC?ɉ?É¢s?¼iK?²á‹?¥»Å?žÙÀ?‚pg?¯™Ê@iL?Ë  ?R‹Ä?“£?Ûð?ª2{?@Žh?›7?¨Ò"?‹Ÿ?XNt?-…/?;P?¿Ñ@­{@=L3@[@@á?Š#[?Ô¢ˆ@îÁ?ÐÂ3?³Mß?$ùæ>Ä©-@Éë@-a¹@—“@ ÷G?“ d?T¬z?ÌŽo?ç•?’æV?‚ˆ¶?¯_³?®Ïi?ßKp?ì¶;@XÀ@¹Ò?çqD?èdç?¼˜?¹©v?åäí?òÆó?‡ ?~?¹°?·^Ì?4Ç?>±™?æõÜ?î·?Óeá?׸Œ@#"®@#î >VtÛ>­/è@Tn@“?Þè?ׄ?ªY?¤YÙ?&DD?6šH?ª? ?œHH?^¡'?†ª¹@ùÙ?ï²Á?€óè?o“9? µã?)Ý?–yÜ?›^Ì? G¹?“hS?¸h?8&s?Ú¥?ÆWX?Da?M˜ ?Žc"?–-®?‡? ?¦úK@ À@a¤?ü£?¢?§z?Ép¢@>ŸžÒ>­qÔ?ï|X?ðx\?¢…K?– ¥= þ<’‘b>û]z>ýzB?“uà?ž[f@2[¹@5Ð;@ /Õ@ o1?õ£?é·v?Š?|Æ ?†)?ŒÜp?¶!§?½]±?â +n?× o@ß@¤ã?­¥?|”?Ùˆ¯?ûóN?ª$?ˆN”?Þh<@ù!@¹›@$Ž@Ý«?åÎó?Ý+Å?ãÎP?í“?éº/??úäq?Çåò?ˆ@?ê @;î@$%T?úk!?øÚ?òÌ?ÑŸ?Š¤©?„í0?Ro\?|›Û?Ð{°?®-?—#?!ÔÈ?£§?³4 @6Àk@9bV>5Ïê>?ƒ ß?€˜?v‡§?p!Ð?±ŽI?ºc?ºT(?ºCØ?éËê?ï @Î@ ï@?ä"?¼þ»?Úªt?÷£Ú?ÞnÏ?ÅÚ‰?¨øý?†Þ+?³F3?ô¯2?¸ “?E+ä?“O¶?ñPâ@–±@Uõ?ü#?± ?€`ò?¿¯ä?È“Œ@$U@'rå?îÛ?랇?”~²? '?…i?b]?ÔFü@ + +&?²ä ?tæ~?Õoÿ@ÙÌ?ûws?ôy˜?þÙ¢@rL@¹ï@Qõ?ío´?Š‰^?ƒÑý?z®á?Œöì@.=@(Ÿ@)j¡@%Ï@=Rþ@<¼•@GW@u}?è³u?Ö+?å2¶?óí?¾›¶?€D?Þà @4+@O‰F@‰ª+@aüS?Péæ?…Ý@o×?÷"~?•É±?¡,@·v@¸Ë?‚€5?$¦ú?‹{?­O€?µv?Âç:?ª]:?ƒ[l?¥§/?ÛýÇ?Ê“p?¨¸â?·Zƒ?³'¶?³Ê?˜ÏÌ?‡H?­Æ?²·Å?†Ÿ“?hœõ?29 +?!ýê?MÃ1?m“”?™=m?ÒN?Л?à ?à'?lÕE?l±û?„Ûª?z3-?l&…?dœ?†s?›A½?‡‘8?rœ/?Ìéj@!‹-@è?†.?u‚@ZEÈ@Uæ2?zô?j;R@_”@†‰?¿ ?'Ò?“Ý?Ù¿ï?«U¡>Ä:Í?!s(@#k@….?i0c?i?oÅë?„“[?Ô}·?öáü?ÒO.?¹¿ø?¼­!?®]?¦œÝ?„ÏA?÷?µž?°ì`@¥@#ÉW?´ËY?g…?µV/?æbf?Ç?»i‰?ÒÔn?ì«r?Ùì£@Ev@Iua@1x/@&#@@’@ Ì—?ìr?çÿ?㬱?Íëá@ü@#º@J^@ߤ@¸—?—¹þ?Çã¼@Ñ@‘R@sQ~@nü,?ùÙÃ@Ôû?«¡®?¥)?Õë$@W+@§!@2M@ ·@Ä6@$'•@@å@:ôP@M-@?¢?ˆ£O? è[?‰|ƒ?Ò„{?¾MZ?4g˜?? ú@ ¾;@Ä@ tâ@¬rp@µ°?o>±?ù*/@@Ð’@:Ä@=4»@T@B²:@/ô@Eå®@UœŸ?ã'?c²’?·Ï<@ ‡Í@ ªÿ?Ëž$?Ç!A?ÛÛà?ì~?gÝ”?ß?±3’?ßž?²B?’?¤–?®g? ²?…+\?ë?¢øþ?ª[ã?Øüd?媎?¼xz?¯)?Ä8 ?Àþ?›Á-?JÏ?cœå?­@m?¨¦ž?¤ä?Ÿe ?ô¸Ú@Ñ?·è]?‡Æ?žjƒ?¶ô?f*7=×þ¸>þ9?´/`?Òlq@§õ@h@?¶*M?°®?Òís?êa¼@¯?ö'?¸˜?©šÿ?f²‰>înÅ>È߃>@<§>VO.>þ7 ?‡U9@ +d¾?â¿x?–æ“?y2>å>‰Ö—?ëI%?ß ª>um>¢ZU?Ö1´?¸J`>÷Ž>ø°4?OÏð?n??öêl?ð”j?ú·™?øy•?Æ? ¹?:ëä?N >öÄÿ?H :@ %›?Þ’1?azJ?NòÔ?µé?r¢^?iˆP?ÑÇ?ƒd\?Oñ8?2E§?g}?06>Ï ¨>ß®«<•–ö>¤Á?Ô?"ù*?´>ÜJr>·œ>üµ“? +ÄV?BZ?Ü?­ö?rË®>‰úa?€?Qõ>^Ûà<˜Õ>‘ýÓ?é“ú?·Y]?ˆi|?s´?P>Ô‘>ÿÙJ>Ƈ=»S>ÙVK?·Î?<üË?OÈß?M/W?Jö?!™>ò¤.?&4? ô~?k?Þé?Ü2?2“?*D?LjÜ?S¡Ì?Cáˆ?HH&?o~`?xd»?ŽÏ?¿>·qñ>½o…?'þÆ?%·ø?h¬1?u×?u¾?u1>‚±‡šò÷>è: ?–L?îô?ŸBš?⺊?|Œ >M¸>Äç`?1ž?+˜?Hò?@L?3é?0àÃ>öÄî>à€r>ƒ>æúà?¶Ž?¤±ã>ÒÆ>æ—â?©”p?¦³Ä?Íã?Ë”þ?Ät>÷š=ŠS>‰äC>~ÿË?Io"?nÄ?`>üÚù?UÛ??tð?"ª>øI+?9m!?VRá>òªƒ>Ô‹?D8?Œ +È?DýW>ø¹!>øÄ•>øÒ÷>ºô`>P ?êñ?´rÐ?–Ì>ùé?/‚O?¡I@?ŠŒ®>°¾®>Ìœ?Tb¸?@£R=ïL >8õ ?y§R?€1¦?£¶?™ÉÉ?y×È?yèi?3|>ú^?² Ø?»’\?ç¿?éª[?B À? ?.‹,?;»‹?Éç?ç3ï?:8Ÿ>¸:³?šˆï?Å@?Œ¶ÿ?s¸P?4C?΀?N€?{ 2?sbî?z0L?˳c@ ° +?àg?¡QÈ?EØ=®®>Ï–1?oe¡?{Ëz?‚|à?)ã6<(˜>:'Š?lT?@§?ܯ?EþÞ?°]Ê?¡Mú?[$‘?MÙ?&÷œ?7¶Ó?||¨?€9 ?…IM?tì>>ü¹@>û=3?-ô?)ôB@[œ@˜?}[5?|³ž?]qZ?a]8>/:>q¦Ø?q½ì?}yI?()ª?Q)?±ÄÎ?¹ ¨? ‹É? ÒÄ?~ý?$mI>§û•>ŸOa?²=‰?Ïׄ?7wC>þP¬?’5°?¥Ä¯?Íeì?Ûéª?z™?A9 ?ñ…?š1Ì?´šn?¿0$?‘I0? +ò>Äñ³=ïé¨?_û?+Ó?—(+?¸r±?åÐœ?ü_I?ÕöW?½¼?M,F>ìN[?Xh4?ˆÈÞ?´_Q?ÌÒ©?œÍ?€?‘Ü?–‹3?ÕÂ?]½ê?:ׯ?¢„>‘³=õ:1?Ÿ·|?õØ€?ÎÞl?¹¦·?R+¨>ô=?SîÖ?„/ó?‚b?wÛï>ÞÄÚ>Uþ ?Ùéî@¬?–Óœ?*Œ?ª ?Õ7¼@û`@>V?ª’|? 3?°ëü?¿é¥?1Y?nˆë>r?‘#–?«?æ!×?ó˜½?®ð? Î ?µOY?»+÷?í€~?ýH?FZT?ˆ^?¨ñà?·É?ÀeR?Âø?cù?hsé?½}?½5?4®?—XÍ?‡¥É?Ž=?t?y`¥?Òë?ðw?ˆsƒ?ŒÙß?3­¹?.·É>øôK>ó^?‘(#?žÿw?ëV?Ú„£?"?„Ã?I?|Ú­@B¢@Dø=ƒ +ž>ÔåÜ?ÃiÞ?ºáà?§XÐ?™uÆ?B»6?‹?ð??Ú?er?¡þ?çíu?²`×?BÄœ?)±?ÝÃ?¢>¿ Í?Væ?©ý?„•?@Ú0?›?×vL?Éà=?¼Ÿä?ÇÀ?Ê‚?˜j<¡‘?µ:@`ë?ª¹?‚«R@$Éa@B3Ñ?ºÔ?‚³@„G@ 7¦@ìÁ@¹Ý?£ì?õ?›„?»Ê‚?Ÿ±ò?*??f¬?[†î?Sµ?H•ð?"… ?N1?'?Ñi?>7Ï?;ƒ?‚϶?T:F<ø*?.³@9MX@Ø?‚ÑL?~†(?i·c?¹Vƒ@Λ?í”E?X´¼?@Ÿ²?µ§>¤u >t†>ñ³?®Ç@»¹?Ì_¥?‚Õ?–W?¥[ ?è&@ H›?ì߆?Õ†ß? '3?‡%@û@B‰S?OJ>2º? Rq?%׳?ž®Q?©ßQ?ê›d?óû ? H?˜}O?•7?¾§?ÿïo@’ ?E¢•?X5–?²sz?¨m°?š„?Ž|³>œç>¹œ¨?‚—¨?„•?H?z„ñ?ŠÒ?ZÒ@w0?ÃÌ=ìñ>Áó?‰›®?šè?¸$?µ×;?³?З @eu?òS??ÒÜ„?¾a?¦"?³?X?ÀÝ–?‘ëk?Nþ[?“¼}?°}^?sÓ±?%½U?€íj?¨Î°@T¸@' A@‚I@3(?Ú¬õ?ÃÂ[?í¿ý?þþþ?ÄHÃ?¦ñ?útª@: +?·û?Ÿ%?¬â?«m³@dP@R6?†e?B^:@5u@"<Ü?¨h?”±,@ ®@ê?ŸOå?LËK=‡ÐÖ?×h?? <—?Ü?s¤?q.×?Â&»?ÃáK?ñ¢Ç?êŽ ?—AÄ?Ô=˜/¨??ŠTµ?ɶå?ÀÄ?$9·?B!`?¦|a?²}‘@~è@;>l;>Ò+ñ@ 6?úˆ}?Àz?¨uI?ßÜ?Tœü@î ?ý“n?€Ä§?V!>$Îx>æ(?Àþ4?›s?Ä(é?£˜r>æy?Y_P@?%@ú@ ÛV@m§?À™"?—=‰…>’ˆ„?‡>?‚5ñ?ƒ—ª?°B“@lk?ëD=¾ÅD>¼D)?¢0]?À†f@ Æw@ v:@Ìè@é?½RÌ?Ñ7F@Èv@,{?”›?”ñ? i°?·W @Ú7@ó?ºg?²Š ?‚ÀÉ?ŸŒ ?ó†?ßš*?•ƒr? +?¾ÿï?Ä÷“?踢?Û ?ˆT‚?”9@˜ï@ ƒ @$s@ ð¶?V0ê?eÕ—?¾lï?ÄQü@(,õ@,Æ?ºêÖ?½';?¹¯S?´ ²?¶l?³\à@"{œ@&]I?­ÎÕ?ªI8?êQ‚?ôÃO?ŠÕ@?|Á?=uÇ?.Áž?­Å=?½]æ@ZÏ’@|+9@1ô=@¢š?©áV?| ”?Û?ûë³?É‘?²Fþ? ÂÐ?ž¥ä?ʸ?í`ó@F@ É??Ñšz?š,á?â ,@˜l@¡÷@ ø¿?þqg?Ûuï@ˆœ@3@Ý6?€=—?šXÿ?ÃO­?Ÿ©6?œs?6©t?yíþ?„'o?§ ?¤q¦?4;`?;^Ž?¬>³?¥ýo?©|Ž?ªLá?bÚÉ?i!5?ü ?úoZ?„?þÕ‡?ç`@fb@8+Œ@’?©¿?ŒPO?4þÁ?–Þ#@$¦@"í¡@èE@)Á?°É?®$@úT@ÅT?â!?Õ@i?æ`9?ïó@*û@.~ +?½Æ>?Ô@Õ:@)âÉ@/ Ö@7@-–?¹ÚŠ?ÐEc?îΛ?Ì»…?tI?™›¨?óÓº@'¥@Å_@ %Œ?6û ?[/ ?s°?‘ä£@)@íb@Mµ@R—?Åz?’ÿ{?rh?N ™?‚ž?¨þ?°Z6?¶îP?³Õ.?®ÿá?±sS?R¶U?jΖ?âƒ(?æY?3ð4?,0³?‰—÷?ŠrÏ?«ìÀ?´4Ý?Pf?ã?@·i?x£Ï?wv$?oI?“£‹?LJÙ?ÚÞ|?úæö?ÚoL?›:Ñ?ŸF?Þ­°?âª?Í^?¾Z«?à*?çú?p×>íÁG?šh—?î j?ÍaÁ?®(=?ŸÔ?>`?NLË?…u±?A7?ð0?ï Z?ºD?¬=ð?§úJ?£´²?}o ?@pø?¤Ÿû@%L?ËwÄ>¢†Ý?)ÿ@pÂò@y1?ÿE>î6Ø?(}?;š°?Á‹Ä?ÞÝ2?´vo?•L\?Ø—?Œk¡?–Å€?̤Ú?Âd?ŒD?uâÑ?ÖC?Üû?ã6f?è•?Ò&È?·üa?&h?FÉ`?‹€¤?íKç?Ü??ûïE?î#K@ 44@‡?Í—®?žEâ?Õü@ ³ì@ ù?û-%?ëoü@3`³@:Oê@9_¡@F9B@¼1?ôø?ÁåÍ?¥¬®@ +ï†@MŠÐ@:þ@ÜÌ@&„?ñB?ì=?åÇ\?î_E?Ê;ë?«¨¾@ ä@3@³@-b‹@/0@3°©?»ùf?¶û[?KBì?C@ øg@=3À@8Ç»@6•a@"2x?æô9?íX¢@cЈ@cÅ-@6r„@;–Ë@ ²+?ÖÂZ?Ñ\$?ÔüM?Ê÷?±ÃÞ?¢sœ?8Bï?B±‹@üP@«v @1.â?§W¨@(‚¡@ƒÐ @X^Ê?˯?Ûøt@Œ@'ç@¿ +?é3Í@Ôs@²@k¿@û?븸?¥G„?°Ç(?®Ùp?žKu?ö(l@ @!’@%2À@qb?Áç%?±²{?«©Ë?±îO?š‹Ñ? UT?sê‹?g‹?u¯?†ñ{? 8>­œØ?‚Ñ?ï‘?ÛÜ?o›?GÅ÷?¬0‡?­_x?­¸?­®(?µ_ ?Çç?­4 ?œf?ºn®?ÝsÊ?æãˆÁ%=B§Ø?àS›@ ª?Ÿq´?,à´?.Á?E?rLô?³_‚?ÈÍð?àKæ?¹Mj?™T˜?·w?µWÝ?¤¯4?ãg? Íæ?ô?T?H¬Ö?6rù?Ʀ?Ø%Ü>öú›>öö=…1ó<Àï@ºß@»?¢Ú›?®T•?%Q? * >±§>+P<áh>©^S@˾?ûѼ?‘‡?¨ÁÒ?ªœ¹?RȨ= Ué?/ˆš?¼"x?ªYÇ?”ˆ-?d>¤ÀE=Œ°¤<¬Vƒ=e`f?‚S?\?‡?ô>ûÌt?Xi?Œg=Ñ =ߎM>ô?5?N†9?{Óo?©Û˜?°Å?n>hºÝ?éLí?Ÿ­a?K'd=&Ä«>µšŽ>ñÓ›?K?r]?rBL?reJ?Z5q?ByU?WÒó?rë`?‡•*?˜²û?—ª?š4¡?}iÓ>Ì\–>ÉÇv>óÚÇ>ÙÁ°>ùC>‚`Ù?‹%!?‚¼Ú=áh£=Þö½?µ¸¡?·•:?…ö”?5Ä?lƒ?m®z?v >ø6ò>õ Ë>ð`ž?Mb™?líä>¬±®=nó?2Ü°?)?:°Ø>¿/©?Ik«?–è‹?€k?N>´? j>™cç>èa`?A¨‹?S¨?{1µ?ï?Ú:º?Ä)P?D á?bÛ%?ÊÊw?ËÏ›?¾ŠX?Åú¶?›¥ä?¼Ò;Õ0{?Ï^d?áÓm? {Í>÷Ý`?dÀ2?wóï?¬åÑ?·Ùi>Âö¯=4D˜?¦?æ'?_Ä?>ÆN)? û#?膩?ºJÄ?“ƒº? @U>7Âm?ßg?V`V?c$O?}bß?’Ò"?±#^?™¹m?y"”?k=?Mê?3)>°à“>Æn>ùqÔ? Z?’¼¤?«f­@K¥@Eïp?ˆG†?~YÃ;Büd; u=ê–?¶±?Êžc?ðKî?ún½?mìâ?m÷?8Ç®?WÎ¥?VðÅæ<>b^l?‹é¤?Ç@=?6~w>'¿?‡z-?Þ±Ö?ˆº>ûI.?Ù®?7»[?re? —C?Š¼i?ò÷¡?Èúã?uà@?c='á¨?CŸ×@ `L?Ø D?1qt?ÛJ>…V3?“ ?”:¢?v+|>Â'>þ}?nãk?‚™y?œœÑ?/¾?#÷/?!V²?Žªå?‘»ˆ?|ü ?}ÌF?]_)?RüÞ?±ð×?³õ–?‡8?„Ù/@Êñ@Ù?‡!?€c€@Áž@¦Õ?%V?>ý݉?ðsø?û:?™¡x?A@jª@ â?Éž?¾Å^? jk?œ6?#Ü_>þ™Ï?Áð?¤9ç?~“?tìü?€&+?~õÐ?8ð?—m?¢û?¿hŒ?‰å +?q Ý?¥'ø?¹7Ó@"ãŠ@>g?Æ;]?v ?{׋?Ѻ?‡l¹?Œ¸±?„œ¤?€’?ŒÏH?”ÐÁ?™WÌ?¢ýë?Eït?3j?¯¤q?Þj?³Ùï?¥t?§?©&2?Çým?Ú ·?O&¾>ÃQn?ožq?ž“p?˜³ˆ?kF>¾Øi<ØÄÃ?…³?ÀRw?“ºC?€Æ½>š2«?’â?gŽÂ?TÓ+?>aå?—i?¬‘-?Ÿ“~?¤k•?¨Ê§?¤Ð?ž^Z?£Õ›?¥ì?¦YO>æ¼ò>;4°?jë?ÁôÔ?—ðŒ?”b>ôÆ%>†ö\?‡O?—G?vn°?v„ã?é„?€tè><«”=ø Œ?zQG?Šás?‚²7?®”?_bG?j:õ?QÍ?W×ÿ?-l?'?°‰Ç?¦ì)>~>«QF?Ò^u?ÈV´?Ìî`?Åßë?Âûõ?¸Ò€?(B?l?j½Ë?a0Å?Gá?Mnñ?öÙM@¯Þ@"á@|>ô¼ê?\z?üoÏ?×¾}?‚F?D,½>‚x²>Å’Ø?#‘?€À‡?ºø§?µÀ\?»Úm?´i?¢ÀA?-/>Ìò•?TØ?¥ß?Ý2Ë?ÚÉT?Ó„·?>P=¹o>?*Î?gg"?ïÿ¸@³J?¾ƒ}?€oÓ?Þ}@ži?ú&|?òk“@"w²@0îâ?­Öñ?‚«!?Û3ì?ðc?–‡ó?é*?¯WÄ?ªDk?À—?˶˜?©ÿ?ªÄ'?Ü’?Ù3ù?ÄK?½Ù?en?säa?šmã?®A@ÚE@ ‘ð?xR? 3?Áï? ªÏ?7†à? Ð¶@2ô@ =?ê +®?µUï?X=i?Ž¨-?­éë?lî«>ÔW´?$&?O²?dz§?‚Èr? ²ë?ÄÊ_?྾?ïË_?ÚD?Ñ,@ÈÛ@J5@¾]@)´?çý½?ȧš? |?‚è=?€GP?tb?«V`?²ßè?ÀçI?Ä +ö?¤¾·?¥21?7<,?-àŠ?¿DË?Ãöc?ae‹?vµB?ƒIy?~Å?ñ."?ìZx?wcq?‚Ó?‚’Î?¼Ç?f‡Z?†>F?ίƒ?°D;?sù?‚€t@ 1@b?¼¦?ÝÒî@™g@ m•?ùn†?«: >¾'L?ˆ˜@\m?à1½?³ÚÎ?šhì?w9ˆ?°47?åÅ? ?8Ñ?ð9@8Á?é1?‚/~?[l?7¶@_5@5éË@ú@Õ?æX¬?·?™…‘?‹çô?´óJ?Âú=?Ëïò?щ?‡Nƒ?^x]?V¯N?^ýù?¾‡ +?Õ} ?­\f?¢3™@$SÚ@0É?A%ç?¸"@FÒ}@Tô?ð^3?Ýùç?v ¹?qc?‡÷?…íé?J?€dÜ?“þ? +“?óÒv?í!û?Âc?¿ô?£mt?¥…?Q +?„p6?˜O0?â´?ƒ(\?uâ­?IpÄ?NÙ?=S?`pl@ +yÃ@š"?¥´$?¥f”?Š k?±ƒd@=:&@3½Ž@h¤?ÙËT?Ù +?i)@ ùõ@ ¦ ?€½á?It“>¬Ë=?Àòœ?¶ÍY?››]?·þL?óÚ@)Š@@¶.@&¿;?­ß9?¿Ø5?骓?ºWÿ?PD?]‚?ü÷Â?ßyl?€4!?j:²?6í?PÐ?ЯX?ÙàI@‚™?þaC?ìV‚?Û`‡?¤2?¬ª?¢Ó?½|?ñ?ðãG?Ôx+?­°,>Ái>´”Ë>$™¦> §4?„‡?¨ N@ØÉ@ö?! þ?>œB?~¿L?bþ>ÅB¥?<Þ4@#‚@è@º­@«;@vQ@cu@ ÀH@Ì?¢éò?›-T?ÛÉ?Ðdè?h¯„?Kÿ?…N;?Ê?¾ó?½<+?$?)Pù?ilì?€}¸?~¨?|û†@P_@5´?©·Þ?œ8ˆ?7ˆ?|“Ì?þŒ‡@_`?ÕÄä?Ö’%@÷~@8_?«@Ä?ñª?P?‡…ô?×$:?ñ F?Â[ˆ?¬ú˜? B ?yÞé?€^3?†“'?…°T?Y(?¡êL?²Ó?·°À?Ñÿ?†£>ù >ûîl@îK@*4@ +@1:?Ú¡?ÜÕ?•è?–e‹?•Êa?žW?Þ+¼?÷1L?Ê“?­y1?§žƒ?˜ñ@ÿ–@fð@eµ?mœ>™f°=„¥?+6´?¹ ã?ÐdÁ?ùFª?ÞÉ?»¶³?ן­@e@0?öT?ý;\@MZ@NüL@,~@.ðó?–œ.?zö?°*?Ä€¡?Þ«{?Þ¦Æ@4(4@V7u@,|e@‚×?àmb?—T?ž(V?¥y]?žC`?— t?¨ý/?ìm,@q,@ˆ­t@w7ý?fè?e;@+ @ ?÷…ê?òÕÔ@ìÓ@ ?É@ ^¾@ ÷@±u?ò(?“ûÁ?5?67„?sÐ?v½i?qx°?âÂ?Ñ~ö?»ÅÐ?V\ç?x˜@"%@¦U?â¯2?×x(?®rÞ?ªYõ?²?³û¿?Õ‹?åŸk?”_3?ˆÂ?eXÿ?³x?Öˆu@"m@‚Ø?¼÷Û?±;f?ÂK?¾i@ PW@-ñ)?ÛÛ??¶¡?PÒä>í¸I?ŸùY@ï.?ÎS3?m6³?[ü?#— +?/N?£H"?§Xk@@Ò?“?w…G?æ³@`”?àîê?¾¶ù?Ìå?îR"?Ø“È?‰•?”?™@w@Óº?¶ÀÅ?­{M?ÐÈà?Í4Í?Êš?Ô?Æ?Öi,?ÎІ?®>Â?Ýý?›{?ì>£@!@$É‘@,ÛB?Åïý?µàß?º:_?¾ž/?šðÍ?…Œ©?3Rz>ûi@a9@+ê(@9}Ç@Fª@dÉ@Q?ðÉ“?Öôù@ +U÷@$ 1@%P@>+Ä@;8O?ÊäÍ?Ô%Ü>ù¤>ì#æ@ ¬~@#ã`@ ”?é!x@„@Uy½@@R¦?ÀZ?¿žZ@ŸÞ@(ˆ?îl.?å^@¬ã@(Ü@ãX@lÓ@‰p@$ݯ@Uñ@ X˜@çt@0%@)*Ü@tÊ?üÒ@ @4 ”@/­;@Ì!@½h@53‘@AÕß?òë>? “@ Ê@>ȳ@78@/O2@2Ú?¦"Ú?±äÿ?²?“GQ?Ök?ãrg?c¹ê?Æ?œO&@ +_ª@Lt?¥Uy?¾Nu@Dîý@MÃ@çà@9 ?Ðø±?µ/Á?Õ†ú?óÙW?å”`?­¢ +?©Þ¤?÷<¡@0X?•ëý?q1? i ?ÁÒ®?­¬Æ?—Ñ‹?œv?j8?„íì?dð?e ?ª|?«?¢?Î¥Ü?ÎzŠ?¬>¢?‰ß?š™í?Ã?]?Ýá@¯é@1Z?i2ž?r8?%Èþ?9€°?+Wƒ?/ ²?W%C?hk…?zXÓ?y{­?ŸFE?émg?캗?ëpÿ?Óˆ?[ƒ?Š?K?“;? (ˆ?¯‰²?¨„?cç#?t …?^Ðì?4(w?6~‡?JÙœ?‡%š?®²J?Ÿ!Ø?…Òi?’\Â?‹ó?…;Ì?šÁ7?šƒ¯?r¥e?‡“e?ñæž?ßf@?ª¿ã?¢s(?uÄÔ?rªx>¤&ÿ>Á‰ˆ? M>ú¥±?ŽªŠ?£L#>¤Œ>â`Õ?%Àù?Ul?£ù1?¨X§>û•G? i±?žm?œ#p?=ìu?C@–8?Â?h?¸§? +sº?./£?—›? >Ï&›>;‡.=ölò=ikÍ?y3|?]Ül=ùù>?Ô">è ?Kð?»1m?˜Àµ?ˆE®>1þå> ìm? ø3>×µV=Ì ,†[?é P?œž´?û%>¶«ú>9Þª>¡=?³>¶G¤?;¹ ?Nú’?hŸ?r2e?rU:?rw-?˜>Ì>¨?%?2 œ?QbV?uÍ?`3¢?=h+?@L?C-~? Tœ>ž<>£Òn>©•z>ïã?‡âX?‚¿>ô~è? +AÇ?­„)?¯ S?°“X?²M>÷¶õ>ê“©?iW?uPŸ?sÌ?pÛž?R?Ž,>Û‹?(–|?uîÌ>Õfí=ê¨(>‰ÿé>Õ¯õ?:|-?vbÓ?ör>âŠj>ÚÈ?o‚?7l¿?‡¬Œ?Õ—?«7‰>÷I?µ]?!X?"_>÷F#?>å„@:¤I@3qà>9ãm>!¼²>öß>÷®Ü>ãß¡>ê“Í?jQ™?w„£?z 5?}¡—? ›ø>ß=s>‘ ä>š3_?=ßv?^0Õ?« +Þ?ÊÚØ?¥€Ê?BÐ?„²E?h/¡?\§ú?h/?MÇ ?6Lj?yg?©ê?ž–?yZ?<(¡>¤@g>©‚…>”a>žå>ù_„?8WÓ?Ï¡?ÌÖ}?¦M?½Ð@š@ö‰>øšñ? ?yãx?xYn? e‚?Å<¨Rú?Bu?^<æ?œfe?¤áý?§ió?¤Q8>õ•H>¬f?Ggµ?yx?zXÁ?m™?ÄѬ?ð„ú?‡(?&ÒÔ?Õa@xó?˜aŸ>ÆXr?”u¢?è\?«¦?drø?LQ<þã¹?`òŸ?øoK?ôk>áz®?™|±?¢Æ?£Ç?ªo?¸ûÉ?§-Š?’¶q?Ž†c?h¿?Ehu>üqä?/D?¾y±?·O1?‡ —?€= >üÑ(?«?’ P?–˜?Ý’?Ûá ?Šy¤?‹V?½ô÷?¼RÁ?}fî?|Y>ÿ‹?þ!?“þ?*Ò/?n?k +‚?¸ø?¦Øa?,„Ö?!mû?è#?þF?4·ÿ?;—?3й?9'ª?œÇ>þŽ~?j‘°?~­è>ª­â>7?I?W)ý?~ìŸ?cY„?`òê?¯h‚?¿`s?b|?*­¥?6›=?&_A?£ ??ÁþÉ?FNƒ? Q\>_â> l%>+=Ê>Kà?Tš?![Ê?gÎÃ?€Æ?_†Y?Nîu?›ìõ?ªc ?ãù·@Ø+?»^q?›Ç»?¬HÌ?¯Y³?›Í‰?“êû?iÂV?:˜>€\‘=¸Ø?¶?ù¯Â?fX ?¥?œ»Ý?Àð@?¾ý†?¼{ò?…žs?^âY?›¾o?§Ý“?‰Gð?€ì[?XP±?T1f?‹Ý€?Õù?—ý?ü?¤ÿ¢?Ÿb·?Y‰?œÀ•?KÞ(?0J$?¯s>?ÁìÊ>ð+u>vèî?’Ú?«S@*¦@z½>ÄÒû=œ%“?¯Ä?ÁUÑ?¹Å„?³HA?Ê_?Ô^?²è¿?µPf?h?`à?\Ò«?Z˜Ã?“ÕU?Œ¦´?\›?nÇ?Gê¸?Xl„@£@M@ IÐ@X>?Â÷Æ?Ó4Â@ Ã@p¦?À‘?(«Ù?r°;?\æ??asM@ìj?Ð.Ã?1Õ>Ô0>|64? +Û?‚C3?Lp²>Ä­?ºµ?3…C?tiä?³.?Â1Î?Ë¢#?µ`­?£½?b¾¶>âØ|>ìÂJ?tp?d–?–Œ ?Á’þ?å-?’$Ø?1Î>¨O=s-ˆ>¹ÏØ?‘T?%À?só?"Ð?!›?„ Ê?•!“@(ð@=?˜?(š÷>Œüj?‰ò?˜{?@¼@¬?›Bb?›ø\?IwÁ?A +Ø?‚³$?‡w€?ìÏ|?çÉ?›=È?›oF?d¥?|ñ”?í&?é1Ÿ?Ä!“?œI=ªL$>ØKä?Ä.?÷þè@7jk@†?M€O?ËÐx@6‘@?í͉>¾/¤?\ÇH?Ä*?•lE>¹Uö@œe@>L?Øp ?¼bQ>AØ¡>¥‘!?–g?‹žv?@W?tzš?îï¯?טW?‚|ò?ng?€>û?‚µ7?„΃?Cî§>‡üe?w?š@fZ@ªö?÷ˆ»?÷=@Y@<®@&Ì?ê§?‰M²?“Ìy?£Ï°?¢hÐ?Qé?à*Õ@ +p?¨K?<º?ž»}?Ã7ˆ?Ã/N?Ã)>ûÔí>±‹ù?:?ËòÝ?úiD@`…@ñ?±|?á®>ÜÌ>”G‹?ò³™@ö~?hÊò?9PÒ?Ô#\?ã:@¥­@ +Öb?ƒ‚:?^ +@'@9‰@-ë@ç?i®Õ?K??³š@?¸\?†M?:?}ÿ?zP?Gz?›]?öžº?ã`>‡F?>ñö@@W+@'p@‹•?ÁÒl?° #?)W?;nF@²@ã‰@t?ýÖ?è?C÷Þ?Át•?É[!?ðÃ?à±…?‚k?««;@Ês?÷”—?U%µ?‚ º?±¶?g”>¯žu?+d?Àï›?²ËÈ?„0?©k@j¡@Åi@ø"@yœ?¸Ûí?Ø @%¿@Td>Ýãw?;þÇ?À]Z?ÀQ?¾´í?šÞ?!#?$?G?–Œô@v?ñ«J?–Ý?„øÓ?vÇ>íiä>{¤>žB?~?[4@ +)ø?؃ >y|c>êU?žzŸ? :9?¿P+@:ý@} ö@` E?íÂÎ@Ãá@C6­@"ÿÌ?<Ë‘?Dpb?—û?º”à@öš@ß~?ßaÃ?æ´Ç@tE@ =¿@Ë@%Ö@,öï@-.@P×@OHµ?ú^¨?ùâ¯?¾š?½Ó•?®‡?¨°™?Ô}ª?Ì•?(w¥?*‹2?·¯?ɵw?¿Œ?½‚r?ƒýó?|‹ì@%Xž@8Yp?“"O?Hä?ÑÁÈ?îÙ?ú,Y?ûà?VŸ?Áè?w&?“o«?²­?¼¦§@1@Ñp?ÁKø?”wh?Õ_¾?ôÙq?Ê©:?©òü?ñŒ§@®ú@V9?æg ?ìf ?òm??Ã4?„¿L?³„4?êâ?šÉÑ=âü?ðÚ@QÊz@1™X?ßO?È%ò?y…t?uóz?YÒ?j©?ÜÑ‹?мú?f®Å?J»à?ÇeR?½éY?ƒýÍ?‹ˆe?¶ý®?ºR? ¡k?–I¢>´µ>Ca¤?’{?¹ïÎ@¢@ ™‚@ª@ ðä@ˆ @žH?é¾¢?«‡G?Òj@?ð*?½àÀ?ƒÍº@6@w7/@LÝZ?Ê´w?À }?´d.?»$ +?Áãr?Ïéü@%.à@(Žq?Þ„t?ãÝÐ?Ê´÷?½Ç?…‰7?~mä?Ú?ôù€@ +ˆY@S?õã³?Ñ5?£S€?}?¡2(?ɺ'?ÖøŸ?åég?Ý]?½¥f?ôô@s)Œ@cwm?¯Yò?¬Ý÷?ïô£?þyF@¦@µÃ@',@ ½O?ß%n?É`‚?гÉ?Ø Š?Ð]Ò?ªÏÃ?×’û@ë ?÷’!?¬*i?ßw@:T@#ƒ´?„–ê?„ß @á\@,"´?õæ?ù¸à?ŽÇz?p/Ì?œ•?±¤?µsÐ?¹ˆÀ?”ã±?TW—?„Ij?³iÛ?ÃM›?ïf?ð:‘?ý€¦@b ?î‚Æ?îcd?­ &?­Ó?ßÚ?èþD?—(—?S¢}?ì›?¡I?»½?Еü?½²ê?¡üj?‘?Ô?6Îl?GJ—? Ží>õ™9=ÖÔô=Ð×Ü?”Û?ΰ!?Ë‘C?Èv?¿Ùè?°‰Ò?¼¯ê?ÕzF?ÃÎ?~á#?v2Ö@ ïq@”‚?›Ð?ŠVÿ?Uâ ?B Z?šzñ?ËIV?³~h?w¸?O0›?tO? +Ÿ?`ñe?j‘¿@4ª6@;¤?€ó¤>ÎtÐ?ŠÒb?¹¸œ?†çù? >¤>â¿¢>çϲ>ëñP?÷<>òWô@iš@ˆ?º‹*?•Ôç@”Ä@:P}@  Ú?UÄÛ?x@Þ?Œ•«?ƒ-?"ýŒ>èã?ôc•@Œû@3÷@˜Í?óHÖ?ȯB?ÚŽ×?Ò9™?Ý•F@5lÓ@0[?ö?äúÐ?²=¿?¨fé?©‘P? ÎŸ?á,@@\}@E‰¸@2@@9Ù-?™rã?hq#?Ã@Ÿ?ä þ?óM@ag@$²æ@aÛ™@O­W?ÞèÁ?Ï @¹7Y@ÒA@W:?ø.®@-ÐŒ@Zê×@><?ç.ä?Øúé@ž­@$«L@?éåw@§õ@±e?é8?ª‘]?¤?c?˜õ¸@!!ã@Ê:@„Ñ@•[?©¦¬?pá›?íÁo@,ê–@ ‚ž?ªïX?´’Ê?ªò3?ªþ*@‹À@ g?ʪ¾?«9è?¢÷£?—?®ð_?Þ¦%?Õˆ¸?Ç£?¥b?°l8?«õ3?ÙÐe?å‘%@ã<@#ÿþ@cú?Ñ j?Ù‰Í?ÒÁ?ÀÓÄ?ä(j?Ù>&H*>Z?B ?Š”8?‘Š?‘²é?¹w°?èÞ-?«Î•?%Ë?fTÂ?²ÕK?ËÃl?ü6i?é º?zCå?7p"?¡ëú?±u>Ôß¼> +ïr>Ÿ¼©>òùÐ?/œ?7Dœ?E¥?o [?¡øì?Þ™Œ?½ž-?Že|?‡‡?@9?Nã?\¡?y?·éî?¹Úg?ˆÑm?N»?3ø!??²>.f=Ên?nvu?uïÇ?y&¸?x]ø> ÷`>‘¥?£I?¥!’>ýr? +Ö?z57?oÍf?õ5?uÓO?@¥À?Œ&«@ ÞÄ?Ûy“?€–E?HÅÜ?*±>p…>J§>³ÓI?|?ž‰=z»i>H]?H´€?Ÿ¥>œm?N–ñ?5“Ö? >ð>ÿnÒ>àú‘?7;»>á:y?Ž­?dy˜>Bß=ÞŸS?èÂB?׆@?µ­?5U >Û’Â?V…?{›g>ñ±ú>•Ùð>˜y?Wé?rÎ6Â>†ßÅ?`Rã?™òÖ?fö…?2aÌ?KÎÌ?`k-?.XŠ>ó«_>¸­'>!UJ>2>> +ûß>$>hà³>ƒæ`>ô|C? ¦ ?t§d?x/‡?†I?}Fu<ÀËÏþâ?™Ç?óB>à’J>·Ÿ2?a>?+K—>à§>®ÖÃ?Þ™?Di!?'ñ>…Òr>ó͘?5»?b±?¥€Â?†rô>öñq>ʵi>%uN>gzy>÷0 ??c?›Û¤?wi!?l”>÷…0>òˆI=ί=ß>÷ãŒ>øÄ2>þ̨?Íb>úxK>ø>Ûïœ>ÏIÀ?”·³?¬ŒT?l`>̱?Q+â?xrN?¿ +L?à–þ?z°å>ø¡½?ÜR>ú™>ì.ü>ÞA>ñ…8?Ë_?Ô>ùj?2=ü?Úä?Y¸ñ>ÂQÅ>5=†ÔÍ>T€>Ó–&?».?ž0;H›™>6!Ó?·•?±W;?k!s?cÖz>Íù>Æ¿¾>ø Z>ú&W?sªY?zC +?Wy?\^C>–¬>[È÷?bQú?{6•?•¿Ð? 6"?®`°?­¤*?R¸I?).?“Ê ?¸? +hâ?¥?{:F? †Í>1ØÂ?y#?{r]?=yÞ?cŒ>›Ny=Re°>L>Wlÿ>NU? +?cpß?tL?|#}?V™ ?!¨?~>bÄy>Ü?|}—?mƒ ?4–F?&,É>ü¹•?©º?–¦??“é}?]¤>?qN[?±ýù?³ø|?µîr?²y4?lÞâ?n²´?¦>ý‚>ý”ü>ý¡“? ¦Ú?Fe>8——>Tã¯>ü~±>þ?¸èw?¾˜Ï?¤Ó?šò?ˆà€?„Ù’?¼Ã?ºˆ:?ƒÁÏ?~˜>>Åï>£e?Cm`?XÞ? Æ[>þú%?‰c;?ëÝ?àPô?ðÏÚ@BW@@WI]?ºú§?€z£?{Ñ ?v1?g «?]ÿ?NÚ>ÍI‡>0­§>ë?{š?):’?–ܲ?§‹‹?ns™?d©µ?yÝ ?E,?²ÈS?Àfˆ?Ê?ш”?¤—@?™oŠ@Rî@1Ü?¤Ÿ˜?FS?¢Eî?¹AÊ?I¨?år?`?ôä?kÉ?…H‹>CÞ> Bž?x?3IÌ?ÉÆ(?à}Á?ÍŠ?ÃÓù?žÆ?™¾a@Yë@ÞÑ?ÎÓÙ?ÂÆÌ?m”y?]fŽ?S–Ð?S"&?Ê™d[>ë÷@·@ÿÚ?–p?•»µ?ä1ø?ÞJE?Â̯?ÂÖK?ÂÞq?»¯?˜Š¬?¨¿š?áË'?Ñ D?‚ã?j¸$?Öž? a4?£?Jø'?Â5?¯9?}!V?¢I?åƒÉ?¼t+?‚;6?Q…Ä?C&?hõ?*‚¾?{ G?«:3?Â,2?ßèC?ÃQ%?£q?”F?‚f‘?Y#¿?3(r?zz…?›<å?O5?‚y¹?‘ØJ?Ÿþ‘?itñ?1j?¸6? ¸?kh?ó?¬?“—?]?Â5?dŒb?ƒ£‹?í¼„?ïL@C\@D\Ü?Ö{»?ÜRÝ?þ?‡W®?‚§?‚­+?‚®2?ƒBA?’o ?Ðß?+â?W)?õ ?ÜYƒ?TÈ ?yä‘?´3­?»)Q?Ä·?Õén@;ï@ ý÷@%âå@ê'?éú™?å$–?ìX–?¦œ*?½?'Œâ?Zlm?·«Ê?øJÕ?b§?§2?}N¬?½š?ë ?¸È?˜ËÒ?Æ`u?áÛ?Íÿ]?Äw?û3Õ@ iÎ?r  ? t~@ ѹ@"Ç\@!^Ú@là@ñŸ@©Á?òc?ì"$?•¸t?“‹J?ßÍ?ìšü?šÓ?š4?M‚?nB˜@#¸@É‚@ÒÜ@ô¦?3R‡?]±?×ÈÃ?Ʋ)?”ñ2?˜Ô?¯Š?̺? +Ý?m>ü?0²>±.¶= é0?f2q@dÎ@$à@lf@ CK?â[?ÞÒ*?×u`@@O¤­@ ýò?Ÿ*X?|TB?DýA?«4Õ?Þ‡n?ùëÅ@´Þ?†ÓŸ>Úvw?vè?§ÍÑ?»„ ?Ãå?"Ž>7ç=3R ;£äV?•Uæ?Çœ¶?Ïg¥?Õ[£?½ý ?µ B@Œ˜@  $@ÁÜ@ÓÃ?@ãŸ?ËÄ?Ï&?âÙ?Š7„?¶Œ?¾sã?‚ >Ã#â>•o1?íij?õJ7@ý@=_>ç:)>ñ;¼?}Ú?41?q3?…Œ@?ºÏ’?º +ÿ?ξ?À_>¿vŸ?Š£?í ?ê?ÄHp?ÓŽ?ã<Å?Ö ý?–„ž?£ Œ@Ý?þ +?ç~Ô?φd?€ÿ¢?Ž[P?ÁjQ?™å=‹:”>…~›?´?ƒŽã?‘m?TÖ?l8?‡np?Á /?«]?X“•?l0{?™è?’f?y· ?×?†ÔÂ?"ñ?Q Ù?›´@ œ@)Ç?·Š±?‚0Y> ‚É>öð?¹³?¾3„?À.û‘?p’@ïU@¢?f?†vÁ?‹êŽ?Žß?}çñ?˜B@3IY@5ïA@-ü?ýˆC?ºÿç?½¬?¾ ”?ÂØ/@Fý@Ì]?™ÎÓ?ŸR^>þÂH>üæ&?¯‡û?©g??{¬ñ?‚!F?~L?||‚?¤) ?«!@ (Ù@ë?µx?˜"L?èŠ?ûë?ÆUd?²¿˜?@/¢?ªô?û¾?¼ž?Ø}Å?ê$?’¡d?AÈ?®>ù?å‹Û?æŒò?äÔs@YÞ@+dÓ@2:?›\?‹ô0? 5?E.Á?P‹?>Ó?„å?`Åð>À^³?˜Ï@EK@E=ü@2@O@àA?·e´?·£æ?Ò»?Ú¥@]F@zÄ@5‹þ@6Ý€@4 ³@9#¢? \B?ø¼@ +æþ@ss?g»?E ö?lÄ?_»@V7@j'@(XŒ@4|L?ݺŒ?„?ØÑ…@¥à?¢Tâ>o¿?—ˆg@N‚@ µÌ?å>ó?íŒ@ +ç@À»@"k@ +³o?v0å?~5s?”­V?˜‘“?õËÞ?õÄ?ª~ ?œ}M@)q.@5¿£@ä)?ëö?Èè?ý¥@iº@kÜ?­‡ò?b¸z?r ?i±{?hQÈ?tt?‘Qp?¶êM?Ðò3@Y¡?úâ?ö#±?ë/‡?7÷?&ºG?5A=?CÏ ?ÌÊ*?áv@zÚ@.À? ¿Ó?JwH?$'?ªÕþ@RA·@ž×a@:¸?“í?lÏ?µ B?«Ìö?¢ÕE?Äv=?ûÌU?ê«¡?0Q?(M|?là¹?p]h?¡Z½?š%p?*NÅ>óÞ+?‡Ç1?³¿Ð?ÆΨ?Òòˆ?²qU?µ†?´Nz@WE?÷M&?L=?¢Ï?ÓÌ?Úï˜?'uÙ>û„·?õýŠ@Õ?lB?`…?q“z?œ$ô?«·Ÿ?ÐÍ€?Ùáï?×ö×?¿k»=ʈÌ=ŽçÕ?¬ð/?°P¹?×ÝÛ?Ή?ùý@¦g?èoñ?Óf}?µ+O?–B—?¼ûû@ +¬@ið‹(? "C@sÖ@#W®?Ç'?hhÔ?œ'É?ÔÀµ?ÅÔ‚?€¡?qï?Þ3>ì¡Å?´î:?Ó’Å?¼Rû?Ÿ®ú?¼®;?ä{§?ÉPÑ?˜#¡?žF?@~5?5ì×?ç’G?åè5?»Í«?¿wÊ?Z*e?ï³@äá@iœ@|¯>§€z?eq?ý‹è?ôÍ@_+S@`àö@["ƒ@U«ä@è‡?úÄ@{à?út?ÕëŽ?¾I?Ôu@L/@Z{k?£xÇ?xÌM?—‡?œå×?ºv¥?Ôrn?ÐìÛ?ïÖã?÷‘S?äTÐ?äA–?î0Å?âJ’@«)@ `þ@%,À@(lŒ@'gµ@@þâ@Nx|@*Ïd@*Á0@lº@}íí@1^œ@ +Å@*y¬@PL²@Gù@*’$@!™Ÿ?ƒOÕ?|,&@ +t@*‡ñ?›ý0?:¡¡?Ë‘ô@±?ë/à?Ž@?¦Ì!@>6*@@ï?TÈ8>ïø?ª‚?Ó×@ÛÑ@!Bm@´œ?cĽ?g‰H?ŠÿG?–Ó?²/æ?¬—_?‡´m?y*$?Z-í?I!S?—‚œ?í¥%@”ì@E% +@S@˜Ù@ AT?Çfª?º¾X@ @f@)é…@ ‡?Ó•I?ó:E@6c“@2Ã’?qCK?„¨™?0R7?&Û?–¬÷?µS¾?ÙÈ¡?èR»?âÏú?æ< @)-@„h?ö D?™( +?£n=@ Ž@‡Ù@Ï@$;?•:B?xWä?2œ> “]>Û»Þ>Ú€?WžÝ?¤O4?m?{U^?¤¾!?ïÐŽ?¿ä6?'Ù??˜­?Tûã?5©? NÍ?–·?¶£‡?®Jb?Î9?- g?wy?Y²->ö²q>÷d>ëõ½?Â/?±,„?©ñl?I÷?Ìê>\p >¯+?5e£?}¶›? <á>Û}…>›PÙ>¢ùÆ??ˆ¤¦?‚>Š?skS‚2?›t%@ ˆl?õ…Ç?¾»ä=@‚?£~8?®Š?¹¿Õ?1>ƒH= ²‹oØ>N2Ê>XÀ~>cf¤?6g??x×5?2$?@ß?4«ä?[G?Gqù?%…>÷Í>¨c>èah?Hl?6£ž?tJb?J‘ˆ>Ê{E? Å?‰£+?–í«?ëA;?Ùå–>ípV>ó<†>õÆT>úéÀ?vo?+?z¸ç?‚,£?ÒHJ?Öi?¨6B?l—?!÷¶>õþˆ?Éž?"Y,>ÛÈ>›>õ?‰Ä›?ž®?ˆlF?öÄ0?%é ?Wß¼? †>§bL>Åø8>÷á>æY¹>Ámú?õ0?…Ýf?q’F>÷w¶?—É?²i¿?²5Ã?w¯“?xJž?´è—?±Íˆ?piw?i"Ý?£o´?¤u¸?‹#ê?ŠCï>O‡R>h³¶>¨EÙ?‡½?­1=?HXP>ø‘~? ÙF?;'X?>ªÏ?B-S>ñMÕ>>ž? ?’?ž ^?©üW?hÂ>U$>Œä=œ¬³?„q?æ¤C?Û”©?³ +‡?ªßÃ?wgÔ?Hµ¼=Äè>}á?yÔÔ?x2?cHu?Z9>úU>öÇo>“Ùp>£PÄ>û9Ú>úL¦?Ë}? u?­”|?»àÏ?(Î? jû?…A2?›5n>ÜÉþ>!“}>·&ˆ>Æ>†E¨>LÍN?Éf?VÓ‡?´ÿ´?åÏ'?®‡i?€õ?Ãk@?õ¯š?dé½>ÙuB?UÞê?Ýô>ÆÙl?gàñ?ÈÜ?„±>¦£Ÿ>°f|>™¤ò>?Ý×>îŽS?»âÆ?¯Âe?™N‚?Žp?[=d??u;>üÌç?Ï]?œ=?0r?ŠB?…:?mXO?Vð¸=Â’­>®R?üL?èÖ:>ý„?Tò?ü±M?þ2ñ?À•?¾¼_?ºE?Ã+/? M?Gd=NÝÍ?Aky?KfÌ?„Ä>þïˆ>ªaí>…Ô:?ƒ '?Ž{?oÓ?r,¥?~M?jÖ?³z¿?ºÿ²?é!?îoq?ˆà8?fžý?à&Á?í]?§^Ø?–î‰@Aé@V”é?Ç¥E?Ž/³?žÉY?žÖO?  ?¤Ä5?eýC?Q\M? +)?_¶?Ís?ñ1ö?ÑËç?ÒQs?Í’?bs5?©¦¨?¹–î@H)T@_y²?êXš?¼V?ͱ>ߘ±?ÅÑÐ?Üû?¦DÀ?¡øè?¦\?ª4?G¾?2>=@ù¾@ ã?ò7?àˆ¸?0Ì?ŠëÚ? h?0]?µe«?Ç]È?Ã^A?ÁðÕ?ñÁÇ?÷í?@y?ˆò5?ËÞ?ÉÚ?€úz?‚›Õ@ î@°5?ŽÆ?“?˜ÿ?žò?£ä?¼?74I?Uµ @Ûï@ƒ£?¸9š?ËcÞ@œ@cê?¥FÓ?¬j?Âد?²[µ?W=¼?uÿ?µªL? R6?i¿º?Öw?”ë?ySþ?ÃÌ?6¶?‚öó?®ÓX?ýeº?»"?/œL?,(®?›‹?=Ín?dÖŸ? +„>±é?T&©?ÃqA?›dQ?sFñ?¼Ù?¢¾-?ÅýÐ?Ø[ +?‚×?"½'?-ì`?+-å?ŠÂQ?¢ç+>ôë?µˆo?ý’?¥Y’?†C®@ LL@"%>òn=ßH?TO?sN½?¡‚Þ>û£Æ?¬2’?¦ &?¢õS?’w >ö|z>ðI?#c?Y «?¼Sß?‚åÌ<¥»?TÙ?Í—ä?¡‹¨?8¶g?iÂ?÷×?ƒËT?btD?0û!?»#?Š ž?ÐÇá?œ¨€?Rub?‰\N?¥C‹?ÝøÀ?ù¬?ôÔäw>6?dŸ?‡·?ìk@ñ6?ÏAá?Ë|¸?Êj}?Ì J@d@†?*W?&³?°þ?°Þ?Ö¥Ë?ÈÁZ?9ÓV?nïµ@"Œ/@G?‘f,?Œè—?"åk?j•?ðß?ÁË—>| ? +Ÿ?¸Zø?ÐÀ4@q?ÜfÞ?‡wv?(*l>„tS?6?e?wdD?£P?Ìk¥?õI‰?ó‰?ðÄŠ@;‡@.û­â·>Z3?us,?î?äH}?ù¶@²Â@Ñž?*¬?Èp?. W?@‘r?ºq?¹ö÷?Ú©e?Ùô•?—ù:?”{?Â@?Â$’?Ô £?ÕŸÜ=âS=ÞÅI?°?•Ë?^Ç? Ó?ˆ”«?–ëò?öÅ?ÝæG?Nƒ>þ7x?¹ç??¨p?Ú?Ì­ô?¿6?Ãü¦?ÈÁ|?Èm[?ºoÛ?Æ5Y?ãNí?ÖÞˆ?€úÎ?ÂG?Ág‚?³c`?…Oc?²{ƒ@ ›@ ÕÏ?»·–?Öú@U‘?Øôï>·öV?H@¥?Ø®˜?°6›?3Û?<Ó¾?D’Ô?Rö?t}R?JäØ?lÕ?€æ@¬@—j@Ý®@ Ëõ?š‡Î?pSø>ñÅs?&V? =?¾8@ Y@²W?ôNK?ö9‡?ÿòÒ?ùÕ?éÁþ?ò ò@ÔÔ@ ´Ê@ƒi@þ?óèz@ ‰@4}t@?¿n¾?¦Ív?=D?pm?Î ,?¥S,?5 ?‘? +Øõ?/?…0?iN1?þˆ ?÷4Í?Ðy?âòÖ@1 ¢@s¸?<“Â?7 :?1ƒÖ?1È=?Vhô?S²°?C{?G¹@‘.@ ?}~Y?}Ø?%_?„™[?–ÖŸ? (?°E?¯¥@ Nz@'”@!È@H@š?ð‹°?Ï?Å¥Ç?ƒ<?|Tó@7”k@JW¶@'w¸@)ßæ@¼Ž?û5`?ùÌk?ö™ ?‘äs?ew¾?A§y?A¨ +?à-Í@)µ?Û¬_?Áo±?Ï?ÑA?п?Ò+?dq +>»yy?¤'I@ "â?ò2?à É? s^?u¨`?×Ð@*¬ç?ùnÐ?\³2?¯ q@y@#3@7 k@+*„?ùp~?ôt¯?â„C?ë$Š@Ƽ@—ê@–ë@ù?Å°ô?½ +v@^á@@a}@7R?Õ¿¸?ÀÎ@0ú€@9pw@GŸ@@€?÷¥ò?ݬÿ?ß:P?¼è—?¤LÏ@QŒ@RU,@?¾?ÁÚ^?Â.±@í´@8Ä@¬µ?Õ¢è?âo?Û€?Í°™?¸{C?¿ž @3@ÿ™@2tª@4Ö?Ê›†?º:K?&¬??‚d?Ì”ÿ?èe¡@Ew@-ÀJ?Óš¹?‚4?ŒkU?›ÎÒ?Ä^®?ß8Ì?¹¶õ?œÍ@?åg @C·®@:+C?ób8?ÚD>ó=>üÅa?T'?L«r?(&ÿ?.EÍ?ÞhŠ?ërA?EÏa>òD«@ý£@5…µ@#Õ@©?Ö›?lr?Œe¿?µê?’ðÇ>ñ?Æ™?¡xO?¹Õƒ@ Ó%@7S?¡½o?—eà@$ï)@4Ò?Á™›?t¶?ä‚,@¯ã?·TÖ?QLó?iÂ?o!*?¯ +?Óœò?É+R?D¤?LŠ9?TnË?\^ ?»Ó?µ´ ?¶—³?¿=Ï?Éñ”?Áð½?Ÿé·—?‹†Ý?þW?Ü¥ß?£ò§?©D±?²ñá?«Åv@ÊÓ@?zÇ?Ý?ŠVc?®!o?–‹S?gñø?‹®P?Ü©?às]?äé¡?çcJ?.¨L?ï_?œ5¢?­¦@ „Ç@Hõ/@%Ÿ_?šôŠ?ºÃ@79|@2wÿ?¯Ê?¹r@8ð„@O±?ú“b?³#?ñ3·@0¥q@,˜«@yš?÷(ú?ˆB?s+L@@Ö1?æ=~?ÔÜ×?Ãl?¿=¹?´[?€Y?”mX?ûÔW?ñÐa@W½l@`9’?Æ~Æ?hè¢?Зž@ÕØ@ Žâ?ܶ?ã\@9Ø@4lY@ ë7@rm@!Øä@%â‚@ šñ?ù¿ˆ@¾h@Ý@âb?ª†S?ª…4@zQ@(?´Ñô?R¦?ÚÚH@*‡@ù0?-ŽU?iø@2¡i@/ù?ÆÔ§?«£ö?Ðݘ?ãk?ë©?øN?íJü?¾-?§Ã±?H÷£?'·R?ÿñn@ ]”?ža?d<á?&ÇS>äjƒ?0>õ?”ã?¤©ö?Í+|?¼Ú@MA@D•?›òH?‚ß4?çÇÃ@›‚@µ$@Ïí?æ„ã?M؈?ˆg4@ +á@/ ?Ÿ‘˜?—gV?ñ8?êIq?í–?óÖ˜?¯]{?jBí?—Á™?Ñ7A?è\â?ôŒ?àK?§ý?»Æ?¢I?«6=¯ö=ú} ?¸OÂ?Ôý‚?‘81?m`g?Z â?TÞK?á½'@2†ü@ U?ï¹%?ÅU ?= ·?u85?ߺ±?¿¸?SUr?|Vä?¶‘?¸jè?¾Rw?¦LÀ?@‘d?i´?êˆ? )@9[Ò@= ÝÎ?*[?H‹w?ÆB?¶ãž?V7ý?A¾ø?¶.£?¼ÝK?¹Ž?£úÔ>ÿ´?/K?ÈË ?Ìã:?µ±?¾KŒ?À»?›ž…?“{í?l }?Þ>Êú>Âís> +¦<{#?jÃ?k8'>¸å'>˜:>n‡Þ>+ø÷=ч¤<½Æc=›€?ù+?1†µ? êÝ? {©? ? ª_?C)?ï_?4”;bÞ:ÒX?™kS?c»É>ùh…=Þi>>àÆ ? :ç?›w>ž¶ð>™Û??Ü?@ÿ³>¢ÒÍ>…ŠM>íÎ>ö—‡>ì>è>á݃=é Ç>‚0>·±·?2A?s±8?|> “>Èô¹?8¼D?JÀ?\!9?'

^Ëò?*@Ÿ?ç°“?Ðbø?| ª?L`k<‘u‹>çU?s$?fáj>õC£>ûi"?u???uä?x?‘¯N?â„?çPý>´½#> È?âÆb@ ?ÆwŽ?¯8Ž?ª©m?°¯3?ûI?voú?-7A>ö ?aÄ?.>±?†T?¹…?u}Y>˜÷Ÿ>³Uõ>÷ ¤>¸8Å=ËTò>å B?¯öÔ?”­2>Þ{>èƒö>÷yé? ?wr¨?wÕÝ?}°µ?|×þ?“ö? òç?!è9?)|K?tšá?xé???/Ž:>£}>¢ô?§÷X?Æd??0w>øw«?V€?uMº>ûT>pº>Ñì0>øÉÄ?ê€?$2á?`2?Œâ-?l¹ˆ?E‰ ?+€„>ù0w?¤? Ë>Èn=¢>’Š"?y‚??v¸ñ?gÒª?ek??y·?i³?3 ?JÔ>ùé€?¸ø?®}3?§~3?¶Ž¢?°¹3?yV¿?zI2?4š?> >”jÄ>Z=Ï>K¡\><øn?]¿±?uÚ?¬ÔD?¼$/?ˆ™?aÎ>ŸŠ8=Ž=`°Ü=%:¬? ‡?øh~?û9—?ûj +?‹b{>äL?;ÑÞ?{¦Š?ÊK=ÖJº?&ä©? I1?‚&?('Ø?3‘þ?J™;?2Y–? øã?„¤Ã?üZô?Ó¢ò?‡…'?›ù?½p1? 5 ‰>žþ?•¯‹?˜ c?}ÍO?|‰Ó?W…Ø?Vf!?­:?¯ð?k.ÿ?rüþ¸|>èúð>Öq*>I…>7< ?Žåë?™?L +X?;Àa?Ÿ-ƒ?¨ìŠ@‹@ÇÀ>ªþn=Ó t?n›*?†á?ïc|?úÚ>Ï>‰;T?¤¶?³??€l÷?‚S?‘Ú¢?”v¨?Á}+?Ü:¿?{t¬?c«Œµ~>i€)>9û>úm?ñ@ Ó@! Â?N’Ç?(B@j +@,~@@i@Ê”@ +Yî@b©?¿?€ç?’ãÓ?`!?mG2?sG•?Ôýw?âé¹?°Îl?·_ã?uH‘?`‰?^?5ï?‰M?’›–?´[?¶b?ÁÿÆ?˜€@¤@Ù? +â˜?¦Ô@Æï?øxF=Õ–>.³{?ª?/‹?³˜ +?«ó}?¨‹?“  @³T?é#?7ê?€ a@`ë@à(?½,?Ç,?õàÌ?ÚÅ?—òV?¹(>@dµ?ÝðG?«?…á@s?î4?à ?à ?ý?ªÕZ?ˆ»Ù?çÇa@0¨þ?ÝXÆ?.q? ?!’?1^ +?5<ö?qsc?š8L?ªâ&?°Yß?’ïl?‚RW?Ó˜ü@&?E—Ù?L[ ?–ë§?¼H·?ÓÂ? n>CdQ?Š/ù?³—^?Ž¸?ÇŸÒ?Å’ ?Äìå@Gq@±ž?ÉG?» p?z?k>d?xiè?…ÍÙ?–S?–3î?j2?„ ™?Ãë¡?»Z‡?B;(?]Q¤?Ãñ8?®úG>ÈÛ†?“%?Û€ÿ?½FP?¨ë?prm@¡=@Sg?Ôƒé? èT>õDï?.1?¼½?!c^=Ü„D?‰¨Å@®µ?£â´>QXl??â¶Û?féY>,¸ý>”Rß>ÎÙ'?‹”:?Ä +*?¯««?¡¢`?èm +@®f@l‘@&T?Ú?­è\?_âÈ?9Þ¤?ƒÃŠ?Œ$Ü?®]¡?¹—š?‡Šb?Î?÷ž/@Ò?œ?Š‡s@ßR@½å=ì2–>Y ?Mžè?fÝ?Úö)?ÙÝ?²²¯?³µ?㜔?É…f>è„A>«.>Xn?› ¤?’ì#?e{?y{#?ín?­×}?öª/?ü›@@Ò¨?ý#Y?Ü»¹?¶Ö~?ƒÂ‹?à)?5Ƥ?]œú?î_¹@/º‘@;ä@OË?ÕJ?žÐ·?Oã’?._>ö +>ÛþÖ?ºäA@ ?|Ç>Ýž?º@±?ö/K?‹Õ?:n>•Fÿ=é¹>Úæ)?ß}@†'@:à?Ϫ?§ô ?†¢)Õ>ù¡?e?_*Î`?32b?“4Q?½‘@£Z?üç?ŽoÕ?ËQ@&v{@ S9?À«/?Ám‘?¸7ˆ?ëk@:±€@ o?Iß?‰ýÝ@X?ÍÀ=kÕ4?½?¾·à?­?(?“Ñ*?ª#õ?˾Y?ÞX¤?ÿæÿ?ÿØõ?ÿÊõ?Þʈ?›,?°Ò8?á>±?ú°Ú@‘½@Aè@+;C@¨ñ? Ap?¸_?êŒ>@üÂ@5ZŒ@!¡”?¾Wj?‰¼?=7íZ=†ìæ=±ýã>Aߎ?+B?^üÍ?ê¡?õhS@bî?ùÆè?~Ž?i~‚?0á?4¿?tìB?w¹ð?©9À?¢Q~?¡ ?”"¯?´§?‘tq@‚»@Ð?µº×?¹`~@[@”R@VÄ@y1–?ï×ÿ?õ¡@;ï˜@?‰Y?¾D ?Å §?ªÏà?¡ë?åòO?ð G?:Ú>•û¡?§¾’?½ž;?ðæ?û·ý?—Ø?{ +?½ß>ûfT?¸X?ꔨ?«x“?•à?ÈH?æ‰U?õï3?úÏ?œÎç?&Å?íw?#^K?ÂÆ=@Áò?¤ü== ;p?=…˜?Õ€F?¤^š?›?‚ +ç?å\y?à/ ?ΖE?×÷A?ÜŽ{?×Åß?ºî ?Ì&@“@¹š@ Ø`@óy@8ÔÁ@7å…?ç@?+˜—@æ@/?*êÊ?²g?è J@ ýã?Ï/Ý?¹Ó ?ç‡?÷˜w?8F™>þÁ?¬®?8þe?°'Ë?÷ Ú?wõ¬=…&?gH?„Ó™?Òn@*H…@Nã?¡ºª?ÂA@ÐL@Oý@ƒH?ú„Ä@›@ v @uÛ@hM@„©@¬?3~>õ¯@f#@*®f?å%Ã?ÊG)?©få?•CL?ºDÐ?ÊÙ_?ý;@$+í?ãá>óÒB? D? ?S?Vð?Šók@nË:@W‹?¦7r?¢yÀ?¬mÛ?¡Ÿ?Îe~?à^?ey)? Q?ôs{@$‘ª@8@9@%X,@.ÏN@ ®!?´ø0?Åø?äº?¿“¥?<ù?h¤-@HÆI@Nv?ô„Î?ðJ¨@¥\@"¨@CœÉ@P:Š@¸d?÷\Ç?Ç>,?”=Ù?h4²?&™¡?.v?6M?R<—?ŒÃ?sðÐ?°†?“é@¶@0Û†?pô˜?°?ÜB&@ ÏV?§åe?% ~?‹¹?ÉNo?¯Ñ!?‰½Å?K@\T@ Û>÷ >ïÿ±?q¤?ˆ;?¿St?ÈÔí?ô½ø@dD?û¤Ä@ ½I@ -p?ï× ?×ø?°a?°à?é½?å«Ò?.9>?;"?›)°?·Î?˜ëÙ?cnþ?¶ 7@*@°±?’Ž ?‘<5@WÒ@,¥?ÊÊÞ?Ð4œ?j‡_?“í@lI@<0@w,?‡¾w?¡ÛÓ?íÚ‹?К'?­žn?¯Í@Š*@yw@&~õ@+~ª@Ý@nƒ?í;»?®T‹?ïœ+@jÿÂ@hb?èQO?âdr@8Îø@I¥@û?ÛU)?Ùv(?åqâ?ù 9@Mj@/°@ 0.@ Îö?îf´?ì2?Éò‡?¼ž%?‰—¤?(Þ?V$:?ŠÄ‹?•é@+2G@+&•@C–@I&?ä?¨…?£Ýk?Â?éË@+D@Œ@OrG@W/?ÜôÁ?¬ù?ºsà?Êÿ@FÌ@ÃT@ z:?ãcU?Ý•Ò?ªˆ?ªÑ?‚£¸?h„´?™š? rû?ÐD@PÑ?Ü‘ý?$«µ?O +2@0É¥@8ç³@ $s@ +‘?Gð;>®6ˆ?zý?À‰2?àfí@Oâ@.P?¯¨z?Åð?Ëp?Ìë@ ¥Û@&'P?À¤û?2ø ?ƒˆ©?Æú?Àå'@œy@ã?æ ?ë<ò@  D@Ÿ@ý @f@a]@ú‚?Ø–=Ûç[>‡Q?ì~w?ò±Ë?‡¤¹?‹nQ?õ`´@¦.?÷ïÌ?ð­?»E ?hÓÆ?o¯N?©Ã?›ã?âXÇ?牶?¡ +?ÀÒ?·–$?²:\? æÖ>Åí?žg?_Üb?¢eP?¦{‡?y?8•S?ÈÝ@2Ûm?ëq >ÜXÉ?5žµ?p†w?’|Ì?ó§?ÛF=Àr>|<?ímS?Ý?Œ?qŒ?†xã<È +7?ˆÂu?0 ;—s­9]A>ø׌>úB*?^Kr?Œºú?¨J?®.Ó?ƒö?»M?†‚‡?‰Ú?RcŽ?ZÌù?šÔ'?Ä£?Li?–še?Ã#5?nõ•>P?"?Bô`>÷¼º>{v>óRî?k)?E? û>:6ð>™ê÷? ó?‹%? Z>o9O=©j\>*¬‡>qEô>³d? òÐ?+X‰?*a>;ο=µ°;©ø?”ï?l@c>³–u=–AM?D5R?ß`?†¶7?E-[??Ü–?+g?-Å®?~¸³?xåè?pݶ?räA?B`x?=š>&š'? ?HUÝ?K:?MÖ¤?hŽ>óè? “6?•U>ðv>ôGÓ?K.À?Ÿ)o?–“³?*?‘ñ?º ?¸?·—ú?©z«?uc?P(n=!¨>?Êt?°g?©Vb?¯?²s?Ln¨?W‡£=…N?Œ\?© š?VŽ?D”Z?“Ü>Ý>8>é¦>öF?&ód?2¹ô?Z³7?v¢=B +?¿œ>ü‰h>ù'Œ?JM©@Nÿ@hÝ>÷¼<>÷Åõ>÷Ø >÷ä?º‹?ªV?¥ôX?§[u?“Œ*?î˜?„1"?Š£t?Ri>øe–?œþRƒ@>Ŧ†>ø·t?.çA?Qþå?˜ó?º±Ã?/¿˜>pòµ>ù(?p&?À\?£n²?u8?½ŽŽ@ +@a´?ïíè?ÀŽ$? ™0?R3C?ÕШ?­d²=ùGÀ>nPg?pï?Š?úg?ñgu?2$?:xÔ?‚Fë?u6?°’?ª¦ú?g]ƒ?Z¼?ÖÈr?æ÷{?£È.?œÕ?!Í>úæ‚?Á?Òl?mº?LÇ?XDI?x¼)?)·&? n/?ï>ûx^?ÈiŒ@G?•é>Å€*?3I{?{ÓØ?O:/?()c?¦(?ÊH,?¥Ø1?|*}?²¨!?üL.?Ôé€?§?’°%?¦gN?Œ&à?/Úm?M6?|Å ?ˆp¡?¦ˆ?ÈE»@†Ž@Ž@NV@†1?üO?î`,?ºRø?šg<¢‰¼>7s=>ž?}Á?iŸÙ>™á>È׎?}ý¸?€” ?ˆˆr?„«å?€Ð¦?{Šæ?›ìm?™“ ?b ë?XÛX>þ¢?ø ?ßëI?Ý7?\j>þð@"3@)”?ïr?ñò@€ð@„Í?±l?ˆæ^>ü¬i>Ý^Ï?ƒ®¸?ŒZ?üÎÎ?ýÛ§??M…?(Úá>¸Áˆ>žWö<Ö­?È9l?à›8?^ôŸ?Hû?7MÉ?/»÷?OàŸ?Y"?᳃?ðþ*?¬× ?© ?­~?±&Ã?€vd?yƒT?€b&?Õ?·cç?¸i¼?M‰?SÖ›>½ >Åcø?jZ?ÝÄ@-h_@.¸?È?Ž?Ái¥?V H?I\?=ò?BW>Ôä>_ö›?¤ã?©‰­?¡?› >{¨>Œð›?ªÌB?¥]0?ÁùB?¸ñú=·£>BŒŠ@j”?ñŸÕ?có?W>èÇq?'˜å@ ­@ªŽ?ô{Y?÷–C@Ý„?ýž?Ùh¥?ÕT1?²Œö?¶×²?á¶Ð?Ô†¤?ªd¨ Â>ð9¡@Ë“?÷¥?EéÝ?Aà†?W!?GL?µ"?¦­¦?‚£ª?…b²?„©I?†‹,?›ä—?Ön0@+¸N?çʧ>H9®>éòÔ?‚1Û?Ø’??âx?Õe’?\Ü)?)oã?¥ *?—™]?ƒ´?®÷¢?Æ/ù?ÀÏd?Ä¿@&\@ 0€?ª ?gí?ÎÍ?îÇU@,_@@'¤?Þm!?¶O?¸*^?ºRS?/ôÐ? KÄ?úâ?®?€ÿ?‰€ @cD@7Ï?ÍÈÊ?̤Ç?L©?>`î?Ž$?/û8@ 8=@ ®&@6@Û??¢1?ª?‚€•?a¨ã>Æ‘4>ùÌ?T.Û?Kb?B—?ka?¬^S?ŸéÌ?‚eÇ?™ñj?ÀÁ™?à +?ÅI¡?Å|í?À?ñ}@ œ@?ÃB?fd?Ÿè­?Ði +?ØûW?ÛW%?ÕN5?Ëoç?žw}?V?€]f?‚"W?É?í“?Ð4¾?à C?Îó@?Ñ$#?ÿô)@Ƈ?ÒéÔ?Â÷à?Œ‡ˆ?AY?ˆäŠ?’õß?2xŒ?%>>?Û(Ò?èÖa?§«f?¥Ö?7z?/€?ã?è>A?²ç·?¤ø÷?Ùé?ÌÖÌ?¢Q?Ùý?—¶Ì?«e;@bºP@]Ù¢@$WW@,šè@LÅ1@D?m´?‰íc?Âá?Éž—?ô·?ÖA–?Ê›?dߦ@Áæ@gÊ@ä@  +?›7?«qØ?à…?Í¢?‡Ó‰?¨ô?VJ?²åà@$¬Z@ œ?³¶?ì‚Ü@E40@%ø•?‰ô¤?˜®÷?Â[³?!ñ? g?ç>ØWÄ?ð@š?ß?IªZ?_dï?e.?ÖôÌ@MÊ–@%£”?£1?ß $@(ˆ@ Y{?­‚?™‘ ?S¸?b0ˆ?‰ì?‚„ù?xæA?}¾W?‹(?‚lÑ?€â?–`/?¿üÔ?øEI@/T@ª?Õç“?Ç^2?¤wÆ?­'?¾‘Ë?´ŸA?±§?´Ö˜?©\l?Š 5?²z?1¬þ?j’?k·à?kL9?²@`Â@ ”þ?­°l?–ÄÌ?QíÇ?z5²?¼2¥?Ÿr¯?WY?añM?lËô?jA?@ÇÃ?UÉ9?{L¶?}9ü?Ãî?Þ•Ù@Ž¶@!ÂX@5¯œ@,€?Àõå?°Í?¦?=œÑ?½ß?¿x ?Ù‹.?Ý…›?Û¯]?õpp@²Z@¡s?ºå?Æ^W>â¯c>¼r@(0@Û?ì# ?àéà@4ú@<þ¦@h"?ü$?Gk?¾ª?lQ¾?{†¿?˜ùܾ?7É~?’×?9%?y‹“?–0K?ט€?ߎ8?ý§ù?òÊ?é!Ì?Üõ?eÑ®?ƒ¶Ÿ@- +@æ?rˆÑ?l$@2¥@3Üó?›?€Ÿ™@•¶@ͦ@¨¶?õO#@@8 @LÒ?Ø V?Þ¸?°D?Ùši?êTÃ?óÕ•?ÕÔâ?¯´?ÝJ¥@ ]\@h¾@ +ã?òE{?X¶°?'ˆ?¶P0?Ù\>@ú@“½?ƒ¨Ñ?”‘º@%@Ôr?ô?zv›?¬w„?ªý?÷®@ÑK?÷?#<#?…ü¶?›Å@ +`±@3 c?àè ?Mˆf?-¨5>óÉ?QÛ?»w´?¨í?ov?…èV?íÃQ?ý{´?¶3¹?¶¦?ñÇx?òœÓ? g²?’Ôì?{…?r04?£šA?µtÉ?ìù¿@½6?Õn¨?ÀyK?ÖWÂ?åì³?ùj„@¤@ý"?š?¤È&@`<@MÅ?ºàú?Åhù?,¡D?ù ?œœŸ?·^«?—³Ö?ˆ»?-'µ>Ä??Z»?>”?}À?#^>ú +?UÌ,?]Ðp?Âú?§I?Ú³Þ?ê‚ø?ÇÖš?½)?½)¿?Ÿf?±w?ö²T?î–·?o÷¼?i?k2"?kïÐ?­OU?Ãf?Æ<?Ûgô?ë3?ߌ`@¬ü@>•¿@1ƒ$?¼Ñ?µŠV?êtZ?êY?Ù>°ê°?´†T?ßT?ÐñÊ?Éçþ?¶Bu?˜ní?®ä¬@µ‚@Tk?®ôâ?µCø@9j@ +~?Ài?™ W@€ô@\“p@$Í„?›+Ò?çh@g¾Ç@h3,?¬¾Ô?­|]@%)î@-V`?Ô?ºk[@iÝ@:@#Ö?€?´Ob@r–_@{­F@dí4@\uè@˜»@9€?íGA?Û«ù?ײq?ÍUé?à +}@Š?ó©—?°›Ñ?¬¨²@5Ɔ@;kl@ M@¬?¸ ?,X?Eg@ºÿ@i@!ê@&Ôi?»º{?¼®5?³ê¿?ªòá?ªêN?ªÞÒ?àWq@*ÊÙ@(h&@][@Æ“@Ÿ7â@¦b6@)ºÅ?×Q›?ИO?áô[@ ÷æ@!® @e'?¸ ô?²ÈÇ@ i@ UC?ÈÅ?ªtý@@%Õ§?öð“?3?Y½?ãSI?ã_]?¬ >üÌü?8e·?292?¥Á›?íìÏ?ÔÆ„?Â?Áù•>ŠÓ±>T¿@—¬@!Ô;?¥?’iú?‹Êì?dZ•?£‡Ý@OJ?óæ>¢Ð=Äzâ>üÎ? ¹@„D@5¬u@$j@Ú@ZÄ@Mø@Ž6?¦Çð?ªmN?´[°?º}¤?À}?´©Ð?¨¾ã?œÊ ?( >„Ü‘?Fè‹?¬$Î?¦6¥? 9?Ž®?a{i?Š´Ò@­D@”Ï?ë ?ë8@Ã@ö!??Ä^>Œ@?§#??íAÈ?ÝwV?Û—Ò?uMU=Üò?)C¡?…3ñ?€†Ã?—dX?‹©v?qYÊ?nÖï?iÈ6?T_¿>v)k>ôØé?I9?;c-?>î\u?Ć?½!å>ó5<>Øã>ø·}>øÅH´ù*?¯b?L¾?C¶?Rr?„>?„s ?;Y?Ã(=ÕbÐ?î#?/Ô?-„?—ß>üY=â¸=Ž\>È!y?“[@ #8?1t @–@á¢?q‘>{Ô×;wx•=ÃÀ8?}]Ç>ÀXÙ>ÒNÙ>òYz?j?µï?µ¯?; ?;#{?d3?_•>â!£>¶g±>áøg>ó… >óŸ¦>óµ4?Óo?Ór?À~^@'x?²*Y?FÓ>Æ¡=Zdq?(f?³_?ËC?ðçÄ? j¾›ù?u Ì?V—¦>ܤZ>å)?à_? ·N>õ{»>õ‰¿>õÇ>õ«È>®ûÏ>¨d?G «?I +w>­A^>%>Š \>ƒúÓ?…íÁ?•¶Ö?“m½?–‰?=b?qS?X°?v©¾?”Â?§Ž??—ò?Ž ?°?`›¬??n±? %?-«D?m g?¿š?¾-s?¨ÊT?ukÐ?wNƒ?ˆ£H?d4>÷£)? ²Å?aê"?^¡?[Yà?Tä?BEî?IM“??’µ¡?P‡?D?@¾ +?=^ò?•?)?&ªV>ø? x?)Ö?%£ú?"<\?ˆÀÅ?« Ä?-f4>@)>>­M³>ù?•›?ïv?Ÿ´õ>ù9,?1Ñ?‰?_¹-?¼g?=?hy?:ÛŽ>Å +ï>®è„>*%?R×?S·2?ƒÙ;?‹6€?†•?„‚?¹Û?ÀÚ+@*è@Àž?‹Ú?©V?ºž¿?»ï€?Ì>ú±¾?=ê?Ÿ?{ Å?…ã^?Ø©Ü?ñ‹ß?Sõ>û$R?™/O?·{‘@oç@¯’?ž¸?M`?Ðú,@×Å?°¶i?{¸¸?4ü‰>ûÙ +?F¥P?Š >?™­ ? @?«…®?¿Qê?Ïòq?á¨Æ?¯qˆ?N±f?C…—?®:?>„&?¡.?mmÊ?Y¸?DH—?•k‰?™Ù?¶&~?›:Î?¹c>×|à=µÄ>ûÈ"?ÞÙÆ?­% >vô2?®à? ¶û?0¹i?Kz¸?ϘÅ?ɨX?¾Œr?³7I?9Ä(?Vÿ?¾»Ý?¾ÅX?¾Ñ›?¿¦‚?¨<Ð?¡°ë@'@ rè?ž?;¶>MK=ê@(=ýa=ªMÌ?¿7Í?ÀÉ­?½'?ºòh?²,>ÿ~¡?±ï–?³;÷?uR?²õ?›Îö?—å?ã –?Þpd?k~è?Uö?3vD?Be?`)?+g?­£±?¯É~? Âû?I,?ìä?ïûÎ?-2?¦?9ã?/‹ï?Ú¹?ƒœ?s—û?€6?½õd?ÀòÈ=܉p=ƒº@!×@JÏ?k(Ø?a +??Øoô?æs?ÃY¡?Àê?6ÅÐ?9µ¸?a?£±?¸Ç¸?®<š?ë?â?Y+É?R´?/)?ˆÝ@±›@Ú&?Õ±ôU«>Òeœ?0ñ¸?Ðñ ?Ì«?¹¡?­û?\­?‹!}?ÝbÇ?á†8?äŒ?Ç©É?y-?ˆŽ›?¶Sˆ?·õ?­Ø?‰zœ?æ? CB?î>?~×?Ì[W?ÜvD?ùiD?Ĉ?MG? 0?ÃŒ?Wp>+Ȭ?„Áð?âo³?f÷Ø>v‡.?$/?wgó?M+?“ÿ?À ?ß/?áJ\?ã^_?nXí?aÃ?öOì@?a?Îÿ?®ÁŽ?5 ?a£?¯º?ÒÞ?¢Å?“o?·U?¿€N?ûñ4@V?\–?‹?uë?Š?‚g?„!H?áBy?Üñ™?Š‡?"¡?éïT?Ù#š?®„S?ºÁ©?Æ$·?»º~?“ð?‘½¢?¹í?¶á?—Ë0?½_<@LŸ@ Qø?ø9@¤´@OB@J6ï@=|!?àÏÉÿun?˜6j?ÏJó?âíÖ?çvÝ?øX­@íV?@L?•¸?Ãî®?ÃïN?Ãì&?›!y?°â?„+-?‚›(?Z;?ˆk?ŒLå?† o?‚“Á?ƒ’@Õ@*Ö?)»?0ôº?Ë?*T?`?pç“?Æø³?è`Ÿ@6(a@›*?AŠï?EåÝ?JD@?NŸk?S?Œ0?Ø5Ñ?ÐC?Ãœþ?š"ö?è?d ß?§¥?–:Ñ?ˆ2»? —O?Ãz[?ÃwN?Ão“?l¨A>Ñþü?}0?´kµ?x…%?) +¸?— M?ÃFû?»`V?ºÚw?•ç?‚·h?ƒ¶?‚t?Ó£ ?ñ®?¯ìR?©?º‡v?ËRH@xb@«°¦?:zò?µ¾M?É à?üØú?¼V? ]?Q@\X?ÙIÉ?“L¬?´K»?ò“}?åMS?ÉÜ?˜öÓ?B>«sµ<µð>ÏùZ?€ý?ƒ–I?‹­J?øÓã@We°@;$L@ Ãv@ï?äQ€@Ž@N1Á@?h$1?¨Ê¦@ + +M?àTé?g?uf ?Q+>?àR>öÅ>[c2?eô?•?“o?;:?~ƒT?•??ÏeC?¶‘Æ?R3Ü?L´Y?G1y?A® ?<$!?æ™@®@U>ýÃf?Sº@‹²@ ÐÁ?칩?òò¥?úQ?ü\Ú?õ%?ç‹ä?½ÑÅ?¸ú>?ŒyÒ?‰­ï>üÓÑ?3x@ÊI@ ã?߇P?ÐÖ}?˜Lw?•˜@@@Ò@- ¦@1?í@0@4¯@¬ù@Ñ\?Émt?±tÆ?²Á?±œ?Z0?CŠ7?Of›?[EÍ?¡\t?¸L‹@çÿ@ʃ?ŸÅ?'î@@ ù @MA@G+Ç@DaÝ@¹œ?÷K·@ >ý@è@ʼ@å@ú@ ?ð-?¥¶L?¢ˆK?ŸZº?·Bù?ùL@ ³=@:ßÍ@(£ý?º½‡?¯JŒ?FFƒ?.†X?=°?  +?·ý?³É¹?Öþž?á8?’K?}s?ãC¬?ýÑw@ ­½@ §@WÔ@y+i@1Ðó@€ò?Ÿ»?!–?ìO?¼ F?ÙŒ,?óC?ÝÌE?Íqû@~@0Nˆ@Ä?®×>?’’+?8Ð…?pÚó?õÕ°?ìüÁ?™æ5?Ek?ëJŽ?@8”É@7J?’ã?Tÿ?F³?M¥?SýÞ?J²?ƒ•¹?–/ï@²v@.Ä«?âÛ?DÔº?6W ?'Ö@?€Áë?æÃ×@{@N­[@7õK?éP=?åp?áƺ?ÝïÙ?ª+Î?±?œŠ?œ²×?^q?Nø?¼Õ?Ó¢¤@F\@„Åœ@1L€?µæ?ÎO?ñ8?è²+?ÛïÜ?à¤x?ÕŒ?Ï]?Ç»Ù?ÖôÛ>ñÒ>ð0?c.U?oú´@²¬@rd?øçä?Ý#[?Å·Ï?«J?È7?šMö?Œ¶Ÿ?nÆ*?w[½?Š ?‰¯Ÿ?²¹-?²¤y@I@ñ*?À*?©…œ?æJª?ö @ è@ п@0d?£ÿ?¤úâ?¼ÿ‹?¿ ;@ +|A@ ‰È?µ«?®¶?ì ? r™?mÎë?‰D?„Ò??r‡;?»É¸@¢|@^E@Ú‰@ß.@¸ä@Ÿ?² l?¶FŒ?ðÆ?çžV@2>¢@EèÄ@ ûD?ÏâÂ?Ô&?Øy©?ЪÞ?®Ó!?®Áª?®§Z?®õ@(tk@.eˆ?¸‹—?Šdx@Üð@F™I@õ]?—JÌ?'?¾Õ½?°Ã?iaP?o‚ž?ÁH‡?Õ7Ç?»ãØ?£8Î?óŽ @#´@b¼@ Œ@ÿÂ@!¦i@»ø@3@Àú@”#@éé@ +ˆ&@ØÑ?Îi%?• q?Ħ@Ÿ@?ánØ?ä+¿@O–@Àd@6ò@©6?Òé?d€í? Œi@¾\@õ?Ü0o?á$?y0?obs?yRê?¤À?«,?Ê+?ÔM@§«@æÅ@5•L@0mÚ@®@;=?»Mø?Œ ?ÏUH?õàÝ@WV@6 @8¥z?û¥x?ñ&‡@ã@ ¯?í£9?ÖrÙ?¿ \?Ån«?¼Ä??L_G?S6M?×a›?ÜÐ8?°D?¤Í4@¥þ@S@'@>xç@ /¬?Fuº?@Ž?–¥>?¡Ï ?jè?%‚³?ˆP–?ŠQ¼?Œç?‡O?© ?d„d?7—@ ¬@ S³?^K??R×S?€ÁÃ?¡Æ?ç!°@;?ö¾?Ô/3?ŸÖ? ?.åâ?ÝË?ØÎ@Á²@J@ +d%@®@ÌU?ü0=?­Ð?pŒl?}&Ï?„ãœ?|Й?0º?)0{?9Â!?!ÉG?á¶ø?ê׺@ËÙ@ÎB?Ï#T?Ÿ/ç?½QÃ?Ø·?•?P£?hõ?^öM?ƒ€Ù?³¥ß?©h?–ÞÜ?¢ì?¨¶?„þø>è#?&96?ÍOM?ªñ?(Ë?:Y ?ˆ(â?——å?اç?íúË?´y_?¦Å£?˜Å¹?ŠªÓ>xW>C:ô>û/´>ûN>ô? H>ýÛm?YË?4B?](?½?À?©Y>.PE>6æA?˜Ÿ?Z!?Ç.?3?Ÿ¡>ë¢á>Ž½?–ˆ?Å•`?&ä?éè?!þ?òM?7’Û?m©-?¾ør?‚ƒ? çç?—â>XˆP>׸>ùh?ŒÁ£?8H>à¶ô<ÿ\';òôq?‚…S?Ñüm@ +Øz?"›Æ>«„^?3;Àÿ˜>¼(4>‹¿>˜E >òiF?Ø¿?µýŽ?¯$'>òÚX>òý?‚¤^?†Ž ? LÚ?Ö÷?Œé>ó×?RV6?[@g?j3ì?sçŠ?‚æ×?…4?à…È@ :”?™>ôns?6íÃ?nà,?7gz>óÖç?‰®_?î¾–?«¶Î?A>ÀfU=gz†>År­?£¿Z?«þ?ÎW +?»µ;?U¦q?Aè>m?>5Wl?&»¢?)j¦>QCb>SfÚ>_ƒE>k¬ö?‰z÷?¢—?ŠR ?„Êã>Íàå>7_é?;÷ü?v˜?v§‚?v¸6?,s>Ù\>À„->Í3¨?(b ?h??8¯>÷#q?µ#˜@6Ün@ ã‡?w\2?TC$?¡n?!’?gð?gnu?w«Ñ?YŠ>m H>¹ll?•ˆ¾?šP@çB@ +ƒÖ?xPa?x$Y?x1?x9¶?³Üy?µ‹¶?>øl¶?9ˆê?LÅ¿?P:»?S¸|?W6?Z¸]?›ò³?ª¬t?V’? ¨C?A¼¶?oÓ +?2#£>ô¶t?8/Ÿ?yAx?´2=1w>|™)?îþ?KL"?•41?eB>¸º?îö?yÈã?“á°?Ú¨C?Ç'¨?˜ u?–n?z§?~/’?¥wê?¦Œ>úW¢>ü/?‘â?•‡!?&%Þ?_º?YŠo?c½?«‘?³ñ ?ÙÂ?qíh? &>þ]R?¡•ò?¼e’?—©d?ܧ?/MÚ>ûoÑ?ÇãT@¶üeç?Z/?°¨4?³®°?®N=?G?|Ãä?±À@ *É?Ô$6>ýº?T·@†C?ÿY$?mÒþ?TK?,ùR?%úQ>Ï7š>ê›C?<’z?=”?%ƒ.?(K ?9 7?N—å?kdã?phø?CD$?Pw ?¾³c?·Ûi?:‰?³@ +¥Ù@ Ðî?¾úc?·d×?JcÏ?TÙ?l†(?waì?¹ÿR?¿j·@–~@fÃ@ó$@Å“>ÿcˆ>ÿx“?)™x?4×ø?£ +}?Ù´?H· ?S’À@ +¹3@ %M?æ›O?ã»_?ˆ¦Ë?}¼>‡jX>‘/?–³Ý?¡)×>³ÒÛ>±,6@—.@ìl?l?i.?ëj€?ñ›?(ñ?w"= U¢Éñ‚?¶@ ²ô@ ï?%?Ì?0[?ÁK?¼^è?êÑ?ðU?÷­?´+@4þ@ Å?Mìš?\kÒ?«š?©³`?+À?Éè?US>?qé@ ¦C@w~?öÌT?è‡?^Ù?möe>ù²e?b\?v;?‚©S?£è +|?Šaå?ÎVÍ?“l’?G,>?¤?Ê"f?§±U?™¿?¶­?ÃXå?Ãaô?Ãe{?§­Ð?‘çÒ@Å @*nŽ?Ž“?1>ÝE.>Á²†>ç"¡>ɳ´?Þ´ó?üZ±? -´?N ?Á­R?Ä@R?Ž +? ƒg?ñ Ë?èðQ?‚|ñ?ƒ?‘B?H?_y?˜¢Z@b@Aº.?ŒÖ?>IÝ?ã2Û?ìš?@‡?Û«?”‡?M ?Ãà´?Ãå%?Ãå?Ãäã?Ãç?®§]?‹GE?§US?ÌÐ?áV6@eú?â’?Ãñr?‚ù¶?m1?`ˆp?DM?‘eÃ?“„e>ßÆ:>uÍ>ËMç?à€ß@pÊ?áfL?¾Ám?šÄL?‡i¡?µ!?Ãë?AL?ŒaM?½pG?Ãä›?Êž?¾ !?ÿ…@”@D@!?Ãwh?ÀÏ=?É(:?ÙÞ@Gwú@>S‰@ Ï@ ‰>’©ß>¤ Ý>µw~?I/*@…Ö@ –?„æ?p•Ÿ?=]~?HÕ¾?f»c?—ïî?ð#u?ÎR’?’¸i?/¾?‚_?î;@I÷˜@,’‡@ÌK?§AX?Hä?N½?ˆ6Ì?= >ÛÅ?lÛ?=ˆ—?‡Œ#?œ¼}?³–?ÃCY?²Z/?¦ÿx?q ?BÖc?Œë™?ñ@g@è}?›¦?MN°>¼å›>dÃ?à„5@×3?˜ßà?ïC@,Ú¸@AšY?PrM? ðo?x­$?ÓÝ? +í£?ËB?}jê?ß@•J@ñ¢?5‚@?4±¥=hš°?ÅŒÜ?Ê]?Û4'?êzÏ@.p@“{?Õµ?Éy?Â3„?º¬†?ˆß?«ƒ‹@=þ@0’Ð?¿î?±p¤?tù\?™’å@ +oã?ípa?8?©ï_@é/@¨ ?Á±F?Ë ?ãw?Ïíû?¤†é?”z—?Qž$?Ñ›@h'ª@E‘µ?ÏËø?ÖØ?î’n?â‡u?Á0«?¬dO?ƒý?Êb@DÇ@<Œ?¶Ðh@2j@Qòü@ 4B?˜©?Žv?‹i±?¿L@€)?ªa»>iC?R©'?èš›?Ú`M?Àl‘?º$?²j?Ö@˜è?ôØ?Ïá?ÜÌ?úƒ­?ÅRç?€,?øc?ì;?ÕÇý@0¿B@¸«?ëé?Ø» ?¶U?ôtô@1¡`@¼?‹Pñ?¥äÔ?׃?¿[?²?µˆ@c@ 4 ?ðZ»?ÏÕ5?}¾Û?X?³B3?Žï;?¾ ?Œno@R +?ì(?~;È?žN+?ë Ú?Àù?@ÿ±?Š½¯@¯”?áH×>ý»Û?-"|?°T?¨îÑ?}{â?‰Ÿ‹?¾?ÑLT@Ø$@xò?½Ì?ÇÞÈ@íÊ?ÿ„?– Ê?•Ö&?ã3?çýL@M`y@Jª?ñ =?ëË?ûÍò?ü(Ï?ÃØÑ?Íy0?¾À’?¼î·?·ßè?¼Ð>~y> Væ?£?¼˜?zÆI?XÎ?R9?KõI?måÀ?{ê@ú“@<%+?îòª?§€N?¡`1?›B?Ž9É?†Ò?©Ÿ?Á*K?¼ù#?ÁíT?ý^Ø@5µ?ýAf?×A?ñ½‡@Ú&@)¶Ø?±Ý?6Ñ?—ƒ?ÕFÇ?ª??:©?m¦H?Äã:?½Jp?žË'?¦Ê‡?æ¤c?ïc@ b¹@ +ÿÔ?À»©?«Ï?Í›G?å¨ë?íÇ?õï1?÷¢;?þ%!?ýòc? `m?µ_@N’@H v?µ}?™ é?¾ª?Ã{®?Ê£0?ÎÒ­?ª +‚?”ò?Ò¶r@hX@ K>üÇ£?ôr@~/õ@q 1?‘È)?và?ÖÁS@(@(dä@.!Û?ü4Ž?Ÿ?¨¶½?µÏa?±G¦?®¢?®Š{?Êi÷?Ù>‘@´Þ?ÿO¨@*O{@Q’@5Uù@ˆ‡?þk@¿ú@5?债?ÜÞë?ܸ5?ؤ"?Ä?€ ?@ú\@1" +@%¤º@_Q@.:ï@‚tk@ŠðÛ@h@Íç?³Z??¤t“@J\@~ ?ê_?ˆgÇ?°Z¶@ +¾K?û?«Á?­7@dºï@knS@ Œý?Ôî?–ñ?/P?‡ú?äN?â ?Æñ?²[ïõ)>ãé*>ãë·?[¹ˆ?ƒïã?nŒ­?g;?§ãs?Õ?`?¨ÍB?d²r?h§(?¦ÔO?¡ N?¯"5?¢p?ðz@ +1@íV@W@Àë@á@‘‘?·|B?½c?a‚?Ž¾T@ ÈÓ@@3KŽ@C‹{@ãT?Ýh¼?‰l‹>±±?5ÖÞ?È­ê?³¥ü? /d?¦El?p™?rÍ?ç-é?úN¶?xg?[²‡?¡Ã?±ÙŸ?%iò=8-‹>å7?n£?2ÎÆ>㌧?§o?8úU?zÿZ?æ2…?Öq<'>_ÎY?Áû?¼¯°>ô0>ù¨t?&²?ƒT>ö85>öV=Î ,>‰{”>à?¥?q_u?T`q>û «>ôd®<…Ÿ5=1x=Ð}v>i"?FÖ¨?@Eø?R»^?XÙž?±‹†?†Ìä=ƒÃ>¡i>?ëó>û¢?7 ”?†:Ê?²ÛÇ?“Î?‰¦Œ?wW}?cI?@é¬?R5¼?c®}?FÝx>üÑñ>‰ŠÈ=ž†? F?A^†>¢÷U>ÀŒM? ’Ì?Ñû?sa???ó6=`¿c>Þ/Þ>ôI¹?þ&?H¿á?Ħû?a> ›?Æ0=ä¾?/·;?~??WzÈ>òrl?'¬?µÿî?¦)V>òß]>òûþ>óX>õ†>ªŸ~>Ÿ–€>ëXú>óŠ”?ѵ•?äÜ?€´?[Yz?§m«?· f?}-?X4[?#6À?Ú:?1ª>û Ì>\KÁ:ƒû<æv@=¬E >õ¸¡?iúÌ? ~t=“¥>†Z–? ^)?–ßh?‰=?¾?¨<{}Ð>7 g>}wã?U¥¸?I¡í>‚Œ>y#Y>m$Ñ>al>æk>öJI>¤É(>ž+0?3Ç%?P‡x?n:?v¡Ô?»Çã?Ý)?B->~ >–æº>Üë>í¸>÷ e>„;/ò>ضž?wC?IZ>÷\U?@_? ~Õ?Êò?Ó?!ù%?9Ó?"ç@>áK¦?n½?Ô_ ?Ó,A?.æ.?2K?5¯Î?9’?›Ã‰?£Å ?sg?_@š?X:?Q¹?)Ê÷? 4¥?Ëù?e%?ôË@ÎA?¼õ?xÕ?1Eh?ÓQ>ZO<³ù?™•?y)¯?±ÿ?á‘i?v=—mº>¤â?0Ép?iO?š i?~ì]?%#Í?4»Ô?moŽ?›£‰?æ]G?ÅÊm?:ï ??è?4÷\?E#E?Ÿé®?ŽÅ´>§|>³B?6(?>Çö?4m¥?+È ?Ž?Iƒ?B‘æ?(E?nùû?zúá?|éu?€nu?—? +Ï2?¿–?Üe?€ê¢?R ?0Ù4?!bÏ?Ǻ!?ùûë?’oP?J{7?OSÈ?AÄ3?•J/?½ è? `?ˆ]?H³'>üOÂ>ÒÓð>–·Ã?I.‹?«l?Ž‰«?f*I? jw>2°ä>‹êB>üï?Y’?¾8ó?LÁ={ò=œ¯=yF>¥æ¸?f)µ?FÏ]>ýŽ >ýŸï>ý®@>êbÒ> Ï@>ò{n?ˆ/.?tCª?:'?hóˆ?¾¦Š?²Î†?b ï?Rû[?(ï–?B¾a?¾íˆ?© N=Ñl>¯U>þÒß? iµ?~ðë?›1u@[Ûö@Nåº?M?!Ó|>ÿOå?ˆ?ª¤>?§Ê5?¿«o?¶xS>õ>2tK?2· ?NKµ?ÚCÙ?×DÄ?rG°?{Öƒ<¸~>.Ý;>&%Ó>ƒ>‡hL?7÷˜?3+o>¿1}?Š¤q?”?˜&Ë?¡Þæ?¶èé?ž|I?EòÐ?oïâ?›û?“ÏÈ?›¨­?ÀªU?í¹‰?̬?Ÿ*ù?ªEÆ?µ?…1W?&ê?½•±@î‰?¾$?£‘?Í£@! &?ó” ?µA»?šÜ—? µ?çsÓ@ èÎ@óp@ý?e?1þ?ˆ<ð?Âl?ŸØ°?¡íR?¿Ì?Ð|ô?¥ˆù?Ÿï ?‘Da?|7?Íï?l3u?É1Ì?Þ‹²?Æóó?ú@ ]@_±@‹½@F¥?/Á?€w?ÉÈ ?Ò.9@¢R@ƒ@@ aT@ p?±È?Þm.@oÐk@IS?…ì?®?s/?¤ñ8?ÿyÇ?å¾·?§Ô?²¢õ?ÙDô?ÐQ[?ÃÙã?¸4·?©Ø‰?»‘r?̨E?ýoË@«h?§Ž< ¦ó?“U?†‘>ÿј=„:°?c]ý?·aL?Ôß?ãªs?‰[Š?1#g>ÜS7> C?‰?–?·wG?óH@¿¨@ã´@?¨,?–•>ž_>›?“Ke?§-x@aõ‡@q ›@+Õ?ÿ1“?†ël?ƒê·?ƒcí?‰l"?ÃÇ;?»r+?tØG?š˜õ@\?öº>P¹?€ †?†m±?¸A=?Ñ#'@Æ?Ýõ—?‚jÁ?Ž„?ªh3?ÌÇí@ý?·šƒ?8»?QÑZ?¦R_h<ûs.?}~?ÑÕ?Ü­ƒ?ÜDàT>O+D=©õö? ‰¥?–,ý?/?$êÝ?íq[@Œ@b˜É@O"i?µï}?¸CŒ?º”õ?¼Y?¼pë?¨ ³? S©?¤Ú?ÀÞ?‚,¬@!Š@öð?!²;O´?“P@ÕÐ?è2¨?X!ñ?Ä“ø@Y&?ôPä?Ÿ ?™‰$?þ5?lµŽ?& µ?.¦f?`! ?›QR?Ð~?•n>þÎ?Z—Þ?¾“¸@3ë@RðÛ@ ¼µ=´Ò|?m©?à&v?Æ + ?~2-?âüp@f›!@9oZ?š¶4?—)€?¥v†?£™‹?ŒÊJ?Œt»?¨x?—¤?m +×?ˆÊø?ÅÁM?´tg?‡S=?È’?‡Ž?Œîù?©n?­èÏ?’DÐ?¡0@q@ße@ nC@ Þ@¯%@½Á@8=@¸!?P÷ë? ®?¾âè?„M?%š?Ä@#¥@*¿2?¡µ?‰™&?÷;7@Jÿ?Ú5,?ˆ?ª#Å?žq­?åè5@GÚ@é8@,ø@s@ Ñ?ë,û?Í ø@B @ _?‘ô=¤x?ˆŽU@½Í@My@]Á@tC@­?Ûþ(?yhì?‡j?¦“?«q,?¥jb?´\?Ø»??×~?ðß?ÖÞ=°·á>`è±@_©@úˆ@ýN@!)7?Ïâ–?΢?ÉÁš?Âz÷?º9ô?¹³Æ?ÿkð@Âê?ós”?÷_á?é´?e—s?Èæz?øìt?°ØÔ?nv?o£Œ?v‚÷?ÄMœ@ +Õ@ I@@8…?Ì ?9ßJ?_Y?™þx?€=^>õU?üc?ʃ ?Å@[j@7?Š5?‚;_?°•þ?·€Ç@ Ë’@~¸?Å)(?š.}?CøL?Ž'?Õß???å)á@T[b@IH^@.ªê@Uq?¹ûv?¶6?áÍn?õeV@ å@ ç¿@2”™@)??'–&?Ðõ?“tP?™¿¥?‰ ¹?¼…?œ7"?²‡@H •@ŒòË@LO!?ñ#@?ù@5@­@@,@EÙ@BžÂ@Rhö@O–‚?ÄCâ?ÀGq@Õ@ò?œAö?z›R?³ŠÝ?Ó`M?k)?%$ç?IÙ%?‹!?€/?)êX?Ná?º¸r?¸4>î3À>îH>î?(â@,@Ä?Mñ">”>?L7?‘G6?•R'?™`Š?wy>¿˜W>¬Ü?mo?!d¾@1Zf@3D?C:¥?'æ¾?«80?ÅŸa?Þã?ëLô?²t"?PR/?Uý?—¥@?”Pã?\*Œ?{ÒF@¬F@#CÓ?~Ó ?G¬p?‹ ù?•m1@Ÿ€@9@ë¢?¿ì?·‘?ÝÏ?å·¿?æà‹?âOl?°íù?®S¬@Vž—@q¨D@MÞv@6@Ì@êæ?á“b>ç†L? ½"?¯7?³¬@’$@Ÿ?ÁðÞ?œ†„@Š@<‘@H§#@I•k@,µê?S[l?±Ú@`Ã7@Y’?@T2Â@Dmÿ@`¿@q?óº?À·?ñi’@DR@G:Ó?²qU?«¨T@-µ@=Ó—@m?Κ©@g@4g¬@»¸?Åp"?ãý@<«†@E«>…çŸ>±M@ °@QŒŠ@=Ay@*är@&vî@+ˆ¼@:ݸ@sª°@{E +@H•$@;V@s?ãWt@ @ø?ÜÞ+?A; ?KÍ?³‘U?ŽÂð@qáC@}Ê@óA?Ó“ú?Þç?ù(+?Új¿?h ?o™L@n @‘­@'„H@$¼^?Ûðe?»7ú?•Ëp?c|ç?ˆ=À?¨f@?™\i?ŽKŠ?q2ë?Öë?Ëv°?H7#?×q?)˜¤?&Äñ?­ä‰@0d@&Ù«?k´i?biö? 9%?#n‘@·@$Ø @Ì£@d?Íƪ?/KA?SžŸ?®YG?®ÿ?~ÉA?… Ž>†„à>]=?¤ n?Èze?æÜô?ëvN?èvè?è‹$?Ð )?š–p?Ÿ?ïi@?ë[?‚ÞÀ?zó¿?° Ž?¬ÐI?¸Ù½?Á(? ®>o^ñ?7K?ÂÖ'?ƒM?¸?g¥…?«…?˜Šs?jÍa?B¾%?+à?„»>•Ç0>^OC>ó >è8“?-™k?hœÝ@´9?ÙÉy?$ K??c?‰í>ø³g>ÞÆ›>³d>¦i«>‰÷O?Ÿ€3?¦ S>Çá>íi?x>?eœ{?‘€ñ?€Ô?¡:ã?•Õ`?ˆEL?wëµ<Ý@>%Aœ>Ûî>¼tn> Ð>ѹ?'®Š?‡Ý?S?ZP?À¶?"‘à?3†ã?±ê?Ùå?W(?ŽW<Ï­ð;–À=÷“(>iÈP>y<>òc?) #?Fw®?‹•Ã>ì^ë>¸<³2<5È€=1O>ú=u?=UN?‘gÈ>½%ø<Ÿ“=Ð;Ì>Ï!{>yc?¤3U?µ»—?Žd>ò„Ž?üØ?€ 8?^•b>w¦>¤ù…>óÍ>ÿc2?KÍ×?PÊž?>ØG?9¼‡?¤œà?©T²>ì˜k>È7Ô?Šû¹?ž>‚ÙÇ?C?€Uw?t¤?s¯{>³ÿM?½?e`?jÅÔ?tóË?fsÃ?ODê>ìvÆ>S.‹?ø¡?¢>õ{Ï?V,?!Û7? A>–@§>žiª? ðN?"œ >neœ>‚ô->öå>öí>ö0“>ö=6=Ó(?Só"?hU?…åQ?Š[ç?RA4?F½ñ?„Á;?#™>½|w>²²_? Œ>ü¼f>ö{‚?8x?w0ð?røÎ?jµö?g‚ñ?dQ‹?=÷¨>÷~Ø?<'?©ž¤? Ð?D3?s¢ ?wË?fz»>÷ä??=@¨?6ke>øN>ø&Â?„šÒ?‰²‚?‡?‰y?9Á?2”µ?oâÌ?xO?QÔ¶?<%Ú?XÀo?j`À?uŠð?xÝû?Íüh?øîè?DWR=3}à?nÞ?‰:ˆ?x+·?Qï ?%ž§>ùgG>Ú¶>Ë_>ì“Ç>ùœ]? +?tR?F%¢?­Ô?Ž° +>zˆ>îžµ?˜«—?¨é˜@Rœ?ìÉ/>#z>ÿ > >-š ?¡†Š?¥Ó¥?Ýç?ã¢é@7­@:?Œ²¯?zèž? )“?³µ?£¢¿?®È[@ K0@ÍÔ?À°? ð>ÃÛ–>Å,?Œ_?¾ö?/»p>•â~?>éÄ?{àŽ?z'Ö?O?Ž˜„?À˜?sç’?X +?gßÀ?|_—?½#®?ÿð?¥7>üŸS?kiy?¶;.?€Â>îÃ5?/É ?}zÀ?­A?í /?»@2?]Ïs?— È?å÷°?¬ûò>ý€î?7]ÿ?—]Y?“Š•?µÔ?„-k?k±?In>¾~>ðï?¢ Ý?¤š?¦h?¤¾~?” +?’é?ê?˜i?MŒ(?:iÁ?©?‚m?tq?z?€ÔÂ?ìº?yø/?gÚ[>ÿGŸ?Aâ/@/Ú>@ k?9l¦?8ö‘>¶-I>Ђ‘?y·;?qŒ·?š;{?œ“«?†÷p?rµ.>îY†>òM~?N¼?3»ü>¨Ø>ËŒq?€?ü?…8!?Àuï?¾^?¬ž€?µŒ?îåÿ?ú•>@œE@ i@§Y@^é?ÌüÚ?Ê)–?Šµñ?Øv?œØž?–i?¸4?>æL?¿HU?±èd?Žà?…4Ä>qqr>‚žU>r%Ë>±·^? +?™þ?ÁœÌ?¹£4?‰W´?€ãÑ?-ù?}`û?n7²?'w?ê<¿@a @]>>@)I¢<†Ãˆ>ÔŠ?»ô¿?—Ù_?u:?Š)?IÍå?jÓL?’?‚`†?.€ñ?„Š­?Î2Ó?¡ Ò?>ì™?”æ?åJX?ªI?dž?‰@@R=?°9¸?% Å? ³?«K}??paã? º?Âìt?ľš?Äyd@/°@"„³@ P?ýFó@ w1@5s?ó-?áBø@ "@ ¹? r?)?É—?ó'O@-[@6v|?¬Ì?wÙW?^òS?J!@Pd@.Qˆ@<.ú@B"?!ß*>ÑT¥?§„?²)Œ?ƒ÷&?ƒÓ@%%â@!"N?ÁÆÝ?·Ög?p&?%¾?SÒ#?rd?­„º?®©Ä?•™?ô>?É‘o?Ùö?Ú—Ô?¿UF?…9?‹‰¤?°‰ä?Äv?ßNë?òJƒ@Š?ë£h?ÃÓX?Œ’?9?•ÈŽ?ü6Ð?ÞU?¿+B?á82@ƒ¼@ÑM@_¤?ç6W?«pÀ?#¬¥>”œè?Ü Ä@çy?ÙO’?®ûý?ºàM?¹³á?rÝO?JQ°?t‘?„¦w?ˆî‹?4?pšE?^µ?0-?( n?BÎ!?Ü?ðÁÌ?¼I2?¾[´?ÇvÒ?½v?>y?7/×@J@Ç?r*ã?V±q>ÛÓ¢?E‘é?ëÂw?îX¦@ Ÿ÷?å×?83?{??ßÙ|?ÆŽ?‚f÷?²mÎ@r@/:@¹,@Xð@ +šE@¬®@Ú?ãýB?‚L£?‚IŒ?‚Et>÷N…<¡ˆà?Žg3?óYí?Ù›q?Ís5?Àp?´®²??¢n>ä]?§¥h?Õ4O?Ç8û?Ã%ˆ?:Ø?üì@ -”@'‚?Oj>¥áv>«_Ô>˜8?€,ã?ne?é–?ùçk@ÛR@©E@ϼ@û`?ÂgE?·8Û? +ò™?È¢?•nD?œœ?¤:¶? Á±?Ç­æ?»p?!<'?"õr?Ž«á?˜è@3?ãÑ>™°Û>åïw?¬–@?Ì¡´@@• @1€¡?šì?‘Éè?cf?qÇ?ûã?[ N?üÍ»?ç£E?´Œr?·è?\¢×?«¼Ö@HR@ Iò@Ió@eH?õ r?Ô Î?|? EU?äÜz?ÚœÏ?Ájº?œ‚ª?'¹?„éH?ÞWP?èk@Ï…?Óç‘?…~B@?ª@Ýd@9™&?©G?¦¶@ Áü@ ºq@ ²ã@Äæ?ÐŽX?´q??€s?ªÍt?âЀ?í“ž?úÚ3?¸tÔ?Pcª?˜Ùk?ÚjT?ʸô?ª Ñ?õ:j@2îç@`™?ün?Ç[€?}=Æ?€t?†ƒ_?ÂÎò@—e?í³‹?á’?Œ¯3>0Äã?‰*@nù@\Î@¶¤@l.?ÿ@¾?ì¡š?Õ°÷?±åú?[ö@aa@—ÀÒ@LÏM?P×?Ÿåz@V±?ý ?n?€Ñ+>ÐòË?‚F™@$è@!?ѸÖ@pØ@y÷˜@W_T?ýæ“?ËC?šÔ?_º@ˆ/@ªw@V?éî??n-?‘^H@;vP@%WŒ?}"Õ?ˆk?µË?ª©-?|Ý?‡?ÿÔ;?õñ^?ðèÝ?òÎO?½ˆõ?¶Oþ?£]g?¨½%@ Ž­@ •}@\Rì@\s~?ñ:(?ðëp@Ð@g?Ð=‘?Ï"?æª ?ã:”@è@Ì@X@@^€G?ñâl?¼4¥?Ïm?Í€4?ñc¥@g¢@')½@4œ˜@"8@A@Gd?óiü?÷r?ë\‰?îb?ùÚY?é1ô?Ûdâ?êT?þ%?û;?â x?¹]³?jgæ?XÉá?NÛ?—׎@/ª@ Ç?Ë*/?Ô=@q}@!e@;u@ÓÁ?í|?ê'2?D_N?MÔî?îh'?ØWB@þ@Aú?íKR?Ëxd?­n?ªK!?±ÕÅ?Ù´u@‘1?ÙâÖ?6'æ?ukM?ï&?ëx¼?›ã?—¤@ô˜@;»@3e7@7$.? >È? +ù=?Ôù!?åO³@«@#üY?ÇZ?—¤?Xˆs??n4²?œ,M?‚Âm?_ÙO?CÁN?!Ù?iìb?ï •?É·²?'OŠ?` @É@VE@ .7@EŠ?‘Ž9?hu?̤Ø?âEt?ÉÔÆ?½‰’?cçç>ÿ“‡?׬?áP?Æøi?”]?Ρ$@‹7@Œú@Wû@3±@e@É?Ñ`—?ÙD@“L@*³p@Êê?謖?(CJ>ˆ +ÿ_W>ðŠ>íÖ?®ºƒ?Èxè?¶ëÚ? Ò?¬Ì÷?¶í? ÷ð?ÞD?…Ž?„"à?ÿ?Šn–?Žhÿ@1 €@1Ý?ÙÆ2?ן?²Ûc?°¤x?Áì.?ÎË?Ù$°?êh?±Ø>êÊO>½<ªa>ë@q`@\µ?­…3?ZD@%›X@6Z²?ì‰o?•Z˜?Êr@~ª@2‘?ˆrA?bZ?á®? £w?Öø6?Øï@^ãù@€Çï@H ä@,ð]?øù?JÄr?/E?»²?§¯?­y=?­aì?™!ê?¥CØ?¾?Æèx?ç=ù?ðS@Q2@/a«@S'Å@›yœ@™ûÛ@1f@5Á°@eqÛ@oñ@E¦J@,b@¦½@ø!?èy?™4ª?¨Œç@dŽO@[©‘@q;@m,;@v0?¡ã@!Ö@nÞ`@Sk5?ÆùÚ?«ÿŸ?¯FY?¬ô™>ðŸ¼>½×?£.ÿ?çP—@ Éç@Y-@!pt@@ ›Ý@#Ã1@(ǹ@+™§@.!(?âÑÖ?»þU?ìÁx@ @Îô?Ïuì?䔈@_q‹@t‡@¦³™@¥“Ç@Ûb?“˜+?êæ:@qw@†?õ˜]?àÉh?rt}?g¹{?ßÔw?ñ¶8?žÆ4?ƒÓª?°=?ÄøG?½±?Ù›‘?ùó½@"Vv@)uØ@@"Ð@8ê=?Ý]6?¥HŽ?“j€?Šéd?ƒ{º?]’{?Oïf?¥\z?¬nˆ?þ!«?çÞ@¼@(¿Î@ ÿ?ùÉŒ?킵?åäc?Òu?¬«•?«b?Ÿ;¢?™(«?sz?[  ? }:?/á ?Ô«2@ ??§}ç?)‘ ?NÈ?t(T?œã?ÇÁU?Á»Ï?»²ë?µnà?®è?°?.?†9Ì?‡Ä ?¶>ìJo?vv™?¯Ë#@ ¯¡@/ô½@[û?å[2?œÒ?Àx?QÑ?/Ò?Š4?Ÿ^?­ š?²pÔ?¬Œh?Æxâ?µ¶¿?éN}@ >Ý>‘3?m4Ó?sº=~V¨=ñÝÌ?Œ¹¹?~ý2?G†?TË>/ƒt=¨<?|á?xš?AÒÕ?uH±?Þýw?·æU=È1>úHy>ùÄ?¶x?B3?Œ.%?¾>Ò_¹?/Ò?£Æ?%ò?˜Ö??†??vâ´?•– ?‰4H?ì…>„ç™>wq*>˜z> IT>ã«Â?€ +K?2\=[ÇÐ=sáH>F–>ì+J?ÏÎH?Dw4? Œ>ÜÌæ?˜E„?sb"?G,>òŠg?!Ý?_6?t«=ƒl > [>Â.ÿ?0ˆ?(cÐ?–öþ?—œb?X÷£?[­i>;}>úŒ=‰œ=` );‹wß?îd?ðÂ?NŒ>ô˜ê?NQ&?kiø?o¾?tÄ?tÖ?tåa?8>)*?[—?¿¥ö?—VÂ?TÛZ?RÌ?OE?"Œß>¯ß>ÎN‰>õ£‰?zõѳ? Iä?×{?„Ìñ>’Ýx>˜Éä;§¿r?Ÿ­Ý?±7Ø?º.Ì?¸ÚÃ>q 7?ªi?Þq?: =Ÿ­?¤ÿë?ó2õ?8ºô;—·@?Rôí?µÿ?8¼=ß$X>¨Œ†? w? Èî>÷e7?x_?æÉï?»wB?K½t?1öÓ>ºI? -œ?„¥æ?s›?7Ï ?Kíl?”)ð?Šöä?.ÏA?/å´?–(Ì?nl>ê¬N>ËŽ¶?Ú?—^„?Õ`Ê?ä>Ý?ITÝ? ʈ?Vp–?r.n?ÑyT?øN ?¢Áé?l#k>ĉp=Ö ¨?ÌéÒ@&u?3=Ûíb=€œ°>½Ï!?OØÚ?~«À?¢Òq?z™>ù½$>Õ->w3â>½È6?S?]Ø?hµ‹?g=?%`¢?±K>úMÖ>ú_">úk>öv>Õu¾>ÿ¸D@ÚT@=J?z*Ö?z8f?x +?tSø@F’@M®³?ƒ˜G?SAK>ÃÁÇ>­^?,9?2Ô³?%¬?)ŠÁ>UD>M?E7[?{Éæ?% >ûíÈ?–9ù?ÇäÅ?¤o?|?“± ?¶¡?.ü]>ÁDM?·N?IE??8C?n?Œ?³É>{C>˜…á?h¯?”€g?ý ×?¯Þt?|8?L¬?–;°?°J?Î…ø?å‹@ +úb?ÊÌy? .??BÎ?‡ã5?^8™>ýòØ?"ä²?~`?~Õ?~2?Ì?¾¾º?¥Sc?!?V»"?×–X?Οj?‘ŽN?¸?9Í?:)?¿9Û?³‹£?s?iÄ\>ÿ3?0Ç?Þäò?ãñÅ?Ô7/?ÀB‚?Zݵ?z‚—?écª?ÙVW?ÕÃ?‹­†?Þ6î?Ø–v?×l?¤f?æUú?Òf©>¯&U>¾U?\Ž?gØ»?–„k?‘r9?U?’³?$nj?6w?À­Ð?°’à?~j?_WÊ@´Ö@7í?í4¼?ÙÆ+?€«?ƒœþ?Šü˜?Ÿ²O@ñv@8÷?Õ9?’? QP?r9?ð‚??j1‰?x¦t?«K:?·q?çx–?Óé?eÙz?V2Ä?W?}\>uŸ‚>ØŠÎ?‡“?‚ d?z‘?Ðd?Ân?ªÕ?n÷?O!‘?æó?PmÜ?“ÍÅ?k£??‡?[]Ä?¶|ç?µ¦m?§²5?“h?†#?Š/Í?ŽL–?ÌÙu@ z?ÇW¥?_¦?Ç>c@ t6?³Ð?)3?–JÑ?Èr?é3Ð@#w?´û7?‰Æ„?³Ž?ɸ³?†{v?X›¼?Ï}u?õ4¦?¹án?¨=²?ž4?”Í#@z=@"²²@n«Ä@¥„?Å*ä?ˆRÑ?¬Ç˜?¸a:?è~’?ïL¶?Ù8?Ô‚L?%R?^Ç?H«?ñJ?i¹‰?…@a@[6Ñ@V‡ï?„¯?…`?y°?tÛy?p²;?pyO?‚lx?qzÑ?'G¢?„®s@ /Ã?ð±?¬jN?Ä1ú?åøG?¤ ì>py€?Ôw?ˆç?´H?7†é>ù1?–oÖ?´›æ?"ε>êV?%”?‰6?ë•?“ŠS?L?•€L?:ª?9 H?à…E?à–ã?mK‰?q<š?‚S?‰œ?ù›K?ú:è?ÂIP?°[$?*N?"Rw>™@>›‹Ë?Ngƒ?~Ÿw?玉@fì@#Þ?û‡É?e3?­?@oa?¥Bñ@ ¦u@ú‚@1O)@8œ?¬XÐ?ÝN‚@EH?üÍ ?ÓË?®¢W?‚C£?…L?…„?¦Á|?¿Þ"?ÖÎ?`ß?°D?ÃB#?åXÚ?õÐÉ?òc?æ”Â?øO2@%?|DÝ?'U3?CdÇ?CTÍ?°ãä?˽ú?"»>¼ýÌ?gx +?ót?È›b?Ñs ?Ä0œ?ÂÔ?÷æ?þ>ú?®2?ƒ´2@;~@=\?ókÂ?ê…Ÿ?î5:?扱?é?™'î@¨M?ö‘?2}ù?H0…?»´?Çň@Ú +?ú@¯?„?z¾?—8~? Z?Ó6??Ï]N?Ñ\&?Ï£r?ŸðÇ?ÉÀ\@=•Ô@!¢R?…A?Røg>ë?BÙº@ +Áe?åñ9?‘7$?§Çû?Á£°?Ρ +?èe¿?èŒÕ?æÿÚ?Õ˜5?Áq»?¥4@?pßc?_øÇ?3öê?¡nÀ@ .»@ ¡@ +qÏ?ù?Ïdî?«EY?ƒCP?+³j=#q„?8*Ã?Ô÷¼@Á’@Që @^?€yQ?¤ÀF?Îäy?ò–â@y¼@I@ÑÁ?¾x?F?`®@?¦C±?â•@=€?õ£d?®t?¶-‚?¼^Ê?… ¶?Ñ?=ÞÍ?áv? '?£G?‹i?¿ñ?Ÿã)?§#?¬º?¿“‚@IW@/ß@Y¬?—LL?¦#?¨ã«?´"š?Ðå @ˆt@Oõ&@#R?º^¡?¤ý?}r?›>ô?¸Ø£?Š¥\>þ[?ˆÍ¬@Šæ?ûî›?Ôàf@ê±@:~"@:a?Áj?›9q>ņS?Nˆ@ËÙ?Ýq•?4þ¢?–ó@*MH@ßX?úÚÖ@Ëœ@UÀ@O°@K¸}@/ÙøþÇ?:@?¿0Ã?Øò¼@ jº@ Ô?º[+?ÖÚ@T¶ @L¿?ø"R?÷jø>µÇ>&vÝ@º4@jÞ?öh?·²@DU³@Y?²»u?YÜØ?ôkÁ@e±?œK[?Š¬?O?ݳ?Àˆ‹@)?ä y?¦W?ÃÑÿ³¬? µÜ?à8É?Ú…q?][v?Y>Ú?¨ì?¾ñq?ó$a?ö*?Ú·ç?ÎÆÃ?Á'É?Â&?‹IÑ? n*?c›ç?¶‚•?Û}'@›â@°`?ž!s?¸C?Éi'?ÊÌ?›Ë?—Pø@b-@ ?³ez?¦Xë?ØR?ê"Ä@õ¢@Î +@"ßË@*ˆD@"¼@§Þ?ù`%?»Ø?Ä ¬?µ(?£*?Ž­‘?‰ÖÜ?p¤?p ?%‘Ú? —->øxª?ÞS>7Z>?w‡?Ç”?‡y@?'—†?’àÊ?î™&?ô l@LE@À¢?†;?|$ø?oLq?f+û?Öز?áh?é«°?íG€?×ì¦?Î)m?ô4^@ö™?¶NÚ>ªð¤?'ÿ@ +ã”@d?«ù?0i˜?ˆ'Ù?’hr?«Ïù?°—ù?›å +?”Ùé?†I ?jú1?]Hh?3w ?m¨? C? ™ú?ð@3?ô}ü?BÀ?ˆH@$“é@I°l@ÏÎ?øM:?©o[>Íàà?‡Sí@6è@Þ÷?`Òö?W¿9?¸pX?¿©?î·¦@ ? @]<@ ?ù%z?õ—?å®s?Ö… ?×–d?n÷À?xY?hEÊ?fæÈ?ðry@‹}@ u»@‰@ ‰d?ÜqD@Ü@dØ)@`Ü´?½Ï?Ëûì@gÔ@xD¡@,H8@AC@ µÀ@³@(„@0ø@3¸Þ@d¾H@dÌÑ@Šh˜@‹@@2«@®¡@£ @4@!“M@]Äû@Q„’?ìÅÊ?âöœ@1úˆ@&ò@ú @¯@ÌÊ?ý•1@ÊÔ@<'Û@< @&Ú¯@$ +ç?¨ÎR?¥`Ð?¼Ú©?Ômw?Ôó?ÑB¬?“ =¢;â>ÒØ.?¬ãì?­´œ?Ë‹T?Ŷ‘?1‡|>Äv/>Ú$©>ív–?s4˜?™?ñ?ú?€Ó? ?ÒÏ?Ù?ߤ?â ù>óÿþ?ã0?šó7?+?¯q?_öy>ëF>Y ç?‘˜I?íÑh?¢Qœ?8Ž5?!ÿþ>Žb1? yÿ?µè?? +J¸>Ìä†=Š«Û>•Ì?]?rñË>t++>²Ñ?·Ÿ¬?µLŽ>ëWé?Ž?›î?†Û›?ß;»?Ù\–>þQ·>úzy?h}µ?t„?q»??X ×?fí?þ¾š?ßßt>mì4=Í ;2@=Eê=ßoT>ÚˆG?yW7?Ö6?J p?¾*e>þ¤=¢‡ò>³>T¼ú?†?’í>þZ~>H¶E;Šð ?,øG?ž«W?;`ˆ? +ê>Þz<>¢Zi>ïd’?6‹?‚ä?$H>¿k#=qàñ? ‚?;jn?¯,>óD<`×ó>Ì_®?yŠ?-ãÔ>ëí>óù>€ÓÍ>ïä.?-–?9½?] +?P²=νö>™| >ÌœM?Q»?=î@>¹úG>¾ð>Ãó=>Þš?sÓý?q >ÙL>Ýc…=^Àž<ÇW?\EÀ?tYs> ;ØÒÐ?SÑ?³ï ?‰UÌ?t¿÷?tÑ™?tà ?í]ö@¢ ?´z?QyÂ?:‹?8|?G¬?u^U?Íx>*i”>õ—? é¹?4dC?7W×?:KÖ?jRa?Ûz?Älñ>? Ø>3A:>'\Ñ>"y·>m\>ƒbì?£éj?«iö>Ã'>xa>Á>Ù}Ö?f‹?À?|à?xúŠ?¦ZÚ?µAe?z.?ún?—Üx?¢X ?S¸>÷;.?,&Á?[ ?¸-?žf9?w»E>÷‚E?#½O?d?žv?¹Ê$?µ[›?œUà?§{.?÷í¢?à6Ó?·"?/Üj?à2”?çTR?º.5?º?Ù}L?Þ=ù?qºÇ?e#=?hš ?l ?":?²=Ù[<Z€?; b?xék?iðÚ?\‘?Œï4?§ +?H„>À»Ü>¹¾¶>²¾>ùb?'?f?oP?OÚú?‚¦u?e'Å?:l? _ì>×ÿÕ>ɵÝ>»hO?Ï8?¤½W?Õ¿?š ?ª^>úVÑ>ߊ=U>V¯"?å _?ã&0?Ëû>÷W­<ÝŠ¶=gç†?ÍŸ\?Ù'J?†'>û#4=5? +]Õ?"`*>qn;>0…=n">©°¨>ìsA>žî>…D~?H`ä?{ÿ>?G2‡?*eq?`#}?…óÌ?œ>jZÞ?+P?|}?4i>üž˜?»]F@¼M@K–Z@{ Õ@ ¶š?ÏÏ>·!á=€º8>ù­Í?}C“?Ÿ¥$?ÍÀZ?±eˆ?­Þ?„­?ŸãÀ?Ð_@`‘?ìy§?€3?‘Uã?·ä!?‘Þ[?Õd?;âe?€‘±?~}“?\»;?Vâ`?3R?|ÚÆ?õ˜Á?çë?¹î#?»ìE?½î?°á†? @?JFÉ=Q¥.>¹Ta?¿y]?­K†?V=h?{?­IU?¢?‚ÞQ?2+?¥“Œ?»öÆ@”Š@UW?„l?’U?À¸?±!g?TvŸ?Jí?1™>ëã´>_°¯>‹,à?(ZŽ?T3?î¦I?ìŽ?²N?Ëßð?ûJ?âŸÆ?’pÌ?ŒšU?’t>·V›?¯•?0ϵ?m݈?©ô @ @ã@o‚?ìÃ?<?`Xý? ö?OJ>!/È>îÂJ?f¡í?H¬,?%ì ?)?‰­>æiÕ>Òë®?F¬Î?œ)ý?I€>Š)x>ÊëÉ?¶8?44T?ZUÄ?R0>?J +?…Œ$?Åæ?±êD?ÂÉ­?êv³@å°?Ö/Ž +?/®?5!?¡Ð?˜»p?µôÏ?¿Úõ@5 @‡‘?>?ðæ>#YD=âë¿=~M¬=“Ql?”7?Å×?‚aa?Ÿ $@Æ@5£?µ{S?˜ºô?m?²@îÃ@ú¥?Ûc?ûU¥@$Ïô?ç? ?xp?D÷?B?=Ë{>ïú?‚€?› ?¶l‹?:sÐ=‘ò1>¼ù©?4?RF ?Á­?²q‰?‘âK?ªßz>óåj>S ?Ï0¾?àLÉ?äx£?逯?CŒ?}>®2>—¨Û@jç@ )†?4ŠŽ?0Ëþ?‚{€?y!ß?y]?É­?ƒ)9?—pI?ö]U?Âàc>¢ey?¶w?Ähß?òø3?âï?Åb?ŸÐ`?aP?´&?Fá?¸®?@(X@ží?±?±“ð?Úhö?À??¢È?m.Ç>öd?Z}è?™éâ?´ÐÛ?ÊF÷?põo?oß@ßi@8G°?³¶:?)ê”?…i¦?žèR?¯Ô?º¨o?±â +?°¶®?(>”ëú?‰Eº?¢Àj?Ò+„?ÖªZ?ºÉ?±^?‡–”?ð?×\î?æ‚«?ÆT!?ÂÏÄ?Øø*?ÓfQ?ûK©@ˇ=µŒ¶>ASÈ?È—ä?Ê×Å?Íy?× +@$@A@r%?xi?‰«3?º$?£ªv>çà}?"u/?ÂLø?É ?ôM¾?ì¾?¬ck?»ƒÑ?ñ¸³?˵Û>Ɖ?f«z@6r[@"4¯?»üú?âáÒ@Úw@ma?è:^?ìÃ@Ó?Þ¤·?b½?uä¼?•ï?’Xß?yë?‘ßf?˜Mw?—G?‡?-ií>†¦'?Ëq?G^^?h¿?è$¨@7o¯@8sõ@9ߨ?ó›?qT?7‡>ìãZ?8¸ ?Š˜L?»^é?üÂl@Aì@.ÞÄ?ó·l?‹?°qï?ÚG?ïÓ)@O;?¾ø?`¦–?ž1>?Ú]?×¾P?Ö†?œ‘?#X@?V*%?‡iø?‚÷?}Á?|DÄ?Ù¿?™•ô?´ ¯?öº‰@Ó³?Ý/®?‚Xí?} þQO?иè@\U@S.8@F 5@ r}?Ò‡2?Ü@?ÙHØ?Ðòì?È™?³cQ?‘Ы?²Õr@¨ò@œ¶@i´E@L?Àÿ?±Œ™?Žéé?¨¡Í?ák6?áBi?®ü„?´ÉØ?æÚ?éÎ?Ó‹ç?ÉwA?ÝzŒ?é@ +ƒ@ «?ècÿ?å[Ž>ûò•>üa[>€^‘>"ü= ?çôF?æh@â†@yZ?Šf>½˜@5@T»§?üßa?yí9?Ö¨@ ‰ +?®…?]?ã!Á@@K´@uª?äDF?ïh@Fà?ôEU?+}?v®Ï?)?3 ? §[?-M)?·Ö¾?­?6ìþ?i+?Åz7?ɯµ?ÜkV?ËýÈ@º@Œï?Åž?¬4h@0˜¨@Lþm?´?Q=?¿m?çÙ²@ 8@´c?ÀýY?kÖ@ æ@KTH@@ æ@1EC@zÔ@ Ð=@ß@6WN@..@)vÌ@ /O?˜X©?-ž?ímZ?íš?·»>?³I½?†£=?Œç‚>Ln(>©©?Î7 ?ë'l?³À¼?·]?Áò ?Ågµ?Ž ?9ûõ?\é‰?‚‡·?˜9Á?·ù,?ñƹ@3°ô@Ã?† ž?‰°0?N¤?—ÃÊ?øNô?ðÆ?¿ä½?Æô?²á`?¤fž?Ÿ¸Á?§i?‰Fœ?tOx?†¼Ç?—¡?¦7a?µk°?ÄÃ9?ÃN?É+³?ñ’?é(k?žvî?ž«0?T ˜?[Õ?ãÉ–?í‰Y?1Š«>ï…6>Ô;q>¼¥?£bø?ï 0?¼OÙ?x-?‹6¼?À¥Ú?¹L´?”øÃ?£¾&?Ù½G?ç@0Š@)š?÷õE?í~}@6f÷@CIå@µl?ÏÎþ@–.@#¸É@Ë +?Ù… ?¿Sp?…Ù?ƒÛ?äwP?×µü?§¼÷?¡’z?{?_Û?|ðõ?k-?TŠ†?Fãù?Ÿ¦?ôM?ù#R@Š^@9??ƒ¯?‹·8?ž¬,?›Rû?œ›#?­²í?¤b-?šP‚?ÕbÖ@ZŒ@,áÈ@è|@ˆM@$Œí@‚"?6Æc?=î?bg‰?h¬@ê@@+Y@*¶V@È9?ÍäÅ=Hzd=œÈ;>û?¶æ?Ätõ?Á9÷?͵ú?ãÈ„@ ¸<@/Å@<úè@Y§>@Qo@Jï@LÂ:@m±J@_[+@ƒÌ@Áš?Ðj?¬{?×m•?èç^?ÿD¿@=—¨@Afm@--@1½š@•à—@™4‹@Nÿ@+[Û@TŒ@}%@sÜ@S<Ú@KO@A ì@DPÔ? ¦3?®‡V@[`@$…v@)ÉB@&ã@o‘?ÏJ?´;£@(€Ÿ@)ûn@>ª?þˆ#?À®?Â…Ç?»øÐ?ªjù?¾?ã.Ž@´Ý@‚`(@ŽP@uua@†KJ?·ã–>ã`?ƒzÍ?Í*y?ÉS˜?´Ÿ?Ì^?ñCŸ?ãñ @º•?ý¦{?¼Fl?ª~?ºÅi?ÃP–?è{©@êf@ßÎ?^m ?fò ?”ÆR?±XÎ?¯îq?¹ë +?¸¤D?¸Â_?¦á^?ŒXg?ŸÈ?ªŠ?™Õ?a½?ç‘?½|Í?¬á?l©[?6Ϥ?:ò>úΗ>—>>Êô?„/?Šå§?­fþ?¹¦;?©Ÿ?¼ýƒ?6¿?f}x?lÕ?€kR?†º?´?“u?™ÙÎ?¢@Ÿ?¯þ?±o[?ã¶l?Ñ,à@(jÿ@#RÒ?´)°?˜fW?š'Þ?Ž1?½hâ?ìù"?–.6>î^/?–?;6t?U4?Œ?€GŸ?b¡w?X ¹>ß å>Ëúç>ò¾?7?+a? +ý?¨ÊŸ?¬¶ó<ü6§=œ_>‹w¢>á‡v?O²Ò?…(Ì>ü >ùî1>úD?h;?±«>?¡òR?}3r?„5?ƪ-?Æö¥?f$Ç?D`Ã:‡D>:p?^$>¹mÿ>và>Î.? DN>ýø>Ùov=—Ø?×?'|˜?äç†?µ®Y>§éþ?P™`>ë“>Œ£m?$u/?B|T>.j|?á?«?e =á~Œ?†X?q‡Ã?ÊAØ?X5Ë? Y>ä€ü>™è|>Ž›>sA +>ŠDW>ÕôÇ?1¸?r£ö?+]o>²2>: ™>Ó°u?‹? ?b +>óS{>ÓÓ>NÍ>&L=¨>MTs?sÐA?]¢¨<š®§?$¢>ûň?qkG?tLã?qR-?l ?57? @±>=2 =íEš>ådu?¥?‹6?­Ô7?†ÑT?Uà¾?S(ë?PoÝ?b(8?uOu?K}?]I?$‹R??Ìõ¡Q>ÍÇa>‚š´?x†?¸cí?¤¥?(æ3?–>öÚ?»?T?[b?‰/É?‡Nñ?¡¹|?¥È(>«5=O’?•ûH?®½–?¶t?¸§à>­ºt=D‡?…š%?´H?Ûž ?î©?¡Dç?`ø?ã…"@æí?Ôä?wQ4?f ?L÷¢?mpè?”@"?•ê5?—“?l;?x‰?™îÓ?Ü?j?½EM>Â>Ù¥!?OÊ[?O`q?–à?›Å\?˜šA?”'7>ú‘>ødÒ>øp¡>ø|‡?{Kñ? ¶>Òs?HVU?xÏP?xÚa?xé*?-tx?†~?Uü>ù"‡>ù/×>ù;ê?_(?ëÞ?-Á>•j>áXÛ?+ÓÞ?2¬?ÑZ?d°'?²;ñ?“bƒ?Kµ…?‡øÄ?Òû|?´†¸?:c?+€½>Èì,>ؾ>ú_Û>Ø•þ=#-™>ó?w³j?yב?rû©?p×b?¼$¦?º%=£f¤=²R>ÄQU>¿Óñ?êq¥?ïóÎ?‰Éæ?sŽ†=íð_>k€ò>„¼ä=?Ò?A‚î?{éŽ?{÷b?| j>̾ >ÿ÷?5ª—?|Fs?†tm?ˆí”?JP? õ>â°=J<Æ?Í3?Ì?£‘­?µ ¾?dŒý>ÜzH>’ª…>?B>‰œ>½µJ?@º?VÅ?—›?Õ­ø?ì«}@2?óŒã?¾^I?¿.Ì?Å;Y?`? Ü>®{¥>*F¦>þTÑ?G%Ö?±óm?³ð>?µí«?«:Æ?‰›?„4?~Úq?Ùn?¼”N?¨˜/?dÏ?j$?ŠL?’Ïh?¢¤?šè2?’Ò?€¥÷>ÿ˜Þ?'™B?š"Ç?¦Jb?×!Y?¾¹È>ÿ÷c?“Í?Œ[]?~ïæ?7>î°>¸Œ2>÷6c?dy:?~²¸?¬dV?›  +?€ã?_¢x?þ½M@>(@s@?€@¿Ü?ç;È=žö"?#@–f?î€p?€­¹?wÂý?U†‹?f„¼?2ÿ?kT?×ç?"„A?ˆ0ë?tUÑ?ñ´?Iòi?°W†?§þ?¥¿M?ŒÉp?Hç»?>š;?·Ó>Õ\s=Çþ¶?U ?½q÷?À×h?¾%9?Žiù? F? :9>Ú¼ˆ>¢³ª>aŽ?]ä«?Ì…p?h¿^>1´]?…?fí ?²Û?ìñj?{>rà3?;×?µ@?©Q‘?Â’ +?åíž?ù ?ÖÚ?ËbÇ?²d?¤Ü²?ß^ô?ýÛ?y#>ü»:?› Å?Ày®?[ÂO?)O@%uñ@HæÉ?~Úû>ì ?#?Rc?ÌÖG?Ú d?^??‚E?ÎÎ?ßõ}?‰Òµ?m`¼?´Dg?µFp?6‡m?-ß>œ„'>‹†“??? [?Qr?‚I?®Àû?¸&?Ë«d?²œ?T?YÆ~@k1@ÂÄ@"ô@ ;@ñ¢@)Û@¾?ý´ò?¯-Õ?»{©?Ò)’?âß‚?ýŠ?« }>‹ßü>µ«ó>Ðp®>¿¡ï>®Î?<Ä?”ä?¢KÑ?ªÈT?fĵ?ç€?‰C?¹¿©?^á–?Ž}? ??~P?+Jh?Pˆì?…â?ŽŠ=?SÎ?C¬®?\AÕ?[å&?׋ ?ì.À?¼H?­Â¹@(/@3Ç=?´ à?¨;? °Ü?[p?.ö??2½?µ.R?¯’Ï?ï ?ÀÅ$?›WU?‹y? +jŸ?/y;?äu?«º?áw?QóE?¨b?Å‘^@—@•V?¥á? À?‚\ü?sÜÝ?OÆÍ?|¬p?¤®ù?ÊF”?ÿmÈ?æCÉ?Á ?÷d?‚H¼?i b?EqÄ?Ê@j2@ c@Òœ@;e@¢>?Èñ?0Ü>êÅ>‘þ?AGY?pŽ6?2½?°ÿ?j)»?‚ƒ?Åà?Õ¡ö?î?‹Ÿ®?›/?¢-@Û@L?Å+¶?¼‡G?kÏ¥?]M ?aÌé?fMð?¾nF?ÂÃ@7Ó°@=?€Þˆ?ƒÏ@ô&@¾B?<¨?7r?øéÅ?õ7‘?行?íÔA?›"?™]?²&U?§{?nˆ?0*˜?Â@Q?¶6Ë?w ?q ?mt?ÙÂ?Â?ë>?Ðؼ?Øqò?ÑvA?¦t§?Dˆ>¸vÂ=Œv>?Ò“?ÈF?¸É¯?—«q?£û½?±c?Ïip@?Öfw?ŽJ"?}Š9?L^Â?p1Ë?˜Ð?•¢?Béy?•}l?î&!?Ç%O?•X?Ç”@¸ë?íäk?Ïl?Šïá? ’>‘5 =";d=´‹ä> O¸?˜4Î@ŸŒ?ýÃ%?ä@0?ÂÁG?Ž¥Ã?CÎm>ïÀ?Ï>?ÆAÜ?Ò˜æ?Øm•?«ˆ?€,.?PŠµ?ïN?€Y®?·N±?ÖâÕ?øµ?Þ*š?¾z +?»Ý?¹:ô?»in?¿Ã÷?¥J‡?”Î+?›÷&?“;?+®°>[S­?31Ó?¡Ì7?éoM@“ô?ë T?~ÿ½?”«y?¯ïí?²?µ0Ã?ˆsâ?eŒ? ~|?b¹?“4ä@KN?Ë‹4?gi?­7Á@ ÚÀ@§@s@ßV?¢{ô?µQ?ã1¾?ëi ?óª,?ÙüP?˜TP?æŒ@NÄ@3²œ?¶;)?ÈÄ3?øîþ?Ýo2?}+?ŒµË?½¥G?©@?9Yk?eBY?½od?Äɪ?ñ¯Z?ëÒo?T&?gU?°Ïù?¬\v?½ Ë?¹=?PÑ?D•¬?ìn?ñç{?}M?wûŒ?1Ñ?„q??{7?øð?Í«>?í]³?²Ø?£”0?ÔÇÖ?Ü)~?ÿº@ W'?Ä©3?§úR?žø¿? 7S@Kò@$½r?‰=)@?c.Š?¶õ™?¢êÕ?œÒÿ?ìtä@óe?ó=±?à\@ˆ @ À@P‡?ù7@8›@~¯@a@%ê6@ë/?iè|?[Ým?&?‚ô¡@&^@lÜÃ@L@ Cy?†ýJ?”}?ö?÷ -?Ü9É?ã¹@?ŸŠ0?*ý?Ç.2?Û`¥?³Û?˜?Ï +ï?ôáh?Ïð?²øÀ@ªÝ@?"@5Ã`@-]@§é?í-?þ¸[@{–@?’Ž?=‚?¼œ?ÅZë?°‘¾?´ƒÛ?¸ô ?·¨ƒ?ugd?t·o?£·?„Õ6@ +h@²I?CæW>ox?~6{?§_”?£O¤?§G ?¶CF?¾Ëf?Ó¼¯?ó;u?Ìã?éþ?®>'?ØnÊ?ß&Ø@ ΰ@j%@.É@ÿø?”¾?Že>?ý €@ TK?¯ŽÂ?i½'?iÌ?q«^?™g?¬žu?‘c8?pô?—ÿ?Ì?ÙÙÏ?îd?ÒÙ}?pF´?g„ >ð²>ïì?Ä +Õ?¹ÓY?á‹á?Þ~é?H¸‰>ï;1?š?+þd?˜«>?Єƒ?Í:–?¹Â}?™?/vŠ?$2:?&Æ*?1D?ú˜?-”?† †?‘ë•?ñ^@~Y?Ú¸Š?²™­?œ½ò?‡Ò­?̧”@-@ 3É@¢Þ@‹8? +„?#¹"?&C?6(L?ÐV?Ü~$?§ž-??ÿ?A¹>êéU?ˆ[œ@þš?ã£<>ñ¢€?H0N@9ù@.š@À¢?ú$f?âUI?É9ë?œó®?ˆa?ä…]@0íi@,>Q@£-@sH?ô¦?ý…ß?OÛm?AC@ +ž>@v@7@#®:@oc@‰1?ßâÚ?cSâ?æa?Ôîð?ÆöÀ@/ÜÃ@, +ø?ˆˆ ?-Íï@A£@›@ˆïÁ@ƒâÉ@ƒbï@e‡@a,J@8”¢@?¨Ž?üVs?Û™è?ÌM?ÅXo@Ç"@bwš@?øå?Ó°?è]¤@CÅ@§Ñ@—íÕ@)×@)s6?üGµ@æ¶@/@=!Í@v`À@T‘"=(™$>=û…?óŒ? ã\?MN½@~@´y@p‡@i54?þJ’?¸í?Í¢­?Ûõ?Òt+?ÔÑÎ@ +B;@–h‘@›•E@M¬z@Kÿ»?Ž1€>ã ?w…?1{4?F©B?EÍÚ?‚@@E%@EÆ?Žƒ^?”k2?§ºà?ªsÿ?›²‚?•p?ÆÇ?ï¥?Ì*i>èì@>ï›S?ÿˆ¥?ò Ý?ŠA8?cî>?€ü?†4´?7LT>QÇÿ>ö±º?ã•?ÜÃÖ?¾¦?­Xî?ò-a@®+?¹Cæ?œ¬n?Á?m?aî?K¥2?`@;?ÁL}?²|U?0¦´?<æ>˜¼>lm?/Ðu?gâŒ?88? aO?ª?´AÆ?¨A?›µŠ?•M¥?¯s¸?«®¿? lj?3R?ÁlN?é0È?tAx?>$d?¡Ü,?Λ,?¡Ê#?s´Î?qà?QvX?uGo?—N?.ö?³í|?•uË>ðÇŒ>ÅœÞ=NÃX>Ï{>ò A?KÂ?+Ð?#s?ZÉx?kÏê?¶4?¥®>Á ²>¤×\?žÌ>؃?JL¹?/Pì?«?1Z?¼Ç"?¸²í?+UŠ?IO³?³Rû?œFp?, ÷‡ý?]?;´!>ûøA>†=h>¦$>ÆP“?}!š?Ã\¸?XU?×=×ÿ >“H +>¼ÝD>ÞÇ>ºëØ>o÷Ú? 4?DÛô??ïž=à ;_ï=Eš + É>[z³=d…Ò?©±?âçQ?š–Ï?,ÿnƒ(>­? (?@XÈ?þš?>Q?R!¬? $A>÷m>“o5?8äü?¦BH?nö8>¼Û? —ü?\˜‚?Bé%>óª/?Ñ?‡3I?\=ÞK'?t,?t*Á?t:×?tMº?tZâ?tj«?áu?âŸX?p% ?R0¯>CÚ=´¯¾?E!¼?tèŸ?1ÖV?ô?§Ó?Î2n?ËyÕ?È¿n?°‹¾?žùO?‹›¨?uw™?>w;>õ“½>ôk>Þiá?@Û¤?¸ZF?µÞ?¦þõ?‹Òð>öÿ>ö >ö>?¾?žH‘?œ€ã?†v? (>Ùµf>ßÓ¦=WÝŽ<§&Ä?\¿Å?v¸¥? >>ë‘^?fã?s?¢¯£?ÂJ[?^ ?3?Œ{œ?¹I¾?™# ?wA3?wJæ?wV]?wfZ?wr?Y B?4‚'?  ->r¡?0$\?ÔÌ­?´6?HtÁ?q€?¹õÚ?¨¿G?&Ÿ?=ç’?êm6?âìl?%›Ø?oP>ø\@>øk?îí'?öœ1?½Ã>ôkÁ?§½e?¶‘?†:—?xØò?jV?b÷?¾Ï>ùÀ?;O +?T^¢?œË‰?ºñC?4 >KŠg>€VÞ>…“f?¢?35@?¹÷ã@/¹?ÇÇ>ùÚe?\I=?¶žÃ?œ?>ú!I>¼>@¤4>wjY>úOŽ>ô°ú>ç"”>ò¾>ÿ[†>üxÆ?¸(?™Ñ?ƒ@³?zslúý{>û ?€M?‰Ì?ë?¾±>ª¥›>’À¼>툘>û•>ü +>ê=?ž„>?± ?‡A%?{û ?YŸS?Fe6?¯2?Œsi?¥^˜?²°Ð?Àl?Ä(ã?–«?|œŠ?¤L½?¼ßÇ?ÍT=Õ%J>±P>ý"?.À?LÔ…>¸„Š?µ\@,X?ó!?–Yƒ?˜Qt?šI ?Œ»‡?|*ð?›s»?·…a?¬Ã¿?¦ ?€eú>öè˜?4•?Aþ?SEb?~i¾?v»V?l¡×? t?êg?Î&³?‚êI?/•5=Î=ÆV=ÓZB?=?´Ü0?¶•?¿|ˆ?Ÿ‹»?$€«?5ú^?Räß?r?¥zh?¥åu?¥3?–“W?w?`CT?3µ??# +Ö?œ?É!?3jq?CB>ÈvG>é’:?N«?SHj?ƆÞ?àú?À‘ñ?ó~×@>»@ ïS>li?4>Ö?Ùr»?Áo×?œm÷?w‹>[ >Ó¶œ?,–]?o´þ?Á'Å?Ž$t>oÑŽ>™€>srU>ëÆè?j¤?Å/­@6EŠ@”â?ÊâÃ?—aD>¬`?!‡K?•ÉÙ?‘ÉV?Å4?eÔ ?Oí?’Ïò@ZÁ?àíï?¶2`?~ê^?^E?„Œ.?ÊÈé?²¯í?¥š?V?þ>ªe»?“e?èØq?ìÎ×?ú˾?»1:?{M?—¥b?´F?°ÏE?¬D<@ +–@B›ß?©¢:>©[o>!6C= gI?ƒ’Q?¼ÕÔ>äMDªC§>Ï)»@#@Î?ç½?Í +†@‰@šÏ?‚kt?¾ß¿@c$B@<”Æ?{€Å?aLÄ?&S«?šËž@"÷Ü@”±@uû?úºª?ج+?ó4/@ÃÐ?ä¶?¡ ?øÁ9@1äÊ@èy@@ü?Õ>{?—‰á?­Ô?Ã\Œ?»7í?¶Þ?ƒâ ?2‡ù?%Eû?úb?#±?âÒ?“@?³>?·zÙ?¹f°?®E°?¦²­@!R±@4è;?‹ãå?9)‡?òÂ@à/?Òz2?ü?ª˜ã?®Ç_?J.?1œ/?-?(‰¢?Dx{?<ÿ]?³ ,?¸»@ Š»@Ëê?4n?1=DÕ >Cí?wʸ?c•*>¦h=>óN„?¢P?™$ö?ÂeÎ?¸“Æ?‘?Œ?†t?”b?á{Ž?×Ü?¶ž?¬Z–?—Py?‘ǵ?Žo…?y°Q>ÈÙ?\À¬@??ëHÂ?¿?Xšö?¼«Ã@Þe@r0ó@MÇ2@‘Š?ÕÍc?AÑ?DD¦?OÄ?”Û?š‘:?œ–?6QÜ?¤ì@åã@àÛ@ÛY?ïè?Ô»?’[¶>éñP?v~~?Úˆ¹@ ïŒ@2‘‚?Ä‘¢<©¹>ï†a?läö?¨`Á?Øø:?îâZ@÷?÷¦e?Øæ?ßX?çÂœ?º×?ˆ¼Î? 8~?º…§?¦!¤? .}?{Ãb?4hÓ?O;ï?duò?‹k&?šOG?•è?Ž~Ø?‚ÿn?l³?þÚÊ@5Ù…@?êM@H ¾?ø°?]~X?€rë?•ôc?…ðˆ?Z/¡?Gb?=ËJ?[£µ?$?Š•i?~¹ù?œ­ä?¾õ@ +>š@<™`@}ß?‹·=?ån[@'Sž?Ðå>Íc£?§?çl?ÇT«?šü®?¶v?ØŽÔ?ª_?LìÆ?`¡)?ok8?@ËH>ý\r?6î7?•`½?‹Ê?‚tõ?ŸõL?õÝ%?Ö“–?‡¢?¦f“@$?ó(„?çõ +?ëéá@n~?ç¶È?@ˆ÷?a“Ë?°›v?¾É?ã½ú¡?’?¤†ò?x%ø?NHQ>ǹ[>0àI@H1@<!?Ûâ?¥‚?¯È?y°„?ϳÀ@ óU?Åx ?J|H?–{?Ø¥›?¸îŽ?3è?¼¬Ø?øáÿ?ïf›?ÕbÛ?§œÚ>Ü•f?)`ó?º¢?ÕL#@B‰¡@:™É? MØ?§%?Ršd?Kö ?HZ´?c¶á?? ?AÐó?ìË"?õÕ-?«s‡?–gÄ@V<@+·6?£ŸU?™/?Reî?<@Ý—@8»²@´]?à‡íÄ8>í¤Þ?bnI?mf@W@".G?ºsØ?lì‹?G›?I–?eƒë?±TÌ?Ⱦˆ@ 4@ÔQ@ +Õ¬@P7>ÿÒ‡>ë“Û?À¦u?ã†?égÃ?áÏè?r\É>ª]Å?á•?j›³?ƒÙ­?®r©?´Ï@F@ŽM?ÿ˜§?ÿÓ @>¹@J²G@Œ{?ÔX?¯ ?ˆ^?” 5?²ãÓ?¢Iß?º¡?9žØ?è?™ç@Lßg@h 1@=ÝY@$"~?òJÕ?£“Ô?‰š¯>ùI­?)ÿÐ?ç$)?ç¿?îÚø@½H?û”?Ý$Ò@X(U@@^^ù@ ©Í@i‘@IR¶@CŽ?È^]?Ö•4@ü^@ Mö?ë«ž?Í=‹?øÙ<@7ø?ØÝu?k?3%~@ÿ“@òn@^œå@lܶ@ N*?È(s?°þ?—þå?ÞÜï@:ð@?·¹Ã?—S#?4?‹RB@(-Â@)W­?ª¯?Éýƒ@NÆ@„Ó@=~@ ÷–?ñÕ¾?ªXS?½…T@ ë(@·¯@«"¤@¦c‡?ÁÙ`>ã†?ÎÇ? 6m?n3?Éê£?̦?¨~9?³90@ ò@2í@ ¥@[¦?»!¯?t!/?©B“@Ñ›?ú?eñf?ZP@ {&@W»?Ì,Î?­Ë&?Œ†‹?…èH?‘`²?œàå?¨Ë?®{?®jË?H$Ÿ?kO?Ù ñ?å& ?”cŽ?ehd?áh?ª4f?_Ÿ+>àq>ÍgÜ?›¡†?¤šƒ?&>⣓? ²?P„W?.Ú >òŽU>óž>óˆ¹>ùçâ?&•—? ?«?x¦–?ƒD|>÷'ö>÷MB?6¯?F9o?¹w¹?»D?ï­þ?òØÀ?#MÔ?DvË?6?„¤u?Î ?Õ»Ê?­W?¤Ü ?žn?"õ?d?+Šâ=†Œ=à>>¥Ù2?; ? q³?À´=æaK>?¡>ûí=žD³<~„ˆ>e¶?? /?‚F?±Eë>Ê·=ìSµ??iSW?ëÿõ?Tå¥?ìxW@?L€?ç2?{¨ò>ÕT? F ?1±U?(Õ?—³?¶ž?d1>žº?G°C?›;É?‡ÉC?s1ƒ?5Yú>ÄêÆ>Ýw ? ¹?¿à>ó§?i'}?óÌõ?¸?ï<´H`>G½?t Ë?cav>÷^¥>é=UéÊ=þ\?ôD2?ô_“?ZÖ? ø4>Ò œ>ÂÕ? ì ?¶{?¦û>ôøÖ?Nr^?uþ‡?¶z³?Ï:@?t¯?¢›?~¤³?›#?rÙ?6ô?Q­²?u™:?‰ló? Sµ?·þ­?ཪ?©Æç>­:Ö>×J“?€%?›8>öÁ?ñÒ?cŒÔ?Vs9=ʳ=±ZŒ>öXE>ö€³>÷óÄ>ø†>÷6e>ö¥{>ö´>öÀY?¥ ?"‘a?—>öóD?RÖ£?w ?·ˆ>šXž?Pò?(œ÷?UÔ«?wT ?¢Àé?Ágh?h ¨>€ñ?>(ò?ÂÝ@?˜µm>÷¾X?\÷_?á‰ü?Ô::?­ˆ?« ?º ?¶?¦g:? ›>ÞEu>ö’x?·%S?¸¹R?z€á?u„o?~(?>N?®¡Ï?²/N?11?ü?Pö?ZZŸ?oò•?y§?Z\?Uº¼?e>Z?[‚?F¹Ú?>¼?8¶í?E?¸?ç&Ø@. w?„HÛ?ÿ°7?å—?¼¶Ù?¡å?K'?>NÙ? dè>ÝJa=ÙàÊ>Õ/?|Pÿ?amà>ú”¯?#f?µï¸?žµI=˜›Ä?`¾?\w6?X×Á?QÆ%:ªHØ>Rþ\>õ'%>û€Ì?”³ì?šå?¾è?É Ð?DC?%R©?» ½?ÎíE?³x€?®ð=?€ú•?grñ?Ë´e?ïx? ‰\?|‰ê>¦Bt<”U‚<“c0=X=…ïÒ?![?}ã?"÷_>½#É?ŒÁ?áàî?Çñ7?¦c2?¤„û?¢£î?€ó?>èO?}c?©Dà?× ?øµÇ?í'?ç?Ã)õ?dN?ŒÛK?dÑ?OkY?"ÊÌ>ÇŒm= Eµ?tœ„@¨ä?ÇÑ>ýlÚ?«P?i“ò>}^>Ürp?9?+Ãä>ÿ^.? Õó?,tÍ?& 5?Ì\?û£?ÞC?ÌY?¢$c?VÛ?LV?s£+?—‡¨?¿ @,Ì?â]Z>§³‚>ñÌk?lq^?˜R*?èdO?ÞÛO?¼`¢?À„n?ÆUÄ?ž5>éZ„?F1?;ÞÈ?Zr?€’·?†=Í?‹Bo?‹æ×?•6g?…n@?hn\?Pú? Î4>Ò‹,>‡âÔ?=í?Œuã?¸D{?ÿM?ÈHµ?J¦Ø?G?³.“?Åâ?ãÂ?ó¶è@%f@ äé@ /@Q°?Ã¥?ŠSs?¦¶?ö÷?®5„?X¡Ä>ß;ä>¼œÖ>$X?¦Ô?VÀM?‘Î[?µÕM?„ + ?>µ?›Â?ÂaW?cíá?¡?‰ÖÃ?®S,@ XO@'-é?å}I?´q!?h× ?* ?ih?Ðñ?'{?¤Í?g~?à¸?æŸ?ýt.?–Ù:?ò?®Æ–?´_A?t<?rN?À'e?¿Šy?œ?}?ÁíL?Ã1¾@‡@‰œ?Þõü?ؼâ?‚'…?˜Ø?ˆÏi?š?]@Ž?ï!=³:¨>zÐ\?W?‰Õ?~»­?¬ƒ?À¼ê?¯B[?‡Ìé?ªÞ?úõl@ã@#Û@^ª?çÍ?¹.Ö?^ "?— æ?ÃŽZ?³}¬? ôí?²\M?Çòu?òŒ.@ ¹@…·@"•Ÿ@à2?Ïe?ûã@ :V?Øæø?ºAô?^š? ÂQ? ÷£?Å…?Ä|„?Ç +n?“4l?‚p]?‘ûw?š'Û@Gd@ +åÝ?†X~?\-©?Wè8?S¥7?¤ Ë?¦ÇF?¨'?¡M‰?>Œ›?9‡|?QL?Xà)?‚m¬?‚´§?gg?šœ÷?¶Ö’?¢þŸ>‡s•>¹~?†‹¶?­€$@"à@MB? ~&?n&B?êõ@U—@"íK?ðP?/±?Ž~©?ÙbÍ?ÍÒ?Ć>?WÆ??¶?Ÿ¼›?ð+À?Õ«~?¨ª?²œ¯?ÃXt?­û¯?¡j`?‡û.?kLÊ?ÎÎ(@*z?õ D?õw€?#¸j;ÙÒò?¶2œ?þñõ?|[,?(ÎN?úù@n?¾hñ?°™­?³p0?§¹{?¤~Ó?¯*™?ÛÇ¡?âñ?À™Ã?²§ô?„jÈ?á‰?1Ç?6.Ä?áóÈ?à,;?Ž²?‘ ê@>¥/@<Öª@Y?ùp +?~ÀÎ???¼Ã¼?²-Š?Yï¿?sµÌ?åU±?ÅŒÚ>êŠ?öÐ?‡¸?sÜF?;N?ƒU“@u}?üO?è92?ò¯Y@ñ´?ǯþ>Îð{?V¿Æ@M?É®|?èá?Á @Ê?@|@Wb@K¬@ ùã?ñò´?¢¨õ?ZBV=ÿ_ì?(†¾?¯×?–Ê‚?€öL?2ñ]>ˆd?‚Ë@Þ–@ÀD@%hs@ Ëú?î©?è’s?ä4Ý?‰Þ¿>ij,>êX=™ñ?@!ó?¿>?¼> ?»ÂÈ?¤§N?”„m?´‚?Ϥã?Òy?ÔŽ¢?ìßO@VË@ þÈ@\Ñ?Üÿ‡?©)¡?[>À>†>|FE>‰Ó>†±l>ÈÎW?³¬~@ô@%˜@6ÿ +?ÏR?õz?ÍèÀ@#*>?öÖ_?»*²?ÔÑy?ÝW´?Øe?ÒÑ›?ÚÔ?ã»?®Ù?(x?œZ ?²ò¬?Íç?è?ÑVB?¿Û?¥­Ä?‰ ?›¤Ë?¶9_?öÒ@wï?±U:=Ë=\?Ì¡’@X‡K@>¹3›?–Ñ3@`ø?ÿ|j?Å~?˯¡?ãÐ3?´uN?/6²?‘Ââ?ýlØ?Á‚Á?À?9k@½@3 ?ùp?ê­p?ÁbŸ?ìji@*Ùò@j…?Žï?>ˆè?zÜ!?¿·0@Tž¼@;1x?™þÛ?ê?¢ùÖ?¥a@ +Tû@€+?a;?_j6>Þ|>ùV?»æ?»‚?î¹B?åØÌ?½_u?¼^¨?®µt?¶ÂÃ@ ä @)VŸ@mub@z~¡?ˆÂ[>ú—‘?žýS?ÀF—@6–@ +`v?ÓHš?»’G@1d@Z8Y@øÃ?ïÈ?@Ò@ .n?™Š•? É.?MÚÎ?yS¢?™§‰?ºÞ?„@|>Ïd?íê@(a@ ™@hc?á_æ>¨ã)?ººý?ž'7>Ž½Æ?/`@!@úª?¦Úy?¤>è?µÂQ?¥/?³,C?§jð@‚v@%­M?Ý w?Ïò*?—K?µ@=Ö8@tÆ?öÉÐ?vs¹@˹@8±ž@*Ø‚@íÖ@zÕ@­ù@þ??Úk#?â±ï?õèÙ@õL@Q:@µŸ?ûnÌ?÷p?õ$“?ößd?°F}?¬¬?^C.?P ?¼"s?Â-î@ Y@ +@ +Õr@ §s?Èÿ‡?š +E?¬–?¶‰²@Ýd@5ºZ@ž¾?½>Ÿ?º,Ö?§¦Ø?›è^?r…J?ˆÜ@Ã/@àA?Bd +?IÑ?ÁˆK?·…X@_Ö@‚ê¯?í^í?}:9?Ýë"@sm?îd~?ß—µ?²Û½?p G?”I”?Ϲ¤?¾G?Œå@?Ÿ÷é@Á5?ÿ‰×?…Fð?tqà@ `L@. ?îZz?ÐøØ?®}?¥ˆj?£ +?‘”A?Ùü@(…á?ö;ö=ÇQÜ>ÑÒk@ e@x—?g³‹?_j)?Îï?ÎÆ@ +/ƒ@Ô@Qµ@ ‰¹?ƽ?‰fx?²=Ñ?æÖ?±Â¨?mA?61á@p3@Z5@¡a@Ók?Ú­b?ÐÙ÷?Ñ¢¼?Þmâ?¯»—?T0K?HÖ?w‹é?†ÑÀ?¯½›?¦ ø?Diü?gIÄ@+”&@)í~@ÀK@'*Ã@*õ@#l @ÙŠ?àIb@ s@JUf@Cjë@3y@%hX@‘?ööÿ@š[@u@¬Ý@bŒ?æ¯É?y|E?²¶Á@Ù@ +[¬@ D²@ áO?ýÅ(?ó÷Ý@9}@I·@eé@~“p@Ré@Ì€@fð@ð +@(Ü?¬O—?¬?•?â­?öªý?ÄzÅ?«÷Q?ð°n@Ç¢?þÃ?«²?³u~?éÃ?î’é@DA@@GõD@Í1?ä_˜?¿™s?¯Ms?Òê£?ójŒ?ËšÆ>ü•?.Ã@"Ñ„@"Æ'?磷?Éu$?ÎSÑ?Ä—?žã ?:=™? æ?¨ÐÝ?µ‚Æ?Ñ:¡?Ç6ë@oµ@,‰?ë62?Ãûk?¿9¥?žÐ7?»A@º @ å@’)z@˜&@ ?š…™?«õ?³#ÿ?¢þM?’Òù?ƒ5o?iÏ7?jqÊ?N ¡?´ ?¹7Å?×Ø‚?ºG³?¦›°?ÕT?þÓŽ?÷Äp@ ·[@{?”ë€?¥½\@Û@I¬?ÏËo?Ž;?Aaƒ>ú“þ?d;R@ +x @ð%?‹Â¿?€5W?Šo:?uÍ?šë?‹?nŽ°?cö7?`Þ‘?>ƒ®?>®ÇÃ>ãö÷?71¥?Cv>,\ó=3¿!>®½?‘þ?ÜÎ?›}?GuK?ffÃ?„6U?¿ ?­°Ô?iÒó?qi¶?¨n?¢IÞ?õÑÄ?ñ—?‹þU?k÷/?òÍ@ëa?áu4?² ?«ÏÕ? ¦9?6aî>ÓñÉ?–)Z?PJÐì ?« °?–‹Q>òp²>üŽ ?'Ý›?#ät?®?´9[?u~9?v}?–|Õ?ˆ¯á>„½×>›gw?¨Z°?²SØ>ø†õ?øŸ?dä¬?YÁŸ?˜–?œ*?QÃÿ?W“¯?„?O?t¼'?Vî`?,›â>ùIQ>!‹>Õµ·?=á|?œÒ>Ð+F>ù€=&A¤>ó½"?Ð?¸ê?&1?tµ?:à?ôh? ¨Ñ?$qy?0´?!~Ì?‰?ì?aí?§¾@?jom>ž R>uq„>.=;D'?­Û“@UÝ@?Þ™<ç£Õ>@]m>«a?d©e?r–š?—ÖA?¢s?4Qä>òç½?ª%­?ãÉ6?’s}??’?în?ÒûY?Ÿ?(?Q‚®?4½#?,?|xÌ?ä…µ?°ª>óé?6½?t Ø?“É?íʦ?Ä&W>Âa?¾{5?¹ƒ">ô†¨>ô“3>ô¢Þ>ô¯>ô¾×>ôÉ?HE?Nò>†p>-É?“­È?·ØÝ?èw>ˆ"?é‡?3ªœ?an#?up2?7ë–?RÑ?^Љë>È?¬?<—‡?(c„>È`Ÿ>×·¡>öW? œ?v9³?jò?&ñ?ˆc?vD„?rð >øÇ>öÉ=Žn=lØ„?ôA<@4¡>ÏžQ=ÚJN>V‚’>†W?TJŠ?zÏy?Và˜?HØ¿?}Q>Òç(?së?´07?8gæ>ä,®?w?0œ‰>‡?DÑ?Õi™?èô9@ó‹?ó,»?­Q±?Á?!Xš? +R>³¤>A¶h?xB‘?~Ó?¹é‡?¸[?¶±D?µæ?…=Q?…!p?hXe?`@N?!å?Ý«?˜ð†?§Œé?¶ d?µ&?¶èX?ºçÙ?¨n¨?M¯?AÇÕ>é4?›©è?ëñ?–”?‰?8J·?yÊ"?0©><Ò>‰ +’?˜?z!ª?ßO?·tu?¹Iú?9V?¶Ð?)Qc?RÀÔ?BÓœ?Äê?.B>Š»r>Æh?§¤?š‚\>˜X>’¶Ç?A™T?>Õå?¹ +¹?¼®>?›¼?—ã=â7³?§©œ?ÆÇ?_§¨?D ?!È?˜?†ÿ?¨N2@Xç?½ÈØ?–yˆ?ÃϨ?á߈?¼üJ?ž¾8?‹+ä?o? ?ô#^@9Èî@þÅ@)¿?Á`ë?bbV?-u>þJ?U¶Ø?¤^8?u«Y>þŒÃ?CB?úz?®|A>ó«e?bì?¿2ž?´Äå?Ÿ}H?²†F?ÓšÏ?—V>>ÿL#?AHÂ?’Ðt?n§ä?B)?K_ö?žÎ?ÂÞ!?öË£?°Â>ÿìƒ?š˜£@ ·@ +'?Êrq?ÊÝ ?À6å?ŸÕº?<4Ì>ûRÝ=Á->aÑj?S?„¡"?þØü?£Ÿ0=?æÏ|?–‹Ô?–½?BX?¢Ë½?Å°™?…­>ó¶?y´?5ÌI?S¡x?€ì?‚&Ž?Š'?‰t?»?F­e?“?ŒÆ>?èÎ?»¹;?ƒ}?Âì?‚÷ß?Béü?C?eÒ?(µÉ?›šP?Ën?ÂÿÄ?ºê?•Åä?p5?ãÔj@ ÿS@?Ó?í¦w?ͳã?ÂX‚?¢?6z?¼q„?ìèÑ?ϾD?Â…¸?ŸT?ï?¬2¤?¸W?”òÄ?‡Ö?Œ"?‡ªÍ>GµÒ= (X?© +¯?É%l@{ø@ÇŽ?ûÖ?õ]™?wâ°?^¦š?Ñf,?ÙÉO?„Ýx?‚Õ*@eõ@u@"˜Ö@ò ?ècå?â1?‚ –?g¨8>%>?^¡U?R7Ž?EËb?mX?ç÷Õ?Ë>÷?®?x[?Lä? mƒ? ]?„9¡@H¡@ 5Z@V@³@vë?”CG?VWÚ>¬)ß?ø[?k˜Ý?n'?¥a?ù?GÃe?Ä*²@üF?Ò¯­?—e/?b‹2?&&Û?ºW_@Ðn?¿oÎ?•Q=?Œo?‡£@ä@ þ@ €0@Ų>ô@=ñ%v?T?·Ùz@ÜŠ@ +læ?¼zd?¯Z0?Õ ±?ÓÅb?(2C?-I?¿”[?Ãhe?‚g?…Û??¨? Ïq?­Eú?ù1? #¬?{?9Å?›k?â™H?Þ@©?¶ÜJ?ŽÐ<Žý?@Y¹@ö|@ÓÔ@U¤?õç¬?ÝÉ”?Ÿkv>¾¤«>ÌÂé? ñ?Qù?´?Š¥¿?†DÌ?â†?{´?È Ö@ù?ôÝÎ?Ø·«?f¦>ÀOd?*Ÿ?4—î?³‚à?ë¶?*n¯=q-É>Äy°?Á®?iÿÝ?ŒhV?'Q? ‹?ºÊ¼?ß,?†ZB?^ñ¼?-¤(?7ý<>Œ »>[Ñæ?²Vž?ÂÞÈ?åC¨?ïH@?Ófº?ɺú>»”Ü>œnÕ@ýÖ@ G\?ÏGµ?Ñ¡L@@L¹?Æö?½­?°l?uìÃ?på?Hí?1?"õ8?Zâ»?Š‘n?â`a?Î(Ë?ª#í?À­?xµ?ˆŠz@0jM@Ñ?ÜÀd@x¥@Mè@(ø›?°³?¹©@?ÐHí?µn?cˆ?Í=G…->JPâ? ?GÏ?é§?‹N? ?Ÿ,Ï?ÂM1?ëΧ@Üâ@j'?Îφ?wðt>rÁ»?—Õ@xý@5©@agß@-ŽÜ?è)8?²ê…?€¶{?@Ç?£Ö”?¾º?n¤>öý±Rá=Ü·¯?2ÿB?‘UÃ?PFð??J¸L?|¥\?È™K@4@ n‹@ Õ—?íõØ?еÕ@Ãÿ@l1?æñ~?¶ÇÔ?Ñ-?Ü_ +?¾ÏÒ?²?Ûž)@Ò¾?ëB„?Îä?¹)~?«»?u³a?À;>‹.,=*F_?sô•?ä{ç?à3‹?î"Ù?åÇ6?Ê ?æ–@ +Y@'¢@wÊ?öø¹?ºÑ?Ššé?6ä?Œ0 +?êçÁ?Õ­»?¥WÄ?™¨>?$ë?†KH?€#è?öŽ?‚KI?›(ï?Ú"P?ÛN–?¿µQ?£J?R”¡?›@3ˆÍ@-³ð?þ?ÿPd?ð³‘?î'¦?ªÔ?¦0?L\Å?2Mñ>f^b>5‚Ç?~©?ƒÀÄ@8˜@5Ó?Š©Z?ŠçP?|™ô?zû½@Âz@ +1@A¢@ ò?‘e|?b%ô?2}?#ew@È@!¿‡?á‘’?»ŽC@!zC@<:ý@añ@o,æ@Ol?ÒCQ?nv>²O,?Vˆ÷?¢ç&?½Æ,?ÚÂø?£¼>?EÝ?®Á°@ìî@Lð@J¸?Ö+ï>–ª?z¾?÷óï@'*@^×ó@O@9ó6@0‡ì?AD?•â@Å @ +]œ?ûzö@™(?ø©’?÷&Á?/??`3Á?®ö²?¾ôñ?¹ÿ–?¼XW@{@*Sý@!Ë°@ æª@è©@ãò?øžŠ?Î!û?¾Õÿ?r¹?›l9?Ž‹Â?ªÕ¸@ +(@á@ùˆ@ìe?xjÑ?‚¬è?‚Ð?…K?uŸÅ?t\?Ûø?г'@O@&˜ü?èUø?¸ëº?†óø?L1 ?„ÀÁ?©ç?Ì©?óûØ@%he@_Ñ«@+©w?ˆ\/?¡,ë?ëÕ9?êŠ@×¹@z˜?‚)?m‚x@+ˆ@;Ê@ B@íR?Õh?²KI?šV ?—mâ?²ü/?Æ—£?¶ô ?šÈÇ?ª†—?Õ­?»îE?Õn?Jž‰@#^2@)-Õ@M½@å?ÇÕ?ÃU;?Á±Ù?Ã+ì?¬=ê?›Pz?¥QÈ?¶ôŠ?ëKZ@ûR?êÚÚ?%›?tÈ? ãU?c?m¬?mŠ×?äâ@?íKý@‘E@k@@'÷@7·‰?÷¼ñ? +E@ Ü@gt@Pm,@eî@óõ?'¿?HÜI@Eôy@Dœ_@=š@44?ËÃV?ŒSš@ÀÃ@Mnâ@•¬?ªa©?Ý¥þ@,l+@K?T1É?KSò@è@ð‰?™¯b?x6!@¼Ô@;yú@ Š‡?®»x?®=?±&9?Ü5«@2û@5C@9(@4i*@&¨ +@®–?¨?g¹%?–î~?µz˜@¼&@fO@Fñ?î¨?Åê@oè7@eîÈ@AÆï@=:Ä@-Dè@$üâ@YK¢@ŒÌÆ@o(Ö?è&½@Ö@v þ@e=ƒ?„Y ?[ ?ÓýØ?ì×F@Ø]@Û2@ M?²XD?¬$ç?±Ï÷?¶¥Á@Xr@#Ç‘@ +?L?þ™D?Æ/?Š°%?ÇCt@'ÜØ@Ö=?Üêž?ÍÑ0?Ͼ3?ß »?Êþ?Æ<5@$—@!²@=a@mãv@IQ <°&ß=ó,@¢0@@4€'@9ÚÉ?ää…?lëÕ?œ£'?Ì‘?ÕŽ¬@aïž@\}@ è@XI@£×@?ýò?òî?ý°¤@Aå@5 @)-Ó@ø€?òYà?Û‹û? ˆ?RŽ?ƒ°Ï?aÛ:?Êîa@;‡F@-K ?®¶6?º`#?ôâ5?äF?Öfv?êžW@ T2@“o?áòØ?\7±?KZ?!?X†\?«ƒ+?«”Ò?Ú¼Ø?¾Ìþ?È£¤?ÚÎ?„}l>çç«?IÃd? öŒ?¢ß?ªe?ˆÀ>æ®n>æè£?9ƒ?$?Gúh?Z†?Kû>è8±?\Œ_?®…Ð?µEë?ÌwD?Ǥ?m³q?oÜè?¯À¶?¯úƒ?Ù'w?é Ã?³<^?™[‚?äý,@ º?àn.?±þ ?›¥)?ŠÁ?\€>ÕÜ?LÏþ?âV ?º6Ý>ì‡? Ï?µ ì?©øÿ?? 7?8 ?sUv?té7?‡®?w4?u`?uó ?Ž60?•¾`>t‰¸>*µ'?XÉ€?kó<´té=;œŒ?új?'-ý?6~‚?=Ék>¬û¿>èô?túc?Uº >…>—ÑB?3Œ>þ@ >Í@s>ky¹= Õ½<¿8v=u– =YÕð>àü.>ò·›?)ú9?(‘Œ?Œ¶Z?s™ ?j5?at?Ôý>¿\Ú>N›?-F‹?rö3?Š?¬¶>x8â>ßéF? Ëö>Ñ×>Ï?4<†›O?utâ?åÍŠ?³>ç?‰ŠB?%>*{Ÿ>. +T>wô:Q?K¿?"~s?&¶?*øû?w>òõu?€ +?šóo>ɨ>³ãp? 7ô>jlÁ? +œª?ƒA? +œ°>F´=>óé±?$ñP?tF?10=ÝÐ=è`>Ùµþ@JQ@ú>ôŸ>ô‹«>ôœ>ÿ^'?—/É?”•Â?!ñ‹?"´´=ãß?8¾[?`”¨?€ü™?~×ü?s>ò©}?êŠ?±×C?"Ñ>FYû?J« ?¢3¢?H1Ú>©?2{?‹0?#%ï= ³‘=¨O->Y|? +4ý?ž?là,?‚±Ì?µ\ ?°>‡?v\?d‰Û<ã° =Žœ´?¤ø4? {t?IQª?UM/?‘¥«?Žà?°ÉŸ?°íÔ?’jØ?!ˆ?†˜?wi?2O¥? (½>úó´>÷ED>M_À?=çP?®,?_5>>¯„o>}wÚ>ue>ý¾?‹J’?‰®›?ˆ Ñ?‹dþ?Ÿ•Ò?¦?Á?¯ &?ª}?€]ž?k^^>þSQ?ã!?ºQ ?¶9›=òßì> >/ö>Jüf>ðí>øË}?9Íé?JÎù?t‡œ?ƒr¥?k3Î?fÉò?GÐ?š±?†Å:?y_?±ôb?Èš? Öú?¹€?’€O?ù?Ã=êŸ5?&6÷?¥@•?™ÿü?„’?‚Ï¿? Ÿ?Â?}Øâ?T«Q>úr–>»Žr=S‹~>½†?z®v?vCœ?^üG?fVË?‡wæ?Š‘(?Ñ0?Î8Ç?Š‚c?ƒ%?6ó¶?=‘Ô?ž?Ÿùœ?¡Ýj?£Ä8?oÅ}?TŒC?Hå?Dü>;ûÉ=Üò÷?3†+?SÜ»@ÏY@1÷>ÿ_‘=$!?•¸ø?¼\??Œß¬?|¬D>é´ó>¬«ÿ?%[?Iƒ?Qb>¼Õ?¥6_?æ Œ?¿æ¾?¦C?zÌÜ?]ïþ=`>¾P%>Q¨>´©ï?ý8>£ùC=#>vw>þ¾>¦Bß>!àø?cê?Š)?I©£>é+?+€™?ZG?ŽÆÁ?¿‹{?”bÂ?4{^?Uÿì?¦k?™Ïé?ÍŒ»?¾=w???½´É@ +/@?ÂB??r¿Ž?Îö?Ü0:?öe]?Ë•˜?†B·?UV]?j6?5R?„-˜?Qô9>éGô?g§?Ê—Q?’‚;?†‹?5˜Ú?‡Èf?ÂŒ*?ÿóË?Ït§?š•_?É+„@Á}?¸øÜ?Dª3?.^ž?Ó›?äÐ?'÷h?E!>“ f?ø?e$|?Zq??ƒ'>òw#>L*™?c~©?Ä–?Â?À›?,0>=8… ?SO'?®OÄ?C†á>Ýð¨?¶zI@`?ÍÌ?¬!±?ÍzÉ?é» @`@¥t?ëm?ÂS}?½%i?¶œ?ˆY9?~^D?Ât}?ÔÖÐ?ÒÑV?ÐÏ®?‘ô?¼\?¶ic?§Ñ@2Ø@ B@þ?ûm@Oo@VÆÅ?v‘>Ï,´@,²@4mŠ>·?/>”ÉQ?Rw?\Ì*?3²?Sëü@XµÉ@S,¯@2‘5@%—n?_ó?o‹?‚;?x€?×ý?Bƒ?å_I?ñâW@×Á?Ò‰ =å¶þ?Tè@6š?Þ>Ñ? ?V"E?AÚ?šÐ @@®?ÆÆ›?›´¥?& Ï>ßñX>0nƒ>A*[>Qî÷?=…0? ÄY?y»??q`?‚÷Õ?œµ?IJ?\—?„<Œ?¦EÇ?@š>ÛØ?Õæ@ é8?É #?³®f?>ê¨?Œw?ªˆX?ÆÒô?¶æT?­5Ð>¾“¹>Œj?G¶I?b-@ &Ë@Χ?ÛÐÿ?Ûö½?,¯?%z>öÙd?­?H¤©?j؇@ 2@Ñ5?ÄA÷?ʬ?Ñ-?Ë]P?œÏ“?†N>N‘ì=í‡f>'Ë?.µ?½G@"è\@ ï?Ì7??òÝ–@ÍÁ?ñþÛ? ˜?1&?-tÚ?AÛ÷?j¾˜?Œ'? ¹H?ÅUÿ?á˜4?þØ;@u?øðÞ?îæÌ?Nqù>›¶?b¸?©ã?c·:?#f?‡¡—?•<‹?µR?Á´¹?ïš?ùå“?Md? *?×Y?ö6?æ€?ßx@ v?ü5’?‚Ï?aBw?›ø?¡Ìü?LFG?J®m?Ø0?å„×?Ãmy?º&y?ˆ?…ò¾?݉u?â°9?Ê´K?ÎO@´¯?ó?«Š?p†b?¡r?M’@ …?ô_è?epï?¦ ©@8‘Ì@#ò?Â<2?Ѷ]?ôÌØ?÷2Ê@õ@ +h¬?Íh?÷]@+_@ kS?Ng?oúè?0=§>Ê2ú={Èw>õÇe?ÙÜ?Wiö?#?£þ€@Ïv?Ë*»?Y™?`h‹? Ü˜?­úÁ?¿?Î{§?Úç™?hz?AŠ@jÿ@&eh@<Í<@0@)@ í2?Õ:[?d*é?ά>R|=è +Í=™;Þ?VÓ$?¿°a?ÚŸ‚?쮡?гÇ?À¬Ü?À¢Y?Àœ_?Ʋ??Ä«û@)F@.~ ?Ùúl?€@ ?Í q@ D«?ØÝ—?¨Gc?‘¶?€ë?mbò?R‰—?åk@Õ ?纘?¼l{?šØï?¿m?§ËË?ƇÌ@n@9¦÷@e0?¿Žü?‹v/?`.‡?OÒó?6ê +?ÜB"@n‚?þ¡¿v”?:òÖ?«®?ä{¬@F”@í?ö[?åg„?¿6Õ?¨ÂQ?|Ùù?²ò?@@p@ ;Ô?ü’B?òä?Ò2Ž?ÎË]?Øy?âI°?ùó©?ãÀz?–™°??Vm§?p]t?ÈI¿?Ö±?ô¡?ôÒ?¿ßô?½u¤@L@¶ ?ùš?¶?ÖCæ?ÓÐm?B8?L£K?ØÔ>?Úy@?×#¥?Ô×/?æ'¶?ÛUu?Žþ?z6ú?¬GÊ?»ˆc@J?•@xä‹?ÙÏ-?K/‹?€%?ˆ›Ù?Ì‚ã?ïcÈ?Î$Ì?ºï?¦«x?šZ?’š?.߶?—U¹?øÃk?ÖÏÆ?• Û?ÐäÁ@4fÎ@'Ö?øP?ð!Å?Û€«?à·y?°Ñ?»©o?¦£?¦"D?÷?÷vR?º|ð?¹vb?Þ Ÿ?ä?@×ó@+n?êPT?æ~f?Åè?¸æ8? h>¸‘%?¶–Ò@YQ?Ÿ¦?*Å?üÆ>Ṥ?È3?Aû?ˆ`Ù?ËbM?ÇNÏ?¸8’?Ó}Þ@F†è@AtG?¶Z?¸¡e@ nÒ@ ¬?!ƒÔ? ?Ïq¢?Ún?ìÒ?ÿ!Ò?Ï ¨?Êy‡?Ô²¡?Ù3ñ?Œd?\?ùÛ>ÿ„¬?R?ªë;?ÆcÅ?Ócú?â¨@†9@¾@‘2@ ›?Ûw?ß"&?Ô('?˧ñ@Í@Qñ?Ó“Á?´êÇ?¯ÒÆ?©À‰?–?‹V?ŽÜF?’§Ì?Ùü‡@(þ@ {q?Š3[?ŠE?©žg?­Ó¡?æ‰?ða˜?ëP ?æ˜7?™) +?ˆ-e?1,?²Ù?N.?n’#?ê¾*@:Щ@‚Z?²’9?¿Ák?ó$^?à?î?-h?Ul?ã<ö?íBy?Ò|S?Û€Ä?¯Iw?ŸÉ[?pO?Ûc?щ@JS_@#åZ?mýz?ƒ©¦?¢º+?š(Î?îÓ²?ÿÍÐ@Nc@[ù°@Úx?ÆÀ@ 5@2üŽ@ ʼ?‹Ôß?QFå?Ó?\ß?Ò%•?ÉG”?ÃéY?ÈPx?šÅf?ƒ´@ëê@0Ù@̃?µT×?,ñ?kxð?iÒ?Zð³@*DØ@,Þ@ ìÞ?öq?âÇE?ßÌ?ã9—?ãC€?ãW?ÀW€>ÿÛŠ?ªš@8_k@2Ã4?æáb?½…C?Ŷ?Ö$?˜EW>÷á>ç«{>äcT?å?«zü?«,@1O£@>Ð?ÑrZ?š-C?T‰ý>å—s?Šÿ€@‹÷?Úåi?{•?•± >æ É>æØð@@L@bÔ?löá?pù?¤n¹?ÏŸû?¨ƒú?•g[?Ž½3?i)¤?z~›?¬£µ?±+@–´@h¦?µ5¤?°gÄ?™{Å?¬8?£!e?‚@p?q +;?}Ù¢?z¢@?mû ?ƒ™ ?3*?“'"?¨*7?€;0;çŽp>Ëfó?ã8?Å0>ÛñÓ?O§?Œû?ˆâ2?·,‚?·àà?çîæ?ÚJü?IÐ">Ìph>å2<>õfð>ÛË–?ÔW?ŽNÍ>üç>îxc=m#2?9?Ut>Ø•Ÿ>¥Û;>LH >Õ¯x?TyK?0¨°>å&‡?¼3?³îs?zµE?1°?n0f?…Sm?—Õ?“Œ»?¾€ú?¤v=¬Úv>—×?³û>ЇÇ>´WD>†===Ö ?¸?$?RÍa?CÓ>ùì=ØV?‚–í@Q…@ð9?º8á;« +5)>Ë=Κ»=>’¦ëÓµ>òòê?%É{?)Ý>^‰©=ž»s?$„?Tq.>»-==°/?”þ?ó¡Ô?^ù±>m¥?>óÞ0>öT8>ýs9?Rd¡?¨´?“ID?W9Ý?åÕ?þæ?Ö¶Y>ôr6>Õ’Æ=ìÃ`>:œD??ÏC?Qç“?¸Õû?´ê> G">•(š>ëã¦>õÆ?ZZ$?oË)?¿?%? ƒ×?À<`?& >–L†>ÿç»?!‡>ºŠ>{¼?—¹?Š7{?"Žµ=Çë>Å8>õßù?"i­?hŽ¸?D¬Ñ>æó>ìä˜>òÚS?cÅ?vAo?Q©¡>4»ê?ï?èæ¢?a¢ú?^ôG?·' ?¹÷“{?<˜³?>„?œÝí?®FØ?vO>->YüX>÷ý¿?Rü½?öwy?÷ÔX?ôx?×í'?•(?ò?Xh¢?M# >ÊÞh>Åø—?›ˆÞ?™j×>GA™> >é&Á>øêN>tð>W‹Ó?„ÿ‰?œmÏ?Y5­?@‚û?ÀJè?íh?WÂ>¤¢?Wªà?—P?^¨?‚+?h@>ùØ­?x{?»{"?¹(A?·ð@;@:ß@1_>úYb?É>?^ôþ?°W¯@&ëk@ Y?z¸·?€°¯?>b?ˆüÙ?Sp£?ZÑ"?b7?^ÖÞ>û>? dÑ?›ó?š&?˜U°?™P@(Œ@'Ô??ø›*?ðÞH?*®V?3l>Ç%G>ž5¹?˜M?œÑ‰?€é +?|S‰?çTÚ?ûCO?ÆG?¸xà?~ص?Y¤A?ö¿>üÚ~?«ÎŠ?ËÝ?ŸT,?’Ái?”´Î?–¤B?j_>þt=¶R»?Kº³?¢`a?_U?;º?L±>?}é?™R¹?®*·?p¶Å?‡?–U?Ð?¢²†?~m\?Ýu¤@Ùv?ù×Â?¹5D?3Éê?4¿î?´€3?i]>Ä•?X}i?¬ÛJ?´ƒ +?¿Y?–¢ø?J©R?ÐÌ>ò¿U? >í!?>Å?˜÷?Žü?}9à?:«å>¸°‚?`‹Ž?È•N?¾¤I?¬SÍ?¬Þ¢?®WP?šþî?|{\?œ‹?¾‘@IjÀ@¡Éº@WI?À¨v?¹¯?eøT?Eü±?Â=Q?¦S?€©Á?‰Ã?šM?±³•?ºF¨? O6?„ZM? A ?³¹?¦Œü?¥Ô§?~®×?:½Ö?¡ec?âÊ6?ö¿?@>@uM@}=@mi@R;?‰×¡>ë}Ã?°ºº?ø»!?wa÷>ËA•?4®?l¼?6?—ZJ?¥¶?¨8@ »&@$R?¶*Y?…Á@†i@D?[•]>³•š@i}@44?ÿ µ?õ â?•½C?³ï?¹=?ž5?Æ5 ?ij?‰­>?†a?•¤N? Ú•?iàå?Z„Û?ã£Å?íVÌ<|ÔQ:ÆX@>$ÁS>[¿?RƒÓ?azG@u)@ wS@û4@ÇÃ>_R¯>†ÔÆ?$þÇ?]ð²?Üãÿ?Èád?e8‚?¡ Æ@N±@¯? i?«Q‚?ø@]@Î?£¾”=)Rp?ôÀ?ž›ñ?Ã$½?é;?ÇY?ŸÊN?x3‹?, o>óÝÚ>›æd?/½?‚M?‚Oë?‚Nä?˜šà?©^?N–N?T?ß¹Y@W ?ì{‡?ÛOJ@%Õ@9òN?Oõ®>¢?i:¡?†èç? ú?ú ?ç%?ýVö>MÏE?üU#@3ú?Œ/n?‘‘Á?;³?~M?©=?¦M§?‰“›?†þù?¹«Æ?º8?÷5í?Þ¹?X•F?9ÄÜ>¿œÔ>Ñcü>ÏtØ?ÿ?²&v?„0= H <Œ};ÙhŒ?8®?Ì!²?á5b?ûãó?ì³V?Ýk³?¾Nþ?“šJ?Œ„î?‚<à?ŠÞ[?7W?†Mí?‚5?”¢?©xX?ÛÛ‡@v–?Ÿý?˜.é?ZÙ¾?$cQ?öS?‹‘?™%a?ºÖ½@:-e@]Í?ÿ=¿?Ã#É?öº@`?ñÛ‚?ç…ü?mÙŸ?U©K?ò +Æ@òý@iÓ@ÃÙ@ yß@½?©r{?¢ð?ÚÓe?ÏÂh?Äqþ?»»¾@Xú@Ô»?¤?§?µ?gRÞ?pk ?ób?ù®q@u?ñ@T?¥À?€ðB?wüÑ?€¦? ,?ªñ?³~p?« ?¡ÔÚ?‘™Š?@Q?Gú@@@É?bV?Št?œ +O?‘¢n?O—?•±‡?µ3h?ú@B§ @ m?0wÙ?Üž´@Z&À@*l~?¾p^@­@[ƒã@Ì‹?á?<^É?€úC?Vs?*V?Šèâ?ÁT¿?—7ú?L–?ÂY[@m†@"ùq@1‚@ Õñ?àP¤? µ˜?;g?^-?€£?y“K?w™Æ?£­X?ÀÆÈ?Â…K?ÅÑ&?¢ÿÞ?Š{)@ž@*?éR1?¨ev?î­ó@J^?ñ2É?ÄMF?Ñ0»?Ðø?»l?¯ë‹?o$©?4êÚ?·z?ò[|@[f8@øä@È=?†·Q@ žÊ@&Ì@-»S@%ºÚ?΄›?OåÆ?§n«?á»?À\Y?›ƒ,?“lm?‹Lã?¡3?€h???0Ú>þ/½?IÕb?‹$Ã?>Lf>·¯°?%²?Š;?Ô/Ã@ v?Õ1§?t(b?[ã–?MãN?d?}R?¸ý®@ ]Ì?õ¥ +?¶Ø‘?ÑÂÌ?üìQ?ú½—?ôiu@ù@è?üUÕ?[·…?¦öú@s@ ±c?á1«?óTÜ@•Ú@ïº?¼úØ?² t?mÝ?^ìø?J>p?Fâg?ò¡0?ê8@=ÜG@4À?ÁQh?Ãб?¦ªð? ¢Q?ž´‹?¥©?Æ«¡?¸B»?ï‡O?û±|?Ê0¥?É-@ œ'@á?»’?•Ûí?¿ñù?Çèÿ@ ™l@O?ÞôA?¯sË?Œé1?y€·?µ¢¥?ßÔL?Ÿöo?_i“?wmE?yy+?“œ²?® ”?Á¢?æCÂ?ébá?ìƒo?ï¬S?òÐÅ?åUª?ºßú?¼ÌÕ?º³?¯Œý?wÙê?{³¯?õ?™ð?÷€¬?÷® @€†@iÃ?½~?¹Kß?î%¡?è;?\º³?(I?`ª•?y;Ñ?Ú1?Õ·Ý?ˆ°&?TÞè?sÕÄ?müX?5Àc?õ ?Zë?.Y*?–¿@+@½ @P ä@-Š…?Ú?6~•?ó¤?è×?”Óä?Ÿpv?V)?M6¥?çsà?ô‡?ô( ?æVÀ?2á|>ž»%?c™d?’Ðv?¯?Àá3@ 1(@2{Ã?ûJ?rÍË?‚ ¸?™Ðä?œßÃ?›W?¯Ù×?Ót?Ðh?á5G?Ù‹Ø@ªx@Eö?ãã?ÊJ@4èÒ@JôX@!19@ +åŠ@ª½@ Å-?ëgF?ºNü@ç]@[ßÕ@?š?¢¨? 2¡?oÏ?jô³<Ò±|=IF€@1Æ@Ç@?âä±?Ì$›>ý~H?a?nˆ˜?å(é@C±£@(—‘?¨’å?Ìß,@-Ú@,%`?Üõ2?Ј–?À'H?ÃÆ›?þdð?úó0?™ôü?Yp«?›Œ?·Á×?óës@-5;@6Y?±ö´?¶&,?ãƱ?áðº@BI¹@7†@¢@!‡/?½T)?—kç?â2~?ùGþ@ü @Iœ•@ö=?>œc”?éô5?éÓ/?Ôa(?ÏyÏ?¶Ùt?ºŽÚ@C­U@wÊ@?&³?ÿÕ@Q@ ÞÍ?Ý «=µªÎ>.­?è0o?èX?ÿ#“?õÎÏ@¤@@ÆÆ?˜1š>'J?’'ÿ@GÉY@9~?@ +~6@ ƒú@Ç/Î@Àð@BÝê@H^@nî@î?öú€?°-B?Ýw @%hÚ@·ô?ÉJ`?¿¤·?Çc¤?ä›?¸q?˜Û?°¿š?Ò%Û?ðL +@«=@  Ÿ?öNÌ@ˆ@à=@ ÃW?¬…™?‰È¯?pÄ?D5>?Ⱥ>òÅí>é¢&>÷Ëq?·?àtÀ?Ì(~@  @'±?Ãã?cn@€Í@–Þ@€»þ?xͳ?‘5¿?ª_é?ªXù?½\?Ææ¤?¾ØÑ?¿žÓ@×¾@_e @E»?®%È?¸°"?Ééç?¿9`?Y½s?)ÎÐ?‹wû?¥¾Ý?‰Y?bðh?“ +@7ã@ù@#rÉ@ ¹Á@£[@ ?ð¯—?ã48?æ·Y?çÐ;?ÊóÇ?Y5î?Tá~@ +IK@Ç@}@ŒÙ?×”?·35?­U?©åË?¤&?™ j?–2?«uB?«„B@L4@A?‚rì?Ñ?u™0?¦Qœ?˜ÑÙ?Ÿj+?—ƒî>õÛœ>É"÷>晡>æÎ?Ü™µ?èO?µJ"?™»H?·wä?ÚÃá?—"?? 2ê?hd©?«%?hµA<š)>MC?šÔ ?®¹?ÏÓü?ËQ‡>Ž~T?èħ@.HX@ nz?Ù_?ŒùÒ?%W?Nÿ?…Î?Œ½|?që?6z>™K{?Ävð?®‹%>#O?ÙZ)?ÊÐ\?³qæ?µ¿%?-Î*?X…?Vtÿ?s4´?`TØ?…ao=ÝŽ;<È€K>ô c>úeL?èe?”²È>üRð>÷ñ*>‚òQ>dÄ›?{ŸÝ?Œå.?Ü¡Ž?¥¿Î>”*:>ƒ×>¬ãÏ>¿íÓ>BÛ>ŒQ?"›Ñ?.?4'Š?Dë?UØ¥?ž|?³{= +­Ð>íe>Ûëð> Ño>nKá>¹Œ>­Üy?8‘.?d¸?2r?!Öá?ŒVî?gÛå?ìp> pû?§x@3DZ@0ž@ëé?r¡¹?pïÍ>§­=鸲>çÎé>ó*?žî@?«ß0? uá>Ñß|>j=ñ>lK?9Ú÷?s‚½?È^Õ?ð¼?8V–84æý? ß ?qe?n̹?lz©?¬æÖ?íò`?¨Ñ)? ; >íÏ>°fæ>œ¥k=Ø+Ê>72@>´b1>ü‹I?’N½?!c?¤ª[?¤P#?EJ"?@©ë>ôèè>ôö`>o!ß>s->vØ>a„÷?™eÅ?­–-?±u>µý\>ªûŽ>Ÿï¡?/Ö??–Þ?^ >æT>ábÊ>õ·Ð?lï? P¤>øJ±>Þ ß>‘oZ<ºWî<¤¥;³áU>PÆ>þÇ ?gCë@ i@™À?ö_f?âkÚ?¢9?z ?4Xî?;Ê +?Uo2?Pè²?M×Â?JÆ6?+í©?-¾¸?ôò)@3—?•5%?wD?¨Œ3?¹f]?–J?‰˜Õ>؆>¸©?Â*>Ù_a>d#–? Ø?w³û?Œ¼?ƒœc?Sq—>÷ën?D¼Ù?·Ía?º=2?»Ót?£Š>ø<>>Ù—Í>…>Hó>øsù? ðä?ºl›?ºx?ƒK1?z‹Ö?LP?IÐ?[hŠ?QdÄ?g??wÒ#>ÈÖ2>‰Cü?¦Šì?Æ'Í?*ñ>¨¥>Ùdn>ù¹?LŒ?yª4?[„t?;u?€ÃA?¦Ãï?“Ç¡?z ‚?@T¹>þ™B?d>úJ?ƒ¦w?ìë?õµ@ ?Ôðì?,?kú~?Ö¥u?¹{%?OtÐ?;Eð>ûí?èã?‚3H?p—¬?D´ý?}t@@ ¨†@õÑ@ +ëÞ@3Ea@2Ú ?_©?a ??Öu¢?ÞëË@H-I@P³Ñ?™ì?€\?{c†?€òÄ?µ»f?½j@ ª@Š ?N¬‹>üÒ0?ü@Q@Ô?ƒ¬?'.h?“QT?¥Áe?‘*?†…?Z¹?=]®?d³?}›!?iºD?mm?_ë(?U«¯?pã?}þë?~??~!y?Ùx@ ÏK?º^?k¤å>×¾ãC¤?Ú­@/µ?ø²8?¡æ?È]•?ìº?Ô‚?¿x?³}?¥K?†¡Û?H÷‹?ŽÑÒ?» ?…N?ûÒ>íC>­ßÖ>=ï=yõ'=ÝÇT>Ä…»?'Ìæ>²¿=>¾>•O?Aî?ýÞ.@\©É@%«]?ïá—?ßx½?À  ? D@?€zÒ?/V4>¹Œ:?ÊšF@*TE?õáX?§Ê?_)P?´P?„¡›?Èu?Ð?Ø&W@,Ò@`è@ +s?·ü†?Ý›»?ìÅy?“2é?*°X?¨/i?è @"°ô@?G•@BÖ?Ãee?^ðÌ?3?k}•?”ÄÖ?:Ð?JÈ?O=?S¿?ŽœØ?¬†?DÏ?É?åJ³@3Œ?k³’?¨?äæú@ ;É?Ý ?ÄþÛ@»#@+ž?Í„.?´&î?“[Å?‹îÒ?µ ­?¼kº?ö#1?ÿ[î@=Õ@>í?Å0“?¼‡S?‚uh?ƒ–(?÷`%?î>Â+>Æ€Ä?1©Ò?@¹Ï?Ò”)?Ë•‡?­•M?›ã?EŒú?Oîn?9òŸ?¡>>¨>`–?5^‹?.ºà?¡?K¡W?Ã1ƒ?×v`@&j?­HW<ÈF?¢Ï?ÄZ™?mÝ›?‚ ‚@ªl?Ë‚°?S°¸?±Ÿ?òÀ|?ο/?­wÎ?‡q?PR8?Œ è?¥"n?M&›? ú ?_?Æ“?OFÊ?[]§@ ‚V@1nW?Ô‡ ?”B?Ö +?ñe‡?Á<Ø?¸¯@41%@D§?£Ä4?~‚Z?*¨ã?.Ué?¢Œë? Î´?ÛÅ?âúÖ?cBÖ?aßu?«æt?Ÿ&Ò?l-7?€k +?¿ÊC?Ðhx@Ö”@+ +@"ë—@}?˜Dù?|¼ß> +Ø?F?ݼ?²q>á¾?¤Ä?¾B?5]?—Å?3x¶?†÷@‚O@W ¢@-Ž?÷ŠÃ?î"{?áà*?Æ£L?­®?l£Y?¹? N >òå@ †@Ÿ@ÑX@ÆY@Ä>@¿1@=&@"$î@§?‰Ü?¡v›@×è@ël@¢š?ü£>?øp?Ús’?ƒ?‘2º?ÂDF?ë ß@(k@ )»?¢Ð£?­÷V?ÞÄ?Í ±? Á°?ª–?ÂÌ?ÄÇ™?Ã] ?àÃí@?å?õž©?§ Ü?¼ÉW?ê°0?Ã.i?„GD?ó¨Ú@?;è@ìw? Ó9?’̃?kÃQ?taè?€÷x?¼Gü?ïzO?¾§{?šc§?¯Å>?Á@“@$¨@[l]@;uÇ@,9ò?·á>›Ç¤?RqÃ?£Ôp?Šž?mà»?/Ò?Œ»?‹c?ÀŒá?À¹€?À°t?»Ö?¶€Ò@7Ì×@q§ý@Júz@.YØ?÷åæ?Àc´?Ѥ–?Þlx?âÎb?ïØÏ?íÏ'?è_?™Kï?;bÆ?§C?²_î?»ªX?¿ë@?ä¢þ?üo?ØÏ?Äÿ•?ëÉh?ÿŽ@WÆ@dÖ?Z-œ> +»'?²õz@óä@X?ÿ?ú¿@&Í@«ù?þà?Ù0´?¿ƒ?£Ú¯?ý ?Ðáv@Õ@·¶@2?¯…`?âŸ?€úþ?± p?°×—?²K8?§Y?› Ž?‹ÿ?q¢B?ìhO@2ñq@Px?ø‹Q?¹Ø?]3Q?eß"?}H†?}6‡?}(•?‚$j?…L±?°aY?û¿Ö?ÐÔ?‡N?|o?œ|ô?ÃV?üŒÜ?Óóû?•Ý?â…@E³†@#ÝU?¥2u?©Ü?Œ©v?ž„“?×=C?þöî@\¦@pa@£'š@¤!î@‹æ{@ƒÞ?‚¼®?Žìý@+°[@&Ü>@;h?ý^N@ÀR@³¼?ÃuÑ?»í?´áþ?­üÌ?e%š?6}?Ýû?úñ@Û@j@º¯?úq;?Î +,?»:!?ŸB>Gt? 6?GŸ¥?Ä?øŒq?¿‡?›Þà?¢Þ;?¯[Ë?Ááï?Ìš?ÃÅ„?º_8?¼á5?¿iV?»¥2?ºØ?º W?¹þ~?·Ì^?«Ý½?¹¡0@˜û@áÏ?÷?öYQ?æ¶?÷H«?“Õ?•F@"¹ä@6.–@Ï‹?ò(r?ô¿“?òÙ/?¤RÇ?Œ`ñ?6->ör?µý@cÝ?¼?u»C? S?Æ–‹?ÊX?é…@ r@7ÛÇ@(Õ?ð¶¢@ /V@p …@[?tˆ¬?vL¿?ÿÞÖ?õ Û?Ðá,?ÒJC@Ó8@[?ÛÁ-?³Q?æÿ?ÿ]Ä@ k_@³m?Ñ| ?ôò?²ûG?ßË?ØH×?ÐÄF?ÍÏ?Íš¸?ÇP?ò"Š?ò±W@@·-@3¿†@551@i~ @q[}?£éÖ?1t€?Fé¹?[º|@Çm@4ƒÞ@Š?¯ä]?ꥩ@"[ã@ˆ†?©ái?¡LŸ?£¦Ê?¢Û?u‡ú?fþ?ë ?ùs»?¨‹“?›ò³?ËSz?ȹ9?’÷?nw?]90?<%c?C”4?nº?W°a>ö–Ø?¹K?¸Œ?¼“‰?‡™È?‰Tú?‹ ,?¢B?ì9º?ùÆ?ð¥Ÿ@ñ‚@ >ã@ –@! <@LÈ.@4UZ?¹½ã?À%V@¡C@!?Úq?Λ +?yÓ_?X@NÛ@kö’@F3…@üâ@2cW@oÿp@N-œ?éç ?éÍc@““@d+?¸£?¡Vè@E@7ѧ@O¶¯@dh9@­ú?ɸ?G~??ˆó5?€Å³@[ @‚@¢ˆ@F@û?ø‚+?Ýõ¸?¶j5?šæ?…ÐL?ê +p@‹c%@„5H@Žö@™µr@Zír@B'@6&³@7D@)N?ã–Ÿ?÷NQ@ŽÙ@ @Í @ò#@Ò?úB?³RN?¯ŽÇ?ŸÂ:?‚Æã?N?­9?é– @gêˆ@[§@*”y@"™@|6?î%î?÷hH?üÍC?ɤÔ?vÓÒ?œÎl@4@ ±Î?£œ?²1å@>7m@Và@i?žåv?öâ÷@D}Ÿ@Lð@V÷Ç@FÆ?ÿ¼?ô¨p?Т)?ÅÈ?}?½õ?äî@@ÛP@3ê©?ߊì?Ú¡4@Êw@#ë?Ún,?Á‚è@Ž@¿n?ëÑ?wi©?‰þy?ç*Ð?íï@p¸@2L?Ú.Û?É÷‡?¸¾ö?¸ïÏ?éñ™@ O?éÜû>þ +ú?`¸?ã„Õ?ãÆ?ã¨c?ã¾ ?ãÓž?ãëW?¬¹?c_T?„ý ?«:*? 1[?û‘?(ùÇ@k¸@4ù?‚Ýœ?N×-?cmã?n¬?pôø?eßô?fÕ?f/}?[9«>¢f­>ºÇ¾@¶@ì¶@ ¡@!á?ÞÆÁ?®L?Ra)>,äÓ?tÕ°@5@#cb>âHº>ôÊk?Íú?Á?¬¯1?¸¬N?³ >”o!?>?p ?ƒ’'?ŽMY?(Rœ>HÒ)>~&…>™ß–?#ëò?£ÔL?®ž>á/Ë?>©ß@U?ß·>jË>¥"?ñ4Œ@Öù?te?zßÜ?`= ?R“Ø?DÚÐ?7 ¬?ð'>»yŽ? +Ó>ÿcô?¯”g?¤­7?©–?¡¤.?8ö?,µ?`º›?fű?êz?J;>ÞÂå?ê?ô«>ðF!>›¥?P×å?øÀ‡?‰Ï=œGä>Yå>O!>ˆ5 +>©#>Êc>ëèì?…X?eõŒ?vf>í|U>‘Áè>ê$ò?DDï>2Ë=>ç>0!Ÿ?7hm?$R?¬t>?ÒÑ?w Ÿ@&¤t@ o"?É0?Rê[?Wçn?L×¾?A>ÃE.>Ǫq?[þ)?ak¦=•c‰?“Ûå?­CD?oã >5â=žOº=Rr<?Ó?¹=½?›ÍÊ?QèÇ?J­?Io?FÐ?&ÿA?5Æ?t¾‹?aêE>\1'>q#•>xžb>plð?i3ô?fòl?ˆ€X?“z”?•"¼?VÖ?Žÿ?§?‘Œ?—¦ö?Å5½?Ú­?_,¯>Ë'‰?0 ¥?f#1>êqt=a»>‡À”??Š‡??õ7ý?›|\<¾# ?aOÊ@5¨@ɹ?0Ó>?/t>ö[Ï>ÛÊ¥=ð1Â>’ê?ýó ?ö»Æ?£Ò¯?¢P,?\÷>öÈñMõ?\]?Œ˜a?_;÷?@Ì_?Tg6?b¾!?¹?²žþ?ˆÞµ?*y?€>÷éÌ>®" =V$Œ>Iø/>ø"(?)°™?ŸY!?Š)>øXR??‹óº?Š†?HØ?Oš?)ž?-'i@?ÿ—€>°Ú”>y²6>ãÔ>ܧë@óN@¶?ëÚÍ?Ï,U?zR?A?X?eÚS?y?Æò×?ï—6?:Or? §o?sòm?zZ?yw?µö??¾ +?Œ M?»º?úoP?´†>ú’K?<Â%?¡þ>?4a?)^Â? 2)>M›?ùX?ÝÇ/?±dè>ñ @AÉ‹@/R±>ûwí?$Ã@ +{5@ÏÇ>û¾>þ~Õ?¤˜?2Ž?´³Æ?·HÛ?µNr?¹=°Ë<ĺX@Sý@},>ý·‘>µ’â?Ç@U?Ö&€@ä¾@ÂÉ>ýÈ>#­ ?½‹©?äÙF?\ߨ?(”l? p?ž¡?cŽ?FMv>cºQ>h1@>­å¸?ŠüÀ?¯b$?ƒC??etS?LŠ)?1Âò>©8=Ü;²?)š?çX?€šŠ?…jL?É0?pÎk?‘(¹?ªÏ?AoY>± l>î·Ï?J/?³í?¿iB?yó3?&?yí?ž,¯?ÃMÅ?âm?¢ÛŸ?eò©?£Ô¾?ÀóÐ?+­&>‰Ð´? î?„ßá?À%ó?~îÝ? ûƒ?…#Œ?¾^D?Áu?ÈD_?¦…ó?†F?SK2?(?\k½?€q|?×Ë>'9?ÓUU@6•½?È1ê?\…?Ã?ªt?°í?¸Ñ?¿K?ÆI?Ì–´@ÎÑ?j+E?Ò$™@+½‰@ ??à·­?0À=̯û?¨9×?ýh×?Õº?Á¯?’‡?ví ?}ðï?5?%d??æ?ˆ­¤?ž=«?·þs?ÂO?Vë]?Üy?‹Dä?ŸyŒ?£)}?œŽÃ?Ì+?Ñ*&?Üô?éæõ? Œ†?Šx?Æ)?óë?¦ü?­ò†?z„Œ?wþ?—a?¹€?ÁÊ?ÇÄ7?ÿB?!H?&&?$¸?ÏÃ?Ê%”?bñc?vAœ?ÚÆ)?Ö}f?Ûu?ÑQ·?—;=?”i"?@§@?D¬?‚?…a¿?ˆ›g?n?×?'Ö?!C¨?Vº?¬9¾?͆Ž@„?ºPa?"S?ù«?B¤?;É?o—K?Õø/@"º½?Þà?iZ“?b¯^?lc ?ŠµÈ?˜$?¤^q?©L°?æ„%@‘k?6…>êÂ0?û?Ž°~?­é?ߺ¥?òz +@3r!@H=^?Þ/?©?S¾?-ø÷@AÎP@_·>·Û=Bv?kq9?vµ@L @LAü?:b•?GœÖ?±•³?´§@OL@,¼@vw?òó?ÇGA?Í,3@MÙ@„@"àk@ éí?‚B?chŠ?%I?më>ÐMý>¡5”=Œü?>ªì@Aò@%r@b;š@$á? +´À?`Ÿý?­ %?¨Ef?œc?¹uQ?Ô‰„?ä¡?îű?•§?Œÿ??½n?P™ß?²æ±?åã„=†/>Ôò«?T?­Âd?êæ?ÀÒ%?¾²@CºÆ@Kçë?F”>¦JU?÷j}?ûu@VìW@V!n?'#˜?Ÿô?¥9 ?¡|?Í9?‰´¿?ë:·?â^f?í¦?íŸ@?àÑ??î'\@Xx@š?ºG?ªÆh?%ì?–:®@aNh@4ƒ‘?"ÚÐ?(_À?Ð?=;s?=4?ÏÃ5@5,±@3ôù@*Ÿ@ +>€?žä?¬²?Â?·_Ë?§??ÛP¤@‘$@ k?äy¦?÷=©@‘?È÷×? ©?~QŸ?¾‚?ß z@§Ä@Ÿ&@4ÑÄ?ò ^?€ù5?èD$@!“ê?ÞšÑ?“H¶?¹t?Φ?Ù0H?ã?S@'¢@X´:@¤–?‰V¨?š»9¿?8ê•?Xqu?€~]?:hB?G?•õ]?À‘?éK?@Õ@’Ž@n?«R€?d¹Ü??ó?4íã?må??“N2?À¯@ä“@± ?Ça›?†ÿ?´£ ?ÈF?·^+?¶¨@1¡k@\r@2í@.\?öŽw?×ôå?¬º9?‹-u@'>&@]0Î@– ?·Y«?êD?÷ Ç?Ôo›?ÌZ½?Åóé?¿Ü?çÖ?ù`?y·C>’¾ä?h¦”?·2ñ?hýñ>þ8“?¨g?÷1É?¹ ?‹\u?h’²?FAŒ?Q/ë?\%k?¼$@t?Þ1ñ?«¹(?®p?¦d?•…2?}<í?„üg?ŠÌ˜?ª )?щå?Ä'ƒ?¼«/?¦7Ã?|µD?|£j?|‘l?οÅ@5XÈ?ý)­>-(?X¹£@#:@ Û?2’?%öq?-É™?Bgv?ñ÷?Ë?¤]ë?½s@é@ +ÛM?T?*mí?{,î?x©ô?næ6?ŠCâ@P@”@ ²@ +„V?¿×?»áx?‘IÇ?š!@c“@ +mb?åòM?âƒZ?t_Ä?)ªÑ?þWE@«œ@§%?ó ?·`"?”²H?5dþ>ùEî@Çr@_·§@ þé?Ø ¶?“ôÌ?,¢?sÚJ?±ÑÁ?ÁPO?Å–Â?Û +@èR?ÕPq?zËÏ?Žî"?¹ó?×õ/@$53@²Ç?øž¦@Y@üì@0p?ÇÒ~?·²?zÏl?dÂ4?‚ã?gq?³X»?¼ýü?ˆ›h?†#?*‚í? Hz?Ù)?˜­Ž?¨_Ò?¿Må?Œ¡G?64x?¦µ @¨¶?ÈRv?Aªh?¢$ƒ@"X@)?¿Š?¤?">?tšø@ ߊ@ÚÖ?c…?ª5?’úD?•ÒÄ?ç*c?óÅ®@“@:)@÷r@»?ø'?ë)¹?’/^>ýçò?§+Ô@¢;?á]9?bƒÙ?Œÿ?Ä?¿üS?Ñö?–Ùa?Þjº?Ö¿â@&ÍC@, ü@[ä®@lÅì?ÅÊè?f1a?¦'>ðÝÍ? ¾=?òûÃ?½\?pm?Ç|»@(Iž@"9Ø@ ð@Ëc@AÌ\@GÆ@é—@ó%@œû@ì @NŒ?ñ‰?ô£^@u?æ^L?ÀÔ~?ÇCp?Óu?®îø?möˆ?„Å ?²Š+?¬Ïë?²É?²®?Íkr?ÅØù>ïf >zz•@É@Sè3?Í›>®p‰?íÑ?xe?œ÷?ðU?Üè?fX?5:0?ÂöV?Ç#6?<Â?;f°?§?Å ??Þ2ë?ê™"?Ñå?±N³@Ð@ƒ®«@iW^?’èÙ?›Ê×?ÞÂ?熭@gz@8@ Ðõ@ +z@@+:•@é¼?_ƒÏ?s0ç?®B&?®f?·Ök?Åf?Íâ1?Ò›?ʱƒ?²X—?ßô@ K.?õQ·?¨†¬?À¨Ñ@$Ǻ@5¶é@OG°@J~ö@…•€@‡Pý@!Ø?»f?»’S?¬{©?àê–@(Åÿ@$y@Ë2@#4@C²V@K ?à7‚?Œ<0?Ú¶@ +R?ðu¤?ãJ?ù^\@<4@CÛ„@6ú@8Xi@M3@+¢@8V@ •@&Ý @*ì@!å»@2X@=ª?çEæ?غ@MV@/%Š@ b²?ó4È@º¡@'õ@ø_?ù-ë@?òðÉ?ø¿?¶Ê?°k}?¯s…?ª8L?ç@`?ø»´?v7¾?‡õæ@ Çø@ Ê @ ɽ@ Å?@2o@0Ú,@˜ó?êÝ?íóÂ@ +ó‰@¤@!Ýù@'O?­p`?’¶Æ?N5W? +œl?·@‹?óí“?Rák?Q-G?ã}ò?ã‰ø?Íâs?ÏGø?ÂÝÛ?ÈÄó?gò²<š™>ä§a?«8à?¨Î{?„¯?Zà @CME@U8?Z``?D*í?¥Þ?Ã`;?èƘ?¸ûÁ?/kª?,¯a?ŸAD?°:Ä?kˆ_?yêÖ?k!­?[;?4À’>èw?Vž?Z&ˆ?ŠOu?ßTj?ÈÀ%?•5ê?¢ ë?”8?ŒèB?œx?¦%?ªŒz?¯ý©?W’Ÿ?Þ1>–Ö>%³>ïUÓ>ïØN>ð)Í?5&x?Û8e?ÝA¤?Žñ²o?Ë"3?Ç}Ã?pÜ?vçµ?{?2ºg>ýQ?) Â?îi?+É%?Ÿ±?Ú?¼ŸŠ?˜A5=Ïlá?Ü=?Ã?_ÜX?@¤t>û“>˜u>Ë,K?»>¡žk>1èh>‘F€>p?ƒEN?m>§•>J/À>‡)é>$ˆŒ?§IX?¦õ4?¢ÈË?‡¥Ú?yTP>íf8>!ðW>/È ;’”>Á7?sM,@ Uk@!Â-?" +>´Ž?jP'?z½Ü?Î?º?½bý=£¿¬=»CÖ>óí>ò¦ê=Ð&þ=¥.6?”M?õb>ü)v>÷@­=žm½:@>ŵJ?¸4?¿hJ?ë\A?pâ£?Ó?9%L?Pê?‚è)?•d? µ¨?n¸?šF¾?{äø?By?2#Ø?J}f?0è@>ô›À?»ô?.…a? C>‚Ÿ>™|?6R+?Fù¥?îd¦?èú9>R +T>:Òà?ƒå?ŽŽ?¢ñ?¦Â?">õ`³?YÙ{?uyM>ŠX7>¢d¡>õ¥‚>èq¼>å®?|/i?·7m?š;à?ylË?”Çë?­m?ŸW?–ù?|­€>ö2_?0ã?Ÿ8V?‰¯?7N?9nÎ?ˆà¼?Œà?RÌâ?WzD>ö«>ö¶0?1tý?6¯}?½,>ç“>Û©>Îê?mïY?Œ¥?}Ÿ‰?}ëY?ºY?˜è…?;†—>ÑA_>¿¨´>Ð#Þ?8".?wž¶?±ÏÕ?í¾¾?¢l(>÷Õë?)ðÆ?lùé?­¢=Bz>ìh?º¼?“Û=̺>ú>u>¹©ä?QXà?Mü ?JŸÃ?SAñ@ •ý@ + «>€>>tëð?®Cý?²Ý´?ú5q@ÿ™@´½@XT?°/o?™‡?rVÆ?^þy?žK?±y? +&À=ÆËf>«¸7>ùß +?¬‘ˆ?øÑE?ø@?ú#³?×9z?³óŽ?‰>U?A??UrŠ?\”8?1ñ>”Á¥?=jg?¸…?q¹—?"ê„@¶?ãþ >ìf0?7’*?ìn +?Íb>¢†X>è?—“.?“?Ší?‘i?eˆy?j¯®?{ôL?xM>üµ>ÿó2?»è’?¸Š?ÃÂo?ÈG_?i}0?W’À?Àªß?ÊŠˆ?j•?cAÒ?;ýï?*ƒâ?.{—?CS"?_¡-?Rmµ?¯–?½<Ï?_Ã??5±ê>ïþì>½Tö?k¨?Å}?¹A†?í?T?fWì>þ3?·s?íx»?ÉÖ+?º:³?ÂŽ!?À½i?”MO?~‰?~˜z?~¦Ä@÷T@):7?™e>ׂ>»Ûž>´?†ao?¿c!?ªÛ’?•^?™éÁ?¡t?Œ?„ÅÌOf?¥ŸÖ?þç +?o> †ð>¯Ê7??‘Ân?Éñ¤?ž!?€#R?‚JÇ?‚„?€¶T?‚Až?ÈVþ?ô°î@'Íé@BÍ/?Æ 4?Jº>ôN=>¹Ká?žX®?ì¢??‡õ>²Xz>oX_>Ñ«š?´t?%1?5žû?¥ù÷?ÔÀ£?0=ú>qv?†tŸ?Á]Y@}$@,žs?Æ­?§?†÷‡?…É ?( î?À>E =¶s0?¹K?îå/@%Î@ö?ƒÛ§?H¨‘?ÓÌ/?쾌?×pò?ÎÌ.?ÊÈ ?ÆÁÙ?Àä«?ŪG@ œÃ@”Ï?apŸ?.†F@3È@!ö?ê!ä?ߨ?VÌq??V¶?Ï?8ª?L8?ðo?ƒg6?{Ý=†ä=C=‚Y]>—œÖ@@%i?â÷P?ÈœÞ?#Ó†?;£?dKx?ƒÎ?­·X?Ä\Ž@©ô?ýÎp?þW?±M·?ì!ò?ç…ð?Ü‹?Á\Æ?‚á?h³¡?04?Òý?î*™?«#ò?€#?xy?Á6¼?¡sí?‚&œ?`ãa?L¯\?q‘õ?‚.á?:Í$?3¾?µS?-à?Oð5?jL?¶{U?Ü×N?tI?¡s?Ýêt?½jÉ?®ð?­ö?±D?³_ð?µ}í@1þ@+"À@êp@]Œ>›U¬<ô…“>ñ$Ã>øÇ? Ã?Àå?qj‰?ˆh?¨D?¢`¿?”#Ò?“‚f?ƒn)? .@¤Ý@#`»@6ì@"û(?ÈÔ?Úöe@á +@Ò@F§?ßž?‚Cy?; +=Ñ »>R^î>áPh?‡o…@=?¶?â­?™Ã‡?÷ßU?ôø?óa[?¸It?‚2ô?)²å>Îd?=î³?»ƒ?„?‚%ù?y)æ?{5?¬À»?Ã.ë?¹?j<ª?z7>?‚n?g:þ?a§Q@ +ô@"Ž§?…Óø?#¨X?/ï?!ߪ?çýû@£ž?“J›?†ß?×Öj?è_'?fåN?Lƒ[?ñu?6ê+?£r?·Ä4?©¿¡?ª<~?æ"õ?æ«õ?ýeï?óO@­y@Èù?¬»Ã?¨«?°è?ŒRŸ?Â?¸@Æ?‰×Š?¶@7wï@/¡£@O@ž@Rf@K'ü@D;Ö@(p?åu“?ñ=@ @¸q@?Ц?:š?VŒ¿?ƒ2l?s‘ ?M(™?”D?Öw.?öÎï@2 ?âGú?È? ×?¹Ï¢?¤„$?‡Z;?¢#u?Ã,?èˆ2@_?ãƒ+?¶L½?¶g;?À¡?—M?XK¥?íŠ@'µ|?÷|®?½‚^?Ôª ?äNÆ?Ç#S?¸€˜?¿ÉÝ?Çl?Î`'?Õ±–?¼Z³?­©Ã@,d¼@^?£!ì<÷Î@ vù@QÂ@*G@GÅ?äI?ÀyQ?¡ÜÇ?”m-?¯k§?´á?š´.?‡xs?)?n?Æ?„¨x?¨cÍ?¹Å?È:Q?ÏbÚ?Íh^?àgA?ï!g?-¤=KeÔ?‚!´?ÇOÙ?x•?8{e?ÅØ?ó=?S?E¶?«=?ßV@òÛ@<Ï@ê&@"-É?Û‡?˜‚?Ú@3?úWd@&Ê@,EW@a@?ÚE0?†ôB? À|?Lh8?zñü?¥p¥?Å¢Ï?ž3 ?}õ-?èç?šk-?M§>ýµP?hà_?¡5ä?½°i?Ê2?Âgl?Ä·?¨Ýù?Hk?_‹?±¿@11@:†b@Ô?|äQ?Çû@Ͻ?æ‘T?|Œ ?ØN­@=O”@0ìß@ 6@&Ü?àrý?Â[^?ñ¼?’^Î?­MJ?¬”º?¼Ï?? …è>Ëáœ?¾í?–4?¿Ø?¼×?¾Ù?ïä÷?Ühý>úÿÖ?6”?g Ý?}øµ@â”@R?þ¡0?÷­›>že>>N‡?Ñ +;?Þèw?– >?ˆ{‘@ [2@‰M?Òoj?¼°X@Ld=@kѬ@+0@¾N?Äú3?”‰@m©@BEx@Üd?ܬB?×–&?à9?ˆva? +ó?…Œ?íˆ@žÐ@7þÍ@/‚Ù@rù@Q@¬ñ@EÈ?·"¿?×@‘ @’þ@(ŸÉ@(ªå@¨~@œ ?Ï2­?ÔÅK@  ¾@ @ –@¤Ü?“Ú%?vbà?¶x>ö3ÔWJ?¦„r?¼ì??Ô Â?ê’ ?íâ?ëÜ®?Í87?§Æ?·2þ?iÒÓ?mH?òRR?éX@4À@A÷™@i4æ@m¬-@'iû?èÈ/?§Íê>ÿ@?ƒ@-ô@ .T?–Xd?‘·_?À‰¾?Âaw@!”g@?4à@??­uØ?ì°T@$Y4@ á8?‘õ”?¡@5Û@;ûí@ƒ±@W5?øœ>ã4L?\fú?®¿±?Á–??ö^¢?ýé„?÷oQ?ü¶@ q¯@ìD@&žh@+ÐŽ@\ò,@†´Î@‚ŠX@^êÏ@RT@AŸÿ@>ó¬?îðé?ýºæ?ÝY?À´K?ÙP…?í° @ +³@*r;@Qô@¦õ¤@š(?Ñ)?ÛÚ@¤”@$§É?Þ8Ê?–xL?­þ?á9ì?å#£?ã,™?ãa?ãÁ?ã‚?…?bú3?¶Sl?Ò:à@!&g@{@QÁ?bÙØ?f’m?Ìl?Ö²$?²O ?¼¾ü?ú–a@Ìi@\@+1Ù@QY?‡<§?—ñ}?ºMÏ?ÐH¹?ôpJ?ߨò?‰†z?M05?´È@ c¢?ç©à?G0?#)?›Þ'?§3Ï?–¦?—ïg?Tdz?š_?e¸ã?£­Ø?©0?ÖBù?ÏŽ?Äöj?ÊãY@&êR@+§?>PI=P?ƒ»¼?Ý‚o?Ó@²?Ô€?µùÞ>æ‰>ð1s?I™>—¢?¤®¦?­N+?(S¦>ç{T?xœ˜?•jƒ?D›>èlM>è±³>èñ?<?éyv?ÝžO?³q?%¢`?ûMU?ñ ?w·~?Yÿ?'&>ÿÉß?Ð>ìñ‚?H>õœ®>Àü“>ŒA>©ò ?W¹>ð3>ðk?)5?´¶Û?µ??¾©¯?ÅÖ—?’u ?§¿,?µÃƒ?¯ G?ˆ—m?ï‰>úb„>öt7?¨„?Èu ?qY>ýõ5=¢÷j=õY,;O˜¤<ãÏ8?h>­?…Uä?ûð–?ܳ¾>¸¼Ê>°ìÊ?ÆJ?Ôã?@cÖ>ßü< Jt?SPò?Ï^8?ƒé??¹Ó??ú?-G÷?²b?È®(?‰Y?n·‰=e^á;ç2ö?~~@?”ÂŒ? ?œ +>W{ð=–*v>p÷m>Õª <²?7]?Ï5?yå?˜Å? Ü?­>"@–<ôZ@ Vì?çÐâ?Y>? w? +‘ +?=Ö>óå?ÝL?`éˆ?hbe?±YØ?³x†?uöÙ?syè=ÝZ?N´3?lÑù>’\Ò>5BÈ?< v?d?› ÷?¬½’?#Ð>–ê?>)B>£Ñá?Ñž?a9?µ­?f?&´Ð?5^]?Ce?@˜§?>ç?;™J?9V?(?”›?C*@ ó¢@ ¡?)¯¤?">¡E>¦Â.?L¸r?SUò? ÅÆ??9TŽ?Gzú>l‚/=‹Vš>¼¤l>õ‹Ø>4öÐ<Æ'Š? ?th§?m?¶¢?™?O?5Å?J…÷? ++Ö>¹P=¨µ? B±?¸¡U?§[?vG?Z¨ã>ö]’?È?‹¢ô?uMD>M_t>Y·¶>fö>{B³?uœ‹?vÎ4?o?V?V‘?Sˆ‰>Ì›M>–Å\?%>?:I˜?¶v?ÞZÍ?PäÞ>”ë?Bœ?‡Î?M/Z?üˆ?œÒ>÷º>ûQÏ?rf?+×Í?]£)?h9c?…óÒ?=Y=Áþ >µ³é>Êb$?$CÝ?Aâ'?¢ô?¥¶Š?ÕUQ?ÎïI>ø¿µ>ùt`?¢¨à?¨ªš?d +U?i¶>Áp->©Ç4?¡€?cá?X¸>ùgç?^¿?y„Æ?‚u#?‚°L?;ÿŸ?‰o?QB4?}q>?;ð?Á´?­˜¢?ò!³?®,?ci?lyý?zi‚? S×>†¬?4Ò?pus?’8°?¡NŽ?Öâò?Ó¬“?¸r?¥ X?{2¦?K0º>/Ôr>¸ß ?ˆ]?‚{B?ŒkO?3ð>û¼}? äR?mnô?h–É?ýè?(?¼ø ?¹‹? 9ð?ÇZ?|Ct?||?»ê”?½u…?f‚«?ZË ?yÏ?|ß ?v $?h“?’Ö?šòØ?ÓV?Þ(E?ŽGé?}hþ?(¬?q™?¨?ÂŒC?€3&?>¤‚?2mä?/-ž?YQ?m£8?hH^?l¾Ë@±L@>%B?šŸ?½Z?–ß­?·Îœ?ƒŽ“?m ?™Ðü?¡ML?{šá?YV™?†% +?–GŽ?Žy†?»ì?ƒ'¾?yö{?”f6?—ùí?hM²?L®P?†“©?•fÑ?#›:>¹\û>ÁGÛ>É2”?µŠ@ Þ?¯FU?€z?ªêá?€@gU@6–@VÒ@të?ö=©?x!÷?œå ?¤ªU?uç?]ü?Ý\x@ +°œ?±Áç?€V>«ïã?ZW=?›~¢?Áiµ?Ïêo?–óì?€ÆU?'DØ?Òµ?jè?²éß?¡NÍ?•°?~–Õ?u4D?ÖÖM?û(@jÌ?ý!N?•äh?kkå?ä ¿@(P@óSŒ?…Œ?c9?ŠA@";“@ 4?ÓÒ?ÈÈ?…j»?§Üc@’|@ +S4?߈ø?èe @˜­?æØd?ŠÞæ?—F”?«?¼"?Ñ`?µ%?‘ªø?©„>?Î’ž?”üN?É«?Gé0?…Mð?Áó@Ÿz? t\? Y?i¶?!)?L² +?‚%ú?q†?až?§ì¤?ÂøÅ?U)ê?/ÿ?(ý.?>ˆ4?fv>öé?‘C-?´ÂO?á½6?îŒ?龨?Ý 1?›ªÁ?30?SÌ?<±­?¹¯5?Ãb?ÐNf?È–ð?Á¯¼?¼{Ž?ž?¾?qè¾?™X?öùp?߇>Žb:>•[O>0m>ª´?ƒ?®¥@ ‘Þ@¢?¾ÏÇ?®E?_?´jë@=Á?Ô\q?aŸ8?b«V?Pþ½?±=&V?`&£@5!@5@è|?¨{?Ê?(³?5À?›Z?¶lø?†°°??§U?ŽM?!Á?Ø–?Ð~s?¡WØ?†°Ë?VöÒ?Oœ_?–æ9?© ?ž_ä?—µh?( á?k@Õ;@«?×%ö?Âú3@Ê@s—?Ϙí?ÃY4?ùrG?ú "@Z»@?ºõ‰?´ëŸ?E ?:¤ê?1¨‚?)µò?e¹Ì?wî×?¼¶»?ͯ @#¸@FÔ?P?‹(?—ŽE?‘î³?¨þ?‹<®?µª=?·íÝ?º.u?“PÏ=®úŠ? î§@‰Ž?ÁÁš>š™+>Úø—? ²Ä?X[j?žâ*?“/Ô?ut ?‰K?™W5?q…‰?S^?„¦?݆Ë?¹—Ÿ?·y?°?Ù7k?Á 8?°w£?²È£?µ ?œÅ[?d?¼ÿó?ûßï?¾ ?‚Ÿˆ?Ç^@ú?¢i?-s?¨æ@?áäs?÷T„@ð@ ™Ô@YÛ?Ë1?€Á¨?”Æ–?£ïÚ?‡þ8?a­*?WáÂ?NC?.î˜?|¾?6é^?9¼à@Ox@7 ?©C>þ÷@ p@C4ˆ@8­?Ôò\?ë¢?ñ_D?ƒ²ü?(«y?Ëd‘@,ó?ÎEè?¼­è?’Èô?rí.? è?¯C™?Œ½?o ?³¸?׳Q?”ë?o@í?Ï?6!?®uz?¿¤?¸Çõ?±0?ÀÁþ?ËâG?¯Ô?œ'L?–à ?‘™f?Éd„º>–%’>Žg{?‰–?Å°%?ô<â"Ð?%ƒ?†8ø?‚Éûòí?I¾•?Ìë-?ÖäÙ?ßçÁ?³cÇ>Œî?u+@—@Ú¼@Œ–@ +®? â?L‹w?×Q[?Èê?W =?`*%@0 @.zx@=1›@:b?HÉ–?,q@aÏ@Tç?Öœê?Æ ¦?ø6?þÁì?Gt$?ÝÎ@Ê@&¼¦?Г?¥ü?óŽ@ø¤@,É@ Œ¨?áýŸ?·þÉ?Á¿é?ÙcJ?ÚÚ%?Ö®Ñ?ÒÒM?ĺš?å•@,Î@Û ?ú%l?íU?Ë7T?½8-?wªE?¨"@9q@1K‚?òa¡?ðØã?ƒòÃ?ŠñŠ?z]?Œs?%[>ìÒ1@< ò@T ?±cA?vQm?k•Í?b ?µ6F?ÚI? U†?uÀÛ?Ì›@ +(Î?¼[?*ú?­>È"þ?$—1?—f?™‹Ë?·— ?·Í/?³zç?©>?tfµ?u·>?ŒRç?Ü?âƒ?ÙÚß@¡ç@$¦à?Ôá ?¥Dˆ?Ù‹Í?ó@=@ º@0Û@s?úâA?µU0?T«Ú?”­(?È«_?åT#@*è@ |5@¬‡@ Ò$?Ÿv?—zÄ?µ$?µ„?*6 +>ùõé?£?Š’?²Rv?¥üx?¹$.?ʳä?ŸÁ,?pv?™û1?ºŠQ?à;Ö@,À¢@‚°?7·Â?(Æ'?î‹Y?ê•É?xÎ1?oc?C:?J•?¦"=?µ/È?„`6?6­?îé?mƒ?1Q?mßù?±- @1;5@Œƒ?À¥?òÍ@#™ã@Ôþ@ûš@"ÙT?w“>¨®h?Œwm?Ê‹!@ô£@1@xª?ª?ö?¶µü@„¬?ïX?kUÝ?k8u?4Õé?7êO@K¬@8}~@²ô?Ú+â@i@/Í@!L¿@Ö?ç1l?iÅ©?q@õ¹@ãf@ ÷¯@%W­@Š—É@¨ò#@büÁ?íóB@€ @ŒW@Q ?Â÷X?äHÆ@:~ˆ@,¹Ö?Ü/‡?ÔM +?ø•û@z?ÚŒ$?­mb?±ßÐ?¶¡?Ø ?ï2"?ßh4?À©²?Χ}@+3@!@`ï@$S<@7{Ë@Gή@'Ò›?å®=?ñ œ@ù¶@\?ÌÖ??Í}@*AÒ@9ÎÞ@ ‹Ë?à’Ê?å©ß?õ~G@Vd@Gó¼@Få§?«C®?«7@^¯@+ @,¥‹@#H @ ®?å§Ø@ûÒ@}¹=@ƒÆÛ@0NÔ@#l@ph@'Uœ@ +Ë‚?û’ü?àÅð?«g¹?Ò\o@"¿@ÍW@‘í@W?mý?6*@ªË@6ê@,J*@(¦@$)‰@Œ?òª?ª”?ªp?E{?Á?÷…\@5XÙ@=vC@Dô"@*Ó•?¡W>?š¤¼?bâ?bè@Òb@'ì?«Á=?K?Vü?«Å-?¢Qø?L}³?GB‘?“åd?ŽG?j|¦?c£C?ûñ?¥ }?źÃ?ßò1?Šx?‘Sá?š1B?vN?“\x@ 7h@É?«u??i,—?•µI?µŸÁ?£˜x?ˆb‰?pÁð>æ b?nŽ@Ò@ +GÊ@d@ È?±˜x?‹Ù³?­.a?Ë'ý?‡y˜>è\„>ÿ[?ý}>ñ8ƒ?@ñ?C¡]?B»z?68p@¸g@fï?DÂ$>ë}L?L×Z?cÍ?ˆëü?‹?{X?m•c?múÄ?n\8?Žªw?µÆŠ?qÏ=”³Š>€í"?T«?fu0?BT…?Aæ©>ë¥=½õ9?x8?‚ôR?t¶ê?u=ø?9û>?+]‡>„=»z>øÑÝ>ø!?M”õ|!>ºÑ€>„àš?M>ó£Ø>½>Â.Ú>ÿâ‚?Mý?ª¥?9Ñ?´vü?’¹¥?ê?FÛX?¢‡Z?ˆÂu?H R?.bÔ?@áÕ?­f?ÆHH?ÿÎ7?Þ ·=‘—h>qÊ =ÖèH?%ÕO?†ó>›çÂ>”ÌÊ>¨¡‡>’¾.>¶dð>E{7>À€9?ª\Á?¥”ï?•Äz=äZ×>óÂ>'3b?–MŽ?¶à?r߆?iùÊ?Wœë?DiÈ>ßt->¿J4=W–>÷>ó³Þ>ól{>øbê?kçÜ?hŸQ?"Õ?¦?šÔª?¡}Ø>™Ê[>˜p? dÂ?(xÇ>A?±>y­±>³ó?Xû ?‘ã ?kÝO?NX0?'ûð>ôgO>Ûáš>Ï•h?K?3-Ý?³8>÷È›>àLE>]@á?EÍ?ôÖÁ?Ürº?Gìù?6= ´ø?Q?Ñ®?V>¤?ZÐZ>w=§Ê½>Úd©>õf*?À?–.>ÿ¡­>õ“k>¿ª:—>?n±?¸Pb?בN?êØw?ª½>õðŒ?"ÜÈ?H™9?8¤i?4PÅ?qç¯?§Y?rc”>"},>Χ™?’‰v?‡‘•? î˜?yE?A3?>Ñï?˜s§?“µ;0D?ÈI?ÎŒJ?a ¡?R ]?êŠ?›CM?p£»?_}÷?µœ"?Ô¯ì?àÚ?ç @ Žý@iÔ?¥„œ>÷©?y D?²@K?çn@IG?Á»L?Ôæ?(?A ¤?%³{>ø6©>øFp>øT€? g„?”?œd}?ºm+?¯ß2?;@ ?2ªA>øË>ûz>Ń>¶Åª:™ p?…þ?Œ™Þ?'??°?{?‰?…¾?»¬?Æ/ò@ ‚(@ ?²BÍ?yÚÛ?ò¦@®?ÁO,?À?M5?ýG?‚%¦?¬;?™ _?‚gê?*Œ¼>Ÿ‚u?A³?²3Þ?ƒÖ>ðŠ?Cé?£ñv?›º¦?{$Ú?‡È‚?•¼?¤ü ?ò?ìp?¼©4?£«3>û­V? |ý?Câ?8Ñ·?nÍI?vÒ¿?|óù?kf¥<þ=ËÔ_?|YÕ?€%?½[Y?¼Ë¼?}'‘?|® +?|À×?|Ñn?» Å?½¶Ù??ŵ?7™ß?¶ ë?½êý?…M?}\Q?&ß? B?"Û ?%ñ_@–@&±-?Ù.›?¾k£?Pô?ZK>´$n>K÷?ËFŸ?þßv>ôöH<×/ˆ>å46?9h>_†b=±à[?T¨ª?Ži¡?D©ì?%HÑ>×J >¶ƒ´>ïÅ>ÿ1à>ÿ@Ã>ÿRu?™&æ?Äá#?½=?eL4?j³W?~¼Ï>à>ò> `©>Rë>Yòú?¥u?ì¯z?žô ?t­?ÓUú?þ~†?©ìý?†|î?æÞl@ `?ÓeŸ?¬j ?•?Ža5?ÈT¡?Üáø?Ä€h?Âk®?Ï4D?Í#ý?[|©? OÝ?›ö;?Ä›L?⣩?ò¬X?²çÕ?— Ô?J7?%/?Q ‘?dø°?×|Æ?÷r·?RaK?ô?vœ? +O ?¨É?ÃA >¦¤Y=¶íŽ?v|L?”£È?¢©s?ª•?tÌ*?^Á¼?·É>?Áç“?Ñ€ß?δ•?ä+?ä±È?N¹{?L@.Ç@4á?©aÝ?šSF?Á1a?À½«?"f‚?#„?©µË?¶Ôá@!ÿ%@*§?¤L?ŽÇ:@´¥?÷Ÿ??{_?gyâ?õ±?FÛÎ?Û1?»;Ì>ÃèÊ?-c?½M?ãxO@&°(@&P@Ñ +@ +ò?â^¶?²û®?:‚?dÄ?™áF?ÈÍ!@~i?ó?o?£°0?ÕüC@È™?Ðô ?‰mŒ? í?¼ ®?âmW@?ÜŠ¦?¸ø? ‹)=”>ÌQY?ø°?`˜¶?‚%^?ºñ§?Ù?Œ4?PsP?ÒÍÈ?ïÛ¾?²n½? ö*?(ô™?1¾?ýTJ@l4@3m@?ƒ7?Úk?ÃWK?þú§@:8?¿v?½ÎV@U ¾@]“õ?ƒ_c?¤Y=!i >#'’?ºþ?®Üþ?S_?BNª>7}?K7?MÝÎ>RB?îÓ?éõ‹?ÒLˆ?©‘??Áj|?Ý=+?ás@9M?Ìû ?Hj?™Žâ?÷B]?µe»?%“‡?—Ìë?ö÷?ÿ ‡@úÍ?à¹?»k?—?sh?à @ãN?â`b?²Ö?T- +?V?‹9”?µÇ”?À`^?Þ?z‹?6ÀX?mE?‚ 8?¡òŠ?­^k?…ÁÉ?i«Ö?Þc‹?÷Ò?ÁLv?º‚ï?ÂþHÏ>ëE?0d²@¼u?ñíˆ?™Ôo? V?–Çâ?’c–?`¢¨?^—·?P!R?^&Ž?r»¦?‹n'?» +(?Ò9K@‚?Ø‘†?läÔ?—?Úm…?ì[@ ­^@ü ?ö?à n?V•?Mªn?Nu?‘¢˜@.¨?ü›M?çÊ?ùA®@ +Ö7?Ó·K?'Ÿ?$??†(H?ˆèÍ?††U?„ñ?¥M?¿Ùð?ÂmŸ?ÇÕ.?º~?«”? Þ? Ñl?•D­?“‚W?Á?ÚÂ6?º"h?¢®Ã?´?ºÜæ?ÎM?Ù-v?¬\n?šH)?Š«á?€†?Ö´p@‚l?®h?…?*Ÿ ?iW?ÉÒñ@®ú?‰ð=?)sØ?E©3?[íÅ>ºÙP>"H¡?Ÿ‘?ÙÄ?Íôd?Êu?ìYp?ùXÎ@Ç@Œ‡?íæ?Û?ƒ&°?5ó?£Í?%1@#Ê@Y¯›@ ?ýeâ?Э‘?¿‰G?™P?Œ"ã?ÓR?íoS@“Õ@pÐ?ªV?~ïž?ªRË?Âs3?#/>FÜÇ@@A~²?×Ç_?~w¤?Òó?þ[ª@Ãk@åK?ÃòX?vqx?x7?~Á?}ëè?}Ýè?ñH@–°?ÿb°?ÖC?w4¿>êyR?"£Í?Da‹?ÈÍ?¸…€?¥ØÅ?„t$?:-u>ýF?©@ê@?¥IÖùž@’°@ëš?ÓŸÿ?­'©?Íüq?ã•?§Ù,?šI?—i? ¤?w1?*GU?…C?­Ú‹?ËÁ?øS?®ŽL?0|>ûëì? D¢?îÈT?¿Õœ??îf!?îF‹?ÔÀ?’ªñ?Šl©?‚+'?¶À'@2*¡@"Ù?Yz¹?QÀÉ?ú“@ˆ²?ìêW?î×€?¨Tí?Šeg?àq@ Îà@àB@,&Ð@IÐ?ç|T?Ý>‡?Ê<à?Ê+? Ow?(ÑÖ?dë?W™B@+)ò@MZH?õ"?Š¨L@ Ì@ƒË@Ss?óJ·?ÿõ@ ¢@†‘?åm?íËý@•E@¹¿@&lz@#¹ƒ@A]Ø@f¤\@#¾€?“‘½?­]¬?Æo‚?È©û@4ð +@@Eõ?ìP5?Ò= ?Ò˜í?È¥.?º³"?®Ðº?Â4S?Þª€?Í.?¨QT?»z@A ?ôè?êÝx?Þ!‹?èZ?í L@…Ú@?@â´@ +ë@ '\@,@,ó?̯D?ÂRÆ@39p@Qê@#ý?±Š8@ <Ö@Yž×@X8ç@q°w@ké@pÈ?ûïx@+.‘@3Žõ@`TA@„ @r™F@D¨Û@XNá@“¯¥@o”@/$@6££?ú¿?ã_•?«ÄÛ?„‚º?§¡O?â8G?ïŸë@Ð&@“ ?浧?öOÍ?™KV?nþN@¦q@C£I@'âØ?äTe@ÜM@%r/@57?Ap?V„Ä?œ„I?š´”?ªcg?Å,ò‰?Rh[?ÉG&?¿OÊ?ËŠ?Å~÷?Žw´?aX?^î#?[s«?fW?zºí?Ž2V?™ÜÆ?Œ€?+ÿˆ?7À?§zc?«“ì?Î)9?ã6‚?J&ö>‡Aˆ?:ß?• N?€,,?y¡?!ñ?˜_?¤¨P?®Á?¹Ú?Wa?>Ï?¢@?’å‘?S´˜>èO’?N”Ç?³ ?žwH?Wõì?NˆT?iâÌ?j1†?Äùñ?Â?W'?¯?¼c?àa?Ûî'?Ù±H?£0#?mÝ?]¥¥?RŸ£?¹?ð±?ÈC¤?CJö? Äè>ðÂ6>âXÔ>šU >ÐŒ2?r›?x°Œ?²Ë¸?ªËr>¦>Èbû?–J?‘BE?t:Þ?;Š?sΨ?oYy?¬9,?¨€?¡'ò?š0Z?RT±?_òÂ?b¥x?sÐ>äJ->öž'?”Eˆ?u}'?•…?0h”?˜Ãw?ˆÄÊ?óC?{Ü +?‚õ?^€?Gy{>Íæÿ>Ò?I’W?„×÷?ÉúT?Ç­Ü=‡Åµ>ŸD÷>WˆÀ=f˜0>Âaˆ> L>mý¬>Áìð?aˆ>Gä§>½¡?Ó)@:Ò@ÿ”? ">’¨§>Wp>1´Ú>SKF>ê¶v?dèÎ? /=¤6¡=šÙ=›AÛ=7<&Ã>9Û8?sMî?RFé<¥0<â=LŒ.=ùÏb?ãœM?à3ÿ?]?¼>ÙÍ>ȹc>2=Ð5ò>¥L¤>¶ÑÕ?y2‘?“Ût?"L)>ïR„>ü®¢>ô>±?'ý?Bá?%å’?Â?\¦.?›—Ç?b¼ó>èø?/ÙÃ?ŒªÂ?—ߤ?ÄÒú? ’õ>ŸD'>© ñ>–]ó>ªð?T¨ì?Q=>õ£>û_3?;š–?3‡Ó>ÖXO>Ú=ú?Òïe?éS¢?E©Ï?­Ð>ö½9>òùž?U–Ò?|Ÿa?¨†ž?¾¨?²4â?¥Û?Ä£&?Ý“P?¼“+?šE +?‘t\?!?©Â/?Êe…?ô?+L|?.Ys?1hV?[Ý?¸Üz?¯Bû?€#?|š¼>Êž¤>Äùj?´ P?¸ÊŸ?JJ>öï‘>öøo>÷M?) •?(‡+>xU˜>ìv>³%Æ>ãêË?Kñ=?t-â?˃á?ôjF?‰Ê? !E?]<ë?’»O?$r‡=®Ä<>õ{M?wýc?l1+?TìŒ?Q Ó?NQÖ?)8ò>²F>çMÍ?&j?f̼?ÙJS?¾~Â>ø²:?Ü?Hp¶?I§>>¦Ý>—jÇ?–8g?›­+?ŒkÁ?ˆ¼’?¬6?²d1@ ±#@<’?š’?vaw?¬Âô?¹Â"?겸?þýg?¥ð>?zý>ʸÂ=Ãé¨>ò,?Òh\?pqY?‚80?–£Í?µ†“?ù”Y?ÏE[?Dâ¶?|%_?Ê»¨?¨ãÝ?·q?€J@(ù@ ©=D£>†%S?¼8?©d#>ëx?.c?|A>?ƒ‡?½K.?¶j‘?!Ç?š>™žl>¯¶×?•Cn?—*?|:>ý4?¹¾t?½ÝË?±?™¨2?ê,ò?ì{ï?@ôá?/æc?³úÅ?¾Bð?™ß#?›¥?ÃÁ?Æfy@*î@:v‰@"k@u±@cT@G›?›)?oɇ>CÁÚ>#Rˆ>qÄá>(m>I>—Ö}>£b?irÃ?‰·è?!éÿ>ÿ@å?µPW?×@ç?×ú?Øéh?•%>+X?FÝ?"Ë ?‰m?›·?†4Ò?ýT?.y? c¯?™#?¼·?‘S†?€*H?†qß?Œrà?Š|—?Š^?ƒ‰À?€W?»Ÿ?ÒŸ|?jY?,}r?¸«?ÚÆ??—"¤?€ ?€•ô?€œÛ?) ? ?•†?ªÂ ?s¶ã?\â%?Hö[?:"2?­–/?ÁMÿ? e€>èšù? õ™?º•I?ŠV)?‚·?ãçÖ?ë1û?¾Í¤?·ãs@ +:@ ¸Û?ºk?¯ï9@ µn@ ¡ä?W?Ž‹?ÿ.Ä@RU? ÛŒ>øa@ °@!ÂÂ@!Æe@ÖS?­À#?­XÞ?~Ñ?{c°?(n?Aç‹|>Œ,>ÔÈN?y3?fú?‚"¦@z}@ C;?Ã1ä?¤vJ?Ê>‹?ÆJ@;aâ@Mj9@ 0M?ùÙ_?¨¬3?§O(?ôõ©?ú›Á?j a?k…E=]œl=ˆpc?‚/x?y÷ +>ðV5>ðÖý?':@?)ï?5T??=qÉ?^ôù?ÃO±?ŸmA>›d†?'J[?Ý¿?Çq?{u?ÊÑÿ@<Ë©@)åý@1R?òª?Ô»?ßMw?ê½Á?Ðç’?ºbñ?„&? @I?ƒò?•Ë?ÃÚ´?Ã4š?ò4?‚É?¶R?Ü´?Ž»·?F‡/?¨ÚÖ?ÃÆ@?°íX?©EÚ?…Ãÿñø?+(!?Úœí?ÏO‰?»…?Ë?²}?Í@(Z?öÙ9>Ó?l_?˜>­?Š¿T?i…L?Bøs>ÌC£>ÍB{?ó ? +98?„c?*Ä[?ƒb1?™ÙQ?¼§?—Ûä?>)§?¥Àç@Àé?î Z?»j?Ê°?Ò¥º?f¿?G?ZŸ? ÷?“Û·?Œ€Å?jí?-ë?V<Æ?!¼?)?¥?žœ;?¹Å=?¼Å?¾sæ@)¨@^[@$ó1?ûk8?•¾?-½Ý?&Xx? Ùx?€_0?—’ó?ä™á@O­?¬ü?z‹P?þð÷@¯¡@ Š)@À?¸ñ˜?M{?ä5?€†?áå\@0 ?Ö ?À¥Ú?R/Õ?µ>['æ>+É?=?kàU?fÕl?aÊÜ?Bnv?.ô)?…?™… ?åéá@7@ HŠ@Ŭ@‰Ì@ÓÃ?ÀÚ/?’??ÊÉó?Ú4 ?ŽJz?o’Û?©¸è?¼Ç-?¿¡f?ÁÆW?•E?‡ @7 œ@Ya^@'ÆÊ@ƒl@ Ï@ y?ª`-?~â +?­Ùe?»zª?‰/O?b-?¤¯â?ÄpQ?–É?~j?Ýç@qÿ@£«@Ax?•ôÚ?*º?”H?~?Œ¼?±b@¡¹@Ž8?ÖÊG?–¾f?~x?KA(?_ÿ¬?oÞr?dªä?Yo?Ŷ9@ æ?Î! ?qí?<[Ü?•è?«?¼ã?ºb?½iÃ?‘›E?@ªÏ?…>?¬a€?—½å?‚Æç?™ Ò?¶º ?œN?BJ€è2?`f?È’×?À[1?G/7?os_@" 1@(oV@MI@EtY?¼É?»§6@¹@EA?Ñí‚?Åãt?µðP?· U>ƒ?øÆÇ?`Ñ7?’ß?ÝÖ°@6ò@'Å?ÛSÏ?·Cœ?x4?’®J?´”?žò?w¼ô?ƒ'¡?›ùI?žB?’g¨?¶p@-ç‚@ZÅ?w +v?€TÌ?öÝ +?öÉ @+¥­@8£@yn?ø‡3?Á®n?¸­e?`¸&?S‹è?Åø‹?î5K@'ýÍ@7’ì@!ל@0@1ã°@CA¹@ž÷?¨@c?ùì+@;êƒ@˜=7³;?¦Åu@«ÝÓ@“oê?ÛÉ×?Ñco?´Gß?¿ò?þº@}ß?űB?į‡?†Þ¼?s`É@N @-–Ø?„Ã=eÕ™?O^2?«fÉ?­©Ñ?µâÛ?ÎT?òP\?ýd©@ x¶@Xr?Ø™§?Ò7n?Šˆ?Ž"Î@D, @IÑ4?Ž, ?v}?¼X%?Ö'8@y…@`‘@ò@DŠ@6î@#4@ "3@hÄ?éÐÿ?§!!?º=š?ôK?åFö?ƒp?—H’?qÈ?nñø?®À¢?«´v?‘«ê?–Çù?¢Ø#?®ñY?ä|§@îÁ?ùA?íÊ?í½2?òµ?îàã?§#¶?£ÔÐ?Ùñ–?Õ¬k?íuß?èºN?¬-?ž*?áÅn@×b?Ù™³?³C{@:€@FdÎ@>º @2†p@!Q?>—a?5æw?S¸?˜¬Ç@#ÿ@>€@ 7@t @.Úg@N‰ó@Cžò@%«@}0?èÒ^?ó?¯¶?®ý`@Ê@ãõ@f7Ÿ@@ª>?oL?«£í?Öz·?¿ŒC?˜"‹?¬3@Ö6@2¤?ù4Ö?ÿ\f@ qj@í‰@(®û@,Q@<ç@SåÎ@3o:?Á™?¾€»@‘@$Ô@,M @,£&@"Ç@`¬@{=@¤†@““@€b@Ö&?Éfý?ÜŸ ?ÌHŒ?Ïþ_@ Ð@@ +¶@üI@pl?ÿî9@1“@ž×4@™ @ò~@^ò@8ƒ@?Äõ@Âø?ãì²@Äâ@GMÁ@Qì·@wg!@yBI@6@+v?Ø7Ü?Ñ«?Ö)Ÿ?Û<ï?°)ö?gÓ³?˜gF?îJŒ?ñˆ…?Í`™?È!0?Þtý?âßq?ªg¶?ƒF?Û¬…@)N‘@Ñ|?]®?ˆ¾ü?~Q(?hí ÇÃ=!Œí>µ(Ç?bÇc?tGg@ Rï?ÿ*@ +K°@ Óë?‡ì>ã?†<1?Ù?ÜÇq@¶N?þeE?†wJ?—|?‡­.?ŽÆß?6hQ>íÔÁ?+h¼?cçÑ?ÓÏò@Gíƒ@(æ?ˆ³«?nx,?¶œ|?´p?/a4>õ¸–@Ö@G›ô?ôž¹?V»?w6§?‡}š?wR?ó>ðA>?ÛH'?ÞÚ¨?Ÿ†P?„Ó ?Ä£˜?ØÀ ?‘ý$?'p¤?ö@t@ Ù?ÔV?Îûü@?èÛ?¾Eú?ÊPy?çC™?ëZ–?˜*W?…ª,?ÉÈ|?ì¸Ç?¾?Þ²?mwß?&îØ?˜‹æ@ Ò@ $?ÕÄô?¬£¦>ð¦×>Î/§=¾—?~ãd?~Þ—?í¨Ë?å> +?´Žm?¸u?ýž—@„Ö?„?xW?嚌?äiÃ?x,?†™Y?&wß?½Ñ>!j­@)k@ T?^¤‡?]Ñ>œÓD?$|g?Û¿ ?Ñ”û?‚ ß?[Ú?*LK?Û­?¯4?Ë?ŠJ?ÿ”?n?&8ø?A +>ª->¾Sî?f™>¥ïV=•n <4˜R=Á`>6TÉ>––Í??ÒÒ?bß>^*P?—n—?gØN?-†5?(>Ñ[ß>…ÇD>µÑ?¨ã?r5?ër?.Dä?l-Ü?Ƨ?´ÈÄ?Ž³+>ó4 ?qo?sN¾?’˜æ?袴?¾Çñ=åÄ¡?‡q´?…Ën>ó¥m>ó´ >ó¿)>óÇ´?‹Ñ•?‹¨ø?•Çz?•£Š?Ôéa?áÈ>ÂC=ü¿l><Ù„>£–t>Ïâw?/'?2ùr?Œ˜Þ?·æÌ?›cú?tˆø?‹¨_?¨–å?ã?G )?Ã…>"?e>£[?Qqº?XÞÒ?U ?MF·?Eb7?Oˆ•?פš?Ö2=å4 =¸‘£>îão>õOS@ ‘&@é?@T>õ|e>ÿ3?Œ?äc?¿Ó?‚_?#L†?uÉÁ?”ìà?4‚ >¿v>®’>–ó&?w7Æ?äBS?¥šÓ>ö6N?+³Ú? ®?u—«?v¼­?bB.>ö˜?׺?EXð?RsD?|¨œ?jý>öÊz>ù2x?8É@?2Œ5?šÒ?¤ w?¡Ö-?™_•>r=b$>ÑFç>ÿѺ>ã‹=Mž?'–!?mÛß?/þ? %Ÿ>CŸ>–ºÜ?x!>æz2>³¡>âÍó?&ó2>Þœñ=¯Ñì>‡¤t?–V?Û.?ëÍÒ?ü:½?Ûþ?[aì?Vï#?xÞ?q­ß>øþ?EÉ?ºwò?ºà­?}mÑ?yHí?ˆñß?†;Ô? w_>ù+>ûô?u?y¬?}?e„?yòI?’›6?•Ýü?sd&?Yèë?V_i?RØâ?P‡õ?Z£}?šÂx?»ó?Y²F>€O>>õÏ…?M…G?¨lë?íî?³Ø'?Pº?eÙw?‡ËI?¨bû?ß¡??ÃçS?{‹l?9Þ•=Q/>Œ$â?{Ìê?‹ ?¼õ”?°U+?sSz?q¦@?|8ä?`Ρ>ŽV›>ß´+?ž Û?z >¯1>¼K?|Ä?wuu>üæˆ?>l?þ¿€?ù"?O]Ê?ZÝ©?Öd-?àé?Ú”>ç ??¤Ë™?®ÈM=ÕlÙ?ÝêÙ?öž?ímõ?ò"¬?ÁÒ†?¾GC?-ܳ?öi?ÜEŠ?ïý?€}ô?Q7ž?I† +?AÎ">ʈ?-qÛ?Pò=?ŽP[?štQ?]›v?A2?­B?ÊÓ?¶o?³á‚?ZµE?*[‹?.¾©?:6ç?Ä[‘?äìI?—¶Þ?ó³?tQö?táµ?+“ ? +&=ù ƒ=5 ?“˜É?º$ž?Œ£À?€Cm?ÑÁ?äi?¡BE?’xm?˜†?”€Ú?–\Z?šŒ[?†>D?€Š²?€’£?€š?ikÁ?Rj?tÅŽ?€´Â?Èe?¿¦?­jÁ?Á5¿?Á>?ÁG•? –°>–c‡=Y=ì<$|?fZº?€ÿ™?!je?#žŠ?….›?Šâ£@ýX@ Š?PÑy?H±d?Ž}Ã?˜}¨?¼D£?µ L@={@¥c?S ??´¼©?Â¥‹?ú?øÏï?•ßÛ?›ð(?ÓI?ÅoJ?¦eÓ?J1?‰Ä6?­dÑ@:ì@&Ñ›?‚.?h!D?¦I?œ”?çP?Q|j?ËÕ?±:Ä?"aò?|g?Ú±Û?Çæ,?¡sÊ?Ìy@ôI?ü÷‹?Ä “?¿ö/?¸‰T@‹x@*ð—?öh@?íë?]u?£?s1,?z?‘#P?Ê^±?ß?÷Ž?ÙÄ?Á3>?˜R ?‚ >Øp>ì>íóm?Úý?;à ?=ð¯>ãyP>­Ež?Î^ ?÷‹å?â(?áG®?­â¼? éè?êÊ@½h?Ñ¢X?Õe²@¡!@×á?8äå??Ã?Á²™?Àä=õ >Ý?Œ?€ìí?äÁ?#?¹E¶?¤kª?1&?ÿ0?imž?”iö@%ˆ?ã‚Ë?Z?…Ÿm?µ¦;?·¯Ÿ?ÇZ»?ÍÎ?á–?Ãñ?œ2 ?À×û?î”|?à1•?Ïê)@>`@(ã²?æÕÂ?`Õ?v”ï?‚"^?;0n?ú?±$Â@±?Ö•@?º¼Ì?tÕש>Ù!?|–¢?žÕ @/Ô@Ê7?àa?ÕÓ?©²‹?¤‰2?Na?ò@ /7@-Q?à’´?é4%?ö_+?Ñ»ß?r°ì?PðH?€?\9~?ÁHü?ÀWe?Â)M?»»ö?­Ó?Ž™u?YÚ*?qB?® ?åÙ @7?à™Á?ˆ•n?¡îÉ?ÁÔE?¬i}?sø?…g³?&s?ï?]?r??i%l?‚ +:?ˆÈ&?€’Ñ?{ñz?€·?‰wŒ?±Ç?ÇÕ?¹ ô?ªÉõ?¥ö#?¡$ž?´zÔ?Á+š?Ä÷[?Íþ?‰.ú?D]¸@µ‡@Os-@!¢°@ ¥ä@ºd@ë÷?©næ?€‚Ô?ò¶@Ç?âq«?ÅZ?ìÏH?þ¨„?ª??Qå?€E?3ÛÂ?¹?$ ñ?) %?´i\?ÍOË?¼:?½¯?Â#?Ç)—?Ö…!?×M¢?äŠ=?äO?ùµl@«°?‰=·?/`­?ˆ–i?Š‹?âe×?ýF?ö†˜?ðE›?ÈíŸ?ËøE?”ZÆ?‡¡?@žï@¾I?ªK9?~Øp?Å+z?àÕS?¡aX?Ó;?l9°?Lk?mXI?~bh?ýO@² @R–?õ?vÿ’>þ€>ýö¨>ýì£?µ#à?ð¢Œ?ÅþüaÄ?l&!?½/â?oEv>6’.?1? ]1?‘ׄ?pè?±Sè@‚ý?þ%+?«æ"?ãK@7 Î@.Í@3$?ü€[>þÆP?y=>à (?ð?¼Ó?½ÍÁ?ÂgÖ?´4ü?‰µ?žgª@Jj&@Pá©?Õ>$?Ò Æ@²@j@Ã@ Æ?’á?€¿?©ï?¸¥4?ï½/@Þ`@W4~@E.Ñ?Öf?*y=?¿,?ÉFÕ>’Nx>I‘¥@ÂŒ@ÌQ?üâ{?ñvÝ@›O@˜ ?§o:?`?ö~s@‰\@ +N‘?õrø@¼;@@<@•'?W g?Ûj„@Fb»@2¤?õ‡Æ?ö w@F@æ¹>ÍÔ?—?£œ?ž+œ?0^?7]@k©@ ¶¯?|ú‡?T^ï?î`÷@ô@ èÚ@eƒ@HO@c·:@@å@!º‡?øƒÎ?¢é©?Ôÿ@IÞ@ª›?„?8?”ÿ?Æ,?ÃÎú?è_?ëÐÃ?·ø"?³X¯?.ñm?æj?ÜÙ@ %‹?ÚA!?Âì?¼ù ?½“k?Ô{§?Û/?À÷?  ?«¾@¯ç@j @Ãí@ +·?pæû?næ’?à>æ??—Ø?h­4?9Ïg?‡A?lj—@ fB@HÓ?éà>@@JY@,o?%;?@)ä@ +S@ø3?î?ò|º?¶jÍ?š­z@H @,;¦@6¡?î°e?î—Û?þZ²@€Ï@ Þ @ Wð?™O?”±ø?M¥?‹éA?éhc@Öë?ì +ß?àHæ@/Pü@hÌÏ@AjÜ@^õ?î/ª?‰?¼A?ÌP ?Ç¿¯@(·÷@#ýæ@Lu™@aý@·ç?­@•@@<-¢@Ô¬?šðK?«*@<É@:gb?©àW?ÉŸ?g.°?(ìì?çáû@-Ww@Õ?âÍ}?Ö4ë?k²+?(@…œ@e)@þö@žp@Djë@\ûû@d›ð@`ð@P•ã@;„ø@"i?ea?eN ?Û +?Ó‚/@²ô@Ì@ "@ Èâ?ð?ú?³•l?Ó(@&§î@;8s@¨Á@ž@¶_@²(@oÎ?ãÞ&@o\@GDE@BØ@9Eª@=~Â@.[U@)5µ?Á%ò?ª}W?£B?£×ò?÷%z@%·¾@U©_@²ù@œàþ?ÁE*?Æu°?¤Aµ?¬ðu?Ûþr?ê6¸?ýÏÑ@š/@­š@ ZY?õá™?ˆHò?¨±?¦aW?ªä?À>ù?Õ"*?Æâ?¢q+?‹DÔ?b¹=?f(?ª÷ ?чð?ºìü?Í?|:?ëå?»úÜ@%V7@ £Ø?¢,C?©b‡>ãOH>ã[.?T? +`?f;‰?mg?¦Bõ?Ñé?Þö@7³@Ÿy?²œ6?¾`–?ãm%?ä³?¶=ª?¦ 2?Êw{@ö4?Êã?0Sw?Wc?¬kã?¥–?XÉx?d)™@ +6@ d ?€·?Ký…?«N^?æ\?¾,??Œüv?rè>ò¨d?ˆs@@"¨³@k?ØÄ|?ò‹ó?r»Ó?jª?Ó5Ì?銳?”ov?kó’?ÛkE@‚Ÿ?ë.0?ÉS¤?µÚB?¨v?ØýÅ@J?ã“„>îð?;¢?vÀu?D^>J:>K¥?­0;?²?‰s?–ƒo>QÙ>n ?›÷Q?¦*]?XÅD?äå>þD ? ýo?XFÂ?ƒŒk>Ž>^>—“Í?­ç+?›ÌO=-q^=ª?gU×?Ã>ÿYC>Ùsþ=+´Þ=õ¼>.2û? ·š?è?¾‚?FyU?sq³?&ø1?k?®5?ON?Ä?=‡?³5?1ƒ!?³€s?‰Ö>ô>Â>mÚ?ˆun?† ?­…?TºÊ>„˾?ßœm@S¡@WwØ?k2 >á-3>ž…Å>¥ò>òÐC?B +?yÕ³?7ý<>ó?0Uç?rüò?B +X>ó2`>õJÓ>ür¦>Âüq>±Ê>qV">ÚI4?è?®Lk?a$>óšæ? Þ?¥­?—Øí?4›Z?90Š?=¥A?Bµ?hÚk?s¾‘>Õ‘>™Â[?+v?x?,²‹?<Œ>˜Ân>m +"? ƒ/?:Dt?1Ü?”×??L>ô‚¿>ô‘>ôžg? ·è? ªp?+O/?<Ó•?‡}²?ô×j?ë:¢?Ò¤à?¾áí? ˆ?@W?hÓ ?dàþ>çg›>ð¥ê?µ¹§?¸==Ìü•<ž"¶?ÍÚl?å¨b?át ?ÝC`?ÙY?ÔÈ?“Ó0?u¿?Ož¸?2àf>äš>Öýž?Uw´?S×?Bí/?MÁ§?mmN?4)=>|Ñs>„{V>Š”>¯€>–Ó>ë]?£%¶?¨Òú?„Â?€Ïð?¹H?¸r#?+ç?#eu@F.@(8·?AqÞ?ãã?¤Kû?¸ô +?‡Å“?n¯²?¤,)?´1;?G +>÷—·?˜m”?ÇØÑ?ÈðŠ?Ê?¤õö?‚2°?em?L7ª?5ÝÏ?>Õô>e+&>ðñë?xje?°Å@(pË@_'?‹ßÎ?ˆÊ?Pû"?J]ê>øäÛ? Z¸?­ºå?­²?eýÖ?iÆ”?êÉï?ð–?"6â?I=bHŠúb­?  .?#Œ¾?:K?<ß²?WéÃ?a_»?›.“?×j…?”æB>û ? +“ø? +>ƒ?!.»?`K?cÊÃ?g‰g?Kâë? +\ƒ?(b?vˆÔ?5v­<§ê|=mš”=’æÐ=Ι.>((>W§=>Ì#>Þ‰w?=y•?ILø?UfÕ?K¼o?- º?4—B?Fü?Ež}?š›ú?£<¿?+G? >ý7_?eá?½Ñ'?½Ì9?~¬€?}Šç>¬=·y¯?­¼‘?¶¹&?a[?ž?Ï®?>W?p¬°?vÆÑ?(¦Y?,·$?¬'T?³j>°tK>ueó=-p>GÐ>¸éz?–2?¤=÷?„“¹?% ?Hdæ?9•}?cdf?dÍ?Â?”í”?3? +'½?g-•?ÀÙ?lá?mn? ? +ün?Ó B?ùÞ?þ7?÷ O@.)"@6å?t¿Ç?¦©@r¥@E?î[>‘/v?¨*ð?ÀšÆ?Š…9?€tu?C#£?<¼1?³¸Ô?¼êÒ?Å©#?ÌØ-?k÷/?Té?/¤ž?%'Ã?´Ãÿ?Á(o?Á0³?Á8Ò@)¾¹@4߸?6â?Q•?ðo?#?uË?vn_>“Æ>ws?ÊC?Îüä?‹©?%%?+r? £…?ÙËÞ?ÜÈý?ùõB?ù^?¡ÖD?•G>cûÇ>“9v?^L?†\£?­¸[?É›z@9³I@6­5@uC@ sÅ?ÂG ?·_I?‰Ë+?¢G@—?À¦=ù>0Ï2?§5?HÅÚ?¶MI?Ÿh-?bÃþ?¢–å@¿J@À8@Å @Ì@!r?ÑÆx?Bü?å$>à!?{K]?Óôb?·í?•¨ê?bž ?!5É?eAæ?s?Á€%?íÌ›?Orh=šÿ„?-)?‚ëv?‚ÑE?‚‘?N/>ß,$>8'=Ö+L>Xô>Œrµ?¦¨‡?ÂöN?¤¸–?¨¬?à\«?æe?Tí?…›Ý>¹uÈ>™à¨?>‡?3!W?“A?”.H?‚!™?ƒÇæ?Ã5Ô?À3À?‰Ï˜?˜&0@"­·@Þ@ûp@è¿@±+@ +½a?qÚ¬?ray?‚'ú?^ ?·M{?´“ ?—I?äš?ÂG?ßïÅ@6Ò@Š?åúõ?Œ]‚?þ?­t?hM¼>¾g??1¯S?‚É?5cÙ>±@?X·”?i\?Ó#™6Þ> ++7?§‹Œ?µÿY? íl?áv?€±?ƒ:@èŠ?þì?Œ[`?›Ø?õrÔ?ì ?·"r?¡Å¾=ÿöí>æ5é@hÇ?ûõ{?•ºR?¢O‚?Ÿ?=,>÷ É>ëèí?Ÿ#?8—?¬?§tÞ?’Ö?–×Î?¨×®?Œ·Ù?Òñ? |¥?x‘?І\@`“@6,>G?£Œ @2щ@F?ÖZ@¿@;{V@•´? ¾Í?z…¤?,Á# @Èy@7§?¬Ÿ?4&k?Žàï?¢kµ?蹋@ +d?ìçì?á_?¬üT?“¡ ?„ú­?€yû?€sö?€oì?Ûñ)?ün¤?^•o?]1?œ=C?¯áã?=¶l??á?TÚs?ae%?‘øn?—)Ü?èU/@§?·ÌÌ?¡v'?·*Õ?¸¤t?Ç<Ì?Ñq"@ Z@Í0?£4Ë?gŒM?È•?è#Å@C\@[‘í@,¥,@^z?‚ÇÕ?-cê@#áF@?Ä?õ‰?ȹc?ßÚ?íãÚ?Ô?ÅŠ ?l]?Kˆ ?›Ý„?¡D?ÄÝo?Ñã‡?”±Ï?~U?ˇœ?í§ª?]àh>òªù?W@^?y,p?s©?n)?­öQ?Ëœ­?×Úê?×ù`?Ó÷?Öo?ŸÁ4?}]u?zB?n+«?ˆ?”×O?¶Ñ)?ÎcŽ@”‡@í@"&ê@#Lï@êÀ?ü,¬@ +Ì÷@g?émF?¦'Š?­ýP?½"Ó?¢K*?o«Z?e]?¼î¢?¼áD?¼ØW?åK@@#h@ ûL?¿¹ +?Ñ?¿@ >;?ç!ú?Úí?lO?`®í@ V@1.>óÈÍ>óµ@TPŸ@e˜~?ƒØ|?Ka@ Å@B!?Ðb$?t×o?Îÿ@¦¢@6þ@QÏ@ ð@ +‚É@ +ˆv@@s@œä?û2*?ÞVa?áXÉ?㜯?Æ2 ?¾sp?·æê?´Áï?ØW?Ó,ð@Æ @"К?ÕÉT?šàñ?JK¶>ð!æ?‰”«?òð¦?óËh?ä™…?ó‰S@óV@ …?ƒ¡Š?Ö˜?§;Y?£¢?Ÿ¸G?§f’?áÛ{?éů?º~Ø?¿Þ?ž8Â?§DÊ?­¾|?²@?´T?è?â›A@CÂ@I!@#@¼?×v1?Ë%4?ôÍ?ý¤Á@¥N@ Æ5@%½¸@0|@`æf@•aa@{E(@ ?î@?}?ÒÔ#?Îe(?ûQ?ðt?ðÚ?âÜ¡?–”?jPÀ@à@j@HE–@ åR?ú^?™Ý?–¡î?±ñ?¹æ@]@w$#@CGH@.™¾@?!H@G ¡@$¤ @ÿÂ?ÚJÍ>óÂO?Ic"@.Uì@2Ô_?ºhÍ?ŸëÍ@§é@<î@èé@¾a@#Y˜@2$<@K ?ïžé?Ö®¥?Ö’î?÷€v?Õº¾?Æ#?ào?é(Ë?ʾ¨?Å•C?É"?»ë§?Î4?´Ù)?«##@<¨-@4>®@ +£6@Hp?´M§?hR?ÑÉ=@+@º@D…@ Ï`@F@4@âѦ?Öó…@²¹?ç®r?°ZL?Éòž?þA]@å?òz?ܧ–?¯?©üb?Šýr?m!Ó?d,Î?jÙ]?ƒ»9?›C?¦Ý>õÔ>Éz}?2>â«?~–:?ª4³@ í8@C\=@!+3?˜‹€?ÐZ?`o¢?IÎÁ?ŒWƒ?‡Þ@û@)¬À?ùÿn?µ…n?›¤ö?Jó-?qX? |Ø?”ÛÝ?ÀŒR?ÓÔ&?7Õt?jý?8 ?4–?r©Ñ?Ëh?š“?½qx?® ?$ôt>î¦?äð?òQï>û·À>>Ä1?4ö?+>°1=”A#>?‹ >èž×?N^@¢V@LŠ?ÓÌû?Àíì?HrP?Qs¤?¡› ?¯ùo?Ô}ù?Ôì ?¹ú=?ÀU?ÐLJ?×Ìm?¤.î?Mê?g‰”?(k?‘~™?qï?{ŠP?´UŠ?¦ »?ïÝ? =¤>èc‰? †?¬Ò¿?¦Š?‡Ôi?t³?G… ?U"…@6&@Ô{?‚ÿQ?cI?óa>ù@Æ?0IC?°i@¢Æ@@d?}Ö‡?j7?dïâ?i‹]?ÐFî?›‡x>yŦ?Œ`ý?€¨?sÝ;?{¥>=Ý? *?‘_ä?LIØ?På?Ðx¿?ýë·?‰;ä?b(?Žá?µà?‡†?8m‘=&î>Œ”>ì >Ê“>¨Ð_?§è~?¤‰û? 7Ô>¨p7>Ç‘@ 0@hOg@ìß?5>!×Þ?±¥?ƒÌu>å7î?„b%?±!?\º>ó]w>óÞ>óéZ?4kó?o,Å?;Y>óFÀ? ò?[åN?€÷?¦ßü?Œ4¦?!C?›=¾ñr>…¶Ø?‡Þ5?vKÏ>PG>"=d>óÔå>ÿSÑ?Þ…ì?ÚSá?̳>ô¸?¿lµ?ÑF ?‰K?t,k>Yñ>¯ÉG>ôSC?S‡U?„w«?T¢P?(3•?%Æ?#R,?5ZŸ?P“å?x‡?˜…¢?¬/~?Íí?¯ß!?8¨y?<Ï?el–?PsÝ>àŠf>ÉÞ<Ž=¢Âü?u2?që;|SÎ?ìt?Ç¢>Žèq>ÊX?~½ú?’o¦?=¼?u«">ä°‡>Œ{f? uŒ?#ø5?7Ä:?G"£? ª9>ÒÕü?ZL?ž Â?I—´>iǵ>à +>?W >èá>9›é>„ô©>ñåö?>þÐ@ @U¹?ãØ?ÛíV?Ä?¾À<>Ø~{>Þ-n?i‰š?püá?vâˆ?wE6?¯}W?¶¹B?9f´?¥˜>J»Q=“¸æ?OÌà?”ÑG?râ÷?Z—P?œÛi?¹ä5?˜ßÃ?wûš?-Ì¡>Î V>øó³?ÂÍ>óÉk?÷?.år?xtm?cùE?*?ÃA>ªß%>Üf?<˜¤?OÓŒ?®÷É?œqß>Ô`i>äÍ4?bT¹?k,?ñ®&?÷Äl?»2ƒ?³JÛ@@ÒŽ?˜…û?†“´? "? ý?ƒ…@?z Ð?t0?’çc>ã[g>?£«?&ü›?RU?ˆfš?œÄ +?¯àÕ?Âú‘?v5ù>úÚ%?-D€?PO?‘Å?ÈÓ?ŒÉ>ûF?%»?KQ'?UŠX?{‹^?VÊ? ë²?ÒzŠ@wdg@9×~?h¬c?€ °?£n“?†'>ü5:?l-@8“?öõ?%Ìy?ËÈ><\e>g÷>Ú”z? [à?€zÏ?h¯?Qkû?[öM?/Á‹?..“?,®?„´†?[pt?\õ~>ý—·?ªi?}…Ï?}Èë?}Ù?}åS?z~T?}:Ú?}þÓ?~1©=±Ûõ=w-Š?©?ŠÎ|=›o)>«˜‰>±T>©Œ>¡è?T]?l?žñi? HÀ?ž`?œv?Šºg?• ?º‘\?¿›?Õ­ÿ?ÝDQ?Œ‹ ?·È?$L¶?•¿?q d?õª>”7<<A@&’ß@=Ãw?ãel?Ó:@ V @ ®¸?ÞþO?Üè›? v§>·Á_>çXb?3Þ?¨?Ì*>µ >qgE?Îl?âüR?£ÃÊ?šºh?;dÂ?,ñâ?)i?’Ü?®x-?²õõ?´ÿÇ?· ;?ƒD»?€Ù›?y‡S?}‡±?€Ãa?})J=…õm=ÇæØ>âö >è4#?Á—æ?ºK=þÏÂ>=ðs?Z[?b”Õ?ÁÊN?¾ ?M‘?Ÿ\ +?¡h—?£uÔ?– ?…/?!D?@eü?•À‰?Œ¶3?bD]?lZi?w?'e?Â@§?Ðê?þü5?ßø?ƒ?‚šÂ?rüò?J!? Þ?§a?2ž?0va?"a{?Bß_?|gD?Êg@èÚ@#?ßWã?µBŒ?Ìþ?Ñó?ÓÛ?œ£?±›G?­Ý?¯ _?Œ??d‹.?’õÿ?«âã?l™?b0?–(Ë?¿¹8@ ³ó@!«?_D? #6?Â+¾?èT­?‡i+?NxÊ>îïÙ>½Ø©?“°‰#>‰Š?(!ß?rƒ?ÍõÊ?×?šÛ›?ƒ•?d)?tV(?Ïg?Ë Œ?»…p?ÌX‰@}I@¼\@±?î+Ã?‘!?Ÿ #?¹øz?ªªT?‚$ ?Ò?±z$?ÑD"@ ²ª?Ígð?!¿?Ãmd@RmÌ@`rZ@iø®?ÿ¨À>î ?X¿l?PW?.Ü?AÉU?iâº?î§@'  @Q¡m@v‡¦@.ª@ò?´ž¥?’ge@v@2?@ n?Ü\?Ë/?ÃÔ?zü¥?WË ?Ÿ~?©0?½É›?Âøq?øûê@ ²?Æšx?¶ ‘??¬?í>ºÈ/>¾Èo?I?Žºš?ûñ?Êl?ŽF?‹îÀ?Àù?Ç9?þUz?úÈ@É2?èÈ>Š|? Á?ÃkÀ?ÄÆŸ@A?äY{?}³?.o?¨‡?cü?Ö»>û/>™äx? Áþ?­*:?ª³ò?±J?›¹?M³??nK8?™ãc?pæÄ?´&?¯@ç6@ {½@Æ?Îbj?g>a?»"(@PM?×]®?µ/Š?¬ô?‘»d?~ž¾?W^?%x*>ùÀ†>ö·%?$c?†“?À·H?¸|×?°y>?[RQ? ?–pÏ?É¿@F@:$˜?ÙN6?€æN?ÐFR?ô•ã?¾á?®;=?怿?ñ+˜@ W˜@5ߢ?—ÐÑ?¯ˆ?Rk6?{'¹?ò@l?ƒ‰Õ?0m6?¦T;?ÀÃW?œe™?Ž•R?ƒ:?€k?¨è?¸ø?‘ðf?¨r?²iÙ?ÀkÛ?†ä?kA?÷Ÿå@Óà?ª³?”½]?ëÑ2@·?j¸ ?87?âk3?ÿñ’?Öxá?ÅB6?Áu»?ÉÍX?øí9@¸?OÄ/>ÿ‡0?Ó*R?úi?KŒÛ?…@JZ@+ýc?ý`²?óK'?±Ú?£ö–?˜š?–îæ?® N?¸ìp?8Û>ì¹ý?¯.Z?Ý-:?øÇÇ?þi,?ž_ü?~KC?^­|?]ÈI>ÓÿØ>xô?Šü{?»ß‡?¹?¶Tÿ?dL?4ç?ëŠ@û?ü¹Ž?äí?dÃÂ>ðƒ€?Ÿ?½æã?ŸP²?‘©?Èň?ìš?ý[@o°@8„@Z²@(áÓ?üe?߈0?Él ?j˜š>uE?3/¥?žï?~ã•?[N3?±lW@M ?½ªF?Q¯ú?ƒóÆ?¦—+?ׂT@1°@ß?‡ñ4?ˆ¤N?Š“8?‘tz?¼G¥?ËŒ@?ùÅ?ÉfS?¿º¨?z˜Ù?Š§=?î¾ ?õ×Ö?ùÊX?òFÖ?áBÅ?ä9¾?Î5?Ë ´?—;E?²a?•"ø?‰z ?´“?¸`?ô¦;@$G?Òsn?ØeM?Ór&?ÐY ?sšç?4bp?9¡í?3åû?>³É?MÎò?’×Ü?¨Á ?ÏÄ?ø#Q?óî(?ôS'?ß!4?Âh?ÅÄ_?Ä‘“?å±v@ï @ê?ß68?Ï +ë?šœU?¡rÌ?Þ›ž?Ügt?§¦?°ƒ­@8ìÝ@8Ù”?5ò?>‰?â“è?ðTŽ@1\@ è?Ãèœ?¤Âr?œéf?§5Š?ð ï@æ@ •ú@!@ +,@/>?ó¦ï?°Óv?ž®?uq?_7>ô]&>ý†¢?4?9×”?Îý±?Ø0£?:Ñp?3{v?Çù?ÚE£?† ‘?s<·?‰ÏC?‡ñ?¥Gý?µ{ý?bÓ?%hÕ?oø_?–Ï6?ÁÜ8?øwy?ú'?ñ Ž@P©@J¡T@Câ?Ô_?Ô%{@»É@Â@2Ʊ@0V?¡%z?¦¦@-‘@IE¨?ãÕm?’R+?µ¢Ò?¾BÄ?Ÿ³?Š,?L ?Ÿ=–?˜§m?f9¹?¦fï@`š4@RÑe?âä?ÝóÕ@Vf@!?¿ªl?¿}>?âõ?î?´K5?.s?àr?®,ø?öœ´@EB@H@viM@i©‡?Ýtw?å²M?·>?»ë@ð@ ‹÷@8«•@X…@6ÿR@Y9@$”@E6d@@;@°@§?É®3?ÍåØ@ Àð@t_@)v5@5×?ÒÑ0?uÿX?Ó +@q2@7?Ê„&?Ê›I?¯) ?­(¹?³^?‹(–?ñí?öŒ@$ùj@0ØC@ 9a?òwÖ?ôE?èE7?ÔÔ?’(H?Ž¨r@6æ@q¿@­ü@ ê-@hm+@‰\@k…@FX8@&½@!È@ˆ‹@b @ +Q>Í­>§Ì @é|@Ë@Á@®'@ 4@"Èi@ç-?Å©Ï?·i@?¥ºx?¯W)@€Š @€Òc@¹î?ÐåM?Ó°¥?â;¬@ü@B†_@6g¤@P@¹Á@>›·@Jÿ@d@Õ@0è6@DEÜ@S¸”@c«Å@N\÷@ç’@÷Æ?ý+@2Ô?–Ól?Ž„q?´Z)?Ôy@±@² ?£Ð?µo•?»U?ëS>åXž>äÛ7?)¯c?@ú‹?€_R?¬V?¼Ëy?åÎö?ðþ`@&%Ù@)Em?¹]?º_…?B—±?ºÞ?_Ác?‡®L?G¨]?úü>î›/>è“\?G?”C_? "Ù?¬¼F?Æq¿?_ó’?5ŸÝ?`Vñ?m)?ÎÙä?ëÆç@ò?øæ’?É ?±â‡?OA=K4?€ø@(Áâ@ÌE?Üß'?»¾û?A´a?iNü?q>(?]k<” Ú=nÞ4?'žd?Cðå?`hg?}Î?'ík?Ÿ½>øQ©>ùI?â“E?ß?½?Ã9>ù‚?Jü»?zº“?Š=?ƒà¶?}?|ép?}“9?„Ó"?Øo¥?Ïgß>¸v?öþÃ?í~Y?¸©.?{T>ž÷>ùç×?3?1p?/G?à?*Bª>£)$>µ:Ê?•?g?g)[?Wmø?º?Â|? `Å? æ˜? +m +?¡L’?”/>ÞâÙ>žÏ/=Ó¿Ÿ@Œ?ºÌ>™éà=ÊÙÈ>nÔù>ñžc=„ì'; kó‰>ùiC?ñç>ü[a>ó>>þÝ2?˜?hLÅ?¶Œ”?Šß<>ówý?™?=Êç?^ÝK?§9 ?…œ>,g^?Wh?š0Ð@eÊ@ªt>ô³®>ôJ?‘\û?•„C?=x]?5¤Î?9m÷?-~}>ÿ[ë>ô=y>ôH¶>ôN}?-‡+?HÊÿ?KEÿ?MÀ?JÉW?=Ó)?8ع?3ÜÇ?>ô¯†?x܆?â)Ö?ª‰ >ÙþT>´ù=ÄÅ>" +/>úÒÒ? Ë?ug?Þ ?®ÿK?¦¿ø>õ7Þ>õM8>ÕH3>Íàõ?h_U?uwu?uÛ?u‘<>ó‡®>¬>œK*>ª:‘?z õ? -¬?%ÿ>‰g?>?—›?ŒÐ?lå?XßÇ?Xtn?)µ´>œk¬?Q›?|ê?*d?¨zp?ÆCì@Ká@2Ê?â=v?Ò{ =ä=ÚÞy?oQ? +C?t\×?w°? eù?ë¦?¢%ì?¬c¦?¢>ÐHm>gɼ>P›¥?o³·?™!?¬×€?¹Ô?”¯?wâÆ?™Ž>í>ôïø?7?#? Ù>èÚ”>í‹q?U?:’¢?x{s?bÉ? +-?9ßì?ªñ9?ÉE@"B2@ Q„=Œ(h=Œn=þùw=Ú+À>ñØ]>ýP?{³Ó?Z‹>P“å>‚º>KA> kê?9œ?3+>?ñÿ@ŠÒ?¤}?‘¼G?A5ˆ?'Ò?œ +–?»Åü?m–œ?<Ý?C“Ü?CƒŽ?:Vø?-OR?ªßÔ?äá ?ˆL>û –?ˆT?1èÕ?²Ïé@î®?ÜX?ƒ~ô?°!^?õQ +?±Â$?®Þ?FR?{Ü%?[–…?!?;º‡?c#:?‚ü?¿Ñ?°Á§?Tu/?4%Ê>“ñ>µ¤ß?£Ù?"—§?ƒ?‰Ív> í?}"?_,'=ʬø?c¡Ä?XFÂ?Lí +?Doýè¹>ú:°=b=ŸK}?¬é?¦Ö?~?~_æ?I³›?@z>ÿoF>þ ¹>þ³~>þÅÛ?‰¯Ü?ˆ¬p?r­¥?|!J?Ÿ&…?¢¤˜? ‡>ÿE•?‹P=?•¨´?” ž?Î,?H÷a?KS?gßé?mTb?cÊ’?j´?Òæ?u£?·?µ?Ç€›?Š|E?†ˆq?—Ñð?ŸK‰?¾²L?ÀZZ?l?[û?‚v?{`Á?÷&[@fÊ=î÷?ô7,?üÐ|?ݾ +?Úæ(?²rd?¬¿ò?«á2?®ãï?ctÍ?dó©?Q?Zæ«?øê?‹º|? ?€O?€˜Á?†°?òUÆ?íï@j)@ 8?0Åä?2Â!>ÂBÃ>Ç$–?)$I?Q;ª?ê@ª?ß–L?¥®a?ž:Î?=l?‡ù?­U>?œl>Âà8? Vá?­¹ç?–?e¿?/ÓM?™Î?Ÿ T?ºn?Á%’?ÊX“@aü@Ap1@œÙ? ?~Žï?rÚª?nÍo?jº?œ'=?Ò7J?¤B?Zoº?€‘½?£,L?¶¿?ž4?¡ûÃ?Ä ?Èv?Éö?»eÛ?ëÌq?»ÑK?•Ž?XQ?!L?ðü?ÑÑ?ã}?´1x? –j?Ž®?±Jú?ÄÃC@ À"@HG?†H©?9h¦?!—»?Ë?YÛ¤?`ß_?~E1?‚ª?Û?ÝdU@ ÅÍ@ Cª?T&Ï?8o¥?£—V?§âH?SdÏ?[}?{¥¦?fu?¾?(®ô@?ó[Á?‚ê?‚ëÚ?…‡Ÿ?_œ?Ãã†?Òd?ú/ý?Úæ‡?‹WÇ?Š8U?‚¥?†ûÛ?“Ó?³ +Â?ï=?°Ø²?Â?—ÚÂ@Oö@<ð®@}ýŒ@¸·>P s>ɸ>­DÆ?—X£?ÿn +?Ã`§?‚·Q@Ü@5Ô ?Ùíß?{>¾á<<8a¹?2æ=?‚[?W>Ê$?Á5?5Í?«Es?ÂûJ?í ?ï „?¦é¢?›Ã[?ð¯? £?†v?îè?Ä2?ÏÁ;?o¦Í?Xm×>3h@> Üü?¢­2?¨b??nu½?~J÷?ýso?÷:©?…OC?‚ À?‡£?„/Ž?,dƒ?.Ž>Õ2>ò…/?aÞý?¢ŒJ@#¿»@} >Çë[?[? ?rÈV?8êl?nî>ÒTá?)ÀÄ?¬ H?œ¡µ?`•á?‘´c?ÐRò?öHm@ª‘@Ùa?¾šz?¥£?ƒoÓ?\¾?.F¤?V[›?n1¨?‡Â?žóÎ?¡3?šóo?Úƒu@ há?ä”#?ÁÂ?oEá? Ý?Ikê?jþ?aŽÒ?X#Õ?n¬[?º?Bõ ?¦£?Á"3@ó¢?…R ?•!?Yb§?€Ýf?°Uœ?ÇÞÇ?½B~?µÃ6?ÑB§?áŒÅ@$äu@6‰ +?ÊÛ{?EM?ZâË?CÔ?÷ç@Ú?†¸W?!¨Ñ?¨Þ¿?À¹?À¬÷?À¦ç?–½×?‰uú?1‡Ê?å™@ I!@>ÒÝ@ ú.?úÊÛ>ë->+ ó?¸šÖ?ß4?‘uè?€û?È…Ú?ÙÒ?›ïY?„¿®?¶£®?ǵ?׃Ö?ãÓ ?Zêž?#‰ã?â >ÿ—›?2i?,û?oÐ?]œ?èj?÷-Ð@3F®@?\)?àïK?¿D'?G^5?$7I@:·@ÕÏ?öÌ)?ç™·?¬2ê?œ¶ÿ?Nñz?/ap@7#@;0?×ì]?´a+>àS©=ý4@ ð„@:ÆÆ?îš?¾jÝ?¾]q?¾TZ?Ó¯¶?ÔƒÚ@—f@4ˆª?ȧ-?‰‡?n6õ?FI?iåO?†òÙ?¨á·?¬rÓ?²Û‰?½¨Œ?ˆÉ7?=¥ë?ù̪@8D@a¿?üO;?º(>?„zy?`…?,ƒ-?«Gk?ž[Š?Ë,?ØY@e?ÂéÂ>]¡8?§??“—&?y ó?;ÈÉ?z+-?²xr?ã‹’@"ú @vê?~B@?‘nð?ÃĤ@-ñ@„ÂÜ@m+É@|i@…®?»Í¾?Åÿ@ à@Ä@ל@·?ùîu?ùÐŒ?á{Õ?ç§H@/Ÿe@6úÜ>‡Îÿ=”kG?sw÷?_‡>¹òX>{|?¼ò?âà6?Õ1s?ÅX×?¨÷?x™?(dd>ømm?Ò°@*N@CÙ?ð*p?¿”Ý?~¿?˜9?¹Ì#@ïÃ@t™¶@1n%?…ƒ«?Œ™q?‡w¶?™×;?¹MÁ?´Õ?¡W;?¢Y"?Œe?‘Ž\@)~P@.†A@0-®@7s?ÿgv?ö @ +Í@®?ò¦?á”?…J²??uä?Àlt?î§]@›p@-|i@ ¢†?ÚhŠ?¾éJ?ŒÍz?).P<<ú¡?0bÁ@ ®B?åNA?V¿À?wAó?ï=b?èhÌ@ v‚@Pý?ˆËN?vÂÿ?S=s?X3?ÂÍ¢?à¢3?—ÊÃ?tc©@Œ¸@<p?þº|?¦A8?¾Dz?Û"C?ãb1?ñ_w?âÇC?Ë£:?Ê¥|?ä&W?ýN@&È÷@.d ?|?W?‡¹™Á@ú.@"¢$?îÞo?î½2?Ñ`Û?Þ^Ü?·\>‡rê?Ÿ0×?Ü‚÷?ÆWM?²ZG?€+Ú>òiê?MË3?Êò¹?ÖìQ?Ü*ù?ô§ ?±£Ü?±É?”fý?Ž?è)Z?û—6?Â,?ª0Q?­~y?²¨è?æ¨õ@Ó@ É?ªÿ¸?¶ƒ.?°K?°3³?™ ?œ°ë?­Ç?¯Øó?×´>?ê:@z‚@< @ ¿I@nÄ@$0"@,Ž?¤ Ê?†Â?–Ô?ª É@ª@c¡H@]Ä@GN8@:ó;?þ76?îÍB?8; ? +ž>IÄ–<Ž#†>ûð?’Ø4?¹Ô_?âó†?Ö]0?(`ö?2ÔF?Ñ9–?Â8ž?“]_?t+x?Ž"r?°-\?¼ë³?Üu?ònZ@,å@‰@ Êç@µs?ÀX?§Ñ?ÝZ@k1@®Š@+Ñ@ gî?þ-§?ø³ã@·Ä?øœF?x¡…>ëRò?Dƒã?˜±g?  «?†™>?†zN?n­>à͹?Vé¿?cgœ?ì}Õ@ ÿÁ?¥ZL? Û"?âþ>̹e?(¶ ?¯¶Z?Œ©?Ê÷?´a7@Að/@I"?¶ŽÀ?/h?‰mÂ?ÅŸÍ?Á`?ʧ¹?ËÈ?p&~?}¾?¬P?­?|?gì?vUH?‰?ˆ=©?s[¡?µ[@;ß?à >>Gä>Âtg>é’C>éÙ'?Øn¦?ሊ?ˆ?k 1?Î&?ë¹`@»=@£?Òb?ŽiD?n}–?Ë©?:?=f,?Vi?$ ú?NÊ?TÕ?3?‘+S?ƒy¶?p n?]­ñ?›`V?ª ?<÷€?/EÃ?M6 +?\²µ?qS>ö¤ñ?$†ß?Q¦Ä?²+›?¢1Á>ç°>–_›?¿ˆv?À¨Û?»U+?²‘>ƒ¬>áëÕ?¿‡ë?¡¾<>‡™Ö>Y·Á>úÝ?5˜?1_µ?O5s?MQË?`Èó?ƒ<?<ÇË?û>-9=ƒúö<‹ç4?‚ä×?^5->Ç¡?Í?„ãí?Pé=Þ( >3ûÞ>y„æ?¼M_?¼=Ã<Òö?1« >v·µ? T>Í>òÍó=Á#h>¹»0>ú> >&Z}<ãß =‰8=+ ?‰ ú?Ý¥Î? Áþ?a+Ê??là?%«>Ó^1=ÏKì>àî?sƒÂ??¿ >ËÌÈ?û?{/7?f‹ó߈?Cc?ÝÐô?×Q£>t·à>x¸?7œ=?HV?7J~?,¾^?§5>?¯ò¦?]Ü>¡ït>¦É.>«ª?’ˆM?Ç×?¢U€?Ñ?Y¥à?ÖÙ?Pyû?ŠÏ‚?%‘Û=5>N?+Î?´Õ?¤iƒ?tð8?të”?u£?uçY?|ï«?q•>õ/ï?¼©?¥)G?£+¡@p«@t>¯½G>ƒà?‡˜\?‘³ß>Q1S?Št%?¸O\?€×>_Nô>k ¿>vÐÄ?MwÝ?œÖW?R3V>Å̳>ŽG2>-ëv>!ëŽ>Ø\?¡þ?š?‹­?]?¼?e§5?v¤ö?sÍÀ?iÍZ?‚t&?ìÇ?ëp?vö†?wa?rˆp?oG&?€6s?‚¾å@/@äú?~@º?A8?â»?Œ¢â?]ˆŽ?L[*?6~?*ÃÐ?=Ð…?BsE>䬜>p˜¼?]¦?µRB?X@õ>J9?HÌ?xi?¡“ê?åþ.?ÜFQ?¸üc?›Ýl?IË?LŒð?.} +?Bô¶?°ýY?ž9 <9"¦=óH?¹X«?µaò?dïþ?]sÒ>Øë“>Ð?[(?]ìä?tË·?„VË?¥Ûª?¦~a?¤ú>ÄÄU?¼qß?Þ×?P̶>ö˜1?#h@?3Ƕ?‚jG?•,?¶k(?ÕNƒ?‰âÃ?VZ?¥Û?âÀÔ?¯º·?†ÈÐ?¡A?¼Ž?…ÖÉ?½8?n:¶?¹‘¢?·z¡?·‘N?ˆÆ>ûôa?¶™?~?;•±?|<ú?™Ô ?Óú[?¾d?w?xÿ¼?5Ã`?\ð™?žKª?˜wÑ?‹½™?v¼?L®Œ?-Dh>‚t?Ü!?Ûšû?Ê$?È‹?}™\?€eî?‰Tu?'ô>ýÜ?Èv?tü4?nl?…)f?„>L? N?"Ã?âÉ:?ܵ?[09?^Íé@ ê@xd?¾Ó?¾Öå?F<·?@%?@ª€?Fu?6ž?1h>ÿå‘>ÿ[Â?©“»?®°X>!Ì–=Ð>$?i=/?Zé'>Ír=¥Ï?¯î«?¼7¸@%@z?¿¦d?¹£æ?ÃÄ?€(½>§:>­!Æ>…û‹>“?NþÐ?Yæœ?×h +?Ú›Þ<Èš :ôÓ0?¾á:?ÊÒ @¨ê@<¢?é*‹?è´Ý?YIè?\²¤? ±`?µ†=ÀDÝ>1äI@Åb?ús?„Ô^?{û¯?M«>õfÄ=ü¬>C`>ŸR¥?ô"@ DP>­íÙ?6Æ?ˆùÒ?ÒÜ?‚2t>¤Q?Š¾s?áÍa?‘¸î?,VÍ?<—þ?Cn?G‘²?K±Ç?ŽŒú?ªâ\?ðÑ‹@½?¼Õ|?‘h?zJ}?lÜT?/ïò?{L@ ‡L@9aa??ijÂ=”3q>âW?ø ?Ïãú?àÉ8?³µ$?­;®? {?¨ÂÚ@:xU@@”´?„÷?†í?žªv?™X?2çÞ?9k/?³*]?±03?"# ?K:?øM@?ã1 ?e¨z?‡Íp?ÉêÕ?™¡‘<ž3›?1\¿@ @Ö?ñ§¬ÖF>-™W>´&q? ?åñ@/et?ó=?±o”?SNT?+?_ós?‚jÕ?E¹?‚v?pú©?b:G?ž¤?©l¸?”þ¬?“?5ð?–Û?F ?5—4?ž}j?¤±ê?Mš¶?G™?µ°D?µâý?ª™?­NŠ?Qg\?G¿k?[ÖQ?K²F?û?#xâ?¼‹Ç?Ƹ@^¯?òg³?Â?oˆZ?ºZ?)fS?«a6?±TŒ?Ó2L?Ìl?ÓË?Ú0‰?Æþ?µ÷1?¤ç¦?¶1Z?á&`?·A{?Nœ ?L ‹?-·¹?"+>¾K¹>¦T>I×¾? ‰–?‰y ?‡,?„à)? ´?Àû÷?‚ª‡?VÑ?µ ¢@:,?²5?»?6Sà?OCÈ?œd??ɧJ?Çã?Á¼N?.Z?!Õ?dÏ ?¦aO?Á’©?~éÉ?> §?m~ø?€÷C?×µ@îÅ?¯ìK?†pr?Û™?ýÝ?¦Á”?‡ƒQ?Ú¡?öŸ?óžE?ñ*b?Ôz@?Õ¿?Çê.?Àög?ªø²?¢ž>ñä >Ž‡ >e%€>>?Ô¦?­Ù€?£E?¤ÈÉ?¼R?À?µ÷p?¸g˜?¾z#?Âù?÷Kg@<1?.vq>Õ+¯@Òe@(|Ô?ëê½?Ö~?åTš?æ-Z?¾Øë?½Ô,?Ø0?ÓÍã?RÑê?-’H?PˆÅ?\9}?”ÂÄ?‹NÙ?ËÌ?áÖC?šä?†OÔ?êÏ?œÚ?¼¶¾?×{®?ðàª?ñ·W?Ô'¨?ÇK›@ (@1ú?ß»Õ?Ö˜;?ÞÁ'?Ü,¤?Ò$?~qþ@ää@9}Ë@8K\@8?²aß?~?´(ö?ÀÆ)@'Žo@9ô*?éŠ>?¾PE?Ʊ0?Ì ?Å‚?ÌgÉ?¥I?Œ#z?ÆD?Þ¿À?®g?ôê?éìÛ@‡Ž?ÍÜ?·?ÚÖ¬?ü¸þ?ü«?ü?Ž~d?¢É?M|?|S{?¬Òä?Êþç@Tg@!ñŽ@ ?ä@œ´@_?Øη?4¨r?‹p©?Ò(Û?RÉ>y¯ƒ>öTÒ?{:Ü?ôê‘@w`Þ@KÃS?º=þ?ÖÄ @Ê@;#@?£œ@@4“@&•]@û]?»Å?ßÀ?ú4Z@Ž?@*uò@.˜@ñ/@k)?y¿%?y¯*?¾ã‚?½Š?ò²Y?ën?êÎW?å¤.?k¨?8©?”L›?©O™?§©æ?±h8?£ßu?—7g?‰º©?výl? Þ?þbÅ?Ü8h?ºö@ +æ0@8ä£@ Ǫ?¹Å?Ðk3@'M?çNå?”ºœ?™µ”?¬¥? BÝ?›9e?˜¬?vÓ\?w¤¹?‡eÅ?“åG?¸Ú ?¸Œ¨>÷k&>þ‚‡@ª¸@W/?¬¬Â?¤!?2Î]?%å?Äõª?à«?Ø­¿?âDW@ Z@%"‡?ë @+ßJ@2e@Ã?Y©œ?,Ö¯?;J˜?$ϼ?[Y×?r¹[?¯‹ä?ØÚL@~È@3™[@Ì!?¨sR?ºÅ?Ö¢`?ìª@¢6?丙?'ļ? +OÎ?…:\?{i¼@ @Øÿ@ú8@…?×ñÝ?Ü ?£ã +?T¥?iÉŒ??'Ç@Æ‹@g{›@^šÝ@UÙ­@5Q.?rxÔ?©A‚@e7Ë@ZàÝ?îÖý?îµ?¢WÙ?˜6³?¾‡µ?­£?¸¤ß?Ãy?¸=¹?²T?™L?n}í?m~?{œl?lEÏ?sh?1ý?Õå?л.?³ ä?±V_@>|@!ôœ?ÃlS?£ã?3 >ùmÇ?‹o7?õ·t@Â@×@3ö?îòx?æ,à?£±?™æ¶?¶Õ¤?¹Zn?Ðã?ç0^?ëü ?ðßd@¸µ@R +%@Fu@+å±@hŠ?¦4Í?,V@ ¶@ |?ëh#?æ]@`ö@,˜@@,û@VEØ@p^a@ŠN¶@„åq@I¤@CZ”@Ùá@#ùY?©Œc?wÕž?f‹[?]3§@ Wõ@sm@YŒÉ@'˜£@7Ú¬@4ÇŽ@>²›?øø¬?ãä£?nõ>ê²R?ƒÕÕ@=\Ÿ@Ý^@ +{ó?’zï?yG?.lO>ïÓØ?ïº@J‘‹@&Êó?âã6?ÕÍ?(àS?^?@(—š@DÒp@1¹¯@Ï(?ûõÏ?ÚîV?Éx?©ò?³jØ@[8@À–@#”¸@/{ ?À|ž?b§‚?«¢`?ë`"?âÓú?Ô ?êà?Í Ø?Þ;Ø@Ê@ É?@']?à[Ý?Ôõ|?Ì ƒ?ÀÜ ?µž9?°‚Æ?×áŠ?ÌŠû?‚à—?n´?î:Ê@7?¡¢8>㺌?c«?22®?M½‡@j@ø@7ëO@Ebq?æ!?ÛÁ,?•$?9ý_?š“(?åcœ?ÖP?¢#?žX@>@ÿ‚?%çp?6ª?¨ñ·?¬¼e?¡Ç>¦Wð?k¨?±Ô«?ÅL¢?ïMf?¸—X>$¤ó?¢ÿå?‰³õ?Él?½Ú|?ãÖ?âø?Ÿy[?—Öò?¥Ý?²wo?Œ¢Æ?5¾8?r¶Ó?¯¬¤?­þQ?¡©?Vu¦>Q&]?„,^?šÚe?ÜJ^?åz?³´p?©÷Ó?6ã/?S4°?™k(?’¼®>ÿyÄ>õj´>õñg>ö‡a?]M~?W:?ƒvõ?š×?&;Æ?6ÓÒ?ψ??ò;Ë?Z¼?)NB?3µµ?'?†|´?“?b3[?IßPî0_?Bú ?ƒá?I±‹? ”$>.g>—ÔJ> z?… +‡?ˆ¥¢<ï¬\ï˜>=Þ?‰œŽ?£©=?Ù²>Ê_S@ÿ¤@.Dh@\¡v?èø>Ϲk?€ÞE>º¨<“öð;J€>ÓI¤>ëi?Yp£?kà¶? +Õ1>Ýõ,>ÚzÙ>Öør?’s¼?¿B¤?f­½?n?ý¹>óU–>fda>æa?sw;?} o?~|?€¨˜?ŽO¹?‚þ?F|Ó?%…3>ëX>Úµ|?%8?‚†?± ]?²Hæ?2V²?(íN>Ûáa>Ò³ú?;$ç?Cù^?ÖS+?ëÍ?>>›m>,a)>1?‡),?º ?¬¼=Â$3?cK?MéŠ?£œ\?Ø©?”NÊ? Á?4>÷?p±Ò?sŸB?tÕ|?tà’?tíØ?:Íq=œ|>‚­«?eìÿ?uþ?·Ý$?­|œ?±Ý?0y?8Ì—?0[>Üô¨>ðõ©>±ã½>™ÖI?+?Ó9?^\?ï„> "F>n­?2MÞ?uï`?ŠMð?’ü?I±>ö!x>ÐiØ>®3ˆ?Uo:?É\‚?–óÚ>Æž?â(?vˆÑ?]9â?ñï?gñ?7?Œq?vÚž?vè¿?vó–?ukm?)Ë? +ýC?BÐ?Rù’@,ÞÝ@5Ú?! ´>‹#¶?7º?NEq?Ke?GÓc?4¡5?2go?‰!>û^?¹0â@ +?¾á˜?_;?Pz?Mm}?‚Ý?¨>g?Ðc@Mþ?Ϭ;>4ý­?!v‘?ðìC?ËiÅ?]?Ì”>ôõo? ÿ+?}@…?…Ûë?µ_?¶»?Þw¸?Øe¬?®û?¬ùG? n>ùÎ>?Š;¡?’V?/4G?_ð? Ô?¶÷?]õØ?=aÇ?m×8?z}L?…Õ?M?—¸>ç=?‚öQ?­ÏU@(‘@#F8?äZˆ?¡Éî?³ +—?¼}l?×9?õ<{?ú×[?ù¿p?À’£?ƒhX?È‹@ +ëö?Îñ?b8?DE$?rÒ?=\»?x¬Ë?ˆŽ?–d£?”D1?…(?‘b?½¾Ÿ?ºÐ?±f…?Äö>üöµ>Øè½>!¦Þ>ÀþÚ?Ÿ~-?†î“>—½Ë>Ç—%?‡M?–ø ?øœØ?àm>øß\?-,m?ù¡?áÖÊ? Š€?ù>þ3S? =‘?›ª? åÔ?­ú?¨ÍO?¬h?°eÀ?t«?#@7>ë¾ ? V?¹>ë?± S?´Ž²?¬Ý}>ÿ9?¤?YÅ?{ Ö>Ä3S>àÉ¿@4«î@5N?ŽÈ?‡¿J:Šù;ú’?²?iS?ûg +?öHß?`? *?N3Ð?FA?>gy?9Í{?—vß?’¨e?˜Ã?š¡(?V›H?L¢Î?«Þ?u9’?‘’{?œ?ÀÌó?¿8î?áë?„òî?ar?]?î?¯??#‡a?ùÁ?ô´‡?½> ?°‘?Õ±?”Î?q¶?Xµ™>Ḩ?0·Þ@Å?ýÊR?¡YW?šû ?•1j?f>Á_W?-þ?ÕË?Þ‰?â‡?×oê?¹È³?¸×«?Áæ€?»Eâ?­Ã×?’ºÑ?!™ ?Šá›@`f?È|Ì?1yÊ?qTY?ºJ?Œs?©Õ?o÷å?¾™?¶YO?©‘®?õ?ju? N…>ÅF?‘³â?Ýcž@´½@"?äTÜ?X‚?oÅ @‚@@[è@ +çš?þ®N?¸è{?§c?fè?î¦@¡‰@¡j?žíÎ?—À?X^ú?Pɵ@a@÷n?C…¾?EËÍ?¦lòdv>øx0?d A?yÝ ?«tó?âÈ=r©´?tt@,Á@?ÀŒè?Ño-@ü?ã^?”™õ?£‰?µ¯?­fè?ŸŽ?«ÊòeG>ò_?̨P@øð?Ñiú?¾Õï?D–s?äI?Ö—¥?÷Ý?•€!?ï?˜³k?—â$?“‡?(?›ÈE? ?K%’D?ã\?é‡ +?‚u?„K¶?Ö +?Ó#·?Ö»_?Ô >?Yk?iTh?ÿO?±3@^[@M„T?¿Ýî?¼Ÿ?´6?³Êÿ?¯?ÅÈÇ?Òß?×NŒ?Úƒ@u@5à@3›?Ÿ^? ÷6?¦è‹?‘]?5é!?|3™?Áüí?8ò>Í]Õ?'Œ?i¼?©ì™?âŸ?ÇÄÜ?·Í­@:@@U?ÛÎÍ?Læ?‰ú?Ö‰å?†u‰?;§?7?1?—ý?Ñé·?˜Âú?t#?‚¬‘?x6Z>ðw§>R¯Å?/îº?€£´?  e>‡R?/› ?i€6?ÃÕa?ëuS?ùrI?ÿ?Òn*?Ã5w?Lï?Qb>¸Xç>¹‹?«ˆ'?Ñi.?ýV@ ?Œßr?hªg?²?À×¾>öü?>dQ‰?{2?/Ã+?ŠšÊ?“+›?lb ?S?˜?žØ¡?®Ãb?"€?Iu?iÂ#?-Z?†µa?Œâ?«(è?ªgÓ?ßæ5?ïé}@ˆ?@”©@vQ?ÿþx?®ˆ…? ßö?÷ +ª@ Ÿ?t'0?RN]?Qgß?F@‘_@4ª>öœÖ=çÛ +@ œ@{p@¢1?ö6@ŒÞ@4š?¨‡Ç?šYä?ÈÏ"?ÑÐC?¯÷ ?¯L[?æ×?æ=?¨üM?§SØ?³5F?®—F?ïm.?õ¯¢@kñ@_½?©0L?†Š?Ú®?÷¦ª?þ¾@?k«B?!_£?¥64?¾(+?Ô ?Ö*ü?¥F.?—Ð?ȶ?Ü—´?ßW&?âð@?þœ?†Å.?Щ?®?–?è“g?òqá?ø2I?°K£?z1ü?ãrE@rñ?•Js>ÉŠ?Šn?ÇZ?Ñߌ?Õê?åG?ø°œ?Ðc¦?˜è.?Ì‚@T•?÷Zù?Ê!¾?¶Òƒ?¢øa?â‡ê@8ãK@ +;è?Ù?Y¬™?Ì Ï?ëùæ@Ÿ$@æD?ä—Q?ÌØ*?Êš?_öa?ú%?ù ?ë®?ãEë?àHƒ?í[?“œ?Vª?øxõ?ùt-?t?ß–@&ýI@0¯Y@L f@Gy‚?ÍÐ+?£Áq?Œ2)?€â?éŠÔ@ë8?û~?øRƒ?Œún?ß?læ?Àû©?ÛT%?÷Oc?£¤.?rx?˜-?,ÀÁ?}M1?¹x8?Àœ¿?Òß0?×uÄ?Ô­?Éæ^?¿¹h?¦ùì?C>ôv/?¸Í4?· h? I~>öãæ?ºYÓ?Ç7?°ÞÍ?ª +?¬Ï˜? Æ]?¹ì½?Ï!?—©Ì?u0[?ˆ17?œÕ?ŠÕ}?“€?¬¡?¼^ë? kÃ?thŽ?xZÑ?‚ÙK?°%@õ@WÒ>¹G'?|¿?¶ž³?¿“@#³Z@!Ζ?ì˜y?Ú­@RÆ@„R?Ôˆ?´,?´eÙ?µÔ×@ã(@(P‰?×}Õ?)ß–?Šcû?ÎYÏ?Ý )@ O@``@!7³@#VE@¡¢?öI™?y~?ˆ*Á?‹Hy?’Jj?Ãåã?ÆÖþ?­&?šl?߸?ø•ó@rS@:>ª@6^?~á¤?›fG?î[æ?ÿ„H@:«Þ@:ü?îÄ ??e»G?ecŒ?ú$Ë@¯T?ÛR;?¾Øæ?µ&?ªÌŒ?®Ô ?±v·?ÒYœ@¶@bÅ?æ“T?á@y@*3@#©A?Ÿ:ð?›†¸@‹»@4–@í]?ú]?íê˜?ã™ý?àÌ +?ëur@v@&Ú"@#Ó?é!ú?ñ¬Y?¿÷«?È0?Û~;?áçV?i>ñº!?¼Ö£@+@ÓR@χ@W%@(/`@.ËW@œ@G%@:U@@J]v?ô&œ?³†V?Ñl?á+?ùÆÀ@Îî@.Í?¾ò.?Û½×@!âˆ@$…?ê™?ç\9@_Œy@L?ñ=R?Mhœ@Lu@RH@EÔ©@Áª@Ä@(žÁ@/¨w@ýj?õ8^@ ±“@Ã@?@±Ï@4Ê|@\ˆ@X%Í@;r(@@Få?–ª›?ŒÜ{?Çûæ?ÝñR?ãR?Úp!@8›@A§Û@<Ÿ¾@$@ Hø@M£@B·@@ú@  @ ?þ@Ec@f‰@¦Þ?ë‰@-ç@¶²@â+?˜m?—2µ?Ñ´?â`@®X@G(@ +e@#@ ~?¥Ö ?›Qa?§é[?ªV@ˆPz@¶Î<@R$#?ƒÈ'?{!&?@éb?xä@ A@âš?ÎD=?½{Ø?Gš?dŠ? aû>¦$p?Eó(?·áû?¬çc?¡à?–ÔH?Ú"I?â¼ì?ã±+?âÊó@-Åÿ@^}@)Lb?¢5m?®gY?Ç™?Þb;?¸@r?®u?Õ9?éN?Š¢W>㯲?…,F?þã?Ë-Ë>‚Éœ>(©˜?v–†?j©Š?Î(¸?Ù_E?®yÄ?”{q?¸˜ø?åX©?ûëµ@2ü@6>õÞË?&%#>èý7>æ”Ü?;*?wŒp>µ+?nïÏ?å¾Ì?Òp¸?¶ïG?Ë?Ý‘í?Ã/_@¼š@ ™?êÌX@xö?¾+?¶Š?¨Û¬?Ê?Zy ?6(ª?Œ¼±?±­Ù?œ +ã?r„?O%e?"_{?m¢>ù*>s:ˆ>—ßq>ÝÞT?pïA?f«B?pG?½> +\›>Bƒ–?Óçà?ÍÃV?]À?-ªh?`D>ö]³>K‰>‘Ä>ò6 >ø¤Ø=’';¶i>óSç>ül}?|žN?z¸X?'í¯?´é?ª|??|OU?J «?á°?Hßó?8?!V?b³?k*?g?£·½?¡üÇ?o†h?Q”o>©i>¤æ > !3?Ç´>êÙð>ɼÍ>ï¡$? ñC?ZNÒ?Ps…?w@Ñ?n¦>û^ø>]«û@H"µ@F@@ uc?_áÚ=Óí,>2à<“H!>êŽâ>ò/V>òòk?}†?)V>öþ9>ó]?P‘°?aª!>¼ª>|S~?zë‰?ÍK>ðõ¥=âÌÄ=Gã˜>Šd>µ?_G¨?¶¢S?À¶?Ç@?—gÃ?)â7? $>ó°Ò?>só?¶Ð”?“ÏÉ>s®>£“È?C|Y?K ??”Õ?C?)âš?'œ¯>°·¸>¤è?Aæh?OÔ? >ôA=´…Ý?dk?&1•>´².>Mˆ=t"?Gú?°bc?l˜T>ô°£?1ËÑ?tÂÎ?N=LF°>ùéI?¦'q?—?u#?‡OŸ?·Îc?¤9x>½BL>Ыó?uB;?q÷™>§Å(>¡¡©>ð2É>õ{+?¢[? f>ßp·>ìH>ùÃÐ>õÀÀ?Sšó?uÛ6?‚5Ï?Š(?;½×>ö B>aq2>µ ‰?45»>Çl>–v?UŸ`?[ÅÜ?aþ?ƒkD?´âõ?¬4™?vȉ?vÔà?váÇ?„0?âØT?ÙÿÔ>÷..>÷-]?‡Öœ?–C>Øl?S¸#?w‚?›r8?¡A ?Œx?‚LZ?x[?wáË?§¥?Ç— ?Ã~J?º?œ†ø?yàÍ?r¯A?x]?Bæ=ããe?°š?’ ˜?§ù?º?¸ë‚?¶¡R?Šœ-;¡ À>Ov·?y$û?gé5?9>?¼+?5d?>oÉ?0Vd?:t]?Xß)?Uô?$¼?(^>?v•e?z¨?Þ¯I?â.‰?\ð¦?9rM?nG?zo?›h^?š®É?bò¸?SÛ?Ùt@ +?µˆ„?‰±`>ó¯‡> *#?ZÊ=?­¨€?’ì<#<\ü=H?/[_?|`»?•L•?½cL?§Òë?|¨t??—>\ Ë>Ñnï?]z]?Iu?&…[?q‹ñ?ìü ?Ü3?¥ H?­Ä?¾·?¼Ç?¹Z³?˜-W<t=Ãé?†Z?(£ó?q)(?mbò?iœ*?wí?°˜[?ªZÛ?‘0É?`?R× ?A˜ê>—Á1>ŸRœ?WÚ?&š—@8Î@ =?ÊX¼?ÁU>¥G­>Ôþ—?¤×?˜$;>k"¿>•2 ?ß*å?åñ?ë]ô>«,?ÀÆf?É߸@ éq@6´?_‰?OÀ?0N?F¥ ?Á6?¸'¤?„š¦?q7?8¤?¿C? ? +º°?è?fP@ y@u?ñÖÚ?ÊÌ°?)rF?-Cf?!5(?IFÍ?¥fj? “?¡šû?ß*l@+ƒ~@ 9?©±¹?ŽQf?2ì?GC?þîù?ÂJ5?½¼?µï¤?)Nç?ÌÕã@8!B@¸¼@ üï?²?fqz?.;€?°Û?Éz?¦À¿?º\‡?Ÿh?m³?(ð^?׃o@Gó?ÇK´?¯+©?Ÿ«?—v> ÎØ=“QŒ?ؘ>@ä¯?HÅ’? íÓ>f7]>_íÌ=Öèì=×Óô?ÖñÉ?æ3Š?0Û +?1¯³?ý#Ô?óR>?º P?¿ã¸?Ãi‡?ÂI‰?ט#?ÉRp?¢˜8?«¦ê?®Øy?£{¹?A×k?Pô«?‡Œó?_ ê?0?K +?¼]°?‡&<¦Ä0?6hê@Ô?ÕEÊ?‚›?c…?87Z?XÀ>Õyì?q&?à Y?Ë ©?ÏqÞ?“07??!?§f"?×î@@»e@"Ÿ?Ê/G?X‚¬?„Ñ?“Ub?„H?jPF?gô›?Y[ì>¨ Ó=Ô®ü?ñÜz@"1@9 +?ÿ¼˜?ó0s?êb?þ•Ø@íÍ@ +›f@ ƒ@ íÜ@ Ø?yçë?ik?¤û^?¤Žö?‚gñ?„”?Šb`?÷j?™‹o?—Íæ?¶VÛ?·òë?=k×?&>'Û©>ÄR?ým[?á5Ö?E-?€à@>k @'Ù«?„[?µ;o?RX?‹L?‘Ä[?‹æ™?}I`?»L@®#?ûrÒ?Žè?ˆ`£?;û*?µÆï?'G?,«¹?vƒ?±À?Œw?3fÔ?ðÚ:@R‹·?ÝÄ÷=V¯œ>Ç*? ›?P z?w›?‚„Ì?‹ N?~Å?do3?'Üe?.-?‹?ÙûÉ?©âÝ?‡ÒJ?~ÙF?†V×?€ÞÇ?jK>ÐÅ¢>,fX?Zþ?‘Êó?€)È?a¿??\²?J{æ?£¥1?¾¨?« ?‚àÚ?ÙË®?ìôÏ?³uN?žÉ?¸}å?Áv?cb?TÁ6?­Ã•?²Û²?Úž)?â#?h|Ž?9a*?IŒ?QÖH?¢,?­ÿ¼?õ­¾@^½?Š’?Wë?Œ÷?àN=Ÿ6Ÿ<‡^¤@$~d@46n?Ÿß?‹(1?¤s?!Å?Üéd?ê0™?X£è?Pü×?Øý|?à¬/?™i?¿ÓÁ?§?›?š#,?» +¦?¿©¥>z…ù=Ä>Ë?zµ?†Á®?µÍ:?½‡]?øØñ?ÿæ?œG2?˜™R@#7@ +é×?fò³?JØ4?ìÕ®?õ÷ +?Ó5ƒ?×–@?)"ï>þzð@/ª@./í@ à@#yô?ãÄó?×ïýãE?h¼¾?…g?©‚æ?¬³?ó´?D?À¤ï?Ñåÿ@{@ /—?Òn?½ÜI?Ó³?Ø€À@¹'@=‘‹?÷1?¬À?‹X?|¦$?¢îÎ?¹K¼?â±²?ùªâ?’œ¯?6Ô>?1_>ȼ?©éÈ@/@Ú@úž@}?þ#?Ûý ?¼¯û?õÀm@$s@!¢±@.ök@4ZÈ@3X@!*¤?úþ[?å€÷?¶ê?£G>O'•?vLC@4–ÿ@)s|@Æ2?ã¤D?þ®?J”@ Ù¤@Dš@'ñ÷@'>ΡÜ>Øä@Ò¥@Œv?ù€Ó?ùlö@ŽS@?©?Öâ ?Ú•–?ѧæ?áúO? F-?“©º?ëk?ût`@«n@ N?ÿíQ?ä»?À¢ª?£?Ô?Âi™?ä^L?Îôî?¹©¨?·= ?­oN?ëT£@»c@)Xò@FÕ@ô¥?c¬,?¢ÿž@ Ó*@µ§?Å%j?ש‡?çM?å£o?¸Æn?»ut?ÿC³?òÀ_@A‡@Á<@;rÓ@9TW?äw?Íí‡?el‡?4#Î?cu¯?u&õ?×Ép@ß)?xéë>6¤…?y¡?ðEy?Ú83?µq?±i4?­¼´?œ}è?~±Z?‰|?^Äš?TY“?—˜u?—4|@ Í@#¢)@ )j@%&1@>$«@Jnä?ûÏ?&Ñ?· j?è=°?õ¡8@íò?ÇÌ]?ƒ'w?Þ¤«@2ÔÔ@&S?ñ?àÂ?¨³?Ìa­@`~¼@g&= RÐ=ÁXJ?Í—æ?ÔòÚ@)w¸@1é«@€?ð¾@4Ca@`b_@.(n??Ûr?ºh‡?·1+?´Pm?Ìö1@|ï@wC?YQ©?qvz>üñ°>îd?-©ö?@+Ë?v®é?mK?L%L?S„„?e+¦?o_6?ÜN@Fzù@3e?þR@¸ä@>eÕ@@g?€)³?lY0?´Ä??½e@F*@Dè-@ A¢?´uñ?£r£?ŽE?›êw?´8ý?ÂÂ1?ÍlF?Èèõ?ž\p?•*?¿+?¾~?Ú?ò?çß±@Ÿ@*Ñ@XR?×u?ÐDB?Éå´?ÞNm@5}@9ß¹?ï‹?zÊ‘@,¥Š@Jð ?¾±²?#ß?ò·b@Eÿœ@5¤@QH@ /-?ôpØ?ýŽ?ÎÂ?Ö€@„¿@¦@å‘@Q@Þˆ@"D\@#VN@Ç£@¤?úÚâ?öÙ@¯@•Í@±@”0?«”£?N߸?×ËÎ@6’1@)m.?éxÐ?óKî?õ°!?ð¶?›ùg?u,–?½OP?äˆR?Ƴ)?³W!?ü{4@G¦Ú@E8m@+ +;@*ým@Uêb@kñL@AÉB@)R­@ì@­z@;z@)¦|@5ã@¸°@,Þ?p£ ?"-$?Ù|¸@ Tå?´ -?JV–?»Ö¥@*Á@(~n@qK@ˆø?³›?©ý€@.&@,{Ô@F¼?Ÿ$¦? 7 ?¢ –?¬¹ý@BG2@<ç‰@ʬ@ ŽY@W¼@'AV?·Hr>²–x?@¼g?â‰Þ?â•›?â—³?âž?â¨C?â°¯@„H@ øL@ +«@=$@LH?5a?‰C ?eû)?CÙÝ?ÃÕ·?ÜSí?’ŒŒ?€»v?‹Â?„ ?ªAx@wD?þþŽ?I?„7ó?Þ†Ê?ánœ?û?ŒŒc?‹i?‹…Œ?¹]î?åOª?âéå?Í9]?Æî-@ le?ÿ*?ÝÈ?„ò?Bºä?÷ >°ý%>Jß?O5?®Üß?†Ô˜?;?’¾S@Ÿ@Áy?éY8?é£Â>Ãܳ>Îå>Ú^r_ß>ï+>åÈ> Ö¦>ž­3?cϧ?o•Í?g ê?Qºk? @Õ?¶G…?¾î+?Û ?¹ÏÀ?­+Š>æi>¦’¨?6ŠL?2ØÍ=_?A=ç@¤;¢z£>ð$>ü9]?*×2?<êÎ?ŠÊ ?—h ?§H?mm?¶?ð…?:ˆ?Y?GŒ?$à?" +¤>“Ö;£#>Ù~“?>0l?;I?CÀ>ˆ„Ë>#œÀ>6ÏÓ>“wþ?„”?Mðt?ÇU?6HÈ?HÞê?„ºˆ?¢Y"> t/? w’>“"7?ý›ç@ é@*úm?ªØ>™Ê <žÛ»>¦¿)?ˆç]>žŸß?äí?¬ÅÅ?©ÛC>öt>òüˆ=¢ë¯=‹ùð?]ÏË?sÚ?»åÙ?Âr?S|?1qæ>éL>´+?w?,ÅŠ>ãÀO>¥:õ>Ë×û?Ûl?Â?;¡ã?H÷?@ #?\®„?VÁ?‘y’?¶Ã5?’Ä>éŒY>“>X[·>€Åê>óÚÆ?êü?œ¤?S?sÿŽ?tïC?BäY?=×%?9: ?4´>„yœ>Cú-?¥ü ?Ák?² +c?¯Ú‘>í±6=žŒa>ªoî>ô‚‡>ôŒ5>ô–&?|)†?µë7?uÓ >ãû‹>ùS4?µ‡>à¤ä>Å+? R?·¼?§3?WIw?I¢3?ÙF?0Îà?Û?ˆÁ>õU!>ôÙq>Íi>Û•5? C>ø Ë>ðy6>õ¤X?1&^?C?{jï?€¸Ì?> ×?!ñ?Ó>ÆI ?@E±?ùn?"ñø=¨£ñ>Æ>4Mõ>49û>2‡ï>w3›>ü&Ï>¶Ìa<†d0>¥> ?´è~?´ÝZ?À}a?»_Š?bt?VÏ=Úú=õÅ%>´‰>­A†?0À?'4È?RU&?_Ë&?,Q?)°Ç?–8?šAg?h?hF?F]?¢= ?»ÛV?Ï8?£ù?xDæ?I…k?¼£?ˆÄN?ÙW²?ÚŸ8?ψ[?´ˆ?‡25?Y–&>÷—î?[†?y É?Cî[=I|>[´…?eÂ?bW1?^êx?TzŠ?Z™? ×U>ù¸?B@ ‘ì@6\?Ο?Ô“Ò?N¶Ç?>ž$?tÅ?zYu?³Pi?Ǻò?6\ >úžú?^éh?zÁc?¡µÃ?°J¹?|Ýf?YùI>èwü>9KY>¸J€>ûOU>ùK>ñæÁ?Cµø?{™?œ7à?³ +?‡nÀ?N²Ö?kZH?|?@Ãò>ü'>?Ý?/lŠ?h:]?ššÒ?«5¾?¼Lt? û>?ko°?a T?n#ã?“à(?¹Ð*?¼|?ÍÚr?«(©?/ŠÉ?Pê?¤º¯?¢`?ˆç?ièª?7z>û–h>ýÏ"?2êí?·Ù‚?Ÿì?íØ?/ž¸?d¡?Œ­@?~YÊ?`§J>°Ð>±£>Oê>××G?Ã2 ?¾'w?¾,?ÉÕz?Î?±K“>2`>­ó?Ú^|?ÑQÓ?bFd?d8ã??Ÿ?+|~>ä¦é>î§B>ÿ¹>ÿÑ?¿É?‰ ?ø?€j?€ C?}êY?f§?†]­@x·?þˆ}>ø5­?r?C„?¡?€QP?ˆ+K?Á”f?»ÿr?nð?‚¿]?ØaW?Öo•?ÔyŠ?Ú/š@–š?óM¡?µ8V?¹à?Á·?¿úg?½[b?Úe@ a@ém?¸âH?§6â?q[ò?Kle>ôK¡?VÓ¿?ѯI?ª½£?Ã? íƒ?1¯Ù?]âÌ?qæ?¢„X?¡ ò?̃t@¾i@î?™KY?mçx>ðz§>˪K>¡v?Ÿth@¯Ç?ߦ“?c=M?®×´?÷b?Àû•?w?„B?ŽJ¸?¬0?Â:•?ÂDJ?ÂGE?_æ½>Àëi?‹è?Ô'F?ô¤µ@›Ó?9­?1‡ì?€Œ/?V,ƒ?KÚ&?»ª`?Ú4“?¸¹?¨Åä@Êf@<ø@7ì†@7bš@bª@`t?ÒPš?·ð?‹W©?ƒú@gÃ@ß6?ŸÐ>Þ:ú?œZ‚?š`D@BŒ@j(>ys?òº?õ Ÿ?Ë™}?ÉcÕ?ã6‰?åj>?ïjù?Ü/?Ãö?Úg?[¸â?†#’?ÒÛ?ù<¼@@Xˆ@!^Ï?úQ?\ «?ý&?‚©Œ@2J?¹º? ­ö?!b)?¯ß?‹­?Û<×?ͧ’?¼«?ÑO»?íåÁ?Î,À?¶¦t? Z?…Ë3@éŠ@Rà?ÑÐË?‹ +?wŽU?—Ð?µäA?Âñ’?ý¢R@õÊ@%Ç@1Œ"?â¿.?º$Y?¼Ûn?Âi#?’UO?ŠTÃ@øÐ@?¬Å£?›£K?Ú-Ã?å=C?¿T>?ÂÃ?–ÑÜ?Žì}?qd?~(e?ÂÂÉ?¾™?±^?¥ŸZ?“[—?ŠOÜ>G —?Ñzµ?ÇÈ?–šT?›×?È”W?Æõ–?Å°‰?˜¥ê>µ>¢àÈ?«Ô?@'”?Ÿ?Ÿ¨ ?âÑ»?Ø_Z?Å&º?¹X??³×B?–P{?<Ìù?‡ÞÐ?·œ>?Ãiì?èÛt?¼Ò?o·?qL´?`Õî?‘Ó1?µ£5?·ç?º'È?¢®Å?‡ã=?¦/§?¿v?½]?¼ s?˜é‘?8?¿wq?ä;À?Ô¯l?Ç7f?¦/#?™rÖ?ÿEî@!/?¸éu?vêM?©(”?Á‚G?LEø?øc? +¼?°¦ž@¯í@'½@,H©@2¾#?³Ü—?|›5?²o[?¾ûÐ?óÚ@ºã?ùÈ?õ¤F?ÊÎ?À÷û?Wüµ?+¸ò?å:›@À?â¨ý?ßÓð?Ã5Ë?¹T@é,?û/?±o ?¥e«?ç„5?ó¦@/-ò@7Ê ?æy?ƒêì?€i?{¶?Ä]ê?Ò±j?)ya?gN@ôÇ@¼s?Kà>þ~T? Ÿ†?ßb?ÑÃÈ?ß,?Þ]à?ÛIþ?Úü…?åî[?ÃRƒ?¿Ý?,Ít?æ?¥pÈ?± ?& ?{·?õ|•?ÿ"@£s@ŒF?«>ž?¨Ãý?iÇY?X©|@-}@%ð?³}c?¡Eó?Öc?•»@$@8bf@“T@)_?1†×>þ U?ÿé@L?PP?5h@ f@/d@_?ô…%@‚Ù@ øÍ?×q?½þ½?ÔJ?å!?¯¼?¹:@1Þ@&1-?ÅØa?“BV?ð×@À`? ”É?Vˆ¥?{Z?‚ i?.|?ç_?oˆ>ü,ý?=+?aÌl?®ðê?â¿w@!p"@C–E@¸!?ùÒ?Àv?‡©U?Ô'@Ïæ?Ç£‹?æÒ?†–Ü?á(?í·;?ø;Ã@$r@Ë—?ð¼ò?VÀp?˜bð@ En@¤è?¼q°?¬Þì?3y,?‹˜@*å@$i +@ ^7@¯d?Ì!Æ?Ò2!@+O¿@.=ž?ðÆÁ?öíÿ@lò@ÀH?Á¥¢?ºÊo?Ù6w?Ö4›?óp„?ïÉw?îäj?ö›Ó?ù=?øiF?ËÓž?º,¡?íô @*-?¬u?8jè?XñC?yº?œØV?¹«P?ÈLE?á8Z?ù@`U@'¨É@=[÷@ eÌ?öÞÌ?ÎW:?Oz?’V?›x? –©? n?¼Y@‡à @ˆ`?þæ›?þW©?¼Ìh?Çå%?à¡W?ß ?–¾?z¥u?s°â?u²@K@2ƒÞ?âR[?t²Ó?•×ä?³¹ä?Q>»=‰) ?—è?@A† @(é?Qké?jÒ2?¶Æè?¾Cï?ðäß?çÓ:?Ƕ?Îø?ª?«ƒ}?’$û?ƒK ?×Óf?èM¼@RŽŠ@uk@4ý@#Š?¾ñp?`™·?žãø?êDr?æ>¬?·‡:?È@í?Ê0g?ŸÒ >á:ª? ’G@Ç@W0@>3ë@<….@$i@¼ @#Ç?ðƒ?åÿ“?ê#&@ +•£@¬k@!¶?õW@ +©ü@1}â@†&?Ń?É3?‘â?ˆh ?€;u?p>¸[r>•æã?ɤ„@Òõ?‚{i>2Ï=>ˆ¾è>ôR°?¾7@O~Ó@:½§?ìäq?õoµ@!A™@#G?ª„s?¶­?Å+L?Õ‹?—ù,?q[§?—º0?°´Ú?–åƒ?kWT?¥$@y¼@óO@-¼ï@$½?×6«?Û{¥@È@ %t?ÍFê?±D?øc@==@¶@@*~@}?ûÎÄ?ø¥o@Á ?ù*Í?݉@!qÃ@.¼¯?攫?›ô·@ +_@T)(@[Á@gÑÛ@U-®?Ø^¾?Ïc?Œ“Š?‚| ?}Ð?lóW@’ô@-@G)¯@\ºC@6#ö?æ[N?õZ”@Ýú@Í?/•²?¾?“:Ï?²¸q?§Þ?’u«@Zå@qª{@T²Ý@-#?þõñ@Âï@BY@!*o@)ú­?åÕC?³*×?–V]?dO9?ÌXª@VZÛ@P*@*ü]@*ò|?‰?cÄ?¯L?ì*¡?ÙDg?Çf@má@C@@-$?õé¯?× ?Ë1•?ÕÖ¯?‘Žu?pk½?kœØ?I¥~?¢X÷@BŽ@ Ø@#™@+v°?Ïì"?¸¯«?þ^‘@~ƒ?ã…ê?©æq?ÇcM@ ¶@ 'L@mÞ"@k0%@ +Óé@ê.?ÉF?±Ñè?’?GKY?c»?¢c‡?¸qú@Lk@Åé?ä¯?â§>@±@'tþ@ +QÈ?âÍ”?Å«±?!Ë?/Þ?ã?ãW?4Aª>ôSœ>ó³?”?•×?ÎÖý?³i9?’Kï?¦•?ä(?â?iïÛ?pe @/ø@"ê%?›F?(Õ?´†?å<½@7@8±`@4K†?´"7?ÀŠý@Ÿ£@ ¬?‹;s?}œ¡?éL?‰RD?¶¨‹?æçÞ?³€“?Ož¶?oI?¿EC?ÑD…?Ô°?Ûƒ6@8M@|s?çìQ?Íúë?ǯ=?¾%?‹š€?l ì?•ì)?Ä@ü?”†È?¤?-Ys?3ÍŠ?PI‘?š¡(?‰ÝJ?ŠG?uj£?r3>áÞq=è^†>‹hL?Å?R?¢Áä?-Ì¿?<>6¸=ÚE>ï¦÷?ø–?”²4? 3??.w?E¾>HÂ=¬@c?¨*i?µ£Ê>óè>Ë’>ø ¡>ý`«>þ +?Ë"?mÜB?Z{½=ÙL>/ë?08?ƒŒ?i¾?9,ø?O¯>ê)}>¡Í;?n?A +’?HÛL? ú„? +U–?z¸u?U—=§l >(9r>1dm?3^‡?‰Ÿg?› >”>P= O/<1¶(=º×Ä=¡•ª?bN?Y>©?›ñW?TXë>Ÿ¼¸=i<Ïû =ZÑ*>Ë>öúa?jÑK> ~>)==}H=×28Á€;ž˜?n¬í?s??‘ü?•Kï?ba´?Sÿ˜?ñ>óA?J·? o?AÁª?I.:?_âŒ?c-?]g0?W—a?é[>×hì?Oî¹?–¼Ø?—Ǭ?˜Ó‡?í¹?< ?M[>Œù0>ÌÈ?(úÒ?0é +?m¸Z?w@–?sóé?ré?„jŽ?Š c?¨zE?©|¸?^`¢?^X?ü¿<@Ð/?†_[?gº"?j2ß?l«à?ùˆ>ôqæ>ô=>ô…@?Ñc•@@×?æwÌ?­,?¨õ?e ­?.!>Ë'>öÍh?.ìf?, z? ?AkÌ?’¸©?Žu¿?ßÛ?œê?ÒJ©?ƺÍ?NÆ'?D¤‡?3DÍ?8þÌ?7Œ?1–+>¤~I>“7?Îä1?õÄí?uNc?*ÿ¥?›7ú?¸wÍ?-Ü>Ló¿? ¨þ?I«3?ƒ«µ?« ?Þnï@‹¦?ä`À?v| +?u‘‘?oÍË?O8?™U?-®?ƒ[?ƒ¡?vìü?rç0?=îÕ?.*g> ÉM>P>ö‡>÷V?…Èl?†?Y?R»?(õú?@› ?‘¸s?ŸPó?†ˆ£?wó ?ŠÎã?ÿ§?njý?VòK?ZY­?]À”?,λ>øxX?ÌÃ@7,^@)æ÷@M~?ÁDz;©]?#`2?òyµ?«Aq>Þ¯?äãH?×~¸?­a¢?¢9·?W5#?SÀ$?PKl?X#—?ݾñ?å6 ?Ÿ¸ ?ûG?{”©?rÐ3?±-s?°ë¦=í¼–?6S?HNs?6)?>u?™È? "|>ê%>>êJ?ݤÑ@u®?Œ;‰?×p?‘v×?·4r?Xcj? +v,?ZÖÓ?‡ß6?·l·?Ò£‡@"÷@é?˜¼>)6P>8!z>Gý>£>äýK?kì4?¿?›-¡?XÓÅ?p:?häv?™0g?îe?ë©#?݇?Ërº?¥ço?~Ë#>ƒ¢?=Â?ù Ë?ç¾,?¼âP?Íhc?ôÔé?âjá?¾k?º#‡?©Cü?Ï? ;?éÌ?#Íô?=JH?x†é?m›?a…ø?€>¨?Üñ¸?Ìö·?~ÏA?—ν@OÕ?îÇQ?+ס?/@&?Z¦?Nè¼>ÿSŠ?1÷ù?ßôƒ?Äç|>4R>0˜I>ÿ¯?W?}šÈ?¤@*@5æG@-g,@—@ëÛ?³7…?¯ï?²°4?©±Â?-)4?J,?¶.¡?­ï9?£µH?Ž¦)?Ü!?:‹ ?ÀšÆ?ÂÚ•?ÑÕ„?ß ÷@ƒW?õf$?ÒUi?ÁÓ¼?iÿ??ˆM¥?Àþ3?¯ûq?z'p?€`Y?‚[é?†N?…?iõº?l™?iÙ?Е¿?§??BFL?†‡·?Äâ6?°ur?½Ñ?–Õ?¥)å?¬Í:? +?Ã%Å?¹7‡?¤¼L?‘ËÅ?•ÜM?™ï¯?_§s>¾Í?B?êêã?³=y/·>ƒoÛ>óÜï?CX?g×?ç1.@E½?Ñ{?‰æ?«úÇ?Â?í?‘“q?aÓO?:žÎ?*ù½?jì?‹;ã?xÎ9?WU™?¿(P?â>e?V8’?¨é?™µÈ?¼§A?ÓÛŽ?܃H?¢(°?‘c?ÎÇ&?áÞ˜?of>­ô?¯â0?±R?ýfK@­ +?Ìñ?ÍJ? +Œ)?H„>‰Qö>¾©j@]B@£[>´ní?Ž¸@Õi@ÿ§?º@É?°Fö?B#Ž?N3?K'?sš?Âæk?¯£ ?R N?„?ß?ä2?È7P?_"‚?e­?‰e#?e3á?Ü®?‹*°@ø¹?æà'?¸ž¯?æ­@ªµ?Ä€ç?Să?0 ?ç?}Ú ?®7U?—¿??÷6?z’Ò?|ƒÚ@|2@Th?½yÝ>Î`ü?5¦“?XÈ?Ðd?ö—Â?ªà²?ŽÝÀ?h¡S?aRl?5úl?Ú,=Øs;·@>åfª? +j&@+ÉO@>‰4?ü#F?éç„?óvƒ?òs“?²æ?­,U@Bª@áò?¯1¯?­[í@@Üþ@>K@vq?ŸH­?‰>™˜#?U@»S?ÿ {??ó´?÷}ª@øÒ@ÒN@Æo?÷Öœ?¿ Ú?ž´?(ã™?—–?¼™×@Új@(ôh@C @ Ù?УK?£hõ?G™ +?ÀÇE@#¯N?õjÑ?Ž,˜?Š!?jR?Cy?b®?C~«?[¢?‹¾C?â½?ËMp?ÿb”@ú@œu?¶òÒ?‡$–?„8?2?²5ð?ÐáO?´¯?¨«ä?«þ%?©9Ô?Ö{^?õU?é»G?ãEX@x)@ÚÖ?Ì“E?«N?–ïK?‘Ž@+‘@)|ª?Ʀ²?–Pù?))Ø?˜"?œŸ? Ðw?}%k?ŽÏ#@aÂ@éu?Ò—?Àñ[?Eì”?+‰×?<Üü?RƒÉ?Öâ?áÓc?Æ…ê?È„,@<·@Oc@p1@  ?Ök?Íí(?ò,‹?ø ©?¹‚G?¹@?ƒXº?€-ö?ƒ¿â?†l!?¬t0?©ˆÅ?åvå?ñ†=Í¿:? ž?¥€x?¾h?¿Ò«@ Ê-@ ƒô?×%?‚™Æ?©W?®‚û?‚“?a{?? à?/Vö?+Ç?¹²ó?ÂÂÊ?Ë¿?ОW@ B7@ +P¦?8ƒ]?%Ì­?¹.1?ÈÔ†?À‡ ?¾ßª?Üu?áë[?·‡²?­QÃ@=ó"@L«Ç?Mg>þµ?n‰€?}éÞ?‰ll?ƒ,G?·L>?ÅÞÅ?•è?‘`?ªþ”?¹æŽ@µ@ ý³?ÛÍ?¾1Ô?ùŽð@«É@ÆÌ?ûTì?¿‘¯?®—>ÌçZ?‚Ÿ–?½QÉ?敶?ö‹@T(@)ùˆ?‰m<>V²V?DL/?‘%–?DZT?úøR@//?üÌx?¦&å?2#?Éê@¶?äߪ?‹ê,?ZæŸ?5{?u³ç?Ã>¿?Vs?Ã_?GA?z›?”ºy?Ë:Û?Ï·¼?Ïig?º;{?„†h?žÅ@I¬@Î.?×z"?ÎÈ?éI%?çóõ?»-?¹†?ˆs? ³@9îý@8T@bÓ"@\sÆ@/WD@(Þp?ñy˜?êÑ'?ý0ï?ù‘6?áw^?ßBD?Ä«–?º$*?¸¼€?¬vV@ Ù@1‹\@$U@¥q?Ѩ?‚ÝŒ?[ÚÞ?2šj?eM?÷ù?Ä+›@ C@•š?¾îE?¼"˜?£Ì²?£¾?…z)?SËŠ>5l>cª?” ?ëU?èR?1\V@E×@:æC?cÕü?áÒ!?ç4è?Ð?½'?’û4?¢ê?÷sí?÷æ?sA¬?s&?†ÑÈ?ƒ{@/P@!ˆ?_‹?'Â?cßØ?™Þ@6ªS@j4@Èu?€Ò?;ý·>Ñ‚˜>蔪?Ï ?µ€ã@“@_ém>0Š†=èNÉ?ô‘;?øUô@ 59@%³ò?þÆ_?ð9)?ð•?ð?²™´?Œè®@…@byS@>\"@ ð @*Ý@3Sn@ öý?³"Ý?³¸?²ù§?²àš?’7`?•fx?N+>¨á'?G?¥xú?Î1B?èñ#?ÏH?¬žñ?ÉÏ@ …?ù’Ó?–? D?Šw ?Ÿq?¾b_?ƼO?lüš?Wƒº?ª²?¶·?Š©?w$¸?Jñ?eß?‰ô¸@ ˆI@Š@B90@FˆÝ?Ô›‰?ËÆc?™Æ? *r?„V"?o"?À)¨?õQ@[â@B7#@-¸È@-¹@¤e?Âþº?¾c@kZ3@x}ð@Sˆ)@J¿R@ XÍ@ÚU?å¤ä?Õ7Œ@ +@­@;Ä(@6Mè?ù>Ò@/r@ lì?ÿ÷%@<îö@EWÆ@"+S@ß+@×Ñ@XÝ@·†?‘; ?¨Gk@Úf@ɤ?ÁŒ¨?³Ò_?Øì@?áé?W™>©ë ?±‰@:@A$6@0ªS@4"r@ª÷@"£?È|ô?­æ?ôA@™ï?©&?JÇ?«ß€@HÓ@L£¢@Fm@>t +?´5ž?ƒ‹l@ã:@>•Y@K >@P_¬@0G‘@ ¯.@΄@N©·@S¼#?¥?€ã¾?îC@?”@%^¸@8€Ü@!„d@ ½¸@ ±?øVc?ó M@2ÿ@p@"‚@(HŸ@îD?Ô™?ºÓ?›í?ÅýŠ@>ùq@O0j?Èj/?®Ø?Ò“^?Þ.·?»V?š£?Š: +?b{h?‰¸â@ 3×@"üŸ?ê±?â¢-?½ä¸?¾pQ?׆?âÊ[?¼÷ë?bä +?rá?ãà?ã·@¬@ B@*„@&@@Óq?ã’½?ö=Ã?úÅu?ÙÝ?ØÚ0?Þ±Ú?âE™?ÚÙû?‰YÐ?œÐ¥?DU¹>äâ‰?Ž÷Þ?å5š?ÂPF?nám?i…?q&4?~cO?â:ó?ôÐJ?/JF>æÖð?ž›ù?Õ?º?Äkp?¯’C?èÜŠ@×_?Ѳí>Öz?|.?‰r?–Ùõ?ÝËA?éÂ?:þ?:â?…ê?¦ª“?‰nè?kúV>Ðß—?£‰Ž@*1 ?ñC[?n9?dÐ%?pZ–?“°é?£” +?¢Ù¡?p™?kE?L¢ü?=à{@Äs@†Å?ˆü?1H?³pc?·©|?x±3?b‡Ë@¬¤@?->ÓûÁ>›Â?ô?+_?:ü? /?”¿?„O^>nµF>‡õÃ>¦‚—>Éÿ1? }?ì^>æŠk>ãø‹?-E¥?‹CÀ@ÜÐ?£Ð&;©m>œpè?P?dt†?…-©?G??;>ßcÒ>—…¸?%ðL?°Á‘?ÏÄI?©&>ÙÑ=­~A<âYÉ?Ôøè@ÅA?µžÀ?8ð¼>?U?ÊS?òš9"Ð?üü>ÑZø>ò$?KW4?;q$>Å){>¶Qí>Pé`>Œ€1@Þ@Ñ?!\î?W>û>ó4?„³´?ŒÕ”>ìý_>µ|?t(Ê?’1½?srM?ci÷?XÎ¥?Bà¿?¦°?Õ@Û?¡RD?sî?oìŽ?cƒÐ?XÔ¡?BªØ?K'R?s¹¸?E^S> Yô>ѵÂ?P+G?:„Ç>yÂ5>U©?>›Ò?=À´>ÇÜô>Ö“e@$G$@(M?Bï>ß¡¿?«G? ê>ö ¼>ôW`=ïŸv<Ì?ƒi”?¾«p?—ƒ±?€Ó?=ëa? ï±> ð‹=¶Ê`=Ëêâ=á¤>„ì„>ôä"?,Ì?ðG?Ã?&äR?aÓ ?龯?Ü;?i„¦?n¬æ?8A“?3ç?<Æ?@Rr?lï?HÄ?£*É?·#ë>Ê"Ã>‚5?Cì?¸b}?s†g?E²u?Î\@˜†?˜¢>ö*•>~^@<Å<>çºA?vb0?“˜“?¶ƒP?³ e?® ?{Qì> /V>%?×î?I­b?Ù1ü?ÍY¯?ƒ ?~=?ŽÛ¸?‰©k?cÜ?œÙ?›ý0?œC9>¯9ö>j5÷?ƒï×?•â¬?Z'4?J_?i³ò?MÔ?)ÝŒ>øÿ?̹?´Ä?:þ?GÄ?Õ¿G@Z;?ø[ˆ?µ?@ù?ÒÏG?ˆµ>̱R>Tw?<:?Z{:?Š¶ó?‰X¶?ypˆ?‹ýr?Ït©?Æ•è?¢´‘?©ø©@û?ö½ ?œ¨Ë?Üû?§ù?­žœ>Ö…>¯Ë„?Š´?— >«?ö‘ö@|¿?ÇÅ?´‹Œ?„Ád?sý?Ü(Ž?û!™?g·µ? †x?SÙR?n2¦?Ÿ)=?²cË?Ÿ”?™Ü?“âÛ?|rª?rÅ’?V0Â?ºÜg@nŒ?Á3þ>üß@?3v×?}a?kš=?E=?’s?íI‡?×ï3?±j?—>ýÄ?‚?åz?g?à~?dÜ ?¾y'?·??¡@•?4ý?Y6^?S)??X ×?KÐ?ä?Q?Ç'ü?w¶—?‡ü?¾?ª•?Øþš?½A ?S ¬?hîâ?ˆ0C?cŸŸ>ÿ?á? +?)è?Lµ‚?¹0à?¡0@>ÿ›Û>ÿÀ#?W[? >/?3ŒB?,]€>µÚ#?)?Àï?½?¯+ƒ?£I8?€(é?€¥d?ŠÌ^?œ°?Àf=?›ÛI>z›Ï>¹œ¬?\à'?oĈ?€m.?›RØ?íƒä?Ë9^?>n ?6|Î?.Œ$?^Ñ?¹p÷?š/?¾O?¢¼a@?þã@ ? †Œ?/ê?pÞ.?]?KEö?\e‡?`õÀ?‚¶?©ÜÒ?öœ:@0ÄC?îAX?+.í?¤µá@w»@Ê3@­?Ķ!?0ñS?>²ûE?JT?¢= ?šq¢?ƒ?p'Ÿ?>Ù“>«ý<èXo?IF?sW?ªÂs?ÊóÛ?ŸVÂ?n?ˆ/ê?Ž Ó@ ˜@ Þˆ@vË@V"?œ1}?QY?cÇú?u… ?– ?¤?1ó?Ÿÿ?“9?žÍ­?e·¨?\–?§ŒÁ?³J¾?MUÕ?.Cô@"Ñë@,°`?̨…?£8?¦Ù?ÃÔt?\?<ª?³ì?­?O?U]z?a+4@Ôl?õú|?[çÈ?{ªÆ@y˜@#?ïø³?Ò|Ó?C,9?D¬?sI¥?‡†f?ÂØü?ίÐ?êÎF?Ó€Ö?¡u£?ÆOî@@)B?Âá÷?Á ¦?¿ºë?1?çµ?G‚~?‡&_?kD?M’ì?§}ò?ÚϘ?˜%?<%Ú?»l +@%’?´/?í5?3°?î˜?ªÐF?ᆭ?ááJ?ÏŒ?£°?—û@uJ@ ‰¾?Ëà!?©þ?»æ>«@8?ÛM@áš>½ÔÚ<W<}x@= +N>‚õ>Ïv—?÷Žÿ@Ö†@1îÇ@1P¯?Ãј?Á)e?¸%A?Å…?Þãþ?ÚÚÄ?¢â]?´!Ú?ç”%?ë;Í?ýÀ±?é‹q?6ì@?nÑK?åõ?Ïl?Z'0?bü?kÑÌ?zë€?„„£?•„?Å\òÏU?É™?¶?{À?€?&¢œ?-ÈÔ@a{@H=_.?â˜J?å>±?w¹E?~Zd@g@)[?è/ð?ésO?•C™?œÌ?œ$d?—$«?Â¥?1Þ@Ožx@[•?ÆbÅ?¿9ì?¿0Þ?¿&b@ÈË@t?³Q>þ§Þ?)á?0¯@DÉ@D3@åd?÷<?åTx?çQ‚@ëó@ Q¢?¤eF?‡â§?—’5?’Ô¼@ã­@“B?—\?‚×ö?°m:?´˜]?6k?Á@ F@Hp@¦¯@$Š@„¦@á?ŠiÂ?2Q@ô@=â?Ê6õ?Œï¶>Ø€>ª?’ά?ÃÀ—?Oç—? Kœ?¢iç?ÔçŒ?ÑÂ?EŠ?*mÿ?$ï‡?Í @ +?þ¨`?û?¹8©?{jÚ@;±@Gô×@·õ?®f?žñ?…|…?⪷@7#B@ ߆?sg9?µqY@É@˜·?ê¨Z?ú©@€ ?ò¸#?lËÁ?‘D¹?×ä ?òðõ@;X«@-ù?»=É?¼ƒ?Äã’?È„©@šo@•5@:ä|@:Ô?³ËP?Øh@²¨@$—k@¡E@•G?Ük‡?Ù7L?•ˆé?ˆñV?¯@ ?º@ ÿ@"¿ó?ãFÿ?¯¶Ø?“½N?~+?€|˜?wnv?ká!?ZÍw?˜]¤?ÍQ½?®Ý?‚ ˆ?cÿ¶??öÛ?kÚ9?¤†!?µ•@_'@Öð?ª¶ú?¶œ!?ô˜.?êL>>õØ\>õÀ¦@!ú@!»?í’r?Ô?øÀT?õ²s?í +·?ç) @ 2D@ÿ@Wo?ôš?’`®>ôh?güØ?®Ø?†Ò?'eR?vâ?Ékí?¨Œ®>Îs?ìËù?ˆ ?¿¬v?ÛvÔ@*ÒS@3ô@Q©#@F@?ˆ›?‰=È@*¸D@,*_?þ?ð+É?ð i?ïîê?Ø?Çí@@É@!RÏ?ò¥?w­ ?³,O@Ø@!5“@;s@)õ`?²ër?²ÓÆ?oì?n:¹?n‚?mùÿ?Ž]m?Ž¹ð?«Çø?¹t?Ðbú?隦?ûû @(4?ï!á?lÌ?W+š>s•>R?¡²å?™“Ž?iÔä??Ç@Õµ@/]F@XC@ï/?¿%°?L`í?²—@)Žn@)M?½ŠÝ?Ñ+@ ÷@ ˜?4_>°&@µ@(.@Ù?é³@Èi@Ê@$t?æú0?âÕÍ?ü Ø?÷g6@4í@ ðU@44@­Y?ãK­?Å-ð?ÈûŸ?¾«Á?ů9?éoÄ?æ%&?­¤?®SÅ@Eæ@U÷þ@dß@ed¬?ö+D?˜å¿?Ï)›?ôYO@Ó@qÉ@Xy?þ+Õ@Ë=?üUA@ ”@óÉ@ †?À”{?{(p?ß@2æî@#¥v@$6@׌@[,?ûéÒ@ 2@ Ø@È@&®?Âóì>ä;?—Ì@8[õ@8™h@Ví-@cg@^Œ†@b‘@;H}@.=n@,OÝ@0½b@!º¨?ãIy?æe‰@:@w@iÁ@®Ó? —Õ?$ò@'@9ºš@-Ú@ µË@£@5ÚV@+L?@6Û@?ÖB@ðá?ì{?¢J ?N$?‚µ?“äî?ƒjQ?‚zÈ?Kú?ììÔ?é-…?S5Ñ?r€?VoÇ?‚©?iòv?(Þy?O+§?Ô$,?ê^i?ê›?ãæË?¹—?©úë?Èr?â»?»ý ?bÙ!?]&?Ô¥?Úd|@%@)²@èp@˜?Í`v?¢(:?óªŒ@9‘â@.5y?´YR?«U>ñQÑ?+?‰6?†«Ó?u®¯?]ø?ˆ“%?¸[ô?ǵþ?·¯?˜ ž?Ç? O >ëî»?ј>¢ >˜©¶?;ˆ?g/Š?³c»?ä2ö?ì^±@ +Ú?Ñ5L>kþå>c± >é#E>ìËû?qäu?n9’?½“>ê“©?…Æ?–Ü?]A@?E >µ©¶>ßVø?ŠÓr?³/Ç?É :?J>]ÜG>›+ì?S¨?a{?n §?}÷?Û©?Ï©?ò?ú?òÀý<«^ ?µ³ã?¸½™>3î%>;:N?€±ú?¦H? D=>©éš?!²?ƒQè?´wú?¯ß‘??¨‚?Q[={À=*@Ë?lQÓ?„»C?¯-Å?aZ?÷ø?8º¤?¸œå?ÿY>,~>…ªö>ôÊ/>€u>$Í?HÅ?… +„>ñh•>ÖŸ:?ö»?e5>èÿð>Œ'E>{+Ä>ÈÑç?Ç^?Ï©?"”O>ð¾o>ت“>ìäì?ÎLû@i@#½‡?½Ì+=¼±? Ô>œ&=öj;*[0>âõÞ?¡±ù?•¸"?rñ¦?n/?Xƒ}?4Sš=AFa?$3ä?4¥ˆ?Nóÿ?MMó?KŸJ?Iè?‹å×?6?'³­?uQ?®ô?¿óÌt?‰³?W'?3&=ÁÁ==‘5Î=–¿¦?düh?c9Œ=©k‰=Ûš?­^a?µŒ?¶æ>ôF¼?]?kK?&,? [?X„¸–š?< ¡?”;&?J¤R>¢ü«>ÈÞ>ôþ&?=R?·Î ?ž¸>õ)™?o3?9b³?I`?ŽÁj?‡ßÃ?‡Aµ?ŠS:?W•I?Jð«>¼»z>±¥?¯J?Æ’›?ì >‡ÂA>ìYö? ·a?$ÿ?&5?L>ö2?ÑË3>×ã*>öÂ?(q?X[&?˜ñÜ@Cœ@ ÃO?Ê?þÇ?“æ?ˆj·?(ô“?3mŠ?™§›?” ù?›k¿? Fá?C»?(Lu>ƒ‘>bý>Ên>øŸ?>ûå?_‘t?ên@µ@!rw@,Q?¾BZ>ï¦U>öÇ0?Ž?;ÿç?p•=?‹9?¤ á?ŽôÎ?cã?ƒ°°?¬uÏ?„/t>Ÿê?1 Ó?ùÖ?ý9x@Á?ó^Í?°h?®ðe?=±?A…?2á?2þÖ?”Ì?’N>ýƒ >úle>ÐÎ=çºS?¡|Ø?±!?ƒËU?zÙL?,«å?¡x?ÕB?úXu?—}[?t¼{?xë ?{ii?«*?¼©Ä?\Ë1 ?Zd?8c?<(â??îH?†Òø?¬þ>?²¨¿?¸P6?©·mcÃ>ý‚'?]U??·uN?³³?¯î¤?‹ý??+U?ñÆ>²M©?V…×?ØÆ?¤Ø·>þOy?D<?´ E?”*¶>þ”?IÏÑ?¿ˆ?°ø?˜1E?~#‚>§Ä"?LÑ @ŠÞ?àpU?7Çß?sŒ?ÓÍ„?¶¸Ó?fhX?S4Ë??Bº&?¼úÜ?¹?µ<¥?¯sï?¤7?‹j‹?4¿e?pPØ?ÀI?£?*I®?{Ñ¿?ÜY&?Ø“Z?ã?´Y¤?M&>Ù>YáV>Ü×é?€gW?†¨æ?š¸?ž?¢\?¦R?ªî?œ#t?rv‚?– ?Çñ?–dÎ?.U?éé?¿P?[Ϫ?¸²Ž?²¢n?¨>Í?–V?€ä[?[¥“?*æ?½c!@%݈?Ý í?€ì?—ù@áU@ Ñ@v§?Èî?R±å?B“s?R?ÇÅ? š?†ƒ#?¶9-?ü­6@®?¥…£?Q9?Žap?Ád?š%‹?…äj?ƒŽˆ?i¼@ Îë@(ÏÝ?õ?””ú?žÑ³?© ?Í`¼?Ñ#?Aá4??lø¸?€ª?wÜú?o«r?÷w@ +£B?at)?(=?xº ?­1?½5ò?ÂŒ”@`Ý@n¨/?½t^?ºJþ?ÁßI?¿ŽZ?À?ô¯?©–?Â?·|?¬‘g?`˜_?pól?Òy?ŒN¤?ÂÀÃ?½p?² !?­…±?ä?¤q ?û\æ?áR?ª»Q?Ô>}@iÄ@¾¹?Ô¬?×ìÿ?ÆìÔ?Ð?çTÚ?¹Ó?„ý×?Ÿ Ÿ?ÀÀ‰? ò?ê7?Aû‹?ês?`Ûm?m?g×î?%æQ?ãŸ<@"d ?Ë6I?éc?‡ Œ?…Z$?—È?šÀŽ@¾@/4¤?­^`?Wgý?Y¦?a—i?Eþ¡?5 Þ?ø6²@[@¬¶@ÜC@”Y@!‘@,v?ò+B=Ù®º?Ç5û?ÏÅ…?ïèª?÷‡]?ð ?æüL?S¼i?]–$?§À?¹O•?Acï?G'>?¦ÀÛ?¢¹ƒ?¶H?ZÔ²>f+>²^Z?Q6?cÙU>#†Ô>%Â=¹K?Yü@Ai?î??Âdß?ì@;€@&Ee@9Ä@ |?C.?ªMî@“¦?½Åß?P?=?ŒÕ?½%1?ƒEô?kÇ?‚ v?¬@½\@Bv?ù%ó?Sù?(’ +>ÑçŠ>I¦>6vß>¹I†?>$?ºãƒ@ó™@Ü@f@.¸*@7÷?õö6?Á§b@Ã@@+Q…@I@?ûä;?öü?ë|c?ÙHÈ?æZ?ôÃÁ?È¿?Â\÷?o?`ß!?§¹;?µŠ»?‘†}?‡¶s@Cäæ@^ ?¬Æº?ƒ.?‰è;?3±?ø ¿@ +·ß@˜@ º’?‘È„?€ˆ;?c"7?jµf@ç>@!C?ŽlÙ?ˆÃ/?ÊO€?Åio?”jø?ˆŠñ?®o%?³=¡?Eýï?15>þžG?PT??L´’@-¬î@: @ î@ê?ª/Â?§ú®?Ð~é?ÏÇÝ@-t–@:²@8Q@om@Æ@Ø?‘ÏÕ?}’Ú?…?ˆ…%?Ôç>ýU?zÝä?’—@¹p@-Z?ÿïÜ?þH1?¯¿Ð?˜l@§?@)„}?à„ ?½n×?Öø?|uî@j9@=í@ïµ@¢U?·: ?†G´?Ƴ?ßÞ?ÎñŸ?ÀP<@$-Ë@O`–@ Q?¼¢^?ȤQ?Ê'ú?öÕô@A"?ÉÐm?_åç?•¨ ?¼6õ?‰R1?8Û?fÌQ?·ýe?½Þœ?Ðï@4/@+¨@@Ž?^r?”¹!?ÇQV?»í°?Áâ±?ܨu@šj@¸Q@–Ý?üí2@??ú‘U?m ?{r±?‡ÌN?”f0?yi-?xé«@.É@1<¼@Kü@MJ@ •^?öÏ? ‰’?†“«?¼’¶?˼¦?‘x?wñ›?$£>÷Áÿ?¯¹‡?ôŽå?Íèÿ?±of?v+?$p?ˆh@?λ?œ$?(³?Mk~?fÅ?”@É?ö‹?ÉÖÑ>žß³>˜+®?¦º?Ûc?wó?ƒEð?ªÅ·?£É\@E[@s@Š@¼¼@"Æ@(ȱ?ýŠ”?ìöH?÷x>@?ü¥o?ô™?‘õ–>û,½?çtd@L[@¨?žðó?n¿9>ç ¸?.Ò_?‰ñ’©?¥+Ö@,Š:@Æ?Þ¡#?ú^^@1™O@-í!?¯Ê?«!z@[@ CJ@ ¥ù@ ¡E?ÇžJ?¹x¤@› @Á@ +-¸?÷o‘?Å¿?©}ƒ?Çm£?òÎ?úëh@ +k@cc?‹6?%P?/ƒª?7TB?hBl?mô?çàÂ@Ðr@È7@¹Â?ëÝê?¶G@@Bh¼@&x +?Â"[?Ãhr?ë¶ÿ?ÑÝ’?×V{?Ûu¾@£@ví?ÏIh?±€??ÙÐ?ó\ÿ?º.(?k5„?îlÿ@o;â@Dk±>꼄? ?ê~9?êf§@TØ@e¿È?ùèg?½¿@ê-@8@ ¬l?Å–U?·d4?1Ž?ÂÔg@šH@ˆ?Ûg³?ÃÕ ?¯íK?µ„[@ +éª@ +Ã?àmÊ?Ÿ°F?¾ŸX?ãŠô?Ò®Ì?­œ÷?­!?Wu•?uH?ž¨N?ÃI\?óˆC?÷ @! @@:t@‡ÆD@t É?Ëb¬?ÁÃþ> Ž< :Y?Ž8³?º–è?´KÆ?¬ +n@$|@Fgr@5Äo?ô2=@™j@<øË@AÎÊ@ +›@Ú@vè?üUç?Ńj?~ÁÔ?»¼ @.]»@+sQ?ãåÉ?ãÖ@!ìÇ@*7&@+-¦@*§Ö?óY?ª¸?Åó?ãDh?áï:?É~??¯·ß@Ö.@#Ú0@;04@5§a@G…?ÝŒ•?ð9Þ?þS@ò¼@cX@jþf@SÜ?íF`?‘/?{ñA?80m>âp?8@f?¨ºJ?ªå³?]xZ?= ú@%@*´á@Ó ?üþ*?ªt6?bd×?zÛ ?Š¥?}­`?‰m?Zd@t›@ ?ó@/@2o?Ôíe?qÁ¯?;?bÒA?yÑx?¶Ô?±'á?ßð?èÊw@†÷@æK?°Z ?czø?–Œ?Ð\k?ÖM?ÜJ.?â"À?Üô(?Ëu?ÒÛ®?Ð]ÿ?ß6I?ÝÍ£?„ëö>åN?±Ì<@Ilz@3†N?ÉþÈ?µü†?7m>?€”º?T<9?qƒÙ?|jÁ>Ô2N>)G?q›k?èë?·µ)>è‘Ü>èÑ>é½>ðöÕ?¬íy?­’?žÈ`?‘j?^)¥?f¶0??ã ?ä•>’Ïè= ‡ä<‚oí=ß(´?ÁÜ?Ÿ²z?“ž†?*é?›™>ïÜ>ñot>óê«?§#?’ß??¢!¥?Чh?Øñ>¦:Í>JyY?Ô$¥?ò¹(?©v®?)‡?á>öºf?j²?wÝe?©Z¦?¶š?Y8?˜?W|•?M´|>„{>It0>Ñ‘X>t‘P=‚ +ø> g ?ŠÇÃ?’zb?Œð?œ@t?‚Âð?‚iÔ?šv=Q¤>‚‰>­i´>á†?5d>·¨‰>3;ð?K?¸ô?/ý>ó‘%>žŸU>Þ– +?6vA?’h ?½_E?*®<>ú/‡:ëT?”—‡?ñ ²?·M#?–aT>mpÄ=h>©=WÑØ?Ý#>ž0À>öqí?)Û^?hL>X´þ>dzÇ>py>¾ƒ?0¾n? +1à>q½˜?ˉJ?ź? ê¹ €>Áó?*ôÄ?-"°?‡ÞÝ?Å?s÷5?of¨?Ep?4°?2Ǫ?0Ýž?fÖš?ƒTâ?i³h?_wÏ?”N?¤ò?D_Ú>œ!’? ?PÔ?=5Ž?_X?6?  ?ØX?£Ú>âà =‰Ø6> ó?Ÿð?ù~?sÿë?s¦ ?pÂö?r^o<§Ž3;ÑN°?ÜôJ?í²ã>•¥Ó=85”>Ýç? +½ì?¾ô?é¨Q?9§S>VS"?é¸?Tž5?j>ßž*>ÑÅI>Ÿ—h>ÿ†’?DæÔ?J –?eR ?`NÒ?:%??Eûà?nÌ ?ˆ]›?õ:ö|>öQ•>ø̉>ô‡“>çŠ\>’‘^>"B9?Zß ?Øøu?œB’>ö¢Ô>ö´¶>öÆf?%[ˆ?þ‰?‡->:¿î?®ÒÎ?ªÔ?Ýì?¬q?÷U?÷O®?Hò?E¹¼?tÜÛ?w®?v³Ö?j=ƒ?`h?V‹;? ¸6>øá?¥›?Ö[ ?pw?gd>Z¶ <`qÖ>úG>øš>„†Ž=’¬?‰‹?„j«?®íí?â$,?ã§H?êC^?ØbK?¯Ù:?¦K +?¨f?±ŒT?ÈØA?À†Ì?‡ê?ehÅ>ùÖÔ?òÈ?DâÕ?IM%?m†?s×Z>úB˜>÷ü >ºÁÌ>Â4Å?ˆµ?‡Ü.?Žˆ?‹Kª?æuX?ô1Ú?3ñ‡>þÂ\?§j#?¸Ñ½?ˆÁ?{Q]?®­4?¼™­?„?^xÌ?È-f?é¼?e>ûç?Oˆ?_:?Z?Å«?‚Ô#?:>åîd>“{Œ?Îá?+U¡?¤õ ?ðÅÇ?ŽU>À´$?$N7?frW?˜ž»?½Ý%?»[à?º8Á?„©U>ÿ/b?m³?¾+Ù?¾;a?¾Fä?hÊ’=³´V>_p>Á¹#?X}?Ñ{…?œ” >þ;h?fø?É(k?•àS>þ|m?>X?ù”m?µ”2>˯;>œš>,×,>óÁ§?‘>?£«c?Í7—?ä]`@’-?ÊòH>§k-?„U?Z?>ÑâO><Ä>äc?‰RÚ?„Y?eP0?U®¯?E t?nü?•¸…?®©|?ò—H?Õè;?—„?Šh‹?>QÙ?&½I?P°?+ï8?€^{?c#5?&À?"Î\?Þ]?G?† >ó}ä>ä.?š 9@ã2?Ù ì?«–?°•?¶ò?Žnó?øè…@DÞ@H+ž?æo›>…)~?b| +?ÃÅÖ?µýƒ?²WŽ?¯Î?¤»&?€V8?B– ?‡ˆž?¯5?l¿F??”a?Û¶?”™Ä?Da?|”ï?ŒÁÅ?¸F”?ÐØ?hÿ?IÆ?KP?®œ?—‡¨?½h=?U8¼?¿€?‘+a?´y?ÐD?ÐMK?ƒõ¤?Y @±º@Xa@ÿ?òÑ÷?8U?ƒJÝ? í¿çÓ>îÐ[?s ?{Ö—?‚H”?•qÉ?Ôó»?¿@?­ß?p.Œ?'•Á?kTà?ß‘ÿ?¼M*?Z¹d?c‹J?la½?zÒe?‚Û£?˜Í×?ÂU:?°¥H?˜%„@„Ý@q>@,‰?¡L™?©ô?ÀL0?¦Mk?q?·àÿ?éÀÝ? \?=ç?„'?¨RI?§Š?­í@?—™8?M„? Y +>AÜ?€&\?ÁØñ?d(„? •?—v?ÃY?Ère?ÎÌ?±›†?¬Dœ?˜ÿ?~?ÏnK?é¨â?΃¦?Ë=?°€z?¤E@Cmi@_×Ð@ l?çÛ”?öeö?èžÅ?—Fc?›å?~ó¡?€É´?¸d#?Á ]?ñï?ýSi?ŽÞê?€ª‚?ë´™?òz…?ö“(?ôúÈ@4Ó=@8QË@Ú)?ÿ¼Û?•‚N?‹Q‘@d±@ó§>¯a'>‘¦?Ö•€?å]N@  @ ]ì?¿ø.?´# ?ÿÒU?ÿGH=¹x=â@ZX@ò§@5‡@-$C?’€?–L?9ò?F.í?¦…-?«!u?¹°í?Æ^®?¢U¼?¡Iz?â*X?âÐá?§V}?©à¹?¬gà?«VÁ>_,™>C¥?"£Ò?Û?ðÄû?÷5?YÒ?š@> |>dº.?Fà³[>ÉPÁ?¾È?¾¾>?‚W5?‡?±Ý?«Ýâ?çÃ?bìÍ?Ñâg?èï|?žà??“Cd?Œú?†Š´?ÞÝ?üH»?fR?pÈ@ß“@Gr?¼¶S?Súÿ—x?î;?Í*@ó@"@*j£@4?¹Cp?‰ ?6?|,B?í‘ +?×îŒ?¼Ô?ÂJ ?¸·ç?À¿?Õ?Ä°?·Ý'?´¶g?¸Nz?¸>E?noT?„‚á?íwt?õCJ?ñHƒ?÷W2?–»?täg?¼_f?ÆøM?ü@c¨¾@ŸW=™ÁÏ?SdH@öø?ñáŸ?Dè?Žš@/Ù@"µ?—DÇ?Šñý?ŸÛÔ?›kÒ@¥ @A?ìøÖ?µ„?@žØ?ÿJ ?é÷@–ð@4l@΄@2~2@4_w?‰Vš?‘À|@lR@ Lg?͇ï?°È{?d|?+tc@ +Œè@_¤-@E\`@7ù@(r¼?ýK?pϦ?½j-?Ê4@­U@¬Ý@Q[=@[ @ï(?êNA?ù·A?ô\¶?Æèž?MtE?_ˆh@æE@j\@Y\@blà?«Ñ?q÷?’?«Î/?©‚&?–Ïp?»q–@öc@ºW?ÎFÏ?ÉWJ@CC@GÖx?þòÛ?á-Ì?ë‡Ò?õ¸B?úS?þð­@#@M Ñ@TS\@$åç@ª?}›J?fÙ+? K­?¬%5@\÷@7Ûg@-à@+×g@–Æ?¿]Â?ÀÑJ@ + •@ uP@&Þþ@)¡«@#ä‹@ؼ?îqU?«X?½ÿ"?í‡{?ö´§?ñŠœ?ìs?àЪ?ä½@ ³"@7H@ã@?í_q?ã8?üž~@F»¡@F©O>¸ÚÅ=Û@>0¹@vê‘@'Bî?Ð Ô?ÓÃÄ?â­âe‚?˜ ?bXÂ?Š”´@ Ο@´@:C@DÕ²?›þ?ŒŠj?YøÔ?Y,?Ià[?•ëà?·¼@/¥@Š§?êŽØ?㔌?ƒ)ÿ?'ã?¢´ª?e“?—c4?íÞ? ’x?âå²?âñ¢?ª½7?®ÝÑ?½8Ö?Ê•0?„Ð[?) ÷?cn°?™(¹?š¶?™J?¦Nq?t•³?†0 ?µzÛ?ÁCX?ÇŒË?Ø +?ƒŠ¾>·ÂÂ?½¹D@dS@DÛó?ˆù ?”SÂ?f ?f<ë@…¨@:6?ýœÎ?ç–@O¦Ã@}«§@ã¢?¤ƒ? 3‰>‡É>¯f´?¨ý?Dµ?gÃì?r>m?na?†Uý?1>ë r?Œ¯I?¤ˆ[?EfÄ>ì^a?Yü?—…?bUr?#‚¸?R#¢?‡?q0 >ïb×? ‘š?lôí?xâ@¦R@il?–ƒ?JÝ?QŸ?^#À=Cà =_Ú ?ÚpÛ?åÍù>°%>q“?û?3ë?r?xØn? + «>ú ?o¢?{MÞ?>w£?,‰Ã?¬H +?¶Cß?¼4ê?©k?jë?ã¢R>ìP…?è´>­ÿª>J'Z?(yÈ?g@?‚ýù?wœ?¸?„Ÿ?üˆ>ÅÈ>&p>‚¶Ú=õx|>êîN?ÓŸ<ú¥ë:Œz?Ìw@'Á„?²?t¶R>À³²>¿<‡à<ÿ3 =Ôµ®=߬6>Ã\ü?5_>Úš?>Ÿÿ?rõÖ?/>¸ú?¤l¢?“ñh? +ï? S>o>‘u>ó&>î]—>aæ“>i º>pGÓ>wˆ?Œ›?•¦?¬Hï?­âð?E¼?…c#>Ê»æ>1³*?_>r?¢¨ ?hwd?*áM?:²â?:²?C‡¹?W¹?e¶’?s®ú?k0‰?`†9?Gðå?ªÛ?%b?~¼?x ñ?nAÁ?bT>ø÷>ô>ñ*#>ì]ß? É?ôPM?~„L?‘ßy?’…³?Œ( ?w?¦j >úR>âß~?H8Ý?6.ï?,4Ì>õ ²>\Üš>œX˜>ò°8?¾?FN?y‘i?ÂR?À*?±Vº?¦ÇÆ>¦[>ª¦>Úz>?Ö?¢ñô? Ô§?ŸØ¤?¤²‹? ð>õÇ—?nÌ\?‚Åa?!M§>ùÇ,?N>P?sm?psl?mx?‘³?¢t¡?¯r„?ÃX@?ga}=Ù¼n>Ì&N?U8´?í+>òÙ>Xí+>šÉÄ>ÛB:?w ?w©?w'O?„=?Ú/?ØÌ?c‘[?\=1?HCU?Ma?îÒ°?÷¼H?Ú‰I?Ú¹C?3r>÷û¥>°º’>~†š?^v?‰üÛ?-ø>ýx?ÚP@ +?ãP?«kó?d •? D?$\ý?C«?N L?Xký?ƒ›Ù?¢)>?ˆŠ?)1H?]Œà?¡]@?)?š¬?~Ì>ƒ&R>¶É÷?1=?+h?Âp?u6?#HÉ?µð=ø°N>Á?»Ü“?»«Î?àó?æÞ´?ÝÀ?†t?ðYR?ùÈ,?‹œ?t¤?|Åœ?{CF?…iƒ?ˆæ–?¨¾Á?­Éx?zÔ?m")?]ü?O[?¯´ƒ?È4?³‡ˆ?µ±?©"#?›Ê¦?>O²Ü?/r§?|‡ê?I\ù?#by?ð>ìè?`?*˜?‡Zˆ?¶Žõ?”“U?o:'?›Š¤?½G=?E*L=¸ Ô> ¡æ>7L&?!?Oø?€ž\?Ÿà…?ªßF?¾ˆ×?­t?¶ò?›$’?´Ä`?¤¡Ù?}?¤Ú?æè¹?ÂßW?~°å?rc?U½?–d&?âG[?êVæ?ÿæ?ÔÕ»?‰aG?C< ><œC?E>¬?ùq½?ÐÓà?|z?u]3?i!g?DEQ?G?úH?ñz?Zà?)ü?†Œ¢?U6??n5?÷£ïh=cÐ>éÁÃ?€—ò?Ho„?¤Ê?o˜O?· ?½SÈ?ÉØ?Ûkê?ô,?É„ä?ŽîÖ?Üþ @²@ ì8?÷Д?¯Ó?t]Ä?8Ë?ÿœ?•'ò?Êa ?„¡?0'á?E½„?[5…>Ôþò=÷mÌ?‰k?Í/Ú@ÏØ@Ê·?–äÏ??}z?Yá>C!=âMØ??R?që>²¡>Mî.?ƒWˆ?£R*?øŠ@9š?Ï1b?Ìé@%Ï@ ÿÀ?u??@R?Í×Ê?Ót}@H@!õ?ÈX}?ºÚA?@æè?Fàã;§™U=V}?¹ª)?½È7?Õ"=?Ðú­@ $@ì×@=I@2Œ?ô!B?âùK?¥%ë?ªå?¢²8?‡ä4>ñn%?9·?²Wr?Àô‹?ß!ª?Î?¢mg?«Ç9?±Aë?È”ò@ÑO@«ý@´ä?ÂP[? Ý®?il>Ö]È?’w°?ü?‚ËE<º#ê;ÔO¿<›±€>ª Û?šŒ?‰fw?¯pˆ?«3Á?¦øA?U`?‰€*?—=?•ýß?Û-õ?ô¯‰?¿1?¦úM?‡ÂJ?n +Æ?·l§?жT?`?,:@$º@)\U@,”S@/ʦ?Ó©ú?´ø?Œ]Æ?…Îö? z]?%=ÏpÛ>KÇy?ö+ù?ïÑj?¢ ?¾bF?¾¹?ƒ;Å?•râ?!¢?#(s?9"ë?®°?¡zT?€íq?Œ-?Õª?ìÃ?TÅi?càv?¢Ð?®¥C@P?Ó¾Æ= …@=ËaD> ¹?q!?Á'‹?‘ð´?9Ì?B?ƒ?³'?þ«4?¤ÄY>Æ­Ã? +Vž?+‚:?/üþ?4vÆ?ˆØ?¸È¿?Óoµ?ÛÍ ?Å9K?´›?š­r?|Ýy?_³G?a(?TA´?R¥5?‘Ì¿?««E?”h?ƒü+@0t@^ª‘?ÝÉ–?‡h!?5>5?âÄ?|h? ?îßë@ b?¡5?€úÚ?qwß?vÖ @è@6 +…@‰@æ@HÐ@XÃW@!îl@êë?ŠšŸ?jªa? ñ ?­ ?{’K?y¾@¤@³H??%š?-Â?÷ãÅ@›@&*à@)9ç?•!Æ?˜&’?™˜¿?›Ch?ÿv¯@PR>¼>c:?‹}†?„h™@ò @‰1@m@ë&?áI®?å{X?u€Í?~ƒÀ?¾¥«?Á‘?‘¦®?•k>„ª>c?c Š?i4•?ØßÒ?Ðv?Ž¹w?Œ= ?¿º=?Ã]D?úÿ?ö¶?÷þí?æ—?’Žå??2ô?‚0õ?¶Ãl?±v=VÜ=~ü>þç?â}?cB?e@é¢?üÆ>ÐÜî>õÚ¢?#®?µ1?âYT?ßl5?šE?’4²?ýŽ?þ Q?¿ˆ?¾s?©Ô­? æÝ?]ZE?f'’?!Âç?*?íVú?ïK?}‡\?hÆ?Ï°j?ÝŽ>>Þ8>ªØ2?еì?âQ?ÿÅÄ?ùCö>êu‡>H•&?T¹n?ƒ3Ó?…9>ÛÃ?¨·-?ÅJ”?äÍ?õNâ@­Y@Rü?ëÆI?à|ë?”·~?^yð?Ìá?©Æ}?‰„°?{‹ð?hâ?ß?Ù€×?ì>_?˜¨f?Uu±?Ô÷“@qé@¡@v@¾ñ@EÞ@D?Îþ@Ö¼@„v@%ב@3A”@O×?7û*?yo?¢œ–?µ.?ùÐÓ?÷Ǽ?ù.*@XÙ@õk@we@@Î@@?ù3ú?óÒå?ÅØ{?Ëÿ?xè‹?y1º@ F°?ÿv?— x?–7"@-å@ ¼M?çåQ?á†@+Ó@3ø¬@7•s@9߯@8-?û-Ê?} –>÷yÂ?ÒüŽ@Ô@/ ¬@ACh?÷FQ?U|¤?£PÚ?ÜØ`?Íl$?Ílˆ?§»}>ön_?$5â?”vÑ?ÙÊš@k¢x@fi@‰à@ D@,Hÿ@'b@Øü@ + 1@2…z@0}?èâ«?Ô Š?ÈAç?»Á®@\@8¿@ZѼ@lë+@;@å0@%@0ÝË@&O@k®@×Y?ò¦?îŠé?ø{Â?óhO@BÕ@‘D?N¦÷?Uô¹?]FO?d›?²=Õ?µ’Ö?Ž ä?•®Ñ?§û[?¦ëí@8Õ@fÄü@ ?¶!?ÃxÎ?Út??ý—3@Ãé@Aã?¥–?Óny@41M@%yw?´m`?´Xª?´EŒ?´/g@É\@$?Áè?¼â?›'ÿ?±Ñ?~Î:?Cº?œ£G?í—5?í«µ?ô€?àð”?—’´?§‹@@"Ѳ@(„*?•Wò?¡Œé?Á «?ËM?¨C¹?‘Ðò?ö@Ì4?®:?+s`?—¨)?ÝíÖ?ÔÙß?Ó¨v?é‰@a@¯‡?™cT?„ `?½4*?½½?á`½?ê•?›ÍÇ?WM.@S@U¥è@2ž?Ëyµ?Õ/?êœÔ?äšb?÷þ?Sî!? >ñÅl@&‚@P²@"EÚ@ (?ìZm?଻?Å”?‡?§ë¬?ì|ò?ÚƒË?ïŠ?êh@ +ž¾@#†?¡\‚?hþ?º%r?ñ!(?ýü@ 1¼@ÿÀ@„3@ô@ÐÖ@ƒî@>áY@?…y@ùT@ôw@3Çï@R£Ä@(Ž›?ÙBô?èVm@9Y@JB?ýiH?ä±?B‚Ú?U7@;¤@…Œ‰@e$Í@9Ø_@-ÐÊ@ Õ!@€8?í-?è/>_BV>l(É@CÅ@+6c?ýÐf?«M?³y/?ÁDn?Í‘Ö@šé@Šä?±ëÕ?¬B?Û¡[?ïý@ ²Ô@ñò@Bù?ÊUÀ?ä±ÿ@0Ú¯@8ˆ^@ÅU@ R®@;Tì@P>q@3(?¾Av?Øôê?ü›M?áí#?MÈi?. ¶?qä»?fñ†?~á +?Ì°?FùÚ>â]î?ˆœ?bO[?—vW@7/7@<ŸW?åÏ”?ãø%?ÛÂè?ÌÇ??㉽?æÄ5?šO>â[”?ç?ƒ‘Ÿ?”E|@ 0@ eÚ?’g?G…Ô?€ZÖ?¢ã ?ÀMe?â¸ï?âƯ?âÞ?âë}=dÑn>ž?° ?Ñe-?ÁY›?¦‘ý?§(O?°û¼?}Ý£>îÎ=µ¨?¥?ŸL£?Ëp?Ì´å?s&?9·A>ó¯‰> Œ?+æ)?éëÚ?ì¶V?ŸT ?Ÿl§@šV@T·?¶pU?¬ñ?àÖR?ê–¥?·¦½?»¾D?ÈK?‘›G?q?>Ê¡?¹K?hñ\?f4¬>ìßø?Þ?`›±?jYp?tvC?`?§…y?â^¦?Š.R>çí?}?!Þ??yx’?¤ýz?Y?²Û›?™_Î>ïFÞ?»;?°ÏÙ?¦í?‘•ú?².·?qá}?r^’>÷I™>óRI=TY?+u#?dá5>¶âF>k»T>2³=òÊ?O¯ì?v5‹?p<ý?aÃÈ?*l¨?3}M?ÀŠ?(LÜ?`ŒÚ?pf½?ÿÈ?ÆK>ÿÕ¿?p,?=8 ?_›?œÌÏ?n2c>Îò"?p{?ÅJ>V–š>ÖMî?¡ø>“tã=Þhç ÊÃ?ã?^m?Òû>è‹>ÇÚ?¸d@ÃÀ>܉Ç=ÊÞù>Î72?}|8sú?K9û?ÓËÕ@tš?ç-8¶îV>NÑo>³nÀ>ñ??å>û¨;>¨^/>â£?!ªy?®>œŠµ>Í°_?'Ð.?&äØ?,>ìÉï>S-À>˦?žÝ&?ŠOn<…}r>i»b>f;?˜A?›ïu?îJz?óFÛ?³.˜?¯q?KØ\?#CŒ>Ç—Ô>–|Ö>Žw€>†[¯?jj?§æ?DK©>Àüî?nW?IŒ¢?1'M? +‹ñ?,·Q?gkÏ?‰B°?²ëŽ?“œ:>óØä?,ê¢?¶ïõ?›<ô>ô¼?!s¼?)p +>üZ³>ô:Š>UÞÄ>Mô5?•Ÿ?7Ît?€¹0?Œ00?S>¢Jƒ?§z­?ì8P?°"~?ƒÜÂ?!Ce>‚¼I>ï†Å?3ö2?BT ?ZC,?WÅú?uo?Vsƒ>õ%k>ÇrÏ=Êã?;T ?A»#?ð7g?÷Lï?×6? ÎÕ?€^??½?Ò÷?ìP ?’\#?vŠS?uï#?v™?¢õq?³ŠÈ?¶-·?¸°?›?†Z’?7Â>½t‹>î—? Œ?HÈB?w'q?{îr?‰Ù:?pÅÒ?1€?Cß‘?wÆ?uùÍ?€9Z?ƒyú?†¸â?„ÝS>žË›>ªG ?Ð[´?Õ ç?‹f?‰í$>è)=>Ìï!?ÙÜ?øD@ h1@â?ªÇp?yß?¨< ?¾ŒÞ?¼éŽ?ºr·?nÏ=ŽEØ?@UM?¢?†%é?Y‚w?úJ?ðJ?Çn?¼ÉY>ÚcJ>ùû3@mP@ (?ÉŸ?}l>?·vÄ?¸)?Á9?{3>s*Ð>86(?!í½?:p&?Þö+?ï%ß?³µÛ?¦Ke?^?Qï>ÆÝ>o™‡?wd?ŸÅë?`W’?1‡?!:È?$ ê?Fë{?X"œ?³Óš?ßÀS?¼:?¨'Ç?«=Ø?¡•‡?½<ÏÆ>“w?V#>þlñ>í)ò>å¦a>Þ­?6™ ?}»I?ž©Ý?¾h +?ur>è ¹?(s?[Ö?pC?~B¶?Œ0K?ž·?ƒŸ?DÀn?ˆS?±k?–{D?ã?Ì+Ÿ@¨"@þÑ?äé?Í„-?¬1d?Í„í?ù–t?¯ç9?PZ?géó?½º?ìf@ @@ˆÖ@ ^2?û¨??Öâô?ŽYq>Ó.á?CêW?”ÿj?m ¿?A?V„?™ú?Ï1?…Ÿ­?¿lŠ@D„?ï”®?×JB?“D§?_©?=?w@?P 8?,&Ú? ŠF>åE»?8‡M?€’ ?B^W?žã>”'b=ê¢>ÇÂ?$:ö?ª,’?ô¡™?ˆ"Ä>ÊÔJ?f?¿žr?®¡?¤A…?\§?îV?y¡ü?žá™@Ü @&y?­“=?$r´?ÂC?'?$? ?©½a?àu«?c{.?3*?Å[Ç?ü‚?Ð-à?ÀU&@#¨9@3uÂ?ƒ7)?$P?çY@>W?¾™Ý?±¥?ßC¿?ìt?´km?¨êÑ?w%¥?vãÌë>ÄÎJ?ŠOŽ?¡å¦@U3®@HÒl?ÈJ?—e@I¹?øy!?‘0Y?§Të?ëß?ß|?”?جs@ö?ÃÄ.>ÃN>óì€?+M??Q¶¯?Æ´?élú@L6?@24@ ²;?ТÞ?\]I?p7?Ï ?!;¤>3¥˜?Mñ«?»´?ú? ?r¦>þm?‡áŽ?·­L?m?(ß?3­?¿~?¬ï?žF'?—8Ï?˜N:?Üð?ø38?¯l@?á°?ð¿@ÒR?™H!?Я?Ï—?Ï ?©î)?±â?¦¤£?©¤—?ÞÐ?ÛXL?Ã,±?¤?„JØ?‚†?»Bú?µlä?Éj=?Ë.?›„?Á_÷?³!ð?½&@oÇ@'Ø?ûĉ?éQŒ?ºº‘?ÎU @1½?ߧÄ?oÝÑ?gð?^Iú?b?œé?¯„?´?žŽ^?Q +Â?‰V¢?ÍWh?¬ŸŒ?€v8?6!?|{‰?IÙÓ?ð0?QZ?¦?Ãc\?ðSï@4@#H?µa{?eÆ?* i?Fz‰?л©@¨Ã?ðW?Ïk@.Á­@Và!?Îf +?">>µ'4>=v‚>â=èŒþ?‹0/?Á¾ò@6v@#5`@{á@Ʊ?q¶D?3?P¥?bÆ¿?Í'O?ê’?•«]?€öm?¨9†?©}?óp³?ý³€?°Ñà?§Ð?†2?€Ò?óšp@É?o¾ª?Dx=gx‰>üð??ž0?²V4?±*?þo @‹@?®e8?´Tw>,=Í>=è¬@vò@ ?»1o?½ã>‰ø> ò”?µ¡õ?»6¡?€Bë?w5y=òB4=ýd ?Žh?S©?~j?Èó<`®>>\?»w?·þU?£8R?O?±K°?´Âç?ÿŃ?þ*?æõ$?áf?¿±|?ÄŠ@°Z@ú™@#Ò,@#¶¶?¬Ál?ªd½?dˆ?n;Ý?÷{?)…%?æn?Ï¥%>·^ç>î;ý?þOž?ûÛd?Â9ó?Ê·‡@¤Ì@5?¾yÒ?¾³’@Ëõ@‘½>°J>`÷@:µ=@=ÃÄ?è?;?yÖÝ?}TK@ +ð@'?>$G @(>@4ƒë@¸ @Ë]?¡\Y?‰}?ƒ??eKU?ȧ:?á™×?Ö'²?Ýv©?Ap4>ü3˜?ÒqZ?ÿ}ö@iK@<?ªÑ˜?{Ê?—tó?§u©?Œ¨ç?{€Œ?PDð?>¹,@M¯@>;u?ÏÑã?"xø?—%N?Õ{w?‘{?gÞ?K:?}±d?òæá@4(é@Ê?žÖB?ü9‰@;«Ó@ ªÈ?j®÷?Âp?Øþº?Üb?ßm?Ç'™?y¡’?_{>ä…`>÷ž]?lÈž?ká²?ô­?ò³å?ºÃ?·Ã?xß?{ZÜ?íu?ö¡è?€ˆo?xs÷?Óxd?×`?¦¼0?£o)@3¤ @Oœ@1Z@+z@³ˆ@Ä7@•]@~!?è¶[?ÌßÔ@$0@P +?þݪ?HÍÄ?‚Y°?´Âë?¸Áå?¢/¯?p£ã>öbî>ÑBª>7¢±?—ˆ?ú£g?Ò)=†pÛ>x õ?PÏ!?|,G@!0@"ÞE@Aй@Då ?ÎH™?¼ö@,¼X@8­¶?þ‹°?Óp[@jí@0wã@úÓ?¸¢À?ÝŠ-@Üë@‰ä@oÜ@Ó?áf?Þz ?Ï™Š?â˜ç?õÙÉ?Ù ö?‚¨?eý?!|˜?‡ª?³‡)?µîN?âñ?âv@˜@gË@?°@ ’?åxz?µíá?Ò7Ê?ájÂ@Ìæ@%=ž?ù?! +?…>¥@4b @"ú×?öO?1l#@Ÿe@©þ?ò–6@¹J@£ë?ò«?‰­?:Œ?ÀØ@©?æ)«?²ƒü@ïÄ@a¶@>y¢?ßñŒ?öð)@@݆@4A?i¦åî>ê,«@š§¯@šêH@ %®?é?ü—¥@8 +@@d„@U¾¦@Pt@HG¸@C‰@qA@ï{?±ß’?˜O÷@è†@?šŒ@u?ÉçÓ?ÏÉ]?ãíš?ôK”@1Å@;Íê?¹ Ü?ª¬a?ÕŠ?ãhS?ØùË?Øíe?×;ù?Á³Y?½Î°?È÷.?Ó=_?¨x>ö6©?õ‘O@­@ ~@@ʇ@fH@ ž‰@ µK?þ35?ó•7?ß°º?àŒ[?‰ª©?b^?Ns•?6¬í?U>×?‰"??Ÿ”M@üa@JV?«àè?«N¬@Q®@Lg?Û|«?­‰¾?®;?uÿ›?BjŠ>„©0>ÄÍ?¥["?±Îg?É?Ät?‘F?b™à?¤¤?õ‹}?ëá ?Ûf:?áž?[ö?B÷t?¥É[?½òå?ÁY‹?Ï1µ?éeh@™ì@ öµ?ܾ4?Ж>8Œ¨>£R-?Ï®/?äYì?yƒ?ªü?XLs?Ú?”Ÿ=¥Gð>̦?€Ú?Œ/Ô@ +cà@êø?°Vl? Æ9@²±@,^Ò?´lJ? qÖ?zË ?ÅW„?Ä$f?¼r]?ºã¡?hÚT?i?eÕ„?Yª¢?êý_?åû­?ˆš?}w€?Kð >黀>*øjðÛ4>ôu?:Ôç?I!Ô>Á[V>Ø­!?iî!?^_y?Yãê?MËî??èÄ?1ù=?_>÷^/>÷ïJ>ûÿ>%šs>aœÌ>>úó°>Ó`Í>—Ÿ¤>ÌI•>í® >þ8 ? è?ž?†Ì ?…Ý?êG?Co½>ù™Ò<@«¯=5wˆ>Lú@>g„>ã»c?.…?Ma¬?wv*=òŠ=`o?iÑß?Yø4?Iùú?î²>ƒó?jùñ?ÌLÛ>¹œ9Ø=" +9êÀ? d?”ÃÖ?éDÒ?ã1i?ÞÓ>·…ë>L¢P> ö>9>˜…?Úr?Iû‹>íàí>/`>¡©V>òì>òï¨>òî'? +[?.Y?Q+Ü?‚Üí?™}w?ó h?ÄÑU<煮>„}†>›4*??`˜?@&S?’•b?– @?ï>ó;Á?AéF?LÏ?n­?sSW?XŸ#?T…½?€ÿ?‡–>±›n=NÃÉ=“N>ò'œ?W>á?8Ñù? u3?8ÞD?y??M„Z>ùHD>¬†Góó"?]Ö?d€þ?f…d?¢­?  ¤>̶F>¼“Þ> ±y>Y3?TJó?tWé>©Ê^>,C?,ƒè?qYÚ?mZ”?e_?Q_>kkµ>÷÷?@¹D?J?À?±’?’$þ?jJ8>õ ">´ÏŸ>’?·íí?¡N=È>}ñ?NÔ´?VcC?ªK¨?­‹™?šÚ>õ¶²?©LÞ?¸B?葆?ðdÙ?ÅF?¸‡ä?’‚E?ƒÞ'>ôK£>=xî?üá?X?‚‡ÿ?”ß%?w»?OÇŸ?v6?“¢€?l?¤ Ž?§ø’?¹ÎM? ú¦?3‡"?:0?^Ñ"?BÈ>,¾¡>q¿æ? {ð?›1L?Œ6÷?‘P >[=£a«?Êø_? Ôe?¹ÍÆ?º"¥?ºFf?ºSÉ?º^Ý?F=«>Ó5¬?ÅEV@·û?öÁ?؇þ?Ëù}?¾#þ?¥pÃ?“±í?y]?Ž??±K5?Ûg‡?ë]?£#ç?Ó©¸@6¦@2«?¥—Á?”h?!© ?)è?©0?Qw@ÉÔ?çŠz=õ{Ì>mÏ@?îUa?î ±?zÀ=?x¸Ù?×?à7?y³s?{ö>â(>ËîD?˜Œq?‘;?­Õ??·A%?™!D?”±¨?s¨–?ZŒQ?OŠc?D‰A?Žy¡?›!í?„f/?|Cã>Ë®Ž>-`?>Ã?F¯?Rnß?`;í?båÉ?RXg@Q@YûS?Èç>ý·?NW_?|j? }Ù?µfa?*x=ɤ>·ôM?©¡?)·Ù?=×(? Ù +>¯­ß?p ´?·Üí?^¨d>Ùèp?^€Í?Ÿ¥?xÚ?qÙ?ªç?å¿°?™€ý>û­_?d¬?º`0?›¹®?dvÆ?Lˆ¼?% 3?‚ü'?¿hê?¢b?T?œí¸?¿–½?¨m,?‘ÉØ?ý @:Î?÷NM?Rôb?Qv?8Ô›?œz£?êS¹?’9Ë>ÍDD?Û¢?;Wð?A¤>t.?$AÍ?–"'?Ú/l@ ™Ž?¶ä¦?%±Ì?·¢’@Ãå?ìüº?µè +?;ö=Xÿ??#‹‘?Ž‡Ý?BKM?•?ÃÁF@:Ê?ƒ Q=[Þ?5¬x?šÈ²?µt¸?½`ö?>§Ê>¨J>æd?Û?¶ “?ñØ?â ™?â%?äœä?æ©œ?\=>º)ù?.gN?N ?Eîç?=Þ?"…¬?oÆ>ðA¾>ååY?il?„@€?ë?Ç?©ò?2ºÚ?¥ûq?¯æ™?Ñ- ?Ü-ç?Ƶ>Î1û?ÜÊž?í€W?ëz©?éu?×ÏÂ?ͼü?@¹Q?Iˆ?ê^[?ó6m@©G@*P?Ù8-?Ó…‚>†k©>°§W?ÝÎ?Ýx²?±=6?¥½÷?š,?T£?Ÿƒ?™¹z@¥^?ôC\?º¡ ?½UH?΃t?Ìâm?ˆ‹?·£?¦kÌ?“ìW?!ƒâ?Nª+?Ü?ŸdX?ÁÓ9@Òg@Y°@>k@Z?ÁÕþ?ÄK?/òB?dç­?v–E?È?yþ°?u½€?§,?Åb½@=2@nt?È0É?‡iÄ?Éë^?æ’?>Û¦>© ×?&°Š?K)?we/?Ê]?ñßÈ@i$?¿¾¡?¦R¤?½7Y?ÈzD?j¦?Qk?, ?/”?Z×ý?bÒ?vÓ-?e–@)»-@2@å?½ìn?¿)?ÄB2?¾çB?„G›?¨’???=ç=?Â@?ÂŒ{?†^?¸»–?p¯?©ec?óo?Þ>ô?¥û?¨A @„@ ÛÞ?ÝÜT?Ô8?Âco?´Yñ?”:ž?Œeñ?ä?ŵ@š@ÕÃ@±?ͦ±>ÿ&ó?sÌŠ?¾×Ì?¹Æn?²† ?˜_Ð?m0?˜1·?³¯®@¢5@L²2?ؤ ?[×?¦²ü?è¢)?õÉ@M¨?² ?š§ù@¶è@Cþü?è_ ?‘}?˜Ïÿ?˜ã?”ñ?nñ?© +?º %?r0?†Òì@ Gô@!UË?ÎÎZ?«G?ˆ\ +?€ÿº?S8Å?R“?牑?÷%6?ÿ Ç@ãò?¬ ö?«öV?Ñ­S?ÌÍ¡?›è?•e¿?µ?Áû­@w§@Eq>1؉=L)<ÿ¦!jbå?×É@B<¢@2,$?§‡?¬’©?±œ?³çÎ?ÀR? B;?¢É4?¤BŠ?—KQ?”´³?’8?Š£r?4ͺ?EñP?æ ®?ïS?ûü@@@®@îÄ?ð +b?ÛŸŽ>ÌB“>ç}=?´ÎÙ?²³‚>¡»‘>Ãä‚?Û&¨?ÔÀŸ?9—?'@ÿ>@Ð6?¾lµ?¿wy?Ùaý?Õ/Ê@€É@øÜ@;†Ÿ@=ÎM?|»w?r¶œ?´‚Y?³$@²`@À=àö¢?ÄÇ?ä1‘?U$Í?@j?Šë[?šÏ(?ï¸@G?“á§?|cÑ>Ø„>l;”>ú“û?¨?ÕÔ?ûü+@,@8F?\ >uz?Æn?úþ­?…ë«?3¼??Š•‚?˜°Q?Šœ?ŒT?ž²ý?¡­Û?[î?¨ÿ?„p¤?µôÅ?ÝöL?û›@ »¤@Sd?æO?zNÄ?—cX?ÃéR?祗@r^?é|»?»l?²¸? ý‹?’Mn?Qkê?Šbq?똡@áõ@q·@Ró?–‚?j@@mi‹@^º×@ Ó@,>Ðú>öy;@0/Ö@'„p?ݹp?Û&?.Ù?’.™?ÃK“?ɇ?©@?§µ?LFÕ? +†@@4'º@q÷—@4 +@>@+KT@A»`@`¤?¡†w?±IF?»œ?Úú[@ Ël?òìÀ?–.?‹R?Ð_?­F÷@¼¾?ýgd>:ê¬?Ùð¼?Ñ9¯@ÉT@|Ü@I Ã@I&ÿ@Ò@f@ðw@-,S@&>@}@5{?î0%@úÂ@6'm@ +?óò©?Ì ‘?¦;9?ÂKÅ?Ý{Ó?Ç*Ü?™&a?»y²@$ŠÉ@$ü?ýà@7°?¿N:?»~í?ôac?ñ*Ÿ?¥q?Št¹?¦=2?¹Ð?ò›/?þ­ø?–¾?7#?Êún@Õ´@@§@*'@ ,?ðéP?⺦?·Ú?°_¼>ðsŠ? Ê@uÍ@ ZN@8¶?ö\'@M@]Žu@4r?ÃEµ?®Å?–MD?‚p?p4û?ïàH@T©ž@;ÛN?îÃ?ï_i@¯Ë@ ‰Ô?–ãT?šêº?(ÑÌ?v§?Öãî?ô€Ÿ@m‘@1æø@à?õ¥Û?ùºÇ?ýÊë?øb*?Û„Œ?Õ`?ôÚá?ûHô?Òp?Éí@Pó@ uñ>þ£È>,k„?Jù?Ž 3@Y}@<–þ@½2?’ë?”ˆL?˜ó¦?ljg@ƒð5@‰dë@€oÉ@‚JÑ@0Å@$Ë”?»‡1?Dò]?F©Ø?:±c?@y?‚?–U?ή9?Õº½?ˆ™?mT±?ÒÅ,?×@{@ +"k@Î<@?@ZQ@Aª^@ž@©@Ç@"Ñ>óÕ>ê +@3‹‚@E!–@~^?ÁC›?²_¾?­z?ÍÓ_@±?ï˜ö?Âð??Ñ?ç«`?ú~S?âK?¸°Ò?±˜Þ?«é²@ #@?)—@6AÈ@ç­@'áœ@(¯N@*ë?ëµ?Ü ñ@ñ@ OÌ@ T?ä ¼?ãý{?ãê\?ݽ?´’?¯}@Ag@>S?à°?¹*?Æúz?Ê…?´|P?¡­?¢_u?Lâ?VFb?eRå?]Û4?ÎÈ4?ïšø@T…@$ýP@#Ü@+@4 @™Š@"ÞJ?ªP?«âË?~á?bVó? !,>»‡ú?Xeö?À +Š?Êý@•Ì@s›?rmH?hvÚ?Žë"?©`°?Öc—?Ö;?º0?¹W¨?Áa¿?³þ?­‰@ u@Ôg@ÔÖ@ ?ÖH?ª!Ç?§1¥?ÅÛj?ÓÔÕ?¤f7?©‡õ?¦2o? yE@»c@‘?ÚVñ?¡o^?zM`?"µF? ]R>ìCŠ?Hn?¾—?¦s(?zD¹?‹ª?®0p?§Õ»?ÂÕ~?äã‘?ähf?ÓŸç?·ƒL?›•!?’’H?,ŽŒ?8üR?b½?fv…?Å©?è¤1?¢ÛÂ?MÐË?eòe?84?˜9?œ8Õ?´?ƒ"–?n‡í?iP“?i”å@ +h_@[(?˜€ ?PzŸ?½ ?ÿW?ÙV?«èS?pyî?1W×?Á"£@%›ÿ@ç?”ðá?…ß??·ª)?¡¤f?w°?ce?Š~^?xvO?+³¿? qèÁ?öG?i*?%ý +?4Ÿu?Cb¤>ÎBj>Ë|?C¢>ø_ò=‚÷¿>ÜÊ·>ú¿Å?1ì?8“e> ”Õ=‡³ <挛>pW?ì‚„?Ôê4?k?!§f?¤âÎ?—†èÈ]>ÉÊr>>C«?8‡æ?—6:>¥L88«€<'‡"?.pe?3UÙ?×?Bü¤?tDÎ>éêÑ<û0>¿­>Î91<==>Ñ=‡è;Þc >ûkÀ?”¾?Îö?½—?v ¾?V€ƒ=2ú¦>bæ>ŸÖ?JÚ?%ú@>æš–>”8À>Ãé¾>òæ“?@â?¯?#Ñg>`ì¥?,¥ž?´ßì?«ÜÊ?š®W?f@=¡Hà>óª>ñ¶¢>´~—>¬/¿>ó*›>ó.Ô>ó6ž>ó9Ý?Js‹?SDc>Öª>»$ª?‡·?žrE?[d>oùŽ>ùù?lú>µ)a>9ó´?S³?¯Yp?²Ñ?µ=£?Ñ'?ó©?ÚÊÉ?±WÏ?‰Èö>ãC ? p­?fèÿ?fùE?sñÕ?,ÿ?·°?­œÖ=Ûü=ôt>´y×>®l`?›?£:¼?}?gk™>.ƒˆ? Tï?=×?õt>öj£>ëÕÕ>á5b?2ÁØ?tËì?®Z!?å4Ù?±3æ?J¨ò?) >Ïc‚?(-v?·à4?¤/ã?)fž? +ëú=Uo¨?µ? Š?þ>ü>‹?pw¥?vÔÙ?éé?õÝ~?“‡y?vÅ?ùDo@ ø?»?“Ô?Þ¹_@’Ý? HÝ?E×ñ?NÑà?K r?]mé?vª_?¶•?‘Ǥ?–ˆ?›M6?ƒò¥? #?Vc+?Ñ“2?¸‹?%«q?T¹@ë?ó…=èî¡=àZ$>÷¦+>÷Á_>÷Ò›>÷äî?áç?ˆ.?nz¼?xÊ8?{ ê?~uÜ?­LN?ºSÃ?®®õ?¦Å?ŸÔ²?¤ +Z?Ÿí‘?·Ï?ZÛ‰? «P?®–?ðÎK?§€t?CC6?mz³?™Ñ?Vò_>‡õ¹?‚å´@âh?æ½ß?$&?+:v?2Sß?Rî]?‹tm?©Th@’m@–ï?kÔ*?`ð»?ºs? ýG?zK?†NÁ?ñ?äÞV? +ðƒ?Jß?Ü é?Öµ?ì"]?ëˆÚ?‚ö—?{ƒ ?¤\¾?¥–.?Ûï€?àó”?Á+L?¼ô•?]ðë?M†Þ?‘çì?—/¹>øä4>¦Ü!?›¿&?½`?ƒU?QúŽ?î|[@É&@&Ê@0ÄÃ?œ@->ý„?½ãO?û™9?ƒ­â?öä?G±æ?\¼?Ó’ú@-?ŒÅá>ý¿Ì?59µ?VGg?;¬ê?= k?Ì$>DT?L§3?žs?±MÆ?¾ÌÄ?“=S?jCf?Ÿºˆ?¾ÿë?‚Mö›«>þéi?xû?¶C?¸2?ºÈ? T?‚no? :Ÿ?¿Œé?Ÿ3h?‡R?¬Àü?Þ?ß«¼?Õª¾?×å¯?ÛôÐ?Õ¥à?Õã +?{ü¾>˜½?{µ;?É%?zÄò‹>Ó32?´ p@â?Ϻ.?€Pþ?šNU?²1?ž_¡?Šÿ§?SNt?ç¯@X9@_–]?áð?’*>‘¼‡>O7+?%e¼?\™þ?˜ü ?³à²?¥ðÿ?£!j?1­R>¬À?') ?O5·?òí?@"g@ ›¶?ÿµp?½£Õ?¦Iù?Œ²?€ÿ?‘3±?›`?¹q?Á›q?…‘?l2¿>€i~=^Ñs?ž.'?ÁÃó>‘þ”<~? ™?·´„>¦N>[¬@Ud@fê? *(>½mþ?Ê0j?×n§@§ä@dg@!$é@ ‰ˆ<W=-5?žr¹?œg5?©S`?¬cY?«$?¢ÜF?„È?vÇ?¬¼?Uä?ù?âÊ?Ùn?$¤õ?‚Rå?L³@=ôň>έ?‰šk?xÑ.?2ö?‹µï?óY?Õ^?™¬"?¬Ú?Ò2­?ñc€@À«@¼?ㄵðæ?KìÊ?ŒÜp?‚O?Á¢?V‚Ö?*†b?¸ (?þXt?Øÿ•?Å­¸?ê¿„?ø?¯ûÙ?•±?Ãp?ÊŽ>òkl>tÃ?ŒHD?«ù¥?Å?Ò?¢½a?žqP?‡?Ä?@ÜQ?4h>a¸M>' )?hL¦?eP=@ Þé@cf?‚Cš?‚c1?k‡?b @·?ý4š?¿ã»?Ãý(?îh?ÒÌ?.ù?k̤?ó¯ƒ?Ø'è?[LÐ?ˆB0?êëu?Ïñ? ¥?¥AG@œ?ñ\??ÌŠ“?»½Ù?”€j?½V6?ùí†?Âd?fÔ”?©ÒZ?ùXÖ?®€T? o>ž©O<[R>ûé?„òÛ?ÁÛ3?úí?ó1‹?êŠ@7@ Rÿ@$ͼ@,ap?äw?ŽMÏ?¢+?º?°l?Ç?×K?Û#¯?úòD?ýlƒ?ÂØÈ?±¥æ@2£@ À£@@J?ûF6?Ne=šäî<`cL=ž”?£vŠ?Îà¨?Ä® ?Á…ê?à°¶?â)u?ÍüŽ?ÄD–?Ãùu?Ì?šQ(?š½@ ”ç@}A@ðe@Ö?±Š?¬±Ô>¯C>{œ€@Áö@dA?a@?>Âá>ñì½>ûñ?OË?íØ?-û?Eøè?Ë&?Ì}}?¢S|?›§"?NZ?œìÖ?¶/¾?ºÿ‘@HNü@Nòë@/'É@+’Ö@ð@ + ‰>¿„>¸cH?¢²?¬äD?âȇ?ûç@O'@T ]@?^@.¯?“Ã?‘_>Ø Æ? IB?ÊØó?Æ©Ú?'ì?Lï?Í`A?¾Êí?€?wCÑ?F?ï?[Ϻ?¨ +?­G¼?¿a?¿Wü?¿P™?®1L>ßeí?Ø%?¿&˜?°¢?â?kÇ>qÂá>¬–J>þV>ðön>д>®ß¬>þTb?3?á|m?Ú2â?“R?‘]@fV@—ó?ã¿Õ?âÔ@ûf@Ò¡?î ˆ?óNP?öŠÐ?ûå*?}i ?P@13ˆ@-9@l@Ú“?ˆeÏ?v!Š?øTW?ðI ?·?¶Oõ=Óÿ*>š >“¯Ã?J©Î?bÐk@y<@¬€?ÌãÕ?¾cK?ðžg?ûô°?‚î?`Õ?Rš›?<ç‰?žæ?¾Y*?Á˜?D«Ö?ù!]@6*?Õ³k?b?ÈÖ ?éRa?± á?‰'á?Šâ»?ˆÇ‘@KP@;a?Úø ?,âs?\ƒ¿?zI7?Ѧ@YÖ@ ÇÕ@ x?åÏä?›QV?¹—®?äD=?¾ì?r‰"?wý`? Mæ?Ît@0M¦@$ ?¹‡?Óg@?Æ#@<]¦@@}?„õ?z@RR@UµT@ƒ2@Z.?Ùa¥?ϧÊ?òÍ?÷Ú]?y“ ?.êù?Ð6?÷ƒ@X@ ÕÉ@ 8H@ý¢@ï@ ùq?»V¦?\&´?±-È?öÐS?îo?Þ‡>?ò7½@ êó@ ;¡?öÄ?×kÞ?uí2?‘6»?êÉ?Ì/œ?5ÚK?O÷?œK“?£<Û?ðmc@‰ @EÑ@ ‚¥?‡R?IjZ@ â€@*»Q?ó”?Â&ý@؃@7i@$s@O‹?Óeú?sµÏ?š3Ø?Íiw?È:Ì?¶xy?°#Í?žù{?žó?‰a?Ž2?û.È?÷Vý@2ïC@3Ñ7?Á 0?¬&‘?Î0?ÏíÜ@%™-@:óO@°?Ée{?뎓@ Ž¢?Ç[?+ÂÁ?‡6?ðØ[?áÖj?´{À?š¹ü=šZÖ>FÇ@Óæ@¼>b‰@Oë@CI@¥&?·`?ȳþ?ÉuV? ¨>ç F?år@ôû@ OŸ?³c`?¹– +?¾ýà?ÄS’?ÊP•?†½?µ*D?®âÌ?–ä?H?;:™?Q´?o\@EþA@IP@½«@ =Ž?ÿ_û?úÓz@9„;@g¯²@PÉÂ@-™³@Y¾?¸®?¯×Û?c6?cÍX@ŠÅ@“º,@GŠ=@"·ó@)A@öz@Ž@5±e@<;Í@aƒ@bü@,5™@'Ïp@îÍ@,?Ô·ð?«á¾@óF@2Ûª@?›\›?Šž§@ +²Þ@¯?é›?ä[Ï?±‘?«xw@©«@ä@ Å–?õ¸á?îÝ?ã·V?ã¦>?æÙâ?õ!w@ç5?ü\?Â|X?¦ã?ŠÎô?g?‚ë?-By?,ª?ª-B?¦ž@„r@“ž?Îú?œD?Ç0]?þá’@ ?âtœ?âka>ï >ÿ­ñ?Œø?›^b?QÀ>üì?ŠÇu@×7?ìVÁ?„Þž?t±?ßôË?ØžÙ?ª ½?™ëa?ï°S@¼@ÎE?áµM?¼Ë?ËLv?Ûåˆ?qÙ¸?‡[·?˜1ç?©Ð?ô¬ˆ@ ó@?»W>¸7ã>¶*¼?Zܹ?b}:> +O’>Š8´¨? ¬È?ñ#?à¹åÓç>æË?†¥?ƒï?Ÿ5ë?¯Ty?ªF‚?žÍ?˜²?’’²?©^?è6.?æÚú?ã=“?çË©?Þk·?ÑÕN?Ó£Q?á&K?ÐÄ-?Ä×w?n˜?È¡?>0ü?rÔy?¢"Ó?º”ì?ÔUÎ@<Æ@Þ@øÁ@?ì{Ã?Ó½#>ïÄË>ü|j?Tiœ?m»Ð?Ö¢?/î‡>@Ù=¨Œ¼?ÛxÖ?×i:>ŽÁ>>Á>ä¼->õö•>/¨¸=e_?40?³"ø?^ä&?0Ä?A0›?8d/>eÝí=ìat?ÞC“?ú„T=e¦å=!Å?Ô^?ËÚ‰>‘ç>Ʋ?§E?g­??þ”Ê? ”Ì>>m˜>‚wu?*’B?”/Ì>Ü'Ñ<(¸t>/Ã>H´š>Ià>ßëÛ>sm¨=U$>€…1ÜÃ?o;>Qe¡?ƒ³†@'Û±?Ìžé?®<ñ=êy>]üp? R?œx?;Mx?E1?CéG?B›g?«tž?É´â?[×>òÖƒ?‚åM?¶$?q¦>÷Y´?„¬?Ñ™À?©+£?h¨Ç?f>I·z? ó>ðÐ>>—Ô;>ÞM¡?s ??hë`? Ñ?"' ??8J?81²>ó*3>ó-“=ÿ²©=ÊaÆ>²kî>È’?™W?­ÒÐ?¨ºž?©Lã?Þòl?ókË?y‡>ówñ?D?t¥j?3ö¿>ü„è?97£?y¥ ?H°A>óµe?j[Ú?ä‹Æ?Æ4‘?sÖf?N×s>”KÜ>¬HÁ>¸Ú>ÄÆÊ?Q•Ê?P•E?¶C?·¦?Z¬J?X&>½dY>Œ?¸T?3†!?¹<¢?ÓÇF?p?>(â?@ؤ?Cê?¬ûÛ?ðX|?Î+á?¤zÏ?µB?È"Ö?»¿!?ª#?«’ô?­ý?ˆ ¦>^+D?²ÕG?®ó“?uy€?u†¥?u“2?u©`?¸æ?¼ˆ¼?qó? P ?ˆiä?™Œi?Œ0Ò?ˆ?Å?ž˜'?«Ùó?Ÿ¼ ?’k?›V©?¢p?n·ý?.Pl?áL>ö´“?ï?77w?õ>Öð?=¸Å?ÇßH?±KÓ?N_È?‚†?ðQ +?ß#?´ð?L?Hø?7? +ÔT?š?ñŠ?õ`ì?õcö?÷_e?ôPÐ?ñ ü?Â}¹?º?¿?䟓?î(·?™)d?xœy?7`?š–>ä<>¦Äé?SÂK?ž+?zŽ?y0é?9Œ>ùQÄ>õåm>ß°?[ÿC?»5H?„j›>¨û>|xj> ? +4t?»‰Ð?Â~µ?Ћå?«1™>úTO?P\?má?a{ÿ>ý1)?º?„M?v%ö=bF> ¨Z?’è¢?œÕN@Ö@MF?«¼?¨´Ÿ?—f? ؤ?Ïà ?×ñ¹?þÌH?ý¤>Òó×>c†u?§¾”?½)?0Ž>ü¾¨?•BS?«ö”?àw?îî?¶>Â?©´ò?–r?ŠÄ§?*0?T?›ß?¾æä?¼v?s—?£¡?µl#?¥ ?¤ß?åµ×?ü-?âË ?Õ··?¶gâ?žu*??kƒ>þ÷>ò%>üg/?w?{?¢’ ?Dò!>ÂÄå?OB‰?•íû?¾»C?Ýg)?„¬î>þ×g?;™k?m?ˆX?Ž¹…?Ç|?û¬ÿ?þ•!?üÕ~?•bë? …;?W—§?Š ?lE?U4L?‹2û?¤2Æ?œþJ?– Þ?z{?Kú?ËÞ8@"? •õ?ª?jÉ?šak?ñ…@}?¹ÄE?[ìç?_ïú?cñá?“*‡?«Æ™?¯É¡?³Ì$@¦Z@>Bß@˜¿?¾ž?·ÕQ?°Ôy?ˆ°?€žñ?«at?Á­?¶²8?¯¹7?Ýb>*èR?›Ñ ?ÎÔF?ñí@Õ³?çÌ?å1ë?œ÷?€êL?€ðÄ?€ó«?€$ï?r–õ?ˆˆ’?”݉?"f2?¶?Ôƒ?VÐ?¨T4?¼2•@4ž@>Lö@¢¼?ý4?²Ù^?¥ÿ*?`S?l&•?¢ËÎ?Ÿ•>ì[[?)`?<'?Zz@!³Ê@ß?E—Ø??j(m?Y{ñ?…}?4˜?¹õµ?Íp@öj?Ëú >óa4>µP >ev? +²©?©ó?£4?¢g ?Žb?SÍP?LIZ?E¢?·¸Ñ@²@)Z?âSn?¡Ó–?8ï¦?[ ]?jpf?U„Û?@—?ÐŽM@å8?Ø‹¿?Œ—Ê?ŃŸ?ïo‡?¬ù7?„/o>«5*=ò¼>ãW0?$Ìó?Þ?ä?‡›Ö?žY˜?—â>¹LÔ?Êþe?ì­q?`"?7΀?áVÆ?è·‡?ûï£?öðà?ÔñW?ÌÐ7?dƒ ?T¼4@:}@æä?Å=?² +?³ê?‰Õ=?ýªC@ @¯'?ëóW? Ɔ?(År?Ýå?…{!?¤5?&óæ?¡-?²ôš?Ûþ?ÌÅ?²?§ïù?˜À?Š/ß?¤f?§ Ù?œ¿Y?Œ8Ò?\½ñ?·d¼@{¸?óe?qr?Š3P?¯ª?¢Žœ?‹ÀÙ?‰­q?„c7@D€@:é¥@ŽÒ@f?Æ…†?šnÏ?éà@Y;@jË@!©:?¿]þ?i4µ?X8€?Eœk?ËÍi?÷ÐÄ?ã,?·"]@"…6@D·z?ón?±-@|¨@0Š÷?îK!?È‚¥?òNP?ÿà‡@YS?ùc4?˜<Î?‡Í_?6Så?.›&?“º?¡™?÷3n@éð?³8]?§ú?U6^?E¯Æ@F5S@W?éBû?Ú,‘?¯Í{?©SD?¤“-?Ÿ½?fü”?n>@4‰@4ì“=j³ÿ=¢¯?þEa?ìù =7]”>?À¶‘?º +Ï?=ÝÓ?;¦b>!€[>¶ö=@ìç@ +|Z?wë›?ŠA?î©?ïNo?ž§E?«àz?º¿?©[?:s>?0†k?&“…? yE=”ÓØ>lj@LË?ñô0?è¸?†ó?«ŠO?¨dÞ?°˜;?ÎvÕ@8ÅÅ@" U?²b ?®æ¥?n›?~ß?pþù?j`:?6 ?ƒ +?›Ho?¢¹H?²h?žUX>7±‘>§„?Á‰x?­9>þ¶³>Û§<=öSœ?d]_?…µ @»–?í¨?NôI?†Ç­@D4/@= +r@-\œ@*G/@"¯¦@$é?áKX?ò‚ @ Ïš@i?}“u?w„ ?Ð??"”?û§?Ó¢@Ed@ *?pÎ?ƒí?Nxñ?XŒ‚?àë?îÒÐ?ÜkW?ãxZ?e"ø?>gÕ?Ž?Q?VW?‹¹é?zbŸ@4Á·@KäÞ@ +ìä?ý F?BÆ‚?­š?Ê›C?Ý»@%n@0z?ßÛe?Ϻž?ÉÒÏ?Ãâp@ C'@9.@r^@Mó?ìáT?Í{¸?¸ÐÇ?°Î?ç ­@ L?•Ê±?–?Âèö@½?ý¹8?áSo?Í›;?Ç<Ÿ?À$?®Rr?% ?:Ž«?¦˜Ø@ 2@d@P?Ø~ó?0=3?m£‹?ÛÜ®?¯çg>÷§²?/=Þ?ËV ?Ò—ü?Æu?Á q?E‘j?a<Ã@:Gß@:3 +@Ibê@KKõ?Õ|z?ÍÍ?ó¡g?÷Ë0?å8™?ç¶L?î9Š?ô·›?jÓL?!b??x}²?’I‡?˜êb?Ÿ‘à?®ô?¬xŸ?¿iI?×Ä?¼&Ä?¡y?ƒÌ?ö?vmÑ?âÅ?Ë#?uÜ?væý?éÁ?”1l?Ö .?Â[2?ë?'qä@ï ?ÿ¥©@_¥@5‡?ד•?Ê$?ß8(?è€Þ@ .ú@æ"@>D–@T©Ä@‡ñ?”ÕT?ºò=?Ó2Î?å'r@¢ù?ùÝ6?òcŒ?ÇúO?EÛ0?t²¹?Ôm?Óñò@ï@V¡?w¢?„´?ãª?çØ +?ÉŠ°?Ç9@Þ@0n°@ ±¯@¹å?øuë?Éå??âŒ?´ÃO?Çà0?ìžà?àJÐ?´l5?°h?”µ}?”¸:@!Á<@½b?àíf?ÑC^?’&æ?z²¡?äÊ2?ø¤ ?˜" +?1¨?G$?q£ä?¼¶É@&?øŸw?Üò_?Ýó?î4Û?éÄ?²z?²fü?¹)h?ÅÃã@’­@*H@v—?ïxî?¶a_?–#?ëïP@tZ@Ïe@q/@%·D@+ú‰@)Ô'?„‘é?€<¥>l”J=_z @!1@9¹_?Í¥?Ÿ¸3?½É«?¼¿×?áwô@®—@2G?·?©çÙ?Þé?Çß%?y??oŽ@%nó@4ýá@ Ž?é]ù?ºÀX?’*&?·ªš?é©?¾ty? ‚û? +à?¬Î?µ©ž?Ž0?”þ@s˜¡@@8J·@²"@¨?úÔ´@žþ@€]?êy +>îV>òû?¬¯P?á#=@ |@,Ôó@ ‹?ï€Ð@›@8d@>$ß@EmÑ@IcÄ@€Mù@y–¹@#Sm@4?ðy|?Ìñ@)^@p(š@tÓ,@}ïº@b´c?°ì¬?­|w?#ôß?2±?ªÉ|?º÷g@ƒº@-ß@$¦@e@º´?ÝXÀ?â.e@\Ž@T³Ø@,@ð@_?å°?ÙÛT?Ï3æ?ƺ“?ü.?ìµ@D.§@;:ö?Çè +?±aÑ?˜ž?iî?œÊÓ?Óh¤?Àƒ~?ÙYà?Þ m?c ?WÂÊ?(7ã?0ù°?ϼš@64@ý3@3*f@#x?Ùèˆ?ß`.@C @<5\?õúË?ÐÂO?Ô9Ê?âp%@9í@&vÔ@¦©?ç‡>éñÈ@;™@/Eæ?{ë ?êœ?¶Yí@mÜ?ä²?œUu?Œñ‡>ëšî>í$?D¿^?-Å?ŠF½?‘o¤?¸¨?ß+?Ï„?ª‘?×s±@(tf@½Â?ƒœž?cÔ“?ÆLâ?ò·æ?›D?d|Í?C£V?)n?R.?³ä3?­_ ?†öž?@B?„/Â?c½+?äÀš?ìÖ[?‘²[?nÏ‹?{Ð?„˜?Š…2?ð$?œ°'?·ƒØ?ÁÝ?§o?·CÂ@'‡ø@!M¹?ivô?_éÂ?¿¾?×Ć?¶7F?ª¡?ËÛ=¬¸?Lb?Ä3?´G»?–»s?\=q>b]?°ï?´«ë?Bª?Ó5?‚Qt?e¸?ÎdÔ?íÛ>‰È®>¸ZA?nŽÑ?TqÚ?3ãƒ?%\k?.}Ž? +S>ÿm÷?8/?ã^?%s?•%;?˜¤’?|{>û¦?q»õ?€ŽO?_¹N?AÆB?[°>?kvû>L]F>Ê?m{F?}lÄ?ˆIÙ?K >_N?A}>qƒ>±eU?jU>ìJ™>Ì<Ç>«ì>zÒ4:™¸?X;@1]Ê?Á,+?ÿ+<€Þ =Ž”²?:À‘>¦n?b.?rÈ >äD>Åhü? Ö?-Iü?’¥4?©½t? JŽ>e f?wŽ?4@f?9îï?8oÌ?¢%R?ÜzB?½›Y?œI?D¶o>D8?,ZO?¶29?p<¿>.ï¤?$ë?(p™?,è?JP¾?¦Z!?žo\?¿á?Ï@>ÂK÷>È…å>€AP>_j[?BÇy?Uû.>ù&û>Þ?Ã*F?飤?Z@f>÷õ¸?·R +?ó]Ÿ??Á>ŒÎ?-èR?«¼¦?ˆH×>¾ >íØn?T1W?H6?ù?3)?· +?¹H?Ô’T?Ï0³?¨ ‰?£·>¤å£>lôd?‚2ù?¡e?™Ô?‹ò:?I¬ ?)‘.?Vr-?t³ø?t¼ü?tÇö?­Ýó?åTO?¿83?‡Iî?…îO?„’?C8t=çÍ>‰‘Ç?cº„?js4?rU?týR?u}C?p˜l?Èm?ÞC?gàŒ?eñð?s×?uæF?uô`?v¿?,bž?ðX?z3Z?#?âs“@ì•?ÎMb?¨X?E«?|Ò ?ŠG‚?˜£G?Š¤‘?vÜÆ?c“A?I+?2š>÷"@?øK?â?I?±UW? n‹?c,¤?dU¥?[õ?jñÏ?¹Ù?¸ª*>û%?•.?ï¦î?ø#N?4Ó–?Þ”>ªq/>¬Æ_>qš¸>bëp>‚¥> ¦(>K>'úÝ?LÌŠ?‰Þê?…X?y#'?W‘p?:Ì?Yþ?yhÙ?›q¾?»(Ã?Ÿ~?y´H?f#q?AA‰?t-Ü?­ìÀ?ÉXb@8­?Ï~>à@:>¯®ó<½F?ø@Ù@Žs?z¶b?SDÎ=û?™ã?&ú$?©B?­?øZ?”7?£‰µ?šôx?–šS?™H¥?²v ?»¦?G–€?62™?µa!?½½?¨c—?¨lu?”¦Ò?;õ?øx]@Ã?%ªI>Ö6¾?Ød±?üÌ°?• Ú?x««?¯R¬?½ÎE@ 9,@•?6æk>UrÀ>û‘k??²Ê@?ß6?n‘z?"lÙ?1°?@ú¤?å>þÛ?ä>ýñ6?'rk?FnÉ?lVB?~iº?fï?PSé?jF ?~¬ì?/ É>þÌ>?Aqã?VwÅ?òYV@$;5?¦Ç?|ƒ?ÛŸ@2G?|¨8=S˜?!Åö?†Þ>ç‹=æö¸?ba¯?­vK?6ÓÈ>²C7?BÎÕ?üZ?Œ3ž?š„X? û2?™Øt?‹àz?Œ7,?ùñs@5â?¬,ž?$7?5t1?8øÎ?!3¤?ÅÖ?°Á?;·¹?A9g?­{Ý?ºú!?Ü•? ?·÷?Å¡a?‹êð?‹é?ˆý,?Š§x?ß"ì?Ù‘¦?Á‡è?Á|Ç?‡ ?€ôs?u­¤?rG[?ÔÁc?ã« +@2'@>õ?f?Ö?š¢>ÿ}‘>¤'?ë@ „?Te?Å:x?z½D>Ÿñy?žø&@Î@ +'›@¨?¿È?ªò?ìIœ@"R@ú@ŒŸ?µ”?=p8?¬P5?ØÊ?q²Ã?Å‘?›]‡?‡?Lµ6>ül€>4^=?&>ÎÚ\?¶Š>‚ÿò>fÝF?‹[Ð?=G?¨–?¯ˆI?d7c?Mb?è‡6?ÿ\³?êPÖ?óBn?ô C?ùWY?~Øü?‡K?ðãé?ñŒ?ºwy?¯Ûn?•w½?—ÔÑ?Í®é?б @Ù@L?ú–u?ß7?¢ù?‹Ic?«Ql?‘òË?!gÛ?jFî?Ö¥Ë?ËÔa?©ÇÄ?›€¿?‘Ø?‚xÃ?V8?•p®?ÂLä?®´ó?”ñ ?±yZ?ÊŽY?ß…ñ@#‘?Á Í?:Ë?¨§??ýá“@<@@y @@b@%Ç?æ’M?ÊA±?ßÂ?écQ?œ1+?h¯@ B´@7%?Â2ú?NZ~?? M?>z2@ @Æ@3m?¦£A?3Š?‡=ë?••??áïÃ@·)?Üpï?Ìö~?ð&?ûwÕ?Å Õ?½Vd?+æú?õ­?àk®?ôÛ?çVa?ß@é?‰ñ?€ì?pîæ?}Þâ@æ@ í?¬ž!?£¤@- Ú@-N@0á@‡m?Ô™…?Øã†?Ì©?ÐÂV?¨ ? ?Àð?½o?s2;?‰rÐ@ æ@`‚@Þ²@?‹+õ?‹I9?aÆè?lE@x“?í2ë?¥ ö?¦Wù?DoÊ?Xþ®ä?ýé?^^Y?Z´g?~w!?¸2?œ¬?µ¾?.ï2?_86@:@ u‡@®à?ÿnj?NÛ?AÍß>Ö™>¨3@? @î3?}‰º?~•Ò?‚3?{â¹?vf?m×?4bø?C#>ý? Ú?ÀÉÁ?¸^ +?ÉlÄ?ÃçY?ž¦ ?›p#?¬sB?¶Ì?ÑLr?Ϻ@/û:@7'?ŒE?on@…Û@Ã,?•Éo?r;³?桲?û¹÷?¶U`?¯ ê?Ê»ƒ?ÒÚS?ò{¸?ûTy?ããð?Þb @â×@õ“?æ¦~?Ù#??°…1?“/@P@-UÀ@%°á@Ý~@ ”h@µ?¬G€?J`M?‹s´?¨‰»?€ø?/1á?9„E?;2v?ŠA˜?Ô?ôÿ@åí@ ¶?Ç_ @ÞÏ@oô @>x·<:ÔÙ>Jéí?‚xð?…?ˆÄ½?‘Ž +?¿þ†?·2?á5ó?íç†?Ü“b?ì¹?ÆÊ?¹ž¸?Ѻ?ÛÇ?¥Àv?’’?ëâ?yD±@B“<@dÀî@é?ß0ë?»Û?¦‹´?ë@ †`@Fx?öŠe?ÈÕ?‘éi?–*?šÚ—?›ñF?Ÿ ?í0?6†?ˆb?´ +9?˽´@,ò7@ò>õD?9@–q@Ð@@#)k?ìe¡?â4«?ïD?ä.Œ?ÛJ?ËUç?’ ?†Gç?Ä;Ü?àhü?‡¥L?¬H?°ÿó@ Õ@@þd@o?|ac?mj@+Þ@d£?¯‹?´Øæ@Ó»@u?’(\?&Æ?G{Z?Cj*@(Ί@JOg@ 1t?Öãg?¢Õ?q/ì?”éx?´º…?²`'?±¢ª?ƒU?”Ñr@­ç@!‘t?ìËk?ñôµ@§@ð@@o@U…®@9*@,³@1¶@.Ÿå@A´à@_@3†ç?Å>b?É=4?Í;£?Ì.L?™Àï?Ð@?u.?Rž?¡NR?²@CÙ·@fhm@:\»@8%?ó*x?ÆÃB?ÑŠC?ÍÖâ?ÑÿÒ?Ö (?Õ&ò?£pß?§¢Ÿ?ñò>?íF?ÄPÎ?Ì Í?ìôv?ç¼?øŠ@­(?ñ«2?؈?Ñ7?—×?²{q@b {@fYÊ@‚i˜@xü@) |@æ}?™Ù}?.¯?{}??ѬÚ@%nx@Ø.?¬ef?¨Ñ?n?nr +?iV®?h?ãP@€5@5Ÿ@%Hl?ÕK^?;‰¥?ž—Î@A¥Ý@=C?¬Ñ>?¤æ?ü6?÷¯„@w¨@}@?úÄž?¾g ?Æåi?ðä&@¬Z@,T†@*,?ñ©@Š:?Ðg9?Íå?ß·¸?å!@i´@8Ò@] l@§T@‘°@û¹@ ‘¼@Fß@@9íö@â6Í?¶ 6@ ~‚@ Î@4wâ@&dÿ?°%‡?ªø{@ÐÅ@o’@ +C@Ê"?òÎI?Þqä(F?±!5?¼+?ßn©@ x„?êHK?«Ç!?ŒÏ>°ö^?K?·§¸?Äü?ûD@ +·?òß?ÚÖ ?G1>“h«?€?g’?C+´>èd>óù#>ýø4?¶Ê?™Ÿ¹?³†#?¨¦}?“íN?ƒLÉ?Ž!?”í?k(É?$o¾>Îf±?1?ŠÞˆ?†hÑ?m,Q?:!ª>>=œL<Ž”z>S¦ ?,Âá?Hq ?dMS?Y0?A{‘>øÁP>1êÓ<é¢?IÉ»?=]?Ì?&ë=?m¦g?u¡?›ïc?¯_ß?·¤?ª¢ü?jo£?L\§?’æ?¢L¿?Å>ûr!?oÿ4?|º´>Q/þ>‹·¸>ýz#>ÿhZ?"?k?̲>ͬ=¬Ì >z8þ>¯Çñ>Ä^4?&>ÉÚR>FœÐ>·¡W?Çü>7¬”>Ä>R"w>w}ä=O¹Ô=û \ƒ¸ü>³â=N5K?D—?ý0?¸e ?˜3{>9r=zl>Ÿ°À>ã?YÏ?Mó>Ãt>Ë-<ö»@>ÛI˜>ò½Àœþ>rHR>Ò?„>çDà>èí!>òÈp?¬?áx#?Ÿò©?rГ?KÚ†?'Il?nˆm? ÑŠ?LF„>n¾>þYq?{È;?*3®>Å>–Ö?VP?cÜW?†(B?u±ñ>¬¨I>½³?­lu?¬;è=‚Ôy=>åÔ=#S<þ >⦪>û´?]³Ô?sHƒ>q2Ï=€>«îÄ>æ¸)?„ÈÝ?±9u?lñ ?>?Í•>̺>¦ü…>’„'>x þ=èØ&>õ©~?¥è ?Œ`í>óÝb>î¸2?·_?v?ž ò?¤|ý?¯?²=s¾>V ¥>_KY?‹C(?¨sr?­Ù?§§?nÊ?L{ã?g’ô?t­ä?ŠN™?š>?£ç$?«·´?¨`:?¥a`?”rÕ?hLÉ?/‡p=äã>-Í>õMà?;ç’?ò´?â%D?ma?d\L? ,]? *K?­?¬·b> >iÆ?‰Jw?•C?¡QÞ?£ó?t,À?m;%?Ÿº­?°ÒT?¢œ?™.+?‰bH?|ò?c^G?CÁq?%œë>öå? b2?!ìM?mr?»«²?媠@3ø@ô>÷p>Òl=K…Y>Jö?³’?®>÷Ó™>ó=¼D¡>cÁ=ia¸=~k;ù$à?+¦H?=ÆÑ?7¨?0_6?)¡w?"àC?œÏ?º§Ê?=Îe>â®?KÃØ?y+?°é?ÍÕæ?Àc~?»?„Wy?)ã?kÁ?š!?‰8?_œ?é=š0={¢^=CŒ>l†I?±/?nK?Zg>Üïy=†Yr>ˆI?[™%?D>úï‹??o@_’?ïò?"ó?5P?ªP?±_ì?ÇŠT?Å $?Ãë?»ù§?¸æ4?µŽ*?ï»S?í6¼?­#>?¦è-?…ÅT?‹Â@J$@[æw? Ü'>Èë?Ь?ñ•¼?:ß?w?hb?€Â?.ƒö?)¸×?˜ã=?¢oÖ?xÓQ?c~ÿ?Ñ/?ìÉ«?7™>«kË>£Û>œIÑ?&í¢?E‡?l——?~o?$#¿>þ4i?X ?~U›?›Óš?ªÚ1?L]?^Dq?FG±?0ŸI?ù‚¡@)þF@Hq¦@X9 ?ç–S?ç?1e~?Å?*Á?«Ó?Œ …?qµ?^?`?Dü?žY´?¿Äÿ?íÔ—?ø¾ù?‰˜–?4Ï?r²2?ƒF?ªYŒ?IJB?Ó@?3³L?{Ç0?”¿?ˆ §?€8î?‹E°?–‡å?ˆå?€R°?%ðç?_ð?œ"ø?À '?À—=?À¶L?fw?DåÚ?.•Ñ?'N\?[éc?eÙ>?.²?$Ñ?¸éå?ÖÀ?ªI?§<"?h?F??³´?DZH?Hg„?Ls@Ì@Ðä?#·>”·(?¯©S?Ávƒ?ÙsK?âw7?€ë×?u# ?ÌÆ? +Î]?úß&@_a?¿BL?ºªu=÷Üp>2Út?˜nh?œ“?ê ?’ø@?•Z?Ÿ'T?ê²o?Øw'?930?e'‡@Ã9?ú$ô?–HÇ?“Ÿ!?© É?¬ ã?ª§?™F=?bbE?TjX?³5?\ëT?Ê5Ù?èYƒ@ì?ë7?€g?ƒ[?…½?‰ÙB@Š)@Ò@@.r~?ôÛ??@‰ì?“`?×-l?Ì—§?¸K¿?¯“?µS)?¿?Ä8:?±gd?œ÷ç?µP?çv@ +õâ@Ÿq?Úܽ?³¯]?û­·@/??ºzF?ˆ´?©Š?»ïQ@>h@Uš?¢ù¿?jò6?ÓOJ?ä`ž?ÿ{m?ûi†?iùñ?LÖÔ?~õú?­A?¦T|?§7I>ÿ5>üX??@$ ?=Éô?Ò?É?4î?1Çñ?ÔÓO?Ý@-d“@+w1@¤Œ@!@" ³@ Ý?¿?ªîÕ?Ê´?Žç·@3®@7Tð@Khl@£‘?“A?O˜?ÂYÌ?™4?`3?)<©?;¸r?pç˜?¢ú„?°ä>?ÂA?•h«?.…’?Ãú@'j?Øå?Ý?‘xê?Ý·±?ÈÖ?³ŠÕ?m)=? í? å?£??dz?‰­Ä?’“˜?šè¼@ÂJ@.uÃ?Ü]%?­lŸ?’~µ??¿? ^s?¦3?è»0@)?£¿z?+ô?¡§?­sÑ?.ñˆ?Ñ?È[=?ëè?ÉSÌ?Á’ð?5?°?Ûß?è;9?úŽï@Oàô@W @‰¡@îÎ?èã?á¹?Ê÷ô?ÂÀ?Û&?çfÿ@Qû@¨V@0½L@4Òô@ n@Þk?—v?“BD?Fù·??&¦?M ¿?H8›?°º‡?©¢¨=Ó£6>"BÜ?ÃX0?Â=â?’µë?—$P?€n ?t¦â?Ï?NÔ|?þ+–?õÙu?§Î?’,¾?Ãýº?É+å@QZ@ +r@ 98@ãÞ?€ ¸?‹bÁ?À?¶ƒÏ?‰>È?”ü>?̯”?Üž&@2Î@Xš?´¼?Ýx<@EK-@7x½@ô?÷tø>¥j×9>£<¦?~c¢?ŒÇá?Å©?¯Œe?MËú?Hnƒ?C)?cùô?ÔÑ%?Çc?œWu?ƒà4>¶}f>¸L7>EÛ>„ðJJ?Òs?Ò?? !?—Óú@ôº@C¶>œë°>Ÿüø?§À?¶›.?ýá“@/&?-§? ü¿?¬K³?¼ç?³—o?ǹ…@@„?‹IE?X=#?Þ½?ûC@D½h@O·™?ó $?ÉŠY?²“©?ž]E?Û0Ù?ú·í?_›ë>1ë?œè«?û–Ò?—)?({v? g?Ò,k?ÂÙ›?»zô?Ë+‘?Ò?ïÈæ@ %E?ì°ý?Èœ•?ô¦@ÙÑ@[@Ó@Qî@ƒ?ÒüŒ?­@û@ê›?pïe?\Ó»@S­@Þˆ?ÐìŸ?¹ëê@Hå@#C +@ú}?öÿö@"íâ@1‰9?Î…“?¶;?¤óø?¼žE?áæ–?û «?ìLë?æÝb@ }r@0V@+^@—‚@Ì«?ðº7?×´?pŽÀ?†+?O¥‘?X0°@a@ ¸W?ñ!«?é%–?¨ÉW?¥¶.@"½¢@;ƒŒ@XþÞ@j3T@4…ã@±$?Ädæ?Ž¸ç?=>¬¾Á?žƒF@È@#Ž«@4d_@Ý°?³Õ{?³o¤?†ò,?‚!˜?r…k?zFÚ?ó?öˆˆ?±‹¦?©œT?˜3¶?Žq^@W>h@ì@.D@ÿ)?Ç‘?œxb?¥ ?´­Ë?ŸHÿ?u“&?ˆUÂ?¦ðR?‹­T?·6?NôÃ@=à#@9×þ?õ‹ð?ë¥)@&Ês@3›r@N¢@ †?äm?ÂÒÊ?µr"?¼Â«?Ð%?ë€?ò¸ ?Úâd?Ï=è?²Þ?´ŠY?½ð™?±}×?•ä ?=Ý?¬­?±öŒ@Š@¼a@ õ @-w?ÿåÛ?è7@À@Qå@ £/@6å@i@,ÇE@àG?¼e?•1Õ?Ó (?Þ;ù=aÇ@> º.?AR?b•¤?—³»?§*ð?¸ìq?éÏØ@õÍ@uçl@{W“?è«9?óJà?¡“ý?ƒ/¦?„°Ì?ã?º™Ë?û"G?ûý¸?Ý1¤?à¼)?|¯?Žp@­@ LB?÷4W?é/~?ê@?Ò?³Á/?g*>?fÛå?â1²?âCk@}Š@‰u?˜ƒ?7„˜?… ?³ðß?¢„?clÆ?fÎr?µ%?ºð¼?Ô* ?ãr?²¸ý?™¦«?‰iû?cSÞ?‘=Y?Ùµö?ÆQ?Œ—t?ªT–?n¸J?KÀ8@Ò´@J4Ô?óéø?gŸ ?{'1?|—ƒ?l‰·?SÅ>å—¼?;_n?GÎ÷?sßÜ?k›h?¥Y?"C¶?Œbc?•´|?²Is?×uë?¦|m?>ò?R(þ?æ  ?Ø?£‡Q?LŠ?¤’Ñ?²&?&BÁ>êrM?[I”?sÍ?f“Ù?Y ¥?]/t?ldÕ?W&ò?>ž??CÐg?FYÌ?H{P>ç/ì?yü?• +s?„þ×?6)?.|@@e @ —?ê¾?ëW«?±BÔ?¦ÿ>Ð >z +?1²?SM?ü„?à«?g‹K?…ƒò?|ù?xÌã?¯n?«xm?ha,?0oS?wJC?|‚b?O~š?/™?GZö?5êè>ªÖ">Ê>騙>Ð/>°OI?”¢Õ?CM>lï?>Þ?^‰þ>¿sÇ<î5`?vO‰?‹õh=Ó¸º<ª5Š>²r>ÇY?xâ.?  Ù?² 5?_>Q’8=4ñ>X•?Œêƒ?1>ÝÅ>Þdÿ= $>BžE>ˆú>WÅË>‡ºÙ>oŽ?=n>ÿú~>ïGÓ>ò¹?iW?té5?”Ë&?’*¾?Ÿ?Ñ>§É>‹³¸?¤gù?Ú4D?‹íW?Eæ?€1Ù?Žµ¦?¤¹?rÍ?H•t?¢Ù?Âôÿ@+b ?÷Àï?4g!?`Í>¾õE?%`O?«™?´+¬?Öä0?ËC?s?gxÝ>óŽ>ñäR>ä—>èÅ?k÷¿?që)?s1î?s;W? X>êD°?•Eƒ?­³a?HÅ?B?@x>óvj?pe_? ‡H?~2(?>6ï?¤;>´üc?dZ?‹âZ?hÿ=>óÈó?l0?‰>ýè¿>JJð>–Ÿž?tH?mSŸ>uáÛ>mv ?gŠ„?eÚþ?0þv?*àý?²ãã?Èäx?Ž®p?m†?ƒõ„?ŠÅN?X@8?1x ?7¡ÞÊ5?{ A?ï™?¹QŠ>õÎ ?f?}Ð?‹gt?³%?£Ü>õŠR>ø?&S?+Gë<4ø>¸i‰>Ûöv?©û©?¸{>‰¸ã?½?2?ˆˆ’?šF?=7ˆ>ö’¨?h¿?-¢?BºÙ?RV­?^Åo?vøÙ?»öì@Ƚ@,@,?ÙrÙ? ¶?*x>àZ">ð&–?÷õ>þ¦ƒ>÷ÂÇ>÷Mk>éûá>ë^º?\à?VN>ÒÉ<>É!?m¶æ?xhT?xy¿?xˆð?ŸºÝ?¤’5?o\™?aäò?[—¤?Hªë?ã¿÷@ [_?Úá?Í.ò?ÕI¶?Ò2?ca³>„Ÿ? +Vï?=²¯?¹¡>ùÚ??ã?iŸ?ÂÈ>ú#ˆ?¯Õr@7kö@K>úl2?Dç?®+A?{¾V>Óþ>sø„>úÞ?=™?Ûí?ÂtÈ>û)[?GB?*ýo?/=¾?R¤~?{yŸ?ø¯Q?ú·9?Þ?ál@Õk@Ž„?æ3\?çæ>)Š>#‘?š¼›?£ç\?€ÙŸ?|‡‹?o&ç?r*?|'Ø?|Ï ? .#?S?§Ð?²pt@ V’@Î?™µØ?}^«?—C»? Ô¦?ã¹½?é­¨??È>ýÃu@a@øi?‰¾%??¡l?â™>þ(C?7íT?O&Æ?S +c?Vïh?LÒ¾?>æ»?„ü¯?šÕ}?Rœ˜? 6?ÃÖ¨?öAÀ?£ÄË?€ ô@üì@7q>?œÅÝ?ãI?¿þ^?éx??Á{,?°Æg?º¬!?¿¼5?!ó?ˆE5?ÉÄÖ?Õ@1?©6?ž’?‰c#?€ ?”&¡?™¨­?R:s?+j÷?hb§?€2–>ãDß>\"?€H’?¯‰?+3É?[?¢Nû?À˜ð??‚[p?­H\?´õð?.Ö´?‰g?ó @ ëF?µ„(?3Ï? ?SJ?†æö?HÙ?CÓ0?<˜?{×Þ?z¢2>²¿Æ>—è-?À_ ?Ôå?›wD?“Rò?b ?–N™?jp%?Sµ¯?3l?&œƒ?³HE?ºÝc?Àñ_?Ã>z?Áª?»36>ãkØ>þ÷V?µú—?ª„? ëj?:{?­æ¹?·%’@B2?ä¢Î?Hü?$µP?¡ÃÃ?­Á?æO.?Ñ¡c?[Š?¦¹e@ y?åšk?A´d?W5h?d+?±[b@r`?Òéô?tC?Q–(?FÙ?2M?zEz?›½–?ÊǤ?Ñ ?ÛšÙ?Êùé?±…®?‹Rá?U]Á?¼4¿@“%?­e ?HŸy?‡n%? õ.?Õ¾?Œ +È?òÿ?…Õà@Ÿj@&3|?Ä>?¡¥?Šƒ¼?Œ5?§o,?µù¿>à;?=‚’N?Op´?‡·ã?ƒŸg?¥õ?¿’0?Ìô.?!ÁŸ?ú[?š0?œ„?4A?0r?d(2?o_H?W'?GP…? C? ŽÄ?óßÿ?öÛ?¿ß?Ìq“@ ö?÷b~?¦¢Ž?¹Æø@l;@:@¿¿?÷€r<ÿ•­>µ×ç?¼Ñ?ì6i@B]y@<ó@-Éí@ ‡¡?bÅŸ?šwò?î“ ?ļ²?oaš?<Þœ?„?6“?~U?‘M?§t ?—?u£?ƒ¡-?ŒC1?s…1?L ]>ôï–>$U>G±~><:Ç>¾ýT?í™?M??z£“?~bx?RX?PË?L³?“ˆÂ?©&E?H'Å??…?ŒZ ?§qå?´äº?¾ÿi?ÂI?ÁÃÒ?¹f^?²kI?o]Ã?Zˆ?L}è??4?vGÿ?ê?ÀPº?ÇëÌ?É,K?Ål@«Ì@äØ@ +4‹@ ÑR@Þþ@çë?¡‹ã?¡ã¹@,«×F?ûø?³©!?¤ØÙ?A#m?:Dº?%£ê?D"?'s?³Ö@ià@ÿó?òÉM@ø“@83&@ÉA?€þï?§öE@Í5@ +÷?¥!Â?¡ýi?°ì¼?Çšµ@RÊ?÷rµ>ñ½?WÑ?~(?•—i@]î@ 3@´\?ìŒ;> >„øY?ŠÙW?–³b?öÜÃ@K'@ï@†TH@ K¡@û?ó€o?é¾Ä?Nó?‚Cä>øh“?Í]?ÒÆ?Èa@áÁ@Hª?™?h~9ÒŽ>õf!>ü&?ƒ#ë?ƒŸ~? />ÿÉ=‰4ù=1©M?o ð?‰+”@Tð@í…?Ïa&?¶H?Îã?ÙQb@Q±ˆ@wR?Ûb ?\<È?Þ¥\@n@TQ@aí@ íé@Ò?¾Ö²?€aø@7hQ@zØ~@ ¯W?ÉUc?’ç¨?L‚?—?Êú@o@KVT@`C?yz®?­X,@C…@T@O`?öí3?†ÀÒ?â?»qX?ÍEW@lw@=@fó,@\µ­@"ù@`j?°¸ø?¹9?ÿ¨@?èœe?àˆ?„ i?b¹õXº?ÌI?Î?}?Éñ<@“M@ÒF?ßÌ`?é†?Ϩ¶?¾`?™g½?µ?y‹?„].?ÏâÜ?÷̘?‰ê?/u?Kl?¼$–?¸6Ñ?ÆíI@K@+4Ç@ W>òä ?'Íï?©77?¥Æ?rv\?l„G?¥º?ù¦@ +k@ +„ž?Àõ¼?µMœ@–t@ùˆ@ +Ò@_@c@@5?à…?½û»?²ÿë?¯Æí?³Á ?´T?Ä ã?÷w.?á†ö?º\„?Ò5:@ù7@ÇŽ@1Í@4v@]º@0[Ù@G*@O¢l@Êr?ê+?Ïf¡?²â?Ç1[?îB?èVÿ?Ñn´?Îú¯?åUO?ñ?Ã>?Î×è?Àæ?µ®7@GQ@! @ ä@#Á×?ä&?”Â?§á¤?±8?”®">ì ò? ¾Î?¥•¬?©ÇË@6 @ŒQ?ð×Ä?â\?²Y«?ªèÅ?Äà‚?ß]½?Çù@?˜~t? 8.? åõ?’bÌ?€}â?o€9?îÜZ?üÞù?¥,Ô?´ã²?ª>>?–ª?ð¦ @<@j@£¯@¡'@S@•%?qñ¡?Š†Ú?¢¡ ?Ÿ4Ì@%ÓŸ@EÏP@i÷?œ +?‰=æ?Vžº?˜b@0LL@%fZ?¯:½?³Ý?p;[?fˆ?ª&?²ø?é¼¢@@_E@IY@! á@)8@,Q@)™þ@' ?P¤ï?ÖÏ?|ä°?ŽjD?w„ÿ?4ùØ?ÀÞÒ@hy—@ksÉ@, +q@0bF@ m¤@q@SÔ@ì@&j„@1jš@Z@‹Vü@ƒDÅ@BŽ@E”?êE‰?ïJ@0Ýæ@;¶›@'ºí@¨@ú?âò1?Àµ“?5ý>÷ê«?ÎE.?¹b|?wˆÚ?b˜?[~±?zÐ?™¨?Žê?·…D@%ŒÂ@(Nt?®†T?³Ñ;?¬*?©›Ä?½s?»¼?»“ ?ų›?¹jÍ?¬¸×?ªxa?£Ž?ž +þ@JX@M½@Rì?׊¹@ NŽ@5wÙ@îÖ?§S?¨S@ @<`@)^N@,hÑ?ýij?®šA?¯Èˆ?Ú-‡?ßÓ´?ßz?ÒØê?ª P?ª§?g³p?j\£?PÑ`?ERo?_|?i© +?fÅ ?~qm?†7Ê?>“#?2й?½w©?¿š1?¤Âæ?¢¥c?=<Þf€?;r³?É“ç?½o?±{½? Ðí??Â+?'Q?’I.?¨ù?(ŽI>押?2‘ê?xýÚ?ߊÆ@"@??Ó"à‹è?Hö>¸ +œ>¶¢Î?§/?èd?ÂßÃ?¥eY?‹ïq?lCï?R·1? íæ>ï¿=û>f‡é?g69?GT9>ÏTó?q¾?p¹?q8Ü?–= ?¤gq?|‰?uÔ?$ã?@:ì?€ÿ]?nÖ6? BÏ>õP?It›?q6M?ô?C¸>¹ú>Ó ¨?”{?ºpÊ?ÜP“?îVÍ@ýþ@ô~>É5û>­Að?xv?y>Ä=³ël>Üâ?9?›{?†ÜC?Âã>¦ÿ·>Žy?äw?qŠÕ?ŠHÓ?›’>"|\<Ø‘z´L?5Pž? óe>¡×2=†uP>$?_ ?X³>›ó=?GÌ8'`>gÌí>Ƥ=,§>ev>je>î=ñ?Hy?4ÔO?0]ß>ò©Ç>óÉ?¸\?½E>›ÌÏ>K J>E¬{>@3±<ÚV”>k H>ž |?B"?v:?^Ws?N{T?:.a?0 ?iþ ?ˆHž?Û?¶7ÿ¬>Ħ]?Kît?AÐ?+Ï?$ ¢?Z˜-?L‰$>òö„>Ö>}<ØÑ´>ôX >óh>ô±¥>øËŸ>ôÁ>ó,,?åÅ?#1>&(¤=y;Þ>»“¾>óZ½??*“$?‰?¨ =?†ß”?QúÓ?_yJ?sœi?³Ò#@ ø?µ˜>¿{>˜¸u=˜¾>æLb?;c?5nK?3©?€¤I?ƒ‚j?v"Ù?t8?J…¯?J³?½éÔ?Ðï?¢—õ?˜B!?šöí?­w?ùU>"í‹?EÒ–?¡8å?$öù=Ž³>òDI?|°"?vÌO?t®…?L›[?lé?A ?·þš?•ƒ=‹ 9>z±Œ? ño?’E¯<›NR?ƒ ?~¢?Jé"?S._=×¾?Š8¯?¡Í­?M‘Ã?;N™>Ó´ë>‰F€?@ð?F-Œ?–uL?¹ $?Ú[?Rô?; ì?«?'w!?H§/?]ö(?wE†?3âÂ=¦q;>ÑßH?¹¥h? âú>÷ª? Šç?oÆ?W N=êf¾>9Ñ?bÌ?^¥×?Ìú?~þ?ú²•?ýn’?™À¡?’¼?>¨µa>NÃu?€5º?™¶p?ÈmÈ?ä÷?†Éö?0× ?³¾Z?â ü?¢Â…?ywÚ?Á”Ë?êB?ˆuN>ùÅ¡?^)?—Dú?TŽ1>ú €?4.?z2#?–@8?¸î?¢43?‚9?ç[?¢KË?¿¯4@kµ?ÓÕ·?<]?u¸Ô?Àãy?—Þ)>8Bx>^ê>¡þ>åƒ?¼¢š?É$[@ ¶]@¤?£ž?©—×?Ò‰Õ?È>´†Ñ>ÇI ?SW?G˜p?{®›?|£û?)X7?Ú?~,0?©?µî>üÜ7? ’?r²?y>?›Ö`?)RÏ?¶>’O—>Š’n?{nš?“â|?aé?KÒŸ@ô’@®n?‡«æ?<Í ? 9£>þ@>þ'{>þ5Ô>þF+>þY?£ë¶?¾Ú>ýP°><¨d?˜…”?¿ ?‰\x?v²¿?®.q?¾Í‡?Âèß?ÉI?º½M?°Ïý?˜…{?–]?ñ>µA?ž3ú?¿«â?Ò¦?Ììb?©?S?«kŠ?Þ>?ãv§?y¯B?E}k?«uç?À|?Ž_9?€é?a€V?]b?H¦×?JR¤@'¹@ÂA?Žo?8vÈ?©>"?¾ã”?.¶^? >.—1>!9?R¹M?lÛø?Éóð?ÜõÔ?ïe?ï ?ßü?Ó8½?œyÉ?šÄô?‹˜•?„ß²?~Ò‰?„¢w=˜º'?tÑï?€×J?«ID?¯¯>^=í`€@í+@ ¨C?ñ°f?íYó=åA=8œ,?HÙ?¸¾?ÁœÐ?»£?rnÁ??Á´9?Å'U?Ò?û?Ê9?Á˪?½á’?±•›?žàÍ?@?>á?]0?…v'?‰“Y?Š«¬?R«?¬bn@ ¯?÷!ž?¢?Á?¯¬O?Ây?Ïû?ëÆ?š£ý=ªÉ%?‡AÞ@ ˯?Ïб? +ƒÃ?š+B?úNƒ?ø?m?ö2y@ÅÐ@ðt?§N»?†Ð?­ïs@ŠC? Õñ%>Çß6@ ÂC@ñ‹?ÆÅÀ?½­™@VÌ@Jä?Âk©?¾¹?„¶.?†w{?N +é?OÃp?.8ô?Fu?Í?¼µµ?—h?T­@Ï/?ïª4=$´z>ý›¨@"o?½vº=ŸT6>šÊ—?Mý¯?ç3?¥qò?®“Ò?±÷P?›[+?}y8?­Ýß?é÷™?±W¨?H5?_ï•?u÷?sõ?qa?™›p?­Ô¯?Lê>Žiü=åc‹?,N¡?“LÍ?úHÂ@!°4@Ut@B´?ÖU7?½É>?]'i?ŽË?h?wÁ? +ö?=8?‚o?•²-?—Z}?›¾­?¿B¡?Ä8%?Ú?Þ´ˆ?åP€?éÄë?^•|?(ç?ÏæE?àI?—«ç?‹Îó?íÈ®?ûÊÉ@»å@™?Ë,È?Ç?ŽRD?ÁM?þvÀ@Þ|?‚ºÞ?È¥@*0ï@)æ;?˜sÒ?žví@ÀÒ?ûgC?¥U?ºÛ„@ Úu@;ÿ>¯fâ>¬ª$?"ÿy?+&h?} b?kª?ˆ8Ç?”Ê'?û)s?ä5˜?uÞ?¦q?†á‘?ªƒ­@$\ä@ ®Š?`sá?‚ç?Ö°Ú?ÑËí?Ìè\?·Ú^?zêá?håa?+¢?ia @È@ +ëc?ˆÿ?¬ýÿ@ x@ åF@|®?þl?â?­ì?½Ó]?Žbh><Þ>ùÇd?©žä?¦—?°"?ÆÎÛ?ê®Æ?½?4C?K'c?>?—¦ƒ?Ú²i@ –S@_#‘@Z0Ì@N 8@2(å?³Hi?Ê(@¨)?ñlA?½”…?ì ÷@=…@%÷|?¾Ë:?¦ì*?7¨?§QE@Jùx@!Ph>›é>¾t:?;% ?M¦?†WS?„ê?§®i?š‹?!-&?='˜?²e¢?½\?Ý_Ó?Øv@]^?ü]?Æ£?ĨÌ?’Y’?‘`ð?ãø@§Þ@…¿)?Å!¸? Ü?¦¬À?¬{W@ +¼T@h+@ñf@@kÙ@Ð @1k”@4!°@4ZV@7(÷?š >ì1¤>ù4Û?:Î?7Øî?~êƒ?Œ²»?‹:È?“k8?’·¼?ÀèÆ?è®Õ?ú y@™ù?Úc?ymM?”¶Ë?°FZ?ª o?¯ê¡?Éy|?øöa?ÄWö?`#?b[È?ø¡?ÿa‚@7´@QÂ@)@ +×ö?Â{‡?¿»?î½v?á/Ô@¾1@ü@·@Q@ 4³@ `@î@*@ü5?þ,?ÓÅ?Æß÷?Ü×&?âNA?¯ ¸?–o:?$‘+>‡¹]?c©?¸ª¶?¸‘y?¸‚®?ò¦@*A\@ áÛ?we ?Z?±ñò?¡®"?[Ñ?bƒ?¢Íâ?ªÏ$?·®?·’·?•Zž?‘°È@S@õ?ê(?â”@ ¦p@3X×?ìŽD?»‚í?ÏQÈ?ÏÞá?•.?l÷¶? oƒ?¾*\?çRÅ@bc?Ù->òÑ?Ö#?r˜~?v¬þ?‚.Ð?ŠHð@0%@&¤q?ý1I?ÿeó?¾?µ@Û?…Ù?qr¾?qU$?q=’?Úä?@ˆ9@å?ðËW?VZ?0ÛÞ@Š@ŸÎ?ÓúŠ?Åw¶@$Úõ@"Ä?@½J@™7?mdf? –@£Ë@0G}@u»?î®@ªÓ@6‡@ã_?ÈÔ?Óÿ„?íü$?âRÞ?Œ|V?ˆM?nW? •@É×@;t?ý “?ómX@y@›2Ì@6:s?‚»~?§\J?çÁ™?ÌKT?…óì?wâÅ?ž‰?H$?° +;?³æ1@Ë@&:@:â?ìÙ'?£´ÿ?j´§?¡ïë?Î"2?ár@\@:Í?Üfj?èÜ@‡ +@:Ò?ÐÊÒ?·Öù@ GØ@ x@`|@(3j@^|?÷gÐ?Éÿè? +{b?®ó?ã«Ž?Ú`æ@Q@ØB?ùq¹?ùŸä?äJ|?ÛQ{@jë@'UÅ@2ð¿@>“J@9?m¢Ü?vøP?Çâ,?Ã\+@ b@ª<@ôS@ +g€?ü¹©?·Çà?Ã.Ñ?ëþ?ö÷ª@^õé@YþA?ФR?¦m?§¶?«¿â?Ü«(@©Ù?òkŸ?²:­?ÇUö@+RE@+A/?ókÅ?ô±?Ã'ô?Áyh@ @@"×@7w}@f9)@L‹ù?gÓ?„t²@"‘@’@ÆÑ@”Y@hÔ@Ý;@—>@ +i?íb?§÷Q?®þ@UIp@JÍ?Àú?“‚6?x ?=λ?N½?ózZ?þtX?éá ?éy†@8ûÉ@.B0?æ*(?Ë— ?ê]æ@±Í@`j@Ù@âg?Þ·6?Þ€ö?©€{?©€¶?÷o@ 0z?ê#š?Ú³@{ã@RÈv@0²¶>茭? é¯?¾t¯?ɾ[?Ý?ùÓÜ@8@"@²@`¿?£O¥?›÷?o!Å?„ʧ?ªŽ?ª v?–[H?‚É&?bÅ}??ÛÈ?yóA?ªnœ?˜:Ù?crx?c‰è?c¤ê?cÇe?€Ïû?™=â?~LK?dD¹?Ö‡"@FÈ?Ú¸‘?»4ù?ÉÓ[?å,Ã?Þ‰2?šÐX?¡ >j¨æêq?³‘ô@5@ž?•®›?“bO?㘠?Ðœÿ?J˜î?=ø>ˆA>? U>³€G>ƒC4>¼">õz¡?P,-?ƒ ˆ?ZO?+I!?p £?œ×+?’¸e?ˆCC?>.Å=´ú>$˜t=OQG?:+%?FåA>¼£>Ø2”>ôã1>ò6L?“ÐÓ?Žù?kû“?€ò?Q>õ&>,þÎݹ>÷Nî>°_ß>†P<>â²>­›?NíI?ra>Dœ§>¬±?3æ?_?<‘X?L)Ì>Ùé=›_d<û‹¦< 8=¼Iö>I_º>ÜdK?:?˜xÁ?‹ö?oD>éî>˜>6ÿ>ÂåH=ŠÓ:¾Ãè?Ô?ü#?c?U¾Ð?±ñú?eq‘? d´>-i>Gá @Ôº?ÏPÓ?ƒs>‹ø=¢à>dPR=,õ">p°>’Oþ>礑>ôhó?:é%?52>ò¡û?rn?’Ñ0?Ž,×>’C >”/¸>–Ò¯>™6>AíÒ>'He<ŒT>¼4ß>Ø<#?'á!?;[î>Èj>o'?g»ß?¨°?À2Y?Íp…?¦ˆ'?ƒb‰?0Ú1>„>B?7÷`?¼œj?V0=•{¦>-U{>òç»>·©;éP.> Ê?rð–?q£%?o¥9?s–ì@ ±@c:?x½ë?eh5=ÙÝ>Ånø>óF|>óLˆ>óTP>Àkh>»–†?gƒ?Œ³?N ä?s†!?³î?új¬?—í¥=Ä<ë>†Nx>wÆ>y2?À ?Ð +=?¿Ü?bÐ?X¼¤?D·Ü?HM/?%•?!Î÷?JÈ?QÎ?>Õ¶ÿ>¹à½>êÞ>ô‚$?Sw?tó>ºZ¹=RØp>À&?…”?Ÿì‡?ò‚?Ÿyp>øÐ>úH,>õ"Û?'‡?3°??±>—¤/½æ>±j©>Õy>g¡>˜VM?•ñø?Ín[?V6>±…f? 7?><">Ëøƒ>²ö€?Wî?gª½?wX_?½ö?¶Ök?¹S1?·2?§õJ?wÀ´?t?XjI?UX6?xÏ?}Ë? ?˜Ê¶?±þ?¶Ýà>¿¶O>·ø>žÀU>Rƒ?`ê>?xÓ$?Bõ>ètÌ?-á¸?EÒ"?þ²_@ÿÇ?­T¿?yhÌ@ +€P@3ƒê?¨ÏA>Êf§?¸‹C@©\?¨ËN>ùþÐ?;”·?z#Û?A&å?qÝ?:šE?zpn?•í¥?»ñD?Ög$@¦?ÖÝE?Z?uÕo?¥Ù?’³1?‰Å?4Ó?†a7?†Ôð?œnÅ?¯ ž@ªg?þ ?–ÂÌ?¥A:@ŽI?÷1’>ŒSV>±Jw?Òœ?Ò“ü?hD?x2"@°d@ ¿?ºÈã?½Þ?ú03?õ™?x?p\ú?Ð ?¬˜?Ò{©?Ó¾=Ø.>è4·>ý„§?q>ƒ?}¤¡?l~?s1? 3Ý?p,?Ø8>þ +?U»E?[>ÌæÁ>±Ž›?™T!?¯y’?aôd?P}š? ×-?¯ªÍ?1á.?»?e³è?~Ëg?Š¨?1R?t| +?‡"‹?*¸?‡+?Aqï?Bà?ÒsÛ?ìC*?á?g¼û?«äà?®pš?°Q—?¼ +?¥ÎÎ?— +—?ãèL?ò=×?~¾?UÔÏ?PO›?E>_y0=Ô¹?Ù€?­ªè@!c@2÷Y?ž?}Ò?·EQ?»óè?”R>ç©ë>%î>$‹€?$ûâ?9¢P?^ùU?n7+?¸¤t?Ãqþ>èä#>ÒJ™?˜ƒK?Ÿ@?â”?¶<͆; o/?O“ò?Te1?1—/?7‚>ÁÆs>Í7°?èä? +ž"?ˆá$? È?Ǭ?*ñ†@“?õHU?Á“-?°’ˆ?9ð?;?Á¬ï?ÖP}@T@Ùƒ?RIf?vʪ?©n¥?¡0;?ˆñŒ?RÒø>‚'¥>Ð5O?9I?<—·?RÄ ?ˆ8:?Áþ8?”È?Xu?Xô?¶o?“‰7?.g"?ŠdT?Ï¡?âg!@¶ó?âX˜?¸È ?øþÇ@gÂ@#Û?Ï/˜@,@!Üü?È¡ò?XwÛ?va§?ˆ?¦$©?ªL–?ù’>‡a?ÀƒM@b?ÏLk?®åp?ëwo@‘k?”º?f…­>þ*Ð>¡é >Ðü•>ë€?mUr?–X@L3ÿ@[Ë{@'tå@!üà?9sw?"Ö?¤yý?¤fC?³o@?½›¥@BÖ@=öX@'ÿ)@(kk?åTQ?Ø0?>ós?AÈ?k@>?f¤d?’A?{LW?I [?LÎñ?n3Á?jÂ?ŠØØ?t·Á?wÛ?S³U?ÃÁù?ÁCx?·Ý-?³Z?²ª¼?‹‡˜?ÈK?˜E?òƒœ?–Ó`>&u?²$n@<ÑM@ }?¤¦?’—…?p?åe?›ÙÌ?ªìV?À´í?«b?“~? Ô‹=ÓŽ]?™òm?ùèU@W¿@†@ @!G£@4°F@;k2?5Ì?C ?@}?=d?Iÿ8?^õ“?­ÆË?ÁÊ•?`?,¨@p‡@"~&?¿_#?«ÉÛ?w¨ý?qœ-?1Û?J?Þýq?ö¹¸?Çâå?Á‚{?Á|E?Áuˆ?Áob?Ám+=•ZÖ=Ç?¸þ®?¹ƒ¶?”œ©?—Jt>hÁx>‹‹ˆ??ã’?cÎÛ?ÑÚU?ÍŽ%?Ý ?Ù”½?yE ?€c0@`ú@\X?–Y½?‘ó?€—9?¡E³@:¶'@.Z ?ÀÇ¿?¶{j?€zˆ?€k?}!˜?dm3? ¿õ?!ë?s=›?t{m? ôF?I ©?ª™Ã?¯m7?´Dã?­·‰?‚‚ä?l’B?8À)?L¯Þ?‘i›?€7>ÝC…? ?€Ýäª??Üb?¢Ÿ’?þ†?¶Ç;? %‰?ôJ$?û±º@.×?ñ6?¿ä=?·Zþ?Š‚‚?—v«?À ‚?ÎN†?ÿ–@ b7@(Rë@,Þù@'¬X@  ?Šïã?¸L‘@«@ðÏ?‚›c?‚08?Ž´Ú?„Ê?#²;?V0×?¡Þ‰?¶’@¾Õ@ +sÁ?ÿÖ?òm?äõÑ?ЭÕ?®Cã?›À˜?}±]?‚Æá?¥¬?‡˜+?f¦â?°øU@e—¶@qT@{œ¯@f/ð?øe–?ìQ?³z?¨¯?]??UÙ\?Så?Y<Ó?»ò?²6?»P}?°•?J¬ +?`ý+@,ÉÛ@3ßd@:ú¾@Bb@?@b‹?„×ò?{þ÷?u8?oÛ?ÁïÒ?Þßm?;­€?!¤•?‚ö?¤›¥?Þ`>?ôn]@ …@Å@#†@5Æ@U5@k‹Û@-aÄ@ ¬?SCj=ÇB´?,x?uL¶?o-d?hþþ?—‹?¬Î@ Ô@0ú´@B)D@Q:^@#?ØeE? f?Kn\?¸tÂ@h÷?æº?y­?£·?ðĨ?öóà?óˆ?šÔ?-u?€|?ÀçŒ@R1z@jÃÂ@è?ö¬U?¥ªÜ?v€ê?r†Ô?X)é?©?àú'?á·‰?à^¦?±Ï?uÊà? Ü?·Õ\?• n?Z?KÒö?ª1?­_'?Ëe‰?Ã-»?·©?¸Di?ѹO?ÎÜ?¦"¸?§Ç?Ÿƒ?“ ?lå)?oY„@)Â@J@5„º@*‰?ãŠÓ?Ž•È?Ï™}@ +Uê?ûE?êµ?Ð},?i6‘?cHi?„s?’¬L?î³Z?û,@5¡†@5‰Ä?ÁŠ“?ýb?Uì¨?P­"?5´º?3âþ?ƒÒß?¤Ë?ËT?ðù@?ö~v?øJ?¿W`?o©Ø?»ŽÊ@´„?ü¸ù?pHû?’:’?á¹H?ëû<@%0’@'¦@ Øä@?›É­?oË?§ÔX?µU÷?dïß?C÷@AY +@¬FÕ@{^4?×»/?Âo?—_F?¥1ü?²J?²sÖ?§Î¯?—¤@ Ÿ@2‹@=zå@Cñ@0?¸@62f@‡¤?ö¸«?îZ~?òßm?ûOf@ÙR@ /‚@#<Ž@)Š¬?²s¡?°†-@4H@«{@h„?ÿÏ?à e?“(ÿ?áÈp@%O8@%f@#r·@AJ?Žn>ÿE´@Ø@þ?y‹?_9l?àÞ"@ à@ Þ?èæi@Y¹@i0@}ê?®U$?®-Ï?±¿à4M?¸›?ØÖ~?8ð7>P×ç?ˆ·?@IŠ@Ü©@$ä@_5?²r–?º>ê?Æ™ï?¹úQ?ôÙ?xO?—Å8?¦° ?85û>êÆÚ?´9%?øbó?¶Ò?o¶?–€æ?Û•[?@ÂY?ç ²==`ƒ>™¸>”&?)ŸX?K÷>1ÿø=†Ë$?ªÌ?¦5×?Ša•?B2?î>óþ?`e?´?aúÝ?o¶?c“?W@ú?I/ù?;è>Ûlü>†øo>þ '?äí=“8„?`uö?}1†> 2I>¤Ý9>ÃåS>ñºM?^?ZÅ>Ê~@>«Ê >Œà<>¡=e?Žñ>¦­Ã<ñD~;,>I2->>ëï>Ëò_>ñ?Gí?€Ì?F1Â? +—š>‚[…=µå)=ªÝ@0«?óÈÓ?ýÕ>f6T:0šx>I×:>ïç¬>ŠÄ$>Õš^?\ Ý?]W¤?†–G?y¶>3œ†>.•º>)y˜>%¥™>ð¬ò>ò‘2>œõ†>Žcõ?†?•5ž?‰á?‰LŒ?f0?WæE?Y{Ñ?[Í?Ø#œ@l?ÉúI?œ†?Íû?ò´³?⦅?í²W?»Éî?lF¡?Géc>þŒ>ö3>òÖ +>òî4>öú?#râ?³1Œ?§Û~?!©N?&1z=åbn>á>Ìò">Ê/H?OÝ4?Zh?“°a?™J +>??šª?MDZ>ø.>ª²†>äO? ÷d>à˜>L§æ>ó¨ ?'Ág?r;š?‡Â?Â$V?¿ll?¹Ë?,>™<>ºE?t5?rAT>õ~ã>ô6y>‚‘<>[.3>ß…D>ôh?<†å?Rç4?=ñ†?'÷?¸R½?î½g?©&™?tÑ°?šß?´Jk?– +?kû-?¤?Í?æhQ?¹ƒU?LO(?ˆ€?è??ÏQ[?u}?pù'?Ože?bv4?ßÄû?ÙÓg?^Çœ?dÙ?O^´?@ 8>ý×Ä>çã^?_"y?vL?¼i?‰<#?´M¥?Ï?&64>YÚ>‡¢ù>¢så>ª;>¦Q>R»=æ‡d>ó0ò?w?÷]Á?%Åé?{<¯?;LÏ=¤9X>›dÓ?wÎ&?wß?wò½?záß?‹?µ?§Ç³?¢{É>¡^x>š«ã>ôãi>ø–+?¸ ­?¼A×?MÏ ??Ã@?6Lñ?.Ï"@» @7ú•?ÚCÈ?¡>Œ?ÏgV?í¨U?V)>ˆYÐ?'[?jR?1We?µÝ?C}?xX +?y9>?uµ[?rH=¹‹À?l¿î?ñ!£@Û:@.¥?çn¯?zÌ?`v?¨ ¦?{ÅX>¾K`?Nß[?ßÑU?ºß>?;×°?Nn?{†â?‹%¡?¼Á?ÆÈ8?ü@"?í4ß?{õ?j—y>üÒ?È?¼d??N]@.T@*u?€¦„?Œƒ@<„@7ZÇ?¸à ?³W=‰È=Ä>8?û¹Ð?üßú>ËpF>µ™û>¹É>-º&?¡­?¤¨;? +l>ý°Ó?{ÂÝ?r~,>Õm>“è²?š­]?§ÝH>ÛõÛ>—$?„=?Ž>³=úQ?" !?+ŸÝ?r£ð?~¹ó?…á?+{>ÿ§R>þø'?¨ë[?·‚Þ?}1£?gÏæ?ÿ®W@/8?ØAà?Óÿ?ÿƒ>¡ãµ?À?Û·?*Ç'>ÿÅ”@Â@TI?óëþ?õq?/íž? A?°øÛ?À'?S ¿?4`Ý?dæ?jW?…³?àW?ÆÀ?xÎ=a#=sŸ½?h!?sÂÍ?`{?Vã‡?°Î?}·?‚š?ˆ~?'Õÿ?-Ò#?pyú?ar¸?8#?;Èu>‚R¿>š‘T?^˜>?NhË?` ?MMû>p>Ô>|‡a>€*¤?c?+û7?¹£²?³~ß?z‚®?ˆˆ9?Á—X?Ã<5?Áƒ–?´ŽN?qâ?u»”?e¿?¬öªF?›ô³?ÂC…?Ͷá?Ö½?ú ã@‡ ?iö?Èû?Ň·?åD?_^>‰¶¸?˜?‡±?¼Z?w@6‚d@>ü+?‚´(?m&m?5dœ?@ š?Ã?ŠüÞ@7wÁ@1OW?Ž ?˜2h?½•u?¾‚? ¸?še…?Ø?˜4x?­yS?º~«?÷Zs@ù‚@!ë`@lÑ?°V?¸*?ÂG>?ç5œ@ hp?ì o? +?mob?Â:¨?º)A?©œ?ñ¼?eEB?X<³?.ùü?ž‚ý@E?Õ§?Ÿò?¡ËL?  Ý?ÐO?ö’Ø?Ž)?^r?k†)?Ÿ ¡?`8q?j?>7?¹Y~?ŒÈ ?qØW?¬ø¡?µý?œpu?“Qf>»4h=–Ï=³Kê=×|?O#?.÷?´”\?Á½C?Î[)?Ìzk@#Œ@1?Sw¾? +>Ù–˜>À°ƒ?‹ù¸?”D>]&_=ï¦/?ÂXY?ËÝ?²J?µÅ¥?Ï=í?Æ”Ð@=ù)@5Ò±?¿ò?½Î? +Î?Ï.>Ʀ¯>îÆ??á­?ͪ€?ˆzµ?Ÿ¦«@üê@Sù@« @O©?õgþ?æ•»?«^±?¦ðÛ?€i?Òú@¢º@¯?Çûh?·ÝÎ?{íÉ?¿ºÛ@[‚G@B7ó?ìÀ?Ì­"?i=ó?‰?h?Îö¯?¶Y?€>?žY?ñÍ(?Í]6?|›ä?t†?He?*ÿ>£žï?)”¼?À >?¶‰G?šrF?f¤¯>F?F>Ïû¹?ƒ.t?“Ïo?Á=.@Øò@Hç@5PÕ@ì±@u?±pG?ë¦ê@)Fo@D$?¿j‡?½à?¿@ó?Ö]y?ÿÁ?×®?~îÈ?¼Wù@&nE@S+?³Çª?ÉC?ø‘n@Ÿú@5‰@ä?~k?­a@ @ +N,@*f?õBÜ?“ ?¨³?ä[£@ º@>d’@+BØ?ë g?Ñ-p?Q°ÿ?|Ô‚?¾!Y?¥]j?Û9>ðÄ{=³n>¥Oh?¾G0?Ç ?ÂÙÉ?² F?(ÚŠ?>º6?|Î?¡V?äè¤?ÎÎú?|Ø?„$l?À å?ºóx>üS ?À?à|?A?|‹?[c@"ƒ@í­?ü?ùË7?€±s?{š-@ +ø¾@ +Zn@Ç¡@ˆš@£÷@À…?]þi?9Ív?àŠ?ñ @ÎO@Â@[@<@ñö?ñÐœ@=o?ÿ©@(V@5Ã@@BN¢@D8@Ö?êÃô?«rÝ?• Ú@r@3¹@)â¤@xÞ?ÑÆ…?V…g?§°m?ù*®?ÆyC?y?€Áð?ƒ…n?Íïè@8AA@2Ql@$È­@^@¸ù@ 7$@Wý@CíŠ?ÖÃ?Ð. ?‚×2?ˆÎG?wº?w¿H@Ïg@ +’?„8³?wQ@bŠ@1?WXË?iÌ?ÛW'@ X!?Ã?ß?¦Ÿã?e7­?4œ?—DG?Á‡Ã?ÞS?ù=@ @,a?þ?‘·M?™QO?¸0á?Æ@½?ÞÔ ?¶6q?4’\?X4?¥†9?¥öž?l­Ò?‚T?ôšÓ?ô ?¡Üû?—ªh@VX@>ë7<3¶w@m¥@U@n@éÍ@4?ܶ”?¶|œ?Ð?î…º?ÉÎx?ˆ†ý?®Š"@Aï?æ/(?¡1ï?ª†6?µ·Û?¶z;?Á-c?Ìeˆ?µh?µS^?XÈ-?Cæã?s‡"?p.@?µí¢?Êþ÷@h@A@ I@Ìî?Ùö¶?pÈ-?:Ü?˜Î?Œq‚>ð»?%b?×õ?Ö @³@ ‚@°@#TÁ?’¨?^òò?ô˜@ß"?¹Ôã?`DW?ãÊ@;öZ@+KŠ?îg?ÏA?f5?r Ã?ÅÁ@?Ä_„@¦U@#çó@*F@-œ@B—ý@O7F@#æ@ Wù@ö @$‰Ž@!P\@1¦@ sd@®¥?ã·? õQ?ª¿×@Ú@+þ@>9N@AÜ@6>ü@-•„?ÉõÉ?mM?êO‡@0@&@ HL@Š@Óü@Wè@Z?ºh?Ã?Ö?diù?CX?˜éÂ?®Ñk?Ð3m?èÚÖ?ô2f@BÎ?ü– ?·?—?Æ]@Ah5@8ä@2~?üte?óõ?é²P?¶¡—?Œ…­?“º~?­_ß?Éa¡@ rú@ Ò£?ÿ6±@ >@SØÅ@R¤@›j?ýÍF?ÒÎ×?¾¢¸?Œ¿_?“?\Ö ?çx?éo\?Ž½t?4g?ß,m?åK?ø-?òP=?»F?¿Ó@•@ˆì@hj?èðÒ?íÐÏ@bÓ@Pç@'{&@*í§@Õ¡@hÞ@AÃÅ@xĤ@q +E@DÎÃ@<,{@È@R#?À~K?ªQï@2™Q@k®*@oÖJ@l@Daà?ªJ^?ªZ'@ºÀ?üð,?÷ Û?ü ?·Æõ?•O…?™úr?Žº1?zñ9?eÏ?XH@@ Kù?T,W?$Éò?OC?b^?Š2?©v[?ÃΑ@ ñ:@Ö?x1¥?•…?¿Æ¼?ß~G?íŸ%?ÞÒ ?»8º?¢Ïd?~­×=®ï>¤£[?â;?âî?ï¨;?Òvp?ÓÍÌ?ïߨ?×{­?©ÁÃ?¨{A?£Q?œ‹?•×¾?¡lA?©æÿ?ª6?_þq?ú>‰š@<Á´v>Û³?–}?¯Eï?㎿?ã­q?ʳ¶?á!­?¡²V?uça?”ÿ?«Wÿ?ÜÒŽ@ùq?ÚN¬>M¥ð>•ý*?Êow?Öæ|@N‹@ À?xùÓ?PCC?1g>m.t? ³™?g2±?‘?¶Æ‘?£‘à?t¢˜?}·Ÿ?f£•?†»?ˤ??Õ™?xœ +?\8È?‹Å>ê°Õ?âM°@'Ñ?ÿdY?°ùô?±<§?±€Ê?œ<?eä?…_I?•mã?„5?„uœ?nÿº?oº’?piÍ?Šcu?zQ? ©…?ã‰?PÛ?žRµ?xž2?Ujž?l¾H?tÒ?s[œ?uÜq?vg.?vïó?w€l?x á?V™?[¿Â?k©?x@}>d?\¯Ò?|õÍ=¥³€=‘Ö?€%?rÖ?é???‚ã+?@Ðø>¿"8>õ{p?¤?8…?VÖ›>‹>z>né“>´ÜO<Áâþ=Z*?g€?%t,?lÍ??Bß?&> d6z6?ŽC™?{‡5?¸Å?lxv?EV=0V„>³Y^?€Ky?ã>Áƒõ?¤n2?`lÂ>HŽ.>¬v ?C ?.Mä?‡øê?mŠÖ>ò…>ò‚±>ò‚·>äØ>¤Ý&>°û >ò€S>üÿƒ?r€-?qÏX>öù±>ò†ï> Šá=ÔÛ>«}>Ê >Æ  >ɼÓ?_h>?èô>¡P?•-`?íU{?ˬý?²k¬?nŠâ>ò´\?cZÇ?µÎV?ˆ7>òÄÜ?†¹ +@U@Ÿà?¶#Ë? -™>òé8?òn?Qv?H,=>ó>õÛ>@NÊ@‹â?Mèë?8›g?5D»?+fˆ?‘À?¢Em?O˜?‚œ?ôí?]|>hùõ?7‡?wy§?T´??JL~=ïÅŸ?á‰l@ Èâ?¦¿‚?xâS?ubð?t¾?ÄÄw?òO»?¬i?'Ü?~-’?¿øó?¤Ó?u/,?c0È?Nl?a@k?ukó?Ž³º?Î ð?Ãu«?¨>)?Y¯>Mwh>…#=?¸l…?¸|U?š&Ç?—Uh?0Ž?9¾@–r@y ?ÃÔ?¡z ?Ð>¶’é?qxl?ŸI?ȹŒ?ãdÞ?¥±:?iÞ®?hÊ?i“Ú?:¸é>÷PÕ?-]?wpX? ÁI?àÃñ?¾U?w»û?wËÆ?wà?e.?4Ç?~j>ã#”? ?ÝC ?Ôn)?«}È?¥‹?´Üd?¹Ñï?›pL?’Wß?•D?•!À?ä?Ž?æ·¹?â‹G?çu ?€@Ÿ?,Qc?€¨ø?š|Í?7àù>ù¶%?OC¾?yØ·?3†o>ÿ°ï?F!?z'—?p!?afí?™°?Å ûRJ?5?™~°?š*8?¤šÛ?¢|Ë?’ZÇ?”ÙØ?Ÿ#?‰o8>ü Ÿ?òÏ?‡Œ^?s¬x>å[#?Ý?Ã{L?Åbè?ÿK#?÷Q0?ƒu5?„6Q?Yœd?[¤N?Ê\È?É#o?\yR?X…Â?,Æi?' p?½¦¯?¾† +?«P?¤ÁÔ?û2?ýÇQ>÷‘>Ѥ³?GYØ?Q=ê?->ù?3Ðn?‰äA?’m»?¾Ì>Ú·©?ïÇU?þŒ?}rÿ?q´À?‚½ ?~Ó? iÕ>þëý?x?‡œ¨?€‹\?(ý?Òà?ß3`?Îg>í*A?¥›>ÿ„¥?´­?¿¹À?ªá?¡+'?ø¿þ@cñ?e+ˆ?NÁx?[Ë +?R³Ý +>)ù¾?W§Œ?U}.?™H…?¦»?«r?œz>|Ò¢>›Q^?®š ?¶–-?ÁÓ?¸‘Þ?O¸?M«?€Òü?„Ð~?—îŠ?\Ì?r¿ ?d+z?ÞM?³m?3º?>!¤?Á}²?˜Pn>jÖ?EÁ?é_?Ä\{?d ½?›M?íÛ?æ+p?äê?Éh‘?(ê?—â­?ÁÊ?ξñ?æÕ>?î ?üŠ®?ðÓ¸?ÕTÏ?åãl@ó<@CŠ?÷då?¬eçÿ?Ž¢?}¸@Y·@•;@˜)@‘”?§Û6?ž–Ñ?$qÆ?Gý1@ b3@Ü?O2¨?Rý?‰i?.˜?…¤ê?â?5¡h?‚G@ gø@ÀØ@0ų@(3@ â?é«Ò?7 ²?pºÜ?Â<ß?‚H¾<©>W>ÍƬ?{QŸ?—É ?Â/†?Ù"%?öl~?ýfÄ@-²@ 01@Ô“?Ô;@?j?[ñ8?=&D?„Pö?£ ?¿gÔ?Û+Â?­¢?«Ê?]ï"?Fc?juÂ?OT?fjä?`Üò>ÐÎ^=ÿþ?»ü@ÿ?¢_)?;ã?¢S”?¦WÞ?]«>Ëá?cAƒ?)‰?Zv-?[{œ?Jº?X§Å?­Š?¾âU?¢^m?•Ò9?™Ï?˜íl?•ÖÉ?šÕ^?+¢ë?‡l?ãéž?픡?TmJ?=Ã^@YJ@[¶X?Ĉž?Íi¢?ð¥9?é²f?â¸K?Ï”?Èu?Ó®?CÑ ?R\Û?·Ö?Fìh@/O,@'„÷?âñ?êOc@¾&@ûæ?«'2?ŸŠ?€ˆ?‘<º?Ý–ÿ?êBâ@xm?Ùˆ ? ÷[?!1(?‹è-?” ±?ŽŠ?Žd¤?€OU?®‚K@ó#@ |ò?ÕzÉf?±?¯LŸ?w !>7­?Ù«?®À?Íò@sÍ?쌂?¯Þ·?³@B?¶Æ·?Òµç?ýí‚?Úþ?¡6?ïw_@9·@1 +\@Ø`@ +@ ,@ *J@}%?ÌG??Å®?ªC®@’?ôaô?~á1?ˆ]Y?žÄ5?—W?~±;?‘”]?¹1ü?»f?½±Æ?¬’Ô?~a`?ïí@o­×@L)@—ô?Éê>¢Ü? +ݹ?}íí?•yá?Ú}*?âûÛ?ÏýÁ?ª_“?* Á?[•?¾.?±Ùe?‰kš?‰ÿb?Ž^{?…È?}»„?[1?½Â ?°»?fû€?„7^?Û¼ª?íÀ@2pš@+¿ô@Œ?ìlÊ?@Ü,?Dº?.T„?A¿?áâ¯?Ú$·?°±º?¥5?¯‘?¶'R?ùn°?ûØ.@Ü›@ˆt@óµ@1?ÀîÙ?ÈÝJ@M @û>âø >t‰Ð@0éÕ@D'n?öi?èhÔ?½ÿ?¨„?œ?£+\@"9¸@;¼§?òƒ?Åä2?­u$?¬–í?C¬>ú1X>Ú>¢œh?¶»`@ú@ ´H@Âø?å]?¥ï?;¸?ù!E?Èð?…Ös?®‰^?õÏe@;äÑ@˜š²@p¥Ê?Õô•?ÃH?y +&?¹@îõ!?Ä$û?ïŸÛ@à@ÖØ@ R?@ È|?èJB?§þ??¸l¿?Í%?Ë’ª?Û!}?Úã¨?m]!?m?¼@ +ËÜ@w@.Û@6r&?©^Y?5t?·Sú@„‚@w?@$Ji@8ú³@TÏŸ@=D>ë›,>õçA?²z?º“7@lç@z¬&@v1²@qµ?Ýž(>ê‰Ü?²±1@)#@5@ÿ@9JÄ@Gb@g°^@b5Ô?âÊ?Þ8€?¥ßüÐr?B9Ž@ n©@ +Š@cLX@fXš@O`å@I_Å@¾ ?Äsì?ÕÂä?Ïå›?õ7@FêH@5ó¶?¡;‚?œH¼?½3?Å&¤?ãº.?þÿL?îSW?Øp +?̬§?­° ?Î'B@%" +@ ?u ? ß@‰V@*èm@âÌ?ã´@í¶@A]L@+Íó?¶§?Í-Ù@@ þö?¼#Ì?ªH¬?æ8p@hz@AK@|»ä@u ¼@( /@)?Mi³?w;s@4oÇ@:›ý?Ó ñ?ƒö(?¶@‰?õ®ð?¨ƒ7?«? vÌ?I¹c?™6/?S8?²òs?¹ƒ˜?®þ?°ºž?"Ê?m¯½?Šql?È.‘?½2Ï?Ížh?ÂHE@‘\@e?è±j?uŒf??Ïø=?·v?uÃ?›¾§?»KR?ä±·?¢R=?b1z?†Q”?¦ÿî?›ð?s +?v›²?v#?%è?ËýÛ?Ðj2?Í‘ê?À¿?nÝ>Ù›™?*™>?œZû?¡¦»?ョ?ã ¸?šŸt?tZ?õÊŽ@‘P?Ö:w?«Oå?º&(?ÖA?ºÕÇ?" ¼?%õ?‰Æt?{&~@%4k@)èè?J’> ¡T?€žR?¨e»?Žxy?‚»¹?ªœ@ +Yô@;?¥Ø…?žU_?„`é?oY?«’Í?¯ ?/¢Î>ýªý?µV@?Ø1D@¨k@©m?émÚ?–‹…?–pú?—;?hRLáÿk?âA¦?ÑEš?Ñ­?—§?Œ~ˆ?†9s?Û†Ä?íïµ?søð?Z'\?GEæ?`ð÷?Å-‘?Ë…ë?’,¥?€í0?^z?ç?–_(?¤ô?¥? 1?ÎV>ù>ë/ì>ýOr?K¾Á??£"?q·½?|¾,>æª5>­Ò=³ËÖ=̓?ŒU?pÍ?Ê?"(¿?£p=?ÿ"=óÚ‚>Ù‘ö?‚¶?ÇŒ>g€@=ðRx>0Õ>¦2t?WÍ2?pI?=¾J>’=À `ˆ¯•?‘,?ç¢>,>ò}>ÁÀ3>–j?"jý?‰š:?YÎì>òv2?‹0?!/Æ?9?j-¯?5|Ã> )>EÐÒ>òmù?>“?THÊ?Rp?© +?ÜÓ>òr[>òŸ>@G>"B +<?g?„¥? ¬¶>¤öª=.Ès?s‰è?ª|?‡%5?jª?,„Ë>÷,>òž>ó€—>õò‚>ò§Ñ?Ö@¯*?ô;.?~?\t >òÍÉ>Î$'>®>Y1G>òæ2>ùŒ^?gŠ?t/ù?ñ‰®?ìü>½.t>™p?ûã?Žëq?}æ?s<0?>E"?-d>x½N?.÷x?˜E?v*>°'=?T ´?›Cæ?ë8®?§m•>©T?I˜?#MQ?T¬©?CÂ=:,?Þü¤?á̪?nò?g*_>YÅD=¼´?š“¥?¸žÝ?‰8‚?t¤ƒ?z†9?!“>ÒîL=E1X>·ª?h?L^h?ux?A>õ3=?…B?ýè»?ݪ¤?£¶†?¦Åb? »Ò?ƒíÎ=p+û?0g„?=3æ?|¥?­‘?"»¤?H1?Ä›?Î0Ÿ?»b|?¿Š?=¼A>õŽ\>ÂMî>Å·t?vÊŽ?–¶â?/¶µ>ß#H>V.Å<±§Ý>ƒy.>÷4N?m=?¶y¿?¸Ü ?¿æ’?¨…µ?w¦q?›bq?Þ¦?¾‚1?W¥í?`xÓ?NW?xÑ?™Iþ?º›?Œ?‘«x?x‚>?w5´? Îp?¦-¥@Š@‡I@3@³Ù?»RÇ?©’r@ •"@PÅ?—*=¦§û? +ì?&uÜ?X3P?rÚ‚?Ïq>?ùU?#§?AÎ?LÞc?z3M?EÛ¶?&’?€…î? R^?9jA>Šî?Í£?zΖ?~•þ?ˆx€?¦Nò?¯Ë?§?yzá?w?¼d?§üÖ?{Š8?ƒ!û?”^?©º.?Úý‹?¶­\>ûøú?-~9?ªð ?‰²=¬#?U@;Ÿ$@7ÑŒ@@Ò]?¸?§®`?»Š?£›?2#:?h)Å@wŽ@ño?}=?ˆüÚ@l@Z?“Ÿ?—u‰?~Äp?…Ò¹?¨ô?”>žc>§$>"ÞÉ>äã>Äi>¬Ð\@0ß@ ª=?Ü…l?ã`Å>' =ka@Çn@;e=³XP=S¿?B*?0 ?å‰0?æ›d?À ã?¿fÄ?Œ~?ƒgO>Cþ>?~ß?`S|?o1ª?¹N?¿`ô?ûí=?øJ3?p¤?a:B?ÓI?Ôj€?äܹ?àé¤?ž(?™Ib?Uý˜?EAp?¿}r?¿9r?÷Æ? CK?þ\K?õœ?M?!K?›Gû?£™D?ÍH?Ð*é?½'/?©·æ>§rÈ>ñí³?Ï4ú?Ó–4@B@çâ? )>ñÙ?>“Þ’>Ľa?uó?‡ëj?­Ár?¨D?€ÆŒ?˜@Ͼ?Þ€?ùð?)} ?tÇ¿?¬Ü@æ +?úèÙ?jÖ?EW>ßL}?$=t?šxY?c5O>Zã>ÒË©?~C?„.?¹?eßÛ?;*?r`4?¢Bc?âB@ªÓ?Ýè?2?³±?ï<è?›¹à??B?‚7?Áæ?ߎ?ûª?¸ž[?N°?¦´Ð?Ãì?¼ÆÕ?²Kb?ìM>ü?™ë?Ú7ß?ìþ?kQ·?ã?g#?°g?Â(?»b?½¨Ô?¨ò“?£¸D?¥Ð ?§çy?Å1Ðî^? +±è??·:?yü—?tö»?{·? 5@y?÷]w?Ϧ?»Ú÷?xÃ?¨µÁ?ú2r?é«?Æ?óû¦@!#k?Ö”â? m >ÁÝî>GÃ/? gq@p¥?Ã[?)â ?€Í»?«`¤?¯ò³?¨^È?ô°?FžG?†ì„?Ÿ—V?IÉÜ?S7?»… @N“?Ø?Áðh?•å°?Fâ>Òýv>´q?»i¤?þ®?Ôlâ?Â…·?À†?¼èÅ?’½$?Š„ƒ?s‰»?f­ˆ?+wê?%¯è?Sù?T¦>¼j5>•å?z, ?‚õ?¾ìñ?Éž®?‘>k?’%–?1ª¯?'9q?·?ƒD?7D?›@=‚Ã@9Ú®?ƒûÍ?ˆü|@4a?õa•?Œ’ª?–P•?˪B?ÄgF?c3¾?Š€Ù@ýø@X©?ßéå?ÉQ-?‘š?˜tÝ?ƒé¤?rË?ôp3?à|?¬Ö,?®ã½?ÒE?€æ?š2?\úì?ìq›?ó’·?úºˆ@â2@¥V@a/?€Or?€K]?€Eø?}Ñ+?„F?¯©@0^@¨@%T@ + ¦?BÎ?­½Í@-ÛÆ@©½?Zƒ´?`Ê?õ…?·R@4±?à†í?Ö>ÖË2=ƒÑß?7=Ÿ?ÿ—k?ûá{?ñtø@ R@%§×@ p¹?Ä ?ø^@ ‰@/†?Ñg?­k¿?>B:?°àI@$ø½@ …?è¤{?ë²>¿Fû?H¶h?´”‹?še?~ß?Vm’?H)?YÐ?¹úY?í Ë@-êî@)s@%!@ ÚE?ÖB*?˜¶—>ÏÒ"?K-ú?¿Þ[?²'?·Š?°:Ó?}†x?†Fœ?ž`œ?§'{?³œE?ÛÕÇ@#!@ ö?}õ?šq¼?÷-Ê?æÝæ?²M¤?µ;B?Îhš?Øc +@lì@ +Ï@+ÕÐ@„í?—5û?Œ€Ã?|<?G[@ @ @So@\Ú?KöS?-)v?zÙ?‚ª¨?ÅôÇ?ËòØ@Є@jú?‚AÖ?{;Ž?•Àô?£1S?`Ü>ýà±@"Î#@:`Ž?’ ?L†c@Ö@²?(ö&>:@ þÊ@9$¿@ ÌÄ?ö8<@E*î@[ùh@ú?硬?’v?MÝ?Í£@ +üŽ?ôãÇ?Ö¼Í?¥òÊ?y7£?ʲ@ ¨?åÚ«?±àè?´ý?¸3?‘N?8¹Z?‹v¥?ºQô?¥U>?Wö?¡öâ@.Äú@lí?ƒšu?x¡G?¨µ(?ÊÄÇ@p?ç@}1W@–U~@›<õ?¹£‹?¶*Ä?ñøª?ñu˜?Êu›?̉@5ë@¡Š?Ô-û?¸á¾@:»@8¿Œ?Ð[O?v)1?C×*?-UÕ?J…?_D]?ÆŸ@,.?æQ?}÷?­ii?þ&Û?ÝS1?ŒÏ“?³ü$@çõ@ÝY?¸©¯?²I`?Äv®?Ë®ß@Îw@ al?ž¢>‹u?Ïô?òN8@ Ç÷@ °=?È +V?µ»!?à^G?ó4@?ÑþÁ?¶@Í?{»>òÊ? +ó?1ý¨?·3P@GD@5:ã?¹?+?¼¶?ìl_?êeN@ ó@ ?ðÊ?äC?ëSà?õ]@Ö<@¯ˆ?|?>ðÍ|?s§w?”õ~?|@?xÑâ?•Wg?´ƒ?ÈŸ¨@’ö@6f@DÞA@<Ƈ?ÍÍÂ?ɳ @2Üâ@<s?Vƒ4>îï¦@!@O@9ßç@.C¼@nê?ÿs?Ê;?n#?™†·?íÅT?ßÚò? ¿?¢ý"?o®?võª?rH?{m™?äp@*¦?¬Ññ?o>È?2`S?&Lì?9Ô·?>q‹?“<:@(?ð÷? ø?ù—?émå?äþf?ï>P@×¥@ ²,@0rÙ@å€?ØÊ?³“í?‘žê?‹JÆ?¦ù†?· 5?ê ?÷½?é”®?ésÁ?"?Šì?ÉØ…?îsú@9š.@^Rl@G9@.e@8û>ø·Ä?-”Z?ÌŽ?ÞL@7G@~â?™Ø6?g ?•‹?“¤d?œZ?µãi?ö·7@H“e@;dö@(…Ç@&X@>\@CÓs@ õb@ Ç?òs‹?¿„)@Kv@ZVJ@c_P@d8’@]^5@0*2@&X4?·M?«¾Þ?¦D?›–Ù?¹Ã8?Ë¡]?ˬþ?ãRt@ +Ú˜@ujC@me?ˆ&?{Ó›@ô@*Þæ@•1?ÕZW?öXª@2O?ævr?[Ó?/ø@#!@ €õ@rñ?ú‘P?É ?›]Î?šòÞ?›ãX?—N\?è +?ûrƒ@4†ã@"#B@To@bö*@  Ð?ºÜc? É?|]M?‚÷|?©–?žm@?ß[?ý6"@|?@Ô-@„6?áã>?Ó?¥ÃÚ?§}@ß@Ä?â~±?çŸ`?òôt?ð"t?Ùò?ÕZø?á"š?áê9?ê»@-uŽ@•> ”?×F?LÆÛ?#>â×q?¤?õ?w>â„v>âŒs@t@ °"@¤*@Ö@EÅŒ@TZ +@ÃW?1ž]?mÕË?ãrû?ã“°@ëN@‘ø@ ±@&”?ö:¾?ÙTÒ?ä‘=?ïx3?áù?É×Î?¶ý?Û¬%?áü“>~v>¦ù˜?%Ú?—æ?•ý®?Ó(Ä?Ùn{?ÇŸÕ?xD<õ">òÄÂ?ÝΞ?ÚÇô?ô”p?èä@Í&?îmf?«¼D?ƒ‚-?ð+„@yÏ? m½?USð??õJ? +” ?4±?8fº?/i?hÿ2?†Ô?íá?âÔ|?—Š¢?”á™?Æ4Ÿ?¿|€?êˆ>ûgx> +`I>^#â?: ·?:›'?œl?»[?§ü?®g®>—›‡=wh®?^ìù?‘„Ó?TÙ?%??Ôõ?V>$„<”ð>òŒz?ȳ>Þüþ?Öä?g—?>+—?à¿>þŒ=Å`>E˜?X§A?@4ˆ?:Ô?)¢?Aô?52r?‚»? *j>Àû?n =‰§®<†ú-?‘5?Q`6?¨Ì?e1¡>jyK=£ê?Sm ?‚ü2?å%à?bw‰=׬h?r?#X?Ï*>ò{7>JK >å½>ònL>òoÔ>òk­? t?)çÁ?{Ë?¿`‡?¨=*?X>Ó?K0•?3­?"å>ò`? ¸?r^e?h?P?ˆJ?µ‰?rdæ?q×=šÙ=aFÛ=I=0Tâ>ÃÊV>âµ=ÛW<“ÀÄ<=°z;¤ì¥?¥Ss?ò†s?¦þé?oÀ7?-œ€>ò—ë?wr?À#B?èê;@ 1ø?ÉÇD>ò¹û>­†e=Òü>òÓÉ?à˜?˜*T?•UŒ?¬Á;?®íb>¬³>¡Ì0?™Þ«?ŸÒí?{‰©?s)‹>°¸÷>Wæò=€n>ðS£?8ì>?Žs>×(><œ=?™ö?ç´?P©+>4J>â³?Qv2?6%£>¹6•>³oÕ>BQ>gÁ®?MØ&?P°>ô1ù>ôR©?¯œ?´?Š?é‹T?óON?85ƒ>ú‚ ?Ũ½?ì5V?Z²Ê>ØÅz?6Ö”?aI?2Y?µ?8˜?V-8?dÊH?†»,?o:X?%6?M‚§?’ð?t5s>‰ +[>T*)=c(ï>õÞÃ>ù0Š?Xðû?d†?ß?áb<>Úà¯>¯R¤?À@??Ù¯>üöÛ>9=ì?õ’e@o}?Z½+=þêè>¦ Õ>îl9>õ~v>÷&?x«? +0 ?´*?7ß?D+ð?w”Å?bûä?LPJ?b;:?wÞ;?€³ì?ß?ˆ±›?IqÚ?8„ >øL?V¿?œA•?•ž˜?5©â?:q@ñ+@ €]?\s1?MX£?-<ñ?5ã™?ÎZ?c$?(a?$my?Í-û?ì¤?QŸÌ?Ò]?Yc?z¿Ì?Ѿ×?ïM?v ™? G·?§Ý>úP±?‰ ?»ÚD?†¡O?3p¾?˜ÿ€?Ïý¶?„ìO>úæq?†I?Øå¸?¡÷þ?Aw?|ãÎ?¡‘?Ÿd?•µ?iy$>û¤ž?¨¯?[¶?8n|>Êr„>ÑÛ’>ÙGŸ?Ý!?ƒæ?íH?ù½”?Ó;±?Ï?,þ> +v\?²D@ +ù<@E*@Žª?ó£Y?—¾?º­¶?(,4?:ªt?¡ž‹?°bŸ?Ë\i?ÁOº?œ)Ÿ?ŠFÊ>Ûšó>Ù~>=Jh>[é¨?No?O¬#?¾–ƒ?¸²r>þ?Ä>ô/A=C“¥?ºPf?ºŽ?~¶?}ös8Í•<+ñ‹>þ˯? x@4šß@0‹-?Žç?åx>ÜTö>ó\£:ǵ¬:Ç >Pìó>‹?ÃW›?½B@?ÇçÓ?ÍàH?c«Z?xð?ÿå ?ÿÛ@¾@ÐQ@ Œ@½(@Ñ@˜¯?³}«?»Á1@1ï?ü1$?Á¨p?µ>='Ý”> “‰?€W_?mÔ3>žVu>æòà?¢Ç†?ž¶¹?,Bš?:V?²Ýu?´ö?´÷Þ?ª”??šQ? Ýg?"¶»? bÿ?8ô?'±F?4ýÈ?L=o?€Â°?žŠ£@Éz?í2¨?³$?Š*(=Ò]>]5?ƒO6?…f¾”?ŠÙ€@ àõ?ÖgÀ?æ?¥>?ÍÔô?§{? ?ßÏI@+®Ô?ÛöW?&?#Í?ÁÎì?ªn@?‹Q?Á¸?·?´5”?´—?’ ¨?x<?¨B?ÁóÄ?f›¤?Ü?Œž3?¥G?ä6\@Z(?šŒn?_-?~j?¬Þ?¼^¸?Â&?ŽÌ4?g ?hn?jÑ?l@?n±@7@ æŒ?Ÿ¾?‡›?€”Ñ?s:=ZÊ4?í§£?÷ëí? œÆ?`Ð?Ao?•?x¤³?„Û@yÙ?ë)‡>£*?¨»?°cÆ?±G‹?Â8j?­°4?·¯?8?£¦{?™¾û?†[e?—0?´Çå?›îo?X$??Ê{?t?7ȸ?ŽFq?”Ž¥?¨“?ÑÞÞ@Œú?ç@É?Á݇?]ƒC=X?)þL?¨é?‡Â·?h- ?*¯Æ>¾I?R­¬?–þ¡?Ol?PÙ?°‹?è~?ÎÑ?Áý1?¤—? j?º%p?Ø ¬?ÊÏ?Áèj?‰1»?i›Ñ?_½?b\?³ÌÜ?Åj©@+Å÷@@½Ó?´0î?†B§?±Ê®?¸."?8ñ?%?Áo?ʽM?ý¸?ýÃ@?—ÈÎ?Š¤Ì?œœÖ?¡ä?‚»?ì?6ÃP?00Ø?•¼â?”Ó²?Ò +Å?Ï]?Á]¸?ÆX”@áK@¦z?Çó?·Mï? ½Ï?/`?»?ÇlX@9S@qY?â¹¹?òªŸ@4â2@/Þj@ ÿÊ?õÇ4? ã¥?üv?=#?%@#x?ÙéÓ>&šV>ÍîÉ? Žð?Ÿ=Ï?‹Æô?pÈ ? ˆä?à‘>ù¡^?pŒ@·í@R?ñk„?ºöM? ê?G}?6’?`ÈÜ?ÖXÿ?¥Ÿà?"‹?WÐä?À"†?ä7|@#;@]±?©¦É?œß?éÐ?—xS?¿àU?Ênö?Ö0b?ÐU[?Éœ.@¶„@=gâ@ ý‰?ŽPp?«ý‰?Ø1Ø?¸¦Ì?E¼?Ÿ?Ù{X?­Fí?6®Ù?!Àº?·?oóõ?Ë (?íˆZ@VU?Þ1>øÏ?²ûr@Dæî@¬?Ž•ò?´MU?ý£ž?Ì×?„7ý?ŒÚ#?ž"I?ÉÇ\@Ú­?ðòj?½áœ?ØÂ>ðÜd?¾¹?µò~?ƒÆZ?€Ä¢?“­Z?ˆ?[—µ?aà?ˆ¨¯?Ñw7@Oî{@/ |?}Cª?cvÙ?#Km?ݳ>Œ?ÿ>Ø„¢?Ca#?Nƒ?Y­?‘6}@ u @qš?ßVE?Òõ0?|0œ?†™¢?ÇQX?ÂìÆ?-Vð?Yf£@J[@FlÒ>þ#? &?¼¤F?¿+Û@d@ó!?!€?$ð?Ûáw?Óœ?âŠÉ?ÛI™?½ÖV?¼!?¼P?»þÖ?ã°‰?í3ê?Í'ö?Ã?¹šõ?ºq +?Ž¤}?…Î?ònº@ò¨?ñY?Ü–p?»ã?¤qr?ÁýM?Øœ?ì® ?ùU¡?Û»?»:ú?ó.?@šì?ö| ?•3Û?– ]?|!?I~Ì>øy?Qþ?ºLi?‹%>…é‰?ay@&¤d@ÞÉ?miE?Šmá?¤÷M?ãž?ÌÞà?ÍÆÙ@Ø@ý¹?‡›Ž?€Ó†?xÖ+?‚SV@$Æ@)ñ?Ûuë?ÉÒ’?œ‰d?’Òk?ëz@ é+?Â2y?“h¨?".¹>‹Î{? +ÄÒ?:Jè?ˆ¨²?»Ñ?웪@lÜ?ê”Ã?Õ=?tÒæ>õä?;ß½?ÏL€?È% ?™lv?§g·?¿û5?´Œ7?§ f?ª¥@!ó@,zY?›€?xÜ#?à` ?ü©?Ÿ?s\:?á¼}@ g:?òîÂ?Ôu4?¯)}? I?IãV>ôì»?S{¸?êŒ.@1Æ@5~I@!öð?…Õ#?“7?ÿ½_@¸ñ?cç%?~@?Êãh?Ð$@×Å@* ?}?®7@)›@jÄ3@C}Ú@ŸD?ñþa?´L?´ü?³éd?¸©?Ü=q?ógò?ïkô?ïPp?ͳ>?ÔÚE?0ÿU?y¢?Ãöï?ôÐÝ@1‚‡@K†í@5mÑ@ FT@½?¸Ñ'?Ì-É@.î?è}t?ml?u3]?±ò?±Ú‚@¡Ý@Ï?ô;?ì­½@Õ5@&( ?ék?— 5?²-?‘“#?› Á?Êçß?Â1ª?¹wg?¬d¤?±?!÷?Óv?ÚÓ—@ @( ^@g¾@Ë@@£@eŸ@P?Šãõ?•?éÖ«?ã¼=?‡UF?>¸?&þÀ?"Ö?àvÌ?øÍ”@,Z\@Z\«@F-j@&»@*ìê@-€@«?®?­ìË@#1¢@"sT?Ê̈?§¨ª?ÿÖt@ÔÙ@ +j?çç?çÑÛ?ê ¤?þÀ@@q@8@?,´@=9ï?Ðë‰?¢â@Ï•@-YW@&Žf@ã×?ù÷:@^ƒ@9`?·?ÏUç@&A@,‚@¼?÷ÙB@Ž@"3Û@]°?«’Þ?¿^@Ý@ï¥?ÐôŸ?Ëç@³ö@ÿ@/?Ý·?ó,s@wÜ?þš¼?žƒ"?œªï@Á@›?觗?ïÊù@5 P@MæO@^ì@xbã@P[¼?®Ih?°¤? ?ļ‰@_@ø?è„—?ÃL„?Ú~|?çD?àv?jWb?v¢G?z‹?YÛÅ@ù@÷æ?Ș„?š»µ?Â+~?嬛?ð-[@ÅÏ@°—?ò!œ?÷¤§?´9à?©c?é2ò@å.?”º‘‚‹_<Ô=Nî°=Ãr3>‹.ö?¼î?¤èÊ@,@ ª@?®úþ?qø?°oÑ?ûDµ@«ô?ûnìåÅ>ž?†½[?—=ä?|‰?f?ÂN¢@ +Æ‹?Ìi>ç"_?"'æ?ºˆ?¿`’?¿Bw?Òà @Qan@Rúà@JK @Kã@Ò‹?ôþ?w—I>‹E>fs>1áA?9Ã?Úa?²W‘>öÆ?PËþ?íÅš?ág£?”ËP?£€š@0@‹ÿ?p‚>?l@Õ?MÀ?1–?'QÔ?5Ox?xÆ?\Õt?$X[?—?P¬2?Mõc?iF?vgÈ?”„"?¢Âœ?u]o?hÿ?t÷ô?h¯>?è)E?ìë?*>eç?>*¡=ÛÑé?S?1—<$ÁÃ<†&H>³Ãµ>ì‰Ä>Óm¸>àgA?nFé?+?þ=6~X=ž©x>¥h>ù J>ù±‹?A°=«ë :®šz?¸J?J ?‡¨?K+N>¤š;>-ßÕ?äM@Ýf@Ó‹?¨|ë=¿ù?^1X?!5•>겎?!O€?çä>æ;z>´¥>©N“>«7¸>­/1>ê{[?*>ÏÉ“>µš}?[µì?È,\?¸ßô?œÒ?Î>òJ"?  +?Hòï?b%º?”#x?Œ@?cê?\w>òQö>òP>òQ;>òTŒ=3MÝ<™[)>ßêÐ>õ™>òÁZ>òem?ÈŠÒ?òlã?×?rt…>¸I`=°Ø?ÿ³?lx?#*>¦·? ?^#„?/7÷>ÁÙø>Ìâ>òµF>ßè!>ÂÛ?~t?£ÍÛ?¡s?O¨?‹Y?¶–?¶=?2s"?-Cà?"?¯T>“V¢>sQà?AÐœ?j$—?lço?s]F>ýè>;?%Àé?Œ‹s?™z?Ÿ }?^"Õ>³ ¦>’=¸=ÚÊ”>ŸÃx?sâÈ?S@ï>N‰>OZI>ôs?I?{X?x9¶>úT`>ôÓû?ªV"?² Š>¡áÄ>"Ìš??™ ?dûã>·Ì>* &?^³ø?œÍ ?Yng?S?e÷p?‘“?/½ª>0A>ºVC?,–°?M-?€[X?K‘>toÚ>¹Ž#?iCY?T°>Äés>Ð|!?¢é +?£ ë<2|Ð?,!n?>i?[.o?`±<@ +÷™@!š)?Öä[?´m3>ÚøR<@ñ.>¢ƒ>÷ >÷ é>÷-9>÷E<>÷U˜?ZW?â D?âö?•?SÇ>Š-™>Òº?%N?nó?ÈAž?¶*È?ƒª0?ƒû?šÊ?ŽØL?÷œ?Ï?x§å?uÍ?tÞ~?€¢±>ÚÃb>À?TÚa?_qt?«ò?±Ñ?xtL?mˆú?qV?tž¸?»>ûöì?düÙ?…ö?¥8r?¬t8?=òž>ú92?¬i?7Ç‹?ɇË@>?È#ý?¨ó¦?^°’>úÏq?\g)?šj?}ð!?4¿Ð?NêT?{B‡?ƒ1:?Ž¿§?qÉ?$T ?J¥?zÞ®?3´†>©}>‡Àu>„Ö?è-?½}?¨Ù³?x’–?Z9ü>ümÄ?u¸w@‰I?çð>?M> ?E¡?C?Òß?!6?/kj?RØM?l­%?²„Q?ªmƒ?²%~?Ä4?ÿ!Ë?õ¨q?™î?—%?…iý?‰N?Ñôß?É¥é?Ÿ?Ÿ­ó?^Lú?AÈ>Aá>^(j?~j…?}Û;?|œf?ˆ«‡?òè?êÀØ?éǨ?ælw@ +Tª@ ÔC@ @q@X!?4Œå?&eÑ>¥ý>µV?`Y‘?a©E?Ý÷˜?Ü®M?˜½?Ž*Ë?H³?‹å?¾fX?ÃH…?£¹ä?¦4§?ò "?îh?¶ñ?¯¤M?0ÒQ?GϤ@9U?ñïf?½´?uÈ´>ê~Â?“?¶û_?±ø–?˜,–Úˆ>×”?c¿R?xv?ác?³\k>æ]U?Gm½?¾w?Õ¸Ô?ÿªÎ?æ…|?¼E ?Ìsœ?æ€s?À'ý?Ž!k?8P> ß?D4?Ö4u?£®?3É)?¤bQ?ü}ò?²éž?D(ø?NŠˆ?a¿‘?@D'? —?uË?®û*@R‚@+Ƹ?Ó%*?mD”?6`À?(Û>]D¡<–Öæ>®B»?i“?–/^?¶›ˆ?•4?‹ ?¼¸{?Ïå?”¼?U ?ÖA?<ã?«dS?Âù?ª?£ˆé?…«C?aà?PâP?O´?Ð?ì?×Ç@ô@!‹?¦ê„?›Ý¾<\Ú<&VF?fŠ?píU?‡™?}sp?m¶? ~? &‰?¾?:áy?x+?þ™ç@#&@'q@f?ìžQ?Üî?§¦Ü?ša{?|tn?“öz?·ŽS?ÐP@&ò?Ú¾t?+ÅP?4ìç?Dýu?„›?Âë?wÈl>¢?†Ö@´?«B<Põ?8}w?´äM?Ö,?ú¶?–•‡?[)?åƒY@.4C?ýJL?Â8?{¢Ù?NZ?ϸµ@†n?ã‰À?Áíu?íÏÜ@Eh?Èi?«YÅ?¬Ä?±4g?{Šß?J>²è7>;tN?Ìû)?þüz?Ë|¡?ÄQÖ@²ò@{¦?[òÏ?( È>&Àë=ã‚)?¿îf?ÔJm?Á:k?Æš¸?pzöµ£?ÃxM?Å×J?È6ü?ãÙ¼@øA?Àß?-,?œWà@°Î@Áº?®‘ž?—;?€8)?±cÛ?ö Ý?ë1£?ØH?¨¢Ñ?]•R?›„ö?Ø$Þ@˜@8‘’@G#ú@\^@8ƒ–@GÚ?Ðp…?dU?\ ?2 ?/Wc?"ôÂ?œ_?úž?¸Ö?GN2?D.\?8Ž5? š?ÿfÙ?¡¡ˆ>£bÁ?_4ø?à( ?ÀHy?‰Ge?ÎH@œ @-C?þ+#?´R½? ã?‡°ð?è¼ß@¸@^ â@'Ç?©Þ?¢í«?“-˜?Ÿ-„?½ ¦?ÏLÜ@xš?òâ—?¾ª?Íp?î4M?ëÍÏ?ÚÕˆ?¦tK>ýò?š¤À@;´ò@å =Po¢>ùÑ6?ÌsÄ?¹F#?š+2?ŠÐõ?NÜ?iÇÒ?·æô?·O? Ê?œ×l?|H?zñL?dçB?q×c?Ó½?Ã@Ù?A«ë?(—Ï?{$e?ƒ­±?õö/?êæ>∗?L??õLK?éf5?Áæâ?Ë~r@IÀ@É&?Þc?Ôà]?½íÚ?»ó|? ?¢0C?õÿ;@‹Í?š“?}sá?z`›?yý?Aµ?>äS>ï`ž>Í›‰?’a“?»+ï?lp?0êª?Ï,r@ ô\?ÿ— ?úgJ?Õ×é?¦Œ?ÚQ@õN@c6=@§ìê@uy@Kÿý@òv?‡ &?x?Ò?2î?u}Z?é'?ïãÈ?ÝâÀ?ßðf@'aÓ@««?Òf:?Ô5 ?¡Ö?©¸ú?ì’Ó?ó%j?‚r?“N@E·@R‡]?ØÞà?¸ìü?L´?+°%?\<`?w;õ?”ëÔ? Ý?–jy?‹·„?¿½ù?ëÓR?ý‡?@“;?ÀÇm?„¬—@0@VE@5%>ôññ?‚…@%WQ@ +»?5”Ý?L¦¢?î×?öy¼?§û?¬?‚¨¤?|ͪ@ í@J1?m2Ï?1„ì?–x?¥ÜÑ?°³?Ág¸?áµÑ?òâì@$Âê@FÒ@.:Z@#=?ù_µ?®Ã?ÞªÝ@5q…@;Þ?‹1?%ü†?ñ§p?ñ‰ð>ªã>‡î?‰]?¢Z&@JXy@eH¤?ð´m?Ã[?êþÓ@IÜ?ñ6?¼2é?¼»ÿ?´?ÍøÅ@ò?ùG¾?Üâ¼?Ò "@à«@ ËW?©2ð?›Î+?ˆ±ä?~Ö@?Ô??ýæA@a?Ì +†?œ“Â?ç«¥@Ï{@øÓ?âf*?Ýb#?•.š?›?Fá?©Àn@-yz@/W?«¾u?\à?¾‰'?á Q?×ÿ?ÐT?òHU@ 5Ÿ@v¹@{¬@ Ø@ˆ„@lv@ +‰@É ?Áè’?ÁmS?Ü¿v?÷v?½W“?—ýü?ÁW[?Üvl?Þžè@@O:@-õ@%/1?Ô^?ËE +@ Wæ@ç‹@ZÅ:@q‡"@.¸X@bÙ?ñ.´?á€÷?÷¾Ý@®Œ@m\?ÝÜÉ?Ù @fU@` ú@)™ñ@˜Æ?ü±M?ç1?çÖ?æúñ@Gò@F–@+ëG?–>]?¤m?@In@Irj@#³@Ý@ +=$?öúi@g¬Z@¸{@›»G@)T:@{œ?œ¿›?—Ê3@»0@—ð@Œ2?ú¾è?÷Âô?ì@y?ÑÍ“?«GX?˜M?1â?T?ãÿx?ãîa?¸§k?¹*@ |¥@+4@+@'s@(+‘@Ê@”ä?ôéÈ?ùüÈ?ƒ­e?bòä@º&@HfÃ@:ÐÊ@'1N@šÆ?©î?¶12@ߎ@F@3Wu@.>?Áü†?}ÌÎ?½åo@—B?Ú¥‰>ùF“? ’?©~?©w8?òR‰@¸I?±Á½?{Íë?ºê%@å£@f ?èã4?óĦ@Eh@Át?·Š‰?©VÔ?º–N?Ì^?Ñ$>ç "?OI?Žt²?£²Ì?赉?ù±Â?æ&À?â +?„”H?Eñú?&=>×ß4>Á >ª>Ìîm?¾ Á?Ïvd@$àÍ@"?ÿÃ?äÃÎ?©sy?db?¦j.?åªB?î²û?½=-?«~R?~ô¥?rWu?Ì?á.;?“7?F‡A?‘ìl?É€q?¿¸ú?¨=?Ž©p?¼(>í Ð?XÂ>?OóÃP\>ø_ò>êãª?ŸO?}??ßP?z]?JžÈ>ìæ´?,I?š±„?¡?nlÃ?€°:@Zä@ Æ?lÀÝ?psT?pâm?qRþ?>¿?jÀ©?©P?Çþý?±©6?´ãë>½±®>?n¶>™æ>Ó›ë? £?$s”?BË?!%]>þ`=ÍÉÖ?‰èÝ?½vï?f²•?3&?$ƒF?Ëà?s:ª?{ Ÿ?[< +?<¬G?N ? +%?QÊõ?HsV>áà?%í²?q€7?)› >³/?0ê˜?„>Ú?òÖ>Öí˜>"ä*:bš=—<2>Änë@±?¦®@ ´@VEƒ?Óüe?ŒY=¥?$¤×>ç8¼?NJ ?¤ ¬?µ¾Î>ýº->”Z>˜˜š>¸ Ž?œWA?ãß¹?Vá=Õqý>°P»?—o?tz?G×?éc>ò7¤>yL?Ó@í?Ü" >Ú[>Ý#Ò>ßýp>å +/>ò>¬>òAþ>òAk>ó‡q?oµ´?rKY?r’?p¤2>56á=¡R0>ÖÅÐ?¯s>“ >±¢Ì?ÝÌ>c©%>”Žl?g%?4`?WW?1~>òž¿?FŠ)?¬µœ?”Cè?GŽv?j~á?¶é?¬»‡?XwÞ?c@~?‚X×?€J?0¿?44?”œ?”œŒ?}`:?€_Ø?y¦f?s@ã?AC?&e«? 3Ï>ójQ?€`‡?¾ÈY?o45>r=•? ß/?xŠÖ?\bV?K¿?k$1? ¿?‘Èô.í>ôB¤?{?&O?[œ?\¨$?o€÷?tñ?’ÿÇ?•À?Léœ?3s1?°t>ôï?„F3?·Ë`?ƒ@?ìð?I[>õMÆ?ù?+ØÉ?bõ ?–Á3?‹„Z?‚‘Š?}ä¼?F­?IV?L0?KèÝ>Ö^±>¿[å=í#¢=Ô®q?#ÞÁ?$Q>~­8>*Ú ?S"³?v±!?«ù>öÖH?Âη?ñøJ?ÆRp?¯šr?¬tU?©GÉ?¶&¤?ÄßÊ?Ùó?èø]?ÑäÍ?°I?±cV?¸eA? và?‡cA?›:7?ºu?¡šÜ¨Ð>éf?H"6?Fwn>ú>À?/ ?ÌH?ÆÇÍ?¤4?¶†?L¶Ì?U–u?xÜ?¤f? Ž?ÌO?ªE?¹M±>Ü4=ØV?TëŠ?…ì? šz>ú) ?…º&?ˆ?ˆ“û?‰H\?RÝ?)Ì£?påæ?ˆbØ?ó’?zæ—?y‡?€æa?Ft¬?Ó?%{ß?*¢Ê?…z?¶Kã?ÞÌ·@ Î@·R?Óöú?Ö!?ä8‹?Ø©@?½ x?t¢„;’åz?QÖÖ@(t@Y¾@l?¹Í¼=£©#?Ÿž?ÄãŸ?¨Dp?Ywå?_ °?} !?ˆêL?±?´H?¦0²?žÖ@?ŸÓ?§Mw?¾1À?¶›?¡Ô.?±21?×{î?ËsØ?[?•?$@®‡@»‡?Î*Ê?¾$Ú?n³ ?V.;ÿïb>®¯F@f°@o?Æ[[?Ï)‡?þÙá?ó±?¬¨¬?²ñþ?¬^?¨@}?‘¶Ë?˜(e?äÆ?Þ ?¿•?Ó×p@+¼0@!í?Ù%¤?Ã{’>ÿ¾€?!ùH?ËÜ?Ñ}H?Í¢:?„‰?‰ÅÈ?¢Ar@0ð@}@ (Z@ÎÔ<ç˜> +~|?9v?w´?ŠB?Ó£?7)W?hE?ú#–?êóx?ÖHD?ý½&@:E§@õ?|K?"O?zè?ck?5°?Màd?„?p¡u?\8?M3V?ÜL?" }?*ÿ©>î#=Ñz >â„?ˆZ¯?²²ë@Ô>@÷E@9S¨@ |k@ä¼?Êl=?€ì?:/ï>¼?R¾?«ð +?Ú²/@Û?¶ˆ´?w¿’?=7Ó?2?…? )Þ?Üa?« o?·åZ?¸¶ð?»Îñ?Á»G?–Ìk?h×?„{|?« +?*wã>ùðÉ?›St?¾U$?ìV5?ü À@ŸÌ@“¡?ÖƒZ?Áî¼?µ*?¯«R?Œ?^?}em@1,@@5!@ af@ð_?Çw{?¼ëÜ?a?\T?ùFÕ@^/@ É@>4?䣥?ã‡>0¤> €>#Ž#>À??úñË?ói?€ +]?…ë¾?¶ø_?©Ëû?o:q?‘s¬@hÐ@ Ê@£½@ Ïä?Ø”Ü?´¶Õ? J‹?5Î[?DãL?jãú?°X?éVŸ@!½¢@Ñs?«IE?±—‡?‚?¼³?µ­˜?¤‹?‰zK?Ëx<òþö?²`?€’”? î?Â7?‡K¢?6æ%?|,?SÆ?”ñm?ÙEž?³E.?—=C?+ÃÀ>ÒX:?ž?¾–?¬R]?¤F‰?ˆÊü?“ô?0rC?/ÔJ?êx?‰_?E¦?H‚ª?ý J?õ¸?ë%?ñÆU?SÈÈ?G€”?!4Û?Ÿå? +æ?7•#?ì™*?ûz@@#T@%Î@@* +@*6*?‡Gá?x‹?²ø?ú©?_”j?š½®@ S+@ç×?ëM?Þïü?ãQ¬?Ççx?w›R?xqÙ?Ž¡’?˜Íb?¯£¥?”¢ð?m?X” +?Ëbß?±ž?€Xü?’Ñ?¼°,?©Ç_?ƒ‹)?9_¼>Bb?C¹Ò?Úa?µN8?\Î(?£Ü»@þ1@X@T?éžì?¾º@˜Ý@:¶«@;€^@?éé@ ëü?ƒR½?ÙÚî@+®:@ï?êóý?òh«?ùßþ?‘ÜÊ=µSp?[?V?G¤>ÿ@t?¿&@)T/@‹ @ M?Ô§?~ö?`F9?G­??·{Ê@½?î?“kÚ?˜Re?š?½È)?åš–?âÜ?ñ¥?ߧ€?¿U˜?ïOè@e ?µí3>°>?ÚØõ@f^L@( +?”? âþ?´ÖŒ?ßb@ú­?æŸ?ŠÝ4?˜yN?©ÕÝ?¸‹'?Ì®?óFÑ@&¸ê@ K?›}?.3Ô?ƒëñ?—œ?¨å%?ŽA?In?>?ꃉ?פ†?¥­?ÍÆ_@$‰N@ @«?š;t?º<¸@Ë0@¡?ÉÅA?àƒ›@æ@!_ø@W`@Hž?{Í1?|ä`?‰—?”A?Ì+¹?¾éë?²zp?¼M?Ëú1?Æ!?³“Â?À8µ?ù]Û?ú­ÿ?Ô/~?ÎB@?4ue?Ôq@ï@"@$v?ùcr?õYÄ?ï,ù?á?bË‚?©´Ñ?³ +Ô@™@ež?s‰É>Jê?ϯ@Ø?ðþs?·Ù¼@/#@)é?çn?ƒx?Ä´?|=r?Ô@C@ T!@?®¼ð?»1x?ÔR?¼¬Ö?”\z?Ëײ@9ÁH@44à@ò$@Q?ÃnÀ?­‚e?(ÜÞ?! +?„âà?|mU?ñÐ??迯?ÙíÑ?æ® +?–Q¬?gÅ?òß?†ìg?²å(?´ÞL?­¹¡?¨ëH?˜Bÿ?˜;Í?—ø˜?œË>@$TØ@r)N@8"?¿??2ë?Š½ê?Ž«?P±ó?ˆAö?ø)$?óYæ?ÐËÁ> +f= +x?°ég?¿>?Ö7?Ð>¶?ªª”?šŸ¾?ó¿«@¾y?Û¼å?±ä®?¼#?«QÉ?¨­?ë`ù?äå–?…Ùˆ?’Öû@çf@CÆ?å2z?Ó‚Ò?£¯x?‹»e?ÿqM@6p²?ï7m>eP? jP@t®@¼@QÂ`@Hªz@KL>@Kð/@8™ô@C’@/«)@´M@“Z?¹t[?Âì*?êfu?Ö6?8Ä9?T™Ÿ@Æ«@"ß`@^÷@Õ@âP?çÿ?ÞÓ¾?Þó?ú8@È@æp?ÌWø?Ã*Õ@&zï@+,Õ@%o@@*J<@aA­@|øÓ@Çõ@Œ:¨@d§?À·ã?¾¡?5Æ?H‹n?fœ?Œ^U?£ƒ?«‚´?úB{@ûD@~Š@'æ@Ið?ìn?ÔVr?1:¬?YQí?ÙÉŽ?Ôp¤?©ñ?Ž?MT+>î¿?5vä?–Dí?¢Re?è?DÅ? v¹?Hk?Õ€3?îQ|?äN?áD@@ª@y†@(;@Y]“@V°q@/· @:l@Õ ?ÁÔ~?˜‰º?eKÔ?‚M’?š|?–Zë?ϹØ?ÊN ?”Ir?“Q>?Äš9?Ëå?ƒ{e>ì«w?çC?%úÈ?Stg?À38?Ö<'?Y¶,?ZtZ?†r?‚¶?¬fp?Þõê?ûz,@(vª@>Ø@ÏK@ ˆ?¿I?ÀÉú>÷¡?'~6? Ç±?•WZ?‰Þ?zµx?b]Ü?biÁ@Õ™@9—T@å~@ Ís@×@|Ô?Õàr?H3m?ˆ^J@k‚@zâ? Æ?¥W˜?ŽÌ?!´?@Ý?¬ä?l5Ú?¬#ö?½‹Ö?Þ²?ïûÚ?Ùë?âÃ?=š? }">ò>åþn?5Q?B"„?é>æÑ>çè?s"? Šs?UÃ?lÙ>è@û? ÷c@X*@ è?Å÷†?³³¬?¡[P?„åØ?}ˆq?reÿ?6ì°?#ý?e;}?¢˜R?ŒÝÿ>ìÌÄ>Õv®>  ?"ÿò?ø°'?Ð…°?(Äš? ””RÆî>¡HÝ?¥±?µŽî? 6Ò>óÝ>ó{¸>ú.v>ã±>¼¡¨? zÿ?º³>ƒïB>[!?Ęb?ü7È?—uæ?WT>¯Ž>»ý¼>ø6?h‘?o?}ù?zå'?~lc?Ð ?%®>ÖA®?>©èE>«+=N“à>ì÷?¹ç>ÞXö>9›? ¨?„Ñ>íS=©„þ?™ G?¾C=Ô}>§?µyé?§kL>´¯»><ñ?é:7@?#í?*‹v>âµm>nK$>+1?4‚?¦(?µ·Î? R…>¸¾÷?€ö?š¹ö?¯?µª?:E¯>Ä3o?Hþ?ƒ‡?‚÷?‚cÎ?4ÏV>Ñ?>nÃj<¥k¶=4q“=WR=Š'=h¥=<+>•§>ø>Í>ô¡<>ñ³ì>ò3«>òwå>ý²¶?³}˜?³Z°=–˜[?M9Ä?fíc?†ß>ÔœÓ?Cc?_ïÕ>E>”:b>òvK>¨Rx>m6>¸\î>òŒ?!Î?iÔ‹?K~>ò©6?y«@Áv?î„>GªÄ>£Zò?”‡x?‘±4>òë%>òò&?—€?žŸH?A­Å?-Qò?ˆlI?‘0e?6!?(†?Aw7?EYê?WwË?\é“?RÁ}?WL]?Áá @º}?¼¡Á>âñ=Ð+=U6ï>Ÿ™?‚/m?}Ð?tÉ?d;Œ>ôV>ô.¼>ô:v>÷K?°=c?°w‡?!?? ]û?x¬?† ?f h?V‹ˆ?ªßN?¿'Ú?œ%•?:?„Ã?uÅ?”j9?¥Á??k£â>ÿvk?„¥Ç?õy­?ÕJ?‹ªÍ?•®?±‰?–‡?#<Ü?1<?–8ó?Öj>½±,>Ï@õ?­€¢?¯;Æ?¨åÆ?«û«?€p—?v Í?7¯>öÅô>ÿ)¸? KX?ÅàÆ?ñ‹*?¥¤è?„L??æä™@«@ü/?÷}º?È?g? ³Ä?(÷?~F¸?O,ð>÷íÓ?"2?m}G?Nþ>ø9>úÊ\? I?W³?+Ž?L©0?º‚"?Ã4?øÓš?ë©ò?]æ?]I>¡ä‰>ˆgk?x<æ?yY¢?¹g?»²=ßQz= ‹•>ÖåD>åâ£?¢C?²ù&>¢Úh=À=8?^ç~?Œ°ˆ?¸úúüë?&?ô}?/Vû?O1÷?¸>¼@‚?ÙÀÿ?­ãÃ?ßèp@ š‹?À‹*?æ×?x÷?½ ?‰î>ý4ò?q?‚±?M z?‹üÌ?`A[>Ò'?J±Ö?Ëâ?ÃÂv?«Y?Þm>®ÊÇ?Œ=ß@0E¥@áº?ýFÄ?Ë,%?¿¨?@Ú?]ó ?3‹Ú>e½G?}ÌÜ?’Èò?ßÞ'?Ä›?y=?d‡â@ ž?ï["<å.}>“ò6?½ô^?»kò?Æx‰?ÈV?¿®?À¦l?Ê™?Ñæ?à*"?ÆŽ?L†Â?TV4?\%1?^En?X^H?w¥C?ž¢Ò?ÁÁ@4 p@&?´F3? |Ø>ªâï>îcÐ?g£?yài?ÊiÁ?Êz^?­Ó?¼hÇ?ï“”@^•@ !@ V?wò??†[?´3v?˜4?E^?^§?Ö¡×?Ô?ämÑ?ê°?êÒ€?ìò@s?Òˆ^?uð?Sú?Kœ]?w¨?šà?²»¹?êÙ'?²Z?Ÿ¶?Q¸E?«Ÿ?¢µ?¢!0?•‚º?tån?É @³f?ÔÎR? äÄ?ƒ”b?Ñï‘?Ðä›?Êæp?¨¾K?€æÌ?Bö?í?WXÐ?–»æ?¾ŸÇ?è^5?¸E%?…­–?]¥ã?>É?K?d†°?œL?­Ñ`?ä þ@÷ô?çîë?Ïâf@BÌ@-‰w@ýØ?ð] ?zÂ=4¡ >ÅFj? , ?©aú?Çõ„?mUè?S r@UÐ@,V@l¯?ð + ?uDK?[áõ@•Ð@#ûž?âŠJ?Þ/o@ÝÑ@S?yr+?fWâ?ºëª?Å?èJž?âGö?®9?¦òÂ?–ê¹?—? ?³šË? +îü?(›Z?À{j?´½#?‡,O?ü?î¾¹?ä/…?ÐMª?Æ`Þ?¦K½?˜Ñ?\%ì?€O°?— +Û?¡JE?Äh{?‡£¯>j x?Š¸@!·‘@ß?Ä’¦?Ï?Ò}?¬•ö?[­?¥?Éåú?Ž©þ?è·?ˆÆ?Ám ?yjV?œV>“Øð=’V8?0ç?g¦K?¹ß?Þôë?ƒx?-˜'?&Ë|?{$?`é?@\?=X?<Ï?ˆÄ?ÙO?´|r?Ä¡?¼„…?Á?¥ˆ[?˜·¯?x;Ÿ?s•?«?¸í9?‡W§?¥?ﯺ?öµ¶@Ó—@;4?Õ›V?Çl?‚6?=9?ÁëÌ?¹¦&?šÚ&?šá•?=¹-?S] @™v?ü³Á>È?m>ôÔ½?ÕË?ÌR)?Ʊ?ŽyŸ?Œ.t?€YÝ?U×? ? vá?Ilú@êŸ@4 ?óÓø?É ?«¬?^Ì@¬@ +ÂW@6Ì@2ùG@-jw@½>?¼©j?ÊnX?ÞFÚ?¬”?yß>è +ü> oñ>â1¶?=¤e?†b?á?½†¶?i‹Å?vì;ÿñÓ?O@9M^@¾0?ß}?¸¹?Z¶?‰UÕ?€!ˆ?myë?[œ`?zÆ‹?“GÂ?§”õ?“9@?ë@8IY@#[Ÿ@ +!|@Äý@’t@2‘Ñ@T$@y>ÿ”à?A}?É?sO0?¶(¼?}Ç?ýP>²“ =Óz2?€5¬@=£@y?ÿ?æ^k?Åùí?„õä>ðê?Cbn?Šˆ‘?”ò?«4é?Ã}Å?ác]@õ@B“«@_? Ù?šJ‚?ý_O?” g>rè~?¦ÑÙ@m@—@÷ñ?è|×?}ËÐ?}¹Ý?}«ì?²À«?ý“ä?ݵµ?¤[d?˜@\?’{ ?³(?îÝÿ?¼<¤?3Íþ?¡€³@¿L?úA»?|àè?¥ÚË?õu_?»±>ü£L?’«—@*ñŒ@FO?^bX?Æí@Zä@;)Ì?¡dÇ?Ú·@@X@>S ?ƒn?O^?æ¶g?õ]‚@#@á…?»ä6?¹Ó?¶ è?´à%?ȪF?Æ“³?{¹?„Z@߉@Û¾?¡,8?˜28?øo·?ú ‰@Do@º?‰ö?zY!?µ Ì?»«?¹h£?»šW?7¯Ç? cÀ?jEZ?yÆ9?ÛÑ4?ù ˜?¿Å?¸(+?P—>ùU?àzï@¼j@~Ð?ý§æ@Dö@,¤R@%?³þÀ?ÕŒ„?÷Øì?÷þ;?þ¨?Ï'Ó?ˆ-á?²î?ø?ÅC?-íj?P˜¾?h±?»-h?éwµ?ñ @ V@Wü?®Ç÷?¶ ?óe?õy?»5ˆ?¾y¤?†ºë?‡gL?¦c +?¦ ®?”>@?”¾1?Æž?ÜDê?Þ²Ó?ß°v?¥V ?u¹ù>Ëð|=†º?¥,„@è?öok?®SÊ?§@¨? )u?¾+æ?ù„h?νg?t«Š?šìª@Ô[?ú +@?Ì Â?Ñ'@,ox@7/4?ç«H?în@É‹@pW@'”¡@3m½?Ê^?ž ?Ú€Ò?òÿ+?ÍØë?¶ë?ÂYˆ?Ê(?¤[º?rcH?­pŸ@Ù@$‘@†•Ó@b-—?”"å?©7`?ûØÖ?ï¸?þe@¹c?‰™?ƒûû@ûÞ@!íá?ÏÒã?›ƒ}@/™@oC…@.çú?ê67?>ïëE?`?ß>u?Ùyp?³ù?µ¢j?Ì?Œ}w@-ñŠ@7÷A@#²@ ”?ú¡?îx@\@%[.?þ b?Âô.?èjv@¯8@- e@UÒm@D¹x?Ìðj,?]¹³?«ýR?³?Õñ9?ÂF¬?ä)Q?Üxå?´óƒ?«~j@@E’Ê@0?G@‰k@ •l?ñÎo?ñ­¿?G¦ý?)o(@­&@,,@-{@2¦@ Çå@ 2x@Á¶?û¹Ç?âò»?V˜¥?7»„?¼>õ?ÎŽ@yÉ@ ¶?è;?«s+?±n?Å­á?ÔQ?ç¤ @•7?Ì~?¾°»?é5h@ì_?Ùœ?¨ß?¶»?ØÀ`?Ð÷˜?½gå?»É?rÑt?aÕ%?Ó`ê@ í£@(°?à,?ÒWY?Áßu?¶Í{?ÙT>?ÈÅ”>ø°>‘ê&?¥vI?á»V?á…ñ?áÁö?øŽ@“õ@%J•@Uwo@R­?êÅÏ?ºª)>ß·><Õè”?ŒËÄ@ i?õfÿ?ÐqŸ?ǯŽ?§¦?œ??e¼?ãz>ÑÁ<çÌ ?©h4@¨¸?Ó’?>ãØ?/]Ù?ãA(?ã5Ô?cžš?c›W?ÌI¯?ÏòŽ?¡â3?…¢]?nà??dh??Au +>ä´·>çïý>ì—ë?m§?øÌ?ã­þ?)è>åïj?OmÉ?‰NÆ?r˜y?º«?JÆž?¢}h?‹¹û?CBÔ?=k~?WèC?$·È?ªü®?®´ì?yø?oð ?}@?…[K?n5Ã?kSa?S¦[?)>Šƒã=„óI>Ö,ó? _p?˜-X?• +B?”:ð@ θ@+P!?æ3.?ÄDn¦ +>—ó;?Zö_?…2¼?/±? «²>ÿà>óÔ?HìÁ?Tbƒ>øÁ…>õ¡÷>¼¡>µm½?ë'Û@ÿ‰?«Û?y4>o.¥?!£S?`(>? Åü? +µF?ц>ÿ‹ù>`>|;?T~>Øí? +?”E?W(>è¡G>¡²>ÑTc?&&h?>;?Ãî?\j?{À>ß¡è>Òuö?±÷?“v?gÛ? G>ü¥Í?4M¥@$Æ?ቕ>ã^»>5¾õ>§•Ò>­²]=§aî?:D¿?Š(|?ò’>Váž=ÆÍÚ>ÿ£?1'?– Ÿ?ªùü>Éœ’=šY¼?v„?¬ô?¨d?¦‚?áñ=L=°=¼š=¦Û>—h-?Ðï?,öK?gq ?lòj?rc?rUd?r-¶?:—í: º€>#Ü?o-ä?n?M?x+õ?umˆ>ßëè>Üú=Ó¥™=ãì·?˜ ?£ü ?ÔÑç?Ý ß?0éR>À±…>àÕG>òX>Í­p>±Ý™?LIó?‘·4?¤5?¶jH?‘]È?Fzg?Y~t?uu?#v?O +³?\ô?™Å‹?–'?5í?.òé>òáò>òêè?=UŠ?AÄ?™¹#?ŸÓ¿>Hðã?^ e?’»ˆ?¿ím?Ô`T?l:N>ójÊ>¢ >*A¦?:?c@E?8Ð>ó¶D?r¶O?í…E?ÏDg?së8?“ è?ðÍ©?ÔÇà>ô? +ˆq?·*¦?·7$?¥²‚?¢pµ?>+?—e?í’r@þe?¯Bø?ŸÕT?OË;?%ˆ–?¡3?Ä4Ð?Éïô?Ó'?‚«>ñeÂ?T3¢? ¦ì?°2h?ÂÞ ?÷´@- ‡@ ç?N÷?P›Ì?<œ?Ó=ÖK™>#Ÿ ?az ?`©¥>Ù+ä>ß›N?s?vŠ¿?º>ö­V=Ÿ¼”<½ ˆ?™«?¿XD@8z@ qs?ä?_õh?ªÜï?ÉVk?·!?¦ž?[E/>÷°÷ú(?-¯_?s^?}oA?„<?eåþ?J6ú?`û[?’î:?¦©?èZ.?Ï„ã>øâ‘?ï¿?ÜF¨?Ú¸™?y-Ê?} +?»?» ?º‚?µC•?³”;?°Zs?)X‰? Í‹>àËê>Ⱥ?™„ç?«™6@œÁ@()4?œ&H?gwA?0ŽT? Y ?¯ù?ŸÊÐ?…l?pž=?à]?£È?Ku¶>û5Ö?«´:?é›?¢m?^Å­?…Öd?“D?™9È?§¡j?²/Z?¹Œ¾?+à?{Hl?—Í¿?¶ $?ƒ[m? ºƒ?‡Â?Ûˆq?³>°¨Z?Ãë?H=?%y>¤þ?Os’?õ'T?Þ™?˜“ë?‹³p?2¹>æŒÂ>Ëû?›¾Î?‚èß?XÈÊ?eî,?}Ùê?‚fæ?‰Ûˆ?o˜-? '·? ËÝ? |?¼È?ë8?ë?¥E?LÝ?¾ñö?²ž%?‹,ñ?!I?žÎŒ?ŒÔy>þó^?&#X?aÙ?‡Ø?Z¤ø?hTÀ? 5T?³÷P?ÿjÏ?Ís@>œ^>Ö±Í?'ß?XK#?ÝÇó?³O{>PúÍ>Œg??@‰? +Î?Í?~8W@‹]@Ÿ?€Y?¡ÙÙ?ùþ€?ã£6?«¹:?ßÎr@2y@=˜?îYž?ÉF?‚ÕF?“¢Ÿ?¦]]?›…?„:,?S×>ðAÙ?{X¥?ôÖ?Õwà?ªÇ1?‚«ò?–R?›#H@¿c?¶Õ> v>”ãÌ?±Ë?k*?»#î?¢V?}úÛ?Gc?Æ?Á›Ç@-K?Ñý›?€ÜÑ?¬½t?Ëã¹?†&6?,÷£?¶uˆ?ôÐ?§:ò?yŸc?Z.^?E~«?5ë2?]?¢›ž?Õàü?¹õ?¥¬?ΪÅ?æPr?¯Qô?”Èì?)­?"h?©Ž9?Äû¦?6âƒ?+ý?Û0ß?ük?< »?4¯?ü?/Få?bÝ’?q¯B?]Úx?Tº?b8A?ma¥?è¿?å>?´«?É¡d?ø|±?ðÿ¤?…Òú?‡uT@¿·@F*@8o@?ã ë?ç‹Ó?Õ`?Ìêy?Â1?Áëf?ÂÙ?´dÖ?X[?oçá?>½Ñ?{¹ã?ÂE?“¾i>•qÃ?òa?”1¢?Ñ›[@&ÜÛ?ûÈ®?{8i?ƒ«^?ugL?©Íå?ùV?Ék?|7#?§nb?â;Ô?´±œ8?]I?.d4?©ë?çO`@‹,@ç @ ç@ /E@ ^?ÀÉ?¢·Æ? …Þ?žSž?“èC?ŠÐÍ?cÔ?RŒ_? +/>ÿ"¿?ÌÍô?ë1u?<È?S{>D¬Œ=«uŸ>ïwü?@MB@U±?QK!?T‡â@3ˆ]@2ï?ßë-?ÝLß@iF@1Ó?§Mq? ­‡?Dšk?Pµ?ÁXß?½?™¦“?žºf?Ù;Ã?ß_?à’ö?Õnï?¶G?¯Ô?‡Fé?A;?¿-ú?˜Ö=›Xø>‚F?*ê}?‹1—@ s=?ðüb?±Žß?¤_?{–þ?¨ìÊ?ô(@.»@$7?á)¢?©>^?¥ü?‰Æ,?‚l?€fê?—‚5?ÀŒÇ?™îß?)lè? ñ>š~>¬… ?ÈÝ?9ºl?uª?“z¤?‘lz?¢èù?²Àî?°NÎ?­ØÖ?È8N?ãÀ?¦!á?GùÔ?¶?¼Ft?Ë–ì?Œm8>ÿÉ5?£Õî@öQ@ `a@zö?Êg*?1÷@?†ýó?¿‘ü?îŸ? hü? +¾'>ÿ?6>è£}>Éý?ŽÄé?ìp¡?ßpî?Öä«?Æß›?¹?¾­ ?ºðˆ?¿d½?ÍpR?¾±É?¦ \?ˆžˆ?b?TßC?5,P?¿x›@'m@‰Ž?þ#á?Ù×d?«Ha?×=@ +¯ª@ë;@-[}?àïË?+–W?ÎÓ®@*vú@Eƒ?ý~‡@þ†@*Ëì@!:5@…‡?ãs+?¡óÂ?È‚ý?ý ?ã# ?º»D?.:?¸þ?8v ?½O?« Ä?ÔÈ"?º$’?]¿?–oÏ?Kiî?€‡?Õ†?¸Nï?ýš?ß—?)I?a›?Íâ?¾­J?°B5?ŸmÖ?Š®Ñ?å„?}’A?‰œÜ?¼}Q?ÈS…@G¶@k@?{0?†c¾@ ®Í@ +¹G?úȾ?ûo@ +|i@õ6@c,°@cÎp?©½Â?“¿Ó?¨¼h?±#ð?‡,Š?{hŽ?¬gU?®ˆÂ@DÐ@ :"?¨?m¿?ŠÓA?‰B?ãáô?ù‘K?ø±ö@Ãö?£¢?S¯$>Óãm=Äë?µ?‚G'?¤m?»üÏ?Ø›?øSô?Ù©µ?­zº?¥†-?¢: ?«¨¸?«?¢?•$?œÊh?ïªv?é–&?¨ß9?§*Œ?…˜p?…}?¯<”?¹÷?ô+r?ð»b?ä'¬?Ýæ?å?âé§?ª0l?žc£?´ƒ?³á?Úì˜?ãz@fC@ à÷?ÓZ?uµ!?š6\?º £?ÖOe?ïá?¿lå?‡ ª?–ìB?µ2á?ªEY?t˜K?¹[Í@Dö5@2K?·Ùò?¸'â?Õ?‘ß?…8Á?{Ѷ@g*@làÁ@ ÿ?ÿ?º0ô?£?’?‹¿?Œe?â#.@>º?÷’*?òƒ¸?ÁGü?„û?æµ@KE@&]ä?‰¥\¼0?cXc?Ãsó?·I\?³¹?´¯e?² {?µiå?òÇy?åK?«¥ª?›dÚ@{þ@…ø€@Ay0@,”y?µgí?ƒ‰¶?÷¿W@Ûx@©h@Tí@ïœ?í{ÿ?÷çá@Uy@ºï?tz?n ™?±Ie?±‚­@h³@[>?ØW\?ÙÄ?³iý?—ke?Âg?ëÁ?Þ¹ ?ÁFÏ?ëtY@M1¥@I|œ@Q”ÿ@S«?ËE?Äôû@(™@/õ@1æC@0{ý@Û<@)M@# +Ú@+ók@!L'?ùÂå@ãô@ 2@$ ?•°Ò?c¥?©-c?®‹Ë?¤#g?¢K¢?P^?hB+?‰åÐ?¼ÜÙ?Êõö?Ë|Ò?¿²?;q ?`—Î?ûåœ?ÿ-‘@kÆY@—5z@BÁ?­‰?èÜB@&‡1@/ýN@c[™@[(ú@‰@ˆ?&@FÃ@Bwˆ@ð„@ „?üÑà?ã7­?Ú¾?Ûd?çe.@"~@v?é Ò?ð+&?ŸðÝ?‘fh@Ô{@,Úú@–?µ»¿?ÜjG@ÄI@?Êš(?ÅÎ?ºX?ƒ’@›-@’@@ºG?å|n?øx@ ÷®@’Õ?ª‘?&†•@•@çâ@(|Í@¾@›ÿ?ëéÀ?bT?bH½@ ˆ¾@B?½ù©? Ú‘?‹`²?cµF?ˆ,4?´bä?·µO?©h¥?©^“?kþÓ?aÇ?DÍ>vÕë?u4À?á±Y?Ó ?µ¢|?¹`?¶ü?lj?¡ ?‘¶“?²Zø?ÑÀ†?þV?­Qä?¶lÓ?ÇØz?ÓD?òT9@ ý¨@ç@%j¶?‰ñ>Û\>þ÷¸?1ðç?…“?½@Û?¸¤?y´?”¶?ë’?‡>ˆ‘?¸Å@#F­?ì7Á?0 +f?„þ@"!5@X?ch;?cˆÎ>kp|>‰?š?·Ýà?ó´Ä?¾45?Šd‚?dÜE? +^ì? :t?c]¿?\KQ?GÀê?y+U?”I?c¤ƒ?.‰?Š3?»ôm@¾ø@Œ¦@ù¡?ãÛë?g–”?màŽ?@ ?°¶ý?—}Û?£QT?ôù>þw?NÈ:?iûF?È ?Ý7w?¯l¤?³{x?¿C¾?°Ó…?« ?±h$?¥/®?ƒÖ¯?“ât?‡+O?£Ð @Z™Ø@k;¦@ ?÷Θ?_êF?@Î?d,ô?PÊe?€Ê”?O½?t²c?kŒî?%–3??O >ä …=Òï@?¢^f?õ÷?žB¤?xüh>øà>Šïë=a%W=– Á=‡<ö½=_j=ú>U>:Æ!>úp˜? »l?̱ê?Õî ?~Qæ?IP´=¸%?>…ZÎ?÷5>’t_>–¢B?˜?ahÚ?{´?¶ë? Ç_?êû:?ÑŒ(?¬>´…$–,–>¨¦á>ªtQ?Å;·ÿq>ïW$>ò"«?XGÿ?^ØG?põé?r>ù—f>Òã-?>h5?Và?0?mt? Q‚?@ë?<à@?d"þ?˜Üõ?µ€ ?8>£<¾!>Ù¬>?rÏ?%^?µ]7?¡Ç?kï?/‡b=@$>›ð?>?öa?©O ? Ø>Ó"m>Î)*>\Q>vaÓ?‡2?‘†?eÿ­?V¬w?×®?ðt?Zx>òO¡?&ä&?Fœ“?1Á6?*ms?Vmm?rw? §˜>Ÿ{5?fÉÝ?WL?0ÙŠ?+Z>üåá? ÝI?/;˜?(*Ð>òÛÀ>õtë?q½??rÿäû³>ª“~>°Ä?9º?Vk?®×>óTš?GŽG?smû?.Rî>ó†Ò?Ëh?(­k?GdR?|lá?v-I?sÇ[?u„?{ñw?d}µ>ô i>Ù¯>.´B>NÅ=>o³>ŠŸØ>öN.>ôqë? ?¬¤$?¨^Ã?£óÞ?c0’?H5?•Õ+?¬áN?µÞã?·Ë5?`h¡>ò´’>¬8Â>‡|‡?ìW?up‹?¨´Ý?ò!N?¾Ëø? ,?m,º?׺-?¹{J?-©q?¢>öŽ>Ý9 =&Ý?vcÉ?v5œ>üå|>öœú>ïÜ>èL ? ÍB?Žš@9@f&?ÅÊÑ?Ÿ?ŽïÀ?Œ?( 8>ëÏ@>ýÞY>÷¢v?J?;›?{] ?Ÿ`Ø?zj?Eº?‚º^?´ò°?špê?)Dz?%õ?"¥C?W/?ºƒ„?©&á?GÌ?<ïœ?2Á?4û ?‚.ï?…Šf?¸Å¼?º€Þ?»l?¹R? à?°c>ü’û>ù͸?ÿÕü@GC?•…Ì?;?ab„?p¥+?|Ý\?iò?#? Îß?µ‰†?ÚÏ+?Äè?¼"’?»—?{²?e?R6Ç@M@5!?Óc-?QB5?¯¾Ø?ç?Pê¼=T‰ä?)(Ì?ŒÖç?$T;Ö?s?‚?™ïÎ?­ãü?XÈL>¶80>k°¬>Z:]>ü¸Ä?E¢ ?põ?»Íe?÷°¾?œ*>q³?˜? —?dþV>M#? È4@Ré@@k >ýª{?(A?}ÌV?i?³ñ&?¢C°?p«V?Š¿v?¶k?ΚÉ?üeÂ?å0€?µï|?¥€ÿ?‡‘g?o%³?¥e?S\Ž?¯V?›¬?Wo?˜¡È@šá?ëE¤?›=e?99?Ÿ3ž?¡£œ?ªLÿùð?†Ñ?õÅ?R~?½wŸ?…tÕ>Tà?R ?õÇú?ËË ?ˆã^?¨ïæ?Òîñ?¯2‘?S›Ç?¦ŠŽ@ô~?ì@À?ÀšÙ?§-"?€r?¬Ü¨?óõ?¼ÎX?U‡À?2ÓÔ??feL?³%Ò?œŸ?€¡?YÂ?# {>­¶|=#ùM?Yh?€¼¡?þ,¬@1õ@·?ÕwC?§È?€Öv?è°È@ø?ÓÂ?”Ä ?Í +?ö^?Èí·?¦ o?‹"ª?xé¤?–àk?§—o?xJ?V^&?Ÿ€à?»Á?á?Ž¼©?ð}@á›?Tëö?@°…@ +Á?U_\?%·?ùº?Ž^t?wc]?léÛ=¬áI?Á¡r?Éw ?3Šl?/zÁ?"ˆ?Š„´?´äÐ?ÀZ‹?¿þ?¿æ`@u@Ç@F§?ü„?Áì?º–|?tþ.?\ž¸?*o ?‚|A@8Ñ™@(é\?¾+/?¤Ð ? „ý?iðÕ?ö ?ï‹2?ã7?ÔÖ?ÁûH?Ðߘ?ä¶q?£=v? +æ×?†€?îä}?Û?¥ý?Ù?¥2¥?¢?§?™Ð!?ÊÝV@O¥?Áu²?L?ˆ ?Œüo?®£”?ÉQf?ãÿŠ?üd±?³Ÿ4?‚>?¦ƒE?·QÒ?[7?xã>‚y=ß¾?ç†M@!‰¹?ñ•n?Û³ÿ@ø@.@%îÞ@#ic?óm ?Þ¤à?¹^??¸ÕÂ?Á¹(?Á·0?ù¨[@¡?n_?”?‰o0?‡óS@N{@€`?È? Ì?Æ_9?ÍÜ?Ç}? S—@'´=@&1H?Ò×?Öû?í*=?êŸ?›J«?—¬?>¢4?qóû@ ?q@ê[?òPK?ãÈ?¨Âæ?³SQ@/;?÷è?–qì?˜‘m?´ž€?ªjn?zÌ?ŸQ\?öœM?Ïïs?r¯È?‚ ÿ?¤kL?­C?°L–?”1;?,2!?ÄŒ[@S}n@NœŠ@Q“°@WÎ?t²?yÏh?è—‘?˜Ä?€b”?’Ö¶?±ÄS?½ÍO?Êtœ@§b@[C·@4É:?ÿ;5?«¼q?e5??ûÇ?€(h?[Q?7m?Œt€?ÀÅ@G®@4To?øù?€Y?­ s?ãž?Ãân?™¾¾?W³>ÿ½«?®g*@ØÉ@„¡?àƒØ@ÿà@°?ùì–?¾’k?ÝÓ÷?ô w?°á·?m›>öà=Ý•j?8ò?¥[Ý?á>­@PP?­Ü?9«ž?¢?áM\?“b?‘ò?¬tÂ?þ‰ç?¤?ñP?–’t?äd?ܳK?ÈÛ“? Æ”?‚ Ê?q>"Â?`ç|?Ê‚›@gy@'T.@ˆ@lN@>­@6÷@@Í?ß•@@MÔ@&fÛ@:¨æ@3Î?OçÛ?™YØ?ìã¡?Ê…Ý?ˆ«ƒ?—.?¸x6?Ê“,?ìp?Üxb?ËÊ?œ¡š>üjF?'dK?|Lz?€AX?€v?a,Õ? õÉ?:‰ª?“ë?ÍA @E@Œ@FÆ @D+è@>äc@Š @™Ö?» ?¯°4?„õA?ŠÆ?¥,?¨ƒç?{ž??¯Ts?³ s?›Jƒ?¤ …?¸y?Çv@H•F@P[@Þž@Ä?@ÅL?R ?çÕ?ø?9)??Â"?G#î?e¢S?¹Íd?¿»“?z=ð?b~š?²þj?ݬ’?Ýò–?Ó-€?Œ%?D©c?[’Ö?Z ?Œ l?¯¼#@<õ@Š¹É@*í?‰Ïì?‹m¦?‰Tu?»aì?úË(?ÙY?°W¨?¿üÍ?Þ?Ò?’V’?–¯?«›#?©f@?Ì?µ& +>*è¢>&çÈ@5Àv@28È?4?–&G?œÝq?£”Ò?ú +:?ýÆk@Ö3@µú?æúx?à§@—@#k`@WR@{Ü@XçO@7ó@Êp?õ6?½¦5?téã?‹3E?£.D?”?t?Í$a@cš@@Åû? ¸?)cT?’/’?Ž÷8@%¸?÷ng?Ár?Ðé'?ð½?óI3?åñ.?ß$®?w0>Z…€?Ïgî@®@Á«?à§?Ô ?À¢b?Á ›?¿±Â?ÿ`?@Kf¯@›ã>ÙâÞ?9ñ?ì©Õ?úB•@Æ@²a@;—@˜Î@GÚ@[cÖ@CGH@ACg@ˆf?ñ ^?Èúù?œ^§?Óm@ ü@6Þ?ük?ûIÓ@À(@pˆ@Gu@Bž!@33D@3=@eŒË@n ‘@=eˆ@2ÄÖ@.‚b@!ö"@_b@ ˆè@ŒN@ýÆ@Ó ?írÁ?éëÎ?ânÐ?Þà?¯X?±ó/@*7@#Í?ÙÔø?Ô{@ û“@ tB?Ðqƒ?¦»=?²º¤?Ì.?ê„°@ @º8@Èb@·æ@f~o@d2Ä@7Ÿ?ùÃ@<Í@%D§@Ohù@`Ë´@z?ˆÉ®?¡Ö?­Ü?ÏÿJ@•³@òE?ÎQ÷?×>[>à¹Å>éÊ?>=g?e³Ñ?ŠWT?‰¶?ˆ Ô?xX?çd3@X@€@@éî@ |@ü|?„Oë?cAd@¶}@-Ê@Zø?Ýal?Äõ®?­Q?²‰?ÄÏ@/!@”)@~³ @¸P@+48?çá?Õ˜Ú?ÚW +?ßÒ?)ú>ùì?}â?å=·?Þ^ª?Æÿ#?Úy¦?­,§?«V?(á?e!Q@6 @Kx@ ó?qÛ"?‡¾…?µNö?ÎF@ À@ +õ÷?º#é?ž¨í@JÉ@:þá@À}?r^è?V† ? âõ?G ?‚\?ZÄã?·À?»K@+âØ@Up ?ôO.?ñë?S`f?—Þ?¨{‡?´ä?©†¤@6E@+xÉ?«¼ÿ?T?Œ´"?§m?•ÑÊ?{9©?‡[?©eñ?©ZÍ?BX¥?@š?ŸwL?Éñ¿@ '@& ò@ú‘?}ò°?‰ô?¯Nv?¤=G?·å?Äb¶?E¼™>á§Ì?ÆG¤@ qw?ú2â?ô»?ŒÍ?¨› ?‘þè?‘¯?wã>»ÌI<“™Î?]h?Ä m?Ë$K?ï¢&?ÛÞ*?ŒÅ‰?SåX?å[²?èm«?¸o¼?ž‘¤?²?ØÂl?ºP?b÷9?¦ÉÇ@K ý@ZT[?c] ?c}·>÷«G>¹›?–έ?ØJÑ?¬—N?}w_?†\É?x§Ç?ZÎ >èµý>þ´ç?K©“??Ós?„W’?’.?¥$?œ'á?êG«@)W0@õ? Î?–c?g…c?[hö>çþB>è>‰?¼A>÷)F?ÊÑv?Ó^ê?ªï ?›j?ýÎü@'­&?­î? ›Ü?°ÓX?‚Öi>˜ÿ¯>㺡>í'Õ?ê8?E(?2?¡$Ö?³§s?‰ªq?¤É>Æ>Ô¹?ÒµW?ÜÝÛ?±.ð?°Í?†C?s{r?^~•?KvÅ?‹˜«?•!J>×GÓ=ÀE\<ˆËs= 8 >°>qÞ?(á½?>q>1Ô­>Æ–J>üg¯?]?U•>Î>˜í“>ùóE?ù0?=ï.?ìV?½r?0ñÕ?™ï¡?L›å>mbÜ>zm>€ö>¨ØZ?mÆ>Pf±>""P>ï|?#ö?æ“?Ñ>?Fל?MK?$§>rh€>Þ*N?3 $?‚(ú?…¥ò>)J?=þÌ?±?T:w=Á‡¶=‚bŒ=6ج>ò >÷¾Œ?s ?P-?ažÂ?dM¼>VÖ=½« =®p÷=žÂ¾?¾ÕØ?æ +?”î?w (>‹:f?kÃ)?´U(?µQÚ?µm?(Y$;¦þ>u>ÿk¾?˜Ù>þLÏ>¨²“>V>ñõ>Í4L>6½¬>yêJ>ñþŠ>Þá"<Jç?À¤?ÖÉ?¢ÉÛ?¦oÝ?¦éÚ?«ïk?)!u>ò4¹>qÀ:>%U¦?,Þß?cïä?:z ?*Gè>òëÇ>ˆ6Ž>ðŽ?9M€?"6>ïÂ5?!?'6Ú?0S?r²a?_è>òÂö>óÀÊ?qí?#ÚR?Ÿá?’Ií>ì +&>¼B? iÎ??¿?9¡m?;v ?`Ug?sSì?.kš?ú?è7e@2÷?@?ðÍ?¤_ï>õR+>¥%“=>T>óð>¾hñ=~4x>ÈÃõ>Ƴ>ôHY>ôU8?8`?‚›@,"@ÒÞ?b>¹—…?©ž?ÀÇË?…™û?m÷Ò?v1Ï?uô?̺>U:b?T"?ª/c?†2Ø?KÊÝ?NËà?QÒ?™|É?÷®?ê)q?¸j?ž™f? Õ>ï1=»×Ÿ>&|—?p°?sÙÁ?v2Ë?t8Ú?q+l?n? +\>öÉÚ?‹Š?›N @óI@ Ÿ¦?,¥>ˆ1|?V ?&S?>¡h7><0™=Ÿwt?q¬?×û3?Sb=Íüw>J1$>Ýi¸?La¾?o C?ŽÔc?–c?«-÷?¾‹?ìÚ!?é…ý?ßit?Üw#?ºÄœ?°Ÿ¢?uãq?j¢‹?µk>ý›×=Lî=Œª>ù¥ß>ùº/?Xm®?h®ž>‰‘>‡òf?|¢9?| ?³œ?»¾”?…Ú/?zzf?Í#ª?ÛaK?‘ª¹?„]4?XCR?J\²?„‡D?’ëÈ?)–o>Í $?¯|ï?íä-?•){?T$°? £>û§*@ Ž£@W=@#¢?ùZ?Žãy?Ρ?O?(?†3P?;ô=…Þì>÷é>òîX?Z]ò?êÒÅ@=²s?óI?‡?2 Õ?}4¥?_®ª?1+?¯ÖL@ߎ?ìù?E£'?Uí‹?}¸L?t´?i˜%?\èÈ?1Œ;>Þyõ= zã>;£F?ÕJ?…Vô?ù‘{?ÎØ?~x*?0&´=Çæx>ãˆ?µY?yF}?'ßô?V†á? /Ì?Žãº?7Š&?‹«?ß=?°Bl?7§y?l1?·U?Ó›5?ÿ~æ?¼N>Ãê+?І?fÜ)?T=z?!ä¼?/)>ÿê3?/fo?€«d?RŸh? ù;?_æt?«XÛ?hYÿ>®G2?i0¹?ÓÑ?µC??“§?°n?Òõ?íúi@ ·A?åãH?Ÿ$? ×{?ÖX?+Á?€rü?q ó?VR¼?(F·?†"?oDí?¨ò1?‹yò?nL?±Á×?ë„Õ?×Ix?Á¹?* ¥=šÈ?vC?Ô,Ü?Ë ?Á&q?™ž?€Ë ?¾H£?æ>e@àä@r?²µ­?kZª?ih?u~z?W­Ñ?P—l?P!™?N¦j?]„?W8?(X²? Ú?™q²?´'|@Tp@[a?ZåU? {2?¯Èv?Á Ô@;V@è?ýþL?ôÅ@@öx?`-R?Eä)?d±#?voŒ?îmð?ä¨é?èðf?å ,?©Ï?©.@6ÿ?öÙU?—§–?©8.?ëì¿?çóg?ÁÞa?Ô‰ @wh@‡?Ëê¥?ƨ?¼?¢é0?dŽ?$LL?}ó ?f?ŽHG?¤Ú?Ì¥l?¸´Ê?7G?žÎ??ºÂã?— Á?% ?&'?8ŽG?Òû³@1ü4?øïé?Eô?¡ž?ÁèÒ?ãT@D,?ÏÆi? ª»?ÁR?ؼT?ß›?íD?©®N?|Ñ©?ª­„?À¢Ï?ÀæÐ?ÁÕN?Õ‘?n¹:?>É®´?³Ò:?æÐ?š}L?-o?æ²@*º@O“¨@bN@:_@q¡?»/ñ?¡~Œ?¼!²?Á¦Å?ûÙÐ@6?¯ä4?¢#Æ?®m`?´_l@5Ö@=%]?Âóæ?»í²?ñ†?*:Í@Ö»@WÇ?j:"?–…?’’Ù?Œ–?³¹?2Ê?Ìy?°£ç>xò£?TÑ@®!@ûS?ùHv@F¿@Èn?çÃ+?yÓ¿?‘9Z?öæô?Ñ¡?$Œ>ãáN<0j<ŒÙÓ=¼â >‹s¸?ÀH?5ë ?€”ý?•ƒ—?ÀÔæ?ÉŠ:?Ö ½?ð*·@Òí@-3²@?j…@І?lB?fS?À•£?¦Q¤?€X;?•Ic?«¬Œ?ÌÌ7@F @ ì-@îQ?åÿ?€ÒY?Ö`I@q +?¼ÀW?…Ù? È÷??OŽ?’î†? YÙ?¶»þ?³¥þ?£Qâ?¿?Û=>?»&Ì?¦N½?‰R?R ?•‘?¿°r@×?@:N¸@Ÿ?ÿf?¸lt?}õL@&†G@w˜@ ±?¶<‰?¦yý?”¿??†~?~ôA@X@2õ½@ÕA@†ƒ?§¨Ä?OŽ ?’Ñ>¿5ã?ªd›@–?ÉCÞ?Œ®Ÿ?qt0?AQË?òÅó@=ü@ —Õ?¼«„?Ósh?á]Ã?Êù¿?¾aI?æ¿«@ÁZ?ñ„?ÛEÏ?Ùû—?Щ]?Ëqì?ÎåO?›NŠÑ?gJO?£Ÿs?²©‘?è}\@cF@À*@&­æ@pôœ@ib)?Å +?ÏÅÈ?á .?Ú7‹?Ód?Ì‚Š@%aï@*¾ù@‰¶@~B?™™Ö?K)? ?¸1 +?•‚Ç?€ä§@ž@V{@3äp@ ˆ?¿p?–D?q€Š?·€œ?Ò¼‘?ý¼ó@¤Â@ZšA@<3?Oƒ?pž?Ý`?îÌI@Y?:@U¹?„Ž?—s?º[?ÃÓØ@VA@ }*?{ÚÃ?·?LJ@ÕÀ?ØÔ£?µÎû?ÚJ?ü9@¦]@1É.@è‰?Æ!Î?Ò,?ÂS#?§Ö?F‡?ZÉ^?¨ÓÐ?¸+ù?F_Î?EÐ?£_v?¡i³?“˜?piO?¡–s?µ@ïü[?A|0?¿ß?¿9L?…–>?Š >hR>]aÄ? ?U¾?¸Â?ñÃÓ@!b@J©É@!õ-?ÔGÖ?ÑtM?{-D?–O @k{@´Ž?ÆFû?Ãó}?Ïí­?ÅÈí?¶9ƒ?­PŒ?ûúÖ@7-@Dúd@‹> @…»Ÿ?‘ ?‚¤b?„©?ŽØx?ʼnØ?Å€@?ëNy@ z?÷ç°?å)ø?Ññ÷?dý¦?dÞ¾@7W×@%c@_@…8@xô¿@œ@F¶Q?d#*?‡0û?¿-y?½™@”@ A@‰Ž@6‘?Á ÿ?š®@ :@S@`:?$››?Pü­@/* @$Ñú?ÅX?Ä?÷NÈ?öY”?Æ®¤?¢7ä?ª2?ÅÍš?Å>¹@_?ü³?Ð-¿?Ò6M?qL6?@?0ß?iQn?”¢-?Å?Á‘Y?çó'?ÝÖ?G–?iFp>_qr?”¦5@‚Y@ƒê@ L‡?ò?¦·Š?±È?‡?&?{5U?1>öÞ»?”?ñÀ@`B@“@¹?Ë‘5?Ü›Ý? t0? 0,?Í?Þò?Š÷@?8(ø?€iÉ?·9M?Øþ@Þã@!Ì@$*@ eb?ïß?ÜÒ0?½Ìk?ª +?”ú?bæû?&e?¹×>?²ïì?xÇØ?c—?Añ>㪿?…VÅ?ªõ?‹.?C÷?mÕˆ?³k?¤?'?`=Œ?T‹;@¦¼@g×?\¼Ù?5qu?Ë¿@*„?¤SW>ñ×°?D“? +’?<¯Ò?•C|?Ž?pÓq?J…†?gC9?hª‚?Ïa?,òÑ?;º ?NÔ ?ª}?Óv ?e+=›ºé?U?°¹l?¶5ÿ?°ê¦?Œ“?4Hƒ?@9Ž?²U5?ªÅ=t>:=Âï?TÀ?@=Ji«?œ67?ÕŠK?¨Ü?r[¢?´]? +Rö>¬ì†>µ4?$7â?^¹Œ? a´>Ï|>/T?í?3žn>ïüp?€·>Œ?á=ø}o>âyý?•`>&°>E¼¸?…0?‡§¥? +T?N©?¿Þ@?·²Ï?Í? Œ?A…ç? »n>HÆ‹?q?Öì?B©>ú«7>ØÊ>ý.?ò?’CÐ?°›ì?¢0 +?‚^ ]H>vÅ¿?ö >ï$Î=rB¾>B>>òM?ü?©.²? ÃR>ñôg>ù%Š?hÏÃ?j,3?yÝ?x!U>ú>>éP”?£ÓŒ?´KG>‹JA:bÊ>µj¯>ñÖO>äî<ƒrX>š>éòi>íó>ñÓK>€lm=ï¤<ËX>2ìƒ>ñÜx>è¾J>Íh÷>¡„=«m>°ëc?À¶l?¾M?ÈL?À£?7i?;3Ê?rë?r–>p[›>! = “è?­?X¢›?˜;>òG??"ØÍ?:¿ ?Þå>?‘Ä?8ýµ?‹O?ÐÕ?¼°}?‘Û +?l~«>™3>…’Ô=0ý|>òØc>ýû?µÐ§?¶8T?_0?Z‰—?Îrá?ßR¥?–)4?'Ó?vŠe?sXÕ?Ư¯?ðÅÀ?ŠÜ>õ³7?7ƒP?pù¨?lß?d&?9Ìh>óÝr?\c?O‰p? +=¼!®>°Ç¶?Èå?¼I~?RQ?Ofq?Èñ?ÏOå>ÇQL>”v ?›}•?°4?^„Š?9ƒ³? ñ?³ëo?h³7?.B@?˜Ú³?ÇX?aè$>¥.K>«Ñ>± z>¶ÿ»>½7?:¯¦?­./?Ÿ>Å?uô$?«ˆ?¤í?|â? Ù¤>ÿt>÷Ð?•ž?v†?v•X?iå-?f… >;L@>4HÀ?Nßó?o+?‰\½?„f?3ž_?%uÒ?\œ”?bW¦?&Ä? øX?Yæ?89È>ìM3>_µÿ>uÎ.>•aâ?)j_?|K?Œ %?¨B)?žÑ^?Šó?•— ?¯0?Ž.?>øÕ ?6Þ?±­?šk>ô´Ä?TÍM@:Á@9 >äqÊ>öŠ,?h!%?]Â'>ùÀ×?)Ê?Œ>d?‡?¹Ï??»˜?»¤ß?»¶+?‚Ï?zlÒ@"B@ ÀÃ?ÛòM?ÇŠ?““Ë?†#¹?]ÈÈ?NgÞ?™?«Âž?­œ®?¯y0>Èbž>®Ob>û›ó?‹{—?¶…?U@:?¸?Ùù>ü 8?¨á²?ë-E?ú?×?þ[Ò?†>œ>¼Á¸? u?-ü?Ÿø>ü¼Ü?¹ìG@”H?Û™µ?}f?_2Ž?CðÀ?GÀ?K”?šá?Ó'˜?·'ò?›„¼?‘Sú?}«¬?=’b>ÖÓI?”ëi@Ù×?á$?yÊ®?}TÎ?{ˆL?P’Í?Û?vøû?µÐ“?ÀI?Ë&Þ?¨Ùø?~ªÙ?‰¾?•ê\?ÁÇ@,?£êÌ>bÉê? î@­ç@›§@öŠ?µŠÂ>ÿXu?`4ø?È?¾ü%?¯­Þ?Š‰ø?ü%?aÍe?¯~”?„¬ >ÿÚ†?g:^?¿‚?`Œ™<ÓaX>î?‡Q‰@ê=$VÂ?d\°?¿Ùõ?du>öè€?´I?úÉ”?±Cu?‹nÁ?…¦?€Æµ?Œø?“–*?ý׋@«)?…´ +?Ü3??Â2?HÝã?lŠ?kQú?Šü?Œ„.?d?–äs?ßx2?ðÅ8?­J¶?›:ì?—'o?“*?xäc?x?F?³:ç?¿a@u6@!Z@Ïì@/?S,|?[óí?ç’ ?á}K?_v?gO2@ ñø@ _÷@*ï?ø º?š.«?¤>Ç?Å9˜?ºåÍ?”u?7Sÿ?ÁÒÿ?ÁÖ†?ÁÕ¥?Èr­?æ˜ ?åE„?Ûx‡?ÊCÅ?=+?µN±@€æ@ ,¬?¿Qe?‚=ØmÜ>ò4?Œ;O?kt’?¥¶?JKK?B,?¹ š?ü5?Æ¡k?Š8?Þw¬@!e?ã>?A?s¼Ó?sÞ;?¤<(?ÇXV?â"[?ó +Í@$X@ :}?£O(?*m—? ñb?9G?ïëý@ Ù?»­?†ýI>ÄGw>!½¼?;·l?e| ?Ô³I?ï’X@"ÇE@(?,qk?9?yq ?~¤?‚k?‹¸¡@:ü@ µ)?H™Ë?S0Y?ð¼?çŽ?€ê¤?Ã?|aí?— @&l6@“Y?„&ý?w’R?€ÐÐ?€ÐÀ?€ÊÔ?¢„@Å(@y@€·@³¿?¢9 +?¿'?û®ð?ÆÒç?Úl>ýŒ?>ôT#?kœÚ?饾?æFd?è)7?×Ci?ÀËl?·q??¬¦?­tÚ?¦A¶?âå@ ‹ù?ʺ>Mì?9þ/?¨ãÊ?¡–X?“<þ?Ѳ@5Ö@0?äT—?¾=?‰rè?¡J?¿Ñº?£ÕH?Ž2!?¿OW?ã¯Ï?ÁÏ|?£iu?§gË?¬Ø÷?µ3õ?·Í?¸ÿú?¿ë??Ð…õ?åk?¡yÄ?M[;?Œ¨^?«~%?Á›…?Îðû@î@4> @Ñ&@ùR?˜Š…?Ÿ,?³ý¿@i@3ˉ@LJ¯@~¬?ð{Ä?­ýê?~èk?ËH_@šl@:m@^Þ?ñË?,IÔ?sÄ…?–Î9?Ò5ù@~ß?Îè?¤xÒ?à‰á@ "ñ@Ñ­@ $ù?°f·?øy?k@?,š?0qÊ?2:¼?³â#?ý·y?ý«(?öu¥@ g@!;Œ?Û›Þ?sÐ?±ÇV?õœÞ?Ýã ?½Ø +?ͶF?㔩?á–Ý?Ó]ˆ?Œj¦>üÌž?8o¢?½x?^Öv?49?Œ‘?ËÜ$?«À?wæ?½ !@ œŠ?ÊØB?<ÞØ?/< ?Sƒ?´o@H(,@F–h@<­@!¬?´c?¹]…?¿nX?¼‡n?·ŽÑ?©ÆÛ?Ž)ø?½³®@†Ðk>ZíÏ>(Ò?“Ý?¢+@—@d ?ò‰É?º#À?×É@LJ?ß½?¥ê?Ý P@ˆÆ?á½O?k;%?b`?¦7G?€ûG>j0?2Yè@5I9@%dù?vá&?‚}Ô?€Æ?‰mØ@Yù@š³?Ì–„?ÎKÂ?ÿ½ @æ/?út–?õçÞ?úùÕ?òC’?Å ?¸+#?Ï3X?ͼ6?”ç«?~xk?Š„M?‘ðÉ?ÌóÈ?öJ?ŸÛ;?˜â?¥Ø‡@'JP@%ø@N¯@ÀI>ô ¤? ?™@³?¦¾P@ƒ„"@ˆlÊ@0àZ@(¢U?¶ø?¶`@ ýƒ@Ú¢?‹?3{ ?Åïô?þÞ€?ÊŸ?¥M?ÚAú@ ª’?ìîì?²V¯?ñÇe@-~@"É-@—@yª?Œ/?ú@Ó9@;×?/!r?!tÒ@ñ^@#?©’Ì?zv?ËMú?î$v@"UÞ@95û@"­?ï´¨?ï™?ïy˜?þצ@ ù!?ó³‘?ÅE%?×$à@}Úí@ém@¹ï@ +">é>bˆ¬?ƒw„? à¾@ F²@2W”@2A‹@2,â@¤Î?þ;ô?ð¹?Ü?Û?a?°lŠ?«rH?/é?Q°ñ@?`é@Dv­@×f?ì~?ª‘ˆ?yÇø?œ.Œ?¾ Ò?ÐÐØ?ð Ë@ ú@LV7@>÷¦?ßaë?Úìä?ür)?óßV@ãÝ@Úƒ@)Á?æ¶@.²Ñ@f5K@6þØ?çg}?ÐZ?¯ +s?§Dš?i&ò?i Ø?Ó1`?½Üò?ð³Õ?ùÇS@D0@<2@Í@.#F@"Y @æC?î `?‰*?€“w?¥€?Á†$?}›?g#&@ v8@)Ì@ªv@Ët@¿j@29[@('²@ +“J@¯é@™²@SÅ?ie?'ßß@*ÿ@cÀL?÷3ê?Î?WÇ ?U)?¤äÂ?Õ¶5?Æߌ@…¡á@Šë”?Ðã.?u9Ó?ÿ†@,¨?û €?d»?šb¹@v´@Á¸@ãì@`N?Ðö±?á¿Ç@'$ã@C ë@*5?ÿE9?Ñj? ‚?X @(‚¾@2ÊÉ?§}A?Œ­p@1­à@_Sv@%ºþ?Üòë?¾ ?‘"?š)Ž?¢Š/?· â?iŸT?~É?¸À‘?×jó?ÂŽ­?¤w?˜„?‘3n?±uþ@â9@%–@ý4@i½?$ðc=î^?Ð?…ñ?¶}Û@‡ ?ú‘:?aŽl?aŽÌ?†»V?“8›?Ñή?áÖh?ù/¯@9K@ÜR@Ek1@2ä„?a«J?aµg?I¿ƒ?S1À?gu7?k§?cÖ?Fi\?‰j^?άï?ÁÏ?ßÅÛ?ñBÛ?¬ó ?©Ãe?í»?€ƒ'?œ@x?©þù?“†1?bÛj?‰½ˆ?ãE?å)@ ò@ +r?Òó?¸<?ÃA ?ÉM? ’¡?†žr?¦?Ø\Õ?ÿ°ø@=“T@-œ­?´ùo?Íè…?®Y?K=ˆ?iù£?²5?ÂâÆ?âî?½Ça?’Å?}X¥?]w?„° ?Õ9?Û¾g?l·?h‘9?Ê¢?ƽà@)<@ÊD?¥Í÷?†…?oþÁ?#-Ë>ûü¹?û¢?{Y˜?ì1_?Óbs?lç•?r´Õ?“°??ž#?fÍñ?bš?žKö?’ E=½D¾>–|õ>wÃë?r˜Î?|ÝÐ?l&$?^…>`r'>êß>0õ=ía÷=tAÃ>­à>äd›>Š8>›S>>˜¬@>`©>–ܳ>Åq¢?IrÞ?yd,?»?’;L?µèF?¾âœ?oû>ÿäÜ?Õÿ?º¼W?úbÀ?Dz‰>êr>‡>ùŸ>ÁÒ±>ÈÒR>é}Ï?™>w’¶=èý˜>Úèƒ?Ç?PKä?pM>¢=ã*?J_r@Žj?ól8?Úc‚=w1? +cJ?}uR=?V?‹$À>ÛÖ">êxe?Ã>úFÞ>á>åìH>ñÚ¥>ñÙõ>ñÔ¢? +ƒÚ?³›J?° +Zñmí?¡3†?²ú†>›*j>­à7>ñ».?†R³?«s†? +`>bŸ0>Ó>Þ«]>ñÅU>ñÊ >ñÇ'>äQ>Ás>í ?K…ì?Pbø?UX ?QÛÛ>ñë>ý3ú?qòW?qxä<Í´Ÿ>á_>Is[>ÓBl>ò+Û>áÐ=>èls>®ß>l1U>µcZ>ò]o?<+e?Œ§ù?¡Y2?µàž?ŠÜ>©¿d>‹vo>^Ç>ü(?^f¡?XÞ?ŠR?r¾?p?Ñ ?F?O®{?˜ªd?¢êˆ?sÝ?båL? rx?³2y?µ¨œ?¶oŠ?µóÂ?'V!?sÞ´?‚À?ú;?£÷?ô§?àr»?t9ì?tG•?tYz?wU?ˆjÞ?…œÔ?½G–?½I¥?º‡.?·Äl@ »@Rô?]¸?Bù?”Ô ?¦åo?>T>rS>¿Ô=íü=Ö_ >Ú“?`Ý¥?j¼g?uØ%?¾‚@-u‡@*G²@Èv@?tPH?€ÏÚ?´½¯9ˆ>,< ?t?…?”w~?‚¸L?w†é?&5/>ôØ°?ëÕ?2˜}>‹Ëë?^zß?Ο°?§A×?xJ”?‰Éo?ž%?—¨·?‡x?qP)?7?”?Þ ?]è>¹›Ø>yãp?ƒ–?…€K?mÌ9?~«s?±ÞÔ?¡ÍH>ù©X?ÐÓ?=Ü ?JN¥?¾?’Œ"?”W¢?–)Â?| +–?zSt@d¯@ XU@RÈ@©>?Ô€?Ì)@?å5B?㯂?|è°?Z̹?uì?{<Ê>÷GT>Ž¸r?ë«?ìí>@‚»<Ñéy;F`?¯­s>ûö¶?»ìÃ?ü?yë¬>ü«æ?BÔÁ?[°S?7??&cÞ?Azà?M y?æ2C@" v?Ô~å?|íè?Y”é?6éÍ?ƒ¿Ó?¡Å? Ö?ª›?‚š? Ž?[+p?‹îw?/–F>`TZ>'=±–:>/„?x*?9œ}?~I?z›ñ?s/à?JÔö?$ŸA?Ï(W@1¤õ@3Ý–@4ð@ ¦?¿?Üzž@ÅÈ?º‡? $m?¢Z©@Ä@ +¤ˆ@ \²?ä|f?†Ð?mmb?MÌü?OKú?`5Â?Wè²?P§ž?Sr"?>aÛ?c?«´?>¬l?€H?}b ?qv?•ðò?¸z?œO?€š?Å”t@Üã?Ѳ†?“Ÿ?TAl?6?4›*?mßã?£J?ÁÓK?®!#?£¸%?<àL>ƒù?yW“?Â]5?„t +?"!î?§?ª?çP6?ªž?€ˆz?IÛØ?‚º?V¸?”(?ÒÉ4?ø8?­š?Ž‹Â?†&º?€µ?¥m?²`?¨Ã?€Ã?+?…Ã_?­i?°ð@V0@dÕ?»tÄ?ªeF?°„M?¶¦´?wóç?TÕœ?Äßh?ÒS#?ûã”@ö?îAÐ?ðƒÓ?B E¦<¿Aˆ?ù?è?‹D^?Àê?®×9?§’?R’?n™Û?ÞÈ$?ÍèY?.À–??M??Oßü?i¨è?…sù?€Þ†?')?‡d ?§—Ÿ?©°W?«Æ#?²n4?ÁÄ}?±¶Â?0{?[6Ä>½nç>úã‹?wÔÔ?€“?ƒfœ?®f-?ÿšÀ?µ„ˆ>æS¹>û“9?²æ?—ë?7ç?‡V?Û’?¹ Ä? ?è?îÆ4@š@ +[k@7B?Ìz?,Ù?@q >½¥»?#|?Nñ°?“‚?²¤,?TŠ?2?ÁýV@1û?~f™?Äý?ù–²@!w9@†?ö=@ :@…)?îôÔ?äã(?‡p??sSá?´üø?ÌÔæ?„™?\ì‹?FÇ‘?B\?»I?ÉÿÔ?ª¸ÿ?©ç¨? #? ?ƒ××?wDä?§9=?¬^?°ûK?±‚Î?SC?5:¾@`i¶@Q¯§?ÊðÝ?Ò|?æ+I?ËÙU?åÄ>î–K>‘Pˆ?.ý®@Nò@ýË?ílÇ@:«@1ïœ@)?€Çß?hŠ›?"Ë3?y!>?îR§?ç^?Õ·ë?¢Ñ©>ÝÙ?ØZ?»‘”?ªun?rg?~Í*?z%V?YÉ?1V&??8œ?Mœ?u4¼?‘æ¬?Áéï?þ÷3?¿¼Ø?kb¸?±Ó?ÿqe?Ó½R?ŒSâ?ŒmÓ?—«?–m?›>¶?§®Ê?²‰a?v+r?7ô?šÐ“?÷Ç?»8ù?€qÔ?¡_?».?ßK@[?ÁX?Ž®Ò?ªÛŽ?¿ý|?´á{?°¯N?¦IÚ?)ê?ŸÂÉ?¥r?•£?ŠuÜ?f?”˜?À÷«?ðŽ @Iæ!@ƒ;9@U‚€@5•@ÊŽ?ýÐ!@#‘ë@:•›@O÷Ê@_$+@% d?þî°?•_?'OU?®Õ?å´û?å??ô¦â?´N}?†>º?‹^Ä?…O? l?£¢?9^K>ËD4>„hü=ðUÛ?Úü&@:p?çgã?xµ?›)?®é?ÇDl?Ö\?™fí?n @ ˆ…@Eí=@"|(@ +ìï?ÈTá?„£o?Õ$J@÷®?úøŠ?ó¬?Ãz?™ð5?ïkj@q@q@-?´ ?Öè?+¯O?8•!?®ì?¤8Q?é`0@(×x@_ê?žkP?Ä “@ð­?ëÒÿ?—uS?¬AC@ Ê#@@…?~q"?\úD=­YÃ>†Š¦@ @<0@\X¯@Qü@!?ù>S?¨ôþ?©a%@ u<@bØ?Øx2?¸]@'3ë@MS-?šÿIþ@“ö@¬)è@‘äN@.B@ä?´îß?ΗC@q „@píó?Á*Â?²þ&@Z«B@d?ã>h?°W?³àQ?· +ð?è„7@E›?î;d?ƹ?Êv¾?Î][@6‹@{ªÈ@bxJ?ÿár@õ@%ÝÅ@+ä?·À5?·}¾?¢­Ž?“ ³@¤Ù@Wÿ@Ž©@ÚK@9ô1@VG>@8Kó@JA?þ©?ŒŒ?jx.>ð®:? +½)?[ØN?SCÌ?ùEº@ S?üé?±<Ž?Ê?Öý…?ü«À@îl@¢Š@ +xÆ?×;->anS?"ý?êÔ(?ê}?µÌ?Âúæ@—Û@)6Â@S9 @ia¾@UÛ @F‘×@$’d?éŒØ@[‰@Ä@ $‘?i_?hû;@Å@ }@*<¬@)¨@'…»@*æ ?ý±=?²?©u?“3:?¢Ôn?­ºº?¬ûX?A,?q™?•Ø?‘ _@ÙB@B1?á9R?²]g@ê @C„¼@&3$?–îÇ?¤s@V[[@SÛ?Ç|6?¬BS@&#˜@GÚ@b¡F@iZ>@/$'?ÅF?Ára?ßû?éÔ@H?@H4?Üò?²>?«$Ç?°%¢?°pk?Ÿ|?‰ªI?W¨ +?‡fÑ?±?»"±>òFC>rm¨?4‚?«t?–„ç?‚߆?aç>ãr?% Þ?þ\Û?ù#×?Ä[?ʲ¼@x@)µ?£v>f2$? +ÕL?bK?m¢R?i?{T×==‹->¼–O>é[ ?±Òe@†?üM!?ä„Þ?ÕQa?ãœ?ù+œ?ÓÒÅ?Ö"v?‹‡È?aF?§íÏ?Ðk_?ì r@•„@ù?a‚"?a€¬?í??(?ÜU=@ €Ü?ýJ#?ìêü?òyÆ@á¹@cU?±à?’\ž>ô–‹>á²â@ÿå@;*h?ö?™¿½?¸tø?ý)ª?ëá?b?b"’?¢?¨Ûx?{E?bl|?’ÆÚ?©ò~?“6?bʽ?‡3z?×fÔ?àJ»@ÛÖ@L?›Üá?’©­?‡Ó§?Ž®9?}ýò?3J?0ì‹?\O=?W*§?=Uh?‚ñÕ?Ä?$HÛ?f–G?„¯?ýh>qÛD? ?r<™?”§?­ü?˜)Ø?.ps?)ê?wž-?8è?aÙì?hl>?+b·?EÍ)?÷eû@Âñ?¯º†?l“?$g?ßÁ.?º„“?`~?‘ää?ì*?àV?«“À?–ÒF?+AN? +[~< þg=¥Š¸>Ö˜>ãž->’ÄÆ>YOï?v «?…á;@«A@C|?¢PC?ròU?q ?L +v? +¸G>ôè9?$¨?±`>øQ—>÷>Íe>¡¿I>Ø[>ùDU>.Ç<ö%“<÷  ?—?A?!‡¶?@|ú? L†>ÿ™k=²Â<Ò@¼>„ñ¼?ØV?ó¼]> 7<»¢+>žlœ>Ýw½>­Å˜?’šì?(;Ž>ÝS>µ9r>oä ?G‚]>Â(&?}{}?(ØB> +¨j>÷Ïâ>õ5Ê>ñÃÕ? >Â?q³?d>ñ¹±>ñ²„>òmí>ö̉?mÃÑ?n$î=ÝJÌ=Š0>Îw>átV?Q‰û?gý?¤PS?µæ´? |?_*½?%¦Á>ñ°>ñ³>ñ±Â>ñ»[>ñ¾×?s;?SLÁ?kÀ?“©¦?luƒ>üV>[Ÿû?!S?,L3?g3£?aÁ?K*?k?§ì??ª‘?²Î>òq>™¹ +>q¼â?ó?1Ÿ?/¦¬?-«N>ÑÁ@>AÆ+>ÿ1k?fÀ¾?qé?rzß?Jª÷>ò”ß?9ü8?Ñ)?§=×><æ?r×?l.Œ=€Û=xd7=S )=-p\=¿Nâ=‘ý.>çX:>ÿÖ<>ókì>ùØå?ì–?ôO>‡”‡=ºˆè?£Ñ?bç!?hƉ?sËÕ?20S>£+±>ýô,?[??_>—l2?tk?ðo?áã?’‘L?‘y?Y ƒ?dBÖ?Óf ?Öß³@"Þ>@*ð?ƒÆÒ?*á ?‡H?Ÿ¸é?Y?Œƒ?¬»?Í?H#/?_·0?%ÖÓ>õ§8?GFš?Žï?^L]?OÐ?&³Ö?wY?‹B+?¶ô¨?’Ýw=å¸Ã>KÔm>öƒ?nQ?­öš?ª«?‰”m?‹@?¸tû?¹D€=êÏU?·Ð?.|•?’g—?œðé?TÆa?;®í??‰?BX ?J½G?;‡øc?[”?¦™?Ûx@AÝ?êÅÑ?†–œ?+2S:ÓŒr?ÐÄ?ódó?ÂN*? M&?Cæ?#áý?I®? ª?¤™H?ÇvZ?¾½ž?§&ë?©Ø?ÊsB?ÂÎt?z7!?xÇA?šôR? «Ø?„¸á?‡.?}°û?z¾?ïHs?ÿÞ\?*ˆÖ>û"?-?‰¥Æ?ßv?òâ?ÁÇ×?·ÆÖ?ˆ1g?yC?ö.>ó²?•n#?±Ž?–Gt?Ĩ?jÓ·?Gër?hŠ?|Ts>Ûéi>#ör?g›K?¥9±?Ì‚-?îB ?ë‘C?ÜîÙ?Åyt?¶ ”?ó¡@5T?˜S8>¢!¯?B4ö?7¸?Ÿå?±mè?¹7Ú?¾AE? o¿?„ ?~3?{=÷?=S ?.I?C'á?~,.?— ¦?«=F?m©À?#"?Ãëú@o-?Ѥ?T‰½?‚”?˜(?Rîs>èt‹?U‡ª?¤¼"?•Þh?kF?‘o—?º ­?Àò?¿~7?€‰ð>ÿnI>›$ +=µñE?©{@#~Î?éiÐ?Š~`?¡¹Ü?¿T=É~?—^ @? =a?'´ ?‘3«?¹!©?6QÌ>]Ñ7?r²&?¿²5?Àv¶?¹>ì?Ob>Ã×\? .Ë?)eÆ?’²y?±ö*?Ð?€yß?s($?oý£?ЉÌ?ü“ë?zî?µþ>:¦“=ÍÝè@0|+@k‘@\ï?êɵ@ ¨r@‘‚@ëé@Þí@ ‡¾@–V@oZ@ÊZ?÷Õ=?ÿº?É=Ö?³¥b>ÙG>žÇ–?fj#?ƒQ?÷4V@ì@îd@ñÂ?‡°)?€ö›@F@IP@rÀ@¨‡?¾šJ?ºqI?»ê?ÀÜK@‘þ@ G?¥?IA?Ó^?Ò,Â?©¬è?¡j±?™'Û?¥Aƒ@ýl?û¯t?Û#;?µ¡t?Þ¥?.ö?Vé»?}}Á?°6?¤?*™?·‰@I1?æh”?.?‡’•?ÿ.?é+?Äàï?wÌ?3P?a-°?ªÀ¶?@UÊ=û´ü?ø?xï?¢F?¹Øf?¼(?η ?Ê\à?‡ˆ?¡ Ö?Šm™?µ[Å?Çtã?Ál—?ÁÄ÷?—Rr?-X?;›Ã?`+?À‹?õ¶5?§Xí?…/Ž?‚7á?‡0×?ŠF9?Ç4?˜ñ?¡!?õ?Ÿ?p??[™è?W?å?Räï?ÚÛ¥?æ+??¨®Ç?¡;œ?×ï°?ÔkM?ƒø?°?€Ü?qòÞ?î/?ös"?Keú?@š½?PÎ*?FÉÄ?¶É&?½n“?Äl?Ī?…öƒ?˜Ä@æ{?ô ?¥aZ?•}ù?7ðC?MB?³¬?¹ðŒ?¥Ç.?½Õ]@:Ë@t?¸œ?˜Ó? K$?1‚?›g–?‡vµ?7š?3G·?mì¡?w<í?€ ž?–è¡?ÀE ?¨d?€‘ +?NÛ¥?ˆr?+½Í?fáÿ?Fe?#å(?6ì,?_¨?¾\>XOU?Qî?Àc?Òɧ?í›®?ÚõÅ”#?Ï™?ÄžÞ?ù`S@ œ?ö$ ?ç?Ð×Ö?ºm…?»>?¿“B?Ø:?ì'è?­Ø9?„:?0ç?°é@Á@?Oè@0@)†)?þÝÏ?Îdö@ŠŒ@"c@ z¥?þµU?…Q¼>þ›q?%Ø:?7.ô?2>þgw?«'?ì¾Â?‡{]>÷C?DÓ+?~Û?„¢?‚¹h?¥f¢?»gæ?ß,Õ?õ€D?ùã?ý°-?ü>ý˜Š?gfþ?ª+£?Ñx–?ß®|?•l?7?ÐZ>@!ö,@:ɬ@Fn,@‰•?Í„þ@ò@= +@&š?þj@ ‹“@pB?Àr/?%›Ø?€Oÿ?­Ï[?îM@“Ó@ +Ú?òl@„]@ ¤@øG?£ð2?­ýG?ÂW?àä@ ü@ +@ úÄ@%rJ@Yª@/¡²? +é?…Åù?Õ?¾!ù@ÝŠ@ œ?§ˆ ?Æ7‰@©¸@ T???BÞý?,—(?=`¯?Öâ•?Úêq?»’6?¸°‹?=&? B!?»¯í?Ágc?Á”‘?Äbä@¯1@f“?œi±?’1[@–@ Öw?Ëq~?À|?Ú8S?âér?·Ü ?ªé @•¤@¶„?±î?lçÛ@ +Fw@8º%?À+m>øö?‹u*?ȃ¸?”L?UÐ?¦òç?óK¨?ÓÌ?–:.?º½I@¤ @‘?÷«?Ñ‘?"í·?‰Lç@Ví.@9á!>Þs>ßU?b4?‚[@,Cç@4³¨@ +s0@ éý?ë=Ö?ÑÊý?§·?¦gg?¿Ýü?Âî?Äc8?¿­+@k@I€?òìs?æ™?éâ•?èÙÜ@Pz@z@ Ž @ }A@ +?ÎRø?¼³6?–ô$?›eç?‹Z]?•Ê@¿Ð@*î@w@·@…N?ï½G?Î|$?Ä¢@’@>O?á—„?Ì.W?Û¸¿?óˆ?Áva?‡†Ø?з@´Z?ôˆ'?¾È¡@>–@y¦Æ@V‹‘?´æ€?»‹Ä@+ƒ@e¯?Ó&?â¦Ý@‡Ý¸@í^?פª?{§i?£vÖ?´V?™tŸ?ÁÇ?Dr>î‡7?,rY?g:?¹Jú@-U@20Ÿ@ j@ f?«Pg?¯P0?í±?êëH@N”@Q ‘@øJ?î@æÐ@|Ë@ Rn@#ÐL@&;@C+@3@4?ÿI²>ìÀÍ?.³?§Ú?£ˆ)@g@³f?üÆÅ?æ¡ë?®L3?B@«1@2×ï?êœ=õI?Hß?Õì?Ò»@ ¼à@ Ü.@DK@ -R?í\p?ê8œ?áaZ?íèØ@¾|@ fÍ?ºdÙ?w…?g«Æ?ÒÌe?Ûr‹?¿õ?µË7?®?®Œ°@[<@o´»@0OÓ@ÉR?ãËÌ?®½?ª¡A?¢?Ô?H;!?s•8@˜µ@Š=?ìr +?ç Z@Cg9@bòˆ@|Ó?nìF@ ~@_ŒÕ@7öA?ŠGd?¡ÌÞ@Mýu-?¸@¡@J?ú@?‡*ß?fíÿ?c®?c?™æ?¢‡?ÍÓb?âs–?õH?üþ?Ú½ð?¥I£?œ×²?Íûe?Ýr ?pJ?bŸô?ó¦½@ ç1?ò??¾È?‰t}?ì¸?OP?â'z?â{> ÝE>*ûé?@®“?dy?oÏK?‹¯k?òÍ/@DBk@*BS?ŠÓg?…a\?§sŠ?©2R?\ì³/?7u?Tõ?I¶?‚q'?l=ã?|Œ°?^ÇÉ?·`}?àei?åH?ÜA?Ÿ%?:*?wi$?ª=A?Qa>i–>„§>í™>óØ?â˜}?ä™7?ÉÀ?ËÝ?Šü?Hôÿ?^öÄ?jªz?kí˜?kN?fna?u()?Žè?£QÇ?°q?‘ g? ~£>é®/>Ñ6¿?3] ?Ô•>by>Œ0S?dé‰?“_Ï?¨¡ +?·Û?±§ß?§@n?u2x?nnŒ?#ø>ô»:?ƒê +?±Ø÷?LÖÂ>öÐ?qlÁ?ŠbO?ôn?…š>¼iõ=¸º?5í%?l J?¦2>ü´«=Ç=a>ÚÜû>ÿZï?5ð?ÿ’?·Â>ù«Q>´P\>ÙÜî>™ÅX>£d{>.Ÿ¸=8îB>Ì$«>ú"‹?æ?ºKq?t+??_F§>ˆ¡S?áq?EŒ{>Ï£ë>Š:>…á=8X#=QRâ:ÅÒ6>`#?c}]?ðº?ŠÞ;„›Œ>´8ì?qµ"?K*a>ñª¢>ñ©L>ò(½>Áå<W$=¤Ão>ñ˜ƒ>Ü÷=?`=•Å>á£=>ßb]?c„?f ? »K?¨H>kxŸ>DzT=Zª>Æ…”?qÐ?¿S>ñ•>ñ™Ÿ>ñ˜^>ñü>ñ¡x?ÍP?>'?GÖê?‹")?`’>¢ ý>¯ +›>ñÁq>ï$z? æ/?#Ü?œMY?™ÕÎ?¦tV?«´©?ƒ<…?t=ï?<o?2ÛÔ? {?,'?V¢?r+J?‘• ?˜ƒÊ?W>'y}?ó?Œn?EX•>¯ž×?ãœ?P†‘?Iøç?CZÏ?@_¢?^†Ý?Z£-?²ù?3à?{?-§?±î@?¶Iæ@*•@6S÷@Δ?íÍb?¿/?­íÁ>áO-?Q"Y?­U4?¬×?ªØM?8’ð>:èF>óñ€? +eL?$½à?N´??½¨?½› ?÷ä?ýC>„lf>„Ú\?u_w?{ +ñ?ÛxF?ã_"?†½-?tÜÞ?ÿZ>ö6X?6©v?QØ)?Àà?‰eP?ôÕÇ@du?·×Œ?0Ù?¶µ&@ º©?ÒFV?j)m?Û?¸1Ì?¤2?zö~?XoM>àJš?A¡?e9J?g¦ ?‡{?Œ¨á?ª)£?¦ ?wj?SR?vÖ/?ižG?ÍÅ?Ìχ?šÄ ?˜ü?P6E?6f¹?30ã?/ú’?ƒ%Ø?œ›û?uÙù?Pô?ßv>ø#‡?0I”?I~(?ü>øp2?2B?l8ß?ÆU @ÚG?ÍǬ>ø >¥ßD=ÛÑð?4gð?ä˜h?Ïî±?¦[Y?‚Š >¥ª?>ï•`?d•­?xà‡?‘µQ?–Uû?­œ|?°®S?Ÿ½ñ?“Á>{Dò>‘ÿ8?4yœ?1<›?z)Ð?zmÏ?(ÒÏ?/Óü?>úó%?™o›?¥0‚?±Çç?´wï?ðH?†]S?ÈJ>û†w?cç?v¹0@Ô@?1?s¼?¡Ü?æ +@ K÷?9F9>‰¸è?U?}Z?á'½@+S?¨ñÜ?|«??ºMZ?ÞØã?΃Ì?ÆHL?ÊT?ÍçK?«È´?’q¦?¬RÊ?½ÿ? y{?‹ „?¨–æ?¾0È?ºm??¹‹–?p±¦?‰'?ª,~?öŽ?±F`?~&?Iãº?'˜?Ÿ9>Æx‚?$\1?j'µ?5ÿ^>þ˜?p3?¥u?™ôÆ?‰??`?sP'?wµC?Š+?->¤n?`¹]?¬¢y?Ž„?Y??`?+·N?äű@1zª@'º[@0Â?‹ß <92×>›}¹>ÿØ¿?§h?ïm ? ×ÿ?O<ˆ?¢œ¦?Ð>D?už?‰?ÖÍ?°Q“?£¸'?'Q?­ÎT?ÀcÅ?™Ø?œ?oÛp?P[è?‡øÿ?”ƒ?×Ï@%‚? ?hƒé? (}?xK?”#a?¸i™?‘‚¼?€Ð³@iƒ@áÐ?N7_>ñð8?„…´?—Õõ?{ò[?}·$?†ó-?Z@ +av@uE?è/ç?ÜêÕ? 8>þÄÖ?© ?³—µ?6©?ŒÕ<ñ}›?®|¬?À¢@@Žx@»ô?‚/g?ƒ{@2@3D?€ó†?]„?‚Ë?v™`>(B>“š ?ŸC?À’Ø@7Q@Gç>Ûh²?Ž?3W?c&ƒ?¶-W?Ð +@mü@êâ?Ëîû?³n]?I?p©?+ä?O‰ ?’X?D·?Ž-þ?£h?Ê–)?¾©œ?³™Ð?a_AÖbœ>!à?$ÏÙ?‰ø7?qg?Héñ?V?ÇB>Áa/>”Æ=?­¿T?ý}O?×’Ç?Á·¬?¬j?žM?ˆ"(?#U?“*†?“)£?çT&@Ž@&1@ôÚ@3-¸@4qé?ÓÒŸ?¶µ?´‹$?²^[?Ú?Úö@@]y@¸è?Þßè?ÝÙþ?¢f|?¡¯k?çmµ?ð ?à?‚^Â?Ø-£?Õ)g>„ß>©Úü?õÓ+@@AhÔ@,šè<Ð.x<ad<¬*¼>µ½?÷/?Ø+“?;šÿ?0U>«Ö>à¸?&Hã?qºv?åÐ?ËY ?œ~š?©W‹?Á >?ÐE@·%?åùÀ?©øÆ?€?%¶—?cN?ª…ä?„ox?bÆ?5=?w™¡?|(Ö?€BŒ?_Ž?€‡¯?•ê(?¯K5?˜o?€x•?¥î?ÊÖ?¥Ëü?y5?k"¸?] ½?“­U?Àƒå?Í$?Ié?w??“?—½E?œt›?Ý+B@ÌB@8M:@g*@/HÛ@!À@‹@gÁ@ (q@ ±@@Ž˜?Òa?ž•Å?*`>¡J ?ªB[?é~ƒ?ò?ÿ?ÿ¸[@s'@Õ?¼q¯?]’?¼ÜÉ?ß`?îÈË?ê1È?¢ˆƒ?KO?©uõ?¿e ?[ô>ÿ¾?š `?Ï£ñ?öu!@¶£?·[n?4?Â$?æº?Äø®?²à?PÁ>þ‰¼?+¯u?GT?Tä>þUâ?rœE?œV¥?ô‘@ã¿?¯6³?c/²?Ôžá@#‡?ýÁ?úi)?³§M?M?ÖYA?ýžš?¤¶?VÊt?A?š†?Ò:?ýK?²i5?}-O? >2Ìž?‘÷@*°ž?ÚÀÙ?6_ò?Ýý@1Éâ@7î@<•ë?ÛìN?$I?QL?gĪ?I>¾Â3?¹ãl@(V3@!§ð@H”?ö¤?ºG?žE?{Ãl?Ž±Z?œvx?”Wý?—¦Œ?D÷]=e<,?/‘®?ýôû?±Z9=}X?T´â@(Ÿÿ@V?¼+9?Êmö?Ï‘¦?Á·3?¬°1?¿œ?Ðdà?»S/?”Lâ?šË?Ò¥§?Ç“ ?ç¼Ä?ÛéS?êýÊ?ô%0?ù s?ö ½?„ö¾?††ë@ž@åö?Š¿;?y8¹?ž—Î?¯®b?íëÐ?êþ¥?®m0?¥Fë?†Ÿ°?xž*?Åu³?ç>ý??9i=Õ‰Ö<÷.¨>*|?”ó!?Ú +‚?Ìk²?ÊV ?™öS?IÊp?ª'ñ?útò?è$à?ÓWÑ?¸l¼?“?§û?ÑbB?á±?öØÅ?õ¾Ì?÷µù?Ú-=Zþ’>lv#?Í… ?È¡K@$=ó@ Áy?‘¸ò?™TW@ …E@r?–‘×?uˆ¢?Ç´?á=Œ@ Œ@±ˆ?ßãC?¾×?þf@Óä?ã|µ?·v@6©@‰›K@I—;?Ö¦|?â¨Z?ô g?ÃL‚>óÜ?

|s@nù?éX>®l0?œ—.@ë˜@Z¿@"°U@ Yê0 ?á¹›?Ýa…@˜š@–»Æ@8ß&@#pØ?·TÄ?k¤4?„…!?ˆ÷?÷’U@Lªý@/Äz?êòu?ôL¸@°ž@¡/?트@ÂÚ?Ø]"?Ôéÿ?uë ?&?"?®3ü?͘²?uÙÄ>étÕ?[”?Ûñ?àë @t›@ñÂ?ä.;?Úöµ@JЖ@dÏE@@>/@.!’?ût ?­ú?ÁE?Úƒ+?Ã1o?€œz?{ã%?Ó-?á*^?É.D?ÏDá@Ïê@-@h@ª.?÷ž›?øf…?ï®ö?“æ£?ŸÄ£@,k°@,XÕ?¬–?Œêå?Ëšç?æ$&@$I@6"ã@ç?˜(?¢68?dÐ?eؤ?„Òž?¤É?é?ï9J@;Ù’@S‰6@ YÙ?¬÷Q? M?F<,?€nü?ÊG?µº9?Bƒ?H²?a;?jc“@°Y@g†½@3 Í?Àkò?Áµ?¡¶ª?—Q7?§y?“ž<@ót@)}ì@ 4@?âQ®?–ji>(êÄ>Ù–$?É=>?Î|?Ã?‚ÓM?Ê+×?àŠÁ?žqÎ?aÈö?‰bû?Î~‡?å ï?©=È?©3÷?ÂÎ\?¸é ?¬¢%?§´?igY?9Þq?ßõ´@UÖ|@AÓ?¿/‹?¹ j?g#”?ao{? 4?BÂ?Uƒ²?Žó²?Ž\¥?hª ?uÙæ?Îu½?Ã!„?ËIM?ÜqM@cª@ ¤?°?ç?>Õ?÷Ç?£Ò?°Iš@ ?†@ H?¯eŠ?§Ëç?›%?ŽÓM?…ï½?Š…?Æ«É@Û¹?ð;ô?ÌÌ?×-›?¢Ž²?½tã?Ï€?¤‡;?dz?^a?dŽ‡?g¶?«­Ç?«Í?Ý“¨?ål•?ª?¢ ²?­¶Y?³»{?f¼°>$Ý?›;?ÍÖ—?Ëâ?Œ´ª?€›?g¾È?^̪?RMï?)ë?§YÔ?¯¯?L¿ø>éó’?7i ?m¨Á?0×>“H>ÿ×?‚; +?H´M>“e4>Æš=ŒÜ°=¨[>íõ>îXâ?ó*Î?åÝ?[ >¶N[>²£=>VQÏ<¾d†=‹xD?Ph?ŠSD?[XØ?4ë‡?'?ÿC>ðÔZ>ï·Ö>ús>ö™@?/î$?cÇ°?©åœ?΋?_‹ª>ùÿú>ü y? »Œ?cB>üoé=Û‘í? ¨½?¯?­q?¼Ö˜?h2>òê=¦–>B÷r>¯“Y?tGU?Q߇>ó+?ÏB?3Ü"? +HË?‘D?v?†1=R’k<˜€=Ét÷?äM?š‹Q?Ý!M>Ëu`>gT–?É=?thd? +%U?q¹&?qµ*?q°I?9-ì>ó]Ï>óz">ñ˜˜?#œ?m’?HR¹>æf>ç á>ñ…Ó>ÅLO=ä‹Q?eæ?W%“=Ü0 >.’?£÷ð?£áÅ?škÃ?—œ¥>úhç>Åa?A½æ?X©€?X>ñ|>lA¼=óB? 7‹?P7 ?Nµ?M3Ù?5\×? L?RÔ?Šˆ ?y 2?C¬?7φ?ìO?-ÓN?µS?ªZS>ñÑy>ûÿÂ?´ñ?µmé? + Ñ?|Á>‡2j>MŸd?Œýæ?¨‹“?Ãý?×´€?„Ü|? Ž?‰#“?µ¸Z?|}¹>øƒ?es:?ÊQM?DZ?¼Ç«?²l?a!9?k.q?±þž?´Ok?Ü„>ûž?àï‘?ó1>Ô”=þŒ¹?-õ?T41?¿××?é/Â?¬Œ?†°°?2=ê>µÝ$>wÙ>·­??¢<¦?”1°?tÜ?‘ú?”=Û?“8¼?{ +?mß~?51Ï?0ÃÁ??,‚?B/æ?‘ý&?ë+?qdö?yGù?1Ï?3 ?“<+?©õ@?ði@É@§á?õ~H?™¤?#ó‘>¨“=NÑ >oݲ>÷ãf?/—¶?v ??  }?ãÆ?³]ô? ËÊ?‚(þ@ O@¢—?¸ýj?¼Ê)?ÑVå?Ãö?i³?†Ã?ê™#?îÐŒ?¢Þg?›ŠÀ?E’?>%>?¦±?®©?8a(?ÿ—>óÛ6>÷î®?“5?:“?²»Ý?ëöÂ?ƒrL>ød?d…?qÔ?D£>ø¯>ùë>øÚ¬?½Øð@.¼C?×ãI>nL?3Y&?ºû5?Ÿï®?@ q?A›S?Uñ¾?‚ŸÛ?ÏW?˪2?È6V?Â:?»Ž?§ +>u 2>´=p?³f™?«|?z†?%k?Œ#?~¿?ÀM?‡³×?0í’?)Ç’?Ÿ…„?›tË?ÞÐ?ëñ¿?5Z>ú,?¬¬G?¹Äð?ÄH°?Ê º?„)÷?g[»?˜Û²?§ó?_?5„i?C²?S¬k?®Ï,?É‹.?å:Å?å?‡?€x:??ˆü?CS?Gé?ˆÂ€?•¨³?¡‘)?ªwú?¬a…?®O?°?T?²-³?­šª?­ò?‘’?}­@?Ì3;?ü«-?‰?6z?ó?·×$?Ò5?Þ˜ï?w¯À>þHË?8N?Yøî?Ÿnï?¼Oª?£??™?-?«™‰?ºý•?å;æ?þÚ?žFú?3Ïè>ÈV>2Tü?YCÐ?¤kE?Å!á?âAö?¿ÑÇ?ªLç?’õ?€%?ÊÛÏ?üÊ`?±0²?|ªÿ?xî?vu'?†¯?‘)‹?‡°?û?©!Õ?À _?Yrt?#?…ö¸?§Á¬?yO}?c9?s"-?…>>ÿ˜*>^>ÒOm?I¨?›óÃ?À~ª?Fî?^L?>i{?GiA?;m?/p ?À?z"?¢iL?ÀA3?õ’É@z[?¿@ê?©6ó?³T?µ?§L8?¡Ê?ioâ?YV÷?ï”e@³Ë?ê1l?åXÇ?#µ?Ú»>ñÈ>áBÌ?‡éd?‘¶?7? E¯?ýÁ?€ñ?×ä!?Úxr?nÇ?j¤N>êÌ“?6?{9Þ?‡+ø?¿Kq?­pä>é¨?Y{?€ü?¥/|@/µ×@'E’?å—Ñ?¿ }?'0”?5Žÿ? +È?ž¹?¿ A?¹µx?˜²,?¢?$ ?„ž?³?—¶c?Á£í?¼ç?´æþ?Ý0ß@ ²&?§‹Ú> ¬×?8~Ö?ÁyÌ?Ý0?þ’¸?Ùš®?±íŽ?Éá‘?ÝøÏ?Ä%?±dF?#Á?/U¤?1@?ÊÖz?ëÚ?¨w¶?z¨5>êW>X¤;?‚Ù(?®Çc?ºß‚?Á¬~?ÌѪ?×a¿?©éê?•>@ù\@¬3@È3?ÿZÅ?Í›t?ÆΓ?Ï6¨?ÖPK?õ±C?öì?Æž÷?Á–¾?¦e ?¨Îo@<+@A­@Š~@µÅ@:@S8?»¿â?¶#Q?™ûÛ?ëß?èÿ?Ñ™#?Ar?c ¸?ØþŒ?äã@.ð†@7>öø?)òÕ?½Äe?®É?Œ¾?h´=¡pÆ>*< >Çk>ý¿›?[‡?lû ?žzJ?²£?Éu¤?×6 @¹V?÷èè?æ_?ͪ8?—p1?£»”?·CÝ?á¼@õC?æGO?\î?P˜”?$Z9?>ƒ?؇?“¾;?ø-y?ÜÃ?À·]?aÜõ>Zã,>¾ö€?¢g?‰N»?À“â?Ôvx?å Û?жp?À}G?vræ?I~>Ê%r>§ }>ÝMv?6ï?Ó Æ@ 9m?ÛªÂ?Q7?ÔÉé@Âó@9ò˜@^ö¹?Ø~)?#ä[>ïîš>ØH?èÙj@ ¤ +@eç?ÙBê@B@?C@ bz?ÿª˜?¿ ?œ„i?;Å7>ÿ©>þá5>áî£?Ü¥¤@Û'?Íwë?‘W{?«{7?»ƒ?ëâ_?ü»?{|=?Ô™?,ÐÇ?@É?o­·?~Ê-?½ÅÛ?Ô”ú?³Èø?¤È†?¦\? ¡?_áà?5‹?¬Y>þPu?3Óc?B-Œ?•Úá?³ +'?#ù&>I¦&@µ×@\ó@ îd?Â-@?–nJ?}µ)?Zœ?Uç?t(­?}n?µwâ?×.®?ïúS?ýA‡?œ—f?Fq@?Wö¯?V+?K+Þ?@3@v@atA@Cn?|¶„? J«?½¶ò?¼ƒm?²öI?pƒ¯?¸¢?`ñg?Œ Ä?ž`•?À›?øuó@žé@ùg?Þ1†?ž= ?õ²?¼Ü!@*½@OL?ï«?»×“?2Ü7?¶J‡@;Ñ@rò?®Þ?´ëÒ?Û:°?ïÄ@ph?þøk?ú²$?ém?¦c\?©µŸ?覄?ñšª?ÒEå?ç@BT@Dj;@;OÙ@7Æ0>ùÛæ?E @|@Çê? a5?v×?¢š7?®Aà?0š_?*#?³ž>ù ¼@½@-*(?£¨?xÀ?xª»?x”è?xƒ?xmI@ ±!@6G¯?Î=K?gSã?€ºù?‘F“@D$@Lÿ”@ sP?¢ý?Ö¸@ +ÏÕ?æ]ç?«úà?§§â?‡¹e?kVÊ?Bu”?ˆx@‰õ?Âî—<òjk>6^W>Ø*Ù>öòÿ?—Ôj?¥Ê¿@4¯@_þ???´?7÷?q Ö?u°Ú?À'Ë?»²ê?„wÂ?uSÒ?Ór ?òÚ?Õ¯=½;Ö?¦Wå?ÿ¿¤?¾Z?Œ[à?û=@@XÈ@#&n?Óä1?Ëî³?Èû ?¯y?3?OÂÖ?¶¹(?¾mÅ?ò”Í?펶?Ê°ì?Õ¢ò?©P$?¤e$@ U@ mÛ?ɪï?µå˜?™c²?uÐ,?öº[@Ê)?Ï?|£?8a,?‚µ?~?è–ƒ?èÿƒ?ñLx?ß¿ô?©??­6l?”­®?•Îû@ 0†@«?õ°Ü?ßœ‡?ˆ_?t?ÒO«?ïæk@w@ɱ@&)@ §@ à[?ï`v@ÞÜ@~@@®@ ­ü@\#@O6@-@?éµ?÷Ø*@ø,@Ér@3Þy@R£@/¡?´ +@O@V‹ó@ +*œ<ô2I>’.ª?§$Ð?™-ä?Ž +»?–{ç@Lž^@e,ø@/â”@ <ª?¢N?I{¦?Õ…¹@ +Ÿà@ +-x@Vu@c§@(`Ý@!3¼@©é@ÐK?·½?®ÑÒ?®âÇ?¯•å?˜Å,?™h@gýO@«)Ý@a›?£Õk?Ä*·@ +l_@ æy@•Ñ@±@»Ý@ôÞ?íÌ?è^ @"ªV@0ŽK?¹â? y?%*ý?K½P?]%Ê?Sˆú?jÊo?Œ'ß?‡h?M€l?R,@ø@.¾@ iŽ?í•Í?æð·?Õ©€?Ùãè?ë;?åÝ£@ ×O@@"¹@¥4?ôÑ}?å[ @âá@ø¬?æ?;Þ?Jp?;o?Šç”?ÍRW?ÃPÎ@,è%@C«?Ù?˜"ô?Ò>?ëÚÆ?º©?75é?Jk‚@E@N>Ñؾ=÷·‹?}^á?¦ÿÃ?ßØ@’…@Dã@¸8@ ½p@ÕL@Ÿ‘@îS@˜w@<ó@E)?ñÍŽ?‰Ñž?o·?É;>üÊ=?Hje?h0Ú?ÇRú?Ó›r?ÞŽ?áÖÀ?¼ˆ2?œÚä?‚:6?3:?Oíç?¿˜Ú?º õ@{@ãÃ?ëq+?Þpk?³68? E?¸®@º@ù@þ@½Ð?GŠ`?S.u?š?“?‰Ë?€3?ahp?‘0º?Å.?Ë› @Z@kN?OC>å†?`Ȉ?Žwþ?r5Õ?6õM?7ˆ?Ê[?Ï è?߇?ü8?@ ‘p@ «@?â@?ÒÝù?”üm?brc?­@ð4?é; >âÖ\?RG@;Æ‚@,×±?˜ãH?ˆ"'?Êß?ã¦Å@b°@°+?ù/à?d-ö?d[Ò?d¯?j×Õ?Ì ?Æ B?¾FW?É›s?]=‰S?€¤?Üú¹?":>-ö>ØäË?}ú¢?“‰Ã?Ò¾Â?ßÏõ?hp“?h1½?‡8>è¸ô?s«H?•™ ?<”|>éØ´?hð¨?¯S?¤².?Œ#’?—?ÒCT?°Í->ñ[G>®]ƒ>í¨?­ ?ßr.?ËK(?ÿ&f@9í?†À?oËÊ?Ÿª?­Ä}>šñ?3wó?rmk?ræ€?s]ð?@o??Å;>©åü<"*ÿ?he?[g>Ð$j>ay–?7¹L?xž ?òŽ>èA´>ú>©>úô>û’ >ü/?…Œ%?vÏþ?[™„?k½)? æÃ?_©?e£?Vð`>–ZH>~ +>«kS>èÆ? b?‚°?jè>Ït>»«$>¨‡Æ>UYÎ? ch?aô=«¬;œ@=\ø?!ƒä?Âs×>úE>)? ê>‹ Û<oñþ>÷\´?w¼?*è\?h T?†`b?©á?ˆòÁ>×=[?§õ?­€†?’?F=I† ?†‘?!Öÿ?$/·?&˜(>øÞù>ñ^È?˜?³^>K-=õõ?F•?.qÊ?Š‹?¢ç‡?\¯¶? @>ÀDL>)£µ>¦ƒË?¸¶?8•Æ?q‘Ç?Y¥;?,ù¿?_ ?µ>f?¬B?tO"?ln?v^î?tý÷:Û“–?$ñ ?)Æõ?‰Œ$?˜'?iÃg?Ký?€è»?‹‹Ø?‚Ú[?„X´?³¥+?Õ—Œ?ƒ«>Á…?@™?¡ÀG?£ö?¦7]?¹W?çm ?½4é=U³=¹í9>öè”>ç/J;“€lkè>áy[? 8L?Éj?ód;@†@ñN?›qî>ó¡9?l)?'§¨?^?¶èU?½›¦?ÃVK?´æË?œ4?˜Ê*?—ß?™ÿŽ?–Ç?’¡?aœ+?W ?d’t?m<ýºÔ??H?Túî?…F®?‡®g?gä?`Ì?½$e?ß{€@'d@½»?æâ¦?¹£Õ?—Ô£?t¢?î¶=xý¨?(€é?¿…T?Ë#k?Ø)ª?·;@?~ŠÞ?ˆÄˆ?‹‰?j?¢,U?‘©„=2¤?•Ek?–ëö?˜‘o?š6Ö?o»>÷_Ç?ΰ(?ÞÅE?¿rq?¹Ä%?—3?†ð?¢Î ?¨Üã?–L?—-3?cz?. ?H%M?dã?5I?ðÄ?@3È?viÃ?Ù.D@ßw?ùZf?¢Æ}?ÕLï@OV?Îã?‚.>ý|Á>“F?¥?¨šj?–ü +?KP?MUy?-z¸?;¼»?9=Y?sV§@ +m¸?þîå?zq˜?•©Þ@>L@<£@ I–@^@?£y¿?ªòl@7¹@8v?>Lo0=Ö,zÑs€>‘3??ïd?P—j?sW?|c™?Ûåq?÷õý?›b}?vêó?C†6?3B:?}z‚?QÜ?„ì?}E?—Ãe?/?¢ ?ŠÕ?)”I>ýt?OL?uÐ?y« ?}V:@@6&£?¦—®?ft?Äh¦?þ?ÃN.?¡!>?TÄû?$`„?]B¬?‚þû?Rë¾?3î˜? †W>ñ“Y?å:E@+?¿ŠA?~ä±?,dÙ>ÿ%?”™Ý?É´?›—'?7Z?+ÑV>ÿN?^t‹?† U?¥ý ?ºË?é÷?ýe ?~ƒƒ? ï¸?[ "?Í>Üô>N«^?Žc.?¿ýÈ?¥ØV?–kÃ?oD*?c71?dÖ2?SÞ¡?y$ë?zÛ>?rë?mÍB?†D—?†f*? B«?¬þ„?…$>ÂÉu?ªŸ?ÒÓæ?â‡n?ê_=?RJU?\#?Ì“?ß? !~?°[?S+?ˆÂb?ºhª?ÀÛ¯>ç›é>Ãd?¥Ç?¬žÿ?úþË@©q@¬Ð@°??¦ú? ”ø?ž“ ?œƒ±?hm?gb@ £Û@ +@Îd?÷Ý‹?7*H?/P?&á?¼Œ=-zñ<ï—*<ªGŸ=¦‡f? +­]?7¦Ñ?´L>?’#Ô>*{Ü>°êà?w%=?š0&?ç?ê?æëú?ÓìÌ?¹­’?`?–q‹?Ãm¦?¶Ì?ªÛg?Šn?\?c¸X?¿SÏ?´÷ª?°ùŠ?’5U?Pf9?Ôâù@1¹@ù?ùþÍ?Þ»?Á4w?ÂÏ?Å›c?¥6Ä?‰F†?‘5K?™áÚ?²¿²?Á£¡?Ÿ¢S?ƒ(&?2qd?Th?¾‚¦?ü9D?¾û?¥#­?‰pý?l'?¤‚¬?¾¤?³[®?¯`¬?F2>ÊC0?ŦÆ?îÄ&?Êh+?Á™F?ÂÄ?‚*Þ@Ë÷@nþ@D@Ó?ÓZt?Í @ï@nV?†Ï~??×í?ãB@Ê @ ±ú@Ê@}V?ª¼Ñ?°í.?¨¿æ?º,ð@.ê@#%>¾©‘?†<@¥.@Ï?âT>Ü´4=|¦{>[ ?‚Sã?ƒ›E?€Òê?C‡c>bÒ?ÈÇ??b{?­Î ?˜?Î?QÓh?~þÙ?¹_Æ?½Ý™?ÂZ ?°3?‹Š?½¡Õ@! ?øÑ9?úá?ï(=?Ù=©?Ž!~>Q­8?–°@˜M@éµ?À& ?£V?‰ñ^?^\V?%ã4>¬æ>Å”7?6'Û?{w? áu?_àˆ?”ã?™? öº?U7]?@ž>UX>Ç"?"¶³?½ÐÑ@*@ +s@Øõ@av@ ,?ÆÝ?‡/?©²‹?³]è?„‹ý?SS·?tVC?ë¯?E?“]?=9?õ?¬æj?½ È?ÀQk?¿¦?Š‘Ö?]Z ?´½€?Ñö„?T +Ý>ÿF?¸sŸ?î6‰?˜ “?q5£@Ÿ7@>?¶ +?rx…?ma½?hEK?/‘º? ?ΕÌ?þžc?лÈ?®@N?ƒÑf?gÊK?Ïìž?ø ¼?ÎFô?½º1?¿>œ?¾Le?X"?ìð>‚ï=íúV>ðzõ?'&Ñ?ÐgC@ºÎ@µ‡@ê‰?«%Ó?4Sº?‰(­?¨JÜ?ªû?­¬x?°`¯?³¿?"Ü?r¼y?z!ì?}PX?Ñ?ƒÞ˜?¸ž?Úˆ¬?á;?ëKÍ?Ǻ)?¦Š-?½\ù?Ù ª?Ì¿²?¼Ù3?‰f? Ÿ?oš?Æ€š?Æ£—?¼‹Ä?Ýø¬@ Ä8@ +õ ?ú¿M@À'@Q ‡@nî?(ê¢?Žï@Á@ +Ga@N™?û u?”l?ˆ3 >ú[0?;¬E?ä3y?Þ>?º>ø?·‘A?$a?H¾? ??Ù? +¬Í?"'>ù{ >ú”ù?ܺc?Öý*?åß$?Ú°?‹.b?!˜?Òú˜?çê¨?¡·Â?a£?J?xƒn?›°‘?™go?$ñ>ôK›?ºçÐ?îQÖ@ñ@ õ`@Óè@qö?¸Ý5?×'?ÅØg@³ö?Û:Æ?]:f?²bæ@ˆï@Z?ëÍÈ@âB@0;Ê@—a?pD\?z=G?¨+?°PN@Bu@òÇ@6wÚ@.®ÿ?uÞž?uÈÛ?¬ÂC?§•˜@ Ü$@/Ê?­ã?‹Žº?´&Ü?º¿×@.ëô@E£U@"«Û@‘?ÛHù?¤{Ê?™+k?”+-?²Ð\?Ø@+?ÈÂ?£D±?ŸÆÂ?©gµ?ªý?ªp?©.¬?vI‹?ŽBŠ@V@ ¬S@±!@ @v)@Ò?ÄÞð?µ×*@½†@bÓ@ø @#~?ø–ô?¹ÆB?4Äï<„@?}¡j@óE@F@8¿»@(õS@CD?ð` ?ÏÖ‰?Éÿd?¶Xh?ÂÅ@jÔ{@pCA@„0?ï¯K@8@¨@G+c@4óÚ@,-þ@Lú@_<*@ÁÒ?–¢?¸Tò?îõ%@ ”®@U°w@N:¬?ê?ï³S@ïÕ@Ü!@žÄm@›Ñ¶@aN@Pi@?l@,ö@à1@ +‘Á@hÅÜ@¬>g@ri?G?°Î?uÜD?‚Òü?¤!@?ŸÉß@+\×@'œL?ýï?ÿØ? { ?T“Z@nü@sa‰@YÃ@/å'?ø†>Ù²ß?Lƒa?Ó¦R?â)â@%@f\?åJ?Ô¿^?cÓ—?q?²Uª?뉨?¸å«?wAF?—ܨ?ÎÍê?Þ°@ø&@¢P?è©û?è?Îw‘?ÓÊÑ@?´E@e¯*@1Ûx@TÑ?ºôÇ?G}‚?P¼?uŸµ?ojW?­h‹?­T>?€u3?L™@TTö@ª„?óÊ{?&±©?‡›Š?¾ÇÁ?Ü1ñ@ÁØ@ Ù +?¬^?¬Hm@#éÁ@7ë?៽?®…ä?ÔŽˆ?ño¦?ßÕï?¸µq?¡ü?r?‡¢?ï¤+?þj?·ø&?«HÌ?Îiè?Ô&N?Þþw?õÚu?×µ‡?å ?™ÄÑ?ÐÉ0?ÕÌñ?ÅX‘?´ö.?ýÂ7@éA?Â{?ÿ?ð\M@F|9@7¿¸?ì<ì@¸?­;n?©áb?ÕÐ?í½? ý? ??NVÙ?‘ý?€„?’>ÀyI?_v¾?aßî?bó?oÜÀ?C)N?)ÝŸ?©ë@߇?õ²(?ö#?ð©N?ª9u?©Ó>š3>>ó}û?0±?•Óy?ãð¢?ÝÄ0@ØZ@GŸ>.÷Ô<ä˃?ƒ<ã?©E?ˆ•n?ab¦?±×ì@ +à+?úß?´ìØ?Æd?€/ý?`h>ˆÒ§><ãI?‘˜Ú?Ô'?º¼þ?©Zf?j>½Ã=†í2>ì…í?*]@ £@GG?ÞÉ?§òt?œ)—?Y°?hDš>ñ1A? •Ô?öT@Ê?‚å—?cR?ž‘è?»ë?½_å?²ýU?—ë–?d L?QW{?ûÄ?')±?äÂ9?äí¢?B»b?6[?«7?ªH?«Ú­?·ÄÔ?•Ñð?6c?aªD?¢Éÿ?‚«Ý?g]“?gp>ñþª?ø>îêï>è£q>êt? Rî?>¡1?1§ã?ìýñ>æqO>^ïƒ>ÜÿÀ?kÑ?®¤&?|aÛ?o«þ?8?y‘%?¤€m?Ÿ;K?=„?#îX?2or?@ù +>³H=®¤.?%a ?nº!?+?…Ì>t–`?‘?V¦ª>´‘<“7ø>¨ƒ>úºÈ?:ž+?H´ï?ÃE”?ùB+?:Ê<>áxc>þ»>ÿå->u>©\2>iª­>Œ$•>b\>¸„k?»~‘?ÀnŸ?±ÊÚ?c¿>¡P˜>6è>¨BT>>ÙC=‚Ú«;…²w=ø!©@n?Ê'Ú>Ùp>@¶<‘±„< “üè°>çC>æ¼>å>ö_è?)t>l£=Ïo?EÙ?âf’?†!N>ñbö>‘7=Ñ´>ýP•?€”?vv ?`«K?i`?ôÌ?xwï?Gü~?#‰j=¶Žá>+%>ñI†>ñI–>ñIð>òTF?R>ó?R9?4ü?-ž_?dPj?qRè?§`Î?µë?@UŠ>ñdf>¼.6>–µ¿>èW™?‡f>éÛœ>ά‹>«sÉ>[äß? +~‡?•øƒ?…¦ý?9ƒ9?5 +À>ñ¯>Ö K<És?A­?C™>Qã>)—‘?V¿C?wà?Ž™?“þ?ÔU>s~ ? +æ?=ŸÆ>ûªÈ>„eÉ>³\£>ò`>äb.>פt?FÛ?rŒí?r˜?r¥?r ¬?rK/?S –<ßV?F?!“Ñ?ØêÉ?ÕÂm?ØoL?ÕÎY?™ª›?’Aq?ñ‚@Šã?¿/p?“ék?‚BL?s®…?…o?€—?®kÏ?Ð1 ?Çh?· Y?te>õ®?/^£?›‡§?œó;?ž_Ê?Œþ;¡º?:šŽ?7¸?¯m„?·ÊQ?3>õ/å>õ>ú>õSÀ>æ§S>ç6?±‘Ð?ó,Ÿ?‡!Z>ü=†>lðü?1 +â?¸Š?¼aC?ÃiÍ?Ê#t?ÌÆ¢?¡»)?3 åö>落?f†¤?^)h?vðÎ?pvE?6ãG?<ï?5x?2˜½?Ћ!?ѱ˜?> ?b@Ê@ F`@¸ì@Î?*º>0.…?Ÿg?Ùw{? +ãî?™ûz?ô{@3Ö†@U/f?ãyŽ?%Óä?‹ùC?ºÄ”?ÄŽt?Òîâ?|êê=÷¹>fI¸>­¬î>£~¸>³€ ?(”2?’¥?WK²>„¯>»2Þ??^?oÆê?кÉ?Ö”4?À¬|?¹Â~?Á­T?²qî>vM„>‡'4?,µD?D«é@ @3Y@Ú•@ØÍ?àF>ùÕz? +?t›@eË@ê ?"·¯?^F@ óB@&“/?ð3ç?ÞÆ?>òŸ?*³¿?.v?25¡?e»?u8Z?|·Ö?‚?€J ?|À}?e¤€?W`|?rϨ?}§?áÇS?ý%?ÌOè?½ö†?€|?Fé7? ?%>ýˆ‘>ý˜à>þq?¡k?É|³?}ˆ?nÛ¢?×êd?þñ?ˆâ?;ʇ?­=±?Å2 +?‚Í´?P¢Ô?ˆn?®O¢?ß 7?çaÌ?ó)@ û?«Ýj?~Ùø?„ž.?€1ÿ?tËQ?i/ß?…`œ?P$?MeÎ?&ý{?Ÿ P?¿‡H?HÊ<>ÿwv?S‹?½§?Ë\>ÿ¨´?êcU@ÑË@@?ýL~?î²k?© P?•3²>ÖØ:>I,ç?{»k?7ê?N§?£WÄ?Ê{?Š<?Ö¿?éc³?·r?¦m? kS>µ5?>RŠ>…`â?Cž?GÏ?®b ?½€?†-?sC?x®?z¬> \±> n>v½'>—$¤?BzK?>¤Í@6b@7¹É@*!s@'¢³?Úª?•µî?8è?JE?£Û?¨ûª?Ú‹/?Ö²?Öôì?åý@È…?öùK?¦´Î?­Ù ?Á<Ã?²Tó?)…é?+¡¤?€Ýã?Kâ?|;'?J>ä>$ãs>$6(>ll¤?c©Ü?†I‰?ÁmÛ? ±™?:È?+!Ý>ÛØ»?‹¼(@n?üÐ?³n¢? ±ƒ?ŠC6?ÒT@!E‘?æ_Ü?aƒÌ?#Bé>‘Km?%mº?ˆûè?„ï? Ë?C"J?)?«–?ýÏ@?µ@.?¿?8?…?ŠQq?‘ý0?±‘ƒ?Ášž?æCß?ë‰@ @&©K?¸Ïx?{Øi?„/Å?ŒµÐ?±Af?¯wA?P{¸?:mÆ>äƒN>£Ì¬?OŠ¿?o\?·„y?ÁŽø?¹åô?¿"Ã@?@!I?Ô‰P?ІÖ?3áˆ?0Pé?¨â÷?±2¨?'lˆ?0öF?Ô¤?Í3·?›úd?¦¥`@²Ž?ñ,?sãk?f½s?Q#ë?[—c?€è¢?Š»º?ÁX@?¾ú ?¶)À?¢¥?V^??¿‹?ÁB!?Ð9F?þÌ?Úåñ?€Í ?wÞ&?V´s?‰¸?Óû?ÉxS?Á;?ä\§@É¥?ðH×?¤b—?‰A‚?Bù{?+çU?¤‹?‘¼Ã@ ¬?Èc±?#®R?G +¢?hfM?„š3?§›µ?Ú|T@R +@ Â@, ?¾ÊH?€s¦?™Ü?­=?ú>²Oa?&TýÂj>­J¨?UÌ…?‘@?pP«?I +¤@Ü@1_K@'9=@ Â@ +ŽŸ?üSñ?ª˜?†§'?͹X?èÞ«?9>Õ³?‘bi?Àl?FE>ÿ¥c?ÒÒ @²Õ?弧?Û”Ë?Ù1?Ö”)?ÆÀ?Éñ?K– >ÿ:o?†4‡?—Õü>Æ Œ=“ÏU@³@?:j@ M˜?ñ¦½?ìý?çq?›‡?]2?û,n@1¬?ö"–?ã‰'?äM™?Ý·×?ì?”ô`?°å!?¾ÄÈ?‘s?~7?3ìÑ?c÷?“:¶?³†Ý?Œzõ?}!"?€çÌ?ƒ‡M?všÃ?i¡/?Ô4¢?ðEh?½h?T—?¨"‡?̹)@d†@-í¬?´È?H.?l¢Õ?|ê¥?e…Ú?]Ôh?cBë?h´b?(Á>ü`?K¨?|yv@@Mmõ@=Ã?ü7ò?þ? +ÀÀ?ŠøÚ?¼þ¼?÷:j@ôý?ûª%?ÙrS?ÊË?¼µ³?¦‘˜?ƒ}o?—vu?¼†?fTú=²ŠÉ?dC?¼Nµ?¬fú?™8ô?”u ?d˜?œìÒ?ú¸ä?ç¬Õ?Âù[?®Ã?@þ?+[å>úOŸ?(«^?¦4Ù?“¼ˆ>¸`þ>ù>?IJ™?Àñ¾?»P¦?» Ã?¶„Ô?°U˜?ª'?¥ké?ùSÚ?ù:?’ÝÅ?ž%?Û­,?Ú¹ ?Ó?É‹Q?»H¹?ºzœ?†Ø?xy×@ J @&P|?<ýŒÿÅÇ?f +á@å˜@‚ @Û¥@Z@ 4@ $¥?uÑK?u¹˜?ó` ?õŽ?¥Í¯?—õu?ÝîT?í‹¿@ Ð+@ã›?ßad?Íìa?Oë'>üÉA?/ o?I%Ç?†“e?œYw?ìdq@ ‰@áH?ÌX¿?¿ýÂ?’á…?€W ?#ã?n¹@3úÀ@%¦\?ÇlÝ?Ó«Ê@býæ@_1¦@&· @%'¤?˜?”Z?«^Ù?µ¨*?çxâ?융?â[¾?êòá?ð2Û?亓?¹?™D5?ÞL@)FÝ@<óŸ@g¸@P»?ðÅE?ê&?…¨:?kÞê@\!Ð@fS#@²n?ï×r?ψR?ÔC@>0h@_iƒ@@&ü@3÷`@‹?Ê„ž?â:ê@ +ý·@?î¯ +?æ'°?¶ê?­ð?–†?6]Æ@QëŠ@jèX@V£û@Oùé@yâ4@…Ò@öÙ?¶bë@2{à@Š@{@`Z?ëHš?èxQ?àÕ?Ùt÷?Ýñ]?Ù¡@)NŽ@.ž ?ƶï?¤D?þ½z@ ‰æ?÷¼?ÓuR?Ó~¾?îRØ?µ »>Á]i?O, @&ôÔ@!óú@\Z@Z¯?à(ð?ßp×?©Wþ?ž¯Â@ ƒ7@.½$?èˆ;?iM­?ˆ¼ë?®Ë¬?Áº@PV@÷2?ÿB‡?út?™¤?…ÑË?Ýœ|?ë%?Îíé?¾M•??Òµ?d®Ð?ÌŠ¸?Å|?­][?­Jl@Ëä@F[@€¨¦@âÓ@.¢˜?È)§?È<?Ò’‡?ÊlÀ?Ê•?â#Ô@T?þûË?|&?+у@ +Ìf@%Ìr?·W?Eȧ?ŸŠB?äÙ‘?ÉN$?Pú†?ANÍ?øÃ?uë?¡–W?ªüÿ@‰µ@9(d@dù?ãØ°?µÒ?-/×?Ka×?ªŸq?ª” +@³Ò@&µ”?¯u?…¿í?°ˆ(?Àøž?ÕÓ@ ¡ø@ö?c2?DVÔ?° Ù?­>‚?ª²?¯§?ºP[?²Ìž?ÁÞî?åò?Òc7?©}•?©u?t\­?i ï?5Õ?¤?²Di?±ˆ"?½#ð?öì @ ý@SÉ@–%?Ðÿ—?µ²?ÓT>Æz?Éò?=øF?ÕéB@Cÿç@èc>P=¯+?„]ñ?e¦}?œ&Ò?¨ûÏ?Ÿ©?”9?Ĭ©@ÂW@îD?>3|? P@"‡Ë@$„ö?Ù"ô?ª›Ï?æ !@ Ã?íþ?©Sä?¢…?€ÓÍ?j—Ø?^:¬?RÑ ?*?¾‹?Ûa?âZ)?Ò_j?Ç€¤?»nñ?i¾Ë?Xo?#¬’?GÖŽ?‘å¦?øi?‰þ/?„p?°¡£?ݸI?Í„‚?¦èR?žAÛ?ŠcÐ?€?¬ –?¸”¹?6o.>Áû>=×þ<æg;>ÅÅ?(Sø?/?'?o?‡Z±@Q @ +ø¼?˜^p?nãð>çÆì>èò>7â>@¸ç?VËG?Rš†? Ð«?Ù«&?]²²=C£ø>@åú>Ä$ý? +8Ö?2Ž?sÅ>?±€?¤ Ž>öH”>óü¡?Hù1?-÷[?%Û?2íÆ?iHæ?o}_?©ŸG?´Aà>Á_e>c>Ë>@n«><ÊX>Éí">ó>ó{>ó÷„?‰jy?´KÙ?‡d¯?RF?#&>éM7?$)?6€ï? +ÊÐ>ø¤r>ö$>úuÈ>Æ>ÞÇü? Ö©?,r;>-Wo?Qi ?otj=»\Ü<Ëf“>½Ñ>å!?…?ù?2G¦?.%Ð?ÝÞ>¶m >0vž>ëÎÀ?J.=ºŒì;WË?®<#?¶Ï?‘æ>Éžv>@«¢?çx?®ƒ=’ªý=),=iŽ=%ü=-@d=5öRñGP?-Äõ?O¥®?‹"-?«±º?vÃm? Ùå? Ä&?º·?µ?µ? ©™?<ºà??[N?T½?7É6=ö †>Aÿã?q1P?rç8?¢ý¡?¢gh?'P–? HÍ>ü7h>þ¸,?ñPÍ>Ñ‘>ÍsE?'ne?Fä?A°?<Ì€?1п?5Øk? §Ú>`Ùn>ÏïÕ?b:Ñ?;!ÿ>D‹î>yný?&QÅ?ý4>žKã>¢q<>$»ù>̓?-±Ð?8ú»?eU;?qþô>¤ä=¿s?KŽ\?˜?R¾ç?‘>ž ù=±¹>ïaþ?y$?rj'?nì?-h;8r@Œ•ô>T³J?7gé?X ?¦Ò·?¶—X?©z°?¡ÃÑ?`Ö?(é­?EÖ´?bš?„7u?–ÎR?6¯þ>vx?>¡?]Ôœ?’:g?rJ>*~ß>`V>9>TWF?·T?· ¢?á ? É³?²S? · ?Øë?ûl> EÉ=0xô;Úà”9e?$Æd?pÝ >¹>¥pç?»ù?‡\?ê›™?¯N?R¡Ã?[ ”?S5?(õú>£A>´±:?Ø#?>{Ñ?ûn?“´?:Mœ?5Ë?>µs?Msƒ?ÞGZ?ß29>ÿ„6>÷‰q?¤?—ê?àÈ´?ê1–?¡øÄ?¹¢>¨"p=ᚧ=Uë“<îß;°=˜>¶A?Üî?Cs?¯ +?)an>\lÈ>òuý?.þ¥?;üu?9*?Šàg?¾Òï?L×?‡?aÑ-?±Ö:?¤’?~½…?†?•f¸?Ìž?/ý¶?–8Œ@'hR@ Ùp?FÖ?_Ü?©Ùt?£0Ø?¥~?«þd?¼-]?Ü.ü@rÑ®@l"?ú¥¹?õ%¤?·N`?­(H>y¯b>©bÑ?h’?c½??G?‹ö'@éŽ@|˜?Äk­?·Èq? CV>üAc?>„®??ù?tØ´?s 2?;ô?½?bHŠ?x¨?] +”?Xäs?æ–²?ýî?ÝT?Òó@#o«@3Ú?j³ >ñh>ÿL=>ýP?^g?rk? ¤Ï?¶jã?šT?–…ž?)w>þå?N”9?s¿->üŒî>ºN™?’÷ÿ?µ@ +ƒM@wJ?˜¶þ?EÏ?¢ø?±<ƒ?Ç>’?Ô¼S@G©@‹?ÒS}?¿OË?¶ †?µôi?·òi?¹ï¬?9‚d>ÿ`Ý?a¸?{·2?Òþ>ÿ—?„"? +b?ÕbÖ?èÙ}?DËj? ê?&5?+J?%«À?ó|>äå¤>ëäÛ?’ix?›Ô\?Jf¥?5l?°¿6?ÀGW?÷µº@9æ?¹q£?±¬1?¿,d?Àrâ@#Ë@/¥j?œÿ²?…Ü®? k ?hÙ?lÌ?oÂ?§æ(?¥òï@>I@Þ?ã¡?Ýw?±s9?Âaž@Ÿ@Ñw?¯ú?£Ÿ>?»“?ÁÓ?ºòw?·Á:?Ï2|?¾@m>(7º>˱—@¼–?ã¸?Âu?%Öû?¯Š³?Ë[†@ç“@²6?€%?€ÔÈ?€Ø&?]áÖ>äå? ìœ?T—?Œ¬?âîœ?Õ@¿?Á[?çÔ>£% >D E? B?ÀF?È‹¶?ÐÖ÷?öˆz@ J@–Z@.Ž?Æ‚? ت?ˆq?Á|\?·…í?²QŽ?˜ð¶?U?í;‘@ 2.@ {û@o?ùk?ðj+?§­¯??¡Ð?°M ?z…*?VÝç?Ü·@M‚@µ@ Q©@j?þB¢?•"ü?isƒ@&ª˜@Aˆ|?„(Ž? ²?­£À?Á„4?4ÝY?¹?ÇË­?ÏÀQ>7fª?¢ôá?Ð L@f?œ}­>AEI?Ê8…@>û0?ùŸ,?‚'?äöd@gv?’«Í>pÒ-?O^c?”€?x,Ð?Yþ?éÏŸ@u…?ü×Þ?Ýù@>ë²@re¦@g)?€2ð?v?•u'?¤r?¯£Ü?ʉ?ÜÓ«?¥ç?‡T@Þ@ÎÚ@ aŸ?ÿ÷¹@P<)@jÅÈ?êýí?—¡?‘>¼Ú?è@ý_?ò,Œ?Õ¿@¯v@Ø™?ò2b?ãÕ?ùDµ?ÿR®?y„a?"ö >ßD>Ìb@?â ¸@ Š?ÏF_?¹à?¾¯?ÅN@z@¿-?àÞ?Ë}? 8?~?Qü?^p?¥%?µïF?ÒEº?à¨õ?A&õ>ÏBo?c>]?{VP?Šçz?Ž€3?‚Ñ?}é¶?r·>ýÓé? Œû?¡?Ê +?óaÛ?ÄðÝ?³¶å?©jÒ?­ù[?®ü¿^?8?RØ?}ª>ü…Ü?OA?|f?ks>¹õ$?až?–Š´?8Ž>´­'?\±?[ßm@½@<ÖË@ +ä:?ÃyúB +?&6³?‘Ú!?›Ûî?Ê9 ?Êar?ßÄ?ßÆ(?³ˆ?ÈlE@R@µ¶?ðGÀ?í”H?ù@€?ø? ?NN?Gή@,}ñ@+{—@È“@b0?ýÐT?ò™ò?Œ‚/?xf¼>µB“>÷?‘¹`?¹-c?¸nÝ?¹óõ?×U>˜-~?>¶*?wœµ?–¬™?¯ k?Ûó;?ñç/?Ð[=?¹Zý?¹I4?¹5Ó?és@êÿM?™B?pPè?^?ì?I²T?dÄ”?èZ?’}™?¸u$?¸õ?¹6‹?±¾„?¬–˜?·!Ä?ÑÈ»?Ù¨i?¼¥S?·Úê?ƒQ?uJã?%)?ùØ?UÒ?ŽÿY? [?Ž!1?ÞC‹@ •©@ Ê@?¾¶@²?²•Y?ÂGË?ó¡@ª@Õ!?ôÂx=Ét.>ã3?é—_?ô2÷@šT @—z?Ó?Í,†?QÒÕ?+zÉ?Âú’?ØÕ~@7ˆÐ@]Õ^?ù +?v—w?tqÕ?$°@PŠ@~9&@P3Ú@±ä@4@,ù@$.á?¥0:?µú?øH@•@ ©’@?8ßõ?,@Pgâ@qïŒ@]¥¯@Z,@ Me?ïDÀ@ ‰Ñ@"­‰@0;2@EŽŒ@+C?äXl?éæù?ð}?æ?dJ?[ñ@%”@J”@gX@qºH@9té@1è?êþÿ?,Ç?ùa@>©ø@C?²Ó?´B ?¸hä?±Mo?S”Ú?mU“@Gˆ#@AI½@È@ Ã%@Bu›@T£@dß-@zïÄ@2I_?³ú?¿È%?ÇÈk?ǵœ@×_@@LúÁ@QL9?²@?ŠT?!uä?Æ?ÕD«@f7?ͪ/?i;6?§ßŸ?ýÐ @sQ@/å@*€¨@ô£@—À?ä:?àËL@p§ÿ@Åž@C<­@2¼?Ñëñ?‡¿?Š?}?¬B?¹Üñ?Õ“÷?ÌK?m„Õ?fÉ#?ûf¥@Ee?ˆ Ô>¹N?×·@C“?Ò[ð?0d?‹r¿@q\@v@U7­@_ t@ ·?ð‡S?¼cd?Œàˆ?ž]ö?ÄÞÄ?È*?Á„¸?¿h6?Û̱?ÇÕ?y,^?fì°?‹’?ª d?” Ã?qf?‰"‰?…¦?%?ºp?´áà?sTÙ?e +ü?› €?¡àÓ?õfC@~¬@–w?áu€?åF|@ Bà@rÖ?Õð?Þé®?à~À?Û>\?ª#[?”1S?µXq?áÅ.?æªß?Í?ÂÚ?›I?¥™ ?©OF?©HŸ?—nA?”ˆ?±ÂÏ?Äh?Är€@SÍ@Jí@Rd@^ì)@kå¯@[I?ͼÈ?Äd?›tî@¡@÷?e£µ?9¬@1J@'q¹?Ș™?¨ó¨?Öe|?ìAË?ÍxÇ?´¥L?Å»„?á[Ò?áb½=œF>IÓ¹?½¯Š?áÙ@ÉG@ ô?ã½?—®?«­ø?áÓ‰?âýO@˜˜?ý¯Á?¨£%?”:p? ‚1?³”ñ?·z?Ÿ9%?¡`?áÈ»?ÝÍ&?ñÿÀ?Ú I?ŽIú?Ž`?i‘?t€?‘I§?¢È ?ªÌD?ªÿ ?˜§%?<.÷?[È?¦Ê:?š}¦?öê;@›B?ʈ›?£¢È@Iƒ@Dè +?ñd?. D?B`À?„"?¨G@[4C@b¶š>ç¦->çæ??yí>ÿ]?°ö£?êÍ?–ÿA?R@À?‘S +?Ÿñw?te? ¯‰>æfÑ>WU”>¸ (?•ã-?žä?nN?n¼{@bï?ò±,?H "?.ŸË?fÒÚ?o\ ?©5ç?´&?Ñ¿J?ÂTÍ?XGÛ? +®Û?AG?KêM?8³>óÆ›>?/>ð?-ó??uÇš?vQg?vÝ ?«Ö|?ÆI³?aõ¥>ù §?‚b?¦S?K¤?w>‡nt>ª€=¤Á<²ºÌ>ØXT?RP=›Ü*;m9=óOT>>È8?€Qð?]^p?ë2>Ë‘>qUê>Ëü?‰?rÁ2?Œ9?0 +>âV=<·§.?ƒÚ?Œg?†ó…?bq=–œç=Sa=(Ëø=§U ?W- ?Vn›?UÃ?T¤?S©/?R¡)?•ÓŠ?œDU?6ì€?Ç>[ú-=˜‹ª>YF>$L<>ëk?$ÜJ?}\±?ñ¶?j›Ë?ÓtÂ?¨;?YÍ>ììË=î>‘¶ù>­ë„?F^¬?H¼ê>ò 0>ñ$(?¼HD?»¨?7²V?(õy?<~>ñ:-?Õû?¥Ûm?«°¡?´÷b?y¤¹?5Σ?y“þ?‘‰J?9>†‘­?Ü?œs?Üs>ñŒ?½ ?FÉ›?;ê”>œ€ï>œfÖ?5›?ž.?ƒ_ý?‰#E?x?qê?Õ>ò,>qÀ“> +k¡?+óy?r/t?dáu?`°c?“ŸC?³‘Ò?L¶;L×Û>0=+>íäv>¦±>—QQ?°??¯áÝ?¶'°?²nM?rý;?t¤Ë?î%??èjd?eî ?Qª=?…>?,?­‹9?¶¡±?y­$?B¨b>Ί>XÛ›?†è]?×é?Z¥N>F¿<>ô!­?)Õ?ˆá?n­Á>ôfÖ>ãÆÂ>­îB>ô;g?¨¥o?¦îê?B ä?:?ƒ6?‚C·?in?kq¢?heT?m„–>C¡N?‡{A?µ¿??ÒE>Ý Œ?ž­3?ÚGð@Fg@,Eû?áC?W‡þ?æ?>“h¦>‚0ˆ>,\§>§`…?ÝÒ?^Ô8?ÚîN?Äj˜?vó ?wy?i¢^?k+"?¡–?œç³>÷i>üÄL?CI½?<ØÀ?§4?¬Ü?ÇN ?Ñ/?í«?‚qó?æÊ>øAD>cÃ;`ð?3³Ò?rê?|`Ú?‚¾ø?—éâ?IÊ? l=Ó^š?VÄ?y-Þ?¡§?¤à ?Vm>¼§_?)@?y œ?Wú¥?7r®?qáa?¤Åñ?‘‹Ä?HSŽ?¦0 @ `@$D?Í¢ª?ÚÅ@$?ï¼D?SB”?gû?¼"æ?Æ(?÷jÃ?ðRí?¼h ?®Ä²? +3?VÈ?`jï?k·Ì?æÇ@?Ú/ñ>û·>÷W?1Z:?J©l?ü07?ûYó?¢a>üFH?À?¾õ£?¼b"?½]J>“zq>Gÿ@?oP>ÿY>÷6Ó>üâ“?Ìþh?ác +@ @0?Ô?ÄAÛ>—+ð=r¤œ?ZÍ ?{ìM?¯o¾?µ +Ü?ëñ?õaî?Lõ?`ž?VÙ?]óÏ?ç:>þ"Ö?ÙÏê?ïW?í«¸?ë?F?_H?|ög?|ú3?p°è?¸b/?Í·}?UL?,DL?åQ@-¬?ÃF?²a4?€‹œ?mè?|¤ô?=ª?+&? _`?¯?IM?£:>?³?D?‡œ$??µ¡?¿Ë?é¥?å½&?*ßã>ÿä—?ny?ý|?‡ ?ˆ”?zMø?‡[ã?þ)?C ?Ÿ«Ù?©õm?Àåß?Éx½?–-1?Ž“É?±5ä?¶´?q1? O?õ¬H?þSŠ?Áßó?½Ùò?{hÚ?s~å>.¯¹>ªÒ?â—"?è?Ðî?Ê;=?†´?ó6?¯Xq?·*Ý?ÜRY?Ì“<>ûðo?G!ñ@g´@3?€¨±?l…Ö?®ë?M†@ ü?ã]>ÏW>׃í>߯±?!ˆ´?’J8?o)j?Þ?&›?€ÐR?·É?²& ?Ÿ‘e?€Úñ?Š?y? i ?À1??íßÑ?ºq?QÅ?X ç?YÛS?+ï ?ìÿ?\½?9+?¼@;©@=P?î(V?¶_‚?€öè?Ž™?Ÿ1›?Xì?ü?G*?{Ó½?1Ó?D»?aÈX?Šê?´Ô&?ʧa?½RU?´#M?ß„™?ðn¥?Ñ̺?À¢É?Þs?çþÔ?ì‰Æ?çÆø@ +Tð@>ê?Ó°?ÁR@(°@ ·‹?öë?ð¼÷?«ÄM?§‡=?ŽÞ:?‰®E@-,@8¦Ó?Æ™å?ÀÙg?öÁ?ƒ²c@Rxì@HD;?h­?|¹?v ?…7Þ?“åM?¡Ü+?öèg?èÇT?æ&•?Ëêd? ?=0Š?î{?ða÷?Øûª?Äã®?‡hû?‡;®?cã ?hDC?l«w?}ÁÇ?Œëu?¼[œ?d™?>F¡?j±ç?ÇC²@)Kf?ÚÒ>¢ŽE?-%p?^?™v?µŽ¸?Î?ße¿?æj?èb8?²Z:?€ŽÔ?£ÅY?΄n?‰"Í?‚?s!ò?±R˜?þ1£@§?±ˆì?´”?Zµ?̳?—g%?W/{?&>´Y4? »?'¨ð?£³@·ù?¬å-?tUï@ !Ÿ@1ƒ?¹zš?Mý?¤*I?À3ä?“ö?€?L ?-´‡?“ù˜?²È™?Ô?î“?GÙ?€u@1‘œ@c’¼?û89?³“ª?7>>ÿ¯&?3}%?[§@ ª@³È?Ü1 ?¿˜‚?ÖÆú?Ú· ?ö÷?ÿJ!?èk†?Õò˜>ÔÏ=ÄŠ]?7|¥?HT@? i]? H?þ%?ØX?°U?Íá]?´r?¿Ÿ?‹•µ?~‘o?ë?uÂR?ºÇô?ÆÒ?Œ!?~IË?¾)?˃U?à!?éÐâ?ãé0?Ü”q?®Î?œ^w?.ÖÁ?Q@IÔ@}n?{ ? 3É?¦#†?¾x?Ï¥?}\Ö?®\ ?½öÈ?)‹Å>×—'?¶?ÛGÂ?Ø+›?×,}@]l@6Ϲ?ž}³>ü³Ã?Ei•?j•Ç?2ÃT? $ð?“ã?»°ê?ØXÂ?ß­c?{a;?‡É?›¡è?Äñ@?£¬Õ?ŒëX?«ü?Ó6Ð?Ê»?´ö†?Ãí!?ÒuÙ?ŽgŒ?Õc?o§m?œxB@k¶@P¹@ ̳?»`=?îÌ@wg@á8?È•h?Åuc?»ñÿ?»åð?»Û|?¹†7?¹Ë5?¢Ä?1š^?a^?»‹L?Æ*W?ëÄ?˸>ùÅ¿>Ôð³<ù¤!>Ï›@9U@/µ?ĺS?Ë&?ù4ø?õf3?yŸ?y@R@M ?¦ï&?¢û@ú@ D¾?‘ÚL?x]?¡ü?¯˜×?»‘á?º½@IÝ@ð?à Æ?‘¥¡?€©??w“C?åö>ÓWY?Æ~Ž@šP?í[ÿ?£l?·PÓ?È»™?åK@ êÈ?¹Æþ>—Íì?vjx?“ýl?Ös¾?°¶²>ö±?(F¯?ݱz?Öß?¸ú?Â?á|Ã?ÉŸ?¬¡?¡ý?´Ä?·Òt?&ža>÷\¶?SI?f8£?ÅÁI?æ2Ñ?ýÕç@Gâ@x[@&àÝ?øš?¨<©?èA@]Ÿ@ %?è܉?Û2w?³#Ú?µ±[?­XË?­Mà?òÿ«?õ•‘@"‹@0äì?£M¸?˜ôŠ?®Ú?©ˆç@v@ž:@x?ñáè?Óáø?¹­¿?Ô,?ç×?ìÏ@y€?çúŽ?Žz?Á|@ +4÷?ëÇê?XÐ1?]?Z?¹VÎ?©Š²?¼æ?¸‰5@Gln@JÁŒ@¦¨@¢7@w?ü¼ò?âÙE?͵í?ÿŒ­@Õ@5¬®@]xˆ@>„¹?ÎVž?Õn?@i)@ˆ?áía?Ù‘q?ú¤s@„@Sý@)S@jj?ðÄ?ôêº@O3@F[ú@ƒa@[p9@Ss@÷$?±Lç?¡XÕ>ì*>÷¤U@JT^@N‡Â@)µÏ@&_@TÌâ@ea@pŸ?º^?°¬Í?°-Ð?¢5¢?BB?¿Ô6@!#@Þô@º;@ SÕ@$Ú@(#R?¸-=?…—}@RÓ@J6N@ Š´?£Ö„?“RÛ?Š®¥?½l2@ (.@)ÇO@L@Eå?¿?®$?® É?ºè@6*@Ѫ?íD>?­ û?“uÀ?/(!?kØW@gL@["?qw ?fÀ?¢ÝÅ?´e?Þ="?Þ_Û@õd@U‡$@¿Ž>åãù?H­D@A-@C†?µ2š?¬@0@ œ?ïOm?Óñb?ìP,@JH?è=?»¼ž?Îø]@-ŸY@9ùc?Â¥??¨?Ï?=/1? ¬w?¸¨@“Œ?è¹Ð?ã“ ?ÙSó?¬pá?ÀÁG?²€]?©þÄ@þ'@O@-+W@{?»~š?¢†;?Žâ +?§ð«?úYÁ@5ÿ>÷5d>åÇ@ +ZÖ@âI?Òof?•ˆi?‹Ý3?˜Sª?¯#û?æ?¾µ?¤âo?« w?ïN«@ +¸¦?ÆŒW?|:«?!ôz>æ=?(Þc@f@ ãù@—Û@˜+#?û´à?¨ë’?~º?uø_?a…u?­Y?iBî?ófp?è³M@&)i@—¥?È;1?º½?¨bA?­(@?¯{ä?›?š6/?áÅ ?Þ‰û?‚i?“ÂQ?èº?ëÕ„?ª'¹?†uÅ?ܸ4@%Ç@–í?ªó)?¨ L?T×O?‚‡›?-¬?.®í>Òn˜>aàÎ>Ïò¸>ü Â?Mìƒ?ªï?š‹?;.?92?´FX?ÀÏó?¸áû?±GÖ@G(@$­8@XÂ"@DJ@2k?Žk•?“mu?¬ù|?¥c!?kÒ?‚É÷?›ìô?)t?•èx?‘ßP?ÏG?È7?;kD>ªt>ƒKk?}S?„?Ð?Á9Ã?™s|?'ö?†[>ëß”?ZD?°œÓ?§qð??ó•·??¤–?Tô]?+DV?'“E?6s›?Ei™? p^?Ù„?„•­>øØ3?WpR?ŽA^?,ÒT?F5?Ñ#>üm=>é.)>ø¬!>üÌÍ>ÿL=šô¥;¬)Ý>Îâß>Ó±µ<œò(=â³>š|=ò’>r ×?Pš?°T|@Xl?„œ=ÌgÖ<*˜P?¨–?Ã8?ßj.?j]j>³|H? lñ:§îp>Qé?¬d!?¯˜µ?ßK¢?Ü “? íu? øÝ?Aç?‚ÊA?b1º?[”²?I(C?Cbq?‡1·?gÚ?—Ñ…?šþì?Xsr?/kÅ?!CÌ?·~?8[ ?QêÀ?&¸¬?Mö>Æâ> ²f>Þ¿°?yZ_?IWÖ>¡ >ŒC>(q‘>VŽ>ñ?Ž?¿gP?ÁOÄ?ÖQ>ñ‚?™©?Ÿ¾À?ÀZÜ?ÎfM?¥·?–»? øâ>d¯v?-ë?…` ?{?Ž?§ìë?{p­>ñp­?!À? é ?&׃?M)?TÊ/?q k?gït>g]>Vmÿ?TZñ?ZÉP>ÝÔæ>ËæÎ?>Þ?T3D?b_?g]“>—E ?&P?rA6?˜È ?µTe?Í`K?름?§¸>àLÆ?¤d?€9Ž??¶‡?­“˜?ràÏ?u½—?£Â“?§ÒÌ?§Km?¤Ú?ÊÂ?ʧP?j®î?U%?ok÷?sˆz?[@?E+î?w¿G?™s½?uµº?%®ê>ßúè>A‚?l­?S—?>¨?!3­?8P>É*:>å¡c?X?qAå?È·?Ë=d?¦÷‡?© ?ô¥?•™<ëiD?¡Gì?µà>œz¹=¾H•>É9{>õ£*?˜e?ÂQ”?Ò›?ß1?¨»?v ?%“q>©”œ>£rÉ>I˜?ké?çï +?èãç?ö±£?ÉÛF?:ëú?iä?¹AN?¤4?°K?›>¥¨Ä>ÓD ?¨hÊ?§s$??Ü"?GÉ>ŠRÌ>XÕï?®}|?ºö?&Ô,?Æ3?¥À ?¹$.> ˜ª=h€?@’w?x¢>?8¸·?&§>e¹ ?‰Â4?Ö™¼?¹ff?¦=³?Œ9?e¬?­×¯?äÿp?“³>úú\?\¬?»¡c?ÑyÚ?úQ?Òœ?zuÛ?¥8·@Dü?û¡ø?®ÙB?´¥ª?¼.”?»ùž?¼;°?¥ J>û5€>þE? 5—?‡T>®“s>ÔÈ‹>û °>öù$>²ÐT>×ô?Ò܇?Ïñ»?HÔ|?GöS?¸¾Õ?¼Z¹?ŸMÞ?¡…C?i˜÷?`Aß?»Nx?½a?+’? …³?™®?™·?ë¤Ñ?ó{Í?æÉ?뻸?Í68?Ä%\?½¬µ?¼×—?‡zÔ?ƒÖ¶@áû@# ?çDó?×Óï?ˆ%|5Í>"„ü@ª/@*ï@T@ $?˜m¤?~(V?Mƒ³?V[-?«®ƒ?¯m!>© ->!–_?@WÁ?^/}?b?f? +í>ÿ A?nU?)à@á'@»”?>øì>ÿXô?ät¸?øÙˆ?:„?Š[?æÓÎ?ñ+I?‹œj?‰‰’>ƒgÎ>2ɦ?å|?ðõ™@ûB@!ºn?]k£?2¾>rpÂ>N³?Gœq?T{M?ì ?)?­ZY?²=„?jE‘?n):?˜!¸?’ÅÁ?ÄUT?Â`o?À{U?½Ða?€\?ƒS?©Ÿå?™‡>ŒS>É>?$?Žóò?Yƒœ?OŠ«?0?E´|?œY?‘N?¹%?R¦S@$„@s?ã9? }?¥†?[ö§@Ð?Ö=Â~Æ=ÌɆ>Sî?d7(@;m@ ¨Ö?À¢?CÊ?c¹?aa"?Á/b?•¥ž?Ó‹?ñÉ?!e?BÇ9?zGž?”®H?¨ì(?ÄM?å>„?Ö˜?¿®ó?›þþ?€åi?›«?»5µ?Áu?Á_A?&?€ìk>ôbn=±y>ëÕe?*M¥?<_?bÀ?I?óË?¡t? Œœ?I›?&òÈ?ÊUp?ô7Ú?Ù„'?Ó[@?³+2?­8Ó?Ñvî?ÛÎÉ@DQé@T +Ð@üï@ËS@ +Þ"@×@?-?õØ?µ”=?Ámw?¿#?ò?»{~?Ám×?x3?z2?†­?€5X?ýª? +³å?Lð½?h±O?l……?h-ï?cÛ)?xÁÆ?Û+M?ÿ/Í@~‚:@dä–?ÝI?ÄkÃ?NË?Š ?€Ö¢?‘Ã@?ÒÿE?²þ>ã5?*?X?JÉ[?=ŒÒ?„úµ?ðg+Ý6>¦« >à +O?0 ?Xs¡?£%Ê?ÀZz?ÍÕÞ?ÊôŽ?ì?@5 ?Ø‚?2²Ì?5Ž?—‡?”Ó¬?Ú¿?•Q¨?žúè?Y¼ž?%r3?ù@ 2?Üýõ?¹ñ‚?i«í?]gý@6@-°@ÛÊ?ù”—>Å‚_?‚fe?¬ÎP?¢h¿?ŸÔ?Ö,?ä„?æóg?éc¿@$´ú@5?̈?@p@_¥@1~@ÁR?ýµ@M¬»@Vž’?%S>;´4?&l?2ÚØ?sɼ?~€?X¤8?[‰w?çsd?þNB?”MÌ?~6O?ª‹X?À‘K?®¤ç?ª±&?ù¢‰@Ñ%@š/@H"?ª ,?‡¹?¿?2<@ǵ@c?ü¹œ?òø?½[A?­K£?%á5?>ø?Œð?fà?µ$?àò”?÷Ùò?üÞ?€é?%_Ä?®>ü¢t?âî? D­?›ƒ‹?½S!?½D2?½6ä?eü?,?Võ¶?aŒ€?Èë?ûíÛ?¡³é?_ø¸?~ó?€eÒ?’]?ªƒ?À‚Ê?Ðâ?¥æ¥?{U?Ó>!@Fï?Ô|ÿ?{€@ q@XÓ@U)õ@T9‚@+mÈ?í?Ŧ¥?GF?“5?–(Ó?J»?zA/?Žú ?°]¦?ÏKV@¼?ñˆ¨? Q…?“ã?˜ô?%õ?|70?†,?Ç ?Ûh´@n¸@ µÔ?ù#ý?÷#¢?Ëo…?ÆN?ýI?ö¡æ?ØÀ?¾>þUB>øwƒ?R*­?bSÎ?¨Ú?7é@,¡@ÌÁ@&@?ÿlv?„|?41#?žÅ?¥Ý?VŸÌ? +Êž?†Äc?¾ý2?·q©?¦i;?ÓÜ@ÏÝ?ÖF?“‡?/VÜ<1Z >'2C?YG?ƒºƒ@)ô@dÙ?¿z?ض3@CÑÌ@3_€?µéÛ?³¯£@&P«@2bw@"-@Nô?²Ö¦?­t?Iz?r›Ó@Å®@'Iâ?ŸÒ?UR!?¸ó?ãȪ?êÞÓ?ñó?Á€î?…ÿÁ?Ö>-@ ÜÔ@o5?¬ÕM?¤"t?Ì?¯Ê¡@0lô@Ù%?Á~?½?D)é?R÷©@?@  ?ø?ÃÈû@G¤$@TÒµ@ûò?ñËu@­&@3Wd@J?»>?‰½s?0 ¨?‚`”?°Fó?Âmð@=ä@¯¸?âl?âô|@ÓG@~´@ +dô@ub@fô•@n|@ 2?ï”ä@ö@s§@ˆ9@t7@ Y]@šž@KC@"âG@(ó@.ãD@%æn?ï©Ç?çz?…Šx?·Ñ?•éœ?žc?Îç‚?Ñ‘†@Sœ@r0È@ ܲ?£ —@$‚@oå›@3ÔO?³Ãµ?ª‹?f“?’Ýi?Þí3?Ï ˜@‘˜@ÉÚ@Rd@ä±@MS9@X”‡@8š’@-bã@ %x@ G¡@Š=@iƒ@)$@;W÷@8¼?ÿp}?ñö&@[ @ ‹«@ê†@ ¬§?ûÞª?óšæ?ÔG?®Ö!?‘Æ&?=áÝ?wê?貄?üp>@sh@w~?ïO?ÄÄn?°Õž?­ë²?š5ä?™€¦?„6h?K8á?)ìò>yák?:@ñÓ@„?n Ë?f­ü@[Õ^@tÑ@]I.@PRV@06§@ØT?ývQ>åÑý?:yn@By@# é?±Ç?«þ(?Ü÷š?íî^?´ä ?—¸é?©¡?Ç};?ÌÜÃ?—âí?‰äL?@íé?TÅÔ?¥Â?«`@d¹@â±@êú@… @t?ÍQ{?¿HH?Ø>¦È@ -Ø@ J(?Ò?Í´e@¨@5. @àÈ?Â9{?ãöù@?J€@A ?ÔÝr?໎?“9?ÐÖ?–:Y?›:º?¦¢?¢­s?˜Á5?›3‹? 9Ã?‚?a.?­ †?Écö@ æ*@dl?˯=?hú?@Bf?ò,=?ÿt}?eøK?dUÌ?ÍÔ6?áFâ?¾pà?¨ê??ƒ?¡Ž?*yN?Ö`?ÛáW?á?ýRÖ?½4?¨å?Àô?²®b?VÃÊ>“£ç?1An@!ß›@&»?°3?ÁW?ÑØ+?ÍЪ?§R?„¼?³H?üܦ?ëýö?Ým?ÝFî?aÑî?aã ?„|Í?žn?«Qú?©¥Z?È°?ýBó?óáÚ?©ç‹?§¸K?#?#v?2ÀH?!ÝÓ?6¦†?KCB?¬Òx?┸?ÛôÔ?Ùˆ’?ÆZÆ?”r?ŠóÊ?8et?D÷?ǸP?Þ7¶?¾?Á@¥\@#þ1@;?“o…?™ëÖ? p†?¦û?¬t€?¨$$?}†º?…X2?\y?n3-@o­@5Õ…@t@†?ßžS?œM5?„uU?~YJ?Ý+?>)?N—ï??¥?$Â.?±Wk?­ì¬>®<[>“6Z>è þ>îC{?fïm?Cj(>ùcø?øï?ŠÇÏ?”J2?I»&?5@(?YõË?……>?:qÆ>óc–?CK•?tZn>øJ‘>Eç>˜> ? DÞ?ãÒ?‡ë¬?±*x?aªÌ?#é–>‚À6>¥ÍW>ü# +>/>;þvˆ>ÄM>þÁÇ?Å?²B? à>Ü ò<)xM><Û>ËË‘?EûÃ?…ãq?¥=Å?›D>"ä¡?˜?¬Ÿ ?×UN?žì3;_9¾=3Ž>€Ù¸>É¢«?ŽÂ +?ËC=·]é=ê´Å?gr?äS?l+?ùÂ?kÞ_?qm?5oš?0Œ5?1õõ?3uf>‰hZ=øž>»¯I>ðî?C{?péq?KyÚ?'Üo>ømƒ>£ÄŒ>þø¨?Iãë?ƒ›Ü?°v7?’‡©?@V>öŽ>?9@>™+‡?põÅ?nøV?;ïƒ?;gè?ÍÇ?Ñdì?§V?–·ª?²>ü¶ç>úH>ñ$>•Ô‚>Lc—>Eä¦>?Q?0Ò?˜^§?O@Ë>ŸUŸ?nd?qjö?@ý»>­Á>Ø ?5>ü?C$?qŸO?f°¼>Ä´n>È F;á†H=Üc=ÇY?þœ?ü‚>9.<ƒs­?+š ?s?rŒ'?t“C?<? ‚J>«ÛÉ=57`>Æ=?r—?‹By?¶Ï?’•Ý>KVu>‹©?¶Ê?"†¢?‹é?‹ðQ?pþD?y|5?NÏß?C¥õ>ßÅÒ>ÓJ’?LíL?mÑ?"N>êY}?†Ù?¶ß$?? ¦>@?+?Œk™?´¦?Œº?”ñ?§i?“¤-?.¥?uy=lWZ>Ößä>òR9?tí?qU€<ú¹y;µþw>ëßk?áù?¢î?©ÅŒ?r>õ“Ó?šìg?¸MY?•·Ÿ?ˆº? +'Ì>†¹~>ÎÀ=>ö/>öAF>öT#?Ÿ@OF?ê¬?µær?‚ >Øÿ?¨/?Ÿ!G?’à½?78f?'ß>—?we?tgí? ?¾’?¯ÈÒ?±}š?³1¢?´å?¯è?´Ê­?¤»>ÿŽ+@Ìà@™Ç?T¹'? +?±>ø»y>Í?•I?g¯/? d™>ÿšñ?Žža?»¥?îY(@ +ÜÙ@£Â?÷?¶e.?„ïæ?K¥æ>ùô¹?k’Å?»– ?ÅÆÏ?ØÚ—?¸‘á?zf´?^î$?#¿1?›u? vŒ?QðÐ?Ám?œö>ÿÈV?!j+?r˹?V}?ãâo?½©>ͬ(>ñ€¡?]dP?YÏÃ?V3÷?s)û?åp@?Ø ?|‹?…7 ?À}?·g‰?|H?{ Ç?‰ ¥?-$?½ht?»»ì?|¯l?}hú?Ðyƒ?×[ð?ÔÁ?Ï?Éu?Ó@0Ç@9=Ÿ?»Í?˜?@U—@,§?›Zª?šÃ}@Kk@ +9?·8–?­yu>ÔÛä>ªì@‚Ú@ \ù?l¦D?c–F?y¬?€1ñ>›8¼>[1?Óu¢?æøI?D‹®?&×?D=Ø?>ñ9?7:G?/ƒœ?M†ç?@›L?åý?ƒÍ ?´M"?¾ 9?èB>ÿKP?Ïâ?)Þ—>4›}>/9i?’…R?µ?dx‡?Z +š?Ôt#?Íå’? Ôo?ªÍË?ñ?ú’‡?„9T?…·?p"Ä?dÎò?.÷?(g9>²K6>Ì΃?®²?¥•´?.[?:"×@ò@RÎ@f™@ÐÊ?ÀqÅ?¯W¡=€àÊ>Ç:é@4|g@)7Á?Б:?°.“>€â>ça?¬“ÿ?ŸËn?P°S?Uå÷?€…?€†â?€‹??œºû@‘/?Ê‹h>?žõ>Ç=x?x?‡‰?°-X?‹ Ú?ªF?.Êe?ˆey?›¬œ?ıI?—÷ë?ú»?½?¿‹?8:«?‰ $?˜·ÿ?¨mœ?Žµç?`Ÿ??ƒp?˜)?©Ié?Á>?Îud?ÞÑ?ð@¢õ?ÞÜ?·yt?fé?…ìC?™{‚?®P˜?ì+?Â?J]Ø?M?Æï@.Î?²QY?… X?U?~í=?z¾S?v™?_R?ðˆ?„n? ´?û>Û*8?˜L-?ªíÙ?½$ä?Áil@[Z¹@q ?æË?Í)ï@-q@4ßK?.O®?îñ?–Ù*? T?#üe?–ö?¶§?·‡†?õ?7Ë@“ü@À8<˜gÔ=é­?tj‘?Š¹ó@›Ä@e?€áL?”,Û@Þ³@2@(ža@ X'?ÁBs?ºÒ„? ŠÂ?³”É?î5$?ËCº?€Î­)y?®W@ ÀÔ@f`?Éaû?]:>nL>[àÏ>I¸Ó? Ý6?€?šDÞ?°šú?²Ý&?µ!û?›ý?‡bÍ?…a?‚Á?¨±Å?¾«è?›ñó?K?žg?Ÿˆ?~Ò«?aD?¹6_?ש^?Æ +}?ÀRk?™.Š?”Óõ?·| +?À;?á-½?㬘?ª•}?£å?Ìð?ÞÝ?"9>Ì?Ì0Ø?ÿó¶?g?T?g?Ýì? ]6?ÍR?ç+Þ?×R?ÙÈj?O†Ü?2Òƒ?3ÍY?${×?‚o¡?ˆI~?Õ&¥?ÝŽÀ?s]‡?`Æ?Éó?ÔÉé?›î„?÷Ï?ƒÇ?~ÿÛ?¥ºÝ¥¹?Wè!?cèB?¦y4?¬o?Âþ>þ\f?‚ús?•€ü?ƒ{Š?~,‘>¤äM>D„?‚ͳ?’Xý?µV?€?ÀL•?Ç7}?ï°^?ú À?ûñô?û/? ?’8…?’‰L?–Si?½Ê?É3?Ë” ?ËÙ?:>ß:¸?Špw?œc}?ÑÃÈ?äZ®?§[?‘Zd?V/–?4LÛ?‹þ?¥g©?±Aû?¸eœ?¼×‰?½1 ?µ&ˆ?¬ÁÆ?õln@Ù]@ɬ@¼;?Þ»ú?°œû?µê?¼»r?_ò1>ûˆ¿?cf??’i[?~?Œ“ë?¥¥W?¼\;?›c˜?{Õ?(?ÃëÎ@ î@$‡)@0ð?úžÇ?±ùw?$uæ?iY·?¢8û?«¡¶?»2Ž?º(–?È÷@5@SÿÊ@)“`?0€]?]åÝ? é?À/?½…ï?åR@P‡„@;¯¥?ÐêU?Õtó?Ì$?Ü¡@6¨ó@/bF?õõW?ûþå>Õ@>¸6m?¯ý9?¢"?‚Z?bíß?rø?xÉ?°Çé?½¨#@9{˜@LRœ@ ?Ë0#?ž˜?‘ ?W»¶?3dë?^’¢?wƒ?Úp @.=@ê @?­@ïÎ@z1?ÓM÷?Tµ?"Ú?k…%?œ@@#o?ìT? èd?¸*u@ +Þ@Ë @ '­@&?”}÷?†4c@‚8@”©?8Îv? ¯Ä?®¸>üNM@^­@‚Ýö@2¢»@-@!—¨@'U¤@Øò@ ….?áÀ[?Äö@$è@WÌ@öä?‚™™?³èr@³b@Så@Y¯@rž?æ¢A?ãÖ?à¶&?ÑË=@U4@g?·×?¥Šë@]ÒË@<Ü@'•³@yT?zD>øÙ?©}»?ê"˜?ÚLú?ÄzC?áÇ<@ I†?ÿBd?Ò^à?Ó=?êŸñ?õ$?Û*œ?Ì[+@…|œ@†h @qªä@oÂ&@K`@>Öz@EE@G#Å@6Ýx@1ôÊ@ùŠ?üP|?ú@™?@à{@Á@! v@O^Ö@IGg@;/g@0Ä$@&Xp@æ?¸…?°öz@FîÌ@qßò?ýz—?löÁ@&,‘@ƒìþ@eªp@-ýž@-¯5@3Îk@"·Q?ÿ^S@º«@b¯«@SzC@yP@‚$@kÅ@ü@œ?²å?Ò*Ÿ?ñœ—@)L»@pyö@IáB?ÖÞH?ú»7@HÒÍ@DHA?þœ¶?õ›?ŠÇ»?i„Ô?4?s?·á±@Õ9?اŸ?—·\?¨#*?è¢?øu™@K[ñ@KDE@XÐ@aæ@|´é@vœÍ@VVw@=†T@Ø?¡SP?‰öÍ?Hš¢?Xòc@&P@ìŽ?jßð?f¦?®à?Ôs‘@@g@ +º@À*?Ú]a?t?@Í?Ù.Š?Ýò«?ª˜…?«ó@?°°…?¶7l?ôCÙ@2W?Ø¿q?¥ˆÜ?©ø?äÙ?×ã>æÐÎ>v->Ú½? +‰u@L‘W@‚E°@H›ª@½˜?ÝÁ?Ž?¡xŽ@¡ @Xe?ä®Æ?æ`W@Ê@IÌ@ µI@¨#@ßé?ù" @x@Ë(@ Ï=sBà>á-)? ÃR?sy^?’ªf?½Çµ?øúÂ?ÕÝõ?aÏã?r1æ@A µ@@ÀJ@6¦µ@,JM@-ob@4Íû@ hÜ?©S?¢éc?‡]Â?| 1?©Ü?¥Ä?ý¦‘@±k?â„è?ÈX?­ç8?”Ô™?—“X?— D? ç’?d®N?xí¤?{”‡?¿P?Çÿ’?þ=3?ÊX?a3 ?‰¼?á=+?á‘D?ÜïÚ?×:´?wÈ?r+/@Ø@+T@è¢@½Ñ@-A?`ŠÞ?tè¦?Ÿ˜ü?™Æ?4a?eZ?£…Ð?ºÚ¦?ƒQ­?°T?xZÃ@ ?òlZ?3p"?KœÖ?.Aú?6Ú®>ÚÅå>»sá?sÃå?«ˆ.?ØÑÌ@'á?ô*…?«¦?©Ô:?ˆÇ¦?`è?„›*?nÐ?îaÍ@ Ä?ÙU ?ÂN?•I ?8A?VF?{H?n‘7?hì?v$z? ^ï?š Ë?x{(?Yz§?‘¨y?·0°?²i7?®gŠ?²aŽ?¯OB?A?8CÄ?+4?:?càg@ T@§‘?tøø?>ìþ»>í^#?£®»?d¹?Ùë@/­>Þ—= š ?Ô?A¨è>Ê`>Û´>ÿûç>ÝnÄ>Ú–º>ö¹?É??ã?“‰È?¬v?¾º?5âµ?®s?%-«>%à‘>Bíb>.7—=¨¡Æ> \“>ûà†>ü2>ôÀü?‹Z\?œ’Ç?D ?k+?ˆ‹Ì? ÖE=Eü<² ë>ï+x>ÐW²>±U*>’±>eYy>&=̽k? 3?„Â?;ª>ÏÔ¯=°ŸF?MA?åþ?“4>ÐSÿ?=à¬?=>QúP>€éI>»&>¢Ï-=ÞvÕ>ƒß?ÅÐ7?Àü…?pÇè?pè´?SØ?Q?Ï!?“xª??]?+nÒ?â:>ðÒ‘?ù9?€ž? Øç?ÈÒë?¤Ã›?Š¢Ó?jHS?D½B?7 ?9ó?Uqg?pÐ{?(cK=ª¶ >Ö+>Û5¾>à‚ô?Ÿ?•ßš?”è&?9Æ?=_f=‹mú?C´Ð?_:;>Èü3>¡–>×\¤>ñ ü>’èR>&º>« ó>åŸä?¡?+Àô?¢ê>»8Ü>iÖ6>a ?q„p?X45>o}Ž>X,º>@žG>-ýq?züê?{Ò’?Ù =?æ à?0w¹>ñüS@(§!@SW¸@ ?í™õ?W7>òHŒ>æ§{>×Kð>îPS? _K?üt?&ä2?QM!?ŒºÄ?Œ'Ú?•ÆD?Ž½¸?rï¶?jHM>ó Ò>óB?'y$?+H¾=gSÀ?Ÿ?7Š0?‰Å ?–q?¬J£?¶ÍÛ?™9?‚'µ?0þ’>ô…?^o?¥hÿ?›e?‰?˜Hi?·Od?“i›>¼EO>‘Gª>dÙ>dí?|V?y#?tøï?oA²<+r1<¨4d=¼Z<>Ûå?Tfß?dd>­´>Š‚ä>jt~>i?°?/ò? + +(>öf?Y¨À?‰$T?Õ`ö@ ‹©?Ì?ó?vŠé?(Ž>cê&>ù9b?vÚÈ?š¿³?àÖt?²[>—ê¿>ä¸ ?‹p¢? Y·@òü@? þ`?—5›?kºÀ?kͪ=²X= °¶?´¨?¶ýÙ>^B>Dy>= C=„mñ?Ž$`?£*„?\)=?<Œt>‡¨>×Ä>‘Öq>¡r ?a|?•ÿ ?¨ï@?¶aS?òâ@~?°ÚY?2>ð3>hZ?:cÖ?”FŒ?”) ?2ç?p,X?HB?Žæ?Äâ ?­ñà?ˆF‹?ª¿@Ój?û6?x°Ò?ŽE?·’ý?š*˜?/¦™?|ƒ‘?×mw?¾’?{~?h 6?$b”?h"?ûÆÇ?íMo?¢M?¢Ø¿?º´x?» ¼?›é?˜þº?‹ ?¨?蕹?Û€ ?|–®?vs¡?¼÷?1)@Ñ„@b?Ät¨?¼€=<ö=‰Î·?ûó?õ”?Æ".?Í@J d@D?x±×@S¨@wÕ?¤$?m?±¦ô?¯Ê…?¦w?|Zu?S&-?r?Û8«?Î)*?:Ñ?E×>?œ¸Í?’œà?^! +?m˜z®>ÅŒk@òq@›Y?ËYÁ?Ãô“?Žx?±[Y@vú{@hÜŽ?À` ?¿@ó?³+;?²û6?ÙÇÌ?Üv\?Ì÷Î?Î*q?¾åæ?æ· @M˜@/A?¨!¸?‹FD>ä6?-Þ? $Á?°=Å?åvI?Æý ?^Ãq?‹Á?Ú& ?áÎÎ?ôF\?ËÂw?DäÃ?zvÜ?¹¨â?ÒÌ?úÞ{@>É—@²›@1Eî?µ?´Â?Ý?âØ·@GÏP@ÔÒ?°H?Š7{?T§?™Žt?Á0 +?¬÷ƒ?žl?²Ì¸?Á: +?ÄÊë?ËÐë?±¶F?¦Á?pOÞ?7)=?Ÿ £?ÁGê?– 0?€Ý?ðSt@ÉS@¯\?ýËÑ?e©ž?‰]? :)?»PÃ?²Õ;?¬í?ˆ‰¤?€å @ƒÐ@ {N?ð?ê÷@(Ó@Ä|@)šã@/ÖŸ?kT?:¿$?Λ³?߇†>ÅBð>°äJ?nˆµ?_wH?Iƒœ?SB?n@?mT6? Ô{?—Ð?Â{Ò?Û;B@Wí@7” =áX¢>ùö@!+@ ¹ö? 0ÿ?CD?¨ØC?çJá@XÉâ@3BG?q?¨; ?Á.‹‹À?%§ ?cÓ°?VÞ¾?XY ?ƒÉÌ?(á?{-½?j…Ú?ŸÏQ?ºž?¹·?¼•ó@ +@)¤?¼²î?€KÂ?†¶3?‹ÂC?Ê»~?à4Ú@“Ÿ@+„h?¬g[?f@?Š³?‡µ?ßKQ?ú˜ @ð±@cÂ?úø‘?ñw@!@ …p?úV1?èÜ´?ó¡?úni@õ @te?ÓVæ?¸EX?à ?ÈV¢?”ò?7¯?ô?ˆÅ¹>×G{>¹E%?Ío^?ãLl@ +ÃÇ@œ?ˆc?Oj?Á²?Õ(Ñ?™(?¿C3?u‰ô?héÂ@A~@UýÃ?Óqõ?½t>5)=h +>èì>þ’¥>Vè>\)‚?®Pm?¾Ê?ä?Ÿ?Þo>·QŠ>hºþ>ïÌ?÷£?1OT?/3Ù?²R—?¾mn?¡Ù?£ ê@O‹@B‚?¾&?·î¼?‡VÖ?‚?J? £?ï?>J?È®^?Ùçò?㉧?ëØ£?‡ P?Q2ò¤>ΈÅ>üO³?\†¤?5»?ƒøÃ?†¾:?¾tœ?Ù‘?¿’È?¹½„?y¨Þ?L» ?‹èÿ??†f?eQ +?1?¨Z¹?µD?¼iç?¶?³½¯?™½˜?€66@Ž[@8PÚ@(¹8@­R@¢ç?Ê2N?Ég?½Í:?¸Pí?»·x?ºMW?½K?©E÷?z?Ÿâ…?çˆÃ?äç?ÓÌã?Üfè?ÿº +@ Žð@9¶Ä@2Çå@!It@›¯?í}ø?Ý„˜?Ž^?¡àö@ ’û@%hT@éJ@{)?‘3?+(@0˜S@9\Ö@:•@: D?”Ä?x@ ­(@W¿@5Ÿ³@>Jï?¥??Xþg?·‚ë?ËCÄ?³TÈ?¡d1?¾,á?Ë9£@ý@%A—@â@Vû@ Å‹@÷@ +Ÿ†@N¦?ê0U?v6©?¡¨?ö G?Êê}?"y·?GR9?¦ã?´Œ@'aÚ@"›4@gÀ@xç?NMd?9Et?¦…?°Îº@/Ó@q?écd?òP|@:¦@ w@#ÓŒ@0©@5¯v@6ô?æ:j?sÀ¯@ç»@…/À@Hé£?¾wþ?©i`?yÁ®?Žó?ÁÛ ?´¨ì?H”¥?~Ï@š @‰ö?È?›÷Ô@ó=@§•?ô{v?ñå¥@;Ñ*@Ps=?×Ã^?oóº>ê/p>ƒ¢ž?«1†@µ=@™M@(Ô(@©)@²@§Ð?àÜÊ?ïa‡@`‰2@mš@hBx@mù¬?É‹ú?Ïóˆ?ÛX?ê@éC™?º#½@¢!?Öo>?U¸ÿ?È?èË?ò¤“@,U@5wP?ï:(?èB?Ãll?Ó@ 2Ù@=-È@$bS@*A@ @ #?óAã?HÅ?+¼é?,?i·§@+¿@9G%?švj? ¡N?°œË@ Ð>?íÓ?e¸#?x.ú?¬(«?¬s?móÕ?i·@^Ý•@t.H@4Ðý@òì@l?êà~?ä‘K?Åh5?å“\@[ë<@b»Ý@(›@‚Ë@:©@Ý@?<@U©r@ð­?b²m??Þ›?. +>ÿfÚ?©Ã‘?¯F×?¼Ñ÷?ȵ^?§üJ?Ÿ-?½Ý\?Ýõ?õY @η?ð®}<Ýúu?¥”?·ÀN?Ø­´?é,i?îê@–?ëàý?† ¶?v. ?b’‘?ƒö?×m?¸¸¦@›»@‚¼?í¯;?”±?§­¥?×Þ??ÝJl?à¤Ê?Ü/5?é ª?ñB-?½Qá?¦½ù?§Œ?”ÉE?}ô/?vQ>ûp"?aë?a1?·1?ºá5?…ßÏ?j1‹?ˆ~´?¡ü?”‹Ù?×½?ã:@ ž¯@Ã÷?šf?s¶¸?åHÖ@!Áµ?ûÅ»?ŒP±?„ã#>ååj?£?y7b?‚…±?ˆu§?Žfg?ÖÉ?ñO?ËïÄ?©±j@ ]@‘Ï@yôa?„Í]?qŸj?(Õ¯?x¼>[}={‘Æ?…÷?á(—?©ph?eõì?€Q?]t¼?‚pR?è ?úÖ€@ 5A@2M?ÎV?Âx?¸š?¬*i?„ 1?µ??v?œuô?©a?ªšª?¥·”?×ñN?ѳ‡?—L°?–ÛG>ô­{>"³$>Ÿg>òÒ¿?–b?Û¶ö?Ÿæð?+‘Ç?TOü?‡}Š?‡¥(?§3q?ªù¹?l*Æ?iÖt>ìÚ&>í3P@~Ö@F? Ú=ï°É?=Ïä?U*?O#M?G.ä>Í>LÌ)?ïš?Ïd`?¢Ä×?q}?d‡?V£Ý?^xâ?‘¢Á?4nW> ê >¯Î¾?öé?8| ?Sb ?ŒZ ?™×?UXu? =ó?.Å?1)?þ–>üßÀ?#«×?L½»>Ò‰£>h„>çîÆ?k¸=¢qà;=à{=j‹Ä=óar>9)=>²Ã?7 É?¼?ÅÈ?Bè­?„”q>É Ø>ûÕ·?LÇT>¶® >˜‰?l«>Ä0è=¯Ö=ø2=Æ7È>zÕ?Z–?b;_?pÜ›?wôO?£)Ò?¢× ?´¶?´—o?w“?pÂÀ>y…¶>¼>#þ>&ƒž?ò ?-Çò?Ãã?E>àb£>½«Ä>=m>œ¦á?,1¢?=‹ú?FÃ?,êq>þìl>سZ>t©>…ë>÷œÐ>ê'¢<—;±>Ó”f>͸»?FÞ×?X"S>­Ä@7ð™@[àI?Øgæ?Š ?‰•ì?‘[£?ÛÓ?å/?¦²æ?Jñ©>‰š†?\;Ë?pÆF?›W?íå? ã€?¥$@?°y—?¯ÛÔ=hNh<à90>ß—Ï>ñè#?až=?~±È>™ í=Ü?y+?ª](?‡Ae?b„Ÿ?)ù>òdô>—è-=Ǽ°?*?µù§?šlE?>D‡?'Èá>"œ>µöd>òüy? \Å?©Y-?¥¥Ú?‡`‚?Åñ?²³?µ‡ ?ƒDÇ?ïR?¬"Ò?¶¾?Ðïæ?Ý­÷?® ^?ŠËç?ˆH8?ŠÎ2?—ðx?©?¤ë8? ªV?Ë—¾@ ‹?ý`?±½?´1ß?·’v?­ÉÕ?tˆ¢?^/_ázA>ÛªR>Ž¿>Æ?<§Ž?D2f=èm>ó–ñ?º?žL¿?µ¬¯?›2W?“ž³?Éõ~?ð¿?²™?v|?*u>‡±Q>Ë à?ct?‰Ù?ä?¾©‡?wÌ?Œ÷Œ?¹qv?•T¯>=iÙ?\Ô@(zD@JG>÷º˜?ý÷?õÔu?ð3>üÉ?þM>éû >áüU?Ó‘ù?Ô¶}>º—£>“¯(?càÍ?x»€?@‹æ?,qê?ƒ¥¢?³+?~æ0?y6T?yJ ?yXŽ?Ñ|?öY?§#Ž?yªš?ô’>´Î>£Ö>­æI?M‰}?œŽ?-[Æ=¿Ï?wþW?úl?÷ô?õ¬x?Û_?¸ ÿ?eôÏ<×à>ÌåÅ?‚Ën?¥ˆ\?àx#?Äh?–±‹?khh>VX?¢A?• ª?‹Ãž?…f?±÷*@'@Cà@Z»@Œ?Ù“ ?Óá?Ê°ù?Й8?ç$b?Üz÷?YÆñ?]u?aW%?„nö@`@ÿ?üð¿?ñœ7?€ü–?iX<ÐŒ =ñ»ÿ?+?SK>êx:?e?M? we?}¯–?ƒ”¼?Ö;;?Ðqæ?¦ÔC?¨¦Œ@x@l?½«G?¾mý?Rãâ?bå“?¦3—?¤ák>«†ï>¼ôE?Bà˜?=Öµ?±þŠ?²¿D?~Íw?HÝ?¿.º?ÀÔ¾?úÏë?ýĪ?ûT?ðï?/+?>ð?'ñ?)Uß>¥R+>Ò +ª?}d?o–ó>V@  F@o?„Ãú?„Þ"?Âä?½™d?8`?Ã?€?‡î?·î? ©l>Å~ ?(?êÚˆ?îÝš?òß¡?⺹?zë§?Š½ë?ÀX?©G?šw?K>T;y>‚/”>šDÄ?%|?Ñh4?å¥`@‰á@ +Ý­?À¡?µ£?? ¼?ßñ‹?ËF"?¥‘?Á²?ï?¶·~?4µ¨?¬>´‰š?lJ ?ö7V?Ë_Œ?‡Š ?‡n_?†T1?ž9q?ÆI?¸¹?®­?°%?±‡?çÚ@G¦.?ñL?E°r?UCÙ?VÉÝ?É"1@|–?Ž•„>ìÉÛ?L·O?ƒÜc?§Í7?µÛ«?Vù>3&¥>ˆ>‘ùe?„m?³'è?Ïh?€Ö?S>êŸr?k[â?„ +~?^#?Û?on5?‡@?‰[Q?‹u?®Ñ.?²„­?—§°?Ÿgê?ùHà@ßQ@Êæ@ ÌØ? ?À1?H0?§®?.?ˆ`…>²+>°_1?Ýéy?×"=Û +?ÚÀ?þ?…òÕ?‘Ì(?ÿ6?ð*®?aÿ?žlH?«×?™- ?^¤I?…?¡ Û?«\•?ØÛâ?æ#E@å­?öžs>脵?"VÎ?ƒ9T?y$:?LOß?F€¤?-)ó?„Ãð?趋?Ô1P?›Ž{?sI?·¢?h›?·Ö?£œ?˜»? +<ùT@? }©?‘O?Ê'¼@˜0?¦Öœ?#!c?¬#5@ ì?ع%?µ?‡?IÝ?;wÿ?-âh?ƒbo?¨?9?„v§?PG?ž=©?ÀŸ9?S?Vƒ+?mB¦?€]‹?)Í›?Vu?ñ»­@ `¼?¸Çœ?€Fç?2?t?‡âb?¡DM? GÏ?ªü?š'¯?Œ…õ?k_B?tU?æîH@ON?º^¥?¨?oVn?M_Š?–Te?$Ã@7„s@Q2E?Ù,?µÒs?)?A‘?ãÉ?û…™?LJÂ?¿µ9?‡ç¡?‰V?·ù?¿˜>-J¹?Â+Ì?Ûñ¦?Þ[?àÊ„?ã4j?å¨?žDQ?”¤?ª–û?¯­²>õ‚œ>Ô£9?î·?þÌØ?3 Ý?tZ@›@ù?¹ïž?¬£>òò>Å™¢?ˆpø?’y;?ãÍÎ?ï†7?. ?õu>û6f>惊?ÊÌ?–œê?§^‹?«ü…?‘¹¯?N6@(2¨@6Sµ?}Öœ?#à0?±/?»ñà?9ö>ýZQ?œð—?¤^º@ rÐ@&v?< +?Ä?ÿdØ@;J?ù#?ìšû?¨1 ?¥Wª?­ö»?µ+?ÙQ&?ê£B?F\ì?.Kã?߉?غÞ@ÿí@#ùê?ŒÀl?wø5@*¼µ@86€?‹û]?]”±?bgœ?Vï»?”N˜?©G?¯ÊÖ?¶T2@zÂ@'Gv@ØÁ?ã¹€?Ä˲? ±ç@yB@Tѵ@!k!?ºÉ?ÐÉä?è6¡@?@*·ž@ ¤P?-D?“±?¸>?ÇU@‰”@ ¿T?£ãƒ?©Æ?Úê?áÖÄ?&90? ÉP@*“@5­Q?Ò_1?·Z?s¤ø?e ?àô_@‡G?ùè?ú~Ë?Ñß?¥µ?Ås¢?÷2?ï¶H?ÞY@ +¤Ã@5¤Ý@ éÇ?ì,7?ã´£?ÈG-?¹|Ž?¤pv?¥a4>h[:>ƒ%d@àž@ (£@¿p?þ|@Ò±@-±4@Uë@z.@ +æË?ÿ7µ@nÄ@¢a@Ì`@@ +Mœ?õ\Þ@(ü@>@81M?ï½û?Îj@ ÜŽ@ð±?·[Â?³·ô@L@é?â4&?éH¥@&@$Á"?èMÿ?ž;c?N(?)óÈ?—³@NHx@:c²?é ?ë¯ý@D@û$?´n®?§â?ú¹O@OF@%íÜ@2`Ó@^8@ZL@nw@£J@”sÓ@y9„@S‡b@‡™@ ®v@åÞ@£ç@Ø@ʺ@/R @*EÄ?Â7‘?pƒ?í’L@ÐZ?­hO?BÛ?\Dv?™Î?¡Íh?˜Ñ¼?‰ñ‹?‚€m?‹bA@t<@ ¾?½>?®i¾?©E ?Ÿ³#?³¾(?Ðú?¥T-?57¥?l1a?ÑFÇ?ÚÞ3?ôVt?Ý,²?çã?çôr?B&Ê?ŒÔ?àê¨@1„@Úb@Ž@@ä@?ìfÚ@Òa@GÙ?þ… @›)@Ÿ?l¾N?gf ?à6?e‘?Šà?¬kŠ?§ÿÑ?˜­ ?”†Ò?¬ó?¬@†Ø@ xh@GÝ@\Òã@žË?Ú‰¬?»t"?“ž—?‡Ú?H®ª?z5v@£V@#ù?Àio?ÇZ8?Óä?Ð:z@˜@bo@ (?°ç?´¡œ?•´a?¤Ý¤?áJF?ÜGž?úþ‰?ù‰â?½ëa?µ±?¢ß›?½ìuú6¾?6âš?tÀ/?n 3?Be?F^;?bß?L‚û?dGL?dgˆ?¡r­?®>óô.>¡¥?©Á¹?ê½…?™…>?"?*dØ? P? ?oþ ?}Ê?–Ÿ?£¬½?C-?=û`?…w?„(>²àì<»ãà?Iùb?¿@Œ?™Ùª?/?í?‡¾?ïjJ?½%? ðÈ? T˜?Úv¤?Îi?ó4?у7@ÝQ@sœ?Ëìd?µ¬ï?ƒ¬?o\Ö?0N¨?%Ã>Ä%>“ÁN?$-Œ?0§·?Šñ ?³q~?¬·þ?¥è5?8±>ngB>°õW>õÅ…?BÙÅ?y¢.?ud7?wæ?x¯7?1d? Ë?‘2S?¾ªæ?ècr?5ÛH=N0>»p±>ýäY?0]±?4ì`>Ötv>Ó·>ýÓô>ù›™<˜™>MÇ?U®Á?MT;?ßÄ?pü?P>¸5>§À¯? »ø>†&>Ÿå?#øÃ?GK>ñq>Ô ,>«íQ>«[­>ª¸·>ç¿?)?H?7V>ðËg?<ÿ?Ë#Í?¯L}>èIv? EQ?ŒMõ?çì?Çc?Ƥ“?ˆ°?™”,?Þ;Ú?áo9?>ÿ€?Á”>¯’.>€>òhÚ? +~>@âI=æÈd>\R¡?,Ø”?•ý?yÆÐ?4!ë?7@ò?2Wà?¡ø>]B>+6Ý=ÑZa?pÈ?t ?<í?5íD?/ä÷?)Ãd@¤í¤@ÀÄT@Lk&@ž/?Ð…>ñ œ>-b#?Z?q.Ò? &W=² >¬æ??0m˜?Þœ>2J>9Ò>Ð>i®ô?ch?gmK?k}M?mýÛ>óšp>ñÌE=`Ï=7P?C­‰?_Ÿ"?Îñá?ëMå?›÷C?r1¤>Óí)=´ož>€}>¼Ý?,ê*?‰-$?8i>B¶>ŸÀ? ]?$HC?D ú?a®?ÏÔ¯?Ç®?`Ù>?lR"?˜½Ï?œšŠ? >ónÓ?rp1?‡'2?o——?n° ?µ"C?ÔLÓ?º&‘?§'1?…À3?Yá'?+¦ô>ô>Ô?ï¡?Uç:?dÇî?t…ˆ?‹}w?µP?šÅÊ>õy.?#£P?¯*º?Ÿ„A>õI?kæ?ÕÜ?™R:>I@ >Rx¢?Ú!‰?âDM>µ“‹>x?Jó¦?€-t? I>Êl?ŽÒ"?¸«Á?}‡â?:="?Ä>×ÆP>C&ã?Y‚£?ö:?è‡?Á™-?¨eø?ŽaÖ?Œ·÷£"?ü€?µÊS?¦Ö< %„=Pý‡>ø˜>ü©;?‹¡$?];?™¤=?“?ySƒ?x¦‘?£ë1?¦ÚE?”$Ê?“§ð?Eü@?1Ê!?Àÿ?œÞ_?à]"?þ-š?¸˜|?–&H?„yX?y¼9>¸ct>¾Ä?ϵ?Vô?Ù?Fg?ê¡Ã?Ô’ë?»Üõ?LrQ<¿]e>à3s?qÇ…?@Bx? (¡?Ž– ?û]?Ëü‹?{5x?•}H?¸z±?´5é?¼ŸR?¢ž?K–å?’öñ@ùw@N/?ûX%@¬s@ ý—?ø­e?–V×?†ÈK?'E1?3±>?cPX?L1(?’…?X]Ó@ !$@ .?ñ‚Ä?ëÄV?¹â“?½)–?¹år?ÌG"@16Õ@9)?Yáà?;Ðó=ÊÞ>€ûÅ?­¾J?ª+ª?§gÇ?©z?—Š?šö?¶Õã?¼Ó#?¾‰ž?²ìé?'Ì?&þc?—=æ?“ˆâ?J˜ù?:²?¤„?“ç$?‹Ü¿?ˆð£?~¸è?„ ?ºP?±cà>û2ó>ïÚ¸=Ÿ¾>±mæ@« @ÈÎ>ÿ9Ç?Tb?”Ò?×J>‘'ù>å*D?§3}?Ÿ¢?³ÑÈ?¹hµ?¿Ãµ?Àc±?»î”?¯ÊŸ?‹´R?™Ëï?Â`}?Çë@¹~?åÂg>c•x>¥Úu?k¤?lQ?gd?W%a?'–?%G?p|?fƒW?9œ?@[?[vå?7(>Ë~Ü?2ˆ7?Àz5?¥˜w?U‘ü?ˆ©1?À?°ä’?˜Sy?µV ?â0?ÊÃœ?›ìø?”ì?¥åÏ?¶D@?¸Pâ?º]›?Ü@šº?£2?šm?€Ö?¶N?l¦ž?¨)??å?ƒñ½@$@,R°?Ô<ô?€´&?“ ~?§ÌZ?†ÕœÕM=+í”?̤ù@6V?EW?Ò¶@ Vc@3²L?ž•?€Ó×?ŒY ?ýÉ>d±v>øâ?òi´@Óå?ž¶?œ¤„?£Ù ?¡7?6»¨?1A­@ ×Â@ Òs?–›ð?‘fA?^œ2?T¿p>T'‘>Vä°?Ñæ?#~²?Á9@?®: ? Ú?a÷?ÃM?q˜?ðQ?¬ö?ÈT>ì?0>ÅÙ?Z§_@Ã{?ÐÁ=?2ëÅ?ZÛó?‹¸Í?˜«?º¤˜?” ??5Q?*å/?*!³?*DU? kf?vú?ÚBû?²¤?p~?E}×? Ä?›f&@T @H­%@‡ A@!’7?€”[?`ʽ?O²$?*Q¬?Š=?ˆŠ?ÀÆ>?„Zc?5Ã=?Âõ3@tá?²t?‡ƒb?„ºÃ?€kd?›ïM?­‡?¯_×?± ž?ñŸ2@ ¸T?°“±?€R­?%\õ?L¤>*… =ñáT?JEû?€<?¡gz?§Ã›?ˆWÁ?€,z?8ˆ?&ÿ?¥ÊB?À/$?vr´?F±?v`M?‡N¡?—í?—®©?•,ó?š&B?¹I?ÇH~?ùo’?ÿÒ²?=‘¢? '?m[’?~â?º‚ð?ÄN4?4į?%tA?Ú1…?âïM?í+é?ìA?®Ç?ŸL†@‡<@Ÿ1@%É?ûYõ?•_?¿N?”‘V?—;??Ò¯?B÷>×3N>¡´ @غ@tÜ@Ý@>[?Ȧo?Çö?¿“ò?¾Ø?§Õ +?¡q†@Øu@. ?êG.?åN³?Bt#?;Þ?Ö1E?Ó÷„?«6?,?Îr?ÆŽ·@1X@7í?é Ò?çR‘@k"9@y4³?œN†?XY?¯Gä?® ¨@=ºe@Bøe?–ž?¶qû?õƒÌ?ë_r?‘Æ?‚Óù?š ê?¡2ü?ðYx?ü£Ú?ç?ÕOV?¢ß-?–=?tS?oŽØ@ Ã@Ÿ±@Àh?÷ß”@8Ì¡@CüÉ@Šî@ ü7?éb$?ç€?Ý4k?×gñ?X€J>ûv'?yÞÁ?–il?»öÁ?ÕH?Š1ì?2EÇ?¶*u?ó˜g?¯á(?}èÞ?|}«?¸?Á0É?ðú)?çÅ?Ûoj?—?¤•?ÁP]?òg^@û¡@Í(@¬Ð@‚`@.È@?䳧?±?rnê?êü"?ÑAå?vF?sÞ?Š4A?²óA?~2©?ô;?ç^„?½Þ{?Ì#¬?ò­â?òÔ0?ëb]?ßû?·4š? ’¯?Øßd?ÞÁ@|ã@ ~0?ç O?Éæ?â± ?óú +?³“¶?—{¶?¼?غL?ø‡Ú@ –ë@îÁ?é•D?ðä@ ÓQ@,$à@žYµ@™"¤>ïá¢>÷'@@uäs@ +M"?ÿ1?Ó‰~?¿aÚ@lý@Oã?êØ"?²RX?¦vÉ?§^X?ꆋ@/f®@'w?|óÊ?ZG?ÊWw?×íp@1vŒ@+$î?Ú›­?Ì{~?÷Ï?ÿ"Å@M;@'ëI@…¬@¯|½@çŽ@TÔí@Sea@GL‰@1’N?Èw?̧Ê?ÇT ?º:ž@@tx@O¿@B¥0@8e8?ÿ?wè?”ÁŸ?šPN?†šê?jfu?»<@1*ƒ@¹?Žá¦?yÇŽ?ÿšÖ@´? +»?jËw@Ϻ@!U?дC?†‹œ?d²?*¾(?F,?‚ˆ?¨RR@B– +@PYð?ä,ë?ç™!@A‰@Ùý?­+é?ƒÎ¬?ÉlR@Š@?á*C?‹Ï'?¡Ê@._&@8¤ü?è'g?è:p?ªÙ?–4)?£ž?¬Š|?¬tÚ?¬b&?ª"?±­.?»™ÿ?¬?¬9?­ÇÙ?¶Â+?„³t?”Ó@?@ðÖ?Ê‚°?d‰w?Aü®>äYÓ?$ZI@ +,½@‹ß?‚I„?z4?­?¿ÿH?èA +?÷Wƒ?­¤¼?xq>ó’£>%™ú=²?­˜Õ?²¬®? J­?©­|?å—º?þ?§2ø?¡×¾?§¦/?©´?ÞhG?þNl?®é²?Ó`?<¦ ?¨ð>?¯zõ@ a@à>÷*">žÝÜ?9[[?Uö»??È7?)‰³?%‹o?ZÑ•?o¿ ?ÚÝÊ?ÕA1? +‚? +«?mÅ2?†sò?t9%?a ?u%?©¿Ç?›?Û?»ü?0¼?6v¡?*F?KŸ?aN›?6lN>÷¡">æ!é?£Ç?NÏ?0¹?G¦‰?»ôÈ?µ³_?вÞ?áø!?Á°q?¨Ô(?‡ˆò?’W? u>â…Œ>â ?¹Ýà?¹éê?ŽæÑ?q¨ ? ØW>ý! +? Â:@7Â?áÂ1?ªä¹?¤0|?I)k?U¹å?C">üÛq>ÓÖ>¦½y?“û?äs5?”*¦>„"Q?˜³?°s~?´ì?Ù¶?Ì_;?¿³+?²ú>½Š >œÌM?ª_?ÜÒâ?n}¦>ÔPb>¯j!>Ûùá?3}k?iý±?²È¶@+C{@1§ @î[@¨Q?‹ú(?™Ò÷?¶*ü?Øu²?|7·?m¥Å?Ëžà?ë w?(V?o6 ?SÊ ?=ÙZ>¾KÓ>(.£?w´?ñ¾Q?ñùÒ?í¾R?˜h(?FŒ?'R†>ô‰—? ¸q?/Jƒ?€?·º4?—e ?w¥†?6ý˜>øÆ–>ùZ{>ùìN>ä;¦>ëÜ?Dˆ¯?Y\d?ÑÕ?ÝË?Rƒö?¢õ>óL>ÝqË?ÏØ>Ó×>³á>”öÿ>ÃC?-á7?1}?o‘`?‚tâ?xš®>Ür">êF ?SFV?BŠ¸?(!ƒ>8òÌ>Æ¿ƒ>ðî]>ðéB>ðßš>œˆ >¢†?'u? ©û?™WÏ?‹ò7? `?¡Ó÷?™±ƒ?i[K?eŠ ?p–:?zá?¥B'?¥ñ×?¦¦¨?¨8]?û5?ýrà?ƒÁ?pƒÈ>–ï™>Pï&>¼D4>ا¬>˜ +>(õ~>w ø?Gå?–,?OóÜ>ð‘ï>òª?éÆ?>>ð>ëB¬>Æp/>Êo[?ûþ?2ãq?Ľç?Ã;%?ž³’?¡Õ3?'0?¾)?ÐÍ?ê¨H?u²q?4m>>;B:>ôÿ®?BÎ&?L*>ñ,¼?†ßé?ÙK?É‘P?®ÝM?® ý?¬˜÷?‡’£=·¡=8&ž;'Sx=*OŽ>ñ«^>ñº(>ç¼1>ãP?=Ä­:=¸aZ?Ð ?ò˜?”¾Á?r­?6æ>À¤ü?bל?˜cb?[B?8Ë?Ž8?ÎoË?˜þ?$ÖÃ?Vj>ÁX>àœ(?À³?&À¦>ý b>ãt>}*!>†–->óN»>ó[ž?U„?TÛî? ݽ>ò)=®7Á?.I?sç“?%Fü>ô Ò?׉? ù>™Å=V¤Ú>ýí¸?†û?~‘j?t›?t¬?s?‡E®?·¬„?¬Q¬?gÐ_?[µQ? ÄÏ?*»Ã?C`,?=F?¥÷Ô?­²Œ?=õ‰?%Æc?§¾?°Ì2?9§n? «U?³± ?Øÿ?ZÐ>öSŠ?lÉÚ?•rF?6Áf>¸£ú?(Ò@?vË?Âø@H¶?ÀPm>£r?PP?†é?aÐê? +]?´?—>àÖÝ;§TÂ>.@P?p ”?jd=?mˆÍ?kÌ?x3”?} .?ºC“?¹ò?yÓ6?x™Ž?Gë¼?N+? ­¡?¢Úb?‹Aûß3?bžÇ?èè>?ðG°?ì|?ãõr?Î'g?Ïö?ì ?Ë~?J#ò?N?3šü?D[ ?Ö€?roñ>üïE?0ú²?½Ê7?©¨ˆ?6˜?œ‘@F2¼@2,¬?ÈÄ8?·Êô?¾x?€sÓ>¦.’>é5?}Ëã?›  @A@ÊÖ?þ?õ3p?¾š±?¾£Š?¾­Ç?ÆU£@Pº?í`>¿t>î?²Ûé?²^?—ól?Ž¢~?vð?Y ¬<…þ›=šn1>ó$`>ùdŸ?6`æ?<*E>ÿ,ù?Ú?ŽPz?Ø>´ó>àa:?ƒr×?’n?¥0Õ?¡nÎ?ž7¹?™˜Š?‰r ?žÝ?fkÑ?•ˆ@G@g¶?ñ ?‡oƒ?›‘E?…hÆ?®L>æâ´=º¶«>D`‚?Œè?†Èq@©ü@pY?ïZW?ë¹`?íˆ?ÔÓS?¤þ™?»[Û?îÝ÷@ó¥@_5?ë4¹?gaT?}£š?„ý;?f?Jùo?ŽÌ)?À§q?šÊ?TP·?SJü?6Œ2?"Q»?ˆ?FvM?Š­-?ˆ§.?†¢6?¿D?ûð@9g@oæ@<ý„@U˜µ@ MV?­H@?î§=ÞÕl?…ðR?ÚÓ¦?‰Çý?,÷i?{Ë?Œ†?J,¤?6L:?¤/F?¼kœ?ä`k@͇?Jº>«(×?vñ\?’0ð?êcv@aº@—†@ ö ?~ñÍ?˜c?³g?ÂÍ6?#Ií?Ê?>‰TÈ>«è‰?u=Û?€Îu?"Y!?é?;5â?2‘¼@(C«@(¯u?©Â?}ø?5Øí?I ?£W—?±ÞY@-Ð@&D?Á5™?µw¹?# ³?7Ö¯?§bl?“ÐQ?ù?:M?Å~Ô?Ûw–@ \€@…Î@7”@4?°Ë4?Wh?Ãl?’?>A?¶·w@A–V@%®6?ÛçU?Ö3J?Þå÷?É +¥?ªç;?·3(?´J`?P’ ?[×-@¨~?±—·?èW?(~ÿ?1ò?RÁQ?€œÁ? î?Á/)@­Ÿ@*R?Åj?˼>ž€=ÙR,?€Ä?ÊáO?Üsk?êv¦?áûW?Õ?éÏ|?ÿ¼g?„ÔÓ?m?à?"Dî?e¿O?€_„?QÍ?Fž¸?»J?Så?S?uà²?]?EA>üJh>òÃàd >/ñí?Ô?þ›?iI?}| ?ËæÞ?ËÑÛ?“ !?‘ˆå?:ä”?$ðÌ?ýó>Û–Ï?ߎ?öÕ‘?» T?¡+F?¢?êW?z³?„Ϭ>j³=¦í?=È0?Wé?fwÒ?u š?Ô[?‰"Ò?ðç=?úM?þð­@é'?§à&?¦°õ?1t?&·?Nd?/²?ÕÓ·?áÕý@A/k@AS?­Â?oI?¼è?¾áM? ªí?'iÎ?‹5?ŽKŸ?ÄŠ?Ð ß?­×à?±Ç:?J®B?A?À–æ?ÎU?Žo¯?ƒ`Ö@ kG@ÇÔ@FÎ@Z`?#£? T?í[Ü?ú,Å?À|Z?ºÞO?"? }@9Ó!@DÄC?½oæ?ªŸ?÷Õâ@¨‘?æ/¥?Þâï?‡»û?|¶G?«oQ?¹†f@ø•@*V‡?þ´?ñ½?4J¥>üA@ál@˜´?Õ}ß?ÁÉ?ª³ô?±¼í?ªÅÛ?­Ìå?În?Ðp?†•¯?jçµ?–Ÿ?˜i?°?¼|Ä?äW?{-i?“BE?£&N?µÜ?¼/b?Ä–d?¿øá?ß5?ñÿ‡@.@1®›@©1?úi?Ÿãð?0z­?xÛ?™Ë?œ +Ó?Ÿ¦?ÂÒl?ôüm@ÛC@ °Ü?ÖÂÀ?PyÒ?:x7>ùmj?qhV?ö¡H?àš ?³Zë?Ý…@3æù@/ÉS@@ c?ÊÕ0?ä»@,ñv@+…ˆ?á œ?ãMO?À(?³Y?퀪?ð¡=?‡×õ?{Þº?éâV?é^#?¾‰J?¹§×?ùƒ˜@•%@6îÄ@E•J?©eR?9Tå?ÈRÈ?öàp@– @ éŸ?¹ÝN?vD?ºp?òFJ@Š@9” +@ +(?p@3u@¥!¬@†H¢@Ž@t7?uˆ“?f%?á[?L*Ã@(­Ç@+”?Ãœ?ÁÌ@²@ ?õ£ø?ï"Ž@Z!Ò@a˜â?ýES?Ìåü@'°-@:¯(@u©ý@‰²@2…Ô?õe?øP¬?ói×?©&5?n>¤Ã‰=-&€?‹(@C>@&—?Æy?Í?äì•?î}*@ aí@Ÿ?Ì/?Çš@?œh5? #T@SöK@p g?©\?´F?¯+?Ú` ?ôÊê@y&?Ð +¨?§~ê?ã ¹@JÌ@ +q,?Þ ?ìQš@¡ž?ðåâ?[Â>ó +@¨v@'®Ë?Ï ‘?Äwd@!ôˆ@+£r@%A@"˜@zŽ@ çÖ?Ø5?‹Í2?«%½?ìã?í q?ä?åC@cì@Ò ?â<8?öøç@C@å@Îó@;¨?ÜÚM?Óý@_@11°@td@ D@&žó@do@T÷@qX@ô@ ,ø@ï’??ë=ê@WÙ +@zH@@4ïý@ «ó?ö·M?Þbö?ÒDÿ?ÀN?Ó”Ì@'@ü ?üð˜@ E?Õ?uõ¶?ש?æXÀ@Þ@.Ô'?Õ°l?hÞ³?oŽW?jXÎ?WæD?Ej(?JZÊ? \^?ÉÊ?ö<>ùCb?«ü?Í°•?¥Ã_?…Ž2?æ [@;7@ yd?çÏÊ?ÙÈ?SÈá?h[&@ ö@g©@±<@o#?š³g?Lžu?G?¬Z0?„•?1›7?<.? ã?¨Xk?i’ÿ?s@L?µ‹?².·?戸@ B ?ÍÄÞ?dyÀ?I‚‘?4>úLæ>çí¸?h–?`†-?cÚ™?õõ}@^8?âœÍ?ÞØ?¿ñ#?cQk?‡´ç?ß¹±?ݹ7?Ð,?Tä?ÒŠ?Ýæ @x,@ ¡Ð@"qç@>z@(ÞÔ?¸ˆæ?¤ü>â0™>â˜?²Û(?Ðí?¤•?ì?y>E?3?+Íõ?©=€?¥Rt?i8ð?sæÝ?ë¹!?ñÜ?»Êl?®8j?Œéû?Cå«?i&‡?¡]r?¨ú'?³b,?¾[O?Æ]¬?¬wô?Èúå?סg?¦7‡?ƒÓ?xò>扲?NÆ?°ÔÈ?¶vK?·Rº?œL.?»Î?¨½ ?š´ÿ?«c?¾ P@B‹à@7NV@ Ù@Ûn?R±?+Ã~?læ?F?s÷1?ha'?_°þ?U5>?P¡7?…rB?sn0?‘¾£?±êŽ?Ï¥ ?Øæ®?‹>ëÓ?_1·?»á?¤ÉÚ?pZÇ?XSY?¸Î?Çj?Î0 ?Ýâ÷?»–Õ?™MË?°¾?é1Ý?Õì­?vΖ? u?Êú>øÚA@ Œ@‚!?µ7D?ˆ@Z?®¾¢?Æñ_?¦?/#?—ùÞ?à©æ?ÀCe>ݹ>ü0Œ?vËÐ?ŽàÝ>æV>Hé?F‚?oGŸ?ß›7@Äm? #??DÐ…?ŒH?‹Õ+?‹ò7?Š$í?±êÊ?µhð?kÀ”?j`5>ìj>ìÉ/?B•+?U±?9¡>øHy>TX>UæM?éÖ?.š?-÷^?Éw?¤²+?è¥?SQ>eQü>w²Ÿ>+Ã=>enÕ>¯Å?AÙk?¢cA?k•·?!’?¤Î?Ò?68?:Åð?]Ç>ùª®>ïa<{]Ú=PWP>0Ç&?æ?ƒcí>¼ô/=ŸÕL=Vdf>Öf?§Y?ÿš?[¹?ºÉ? _”?^e´?5rc>UB>?l†>¥*`>¾Á{?YO$?Lù?^X<ZÀ?±?ÑI>+*%>„à >š5e>ÉLì?s&?u?™—?Xÿ½?·u?³9Ú?ÙTÁ?»&?pxa?Ši¬?¿Æ-?¤Â(>È? +Ž?Ö¬Ž?ÐïÕ?-x\?.5D?„†É? ó=¶ìæ? /?6Œ?_>ðjè?qbâ?˜$ˆ?¦g?¨<?Ëš>TÙØ>ð€W?–Ý?Bq? ?#>!÷=?G¡0?/Äd=ÛŒ?¼!?¾Ò?5B?rm?žÔ?§@>Ô×7>>´÷=(þ->¶Êå? rÚ>ýU->ñ Ò?.¼?g’9?;Ç>ñN~?‰Ë@ÒI?ð–ö>ñgÐ>ïUå>ñ¼?n¾?j†?l +?Ú×?ÖU?6í1?/ê>xÀ€>4‘3>Óöí>òæ?`ß°?ˆé6?Çœ?æ‘ä?ܪº?Þ·2?–ø>ò•®?[Äd?±Jñ?ŠK-?-V?yü?5À?0Ó>àí¡>Õ ˆ>ó3Õ>ú,q?µÉ=?¶ŠÚ?ñ‡}?ð7Ô?{1>ÆÌ/?9(Œ?Wúm?ð$>Ǻ?5~e?c +P?/ê?­ ?¹÷‘@7­?ß6/?t¨?Z<Û¤0>­¸?}÷·?~‰?tóã?^×q>õÕ>ù ¾?IB?IŒ?J?“H>›º>¦bñ?*·X?>žZ?3ó?0¹?¢Í?¶ôC?gXg?4ú?ˆZu?Ÿc¹?rm¡?Iô»?4À?* +I?vy>¶Ò?s1Â?Æ\?µ–ƒ?¦r?ž*\?ˆÇ?»…Ì@é½?눮>øò?* ?wÎ9?K@C=¾Ü>¿ó?å‘ì?ÒˆÕ?.£Â?-Ã>ÒÊ>X©> f>)‚?kƒ?”ä4?–¥7?˜dœ?°àI?»²?Òp>Ü ¿>ï9>ùr$?Íû ?ú+o?âR?â†Ë?^ >ùãv>\}•=¢/8?+!"?z1?ž§É?µ˜4?]Üù>üb£>jcÄ<Ûy ?õ?„iX?A·x>úî_?nO‡?®x?¼=?à!2?³Ã‚?~¦}?qAf?I4V?kÍ?ˆa›?ŒÈc?šKh?–ps?˜¿?µÆ?õ¯Ä@â°@ ˆÎ@4˜?Ü»N?¬Dp>ðé2?Iô?ã›'?üªÌ@Y×?ôÊ}?$i??<˜?½ºÇ?ž©T>ýï?cŽ˜@ s½@…Ú?ˬ«?Ç0?¬ q?†¼>ŒÒ?¥.Ÿ?­ð?ìôå?à'—?‚ÿ/?•öÏ?¾ˆÝ?¹zí?§†J?ª0ù?¥¥×?­îð?Ýžê?ͼA?–]®?«}Œ@²S?ûÖ#??K¢\?þî?á à?xW?‘\i?é?Á·º>ÿQ?'ð?*ö?t?Æ?À<[?ºcÐ?ÈoM@½–?Ý^ï?=÷?AÆ?.ŽÍ?<°Ž?ts?•œÔ?ªëv? cP?]Sè?”m¡?òž‚?ÒËq?€º?{¸T?uV¬?ŽèG?»í?—"²?$y?V?$Üù? ”6>¡öØ?JT´?ÀSô?Æl‰?Ò‚z?·¶å?›d?Ñ’-?ýüÞ?Íñ*?ž†?l¥¦>ïq?Rz?¦° ?™Œe?ÇÆ?«^?è?ú9ñ@ ?ÔÂM?£šù?­ÍÉ?µz»?q`?×½?M2K?†ÃY?\`ç?JmD??ŠÔ³?j—è?GÜt?+t¥?%€å? ýd?£@?|¥õ?›R ? B«>†.l?ÆU@®·?˜¡?eÜ?fÛ°?S—Û?œ†?° ?ZÑ'?4/Á?øDZ@}=?õV&?óÔð@Â@ ¬Ó@Âú?÷\Ú?|­r?cA:?³×?µco?i$€?aŸN?€oÝ?ƒA;@B@ÂŒ?Ì’5?Àl€?¸(?;Ÿ?€Ä6?Œl@Æ@ìÜ?Á&?·‰û?€ÃÚ?”ôñ@Ôg?ñ É?q$œ?—„@¾ ?â£N?J?–÷?É¢U?ºW?‰LÍ?¥4?ÚÇP?¹vÌ?€µN?¡¸Ô?ì_ä?ôÛ¬?ôÇ?ñ«º?ã#K?¹ÉÄ?nÅ?‰^?µ"G?e#ò>( ]?¥9@Ÿ–?пœ?™Ó?Єy@~…?Ãt‚?ƒ÷ê?VË?“½>™Ê%?+?9th?Á>ìÃX? 0?Î?Ô´Š?ôâW>ôPt>K3v?£¹?À9q@#ˆ@.m6?îö·?Ð*B>òýE>“Çà?4í¨?@€Ä?ô Ù@ô¬?„Õ?[?U¼??[Á¯?ȉº?×ò{?ÂYc?¿Ê*@÷@š4H?ÖÇæ?¾Eé?8? +«ò<¸Ré?¡ø?¡;?^0$?WCp?º½‹?´ˆr?¾u|?¿4Ü?€a2?…N‹?¶·?~wä?S¤'?ZÁ@%â€@)??F§?;Ä@Qm7@UuR?üü¶?úNõ? +ô…?'?®Ó’?«x@ W@u¦>‘N[>¨œ?-™ï?2´?7ÓF?=ÃÒ?:è}?4³?š›­?¥×µ?N¾?B?½A?¾$5?~©`?}x÷?uëd?{ ˆ?P©? EÆ>þÙY>ý+œ?Úç?èÆ?“ñË?’(“?»ª8?½¨9?”Áæ?š•ò?b?|¤?õÀ>ü†Æ?eõ\?` Ê?˜Ì?œÜá?@é ?•@ +ñ°@WÊ?Ð7ï?¼öó?ˆŠH?{Ü?¥ë?¬>š?¥´$?ª/£?’¤X?„ÞF?ÅOž?Þï?ÅÞ?¼o‹?¬±?¡)?^ç&?-RP?™¹?¼"5@- W@ZM?ͽê?ý;>þŽ?Ï?–"E?Ìö?º˜?Ÿf!?jßy?6[n?šDÌ?Ðo?š`?N<?¬­¢?úß?”=™sñ>Jˆ >ë~Ü?‘p‡@¿À@1Äk@džg@FÏX@ +Õb@ +çŸ@„@?úäb?xŸØ?{C?øzF?ñ9˜?º<Ÿ?È$²@:×@7qø?ͯö?Ç'.?íd?ö$j?†¹š?†ày?å á?ëjƒ@”"@H‡@!b°@'k?˜6ý?7„?ï£r@Î`@+J´@8ý…?òpp?™LÖ? ÈÂ?²(e?™;?…¨Å?Ÿ‹‹?¯ +@ GŸ@iŽ@Mò@[?ù?¹[?ÌCƒ@ ×?÷â?Œ¶?ŽA?Ë"·?וT?´#+?·b>@jò“@gÙÊ?Ï?Ê“®?ð2¦?ô½@/%@#ƒj@S¯È@k%é@•8?Œ~?¼«?çè‹?ò4 ?÷8œ?Ú¬M?¯Wµ@2ÿ@rÃ@vÝ@}­?÷†Ý?µÂ?¸ÊN?ÒZ?ε´?ñóÅ?ñÖ1?Ÿ€?~%©@/á+@NŽ<@ °î?ã&?éÖÐ?ñá@¼-@*‡¨?Ú*?8ʪ?£¯@ + +þ@lh?å¸ @Ú!@Qö@TÓe@ng@fž?õ±i?ù‘Ý@0„ú@-Ý@ q0@ þª@Ib @Y>‹@"Û?ÿØ·@í­@Eî?௃?´µª?Ä‘ +?íâ¨?çtc?Ïu?ÑHî?mu?mY˜@Fw@Iâ?¶:o?’y#?J°?×¾?«Š9?íÍŽ?ïê™?ì6F?ÿÔè@Už@&y¦@=´¼@:(@ åœ@Ta@ 2@b?¡š?pSò@"(C@H¥ü@%9o@ ÇÑ?ðá?Æx?¡*?«ƒT?žn?ŠËÁ?”h@?¯0p?¯Þ?‰|?’¾?ñ(¦@–Y?ÙÝU?™œ[? Ü ?®k?´ï?Á‰?Α’@¹ð@&›²?ès™?ß<­@.D'@2L‰@ ?²?ö%B?õvk@?øÓÏ?§¶‘?‰?/€? ý¸@ä@ý~@S -@WÄF@ß{?àô?»÷?¬L?¹X¤?ÈN²?§VG?û×?å@$9@Tô@ ÓÝ@¼;?ÉC?«|x?ŽÎq?dp?l??uêã?kËÐ?c¤È?Zþ(?ùæ¼?ñx@È>@ +p²?Ä’?vXÐ?lkª?{Å?‚C?¨˜Ï?­:Ô?Îsû?¾ó†?É’?Ö˜ê?Δ\?Ó5@#à@#b@($À@,ÓH@(M£@¹½@ˆ8?¶\?©xÇ?ª‡î?¡ôp?½=¨?ð–e?ñé¥?¼JP? Õ>ø>Q?؇?iÏð?°T?óí?þ³%?šZw? +-þ?^?î?ì?¨ÓP?¨Ð°?êNÅ?ø¾`@÷Ç@ ?šíú=¥”7>‰'?a'¦?Yëô?u +E?€%v@Ü@ •?¾©¸?–Ãì?¬ªê?Í@'?¿ ?}\f?¡ÑÒ@ý?@¡7?b@Â?!î9?}Ñù?›ÑE?ª?¬D“?ˆò?-?- ?ò +Ç?æWã?šF?aSv?š¯e?°QŸ?ÇÈÆ?ÙO?áĹ@í>?è‡?!—??EÞ¯?b¡à?b´F?è£>å7?à„?ªc~?ˆ?M®±?`i²?H"A?>&N?í?v”=ô q>¯ÿÚ?¶0b?Ð÷L?É7Ó?Ìr¥?¨ª?‡Îx?sQ>èZ?LœI?èq?Ã\K>æäp>çh>rA>®`?†Ò?ªâR?³Qn?Á”5?È^­?» £?¥M ?˜ò?±T?á<™?è¶?èÍÙ?Òâ1?Îd?#_u?n?S7>øÏ>íZ2?Í?è=>Ã#Ó?<÷Ã?q?ƒ¿°?ˆ¨C?pMp?lbŠ?)¥Ä>Ìj>+Ü=ãì*>6§Š>Ñ·.?„W?ê™>ö$?Xä[?”®6?eYI?>}/?¸:>À•ƒ>éL«>ùjö>M)§>Å®‚? +¾š>"Rh>¹Ï6>ÿž =ã‡x=Œy>lþ>C1>/5>¸fÄ?gºR?5‘>è¡o?¬®Ô?W{g>–GÕ>l¯ë>,b-= +k>¦H_?IOŽ>¸Ðœ=ÎŽ=…<>¬iM?:Ö >L!f=ýBœ>=Q‘>å§k?Ý‹>É]`>ƒ/?6žÁ?ÞÈ?ŠéK?‡c=?ƒã-?pb(?wä¿?Š­F?Q×Ô>LRä?Ž¶%?••e?›d?•…\?“|’?•¼?ÇY>ìʨ?c ?uð­>¾¤>âÄ?H?pZ–?¼ï?à;ü?S6r>AÎÔ>Þµe?&1w?$ïœ?#¢³>éщ>#Æ>z1œ>ð‰>ßËå>Œ|à> ý?z +?)÷@™E@•Þ?E ,?@ý?XÏ?[Çö>“Î> ‘y?-;U?bÀu?Fk>Û´q? ï?ºC? ö>ñ9Ï>óÃW>ñ¬>¡6;ð-À>|k?k˜ç?jÑ&?q–P?sŽ?†÷£?ˆ y>ô| >ñÖÑ?@¿(?@-ò?g>ò ÷?VÍß?r&d?CsÚ??ýÔ?MYF?OM ?$«*>òø?‹À?ꈔ?΃j?™YÇ?™Z?•Xn?ƒ~8?<×ê?,{>ÐE>¿6 ? f?¢l#@$Õ@4 ?¯1g?§Ø>ûÂô>¿ò(>áô=¤p÷>Ôda? *¶?NP?t'p?¿›·?ò2R?´z-?tqÊ?®œ?ê*Ë?%|=®·=Ü¥ð>l>ã1?¡J9?”ò.?XÕÅ?Uöž?Sö?h?z?÷J?ë:>™aØ>“'~?:¢É?>?nWµ?v„?¥?h^?Â$8?Ý¥l?qÔ!?&GØ>[nà>z}Ø>¶ð>?’Ø?êá?…]>Ó‘Ê?Š?¹5•?¤¡$?wÂþ?7jó=V >Ÿ¢Ä>¤ø%=Õæ>š7q?µªn?¦ÇÊ?(PÄ?I)?+;»?.¬î?2$ê?5›d>ÿb>ùý?®y?²KD?A8?+‚J?!b??)¹ò>»sK>ƒã‹?so?0ë¹?)ùÁ?#b?kTÉ?ƒ X?+¼!?8>ú»K>úq>ô1Ü>êqÙ?Ekb?z¾4?—é?¥¼7@*ƒ@&€@ +£?è¶h?¼’ö?R?˜Ýrä?GÖw?¹tÖ?§ç—?}¡?UøÌ? +ê?uÇ3?é¶?ûv@«@½“?½ø?°¸·?´ ?ƒT?&Uñ?Bþg?˜pë?–.ö?ƒv~?Nž>q°è? §¦?¾}ÿ?µ?• Ï?¨|÷?ëvì?ø¿:@ @iJ@ÍÏ?äHµ>þˆ? 3?~¡•?~°a?Æ…?‚Ê?~ØÀ?g¬â?.V¯?ce?§Ú ?´ª¹?ßÞ¥?ؘŠ?Òô?Ôó$?Öò0?ÔãÅ?ÑÞÑ?ÁÃ?€ðl?{“ë?†sÍ?„ŵ?bŒj?õh>Ìê(?“ìÂ?‘•?¦;9?Ÿƒõ?ˆÞõ?WD}>ìb˜>¡óC

EnÔ?>?\Á?³ W?«¿? ‚§?ª-í?ÀF¦?ÀPC?ÀS ?‘Î?&?’°?êÈ +?ð®?äÐ$?°Ó?€U‚?Ž^5?™Ð¬?Â)è?ë]?p½> +ø>Ì=ý?Y>€åý>Ê=b?¶ž?’Ç­?ÀÂX@ÚÕ@;ËW?«ô!?Š²?µ?ëÈ:?{|¤?ë? +ª>?—9??£„?SC£>ýS€>Ø·?j¡ƒ?‚Š×?›è?ªY]?ê–?ò¹?ùÑE@¿X?¦9F?‘E¬?­Ž ?´™£?c®?²‰? Ð?ù0?òGP@¥ö?Åâa?ÄâÏ?ô£A?ñs?‹:?‹Ôc?Kà?)²Ê?®£œ?±`£@¾L@yÏ@z·@çõ?>öS?S ?Å$?Ž0?¾¾?2~?˜â?“¤¡?`å&?Fü >[o>ŽP#>âe?Rg%?öýe?¶÷|;þDÀ=?$=à®j>‘¤×?¨¿?JJ¾?›J6?”o}?€¯õ?³¦“?ÿÝ–?âž?Àý ?®”Ù?œ4^?̲Ú@¤?æó&?½$?œ2a?| M?³ˆ=?ñ˜?䳺?ÝÆÜ@E¢@(F@×?ÆÃ?œê?~õ«?Ê#¯?ûŠx??x±?#¥?€x«?Òªî?õªÈ?•Yd?]Ъ?…oÁ?ˆï ?„i?Æi?!%‡?]ê>ס>¶Eã?›°?ÀyA?S£?²“?ÌÉ‘?÷p‘>Ç´“@³Z@Ý@L·@.ƒ?éêu?ܼJ?Âô°?À/5?éRæ?ö¯?Å.A?Ä—?d/š?I +>ûT"?Ô?±Û†?¶:?Õ¨ö?ÖB­?]Hà?FJ>Ê{O>Ìj¿?ÄU?ÇÏÉ?ç‹o?ò‹v?…O¿?€Û?xÈ™?sä>àO$>Øh@ú­@7Î?v{?|i»?7+É?Mö±?›Yò?Ñ*?{Ä$?qdÿ?~ô?xôj>ªÆ8¦?®çø?´rn?þ²?üy»?Å%•?» ?Á5«?Åj@3t@+ú?!&?1“Œ?§Ê§?¬™‰?3‘7?*ÁI?N‰Æ?I^—?D.¹?>/?C®?Cß¼>A¾Q>GÄ ?˜B +?ž$?°kë?±±À?l{Ì?pÔq?É?,?º×è?´»õ=flG=šR?‰Åæ?_T?#q‹?&âÁ@å9@7>?ή?¿Ü+?€#1?|›?†ÿØ?}¬x?¾ô}?Í+5>¦'«>#}¹?呾?ü%Ù?Ä{?¾³?½‚h?¼ïÍ?†Õt?{Љ?²×a?¼À'?Ï—ð?Íú‹? ð}?š- ?µÁ¤?¼{½?•ï?Ž ?þkM@©Ü?Ë• ?°âP?³¼`?¶™?æàb?ûœ»?ªN>ú‹h?ž%ø?Ì~´?¾Ž?»¶@+ôÔ@_ Ä@™ø?¢ ö?Í>`@h?¼X?QCp?ݳ@<^›?øª+>ùt>§*ý=1¢÷ÎY>û“P@/H<@-4?ÍŠÕ?Æ]?×Åî?àR?晨?íø?®Œª?˜»³@ &@"|i@9A×@@é"@#éÎ@kk?§Ç¹?ë#?<ƒÏ?v?J.°?$µ?}'C?¿L ?½ I?ª´^?Ï¿,@ õ @@î×@U`?ÈWf?®­ê=˜žc=Ù ?ÌÓ?vó@Û@£@ê¿@$£?†‰^?zã +?Ü÷¿?óÕ-@0ƒ@CC@5¹é@"\?ð´ ?Àæè?ú}@z?ûÉè?¶+_?Éܘ@c¾@±5@B•@6=@\Ø@Øå?ò±?ôÄ@È\@º@[ ¤@dâˆ?§7x?qc ?yÂ?„.¡?ó»{@Úÿ@ ó´@ œÙ@+©?@8¯@&…Õ@(@ÄÑ@ñ@&8é@;|à@@ž@·G@…??ºëŒ?¾Ôt@ gG@(Æ~@2ÍÓ@*ŽÙ@=&@OðÒ@:M@%(o@$ât@*ÒW@#¶Å@ ~@®?¹ÂB?Ä61?Ýü—?ä@%{…@Ýk@wA@eƒ?…%?/²Ç?‚±?«ŸÃ@ ýÂ@L«J@ 8?ì)@ ÓT@2¶Í@)Æ@ Ú|@&[õ@4öŒ@#}á@/ÈQ@0\,?ÓBâ?²õÕ>ò6z>«/3?ÛÃ?͵Ý?ÃöÏ?¯ª?ËO£@æ¸?ê©?{¼ö?aaÜ?Ökó?¿Çˆ@$ìY@$<£@§?öO@?@ÅÊ@#V @&Ø3@Q=?´Pl?Ãh\?ÆC8?¸‰É?çº?ç¼Ö?ÿk@H¨@8z@D·0?þÖó?Œá¦?¬Dü?ñ2?ßå³?f Þ?xȲ@Y@÷È?ì6 ?üvš@Öx@ Šë?à$C?¬E5?ÅÓç?ùƒª?ó_m?«ô©?¬©Ú?ïý¨?ù¹È@ „@þÑ@÷A?ü¦×?ÅÀÿ?”l÷?™ÍN?²L/?­5ù?©«ö?¤¾ä?Àb¯?ËYÜ?ÄAó?Å Ð?Ê +"?Ï +e?¼’Ó? C ?œŸ?gúÒ?uÃM@ †µ@ä[?Ø…Ø?Ê›8?ŽÅq?b„ü?¿ä{@ ~Ô@ãÓ@]E@Z&%@(@—å?¹×?©qû?½^œ?Ë&ª?¡a-?aµ?Üï@zÐÛ@oÃÄ@?@À¡?³9?š-ï?õ­:@ú?ßúã?Kug?˜Ýu@ Eª?ú>Ã?õ!?*ð^?ÑîÎ?á¼?Õ•Ý?Þ¤w?§8ç?"»Ò??¬Ž?§R?¢?h?œ¢?—H?–?¬Ž?–ü?€bj?YÈ?î+?Oi9?×C³?¿à¾? / ?w±Û@ X?ò9X>\R >,!?«ßX?–ÿš?„F>âë>?Ð?ªVÒ?n ù>ã\Â?$%?—XO?¦¹%@n±@ è?Í!>¾lÇ?yú?ž…Ç?ª*?«Ú…?4a1>*>æ +?J¸?›Y?¨6ú>RDŠ>ƒ P>ó&=Á/„>çÂ[>ï[?LM?€ k?¥z?ÇÇN?¨Ã?i™ ?^¸?½T^?Ê>½>ÂÖo?G÷Y?:É«?<ƒ?e!¬>ͨ¸>Ï׊>égÁ?v?ËÔÆ?ÐÈØ?…Ï ?wG¿?‰Ë=?˜ò?^Z>üŸB>öEð>ò¸>Ç)Ø>ŠÈ1>´cˆ>óæw?dÀ?±„í?D;¹=@hœ>Ät ?NŽ?2ß¿>ø z> à=½¾4>‘ZŠ>úu ?+ö‘?<Íb?ô>÷ >¡Åâ> ñÄ>Á°§>ÿPg>òì&>ÔWy=kot=ª&€?ç$ž?Ïé;t*ø? ÷??øk§?™ØÂ>xHÁ>ÓÑ?@&>R0 <‘ >¹)Ê?Œ¬?Há? ·? Ï(>í/™=®A²>{è? +¾)=ƒÅä>cƒ‚>‰£?ˆ¿?,G? +æ>ðc£?ŒÕ?»*·?e€>ðNY?©…?/!’?Nð>ð=–>Ê' >{Õ>Â%2?5… +?:zé?p§Â?qØ?2p$?)_ >ýß?T>ò‰P>ð1n=Ñd>ç®? µ²?]+a?p@]?_v»?RšO?aûÂ?pK"?pS2?pV?8#>ð_ú?K?,û?x?02’?Béð?p…Ö?k™h?VZ‡?Lƒõ=¸Ù=­~Ñ>ìLÂ>ð¼N?F.Ê?Rér>ü·>ÙØ>.Šš=€Ö?Á±@>U? gÓ>ô v?–Œ-?ð`z?£(©>èŠs? Ë?q^)?qo‡?qzí?^Œš? S7?|ï?\íù?ZÜi?qX?qÖ ?ç>ññ’?L?ö?&œM? ð`?pÍ_?ˆz¡?†.*?ƒßÍ?m˜Š?f©ä?…Y?—8?—ôg?WU?tmÒ>ŠË¾>_Jö>?s)ë?€(Ã?±l?©È?3Ø÷?9]>KÍ=¿„­?[å?# ?Š­~?”tÁ?~ü?tS? ´×?µü²?]æŽ>÷õ?2_?GD?Æ\>ÛCJ?²…?Oð«?T?·¶g?´t³?¨Êz?°šp?ÑH¦?Å›?¦Š?¤,>?¤>T—±?0u…?3ã›?t(?uëŸ?÷>×#?Ñ·?úUj?«ê?ì1?"$)>Ó0d?­ «?äoÁ?¾ÿ‡?­Ù.?-k—>ìä?M-!?¹bÐ?¹tš?¹ƒÏ?¹‘`?¹ ?¢‰?w«•?Š€Á?£¿1?­ØÈ?Í:?®¼Y?@ ?b?Ë•ª?ÕîÊ?øU¸?ç¿??Š4?‰ØS?¦'m?¡r?œ%?–]?£M›?ªªß?P¸à?KÓ >bÜ4>F?`g[?y™>?™‡r?¢Ÿæ?¦,n?©¸Ø?ɘŒ?Ë©?Žíª?z6>‰eŒ< KÐ?€?²’ß?›J?z¥È?¥ã.?¼Ø@ 9¡@$‹^@ ±c?ûz?¾Ð?”F ?€½è?fì„?‰Ï?›¹$?sÇ?£Ö??ƒ}e?1!?º?Ïúù@J@A˜@ «,?|/Ô?g§„??˜c>ãÄ=fi >ÝÃÁ?Å£?—TR?½M©?¤uj?uô½?Tjó?)¡—?;T}?V9?ÁÃ@'Êa@b€@‹?ñ1Ú?ÐÍt?À8Î?¤ p?“ô.?v£¢?W“¶>ýÌJ?;zÿ?¤’ò?µŠ'?ÔU?Ìlg?¾—ñ?ȶ?Ûs>@¨˜@D3£@<¬>þrd?*çe?„ìÌ?€ØÂ?~£Ç?‘Ûy?º¤»?¶½A?®†Œ?§?0FÇ?@Ýý?`/†?àD?¿V˜?¿_p?¿j‰?uí?7eK?~!?¿Î?“Rè>ÿz6?Gs9?§{?yO>¢²?‰ëÐ@+É?â<÷>ÿ͉?Kþ.?¦µk?Ws£=ÄÆ>ÚŸœ?}æ?™;Ò?¹úè?º±d?À®?À$ø?À*—?×òS?ñAÝ?Â\?“7 ? Jè?©A$?“Q½?€<?›?¼‰I?‹j?F’%?—ò·?À}A?À€Â?À†ˆ?‹•ö?DÖ?e[„?€fI>øSh> ñ?©V@på?ÑÜÖ?¾Ž^?˜ŸÑ?Œ8ð?«…ž?²¸j?g2?C%”?`Á?b¯7?Ý?R?´`?ÒS­?¦h3?“j?zb‹?%4?K­z?9³?öÀ?ßà?ŽùD?€¢?™”? ¬^?TuA?QMÈ?,Ã? Å?‰-é?ˆg?¿[/?Á¶D@=»@÷Õ>IÍã>±¬ø@!1@Þ7?dÄ?T`/>⥕?9E@)ö¾@8€?Òž±?Ⱥœ?BYÝ?^V?Á µ?Ñì&@šp?ÐÖÈ?(î›?;È?²}?:™¼?µq?Œñ¦>/ô>}å>?È)>´Z >õø +?±¶ý?­÷?®0?Â;Í?åâÿ?§‘Â?$³?¥‹¸@ Ð?ò¬ä?Àíˆ?–ì?C æ?¼*P@ @îw@‹Ÿ?ñú&?ØØ×?º{g?¡Qý?h£'?Eº@T @dg´@:4X@^s?ñp–?¿EB?ècg@xd@Ü @¯Ú?Î-?±ÕŠ?Òá-?ç3Õ?e+Å?fš?ü?À‘Ÿ?ÀŠ ?À†1?‹£ú?k׸?É/ï?Ù©Ð?óI„?õÊ’@L¦@ OÀ?Ňx?¯ y>‹w‚=L?Ût‡@c4?Ëgl?Äê«?FjK?8µ>§Ô›>§E?8/Z?J„V?-À?.–:?zÙÜ?€þ?â•>ú²b?Ú@?åC?¸ƒ?¾)S?­he?®©ä?SÊ>÷2?ý@‰?þöp>WŒ¿>ÍQ@ºD@µG?l?‚žì?äÿd?Û +•?¨ƒì?°a{?¬è¸?¦Ü/?!ª??8Ë?OêB?ü^/?ñǪ?™„?ŒæÐ=:!$??öJ?[‹A?é=Ï?ð˜é@õp@IR@ôÉ@ó(?Šãê?ŒQ´>þDØ?i?°—?±Ë?×Ï?Ï6?¦;d? í?}ëF?yÞ[?8°¡?,'…>žós>´}¢?#Âq?%…û?‹ýŸ?‡V`?.Œ¢?,.6?òˆ?ôÏ?ÚKj>O?XĽ?SW?Û›‰?ç[@ ãÎ@?Öú ?Ì®û?µ£x?¾k3? +½>üKô?uiÿ?|0(?í%Ç?÷ûö?ÄL ?¼ü?$KT?ÔI?¨5ù?°µ`@G@ †q@h¦@|d?tÞJ?7Ï?Ý+?ô„¡?Ÿz?¤ +?óø·@þ¹?Òß>?¨2â?‘•u?‡@@‰ö@Q;?L“ª=G7Ä@R @HÙ¾?ë$Ù?'a@‹D@LL’@ ?Ùp‘?é÷[?ðI +?Ò}”?»@ö?³ ?¬Óq?xЦ>ù^»?4rù?}XŸ?H>ëS?r?‡?ï]f@çð@Y1¶@>cm@_?õr5?¿ÞR?³e?—ª ?‰-?x3å?‘™O@–H@JÃ?„@Ý?~Ë?Å>÷åÝ?Š€Ó?˜ +@ &®@ ÿ4?b/A?LÄ?Îñ:?ÜSS?ŒK?€I—?µ¨æ?Ë(U@*Y`@H¦‡@ö³?î?Ô?»Øà?·zL?´/W?’Dã?_ä?››}?Ѿ-?Ž¾E>Æ›‚?hˆ?÷p?ÑÀ·?'ÞÖ?kJŒ@QC?ëøë??Yy?D˜m@…5@I|>ÌÈ>‚0óóB?Ñ7ì?óÁú@3\æ@I @zÑÿ@Ž'Å@7 ?àI<@@ä@3/@'ÌÈ@|=@?¼g@ƒ.¼@[ØM@åŒ@$»@F£x@8ª½?טZ?åÀŽ@S—k@S€ÿ@#×0@UX?›K?t$?q0G?q–@A´]@qÓ­@$o¬?ð®T@ö@C¨@Pg¶@R9û@)17?´ Ð?ŸgŸ?*–L?Œš@†@v¥@ZNš@P0 ?ÝŸ?ÜBÒ@Lý @_J2@D¦@0îÁ@0ß@:QØ@°?î8@ÿN@ŵ@Ý@ ÿÈ@ 7}@ @:N@\H=@^Fz? ‹>í×?¾QÄ?Ëé?ŠâÚ?la@`Ã@ŸËY@dGÔ@ ð@ (°@¢[@$“á@A é@Da@†™•@‹õŸ@0éB@0N@b@tË@ –Ó?ÿÍð?’N?6}™?joÞ?ŽE?ËX"@j @Ò@Åc@ÌÒ@l®@jTi@‹ù@“L@• @ +/¯@ë´@É@24V@_îÌ@1·‚?r°r?“[@1GÔ@-sS?¯1?³¢@û¥@a@6Š´@F€@-?ÅV?¢ð%?f×q?q[Î?‘Š?x²p?éû?îAX?ÛŸü?Ôy)?”„x?‹x?”¾,?—®?‹†¹?epî?~Ø?«í§?¶‰u@=½q@6E@$Òè@ šÔ@Š²@X†@ 4¢@ NŠ?îFã?΂"?à£?á ?Û÷ÿ?«Ð‰?ªËk?ßÛ¼?ä:æ?°:ñ?—çë?2Q?sø—?ª +@(äw@ma?Dg.?m–d?Õ)?⥶?¸?…?šJ?ßÚó@hK?æ¬>íƒ?6j?»ö/?ÆwÁ@§*@ñ?Ý;?¾û?Ž«’?MjA?›¼ˆ@ €h@ ²Â?–u‡?«ú?xú3?….À?­¸ô?¬&‘?e%_?q4>øvG>í¿Ç?<­¾?í¹?×C?¡“ï?§ª(?hQ•?=Í0?¡Õ?àÜj?àär?Þ“?Øq+?ÒÐÝ?Í3ü?}Å(?Ux!?ŸÔj?¶’+?×d@x1@ÀC@!Ìæ@W\@•˜?àá)?¯’'?·ä8?¥áq?‹{Õ?“†C?« G?§Jø?•™T?œ†²? ÕÆ?,ª©?äø¦?üÖ¼?¼[»?¦›?¥cý?”B?«F?õ-2?ãØ0?VÆ·?>´«@Â@"©S?š²¿?]O ?°70?Ôö?š&?,¸ò?M;N?”?K?~yµ>ãá‰>êØ3?ýÍä?î¸H?TÂß?"ÚÂ?W¾Š?ƒò?6EÅ>9(Ç>÷_é?¦ÄU?œRÎ?\?‘²g>ikf>5þŽ? Š?^S?¾w?ã×%?mê??DÁ?[“?¶r?‘q?†“ô?¯«¾@@íÇ@Wl?Öß?¶˜?*¢©>K†>!>3Úl=¡_Õ;þ'à=KØ?¡.v?ÛT?\ Í>ïU?@ä?¤!?¡×ä?íÿu?À1„?™G†?#—>b¿@>ç÷ƒ?)˜?/ÎW?emh?’1ê?ŸCž?UJS>ö¶[?Z?,EÀ?Aš>øê?8½Z?súv?>^O?!¡ð?B·d?3‘›?5å>ý·w>îë>ûØ´?T¯ù?e†›?2My? ¨w=DñY<0ý?S/=?cë;>þ“? ’Â?j +?*ðÕ>4Eg>Æßâ>çöG?,=¹I=6é<>kÄÒ=êHÁ>“½?ŒgN?CÃ>ùÛM=û_­=AwÆ>`å–?~@?/S#=Ç<?(Î4?8Ûv?®Å>ðUX>ðM€>ðIÍ?n™?‘²Í? Ì£>g€Ý?S#?5_å?ˆ(>ð$£>¶Ø—>t ³>¨T­>ù=?&‹?aN£?NC?9Q?q„<©å>>‰e#>Šw:´¼>¹7Z>¹Àì?×9?™5?y-9?Š ¶?_¿?H“Å?IÐñ?K-?X‘>ðJ“? Ì?PjÝ>þ…‡à?V&o?AËß>ð}B>ð†¸>ð‹™>ð–a>ðž¥>ôA>©­Ñ>’'€=U~v= ¦Ü?HŸÙ?pÝï?>¨>÷ý?Œ„?´Å?’;?w>“>ÿS0<Üñ>n ?}[?*BP?qe¼?Rkë>ñ>Ó„¸>9%>Iÿƒ>[\>u†è>ò·K>ñßq>ñîå>ñýy?ÕÏ?#ëå?‚ î?Öš?’ì?“;s?<ÝS>òtÓ?; Ì?r“š?:.â>òµ)>”M“=û©~>´:>òo?sòÖÕ>ó•?¹}p?¿j@ðž@(¿ž?¢m³?nç?pãW?s‡¥?Êeo?ïp®?ȹ¬?®¼?É ?ÞÙÖ?­±•?tºf?UÀ9?.j?sÀr?·ÇÓ?°Æ? Et?²j.?Ûoß?Ì”‡?’OŠ?ƒ¤ù>õ¤ý?úê?™yµ?˜Ê?v±Õ?vŽ>°ÛÉ>š7Š?Ü@‡?ô?Ñã2?ɬd@ ïÏ@¦…?Ûm1?¥~K?™f{?‘†ÿ?œà~?¬äd?³?·™X?×–q?õæ\?¿>¡?wšT?QÞ?JA?öP>¶ˆN?‰ä?xŽ?€•?Ž2.?—å\?¼„[?«¼?ìË?:{:?´Î?¿Z?øÛü?ëâ>ŒL´>¯l'?Ìáy?Áà=?%j¦?!ê¥?Š‚;?‹í„?Tl¡?Bó?8‡7?.Þ@=‹@4v +?¨«?z%ƒ@Us@—@SÈ?õ-2?{)> è?M^Ù?‰ÌÏ?žÎï?­‡?Wµ?/Ø?*üè?,A?o¤?†¨9?,ïº>ô†3?#ÅÖ?7Õ?xþ?–ãf?ˆA?{Ü•? 7?Ææƒ?›Ÿ?`È?©E?çœJ?žg¤? r?*?Ã2i?£D|?}iõ?#=­`>„ù—>üé…?—OB@h?ÐÚ?‹¹O?Ž“?‹˜š?¼Ö‘?ýcH?ôC1?âÖÌ?¾ãõ??®?cŸæ?9"B?câ?˜?¥?ª?è?ÒñÄ?ã÷/?óš?ó@&i?ðÖ‡?±2”?‚Êz>þbà?~¾Ô?÷—º?¸þ\?bÿ?3=?„F‡?†;¤?ˆ4?^¾>þäˆ?#Þ¥?]Áï?œ¡°?ê?ØÏÖ?¿a?Ž?Ý>ÿA‘?c®‹?¿ç?°‡‚?’´õ?xËô?PA?x¹G?“?‘šZ?¦,?WØf>ÿ»Ý>‹`>=Ôn>ü Œ?pq?Ä":“˜?tÜ?ü„$?úÝ?øœG?‰N˜>Šß>½ÀU>÷ùô?¢Q?'&€?’Š?ÀF—?b¸”>ÜLÑ?s÷?¡Ìf?o7_?9Xy?‡¹?§í?Æ?ÔöT?ê–E?ñØ?¸ˆ(?™*n?‡GF?€cÁ?Ô9=?ü‰Ð?>Ä<h >ÀNÒ?=5?j]0?‡ðx?$t?}E?™™o?±{>Æ1i>ðð?0?°;À?”??”&Ì>Â\Q>€L»?4«ƒ?Hûø?8A?0ˆ‹?þU?”pï? +ßæ?«>j›s>8àô?¼iÏ?Àþï?ö&?úDÞ?ÆÏy?¼*j?-‚?97i?æVê?á z@!Ž@¸o?±áå?±ÓÁ?´ ?°bª?ÞÅ’?ÉÎÄ>ÝÞÑ?Ñ?€¬Ï?Ž ?Á?è­]@AÙ@0}Á?»²?š8ú?ƒ?H«!?–ÿp?¡f?Àýc?«tŸ?€¨[?—Šg?½F?Ñùª?ûÂm?Ìѧ?ŠvÒ?èõ}@2Ï??÷˜Þ?\Q?hžF?„©!?X¨{?"¹²?X«=?€–ç?¤óP?Ï’­?†p?°?`äJ?”BŒ?‹55?{5?“``?¡J‡@/ «@p·î@*ýP@}F?ƒF¡? e?gDW?þ?—•e? ÉÎ?”ó)?¨ƒ?÷”V@ Å?m²Z?^Ê?÷èT@yï?¼ž¾?¡†¸?Œí2?‹—È@<è@¢9@ç_@ [—@@æJ?YœÞ?œO>ïÆ>ñèç@"@ßÔ?>ˆÑ?·„?i÷¬?l¤{?™Ï?”Ü—?m\?™ìL>Z$Á>=Õt?xŸD?óq@$?ûqW?£[Ð?¦!?Ÿ÷O?•dN?¥Óš?¡òë@ +\=@ ‹‹?öc?úÛD@³ð@×ø?p ?‚W…?ˆ ?RÉ?’'²?’>³?Ñ'?EBÃ@"î™@»Ð?w?t >ÿƒ?¿e?ädO?åU?¥þê?šê>!\`>*g">¶K²>ÀðŸ?‰{¨? 6°@>ã³@1tÅ?}OV?Š`)?ºZ?· ?«½#?ž5?9HD?Zd€?Ò7‚?ÖàG?å-¬?Ø€ ?}á´?}ÓÑ?}Åð?kä>9FŒ>m?´—?¬¦Ã?±j?¹ .?õùŸ?ç;ú=N^–>ã…?õav?ãór?.É?4Ý¡=˜l¹?×N?Ï&Z?|½Ž?~Ma?¹%¿?¿Ëþ@®¹@Ð?-Ôî?&X? ÐÙ?F?bå?j )?ºJø?½µ@<@øÂ@0W¸@+)Ù?Èû'?¼Å3?ƒ€?ˆ5@¼_@ ¶2?:q™>ûRj?Þâå@•?é}ò?åpm?}¾?<ä~@ "(@- J@Wü?öz\?Í©G?¾ì?D³ú>Þæ?¬H­?îÞe?§ò?z+2?Ù<@ X?ô8Ë?Û<û?þLJ@5.?Þ$Ì?§‚½?“®?yxÓ?G”¬? £q?j–?¸0¼?Ñ°ß?ì´k?ìN7?øèB@ï>@p@Ì@³T@J?×då?ÙÇh?Ô÷?Êzˆ?¤Å'?žX%?—è3?–É?ÁiÛ?ÁAa?õrÝ?óz?îMæ?ç»_@|*@yqû?¯,ß?±?§¹?²zr?¸þ?¬Ë?a•?LÈ>?ð¨þ@ðð?ÕŽ ?±9@-@Cø?ì…ç?¸y/?Erw>?õô?þp?kÓ¹?‡O??±ü@ 7@ƒ@ Yo@åû@ t{@Ë%@ôç@Bˆ?w×*?u3?^Gµ?Oùì@I´@Cx ?p¼?E)Æ?ÚË?ó¶ž@(@6¥{@ ìj@dÅ?¾ó(?Š~â?} +?µ +w?žš?‰=C?»m¥@iÝ?úàV?¡}Q?º#Å@›#@@ª?œÈ?³u–@\nå@ZkÔ@:K°@C}W@3íï@3¢S@Z @Y+g@IÅà@L&Ø@ Ä^?ËæÖ?ƒu?u!M?Î(@¨@ý¼@áû@£@ 6ã@'"q@pdY@pNw@VA´@X&®@l¥ž@_²@42!@2öõ@dL³@v—¾@/|÷@ÖQ?óÙ?è·}@‘K@1¨¢@/…E@-]+@+7M@)&@'i@.ÇN@2ߌ?^ ÷?G?@0h@òb?§?rë'?Ÿ‰?Ñ©@Ê;@*ÂS@ +D@ÐP@µã@?Úô@AcT@&Mâ@(Î @Aåd@;:ñ@aX@iʱ?¯F?<]’?„‰?ŒKØ?Žkë?”ù‹?ÅhÑ@o2@’ý@(?6@/Rm@,á@‚£Y@£?ð=ñ?‰@?v“ý?‰lé?·}?Ìa@ +û@à½@BÛ@Ä@>gž@DåT?mA?vp±?ï¥>@uE?ÞÙþ?Ü#¯@ +@È?í0o?™s¨?¬³@ ê^@Bñ@'ñ£@#¡@1½C@,yV?âÌÓ?«ó?Æ‘¼?ÑSv?©‚l?„ÿÍ?‡]s?«ßî?§ +>?[Ñ­?‹d$?Ü#Ð?ò,?Öè?à @ ‰`@: È?ûú=l¹Y>'W†?vdÖ?…2¸?€¼ý?…Ž@ ‘r@²·?»y½?cQy?Š9À?ªX?ÔÈ@*;t@&;Ç?¾X°?®Ë?÷¼À?ÿ“ë?Û3 ?ÏÝÿ@ì@=ãì@2qÁ@ o??÷(d?x¸?L?–›"?¼D©?¬›?¨ö8?xÄD?Hã>ób>ñt?%“M?ak?a\9?šB?Žª¤?íÛ@ ¾Ú?Îïì?}ˆ?Ê`ã@>ÅI@+wz@ ™³@ —†?ôb?Û, ?«½w?† \?©r?àÐ?¿µA?sî¥?‰‹å?¸ž?¾C®?«/z?¨™ö[o?ᯗ@¹?Äç%?,°?pJ?Åo +?¿Úu>ù2°>ãóñ?µ? ?ÆñÚ?hã?/¸š?cÍ>äû¯?Cÿ#?›Š;?ªÞp?¬LW?´µa?ÔW}?Å«_>uÈh>”Ï}?…÷Î?‚Íå?j®W?t‚ ?dé?Gµ?0îù?/`ƒ?}’T?¯~?¾Ü°?ç›ü?×kÐ?·š?œÕ¹?>6?1B+>ëÚ©>ì3í?Q¬Â?g\¥?&Û>Êñ%?“¢?²ÇI?@5>ï-?0³’?] F>ÆR˜=–p?(wQ?‰1û?˜q?-,’?©(h?4y:<äü„?T¬ª?êÏ?¯ï?Cë?<ùÿ?Këü?. µ>ø¥Ù>†=ª«8?Qg?RN|?`Üù?†æ?,6(>Ëiä>BÕÆ<&ƒ9>Õ×?‚§>áóA>ú²•>nz«> ¬=œÎ¨<<䊸>z/­?_…ë?;ºÞ>ó ã>Ž÷ý=æÖ<äÐ;¼;ßQ= 7>£YY>N>ªyy?ÑpT?U>ÂJ>÷šaUðî?W´·>ëáy>sS>zz«?mâJ?pCL?sΖ?pjY>˜ÛS>q¥–>rÄá>t >y×>i@è? ß­?6<>Øš#>~R\=ï°ö=ÞÌe>XDe?5i)?»J•?‘À„>ïûq?Aé?Щ>ä}¢<ÙC>87Å>O*Ä?oöq?oö£>JJÝ>#÷?’$?œôL>îµB>§1§>Þü\>ð é>ÃÊ–>±/Ñ>ûØÑ?û>êéU>œÓh>µ‘‡>ðR—>ÿÍ ? ‘Î?óæ>ðqÔ>ö†?}¡?+ý›@&¢(@'¹`>ÿ§>ð¯\?flª?pÃb?ª)þ?´£Â?5@ß>øz?Œ‰Î?±ój?Û>r™Š>ñ.é>¤4Â> +œ˜?+ó{?ÑO²?±Ý?>o¥?:Jï?6É?4ß?O«‰?RA«?¸/?´ëe>k/Ã>4„.? +ˆ?*Á®?-|?/t?9*ó?7W?€%.?•ô?g®¹?-õ7? 7Å>¿57?³?Gü®?X +’?s7?ƒ‰ ?¥ìF?”MD>¦~ö>§Ê$?&×û?% Ø?Ù1?Ý–k?FÇ?(¸|?Wb>ûß>ô¼§>ô[Ž?6u? ^ ?Y? ?H;¦?+,V?¤Ü?T0>³)Þ=Þ ¾?/Ñ?‹@²?Qg»>¤è? ^8?—÷?™Ï?ŠF¤?‰#Û?Ç‚E>±Oƒ@Ìþ@ƒT?Ïì?Ær?eÀJ?CA@d[@%—±@åÎ@w?P±<ד> ²é>ù†m?CAY?€I-?~Öò?wƒê?ÄHS@ §?܃S?•u­?ˆga?wû¤?ZA1?!§Í?=AD?xKµ?bžÿ?\˜?.÷9?Š3?Ÿ†2?½ Ê?±K«>ÓDz?‚¡@½@P?A?¯ß?š~ú?žRÄ?ë‚ñ?@8Ç@¤¸?»œ›?·jT?…ð¦?{) +?.? p?wá?‰M?h¾?T“¯?Ÿ§Ô?®ì×?HÍ>…;+?VLú?~Ñd?YÕ?KNz?¸¡Ã?ßµq?\L?P?{š?´¨?Õ /?’®Þ?RA?f„?d€È?6Ü ?Ùÿ?@`ì?h¶œ?tĤ?|O¾?ݯŒ@ž´?û°ò?¼™Î?·Ów?¯Ô?­hM?¬ýN?Õ/›@€¾?Ä1?]`Ñ?ªÚM?íüÑ?·Â“?…‘?½­?ýlõ@Û?þá¬?íVC?Ô‡*?ÇAë?¾R·?š(x?Söz?½@7?Ý?©Û?ÞT@Y®@éö?Ÿ?oô>þh±?ŽZ?ùÌß?õ -?óºs?©Âh?ÿþ?8ª?d]q?³:>ˆõ?Þ ?}¤Â?°OÆ?æ$?¬Hb?Er?w±X? mx?±ò?É%8?ŒƒÆ>ÿkJ?¯“?æv?Ñ“Û?¿¯a?¢&à?qi;?—$/?¿Î;?MX=¥6%<¯±š? 4q?‡ù£?Y…k?/êñ?ƒ|>Ð+ ?¿¨Ý@0.@?ðXý@½@.´?݃m?´b½?É«.?àQ¦?{?>7?~ú¥?˜HJ?¿c¼?Ø2@ ¾È@ …ï@å?èѦ?¦6ò?ˆ7q?±ë?Àé?À‘v?À ß?:9)?jD?Î]1?ñ”?äõÖ?Üßá?šä'?’˜?³5’?°1Ã?Íåc?Ðet?dE×?H9?K2³?>vº?q!b?o >?M¸i?Rö?Òz:?Ô;o?JùÞ?=¸C?^•?Œ‘†?Àâ1?¾¥?…vµ?š1@¿@lÈÙ?œ\?T?È?¼yß?DÑ ?k†¬?Àïê?ú)?ÔµH?¶Ã>¿²?$)?´º•?˜l?AiÕ?tæ?Àô»?ÁL°?µž5?·Ì?ázÃ?ÏÿÇ?—ø?¯ÝŽ?öŒ^?Þí“?´ ?ªGš?‹q¸?´ßU?ÿŒ?ÿ,ó@š@!œŽ@Gb§@I¯?ºá:?ÐÖ±?Û_l?¶ÿP?’jô<>˜¥ö?=+Q?U>¡–>W?Èv?ç¿ò?ƒ,ž?pÝ¢>ûp<ɉ’?±w—?Â*ó@2»@2ª?Àªƒ?µÜÆ?¿q4?ÀÇ?í²?ìyK>´æ>Ÿ1½?3‡~?:ûÏ?üfÝ@Œ•?¥4?"*À?ùºp@(†?í¼?ìW?›e²?™‹i?È«?Ìvm@-P@ ¶õ@^nO@Q”­?ðœB?ßϹ?;œ?|û¹?aþ¸?cÊR? ùC?¶ÁÖ?õÉ4?ïÌ“?ìIÚ?××Ï??š‚?˜'?]?Møû?N3?’ê‡?•?µ2?Ìa@0ÙU@}Ä<Z>,bY?„ +?Ž§?¾ Ò?´W ?_ì>?WŸy?O³÷?TÕG?JeÇ?v¡?ÀëT?³Êj?}²R?Š(Í?ÇZ?ÄÑ@½ï@ ?}hß?…¤?½þ??½ïP?½æU?¼ˆÀ?Àý?·ñ£>üÿ>ù“C>Å› +>Ù‘?¤Áê?¥Â?/y›?<Ä ?Ÿrý?žíh?àÂÿ?ᱎ?”l­?’ü·?Á ?µ=½?ÙŽ?ë‡?»j'?¼ø8=pÝÆ=¦ŒÈ@PòG@XmŸ?™Ë,?‹é?›xG?–º?ñ,À?û_?(š>û=:?«œæ?¼W¡?äºH?æBå?þ1S?øõô?ã…ê?Ø7þ?Ūƒ?¿‚¾@ x\@çV?€ Z>úWj?ˆq?2êm?±qü!>hÉ?Aa¶?ŸÉ<@õL@v%g@€=V@}§ë@€_‹@RôÐ@V¥À@ié@gƵ@Y§@`é‡@-—Ý@#œ"@O¿Ä@[@Dêš@8î€@H¿?Ô +Q@ý“@2kú@)} @g@!á?hó?Àwç@‰9a@€mN@l?ý5Ä@Ü÷@åš?̼2?±R]?±9«?±&{?Û9@ÜÝ@ <@Wæ@ +¬U?îÙð@ØR@r^¸@\¦g@sÓ @|yè@§Ú@‚@ +‚¢?ûúö?¬^»?ˆCƒ?Ïj%@(@ Ï@3*@ +¤Ê?þm€@˜d@&O@/W?5?…Ðß?]uQ?EP±?™Óá?²ÍU?Æ'Ü?ÚU0?ü=(@'¶â@ÿ?ç”?u/?ßÉ?Õ©?½Àˆ?¿ÔÊ@ê +@#ë@%þM@5p@"y‘@W?ùS?¬àE?°wO?¿âÑ?Î4×@³@1i?Ü=Ò?Î@Á@ ®‚@&X£@ïï?ÖYà?ÒU(?«ØÐ?µ0#@–'@3+?õk2?ëPb?ÑÒ?Î~ö?ò>ì@«ç?Øg?`?`‚?cáé?c»ý?Ë?Áç@“;@*’?Þ?^?¿?“6y?¥€œ?›¿¨?€ö?¢Ž @1{]@)«í@ds@á?·ª?™;?à X@‡ ?ØoC?G?EjÃ?È0U?½‘”@}×@ +p?yý?æ ?BG?nGä?ËYu@=Õe@+‚N@Ò@¸R@Uæ?ük?ãg¬?é†Ë?æCb?ÛÿH?àî?ìÛ ?ÿÔJ@ —å@ ’%?Âõ¾?ÕÔ½?ñ˜@©@’?è›?œî°=ØñŠ?©`@FÅv@5ß5? 3…?“XÚ?Þ d@¡ø@=þ@zWß@UÂ@#"Ž@9?ìk?ý[%?Б?Ð…Y?7'?aÌ?ãí@!³ÿ@ Øp?á:?ÞÎ?Å ˆ?¿1™?±ª ?Âr,@×ï@'íƒ?æ4Ù?’¥C?”Ù?©xd?±×Æ?é±›@Â@õÓ@ Ã?A`j>â­è?ÔZr@w?½‘6>ã* ?ßR?}ý?~¶V?ªÃ?£Ä¶>ˆ\ü>ÀÙï?‚ÿ!?ŽÀm?G[o?B>‹X¹>£aë?t!}?ƒ¨Ï?› [?Ÿ9²?¨å ?Ñíº?‹ßð?g¬¢>åN>”V%?©‘¯?ó*ò?Á‡?®òŒ?°sÁ?°H>?±;?¤º`?“‘µ>Ä”;>ú¶ö?SÉ? +Â>Ö×>èa>íîm>íuÚ>ä)ÿ?È^>ÇåT>šú½? X¾?c¸?@Zè?^kJ?^Ï÷?qwî?[‰[?%Ä.?•ýÌ@â¸?Ñïæ?qûô?K¸-?H‘_?‡–?‰?†‹1?Im#?^o>åG >ôˆ+>ÚÊ©>©Ûø>µ\&?5–?b’4>Ùz9=¡úÊ?™,?sB´?ºÊ>ÿ¸ä=ùBÍ>Ù(?=œ>èëÔ>ÿÅå>ìþM?»K?ƒJ?tÐ?O¿;?(¶À>Ù‘>OAD>¡À>Ä(-=$so> ’R@¿?Ì6t<èjL<³PÐ=·ô²<øP=Q…>˜‘M>Úa>~†>™+ü?7Ã?5&7??•–?@Ç>>|Šs>^‚<7 p>Í{ý>ïùg?|,Œ?ŒX³?ï>Ò_>‰¿a>N?½>ña„?*Q¢?ÍÂ? ÀÚ>âvf>¡ ?ê´?œÝ0?oÇ%>1¨$>i¹«>ïæh>ôÞm?o3?‰>¢u">¦Ê@ ’´@sÚ>}ù>Ž!>²K¢>¹Éz>ªP­?7`Ÿ?p!)?‹á?)?\§ÿ>ð:?)Ãñ?pHý?NGP?¡>?"ü~?{Ë©?j¹?âÇ? !>æ¦~>í¾?pò¹?pÔ›?p¶Ï?qª„>*Qm<™°?³€´?ìÑÎ?½q?¢ÂÕ?„wk?a<ª?V»è?IÄ?‰Pž?Àçí?©[Ï?qh¯?qwä?q…B?ac"?;R??©Š?ñ¾È?ðP?dþä?\¢??{Ì?>>ŽH>b9a?Á?6]Ã?dQ»?}#µ?ï.?’~x?‘TÁ?%™?P>òÊS?Xö?Oì?h!?ˆëG?"?©‹ð?¨«µ?¡õ*?žH+?'¹‘?,%2@1•@3¤?€ŠS?oÀØ?Ë>óõË?œÁ ?°µ@\y@D“?Ì΃?¥)´?Hœ}>ôŽÖ?Ud?‹3˜?€(|?tÞŠ?Vc?"ª?ŽyY?ú»?¼?>õS,?²R?5¿®?$>‚!>°=?„•½?†8Ó?HAu?J¤?&î ?-&”?@{M?7ÕÐ>ºÖr>¤k?V&ù?v¦>?k *?kJt?3?"?‘Yr?¹b?‘õf?wI§?w\v?wrú?Wm™?HŒ?q¡v?ˆÁ?^¢¡?VÈ?¡ õ@ =?È_¼?)Ü?-D#?0®[?B^æ?rËL?lÐ?>k?M¡?xÛ”?f +½>øÿH?ÕÎ?‚?‚q¸>ùKX? †ë?ß=R?ÙÂ$@ò2@áw?•;*?ŠG?¶âƒ?»O³?ñNR?ñ?¼¥?µ%e>›¬ì>"ý?m#?Šü >Yˆb?µÌÄ?åö¤?•åA?{K?£»~?µÚ‚?Ä)Å?º9m@H3@?Îk,?´8B?Sð>û³•?«j>?ë\Ä?ºÅØ?—”ÿ?AÑ>ü™?aäð?Žaî?ɧp?ú¦à?µm2?Pÿ@D<@5¾ù?íZ£?‡D§?ŽÒ?—º„?Œªì?|ûc?±‡?æ8ý?€>?Л?Ši/?ýXV?û?ýBÿ@Ž»@}¬@Ìž@oC?Ï΢>ùxŽ?v­h?Àí­?§ +?‹6?ƒÈS?jêÞ?r;š?~¼!?aÜ?8?*?`>þé?œÀý?ÿ?ÀN? ?^r•?B42?F'Ã?J«? ²¥>¤»…?š4²@?ÿ)>?ëû»@ +ìÒ@$•°?ýiÅ?¸Úq?¸@|?¹ñ?$Š6?)Õ?Þ¢?å²?¯†?ËJ?Úš +@z‰@Î?üË×?éî?·i¨?¡ó‰?©ý÷?²??¨3;? ¬4?­ö>\q ?Ž#±?ÀS?¡ÿ¥?“¿ +?‘¿”?¼¼?º ?‹º4?º¿z?ÇØÎ?½b?½,O?Á †?Àž?¼—Þ?·ï??“ m?‘.ÿ?ë?Íå@rw@±ÿ?Ø~ì?ÕUh?‹•v?Š„»?¥uŽ?£ÙÉ?¾¹?À¿?À¿1?À»?6¬»?/ï?ë[ã?î A?Ñ£ ?Ðl©?Ú5d?Ò?§18?®•?¼rø?Åt”@Ÿý?ý*Ä?¹îª?·g ?Àßæ?Ïû†@ [@¬n?ñ+L?øÌÙ@ ‰÷?è¹?„?Wü~?ÖuY?²Ø–?™þ?:5¡?¥«@“Q?åês?ÇD?¡³?€Œ&?†¨??€…?Ãõ@Z?Þ„ö?ÀΗ?€8;? +?ªý@,÷?Émg?’åÿ@þ£@)Ž’?êU~?­ëƒ?›Ä&?ŽÞ†@îm@xZ?—ô‡?"ä?C•? Öâ?`‹³?…û?êCç@›…?Åw?©-Ø?×#?%½?ÔÒˆ?îY?÷è„?õuW@Kº@ [á?î±?â|‹?O*?˜?S$?T ¾?q%?/G?‡pñ?‹þü?Ë~?ª:?á?,D?öG?þ¶—?’›ê?˜T×?%?+ß?ŒÀÞ?T/?£3 ?§†Ò?SDö?T)Ú?®ÛW?¥F?Éô?v)>\Z>m$?Rp?_ù`?­ž¸?³Ïþ?äéž?é¥R?îd˜?áH\>ÿaå?>?ÂÎ?Ã4à?Šdé?”q?µ'¬?¹Tž?àói?àf?ïé?Óði?x9;?¡ÐG@'Ö@©N?¢8? K?ŽÎd?—6˜?«Òv?t>â{<>àzÆ?Yד?H !>%9ì>ÅQU?ü¨?éÜÈ?¹6¯?Êf@Nq@ þ?~?™òõ@ +°—?ãÒó>–~ê?¢›?ÝKZ?Щ+?}¢²?«ˆx@RÔ@@DzD?ÛËÌ?Ôàã?Š?S?’²Û?Ðà¹?Èæ4?ÓÝ?•ã„?¼øw?½[‹@\ø@¢÷@ã@ +Eó?µU ?®¿?»²¬?¼‘Ä?…µø?ŠŒ?? Ö>û/˜?”ùÿ?¢-?éêY?üªe@FÛ“@T1s@@e-@< @7}?÷­ @b»@ˆ?ÑÍõ?«Hë?¥UD?ŸYÆ?ž ¡?¥('?µä?»k¦?¶C×?¾›{?÷å“@ýP@ D«@”Å?Ï4H?yV.?¡Ýü?Àìµ?÷Ít@Q?â.‘?) ? òÃ?®É³?Ú±?ð±?ñ9?à5v?òSÇ@ cû?ðÅï? û?–1è?G ý?@×U?_º?zŽ?¹Ç—?ÀT¥?öü”?ò=ñ?ýŸÕ@7Q@Q Z@G';?ƒÇ?³S;?jëV?oýx?´‹?ÂÚ\?Ûÿ•?ãF†@ †ê@ ïº?¥«ð?v+m@9î@8uÂ?áGö?³L?¦_?¿›?¤m?uy§?×Qe@¥›@ºø?·Û¯?äæ_@#Ö@#'@Ü @…t?'e?¨q8@6Ÿ¸@3 =@(WV@ ô@9¤@g¿?=ù?,}K@ +: @<Å?÷*?Ð{@!í—@@#6?Â>’? ï?RŸ¡?s©÷?{¼^?‡ø ?Ÿ?µÐ @%3@EÅK@,ý°?óÓ?ÎY—? 6q? ©B?§—X?›à?8P&?žF>ù•?bh>Ðx=¢ªÅ?¤Ú?Ìâw?¡27?‘í?BçÐ>Ô¨Ñ?¶ë±@lÌ?ä¯H?N!™?öÞ>äZž>üq'?'hÈ?låµ?ïR§@¥Ä??ûLá@-úY@3g@4HJ@>v@.ºä@.ù¾@|o`@ÊË@Jk?‡5A?î-ª@C…;@9u @ _@z@“N@˜ry@9}F@=¢Ù@0%f@&Q?ÍÁ?°kZ?ŒÝ?yi +?Óà™@ Ô=@ å\@L@ +«ž?åb@[@ÊÞ<@ÊoŽ@RØ@Ã>l?3=å´3?ÁÇJ?öÄ@/ÕR@?‚î@ îß@oÈ@ü@$hJ@8V?¡9?pŒ‚? ÈK?´?o;?¼?°@?ÂBa@on@ÿ5@Ë#@-Ô@Û@ +¨@X×@0ÐW@+Uy@'ãÖ@#!Õ?¼à‚?­x @\@<¶@  ?Ô†ô?ÒG_?¶zù?°¢?¬???§Á:?v;?Â?`@?y™A?Ž@ ?Œ, +?µ ½?ËH:?¡ ?eFý?e1·?i°ù?kÁ?Ðê€? Þc?cÔà?c™X??Nì?5v?ú‡@ «?Ñš?® Ñ?¡¦k?oƒ?Ž°E?×ø–?ÒQ¡@ •@¹?µ5Ì?¯Ö?¡}I?Žôi?é[Ø@'p…@ @Æ@ÒÃ?é ?Ž}1?™ý@4p@LÊ;?׬?ã¹?$.?¤¶•?Î*f@CV@-?ÿ ¯@.I?üë€@F¸?´§?Œ› ?ªþa?¸9œ?ie >=œ>èkx?£.h?³¶J?]d?x¡?Ø>àÃB?唦@D'6@ Œ&>½•?%¹ @F–@OÏ?·‹?–°e?ªrò?°ZË?a`~? š£?–f?ú˃?ö«Â?ˆì›?Žµ?¹;À?·!?ˆ¥¤?feÉ?k@?‹ðk?§‡?»u ?Åp+?á@&?áM½?Rê÷?!þñ?L_ ?oFi?µá³?Ô@Í?³£ü?Šsï?ƒ{G?ë^? Ð?Ô“‚?ßùÿ>¥»1=“³¤@š®@T9!@b—?«œ +?™;?ª„‘?ª`²?ªš^?ªÚÅ?8@¹?ÿh?—ÓË?«T?søŸ?Ir‚>÷†§=ó$?Þe?Ò™?§>²SÂ>ã˜æ>³8b>…>>Kd=BôÔ?†^V?¥ø¦?‹{®?_3=?Lj¢@ .°@)o?£à?¼Ùè?èÜ·?ÐPC?‚…Ñ?‚òt>þ÷,>É^K?k7o?kâÀ=ïÔÍ;ÒLô?‡Êë?—gÏ?:¦Â?ŸÍ>ÌSu>•2v?YØð?ª#l?‘çv?plð?Ü;>¨Á?GR?œ[!?—Ý?„žv?H2í>ù¡Ö?+Å?VU¿?†v ?¸Ò?§—?—.?Se =r~>Í¡I?e-©?ˆè£?–_z?jÚ„?pî?4ˆ§>ÝâK>ùÞ8? 1=>‹Ì>#ƒœ=W£Æ>Ð??Ð=K¶ã¡ D>g‡=–PT>#—¬<令=¹°Œ?¬±Ú?•AŽ?ö+>o¶ò<½°?>z…?0xÜ>Pãû>³çÞ?`sÄ?E*U>P>>y&Ý?+Ã?(tH>OLÌ>LU>æÞ‘>ïâŠ?–å_?¥H³?ZÔ??Ü?Vb¨?Wƒ6?"3?p¯>´¹>5²â>½ÁV?^?EƒÉ?*Á?kÌ@? ÓV?û?3?ë$>ml>’Þ> ™‡>>Ö÷?oßD?ní­> °k=ð>–>`ˆï>]œw? ?§\ú?Õ?ƒb?&˜k>ðª>Ù+0>Íw+?=ª ?†˜S?xñœ?d¶b?…€)?«¹î?»€?èPÑ?Ã^X< + Ñ=ü‹t?´k?´M‡?³Ž?²µÜ?p<±?bmÌ?¬³´?º|?®|?†Q?vÏð?q?q ?q!Ç?KÈ?-B¨>üÔÈ>s5è>üî#?qpÍ?oê?Ž_Ä?†Ÿ»?z+W?‡ì?µWÁ?³?-Sw?/4Ð?EÏ?:¸Ö?2¾ ?2ÄA?gO>òQ?5ÔÉ?Zâ$?1°?µð ?~¨!?øZ?‹Ý?r?Då?‹9?ˆìÀ?s$?Zêç? "{?HŽ‰?ú (?÷ˆ©??êaÿ=,|;Ž‹·;B+ÈH=Í[¦?3‡e?Š¼?Sk$?Œ¶?KN ?tôš?°¶™@‰N?ØŽ?0‰?h>¤?8²¾?D³>`&`>–ƒê?,ç?#M>õãC>åæx<¤U?·À7?¸²º?¬;·?­™¥?o‰??fcj? {Ö>öÁA?ùÚT@¥?èœ÷Œ(?Çb?±?jqÏ?˜Ý?¾v‰?öÍn?àu?±XÉ?¬cþ?§kg?hÌù>rÑF>î‚"?mô?Š¦Ð?Ç~‘?´ëá?~KÀ?UÌþ>‘È–>}«?4º?QnÅ@/¶P@)Æ—?Œ‹*?’(¿@4¯W@5…?{Pe?z\? +ÁÃ?.¿@-$å@0Ôõ?zBš?O<?§VÓ?­‰W?3?†.Ü?Ð?¨z‡?§ö?£‘?¾8À?Á‹ @'0Œ@Ú +?Ón@f0?éc¢?¾V3?¼ú?»RÆ?ŸsÊ?•9ý?ŠsÇ?|±î?œÌñ?°`n?mÃX? t¦?·Ô>ù5–?­ö?õ?]dZ?”^G?œ=?žÚð?À?‡NÍ?Õ(\@ü@Öu@Ûˆ?ýî7?ýI??·o7?e—ò?„ßÁ?»?™œ?š&g?Ç–<¯[¬?G¬ö?¾Çv?J?~|}?œ<Ì?´ˆR?²¡T?°¸š?xWõ?#»ý?¾Í@ó?Àï?³t?°–ú?Ã>Y?­ô¡?™ ¼?“Äs?ëM? +â?]2Y?–’¿?¶F?ï3)@Ï’?¤Èp>ÿ†¹?Bmi?rÞ ?GŸÌ?ñø?RØù?{ŸÄ?¤:i?ºÜ9?½y!ž>˜æÜ?„ti?•Uø@‹½?áP6?Gm?¢ë? ûÁ?v@´ñ?õ&`?¡…y?ªG9?¾•¥?¾ 8?§ý8?¥á?£ÇÆ?¬õÈ?¼9U?¬?›T?£‹?½“?Ëš.?Ü’B?ív@¦`?ÉV?;7?ž%?ûœ4?åÃ}?Ä‹ê?Á–P?Ãh?Ã9?ÀÐX?šÇ•?jº,?•¿?±PØ?Žã ?wQê?¾ÌB?èç‰?׸?È%?‡W??]\? Ù?ÊÉ»@õ@ Ñ?¾Ö´?’É'?½`?Ζ°@R*¥@‚+@@£K?ñlô@þ–@ Ì?­*M?€^ÿ?·ß?È9¢?–þö?Œx@0*$@>3}@#tN@ _A?´úÊ?¦d—@Dë@H¯?çð¡?Ýã™?ªD?§K%?è§?é=V?ý+?)~?Ær¢?Ë‘”?tU?r¨ì?ô/?û®!?Ä!? ߘ?÷8v?ò÷&?åxÞ?Þªô?åy?Þ3Ê?­ÎN?¦?-Šw?2}?[Ñ ?€ôì?ß.»?Ïêz?l +È?Srª>¦VÛ>ܤ?‘YI?"=?{]?rb?jC?uG? î?,%?¿r|?­(²? \°?²‡>€««>Æã§?\øV?qzg?‘ƒñ?²‰ü@bÉ?õ*{?ÝZ=?Ô°?›è?–º?.€ß?9Ž?~’é?Žnô?Õƒ?´µ=‰÷è?UI@' @sò?»ü>õKj>%>Ÿï?WX ?o ?}úy?°sB@>hr@+Hé?®§›?žE?|õë?‚Î?}™ ?›tâ@&õ@ó?<]‚?jÆÑ?Èú?Üð@,µX@5KÖ@=8n@1š2?ð%„?ÒØ:?82®?jûq?ê€Ó?㾇?|®¶?€øŸ?˜º?‘ÐÈ>ÿµŸ? ²Ä?½G‡?´¹™?(+?:Ê?ü#Ï?üŽ@ “À@ Ú)?¸„b?½?üp^@KÍ@6¥@3Žw?/Me?7øÅ?çp}?ç.Ç?Þ«?Ò‰—?M1×?;ù¥?uaZ?{U?‘ØÓ?‘&@Z#@ Vü@8ÁÌ@;ý?Ó6²?·‚é?05š?4Ö?q¨?†c?ˆój?‹ßè?³r?yúà?Äè?—«µ?ˆ/…?s–V?òŒD@ü~?êYG?±T?°Tš?ªT¯?Ƚh?î“ï?ÔzÔ?»…–@ª@Iõ¼@·G?º‡8?ó3´@Eâ?ÿüL?®M'?ÇÑ°?ùzi?Ü„u?x#ñ?‘>\?Ëô¦?´ö?APK?N“Ñ?´žL?¿üG?÷‚ª?üQp@.@»@±@3v?ø[?öñ|?n9>öÆ?5?n0?cƒ#?È®@1—@:np?²<7?b™?÷‡÷@B @9…ž@Cœ@,{k@çl?·ð?%½¦?‘ÓÞ?çÄ??öuÓ?ë²j?êÌô?ôæ?ÖÁ?†Hî?ÍÂ@mC(@UrÔ?~Ëë?œÐ @Ë"@¹Ö@Á@??‚5†@)¿í@3”@#ÃÎ@-À@`?æaŒ?ûS«?ý¿E@.œ@3îå@a¶?­þ@L©ñ@¨“i@~3@ @ |@`ê?ömè?‰?¨@%|á@ Çn@ñ@Çñ?ó_Ç?æZ(@Ë ?ô¡žX)@O[@7 @?øÆ?ј?âr?Э«?Äíb?Z–y? +çV?‡í9?´)¨?ws?ô?³ö@8øƒ@¾=?¯Èö?鬿@@ù@?Í?Ö'Ü?æúy@WãZ@núÑ?¾0­?lü@dÜ@!†?àô)?§¨h@Ç@gŽ[@>‹ä?ô;.@up@%Û@‡ +õ@(¶,@-~?½?£Ÿ@y@ íW@ ÿ@Ì'@ñw@ŽÉ@õ-?Ôxœ?ÂRº?¥‰¡?ÀÊ…@K¥-@Dj‹?ª!ñ?—pÐ?”« ?Ùq?´ ?Ï¢ä@ )Ù@$ü@ã!@R7@$W@•\@xa†?ö[V?ÿ˜ì?W*2?Ic‚?™gó?±8¬?t ?6P?‡ž?Þºä?ÅÚâ?gõ-?n”^?f&±?f‚?„¬3?xt²?Ëc?ÛM?Öú?ç'ä?Ñ`z?‹^´? Þç@ 'ò@4ž@4V?øe9?Ïæ ?Çãý?õ²‰?õQØ@@Ü?ôW?©ñ2?˜Ž!?cËÄ?e@Ì?–ÈÝ?‘©Ž@ ÈØ@6´?•úø>ål'?zb8?ãŠ?àÑ +?â×Û?ß !?»›?À·Z?sÏÎ?bvô?ÀîD?âQ?øu>@ +Íý?ø è?µ³a?»I|?˜Ê?“sç@w"@µ·?ȵ ?©1é?Ž—å?fŠq?…Ém?µ¦£?Ä]š?áJÞ?á9á?ûºæ?ø?´H +?°Î=@]]@]‘™@>†k?ñį?åx4@„Ö@¯\@ ³@¤?ƒ€(? ¼?̾@(‡ ?÷]È>à®,?Jk?ê¶0?û©‡?〨?à«Í?Ñœ?Õ0?¤~?Yxg?C/?༡?Úù›?«–°?  x?©ÁÆ?¼/?°û¸?¨²µ?%š>\z?2M?Ìn¤?³*?±’x?½mÊ?²?É;?‰8n?a…j?±‡Ô?á±g?éRŠ?ä'º?¿¨È?ÊU?xE"?~>¢?eVé?“ã?‡®-?ü¥P@,’F@¿@ =?÷Í?™ª?Ð…?giD?s³Ñ@ —i@ +Î?é7¶?ÛLÞ]ú?> Ú?Kª?e«?fû¾?lîj?{g@?„]Í?‹ y?I-/?*…?WÌh?…Ð ?›ÙS?é”Ú?Êgx?rP?({?jÍ=?kò?KtJ?Y +)?;>ä3;?ÄJÃ?ÝŠõ?j˜_?1Èì?]…¬?n©Š?%ûH>ïo‚>z†Æ>ò=â«Ô? +`è?ÞH?‘’h?¤¼¸?š ó?m\^?­ +h?üï?Ø‚e?¸Y?‚¾†>¼&Â?Dä~?¶Ë%?›?Ë?y(?[O(?Zä?<>¢Ë +=íñ>w¯>ýÑm?$|6?#î¡?1Á˜?±~?Ž'?è€=¨Ÿ>ûR>ød%>TÆ>Uû;†Jâ? +ï>Øaý<L´<œ²>„þq>mÑ?H”¸?‚±T?'ò•?bŽÅ?³÷E?œ• ?'Úë?)hˆ?@)?1Ÿ¬>‘,ô>©÷¼?Uƒ¥?R^Ê>“\Y>”…>”Ü>•¶?‹=¶?ºø>sv>¨U–>ï©?”³8?Ç÷-?™Rà?rÎ?bmB?J;/?ZÇÇ?o¯#?I6z>ﱿ?àè?è ?*k?†å?‡™>ïÊ„>îÐô?;0Þ?>Ë»?A3?C£‘?Œ9G?–ƒ?&äÀ>ïøü>æg?{a6?Ù¬?‹\“>ð'Ž>üµo?^7>ø\v>ë4>î¤w>ð^Y>ð|>õ +]>ûÙ?^f?Ü?™~?'‡?rÃr?~3?s°õ?pÖM?pã/?pì÷?/ T?]¾?=H>ñ!ƒ?Ñð?Ûf„?¬á?qX}?9?µê?•í­>ñ‘>óbw?{ ?þº>ñËÏ>îP?/y‘?7.Ó?Þ{?Zõ>Á>Œ¼#?xêþ?Š‡?”[n?¡: ?‰'¢?r  ?r®´?rÀÞ?‘¹=Ô|1>ðº‹?„Fñ¤ú? +`L? 1@?>Nõ?(å”?t^?ÁJ?ãùv?é³3?îò„?½`š?“Ï?•T?–×·?jÄŒ>ùÞ±?‰Å?1Ÿ??Oá?u¥?]î†>õÍñ>ìɽ>½y>«.?‹~Ã?øw?^}(?a³>ýã0>öí?‚æ? _?gû¨?vÎO?­E}?´ÿ–?ˆ6þ?w%i?'Þ—? `Õ>qO‡=±üÚ?¸­?ZÐR?F˜X?B©$?’1:?¹ó?ž +¯?‡ù?¼Ð¯?ø?e?¢,d>x%&?|[?žÁ?·ê?î5?èBùç¿?¢Â@;D“@;O$?µM?°D¾?‹Aì?Œ:k@¼U@ +7?°Îx?¥ÙÜ?–Zü?—9b?°x±?¸VD?ï£ô@â ?r²?ˆ7š?ð _@¢º?Ï€?Âø ?Õ«_?ÝFL?¨B½?š<;>éS=ûËÕ?Sj?Š—³?Ò(Ô?úp?ÑCw?½C®@3Æ@J?¶êì?|›?Iµî?5§@?Rf0?Y«³?–í?§#@ŒÖ@3?Ê??„ Í?Uý¸?@¸?`‡ª?j?q¥_?}Šž?K2W?0¹¥?TÑÄ?[i¢?@&?-[«?°jè?ö4‹@Cê@z$f@4)?þa8?ûüö?û´?ÝîÿT>±âÜ>v¶Ü>¸u?Tæ7?°Ä¡?¡A?Š+?£Š?¼Võ@w@ëˆ@ûÚ@ E?ýbÈ?è´ž@ +çÃ@»-?¡d/? &[>Ù1¡>ØQÐ?Mæ? mÌ@“ù@<àM?ÓRc?ªu?«lÇ?¿ÊÁ?æáJ?öM~@)®@+«Ý?˜1*?"çò? +Ï=>ÿý@?½J®?æ•M?ÈÊÕ?ÀÕ?¨‰?ž¡q?åm)?õ=?Ýq?Ö»N?~ë>¶b`?µ|Ý?νÅ?kvO?>¦?sF? ý)>óUu>÷6o?ì¡Ã@I¹?Ã.?»+]>UÅ…>Ìn?Â/t?Íòd?ÁT;?Àˆ@?]Rn?TË,?]¿?dšb>^f!>u8¿>SW>šé?Ègb?ÉIŽ?ˆŠ˜?…:ì?¬²%?º@d÷@pë?é„\?í¨ê?ñÒˆ?ëÃŒ?½O)?Ë«å@zK?å -?x4l?Y8%?ƒ?+×®?š?–13?€†E?â6?«¦7?½½K?ç¸P?ÌĈ?ž?Â&@+Ë?ã ?¦„ú?’¢¸?X¯ ?“~È?ǼÉ?œX?QÔ¦?µ{@ ѯ?æ×Ý?»¿{@ ¬@?74?ü¡$?ƒŒã?Äày?ù¨¢?µ?F?€~Í?VÒÏ?@F•?…í¢?˜1~?½CA?ÙK˜?Ê6?ºM.?–p?€rB?€q¹?€n¥?õ\@jo?üsú?äO2?á$?åäh?Ób³?ÉŸø?4ÏK>î'=í¨ƒ;”œˆ<ÚèÈ=n'?2Ø? õ2?¦r±?³ÖB?ýqi@ +æ¹@ +ÿ@ ¼?0_â?>B@Í!@!ÌŽ?ʾÐ?ÆE¸?Wî?OEè@…ú@0l?UWœ?=Û!?Õ¥ç?ß];?|?A?ˆ›?ƒ†)?€†?€-g?Ĺý?ÌíÎ@OÃ@À?›æB?Ÿq]?’A?ŸÛ>ÿÊ„?ÃÏ?ß?êm@/j<@&?Ú<ý?Â7>®v¶>γ?ŒkU?’å*?Œ?‰–»?‡/!?¬ÓÇ@<ºJ@#KO?ßÎ?7?²ö?¡¼ß?R!f?:L¶>þù·>þî²>þç³?Y³ý@@Ê@t?à9?ÉÊo?†þ[?”je?­bÁ?šÄ·?ZZÈ?^rº?M¹?0ã>þTX?O ?õ¥@ Ÿ&@;P@Š>ää? å?fÒ¸?•‘J@ª;?÷#„?ÖY?Õr?´²ó?¦[ð?=y?`UÀ?³¾?²Ìe?½u>?žñ©>úÛÃ?+4?Ýõ-?ºõ:=¤»¤>ÒÂþ?ýQQ@²ñ@VS@7¤‘?hi¹?k¸Ù?êã?”Ò?¨‡ö?Ÿì¸?|‹?‚ó/?‹¨?›^ñ?£V?¤GS?’~·?“7{?ÀŒ+?¿–«>ûö–?²ô?…} ?ƒv?½ô?¾¡Ë?˜ÎÖ?§RA@q"?ü´5?ÎM²?ÑQì?ćk?Í/‘>ÿæ+?ðú?•5=?–??wÛã?ƒ%á?`–?`T@ Í@0é?X®Ù?2¢?Øà ?ïB@ y@ ÷F?ëô·?Úýx?’ª­?yé‹?´o?Âܳ?uS?Vw?ì*@}ü@ ·A@ $@ã`@%”k?ØII?y°?5‡[?F?Š +,?Öá5?¶¢^?‰ž?Ýú÷@%m@?é‹?°qc?Î?å†@?w”?˜8i@õ’@cd?“2À?¬^$@B¥ª@;‰?¥]@?«ä¹?„ô?v¾Š?*©¤? M=ƒŽÍ?’‰¯?¦G>è×q=þÛ>?†XÙ?¼3•?ï@ +@ê~?œÖÚ?:©µ?ócW@&Ü?ñeŸ?2[?œ6î?µLñ?Þƒ@gø?ä ?¡”«?Ĺt@÷–@ Ü?´û?­Šj?–Ð?¢v‰?ÇqS?ÊòÁ?Ûõ™?ØXé@KWö@Uó?ì"?‰Ò?´½Ž?Â^@\©@1Ïû@GºÜ@SY @.Í@&2@C–ø@‡…å@_‹ú?ýì€?ëÙô?ÕHí?Û;t?Ͻ?פž@SS6@Lu·?´õ?´áÅ@j˜@g›g@¶b?ý/º?®›2?  ‰@Zàç@ˆ<è@g·b@L]D@(5‹?ï¶a?Ð)??Í‚?é,@"&@ Pã?ÕÛe?Ù«@,"K@(Î @§®@žý?¶ÿ:?Ÿ×>?Í;?Ý{(?ɼS?ªÚ¹?ÑN?ïQ?¯ò²?`vq@ oÿ@…{á@Kâ?XAs?…QÄ@#ñì@#pE?ÁAf?£‰?°Ž?yBƒ>ZÂî< ?Fâ?›a@|@!t±@0x@U 9@4!¡?°>?³Õ¯?¿3V?½6=?äÎ:?é +2@)Þ¢@'WÚ?¸nŒ? Ñ·?­ãO?¯‘!@ ï²@ègÂ?¯Ç@äø@¿­?ÖŸ¯?Ö¹Ë@€*@v®?¶—??».‡?±"·?¢¬?’ÔZ?ŒÄ‰?Ÿ·?¢·c?¥1q?³'`?Ι@ V{@K?φA?ÅÓÓ?ÐÏ?Ì R?ÎM@?ÝR?¤a?TwŽ?ñ+É@_@Sòu@(à]@!؈?ôT¶?ù%¸?É?É»ï@ƒ@7V@N¹@Ð&@…5?ªò?©'?Ÿ5y?š?ªªJ?ªš’@ý@)z@¦@ óX?ýñ½?â3`?âÞ*?âÉO?á0?Ï9ƒ?Éó®?©’–?œu¡?ª—þ?À¾¡?ºIÁ?©•Ð?½$m?Ùý·?Ú5b?õDV?êœ +@ûß@$t_?±¹?‡<=?¤Aå?«˜?ïrÍ@4´’@(Z@çÅ@u¼?µ]É?ÅY?-Û4>rF‰?P¿W?ªŠø?Úå@ Œû@ÜÐ@3š@5ÆŽ?÷›7@.?»ÂÆù?èŽ?ÝCó?ßá„?àJ?¡$W?v°›?&G>÷\Î?Ó?WA«?íÁ?ü4?ös¤?`“?-:M?“à?¨Ó2?ƒ?4©m?‚ܲ?á Å?Ût?±›?Ÿë@>¬å´=úÖ™?.w‹?avê?²n?á Ã?Äæ9?²é ?ÊÕ +?©uÌ?¬ ª@ –@ +ùG?¸Üž?©Ý•?·½8?Ãá¢?Åñ?¼»?’c>>ü²?7 ‹@;–?ýë.?Œð?ª”ú?Èf¼?ÜG?þ?REò?‹ÆU?«»Ô?¨}U?ž ?±4?e¾Ë?\;v>žÓ>¸ÅF?\s|?fÜú?&s? +Ü?—°ú?µk?„u1?d?_ m?Ï„ ?Õ “?³² +?Ã…`?Ü•Ó?¼oÌ?j¤Â?jð½?ßq?× >ïÔh>ìGÖ?/§°?b`?bU>í¸î?Š{ß?¡Ž?På¿>úß>â)>ÁÉ÷?Hú?Š#l?¯K?ÉÏ}?Q1?þ>˜Ü=²õØ>ï;—?M?”Æv?‚§®?6=;ðZî<´ÏU>BV>l,6>B}ô>Û6†?{š?ߧ=?Ø?Ñ2?ißÅ?=Ú)?1±¿?o+r?‘Zÿ?¢—>áua>ÿ2Æ>î=?Ä°?s?¡#>Ç >[Ÿ0>¦ß0=ŸÍ­?§Ð?A?¨™>’•)>^h>ÈN?¹ú?/¨?DB{?NÅ?dr‘?²?¹‡n?š +~?#vˆ?‡>-!Ý>•áW?ˆæU?ƒ›]>©>§È¿>¦KÚ>¤¬Ú?<×?GN¿?*£w?O>óÈS>ï‘ð?“‹7?¸S‹?¼>ˆæ)>ï•?gÌ?¨>!?€?Z1?=¡?†(p?þc?³¿3?žÝu>ï±Ê>ßo¶=³©=²£Ý>!Mœ>ÓÝ=“â=„*G>Îy>ïå¯>2F=4Ú]=¿· =Í>ß>–ž¨>ä°Ë?j2®?°{?L>$†@>ðJï>³È<{¨>ƒlð?­ u?¡#>ð†.>óÉo?o¡4?pª’?Ò"? *.? Ï?ô@>þ¿¬>ðô>ñï>ñ Ï?CÇ!?‚ög?->å>´>ÇDö?Ï3?;Ñ?…DÐ?Sìê>‰?A>âØe?œ×ò?Œ©ô>oem>^½>B¶">Aê&?Ôÿ?ýì‘?™÷g?rk ?†}¦?ŠhE?¿v?¥i?ˆg?[Þ?‡,,?¬…3?‹XV?$’\?<‹)?|nÃ?Yª >ób¢?fˆ·@6›c@+Š?´uk?µh?ßÌM?Úbž?i›;?aÎß?Àb>ô22=¤¾Å?:Ü?t?¾Ùd?àM´?—kH?håƒ?ON`?.ã²?wh?š®}?)zA>èQ‡?”ôÁ?‚¿š?G¬?f½ã?Žvà?€Î?SpJ?’À?L? 9>ö^„>øÈ–?ó^s?ö™Þ?ƒ‰Ì?v¿¤? ?Xc?dƦ?wx?ËñÏ?ÝEï?>Bö>ÇÆ?¦ºn?Ù1Ç?-Ú«>¹º? @?S 0?R>K?EÎ]?‰K‰?µ? +g?8²B?ŽF×?Ìý»?³Ñ?“à”?ŠQ?xÍ?[>œ?€?Tb?yi?Náþ>mÐd?=vÕ@7Ö@ƒ?Â)?"L"?»?Ç‘@‘©@}‹@Ò@Å?»Õ?¸–ë?k?E¿?Ý:C?âp&@8×@¸è>ò@>Ó¤Û?rq?zò·? +B?ÍË?b’Ý?cz?‡`Y?Öu?<»Ê?")â?j]ì?{¢’>à¦>‚Ï[?|Oª?“¢ý@ˆÖ@À ?%£< +È>ÇÅ? n?uë?“·?…Ø?|‹Â?#›{>üª?‹¼¢?«fØ@,©þ@Q@ˆ?ÿ*H?§½É?t¦r?¢?v£S?’R?£Ï?¼¯'?š?’äÏ?_«9?Åçü?ý´-?Ä™¤?¨R&?·Ëù?¾p_@*J@7Íô@(Hï@­?Ç K?†¦ ?53>þV!>iÆU=¸”>”û>Á>w? !.?P_’?†v³?šyO?e¢.?=jf?ߨC@ú”@Úç@ö¨?ƒ¯t>ÿ#Ã?šoG?ËïË?ý­R@ Ðj?];>]˜?JôQ?…ð?°›!?ÀùÄ>× =Lˆ@ñ=@6¯R?”é?<í?S}?·ïÚ?ÌþO?ÉãA?}úù?Sôw? hÝ?³ûï?„q-?xq?K?L*?¿5ó?Ø2m?ç¼?ê=Ö?MB?¾L?½d4?Öô?çbU?ì’;?x6N?hûK>;“=hC-@4Ý @>¨d?Ž)Q?†L>ê™>ÛRP?òÁu?ðX?@F?K%+?€V?zÆ:?\L?Š?²?† ?³3?pØ?I^Ï?s!M@i?ø…Ø?ºá?¾ît@Õñ?õ×-?‹¬‰?‡Ës?€uÜ?ƒy*?‰Cb?‚óË?ú@?„e&?€{S?Ý6@a>@,^I?€~‚?Bß_>‹n>òÏà?WÜ?£Á¨@‚“?ЄJ?€€d?¦æ\?ÞÁK?Í‹´?´J?Áz?ÖOh@ S@8¹@Ï(?æâ"@çx@3.?ò-Á?€}l?€}Ü?€•M?ü7?€{2?©ð?ȇß?:ôÒ>AÚ´?"³n?`?ÜÕ¦@ Ò-@ §@}?“ü?;;Ø?XS?žáæ?ˆk%?€iÒ?Ììi?ëŸ?ÿ÷ø@sN?Åm|?§Bu?ôãn@¤N>ËÔÒ>ß‹]?žÝ>ø¬>ïËn?aµÍ?oI—?·À?Àf#?ìM?îð|?­'?¬Nã?“á?‹Iq?Ê6?Û,í?ÁBI?¹Kÿ?8ÿÖ?07ƒ?Ò“À?Ù&v?¯$C?±r?eQi?PXt?7ÿ?Ú!@ ¢@½ÿ@^X@Oô?¿ø¥?Á*C?Ó›x?Ú ,?âé¿?Øî|?¬»?­/â?¸a?¶0©?Ü7’?Ý^G?å¯ä?æ»?±x™?¯€c?|×?`>„W>ÉZ*?œ2"?¦Íâ?¸{b?Å1²?ölu@@KY@¶B?†sQ?]µº><§?"U1?ü=t?è¸?¾m¸?¥ñN?hßj?o–÷?z0o?j÷h>þŸg?9.[?»?°rù?heù?ŽM¤?ñ×£?ʨ?>E?îÃ?‰?!|y?‡ I?Šjä?oî?TM?>>?e…a?àà{?Ëwý?}Ås?ˆ¢O?¢Áë?—Çx?}—¯?:?Ê`®?ä‰ô@4K@ î?î/?ÌèX?%î?2%g?}v?šž¶?ý ?ÿ>[@¤t@/³?ç/?į¿?§ð?\œK?ç£?Ëg?4ˆ?oÊ‚?ú¸&?ç.ò?—a0?“ÝŠ?•˜r?‰n=ãä˜>)ñR?24k?@·³?ò\ô?ôÎ3?¼Ã¡?ÀQ¯?ìÅÉ?à@¿?eé?‚wW?è¨M?äÛ¿?¤O?¡Å?q¾>îØ?ÿè?¤k?2Œ ?mä?±ªÖ?¢É?À4F?ÂŒÚ?‹Sí?}Úi?èã?úHý@;‚@5<@&a@+B6?Ìô¸?¥5d@3µ@R?°L??m¢ ?¾À†?ãO¸?É^_?»?›y?†%?‡5Ñ?„ +?5”â>øà±?ž¸K?ðæ ?ƒJà>a?š?e¯?좺@,ð€@ e?ϱ=?Ð6å?ç…?¼Öð?W!8?•ÕO@òÄ?õ“Ð?p'?Çš@ˆ÷Ê@wÄ?åÛâ?ñTø@X."@SÏ?ËU›?Äž±?—À?›.?·|6?¸ßð?…Ë>ÆúN@™@$íô?ûO?ìÁ;@'b@4(G?¨Gž?4–à?ö @!ª@~*@)[@h@ +ä?®ŽÂ>ÀQu?5Z@ô²?ß°Ú?J)?S³¦?‹§Ý?“™·?ñØ?×  ?° ?=1×@2bã@+ –@0ô@*³+@_ + @a£`@Ðs@ü§?î‰C?èY[?çEž?ìAÀ?¥×Ê?ˆ‘–@"¹·@b»É@C3˜@)V@ á6?ÅT¾?ÐÌ—?Ðãô?ô÷ª@?â‹@E½K@:¾6@;’Å?ÇOÌ?¸’?¾—(?Ñθ?ïa?ð¹?öf?ì¦ò@:2—@_@dH @d•î@‡@2/@€‘@,‘§@NK/@†( @cã?ïBš@±5@I\ @Ff"@-u@'K›@JTR@DŸ^?ä Ø?ÂMù@/®N@Wÿ¸@A¤@1È@ö!?ÝÏ‚@ 5É@<ð~@1Z¦?÷Ss?ùaÇ@ð@ š@u£È@slò?öò¸?Ï?´Y×?ª´ç?ðå.@fm@ c@:t…@!–Œ@º?í p?°qI?Óâö@$’€@d&?¦Ñ^?®³e@²ÿ@õ?¾/?Ÿ°­?©jÛ?¯‡k@R@@D@*àB@ +,0?ò=é?Ø?qpà?rz¹?Š¡ˆ?ñ%v?÷i-?»c8?»¨¢?ÉÙÓ?··H?«A?™.Ž?ô°Ò@ZÇ @A´½?°nV?¼`?Üî+?ØË?åå?çw?Ð e?ÄÜš?ð— @ @9§?æ~ð?Å ?z9á?´¯§@bzC@VXØ@J(@=ôÓ?’d?<ñR?ÏA@ +Ë?ä¦ò?ªÑY?ã‹@+±«@ ~h?”á?ž·è?f2h?r¨z?÷‡û@¨$?–ëä>o]@>ÆQ?j~(?_ÄN?'\†?Rš`@9vJ@**C@/$?õW6?å/%?ô§R?¾Çî?fÖñ?yÚV?‡2ì?•ž?¿6Ä?ÄR˜?öñK?ö s?ùR?F8?sb?©ŽÄ?«£…?³L,?µU@?®%ê?¾@=Ó@à®?U— >– +Q?¡¢@ 8Ö?Ò@T?j Ü?±qÉ@(è%@(ÜÁ?eí€?<£J?‹ *? ¿?âL;@ añ?ïÀ?ÀV€?ß|5@(‘±@(ŠÆ?u}Þ?`±ë?PìT?UŸq?­af?ÙN{?Æu­?¥Ä?š&p?ܽ½?èY?ám•?à’‡@2,@ [â@S¿?ùº?Æ“b?þÁ?’ïÖ@j@<?½‚’?ȳ?Ú?ß#è?ÔÂÔ?Æ„1?¼ü“?Á²•?Ørú@sr@‡V?ã!j?áE±?‰f”?ah"?³Q¸?á ?À±-?t_]?P[ê?¥ƒ?›O?b:?wÈú?*™Ÿ?0m›?v—Ú?añ?¥p¹?Â<)?¬P?[7?‹ä@'1@9à>í +Ë>ãÜæ?P8j?d1“?(Y?Ž>é\=?l?òÿ?þ×?ÑFâ?,õ¶?-Œ,?Pº=?fÀ2>xò”=èÁÃ?1\?ŒçÉ?¸~¨?×Q?˜>r>’?[?w/4?qU?K-?‰ ?¦õ?™´}?kä¿?kxÙ?jSM?_ >}áq>"(>Y:A>ˆLP?¯lv@˜y?øâÏ?ìBÚ?ˆ™>ïÝç?:õ¨?Hç?Ä9(?ñ”9?¹®ž?bªK? >Ó(÷?ŠuI?<Í1>“î„>„®=õ +>>Sý>í€è? Bf?3ó?>¾Ó>‹jí?<³|?e¨M?{Êõ?>¯?ÿ¥?>þ{ï>»ø†>¬ô>2©`=2ýÑ>Í]?Cë?ž‘?Ð?@Áã?7ˆ—=¸æŠ>[¶O=$ >AP÷=Ü„t?^ÀG?tÛÊ<ÜÍ(=OÒ ?¼>4>刻>ïÈu>ÊÁ->ž*Ã?Xˆ„?ÈŸ´?½:?ŸK?m¡>¡G>ÎÃ/? ?B>?"Φ?#e†?$B?%Py>ï~ã>îø;?¡òÑ?¨hÝ?TAÚ?<– ?XLs?[YE>›[g=þî>²Wœ>ïr ?­Q@ ?µ!¯?T\²?„MÜ?¦÷“?§v??§õ×?‹ç÷>ï“\>ï–h>ïY?ˆ?^°?]&>Óbè>ÔðN>×ri>Ú‚>Ü£P>ßMk?‘Î?®]£>êp<®‰š;ôlÃ9Ôv²>N>ð.?E®¼?ª#^?œ)?zbo?R Ð=W;’=ÐÎ? :¬? a>ñÅ]>ð§‹?Â8?ÉŒâ?qlO?Rç`?Qì?OX?°­>ñW?©k,?ì}?ªÎl?_×9?t&b?‘Ôe?Ž1Ê?}*Ä?ˆ}?³¼ ?§hš?2^‹?$š˜>Tí>L°6>ñ$ß>ò'>ò$Ï>ò1·?>‡?M€a?‰nÃ?•Î¹?âÅ@:Ø@ô@?¸Ðp?a™9?«Øò?ìä3?Óèû?¯?à?‹a~>óMÚ>µCÔ<ô‚ˆ>^?z0¶?…S\?¼Í?¶|Ü> |0>";©?Z(ÿ?ZfN=¬æ?°éæ?Ïs?5Ø\>ÿ÷k?TW?àz>£]>Xò?G?˜Ú?T–>âH£?´?Wûâ?N%·?'{?ŽÓã@)Ë?Õ›•>õÌw>õäC>õ÷?¬H?M0(?Q07?%úï?.Ù;?öp#?õJ=?z%ô?v®Ã?[o>öÕB?¨ÖÑ?³è?왟?÷']?D²ê>÷Oì?;U„?[&??øô?#A™>÷Éœ?V/?/¶ß?[{p?xÑ? +?™%?åôž@A +@ň?Ñ53?ÇÉô?¶“]?ËÕã?øÞk?Óz^?‰å?/³?¨Šþ?ÉÎÙ@aq?þÀn?yz?y‹ó?z´¹?jèe?Þ?kì@qD@ +p?)9{?HÒ„?Îno?Ä"ñ?V}?—Æ«@'n@'|D?b¸Ÿ?T´ ?4X¿?:ç‰>üÛ>ã"ü?³Ž)?¼Zø?<›I?'ùŽ?À#¢?Ãà?Oˆ$?Cóá?œÚ?¨F<@‰S@bö?ú©œ?ó@·@¼r@Á…@1Ö@3ƒR@ûæ?í-\?Xé;?Ù:?Žúô?ŸVu@ p@7„8@ +\@äÈ@NÍ@}F?˜ÄH?@Ò£?Œ³? G?°ã¦?±Þ@ ?a@`@Iù*@Y)Ö@¨Œ@ëñ?h¿>Ôä?”ÉY?¾]Ø?a½?xjO?«£?¿Ÿ)?½ó¼?ºC­?Iú©>þ??§ŽV?Î ý?òwÖ?þA±@E@d_?Q‹>½Ñh?ú?6Ÿ ?AØÈ??¹?C],?T¿V?hœ$?`ï;?z­?z;3?7¸? ¡ü?{B?Œ5´?±ôd?¿u¢?ÄŒO?ÄBÉ?ó.‰@'?›) ?uÂ?<_??A¤Ž? Ú™?ª¡p@åï@ +?ÚïN?Ò\?TOY?,õ¼?0ù—?4üµ?¾â>?ÅÜ&>Í7¿>kÂ~?'þš?2÷m?µ`?À“?Ö‹Z?ÝSD?® ?Q?(ô?œC">\(=ÿÓ ?ù–’@–?Â)$?Ç é?¼H?·r?>e?]^@ Z@˜j?_˜p?e'¾?«ßé?¨V?$^?“&¥?ÝCe?à(€?ßÑÏ?ÆG¯?\k?I/i@ ëJ@º‘@p?ï3§?Yw†?uG?Àœ0?¬éð?fc?©áW@0?÷ác?áµ?OÒ·?»DÂ?£Åû?ƒ?•á?²ó?¥~Ž?Šê?v¦¨?T¯P?j?+ ?ºIt?å—¬?ÃÞ?¨p@?ÔËä@v#?ßn–?ÁËT?èE1@_ö?ÖðI?™”?¡ËH?°?ªÝZ?˜¬Ó?‡qZ?€›ƒ?€rÃ?€qR>ó7ƒ>GUa?cÆõ?šÕn?M‡Œ?"?ø?ô_c@ „Û@d?ó·~?ŽÖÛ?Eë?¦òl?À¨?vOº?MŠñ?¬²y?À‰?Êx?€YM@üÒ@&¥ð@›@_Ë>Öö<é»!?¢Ì¾?¿‚?8%?DH>ùµ>.e?±ö?ÀXÁ?Îìe?Ò`,>ÅÁ‚>´0é?•j2?›/í?‰ó?(?£ûk?¬\¸?€:w?€W?€S?~E +?^ÀÜ?pÒŽ@·š@Q¦?pë +?„Ôî?úG?ì2*? :°?2¦ì?…ªT?tË»>x.é?JÝ?ÿÉE?ýT ?ì7?ߺ?°l?¤0?-ÖB?=¡è?<6á?,Ïu>ÿ{?m?i?‹4F?¯´á?‡$=³äî>¥K‰?’üœ?Z¡¥<Õ˜>€g]?‡^È?˜Ñé?·Ð\?°5G?š[O?ŒüÂ?„BC?Ã83@)E@‡?HçC?3Ûv>þ˽>ðmÿ>þ‹¥>âÿ®>¦°Y?9ÿƒ?Üsé?Ó8m?²¿Ï?µ<?·µ?«V?‚ìE?~Kb?~ y?͆?¶Ú‚?±7œ?¥K?¶±ë?ëúS?ü$m@lÓ@)?á†á?±g¨?á×?Lc%?°"?»ÓÛ?é“h?Ö™Ç? í°?²0X?ÐK?·©×?} C?­ù)@«†@I?ðò?ÆN»?Èï?¶Úk?[x?nÿ ?ªŒÐ? Ÿ¯?EH,?aïX?ÃÑ?ÔëY?îYz?Ëø4>ü>ñÒ7>Å“g?+»?ã² ?×JL? ÂF>äV1=jH9>YÚˆ?Ùª?ŒÜ‰>û^Ç?·h?ÏÆT?ÏíK?–•?™ìß?‹s?šè:?±ÿo?¬1F?äˆå?éH@a•@p©6@ ¸#@+â?ø[©?ùÁÑ?l?‡Jú>½´r>°CÔ@!'U@;oë?¼òœ?“ÐN@u¸@*|ª?øè±?Öœ;?Ó‚\?Ðep?À͈?ºî¿?³ Ç?±¬¹?Ø(9?òû?Ó"L?µÈ€?šop?Žú?®GÍ?½2?¹ ?¹ +ü?Ö!Ç@-´@ +Þ«@–Ø@Ý/?ô$j?ÕÜb?xk?Jj? ûJ?|Û?÷.?H¡o@3 @A·?ÂçO?Êi÷?ùˆØ@7é?¨¹?°Ói?Ü‘=?Ò‰Ÿ@ûY?üõæ«> +>2j”?ó>5@Ñ›@Oqj@l´í@4¼×@ E@>£C@dM@ð¬?¨–u?ÂSù?ç¨q?÷S\@UÇ@-Ÿ@oˆk@X:–?ô&º?ðW?Ñø?ÒþÙ@*Ý@/8:@U)@U@WJ@[Ô?è—Ó?ÇN»?Îü?ÉlÖ?‡6?rÀ?$l|?j?¼Ì@He@ ¤Å@•«?˽Ÿ?qõB?Êo!@-ªØ@V}?í|â?Ý?À)?Ð#º@MÔÑ@QÄ.@…(@’É?ÆÞƒ?Ã1­?øÓÄ@vŠ@©@#˜@M+@gæÎ@IÈ+@3ÙÀ@l°??ï9€?ô8<@°Š@D‡@6<·@Àv@Á @‚ˆe@~Ùq@K³Ï@Sò0@zÅ@g¸?°æ»?‰/s?¡-Ø?µ‹à@ÿE@(ú@êÊ?þÜQ@Æ @FF¬@:‚8@ †j@"ã@Xå@e…[@ˆ@¶@†Åy@‰?蜥@ +IN@l[@$æ@0¿V@Cx@N>z@Ðu?†ÝÃ?ï?È@•ß@·Ê?4‹>ï¿@Aµ­@DŠ@¹H@èx@SfX@hRÎ@:oô@#½@J?éˆ?äðh?ß(ý?ߟÄ?¬N?§¯*?¹ûÛ?¾¸e?Þ‹·?Ö±@Zh@¥g@0%Ü@CçÊ@#KÝ?âÞW?õ`B@ þK@´Ý?‹ó?•Lj?y1??ˆv°?¿ê"?ÐÓA?ô\N?ÿ©ö?òýs?éj©?å>V?ÜA”?Ý«Ž@x”@#c@?¨^@I¶Ü?·Ï?bZP?¦ì?Ó¥(?® Y?fù?¸oþ@+ªÞ@¼u?d¶?d—??cr?O-„?Èë2?õ‰â@S@&2…@)Š°@ ¼š@ÿ„?ßêÛ?ÐQP@!-o@0_’@ +ö@ß?J3í=À$X>qi~>ì© +?WS…?É/æ?ÅWX?ìù?âª@+Ã@(Hp?Êpç?¢=r?¦Ú¡?©„1?˜¦Í?yXl?W ?×>]?Ç@Ç?òAI@ê#@Ã@R?«ØT?jxú?q<å?I®?‡çÝ@(Ü-@(Ï}?˜„?—µò?tÚú?`ó7?!Qg?4?F]@?||~?”§?ó7i@æÁ?Ãï'?ªÙÈ?9¹’>üQÿ?ÔT@"»@ê?¹UŸ?Àv?ÄNu?¾ª¡?¿>ì?ʶ @ó?@ ?ÄH‹?И?’Éæ?… Ó?¥€F@Ö\@½•?vܤ?+?ê>î»ï?'ü?Ôˆ)@Pý?ùß?¨¸?·=ý@ =@èµ?Ò¼b?ß‘—>ÜÏ[>"— ?v|Õ?¿F-?ÜË@è÷?ÝTƒ?J¨>ü=?b9y?b"¦?M ”?>R?);Ï?-Ûf?:B`?F§î?1>û>ãU? ÍG?‹u?Éæ?:©¦?-b¹? ç?7ž?mî®?vôÌ?±? ?rJ?9?pÿµ?ZþÜ?;ýÜ>žíœ>#h>áÞ >õõ?¡³h?£¾S?[¶*?+«Q?Zóu?^'?³&?âý×?±‹Ä?!?‡ª>A±>±À6?Óâí?ÚãÊ?n?kLê?k¢?ký>å>’=ß=¹J?(?[¿‡?)“?Õ¿>±âC>FP>ŸXE>ð„n?_(?Âá!ü? ÿ>ªj=áÜ>Ãì~?x7Ÿ?6Ȭ>_4„>[kÿ>Q¥r>òê?{0›?@k>üèc?(-?BhÕ?mË>” c>ÐÈi?e©?¾¦?º?q¯?Ε?*+>û]À>~Cþ=ò¢Í<çŠ?EÈ·?‚Lê<¨+>ݳ4? Œ?¦>¦Ìb>¡»¦? >©†ù?i?(ú‘>šñ?4)N?ºo?YÎ>ÆÃ3?‰'³?Xz(>‰µd>ˆ˜!>‡W|>´¿?[Ê?GQo;ºW?‘qT?”Âê?Ì8à?Ñı?)Ò>ïXé>ï\Ÿ>ï[‹?6¬K?V¿?=‹H?'ù?cæÆ?§R?‡Å$?Ä ?W›ª? Ó~?Ì?Àx?©^?‘ >ëÅ;%¯4=¦<ùp@9÷H>Ævx>ê·l?Töu?oóB?’ >ï]C>ì¡I>éžþ>hù)<ÉÈ8>{y•? ã? +έ?ïë?Åé?Oø;?<¾o>ðpÐ>Ý],=¹ÞŒ=Õ?F‰î?NŒÞ?q­?pÅñ?pÔ«?pá?YÖ>ðý÷?€Á*?«13?Ën1?Øúô?ƒƒÆ>Ò´I? CK?jÌ?ƒÉß?–„5?•xB?”fi?|Ïç>Œo”>œU¬>ñó >õ…Ù?" )? U¨>ôù">òC¨?2„?4Ú4?‡\å?’Bý? +?r«j?H ½?&Ë ?€ü/?¬+?pks>ó>>ô­¿>ó¼k? ý[?l¿š?„Q?²Vs?±þq?¶Á{?´ó?™¾ª?î)>G,>]Jí<4°¤?€Å?¡ +¬?Æ`×?ÂBì?QÈÿ?,œ(?YQ?Ÿã?Ih?·ú?´*‘?±IÙ??@U>Cg +? •÷?-Œ?ŸQn?¸1¡?ŸæC?W¤³?4Òþ>õçù>Æë$=•Ìû>Ñ$‰?ü‚?÷Êg?é³µ?ë³¢?¸xÒ?µw'>÷H†>öí_?ì-¢?ïå-?EìO?9+m>:u±=ØM>׎ö>÷g?3Ê ?Kí?Á;9?ØL`?ÑȘ?Ë=?”€©?x -?ÙB¹@"@ ‡Œ@ˆ?þt)?â~?î t?þãe?èm?Ë +÷?Â0l?®Þw?Šœ? iÖ?‰Ž?”u?,?ym?y}Í?yÇ?xC?pJc?‡pÄ?ËÙ×?µ”²>ú2>ñ(l>ô±Ï?C'>–Ë>ïI–?è®/?é”í?»ò›?º#–?€Ô?v ??×î?DÎ?¡üU?¤hà?«7Ÿ?¦—³@ +-®@Xñ>„=Ó¦™?6_ò?7C"@ gå@nm?:3‚?mð>ÿD–?o @Aëa@Z`Î?çÀò?Åi?‚U?d„o?†Ñ?ïY@ñÚ@1R÷?ðfA?Îeþ@[ï@&Þ>?­?}f?Æî?ÔÔˆ?ñʹ?ý9u@ðÒ@ #ª@F';@`0ä@$Î9@Û5?#~=œÞ.?©?¾TY?8èÄ>õA@®“@<ÞU?’×j?Áö?Zª?lš¤?ŒAf?˜qÎ?ðÌú@v&?¸R±?¥«l?U½Ê?Wî?»>þ©n?,Í™??˜&>¸Ë>]vR?Á†¬?îÂE?èØ/?ë?ÐFè?¿`˜?Ó¢H?×q?»"’?·R?âüð?òÐ@Å©@ù ? Ä£?ur?vÎi?q>Ù>¤9]>…H\?ìx¦@_ï?óy8?ì¨>·–¥>8vÈ>ðnr>ÿÙö@û@|?$Ø¿>ÿú½?•)ö?˜ï˜?½Š?ÀÏ?”ÿ?óv?>â?3Áý@Í]@˜?¬0Ü?³”?ý†Ï?øF«?5É?¯?ÀJÿ?»c+?n²?q?§l?¨ÿ~?€@h?‚`ˆ?•[;?]?Àn??ºb?“_?°â•@Q?Û[ƒ?S?B3?æ› ?éU¢?Ê#+?Èìn?ä)?×±?¬2 ?{½>ì-k?À–?Õ.•?û ?º3 ?þ(?\î?k\?4t?9b–?šó•?îl?ö?n?ý8 ?·Na?K=Ö?ˆU:?¼NÆ?І?ÑŸ?­:•?Õ"?ˆêÛ?Rl?{º?»F?Æç?ôÓT?£U5?>À4@'(@{¸@jî?À/Û?–Ük?€ij?:?¦2~?ÚY1?ó±ï?—Úš?]÷o?„·ê?—÷?=æ´?QŒ?‘Qv?¢(é?ѱ™?Ýüg?¡ˆº?‹nª?´ãs?À~®?š½+?©¯@Ý@.‰8?ýr?ñ|5?48?¨=šx¡<˜W@?g µ?vÈ?Ü N?Ùã4?À¨R?ÀNs?‘Ø ?’ÃÚ?­þ3?£”>?P¤?íx?DÁF?@=s?;´?=3 ?™_?“Öþ?V±?Qk >¿^s>ÆéÌ>‹m¼>†½o?,°? ?ó¹?ˆMW?¼¯?¸¯7?¹¦+?´ :?ŸE?¡ Á?ÏK£?Àße?x¼6?ší ?õ‰’N?7?» Ú?¨+é?cj?m.z?“è?ª8÷@žO?׿q>ÿ>¨?…Ñ@%f@ "s?€®?±ß5@«ü?ïÊ?a?e×™?¿*?Ä:Ô?ÉÆŸ?Æ›|?Ù—ï?Åù?~©Û?~žã?~–ü?Võm>þ>ÌcÃ>+…?FP?Ÿö?šôè?•í£?‹$?~)ˆ?¤åi?ú¾?üª%?÷ÄŸ?½QË?¶ê?)Ü¥?4ª?‘½¼?ý¼4?â½?´ñš?¼øX?¸Ú?Œæ>l~?Aã*?ýZÇ?ãz‰?ªÒÔ?– z?6´?IÌ@=¬?ûoÖ?…%ò?µ’@ +š?ù·ƒ?ˆ?\?½?Åã?ÙÆO?ÉÙr?¦„?’6Q?6‡ì?g— ?´ÒÒ?ÓéŽ@5‰¶@ß?"ñ?~>›C±>‘4V>ûÍú?7¥Æ?ùÚï?ßì>ï(l?”?ê?Ò«®>ûQK? ¬Ù?‘o?’ñ—?{±?‚ƒ?Û“?Ú{@ +5!@£³?ã¨p?ÝÆù?`¿?dd@'Fv@1^Ñ?ÂC˜?»Í£?‚Í?z&?üjÎ?ýË{?¿»?ñz? <>½>a?¯€þ?ÕÀu?ÅL:?Ä´?¸Î?»2?½=±?ºé ?;?y ?r©A?t~k>Ã^™=™Tð>¼¢ç??©“?øz±@Ý@$Rã?ñ(û?˜L?¨€Õ?º*?˜3‡?M´Ž?±¯ê@Ñ(?õ"î?V›š?ièg?zóO?¤yá@˜Ž@ ’w?¹U ?¹EY?¹3›?¬§¬>¼6·>çñ?¶.î?Ãkù@+×J@. +Ô?ëÑq?çpµ?ðqž?à¡M?-wÝ>õÜ×>ðÃf>ã ²?ór@2;@ K^@ Û¿@-Ùw@=I@5¸ƒ@=àÚ@.ø@‚@ Ô@ âP@ˆê?äu­?ØÍl?µ+®?ÊŽ÷?ô?â' ?’¡¨?–»ï?Šø:?Ÿˆö@!Üt@'6Ú@j›¹@dé@'E@Ww@s@Ë?µ³c?|r8@Z/@‹ä2@3Ÿ?òOþ@&dƒ@Iß'@½ê?º¬Ø?ø² @?,y@D)¿@=ó]@,€?ÝWÍ?æy ?ófà?ôf@‘@}v?Ll?ˆ*¾?¾ßÚ?Ëõ@‚B@’vÐ@ˆXè@†û³@Q˜%@'Î@~C?êÏÁ?×ûB?µ~v?¢T?oë3?¯”@!Ó@ ³ì@V™ñ@`«X?õ¬?î\“@2:4@9»@`v@ ¤?ÿô$?ë~J?º6È? Î^?@@ÄÖ@ ñÂ@#G>@I/—@;5Å?±uO?±b@«_@¡Ü +@EïX@,$ù?ÆN‰?žXY?çÀµ@ æ!@ÂË@'Õê@ "?ižE?£v@8o'@6&G?°Ô?­O²?=°»?mÀÀ?fƒ?­Ûf@$Šn@Tþ@<ö­@ßð@Rr@ ð?â^3?pTÁ?…á?äþå?ߺÎ?(ðæ?;&‘@1¥ü@@'i@ó?þ:Œ@"Z@:·@Q~?­Óî?½G/?ëêò?÷1°@ ü@’}?Ç,ç?±`™?«\ ?­L@5Ð@2` @ií@ &š?üd?³Bé?ËÛ‡@2É@O¦@š@„w?ª*]?¡ß•?ˆ#Ä?e>š?Æ[ô@ Rî@7Ü?úƒŽ@*ã?ßœþ?Тi?“J?•Èh?ucÔ?d&Ä?‘˜?©lÎ?Xüô>¤’³?FßÝ?Ì !?ÙÝ@ëT?ôyK?ä?ã(f?”Óƒ?cr?bXá?Z= ?å<§@o @M^w?œ€L?±?³@¦h@2L?ÃÛÆ?x&í?'%b>úÔ†?Mé¨?›¹ª?¦d=?ùó˜?ÿ0ç?Ÿ9>?‘)2@;•–@m#e@JÚ¤@"`à@D¶?Å »?¼ëÒ?Ô!ø?éȤ?gŠ7?`öÉ?…ƒõ?y‘ ?a ƒ?WÙ?vU¹?˜´¼?œõH?ÅÁÜ?À2@ ÷I@•w?È·?¨ko@î@(_,@ bV?¨^R?¬ÌK?Ʀ??ÌP?x?rw?ÃyV?át;?X­1>?/">øƒ?`‰o?núo?®öS?Ëìñ@–ù@ò?øb?Ïk˜?É­Ó?Ý¿?»j?eaÌ?‚í?ŽÞt?ƒg>ä>ìÁ?«Fâ?¯ëS?ÑáÇ?é*ã?àb?á˜F?ÌÔÿ?€Î]?ošè?§l‰?¡…ò?$ÍN??¹¶?ÉLç?‚zü? ¥Õ?–õ>àÞ?·?ŸÄÿ?™ÙŒ?Öâ?Ä?Þ?GG>ï|?õM?ß“Ó?d·B>@ùo>IãI>­P¢?ÃÚË?»„?¡€F?¨c?àP?Ô(@?™ö‡?™Ïž?¬¤J?¦ñC?ÈÎ?X@?&ôã>õ}ì|Â>Ž>$Y>ÐaÖ?–^?Æ@ Ùÿ?z$ë?å/?ŽØ?DÏÄ>ñ)Â?)Û»?qö¼?í>Ú{?°?ö?¤‡Ý?zC-?†8ô?k§?NªK>ÚUu?ô?wõß?:Ü&>“?F?ö—?dâ)?B6!?ã?Vg>üžÆ?=ð ?}Ú%?f%?_÷?& +õ?<'?U"‘?i37?mì?Ÿ ?úÞ?W?‚µÔ?qmO?9•>èž>ȹü>©1æ>‰uP=Å&ñ>®Öå?þ«=!t“>ÙÅ7? h¥=ª ý=ÁPx=Ç>#Æã=ö0s>Z¬s>x±†>Ô2>úz>ž#>°Ø„>¿Éï>ºß}?D:Æ?¤ ?ŒîJ?PÍi?fOŽ?†ž?—Ò?ÑùŽ?³+A=ãý +>áù?.Ï?ï ?9z?;YÝ>ÊtX>½ÔR? F?&TÈ?´>ïEß?p#¢?•|?».,?Óx(?Ãî˜?³ƒ«?˜†õ?ocÂ?ofÑ?on[?kÃ^?dæÂ?:Ð=Í®=¸^´? ‰$?vÿ¤lÃÜß­=E-h?FVØ?ØÍ‘?£Í? Î?ÿ¶>ðWE?%Ó?<¢n?:¸ü?SE?Oµ?ÛO?u´?œM?¡Î?[ÛA?F + >¡?~>;o:?‘K?ÎQÚ?-¡ü?žÛ?˜Uï?¡¯?µ¥?«p?šÕ”?wÃ>AGr>h×ð>ñÚõ? Yr?Œ£e?‹ g?>ÍW?9³¸? ¥'?§ò?è`i?òqê?“¼D?r˜/?øÅ?åÅ]?ƒ á? X\?<÷?(ý?5Y¹?rÀX?qÍŒ?sO?Oø ?ó?Mð?¶´Ê?¢v}?$±D?#P>¾'{>¸¹>³A¹>±wk?õƒ²?ô*j@fE@Ä+?A±‡>ô” +?ˆh?š‘?­ÂÍ?º9»?õÇŽ@½o?€ù{>—2ú?"T?tÆe?ˆUt?•e?ªëŸ?Éû6?®Q?W3¢?7Ó\? óõ?v4Q@½ž?î’Q<“e=šýg>÷ä¹?7ݧ@10Û@(~‚?‡÷8?‹1X?f5?`Ø{?FZA?=æƒ?¼=õ?Ÿ+? ý>÷}?„zF?žoó@¾A@,#t?ÒK²?›4o?Û_@DÆ?Î?®ˆh?Æ!¸?ÏŽ? Öë?x“§?J Ï?X¾?]Z?’œÐ?‚Ã:?i¶X?ZÛ?²n¹?¡M¡?zêA?‘x‹?¹-×?“É„?±U?Kñp?»V¯?Є@F]?ò{?ºq?˜ÒŽ>¬8?uö?»Éå?°¼€?hL?oG²?vƒ‹?zG×?6þ ?I??âJ?Ùuu?åyO?ãoð>ûp>ûEÚ>ûY >üD?ãý?éÀO?©pë?­ ý?z…Ù?x«@?¸/?ºW?ÈŸV?Ñ©?4K?!Šl@0Î@$“>õ¸o>‚ˆw?¢&¬?ºtí?K”'?>‡+?‡Å?‘òX?f>úÛp?ÇÎ +?çóÛ?Ï@è?Ìu™?Á¼Å?½ôÓ?Š(¾?}_Õ?×7‹?å‹?_:Ù?#…¡?®hp?ã >­Fý<Å1´;óÛ\=¡Lf?Æв?ímç?í¨O?ëWó?½z@?±iy@t@-œ—?½Y?”ÊÆ?‚É?~{V?‡ê»?…_3?H*>þ«?ˆ?ö¡?ßbú?ø÷õ?¸¦Œ?«æ¹@ £õ@Ñ @Í!@³?‰é?a˜?õ†?ÌÓ@Cñ @_ ”?^Í‚?,ˆ@ +4_@k?}?`?Pá»@Œí@ìá?‚q?uŒü=™53?…zÌ?ˆŸ?ùËÈ?ÿÔ‡? }‚?­?£s?§è?¿û½?À?Àë?À¹?Îdª?˳ü?Àü?¶§ï=Èwè>&_©?»º†?¿s?½¥œ?ÀƒT?úü"?ñ`?¶ß?Ÿ# >We(?—õ@A^@ š?ª¹Ø?j—?g¸?³¡?çA:?ç†i@HG?ÙVç?4‘'?V§´?˜?Ç?ÁVÇ@%Ó@ O?Žs?w2€?&øo>ñÅÀ>h§?ÄX?À‹?©[F?„Ý?É“@¥m@#œ?á¯?˜©6?cÄ?¥?€Å?Âø@ …?Ð;?7 !?@ûs?A»Î?¦ Ô?òí~?žîÕ?gˆ?`Þb?˜•Á?¼ + S=¶¶µ?ú&.@¾?4ÓD?:”?"Ò?)†/?ª¿L?­éÖ?€ [?€È?€M?{g*?E£"?Kó?kÁË?wÙ+?PÚ®?9JÙ>zv>·f’?´é?¹ž×?Æx?ºQ;?ÞÖ?€0?‚Ë?„Z?†¤`?“os?¿Í®?µˆp?Ý +?ŠY0?VDò?†³x?ò[·?å©f?¥n§?–Ϲ?ŠÜt?˜¦?§?£ú?˜!¹?–#w?w?Uùv?(5à?¶¬[@YÜC@6û•?¿íÝ?ø·Œ@=a\@ä?®!`?âÖŸ@+ö@±v?ÑK?·¼Ú?~®;?Œk?¢ó? vœ?ü>?… T?2Ã?-ÉR?(Ì ?Ž4R?þGµ?ù¯?óaÌ?Έ{?„Û‘?_?*É?1¢ú?†cn?¬Rç?ã‹R?î&\@ã[?ÛÑÐ?¤Äó?“%?MjT?ZÏž?}~Õ?}¤?r…5?¢Ç?ýMC?Ë×?X/;?ƒŒ?°’X?ž«î?m ?¡DÂ?ú8ú?®tk=žì>Îãø?n,?uô?Šõ'?Ÿ“ó?Ïeê?ÌM+?½JG?ÂÖå?ÈÔ?ÍBý@Ò +@ rØ@-ó‘@tì?¡–“?œé?¤X?™²?&)?B˽?¿?²e®?s÷t?‹]Ã?ûc`?ý!ñ?ýôM?ÚAƒ>¥Š?0[?ê¥L?Þ*?½§—?ÌC@)*þ@&ÃË@Ø@—I?LÑ—?;9 ?y ÷?zWþ?^‹?+?èˆù?ìúÄ@IN‚@N8 ?dù×?!ˆ>»ë¯>˜;?¨o?¼»?ˆ24?yl§?’ï6?¦ù?¸æ?È’ó?Š„ú?iÕZ?<Ý +? +ˆ$@L»@.’?ÊRu?d%‹?½ØN?øgz?Ê2ý?¯ª?Àq­?¾ñ?¹)4?¹÷ª?¯P?$k?¦3@Lj?Úù•>lE?Û?º~¨?¹åó?ÂÛ`?Ðv¡?ëÉ(?á€?¹&†?²3c?_¤¤?FRà>ö‰9>ú«?Ô? ?á’?Ëü?Æqp@c¾º@rqc?€á>úƒ¥@Ô@*L@,J@i@/~@u@Ãó@3a£@8K•@-°Q@9qú@L®H@NÑ?›HÇ?•Ê¦?6ô?Vy:>ùÑ?`.ã?ôÎ@õ@3ú>@)Ó˜@™Æ@ ¥†@Þò@+!@G…þ@WL~@iƒ?@k–£@Gû˜@=‘¹@3CX@5@aXq@x±V?ù9F?K|@T@r x@RP@(‡Œ@'çŽ@)ô@+@BÂ(@+S“?ŠL½?™£ @Þ@€º?¿u¬?Çê@D‚ã@=`ƒ?ÌñÛ?´<ï@‚BÏ@£‹«@†•”@p½X@#& ?رW?Ð("?º«?â¼û@M$?ê-\?XƒK?p8|?ÄÇ·?ßÜ:@%BF@#&@'b +@ +Š@Cð@Jv‡?·4•?mÛ´?nÂÎ?{»H?Ò +@¦ª?Þû?ÇWh?ªŠW?/ 5?”"…@599@5Ži?¿ñ?ºÊ @‹ïK@’E£@Ž3?ø‰ã@ˆ@ø?Ì'>?¤Êœ?¾‡L?À/?¬Ú ?µh®?ÅÝ×?Ë?¾‡¾?²Ï#?¯ä×@6=>@*uØ?“ì–?j†@ +¡Z@ Šö@ Þ@ø$@,Óf@XÆÿ@6»¶?°è ?®„q?´CG?º¤£@ Û?ü¬@-+Œ@;ç8@¼q?äþñ@ŠK@Fn@¤?­Ìá?®†Ž?³š{?Àƒ:@þ/@¢à@a@9H?ä y?Ò“?@í…@@…_?ëáQ>ï.ñ?L™¥?¬”?Ü—7@g´¢@`a¿@ %@Õ?~àA?®Ð??û?e.6@õ‰@|)(@;¹ê?‹ô?¢èç?û?ÿî ?ŽëC?…Ù?kñ?dÞ?mÏ?eú]?…€L?×M?p¨r?<Ö¶?_ ?åSñ?ù§€?×àó?Ö†l?šRÔ?l8?`g?£ò´?À<ø@£3@2»?,È©?"P¥?^aL?b;}?ÌŽ´?å±@lƒ@íè?Ö?/*•?WàŸ?¥*ë?¯Ã}?͈ñ?Ó@??¹”?¬Žv?ëju@mz?çÀÞ?¬ó?·³@qâ@è?>ÎÚ?FÓÂ?âŠ\@ T/?µ×ð?`Ã?Ç;"@ Ýr@ ¶Â?Åj?ÊðÓˆ„?(Òã>ü”?PJÃ?€'À?›*?¨…?ˆ¹?" +?CKÖ?Æê?ÒÍ}>îvv>áë?æj@ƒ*@4R@H†²@"8ê?ó\_?íoª?çu?å«@ Â@\?–ÚP?y}p?ØØÏ@wÿ?ô¤{?³r?eö+< ÌÉ>U˜ì?}–?…!?¾D?ÐÿQ?â®×?ãó ?«!?gÁ5?¿û/?ê( ?­êŸ?Lÿ +?_ )?Ïõ?Íð©?T“–?awç?Þ‘¡?æu°?RƒS?e?xì ?¡˜5?ܹÅ@¿þ@+¥@+NÇ?íe,? G;?_Hˆ?«U?¶aM?˜‘W?‹QG>ðó{>î|?,?,W>?|ÑS?uA†?X»?ƒÛp?iÌG?mËü?šîV?Á‡?Gœ#?ÕÇ?¥jŒ?|™>Åcî?G•K?´¼?…'>¶K<>¬*[>ì: >á§>©,>KbÙ>õ¢Ð>ùñ‰>ö®a>Ý^>ÂPN>¦Å>(ª>ùõ¸>*Ø=”8>€8>üRl?0?DÃ? h>ÈT7>çyL>þí?’ŒC?²h&>æ`>s$8>ó '?N”?n3X?b°¶< p=¤×Q>•ã>S&û>Š®>Æö:ð:ýúÀ?1äì?ˆJ·?áo>´sí>µ#I?$RR?,ª?ué£?…/?µNê?Ƴ“?Úg=Ù9{?k"d?³i³?‰Õ'?TLŸ?(#>ï*?ZáÕ?³[Ú?¨·G?‘Ø?j¼†>½¯Ð>à¶ø??l¤?:¬Ž>¶ºæ>¨Ïí=­º\=¨Ùø?ŒŠ~?•¥ô?êK>ï'<>„=†„“>š^>Ðãk?„^L?³mÉ?–~„?z»í?j\x?\c?8SG>ï[>ïaù>ïeŽ?>õm?ëJ¿?×µî>îÅ?]æ?ïx×?îŸÅ? J•>ü‰«>êÕ>ã¡,>÷h?äì?jÙ?÷ö?6[?Q­]?9©z?/'Œ>à=¬=­qV?AL +?ú ?»“>d¸V>»X?pq¤?ƒû?ºÄ?µå:?EäL?Kc9?p p?pÊ>Ì-Õ>Ž)½?5ƒ?c`5>žìG?+|è?˜û?›\b?™¶¶?˜|›?‘èø?hÁ>ñ¢Q>Ù¤ø>žÍp?‰ˆ?µiÓ?±QŠ?•,Ê?˜]5?‡"?…Ä4?¾·i?ÉI”?†j?rU?r‘?r¤K?žT-?°Ká?Û¬?òèÜ?J>÷?o¨?²¯v?¯_}?©Ï4?š #?‚ÄØ?bzÐ>ó¨i>Ì¡ì=æãö>a¯ƒ?Q˜>?TZ?µò?»^Ç@~"@¶­?‘žÉ?I-?ËNE?Ö·Z?ŒC +?tÌ?°¡:?ÌFs?N‰¦>´„>g”s>î‚>{Rç>²Øp>¸ç\>¾ú•?‹×@Sï?ÓµÓ?f»h?eï?d?R$?ƒÝ?:¶@U T@Qtð@U¾B@=ÿ =ä(Œ>Añò?vØÆ?uÃ?§?×'?ñ1ð?÷?ç?!>÷hu?Åžl?ѵ?ûž@@.?µJ_?›'?^ï%?AÓ­???…dŠ?¿R?ãèã?™Ò?VTè?ˆ$?—¼m?¶™"?ÙÞ¯?ŽŸ>øöx>ùÏ>ùü?i_?ºð»?‰‰+?rØ?®ÚÄ@+¼#@‰Š?ðN@†@(@Þ ?žpÍ?«$?½Wº?®z)?”ù?{C2>[A>i—é>wõW>©t×?BŒw?p¨a@ &4@lI?’q±?•$N?eLI?WÆ?4Li?1˜W?‡»=?‚l=Ì.=¢x/?o?„ Æß?h¸_?‹9ð??’ý0@ v@ø¯@zž@Ó?£?U‡ì?Ãb?Ëq@B_@ÏH?”jº?xƨ?Ô?ä/?‹è6?~”?4u¤?4@?C¨È?:?ʺÓ?Þlâ>Úü>]»z?l3º?#ô?ºz?Á>Š?»”ã?¶ÛÒ?” 4?˜y?®­?oó?¨Ü?°[”?a‰\?WMå?zÿõ?nnC?¾>æ?¾o†?š9? ™?;‰?>T;?³|Õ?¬¿ø?”Y¥?›Vl?¿ô?À“y?Ö»>?Ùs£?¶NM?±«À?t´P?k¢?dÿ? ñ?èå?–¤î@C?ì+Ö?Š.?oò?–7ô?¬HW@?K@ (m?ÀIj?µVf?‹Ó?šA?Û9?Ð(;?§lS?¡ +?€>8?³†W@—.?÷3’?ŒV!?±þ?è&ò?Î +þ?®;³?º +Š?Åq—?Âf²?Ày­?ÚG?û&?Ê…E?•$'?—:£?–Šû? ¹?¡÷s?ÚX?@#Š?³”±?l‚X?f©•?Ig?…ªD? {ø?Qr¸?[E?‹ªë?Àˆm?xL?'J ?©?â@?‹ç§?,M<>Ëc>W|™@~´3@»’Ÿ@4Êü?½ýS?Ž,?€V“?D ?;S?ÈüA?äd‚?ÇUW?À{|?ÓÀ?ÓŠ?Ž^?€Mÿ?µè±?Ào³?¹ÐÜ?ªRn?‚×A?€E·?ƒà·?kðÊ@ߣ@w@Ó/@4?é4c?ìóM@z$@“? $~? £?³¤E?­?ȉ%?Ìk?Ù›A?ÒçA?Ì2 ?Æq»?ÔŸ?Ì×?¼!?/(?fª?…‰?„ð?C†J?PÙ?jÒÙ?ŽQ:?ùãL?ðË?¾zo?²—–?Àv?™w?ñ›?ÉÌŠ?/?”Pu@–ï@R%?Š@?sî?¿œF?³»¼?›ˆì??+ã?Xæ?¯Z¡?—b½?L}?›Óâ@[?þVå?¬&?ܸæ@ÿ#@­`?ý¯L?êÐT?Ëé±?¤^’?#¸‘?k+Ú?·š?ÐÈÑ?ëáø?Ò:D?§JO?¼FŠ?áöµ?ÓVƒ?¾Ö?±>º?˜^?¦ùš?»Èô?×ug@µý?äFg?ª$??±é®?¹R‘@y„@=ˆ?ÿKÁ?„ç?¢u5@î;?Ó©S?‚’?YZ>œ€>°ý˜>ÅŠ±?#b?}iI?ŠàÜ?¡®y?¨Å&?·ãV?ŸB9?F?Hø?cÇ.?P\Q?è}?`Ð??»‘ˆ?’8Ì>òQÕ?mÙä?ìÈÒ?Ö„ª?°ï?•í?HÚê?lÛ ?–6.?ž?´ïª?ǃ?Ù/²?Öio?Ó¡û?æÿ@A?ãá\>ûÄâ?LžÙ?ïžF@Cr@– @ p@?{k¢?Šr¾?ÆÚ?Ëy*?ÛÖÿ?Ú‡«?¥†~?šZÐ?« Ù?´P +?›S©?ŸN?ÿ[:@Îd?è;e?èï¶?È\˜?Ó}Ç?‘1é?ˆN”?v­$?wYk?…Q)?‹—?zS[?Έ>dD>i\>1P'>IA¨?IRá?yPc?N²»?Gô€œ?PQR?«E?ÇïM?ò–#@f@/¿ð@55Õ@UK@K×È@$©@P@yÙ@ æ?«#S?£¿S@Cò@M«—@e_J@l\i?÷Õr?·fp?Ñ>ë´X?FX?T€Ë?ß›ð@%Ÿœ@&¯í@%§›@@ôj@RÀA@L~Â@åb@ ó@@ô/@Fc@Çr?ø;@åã@&òð@!F@!ª1?Ûs­?ŒQä?ÔhÒ@\?ûDŠ?¼]v@‡ú@Id°@+„Ý?Å’¦?ÏÆå@2è@2©ž@@×m@Hðm@({ô@(Y?¼pŽ?‡c?m°h?m“û?Ý‘@Y"?ü#g?ÂÊ?Ý»G@6×?äÚ?Æ[?ÊêD@E?üŽ“@7@è?Ã)´?¸šÊ?Ï´?á W? c9?ktõ?ÂV@ +ŸÕ?æÑ?yš?£Wê@$¡]@.¹w@LÃ@Dç„@eÞÌ@c¹Û?Æ@Ì?™› @xO¤@—k @!e×?‡b`?Àpþ@GÈ@¾Ò?é©@6@=˜?@4Û?@CsZ@Aâ@\¹@,¡?ß,Ä?¿Mc?qš?gå”?‹– ?­¨?ž†¯?v˜h?l£?²Ã?-`j?ãØ?ææ[?á86?í¹@B @ G¬@ s@K#?íf»?¬‡À?ËVø@6å´@@ Ü?­q?·u?ÿé@œ¦?¨7?eª?­™¹?û=Õ?Í–„?`?0®?¢½£?¬œ?ÁòW?½ü?Š[?sÒ1?ºŠ¹?â4?ò$þ@×~?ÕR¥?:W?9 +z?‹¾ü?†—à?´=?µê?Ô™ ?âÞ$?ß?Ê?Úµ?¹ch?ƒž´?‰ª#?à?‡Ð’?´Yù?¡Ñ¬?ìR@ + Z?¿ÐP?Œªî?¨Ñ?­>Õ?–*?a/?aŽS?–ûe?œÌÝ?Ψò?ߦƒ@É@%M5@,†?–Ë?©Í@Ø@"½?U¾æ?2œ“?[I?bzé?'XÚ?L?LŽ?¯¢èõì?³63?ôæ½?¿éÑ?t ú?Vƒ?5?@pY?„O¥?r¿»?Ç÷p?Öõq?„g?0æp?›Y«?ü£?ìRk??´7}@ ¯@ ò?ãDN?Ìv„?³Åz?¨…À?§“‡? Ñ?ŽñÄ?v}m?k_:?¨~Å?Ÿ1¶?“]£?¢Ãÿ@9ƒ@*®z@RE?Û|™?õ”:@Ã<@¡9?#ûZ?Tºâ?‚¯‘?‰Ä.?‹-:?„ÃÖ?§Y+?Óø?·Ã#?W¢¥?6»€?°?!ì?æ28?ÍO9?´ÁB?ÄÇ™?Þ9?â¦$?¯Ö¡?˜%š?Ž h?W÷¯?|·?˜Ù?˜¾á? ÷>ì,>$t>¬JÇ>QM¸>>cw>¿ƒ>ç=¾?T–Û?ž/ï?ªäu?·<†?µ÷y?{…o?rß·?®b?¤$?Ë5b?Øãå>úS*>êÞÜ=÷€P=ÿä§>ðŸ?2.?ÐÎm@R.?¯Ã ?mŸ´?r€®?€Ô?/Jé>‘{1>àIº+=œô>5é> Ü>=Ý>1pó?}4?Ú«>õeÊ>¼U=¿@Ÿ=ÒK@>5Øþ?qj>ù >àÙ>•™>.)¤>¬B+>ý@Ä>Ÿ¿A=²Ú0<¢8<|!@>Ízb?š‡>þë´?&hž?"Ã?ƒÿ>ùã&;Ÿ|g=ŠX\?—¢t?ÒÄ>Ÿ$Ä?±?‚»š?Žú?‘‡T?®þ>ï0º>ï+u>ï#á?Š€?œO?JíG?j>ÿîÓ>ï?fJ¤?¨1n?½a ?Ùj1?Šä=§q=ÙÃr> åk?  @’?ê|£?­Ñ?§h>W>ùê?ó?cÄ>ñ(’>ï–>CÎ=;Ó™?|Ád?®[v?¨ÁÈ?§+ß?(QÅ=ÅÜ‚>„óN>ïDÏ>ïK×>ïQ£>ïƒ>ïT>½ö9Ž=…>ü¿Ü>ûŸÚ<ìÀ<ÆûÅ>åø>ï©w?Ê)?ÝÝ?=úz>ïÔC?×Õ? õ?zne?žÎ0?|f[??$`?p¹¯?¡Öî?yý4>±§¿>ûk?p\±?\€ö?úó?*…?FWÿ?Dd?oŒ(?p»¨?D2f?<ï'?•ã´?“?„çþ?qÿQ>åËP>€pš?IK¥?’½Ë?¢Ø)?µÏ?‚çX>ñ>Ûpª>œmý>æH?y?yZ?ÿe?2?X?‘)€;¤Ë†?r¤z?à=?jÂ?j??;¹>ò¶ñ?½(W?òÙ¹?~Þ\>òþ>‚Ám=åPü>³Éª?<Ë?l”Z?¬ˆc?–Rµ?Z!ß?60Ö>µøÔ>î¨=?sá‚?sö?t ;?t?œZ?¢YD?•Äë?–9õ7§>8AŠ>L>K®Í>Sž>ÎÏ{>òüU?Fi>ÁÐ*=ç¨È?Yè @M?î`À?yn?X_?Ì,Ô?Õ6Ø?Ö¬?ÄŠ`?vÊ(?d‡L=æ +ê>4? ÌE?k³?Pç?Jd#@ÿx@¡©?¤pã?˜áæ?€ð?wÓÓ?>÷û?~å?œ??…Ðé?~š®?\N§?=ZÇ?™í&?ÄïÑ?lb+>ø»>øÓ >øæ? Å?é¤?}Dç?ºëˆ?ÕA¢?ï?ó ?˜pˆ?‚·J?;T?t· ?¦¯?Ídn@'@IÖ@ÎÍ?ñ«Å?z9?KÌj>‰ÜÇ>£‚>÷T™?[??4k?SH.?¬ðK?š~?%ÔÎ?H—æ?Ùê=?Ó<Å?•‡A?ŸIÜ?¼·?µÞF?pƒ?|!Ç?¶Ÿú?»¿?¹í˜?½8ó@A‡«@A@(Ã@ˆL?±O?°{Â@ë;@¡?Õ‘³?ѯM@›3@ +ÒG?+QÂ?-=->‘ö>ti…?;…:?GI?‰p[?«b@è4@2¥?²:æ?®ló>™ËÛ>;5‹?8€?†Ÿu?è·T?õ^e?Âý?¾<á?»L?µù?¸£•?·¢?µ¾.?³Þx?¤õ}?ªm@ë×@¯â?¢{ü?’FF@Uê9@\èØ@ R@ b@-Ø<@)Ö ?¬qÙ?¥?‚=s?~±ç>U¬3>š2?–c£?¢Ïk?!É?÷ä?ÿ©Ü@ªÎ?‡þZ?òþ?½Ð?¿pÐ?ûL•?úç?¹8œ?µ‘>0nI>kɪ?áÏ=?Ýßé?Ùð??Öa7?èÊË?àF‰?j¿…?€]€?ĤØ?¹o? Õ?°/Æ@>ä†@+'?*T?98?®¸×?© ®?O ÿ?Qu´?’NÔ?†²º?) ¾?.r_?„hƒ?‹Yž?½¶?±»E?Œñ ?iu?€7?šæ^?ñ¯S?ó¬ @&Q?úþ±?éñ?Ñ+ý?šù#?‰ê ?=õé?’µ‡?îׇ?Á@?€9d?œá?Ö£c?‘Jÿ>p?Œ¡^@-]Z?ôaÃ?"l?‘iú?óL®?ÞÐ?¿—à?‡Ìø?7W?M¼¤?€MÐ?›h‰?´Ñã?…Êq??”?ãÜñ@*fú?Ç‘†?ç†?•`?Çæ?Áœ?Àp?cò®?TÞ?¡.K?×¥?ž)?€T€?‹žg?Ò?Á´´?Õbõ?òà.@T†?ø(V?úÚó@/°@=Çl@ =?ôwÛ?’*¯?kâð?‘ÐÏ?Ÿñ?âr?íž¾?X*E?:FS?ž“œ?¤Ð.?ÚÑ2?à—ü@’@±Ä?Žª¤?€>í@R3@ë?·jT?±—X=M¾8¹ˆ®?‰g??1€?Uœ?B?;h@9gM@7ˆ™@NHf@Aš?šüH?«Èy@/y@ +äÒ?2ߦ?[o?ÀÛ?¼„’? »Û?™Ñ™?p·u?1N?À¿?žé&=˜í“>®·>Æ€Ÿ?;å±?U¸?µ‚?­ß?‚nª?ž'k?ùDb?÷§?ÿ§…?Í)€>ÿ›†?^†W?òú ?½’ã>®A?ŠM@*¤Ó?ùkÕ>ÿ^Ž?=V?£vŒ?à ?ÿ@z?éÌ ?¿bß?¹ÚÞ?±Œ$?’£à?#š(?‰ ~?ö‡æ?žUš<»€?Fç¼?ú³?Ü`â?«Çv?—×Ì?~³ß?ŸÅ?ÒVf?Ì?¾ëD?ɦ&?Ü&?Þˆ§?ÜX”?¸¾ª?ê?Øõ´@æ|@å@˜Ñ?·a>þ±?4E?}ú»?|€?Œ?ç(Ì@2$†@k?œÅ‰??Ó>ïß>¬ß>å9a?C¬?çQ?;–ò?(Jn?Ø?5ûç?X„¥?t5?›Rª?…^P?.w´?pÒ¾?¶óÌ?¤9@?¨(?ÂÁð@p&@*(û@P)B@%¥s?½\ ?¡Äq?UÀ?˜{¶?ñ6?½Çó??è²?¡l"@wî@Ž?Ð + ?ô$@$;r@…œ?)xm?7½?{¡g?at?½.w?¤$Ç?ûq?kÙ‡@D‡?ð¥>Å? 9Ë? ª?¤r?§ˆL?™ûl?»¼?…r›?Z÷L?^Q,?»äÁ?±6><{£>oi‡@€@_F<+=â?µn„?³o–?âa>ùÔL?2é?)ê?æT?×ø=qçÑ>ÕeË>ùI§?µwŸ?Ôª?š!?u®ñ?eß?lñV?ûÞõ@ñÝ?Žâ?±/?¸Dl?ì•æ?ÕÙß?ÌO;@âÁ@ŠÅ@RØ`@ƒÔë@2Ã>Gx¨?,¡?Ž`›?‹ï?‡Ûh?­Ñ!?ñ»ƒ?àÖ¦?¹æ ?ßÚ0@jS@GÝ?Ÿ"L?Ÿ_?¹;?°Ÿd?ŒC.?£Z4@ ¦u@œÔ?à-n?ãMŸ?¸›D?¸€@'àù@0™W?üŒt?ôØ">£É=o$X>•U>åTú@«:@6®W@Øæ?ïÿ@ +d@™@YgU@•Ã@0/?*eJ?"ך?ì½?[%=?¸>$?ñHÖ@6ì @'QÖ?ôx ?ÿÈÓ?óŠ¯?ímT?¶„º?´«?”rF?£á@2H @6&@2,ø@3_Ð@ å@qW?ñm“?ÐbL?²¬?¥£ò?Ðrc?ñçZ@@”˜@8¤Q@v˜ +@Yü]@4ü@Y±?´Õ?ÛØÀ@R¸*@CƒÊ>›Y>èó@Hó¼@Hžè@+›Æ@&„%?ìˆZ?áA-?߉Ë?ÞÍä?òè?ø“?ÐÌå?²c­?å 1@·^@ @«@„@ +Bè@f@j¸@ %ø?îN|?î-E?ú©?÷²@:n@N‰H@6þ„@%Ê’@'0 @*ºL@Ü‹?íf?ÿJi@Ø@òk?ì¢?ôæG@r(@$?@õ³@’2@¤@ +S·@ö)@‘@?¼oÄ?–4 ?¿î?ßæ£?Ú2¹?éÑ;?ôO/?Õ„?²T|?wŠå?’×.@!‚T@(ý@'T©@ëö@Q$@yU@$‹Ã?À5¯?»–É?¶ù¡?»?è™f?ÏI›?\/G?Õ@#.ý@'´?ôB?èJ»?ÿ€@  v?ÐÉ?‹™»?wŒi?hË?N^ +?è?¤Û?k.A?NºÉ?ŒÍl?œ–?6:Ñ?(üÛ?±¿Ø?à˜m?Žq?»Á?b„?¬€ç?«ßä?²ë?ÀFQ?e™I?ez~?¸\š?Íèã?žO‹?p…”?2Q°?½U?WÈŠ?‹PŽ?Š¦Ê?°{¬?¦mß?¤œm?³Úû?;ð?žÜŸ?Ìw?ãÒ¬?»Å¾?–«€?ªñZ?¶£À?»XÆ@ñå@‘Ø?æ«Z?ãm?å¯?âý)?ýÝ“@½ú?åY?•©ü?ÔÓ?ݹ?Ó6ÿ@ dŠ@e?ì´?b„B?*ðº?¦›?E:?—º,?©`ð?¿Ðü?¯Ëß?¯`]?™éD?£R‡?©v?Ѫ ?óžm?Ú{?¨Ì]?© ’?£@µ?˜8*?µt±?ÅÎÓ?²¡D?§ûT? ?JÕ¡?}Ĩ?žÀx?¤?ãÃ?Ç×€@&yg@4rx?Ñ{Š?¢Þ¶?æ(ƒ@ S#?' Þ?ÏÌ?Û`·?àX¿?àZÍ?•Õ›?;Á‘?T´º?‘•?‰€â>k>š>v»@ kI@ OH?mK*?9¹ái¹?‡´?d¡l?^ð=Š ¨=ë†?d6?&ñª?Âbá?ݱ(?Yô?b€Ñ?==¢"¤>Ò?®Ž?žk¤@ªR@E?"ùÀ>ÖØ?¬?äœ?Ž)i?ñ?%A?-iû?Móh?¤äÆ?’Ä? ^J?ªq?R…Ì?1Ф?ÿÿ>üF"?Q<+?bÈú?%>ýgm>ëä'? ‰ç?$*?>ãO?cýü?šP:?«ñV?Žà*?Ÿô>ñg¹>ê¼Å>Àîe>¡å>>ט¢?CÀ?‰—?y8?jÄ&>ðS>=k?Oøë?¡‹ž?wX?G¦?ñL=ÝJ->¢¤4>†\Ù>SöÏ>»°¡?t2?W5ï>õµE?,¢?<­>õÔ+>k´?5ñ?!XF?€Å?v ½?hV? }ò=â«Q>­Ü>¼gí>ÛKá>`jÖ>wü«>²®î>ÒÉé? ¦®?m¤j?Íå?pâ?}A½7NZ€?3?yL)?¥? O9À>‰LÏ?™ Ï?”Ý~>À’>G>Ãë>ɨ›>í¯>ïT>îÿa>îøG?4/•?I6?nD>îíƒ?4ÝßOs>Û1»>íÛ€>îøÒ?R]ç?hg”>}}U?–'?êÆÆ?‰¢T>ï(¼>ï. >ï29>’Ç#:ÈC;…ó=ËøÊ>ïbr??§ÃÚ?¡X>ï}>ïŒ]@&NÆ@,L?ŽÕ'?]éå>|/ü=¦æŸ?;ÙÓ?ƒòS?½>Z¨>Ó÷? ?1¸,?N!/?`à>–,Æ>¤L>ž6>ëû#?íà?•»'?(ëP?-,‚?š:’?™S}?¬üè?²â1?›‡®?š &>¦i–?(ß.?ƒ6s?nX ?a´ñ?vi¸?tÚ?Jþ?(/+? ô>€é©>Ñ2¾?qÞÄ?\>¸l>›µ/>æ;>-»?®G¥?°*:?Zj>ÿÃ>úDÂ>õa?X»H?u™)?ÌSL?é?n0<>Û¶\?/Åå?bP??åŒ?&½?Jwî?s‚1?¥‘_?îº?Èà>?sÎ?bM?%àî?:KÆ?…™v?u«=>Üy‰>ë>zO«>j@>ë=I>ô§â?›â?®#g? %§>¥Aý?G`«?dêx?5p?ºc?J~±?uoû? èÎ>Rù½?kÕ?^·d?¯{÷?õëØ?Üp?¸Š?Út>ö=(?…šÖ@KÈ?â°³>¶‰>ëN¢?vµÕ?~º8?‹tÕ?†´t?îB?|Ô¢?£´u?¢!h?ÑÉ?Ô$¦?Áer?»Òw?œAÑ?˜Ÿ?l~>÷ãN=¦má>S}>„?.?É»?Îi>A«Ç? Y?Bn?"ŽH?±ï?Qªd?|Å@·@Xw @?Ž?… +L?‚‚N?yhÑ?>ʘ>ùŽV>¸Jô>jßü?” +|@&¢@$sk@0¡@™v?ìÑž?®ýä>úH?s{$?õä}?Å ?EUÇ?„¬Í?㨹?Ý(ƒ?·ÄÕ?ž^?;–5?#ËÅ=ÃÄ,>8…?³Ôé?¤[J?žJ>ê g=(%ã=üûg?~íÌ?¢k@Y¡&@M¾[?Åð>?ËÀ?ïL?äsc?€Ï¤?!û?Ñ_ú?Õi?üe?÷¢ã? ã?;>{ >Œ6?6]‹?6RÛ? 2Í?–Õ|?ÓÝ?ß¼þ?€ž"?}q ?‹ˆR?‰•?³¶û?¶Ø?Š´?…”?»!þ?¾N? ¤ý? #?‚á(?†Fx?ñÞ?ò¡y?Û ?}÷?ÝEØ?äqÐ?À^Ö?¾œq@&¨¨@/p°?¢L‘?Ý1@=Š[@D0‹?»8Ì?±»?­Ý/?¨Þj>³mT>»£??_]?LK?¡îð?WJ@¥j@·?¿?|?¿V?¾ÊÝ?¸?‡=àüÄ>qö?¿_Ô?¾[ ?-µ?™àX?ÎÝ ?ÍG?¦g‚?ªe|?®eH?«Ûª?HàÐ?KÁÔ?œ‘Œ?¯#«?ÜOs?ò÷í@UÒj@Cˉ?V…??gFA?€'?œÉõ?æ«^?ðÚµ@;Ë@z@ãJ@"‘@?$ @!M#?‚ø§? Õæ?ò­?š®?-†?E5g?žQé?Ú*ë@,ô§@ ={?…×3?¢r?(uö?Œtv?¶n ?Ïw}?¾Í?½å?´©?§²-?¯eñ?º#®?ê=?þw.?Z t>•WQ?mØ¥?¦8C?€’q?[Ùo?†y™?– +¥@Üh@j+?ýR?瑱?^.‰?É?h`Ì?‰Ÿ¹?ŠÉ;?‚2?°û%?µ~B?³X?±0X?w¦³?uGÀ?6-è?!5ñ?‘¦¦?œay?øƒŠ@9#?ˆ¥ó?€7“?Àv?$®3?V*J?[- ?>ãñ?Il|>ñEX>ÌŠ?¸£V?ºÕB?½î?»ªO?~Ö,?kˆ>tcÍ>Åþ"?rfº?€Ø-?_?7(Š?·]H?ª²ß>¤y{?Àg?ä©¥?âg"?à!±?ãdœ?÷-ª?í—š?×W?¨$7>œ®?±àä?½Î±?ã‚?ÂÊ+?C.?„ÑÛ@°@°A?ÿ é?Þ¤?’p?w´>ÿˆ™?O-?¿›ü?ž.Ë?&#Î?”¨[@¾?ìÓÌ??òÉ?)(?{Æ?„§Ž?ètb?â*Ý?ÑJk?¼ö?™ð>?¥¶°?¿<ñ?¡ª/?pY¦?Í%6'Ô`>Ûþø?Š+Æ?¹™Ý?ôy´?¬ˆÉ?x?“l|?ê™ð?è"9?å¦Í?³ÞÊ?v#,?›Þf?ÄuX?—þ?/G?–«f?ñ­Ç?¼ð3?S%?X'i?Y`?hØ®?†îš?I$û?û?´˜÷@!WS@Go?³®”?p‘Ú>¾å*?:í)?”ˆï?™Íö?¤!?”ãq?¤r?=ìX>ØqT?2”?’*•?bó>ýã?— €@Ý«?Éò’?Š…é?œÉL?½Œª?ï?xf?¶ør@' —@)÷—@'j]@‹ö_?Žüª@Úü?þV½?“1-?Æ‘“@ƒ@‚¨?Æí©?°-—?{Ž>?Ÿ\?úÖ?çUá?°È­?³è?ÓY??ÈÙf?ˆæ×?f‹|>úïÖ?4H?Ø¡y?Öˆ?°nˆ?¤Yh?¥FÁ?¥Ãu?š#|?¤¶?¿J^?®Êd?»¦×?»Ä?ºÒ?´LÑ?ô +?ðßS?c®?\>@*ò@&¡*?а¢?Ä’?¥Ô°?”Ž?¤ZD?œo}?³Ñº?°ÑÈ@šÍ@/gv?•ÕL?%x/?fI?Z´?U’D?k¤Î@Â>@FP—@Zo@^rO@90@'¤ @8EÇ@JÌÖ?ÖÀZ>—„z?t?Ë[Ú?È?ÄÌ ?¾’?¹vg?Ð{›?ö1ç?Ñìð?‘ ×?°®ú?èê ?ÛŽk?¸ÿÊ?°A„?‚§ä?‡÷¶?Ô—±?Ó0f?âå!?Úân?¸/?¸pB?Ç`?ÀÊÞ?j’?pÜ?ÌÉ]?Ó§?l >¸/?2?Âv[?ñNf?÷áï@R› @ƒ`j@waž@hd@0"Î?îYY?ò6’?ÿö²?®ÞN?œ§?ƒ”W@5@™^@4<ì@Ë?ÎBU?Þ`·@B@š²?ËGµ?ª@)@+¬%@0Rl@.§@wf@0@4À)?½]ù?ŒJL?é@2Z?ú*Í?ñÒÖ@w+@@Iž!@‹Â @}[›@4ë@¶D?ºÁ?Ì'@Ì<@ès?ÌÎË?¾LF@RQ@REv@gqI@cmg?±5Œ?oåe?Îý?âñI?ÿ­,@ ì¢?³Ý?mÿí?–Õ\?ÁMx?¤ií?QØî?È?áOð?Ø”¶?tX5?†Té?î8F?îâ@#36@ D¯?ø6k?íû5@AÎ@'?û†\?á†ü@.õ­@_ˆØ@X?œ°?]c³?Ú‚?Í A?YK©?‚8|@¯õþ@­©@$˜A@]^@N«@9ÿ@½Å@Í(?ì6#?ãQ?±½²?+nŽ?ɼ@ªÌ@^sØ=*Òô>µ?õÈN?úL?½û ?ÏæP?¼Å?¯??ÇB3?Ùêj?ã ?é:{?®ˆ}>÷ì7?5š´?š'ü?¸ì?‡ {?™ô¶?âB·?è:n?€þž?Hͤ?ßjð@ÿA?íœH?¬ §?m¼=­N[>Ï{´?øl:?îÊ.?dU@?P|K>¹‚>[žX?V×ê? S|@:¾@#8¦?ñ‹]?€\È?Uó?e·ƒ?l ?ÕE?Á¥á?wâT?e8A?ÝE›@ ½P?÷C ?ÌÝ`?¹?«uÈ?À¢b@‰~@ +qÞ?fÐÌ?Gße? ~¤>ôðë?<¢ ?sÂ`?t¿a?c–©?R(á?BÎ?‡@A@&‰@:†®?ñºB?âöx@áR@ ÷4@'µ@:‡Á@œ?©×Ë?ÎÚs@=Œ¡@3 ï?žLÏ?Š?€*h?b&?Š$?“¿•?€ ï?a¦(?xp@Åü@WS@ ·Ä@^„?É&À?¨íû?éÁ@_@‹:@¹?è=?šÚq?ª€?SéÔ?(»?ĈÌ?Þ±Œ?¶“ó?›C?—z-? L±?¿‡3@Þ(@»H?ƒûÜ?q› ?aÒ…?iøÛ?ZÆç?p?]%?$c?N¡u?…cE?ÀØ?l[¤?b×?ô€Ï@±?Æ+Ê?“ÇY?‚à7?P”­?V·É?•Æ`?„Ô @ =%@ D ?Õt?µA ?.‡Ä>oèp?:¬[?Ï÷ó?Öíˆ?\§?p?àà3?àéˆ?Ì1P?Óè?ñ0á?îF²?°Zš?Ir?R z?©ŒN?Ÿ3º?6,n?æÜ?/ƒü?'•Ý?Ï«à@ z?Å›Œ?bjÛ?6·¹>ÅHg>Þý?h3Y?‡£®?²4ç?¾ØÂ>]Ò>¡1Ý? e6?;×*?AÚî?0’U?._î?<Ñ@Á·?÷ú¾<åëÜ=tð?ÈSÚ?Ç7U?ºi?­š»?´O?Ʊ^?¢Åê?m¥?Ÿï?ÐÏ£?½1ý?©ˆ?•Î?û?m‘ ?ß[?æ>ÿd}>ê¯?BÍ ?A¶?J¿? Â1>Œq=®ˆ =à/<‹Ý>ë >µª?Ü2?aŸ%?M›>>¢ÑÅ<æüÅ6œhp> Ç7>ò/>ÔÔ5>’áO>ÝÏÐ?Lõ6?iöÂ?p0Í?h3?uê–?=”>àÒC?÷u>?øò¨?¹h:?–ž1?4'>ÖZ;>0„>ª»ì>5­Î=H‘;N¥è>“å*?=x?Vå>×DÅ??i?lJb>"~=ÏP9‡«>’õý>·•×=0f?j@ l?It>­…Û>ŒNó><àl>g*=ÓQÌ>dÏ?nú™?_–=å=òú*?t?2»>ï[T>îØ­=€bÝ>½ >îÍt?o?Á$?«¯s?çÑ:?Ο?¹½H?«÷ ? &²?L è=¼Aø>¶üF?nÄ’?C†’>A»J>V‹î>Ýãi>ÐÇ +<ã‘á<ëm>öCÕ>øšc>ç¢8>èyß=·ÿ;º»>¯´+>ï5>ïp>ï ª>Q~é;¤… >dR÷>èe>åƹ>ãj¤>äô>ïI·?%T?zIm?ƒ½ü?¥ö‡?¤>Äh–>ÕŸ’?m€Z?o!>ë?Û>À7i?±c.?ÔðÏ?0Ì>/²>ïù:>¹i >“2?<¶ ?Ÿ«0?s0|>ðH>òºà?€€?,Œ^?é?pö>?%>õ?-z?r#Î?pÇb?8“l?/ÙÃ=èi¹>OÌ¡>’½==ÔéÌ?eª±?ʸ?v6í>‰)ç>Ø–¡?5ûp?WÓf?…ŒQ?ŸÍ?ñìY?âvT?‘m?‹ý?r1|?r®??xÑ‹?vw´?t?r‘ë?àòG?ïž?RŒÆ?~@?|?¨iI?«w?¬×”?¥?ž.½?5×D>lÎÒ?[s?Ù©Ä?º&G?s¸ò?9¼>7¹">ˆQÄ?v²?#ª?ú›?p¸?5‘Ë?2Å?/ü¦?-+Ô?*\_?'‡Ý?ˆø¿?Ž#!?´fI?ÂÄw?ökö@ˆ ?¥å?uZä?œyS?°J+?ÊŽ=š–õ?ƒÆ×?òEÃ?ºå?v×V?­Àu?ëÁƒ×Ç?ÙH?›¤ï?ªƒ ?ÜÒÛ?çO@ +$¤?ù“?ŽÉv?nN?’°?ž?Â’?+Žü?µ×¢?¸Ç9?Dc»?L¢?ã>÷ÒÝ? +ôý>ÿ¹¿>ñð>ø5?Ö†É?øHj?-?aÜ•?õµÁ@t“?×&Z?¶ h?·Ìº?¹’Í?â“|?ý¥¨?øø?ï5?%ü? “?>]¶?a™Å?™Óö?»Ü?Ç2 +?á?Å?íÞs?þêé?úXž?ï ¬?º›H??ñ?ŠL‡?äs¬?²Â©>ú}—?m•¥?è‹;?ðöR@ +†?ÞDY>ñÃ>êxn?„Î?8$Û?•4Æ?‘ª?Ž?ž,!?ú1y?×–˜?}? 'f?F5Š?‹óS@ª@ŒX?˜Ï¿?׊?šÉB?"ª?Q†=?\ñT?ˆÖË?Ž# ?|p\?€K®?xZ?q×?´ò?³eô?õK¬?÷*+?m¿?U'??|ÿ?zµ?½Õä?»Ùõ?‡s?‰HŸ?ø©º?öTÛ?}pw?~i)?xõ?u9|?}¥\?z:‡?:¡Ð?Phè?â7?àFú@ õ@œ?”‰è?™×M?ä»Ï?Ý[à?9©›?M|ð@[Ô@ Ûë?ãÛC?çRn?þw¨?ùü×?a! ?IcŠ?~¤·?‰ Ø@>š@}S?~ͼ?„1 ?¿*i?¯<w½>4¬V?²ãÚ?´e?÷Ï?û æ@uB@eW?š¸?ƒSË>Ÿ©ó>øaw?§š +?™ºq?7y?)_,>¹,>çXŒ?Ç”=?ÎíK?׳S?Àüà?OÖî?‚ØG?ïÆE?Ø5Ý?—Ý¿?µ‘O@î ?÷tü?~8?Q}?ÀT ?Ó—¡?øå2?ÕÒû?&å?r€‹?æ?çI?nï?‰¼2?ûd ?¼G¦???»X?_`ã?A1-? n?†a)?ìo ?¡Ê+>¾ç? :†?„óÿ?µÍx?ò(ò?ÇhI?‹¸m?S¬Î??BhC?yØ‹?Ââ?ÿx@u@ײ?Æ"l?^f?–Û’?³–~?Ãy#?ÑGþ?ô(@¦Ñ?…êD?»~?º+R?è/à?²¯Q?¨dŠ?<É'>Ñã=Ö¡?`ò?Gm•>ëñÏ>¢Á‚?ªœ?Û;æ?8ºç>ì;D? d?½äs?óú‡?ú´c@9¬@ˆè>üÌè>‰{’?¯&„?ÀUÃ?lèF?XS¤?||9?€6ó?ÇCR?ǽ?ý+C@1Î?¼[-?µ|;?¶J?¥$>ÿü¬?ëò>½´>Õü^@%ãÎ@–'?€ R?;|?‡ÿ—?ÉY?ýÀm?ÿ.@û +@ ë#@ ë"@u?@®?èâ}?€ ?“Y?â3?ÑX|?·ÝÀ?Ñ]ß@¾£@Å?¸³B?Ø%@ /^?ß·>׫Œ>ïß?Jà?N K?4û#?i?Ä-?‰<'T=•‡`> +ôü?? Ã?í–F?Ó‰j?¤m?‰¾¯?H Š?€|·?¨¡¾?Ëí@þë?÷û?ÞK¬?(¥>VÄV?k?“Ç?Á˜ø?ÿ &@‘@ËI?îI!?Ç ?m”Ó=’>o\à>ú"j?iE?¹ a?¾ü?ÉÌ£?çZ~?ÿ‚’@{¦@ÊÒ?î©Â?²L?}å]>þYÇ?X(?›tõ?˜ô”?–u—?Wl­>þ$?“i„?ð¢Y@¤@1á¾@ì&?ýÝv?¢i>ýÇÄ?¹¿Á@V@'>x@-e?þ’?‰ ?¿Éi?çþ¼?ÒÃ[?¾Ð?ÖX?}x?œ@y?³_:?uÍ–>ý ?G_?Y:@ :@†9í@IÎ?ì–?Üc?½á½?ï…=@º?å•??›îM?¾•?ë +ý?ë³P?æ}?·$X?H ™?Fhì?=*"?d*x?¢æ”?×Ø@͉@2¿c@ƒç@Y®?ß""?ÇW?©I?X?‹?Ÿ?t¬w?ô®Û?ÿâg@ÁZ@"ù?¼?è?¼7©?´Cð?¯+©?¼ä?ÂfÞ?æDG?×™þ?N¸)?MEÒ?`þ?ssZ@eÂL@^ç?Äce?ÌmW@:J@0C‰?Š- ?Ž‚“?üe?µÌ?€‡{?–‚—?Ó2ú?Ö‹f?ؽ?á2¤?ÒÂÙ?Ü–t@ž}@ `@Ñd@­¯@r­@s+?ièY>øÚ?—Yy?³?ú@@d²?åÑÔ?Ü:d@€I@ÿ?ê6ó?¼¸?nŸ? õ?‰d)?Ö +?è·E?÷bv?ââ?ÁË@ j0@U@(+D?°æ*?Ã~?öÆe?ñøÌ?á,a?ÝÈÝ?ÚhZ?é³g@#vÏ@¯“@½$@(š?«w?®° @ü@ñ/?¿ ?²ü’?42?31e?“ý¶?—L‡?`VÄ?Fž:?Þ¹è@ zJ@kÁV@Œa’@ŒÖÉ@È@pùY@VbA@WÈË@R½Õ@m>ê@‚ϼ@;"?Ž“p?»¡t@@‡_@#w@¹Ž@7ÿQ@=ûó@fh8@mža@@7@z§?¾µ¼?µæ @AŒ¸@RmK@{N?ܯK?•Û?…W¤?â=?¬Y@ +†ã@2b@/Ùñ@)[Ï@+*A@:ÄÃ@%—¡?ìáS@ +*Ã@Pô.@ þ@T@ˆH~@ƒ­Y?è]ï?³?â<¤?öD?éL?Ûó@nI@CR"@ÈU>É*\?+ãE?¨?¯Êr?6îZ?8§@kå\@rš@“@Tð@F5£@L£‡@!Wì@ãó?Ç8?k Ç?›žÿ?È#,?öu/@CÂè@=Ä©?Ù´à?É*.?ê1w?êz?®+R?šŠÛ?½©?Æ2?×þÅ?Øéi?ð«@È-?ì¾ï?à÷F?Ì‹‚?®‰!?®Ýn?©]?›¶A?á$?è-X?‹í‚?G¿?ú6Ï@-Êã?î`3?m°²?eG ?5X?NÇ?Ù‡?ãs”@ F&@³?¿0g?£`Y?ï=éõÝ?Ý;?ˆíµ?¬° ?Ç­*?¯DÚ?eª?p¶I@ ËÃ@>?•Ö?uˆú?Úx>î|f?{µ?µRë?ÑØ7?öhy?éÊu?èŽ?üž´?õ¯+?ðn?’€c?m—À@6 @´@Šz@5’?å–i>õÜV>ÐÕ>ã-Å>ãË?ÖSb?âí>ðà >Íî??¨@Êa?âØé?‰?ð?¯&†@1o@C\ +@ëS@æI@Nb@[C¦@Ñâ?©Q?°eœ?²ä¸?¤?žVÆ?­E?ad ?aM·?ù?@ +N?žJÄ?ZLå?ª ?ðÙ1?Ød?3?Í @ß@ŠÜ?êm?à¬È?½rà?¨l’?Ê¡?èwé?¸áª?:“Í?KF?àdN?à^ì?„H±?`R/?‚ ?ƒå7?B~1>Ôøh>×âõ?-;s?ÏK?³Ù9?§æ°@*}@9™@ð?ë"?êZ!?ê®?íh@@»@ ;©@ >1?z›?SÞa? ˜?§?¯?˜Du?ˆ*=?¤Ï@:.d@?˜B?®?´?Ëe½?É™ @ÖI@k¥@ B°?öA.@,À@ ‘<@ai?ÇVý?»=û?“»?‰øË?mw=?b$Ó?mÊT?f\^?»ê[@Ù]?åÂ-?6³»?3%?ÊR0?±hm>—w0=Y:Z?kÖ¢?'x?ݹ@ /?ÁôN?U‹0?Sƾ?“œ¸?œ¾?gXÉ?R)“?ÞzÈ?æ¾?æ6Î?æt\?Œs?KW±?‘¶?®¼¸?Ä€??çåÊ?Ñ(?¢÷A?°sì?½ôC?ÈA&?¦þE?­£W?©ßb?œ¤»?ô€?™%¨?ÍÅ>°À%>öZû?+§>ô0µ>ḧ?#Hî?L„Û?¥Â>hK)>šg?>ïa¶>çUu>éñ†?6#]?•;’?_jU>ñì>èГ>¬‚ø>{ ð>.Ý)=ÿI?²“?8U?¥ ?{…ì>(k¤?0‘ ?.rÙ?yïg?CÓé=߶?>´?J‘n?5»?Vž•?:)>ý“'>÷Lí>Úù®>ƒá8>Bü:>ÕÐö?ÓÙ?:W~?%|ê=âñh=µË>> M>‚„>Zt—;3Œú?04J?å:U?P™C>b¤->“jE>¢±ž><‡?në?q»?xkÉ?v`à?nÒM?kvV?YÑ%?Uq>Ùlo>Ùe<Ý>Õ5E>î´ž?aüÃ?y"@?œŠ•?¨ôä?Ð¥Ù?å'@?QåE=Ô‡+>ôHP?^‹ã?bðß?g8?¬½ò@M?×q<œû=¾@>î¿j?£½?nÅÞ?kä¬<-TK>ÚŽ—>îÞa=£:××>±ô>îøA>êŠ>æà>êe>ï>ƒ„T=ªØ? ¯a?§ðŸ?˜T?oD÷?ró?û?a,ó=¹ýc@m@øº?dk?TþW?ŒõÞ?•”=?PÉY?.À?œUø?¹¥¹?twÑ? ði?Døü?yé?i3ù?A¯??n„>‹üÈ>ôlÅ?“(?ˆ Û>úPf>ôÙø?5ç¢?7êO?9ðÜ?;þœ>ƒž'>C3ï?%l^?2¹¾>Òæ8>¡í…?:+?MÔ?wï×?ˆ¨É?6‰Œ>¤—»?5ZË?©Ô ?°0?ñÚâ?öF¦@?÷ø?i Z?u2?¯c(?³%?µ×Û?µkà?·_Ô?¸ào>ex±=. F?Mi2?uå?§Óñ?¶N.?.™ñ>žlö?Á4?3óþ?`z“?ŒKL?…z¡?s«?86{>“Ü^>F3 >[Þs?t"¨?t2#?tH¹?n@?@¶¶?HÁ?‘T]?íX?Êœ?’6²>ÙèK>µÑ~?E&m?[q.?^zo?a„Å?pþ«?uw?‰:õ?Šai?{+P?tS?œØx?·/Z?¸³„?¼ô§?´e?¢8?S¸í>#?Pš?–Þ?¹·ß@Ùa?çoÔ?vå›?‹­-?È>ú?­4#>Œš¥>¨xØ?w_?äÔ?¬ M?¡Ž{?£O?œü[?¡Û?¥wƒ?/·î?V?ºb ?ÎÅò?jW?:ó?˜Ë?¬6á?ŒA?€ 2?trÊ?wKÂ?¨·}?½?˜Û?ˆT? %G?¨yÆ?«”“?®XÇ?¼æ_?ËcŽ?“B?KÄ…?“îL?»d?ÍåM?ß7®?°ùí?z&ž?—ØÀ?±(¯?žÖ^?‰åC?¶Í@C?ëÒ§?ª‘?»’h?Þ*?Ê:Ð?“Â?º6å@>>@Š”@8íÔ@7ˆ?{Ñz?}Úÿ?u[e?“‡s?çeÖ?Ñuì?* ?°‚÷?ߣö?Ì®|?ÖŒ?ƒŒö>ü!f?4pß?Ö-—?Øe4@:í?î]?¡vƒ?«F ?Çb¬÷¢>Õâ¤?aÔ¦?tk7?†{®?g¸=>ÿs/?_E?|½?ñ^?ÿ>?ä¸?˜ìì?ž$@ øå@-ü?èôÀ?Úöz?¤°ê?Éó@‹¿@YV?ÿ|?êX_?Ä |?Õ“D?ïš?çá(?ÛM)?Õ=Ä?Ï+í?³Yh?”bQ?„en?OBá?ñ´>Ž0>Ánô>ûšÑ?4k?€â?OÖ×?##z?Ó>™Yä>CL?IÓ«?À9?«²k?” ?@ô©>õ”ö>U¼ó<Þ*@?,W%?5T?ªøþ?·!?rí?5€»?½ù„?îî½?é{?ë©C?žÃ,?e†T?è‚@??òÌ9?Ñ Y?¥z?™â?4¬À?¤Ý?¢SJ?ÀVÀ?¨?¦]Í>èÆ»>QÓˆ>K#>ÔÌ=—võ¸ +>ÃÌØ?þ’‹@O2?8F?2…?ýO­@ ä?߯7?߉™? F?š%ç?À:ã?»&Æ?'Zž?,@?¡¸t?³Ìn@*wÖ@#Ƕ?€ñ?”]t@øk@^?Áâ×?ÄÂp?Ì„´?Ú"=@^O?ðþŽ?xÌp?Í?¬u0?®½7?ÈY?´‡?8ø ?y³‚?âð×?¼þ½>Ó¤$?eêG@ë£@L? ?kè=Íeî?-~U?ÿ¬­?ü^?ø=@?çÐÒ?¾G ?—">ëÖ ?X3 ?É#Ø?ÆïÚ?¿ ?²Ò“?™åN?g6ý? Ó¨?c%w?°e?ðÏQ@}¢@·š?¨È™?ŸQ@?•Ó*?®VS?ÝtT?òW@P†@Á‰?ðgb?×›R?º:?Ü8X?ùs?¾Pq?…é”?\,V?,ýû?R6û?€¾ÿ?âÍ @£@;¹@ +µß?Èf?€Ö.?Žˆ?¢ùP?²-7?¾™ ?’5?F 1?€Ql?¤ôè?¯ +›?¶­+?ÙÐw?ûß?ý:4?øªœ?܃3?ËÀ??ñX@ +žÈ?Ñè?¬QKƒ?tZ?|j´?°2b?ì[?éÌ?æÝæ?¸ú\?|Z?˜Ì?¼ü¿?˜™_?I2Õ?ÅÖî@6WB@·Î?  ž?Œ3R?2Z_?f?¶4š?Ïÿ–?öFx?ò·d?û3´?þKw@A?è Z?&?£x?Ôj ?ÈK+?›Wb?—?z›4?ƒ¾?“%–?‚ºŸ?[²á?Ñ +?çCÿ?óˆ @™@ +¾8=~£>l¾Î? º÷?+iì@êP@íJ?,Vû? (¯?`›?mã¯?›Û?˜˜ß?ec ?TŒ?å–ƒ?êÃ@ @äá@Šø@‚§?[É'>ø…U? ‰’?£?ñµÊ@öŽ?ƒÕ_>øŠ?áÐf@÷ð?ÕáÚ?˜•?œ6?£rž?­tÎ?«Uš?ÓXÎ@]3@ÜŸ@Û@ãe?Ãô]?Æøw?¹%r?­¾0?šãí?•âù?€´?ª½u@ ‚@šf@Wq›@J<?âÚr?Þë?uãý?{e%?õ¶¦?õ¦®@ 7@ÛÍ?´ Ü?£':@+Op@3åŽ@@k?é—@šë@oë@;ë@] ‰@me@yŒˆ@_e?”áe?×Y±@Ô?@À@ ïš@ Ã4?«]?¾šX?ó„ƒ?é ³?×Ñ@&*@]8·@PÊ @,5è@'›y?òÉ’?òª?Ãäú?¹¦/@[¿@×P?Øq(?Áp<@D@ç?î«Z?Ýp~@P:@9gò@J{v@aÄ*@Y +›@Cë@)'/?½_¬?¶#°?ÃÔ?Ï Ó?¿Äò?Äß©?ÝF?Ù@JM@Rë!?ŤÑ??ö$ï@bn?zæÉ? 9@À@häï@O>I@9-@73Ð@?8Ç@$ÍÆ?Þ\?÷Ï”@Î@¨t@e^‚@gMÊ@Ñ^@ßïØ@'œî?ë @Dù?@XÑs@ç?í{@ +ß@« ?ÿAß?½‰?½ûÏ?Ý8?ï@[@øÄ@Ä9@´ä@–“?ùqV?ù ‘@ý¼@aþ?Ó¹Z?³á?†=?D^Á?´@ z?Ú{>ø-\?>ºy?êSK?ê4O?ê?éûü@ÜM@[x@É@ñÉ@ ßT@C@Cáõ@z®ù@e•ú@*iE@$¡a@kM@·?Äá¤?Éd?æO‡?è ?ôû?ô55@C@-¾B@,qð@$e?÷1µ?g9÷?nL?‹?’}D@ @"á@ I@ Â@"b@+.Á@J[@š”Ó@geº@9Y?â"h?'Û`?<?Á/*?¼3®?ÊÁw?¿—?°}:?¨:n?,ª\>Š‡`?T7á?ÖEì?ægÇ?ò›o?Û)¢@kŽ@ב?é®{?âç®?Ä.à?ÁÃ1?ìjž@ vì?ïxò?cQ*?eug?a@ ?Bm?ÊŽU?ÜzÐ@.Ì @4>@;’£@Ca}@Âg?®u•?›.f?b8æ?b(’?¼°&?²]?ØÝ?òq›?縷?ÒÿJ?Ç÷|?Â}¨?¬Æ?~?è?aTX?a?˜?c¢?{Ê?¬kÇ?³Vï?˜l>?ŠˆO?ˆé?`ض”">bò>ØÆÞ?—Ý?›Úq?Ž°Ç?’³?^Ù2?M,¬?«ªÜ?á~?ª™ï?hÀŒ?Š{?bщ?kS?ñTÝ@c¬?Ž–4?fQn@Kª@ +n?ëK(?ɼC?µDŠ?|úM?s¢Ù?Ôl?"«@ v@˜p?æû¦?åä®?þ€:?þ½U?[Km>¹C‹?#?æ-±?¦€?>Û%?MrU?'¯¥?=[Ç?hÑå?kŸ??€7Ì?kña?tzb?$p?Ì<?Ñ_Å?qð?‰o?ej¬?`'~?k³?bv•?Šq?Ÿ)_?yÅZ?,ZÌ?:Ít?CÎ>Ûªð< Œ³>©¨g?…[V?m&=>ñ°>ÿÇÞ?&9Ø?gßÛ?»v?µ¾?©É?±äý@¹H?Ëÿ“>†®Ú?®ò?©sì?x•M?=!E>5\-?<·¿?AJ>ü R>ó]l>öVÍ>™õë=¶ž²>mŒx>”žR=Ö€?d%N?´Ð½?8G>é R=F\Î>[ùô>ªÏÍ<‹«œ>j7V?@¥¦?@7u?½œ>r~>¸?nÃ×?ŠÄ7?­ÆU?!C?hϧ?9£=J1¤=Ou=S™=I°¢<؉Z<÷[>êäC>îŽ@?¯Œ\?¹n‡?@]>â0?PÒZ?n‰µ?åƒ?°[?¼D= +ï>†²>õy“>÷@à>øo‚>ówE>î™>îëU>îÞA? ×Ã?n©7?XÉ;ö2>ì×½>îÁ6?`_Ä?gV? gÑ>îÚ? Ö£c>ø¤?°³?kÒ?§ƒ>Õ+ô>Qî>óàê?™P?¾üÝ?̳è?É]?Ý>?N]?kÿ‡?o¥?$úý?“¥?ŠÔA?žß8?¼íº?Å—’?cã>ðq?'‡?)Iõ?¢¤>ð7>äã¿>âÂ?%ãE?–.)?›D5?¬Zþ?ž|>ð©>ò-†?(¢ð?&©»?£Í?±¾¹?g‡ ?K>èŽç>­ÆP?aÚ“?—Æ?¡ï?¨žß??U'?©.,?ÙËÄ?–¸^=5°³>öX>ÿ]d>Ò:EŽ?ñø?ìï ?X? bS= +ô@?Åt??à¨x?æ+»?çR ?ÄÈ®?yI?€Ó?¢ü?#?s’ ?€ˆ?„Ë?=é>„Ä…>Áé7?7)¨?e`â?±l°?Ÿ‡ ?+ã$?<—G?·cÏ?±EJ>¨ +`>®:R> ’=ìôö>±F¾>ÅŠï>ðÙ>õ8ª?P:Ê?i|¹@ =@/U?œÑQ>öKŸ?Š[œ?¸d¤?+ÃÂ=þ>Ã$#?¯•>¯³B>Êû[?v}u?kÓ¿?fx—?súã?vÏ®?†­|?¬ å?¯ýt?¤“D?˜Uä?wE1?Šð@úó@^w@5 +@ü?MŽÛ$:½>Ê€?ýb?˜Šþ?´2²?Þ-?ï&K?©¨á?Š,£?È_ï?èzƒ?šþ„?P›#?!·Ó?+Õ?ÿã@BǾ?ÓAö>øò?"5?å%ƒ?æ0­?âç?ÇÅÖ?§%?žÕ6?Ž}Š?ŒºÄ?Šù5?¢0ò?Òäm?¸– ?{ø?¢ºš?ð#«?ã„f?¼'†?º$?¸Ãa?ìg+@5/q@©?{ªˆ?nDo?VìÕ?i¿?{èÒ?ƒ¾Å?‚À?jD>¾ÂÀ?§ûT?°XÕ?ÄåÞ?Ý.á@8ðæ@$(Ž>þ??&ô?¾ +9?«£Š>ý}L?Y ? ¡K?§y? Y?—‡:?}ǘ?{æ?ƒò±?‹Æ®?‰w?‰Î?ŸùÒ?G?? Ìd?h°>ÉÀÜ?4c@)f@PÚ>þgÐ?H´@@I£?kAs?w„@?ŠÔñ? +O?»_¥?¾¨½?½ª³?»¸o?¹Æ·?·×d?µãÐ?Á–_?ñÀ¯?Îå?Do½?er?”ý2?†ù?Læß?c–?œÇ­?—¡?zƒ]?«[œ@ þ@ë?貯?·´N>ÿƒð?2I¨?ŽŠ'?„3£?j?ÔŒ@K|‡@)ôL?‚Ê?‘ßÄ?-p? ¿E?Ì÷?M^¦?‘vÎ?‘Æ?Lä×?À@@„)?ô·p?« 4?»Ð®?Íú‡?š1?EÜJ?_ç?€§?€ ?€ ð?¹>5P§?2á¢?’¤¤?€·ß?Jnw?š3Æ?Ê‚ü@W‡@Ñ?‚A=…þ,>£ÑÝ>ú?P&º?€&i?…IÚ?‰ä=?wâ‹?d‚¥?²×=?ÒQU?劢?êÒ?fz7?—?Uš9?tü!?þ:˜@%8?Åg€?§6v?„è?»f?§)a?¯¤Ø?=>æ?ùý?¯’e?ÀE/?èk?ô¤ ?þÄ?ÿ— +? |>ð8ˆ?·›?À?-?¶q›?³¥€>Ö†>½J@°ý@ +Oó?Swù?NªÌ?·uö?¹Ul?€ +Ó?ƒR?&e´9Ý?ý³ ?Ú M?&4?'¼f?CUY?? È>ÿúm?<.B?¿ò-?¯ê?ãU?‚ÒÈ?…¹x?‰æ?žGÞ?¤W^?³šF?ª¢?ªft?¬ö^?“ä:?t+ê?0ÊY?…¯(?è“Ï?Èn?‚ÜÁ?˜A’?¿žb?êõ@¤w?¸;>s?Ö?Žm?»“?“ ¼?r¢ì?û•?,Î?E²ý?‰£E?ÅwÞ?õL@”ˆ@Uª@ +vS?Çp¦?^›â??í?8\?GÐ?~Ëó?N>\? ïL? €?þ§â@…è@0ŽD@=©@O?„^ï>±?È(@3ä§@ãQ?ÄÓ ?´šÆ?ž¬Ø?}¾Œ?H r?\À}?x‰J?˜Ýd?­_Õ?‚!ƒ?/k™?VwÆ?}Ð)?¡M?¾M5?¾}A?À’?A³w>1xi?:ÁÌ?—±;?¦Rr?¬tè?Ì,Á?æ–Æ?¦¹f?nh?œà?ÃW ?×ë+?ã÷ø?˜8?-›%?ßÉd@/ @Á?ê?õ¢j?üžœ?}žI<± =._>‹¸?².?Îa¸@,‡{@ …£?Óé?ÐdO?Å$ ?Íâ?Ûö?–lÝ>ûÎx?!ß2?JH{?%q$>û™?”L—@ ÅR?Á:h?”r>þ@$? ?œ]@î¼?ìs¸?O‡?ê?ÿ™µ?Úàd?–g;?ˆ‡ú?:Í5?N¯ ?z‹Û?§\T@~“@ê(?2Í?:•§?¨‡?ŒT.>új?-Xƒ?ðÆ??Ù²?i[Ù?s·?å¢1?é/>?y|Ý?vÁ)>ù]I>ùkª?›ÁY?Ÿ¸e?ÑZÃ?ÏÎß@\º@ âs?¦\E? ;b?‘»>ø—Š?¤ô?´Û/@çG@ @r@Å‚@¯µ?µ>„?Žÿ÷?æX@ Öï@ùU@u¿@™Æ?æª(?å0Æ?ù$@·ö@#Ø?ìÌÛ?…†ž?–Ãò?¹4¯?ã‰k@x@Í@.}@Y?Gß+?¯}g@Ilt@=3@%vœ@#2#?ÜîK?Ο„?†]?‡uc?ìJb?óè@TÕ5@R)×?”¥2?†Ä?æÇ @~?©ôS?¢o@f@)+?è§E?«9?è +­@û<@!q@ tâ?Þ­Á?{+W?ÎQï@`´?Ú?+ÅW?}h?ÊDZ?éÉ¡@@6Ï@z®Z@~q@^$X@X<|?æÕJ?êj‡@A@ô¥?=Ío?%qS@c1/@€zÍ?îؘ?£?Ôc„?íSë@x›@#AN@s—@$ì@±Î@å·@ †[@0j@9¾‹@HÛl@Aj@9&¥@/#¦@ ë%@ å@`Þj@]£@2èÍ@)ªë@dëe@{—@ +?‡5{?s¤U?ˆ‚³?Ð @ÀÃ@ú0@?«´Þ?ª·Ï?²o?¾@H?Åî?Â?¯£? 5Œ?´¬ð?wžP?e´_?ö¬û@ÉB?ðïT?Ú2?Çšs?Œ=*?Ÿ9ô?§Åú?˜z8@‡®@ +À?’³à?zDÍ?X?Tú?}÷?Œ?‰\?ag‘?cË?óz?jmu?ž—Ö?¢\…?j³"?XX?jiˆ?`ãò?V‰;?>[Ô?Dç>à­‚>à¦;?¶[?b8£?Ê:>™Y1?§?N@3D@>çA@{b@'n>àLà>è.¸@'§c@> j@UE>@Uó@Aà@D^Œ@R†Ì@`¹Â@j”£?à[7?èb@£Ó@ Ñ?àVÛ?¬nL?Ñw@F5@"Ž@9Ô@#„ý?uë?Œ'?§‰`ì>ýõê? …>ç¢õ>çå´>è&M?ŒŠ?Gaß?d`í?åñ\?æˆ>>ÇË>f€Z?^ð?Žœ|?«QÚ?°Œ¯?Alz>ìÉ>ñ£a?½Ê?Q¶Ú?Œ>¶?…‡p?n9?ŽÁ+?Æ +š?»ã?i@`?xN?¥Ç?*¢?6@,?×›>„Þï>ôtþ?îYÀ?ݸû?ƒ´?„Â?q º?Œ¢€?‘ï>æÞ‰?Vld?r(?xZ¹?W½®>­ë}>ˆÍ>f(>hðW>Ä:š>‘®<;Jã€<®0€=µ·>iß·=õöË>¾d]? 7Â?qÿ?ËY= ~ß< ëÄ(Ê>7 <(«Ø?nw‡?7†J>ò‹5>ñ[g>î‹š?B5?j:A?l´¶?sƒN?]Ó’>îx‰>ðý>ù1?íÎ@@Æý>*ð[<Ý\¼?Iç.?j«P?k3®?kËw?m+Œ?mÒ ?nU,?ns«?–Ü?²Û`?{XÏ>î°?"Jt?n|?,ñž<&ë@?:?èÜ?ã<{>ý¤¢>üÖ=†”¬=|¤?Rq?yÌw?!g?ŒÎ>[#·=u¾Ì>—³ù>ïì?(™?Zìû?yÈ?‘J#?¤\?ý¿?…u?/ï?E +?”ŠØ?—Xª?øa8?ö0s?»8è?µ¹‹>åqÉ>§1M?S}¯?2š?Z£0??r?h#Å?€³?ž>^-> Âû>e»Q?<ÖÉ?…ç9?÷#?哼?[f?R¨?C ?Dˆ>¡ÄØ>¡´·>ë¥ù>ñ ˜>Ô„ì>»c?Ùç?•?>ØL?Zá^?³Ÿ‰?èƒÿ?Ƈ>ÖŠS>÷¸¡? +á«?'»t?m¨l?pr?qýN?ƒUâ?·+‰?¦Õð<ú¸P=”„9?¢¦?žüÔ@(2@¢[?nüç?FŒ>íC¯>µ¥£?pÖ¯?’o•?,Ë>÷Ån?‘{0?Ä×I?»‰¬?¶¿_? ?:2?7€¸?4ËÜ?lœ?¾âÿ?±65?tKÃ?… ˆ?·U‰?§É´>‘2Ì>4n?èã?z$=Ô˜=®Té>Á?Ö>Õ]&?'Z4?"z>êÓ<}2ó?9%?u*Ÿ?¥P›?¸Y¥?Lßv>Ý·?3ËH?cx…?U ?D|d?š£??×=?¹‡à?“hY?‡¯T?vÀ‹?BˆÂ>ÉSf?pÌ@ 7Ú?á;>ý@0?(ä²?–šÑ?•å'?¡ûü?™/ì>÷«ò?8ò?Êö9?Ç;?x@?xYd?††ƒ?„ã-?Ö)Š?â¾ò>eÌ8=À<7k™?KûT?pí?$þ.?¤?úú@H4?ô ?ܤ»?™?gƒ ?ð­p@“F?–ˆx?q¿@ü@W¾‰?³w#? ¹?z$m?‚ü7?Œ¡¿?¼p?¥(ü?·8—?ÌT3?Ñz?Õ®µ?|H}>¼-?öÿ?ŽW?1®=ŸÀ1?¡‘?¼iŽ?¦I?‚5Ó?Ší¹?ž»?ªŒ,?°ÒR?Úô©@á«?üÙÞ?©Ÿ?¡)Å?”ø²?ŸŽÍ?«üÐ? +ã>sr?(,?ÇÑ ?Ê3?°“”?°dÜ?½lØ?ÿD@p ƒ@KuÃ?|Èú?kÍÇ?'Æ?\8µ?ãw}?â!$?Àrz?±QW?|©?–Qè?ùÛ?ÆY=‚Y>†®?}‡&?nŸ¹?=þ?ŽN„@?÷$c>ýÏÝ?"?šQe?£|p?¾|?«T?*uP?%?M?|œÏ?ÔëÏ?¸L´>þWG?7¿?¾Ô™?©Ú?5;¨?~Kø@a†?×Ð?±—?=߶?¿ Ÿ?ÜÞi@;Þ@¥ÿ?‰g;?œk?Íg?§®<>ÿÔ?†·?VØâ?Œ÷?Ë‘~?¦}?;&Ž?ˆcó?݈?ïR@÷ê@áƒ?“SŠ?qÖf>ÿtV?8ç?•A?‹>@?PÃU?!ÕB>ç*¦?Wþ@ìÐ@ ?ûÆè?õÂk?ï·¼?ÔÙ?¶uÂ?Mÿ™=ÖïŒ?c%¢?âã0?¨uR?V'Ë?uÚæ?ŒØ·?œy?¢Jû?ŽÚ¾?€I?`µ›?KÃ…?u?‚*ù?—Ͷ?®!f@®‰@Dkž@¸û@Õ?³ž?…µ?Έ'?û¾V?Ô¬–?¼„@Ž@ÞÆ?±½ï?€ë?€!`?€ A?¯Šh?À6æ?®àM?­Ñµ?ÀÒÒ?¹Dó?6 (?tz?¥Œ»?¹}=?ˆÏš?€&o>šœD>!þÙ?ù? 6l?Œ¯?‹õR?±øœ?¸¯V?2+õ?Ñ?¶Zö?À¯H?»‹?¶úû?ÔÀ?$®c@Vê@ó[?b´?XªY?ù½?3ì&?€q?€b?€ß?v?3? ‘²?‰ßŠ?§Ÿù@-¤Ò@«¨>¶sø>îÆÈ?€ ê?†”c?¬»1?¨4?€±?hØÓ?Ž¤?ý9?¬‚?ŽE®@-Š@/?¨X?Š˜>ÿéß? á?RÐK?fcj?Ö§?z:?v–E?žzê?ݘ²?ç]Ñ?ÿ¸V?¯ZC>%Ùg?ˆ>%@/‰ô@>¹?¿²*?‘ûz? ç\?a4E?¸'?¤L·?7\?\?0…Ÿ?–Ï?Ôpc?“”V?[ü?LÒ‚?<?’Úk?¦¹]?’æÌ?ý?`^S?;:?l!ì?šëö?›]?–¢Ç?jÿY?ƒ4?iC ?”ð"?‹ê8?…^’?åv@“õ?ùñ$?Áò§?ʨˆ?ÖXÔ?×Å¢?Ø)â?yO>¸TX? Œ@ói?— >þC×?dU?Ý%?ÁØ&?©(¸?uiV?+”É?S]ä?}ðy?“ÄŠ?§uƒ?Œ«û?pߧ?Ÿ½q?¼ØŸ@'Ž@W÷:@= A@%ý?“,¡>R7¼?Åo?G¥ +?I|?­_÷?a0@>ý-Ÿ?ÐŘ@÷ä?Ç-§?Œü.?Iý>å·Ì?™A+?îâ>?¬tb?kqC?¹~1?õîu?¸˜Þ?w^Q?³Âý?áðŸ?¥6Ÿ?d]’?­šÛ?ñ$ó?Ûw?½?ÛˆU?ûøm?¿žî?†Y\?n3Ç?-¥Â?ŒS/?σ?•Íü?uÎ?ÒÚ¡@MlG@åŸ?wì?”í\?¶Ä?Ï =@ë0?õŠ‚?ϱ•?Ï©Ì?äP³?®µs>ÎMŸ?Y”?ÚZZ?®þñ?GÁ?ŽÒ@ç ?÷™#?ŠÚù÷å>üP§?e”?IŸH?ç´Í?è?>@ m@ [Ç?ùu?èïC?CvR?>"¿?y,5?y}?ÉG…?Жå?yÿš?Dõø>¹‰>}KÒ?™?.ê?h'ë?›Œ?»¢—?ÍÜñ@Ž@)ûÊ?¿ZØ?’^\@t:@'f@&>´@0hS@&X”@%j\?±7þ>÷]Í?íEŠ@Ei$@R¬@X+.@Ìp? ŠC?¬ìæ@5?úhG?§„Œ?Ù/`@Ní@`é@=@¸6?¸’?Ñ\û@"R6@??Â̱?»Á?|ñ|?}÷3@9#J@:ÈÖ?é^Ú?ÜP@€þ@Ê]?Á8s?ƒ ^?Ú?ùà¹@(,R@7Z@ICþ@X‹@PJ@Kiì@@è@6[@ +O?àc@(@DŽ@6,¯@+b]@>̈@Éã@~@i+&@_üê@W¨v@Vþ?À´B?¼ê@1S@5c ?Œ‡J?d„@F´G@hû©@ñÞ?×m±?¼Œ?µ*k?Ðÿž?ôy¯@D@&•ú@(l=@0¢@³“>öÊÕ?­ >@m†÷@_2Ì@${@#A.?ßs·?ç4´@mâ¥@sLD@iÃè@dC²@7}@.GV@+è6@/…Ù?±O>ÿ”É?´}@%‘@œ@BÍ@f>@Æ<@¶?ûÈ÷@« @`@è­?î ï?í®?ëí8?äì?”ß ?ƒ™m?â¢æ@ â!@C²@l£@#Õ?‹&Ð?Ƀ=@+ ´@&þ°@«í@ý@0æ¯@0ÐÅ>çÉR?{á@)«î@9Xµ?ùÂ?ÚžN@q@ à5?Þ¤?¨z?À¸?éàg?ùƒæ@Òs@ 1Ù?Á®?ÅL?sžƒ?i¥Í@,Xd@Mü‡?ëM?‡ù?Ã;W?죮?ö}"@ +@$‚@.gÑ@*ë¢@‰o@ŠI?è›k?çþÍ@‚~@+AR?óØ6?®Ó´?z ˜?$X?ÇQ~@;`œ@#<?ãÕ?캎?Ý„?Åð?õk”@«8?òø˜?äïo?§Î?{?“?©Éý?å¸?ó?«@q5@w?öà‰?ñÝ(@!NÇ@Œð?£e{?‡lÝ?¡tQ?¾³?Ñ2 ?ËS÷?¹ë¡?ˆ _?†¬‡?Îô­?¿ÈN?­åÜ?ªÏ’?M?^6?¼è@ +9?û` ?éß ?Øßï>±¶R>hI?¬h?ª¡Ð?°qÙ?¼—?vª?.? Ðð>âF:?6 ?éÞŒ?÷Ýi?ø¸?§”´?ÒÄš?Ñ“G?\™>áD?sÏÅ?Áî?žwÅ?@™s?V×5?á; ?á$`?Ýã#?Øš@˜A@ +íN?Ê"?ŠyÅ?…T?iË?=»q?Ý£>ã¨Ð>àŒz>àˆó?Oÿ? eû>êÒÉ>àcŽ>øÁ?-×4?>Î@>ÙÓn>à<æ>àÞ1?9´=?ªÈ?õYÏ?ÙFÀ?iª?¦,?¼à'?Ó¬ ?à–?à,@vö@Jt@O˜¬@4m@ "î?­tÜ?¥5?ºÔð?ªü?¢tê?œ£Š?×Oi?Ò£Ï?çË ?õrÕ?ÉL?Œ¨?w m?t¤?»C1@,È@ @L?ÂÃÙ? b¾?ø‘Ç@«Â@©L@ ¥Ñ?÷{™?¡p?•±d?h¢_?†©ƒ?¯bž?½’°@ §@/?Í@ìy@ !¡?³},?®•??#‡?_Ì\?L¥È?ÃN?ƒU? ç–?ª€b?wYA?GÒ¹?k‚»?Œœ«?¡¯?Àð?¿¹Æ?¡§ô?°é?Ô‰£?Á]¼?šæµ?“Wl?Õ–}?æÀ?c‰˜>æ¿?pl?¥R?˜!?‹ +/?VÛ?>è Ù>õê?¹?ÃY?¬*?²iÃ?Gÿ?&©y>ôVÑ>ꟓ?i…ì?’îB?,ä>å×>ì;>ì?].q?š ?‡Å?n d?Ï>œ‚—?oš¬?]±Ç??•s?|–?±&?”¸Y?9©—?\ ?vÑ$?€Ó'?sù?f¬~? +²Õ?h¬?ð?‡„=6èS=³’{? :?¥ˆ>*¯ë>pg>úJV>¹ˆK>5Ò,>‡i?-ƒ¼?€çƒ>©§Š=·Ú4<»nˆ=µT´?O“>¤ÇS>ŒjP?® a?ˆ³H? ¸o>ÚÅ>Ñ=gÁ=m†'>î}ô?ÓÔ?²Ó¿?n4¥>îjw>ˆw ?(2Ø?îZ?¼ß‚>îUÝ?&¦E?²ºç?'b=lÞ£?²£ý?²¡ù=fÐo>½’–>îMÉ?KúÕ?nRZ>´M­<_ >…ìÍ>î_ß?-‘?neÇ?kš ?dÚ£?cp?aþ?NÉ?·„?¨ˆ?e8?^Õk;?;…>õo¡?–L>ôª¸>îë=íþ¶>ô˜>îç´?gˆ?¾U>ÙDE>š¯>ŽÊ>c=/?NP?”Fh?˜ä¬?³wÞ?«}Â?…¡~?ˆ‡S?o‘U?t'‰?$‹—?Yð?œÈr?§Þ‚?€íœ?oÔØ?dCè?eb§?C9>wµ>oõŒ>hÉ>a€½>Z%S>Ã*?P3Â?o•ü?œå¦?›Hù?ytz?_~;qé?*?^ ?›Žc?¦r?Œºô?„Òœ?P»™?4ê“?™ÓÆ?¼ï?8Á¡>ìõ?1Û(?«lÛ?€¥§>õÃ>ò4´>óë>½×~={ z>m`N?^ô?EÀå>4Ãù>v,—?ÉÔž?Ì û?eèœf/?tD§?ª„‰?‰{‚?fB+?q{Ï?s¾µ?sÕ?så÷?sø?tœ?SÙ™? ?I®?£N6?™H +ÒS=Þ£@•Ò@G*?-–®>ñac?`¶?u³?8¸? 5o?e +>õßH>€ä(>$è?e½?«Dô?ŸÙ\?œ0Õ?¬¶6?¸Ýß?çhd@ H%?¿e?“¥T?Ÿt?¤½_?©@­?£I•?‹à¨?œf?ç‰ë?ßi?wå±?~„’?º k?·H3=Yi.==Z?wäY?zÉT?ð‘O?ó?ñèã?ï-ï?æ@è?à=e?û¼@Y?…¼)?WWð?‘5«?•ÇŠ?¼ß-?Õ%D?™¡Õ?y¡ú?ö®Å@‘?J >nXG?xÙî?±~?¦z ?™~/?´Ëo?ÓõÕ?ÃéØ?»ú}?ì™@ +Û?Å+?iÕ’?Òê…@^Ï@@ +Ù?È£l?·>©âD=©4P?‚T‹@°ð?ßZl?Š`«?mÞ*?C«¹?uÔy?‘áÅ?z[Ô?-_Ø?S‚@?‘Hä?“r?~ù_?H÷ú>ü?¡?A÷ +?³ +¼?¬s?“ò¥?ª€?Ú«¥?¾dq?bIv?„ñG?´*‰?ƒ•B? žô?þé±?Êt˜?ø˜?Gºš?ÂëÖ?ÌnÒ?Ú ¨?å’±@ iÜ@g?ÌË?Å‚¸?а?¼a©?M\ÿ$`?tõˆ?áÉÂ?·ç4?K}¡?H5{?U{ä?ý.>¹yd>Øõþ>ך1?¢oJ@«S?³4?«Ø3@>ó\@f€?ƒ­†?Ýp@Ëó?ª>pÏ> Ø<>Èi¨?HP­@Ù @G"@Ö?±',?¶??¿êV?­0¦?Œ?I¾>ÿðK?ŠxK?¿¸(?™ÿ?ÿ“?•?¥–Á?ÌÕW?äºì?Öõ´?Ê ?Q[Ð?@Up¶@Œ²@+?ͱ +?½Ï!?µ,?³Ú?±k?e`?M!1?žœ4?¨µ+?…„ÿ?Šw?„xI?€6?¹±‚?ÈO?Š1H?€ý?\km?N§Ô?ñ•r@?¸U?´ûü?u!Z?rV@@s±?–ï?¢?üI?ùò´?±}?±ÌD@ Ê@U@< ?ú…È>¯P€>Ò±É?§•ß?©€4?ÆsÔ?¶?é?=Êb?b½ÿ?ß+?è2®@=‘û@$¼t>ƒˆ>’tb?€ÿ?o!?$=8?4ºš?„§ð?‘õr?ÀÇê?½J?¸ÛÒ?½å?O¨•?T9ÿ?1?FVÖ?^ Æ?uÀÌ?•7¡?˜e?¦?ï}?C1?˜\?ÿ®š?ëµ?ÎYD?«¶Ð?PD ?¯•@Y`?õ9??¿¡Ê?«¿I?Œ Ï?!P<ï}á>gr©?ã^?þ>ÿO|?MB?–I?†÷&?_Gã?lª?(Y?De¥?¤Ê?.Zü?;m±?@h?DÃH?ZV>ÃÆ?{(o?µ™O?›Râ?ŽJ¾?˨³?þºg?ÖÆ«?¹¦?ä?ÿáy?¶¡3?‚âW?¦ƒr?¾ÙÓ?¾ÒP?¾Ê??Í?Z§? 4Í? +#è?¶—ý?ñ­ã?òÈß@€?ô +U?ðHÅ?ß"d?Ô\»?­?ŽºË?JÁ ?};?t? +i¶?V§á?€h?;µz?*mß?ëŸm@"Ä‘@ÀR@œÉ?Îs'?˜ ¹?Òà?ôVÛ?ÆjZ?¥†³@7u@º¼@ +÷Ã?],œ?§‘?Ð +?ÄFV?½‡Ù?Œ30?=¡™?jûÈ?†9@y@9\(?ÌØk?* ‡?\ú½?|8Q?†x ?Ç?M)? ­H?§pe?ûã#?ŒáŒ>e>ùÇI?MbF?›ÛI?ØN²?£Ž’?Kî?— .?É‘?ŽßÐ?}?4"ú?u?b(?6ªG?Ã*@,úp@šj?¼œ?£A!?Xœ?²°l@,·@jØ?¹m˜?¼ê?á9œ?Çx¹?”Î3?¦U?–¸?¥øl?Ä?)¶?³‰ò?±%?ÅR?Ð9Ú@¡œ?þg?•W`?žôÃ?y>?y(Ë?y?vÀ†?eñ?+@6ËN@??û@Ôð?ÿ¦ª?¼IÄ?¹mS?¿©? -?tªÕ?†Í ?«ö6?¿ïÍ?Î^R?ÉRˆ?÷Aª@ K?î†?ݨ?»»w?¢ÇT?€à?J-m?h4?‚+ @îD@Wß@ Kä?kã?X€?[y?©Æá?é¹Ç@#•Ã@€¾8@ikJ@4L}@äY?¸€ç?ÑŽ{@ ³@È?õª„?ï´?²ÐÙ?°Ô>1->ÃÇ@N…@t@ Å'@Ë]?ëíâ?Ùt\?½jø?·jÐ@B@-[Ý@1W@&áÑ@²´@ è?ÿõÂ?õ4(@/ß@ËÓ@_>@T@O¢ó@‘_@z³t@2–Ë@;!@B@ù@Iaj@µL@M;?òB?òŒÌ?ö¦x?ó«%@)¶@%Ô3@ è$@ù¥@rÁ@L@_A@jü@Y?Økï@ÖÒ@K¡u@4Ø.@<@ÒÉ?³ñS?ó0­@V~@XñÙ@Y¤ÿ@KüÑ?þ=5?öðÁ@QÕ°@QÊß@a¨K@jó³@+‹y@@›?Öu‰?³[J@2@[Ý(@K|L@C[@M}?¸'?Îþ;?îGÖ?÷>ü?óL“?õûM@2jt@1Š?èN?ì{ÿ?$–Ê?ûæ?_·2?mª?†?¤u@4Ž@z¢@?nÚ?ë¡Ç?óÚ€@7Ù@›°?å?ø œ@0×b@0ÂÜ@lÎ@ÂÛ@-Ý>@:¼¡?»ËÞ?k @Žä@F¼@?vvØ?‹#?±@óÉÓ=ê¹b?¿’l@á1@Í@‚?ýZ?æŸ.?õÕ‰?Ê,Ø?ÌÑÍ@,ŠÚ@3Ÿu?–ª?pŒ0?Èw«?æ@\ +@*(d?Ú§o?0µù?ˆc?ë°á?ööJ@f @ Î @Œ¼û@›GX@#Aj?ÖŸÅ?åõØ?êÉn?îm©@G+?åÏ?–û…?¤­w@%ì@(`Ã?ð±Š?àé@:ç@JØM@k?®~?Ö f?ïÝe?ÙÞ?ª<¼?ª/É@79@ ±ç@j9@t¼e@¦?ʼnŽ?‚@>â? ?(uÁ?ª4a?“  >ñV>åÜ”?bNÄ?…1?-s>áE?eÇ@[5?ß!%?F²Í?8Y¿?äÌ¿?á3´?;Äõ?/¨?‰e:?¸U¶?ó*Í@Fø@™z@ù@ö@ ^3@ \)?ýo?ç`>?sÀ…?é§?V†?qôÚ?s;œ†ø<_0s=a©<\>3§Þ>j­Œ=Ø1¾=¦¬p>…$ƒ?Ž.T?ÙÈ ?å„.?úŽ@â@«á@¼b@Y^â@T_@?¨?¨!?«u?¼‡”@„Í@1ÛÎ@j@»ö@(êH@s|7@W ?ÓØ—?åË(?ú*@—{?÷ò¨?ì¢Y?ñ$J?ä–@›@¶Ÿ@M‘?4ÆÖ?(£>?]nœ?a§ª@*æ3@Zå?㥺?%< ?¢ q?áìt?®6{?nÊ/?ˆ`?Öm?Ül2?Ô®?;¤?L¿?cÖ?„i‹?ðw?o8x?E¢ô?9+^>ä” ?ÊÛ?‚Kd?Hë@ °÷@:?±y‡?²‰²?p÷ï?  ?3ý¸?sûÁ?]Ön?B‰T?nßy?„÷Š?f` ?hk0?aG8>ë ¬? ×?¦÷§†>êt)?íw?¡>Hf;²ý¯>¦>ìoY?ŠyX?Ò½?’å2?!OK?!†=©>·]?™?OÔÍ?³QÞ?Ÿ*~?£Ö.?”¤R>š‚?ðÔV?Ï­d?êÙ?¤V>è8§?˜Š?AÖ?ëé>éÒž?Xt?§é?ˆ«G>™®~>—‘n>ùüs>Ìx=Žd›Ò>²h>”t>l´ö>Ü@]?F|Ô?k0›?€0Æ?#­>Ë=¶<ae?ˆ”?‰xÖ?‚ºŠ>ÑçÊ;… >î[>4 Â=þt?#í?k±i?jëó?j5>?7¶×>÷ö»?&ì÷?lÙl?IêS>ó/¤>ñÝ—>ë¦è>ìGG>óô>æ:á¾>ãÚD>éB¥>íe>î5g>óŸ–>ö™?·¬7?ä¦E?oþÆ>îIm>p6»=`^>†¬‰>þòû>¬³7=›D =’Å=3»à>f½?nz?l‰?Q7I?I˜‚=ƒt)=Œ¡?O›é?[È>¦Q?l+,?›>?5Ös>îæ©>ÑØ>µ>q>²¸I>°'ñ>ôä?;Ù‰?XËZ?ŠS?ƒÌõ?Gxƒ?ZúÉ?¯,±?­ "?Áˆs?Àœ@(}]@+¥u@¾K@9?)AJ>eèŽ>Ê`¨>ïù“?Œ-?/ƒ>ì©i>ˆŽ™>eÝ>@pj>÷ØF?Ž]À?“ô¾?³íN?­Ž0?6@!?%¬#?0ú?40X?8gq?<¦?–“Ï?žíA?Éí)?Öà?Ôh}?×C?»Û?¬o¬?%—=…¶>÷J?qï—?1<1Íp?¢?âüú?§ýÓ=Æ°h>}²™?OµF?d“ü?ç`õ?ßÇg>[¹G>o–?ËNÝ?ÏÐ ?[žï?J2G? üÇ>ó6M?RöÓ?s_¼?"¥Ï>óˆa?‡4ö?µÚm?£´"?•3÷?“Þ§?’‡?/µ_>OXÎ?(#?5š?: ™?”Ø>Sºô>Ù:¶@M‘@+?W<Ì?].†?c*µ?i,8=WHw:È/>ÞÀl>ý‰h>÷Í™>õ§â@ +Ä®@$7?Çl?–ßÁ?Šdq?‰]›?8î>‹‡v?¬fX@l?ÕÊÐ?´‡2?Ÿ3W?vù?_Á?:†/>áÔ—>Êz/?”¹.?šd¨?µÉ?¿dy?Øký?Ò»û?› ? ÂØ?ŸúT?™Ù£?Ÿê?™ú?ÈL? ?¶>ä?¸»L?{V%?€³"?§???øÕK?›ªg?•yv>‚’ä=ÿ:\?Ÿ©Ã?ºô?ªA¸?¤"R?ûM @RC?ûK6?ùµ)?e¶Ñ>ù׌?š ?Çâ?äO,?ößd?Ò×>?´CÉ?-úd>mÊ?)öl?z‹?2•>ú­? uà?ò´$?·”H?|ï?zšQ?vA¢?”$à?ª<ó?Òø@„¥?Ç[~?{uE?…ã¸?‰ƒ-?Zõ +?'Z ?:å¨?Jê?GA(?C˜m?5˜?Üðƒ?Ä!¬?‘C°?áÈ?\è´?EÌ?&!×?O‹$?ŽzZ?‹Ø?zùñ?v$³?‡?5Qd=ø£?P“>@^6@'ê@9N@f½?„K®?ˆ¬ƒ?‘²À?ˆ¯?i‚?–b ?ÏI?ïìÍ@!m@S@ ›@iX@)÷>@Á?Ý>·?ªö“?Úÿ?B2ƒ?2D?æn@K ¨@;8®@)`@sf@ +ªc?æìŠ?ŽoL?°=??úµ?ýä?þeR?Ï‹ ?wÂh?”ËÚ?ÆV©?Äë?¿ j?éÍÇ@¦•?þ-=?¸îç?¿m?¿5L?«t7?‰?…"x?0 ?˜¥_?¿V¦?ò3£@^u?ü:¹?¿m4?b©>ƒ?oFl?òˆÁ@ï@Ïk?¢Vß=š L?ž©i@ @¿Ò?úfd?¿«d?“œ?Hø>Õ/?¥k±?ö)›?¤{P?Z? ?åL@$N@l?Ú¶?ö”É@ö.?ÖmÉ?¿ç8?7% >œj5?U?)‡8?It?^’?2¤í?+?/?•?ì•O@zÃ?~SÍ? ?pÁ=?–ç +?Œ|?‡rj@—Y@.¾ß@”ð?ðe›?ª‡‘?˜W›?üÞ?M?\ƒƒ?VÖw?xWò?€Ö?µÁO?¶ï?›ôÈ¥?[Ä?‚"¹?ˆ_µ?Vxì?rÍo?æ÷õ?ÝŽM?ºî"?°Œ?C’2?’£Ò@90Z@)%‹?« p?™<ñ?DÈ{?RE}?ŒÑ–?ú£?¦¤v?°A]?»çg?à»)@—¢?ôrù?Š?45æ?n®?j;4?eÉ +?†1?®a’?Âœ9?éÒà?ö'±@lu@{ü@ÿ¤?äSÌ?Æ‹Þ?¡ªJ?OŽx?wd?˜®¸?ÚS@C1?õTÉ? i¹?Ę©?íñ4?¼ß?\¨?Ú>:@Ñ?šy…=j ¼>§È˜?‚ô?š ‰?ÝþÜ?ÙOû?Ô£1?k¯>—vy?Z‚÷?£C;?‹ ~?qS8?tóC?~Û®?ùª@/po?óP/?¢‹_?ÌÓÿ?ë³a?°¯{?„@ +¸@>S"?¼Qp?ÃÇ?$Ç?#Œf>Ùœm>§,F?œ™J?Ø®¯@eÑ@ ®@PØ@ +'Ô?ËšÄ? „{?Š?˜©?•‘1?“†?¹nÈ?Í}a?™û'?}»*?ƒš@?ƒîß?ÓZ…?ýÒ?ø‰$?ðŠ @ÊM@`Ç?À½¤?‡¹…?®žm?½ê2?ô‚è@ +îb?Ùe”?ºHê?ý Ä@ÜË?ìl?½¥«?²Ÿ§?µÑ†?´èZ?±h?úÂa@§<@Aõ@°f?‚:H>c¢=óYì=€}è?‰ì?ád»@qB@}Ù?™î>›?N?™×›?ûׇ?·=?mo?‹*S?˜w‡ùy?¤U©@@};?ûe?ö²™?ñ»À?Ñ"m?§?½Øí?ìM?Ýæ¥?¼Ó?‘¥K?$ Æ?†Ã?ànœ?ã–G?èö8@$ª@ +q»?Þ0â>òXý?D‹?ó·/?èAž?»Zs?ß(³@46h@4ÇN@EÕ@8vç@˜ô@†@>P@%Û¡?y0÷?}Íj?˜$?–ØÔ?–¥µ?€$ç?›ÃR?¡à2@Zð@EZ?†\?x’@@ŽL@n–?A„A?Gj?ÃmC?Ô6¤?ÎúøP[?©Ô?ý?Я8@7àÔ@:2Â?µ÷ ?ª³E?Óÿ™?ͨÑ?ùÚÄ@˜¼?ñy?«€*?Ú†@‚)@ óu@4?ñÈô?ÑG7?¿;?k•?Ug|?¢K,?¡ï‚?µÐl?ºË¿?Ñj?òO¯?±?^ù?±³@‡ú@9õ?û=?ƒv@¾ž@ +uë?ǪL?›`Š?&»?Ÿ?Žr?ÏÁû?´>þ?fý>?†]k?Ër#?Ð! ?ÔÌÒ?Ùxæ?©ß°?©Ph?דt?æ +E@¸Ã@3w\@ü¥?†.d?¦Zª@o¾@û¾?×@M?Üë?ëåà?æý5?èrñ?ä´ +?ÔzÀ?Ðú?Í©Ç?Èh˜?¸ñ)??ˆÎ?ZW÷œn>ቜ?·„)@¸Ý@ ´û?í‘u?ꯘ@ +6Y@ ¿Ì?©Š§?3?ë×?š¢>?ì›õ@.¿@,dÃ@„ö@! ¯@ Yr@ Rp@5nu@5ø+?ÉÁ?j£?®ÛV?óÌ`?ÁUï>ÈHÚ>‚bu?ÛÈ»?Æè’?ŠLÿ?fË#?‡âñ?‰‚?*v>}4 >3{D=Õ/c;ª"‰=_Þ5=®q¾= +H<*@>÷>sL >¿Ó>¹Í°>Ý»K?ã=n@1¾v@®L?ÍT6?ïš@íá@#Õ‘@6ª +@'Åw@I§[@;wI@Ÿc@?K@Rj@‹6À@Ey?lÔŒ?—ÝÝ?°®?£ô“?…u?|ie?ÝBè?ç‚S?½ßˆ?—Â_?€ù?Æ+!?ÏXó?”/c?zY?•6f?¡ÓŠ>®è=@»¾?+43?c|X?^â?oW%?H)>ä e>ù›a>õ×P?]Q?ÐEû?ÃC?Ï'm?éÆ?|çÉ?-Ú®?µ2•?æRÙ?X”c>7ð>å@¸?;è?dz4?º®!?¸¤å?hN ?Z¾`àQž>é´[>ê½>êS ?5úÉ?WRˆ?Kø>å ]>á‹«>ìJ©?=wñ?‘Éô?K¾Î>3H>¾ ñ?hÈö?–©«?Õ*m?¹Áô?¥ŒÍ?™zý>ðâ$>Ðr=‘ñm>bVW?¸¦1?»*?”ªÑ?ƒnÎ?1ÇÅ?BÁ?™ ¿?—¢©='?F>”¡?‡=À?ˆL?D?-·æ>ù»û?Aí? +,4>ûÜ‹>ã•ä>ÚxD>ýH’>ÏÚD>’N1>™§¾>>„ƒ>£Wè?‹>…úL>Vì=8±=ìÛã?µ?œ³x?p®†?x…>î4ç?‚Ø?§;È?¬ù?¯/g? ò=Fdh?–?hZ)?jèG?n‘?Ÿâ<¨ À<§ à<§<¬<¨¥„<« Ø<š×À=P­>î^>ëõN=#³<Û>²>Ùøa>îK? È:?d>þh5>î']>(B>…>(>î9|>ã`Ž>Óðµ?:¡'?œ¾}?bk>y>ç4>ë^>;¶G>ÆÒ“>¾Þ>+Ø„>6w™?8k³?<Å7?*x›?-«i?«^í?‡Ï?…^¦?Né¥?M®?Lo~?K(?IÜ­?6"_?z?²K>«$ž?oš?ÊYW?Á•ã?… 4?‰QÊ?ùV‚?ý²Î@éƒ@þ?•Ø#?nŠ”?;“î?0$¼?3´c?;M ? jÌ>Ä\÷>ÒgÓ>ð8Ã?4‰7?Š£¡?g‹ž>ðw‘?VÜ@v?èÎ =îl8=ÉÄ :q>ëMØ>ñ ©?…D?¯>%d=+yÖ>Úš8? †Î?±¯Æ?ïÙB?Ï;{?µœ?8)÷>kU„?·†?ÆT@T¯Q@=¾@µ8?þù]?Â&?¿S/?‰yc?„1O?›õJ?žÂ?¸ro?³.]?(Â?†?uJ›?sHÝ?Nt>ómª?¢—ª?ÖªØ?æo¹?ë7j?¿•s?Ÿx‚?VÊM>¥xÏ>tƒ>õ>òû?™*Ì?“MH?t…v?ZÄg>ô®î>ê—X>€<>8êZ=^Jf=69>õz>ôë½?ëÅç?ìrG?v[?i…?Áoƒ?Óˆ-?¿ í?¸iy?ŠR¶?v +š? O6>¬©?Q0W?“¶ç?wÄ?EÕ?lå>ß'\?XG{?šF?\jƒ>Û4?&þ$?ˆün?Š?Oq?ô> =>b›ß>÷–;?UE‚@A?à~k=ù°Æ>hH?xå?j$>ø8š?Ò?¸ä™?° +ã=Å=›È+@wP@€9? Pp??·<À?µßÈ?Pçþ?M¡š@a@^â?˨H?Æ›4?¼~^?ºV?Š$Ä?mp&?ŽD‘?•’ˆ?ch•?OÒß?Ò¬å@?µ‚?‹(2?3^?zr®?Pà>ß-?LñZ?€œR?ǵO?ú’i?Ô×X?¹ :?™Þó?„aF?Šï9?’’õ?‰wŒ?{Yì?[A?EÌ?ê„@0Oÿ@Ê×?ÉO$?øõ¦@2?ÿÎb?ÛTÙ?õ¦@ ]›?ØUö?J9?“¶H?‘\Ñ?©ã?ÌÈæ?üD+@%ø÷@ “L?Åsº?0z>üÅ+?46Ö?Ñ¡?1A?‰ä?Ÿ¬¥?·]ì?‹òn?è?4~?a$Õ?tÀõ?‘f?Èç@vP@ho@Yk@M?ý¦?ñ…@?ßš?˜8>Rfü>Àï+?+ÚX?Œ„o?ó3[?ö%n?ïa³@;P@#”Ÿ@’0?÷Sý?ãïu?ÁÊD?Ø4É?þi5?™'}=ƒ>øJÀ?‡MM?ŸÐi?¾ù? $¹?~pe?èyÁ@-W)@v@~ ?ÅŸS?ns?‹\?Ÿ4?’Ød?‡(?Ú¾º@,A?ô?«<×?› ×?€[8?«”Ô?×»?ÃÃù?·UX?N?ƒÕ?9 …>þN/?›?Â?‡¢?@®?7¡>ÿ‹¿?@2©?zoÀ?Ÿ#,?¬Wv?œP?]”µ?e´˜?mÙô?Šê—?Ü·?â”|?øhn?95Ö>A»–?B\Ü?Ö¤?†už?€G?œöf?£Å?Z)Û?.ø_?t?ƒ°??—³>ÿø“?¥Ì½?¼È?Š3„?ýÛ@Bo¦@YéZ@!íä@Ø8?z‡º?R?=ÂbC?TâQ?sqJ?€t$?€ ü?Š¡è?”ê?Ø&?Ö¤+?}Î?> „*=úO!?è°?‚ø?ϯŸ?ĆT? +“?³²?¢ç?|!C?€ L?h¬m> : ? ?R@L¤d@-b¡?w?•x?*àM?Z|x?ÙÁ¼?íbX@Ù¾?÷‰‚?;6‰?rs–?æ³?îf!?ÿñÕ?ë +?¯b€?±·?³ºŠ?‡¼=ùߌ>À3r?ƒW—?€ùŒ?Z@?—’Þ?¶Oö?7?E¼?²t?"@?O¡ù?‘í?¾%‚?ÿ­¨?Ê*ñ?‡ ¡?ÊÇ@ç?Ý€?3?…¢l?†P?W°}?%o¤?@÷?U“+>ýÊ>Ž>žO>ÿWõ?C"ð?€O?Âí3@JÀ?˜š>ßY,>rGg=ÉO~?»?fÕ?Þë@wK?Ï{ê?Š+Ø?uê ?y­?d«‘?Wh?˜ñÖ?­”„?ƒÆ?Zü?#¹¥>þ¬7?jwV?õ¥?¬•P?¾çÕ?—I?€¬½?ì?t—Ü?œH?«Fé?ᆦ?ôçÖ@Dæ@+2*@0Âä@7&Ü@"D@²­?Èžq?œVT?Ä¡7?ÖÓð?Ń[?¾\J?Ýëc?ïHt?«¢®?ˆC ?§º½?¹Áï@žý@!8?•êÏ?ªì?Ì.é@´‹?=D=ò¬Ü?Íu?O¯?x±Æ?‹„¤?´KR?¿Ñ3?âm°?ìPÍ?©†p?‘Ž?4\B>ÌÏ?0Rê?e-?—ô?°k@'‹Ë@Yçµ?ò ]?n¢¿?Ú¸H@¸O?¡Å-?RÃÊ?…Ìh? …“?Ëä?×.¥?¿ž?º»?θù?×Þ«@Š‘@6™@)@4‡™@ôŸ?¼P?ñ)…@‰T@ Â?û:7?Þ¾(?Á­n@MY@+‹Y@O^?¼‡?à Š@8L@ÐA?ñvÕ?¹uÖ?zcÄ?|’?efo?w…?ªz¹?ÐjÑ@ù˜@æë?»i?¾$^?¼„ì?¯ i?’ú>? È?¶'ß?ÑJc@gˆ@ c]@73?@0lÂ?aÈ?zA?º¸Ÿ?Äú7@0o%@2’³?ph&?W×f?ß?}?è¶?…é ?x°l?¼J%?ƪV?vô?_]?Z?l©@ eè@*u?ÏTû?¹²]?ÙZ¶?íæ?­º+?Hë?€¢|?w'é@q<@L^ +@Cq(@9Õ?ó=?ŠŠ?¼nÃ?è‘?ºÛ?vFx@„\@l5x@Gku@ ð‹@k?ó&?îËù?ªó?³|ì?×æ‹?Þx›?¸Î?ÄSM@7ç™@6È@  @ @ž @é?ˆÒ?t™?|˜§?…Õ?Ï‘d?ÚŽù@**@8[ù@)àT@.2ž@`ß@—°ã@K$-?éÎ@ "@$V@,~p@H±Ž@Pïê@cD6@GŠ«@Àw@²¸@¯Ó@N@P€q@T·ˆ@‡·@† @oS@lÒ @5D@,m@,]Ç@0?@º#@iç@ùú@!×.@(¶Õ@.d0@95?ìQ¹@?Ÿ0@’¿\@^1Ô?´A{?È Î@ µŒ@ '@1E@&Æù@XLµ@NI@WÎS@P×Q@I@‘ã?ÄÇî?³A’?ö¡J@ë~@<L@H¨“@P@´@\¼Ø@IX!@%@ïy@r@·|@"‚¢@'Î@þ@Ž—?½Îˆ?ºÆ[?ïÂ?þ;ï@ Lñ@ò’@ô#@È^?äyÇ?Á¿1?ò–/@)$¡@Ô?ê¿É?ÿ%)@X,T@L…Q@]u@y@/h@éÞ@h@k@?Á“R?Ð?‚êÊ?{ny?mäí?‚”ð?³ÓL@>d@ @HJe@Apý?ÍJ*?Ť(@ +Q@¦@Ú…@  @Q?èÆÓ?³I‚?OõÀ?µ¦‹@@T@1à ?ÌÑæ?Ñ\e@i³@)‡ˆ@b@xªz@2Ò¥@ !¡?ºÎÌ?€·#?º"7?ÿõw?ìÕû?à3Ž?Õ Ù?¼â¤?¸?ƒñ–?lÞ‡?ô¨2@ ™Ó@Hð@–d?ã?†N­?Ó­@De5@=‹ä?“—t?[F@ î¬@*‡¡@I`@ ‰7@#Å@ ]S?Ë;Š?d?É?ef¿?T—:?3…>ýAÄ>é’J@!)@hÔ?þ$*?ôu£? +?0î?¹÷—@ Së@Øé@šÛ@ sL?¬˜^?¥o·?Kñ³?J†b?E?>âH?fÊŽ?¾i¦?¿ûy?ש^?ß=&@ 6×@×?Ï}‹?·[B?d:?obÉ?ë+@AÜU@<;@ @ ë?dvÄ?xG?ÍÂÅ?ÒCÐ?ª ?£]0?É|?ñ=ò?äÎg?½ œ?Øj@ D³@ Hl@_€@û~?ãÖá?IJ{?ë°@ #(@À@(‰@(A@%;k@šW@ž¯@ +oó@3J +@:îÍ?âÄ\?Dµó?n¼ö?¥¯Ãþ°>­/?§g?žæ0?@×K>òâ{? .Ë?#ò˜>Åg =V_>ŽP? +hë?˜<?È Æ@%ÌÆ@K„[@Õ¨@,½@$fA@-ît@÷?´ÎÉ?¬'?á4{?áM?¼S?´,{@=?@`¥Û@8A•@›?Ùn?b$Þ?ŸŸ@ @ lÇ?yü>ò/S>Ú'g>Áu6?›Ð?¹L*?Wäy>ã³ø?éñG?x?xT.?“Ä`?ÔÚ»?ç.;?د?¹$²?€c?$¯ã?2??yË?PžÊ?h%ÿ?[?„†‘?}³o?5x ?½5>ûWN>êÅÑ?B¢É?cØa?Vwc?Ií?[ï-?eïM?+g>í¼>û¸¡>ö‘?&‘=?×1?‘å°?oÓ¼?XÁ>ðªÚ>ñz>ñ’>ÔÌÂ=õ+>“`>é·?%yW?€ýU?ˆÝ>õ2L?ÄY?ó*Ù?Ë‚/>_/>éè¨?¾Ò ?Ÿ +>®Ë>ýHã?z‘N?^¬3>û¿¿>Í“„>=ñ>jß…>D!Ô>ÌÏé?YñŠ?xFƒ?yöt>Í‹=œa?Ëàp?ŸË'?a5y?v“ ?yëe? ¦? ±>c>« Ë?Ûß?¥C?y¤?gèa?¤‹F?jÏß>Û‹•?ð?[eÅ?!=×=§Ø>íô‘>íL>Ù]>ßì#?¦žA?§6Ò>Ëß=A¡Ô?亡@½5?êŒ?Ž0Ö?×$¥?@ù›=…)¤?3§a?²«¢?[‘¹=>á¶? íê?›¥j?“ó?²Š=ò¿î?6µ ?YN½?m"=?nÈc>ÿD>–Tµ?„µ?Æ¿#?¼~?®¥þ?†·F?žw?yÆî?ú] ?࿹?”j?p?.œ?2ÆÊ?oˆÖ?o˜o?¯ÁŸ?¶çd?VîÖ?:jé>þ >Œd?8™Þ?p ?z¹Ä?x"‚?4 W>ðFœ?7Ž?‚Mó?ˆJÜ?¤Î®?Š4Â>ºFª>¬Ö‚=¸ç=Òÿ>ðëÀ>ñ¿?|®?}´Œ?O'>ñC,?Åt?éÏþ?—×q?q|€?Ÿø?µAµ?^? >â¿>ç¦>ñ÷Ý>ëwv?¶¬?prn?Ë«?¢o}>¡‹‹? *¾?µæ}?¯‰ô?r¯·?lÐ?(Ÿ?3«?¸¬?’ŠÚ?;ìH?0í}?:0J?6°Š?dyº?~g?Áó.?åF?¦•‘?sÛ*?sêE?tº?oÝm?_ O?õ0_?ÏÒ?ºnZ?»þ2?³¸?±!¨?…ìC?„âd?²i°?¸^†?>a?lÊ?§ã‘?¼?xåÄ?IQ€?'>Í+¯?z/?JZ?•«p?Ö¼c?¦?vë¨?lÛÉ?XÊ?o¡W?‘`þ?‚e?>ÅA?"«Ï>÷Š0? +µ?$°‡?0vë?j º?oÆ?xr?bž>ú܈?1m ?ö +?æ½b?aÝ?VWò?D»#?Q‰Û>øÂD>ûqÈ?›8”?ŸÈ•?– }?žÕ?öw"@[?fQ%?A>?í%?÷ð‚?1A?„­²?ˆ;›?‹Ë{?B­Q?%…O?b+?É"?ºì™?ÈÛº?»S¶?­Cf?9Å4>Á,Q?‹~M?»ü¿?“ó?|‹°?€5ã?mý?£[?´¨!?’ƒP?{,5?{=ä?{LÛ?hq¦?V;ý?ˆ?²I#?¸?±Ío?ÎB ?ñK@ª@ ½Ò?ð ä?Ó‹Ý?¦­–?V°_?òí?½/?ëŠÞ@ áB?Î…¬?|x¡?ÁÒ@?®ƒ³?<¡?±„ñ@׆?ÊuÎ?3>µÓ—>,&?4§—?§ä}?Õ‡=@¨?ͳò?}L6?U¨?3•W?ƒ]š?³UÚ?§æ?™Ôê?Ÿ½ê? ÖÄ?„B\?2 +?‡\°?Àã?°9Æ?˜Ä/?ªqV?Ì‚g?§ñH?d'n?‹i?¸l?ÓjP?÷M?‰E)<ß >ôw4?kI?’¯×?¶*)?‡1?1Ö;?M*ï?]€¾?¢”ñ?åòl?î]?ð¥?™œ>þÛÇ?A‹?~éY?<ß>þøÄ?lqò?§ÛÙ?’çú?Ò?Â×@ŒZ@d‰@Kù?Äâ?Ci?«›9?Æh?_w:ù{Q?™Î¸?ó»Ä?8z=}(ä>²3¸>ÿ{?ãÉL@«Ð@šÈ@!ŸH?É­?‡Æ?Û'“?òµk?4ª>}˜“?¯=ó?ìÀ?\×t>ÿÀ?€ï#?“\“?áº@,@Öu@œý?êØ?ã"p?lj>?¿ëÚ?*Öò>ÿæ«?­OÍ?¿ñD?ì1—?î˜B?ê[/?ó@?àñ‰?áí¥? +x>ÿûê?ë‡?è(8?‹®??… v?~¼|?€>缩>Ò—?Ï5ð?Ó‡k?“Ù€?Ž.?Ž?‰‹?i8–?ƒ”µ@Aà@ É? ¼þ?-Pá?þ˜?ãQ^? á'?„\?[.”?n¹È?Ðç9?Üi¦?ʯ„?²Ý!?SØE?cj†?šWù?ÆW8@-ÿÔ@Ë?ð[?—· ?Ø“?Îé‰?à Á?´%?Þ¼?„%ç?‹y)?†SÔ?Ó›?šC§?È.!?«’?Ã=?——¦?¿Î¢?úø@'7-@ ð…?Ôã†?ÁhÀ?­»?ªKÿ#d?læ»?—¤?™éæ?›Œœ?Ç|?ì>º?ÒŽ?¿0…?ˆR¬??)b? è^>Ù8F?Ä(<@ +• ?—y?"·?ô{?-®?ÈP`@[í?Ö%ê?¾ß?½ûº?¾ @@¯@ L?ß©é?¾·g?­¡D?¬Ý¶?À{b?ÏŒ@² @Ê­?ëpÔ?Ôþ?ÈÍ?¾p?ØË®?æ$m?Ù¥3?Ñå?΋Œ?ÌÌ?±ºÌ?¬¹T?•ª¨?†2>?&°?]?Y†ß?qý?ý|<@é™?å¶@?½·&@p@3£±@¾/?Ó¿_?Œë=?zGó?Ë J?õ~è?œ¦,?Tw˜?»™6?Þ 5?Œð?@bÍ?»¾>ül‘?R"?|aE?.57?p4?'Žx?J ®>¾˜Ž=íÒ\?MÓ?”p—?È‹?ð2©?Á·ü?²­?ÃP{?áAA@àA@'œ@&22@$ÈÃ?ìò^?¨ë¤?)?rÇs?Þã @·?øî?¼4g?Ê¡?ß¹É@*d@8G¯@ Ÿ‹?Âù$@/@['9@:.@\®?öh¼?ösé?Îûë?z?Ž?±f?¸EA?¿õò@8¢@šñÇ@|šL?ì͈?Úv?®¿ù?¼…Û?ùSq?éþÅ?­2Y?©ZÐ?uÒõ?€íÂ?†øt?‘‰6?º•@?ÁnË@–²@¾‰? +?oµ@h@«î?†ŠÔ?ƒ>±?¬¼$?¬Ž–?ë}ø?æù ?¶˜:?À ×?Ø7[?×.!?¤/?’Ñö?Ÿþü?¨À ?“a ?…Å;?†¹_?‚ëD?ìE@&¨@Yv@ —ù@Q@)ê“@'?àÉ@¤@0Ñ +@"™?ÛW9?´C]?e‘?,ÍZ?‡ýz?zY-? Q>ð³?¸®V?³È?“™×?¨Ëj@L@ †@"è @$µ?è?ÖG/?|Úµ?XÄÆ?Úú?ÿ}T@…_@žF<@1Â?ž)?ý¨h@>î?ÛH?:Á8@¡Ò@v¢¿@DìB@ »h@@Ü@‡‹@Y€?¶L?³tÛ?¡–3?¹. @AÖ@6n3?õ'Z@è?¨‚€?½:@B÷«@Iÿ‹?¢¿Ë?„Ö@%,@>,h?Ä]Œ?9Ç ?»Ì?5U?ˆôÓ?Á&_@j@sÓ!@Kùÿ?å-f?ú&Í@!%E@öª?ή³?à™E@lq‡@v?¾@oT¸@|Ÿ&@T@\@NŸ\?íœ?³4¢@ @)—™@$§6@&¦á@<^l@P„•@/Kß?öV-?Ô ?<‹•?[az?Öº,?Ϙ@1˜9@1 m?ìûi?âØ?  ø?›ÔÔ@R@(í§@_?ø@|@%«?òÜ$?ß(²?ÈÔ¾?o†*?š¿˜@!5›@(ì>@Pq÷@IÒ“@Jy¹@ONR@ +0?ûìF?Ƥ?¯ô³?í= @|Þ@%ÚÜ@=Ä­@ c?ÅÃ?oìÈ@wA@¤±@ï¶?þS|@ñc@¼ê?ª<Ó?ni¸?úC9@)Äž@Ê? mß?Äs@àä@€«@ +AÀ@†3?„9©?~ý‡?¬Z¦?¯å +?×s@?ì½™?ÞÚa?ÉW1?þß@-)G@ïy?ØÑÇ?æŸ?æp?æVì?â¢?åyÕ?èEÔ?íúv@¬@’Œ?Çsé?.m?…Éd@>?ù‡c?ü?û->? üô?ñw@àŠ@ ž@+M@Ê?£C?¤s?ÆïÖ?È«$?cÑx?cl¹?°K?Ř?üÀ3@šç?°Õø?fFÜ?«‚?ï¼¢?¾É˜>âÏ»>ãÔ@z1@kv;?ï+?¯ØÂ?l@?+´-?†Þ#?ÏBn?Ò"q?ÂX—?¯/?f€í?f*@9f–@AWm?¦l2? nè?·=Î@ Δ@bI@0‰[@9ƒ@ 9g@Ãê?”Y‹?‘Ûä?ÂR\?Æ=?±õ?¨{¾?…øÌ>‡ý>=ŒÂ?¬£?·Œ@˜@@â?¿i?«•%?µx?Ì>¬@ÖÜ@&ì@ †‡?·¹?Çî–?ØÍà?鲌@@Ôç@jWß@}Ô?ÏÈ?u©?dXÜ?‚å@ð@˜@(€\@)wô@ƒ*?ÝíÙ?ì{ã?ù‘Ÿ?Åw?T-?5Äb>¥r>Ž b?V8¦?>BÏ>“‡=À Í=B÷Ò;Ô|mu*>åûø?™{?9J‡?j?…­?¦Õ?¾¦z@Äó@CY@!S˜@)ZÁ@ó?̤µ?Öpe@ %@ZŽ?©ë?©ºÊ?dN?Mgµ?ÁªC?ãK'?é;¼?Ê<ù?µÊÃ?ÓÎÞ?àeì?é™?óWÔ?ä¬v?äØê>‘é>61·>ýO³?ƒŸ?õ`e@+Z„?ű?F8?pð²?nƒ?a¯?]iì?FÞ.?y&?tP?εþ?´3½?Lq¦?_0Z?žfg?™¯F?A¨›?ŸÜ?Brß?kG?Ž¹6?œþ?†ðý?}p?E»>¾É³?>Â?°ûb?¨"?¥xÇ?¦ùî?¸*Ý?—”‡>ðu‚>õFJ?Òâ>ðÕ>ÓµÀ>âpê?›0²?{ô?+2?"?×Û?´V?2&?* +ð>µ6>á¤?øl?áXà>€ø=>‚A?st ?Nð =±Ùu>7o>“½ +>ƒ‹û>¦m>pÆu>eõŒÁZ??‘˜=žJ=dJ;Œ:y>ô’?ðÖ?Z?YO+?^!>º>·>íÒ>6Õ=Y%€?_¯•?²[V?gÈ>íÈ“?+Ùj?mÌ ?>©>Ó<>Ù#é>íÒ°? ²?¤MŠ?Ÿ3?|ƒ?dG?›Û?šÊ#>¸\<>¦™>>ÎjÇ>Ê”/?˜‘z?»ïª?и?KZÿ?²’q?iB->À’? gÃ?U~+?b*ª?„`~?]‘>bÀ±>a1=ò¶W>[^ñ@-±x@+tU?eÈ2?JË1>·=>˜¼v?}v?q¸?P»Ú?y,•?”-°?¥h£?‘ž&?oÄ?’rm?ÅÙ?¹Ê?’î‡?‰Ì?5œ¬?95”?orŒ?k +?\D?¹ ?^–•?\ÿa>¾³>Û34?ÎL?€í¯? -?To]>ð/?§É'@|?Õ€½?SéO?%³‘>DtÍ>…@b? Ûž?»¢>ðÕ*?õ ?®¡/?¯¶-?X>üŠÿ=ž®ä<$ÿ.>ÃMÿ>òð“?”›r?µ.¡?°Rd?«Yx?©å?¦¾4? `?˜Vá?pÉä?)¸­?5‘¼?7Ò'?1§„?=´è?,€^>1>æ4†?™âá?“‰B?^[?œµ?@†|?9›ÿ?k¿ƒ?sHœ>À4›>ˆ˜>÷\…?ˆk?XÄ™?sÂø?“;Ï?ŸË?¸~?Ô‘ó?ªle?t9º?”B?·Io?¡Tõ?tŠd?Z³e?b.?AýÁ?·¥P?¬Îœ?s÷ê?•Rö@2ªN@+ ?·ÿõå>?WC?tÖè?:¦¾?)úd?‰Í? û‚>èrq>î5?µA"?ö®p?ŒÃT?Ëœ?uy?¢ï=?†¯?Gåí?™'>?Ù% +?œËU?Û½?Teà?§#?‹æ²?Òü?)ÚÕ?r› ?Š‰ã?¹ÐD?ž·Õ?ôf?R¤!?ëOø?ßH?¦‡…?’m=Õ…x>/?ö‡?.Ó4?äºâ?á|z?”A~?–¢?{zY?ySt@ÅT@5“?†Û©?fŽ÷?äÌ>ù¼=?hó?yàø?“.}?›½ÿ?ÒJ(?ázŽ@+ʦ@@«à@^"ð@jÏ¿@G?½Š?é?ø]?ôÐ]?ñ@¨?˧‡?¼5ç?ûù=@ +Õ?„?h?Šdb?©Á?`W?nÀ?rU>ÖJ?¸ïë@Ø›?Ôa?Ç©Z?|>ûí^?Uüd?’J?¶¸*?ÎÅŸ@ „ï@/GØ?öMÖ?’?øå@0‚Í?õöS?†RÂ?¿¿Î?ý$~?¼žþ>î>÷ñ—?{©«ô?Á«¾@F¤?åmX?§i£?”Š?~д?ŒÉN?º^?ƒ?¼?~ì¦?eòƒ?YƒV?vµ¡?uœ ?²"?Êó‰?›ÿ_?†]È?ög@º?˜jn>üãk?––?ÄÍ?Ú½ó?ÝE?’–?f+Ã?Ç2:?ñŠ7?÷¡2?ýµ5?•›?bÄ@Q½@.…?ª!?=Öl?ŽƒÄ?šÁé?ŽH?„Žw?²‘Æ?¿Ãb?-d5>ÿ¶Š?«K?¿Ð1?ÿæ>‚+£?¥Áu?½s'?‡"â?}³¡?‚~5?…³@â@?J?ÇuË?¿ã|@%KÍ@%{²?e ?TX ?Û×Ý?ç¾6?,?œöµ?@k³?Qà?îF‡?ÝøQ?Q)–?dËÒ?Ó"é?Éo¬?YÄ¡?Gfê?uÊ? n?†|d?‹hj?»f=?«År?Û·?vªE@2@¬¨?¶Ã?³ò¸?±Ïí?¡…¼?naƒ?“:.?Ò}„?Î.½?ÉÛ?ÕÁ?ÿÚÌ?Ò~ü?G2µ?„cß?ÏÞ?È"ù?¢L? Þf?­´w?¯â8?¿Ò5?«‹©?†aw?Þ1÷@;‡!@%îå?üo"?áH¼?¿½ ?â6ˆ@ +G@Qˆ@0Ì@ k@ b@?΢??Š)?†‘œ?”·?Åõ?rí?Žtè?šM£?‹K_?[°?%·'>¹'k?ˆòÅ?ØIÞ?»Kž?¦X?®?wtl?£øP?¿]´?¼À?¶ ?±mñ?¬Éé?,{Ô>¦z¹?§Ä¬?ìr?˜/?\M?‹t›?›@¹?bþ¯?C ?±nN?ÎÊÔ@ ñ@4êv?Õ·n?Nñ?ì?‹…™?å\þ@ U?ã¸?Ä4}?JÆê?Üy²‡?h—õ?3¦?$³?¨¶“?ë÷Ÿ@‰:?ú-üÂ?“I_?¼Íy?xÊl??r?œ—G?¼¥?ø—÷@r‹@í@l*?Çú±?Ej›?/?¹@?ËmÖ@ß5@ +Ã5?óÓ…?Ÿ¬?0 +Ì?ÚÙ)@.ùÖ@>%?£Ù ?ïƵ@)ÑÁ@.@2_ +@I„?z%A?’T¬?«X?ž›?"I?±“@?ùÀ}?ù®š@É‹?è¤?‹9W?œ&&?»Q?Õ:þ@1®?þf?yh?{)×?x±ú?}ÜJ?¢ &?Ÿµ‘?à4,?ߺx@÷ó@-é?³È?³Ûº>ø~ž? +ï?xþ? 2¦@SÕ@T¶@èi@Úù?À…ê?¦½Æ?ÎuÛ?Úè+?é<é?åÐ=?¢ä?‹J¼?ÅÐè?Ô÷9?ñ +b?üYÒ?ª¥?ƒ½­?„0?—Of@"u@fs1@¤œ?¨4Q@"@=G?@ ÷á?žÏv?̓Õ@ ¿Û?þi?ÄJÄ@•[@¢R@˜ ì@6ãH@*ct?æpè?åŸ{@ ÷@²@iž@b ¼@ ƒº@ +I?©§±? ­? ~“?˜üq@1•Ÿ@QE˜@8š5@4BC@S:?ý'Ä?êS?Ïy@‹˜@S.ë@9,Æ@›Ü@&Tù@^Œ7@@Àò?É ²?â@©œ@1v”@“ÏÁ@’©)@Q¦÷@JÒ?ó•G?ì;S?û¥ @¼À?ô?’?ãKà@'íÊ@1YL@ˆ•%@v÷@?w¡@–µ@ +Ì*@°£@1É@`°s@/çñ?ÊÅ?Öü?òKp?ý @@†[@DáØ@è@ù•@t«ô@mV^@ †?ë¥=@3‹&@N @v ?ó‚v@ -È@#¢<@Ì¢?tl?žR?çk–?âŠY?öV´?ÿá@Cõ@H=@j˜d@dŸÎ@H}H@D·?ù°Å?¯æ×?éÆÉ@Ù@ )½@ƒ5@Žù?ûg?éûÚ@ô­@…Š?Äpj?ÖtE@ Ÿª@° ?ÆR£?¬2 ?Ô,L?õ‡Í?î#Ú?ØÔ³?ÚÀï?è7@@? ÿ@?KÓ?Ÿ@“?£Ü>?ß ?çsD@.‘‚@?˜¬@1(?ç E@j@I¨@ɧ?:pm?^—í?æe?æJ,?¯çÔ?­Aà?Ú1 ?åÜ~?¡.]?‡ˆ?•÷?ŽÕÓ?’°?®Re?·6?šÛ?¤¦ ?á?µ?×8÷?ÂZc?È>Ü?ÇÑ°?Ó¢O?Ø#+?Íu?¼BP?}@^?s ÿ?hÖ5?c¬î”æ?ˆ4>?¬dœ?¹òl?¼˜Ñ?¶FÍ?§²û?‘K?‡ëž?¾)Å@#!?@"]m?§1?¡¶§?»b½?Ý X?7?%b·?­˜®@ ÃD?íˆç?y“?ƒSÉ@ ¢L@ ”!?ÍÛ-?»3?äû@?þfÖ?Êî^?˜ÝÝ?À @ +@Ù…?Ü+÷?Öž5?3}:?Oë?‡Ño?ˆGž?!T=ЃS?5¢ @ l@ ¢?ØÓ ?Ó.”?«ì3?§ó5?ùá@XŸ?ÉÖâ?Ms +?®m@ +Õó?øž?b‘?¸*@(…@66¦@µ@#Y@2õk@U{©@Ve¡@6Ùì@8‡™@ Ñ@ŠšÌ@ Jc?õz»?®?d€[?ùÞ>Þv ?EÍ?1h=?(u¥?Ëy?SΨ?HÌ#?õÐ?î>31H:Zü>ÂÚ>ݺ??RØ?ugm?ÉÝ?£­h?£Xj?¸mô? $›?©ø/?lë!?bær?ªÛè?Ä7±@ °@>ÛÀ@eì?o ?ŸÏ†@ B©@‡@Aru@4ºÎ?Ãå?žà¦?¢Î?L©>§(g>‚l?Oo?ŒGÉ?¯=l?å¹?ر?ØAú?Þ(z?ãÉ‹?ÞÀ?†s?“ò>ÿ!P>éB?ºªI?Ú ?¯ÖH?«(?L¶Q?ç>ó?÷ÆI=‘Þ‘>¦Œ?r‰Z?fÎé?7õí?|qq?ÑÐñó?n±?†#,?˜?GÈÖ?ZNþ?˜è£?t¯œ= +Z8> 3é?“(q?…’%?†îl?œ÷‘?B˜Ó?E@±;ÆŽ@=’¬=ÍÈð>üZ‰>ë$ >›Z>&Ò= +\Ü<#.==†®=^üð?1´Þ?A@ï> Â?¤>†K@>­Èi=§ü†=£Ç¸>O>r<>Ç:Ñ>È4®>çv‰>í® =ÁÙx?~ŽÎ?²@•? ¦–=‰'†? +{•?mª ?f}l?\s´?5{Ø>í´‰>ÿ5û?–A?*Ò? C-?#$î?²Q"?°µ®?G~?E=H>ô¶>íÚÜ?0À?#¾9?<Ô?>°A?k>r?ƒ~ü?l]?S‘¢?2O?"Ù??ä¤>Ô´¶>`?€T=?t‡F?Ž©ý?˜pE?ÉéÁ?Lj›?/±z?ñn?e?#ƒ?ûŒ>Ãîd?4Ø?nñ?—†`?¸nì?ª‰?–”?Œ¸ ?o@?{~Î?“Ÿ?Š ™>ÒÆé>Ê Ñ?Aø?„>ܵ>±0&>B™”>#c>‰Ó>”·Ã>úª?ˆÊ?– ¤?Ò†!?’íÃ?ê?!‘×?D°N?Uéê?p›§?Uà€>ðÀV? +òi?ztJ?w5T?kµk?m÷´?q'ò?q;?ä>ñ]$?^ ?yBæ?¦$ã?µÅyA=Õx>ëx¹?r=Q?g†#?MÐá?XB[?nõÆ?VÖy?:æS?S ]?“^¯?’1!?2¢Ý?5\E?rq?s8j=Ѭ>÷,Ã? oâ?Uçû?s°~?¦B?¿ˆ?‹ê ?V®þ?xM ?…ñ~?£j?ÀB÷? ï­?txä?¢¡?êÇÊ?Þ{?¸µ?¨:t?tñB?ˆ ?ÅVà?À8?‚!?H;@ ›^@iÅ>õâ‹>õ³_?Ro%?QvI?Np ?Keÿ?H^%?EKø?k’M?vLn??X>÷z?¿«]?öœp?‡ü3?Bñ?."Ð?L; ?¢0å?Ëmù@ž@!ök?è¹?‡OÓ?Kän>÷ŠÆ?TŒ?¯§ž?Œ/¦?Pï?%?y`Ä?¤þ?²ï?—()?(«á?EÄ ?‡?‚ðø??ªž?/->ø¼Þ?Že?{ß?Ãý?í‘?à(G?4­?:Y¢?œç?ž‚X?ñŠ?îGS? t>ù©2?q$L?yÌŽ?'Ú?Å?mº,?z)?AñÏ?,°Š?ú?…çY?Ûºí?÷\x?M½{? 8W@^V@6sT?Tjm>]€z?zn‘?¤b?¢ÇŽ?›LO@UÑE@„]O@› ?•Œ5?°ý?°›¨@`@ÚU?ýfÝ?ÊÉ£?L›?_s?D>ûõ5?|¬?É~£?Ï$µ?ÔÉL?Ó¼ß?Ö¸ß?®Ò1?‰#?äƒÇ@÷?†®«= `?[j‹?¸¬“@€U@4ó@0-W@+>@ 5‘?Üy?ºžñ?¦Âÿ?ìù¤@ Û=@ +MÐ@pÿ?Ç€w?}m1?zOG?nn©?}ý ?Ž?Ji>ý¯ž?m[?Ÿ£c?ïD¤@L@ –Ò?õK¡?£1ü?.‘?T9¢?~ ?}>Ï?y”?¡°3?¾²?­?§¤d?<È­>¨ŽÇ?„sâ?¾Øi?NWQ>¦ßR?Þ.”@,1?ö™?ºøë?çÍ-?÷«?ÂÞR?°ð ?“å?~ÚÔ?,4>þêM?Ò¬¯@Mì@`¸¤@…b£@KO?¿O­?¹á?»/¥@ ZÓ@†?‰¸ˆ?˜?yÉh?’(ˆ?<î•??‚?5> +?E?ˆì¡?••?e·Á?L•e?ºã×?Ø1(?ÇI'?¼j ?½äß?¿¨*?õWK?ÿ’{?¦á?›zE?“„?†š?¬|†?µÑO@ +¹(@'È?•·Z?ƒIx?§ð?½? ¯? ’ ?ʤ ?ÓÎÆ?À³º?¿?Aú?eÄr@I’@2j?0õN?=2$?£.?šÁu>ÿØ°?»Ü?ù>˜?ôÜ©?-]i?@$,?ÈXE?Õn ?ÿÞŽ?í4å?ÛF?†u“?®Zœ? © +?^o?2;?»òG?¯ÔY?˜Ú#?›Œˆ?ŠlÖ?™3 ?¿â—?·P?™ÄX?¦í?×5±?ð?y@ ¤@áª?¿Ôo?¬ÄÁ?n}¦?€ +z?—1õ?é=æ@?Îã@-…@7ä?ù©?µ‡ö?··Ý?¹çY?¢„?¤÷?· ?ÿ›´?ýeK?øä5?®yx?B{Ì?®?½ûM?§G ?àu?Œ?vg?¿„q?îv?¿KU?ž\?¯i‰?¿ï?¶@*?ªtÒ?O%^>Êz>>¼Ðc>Íç½>´hl>xË›>Í„Û?ú|?gƒ?¿PZ?e‡C?»?—X?¿=È?¦öÿ?“•~?všÿ?r„½?bis?O-w?n3 +?~È?™#¦?˜©?õ[«@Dê@8K@I·‰?ák?žB?ËNÌ?Õü¿>ûoü=Yl„?ì(z@úa?¯²??zÄ?ªMˆ?·¼‰?×%?ÚÜ[?ž=&?¦‘?¯-t?¿uÞ?ƒ¤?hoÇ?“å«?ž3Ð?èØÍ?ýË3@5‘@ØY?©õ(?}ž{?ûùÏ@$X?Íòu?¶Éš?µ¨Ø?¹y{?ŒZ„?}K!?‚YÑ?…·Þ?ò=†@ +“?ì°w?Úr‘@ Zi@6ˆF@ ¾«@M @`?õù•?÷Cz?ü°Å?-m?|˜è?˜Lõ?›ËÒ?ªšA?³É?‘Â?‚]@í–@<?ÉTª??<ï?$?Ñ>G@#ç?Ì“Å?¤­Ê?G3(?#(ª?(ü>ò©?Uª?‹ ?Ê„?Ýö’?»©?¦Í7?ÝÒà@h@ØÐ@xÕ?ÌùZ?„Ù?ê]W@Õõ@,g?ÒÃ?ÐÉ·@*ÍÁ@T1@£Ò?ý¹ð?ô¡?øýb?ù±@°@º¡@kN?ë<8?åˆ6?âú‹?êÒÍ?é&É?ß7÷?ØÑè?ص¿?îÐO?û@ x@O0@(²ÿ@$k?Å>?wv{>ûF>ü”?lFY?eòZ?Â’Ý?צŠ?ß®h?äñ±?ÔâC?Õ’j@.ê«@/ˆ˜?èì"?àf:?¶|?ª™@‚@0ùS@2‹@6{@Kte@NSD@é?® ?õ¶=@ ž@?ÇÖ@ø¸@V%[@lÆ?“Ï?ÛL¥@/Wv@*Œ{@b@Õú@3Á @#É-?¼r™?ÍP?ôÿr?ö$@ -@Ï/@XÍ6@]ï…?øå¼?ôe»?YœŠ?IeÉ?ïÀ@/F@/þê@:ƒg?Å’Ë?wõ×?ÌÜ?ó…D@M@)^@:›A@J“Õ@7Ï @%£ž@à^?¥[?̲@ƒD@7¸@5Ë@8hh@JêC@Uú¬@p®×@lÏÜ@!O@Žh@pb@o˜À@ƒF‹@‡'Í@ÝÜ?ýþJ@P”P@pôw?Ú_$>ð»g?*‚>÷ò@ ¹Ð@ˆ«ä@a@T@b{@VÁ@Zg@D>Z?î–æ?þÝ‘@‡@v‡@Iá‹@LP@ ü@ò@.Ÿà@;X +@ §?úϪ@Z•@rÐ@E™t@n(æ@BÀ@d3@µ@2ê¦@&4[?«æ ?Õü”@“6T@Ž:¡?»®Å?ÒÓš@ým@û(@6óc@?ú¯@E™Y@EÔ@Õ¾?ì$÷@8£ž@+é@s@-Ô@$R@ þð@Æ?£á +?¹ž‡@U-Ú@h °@I¾@f“?æµÇ?½ÈÈ?‘ m?n˜ú?€Ýœ?‡}˜?²HI@U@̧@NÝ@¾?!?ðQ@)p@¥Ù?yàÂ>íâñ?Æfƒ@ Tt@©L?è^º?ÑØ?©!?ÆÈr@¼Ø@2v?šzÍ?Œ^™?ØÉV?ç??ñÊÈ@î)@:“@Uùò@$r?䵊?Ö)k?ŠÐÏ?‹<æ@ ?ý¿G?¯µ?¬ƒ@í@ ΂?ºÿÆ?ˆ¹?ƒC]?‘Ã=?‹ñ=?UM«?2[‹>ÿdJ>ëÌÁ@ +Å @ ¾Z?ä¯?Ô07?×D„?ο@5˜@K‹@²?À` +?´NÏ?§×ÿ?¨2?ßK?ãoý?ï”@áÑ?ø©Z?ãœ@Ê9@$ðª@'®@ U@ 5‘?¤¨û?Ÿiÿ?…£*?…øð?Ö$=?ûma?¹š!?I¯'?t…´?Ý”E?î—W@<è·@2B½?Ôx?¹.?áÚ?lb?ËÖã@ »Ÿ@%ý?á3?ì­r@&`¡@#žµ?ÄŠÇ?½x?×´?àªg?¸ð?‹2¯?¡ØÚ?âô@?ÔÅ"?yÔ[?‡ìC?kŽò?F¸R?U¿þ?x6?IíÂ?À™?~šY@ 2#@½?±X?¶ôµ?É™ç?Åœ„?猷?ò3 +?‘ì”>ßЉÅK>ÄÄì?…µÛ?B7Z>£u4=ü9:ü¿Ë=v=ÔöÞ=VqU=‘ì>H>y™Ö>óE?)|D?y™\?£Ý;?¨r?¡>£?ÉK„@Œ@ó@9Ö@'4R@‘C@ÿB@(4@,Q@!Ò?ÏN?ƒÂé?> ?Â!Ø@É@ÙÜ?­q´?£h?g?N?yfB?hP?h@>tË3>|…w?Ø‘µ?ä–?O2¨>íÿª>ñ&’>êô>S§W? ýJ?œäì?|ò¨?§Û>ð¢Ò?K#?@Ð?Io?9õn?D]u?séÓ?™Ô#?¢V¾?qÌÚ?oη?XoóˆÍ?©«@-03@3M1~>ÈÃ=°6j<èRœ=EWˆ>ºKâ>˜X >yÇÔ>Âiû?9Ó*?6Ý >öU‰?#³ ?TÖ?,i>—·=ð™?_#ñ?n£³>P=`8;Þ€>¬Š—?Œ>˜?}'À>½æ>Í ?V?&?WV—?šãX?›êO?¾Õr?Âù?‹ -?rÕ>‹§Ú?²?m~?’· ?§œÀ?gX˜>í–#>í–ˆ>훆>±ÆŽ=±!‚>Mc}?$Wà?#'Ð?Zl?Y?É@Ó?Èsß>00B=Ï*>@wð>Y!q>û"?lò?Ãv%?ü•_?Œ`>î½>îb>î™? Ú?(>B?×)>ÝJö>Þí¶> {>˽½? ‘#?>;ŠB?O„Í?n­ý?&8?³è?F±0?nß´?¹‡ç?îûŒ?Äû?•Ìl?–ÚS?“œ,?‹Ê?}Ð?t™I?=–º?3ÃÁ>’pÏ>¡Â™?¢…š?¡P|?p¸>ïÍl?Yß?+N?G² ?QM ??Á-?:1›?j0³?ƒºb?%ï=™Ûî>ÏËó?p•?PH´?~º?/ã?­ŸÃ? 1æ>ðõs>ý•¶?qÉ?qg=,xö<µþf?Ë?¯ù?8rð?u?ØÕÃ@•»@C\?ýÛ²?…\œ>·âÔ>î è?J?AtQ?rT'?cÊ?QÜ?3å)>>>èsT?šÿ{?’‰b?7‡ª?.õ¶?aI?·<±³Â?J6ß?jŸ?vß?s¤ ?1×—?’|?6ö>óò±?‚ã†?¬K>?ÀFP?Ôqi?°"û?„hÇ?BÞ«>ë¯Ì?ƒ)?ô±8?ß¾?µ˜?Ä ˜?ï…d?Ê^ž? ¥’?!?VùÈ?¿T?ø–ì?îAÎ?¦ @?¥#W?£©Z?¢*N?2‡øÑ?[,‚@@e^@9ú@1¯?îâh?y=P?}aP?ÎL?ÕCæ?XÒ4?PÖá?xzç?yÆ{?œ˜#?™Aù?‰»³?‡¡?à k?ìv?ùUø?úGâ>ŒÝy;–w@8ÈI@RÄ9@>Ô…@<—?ž&Ë?R–1@!öÞ@9SS@¶ð@ ’!@4 +@dw?È_Ñ?£Îu?À{™?ÒË?•»R?}ü[@Yœ@/-K?ÝT±?¥]Ë?|­ ?MŽ?EŸ~?>9 ?·>ü Î>fZ=‰• >…?"~?L´ç?ÊÎ @©Ì?±"Ë?\þp?œ¾?¾hÎ@þ`@:u ?ß•î?~©?~œ?~›?Ëc³?÷B§?Í4 ?³Ø/?â~.?ôˆ?‘0Ò?Jc?ÚÙ”@Dp?ÛQ‰?Ïb?„êd?<]£?á{å@:Y?pçý>™Õ1?)!?T?6?(û>þÖ‘?»0?ç-ô@nÎ@$%?Øi»?´Š.?A›¬?D? ²Ü?Ã2R?=öÊ>ÿ'É>St>b†>ÞÉ>ÿ@×?&f?›j ??1?+ËG?š[?¥lý?Löb?< +…?²cI?Ä2°?¨Ø!?¦ ?àÙ?ê¼>ûûä>¹à¼@bÀ@%ç?ƒäm?mž?í>>ÿ¢3?õø?þœý?Ò ?ý}?ðû$?éÃj?""j?0æt?¿Ë]?ÇáŽ@$³g@Ž(@?Îw@5…?Mb ?YJ¾?¿Ó%?µÙ˜?<µ˜?G‰l?Ž?~±a?'©õ?<âX?jãß?/@ ‡@aÓ?œo?pä7=%‡ˆ>°·Û?½ùM?°@ƒ?‚ˆt?ƒXI?Ì…?Dâ>2÷>î´»?T—?‘wu?“›R?ˆ(?_íi?Ÿe?ørZ?è¥I?¾zR?›ÿ?]´È?}ë%?’€‡?ÊûT@ ?ùæœ?±Ñ,?˜iT?l‚»?…ë?VL?†n1?€šY?FXÇ?o?ˆ°?Çÿ?º[L?¨Î?nlM? /?qÚ¤?–AÝ?žM.?¦n??ö6@I#@ X²?úÿÎ?Ååø?¦9Ý?ÎÏŽ?ꈸ?¯ +(?ŽÕ>ß™h?–ÚÓ?ððP?¥«2?z /?~œz?€æõ?¥üï?³H›?ßäL?ôX2?«Å=?Ž¨M?¹%Â?ÃG*?Þw?~Ê ?™þe?¡Þu@ ¯½@+?úú?å‚…@)@ +¸[?žÈ?=ÀM?óŒ¹@%Í?m>þ\–?üXG@û4?Úc?»à@#i³@33 ?“Ö,?IÍ¢?ȈD?Ûg.?u´?}ó$?Š…4?ˆB²?HW?>ÞA?°÷â?ȪÍ?èv‹?éeÌ?¡Nò?b£?Àp?ɶc?Œ=?}l8?¡z?Ås?¥ð?»-§?瞀?í{@?Î{G?ÊÀ¨?óã?üþ/?•Ïá?„²<@ø@·4@©X@!¹±?â|?Ë¢[?}Ü?VY?ê^¶@:Ž?”[š?jÛ?­Š?½1w?½–‡?Ài3?Û—?|^?c >ûòÄ@5[@+¾¾?¶•ñ?‚›>?:Ëñ? »×?V×j?{‡á?›½?ž¼¸@1d@Is)@p^?ùo?_ƒ˜>0lõ@A@W1]@4aØ@Cf?ð5?Í] ?h+P>äíÂ?©•¥?ú€ë@sƒ@ + J?Ûq?œ÷?|^?_ +:?M¤|?$ 1?ÔB<@?9#@7™í@+œ@õô?€Åk?¬\˜?ù€?ûÝ9@.¿?À³>ï'H?SNl?º×u?©ò?†ºL?¥¢¬?Û¡»?ÚKk?Á¿O?¼ˆè?Ëm³?ÆV\?ºU?»?¾á?ÊJM@8>@+ÖÌ?xí?yÈ?Ý®¤?×Qå?㞃?áé?šKÐ?˜g@Ú×@Š‘?w}Ã?#ùg?ÒÇé?Û–`@ ¬@ ðí?Ìë-?¸1î@€æª@¤¹i@AñÇ?ë@<®ì@h$:@ Å?Ñ-$@ ª‚@(Õÿ@ å?ÏÜ?@lã@Kκ@\J@‡‘+@i–ð@Â@c@™:@‹í@.=³@*º'@'5Ä@"8 @›.@*@ ´Æ@Ô†?¹`À?¢p@Q°@Sáu@K=°@OC@:ç.@5Ë_@ ›?ów™@/.¶@MµÈ@\à@hSH@HÁ§@'Æ@n5?ŸÏ?Á3@÷î@ðd@Dz9@%¡Ì?vìø?™I$@9QJ@;[ @Äa@™f@†8€@‡Ñ€@8\A@5ñ@,1Ó@³“@=UØ@Sh?ïçŸ?Z®¿?Šì2?³±Ò?ò’@$—g@,?À@,H@-h@85_@6wt@=Ä@ÞP@8õ@H™®@@­·@<šT@HI +@O/@h+Ó@ic©@$«@c@T/@ô@N²@\ÁÃ@Wq@Y8@(< ?ö”:@€@U?â–Ñ?)íê?–`Ä@)@!ö¹?§{?šSñ@(¼á@)Ù³C¦=טT; LÀ>çŽ?§Õ ?«œ?ÒÎð?Þ‰Ý?Ám?Ô]Ô?bÍ¥>ôG5?cù|?°í?íá@0BM@*¬L?à»÷?ì¿*@†øž@—!1@5…5@ ˜@4+p@B«Œ@D?¸v˜?·K@Ìë@ùQ?âÖŠ?á8®@A¡ø@?ôÈ@7 ?Ö÷?÷w>º‚@?í±?sº_?7;?œ¨=Éd7>¿ß ?—£?3!?g(‹?Vb?{)‰@$|@$Žü@žK@ Š_?öR“?ÊéÐ?î­k@!Zö@°Ð?Žõ|?„[>ìM ?€?h,Ç?hoV?–Ê6?qðo@ø®@,‚?»ê+?h^6?Ž,.?”þ?&¥×>{61?Ýi?lŒ?_!n?\™ñ?‡-=?£¨–?…2?!ƒ,?7õõ?D5?zû? f?£¾?³?¦Úz?"?-ÍÊ?ÓR³?؆h>¯ÐŽ>ÍŠ«?xöB?ƒSÓ;¶4;—ç1>÷=[>öíY>Ö‹Â>äo[=<¬I>úš>×ÿ=[¸>d¸.=º®R;uÀ>´•Û?xª?K0q?gà>~Û]?„‹˜?³e:?-øÁ?¯?J??1þj?ì*>»50?H’4?mo$?ž?²‹?‰,?TRL?%©³>í°?ŽT?9¿{?@R‰?S\?|Þ`?ÄÚ?»nd?’Ђ?•EÁi >°qC?ª ’?½äê?N˜z?&º>§¨ä> zŒ>¨â_>íü®?XG¹?Ÿgô?Bú=.¾Ž>(Ÿy>JŽ>± +‚>îðï3Ë?õ$ù@§Ng@„Ã@?ð÷©>ï¹1>’Þµ>|é¢?.ï?/ìø>¨~>Aü—?Y\¥?Ÿ¹ç?h4?D!??¿Ä?pz|?xú?€Òõ?[X¶?{G>ûaÕ>ð1?{§?q1?„qM@+êf@(Œ¢>CÞØ>Œ©>â}>ñƒl?„&@?™ÂY?Q|? ë€?ž:?•üè?B{b>ò‰?4æ.?rB?€þ‘?‡„´?pdQ??/à?Wê?•š¬?„jø>öÈt>õ¥$>Z2²>@WA;ñh?[Á{?N‹;?‡fŠ?‹»™?wów?s¹™?*ï?Þ§?6„è?MQ>ìÎÍ>[”?¡’@2Â?v>€<“;Z>â)„?wbQ?{iì?| ?ºÎæ@Ô_?ö7y?b?©f@0ò¥@$)J@„Ã@¾ÿ?âö|?Þ‡?¸T?µá>L™>Sò?Ÿ K?±*ü?P¼ñ?4ñÈ?aˆ‡?b<É>ȹÈ>œJR?/(Ã?Oýa?ɼn?éÊ?“ɽ?](ß?`}`?cÍè?Ö›@òv@"ã@3Uº@ +"X?º›?œ…j?m¿©?©‘&?ò0?Ûœ?º„?²Ø? ö¸?ƒ½r?J?tWð?å&‚?ÙÚz?´‰?»Sµ@'@ +ô½@)9c@(¦â@Ëù@q'?ñ $?Û&?¥t?¢Ð«?T{l?[‡*?½ÿ?Å#V?°?±ìë?ç—?‰rs@´ì@e§?½×›?ºöô?Âp{?ʃÇ?K¢?Eý§?Ú¨?äï•@6ÞU@CfÀ?÷_8?àJ?£Hr?®–?²Íê?¼k‘?§ †?ŸVš?…v?u»D@FF@*g¼?Ä]ž?”|á?Á…R?ÏÏ?§ÅÏ?žw™?‚ `?Z-F?/tA?=¶?flì?‚0J?Ô#\?ûO?wA:?4í?\ÄÖ?|˜ ?®Õ)?Ǻq?Ÿì?Œi}?ãH$@Tw?Ã[G?©½|?’ýð?‹š?7<>ý*Ã?Ñ[@2‹?Ÿ‰?3pÔ?E?N‹?’í?¾'Ç@ +§@ƒ"@â«@þ?â«·?¾WÔ?åk½?ú›Š?ÓTu?¾Pq@äñ@¤@-Õ%@6éC?ôR–?¾¤…@.¢@Nù@E@:W•@+Û^@*«~?ÙÖ?£‰Z?Œ¼|?€d´?¾Ê?Ûcl?‘=>Cïn?-ï?Q9>é>¼z­@ y@,6Ö@+Û@-ê‹?ƒš¸?½?jEç?€+H?€,~?‚(u>]‹G=TÀ¼>½j\>Ôwƒ?ê—@L?žó?’Uo?¼ò?º÷H?½g ?¿zS?Œp?Æ´?DÞ“?E‰Ð?âw?ã#?ëx6?é)2?Õn>ÈN?[u?f=?4»?×? ÂL? é\?ÁÕ¹?¼Ç>ÿ–ò?I¥?°è?/ù$?mº?Î@^i@gR@+ž@‚?Ö«“?Ïc ?3–´?S‹{?¿Ç[?°ëõ?DFr?}xy?ÿ¹ +?âhç?*Â?i²@mã@£.@?ÍÍ@4‚²@ü?õEÀ?È? I>ÿÃû?&À¿?¼!?\ðf?ÿ’?KÍ?œLQ?ÀG¸@ªT?øû8?Öîz?¬Df?NTg?rvV?œÓ?¸A?á \?gÚ>ÒX¡? X?W¢Ë?`q +?io7?„b?šLP?ZÜ>ÿ‘Ï?¹i²@w±?üëe?¿Hr?z?¿>ÿ}^?ßà_@3Ž@Ä?òûL?dwù>ƒ>¤7Z?&?<¡?fßc?ž@ó?¼0U?® ¥?­ÄÆ?¦Ù?˜,Y?…’L?ƒHe>î…=ø>>/Í@>/dp?Cl?…ðÕ?/§Ë?*¹?˜°®?½*7?”-ß?†ÿ@qO@¨¸?ÓÿÖ?¯6¯?„}û?z¡?DBw?1½ç?_ø¦?vʸ?™q?¬¼L?”Aj?Ž m?¤%N?«3ª?Öªó?ܦ™?¯ã…?ªsL?*¬Œ>þKð?o_æ?€v>?ðç? x?4gt?RKº?Ÿä‡?¤1ª?Æ?Ð}„?Œè?}ä«?h +-?n T?J¤Ÿ?<_Ë?B‘O?Jæ@, @È?¯–ö?žk5?äz·?ò”Ž? Ã?}Z®?b?~ø3?´Cž?½æþ?’°þ?±Ë@°@yÝ?Ú-n?Ðxæ?t’³?M Ø?¦ ?¸{—?½²ê?½€^?;;ö?¥ñ?™Ô?›œ3@D¿@W?|ë ?¸?ž$%?·Í?îU3?ú9C?U{Ò? hx?TF?bÂú?©I6?ŪŸ? ?µ¤‘?Ü+æ?ä*)?€O5?B'¸?ý¯)@¶@í7@7¸?v”>‘â?”ét?ÉSF?˜ ˜?|ØS?Ïmß?þ©À@0w.@Hb«@Ê«?í€V?Õô…?ШÈ?Óvá?ÖIh?Ç  ?½¤??•V¬?Cû:??„Í?Tš—?¨ñM?áæ'?«?*i¤@i;›@‡½@mwß@jcb?ÓÃH?véÛ@r@+ƒ8?ùÞ“?Å'^@ +Ò@*‘t?ì˜l?”¤p@ =@Fÿ>@4aV@Œ @Jhþ@VÔ@‰ÓB@u^ß@|¼ÿ@ˆ^×@sâ@&P@A@?×Vj?ញ?ëè¶@9¼@¢$–@–Õ@¸@«?þ"d@7@²ß…@ÃZn@F=O@CÈ?ÑU[?ºû@b9@ÿà@=oY@TÉu@Za|@_úŠ@(èš?ñEÉ@úü@ ó @ïj@)@3@;¸@ÔR@b<§?µ‰?×:%@QG@GÙJ?Ît.?ÕìÏ@f;Y@k!-?èÂÃ?ÔhA@TpÔ@oj¤@$MÐ@Úÿ@<½@bP@`‹?r>•@añu@¿@º@,@.þ.@KˆÚ@>5Š@'èÕ@]Z?nÞ9?r—@o,E@oÌ?ùhî?î¼x?ùøÆ@8@Pýi@fù$@E!\@(ÚR@¥É?Ë ò?À?Åî+?æôl@Ny@&U7@‘ o@‡E?¼…f?Ê¢N@‡@B@^µ@—N@a@)…@;,@ @xG@J?ï7ô?°Ö?Â6?×Se?ÃéV?³R.?Á0J?¥ÊÃ?®tÂ@#Áª@-<ë@"E@#L?¾ÒÍ?y_A?¸É?Üç?ÖZ]?Ýw­?ã/Œ@u‘@_@/:@1Ž…@^ùó@ZSy@ZE"@a»?îœF?°Èˆ@ Å@(Ÿ.?ÿW¾?®0¯?™ö?h +¦?”CG@¬b?ý$á?‘€/?ŸƒC?o–¬?m2þ?¹Ô{?Áã`@{‹@"4ã@ @‰@Ãû?þrá?œù?¥òã?ÐïY?ßIz?­½`?¬kG?çË?â ¬?¬.+?“Ÿ?¨1¿?¶]?—¡?e¼?Œ3Ï@ /B@ ߊ@ À¥@½e@“(@Òl?¾º +?Xæ?>“?5ÏÇ?Wò>ÿ@¥?/k@ +›?ü~i?‚ÅÇ?‚7‰?«¥ú?­¨³?£ZB?™ à?Êâˆ@,]@ ~6?cÁŒ?gž'?³?¸3Û?ܨ8?â6‡?«8–?”L‚?¡¶¯?›¿ß?r݃>ö…#?>?PØ?F(^?¢>ð?©I?™p?¡>L?íZÝ@ûZ?÷­Ž?¨.­?±óÿ?×ý,?Ò‚3?îóÙ?æ–#?ÀY?œ¾L?™m(?¨Uß?¨ñí?©j?»LÕ@$‡@f€>˜óZ>Z&,?µMi?ôÑ&?î›?÷­8@úX@ ?çHÍ? {?½l@Ý@ àÝ?Ç]?‹C÷?ºUQ@Ík@*1?Ò[r?¾¡?ü5?‡¼H?ØÜØ?߬G?Ë¥ ?ÍÜE?OŸW>Ó¸ƒ?§È¨?›Zå?’7?1É—>¤›6>¥ Ò?.ñ½?Zj:?€?§ün?›YF?[:?BäÕ?£Mý?Ôƒ0·=¯ºs=OÃ:ªbð;·>'WŠ>Ó¾±?Uòˆ?˜>k?½0/?áÕœ?°qØ=sÿª>éÛ?Þ6¾?Çš?h÷?hKN?®;?Ìf?D¥3?Aê?jO?¬ÄO?i?…›?còž?/Vø?2æ€?M}ª?µN=kˆ>j¨“>£oÊ>=³‹>Ä?—Â?¦ð,?O©e?tJê?´^c?³8 ?‘‘?„É•?µ¢¡?µê=ó|Ò=e9?´!?²¸ä>Òf¢>¨¡9? ›1>ÝüÈ>§âõ>Á‘Ý=;r¦<™:ï>ßøÖ>ÒÛƒ?Oä‚?-¾ =ø¸?MÃd?5òã9`¼²>0Ïi?ˆ:?Q?;ß>‰á<?†¡™?²m×?€Þ ?l 1?5!|>íNò>Â$>ƒ +Å>¤+ß>íFé>Òw‘>w{>”BÚ?2þ²?2i‘?©j? ü?N±?P/w?gãÜ?mI?<:?0it?«³x?ÐXP?o€Ù>í\ ?=ü?VT>ÞÞw>qW0>œY>ö•¹?LR?m‚?Wµï>ÃMF>ÎrW>íÊX>í¢?“X†?šC>ïf'>¤)o>¢¾y>¡@„?U-÷?Š‡j?6Gƒ>ù¯×>Œ.A>mÞt?F)>Éß=ü ?(Îý?)ø^?+#+?,YÇ?-”÷?.Ù9?–Õ?—U5?F@p?1ÙE>³€ž>_,À?RU¨?˜®„?‡–?o +?"|‚>‘É@DóÀAí<@Ý ¸?Ü9ä?Çÿ?và4?Å ?]ëÂ?Xìþ?•™?”­B?£M?§O|?‹†?‚¾·?vÙ>ð ?ƒÅñ?­H?‰£À?\¥?¤ÞI?äÕ$?é«[?î ù?¨åT:J1>œxS?² c?«k?‰“z?ŠÃ¿>×G‚>ÒüÈ?  2?¡IS?! 2?6w?—‘?þä>Ùݽ>Ëso>íâ™>ò?߶?$¿f?=`C?ZqŽ?i3@?rz?œy?× Ž?—úë=GÙ„>Š€c>}÷ +=Ícv?ñ†`?õCÑ?“úW?”úí?š;?–J?ˆ;?…=™>®žÞ> È?ª?è“Ý@,‰K@Lö?ïÚ¾?sý}>åD<ߣ@?1ÓÀ?²à>?hsj>˜mw?^_Ë?ßÙ'?Á!8?Žá’?ȼ?^g?„Î?Ëм?¹„?tà?Î:?Uº]?Ily?(À>ùI?ÐW«?ÎÂ_?ŸŒH?  ´?NPx?,¦‹>¸·D>­8@àv@)í—?¦(ð?Ca}?+Ñ?‡ó?L¢h?l[C?o³—?s?ä¡ò@yÈ?ñ€C?¶Z8?Õ¶?÷è]?«[i?$¸Y?Ö>¢£Í?1&+?˜`?óö½@OÇo@™?…Œ:?§€­?åEr?Óù‘?¹ßÐ?Ña @¹n@ ÿ@GùC@9Ðä?¦ø¿?’¨÷>²àJ>Ç*">âaŠ>Ð0ù?OC¯?d?ë·Ž?õ±1@m¡Û@qC"?'‡?Û? ª?Ec=5Ã=ðo?»¤Ã?ǵß?´_?º×Ü?ÍÅ>äY?¯šy?¼B?šoB?—ã?ô8Þ?þ?ÅRÇ?¼‡i@ +õ@b_?æ±Û?Ò±?ó?û·?e‰ ?º1?ó0>@ÆT?Õ„”?½Ö?̪v?Ê ó? +Ý?|Ñ?«dÐ?¶^ü>×=çW ?à­@Û‹?Ϊ?®¸±?®ÌB?¶0¶?ñ?|ä?‰†,?‰M?ëÎÞ@LL?¶Ô?¤óE?G£ð?çŒ?y}4?’|H?‡éø?ˆPe@EÛ@l?ÞSB?¾3Â?¾<“?¾F?»+ª?»Úç?ër[?ý1Ä?ÿWb@9"?µLî? ´B?‘‘Ñ?‹^+?Ü~ê?ÿ—À@ +~³@Áw?û‘}?îéþ?®kû?›:l?‚÷?)’?µAÉ?Ǭ?cü ?.Á?ÞCû?úRB?4P]>½í?—ÍR?³08?™Hu?(8?"¼?‹?´úk?¾íØ?ˆ[F?~ó?ÛÆ ?áˆk?#Ç>ÿÇ?œ8?­Á¥?ÙY?Ø@Ó?…”?†5‰?!¥]?%?ºÍ+?¿n? +6J>ÿK@X‹@,J?ѱ™?Û]æ?®Aì?®^>ÿás>ÿek>ÿjF?N%?oå?‡8ß?ÿwŸ?ìš<\ÂÞ=è’?sÕ"?q2]?‰^?_·@Ôv@ ++|@›ô@³Ý?üJU?䤨?Š˜˜?‰Ñô?ž‡¼?‡D>‹˜?I™?Í÷t?ÌÈŒ?Á¸±?ÜpY@X(@îR@-ef@»?oŸJ?¢ÛH@·‡?Åk6>ÿ¥x?iý?Í +?Vln?¯:·?Ÿ]È?ŒV7?¾[”@5p?çûž?©òÆ?Šâÿ?2ƒü?U¯È?—ß?›Â†?¿®Ù?¢¸û?Žƒ?¨ºU?ÔíI?ß*Þ?î¡à?â(é?ÙÜ ?ˆ`>ÞÀ}?œ/˜?÷Üì?¸¼Õ?€J?å°T@ 5?÷L°?Ù©?ÓO9?Ì¥•?Æì©?¹ ??° ¾?§6_?”˜£?Š{w?Í;?6ý?‘—>bã?'žú?o—§? S•>š¨À?3÷Ó?XW®?¬s?½ í?»B‡?¿>H?—ðd?‚ÙQ>6=„:à?E@¼?~ÖÀ?çMd@`¢?>ë_>Ç!¡>[x’>)Ýî?-¹?JÚ€@\^@Ÿ?€d&?*NÁ>³$+>ŸÆµ?<Þ¾?X…÷?þŸ@Ä?_£Õ?é? :9?lL?ÚC?ý Ÿ?6ço>þj>þ —>þu?ÙØ`?ðs?›Á;?‘®p>ßóY>¼è:?â.¥?î-?Š`Ì?}©#?8Þ>ý›J?ªË~?Á>d??Ú?îû?»À_?ȳ?€J?s?º~W?¾Š?½Ç +?½ÒQ?†!…?}Æ@)˜@6‹?ª“ø?‘õY?í.L?ñøN@m,@Ž™?®‹Ë?¡Ih?›~?‰¯‘@Ò@âm@ [@ +˜K?Êp¾?½'ˆ?E…\? x?g»?ƒM‹?‡7>ûëq?cÜ?{ÉÄ?£1Æ?ª¢?ÉO?ÔØÆ?Ðf˜?Öv"?ÙVË?ÉúÖ?Ï?àÌF?öíä?û+?ÍÞk?¼Je@ +eÉ@Ø¢?ãQ?¼S?Ä >çh@‰0@A„?×Ù?}•@$ä°@XŸ¼@ ?»°H?—~“?z°?¥_¯?ÊÈI?—û?D ¤?È +—@qÇ?Æ>ùž^?˜a?úâé?Æ^¦?‹/Ô?ÃÌy@c@ ®?í@&ë.@~ôÁ@ZÚ?øÖþ?÷;?éη?æP@J±?ü×k?šn2?µ)@-o@ÈM?ºï?ª,?h?G\J?¡?Û@„LX@zº÷?&?ˆ¨*?ûþŒ?÷…¥@êÉ@ è:>µó>W@/t +@SÌ@á?@+É?£Ÿ?vÐá?3…e?1íº?ãÇÍ@ 2?«¤?s9@Ý @%õe@ +0m@·Ý@«~@,.Ò@wK@Û@#¹_@aÅë@Y Ó@8_+@@§ï@Q¾@:€Å@¯@xô@[Kp@fÓ@(`@d?™žî?p‰h@J@Dͬ@>)+@0Gë?þ¤œ?gø?˜ª‘@H\@º8>7”u=zì<%B=– r?þ¤í@@CA?ô½@iÁ@%M@¤?H7?RMá?2Qó>ú\[?jY?t¥?Þx ?ö»Ò?ÆU?¬Û?Í ?õ°?Üã´?“‘?Ž¡?¯2I?¯ó•?ë±?ð…c@§@Ù @8 _@=Q/?ÿÀ ?›îA?œ+j?…Œh?I4m>Lš>¦œ?™Eá?—ö??¸iì?Ç +g?æð?ô¶ø?¿çŒ?q¯Ž?Ž.?àC2?ÔJY?©Í)?©»ð?žª™?¦Í’?¤Øj?—Zu?Ö*E@D@3Çç@_Š;@?Ö•?a…?auå@"Î@Y6?vôk>á,9?À ¯@ I.@Êz?b9?‹m¬@É@C¬?×?Þú“@Sž@ rŒ?î,?¶Pþ?¾ýd?Þhk?Ój´?´þ?º~4?ƒyõ?T”>?Mл?spÆ?¨‚>å>ìÉu?±g?¯^Î??Õ¸?4ˆü? «Ü?»­Ü@ Jk@&¤€?Å+l>ã2Ò?†È@Oq?õ'¦?_ ?_Ÿ?Á|?ÍnL?ïP?Rb1>ÐÎ?(1Ã?úÝ÷?ë³?³#§?ëà?×g>Ã\?ý+>öÍ?gé}?§òs?¹?5ó=?O…k?Ì=¤?´Nˆ?žµ?£ö?§E…?šlp?Uã?3Æ?4?-KÛ?=¯À>àÍÀ>àâê?¥y?ª k?Ô¶Ý@Š¡@8».@R +@;±Á@ O@1n>@[áî@^H§@;Ì\@,<[?ÄO?ÀÌÀ?ÙJ?ÔqŒ?ƒÔz?£3>ùDˆ>Ûßù?J%?Ô,¡?´MT?”\Ý?hš>Œ2ò>&C¦={nV:…ë?ØG?14ú>½ +”>Qeg>âÐ ?Aêµ?.%è>Òu¯>ÄV>3KS>Åí«?Ëï?'Mu?WA_?@Ò¤?_"’?iDµ?j­?tT²?q Á?j¢?jÇ?ká?uCx?[; >èxo;Õ Ê>´â?Œë?O·>„ë_>‡×>è•>•ó>VB=œF?|h?„Dm?I”º?faÑ?›f¡?¢ûB>üç:>óWÏ?ëoÞ?í ô>Kš >.>äN?§>"š=©ôÙ>òãz>ð¹„=¨X>ƒš?,0?,[ >=ø'?pBå?@̤>þÖE>Ñô>‡{à>6OZ>@@>';a?žeÛ?ûf?5ŒQ>ü6•8!Ôà>¨L>í' >ÌíM>£ >½ew>í$>Ú‰E>§ 9>´#Þ>í!X>í ¯>íG?þ?¡5û?¡O0?oÒñ?m(0?Qõå?Ld?Š I?—sr?•b?á}?ªÀÔ?»)æ?²íñ?©†D?B1= Ž> ï>šüÍ>¥#ï>Ãç?HS÷??ED>™"“>›¯»>î0>í¥j>M=>&ɾ?#xß?Mn³>õâ†>“î~>’.!>cl?Zîö?½OŽ?~2>ˆ \>ó+?{}?kº†?7 B?'m>f™>p”ç?“ÅW?—…Œ?Cãý?73à>®ßÏ>…F[?S?<áÐ?]â?nìS?¬>0<©? éå?Š]·?µü‚@¡m?ÑZ>ÈWH@ 3@ éÖ?Óâq?Õ“Û?sÃ(?oÌ£?¤Qµ?ª–y?"–c>ð?;qØ?Yüî>­ä<å…/<ºT>`„q>ð–˜>ð¦´>ëÉZ>«£}=¡ÇE>ð+p?åì8?ƵÀ=xI\=½‡v? ²G?%JP>÷¦I>ñ€ú?J¨?R .?5?)–?ºí?Ü,?ŠhÉ?D?>Øý]>L06?ÃØ?reò?«…?ó˜? " +>›×?yEN?A\>2>–à¬?Cí?†#¾>óQ¹>ø™Ñ?ã`1?æœS?¤E?¢\ñ?—À3?C?z†5?t5?s…>ìîú>óéŠ>ôöØ?…Z‘?®åš?±Á­?·|_?­(? ?O6>ºd?“ч@9É?ÇG&> U >dlk>øƒa?AU?„q?IY?ýyÝ?ðNj?švs?–í?¥?®‡~?ya ?vPò?Å[,?ÍSá?Y^Z?-ôe?Áaì?Ú^ ?è$²?ëð†?ÌìÙ?Á Ê?fï4?•?[>÷bœ?K +?~'¥?£ì ?¹Å?}HG?*z?Nx?a¿„?3f?ŽŸ?³ ÷?æel?ú-B@cH?ò.C?ˆþè?µÒÓ@ +o•?ðÏÍ?›Ñ?Áá?xþ‘?Ž©Í?ɾ—?Ò”ü?å q?Á<ˆ>…ñœ?ò-@BX?ýŠð=›†>8}å?ƒ+?vŸ»?Fr>ýƒ#>úx?y ?sà?sV?¦3? Ù-?»^‚?»\?vÉ?ש?…ü£?€ƒÅ?hJ?”ù0?£U?¡4?îa??ú•?Ã?{?¼wP?ìªÙ?íÒþ@‘Þ@=?Êþ-?ÇØP?—uS?‹q?´Ò„?¼å?þ”?Ãw@Aã#@Xüg?é¥3?¼•F@”´@kç?–ÀÐ?\@Ù@¬ð@у?B˜ó>»/©>›”>›,D?Ž?¦f˜?ÕôU?áäK@üy@Œæ?©Î9?pòÎ?‚O?wÖ¢?‘vÌ?“'Y>µœ¢> œ?¤ï?Õ›G?Ä÷?¾%#?Ä Ö?ÃÅÌ?•ÝŠ?ƒì|?D?±h@»`@ Ë`?«g?“þŸ?·S²?¾¨?Š„š?~J)>¼KN>‚ï ?/¨ª?H“?w.ø?~|‚@̹@"]Ç?áö€?Î#?”®¤?Šo`?àv?ðq@>÷@‚5?‘ ]?dÊ=ö»œ=‚ô?¶×¨?ÇEº?­q?¦þv@+›@-Þ?þ—`?ÿ 3?–èË?Žó"?–»º?®I?œE|?Ÿç?O0?5?¥øÏ?¥ã#?5N>ò]¿?HW?w?­>ÿQý?ªá?$:?$÷ô?]-?Œ½¢?ýí?ï«Ð?u©Ì?_ÆE? Ó€?!ÉT?u°?eï>ìþÖ?A q?åŠj?é¬Ï?íÕÿ?ÖÑ•?lË·?„0E? 9¡?nÁ°>Qîð?OV?<®•>ÿ“-?55Ø? >h?¨¢‰?´+Å?’òÂ?có?•;T@Ç?âð2>ÿ’Ï?°žv@3ñ’?õ z?#“?wÕ?²w[?¨ßé?¢¾Ï?©I³?©åÎ?rø>ÿ†x? )@@êü?ß^u?¿¡“?’„õ?M¹Š?’ú?Á×£?°qŠ?Ÿ4>?[$A>ÿpZ>†¡š=o#„?ua¶ñ>‹lS>¥þè?o1\?¤,²?áPZ?ÿ;?º¨í?šÆ`?c6ï?>ßý?ˆ¤Ô?’·T?õO>¹¼?Ns'?7?èï@‹ƒ@EYò@bWa?ò‰É?°=Í@ý@J?o’9>ðù¤?c ?¤?¯_¢?˹Q?m?E?9w2?0(¨?&׳>Õ·Õ>ÔÏ·@Øí@=Íõ@× ?ö)ë>çO×>7‡??#˜-?Ës?Ù¤5?€wC?lÐÂ?|ž¿?~&ª>¶)œY@ @ž?eôq?CÌ?6¼l?/]?*_K?%bb?©[W?©¹ƒ?ߟ|?êš-?A¿?‹@[%@Ø™>†©=ðNÆ?I´?©?sa?‹Î?ª®C?©NT@‰ô@ ¸?ëUg?ö¬g?d±?EÊx?í×Ò@ïÔ?;ä?|Xx@ØÝ@%àŽ?ЋX?½o@Ñû@\J@¨N?õ d?ŠU?jE?>—UQ>bˆ˜@0w†@JÈÃ@z?â‘Ö?È¥?{o$@ +î@!€n?ÄÚ/?”»Ì?Òz|?ë&‘?åô—?Ûq@‹!@Ñ€?ß/é?¼Z>ß +Û>ŽQÂ?#ú? ¢Ê>újH?øÐÀ@57@@S?Ár?™Š­?´g?ÁW?ÅŽ?ÌD?±ÝL?‹»²?Nó;?Ët?ú @YÈ,@+EÞ?íÓ›?ÁiÞ?“ø3?§ì?ºÉ†?âÃ@@È@,¦È@M£—@Z!å@|ƒ}@9ÙÀ?$Ö‘?eµÌ?ÜX?íõ'@.L@w?¶‚?¹‚“?³é?®~L?¹Ö³?Éÿ©@BÇJ@E€ ?¹Ÿü?»lE@+3 @)‹â@<¢Î@@¦a?Žö?bVÿ?‘ì*?¾_@>:Ÿ@UÂÇ@µ)@—d@tè_@ZÅ€@_ˆ‡@`–?öÌ,?Ž\ä@&\$@e@Åý?ÄÙ?·? +?¸.C@·†@4_í@õ„?í€?@TR@V4¡@;a+@DV@™_?ô¸R?î/a?Í$?ãÖð@[` @Váä?=`e?Kª–@KY%@M @U æ@UH@*Y?ó–Ø@*æÈ@.@!t@"ž@Ù@ °ç@fÀ´@™Ê“@J´?Ús‡?°_Á?ryŒ?ü& @ZÅ~@5þ„?Ô ?Îýw?ñNù@é™@H8@>o¥@é«@vl@1'Õ@+e@g$@—6@lÚ?@|oL@(7®@yä?Ó¢?¡ÿ@u j@¯ò@ò@9¢®@`¯@@*â@`Ï@GQó@&Ã2?³’·?Çn@ˆ£@§?³DÑ?³0I?íwo?í0@&h.@)..@)G‚@/¬À?ö¯L?º"@Ùð@K³u@Pp,@\§»@H\„@j@5¶@„\K@gô¯?z‹?„|è?Ïk?×ÁS?‘c®?¥U½?õg°?öTÖ?ùY¬?ú†ß?°v?w›O?pü3?n=¹?§À?ÿ‚@&v@üÉ@ ˜W?Ë~Á?ÏƇ@^C—@aƒ|@Lë@Rð@bÖÛ@i]ä?ÝRy?‹?bµÃ?ãš?¶˜‡@Ÿ1@èb@@@÷¸?ø¤?ó÷ ?¾Š?²B?õ‰?hà?·g›?é© +@=­ø@yN@5¿“?Œ”?ˆj?;n?™Ae?§¸²?¬7Þ?Ü–?Í;Q?ÌÖ ?Ý?ÂÅÂ?­ ‘?á[n@ î¦?Ýšã?[»!?Ž%´@IU!@G€[>÷õG?]›?¨1Á?¿ê?³Gd?¬Ý?Ãcs?у‚?â¡M@ +›8@éÞ@*ÝD@$¾‹?䑾?äs @*‡¼@7•@|iÿ@Ž‰É@;õÓ?¦5m?ω`@'γ@ Ä€?Ρø?º8ç>Æžé>õ´e?zûŽ?5]?Â+ñ?ìCc?ÎÒ?Ÿ?šg?n ‡?‰zò@2´?õàk?= ?Œ©ë?¨x!?¿µ!?œHÆ?aÆD?¥|Ò@ø¨@¢Ï?ÈpÎ?½¿w@ +øh@®&?a/ê>œ«‹?‡Ý>?ÚœF?ß²?Ý·æ?à +ç?v—ˆ?p?—Ðs?ä %?ÊK,?§Û5?’Áª>‘ÅÎ>¾í|?Γ?´Y¡?a>ê?Lâ¡?hn?_ô?„õË?¾Ü?Á“?þy?‹à>Ë‘ê?!Yê?¡Ó6?ºä +?üæg@GR?Ôð?ÕÚ@@+ Ú@BR@ƒ©@s ?Õ_«?’p?•Ø5?è®=@W¹?Ϩ?p@^?š£?¨9¡?€R}?:0¸?¶U>Fäþ>k•þ? ¸d>ûÄf?^áu?g‡ë?Ÿò¹?¨ÝÐ@»g@6ü@Îv?éøË@FŒ@"?–@$Q7?õ{Ò@6[@G%@tà?¼Á>?¾=?Ï!?¼`J@6@:Tg@̓?ô« ?ÿAh@‰t@¢¼?k¯™?d™Á?hµÏ?Z£?¯oå?Æ?×?ŒÓ¨?,´?5oÜ?QoB? +á=§]>ÞT?F»0?*žj>çć>èQ?¥Äg?®hl?†”O?oz;?Å6ò?Ú-?˜l1?jRZ?j›œ?jõñ?µ¿2@ ':?â»o?fk=?zG=?±ºS?‘Í>fN­>ÌV?‘Bê?žÖD?ªÏ“?®Ä¿?«g‡?¤D7?‡ +Z?r8•?D”›?Q´Þ>ØŒß>êpË?vÞÝ?¢²>Ë|à>“Á>n%>4f>´Jà>ÖéO>òMy>øúRG>ŠY?ˆ‹>Åb=ž~s? +eÄ?&yÏ?Tb|?2ƒó>ÜtÉ>XeÆ>… ¡>½‡ä<‰ör?S5?º8>®x¸:4`8D>ÌHÄ>íÍ>‘«Ö>%&ÿ>ð’Y?DÖJ?#ÆŽ>íT?,ˆ¹?‹Vo?n÷t>í7? ÷ê?‰%û?ˆ¤*?m +V?lÙ@?Ð?66?–µ?Ÿyn?×ç>Ý1M?wÍ?·7?yÓç?œ9H?p©2? Ûz?BÄ{?o7~?)¥>h>†´V?kW?:L ?™Ï^?Ew>,>.á,>–‹=>“Zn>Ýa!>í²+?-ùG?=sà>¼q¯>He¸?-Xâ?‰tý?Nïý>î€?6ö?“÷?ƒ?1lñ?çª=ˆÓ¯?/Fc?-·>î|ê>î…=£ ð?*¤)?†h?M—Á=üø?Y>@CXÄ@/µ4?„5€?„ŽG?/j?‹j?‰¥?‡×Ö?-Ç?ˆâ>zŒâ>¶>Ö²?z)>Cþ; Ù?Fh?o•Œ?ή<£X€><ƒ>Þ?›Z?†'V?˜ÕÆ?Ìè­?®Êv=´š¬>!Ó‘?™æÓ?— =?çº?æÝ?hûG?q½w?ˆïj?“Å÷?ƒIF?r¬>§m>{óþ>éñÅ?7?xcq?Ce‘>Òw¬?rû@8?ÊüÔ>òöå?-Á+?¶WÓ?ª~Õ?9 +å?@wÔ?¶?µ¿…?$íy?Æ@MÎ@ê]?Ž÷/?söœ>zã <Þ½E?6ëm?r5¢>«kû=¼3^?q²¼?·u@Â@(ëk?Öü?BÉ?[W˜?‹Ö”?|JË?*T8?˜ó¹@ +/?ÔCñ?,hÁ?Q«?­ N?£¼ ?: [?V«&?ˆÖÿ?€–@?“W÷?ÂI?vR?vÕÎ@ÉÍ@ú?ti ?\SÞ?»\Ð?Ã-?ç?ðCl@ KB@ºÕ?pj>÷T>ùE]>ÿÈ)?¸ú[?ò=[@8K@ i4?— Ì?R?¤¨?èžœ@›¸@º*?Û ^?’k7?bqÇ?íF?¶ }@g@aq?º—æ?¤«Ö?xï{?•4O?ÀÕ!?§$Ç?˜?u<1?:?¯EÄ@Z²@7Ôj?o‹?7¤?»R?±+#?yãá?yöy?x2X?uOí?z*N?ƒ%æ?»·)?»Ã?»Ð\?º÷?WV?œdC?çÄ?ä­]?¥ž‚?£*½?—C‘?™³T?¼*?¼O1?KRÝ?TA@2j;@4Û@ÐÑ@ U?b??f ?¦´Š?° ?Ð9I?ÎØé?ý8¡@˜?¶5@±m@é?ÏÚª?½ÅP?Ͻ=?Ü€V@yE@A +?§H§?€–P?(Ÿ?£ó?Î…v?àœ9?÷Oœ?ýq@ + +@ž@Kº?÷(ð@„o@!¦p@\r?ýÝS?_ @?6p2?Ì Ž?â @%â¬@(€?LP?¹P?5qX?:9¬? r4>ð?.ÜÕ?3uô?¼Îc?ÁÏá?½«‚?¾Ù‰?¼™?ÅT3?©³Æ?ªBv?Š·Š?…®h?v¦{?yí?<=?•?oZF?krë?…]8?ˆDX?ŠHÍ?ŒÞž@Wó@7Æ?¥v?«–Ÿ?èY?àm?W›K?sMº?Á¿?·AÙ?9â?FÛ?ÉŸv?ÄŒë?Ô??Ï×?±KÔ?œë >ÍVR? ü?ب%?ÇÕ¿?ƒöÃ?‚ð(?‹k?PÜy?¶R?†¨?UïÐ>ÿI? YÜ?¿ù?4j§?iïœ?t]q?{?„e?‚V?ÿ3P@\¬@™?5ÊO?YË&?l5?NÐ[?7oÂ?„°6?­o?´òd?¿žj?€½Z>ÿx­?š±‡?ûþ?ðèD?Üâ?¿ß? ¶?‹¤ ?v©7?U’³?=ž,?­€>Òäã>ðÔ>ÿ[†?Rù”?‚ Í?Ϫ—?þi?×ÖC?Å,?R¾À>ÖÎY?+™Ò?E±?”ð!?¬n±?å#¸?ÿ)³?¿ø¢?£wò?5êÚ>ÿ‡?¶yH?ä#X?¬O?•íò?K\(?7k8?Û(@žP?ŸªÈ?~èM>}J“==¯?ýLS@ò?^ý>þÃX?ûà‹@ ¥+?jH*?4è¼>¥™>-©?—Ć?¨EØ?vI³?YØ?ÌrO?ÞÙÖ?ÿ$ÿ@?ƒ.D?Wü‘?±îñ?³‰@ Ê°@+?c‚È?.Õ?k½?w¿8?»b×?»Ù’@3é@8ÌŠ?þ9D?óg?vT?y¾?í×?úú©?d5?K9@>d@A£U>Ç5ˆ>‹ž @Eë@¼ +?aõ?XFx@©Y@Š?²†? é§?ø&?ý'Ì?¿>?¿]ð?´¿?¬h½@ +k"@]?G­>üÓµ?Œÿ?“r?ö¢t?ü¤9?Wwg?=Ñ?Éš{?Ãøm>Ûë>¦û¡?½ˆ?¾“ð?‚|"?|/~?·+?½â?¾>ü4@æ@MŒ?Dâ-?6?Ž@?Ö¨@þ­@&‡©?çÕ?Öfß?ÆK?¼ñ\?×w…?á"@ dO@©’?à^ ?Ëd-@)+#@<4Ü@&ž@Ãb?Þl ?¼‡@i/@(ß@ ?@»¦?ÅZz?˜X?õ˜›@³?@#Ó]@-Ï?à°y?ŸãY?à˜”@[Þ?ílà?ÙÍÏ@(v\@[>w@.ƒy@@«@;sh@ë?ùDs?ï¬Ê?ßä¼?àì*?æed?ÛÒ—?Ó?@Ø•@9/F@S(ß@|¾{@M\?¢à?˜(–?‰SÃ?ÎÉ?ŸS?*˜?ö?Z‡? ¿‚?ZðI@ ‡@ü¤@G«“@7¥·? ÓX?2NI@)d @*Ï @ÛÂ@݉?ø>o?öî|@2Ö@Ò@1ûæ@8öY?¦Fð?Ž4 ?Ÿé?°¾j?Ä{ ?Ø9j@ñ@Cr@3<ö@FÇ¥@`÷/@lÖ@!–¾?ËO“@'›«@u™@‹0O@ -€@ˆøf@8¤@fÀ?¾£‚?—?Åh­?ÒF?ô¿@œë@9û¯@664@!¼K@S@#ÎÍ@'Fb@NQl@PúÌ@Ó?ôêµ@-%c@6€ý@3 4@0yc@)y@ ˆ.@:÷@$åõ@¿@E¸?î ?Û—.@^Å@Y·5@fs @r +!@6Ö?\J?‡®»@9°x@C»ñ@w{@p½ @eM@cP@%‹@Ô1@9¨`@A€í?‡Bø? =È@HÑË@†]â@EO'@&§@@˜@K»l@MÜõ@]2À@QØA@0PE@`C?³Šd?Ô.@-k@"v-?Ù?ÅH?î"·?î©R?ûŠÜ@[¥@5 º@=:?ý‘?Íó@@E€@y¾W@UB@2:8@;§Í@Lë@.ˆè?´Ð>?¦!Ú>&> ã@”?þ’J?Ϲå?´1"@B@&o^@ Å@˜š?ÍÎ?¨?Í@«`@G6¿@,”Å@ `î@G@&Iß@pÈ?Î?É«­@#=M@,[?åe˜?Ç'@m£@/œ(?íÛ??žX@dQ@RÔ@'['?ãÙ@6n@;kc@?¡é@ªm@—#@V°@¯Ä?íñ€?ÙË/?›ÏM?„¹Œ?õºÅ@4•ó@Né?—w?àx?DØ@?0½m?o¡­?hH?àÐÜ?ç??e¼å?:Y??Õ(@+—@@"l@Ía@©°@œ:@E÷•@F°ð>åÙ„>庫?¾™ø?д?á6Ö?áˆÞ?èù?ü†?í·ß?ϸ ?ÓUì?¯ ¬?¼Á?¶@è?»#@m^|@yEª@QÈl@R×L@A0÷@%Pæ@[ò?ã§h?ͪ?Øe?;IL?lžC?N¥?,“Ô?2àþ?‹…?š²?j±‹? ¸×?b?byì?tœ°?ñšn?ö½Ž?²¹€?©‹’?h}Š?CЀ?_Ê?jºÜ?¹‰@'0@èŠ?·²Ë?¼òy?äžb?Ü]ª? Øš=ïÒá?`!?µ^Ä?½_µ?àØŽ?Ü÷c?Â5¯?·I ?mf?ˆÖx?jB‚?`m?hVÓ?eŸŒ?†7U?®Z…?¸¨³?Îéï?ÉQø?ß%C?àA?þ „@s@Iæ@&YS@Úö?Ö“ ?¼ î? ÜF>î€A@%¾‹@15Ä?qÄŽ>Ã0´?ïòé@>bž@^â?ÒH?ÁèÜ?ˆ½«?Ž~ÿ?B\?&w?ªu?ÙW?ƒÅê>߈?N?¹?­“P?§¶@?§·µ?ŽŸ¡?˜¸ž@,@(Ó‡?͉¯?^y?oçÅ?Vâ‚?qì?¥°§?À ?ÿBñ@ +¶&?™›)?s +ì?>¦ƒ?6 ?x'ó?¨W‰?Œ¥è?„Øm?p'>ãÔ>÷´²@ü“@ Ì£?éÌ$?ê3í?Ìé¸?‹×?rûw?\ ƒ?Œ&@Æ¡@¶[?¾Ïã?ßr>ß]?ºF@#$h?ÂÁb>»<¼?Š3ñ@ƒ)?ÿH?ë¥?ø«?—v×?‚].?Ñà?ÚÈ­?¡‘Ó?–Ðí?¦ã ?¬K”?Ú¡ø@ÛK?ö˜þ?æ{R?ÀpŠ?à(? ›>ç¦Û>çã3?¥Xü?®R%?¹iR?±J?±×I?¹| ?r:ý?$âå?2ªË?@‹°?€zö?©6?Ä&¾?ääg?µc‹?< s?jZÀ?Œ7q?ZOU?Le®?·p<‡•ö>5}@ +¶P@æÙ?´Û…?´Ü”?@®>ò.=™Pç;̪?`Þ?sÙ¹?C[>ôɨ>õJ>õÄ—>]û™=­ÖÅ;Ù}î=SÖ;e–@<¨?©$ä?¥­~;Í@=‡Bp>­áž?§6?‘05?M˜£?vù>_?*>¹ä¥=í¬(? ÁÌ?†Áå>©Ôç:Úáü>yP:>;zl>†‚>‘Äã?™ut?å„?pIŠ>-já>Ü‘5?KvP?Ld;?C +¶?7¬C?¹T?€ð?YA?¿L>ìð>íä?ˆ¼?ŠÅe>Γ>›¦Ó>›pD>›(è?su³?"Ã?… w?m#f?€Å–ƒ]>¯zñ>íIë?”«?~Âb?m,I>P<> +>íf¢>í…">í’µ>íœ?¨…?¹þª??Øí?æC?z‡M?šé0?!Üm>dÿ¦?I‘~?²¬¶?„ìå>î@?ýr?]]?L”¦?9f?6I>îg™>ïàA>ÉŠ>ºK?Ás9?Îñt?i9Å?EË?~Ë"??I-> >›>ïù?#?0þÑ?˜øÇ@>ô@ï +?¨š‡?²ã9?æ[s?å«]?ÙYo?Ü#*?Þø_?áÖ?丆?çªJ?ì”?îz×?^ç>ð.O>ñì.>÷¥Ï?5ÏÖ?a†?.°î>ðºÌ?MXZ?¬ƒ»?¡dm?.@?›úÔ?¾å?«³Z?4ë?2½> V>PÃ@ù@ÌT>η>8z->­Ê€>Ëèn=ó.>ü½`?4³á?.Ë°?0y?4O3?@`Ó?†²2?¶ ?¢ND?q&C?€ñ­?¤óó?¢oì?™ "?ž!a?ªƒ¾?¯}ñ?É2(?ë•?YÇÄ?_1?l,?o"A@ ŒŠ@{;?Ë’î?µ?Ùû,?àHM?èä?ìš?˜÷…?fç?w%?t×K?£Mš?Â¥Â@Àÿ@%r@6Ï@äÆ@ y?Ë]™?¯ÿ,?|§÷?G±“>k3g>ë‘,?Ê(Ÿ?αä?¸’g?¿bä?߈g?Ót?ßZô?çö>þ|ñ>ö¡Ü?î’¬?öÉß?°â¾?­¸±>µð=ïv>Ø»c>÷B€?YøJ?qG?ŠÚ?ˆ~?·P?Í(m?‘GŒ?]Äï?ˆIÔ?œÎ?Ä¿d?á¬?ÙÜ?Éí²¢.?(UÖ?»‹?²u?”lÔ?š\Š?»C•?¬ôd?yÑæ?`\Q?šC?E,x?ïOo?ãÈ´?»¦°?»³?»Â?µ§m?gò?‹Ð?tî?‰ªž?ãI]?×`5?3‘?4è¡?8_S?H|¢?*:`?&j„@6‰1@8ë?½£ø?¼†ù?¼“s?¼ža?Œª?‰¦.@žê@?Ë@éÌ@ŠU?‰a˜?}]É?:?d"?lçm?pH¸?zËN?|B›?Fê*?Nð÷?‹Mi?x]?áüé?ç„R?%‚­?÷Õ?uÂC?|Ã@ÈE@UÜ?–…œ?‡Êu?:u>ýä@àâ@ˆç@%U×@&Ö?”vc?}Iþ@CÅw@Uã0@în?õŒV?À´r?½“Þ?Ùø?©„?¼?Ëü,?ù—ÿ?ýÊ¥?~VC?`Œ@?âAa?ë]à?ä í?ïZg>ä…M>”{ø>ô°>þ Ã?¶N³?¹­©?N¡ ?K†@;¾…@?x?²tÚ?­R=B†¯8”âX?*&í?%$T?¦~?®=6?˜•?=â?¾ç?¸Î2=jÜ=þ¶?·tO?±6q?˜v?+Î?þ×c?ú]¥?«ˆ|?¨´²?®Êa?¤²Œ= ‰€?}ç¼?€_f?(%?E\E@Z@ —E@mÒ@—@Áó?õ ,>ê•$?C»­@,EÐ@!æÀ?¿l?óCð@^÷•@@!¯?»â? EF?¯¾?‹YX@….?üø$?a;R?‹'?¿† ?¬ûT?]?ž³€?â³:?ë\Ê?ý„ ?Úè?š…a?¢â?»}’?™þ/?$¢ù?Q2¬?û?nŸè?'óp?G¿?nÃ?…d6?†6v?€Ò2?‰Q?¢ïÎ?³U3?}#ì?v§? b‘>ÿk}?˜j?ì…$@ |ë@ÈŠ?Åg|?Hs'?ú$>þ> ?¿™@ ‘l@¢ï@+‹?áûô?Æ+?ÙCž?ÜþO?B64>&M>»]>ÿHÂ?Œ#?º…#?Ucá? ¸Ç?Ö(?FT?VBq?i‡â?Ÿ¸Ó?°ë?Ûç'?ëoÔ?ù8©?ÿþ?³_?œ"G?_kÿ?<á?xÝõ?ŠÝä?xïß?|UŠ>é¼Ï>‰Fº>äj¿>þá¤?gÜL?~ج?1¢ÿ?‡ž?©ýż?ºì?¾FM?2´?2„@‘+@¡„>•a&>]¹Å@Yâu@d34?]å ?EË*?Ü ‰?ã««@-–·@20|?ôañ?÷Æ?x?|ƒ?ö.l?öaw@\V@Á@ß?ùõ?€9Ô?|°F?­o×?´L?€˜?|~»@t@¯[?M×/?$G@ÄÄ@&=B?¢%’?’„?³ï?¸Hë?é4>üY/?·²P?Ç‘?¯ü—?§ñO?º#g?¼µù@IÇ5@Q#ô@ÁM@¤ ?âÌW?ÜŠ‚@å5@?èµQ?çU?Ûóî?Þ†@%¥@3~@8Û@:ˆÐ@T&²@X ?¥²N?Eöå?æW@ +"F?÷!ö?ç²@¯³@ =q@å@ +Ј?í]o?Í??¾éo?»^!?Ÿz?‹ê!?àÐ?y‘Ò?þè@4oÒ@½Ü?¿ó??ÿ%)@ó<@#&.@-=Ù@•Ö@ÎR@%2Ò@8ëp@*yë@dˆ@H?àb?ñ«³@\˜?êž?­ü?ò™)@P]@E:b@W0@}¤?lï¿?ŸWs@3åx@-Î @Â@ÊI??"à–@ +ó­@ H ?êÃ@?äCh?ä0?çÎF@+Ù@#›F@<B@:ù²>ݧ,=[6„?ê +¢@ +ç0@2€@]œ@±Û@%ON@Þ™@ý£@Htv@tí +@,ðÑ?ã_‰?íê9?õC @Çš@`@IW…@ˆË}@NÚÐ?·k?·‚?·pQ?»ìÌ?ÍI‘?ñyF@Eªý@O@ˆw€@Š8Ú@/í]@%,±@AW˜@> ‹@ßH@âo@KÃN@Qñò@Ÿ©@æ?ûbn?òæ±@V`@{$4@O]@:l{@Tž<@fzf@9”Ó@+@(3«@l¤$@:)?l‚?ŸJ@p@Èw@$ëœ@7LÔ@’âº@ø@E½8@Gõ@þ@rG?Èj? åø@*Éü@QB1@¬“?À;˜@ ¾@#Üy@Fjþ@b1I@N‰õ@4Aö@•Â?öK/@»@vAQ@r¤ö@h¯@j¤Ë?³Ç?·f¥@ dè@µ?üÛÏ@»7?æÚ?ÑE@[™@=?A@==È@2,@,·û@)gy@Rͦ@’ ê@kÜ|?FáT?^4m@([@&^/@0ë½@1DŸ?ò[?ëeç?äOq?ÒüZ?hÖ˜>ö¢¡?³~§@„î@ùÏ?Ê|0@ 1Ó@gàu@O¨‘?Κ2?ÓSà?ÖÓö?Íà@{E@ n»?}ÕÚ?½ß?Wµ?}û–?Ýëj@$k³@\¤?¿×?®Ýì?þr¯?þ6*@› @‹3@yuˆ@‚Få?ìþ?·iv?ŠE\?h6^?v¶u?Œ°‰?“–µ?ˆý?–<¯?Ð!!?Õr?²&;?¬…8@ L@ `o?†X„??Äè?¬¡$?çv£?ôvY?ùøÐ?äÀg?¬¤e?¬l?¬Ã ?·BÚ?U—.?KÄŠ@.%@8\?àŸ£?»`?Î1ÿ?ÉÑÃ?«Ç9?O~>þ„>ûfF?+?~Ì?ƒì°@1Ðe@S-‡@­æ?¾4W?àm@7h?ÿÇ^?ââÏ?é—?÷—?ãí?ϱÇ?ʪ?ª€½?æ ?°yÓ?àÐÓ@ʶ@ ˜?øUZ?¢Ûç?œYp?“Íç?ž2'?Üe?ØzU?bZý? +ÕÎ?v µ?««?½Zó?í¹¬?æs?f¥?†®Ž@ &Ü@ ºƒ?—5š?=¡P?×N™@%€?ÿÒæ?{ ò?žq@³„@ñ¦?lš?‘ö•?ž¼²?’}¡?—6 +?§@³?§¨?¨":?²Ø?àr?àQ?ÇÝ?̨?ÑŽü?×6?|Ê>ð 3?Cr?†¼i?ž€,?Ójû?Âsò?ªz­?Æ€È>è:‚=ñ?~e|?ìuy@lû@Êc?噬?&I0?1Λ?¤vÑ?§—è?< +µ>ç!×?«{?ð¿w?µ +ó?oÄ ?"›?§¥u?§©¤?b¿t?#H€?¸p.?èN?¢ÆY??Zž?J|Ã?_AÁHH@#¶ç@ «B>œºN>r7=qê ?)|g?n Í?`û?>nè?ƒ:¯?ùuÀ?û(Ã?×&¾?Êo^@=›@ +y ?¿›g?³*ç@gn@'`¬@ U?Û—j?ûŽ @)do@%_H?æbf?Ú–ê?’Û½?…À?q8:?VÚ’?‡lj?—Uü@>¥@¢?†è¼?(.Í>Æ’>S>åPZ?kq?.4Í?af×?F?F?+‘¤>ì¥\?üJ?©‡>?Ƭ‚?¿®"?Ó$˜?ké?^«å@Ê_@#?nòu?‚`R?CË ?%›?;,>íÛ>"Ѭ>o\‚>è¢Y>ô‰°>õí>õ„y?FFV?k +©=ÈLu?%] ?Ã!=Þë?VôÒ?b-I<^Xÿ>`te?¾iò?;Š>¥Úm>…7=v¥<>' ©=¡¯>¾i7?_ÐÙ?/å…?˜ß=¢R~?~Œ¾?†Zæ?J>ì¯à?°'?â­?[w>«ò?-à¥?‚è?V‘G?$;?Oì>ì½>ÃQW>3pŸ>2Ì$>2M'>WR ?"Ús?#z?B?@`÷?@Kÿ?@2C?HêK?P¦ ?Ž(?šöÓ?Zy–?$½4?[!ë?‚ÜH?F°=>í*Ú?™Ñ?H<—>J¸->MU‚>|±?z´Ü?yE¨?ˆeH?ýh?—¼w?•Ú?J7?“QJ?´ä>i„é?]ÏY?µ‡‚?Œ·«?-@ ?p'§?º‹?“×>ŠËð> /H>îLƒ?ç?‘(?ŒMÉ?âT?ë¶4?Jw×?@Â>À ³>¨Ã-?—ï©?Tþ¦?™?©Â ?ÂTj?¥ˆË?I2³?n?«Ó4?žp0?óÛ? o)?Q_>ý>ùL¯>õ•b?bûó?pï?oú?müe>-º<ÉgÀ>¦Äv?®ž?8Œå?bü?nb?Û‰?Y7’?¾È?…?K² ?i§?”­Ã?~#~=&/?¸ÕÒ?¿þ?o>3?XÆi= JR>ׂM>ú£7?!]S?>?eÔó?rXÁ?I¥i?)¨?‘ŽÎ?ËP³?¶Ñ3?§Òd?¢[?‰Í?Y:Z>½#W?‚?sAÕ?•°u@H@ÎÀ>7Ê=Öù­>þ ü>ø¹r>óç\>ûN’?àþÁ?ðÛ¹?ÄÃ?½[m?•'_?ŒHŠ?«3?ŸŒ?L"N?,Û?w‰è?ž1/?‘Ëë?’G?£ˆ@?ªd•?ק‰@)?ãÇ?˜Ç½?šÛm?’fÈ?mœ¨>õ×…?10V?¸€c?Òÿç@1Uâ@3F=XŽ>öy&?ì%?ö?öUa??Ë?×´@+Tú@7 ú@Ç;?ôÙ?ŒÄ™?wPm>pw=ëx@?²{?&‚X?t?èp?\)Z?wå]@Öé@D),@äE?ø2¥@ +RZ@ì¨?Ò›a?›:d?ª ?­??Í|Ý?øÁ½?ß™}?»©?ä]<@ò`?ï06?ŸÔ?¾¦É?äÁ‚?üÙu@ê-@²2?¾œâ?ª_?zg?ÕÏ?ñ¬ç?ïÕ.?ùû-@ª@,Ç@UP?2õ?}Óß@ã$?æ˜æ?Q!6?_™£?­îŠ?¨j©?B×á?Aœ–?:¢.?U^‡@Sp@fo?û@34@±Î@ù?¼?»“·?¯Ç5?¶×¿@6@ ìy?wî?#?Á—³?½Uœ?º—e?¶åþ?·ö?¶Cˆ?´k!?²ƒ +?eæ.?_©)?zÖÓ?|[ø?sù%?€µ}?%}5?î?à +? \?Ç?ì?7?2¦Ð?ä%:?Û]º?äRš?êˆO@*M$@/*?£R0?”@Š@¯@!ÊB?ƒ/E?w? –0>ÿ2>?´öß?¶—?ôÑ?õðM?É9O?ÉÏM?â©h?ÞÜ3?jŸó?sÊ?©mÜ?§Ú?• >þ§\?ƒÑ?€OY?Ýsä?áC}?7*©?1Yµ@9kÿ@@c?¥(Õ?Ÿ ö>ëtI>Ó]š?©IE?§ûq=Ù%¬>?Ì@>@àÀ?(?õ?m&º?gŠý?‡°*?ƒc>þ³?´r? K?¢^r?“Èî?“Z:?~ÓÓ?ƒkÍ?I?a6Ò>­`?Y˜?f[Ò?¿;z?Éãó@ø+?û +T?'?¢9@w?üÁ?F?Hùá?¼‹j@9]@~ÝÙ@Di?'Å?2pn?m³·?t%?¦;?©[f?r?Âtž@ +h?ѽJ?24ç?Bm?kqƒ?¹jL@s?çc¥?‹[ ?ŒëÐ?‚§?…,?‘`f?¾“ ?õŽ9?Ê)b?£˜8?™fë?„ÅÂ?øóX@?$@!?Zw?‚:ê?†…ˆ?~NR?i%S?dàè?`œ£?ð ’@+Þ @Rg@ž?¥ÏK?8Ÿ?lS¶?z“Û?ËÔ§@Œb@Óq@Ã’?„F‘>ÿE¤?ûR{@-ˆ°?ßÖ?œü?A@h? +,©>4¶î;éÓ>´Ì >ÿ(¾?”Œ?±ž?³“R?³Ä¿?üV>¿Òæ?‰úp?¨^1?¬Íê¨,?2 ÿ?C÷?:Ž¬?2T‹?8DY?'wÓ?¥…5?°¦o?OZ?.ê?‘á„?•]'?ð+Ó?þ·>~DÄ<Ë Ð?x´?!(@H@ü?½ÌÝ?°ö?ØŽ?×|×?„ÕQ?~l8?Ϭõ?ÊÍD? {>þTc?ÓtÛ?Øï?ž¿t?’Ló>ÔŸ>GE?º +u?¾î?‚,? ø²?ÀÌü?À3e?ýÆ@mµ@yÔ@†m?¾x»?½W5>þÐh?Ç\?ê:v?çÌ„?µ!y?­ÚÎ?Ãdj?»¹ò>ýpõ?oP?äëî?çjp?ÑrÄ?Íœœ?"?‹ë¯?ÇYÒ?ÃÊ?t_?{ÁG?½„§?¹&ñ?Â|?Äÿ>?Ñ\×?Ø'¥@ôx@…g?&ºÈ?,¦§?|Œé?}è?¿³?º¬.?óÿé?ï ê?û¹€?ü9¿?ÏC?Ë“4?úà–?ü8?ˆZ?ÛŒ?‘Å?zzB@NæK@Pu¡?•Í?‰ª?çzÄ?êç•@ |£@)Î?ëŸ?ë…l?‡¤¤?€žk?üè&@ †,?¶\õ?©]T?lAÚ?`3D?Ë ³?ãn@í6@ÉA@ã€@K?Î…ï?«‹ +?—Ñ?˜Ç÷?žl¯?¤k?ÇmD?ÔÆ@8#õ@L8@1ã@)@?Ü b?§Rè?À+«?ÉY?¥öï?DÒ?‡[Ó?p@<(þ@ˆP¬@LÝž@° @9>”@R˜v@6…1@†@Fj@ƒo@Rù@‚ñÔ@CÔ +?Ñу?ÐSo?ß”F?ÏÎÉ?’u’?°‹Ö?ý=?×S?zÚ ?i­??¾k?„Ø@9¯–@>•¹@Qoi@6&P?.N™?Q¥?÷(…?û´@&7ž@$?Êj?Ç?.{?My@\¤ @sÞ@£b?äR@(Ì^@3Þ?µl‡?•Ýü?ÒNà?èýÿ?÷kA?õ&/?øhî@½&?ðºe?Ùãl?æ'?õ+ó?¿z)?°?ÿ<=@X¢Ù@J2Ö@)“@(g?äNÀ?à»?Ý/ž?þ­@F—‰@>ø@Î@-K6@”0P@”Ù›@ƒ~f@Àå@äã?óäñ@¾@1@š?óÔ@ ‘ @ ]@@_ @w^?ÖHƒ?Õ‹º@b¥&@N‘v?Úæ$?ÈÂæ?¯)?°À?ÄsÉ?À=?‡ÈÑ>òMJ?*éù?“ ?£Š@L5@°Æ?íˆÚ?ó•c?h{’>h•,?)®?©wÕ?ÊÒž@}?ñn¤?b0Ò?bÊ?ÂÉŽ?Ú:k?œv?w‡k?­Ûy?àÑL?¼¶ü?ç?Ÿð¶@Y`?ñM]@ “Ó@ ¶ ?âB¨?ÖE¼?¸ý\?§sf?—½?`»P?¤ÅW@C@t@;¥?6N?„fÜ?Ëcr?óv‘?®.?a\M?®ÁÜ@ ?ìãf?½£j?Ã&b?¨ZØ?§í/?°ýÞ?®X?ˆ>5?ZÌ“?è£>[6ß?0v¤@6@`§?%‹¨>ÞsÄ?ÝÛ>ó§û?ÖH@ ýÞ@yê?˸Ú?ÊÉ¢?†ªZ?jµ²?—A‰?ž Í?Ï4R?Ü­P?Ý—Ê?ëh›?ºà?0h?@ÄX?§›‘?§Ÿã@î3@"1?Іç?®g­?¼ur?º‰C?ŒŸ•?74?eah?ŠÛP?}Ãm@¾@°µ?ö?üŠ-?÷½?ã”_?¦-?=;.?%{=«ÓB<9°ý=Ô „>}ÃP?ø?Q´?È$?üÓâ@XÇ@ Õ«?÷…Ö?¤T$?”DÍ?¨oj?Á™²=šÏ‹?É@(è¥?ä ?c`?OõY?CÏÉ?ƒ?ÎJÿ?è'í?gºÛ?d`?‹&?Å«?—j ?Û.“@nc@ÝD?¶# >åí>æ'?Ž?Qv?×?жî?ÊRn?Ãã?AÎ×?|·@'PÔ@I!?ã)û?1??~¾>ë­¯>øÞR?*±º?'"×>ôÐŽâ?#¶”?jV>†E[>–•Ù?€çE?›ë??v+#?l  >æV¯>­+?2_?4@?ª›>õHÕ=å!< Ó +>ÇX>È%M>¡aÒ>Ôi>ÝÏÇ>§tw>Ãê >áæV>üub>íŠR?Eìn?:j?›‡?„»Ç?x?‚uŠ>ehô?«AÙ?­½ž>¨Å>X)É??äA?_Ô?G e?8Þó?«‹?2»?0—C?:ŸÏ?:û·?;K'?Ny>Šõò>´U)? ¢Ó?/0¿?¤4o?ž+ø?l»¯?mË-?™K&?™X‡>Äc>CO?nû?¢?)/V>ìñë?æ?Ñ®>΄Ô>MÙô?¾ñ?— @?’Üa?‚ ?Rn >Mù> Ä¼?g +ë?d2É>gç•>iÜF?`-›?o 5>·I¤>w­¿>{q_>K°?1N?mÑÆ?2š/?óW?!Ìú?=5Ò>øÑ=ö”ë>î6 ?ôy?ôŸ?”Z ;ò?†F?ˆµ‡>¹->¸È?.´?QÐ?~}>îñh>ï•>ï ²>Œ]ñ=œX=ŽÔG=Zg>¤ S?b³y?zëe?¥à#?¢jÞ?uG$?rñí?mìÛ?o³.?±ñt?³~å?a +>ú'¼>ègl>ÞA~> =Qý0=ÂÖx> +tÆ?Ûª?p·–?:Kì>ðÚ¯>«e>=ò¯ö>Ëé:?‰ÿ&?Š½?sÇ?PP>0%8>gJè?‘+Œ?¤?'—D?˜PÇ?Wk&>Dªx>ÂÊÍ?_îè?ŠU?ÞŽ??Ü_D?º×!?³ä?v’n?o +6>óÒ>ô¹†?¶ðn?»tq?êYµ?ìñt>ü2>"€6>€¾ý>œÕ:>åQ>ô¬?XŒ? _S>äŠî>"Ã?•vy?çƒÖ?£YŒ?`!G?Và?8æN?‚ô?¿&†?°ñ*?…òy?‰mâ?£^i?¤ü;?¦›?‹/…=íb>Dw³?)؉?<ƒè?Ý=?ÝÚJ?…çÎ?ƒ$Í?´ÃÀ?¸:õ?BÑ?B«?ãê²?í‚?Þ:Æ?Õîë?שh?Ô~J?€øŸ?Y¥D?à•H?þ«|?ÔI?Ö+?‡@˜?Hüå@Ï™@)n¿?¹Œ ?<ã?š/?Ë°º?ÚÉÀ?áYØ?ì¥Ø?û^Ñ?ô)"?è…É?§ÅO?0j?òÉ?¶EÌ?ܘÓ@`½¸@Yô?ÛŸZ?Ñ&?•€Ò?°¦@o&†@hsé@±@ž•@;öÔ@2ç? +°?7.‡@PâÀ@Bý9>dw©>‘©?›–?0Š@ü@Žo?½Ý¤?¶÷û?¤³o?¢üì?½V?¼[>ø´²>é)?|$/?}f&@*„Ö@0òJ?„°?‰ŠÜ?Íö?Õ,\@{—@±í@1‡Þ@3Nì?1É?¶M?û\ß?û ê?ú¯ª?÷Ö•?ÄŸ!?ʼ@.”z@+z@YF@“}>Ë>XÏX?ç¬?äã?¯Éó?¥ó ?v¾2?„Ñ?Ü]?Öß(?˜ºÆ?–È^?”Ôä?“AB?¶Õ?À'é?ÔÔ?Ïl«? ú?`?~Z?’5¶@â@:?¼„‰?ª™,? ‹¾?>N?~Ž×?…Mó?¤®l?›S"?~¨ç?~®¨?~¸¡?~»O?~Áñ?–È?þȉ?àÀâ?6³î?W"ß?Ê +b?ÐÈ ?ÕŠe?«ðJ>’†e>½Ò¥?Eò?#G?ÉqÞ?à è?¹)?«?c?’ñ?ÅÉÆ?{Å=,ºD=Ÿ)>d?¤?±¾w?ÆWª?íi-?ÈÖµ?—[ð?v†–>ÿ4?#‰?}ø?gçq?ÄMÁ?Ž1>ÿ@«?¿U?ÔþU?ĺ,?®4@ +¢@EÝ?Ùß>ÀÁ?A`É?¶È›?þŠ@e ?ú“­?¼ˆ?¹ûF?·Úh?5d>=Š¬>âÔz?ÜË@*§@€M»@s~?b@¿?(€Ã>ÿ?S?ÐÉ?Âü?ùÒ7@T@ ![@ŠÓ?§Ïo?Eø2@¢@>(r@N%@ ¯P?£_ð?mä? #>ÿ^?œùÕ?¸V×?¼Ò?¿K2?•ŸÂ?‹Ð?¹ I?¼¦?J‡Ã?)Ñ +?ÛL%?ñÙé? ¤\>† ">é˜L>þàq?»j)?Éu}?ö-Æ?þÍQ?çoÍ?ð5h?Ò`ø?Ê'ì@ @ ?ÿ°?ü£r?ÃÅ?¹‰@e‡Ô@h+–?ª¨Š? >J?¾ Ê?¾ØÅ?ûÀn?þfR?ƒr?~[d?ªAÊ?µÇ`?±à?t'ù?«zM?´Å”@eY@ +_©?[ù?_Л?˜Y?Ÿ\W?‡c?‡< +?úª£?÷‡Š?¢R?í˜?+Mi?=Ä?(]u?>?Ф?Æ]?¦òö?«Ìä?°©Ó?»±é@~É@ ?•Ô?¹i?½ùT?Áx?ý9p?ýÔý?ô¤z?é0™?ãì?âÏ­?#1ì?%*@j-@^c?÷8Ì?ñÅu?½Žï?¾‡‚?Ýv?áÂ%?½Ùç?±j?2S?:º+?œ¯Î?ªôª@+ç@(¥?ü7ù?ü*,?ü R?üeP@L@V?Èx?Ã4±@/=@2û?3ä9?Nëa>+{›>A×à?ôŸN?ûz:@&² @%¤â@.6›@&Nµ?Škn?q­_?”Å!?•?Þ¯?ׄ?ûˆ>úÔd?A/_?4‚”@$¸@:¬”?¦†4?‡}z?âM ?ñY@/¿‹@66M?K ©>£'Ê?×`¸@'²@dgg@…9Ä@p9x@`_?ÚO?yª?¦‰?ÄÓ?ê²?ùlÜ@ªh?þõY@óu@"Ìž@yw@B?Üõµ?ɵð?Ä×õ?¼¹^?ÒE}?Ý(Ò@&Ð1@o7@Kŧ@­$?ÂBò>Ä6×?u…Û@!ü@Ûx@úñ?ûbä?wÎm?tð2?h½1?¹f@Q³w@OG@M”Š@7Þü?B}m?_È??÷C?ø3!@ öº@– ?ÆMX?Ð!k?Ö{Â?Ì,?¹dî?¹!@cqö@kÇ@?ç@8¤@0Ë?èP³?üöÃ@.A@è¡@ +Ùµ?ØM?¸ +?÷Þ«@i~@#þ?õË?þì¬?ý+?ö]?ÿiø@-àÑ@j'¢@1Ô¼?œï®?ºa,?ôB0@Áf@U—X@D8u?Ý=r?üvó@zÚÀ@g”@§ßT@®[@8j@5Xž@Íi?û_?ô·Š?òíÏ@ïY@¾W@)µ@å¨@)ù?@5È:@VÍ@e3a@[µè@a.–@OØÕ@3Ä´@¿ø?ªÃ?ÙU¦@,üâ@/¥4@gM@^yB@0OÙ@6o@–ó@K-?뼉?ÛÒE@2"ð@9©@5Fú@2ýË@gí7@wç0@]å˜@QÌ[@Q²¡@QŸ¿@>†}@#O¦@FÙ@ +5@8\@¨5@uà@âQ@4ó@†,a@†!m?ÁÐê?ÄuL@Ýb@ ”î?óZm?Å•µ?“M?jß ?¢£k?×UD@Aô·@@cí¶?i>?Pdo?±]?ÂÕ +@(Ø@,À?κ ?Û8µ?Ø¿–?Û>,?̹F?ÓGc@&ð7@LÙº@>K@8 U@fé?Ðʪ?Òü‘?É"ù@'_@ŠC\@„€]?¯Þƒ?¯Ç ?ùƒ?òŸ?¼¾Ý?¸_¶?Z²?¯)?¡Ú?à²5?Äõ ?³y?¬å·?‹7;?’Äð?…½U?y @²4@ ø¤@Ç?ü±!?Ñø/?¼xÌ?§f?ÈÇš?ìX¨@È7?ðöÔ?gr²?uÅI?­åJ?µÅH@UŽ?÷œ™?§9@?¡¯Ö?˜%Æ?Œ)¹?ÍÁF@B6@»x?÷Ü?é6Þ?ã³ö?Ýé(? ‚?³k?Í2`?ò…>?øÎâ@Æ‹?ú¦Ï?ØdC@‰ë@`p€@>ý®?\W?ŽZô?÷xv@©Ã@Ç ?÷Á?‡Ï2?/+?Ù¢Þ@(*@//?]´?iC?Kã?›€p@/VÓ@*)Ó?þ ÿ?à¹?¸×?©ýå?mÕ>ꪪ?f¿‘?íYŒ?ðßj?ÚAq?Êy|?A£Í?;Ga?Œ1#? ‹e?­CX?ª[?†E•?U\?L‘Ü@’ü@ +à»?é¿Ø?òº«?ºÆ0?¨±ì?Ròª>梭?ÑÈ?! ?àH@>)™@CŠm?Àûe?ºDŸ?p+9?(Mô?¦ê?¦Ac?«eƒ?Á¦0?Ä—x?§õå?§ð_?§çâ?§âN?¾*A?Ó ?½wµ?£A?‚œ£?¼É?Xu€@ ˆ@¯‘?àUw?ßy+?¯C»?¦»®?­îŽ?ÂM[?ýU"@©z@ºž?Çp-?Í2Ð?K¤@?R0?šË’?ª3T?•;?Œ^ ?‡Ì–@GQ@1r¦?Ë¿–?m›4?d;? +Ú?$S?É­©?Õ´®?e„?{>>ÿ¶æ?!M?xφ?«# ?—¬w?,“Ö?)ú ?f=Ð?bѽ?Å ?¬Œ{?0Hb?#*W?ÓÞê@¤N@šÒ@Õ?ÃîS=¹)2>e:,>‚ô8>µ-°>d:u>*&²>–†€>Oû$?ã>?pGñ?S"? ßñ?åŠ>îŸ>Ð +½?ë?*?kñ?dV>?f=Ê\¨>³‹»>äëå?¥z«?÷ìl?¡q>ÏÊ#?2­M?¢ˆR?ŽÑㆠ=ÕUQ>Ùf)?l;!?E*&? ‚Þ?7\ª?K ?wf<†l:=ÌH<…;³‹=¹ÇL=ãõþ>!7¶>Ìž%? +tÆ>¿ùÐ>ÄÍœ>â0y>òcæ=õ=;=æd?QdQ?EY?E?6?T£r=„K4?²q?«‘µ?¬Ýƒ? ÈÃ?=@Ž?-}7>Û7>w?VÉ?Ã0¯?6— >±òœ=:?2Â5?9 +º?n·?oš…?2¨:?3m?,=?. „>7|Ž?…?lrû?‰'0?–³?vC´?7³f?/ÿ?*ºÉ?€Œ¼?ì•Þ?Ï©T?*sä?5F ?p²?º?Þþ?”Q?_S©?lÊìÜz?½"?kY?'íë?>D?‡"Ð?±Êd?”M¬?dmw?Hg(>í0¬>ÐR>n’p>{â>fO÷>Z''>y—´>~ +<<¾èc?.K?m¼Ü?Ù“>¾Év?oÊ?R µ?Zs>-Ó>Æ –?HÚ¡?CU?GÙÏ?1¹ >C¦>GzÈ?¢Iw?£!?r™÷?n¥Ù?°ž>î½E? $A?[×? × ? Iù? º?·?%¶8?9Õó?D?…˜>®G>£±±?³º3?£0Ä>ïÁö>ðX>÷>ÿf@ 4Z@O]?è\A?Þš?0F>аå?vÝk?–`e? }>Aú:??|A?˜ +"?#VÖ>òV?¢À?²Y ?Ü>þ?­Y¾=&7V>Í>T>Ù³¤?(7ÿ?/èâ?µÉ„?¯­þ?œ­‰?¢öþ?[uN?Bj]?uDõ?y›R?„Ö?&?c?‰¤×?@{©>òÕ‚?T?šÀï?~«?,~?À}? À?W4?íiµ?æ~?·bÓ?¶‘2?´*®?«½? +ˆ?<ï?#c-?,‹þ?–°F?•[„?‘b?ŒÅz?_cã?R^E?¨B?¸ˆïƈ?#]ˆ?”é$?’wX?”ïX?±’"?Þ£p?³ q?Mä?]hÑ?v^?fŒ‘?2û?Vœ?¸Áh?¦Ñã?ï?;N„?î1Ç?âñ±>þÝ•>÷O‰>öñ?8Š@3b@3K?“í?Žk?ïAc?÷v½?‹&?w›š?§Pê?µý??r4‚?Jp!>Ð×á>•Ý?…¯¢?´-?‘<*?pÂ=?iÿÿ?c=(?^kâ?næô?‰á…?G ?¦ïe?º«ä?ººY?ºÈ±?õ@z¼?àBÚ?†±Ó?{kÖ?sc·? vä<ÊN=fƒØ=“ ,?ps@ê@9gH@}×þ@@ÜÏ?»’ë?ñ5Q@+¯@sÂ@ +æ‰@ +JÖ?úv@?ÍØ‚?2˜ú?^su?š?ƒá¬>úÔì>úâÀ>úòé?7c?—œ=?²Šr@Ob@ +#?ûN@¦@Ðf@F@ÄT@R-?û?»?ôú?¶ø¬?¶ZÔ?×wˆ?Í¢>Ò_?g6?Ñ›Ì?Ûôö@=g@5PÕ?Ò߃?Öé4?âãd?äM?@… ?õ¢Ž?œY÷?˜c?|£ê?sʵ>ü¸N>ë~E=aâö?9òt?K°@í@ØÌ?¯dB?·Þ#?ùËÿ?îù£>þö?!›ó?ýU#?ðsí?,n?/QÌ?«·±?¶Õc?Üne?Þï”?±‡'?§½©?¬´µ?¼ @2·@ ª…?ÂG?µ?§‡a?©Üb?Œ»E?œ>ù?èo‡?Ò¦o? ü?)S?3eE?9ƒà?ˆ>­?…6Ø?~Jˆ?š)×@óQ@¬?¾Ì¸?³:K?rç?]$„? V?/mæ?5‚?•î?­ê?«ì?©¡—ž?ERM?õ‰n?Ú&¶?”Ç?ž+¸?¿>?Õ$a?üò\?Ë?ƒ?f^E?^.?Uö¥?Å7±@)ºç@ I?ÑÙ‰?–BB>ÿ#4?!t?I”?^é?+®?*–?+I?‡?‰^õ?l@6?V}n?Z­q?^Ýr?·G?ïPm?¿·*?–ñ±?Ul? àå?¬Ö?ÿW:?þzw?û'?øþ»?öÜÖ?Á.š?™œ¶?÷Û<@@†@û<@ Âð@ ä‰?ÿÁ¹?Gw>mˆ?l$?C”d?´“f?åÕÔ?¡Â?(;?’L?²F?ˆµ?é?\O>ÿ½>c‹†=´¢É>Ù^À>ÿ°"@3Àt@V©&??"#?oÀ?~ù#?˜µ³?¢pf?j®?S(?¹WV?ÎŒ„?'Ùl>þÝç>þÔÏ>þÒ½@Ìô@I#@~Û?þÀ¥?)êÅ>î ?ï1Í?þ®©?Û®>çqH?¸1Ï?¾ñÃ?¾ìu?¾êF@$¶@)ÌH@Öƒ@ ^«?ð}Ÿ?î¡J@B3 @=ÚM?V?hÅ?Íñu?Á]‘?€Ý$?…'?3}&?:Z?éF?ßm?Bf?2`p>@I=>U†g?¨²Ž?±Hó?Ã^?²žÚÐY?±¢m?µ-@9(?ý‡"?žÐ +? òi?}Œ?‰mw?ïp?ïV@_ù@gŸ@sA@pk?§ý?­Vê?Ùqi?ì¾ß@C²N@;I?=‰>?Z„H@6•Í@+zn=[H>È¥ë@7'@;94@yÃ@_i”>ÇTs?1?©¶Y?¦Ð>üoÒ? x€?œAu?š¸*@ yt@Ž?ü(?þJ@ lo@ à‘@"‹—@ ݾ@é@²‡?~¸œ?„”?qÎM?leÝ?RxÞ?H)Å?Ë]?ÎìÏ?úÕ½@åD@g>@jjå?Æ~?¼T¯?¼NÕ?¼A…@7à@AÜã?fcj?+¢K@ úÃ@­Û@Gþ?ú˜P?÷ª?ñÓB?™– ?‘z@Al@Œ¿?Çu?¤ÜM@+/@?³×?ö‚à?åc#@@` @]4Q@5~?³ +u?"½½>’ÀÛ?´ñ¯?ù]@RU@z0Ÿ@´P?ÃÔ}?æ!å?øüÒ@‹5@ä‚?Í‹N?¤‰?•Ðq?“…@_‰@Rz!@(%î@‡‹?îˆ?º ¼?õÜ@$.Á@ +Që?¿Ù¹?‘qó?Wê?i™¡?æŸñ?ð5Š@á°@µD?ø»n?ð7Ÿ?õ??¬}@ À@Çä?¦‚š?ŸÐâ?‰”?yÏ@0SŠ@3Š?ÁQ˜?¸Ðœ?ÈÛ²?Ùø@0 Ž@8‚½?òFE?à'@ ‰°@+‰@ê?õM?Ë œ?¸?ê~P@ïï@UÛ@Z¸@9Tæ@r5¯@9—„?ô¶Å?íª–?ñrF@›O?ù×B?ñrc?ô2î@$uþ@Ži@ƒ´@;ø‰@+g'@(j@+¡D@#¿@j™?¸^?½O!?‰›F?Œ€†?æ4Û?òâ{?Ò¢?Î+@&S@'5@ ¡I@ÇÉ@†@¹;^@swÃ?ù‚?Ùl@?µ§c?Î&?ë@uà@S5A@?C?újr@ +Ê„@‚Ò@‡y@új@=£@2x¸@4_½@f1@nP@Wéè@Påœ@V‘@\É@€š„@ˆHA@Xž½@/ž‚@9¬I@@xH@@ê&@K'è@>ý@f+@¢Ñ@1#{@.ëô@S@ 71?y¾î?n,A@*@7Ž@½É@1@q@„?é‘?¯·Ò?ˆñÂ?jœ?Üë@>:A@m!?„r?—ç>@†à@Š?®7d?¥–ß?»º?¡Çç?3*ê?þ7>ðc7>þ¿”@5x@b%@7p5@î@CC@H‰ä@?OÁ@__=@cl¬?¾F?¹¾H@3é”@Hxß?®N?v(>Àà=ñ¯È?“—@È\?àê"?¦øÞ?’Ø©?Tá³?] ?ÚôŸ?äpN@_Á@LT?ø´?ö’(?ÐðE?Å—a?¹J}?µ¢è?Çd?â£*?ÊêÊ?ZÂ×?SBJ>ò}´? µ@Ž†@‡uü@.é?õìf?Ò +"?ÃÝ?ÝÞÍ?ó§3@@=íÁ@/|?°\›?»[@¡†@2?¨æ?/ë?o<À?eè?ðýs@1/@?gå?h?W?26Ý@.Ö@ ›F@vx@MW?¬Ê ?ƒ “?ÍŠ[@ö­?°Ú#=Ÿè>É ?ªl”?­†@"@B-@¥Ï@(Œ?Í%í?žÑq?ú€!@#O@B?¶Ð?º Æ?·³ã?ÇZÒ?0£?M?\‘Ô?nôq@ÿt@\ÎH@2pØ?çúy?ɪ]?žÈ9?©kp?ÕL`?Ëñ?·Xr?¯'?©sÝ?¤)?¾¦D?ärý?ꃨ@(aë@(¥?àaâ?àRÂ?õ¾¸@ðZ?°ÄÃ?h˜?žh7?Ðþç?½Mk?Š\?—¼?• ,?š¯Î?-éß>ïÞ?Ý@€@@ˆ@çw@+å?çãè?Å)”?Êà?Á€ì?ÌÚø?ˆ×$?`ÇM?¯¾â?ÔÇ?ëð@¾Ê@ŸU?xŸÇ?‡Ý?-qP?õæ?»Uò?ÚE[?Íp=?½ã´?ýÓ?(~‰?O~ö?§‚ë?§‡?ÖÉ(?Þ'Ó@Cæj@Y¼¥?ê"/?0˯?AŠ?}V?‚MÏ?N{»?Z}M?Üxp?ÑÙ8?°Ö?“§ý?{þ?›:{?•9º?¨'x?¦D?¦F\?§Ÿw?àˆk?à¢Â?[`?)¯?Kßû?`òÞ?ÆѤ@³@Æ?Èÿ?£¶þ?'p>úJ½? æÂ?~}?ŒF?£–ý?Ì ?Ú™ˆ?Èpa?°±g?’E?c3”?cZ‘?cŽŸ?cµ-?¥£?¨¼c?Ì;>§¦?Fyi?f_=?Ÿ3!?ÞšA?‘,p<»f¶>¼U?«¿?GV;?§ýu?’ò?"½„?š­>DÛ=j§¤@6rh@SN?¬ì?¬|?,%?%;ã?á1? +ˆ?V}ï?¯}?ol‚=ßY²>S…\>ÞÖ>ä=ÁÇè?u ?i5?PM?4}®3jÛ> +3<8Oƒ<¡`< Eè>ýKà?>mm>š•>ºg ='´w?‰ï?*áœ@3Ñ€@$i+?sí7?E==æñ =Ia?3}@ 4 @éY?Ê!]?'1>OvÄ=?`”‡?[ü¿?}Œ?x¬>ø?Ï>ô²i>ƒ84>oèØ>xe>lň?@" ?lOÌ?gRè?há:?I5Ó?.ü?4@n?4 +³?=¿U?`yŒ?G¼ï>쀵? ÏE?lŒ?l•d?l™•?lžU?l§?l­î?– ´?–ã©?u=!?lÎ?¶ "?φ?¼ª?±´î?.€Û=¾» >w8Ç>0ÑP=ËÈ“>í@¨>Ñ›Ò<lÎ>KïW>H„D>¿¼’>ÁWå|?%¶u?ŒÝü?XòÄ>§·ê>Ïœ?Îé?‰?PcË?X÷•?’}º?‘`?ü‰??á?Mƒ÷?Zæc?\µ?^ _?UÒ?SÞ?ì†W@&‚n?æSÇ?oO?gA=$Uš>æŸú?³˜e?™)>ï°o?t,?kê?ioG?„Öê?‡Ñd?"½Ê?#˜Ñ?Z„-?]¼K?{?ƒ•“?§è>ººü?Õ~–@ Æ?¨A>©¦p?)AØ?Œ%?nÞ¶?2b„?y">Žéÿ>ŠUl>…·>\Ž =’ µ?Ø Ù?Ûºõ?9E¨?+1™>ù±ð>ò&v?®?Êé?} ¤??»€?lÏf?ˆÀ%?\Ž/?+R?¼!Œ@ óº?þ[c?ÝkÀ?ºä&?|Kt?w¨$?sbÜ?©kH@'7@ |Ê?¶Æ§?µö +?¬Hö?­j?Û›Ë?Õ«?%èŽ?+Ü>¯ Ä>·úx?š¢Û?¥)? ï?¤Ã?W˦?AzL>ä7>ˆGä>Ù6Ê>ø°2?—ÚL?ÙEM?×A?Ñ&5?Ï°š?Î6"?ÿ>õËE?+B?uñ÷?šDê?Ñéÿ?ÇøÔ?¸²ì?¸À?¸Ñ&?¬z¹?vy?„ÂS?¸Ü2?± +œ?rhˆ?pæ:?‘r~?–L°? Yæ?S??Ãw&?Ç>?ØõV?Õt¸?6œ?$˜„>ÃpÌ>½í?7¸;?A¾i?>j ?;@?ŒZ-?ž#?Ç05?Ó7??G½>ª­?w À?¨šH?ª`Ù?¬$ ?µÌK?º·?ÞÈË?ùt?ù'v?ù:?o#š;’»?8ÎÄ?µ9?Ë‹‹?ãlu?¢h?E¬|?–úQ?â?µMÏ?Ð?®Ì?Â,?û7„?í@0?¼€f?®O·?vC?yéb?|©M?kiŠ? ?|¼¦@1„²@θ>ûÛ¸? Á?X$ˆ?£Â]@S+s@6‚°?V™?HÝ[?üH9@™@ºw@[v@…@ "Ö?—¯÷?ž?)3?,2?2"?<æ»?Ë É?Èò?½°#?¬äE>ãœÚ??»L­?¥{A;ŠmÀ>ÓS?‡K–?^O?­•,?ªêÎ?±ûù?¸‡?í„?àÙU?¦€3?¤ØB?}Ÿ†?šyõ@Ê@??åÚ?÷n?6Ò?hÀ?çÀü?å`@«â@rœ?ݨx?àü÷?×A?Ù.q?è '?ÎÔ?‡ÎC?QâX? !Ú@-Ý@úp?~`ó?zb?hîœ?9, >k¾Í?[68@"ÇÔ@%ˆº@1>Ž@$k@ jÀ?ê7©?ži?ƒµ>þ¯¦>þµv>þ¸X?TÖ³?½²4?‰þ>»ç?X‡Ì?Øuñ?Éä?¶Œª?üþK@:£@wF?¾¨œ?ñ+¨@êÛ?Õ°b? `ÿ??®z?~û¡?€JM?‹™Ô?¨Å«?¿F­?«œ·?o·?˜dw?£¼;?]Õë>ý¶¸?böí?›r,?˜/? &û?« É?¡ú?ƒä?[ç³@”Ð@HÚë@*¼Õ@øú?ìÕÂ?¿[Ž?˜Ñš?€ô(?ªáœ?Ä=[?|†ë?6I/?žÆ?¿[‡?¾?Æ?v-:?+ZÅ?š-Ô?¡ø?¡n?…IK?M–T?9—Ð?&þ´?@W?’m.?¨OÜ?>?õ%?žh?¢©¤?S­?+¥?­æÊ?Â?Ø?óB?üùî@¡@ûª?@­M>þðw?ý@ +˜5?äѲ?Úd4?¯€Â?¨v?ƒ3à?~Ñ+?Ià??ž‹?;•?6 O?ÃŒ|?Ðv9?Á?ÆÏr?Ýkñ?ârà?ò‘$?õ >Äø=>pÎ?¼ha?¾ªG?€²*?‚”Õ?r?š6ï@x@ª´?œÝ'?¢Ÿw?à}?æ{?/UÆ?CC[?ø,F?ôFA?;L~?? +Z?˜sç?¥ûÂ@3z²@,?Þl?Ô,ð?•f¨?…Æv>òô>©¾Ó@yD@ :?ôz ?ßäì?…÷j?„a·?^r-?FO?­\Q?¥“£?}{Q?³@ ùŒ@[à@VÙ@"@>@=ð¤@/˜)?”šŽ?’?˜›?‘SY?±¸¼?Ê1@,3ä@¿}?±ð?}>ôí>Ühé>®p?<‘b@6‘4@1I¾?¶Ëw?«ÒÒ?¦É:?NÛ?Døi?J­Ì?¡©G?ŸÔ¥?-|?9üÜ?ÔŠD?ÞK…@i¨@F5@*iÒ@,˜Ã@à¥@ »@Œ…â@„ä@Ž-@ Úa?{„é?|Ô?Ž>Z?”R½@#š@j@mr¯@kÆL?Û²º?×…H?¼oì?¼4’?ÁCç?Ê8C?þ1?ñJN?Ôo­?Ë,£?ú†Ù?úÊ"@s!@ài?‘9Ò?zHå?”÷/?ž(™?í@U?úÑ@ ­º@¢ò@·?åîç@!Ž@*¸I@0@÷?ú‰¯?ÜÛ™?é•Ð?óë´@‰¢˜@«+d@‰= +@k[e@„tÐ@Šl_@s<ƒ@^­Ó@)¢·@þO@ÎH@o@ù@Gªw?ñ›>øCÉ?~N‚?Ègƒ@(@XöM@AL•@Ú˜@ûÁ@D+@#1ü@JOñ@S} @nÉÍ@D®Ô?¹q ?Á2?Ú¢!?͹à?®:3?ˆd?âXJ?ð`Å@1üž@0€à?ç‚®?î66@Úº@¯Ì@g5Õ@b¨«@‹µ¿@‹ZB@SBô@AMP@)uÍ@'Yþ@?xS@>R-@(Câ@Ъ@Ù÷@zÛ@µ@*g¶@ i?·¥ª@ +cö@1˜J@ ‰×?·Z1?øHJ@-[w@!j@ Ù@~r@xÚ?ÙaŠ?ô&ç@gt@m-@5È @1"@[ƒ¾@RÁH@TªT@NÛ?üê×?ÙZQ@$]u@3Ž)@+‰[@"u@‚‘>@ª.ø@{ O@Üß?ý_Ý?µI$?·.–?½•@ KÑ@iš¸@D˜½?Ûó?¹»@4¯ç@4åÊ@<¬b@@rO@L#@6@ETü@NJÃ@9¦@5ëI@̾@ U–@:û@Z¬Y@-4@e@ Rì@S@¿@I:@T>@&k@"Jš?îŸê?ò;Ä?îeñ?îTY@‚³R@ty@1á·@/KÙ?ÚxË?¼z³@`G@7W@[ݪ@qB‹@<+>ñ? 7á?MDÀ?Úß“@i!(@?O¥?@ì%?iU·?ÑÀÌ?Õì©?ŽWy?ƒ…m?~MÇ?uŽ«?Y…>ëv‹?jkn?¶:4?Í´T?×8K@ý£@h‹Ô@Wr?ê• +?çæ^?ÐÖ¿?Ùš>µ±ùE&?*És?ݾ³?ÎÚò?äË•@º,@8í@í™>ùK˜? +‹¯?/+?Ët?ÕÞ?Çx?Ê6 ?qî-?B¶ +?€Ç?ˆ>F?‘jË?ªs¹?ÉÁ»@ÃŒ@z—?ý”C@¾ @¢æ@Æ+?OøÊ>‡  >¿õ“>îÂ?ô£?GN/?|§*?ù‘a?íxá?Å®«?ÊÁ?¿¶±?dž?QÌ>â’€?ë?ëýv?ÁL*?-ð¢?Wt©?®¼â?¤0Ø?åïy?ËW[?¬„Í?©: ?ŠC»?ˆqó?ñÁ@6– @ô?# '?-´Ê@ í¼@ š?Öjr?ÔG8?œ~Á?iŽJ?ƒu{?ž?åUö@UM†@KS?ºBØ+?Ê?ÁÕ«@þM?ÓÓ?‚àI?s“?š6A? 4?fù?gÄ?š™¦?à j?°÷†?ÕŒ?cµ7?Z?E>Æö>ßH%@$]£@eü?¯™a?›Û?Úu­@Øo?䬆?²Ec?’<>å{"?ºô?74œ?\)È?Ã}ø?½í?…;?`ãà>íP<5•æ?_›®@ &·@¼G>«ð>ÝOk?3^¡?A„ ?]%–?b3ò?¸ªž?â€&?»B/?—éf?Šæª?1¬þ?CEº?cpu?c˜Ýíx€? $?QŽ´?VÆ¢?¢%Ô?­Šä?fú`?g6Ú?tù?j¥'?…ƒ†?®x?M{D>èÕ(?WãZ?ŠR?z½’?j±?൅=4»>nÀ‰>ié'?­€]?¬¤„? j—?—5<•RZ>ŽÚ>µ¶V=7¬°>PÇëÎÍš>Èt¦=ìki?³v?N¾?’â÷?17>-=€õü?±l?”äì>É÷ò>»">Oó´>AžÁ>mQV>|7ý?$¤ö?44Ì>±Â>u€–>ÊF?>ì=g?€;¦?¯õò?2ÝŠ>6ýq>ì[X?~?lk¡?lq»?lvH?^>ðÿO>öÊ^?±U¹?³:?{Ûè?l¯²?oà?y]?P+$?={0?}R>Ù=>J¢!>4çü>ÏÕø>¯äÑ>‡ë€>í!>ÄŽu>õÃü?šor?—§?BŸ?5¶?-R?!Úp>úâ1>í¦Ä>}™^>ñú>y¢>“ÿ>•j>©>‚[½>!>ĦÚ?n-%?Jøà>¸ù?E ?¾(Í?¾qø?Y>K?Z¾·>ú>?>>îÈÓ>îÕ[>eCJ=þ3>¤Rá>àq?:>|ð?oá?tŸ¿?¤ºZ?¢ÇG?©·õ?©S?([?¡ü?H??RÝë?? ?K‡$?"*«>ðÎ ?8YE?pô”?Jbå?£J?U™v?£‚"?‹û=?8é-?m«=ýXÊ?q±?q¿¿?qØ"?rbV?‹a?y:?ŠB8?‹þú?­ô?µÅ°?ÓJ>]Û?R¦·?”J?« Ö?¶Ô?`q6>Û*?Zˆè?¬gÌ?šªu?t‰È?JD]?t>Ó‹=°ª°=ó–<>u£>¡x†?Œà?‰A>ôo?ÿÉ@ +%@ÌÑ>ç©Ž>èÄ|?šyJ?¡!I>âIM>†?[ú'?~-Š?t,v?u˜?yv>?‚r?Šßw?•Á?¨ü«?¶÷ø?b(>®Žv? ?;"?œ…ª?ù®=?ßÂÙ?§Ç£?­9_?³z?§ h?~Èl?xŸ?w•?yUn?vÅr?VR|=Ñ …=û <=œë†>IÊ~?ê!9?å÷Ø?œ_?ŸÚÞ?U$ƒ?LÅÀ>©®æ>”±´?f„?wÞ?˜bŽ?š})?˜ÖD?—1õ?Ïq[?à•J?¶ÀÎ?¤Ú]?…xq?x’Í?‡D.?‰Ñ’?ÂV?ئv?༤?ëíñ?ïxø?ó¯?Š?>ùˆÁ?D]D?U®?Âl ?ù†°?н[?§Û?©`?­·¦?º6Ù?Ì¢8?ê®g@iç@( @T-@"Zy?µ!À? .Â?{°ƒ?¯~ø?ú†š?ôµ¢?ò ¡?¾ñ$?*HT?N>ŵ±?ï?—#É?®ñ ?ñô›?ãòÔ?¼jí?™ï7>ûUš??ô?»”i?¸ù~?³=Ð?›óe?R)f?MϪ>ûÅ)?q©?\?oûˆ?µ ?ØË:@ +ƒx@¥µ?ü*z?ìG ?» ?ô†@\Ò~@AÔ(?¤Ó¼?­?¼nØ?Û¨@ƒì@ >?â€(?áI?Æê»?£ÄÈ=¯`>hN?|û?|ä?w¸w?šK @k´@~ý?‡¬"?“ŽÖ?½úÛ?Ósð@ô½@Võ?}t|?}{?}„Õ?•©D?÷6?Ï:>x>Å¢D?}½!?ºˆ9@OlÑ@A+?ýÝ?àÓn?}ë€?¯+$@$s¯@1^b@cñ`@NHB?÷ç?¹ï´:¦ü>Ж¨?ÅÓ¶?µ?~F8?_gÏ?CI?(E%?@0Â?—ÓÜ@Á¯@Èî@6—Œ@'÷ @ÌQ?ÙB?>vK?+}3>þ•Û?^7œ?·™¹?Ázm?î†á?Ÿ”ý=þu$?Tö„@”ý?ç"¯?¦O6?Èc¿@@$?És?1?NÙà?Œû?€t0?¯¬)?–æ5?~åÌ?à–?ŸI?–1d?“Œ¸?ªýÞ?¿8Y?ÓÌ?â¡,?‹~/>ú?“ï?ÚY‹?ˆV¼?  y?»nR@YÌ?ýö?áÚ~?ÕøÈ?ɯ4?•‘2?r¦Ü?¦›á?¿Hß?¿Bª?½Ü3?¾Hý‡n?%³?¾Ä?»?§–„?¦ŒM?µ_?ÄLN?þr @c,@°B@ó?¨¦’?±K?Í÷s?¾óz?|òà?¿?$@†|d@…:œ@]ÊL@B·Ø?v©Ï?€Õ¡?¥7O?ªä?¥Ê?«Þ?¢É{?ž“Þ?[Êr?…Ÿ?å»?Ì#T?8Åä?1q??Å? +ƒ?V7O?IC >Zi£>м?Ž«×?£Ö@>VV@=œ@>Áƒ@?kÚ@4U@ q?°‡j?´_@ôÎ@ƒû@1L@/0¢@6 +¢@8ëa?Àäê?Ä®Œ?j÷Ç?|§˜?FbÝ?:‡ö@kVð@pé²@6ͺ@7ÀŽ@;$@;(Ý@qŒ@qt?ÊX?¯Ö ?¬ôª?ªÝ?€kž?„?µ?»]æ@z­‡@Š½™@~*ª@y‘s@EÂ@4G@3M@5ß?è /?ºç†@‡Ì”@«?Ì@XQ‡@%F‡@ªÙ@!¦_@—#@ @·@I`®@fÍÙ@4…½@Ô?Ö3?‡•?^&?"ò+?ŠXÒ?Ð3=@ÂX@Xç @K¿ @9Ìõ@[ïô@†õc@H`¿?°–N@ + @i?—@Dyp?¹a?ȶ?÷¨?óœF?ÎhC?¼ ?ß½J?à-@ 6õ@ (ö?›?ŒN?¹ÓP?½G>@£Z@¢yØ@‚þê@‚­,@>ü1@:¾S@.Ÿ"@)Âý@DQ@Sdü@tˆR@€b@@¹Ô?èÀ´?¾Fî?•Ö—?€  ?uÇÚ@Iiš@ŸJÿ@s¢@"Où@hp@#M@&½@)_@5ø@^=@6+>ó® ?E%?]H? Þò@_?úÖp@— @TZ@’S`@‘͹?ö‰?ìá~@* p@,fÇ@–õ@4K@7¸&@Kwº@65@##Ð@Iµ×@mVL@pË?@m_6@MÖü@'D®@- Õ@E§a@6í&?ü •?þmÝ@Xž@?V?ï €?ù£~?pp?pUÓ?ù»Ê?õ;³@[h™@j¿_@‚ÇÖ@‚KÖ@Kße@3­^@K@2u?ö§O?ÓÕ]@ +~š@IO@/e?Ï y?Ë¥³?ïK[?ù¿@+ +S@&·?ÙÇ0@]¼@ˆ.@¡þ?¯”?Ü.?Ïê?ídl@CA–@~è@?ÿî?ê¿?`K=Œ¶F?Z­Å@>ç´@.7b?’[?>§?âÃ=?Ú¼?ïÔd?à¦?±>ò?­\Ÿ>ÑØ<ívX@ +@] Ü@¬©?°1´?À‚H?ìÞâ@¢Ë@(„@a"?¬…?–5â?k*?fbÞ?£?òÒ?º]¤?é‡H?Ý?âÒc?Ø!\?¦µu?hö>–˜‚?È_@,Ëü@,¼—@ >¥@?ƒõ9?h<@¶l@ VT@T@ç@ +e?ž8?§óÔ?lŒ?gç‘?zá?‡~Ê?ž­a?™Ú@@dæ•@u Ï@á?š@ä?÷&?j‡´?+·Û=zV,>—[@Æ@ +_'?— ¼?’Êm?<~¢?æ;?»¹ž@ ¨¾@yµ@'oW@#Ÿ@+DÙ@*CD@{ñ@aþ?aª?–xB?žÈs?¡…š?¯£|?«C?þ?cP?ä?öWÐ?øÛ?Åq?À:?ù!?¬(?&>ÜT,>ôX +?{b?Þ>â"á?(ë?þ³?ùZG@(ün@:ì·?ùMÐ?´ÿ?æ¾ @¾?îÙÃ?ëÙg?å<àÇ?5.?Ó_^?’Ãœ?3‚?ŠÎm@7«@@› ?>ªÿ?I”Ÿ@ y@%ña?ãƒ>Kb?¿‹?™˜?·Oj?»ãÍ?®rx@„«@áÌ?¿£š?§®?T€¸? Ë?T0Ú?†é?Ì“?›?’õ?’ÜR?ž; ?§N‘?«äk?£ÕÆ?—‚’?ãŸ?ü–?Ò¨_?_/ö?^Ì2?©—>ä/ @?@%ë(?¬8µ?V§s?‡Ï-?›_ÿ?Ÿp?_=†?_nû?߸?Öh‹?Ê“w?¾ÀŽ?†Kd?`’3?ž=¯?¾:?†-Ä=²LÀ;å>ŒŒt?¨i?ÈŒ?ÏÏà?Åxó?Ì6?Ü¿?ç¹Ù?ÔBV?£äy?šc?µk[?£«?î4@¸?Ÿ@ö?`ËL?+s²>àš?"[K?ž9?¥=ƒ?Ùæ>Ñ« ?\? :Õ?O¶†?bš?—‘Ê?²à—?»âO?·‘?±Ò?Åö?*>7?¹†?u§>ßd>Æ\@ /@ Ÿ?ÑfÈ?´ÿ?Â4ÿ?Ïi?ƾ?ªÁT?”fÒ?eß(?[V¯?'@¤?4¨+?BI?O˜ª?«½n?­‡›?,Ð9? ¸0>ýŒ$>è­?™g?ÔÜy?œ§¦?^óŸ?hä ?_w ?&¡»>™‚r>ëËX?×[?vŒ?Sï?Pä<½Æ> Ë?TV?F¶Ë? 6?ç>±">?#= ; +äp>°¾Ó>ºØO=†7«=ÿÃ=ƒ ‡9Yð@?Ë@51”@NT@8g>h‡ <µÒÎ<©×¶>t¾M?$#>Ùä¶>wÒß=š'?„t¬?€ˆ´?kä?i¼?UYÚ?1v]= >É)>Ê$ >~Û>„eü=•h?\SÅ?Šú ?¥?¶TÅ?}}|?"‹G?›¼>ì=ž?:ßÿ?‘c&?€O?5ð»?,-Ì>ØØc>Ý´Ö?6ž?5¶¹?Æ•?aÜ?S—?Q¯ž?%U–?×Ë?*œ)?:"U>˜±.>ì8R?l÷}?7$>¼po>ÎÅÞ?Ìh?P›ê?æ\?ãúÉ?±ýý?²šR?Ÿô´?žtÒ?6ƒ>íÖ?RÜó?aèï?LçÑ?LE>¡¢¶>tŠP>íÿ7?g[?SÈ[?"ô²>=­\>2î†>'þB>Au>îu†>ó J?Ù%?âH>ïÎZ>î”?¨ç?º¾c>µº©?5X?o&s?o4Ü?oPÉ?7D&>õÅ?%sß?b,™?=Œ>ÚÛh>à9?(>ø·E>Y<Ø>‘´Þ?´?´>)ÙÒ=áœù>^Œi>‰? ?'NÌ?=.?GÀµ>ýàÏ>µ”é?.A?q ?^Þ?YÏz?S—2?3Àc?&¤ý>ã¹æ?¨à?’í+?•5?¨Tý?£Î?²–?µôâ?£óá?¤Ö?†À-?ˆp`?búû?YWú>Ó¼k>o·?~qZ?®¯¤?“g=ãé¨=QÃÏ<…p ?1#?¶læ?U#<‡I>©ÊK?`Ë?yóö?ŸÈõ?‡Þr?ã?Œ>ôW?mÌ?ºÞc?¿•·?'óN?"³?Ú|{?ÝÕ>ŸY>S¤?ÜËb?÷2ï?pÒ=?;n ?`?aÉV>‚z??è?ŒLq?*>M=Vþï=ÁÔã>'Md>£¿? ¯å?7k?~v?¥YÓ?ótõ?Ñ2?vŠÔ?ŠrQ?´©I?˜§Ë>Øq’>Ñþw>Ë„h?Ek?ǃ?Ð)@`è?þ"@ +@ +§K?Gĉ?D0ì?œÊü?œ°j?™Ët?œ†e?·Ù›?º“?º‰?º*g?ÜGÁ?åL?®)¢?›ú +?½Žw?Ææí@ ¥Ä@ l?ÆÁò?L?€/6?y &?¥œ ?¹ß@(@ßû?£«?)¬¢>Ö“È>„g²?ÞG?75#?‘Cà?»]\@&Y@%¸@ñ—@Éì?·éË?6ÿåóD?C›*?¬”3?ÀÎÑ?ã/?Þç$?̯·?É ˆ?Åll?˜¤?±I?¹"Ó@X„@%ö+?ƒ] ?_sª>û‘p?Z‰Z?Ôk ?¨ù,?‹#?KÝ?“Á¿?ÕvÏ@I)”@@ +ù@ óç@Q[?z®ƒ?³Æ×@3¬‰@½Ë?|_Q?–È?ìOð?åš«?®T\?¯Ò*?»fr?Æ=P@]?á¦o?sª?y£’?~gQ?^ëQ?ìo? r?/ ²?"p>ÃÎ>TX>¥‚š?dué@Ni@I{?üM?á–ý?¤¡ç?©Ø?¾#t?¶ïF?™É?•Vo?™ ù?¹”@ +ù@;}?ë`î?ÉcÈ?`ãH?´³¼@.œþ@Á ?eÞ?-»ç?si‹?SñŠ>ûù ?©@i@š¿?¶>d?žÇ?ev ?˜a?Ý‹û@|®@*b/@ áÄ?ÈV?ž^ê?*`4?V8H?|a?t5?kûP?«"–@?»<¥>þ”g>þ—>þžß>x-?»D@Pï–@<•ô@ ¤Ø@ q?¾–¾?»Gˆ?¶,?œ Á?‡ñ[?„tØ?~Ð?¡Z­?¿ ü?æÕ?ÿî´@>}@L?Ø‚]?¹½Ï?†RZ?B Ó?Ñíø@ ›K?áK?¿3­?•&G?k6b?s)}?~ù?Ëwm?õbé?9]? +D£?˜)?¿;Â?¿;›?¿ç[m?«—?¿,ý?¿'ª?¿'¤@mý@ȱ?‘ßx?—Ž?ðž2?ø9ú?‡œÀ?~È?Ò©„?ОÆ?‚:?~¸å@:·@:€É?¶¨L?¸œ¶?ºÒ¹?ÄŸJ?€ + ?~‚?.ès?*Zt?Wþ?g=¥?þ„«?øÜ?Q}?G0A?³q?´Ã?‚™G?„Hâ?¹ê?¿n$@®@ +‚4?®aR?ÅÕÚ@šÞ@ “V?éZ?ä=?ʹ„?»KX?xk?gÿ™>ŒJ>ÝèÉ?¦®#?µÏE?ýæ(?ö©|?Ì·?ЪÐ?ô4°?ôCA?ïHÆ?ø›?þ©¡?êI¡?†«?«t^@t1@¯>ývá?ŒÚÎ@eÊs@Eë6?½ÿ&?ª`‘?6ü?aU?½å#?½Û„?½ÔÛ?¬¾?Tbõ?‚%æ?ÞC@?ÙP¬?§èì?°óÃ?üÏs@üä@{>É@Qož?®?yþ”@0>@!O?àn»?Ò™Ú?ª)V?º}5@”Ú?ù÷Ý@ Ñœ@5?šƒÁ?žy?½Ê?¬#Î?"?0‹?Š±?—ˆu?ôF<@—…@WÔ @Wʽ@<¯Ä@+8?:Hƒ?‚†V@) ›@l£?áÐ?ï©#@(Õ@(Yº@Uc@ù¬?B¬Ç?U;G?µ¿?¡6à?ïf´?ç¶Ï@$Ú\@*4¦?ôÙ¸?÷E1@^›@4?ÔeR?ß â?¾PS?»™V@K^­@Kï~?€™C?Ižª?±¤Å?»U^@N%”@gª\@OªB@O‹–@MÛ @S„š@1ÍÈ@%~?è³?Å Ø@$…Ý@>ˆÙ?¦;k?8 S?¨€z?Çùc@,V~@Hh@F)@N&@­å?›¦?Ly>ø6­?oå? ÏÓ?™Rñ?‡M8@óå@R͘@GäO@9r @GØÉ@]ò­@JÔv@"CC@1f@XS@K%Ú@'¯ã@$òê@*%‡@+WŒ@El@@BŒØ@(@a{?¸Ün?μƒ@O¬Q@Rç@7ä§@3m @IC!@Q€F@]ÄB@_b{@2§”@,”½@ +·@õ@?·¥À?«>=@Q¿x@q`ç?öjU?¡ƒz@'’ï@T?óDg?t¤†?Óÿ@,T@PYR@|]@W@,s@5Òu@Fç›@HŸ<@J…@%ïV?•ñ?£í@ÚÕ@Í$@hç€@mÃ5@5Î@3_@báÖ@hb¥@.†»@ öl@ 1²@’³@ @„¨?Íaø?¼h@,‹ê@S¨@@8Ë@3ºÖ@5G¬@8)ò@!ã­@7)?ýú?ë*½@ð +@[¬a@Ep©@ÑO@ç%?Äù%?µy¢?¥í©?–]è@aœQ@o[$?êQÞ?ÔõJ@5t@P©“@hÍ@kíg@#'×?ïî@@#Î@(…~@'µ@%•c@0J@EÓø@gÙú@¡Ør@Œ°M?›ê?­)0?¹ýÅ?­¢Z@.¿¢@2eš@Ö?ò®æ?ìJ ?íQƒ@­•@YA@@0ø@hø³@&Ø,?’l)?œ„Þ?ÖùÐ?Ì$ü?lD8?|s?øß@ˆÆ@Cä¸@IÕ?©pd?næˆ@ ú@ lR@@¬/@-:@1æ!@‰f?n?»I@3©½@>[z@5‡”@@Þ?xšE?iåd?ò…–?÷ Ç?ËI?Ã\¼?–#Ê?iB@?©¨•?ùé¹@Å¥?äy?ÝZ=@¸@çq@= @*È@ßh@¬j?Ç‘?ÊÉ®?±Ñ?ˆi8?Ðu;@¼@y¸?°‹Å?µV?Ù^«?ÓC¡@†@ g@£x@4”@ +àd@4R?Ò ™?¤ÈF?ðïì@+X@k_?>¥{?WŒ@"Ž@~ò?³qœ? Ç?‰ñ?e0?¢*Ù?²0q?vq? p¾?µi³@@vd@5Mg?ìö4@øß? »g>Ïݳ?„àå?Ž˜v@å#@D¨,?÷gÿ?Ñ ?ZöÛ?ã ?á-·?ɶZ?ÎË"@'ûé@7Äì?‹rË<æá`?'ò±?—¸&?šâ#?§×x?šTˆ?°O?Äñü?iJã?a«²@3ø÷@_ú@/?é¡]?óXD?ó¼8?Ü?¨Ì?§ü +?`ó™?`Ý?•>à·D?>S?±B?\G«>„à>æù–?­X!?´È?*M‹?N‹>ü“Ò>ëbË?ºÊ?âUy?Îij?À©ç?À@R™@Ðl?›â/?¡qô?p•Ï?dÎ>?X~½?C»¯?,@Y?"ß?l>B?ßY?ÙÎÝ>¿_¸>Ö +s?Át?Øl?í;?òtÄ?í³Š@V’?ñû?|†?qؾ?¤wQ?¥OQ?Y"}?€×,?•ª2?Wr?ÍÏ>Žb’>ÞÀ2?_0ï?b@ +ßA@‘?çå‡?ßKv?Ôàt?µÁv?Ùyƒ@"dÕ@»?¤ )? ¡è?Ž½ë?yVø?Ý?ú6Ã?ä„?Ê—û?Ú–7@>!?ÑMe=Ú >ƒU¼?†¼?7ÈG?º¦¤?˼À?ªHž?‰·?l[?]š…?w ?šö^?…á>ÓzL?áC?`1à?a½ô?h´Þ?boÿ?µlc?Ö­,?ÙÄ}?â–Ã?¿8a?bâi?ˆ‘@?L@ <îµâ=Ÿ?¤?ªVy?ä«?jòÉ?» ?Gs%?dåª?Š§ ?«ÿ0?¶û?ÆêO?¬F©?,í}?ä0?Ò8?²·?ÑDÕ?å¥w?÷õó?æ5¼?ƒ×ƒ?/¶?˜üF?â, ?¡R†>õ|>ð•r?n­?F ?“¯? q?™hÙ?”V[? [´>èÓì:º2?m] ?n ï?“±?¶uÇ?Gñ?J¨-?lÝ¥?gl(?\CÌ?P¸¿?uZ>ïmg>gª…=ûÆm?&|î?mç?žÌ>˹=»“Á:ÆN>Qú-?7Xë?™œ$>€Ø>Ð~»@B6€@)?)|>Ï?FG?Un?kÁU?c_¬?_m>?&ÜÜ=ùa+?=¾Ê?0V.;ó¾>@E_>B.Þ?SŽ?¢æ?¦V?l"?Q?KxP>ü·¡>‡*¦?k‚Á?Ên­?¦ò?[Ba?]Pl?lQV?`¾0?(Kl?W8;uò@?žþ&?£nt?²?±zÚ?'«ø>ì¸R?ë!? +=?Û‚?ç?i?à >à•6>(ÇÄ>Âàn?m(?rjô?Šèk?Œ¥¯?¢Ë?¥ê—?B›_?;˜?®ø¾?½®?.â™>í¸X>m>Z«P>º¼¸>ñ2K?$ ?=t ?Y?zæÔ?nE +?Pj>ÐA?NS?¦³$?¦7‘? +q?µ™@ +EÊ@ý&>ÃœJ;©Ô÷?2uå?oB?o''?o8>Õí<¾ß>€¥ ?Op?Rn?¦nî?• à?^¯ô?.õ@>)¿Ì?´ ;?²Y?6†÷?2Fh?ý¦ø?ÿ);?«”Û? ´Ö?Þ>®Ð‰?¨?Ÿé>à­Ù>ÒA‚>²OS>}â>jÞ>vñÂ?DCå?Ê!7?¸–?œac?ª‹C?ÛO?Ç£>ñà}>óݹ?+α?1Ó>€áN>]c>ãFÏ>òj×?‘I?¤x ?pÌý?Z0?¦?²£ö?QŒæ>óø?=܈?te¹>ùc@>Ð~?s|#?xÉ~?‚¯Ø?¸H?Ÿ~j?…‰¾>óó"?@žŽ?ý?îOÿ?¢î¨?›q?‚©ý?‡ˆ·?vn?1µ?ä„X?ôÌÞ?ñhÀ?ãâ?Žåô?†‹p?.(ˆ?È]?ÎŽï@ʲ?›ç’?8ê£>«;Z=Çß?m ?c4Û?v¯Z?9|?˜8å?µ—?„Ç|>÷z‹>úÑ>ÿ^“?ŠZ?Ý?nZ|?ܾ¼?ñto@W€@¬–?8iÈ?9W.?9%Å?‚³"@%‡@#SÅ?éàc?ççÓ@õ@ +3[?<0Æ??YÅ?¸>?ºM?ºB?ºT?§¡T?§øÎ?à'M?éš`?Ô°µ?Ö[ë?3 Û>¿R@n·@ÇS?ª„\?xû±?y;Â?|Ð?„{?‹?¤NŸ?ª?7lI>Édg?ÒÚÛ@HU@5@œ?@-õ¡@;j?áÈb?fBñ?}^?‡ä?­Eœ?Ý;Q?û:_@ åü@¸J?÷©x?ÕQý?©Ä6?žK÷?‹êÀ?Øl?“>¯?ÌŒ˜@úe@H}@"IC@'C?û,U@ Ê)@èz@0Ù?µüV?ÙHõ@ Î?ñÿ›?ʵ]?›N>û¶a?6 +p?“g'?¹œ@Y®?öFA?Ð$?¼s¼?€¢w?´I÷@ UÝ?ý2Í?Â1r?›ÀÎ?#ÿR?˜@ͨ@&¶?@@»§@9¥$@é?ñ¤à?º£?PŠö?¾v?Îb +?ó¡‰@Ró@,_Ö@ˆ?QÙç?“)n?óÜ@&Ø@4¤T@ee?™ o?’+s?gö[?ŽU.?¾£?È ?àB”?ßÛ„?׈£?çŒT@ è?ÿÚ?ÏÎ?³ m?k¿ú?…‰~?´µ$?Ä™?Õd’?†Í<å;Î?hè„@$)@?É+?ÜÞY?ôâ?±$Á?ˆO?™õ?Ïß@õQ@)…P?û“?~Pï?—e?«ÏS?Êy?û‚e?ÐÎ?¤ª?™C?‚Œü?RS ?#Í??b1?T¬Û>ûÈ>"þ¸?I¬l?¸×˜@ ø@;å?²”H<ã†ø?Œ=;?ùqŽ?ó?;?ëým?Žâ'?Ný@,°@;ȸ@žP?À{t?Æ®x?Ìà]?ÌB?Âê~?[ãò>þØz?ÀÎù@Ô9?ùáÉ?éÂa?ÏPD?Ë{H?® +Õ?™_&?«ý?¶i¿?ŠßF?uÄ?«¼?¾³µ?¿19?¿1M@(ˆ@?.?Ýï?¸ë ?x^ó?]ÝD?¾ÚÞ?Ó/K@a—^@uà ?±ÅÚ?q‘g?Õ¬>þâÅ?çãë@³@¡ò?þÜp?R[>Õ¡?ج?ñ4ø?¤m¡?£4æ?¶ÿa?º)E>K_@<Îñd?´F?¼–?ÃÀ$?Æmn?¶FZ?³L1?ýI¤?þuÖ?­d?© ?È õ?Öþö?£´]?Ÿlÿ??(¶?Oçî@þÖ@”U?PœÈ?V#v?I‰?R»?â‘•?í¯r@L@â–?&*ò?H@õ«@ý@? å ?Dk·@!Ì?ýV8?²ð?·áü?òT@ +¶Á@RcÏ@7P?ý?Ÿ¹T?ÀÝé?—•>7Æ?}äB?š«h@ œ@ÖÕ@¤'?ú ¡?¾M‚?¤R>ý«¯?Ž€[@]m°@2ñ?I?G§G?ÑDt?´¡>ýi=?dÐf@Ç®@jÆ?½öl?©Y?C0“?ƒß¥?ø˜?àªÚ?¥^Î?™Á?Lc?H1ì?_ë?ªÃª@4z@(¢m?øFù?ÞA1?4–?†Æ-?s$N?ˆ?¥sT?×iÏ@.o@¾7?’+¸?´íM@Aš@R@/;(@0Û?¡}*?®1?ÓX8?Ð _?Ân?¶3Ð?°ý×?¸\Ë?Éõ?ÃŒL?¼µú?ÒÔ·@Åg@?«ž\?ÄB"@<|!@9G@“_@s@ Þ.@÷¢@~ñ@i\z?ÆÀØ?Å2w@9³8@@…·@+ÖZ@(øö?z–Î?€hÓ?Êú’?Å×.@;šO@:?Ï?õtÇ?ò"¬?¼cv?»Ù@z(@#Á?ûà‹?í\@@ :?Ç£©?Å÷h@"Š(@$·±@ xj@ã<@NÁÛ@^6g@=@5@8lÑ@k*q@vp@(yR@ +šG?Іñ?º…@Y'@9üÉ@·@ qg?ܳG?·M3?˃ ?ÊÒX?»n÷?Ä[@´ï@B–@4té@Ì@[?ø¥?ÿ÷¤@aè@Q–.@š$i@†ßî@XHû@*Ì?±zµ?÷¢ñ@:X@6xþ@¼Õ@(@x@(?Ø·î?Ðã¢?åϲ@ªz@V±T@V @nN@j¹E@(–¥@+\4@½Â@5:?âÍ +?ÖOß@=}\@7u1@Šw¥@™.x?ó]×?IÎh@ýM@1iò@p¡/@… í@r“@atN@_± @fý@H‹ô@$:Ü@èe@,œ@+@K‹Š@>óx@ …@ é˜?à¸3?ØHD?€l?‡X ?ú|ö@Q›@;›@=[§@*¹\@-t]?è Š?ÕAý@Pl‘@lYU?ñŽP?æ$@ +Ä@7â†@1á@6÷@U†Å@„Š@"”?@K?ÇEÿ@+ýÆ@>ñš@~iu@l)@#)á@"a@+~g@-´§@49ù@4&µ@Ö@í™@[öA@[³™@è?ãe@…"ÿ@¡¼h@< Z?Ï‚Ç?å!‹@G>@ õ¬@Š?í.®?ªõ/?ÀXà@@’@ Ü@Ω?øÌE?œ»œ?¤Úé?ÚÛÖ?öo¥@ÉW@"Ä@2¡@²,?è¾¥?¾à?³˜„?ÃM?ïÉõ@ñE@Kš@Lºµ@#N‰?/åH?FV8?°úÅ?°äÛ@:ªy@9lL?Ì]G?°8?Žfé?‘£?Á½?Îèn?ìŸ@OÑ@Ä@&á›@,Æ7@O(?'}×?J§(?¼6?Ï ?³¢Â?¥jo?É!W?µ[P?‚´‚?eúY?¤M)?é¹H?êŒ?Î3Ç?ÆØ?ÖÞð?àã?åWî?å 7?ŸA?•*?é• @)=@ Ȫ@@«@G¶Ú@B¹ô@Kž@%?®qà²ã?@1­?v Ð?sîø?M ?}¾?äoH?ÇÀ;?¨! ?¨?¨ ·?£ý'?ìÛ¼@ í¹?æëÄ?¸ô?ÀÔ¾?¶9³?½±S?r¾E?gý?_È]?_~Ý?Œ|²?—b€?Á~“?áðj?Å<¿?ÎEŒ?Ì¡=³ä®<0·@ ´@6Ÿ?Õšš?­sM?²²S?§R*?§S°?§R?¦FÔ?fëV?dí?R/?AèH?­¾©?ߧ?ŠÁ_>»>ˆj£?_z?hð=@?ãr@9üY?Ø,J?¼œ—?²"K?Æ¢?¹"ü?táš?Q‰>㛟?<Ì?§¤?§ªñ?Ÿÿþ?©¼?Ù±?ú1?Ëò?oû‰?˜»n?ôÔV?ÍÁN?çt>ô½;?°GŸ?ºŸ?ã°U@‰ø?¿Ðæ?`Ù¿?-¬¡>ÅZZ? ?$í>ý +÷?B|~?P—‘?œ‘?§·?­?D?·Ü'?ßRY@ã?ÏX´?bϱ?mX9?Ù?«7=?A—7?d?m?9¹+?<âª?dÇ%?¹ÌD@ +]ª?Ú³?_+?v3I?1èöø?9WÅ?o?„n¹?š“?ˆ~?„¾?çÝ?ks?f°Ø?PkP?\«˜>ÔÊ>ȧr<õð:>7Á=Òµg?I¢R?pU‘>±ëî>—ñö?Nðá?r>?4cÔ?ë>Ð;¦ñ=RðP=Ïþä>ú¼-?¯ +=ýÚ^=¤¶ +?•÷6?‰Õ6> WC=ï6P?°«7?Qô?k–‰? ò>„È>a‹>¢gJ>²Å>병>ÀÎA=ú>ëÆK>ê'Ó>’‘>‘o?1²?>”>ž¸™>9>â‰`? «?—A®?Ô¶ß?Ãý¥?±Ÿ?d?=œ‡?L†?lFÃ?gîB?7ª+?+µ­>ìjº>ìqñ?‚[T?…`? Öî>ìž«?j,·?‡p?O‡ø?%Q¯>°+> TÃ>Á]ä?2-?*Ÿd?G×Ó?Tr?amª?:Q€>‹ª>Mà5?‘ýk?’õ>÷„>í‡>í’ç>í£¥>±jK>”:¬>h=²æT?·9?Z +Ú?†B$?¡3Û?ŽD?_?!°Ó=?/>‰³? go?Ú3?©½É?¬*Ò?¯óñ?±ŽÝ? b’>îâf?žÒ?²Dã?7Òî>ùôx>ëNÇ>Ý}°?/”?bë6?ÀD%>×;?/kù?0ëM?Ë]?/`?•e6?šßg?eÇ?Lp>×(u>“»¥?I®3?pÄ:>ó\¬>‚_•?™'?5A2?rçá?Œƒk?ϱ@ب?àÉô?B“Ú?h=? %Ý?›µ?G¾?ƒR>ÿÑ>‚]?:ÿ€?@pæ>õ„­>òVl? Ï2?%ð>%‰‹=›˜Z?:a—?nM?n>òóë?°“|?ïo2?§ ?a +ç?/È?QJ?¢%Ý@ .?Æêá?-`S?{¿?ÄÀ?¹ Ý?±¶˜?·‚@?·#Ï?§?½>ôWŠ>í‚—>Úh˜>î “?˜Z?š¨?ýq5@Üà?+U>õ ?}ë}?Žôƒ?°à+?¸@?Ÿßë?›Yé?%ÃÁ>Èr>è1û>õÎu?tXÞ?©=¤?“ú1?y÷õ?™í~?¸*œ?’¦>öhß>ö}f>ö?33S?Žâs?™•?¯v?£!?Vj.?6«>¨Ìé?õ?ÀYÛ?Å^X?Êgs?ÖÚÉ@ 4@í?”ã?Ž“? Ah?¡ÿ1?£¹«?¥E?L/?K½?™B÷?ž²k?i¶?O«@–Ø@%´@1´·@5`?¦–™?xäl?xó?yÀ?yx?y(Â?‚Rh?†!K?œíC?¡E?ñ†ë@ Vì@-©?÷¦¬@&’M@;ZŽ?ÉZÍ?CV«?\:€?x˜$?‘ÛK?Ÿ˜¿?Êt +?ïŒ?¦{°?P¼?Thí?XÓ?§%w?×"7?Û!¢?æåJ?¸×m?ƒ·§@óe@w9@?j-?û8?ü0ã?þÿ^?ûÊA?óÍE@&@6õõ@ø??¼¤?ˆ¹r>ûô?Sz‹?¦`?ž]v?˜×?¼?ä&à?ÚÉ?ÑjÙ@Í @7&@,.Ç@ s?íÝá?XYÄ?Ñye@:¢@ +èP?|~?ËÅï@'º¢@M?ƒÙ@†>@{í@bXÒ@9 ä@Î"?LÕö?j®±?|üq?Ô¬Ý@6–@'}Š@p?ã!s?N™›?.rÉ>ýKï?”¸P@b±@>N@À@Q-?Ì“È?Ûd›?çIT?Þ „?ÜT‚?ç°*?ýzÞ?Õ+Ž?‡¬]?ö=â@Qíè@O?‚Ÿ@?–?…tË?º/?÷Û·?ù{^?þ ‹­?06q?jp1?Õ­™@‹Î?Ts.>½—Ø?Ý€c@ Ší?«ý«?‡Yþ?:þ“?éJ?g”F?;ì@ À@n†@ ”³@#Oh?ûÖ¯?æ> ?Ö ?Í6/?g^?R¢h@œ@7Ki?ÊJ"?¦ÑÆ?@˜>þÐ?äÍ÷?òª4@JªË@J’?‘˜Q?~Ë’?Éc?Ëé7> =ù=‡ÂB?inÝ?vz@J@ùF@“m@˲?…èO?‡ƒç?‰¶ ?’:@02Ì@)·ð?’½?š/l?ßµñ?Ù‚ê@k?ò=??;‹@;í@2–ø>þv6?@àD@Z[@Ô8@N@a!@cÝ?Å•?ŠPV?4Ò?>l?G@9?”Ÿ@,cÌ@4é?‡×?”Ù?ÞêF?µZI>°ÆA?Á>×?Ε@ 7/@|@7æÍ@ „ü?Æ*?¦7Á? \Ã?@?Á{˜@„ÿ@LýJ@Àï?(`÷?†pí?ÿ®™?ÛR?’¼æ?µ–È@J7?á?}"'?±oÁ@,¬@6?ôRG?çè½?âè¢?³%Õ>ü×ÿ?d™ã?üÃ?êD.?¹æŽ?Í!?ûR@j@pÈ?éåò?L?NFÙ?½7Æ?©1á?'â³?lu5?×(¸?æ<`@ ì@/±?³YÓ?µ@ Œ@,HH@ëv?¯ÏÆ?èëà@Do@(ÌÑ@Ræ@gÒ@tùn@FƒP@Ý°@]v•@úœ@z¦O@·%@–É?)õ?°i@ Ñ@h@µ¤@!õ@ù@N7@*…ø@%=¾ +Á>ñº@‰.Ç@Š**@¯h!@ª‡Á@”ò@‡^?…³ã?Š$ @Àý@ 1ù@œ3š@¯€—@ŽÎr@‰œ<@2tÆ@¯Å?­?t¯I@IÓ©@‰‰)@€NÙ@tXö@=»ˆ@ˆ @o f@ž'Ø@}– @3…†@-†@)cñ@y?—ùŠ?‰‘?‘Íw?¦!@ô@a“?»=ë?Ì_(@f„*@bÏ%@iÏe@b‹R@+õ@9:@Ù@¹@,ub@5u0?¾È=?G±@m¨@´T¹@›t¹@‡Æ*@@ÝH?É^Ý@ö™@zE@Y~Ã@!sà@,¾=@4v¡@.Of@@Ñ‹@#R@*³A?ñÉ=?ñ+@|H@„{?ϱr?‰@_®@éþ@K‚H@/œ@ë½?ë +O@¨c@TS@/h?)?–ó@Jc"@@ø@,vX@(é_@ £°@^l?ÖÈô?ÀÛ?÷ôn?ÿlj@Hùû@l®k@V@KöZ@.@Ü@€:?úØ@%^F@wZh@G67>t;>Ã^?°ï…?°Úö@B>â@S ?Ù?°¡?„Bº?k+E?¥Ûˆ?¶ÇÄ?„£‰?6td?µŸÉ@)¦g@1üŸ@7${@&õ~?’­ð?‚zZ@rà@Šè@?œíÝ?Ld?Öˆ ?ô.ó?ØÄq?ÈV ?àß6?ð?áek?ÒyŽ?Ç23?çË?à”Å?Á ?Ê2^?‹‰J?‹Fv?ÓTÇ?öTå?Œ8¥?'Ì ???”+$?¥k?é•??à.*?˜ ?–ß‹@Ý-?öÜ@ ›Ý@ +\E@BÍé@`ÿÍ@)Â?Š6K?iMÕ?uA ?„L¸?û6?žÌ?ÍìX?Èé??µs:?¾ªë?l¾–?)þª?³F?å¸H?Ï¥­?¼}Ä?Ü&}@ úë@c@+:Ê@54?³ ¥?ªÆÞ?!ù:>ã…õ>Bœ›> ˜ä?Hs†?¹”w?Ðäš@ ¹?ðË¿?EO*?0›è?.Â{?û?HEh?‡©»?¼õÏ?ǹÃ?¤;M?‡?¢œÖ@éú@Á´?gZ÷?a”0?ËmÂ?álg@0?P@T¬Ý@ýê?|&?šØï?ÖQG?èƒ@ †/@ y6?ŠýÃ?[¸ù?ŒÆ¾?›V?®ù5?È4ý?Üs…@;œ@"ž.?ä9K?Ã0P?©8ÿ?§ú?—÷›?¾Ã?Ÿ=Ù?vN?“ƒƒ?§ Z?—Â?§¬f?§¨,?Ô&1?Ðì]@k@ ÀU?ýÝë@a÷@F?¶—?­1á?_.Ò?\ ð?ת7?ö)=?Ò³†?±–?²åö?¼‰ä?­J?“î‘?¥gŒ@& Z@–ß?³…?–Eæ?†/?Õì?Þ?,ËI?.¦˜?m3»?e$?ð@0Ù?™õµ?‡:_?€È>!é?!kú?§xŒ?§Ã?¤‹“?–^?$ÚI?=?)ä2?.°O?¦^?›y?Ì/©@ ÎS?÷O·?»"¸?ÌÊ?øÓœ?àS¶?Ëfá?Ь}?Ò°?`”Ê?`¸6?`Èñ?L¬œ?~?=»å?ó:²?à†ô?< Ï?{P?Oc?jê?˜£I?©—¾?¢Ì?®ª!?£Àž?Eýµ?8Â=ÌN=dàä>Àœ–>¦úÃ?¡ü?«µv?ÚŸ?ýtÇ?¯P?^ǧ?>¤û?.’Œ?U8É?<9}?GÄç?—ün?}Ž?¢g??©4 ?Þb¢?Ò¶.?…×Á?g½Â?‰A?ƒ9˜?'Î8>èÕD?¢…t@¤d?ï;k?¯‚?¬òÙ?™Qo?ƒÒh?kM¥?Q=ƒ’ƒ?œìG?ˆbê>£/>}§?7Ö2?ÓT?:Š™?_ÃT?™ ? >Ê=>šaŒ?×?@ÑQ?7¨'?I_$>„TÄ>òÔ>µøÓ?í›?7:6>ïÉ‹>†^~=ÏÕY<™¿£> % >M1<”9m<»ÌŒ>•å™>O“^=®¶@W¶‡@"AL?‘2b?S4?kiC?Qm ?;l/?=éŸ?G ?ðã>  Õ>¥è+>›‰ž>”øÎ>›Î–>Å ;ô>çqý>ëÁ½?jYÓ?t»›?^ +Œ?aðï?€=(?†$¸?q³J?akñ?1*Î>ì{? u?«?MIš?¬ùÖ?žÔ†?Ð$??>šTÂ>œ P>ìm~>ìƒJ>싆>ì—â?–±Ý?´ +„?bÑÝ?ð˜?H¶«?lÜ+?4µâ>ìöG?`Ê?ÌãÖ?«h$?Ã??=?/õ·?+ 7?lå?1ü>íxå>í‰P?Žò2?œÑ%?$­>íÅ]?Ÿ8?à?fÅ?%2?á~?”þ?C:>ÿÒô??°ê?¯ÊV?Ž¤q<ÁM9={?Î>ð >êð­;ƒû…;دp?¤:V?³3¦?!¾<>ïf?Œ ½?§Œ´?=ö P?|U¡?Ò×è?Ën?ʃÊ?©U¬?Uz?mÕ›?•Zÿ?Šf~?MwF?UªÉ?}¨?Žš%?ì×?é?Oð??W ?h/?p¯S?–[Ê?™Ù?•’‘?•xä?«[3?ÂmË?ÿWë@Êí?Ë_4?$õ™?OãÑ?ŒŠü?‘L®?›–r?‰he?6#ª?%©=Çx4=ú^4? ¶? PÝ?‡pN?……é?sD ?r?Žd>öÜ>òó¦>òÛ´?V$±?\7?/àf?-Ì?}ŠÀ?¥o?€ƒ?TÓ?2è·>ó£Y?@«*?›»ú?„ßÓ?!‚†?ƒ³•@ì|?ïѳ?§?‰™[> Ëü?µ±R?­À|>ôÁd>ôÎr>ôà>>ôôõ?!Ùâ?!(??Š ?—eÂ?%í>õhO><Æ =¢O¦>Ÿ²+>Ùƒ>…à_=û©?f²?¶ï8?¸õ?¸ ?–ã¸?mv³?ºâ?©’p?ªRå?®?™c?v¾ï?VDO?8°>÷{>%^{>ÇA•?w1y?eââ?2GJ?ˆ<Î@?ô@´b?ˆî?œ’µ?ÞA?ÉD·?#Ü?5¹¿?ºd?¹¬¡?S4…?HëE@@@=¢>,Â!=;³f? Ð{?³BJ?ƒÃ?xË? +ä?r„@1 Ð@Hs ?,^O>(R?ÀÍZ?ëEK?Ñ”¼?̨€@ —x@0?Ýk†?¹ôê?­ Ý?Ÿ¾³n?vjD?À¤r?§ªS?•,„?‹¸Û?{¸R?Àæd@ à @rÕ@ šÂ@$®@+_#@Óë?ü¹#?Øo+?”.t@ @zºQ@+Ð{?i|A@ X @vÔÂ@C;C?÷H?á®?ÂÏÏ?ɦ"?Ì?‰?òc·@ ƒ?Ô¢?|Þ”?ªÁp?ïÐ?¿ô?xxÞ?è?}¹?“‹Þ?¨ê{?þ×ä@=ñ2@+}@ +?öÚ?–@Ž?Ýø{@iª@5•?Í€ ?cåð=½BL?@vF?Æ&Y?¬IÝ?ŠÆÈ?øZË@>3:@7W?»U%?¢qÌ?Œëƒ?à¶&@;c@ER?àç?Ý÷c?ä_"?§ A?Z±Á?SÄÖ?WO™?†Gü?œPj?³j?ÄüÕ?Û´?¾²>?¾´÷?¾¹‡?– +S?b{I?Vb„?JIµˆ?Åíë@GM?á­?§U?^è'?6Fh?£h†?¾ÿ ??£ß>ßb•>ÎÍ´>¾3‰?UÅ?~µZ>¬S§=÷G¶?î[ @3Ü?é´\?ÍAX?ä‰ô?ó"æ?Êvë?¾„µ@‘€@9:?zžÊ?F†n?ÈÒ?™ž‚?f }?g–1?•¶l?“Ñ|?Þ7?äÚÃ?™W5?š)Ä?Ò>þºO?â?@÷Í?,± ?ûH”?úú0?†‘x?Œ¶ª?~›÷?ˆéè@Qd@Lö?¦;?§Ì@ÜP@ ž?t~u?‘zø?ø£x?ìS+?5’Ó?:ZÑ?¥A?¦Ìl?”É+?ŒëÍ?,?®˜Ð@@?ôDù?~Cz?€èÎ?…„I?ŒÎt?¿Ó–?¸p6?ŽQð?›÷ð?´ç?° ?¢®?ˆz{>þ—?iû—@÷$@ÊR@%×à@ž?@ŽB?Ñ»>ÌGñ?Òëp?åDå?ïà\@¡p@yñ%@\èÆ?ý•?ëÆ`?¾#O?¬?€_E?n>:?Lé?H£™>ýSú?"H?!?ÿ?ÓHº?ãu‚@ zÐ?ês•?}u?¥îO@|º@7@/ìí@'­@ L?Ýú?Ýü?zŸ?ôðÌ?Ò]A?|¤?V[L?Í÷?­Ü?2n?—ék@¡O?ê&?¬Á?—¢?P«ú?}’Z?½D?Ñ$ß?ùÔV?ã*K?Èk?Äu?¦þm?ƒ%!>¾”r>Ôfø>Èœ>½ä?Á?~Y¹@á@Žy@{@Eñ?ðõ¤?ãÚÀ?¼]?å8@FÖT@7_4?ÏÂ>?Èõ)?ÚíË?ܲ?î¦>?þµ•@:U©@+¯×?Ê'@?Ï(Û@ $~@·?€C?‚Éï?¾³Í?Ëĺ@M9@ÄÐ@t¿@êÕ?¡æÆ?ªkd@=M¥@6 ã@9%@<ÆM?öp¤?ê¦û?ÐNÆ?Õah? N?”ÓV?†»ù?‚Ç©@&Ð@9Þœ@é¸?ý[ø@=@-?üòH?ü[ü@?ê³@H¼ï@tÚY@ÊÙ@ #?éÛ/?Ö|?ÏTñ@7¯@h¶‘@ŠÞã@œÑâ@TøÓ?ÿó{?øªü@lÀ@ ›?ÿêÔ@=£]@ƒ¿@Lª·?÷‰@ ë@?Ä4@)k&@ =È?ð¾Ì?¥ç_?À º@ + +æ?ÿÔµ?É]˜?Ïñ?ÿv@Ùß@Zξ@Sc?àŸ„@RÀ@\wÿ@W_2?ü¹x?êI2@Äó@ Yn@ô_@!¹Ò@&šB@)eH@Ð:?ôÅ€?­½?¼ ?8u?JŽ@;$@Cõ@NÓ@NTt@nLà@*è@…8Í@h"@tˆŸ@ƒ>@tÐy@Gï@@’²@"#y@À¿@¤j@*åK@Œ¹æ@…qä@r­ @qøô@-A-@6a:?º¾v?»®?¯&;?£Éå@'0c@<_@6â´@5@¾@Id?@T…@h#}@tØé@84s?ñ"K@Œ@V @:ü?ñ/”@ôa@)@ ƒå?áp,?ÞûÄ?”Ÿ*?…¨O?ð„?ïÞÒ@™ +j@ŸIÊ@ Lâ?ÉÑ`@JÖn@oDA@>à3@&º@4F@€¡@Ù?¼¡?ðU\@/‰¿@Þ^?É)„?à˜@Æå@ ¤@E~@BûS?òQ—?ÿÖ-?î–g?ö<%?Ñ6?±Òã?½Ò7?´”ð@ +­S@.&@>?ìyd?íêz@ò?õþ+?W =?bÕR@(›?ö©?ˆfÆ?KDÑ@«@-ñÉ?ù‚«?ÖhN@)%@D¹6@ +Æ +?²ùÿ?ÏIÒ@5@ u@9M÷@?Ws@Dgå@Jæ@5a)@>B*@‚Ï@ U?æ9¼?á÷W?ú}¶@_…@}f@'Si@=Z@[.@Qðÿ@;e@º0?~¨?ƒæ•?i÷3?gÙ?·FÂ?º,p?ƒ:2?(£O?ð,@JOä@*B?æüä?ÄfØ?%(º?b’Ù@>Æ!@òh?¾g?ø£G?•(>ÏŽƒ?h‡ï?þiü@¯s?õ~Á?à¿®?Ñíç?ÛÉ(@£>@ÕÞ@‡°@8>?Ò0>áëV?+˜~?Ñ–‘?Æñg?u$Ù?j—?ùh:@ +Ç€@ù-@"ìf?÷?f?kÇS?O%¸?8ÂÈ?TC‚@ |~@ os?‰#ú?`Œ]?îh™@e?í—?£‚?­?_÷R?–&Ä@h¹c@vXî@Z^?ÙhÏ?®,ç?–E´?U„?ŒÉ?«!?÷F_?ú÷q?¢·G?§7±?«RE?±d?±¢Ã?Ã,?¥°­?_:ï?…?ß,?ØÚ÷?cÿ?_h?÷Æþ@rš?ÕX?À§?±w0?¦ƒG?žÀE?þ±>òŒÇ?¦¢?=g?å?ïب?¯§?“L?v1Í?q?©ëÿ?à\Î?ÖÛÌ?€W?‹ñM?ͱÄ?È“R?l‚æ?&?E9&?–Ó?¥‚Þ?§y9?¦x?‡ü’?wÞ½?0×"?«&?XÚ8?sB +?Q.<ä±Þ>Î@¦?x?g†@g¡@Ÿ‡?š–?€»Á?pòB?`y"?`˜Ê?`®ï?`Êœ?`è“?…@±?øñ0@ Ú?»+n?Ô ?.U¢>üjŸ>ËÅÊ>èL±? >âKÏ>÷2•?ÄÐ?B¿n@ Å#@î>ã?ž>ão?“ó?¯RÖ?¼°?¸hõ?dwò>èwa? 1+?P®?N|”?edã?Œ_¶@§¶@ ‘?fT‰?f€?H‘?,e ?­÷?–Ôà?§?¼³™?‡+?ˆM?0ˆ?x¯ö?™.¦?¯f:?¶}K?Í£l?¿N¿?LŸÞ?Eq¬<è€ñ<Ž}Ô?d=?8K?eV?jÃä?“˜>?±Ää>dí¯>Á[>ïîJ>_Øô>B£s>Ï:ã>ñ¥—>Y…—=t_õ>« m>ã°\>éD >ôh¶>—­>ƒw3?@OX?vcÜ?("«>ùç>ˆ#>+§>$ÞÕ?¡¶I?¼ïL?“ >ã­®<|P•<$Ì>gò´>zè`@fI@n°?&Q‚>ÆÇç?+¥?-?1‰ÿ?‹‚.?¡-l?J×>ëWL>š?R>#>àVL?kn#?&Å=¤‚¡?@µ9?AŒæ?ÕžO?Ø‹S>ï¸z>šº? +º?Ò;>ÏÙ>›ù>•rú>ž>x¾‰>ý%>‡Cz>ì®?ÿ”?l3‹?i½?:°u?1úÆ?Æ¡?é>¥5…>¦>åÂj>ì•Ò?6]†?K«Â±ê>Å ¯? ìå?ç`>ñè>í°i?R ??mÊ-?\Ö¼?X ?kîs?v^F?n8j?hŠ?h_[?h¨ý?l.®?nj1?¤-²@2¨±@%Ùg?he:?cò|?r§?tm?]ÁŠ?cŸs?vJ?8’>+Äe>á~±?9¾î?¨‡-?â«È?›÷/?_þ?""?:Éd?f¤’?¡D²?“$²?Jÿ?Vc!?—IK?™Ûª>ÈÙ¸>ÏéÁ?jºÛ?pœ8?ÄU?ÒìÁ?ŽÄ|?zãx?ŠyäTï>Å_™>ïv?`Îr?s›e?ßÞÕ?âlŽ?lÒ?méí?r~´?r¡Ÿ?ágÑ?íÇR>Ð^ß=Šý?/ £?e?2iŠ? Àf?ï?|K?…?TêŒ?š³—?Ïp?€\Ä>'â ?¶?œoõ?»@\?ô2*?ä†û?à?¨¤+@~p?÷õç>ô¤«>ûøÉ?'˜…?"Ê?%AÒ?,–;??Ün?6ó#?b±…?[ ?<«Ë?0•>i»ï=¼Qf?«%?ê²Ï?n®>öÛg>üR¼?‰Ú?‡µ?³~?ñ¥9@;Ê?¶ÑO?+2Ì?%x?È×>Ò|>ë…?;ß?ÇÛË?Îõ ?é©!?±Jw>÷B(?ŽF@:[@œ9?Vd?†æ[@“F@¼> Ñƒ>Øž.?¹ú?º‰§?З?Ø·¡@ @1@ >ß>ä%0;º6,4¯c„?³ïp?¹{Þ@G\@t£?gH ?\Ì/>öØ#>Êò%?²:&?Éþ+@+qð@4ûz?³s?›Š?”kr?‡ÄÞ?­¢Ñ?»OZ?ê»Ö?ö‰b?¹ó ?«ý@vk@?¹×?ÿTÛ?ÁÇQ?Š±¸?[ðo?Tü1?B°?ŸO?ÃÜì?ݶH?òå?¯»?}g@-E¥@s½/@-àW@_Ó?þPK?û®?ôñô?î?î[Û?åß?ÔW?Ñ({?¦‹?{‹8?‘+µ? §?œ¿Ì?±›?Δ¯?ûÔ6?éVc?Ôm?¨ˆb?|Ä?çÆ@-@D?ü5Y?¥ìd?&Ñ?Öàª@:ñ ?äE?Æö?v…{?½hð?¡o¨?„$†@‰@n6¢@>fÏ@ ¹à?¹È?Cém?½ô@˜?ëÖ{?ÊÍ«?«Æ?–BP?Éc†@Ž?ã¾?³¬á?˜’?Ôž/@ ÐO@1½@FIZ@]ÁÃ@™5?*n +?¤~º?ö“ @ \˜@sL@on@«5@ ”¨?ùÒ?·Aþ?}Ë4@ "@RFÅ@#|?ýäO?ÀàA?’Æ?«ßA?¶¡ä?lv?èÌ?Q6Ù?}øÎ?Vs·?F­?›n]?¾¢£?Ì)?Ò]_?áȳ?î–V?ß0&?Ûc?Ñ+h?ÆYÛ?¹¡Æ?·±?åhž?þ4S?Ó4½?¾Ñ)?¶­Ù?¯<§?¹Ç?¾ÛØ?ĸ°?¾’k?Ö š?ç?é‘ä?æY? æv?†H—?–š‹?Ÿ¿?`¾i?H|?Ž)²?–6s?d·7?Y?,ko?³>;d+=¦Çœ@˜,@*´>Õ)=.Ñ@ +“@Þ@L@S?)aè>þ­Ê?×Ã?â¿X?Ïá˜?ÈÔ?¾vˆ?¿?Öâ?Ùºä?‰§1?Å?¸ÑT?± ?}qÎ?lù@TÁ@!+þ?´xÇ?­{ä?¾÷+?ÀÉÛ?õ¡’@q@U…¸@N-Ö>þu?Ïö?»§”?´[œ?~‡_?n(>ð¨ë?}>þzû?+ Å?ýjS?ø:£?™Gq?›È?à©?Ô2 ?¡] ?§§?±î?½¿v@ +~Õ?÷¹?>éÕ?³ >6Ê>«zp?…üÑ?œ°}?ùtv?ï?¾•?¡™G? +âµ?I}@?»?ýoý?Žm?‡]¿?Vzx?‹“‹?ï#ù@-Ÿ@4P?ô„M>ýÉ?=Ó?HÀ?C?KÞ¦?œ3c@áÜ@kZ?Ô –?Þ3?ýƒÇ?èN)?¼± ?æG@›µ@.n?¯^œ?¼!Ù?Ø܃?¼zø?Šý?†?ª3÷?¼DÑ?Ø€Y?ÇJ?ž(P?±C?Øn?Í È?½ ¸?·Ù?¬¾[?”ÃO?MO¸?5ø?¯Äé? ‡ ?xå®?“$?¸·˜?ŒÕ}>üaÎ? Ô@_ ?ñj`?½''?šš?+d?ïÅ@¸¹@´Í@<ùD@†ò?J5j?‡J?Ôÿ?»Ã:?I'?œá›@&V.@}o?¸ÏÆ@þ@[J"@*+¡?,Ê°?•Fþ@aD@ Ê@:x+@1¸ð@'â@"U«@ *¿@).@7‡@!@A(÷@>FN@K¯@Aá%?ßï?Ë31>Û?EÃ?»¬?Тq@7ÖE@1d”@B>@ˆ?ƒx”?§RJ@jM³@\•v@AÖ@Fç@K(©@F³@?Ø@j?"?yùf@Nù´@)1¼@Õ×@<,@Våt@F}ì@6@2åë@/¶ @]a1@†ü @]Öï@"à@-½š@EI$@=Wë@'t‡@ 4Ÿ?ºƒ?õÿC@8Ã@4¥×@$žâ@6@‰`@†w§@s€o@iKÉ@!™&@!n@4o‰@6ÏS?“¸Ô?§À,?œª?¥DN?¿W%?¶!ò@ Û@ö@þx@•ƒ@i(Å@ˆï¹@6.%@ 2D@6ðP@O…@=TÊ@6³5@.ú«@%ôF@ DC?çŒ5@0P€@q½A@KÝÝ@C@1e@@poŠ@OÙ%?·›_?ÝJ™@E_Ñ@DzÅ@.&@ †Î@FÝ@>½Æ?ün¨?á×@ åj@ þõ@2T6@@°G@,Ÿ5@*öi@Z£µ@pßP@P @=kl?ÕBP?…þ?•d´?û•b@ô|@Aº°@L Ù@k´@FI?Ïx?ÙKs@4 F@4½%@P’¶@Jó®@”³Û@˜Ö2@&Þ@ w@zÂ@dÁ@Ê¿@\j?ûmE?Ò=U?ç +û?ý•Ç?›þ5<˜­¡?_¤ @'à³@²´?íöK?ïÔ@(k@G?ã}?]Ö?”Ĥ?•p?²òQ?¸›¥@;(%@kè@GqØ@1t5@+E@ ‡@Q…?ý=H?ûü@8 +@Ý·@kÄ€@k¯N@y¥@€ÊI?ÓZ}?ºh?•¡h?k³=?a¼ï?çJC@žn?Èæ³?h¿Ù?…?U?§PY?®ð?µê£?ËL@óÑ@ +˜±?›dã?’Ùš?dž¯?à½í@ +ùÓ@D¼@,‚f@B–@F¬?‹§?I%‚?_2?Ž@?êšÅ@6½?j<(?@f‚?Þ0Œ@t?vr>è×?Žæì?ÝÆý?áÒˆ?êæ?ÑP?™?‹‘£?†‘Ž?•…@Qþ@!ò?ãSU?¶^?áº@þ?óÔ—? ?žŸ•?ããƒ?ãÆ¢?Ú?uÀû?ÌOO?â{>?ã„?ìa7?Í‚=?•yI?ž¤ô?âÔ??ê°@z@@)Z ?ˆžý?e&L?Égâ?ðc@ ‚H@{?ÒF‡>ááâ?7ò?ö=¤?ÿðî?¡Æ?¦úä?«˜¹?µªc?À<*?ÊÖÁ?Îýé?ÅWï?®‘q?[s?L;\?ü²Y@ç>?äðÁ?Ò¨]?±‹Ë?·K±?È&º?Õí?l>x,>lÝÙ?êá¾?á^¥?„[?‰·?‚8½?ƒ¾s?x³1?_¦L?Ž“í?Ðò?ºŽê?dšC?aœ†?>Â?j?çJ@ MQ?Ѥ‡?š/?¥ÏŠ?ß,?Þà¡?Þd?ÕW¶@+@p?Øx¹?§9—?š7?r©ø?€â?ÕD”?תâ?V,î?Jˆ†?Úg?ô¾ï?³&Ç?œoŸ?nN>Þè×?\$2@  @N?^ûÌ?^û¯?á+K?û Ä?¢°i—Y?k°ð?wÈÀ?òŠ?ˆ´?‘Z¶=©…´?*7Û?`¯3?¥(M?ÉRÜ?ãÉæ@eâ?Ôw‰?°p?+íò>aˆ÷=¸‘?†¦ˆ?–°‹?vx>Š >nM>ŠÓŠ? Ž?b|¾?b¥^?kTð?‡k>ã*)>ãV˜?‚Ý?‰mQ?¥ÉY?Ä-?šìè?bû/?^ýŠ?dÛZ?yÙ?’ ¨?ž}¶@n÷@/?QË ?eu>þì&>ææ“?kªC?>œ?Ž2Æ?‡à?”¨9?¨ÎT?t,)>ýäu?¯h??ï¬?[e³?vîF?oW>¸Ê:>ë€^?jšõ?Y¯?˜ÌÉ?‹5¯?b1?{ 5>xÁ¢=ÆÍ\<4)Ü>½1k>ïö=ðú>¬Ç4>ñuS?×Y?÷>%2J=T‰l=Ý'–>(B5=Š—'? f#?_s7?jŽŠ?tá-?Å +>»ûÓ=»õÎ>kc[>²ö7?’]r?¶l¼?œ >üÚ = G=?Ã?­?Öä?¬P?z›?ŽZ‰=ùF?&õì?PÖ¿?Ã8>ë2q>ÆBk>°™?"ß¾?kL=?ù=ý%=ªŒy>W_ï?,s?‘Z?Ÿ{?ž„Ç?(€€?&#´?%Þx?%®?%’g?%„>[6Ê>´È?íî>êl>¦¶¿>ÿ™ð?Iãy?€†­?Óv?ÊEõ?†œo?};r>i=ý!Š>ãùy>ìÎ?, T?17ž>Ú Ð>©m?H&?ƒÊ°@§©@øg >í¡=?z˵?†%ã>›´=vËí?o<ƒ?²{V?cŸº>÷á’>„[4:œm>¯ýB?n[ù?˜b¿?ñ— +?ç_ñ?¯ÛŒ?¥n>î¿”>íO=иn=æNÄ?Ä<µ?ÔW–? ‘>ăœ>áD>ïW?c-‰?”gi?L¶«>ï¡U?FQâ?€–?©ÏÙ?ÛÇ?®–Þ>ð‡?]??À?(¸ñ:ï{`>âˆ>ìj¼?æ¿j?ídY?X§õ?,à•?¹_?Ù”?†A?E¸²?#®>›A\>Â&2>ñs“?02Ü?q˜g?³[±@ +Ôª?ÆX= +Ø>5nõ?®»?f_? ^?T‹?Ax>þÇ6?qí´?r”ô?xÓW?~‹1?fwe?\p;?m$ç?sâ?e#?]#7?9,?0×Ã?$ov?å2?©W}?ó«8?஌?Á¯‰?“½?AÒÄ?v#á?²?³jÅ?¸¢h?· ¨?©+Å?¢–-?*ý?1'?t½¹?fQú>Kë>ñh?˜m?œ |@·]@ ©?çS.?åÕÜ?x ?~ÿÝ>c½â<ÍeR?ë†2@Õó?,€Þ<áT˜>Ç?àý?s¡R?˜Öi?¾?Ïš?ÊXç?ÅA?δ?Òh?Ó¢ ?æô’?êMš?í«B?®¬Ý>÷-K?†.>@ Ñ@¹y?ÝÈ?Õõâ?¹´Ç?¦²ê?Q¿|?m6?ªJ\?˜PÈ>Ç >ÿ¿e?ÈÈ?~Ë>X=»¤=ŸÍõ=Hv?yy6?ôX?ûØÕ?þGô?®_x?¨„?g³!?_Üê>ºîj>ÁCø?ʼnã?Þ×Ý?‹]?kú?ïÍ5@6?©•?›'m?ÐUL?⟆?Û3>–>F¤>¤??l9ó?…«€?5Ö?|ë?ÚÚ³@¾˜?ùM?ó’Z?©Ï‚?ƒÞÛ?ÒÁ?ú˜?þ,õ@V?¶õï?ŠêI?õ¥|@±û??ÊyD?L)?2WÈ?J«®?Sé®?@á?0Pu?¾T@/Ú?³?{«'?¤Ég?Æý¦?ôÕò@ @M?ÖNq?£¶?Èé¯?ìïr?îÞR?ðÐÊ?³c¿?|7F?ç=@‘?ùzœ?½?ÝÓB?ùñ@W‹d@T&@Oçë@ƒž@ u&@”›?Ñ–ü?™o?á…3@˜‹@jÙ@ ?óÉ?ÄŸ?«’t?œ”?íëV@,ÿ@Ø?熨@(øÔ@Tºƒ@?‰Ñ@3÷@.c?¾Q?°Ÿ.?«âp?¶8?¼œ?½ê]?¿øÞ?å.?ýª/?²ÿ-?}¹y?¾W³?ñK\?ÞÇv?Ïj?Õña?Ô‚S?Òì&?×"x?ÏFR?Ä¢?©Î§?Ÿ°V?šÝ*?ü?«ü—?¾–7?°ãþ?²ê‚?¦õ–?¡&?P¹›?œÆ?Íù@{à?‚Š?é?„å?§"?ÊOA?ùÅø?£{Á?‡Ü’?±¸@?¾Î‰?¤©Ÿ? ê¨?Ü*J?é…H?Ù;‹?×ë/?Ä??¾àH?‹0¥?~† ?¨ê?¨`€?¤™ˆ?¨à…?ƒrõ?j˜5?³Èò?¶2›?CÝ?%…Ð@¢>@?‘(C?~™ï?€+e?…Â?ˆ!M?Œi?qF—?iql?–j?œña?Î2?ÒÃ?Wâþ½…?+š +?úez@Ú˜@Ir@3f??˜1?„µ>þmZ?B?”çï?”a?þÄ?¶`?@ ,€@Ÿ?ÔÍÄ?׺ ?þH=?õ;ç?ÒC“?Ëùû?¾ªÕ?ÁÓ[?¾s¨?®º5?¬ƒE?§Ðx?ƒW?]T}?àŠ? K>þi?QÞá?Õ8Š?¢R>¿?‘nÁ@@!U@#ó?䟟?Öà»?¾TÕ?•g…>ý»?j†ù?åu?ý @Á÷?öž!?“œ?Ħ%@m@ÿù@a¯?Ó.p?~¤_?ÙÖ3@µŸ°?ié•?áo‹?Åâ?žð7?¹H?ã Æ?ÖXš?½—G?¬Œ¯?ŽJ?7à=¯ *>M)?ƒ? ÷Ô?þÞ?Ñ? n?…T‘?ã~ú?®¿?NA{?t +h?ˆú?±4¤?Üƹ@ƒ@.¡è@'±´@Õû@Ñ¥?†Ÿ—?…Ë.?‡x?öW@báª@Y½@KÈ›@%ƒ>?‰&¤@?Ç@Œ¡d@D¥)=ZÚ,>Í'Õ?¢#ã?¥cd?¨3¤?å¢@0¸-@¹÷?“ãí?о@< >@8up@4—\@-p?ߎ‡?Ó‚¸?®U×?Œ£S>VË>±†«?»£s?³t,?‹Ü?ŽF´?F ?s±Ö?ÍoM?ó!‰@± +«@ªåT@RM@N¦@[k@]ƒ@@'i#@‹?SóL?Ye@Ló@¢ù?Í»;?Âÿì?õÖV?÷üm@/L„@0ˆÊ?ç‘K?à<@PîU@hÕ@+ª@!Å@z è@‹< @<.F@ ¿ž@zÌ@‰$©@}T@|Æ\@5£'@ ]Ý@S@N‹@uœ@ÚI@K$ç@lVý@hž@iHÍ@S‰Ó@9'È@3@*('@)‰ó@,:.?ûáÀ?!3}?ß«@6ù@7?Ç@|½@Mbš?wÎÞ?¸@>O¬@Gsâ@i Ì@b܇@C¨†@@Ôœ@1–P@ pÙ?mZ?`2|@œ@"l(@Bôß@J\ó@-“@-‚?²Æ®?¬v@A!‘@i>@IÜá@>PU@4¤”@,Cˆ@ …÷?ïê?µªG?_ÊK@ºy@‘Ê,@y)@¬š@)®»@L}1@Cíé@@1Û@1@¡k@`@ H•@žGØ@š½@Uj@SÕb@.%@,±@/@ ¥¿?¼È?µ?Ψ#?úã?à£ê?Ò›t?–þ¡?+Æ?æÈ9@C§·@Hœ×@bßÂ@ð0@ª§Ò@˜Ô@ +#@³i@84@/H?‚ŠÈ?–ò@ZÛÕ@fjl@ «È@H@+áÐ@%@½Ð@ [J@(¹@*Bº@#L@&ñ@.Ή@08@\$?N+8?œ{7@ >º@ @ ¨È@>ˆ?s?ŠN@&ìz@&'Õ?ìßÜ?â}¥?ÂÅ ?¹|•@{1@Óý?õ³²?¿Ù™?ø~…@!±@*F@<ºW@9Ð@>ÞÊ@I»š@+Ú@5?ï'@?æ$?²®4?¢zØ@%7@McR@;@3È—@#[@ +¾¸@hÁ@ „@ + ?éá5?èæ?ýD­@R$?Á’?­6D?„æx?i\2?æ…5@‘²?Î1?~‡ô?K=~>öº?œ?s’?†@óœ@…ö?BA?¶Û?¡fº?›!Ð?›Ý?£1?t5—?r>÷>æÝ ?Y©d?ÿЙ?ó÷?Ò²¥?Ä70?×=&?ÏV?Åž?»Öo?÷?d¡º?ms2?†I×?äý±@H¼@/¨Þ?«Ô??«¿÷?«­2?«›ÿ?‚:T?ká?¾‘É?ß±?±W?yŠ?Ö 8@"vJ@:v?ÍœJ?Ò“?¶ÿ…?±¨E?©þæ?«ÈO?>?ˆÓ?Z9X?+öf?”ð?û·ä?ä¸G?Ed?O¯‡?¥ú?©1?<D?(v9?›ï;?ÐÖ×?É·R?¡®L?ŸÒ,?Ø€g?ÆÃ?W%`?`G @'dœ@4*?çÒ+?¨Ñü?´w?Æ›|?ÐëØ?àÏ?Ö[È?‡+>åy5@*[¹@6Ÿ‰@1Î @$+Ñ?ì@K?­ýd?¶Þ?šðž?ˆ›±@$Ø@'1Å?³òÌ?œ»¼?xÙ ?_¬¯?z7?†fw?°Ž@{=@Œ?§‰?¤{-@ + Á@·?¯¸?³c?¶v?¦„O?Ämœ?拧?×Ùr?e¾F?{ôl@U¥@®I?çZX?À° ?ï|@H·?øˆÇ?vä´?c)#?^ÔÌ?^Ñ'?¯¬ ?¿o´?‡ÓÑ?>'?^øA?^>Ê?a§?àvq?ä§À?Äq^?¸˜?Ø>Á?Þû¾?– ã?_ ?¤¯Ò?àDÊ?¼}ç?_0?U¬'>¦l‚>ÖЃ?B¤?o.?s²?ž8h?Œ¾?i‚0?uТ?°?Æ?ßí\?àƒ?†‚6?@4?ÙY?¦P?ÃàÓ?à‰;?àgÖ?õö?ó}A?)Ä>Ú†`?ØOj?ß6?°zF?©+ø?n4›?0²ù>Ø2Ù>¨ >×o~?|Fk?eî?b»?c¤Ë?‰-’?xÊx?;<‰?WÕ?Pï?!ãû>ùÿb>îå?xp¬?Åݳ?­Z!?+?›r}?Æd[?Ð*†<ž‰&<á;>Ò,³>æÌ?LÎ¥?gTÛ?‹‰‡?Ž?‰ ª?hdÿ?5FQ>èû§?Jm—?©1`?€5‘>ê*ê>Ô`=Ÿ?k}®?kOq?1Åã?M¢ô>ø39>í@[Ü?+7?Ps>U6´>¨•Í>ñEÖ??cÐ?my?¯™>ͤà>É€>©„>8ƒ>“6>ÓhÝ>#íè=Jà=ÏT4>(_=R2–>»w¥>µ×/>öëe?§?_­4?e>=¸Í?ÙèV?ðÕ‰?é?bÙ¶=’7Â=š<¼=¡ë>ØÀ>êõ_>êÿÆ>ëO>…'>ü ?Pµk?»Z>´È>ŸE€>d¹>~§Â>°‰T>Þ??MP7??)¹=ôÌò=öu=÷Õ´=øÞÍ<b¡? ”è?LªW>°¢>ëÉ?oæ?:=ï‰s>õÊM?¿Àl?§˜>³S>¾Š)?²ë?9r?¹L?¾RÓ?œví?˜Í¢?¬Dý?±…²?¹- ?Á= ?€n? + ×?5?m,?Q¦R?Âî?”ç?Cò?¦Œ?ÏZ? çz>íxì>íˆ`@³G@ œ¾?ŽÉ€?iO ? u?°„œ?²7?²…?²Z?²W?°æà?±]?ˆÚ‰? Úz?H?²æÛ?•&Z=GŠ<=±ù>ÏHë>ÌK?-³?6‰?Ï(>ïç?­C}?Å^•?¬‘¬?£¿‹?DÙ>ïó?J½g?‹v«?¹$‹?ïÔ–?Ë$­?„ËB?}ºX?pþ?C2ž<òÌK>qÖ²>y³‚?בõ?Ûºd?? y?¦-í?´¯Œ? _R>ŸÁ×?&œ?M*Ÿ?™>ñ_3?9éB?qˆZ?‰c?Ÿnì?mðC>Ïñ}?cd?eþ#?€mæ?«"v?¯´?´Ä‰?¤B¬;¶_@=£Å>þ”?й?€T?40?Ñg?ßÏØ?C{%?*Ô?ß>óIe>o+Ô>ù?!MK?uˆä?‹ \?šÂœ?ŽÁÃ?sãü?‰?™×-?R›û>€qY>à˜>PUÀ>hb?í?l]5?ó[¾?ÔGn??*©?1¥>ôõ'?~1?é9?xÕ?uAÉ?uSE?¹SÕ?»¢]?Ûò?t·X?®âv?»dˆ?+%>ã9¸?JKŠ?fbX?'‡?0`?ufQ?—±—?šõÑ?ž8µ?v7Ã?Obå?­ ?ÞËß?ËR¹?¹6—?‘J?9ÞØ?š“?÷=Ô@X@ âž?åG-?-Ì?ŒQë?g%A?Y‚j?ZÁv?1Áá=²D¶>ɺÎ?àÖr?Þè_?º&R?ɲÄ@gr@Ô>þFö?VG?Ë°?1»>Ip÷>…¨?y?xìœ?=3 ?4n—W–>¢ª`?ç4©@ ˆÆ?„a)?EšÆ@Äx@#åÈ?ö¸g?Ób~?ì‚?ø@ì?Ëh]?¼lG?¾5Û?ÀG?QÚ–? ÙÖ?ËŠî@-®?²1H?Œ¢Z?Yv?/Ý—?š2|?· ?˜©Ò?‡ú·?â¡#@ ¼‰?ß.^?¸Ò?¢Ý?—6ð?±±!?ÎvÓ?â¨ý?éõ|?í?çLT?ã?²®˜?Þü?‹.ß@—þ@9Ø@¶÷?üL?³\‡?…ò]?ÀÌì?óO8?þF…?ü‹L@ )@1P@“C?éw£?óï¿?üÃl@$C@Œ@ n?û_£?Ø™;?½¾ø@\@%'›?Ûä?”RÖ@¦l@-A?¸€¹?“…?žöG?Ð{?$er=$¶_?E:?{¾?Ît?û»n?°®?Š?q?@ãa?-%?·šò?ð Š?”e?EN±?®š?Óî+?«?B?˜}»?­©?ºa?y|ë?B¨?¨ ª?Ê!%?²Rá?¨—¹?7cG>ÖÂ4>ëg>þ?£"3?º#Ø@‹@>¤?þt‹?÷0%?ÌÈá?»ÜØ?îë?þA¿?òaQ?ë0Ú?f?Ð?5¬­>¬è·>Æ?´Ä?ÔšÈ@è+@¡?ç‹ž?à\¥?*ï?¶µ?¾Åo?Øár?Éç?¾®#@üÇ@¼ë@2Õn@8q§?ÌòA?¾àa?‰Ÿ8?ƒÀ,?ƒñ‚?€ á?÷¬®?ø}@§¾@&À?=0?.È?±.|?° ?ì£?æ"¬>þ„æ?¼Œ?¾á?¹¨@?<`R?EÀ?~€?„F}?ÍÆ?ÑÊè?Ö!?ÜÈ”?þ‹8?ýÙ¼?³Gõ?ªrü?*¥=?`?)?¥Y?}¬?‡°·?ÃÅ,?¿ñ˜?­èÝ?º1g?¾ÆS?¸´;?šyý÷x>ýõq>ýï¡?.ÄÕ?‹+?Ÿ`$?º€Ã?ÇE?ÿ?Þ¸]?²a?£‘1?¾F?›f‘?6Ü.?V¬Å?‰þ?œBñ?³?É.l?Ùç@?í’@à²@ +hŠ@Žx@–Z?½x4@ªk@xþ÷@/ÖÀ?ºÛ?Œä?}?ŒÛ?¤¬?¨z¤?ž ±?¡(v?·eø?ÊË?×úØ?êÍÓ@, ?Û¸1?©•?¬š?®vá?“>üŽ”?fÙ?½\Ò?»Ë.?¼£ë?¡‚?tÓ?Ûw@3ý—@ƪ@n?´ä„?$ȧ?Às¡@0¼Ž@°C@ +ìÄ@î@66Ë@ð ?ÍÙ„?ÙŸE?à%K@!ªN@{ŒÄ@Fu1?Êö@!—@: "@GS‡@^L¯@2Œ@?¤ÿi?´’G?àÃy?äÌ-?ïŒë@re@<$V@3OG@û@St@J„@Å?ÀPž?ÒÞ™@E@ @0v¤@(lÑ?ÿí7?ðÎ ?»ú¨?Ðp%@~‘@Q@" 7@3m?Ë"”?úm–@’Rã@ÖÏ@V]B@Y£ß@XtJ@V«á@u¡@sât?…SB?tÖ ?øõx?øüË@69«@)bô@v@‘@¸•@£@U³2@VCÞ@Î\@×@Oà@E­@0E@:Ëz@ Ü%?÷ìS@—ª@·PS@v”â@>XÔ@`Á@t¯é@'¡?øJ?Õ_á?ÄÌ„@ dl@,^æ@9x»@BWý@£q?ÝÔ@ªE@HYS@Lr?Ó›?Ïê?°›ô?™“?KŸ?èúp@–.Õ@i¼‰>øÖg?¦EÀ@„ßý@qƒ@Dæ@{Ñ@-ÄÝ@-è@S@(‹’@ Åb@L‚@!ç(@&E±@éÛ@¥Ó?¼c6?”U@k/]@†*¸?ʘ¸?uo?æìr@ »@?å L?Ô§?ÜQ?Ös@ òý@#Û_@Ã?âGª@ Ý +@6_‡@ Š?Ñÿ??§’ã?‚¤‹?¹m‹@0Ò´@.ò­@-@-…5@\‹$@kô@)Šh@.Äé@;@"F@PÍ@XT@n»@r—½@[*J@Mm£@4‡ê@#ÏÔ?èÑŸ?¡Â›?É®@—@À>@}Ë@+aG@Tê»@<n?´?ßÑ;@m0¥@e’ƒ?°./?¬1®@NëH@Q}™?¨8€?˜îW@ZôJ@~¤‡@/Ä@P@:0;@U§•@ ú)?w?ú?<Æ[? z#?aŸ·?ö1?®[H@ Ñ@˜@!ÑÔ@#rK@ óŠ@›@{³9@‹{?Í›0?t>?õôT@Â[@mÛ@È?£ßG> ‰Þ?kõ|?ê( @Èó@"£†@ˆ?k›)?}„C@"r@Î?ºxë?· K?‹`a?„ç}@Sé@<@˜?ês‚?¾‹Ä?…Öñ?¤>?êü?é•b?é°Ý?áð‘?…jÈ?Ž[¾?ä²?éDÃ?Ó„?Ê.T?Éõ?Ú¥?ÖŒÛ?À˜ï?³kg?­¼?ÆÓ—@Û¦@šE@7d@zÓ?óø.?à˜@!ƒD@ 8f?Îcx?•@ <²@Hôñ@ ¸?›Ê¦?‹[Ý?‚\ß?•mþ?¨z?»Ÿ^@ˆd@t@ +ua@ ÎB@!QÒ@(/Æ@ ˜?Íó??Íü?ó¼r?îk‰?;ðâ?[ó°?»®S?¶¥ñ?§¿?ªÆ?÷­›@ W?ía›?£²?ìÔ@)7þ@ñL?ª×¹?«õ?Ù‘h?Þ‹¢?…?i™é?g¸™?c³?‚r?„zˆ?{Ä·?©h‚?¶-w?;òÀ?Ì}?¦§Ä?©µ?%Yª>â=?¨aå?î»Ê?ä¿?éüÔ@ i@)4Œ@%*‡?w">ä\y?Õïñ@½÷?Ëuö?¨Ë.?¨»?¨©?·á¦?à¿R?Ûŧ?¥îä?¦_«?½ØB?Ö@’@-£Ø?Ò^ð?ôÊ?£îp@B|ø@Ešî¨ö?Â6?”m¿?®ÎQ?™æJ?™ @?É‘4@Žs@2¸@A(@6œÚ?ú¼R?é=|?ê9ùõ¶>æµ3>ý?:¥í?”õ?“ãÓ?Çé?Î,÷@¶”@ƒÎ?ü§?ÛàM?ÜTx?àpÐ?Î5(?¦ ’?¯ @_%@‡?dýf?i1O?É­Ï?ÒôÛ?§Ë?ŽÆ?l£È?3BM?{?Þ|!?Î7€?bŸ?dm?ª6Ì?ªY>²ñ¿>ú?†±[?Δ/@çù@—–?íð ?äŸ5?Í>É?Œ‰¬?†Û?G?pö;>óž>ÕdË?D?C«*?\ÿ|?g-X?NyJ?L‚`?TWé?dœ?5zF>èÒÇ?±l?‚Íx?pÍ>—?!>›]¯=cTm=åPÒ?¬¢‹?¥é>Ø^>Dl8>ãγ>í_?¢X½?²Yæ?›ñ?]¦¼>¬v>’.b>òõ>ÝP?$¾O?.íB>ü¯>ïèÕ>ö(³>òÕ%>8b>-ÙÃ>£¸”>D‘m=<}…>š°¡>ßP¶>¦>¥ãÆ=Ãl‡?nÜ?¯˜?ŠÒQ?y±þ?!·Ì? z=®JÂ>ò•h?IŠQ?D“Á? +£>Ó×Ú>꿲>íÝ?I?2>ìU>êáË>¨¿=§µû>Ó%T? Î\>§c >;áã? ¼Í?k$%?"³­>Jô¿>Š0ú>ëEÎ>Þ÷>¶Ì>¼>ënv>ì >d>[*å=í·=Û“|>”yè>µc>ŠÅ>XéÙ?‰,?ä²?¬hS?D¸,?‘ö¸?ìA?·>F‘Þ>6“?TW€?[óÿ?ÊC?Êë©? 2Ý>ì…b?Œ”.?³ý>©>ª>ýÇÈ?KhÅ?h ?{ù›?Rf?¤šã?–n+?m,??„?#?±øs?£Iã>ûŒ6>øš>íŠm>í–×>÷Ï>ò‚o>îM‘>íÕB?Na?n¹Ü?Mb?²‘æ?“¶B?tšË? ù¹=°>¼É´?zã‘?ëÑM>ïl?B„º?TaÇ?ì=€@My?”z?I*c>ö·Ÿ>¨ªå?”q1?ïÇš@0o@`I?ÞÕ=?p ò?SÕ³>÷ˆ?ƒ?1Ã?.a[?;(õ?>Œn>ÅvG>»Lt?« ?´¦>N‹ì?º/?;(Å?6‹[?1ëi?Vq?qxJ?/Ìì>ñ›z>™×=c­ö>€V ? Œ8>¿µ= \>{w?r.9?H'>|¹?­oè?¯5¢@ ó2@Oñ?Žéç?3Š? Æá>óŽ>ó#S>ó8Û@ ¦@'?‡Z=>ó†™>óšÐ>ó­”?PÁ?1 +:?sã?˜ny?'¹2>Œê ?+¾¥>þb>/ ü?hyä@;Å,@,1?Ç„r?³Ÿo?.^t?NË?õ ²?í“D?†9?òw?ñK?ó\? +]7>õ¾›@Cž@á:?9 ?>õÞÌ?œ‚,?¯‚?-7¨>ö)%?ŸH?©Sg?§ÄÏ?¦1x?*¹Ê>Ÿú?‹äF?Ò6Œ?íR?ûºÏ?¥èå?;M?}Ba?¦úÖ?Ði|@j?Ôk?LÊ?„ `?ÅNæ?ÀÛ)?›»{?dÙò>ÏÆ>é,~? Cå?Bùœ?À‹°?£8´>øC,?S:?sPv?‘“â@TÄ@8æ?ÒÆŽ?Ía ?Þß?×ýÁ?ª9:?¬Õf?ûZ?ñÊÌ?ZPG?aÆÉ>ÿC.>ù_X?q\N?~a×?jj>6Ó›?†1@?3 ?Õ«õ?ÚÜH?Zñ>Áu®?<¬ß?@î @5XÐ@S¿¬?øâ¯?ÄXš>•É&=ö?ÄÆ +?õ™¸?Nër>úÀÓ?|¾y?–D@ÁV@3Q?ØCž?¨|†?ãæ7?û//?—×H?jµÓ?¥¦û?»³t?¿x>?Ã?¥?ÒÛY?Õ÷?#¦Ÿ>%#&?XR ?› q@+o@6SÏ?ÍÍ·?{õ¶?Ñ­0?ü ?×#Ø?Àª¹?æØú?ü6Ã?øÑ?ò™?©Þ?†ß?ZÛÃ?IAó?gRY?€€Ó@$âI@T?ß?ÿñ?®rv?Ûtð?õlG?¦Ýÿ?}‘?ÐÄÓ?ôÓw?ÅK÷?µêr?•Úñ?uf¸?þ–@gû?Íôê?–¤@>`@I>?™…>ì‚q?xá?R‚?Xv¥?„%E?1ñâ? w?ö¡>ý‹=?éÊ@:Ì?ƒÖï>ý§@?š„1?¾I?¬¹Y?£Ö†?(kµ>óÊí?—W>ýÛ+?^=?}æ¸?¤`?“ø“?ÂÌP?Ïyõ?¥‡Î?@×@?î=@g»y?³{¥?9ͺ>J§;Ú²é<À=\ë¸?e† ?‹Ñ?ì«?þ8Ó?³‹?¡¢h?¸)Q?³ÒT@L¬@©@ ŸÊ@ ’?ºþ?½ Å>¹ 1>d6>Ž½:>œÊ½@ã¥@þ]@Ó?@Ö‡@, ¸@*ô«?Âày?¾Îù?¹"ð?»iù?úÞ€?ü.÷? +ì?–Û?//$?JüN?ê +…?èª @›Ø@û:?o>Ø?{J +?P¡ô?v œ@(Qñ@%?ó?‚‰š?·í?¨ÑB?O7÷?k¬Ö?¹-@?¦ë€?;>Ô?9þp?i!?‰=7?ëV ?Ü;”?z]?‹/.?½N/?¯Ñä?…Ÿ?rýÜ?˜å?cZÿ?ï³Ë?âFý?¾µ1 +@Ça>ýêÑ?'} ?lÒŸ?Jd?&Þ?|S?Ð÷?à 8?§ú±?||>ýµ2?Gèz?žoµ?Ÿ/?™é–?gD=>ýŠs?'T?1.î?˜&,@g¢@‹¥@-†?í£?¤e>›O§–?FÜ?þ—?³àÑ?šü ?}h?} |?}­?ÍêüE?£gá@‰b@*ü§@Iô@²?‘_=?‡wf?|•ò?M±?lZ?rh?¹>N?„Â>ÿ*ì?­ÜZ@2@%™@=&D@:A@5{…@Ìä?¿¨?×Ïq@¡=@ Ï¢@©@e@7È~@sR?¿Ç[?Ýâ^@ @/hÙ@dÑ@D£`@±3@ Åf?þ)ˆ?æ|»?Êk?ôa@.L?ðî?™¿‰?´ª9?ã1ö?â¡È?áü@`@)àŽ@ÅÒ?²û¸?ÁSó?ù~?õ '?ÚÆX?à=?åÂ.?ýö@\¿@GT?ùÊ!@о@8°Æ@(ŸS?ÜÚ—?Õž‚?²?¥þ0@î@ÄÉ@ñí@°»@k2¨@eà÷@$d—@'Q@$ È@ ”ú?î$?ù¶è@Ι§@Õ–?ÿS?û~÷?øÓö?ø†%?Åû¢?ÔÅ@µe@ËÛ@ÒB@ vÙ@&VF@)•¡?Ý2Ù?ÉÌg@JP*@ly4@Œ?¨@—wÇ@‚¿=@hUé@ZV@WNÁ@„×O@ŽŠ@iÄ@K f@%¥E@ÞQ?ÝÃÈ?ŸK?ÄÙk?þsç?»:Í?)c%?¸ @"?ó@Ee@‚Þƒ@x/ê@Ur»@<}(?ð@?ò-É@±±@ii?˜¨ì?´Ìì@[9@¹ù? mÙ?œù@&)@0:=?Ï Ò?Ô?ójÐ?ô¥Ú@zßz@‡¯ø@¡0@ê@IÅI@Pìg?üQ~?ÇùT@¥@æ@$ø|@5«x@^Ž•@ƒ;2@819?Æ9G@¬H@6T@~*@ÂÞ@’Ìr?rÀq?ÉF?@féê@[å‰@5Î @785@=ÅK@3 ‡?¼‡?Ãl1@:oí@6Ë@O}$@\£=@Èç@‡E›@c,'@S Z@‰JT@•½±@ +¢?IĦ?ˆÒ¨?œÄ?Øú@ã@ p"@'f@)®?˜øû?È@6y¤@6ùÿ@G~Ö@?B²?¸}i?Ì'?@!CN@^@*î”@8ùv?Ù†¼? Â?Ü]Ü?ù‚Œ?Û›2?»GM@B1V@šzˆ@e¡?âÏ@¾@1üÀ@#??ï?““ô@-ô¨@-´}@Éú@! ƒ@0­I@DÅ–@,3â@#µü?ÑÅÝ?s¤ß?šB?­§?˜_M?>JÐ?,¿„>æR$>æ9?ó\ ?óp&@Ëö@Ò]?›Üð?‚Ë—?Œa?Ž.u?‰þ´?e+ò?N Ô>¿DÚ>¥Š?ºÁb?ɇ-?‚Ø?eVf>Ì}`>°^?–•…?ä£?í@\7?ëª?†»Œ?‘—¯?²€‹?­Y™@=@Ûü?Îó}?šÄî?ÎÐ@ér?ÃqÂ>÷²³? ·?Íëþ?Ø9ú?á—Ì?ß?Ëî_?¹[k?ÂÃ?ÙyŠ?ÊÁ?©Dö?ÂD†@{ö@×?Þ$-?Ú:•?µŽ ?µÖU?z‘?O'^?ŠäÄ?¨¢‡?´NÒ?Õ£T?Ñ!@?`ŽÀ?f@Ï?£&?¨D©?ööÖ@ h?¯ñ>õȈ?9ÜR?ºûè?¯¸Š?¨_Ù?¬ŒR?¿¶?°cK?¯kv?©×x?ÁX?ß|è?ñï@ ›@g­?Ý?×y"?·´ˆ?ºl"?ë0Ù?ø†ˆ?º(?{ ?¨ãM@ Uý@¨¨?R9\?F¼½?õFÒ?ðE? vm?k&Þ?ºW>Ys»>£IV?fft?uô?¾t–?Ê@"Í@ 3Á@„«@!b?úÅ?¡3 +?¶Rð?Ñý2?»/%>ÚÒ@?c?»‡‹?Û²è?¼mÉ?§-”?ÁW9?àß@?×w?µ?»"…?Á5ú?ÇH—?†ò¢?MˆX?·Í…?ß¼†?ìz“?ïÅ?¨—ú?íV?63Ê?’ƒT?˜½ž>Ý{h>Ô¸r@Sý@!&§?«›G?X©?‘cú?à—s?Ý¢|?Õ ÿ?Úro?¨,k?¤\!?ý!@M§?±¦‹?Ž£Ï?•?›…d?£Ùt?©ªÊ?¡á?b‰ù?cGâ?‡C%?Ѩ? +ó>ã\]>ž×ã=ªx? wÙ?‰!h?„äç?nÛ?‚ßê?z#¥?ŒX ?¡Ñ?ªï–@)ìÆ@N}?û\ù?ã¡?¸ÞÒ?£î²?7¼›>çŒU>l16wCç>è°Þ>¹:>VÚz>¢µÑ>×u¢>¤MÑ?·Ù>ùÖ?xP†?ƒ5¦?Þ>þ=È>ì?Ý>ìçI?Ž½®?©Ì¢>–°9=Þç<=3Ü>úû¦?>Fâ?Žq¿?©Ï?ÈI<›S=tùè=ì¯ì>pØ“>}Øg=°,>z4Ý>èã?Aë +?eW´? HØ>÷“–>/…*?)jÙ?y¿‡?|T~?zäÜ>“x…> ?W<ØéØ=xÉî>·”D>j¨>‹\å>™¯¥?|ä™?qý>K»v>ÿáø?tÔ?j‹?fË>ëX>ê¸+>ê¾u>êÉ?UÔj?jÙÕ?N* ?D(o?P3u?V‹þ?‚‘?•ˆk?iÜ? ¦}>Ãh¸=Üò*? Ê¥?Ç?SöÑ?SÜ8>ñkf>ëƒi>gßo>‘8ì?kÄ™?ÕZ ?Õ¯¶?Ö Ú?±•Ë?VæS?QÝ)?2ö?*•’? n+?éM?[?Â>̲=>Ì =‘åì?Lït?¦Ì?X}Š>ÙiÑ?#S=?mK?‰sá?±ç+?¥?mS4?`ä>ó^>ùqQ?±¿Œ?²9¯?²&?°úÃ?°Ïk?°mq?>š +?k‹?H4?n"?)N­>ÕHå?"Ý?nd|?@g>É4R>Æ>ÂÞm> ±®=^Ø?RM×?P¹.?’Fø?‘kƒ?ñM?†õÝ?¹‡?žê]>»Ó?JY¾?¨Þø?Ĭ[?áëS?©°?1í?`#N?•}÷?„>z?9•%?%š¬>‹}>œLY??¬?ft?Š› ? ?#®j? 7h?”Qj?¥”Û?¦Çþ?¨¬?ç?ƒC0?,ž">ñ‹r?‡I?Ö|?u ?µ`n?32?qþË?JaÞ>óËg?¢j?fê?‡ÜÁ?ìçª?Ó:d>£½>ç®Ú?Ý7?Ú[?œ†¨?˜|V?Yˆ?Oìð?ø$g@&~? ú?E#?–PÂ?¥ªý?¡~³?I‡?—ñ?—<©?‘Ôš?„m?ZŒŒ?E"9?;q³?#n?i̹?¯R¼?ÅÐÆ@°h?ö2£?Ïs?Í º?ÚÃú?ÚG?·×?·oi?µL4?¶äì?¸±?¶0Å?‚>/?†|}?n7è?gµØ@×[@)([@̶?þû?ÃÅ»?¸¨õ?){#>í—W?9.›?Hl?œ†®?¸ýø?Û¶ä?ôEöí0?eW?.­¨>×:>2(Q?oM3?ßh?m™?ø*?Í(@L¹¿@ +v)>UU¯>×b?lçÙ?­ †@Æ{?ï3>ø+µ?¶M?xO?¹?‘€?©™Ã?ø÷?ø ¿?ø´«?ãLf?B ?d¶N?äÚ‰?ây?‰ s?ˆÅ.?¤Ìy?šqh>ùS¦?ÂÛ?—¨½?•½‡?-eù?(]ö?¤?©@þ.@;ê?×…‘?Øé@ ا@/Â?ùåù?öj¨@ò1@›ÒO?ˆ@>ð¹´?¬†3?ÁÿÛ?°.?¨xí?®C’?®¡·@`@J?U ¤>úl?•Ãd?®¡®?Ë«¹?Èà¼?‹ÆG?{E?!¥?@?½ˆ[?äÉ?sM?% 4?†&ä?ŽGá?ßè³@Ä?ž¯O?k&Š?×v²?ûïŠ@òˆ@TÕ?‡/ï? +*?iáë?‰ÀX?ÑYš?èþÙ?¸d©?¢S @8ä@=@ú@(’â?Û‡°?¤oR?‰è?qÒi?€ m?x*o@|~@€?k¾z>¢?Ðg=@å°@0¦Í@H¯Ø@¤l?òÛ@ +WD@|…?8wü=›ÉÑ?þ?½·Ú?¼œ?º]?´'÷?®Ýö?4>ýt~?³º5?ÝÕ?Ï‹ñ?Ã2ùUÉ>ñ< ?9? •Š@ YX@'§@V=æ@W˜ÿ?·4?¦@Ç”@¶™?Þtà?Ú_[?„z‘?~A ?˜ˆ€?’e3>bþì>=Ø@Fš§@Dõ‰? ?€ó+@JEÈ@Lyr?ÇÓ?ÂßP?k1#?t?~X‘?€M³?xÿ½?|±[?±&?»Æ>@3¯@*ùó?Ým ?ÖK°?WD;?MwÏ?.Èœ?QÐ?çâ˜?éšé?Ÿ~”?¢Ç?­Z?¥‚€?,å?rý\@ÁÁ@ kE?¾Á[?§­×?¼L?D?óœ?è¦? +C>ÅŽÖ=aS >ß\±?·ùÓ?³o†?¨{?“¤n?\ ï?yH?’þ?¿h@@êZ?çqo?é©b?þ?ù·é?æ’?Úö…?Óñ ?¦^? ×`?›¦6@œQ@§ ?Þas?çi?ðtÎ?áå¨?¿»¦?¨ª?t'ÿ?úó?´íA?­ÍÍ?¢Mù?—ËŽ?‘vî?·{ÿ?æqO?¯æ>ýœa?o ´?¼Š–?ÓÊøÌ?3`â?pù?̳Š@F”@%·@6C?ó'z?|ëë?­Ûˆ?Ön,?­Ñ‹?ƒ¤/?ªü?àºÐ@õ²@QŠ@ãp?«QÃ?´§?²Ë*?™¦ð?†\F?†^Ð?„p‘?¼ñŽ?ùaâ?ùŠQ@P@v@#Q?êüE?¿i@#'@{(î@[ŽÊ@9äG@(7@jÓ@7c@Îö@è¯?ûyÏ?ã¤?¼ž“>@1gû@¼@Ã@L}J@?© ?¸ËÍ?Þ;¨@iŸ>@W,?º«ë?À2º@Ž,@K¶?ø¦"?øy +?Á˜‘?Ä5ç@fkx@_ß'?ëU|?åÜ+@?gÒ@@F3@9ß¼@9ñÛ?¡ƒ³?wǵ?àùÐ?÷¨ ?íÂú?íñ‡@¬®5@ÕŠ@SF?ü^-@Tý1@ o@fé¨@X@:¢@$†î?õ?¸þ +?Ê!u?ËA®?ÙÏ?è–|@ +´¯@0÷:@7$R@<þz@8º§@6 ¬@Š?»EÂ?ê @.¢Î@¸õ?Õ%?î9 +@?Éþ@C‰å@iÎ?@XQ£@UD?ù?Œ¥‰?‰6 @¡Ê@Q¯@9¡L@9>@Oüy@O +%@‹€Z@’Ûo@@ç@wA@¥q@$÷@$ýÇ@, @;Ýs@HX¿@4®ë@dß@3´@2¡$@5c$@6qN@%pÒ?ç?üd<@+-@IŽ×@—IB@ŽÙ‘@r (@jÂ7?¬,?¤œ%@D>@„T~?àR§?¼²@<¸@S•@SnB@Rûm@@' @A*¹@É„?ÕÊ@›ó@ÿX@>`Ü@w_ @c¦p@4«ý?û%w?aÒ¦@•A<@:@lB/@j_k@Z¦“@L½V@Z\ž@^Xb@rº@)ß?ªÈI?ˆÂv@ æG@,o @(Ük@0¶'@4êÕ@?ú@!It?¿Õÿ?±Ð?—]†?²¼W?²Õ?µsê?ÜYù?Óõò@Aºƒ@>ºM?dKd>ôè?d÷ ?–šò@µé@VÍ@?v?ĵÌ@yÓ?ûÁt?ë²6@E@†é«@u…u@%z@ýÃ?B˜? Ò?+”ë?A¯?Ø'˜@ç?¿6#?‹6Â?’ç6?¢f?¤q?¦íï? ô£?o‡e?oò@?<0·?W+Ï@PM?÷àS? ?–ü„?¨¯­?®Šå?œ®ô?„J +?ª 5?äFÑ?çŒÆ?õ2?ð[²@-W@2@Ä¢@²?mTi?+›?‡?¤Nj?QG>òû1?`y?­]?§‚7?–ÈA?’˜?‡Uº?q±¦@Ÿ÷@&¬@—2@ª‡†@Nqµ@vj?ŸÃ?(¬?€ðs?ÑÆc?½ÜÀ?ž3é?’ ¾?")T?D?Ÿ—?ª-½?ã²¢?æéˆ?Æä?¿ßÏ?¹¹ç?¯Á­?ªªø?QMT?;w?ݯU?âT—?Š¥†?/?¦5,?ª<Ð?ãÿ@ Àæ?õ®³?©õg?¢î?r¢¡?h-8?¨êž?®ð…?åÌ>üA?šç?Ç–„?®(ð?•5?“Tð?s³Õ?bßì>å~ +? y?œáÚ?¨ÒB@÷ï@9œ?ÌÊ¡?¨•:?¬/O?±@b?¦5„?`¬?`o€?õMñ?øM;?¬=?£µÞ?Ðöä?Þ|_?ÙKí?ûCØ@ì3?Þ"R?Ø­­?¶ï¦?¹Ùr?¨k +?ª4y?ªÔ?°ïº?Ñ0V@úD?ô-Ü>GŽ>¢©h?ÂÅ?ɪ?×Ûm?èËM?ºRs?ö’?º§î@ ÂÇØ>Ž@ç>ýÖ?Q’?-í¤?i?zG?Ê?§!“?§I>?«z?•s³?0è?Nn"?‹ö?’ ?Ó„?òd+@à¸@ y?ä¬Ð?ÀÛÞ?—3i>wÓþ>®ÍI?§ð²?•ˆÔ>Uü’<¨bt>æ5l?OÞs?r]?L;è?G ?Š#?ª(@?ÃĦ?¯ÎÖ?cqQ?oJâ?c@A?‡_Ç?¥3{?  Â?fÊÝ?4äØ?u®?©#T?Ÿ ?bl’?d_?‘ŠF?‹8z?hñ ?>ä!?®H?á()?‚äy?ÁÀ?%Â>äg†?7„? /È?N?t4÷?h%ò?} ’?™^y?Ɇ4?Ú—þ?§=%?¦†?8YW>ÆÝ»?/<?]²J>ù#'>-=è™8>”¥? Ü?¥–·?ª1n?¢À>ê>o„>¸™D>ïòŠ??íÒ>Úy>æu©>ã3>Çm=Âù¥?3Z?PVà?;3?P^b? Ý›>ä]I?7?,M«>¾°>¦>YX$=ë=qúa<Šœ=kâ\>5Oø>ÇS>÷V_><> ?V5?]îR?¦â±?¶öe?%~´>¬P²=6 <’YŒ>*$Ÿ>+"?ÀÐ?K½ò? »?~ô¯?›>ÿ?jhï?h$?b?T}?>þèD?:{?Ü?+x?I"ú?N¨º>Jõ0=t,>ÇÖè?Ðk?±"?úf™?´:È?Xì?Œ’>^11?DÅ×?;ý©? -Ø? M›? f? @ ?TÔ?WÆ_?Ùf>ë™%>/ËQ=šÐ?Ž†?Xü=?ný?~r?A,<>ëúo?f¶x?ã½Ô?Êå?l3X?g?.?Oï?LåY=`ÖÎ=K[k>hqE>b=†_¢=k!>­Lã>ì̵>K<Ë‚¦>ðOH?h‰þ?Œëå?°H?Ÿ9?lß!?‚àï?² t?¥|†>ðóû>òd¼=,œX=\eW?£d?²^q?Ø2?ß¼?Zo§?Éé? Ò?Öº?[I>f$>–2—>îz?8I„?™ô±?Šß?6& ?¡>}” >‡_>ÓÊ>ÝÉã>.Ü©>"UÙ?6ñ„?PGø>Õ !>VP?:áæ?oª8?o¹-?oÌ5?R¥s?3óú?KËÈ?xDB?cê ?+æ—?Ä>¾NŒ>µÀ >­# >ÌÓ>¢ÛQ>±"d?¼«3?À‘x?|‡I?q Æ?Ê?¢×?«Û.?µî?3çÑ>ÖVš?‚ú ?°Û{?²"Y?³m%?—¿?qð1?q`?n¢D?n8?rB#?Zç?"}-? +0~> N+?‘¥Ö?Ç6?4½¦?:ýa?s½Ò?ss?‹ãe?Fù?ž[8?žH?Å]?Ñæ¡@ óD@¬ +@À¢?îãh?ôî?þµŽ?‡Ô¼>›¾?"vP?tIó?¡Õ ?ße?æß?î\©?þ,»@ :G?à÷G?iì?=w´?®Û¬?©?xò?uˆŽ?vK+?y5(?uz=?r߉?>3? |Å?Ñ(½?ÚŒw@ Z@ÀX?m›æ?B7>Ó‘O>¢`?ˆ‹? žš?wL?i*W?Pæ?šï?…DÔ?j w?nMÈ?vÿJ?.?•>÷#*?°?†@à ?½ÕC?Z€?/Ë>÷Y?Y Ó?ªIî?‰Žp?Π>¹¨j;ö‘Þ>¬aO?uu%?Œ¼>?µiˆ?ÃÇ]?çóÀ?À~Þ?BG9?L¼?W6b?‚?ìYŸ?ä)²?â¹"?ÚÀ¯?º¾Ô?´!?•îq?°Ø7@Uš@j‹?»0?µN8?LÜ?WÈ?¢œØ?ŸÐF?ªÜÒ?¤6 ?Yu?­Ð?gW¡?mR|?Æús?ÃËÜ?‚ž?|´H?xz +?sgÉ?¶9Ñ?»Û?»ãÓ?»î=?DÁd?7B?–f%?¡»m>5Óò>Ÿ˜>Ìžr?™…f?³õÝ?‰@•?{3ü? _î>Ð{?Ž/?¦6â?¸®Í?µŠÂ@Ê@-×O?sé>û¯A?V‚?Uá{?âäd@}?™3?{¸ä?­D-?·–@|ƒ@Xk@8æ?ü5v?¤´Z?Œ™u?W9q?[~©@ÂL@'5?ûÿÐ?âˆ^?“?@ìZ?×äÚ?økž@@SÝ@Q."?‚-S>­á!?üË#@ ê?„)?oÓ?šË?³­k?„. ?p¶þ?¬¿?»—e?¼ÿ7?½è¼?;=?»l*@4…@=¾u?0q>ýý=¡¡ï=ƒ @Gþs@R +?Ý»?áW@ÛN@º}@ Q@šÝ@t@O¥? A?úœ?áþ?↨?aÈ©?g£@@`†g@a®=?ŸÔ+?¡rí@þM¼?o÷?„ÕÇ?Ÿ‘@ ~Õ?ôD¢?Ùó?uÌ ?'ê?V £?¸A?µ¯K?—u?–Ø?~@]?m&?¾¯o?ïç+@=ç:@;?q=?«¥³@DU@ úª?ò0K?öŽ?ü*ƒ?¾ôS?(¦c?NÂ?—@?À½î?ùÙ‘?ç¶Î?Ã.v@ +æ@K{@%4?Ôÿ·?¯£Z?]õ¹?èüŒ@R±‹@VÔ>'¡=â‚ž=kZ„>Ú]Ñ?€?³É-?òJ?Ù<Å?¾L¿@ F8@@)“@ ÐÄ?ª»?âÇ$@o ?ì9(?§Eo?ë@¶M@`?ðõh@Ž;@ Ç­@Y?ív_@ +òR@O@7«X@S÷T@W€ð@[ë?Ù©<Œ¸H?}Àv?ï«@ +zi@ @ 2…@c?×èƒ?¨,³?ßí@ Û?øW?ÜÆÜ?Üýu?Øå?ìQê@*?ÑQÞ?hÑ?ë±”@$ö@ýí?˦ø?á³?úp@?±ú@xl@'Ò$?Ä [?”ª°?^&à?¥>?È©@È\@TöÑ@aûN@iý´@$N??¾×¦@Ò@)µ¸?ð6?{‡´?¤?ËY°@÷ù@!Û@#x‡@#d+?ÌÆ?7?Ϊa@6åƒ@&”@U@75[@jÄk@%8?”±k?ÇÔ@_/?ñ%œ?½ù°?Í£²?ᨿ?Íìç?¨y×?–w‚?O£E?ˆTÉ?áŽü@ï@%cÄ@&K&@:ró@/¡Ù@ˆÁ@At @ Æq@a“@=ú’@>¼¼@S¶f@@5?Ö&˜?øé@@-Ò÷@ ŠM?¼^?ÉœR@¬4"@¢]Ç?Ëóº?ËN@€ù@€»@˜I}@‘†?ðv&?íô@X|@Qý +@MŽ@4Þû@Œ†@+ù@8ÙB@LÃ@&@\@Ú†@44ë@W@Ú@4Q¾?÷ã?õÊœ?ñ6@à@jÀ¿@Lœ¿?õ]º?éâ[?ͳ0?üq§@Vè@c^'@]%å@[¨+?êuj?à±½@‹¤@‹4@†w}@‰ +×@vf”@qId@¨›í@°ª@@mͼ@Kˆ©@3ØŠ@)q +?ÿ ã?ÑÛb@+r@6#©@EåÆ@_—E@?á¦@ØÊ@/ /@T)i@ ²±?‡™â?ºá@„.@;D™@¢>>@˜ýk@3¶@5Ãt?ñáÔ?òS@XIÃ@^F@† +?ñkõ@d@Ž?@FB^@Ríà@ý?Óðô@ÏÁ@l¯@g@³@4?@R=T@_r¦@ykú@6›J> >æ'»?ó•@.P@!ã.@'òµ@5Y@=eH@€¹@!NŒ@G|É@E @…¦?â{ï@Yšè@‹Lþ@/~?´I[@! @g$Ë@$Ç0?…ðJ?š‚i?´Ð?Ç{´@,¨Ò@ó‚w?.™®?ªxK?ƺ@O¥@={_?Ð.â?á«r?²æ7? @?Á í?Ç×c?ú—¡@Dë?Óñ*?w·þ?µ±5@ý¤@ +w?Ú²§?âÒt?ÓÊ?àùZ@r?õ¼?S°>ñIÖ?Ÿ°q?×ëA?¾=é?¬õ³?Ã]Z?ïîœ?æ´f?æ3?æ@,b@6IÖ@Vjl@d•¯@&?¼T?¨-ƒ?ˆfK?Ô(@,Ùp@Ús?½@˜?Å‹)?«~¬?«l?Þ³j?ácù?¢À ?˜í÷?’çÇ?ˆôV?»x@´?Ú2?º7ø?Ç¿›?ª‰a?ªÑ:?Óõ ?Љ?9²’>íHý?Æ@]@ Â’?ÚÊ•?ÂÝ?˜z?¦Œ¹?©¡ˆ?©“G?MÍØ?ÿ?’m@?ÅÈ…?µ»à?“¯¥?—=?¶È ?¥Y>áFT>á/‚?hÿÞ?‚^@ ÎÐ@6Ð>@°D?—Fê?­ÃÈ?Úû?ß2\?ÜCÃ?Ñm¢?ê†?ò–/?õÚÓ?Ø·÷?ì@A?ßyg>óŠ>â¸?œ?(2þ>ÁvF>õ¬Õ?JûB?_q@?€ÇA?rÈ?/,Ñ>ïï>í •>Ãpl>¬ä?Œö×?Ÿ=Â?^ ?S ?*‰u>Þå’> ½V<̶H>‚3?2°Í?Uä?¬F)?¥Ìq?ŸÂ)?¯›H?þGˆ@"àÿ@.{Ê@6‡•S=ècq?w| ?©¥¶?§ð?§«?žz]?Y§?o³¿?ˆ7Ð?‚1ò?m ?10Œ?‰ÛÙ?­vK?ÝY?ø®õ?¾µÙ?(t°?EïÛ?÷X3@ãç?§+ì?¥Ç(?!é™>ßý@?F …?ˆÃ}?dw>ãIä?I¾n@(q@&/,?¥"Ý?žïû?ðSF?á´s?’8:?Œx?n2û>ÍG_>‚|B>ïäû?±æ?bU»?eÙ?©ø°?ªö?¿K?ÎѬ?Pi¿>í¼)?5…¯?I¼üYì? ‡ ?~‹)?ŒÁ0?BU$?Ø–>ž™«=¬­â?9Ò?¨Ÿñ?aêf>x_>÷Po?O…?7þà?;r?V}+<; >Ž?:¦ ?…>ˆ¾ã>QåÄ?{?‚ÎÇ>*AÛ;z>º>o>îR?êÑL#>¬í>Ä\’>èDR>ò0R>HŒ=ÔgÊ>eM´=Ø@Ÿ?(j?…¢?({a>û™¸=èÔX<Þž;>¡Z<>]-“?ª‚i?ç;?“Ô6?„‘‘<îÞ?”Yš?j8?CG>úªI?¤©?dh+?Î]?âă?Ú3;8Ü¥>Ù·>ê£?j´?«Ú>¹ù”=Ô}ö>³i?‰“>ƒ=…>7X5>Í«Ý?zÉ2?t u?[bí?Xœ¸?‚Š?¿È?TÕ5?TVb? d?G_?:Ç?#œ?}ý?› +ý?QT=>ëßï?NÃ!?£õ=?•ßg?l?;a=0&H=¿c>ÿìÚ?~×@ “~@ õÊ?.Ú&?Ûl>ùd—>õÿv>îÞd>ìÐÃ>ï9R>ï?1bÑ?m?>[Ä>í2>ï@>ô©í>÷0I>ím{>×S;„ö?Ê ? Å’?¬Ô„?¸úG?¨êå?¢h?U ?/”?Û>›u>eò=ÇZ–>ü0p?…R[?Ÿ‰?ÏD4?CV=H$3>¢wR>•5?:ª´??ýº>ÿÂØ>ïoÁ?U?o“ú?Žˆ?–X4?º¼?Ít?Ö?,úG?GýQ?p'r?p;K?pMo?p_Ï?ps,?L >Ù>8æ;?ö”?ÃÁ?…Ýé?„ä«?Ô‹:?ÜéZ?«"î?¥lT>¤È“=,X?:Um?}u-?rV­?p¤B?-ÊÇ>ô%í?5Ú—?rö?r?r*^?"ÿò=ƒ‡°?¤?Ç"Ç?§n ?C|?.™þ?•ÃE?“í`?£TÚ?£¡H?ï ?ëê?·«û?¶z[?˜q?–E¶?ßz-?÷So?¹Š®?«0Y?·¥F?¶íõ?@¦<>§ÖJ?ZaÅ?žD-?J>u>µå7>_íA=ÃE‹>ß':?t¨Ø?Š?H?«#ú?òn?ç‰?:%j?¸Ý?ŸüÍ>ûç?"è6?³K®?¦wÝ>õ‰ü?”z?¸BB?··?¤×p?ª;.?\âŒ?P#O?Mô?IÚ´?¬Þ÷w?m?ø)?±lî@'?Å 9>ùí¦>øÚ?åP?³ï@1D›@ô ?ŽÇþ?‡Â‡?^Ðá?x„ ?™ß5?œ©×?·—Ë?̲Ü?øÈ£?Ñg? «ž?@÷>r~‹?)¾@4É@.G?ºòÁ?ªÙ +>ùeA?*Pä@§…@6Á?ÿv?üÅè?dq°?c¹>ùà(?Jú@8B@8¿¹?ú>?ø[ ?ôÅD?ñxÃ@11y@/|3?¿ßØ?»Úu?¢O‘?œâ8?ÔX ?ÔDD@̤@ BÑ>ׄ>q?¹ëR?Àq(@«@“ ?¢Ä¥?–L?VŽ?P¸%@ýh@)@ôc?ûy?qÙg?:"F@07Ù@LvÝ@6@6€í?a=X>ýP)@ Ä5@6ì9?(Rž>œp\?ÚN?üá?“™ß?|/ê?Óíµ?Úçe@?Hë@Q>Ñ@ _?ül?”Dš?|~g@ @ a@+0d@9ÓK?­xý?|µ‰?ì$@°Å?ÖhL?¿Z?¬Ní?¢Øz?3æ_?GY?p—ë?£Ç>–ˆ=5„?Ï}-?ì{.@Ç3@„c@;’Š@<à? +-?D7^?Œµ7?” +8?1Ø>ýsr?.~·?9SM@­@ w@)¶@~s@îR@ÿ½?È?µJ³?æ”?l@•š@–Ù?ý‡?q“7?užE?y«?»_L?Áqx?ù‰>ýÿä?`6?YÆ®?è{¢?ñå`>€4’>—ÏÈ@,@O?Å2 ?Ê<ï?Èû&?Ð_?}rÂ?†Î?¾‘¦?¸‡«?o œ?Xþ?—|N?ª(h@3µ@ ÷@ÚG@µW?¾ ì?¯y×?ù‰?W[@=Äp@1†?ù³U@ðV@:O¬@(í±?±Á?šþ>þ;\?Evì?èX^?×g?±jì?®Î?¾©Í?Û|G@#Ž@@!¦@ °?ò€l?zq?.&ç>«w>´Q>Dlx>ãá?Žþô?œ&?Â?;?«Æ‘?ˆ?ƒ§p?~!E?«½Þ@R?à´O?˜×â@·@d! @þ">þ ð>Ú:>•”=?¿¦?y(ž?˜îµ?¸H?éˆb@"@gA?¦?•F?w•Ó?º¾3@Éi?ýµ`?ÊwŸ?ÂäÂ?¾Rä? þC?}ºÚ?ƒ^Ó?Œ'µ?¦@A?¾<‰?ØÎk?ý{“?ù¨?é%¦?ýÖ@ I2@?ýx@'XÚ@L”I?÷A/?L¬º?‰÷È?ªU%?µÑp?½óh?íÝd@îî@fÜ?ò9Ó?ùÖ6?ý"@P3@TÇ@V.Y@„f*@<ŒR@Ñ8?ª¿˜?D¯¨?¯®n?æ`×?ñå?ü¹ +?ëðs?Ü}Ÿ@ÛÊ@`ó?Àç©?RØÁ?Œ?x?­"q?ª†¡?ŸÔN?ïËj@\?öeä?¿@¸\‘@œ¢@;]±@Bôø@QÜ@E%L@5û»@A·f@EK@9Ï@a;@ê£?šôÑ?º›@(?¡@ž¶?ýr3@ Äc@Ièô@Jï®@ëG@oŽ@WÓ@V‘Á@@­®@Bnô?ø_Ë?ôÿK?‹5“?ŽÙQ@íÙ@î@%Û“@@\"·@Uôí?ÜO?ÐoL@(µH@2è˜@‰ûw@•+í@yÁª@tŠ‰@<?½YŽ?þx9@‡@"Z@*Ú @;IJ@Duz@0}@'2›@;—ò@E»~?¿áD>‘„?ÑZq@@«ð@H—Ž@ZcÆ@=fs@Ê@}@È.@<—@‡ '@w%º@:¢@2\>@~ê@ƒ?·¼Ì?È^;@!#/@">>@P@•@”`c@– 1@_@§ë@8EÖ@>(@µ~@«Ü@2 à@C‚@8óÓ@G'¬@¼•@¥s@F•@wŸž@=yÝ@ >6@—c@ŠÖ?ú–B?»i8?ªš?r4?ÛÓ@Z¥M@Ws@cÅã@X‡?ñóÿ?þ^ä@1¡&@(/N@&Câ@"x?æx7?é9@È<@¶“@Ûâ@ÊŠ@ kÜ@]@Fñ@]8@(eŠ@/©V@&˜‚@*'@5 @:á@ T?Ê8ž?ýëQ@kú–@XÚg@ ±@ΰ?Ö€†?ÞRÔ@:?@4ý@^•H@k `@Fä4@:À@0¸@$^:@;ï@N÷T@@…¿@:ïh@ /?m³á?­ŠO@qì@)à©@}Û@tÈa@g}@ +þ¾?öqv?ò Ò?é b?ì•?'?lb—@)—¥@`ì±@ð‚?¶ev?«‚?™f’?­ºË?ùp½?òÅ´?¢?‘WË?é]X?áf³@4§Ã@6ñk@7@ã@?‚·?Þ&?·Œ±?É-X?ÚÑg@ áB@ Š:?í³:?mWp?ŸÝ¥@ j‡@ Û@0î @9Rô?& Ò?.¿Ô?–÷Æ?¬Ü@Mg@\X@äÔ@ @ˆó@"š@.P@QcI@;ÇÑ?ðü›?ä±X?¤,À?šµÑ@Qo!@jç>?Ó8o?j²;?ýGÓ@&!Ñ?ÓîJ?5?ˆ¤o?àÃJ?é&8?æí?åƒ?¸²B?³Æ?¬ïI?°×?±]V?¬ 1@ƒ¹@3¬@)B^@,Àã@¬‹?AX•?SÛô?«oÏ?«^•@"@&/k?ˆ1€?"ß?ŠU¤?±»+@ À«@c¯`@7Ä}? ? +ÐC?¨åµ?ªj~?ÜŽ½?ã?±iÇ?‹ ³?ÁB\@Rî@/±@Àè@Þ¹,>Þ±e?¶Ÿq?Åæù?Z!€? ·B?’õ0?Þ•D?ÂTr?”Óš?» ï@ +]@Ëä?£,?¥ÔÔ?ÈÂY?×_ä?Ákª?¶%Z@™ @&Ø`@Ç)?"ïx?.ÔÀ?Uå¸?7§?¨ËÙ?Üt†?¨¦?qž»?}±?„ç‘?ŠõH?‘ X?—Ø@¡s@eã?°=“?j]Ù?žýè?Ë!ð?´{Ø?_ek?iÑq?š2j? mž>÷3ž>ó€V>ì$n>ßì ?  I?&¢Æ?o?ˆ?¨”x?šš©@¢ê@ +ˆ?¡ á?Ž¿æ?b7}?hDA?ßk ?Ò¸f?”³¬?€n2?j}©?]Ïó?ˆ¹~?› ²?ƒA¼?e†i?u“Õ?d’y?c(‘?`´K?hýñ?Tœç?Gœ»?a?f'ü?fd?f¨¾?\¯?aÐü?jœ?w·V?Fà«>èCx?Q ?Ñ«?Ëû?¥iN?¤ú`?cÿÓ?XÀ?øó ?äÈ—>Íâ>ê ?m1@?”å>d“i=^)à=óyo?µú?1Íù?][?o~Í?"ð?´;=?W]×>Íä?0¶¬?rY?Sn¦?D?g>ÀÀ^>±>ôàÊ>c×$=:d >(Í>5œ>JÝÅ=sÄ<,¶ü>U± >cÍ°?¼˜@î?Úè°?±f‹=•å…?j—?j›?p¯?¯‚Y?„õÌ>ê:ö?wk?mɸ?LI¸<–²´>öø¬>ø¶ç?Öÿ?âS?y5?sðS?tn}?tÜÈ>Ñ=,èm?&Z?¤Ý?¤®E?¤‹œ?†ö>Ó&N?‘?¤Uv?¯ $@;Ö@;ÿC?„ö?k}­?Þ.þ?ñE5?yÒ=-4ê>F‰>×wq>î=^>þ§Ñ?#ð?[î??´“>úõÐ?HÙ?_À)?bšØ?lX?m>¢?­ h?®œô?zÍ£?mÓA?b8>ìă?Gµ«?lß»>ÅGv;êL>l–e>íÐ>í/f>í>³>íLé>í_È? «?Y°Œ?Nz|>ížé>í±A?bê?¯]>€u±>f]?ú?@`?ÆP?™¥†?1õ>¶.ï>,š>zœ?#S}?™ÒÝ?q¾S>£8?12?°é¡?¦o9?_÷p?\4˜?›$ ?šEd?@Ú¨?9Jp?f¥Ì?oˆý?ŽyO?–Ç°?®ð ?¿µß?o™4? ó‰?)Ö˜?B2t?X4Ù?pA´?pQÀ?pgq?o8?[Õ?Wà5?p²O?yê‚?¨„±?¨å?]{…?_¶S?&O?ûc?ž?ˆl?Æÿ6?ìÉs?^Š@>ñ«®?‰5_?±v2?Ñ€G?é »?Ë@Ÿ?®–/?F‡1>‚DJ?BO>?PcÚ?Tê?JÈû??Pe?7'>ò=?Ó‹?äx?åm!?“‰4?”­;?ºŒ×?·®¶?´óT?²1­?)>Ë)6?<~â?f{Ü?VD?L¢Ï?’·3?°úÖ?ÁŽC?ÅÒ?¥Í?;Æ[?džo?Š7Ö?eS\?"_?:I?tå‘?¡ôK?ôì?Òyá?od!?„³ž?·þµ?¬] ?cDu?…ß®@ F±@ eý?Öþ>?ÐA¸?uíÑ?và_?É÷ ?Ç`¸?ý–?”)?‘›?™ ¯?µ"?¸ìN?Ãü¥?Ï=p?Á$÷?¹!ñ?¸”È?¾Ç*@2\@XBv?Ýö ?_ +;?JVØ?0JÉ?V–?w‡p?…Æ[?†?Þ´Ý@<ô@"<@Â?Å´?BL#?5òC?;?‚Ä?c?l¡Š?ºUÞ?Ã%?ÎЫ?¿]M?­ ?ˆ¤Í>‰@+>ÊÏ,?8âx?>Gÿ?y2?|j?‹Wå?’pµ?K¯?¥û@å‘@wI>ù??R?6 +?'C,?ÐF?(Åô?÷Š®?ïã?{I?…&?¿b*?¸Š>²‹Ï>åðÎ?)ˆì?3¬?‹ý3?Öâ?¡ÞR?¥x?ÁÒ%?ζ†?J²?„ÈI?ò Ý?úòé@-I‰@2'¹?¬â&?¤e?_þ?N…í@,g@ ’™?⨸?áâ…?å¯j?éz0?”÷?ˆOp?Ö?ËÇ?°Þc?ºSU@3/@<åJ?¾^_?¢o?ñ1|?ü @2GB@3k8?íÝí?å»6@_Ñ@"T¦@$K/@!I@RË?ûX&@Q2@¯Ý?µÞë?€¨?¦¶ü?¥Å?‘Üf?Ž6<@3/@E5•@: I@9”e?Ño?½®W?Á¼d?¾‘?íÚ>ò–?€jí?‹¢i@/šj@8Ÿ1?ùu*?÷ë?¦`Ó?™ýmM@‚°@ßå@Ù@r´?Ã]?¾+Í@  ’@ R ?±Ú3?±{à@(¼$@'#ƒ?ýÐ? &ï?"?!6>ÿš!? Žµ?uÝy?n +•?D?!ó?¾jí?º.#?=;Ú?H&?ýñ?øo?¦#0?žÜ2?E#?UZ?»\ò?¯â:?£©ž?’çG=Úß ?Ix ?ƒì2@:'k@;¶|@#ûK@?¬s?¨°†?z!¢?¡Âð@tG@ö5?þ"<@ó‡@Y’â@2º[?6m_?štç@(9ü@Þ?Áë¡?êt@$Š@ |æ?Úé?¨˜?¾?Ì ?ôûp@ ë)@4¤U@ ¸?=ªn?]üß?•¾æ?²Ô?÷5?üL!@d ?ºôé?Š?Ô7? *Ñ?C8?‘æå?ñ¯T@;¼p@K?ìE£?â‰î?º$ë?’ëh?Gèõ?%Þi>ýï +?†õ?âU?«uV?O§Ÿ?·“‡@=‡@ +~Ã@~ ?ÛXÆ?ˆ‰‚?Ûù@ —?úMÅ?¼ùL??†=AR@?Ùj)@JùÑ@:3@+öc@éF?¾)4?ÈT”?Ózd?ªÆš?HS?º¯÷?Ü«ò?âýM?öÖQ?¥Ù¦?-vb?øq?¶ÀW?·ôF?½ç®?¦§Å?‘??.¦?Œ ?ÈÒ£?üz ?¶i?Š·¢?¡ä¶?¼‰¢@ ®@/ö?Íó?WÄt?)?­õ?È[?Ù¸¶?Ü#ˆ?Þ~@y‹@0ÔÛ?ä{?”ýZ?žPœ?œŸ€?ë*€@rs@?ü:¼@ð†@˜8?‚:"=·¬2?fYà?´@3}Õ@jg@,wä@q*@d?û½f?ጩ?Õ¾â?îŽk?û“ù?™M? fe?Ê®¹@ü?Úñµ@V2x@¨Æ?¾XÃ@:lh@…¼@Y_B@(üÉ@0x,@7†?õ—À?…D½?‘ús?š5›?€?a›b?‘Ì´?ÁE?î."@à@#³s@;”v@$ŒJ@5?ý5?ú‡µ@ BØ@XÀ@a´£@tÊÚ@M=N?ù‡Š@õÏ@&kœ@+Ìv@1øœ@6‚?ŸØü?Ù3î@:Î@-€ü?éi‹?Ѳ†? ®ù?™sE?Ú­9?Ñ×Á?ö†º?ü4€@€Í@¿y@}Æ@nè?×Æ?Òòf@"¨@œ³@4%@:{q@šÌ_@žï?°J ?Ž9i?ío•@b@V *@^wõ?å(û?¹è‡@ñp@‘As?ïÜ…?’p @ @0%\@CП@K´A@Î?ör@ã½@&, ?¶¬>ö'$@9v=@£FH@o¶@sA-@$Ž8?xŠ4?²$?ü4á@!´š@cý¸@[g¯@Aá6@TÀ>@ƒ5@eu®?ÓŸù?ÝDÎ@ˆ@äö?“?;ó„@µk@zj@"X@Ù@¶É¼@·ž@Z\E@U™í@&Ï$@XY@,i@ k@÷Ä@@Td @b@":?«ö]?Þ¶?ÿ6`@v5×@¾`Ô@…ya?Þ“Z@)°@16ª@;ý@G’i@CA5@2B”@0ós@erm@j Z@7»é@?Ç?†´B?vm9@ v~@ª®?Ð^ð?¿°E@\Ô@~b@*@]ã@MxŽ@}ko@Jê@„Ä@$B¹@L”@W§¢@lͨ@Xì,@½Á@'@F8@?0€@¹|@¸J@=ú@CÆ@*+Z@(§Ÿ@5cÜ@=¯q@†Î@”êú@Mš"@¼¨@ .å@ +u@ 2@ ¬†@Îõ@$Õð@*DË@Hi¾@I¯Û@.ó˜@7*I@#½@D«>Yí/=Ä% >éoB? 0˜?û8w@'‹à@§ÿ?Íl¢?ùÛæ@K¢?æ¾?k{g?ÜÕ@„T¬@tÊ?ëç?ìö@P³@m(@:ö@b@?Ûl?ºN0?–¤ ?zH@ +]ß@Zm¾@5À?èô´@ H&@Cæª@.í?¨Óú?´Ûr?4%„?*ñl?I¿X?<¯Ý?Ók@øR@¸ü@-Uú@Ÿw?Å L?Ü7w@IÓ@Ö§?âA1?䃂?Ž`k?¡¼?îm/?ï5?ã±å?æ??Éî|?ǹ†?‰>Ô>æ{ñ>ûŠÄ?'ûM?jE~?Ò(Ô?ÖäG?Û t?à`Ö?²¨´?¬%Ç?óí@Es@Q‘@ ’ù@¢?ëJ?Ôðì?PEA??ɸ?«fH?«Vc?±»^?Àô? j?ˆºú?“À?¨J?ü¹´@ày2?&8o@Øa@`š?‰ ’?” +?¹Wµ?²@Ø?ˆ1Ç?_ÚC?”¼l?ÞD¸?Ñ¡?Ÿh?™Ž?Ù7ô?˨Z?Íwv?½™å?¿˜>¤ð“?a?\€d?°?5ù?Ìm)?À“à@¯y@óü@–k@6%@%•U?ãfÃ?ÕŸ"?>jg?2ãø?ðµX?鵑?€ûi?I'±?§l?ÞŠ"?©Ô.?H±?!$?š—Ô?¦J?Sjþ?0°“?•`Ø?«t??ßÆ£@cÝ?è1.?Á±+?ÏSÂ?%Ë?æ ?µMu?ËÕ¥?Uyc>çØÝ?57‡?^±¹?tÅÈ??‹ª?–~?Šf‚>øÚá>Þú@Ýl@.Ÿâ@€?îà?Øj»?´ð”? ~Ã?…UêÈ>>߯?œä5?«dÿ?Ežÿ>àÏ? ê?~¿õ?‹kÌ?f?~ìÍ?þgý?ë¥U?¥~›?¨ô?“X?€2?þ8=—Š4>òwè?©`?½{@1.?éa¨?ºé9?ÔÐw?ÙƒZ?Þ9f@cB@}¦?ÊC?„S?€ó?W¿4?K,?d{¹?U_ï>ç^>øï ?eWd?eŽn?•÷?th?†ö÷?€y.?#¨>ç+Ä>÷x0? KU?º¿>è%Ü?g²?bº?‚¥V?wÛ?khj?iêê?gŒÁ?/±Õ?t`î=Iuø;¬<>m´>ó¼?S¿?8j´?Ž¬?²Ÿº?!†„=¹’Ì>në¯>΃>ôKb>òË(>l^‰>y+€>ôªÌ>nJa=å<~X!>Såá>Š¬3=Žÿe?ö ?šSÁ?ø°Å@Æí>p æ>ª‡¶>îRV>Mn; ˆ@>[êç>ê €?IU?¯™á?„½<®¶,> +ý?e™à?dVi?c&æ?b €?¦y ?ªªq?§Èƒ?¦Ë?;ŸÍ>øga>æ©k>Ûûí>óüâ?"á>ÀȘ>á­>jùX?Å?'w>Ú»>ê`©?{~Í?{N@®@ ‘?AÁö>ë’Ü>U~=ÏM?½:?q‚µ?›=š”>Êrá?dip?#<ªV†>Bcé?l@w?b]>ì^>îyú?®ÒÉ?±j?éß>ì¬Ä?–rò?°g¢?‡£?dF8?$ˆ£>í>í>í)&>í7Û>íKJ>óŠ?ì?8>>팦?o’?ŸñÉ?žª˜?“{ ?̬?¡Ý?©‚}?²¶”?²›B?€2@?O»>§©>t®>–œ">"Ã>#ô\>Ϲ ?|­=?yÉ?W\?Zøõ?^¥X?hÔ¨?—Ò?–íŠ?6¼?4®“?­ü?ºk?'ž?*à >­{æ><è>²[>ð ?w²A?²6?…ƒÞ?+Lo?w¬i?Ã2Õ?º¸ì?’¹?Šç_?pÁç?i¥?f?O$?¢s}?¦p?æÈ7?ì- ?%@¿>ñlo?œÞ{?³t˜?ÞjŒ?îb>?§Yî?„Ÿù?¢,H?µˆ?§aŸ?”ÎÃ?€»Ã?W@e?<ÇB?–?‹â>ò @??c„?ÃÙt?¬4?Ztô?d±?s4?€@ !¶@bÝ?»9?½µ(?˜ß??‘àx>)~ó?`Ìà?†sK?(9“>÷¸Ç?˜‚?Î~E?ÚI?á)?èË‚?íט@Ž‰@c‰?Ù,?r-?3g= np>Äò©?uä?xwÇ?Ûl?jd?ub[?Ÿ–@ru@Ï}?õ¬ü?òµÇ?Î>?ÆàÁ?¨õ?ªØ«>0Z>†À>âK>øaV?>º?M×á?7~?+k?¼è ?ÍÙO?pOú?A†?Óg?÷ƒ?]ÌT>÷$ì?¸Á?ï¸X?£Z[?wn@e¯@X0‰?ù=O?Êa?… £?Š-Ì?’†?g™Ó?/Ý3>øK?X?œ]?’Ç[?Ž´>?ß@$V@òª? ñ ?w@>ø·>?eýË?ØMo?§ø+?Tg?¸Ã?)Ò'?ƒø¸@¦Î@ö“?ùmå?Ù0é?¹g?T®Ë?ñ$Á?Ú¥„?fRa?¤n?ºm?² Ð?yåÆ?k‡?‰C?;˜u?Ø +?Æ¢ú?aä¾?`›?zY?€×Ø?¨WË?¥©ã?ŽÜ?‹eÝ?»þ¢?ºRÄ?›õE?ž:y?ÂÏ?Çi?¯,K?«_?ÐþÌ?Ï~q?ͬ?Ëhû?|ø%?{©¡?‘SK?“œ?òJ ?÷L +?¾‰¼?¼¯ @t×5@uñ@"†¹@ b0@&m@†*>åÈ>ÚÑw?ÄaF?Õtï?ê.ô?æÄu?ˆ…?Šx–@%ó@,"›@f@Þ"@8@yx?ô²N?÷æµ@»a@žà?±a¼?®ü?É…?Èv›@ T@Ì÷?×']?ÊZ-@ÑŠ@ü¥@s?”@pMu@Å”@Ôæ?Ûµ?à+i?¿¼™?½Ø @ œ@ +Ë?€Pýæ?*3S@ä@,P?}Ð?Z?ý×w?ðîí?˜6Ä?ŒÑØ>ë1?Gl2@°—@_ª?˜Û›?Ž\·?..Á?J–q?Ð ¹?ÎSJ?‹7?Ó%í@'E@ ×!>zÚ>sv?1Ì?¥‘…@zÄy@>5>K«Z?³›i@–Þa@j£ ?`ƒù?–“‹@@y?èÜ›?~š?¨\·@sš?ýÃô?¾§^?Î×-?õ£Ÿ?Â|²?O|é?œÐ>@IØ@úy?ê¥?é-P?ó¥?ÝÇD?¸n¸?ê°i@y@DÊ@x8#@>c=@¨?˜8@+Á@µ@-v©@æz@þÿ?Ä*$?†Ø?ÞÑ@>´?çÀ²?œ­™?·N‰?ØýÕ?˜J?+8\? ¦œ?öwÃ?í¾?ر>?ÙÄ›?ØXW?æ—?ù~^?˜ÃÖ>ÿ»?ALŸ?mÂ]@«@Bj¡?îk?€×·?ùõW@#’?õm?¾?å)õ?õ„'@¢@«½?¥yÛ?"¶?5h?PYŒ?ÑG³@ ~e?ÙÅ°?°Ï?Ú´?ôÄÚ@ãŸ@"8? ¬??´’@?ò×Þ?îÙ?é3Ÿ@Ô®@ u@OW@¼·?‘m?.÷ ?‚2â?›wf?ÚYÏ?÷}@3@¶â?’BF>ü]…?˜$R?Ñ›ð?¿‘¢?³ês?ÖIî?ïfÒ@s¸@y_@?b@K©t@'$1@”@äú@#Gk@*Û?ÐÜŠ@…þ@´œ?üؽ?ß“?Û]™?à‘?®Ç?|@2@%Ž$@Â??ßœ ?ÜÃ[?Ö6?¦ ¯?­@Hü­@—fè@q¦@HÆg@ kA?´‹@bþ@E÷?ö>H?If ?_sê?zpY?ÈËR@ +¼?÷ß?â=@Q#@: Y@5$ï@+¬;@ æñ@4@$ @Gü@—@j@<·K@‰®ß@n=$@*¢k@#àu@Ö&@#¶î@7¡­@3F?o5f?¾Ý“@F.„@GÛ@VË®@fŠŸ@†Tµ@‡M0@‚íù@Xá¹>ü[?`Qˆ@4Úú@7Š\@dŒ¦@dk@?t@5,¸?ÑSy?Ø#ƒ@{@ž•@„jó@…q·@I¯?íWt?{Wv?TB2@t»@‡iÕ@ Ú?öžE@ð@±Ÿ@`q@i5#@ï?ò|@Lr4@iÑŸ@'?öXÏ?ð«ç?ç…?—_@?>Þf@ý°@p n@e÷@Ué@9ó0@r-@ œ—@0&@Fª@nr@T"@#ÏÝ@*Ü@@+h@/yÞ?¿“_?Ü7@#¥Š@ ¦?Õ„ø?å<Ë@¯¸·@«“U@¶Ž5@²2v@Q¯ñ@XÜò@4ü÷@.{€@Z@g>?ž^?sf @&ç@FNÒ@¿´K@ï Ë@rfÉ?¥Ö@(]Ä@sˆ@eõÚ@`ˆ©@:Í?òY @OÉ@AKQ@49á@ß>@%P0@-Ï2@2]â@I@õ2?Í¿»?Æ/ó?¹Ïò?¶2?½Ì?ÿ{?v¡8?„ç@"óY@H—p@,LO@ž‹@<ßl@\ÝÅ@YÚë@[0Ã@T~t@=½@9´@5(Þ@ Ö?½dó?¶¿?ˆeœ?¢š±?Ê+8?ÚÚÑ@ºu@ªJ@4$<@1À7@¨(?ùa]@vŸñ@“fx@p'8@L¤E@²¯?íƵ@·D@EæŒ@mAÀ@—e³@}~±@9r@Hþ?ÎÈÒ?Ïßf@q²d@/°@ÊË@Ýt@žÌ@$?åÕ³?ÜgÚ?ëä0?êT&?á”?ê#‰?¾¾ ?Tp{?Ü™C@ƒ–g@eC;?7Á?,D!?›ñ+?©6?¢M³?©Dà@(¥X@;‰Ý@+áo@![@ Ì?õ‘Ø?ÓÆð?°‹ÿ?è^Ý@4+@(­’?¦Î?¿¶j@"úJ@ñ`?Ý/?Îݹ?Bô?viR?qG?n5?²?Þs¢?Ù¯T?Ôï?Ð*Z?ËfÅ?·I¶@8@¬K?›³?l¹¤?¼gt?ÛºŒ?²5?ƒö?†žÙ?‰Âî?|ê“?¬~P?­æU?Äëz?¶CC?sØ]?n3j?¬ò§?È.$?¥Án?Šs¶?R ?”0?«¾q?䯠?à5?®ô +?«eð?tú½?v°?@fÜ??æ?5FÖ?,‚`?‹…Ÿ?ÒÑ?ÔY?Ô½‚?ÞÍd?á#$?×…©?×D%?Òâx?ͳA?ÈrZ?¬½/?¦h ?ç$‹@) @"ÉŸ?¨Üq?§‘@ß-@ J^?í-+?áÄ•?¹g?›L¡?‚Ì)?am?‘ë‹?áîœ?Ö ? '?›þ?¸šõ?ÀúP?É}‘?Ùƒ3?Ù³>·8ƒ>Õu>â8?!f´?àL˜?à5Å?„ÆŒ?jÀo?¶ÃI?ܽÂ?»?ŠB?n§Ú?bIT?bº3?­&?1Ìê?\›?Š,@u,@0]?›½ñ=;¨f?xT²@!t4@3?B¥?7P:?Õ¡X?år@ï¶@WW?¯]µ>×!9?kù ?Þ¬¼?͘ã?^˜?^’o@ !À@#Ù?§÷Æ?A$Ž?œÑ)?Þt1?ÕÎk?¸Óæ?¥[Ï?Žœº?ˆÂœ?’>æ?˜ûs?Ìvr?ÞdŒ@bg@;hD@<Ê?R8?'ð£?^u!?^xÜ?†Fý?y­¡?À•&?ÖÁg?š×?^›¼?‹r?Äò?¿±?ÍÙ%?Óñ!?FÛ>àïš>®3°?ß?Ÿ ^?Õ‚é?Ñ À?ÅC;?Ù/Ž?Ï*?ÛLþ>úüö>ßš ?™}þ?»öþ?‘Æ?Mk? J¾>®¬d?͉?ß~È?Ù)r@ \‡@ m¯?¢N?Š?—?ž'š?¨âù?®Šœ?«%É?]½>fUª?=™?Ê­ ?ÞúS>âW÷>â„N?‚2?¥ëe?D}°?CÆ3?iðú?c‘Z?N·,?MÞs?t<4?wšq?jä¸?bRs?W*r?ž?—Ž ??”Å?^#?—ú??Dÿ>æì6>€Øù=ØQÆ>Åv$?2@?±!>Œ¾•>ßþL?²÷£?›¢n=ÕÓ¶>X…ª>™e>{Ïw>E_ó>ÅJ{>¦Yã>Æ}>âVÅ>®“ +>µB>ø&ø?0iš?7A,?iqË?~—¡?>Tâ?À>” ¡>o5|>ô}>x{Ç?Çí¡@5&É@wp?篔?jzC>úéò> „Á?9ñ,?„—h>ܸ<³@<Ϭ8?Ý?aF?d¸%?gs†?3%Þ>ìµ?£1ƒ@/@R<\BË>êëÈ>ìÚ/==¢¹<?>Èi?m‚>’&Q?Hz?¬,U?Å‘?âiç?ϵ2?®…?‚ö‚<ÙX>†íž?â´?ݹ >ü4Þ>úÛ>äÍw>ä·5?ÈdÅ?èѺ?ÀU?¯ÂÈ?ÓY?ê¦[?mMm>·8?lû?l f?l04?WAm>ìM>ý¯)?mò]?o Â?älÇ?æ›õ?+þ‹?ü?T5ñ?lÚÏ>¬Wp=^Ð>Žm >íÃ>‹ÿ=bĬ=u‘¼=„fä=Ž*g=˜&5>&5?!ýr?+'‚?ƒ?ƒ¼¬?’˜?y†?-üã?5åÝ? }N?Â>ØØ>£.>þª ?ßš>š >Õ†æ?ƒŠ»?A$´>L-_>SK{>Z„b>ªw?”½—?™œ?¯ÿ?«E„>„œÝ>OŠF>öã5?º½?Yì>ïØã>´¸j> $o?•– ?ä Ï?dÒJ>‚ªO?s?jk¸?ÎHY?ÀNï?ŠÃÎ?ŽÑ®?­³œ?í»=Þ~q=×CÞ?gã¼?lÁ”>û´ +>ña@?¦¿#?µ$?ŠT?‚S?(†ç?b_>ŸØž>jU ?–gm?å;?”Ð?ú>Æ > U‰?þ?ˆ*?—?¾R?¬"û??³=?Rñ?™ðõ?3s?Öè‰?ÙÂs?”—ü?”I¯?þr?úÜý>â>ø>Ÿ3ê?ÊÑ­?ì£R@ R@ä?nG¯?–ò?8®1?Rþ'?—úÑ?±÷Ö?’0?t˜8>çó8²iÅ>içE>ëm5?Zûß?²[¢?°ß?¯aß?vÀó>9˜Þ>ÈNý?pù?v~?Ê2?æÄ?¤ðþ?¨¤µ? 6|? ‘µ?£Äè?œ}?9c?1I?]~?P•=?@1?HÜI?Ãù—?σL?œJæ?˜o?ÜÈ ?éíû?Q^m?ï?žã]?¹l3?ˆzI?qPõ@*Q@9ƒP?·?wœ¶?.ƒŸ?ºå? /Ë?£T?z¼Æ? rñ?’vÊ?ŒMg?²×?Ðå:?áñO?ÿÐR@>]@«?× Á?ÜAô?ÈÖ?–?Œôµ?‘ÿ]?½?–îˆ?|4>ù?Î?(Ä;?‡‹?‘¦G?³ÐK?M@=íš>^?zJþ?Še?¹Â?Ù3™@,z¤@ ¯Â>™úi? }?®Z?Ò‹@Gë@)œ >÷Ï?&û—?»Ýý?·aƒ?™Ay?”ÍU?<§ ?FzÍ?zËß?€Ý?³ýê?¿N’?úü_?ù”?êÞ?å"í?I;?bÿ+@ +ÁX@üÙ?·‚?¹úê?ÀUà?ÃCÆ@\˶@Y^>Rý­>œX?ÎÅ'?ÐÂv>Ë™‡>Ä0¨?zÿ?n‘@=4@:N?´Nà&$>óG@R&6@YMÀ@¬°-@ªµÖ?Ë‘@?ÓŒ-?’NC?™t‚?½¿þ?¼!_?Œíš?K=?µ x?»ê“?‘9@?Š £?Æ?yG?áÙÖ?âÌÔ@@~Ò@:ß+?}P;?ˆÌ@*Æ@ª?›­«?¡Ïù?¦RA?²¢1@9ˆv@3…?íûQ?çüÒ?Ÿ?†$F?¾6i?µØí?qϧ?|Àf?ªUó?–'ž? 1?0ˆ£?}À:?„ø?«7±?®m?¤?˜@—?F¸)?bŠ@$U@)9?¾eÝ?ÁÓ1?ÔLŸ?ÜÁ?í9w@õª@>×w@Và? Žl?•¯Ú@8v@"h?¾wl?®q˜?‘Éã?¢Fl?¨‡?®‹†?Û§?º¥D?q²?K©?’ñZ?›»’?¦V™?­-~?¾Û?ÉD¢?ß&ÿ?íõ@(d?÷3(?ÅiS?‘ñ*?5Ú=?±éK@ ×@¶ö?µ +—?ŸKï?}ôš?œ«‹?À?ÀÙj?Ëo¿?gÙ£?B´)?Õ…@2F@NtÏ@ ÀŸ?ÌÕ?Y&>ýÔÅ?È*@*Cø@Ú?Áž?ãkù?ýÁ³?¹çÅ?}¹À?b?A¾á?ÀÏ@ 1•@œ @.Äã?ÿý%?·Èš?àñ?üô?=D?“Æ?þh¦@>Ý@,:ü@ù~?éòÇ?ÉC?«Ð¡?•í‹?ÇÌ4?î÷@ Ù@½?äHÑ?½è¿?š±?cV?¥MU?½Öß?”±ˆ?}¤?º¦û?Ó·H@–‚@©³@+3?ùB@@®¨@=?Æ 5?“ø@\Ý@-ì¢@"b@ç¡?lÛ>J\Ì?¦\?á)ß@ ÷@É[@b‚?üc¨?˜"W?Fík?<ÿ ?3 ù?oôp?†U?:Z? Ý?T±è?€tñ?Œ´¬?›r?oó?Tæç@›o@,áI?ðÎ…?¼Å{@vŸ@@ƒ@>h|@LŽv@)”@ ?ž”A?( /?Å,@ ˜@•Ã@&ùÁ@?p!@PÔ¹@3 ó@Û.?Ò{I?ž¬@$@!zÜ@Ž@ní@"×\@;ï6@ â?Ç;á?¯{ø?œ»N?ûý¢@)rG?è‰[?xqJ?Â׆@X?Ëst?Ÿ‘?rB¢?¼.@ó@‹Äê@:N*?‰B+?ŒÖ£?]U?þ Í@; —@/Ö@Ì’@!þ‡@,bÜ@™)?ñÛ @åÜ@d°†@I(l@XU@ú†@Y›m@|Cr@¾‡E@­Sg@È@¾ã?–[ ?ÂÕá@@bX@<.ï@Æì@œz?¹í"?À»´@u!@!íw@ŽÄ @Œ&@©ä@xK@ƒ@ä@0úç@5¶d@SÁà@V@8Åþ@1‡Ô@Dϳ@Mè|@Mv@D|@YÆV@dêØ@%Ÿ@ sé@ô©@ÚR?ýÝ +?×çw?»zÄ?Ÿ¶´@Ô@5œì@ekÉ@‡|É@„êw@ƒâ@iYo@GÀÞ@9æ@*¥@P@ +{D?ò´?“±?©q@Ž@µF@{‘|@‹¾X@î0˜@꙳@{ß@&ò£@ @ëÙ?½–?ÁÒT?ï?ó‚U@$Wf@!ÄL@}.@Ž8Œ@ÀS`@ØØ@!@MÄ@ph$@‡¾g@cP-@8žr@>ñ˜@@Ü@4¿®@+]X@[Ï?ñï±?ñ)û?èȽ?õ +?@)HÏ@'sn@2–@'ðˆ?ûS:?ñë@`÷"@Zkp@Ó@y@ %@Vø@kn@$×®@Eù@Oúd@ 3ž?ñ˜ÿ@o@U¾@f¡T@oÀ¥@R\ì@(?Þó‡=åi>É +M@Äk?þùé@ì·@Ýà@J`Y@TMe@$ò€@£Z@Q›}@kjñ@4x¢@åê?שæ?‘œ~?ÙKk@ð@9+.@|òî@m†Û@ –C@ +UK@7[@t:?+ÈU>üo0?æ?òØ-@Ö@ ?çC±?Ô…™?àU–?ðÀÂ?µ ¤?k†ú?‚qì?}‘e?ÆéÚ@g”™@RIø?¤]V? í_?ùoß?ì(Ã?ÞÙ ?Ñ‚F@#ßÅ@7@/½›@2¿3@/tY@+F@t?¯$ð?ƱÔ@¿Ö?üŸ?Ã÷Y?Ò,Ö@MöW@Vúë?û›e?÷á4?Õù©?½?û –@ ¼@ +Æ@ 5œ@f @ý@ž@¢¡?í8>Ûø˜>£Lf@bk8@yâ?ðã?©¸ß?ð¤Ù@ ¬?ñ$C?Ïèè?éß@Ôï@Ùœ?¼O2?½•u@ò«@(®ì?/ª2>ÿ s?ös_@¡¿?â:ˆ?±$?†þƒ?:²?€;Á?Ù+Í?Þ~?äi÷?âÐ ?¨PÁ?Ÿ¶l?]0Ú?9?RçÁ?W¾½?›Ár?Ø¥µ?±M?Yå?W9?¹ê?!Zi@'V@¯Œ?º¯z?ªK­?…õÛ?8˜?#ÃÞ?îl>ôAo>ê¬"?—š@I¬@ ?±éä?¦§Ìãf=ÿÕz>¯ž;?^xd?ŒT;@Òâ@Q0?í¤„?à¢[?™s0?Då?Ï“;@¬®?Â_A>èî|>÷à*>ß…>ßt2?xV+?Nv–@bº@&?·@‰>ìÚô>êhá?%4«?¢F¨@@“F@,È–?Uª?‘?{²?E6^>°•<`ab?fj?°”ú?°Ÿô?‘ÏŸ?Œ É?ñ˜?ﳬ@£É@U@5È@={@HN?Ió?eú?Zá?qŠ&?°4›?œ0¬?ÂÎ?ÝYX?±M?ŸþÃ?´Ý?f?{‚?›b+?x$?ê€?æ×?Þ¬g?Þ~¥?¤)-?^*?=[?©áÀ?ºgƒ?Ñßj?¿¶ ?¦/O?¤ Ì?^ú^?)ö?T[~?‰<?p Æ?#„?`R?_K)?_ÊÁ?x7?’Þ’?JY–?K ?A7?“5è?°eâ?×ÝŒ?Ñ[B?©úé?°¨??Ķ!?Ñg^?ÈÀ?¿²š?¹wž?³>¨?äD@ ._?¿ÖT>°` ? +%?¯­n?žåÆ>˜Å>±æœ>ÞI>ã´v?ƒâŠ?”fQ?’CÍ?’œ ?M•>Ÿêñ>æÉq>ÏçÐ>¦$¢?Öò?gàX?h$E?hm§?‡dŸ?â‡÷?ß4q?’Í;?|°Ÿ?<~?.;>ñ£>ëB­>`¯=Ðf>Å©R? ®? ò£?#¶>ýÀk?@?šµh?Öº(?ƒûG>ïÏÜ?ës?¯$?’Jì?Ô„/?–ØÕÌ7<§éh=¬u`>¼ûË?~à>€¯:œä>LD?iê?µyD?g'c>ú·>.^±>§®!?çÓ?A¢M?{Е>B&?É¢b?Ô +>À7K=‰Ñ(?'!Ž?i»?&6J>éÐ6>ùy¦?ó>ú¤‘>æ„>çì'>é>?S?j8k?g­k>뿉>ê\?¤–O?¯Û‚>‘è{>ŸØ£>ê±>IÄÛ>ØU?kt‡?B +>ì:&>´Ze;ƒÁQ>8Õ…?°"œ?¬ ”;²?V^?k‚q?k‘Í?k›Ð?k¯O?k¾Ç>‡?bR8?ë?Ô¶?¯ü‹?€Ý£sÚ"?®¼ƒ?«™?y´Ç?{x@?fMµ?caÎ?£œ~?«ý?%éÔ>Ò‰l>4û\=tЀ<þ{È>3‰÷>Å‚æ?¼¬?@»Ø?+[È>í‡8?#ª?m¬?bÆÂ=ò‘„=ýç®>ç„.>î5>î>î&?>î8r>îHW?—E?Âqþ?’K'?WÿC?PèË?\³P?&›I>‚„ò>¦¬/>÷ 5?p?oŒ?yòr?¾¹?Àn'>ð¸ì>ï|<>ÃD>³¯Á>áˆ)>ïÁ¥>³U>“ ?0Ô?ZNÊ>Ì8Š=äkž>×R??Õ=?*ï>È´¿?l|?ð i?ÏßM?pů?ƒ3p?±…»?žAˆ;ØýÐ<˜˜Â>ñ:Ô>ñYž?°‘Õ?µ@ ÑK@ Æx>å]=Š@Ÿ?W?EA?ÁGò?ò(? í¸?Q™ ?Œ·?¦©ó?©Oª?µÞž?žV?r¥N?Zïu?/NI?c‹ë?¶6ê?ªZž?sr?rìÃ?ƒN:?Žym@ú.@ }£?vv?sŸ»?!˜?L`?ïÄ@2[?€‰w?LTÐ>vì =`]?*6?l@H?y!B?xÑÖ?*V«>ò)®>]P0<éfà>šQÙ?Aö?{¶)?·Ð¼?‚,]>ÁÁ*?*Ñ?˜?‘^?á©?6/?'fM?DÃu?”\Y?“Òð?“{„?¬~??IË?om@Šƒ@Í>ö^+>ø™ã?uI9?vÌ>¾ë4>ºq?•»?¡”ï?€Ó?vü]?£ø?¯ –?3WE?×ì?ž Å?ºÊ ?¹>í?µép@,ƒ@ ‹¸?‚‹B>÷Æ»?Îè?¹í ?°¹?¨¡ë?¼ÊÎ?Îü„?—ý?]x§?ÇA¬@ +·@ˆ?øˆÎ?°w7?PýØ?žr\?æ,ú•?#i4?±È‰?´‰X?ÅÙ=?¸ò?Âf_?Ì(G?Úuž?È +¯?©w?9ST@Lt @AÇì?{B?”i½@;²*@0çÈ?ŠM´?Œãª>âW³>àgî?&š?+1ê>û³‘?šÂ?{ÆÊ?…ÚF@ jp@€Ø@Îã@•n@?õdS?v@æ?€‹@|Ò@‰?Ó”&?Íï”?²ÿ?š&s@%@$’ @2†M@*³³>^ˆr>^Ö:?‡€+?zÜq?M'?9‰?ù)?î$J?|ÇÜ?ƒM4?½ ¤?¼Êg?®?8?¨5?|ö1?ˆdE?åµÞ?Ù¥»?} ø?ŠN0?üI#@#]@£@€±?Æþö?¿Lü?¤3?š*Œ?8\?œ“@@*@·g@@Í]?Èû?H®7?þÒ!@ Ž@XM@I\€@¿?ñ0š>ƒVU?ƒz?ÁœR?¬ò^?}¥u?‘0?Ïg=?¶›,?k¶Ô?š~ú?þŠ‚?úÔt?ý½ÿ?àSg?Žz??Ÿ`Ñ?ºU?»‘.?Î ™?Ù7{?æà¾?ËNü?¶ùQ?º?¾dð?¾?¾dÁ?©»?}âU?º¶.@eö@g?±ô0?ª¥»? ?ÀåÌ?þ³?â1?¾mR?Ûò@U˜@ 4â@ô?ó‰­>ÇŒ$?2Ä?PK—?}ãï?„Ž%?‡;Ó?Úaˆ@[¦?¸? T?=‰?^5I?•‡6?¾\b@³Y@/E¯?÷Ð??”A§?H¶">ýÂ?”B·?Ü&Ö?—rù?Ck€?œ©†?ÌJ£?”?U.Ì?ÆÏ%?ý70?¶}’?Š }?‡Êû?…‰²?>ª?¶¬?Nt³?`.?î¹@ª,?Íɨ?¨iÐ?òˆû@ °â?·$i?}P3?}LS?}JN?àj‡@F ?¨­Áú=Ú&¼?.=w?d`?åâY@Îi?ÛÎÂ?¼¶é@é@/ O@*DÐ@/Ç@<ªV@B˜Ú?å?‘Ũ?Ã>n]ƒ?eÂl?šy ?®$ó?¼: @‘Ç@Ó@4Æ?ðmt?ØA?Ñ¢?ôGv@@à?þ'ð?û²@‚¦@!&?Í¢S?}›G?ÝPl@,;@Hà@Ç@BãJ@yú’?ÿ]>÷?ÒT?t'¸?ÕÜq@m”@„¢?³ÑÄ?ä?Ò~`@ ^¼@:ý@.w@¼¯@.0@JãJ@$\_?Íš[@Ÿ¹@Yõ@L + @"Ï™@,£[@L2}@*²u?~q?y>+?t/?µð¼@*½Ö@-RÉ@R:5@N%z@;v @.; +?Þ0?ç Ž@)£@(²2@€X@‚Å.?wk?wЈ@½@-¹?ùVˆ?÷]?¾š?Ãzz?Nk¼?SÄ@&°@8ù¾@k5Ô@v~á@AÒâ@5Æ?@!ùÞ@Þ=@2Ùy@9&@9îà@6@5Ÿ@8S!@.?òÕû@„ú¯@ÄŽ@“{@G·Å@/ â@ ³@ +ø©@cÌ@/@¤@u3U@;0?‡=?¸±@!fM@'@Z›@*ú@©Ÿ@Ÿ6è?» ?ÅÙü@LnG@HáÜ?¯ìé?£T:?¦§Š?®jÙ@Zãr@v8Œ@~å)@ƒ”[@”f@Ÿí@YÇ@@Á·@c?ô)@+2Î@P›o@#ª‰?îlB@½c@C”@¦ü@“@°@#)Ó@5Ä1@‚áÒ@)j@’Å@’9Ë@Rù @QÛö@ hù@ŸŸe@D¦@ë@ìz@Ç @¤Ð@ƒ¿@Bh@kM±@jU@_»T@Ÿ§?(>Ø@us@† @f*Ð@Ž»@°?ÛGõ?ØåA@!:ý@$¦@3†@2õ•?ßõ×?ê´#@&]þ@.ʲ@jÌ?í @2:@I:ƒ@C?ÏŽU@ѱ@Pû@#tÕ?͹?ÓÎ^?íô?ÝF¾?›Z?¶zd@P`d@M¸7@lÅ@“ù?¢æÀ?—aô?ôæË@Ó,?«¸?|´?œò%?§q»@ˆ@Ww†@.ðœ?mT?„ï¼?z8Ã?•£S@Qñt@K?ó@$íp@ ê+@(Ÿ÷@&W»?Ü!?¯f°?ÍÔ?çf@,@'©¸@ÔÇ@ +ÌR@ºô?Òø?Ëÿ?º°?ÌÀt?š½Œ?ŒðŽ@׬@/È ?œýt?e@?:j×?_ƒÐ?Ôðè@-º¥@"Øp@Þ@Ñ?½Ä4?¸ô_?×÷ ?â ª@ +y@ +ÔŠ?œÖ?jS˜?Ê¿ä@³v??Ù-¥?×?®µÌ?ºE?m3>ì½w>è J>åZ:?Ž­¸?» 2?Æ`ê?ÇÊ`?©¸’?eà4?rau?«hK?±ç½?äWO?äæ@(¼H@(¬z?ÒÂ?ÃÈÄ?­?EhG?Iç7?k¸ú?aôŠ?`J—?}Ž°?Ñ>Ä?á‚@@Û@ïC?ä†p?Å»?Ñ™u?ß±3?ž¶'>ß’å?Ð?ˆ?yÆÑ@ Ó™@ˆ?Èô¿?³‘l?Œõ~?a£?•ÃÙ?dža?¯s?«Ù ?Þ´ö?cÕ?^¿?ÒÎ?ý©&?ïñÊ?Ú;"?˜KF?Åœ?*F¼? ¡?0&Í?Õ=Ã?éàµ?Ò‘­?³EÍ?ZA¦?6‰›?B{·>ÞQb?—‡?XJ?@×X@¿@Y&?¢´|?b]9?Áf[?ðІ?¼|¹?€+[?•0ý?·\?ÃJœ@ë@$, ?ÕÄ?® ä?r®ÿ?â·?Tè>ÿ- ?Sþ&@Qa@!iÌ?yó +?fœ[?’Â@?—…?~¥ƒ?^ð?QKÒ?@ßê?OY"?_4a?_JÈ? Àô?#÷¾>üàL>ß”Žn£?^é©?†±>½r^>`Éè>Æ>â¤ã?Ö[?(P?Bne?\–‹?ˆ$·?”D? è?à >?ܳ?·çÖ?Å?ªª?— ?1÷Ý?÷“?@9?\‚o>¬ÒÐ=6l>ŠÄ®>ç2 ? +:?4úK?L'?hH¦?=n¥O×?%Õ&?Aó?•§Â? ¶?#÷? ð÷?œ(,?¯™T>¨d4=dzB>÷-?+b1>vÓ6>mbë>ÙÖ?9¯¬?cÑ6?&^>ðu ?2=?€¼.?"´×=ÀÓ<ç C>=k>½¹q>¯ë?>à>±à=”LÐ=“Q:‰ùü?Œ#²?ö‘š?˜à`?1ß>|Û>ïËM?ŒQ©?SP%? Ý=ñ??$m?!°ê>Üð¿>ÏÇ>õ&=­^|?!¹Ð?`¨]>Çãœ<ë >fª´>éÜ„>œœÝ :?æÁj?ÙB?gß½?f„Ò>ò>î­Ï?\õs?i”¯?ÌÎ>ê” +>X?D=U?° ?•ó€?jæ?jö?k?P¨¿>ëm??ë?꤂?ê¾Ú?ê‚5?%p>îÂ>ï¡@>ð ?C'?dï±?–íÛ?³.d?²gú?±f?bÿš>vê?tÏ›?‚‹[?¬7´?¤+Á=½k±=˹0?m]Ù?{Q¤? Ë…>ìѲ=ûåD>ü •?-Œ>í7Ù>®]²>My6>™Ð>íx=>ù’¹?©™?Ie>ªˆ6>Ÿý{>±²> ‘?«¬­?°¼è?}÷>î7A?Z“É?‚YÐ?j¤ï?\-›?Mij?8Ћ?uYÛ?˜Ó}?aòæ>ókÃ>ú¬n?þË?HZ>ï28>ü„à?'K?$d?Ct/?E¶²?$^Ó?¼‰?€ßü?ˆÙ1?¤ØN?´Šþ?JC>ð#ã>@ÃÃ>v:Ô>ÊÙ(?m˱?ÝÚÈ?¼%æ?p¸9?o? ?mt&?Wý•>ñ©>ïï\>ñ*Ë?Œ?´üN?´þÏ?Œw?~ž?›g…?—¦?Î,¾?د*?£´W?—=q?„41?r è?k¦d?sh?*~?µÐ?ªÍ‰?œNH?~?zÇØ?oõl?u©^?úÃ?¯b•?™Ù²?)ù^?IŸ?¹èœ?¯Ý?svr?oÉ ?4~?:“õ?­[=?§Û,>Ì›è>‰k >Þ>ô^>ô8>ôI?Ã)Ñ?ôCi?É õ“§?u…@ÖB?çÞâêý?&þö@FI?ÿü?'W?0Ï0? Ÿú?˜<â=÷fØ=÷Г?s™w?d®h?aª?hnG?]¢?Uó?«"ô?¹`ý?í­Q?õ¿ÿ?”Ó`?€¤°?âð±?ÿâd?–T)?`:¥?<´?8„Ù?žˆ?¹÷~?‚µ?T3?™]ö?«­Í?ÁRç?×>¸?ÙÑ?ÚÒj?ƒ|h>Ñ&l>÷C?å?a«~?§x8?¾K!?Ù±’?«ˆ6?`â?£4?è+@ Ì€@, @ +Ž?ø®?ùbî?ø|‘@%m@4J@Ñ?•—S?¶.œ?íýÏ?þô}@x£@=À@9ß?ö¿×?Ùt?‡öÄ@m1@ 6d?¹„ñ? Äø>úx¹?BîÐ?ád?úöÎ@0‰•@xU>úÊy?Açž@Íú@ ¥l@7¦@(Ê2?¼O?²½?{&‡?g¸è>þt`?yJF@Rí:@Au$?åO?Б®?e61?S¯Á>ûš ?'6À?Ö3Ð?ÚgÆ@Ïæ@ J@ ·@qÔ@;¦u@0‰É? Œ?¬ÿÇ?üà?ü®?ü(*?÷W2?ΤP?ÚÏP@(ʵ@&‰š?ü`6?ú[Ö?ð¦?ûÈ>@ÌÕ@~f?úk?æf?‡¾@?‘}?´äG?»c?ð5?à‚‘?ŽÞï?•?©A^?³‡¢?üí ?ïµÕ?¡qä?¹Æ@é%@ù.?óïa?üV@5-@Õ.@*ÀÙ@,Âv@.Ĭ@&%¡?òY?àÖ?Œü+?»ñ?óà@¨@}_@Ea>XƒF?5Pe@®.?ï?:?šK+?yÚƒ>ÿóè>ü÷b> |?1 Â?ÖR¬?®ä8>ý›û?z¾…@øí@½²@Ú?î“p?,®X?w,Œ?ßÈ?ßîI?Ѭ@)Û@–¶È@`lœ?pîf?éD?¼Œ?æÅ?ˆ¡?5!†?}ÊÁ?œû¯?ÐáF?¢ï¾?4·¥?= X?E‹q?®ç@ Ùi?ß‘Í?™À?âH@¥p@I@$V@@ \?ÈÆÏ?µ¥ü?ªß?€¯??n—Ë?¦ÍÓ?™{Ž?†aq?À%¯?ú K?»Í§?€1?€ ‚?t¸~?š­é?µp¥@"0@*r¢?ó‡6?³¶é?îÁS@Ž%?”×Â>ý°€?ûà?8õ”?@k?7X? ­é?Éí?)œ@Ã=?ãÉ¿?Ïy«?·ÌË?§7@ ç@%u$?ä:§?¸á?@µ@;¥©@%{{@”Ù@»X?ï?õ“ý?úˆŸ?·ÿá?“ŽÅ@ó@*UÈ?ç—O?–¢M?¸ù#?Óv™?èkë@µ@Aü@sg@!:÷?¨‚Q?e8? +Oò?üÖÄ@W•=@6,@xÚ@CP$@uDœ@WP@:îp@5î±@.0@F@d@idÈ@$¥'?agZ?¥¼°@@Òù@&%@æÎ?ðÏG?ãÐ?¼š?¹é·?·E^?Çáõ@ñ@ 02@Eá@Â*@/Ȧ@'s+?Ô®?öc¥@g$ì@^V@“‡@ 7\?ŒaP?NŠ@ ah@¸ƒ@*1?ûé%@*P@{²?µË?¤ßg@?@"J€@Î@,p@~+@ì@QÏV@[k@KÂm@N¿9@j$Ð@zIŽ@Zô?@B1l?çûX?x:¥?ì¡"@.(¬@}@h"@6½¡@e—«@=<¤@ ‚º@)‡'@i¬•@:?TË5?Ÿu‰@'~’@"¾?öË@µ@ÆÛØ@¼ÿ³@N§]@Eäæ@"§=@&W?¹2A?¶ŸO@]?þ + @o\@{Íy@KÏ@?²¾@=¸¬@54Ä@K ÷@V¢þ@¶?òv@+Y@Tü@^ߌ@apd@MÇ@<Âë@8-@5R @@p@WU§@e%@Ѿ@Ÿ²c@iZÒ@kMG@RéÈ@RÓˆ?äA¨@ „?žëè?šY?¡å)?©zT?÷üm@úË?èR¢?Û÷N@,ð·@bßÍ@;'ò@?ÜÜú?„&M?ÝûX@.š»@2:7@? ü@8ß@&f~@%c]@2÷œ@2åü?&Àô?‰À@n@ì?£èx?pȘ?°D'?Ôcß?ètp?íŒ8@$¼$@WbÉ@9ˆ°@Ÿ(?éâ?·Ÿ©?´¥?TQk?tS5@mm@k§Ô@ÖS@Ÿý?‹xÎ?lŠ?«¹?Æ®z?µˆw?˜’È?Ëùz@UÖ?â;5?ªE^?®ÝÏ?¯8ó?µˆñ?׿S?å­@j‰“@jn‰@g¡@šŽ@MúT@Ußâ?õ.?¯X ?±Ü?¯çÓ?šðN?þæ@ Q“@{Ü]@Rà?Çž?Ð&¸?ã‰#?Ãeø@F„@tÕ@6p@HŽ«?©‹l>çÿ&?&%?Iæj(?TPä?£€?¤Qô?ˆl?thG? ›¦>õK#@ zn@ Jë?+\>åK¬>–Å.>¢ÒC?QP ?žh?¯_²?Ó(?ijÏ?à?®79?äE ?ä,?€oŽ?ª:?Äìß?Þ=|?Ô^?Îuj?;u?Àv ?Áê?á?ݧƒ?ÛÅ?Ö’?‡F›?‡ü¦?C‚? ·m?Ô{@t'@fÚ?¬“&?¤Z?ëÝ?&ZÞ?¹ž?¾>—?;?<?ˆWó?š®X?ƒXX?Y¹?‚å¿?­_š?¯Ö?­ZT?±‹@ ›@ ;î@  @Oå?è½{?¨I?¼ ’?Õ×h?ÜÛ9@÷ø@½J?¿v ?Ú:³@n(@’e?ëÅ.?ÜU5?ÆÁ6?™h?¤©??òÖh?çl|?ÿJ@ 6?Ó-·?Ë«!?¸ìÃ?¦ö ?»n“?Þël?Ф©?ˆ–?cÁ¦?0˜‰?ÞF¯?FF?¡ÉP?™cµ?¾cÀ?¸ü?zÁj?jc‚?`ã?^5'?™u?ĈG?ÇÓ(?ªšÏ?”æZ?Üa?„ðÅ?¤c*?§<Ð?Íà?Óò3?º¾?›l?‡A×?RÛ{?8þ-?Ù(?Õ×d?j±Ô?^­®?rÌ·?‚*n?s¡?^äü?NÖB?!/P?52?`É”?_6b?L{º??Ü >ý¹…>߃w>®yZ>¢Ì?/=?kå?I/p? "Q?#y¹?[Ì?$[>w¦‹> »¤?U?W +s?Ž`Ý?¨Þ?šH]?gi£?5Eµ>Ζo>­‘t?œ„¢?£‘>)÷±<áš>¬zH>âß-?; û?^â?ŠŸ&?Æõ +?ÇT0?«—?¥¾Z?vû?‚%?ÁáŒ?Ȭ>?|>®?e›?yˆ>Ýy(?3w ?D‘µ?dŸÅ?‰?SP? æ•?öú?CšÜ?^›?a£U?J°?K+v?>>¦?gô)?Èp?Pˆž?XC¶?bÆu?o4O>cfö>½}>i’­>Ù I>Ãob>;V=åÐ?Ñ6§!>­ù>ñ.f>ñ› >ò ">ˆàÛ=íØ>kô=Åót=“‹|> P>ß°?o?5Í>Ðs ?h,J?Æ$¦?…S?é>Á>”Ú¼?‘¢?? *?„5Ó? .Ž>Ûx =£Uz=·Å>é%¿>éMq?켯?þ7Õ>ó2=Òˆä?`É)?ž÷? å’= <³P°=J0=ëÔœ>GO.>ö½Q>Ü¥<­¹™=iU?ªÝÜ?­”o>2®F°ã²>ã’?†Ûá?°„?$è<ÍÌp>Òšø?jìO?E[û>ëÁ>îÁÑ?D>ì²=ŠUû=®D9?àÏ ?〨?±Š¢?ª“Ê?,í½>ùÒ?K¸Ì?sö@?7„x?Ÿ}?.k|?VÈr?\u ?l2!?náA?yûà?Z +SÀ¥G>gâG>B“6?RóíkB>´Ü>¶Æ>[¡P>í²œ>Ðf˜Éˆ>V¤>´>ð>äý?4©Ô?qà?%L>]½+>V¬ð>O‚ >Æ›1?X ?W†º?oIu?bƒ>ïs +?ü@?Á2^?½n}?’§x?•›><Ž +?È^?% Ë>Ú~>ä!?Às@@pÐ?¿yÙ?Á?*Â?f¤Í?COû>ó 2>ðè¡>ðùð>ÁeÇ<¾OX>Vª­?´ñ?±Õú?qk4?pò•>€ Ÿ>‰ìß?ßny?ñÉ?³"w?¤çÀ?C¾›?G?³çÜ?×åÈ?§,6?‘‰¸?’è—?”G ?Æ; ?óëº?äé~?Ê +»?Çüâ?Ùj?·C ?E€s?ƒlz?óö?ä.ƒ?siÓ?jz>æ“Ä?'@<>@;A¸?ärî?åsj?2>ô)>éø,>î²ô?]ôR?u®„?ç¯?:™?dI§?†×_?MB8?2/Ý?_I=?tð„?žx>¹\×?M;?’Ïp?…f-?u_?cT?CÚe?©j@Ö%@Å?¹H©?Ì»?çKn?Ô?ô?ªÍ¸?žSÚ?v5?ŠE?äéë?ÜÛƒ?lÁ»?|SÑ@. T@,Îv?GÑA?6Ñ¿?}ó@?|J¬?¹–½?¹XÄ?\¶? MÓ?©9y?³]w?íÙ?÷|"?»ÀR?¬Åj?t„?WG?„ŸÊ?º?e¤¸?I‡?°š¦?ÔÌ?ÃÛ3?º2h?º<£?ºGš?µšg?®"ý?³eŠ?ºv@ÚÈ@ÁÌ@ õÕ?ãÒ?–å5?±nI?ܱ+?ó4ì@ö_?±¾j?D?Ïìµ?ŶÀ?œsI?~Sƒ>úi?qÂc@à¼?å _?§®Ô?ˆ×>¸a<>Þ׊?&È?v¤@‹@ÙÅ?¼?¹?®ÞÞ?~{J?{p[?yKÛ?d0ö?5óÓ?s¨?Äù%?Í¡¯?âõ¾?ÉGP?[|y?Y?t»N?£Ëì@Mÿ@ôÒ?ØB„?ß1F?ûjñ?ÿhª?í„ ?Þ¾þ?ËÞM?ËŠ:?¿^’?ÌÐ?ë¿Œ?åSu?½*Ù?ÂdO?â8€?Øðº?Œªç?†Ýs?*?}|"?ý.?º«@N’ñ@0~H?‡û‰?•æk?Ë ?ãŒË@Œ7@ž?ç]N?éàì?üÝj?è7Ž?›ÅÖ?Ú#è@]Wi@L…W@@D @??¨@)#ß?ØëØ?àÔ¤?ï +‡?íˆ?ÜH«?äb@ÀA?Óƒ>ýF‰?b¶{@ab?áK?iÓS?˜0z?ýa-?Ìù®?2† ?wè?¹r?uŽ>ˆ?M?cM ?ŸÑæ?êD ?ÓR–?ÁbŽ?ÉÒ`?àa#?Æêè?}ž?\2w?`Ö?!,q?Páé?ŒÞ?Á¨n?‘ås?*0?C‚?}µ‘?˜™×?º~?Zå×=ÂBØ?6©h?¾M?³Vâ?¡m›?‡óŽ?XyI?†Éœ?¬šò?«©,?£?5?º’€?ÜÓ)?³S€?†‘€?òYÔ@*jŠ?ðp?’=E? ?õh?St8?rã?Kå?±W’?º!˜?¾Jü@+D@;ó@7ž@3E?ßÅ?ˆ²`?ÝüN@ ’@â@ —?æ9Ò?ÃË ?»‘~?«qX?Mº>üº ?Ÿ¤?Ð>™? +Ðù?^º¨?£>ë?þ6§@Š'@0CT@Aòä?úŠ?¹JQ?ä¬?ü)?¥öM?…@6?®­R?½ûË@&ï@D&@A C@;¢v@PIê@QZ™@Ð^?ý)?¸âs?Ÿ *?Î0?á<?Nè>ýH@Á.@9Í”?¶"¨?|ç”?·és?Æ°Ç?O|?¯>Êl}>Iõ?`v©?‡I„@c½@‚M @+K@„O?² Ø?•¨ ?µ ;?½Gh?c$L?@{F?}–œ?‹.G?› ‰?Œx?2vÒ?Kn@ r[@"˜Ó@.9„@57.@>È @=d@&³±@% !@E¥@w?Ègð?®ËÄ@‰p@Ïg@Éó?û}Y?Ëv–?¼Œ;@#—@1G–@7é@/vÊ?ñX?×$A?覲?ùù@@<.@T?ßËv?†RA@Ãü@¸â@•N@¯/ç@ +À?IP†@F)@Î@–£?Ë‚É@he@-F<@#ƒ?Ýç÷?ж@?̈¶?ÂN(?°¸t@çš@Nè:@a6È@pŠ„@CDÓ@Zx@-@=Ú@,.õ@à¨@Zø#@Œ8‘@…Å@xô“@H!@&3@‡V@a@Û@ væ@y&?ñNÞ?׶È?ºo¸?ÆÐV?Ô?Ø[…?÷@@]Þ¬@Ü^ý@¤(~?$[?Å2Û@)íz@$ZÑ@ã3@ ?—ì}?Ø•í@‰¦q@ƒ @D_G@7ô+?š…-?±V @a†I@^šð@raÈ@vY@sü¦@o9@z @ÓË@nòV@r{?ÜƸ?¸ÃÅ@,…|@9Q@‡c]@“—D@=÷®@uK@Fº@®ÿ@aæ¿@†.@Dü•@ѵ@†6u@¬•p@yQè@*¾ð@1/\@@¥D@[Ì +@oõ+@O£•@$cì@ Ò`?Ì©¨?äa@ÛØ@6š@ =b@¥Õ @ÓP @ɽ @q{“@vM­@¢NÃ@›<@$@8@!z@Ê@m¼]@~³«@erj@]Mn@ƒ¢¾@d’@y"^@mÞõ?¬kÄ=¦«¸@\DÅ@¶™@q‰$@^@ÕŸ?ó(@û@5Eà@E³Þ@oÎÍ@Z¼¤?úè?þmˆ@8f@8´±@Rí^@Rt@)Êÿ@$m@9=?ôð?ˆÓ?pOæ?ÕŸÝ?÷ÌÛ?Ù¿f?Æb«?·p?¢ ?‰k?uH5?:ãß>üÔ?˜û|@}@3§@({Ž@7KÕ@d¡@TÀ9@¶9@ X?onÂ?nKÌ@>Ø»@N—@P8†@Ko@CT@ +Y™@4,Œ@H·0@Lw×@R§Î@<¬@ \º?ýå?V©€?œN@9#O@>@<@„Íg@ƒ•#?Œœ¡?™!÷@ +nj@œA?¯?”2@Œ@>t9?ð؆?–Š4?’J‚?|Ld?±¸@7+@ ´!@ Ö@Z‹@W8U@YS­@¹3@³ß@.ä#@A+)?óyÉ?¶«Ç?ÕÙ?é&W?üb@ÀÍ@ +»$@)ÏE@$‡•?Îm?ã4@h¯«@h”ž@‰ö~@Œþo?ô!o?®î.?ªŸ°?ÏË?´½Ë?ž?Ê&?ã5?á!Ž?ÃC)?·Ao?nÌ ??fò?±ðd?¬šÂ?w’?f•D?¤Ñ|?­†(?Ÿž?‘ï?¦ë‚?Ó$b?ça“@"­½@‚å?¬1Š?±ÓJ?î?’Ÿ€?7´Ñ? 1f?ƒQJ?¤:K?£_9?«wÀ?’ç´?…ö?±>?­õs?²ä8>i½í>Ž‡q?’ŸV?ªËk?¹²Â?½’^?âd@ ¸?äv?cò:?”ÜÄ@ Š@L?ÀÃ?°ù7?{X?b~Â?µéÞ?âVû?çúð?å:?êÇÖ?üz³?ì[x@e·@s×>ÖÅÁ>5@ ?pZ"?”àa?U>ú†”?“R‘@uÔ@6?½Áç?²ùÏ@¡H@7R?é~ã?ÔÀv?¿Åã?©r??©¥Û?¯·?Êšl@D_@îé?ˆ{Ú?n—j?°­V?Ëxa?–ôÕ?`' ?k?rŽ­?…õ?­”?¾åŒ?׆L?ÌQÂ?“¹-?|#2?•5Ä?§<;?—fÚ?ˆï#?ª?þp—?÷*Q>Þ¯b>Þ§œ?Hë?^”û?Àü?¦ÞÍ?±8?É"?äD@*U@"Ë™?å¶æ?Í'ú?Òp¦?ß„ˆ?Ô>Þ9·?4ø˜?œˆ¢?°Öq?Þ+ø?Þ*?ºw ?­›†?ù¨@J?â#?ÌŸœ?îhô@î±@ }º?Á»ø?Í©è?¨Ú7?¦³©?¬‡ª?³Èµ?¦j·?¡_|?± `?ÌT6?ÈïÇ>Þz>ÞˆY>ëNI?Ðh?¡ >?³Ë‡?t ?2Ö¬?rŠ ?§5b?§q†?¦™G?¡J?`}s?_H†?gó ?S¤Ð? ü>–‚Q?Tîõ?ß:?ËRÿ?”„?Šj«??.?Šhâ?%P’? õ?^2>éÙ¶?0ks?p™?B +§>ö'?A¯?ží4?~¤?MvL?Z{Ä?_Gì?IA^?€×ä?ƒ’ +?•Éö?ª[¥?‹ˆË?LuÐ?yé?ª´?£.>?dSn?dÕ1?«”¹?«¾?S£?L‘>wùl;šaK?ðµ?fjõ?z…?Œ+p?eÊ?§Œ?ÊS=I¡6>}T?ª??«?íÉQ?Ù¼ž>ír>ê.Ù?<+\?v]=¼c=‹'">žÇÿ>£©>ˆJé>Y·Å?B Á?—pÂ?…ËW?lÝ ?wbâ?ŽÖ??hL´? z-?f?!M>ÿ?">Ø•%?+?^éþ?;è>¦µ´>*>7>¬Ÿ>À´Î>€ƒÏ;é:z=oæ\=ËÔ?“·¼@Q?gaø?Fq»?ùPù?¹Á–?ƒÛO?,÷¦?ä.?7¥¤?¤I¼?.ÒG?œZ?…òÃ?S?W*Ã?_¡{?^–W?WF?D9=Ï!l=Ç[s;Ζ?’&“?¨z\>Ãß–=«2‚= ßœ?pñh?ã¿©?ËUA?¨ò‡?—ôy?c ?b(â?[…?e^Á?´Ð?µD»@ Ab@N~?¶w¬?¦}?Ò]?àî?–é ?^ô3?e?e?kÿÔ?l;?l F?JOÇ?M ?dü>Ƶg>ÈFë>ì„È>ñ÷?&?‚B?ö>ìÙ=µ¶±>õ±x?2—?4ûg?7mì?¶>íZò? jÑ?"|$?Dgg?Š¹?g&~>—½à>¯Ê¬??ûY?<=õ?Wò¨?\y? ,È? ß? &ë>ùRT>—`>l=Ï>eŠé>^Æ™?H›?_è6?å›>‰É?|@?†?¶?„~ ?o>n?qó¢?h]û?€A:@ø@D©>ó¥Ã>⦅>¤…+>§×?“G™?ªMg?‹( ?`ú>Ä–v=®? Ü5?c>æ><€Õô? ¸?´uç?Hó?l»0?„¨¶?§y;?Éù›@*¨Ì@£Î>ï/>s.á?’§?ŽÝ?“8A?—¾ª@iZ@2@?èRÌ?ÜYÃ?ú Â@¥?¤£²?rLv?FÝ"?2?¯Ú?ô.*?é’Ò?å×?´2ã?[w°?,²q>h->î{‹?MãŽ?P•?S¡“?~£?ÙiŽ?ì—0@6ž@3Ü?sƹ?rØs? GO?Ö=9D;K‡È>ÜWë>ú‡>öD¸>ôoc?˜ùÀ?¯×ö?§Ó5?¢N‡?Gz’?Å >æÕ>±ú–?°4@Y÷?Å >·Õ5?+«¦?uq9?gÏT?jOƒ?`žN?;Íf?óX?ï×æ?ù:à?õûà?ÕQ?v"?€G?˜c7?¬h3@-Å?þè?Ï÷C?ãšW@,I@)öÚ?¶ …?½UÄ@8àŠ@7`p?wô+?o?€“²?ƒ÷?¾?ÄN™?DÇ?4kq>¡KÀ>Œ ?‘Ôß?¤Ö?£)?¡|Á@Ä¡@*Ò?Ñ÷S?º¥?Ê?ƒÎß?²µ?ÈñO?£^øÄÙ?Ã/1@Ø—@ø@J?‰ÉE='“x?FŒm?ºí£?œtÀ?€%?¾kv@2m?Ð U?œhÊ@ ©Ñ@O2Â@o’?»V&?ËFü?æI¬?œŠ>•°|? ß×?zA?”mí?»ª*?„>d`?‰ù@%-@µh?bú?WD?>w­>çLˆ?zµŸ?nr¤?Z±:?…yÌ?·ß±?ºêÆ?¼Ú?™/¾?Ÿ ?#6+?o”3?´ýj@.3@pY?ÉØd?ÄSi?«u‹?°M\?¼Ä†?Âol?î!*?÷Ö_@Æc?íˆ]?¼Ó@?Í[¸@LN@øþ?ÙÓâ?¸ù/?J’ +?\:?žo1?¨Õâ?½³?¨²4?:õ ?Šž@Ìh@~-@p§@?2@Yç?û/¸?PŠ?‘5?çI?Ù¶L?½p?ÉY ?õ&Œ?ñ?ÓÿÕ?à)˜?üÁÍ?÷Ȭ?àðÐ?ü^G@1æg@"¶˜?ãô @¨B@g÷Œ@<¶›?ŠH?¨­$?äÿû@Œ½@=Ô!@:¹@6;@ +t?òK>°€=q0?XH@or?àò¥_>…»'>Q.8?:—#?Ö{÷?øJô@ +Ñ?Ô8?y¾r?‰‡c?¨…?¹<4?ÜH?òÄY@&@6*'@x3@Te÷@îU?â8£?|Ö|?›ù?¾¹Mè?3Åv?}°{?飉@"W^@#ÇÞ@%Ó&?¶á2?>a?cƒ?7@Ô@I’á@Ë.?âñr?ÂÅÓ?°1d?¢$?’cw?Yʘ?/¯?¨_ö?Úö&@5*@ w%?”å?0Lf?n1ÿ~Ð?"ô?¹«À?çH?ôhà@ÃÒ@ þT@&þ@02+?þ³‹?óÏh@ö@•ç@:F@O?¸eª?¢îÌ?(1f>üïÊ@1¿@Yú×?ÔóW?—ì?àZ6õ@S›?ÚS?¨=Ü@LŽ@&5o?Çs?°’µ@uû:@k„@—¾§@—<û@dÿ@RGß@ìP?ì•@?‰× +?v=S@"Æ:@61ü?Ýìì?¼}³@£@ò@fF˜@JÚ?åì€?Žtô?ëÌ>ºã„?ø}@Ëë@1Ãr@:ðè?í§?Â,µ@ÆB@: A?âÏ„? [œ?ÃQ2?êÆÏ?§‚?ˆ&t@HÔ@|ÕÄ@.@{9?Ëoi?¨G?÷Oæ@ú@˜‰@,@‚¹@ +©@,âú@; Å@)˜s@qT@,˜@5¥o@(þá@%„}@7¸÷@GÌc@$äi?øý•?Ÿæ³>øÚ ?¹UŸ@+×j@(r9@ ÜÈ@ H?º_¥@Á@\ñ@.}À?º˜È@ +Õ@@nI‰@X‘Á@ + ?ôd†?ÀÜh?Ü!0@~¥?ñ¦ƒ?w™D?Ñcu@” Q@“´@…±?@ki?Pþ/?€õZ@}Ôª@€ÿè@äV@y>?ŽV'?¡E@L>©@K-V@Ø=@?¢$?”^Ú@Dz¿@W_b@Rþ,@ZÏ@a:@_¢Š@«y?ë, @Œ-@4+o?øý?º’³@Œd@Oj®@E³¢@7ÍÊ@>:@A6ü@Al2@M°´@1 Y@+@Ö‚@ @)Ç2@iX/@†û³@Ç“¶@°Ô9?õÏ”@¯£@2Ô@È8@]ü±@c#?µßÂ?ÀR?òàë?ó1‡@1d>@6Dº@@gõ@JÇh@;¶í@6i@ï²@º{?I½@M©ž@¬$2@9°¸?CR¯?“D?¾Æ?òÈ@'¡ò@…Ä@¶@f/@R†²@Xþ4@P‰Ç@XϦ@†ãv@…dN@·@‰Ü @E\P@>E"?ö8$?Ù D?£;?›q×@^˜@3o@´O@&$@à†?¸â‡?çH$@ ›]@¼?ûî­@ná@O¾Ê@F==@?]@7mt?@—¢?Js=?†Í?ó›@ Þ8@.e/@c³@kö@v¹?Éùù@/¦(@YÈ0@I#…@>»z@;ï=@1¿[@Ū?Ð2¼@Ûó@Zݾ@_²û@2¿p@5Ç;?l,â?lv?WÄ?ƒ°L?úMx@^@-S»@MuÀ@Å[?{~s?£gv?è“?@i@I +€@'í?œÉ˜?²û›@Éû@ —*@¨’@¤©?«¶? ù;?Ã$?Ù?Å@ó@í?íÑÍ?Ä*1?ö'@%@Ü?­â?Ætì@+´y@9^]@rÀ@nÇp@7–?çß?½¯$?­éC@÷@@ù@2m@»'@¯?Ó~{?ßO@a·@i¦@0@D?µ©à?¡q-?Ñ°Q?æLå@ì@ ùx@ VÛ@ªg@ +ë¶?ôÃì?ä|Á?¬|?¬š?«ôJ?«Þ¦?×$ÿ?Ô{??¸†×?·9;?µ¦K?«hì?Ç œ@úP?ùcr?ãã?Ú~?{ÁS?]à3?„j?á?Ä›? šÌ?Ä%º?ÜÀ¿?™Áµ<È¡>·Ê ?úAî@7î? )?§~Ò?U`£?<J?Ù$?¿@Q>@EÞ@2™ü@ /j@Kj?¯'?·ê4?iËq?B?ã(@ Ñu@xü@ ¯M?ÞßS?•P&?Äê/@&Ù€@­?¶i?È›?²„V?¨Ný?Ä;û?ßË?Û¯@?Ö)†?ÏÇq?ѱ`?Ü_R?Ǫ»?ÍÚ?n÷ß?PFÝ?aA?_ƒÀ?˜™?Çré?¬‡?_Iì:w?Fy›?Åî?Ë»H@(¹é@4[P?¥±¸?fj?Ý­@Œ?Ìè?Ny?—œ¹?Þ=?Þí@MD@ïM?ìå§?æe”?㉠?ÞÐ?üœò@Ñù@©%?‘ÛS?é?¦6»?¦¤‘?ë;0?ö`O?”¬i?& Ñ?'O?®Å?é,>ûz‹>Þ­À?—*Ÿ?Á?­ÃU?¿‚?ÆŽ‡?«bŠ?–ì?§# +?±d6?Ü]À?ÖL1?Œ†?ì?SD—?v +ù?¶p?Ül?¥¹(?¨”Õ?·Çª?Ón?Ña?ÿ-?øéT?]Dï?HUï?~à8?eÔD?^–x?`÷O?DõØ? ë?º?¹ +d?¿•‹>áÕ>áÿ›?É—?Ð+„?oXß?I{’? ?ªEp?tH½>ãeš?´R?gQÊ?d_?`ø? ?ÈÑï?Âf–?5z?R¦Ë?ä¼>à°º?—_]?Ê +?™Ç_?fÒz?$.>ß>dþ?Àè?ÑD?vÖü?ˆiò?ØL¹?æ.™>ñ8]>ê ‹?¾?ßš?ˆ'?N“[?IïF?BÃ>Äج>‹{ç>÷Ú? Þ>ügp>òÓ?p1y?¤ïÙ?ŒŠÃ?oøš?G÷)?*Åã>Ý<¹ =úßx>8|>0ðä>™’>H“$>ðs©>xÏH?sÌÍ@ +—Ú?œÎ¢> p²=45¦?ïâ?ºSx?~ŠŠ?7µ>€ªÚ> Á¹>g0>žQf?ýQ? é$? ßí? E°>°©²>«he?eK?X&>Øò>Å>F?„;?¯-?/‰c=ö™ä>”~?7…>Ãúù=ÕÔ=°Y8>&ö?ÒM’?ÒÄa?yŒ+?u™D>ÿÎT>Ôw?9Aô?TßÐ?+>­?J?~×?°Ë?®.¶?ªŽç?› ?kÌ?lÉÂ?w?q€?)Õp?+vØ?­ÁŽ?°§:>̉>uà¸>%=˜>j?"¢“?kçœ?7;‚? 7(?Sî>ì)r?R“‘?ÊÇ ?ÉŒ¿?ÈGŒ?¸9?D?F7>>ìà ?,®?.•±?E&?KœÃ?‚ÏD?ŽÊ?7-Õ>íI!? 2&?’¿?Oó?ŒŽK?kh>í°Š?؉?™Ãæ?’ö”?9Ƈ?8L=?h¸>øãy?a§°?nTË?Ž¯{?T:?H×?+Å? ?šŒN?DIä>¶ +>ž“ä>›AÀ>×"?"ÊQ?h·Ï?ÌéP?»Äß?PèÐ?Qâh?,ù?)/t?œÒ/?Ÿ[C?„A2?€*?¸\õ?À37?„AÊ?hnž>“ ­?ä?p‰¶?—æÎ?´ƒp?L7h=dã°=²ÿØ> ì?rÝ;@4ØE@$"?Æp%?¾~æ?µ`?©°}>z ë>¨³@Çd@™ê?b‹q?[Ƙ?Aäù?D‰þ?7Ý?/{«?92ú?6®¤?¼t?îL?„…Ÿ>ò¬Ü>¨~Ò>5Έ>¦8¢>ï÷?úß?>€6?-ðc?†€?4Tô?…SÕ?iõH>ó‹? hä?gÔ~?tÕU?°ÌQ?±²J?sü?s^¯?q!s?nW>?knÌ?h„ß?®&Ð?·[ô?Hƒò?*?²/§?ÇÂæ?E>ôæE?_ب?‘ó&?„We?^ »?†ãé?œ‘ˆ?6’¯>v=‰?Iôª?«ñ¹?nÕÐ>õ¿î?vÀ?à›F?ÆOË? ?|ˆT?6ƒ´?!k>>öL(>ïkt>§ç>ÅE ?v“?u¥ì?s"É?\9}<ˆ×l=²Û²=f(0=Ê1¦? qe?WÙ@Ô@’?Ñ%_?É8+>×ß·>¬O´??h´?TÃ*?°ñÖ?¹Ûè@{ +@)…|?ñU?×u\?h–“?0¦?ªç?¿¦?<Á“>øiÂ?‰æ?›EG?A–ñ?]·?šq?ÃK?làÔ?J?FÙ¬?sZÕ?¡XE?ºÙÅ?jLé?© ?g?-\×?ÂÜ@ +Wt?ÒãD?©¯?º&??»A?»KÁ?»Y?€èà>ùæ³µ?n'œ?§is?úÖç?¹©ª>úù!?tôQ?í9Æ?ÑYÒ?¨IÕ?Õ3@’¤@ µ¾@ +Úª?üæb?Ò“Æ?Á"£?—-?¿À«@ ˜e@X?Ú8µ?ÖŠÿ?ÊÞ#?ëaå@&ÿ)@9–?Îñ}?¶¸±?o¥?‚S?²©2?Ò5@ŒÌ@ oÐ?öÞÐ?Õ»Ý?~b?dç?2j?“^î@ îé@VK +@¿d@—Èð@Ò@ )ë@ +9€?ö’P?½t™?ér@"V@ iÒ?¼Ò¤?º?2?©Dš?«àW?¥¹f?íÑf@=¤Ð@ÊH?½¯š?ð@+¹Ë@,þ@-·Õ@=?ÉÞó?ÃâW?¾š?»uÎ?µÓ?nê‚>Š×‰?:•?§ôp?Á¹È?î;…?ù§@*Õ?«DÏ>8æ>»h ?¤è?>;Þ? @ gß@k».@N»N@*Yß@%"@y ?׃?]ÿÑ?Ãä²@ÐP?׸9?}‚?‹Q/?…1?H®Ÿ>þB‚?€~c?¾'q@ Üá@-þ¡?îX?—P?y?Ë?;ÆÛ?[Ö¯?}˜¸?ëhÌ@$d@Ùy@Cž?˜b>p¨a?ÒRu@%Ž3@0oþ@=ƒz@&@Ö.?¸#ž?c‚?µû™?ãVˆ?ñþ3?ù¬?ªX#?}à?¥ø(?´©’?Wóá?É?Ýu@ «a?Øœ¸?¾"Í?Y„?$Æ ?¾q?ä|g?[dÂ>ýuO>¢{ +>ltÃ?á:O@^ª?Ý«?¾ï?etò?<€×@m“@ §É@ +@ã?Ç)?¸x0?Œ7 +?{ªV?°.?½å?—©Ü?’Až?¿ã½?Ì<?ÛñÅ?ãÅ$?ÅÂ_?¶J(?äùÌ?öc@%"¨@.®?êìÓ?ËÂZ?x;?RÒ>?Ô®‡?ìb?î¸Ê?ñ•?µ£‚?¯ˆú?ùÖ£@’¥@8@ô÷?¦*?Š¶l?í“Á?üz+>¶+î=ý"?_å¯?|Y?ÈÐ×?Ö²è@_ ÷@x«å@Ù9@Gg@/‘ä@:;@a!ü@`î:@ +t@s?Hsæ?ý>ªƒº>*Œ¹?£Å~?ÂT“@P7A@e@Æq?è™N?x?^v?’Ã?’D{@#:à@7Tv?Ú–Æ?¼m¡@^@‹@[4@ì'@N«?ëµL@—Ì@¼®@Vç@½W@Ý??ûÁ+?še'?y¹@„1J@÷Ÿ?üõ¥?Œm?hÓ7?QÚR? y?­N˜@ltø@”tB@eø±@H€@3ÞO@%ò.g@?È}?ê*C?â)\?¥ +?ž"r@,U@:¬c@×K?õãT@ONç@f×@R¾?Áe¬?ò±Y?ým@w¹@”ÎÀ@€”ñ@kùd@=ïI@!@3+@BÕû@1Ñ@_ +@ G¹@^@"7ó@@‡@e¾s@˜œI@ƒB=@ì@'a@T'@O*A@Iç.@C °@6£e@3×?ïÊ?äâ ?ó6?ó’@2Þ›@60?ûs”?áÆZ@-L–@9¢+@ Ê]?ô¬á?›8A?\#@$wƒ@m`N@,´`?Þê?áiê?ñ±Ð@»@ó@ þô?à@¶?¾?¿¡5?ÜAž@/Úê@(¨??Äï˜?ð”e@–a?@–Q`@iÙ@e~V?Þ„?ÐÈ@‚Ú@ýÅ@O?â@h¤Æ@Î?ʵ@!m@P°ý@$²S?õÅ/@ áì@$Å@30@\#=@?²J?³ü?·Ég?¶e?€ûe?˜>›? H?»}Õ?´¿@óW@ŸaÞ@ZÜ­@4¤ø@"@˜‰@b´@"Í¿@ÿÀ@Qè?ø‹C?kò?ˆÂY?‚¨‹?‰9È?ñW>@’A@K$Þ@>O–>ò6ò>ŒÛ?øú?öå|?çœw?Ô€ó@H^@6t @Ê¡?²ã?Ê*w?ý@^Ã@=~Ñ@,vî@ i@-j?œfC?©¬«?¨ã?šub?KÌ3?IS>3go> ƒà?žqØ@0ƒ@ 8æ@ds@`¬?âm?Ð Ú?½¤K?«G@x;Ù@†ø˜@#é¬@£Ï@~5@ÎL@ +ÍQ@ 5l@Óæ@#|@93?¿x?¡sÆ>F'†=â@é?­Ø?´ÝÞ?„ +y?€²y@:Ö@Zš…@2ôþ@ Î@4@yî@ +ÍŸ@!UC@'?iÌ-?swô>›Ž%>Ê‚$?×)÷?ÿ–«@E?î˜?Ï©Å?À±Ë?ÚZ>ìvŽ??UÙ)?Mž?úƒl?ðj?èÜ?Špy? š³>gÕb?XkŽ?·Oy?˜GV?TQÆ?M?Bž?—y&?dfÛ?bŠŽ?ë£>â\Ø>¥°›>„g?!×Q?°VH?²í?•l?¤Ç?üÐ?Ž#+?—q?— Z?îK @ Å?€‡Í=>n´?ZU–?ös!?épL@Èý@ {e?.L?ZÙˆ?{2ô?“is?Cð„>ó½M?­îw@¯µ@o?‡;`?Æ‹@)@¨ ?ƒi/?$#²?Ç @æ?Þ:@?µîý?±=ß?ßñ?ˆ‡?”9?™Ê?Íè”?Ü¢#?à²?åP­?ÆYÎ?¤‘=?³B©?¢À?Šy©?rUN?Š7?Ì Ì?ÝtÚ?hP>Þ]½?>’q?…_ ?Œ¯L?è$2?Ö–?»(ë?¯‰µ?¦Ä6?¢ü?·ÊT?×*?ÌŠ½?¦Šv?¸É&?ý×8?òæ?Pš?_®¢?sDè?„×þ?ý^@ 2@Pë?Ö÷D?èÖê?ú¿ì@Vì@$Qì@~?ú¸&?ðƒµ?š†Ó?!^÷?>_?xe!?zO?¤$?¡Ö‡?ŠV?)®‡?°~>?øð?ó¹z@g@Åf?¢ÊŒ?§Oé?¬~Ù?²ÃW?ª I?—y8?a =?=š+?L ?_r‡? Ÿ ?ÜïO?ÂÝ•?Ž\w?šf??§FÖ?À‘p?F­??Zr@3Q@AÃo?ãÅ{?`ÝÚ?Šž?¬ü ?›ÐÂ?‚,Ä?rzß>ôHÿ>â‹=?¡»‚?µŒ?7Sõ>âZ?<œœ?„qñ?KhV>ËÃ8?0,°?¦nN?˜(?A/Z?4R ?u'®?• +Ï@ |O@ea?RÂ>å°Æ?È`?XÙA?‡_þ?Ž«s?cö?š‚?: ?«ƒÕ?–²K??®?û×?RÝÞ?nEY? T?µ¼>î¼a>ê‹i> +«> õ(?z}ç?™?VŒ>+ŠŠ?u ?^/?k4?gˆ®?Q‹>Ï°±?Wäõ?”{×?2$K=éâ =+«6>wZÌ?yÞ>–î8¢0<þÊ8?ré?‚?¦?’L§?ºt/?j¿Ð>¿w>HÃÁ>Ò¡?’qÿ? ÏE=ÌP<æ$ø>¦ai>yD®=õìÈ=ìó7=äRï>R¸>³öW>½‚?•]?—Þ?[îÿ?SV?(ÄŽ?(x?›É—?®#?®á?œóu?77×=Üóñ?$•ð?*Où?j,‚?j;†>öLö>ê^>+#Ä=ë ?rè ?¡F‹?U†]?t?Lˆ?£n>Î{ =ø::>¯Y¬?k!I?Xo>ëAÉ>àÛá>R}²>X¨?AAc?E’ñ?D‰y?Cp?”? NÉ?:Î,?U1:?#Ök>ìà?7ü?þ N>“c‡?hb?Š&†?`®ó?CÙ?Ba?A&E?0€?%¤õ?©å>í¥?ÌÔ?_öØ?Lx>Þ ~>òE?1šJ?5—S?“È??“)?™¨?Ÿ›b?W‰?=WÛ??u?@æ‚?B¶*?DŠ_? íQ>š¸*>a1> Ÿ>»äa?PÄ?BËr?\?(0Ô?€%?? C?9Ó?»;?º»@ ¬l@…?>Ÿ>ð2ƒ=í"A:üs÷?Îë@‡'?š©§?kH>÷<;>Üw?øÊ?SCÒ?L –?Z`w?Z9ï?AÀ?C±?33½?,+É>­Ä>Æö? w?¢œr?k¯?(U?S@?Nô#?:ßÈ?8æ?e.f?rM¤?•cT?©ÁB?ªç°?œ À?vƒ7?NŠß?rÄŒ?‘»?“Õµ?–£·?Œñö?s.o?ŽÏ®?¶{ë?˜á¿?Pâ?À€?ßv??xà>Úç;˜ =н?´7@?±wü?'Ð?­è?±ŽŠ?·LG?lܾ?Yò¾@@Áî?X[Þ>ôÔG>ôèž>ôôØ?¬5~?Û€á?–ÞK?m¤f?-,°>õe&?•SV?ä?¬ÿ8?Wg©?À_@Î?äY¡?§±Æ?©Y§?«Œ?÷?$V£?‡’@ Þ3?÷ˆf?‚ËT?aù>ôˆ]?'\ä?´u_?ž©þ>ãh”>÷x•?f’Ã?V¢­>ç‰ +?Nþ>ïQ¡? +ö?•½Ï?‘Zm>ü“>÷™?¯ù?!w¹?Ç5(?×£?¥[^?£yù?Y2Š?F§a?ÿŽI@‚?‹hÜ?CBé@&@@K=?Ã#È?x‘y?ÐGR?ñk!?ÃpÊ?³!ð>ùÂQ<(zè?woÕ?ºÆË?:Ø?m².?Û]À@ *Ç?Š»Ö?¯?w«?šú?ÝH~@Úù@›@*óç?÷÷?§“ð?ã ¿@ ×?˜9S>Šêˆ?€®L?áúÖ?Å÷t?§0ô?Á'\?ÑË?åË%@Öÿ@á…@÷ ?°Ä`?¹:>¬/=?¬?Qžy?úÈ0?–ê= ¼ >Ꟛ?–u?ñ;š@>%›@6Û?z,?Ê [@ô?ûb–?”Ê?´·?{hB?žêï?ÛW1?Ò?Âß?Ý@­@»?öî"?Ò>t?ãÂÉ?û˨@0@U?ò?q;?gîo?Ș?5‰ú?‚¥R?|›ª?|%[?‘Õ +?²óº?{¦>>³©Ê?£°æ@>ˆâ@9’@½5@¯G@”6?å17?–Þr?ÐÎ@Ô¹?é\k?;§Ø?M´§?iKš?›é?ÙŽh@¶@4)É@3¡?Ûc‰?Ü“{?ÞgW?°Ýò?oÉ?à¬;@<@(@=C*@=e–@–?‚€T?­_/?Ý @F@+ÎØ@ v?ý)¼@C®@?cÎ@RP?jäü?‡„Ÿ?¡¸š?½ÄU?Üþm@$ÆÏ@bZ @KlÐ@2q@3­.@8 f?ê&m?9f?†·ð?³|&?ª)h?˜u£@•@ZO¹@Öõ?¼y`?»ðË?¾t@$Ë@Y;r@*g?}{‡?šâÂ?¬£9?ª‹;?¨sÑ?ÛÐ?ý…¼@!ýr@2>Ï?ÏÓ ?ré@‘}@Qn”@‡?ý‚ð?Ù#i?̪?tº$?Âê?=5>ýt?ƒÊ?ÄôY?’šö?}vV?ÖN?ùEì?ÅK?­ +v?¡±°?¥[K?ܵ{?ì3W?¿ ?¦òÇ?åp?ýi§?ZI?>ý^©?]¨N?p¾L?˜”U?¥ês@ì@×? ~„=òÄ‘>ÔøZ>ý=†@ná@4œ‰?t9e?þR?§‹?¼2?Œr?„ÞÚ>‘0ö>-×¾?¤„’?½Æ ?–å?’‚ù@=¡è@KÀ…?ÙŽÿ?½²¥?¼˜6?Æ”=?ç®Á?ñàe?‰Æ'?m¥?ǘV?ÌéÓ?áÝm?Ý}?->äݲ@&M:@;õ?AšE?G–@ƒÅ@œ +@H @ ?ø‘Ø@?@)÷!@þ,@Í¢@;@®)@BQ@up)@ƒ– @‘Vä@}A¨@DT´@)ñ?÷±¼@´Ü@eÔ@ ÒÃ@H¡¼@W@À@…\@z%I@1-p@(Ÿ*@-–Ñ@0Ÿ‘@3«Ð@3{l@¯3@ º@+9‘@0ºH?«&Ñ?¹OÓ@QÑl@KWü@JýU@ApÙ@8ì@5¥@!H@+¬@2À7@8Bî@*.L@))@;ßv@R¼ @hg?ÓJ¸@~bï@ —7@;æ?Ùó +@ª·@,Ó@8k=@V;@zî7@– o@uÄ'@+&@\î@“mã@ƒbÃ@8ª¼@^}æ@¥Šæ@™Àì@o o@aÚ +@ @gt?¾U¡?ÐHW@F¾n@=Ô„?÷³¬@”?@*¹k@/v^@Bë(@KP‰@gŽ@q’É?ÝQ»?r)—?Ý•û@j'@Yb@ x@lÞ@‘"@Š@è@Hœ@ŽtS@gü©?Õ€Š?Ù™ ?»pQ?ëà,@€ýÌ@nËÙ@Í@' å@ +ÞB@>ï@ŽÎ?ìx¬@FŠÏ@Z~@Œ~Ô@•ÍŸ@c¢€@?7ï@2÷@^ÞA@?Û9E?Ôc¶?¹^á?ŸáÖ?^ë¦?f‰©?eRø?e<?R“?e|H?˜°j?¬’@s‘@6b@½j@?ìä!?ªnÅ?Ñ @Hl@7È?«ób?»Ý?®½-?ª¨'?ƒÆ»?cQ§?Ùõb@&2$@(8‹@dN@Û—?™éÙ?”¢ì>Ô6u>üã8?Uý±?Hôò?’®î?­Õ¡?•p?iÁ»?„ ï?šó·?š(£?Â}?ÇFµ?ŠÜ¡?€Tˆ?ÎTa?æ4Å?ÂHš?Ÿd?ö½Î@Kùz@0?¨ƒŽ?¨uY?Ëv?Ѧ?/8h>Z£?Q ‚? QÚ?¬ ?ÔSØ?çËØ?é/?×Ïù@AÅÖ@R4L@0Vx@'ŸÝ?å!?³/i?²â½?§zÚ?Ÿ­¼?‹–+?€Û?€ B?u?›g?¦—¯?P/ý?%0!?Šè?¶/‰?ÓO @#7E@A‰?A“?f*¿? }Õ>ÞNú?B+ð? ´‹?Êxä@·@ +›?þ­o@Ý?ºû¤?¦g?*?Îë?Ÿ|Ä?¿`?ʇ@ êé@ª =Í#†<îe >Ó{? +?ÙÅá@$!p@¤a?.†?o/?Qr–?\1?|„?I&¥?¨F[?»›†?°Ö?›òf?ª7A?Å»? ±ä>ãÕ¯?°Õ>à ‡>ÞgG?_´¦?ôÊD=’bÿ>À|N?ª±?d?ö?'έ? Í>ÌÔ°??ªò?]Lj?ªô>å“>åÏñ>æ—?*ôâ?xæ?s ?Pä^??0>ëê?†Ç>è;|>è‰I>èÓE>é,?f¥…?iÅÒ?úW>êlz?>€7?7\p??èÈ?`Ãë?€O?e‚ê?_F>íJÈ>^ìÀ=Æû=´ïØ>¡‰L?M†^?-ëÙ>Á±¾>‚<Û>`r>»ñ±>ä$K?1`1>ñ"x>3z³>ÚÏ?’/?Q?„V^? &‚?2üÏ?Oû@£ú?’‡>èkù? wÕ?"¶+?Cò.?zò ?Y˽>èØ]?Êï?‚Þ?á…?Á?ÓÍ?µd*?Ä)"?»tú?ºÏ?•’0?ÞÂ?¢8¨?¿[?…zý>ÀåÜ??V.©?i—¨?¥ñÌ? °§>ê;S>êEð=>øÌÔ?G±?Gê?X +å?‰dÙ?=M?RÝä>ÄkÆ>”À©>A»>t’B>ë3e>Ê'{<ï½=?k'´?k„ý?k”F?k¥L>|ÊÐ=Çìa>+› >RÜŠ?®?ÂKÛ?\Œ‹>ko?g¥»?ûåæ?ÎÉ‹¶ß>šË«>ìµ1>í J?r,?WÚ?×3?!'y?"eÆ?#¨?VDš?mQ{?*s>ív[?`é?8•t?PLÁ?tÞk?-0²=ª®|>î^?;Ä?——?˜ (>õå>î]¹?#ü?%2â>ý²æ>î¥Ù>²†I> °?4¾Z?nìJ?/.+>ï?!½|?K½?RãÄ?oY¬?5:=¢7­>Lž?O(?o/ˆ?ïÈ&?îX7?°$?± ´?—!>ð(?>ð9>ð +?šRi?¸cµ>îs*= q,>œ[Æ>ð»L?”òý?ß ”?Á-?ž1*?mSú>ñ*ÿ?2±?”¿]?’X½?ê²?‚$?"öV?=\Ä?‚§?¾ÎY?µ?#?µw-?šÈ?—|Ê?–=?”÷»>Ä„˜>I®½?±]?ë‹•?Øz?Éß«?‰}ä?=ò?JŠP?OÌ‚?h®*?…*â?äHŸ?¶ú?» •?Þ§.?Õ"$?"v@?(âæ?sì‘?t|l?ùk®@(Ž?/öŸ>ôÂÉ?ž*T?­U|?cê´?W¯F?{Àc?wm ?ˆs>õPÜ?%¡Þ?CŒ7?•&U?¸0Á@Ä·@G*T@ +.?Š^%?jÌ%?E"Ù?ƒ›Ë?¯žh?‰:?›¢?uβ?ñ{£?­9ò²> +-¢? ’?"„õ?j€?¦Àí@@T¾@+bi?’¾ª?»`?ˆµc?}³Q?J'â?XŒÚ?‹†Þ?‹ ??ÔÎé?Éç>ê3>üìÿ>i>ŒKš?„PØ?„]?êØË?ø"‡?Áîz?º/ñ?ð8c@%ü?•õî?x~‚?§œ˜?´lÎ??]z?]²?Ê?øIµ?c|2? î?çë@Bs@ +¥@×Ê?o¬t>ÀÜÙ?ÆõX@ +(›?ò5í?åÉd@½–@ƒö?öèU?×ãÏ@ëÙ@'ô?ˆýã?4ºƒ?¤—¸?q‹R?- +Ü?Úyœ@,!Ý?있?zQ¨?Í-@)™?ÕÙ?ËŠ?På?»ö ?Ùï9?ú³­?×í¸?«¸(?ÆxH?èzÕ?æ%Ô?ð À?»ˆ?Y ?‹ Ê?» ‘?¤)±?{9S?¢O?Ã/?¡7ÿ?}%?€çc?{zc?­¯?ëu>?»Jv?{ â?ªd?ëî?Èc¯?˜ýp?´zÇ?Ûjj?ÀÈ?ŠÅ÷¢¨?šS?¸)m?àýj@— @Ù[?î¯?£Ÿo?צ@ÿ”?æ/¬?›×Û?œïœ?£Ïò@Tí@=}2@&Õ@ .¨@ +£4@ GÝ@{'@.Ü…?ÞUX>üÖÒ?¸»·@ ܸ@Z)@šb@ 0?¸­¾@" ž@jà@þ™?²Ýª?”6’?eE?•@d?¾AÝ?ÄÃ$?½àu?˜Aº?s± ?Ÿ2–?ÁI’@ ™@0ýÿ@-æR@)1*?ÿ“%?½÷Â?½ù(?½ýc?™ú!?}Wì@ +¡’@@²ñ@ò?ù¤?M~¢=0œ¸>¾H~?¬Ö?§…)?æµ%?è­{?à¿?Œ»?HÑ)?„1³?•p!?óª@ñ&@6@,é?¸¶?T?Ó?Î @¸¿@ßî?ýsi?œÞl?Z«?X?‰®×?@_!?dh?÷áQ@6¢?8í?‡ @1@8Ö @ u–?óÔù?™gæ?}aR?—ˆ?£:Û?§š/?«üF?eŸ?XLð?LE?>ql?«Œþ?½ù-?³ÊÄ?¬³Ë@#3¹@<.á?‘}º?7?Ýû?–"û?Á‹?È0A?…öX?{¹Ç?~^Ä?_I?~H‡?}1?œèï?š ä>Öû>Å ‡?ŸY?¨§¥@#’=@1¼??ï]Þ?Þšú?õÏû?é#²?œê•?– +?Cê>ãïÙ@ ¿@Êo@)1Ó@//>˜¼r=œ?h)‚?{Äl?ñ7?ñÎð>GuÏ>9@.N@#G@3ñÂ@4@_?Cƒ?+›@ ð@Ìe?¾‹¶?¾÷X@1‘@„‰?Ñá÷?»w¯@C,$@L˜ +@;çI@A7X@1­³@3ýï?Àçà?ºï?ö~Y?õ~@lÄ@ @ç¯@ÿs@‰g@ŠâÉ@/5/@(µÑ?à·?ØÔÿ@ +Ó;@ )”?å-{?âüˆ@+@2Ê?ìFÇ?×T:@Hüö@W<ó@Qº@U/y@@ó@o?èžå?÷à?úÔ@70@R5@y@Td@í¼@6–?°t!?•J"?Á?É]‹@GSÓ@uª«@œx@¥˜Ò@bg_@2bë@þe?ådy@MqÞ@zQW@Sb@Aèû@@ ä@:]N?úòÍ?­TÏ?ÎF!?å7à@!„@Kè@@$àM?øE[?öI??öyw@B ‚@ŠÅ @‘Ik@šïQ@ˆl÷@XË;@NŸ@9Qb@-ê§@$+@JÍ“@‰@{ÎW@U(C@hÊ@Ž&@~ç@±s?ú¾c?îj7@Ð@8™Ê@4@Ü@P@@Æ)@¥;@¡Ìú@Mõ@TÐ@s Ñ@q!…@% +A@&Fj@>ä@>¹¸@¦šŠ@¶u?Ó÷Q>øÒ?ïçø@ô¹@;fK@Uo@p…?@qE”@IA@0V—@99{@H£–@GMÜ@Gc¬@!©ô?ȉ#@:•@bY@_…•@Rhé@3ëò?Ò˜8?Ðsö?…±¤?¾Š\@-Û™@»_>½&?m$@t ƒ@wcA?˜àƒ?‡ªÉ@ +td@Ô²?ù9S?òr¯?óp?÷›?œ/m?r|?ë&@O‰?õ˜Ê?ãyÃ@@ò@ùp@íL@Ýl@0 9@ZŠÅ@,I8?cQ?©ü @Q p@7(X?¡KÞ?Ê£}@&í@"é¯@¨Ã@߃@@mƒ@A½›@!3D@ Ü@€Þ¶@Ãô@…Ø_@ƒ‹W@0a÷?í5¿?¸!¥?•(f?“óè?‰3ð?•&«?ª¿ª?ñ/Ï@LÅ°@0@ @­!@–@ˆ(@Y]@÷y?‰p?KŸÞ?ÎÏ?¯,v@$Šú@D¶Q?ÔÜ+?V?†O$?ÏZ{?ÂÓ8?®t ?½X/@“Z?ûN?è/S?èG>…5Æ>W³(?„¸?µL?‚n²?gv)?/û©>çå}ù??S?eHU?eE/?ýT(?óé?ÓÓ??Àð‚?’õ?ŠçÛ?ŒP£?}Žò?j Ã?g`W?Š¡?ä‚E?ùgj?cÇ/?c²%?OÓ?–k—?gË?OD?eAÖ?evŸ?Vf3?C4±?™Æ@b?@A|?®hª?ÕîÅ?ÒÃP?Ü7H?űA?£4?”×@?Žh?Š©1?©&•?©]?j ²?e?öUÓ@ µd?ºYÜ?l+~?´~@üf@R–?Åž~?¿ )?ƒ¢¸?Ž_ù@Q@!·o?£Ñ ? Lš?ˆ?4ÆÄ?”ÌZ@òñ@}¼?†]?‘ˆ@.1@%wà?èà?Í‘?¯Äa@ +`,@HÛ?íóÁ?ÎëÙ?™$·?ž¸L?qœÃ?`w-?Ì°Ä?è1?¸d×?œÛ ?²E*?î¯#@7h=¢{¬=q@ æë@ï#@à ?þ 3?ëm?ßÕ»?Ó ¬?ô_?ûJŒ?^V?^“>?gì?q~Ö?í*¼@ ²ý?ýì?ôPª?Óä?]êM?a˜×@A%’@2×?ÙŠ2?­KÝ?™*Ã?§¬v?Ââ?Å{^?£*>ìN˜>àV?ü.?湈?°î›?¦ƒ?ª/Ù?¶•t?öjó@&›•@&œ¸@!é,@@?µ¿?¢>½?¦«]?”ø@?œÆÌ?½;?ºÝô?¦6Œ?˜{H?^Àö?\ë>¹K >êî&?or´?{ 3?ø_@%ÀÍ@Dt?Ÿe±?‡@+?O?‹*Ÿ?¾„ƒ?¸N @18@@zz@é›?ÍóË?º·?»iž?¢—5?RÅÄ?x‘¤?ö&?û£k<F?=“iV?8g²??b?BmC?sÁ€?ž}R?»'»?¸¢q?¨z/?³@›?Ù{å?¾;?>ãä†>äÇ?–rÍ?2ú?LZ>äû¹?ˆ{†?™fE?ŒG?~>Š?/áA>æ|†>ùó?ö‚>°±i<˜ ¤=[^=ü^Q>4T‹>j­>–)?G!©?X~”>ý}>êLQ>Y8`>}T>as +>lÒ6?´½²?ü +—?‡‘w>í%^?.š?Ix˜?:p>’gV>mrÕ>5ó=>+> µY<ûâ>0}>ò7Ý>ò©%>ó >ŸQe>0qÝ>öw?-®?F¹?'\?AÀ>Þñ`=Q0<^FÓ>è! ?È°«?¦`}?]Ý_>³>è>™?‹?ÁLb?|`2>Ý R? ?Eë;?tx?Ç÷?¹r>è÷œ>ë ?¹“$?½E9?I?+–¤?¾ß?>åÍ6>Ê$”>‚¢)=Ã0>>=?GN?¯{?´c¦?È È?Æ'?Ž%Ì?Ž/e?X¨ý?T A?“Õ? °E?¯??ße?(Ü>êÙ¼?oFí?»ú8?y·H=Áå=Eˆ>T~ñ?Ñ’j?ÌÒÆ>XT>[#?}©?…á¯>öX¹>¯ô5?¯BÕ?ëùÓ?•àP?*'U?dĵ?˜Ï+?o¯ª>ìbÙ?Àý?¬?t/>!×c>A]u?!\?"+¸>H“Ÿ>87r>=ö>Aã? *7?)¤'? ÜØ>íg„?5?/%ª?Iø:?mDÏ?1Ư>c +$??è?§º?š?nQ?`.y>>“S½??½?CÌ?ç>îšÔ>éÀŸ>Ö¾¾?+lˆ?N§Ù?AN—?0£š?P?Éëe?¢‘ª?ZK?8î>ïs€>®Ã >¨ª=?æ¯Ù?ÝíŸ?tÁC?oúÓ>ðÉ”>ðË>ð(¹>ð;˜?¢òA?´En?&æ~>Ù6½?>AQ?`q”?@Ÿ?7Õ?g5?…Dº?ð?–sX?Ž«?Š=?‹s?ŒÄ¬?u…>ñ…w?v¤?‡²±?r%?”Ž·?’¦%?5mP?=Ff?{¢Í?€åÿ>¸\]>“\t?Vð?ryë?ÆN?à7@k@>«?⟰?Ùú?ÆÇ—?¶Js?Ì"?äo0?Ìõ?­gê?ƒ5C>ó~?Jd?¶¹/?¥HJ?i±?hoN? ?r[×?-JÑ?H^? ?š†ñ?tV@?vÝF?óH•?ô‹S?”€€?‹>t?Æ„g?ÐÑ~>x ??²U?xL0?>õ>b?CXJ?Y»?°ú?£®€?¥RE?¦õQ?Ÿb?œ(Z?¿=?.?/Þ?Ws%?s“g?ƒé ?J ?xš˜?I!>ó+ ?ûô?nVì?‡š¼?±–'?º÷Ð?äDø?ÕÁ#?‰ ´?‚i~?A™?gÊØÛ$>ºE >À†F?-`?dÄé?ƒ•?‹A£?ŸTñ?µ”?ºÌ?»ú¥?›ˆ„?ƒÀ?„8p?ƒør?[ÖL?;’5?‘p?¼(¸?œB3?z÷;?©m?ÏÈÈ?óx¿@ ‚Î?»Ù‚?i¦ò?>Ðñ>ûKl?á•?GP3?¿Öà@ +•?óºª?µL?äø.@ +>C?¤…>¬Ù>{)œ>'Pb?”÷u@³’@*Sï@<Ýî?ëvú?']o?)«›?J4?©7Ï@Þ?Ö²?®?´ |?½+û?äÒ÷@ –÷?Æ´t?iah?Ųn@ 3?à?p? âž?Åvi?à\È@$ƒý@\PE@ðP?¬ÑÊ?‡îÓ?Iæ¤?ˆÁ?¬¯?z:î?d@zã@{=$@[½¹@<‘S@)È@í’?éìÓ?»N…? ä?|÷Æ?7ËÔ>ýA?‡!n?ºWN?0?g¨w?€B?&Y?{?ýI/@¬H@5IÂ@CÊV@H€@Š-?½ý ?¥@—?q…?ox?–ày?¡ŒÂ?¦A~?¥O*?¯?ž?>)?o…>én½>W`V?2vv?Yh9?ôÕé@1?ù#ÿ?ï5u?åø²?Û·U?Épæ?ãö?÷Ó@¥Í?™¶¶?yuÃ?ºZ¡?ÐÎ?õÒ?ýQÔ?0Â>o?1@W³@W@ôì@“¾?Uϱ? òµ?­gD?¼I@(s¬@.1?Üà8?Ñ=\?ka +?Dµ-?¿±9?Êë³@ƒ@‘Oö@,Ú @/,?3 >ý¶ì?q¹›?}’@ Çe@‚@?Gb?2Ix@ Ã@ !¡?^¼Z?VÒì@ çÊ@«?œq†?!@H¤õ@Oˆ/?~¿‚?sz‡?¨(Ã?«Ž@AœÙ@I*‰?äÜK?×Ú?€1ù?|³?s>ý£¿?Gû?‡lã@ 1f@8’?­MÖ?¶ä/?îlO?öÒ?W¤Ï?Lo@?¥µL?²ù@?@4Õ?¼æ„?½w@O¦ +@R‹˜@ +@¯?™M¡?‘_˜?´k?·ù ? û?>ý„É@—‹‡@–üU@ ¢$@(1?PWP?S2@X''@cÏ@ sa@_?ä‚?Ý•?¿u„?ÉtA?¦@ä?¥O®@ü<@ Î@"Ö&@"öA@,2U@12W?Ç£á?º¨@Nt·@ZÍ@2È?òÞ·?Ë Ä?È™`?æ—?çõ@9J@$@Ñ6@ »3?å¢n?Ýèª?à™ü?ãG\@P »@nc—?¸þ? ™Ç?êm‰@ \?ßëv?½+·?˜™l?¡jI@Fˆ×@oq•@€ÒÚ@€¾j@@ªãÐ@NNž@ Ç@Fì@hm–@ë‰?Íi#?àB°?ð…@“W@'nÍ@_?ø2*?Ù×ã?º³'?Ý1@‹¼@O&@Á¶{@‘Žš@*ö@-ì @0ãï@,o­@eÓ@:@€©¦@vÈ@E`Î@HÅ)@_Ê`@Lnó@ÁÄ@´l?†þj?±”æ@VÄ?@P÷@4¶?@0™Þ@ó@"ÒG@š*£@š¯î@¦©@ +3t@‚6{@„&?äTk?Ãqî@C‡À@Q@”à•@ ÿ³@³ü?· å?èŽ?û² ?¼éÝ?¯p@!¸É@J¬.@`,Œ@gPŠ@0´^@ +Ú¿?ì]??Ê( @¶‘@G]@$?‡?åÐ?ñqÝ?öúûö?0{?p“H?|Q?´:›?ÍB0@FÜe@DáØ@Qqp@Qì@”-@ ýj@3¾E@K]o@<Ö +@3€è@3e@/²¥@'À@$ü@‘?Çã'?¥2¿?n‘q?¶|F@1Îð@)Óœ?·ÃÇ?°I§?ö ?ðñ©?oÁï?r{â?›j?¶)?ÚVÇ?Úƒ@!Ö@<¸~@J?ÊÓ3@½™@USÏ@Jü@<÷¿@-+Ë?ëÿã?ñpè@£?øûš@ +Ø?ýoH?*µf?0%¿?ýA?ÖC•?Ó!»?É=m?ØEî?ç1?«] +?põp?øÖ³@S!@0~Ï?Ç°r?Ôi®?Íp?Ö0ì?›Cp?Ÿ©U@Öq@!´„?Ëñ‰?¯R?™l.?£(?Ñõõ?Ù½C?æâ¶@¾©?á„·?˜Ôd?¶‘Ÿ@µ+@ »ž?î_?è%]@M™@DÍÃ?Ú!‹?­°|?ˆóÙ?g`?¸U>“A?W½|?æùä?Üæ…?±3Y?¬©£?| –?‡†%?úæû@Ö¨@Ç@LÈ?º>,?eÍÉ?ï ?¬3z?‰¹â>èB?'Ñ?ÔÉ?Èk‰?8T?i)m?¥­e?½ßv?™/ÿ?bÉÒ?§±¶?äJ…?ãèî?ܺ?·¨Ó?(ÓÚ?HXÃ?ÕN»?Æ«?¢Èž?•’À?F H?–H?˜SÒ?ኴ?Ãfª?•AO?£‰„@ –@y(>LÉ¢>#J§?ÄÃ?Ñ­y?Gf¶>à¹.?N9?‘?Q¢ ?–4´?Mø?ŽE§?“Ì>9_˜=®åè?Õ @ CL?ÕÚ­? ¬ +?Ç}¥@¢@b¾?ûM}?óÈ6?Oàt?/Zª>gyº<”“!?Qå#?–‹ ?¯t¬?ÉRl?¸]K?Ë–S?ÖÂI?bÎé?6³“?``>ê²í?;X?‘ðn?¯è€?èöK@Ð^@,eÆ@+ >?’.Ð?U†?Ÿ=›?¤R_?fj¸?_n»?©O?ÊGï?›Øi>ã³U>ªQÑ? ˆè>î >ûøŸ?4ñ¤?äâÇ@µ@ tÔ@4ž?úSS?´“½?¬ü?lÙ?]õ$?]÷?]ïb?”‡?Ç¥]?Ïîà?Æ_‚?Æ‹?mÕ.?eÖ°?â Œ?òçí?{è?`K?Ig?? c?ˆò?î¾Y?ä w?bðz?Y ?åÉÀ?ìFa?ÑL?È£?ÞÆ?³?Ôö¡@­Ÿ@þÄ?€ö;?™L¢?Ýï’?Þ> +@£@A¨?§9Ž?Œ`>ðŠÆ>êeþ?/e|?™xå?’”„?2·Ý? “/?”¸è?§DÚ?Èœ[?ßXØ@w2@j?Ú_ö>d¸>Õ*?’€?©Þ@ˆ_@ lE?¢]–?‚"'?±¡:?Êç1?ĤJ?¾f¿?¦Ù?O:Å?\¸?[è?CÞ£?šL?¥j>ÿ´M>º>åÌœ?óÒ>ëVË>è À?*ÔÄ?‹ki?Š¢‡>ãÈu>ãüF?@`Þ?MÆH>ÿ€>äßÈ?²½ ?Ù#?Ž·'?Y ó?H’P?}Ð?'—%?\9Þ?e‘¯?RµÅ?8^?[v? ¡°?¤~??ò??=y»$= ̈¸Îª>ÓÁ?“vU?çÕÅ?g.>î ½>ŒcB>@Z +>¹Ä >îP>Ä> +?'²’?ƒÕT?EŸ>Üï? +~v?K>?¯>†¥þ>S¿<¯ ˆ=Êð>¨Z¸?1ÌÜ>è„_>,Ô>᩺>„¢¥?â9@"–†@Ëà?ì¸?V¤û>è X?M÷?u×ö?]÷>–j•>’`ª>›yï>ú_j?c'U? ®´>Œ?‡?Ø)5?Øtr>ÿÎ0>é*’>-„=ò%=­>üäË?¯cî?›FÎ?D¾¥?Z«i?¯š¶?­¯?m_?Kÿ>È=ÑŒ;?yƒ?D…ˆ?¥Dã?²?×/È?êá?˜Y>³Sœ>î°W?1ö«?F$?“Ä?…\y;þW?ƒoþ‹>.…?s\?˜íŸ?žÝ¡?ž¿)?_ز?P?1•é?DI6?(>§½O>­/>”«">fÆ>ì¶a>óÄ? ,Ç? ì©> ®>…=&>ÙÞ,>í3d?ƒ +¹?—Æ?3õ$>íy>íŒ'>ío>í®Z>íÀG?PÊ%?Ĉ‡?ÂÅž?¦eõ?ž]w?],‹?Ik>îO_>ïdq?Br»??3?·Ìé?Ã>Ò?`?1Lh?=°?¦ŽF?;ñé>ÃèÍ?t?,8?U?rä>Ê ô=žˆ>“ …?iÌ—?w.?³×G?§ˆ >ïðS>õºf?l1 ?jWx? ?¸? žj=ú´¿=k¶b?ˆ‡??ªÍ¬?~ÉÉ?XÏd?*äK?f>ìV>ÈpV?.¶?ÔŒ?o³>¬šz?fVn?ñÖç?ØÅ/?¡Ø?œ.=?˜,Ò?… ˆ<±$»>ò T>ò\>GÐâ>2Ì?8=¤?K-g?ŠJë?” @5'U@V?b?ÓM?rÏ?šQ ?­ƒ?v}?s¨?þî>ôºf?‡óüGú?c‰™?lPÙ? +ÙÞ>õ$„?ŠJf?¡½R?•Y?Èh?˜°m?š˜Ï?9‘>õ­k@ÒF@T|Á?Õ|n>| P?‡;?ïùÅ?Õ˜#?¸oò?ùz>öW‹>üÉ@?à>Ì´°>R,¾>Áž¦?+¼?€¨6?×ý)?Ä‹ô?“¢Z?“s.?§ò÷?ŸMÛ?aùk?lûe?w`¡?‚K[?“:õ?zà¶>P>ç>…’+?’yq?ÉÍ?¦¼‡?©¼h?è!‹?é‘ ?Óf©?Ø«½>îÃW>Ü@>>b€=¨²@ Úx@{?¯7?t5?wŸÌ?xÀ¹?¤}¦?§Û¤?gzŒ?d-|?„ñP?þ0? •4?¤á¸?25z??¡b?Ç6?ÂkÃ?»"o??}>Þ›?¥.?Ók?²Q8?¦Þ5?Âjn?ÌJN?§‰? âS?I*@?²s?è¶ð?‚y›?oy?²{Š?ùöe?‰š?dµ?L–Œ?z–ñ?–Ð5?¤ð ?Í0N?ëx„?Åϧ?©?¦©Ô?«ö?ßy%@æ?ŽW¦>¬T?Öô?6áá?…Û(?¢D«?›œ?§F?ï®z@‚‘@Xw¨@Šú@>¼œ?èJ™?× z?ÂM?Ÿ~?¬I?Ÿ=ç?¿ Â?ÜŽ>?îh?‚Æ>ûìû?§æG@(€?®ä?>ÝÏ?Fªu?Nw›?Œ’œ?®ö? Í?…W•?ŒåS?ž™š?°Y?´Ñ6?æ%@ì@@"ä@kY@Ûg?¬Í.?`2a>çP‡>÷p? …H?ˆÚœ?½|%?ßñ"?ü‹á?•·?’h?º§—@ÿ{?¶?|ÓÙ?œ‚?®d¤?†‚þ?VZu?©å?Õâ?‘}?F@D?5Æ^?<ƒ?jŽŠ?}?­ïc?Í¥?·…?ª-›?xÍø?<·M?" 9?tL?Á^­?ý&u@CÔ@Ÿù?¶í>ýAF?›ºg?ÉËý?Ôa+?Þc¥@ + Ö@ý¤?ÎÌR?­zó?¸Ô“?½ñª?ŸÇ’?—w/?¨gu?¦*¾>ö5ô>…?H„?f?ã°c?þÄ@/¦î@=õô?ñ"ò?Ë @<@'éå@oÐ@nÚ@No +@]Ìô?çÅ­?ºòE@@9o@Nð‰?¸Š=?•ï ?ÀS±?½0@ ”@ú)@(ƒ@W­@ +»¡@œ??߉z?ße’@YªÒ@j–?Ÿ 4?}½?•Þ?œæ=?ÛÍA?å×?éˆÂ?íþ"@j‡@—…?ŠÇ?{ì”?|¸P?|îí?þ•=@-£?ª?¡ž@@:D•@=œÀ?ìåî?ßSv@ Ô.@ ?]?¥3 ?›H3@+Ñ@ >Q{˜>:±ƒ?Ê|c?ÀW?ÐÀ.?Úia@=G@;s°?rØ? +@¼?\|@ +Um@µ?½™?”—/?ÏX?È”ú?†_ ?‡Gz@^ˆ˜@d?ðÕ?íD$@'݈@(Pí?¬¾Õ?°¥ÿ?ð’e?ñΘ?–j›? ˆ?»~Ê?»¿£?Ï®¸@./@±{@!j'@ Rþ@#FŒ?¨m»?_Ê1@ÆÖ@3q.@ TÛ?ù¶²?«ès?{Šý?ÑKŠ@ +›û?á¾·?•Çe?³Âú?ö9Ê@ÀV@+Z´@)ã@Y´@Š>?ì¢?åRï@6ï@0öA?¶¬?Ÿ§+?‡¼'?åÔ@!Z@O0@/d–@ßÇ?é ¸?‹©˜?¡à-?ì2?Ö`c?“ ?´-:@'¹ô@%r?›e’?Žp*?êûÚ?ê!G@;ö@3ê?ÙCÄ?°!?îÍ'@ -¥@Eã@ˆ5t@Zsß?á'9?à/f?ü°-?ÝM!?iÎõ?i¹Ï?Wб?_ñi?¤a ?®ø~?ÍÞ©?Òˆ?Î[?×Oà?àUÑ?é^°?¹ÜÂ?3£?H J?£×Ä?²\ú@,Ãh@,_?×u‘?ã¶[?›}s?‡ÜŽ?wôn?gQQ?e1?=T?~Ü8?Ýq?ﲑ@(‘@ œ?×…©?ÍÚ@PE@LYx@HX@I4Ò?ÛG?e¿3?¢å?Ʀ¤?ÅÓi?áÃ^?½À?3¾?QËž?[üä?>Jû?ÆÔ'?»ôê@5M@³u$à>áÂ? è‰?†)o?“kÀ?ºÞ?ª#`?$?ªó?º~Q?át?Ál?¨œ@?ÆK?õº×?ûÄ@(@‰+?íß?è[û?Ù]Z?ܾ$?lN_?·™?yo?õä,?äXM?¡Q?š©]@ÄŠ@{Š?æþá?Ø´î?Ó¸Æ?Ñõe?ÌX?ƾÏ?Ù{¥@ Zæ@ +OÛ@>ä@×@>ŒGâ=ýL?Tb?…Ù?˜8?ÂÐ9?Ö¯n?ØI?ÆFœ?°½A?§ZP?Ë¢û?Áˆ~?¦ê?®)M?¾ŸÂ?½‚ó?º6w?Ç&¤?Õ“­@ + É@¨?Ó?¿ä%? ë?bÃ?p$š?w˜?fÈ|? ýù?¤`,?lß„?‚<½? J‡>ݽQ?u¼?š÷]?ƒ$w?]¾?„Ø?ܳ.?Ó¦y?ÝÉD?ÝÒv?Ä@?À‘?é’¦@ Ö|?à+Š?bv?›u¶@­@ ½Õ?üé?KñU@ü­@Ä??ÖH?›ž~?¥ª"?žì9?…<1?0}—?NØ? e?»çX?ž(ý?žÑ?¦”?¨ãŒ?¡èŠ?¦Ê*?³Þf?vÙ?i˜>Í"=ªê‡?ÍLd?àoÇ?³ +¹?œg ?—{R?¡MM?·Eè?Íä0?³ZÂ>ùz>ðºb?a]ª?a„j?C!t?3xa?/?™Ü¢?n5^?Sžå>ýmœ<¬y0>—¯Ô?cA’?SÅó>ã¬Ö>ãâ?i¸f?5…I>îÈþ>äÀ†?ª?M<ç?£ÝJ?­qG?ßp?‚Üb?HÛw>æø>í§/?Íö?6UÐ?¼½Æ?°€N?Æ•~?áâ™?a'€?cÞï?t>ÊCÍ=ž¶>¨,¯? Ÿ|>š2©=œ¨? +á”?iä?S%ž?1à>Ô +Z>g8ó>½%Û>Ê?Å?X?êðþû>Ð 3>²«ž>½72>@÷Ü>™¯=  â<°ûÝ>4ý>·a›>¾>öâÕ>ÜÓÇ>ŠÝ'>"¹K=>Û%:Ê>jß?‡Rû?d:4?D'>¬"¦>Gp>Òó>è x>èÂ>è/8?1¦g?[-? #>$Ž=è<ª>^ô\?š?ž8?²¼?³Ð@?-q˜?$ª¾?%×G?&òŠ?cö?}^G?LOÅ?*‘‡?¿—>¹y$>’ÁÑ=ó è>¤”!?„v?o’”=ïÞ_>˜}?­˜Ø?®^³>‚ͽ=ñ´?#ˆ?PâË?…*P?”`°?L °>êñ8?Ë‘?Ôµ?L?ó?ŸÔ¶?ˆ¾%>§ •>-> ->p <êŽ?LV¿?kÓü?"">ðÃ>õöÖ>ì…?`ãW?›f\?M¶j>‘u~>¬•,>ì„z?¶?;Þ??u×?lËi?o¡È?w@¢?tǺ>ùÓÇ>í$‹?µzÏ?Ð0?H¾è>ílÈ>í€>íS>í¡ >í´{? .V?%ót?YÄ@þL@>}@ +˜Ú?ûñ¼?Bm1?Mé¡?Õ#I?Ó77?¯?´1ò?œIw?™g5?DË?nã+?=p>’œN?„Of?Áè?µ¼0?®+´?’íS?bK?>çà>ï™6?8ºO?³Í?\i>ïâ¶?¥æ?p?p÷?e*;?bßÔ?R}f?L±ù?¨ø?´f +?öä @)k?µ‰%?”çµ?XØö?(T>¶Èj>%.Ã? ©Ã?_N?–A?ߢ?ÒÔh?°ò®?£Z¬?sb7?UÕM>Y÷Ý>†ét?*Rú?#ÖM>ò>õ…?FáI?Aœä>øu>òu°?Àc–?Ù&¬?—/í?ƒ`ë?‚ z?€°v?n¢¶?j[?ŸP~?¸|?•2Å?s-Œ?Òlì@Ý?ÞÈË?sœ(?“^ÿ?¿8ã?œ‘š?'cê?:ð4?WY~?R–v?bÿ?eö™?K„Ú?ZýÙ?‘™5?’O?t’¬?v9V?šš?˜‡w?Ñ—Ê?Ò¿y?CÙW?*nÿ?]…?!Þù?†Þ?”œ3?ºU#?ÉÞ@?Œ~?U™%?;;??+Åì?æ +|@!T?Ì B?€'?2¾©>ø©Ñ>€ªµ<Þ¨>íqÝ?h×-?žnó?Î,¯?£PÕ?[Ð?2£÷?Ÿ?ŽÊ@3:?Ý 6?w r?‰›å?¦yó?Ÿ„Ÿ?›(M?˜JÔ?¨ž]?Ÿ!÷>÷†ë?'iA?Ïð?Î% ?ÃQb?¹ g?«…|?¨Íu?'Ä?x1>3ï>!˜?µp˜?·ôW?¸¼¾?ºÄ–@3‘q@3Nc?‰xË?x§`?&U[?&ô@'[x@/!z?°El?—&¬?Èû ?ÎQ ?D«j?>™?tMÉ?ÆÛ?®Eƒ?»?fÑ:?DÃ?×w?ùŸe?«•J?-?Ã_X?Ú›?Ž—Ù??6ý?æäK@ù¿?…1É>úi?Sqy?z6á?ü‹@ªª?Q×Û=(µÜ?)ûË?z|;?¦ó?»îÐ?Å6?ÌzU?û:@µ?~‰S>¿Ù¨?Î9@‘¶?½Ôé?zc?.Zú? I®?Û–Î@ü‚?¥xü>îœ#?ÀÙ@ À5@0Ô@Pn?úÎq?{|á?¼Hç?í§?ÕÇz?¾XŒ?˜+&?r?ÈÕl?ûÇû?î@º?ß+?±<ö?˜ßý?‚ Î?YDf?UjŽ?Q‹?‹ÕÂ?£ít?±¿5?½½?¿0/?·e£?ÜJu?üA0?¿¡ ?”hx?¹9µ?×»p@Ü@@,$á@*1=@(9º?ÓaŽ?„¼Ý?¡ÅÐ?¸gÄ?–Rà?~kÎ?Ê Û?ï§?®%X? ?ƒ’>Ec’?J@?Ž¼·?„çQ?|Ïó?à ¤?äqJ?Ñ ?Ã÷=??8F‹?¬¦?Îs?•“?|ùä?`#à?Wön?±Ó?Ì18?‹v?h`?×!:?ýÓ?ôE‡?öÂ>@ƒ¡@[Õ@9ö?øW?¡”w?‡ÄU@êŸ@7°?¶ +˜?ø?`²?Uq¡?Ùy­?î ?ø\'?ý1?–3¨?gÆf?–Á?ŒgÑ@‰‡@)d\@#Ç @%?æÔ°?Ù/Ü?Å?KàÏ@8Õ @Tñ=@uD"@}Õ?qÿÁ?á5?”jy?¨“c@ 0"@ o?þ{÷?ý"2?¬j?©qì@§@Iå@åP@ 8#?ŠjM?„yß?ç#+?ó•ˆ?ÄúC?¹ð‹?mÙ?Z­Å?°Ç}?ªx?lFt?p9?|ï ?}=!?û"ý?ùîC?õdå?ñDœ@°@d´@Cœ*@=,?ñ“É?÷C?À1º?Åw&?ŽÈ!?—º?¼™¨?Âþ?µ.?«dç>üð?Št@+LQ@)V²?‚ ?ÅÅ@4œî@.¸†>ü]˜?~–?}”M?†<~?»¾?“ð>ü.ð?1þ@•ä@þ?ªKo?¼ Ó@`š@Q¯G?¼øx?ÅÜ@£ê@3J@˜R@Iy@Áæ@ çI?ª° ?¢ºØ?¨¶ù?·x)@0f@/fC?{|g?wŠæ? '?êà?†‹?ˆ¨X?{;œ?€,„?¼`Q?Ä‘j@qJš@w!½?ÝÊ?Ú«“?Þ‰v@C±â@Y=À@2>@ø@Sò@x@eà'@W›ï@"Ñ?ñÏ@Ÿ¿@át@"Î@0L@J{q@dç<@4 ?÷Hù@Ÿ#@'ð@òÖ?¡(Ž@=%@™à·@„ø“@54@Þ?ö”?ù“|?ÿÂ?êl ?vIz?‡,?ÉÛ?ñÎ@ƒ5–@ƒÞW@Uˆä@W“~?çÙ“?ñš(?ã4º?æq@{Š¸@~D6?í=¹?ë¥?íª?òBð@cª@š?@¨ Q@«‡ž@3O¸@4ô@4Äy@RWz@Sp?“Ò?Ê +?ôæ?±?TÞD?¿7„@4@>I@sm@g;¤@UÄ@<…@h9@ f˜@_š+@Iå³?Òù5?Ñ›,?«8§?¹nå@i·a@j?c¼??¨‡@‹‰`@–Ã|@vܱ@l0‚@"^G@šˆ@•3Ú@ªÞô@ Zƒ?:ü?ñ@-D @yÖ?Íz­?Þ> +?Þ?䶱?ùGÈ@Ol@Mä@!+?8 À?|iH?ð6¡?ïH?ÞjQ?Ñ€©?™r??¸@ ¬ê@ÃF@?R}@Jsô@7`@35Ñ@ +¡"?îü!@ ·-@ ×?ÞÐ?»Çœ?½ú¢?²Ìy?Íÿ³@ L@÷@¸@ ±ç?¶íÉ?»Íš@0g~@,A@Ûä@"h™?•;9?m v?MI ?,?û$¯@0¢W@+d@Ç@%Ö @1<8@0ƒ?x`.?P&1>8Ÿ(? @D6›@@~ã@á³@±à@,g¢@0d@Ф@™d?Û‚Ï?¯“M@vI@F`w@%­@°?ñõ1?t¢*?°|Q@Sþ@”Ò?(°}?:€¥?>e´?ßs>íx«?yo@%íË@N‚z@ê?öb‚?ÞßM?É3R?¥±î?/c®?,ê=?•\í?ŠÕ?è¦?îîù?²$ú?­Às?>Ç? û?)T²?2¬ë?ÃÀ·@e¹@˜?Ññ}?Ôº<@!b@?,·4?IVµ@¡•@.ìÚ@.ò¤@1?ø?ÈÒ•?e¯?íÏî@=¦È@Ûá?q̳?yþW?K6­?Cú/?‰2X?Ž¯@#h @4h@6@3?ÍD¼?f)[??pØ?F?ˆ²l@,Û@¡?bÙ¡?w`?üæª@]ïÆh?¸Á.@ o+?àS-?žn2?¨ù8?£â?¯?¾µ?¹nV?‚Ú¢?l¿˜?˜¹0?¡$å?–È?ŽÐ +?Šý³?‘hî?šq¶?í[?ø?hõ ?a?œ]¨?ª×o?b}1?#ˆe?I4S?}B1? [[?ào?ßð?á1?üÖ>¨l}=°s|?È’$@Ô +?Êg¾? üD?àÚ)@- +h@áÔ?ÖÔ?Û‰ô@s@ 3µ?ÏXô?·!t?¼¦ú?Â+Ì?äeÂ@,.@ Zþ? šŠ?¥Ý‡? Wø?ƒ?œõ?¦è—?‹´ª?^n´?šˆæ@ " @2Š@ @ Æw?F-y?7þð?Y}\?^¯?ºµ(@Xê?àßÈ?‰NÃ?v— ?¨F?²[Ž?Žx\?’'¶?î¶?Œ/Æ?²½¶?éê!?ØŽ?]·-?g¨?ÐÎ1?Äø™?‹j?k¸3?†—?£¥.?®€ø?”‚?V$>ô½è? C”?´?ºP?Âm2?½üÓ?ª@Ï?‘W?’ÿî?¦ß?wŸ?–ÌE?®ÙM?HAS?#®®?ÌÔT?÷™ +?‰ë™>éxÐ? ä?kÛË?Ò?ÉÓ(?°Ì?–Æ?¨ºB?³h?äË?»R?Úñë?¦c­?_9Ã?†_Ì?Ä´¸?¼KÐ>ß›L>ßµ?ÏfM?ßîa?¶‚ý?¨$¶?›•h?Œõ?œÔ£?¸‰ô? ¯?Sð“?lKy?ÓÝ®?Ç'?qÒ?aÀ?¢*9?¿ ƒ?åñ?Þ5>ã¯Â>Ì›Ø?†p?c,?Sªñ>ãŽ>ãÇP?ìf¾@š?/9Y>䥵>äàÚ>å!¬?‹=¼?ÐÅI?­Xí?†"y?hß7>æ¨Í? |E?Q5 ?lÙ;?çÄu?à·›?Kn?öÝ>êÜs>éhÆ=¿žý=­çÑ<ÐŒd>ž/>#ê¯>P%>ÐÍ>é@Å>üÕ? r:?‡?:™>Ýò¯?™š?‰¬©?‘e?p?Nó>ðÛ‹>ÖAT>Œ¯~>ÛD'?Mû7?$=2>ó²Ø>ªF«= þ°>pé>N%©>„Ï?#î?˜´?…N?w ? Ü>›#v?À(—?¯£²?‹þ7?øe>waÕ?+7×?4X¿>þl'>è ­?"“? 2 ?nÍ?.Ô>àk‰>‘õs?vÐ?™±?Ÿ§_?²ó?½ >?]æ?Ãn?d[ž?i8*?¨ÿ>ÙC”?DÓ)?i€#?s½Ò?vÊ?Qœc?%!>?]ì?ùT?zN?&tƒ?%3á?Zv3?Z’ +>¸œ›>¦€ç?~ñ‹?¨i?6þ»?—?}â?µëñ??¼—> >Àúê??FÈ?-&U>ëKq>à2B>œÅ>Ûr?èóƒ?çÜ?#þ"? Ý>´©Ó>”y>Ò£/>ì©?]Cô?«®?Er«>ìX­>ìiç>ìw}?Ó¸?+h2?JþV?•èè?“Öl?“C·?“·Ï?2 ?/ÇÊ?5¹%??µ²?aî+?^ã¼?€æ·?…re?*,>í¬ÿ?f‰…?¢Š?Ú‚¶@¶~?ùœþ?£ ?¡‘ ?^:?í=?ëóC?æXì>\é>OF? O4? ·ù?O&(?\¢?¸BJ?Ðç2@™÷@ ¼?¸*}?oG‘>ãtA>PÚ¦>ïw?"wâ?q-›?qSP?j*Ž?>p›=ŸUž>r£é?¬óA?¦‰£>å>'ÜU? ›À?+Hò?^Ü^?pÔL?‡eæ?‰Ê›?|,‡?péÏ?p»?duú?†¸?‘7{?—«Æ?™ãq?¦±ƒ?¶Aó?©t0?‘.$?je¦>ñÅY?)4?§EÍ?”Ñ…>ò õ?Ÿ?‘Æ­?•Æs?VT?L×?ƒ?„„S? €?¤úq?¡Æ^?¤Ôå?CÕ? ]C?ºÀ ?ò’°?ÌŸ ?µ?Ô?—J?…ßL?Éó?s‰`?•³^?¶À±?…Õo>óÐÜ?JÑ?B?-e­?N—.?„Q:?ÚE`?É é?ž~?§u ?ÞU?âý@;X@~&?¾hà?ÁJŽ?Hæ»?Gås>¼D +>›pÙ?7{?6ö?1Å4?/AŒ?Öýç@‹I?íÿ[?è6@è&@3a@!í@‚@õ6?ñbB?ÇåÜ?ª$ø?^-2? e0?¢B‡?öqG?êE?Ù?Üò?Ùìœ?Ä$,?»ÃA?Å{Ñ?ÅM?¡—Ò?a°“?šw?¹f—?¯k ?…üp?dÆ(?*ƒ?Y¤$?Ïœ?âý@°A@Û‡?ˆÿ¸?‘Z™?Í9™?ÄÐÏ?§Ž?ª°B?†Â±?qC]:™¯ç=>üã?ÁP?0e?³ÿ?±^7=Ä°=¾Ÿ¡?ŠT§?› ?܇?‘@FOe@Kº?”‘ã?y?ÒÇÌ?Ûa£?ˆC?G)?püä?a½8?Íô$?ãéÆ?‘ú Ô?Y`5?yìz?GW?…q¦?¤2q?¨Gš?®¾¾?±šò?” ?‹.ú?WÂs?Cú¹?½?æ×¢?€/A?k@ nµ@<"Æ@xm?Ú7Ý?Z™ž>ÑüR?ñ C@(-z@­w?á¿2@wj@-Œ?´6³µ?d«û?˜K%?°ì?½?ú{'@é@ \¯@ +™?ù[Ë?ç_p?º Ý? }n@®”@.~@H-:@SŽÐ?ýäZ?­Xû?NL?ø]@4Ôò@x5@Zå?ÂäR?àÅm?鸄?ŽI]?FÓi?i¦?|±©?|¶€?|¾D?Ø1?üÇã@1í§@A«o@0?Û9%?ø”1@3?¤"Z?|è&?;åÞ?!A4?é3g@ ÉÔ?”]T?H=ï?ÒR™?÷áÅ?_E?F@ö¾@'‘@~è@ù?ΨD?³€D@Ní:@gfX?¹ìI?}ø?´dŸ?¸°ì@2Þ)@BzG?ÖÖ€?¼ú|?§Y£?©†È?xÓô?]"d?ÃÔ‰?ÖQð?Á°-?½Ùä?a K??úë@2Ô @A+?Žß?sÀö?}oÉ?ƒÂ‡?yë"?rËT?{ÿ»?}Ï?Ï´&?Ùu©?ûë?ý†@¬4@¿}@ +0¨@ ú0?ÀŠ?½¾‡>Ig>è?—?•¬Ó@€º@ ™?ý0•?ýl»@+’Ú@,{>ý ì?ø?ƒ‡?U8?¾Æ?½ÎÏ?ˆÛ?™ÿ@SÒƒ@J÷Á?Ãã ?ÚÏ€@81û@1¢Ó@oô@á??†8Æ?€Ù3?|’ï?…”ë?âA…?×FÖ>ü|c?®?üri@ü @$º“@&¦@øÀ?ïëƒ? ží?Y;?¼e7?À §?ñ/ú?åí£?¨U?¸¦ô@5†v@2Ÿr@7H@&ú@„&Ð@yh|?Þ^?áýÂ@ë@¤S?¥(”?¸ñ…@*È@+ô@DW@½ƒ?yÒ?NlQ>ûzø? Õ™?{nJ?zÕv?q` ?€¤?ç;Ÿ?Ùzø?{/?}žÛ?‘³t? šz@âø@Qh@ÖÃ@dü@"R@1>?)s?8T¦@¶@÷?Ó#¯?ÍäÆ?È’Ã?ÂK?~Ã$?|å³?ý4¿@@ cñ@!×í?Ýg1?ïžé@@…i@8½@Xr;@Zª£@\"@Y80@Z ®@Zu.?Ìz=?ÀÔÉ@%@)Oº@Jö@@RXÑ@ ø|@£¯@ƒ[@¸ˆ@6¿@Q@‹Â‡@›—@Ð?ó¬›@ ^(@Ž?ç#?ØÜ–?âY?ó «?õûÝ?ú k@& ¦@<™É@3<@'· @Wä·@v±î@?;ù@ýÔ@ +¦©?÷·?Û¦ö?Ǭ@ÿ@9šA@7»¶@<¨ @ï9?»±Ù@#í•@~O@WŒˆ@ºp@ #R@9@.¹ò@)@/h?ö–þ?ç5ë?¾ÆÏ?ÔôÍ@{c@ˆ2@°@'aF@{Çý@q´ä@7ÆÅ@4%@Kt@À±?ý¤?ð@š€¨@›0Z@rõ’@s›h?¢_V?‚î@6Æ&@R«@ŒžI@–·r?ÒÝP?*vÛ@æJ@'›9?ÖºÔ?Ÿ¡¹?Çýñ?ãRå@®}@Š@ Ü-?üÐ,?ô¤M?ý@Rr@;/v@Lø?Ƭ£?Ï×0?í³°?ö(?Ô£€?çWz@(#é@"¿@3¹ó@:|q@1@Œ@2÷ ?óºf?õO«@Ãì@¾Ë?®È£?¤Õ @AÔ@nͤ@ °p?¶Ù ?ȪP?Ù•ã?™ Ñ?P '@ îí@_Üó@X|P@S>I@)í ?Ç)ï?Ôu¬?ˉ³?¹&Œ?ŸÏó?ª!N?Ê„å?Ú±“@•­@4@vß@€+B@æñ@ +õ?÷ؼ?ñ?ÊÛ@?»âÆ?Ð×?äÝö?¯|ó?n‡z?¬†?èé?úo@¢I@ @·ö@:w?ðŽ3?ùÌh@N>@Kðx?ý'O?ý #??ào@Çe@y@Öç@v@J@+u¶@4Hl@12)@/§“@'7‰@£÷?ãßÀ?ÜNt@¬ú@ï3@ñ´@ !@ Ä@/á?t×?zö?Lö†?kÙ‚?†,?¡Bö?Ûª+@Ùæ?¹÷æ?…Ù?B@‘?Ýàê?ÄŽ&>äÅ(>1@0ª¦@/‰P?‘XU?\ÁÎ@Žß@(tÓ@¤ï@…\?é)—?ÏÑÞ?âI@²·@ +¥›@!Œ@"»T?¯‘?³i?Û³?غ?³pÚ?ž¹S?£Ô?š–w?È=1@™H@!Ð$@W¸@Mþ%@â@½R?•XÒ?‹²T@¸@¸@³Ç@ƒ•?²z¬?eš?rm?n†³?>6>úvø?ÞY?eÈ?p_È?Ó((?Ä<¶?× ×?é­?Tä>äLô?™áy?âto?˜@O>ãå½?Ž}@G=m@<¤Û?‡ï¶?q\??èIs?îN®?‹øH?`¶M?läé?†˜Ž?g„š?ü…?[ƒØ?È.&?·%ì?ªv˜?¹úP?ºµÉ?¯q?‚ ö?lå?“&?©;þ?‘U¯?Y(«?vA?•L‚?š‡l?bí?a ?a•›?ié??¤é,?³?Ï,?íkê?½Ó +?’¯S?¢KÄ>¬ á=þ;ü?îé:?ýê¾?™\M?ˆÙ?‡ìœ?_·?·¥@Få¥@R˜¹?®sw?©ð?Û6±?æh5?öšŽ?òL˜?öyù?öAy?ï«@׺@ +€·?fœÂ?_“œ?ý ˜@¹S?ÚàÊ?ÈÒn?™× ?^e®?pIÎ?…?iEª>àñ‹? ‡°>éøe>Þ¢? Cÿ?#{¶?·ÑZ@¼S@mñ@v§@H`?¦^R?¦Q¨?™„O?’´?žý€?Ê0? Ë[?ÈÂ?ƒsD?_@?^¢??ŒåÃ?ù-7?û½ ?ˆ"ì??½µ@@8~—@˜ú=®h=À¨Š?0Ü?Héè?èû?³þÈ?âNß@Îþ?ø>}?ÜÆ?Á5?]á?`æø?Å\?¿Ô?›ª9?šNÄ?û?^.þ?0óK?,©?8¿š?°Ðq?ÀÖi?oF?Jfè@5#@Y>ö@á?Þô£?Ñ&?¸S?£Ä+?¡j?_?Xm>óŸ?Wøæ?sŒ?8ñÃ?5ín?Šù+?¨>?žb?íÁ§?¶y<À».=a£0>™?ö?‹’?ŒTd?P?DÁ#?á³@&g?À¿=†íX>¨²¥?c­?SŒ >ãyZ>ã«q?9M>î›Ð?Q±„?U;õ?¡‚q?¦ME?µ+þ?¸2+?Lv>#7>UÖ>æN?(¹å?Ÿcô?šÍ™?ªšU?´ +??F?SÍ:?1!>é5á??GÉ?2“0?Q?:¿Í?Cw?;­±>–VŒ<õÊ{?¢;?^®¦?Q8ó?CÀÀ?6k?<«^?é\>‚üò>ÕUB?oй?%Îñ=ámÕ>)+>aÖj>è¶?~×Z?mBÂ>ãN¥>­tN=Ñ_µ>Ÿö>;·?²Z?àäJ?«ûÕ>üa­> æ¥?ó@VçÃ@?ø?[m™?›?* {?, ¦?+¥>ô_ñ>çà>™\>Ä>¦è¥>Ä™%?9š?}ð:?‚&Û?‹O?Ÿß ?ÒŸ?»„…>èÚH>éK?º›?¢L?bj¿?eqê?d½Y?ifÂ?›7?¯)Ç?å®?iµÎ?9>éÜ–?¾ù?iÿh?t½?Š»?ƒçá>êJ‹>ê]Ç?:zE?A]Š>ƒ°s>äÝ?i>y?œoæ>þ[È=“¬z>"0†? d?†éü?w—?@Êš?O°?¨Tì?¥d>4o¸>7Aü>ånÔ>ëÛ=>ëî0>ì4?K~y?l%‡?wï?yQ}?Uþ?5âÃ?4ï?3ï•?Sî4?“Á?ˆCÇ?3Š#?4Â??6#?7=¡>[Í>Lô%?‹e?™¬?ÝÈB?íwü?_ê>íœ ?€›?±lV?ÒW\?ñŠ¥?žži>ˆ{v>¢ à>î+e>î?>>îM_>þj¼?=ë;?Nu8?«Ks?¦ß–>Ös½>Ïî +>K¦> +D?8ï‘?g1?i"?k5>˹s<4÷F; à@>]–M>ùC?'L?oÇ~?„8¤? ;ç? Úæ?´ û?¥´K>Äkà>È7à?Uê.?Sƃ?“âu?“,-?)yG?F‘?aÐ×?pÛ¿?ˆYí?<Ü?³ˆ?q$(?hó¡?k0’?¦„g?Ô4©?¼G%?¡iI?Š8ÿ?)9-?fI×?Æ—Õ?¥CY>¥Øä>ÑüÈ?:»?Sd*@B?ü]R?µáö?µÜN?'¬?Y)>C­=ˆ°b?Ä£v?îj#?”«†?sp²?!4ß?9?Nà0?sR?™é2?®2X?–Jœ?…€?’1—?šQ©?`aŠ>óßò?„²?ôxÅ@Ï9@™r@~~?üðû?íþ§?Ò?åš%>©P—?t û?u#Ò?Šö?‰x|?šŸ;? ‚Â>™fî>øb?i…À?…ˆl?ª±?¶©?æSõ?õê?ö#1?õ÷P?¦wÊ?<ó?rB®?cB÷?ƒnU?”¼«?{.²?[×?ª&¥?ßÒy?±i;?v½å?³ ð?öÞÜ?¬æA?Ñ?X Ù?¹Sâ?Ç$é?謤?Ò)E?‘¹º?¢ÌÎ?ÆM?§ê«?Y,¨?rÞ¿?¢B(?÷ü@å†@d>=šøì>ð@6ªŽ@*?tÚs?U~Ý=  >ïè?„(?‹ ?ÊÝ?ÁÔZ?œŠ?ž¶@A”@:à@Ô@u?Ëá8?ÂK?ÕƒÌ?Ùó¥?¸©ö?¬¥@ Š@yæ?À%ù?»›>&gÔ?t¹”?‰ëß?³Ûa?»M?´Ç9?µ•E?9MÝ? ¶\>ýÈG>û¯+?[/?ç?£‚]?»ªç?»³„?»ºÄ?þ›Ù@Ç?ÕæE?Á×V?ÛKæ?ãó}?ìøL?ê3\@Ì@+ɸ?χ?¤vª?ŠH¦?zç?ïz‘@»£@2@.à?ýO?íxm?í+}?ãýë?¿óŒ?¶fF?»6s?¼Š@LÑ1@zÃd@ [v?¸oR@k@)XÓ?Æjô?‰¿?év…@¥ê@N $@jâ?ßìñ?l{D?®8ó?Å?lnõ?<v?¥i ?Ä‹t?ô÷@·@¯‹@ ¨Ý@*s?ü0Â?„Ù=?ÒX?ëö@¡ˆ?X S>&ôq?Anñ?}"‰?¯ƒË?Êdp@LÒ@l@AÛ›@2Îý?XéÆ>if†?NÊÖ?|ž?|¡ø?|§Œ?üZ@›v@H©_@\<†?øe°?ÃÜ?–s?ŒË÷?”“9?’¾t?fbƒ?\O@7f@+`ˆ@Ëù@íÍ?ÌK?¹²?ôš¿?ýY ?DðG?{Ð?æ»n@5?š¤6?‰çl@#”@5yþ?>‚>ÚÉ@ +B@/é@3?ù@:?á?·¡?|Õ?–ñ?>?¡†l?§B~?‚EO?} ?æÚv?çí)?úÂœ?ý ¼@Ty:@Z«Ñ>?ž<é1?¶G©?»Ô@?ó‚?ðƒ¬?ì2b?ç¼:?‹õ@?ÙL?üFõ?üüñ@¬E@õ‡?ŒÞ?’ +4?5#?EõÒ?+ñG?0 ?iç?à?åMä?àµ,?íœ?ñˆv?ôF?ßå^?%%?)C7?ÃD?¾-?½‘U?½CÚ?·žQ?³£S?²¡î?ÂkF?Þªó?ÝB@Û~@ ^h@í@“}@?æ¼?SÊ?+”t?½Y–?¶¼¨?yMk?‹PÅ@:@X§?Ÿ¨R?¯š]@ èÝ@Ò^?½,‰?´Yð?é?dÒ;>SÆ“>ªª?+–µ?’¼@kÑï@RRð?§ç®?õà·@™Îá@rá@6c@£ƒ?¼Ôn?³¥j?{±Q?’÷@ž£@„@Œž@¨·@`}†@Oû?‘?$âá?»f²?±'­?{Dù?D?“ê×?ª*?üù?‹³@‡&@n„"?̦ð?Úî‘@ ZK@^ã@S¶í@PÅá?úyP?ù–¼@[T†@\"3@!Ç/@ sª@‰@>b?ûõ4@2@qÒn@hØ@Ø@ÿq?Éö?(¼N@d°y@f~@Ha©@IˆÒ@„Zv@„ë@Nø@NÍå?‰ª-?fá¼@I'@T u@7‹@á~?úu ?ø•?Žÿ?ηf?;8µ? <Ó@y…r@¢Æ@HË‚@1Ñ@–à@ HÅ@m·@?´O?ˆ?Í°?ÚZ/?ÖG‚?ÔÂ@AŸï@mO3@d—l@ZËR?ìœ:?…ü?ΆÖ?÷¡Û@ù@"¹H@-·`@9ˆª@6\ë@/cW@NÌ?´m+?ø'@+|Þ@5§P@?À8@<ý©@4 q@-¢ñ@çt@% \@7°ð@‰R?‚~9?²K @Ø$@®Ë@#º@9_O@ŠN@ƒ­ä@:>V@@8@dÜÌ@o>@^¬p@^ì@¦I„@§3@)@,r?õ6©?é§L@t*E@€€Q@CŸ“@>œS@Z“@Pcú@\IF@d&‘@-¢ @ +8@?ÆU+?§¹=?¸Iî?¿Gæ@Âi@RÛÕ@ Ë?ºvh@mÕ@6|g@º?ádÉ?ã¤?å‡?á#Ö?òÏ@ÀÜ@r§å@_Þe?µÚ›?¼v†@«ÿ@`þ?º¬«?·:d?îE?ñà@+ðQ@*ðB@)œÙ@)ae?ÚÂ?¶eV?¦©?žÑ?û?mGa@-›@‘)ë@†×@pMÃ@BÜk?ê’?¾hl?KŠF?RV +?#?FÑc?µŽ?µÅ#@1W’@@¾Ü@;W @@\¿?faI? <?Z!É?y)ü?ò#@ +Û|?·ÿJ?‰£?•)(?˜‘¡?Ù¯±@çÙ@D_å@Œ&Ö@wî°@?<@Ð @Ïô@¨ý?ý‚Ø@ãÈ@hÃ@^½#@MPò@F&Ò@)HŠ@%‡@4†@>Ui?DZ>Ư?·O¼@08À@¶ü?ùz-?ñb´?ÏM¢?ái»@X@=Ù?¶WÅ?¾áa?ÂŒ¦?½Ór?Ïè ?Ã}í?ˆõ´?j¤`?Ó—ý@r ?åN5?Ö±Y?ÃV¨?“,¹?®ò@€:@âü@Þ?úYÇ@Câc@K±@S@d!?øÓë?ú?Ù»º?ÈÓR?òdÙ@‚&?üÔJ?ñyé?ÃŽÑ?h Ï?[Ç^>ÿÁY?h‚?·µ?¾›D?Ã-¤?ÇÈt?½ÎÓ?È„ý?Èì¬?¹ÌQ?¢“É?yr˜?±´4@*¹ó@Œ?¬´Õ?¬¢?ÚR?+ôï>Š€>ß]P?áä?ë¬Ä?´y”?Ÿ•Þ? m[>ä>Æ?5hF?nx ?kƒT?J“?’Tú@âb@ÊŒ?ËcÆ?Ðbz?ã¼í?øÓ?\}}>å >óÝè?"?h>‚?§¥?”9È?•ÏÉ?©X§?2Ù??Æ?ög@ ¹§?r°´>ÿ²Ž?Gf?‚Ä@?˜“Q?§É?­³?a=ž?a§?SÎ#?^Ï?· >üŠx?*À?Zr?ãÒ’@6Œ +@ v¤>±Œ>dÕ½@ ï@ …Ü@ þë@ öµ?¸R?‚«}?jÊ?_¤þ?>]ö>ß…?op?Û1?Þãf?°‚¦?±X?‰sŸ?‹ú@ +$ù@>ýÍ@Úd?wø0?w7#?¥v?¥/¿?´BÂ?ÀÊË@Ä£@-ém?óbÕ?—%È?žŒ+?Íä?Ìà +?\O?RCG?ÙX”?Ði?§Ù>gä?BÈ +?°¯R?¦T4?V×Ï?Wšì?Á½?ýš?œ\à?¦@Á?º$?ÈÚÕ@Q@&3@®É?¥q*?¥q?ñzÛ?ß·Þ?Ϲç?å#á?’ª+?A½Ü? À?®hf?š?¸?@™»?)‹«?7?+E?¸I‚?·@(?´R?²SX?q‡?Ξ?D4?–ãP?’¬?Ýæí?Ýð?§Ë¾?‹m‹?d,?^i?€M2?Ž ª?Žòî?­ý?¢¢?ËòÓ?Ò1ä?Øz?Þ6@\Ÿ@p;@ yu@?õ&+?™ Î?#?€˜?hl:>öÛ>þR’>뎿>àÃ?/ñ?Fa?£q]?ùΰ?ój?¦ŸQ?kÛ>¯J®>•¶?›É"?©.?+®>áâ5?.¨n?c#D?óä>ª.Ý?‘×P?zQ>–}>°o¿?cŠf?cð4?céO?du­?Œ¿?¢!€?á_@F²?Ä“?eî€?<†¦>ærD?r\?„W{?KÜ?ªßý?™ð³>è[>èod?d-•?bÂ(>‡¹¨>†©?œ™?¯Æú?”Ì?“3ˆ?_èX?¦X?6Xk?l„Â?ØÄ>¾X>ë‚>î?A¢š?£S?…á.>ûæs>÷›¶>¬d$>áu;?/&<>Ýú=òÖU=Th>æ->Ë̘>˜ >Cä„>+4‹>¯>Ø?„6€?#á<Á0=(þ0>C}‡?³¯·?ÐF¤?»ÞF?E?c¼?‹÷€?‰.>çšò>ç²í>çË€>çá?.ß?<€e?I¯ý?ZÌè?d +B?hd¬?oH§?‚W@?PZ>;"«>b°>èß">åÃ?è?1Ñ?tO?ãf?8>ÿ‹>ÊêR>¨LT>ÎÄ4>é¼v?÷±?nß?(ƒ?Gت?=p‡>ê1í>òÉb?@ª‡?@–=W`Û?=¨è?jµÌ>¤Ï>¯å'?~ª?p+à?°[Í?€‘Å>¸ûÓ? T?$G?fFù>ŠÀ>‚ùj>Gïw>K½?n2‰?x̳?®ô?•êG?u€™?fVý?G$ ?0>™?1Q?2gl?z†?®KH?ŠÅ&>ìÇ­? ?)ä.?.qL?X†1?Tyß?<Ó?@Ø?Ê”Ê?Ø*?ä>ž68>Øiô>í²4?>`V?mÑñ?Kë?0Š›?(ûý?’L>þ>½¼k>–r«>Ãß¼@:éî@5ÿð>&¹>>{?¦`Ó?®òJ?ÿ[>øW½>øÙh>òx0@/s`@núÌ?Üo9>çȉ?0×+?g¢ü?iîÚ?o¹Þ?x‰?³æ±?ˆãÎ>x+Ã>sCk=ȯ>&(Ð?µc?Ï*?‰C?Šr›>þ¤¹>ð£>±0[>·2k?W€S?pë ?«*?¹›$?¤‹Ä?–Ÿ@?” n?™YK?T†>ñ|ó?.ÓÑ?q¢?`±^?Išþ?&³«>‹õ+>ý¦Å?¦¦§?º„t@ x@z?¬,Å?ªÜ•?d¼*?h5?‘d?}³ñ?–{>òÌ€?Øs?ðVƒ?AÒ>ó¡?»õ?åB¯?è»?é‚?£n‹?s£?Ï?‰…c?AË>7ñ?"P?“~ì?™s?Ÿ„?ýJ!@Jº@°m?tSl?˜ ?›þu?®ðS?ô˜4?Üh§>þÆ—>ö ˜?P•ã?Yøu?¨¼‹?©ÀÃ?5;?6€?_#å?g (?ÕÁ—?å£Z??z'w?àÍ?õ½ž?UŸ?Ë#?™·ù?°ì ?¯VT?­¼ƒ?Í8é?Ùð™?ê,š?îê?—>?NoÀ?¡.M?ÆX–?·c?²d?º‚1?¹L?›)Ì?‚N?VÉ]?Âd?<?v±Ô?¼ê¢@ò‹@“4?žíj?ƒ``?:XJ?c¢@Û)?ül?iÏ ?V²“>øãÊ?/Ú?·èç? €ç>á•]?#—½?åôà?Þ ?Çz?Â@¡?Œ†Ÿ?˜ ~@ˆ@í¦?º??»8ÿ?ÕI?ÕÜ“?›E?Ÿï@OÝ@±Ù@.)Ý@/Žì?ÀM?»g>IB)=÷Bí?×àÝ?ÞŸ»?¼·?»9?xá®?p¯™?ã á?öe²?ÂV?¸S«?´ªç?±~?¹n?»’€?»žÎ?»¥M?üPÜ@V¿?Ø„?ÏãŠ?ÑÍ÷?Ó³@…Y@—æ@ƒ?ú³&?Å3?¬äŒ?5ë?¡?ºéš?Í?G +9>§7@4]@7üÿ?ÞòW?¯Žì?óÖ†@I—@ø‹@Ú‰@ ’„@Â?ÆÙ?·"·?>™É>ó¡•?YÕ÷?{ìí?šýŒ?¦U|?¨PQ?ªHó?Ï•?Þq]@&¾;@7¨5@ fs?ü0×@î@¨?×|’?½L?:À? 8?»åz?ãþ²@º@#£1?àžœ?½?öj,@5G?•5K?|Žä@ g‰@Ýe@)þ)@-Ï!?Ö Ú?´ê]?‘U?„åQ?²ß¬?½Œ?B3³?–Ž?–[ü?§?”wc?ŒJ-?vÁä?w!Þ@-i@=O?Ï z?µ$Ñ@Á@ÚE@'XÆ@$N?ãw?ß ;?·_?©…‚@îÞ@ +û#?ö f?ø$ó?þÄÑ?ùYú?ûåë?üôÒ?ß ?Ô •?’ÏG?¢F@3$ª@7IÌ@À»@ U©@3<Ó@6`?¹ã>ûE<º•m=µ?ˆÚý?“=ö@4-Ï@/!?¯×È?´ò#@+ã@$ž¬?«“?³öú?Ðrâ?Á-q??‰y?`³?@?*_@+x? +³€?'Á?@¹@¸?½—z?Ú˜y@rø¦@fØ»?çmå?þüì@<= @9(;@eÇ@Î8?½}]?¼Q +?±ã-?¬O?žƒ ?´1ë@ +@Ï?ãAÆ@‹_@`Yï@=Õö>åH×?ä¬?½G(?Ãü‘?èóô@Í¡@=6Ö@7¿å@¥”@ç@/ÖK@%¤`?¼oª?¼Õ??º˜?À 0?Ý ?Ëš©?£óù?»[@ “Î@ÞÏ?¹j?æ“@n2¥@dã@ª@<¾?¢{ƒ?¦Îñ?¨‰a?´Šô@Š@yÞ?ß!Ø?¿}å?ãT?†6@Xµ@EÇ”?¼q?Ïú@h@nð@V&<@A¶J?ôE×@éÃ@“—@oXÒ?ü&?¹#9?ž¥?±º—@@Ù@'©@SJS@PÖ @ò@F‘@76š@8ÿ@9È@F¡Á@›Ó™@’a@$x‰@'a¯@ëÌ@@?›T[?šÔ@—Â@2@)‡p@+_š@\‹]@a;ƒ@ ù‘@K;?ú¾ ?ùf6@%-'@*˜ô?Ž);?÷Â?¹Ãq?»@1 &@3æ´@A¿@;4Ô@JÙk@RSœ@YD4@Yp@:Ä@0¡›@k´]@vm@3žÆ@0ü@CVž@P]­@>u@2tú@&R’@ ÍM@­½@šZÚ@5?w¯Ñ@W4@H°@/ §@"íš@ÿý@<@r@&R@!‚x@›"@Ú@ü„@Z@Éê@‚[@uƒ@0”@RÔª@A(@1o@ž½?¯òÃ?©^‹?¨²?Ü]ó@-Åk@*ëá@/1 @.4Z?üT +?üAú?Í’?Ü…ü@X|Ô@dU˜@¥¸@ŸË³?ù$´?õ¢±?!‚?$½z@~X/@‰œf@uÑ @jq]@–_E@Ÿx²@z†)@f€@unR@}ôJ@oÞ?°ùØ?Ïvð*b?D,a?ÏC©?ÍÝ@pÉ?üž¡?ML?> ‘?îÄ3?ïS?ä¿:?ëXÍ?¼ªè?®òñ?¾2d?ËPu@Ïù@ +ÐJ@ Ö@Äž?þ¥?ú—9@@ð@GAª@D$@*òÙ@ë¼?nOý?‹|7?í`^?ïá…@^ÝÚ@bæ7@ +uç@M@6Þ@6»É@¾`@ cZ@df@$_õ?åNW?pñ˜?®U}?ëã@?ÌÆY?†ô ?¯…*@#Æ@¹Å?¿kÊ?²kr@x@ ³_@7^@GŸ&@L_‰@C} +?ÆÔ?Zqx?ÔX¦@jE?ø˜´?Ë¢>?×w?üþ@þ@)ùl@)”?o?v&â?µ¯ž?Ã"µ?À^‡?Á×Ü?âMV?êU@ß»@";@AO>,¡L>,#»?þÜþ?ïâM?çý{?öÙ¸?[¹z>ï«,?Ÿ ?Ú9¡?Ð’?Å÷H?½Óá?è^?Å!K?ª†r?ªx!>Ñ>É;?‘œ®?§ +?B½õ>â²A?cƒ)?¿ã?µ‰ì?rÁI?JÓ?›ºˆ? ß]?kB?d.þ?ºTV?Ä€?½B?¸Ê¶?Ìž9@å?ëÑ=?~Õ"?rÜ2>ñÊ>â}V?ã«K?óz?øßpç? 0Z?§y¯?¨Ñr@Ãø?þZ/?Yüz>Þùu?³l.@7Â@H¬?§ +û?ŸÉ~?^‡v?gð?£D±?¦ÔŠ@‹÷@Ažb@ Fã?»|P?¦‘ë?R2Ï?iD?£¹Š?úÓ?å8 +?ñøj?²>‘ŽÓ?±K>ýĹ>ç=k>åUâ>Ý®u>Ý¡"?tµ:?ˆhí?Ž?¥?”(?é =@"úâ@°?ÚÅõ?Ù—@ +pÖ@ +l-?žÁÌ?…É ?a•>?1¬ç?л™@@ÊN@ýo?»ç?Ðê?%¨?Š&b@ >ú@„@ ]5@C?Ì_ž?Q€‰?x«°?Ë{|?ÄW?«ÎŠ?¸ª?üÈ@a ?IF=4¨?JÜn?Ï5?¯E©?[Û?…åÝ?‡_?“Õ~?¢Ë~?§Ä^?²AË?À2ð?Ň ?ÓÏ?ËÖi?–›u?¶L?êy ?à4?æ>߬¾?«¬Ø?»Y?ž¡?q;i?O¥5?o$¥?.q=s߶>y½?BO¥?5˜œ?]«/?{|¾?ng¨?7'd?À>èQÒ?ÔÁ?)?#àò?^¨ì?Zbt> +G=rñ?V"S?cç;?š_? 3 +?O(f?dÑ?œG-?ÂÏâ?¦1w?m»å?<Á›>æS>ög?B?Pƒ?çhM?âmÆ? ¢Ú?Þ†?¦õ¾?¨–?JCe?®r?}I?–ˆ:?2h>êð&?ƺg@3ô?†Ô>N†0>lÒ=øHo>¢áØ>¾ë:>Ûê>î›>ï ‚>ð Ù>ð}?-‘?šâj?€ú—>Áªø>£È:·¾Q<”aÜ=ÒU>Š:V?l4>»0>w)>ýžy?´1ˆ?u´Ì>Ÿ²Û@û·?ßw‹?_Q? ¥?¦]˜?›px?ŠX¢>z„>uÙ>q`Ó>mS?‚\t?‘&?Oúv?0³§? )?²•o?nUÝ>èiû>•Í^=qz>F$ñ>xÖÝ?ú9?ˆf>åLU>é) ? á? XÎ> î3>Ž•>é¥ø>¡ #>5Sl>5”>4ñ”>4òE>5Ö>Hq>µÚB>¶V7;ŽSà?ŠSc?˜¶=?j+?R ç?.–?%m·??à ?WN?Y?þ?K º?12Þ?OÈ?Gà>Qœ>•lÌ?@Ó?<œ?Qñ?’5?’x·?’ò}?®wf?¯Æ€?¨">v•L?#½±?c<¾?‚ÈÒ?ôó?…Šv?(’z?*ÍÑ?<÷½?@d?[??ZON>í"Û>ìˆ?e\z?oI>„Ÿ&>Ç¢?Á?9oÄ?-Až?1>¹p=Ú,‰?ñÚ?n Ý?*¡>z%Y>òq>DZj?`n?pû?¨p±?§¹¼?`ð„?d¯Œ?r Ö?pHÌ?«Xa?³Su?2ô +? O»?ÙH?¬oq?S 4?õ?uîÅ?¬Þ?S·[>k$t?­x?Ç?H%>-›°?Ot7?P°Ò?p]t?tŒµ?Šv`?ˆK¢?¸qÃ?²9?š‡¦?™Æd?ª­?³M?ÌM‡?Ô™?„¨v?=»?r\°?ƒ F?uK?q®?_þÉ?Bë”?_ †?ˆÝa?Œ«œ?“¦Â?“3Ø? 1Ð?›Jn?rA?dß?Ü/?¦x?ê¸?í¦>ú7f>òº²?p¦?~Þ?mý?g ?.’Ó?,t+?5?=Ä >¿<è>dÎ>ói?9?'ú?#3©?™ÿÑ?Ôl?jJ2>P®š?ˆƒ^@WõÄ>dRö>W&,?˜OB?¸„?.rA>ø“¹?`ÊH?ˆò–?É ?ÛT¿?‡<=?Lb?¡¶?¼çÿ?“zh?€ýÌ?aÊ‹?/¡x>Üüç>5°2=­×? )Ù?›z`?ÿ‹ó@Qã@9@Òœ?ãƒÛ?¨ÝG?oüC= + T>–Íã?ws ?v¼P?~è–?š°Õ?ã+¿?¿†Ñ?; ù?A<#?4@Ô?GF’?xlu?oÑÆ?PÅz?npN?º}?ÃwR?þe\?î!®?xÜQ?€é?Ì!¡?×y@|þ@9é?€&y?ˆAå?|Ç?pEÍ@-ãú@0‡?¬O?­rˆ?Ò¼? ÁÍ=“æ?;)î‚?²2R?»^1?»eö?»oy>‘ã>tèÜ?¯}W?»’ô@pÖ@å@ +@"? ´4?–E3@"¶·@-o?ìB?Ùòu?á{•?êc?íO?au<@ @‰†@!†@H’?Y?…?ë?°Ä]?ô„?¸’»?¸°µ?ïâ?û-ž?— ?ˆ¼e@I@ Ž?à?ÛèÍ?šYÞ?Œ9?›ª?¢×?ï%Æ?øeZ@&;ó@/Çü?à”e?Àl?ÖÒ?Õ¢ô?æn?ãU?Èy?¾N?n÷¯?XÜÌ?vÛ¤?|R@ 5@ˆ@ êå@Ñ}?_¢?0z?¨Õ?½'×@hë@Ìw?ÌŠ^?½7¥?û܉@ž9?¬0À?Ÿ÷Ê?Úæ?çä@ Á@ …„?ÕfI?Õd?¢D?¤âæ@9z@?”A@c®?ü—Ã?Öd7?Ï~ƒ?±Ø{?¨+ã?Q›S?9g?õA +@?—?#ñ?»‰?ï?ÿJÝ?Šå?ƒÇ™@3(@8Õi?µŠ°?µ•@ ’@ 0ò?}L²?'…?úÉ}?üð:@$»L@ |µ@,ÁÅ@,7B@ ð:@ Äý@9@ +~X?™–ë?¡² +@…@¡v@E+Ø@FI?½©Ê?»;?€¥3?|c{?tµI?|Ý?ð.Ü?á׿?hüÈ?‰0?íÞp?ç…?˱?ÝåŽ@EÌ@ l @ lµ@+?žÏ¼?´p¾@8 Ã@6Æ?§–?ÊäÜ@IÔª@6v?½Šyº-?½8.?ÕP“@ßï@¨‹>Cö½?-Ñè@*Y8@sÏ?¬"ì?Í œ@2tÝ@#¬a?ײ³?îTP@+{]@"âû?µ1¨?½nc?êü"?Ý—K?½1ó?ÞZ@/š†@,[¼@,M@êr?½h?!6?|Š’?µŒm@6Ï @!#=?ÅÙ¬?®ež?4–?‚¡«?û×â@ˆl@%“#@r@ æÅ@à,@*Í[@˜?–å ?¡;?Ó(_?¿æÚ?\ê?¨¢@7`~@#íì?·Ö?ºó!?½€°?˯ê?÷¿ï@ÓS@ñn@ O @1 S@+wð@¿ø@îó@† @ƒ.?ØÑÐ?Ð8?š'?¤0?âúE?÷uf@"/r@&´Ë@[#}@Q½2@|@Æ@«³@Ý°?ÄÞ?éˆR@8B@+R¿? Ó5?Ðu+@‰8Û@z°ÿ?ã4?æXÇ@³@ž@GZ:@?X?Ãú?¼›u@­@BY@r£@œi?ºäö?ºÖh?üÆÙ?ø‹‘@²?@y¼@ +²Â@ Ž!?’$?“¯¼?ÿÍU@ +Æá@pã´@{,@C J@CÊ<@LÖp@N%`@>2$@:Ì@iÎ@|õx@Zž?@RM@èá?ú,?Í?³»o@É¿@?¼@dÇ'@rop@ ! ?«n@@ Ø@Km@> @96»@YÒ @vÎg@PÒg@'Ÿw@"ØÚ@&Ä'@ C‹?¹ãº?ÒK?ú@"/ð@\è@;þª@)±@ _F@8_Ô@7a¡@-ˆ@@Ú?ì´?ö‰@!¨ü@JË@ „@H@è(@êD@7"»@5À†?çN?Û<%@+í@7›@P¯»@Wô»@X[«@_Éô@•A@˜ Ó@zØ¡@h†@5~:@$s*?éN¢?±Rz@ a@ûG@7£¼@Tà8@ÍA?¨Œi?¤ÿ»?¡p~@[t@ˆ™@q¸o@)5@9£‚@fã£@g’@6ó@x!ÿ@Vd@E0@h@#Dy@A³@Glñ@MÝ@ @ë@@6Ù@V-ç@·ø?ÏJ?áÆ2?ôÞW?Íæt?¥§¦?¬ò?¸G?—a¼?€tñ@¦@Sa@&jn?¼l×?ÇÀ@]Ñ?ö §?¢’Z?¿Ü@$‘?õ,Q@!A @??oñ??RR?›t^?²ÿÆ?ôn@ °?Óe?²Š?É ÷?ÈU†?¯cg?—©?´Ë0?èÏ?ÑS[?m~,?,Y@×’@"Í@:dè@µNß>¡ò>Ç\>æŽ@² @!½?œ‘?‡Vl?r®_?fP?Ù`\@ +ÞÔ?èÿü?»úm?º b?ª¢??°RÒ?Ñ\¥?ÇR?.D>”¨°?ᆠ@ ü­?às¢?¸†ñ?šÕÖ?‰“E?ŸÁY?ÙT?Ý¡:?yç?n‡È?bfu?aÓý>Ía^>Ķ?b.€?ž?î?È?øJ[?çG—?µ;û?®>C?]D¨?^(?ª_ +?À$?Ö(?ëü:@QÚ@uÛ?÷Å?`3q?r¯Ó?ÝO®?ßú^@fy?þoQ@‘º@ká?¡á±>ª¬Ü>Æ\€?ùæ?¢Á?¨ŽÜ?§_J?¸ÖäX>ùóq? a‰?¦ËV?ŽÅ?äú·?¸}?{¦ç?U'Ý?;?&ìT@LK?ÿÊ?ßÞ`?Ýäá?nz©>ÿmÜ?Nò?Œº?‹¼Î?¥ÆT?œ;?™‹?„ëÙ?ªõ8?¤ð2?yï(?]}e?·š#@Ë„?Ø5?f³?A/á?È–?Ôg¸?–¦?‘¾³?Î3Û?åÏ¢?ÅH¼?ªÌ½?³œØ?Œ”v?‡¹'@ô¬?ïè@?ýûœ@-&?Î>È?§&—?Òº?ú\V@W¦@"bÙ@ñ?…x?}ó‹?Ö ×?á°?•¤›?Gxì?”ê?Þ?¦eý=aÂj?Vß?$n¸?Q§Ê?deË?pö™?}„?sy®?^ån?>Ù\>·Ó>òr›@ ´É@&RG?¤r?Œîs?¾_?ÜŠ?ü}¢@A?òY +?£ÅÁ?š¶?Jþn?;®?–oM?Ï?-cÔ?+?¹|]?üÙÊ?ö>$?Õ†×?¡KB?bgñ?S¹d?&Jk?˜Œ>ã*]>ãb<Åyf=QÒ€?6ck?CO‘?(þ?-È?#ÇQ?,#†?}y÷?©y?_*E=•ÉY>Ls·>æ ?«è?Ѿ–?ÖÚ8?¥Á¾?¬oß?tÖf?{â?m)”?iyS??Fë?=Ù™>øBø>È¥Ê?~?µ/?dA²>¬´Ë>¼³=‹Ñá=ü ‰=µ—ó=r[>'ò˜>ïƒà>ïð£>ðee>÷ï?º?? uˆ>F>ƒ>ê¼!>úP=ÙC>óÒ9?¡j>³ª,?ª·?mw0?s¡¥?T…”>ñ†>ǹ;@T—*@*5n?PU^>Õ±? 9á>ŠW>ñØv?t¸r?\ú>M`/>QæÀ?,ÁÒ?1'†?0<?/^?S,?‰?–Iè?” ½?:I‘>v ¦> @x=”Ì>Ñ£?>ñÉ?v„î?woŠ?g>?i<Ø>À®è>…¼[?¶?8"$>çÍ`>‡]›> y>Wd?«3?DM?JΟ?ILe?‹Ù?Žlõ?aK°?[4>?CüZ?7,¶? 8>ë‚?t¬?°_É?qó>û„>Ï8K>vªí>Ô­Ã?’Šc?&œ?0ÛÆ?1µ™?2“A?3{"?«¦?¹¦³?Ø{º?Ó‘:?€<É?IÕé?<ŽÒ?'ù?tÉÚ?¤þÀ?…d?"ÃÁ?Á[>§Àò>ºF>?þ(?‚ó>“G>å€?{?q^?ˆ.«?”]È>·øY=×”>ÔSÐ?Á½?*Û?D®³?G•?¡1p?K¦=amá>43'>îr¬>î‚Î>î—(>Ó +ê<â†k=lï?³Q?³2›?u< ?q”?,¿>ï7?[}[?y½›? >ïy€? Xé?V?6Äj?B )?„rQ?³ðV?“ͧ?0ó¯? +‚>„>ác6?pQù?tü‡?ŽÉù?”1?æ>…?è¨|?¶ê¼?´œÏ?CðÞ?6:;?lô‰?}ß¼?l‰?Z‘p?µ¸'?Û\7?’gÌ?J‚r?‡}Ê?¤J +?­g“?µV?Èzë?æ%±?©…š>Í€W?Õ?$Ý?wî_?jÅ?\rñ>òzš?nï?rE?o›8?r®J?rÔ:?®qM?¯@ù$@]›?Dý>ó:‰?vûö?‡G†?ðò>ó@?Koî?s¢á?‹ô?Ÿ;f?…¬ê?xÐ?t ì?<˜>ô.#?\Ù×?·<ó?¦Ha?Œ•7?oÏÒ>Û°?!+Œ?·Ñe?·_à?’¨R?‡Ó@?Qt?]|Æ?€eà?}²`?z–«?zùø?·ù?¹ä_@@¦v?ñu>õ²°@CM@=?›`2?ˆž>EÞ\?$ȸ?M·Ÿ?ÃHG?çÞô?rZK? +Ù²?n!˜?˜lE?'Ë>`d¡¦a>sçj>œ?{5•?è£6?Áê]?‘èƒ?è£@.õ?Î0Ä=ð>Ê}1?w§;?J.§>ýn?RgF?µ^?Ú»w@ØŸ?æ7„>ø «>ø.@>ø<?+?!ö.?ißÒ?ÜË[?Æ¢O?–K™?¨Ò?õ®Ð?åز?xÄÎ?€rj?ŠŽ@?ƒý ?ú?ˆ°Õ>’}>Þ£$@j’@ v?îCî?æš®? ƒ?-ß?»:?¾ç£@þ±@å¿=g™h=í–°?òÉi?ò :?ÔR™?ËàE?ŠÕ?Œ.%@¥@E@tk@fä?…p?zIx@5@ Ò@*‚@(d¢?d9Ç?Hz…?çZz?ùlƒ?‰ß?zµæ?‹Ó²?‹&D?fõ6?fìC?ÞGÑ?î”C?Ž=Â?È¿?ì‰@?ûð?-B?–E?¸}^?ÌÝ?C9?,Z:?Ð\à?ÜVý?°‰Å?©5ƒ?¹§‹?Ãyz@SGs@`vL?×¢«?»ÓË?Á¤M?Ê€Ê@2õ‰@<ÔC@!Hq@b{?;ݪ>ûßJ?¶œ ?¼¤@éª@¿M@,£.@3è @9œ@<@?ÑÞž?½¦?Ä|?É]Â@)› @. +Í@\n@ ä?ãÍ?Ø.\?_›¬?Vu«@Q@GÆ?­Íˆ?Ÿ76=²/v@b°º@v©0?àñ?Ò»q?èïª?ë·¶@O@ +´Í?ß×?â‚Ã@žZ@å~?‹eä?€[?ùî?üÂ?@ë@S@¼@ M?ä0€?Þm(?ÞÙ?ãgn?“³«?Œ¦?I¶Z?c7@°§@6è@[3@Z @]ˆW@OÒ²?}™C?sÎÔ?ƒì?„û©@H@ ïí?|Ñ­?†À”?Ò¿æ?Í¿?üR[?î1à?|Ï8?…âÕ?Åy?·^»>üÍ@?—3?ž£@?ª¾ÿ?Óݹ?á>Ž@*cG@$î’?ü¼Ò?ä ?Ax?&:Û>K:3?“-H?Θ@8õ@l|i?ÉrÅ?­®>ü¢º?æØ?–G?Ï=?/?UÅÖ@«¨?äò?WE[?lX2?µ˜g?´ ?›?¾;å@):ê@!±@7s?ðÆ‚?¼ý?¹Éþ?Ç“ê?ϱ?ämî?æµÛ?Î5?ÛØi@F?þ˜…?쯆?äËT?À ûdÀ?{$ë@‚@#4?’‰›?´LQ@Å!@9F@¦V@5²Â@ƒ”@„Û@Š>@[²ƒ?sá)?˜ÎQ?áüW?×S?¼ ?ÖÚÂ@/“@@œ?»ê!?çoG@Odõ@XQî@a@RSV@ +ý@V½?ÄÆÀ?ùÁ@ˆà%@}¿“@;…þ@8t|@!l@!¹Û@S¶@K¦Ï?¬¨›?Ä•@,“!@)k@&‹T@,°÷@Ìö@?ôç¯@­n@ŸÓ@¢Õ­?˵®?ÆâU@x»6@uúÒ@rq @n8&?þ-b?ø¹Þ?Ÿïå?•µX@0Ø@E†@K@VÊT?¼`ÍŒ[?0]y@H‹œ@M±¥@’¹Š@™€ÿ?”ÆF?o)?Õ‘?×¢@&Ñ@€w?õd?îfÅ?‚£>à7À?¬íÞ@ +ûx?¹ï-?¯Ó?Nhs?®tþ?Ý—Ê@,îd@´:?÷þF?ÿ9@¢Ö@£Ø?õXt?é5ˆ@#@'OV?Ö;-?±A§?Ó©+?é|i?ìe ?ïØž?áö›?Õøˆ?ò€¾@Áí?ðÄU?“ç?¹Å@gµ@tQo@æG@z‚?:}>íìú?й.@ÍÈ@¯,@Ìq@ À‰@ +Œ7@³r@:?àǽ?“K;?¢/.@oÈ@>@g=ð@^¦”?ˆ+Q?hÚ=@óð@(”p?ɘî?›t4@ú·@BùÂ@.ôD@O@Æ$@-Oà@'Õ?+>ì?RÎí@/²Ø@!“?î¹?î‘H?ê§O?æãO?Ú–·?ÚLx?¯S?sÄ ?ëP?¨Äÿ?äx5@G”@==–?ÛÅ?•¡ì?û?ÿ~?ÚoÖ?Û¶©?ƒî?ðz?- }?H¢a?e¸ ?œÁ°? ýF@ys@éF?Û!Ø?Ûíà?¯'ê?ªx%?ð?Ž4s?µM?Ð'2?ËùZñ>¦ës>òñ±?#Ä?ÀÛ?ðd¡?ñ?×`?ÖOÔ>â Ï>ï(Ñ?a÷Ÿ?}0Ï?X.¡?T=ã?„I?£WÈ?¢5³?sh?hˆ&?a’Ñ?qh?ŒoÖ?p ?…ˆR?†B³?Œ‘^?‚†…?—M¾?¾ÈÃ?ÅDé@%¹F@ï_?¯H¶?§81?¸¸±?â?µé°?§,?ʯ¨@º¹?ý +ë?VÖ?K„Ü?Éi?É“ò?ï”9?䉑?¹ƒ?¦™ö?¹~?Þª?ËdG?‡DŸ?˜qÐ?—@M?¡n?¸l·?¸å{?áK@ï@£á@#Añ@<â@&Üz@(£?äB?Ýy ?œ0i?v·ž?ë&?§K…?ˆª>Ý]r?,½?¦û?¦Z?‰Ím?€7Ä?Û|Ä@ƒ‹?¬Ç°>ùš€?+¬+?|gï?‘x!@3ñ@0öH?ã9?Ó°·?Û}²?Üì–?™(?L98?‘ú?æ ¿@j~?¹•’?³†I@ÝG@ +š?Êé\?ôV?‚óý?k¬-?p ü?EL>ð£?íÔ@]î?) >õ•?{ª?”²%?Ž€¯?ˆN,?˜M&?¿õ#?¥°%>äø£?àÿ?Î?I?Ï>€?—O?Œ×„?©öž?¶@S?˜á‚?cÀ?Õ`U@wbˆ@S•?…Œ?Œˆ?‡WÄ?€qÞ>°zØ=:QÚ?…e?áìC?ŒÍÄ> Þž? +Ip?b²»?Rù=>ãä>ãE??¨V§?˜0? FÍ?ëŸ?*ï|?#I^>Ë>4f©>Œ >éf>«4X=Þz'>æ©â?"?­jâ?«ï?gÐ?h­?È ? ‘T?K ?(A>»Ÿå>ˆ =äμ;£@=ö‚È? ƒ?Fb>Æ­„> ±>ºâÏ?´>?or«?^i=ÀmÏ>BT>PP>o’Å> àì>(/?Y¸Ý?pjØ?i-¼?=õ{>§c™>W„_=ß®=ÙÅ=Oá;ÌeÙ>U˜Â?<ö?Q5>q +>Êi>AûŒ>o·f=A û>¡é@M~@3_w?¥"U?Xrq=±u>(åÍ?&ˆ?ÇF}?¢ >ˆß>’®Þ>ç€ >盩>ç°W>çÊá>çßÍ>çù¾?ŠÀP?°)(?<ž–>jºÿ>åvÆ?0|h?®>ð/?7H˜?ë²î?ßÔ¶>ÚnÄ>Ù(?mëp?r‡Š?4(j?*Ì?n>éŸ >±!>€ >€Å>€"Ê>’åo>Ô7/>ç·ï? +2?1ã1?”éQ?”ªƒ>ó,$>ê ¿?£‹Û?³\C?öu>a€„&>‚ƒÿô>…Õ9@õÝ@öÕ?>{>=9®?*Gg?lx?žU¸?ÁŽs?«0?ŠÆ?Š7?‰¥ÿ?‰â?ˆw½?Šü¥?—ßö?’~v?N¼ö?P3|>¿úò>¸Ù·?6Âé?=?Mñ“?Yt”>«# =‰¦“>»À(?ýÌ? x½?Å‹? '?È?¬Z>ç6?öÓ?oC[?nºÚ?or?l<=>öÍî>ú±“?bÉ+?eg9?¥”W?¬˜Û?(>ïh‚?¥=¶?Ω?—*!?o³^?ûà@3l`?Îk€>‹?ˆŠ›?ˆ>c?–Å?ùè?yáù?owº?Šä>©Îß? ÍN?4?l o?Žå?ªd(?¿’?bL­=r0'?z?«Ãì?~?{>ûõÏ>òs„>òê >ùAÃ?Ñ°?±‹A?­¦|?€¦­?‚°? P!?§~A?f’k?Vho?úfC@Ë?Fø°>ófò?jN?'û? ™6>ó¬•?%¢J?9¸¸?YÞˆ?sò ?2—M>ôö?&ð²?dË*?=ë>ôUÜ?fô?È.™?žÁç? e@?aˆ4?ô¾Ò?¼Ÿ=p¤R>rÅ?³a^?´0U?´3I?·¼8?·òÖ?¿Å@^¾@þ¢?ª±±?¦õ‚?¡å?ª +¥?ö?u×·=ÄSˆ?T?v”?÷è?Ëý?f|¡?vZR>ÒÔî>}0S>ØÅ>ö•o?rTˆ?’£Œ?xþ>ŸWý>Íòå>öôP?zY$?¬)6?Ð/®?ívØ?×H›?¿Ëæ?€½v?sY?7=É?wŒh?•é÷?´eD?….X?‰»?“é@Å4?à¾6?Ÿ«û?w‡8>ø>¿ãÅ>!ÓÙ? Ÿˆ?Ã~“?¿TÑ?ŸÅ?›‰n?›1Z?¸?˜Ê?ª¿{?øÅ«?ÔÆ>øÞ¨?.þ?À2y?¼Ó]?ÞmË?Þ½¢?Ä™9?ºþ?‚¸ö?‰M©?ÄÐý?É¥x@ëˆ@œÂ?°‰ñ?§ú³?‹HÝ?Žþï?’²!?šö«?Ü©À?ÛQg@c@ßÆ@%‚ô@!*†?13a?8*º?Ü\þ?Ú‹@†@$‚?n·²?\]&?§³¢?¥I¥?Å–¹?¾Nó?¬H2?¯…²?0Ñ? 4‘?—P?‚W¼?¼c?½Mé?¼H?½ª ?|Md?p–º?ìr4?òè>G'5=ÎjÉ?¿–?Í1í?ç“?æ½ä@ +Z@  Ù@ä¡@%![?Žxo?{‰?rß>û”T@iÞ@%Ô­@ZB@P ??ÌN?Ø@CÓF@Q&?¢œg?Œ{A?’¾n?‹QÔ?·?½@?‚å‚?XÕ?!Á?@ú@r6@#5@eµY@eGø@Z,Ñ@U´f?ÄN0?¶z/@!oî@!óÜ?áC?Ý1?9?&óÉ@-€L@1)Õ?2?}œö?Î|f?ÌÒ´?™É÷?”¨G?$Çý?"®Ë@<Ù@Z"@Æà@ôy?\ ?…ˆt?:p?•;?‘Ù¦?žVƒ@ó—@¤‹?F„Ð?[!ù?½€?Â{ ?ÜÇŠ?ÄÊ9?;pô?ÓÓ@šÆÿ@•m¤@J¢@v¤?è²?ílq@?ý@u?É¡?¿?…®¡?±{z@sŠ¹@_7?}àÖ?qáF?å?B‘ë?ôŽ?Ëâ==ÏŽ>OmŒ? áU?R`M?Óê?艙@êû@ÅB@*ï@ +5?p)?‚¥?¨rÜ?ŸèR?½qF?ÁaË?̪v?Ì×]?Ü.æ?À`ò?ž??(@œ@n?ºvM?ªJó?Šê?˜_~?²Û?½ÐÉ?ÞgŽ?æ)‹@lu@¸@D­ã@-Õ‡?öŒV@d×@ š@Âú?âÍ“?³AG?'(¸?[‘$?¼Ó?ðn*@(Â+@æì?„‹]?¢¯¥?ô©“@Z+@YÛè@!“¼?1–?ÅJÊ@Q½@1­A?ÛÆo?ÄS¹?¦Õh?õŽ¸@B’=@*ù?ù…c@ Ÿ@{Ù?ÿ ? •8?©Áw?ª¹?ž%X?dÆå?•*?û=À@Cy@XÌß@#Šo?Bx?:0í?Žì.?Þ„Œ@LvQ@Y¶@sU´@Mº?»ù›?§O?ŒÃþ?¨$î?Û|,@U@@Ûz@*?»Û€?»Ò£?»Ès@î-@tî‰@\¢ž@£Ö@Øm@‹÷a@rŸ?Ò"ï?þKñ@;uµ@21Ç@ PÛ@#Á¡@ƒdˆ@^Hë?/*?]|ã?öóÞ?øê!?±~ô?·]S@1?þÃ?wê~?iÂm?š68º@KUö@,t@ bš@HºS@WÍ@£ù?ÿª?Ø™ü?Óêj@:&V?ð¼8?ø% @±@‰@/^O@-}r@[÷@R@(˜G@&ë?Óû?Ã(Q@a|@V%@ –¬@"^4@(‡á@3>Î@5Kö@9š°@Aöv@E ?þæ>‰l?0ö?Ðþ?²)g?¯6?q¤V@3P@/ßb?÷?ü™¶?ç ®@>á@%ù‡@˜”@?Ä©Î?b‰0?Ët^@ &`@A:?é‚Ð?׋Q?… ƒ?’‰?óþe@ûa@](?òP?Àç®?Òyƒ?[Ï'>è]V?«Åë@ +8š@€º@h ?ëÇÙ?x2¼?ý?–ôÓ?”]Û@/ Ã@6”4? O?­Cc?°iû?¾BÁ?˜Ìn?n§×?Ž×ø?©z(?„¹œ? äš?A8ï?×r?ó‹)?eÍ+?e®u@ ]@ÿÒ?…¿G>îÒÊ?3î?Wçá?2M?8a?ò^@Ë?ýo¢@f~@ DÂ?ºŸ?±$g>Ž”î=(ÇÈ?δ&@^3?²­z?.t?˜ýÓ?üLª?èØR?›¢é2’>äÎ>öè+?GÊ?0ƒï?<þg?²Ïë@@Ô?ûþ?“Ku?Šä ?œ?¦9(>ýÝm>ü ?9}ð??XË?4¹ƒ?*Œ?jwŽ?¨Þw?­ðJ?·±â?ª>Â?^¬?T£3?^¾?`³?» ?Ç'®?‹Ÿ‚?7[Ñ?eØ?¶²?±ÀM?ÜÙ–?Ò7¬?m™7?_²?eð?‰“.?“öC?§Š?ÔΩ@Ò@uÚ?€>?Gà?ÌyÙ?Êõs?‚N?k³?©c?ÁÚð?¿–Á?×Ù‡?ÕË}? al?š·ó?]:?{hÄ?Ñòï@åú?äè?¯üi?½Èû?Þó?âó{?õß?ãÒ)?“ô¦?ŠTÿ?˜R%?­ôB?ÈÀ$?ÙGm@ù@Xõ +@AX?˜ž¤?»’¾@-ë@$ÊP?ÄÁZ?œM?½ùŽ?ÜÞ¯?·/!?G{$?W-?ç I?ÛB ?½:>?´¶)?ɪù?Úh(?§»\?P¤Ç?LnŠ?]Jh?r†E@˜@¬–?çŒ0?Á¾íÌõ?KÖ¦?M±?l54?„hÊ?˜s?§ "?¸ÙK?ðÊz?ûõg?¥‡??šZX?²«É?º¹?)Qà>þú ?ŽŒz?É0ð?ÁXÅ?§ää?™‘ž²F?…Ì5?nËë?sâ>èœ÷=tÄ>\òŒ?2ê?7@µ?U»™?d…E?T‘6?Tq†?aÛf?aFj?+Ñö>¨·›>ÅJ ?-?.ô$?Ž9Ï?šr¯?c1Þ?h?XbÄ?JrH>‹ >e¢T=ƒ¯ˆ>âª=u5g?zJ?J¼£?•üô?À=“?\Ëâ>;sü>|Ñ=šË\?1ÐD?ëqÀ?˜=£óh>w§€>ÌØ ?^ÛŽ?*<ÄÆ>m…ã?sØ?k8?G‰?²+>EÀP>„ò$_>¦áÊ=ððå>2b>l’W>-TT>wÝb>ß&Ž>*ð>$S”>”/ê=¢­Q=Ù?®V>?Æ{?ŸÔq?G2Ö?õÐ??j?Õ>•”†>„J³>,{­>°ª®?{ÑÃ?lóV>ˆ£b>†Åd?PâL?X‚¶?7º?4h>Ä}J>UèÞ?ª?nî?V²œ?0Ž7?L4$?”B ?Ûh?-æp?*\8?gJT?gÄ?9¬Q?0;_>¡P^>cv>Ã%M>éµ¼>éÆM>éà5>ˆ¼=™>oÎ>•˜?,¥¯?3ˆ?0iþ?0)º?Åâx?Í¢Ž?Zyx?,4ð?*ßv?.i?Œ½?°f—?…?5?ß*?—‡?2#¢?•m?…(I?ö–?³¥?ç?#³ù>÷Eî>ìKQ?-l'?BÍ­?(Òr?¥3?_ïÄ?ŒXp?•öÅ? >Ö? ç+?¡—?¨.ý?ÀŠù?°±a>íJf>ê²Ý>Bå>6­?‡?ÏÍa?%¦>íÆ5?þ ?°Ã?³ ?·Ìí?·?g4?ÆY@,’?³0Ä:Ê¿K?Ÿè?ît>?Ç•T>õÓz? +¬×?g–>?e¿ä?oR?o»?°Š°?³mØ?o‚?Z?3?¬¤¨?ÀC?Z°Õ?JT?²£¼¸>¾<­>ÿ3Z?!Gh?A-?DZÜ?_a ?xók?˜:Œ?£¶?²Õ4?¥?:!‰?A¦@@E=@T]?‚c´?qG? Ä!>á§>Ò¯Ã>âO>àÈú>ÜDx>GÕt=³An?{=€?×ôi?Žâ>?îx?P|>ÿ_?ÄŠ?ñŠê?ÌLÑ?qTÎ?Qa€>òxv>ø¿?MQ?#U ?r¼=?rΦ?rÝ)?rñ?rÿþ?sU?üÆ6@ýÃ>»‘î>-v>9,>Dì(?"jç?ô/>Ôæ…>«RÙ?oü?C«B?£¯‰?ôfÊ?ð:?ôkQ?íöd?Ù5É?¯´ù?Žæ?&“Ž?o$&?:ûP::Ô>¸ ?ó7Þ?ò™*?úxA?êcø?:Ë?",~?§?4 +?©e ?§…®<矯?¿Œ?ÇÜ?+¢Q? ™D?èf?úŠy>¡)>Ã4²>ö‚‹?ˆÓç?£Ë?¥Ã? _¶?|‹7?V*Á?y=x?‡:-?™±?¨® ?Õø?òR?­²5?tgN?w.œ?wtŒ?›†þ?¹°#?ê•Š@ ¾Ø?»ìD?> 5?há»?Š}ü?X©ï>øJ?w¡?!Òa?‰Æ?êò#?úï¯@B˜?ðF?šÜ?¨Ë?…Ìq?°ú@µ?ÜßÝ?"½½?‰]ñ@#IÜ@‰÷?ˆz? ¸Q@½Í?ïÈ÷?±cq?ßÜi@WW„@EæZ?½r)?ãx‡@P˜\@5­Ö? ×ø?©?AŸ??­Ü?ùÅ9?û9F@¼!@pq?Ú9q?Ú®?Cüþ?Në ?Ú[š?Ö]¨?ƒ?‰Z?£fŠ?­qÝ@Ò@e"@¿›@µÅ?zŽ?}~3?»ò ?»µº?¶|~?¹YA?øÞ[?ûf@à0@õ‘? Å? Mü?ùË_?ú¬?™M?’…í@ @ +}u?u–?Ÿ£@Ná³@Ní?â?·?Ýüx?ÜxŽ?ÖPÁ?ä†s?ש@?ù4?ûiÉ@ Ã@ ¬?¯»Ó?§'@ +OÚ@¹Á@ +<]@þ‡@8.Ì@9÷Ÿ?]r?ÌE@TÞ-@OÿÛ?°æ¹?«øƒ?Ñ`_?Ô_€?£ã3?´5a@ ­p@ü¼?«'³?° @>?@Úã?s½?†Âó?ÙÆí?׋?ñ¹(?øÀþ?Ð9l?Ëñ[@©O@ +œµ?ã‘ +?æðØ?Ζ?È~'?¹@?·B?€S?€?|€p?h%=Ú›³>aA?|‡Ý?†Ü?Û”Þ?Þj_?Âè±?¬à2? I¹?FåÏ@ A@˜“?s¸?à r@¯Øè@žQ?ÈÑ?Ô)?ÐT\?Ä0ö?Œñ¼?™U‰?çå5?å{œ?á«?´Åd?xåI?|Z ?|¦ü¡µ?J™¤?å×ä?îìà@ ÛK@ûc?Ü’ ?Ýï†?½lm?ã`i@/6§@ ú?ªì?ÂMÙ?ü„v?ÕÊ3?K*Ï?kñp?¸1¦?ªpº?a’?6(:={ Ð?£ ?¶-Ð?ÆéÌ?ð¹¿?㢖?Ífm?ãIz@~±@±?üqt?Ùs|?uw¤?¨:Ù@¥@ £¿@%$@%c»@6?ÊÎ(>°n ?©¿‡@W{@-±ì?·ŸJ?w(<3F)?\a@ Ns?ýÝE?l‡€?›¥µ?îbB?ùX?û¯Þ@¾@Í,@:\@J¼@Vo?]¿@} @f-@%ã??Z?.ñ×?ŽC?Ö+@.Š¸@•?û/I@ÏÉ@ÒÝ@Fˆî@‰3ƒ@lŽ}@.4ª@/–@<,@'\@<@Ä,?ú¼?ãÇ„?¨é?²B”?ÜIV?ù§?@¥@.‰?§Öë?¯A§?»¼Ð?ÿ¿@Z÷7@Qß…@9up@#r}?¼ÖÇ?¶Å–?ýª?–Æß?Údt?ÑÇØ?œ5?Óvq@P—€@7 ]?DÆ%?a×T?¹ÞW?ÄMf@ >·@¬¤@C ¯@6”@ @;@$CB@†\?õïÁ?óMö?¿§z?ãíi@‘.¶@ŠEï@Bã@óí?Ô@?ϦQ@A@@>£@‚¤¸@„5L?ñÛG?îvÚ@q¤s@p?‰@/`,@'+@nU@w¾î@>d@8»‹?hÙª?Ö?ý A@Ÿt@{É@†¢?”îB?S]/?¶œe?Õ7(@6zm@Wÿ¡@7fø@%c?Ó%Ë?Š¸å@tK@¾2A@›Æ@vO¢@F$@ßa@è!@ ~@Rž@X@[”c@üy@<ß@AòÀ@A½+@5t*@@Œê@hÍž@„RE@¨Z×@‹|Õ?¦?îÚ@@e´@ñ@x@Ûm@Ñœ@ÂØ@¶¥@ªd@ž?¤°Ö?–ê@ ¨@?R@/j¦@6Èð@?"c@>U?ò3?¸cç@XŸ@/˜+@Ý€?Ü?æÎW?ÿò@4 ó@híe@< ‰?îE«?çª?ßï«@LÞ±@Ê—Ç@±“?”Û?f?µÿ%?ÆaÓ@d@S«?}ÌÝ?‘5?£Yñ?µž{@,±ƒ@6O)?Üÿû?¸1ø@&ÞY@GcÍ@R‰ó@]¯I@ WO?µ#è@\@4'4@ZD.@Wå@B^‚?Òš??Ê Ä?ѲU?Àa•?…Pß?pë@Êy@ é—@ xE@)s?ïÒb?õ„¾?×Í?nž)?òÙ@Úf?ª­?’9ö?£íÎ?)?ý¸£@*7 @B•@X2@1î?î”?Éß?y¹×?ÓÕè@† ø@oÂ?ìÜ£?ìºZ?Ðvu?Ô…V@VT@p–‡@¹5?¿²¨?G|›>î(=?â¸@%Aà@G§‡@s±Ü@D€ ?ÛúE?Þªß?üÌ{@`¾@<Êæ@AÑŽ@Z†g@c!‡@30Ä@,Þ3?·#ì?¤$¯@µ@K£?è“?®¸ë?§š?¯9é?¾7f?Þ=|?ùå@*‰¡@3"@_y'@VTû?ûä?ûÚ?ÎõŠ?´È?Ùl9?Ðbk?ŠX(?=‘Ã? F?ðá +@ö@%pƒ@³@b@4:?þÃ@Wj?ÌC¨? 6?G¢á? +Â?‰Wh?®ÂÕ?Èø?àÕ½?ÓÑ‚?¸ÖO?›ºÚ?4e?+š?7ŒÂ?A'1?¥]j?¬?©°3?«O>@2d.@b¶?ð«]>H?\P…@1É@a?¼ñë?¨ô ?ë'à?çÐ?´²¦?žî)@„\@@5ˆ@$c?‚ÿO?˜Ò?îúM?䄉?{å ?q–0?Í>âÒf>âÁN>â Á?hÜ?‚j?˜r¬?âEW?çùÖ?ðÇ~?Ùý†?,à>êß>â'‚>áñ>ŒÞæ>œ.¸?-·€?aF?ˆ¦R?¨Ðå?¹î¸@“@µ?¥_?Ÿûÿ?äO4?Þë‚?ÔÕ¡?è—?í­y?Õú­?ãû?@:@|¦?owâ?‚‘m?¾X?·÷?ÓMË?ß{ü?ÔŒ˜?ÂÒ8?¨e¡?ti?aâW?SMä?H&±?µ(?½©Ð?•ùü?sc»?³i+?õØP?·ëÞ>Þæ/?ý?p|“?{¸Þ>ç>Ü>Þ0 +>Þ"‡>Þ–?aI?×8»?ð¾ì@ ¨]@™Ï@ + @ +›(@ÓD@¥?OºÈ>Ý™n?Z/ú?¢¤>?¾/?ú—ç@ Ž,@0þ@»@ €@$'?½Ùr?k”Ô?ŒÓ?§èu?µÎ?ÁåL?æ @+¦@1´?ôÙ¡?é.x?Ç´?¨üm?¤‚Æ?œÉ¹?¬5¡?ÕIB?ÃyÝm>Ù4>¦Ü_>¿c?—{"?ª-?Ï7?ݵš?È£³?¾a?¥µ¿>Ýõ¼?Q½?ÙÙí?Üâ˜?ò^?6ž?yA?ŽÏd?Œš«?“åÒ?tyó>Þ΋? *x?§A«?§Vc?Íc)?É>ë?UþA>ý1Š?=^Z?p™÷?‰>d?¨ Ò?¹ï ?ßµê?ºîy>Ø2È?ßÞ?Š‘Â?„Lô?›ê§?¨:!?“”?—æ?›•›?t£?oüý?©àQ? ÓÓ?YêJ?bó@„S@P?Å.?±43? C?ds ?Øé>ÏÕè?(?eg?=5`>åó"?h²?fwc?\$û? “>þi>è Ù>úI?ÆSæ?ÄQð?bªÅ?l÷> ¿?\|?®†ž?Š©]?kD½?Cª?G­{?P¯?"<>þ-=>ÓQ? N¢?ß?>3¿=|Z>>€Á?˜v?Ǽ?³HÕ>îj]>îÙ@?‘ó?,?,a?*Ôù>ôñŸ? v?Xè?1t…<îeð=]ñ@<¢· =© =X'Œ=°½Š?‘Öæ?‘ÛÕ?Ä¿_?æ +?w¢Ö?ŠôØ? +¶>P³>R&ó>˜ñ’?(›g?½æ%?õÊ=$8?–Ën?–§[>·!Œ>ˆ‰?<…?%‚n?&F?&ûf?'ª?(JD?SQ>Ôy‘?Ü­?“ž¾?…‡>véÇ>uÎy>ñ̽>ôh=Ûf?Zˆû?ŽÇJ?/6->éÆ£>®Ú>a6ü>ËÆî?-*Ï? 7¸>_3ñ>£ïL?jnK?k ¤?”‰ï?”Çà?vÎ&?tó?¾É?„1?T›Ô?yOØ?/Î>ëDþ>v³>¶Ýì?€Øq?ˆOÃ?™¢ª?‡ˆÀ>2Ÿó>eš? è¬? Õ?Oeh?F4ã?"”«?/>‰†ë>j_?Ùb?9…ˆ?-¶/?.]Q?>‚(?P5a?*¿J>¸¼@>ÈIÆ>í;>þò?Cí?Cøí>ÉêP>Ì×é>Ïé?>Ó +?Yð4?mÜM?ÆV¢?ãw?nýA>õ–Í>ð1û>îHð>îXB>î;r?&°?u!D?œWÇ?äEÇ?³B6=«/U>Rn?nù ?eíQ>]YÚ>uGy?£o»?§< ?ˆ‡š?†A>£P¼>-?:W?AýO?JZ7?Ft¡>±?7~?šð?)÷?z¢c?}?•÷u?9›?¼–0?®ZT>ð­?Ùá?¸š¿?ÂN¹?¸í?³r¼?R}?’‚è?• ;?—›b?ÊW?Ù v?`†¼? ù}? mW?Û“?>9ë?i^?kÅ=?n%?”tu?µ”¾?µ„À?³¡ÿ?×F@ æ¨?Úëü>òƒ¸?>Ýw?Ýô\?Û:?Øv?Ú97?ÿŸ¯?ö +?Ÿ.l?¢?‹?r2Â?ašü=o¾á?"…?3î²?½Š?ÖÏ ?Ž#?aoæ?8Œ?'Ãþ?Ik?${«?²ù?é¸2?ÛNŒ?Ø°+?ku=«ÑV>£,Ø?ä9?eÏ_?²ý?‰K >ï7>ôfV>ó‘z?9®­?»=Â?î§Í@LŸ;@>Ãa@¨f?ïÏH?[S«?\2$?‹}?‹6ë?'fÒ?#D‡?Îfõ?Ððæ? ž$?œ¶i@߀@ ‘>ÝtÞ>X¯õ>áP|>öd[?ƒÅv?¬U?Ñâ?å”?Ï.N?Í°?À¤?¹'Ú?]~d?Š?—·é?¼ÓÅ?Ul>÷ëv×?Ï€?xî`?› +?öÀ§?ìId?Ó¼^?»üÍ>ùvf?6ûY?ÐýFî¹?{yr@CÉ?ôŠY?r”?Ö{3@'Eå@P?ÇJu?¸Q ?Ÿ??»†?óäX?á#°?Îxƒ@!Bj@„h@NÖÞ?¼öD@,@E˜@Њ?{ÝH?`R?|4 ?}õ1?Š#Õ?àgê@+Š@Š‡@±|@"·@@™:@$*m@™?ì%>?ÊÁÚ@;O@ýì@&9F@BÝ8@"bÆ?å }?Ë?­ @Ú¾@[Ï€@=gø@K@T1@ño©>ûaÀ?®†Ô?£oö@Ç@ #@¹@óÓ?®?} ?ˆ÷5?g¡?Éíž?îúT@‚§@4-@>/õ@L‰û@2æ?¿ðø?Á7?·$Ó@ #@R9Ñ@9dS?̾#?¾5}?9Þ?…@Å@„½@·ƒ?ŒÌŽ?n‡™?£5M?¶K?‡ÖE?n$?ºð?å²e?üBj@û@BÉÊ@€Ö@cìÍ@1m@BL?©Í??ú #@p¯@„ˆ0?Êœ?Í*%?—C?›3ö?á\?ÚŽ @Jõ@í{?ªe?iZf?F8µ?V3±?¥Hú?⟈?ü„þ@þ=@L@0QE@'î~@öÇ@™ó?öñÃ?î%4?µÛ?&ýÎ?šß#?¡áK?â;@E@'uú@:¤•@†J?Ó]ò?¸dj?œÁ0?›d´?léE?—š+@5ŠÞ@:?êvê?袕?¨ö5?°Md@LUO@qè[@)sC?ò+d@•}@H£@ˆL?2·d?aC³?‡î–?¦€-@É@™„@ +¢@Ÿ?y.Ù?BÍ?·¾¬?æŒ?¯53?‚•6?Œ?•Ð?—Ù?(ÇŸ?1P?†ê?»–?¸E°?¸tï?€t?gþ6?±ÿ?îHY?±H??ÿð?ƒÔB@\@bÖ@QÖ@·@ñÊ@ €|?ëÞÎ?ÝÅ@¹J@2ì·@UF@î‡@@Áz?ç_Ÿ? GÅ?§ +œ@K·@ÑÖ?©†]?t¸?žjE?›È‡?«¥ž?ˈ£?øA|@¨í@!TR@\0 @]n +?bçQ?J¥„?‘:?‰‚ˆ?…°¾?ˆaL?…Ý?Žr¬?pŒ¶=È×P=|#f? +û?cý?¼àß?ÓÐÎ?Ää?`F^?í¥@.sÄ@,šs@)ço@%“>ùÆ?£w?ŽÖÜ?hI?嵘?õ|À?õ')@x^@i@'´·@¢?ýXè?ì˜/?C.î?Sê?ÙÖw?ò ‡?ºi“?‡Æ`?BF>ÞiÏ?H½Ñ@Pž@üC?5¬ã?$Ì4?"6?„ùo?Š€Z?¢Y?»Q ?â{‹?è-Ä?íÜR?ó@ è;@ØÙ?°óx?Wˆ?ÂU>ãK?HÝ_?° w?ºÅ‘?ðšŽ@ ˺? d'>Á…ä?j¡¡?'ð?ß.£@?õ´?Ý)Ž?âI@ +×Ï@Àý@jT@™º@,Íè@@ Q@+f?Ñ<‹?Â9a?¶;I?É{õ?Ý"¬?Ý+ï?× Ü?Û³?’³c?]=:?gÈ?‘Ñq?‹m¾?x©œ?Nl*>¬¤=>w?ÀÔù?ØÓ°?½xs?·D?ˆü¨?)˜?+×? +^À?Ñ%?¤èà?¨£¹?\l$?ARž?gµ?¦Åí-Ä?>£?§2#?§E•?•õ/?¡¥ü?ƒ{?ƒQ´?œ¼ ?§Ê«?Gã?h¢ì?Z$?£†r?µßA?œî³?lÿÜ?¾>ú?Ó9)?Š¶?g`î?1:?ÏV?HÆT?„©?¯?›EÒ?“DÚ>é®Ý>ë­ý?”À?®uz?„Ͻ?ŽÙ?[ÂO?Eq0>§ž>eë?®? »?;#ç?/ÅY?8´W?I¥Ó?fòx?dÆ~>ç„;>çÑ?²™€?Ã{µ?«—?•B>»°¼=ŸÍn>¬ñ¥>ó¨š?˜#?Ù?;k +?9ÊÂ??àf?l°¨?­ó<â–Üh=´²)>ÅYù>ªë +;äP=b J=â>iDF>óÔi>à[…>ª§f>–8ù;¬=ŸÈÔ>Tý„=Ópª>1ßé@,C7@ÀÊ?ñµ|?™á?ŠÝW?„E¥?2"»?Ë—>€ž)>}°l?“`>ýÖ>g*>’?ˆcš?‡é>5Áº>/¹b?±ó?¡wî?Y™Ë?9LÅ?nÅ?1?8”:?h?Ußò?6¨™?(žo>Ëe>ÙHâ?k[?Äy>R ¨>P}?ÉT?é‹^?UYx>é¶ê?ìÊ?)e8?,™Ú?5Àk?3õõ?)Ý?Eàè?Žõ¾?†Û2?76?7ªÃ>ë܆>êÃZ>e²">Cà°>xÀ>‹3b?²?$i'?3%Õ?6ÞÂÓ>¬“?R9 +?„'?ÿ{>\úÆ>ª M>ìêF>ŸÞ‚=´ÕX>0]6>ÅRË>¹*'>MúÆ>)ŠQ=dÛd=@¤?U?gp? åe>õï?Nü]?mÅß? AV>î?Ú?žá|?馰?—È>û÷?%c?vµ?.Ø…?RŽZ?jä"?ª8˜? ì?C^@?6¥g>šÿ;>§/§?Ãp?­>ÀTE>§>•?qË?‹[?wæw?oÔÈ?ªö>¡¡?dGÐ?´ï?´ Ü?´+Ä?ƒËâ>ûMf?#´>ð¿?¥Œ?(^‡?R@>­e>últ@ ôÐ@ Nà?^ä?UØŠ??½?zËä?ƒ:3?tgÀ?q…}?gW+?fÝ•?¢p>æª_>ü >õÄ>ò4>ù‹ù?/¦?£ú>ÍÛ>~î0>b>æ=’c?;++@¨ò@³‡?ÄÃË?°g'?/›¼?S?¡Ò{?£ÈÚ?ÛÑ~?Ü&À?ô¼?èï?A(?61c?nä?€à?¯ñ?¶ÉÄ?‡M´?s×f>ÀL~>Ù¥?ðëN@/hµ?ô)D?«D5?Pø¨>ô[ð?…Þö?ä-?œ²?n’ú? ®Ä:—eN>>>ª>ôÝï?Np´?·¿¡?¿K?ØCS?±úŠ>âIt?GKÇ?ØO&?¼«¶?S­?EyÎ?ËØ?½³V?\++?g²?–m?—"!?v³ç?}§e?6oÛ?.W8>ù‘Ð>öQm?šS,?¥Û?§”f?©Lê?ª>ö­+?˜µT?°9ö?½Q ?¾§‹?åzA?ôú ?e¡ä>÷&µ@¹@2­*?} H=Û(?´J)@ .@Y@†u@- +V?Õ!~?¨ŠQ?‘,ò?˜;Ï?ŸM?Ä?Ü/ë?ºˆ±?›}ˆ?«?„³?°ìg?Úe?·M?<ê?zWx?>™?s ?­ªŸ?¥J%?Žæ‘?‹Tç?‡Ã?6É­=¤> Ë'>ú„\?šUß@7­@4p‘@/²f@8N?¤¬F?ÃÊÙ@ê@·@ t?÷ ?¥ø?°½ñ?ßÓ`?Â*ã?83ý?=&Ç?76æ?p@ÚM?÷Øã?¥á¡?Ä#@%XÎ@ÿ‡?»µÃ?µŒŠ?œYD?±Ê@ ¿n@•@UPã@@Ã>ûš?21Ì?÷V?îÞ?Ã.O?Ä-à?¼,?Æîa@©(?õ†?UÄ?OÃV?W=v?hÄ?§äî?¬öV?™6†?¢”?ÆÓ?Êy>?‰¤?Œˆ?æHÇ?Ý‘?{g²?‹ßž@ 8ô@`>û‡>îÌ­>/º¡> ˆ?ú½?û”ú?ýäO?íC?Ò?T1¸@àè@‚­?áïa?ê-š@%ãc@+ß?ÑÙŒ?é/@<û0@32_?ß ?Ö3o?Å`È?ËË5?˜&Y?™á}?ª=A?»ž®@"…@"Ý“@]@ (?9æA?7Ìû?pqã?†Æm?Àßu?Ȥå?ÿd©@6‚?òÔ?Ú?³?‡gN?ƒ‰?hùÝ?NZ)> Íò>¼»ú?’´?—®?½SÊ?­Tm?uîÈ?œU?üsx?ç$ü?¤„ø?¹Ñ?ý±µ?ù l?Û¡“?çG@?ü~Z?ÝøÐ?†9ˆ?“ ç?½_T?àŽ(@ÄÇ@-e¬@YVg@NÄ@5}h@2ó×@6#‡@ ‚Ä?0Å?¢Ùq@(”@Nh?Ê3Õ@êÖ@ZÒÙ@-û¨? ?Ü›@#‡¡@h4?ä£?Ò>r?Ì$ ?¥+¨? Ù¬?ªtY@9¤ï?írþ<°å]?¹­?½ÍÉ?Û–¥@â?×H?VL!?¹“f@žß?ð¨F?|*l?ÀáG@$$@ž–?ض^?Úû‚?ÝBô?ùpÌ@ië?Þ±Ó?{ý*?kÜ3?Z @?–m?É3@ÐT@lž@%Ë?{Îœ?é„¥@;†C@g™?ñ3?ÊÙj?¥û­?Õp_@1b@±Á@0É–@)ý@ ú?ö!>ûjW?¹'@3R@D¼ó@WbË@;Ôg@r?ü%?¶*ƒ?§rK?™3ÿ?Ù-ë@å@)Ú@z@Uþú@W1Z@bt@\ìš?ô@±?öšØ@-ÛÝ@4@„Q@íç@‘g@›wE@TÖŠ@IµÚ?Ë C?\R?¬±¤?¸<©?Ùàž?Ûÿþ@ú@'ŠÝ@)¢‡@+?@?]R@I]@5@)U5@áJ?®š:@P¦@\µV@H ì@3¥@Uî@±@.@ŽÜž@Œ?ö@7IP@)Ãè@üZ@A+?=K?¥O?Û>Ã?ØEq?÷+‚?úø1@¹Ë?ûÞ]@5ù7@MÂz@,Z`@G @‘@ + ?á9?š4?¡H7?¬Ÿ*@ ¦@‹GR@|•@ W]@rh?å±ü?úCg@p:©@r]?„+-?nt›@!â@-?ÆÇr?°œ?—o¼?‹­`?«á%?¾í@Œ@+V*@®m?ð×D?¾#g?UÇ?¿H^@…D\@w ?óÔ?çI}?Ž¯Ù?Šs&@Âí@e‡@;1 +@G¨è?Ä,Ü?kÕ¶?Ч?ø8á@áÈ@_à@HÈ@°9@(Ž@EÈq@.¶à?¼ñï?Å9£@+ÖÝ@/mã@=Â@z@å@ìz?Ý×á?Èc@ +æ±@+C@'ù@ñ(?ÚÕQ?Ú•?sl@å«@ Ø@ýl@Ͻ?À{¨?ÄñÐ?œÌV?‰fì@± +@@=µ@@úÄ?ÇT?jDE?wY”?V­ê?ƒNà?Ú¿?É9?ã–Ÿ?ìð±?ðÁ@úû?#3 >&ÄÐ?ovÖ?­–†?«[7?¢º{?­’â?¾ð¨?§Ô“?dù?b‡?½¦?©˜q?ýÁª@ ]7?SðY>óGÿ?+ì?'é2?ÁqÒ@ ?ûmç?ävª?Ð^ž?FmÚ?( ˆ?u`>éÍ?Ë;?ãÄâ?÷sv@Ò?ä:ý?È$@¥@6•R@(oÂ?r>+?w²ˆ@E°Å@A?îìÑ?ÒÜ @~ª@"G?Òp€?v?Þb¬@Ig@;5¦?cA ?…XÒ?õÛ? ˆ?и?Cxõ?Fê?QñØ?[š—?0v¸?_j@ {²?ýˆÅ?PBî?E}f?ÂÅ +?È"ß?Ñ÷@?Ä5ˆ@´Ž@4¼@Fcy@_=¶@JÇ?ÄÁô?´K=>²ãÓ>Ë&?Ñy´@Ù²?ÐAC?§h?ú’Â@BÖ¦@-²V?½Uƒ?Ècö?À?‹u·?Ã,)?ä»?ôĆ@Æ«?è/Œ? ˜è?‰ç@;DV@8hu?ayZ?^ D?óóy@Gì?à ê?a>?cë?{'¥?—¦Ã?Ý®E?Ý ¯?§zŸ?¦+?þm[@žg@G@˜]?îy?ЙØ?ÒOê?êW=?Òé/?•2‹?˜ˆÞ?U €?(Î?‘àm?䄼?˱?”óò? Ên?¬§£?¸„?®3"?Ã2?³2v?°Áÿ?¢«è?‹í?Šz±?]“?qqÆ?ÝQ?Ýq?·ï?¦žR?€íÐ?]);?nâ??… ,?› ?É&Œ?Îd?͆ª?Ù‘)?!£€?L4?d}?‚®ž?Ëëw?ðÊs?µ¾¼?„ƒ©?po?^ÍE?gÀŸ?¾ø?»l§?ª_?¦¸_?ê.Ü@¥“?ýJ­?c??jÉ$?§Ï?§6C?’qÐ?‹k?¯q>ßed?m5í?¥1?ê‹?_å?„n ?·û?°±ì?óþ2@î³?|5?`ì”?a‰?aá“®>®Õ>ì–>Ü™?KN'?Wê0?aMÍ?XÁ‡>9ëï>‘ˆm?ˆÕ\?…›ë?có¾?<™)>—l;òýF?Fà?Äå?‚áŒ>Ã?ã?B=ý?+ù +?M®?b >çm³>缜@ ûÛ@ ú¿?gë?^þ? _?¨ý?ˆB ?¨ˆk?É“?H{ù?pMèüñ>•…Õ=ÃY‚>Ž>,‘k=7§>{u.>mjê=ݾº>Ï`>„ÑÁ=«P¼>›5ñ>eQ=Ê÷¸?ûwn@ ¾?ú? ?ºÐ¥@“S@â +?~c—?-ž´>Ëft>wG=Ûâ¥>m|?Þ +?'›À?k%Ñ?_Âß>çŒO>礅?¥Ó?© ?e/À?IÄÅ>±;G>0€è ~?~f?hÑÕ?jZ½?~_ç?€V‚?T­‚?U{?šD®? ²¿>é[²>ˆ_z?²Ê?9.•>ëÊi>‰+>ôr€?9õ%?>àT?P;"?@ +>êtú?z?€\Þ?}ÇŽ?# + ?"¡ >kç!>0½û?‡N?@­?è?¬£W?r¯É?§?@òO?kÙ?k±´?kÁ—?@É£>0»>O)|?J^2?J ?,Á?.Ýå>8ì=䩯<‘,=?&8A?l¶?_8?L ·?Ã>í>gŸ>Å°ä?¤_Æ?‘YC?pa>å Š<ù=[>ÿÕå>útÜ?e ?mç? +è">îF˜?¾3\?évÄ?¡iâ?{–·?—ÑÀ?¨ªÁ?ÀU®?ÙÚ™?‰Ë> x8>”Ë+?"0½?6Ðï?oZ?vK?‡}[?‡ Û?½Rí?ºJN>:m>#Î?{Ôl?´I?H'>Às%>èýv>ïä°?ˆp-?´ä?$E?8“V>Ìqy>¹D?Zý?L=?CÚÂ?]Ôì?ŒR‘?™Xº?ßC ?âǹ?ðõ‡?ì^?q?q_?ž©Õ?£2«?{z?qoñØ>=°{=7è&?Ò™­@íØ?ß"Û?°h7?[”ï>ò?(ÜÛ?Rb?±Ù>Ç‚>Î$=?ër?>rb?‰›¶?Š C?yWµ?ƒ-â?¶*ª?§êô?FïÐ?p +Q@» @sH?tL¤?sDë>û >ó}š?¬N ?¶¶u?^åÌ?L%?fX ?^Â?è +<@ +¸@!ÖW@,Yç?¸Š?7X?ÏÉd@Ù?¥ÿv>úƒR>õ=Í>ó¥•?00"?nFì?CÎQ? ?Bîñ?„y?v'‰?Añ:?[?š­#?‘¹?Nâh?ƒ–Ù?õ‡²?Ïp5>NS>É„h?»ž?²¥?oMŽ?o¬?®šE?ªýø?!°?w:é?sõŒ?vR±?vc?vpá?‘|>öÍ?hCl?v­±?Úz*?îÅ”?ÃY˜?¹0–@ >Ù@©L@I@ÞÐ?)Bl?i~?Y~J@"Ž@XB@8’?¡2–?Jþ>÷¶,?X`_?†má?Å·ï?÷ñ$?ÖMì?¶uM?hip>ø&¦?ª99@ å¦?Ò,3?‚{W?È‚ó@Â?Îv=?“/e?¼¸ ?ø«Y?ñOY?ëör?¿å?xàò?“ƪ?·3?º™¢?Êtü@Îk@:àk@$k¹?ì¾!?ÔÍf?­?Ì?²É¼?¸V?±¬)?”SÚ?‡™s?Z#?N6š>ù½?-[Ê?˜­;?¦t4?Óä?ÈD?¥°S?ÎO~@3;‰@Š ?¡×¤?‡#õ>;Ü> ët>,\˜>¯¢?º.>?¯x?xÍÉ?‡ì?Àˆ?˾?ò4 @Ás@)­Ö@1ég@b´)@Gc?¨B?¢õ…?ŒÄÊ?ˆñb?… e?vôé?<;;?Lîø?‘J?˜CÎ?㈦?îB!@Çñ?ö¸?­Y?áì?cUÑ?]L/?3Ü?U•F@?ö›Ž?»Ñ_?½%M?¿ ²?µ¢?o.?§üs@LÝ$@A7@;O@ +ò?´a±?ÃM«?å°ÿ?þ†M@<ç×@4ª@aš?ý¦?fßc?iWµ?¤#ª?©x?½ƒ½?¾Ô²?¬;ð?´èH?ÕÈÚ?å*@lQ?Ø}~>ü'‚?jJ@VT@$m|@:çß@Äb?$00?\ÙM?²½¾?º-?Д?º‹Ù?…'H?¤¨3@Ý?õ?½>ÿ?‘´,>y?+e™?à’·?ë“ã?ô(?Ð.ó?‘•Ž?}ê?dì?¥¤‘?æok?áÞO?ÊÍ?ÇãÚ?ÄÑ×?ü5@<ÿø@9³?Ðu[?Öš?؆œ?þÔÁ@½@ +Ž?ÇY?Äâ>?Ö1U?êï?ü]?êqU?Ø~D?É9Ó?š4£?ß k@-vC@6 @?Ý@ ‡º?WIØ?Ê—Ó@2ÃÆ@+[Z@§ž?×a?`j?ŽU\?ú~I?–•>FÀ?@‚G?²kg?ì‡9@‘N@G?Ô›ˆ?õ«¹@dR?óõa?½Š?èJ&@ +Ú¼@"( @[@99?û @3@R•W@!’[?§Å/?ª§?­†’?Úì @Ö/@!$@2ðJ@+„@™K@?‰‡@}Só@Uÿ9@‚`@GÜ~@”ôm@‚°°@=9@&™@Ó.?ÿz?Ûy@8@Còn@.ÿH?З@äŸ@„< @q§ß@õw?è‚=ÝäÙ? +à>@o@2T–@‰<^@‚†S@N@@I½@8l@.MÖ@Ò@Èà@Z99@aDÉ@E@ ¯?÷ï?þ†]@J¼E@HN*@w­â@w“m?ÌæŽ?Àa²@6H@8jû@;Åé@=ƒT@„z@‡yT@ax©@atç@,­¿@ê?åB?ÛÔ¨@K†@ +š?ð£Ú?Ûuß?ûvì@ @,?ÖøŽ?¸¨!@?Ô'@tÖÁ@Vn?™=Ý?Ô6­?õÂ@IØç@…ƒô@dÝç@=Öù@¦d?r¸×?± n@Àà@Pôn@o¦@Œÿ@[ ‘@M@@1kö@=Ð1@Vˆö@QÎ@;Å@,Ù‘?À¼Ð?ËÙ?£›Ú?¯?ô›?ôëQ@){l@+–@ži@pn@BÐ,@:zŠ@GÕ@PsR@#µ@@(× @,òº?áð?ºH@$Œú@Hµ¢@T¡¸@c._@>=8@n=@ +CU?þ ã@ÉŸ?û?¾)É?á„?¬½x@l ‰@~ÓV@¬Ü@žÞŽ@2/}@6:@#z@%ˆ@ ê?øé{@ +õ@WU@/º(@+î@aúÐ@pè7@o³R@mÊ@5Š»@õÿ@*Ú?ïÀñ?ãúf?Ô#?Ýë?ïcR@'¹Ò@ˆÔ»@}”A@5Öf@'ºk>ù}ê?$S?”ç?«y?Õ|k?ͬ@*Ç @2 @5…@ì›?ð¹š?Ø]?¿O:?Âz7?¼#?¯hh?²=}?µ‰õ?ž…/?U^?´Bx@O°»@=Ï^?‘Ä? +Ì?„Tø?Œ ?° Ë?±€?û5?· f?Û6Ö?á©ý@5”Ñ@W=º@JÜ@Bâ®@h„?í—ï@ „@:(´@3Kì?껟?é§Ú?æNÂ?ëÂi?„n·?!(?÷ƒ¥@Íž?¬èj?Œ¹?¤û?¯6?åg@$Æ@7?¸Ó¹?‡õ?9é?Uf\?óÇ?ø¨F?ú?ñV^?è‰ ?èGÐ?€?0_Q?gÇå?4l?“Ù?¬X¹?º’.?ÒFl?Þoµ@ˆ@ +¥ ?­I?­7Ù?i×Ò?HÌ®?–â?¨,É?ÓZ=?ã¼Í?ÞÚ~?Ùúñ?½.ÿ?žy—?¯É{?ÆNß?Ðõ@,$¢@, L?¢Ä?yî@'@%°?æ@Ó?µÍ?Õ¤O@Äa@f?γ“?Î …?Á…?Ñ‚9@ »/@ ç?½…?µÅ??×?ã}°?¥ú^?cP?q?‹pÎ?šùl?¯il?±÷ @+YÐ@-Ø3@ *O@~@ú¿@ ’*?ª~>â„?Qa¿?¸?­—~?¨@%?£ð?KI ?@©X?ž¢?’ÿY?4>á|µ?€m?àâÀ?À8?dµà?|7H?`‹@?`|"?p g?ˆq]?Ù|V@'­@ sË?þ|À?ûM»@ wŒ@y7?†õ??‘Õ? +P¬>ß-m?–êP?½A?­²®?¡€°?¦nî?±¨?­› ?&+?<òæ?¿Ñî?ÅWÌ?ZE?z±|?fg?^j?4M'?ù?2”ë?­¼?ÀH$?Àu?¯w@%Þõ?—(ï?ƒ±{@ À@%*Õ?î+?¯÷ ?¶h3?±:?¨y×?®°T?œÛ>>ú݇>*I ?žK¥?×dª?µ"9?”.Þ?ežâ>ìTG?9¨û@ Õ¯?û“T@ 6}@#&@6/?ë9È?Èh\?©i/?”¦$?ƒol?ŒsM?]D?]ÚÍ?—³?‘–?mÝÕ?]~ ?úûv@PËÖ@:2?ÕÐ6?Ö¥?¤š„?žž|?×l?ÞR?¢«á|>«Ðë>+±È>|6Á?/>Éúû<â>óf?(x7?_:?›yZ?¶ªÅ?®0Ì?¾·ß?—Øq?_„Ù?‹hO?¹ï]?y…Ý>tV?‹;6?‡Þ=Vȯ=v™?Ÿ‡N?’EÌ?Â-Ò?á1?‘\?…Ì£+?)õà?k¹“?(í|>À>¿…;Õx>&¯®>¸‡->Œc>Zµn>C³™=“ñj>¡h>Y[ß<…=ÐZ>Cùí>Šk>>÷=~{¼?ž5S?ú?#°r>×64¼Ý=é4«?%]?fü?;›=Çný>çlO>ß?˜>ž*Ä>œ¼Ø?¦Ýå?­õ“? I>è%”?%Ç­??s?/’þ?{è?Oo¢?‰Ý£?€4Ü?KÃ?PWÉ?‚­‰?@ã>Œg>$>F¶q>3 +J>Èð÷>é·Ž>‹žž>2om>¦8>êø?²?/©´?D{V?wLÌ?w×/?•3Ô?“iK?@×i?A¢Þ?J~¢?FT×?…ëø?‰^è?ˆ,?†é>ºïé?†!?‡`?oj`?J(/?1§€>ëá_?ä.?nS?O}u:xµ >µ*>º‹º>šC>ˆ7&?4Â'?XTÖ?ÒˆÃ@8?ŠÏ>Î34>sV‘=Kíä>U +Ä>íA·?a?_U?MøÙ>õô›?L?³mI?±IÁ?n} ?màù?llÂ?j¹ã?u;;?{{c?!,É?G2?P5?|"?ƒ!k?ˆ–(?C&³>Ä£*?3ÞÔ?šIä?c)±>eÂt>­¥ü?8îb?@yé?eÒÛ?dƒC9 J˜?¢8?&ùR>¨¬>ˆµV?‡m?œ ?ªÍå?³ü?Ÿ?‰ëó>Ú½·?‰ù#@(°?½å?!œC?UÛ?¢1©?¨jj?´—¡?¹í±?Õÿ´?ÍIÙ?qm?j­ó>ñ+‚>ñ¨?bê\?gþ†? B>ùöK@œ@²?eò?Íš?•ññ?µo?Š«à?dY>ßö›>"æ? A?Y­ ?v¢7?ˆŒÏ?6 ¡>!*?/ú»?¶?¶?¶ Ü?¯q†?‰. +?ƒ¿µ?–äY?0Q?²­“?¨¯P>óXF>õ§²?ž×?¡v ?_’>ó­Æ?±º¯?Æì?¯A?ª¸š?Ü\7?êá^@@ Z_?°¨É?zoZ?yÜ?u!O?ž?´,?²æÙ?²À±?mõ“>ôÓ^?aõ?¬™â?–ÄÆ?u?0¸‘>Œ0b?m?uT€?†Ë?ª¿l? Ö>ˆv>Û1K?™t?™³?.h?ž +?Ý£q?×e?¢?¬£÷?°"?§?<ëY?F!?Tâ?E¼?bðÅ?j¸#?n(‹?qœÓ?±»R?¹?»:°?¾×Ë?E*?-y¬>MZ?ô­*@’Á?Ñsé?¾9u?‘š0³?ØXb@OÓ@! Y?äa?è?ë¥ë?™ù*>ø²ò?5ú ?xÈŠ?z81?~Ï.?>0?ƒœ?Nü?¥xÈ?1=?Oç?˜Ñ?Ö+A?ÂXø?¥Í?¤?¢1w?Žf‰?J¶W?Sy?u>I?ƒ +? àà?¾VE?ùÔC@8]@sC@ÁV@#á¹?þrò?"A?>&H?”y­?¨ÔD?ò#¢?ÖI¥?{ˆ?G?ö³?ÇlŸ?ñ?Vm?Å¥´?Ìï¹?ä“ ?ñCÈ@ bä?èH>þY?/ö5?–m²?±Š"?ÿî¬?õ„t?ך»?Ó˜·?àÓ¯?åÍZ?èÿ¯@[C@@ d@5B¡@üh¢?/É?a?jÆ:? æo?‚àž@(Ã$@".f@ŽH@K>@W/P@AV@£ô@ε?ën+?ôæ ?ûœ/?é¼?©û?£²×?{è ?rÅ?L>œ?d;õ?‰?ˆÁ‚?, U?Œà +@Ë]?ô¸{?ÙÌ?/œ>ý?š‡#@=@(´ã?åh\?ÕXã?½"?Á%Ð?Ìót? r‹>ï¡?Q©â?ÆO-?È/Ø?½2x?•å4>õ›ƒ?5Ö?¢­ï?èNg@;9õ@þ÷?˜æá?¢¹?¯GÙ?§¤·?‘¦Ø?Á‚¾@­v@%")@=ä@Hôœ@[êK@ ©0?„.E?›oõ?½>y?ŸR²?râô?ì¶?£õÞ?¹!?ÍÝt@Xk@E0@E?œ”ú?²ÂR?Ø@•¼@!à9@ ?Æ"ê?ïºk@ ¼Ä@º@³C@ Uk@Ú/@F?üŸù?‰Ë=»H€?u'?^w`?ÄR@¤›@!Üm@4ÓQ@$yà@ @†È@~R?ý]?¼ö“?ìÈä@lì@7çå@`r@É>åPÄ?€µù?ËO¼?Ѓ?ÞM.?÷’…@üj?¤eÄ?rÜ?€ºp?¼—?ê¶@ cÈ?ä2R?°#Ë?¢üV?¦_G?Îê~?åW¤@= @*~:?öV÷?Hñ@ ¬@IŽõ@«2?º×É?µj‚?«ÅR@'@.U@ø@+?@ ´ÿ@0q@ x?üÈ?ÝË,?¼ ÿ@vþ@=h@MbU@a@U?“RÊ?­)´?Î¥¥@ Ð@+¦ @ +}‡?Ô@ »y@%)\@²`@ái@ ,3?ú$?ð?ÕãE?Ľß?»Æª?Û>‘@ƒZ?õ²?Å] @!ã½@„‚Û@Xð@"½?Î0c?i?»®–@:"6@"d#?ù)-@ +’c@$6Þ@+Sa@K~/@`w!@Œ%@m Ÿ?·I?É +]?ù¤P@ )@D6@@þð@'lã@?Õ.w@­.@‘‡@ƒµÁ@¹@ã@ o@LÏ@—8@ o@wº5@x@|tÍ@y4t@5Ò›@8‘U@0ã@d¯@¬—Ž@«¾@Su¡@Pœl@w¯@u±@/#ä@(„?З¨?³†?­_}?§8^?÷0T@ +)º?«—/?„Ж?²„b?¿”ä@6{@9Ç„@3cS@)\z@Hœ@Z‚@‰A@žÄ°@q R@3ÖD@+?›tó?ÝK^@ +†!@?¨µ@‘Þ@‹_ƒ@tÚh@EU‡?¿:{?ëˆq@8¡—@?Ü^@QQk@Xaõ@r¨Q@P™l? Á/?¯4@)ð@&ÍÃ@JÛ›@Cì'?wEC?s‡U@§Ëà@²mí@÷y?õòn@D©í@P¾[@dÆS@hª@¬?ùîR@w@‚‹@@ +R@‰X@do?ðg[?¤{?й +@Ô™@ +/?ò@@ +_@:”=@H\Ã@rÖ¢@né@*î>@%Ÿ¥@&Ö@ ‚*@[Τ@c$6?¶EŒ?¶ô@…˜`@’Ëo@‡SÌ@†æÀ@wï¼@p =@ôz?¡í‰?d^?,ù=?m²°?“µ?Ë|Ë@,@Çÿ@I°ã@? ?+62?³÷Z?ȸÝ@ZȘ@NHÄ@$I¤@ ?0?û +W@éÆ@74½@>úm@!]?åY?WÀõ>U™ž?&Öý?uö?âdÞ@)”Q?è?Ü?êb?Yþ7?Î3e?Ǥ‰?-v.?ü!?H)?Û¯?Ò•ð?Èìó@=«Š@Møš?çôë?·½Ü?Ûwn?þ¤?òY¾?íÔ?ö“V?äœ?¿U™?(è?£eÁ?Ù?Õê~?pMr?t+¶?© ?¤—}?â?éô¢?©Ú?’¡ ?“ûí?šT¾?˜dî?Œf•?Ä4}@GV@E¹?¦š?¢‚?»§‘?ÀÕ?ÚÊP?ãÐç@ ¶G@ +Cœ?ݤÊ?ÇÝ8?Ëœó?ÜÎÆ@Ž @ K}?Ü3J????¹ +ï@}Y@å?’ÿ«?—§½?ÔÌQ?Ú¦,?•â?umà?³/? ç?Ø´9@&Ô?ôn?”`¯?ŸoÚ?Íâá?à .@%Ó@'p¾@Y§@dž?=5?CØ¥?…í?–M¯?¤ç?«gQ?£&2?—è?’Ð{?<ò^?¼!?¬B?±~¥?ÖåE?ÖF¿?ùù2@mK?±k§?cBõ?6Ö~>ã Ï?H¯Z?îd?âŽ.?ìºN?öêu?ªrÈ?®–\?®70?©¥µ?X Ý>âo?‚™M@Ï…@Qa?©<?¬®Ž@#Hb@ ?É7³?ÈÒ˜?Ó?ÉO¯?ÐO”?àÖ1?ª°=!Ž¼>(’‹? +±à?dk?“ ¹?ˆAƒ?¡²ì?ŸÁ%@,@ZÞ@!žµ?s2µ?xY? ?ûh?¬8?¢@E?q ¤?_;a?UÙµ?X¢?` í?icÄ?{Ø™?†t*?zÁ¥?û«€?êÍV?–;?g?‡ µ?c?/Ñï>Þ:Ž?3öË?ÆÐ?° ?Ìx?ݱ?¨X¤?žÿY?CjK>éï%?85«?ˆ^?­U–@ +xT@ +p @.@3ñ ?ûsÑ?ÝW˜@ ÿ­@U?Þï?7›ë?‰¯‰@/M@j?¸‹f?ž¨?Û)]?ßë?©:×?vôb?¬§Ï?ûc?ú¤@ +@ +@ Ðï@%¨?úr»?Üå?«?‚Ó.?‡¥-?du}?i4@Aí@Q  @ãd@ Y¬?zvö?%ÎÐ?“År?ÂP?­Ÿà?D‘l?)%?eñ%?]=@Ö@êª?ë(?Ǩ>?ÐØ\?òC?ã- +?¦:Â?«Ü]?Ù>œ?Ó?¹ØŽ?½­?†‹–?^"? 1?Á‹?³7?gáj?v½?@åÆ?4\I?ˆë^?_p?ðì@g)?½bP?_uü?„U­?šˆ +?™b?ºUº?ébR@SÅ’@m¼?”è‡?a ?Æn?’“>û” >ág—>á˜>á£?¡Á?wâ—”>˜7X>óöÛ?ß«?7þ?1e>×Jž>דé?)? O?h¡?W>qŸ>ɪÈ?^©r?h4Þ?“K\? ^t?6óÌ>î~'?G#õ?}Ä=?•[–??8Tá?Ù>ëJé=ÿ‰?=ò?ârÿ?›’>îo>§‹=%ãž=÷b¹=dͤ>%ç8?CÄ?È>9ùÓ=ØQ0=»Ù>¶Mœ>ßÖ>tSØ>L¼Ï=ÉEþ@K@²?Eš?e{§?®T>Å5$>¼uo:ód>Í<%>æ^ë?F;? nF?B [?fÔz?5ÁÊ>êÐ>äg>çJ£>Ù–«>ƒ)>‹??‹€ù?Šè·>ƾ>Ÿœ>žh>•Z?Cd?B(y?‰p?®vÀ?•Æ?eÿi?cA_?Dûb?P}ú?s¡´?k<ƒ>•ÍŠ>—°¼?<2Ð?F™°>ʹ>˜Jø>ÏE‘>éør?‹CO?Öõ?Äýì?¯\?„Ò>Î>kXÙ?hà?/¡Å?çØ©?ç#¡?ý[¦@$ú?äÉ?áp+?Áê>·â?Oœ ? êb?loÍ?®L?áö?|?oe?òX—?Ð}>’,Ê>G=²‡=«"…?™I?žTõ?h>ì  ?äÓ?««>LþÊ=;÷ë>‘[p>í 4>å`Ú>àoý>“éï<⢓>Œâ?l=Ç?™0ü@‚@A~@0[@,¦‹?¾>ûŸ?dÜ÷?nÉ>M™¤=ZPF?¦Jà?Ý04?2>B>&k&>ó/=Ä €>¼¤¤?0?6Wº?.‹Æ>þg¾>>»S‘?‹4£?Œ›?–¸F?ŽOº?>òØ?<Ë>ñpT>?¿=™?Ñ|Z?ºM0?³ìÂ?Îè¬?Þm/?b>¼Ûu?ÏÓ@'¥µ?çhi?præ?€AF?ˆæŒ?‹˜È?˜Ã?›?YDv?e²?Î}?pvÿ?3·?¸‚?7¼>ÿšõ?pÝ?qo³?q~?tŠ¯?oË_?kr +>‡I@> +»Ô?†#í?¬ÿ“?y‚Ù?ES¼?]^ì?r6B?+†?‰ßÞ?:†Ö>¤~?$tº?ž?‘§?’ˆ’?›ž»?±?¦Û°?s3?„ÓÍ?½C·?·>?Y¶•?TKâ?s^µ?vG_?f³a?]>·^g>½á?hàc?sÓ?ž–»?§½Ñ?6¯L? F?—Ãã?´/6?âøz?óéE?té¤?æ@>Œé‹>:ú?W«^?¤Ÿ³?‘ó9?‡ ¼?è1?tõs?“r’?¨ñ?¡ÉN?¡§œ?¼DK?æ!9?ÍP€:&>Á6 ?.þ?I œ?¡’b?Ž>›ê›>þÌ}@‡ç?ð +e=Í>w:~@ïó@AS?Ð? Z?RÝ>ÿF?rþÓ?xm@-þ@2ºM?0(€>öðW?G¯Í?J;?p?ã?†ÉÇ?€¨#?wFý?pR?£ÿ™?³Ù@?¹¡+?Ÿ1Ê?˜_ê?„>nÓ?†(>?°Ÿ?ï–w@c™?s¶‘>šZâ>>j=ü ?UaÚ? ¸?•2‚?pö?ÆÜ?‹c?AÃ>þn?>Š~?x¬+?¹aÈ?ðÁ?˜ú? _þ? ‚?³?8à?Z‰­?¿ÜÒ@C½?â¤t?“7?Æ@‘æ?ÿß?ûãA?¹µ?Iö?Ouc?G‹­?”Ë"?ä] @ùƒ@$ìN@&‚@-}m@ƒ?yö!?±@e?öFn?7?•à4?»ˆ??”Õ? D?Þ!@ ð;?èº?ˆGO?™K²?»àÆ?åNè@ï@’?ÈÜ°?¶Q·?¡ºw?Ëv.@¿‹@Äò@Ë?ÿ?c+´?§œõ@Z˜@(Ú?Ç’¥?¼˜?Š×™?j™?Ï2{?Ôul?ð0Ž@ÅV@]‚\@OÑ;ü’ð>"ÆP?‚ê?EÒl?ªçõ?•™Œ?cÿh?ƒŠd?Ÿ<~?¼î@Vm@úW@C†!@ éj? ;?7è?ž€Ú?Œvd?2{Å?6T´?O3Ü?yev?ª—>?ºÜH?ßW±?ß1Ý?Ñg§?× a?ï9?Ð >?‚@?“ ø?»œ½?ø=Ë@=Ý@o•?Åß½?Ä9>?½ s?ÍÎä?ë ?Õi?§wL?Ìj¹@ +¾?ÔÊ­?sß”?|Ƥ?|,Z?’þŸ?°¤,?¯ÈV?¼ëL?ˆ†0>¸”?5§+?—…c?¬¬S?ÚFª?Ÿnï>ü=%?Ùã @\I@®•?a@àV@fzí@(±?½+í?òO1@0@ò?Óø=?㨠?ü7Z@ íº@&ˆ1@a>?ÞDë?ú¿˜@ +Ý"@D@ƒA@Ô"?¤6?Ù@N@6çÔ@/ÝH@%…7?üáœ?¶ +l?ùœ–@tö?׫¾?kk?• ûZÖ?rU¢?¬6%?ýnr@Ç@›:?×Ba?ôÙ>@žž?Ïß?v}É?ŒÈ?œ’@% à@p“w@]*@FøF@F;?‚£9@"ÙÙ@t?¼@ÖF?…Œy?º»¥?ðê@¦@ ¥“?øý?˼?Ž1 ?6?œA?æ0?¦>?,àÂ@¯ž@g\È@=v@ +‹¾@i·@h@B¶@‰ul@m^Ã@9øy@[]?‰˜?¸8ú?î8@Ö@KÝÊ@ ’ó?»Ä?¬_1?‹W]?·¶í@?Â@EÞ?ù¤@6@TÏ@B!@ %@Ú? ¹?¬¯?|y|?Áª^@8(@E“@p‰F@f/Š@KÂ@%/Ÿ?"u{?¯úÊ@‹˜û@Æn@“Ëç@‚*´?Þ-Â?ìI¼@ÛÂ@!ø@b€3@gx@yù@{úq?÷d?ùQø@Šì@–@« ~@¬œÜ@i×@‰eã@1@!c0@n"@kô&?ôg?ÛíÊ?¶œA?¸á ?ȯ–?lj?²g+?°j(@ ¢,@Ç @ƒ¼@–ñ,@o1P@RŒy@XêV@^Œà@JWM@FO@n?ïà.?´Ý +?u-C@>ÿ@V_@Rlf@<:@H^@ie2@Xr­@5Ó³@$€x?üi}@ŠL@ +“@¾}@C˜#@Bü”@0æ@mS@Še@(—@Žù„@ŒÓ¸?ï¼Î?×Õv@ƒnæ@Œ~‚@><¼@6(Œ@õa@Îý@ +¨ò@[ð@¾¾@¤k?ÑÊÎ?®ž?È7¥?×3©?â×™?ò±'@®4@ +_ò?é‹Ç?¯®µ?á;@Ѽ@1dp@jd°@Ork@&@º)@!‚ú@@N?ðìu?ïrâ?åfé?ðyä? a>Êš:@k£‚@z¤]@'X@¼@ù©@"9?ÛëS?¤?‡ÛM?[¿?aJÒ?jìK?¢¬D?ëÚ^@· @@‹@8Â?yɾ?µdP@O:Z@?éñ@_@Ìâ?ã¹?ï‹Œ?•\z?“Bb@¦º@!³c?ŠVß? ?¤ðO?Ç™@HÝ@1®†?óK‚?”-$?Ã?é?êŒd@¾D?æ†\?±WÊ?«l?lB¢?m'—@5»ð@3û–@¨¤@(ä?Ÿù?}.?¡ó1?°‰?ŽU:?k+î/?ÕBò@*Ò?äÀ?©?šO@1çµ@Ø)?fæ³?fÃQ?­š?™cï@ÉÄ@^"@÷"@ý)?Ü®?µ•?É7?Ë€?±“ä??Ã?šÜ@£Ò@t0?¯¤€?°¢Ã?tym?ElH?k_¹?ˆ÷>?Ûü?Õ'™?Á(p?Ûn|@ ů@h¨?þ2ö@¶¢?ôßž?ݯ»?ÞÆM?Ì`?¾f?ÙuÜ?ÃæÓ?Ý›ˆ?à,=@ "º@«ð@J&@ ya@×î?Ôç?ί:?Ôw™?¾[:?Âî!?È£§?œ~?†Ø–?3£>çI?¦ŸÏ@t#@ }0?ð|Þ?æR¶@ e¬@ìÌ?„oX?#˜ç?ÆF÷@ +h?퀖?¼ÙÄ?Åc¥@ +ÄN@ q?2jõ?=¿;?¦"î?vú?ak%?U‘P?¡1ò?æsD?ÖAl?Ü#?çK?â9C?óŒ?ãÄ©?ÝE¸?StŒ>á, ?0Í*?3\?o±ó@ +-J@ +$Í?"Cw?Zd?âEä@"?Ëåp?•à¦?Ö‰@%¦b@ä?Õ,@?ìï_@â@ +#ø?ì5>?ÜÕ?ÜŸþ?Î]£?âR +@@ , ?µu¢?©¡Ý@6@9úV?ÁM—?V›þ?×õ?¥¾¤?»\?èyå?áÝò?Ü?Õ$„@ Zf@k ?î +?ß>ú?½Ê“?—´Œ?£yØ?ª[Â?¬.¬?ݬ’?ݽ?Šßï?‰7?—’??´4?X(=ŠS;>ä»Ù?¡Š5?›OS?•?ŽÕd>çdx>Þåö?gA>÷ù ?5Œ²?_`?¯ ñ?÷‰?ÄtÚ?%û?ñ¡?Cöà?PóA?Öâð?Ü8ð?€ÆÉ?Bá°?ƒœ6?E%?+¶X>¤/)??•>?Ý-?ȹ?qÐ? ¦?å{?(&®?3HÙ?óÚ?ø·$@'Ãæ?¬W´>ävE?©©?<‘ç?~¬I?º2G?Ÿj—?ŒïÖ?¡cë?¬9%?¥ N>²g>—är>Ðûý?¾¹? ï§?<8Y?a¿a?h^b?$Š¦?Ö–?M_A?Š{û?H,˜>”<¢>úPü?b®1?A)M?;Ð?$›¡>íþî>Ì,>Q>>Q,Y>¾{X>§ó6;b5= <>Ô³ó–>ËzÛ=@„±;^§8>H½:?P?¹?-]=Óû@"ø,@%?º¿~?…z/<€ª;dà>À!>À¡K?/Ÿ¼?<5¨?:$˜?8#v?•?Á?› +ù?Dê¨?Cã ?JW?Cõ1?Ý?±¬>0º>:<7:>o«ð>£¤“?I<?‹<ë?F1>¿wv?ŠYË?²6@zx@KÌ>ÏÚ>È?…½›?Š&`>•æR>£’>õˆh?€?K2Æ?raš?JÞ›?á? +*>êsë?u¹?†q—?š@´@ ¼³? ñ? bj?#Ù„?4>ô„µ>ëSÍ?Hzn?k{u?kÌ?k¢{?^¡÷?S^×?:Ì? “?2’?’t?…pÝ>ì= +>ìP`>ì^>ìµV?®Y?`ã?Tcà?b]?Q÷>ìå\>ìôË>í*>i$=Áö>ä’â?mP-?F¢81À>_?w]?2d³?ºš?±C¿>íÝ®>öq?à• ?àTÝ?¡£?˜Þ?Šã-?‹äu?Ù9?íD?ÁÙ?6ŒŽ?BȈ?Në¬?\)X?nß²?ªÕ£??Ê^?g ?ŠNB?ƒwè?†H)?ohä?r™?vçE?rrÔ?“?—=ñ?˜aý?™†B?}°Ý?oþE?)ÖÇ?Ž=?„²¬? ˜‚? ?Ø?šÁ\?®­b?ÃOU?9â?\ ?,2>ðÌ£?4ZF?¥j ?Œõ¬->úd>ÿc?\`={$Ú>'U`>r­¼?‰ÉÙ?¨³l?§_+?¦Ì?À~?Í¡Á?rÉb>òhØ>Ïx>¿}ù?Þm?.æ&?€ ?·„ü?ªnw?•ª¢?«£ß?ÞÆÃ?Ééz?ŸûÔ?—ž+?LY3?iµô?âéˆ?Ú̽>XÛ>B{•?\d?a¦ +??ý§?¦þP?´O?"ÈÛ>õV?Ÿ=©?¸Ð£>À‰ = ?5?U»?sxÃ?…R?Bo2?·ª?›Ì«?Ò( ?âs‹?õ?°‚n?Y»?–O®?˾×?Åy?·Gk?£ï÷×?œä ?¥ßæ?’¡«?’©?”n¢?–2¸?MÀ>ðr?.šó?4œj?“»?­T@ÃW@9?¹,ì?Ô°?osw?Qâæ?ÏI@– ?û…i?ñ@O@ý›?Â5?ys3?.ÐI?ð?Šoº?ÀD0?óa@¾>?™ýÎ>øáÑ? ø”?Ë?ƒºÏ?¹rX?²³Ü?¢ç=?´Á?Ï”Ð?Õ³?Ú­ú?ËÓ×?£ùŸ?tJ…?, Û?[†Æ?“PÛ?ÿÑÇ@Ce›@+GÚ@ l?ÒÅþ?yá?R—?Bj?ë †@wcd@=hß?»•?jõE=š4?ä?ÌëÔ?‹«9>F\&?PLÏ?ê;m?Êýv?¢¡¸?ÁØ ?ë‘[?ÐÓ??˜ø³?Æ*L@ T@î@ Ä?Ç\><@l¼?¼´ñ?¦ì?{¥w?{¬C?{°?_Ý´?'àÐ?B÷Ï?{Ã?ˆÔw?—Ú#?Ы@f˜?õ-‚?{à$?¬ +t?û W?´ä4?°Ã?=õ@ûâ?ÂÉy?&bÏ?.–Ý?6Êv?ùÜ?üÞ@­¥@R¥@/È@*ÓÂ@N?Ÿúf?«?|»?S’?Ìh?‘¤->ü ;>Ì9>z6Þ?rP ?ð·1?‘°9>-[®>Ÿx?ç?—W?üíí?àå?¸å0?ä€p@£?ó¥œ?½§?Òòc?ðQ}?ù“?ü)ù?Ô?±wW?•æ?v.@?Ÿ.î?½7?ð‹¯@k@-®w@H«@ðö?|‰?Ûós@ûn@1ª@KÌÙ?ò'z?")õ?Gé+?€ÔÓ?™ü?{ûÈ@@%@H®£@ÝK?Ù¶a?ã’9?Ü^–?•Dƒ?Lý?Øï@åª?ÿI‰?á¦ã?µ~%?§?ö©W@1|#@à)?ëG@&•@J@ë@@¬ @9 ½@<ùk@=÷?¾&e?"•?°­„?ðh”@Ö\@S?ЊU?Œ©±?•ce?”ò>?Î8I?ðiv?Ãr¶?´0„?ã÷@UV?Žï£>û h?®ËQ?úÿÅ?úõ¿?úíî@s@*•@oV@“w,@£ê§@¬@‡@]“â@B;Ì@(æÇ?Û±"?‹Êf@U¥@3ûŸ?ù$´?®vU?™üË?€D˜?¬¯þ?É-ä•x?mê¹?«I;? {?ñe?Ók–>öm@>õò#?|?’ù?Ž ?–?µPt?«+P?æ[=@*-?Δä?¢A?‹IÕ>ïú?GÖ±?Ø¢H?Ób?¬ïï?©®†?æ´}?öÛ·?Øt?Í&5?Øô²?áZ?Æÿÿ?€ëj?ù?¼$-?±€@+ŸÛ@@Mž@ z?àá¢?Áé?§‘?Ì«u@…¥@èj?ò­?ø?Ç¡Ì?Êð@@€?“l<í?‡~@Kó@`ä@ðŒ@ʵ?hÔ¬?~À–?ýyN@…ï?À²?¦A¯?•î?™k?´Iü?Ò=f?ÜF0?Ç®ù?Í/…?¶SË?Æ.±?·u4?«³F?ÆîÊ?Þl?ëj}@ +º@P»>ÝØG>ÝÊì@@5–@ru;@@˜?Ÿi€?ˆ#?€[?ŸË?¿ª +?¹‹?˜Ñ}?‡s!?ÉÉm?Ý.?è,ã?ד”?­o´?û?£þñ@ +"@ +_?žù9?£|´?ÒŠ?ã¯È?Áá@?¥¢?¶Û?íç¾?ñÝq?!ߪ? + k?eÕØ?iù?€#³?Š‘Y?Æ|H?öÔ5@‡ê@ ÷™@š°@yî@ »„@T@W´Û@<7Q@$øÕ?÷†Õ?ºg!?ÆÙ|?ú¸¤@—?¦ý?¬¿Ç?äù&?ðdW?¨Šx?Ž-—?™º?ïÆ?¬û'@ ô6@•?°žÒ?¶â”?iè?]Ç´?¿«[?Ýõ½?¥ºH?aT÷?¥Ö@±o?ì_»?¦á±?¦õ?¼B?nEä?[»s?_ ³?æÎ>ùR_?y/ü?Î5T?Ę%?‡Ê’?ƒ8Y?tî ?( +P?¡Mf?­šh>ðÿG>©Q? ÷Ì?xu…?.[=Äæ›>¡þ +?d;r?]Ëî>â^Ã>â‘V>âÉž>âû¾?íf?ýÿ?Ûí?á@™?@$ú=  >ö±„?dâ?”‡?à¥?¿Ðµ=íKi>PX?l2ñ?v«¸>þ>8E>^>+»˜=ëäÒ=€¿?)ñ3?iX ?\8q?J˜?}*>êÊ ?œ?LÁÇ?8i>û­«>š§=Ž®,=ýPÒ>6.A>–Ý#>îȈ>±ÉÖ=Ü0š>é0D>Ωì>³«>wŽ¯=u¼å>¯åå>Ì‚f>é&>¿0>»?(Pu?]å=0n=®+Ï<Я[=±&š@ t!@€V?xÌï?4 +h=òû>Šœ>¬K=Xê=oyá=ÿ f> L=¥VÍ=šPY>¦o >æÉ]?w‡1?¸Án?Óó? s.?9!?›=?‘Ä´?Œ?r”m®¾>©ï/>`ìS=ÿkL>©:K?Þï?bâ¨?È2?±(Ò?¬h?Å›>§Ï>§)f>èoÝ>é¬0?9F"?I T>¨2>°‘>ÜÂ?*eÎ?²>ê`[?<{ ? ªL?’ád?M!÷?Mº??NWD?Nþ ?O¨q?P]‡>þÒŽ>ëD•?{«—?§š?h³?U3ð?,p? +Šã?#L‹?F$œ?›>†ì>g_T?? ÕÙ?)=ä?,U?¬3?¬¼ï?¦?8'>ùv´>õ­a>÷ð_>ô:ë?‰B‘?±ÖM?Âã?m>l>þô|>.¼ò>íˆ?@†?vÌ?u93?azš?Nn”>z +:>‘µÿ?±Üf?²_>\>BD@@+Öë?²áÞ?nŠ >ü\>[>•¸>œÈ|?h}/?;ä?°œW?o?w¹S?€)ä?ƒŒ·?—Ëä?¤WÜ?ï©?çu¢?“³{?“"½?Äúá?ÁÒ??’Ó™?ŽcÁ>¨Eð>!Oj?HÈ?Lp:?¡Ë?Á©H?Î5/?Öµ?ŸÎJ?Zúµ?/ýa>ð¶? …Q?¬?7°?~¼#?ZÙ|>ñ«>ñ+4>ñ»¢?N?l[1?i͉?g=ß?dÉh?6?š¾?ñ ?ós?”È?‡q]?ñí­@q@ -»@ b??‰Ú>òP“? {÷? -–?"Wp?9Ç|?¢cÄ?ò´¡?Ù¡Ü?¶ ?ш@Ü?æþÅ?sY?KÒ>«ÉÚ?Yg?Åg?½Ëe?‘œH?ˆS€? ³? ÞX?s®ì?sÇý?sÙ3?sä´?²¥¶?¶Œb?¶Ã?·~>q ô?@žI?th?)­ô¦‘?—ò?Ê}?³g?¦¬@?Zh£>õ,?_vÎ?›Jú?Ví+>þ›·?’¨?õbF?’z¦>d?&¾Ó?9ÓE?Tá ?=¤¦>õá?R¨œ?ì0 +?âN ?¸”ù?Ã-?ó“?â!*?v?i£*?®ú?&©â?T?^?¹e?¹ O?¬Èô?ª’À?X™ƒ?Sæ?Œ¬ë?‡ +?¢™¤? ïA?ÀBŒ?¿e°>Äl>s1â?*Ž?A°õ?^k?Y}M?î@Òa?¬ç,?™¬?ÌV"?Þ@ ?`\ù?¢Y?š" ?ºÀ?J‰„?z3?¾B?÷ö1?v)g>øuY?T'?ƒt‡?²;?ÐÉ?– ?[îù? Î>øן?­–}?ö +?Ž ¬?5?…>èNˆ?@ÚF?y;é?¦ÜT?Ú}·?½vÂ?’ð8?‘(?ˆ7?ÿž®@Df@.2¹@Ù?ð?“?£"*?»_>?Õgƒ?ù ?Þ^H?»?Ï&{?áRš?´úZ?‡ Y?¥‰Ä?Ã<?Á­×?ÍD ?·[V?‘å?~T‰?aÝ¡?q`G?z…Š?¢éµ?ÜÅE?ÓB?Ƥˆ?S?)¸F?„ ?¿ +Ð?ß­„@*@'¨Ö@FP²?öGy?@?à?ø.´?ú$Š?û«\@ B®@ƈ@'€7@1?ôXÎ?+h?aÇÉ?ŽVF?ÿ6 @[ï˜@2¬ª?ä!ƒ?ñ<1@é??ä°¶?¼¢‘?£n†?{ˆö?h?ÄÝá?¬õï?‘Ö?„Ä?…‹?´/ú?ð@*r@VŒ?èÙ1?t»?—‘?¼É†?Ö;»?ò0?ÚZ9?Ä/?ŠºF>ûáØ>ûå¸>ûè–?~Óð?Ð…h@‘@y@y@zÎ?þŠƒ?½ñ ?¢Gw?|6?­Å€?ØÞ¤?¨?m=¯?mÎñ?| h?µO°?å©w?Å¡A?±*)?—Bd?x£Ñ?{ã=?€„C?ý¥s@4Ð"?¹Ýß>œ).?>³?Œ/?ÀoS?é½@ôÉ@:š|@Þ?ê5•?Ó¶¹?½íG?—ðW?†A°?ŸÞþ?¶ö²?ùGž@.Ã?ÐË7?Œ>H?îý!@–ª?¾2O?q©@;S@Œ;@=h‹?÷…?­"¢?{ã8?Ú~¬@¦Ž?Çý?ŽÅ?Ü÷?@ù?Ï×U?¤" ?ÙŠv?û¼~?­N,?r^G?ß®/@‘?Ìõ?ŽŸ?¨P@?¼¯Ú?Üc¥?ðÞÙ@ÏN@+@? Æ@ZN@ ^Í?¸e?¼ÁU?ÃO ?Ť"?ÈU?™ U?{B‘?¥ò?¼c@~C@õõ?ÅMÑ?~u?|„l?…¨?4c¤>ú÷î?öG×@)aí@ ]"?úØs?¸Nº?Œä-?Sö2?q@w f@»À4@f=@Š@LOå@!øV@]ÄŒ@y°Ý@Uù¥@F1@@0(?¡Âù?Ä@Ö·d@—œ@¤>@F/›@24í@@ÖI@D{$@.•?݈@L@8/å@×e?ªOW?Û¦o@+À@|ž@À7‰@L'?·q?Ñ2?óµb?Í£"?©"?¾X?íð.@V&@"Ÿé@79@~/¡@[~®?Ëiè?ÐÞÖ@cz@å @zŸ?ûÅ•?›{Õ?ŠJ?´ø?º)@am@iýa@q?âÜq@Ãv@¼F@pb@ `@MŠ@yØ~@_·«@Kg@ZG@hSš@Xã–@M¾;@EÓ@1Ü[@(¾*@!IR@ÖA@“%@%Ún@(+y@|£?´‘é?¸2?É¢[?¾ª@8œˆ@@Ò@L•@P@@Ë\@Ÿ@nÓ@|. @DÁþ@*ý@'q¸@|0?ÕX€?šI`?³“:?½B?±Fp?³(–?çÌ@.“@@•ä@f ¢@J8œ?ÊúS?Ï?žˆ†?š|â?Éæ>?Öí²?­Wð?³uÞ?̳à?ȯÝ?¶¿Ñ?±ñ—@#RO@R}ü?ôBk?9ú?Ž¿å?Åì?µt?‘ÿ_?¢¶?ÈB†?ÈO4?Íé¥?·êì@ +t@aš?ƒ?ƒ.'?ÀÙÂ?×lú?¬”ó? –ì?î+S@<:@×?Ù¤¨?¾Ð?¢Á ?¼*@1:@ L0?òH?ø¨Y?Ð^Š?Çwµ?8a?P{]?§ëò?ºŸ?Л]?ÚÍs?Ò‡j?¿S‰?Ìôå §?:cm?¬Ì?§­?‡Û?nïÊ<Ð$€>(Ù?rùè?’Š?(ä_>ä…c?Tù?•º?Þ ?|‘w?z€Õ?u°ë?~@n@1$?ý*ó?*˜Ì?ȧ@ e†@(*b@+­Œ@;%@ +bô?nI’?×?¥Ë²?™o;?‰ï?”2?S»©?`l™?­hX?ÑG¾?´wå?ˆx¦?Ž&C?©è«?ÙÂm@*È@ Ò?šÝf?¥Zw@D’@ 4?úò¢?éqn?«šg?a·º?QN!?Aˆ?s%?™î–?¤§V?¨RM?¨ +a?¤ÿþ?c½?ú*Z@%†°?ïèë?›ð†?¹ÝÉ?éuò?õÄ2?`š?R†@X@E´Å?¾M >ïÍù?X—#?™á*?£@?‡•û?ï?’¯rU<Ô¹°?Yã ?¦œ!?˜‚;?£?¡Z]?ÂlQ?Ë<€>ÝÅå>ݸž?LåC?^¹ ?¸(?Óû4?R„?3i»?P‘±?¯°f?¼ô%?þ@ÉW?¸gH?©,¦?Ñ:?ì­?ÑÀÊ?¥¹_?¯¦l?ág$?òä§?glj?]Î_?¤™?(=? >?²^?Ú?ð?*GÌ?›ˆS?¡x4@V; @M§?a³˜>‡ÁÄ?2ÊÞ?Žø?¦T ?³°k?²Å?Ö"“?Þ(@(ˆ¡@2²S?ñòÏ?è¢?æ–?ËÏ?±Gà?\áÁ?\úm?do?p¿À?Ô•ˆ?ÝÍ?ŽU|?](?ÑeN@»°?ö•?¨±?½Ý?úÙ?í¿¶?o\…?]µ ?¨Já?È(?ºØ?¦GÁ?©O?½#B?±>E?…?5}?Úùo?ïí?”²K?bs?ŒÒ"?”SÀ?H“}?ÉÝ?,0Š?R°Ð?”™_@;ý?@BY¼?„vÆ?pçö?6Õ‡? C?5Sw?1\‚? +»L?2t?Z"e2>VôN>…Êá?å,¬@œ?|–>ìÿh>c‹R>!‡R>Ó j?;Ú?n?A‘ä?eÛ«?J»¼=¾=±>KpÇ>™ƒ>}°Ö>ÝBÇ>çø)?I>ü‰>³e=±((?_‰Ì?œT^?E£>ê¸Ö?á?(þ?^ãÌ?°0¥?y…ö>¼Æå>¡~¿>†%ç>Ëß~?Fï?-~:q==²=¼Xð>by>‚¢Q>Ý¡:>˜%%=Ûˆ=>1c9h<±ÇP=àO>öÄ­>·×Ç=êÀÍ>Úg@>Ÿð^=’Ž*?ÕæŽ?¹æø?lJ>µÄä=ÝÛ?3©?¡©3?‰£>åÈ>ñ@ ?N +µ?K܆>ÚPü>ÇÇ]>àð>æ©]>(öL>ã½?g&a?ŸYŽ?ôsõ?×#7?OÙ×?Cw¬=ÇÕ =Ì9´>N >TI=ø¼˜=Ú¾Ó>ü#ñ?,W*?:ïy?L37??à?/˜?8d´?Kóà?1 + =ê{*>ê>é…Ù>éŸÜ?¤½?ÛÐ?)½G?.)±>“Éè=à–5>ÜHü?, ??E§i?j€?McÁ?E?VU>êÓý>äBÁ>»Ïî>¿ª? äN? A?°æ©?ÃÙ?F©?d©?0°|?I×Î>É=r#D>ãö2?lv?bÝ ?UÇØ?“É@[}?þ“?sB?vùÎ?³ªs?³ò?qÝ$?l]?¨A?±³ƒ?±Ã?±Îã?ë<îU0>†lH>àü>~{‘=O|?RÒ¿@ +÷4?Úª$?Ô±?ÛL?Gp˜?5.Ÿ>‡°s>–Aò?;Ä?6Ï?|ð¡?Š12?{{Ø?n„ƒ>þ¹>ή¼?O}?pzP?›ÙÉ?Mˆ™>Ê·Ý?Of?³bA?žÓÙ?m?|üC?é…?¨žr?³«ï?¼Ï@Ñ@:ž?Ÿõ0?Ÿ<Œ? +bR>ðÀ?é?Z%?N?É6??ûù?Yx_?;â>Ì7[?ñø?þB?Ž~&?ä#?ê9Z?ï,G?µ£¾>ñ +º>ñ&>ñ.™?:ö?èìb?Ë ¡=Ùš‡>5·Ç?‚7‚?ƒ4÷?X{Ï?dYA?ÏË'?ÑšA?Iþ?<¯à?Ç Ü?àס?S þ>òB±>ÖP×>Ù²N?‰ßé?¶mß?´Vs?»Q?­_ü?,Â?ƒåà?FÒÇ?9*Á¦?Ãð?Ërq?Û^U?ý²Æ?æ;“?s„Ü?s”™?s¥ù?sD«?q3¨?q`„>÷)>?ÌV?êéŠ?ïQr>T¨>ô;?&‰>þiÉ>ôrã?AzM?Qû?¡¬K?·†_?-º >½dÉ?¹?¤H+?˜¼?˜¨¡?ng?'Š"?–Oú?Ü›Á?–  ?žÕ>ÉP³>‘RW>ËÄ€?˜V?T.?Å?Yb.?¸m?²| ?©ºQ?¯’¤?µoô?œK>÷«ª>ücN>ö]¾? +j?ªÍG?“äi>z{«>æz°?èÛ9?ẩ?§Ñ–?¦"¬?¤u4?¢Æ¡?¹(?¹T?Ô&ê?Öׯ?DÖ1?5zã?2s?.Õ?° Í?¹ª@¨Ì@È?zü*?7~h?€óô?‡N>?[?Xž#?´Ì«?šÏ?‡rA?uE?Ùé?øFh@#ÍÐ@-Ç$?àF€?±Ã}?·-Þ?ºmñ?ÒÉ?Øþß?`Ç>øÄë?š¢?ÁÍÂ?‘R8?T¾o?IÒ«?>âº?€©›?˜»`?9^‰>Ãð6?HöQ?‘Zì?ÜHF@ + ?öU|?Þ¡?f"Œ> F?§ +@ =?óú³?½—Ã?5¥[<,?G?€Ã;?…›?Œ!Í? ó'?°6´?ÓqN?ú#Õ?Ûá:?»ªã?»³—?»·ô?¤ÞÖ?†¾Û? ?V?ª[Ð?»âq?Ÿ +¡?z•Ä?G?»ÄL@ +C@GÌ.@09@ +…Ö?êÖ;?¼!D?\c—=¬G?9 ’?ÀÁK?¼w?½NZ?‹·?% ?l¸×? ÷ûÍ9?žÖÿ?÷¼Å@ 8v@—¦@nÛ?îßœ?Î?³p—?½€M?¹j0?¦´Š?—‹„?ÛÆß@ Î@ €ÿ?ûöò?¸/Š?{öÀ@Ì»@FUv?Ý&"?IÄ?¦%>ü/?¨`?öø?ýÞ@Äà?±#?OÚo?eЩ?{ÿ¹?’K!?¥2A@=Þ@!Ü+@6Í@@CI@4?õ@,·¬@þƒ?õ¥@?«ŽE?€-_?ÉÌë?ûð>?ÔÆ¿?¼ñ7@@Íÿ@€Ûù?ñŠ?y=?ð?¼ì?æ„?ûÚC?ª‰Ç?{Óž?Ϲ’ø?Oè?|I@EÖ"@„øª@0Zá@?÷àë?ôGÒ@$¸@:{Q?ÒÀí?’¼}?î@?¨Úæ?^9?ÈAG@1Ê?ç­¦?ÕíÝ?ÈÓö?»§†?ã'8?ú $?µ ‰?•Óþ?Šag?yô@PÛ@Uä@"o?ás?ÿ®û@›¥?aum;à?žñ?yŠ?y|h?yn‹?øÄ@31@J«I@O @>ª@:Üž@7wÁ@<5@1ª2@!kR@=Žù@Y¾]@ÆÌ?HãL?ɯ‰@1¤ú@ciÙ@•’%@‚[@v˜Ù@p<@h=¬@Eñé@@Øõ@(e‹@ Ñs?Ê@Wi@yÐU@XÌÝ@ @@âå@%z¥@!ÔX@·œ@Ÿ¡@6>@GX @m{@„9…@¸aÖ@§-i@'7o@"y? |x?Š@=@ÝÇ@p a@r—@)>9@*µ´@a‹‹@hŦ?ï¼P?æ(p?_è?6hï@=+á@S{'@qî!@xòb@*?㣿@^S@ 6@'ïŒ@-*†@ÔZ?äç@ +tè@.T?ìøí?ÈCØ?ç&À@1—@)æm@E‘Ë@çA?Â×û@Ä@5)Ñ@N"?t5Š?ZËÁ?78ì?ͽ`@]õ™@]t{@n5 @m@>˜Ï@?ši@^j‹@Uc@ 3@4@T¾Ò@Tc`?ó;?ïVÓ@Ro@YŸ5@-À$@$1@v¹@™¢@Ê@‡}?áËA?Åü>@ ìí@&‚9@-6$@1i‘?ê£?s?´AÎ?ûI!@°È@Fß@Dà@@M³@2#@#ò-@/f?š†ˆ?¯‰@‹C@´?žú?¥–@ªÖ@?á@03¢@0òg@}ï>@†×e@0Yà@y¼@1wl@@È’@"÷a@¾n@ s@#° @[Õ?ºØa?[ù>ò@÷?M¯e?ÑL?þ×Þ@4wü@*e€@¤@ ‚è?í6@?Ý ?‚'³?_¡d?ýWˆ@°Œ?Ò™þ?³5@a;@"6?âøu?—4‡?Ÿ€O?±vM?³£n?°ÿX?Á%w@¢N@ áÏ@Ll•@NIò?†Êó?oö?@BL‹@=ð:?õ8q?Ü_,@•å@öH?Á6"?•’@?ô%æ@)qv@+@& ú@mm?ë6Ö?ë[?ê$m?Þ~i?NlC?hÜ?R˜ã?5{Ý?°iç?´®?­ßN?®ï @0˜@)À0?³Q=áqØ?GÄô?Ü æ?òu:@&ïp@©?Z?55Ý?ÏÂ_?ÈLj?†›¶?p3?ž)?­¤?Ýùç?ð)²?ÓTe?»ç_?Äõ”?â£I?ØJ?Õqh?×{½?¥Þ?©Ïs?à6?ݘy?Û6?Ø%?Œ˜?Pè¨?¿#>„›_?.ú)?º‡ù?Åí@ +~Š@ !ô>Ú°>Æ^z?ß^¢?énª?°þ^?’p`?ˆÇŸ?…ó?ZK?¡5Ø?ÐÒ@*ã@%íÁ@&Òô@$>?’'?y8I?á +N@ ƒ?ær€?·¾…?¼W?·%†?ª/A?©óf?¸e@ &@ÂÏ?@áZ?%v×?ZŽš?O¶s?Âæ¿@Ä??ÐmÎ?fǾ?mF?‡é?¤Äl?‘Aš?‹çr?öÔ@9ä@ûn@gK@ IS@ AÊ@ô¾@rG?Ú´?¦?)ο?¼@:?¸[m@€u@àœ@g?å.´?ó%±?î\Ñ?ò¹@5÷@¬K?ƒÐ£?|‰>?R8>iâ©?´¡È@Æh?»±€?~`§? ‡^?áßÒ?Ððà?úÞ“?Íí-?8ÿE>îÄÒ?ÆðY@ß¹@" @?Òg`?‡Ñ²?væác>ľ&?.Ç?]\2?Qqn?58]?D_3?”ø? †µ?¥Ôö÷ ?9þ?”W?ˆu‘?y!?b\t?­î¹?ÌâÒ?±!?-ñ?„D‹?zâ?‰Ðù?Æç?¼Êw>ãïá?é‹?PEw?‡g ?SoI?$RK?x +?¥•:?‘‚?W˜$?P2†>÷¢”?Ç?Ñ \?Ý??XY«?Õ“?Üg@6ž·@?¥ü…?©??ÆÌ[?ÓNô?ŽÍ?ƒ&Ø?f?Ú?]ÍN?ŒÃ ?¦~)?…Ì?(¥?)”°>eÄå>3`c?| ³?r=?Á€?Ýq?¸ì ?§W¦?8K¾>UXâ@‹³@ êq?Ú‹?Éàe? e>Á— ?‘ ‹?Íþ‹?ºU?‰=ò?"×G=ñÐÌ>Ÿ &>žÛ8>„ך>U’/>!O>û L>ÿˆ>æ¢>ãÄÞ?g?#]¾>Ôì>]oÑ>ˆû>­c·>¹GE?eÍz?c9?B¾?(€?9ðL?,ÁF>¡‹Œ>«A´?[ÈÃ?lav?ÞÅ>ÆzO?/š?¯q(?Yä>ê­k? ?G@í?0dð>ú6*?µ4>íÓ>íma>íÛ™?/ÚÇ?¢nÌ?{Í>™#t?œ‡?l“À>™‡>¯t¬?A~¸?8É$>Éqå>·@>(ðš?;oA?*Œ²?=?aŒ>•£Œ>²§9aÀ=¾ýD@q?úB?Ä×P?‚×ç?d¶g>î¼ø=ÿÓ>7Ñg>å—.>¿"P=}°=BA>ËÈ$>惒=ñ:ƒ>é“?E/™?2ä?†ò?%?“”?Éz>ç¶í>ê K?;¤ð?:ÝÆ?KÎ? :?r4??Š)F?N>·WÏ>‘é]>HƒK>”\>éô>Ú>¶eÁ>¶}(>¶§¥>¸Ç»?6u0?7ƒ®?„…À?ŠT¯?0±? I??ŠÂí?¯³Œ?‰¸P?S—V?^M0?j›~?FÇ®>êÃS>Ð +>S;>SÉe?kž?k,¦>& +s>:5?j ¦?„•M>–J·=R”ê>Áˆ:? ¤Z?Vj ?ˆæ?bÉ>œ¹E?¬ª/?µïâ?ë â?çRý>í©t>ìÁñ?ßøì?ëöj?‹‰Û?qs?œ}‚?¦Í¯?„N(?c T?[{¢?Rà&?@/¡?8TŽ?K{Ä?Z(&?‰8;?×H?¸?º>¹Šf>ªý,>mpû>²]?MY¤?KK?B¿?í3=ïnî?fí4?›ãò?ªr?³#e?j:Ÿ?ˆi?kïï;ø>í—4>Óÿ©? uû?³Ÿ–?Ê­)@ áK@p?G´?Jçá?ÌA?M1?-G?6…þ?i£ù?p5×?æ^>Éq¬>`O=êû?Zöà?ª–8?\ù>ð´ñ?i· +?´&;?͇?î ¬?Öô?®/1?ŸàÄ?„cÒ?mÑ>Ï`>Òò/?ú³?°?V +a?Up?ĸ2?Ç)¬>ËW>ŸÂš?>3w?V-?‚NŠ?}“>Ü"T>}¬?œŠÜ?Õ‚=?nnÉ? +3÷?hÅ?”G?ž»¤?¢Œk?FŒt>‹Ú&?ll?ˆî?u0??V=?”´Û@c?ö?h á?p=E?~J¿?f9X>óäÞ>Ý‹ ÚZ9>Î8½>ð·Q>ô9'>ôJ÷>ôW?büÄ?tuÜ?R +V?R„Æ>PD^“>ö? K ?r“™?¦¦7@™q@<‡?íÒC?ÆQ>Æ«ø?%]?ö™?í²A?¹`?¹Â?¹?µ^/?•*û?œ2?ÙÜÂ?×­(?µÑe?²cÇ?®ð‹?«9Ý?¢0m?¥$ @…O@ È¿?ݳØ?Ô‰Õ?š©?œ&P>C³?üL@_>ÂÏÀ9\åì>ÙAP? >,?¯üû?͈y?ê-F?îNÆ?ì‹ï?êÊÝ?Š½?côO?\ñ?NÑ^?2›?-{A?·RH?Ü¡€@å´@ +æœ? (? ¤?Ìj`?ØÁT?b Ô>ù2B?“?º÷S?¥¤?”°V?‘?Tš?¯?‚?ÄYÈ?ÜÇz?ö,{@Wš¤@‰1K@HSb@Rõ?¥ –?Ú‚?X†À?‰²Æ?r?`†?´ŒÉ?åÒÇ?ã÷Ö?âß?¸¹?™p?šï8?œÞ?žË‚? º@?Äœ‡?ÚAÜ?å>¾?þßù?¶eö?[hº?è "@0@ã@â?´' ?™HH?zË—?ú`ð@;Ñ—?úQ?ªY?··’?è!@íl@ šR@ º@Ðz?ÂêÕ?W ^?;¡¿?)‹¶?†~ ?Àpù?äd?ûD„?»mŸ?{Qù?º"?¼ƒù?À'æ?¼ÃQ?ÃYý?Íé@Q@Aþ«@{?à´Ž?ÑÏ?ƨ;?ߟX?ú .?ûSÕ?ø@„2@+Õ??ш»?9+#?¾f@]ó@Úì@åØ?Óš?­ÄÉ?æÃ@?”(>ûÌc?»x­@ r?Ó»2?¤§?©2?¦ 6?¶}¡?Ì9? Æâ?{ß?ŽùÁ?”—ú?ˆ¬?I?2>¡>ûð?O» ?…‘a?¬É[?Äûp?™¦•?{è?{éÿ?{å?™öE?¨ +@Ø¥@#»p@$»Õ@*6N@AÜ @KxÚ@,•@%Ú@Æ`?çl/?éŸa?ëÊð?ûÆ?÷*þ?Òãƒ?Ä.?Áè>?¿¬¼?¼ý?¼Öf?•mì?‡a›?¨Œj?³”õ@:U@`H¶@%(@Ÿ@ùÌ?û¢ý?áá?̓?è$ª?üGµ@7·@NÕ!@„û?ø•‰?¹’Z?Š›Ý?¾í?Õùë?‡i?kB6?­‰f?¿çG@OÝ“@z½ˆ@5ð"@Â@.¤Š@3C@˯@ÜÂ?÷:R?è<?åP?ÛN@@¨Ð@"¹Ì@1(T?Çþ?v²Ü?£bø?¿_Y@9ÖŒ@[f{@.h¥@­?åÏ?Ás?ìò?ûT@G@Z®?‘fš?/èE@!×T@KB?îêÈ?©9§?ü*$@ ˜?½t@?™¦m?ÛN;?ú–?¼³|?Ž&´?_‡v?TÌœ?ÈÊp?ðÁÌ@+I@N>@v’@ˆ¼@7r§?õ¨Ä?…¨í? !.?å®B@#ÿù@;@‡@"R`@?Ú@vß?êœ?²¡V?€?Ð_Q@^É@!Jb@>b@M˜Õ@Y‘Ä@*jË?ñ z?Þ¨‹?¿ýæ@½Û@<‚9@3C@&î‹@R‹?¤t@ì‡@zX~@6Uh?ˆaQ?æ@WÇÉ@/¼]? à?Ó(«@%³ü@)FJ@(ÉÞ@ñ>Çi? +œ¦?¾N?Ýü@?*$@-9[?:g#?pV!?Í^û?ä|f@mõB@cî@3Ýz@7jÚ@7Ò®@3´ê@Ü@i?Ëñ‰?Ç€?݃S?å=\@ÜS@xZ@«jê@µÃR@Ré?¸*Ã?Ë‹?Ö&?šõ?’³±?ÔûN?ï7•@$œ¹@4Q$?êœÊ?£ñË?§ëO?¥<ÿ@=Ø~@‰Žœ@u+l@W(Ž@8Ùñ@•@ õÛ?ߊc@µc@"Äx@П@(þÚ@< +–@U¡Â@G»o@7«Z@@@H|Î@H:w@ÒZ@-n@Q0Ô@SM@4e{@0áô?©uõ?µòº?â?"?ïÈ@A@ ô?æé?Ö²:?’,ô?qôy?´¶t?×mç@}@¶?ï¸u?µ&ª?ìþ]@v‹@#I@;ÏÖ@1Ú»@"ði@)+‰@&I»@ +…ñ?@,r?Y‡h?£,?¡ÒO?/ßi?y£@1;Ä@3³8?ÿxÒ?ÿC¸@eM@wG @"¤?ïp@ ®ÿ@‡ª@.\¶@D*I@‡Ç?ÅÚ\?æN?úmX?Û›£?±ÌÚ@/'@ºž6@£½(@f2¡@Tl\?ÖGÿ?ç^X@á@Õ]?ËÞÿ?Îjí?àð?åß‚?îNì?í9Õ@ +ƒ@?ÿ;È?Ý‹@$Ê3@U¸Z@/P–@Û¹@È`@ +,@ &?›±©?±×@-…æ@/¬˜?³½? +D?»«?Áq¥@.Ý@,y?ê–z?¦“ ?õ$? ¤?ÂÐã?êv?ý"ö@<@r¨@-¸@œ?¶Òe?©È?ÎÔ—?ËH•@—c@D?èSH?Ítv?³{G?­h°?«±>?†=?Äõ«@ õS@å@"SH@Wœ?è#Ä?çí<@K@²§?ÀÝ?¯©d?×±Y?âNõ?Í°ý?Ê_?¸B ?£4ø?Àj?ïx?ìÔü?»ìÿ?²k7?[€:?dU‹?Ý. ?æä?žÈ?“OÜ?9wV>å³}?8ïi?[^?™S\@ßš?í˜?®64?¯Lo?Õ­Ð?ÆØ™?ÈE +?Óc?Ê'*?ÉV?Ÿ­»?ˆNu?ˆ‰?rÍ/?ƒÊ|?­ ?À+m?øm@?ô¢ ?éS ?ˆïí?c&?ò¾j@»@$'@F\ä@"óß?©âº?©§!?¶g“?ËÎ?ȼÐ?¸=?ÈŽ/?Ô˜ÝÀ>Ý´?Á‘?Ô +A?ìm¼@ …@Î|?ýÀ?ä §?s@ö?gÐŒ?`Æ©?cÊ|?‡ó0?œZE?…Ÿ?\™?™ÿÿ?Ü–ô?ÛÎ?ØYc?ÛÙ¥?×­'?ÑÁ0?žÖÉ?›ÃÊ?™‡Ç?Ÿgë? ls?}Ü%?Œ ì@j?øNN?ld?D? +Nð>ù ?>*ì?ö.?iLá>ß/D?‰ ?I„ +?=F”?n“?‹z‡?H}·>í9Ë?d½©?ªØ6?¸4X?ÖH+?Å¡à?‚Ž?ˆIæ?qHŽ?ƒ‰e?…Š?pøv?"ÿ?´è?'?;‡è?$¢>ÞBÏ>Þ\­?ÌâK?»"X>‡Lº=¹QÀ?hZ?§H3?q/ó>ÛuS>¨{š>j×=>ekù?gå?j>å?€+z?ŒÙm>ðøo>g#?b!È?¨¾k?àÍ"@ìF?ê±5>)L¯?·?hi>„EG>žšq?aß{?ké?ds>ã«g?ÀN?Àá?'½Ì?#hZ?P%ð? ˜?š 0?e»Ý?ZH[? ™:?7O>ÍL¨?¤8=J??Žb?®'\?~B?Qus?­ŒJ?Ða¨?‡-'?8R>¨(=;"M>Ï- ?b×Ê?2áˆ>ìõ¸>í^h>íÌÜ?ët?9ç?lý>™þ?$çx?—:>I˜Ž>”Ú‹>òwq>Äî=2˜>Ž6ä>ÇU?Xš?%~?:?l]>›] >À¢ä=ª=Ê.?ù ?ô±?ÄÇþ?…"ƒ>å?|Å??«à?qÆ[>èÁ >ëcÄ>íè†>ÒIV=K=s®°>â R>æe>7ó†>’2=Úè)=ÏßI?:m?žØr?ß?wP?]ž?£? +ƒ–>Z}À>i| ?…æ„?‡Ÿù>ÆÈ>?µL>yWm?rS?>r$?q>¾@>nP=¬‚º=}/ª}@>z­'?Pˆ?j 8?˜É ?¥Èç?9.õ>Ä_?‰ï?XnŸ?2%á>ê¾B?Wé?Zè§?aó†?yÈë?vw?]à?^®™?ß™«?åîš?5_W>þhè?ˆ¸ ?¥lV@ ÷p@+>H?¤"a¢Ä?ê[?ç^?³Çi?´o;?¯¼?­žc>¨´;>Îc?‚i]?ªûù?‰…ˆ?moZ?dŠ?Y„N? ‘U>9ÇX?Hê;?íÒ?³{=îã>•G_?€›Í?ºR? @?ŸeÕ?‹Œ?ˆž?ft¿?[¦?Â;N?ÕÀ(?ˆ°K?c?¶î‡?Óü?ŠY?9œ°?Ëî>„¤?6+?©„?™º/?†g%?´z¨@@O@öÇ?@àn??P?o×0?o™¤>¨S>—~ ?L}®?[ˆQ>?WÐ= /?4‰ß?e:ñ?%;?ÿÖ?ž>üŠœ>OQ®;i½@>‡9‹?x+?mÑ?´ÉD?o¨î=óL?1"?Ò¯Q?¸Ä?WÅØ?IN˜?ºQ?¹c?Aw^?Mð?‹±1?ˆãÄ?Cð?@c?Q¿?”Íû?ðq>ò87?„«Ð?šH>ú6c>C9Ú?AÞz?ŠÔ?ïã…@?Ùàœ?‰;O?—#?©Tù?Àcó?ß+?Ôæé?½k9?•SÇ? ̆?e)œ?ñf ?×Ö?rÌ–?o7Ä?f+´?•¿^@E:‚@1”e=˜Ž >£?Î'±?ÈÔ>ú@>ôAÖ?î†!?ô?¸Ëñ?­‰B>Ü\>‰A`?GÝ?r*?“yó?›µ‹?„®2?tþ›?bAg?P˜0?d;ø?[6q?Ý÷â@Vu?â½æ?é¤?ˆÕN?u–?„É1?Š>å?™ƒ?´Á?„ë@>õîµ?Vç'?µ7?‘¯¶?0¤»?9)?7¢J?fž?þ@ï·@žè@ Ì?¸÷?Àðb?Þõ?ÍD?vÕ¾?‚=z?¸Û?¿ò;?Ûv^?Ú·b?Æår?ÅvF?Mø ?Q2o?†*?ŒJ5?ýãò@ò÷>Uï> W>R|a>+h>éù>÷Ù/?mR°?tâý=î"²= +¼D?Ô—g?ð?u?ö¦Ý?øE ?ÏC‡?Éa­?ÇÀ?ÀA=?©Z”?¤ ?­È9?ª£b?ɤ ?Ø7/@û‹@,-w?¡ó”?Fn¶@Ts@%,Í?©`?DG?µËw?×hÂ?íR¬?ùI??ÿI@@ZØ@ê?[»G:˜Ù·?}™é?ÌqB?ËA?ÈV?”úË?e?—|²?­G?… æ?V$Ú?õ)]@%ÔJ@‹Þ?Õ ê?¡ºž?z+ ?z5G?z?Þ?ÙÔ?°‚>?éøá@Ò?݉Å?¡Jý?`„*?¨´?®é[?ú•m?³Žg?z¥¬? £?ÿE?ÄGc?û [@@ÒA@o@ qt?Œ¹®?–¥? ?Ý;±@;´?ï„?ÔD›?­/ß?©‡?‰¾É?…Ñ?²  ?Û£á?–Üë?D2?q® ?,·?ñE\@ž@ +Ø?Ü?ëM®?ëC@@gÁ@A+@*=¤@³«?ð1„?¼Ô§@¿ @«ü@ O(@[Ÿ@' á@:… ?Ö­–?x,+?Ì3¤?û©‰?Õ/Î?µ:L?ÕÈ?óùž?†Ùv>ûºÁ?‘Úö?Îa'?ŸëI?{Â-?ÌêÈ?ûÈ?„G2>ûÉ­?^9×?ˆQæ?ïË–@(?è}Ý?¾ã?“ù?z !?Ë»ö?ñš@?¨eò?‡G½?¶Ü?{Õ„?Ï‹?ªø›@¿3@/ùz@R,@-’@ ™@ ü@”5@Ìi?pg¢>è•?‘£˜?¼ØP?Èð6?Ë¢@1Iä@W‹û@úU?û¼þ@r,?þÁã? ù?~ë(?}qÌ?{°6?¬8¢?¼¿Ú?ÆÍâ?×Ýe?²3u?¤Ñ+?È5÷?Ô±@Ãå@.b‘?ÊßE?žÛ×@AòT@bkÓ?¸ž»?R5È@7o@cdh@Âp@ Â?‡á?&?Ìb¼?÷¦@-Èœ@=³u@4”@•Ë?¶(Ø?¨Q @Z>@{£$@p˜@gý—@,ˆ$@Û@}ä?÷§~?ËS‡?¼$?ôV@kœ?5˜?G>å@,B–@Tñ@.žl@ ü‹@ +[€@ +K@+³¢@;¡é@ ’r@³g´@C,@â¯?Ž<?l¯½?Ï¥0?æa@'fô@;˜D?ÜŠþ?˜\?ô v@ +¶T@Fý8@\åš?ÊÚC?Aå@ ª@<Šø@ƒW@ü ?þ]z?ùŠq@N_Á@t×?@Wò‡@CpB@¶"@ ‚Ï?çÊ´?Í$@ œÚ@#EÐ?öù?¿-@?•’'?l%”?Ò× @?û@Ý'?ø° @iw@<·>@™ ?Ì^@ŠŽ@;6«@+le@R@ M@¸~?ݼË?«%@Ë@Ž@@Ø>?¹ÞK?Ïê?ù™4?í:V?Ä™G?Ïé2?÷|ë@ãj@Rž@I~°@2—“@-‘W@p›@_O?ýÝ6?æ‘v?d,§?† À?ö¾¬@@Xßõ@Q{l?ïf`?ú²@þ@!ÈÚ?ÉÛW?Ò¼@ B@?š¦¹?r#?µÕâ?¸TR@j„þ@}¼.@g5œ@[º°@`}?äÆc@DØr@Kuù@C¥Ç@;õà@7à2@<¯ð@c6?ôÅ@ìÿ@+ñÙ@_Ûn@„àÜ@…³û@ˆì@6œ?ÁºÒ@Ì[@C±Â@?Ã@@,Ü@.mï@ ¾ã@Æm@,iÕ@)ö?ù^D?ï&?äæ ?Þî?ó??ù´U@Ù @‚·?ù‚@:?Þ]ñ?ÖòÃ@-|@@*‡¿@#‚<@%D`?Ïó?µŠ‘@å@×—?²¿È?ÃÆ?ý.!@>1@K¹Ò@nKÙ@/³ƒ?ù£ó@vr@8@ŽÁ@¥é@Wò@%šæ@ºê?%*?,SÓ?pXr?‚`?á5¿?ç +?´pm?¹ê @^‚ï@\›h@Hø@·À@ \Š@ 3P@p@Òš@ » @ ‘?±B)?>.D?Ó“@.ÿ°@g‰?ìy?ð_n@˜½@*žê@DVé@A.Î@Ï@*:?˜•æ?œˆ ?¼ÇW?­ ¾?—'-?¡‡û@…²@­˜@&)&@-,d?ácü?˜—M?õ]æ@1Œª@Ö?¨h?ÃËë?Û Å?Ä´Ÿ?)%?%À?°&Û?¶Ò?ª‡Ó?¦#?Ö5c?Ø!×@ +L@Ýš?¶$ê?Ó ?†òî?j—´?¶ÐH?ù­?í1þ?ëÆN?Ø\?“ñ?³¶Ù@6@é?ŽN•?›™d?Ὺ?éO2@ü”@&ƽ?Êì?iï?ooL?x_ö?¯,þ?ùiâ?ð©O?ÜNë?ðÜD?þà8?ø2}? R˜?¤Ü°?àž¶?çˆ?U÷C?ü(?d>«?„N?Y5?'²?lS'?­ c?²ŒÀ?Í0Þ?ÊzÖ>òê•>粘@К@ TA?“ž¨?eÑ?º…h?ËÃ?ìjß@b"@€@+1I@)Öq?å¡R?Ü h?GG?‹‚?©:Ý?«a¥?”ô?’B¬?€˜T?L?†j?´é?¬¨?ªË>?«îÐ?·Q‡?¼Hû@>O&@9{,?ÿñ÷?Ï]¨@G­†@…:Ë@la@F4×@:™<@˜x@ Ù­?º£«?°5Ï?ÊSo?Úùù?Î@á?¾Ë“?kÃ=>ñj`?V¿¡?¡`Ô?”sÐ?‚Ós?ˆ·´?Œ +ó?†«W?ß&X?öVÂ@ oð@ ú²?×VÆ?¡(?ÖGB@@@5?Œ¾?’ù ?ßì¡?ßÛ{@CoÆ@^,?É ?í®?‰Á?Ìf5?¸“a?‰}‰?‚Éå?H¤.?'x¤@ È@ ̓?¤\–?Jm2>éz >)óx?$Ou?Þe?Üïn?ÒG)?×ÎJ?ªÓ½?ªâx?°Û?³Þç?Çî+?Ëz?³K\?•Ò?Œ(×?Žžƒ?oÁÄ?d +?í?•mÇ?” D?‹Ã£?‹÷˜?–ª*?¥×? ²Y? +ŸØ>Ýõ?›¼?±u"?Ï,?ÜÕ?ÜÓ7?ÜǨ?Ï U?¥ˆí?ªr-@#t†@£¬?aí>‘´Ÿ?R8?*[?Žù½?Ü`?ÓŽæ?¨uC?§9ô@pà@ò%?û}Ÿ?ãÿŽ?r[º>Üm>?g˜/?ÜwÒ?Â!©? )Í?<’Å?zéÃ?„-#?bãi?(}M?y>Õ>Ó?Z»¿?ˆË@!–·@F@? ƒ>ÜÖ×?¤ì?Ñ'?òŠ‹@ ”?ÌiÊ?* ?O[E?]J ?]Vô?nƒ? H³?¦7Ë?×Þs?ØÊJ?Æ©_?~¡r>¢hP>Ó¿>Þ'>ÞH@hÆ@!^Û?U8;>Æðé?uAÏ?§6Q?ÐB?_9’?_Y?_‚?xÓ?ß-c?ÖÒ?ʯ?½`??'ª…>àŽ>?dÅ?›Ï?>ú<Äã¡>¥`S?9¶v?~_? +T1?0¿>£oñ>^P ?Š¿?§Õ7?.f`>ã›Ê>„W>3΋?!¸w?‡©&?p²?Tßó?aéa?eªæ?XY>æ8d>å#E>gæ>1¥,>kY > ß!?‘~6?®O™?@Èý? ?„Ó²?®>-?…­×?J ­?,ÇÚ>ö?)§?l-n>dã>Ž ->¨¶À>t =–àC<’zÄ=æ7‰>? Ý>oU>÷>ònp>ÊŽ¦=-Ø98J=•½v>¡Ž>…‰Ú>RÓ¶=îáê=–Hì>9”=lÇ=®–Y?»;¨?œèÌ=†Ô>ñY>ÀȽ?`ôù?¡á>èØ?2Šz?eGp?enˆ?e•c?d±‹?a ?U>æ!†>æ?t? R•?¥‡? Ò?oØÜ?$î³>ü<‘?\²?›xd?ŸøZ?§?¢íM?˜\¸?œwü?Ɇ6?Èáë>Yô=‚¡X?xøa?•ç? {P>ŠO0=ÖÜ'>PN¾>é#?>«•=Rˆ>^ž>Æ|á>íñÄ?¯H?¯Zñ?ˆN?…ˆ?QÍa?JQý>¤ o=òÂ>Úµû? #Í? é>ꪊ>êÃ>êØ?(W?Ÿâl?“8^>þA"?U;?¬tï?¬ëÞ?m3Ñ?e÷á>#¥?' ?ióÃ>¸úå:‹(q?4/T?±o?5¨>ëÌ?;>}?¬Ü?¬£¼?´*:?´ž¼?±ŽQ?¯Þv? Ú?l?—,Þ?›­·?¬œw?±îQ?‡V3?m`Ë?mon?m‚‡?!¦ >·ÞK? wÑ?QT/?L‘œ?*áÃ?@~?‰~¢?ƒ¥?H²?aäÀ?Ø?y?ÕæO?WFÂ?Z›?† m?‹è?:W>î¿ô?§ùq?ÓŠ?<Ûn>X5>>P›>Gèè?8ù¾?ª…Q?€TC>ïbZ?DáÕ?·“.?ºaÿ z?˜Št?±ƒ†@¦µ@]ã?ÜBJ?¯U\?­kà?¬'P?¯=’?´¹D?’Ü·?KÄ›?…«?ÀÒô?œcê?À"?(" ?O ?ñ’t?Q«?µD‘?²Ú?qÓ?r¿à?™\æ?˜¥?<ÎG?1¨?¤á?¬'ö? iø>òe ?|Ðè?ŒÊ?‹j?“ø?–ãþ?™Ôs?ˆÂV?rà9?heE?bo»?«Ý€?íÆ{?×”Â?¶pñ? X$?s_F?)w#<þO¨>/ðÈ?Ü÷?*°€?¢Kt? Ïž?G.è?Us2?Å>H?ÁžH?QT3?Y £@,·@, ù?Ñ¢Ó?Ð|?˜->ô…Z?2a?5YU?i&ó?tÃh?L_Ô?F¤T?“[Ì?£Øú?æ„@Ü6@|¤?üðí@û@f³?ÜS ?–n?â×x@.Ð?­Æ¡>ô`™>õÂ{>õÓn?ÅÜ@1–@®ù?ÝHÈ?Ä?¡YW?°2z?ÖÁŠ?÷é@ýz@¡?‘˜?ŽE!?‰C?œ€˜?½8]?²òÆ?˜êê?§«^?íL§?äÐ?¿Jµ?©?~>÷(ç>æÂ=úI>¶?ï¼?Å‘?f<¸?pZM?íYÙ?îòO?7>ø@>ùâå?kl?â1?àªt>žmH>–bë>³¢>ÏÕë?2N¶?>|?™ô™?¤”þ?¸¯†?ºRü@p¬@ ™?‘·??xÀ=?ÍÈr?ä¥4?Š†Ý?[ƒÙ?·)·?Ъ2?²h ?ªHA?Ýå§?÷lt?óCf?ðø@ c@`Ò@ü½@I@1³?÷?kïâ? ðß?è>;@öC?Ô§$?¯zl?ØM•?ê4Ž?Ÿ‰Â?yÕF?Ж)@Xá?ŠIù?!?0?†Ù®?œÜx?‡Bw?z 1?ÞØ»@ :?Ï ?¦h@ +Ò@&¶?ëa‡?°^ö?Õ7?ñ‡?­ÓÊ?‚\?¥¤(?»ó(?»úg?½8m@Üê@A%¾@`Ó?³a?±#0?¯4²?¡ØÌ?Ÿ"?£°?¦ù.?ÎÆž?âJ@¢@TÜ?ô£È?Ú€4?¿Ï>?§µ+?“€?™ï?Ø@ +·w?¸u?{C–@%×@a +!?»KÁ>Iºú?1vÝ?ò½?õ”ò@¥ ?rT§>1-?ô`Ø@4«@ °Ó?îÔf@U¯@Ã?é`Ø?Ñ`Ú@0¼@Ô[?Æ.z?šº?Z—>„2(?¦|S?ÙIè?–·?{ªp?¸€¶?ØÐn?›[¯?gíb?«¾?ÅÚ??µk–?³¡?äñ¯?û¾@…•@ %@X@nÞ.@ý«?æ]è?š ”?{¼ß?íé¬@ +4@TwS@oü«@;ׇ@$§ô?Ù}I?¿i?‘’Ñ?{¸_?-o ?Õ¦?Ù0@ðH?ïU†?îGÿ?œ—×?jÐ?ÔC?÷ +á@-#Ž@<ˆ³?¶VŽ?{e@Eª@e~­?ôqX?¼«Ð?Ø?Úæ@Tï@ÿí?qî?c–@-X@–n?¼Ù?š)@gMã@‡p¿?Ñb'?qZN?Ûø?ÿxÄ?¬ƒ®?‘¸?Ùí?ðlÀ?ŸÝÖ?}\@ ’t@A»@Lr@IO?õ8º?ã`?àóq?ò·r@ª@ û ?˜ |?ƒZÈ@Ô¦@Z?é‰?ÖåÊ?ÔxÃ?Òe?Ï‘˜?Íî@@I@#~E@C»p@Fß+@;—X@:¦Ô?â;?¿[@® @Û@Gí@OÒ™?€ê¹>¹—¹?‡\¬?§f«?”øÃ?_Œ@Âÿ@ ƒL@Ÿo@ô@GN«@d­P@O}?ꚯ?Ò -?¼\@5p@ZY@Be?ù ý?Ó ê?Í…ƒ?Ö"J?ÞÖà@Ñ@,›[@Y~@W@'ûÿ@:¿W?äÍ(?™%ˆ?ŒÂ$?…›¦?Í0?ø²Ü@a@+×?þ„„?¸¿€@ „B@8/@h¹e@‹{Y@Fi/?ýH?ûÙN?øë?¬7´?=Kë@Öó@cÛ|@R¨@2–@@1ä@2ß@3v@<Ým@)…d@ ¯è@çÊ@3Û@!¨.?ñÊ£?â±&?¹4;?Û{í@Ú,@žÝ@#eg@dº@Âÿ@þ@&@i?ÙŸ,?Òøc?¸±&?¹Ðä?¹¬?¸PW@1k@„¦d@ˆ·ð@¤@dá?¬¤?žéE@êo@"@c‘n@u'y@0c @°@(F?ô¬ @Bë'@ivÒ@FCœ@2·™?»Nû?® @ 9@}ØØ@Ml@%úi@/2@6Õ%@2ÿ@)R/@ *Ü?°v½?ãߧ@6{„@6nc@6bŒ@*›–?ó&?ú¶¿@M@>@0é°@-d½@)Ý>@&XÛ@)ý}@-ç¾?Ôeÿ?Ñ€F?ê!?åf=@nïI@Šz@#¦.?ñŸ@1¸ @PÀô?ð5æ?ŠA:@¡Ý@*¤Â@@Ô?Æ,Ê@ ?'@FH·@$ïT?Ø¥r?Ìh0?ŒÏ9?™7?Æù9?°x¢?™êê?‰ì2?ïc´?ëüq?fC×?‹¥@Rh]@T\¢@S?èºþ@wü@E7@(@!~»@ ?Úë¾?åCÓ?ìuÛ@±‹@¿?ü_¸?² Ð@„Ø@n)æ@aK”@@,`@;Ï?ÕÌ?Å–G@„Ý@ §?ð9>'B×?ðU@z@ ¯@B?É,y?žLo?¦”÷?±F6?bíx>:ÝH?$ö?ÎíÝ?Æßa?Ñ‹à?ÔY)?l]?o—Ž>GȨ>–íK@Æ@5À@.µ@/Ù ?¼ž´?Ká÷?bl3?€òö?üàü@HŽ"@AÑ1@+ë@_½?¢ü’?)A?¤µË?½X/?ãíN?ɶ?Á?`Ém?m×í?y*?~”‰?rA@>$@(T±?îXV?¨FB?œÇ‡?ž×?¨†ô?`Æ?bw?¶N4?ƆK?ß[†?áò¥@«e@#gû?Ô.9?qtU?—34?¾ˆo?¸I•?º‡Ù?ËF@6Ë@Aû?ÂG£?^™‰?‘6?ž?×?§y™?òÄK?ãŸì?”,>?ŸWñ?;?‹?r?/¡Œ?Š„ù?ÁXÄ?ÎÁ?Í +y?Ûái@eC@%Qá>¤~«>#–>¢ê÷>øƒ?T^?…¬™?‹q?¥È?±•¡@$©†@7?¶þM?¥¡?³ºÈ?¿×1?Ï…¤?Ü®G?ÑHƒ?ªõO?¦Ì?¯¡ë?ÁEÓ?ç‘?Ì)?K,?>Üu ?S!è?½…?Ú[¬@ 5%@k?Ž#5?ŸýW?öÑF@ +Ä'?¹Q?E~?„‘?Ùë±?ÉC ?O?Bî?øÿ?ç'Š?¥Ùï?¦:Í?ãžÜ@»€@¼6?¢‡?‘Ø~?ZmÎ?˜8L?0<Ò?£Ø?Y[?¥ ß?¤ÿ?§Öb?·4 ?¶>6?e?]02?]= ?°‡ü?››Ú?¡Ð>Þ5 >£¦à>¬<Ê>Ö§>€{™>~=>Þ>ßFF?»xŠ?ª"é?¡­'?”ï´?^?§'2?‰?_Å?fJ?paÈ?p¾Ã?©J|?¯‰$?Ž‹ä?™*€>ãg¸>…èX?_ø÷?–Ä?¬+ä?ݼ(?‘Ñz>QǸ>¬!ˆ>òr>ÁÌ ?bg?b—é?»>æÙ¾?©ÿ?¾Zû?dõÁ>úìÃ? ?i¦ ?UEi>åg>æUñ>úKú?->æ)½>è8%?&¿À?Šd?43?QUp?Ò}?ã®;?MÅ>é €?@;Ó?iÂÄ?? +!?7 ??N(r?d²>¥v„>ûÙ•?ž1`?’Ç>àÈÓ>Åi>©òI>‰ª¾>}n<>ª>òoS>ï >î>±>»Óq=ÐÞ>õ¡º?é³?W´œ? »y=z|?‡ËÉ?‚~9?mĽ?RŽ>)v½=tà?‹±?¦¹ú?ƒæÑ?e¬?eGF?em)?òÃ=ºDö>äÍñ>ãÈ>ë\2>íPÙ?Ξ?§Û ?{¡ý?`<>¬ÿÓ>í¢=?z ~?)ü=&H¿=³å>Ø>–›>è‚>è8H=¤ÚR=OÞ?µl?áó’?}!>[È¢>Írò>æ­k?kœ>Á% =ZD.>~ºy?¡ßó?¥bP?ãZ¶?ã˜>h;>=Ám?,ÿu?S¡?»Jq?àZ?ZÔ>ê¡ð>áåP>Ú#(>•%$<âºÓ>kÈò?ej?gW?kK‰?i +´>öÎu>ò®É=Bçá:}+ö>¾O>ëÕÞ?¦Ñ?°ºÊ?ö6Û@z=?”l <4 =Õü=¡ÌX>ò}Ï?±l-?œNs? Ã?á¶>ìÚ]>ñšÛ?°Ls?±Ëf?0 ?!V?’’?—?’Ç?*-?:ø ?O½?Mv›?KâÁ?3œ”? ?)‡>¢€†>•¿v>0™>žë‹?ƒ2×?ŒÖ?¡6?^#?7b„?5r >†¨—>t*Q?!¸¨?8pÎ>ÃZL>Š&n>ÐQÅ>ïì>ï(B>ï4@? v?¥6?F?l¥?QæX?¥ µ?µñk?ãEƒ?̤?5?1\Õ?`)ë?i8Ž?ßG»?âïÏ?€ D?t_u?\d>ð‚5?Zª«?vœ2?¦¨N?´{€?´‰m?´“?”‰ì?€öM?Dn?©*?G ?/7À>ñç¥>:\?¨?¢V?…j>ñ¬>òY?½Ò?²µ?.êš?4èQ?pÔ?uSª?:—ö?<ç‚?Ó‡“?Úe¬?ˆ>òNl?Ãê-?æoÅ?e.Ä?Úþ>מM>ÁŽ?R°?‚çj?.þÎ>òç?núé?«Z1?±ÏÄ?µ² ?›7ï?sG(?oš(?dÌP?ˆp=Uò˜>¦Âb?s¢ß?BBB>MK>îâ?¶ê?§ ? Õ?K7@7ö@µg?Úð;?Õ­²>iª->p¹Œ?oH®?t‹ ?CÇ?CL`?ª4?¨›b?|óÄ?tã?Ù(>ð‹>éBÇ>õ#@ ~Y@7ðN@0á€@0-ß?ÎàÆ?u{H>ÂÔ6:fr<8Þ<Ç1`?ŠOT@^?®?ª?5íP?5ª­?/Óû?_cÎ?‹¬É?›zF?· [?‡$>»Q^?SqÒ?È¿q?°Ñ†?˜‡"?ÙÊ?3?Ì|@&‚@²?õ”™?Ò!R>°Ë>ôY9?l7›?`5?wDÑ?h5>÷`Ï?|?wyæ?wL?wù?p!þ>÷¯5?RÉ?¿`Œ?À)??T­»?LS®>ø:$>ø +@"s @"úr?mÍ?aj,@«õ@ +®œ?ÆŠá?´Së?€ ?x x?È?ÐÑ?™ l?t?}yª?xâ?+M>´âÊ?qr?«‹¼?¯Ee?²üÛ?‰õy?yúÐ?­Ö¤?½(>¸©5=7™|?ð›@ìù?³r?Š^@t-@*B¾?ÔK?¦Ô?tŽk?^ò€>ë/->ˆ±ã?= ?»x:?£š9?— ñ@*Ú@Q{@¾o@™¬@S>í@s‹ @<L@$þ?ä2å?´Ad?¹þ?»Ôz?¾þž?¼^«>ù1”=|hL>:(€>œB?Ø›Ö@Eø?Ü®¬?¼ ;@'Q@D(÷?Ïãi?zØ?ÑÑ ?úåÎ@Rà@ Å@;M?úþ¬@ ƒÜ@{y?ø•±?æ3u?Ê­?¼Xé?›þå?ŠÃ@.m@dáf@åô?û?Ð?Ò]?½`Ð@ pÓ@Ò@ï?ä7ã@JµÀ@qE@ +D¡?¼‘?¼Ð§?Åœé?Â=?¼˜¼?Þh?ðí˜?‡Ÿr?:Kp?Á¹>ãöB?Äî @ÕH?ª„??{Ù?ÛZ®?îN“@ŽF@YÏ?ÿ´?óã½?[½®>û¡é?œ¾?¼»3?í‚p?ÿ.é?Œv»?j•8>öFˆ>À:=?š?_b?w2 ?‘I@r~@pY?ö)S?í·×?šO?s¬³?KË/?I_ ?«_Ä?¼¸†@C@\)?â5G?°£û@76ü@P¢?þyÑ?Ͷ@Ó3@P@L‚1@Qz@\ ú@`k«?“1Ú?2iØ?TÓ +?g¢?›‡?­˜Ë?”Kâ?‡:Ñ?Ë-Ó?Ûº?Úï?ךá@Z‹E@p Y@ q @Ž¶?tB?2à¸?⬵?û1N? ' ?‰¶J@BÞ@[z©@ …?ÿG?Ðót?ÍŠ£?ÈÖ?É“ã?Ù–?Ö¼?­™‘?¥M|?¸£?¯l6@cy@y®ü@/?á<@•ƒ@žÆ?ý:#?ú’A?1?z‚¼@i,Ð@†î›@5 …@Ž^?Q$T?X?y0÷?Œ'•@A^¶@ZæÐ?‚Ô>ú­?y +?*ð?å7ò?ô1Š?ðrê?ÿ¦_?ẑ?Ô5?ðÿâ?ù¶é@-G @;8I@k G@yŽ|@_tÃ@XGÏ?ûJ´?»I1@ ‰V@²Ž@;o@ELö@ù€?éÙ¡?ÆA,?»ƒb@Q˜@Ч?»?vMý?‡÷’?‰X9@ +¼±@-Pi@{·J@—Èå@ŒO×@‚«0@E+Î@.÷?„±÷=’Žx>ØÐ?#mX?l(?”R+?‚Ua?TJë?Ͳâ@ â@1é@FrÚ@f*@„xK@mŨ@LÖq@=I¢@"8’@$ +@Wx@$?½ T?¦¿?xLå?`—Ú?.Êo?«úÎ@9@+óê@m?þµ¡?ш?ÍÑŽ?·Àd?Ák}?ÑÒÞ?×ÜŸ@>@Úè@&¦æ@"@Ó@ö@Ö?½x?¸/ù@¤NŠ@¥*Å?Ü|J?ÅhP?‚ª?u)—?½&Ã?Àë?þ>Ê@8æ@@†õ@E¼ƒ@ Þ?ô–Â@n +@-â@ ¤®?ôJJ?ζj?³.á?æzÏ@^?ûò`?Õ1J?äÂé?ø!Õ@&­m@W]@,™_?Ù´3@Ÿ±@e´è@RóT@6O¯@)¨&?ø2 ?ꀻ?¶×í?Ö˜Ü@PÞ @IDX?ßÎ?é¹@@0â?¿é??³›5@&K@-_Ÿ@DŽã@Kñ¶@"v@ “¥@ Èã@‚?à)µ?°14?ÞC@w[?á”Z?´¥L?íx2@ /p?òÀ?<ó?g$Û?¡y¨?Øù­@N>v@Zgk@h`B@bÐÁ?µ½£?¹Ý\?Ócã?Ç΃@ ˜@V=?ªáü?”%@]l@!%°?ß +?¿xX?Š€?~™Ÿ?›u?³g?ƒK?%}ß?Xów?„¹Ç?¾|±@-µ@/_h@r@e—@_¨@‡”?±üŠ?±ì@%Ô~@0@Á?ÑÒê?»_@ç®@ xµ?»ªß?‹[?³uV?Îà¸?¬‘?uíƒ?žzþ@ »?Ñ4Ø>Ò>^¬*?®¹R?©ï{?‘Oz?„wÖ@Ä@y@và@ + +@™ˆ@]½?ÉÜ?¦>?ËùN?ëDÓ?×ßÍ?ÀÚŒ?ªÝ#?/5·?@Cæ?:Î/?D€ß@%Ù@+½?¶4M?š~˜?ËE?ᢦ@Äô@(,8?Ø¥Å?ŒÀÏ?À¼8?ý¤h?ñO?É£á?¸ø?‰C ?•"?ªWØ?Žx(?©»¸?°#X?þBn@šé?ÿ³ü?ö1=@G’@¸^@ÓÎ@Ö¶?Ô„r?Q^? W]?fh?fQ@ˆH?ö¶»>ß >9r?Uº*?‹G‹?¥S›?º½C?¹,—?µÖ?Éú@ 9@ ’&?«Ó?«m>u >X8Ã?3?‰v?¢S?µü?ä®­@Z@.:?Í?½Ö7?®•^?Ÿ3$?ÅÔá?Ëd?\þ?€×m?®¯>Ô’]?dîÀ?®&?˜d?EH?kÑô?ÖòÉ?¼=æ?aã(?aÏÿ?ŸÒ[?©;?„Z?tq?°*?Ôyã?ÉÆ?²cé?±u²?Ô]¼?¯Ñ?½‡€?µ*»@@F@^¤V@ A??¨8ü?˜…c?slr?kD\?…ÿÖ?zo£>³w>È»è?õÉý@ +{•?â}ë?Ý?ÛŽc?µ»'?Á0d@‹?ð.¿?:å?Þ?!N?¸ÔÂ@«;@Ñ?Øg”?¢i¨?Ó™+@ +éÏ@ø?á>ìCÝ@j@M·?“Ù$?7èj?¯ 1?ì‡Ñ?À"*?˜fV?ž¸Ð?¦Õ?©è>ó:¼>­>¼>–;,>~jµ?(m?‘Šp?—Jœ?k?¢Ò?§ã½?·'Q?õ&ø?ñ–?y?.Óÿ?œêª?ÜÑ?׎?ÔËÒ?ãxn@4_º@(Œm?ìÄ?íNu?|÷&>Üa>ðNb>ù×=>â×á>øš’?,?—«'?‘®é?_qÆ?|6ù?Æ°“?çÑ×?ÉËïs§=æàU>-´ö?Ÿ4?+ ?[<?6k¹?±Z}?¤££?¢I°?¥”™?‡só?dy?š“z?ÜúÒ?Õ§©?¤F.?—ÝÀ@ 9ß@¹?‰½ÝÕê>Ýì>Þé>ä ‰@ ðÕ@%å?š—?vÊX@þ@0`@/?¥ç?•0µ?œÈ:? Ul?hL„?uP?ÞÄT?Ñ$Ý?Kä_>éþ5?± @ä?ýMP?á¸?Ä©g?p¶µ?ê¤?&J?~%?q®?u­>âú›>¯²@>øìî?I}C?có? +«=ïÿM>d7U>ìµí? +?TÊ ?4S»>.?>gÁÜ? Ö??'Ý=xŸ =AÀ>|ˆ’?-§ ?>½?|{Z?Œ1@?WEx?CU7?^ÝZ?k?? O7=äê ? tg?±¤†?–‰?JÜC?&c>Kk>ï|<>DzX>' »>]Õ>K@õ>[¯¸>òr2>ÂÄ;‰…°>LÝá??*H?-WÁ?>‡?HÌ?‘ˆ÷?g>z™?Ãò,?Ïjn?ó½å?”«>Í5_>SË=ÓJ0?9 +ó?dý>? ¾>ìÓš>æë§>â– >ž>1a?f'ª?d\—>êOò>ë–ˆ>îßn>ò¯> r¬?ƒL?äØ?™I“>Ú‘æ?,Y-?¢µ×ž™>Ùth>ùõ²>ú–Ž?•¸? (¢>ª93=Æú=º4²=î`ç? *”?s"?Bc«>éjC>ã¶Ý>ÖœŽ? ¢ï?ªÌÚ?©ÿî?j|®?j!>7E=³h7?/f«?]3`? 9>õÒ©>~;Z=W»l>gJÓ>êð>î‹J>ò­?ø?kF?x¶?°‘¤?¯ô¬?lÔ¬?ksp=Ìl%;ð@>Äcö>ûv=?TY?~?,»®>Ûà¢>`ë >¼Mœ?y|Ñ?ˆ¶j?¢ û?¦¡>ìÖÿ>ðÛ‚? #§?$ë?šJð?˜Ç±?Y6>íNû?>Û_?NL¶>Ï›>‰9>¬¿>–1«?;?‰|¯?[ø©?Sú?,+ê?U§?\ +s?~x?‰PY?ÎWG?ÅCj?2"ê?6›æ?,m‹?#ít?…¥e?‡Îj>¦ •>:þ ?@k?"7\>Ð ˆ>¢µ?Eð?ˆÒ€?mXp?Qak?`:n?oŽ@?ˆkl?© +?µ©?Ö¥¸?¼õ1?+÷?oÚ>ð n?ö«?±>â?³sF?sÕ?o—˜?to>û¥K?dEö?{Q?§Äç?´ˆñ?Öð>$oä?Wvú?›Û?²bÃ?ÂÕ1?¡©?}¨ë?:[²>÷úÁ>Í"m>:ªì>Ý>-«÷?83[?V­?°N1?™ß4>‰g>¢wŠ?žó?ŸVë>üý…>ò=p>òIö>ò\,?,g?<0z>æ?ˆJš?¶û?Cëì>òÖÇ>A.Òˆ?AœU?«C?d.×>Êö4?¶Ù·?¤ìu?JI?”'ê@1Óª@"ù?¯ýø?§–F>w˜­>„%À?ta³?tf¬?,žü?(Z—@FÏ@#®þ?ÊŠ?‹ +?Ùšå?çˆ.?3Ë:>õ E@ +™×@*&?ßƾ?·÷O?‹ë–?ud{?! ü>ïúØ>ébk>âÈW?‰­O?ÀZ…?kÛæ>õØ?dbâ?šæž?¶Îù?Ñ»Ú?Îcç?Ë Î?‘;?XÁ?˜¹™@ j1?çÛ‚?–õ“?ˆÁ´?v¤â?¡Ö?ÿ—?Ò–®?)½?¼ >ïæ?:&*@'m@ò??w)L?b"?±]?ì›?»K?gF1>øR+? âƒ?p‘d?zØ?¹ÃÇ?°Y?(I?"pŠ?«µÜ?§H^?Tg?T¯Ö@¯@ +W¿>Y„>]Ýr?õY¾?øM*?Ü@Ì?âm‘?‚uG?x‡ô?°Ñ?ºG%?ßáó?ÜÏû?®ÒR?¤ÙO?Ù†²?åCÞ?^V„?-š?ç›?'?«cB?º¼‚>‚Z=¦úy?Á™¹?܉”?¡¼ª?|é?„;¬?y{Ä@¥à@%/??Øp&?»;?0¨m>ù¸d>ùÀÚ>ùÉú@ ™}@&ß?Ú@?¢MÕ?ß¿c?øh@'¸@7±Ò@¸è@´Ì?›º8?fY’?ŸH?¡½¨?¯g ?¹’@"äÞ@;O?æÓý?¯½&?Ó‹8?Ú߯@æC@Ÿì@H„¯@Sf@,IA@$’?·gÚ?zÀí?ô.„@Ž?îgˆ?Ûx‹?Ûõ?߈@‰0@ 3/?òy?ã5?ì8ª?êÐ×?¼Ð ?°È?Îö"?Ò÷‹?ó,‰?þµ¨?ý´è?ûWß@×Ì@º?àƒ]?Ãî?á‰?ô|0?‚æ…?:º³?)?$\Š?ÂÞ?ã÷å?ÅRÔ?¼‘H?9u>ûrô?²þ;?Ï´?Éš:?·óï?… ?{€ @BÛE@nØ.@Ä?Ç.Â?¾l?¼©M?1ÁÎ>û’R?b¯ ?|û?‚çQ?‡?§Ü?ªrÉ?Ç!â?Æ%¢?+a}>û•™?Døþ?OÌ›@[@l]?‚?>¢s?s^/?„z¤?5Ç?†9y?×iØ?ãŠÚ@-ÜÖ@=ô?™íÐ?f Ù?àý?õ3:@_'¬@uÃå?æÉ?¾î:?•À?™±×?ÔÕø?äÃi?­ÁJ?Ÿ)?ú?Âj&?àb?Ü;´?ßE?ßW?¢Àä?ž0…?ØbZ?ዼ@;nt@F°$@@'@ýr?Ö6?ÈV±?õ¢|?û¥@Ç…@í?É6÷?¾ÿª?(šŒ?G4@ +ÅÙ@Ú†@k~Ž@n"Ø?“ +3?r?‘º?•›ž@¶ @·²@pë@}i@ì~@!Ó@/á@›l?ò;.?ì$b?¿fý?¬—×@ç9@! @‚j²@Œ…Ó@C¬ä@1Ý×@Fëò@Dª´@@Ï@B„!?»íŠ?•¸¶?U>ùõ@,÷@(p ?Ôš?µ­ø@x@@~J@0¤@á@õ@'»ú@QfÈ@b+@@HO@8{@@"5B@ä@‘:@¡R@qH»@Yû@2<Î@!!·@Î?óâþ?õ:·?øÜc?ã/Ê?×–â@‚ƒ@+‰á@W +5@sQ@}Ï’@‚@f@Šì@œeX@Tèä@²4@@OE@P‘Ë@' ¤@ +÷Ç?óî¢?ܪÄ?ïú£?ûöñ@Š@ Ú@ B?öá|@˯@7’²@C$?ãh?áI?ÕgÁ@Pš@1+@øõ?ô©i?³ûÞ>ÿ>¸c=~+Ä?R0)@! @ËM@$m@n?ÜŒÔ?Å" ?v«.@,ß@¼”@7k?ír“?íA?Õ n?ÈË¥?Ý@?ëç,@Ž’õ@•j2@rU?Ï<?°²Ñ?š*?£Û¦?´ô??½;B?Å|Ç?¬Ùˆ?kÑh?ôl?ä\A?á4X?°’ÿ?³}&?ÞÄ?Úfs?þ @…?¤IU?Ž1@?Äñ?Ð0ñ?r=?[y›?ÎT¬@>z?ó]R?¯xI?'ë>éÃ]? “À?i¬?t5N?Ñwa?ÕØŠ?õ¨@P?tÓ?hÚ_? tß?¾®9?xÕu?&š?¤›g@^š@”@¬?áW?TWƒ?júP@]p†@dK?ˆ"Ò?q R?Úò­?õZ?Åú¦?º,?Öêê?Ö5_@0s@,ä¹@Å??²mW?žÝÅ>ìo>ÿ?@?Á5û?Ì0s?þò@î@#Šæ?ûÜŠ?ØÑT?íx+@ çw@óO@%@ «?€ïØ?…Ñ>“Ú©>\ÿà?ü‡k@d @Ji?ëf@õW@Rc?Öuÿ?-¥´?v©?ãR?ä á?ú²?ê¸>ñ!ñ>4/\=ˆ»u<ZÁ>ô(Ñ?oî ?—)°?À'q?Át ?ûµû@ÇÐ??+Ó?ªó1?¯>Ì?ƒ/³?ala?¨ÜÆ?á8ö?á ?á V?ð¨x@/¨‡@<ÝÔ@·K@¯h?íZ¨?ñå«?”ŠÍ?,yj?{®Ï?¨ ¢??9ì?‡ç>©ßÉ=ô~3?ñ£r@ ¬ˆ@0ýa@7%¤@4u_@6ža@&”ó@ƒ`@'C@ H•@ :P@RЮ@L§…?î·¬?ʽ(?˜jc?#tV?¤?÷ä¯?üô„?Úb®?ÜÜì@" ·@&eë?Çš…?’Á?¹Ô??ýÒJ?örý?š~Ê?‰)?¦¶?¥ÿ ?U)¯??Ž™?Š–‘?Ž"g?nì +?]8?\ûx?\ê]?g¹÷?¥ža?¥›j?›ß)?«aÎ?‡Û?9$Ÿ?ˆxÓ?Ñ#,?­M>áO¡?"Ï@)ïY@,Ù}?ÝDp?Áuç?«vE?ˆ®ü?nå«?ná?†Ë;?΢7?»ƒ1?};Ó?„˜Ê>¼­œ>$¡Å?“¤N?ù¡¾?Ë©m?^U×?‚ˆ9?¶[á?¤4É?h¯?O ¹?²_U?Ð>U?ð@á@®?Îû?I»ª?`RH?Æà‰?ÀÆ”?çmþ?õ¤?ÇŠê?ªþþ?¤’b?žÿ¿?£B?¸°€?¾ø#?Å=i?ˈÉ?²X?«é>œ=Ö? ñ^?^z?e‡•?"ÄË?Ù?$e? q?£ y?®OR?¢E»?—ª{?÷ñj@'_@xŠ@ÝR?̶R>Ö?‡?_?_¶&?ˆ”j?£*?™‹?—çe?ž"?¥i?9ža>LI ?+' ?©þ?’7î>?ºl>ø?“Øw?¡N?©«?ŸŒ?ˆÎ?d¨%?4…Ø?1í‚?(È©? Ëú? Ùn?dŠ?/´>9*2>/B>‚:„>R’æ>™ó>HïG=S;n•a?.Q“?;ÒÕ?e–?%݆?um?¯Fo?>‚2>¿´<‹Ùî=uôè>ÌÀ™?%Æ+?¥Û?<:Ë?;â×>í´ >§Ì û?$ô ?O~? ¢ä>Çúù=#?„>…)…?ZŽ?·ðQ?›ã?=V]>öŠ<šM•>%Ì?Å?«½æ?Q/?:Š>™'Ï>ð™ú?H;?K§?o±>øÿ.>2`<õ6Ø?é«?` )?1¤¨>ß#>âÞË>è¾}? ðE?¬¹x?¬ÖL?¬í½?­œ>~‰ˆ;`Ž©?iÕ?¬¥?%¡Ú<ú‡Å<Í÷qß‘?/?ðÞ?«­Û?©Êž?¨Ñl?i\W>éXU>œò<´œ>Yó¯?_H´?`¥?e=é?fJõ?ªÙ?¬$>I?<°h?24Õ?jŠ]?šò(?°ð?d$x>êâ?Wb?°K‚?žVò?k5?=0Ãÿ”K?B3‘?`9³?X/?OÃl?…Úv?©c?ö¸Z@;Ô€@+7?Ví·?3À=ĵG>ˆµ?-Y1?0E„>ó$|>íFÐ> >‹‰=†»š>bÖ>›„>Гæ?Ö£>ç…d>À"ì?-v?^®?y‹f?’¨Â?“šZ?”J?†š>îpŒ>ô?GCv?N¢ö?¤#?¨2’?7pè?"€?‚E?ŠþÇ>¾ !> ‚õ?e!\?¤ë?;ä >º—+?7’N?‚Ãt?q¶?]þÀ?@¯î?ýá?.å^?‰À?j;ë>ïøõ>ð¾>ðR?`.?³7*?°Û=@=iÜ?¡.E?­Y6@¯ô@ Þ¡?ŠÖñ?@’â?//Ð?2Ô®?‚5?šÛÛ?“Hà?ŒY{?ƒ1m?cS›?ÀÒ9@ 9?¿Áû?]è?xï?q˜É?¬[?¦(Ò?¤¶_?C«ç?;¢’?qö?iü">òœ>ï˜>±ÏÎ>·‹ã>Ûcá>½N;=ÎÙ=aã?˜¶?µöF?6 á>ÿTè>ôîê>òÛ >ó Œ>÷æ?¬ +°?ïÿ?Ô´L?Äs´?Ñ^8?Õ3ù?­>O?†ÐE?®y?²ïÜ?Þ·&@æT?蛓?&šâ?xâ¶?ùTô*t>òèú? ÐY?gG?tf¸?uéˆ?¹7[?¾qo?§ é?¨´?ѧÆ?Ϭ?7äY?o]?\?j%?§Í?³ñ½?†»é?uIF?¦÷õ?² í?9¬k>õ×?ÿø€@)¹\?Ý«×?žCÁ?dí¥?÷_d>ÌÙ=¡œD?8º @bö@D +’?_[?TÍ(?:Ï?Ix¸?wÞ¾?…ðA?á?Ô²6?×?‘é?ØAÚ?Ú>=?´À?²B)?ÆD‹?½¢7>¥zÖ>­ÓX?ÿ$@ö@ –¼@t*?#?„±@ aÕ@”Œ@µÕ@£”@8U @8ê\?÷ÞM?åNS?Ãý3?Ô@Ô3@ 5s@o…@¨"?âE?â×m?/A]? Ñ2?7â?„dæ?€§¸?yÌ*@)Q@BÎÞ?×Í?¬MÑ?¨Š(?¤ÄÞ?§),?«_@0Ï8@HVÙ?ˆ‹‰?@C w@nŽ3?Îìâ?1f?{?ƒŒ?± ?»Æ‹>øîå>•]™?‡U@?¤éR?óǨ@» ?šø(?{g+?~Äí?z¦;@†Ì@®ú?Õ›G?¾÷Û?ÔJº?ÖC@5>@ÆQ@ +ÊÑ@ +¿@U@'“?¡±?fÀ^@L›@3@%Pi@ + @5Ç@;Ȩ?¶…6?‹6?³Œ?¼b¿@ 2@jÛ?T©Ã>û=´?ñˆê@¨?ÛÕ•?ÕEÙ?ß<¸?ÞkŒ?72ï>ûXJ@kÊ@6ÔÎ@)¥®@/ÆÖ?˜M¢?Xwè?¯c?¼‘a?Ô?ßøL?±y3?­¥Å?+Š8?ó??ÞTæ?÷h{@]›Š@h»†@{º?ñ¡?¢Îý?›-?ì=G?îrT?ŠjÙ?{{Á?ö”N@™?®`™?œÉ¹?–©É? û@é‘@ïû?þ©Ã@ò?¶â?®äŽ?Ùý>ûqj?°‚+?¼‘W?™?z0y?ïÙ¢?øßZ?½!z?µ—Y@'í…@+j¦@K>@ 6?ÓI?ÐÐâ?çÉ?î%¯?–§G?–ã‡?ØËŸ?ÔTí@UV@@&R'@&Úv?Ã\?©[@17@Ó­@ …m@ jÙ@w@»?þOØ?øú?îwJ?æëÈ?Që"?XJ@H…Æ@T7j?'˜>úÖ?ê`Î?ì« ?ñ½)?øªì@ ‡@}”@@>w@D‰Å@âO@¡A?ÃH¬?»Ñâ@9¡`@FàË@R<×@VD©?•†n?€½ó?¿ÅÇ?Ë-?Ú0?äµ¥@5xP@;@#¡_@î@ô:?ø)û?÷Já?ùÉ…?߈w?ÞÁü@¤Ø@Ü@EÿY@EµÃ?ã?ÆŸa?–Ä?‰Z[?ékx?újG?Æ–?ÀC$@L¬ @iÞ…@IJ*@Ab%@p?òH(@D´1@U +ü@+›’@X¾?Ú_t?ÁƒW@,hp@LL@·ï@C@@ ú@/±?ïO³?º.\?—“ß?{’¿@"¦@;þã?ç~]?˜u?™.É?š É?Ä1?ãE|@×é@'ñÍ@4Æ@6&e@ŽY@Ѳ@éõ@ +`@–Ä@u@•z?ý¨ý?ÝþÕ?¸O?ÐL?ìg?Ìk¹?œ•?ü€Ø@_g½@@1®@â¥@Lý@UZ@U@ @,5@ `|@€T@Ãv@a@W8@_Ÿæ@”l@’) +@ÿ²@$æÕ@Fk@M0C@{òÜ@}nF@M}@!î@ï?÷Ž¤@A6@á™@9@5#u@4÷­@1M@ªû@Ho@ÛÔ@6.¡@µ?‚yÃ?•Š?ò˜¼@«@ˆ\¢@ƒMì@1›@&¥"?µË¢?¤›@Qãp@O$ä?¨%y?§ ?÷GB?ý +ï@›°é@¹:|@"ž°?³Ã?·>Ø?½Ö?“lØ?p×f?ŽÝh?¨¸?§?´a?øÑb@0ƒF@&\d@'=@ !Ò@!\ý@&´ @QR§@<£?o¡??{ñÝ?âIž?Þa:?ì–µ?á"'?ñÑ?å]ü?¤¥R?Š‰?òÍ@0B?ç??¿3Î?׈?îHÏ@à4@<þ{@ ¹€?šÿ@·@Iƒ@züã@w@ à0?ÉÆê?Ùl|@-t@.ýŒ>?`µ<Ì €?¾OV?÷¤?éôä?Û•H@_µ@ w?ŘP?žh?‹c÷?‡%Y?Ó»?˜úä?hã>î[b?(D:?°?©©?Lï ?fxC?Å­ô?ˆy?Ë€?Æ«›@@ ˆž?”Œæ? +@?º4…@I‚@R@ El@¦ú?‰sú?Œ Q?±ù?«=?Ä¢Y?À?ƒy”?yjq?dÊÕ?hJ¿@1=\@U†…@ X,?¶Eï?ã}¡@¼?ý8{?ÅÚ?Ú{º?çä?ìò`@¹æ@© ?ä°Ö?ØïÃ?ãŸÕ?ç,@ î?@ K3@6Éü@Y¸@BT@,Õw@z=?Øæü?Üî?¤ÊR?›ÖÍ@+>?ú¤Ù?ÜÀk?Ë+Æ@,¢¨@Y–v@‘4?¿ÍÀ?ˆUÃ>ðG?Äž?,z?_;?šW?•Qû?l/`?VÄ·@;@ÓŠ@í)@ ÐÐ@ ù8@B5?þõ×?¾?¹Ñ?ã<?âé'?ôU9@Kµ?ª‰F?‹Œ-?0>ã±)?cƒ? }–?ã«Ñ@(€Á@¢5?ŽïÖ?‘T’>Áx >‚¼¤?ìß3@ ð@ôŠ@ ð@É?á%?á .?àõY?Û,³?¹£Œ?´<þ?¢LX?§N?Õ=»?àWk?’žV?<­)?@ßÝ‚¤?„G!@×u@C?¥öù?¥ëd?dÚã?]$ò?‘‹e?¨Ù?˜‘”?yùø?r¼#?h¦V?]Ož?hAS?sÝÙ?Ú¸?À?Õ¦@Ë?Þef?¶[[?©÷ú?£€Ñ?Ÿ#‘?ô‘@(?’Ž\?ž?ÞK@ +mî@;?Ü0w?Ú‰Û?Ü/È?Üw?ØÖ]?ÆÜ‹?‡ÙL?W ]?]Š?gÊ`?W'0?„À?›bD?¦ù‰?¹Žü?Ó x?› A<%}>;­ ?œû—?–¯ß?˜¶ƒ?†"¿?+Ñ?Šz#?_uÒ?\ׯ?Yr0?:Ȳ?s‘Z?ÊÄ1?­·#>áÃ3>âט?`>èw¸?œ×?ª!ø?\ƒ”?IiN?–&>ã˃?5ŒÝ?uw·??½>ëÆV>ñ\N>ªAX>¬Ò?-¡„?!*Ÿ?Fœ£?TK>ø1~>âEÀ>6¹>e»î?S“æ?m£×?vü?šû? e’?¬?-Œ¿>„Ñ?ªO>þºm>DmÄ>—“? Œh>¶Ñu9$I>WUÀ?9zÜ>õD#> ?&47?FfV?hµå?X’Ä>Ü-o>™^”>‰§è?¤ ?®¤v?žâl?‹I2>õßñ>·™>³&þ@AvK@'y?ÖIj?€Zã>zM~?Aç5?-?}Ÿ?U@¢?V²T>ð,M>Íé|>êð>÷áÁ>îi;>åŸ>•n<§ÚX=ì\˜>ô\>ÿ‚œ?hQN?g¶2?§ÛÂ?­*ó?€­c?g$é?˜ 0?­‹>?ií.>ç¢R>çÒ†>çã‚? K'?i4'?r¿À?­yë?­tÀ?¬‚È?¬uo?~ë†?ku?s>ípÑ>èIt>å?>ìáK>ô >¤õ•=¸CQ>èFÊ>én>êû>ê9¨?eÆs?jV?joX?j‚û? .J?°L?O"?>êÜ>í–Ý>òÒÊ?'V€?k4S?HF>áS ?¶.?k}õ?Z¬^:0P?cÃZ?kçÁ?Ì.à?תd?Iö:?âç?û?CÒ?¯¬?Bì?bv?߃s?¼Ïm?lÅi?G{{>´*;>ØÒ©?MÜ\?E[?>í'E>í> >¦ü†> Ü?´@§?Àg§?' +î>í l?> ?SŽj?y»r?†W6?\½?›^?ˆT?n&9?XÖƒ?5°Î?'æU>îgí>ÄŽÞ<­}L>”>žäP?mä5?nØ´?‹É?ë¯?„(~?t>Œ?T0ü?T9H? +ýô>µ E?‚V&?¼Ä?€ÿZ?­9??º~?y(e?Í4@-¹€@“>ò©•?HÔ?îÛû?ëãs?íhŒ?ëÕ?Û¥n?Õõ=?³â?´Wf?Pž?Ràx?¡õÞ?¦±¡?k A?Ph?’¢€?¡¾Ò?Uh?#ª©?@šŠ?Y`ò?°nG?øN}?¶-Ÿ?3Êv?6‰¦?9H‹?\ÍP?~>ó?[?Û‹?ÂÂ’?JÀ?GŽ&?Lœ?E>ehã>…Vœ?ý¤s?ü#?%L;??¬“|?µé.?†¶y?xRQ?G>òÅ0?ï:º@S½?دÖ?»ÿ_?!çû>Q‚í?Aÿ??‘!W?Xzz?D­?e¹­?tÙ?±Ï?ÍŒ‹?™ïˆ>ó»)?$ä?sÙà?Ohå>ó÷ž? ³0?1.x?´Ò>Cpà>ÌÈÅ?¹õÛ?¨P?c™?'ÿÃ?˜F?•v??÷j @€?Û?Òðˆ?`Ã>ôô”?¿>ø(¿?eÓ©?u-?­ôð?·øq?+©t>õký?BªF?k”n?E õ?5[ñ?îK>õÀ?L +©?uÞ"?E ?,„Š?‘Å°?¸?ë»Y@ +ä'?òÓÕ?ÊÕý?Ý.p?öm0?ÑÌ?¢±3?¤”_?µŽN?éA@ο?¶0>`Uã>í—À?vó¬?Rsª?&?$ç?w|j?X%>÷F>µ3Æ>§âf?¸ŸÔ?¿Ý?«úý?±N?ÃØY?©O¡?%—Ä?6Xñ?‡IÛ?‹Œ?wû´?‘@ +“ @ù¤?ø(„?ðró?Š?ÀœŠ>NÞ>R„E?œ +Q?˜ZÓ?®"?¯ýÒ?±Üi?²ëM?yÖ?yÞ ?º&I?ºkÒ?€í ?‡ƒ ?öÑh?ù-?ñ;Ä?îó‡?£…?¦;?Ø"·?Þ0Ç?æ¥?ãÿ>ÔEé>”þž?=«?™ ¡?¸¯m?»0x@>&@Ò%?þ,?ù¼?çfÛ?çb?¶ž‡?¨Ù®?×ÃG?äN ?ƒòÑ;>Þƒ§@/ §@@$?Á‹°?¡‘î?æF+?ø‡©?«ýÑ?™Í*?½†˜?É­-@³.@®c?¸×’?«yí?ÆŠG?ÈЧ?'õ®>úæ)?¨ •?¼6Š@AtÊ@Yj?r™×?Q@84Î@LìŠ?¬Üï?‡}ø?ô©ß@Žê?¬Þ)?˜Mâ?Ÿmz?­V+?sÕ?fYä?blÔ?r7Ð?|‰Í?od;@#Ó¿@7fZ?L×P>ûR'?ýt?Í +?–Ë?¤¬Ž?z>ÜTÜ>(.=eu=?®''?¼´q?ôäd?ûhà@¡@ ôK@Hÿ@J5q?Â0{?¬vô?²µ?ºÄ@ ½Ý@ SX@BK@6$?†ì?AÛ?Àé?È»)@íÁ@Ÿ¾?Б?Àc«?H†#?J!z>Þî>Ûš€?°­ß?¸ö?Bt>ûÝF?ó™?ûR?¾Ý?¼|?j˜?}Xg@щ@ Y@ +`Ô@Mï@ t@É?Jø>û+š?¾°p?Ëá)@:Qþ@A´z@Oë@ ÀP@Yå¨@_­]@F~p@<ÃŒ@e @m*H?¾?¼¼@†2@û/?Š²k?L?g­°?aÓ@"·z@%js?Âî?¸ Á?êêt?ñÜJ?œPT??¶Úb?±vÚ@n_@Dù@a@kó?¡š¼?¤¦f?¯?Šxƒ?îAÌ?ö¹Ü?½¾ô?¹ÙÇ?ój?ó^¬@wÿï@v/p?Ãm?¿¾t@6ùÏ@;g}?æ} ?çßÿ@JÌ€@Il÷@ Ù@è–@µš@É @g:)@zØŠ@ïo@¾q@@û·@‰8@©þ@4„Ô@4­ô@ ü8@ +¤@Hîø@RƒR@)@¯‡@VØM@fV¬@_œ@Z|@¼?ÊŽ”?ì à?ø~y?Ã%m?©Â%?ØËw?î’V?ÜÖ£?Êí@4”@9ù@h|@d;?Î ñ?®å@ ¾@/KJ@ÊÅ@†æ@'f@<­@T®r@kõy@Q„1@9xe@@Ž¢@M\@6{@j$@#}@'U?éÝ‹?w¤Ú?˜)¹?¾#³?¨!Ú?†Mš?üÎL@`@6ÿN?ϯ,?îC‹@Ì@$7@E"õ@5`}?ÌÙ|?À•w?´LÏ?Ô×{@NÁ{@G¨@×ë@#2@6Áã@34“@±»@‹­@¸@~}?“I·?Ÿ_@¯é@ Óñ@CÕ›@JL@Aƒ‡@M-?¸Fn?…+Ï@S±@ƒž@a¶_@V(Ø@%©?ìüÁ?þ–c@gw@=u¬@_9‹@>n @%@6ßë@G8@@IÍ\@SØÎ@9UÏ@ +l@øö@(>@9‹ô@TØ@Pé±@L›b@Fá¬@Gº„@MÐõ@Së<@Rñ@9ؼ@6©»@VVÆ@YϪ?!ù>ÊeK?üÙ’@ 0?Ùæ÷?¿à?†_«?vÓE?¥?´¶a?_aê?$è?Š¾¶?´xã?äšÝ@Ii@{@@t@Ç@4Š@Dã@m B@Zó@Dp@$sÄ@Y™@F·G?ïeA?ïJ^@é9@Ð9@0 ì@33@…‡@p£?à½Æ?Ú›@DO@.uŒ@2Q+@.ëz?øæ¢?±(Ç?ƹ$?ƼG@zD@W~@KÒ‡@{Æ@?–5¨?š•+@/@ Š@k.$@b©Ž@ðº@ (Ô?Ï0?ÄFô?épG@lh?´¶?‚1?AÉ?°å?èú™@#_³@þ?j¯?Rl?>2?={û?¹?¬+2?Ñ'š?ÍFò?æü‹?ê•C?ѹ~?Òµø?´ +?©kq?:?~ÓÖ?èíƒ@/Z¡@ pi?‰àª?šãJ?Ìúú?Ñ[V?Õ¸„?ÚÓ?¯·–?®°%?YH>ìÖG@ _ë@84/@‘?èKU?㦬?æ9X?áct?¶b?®ôø?ç­„?íëß@²@ž×?€°ù?†p?´Œ?À ž?Çï?âê@#Á&@P.¨@BÝ´@"Eµ?ë]T<á[7>¥÷?ß¼ü?Ú,E?Ëý™?ÕÕ?ßÊ?è²Å?½ÚÐ?«úM?è¯@ cf@ .–@ út?Þ)Ï?QbY?tf?ö“B?ì”?«xž?«Ã?Ì8·?×C¨?×j??Þj{?‹üÐ?Ø–?8ºC?KtŸ?ƒ—s?Ãsú?ÆÖ¦?œŒ7?’H@kÕ@ ªX@!¦@%ÃZ@×Ï@šv?Ùø?½~!?íL,@ X@?ð¼ ?©N€?©7x?°u"?ª?^Z…?Us ?²×H?áê?Âk6?•ÈÏ?«ñ•?ÒUÄ?×’?wë"?a“M@$¿^@5º'?ÇýX?`?G©æ?!q?!“7?CÖ?Q¾?kíŸ?bªÞ?jض?to,?Ò$ˆ?ë÷ˆ?µÔš?{BŒ?¥S@ K@[ ?^°Á?hë´?–´¼?y?jj?^U^?¼p¬@•¨?ßë7?0/?«&l?݇¶?ÙK?Ógþ?Í«·@µ5@$η?¶DÙ>šÌI?ÂS?r\ì?ouï?¥é\?¥ßZ?ãë”?ÖÀ6?°‡A?œå®?Œ1s?ŽV?ª¢?Ú|­?×?Ë_?¿µ×?¡K(?Ž,÷?ðr@ ž@¡U?÷šÞ?Ð¥û>öTf?8´@-*@?Â?œåu?sÇg?2Ôm?2ˆ—?•×À?ÛŽÿ?çõ@W@þå@*(j@$%Ë@g??ù<"?Ë,W?ª-•?¤Ö?žM?[Ü?\M?\–?8oÙ?\ÿà?S·?6¡?™ôQ?Õæý?æǶ@ §A@Aš]@ÔÅ@·Ö?ÒÀ>!Ø@$ÿ@?ÿÝ?ü…O?˜¿´?›?‡‚²?Æõ?” ?šL¾>ü0ô>ß“‚?G 9?]:?Ù¢Å@Ü?ïM?Vg?R½è>*˜ñ=Çò>Ô6n>»!¶>„cþ>«“ý?8"?xó?œŒ?¯Ñ³?©WM?£XÓ?¡f?ûµ€?ï ¦?ÃôŸ?Ɉ?à ?Ì4?(äæ<3И>è‘?`àå?|Z,?¤-¨?ŸÄã?úQ? Ðf?t)?b?œ?!4¥?q"Æ?pR–?9ù?í?cäÜ?¥â?[šŠ=Lî>.?AR¥?+è6>ûk>?’š>æ’X>æãû>ç5Õ>çX?-ñ?!µì?¾Ž?;<>ûü>³?%h?g¯?aãç?A•e>à­ >A4>x1å>—Ђ? ?m©;?Iü{>âÄÄ>®Ýu>†…>‹§=kï=÷Ž—>ÄÍ>ëAú>÷ì8>ói>½Ö»>`±y?Z^å?>Œ??" L>ÄI°Sc²?ÒÎß?Óå?«?U…>#Ñt=®)>>Ã#?EÃ?H?ÆO×?Í»ø?€_?Xá>®„1=0ÛØ>_Ç>ÓŒn>•5<ê¼ø>¡ ?ࡾ?âÔ@ Ú@qQ?‰.Ð?g§?X³>ì^?{£å?­QÚ?s¦~>çÈï?è}>蔺?¤Œx?®œ3?€îÏ?is>žåX?y^È?ép•?‰x‚=Ÿ`,>êð>Ýâ™;©/€< ÒX­EÌ>êÌâ?8p‹?e/9?1Šº>ù­m?$;Å?bq¬?€‘ä?«OÆ?˜Z>ÒÜ8>Þv«?kÄY?kÙÒ>ŽÉ >‹5ê=åúh=œÛ_>¼>ìKº>ì_>ìmV?•he?ß)C?šät?Ïä? >×>ìÜÕ?ž?lþ/?vjw?‹õ½?‡]Ø?D^Œ?BçÉ?³Üy?»¤@¦Ù@®H?‰ÓÎ?_\?ƒ‰5?ŽÂˆ?‘b+?” +G?p®?5¨e?¥>„°>ˆJb>ŒÕ>¢FÜ>µ+>­Ü<>¦6>ÖD¾?¯¾Æ?©A½>ðn>îåh?ÓvÁ?æ%?rzÎ?=R)?̵G?ïEõ?ã:’?ན?¾Æ?©aÀ?«¨Œ?­õv?tŸÎ>ï¿?š?ïœã?ÉHÔ?x¾p?}Ží?1Ë?t×?!ø¼?(Gr?Ò»?¢ü=“¯=Ò ;?â?‡óØ?¡yž?¢_å?°‰[?´¤Œ?”§–?†ú?U_Ö?= ¿?d)á?wAÖ?O•.?2­±?0 ¦?-g@?°”É@ûG?èñ;?m#¿?R²ö>ñÍ™?˳?qêà?‡Ñ?ž³´?¦iÔ@¾¡@’ý?§ðL?ªÙò?­Æ*?°´0?ì ?òhå?†9t?o¡? 9?3Á@C@+Ù?€«b>É<?Ô?„—??ZóÝ~?‹Ê?@B?=ü?'yå?cì[?âýš?äŒÆ?»´C?µôä?ÌØ4?¼ 5=ŸÑÕ>ˆö@AË0@B%Ë?ÇU? €?¶Y?·Žú=®÷ð=>Œ¦?Ý@Z?îço?œ?bõ?î“°?ÿO?¬p?—›»?!H>õ Y?µ?(Ü8? +R#>õÛn?¦µ(?Ø.?Ã'¹?½o§?Å.Š?е?ÎØž?ËDâ?νù?Ò9ƒ?qq±>j_¤?d¼«?Õd?Æ›z?±NM?¢†6?ˆ0S?˜ÁY?¸oÉ?¹8c?¸&Ä?kCÀ=°”>§Þ?V?[Ÿ¬?wZÆ?Ú´?¹™¯?¥Q?l ?¢˜¤@» ?ß]õ?…ו?€,?wÙ-?Ÿ3û@+t@&z?Å£?¶yÓ?•ÿ>÷zÕ? Y?=w?Ûœ?Ö†ï?†íí?ƒ!ã?j]ˆ?p #?m ?Ó,?ºHŒ?º‚(?¸,^?¶~.?À¿”?ÀÌ?Å?’“k?åÙ?J?AZ?HýÏ?y|)?‚Ø?ú>ùO~?3… +?9i‹?Ö‡ö?×Yß?îº2?ûäi?Ð'ã?Ð3|?« ?ªUh@vH@dÔ?‡lM?yÕD?vÉk?Uj2?tÍ?yøé?ð-?üŸ?&ãƒ? +0?åQ;?ñÒ°?À1ð?»­L@©Ç@IO@¡ûc3@³@;f?bþÙ?UA6?Þd?äK?ž4-?œIU?À½?øB?’[Þ?KÓ? %>û²?€%e?xÛ~?µE6?¼_‰?ö[,?û0µ?ÂN`?¯‚[?}Vß?{:??M®?<§>• ¯>K8?ƒ0û?„(4@RÕÞ@Z•m@WÃ'@T­n@Q†·@N^X?½ºÂ?¿ÜN?¾6¶?¼{ ?©ßw?¦¿?³«?Àص@Ú?@ ªò?Fi[?66O?°kò?­‡÷?ùW?û³@M@@KPÄ>­Xü>‚ç>Qsô>ÙG?p÷â?yˆ¼@n@Ùö=ÏéÈ>E+@j@»+@§¥@µ@¯D@pa@÷~@Ó ?ï (?ð>ûì?ñ²?o0?h¯¬?¼FÚ?»^7?¨û9?¯iˆ@ +©@]@´£@±õ¼?˜Å[?Œõå?ùú?öj?ý;^?û:8?zÅh?rû.><~¥>‘,e@”d@M?|¢x?ƒ€?Ôr?.P‚?z‚Æ?z­^?©3?±ˆü?»Îl?½/@ +ä@ Äd?Kù?<1?òyá?ó{]?zl?{W?»më?»"?ˆn¤?á@‹ù@ŒhL?°¸?©cª@Nd=@Nü¿@.7Ž@%6s@ucµ@{¬@ + u@ ´?ü1A?ùwi?ƒdÇ?yd@Fl@ @UÃ@Zô@À}?ù¦¾@5ä@p@`Üè@cIÁ?Ý& ?ÍÞ?¤DV?©a•@Hû@ÏK@@ò@K•î@$’Y@N?àC?Ò”@iß@ |8?ûÑ?ã'9@A Í@Zhú@Ho?ú©˜?y§¦?%\À?Zm?¹Ï&?„¡Ì?}€ï@ “@-Å´@H°Ü@X@<8ë@, [@4“‘@9ee@ Š•?Èzœ?ûò@© @_¨ +@”ûà@ub@7V%@ +tß?¸ôB?øLÛ@³q@* +-@BÐ@#Çl?ݹ¨?ü+@Ÿ@a!?¸wt?ó\ó@AÎc@–_é?b#-?°ÏÇ?” +z?bly?CQ{>ò·?˜¯?V¥š?YJK?›?£’±?¬–?´ ·?¨š­?³hõ?Žª?}ŸÃ?0û=>÷fš?Þý@$!²?ܧÐ?‚¤×?Íר@!3?ñß*?”Êp?ž$?À¥?»h«?®­Õ?®œq?á…*?ß{T@ $€@RE@}[@ñ—?ÚåŽ?’Wà?ð ñ@A ±@*SR?Ì[?â¨Ä@æm@pí?~j? g@ò–@Æ?ïæ?ÁT5?}!½?C6I?•Ó??Ö^?λ|?¬×?›£?„-¥?‰¢’>ÚÈJ? +Q?ˆ_²?“jt?¦½?«å?É?ßÝ?¯Œí?rSë?ãÇ?Ìo?ËRz?úRQ?þñŽ?ÄWR?¿D'?º2©?µ f?ì?bB?ªÕâ?ÍUÎ?ŒqÛ>ãPÑ?B5?ä°™?Ö˜?©üu?¹8¥?û„'@9 ?ž³L?œU?kÇ ?dQ‚?g—?0‘Ž?¶ã@~ä@t¦}?Éÿ¸?º/ø@%³@%¸?êµ@?»H?µïä?À½?¤@þ?Iñ|?S…`?¨}°?©nÝ@ +ÿ<@ ¨¬@%=þ@.OÀ?õMÓ?±×C?šÎ?†T?Q>²·²?Ü¿?ݾŽ?Ú±0?¤e?š.G?¾k?×Ê?Òoó?Êgð?Ј?çb?ì‹?^á¼?^x?Ñ ?- 4?Uùˆ?^CU?¹¥„?ïä“?˜?kˆ?r8?¨_g?­Ýi?³{ß?¹‡?¯Ž‡?¡+Y?.È_>\ö9?@3Y?â³?Ór%?¥ÝS?¥ÓR@žÓ@ +/?êÁ:?ÜÜl?‘4p?f£>÷Rñ>å›?Né{@âÈ@ 4?¦Ñ/?¨N;?ëâØ?ù%?€í=}®?`úÕ@.1‰@Þ?W¼q?Më?“ÀZ?¢0Q?$yx>2N?>t$>ð?J?Mè‰?¿åp?Ì,3?ìþY@y¸@±@ Ðß@ +I@ª?£Éz>d?Ú?[Ç?‰\–?)Ý\>òwf?Ïå†@(?òªæ?Ü +?Â0?¥nù@@ÒP3@ô/;?ðú/?ÜWT?² n?²÷í?™‡2?|&Š?‡È?‰DŸ?y\v??Â"?LJ…?`Ïì?Z#Í?’wÈ?˜;ê?‚ž?…åi?e­À>ÆåX>ììÍ?¢O%?£¶:?R×#?F?Ý>¸ |>wÊ?8Ê7?\æÖ?‰?Èœq?ªG”>ÿ­Q?7ì?)5ü?i•Ý?†ž?”+7?\$\?R‚E?¶aÂ?Ô¬û?°Q?˜´y?’UÒ?‹ò?‚q/?aœH?fÎ÷?Þåõ?Ýûc?j¨M?D`ô?GѺ?ct?ŽƒØ?ie?y*M?d<ï?Àc>–žµ?–·¨?„°«>¶Uä>…lÏ?-/>ñþV>ç)a>ç>‰¸>§6³?I©½?=È„>Q%<˜ºn<^Æù=ÛgÌ>[ö>'t>¨Ï>oŽ>ñí ?v?%¾}=Hâ=ŽBÜ=£0÷>Àÿ>©Là; ¤@=/RÜ=ÈCr=çþø>œÒ ?£á/?¥Tw?¦ +æ?’*>æ9>‡+®<ÜH=<2Ÿ>Ÿ½L?ýŸ ?Õ•R?ƒÅæ?1ƒ>a7?°>F@‘˜?üA>ä22>æ Œ?/˜(?,¬>L¶;>$=#)€>ùK‡?X²(>û{É>ƒÜw?yr–?kà +?Ê?*j>÷³ô>ód?Oì;?b4> 7â=Je„>‰Ù‚>罓?$-‘?jÃ1?„†U?¬ÿm?¥Ø?fxô?dÝ#>ñ/¸>ï™á>ìÒí>ìl ?J˜?e~Ô?iý5?m¥™?01>äˆC> >pý ?f=M?e†?a?cŠH?§ ?¦ß4?×>Üs =ßî=î˜=m¨=š˜l?H}õ?¥6?§?ª.?†m"?Œ-?'Ô3?[^?kqÕ?§¼ý?¤ì?CŽÂ?AyŸ=*ù=ž =ÍþÆ=׈¸=áEH>¥Ë>õO>>üf†>ì²Ô?{?HÙÄ?Æ>›.F>Û»œ?Iî?Gn#?#Oo?$ã°?&z“?'øé?«Íª?¸™?û>í°u>íÃ>íц? ‘Ø?/$?OȲ?`S,>ÍÄ^>-Ðœ>µu²>ÓfÌ?=5?B?Š&:?›:°?÷œB?ê{´?=ñ?Е>O‡>=•-?Ì_„?Û—Ë?ÖÝ?ØZ?ˆ¡;?dnä?£¦>ïun>úæ>÷Ár>ðbî>ïµ>ôB£??2FÐ?oî¤?Š +L?­ŸÀ?ª¹…?¢Ù?¼v@P@ !§?9ñ?56t?pƒÒ?p“×?‰ü$?ŒYÇ? y;?i?¤f¥?´³*?W¼R?0S?Ç?ð?XÀ?:Ý!?zç)?‘8J?ÓÄ8@ “?›Õ÷>Ôì>°Z.?68·?¯5?È:Þ@×ú?ý±?RJØ?LÖs?Lì>ÿY>òPï>ò_´>òoò>øOö?±T€?²«y?¬üm?©˜‡?U½c?U_?ÂÖÚ?Îb|?:þA>ó¹?œ&?{?Êóv@Æ?àîV?ÎîÕ? bK?s‹t?Æs@ /?¾kí?0d)?CŽø?ZzV?Lá¦?J6?M™?Aq?¤ËF@/Õ!@ W2>Æc]>æ[?a÷?û7?Ü?:#Ø@H`@ç?ô´?÷Œç@.°@)\±?õ? ?õD?k‚?º?(?±?:ê?B`Ü?Oçw?JþÏ>‘ã->E7?#ËT?=¹v?δ‘?õß?žz?uþZ?Dæ?)—î?vze?ŽùE?¤pA?¬?uKÕ?BZ$?ÁÒ>ö†ê?4ú6?jh(?Ù¦V@†•?Û×î?vÙÂ?x×{?|hº?Bd9>ÞI?PÄv?¯œƒ?­Þ?¬#H?žyî?Œ…?‘'y?ÈG?¯Sû@ÊÁ?ðÊû?¹¾{?•kÝ>ù+†?D–;?ÁmF?Î&?Ú}¥?æˆX@¶?ëÈM?6{4?CÒ4?^£Ø?x,Ý?±”?¡}ó?B4?$Ò²?¶§Ã?©|:>û›3>ìÛ¬=¼Ññ>Žh?º”c?É`À@#þ—@>øîç? +ÑT?•EÈ?—q÷?Ýt÷?Ó¨G?ª†:?£x?~F?tKÓ?£ˆy?ª Ò?`<`?W«Œ?yL†?|úf?°¼(?«x¬?²öá?ª´H?†™?…Ur@€¶@…Ra?„(Ü?zô?ºˆ©?½š?ìü"?èÒ?2V–?7ùó@&×@@'/?¯œ‹?±Éö@M|S@PBÞ?Ú|k?Õº@œ¯@{?ÂEá?¸ ?  [?¢U|?‘%t?«]?p¹ç?gSà?©w¸?¦9@‘Û@|?²L?°pÈ?ð<˜?÷M?ªG>ú̦@m;x@sÀÓ@d°@\Cƒ?œÕ$?—{@Š@Ÿ ?Ö U?Ñ@‰?¼%+?¼@b?«Ôg?¤'?÷o?ûÜ?ô‰â?ï{g?ùü,?ûx@»@@'¯ˆ?h)¼?aE9@',@èn?ß/)?çÁÝ@eó@´—?ün@Ð@ ò´@#¹é@[¨@[4w@ +¬Ã@â?ŽC?‘ss?¼q?¾\-?Õ C?ʦˆ?¼p?¾J¢?ÔH?Ë ?±8??¸¼Ö?Ò†-?ß8@c2@bqa?ßsŠ?Ö/Š?­Èž?­f‹? XÌ?¬>ÿôª?ª?iY>?iÂr?Î «?ÖK@ +äj@ `ì?û?ÿ*i@íØ@·8?¼L7?»yÆ?E_?“–?†P?Œç}?¥Í¯?¦Ü*?Qy?›÷õ@.æ\@7vm@„q@„ P@OTl@Qw@›@Ai?ú¿«?þY@ïÖ@ ÄY@i)@ ¢C?ÍÜ3?Ó+$?Þ©B?âÙ@02o@Ûó?›°{?—ú?cÖ ?nô®?úEí?òú5?ë°ó?àz|?žc?›kM?Ô˜§?Ç*9?q?mÅ8=N©>->_?´a?µÀr@@z?»`8?¿AŸ@2(g@3°ð@!Wd@(ª@KK @K…Í?{mÏ?{+Ò@Q>@-ë?¹úø?­öI@8L(@:íµ@Pc@VQ@4¢@ÅN@/ @­?ìa_?ø5S@_³@æ@3G@Þ@Dm;@Bè³@c¯,@b˜­?ír1?Ú(X?Ñó©?ÂÃ?Æ’?ÆXK@Tå@qnÕ@z&B@y/–@‡•@‡âb?Ù*N?fù¤?7û™?3äa?¼Ç3?ÓT +?ìƒË@¸C@êK@**@!Uz@† @'|@/£µ@~æ?÷?öós?öåÁ?û²î?ú²¸@,XG@V¤+@zÅî@‹°@q¦Ö@P†`@'¸­?õ*?úh»?ö%È@Þ|@G8C@)ÁË?ç®@ +Ê@EË6@? ü@$£;@Ÿé?ÚÅj?ìtÜ@8¯é@G‘Ÿ@f« @R~V@ ¤…@B÷@@ãH@@éŽ@8+@Aå¤@TÝò@K7T@‰F@Ž^Q?Å®é?¤x[@ ch@Ë•?Òn?ºuh@%O'@3)¥?üQÛ?Ô̧?¼Ó6?¶­¬?û³>@,è@Ú@Þ@@;Â@aÏ @S»?›Ÿ_?ë@"1@VÅo@”>È@UCÁ?ð¢?†!?r[C?°°û@&“@y_@ w@ ©9@ç¹@©@£ë@x}Ý?ê»…?øåk?£é ?ä²@\4~@píÄ?ác+?§¬|@(º(@>ü?í>·?´rI@œu@D/ú@^!?´0T?ååÕ@íh?úvá?æ€@ßX@0ç@;PÝ@HOy@.Ý+?ØÊü?ÂØ?bÉ2?ŒC?ÍÍ??Ñ“×@Ã-@ÓX@EYÝ@RßA?é„\?¸Ú«?±3°?²@¤@$üo@LqS?û6¿?™ž?ûˆ¼@&|%@ý?ªÑœ?Ú”­@;Ëa@0ëŸ?Õ´@¬x@/¼@Þ£?¥©w?@×Å?zòC?¥á?º? TS?oN?ßÓ?áNá@X?è?›@%?”J£?0Y?8èó>©">©²¿?˜bg?¯¬²?×cÉ?éa®?Ëò&?Æä ?žá?HTs?áÊÄ@\°k@8›?¤€?£þ?Ú¥?ÝÊû?´œu?°ì?âÇL?èˆh?ðg”?ö¹—?îÅ?ô•Õ?Ô| ?¦§™?»nº?úä@?ÚEþ?{?L_ì@-2$@(Ø>ç >ç Ð?â@@‹ö@$ÝÊ@,ùÑ?À?0Hj?T L?}+§?œb ?ä@?è ·?þ;ƒ?浌?ö>ÿ_·?)ö£?8íP?šp??«Ú²?«Å(?«±0?«¿?¦×¯?š`?_?²Êw@Ï@ ‘…?‰a˜?<(@@H¶?eß>åÚ’?ÒÄN@ ª5@ìâ@ +Ö{@í@ è[@IJ?Sê©?5'ž?]ž?b‹Ù?š/D?£®?ɱó?ÖÂí?°H?Ž%n?Éã,@O(}@XFM@-X;@*£Ï?‡“ð?ƒëU?Ì?á"t?û«k@Þý?ᨔ?¼J=?¶â?±€Ä?¬ ?¨²‰?°ÜT?«?¬2Œ?¼¬?ÁÀÉ?·™j?§Ù?t6~=ˆ/ò=ð5?a|0?sÂW?uŶ?<°?®—?§Gµ?5´?ƒ£Š?M‡–>! +w>s{d?¥6?Ÿ½‚@…ø@ Ê&?×Ð?^/«?¡¿'?ÙÔÐ?Ì[æ?Ÿ |?œœÝ?gCÂ?rpƒ?0¾ ?Eˆ¢@ö@<&?ƨ«?„‹.?Ælq@%`¡@"¾@;œ@—«?Ñj?Ú@??™>?—'å?²d?±68?͘9@3?ì%¾?ÐË¿?â=Ÿ?â›Ó?ÊÇ*@#ÑÏ@6`ñ@y¥?¥¾‘?—B ?›Ã ?°èU?LŸ½?)[?g½?OúV?šÒ‰?­á?¾Ò±?·£?ÙŸñ@ V ?þ¦±?[ê˜?[êR?[é¹?[éD?_±:?aì¶?—üÍ?©»œ?®?ÿç›?ìæP?·“ ?ÃÅK?€O]?[ÿä?±Qz?Ü Q?¢*ì?’?' ,?JÃ?o½Û?ãŠg?ߌ@¹„@< ?Âjæ?’xÎ?–}¯?¥pî?™×}?2´ƒ? X—?¤#d?¡y?<Ö‰?1‚˜?ëô?…N­?vð?‹7??ŒöÎ?[–?_PQ?J2? 4?f²p?^K‡?Uè?±Ð?E¤Å>‹b½?Pr‰??O?Øu>ê?¯å9?¡F±?->Ѷ\?€Bi?®qK?†Ú?<æØ?x¨?Ùõ?º¨`?KYþ?X°Ç?c4ç?wAD?þÜ?'€?ƒÀ³?„L?¹s9?ã£7?±éž?f8ê?6 +*>·ëò>µ‰?Ea?8§¬?>Ýù?N,K?)›?i%õ?_>Z?R!"?–©?‡Z{?…’?«žz?/6¤>%Ñf?§?\ö%>Áo?>r÷ñ>áÌí>ìÈ7%>}^Í<Ì“q=Œ9<&=·ìF>´S>˜TÂ>xø7>›r.?1ow?'ì>$9â>øU`>Ÿ&>ƒqÔ>ûDU>1/>»‘@ ±?Üä0?ƒä?-™]>¦¹Ó?\B¼?»Vj?m +=Õû">%äc>äcŠ>ä>º¿#>»=>½ƒ²>¿ºŸ>î‚Ä?–í>} +E>õk/?¥â“?‚á$=?Él> +ko?¢[n?£ n?Ù?Þ’?4µB>×4¾>á2Ø>ç¡Ë>î/>õ=I>øçì?qß>þ)>ô >ÜwU<´I <Å÷?¤Rÿ?©|?<.>ô•>*Û=@ 8=h<Í P>Øj¿?[Óv?9n>ù'B>ú>úñ?%4Ð?å¡??äË‹?¦Ué?¤÷¢?`ét?R`Í>9ÀŠ?—@?ã–!?cA8>FþU?0|?Y?<<Å? ß—?=tR?°È¤?œW†>@aç>Uªð>¸Ÿ+>µ{´>³G>±â>®¹„>¬\ù>©ö·>§€c?m¹?GŒ…?Y”l?lÊö?št>„"??†¤?"i>B>¨á¨?|Ã?|öe?Ç^?y& >ëþü>í¥1?*vJ?.¤^?^íç?mç,?x2?°?A‹?°S?gã¦? °]?T[ð>—2¿?Õ`?ëŽ?‡]P?P”t?kT?žpÎ?™¼?h%?ˆÏÍ?KU8?O–‹? ?Šk>â{>àø}>ýe>úhè?‘ÏÈ?³¢Í?N<>ïŸë?8»?h¥?4§—?°y?ˆ]ä?ç¸e?Ôþ¾?´/?¼ØÑ?ÛfÂ?¸…È>x¾ˆ>·*‘?pp‚?jpu?!bY?$Øn?2g?&Ý?ªí³?´¡#?Ô >ðó?›æ}?½Eä?²Ëã?¡Ä£?šSX?žFÊ?¶ƒ5?Éhf?‰6Î? +??>ß›>®]Ç?8C@ê@ å×?èæV?ª¼Ÿ=ÄŸ>–ÇÊ?N#?de>õò>òFw>òV‡?N?µÖ?µß©?µí?µ÷ô?ÜÝ>ò¼É?à^™?òÚé?1‘>òõž?=|‡?KC?¢8{?¾°Ô?»¾*?¶z?G¨_>éx±?B-ì?'I?dô ?@§i?±¹óàêÒ÷¿X?DãÔ@7Æ@Nƒ>a¥>È?¿¦?Ç•ì@™<@· +?;Å?‡(J?½ Ù?º‘J?£<®?¡ ä?iJ ?Rˆ³>ïÉ>íYÿ?£È’?¼üï?i²H?CÜŽ?â›?ü¦d?Õú?ÊÃ`?û„Û@ ~?`(>5Ð?ºô?*»«?ØZ? !š?ï]³@7t¯@…*?¸2Ä?—C+?vÕz?p¬ò?g>S?­J—?ë«i?½&­?Šv(?bÑÔ? ~ó?W Ö?‘¨y?¢¥×?¹“\?’Tš?.Éo?'MÔ>é„ú?ç?w½G?±ßP@Ñ­@!P›@7cá@ÕR>íJ1>ÉÛF>ËD ?h¦?i°?|pQ?Ýô?qÌ>ý0?-Dê?¶Ãc?²q7?©ÿ…?•Ÿ? ûš?Ró1?áú?Ý8?™Û?z§‘?yþq?|è¨@?ή@@»?®ªð?¼^3?âþm?ß_¶@Ÿ|@¤Û?w8ó? ?^Û˜?tÆ£@0òÒ@,8ô?úò@!W%@)ÔÆ@CêP@aôa@“—=@”@‰°@‡99@ˆ‚@t3Y?ôþ£@ÿI@7£%@5Z)@8@Õ­@jxr@r"Ø@BZv@@±h@(çÃ@%×?ð¥M?î'ì@.ÿ5@6̧?§5›?ªš?¸å?ÂÀA@!ƒ@/À¾@h@(@ +@þí@†@â€@#‹@¹ÿ@sP@6«:@9·N@4H`@XˆÎ@‚Mæ@fg1@:f@Â;?¾?Ï?Ù,{@s@°«@5Oµ@:v@sç@x?4ˆû?&/“@µC@(@6lN@#c[?À­´?¹h¾?i¯«?Xp£?“ñà?—‘5@ +Œ@áÊ?õAù?î{‡?Ú͵?â+‰?Kiš>üˆ?ç¹Ä@aÞ@#È@@d?øÄ÷?Üõ±@VÎ@](@Å?±æ™? ›$?Y¼ï?w ?´°ì?¶©V?þþy@¥²@o%@t̶@ŸÌ@V?ÅÈ/?Àή?íˆ@3“?Ãjf?‡L?϶@®?Ï~?Ãä?‚»}?ù‹p?ä+Ô?Q¿ƒ?\¯Ó>êY>ê†'?pK>ߺ­?¢ú?´Û‘?°”?°Ô¢@ÙÔ@ :?Ô1Ž?i,?ã Ï@J»@2uá?Ótˆ?ÉžÝ?ˆ‘t?˜Ó%?å ’?è] +?èuð?èt@Nû1@[¡ç@$7G@]@œj?þÞs?½ y?%j·?’Ù?grÚ?†±l?ì*?ù?@&ш@³N?ØÓ?Ìæ5?úËþ@ Z÷?â_?¹¡s?ÊSk?âÑã?åó?åíÁ?èY?ó'*?ð»n?•Ö?4‘?+²A?‰?¢Y?µÄC?«O`?ªë?m÷?üÕ?sÙ?Âd›?¶è«?¿¤?Ò¸M>òþ>¶p@CN²@^”¹@º†?ÜrÁ@J@*b@…@F:@‘þ@ÞK@ æ?Ç4?Ñ>]?vçÆ?b«~@ +„@Õ&?¾m!?†Ø?¬¶×?Ãö‡?Í¢“?ñϲ?þ! @Mβ@FŠô?¸]à?¡xè?°¯?ºÉ¨@ lµ@(¤ë@›?œ–?Ã&ª?ùñu?á Ú?cÈj?n:q?¼ +Å?¼—_?–_?Œoï?‘̤?—&h?‚ßb?Ñ3?¹ ?_YÝ?_L@ÊÝ@P`@DÁ?õ=/?œl?+Im?Tü_?£Í?¯þÃ?ÚÙ¿?VŸ@7@ Âå?:âT?,m@hÒ@$ @d?Ý;?ÝõÄ?ßõ?Ø_‘?ž:‰?µ%7?‡q¡?‹—Ü>¿·=çÔh? øU@ ãë@&¶Û@SäF@<:?Ë +Ù?Å/§?ùs]@óÈ@=›.@^^m@)P¿åm@‰@ î@ ŒZ@ ªâ?¦[?F#v?ŒƒÓ?ºì?»í?Üšœ?Ü®¬?ÛWê?Õy‰>ÙÎö>“?Ž‹ø?Ý(Ž?“:X>´KI>ÑžF>ߪ*>ÿIß?ŽŸÐ?‚?…ê¤?ô?Buá?ö>€,u?‘‹?Éú'?® s?*½?+!í@Ø[@ ÆÑ>Û-x= Ô>`¹>uO)>2Ô?, +µ?ÚÂ’?Ó1ð?Ü>ûÙß?aðu?b%j>SÒ>-Kf?›ê:?Í2²?ËOA?Òú?ûC2@ FÒ?ß·?ŽŒþ?ƒòj?kÑß?*Ú9>¥5>Óöž?ÝÔ¢?ä„Ü?2°?¯˜?óf?«á?1 +>èÔ†?k/=?¤w‡?ŒÏ»?jY‹>߃?›Ð?ŽÛ÷?JMx>†´4=¸7yå¤>3Ÿ9>ÜÏ>¶h*<ã¶>SÚ>Š!h>ôÐ>Ç.ø=ÛK=§"™<¯Í>$m>øiÆ>›‰ÿ<¨šp<­ÉÐ?y]@5„}@PÌ?@> ?º>)Êu?)ò?cƒv?#Õ>¦Î/>覜?H2-?>á>äšX>äÈò>äòx>å5>åA>ånÎ>,ñ>牓?wV¥?iO7?F©n?*–a>.w“>3PQ?5í?$²?Us?[\>‚Ÿ(=2Ýì=-…=(Ã0>mè>èK>è/ó>èOö?2?Õ„9?ÎÎ0?r5º?rXó>ùý¼>é”?DX?U‡~>„¼_?m³?i´~?eK*?^cœ?;ºw>êW?n;?‚^®?qƒþ>+OJ>2V=þ¹“>ˆó>º}Z>È>˜HV>—Ì>¼b$>ÂJ·>ëƒU? Ù?Uðh?˜¯%?·d?‚Ê•?Nˆq<ìÈ=ð=ùf¨>D >æ{> +¦->P>qÎ>}‡>ø&‰?LI? «Ü?"ƒ>ílÁ>òó>œ¬>Å‚œ>Œ†8> M7?&^&?FÆ%?±WJ?­”˜>íî>íx”>ÿ8?êk?cá?mß¿>Ô +>”w?S›P?‰2$?¯À?ȃÓ?• ?L`3?->²2Y?ÿ?Eú ?…H?òÏÎ?ð‡?Ó•2?±¯>`w^>b€?©tÛ?«¨=÷ '?žúh?³„æ?ƒd¬?q.€?Ë# ?æ;Ò?p³¹?°H?;°â?`IÞ?Cû?4«$?2œl?*?.ðÔ?3Ù>?ž r@Vó?ù¡÷?pa,?k26?C°‰?<ÈC?*3¾?.û?“Šƒ?•7ß?ŒÌ>ðâI>ð¹>ˆR6?©Dƒ?ÏGA?‘¬ß?q<[?qJ‰?qZ?®#ø?Òî?Ì«?Áä¨?Š*«? ˜é?eän?§]?“Î?`˜ú?˜òÒ?í(?á ?µŽ?§†ª?m]W?J•¹>½$>$%?µÝÞ?³•¦?\%[?Z0L?ï“â?òÆ1?d’;?Ms¨?$òð?$ûò?“¢?‹—?°ÇÑJ>c>Ö¥ã>࿶>ó•Ä?à·@,t ?·ñ>­È?†º?åÈ?«\?G=_?\í?ZVE?’CS?ê›k?ÊY>?wœ ?›´õ?ô +G?ãò•?½µ,?ýò÷@v„¢@Wøu?·žM?À–Z@nP@ ø-@^Â@àU?õ)¥?ô…A?¸x8?·öí?fGÖ?j”ú><‡>pfŽ?-yO?@E»?Ž>õÄæ@-$c@N4?ûv?Ôë'?´£Ð?«p•?ˆ9+?v4)?Á€Ö?ãƒÚ?Î ¹?¾m¨?¸0é?¸Ø5?“ÿ?{•[?Âå?êÍc?¨ñÇ?vÕ¸?¿«7?öîq?ƒ¢š>„ >Ç3>÷& ?ù?*Ñw?•áx?Ü,•?—­ž>ùU?*¥›?w‰?w”E?w£Ü?¤ÍK?⧇?«]û?”™?‡…?÷ëI?§¹>{y +?8T?´°J@SHò@=àõ?÷û?Õæ?¹?hy?ƒE¿?šy—?Øló?Á® ?Š¹È?‚¬n?DÌ|?vn®?Ðq_?¾_œ?EÏ?GF?q›?†ø‘?¾’ ?Á`¿?¯™í?²Ýð?ãu +?Ù‚å?–ï ?ª'¯@Ξ@I­?ä|?äÐÏ?²I=?¥‚?¸L†?Íåe@;+¯@)‰J? °Î?<´B@Ž+@ 4«?ä$?Ô|?UUÌ?o Æ?»z5?´8c?Vá—?‚@.fS@%$l?z$N?{sä?n½?k.î?•¤V?–Œ¹?Ñ …?ÍCA?…?!Pò?•ž?¯Mª?»äæ?¸”ð?€¾À?…W$?÷OÛ?÷ù–@wi@î?z¬Ø?…¿·?ú¸w?ûŽ®@8ø@ÉÌ?OU†?KLP?G?Ä?]`@@Ŧ@hÒ?ÁLD?Ê?àJû?Ý',@SÓ?ÿÁ?Énš?Öl­@x@XÙ@<=û@1gb?…¶'?‡v?¼ ?»n?¶· +?®~A?’nL?¨$¿@¿E@ Š™?¬éP?ª¸h?¸`R?ËÅÃ@ —0@Ù‡?¼SL?±aÆ?:No?EÌ?—¢Â?«@&„3@Ô ? }J?ª¾ @X@ ®@.„)@"Š?í¼Ä?ô€+?úm”?ßyz? ?Å>/%¬?0w@OäÇ@@9»?êÌÍ?ëE ?úñ¿?÷Û?îd€?æ]¾?ž–ô?«kÁ?úá@ŒT@BÜ@M?¬¦µ?Ýø¶@SðS@PZ@1|ê@VÐ?°tm?¶‚î?½(Ð?±Q,?z Y?yÁ?m7i?ŒB@ô1?ûŽQ?»Þš?¯Ø4?yÔ?z® +?K÷w?Y:–?9«ò?RBq?‘7Ä?Ÿj@9@ù¸@~”@q–Û@Ì]@#Lí@mÁ‚@lyg@T@C?|)Þ?„³?Œ·?“zÎ?šå:?Ÿhx?‹ÕØ?“»Å?»?ý?Æ·Ë@ @´@ Ü“@\°@]¦@†{Š@xŸ?ù\s?þyt@>ß@ʽ?êž?Þ\?Á–Î?ÁÈ“?ù0?ýu @5V@/œ1@N©@HïZ?ÓÜò?Ú%ç@(›h@%Øa?âs?ÞŸB?š?›|:@N¯n@N$@‰9@‹¢,?Ì`?§Ô÷@ @y£?ò—?ðº(?Åb?€\E?Œ‹¤?™q›?½a€?×À•@Ÿ@t?èå?à´°?Á®?¹zp?¢hÀ?§o?ߟ~?÷B@[+@ò"?ØNB?¥*ÿ?Ò¦b?ò,?„„`>úÛ…?öÌí@3X¶@ËË@ø@C»Ž?ÊŒ?â%M?þ}å@­‚@(bÛ@>]#@W @,â@?àob@ µ_@?*¹@¿9?ǹ(?Æ}*?ÁÖ!?¹º¸?É@´@9™@Ey™@94?ôë3?ì‰Þ?Ñ b?⌶@¸®@ ¡?ü @¦@KžH@LÅ@2ãú@:èJ?ÌÚÒ?¿]ñ@˜@ÍU?=xÿ?0Å@¦r@" @@7ôÊ@@¼¥@9’j@6o@UÛ?Þ©@!@6MÂ@9G_@<Ø?ÈP/>…õ¿?{w?ò ô@c“@=—~@"ή?æ@Õ@N@IT?ì\v?Š·Ä?­*Ð@ Gb@xã@Y?òp§?µV?²ýÁ>>6O=–Y¬@‚¦@”-?’—2?‚šÔ?ŽW +?¥$?µ?´OØ?ÆGî;ˆ?Sm³?fq*?†@}?™ÿª@W@<‰?ñŸi?m@?Ñ-æ@ 2@ 8“?Áƒ’?žKí??M2c@Î)@ +øe?ƒ¡[?‹Æß?ùÝ-@›@j@­!?w^Ô?$Å?­'8?ÎÒ‰?ËEV?×´6@¶P@H@y#?Ò˜ +?ªM!?Y¦à?v?{)?iÐ×?XxÈ?Gæ?æ‘?êA?ê)×?ê§?éÊ?æb?²’8?¥õ@?Ó1W?ä…ß?õœ.@™o@’£?›e¦?Š†£>zNÈ>_[?²ûc?¯|µ?‚OÞ?‡ìß@ Òî@#}@@ +&n@!?üûx?øX@8@-ª§@ ö¹?tI—?’þ3@±@ <{@µÀ@®Ù?Ž5[?ŽXë?ÎÝG?ÔɆ?ð¢L?û0Ý?ßÖE?´z‡?ÿ¸P@?ÃÓ@3=<@gó@äÂ?Œ;ú?‘÷@Ï2?ëz ?Ø9?Ý}ö?™Q*?eÕ‡@4'@Z‚Ö@1?™;Ÿ?¦rL?§O?“Á?™Y`?žD@%t@,Ç?Ö0t?¯Þ?ÁS›?×n™?œ¾¸?¡Ö?‚?þsÌ@$?b¹?b›?¤Ì??¨#”?¹¡*?Í<‘?íÍ?ä\?¾Tš?²q?Ì18?ÿ *@°@†ñÙ@ŒuÈ?‘x?ugì?û>½@ Áú?í±?íN°?¤âØ>e<?Wà#@S±P@U>ñŸ¸?©?Ì…"?ßýá?’‡*?_Ðo?‹‚A?™v6?’n?¤™¬?¦Âr?¢WU?œ×F?˜‰™?¸úU@ú`@'+•?å¯?šàß?‘ +ó?d?v·?­üR?³}ë?“=þ?®çñ?.œ™? !š?¤DÔ?ÝëD?ˆ ¹;“J>ó‡Ø@¼@;ý?]¼à?]gý?Çp]?ÝJû?é¢?ç€[@ø”@<[M@$±w?¿AI?³º?‹†b?…€J?^ >Ü©±?±”y@ !ž@:@E>´@5áÔ?¹ž4?¿nÇ?x…?“ôà?‰Æg?”©Ú?Þô@èç?ô’?½ã³?µqI?Ù„?ñ++?ÁÕÐ?ÇBß?¬„7?¤÷P?ü3d@*@ ÿ–?„X.?‹±ï?–æ-?Šãì@ 8â@Ð@åÙ?Ûº{?Ï'_?¶~?½îC?í\æ?ÙZÑ?˜Ê?žèþ@5Ý@„¸?±/³?=ù?io>?¥K#?ÀÍ…?ú÷?íÈ?¢‡§?¦û›?þ. @ ß?üe>ÜK.?*µ3?–2ä?·Á÷?á¦k?ÜìÞ? L®?-D§?Éfr?Á8?‹‚Ì?Žr7?noÆ>•>®?¡E]?œh#@#ïµ@RÆ? ª?„k?V{1?LÝÿ>ÛGè? û?ÞÒ¿?Ùîî?¬×¶?“AÁ?ã}ð?ùpE>å¬=9`.ç?<¼Î?‚h'?€Ež?t}‹?3Ò•?ž?]c?ØF‹?à’`?×r>?ʉc?1—M>ý«ø? $!?¼ææ?…Í|?X©`?×!?´é?§xë?„©?‚M?y•?‚Õ«=Îp=‚ ›>æ£Ó? +w¸>í +™>çkÌ>ÊÚ>öÂß>¹V>±á‡>»x=]Ðà> uÜ>ã¥? F=?/Á?`ñn?•!ê?± §?†5Ø>ãi»>È… >­AÅ>Qû>+M>ðœ9>¹<‡D=ñ; >Ð/ñ>‰ À=‡K¬>“®­>ÒSÐ?’9?tps?òÔ!?”±"=êÚ=ÉJ?ô @-m#@ñK?DçÝ?i>Ã"ì>ó÷Ü??AiÇ?N2?d?8*d=ì9v=ã=Ûr=Ó>ÓJ >åOD>ÅAâ>¸3½?`h›?¡ã±?sª?ÉP>ûiz>ÁÇò>ÅÛ >æÑ‚>æóÜ?µ?jŽ?‰‘É?—|>¶ZÅ>€Ë3>èr>èL>è<ú?&õ?Ÿô?oˆç?®ª>ü¨!=Yö9=Wöß=Ê¿{=ÜV„>¯3±>ÍÞ?~ð*?§ß>?§Ë|?§°m?Jï=…Ä=§ž¾>ì)>ÐcF?Ƭ?ºap>Ãïƒ>ÂÁ·=¶>:=ª{°>ªi>½wg?ynö?˜z?—Bœ?–rÌ?¢µw?°Ÿµ?fb@>nDL>þOK?#¯?H“L=– ?#¸m? &¨>Ÿt>œÎÐ?ßq?ôS?tX?„˜±>ÕN•>>;¨?ʲ?:ƒ:?„ï|?£"’?O7!>yMÝ>t>$–?5/ä?.¾ë>í…$>è¨'>Fá2>@y9?eøÒ?mÔ|>‡}¸>$z?ƒ}?é?:„×?LS}?Be?3bô>Ÿþß?)qê?ÁÇû?‰§§>\Á·>ˆdD>îÆd??<ö?éÍ#?Ôqf>ïÆ>ð$×>õõ >ð§ü?éé&?îÆô>_{‹=/žð?Å?ï‚ß?’"/?a›?—n?ª+/?Oàƒ>ïÛ4>p=æ/Ú?$¦?’rr?¦ò?Øly?´ÔË?#¨?&0_?(»?÷‚>Vo>r‰ +>ë²?d(?0â†?.›?šzq?‘Ø2?€[)?z…×?nI·?q&µ?q3A?qC3?Že?“áJ?¶Zu?Ðè?·sž?¥[?Wí‹>ÜxV>€Û<Ÿ›_>J´ã>ñë>ó9å>üÿð?$º?r&õ?„ª?Õžr?æ³—@&¨4@di?¨ÓÈ?¨ƒÓ?Åõ=?ÆN¿?sÁ'?rÈ@?I“é?CØÀ?Œó?”5?qï_?pî?DZ?(¬'?2ä•?AAä>Ûz«>›¡1?®W-?÷èð?‚¬¦>¼Åü?sÁñ?¶Ør?EF¯>ôõ?Â_Ë©>tY<>õ]’>õk`>õzÍ>õˆ¢?'¶Z?& 6?ÓÊÝ?ã„B?rÐÓ?X-é?„¥:?†k—?hó8?f +?º@>ãØ?õFˆ@\Æ?&y < ?0­ó?v€ ?ƒ6a?Š…:??òK?“"?—Æ?Ç»;?¾‰?®]?RÜ[>÷r?|§?«v/?—ÞÊ?”‘?«¸u?¶§+?—m?wk´?‡T?’"f?Ú-@À ?ôÆc?šFx?­eË?Ôõ?œS>À’?¥ÐÓ@<-d@4?xÆ?‘|ý?»h³?»Œ?µ@š?Äæå?ç" ?éš%?øos?Æ«$?5K?HZ¿?“À?„D?YÚ€?¤Jn@ñÂ@+?œcM?–æ}?˜%?·ÆH@v*@!®?’k?ŒÈ$?>g¾?s{{@cS?ïêÄ?gwç?Ç0Æ@’ßÞ@Ú¼?~ãÐ?døí?ݶ?M/@?ëp†?úð!@6ùÅ@%~|?•¥?°»I@À˜?ÿðÂ?MUë?™Ñl@LŠœ@9g:@„o?ýkC?<}¥?@N“?U×Ì?…‹®@H?êE:?z3?pá5?=Ÿ_?8ç`>†²˜>>—?(ÞQ?4‘ø?µ%U?Ïw@;ÄY@#Ø=Ǽ>ß­@“•@ +¯:>1Ó¬>¾œ£?Ëq?Í?Ï!ë?×J ?óÄ?ÞÂÛ?z·?‰Øœ?Ûok?Õkp?´1?Â]E@$ÝÇ@$ùC@"î@ÖX?9‡ó?SØ?Ñö7?ã[@5c†@-Ý?ðc/?æ4?{‚D?£Z¸@5ÚÎ@6‹â@F‰1@;k@Øï@»?ŽPP?œ Î?ÐÛ?Ô3<@[?õ<‰?s¹(?Ÿœð@€q@ +É~?퀴?ß{n?½ü²?Ätf?Êí?ä·Œ@Ù¯@.¿¾@‚(–@^ÉŽ?p??{ë¡?‹Ë¡?³‰²?¢Ñ?Wõ}?‹@1U@ 9Ÿ?ÍÀt?Çõ?©ŠÖ?±@?¼º?ÃM?ÛÆö?àD?úÇ?õø?×ß°?¯àç>Øç¶?iÈ’@<š@HÐX@2`@Wþ?(…‡?`N?úáÌ?ìÞ?¸mL?øà? ‹?Gl¿?Ȥø?ÇÔ¡?»Ë~?³¦?SY?©ï?Ž?‘íE?¹üÝ?¾ñ—?ú1¹@g@W@"ŠÙ@;V@/P%?ú¶@¶@ÞT@Z?¹˜?¤…H?¾?BÅí?컾?Õ][?y³˜?KÊ@ZI@Cc@‹é@ Dˆ@)*@2ñ;@jH@zâê@§©r@œ§­@ùa@Œ@i˜Ä@aº @?ð @?6?ùl?ùñj?ûš?ôq ?Åž˜?ÆJã?g!´?’Šd@=@±@3Š¿?ÊÜ?Ú¬@4JÙ@.®ï?œE:?šì@‹‰@‹¤Æ@mÒ@r5²@.@(¡@Á3@ e?…© ?w×@Ü|@ˆÕ@ûÈ@‘@ [¤@$Þ@R1ë@[rv@±e@oî?¯Xa?™Ø?Þ@]?ä?ïÚê?ö÷ø@=@Yš~@GÞn@=wÔ?øN?»õ@ž@–Ž?ÅI?—¤ @?Ï@„æR@hn¢@F¼ã@4bä@%g#@¦'@­S@*Q.@>‡ @*T½@N…@+Âä@P¦3@;ïP@Z@Cö@‰À&@W5›?·Ï…@ v@¯Ý@d=?@y·@ +±Z?ëÊ?ò!ö@›ø@˜¨?émÀ?äÏ’@’ˆ@¡%?Ã/á?¯ð¢@»†@àa?‚ª·?€é@?ü@pE@D*G@MEç@7?øØ@7u@F[~@ ‡µ@’²@6ó"@W ¾@RzË@N{!@)‘+@>t??¶K9@ +@5¦Á@.ݯ@ ˜â@0Ê?¥y?é?9çÆ?\§T?µ-,?Ý\þ@S9™@E¤?©µÈ?¯€1?èðÞ?ï#@ùÎ@ƒd@"`ì@I?Ñn?¶Y‡@.9@à­?Õ×S?¬0?²Ãº?¯±Ï?ó_¥@áa?è@Â?‘?”k?µ‹á?“=ä?0Â|?{?ÄqG?Ê•w?DzÌ?Âç +@ +%z@C´@Ÿ@ Ð@&p<@*ßê?/âó>ì%²@1C@&ÐÙ?ÒÌ?¤œO@&‘@E }@ +•ï?²)ÿ?Þ>Ï@b@fÑ?ßlx?Æ\i?wÒ«?ŽÏ?í{?ôÓ*@¨Q?ÿùÄ?±.Å?±!ˆ?©Lê?°ÂŽ?èøÚ?à8??êWé?ÿè‡?“»V?wE?µ’ÿ@¾?Í}Ñ?3’ã?/Ýî>êØH?%¡/?¯üy?²‹?Æk®?Âë?Îc?×I?ßµ‹?çëÍ@ +Ée@?,@%YZ@(·@áØ?ݽä?æì±?é.T?Äkã?hþ%?†”4?Æü§?Æ¥@.mþ@)¸¡?­›ñ?¢ >@C»@Oé‡?îô#?­íg?­ÙD?­Æ•?æ6-@~@ ”@›Ú@9?»¬K?ÊaJ@ F@¦˜?‚¥?_u@Œ½@*M‡@é•@œ1@`[@@5Ë@X}?ÿ×è@ +Ž@¤±@ ˆ½>ßšA?) @Aj{@Ua?ÔÒ›?¦«á?ªÔv?©5P?©Ó?ÇZÄ?ÇãÔ?•5ë?£h?êñ+?í¿å?'3?†@1$Ë@Eƒ‚?ßö?ªŒ¢?Äçh?Ѩ³?ó,>h¤>ã k?„G„?xÓ?Q^&?[…l>í"?Ød?–e?©Ÿ|?¹‚!?Ô<@?ÒEµ?°ž*?­V|?¾È\?­,¬?d°Á?‚Ö²?Å"? +õ?¡kÕ?ÍÑž?»î[?œæ?‹†7?w¿¡?QÁ>å8¥?>à2Y>àj?‰¿?žQ¹?YÛ?3Ðq?¾ë @ »»?Ý‘+?]Í?d;÷?oî?yä+?Ȥœ?µvC?ÙšÜ?ü#?Á?V?‚ l? ¸ä?Þ?¯êã>oèþ>À T?ã¼5?Ǭ×?3Î(>Óu/?ε?×v¦?Ü m?Õkp?¿‡I?À¿á?ËÒ6?¬5(? Í;?¢Z½?´9Ç@¥@#ˆS@|=?¾Ö¥?¼_?Xäâ?|s¬?Ù|ù?ÍÞj?–¡ç?U•Õ?‚O…?¦Ù ?É?ÿT¡@ ?äÆ?Ù¬?¾åH?§C?(¼=ñK?µ$@!Ü‹?äÄ2?‚¿?Hý4?‡ ®?®?^16?[Í_?Ï>é¼Â?Þ/@9~@j‰?‹O1?‰³?¸Âf?ÄÆ?sË ?[Ù}?¸´d?Û¨X?Û©à?Û«2?ögl@$¾8@!c?hß?gŒ?b~?†ëÌ?Ë ?Û@7?¥Yµ?[Ü…?•8@¥@à'?\¡?bñ&?ϸt?ëò>?§¨5?Yaì?2¿ó>æS–?#4}@Á,@ ü?Mûâ?Ad‹?ô·?º# ?È!?n,—@L?îh?hxC?všè?¤§´?ÊÄè?š…?”C±?@º>ÈMK>ÜnH>Î,ö>õBµ?T—4?Š9ä?⺶?ïÁ?™F?„ +o?žiå?Ÿ.œ? R&?¨&?¤G8?©üŽ?q¨>}®?^/…?f"ÿ?#݉?KRŠ?bJÕ?b|×?—G‚?µ7?u‘B>þLŠ?-xG?s¢|?8 +æ>¨®Ž>×Ýÿ>¶³>›R?ùÃ>ñ¦u>æfë>æºù>¾m>%2x>içÙ>>‘=Ì >¬q?+Á->ëÃì>ê"?„n?­0Û?^—=<îÔ>_N>î­&>¥\>0Ä?#™??>ï×3>­ÃN=ÀÜ=Ön¨>‘ëž?v-Ã?·›@«d?¿=>òÿv?ñ™?¾aÙ?N¾Æ>¾vŽ>,õ´>"®>€T0>˜9 +>â°j?•Ý>ˈÎ=aç©>¦U=>¦c“=ãTS=â!7?.Çl?K»>äPC>•¢µ>Ã}·>æ%m> •=±¹q>€©Q?Q«’?a¯D?ÈàG?É©²>›rÉ>bÑ>·ö>Ã%h>Ù¶”>çó¡>q4=‹Áˆ?0cm?×)u?¼,¦?WpQ?I—s>ÆH°>È7?EB?Eâ>?Tm?WX;?q#Ä?|@°?+,?¯^?¡Ÿ%?‘`Ü?Ç:?!é?ŒKÀ?‹CÙ?€í>ê’">óÐ?9µ?8gJ>ð–¬>ë=? Ø:?.¬?·Á›?ÜWA?ÁH/?°ž[?\l:>¨A§>¯È>ÖT>ÓÍm> =®>—1> fù>Ÿþ½>)Êâ>7Ò?™†‚?š@Ö?Ž ƒ?Ž¬(>pÉ­?T;ž?–… ?Ÿ‚°?­ƒ¯?nÅ>í@>Š`]>—¤N?_RJ?\+€?Xý™?M¹Ž?$£U?%ò?m¿i?mÍ?!¬B?45?B»?Le¹?$B?ä?“Êè?²µ ?%•S>3Vš>RKš>^&³?FBü?º< +?‰“µ>î½Ê?6«7?© ?•sÛ>ûÑî?®.?³P?¯0´?tvÈ?xêJ?b•?\Å/?±·s?º†Ç?ƒ_”?o“á>ÏŽ>ŠX+>*ñ=Þ+Ú>ˆ å>®Ò`?‹uø?ÝT]?†‘Ä>©1j?jF?@þÀ?Zë?å×Ú?¬/1>{…é>«¹?-e?#dÓ?<Z?I?ò‚?ù?³ó?µ’¾?¢4û?šÐ¼?\ +À?TJO?Àôä?ÙÖ-?NŒ³>ñk‚>ñy%>ñ†>S<<ÝL¤>–*>ù‚É>ñÏj>ñÝ^>Œ7œ<Ì© >Â"3?r?Yþ?.ÿ?wµÌ?ÙqJ?à·Ž?ã‘ê?Ìcõ?@„G?VF?¡,n?TR?rÃ8?sÖj?›H¬?™Öâ?y€?níð?”Á0?œ Ú?Î%>óDN?&¸e?!RÎ?X^:?s|š?Åë¯?àˆÔ?Âçï?¶Èe?‘È ?sÒ4?zÍ8?|ë?te?qr0?9ÝC>ö[X?0·÷?m?À?°²>?™¬Ž?`Ì£?›‡þ@ÜR?ÚÄ­?Sèo?`Ì?ŽÛ?‡–œ?V…NÍ;=¹ Ó?ÌÔQ?ö'©?óÒY?í?>èpø=¹8À?ˆ³*?¯†?ï‚Û@œB?‰Ù›?÷´y?½´Æ@-@<Ž@Pœþ@α?wý3@ÿƒ@pÜD@?i?ñ¢‘@ ý@/ü„@~‘?È"ë?©R#?UQï?0²>þõR?UÝÞ?­Â_?Âbî@Õ @ð?øÈW?Þ ·? ŽO?ºË²@Èr?úc?® ?§þL?ºÏð?šôR>ù)p?M€? V}?@èË?ºû'?Ɉ/?ùc&?Ü@D?tŒö?ˆ/?Ág6?¯VD?a°?aéè?¬H?o4@Ÿ}?ý$A?N‡z?£ÿ#@[à@AJ¦?rjž?×0?аë?»]?}…!?£ì@;Ž^@(­v? +Z?‹É.>Ú,u?¡¿?»©š?ÅXB?ô†ƒ?Ö>úSf?¼?¿?_h>Œ‘§?ÍÃ?ÚÅ°?ú?Ýo.?áÈ?—å°?»ì˜?ÙŠ@/‡@u…?z¢U?Ü?¡ +?ÁÀC@)­@9ù?äüø?϶?Cò"?^‡ˆ?¼a?ÏaÝ@RÙ@|~@ x?Í=><î,>Åwœ?÷Î?ÇÎu>ˆÈw?‰r@@uï*@Sý?§±?®#Ò?©ß*?Ý“Ý@MÚM@. {?˜6Õ?•È8?|Kø?«s,@6PI@/o?@©?àÍ~>úé^?L%?ˆ9?…#–@!ì9@?Çé"?±µ¤?tÙ³?ŒWy?ºÃM?¹ˆ—?¼%ì?º)Þ?±ï'?Λm@t…@;?wð?|Ó?zƯ?©™N@È?úö_? $„?Ãÿ¼@ +2É@“@<¨@5¾@G@Së@;õ]@'Y¼?ÒHß?÷>@:{F@;–¯@;ji@ ©?‚, ?H=f=™ŒÐ?Zûy@>ˆu@-ø*@ |æ@ nð@.@ ϵ?Øÿ?ê+V@ ­ƒ@A'?°ao?Ò¦@h@r˜@Büÿ@1Oý?ùö??ó c?äüV?ÓN@?xÖƒ?ÁÕ2@QQ·@2øE?ÃIù?Á6E?®F?ÂKB@¸‰@ +å ?èúê?íö1?ò÷£@ +õ÷@I°@JW@[Ãj@P³!?þ@à‡@˜m@m+?¨òÿ?¨‹1?õCq@'U@›z@‹Oi?º•ç?¾Å¡?Ùnn?ÅQþ?[°?ŒT^?÷°Y?ö‚‚@5‘@6¡k@ +Ê,@ +r½@~6C@¨;@.¸|@,LQ@_÷€@^š#@]`ó@eð?–‚?~?õÁq@‰Ï@3°¸@5&g@ú +@ q?çµö?õ¸@(Ç@,‚æ?€GÙ?: …@!}—@9Dt@*‡@!}@ƒ†?öÇ>@5Ëß@MÏ@é ?÷êX@&?µ@7gÒ@Tÿ@\B@JR¸@GP½@!×c@À@„é@¨²r@oá@(f@Î]@Š@ +qÆ?õŒg@ÂÖ@-tÿ@#}b@Ûœ@/¬á@Véx@A4Ö@âm@9x­@‰½@k6Š@¾Ê@¡U?é1@T¹@G ½@K™å@S«@9%L?=µ˜?oÛ†@~@@z¼ @a@ã@WÏG?¹Y8?²ªB@-k@1Nõ?ú`û?ûT@6­ß@7|x@% ú@']a@/Ï@87É@ý¶?ìšf@×Õ@'M?Ú@?~¿?ÛÑÁ@xß@ ?•@ïâ?Í€ ?‹x ?´`ï?Ó>^?­Ù®?q§^?•Ð­?äMÄ@c“@Jìf@:ó ?‹H©?„i´?~ + ?tú?óç´?÷ƒt@HÛ’@KƒD@ÝÞ@ Ÿh@Da@R6£@#¾-@@ RÐ@ ¡@oá@Aï@KIg@ƒÛñ@;??³‰â?¬ÛÂ?œkÛ@Bg@|L«@PÔŒ?èœÎ?â,˜?™¼?¡že?äX?ó°?î¨K?î>¸>Wßœ;vú?b¦N?–X?Ñ…>?Ýí2@.Ÿ@OÓÃ@…¶?Ñ©Î?­vê?Š§Ð?¤9í?½6z?¹‘?´óó?äìP@Jþ=@;¼7?÷Fm?ûë¬@…Ñ?ø®Ÿ?@Þ?4ûú@ ¡J@( Ý?¼ÕŒ?€ww?žL?°‚^?±MX?¸iÜ?°ªF?—- +?·D­?öÚ0?åêo?éó­?ÜÃj?Á®?ɱõ?€Ä?x´z?ñY?kk?ª[M?¿6²@Ix»@uíœ@%n?ϲå?åxû@rÉ?Õ[?ƒEý?«[~@(µ¨@/áà@Jéµ@H¬‚@Áö@¤¤@/Tw@@9?êq¦?­Þ?¡Å ?Á?“?tË ?B÷O>ò[¼?B K?­GN?¯ãš?ÒòB?Ü@Ò@øÁ@øï@F@W99?ªÀ>ÏÖ ?o½?·¾À?îÊÄ@ +Æ?茶?ŒkÀ?žJÒ?†’£?\ué?ˆ)?“0f?„¡÷?nÎôàw?ÙØ?ÍãC?ŠX¶?‚%f?Ï3B?äø?à»?ôóM?ÿK&@Ïô@ûr?àI?×PÃ@®@’?^\,?$}g?~¨?¦æ?®9??¨Yâ?™ê*?_ÞÅ?NðŽ>àË>àø?]f?#È÷?#¼?;ù?©Lô@Z@?Äœi>á£Ö>Ô$Ã>*û>A\?Ρ‡?Ýh?ˆeu?^½6?«*o?Ø,?ÝNï?Þs?à] ?Õ²0?ºé?î +?ÿ*¢?—vå?ˆî»?™5„?¢Îì?¦—S?«ß?¤K?}Ûw?ˆÿS@ +„ @È?4{¯>Ý';?œx\?ܪF@ñJ@áþ?õƒ¾?3p¨?+oÖ’?JÖ÷?VÒ˜?[}?—²`?±WH?—nÊ?9?º á@´Œ@e?ÕÄí?Úüh>©JC>á–?¶p•@ Uf?íâ?­ ?§ZŒ?Ó¹?Ø$C?[êA?[ñ™?èPõ@î?ÇXÕ?¥„?µ%?Ñ“?×U~?Ü4?àZ*?š×‡?”:?S>ÜÂ3>ÜÖ¯>Üò±?i•Ö?Øqÿ?ÄŽü?]KU?bî;?J·?ŠT÷?•$?ŒÚè>Ò©›=%>_B|>ÞaU?<Ýø?¢Z°?ðê?qS?–ú·?÷¢™@hW?zµ?l ?y5;?ƒ)V??¿(?| >Ûð;=°‡M=ð©9>ã¸?9æ?¾l“?ªñ¾?k±&?bw"?]¬–?9]™?¡œY?á̱?g5¹>1»x>Š¼±>‚æð>•|š?-Ð?5„?Y[?iÞ±?¥"r?—÷þ>¸PO>‡XP?ï"?ëž>[\Ú=_u‡;ö|>fŒ‰>§4¸>suõ>sðÇ>•…+>±1Æ?]¸?iû¢?Yà>ÅÄï?„®D?%Š>\À?LÛ>?$em…RÒ?hó3?S˜I?6¡?¼ñ?`¦]@2rÇ?ä"4?7n>ˆÅ>’%´>ŠD¹?pþZ?Ý”?WU>Z²>eÏŽ>š>¬{¨>äŒ/>àÀ>¢ó¥>¤üô>px¶>rÍ>¥ÙË>¬A\>@°3=Úƒ~=u=P>-Û6? =©?#?;KÔ?@vF?‹\Ž?‹d!?W‘ž?Q}H?QÜI?R3„>£tµ>©¬>©'>ÑÈo? e2?Íí>èÔ%?Q?¤9?¤$?li`?i\r?Ɖ? NO?³V¬?Þ,Æ?Áü@?¯{?¯Œ?¯Ÿï?‰Ï?&þ? +&×>ê‡ä?ªš?j²ù?eg$=ò0E=ôÉÌ?®Wg?ºÞ@Ä@ +”G?ÎÀÓ?°”¢?&"*>n½=§Èp?cqb@Ãu?õݨ?”™?ƒ¥¡?x? ߌ?WÉ/?Z¾ò?nOU?lœ=Ý=ý?¤žô?Ï»­?z*F?/â§?.{I?->ß7j>Mõ|?À?™ÌÞ?Šh?\˜2?Q?ÂÓ?)Þ? £?'Jq?J¸Á?L°µ?B?¾*?/{x?9ò?„jŸ?‘(?qFÞ?[Ð?”–®?«ˆv?Ðöç?î”Ç?šÌ;>î° +>˜õ@<{??îè?Óh?q$ƒ?aJy>üé?Í?o=C?oMH?~—?€„±?ÕN?ÙJî?c¥?9Þa?|Y?„mw>ÃbÙ>iÏ?Têë?¡*ÿ?õ’>éd«?p-þ?°þË@%E?Åú>ðaÕ?*iå?™_Œ?=?)+ñá?NÑO?]Ý>ùð9>ÔÔO>þQž?q ?Ù>þ7Ì?°{?ñ£ä?ªq4?m`Ý?+ˆÝ>ݺ >ïp8?Ñ?.fS?\v?†8?µ¥ÿ?ÇŠ?òNÓ?¼+x> ˜>®£3?ß?” €?œ^ø?’§÷?+Ï%?7ëM?x#É?~F?A¶T?Bm?WŒy?OJM?Îû¹?àé¢?zï?TÞŽ@¼7@S?Üt?¶¯ß?—.Ù?…‘[?ž½Q?±uý?\)è>ôM¯>ôò>ô +¹?sÒì?²7?€+ ?‚Ï?¸&?`?(m÷?ShK?'d#>‘#G?8æ?tµ ?S<Ÿ>ôÐ+?ŽSt@HG»@3Ñ`?عŽ?Øó¶?·Üy?¼&ç?Þ6?Û™Ž?Ï|½?Ôƒ ?$Ìn?J˜?”ï°? Í<+&98à?²B?¸b5?ñó’?õöS?¾D?¹!S?%øT?B>î&¾>Øk!?k›µ?†"&@/‘D@I>@ ø´?삲?„>?Q½?ÄÎÆ?ë=?Ÿ77?vã°?vò?vþt?Kð?/á=?…¾?˜J±?„Cê?n Z?mÇ´?wa¹?–Üö?­°”?y&G?^?Wƒ\?…N–?AV>üE_?¸Š@ ç?á¼r?–÷ó?ÉÕ?øH?ºîf?r…?› 0?º,? 9Á?xO‰?c1? Ç?€?±PN?’íc?8Æ£?€°Â?ÀDT?ªñó?x¼?mû§?Ot©?ºD…@7·@q3?­ok?’ßÝ?"­N?A¼Ÿ?ˆø?”üv?ºãˆ?Í<÷?ùCŽ@ 4@2ýr@(&˜@5?å”>ùv?1Ê'?œ7Û?±¢'?ùšA?ï™?ËX?Ð"V?ñUk?ê¤a?¼ªG?Ìðˆ@Ùý@ é=?Ù/?õ…@™Y@–I@Â@S3?ú¶?õ&ï?ÜC?ÎÀ ?»¡F?žŸý>ú8É?†ÿ@7eÎ@˜|?aÏa?~ +w?»À3?©²ƒ?n·?~}À?zk§?•´„?äQI?Íá? +÷?É¥Ì@¨¬?ÿ5?°Û?Ë#§@#¥ž@£¿?Ð1?É«Ä?»úŸ?µ ®?£î¤?ªI?´˜?ÔÉ}@Í‚?úhj>û-?¦?ƒc™?­g@ +È@W`?ôãÌ?÷Ûb?Û©K?Ð?¼Ã@¢r@gqÿ@E”?ÂVÄ?´^G?æP?¿y@ù'?âVÿ?ÇÃ?ƒ¢? ¯?-‚?`´6?»ßÂ@<@0’Ž@.À?Û;Ñ;õD~F±?gü?€+?ïB?ÉÂ?~§?…~?zµ?z±?z­(?¨,ð@ +2?âžå?6º??x‡§?Ø}Ñ@^›@2Œ@QP@{Ú@4r@6@7Áä@8àQ@/ Ž@Ñï@& ÿ@;Ìþ@'TF?í‰.?ó´a@ƈ?ô€›?ú¹7?ëË-?ºtš?øL‰@;¡®@Þ©?3gg? Ž&@ç¨@Xå?±ãm?·ôÆ?ç¶ô@Î@9Ó@,C¤?ùÜ»?¸õƒ=²{³>+a>úa?HÈê?ÍŒ2?ì“ú@m?ù?‹: +?¨Î»?ùxû?ÌXf?û?ƒ¾O@Ñï@ìA@>H“@4«{@óˆ?òîe?Ž,§?±½†@(@3µÃ@V(Ç@CÞ?Ås¼?Åþë@Ûx?ùÕn?ƒ f?~y©?D×?Q¾†?3’?J¨?çY*@®&@_¬8@RDb@ßJ@­@dØ6@d0ª@kÃ@fXÊ@Ri@V‹?ƒ §?ƒWÅ@Wº…@X_q@r´r@ms¬?Øi?Ùtž@@£ù@@#˜@Y +@ Ëñ?¿†|?ÇX?W{å?4ÄÄ@%Úg@9.™@d…,@n9÷@ ¬?ëN7?ôÂ)?öŽÔ@$$@Œ´@ŸÇ@3î@61ˆ@C@ ³•?éu†?°íi?‘5ô@oBT@­‹r@c=¾@zA@Ò?ó‹o@˜@ à @ Vb@ yñ?ç;?·åß?딚@àô@&† @3¶@T)Ó@‰®ê@VK¼?£;¦?ŽÃî? “g?™Õ$@7D‘@>5@e¸A@^»²?ä’?úE@‡Ø@`ó@Á³|@Ŷ¼@¿ƒ»@·G¹@«M@ Š?çNù?à>¶@R¢@aŒÕ?üç¾?Ö¥?Ñs?ËÄ?Ì*?³Ã3?¦±3?­Ë¹?á=?ö#N?Ño?Ûœ?òƒ?³¹3?Nžn?ÄÔ@(ù¯@ ˆÂ?²Vç?åªq@7l™@4ݬ@<6@@1o?ÿø?ý¨T@ø4@r@/… @+Õý?è>ò?ôÄ@ëÌ@Ä‘@è@%ߌ@'ý)@(ò˜@Æ0?á&¢?ëVÖ?ïŸ.?±O¤?qrô?Dmv?53?P(?-më@þ@šš @y‚³?”?,ò?@¡?;Å¿>°}ü>ÌÚ?×,¢?âÔÒ?íÅe?åÝß?³m?¨mC?—O?škW@D°@.$@ ÊD?å)?•˜B??ƒÎö?Ú¯?ßa9?çaÙ?ÒiT?Ž2j?³Ü]@ 0¬@ +aJ@­6@¯s?˜ÞV?†ÛŠ?»uö?Á¦í?³ö©?°”C?®¸?¯ßÙ?°`?°JU?ÅÝx?Ü&Ì?Ñšg?ÒhÅ?Üs[?ÔƆ?Îó?F ?S}Õ?¯•d?¯~V@AÒŠ@HÎù?‚D?´a?µ}?úÝ@(7@(@ +†@é'?ùÉœ?Ç›Z?ÊÅ)?ì$¤?âE%?»0?Í2_?™d?¦•%?ÔH?áâ@Öˆ@Š^?¦®©?gˆõ?”l]?±Ò?˜Œo?aòB?‡Ñæ?Û?ÍM?ˆ°-?X~@­¬@#ö8@%Å@]ÿ?@sq<Ç]_?ó[?mØ!?„:Þ?›œ$?ˆƒ&>år¨?Ú?ÕUÆ?ãÇ0?-Ìñ?™?ÆQ®?ã‘•@/€@|?Ö¸¯?šø?ºƒ.?ç K?ÅUW?iÅ’?gj|?Ò¯ˆ?¾†‹?«†?¨?Cd?=CP?[‡Y?yÙ‹?¦‰´?Â.?Ö,…@Ü•@Òö@ +0t@ Ìó?tˆÉ?ƒöº?—ý¯?•ÁÆ@ ª@)Yß?ôy_?™P*?˜†¿?˜Ëf?•$>ý×J?Y^?Í°‡?ß7v?Âøé?¦•?kIE?3‡Þ?{?®nw?©[H?¦KL?¤¶Ë?ºkî?ª:R?<]?&e÷?Nƒç?_š¦?‰"?¢ ¦?¦Êº?¢Rÿ?•À?}¸Y?\Æ)?PNõ?g$?#Êð?#³1?ƒä7?£4¾?ì h@"7Ë@0Ó?Æû?ÌŽH? ï$?Bgæ?–N?}Pž?yܲ?h&?ž“¡?ÕÆÏ?éo'@ï@m`@”@ ?dB? ØS?¨ò?¦Ëß?²òÔ?Êq?À¾??\·0?_‹ ?¥rM?¥h5@0 p@Teƒ@æ¼?Ðk@K,@&SÜ@ +H?U=2?=Ó~?ˆ9K?”’.?m-x?d ?Ô—»@ g•?㤗?ŒÃ©?•‰a?ì£.?øwe?êýt?ÞŽ›?ë?jì?·Pa?Ó¹£?§Hó?…‚?s!†?XÀ>ðŸÄ>Ýav>ê4ˆ?¢^?˾?¯ÑŒ?‡çü?Œ`X?Öæ.?ê ?¡ï?¥“?W Œ?)¤Å?³¯Ú?ô]ë?úƒo@Yé?î…5?Ÿ6?¤U +?¡M?›&?½/ ?Ñ:œ?ÉI +?¹‚Ï?©«?›?£;±?¦¾?­Âê?øš?ë£ÿ?-ö >ܦv?9ñD?>ܶ>³^A<€¨>Òß‘?™ø?’BO?Bw?”X1?¶Êá?Æ[G?Š7 ?]x?SZ;?I9V?IúH?{nJ?Šž©?^å‰?_ Ø?l=?a8à?_ê2?_²™?Ö;¾?ö’þ?~0>%¦>Hç–>Áôh?æ?]]?S_Õ? ê?œIú?]I?†÷˜?ªîù?Èú?x=D¯À>ð¶t?*-¼?;{U?g¼ã?$)«>¦>#”A?ã:>õÌG?t¼?>w>ö(Ë>ç_Ô?+Â?…¡?#>÷à>æ9ž>ÏM>Xg†>!“a>` >G=ŸëÞ>XëV>îæ‡>šŒ'>“˜:?açL?7ˆš>ž!=”n1=Ø[V>¦÷V>I&f=9¼=ÞmÃ=*Ù78M`>L(Ð>÷Ÿ6?”?3>‰Ø?ŠÅÒ@T7±@w?šK>Õ¯„?1?M?2Ð ?o—?z¸>üàÕ>“\>º% >ät>ª|Ü>Á>Žq?@H?8±€9ùk°=ßg>#`?¹?'¸ +>ði.>ª“Ý>pÏt=åå:>R–>æáy>ØÌ>¡¹> j~?)³? ÅU? —x? s¤>,•G?t +?ˆµM?"=ÇÔ+=È=ÈŽœ>ÝÈ>—ÅÈ>­µ¢?i>ë?iVÂ?R)ä?O1>ô6—>ØØf?X"F?‚ï?Sc?.Áý?Y>êVm?0ùó?Ñ?~ÎÅ?´e?/èÞ?§Lœ?¤«?–ň?™ª5?ÎÝé?ÖC6?vAB?Dör?-¹?~>xÜ7?QÙA?è9ð?·§??ÓÛ?S´>?l2a?X|>ìUw?O?•³ë?”ê>†›Ú>l7?„¶?˜Yp?€C?lë8?H€?:~’?Pf·?U®µ?‡/p?£q?aá>¥:>žzŒ>—â¬>·Ä? +l[>ðKí>¯z>ÌÀ?„Ã:?ƒˆ_<Ô~:=•ä¾=“Zf>àá?¿/?YåM?y ‡?Ÿ?î‰Q?‹øf>ôc?0µ„?nÄß??ž>ùVc?%\Ó?nú]?7/Ù=%æ>™-?]? 0? +åb?ZI?ŽÚï?‘Îc?tÛ-?o“ ??r ?>¯|>Ùv>Ÿj2?ƒ‰?$ù`?ú°? /Ï?–¨?.ë¿?MhÕ?o×*?@ˆ>ðUæ>÷,6? è?/è°?pŽ|?våH?ŒŸº?“‘¾?›v? T?ðàú?ê÷7?˜Ô?6?ÓX?n=BØ?a&??€Ï?¦®H?´í‚>Ç(=,?tïÑ?±8v?¬C?§g?¤º¼?¡åÀ?‹Õt?r/?+œ¡>ºî‘?64?ž"ø?–cö?j²Ü?xì_?d ?¡j?µî?—ÝÂ=«ne?/É·?(l×>òã>þåj?Ê»?Éãx?¶0?¶a˜?†>óI+?c ¬?sb?¤.ø?¯lì?Û¨¹?ëƒ?e7ê>þlO?¹¸$?òLl?z\0>óôÛ?… +?· æ?¼(?_ì³?íY0@-¦?ùáð?– S?K}ï>¤å ?*ü?t›6?I‚C>ô»á?uuÓ@¾£?åV?<Ä?kn?·È[?½.?ÍS?¬>¿n>ËÛa@ + )@ ¨?Þç?Ô º=ÿ8ž>µî?¸H­?¹®?ó0 ?õiQ?1?­?âjË?äô{?­À®?¦O*?¬eO?¬§@F @a\?Ä^É?¶ï?˜V/?Š³à?ËHr?Üß?Äõ?ºu +?¶øN?³w¹?‰t-?w?܃(@}?ÊOü?±£L?°Úà?¥$?€¦É?bà#?©+Æ?Æõ!?âªP?÷‘|?¯äÇ?w«“?Ÿ·ï?¾Ð^?y/?0¹?UË¡?†5?–§?]/n? +à@ ýá?ÝF‚?¥e)?¸^ÿ?Ò­Ö?¬n®?xc3?{gª?uM½?…FØ?–Û`?Š^’?x£Œ?•Ñ?ºŒ ?¥\ƒ?ŒTW?¤ÑŠ?¶ßú?¶#Õ?¨±?Ï$-?ì{à?ÞJŽ?»P2?"!?K§?Bu@Õ@ ’i?Íá?Óìd?ÑÇ¥?Õ¿)?èk7?ìxÅ?ù†•?ßð•?®8?©þ?™eü?·Ì…?ü*Å?ë’ù?»S?¤µ4?UàÑ?µ•?»gÿ?ÑjÍ@…V@ ˆ?ïr;@G@ZÇ@5ùß?¸âÖ?–ò >ú!)?kI¼@Ĺ?½íD=ôд?%,þ?î¢?å!?ËnO?°^‘?zYü?¸¯Ì@$!%@=u?ôlb?ð0@ ñ¢@ ÄÑ@¹“?õpÛ?Ìùê?Ñ P?Õ!ø?Õà®?ÊŠx?£Ìˆ?Oµ?FØa?M±?®Ò]?óÑ?Ô?yºœ?w/?z¬`?Ç/ƒ@7­¢@™o?¼V?±Ñˆ?Ÿwì?Ƭp@q*@l?ü̵@A?ú½·?Üêh?šÐ?´:o?ýë^?È)Ú>ú½E?9‘?[Ó?HY¾?wÐ? >@-™h@ mz?z»)?PúÌ>ùªc?!Wq?iJ¨?˜Y?àu ?åå?ú­u?ºVê>ú¦-?c±?Κ4?¼Ä?¡|œ?Ø¢š@]¨?üع?˜}²?šÅá?™f?Ë,@“5@+a@'t¹@!×­@|Í@§Ì@Ó€?ÜÀV>û?Æ>¶ƒÍ>ú ?€n3@|R@ç?ÔÒÔ?¾ƒB?Ž^p?Å«:@ºé@ú@)©?÷Â>øò…?‡Òµ@þU@¤@%é¸@ .F?ª¯Â?´¯?¸†G?À'?ë¬å?ß=?»NÙ@1¸@uÖ@.¦É?(s?Ø?•@Wµ@Rìè?Ùƒ±?Åwl?¦ž&?²Œ?µà§?»ðâ?ø@ ’Ë@(à0@%•@‚¹?ûþ–?ºÅ +?Ä”?ÛŠç?ôB;@1øŽ@Bæô@v²€@W1§?½Î?œ +E>2Ÿ>è¼²?ÏÿÉ?Òæw?þ.ä?ì;í?ºB·?àð@fOÁ@Yì?Õhe?ðÅ#@m\@mqë@mÍ1@gf +?œú$?–‚t?´FÙ?¿²6@93/@=Õ“@˜Êß@–ˆ@j,@Rž?Æui?Ô¶Ó@#žó@&4Ô?\å±?<ñÚ?qÉÕ?vó@ [@< @@«@Hb:?ïL?ÌhÌ?èÝ?ò•ö?Gþç>þ•e?Ñ(?ügÁ@*@8™G@I…™@I!*?Î ×?uá6@J¶@Š<ÿ@M’?@ä?é«ï?µa@ 1¦@8…@P€|@jn @&-ä?·Ù?¸ÖH?¾–Ö@@ÿ@Qg @;ï.@"9@²Û?ï%Ö?àÒ?ë`?ã4?@71×@%>.?ÊíÀ?ëÛ…@D^Œ@01×?‡Â.?’}@ôV@"¢¹@W‹@ôÃ?¶ƒ?–E?œ¦i?£; +@YÖ^@eN"?ö>¯?м}?ë·%?ò»–@~î3@’=O@ Y?‹ê@Œú@S”™@--U@²C?êJ2?¬?õŒŠ@^?畱?À¾"?ÑÌ·?Ö•s@±@?Éõ@HÜD@L§Œ@GÝ•@/7Á@'AJ?µDû?Æ&@4€@4=?‡Xa?Š +Ä?¡š{?ªhÏ@Sò@Ì/?þõB@Ѷ?ËGŒ?³Él?à…þ?ô½£@ W@¢ß@*!¬@9§@(?”W[?Í|Ì@*Zh@xL?”H,?“'Ÿ?lh?ƒðÊ?q˺?,£Œ?$,?Á/?çd ?íâŸ@ ܘ@–î?Ùä)?žV@ä@U%@ Ú„@} ?¿Õ§?lùÏ?„a`?Œ*Ç?+ׄ;ËÓÃ?\wí@=Œ¦@*T÷?û^Ó?÷út?¤Ê~?­ª?Ð +?Ô m?éY?ë‘ò?Í[þ?½)i?‹–?l-7?˜ü ?°=á?k£E?|æ??/Î?jœ·?„@v?¦?T?ð˜?Ïœ?z„?¯ˆ÷?¯t¥?s}?‡o°?ð[Ê?ñëë?ìªÍ?ã´@z@Æ›@ WF?üe?óø¢?úI¬@Ø@ÇÙ@¢@ «µ@Ù"?h+)?hS?‰C¡?@%@|ø@,P?Ò²ñ?}Õ?µêÄ?é-L?к?¨GW?ÁD_@ ‹@Ðv?·1B?­³¬?íS?Õ½¥?¤š&?‘ª”?’ù>åÿa?uñ?¥Ü9?µ¾?Ål?¿­R?·ØŸ?©’Â?´Fº?¤Ê?“wÓ?+?qü?g7¡?©Õì?ÈýÍ?ìn)?õܸ?ÙÆ?Êúo?áWS?õFé?ü(Û@1 ¹@@^?ç°ä?ÞBø?xð’?DÇô?:’ ?0Y]?‚C?¸ab?Â}ê?Ì¥A?Îå?ªà?®/?Ô]‚?Éò,?Îbš?Ë‚ò?ìÊ@ÖÉ?°Rw?,Æ ? +3=‚X>ux?W?L,u?.¯?Cü´?°Ó?ÎÀ­?Ò!?Ä¥?ÍF“?àXF?Ϻ†?¨ "?®y(?ß÷w?ßæ\?“,È?ˆS +?iñd?_‹ ?X?u$ô?®9@ ’?è'?œª?…þ°?©ˆê?“s,>БF>>M:?ÑÆ?`Ç¥?Œ#í?¼ùÄ?óÎE@/ÆO@?¨>No>!“?÷a@"¨Û@9gé@@̓?Õ>ª©Ø?W+o?ýî(@Ú¢?»ä.?¶ÿ?žæž? ßõ?p??d#? ÷>´Û¬?12E?§Á?Ÿ¾?é•­?Ònw?hRX?Z„@Äi@J]¤@(y@ î¨@ ¶­?»Ô?µ¼Œ?U ?¾m>ÞKº>é÷D?%Çe?hb;?†«?ˆü?˜…?Ī>?¸Àî@Ã5@$e?¥¶?[‰'?õñB@4³@WÜ?¸Ð?ª.¼?KA?VòT?YÉ?MÝK?µÎx?Ûfs?À/W?«©-?œ””?­`? +s$?\Ó?bC?]™k?[ó?Šþ’?¥‡ ?Â3?Û˜µ?Á Ø?Vµ?b¾Œ?ÕX?Îá5?Ƚ?‘³?¿˜?ʳj?ªÿ7?eÉó?tcÈ?¥+¢?¤#?u›õ?“á?~?„´Ñ?Á_ô?ÿ‚1?ÈßW?R§.?_Œ?¥Ú|?¦Çº?¥A.?‹ö@?¼P?¡™B?!JÊ>ã} >û±? +¶\>å+É>TüÎ>§°"?>fg?Kd8?¦ªø?¦É/?ɺ ?ƾŸ©= ÉT>0%r?a;¨?Yr>>“I¾>Ç×l?d°Ù?„ñ×?‚€>âáŽ>%3Õ=ϱø>Žko>ì…?:Èz?@²>åÑ?&…ß?ãëw?Òhï?Lš?éB>T‰6>vTs?NQ>?…N?lç?fò#>— ­=Ÿ¬<=1{¬>ƒQ©>ë/->kKS>ÔNÆ?gød?Q®Ê?-ü? +Ï•>îÐô>Òÿx>°d/>‡í¬> !>Ðâ>þåŒ?FW?4X=îµp>ËÄ>”`p><K>÷ÁT>Þ#>åÞ³>’ #? (u@VI@°:?´ã>ìåì?b{L?bµÈ?1Éß?1÷Ž>÷;l>ã‡>ã¹à>ãéó>¾ >x„>Žá¾>¡åá>¼úg?£Ù?{T??­?êþ?Œ:÷?šñ7?¬ª?³³ø?œ7?%eØ?˜M>æÉí>´ÙŽ;”ûä=ðì=î­­?@Ê?J^É>"”>X÷>­`ë?göÛ?®ÉÀ?rìŽ>®Òa>®¿/>®–B>ºîž?"Á?Nf? ?Ÿõœ>™Ž>ãr?È?"»>ê,>ê2I>êJ?4Lj?†¼ç?_ã8>ê¥õ?*?› n?•¨X?¿i?÷S?ˆ›y?Š~? fÌ>ëf³?Oê¨?kQ?ˆ…Â?Œª›?y‡ð?kÞ¥?†Ê?„0í?F& +>ÙÊ>æNÔ>ìK?ÕÐ?“Ôª?”‘?g +¸?d:a>…ª>„?‚Þ¶?0[?r!>í”?Xê’?†F?«Ý?ÄÉÿ?•ç?H:?IÊ"?KÇ? M?ÞOÅ?²|‹>YŠº>µ#ë?¦‘?¡g > IŠ>’÷ã?Eà[??b?ZdE?c›-?£/ƒ?¯eY?Ûï”?íA? £N?n™>Î[T<8ð@<§ÏÀ<´Ž0?D—?®;s?…™{>ÒŠ©>Õ¨Ê>ï–>ÊÐ=¸òn=Ù0¿>]C‚>}|U?þå?U¦>õ+S>ï6?ÐÊ?‡¾°?ï>ïÔ…>Ò Ç>×f?#;?5WÆ?2å3?0o—>æ„>‰„Ì?úî?926?2ÂÉ?GF×?#Â>¨Šu?<øf?ð¬‘?ê—]?×D¹?Ì}-?\±–?jQ??¼%œ?¹Ç=¶Iô=TÒÁ@ r¥@~à>•” <d€?@°Š?eP?¤à?µ.Ò?V0`?èS?b!%?„ˆµ?V>hh >ž + >¬EÆ?¯W?rè?©?oÇ?‘ón?“tI?Ÿp,?µÖ¿?˜@#>⿽?Úª?’¬?ŒF ?R¤¿?jÄÀ@o@= ?æâ†?àÄ>?0éÄ?'ïÔ?mÇû?sF8?sV+?scÝ?z“?wì/?Ýw?óš“?—½ ?|Ù~?¢C‰?«ì?Rôaõ?3¿?tz ?^X)?<ð?O”X?t¶¼?ƒ­`?Œ(?;^? ±O?­`Å?Í´3?¶‰e?;ÝS?\4À?·ðã?¬Ù™?u[J?p&?\•æ?qÅq?²ˆ|?°Á{?u¥?jg¶¼WÖ?ËùB@Cy?£r?QZ¼?èqz@›‚@Ùë?ô¨P?§D?wŒ"?Èú?ó€y?¥îÙ?h.@ + +¯@øê)?ƒè?øå?õð¤?îñú@¶ã@³ü@<@É@˜ž?ùBS?ñA?lFø?¬vñ?ùg?»Ø ?1JÛ?höT?Ý?¦§Æ?»2Æ?»7Ï?»<%?»@š?»I?­© ?™Åæ?’O£?yÑÔ?‹ñ?©u²@s@SÎ@!cÔ?yù?§þ¹?ö@@SÖ@Rû¸@Õê?U^]?˜éÆ?ú'6?éñ\?ÌÏÌ?¤Aq?'qÃ?Kó@R›@à3@(úk@ t¬?š?¤XŽ?»Ê3?Îú(?çXÚ?´éY?XV?™=¥?íbl?Ï™?1H?éãb@QwÝ@ÝÓ?×¾?T×”?º ]?áÉ@“û@ñB@;ð*?þðu>¬e³?:ô¿?©dI?®Ö?ÁœÌ?­E±?z¡?rð\?yÔ?r™Ÿ?Tãˆ?—©?È(d?œ}?GÜk?2×ê?þ÷?;¾G?z¡‚?tÚË?o:†?99?‚¿?•Li?¹C?‰!!? Þ?Œ1œ?ú–v?çP?Ê–¸?Ü÷û?ìä?Ëÿ÷?¬Ke?˜?m#À?Ðó3@-ëô@›¿?ï7¢?퇣?ùŒØ@(À@*?áØ?£œÀ?»=í?ÒRD?°¤W?ƒJ?}@?y‰d?Àb]@w—?̧[?Hn/?Œ%e?» ?Ùr…@0@û—@~&@Þ@C?Öã¢? ¡?“Kó@ï¡@¬?@ò>?Ü)_?ŒÅ?ùû£@ZŒÇ@Ø]?c˜?’m?½aí?¼û¢?Ȩ@¸Ž@(ê@'HÛ@5)@,ö/@;@B•@Ð@¾\?ñë¾?ùsÓ?ó¯^?ûœ@ÀÖ@ÑÊ@Ò?êÝY?º±4?öµÐ@D@'³ƒ?é?­X?yá¤?“ÕŽ?ºtq?´é×?œë? vÈ?ÉdÒ?ÏÄê?âô?×,Ž?•Æ¡?´Ñ@ú@)…C@Uæé@H|‡@:‹Á@4¢?éV?öZµ@ŒÛ@ Í?w©?.Ý?º¤Ï?æŽK@¶Û=@¯°W@0Á@Â(?w9U?yMé@}<@ Ò?ŸÂŠ?š‰Ä?x•Á?vÙ? ?¥s @#©Ö@'ÿf@)ôx@&(ª?Ô¿ü?½FÑ?ì^?ð|@Ô@õ.@çß@ŒÀ@}#@uë @ —Þ?Ât@E¸Ï@v„'@e.†@]·^@3ÆM@^‰@#¾@,SÎ@$÷ä@ðæ?òf ?·¤ý?·±|?·¥Ô@NÂP@©R£@ˆª¶@;‘@3;é@+_Š@’‚?ó2@B @C[E@*j?Ïîr@5—@\³¦@RÒ¸@“@}@TçØ@U&õ@v…@r{º?©ÄÅ?¦sŽ?õ`4?ì@J%8@Svß@?ð@Â?Ò;8?ΦÅ@†Êƒ@¢AÕ@?1@äQ?ÚÒù?¸ÉÐ?s0^?4ù?çË@Äœ@3¤ž@HÍz@ ï?xé4?„Æ?œ ö?»þ]?êé?ÿ»@*@! +?íJ?Ý¢?tÎ?—åë@N L@I +Î?¤%É? p9?róP?p$š?þvw@ 2_?úçØ?êAè?ɱ…?¾dH@¶Z@û?½¢Ã?}Bo?i¸?n)S?²r?Ýuv?ö È@ gÿ@|Ü@*š@_:@Ó@&Ý”@iíå@nÎÊ@T@ܵ?¶ ?¸|w?ò¡?û¢?ð˜C?íl—?·¾Í?³?íA @.—?Å\Ê?åã?Ì{s@ÑD?øÁ9?®;V?®Óã?Õ‚2?÷@Ðœ@«…?ÚF6?Íò}?ü?ï*?êÙ;?ëug@±b@ è?çš„?éi?çak?ð«¸?¸Iþ?”Œ?}€>ì"©?b'*@*? @$¿?hx?gù“?gæX?gÉ›?à½;?ù›U?ÎM?¶O?ì&%@P§?Å+@?=¬?ŠLL@A%@ %@"~Â@²1@¡»@k5@Œ@=õ?me>æEc?ý0;@7¼?ë/«?b*Q?§:Ï@Â×?õ§›?½Õ?Їê?¤Â>÷’7?[GK?d›@Gî@«è@ÒC?ú…@?ÙUß?£˜?°ã?ðbŠ?â1Ö>㟗>ã—­?lâc?Y?!êí?1'>äâs>ߟU?a¨í?–ƒ:?ƒª[?b†?†Ùz?áù ?Ýô9?â$é?â ä?£)½?£$K?»†?¾+ì?N1°>'±¡? Lg?¨øÿ?w‚OL>˜¬o>Jå6=Á‰?•Œð?䃌?ì9F?ÐΤ?¼Æ?Ä\Ñ?ÂVæ?ð(8?êa¼?‘’û?håk?µQj?Ϩ/?¤nT?^Î?‡sQ?ö+u?õåÎ@2ÒÚ@8‘á>þ±T…Ÿ9=R ´?,sŠ?€™?‰Uh?ŸPZ?žš•?Þð]?ö£¶=ç«X=½¢>*Š¨>\¶T?©”ó@W @ ¶Ù?Ûcñ?Éê_?>Þnä?Qlù?[V?Ÿ‘?ºuë?—„µ?[V\?y ?¤~•?¤ˆ?£„Z?ž2?»ÃI?µâ—?¼zU?µC1?¯Ò}?Äbß?ª£¾>Ùñb>ì3?)9 +?NW$?s‡É?Œa¿?¬Ž-?²ÿ?¯a˜?¨š§?¤E?¥¦?£‡"?4S?'‡Ä?߀‡@»û?¡OC?U‡C?µ…Ç@_–?Ôñ*?€õ¥?Ž$Ð?üg @n£@9át@P±i?¬ÐG>Ýåˆ>…S>‡V?+’Ó?³ý0?tº­>«" >Äü°?¥³¿?§nŠ?¯à9?·°E?=0W>çïJ?!(³?D=-?*1>Û^?­? :Ÿ?’ì?”‹½?ƒÜø?(±>ëã>Ü´í>ôý>+2¤>+;*>´ÞÖ>¿W?êª>úù>ós•?ï8>æSÆ>æª><ŠÂÂ>ÇÎå>ëãD>Yˆ><X>|6">èˆ?”8>Úà‚> Ný<Ü(=¼K€>°ÒW?Vj?±=>îã`>šv1<ÏL;ÕGv>ãÞ>ñý·>Úy¨>Ð-à>¬ =‚QZ=ÚîE¥>ñÞ~?3î$>“1«?Ë7c@uÛ@ ›À?l²Æ>‡4‰?)×Ê?(¢é?'r¤?&LÑ>í7ö>ãgÖ>ãœ>ãͽ>äÉ>ä0y>‡I>Œ%æ>Œå>©ÄŒ>Ñj?—k?˜ Û?F›å?@CÏ?Ëé?Ï>ÒOÝ>‘m^>¼ˆM>æ»à?8Íø?¡È%?„ÞŠ<[q?ÀÑ?Ô>¸ä°>¦Ë=›ê?h9?VtA?S·à?GÚË?(à>èìœ?B'?k{?…Ö,?8™½?9?>®>Å>£Îl?¢Çî?´AT?³«€?³ +ù?ÐU>4? éÃ?jw»?¤> ùp>NO_>¦ª”>œþ€>,Ë>hÜè?k'v?k9??Äö?;Û +?®ƒ?º´?Ãûj?ʈ&?}’Ž?+?f9?ŽÓz?\ z>ïbè>æy>ìH?o ?lj‚?b\L?EŸ•?Bhý9«0?“] +?šãå?]°>ík>í°>í!?š?$AÄ>í›®>ªÃD>Ï™Á>íx?L¡?¤áK?›6æ?‚x‰?w¸ ?Z)?€X?åì|?í°»@)Gj@*€>ô >àߊ?Y} ?hÇk?§Có?²×T>ºí¢ŽX?9Ü?0²>1ä?cÂ?Š½É?F°{?D³Ç?Õ#é?׳?UѪ?;Ö=÷ š?èf?6“1?]^?'•>¯\¬>=ßÄ?gFì?Åã ? +f?ú>Ò¹À>‘À? =?ºÈ´?©ið?[‡?Líô?½K?5»#?å÷P?Þ†q?k~M?tÎ?ðYÙ?ñ$O?vÌ’?h‚@ìß@ar?ò7}?é°?‰©‚?\Q!?˜Ë?§Æ›?h¿S?03Î?”€g?¸ ?J7º>±ê?)þn?r'_?r5?r??Áv?µÆ×?µ0?®+£?­Kö?µòw?ªß1?"?ª•@  @Þr@MD@<;?¶C\?µÂ?‰öG?†ÿÊ?ˆÛ®?„1O?±Y?¶Ï@,¿i@5³å?ÏËo?²Ÿ°?‰1ú?)0?9Á?¡äØ>ÔÖ{=Ûk?VÞð?›íp?ˆkz?t,y>ú.c>;¶,>êä˜?/¯—?w>?™Wq?‰gò?tž?»Q @ž¿?Çþ]?Jm/?kcµ?ŒYà?“’?©<÷?®í°?·Üe?¢çR?UóB?6Àr>yß>'Wî>õz>õ…Œ>÷þ©>Ý­æ;^`=mÓ¼>.3?¸l¡?µä?uþ÷?x6a?ƒ›ó?{Š?¢Þn?©0T?¡÷?ž@ž>ök>ðAs>Œ•}>†:/>Kª>”Z?˜:[?¥„M?Å9O?Ê®~?Èôº?Ç8E?ŠxÜ?w¡@0Ç@/Œ?ãX¸?¹rB?Šw?vò?§|œ?·de@.34@Oår@··?äÃü@ø¦@ym?Ç>÷Ðþ?`ýY?TÒ?ré²?\#?Dü–?3uZ? È>ø/L?lÑl?§XÍ?×ïh?øYŽ?ìh?äØs?âwì?Ú"¶?¤ð?]Ž¡?YJw?gÎá?r?x»h?;(â>øÑ´?˜ÿ ?øäî@4³B@o<@+øÎ?ÌMä?ÿêa@³8?ïZ¯?WD?œñ?’Œë?áuc@"ö5?ðzú?ƒMb?˜»??»?»É?»!ß?¥Áß?L?š"?¨(?{CY>ù¬ë?0$0?y»J?Nr@? «ó?‡bä?ïm·?Åxü?zTQ?àK@8£R@9¶V@>äA@?°ÈF?ô1ë@,Õð@'š·@…7@,@Ô@?ú8½?ú0s?ìªê?ÚnG?Û§R?×yœ?¶i4?ŒD‰?âA@3³Ä@ý?ZÐÿ?ˆÉ¹?»ÊÇ?ÑÞ?òûÙ?àô?¿$•?Ö:æ?úkB?ß~N?»Ü—?׆™@æ?²½? Ž?ä͇@RS~@€²?‘Zº?sR?-Ú&?PY?zŽ?}ý{?o&x?´R>M"T?“Ìø@%Í+@ +½D?»îO?ºÑP?°o?•ì?z?YŸd?«.?Ç›ÿ@;nl@:ˆì@7i™@1º§@)y±@K]?ú‡?´ý?=îÌ?û„Ž@[–â@^b?¢Ðß?„ú©??yÉ?WŠ ?‡ØF? Äž?ÀCo?²Õ?Ó¤?–G€?›cM?_i…>úR$?ÂvÃ@5¹«@8‘?÷r€?ú²?öÜ¢?øÞ@< @CS@ Cœ@ +¥'?êë?жç?¹ßð?·§?®õb?Þ7@ Ó?ïaú?¨>|?ÌO"@ ÛÈ@%1@?õØü?Ÿýl?ÿŽ†@Dh™?ö ›=þt°?v @;Œ@8wœ@4Ãû@ /o?¡\ù?¦Ž£?¦ú÷?®f6?µÔ?änu@§ó?ö h?™¢ü?É»@…«?øhÔ?£¢?õht@GÇ@*ª‘?Ô€ö@°Í@tãB@Z`@Á"@Þ?ö¥Ì?¿†„?öæ?‹x¦@à~@ÃÉ?ç³Ü?ïýÏ@8–?ã׋?x+è?‰€?½2@H@žt|@ŽÀÒ@›@P×?ÔNN?âäï@*5·@YD?|+É?‹?õè@îò@jAu@k®r@,É{@1Ø@€×>@mŸz?Ñ+C?Ô¥ö?Ùpû?ÖØ ?ËR?Âl,?¹Éæ?±&¼@,ö¾@9J|@aX(@i¨†@%y‘@¥j@ƒu@ž?ÕÞÐ?Ë„·@7à@Ý?ù× ?úÍß@Ç@@ @Q²k@dï”@N@C £@3vq@)QÓ@çI@z*@'Ï÷@=f¿?èÐ?vŽ˜?שÔ@0@&@FÔ@@ñÎ?±l€?ùÇ@%’@RÌ@µ1@ o@>ê@#¸9?ª¹g?²Ñ›?êí@]@P@5@O¥]@7W¬@9;9@>uä@>HJ@ ·@V¿@ëI@âÏ?©h?º˜u?÷ô¨@Ï ?œÆ?‰eˆ@ ‹u@(û?¶\˜?ƒ+?úí=@Ðä?Òè×?¢¶Ð?ÃÅ©?æ4@Ìœ@@Ù@°ø?Ó4©?ªuÝ?qI^?ØáO@<ÒÚ@+ñ@·Ç?ð½?·ík?©¯«?p£Ž?m“Q?z/‚?€º>Ùl?k±?+L?2"Þ?±ÙÏ?ÀÀ@0<@;Þo@w²?ï‰c?õÌú?ñÙé@µ@*¶è?ëAé?›vR?Õÿ@ †¸@Ç)@3ª@>&z@Z²ß@K}’@š‹@*?ÎxÐ?ÐÝe@/·@0•ä?vdŠ?~1x@ì@ a÷?±•È?¦Õ?]êA*>ÞR‚>¼ðB>ý+…?¯kq?¯U¼@ kÒ@ŠÙ?ÕûÆ?Ç*ò@3¯@õ¹@ ?,@ è¯?½—`?hË¿?ˆÍg?©˜?¾w-?ä`@?øI÷@F (@>Š3?ÁE?¸À?“Z7?Œ¯’?ô @äU?àÀw?ÔV‘?ã» ?çýª?áEá?ÉM›?µ'ô?­é?Íõ@8@$ ?Ô°Y?¼Þ¢?`LO?[œ`?È}è?à4¼?€”?|,?¢é|?¦/ ?½¶þ?ÿÊ?Í3h>ƒs>*P2?œ˜0?~`@¸ý@!%i@¦@2—?Ô»á?£ÑK?­­{?·“Ã?§­ý?c¾à?VŠ!>ýn>äÇ3?cNñ?c=Š@OS¡@Qî? Bý>ÐöÃ?ZêÐ?²øw?©}?y¼?}Ê÷?«·?°½ ?µÓe?ºèŒ?—Ýa?‹Ö?§æ@?½'Ü?— d?af?…ÓL?¨æ,?¯÷7?Áu›?³uc?õóà_û?§D’@ ç-?îç¤?äò?—ÇÌ?™§ñ?¤f¢>“r…>”?]?@X/?_cu?²<Þ?à¬P?͇?§G¥?¸R?ê¢N?Þœm?½Ã?¸+W?ŒBÁ?”fÔ?¤`?¦»k?‘/‰?xzì?¦>@ÿõ@¸Î?Ý9>åë¡?y‚¯?p\–@®Ö@9ô\@ +ܬ?Ç£?º?¦EÇ?¶9?ô*W?ÿxû@RY@ Æ?Êžä?¯Ô?ˆvy?BSC?Š9Í?æ[,?ïñç?çAÛ?þ]Æ?³nº?›+3?s;Š?\Å?ea?_šÛ?xT?Ë1Ÿ?ÐËW?ÑÝî?Úþv@9@ð^?Äñâ?¤¸6?¥Ù¶?°;Ó?¥=à?ZŠ>êÞ¹?Õ²”?Ç”â?[ ?ÔÖ?§Ày?õJÑ?âôÉ?ÍR ?Ë™£? XX?¡Ý*?’?—np@«@ ¦’?»í?[E¥?…N…?´Âj?²)@@ð‚?Ã-e?ºnõ?Ó¤«?èì™?Îß?4»?8œ<à¨=Ú²²?´M?¡Ìè>»Ä>}cë?s3?»DŒ?æ¸:@ S?ÞÎ?mƒ?3uR?\0h?\Bê?É×C?ÜoI?fLN>Ü¡a?ƒ}F?åÏS?Â%è?Øä?.¥o?žn5?±¬?¨Í@?¦-m?|(?N¬û?2 +{? ®-?|¯ @ +–@>>f Ö=—ǵ?_ï ?kþá@Ê @ +§O?Vš²>=<>¶°?Œô>¢/;bO£>ÂÈ? ˆ¢??”)?zJÒ?Fç@_`@#ßÉ?¥f+?cr?ëo>ãLM>»7S>›Â>ö˜J?dv«?s—?™þÒ?p<þá4=Ús>æR¯>æ¬ò>^7•>!w=×Âú=XRõ?Šk8?¨ º?bG?& G>ÿõ>êmÜ?9K‘?k@æ?¬Øó?éx?”À¯>Ç’Æ>„}™>9Ž`>q*!>”zÕ>Yw>üEØ?¯gu?zª—>òÇ>Ñf4>yÉ…>ÿŸ>š'E?hpj?r3c?Y¡]? +å>¡ä3>ó¢Ô?W–€>ïI¡?Ãh@aõ?àú?€=ðÖ>â'Û>Æ;û>f¹S>qÙt>ã +#>ãC?‰Ú†?•ÞŽ?(¨ø>ä´>äC¢>äo‘?-Éó?ˆ}O?q.l?´?Ñõ?;~É?;9G?Y°^?]Vd?)C|? +>ªX>ç>æ/Ÿ?fÇH?m÷ª?ix¾?c'>?B6ƒ?BŒ*?Bؾ?C>?%y¶?ä*>ütM>èj?7¢‡?h¦F?yp>é«>kt0>à"ž>éæ€>éW*>éoÛ>é‹‹>é£\?‡'?¿µ?‘›?§ä>·WÚ?;R˜?š_¥?†»?[QF?Y[G?WI‚?çô=Æpö?&_??56ü?¸µm?·ÛŒ?¨\9?«0Ú?–Z?‘p?€ç5?n…´?ØG>ëõÇ?5 ¥?lJ?QÁ“?+˜>??p-?l`4?Mä¹>Á”®>¼G¡>¶Ü\>­¤é?ä„?Ë>¥ø)>ŸÄÆ>å +ª>íŠ?ª?ñ>g4ô=ê_O>æKÿ?*Ã,?V]Ÿ?‚³?‡t×?•qž?tuh>íÈ]?%ÃÕ? Vÿ?¤?ª&O?ŸâW=Þ¬<¨Ú};?_¡>Ùr>ó$b>ë)€>ä™>0Iç=à;D>äIæ?ñ?¯“?îÒž?±¬;?nìi?[ P?9þ?'m‹?‹É?¾>¨:‹>Ì÷î?Gâì?SuÊ?ord?~À?ïæ?ïù$?Ü?ÖS?º“Ø?¯ ”?rÿf?bæ>°Ñ>B?ʱ?#—v?l?#>ÿ?=­¥?Nó ?3¼>·ø{>ƒiñ=¸>‘ÁÌ?ÍZ?6Z?}'?u“Â?iÂN?YSÑ>÷†°>ñ >òé?Ü›?q%b?pM¸?$¦o?/åû?,1?3ß?Ì¡ï?Øe0?º‡ù?µ7-?‡¥’?q»5?“–8?£T?ŸQ“?‘n&?*8á>Ø“ð? +)?5#ç?±øE@+?ØÀ‘?¨ª ?¨»y? JM?ˆãÇ?då?^ÜÀ?Ó£’?À)­?D9²?_=?Èù?ɸ?ì±”?ñ+@ˆ„@ª#?uü?sýà@B@€Ü?,Ç«?? +èª? ´@'i‹@<ŸÞ?•Êx?5³R>¸9Ü>–}>£ †>°ð?9˜ +?VœÀ?B4?;,¹?2ü–?>þ +?D?@„6?™„ ?Öù?§=$?Gç?|s??§ŠV?¢¢b?“ìå?–IV?¤úI?p*Œ>Ý·?‚¸?í>ì?ÁV->õ[Æ>õh9>õv°?´¡?^Ž?W¿‰?PïÍ?pdE?é$?ëñ @6?úïæ?ârð?âØ?î’?ä†B?••Ç?—VG?5>î°X>àµö>Ò·‘?r‚?daÛ?¡ë?Ïþf?Ó‘`?×$Á@Û9@¯’?¡"f?Œæè?·{?¾n)?¹éÈ?¹W¤>’Ì^;Ⱥ€?’ï?¹}?Êé?ׇò?¢à?‘û8?Ý_?÷›t?“ÐN?RñE?’ÑÞ?£Ð"?o æ?D|^?o^?~~À?w3Ø?oæ—?ÌE‡?ï.?²€Ã?¡ÇÎ?¨%?¨NÛ?ôºE@#—@Y?@ V?£Ø‹?$ê{?J« ?rÐ?3Á¿>øÏæ>wá¿=´í?™'@  ?Ë2?†Ø?•{X?§Ë?Ü@°ª@Õ +@é.@ ËÏ@8Û?ÓS?r{ ?[d²?GÝX?‘Ñ5?»º?~Bc>ùrW?]¬ ?Ÿ¬®?32?ig?]†?f>2?†ØÃ?“ù?Xº?Z?±£Ê@Sq@ k@N­?íê?Ôs?…\ý>“Áƒ?«p+@$^b?ú|ö?£àø?Òld@-©?â/?µ¯?Ø7)?ø +Ö?öp_?ú(>?»ÜP?U¶°?tÎ?—w®?¿H?ì8X?Ò ÷?±¿ô?ºÒ³?Á—2?ØÆÔ?ø•:@ OŠ@¡?ȉ?ò÷?µ2@õ0@ki@ z@ ¯@3.?ÞŠˆ?znü?„{?ˆ.ç?±Z’?ÞñJ?®—Ä?‰¬?o6 ?-j?d5?‘ý?¤=?»ÚL?õ/O@¶³?è@­?zu]?Î{¥@I¹?¿"€?â?NJ³?Wÿ?˜Û? Ó,?·¢b?ɯ?ßÄ?Wî@æÁ@zc¢@$§ ?—¾Î?­<×?¼RÅ?;;?&Š?‡—R?®?ßâ²?âÅÑ?ì´ê?˜9¿>ú6˜?”fM?ñRl?¹RR?y·>?ö¬ @8a¬@QÅ»@jgÇ@7ßy@ }¯?ñ÷?Ì£?Ðø¹?ÎQñ?¤€^?yær?É.Ù@ ‹©@XÌ@.‹@ +òŸ?½ù…?üã.@$…s?Äbë>ÉAÁ?4Â*?„Á?´ÔÛ?ô¹µ?øìX?ûR]@Ú@€?ú¯Ä?ãéF?ôUä@Q@Ž@&„ˆ@Ü×?Ôtå?£7Û?9¿¤?Â?Õ]?¹ÿ?’œ?ß~þ@+ø$@Î@Ђ@"t|@PPC@Hþ/@8äï@{'?_¡?¦®y?á%&@(º@3ÄT@/÷t@'ïæ@"á@Ùg?ü?Õ?¾`‚? ^Þ?@\?Ã5@u7ä@nù-@JÚà@AU$@&gÐ@-¦?w—…?†9>?¸!Ø?Ãie?÷dÄ@É@#P’@"*â@ æ²@׆@A/@Bqó?¹6?Ác@ùA@þœ@6@¡¯@u@ Ú@?ŠÊ8?…³ê?ê³Á?ñ¤Ê@O6Œ@WF˜@U@?ûe?À¨¾?¸}Ú@iÖ@wŠš?ü—¶?Ç´à@&Fþ@81—@gÅ@uv0@Mè7@BVü@9Uh@:@(8@#Q@e@‡O0@ÏU?tÕà?áÿ@ì@á@Øt?äªÂ?ß?óh!@:NI@=\@Gÿ)@7œ¢@~ @u|@j“@ã™?žÖ­?¿ºK?þÊ?ÿÔ@¼¤@‚Y?Ó¸ ?ꉖ@.+‚@)ä?ä }?ë³µ?»q?¦ya?â, ?ßù¯?É3Á?Äð@$t¬@1þ@9¬Ç@6Çy@5 %@3K-@Ø@?æ•Ö?ã-?ß{#?ëò@LÔ@¨/@ß?ÒŠ®?´¶?Ù͉@/á@;öU@Htš@>ö@qø@?åoH?ú46@Cžl@-3À?oð¼?WxË>ð=>ïôç?¤¸ ?¢ü†@*^@<@I¬@@!MÕ@3 +@ o?ûÓ@ÿ@J<@Š?Þ&¸@$¨d@`›V@F¿õ@ _@j¾?Áúf?Ô.ü@2‰¯@$Ã#?pN´?ŠÁ§@?úŽ@6?ÿå·?ÿ¬?©I¤?—ºç?ÙÔ„?í Ü?Ò+ü?ªµ?Äp!?Ñî‘?ú…G@ß~?ܤ‰?vÀS?Œ#‡?£°Þ?Ÿ‚‡?›T ?µ@0^#@)+?è~?ôðù?&w€>Áye@ƒ­8@ ÒG?ú N?x!£?Ô… ?ø™?ö ?õØd?Óhå?©ØH?”¥L?_Ž?:ñé>×?Ú>µ‰î?­þ‡?¯ªO?ïÁ?ô?}ð?›‚|?Ê?å²F?涠?ôû?á.?°¸Î?‘À?t¾ü?E),? ¸Ì?V¸?à­?îòØ?öj?È5?w¼Ú?€êU?Öóò?ço>?PQ>>×´?¾ ¹@êß@ „ä@ + 8?ë, +?—I ?§…è@xÝ?ý³@r@$¦ì?¿>Û$ð=åÆŠ> oŒ?‹' ?»§n?ÊÆ??åYÅ?åû?îj?ÍüÙ>äò±?&>@WbÃ@cfa?Çþ?Âué?‚5‹?~¬º?¼‚h?Ê« ?™¡k?cåê?u*?„í¼?Ž’,?ãÚs?ÚÆŒ?Ói‘?É89@XÉÐ@tÊÇ?ã(ç?bƽ?òN?up©?ø??Ü~Þ?ÕDý?©§??©‚?©‚*?©n?Å-E?Ã9í?næ?BŽ§?WJ·?aT-?†´?¨Ü½?–p¡?@!þ?\"?>¨ê?h÷·?eŠÙ?`ƒ?Kól?ÛY?kˆE?¬‚«?èŠ?#®{?l®8?ðéL?Û:=>·ËÃ>Õ€?\ ~?sÆY?´äF?ß#ß?³Ì~?z³¦H<Ð!Ø?s{?hs?ˆ»h?–~2?©•Ã?ÞùÏ?Ñ-M?»¬;?ÆÍ@!&@ + J@ tá@‰,?þ‚­?ÉÇ?³¿?‡ /?ˆ#?¿ì6?´q…?Ö^J?Þ!”?Øöp?Ð[?·Pž?”…m?”ë_?¸å‚?«¯µ?;¹>îZX>äQí?jD?|aÞ?“ +Í?˜Ÿ^?¤ïÜ?­€ã?À#I?² Æ?gºå?`µ ?Ö"?ôóº?ÆÄB?¤¦Ž?¼Ð?Êœs?¢¶ +?[j˜?[_?Ù{™?ÛQ,@_¢?ø÷þ@Tx@s’?ò9?™ŽÊ?’'>à]>û¥¢?÷€?.P?ÿ£¾@%6¿?ßí{?[*0?­³³@$]t@¾ß?¸¥&?ÊÿX?èÀ’?ßÝ£?¦‚·?“??ÖòŠ@+c@#¦c@Àa@ŽY?´ç?»??Lu>ðI?9M?9øZ?\{Å?¨sŠ?µo?±¹¦?ž¬ã?Š{?„C?³u?É_?esµ>ÜÒ?-µ»?†ó ?ƒu¨?+\?p·?×Ä?7?’ ²?¥¥(?8i?šL?‚K?®³q?¢À?•M8?cL?­8?§Òä?£ì«?žX?®X´?Ê`q?¡°Ä?i·Ê?JØ?QŠé?5¸>×+[?Ÿý?Š5?wœ ?cÝÅ?ŒB1@l@ B¾?Á˜š?¨YÛ?<¡>ãNP>œ%Æ>_Ï?5_Þ?¡Š#?a§y=ËÊxæQ—>æ¨8>æÿ>ç]U?%ð?6>?S ?v] ?ot®?iŸ >ìs”>ˆ) ?†??I+?Zÿn?mõc?nG€?SWÙ?TwW?D½ô>ÀÓ†<ûÜ>=)>«;Äé"=òl>ª·k>ò3~>ÃÑ2>„¤ë>}Èš=Û¯ß=&8š@=rµh>.ô?Nµ?¬Àÿ?îŠ?•÷¾@p?¼j?=ð=×ͯ>âü>•^ +<ð¡ >knã>fÓL?X‘&?^ä?o"×?jó?p>äW"?1«¤?„?TuË>„~X>„>™>»€õ>¹Ÿ?†¨?‰{ø>÷z\>¯Âs?Ro?ˆ?K«É?‚éÅ?‘Q?­bœ?»>¤ˆŠ>±”2?¦œ?—Ü?–FÅ?™×]?—Ô>èa\?vQ¸?š'¹?6b‰>—ˆ? 9Ô?aÖ?U7??†1?1ÍÄ>醳>èN×>“UŽ>’“ð?\S?j +…?#¶„?é?7ø‹?Rêš?}»R?_¾?zy?X•T?(œ>„©È>½ ?6Qx?3ß ?ZB‡?fÅ©?”o•?“é?“y?“U?’›Ì?”µk?)2>ëö¨??˜?l›?ƒî‰?ŽØ`?q)£?=g?Nì?l€e?l’ ?l£Ž?Roé>¬ß>ûD>/v> +GÜ>âü™>íŸ?¬j—?‚’?7Íþ>íQD?ƒòŠ?§?§ôd?¨ØÕ?0Ý2=råz>}Ž¾?ˆ >¿ãn=À¼Ð>'ZØ>åPk?¶d?nB?d9~>î0t>î¯=?iÙW?i0?g9Ñ?eC<>þ=X>Óêô?B“½?])ù?£’?½ù¡?”)t?näR?nò%?nþ?a$–?L#M?Iï¼?G¸?Ezk?C:?JIq?og?e` ?UÅT?hÆY?°UX?·ß¹@#o@¡]?‹]Œ?‚cl?aŸè?Q ‰?DÕ?Hzq?_ˆH?O3å? áM>ðD¼>ƒþ=ÂL]>‘ÿ>ðw#?W?¦œ>?§þ?§»þ?†Ñ>>ðÅ?8©>?´¥P?§ª?m+‰?k>Ÿ?q?gn»>ñ1^?ù@D@Ý?Pd ?O:?"±?lB‡?q§>ì$>¸ìß?£È?Ïl1?d¨I>ü!™?BÑN?kXý?¾¥@_™?½"Ë?SÂ’?4ªÙ?#¾??v‘?«2‚?•Ðá?rš#?ÌT?ò²È?ø8t@½œ@’?±Ä?¡8è>ó E?Þd?òÔÝ?é[?‚Çó?ˆ”É?ª}Å?§ÿ?Õáô?ÒŸÞ?Š¬ç?‘á:>ÀŸU>Š÷¹?ÛÓÑ?ò.?W×?›8?~EÙ?• >?(ˆ>òçÑ>§no>[c¢?Ch ?…Œp?eÚ×?M³ñ?§nÅ?Ú–ì?¯#¥?ˆœ¹?¨õ‚?Ô´?“Ïô>ôêŠ?U Y?¯Qt?†!Û>õ"¸>õ/à>õ> ?Cà?¯Èõ?ŽÅK? È?¢»ó@TµŸ@?ä?©N??øtk?ŠÂ¿?Kô?‹m?¹Æ?ü{@@¹?ãžØ?ÂÏg?vÚ?q´?Pç•?xèÌ?èŸ@œ#?Â[¶?j1»?š›.?³ g?¬;P?›ïÖ?G1ÿ>Ûñ?Š¨ß?ÒŠ?bW?$p? Ûø?é˜@—’@÷û?µŸÀ?¥?Ûm@2ÚT@ ?¼ƒ?»Ô¡?¿cW?£<‹?ˆÛº@ ï¢@F±]?òaU?BBM?œà?ß'@?æÞS?àÿò?ðÙI@ar?òä?ÞëI?Ù¹?â¬å?ñùJ?úÃ?ñ¡c?ä¹À?ÇlC?¡¡?Ô†Z@.#?Àj~?…{?§_?þ€¼?ÚôÈ?»W‡?¼Š^?ÀqÄ?–Ÿ?mO2?ôG@6iå?ñý²?ˆ¡×?¿Ü?(ó?²X±?Ìà@[7@$R4@ ½$?úù?¨—}? ŸI?Hrt?zgþ?ÑŠ?»Íô?̺#?×ÅF?…wO>úcç?V;Ç?Ví?K²Ó?“ý?¡¬R?õ<¸?³½?z]Ñ?@Ä“?H?‡3ä?»ÄÚ?S/>™ñÙ?óîE@SgÒ@,A^@„¶?êA4?ÜEþ?…o>Ì>å@0â@pFš@6D@ Û?ÿ'?ßœŸ?…ü¿>ú&-?Oü?…¨¤?;¸>û6?ç0@;ˆ-@ å?ên0?Á¦ä?™ +?”óþ?¦‡?ß1G@~?Éb?y×õ?½¥†?üëó?åÖ?ÔŽò?õŒ¹@î@G¥@«?Äg·>ü}Ë? µ?Æ‚„? Õ³?{-ö?Ù˜µ@¥D@ ZÓ?ùX?ùP?ùH?¼z?ƒ9¥@ yå@ 0@3üg?ºÎ"?®“Ï?˜mì?³:6?ßëÃ?ÐßÏ?º£±@Õp@Cik?û'x>ÑË?‘—Æ@w?ä‚»?º@­@ _»@Nþ@@й@0æ@)¤Ö@"zì@+ŸÎ@:$2@90Ø@3Ze@4߇@;ê@–ò?Œ€“?ÊgŸ@9Üs@Eñ¿@hVŽ@dš|@S³@2 o?„¸@?d)->øÉÂ?M‚-?÷Qf?îÊï?Î<@Ð @ðC@4Ö@#®ì@nH@dj@öO@Gƒ¿@A’ø@–§@£É?Û°?ÔY8?­*+?°½?²ÙK?µµ3?ô¢??ùœ?À8?¿‚w@jóâ@n@m½@s?Ë@?¡Ú@1Ú@RJ/@VÓ@7LÉ@7Ë”@:þz@5(J?ûÁ'?ÐÓ*?ˆ#>?:(d?ºß?óâ¸@|ê´@žÐÀ@WS…@âc@3¸@EB•@ 0?·@@.ú+@‚³\@Mé-@Þ@'êî@>Œ!@%@mÈ?È>B>DǶ?»þø@§5 +@—q)@Oâ%@Jõ|@=›³@0â @ ²p@’?þb?õº“?÷3©@DM@D|Ô@=ÔÑ?ë—?æ|@40@'õ@w4…@‡û›?´çB?7‘Ü?ï "@„Ò@VÈ @q®@>Àz@û?ýD?ÞÜP?ä¾»?Û'w?Ç G?¨§Ñ?¾¥?õ¯c@@e{@ƒT?»Üå?®bŠ?lIµ?Ÿô!@q?øVž?Õ#=?¨4?íY¢?ï´ø?ï©?ïŒ +@[„+@o]v?¡‹? Ú@úÇ@*Ùš?°PÇ??áÖ?€BÎ?Žñ$@6&@S“7@K¤@2¾W@6ì`@C‚q@?¸N@*à\@4Û×@MãÔ@BX@˜@ ëÌ?Åä?Æd?òíÆ?ïÈ4?ìNf?ìùî?ßô?ÝóÐ?˜¶™?9¨? %>ïîÄ?5ù?lAÒ?¼«È@¤²?ô·¦?UZÎ?•@& %@%7:?ˆ.ç?ƒï@‹@'µl?”ñT?x\??κù?ÙX?¯¸Š?©B?¶C ?ÃÂ?ÎGF?Ò=ä?ê^Ô@fÅ@r‰@%r_@ý¼>í@ñ?¦G?(?Ba­?¾ó·?½¬±?›*v?#?Gõ?¾ø?éÈ!@8/h@ ”?ée#?öáì@-×?ó@C?Øý´?ß_@€Q@Câ?‡ p?kŠù?ºÑÌ?ÑôÙ?(yò=›>?Š?ìaS?ÅÊð?Ÿ¼V?éúÓ@*$Ê@>O@ü @¡?J4?-g2>^+¨<Û§¢?ƒ*@?— 0?Ç`?åy ?®¼F?‡¿Þ?¦œù?Á>ø?¨z£?8uS?"¾f?d©b?nã«?©l¢?«N~?Ô†ï?ÌÀ?û²Ë@~—?ÑßG?‚Ó;?¡½4?ãšÐ?î•@ ­5@;C?1 ²?OPÝ@©¿@}?¨¥|?bº\?ظI@‹?òÌÈ?hz)?šç@þx?óëÿ?7ª‘?LO5?×Б?á¤û?`pe? +0­?@Õà?eË?Ê\…@ E@ãž?@ѧ?@hõ?“ÜÀ?r‡‹?¡ó?˜ù¥?ðµ@ $z@["@ ‹n?Ù°±>ßá?^M“@6x±@3«q?b—?_m +?¸˜h?Øpþ?šö[?v;ë?ßö?–qè?ŒÝ„?ŠÅ2?¢lm@ …@ºˆ?V<á>ìEÕ?Ȫ¯?þ%}?àŠò?Ë”?ÃO?ÉN¾?εÌ?]°n?]›]?Еè?Þ?m?øn?О“?þ +b?ï#“?ÐÊI?Ì®@ß@ÐÈ?°!Ò?©‘ì?îÊ?PO?¨þ?ÀS*?À–?»/ ?Ãe?¥'¼?¥ Š?Áµ>ÜŽ?µƒ ?èä ?Ý+ï?Ñqô?Ö¼?@ N@ßX@¿Ì@K@ \@S®?Æ#l?¤˜ÿ?ÿÎk@?øG@%][?i«`?[m ?©>?¯™¾?—@?ªO³?ä)@É`?ê¿„?„°B?‹ +Y@¯?õœ?›\?{yÏ?æ€7@êÆ?µ¬?D›?©R@#óÕ@#x]@l”@ J¥?»÷?ÂiÞ?šªç?w»?qzE?cwÉ?Kü?5$?=@JU?üŽ?é‘€?ÖùŒ@¾ +@1´?èã?esì?† ›?¶Bð?À1Ú@Ñ™?ð¡5?€G?\F§?µq®?Ó˜ƒ?‰{Ò? uÚ?*?\Óû?_«·?y»¦?m$d?-0>ê¹¥>ê +>Ý©c?4ƒé?ˆj?¢Á$?¾Ëô?ËÀ?Ø·Ð?Üñ/? áH?#Ðv?X4h?_kñ??½ín?q²Ã>ÐR>Êá=5tX>Ô×?ƒCc?‚ž‡>Dì>Åã?¨n¬?ÎÀ?µ"Í?ª}??”ú>ãA +>ìï×>ÌvC?S:§?ßÞ¥@´Œ@_Ä?ä}Å>º8‚>šÅ>BMV>xHã>åÇÝ>çbƒ?¡Ð?®¿?~å?hÝG?-û@?$ŠÕ?Þü>¨•Ÿ=Ï# :9 =,±X>«ƒj?mº?o;÷>ð#ô>é®>ÎÃg>ͤb>òKC>— > å[>Ìi>†°\?‡¨@ ؃?„µ9?ë@ ‚»@œ@@!¼R>¦h²>†Ã,>×Ñ=êXÁ>˹‚>ò:´?…zÖ?ˆgw?£˜?ªÞ?™¸Æ?‘N?–Ì?kÉü?;sÆ>äþÀ>ѬK>€$¯>’.ò?e³?eÝÁ?†Ë?†Å“?…N>»Dï?L¼å?Šnl?ŠY;?ŠD©?njÎ? xi?!Œ¡? F?·?Šà?Š;4>‰$„>1‚¸?Šé˜?®l-?IÏÄ>èÊÎ?D²ž?‹?jfY?"Y`?/Í>é|"?J?Åס?À˜?$` ?%ˆÀ?dT”?j1?Äþ>êaH?Cwg?jü?ŒEà?š_¢?x#¦?3È0?Dà?kû?b5?10?8-Ò?“ík?•œ'?°ªb?°·Õ?CªÍ?7‚Ì?š%>ëî§?Jè?l[?[fa?Zh?[XC?LÓ?V 0?lxâ?l‹?l˜;?H<Ó>¦þ;>´ðr>ìÚ‰>ìéÓ>ìû>íc?,ð?ü>É#F>ÂÙJ?N‰@?mf®?y E?|ó?+z>휄?3Šê?m¸?‘k`?´\)?lÅK>tµü?næ?Y]Í>î'ð>îÎ>ü°g?ˆþ?¬²Ö?¬29?3>î…Ú?;s? Ø¥?åix@OL?IA>pÏ ?-Àÿ?nì?´…>›Í3>¤ÓÈ>­å >·O>À@ÿ?±þ?oU×?FØ>y(>> ˜Ä?1T@?>Gh?ºÓ?¹n±>‘.‚>”ÌŽ?ɱ?È0‹?9)…?‘#?î@ ÞÔ?‚VÇ?ŠÔ?ÿ? r>ý'š>ð_? YÌ?Êü>’jË>J(Ñ>ð¬“?xßm??ºá>?%Ñ?ˆy?püŠ?€vO?¢ }?˜5?rfß?êZ?SJá?NÿH>žN>)ã?½=û?ÅAÊ>áUu>}Ó? Ö?'¶ö?ºÜÜ?Ñ£«?¦·Ò?šÒ&?¸H"?À?©#? èb?@õñ>Þ¸?u`¼?åT×?µ¦Õ?[õ?Ú­?éîÛ?³uø?Œ%?!âR?rÍw?V>òêE?' ­?¸@?¸Õö?±l|?¥˜¾?æJ?<ùå@+C•@(’?›>í?––6>»Ö>¦·ä@µ4@Mœ?ÑÈ?Àuþ?„C}?síW?=>æ„ >éÕ>ô&Ê?sE?›Ð?±ŸÖ?·F?âÕ @6Ü?Ç(²?žŸ4?GR >ÐWÌ? "?çH?N>ôç*>ö*\>õ·>õò<¡6°?Ï}?·ëŸ?²ª¤?¥`†?¹ë€?÷Âs?Ô>2?[½2?zפ?‘O?‡ý_?‚2?ƒ8?eï?VŽ>ð…?H‹ú@Au@Í[?ÝŸB?ÑžÕ>ü¹¢>òß’?Aoß?G$?Ôó´?ÎrÇ?vŸR?u€¢>.[]=ÿî>AiK=¼Õ?즜?öB?˜*? +^µ@#%@*·½?·aù?£™1?Ói>÷Kr?L®?÷ ?ºˆY?Ï]y?Š¬Œ?w’ñ?L +]?=Š¦?Ž\B?™y?—J?•| ?àV&?÷ëY?VRž>Ú¶†?7:K?[ˆ?ÀP™?âz¶@a@D‚?ûvâ?øR»@K@Þ?·Ùå?}7{>âÚÀ>tïH?œÁ?#Þã?ˆ‰‰?Ÿ6Ÿ?Úš?Õå$?¤¢?“4+?W®+?µ?ªCz?à Ò?ìÀí?ù6?àn,?ÉÄV?ã|?ù1Þ?–hV?1 O?”À?ºý!?³¼È?°µÓ?·Œî?»'?›à³?Ñ?éY@Ô9@+—@5³§@¡?³¢¥@ƒê@A +œ?ï?y¼W?ZMê?J¿5?ÆÛ³@¢\@œ@(á@צ@ ­3?ÂóÊ?yòC?˜e¸?´ý ?õ¤o@È@(`F@<ù@cìn@Ð@(¾?»“T@»°@SŠ?Ð^?z€ß?Ây½?ö=m?‘îv? >£?z í?­þ[?Ž:Ç?Yzœ?¦àó?Ñ#r?üþO@ +ó@8À@»?ñûÈ?»´1?¬ Ó?¢‡V?€ö#?PkZ?˜ò»?»¹ý?ê`þ@ Ô?­`È?-ÐË?ÌÊï@»@ÿy?úG"?žº?ÍÙ?R–…?zH)?1Ù>úD-?ø +‰@:0?ʺr?' ß?äÁö@(ÿš@Ô)?ÒÙV?Üzë?ØÆ?¡¿Í?z(ä@=|@ŽÊ4@*ú•?¬¥'?ÿ6ž@!Š?®¢¢>ú ™?Í{@ù@™@Î?­hQ?yvÒ?bkŽ?§?â¾y@ \—?æ:ý?¾u ?©“?Ÿ3¤?oÒ?+pº?±Œ?òÈ?È‘?¥ü€?÷ó÷@$Íô@"(ó@å©?ò%L?ºéÌ?Ý{¨?ý[?ü?ù<˜@~Õ@-õ?Ãk>ù“?ë @K7œ@1@ß@”ˆ?ø™¶?Üv{?æ£?éfü?Ú:½?Ìߢ?у?Þ;Ù?‡ôH>BB?âÓ@rœ@8w>ýâO?H+ó?™$?¸¶Š?Û.¬?Ý]5?Ú”¸?ø,@ˆí@’P@‘<@G +@Dw@ E†?®C?Ñ‹@ ø½@±µ@o¢@'¼ê@=Æ<@*ö‚?ú=ª@Bü@UKo@9¹ˆ?÷:>?éRó?¹W?Çݾ@ n@ ÃÍ?±ç?ÅÂ{?îÕÒ@ƒ@<®@:Æ%@¼§@ @ +P$@ “?„?‰A?ƒlÐ?~E†?ö ê?ö p@/G@+_m?Ñ)Ë?á»@e%@ki@i¨?ÿ i@ga@‰*b@(u?帶@32@K&•@ û¨@ÈÈ@)ð@3*?Â2I?uêÄ@»¦@Fmí@ ™8?ÏÂl?—ÌÌ?é?þ\Ñ@$D¶@&8à@9"@8”×@"[Þ@3º:@^£…@2!m?¯´ý?À4}?÷Õ¦@Ú1@tK9@gø`@9Ý'@!0Ã?k¤?®Y?òð=@B8@9ÈE@0m·?¯þ?«ÕÁ@]H¿@e¤P?ÎZ?À"c@-ûû@5“"?Ï{ï?½j¶?±™·?¥‰@3@ã@½%@'§@1.@3×Ä?ð?Úì?àTµ@ŸE@$W@4 Z@(¯á@l'@l¨?¸ù4?®!?­?™—?ØuÓ?Éh¤?äø?胥?ØÊ-?ëü2@È@‰Ö?Éà?ÑYÇ@RS@j+±@;?æXo@2¬@KÒ@·?Ð(¹?ÿé?*¢•?°~F@ß@†<@ '@¦Ž@Ç@êa?»88?•R>>ìwPŠ‹? ´€?ë–Ê?ísÑ?ñ8×?à8L?°g0?°W^?ä_?å¢ @1‚ð@<±*?¹U?jŒ£?:‡?±æ'?ˆ’[?]û?áà@"w¾@7L?¦¼^?ÀÛØ@ Îx@öJ?ø6Æ?æzô?ŸžM?¤Ñð?®9^?®³8?¢' ?”é®?«†?˜“?ÞÈ@ $@)·@É@$ +8@Y@@I£Œ@+v$@/ûÊ?éÊ?çxÀ?™)Ö?„ò@  @,›@ Ñ@ [¢@¯ï@¬º@ Ýô@  @@œf?ûÀŒ?õŒ²?æõ?æñ@ Ù@TH?”0.?xsà?‹ +?˜Ê6?Œt?dý…?¾ÁT@1(@s?Û¹Í?ÔÛ?dé?d„]>Z#'>šÀJ?²uÚ?ؤ@\€@rl?ëI‰?¹«?Ë«?ìÕ?³Ý2=ü0¯>›N«=ÓÛ>c$?°Èt?Æ5?ÜhG?Ë“ó?¯çö?©ÙŽ?ïÿg@(¡p@dß?:? 8?¤¨?•„?Ú?Í)y?x_8?Mož?‹6O?¨ +Æ?­fg?ÁŽ’?ÌWk?»00?´ó?ãA?íÅS?éÜj?ø%’@GÎ@ +¯›?ý*h?ï›ß?Ïø?‚¸‹?›,Ü@Óÿ@#.ë?"Æ?„4Å?÷­>áÇ?:f\?_F?ˆÚ‚?§Q?˜·ƒ?Sk?FŽœ?˜Õx?žO„@§@ Ô´@+YÛ@7Œ<@©?Ýî­?×õ?…A)?xVÒ?GU½?R}‚? ì?¨Ðô@4p@G£r@S†?Ø“—?ë!V@ÖÊ@N«?Õ¼m?Û-6?Û&Ì?Õ’’?Yü?HH?uEe?¥D­?ŸK?‰(i?ƒ˜H?«!?¥9??á=.?ÌéÏ?Õ b@J"@ò·@ŸË?ã!%?Ööš?d0ê?‚ð9?þFu@ (í?ÞéÓ?¼¸?þçé@3Žn@'SA?ØGÒ?׋S@tÙý@_óp?¸è¡?_»j?–ðð?´Þÿ?Ê4Å@w@8#?¬ìX?¸÷]?Éñp?ÄŽk?Ö“?éZÙ?ž/¥? °à?['®?Ý—.?ÿS€@b´ò@Y—·?m‹•?,¶?me?ŽO?²ÛÆ?Ú0Œ?ž,Q=¦>p¡ê@d@ +t@¡Ë@S~?ÐÎ/?£Cz?¤Sä?œ¨þ?‘$Ê?‚}ü?5Ý@À@!S­?˜Bð?bJ-?’Ô©?«†\?‹†x?6Õ›?Gé[?† +÷?€§§?ÁÈ?œ†;?¥1ƒ?œŒù>Íwô> þb?/ª”?‚÷]?Wr8?Ep*?Sžu?^ˆç?lxë?Jâ?>&ñ?XÄè?_ZÕ?+ÑT?)˜ý>ãÇ=a ;æ«>BB?`úÿ?YQ8>áv¢>á³Ù>Ú®=½Å‚>° ?w?Ö±>ã>?.µÕ?cÓN?¯Ï=ð>’Ãñ?mL€?Æ­?IÊ?CÜñ?n…\?9-¬>æÈ >çbX? l?®!?}Š…?héU>·Hû>Zô4?H1?GvÆ>Ñcï=|Ré>I>ÓŒY>v°L>Äœ>W,C>‡fÊ>Á{>ï3†>ꄧ>ï€>ðÀM>ñT¦?3Ì?=ï;>ÿâÆ>#ðS=‹:j>4œQ>®­ß?Šµ†?ûk ?m’ƒ?Ä=@%ÐA?µ¾ ?…D=™|->'Äë>-\A>2Æ(>“Èœ? +?+‡?¸b ?µ{þ?;ò?6Pÿ?·­?È‹ç?¶U?«bÁ?‚ÿ{?-.?.D?.ï‰?+® ?'àm?*5S?Å Ë?ÆTH>y–V>†q>Çq$?.?g6?.´|>Ã/¶>ÙUâ?mž?)tr?•ÄÒ?•,>6U>‡Ä?œà?>'?2 ?8?SÞa?i°?>FˆÈ>Å0Þ?7(Ú?O/C? –1?™K>éݪ>éø`?( Œ?*­X>úÍ>êZÑ?}í?“Ø?ŽÀ…?‘¢?„§„?jäÁ?QQD?2U?2£®?;¹¿?X_?N]?’ÁX?°¨C?¯ât?)EØ?&]?PÕ¦?Rÿ?d6?l l>Ê0M>%j ?Y¿?mà?ƒ¦?ˆ[*?p°¨?Jÿ?"ve>viu>ª÷e?.E$?&ù¥?nR?d›?W/??XÏd>@ÕÏ> ¤?4.Ý?Q¥Ò?m?¬Ûü?QÂ? íË?>n?f¬t?²(?퉬?‡1ž>¥×?n\?N}ê>î…?Hœü@ ¡@J^?æ°–?å¼Ú?Ñ»s?ÎcÀ>)ÿY=̇?‹÷?¤??z¶?º@?Ñ6??ðÊÌ?¢â?e€B? +-'>è>ÐÑ’?&?îa?0]ö?5q|?1îÖ?/k‚?9ï€?G2Y?o?SSf=Vx^?µ=ï?¹)3?uÜ?oç¨?<`?†*?K\?Z¨¯?l_z?p2—?%e??@?¨±Y?çžò?Lõw<•->uWK>ð•+>û\? +òÞ? ý>ðËí?ýe?pä'?u–ç?ƒÙ‡?”cç?Æ«?°wm?‚C?!SE?"!H?˜’?¥Ä?¨èã?H'?;—Ù>—?7>t*”?žúp?¿¿?kÀr?@z°?²„î?×~?|•S?&÷?YÐS?r-ƒ>Îv>}2K>ò`p?cf ?¯ ®?™j +?r–_?r¦+?r°Ä?KÂg>òÏ/?;°¸?¶/(?Ûóg@, &@ ÌÓ=Ÿ\¯>³–q@½@ ?ã +H?Þ­ë?—W?‹GÖ?~”[?…Õ'?¬°8?°ñâ?¢?˜?–}F?”æ?AG”?)cþ>´Õ?IØø?Üî?ðÈŸ?‘q×?:·?|%?µÁ?°ý°?ªÀâ?ág3@z²?Ü!q?…»?Â3 @ +ÊT?Ã)é>õn?1•?(¯?‚Ò?†ˆ‹?]¥ >õ¼í?/Ã?”eW?†iø?„?—Ak?ÏIF?É›J?¸·?µ½»?¨éñ?»Ã@û¶@ê—?vtµ?6‰?Ã[X?Ëyâ@Ts‡@PÑÓ<ŒU=°‰‡?ë.x?æ¨?˜pV?Ÿ¥?-Ç?.Å?õ¨?ô‘?béæ?O’]@•Y@N¹?ïÊù?ãø0?£Å?šå]?›#Š?ž=ò?¶>–?¹ÊR?µdÔ?»Ek?¼k?¹ìF?\^]?/M?x~d?…+¶@ µ@/?Ê@ ˆ?ôÉ«?š.?zÅŒ?ªN?¶>5?ÔëÌ?ÙFž?ØÁ´?Õߘ@·@ o@5?ø°Ä?°c/?ŒÁ?³íc?Ãgû?ùzö@ µ@ —@ +l6?ä~M?×Ý?â Ë?äÜX?°ç%?ƒy?ªÅŽ?Çr\?f?gðß?û?¶5Û?ÞO?÷™Ÿ?ÑíÆ?½Ð?é×@ + ?µ?…ý?¼ëL?â¬{?¥ÀL?y¤¿?Œ!?‘~?†gd?‰›Ó? ?²¦T?ÎÈ8?Üfa?æÆr?â{±?t.3>ùà‚?™\ý?×? ?äP`?ãUf@(Ô@b ?ãis?»€õ@g†@ªr@ š?÷9ë?Ó«6?ÁM? )â=š¥Œ?a¡?­ËB?Èw?Ö6&?›´5?€ô7?Ř=?ðFó?§-?w0o?¥*æ?»¦=?„Æf?K T?7V’?#Lj?ˆ×?¬”—?—ܯ?‡é?¾‹‚?æ¨ñ?½Õ?ù¬?Íím?ú4­?Ï )?±ïà?²r?²o@EH@{›"@c,¨@Zæ*@êå?Ígä?ÇÆ?ÍtÁ?Ë ?»³‹?ºpK?Ämg?È?Àt@åe@I?éRC?²gp?K Q>ú?d?€Ü?l?»L)?½t?ÂÅ?a,>ùÜÍ?ïX¿@(“?òƒ?µŸ?ëÅ@Bú?çŒ?ÕÌ[?Ø!?Úw=?ħ?D±§?+¼r?"¿?îv<@*5‡@t@×›?®ãñ?(‘’?Ü…¥@¬?¤d8>ÿα?Rš[?‡êñ@º@0Oâ?ùÜU?ºwh?ªc]?‘ìw@G@RÜ·@0Â'@Ó£?äù¾?ŸÎŽ?×ð@¶S?å˜?Æ ?²²?“t:?­Ïu?ÇLÞ?ßB2?ù¼„@ +ëO@ÊV?Õß?xEÐ?°p?ëŽâ?ý»9@ 0:@Rà;@•pÓ@s‰"@0Ô @œ6?˜ë?‡8‘?W;(?Lo›?Až?A?CóÀ?Ë¿@U2t@A§æ@âY@XP?Ä,B?º:¤?‹ù$?à•@$¦Ï@#â&@'»Ü@?¬h?Ä8ã@|@@&Ô€@ƒ@‹I@ +£†?Ô»d?Ô ?þy§?ú`ö?ñIo?ûÇ!@6ÚÊ@2š@t¢@†j@5¬Ð@.&8@5-(@:á£?ò=„?Þ-W@M>@a?ø@9B@.Y?Â3…?¨Ê%?Óˆ…?ãö?ö8‹?÷˜í?šñ´?t­›?Öô6@*@]S@€EÝ@‚?tõž@Õœ@fß@Ýi?–&×@=@fÇ@1‡õ?Õ„0@°#@G¼@95@^â@g?üF@µ @My?ØØE>òþ6?€ãø@G”@6% @§@ +¶?ò‹ ?ôÐZ@ á¯@„Â@ @Ûç@-¼ˆ@3Ìï\j?åì?ñ]Û?ïx?îý'?ݳa?åJã?ú´.@cy?£Ù?6ñÒ?Á°A@JÆ@é"@Ü@Jê@i÷@@0iJ@B³?£x? ^¥?à µ?Ü>²?ÃÑU?»Ëm?ÈÄ@?Þ†D?B?e“´?|ì?€¼÷@‹‚@-Ùÿ?Øtõ?¬-@âG@ár@2$t@8¾-?¥h´?­žÏ?°k? +?½ªl?å¹e@cÍ@ê”?ð”?êK†?–Ñ>èjø?gª§?ß;ü?³‹¬>ñˆ/?ƒÆå@bÞ±@P6¹?^¤g?€ïø?l>?i ?Ž½Y?—Ïä?¬…H?¿[?EÅI>]W?2¥w?±Àà?§­+?”zï?½¯ù@µ¢@¼Ë@\H@JE?ÓÙ}?Ø\°?åú?ç4W?I<>ÿ¶y?³Q=?ñ1;?ðó²?ü­?÷Â?È}]?ØÛ°@X@ ¨?ÉÆ,?Ø>ùoí?Ýþ?–€Ó? *õ?·™?º?¿‚?ÅØ.@óp@è¬2>ûé?¸»?¦+y?Æ8S?Êž²@Ë]@$Þ@Sˆ?ã¦@žþ@(¯@=Æ?KøF?E-”?£_?>?¬H?ß@ÎÇ@èõ?ç„Ç?¤¶¾?©t?±,?ÃG’?Èd ?¾Á?Àyå?Å•K?•B ?—y‚?AU†? ]€>î‰÷>è³Î?„Ýs?ÕÝ@?À§â?›šD?¨Ï?À\?ºò?kh1?`H9? œ#>ê7?K_`?…Cm?˜%ú?§Ë3?¹0?÷:?ïBH?¬¯?Á½ù?T?]ü?Ú™?2?©€=@MB?Üu ?ž?•? Ú6?«Ìo@õž@r?ÓR€?‚Ä?Ÿ%}?¹§K?¥¨^>þ1>盫?Wpô?hÍÀ@!:@?sª@P†?¥Á ?¤y?®k˜?½*:?­®‚?¥ðJ@ Û@Ì_?&C/>,b¢?)ûW?1T?«³?Ü$å?çqô@$[²@2ü?›–T?œc™?Ý?‰œ?éuT@$À @‹@©‘@*Û?[x:?[pf?—ð‹?¯(?®ˆ×?±'«?Îý¥?ölo?×w®>áŽP?l?ôƒÝ@!?©?N?Šãk?›™|?²ÐÇ?ŸÍˆ?WÅ€?s©?¤/D?¤.ê?•ˆõ? ²?¥]›?¤-+?Ÿ!ì?ŸXw?×½â@ Ð@&?¹[Û^>ÝI\>í›o?uh?÷­?ןœ@ +qÜ@H¥?¿gi?®Å?„ºÑ?\B•?žI ?Ð:?¼Rý?Œí)?‡7?’ZN?˜§7?¨‰É?¥¿|?¤½×?¥=Ù?+¤?0ó?ž±y?Î,?¹3ß?dÔ>ð7>ì%û?îi?þ)? +/ƒ?„h?ȳ?¡PÖ?]? ä?^nÙ?aFÙ?ÄV?·WW?Aix?11¢>Ê×<>"ž?uœ)?ÝÝç?Úaœ?ÚKß?¤žF?#“]?(]µ>šÐT>µ6ˆ@,9@D‰6?ss>â­³?#M:?1;Ë?aÜ9?„ˆõ?Cfj>äg`?8‡J?§Rµ?²V?é ù?Ò:w?±´z?¿)l>³¦ô>Îu(?\\Ä?o‘n?ø?>Û¿> x~>ê™,?>ØP?ku?&Ûó>ì`Q>ÆÓœ>z=ùá0>…Æ?_«>Ž@<ƒÜÀ>m«¥>ñq‰?I\â?˜?JV +>°K>aÚ=|µè>.¨2?^´ò?º—A?F¼>=„¨=(Ò?à´³@+QN?²š}?…€<‚é>”Æ >Ë )>âú>¡~1>.¼*>œr?“›?…>Aj!>E¬˜?^êÜ?o%M?mb?l ?Hô?-ÎÈ?-2?,ŸÊ?´d>c7™>S?ŽÏV?Ž¦P?D“>óGS>‘WÑ>vÍ^>­&ä>ÔFy>ò C>ü_>›…>––2?­æ?¤µÐ>è"ç>èCr?ú¦>ÿÐ?„?”DÚ?Nb?)†Z?o¡>ü4>>ás2>Øúõ>äLT>é¦h?G±?nâô?h{?1Õ?0>q )>k*w?O©h?m€j?-F>ê·? %?4”¤?ƒ>ë’>¸ î>L ¤? )?°‰ç?«@6?™V?”ž?>q.??—u?„ÝØ?†ó¹?' •?­V? Jï?b +>Ä>9>‹.°?mNÝ?±U®?[[‚>±Ž±>ü—|?7C?VÕH?Üy?ˆ‹î?Xµ?PMg?UÙ? UB?^€³?`2V>3¾÷=êW7?An¬?`«Š?Ή¸?Ꜻ?V-9¢ ²>Rw>ïwD?5&?fL¬?5Ã(>ý?rúý?ÜøÆ?ïdŸ@à“@ +Î?¼dD?±§F?=eÌ?G†”?7Å¢?3@Z>†>‡”p?¢wß?³é?Ò]?ݸÄ?Àž?³3æ?Ú09?å§ë?È0¡?¶þÌ?‡¼?2s“?0Ín?9%ì?$°˜>ïj">ù–Ø?$[?m¾>ŸcÂ>žX>ï·Œ>ùÚE?QËý?TUV?Vã¢?Yu“>ÿ#ê>ð Œ?Rr?cáË?‡¶?†BU?tm>ðV˜?Œ?´'?±ó²?¯œ,?a˜>ðžà?ˆœ®?ÙIu?ó?ªÅ?¨·à?§_A?»"ò?ñú?È05>ñA?7‘ ?ì=,?ÑC$>Äò>õAS?ºm-?¶¾?6¸U?1à‰>Ž‚>‹Š?và?€–æ?xh»?o™¡? Ùÿ>ÉÏÄ?„e:?¢Œ?&ø>‚ ”?¬å?(Þ?[OY?‚ÅX?rÈß?k“?q]þ?r›_?Akò>ò¸?'£"?~§?K, >Ñjç?|Ñ?C’^?QùB?—›·?ª™+?ó=€?æ$#?Ä?Š{­>óvO>õW?1c˜?7c™?ÓÌ8?Ól?ƒ C?„Ë’?! F?Ã\>¾ð>”J =dÀ?æ´X@­"?œî•?c°>—tí=+¶ª?qØŸ?³ZK@(Ï@7v”@#iV@2¹?Ç€ ?€Ÿë?Šº4?—'Œ?¥n?ªæz?½€4?Ø¢Ú?Ð?¹ÿ?›ç?ul¡? ™É?Úãs?•›Ú>pÜ™?K®¡?ûtø?Ö^Ò?\w?‚ÒZ?Ì*?Ê“•?¸ŒV?£¹?>@?†gò@o>@–$?Q? ôÄ@à¼@ý’?¸e—?¹šþ?³f2?¥™‚?öe?35?°#c?·#½@2Rà@+¼è@-¨@ê??§`?£Ë9?ûû@‹?­à?±;'?~Ø*?}°¨?ËYL?Èûå?åØÑ?åí*?˜.?‡²?“êÏ?œMÖ? }?£¸×?¿²ê?Áh+?†?x§?xA?x!Ð?®¡¯?¸(‹?Š€‰?á±@"t@|Ø@Q­l@]÷/?ã±0?¯IÁ?¦°.?¥ãS?˜·$?”é9?hxm?c»?Á-w?ÚÊ?õ0@WS?ªç›?eL?w ö?ƒÌ@!Ø@LêO@ ‘Ö?ãh?`$‰>ù/á?Sõ˜?y=P?wóè?yI?'A?¹¡?‘ä?&Eˆ?ßbH@ ¡·?’™v?7ðb>Ö-â>•÷p>Ý>›?C#?œ>ù©R?Xw?{ÕQ?Q¥¹?P ©?ë|r@³…?¼õO?sR£?Zôo?Zq@ +ñú@5•—?Ó‚?„ü?¡\?°Øå?¡ö?zÈ?§Ò†?¾ƒò@*Óx@L|È@Ý@Ø@ O@$l­?óºŒ?Ï?'¿`>=èd?žé—?Þ,Â?´8?™¿Ç?­Üq?»•n?O-z>ú!†?R?3;,?Vj?²òŠ?¦ª»?©5ã?N-^?àÿ@oïø@«P@.— ?½¶O?•tv?ƒ…M@:y@E?@€¸@{‰@$˜Ã?ÞÛ^?õq¾?úƒ@:C@Æ?ãB5?ßÊ?×qÞ?Ȳ´@ D2@@@(ñÿ@,~ë@"ÖC@#ý+?œ-¿? a2?NøJ?t–Î?y€K?zÈD?§ò¹?»_º?±fó?¨Wý?ËÊ+?å±@ +D"@±k@ +§@?§Ou?mMÏ?v®Ö?€ +h?uŒ?`Z?PT> ª£?˜~Ú?ÚÒ}?çùi?îÞ?ìª?íõe@#P†@:öŸ@Mí†@Rå@)ù@Ò@)߸@:Ñë@(˜4@‹?þû ?âê6@ Çb@ Þë@!I@­?Æhk?xÀ?†!j?’J?pË5?8lé?¿x€@/o@ îÉ@yÖ@@áÄ@ , ?ü$Ú?»AÒ?x2k?ˆ ³?˜ Ç?Ò*@ÇQ@j ‰@­²@ÁŠ@>@.@óg@YÌ?äá?Þž?Ù0?ìL@Ô@f`@4¡‘@ ¨?wÄÝ?Ð):@2Í6@/†?¯d0?÷D@P[Þ@Ka)@C¤¨@6Ð@ ãË@VÖ@J‡Ç@GF™@-@% ?g§?„›Ý@‘Á@ Ù¤@'1@ +“Ö?w˜È?–‰P@U€ @N¶?õÏ0?ù¨@?×â@A”@V-²@Qx*@“g@_„@2-‰@-Q­@)@/âî?µ—‚?”ò?{}?tÚã@"'@ï?Òù¡?´@_ý@¹@p¦s@bõ@*ùÖ?Þ ÷@ Ìý@"e=@¸­?ÑòêÜ?‹ @MÞº@Bžø?ò,ý?æXš?òwÉ?öç‘@˜½@"¦'@Iì3@M>Ž?ù¾¹?ò=;@È'@#@";@ +õô?õ› ?áö-? ¹?’”Ý@3Ëg@cy»@$)ú@Qü?ëÒê?Ï?ÌyÕ?Ʊð@-¿@‡x@:F?pY«@`¢@©ýb@‹ F?òj@˜9@ ½@â£?×1“?ßhÌ@²n@£Î?•}e?a‚r@AV@PËÖ@ß–@Éë?§6®?†‰?ëÙ@ ýA@ìI?î?ñà¸@ªu@!ȼ@CT›@(™¤?àôO?ÇÛš?o¦Ž?h°á?ù?2ïL?”“ó?§Nð@-1é@'%-?uË?WûÉ?ÜbX?ìµ½?´W?©.R?¯ºíI#?׈Ì?Õì?´‹G?¯òÎ@ +†Î@¤ç?äñû?¶ÙÀ?Á(P?ÀŠÔ?·>×?¯`à?Ÿ?kÄR?‚öÙ?Ñ2Ã?ßl?µ.?†ÌB?&²?.GÂ?†i¿?ˆÍ?š‘>ºÜ}?©£º?êÑ?ÊRª?®(O?ª(ö? »t?¡^%?­Ü?»_l@ä?úÇ­?­ŽŸ?­zj?Ì°U?Ýb +?¹i›?¦t?Íê›?溪?Üù¬?Ð=æ?ÕÚ‡?ì+?ôÿe@¤@@ÚÃ?7y?»Þ>å¾r>婇?ð¶?Öëi@ +Ú¥@¼î?îO¡?ͦï?Á-¬?«£E?”Ðñ?ª,?h-®@X±%@Gã?¸g?½HÄ?Â(®?Çè?ñæs@q@µ÷?ã’d?Ïœñ?«c=?¯²ß?¡âÖ?›•Ö?–¶Ô? ÌÔ?ß1$?⬕?²Ël?— +~?‡–›?pHé?cŠŽ?l‰œ?™*«?áì¤?ÚrÄ?©HN?©4M?™Þ?Žq?¢,¤?¨í?…p€?Zd?jíG?Œ!?€¥?!.—?E?Ëbß?Д?YP¶?VÔ? +±>àÀ@­*@aÀí@°Ÿ?§¿a?Æ0¾@Ý@>nI”=×8¿?¿â ?×÷«?§wÁ?Š8?¡ÏU?ÕF?æ¹X?ÏTZ?¶Ã8?Î?Ù‰? Û.?(D?}(? ðŽ?„?&+;?ŒÓ1?þo?ಉ?]z¿?]^@Fœ?úMÏ?Ùè†?áö&?åì9?Õhù?«?Nÿ?:4J@ A2@?æÂ?éñ?§²?së?„¸–?“þ‹?¸03@|Œ?Ö÷m?g,Ô?‰·?bê?[Ë`?˜(Ô?Ÿ>†?ÞWi@²@’ ?a€?c”©?[d[?[Zd?[Pž?[Dõ?ª!Ä?µI?ŠÐD?[&«?AC–>Û4>åNB?¤CŽ?¤>ý?ŽMì?ƒ«é?'ÂÉ>Úä†>Úâ?>ÛÅÁ?*Ö?Ð+b?Ê¥?®)?¡1–?¾w?¿¤e? \"?lªA?dA2?ŠÇû?•ÍD>Ú×3>Úà:@AŽ@©ž?‚@ü>ÿ%?†.‚?Íj¨?µtS?±G?ÍçW@ +Ó8@ Å?åçí?ÛJº?·f`?¢Jú?¥`Ö?³M]?»Û‹?À~m?·5,?zKI?mÎÏ?Ë2”?Û3?–²4?uùË?BE\?è?p˜ç?Ïá?æŠê?ظ?Ü ñ@<@ [R?˘]?­æ?¥G?¦Rì?¢Ê÷? ñv?°©‚?Ö¯•?Ç3?ÓH?9•ü?#ì?e×?{?zx’?­Œ?à‹?ä„f?ð[^?Ëw3>àìO>à‰>ª^ÿ>7­';¹±½=︬?7Äü?DC?Ù$?îÛ?_”?›²±?hø¶>ägÙ>íŽ'?6v?Kôä?²È?ÀW?‰ùB?‚1>Úæ?—d>:–>>&î?Ä?Í*>é}]>ꨎ?@r\?k†§>ÖSÊ=Õzþ>!æþ>YIÞ>Æ >¼„?\nó?¯¦>»¹ë?J£?QèØ?–Î?Lƒ?0iî?¤rõ?z‘?Yèr>›¯§@ U@GP@*ÌÞ@|ñ>‹d]>Êu›>áá7? †s?Ge?5ÕÆ?bÖ!?J¾ô>ãHœ>ïa\?Or?Q€q>úó>äU×>䆃>ä»H>äê.>åØ>å×V>ØäG>ì.•?.\B?1?f(ú?fT„?Mç>æ¤&>î¯>êvª?ÙÔ?,i>À>x>‡œ0?cå ?jªÏ?l1å?eêD?,;Ù?,n?^bj?eZ?@H?0 Ê?+çä?.?fÃ>ê/>äÏ>é£B?7E’?¯a'?¥Á!?j +¼?^vË>ÛZ>ê…;>êž?>ê²{>êʇ>êÞ">êõ]>ë ?t ?$‘ý?F0–?ƒdC?tå??@RÏ?4¯‰>ëª{>ô“ ?í ?M®>áã#>Õ¥Å?xȈ?†¯é?r'ñ?lL»?‰ÂZ?•7? µ=ËBI>Ó>4ô/>§ =Þ½>vç±?ûP?'¶?m +r?[H9>غ>íœ?¦ÿÂ?©†¿=»Vö<‘¢?MÊ?mˆ?¥S=?±OÎ?<¹ +>í¾ö?‚›+?®qÛ?aé>íøL>±Š9>x8´?<¯{?Æ £?¦%f?%ûW?IÆ?—AS?œ³“?ÎÌ-?Ç4z?&×Ý?"Wü>çø>ýÆë?¨žá?³ž?pú”?]±9?àh?æŹ?ÚýE?Ñk9?Œƒ?8q:? ô>ïEq? à*?% M>ìGÀ>"]‡>Üxn?‰¥J?lÉÎ>ï¢=? F ?_•?M /? ×? Gƒ>ïìF>ïøn? rm?n @›Û@1Ý?bpW>ðAk?ðÌv@}?ˆåë? Ïž?„Ò˜?¦6t?±V¶?¾L)?¡?„ë•?:dò>·Ëß?3 ì?œ«®?š>ñ"? Î?mlo?^£÷>†Õx?à@ž@œ?”µ?‘™>Ê&¾>½ƒzR>÷ÙÀ?¯ê@ÊÞ@ì~?ã¬+?°Ýf?H;«?›úg@%t@Ó2?üúW?Ôœ?r3?k–Ë?(3?$S½>óY´? j?vaj?o¥?Ÿ°Ž?¡O4>ðÝ>cE?-â?"Ó?™M—?›=—>£‰û>Uê¸?Â?ßö?@Ýì?¸´? Z?k?†¶>öÜÞ>õÍÖ?@Ô?cxw?ˆJÒ?È‹I?äÅ?Áˆ½?¬I;?Îa,?æ9²?Ë¢c?·Õh?¬W?¥ÎÖ?€D§?,¸…??b‚?c·?‹Â?“MÎ?¯?ž3j?–›(?‹&£?ˆwx?uÕ€?ˆ¤­?¨Ò?Žk&>ó+'?'P-?¯ñƒ?Ñ É@æ/@G±?yœõ?Gˆ;Ð,>$ü?¸èÞ?¦¢b>ö¤¿?¹ø?¹?½XÜ?ò‚x?ê»G?3_?U?¹Do?¶ú[?”´é?•Ü$?=®Ã?:ú?6yq?6°@&?@&oO?Ýá?ä +E@õ@ +>ì§ñ>Ôç?aà?œ ?é—²?÷Ý ?‘ùõ?ì>?xà·?x'?{vÛ?‰@E"@ô‡?í>ßÀ€?DM?oú?£?xlJ?2ô0?)5.?´or?Äy?Ëý?À”Å?èÂy?ó#Ž@±I@ŠL@~?øÖÔ? + />éD?GˆÎ?xö†?xþ¤?yå?×N>ù^?o!w?‚Wy?œŸ>üQh>ûw>ù?±?‘e‚?©Õ?"ó*>úÎ?¬ñ?ÈÃ?”J–?{Ü>ó³Ÿ>˜&?#F´?@én?¹f ?ÙHl?GÍb>ÐÍ?‚ç +?¥)Y?ãâ?ù¶`?dÏ€>ùÁ¹?ûhÅ@!8?Ï0?©xM>ä3b=5ÆÕ?‡fI?ºË?åÇ?õ@!@S†@u‹å@"X@j?Îû?Á? …¸?’*e?·ÐC?¹½‘@ •ú@÷ÿ?ôR9?Ý>s?ž¼?Šc|?k¡§?Nd? ©å?ÌÓ@)Ú@)Æp?ŒSC>ú ‹?_“ä?€Nt@/ê@Zæˆ?¨4ù? ãÁ? Í°? #?ºLG?í+??Å,?Ä»t?õœ~?ù@ +!‹@x¹@öA@ +¸õ?’‚?AÖ?ÆÇ?ñš·@Å/@2e@75ü@D·Z?ÇXì?yàˆ?yÜœ?yØï?'ï‡??™(T?¹lÌ?LØ?Þ*?œò?»IÄ@Ö@#¦„?Ú!?¹õ]@B—@zD?¯×O?f(?¦dH?®"ã@®æ@Ò?¼)W?%Å?lV›?^ƒ?¬}´?ÃÖ©?Œ!?q%s@ Á@:éÅ?Òlm?£Ã@(@6Zª@ç†@ +L”@üì@$ò?ßÉ÷?«È¸?ˆk›?on?óã€@É?£ò¦?¥6? ˜'>ø•ê?´„?Õõ@ í»@)ÍK?ù^?·!??e>Î?L ?Š¥C?¿©?>„¸>+•?žš‚@b?û6?÷î5@>p@€Gb@ è?wÁŽ?Ý$@' +ÿ@53?ç¥}@µø@ Q@;0@56ø@":@þ?ù›j?õÇ @l&@U&Ü@!ø?‡0?Þ;&@A½}@F‡{@Lˆš@&æ,?¯-?äxà@'æ¿@äÎ?ò+ƒ?þ ì@F?çáÙ?v0ð?€z?Þ ?‹ +¾?¸X)?¿Nª@¬@¿`?çc?›¯ð?êî@?ôÚ­@i@„@:@6á½@L*M@QÙm@­‹@YÖ?öÀp?ôèÚ?‰‡?tÅÄ?ªk©?·l?ˆo"?~èd?š2?œeu@ +Q@&3©@ ¸â?ôÓ@TÑ@v@¹æ?óÕs@éÐ@ âÀ@ {@ —Ó@ Œm@3ùJ@m?tºR@Ïž@S!@7èˆ?röË?ªúê@gï@¼Þ@G|T@5;K?ú¡u?øƒ?±¬µ?Å?4?ÿºû?òAè@N@M@sB@Þ@"ã@%F™?Øþr?Ñ*Ž@WïŽ@e¯ +?£j¼?0jÊ@%{4@RðË?èžç?C?è®[@ßY@!L@0dœ@%2i@šy@«?«âÛ?ÄXõ@ ˲@J‘?ŽÌè?º¬@$èÉ@ù¶?³±§?¸Ø ?þNù@ðý@„˜Û@Œ÷Õ@›§@Ö?Í£ô?ÅqF?÷{o?ø ?áµ$?ãœ@¾@$ñ;?îÎ?žÆ?ˆ §?mùè?…ºU?ŒUh?îæ@iah@5ý +?ZôÛ?HÛ=?äÿ?HSè@-=m@1)ð?ÍÓ;?ÇÃØ?ù&M?ú¸D?Ž.~?lp’?¢–?±4¢?”•ã?ŽO@¼ï@-Óµ@“ä?¢??ª‹?Ñz¿?ü«ž@?š@AW„@£ü@2ö?çØ;?çPÚ? Ä ?.˜ý?0(?=´?À §?äôZ?Á°L?£¶“?³–?Ì¥?Ô +Ö?Ç\?Ü ä@Ìu?óæg?{ȶ?Œ?×*Ò?ÒM>Yb^>z_F?Æf¼?ÒyÔ?õ>Òþ?Ä´¬@wá?¨Šê?’‹?œ¸m@ïv@ ö£@$ á?äYù?¼lT?Ôä?ætÀ?κŒ?¬µ,?ŸÛv?a‘À?FË@%ÿ @+@k?݃»?Ï V?X L?Y~E?èÞC@ `\@æ?ê?Íõ¿?¶”È?ãÕ‡@*Ãe@¢?–*Ú?±þd?1ˆF?ED?½¸?Å*‚?yªs?2âï?¥+’?ã„@ ƒ¢@(ƒ1@¤2@½.?ð—I?”Ü;?¶?®ƒ?ºp ?æ Í?ýzÔ@ð1@F@‰¤@”'@$â?»³"?¸v4?k?’¦‚?¾?É@“?¥Ã¶?¥ƒ¦?B²t>ù€3?À?¿pF?­­F?ŽÞ‚?ñ?–µ?›S`>ós>à&1?¸O°?Ï~?ÿr³@!w?çF?"ç,? ¿@§]@*?®n$?© X?Ø»?Þñ?šÞö?€Â´?tKö?^›?¹ét@2ZÍ@' ?Sß0?]#D?Îw?Äi?‚”?]Ý ?ÞäR@ ³;?þs¹@ N©@°?f:M?]LI?ÞÙÑ?èäa?Ó)?ÅõÖ?Óq?êpÙ?Ò0O?Šœ*?Š¬?Üç!?á2¡?²¤?µqÇ?Ó·?Ü@4?çu?ëþf@Åò@lÅ@\b?[áÿ?[Ùì?¶ZÃ?°gÀ?Í[¯?Û¡Å?Û’`?Û&?ÜT?Û +N?͸Ã?™ýã?”U?Ž&?ˆ6c?à|@4ü?×%‘?`Ø[?†åe?Éu}?µ¡ ?~vS?…2"?nÑ?|>=?f;?%p >ïï<>ÚËZ?³Ã?‰#l?•5¼?ØòÛ?Ú½o?ì–?üY@"~@>ÓM@$(?ñ¼V?ËÄf>ÚÀÈ>ÚÍ”@œ@1ñR?ßóc?¤)Á?¾ŸÞ?Úò?°ó¸?Ä|?2éµ?ÄÒo?Ë?ÑRV?×’ã?ÚÊè?ÕÕÔ?©< ?[°?…io?’J’?¤¨Ä?¤Î¶?¤Öý?¥šÊ?¨’? \w?”î9?4Ýh>QøÕ>¶Z=??óÿ?+b0?¤F…?§Ôÿ?“¯ˆ?©¾¥?£qa?¥Ú"?Ÿz×?—DÍ?ŽBç?b—»?aøL?{BÐ?‹K?ŽO?hÝõ?”X½?®Ä?ÎYŸ?ÜQ@?U“C>Hù\?DÍÄ?»¤R?¡åv>ààª>ý²?“‘’? Ö¶=“0>$0à>•{Œ?2d§?qjè?r7?cÊN?5Þ>åGe>䳌>åt>÷ ë?$‰8?J%?À7?µñ">Ø<>è<“?ÿÚ?xÁ?€“…?šÿ9?µY>Ïg¶?@Ç{?kš&>½ “>)&—>n7=›Žo;ÛÐ>ߦ?q»|?:u >òÜ:>„ò=˜='<ˆÀ>'Œ\>‚¶|?Eį?8«>Å%@Eü@IVV?VØ?Z!?Aà>ô•P>Ẏ? ¿{?%‹?@@?b²?>£é>ã'…?êê?ª±°?ª¾2>ƒ9>ˆU7>†Ó*>…h>ÂË>åÍ?{S?2æP?1¨ +?&­?.N¢?f7?fÊI?`ê·?_v˜?bãÃ?fâÂ?f#æ?bI…?$°>ß1?’Ú?+ì§?I¢?‘óB?‡GÕ>èPˆ>êÔï?,Y??,Hq?_„û?híu?ªd>é+9>ì¬n>øƒõ?3•5?`€L?b0Þ?t°?øH?Ê?|úô>K×ø>VSà?&´ï?&Z|?%»¡?%¹?$a’?#¨?"éi?""Ï?Kfn?k.?]KÅ?GÌÝ?5Ê/?ßÏ?é>¡wô>ÚtE?kÈ ?m`^?Eý?‘Ž?’¼ ?”í?uÍÑ?lB"?$ÔÖ?.Š>ùné>솜?T¢`?ˆÑ:?KÜ?þ+?R3?¥ f?”«?Yå†?+çr=2 ø?m?mYQ=h<AH?Sß?rOæ?j¶?e]æ>¯fW>4§?\£?^-? £L?ƺñ?m(>[£?ŸÀ?R¢_?E3a?6b·?@ì ?b€º?T!Ý>Ÿå>ÆQ÷?aˆ?Y‘½?Sm?\ô;?A8œ?7‘·?ŒV‹?•OK?Áfn?ÎÙƒ?S$9>ïž?4rú?S{}?^<?oF£?]­-?@—N?an?“öZ?~/¨?ˆ3?g~?ÿòº?ê=Î?^í…?Wëš?°Î? +ÊJ?°œc?±ß8?±À˜?´ q=þ0<_=ªW‚>U??íÂ?c‚ ?v}¿?Sê?D?'”9?‡ +?¥é›?J)>«mò?‰a?ð²?Ô-î?¬/”?†`? +”>ýåÌ>ñÝ?VäV@T¼?ýê ?›_?œ`ø?Î…?Šéš?I%??S#*?µÿ]?ªýÂ>ÄM>¾f?M‹É?^$ ?ª<á?µy{?6¡ó?ÆB?Uú“?sÝ? D>ðþÑ?A€?kÌn?ŸŸA?š$?‰ùK?2‘?ƒ\µ?©oM?¹WÕ?ÕŠ/?غ?Ûé?á?×¢P?¤|î>ó°? 1ê?:k.?MbS?™G¶?‡Â¥>‹[˜>¸A?6x–?8˜ð?à ð?á¼Æ?ãiû?äú ?ˆÙV?…hÇ?—4?’‰Ì?XÁ?}æg?Ù¡æ?íèk?À±Ò?¶üŸ?„¸0?nÙ?5}?O@ õ-I?Gi?x.«?Ó@@^®@¼(?Ã?r?ŽC•?$A~?"å¿?0¡¾?i°÷?–õ?ãÌ@3~@µ5?vË?¬Ï©@€¹@Þ#?¸„?¸F?³0?¢—œ?€£?‹iO?¦è£?f?‡Ú‘?’:Ä?¹ö?£z>§õ0?ˆ¿?ß”È?Ö§“?žQ&?•5 +?8›~?AÝ¢?w+½?‚Þõ@ kX@ +Hµ?M5¨?Mt^?Ûr?Ó¬l=س=Èãk?¨c?‹"Þ?õžM?÷·ž@âò@[1?¾Ê!?¸4±?¶a­?´Œ8?“ŒG?—… ?š…¡?“d ?Í7?ˆ6{?(„Ð?$÷J?IWý?Hû?æ^º?øs.?¹ºf?¾Ž½?ß1˜?æüM@FEE@V{@É?å½a?… (?WLÞ?ƒeÍ?‡¾8?{Ù›?xëe?žƒ?¸;@d8@:r¯?ª?t4@4@?krû?%–T>çº>À“ð@ Ïx@(à²?ú­®?ãK?£ü>P ƒ?ƒ¶J?Ò?ÌÁÿ?ÝO?§SË?•/3?u¬?y“?²^À?È[K?=¶ö>ù¤%@ 'Î@.ºˆ?Fàê> ?ŽÜ„Ã>üóK?<ñµ?Yû?Þ°Æ@›©? +?/³?=_?<„?Û\@ À>?s7j>®ž^?6à?ÉÏ?ÜÂÎ@j‡?µ Ø?k,^?y à?{%S@EŸ@‡D?øDå?Õº?=n?Fi=?¥Ñj?Ý/Ù?î¢&?÷Ó@%–@Gág?úõÓ?w¦ ?ª´?ÐÆï?£~ï?f's?¶ôó?÷.¢@¦›@.C@>èì@tûË@[±@7j@ *@-|?×À’?vÝ?¥Ÿ)?ñ¾ý@L1@2¡:@Ú?ys?³ï’@ï¸@˜?·µó?Î3@¤!?þ,´?ví?¬ÎE@4¸@ m?xú?¤WÑ@1a@PÞ?ušÂ?,í?¸?´õ¹?“Jo?Ÿ@]@7Ø$@9»‰?è?È?ñ*Ð@YK‡@d‘‚?ݾ'?ز?›$Ý?ˆ!n? BÛ>ûþ´@§+@);…?¢jT?tHÇ?“W??¡ž?úúí@ žÌ@>æ@Uað@Czñ@2<^@,j@.œ—@aD?ðè±@ @#y&@tÕ@ô@'ð?åZ%?ÆAj?rÝã?®ëÛ@XÃ@úë@.¦@™e?âg?Å}?nÌÑ?›wš@^Õh@[ÆY@"”@^¦@SZæ@QN·@C~@‹¢@=@ç½@$`¬@1ï§?É"ú?—mµ@g›@;€ª?¹ã?9ký?ÀXu?ùÇ}?êÏÜ?ê|Ò?Ò3¦?º‚[?ºé‘?´@vÔ@;,k@d?šú£?Ãî@# ù@‘b?Šü§?’ø¬?‘l¾?‡ä3? û?’?éÊ?ò›;?説?ãr˜?‹ñ?‡ç?ÆF?Óæo@8ó@ãC?ùå\?Ü[­?©È ?má?ìËý@J·º@z ?Œ ö?£dì?¦“?§”?³.ô?©\³?ÈLi?Ôu?ÔÕŽ?ØÈå@•P@¿¾?š}8?sÉ’?Ï#è?êb?¾ú?¦¢r@ ×e@:$@Ãð?뜜?߉›?ÈX˜?¹£ƒ?¡K?ìå@)U<@!)y>í×? ¡µ?Ñç¾?Ç2?^Ÿ?Až›?š¤?¯¨•?Æaz?Õ¢?–±?QTú?ô4ð@J­î@"é„?´¹V?·)î?£]þ?¨ñ‚?é´?èîÎ?­µ«?’å@ ©Ë@`ñ?º_¬?ŽPJ@ =@-à˜?óˆÎ?›ØÙ?†pl?‚µÖ?¢õ¿?É "?Ï=ð?É>"?¹Ø'?ðŽŠ@|®?°p?¬¨?¶ý?ÆáA?¸¸?¬ñç?Í2¿?æb…?Ø –?ÁbÕ?Ö ™@ +w@™Ú?±‡å?³~?@&â»@"&?v”C?=Ôû?Ô?åN@êÊ@Ž®@oØ?Ô4?ñ«Ü@æ%@ ão?Ó?Ë×J?ù%?à¬Ô?Èœ?Ì?›?§¢?)’?¶%?Õ\e?ûóA@ìŸ@æã@ èf@/^?‰x??Ž ?d­U?b†À?O)²?T.E@6Ài@|¬K@P~@)w†@ +É?…ù?ÿÉ?¢¥e?—æ¹?Dm)?NÏw? ‘l>ãW…>æií>àá?Ÿ4-@±X?ìÛB?Æ|V?Àáø?—?tTÆ>ùiÁ>á™ì@Já@eì@’.?ß®?{×8?(ë@!Õ?ú1w?ß%M?Þío?ƒ ?‚$O?¯È”?¶S?ÈÊŠ?Ы?Ï`]?ûQÇ?èËb>Þ.|>áÞ?o— ?…âb?¯­l?°“B@ Cs@C9â@!¸›?˜\G?’Bö?ÜŽ8?ÖGR@ß@Èü@y@2Ù?Ï™µ?“ÐR?ÆèM@ å@?Ü€ý?Üm¨?|àÆ?_v?õWÙ@h¶?åN=?ßñê?ç'Ž?Ù œ?÷*»@. ´@{,@å@ õ ?Ø,?É'?ÔÓJ?ÛmH?ì™÷@”?ò ì>£ž~>êTó?L]?jä?Ež??ž¾?¤Óô?½4;@Pí?ú}2?O?#@—?U¥? üÏ?·nl@êx?ΠÚ?P§?„ @ÒI?ëy?»Ý? _>?¥ë&?£þ6?àm@ +s²?ì ù?–Ãþ? ´?&žÙ?hÏ?ò-¤@”Î?ÆÆ?¤Fb?¿cm?ÚÚ?¿Ë•?jµU?\›5?¤>?¤E>?žã7?£fX?¦û5?­;„?Ù§;?óõ~?±€Â>Û‡>üKï?­Rt?§"Ò@Z¦@†@k?ìv?|n?ãæ?MP?½Èš?Æ£?]¿ë?g¬h?¾¼?¸Áã?€tr?]Wö?oºB?tÖN?†PÛ?¦?˜°Í?^EÝ?`—Ü?žew?«t#?R’L?"¤O?‡Dõ?¦ð¶?…1ä?9 ’?,+?KQv?jnä?jD†?C?S?%©>ð¼>Øx>¾5è>¤ù>‰ç,?¶å?Cÿ?1 ?Sp?`Æ>?`²¥?3¥=ï~«>iEî>å²î? +%?§¿?¼=j†¨=æ?» +?,~%?tC?…¾<>©W¤<ÍÌ»?i?ì?©ð>þaÂ>¸1ú?A¤â>׊‚9çmÓ>%/^>Ö¹2?YÈ?! >úF¬>Ý ó>lX_=ødê>„A?©Á¶?ç é? ’@6k¢@hsU?ÈNÃ?œØ >麛?HHf?LP>³³h>ƒþä?9 +?‚ôù?5[>˜G>Øý¨?^ž#?R„E>ž«Ô>¯µk>Ðç>äï>>¯`þ>‡ÉU>¸kà?ÂY?! +?f}?o ˆ?¬Ã…?¬äØ?o".?fÖÁ?nf^?s´1?ntØ?gqN?1k>þÁ-?Rê?3·Š?#k>kz>”r?4d¡?4 —?4ë?5:û?».>é$é>¼q?.?–@#?q Ë?%êÐ?.Zš?Nß2?3.Á>ŒM@>¨wZ?<¦é?@Ý?‹|®?‹+¯?n:}?jÕ‚?†8(?‰ÈØ?[f?DW?v©?°€C?ž9?‡D%?*ñÅ>+î+?.!°?#)Ð>²Íc>ºk>ì ?>ìAæ?g÷ó?l?g?lQ8?l`s?ñ>Ê7Å?«ß>?åuò?¨±?x4?<>ýÊ]> Áà=,}#<ÎŒ“<ק;!7.;¿ Ò¹¿>¾^Ä?ø?6 µ?"W¬?Ì?.§Â?Jwª?.[^>îU>Ý+õ>–/²>æ™ô?²çÞ?°a”?|mý?x?•Â?•b ?° ?³%w? 3i?¢o?Q ã?%î²?…¦“?žu? ®]?œ­?“Rˆ?“-?¬¶?J`?S|ˆ?o~ì?Mì? tÄ?{,>ïªÐ?Ú?oÄè?oο?oØâ?_S<Ïì?fÎ?cs?£UŸ?¢¾4?ªÕo?«¼?ü'@~L?¶›p?˜Ÿ ?‹?ˆàÉ?Vƒ?È#?Š®h?”ºR?yœ?G~??¤?˜ð,?-?3Ðb?ˆ‚?ñ«?Ë/'?AR™?\?)?Ÿí*? ¤³?…û?ŽŒŸ@<)‘@=r>I&>,WÉ>ë;>ñÆ9?«Ñ?µeì?€ø8?q÷"?ª•?µŒ ?†¼a?mÃá?pÊ?rDù?¡5?µÈñ?ègs@°M?ÓIi?µò?žÇÒ?‹? KÀ?¶L?ÈÝ?æ!.?Äç3?çG?_¿Ô?6<ë?Jºâ?s9±?St#>À„÷?/¥&@$â?ùù0?¶¥ ?¸ßí?Å¥?Á)?«¨¬?°„@~i@Ï©?¯‡‡?±³=².Ô:“ø>ámî? S@@- ?–¨`?c |?]ç?oâå?¶-º?ÆO?Ñ#g?ϽC?Ìdñ?ÉA?¡ûì?“ÉA?g‡#?;ŸÊ?XŠ¼?€(?» ?åmA?ø$@€?á³?³Sq?u];>ö|è?u‹·?Ñß@2±Ž@ŠÌÿ@BA&?Úû? cæ<½Â“>±E¿?v¾?Ò¡?¸¦a?¶úF?±zŸ?¢þz?†E?TZº>e«Ê>êé7?6¬?ˆ:?ŽÅ?ŸÉ•?öÄ&?×\?,3­?:­ç?6Y“?<æ?wD?wœ?w) ?…2©?Ì?Ö ‡@"Ö@á?(ì¥?6¥X?÷^?÷'°?óœ»?ñ j?w«å?u¤?sõ? „¬?ë?ƒû ?åræ?á²w?1p+?6´à?åd?å¼`?”î?ÜÞ? £-? K?ÒÏ?×ñq?‚g^?e„?ÄÐå?ÆÆ @}ú@K›?æ^B?ÜóW?ʲ?ÐkÑ?©D?§_?uÍÀ?mQv?‚Ë"?€9? øá?R*?©Ò ?¶šk?õÿ@‰ð?†¿6?a<_?]W&?Ys#@¡@%¥ä@l@ì?¨»G?Š‘¡?ÌÐÌ?Ù²c?¦Ù-? T«?QL?› ?’?q?y?ˆÝ>ù‚)?=3À?=š?±’ã?ÁÚ­?ïÊe?ùšâ>®@|;hõ?>?¿þ?ëõ?ñÀï?¼ ?¯?q@,@:0q@p…?ùÃN?³î?¢áz?jîÉ?Jõì?Þ'„?ùÐÓ@ ûs@.:@+á?@0À‚?¸¬‰?™S´@pÛ@^}?OÉÇ>Í@#µµ@?ª @·?ùÛm?Æ«?»cÅ?7êÏ?×#@×!@ÙM?ÀÑŸ?«·ú?ëùÆ?ùÕr@ ²J@îÀ?ŠV?IÊC?÷Gt@ˆÌ@D±@Xv@@?ø?nGl?9Ì@+ÐU@O¬þ@þ4@ß]@vÀ@¬?nôe?á›>@N=j8?ó +½@Å?gÂØ>øÏt?ª_è?Й¢?€vª?B´’?Œ …?ši?âò¨@,.?ÄÀ–?¤‚Y?sÏB?ZBD?µ i?Ú[»?`1?c›?—Æ?º‡£@Yx@‹‹|@+*š?ÝYp?x)s?&¤?’µ?¹ß£?ßé?÷¿©@+oœ@IÄe?ÿêv?–ï?±Bh?̹-?æšÑ?÷]ò@3z@gbK@¬?lÖä?ÔÉ@.@)ËF@9<@)BÑ@†Ð@`q@í?Öp?Màb?¼.a@™@Zå@öª@­¡@C¾@Š@#ñ@<å@e>?ÝcÕ?èp?Œü}?·Dâ?ªÃ[?uÄ ?çú?»?ËÃi@2Yh@žÝ?¸ ø?¾:Æ?ãZ’?Ûpå?øœ(?ûve?¨LÒ?¢°?ȃ@8:¿?þ„Ò?ìVF@.Ó.@7:?ó•­?Ö?Ϭ”?É\c?ßPÝ?î'‰@+@?¤@W=ä@sD@:Np@-Í@ZŸr@„ùµ@œ‘@³±•@B¶Û?p`?õË?¶1$?jXõ>‚œ=?Fë(?Ìá ?ó“ö@z@ý¾@.E@ =ç?à‡Å?ó }@³¤@¢Ä?qàÅ?€þ-?ôdF?þ1‹@¤£@ñÂ?×€Z?ØóQ@ V>@ +G¹?Û:í?Ôª@ ap@‹Ü?Õµ.?´†;?ö»N@>?˜7š>ð_:?œëÅ?ëE?·NÔ?„qR?ƒc?w¡?‰µô?”*¹?’yÐ?Ç7v?ù@nã@+Û?¼Ò?®4þ@2Þ:@Gëz@3@Ï @ùy@¿¼?ô +?¯ùí?Â% ?ÕíB?».š?k)¶?Œ8²?æ`:?×>®>êÉZ>ïÍG?ꄽ?ê„?Èâj?¼Ò8?°ëÍ?¯™e?î4ü?ù§p?«ð?WpF?Í¿Ü@, @Ix?¯Ã?®öm?®è?±Õá?Å—å?Ì%@áâ@ >@Kr@F@£=@&'[@A¾=@IÞy@#±@e÷?ß-f?©¹—?¸D?k K?Ÿ4A@?C@Œ?-'U?‘Ði>…¿€?¤ã­?Ñ÷Ë?Ü?ã?æK?Ò{•?Áδ?Ï +ë?ÝC¡?ö<@+Ü@$?ÃÚ?Ò5û>Ï÷Í>²Üé?ÓŒ˜?þ>Ö?àr?ÕWj?°à?{SÂ?¯Ëˆ@Ãã@΃@6·s@0'J@<ï@:_ ?¥›ï?•ò¬?v¾j?cŠ9>Ö%<ÐbG>lA?&´?©"ï@!ä{@ a²>ÖR¸>þú"?˜;Y?ŽVÞ?)÷Á?Jº?>²Ô?‡ƒ¯?´ùÞ?ÒÝ?ÞÒ&?Òvb?×VV@æÏ@Og?ð>ú×p?•ª¨?¥àd?›¦?‘ D?˜ s?³[Å?b+?E¥Ü?uPå?¨2»?¨A?]¸ž?]æ=?¬\u?Êõ?“I‚?t´Á? K? aœ?¹”€@1DE@1àA?Úë®?Þ÷?þ5J?ñ  ?Åî“?¾7½?º!¥?Íh´?×p¶?±Ý?™Æ>Þ >Þf?ÆÆ÷?Àù ?º~„?¿Û[?à<½?ð)<@ÞÉ@¥À@jX?bð?w¿?è5¥?îÆI?·."?ËßM?¬ Ü?z>?¯7~@“w@¤Õ@ ÛòÒ?¦?](Ý?e5.?jÚ?˜Nß@0÷'@2)?Å  ?•Cj?ÁCÞ?Þêˆ?í.>@ @r,?d[?@Žˆ?—ƒ/?‡Í?rÞ„?As‡?Žþ?Ùÿþ?À?5?’j?§#k?Ïs?±ƒ…?K·®?A‡c?–غ?§(¤?£™Ñ?›·U?¢Ö?ààø?òÿ«?°â?  -?†©ÿ?Ÿá^?á%Û@›1?ºÝ‹>ˆ’|>ÉtW?'áE?4'4?õ?V?ï‰ @e8@“?Á?Š?†4†?XB:?~ù?ÃnU?· ã?j‰M?\Dš?´fL?Ï ?Ô¨h?îBl?ÔÃ?4¢€?-Ä?Ëõ?ÚŒï?ŠÖç?— +Þ?‹?’?–®;?”î?IA>Á +?à0@'¸?ù€å?Œ­?,‚à?Y?]FS?†¬?ÿÎ?¹ ?`ì¸?‡«?ÂZ?³0Y?^‡¹?^»?…[?”·%?}Æ?aP@?0 ? +TÞ?!ˆ ?+Ñ’?GÌÙ?®]ß?ÁvB?ÒV?ßñW?_$â?IN>þ©½>âQ?€”Ä?•/S?Oqu?2Û?&ÿ?df?4o}>šô—>|>¨>…S=ÂC=-–>;"¿Ñ>/¾(>|É?“Κ?¯x-?2„¤>êØÈ?‰?¼À>ëû>‹¿r>ïÄË>ÿ“>]=ñÔü>ˆN„>å7ˆ?©?.Ç2>–€o>÷/?s*è>ùâ®lù>Ål’>©.->ŒÏß<PF?ó,®@Ô@éj?À“g?1j-?­µ{?«c³?T~à?DxÍ?Š›Ï?™ò±?$=w>Ñ+=¬2P;Úͦ?_è$?dyk?* ?*½>Þã2>¬9þ>Ûõ?¯T?!„Ž?eø·?gŽá?}9/?|"?83 ?7¢=>úØÑ>çJ?#­ž?7Yq?B‘>ÁF>ÍŒ’>çÿþ?$?.)?õ>è‡s>ðÄ?$U#?$2N>íÞÏ>é&_>ÊÍ>ºŠÅ>ð›H? É0?CyG?iÉ4?AËé?§>ªÒÚ=¿9>êb¤>÷î´?fÊÿ?iïÞ?mc?jÕ»?ll¬?s©?3?X˜?ö]?  m?—E»?‘¬4?"”=)GZ=Õª>ò¦>’”¯>"l>¿ì >Ïi?X—Ç?Yñ?lE?laË>Î >Þ+?‡w?¬a|?°4”?±O?‹o±?dG?iý?lû-?<és>í>í +>ë%™>çæï>ä˜þ>áB>Ýߣ>çÄ?VüY?S?ß?EÝ?{?rö6?ë>‰D=ÁÇ<þJ8?R•³?¢–~?Oä—>îA?XHè?ž¯#?…ÊF?B5!?à¿>A>L>‘¸Q?Áù?0Lr?i'í?{-æ?³U?°ÊR?{Ï?‹ç>¥•G>‘GL?”èP?¡ºÌ?}mÁ?o«?³gd?ÎHö?……—?/ÙÑ?Ž¤Ì?ÀÁ=?Ÿ2Q?onO?vÂ?}S?[ÿšš? ?|ôÞ?ß°?²‹Q?´&€?ÈÇì?Ξ9?Z/?7Ø•?fs?py:?¢×”?´m3?°—è?¨!’?EÇ?€öY?ñzÇ?ÒÆd?¯¬…?›!þ?þÌ?nÍ´>ñ%§?ATY?±²~?Å6w@Åf?ýÛH?-‘O?+´o?\ùÛ?[®Ã?tX?EÊ?§e#?¬ÇX?|±1?r_?åøG?ðÔ>¢®æ=†H¤@ ¹@'"ë?KZ2>wÑ~@iÖ@F®Q@·?áö:@Ìó@¨‘?ày?¶/?ÈÁÑ?ØÝ?Ç¿z?¶+ÿ?„M®>óØ>ùØ´? öÝ?D›?¶K?®–1@0¬?ñ"?—7ü?©D>?ç?Ø(›?s£>?€ ?¶Ï?®‡>þ„Ã?%i?t ü?q€À>öÖÎ>ô>Pv>§TG?k~1?tQw?›‰:?œc?G}7?>`(?”QF?£D?Åfˆ?ÏZ?«×b?œt*?(œ¦>ôÉL>*[Q?·g?u)©? ¶¦?·õš?Çç7?ÝØU?ïøJ?õz~?Œ‘>ÍP9?fÚ¼?±¨Ï?³rm?µ;?œÛ?vPB?A}´>þå?4q>?€˜?1îY>YÒì?'E¶?"·o?2P‚?XŽú?€¨H?±&?¡èU?;*²?MÜ?— +“?c?võâ?mŸ9?N?å?o¨ð?ÄË‚?Û­@c@þÑ?¯û¼?¸Ñˆ?ë°?é2 ?¹Ÿ@?³d ?w–g?†;ã?í?×=âá>0K”?<·Õ?V7£?ÌR±?Åwe?Ì?þ?ÑE@ Ú@ƒ?ºû?ºÐ’?Ú«ˆ?×[?„«º?Oø@¼a@;?’¯n?“À^?í£®?øª? <>ø›¨?5®?+{$?é\?g¶?éþì?ø§?ø +?òñv?ôa™?óÇ@Y @»Ë?¹þ?­ c?€9C?y ?‰Á ?”92?¿¨N?ÈÞ'@ ÷@ é?ßÃH?ÜL?Ÿ”c?•¨z?a®í?PÍ?ŸÜ ?ªj?KÄ¡?0Óí?ð’Ü@>O?ú/Œ?ù ?ï?õÍ‘?‹<¶?sÊr?~MH?‚Qã>¨Öù>™Ñ @Ni@P›?ªO×?©sf?ÍUu?Ñ=¼?œn¼?–ù?·pø?»KR@Ì @ØD?È—š?»Og?ïn?ýy`?lg.?:Qí?ºÞ{?Æv@$y @1 +6@dÚÃ@qøK@ *t?ùÊ»?÷Ñ@?õx¶?({ú>ùÉ«?ìšC@`?ÄØê?»Wm?¦Kï?¨Bò?ã‡?ïw?­8?»Mÿ? â³?ŸÂÉ?ûô@I%@*L@1ò*@??ùª¶?–ÜÄ?†}Ô?ñlÚ?þÂ[?6Ø1>ÿk=‘Bc=ÂP?u™p?‘B¤@  ý@‚©@b¹±@hŽ"@0$ì@&g‡?lÈ,?/M1?Åj?Øú”?¢ð“?‘Op@ö½@4gÍ@„$@´?áî”?ÕÁ!@d)@®Ö@F5:@T'?|O>ùÓ?Óáa?ì“R?„ö¬?Tí$@ P@"s@Läf@Lµ?@8@µø?´ç˜?ʆ?›&]?ê€?ñ‚@d°?èNp?åúí?€5o?1 ?n@? ®¸?È?ø*#@%C@˜‹@3Ä@B#m?þîÙ?ÄŒó?Š†š?X>c?öê‘@D'?ðµD?Ô Ì@(6@ü3@gg@J“?Ö»?¶™%?Úí?÷N{@í@§É?´Öé?¡®?EGü?z?†q¸?’‘L@”Ê@3sï@§@@ ,œ?¶h>ö›+?™ãU@ ;@$@Ã@I”¿@9ð¢@"b#@%3f@(=@'(È@6l@ +$ï?½‹?©Ëí?v«ƒ?9”¢=•áÒ?®)@ ¯È@ Yå@)Ëø@"–?ßO?ó©r@:Ny@7f@-’@$:@$v@8š?ÖÖ?Ý2?ëÍy?îÃz@M‡a@UHø?(ÈB?‰^@*Í€@7,Ö?òùÈ?“¤?ç%œ?¥í_?) ?—Ä ?ýp¸@´A@7@(•-?øÞ`?å:S?Å9Y?ß·u@,’¢@îf?z ˆ?Ššñ@¦@LŠ?‹þ©?’Ú›?´õ?´î?›Žµ?¨?µ ?´µ@œ @ /?¾§7?œ&?¿³H?Ãná?Z©>ðM»?‚ÊH?»^ä?³Le?¥ ?–>á?’óÁ?½ÀX?ï¨l@ q@;4Ý@/|h?·ô?ËY@?ý"@?‘l?îùŸ?îè?îÌä?î·ˆ@$ÑG@#Ys?³z ?›ž×?¾Ñ_?Óz*@HÊ@ +@õ?ËŽš?¥N?ÊŠo?è0e@{@1 ý@ 8´?¹ùJ?¦±Ü?m()?ƒõx?¥¯?¢8x?Í(?È!Ï?Åƈ?ÍÁ8?ŽíÐ?„Æ >ÿë…>ëÏ.?Ïñ;@Â?Ú¶¥?ΰ@Ký€@~—@ î?4ä?n²¦?^;? gM?•¥>?™ö>?½Ö@?·i?ß=‡?Ô @ l5@ +ìÌD?`O–?®ýÛ?¡ð?…Þ?–=é?Ï£þ?ÉH?®“y?®zï?ç»Ò?Ø›j?rS?aÒé@""|@K6@6‡q@&ß@¦M@4õ?Ljæ?&Óæ?]Y?Îã?Åkc?Ñúû?ßÓ@>òb>øC>Ë->¯É?³VO?ægä?Ãa.?´ _?´×ò?¡« ?!€?¬_Ì?¬M^?¯²ß?¸“}?z€‹?‚Â?âe?/f?®ƒ?Úyi?©¤‘?‘÷?¼C·?áŽ<@>è@C©y@6ÀA@™<@®š@GÎ@+5?* í?/ ?jH?s©„?• O?©ˆA? ;ÿ?—·8?Œ??™Åk?¨Ì§?XðÌ?0ù—?Ñ—&?Ö Ü?¶Z?«AŠ?9—­>ú?q–?©[/?¹ð*?Þ :?èvp@ÎF@c??‚4¡?oUe=þá=Å?yW?¨À?pâ?"²ï?"eƒ>óaQ?!6?žŠ?£P>âWv>î!]?¼bì?Ñl?š[½?k +?Ï9 @%|9@ ŽV?úq+?×ë>á¼k? N9?Ü©µ?Uú?Þ4n?Á±~>ÞÀ>Ýð\?Úz ?ÝÄ|?˜ï¦?‹iÜ?Ƭs?õ«?çh4?ÐH“?ÑTÌ?¡ú%?@Šn@Øe?E¾>8£?jüg?±î?©”“?¥_Ù?¿€¶@ Í~@›Œ?ؽ¯?ÇË?;?¥±D?„5©?"6 +?u `?×·¸?º»%?@‹ïo/?@ zµ@\{@@Z½?ÛÁë?hÀ;?…æ?”§ÚšÐ?àIX@#'f@Ÿ-?Ï?Á®U?£à·?£àA?€g^?tBõ?^jÐ?Zx´?dQ?´)Ž?Ú­Q?ïóí?¶—“?VO? Ö@"¸ @7ñ™?“0?þj?w?’V˜?„V?P½?[û@Ä@ʾ?M˜?ZõÇ?Öì,@2-?´p+?]bi?……?¤^?œnC>ãY>ìzú?QÔ*?[Ài???&?'ar?I@r?„ìù?W‘›=¤ƒ0=iÜ«?)è?Pñ>«]Æ>r1?Õa?:-P?}™?µ4?™Ï?Ô`?³O0?X+—?€Öj?¡™¨?”Õ¬>á‚…>ÇÃŽ?†g÷?£î?L½Û>ßÝd>ÖĽ>î‰>üEª>«”á>±úè;îl=µ‘0?ù?ƒ?Q¯?Šëv?š·ã?¸jY?º8©?¬=v?¨q ?¢–L?Xû>0¾k>ˆ1ñ>¯Q>„ì>ÄWô>ÞÓá>འ>Ço/?}m?Zù«=«…ó?‚@&?¦°?)ù>êð¡>(,>_ns?`½?{ 8?k"»?_iý>×÷ƒ=I*¸>¶‡¹?!B>å R>Q¼o? +J?Zºn?*¤>óýŠ?/ $?Eš>Œö¸> |¼>+gÃ?±Iy?ùö±>øÙä=KH> F«>GqŠ>€ø;‰º@ŒÍè@‰"@!Å!?Û?j´=²ŠÎ=Ë'>àÖö>áØ?`ñ?)Á¥?›?Óå>»ãÎ>†m>9¹>É„>]­]?„?„ƒ!?„ùñ?…o7?0Ëî?pæ??Ç +?^Æ™?Ræšß>ç??J6¿?KMà?Ä…>çb—?aå$?Šì?U° ? Š ?Wó?—íñ?~`(>è? !ï?Šd?Š)?LS÷?K.??c^ ?iYÛ>±#>'ªY?$(?iÇü?ˆo¢?›x£?m&¨>én§>àœ‚>ê`+>ψ‹>:>P˜?†Én?†l“>–®ß>¨?)S?-Ö?†;)?’uË?Dj•?’'>½…>Fƒ>™ù®>ëÃ^?.gV?’}ô?mÝ>R>2=>ì,Ù>ó=?R•Û?ULj?¤pÛ?¨ŒJ?n,V?`šX?Ÿ8Š?®r÷>ç(j:ù£? +ñ?lõ?ësÒ@/Z&?üÒ1?göq?f]?d¹¤?|×`?¦Ç?¥)î?ª`?¢g>í“a>î…®?jäê?m·Ž>Øhà>µ)«?!ÙE?-ŒÒ?˜šÇ?²•?Ó€> dÚ?†dr?Ø?‚%_>Á<>>µé>…WÝ> [>yÃæ>؈Ü?kŽk?pž|?˜ÿ?Œ@©>ŒÈ>Ÿ1±?°>ÿi‰?–W?¢íœ?]€ª?M¨?P +L?Rod?ŒÕ?›}ž?(>ª˜ñ?5¶ð?Ÿ3)?³2L?½ÈË?DÚ¾>Q±Ñ>ñ ?—2@·m@ÐY?ÕÇ?Óm?À(V?£¡þ>ñmi? +íŒ?q…¿?[Kw<“¯«=®`?ñ¸¿?ð+ÿ?ªÛ? ë¦?¢#h?¢ßw?Æ%Ý?ÑO?oîÊ?@åL?:È?W¸?³sô?ÈO?¬VA?¨Â?¶E?µðƒ?°lØ?±+Á?¤ß;?˜{'?ˆö1?cNµ?&€C>º`Á? æ=?Ž9?‘W?”– ?•C@?TÊ?|¯Ÿ?—%?”„O?s…©?‡½&?¾­Š?²‹Ë?xe?œ…@Sŧ@B“>óõz?þ?¡X?œï=?Þ µ?ÛÂC@ rå@á¶?oq?N‘ó?o!?t‡É?Îê»?Úõ”?ÙO1?רñ?:é,>åÉ>„¤E>J¥¿?a=ì?sI?«¨?€X#?MKÕ?Éo?ªÐ?麼?QI@>ê½? +Qå?b²Ú?oßÐ?u°§?ÛüÖ@ðÞ?µQ{>õàÊ?j«Ö?±c?§8Š?—Ω?Z«?‰‹?ŠÎw?‚°â?¥C`?ݳN?¬;à?D3Í?wö?½Í?áök@2ñ@µK?Ò×.?¿±1?‘™ë?…4w?EÃb?X­Ø?ˆŽ¦?‡Dî??“ä^?ƒK½?~S~?o3ñ?„P~?¸™ù?øZ?ô€?úÃ@"@ ù3?T-‚?4­V=É(Ë>mïú?œ~f?™ÿ ?L K?YÜ? ¦?±j@ÀF@ £?øD?ò&ó?WÝê?QÏ?Ñj?Ëß ?IèŠ?DÔ?Z +8?N§ ?C@X?;=Y?ð+n?ñUc?€üº?}+?x§·?zš¡?÷ï?øe?Àçý?Â%?™[K?žÓ£?ºõr?º±”?Ö8Ì?Òpç?’=¬?Œb‹? X>?Ÿ­6@(•=@+Kî?Áç?ºßÝ?‰è­?ŒUo?Î(I?ÎAJ?¡ë²?›L(?‘ûô?™ „@b²@ %?ûûC?ùi> $Ý9ŽKc@-a…@4Ö@?*Æî? *Ô?Ì^?ÌX@s×@yõ–@V?éå?_Œø?[iæ>Þ£å>Þ\ý?kξ?|¥Ä?ûbÀ@­€?Ù ¬?ÑUœ?‚9š?yªª?™I?Ÿï4?ÞAp?æÕ,?·å–?¶C?ƒÞŠ?{ŽÉ?z}?€6½?»É?ÁB@ @vd?ùç'?ù³ƒ?¿¥á?»DM?§ÚŠ?£ê‹?Û¸õ?ÝîÌ?€C?}aG@ß¾?þ@* D@0‚@¥Ó@"?í¼?í0?ÈÛÊ?Ã'¸@ ©ÿ@Â?ÄZx?»>@ïë@V?¼å…?²“Û?üû=@>ý?ê&Ž?øD@#Žt@&þ?œ”ß?…Ð@¯@ {Ý@JÆ@J‡«?ÁÍ?§È@-È@#õ@dE@ªŠ?‰›?kƒ?á{Ø?ôŸÒ?Œ8 ?võñ?è,J?øÙ¯?ƒ?xÉÏ?g‡Ü?xß@ ý@¨@ V%@þ¢@ƒË?ùïM?©\ã?–ÿ%?ûvW@Èi?ÏÍV?º;E?®Ür?®Š÷?‡a0?x)#?ÜJ+?øÙ?ÈÙó?½ó@‡Ä @¡‰@wÇ]@Y†?«#?ð??©C*?Öãÿ@"Ëî@1ˆ‹?êÈØ?¹ž @#6@E*Z@‡a@°à?ïb4?Þ> ?æ¼V?ܶ‘@Úü@7Ÿz@3ï?òÏ?íER?ç¼V@ +y0@ ¹G@ Ê ?ö—G?™üª>öƒ³?Ø/Ð@:Þg@#&@r-?öÌ?¸¨ ?Ötö?ö +È@ îx@*ß0@$?üfå@ÆK@6»”@A +X@[š@%!ð?]ƒó?¾+î@Dt@%?…´‡?°¶@'¦‚@5‡ë@mÈ¥@oé=@a­K@W^c?”œ®?¢Ä?·u?¶tƒ?zV?yÁU?°–?ªUg@JA @OLö>“m?@'÷@?ÌÝ? lê@ ‡@2Íx@ =P@׋?ü³°?æ°×?ãª?ßS?£Ê?@‘?b“4?™[*?­BÀ?·¾@?ë¸è@HP«@21•?Í2?ÄàÏ?îà¾?îÏT?î¶?îžÜ?ÜÖð?çù@®@ ¹Þ?ª˜±?‘¸?Å5ý?ÛÕ?¬eF? 6? žm?²4"?²0·?¹¾?è6[@ +ã?÷°ß?ÈéB?ÃTð?˪Ò?Ù²“@ö?÷6*?‡kŒ?ƒHB?Ðê ?ÝCž>'`Í<ÀÀ?š^?ëë?:e>Ζš@*SN@€„:@Š?ZU?}ù×?—u?Ð{¤@bŒ@3šC@ƒ_‹@ƒW×@‰]P@zż?jÃN?†lw?ÐVM?Χ˜?åQÉ?éþ>@7S@2ðB?ûJ?¯5(?¯qP?¬H.?Ô—Ö@°Ç@k›@ Ñ?è3­?o±?š'?˜ö°?\Š@T+Ð@SfT?×G;yË­?‹ª¢?ËøÄ?ò2D@{V@€ @¨%?Ø&?Š²0?¥Gå@ÃB?ó50>øæv>ëól?¨?Ÿ1ü>fW«>H¸?–»Ð?Æo¬?”Ô?f'É?¿C÷@ E&?ð ¸?¬R'?Þ°A@A½—@5–u@¯~@û¦?s.Ž?es?†O&?†QÉ?”Æ?ÖÁ?ˆvà?ª•P?ïE@.¢Ö@Ü#?¤+¡?¸gÎ?ç¥?Ý? +°$>¸‹è?— ?¯äb?†Ûõ?g4G?€V?ªA?ª¨{? M7? ±F?âžž?á•ø?·êû?²´?Û}ˆ?â¨@ò@ih?³b?„§?”íƒT?>~Ò?ÕK#?ÞúÓ@Ü ?ö?ž?¹‡ú?¨‚x?Ž™É?`^z?‡2¥?¹?¥l?RÀ?_m(?¥F3?šó0?2È? ¹ƒ?¡˜0?ÃyÁ?ºÊ?½CB@‹L@C6@.¼ê>Þê3>ÞÓ•?ˆ ?‚¤?ÍFû@—ª?µ~!?q$½?¡#k?Õ€+?Ó?žïå?“ÄG?Ý?á?Ý´d?„·š?]Œz?ºIT?Ø-h?‘¯ì>ï©?9}ñ?Ö##?Ï^!?·nX?Î V?}_?> 2?‘Ÿ?Âü ?½ÿƒ?¥NC?Ç5s@‘)@cc@ “’@ ‰ö?’Ž5?GË„?¾^.@ú@nS@8v@±5?“üü?Ž"Ü?Ù­2?Û`•?²Åb?‘ƒ©?r?^r‡?¨A?ïÐ?ØÇQ?ž´?€~W@½$@]Ö?Ê  ?¤þ?ñï”@¥{?ßñ?7Ξ?W|?°æ$?ÈÐþ?.¬>òæ#?|cì?«ì\?Ž¶‹?E˜Õ?’—þ?÷5S?ä|€?”Ù?š-È?xÍ?Zz.?aÿ:?qAÃ?šìŒ?ãW¶?æ )?4ñ=?A=?š ?¢í¬?sÿ?IC?Îe>ûǵ?r!m?Ρ)?Çe?ö¡@Ÿø?}-Ö?Zák?ÞÈd@á­?ÂÀD?K~h?_ i?¤r?ŸÄì?Z¾G?R’‰?“ŸÌ?“µP?pºÒ?[Þz?6×µ?\1?:Ô$?¥4*?—f?IúD?=[B?mÚC?Y¹©?@M/?&ß?Í"4@"õ¹?÷àÛ?~'æ?=h?4#Ð?.ñ”?³ +ž?À"N>ž'z=<ä?!¸Ë?m¸#?Yyì?7€C?¨>¶|ð>‚jk>cŸ=Ê>ÞgP>È?Œq"?‚v?†(?›?2¡ö>ã-†?™˜ÿ?ãON?˜œä?#k]>îÆ<>:]Ã?A5?0ÖK=‡=q$n?]j„?PQó>àÈò?o”>€öç>K£?3­?^d²>VB=ü>_>¤²>‰”Ê>\ÃÂ>&¸=Þšâ<å§ç;ýw€=¤N˜>@ ý>»Ë>òZ +>Òу>Ñg|>ìïÁ>ôÌó>’6½>}ív>žrÄ>}Å>‰>²ZÏ?­×9?ð ”>ÑêŽ=;¤x@…\j@m Õ?¸‹‰?~ÖW?(]>»>Çâ•?¶?hÝ<ó³Ú?ºó?Gв?Nü>©…*>ÀSš>㣊?­ÿ?uUZ?u$?‰¡„?‰M>Ôe >ŽÄ >‘’>“?¾>¦ÿ>šE»?;c?¿”?­ëÈ?Aà›?B ?…Lß?…2ò?NüÏ?D{ü?uwÓ?…?[÷ö??>Ç?TÆ€?h2´?>6ñ>èw?%$?†s ?Œ Å?®·½?®y:?E!?Bž)>¾ÂŽ>®ò?%g?D·?-ͯ?!ñá?]tg?Œ¿?]Q>êXU>þDÝ?ƒ¾?.YV? ª ?¡à?’›”?‘Î>$ÿ =Ôjã?¥T?ÆJU?Œ¨*?ksã?NÍê?B^U?>Æä®>ƒƒl= õ>ºÓ•?yÂ[?`#n? •õ>ùû> +´K>óu?.:>þå2=B”FÌN%>ì²Ñ?QE„?l†?l+I?lë|>ã'Ÿ>šb=ü¿=–Ü?¼?«W?›¯U?}ÿ?H³?€Œ×?}¦.?VFv?dÉk?Ò·B?Ï©j>ô¶Ã>íÆð?&Ú?Wf?¡—x?²uÜ?q>•bn??Ææ?„?|G>…#3?“8±?öΨ?Çà?’ß“?í;?—éÎ?—ú{? +É?xs>´\q>Þ°P?ž¿ý?™¯e>.> +EM?3_:?1±ü?æg?í0? ”{? 2Ê?H®Ë?`]2?bÙ?eUÖ?gÒ£?jX?–Î?³A?–é?o‹~?o—?o ¼?Kب? ÊU?Kwš?«Äs?Ãù¤@— ?ÿƒ"?­ý?_]? ?:g¼@b@!?]ò–?SG??À??ÕFë?{›m?>ãZ>÷ð>ðœ?‹^?˜?¾±ê?3)>$ç@>¡:G>ðîÛ?”©/@Nÿ?Øs?B?¤i¿?Õõs?©ÚV>تÒ?o”?qhJ?ZÄð>ð/2?7,F@«@h?jXb?mf#?êÉ7?é~Ö?…=‚?„?ú?þê²@Æ?•÷?[%?J8w?K3ÿ?¡Í?«v*?°7‹?µØ.?nå?5s?]–f?r¨S?œe:?¶¸?•×?rá\?7Ò<>òû?æÞ?5/ ?´à¼@$Õ"?ß}.>¬~>½Ô®?sfo?¦±@3Š@'C@A@@_÷?†½ê?¥´I@ §Å@½ë?¶ñ8?»¤÷?ô?ò^?æ›M?ì\?Ï“?ÊŒ?wP,?thu?M¤6?\Ѭ?¯qì?¸Iï?Uߥ??&(?\¼Y?Wÿ4?•d»?£³#?@ U?ªÇ?ÚšÕ@ ˆ?ÌÍ+?®3Å?€¤~?\@!>©<´"0?Î?u‘#?x’á?b?z²š?jBr?íÊ>^[?`ûÁ?¸v‰?àšÇ@O³@ßc@þ}?ä~ˆ?ÁY×?·Y?ÉT?¥4?¸U™?à¼*@üç@ô¹?Þ·?Ó?¹ +Ç?Ò‚d?üÜ@e„@%€n@+7I@-^¸@)ë?³rª?”õß>îK>õ[>÷Þ8?O?_¦?57i?›±?†Jº?ö>òñ>.z©?w¯"?Žsý?Þxo?Ê»v?†Êæ?Š`?Ðnj?ÖÞÚ?¾k?ÉŒ?øØ?òF??ÍH?؇×@^ä?ø ?øF²?õè?ä8Ÿ?äàè?ºNð?ºS6?ºZÃ?¶š+?x†?k!?½÷o?¼òG?ƒ³È?–s?@pp”@fªl@#Þÿ@²³?n¥,?ôü?ºª8?¹s•?—WÄ?ÜÉ@:¤2@:Î?ò!?ë?,NŽ?'~‚?½²Û?Å=?é”"?ê’<>EëÉ>òc>5âà> „°?ìs»?ô*Î?{â$?w…?ý[u@Qš?oÈô?g“²?‘Ÿv?–±Ç?ã½?ô¢‘@‹@Xé?¶a¶?­`>?S»ê?E4#?8ðt?6:G?w£À?z 8@"$@¯?‘Dï?ŒÑ.>ÅÃ>ʪÜ?™4ž?“ñùD@ÎÑ@ât@´@yÖx>t_:@Ož@o8?‚à‚?yE?º4…?Ä¥Y?¼?ºæ@6vO@:Ýê@…\ô@‰ÿ@d‚?ù½@Oç@'Ž@vï@“‹?IÓ?ú‚?k¨E?w¶5@që@…u?È—v?¦?âÕ?ßð¹@³D@N¶@yÛª@}n@ûA?ø¤@%ãµ@*GI?þ2ø?ìWo?ŠÈ+?xK.?ƒåh?A/?Š¹¾?…ú?ƒh´?€Ö­?àg†?÷Éî@DØŸ@Qƒç?¸HH?–’¬@A2å@_ÍR?—{v>÷¨C?åÙ‹@¬™@%¬K@7Ec@ÛŽ?ÔWR@&è@Bë@K&?É}Å?“ër?w&@BH@€Ë@*ÉÖ?÷,j?÷l?öÏý@ å(@‰À@¸ª@ç@8@Þ?¸þ?B~p?×ÿO@+;ç@“ ?¸¡?œÈ?k1?££s?èúÎ?Þ'?ÆÏ<@>Û@9h@!É?úŸ¡@ °8@%é@ ñ,?›¬ë?å&T@V˜@1™†?ƒäž?Ÿ¤]@ )‰@ ¸‹@ Rª@ @ö>@Ô£?ÿØH?öp‚?·`?¾@“”@Ø2?ï¾?ëÕò?ä0z?ñÓ?²ÖÈ? åÂ@H*@UIa@?”?ÿ`@`¤@syx@`æ@e1{@œ>@°†ë@.ð4?¸D©?Þ!Y?òé&@[9å@‡áŽ@N†@’¹?Ý|?kÑ@ç@bp_@)Q„?«Lþ?íA@86@È ?qáÐ?Áá1@IÒ¤@6´(?µ˜j?·ÉÍ?µ?Åæ$@'Mê@ rþ?³cã?¨Ûñ?˜ßI?•©Š?ÒQ°?ÚŒî@IÆÆ@a_€?Ýûï?˜&9@ +Ií@” @S +t@i¿Ì@¿æ?¿`‰?ôÏÇ@ †?Çtî?o™Ö?„R?‹£a?®¾æ@YY@-0t@†{@}^f@Jœ)@B]ä?îÆ?æO_?ˆ`?8??²æN?²Ã@ +ø]@šy?¬zB?š*Æ?­³â?²`#?Û½Þ?íªÔ?ÐÞ¾?µÇ?Ñb?èÄç@ Tø@+§Õ@&iÃ@et@à´?ïs»?ߊ?Ì"è?×Ä?±T÷?®Ðî?"®?×#>ëé>ßoõ@{@%‹j?±€j?l/?³…Í?Ý•Õ@(:@,mx?·B?ª5k?ǧØ?Ív@aå@æú?, ">4OÜ?qÁz?¯"í@@ +@D©¨@PÃ?õª?×ìð?¥©?¹Ge?ª4?›ö¥?­e_?ŸÚ­@e­±@t¤ +?¥¸?c…>?í0t@ìË?…gÁ?Ù#?Ç @hœ?å…?™Ò? ¥?¢+V?òU?c&?kŸõ?áïO?Ý"S?G™u?ñç?¯D\?Éùï? MÌ?†Ö-?®8(?Û™?Ì4a?¬@%?¢;?‘Ç|?­<—?ÛmG?éÍ?Ó€í?ÃRÖ?Ò¹?Íø±@0l€@YÝ@/G?eUÿ?’¡;?ÇÌp?мþ?½*:?¿CK@a»@Su?½\?žû?Ń“?Û˜3@½‘@ßÌ?½¨?€GÏ?™‰Ê?à ?½×ï">ú?ÛÑ'?Ö_ ?†Ð$?VvÏ?Ër?øIØ?¨29?Cö?À‹k@A–B@/®¥?UH¥?JC;?£½,?¦ìf?§ÙŸ?ž L?+Ý=ÅÛŸ>êm?l×›?†BÌ?×Ü?Òˆ­@ai@½G?¢g¥?ƒmw@{x@3q«@Ëô?ÜU7?²u8?*‰Ž?Wzø?õø˜?ß2Y?™ÿ}?”¥?Bž_>òé?ì„?b%?’kè?øíY@z?žq~?µq¸?åßð?禚?¹äç?£ëI?ƒo§?PAœ?¥B@ÙQ?ü$Ñ?ÛIn?ÛJã@ {w@ºp@ª@ÆÜ@ ±@ø(@jZ@%5[@D·?­?`?¤?¤ ö?¤e@‹$@:YÂ@šz?.â>?"æÅ?èé? +ç¤?…&À?qV?úU»@ã0?Ï0?6`ž?X«P?Ìð*?êÊ?…ó+?s—å?Æ/?Õ/?ãDÛ?ä¼V?º”Ñ?ˆÌT?mÃ>>ÚR>Úa?ZcÎí{?n?ÿEt?ô³ç?Z§T?ZÁe?[-?ZÏ*?ll?i?Ô7Ø?ôšÝ?ØJ¤?»?Ÿo•>âdû>úÊv?#ÄÍ???~˜?ƒÀ¿?„d?€uH?ƒÞí?¥&—?™Iü? ½?j/?» E?¼û©?’M?Ÿ?„®?`9?JË6?ý?1kõ?Ž…?†·’?^fc?^˜?VQ?^â?!.?þò? Ê?H…?,|[?9´5?Lh?`¸™?nk?¢J?•Ul?£É?ˆ? N~>â—Q?Í >ÿ‹š?7?n@à? =þTÄ=Ù@ü=¡P±>«(>Ðó…>óJU>á¶?º=?vš>‘Ô>i¼±?Ç?$`>ð»X>ê.…=Éžc=´©8>,2®>c{î>>©V>ÅW˜>/Žx>Ʊð?¨í>’dÁ=€‰;Fþ9=0§H<þ!>ÿ ñ?3—ï?ô«>¥3¾>üë{>ÿâ‚=±&}<Š =>˜›=z5ß>›ÿ3@…òï@_wÁ?µ½x?>–)?¥ûÜ>J µ?OU[?Fx9ÁÂL>—êÅ>³ÎÕ>Bû~=Êe>„‘¹>ãŠÖ>³þL=åJM>->¨/>§ P???E4?*?#+:>­³>F>ö7?f%?}ƒß?›Ý?öu?zŽ?¦Ø?kŠG?m3‡?IlB?=S ?× >çå?!o?Cu?D7%?=9¤?<ô?<¦G?A?raQ?n@>é0q>éOÞ>ü>³=?:æa?Wëa>Ø^>Ô~>àhÎ?ç³?V2?¸×?1 ¿?jˆA?z +ø?ë?’S[?¸Æ»?·ÐÛ>늧>ë#r? +SÀ? +1F?H¥x?Xå£>ÉÎÕ>Er==Оí=d å>ps¦>ÓöÓ?EE¸?¢«J?¦ü?ª +É?·„?ãXÌ?Þ¿q?°hÎ?®ž?l†\?l’£?lê?k‘?Ù ï?è¬É?ç/¹?岓?“¨?X:¦?¶ì>ÑΟ>úwµ?“‹>ÔÁØ>#OÞ>1=I>?\ >ö,¾?¤_]?—Âc?TR5?]q?JÄ)?GŒ°>î!ó>íÓ¸?Bâ?P'í?FAô?=gà?c³>î›>”lL>c7,?ÎâI@$âí?þ­??¸sÇ?©¸U?û?’bf?œF?’±…?n›-?n¥’?n«ë?i5×?6â2?:U?¥Ü?¦o?YèúÇz>ÚÆ>ì'>ï8¼>ïBk>ïM¸>ïU¦>ð…o?>1¡?o{¥?°—O?å}5?™‡þ>ï¡Õ?: ? žÔ?PÈ?žSW?‹ ¨>ïçˆ>æ/ç>§‡Ä>Á|¦?=h?“.~>ð(H>ð4“>ð=4>ðM¾?Ç.?Ñû²>Øú{>W~P?½ÇÄ?ä¸u?Ó ;?×vf?€[Ì?dã?F ?Vj"?_nº?pïð?¨¨ò?Ý5þ?˜Td>ñ·>ÈÒ«>C¼/>ÌÜ?s’Z?/è4:)€<¢&ˆ=ÚÍ>—U¬?q˜¢?[¿>Œ%>¯Bm?{?¡7@-L@-FY?“z¿?Œz€?RI}?EY?!t?¬m?}»õ?lH±?©Û?¯_?;üØ? O?BAÃ?e~ü?Y1š?L=~?Hª€?9¿t?sþ?œr‹?¥GÞ?¬›_?šë/?€?y"z?sEd?-";Lº¤>˜£?{e?€©?s–9?H›>œ¸Û?7?¶Ú´?©d?P°Ì?c ?‹Ê ?ò*@!õQ@1'?+D?5΀?¦Ñ?‘ ?p‘?t}?gd4?]‘?¯›Æ?·†E?<åN?,›o?Á8˜?מÀ?Éœþ?ÂüÕ?‘A^?‚Z3? %w>‹A>Ò—k>øé^?“ U?·hÂ?Ž=‘?u†M>Ìîj=ô@>žPÃ>É-‹?H ¬?‰“Å?S׎?5Ü?‘?¼.Ö?ÅÛ[?Ã’5?˜¡?nw3?Xï(?;ûd?YA$?vj¹?€Ç?ŒÎ…?»ß$?ðO@±N@:$Þ@r?—R@ !ð@~Ól@?Ѧ?võº?(ea;ç¬`?‹”?òÕ½?¹¤t>÷;R?iA?wQ?qè„?^v–?Sî‹?6Ñ??¿#?w”ž?‰Áé?ºï +?²Ô«?xo…?ƒGK?º^?¹¼i?±J?À{X@5g•@50q@ 9«@ «œ?ùM?—”Á@Êm?ó%è?5«Ì?Y‚3@Z@ Ih@(s@!5?’Cq?’ S?—Jn?ŽË?ºÍä?¸!½?†fs?†¶l?µÞ?±®µ? Ó? +Z?º^¤?¸“´?¿yS?Á,V?²_ ?­Õu?yR +?ˆB“@0G@'Z?ÏäN?×Îà@" ¡@åû?ÜJ?×Õô?™ÎX?™Ž?®”1?¬€I@œf@\Ö?»¢?´wZ=¥Î<@ßâ@(Ã?ýaK?ù?ºèF?ÁZr@87¢@4ª?ù…'?õ”Û?ˆF°?‹ß«?›pÔ?•îß?î«?”¬?»T?º­ž?ž1ž?ŸAj?Ï­×?¾ $>–Þ<>¸9m?ã‡?à ÷@W@Û'=´ØZ>…/@"¬@ ?½W=?·¥¥ùf'&=Óp%?¸Õ›?ÊT/?¶¬?¶ío?¹Äí?ºiL?Ä{ ?Ϩµ@×G@šÏ@ ç@ˆÁ?²'l?£S@i¿@ÿG@ +Í@ +Û‰?ý­›?÷Lì?Ñr®?Ò«T?¿ +æ?½å‘?™6/?„l1@„Bí@³@]¹@ j?ä + +?¾¦¥?éø@Üã@à@/@ [ð@IÈ?¹FÉ?vQ=?®½Œ?ÔÑ|?ÑõL?Ïc?᫃?õùŒ?Þ°±?Àw?îz¦@6ç@0ùÆ@V`@ ø¡?ÚF@sÉ@Œ¨«@Rqv?·ô§?Ã6?è,@b@Ò@ Ÿ0@ X-@œ—?ôÇR?ë0}?·é@?ņf@"(µ@\N?ÇvV?¹›Á?¹D?Â@?ô#\?ô?æ®?ãô?¡¢ ?§?“@N·@U1?±¥ç?“jk@[¾Ñ@sbc?àü?©‹Ï?Âç’?Ã<Ö?àÙÞ?ò'Ù?¡y?‚lì?Ê^ò@‘@2‚–@KpÌ@§¸?æy@:O0@€NV@L~ó@ 9@ØV@&|?ÏÿÏ?qÈî?†4‹?¬Î÷?´£ž?µ˜?µ?µn?À˜î@N,@ òò@ S @ X?ñèÔ?ê×?ÌÓ¼?ÈŒô?Óóø?ÎZ@F@+l†@†óÇ@•çe@£š?Ó²?ä?âHl?óa€@>Ù?Îw‘?—‹¤?±Z?Öîý?Òá_?Äg€@­ú@y´Ÿ@] ±?ê˜ù?äë?¶/X?²Ú×?n‚o?uã?Ü D?Ø-5?ìì¡?îÎ?ÉÑ6?¹Gí?±Ø?²L"?ä‡ +?ô(ð@Où@1Óî?Àè¡?m?«\Ü@6Œ@ ç@ Ê@¹ª?îž?ËÊq>ì‡K?‡=?½ÌZ?º|Ë?¾h?³*Œ?® ?¦T?òëV@R?å Ð?Õª +?ç®F?éðu?ýÔp@ço?üý@ Q­@~Ù?·9Ú?°‰?¯øÏ?ÇC@†@—Ó?ê@ü?ê)ø?ÎSc?É¥°?í'®@—ß?¡ŒÔ?{;Ø? î{?¯©§?k$2??!K?~ê?’‡.?…¦Ô?93¦?¥A^@DX7@17?à‘‘?ñ:ÿ?Ÿ,?¨?­Ê?ª…¹?X+?XI‡?r)\?Y†?¥û‰?îâå?ÖW?—K½?ŠtÌ?x1f?\Y¦>êCê>ýlg?‚6?‹‚¦?›I-?—J7?ÕO?æ-b?êOÕ?ßî½?Ñ“d?Ã3±?³?¬12?ª¢{?£/u?•…ý?<’5?OÓñ?ÿ‡R@öƒ@%Ò–@$¥»@µ&@Ñç?¼„Ì?dOñ?ž¶@?×ÙH?×üG?ãìØ?ãÂ8?êðƒ?ôÔ? N_?;Ö?›Ÿ>å[)?‹tD?¹JÜ?Äœý?¿¡X?²ã?©ÿ¥?šÚ?<è?0ëv?¡D³?¦P?mâ‡?r–/?ÿV_@ _ñ@å©@.á÷@&í0@ ßÁ?ùµI?·?­ù@ á@ >ö@ @Ë?ôò?ÒÂ|?õéw@ 4@Û½@“ð?éÑ;?f̈?Qýo>^Õ>Å_ç?¼|°?Èa€?³›Ö?¿k?‘Ç?Ë"?š‹@&&@*’3@/¢@!¿?F-?P%?ŠžB?¡">?oI?bI?Ã\k@AÎ@CŽO@`ôà@P¨@Æ@ N9?Ì‘à?·©ÿ?Çï?Ö×?«ª?dž?Ä?‹„F?[)?±4­?͇?Úr?wî˜?u•°?e–Ó?µK@—­?ìr?ܳ?ÖÄQ?!ùc?gÚ?ñ S@ W?«??\Ó?h?ä?–M?éˆ?úSÖ?Š¦®?¡ÿC?¦øY?¤TÈ?†¤N?~ÃÐ?¥l +?ÙaÙ?øˆ @&G¸@,)?­¾?£ÿ×?¤­Ù?£ó†?¹=?¯³?¢“?hï?;˜Ž?¡ÝÓ?Ý©@/ö@"ë²@"ëç@#µq@ˆŸ?¯¸…?–·w?Aîn?/ n?Ñ$"?×1›@Šº@ÑU?Ô¿‚?£/1?‹ø(?5wè?`K¡?eÈB?(#?žLx? ¸Z?0BS? Î?™Rñ?¼™?­sø?Ú{W?Íôá?Z‘,?Z›í?ç?À?:ü>ÚÒ­?ºà@&‘Ž@)+1@ )P@8°?šš?ûk?@­?+È7?v ?’[Ó?©Äø?Ê‹:?¦ßV>÷žH?.¨!?«éR?˜çm?kÐ`?>•? Ü)>ÀŽ÷?”ø?ØÄN?¤šÕ??º?€q?ù!v?â d?Œ‡Â?w#?ò>äõ?6þŽ?Bü¿?6,°?)S ?>Cv?NeÞ?Až,?kv¦?a¶?nú?|dE?”ùÜ?ŽÓ’?~I(?UqÃ?J¥n?\1"? %¸>ü~>ß&Ð>–b>ÿ¼O?B»À>øýo>08„>™úú?¬1?™€­>çRœ>èê{?4“Â?'X¹?@óÛ?QK?Ùœ>êC>Ù»Á>½<ë?‚+ ?‡ô? ö­>¡5[=¡S>™H8>àµK?Zâ¬?)L?>f!'>æÑÜ?7 p?ú¼>óìJ>/ýÅ?ã0?GÓÀ?™ä?±Ì?¶ë@?¹Ç>4 =Ž +þ?'&>Á?=x‡@¢á@@‡Ð@%–?‘8h>M™Æ=CL.>?·˜>á/ÿ>Ŧ,=†É™=(š9‰©>Î.k?L”?It? BM?Ư?$)T?”„=Ô(Î=ïb#>ä¸Ò>äûC>"—ê=ë£F>…¿£>© +?»¹?'У?'P†?&å ?8¨à?fÌk?T@>‘Q> €?jôÐ?x”l>çX>¥ùJ?\å?5ÃÞ?hœ^?º~?†Åí?|]>?8J¿=“€>é-á>írØ??±ù?¿T?̼?x†?Mÿ•?;>”?4–2?d›?ë*?_a…?:\Ó?z +U?¼m? tŸ?j¼~?kL0?z ? Q?.Q?¤g)?<Œ˜>ÿãr>qÝö=xp5=R:•=+Bb>W›Y>ì#>¢ðT;nvp>V"*?lc‚?lsÄ?l ?qx?¯„f?®Ô÷?\û?z?qË ?ç}?!ïˆ?"n?„nw?ŸêE? ÃÞ=ªZ>uiw>»îc>Qû>lã™?6Sd?ƒ`?â3?‰1?n?%·4?B»ó?>´Á>íÙ–>íæë?e»í?m÷P?²¢>î °=ØÈ?RÇÎ?…c?pƒ?<½?d‘m?…„?X3†?¨›?`úb?›ÄÆ?“À?‡Rº?ˆ”¢?——O?—k»?‚ÑA?xX? ›Õ? 6î?n‚À?nþ#>Áÿ>.Ó>ë¿Ã>÷ys>ï;z>ï@‰>ïJ°>ïUQ?G–¿?oj?<^?"·¹?”s>?%¨?W‘?Ã{>nú¼>\Bé> •¼>¦‰¾?Gr?DÊ…?B(d?)¬Ž>M §>Àü–?ú"ƒ?î1×?Ò?Ôº£®?€º?/ø?ºÛ?ã5(?Ÿ+?pÚÒ?e®.?aV™?9#·? ?ÆK½@/ä@ä?´êr?ž”D?iÿˆ?”Ëw?Þ0ü?².í?\Æ?'>ÆU¤>Æm>ñµ>ò¥5?JÇ?d[Î?qî%?qõF?qü¼?r H?™é´?™ê£?Eû?4žC?Ã} ?ß?‚97?<W>غ=>¢ø?>¶¨>­ÍH?cv*?™ý;?e8?$ݪ?m’?wÖ?¡ºO?¶MÏ?š¦§?u›ê?sW?rtÓ?Ôhx@0‹@d ?s|$?iÎñ?LNß?¢d4@#ü@JH?Róó?VŒ?séÙ?“Z+@Ÿ@ ðl?‚5D?ŠÝ@ »@.ø?–?’›3?†?‰¥›?•?zÖ>ðÕ>Á?eíÿ?tËn?É,}?Ù*?°Z0?¬z@NJ@l±X?›?u8@¸ç@4"«?‹ñ×?Ð>èo<>Ï_›?~Ø?ž%Á?KÈö?õÍ?a?xJ??ý>¼ão?Kâ?Ž÷Æ?GÛ>ö!™?\eŠ?`a?UÜ?vQN?8¨>öm ?œY¼@))?ôNý?ÅðZ?cç=– 3?:±Ð?Êh-?¥(?r•?væ?v¤§@{@p}U@Kfx@ •r?Ý°™?w8“?5Xn>dÅž>'`>ó ?\?£é,?¸æ?é0«?»õF?6/?[ù?˜å|?— h?•2k?a?Z¼?–È?Æ’?‹è^?Š 6?…n~?x£?eä?ç¦?ω?mœš?‘ùH?øBâ?àø?xXì?¤Ž%@/¾B@#ïQ?í“ç?×A?r}ø?©ø™@=ˆÇ@%ûÓ?Vˆ?vh]?˼?¾cÙ>øÃ?-áõ?øχ?ýÜe@¸@,?’ª’?¨H¡@¡¯@žü?–‰¢? V?ºÇ ?³æY?y?´‹@±ô@ +âU=Tõª=Ë{É>[)>Òþá@nb@ Pí?Üo?Ðöó?­DM?»s?ºöæ?µbv? Kê?µËH?ùUs?í?„T?¿ü?â3ˆ?ÝnÚ?´L?šS@’}?ëv>þº…?‹R?æA.?ò}@ª¢@Çp>ýJ²?^c?É(?Îwv?ÄÅ?Í‹@ +Ý@ €N@Mˆ¡@<#r?ylÒ?o?‹V?BçÁ?ÚÆÍ?ßry@· @ª?7X`?Cë@œu@6??Á0?Âei?"õé?Fi/@Já-@KeI?÷ü?ðx¶?pm~?‡½x@L‘Á@GÈ#@=Ä9@/ÅÕ?Á¸?›«…?¦\z?œ¬?>Èêú?I @G}@Ê=?Öœi?Ô"Ù?áÒ¼?ßEC?T Ü?g O@¡@ ð?…a·?‡‚ü@”@¼?øœ.?ó$‰?‹g?•èc?ß`T?Ö· >úHÀ>úWo@ #o@ñM@ß@šÛ@2[-@+â?C.ø?1/c@ ”@d4?Ѹ3?ʘ{? k>øÞ@1›@ýÇ?‡´ ?uV‘?´º?¹ßs@)½@.úL@J±Õ@LP|?‘O)?e8?—?’‹?çñ“?÷h^?ö§ö?ü²?äQj?àr?á>ŽêÆ>Ø`>Çô'?!×?²@7œ@p@=w@7I?Ýví?¸úÉ?À b?ÅÕ0?´œs?²Õ?á ?öS´?”HC?6GŽ?¸ð?ö?Û'Ï?̨|?Ü—?æç×?ïëu?õÇR?Ùý&?»ÀZ?¸òy?º‡?[ä=F™È?™Hã@7kD@?Œj?¤Â ?Å{?ÌB,?ñSC?ú?ôÓf?úµ@”@±3@DèÄ@@öw@C\»@OëÄ@q ö@gë@¶¾@ MZ?Œ)û?m\@'®r@#ú\?ðIÎ?æÖ·@R‰û@U$Ž@¢—@ +§Ö@9@H/?øÐ}?Åñ{@ 5%@§w?£-˜?t~@ç@)j@Ãé@ +˜H@n@g@ø9@p¨@7$@[{&@_%ä@U¥@3Õž@ë?õVö?ž˜>?OSÿ=E¡ì>÷ ?ɱ?ïÖ@=X™@/ûŽ@ ϯ@Ëö?æð?îß@: @ Ù?ÆÓ?Ìž@?e@±Ø?Äc@?´.£@"@6°˜?»ï?€kð?͘r?ïÁ¤@8J@/?=@ò3?Ñ3˜?æ(`?ö5œ?×%.?Âê?í"@Uó?üUï?s3?‘M®?é80?ÉÅm>NÊM>«?Ç3?Êð?¯«°?¶á˜?É[‰?ÙâT?»LQ?²@ù@Ÿ@o°@.A?ïë­?§i,?Zþâ?Ú‚]@ Ç_?ê+6?…Øj?‘»%?—(?’ú?câÜ?oõò?×Ýà?èÅ@,é“@0{“?³O…?°ßF?»‹(?Àº\@ J1@)®}?ð]Ø?×,ñ@žt@ Í?ĵŸ>¿Žž?‡øY@Òù@¿.@ ¶L@9@)´@z”?Å‘ˆ?Ê|S?ê(?éë8?Y¨þ?1¿?•8?¨Ñ§?Ô3ë?èÖù?Þàn?ÏQ?³õ?>„?|{³?)¼?¨hË@LTÐ@;•>èms>í” ?÷ã>õM`>ô? S?Ôƒ§?åEð?Ô½R?ÏWÅ?ª ?Œ$1?™.î?¹u“?´ç1?›U?´ º?ãÈå?Ó†Z?¢ãQ?ž"˜?ω¿?Î0Ì?àþÈ?æf@¸³@u@*@ðD@°%?¬"=?kB? ب?L{?¥˜A?•Ìº?vÆD?ŽÍ»@&&Û@Ai·@xq@ Ó?˜lŽ>øÞ?kô?º?É‹X?ãÙ\?â÷/?Öèv?ÌÛg@¬@ +•°?‘…,?a°J?˜A¨?ª;?a2-?#R¸?®!T@ $é?ïÃß?¹¡ ?¯×ä?m_Ø?cÜ@é@lY@©6@¿i?ìß2?ÄÕÅ?ØÒÙ?õ5þ@Pç@Ók@˜L?dg_?s8?Ķ?×ny?ÖË?ÜÇÕ@Ã@ )3?ØÝm?Ž`M?¼¯"@ ƒ@d@@ +U?ó¢â?þtÂ?ý23?S ?~¿?g¥O?Ÿ>±?¥ÝÝ?¨÷%?ÀŠa?þÿ|@­7?ÀûÛ?©)ß??W2‰?‘¼T?¬Ó$?Ö§ì@ ˆL@è?É’?ê+?~ê?-#?õ'¸?úiH?À^`?¥Þ?g >ð†)?6»ß?¥ ½? ¨?%¦Ø?<?´[¤?ºxV?Î;&?Ü;8?Å?·wæ?¾ŽÆ?¹¨?¼n?„ÀŠ?}æ–?éf@ÐV?§Ð“?[Š\?de?x}M?‰dø?¤v¢?¢>ŽL=±kJ?•®?¥%*?K=>ÿ™Ü?p$a?ÅÞk?Éå,?ûzo@ªÎ?§ç¦?£òb?̇?Öi@Ž@û„p?5Þ@äÒ@! Ò?æÚ¼î?\1û?³„?Çn?Ø¥o?ÙÌ?¤b9?¤nª?‘b&?‰IY?®%?©±5?Zjß>îÔ¼?1¶?—C`?‹­Ò?•e×?¢7?¦%>Ä¢¢=ÿ¯ð<çkÂ?©9?td?w„¥?]¡8?Ž'@jÐ@ ‘?¼Ù>?Ðqy?ÝÍÐ?ÐÀ)?¦Zá?•ÁÓ?YHZ?-l?…SY?Çê¾?Ö •?à9i?ÅÞ¢?†Y?Ñ{? ûÐ?5¤V?ŽÌ…?®K?JÙ>é:¿?2ÎS?P8;>ëY÷>9G?\;?§A?ž"?Hyh?axI?k‹ù?tš’?Gœú?>7G?­<í?Ÿüƒ?7CÈ? ½>ýYq>ê`É?G·?L×f?pÆœ?’$î?Bøô?+º>>lr?¡G?`‹Ò?{£?¢D?7D>ñ±>‚Ú@=±1>ŸW>ô ?9"-?@Šµ>ØK_>ˆØO>† 4>§ˆô?0yR?a»D?!×?.Ö=]“P=—o°>Þ º>¬â~>Þ–@Bê@¶á?û ?Y â>˜Cc>à|ß>Öï>Ê;>Ðh>á˜Ý>×µÞ=x=Õ=ƒâ?5ž®?P’"?Oï¼?O[/?{ªÈ?•Oú?€Ø}?  ?ÏÎ>ä¬ç>ä[>²ƒ»>±´ò=6<>_:«>¤>W)=àV%>«…z?J>þ?:f>ç?>à©ý=èV”=軯>b3¤>h¼J?hÄŠ?‘$+?Hô?ã:>¶ý=·.>>^:¦>˜NO?²½?tY?O?O’?P$ò?Pºé?ñ•? Þy>J8i=µÇ7?]A?¥ + ?0¨ó>þ6=¥½W>/Rª?C+?›^?[ôn?Zîü?PÅó?T_?v˜Ø?u§s>ò‚­>Û\M?XÜL?q™o?i³&?hLé?h19?iº/?0ž>ì ?WOý?±B?Â.?éè ?Á÷£>öù?  S?t´­?lYÐ=1ù‡=Iä[>ýÀa?&@@ 7@Ð?¦I0?ŸM?‹×‡?‹‘‡?iîê?PLƒ>Å£?#ïÑ?·Sz?¯äF?²hô?¡ Ê?BC?8º?&+!?$AZ>íÊo>îZj?-Ï??0)>ƒ¦q>uF=a>»…K>î+4>î5Ë>îA§?LÍ?qö*>ÊáC?BÈý?ÎZ›?¸ai?—E3?-ô?k?Cô8?³ +å?©¹i?|¥X?w ß?eËÁ?~³†@J›¶@N%ã?ôz×?ïô@cm@ñÈ?D–ß>ï;§?å—D@ m@@Üí@…?£ûÑ?W¿2?c8Ð?oh>ôŸg>j> åñ?Ư?oÕ ?ƒá?šß(?†hY?ò´?*à¹?òî?ðÇ4?}®?ƒÒ°?/Ò?ŽÐç?qà?Œ4>eHÂ>«™>l-Ä>d,¥?‰iÉ?©W?•*?‰{ö?;Ì?"g?„¨ ?¯ ½?aì8>ñ÷¼?5\ã?så?s¯´?q0%?½£Ý@\?ùȇ?¡Dá?ï>ñ|R?:’Ñ?ÁÏ?²†Ž?xµP?„s?Å·§?¸®t?+$Ö?1sï?•|?–ܹ?—tO?”¸á?tê(?r9ã?¹û¸?Çs'?n&U?MÑz>’oe=òt?õ>?)@â?–|Ã?¶[?ñ{]@ ‹?âoÆ?¸œ%?¶2±?¶I?ÔÏ~?ïøþé?eÂ?uý?µq¶?Åd\?„r÷?eV¬?™Ô»?¡ m?Œx¹?‰³X?”—?“H?Ž_ª?Ô“?EY?ÃB?„Ô?ž¿D?c/3?4Ê(?¨`ç?ܺÙ?±öÿ?æ?šÆ-?˜ËÔ?€f½?Mcø?³¢ü@Ç‚?ªf“?(9ø?ÑL¾@/I?Ùwa>ø?ù>÷+¤>üÉ?Ò?CR‰?”9ç?ÊÖa?¬Œh?w1?;&`>¶¤>WAß?_v?¹‚ ?½Ï¡?Ítî?·å ?w`Õ?–à­?Ôå4?ÊÀ?¹¾í?¹Èh?¹Ñ?´_Ê?©ær?§¨r?¡†0?—.??g"Š?…ñp?µcã?ˆ¹;Õõ*>öxö?ø*‰?ÌJ??Ê?¢”?TŠ;?^…?HT²?Aɤ>øj?;–g?ânª?ÒÀ?GÞ?„ç +@öC?ÕÚ¬>ø ?Gð?VÝ?–+£?Ž='?‡WÂ? Ò? †ð??Ô‰?*&Œ=¤f>š-?º°Ì?²Wò?ƒ[?œK +@Ÿr@ —?®Ü/?–ï+>ÙÉ>î ?]-?‹{C?ù#õ?ÜÅg>ù&œ?.|ó?àÙŽ?½w†>-¾Y? |? ›&?bòÄ?wDù?Ð`Ó?ÑE?Ýv©?õ@æ@X¦[@VÂÃ@-±@ø(?wÓ?›Ü?}Uz?…Í?¶Éü?ˈ@1r¢@&Ôg?î®×?ÔZ4?¬3?iàÈ@#=†@%j)@ ¼q?ù@à?N™?Unë?½]?ÍRÚ@ p¶@|—?Îð¿?ÐÁa?Ç w?¶\¸=Ä­h>„ƒ¥?ÂÁ”?²Ÿ? ÷?ÎJ?yq_?”’Á@Ñõ@\@$.`@«u?ŒˆÑ?¡2'?Ä43?²ëd?Ufò?iΦ?ÿ?ŽÑ?øô"?øîP?øé•?ðÕ=?¥@ó?§ú6?‘›“?šõ!@M½ @H6­?Èño?Ñ¿@;¹3@2Œ’?{`Ì?…‡É?´þ +?ÄØò@}ãu@n¹Ô?Z+a?[—¶?ÎP?×ÉS@:ÿ@0¾Ô@ˆŠ@3?xýK?x»d@ áR@'ã^?ù¼m?øþ?KEp?5÷Ã@¸ë@ì?«Œ>øµï?t'J?dö@A•@CÞ@ƒ&@i?ÎÿŒ?½k!?: +?,ÛU?§„‰?·I¹?Óå ?ÔÒ?“k?Ž?å?ÍÉ#@þJ@ ø¥?5?7L ?«ÄÕ?݈|?ɽÜ?³\ˆ?³$#?¸Vè?ÏƉ@A@65@T’?Õ§?Å:?’gF@ xû@% c@O@Aù¸@+Gª@#˜¤@R›?ê‡ ?̧?“z§?ëò?Ü'?1÷|?õ?Åþ4?Ï¥c@ ­-@cÁ?6í~=à +ø?ð!t@3Í@‡@ °•?Æ°?6S?Š?T?Ö+¬?ÌYg?Ügt?ÌÞ?l'ž?lúï?m†¹?}‰?°ß ?°É ?=cT??6W?Ð¥^?ú¶˜?Ú’±?½UÇ?°Âº?¤*¤?à@/Å?Ö°Ì?k›©?‘Eí?¾}2?¾¾L?´cô?¶ö‡?Vp”?tI&@¼7?ÿ +|?ã‹`?Ôàæ?”?xÉŠ?*Š?Ø?\X?Šå??µÎù?Ôã°?¼9(?’*×?¢?è*?Êyw>èRÿ?6@I@PÑ?s¢b?V­Ê@nö@Ç5@ºÑ@D©?ï& ?Ù1§?± ?q¸1?0ƒ= G>J,Ÿ?th?‚‚À?æÍ?„“½?À†Ú?ÇkI@è@ü?è¸h?¹¼Ü?UØA>î¦À?VñS?¬ ?Á…n?噹?ÉîD?¢K‘?¨1ý>=3Ü>3è?O?„Ht?n?fºÕ?±õ_?Ìx ?¶‘$?ªý?²„¿?Æ‚*?ÜØ;@áf@1„?ÐÜd?ÚΨ@;,³@?.³@ýÕ@·Æ?KÍ>…Ã?ÝÉã?¯ ?©v@Tæ¼@Wð„@ ÃK?õÛ?æ¹?7„E?yðø?™Ÿ„?±‡?á z?àóÑ?Û[È?н¶?û±4?ó‘D?Ïã?Ã8H?õÝ@ ?©|Ü><Ø?—;M@‰+¯@tl¼?£_ˆ?¸ßx?Õô§?á?€½ß??M +?iM”?s ý?Ã3r@"Ñx@ +fB?Šâ4?–;?ØH,?ã=Æ?ÀÏH?Á•¡?Ñ?ÚÈP?öN@ +žÔ?ë°¢?]¦™?n Ì?á å?¿^m?û¤Ó@ ¾?Ï\.?¥Ê?ºŠ?Äìí?èa»@,ƒ8@Ÿ|?†Í„??õÜÐ@g?ìíT?Ü4©?Â?¥ :?Áš@Am?íêê?¸|-?²¬“?³}o?©R{?ÆÈN?Ï:+?ÃŽ•?·ß½?²;é?½Ô•?´%>>Û1>ÛÇ?è×@½g?X¶=Ævè?BM€?Úµå?Ö†£?Ç÷ ?ÍÚF?ž­é?¢¤J?Í>V?Úi@ NE@/Ò‚@(B?„¸?|4J?p*?d" ?ÿÁÌ@˜@±@DK?òëw?À¥ê?Äá?®g?Áè?×—Â?Ùb? õ?Š‹?|´×?dLt?gý?£ˆú?ª/Ð?Ïa?ÙP=¡oê=›‚Ö?E"•?ƒ#?›ó?À.€?ºÅ?yyF?Œ¤Ø@ ËE@ýT?vUs?Z‘?©,š?¦6]?atC?§?–N?\½Þ?ox“?\\µ?|vÝ?‹ºª?a«>Üíß?i¯b?œ·Á?–ix?ã?œYÕ?Ïh;?»I>ü¨¡>äb…?}?¯e³?^ëÝ?DÃ?:’??=å€?qDÖ?ð_?©ÖÉ?¸¦?áEØ?Ç"Î?/+ð?¥]?ƒ¢>¼Ò{?ƒf6?¨–ƒ? ñ¼>W!>‘ +Ç>rtÊ>¹úƒ?£E>ÀöJ>="b?fªŸ?];×?ì_?,^,?±é?²VT?¯­`?¯*Ë?ã Â?Ú›?Ño?Ålô?,¢Ý>ìg=ïÞ=jnÀ>3Ó‚>‘¼w>ÉÌd>©½>Tê>¹¿o>ÖMù>`<¿Fà>Ô’Þ?>¢9,>{_=„¸ =hhS<Œ +F¹Äß>™Z…?v 8@G½@Óu?Í >éÁ>±7#>àZí>PKý<ýô‰>Xé\?ôp?³“>úEl>üÒk? =Ò?!‹>íöÔ>ãHÕ>ù³ +?çü?@ªø?Ž ?tßt>䡉>Þ2 +>-Z8>173>…>Šp?Xâz?ˆì ?'íñ>µÂœ>µs½>µ7>åè?%¤¶?ôD>çap>èc?M»?N˜¿>Õæ>µ÷¡?/˜x?OœÔ>É3ó=Ão>ص[?Qk?Hµ?:Õå?9dº?!qf?  6?¿"?ÌÒ?{Ç?}И?Ïi>ê#ž?0ø?G¦’?_81?j‡§? í›>,IÁ>áê?^0W??ö>ë0>Åà=å˜>4ŸZ?©s3?©È =Ì5=z+Ã?š¿?®IÈ?&s>ëÜ^>G“:c;±<>ò¾`?pAZ?ö?´¢¶?zÄ]=2>¾¥?±?ì0?MñW?Eð_>ìÍ=>ìÝx?YÒD?j€t>›Aù>Séã?ã?2D9? ªB?é&?$¼1?#¹%?¡Ú?ínŽ?§oc?"Ûz?[m}?šH?}6Á>í®‘?!=Û?šn?†…>n#<>Ž4@?&A ? t<GP?´?$-&>üÍÂ>î8Â?‘²­?·t ?wO>È8?'"¬?…c?>íQ>î‰?'¹?I%k?wÛÇ?¤äµ?§@°?©ž?” ¦>åb >ê-–>î^´>îó³>ò¹4? Óü@¬Yw@¬q–?œÌg?bUO?‰G®?’qD?^4?Ssé>É8H>`‰’?m)Ÿ?¢ÿÚ?µg?t ?€8¶?ˆ?|K?o¿h?Ž÷Â?³á?«M[?–Š?zË>ïýJ?$¶v?ž“C?‹0?dä³?yR?´25?´nR?\/é?QÃC?kÜ?pu?‚l?Žú?Ö?ê=?½“È?±×?@-I>ók)?Š”ç?´,?ä?qê?qi?qƒ?œˆ?Æåü?H>Ý[?(S¡?—`?¢¸Æ?Ç"¸?­cû?MÞ?[É_?„À-?ŠàZ?}ê?l¸:?5|‘??àv?š]œ?šñV?BÄÊ?E1›?q®¿?r6 ?% ?š¤?JÊB?G©o?¥Wo?µå§?Ðb£?Ðë²?F ~>ò»÷?¶²ò?òD?|žâ>ùzÔ?KÀN?Ÿ?šC?§Äk?…‚Ä?cJ ?G”?]_?€åÓ?Ǹº?Ó6Ø?ß&í?ä3?éZÄ?àr?Ø´h?æCü@ &+?ï ?€…°?ˆpê?‘ð€?Œ?t3ì?„í-?Ñîö?Õ[?ØÊ/?×ä?¢‹3?ª'™@Yl@E1?†OG?€!W?µË”?·‘4?¶a?´½ê?ƒZî?€ÿæ?«?­ù?á4?çâÒ?³?§){?‘VB?"Û?AÆ?*œ ?©bÉ?¾×|?ån\?õËõ?ž¦Ø?uèÙ?Èmö?>cE?vjd?4­>ö»­>öÉ>öа? ½O?&˜?ü&?ªìà?nòx>÷Ñ>Ô‘> p°?l¦¡?Ýâµ?³ç?wV+?”º0?¹‘M?ÑÚ±?÷‚§?à?¹­U?Á,x?Ë›?§ès?[b?E©H?œ? ÚÛ? “?( Z?r[M?O„>ø|?‰ˆÈ@Ž@ãì@)@­ ?ØFD?™©Ç=çýª?·½?Á?"?îõ)@5ªú@#u? 5n?Ìx@*Sä@¼ƒ?®è¾?yCç>SN?M½²?c‰µ?+ç?x7Ù>GCJ>rwÁ>øËÙ?7Ÿ£?¿#ò?×!6@³k@‡@”‚@¹/@Ú +@³;?el?a^²?]T ?l)? \?¼¦@Ï0?ûT\?ù4?ãS£?€Dg?„Š*?®”?ž@F?‹D?—;ž?¾@Ÿ?зŠ@ŠK@®r?ÜÌ‹?ØL®?×HÓ?Ô‹C?ð¢Ä@_@:»N@,Kˆ?õf@øN@:ò/@ {?G±?ƒÖ°?äÃ?ÍÅP?¦±o?ÐЮ@:ïà@0oÕ?üB?ìm=?µ ?Ú@Ùù@^?¶Ò(?¨Yå?tp”?K€ô>Ï ‹?)È„?í ?êA?Á-!?»#?¹«H?¯?•j?‹y’?N[>?‰ ®?ü! ?Ýmu?pµ`?‚·{?ŠÈp?†ç?”x?©s[?øàÉ?üäE@”@fM?£¦?½ÆW@B0@:@ÿ@D0@¤6@‘@Äò@Xxe@Né?óÍÔ?ÝQý? +?"a?X®c?Œ/e?Ö“u?Ú§–@O@Yx@fx@\ñg?uÈé?së?®ö­?§3©?xà?z<˜?º8x?ÄÏÝ?Ø·é?ᢠ@s@žH?»Ö?¸‹?¶¦Ù?´S?”„,?œ#^@QG@²“?¥÷ê?¦·?Œá£?„ºG?šÔ?™ÍS?Õ ÷?Þ@n?ﶓ?ÚB€?ד¤?Õ –?Ý€ª?å.…?–ä–?‚B\?zì:?xUº?«RO?³P/?š¬¬?œyø?¤°?¬ñ“@ ?@Ú ?÷Àó?ïúõ?µt€?—D?ÏYG?å£@ L¶@¢Ç@ „?Ùñê?¢…C?€Kâ?zÉË?uô…?z|´?‚üž@°@Qœ°@8Rz@!?Ýà??I§z?â h@EuJ@tË?¡»–?Ï#Û@)?üÉß?òý5@=ü@Bœ0@2 ?ð½?È >úG>ýÖJ?–#?w=x@j”@W @j+@_œ£?ý¶Ð?öÒò@ °@Kr?ä•?ÝÖæ@¤X@&Ï?ûÞ3?ò÷æ@í‰@Å/?É ?²¡?–]f?˜Ìk?ݲr?òeÏ@Íz@(_Ã?Äæ?qðÇ@˜[@S¶&@/™?àæÍ?õ\µ@Èi?ñ?»ïd?ÍÅ?õj»?ç«?½Y?Ã÷ ?ÒÞN?ѳ?´³æ?®¡å?•CM?•xB?ƒà]? ‰_@‹r@´Œ@51U@4)8?¿û5?´®@ +s³@ +Ïø@]Ø@®¸@Z H@oxÙ@'‡V@þÌ@3f0@L¦í@D(?Ý=0?®“{?nèÌ?x3>?z›k?oŒî?‚ø?“§‰?žyÏ?¾z @}’@ ¦R?Þ±?Ùc@?âQ@=â?¦ú?•n•@Œó@&Ð0@+=Ø@1>í?´ôj?Uú@N4@8‹Ð@ïà?Ç*¿?á ÿ?ìæÍ?õ;@àH@3[?¾É%?®û?w?†=?êœ]?ßoF?|˜U?‚X2?Žþ@?‡4?°àÅ?±J‹@?2@(q^@ <@Óm?ÿµ?æ ¨?éÔí?çÔN?õk@½ ?ùÈ?Ŭx?¿½?¹D‚?¯Þ @&C@«@ 2Æ@%€?ïô?æ‹@!ä@"šl?¹î×?hÿþ?².?èÎ?‘‘?˜MÓ?Æ;G@ ;?áRr?ŒÔ?0¨•@-Ù@,ê>MëÝ>2™©?ù¾@¼¢@ƒ@ÖÇ@s±?ú…&@•.@M\@-?± g?OO?f¢ ?z~D?Çɲ?¾NI?¬¢Ž?¬œ›@§@-Ch@?hû@Op?ò”?dËì?¤‘?Þ £?Ó¯²?ÍÉÏ?Ðî±?¯Å¹?£I?FÔ?2rñ?×å?ä|5@¤F@) ~@D7?äO?ïfá?óË ?Á2Ó?k³?«j@2às@+æã?}ƒ?iYh> ?ˆ>£Nt?|nŠ?¡;»?‘’Ú?kª5?­ä@X“@Ó€?ì\M?ìn@ q@ +É7@/S>@6¦?àX?ÀIà?vøC? &·?D«o?‰a?ž¹?àù¯?Ê;É?y«?2 +Ê?Ÿk¸?°Æ¢?ªÏ?°Z[?Ó Ç?ð:;?Õõ¾?§ó$?›{o?˜æ?´¬É?ƒˆ?BL?Vª¯?oØw?~E?V¸J?¦bÛ?Þë@ïR@' ó@*Rò@,@‹n?Šù¶?n?‚õ?t…h?•n?¦qp? ÿ?åÚ?É«–?]“.?y T@ù»@$O)?–>Ø?mÇ{?_ê?^?Õ?nƒ°?„£Ì?Å€Ø@+M@*Éé?¥a¿?¥TÄ?ÍÀã?Ø !?Ü,?Ü Ã?Ö¤Ÿ?Ì‚Ù?ãví@æ@r“?ºÍq?ÆO»?ùÙP@{\?©2#?€O˜?ä.@ m×@Ç?‚_Ò?˜…‰?VSQ?¦(?Àoe?Þ¹Ï?§Ó?jA?¯ÒŽ@ŒÊ?þQû?Ò'?ÀA7?j¢ú?[D?ÁÍd?ÚVÃ?Ð<>?ÑŸk?¸m^?x¶?Œ”Ô?«DD?¥e? ¤s?%vØ@†g@-}?ëÃ?ZT?UV ?03x?Þw?£ßv?§!¥@‚@ ?ëDE?½ë”?¿Wo?¿éx?¦â?Uݹ?^é@;{@%¥¤?ΰ6?§?­?”©ð?sû?Š7?Õà?Úb*?ãì?ð ½?)¯f?Ò}?½¼?ün?Ì“8?—P ?€Xú>åÄ3?o?•M?Ž¾Ú?½#?ÔB7?…g?K€j?W^J?^¨ý?Y©ú?\ÈR?‡có?Š‹¡?„?ß?é?¼>ÚÕu>ÜÝ?8[ ?v¢|?ž +Í?Ãìï?¾ñŽ?Ñšb?âd9?^5µ?]Àš?hTd?v{•?¡i>ß?;?ôÖ?;ºá?h²?™Jž?‡ÑŸ?o‚?n‡?0Å´ˆã>l '>äŠÔ?q?JÎ?sv½O?Ó#6?´|˜>çƒÐ>ýC?Ž˜?gpc?¥Œâ?­ï‚>D'>ß ?ˆr'?£\4?Pnz?#?˜>eÇ>Ÿþ> +-ö=¤ã¢<ÓÐÄ?+5]?Y$¹?%>õòÁ=ࣳ>ÇûÄ>øËŸ>æXë>ÊJ=>ûõ>åX”?šm‹@U£ô@ †Î?ñ¯Þ>Ý0>ÇÜ?>ÛwA>Ùrì>×i?Rm?¢B»?”ÐQ?aêH?f¼Û?™ù+?˜àn? +Ø>ã2ð?6c`?U$ø>òœÄ=ýXí>Rƒ>Â…š>çç +?Rï&?RŽµ?Žôª?)³>È`¨>pa…>9'">$³=îHÞ=¨‡>ü\s?—ýè?…§? —?f>ç¥j>çÌ%<¬mÇ>½ö¬>è^ƒ>Ê¢­>¿½?|?6Ÿ>åf>f@n? ~†?¥×=?¦%ß?¦z?§ª??¯]z?¯pœ?qŒ?@ž=º{¯?4?^¹??ô¤?¥Ê*?kê?Š¶?˜x>ø—?‘T?fOœ?Të¸>üŸ?\ÿ?ê¹Þ?ê˜Ü=(¿O>Ð>ë×a?O‹Ç?eÇ=?#>àØ(?97]?l:˜?:^æ? 1?ÜE>ÐãŠ>ÖÁ?>쌵>óž‡? +v? l>ìÇí>ìÔè>ìàû>ìÝê<™?=Û”>¶w?jOƒ?ŒJŒ?>L>?Ì?²7’?íd­?Éž;?¤ÒM?——í¢v?ýÓ?o´ ?Uƒ\>\ +>Çè?Ëé'?Ãnª>»¸G>²BU?Iž?°©?E,??þ0?Ž?D?Cw?J‚?xpc?À€??á2>îtå>¨™ª>+É>§yU? +·??pQ>± š;ve:§¨@=§wr>îé5?¾a@ L@®?rÏõ?oó?Ôã? Ò÷?O|_?Sôª>qO? W?Bá—?¶”?Ú ?“ij?Wìº?B¹º?-5Ý?”Ü?Ò^š?Ñ÷?ϾŸ?¤Ÿv?*NN?gK ?Ò"¸?®þ>°÷>¡Í?£*y?ªt½?â;?ßñ¢?pl•?pä?¡§u?¦à?£”?§ þ?±?pži?p¦õ?p³Ò?Эý?î‡ó?êƒ?æ|R?}m†?Ì(?…H>?´ÏY?az>¸Á5?,K+?‰½[?‹Dˆ?ŒÏ‡?Ž + ?†Å…?š ?Å!?º¢?µ:V?°I?¦l?ƒ:Ù??Øz?<òË>ññ>ýL±?r Í?q š?RÆc?Uöw@¨y@|?£Ì?žXJ@11~@F=ˆ?‚ð¯>þSã?Vó¥?röë?Î`~?ê0R?èw•?æ¶^?‚ù?ác>¡C=É£~?N?S{?ríG?ŒÑ¥?—÷Ë?¦@½@;Sƒ@ C?ó¡{?Ò*?ž.’?ž±Í?ˆ*?¦4?ø’¡?ÔOw?tÛ?tH?t+¢?t7i?tFá?eÉÄ? {žP>Ž…2?D&ô?V­?‰áÖ?wŽ>Ô+u>²¨=>`#þ>N¾z?—¸È?µ€Z?ÑÈ?Ù" ?l7?u§?¬¶E?Çñ_?±­?¦‡¥?ŸÊn?—Í÷?ùç@mz?ÁzÉ?‰ž|?Ëw€?ò«•?ƒ>>ø}G?F‰È?v….?›„Æ?®rÚ@€”@"Ë]@ÂÔ?Ñ)­?Á??¹(í?p‚É>öø=?N4Ý?Š.`?™Dƒ?²ç?ªHb?šu?µ—²?ÔŸ,?×lË?ßï=?Ð6V?¹˜«?¼²…?Ç’3?}?,È“?`jÏ?•MÏ?Š^?€˜Ç?OCl>ÿJç>÷Ü>÷ã»?¯@U@7@-ê@W0@Z?”ýÔ?iÝ[>¶â÷?C@·?ÎW'@ +qÙ@RBâ@-è:?º?n?ÌÂS?ùùË?ýéÏ@êÝ?ÔÝ#?3™>?GÙp?•['?°½?ê?ÇËT?c`œ?H¥[>ø­@?oÈÛ@¿?ØÙ#?yé?`œp?p”?‘Õ_@…”@ Ð?á¿»?¶„²?¶Ç???ü€@ \9@:º‚@%É•?ÖœÅ?Ð(†?¼{À?ßQz@¦Þ@qK?T•n?7–*>ùš?< +©?³Pj?ÑU_@'Õ$@5€b@T­%@)§¾>ù#:?9lV?¾õª?˜þù>3Ät>¿…H?_qÍ?­¦?Î¥H?¶Õ?ˆ-¢?–µ4?¤s?¯ªj?é»?ó É?ùÏg?ýi ?ù!R?í—?Í +^?Û‡@@M@'V@=?òÃ^>Œï>Ƹ;?€Ñ_?ÁÉf@Y†U@)ý=Œ:!>Ì\o?³Jû?£Ç6?`ùç?sžo?®_?Á?y?â™*?Ú€¼?ß"…?ÒG?Ãù?©Uí?øÇ5@P½@uã@©ï?ø²@å@Eá5@4zò?©¬$? ø×?'äò?Gà*?ø±ó@4$@p%ß@P†µ?fr®?@Èf>]E=?Ìáh?ß`·@&ê“@.0 @Y"B@M~?Ö®f?ÑÌŸ?Ⱦù?ÈŸÕ?ŽžŒ?†A8>Ùþž>Ç‚·?Q¸S?Bìÿ?¶H©?¿ Š@“%@ù4?€©§?„°?¯Ö?«RW?tÀÛ?…5£?yÛ?w/”?9û?)+W?™è?O?†Ôš?‹2Ý@l[“@{< @q!@_?›\?‰UÉ?é´h?ö©Ç@ïS@i?ɺð?¸Öd?Úæ†?Ü|Œ?üÚ?ü|í@)@×J@:«U@<(?Ͼã?žÝ?Æu‚?àwo@;¡@ +Œ‹@èK@*7k?òEý?¸6?¹"?·…-@uÛ@Gu1@C}?µîÏ?å°ê@]ã?Õ¾|? ?ðOè@'»ú?ý”›?ŠWó?¥D?â¼?±\í?™#?qqÌ?γ?Át¸?·Y?×ÌÌ@TÁ@ß@±–@ –/?Å¿ü@ @«ŠK@™Ý¨?íVé?ïR?°Æ?ª=J?Ü‘ÿ?éGW>²€ï>‡{~?ùNg?ü@e!.@ri¼@Úmù@ß=@{ÌS@LÕ0@=ôˆ@7a‡@2d¥@-e?”PÞ>ñþ¾@§@>\@ +në?ÄŸ?š¬í?qŒ?Ù=˜@,3@›|@4@%„ã@>u–@07³@ÿU@jË?´›r?¨C?p¤F?uzü?} +Ü?†÷‚@%I¶@!#ì@ .†@)J?¼÷ž?³ó™>“Þ">šj?Úù©?þŒK@i@@’ü@ ò‘@aÒ@aZ@*/?õ<ü?£?š4–?‡Å?°×ø?î¡?™Zô=Õä?2P;@Ú¦@±$@ †@¶0?èèÀ?òbe@œÙ@+Ä?Îx?ÓÚ?¥Mˆ?§“J?„`ì?r<’?ô#V@"?Ȭ?¶To?Ïx?ÔÌý?ÜIJ?õ˜¸?ásª?±?­?¶{¢?ÊŽ«?̸N?°û±?¹Å~?ëÕ¬?íõ@ +!?ù®å@M ¸@C^†?à@×?ÏÊ{@åá@y@ 5é@rí?í.n?´„[?“·ž?yd²?¯Ž?ö@ĵ@òs?ñ]W?’j?®\ò?ûñ@Í ?ÒÅê?Úbj?~‰m?ic?þ²”@cz?³,C?hçì?‹þ*?¦x>?Ÿœ÷?‚¿Â?©î@¿ç@ð ?§ÝI?¦pV?m#Q?†ª|?EU?0§2?ãqé?þZÊ@”ð@½÷?â)g?½îV?Yù=>/ëº?ä¸@IG7@#¡?†Ä? ƒ€?—(¼? ±þ?¬´Ì?¬ŠÍ@"8@»º?Ó:«?²¥R?QœN>èä_?9ób?†»“?˜Ýú?«Ña?±t?É ?Éî?™bÙ?ž5Ç?Ȭ©?Ú Û@‡å@l7@ Úq@ÉA?Û¸@?·éV?¦©?Ph?ˆ­@ @)<±?ãx@Î/?üÁ?†N?ÇH×?ÌÌ?½N§?°$×?Ùµ?\éS?²ó‡?é.t@D8@'qü@^Â?¥Ný?¥@¢?«)¢?¦~¢?8‰ ?&ˆ?d‘ ?“Cf?É4@¾‡@ +0?[œ?[ŽW?³…>ïƒ?‚–Q?—îð?°ù?æ^?àá°?c>æ?3_9@}@ 5»@8ô°@4¶S@ ³Z?냫?Ýó?è÷?ÿª»@ ¤@w ?Ûâ_?Õm°@WY@\L?í3¾?¿ï9?“²ý? ·N?%?_?Í ê?Ùm*?ŸNu?Ž¹)?ó½<@jR?æ{1?”Þß?Ÿúç?ÙÝ÷?ÙÛ£?Ø­?ÒÒÊ?×ßÃ?ð(?¢-»?{F?¹k?ú°k?Þƒý>ݳ>ê©f?Ôî ?õ?>ä6?n½?\¨Ù?8P™?;³È?c5>Ï º?þ?No›?R‘?¤7??¤A?‡h?}r¼?",>íhË>TÀ–=”õ¬?.k›?Ídè?«&?fzv?€ ø?^¤ð?\„>HÇ<Û >ªC“?Š?DÊ?ŽÖ%?!ã?$P\?0??`B6?^a0?^”“?^Æ? ¢ò>ß9>± ->¦2i>|%b<ÎÖ>‡L?PW‘?JJ?Qã?(æ®>/Õ=ôõC?ˆ•£?¥ƒ¶?~-Ó?c82?qß«?YŒ?w‹>ä“? +î"?e?"%á?b‡ ?EÖƒ?D…5?K9?µ"ç?€?Ý Ô?øš‚?[ýÄ?jªì>ãý>>·K©?C¨?+ ?bÍ0?l¤r>†œ=^~:¦:Ö>l|>¼¿³>ÙNû>ñ$7>/¢>,§>,.Õ>H2>lDP>3â'>c™j>æ<Ê–8<‰Â>÷ +K>ðØT>=CÜ>S]¥?j¬@ @Ê?ÙR?²Mx>J†;Z›M;' v<1Ö¥>…ü—>áEç? ?\iP?6ûe<æ€=xê>ËóÍ>Ïê{>αá>͇c?3ÌO?d?Ã=ÎøB>Èý>¹o{=uH:={LË?‘š»?œß?yÁ¤?fLÔ?*ô?—Ó>÷ˆ>æÿÃ?ê?U´r?He?m”?±±> ž„> +¤>>¶)Š>ÆcÎ>›þ>„6–?vI>?®ª¥?¡Å×?˜R?‘¥Ó?ƒB?xl ?\/½?nÊn?©2š?ª1?¯‡Š?¯š2>9w=’™¸>Âôn>ê‡T>ô°±>öê@?„2Á?´Žô?“ã?eÕå?<Žá>ë5?V{3?ë[Ì?×"?k‚G?c¬¢>èÒµ>ç~Ì?©ÙÀ?«û ?x³Ð?kùÄ? ¨>ì(>úã?§í?:;ª?]|>ë =µ >qCø>ìŽ>쟾>ì«8? MŸ?Q±)?5K~=òo>M(>©øw>§-?q•·?pš?E¶L?J”˜?G{P??Ä-?kÀc?…”?‡Ïd?Ššl?‚¾’?mŒÏ?6N1>íž>À–>Z">Y´â>ˆ›²? +š²?¿I;?·–§?mòC?aŽ>w’>åoO>æí?Ó?{j}?¤ •?©™å?­¦ˆ?²t?³©?›jí?neÇ?×?eiÐ@^™A@BÙ²?ºI±?¨@Ž>ò•>@ +¤>ï–>ð–s?΀j?ÏÛ>$?(==?E\n?Î Ï?ïl»?0F>QÈ ?_ù“?˜õ?’ª“?š“@?ºþá?Ö ?­Ë?oÐ?Sâ ? w²?=e>©çÎ>ëÎ?R‹±?`‰Å?1~?‘µj?p<Ø?kB?Œœ? +m=° ÿ=G ‘?cêò?p‹g?p’¢?p¡ï?z|Ð?1y?®2v?»ô?†?\L[?7Å?-Šh?*Š>ñP?j ?¡¤G?H T>² †?Œ=p?û ?ñ -?íÁ?ÝÖŸ?µ(§?­Î?£Ö?ŠºC>–Fë>œ{N>¢¹ú>Èåj?P–Ý?PZq?'ª?'+@]3¼@_²ƒ=þ§°=6Ò-?Jt?e±?ª“?µàg@ @Õ?d• ?@?Ì?òÍ¿?”ãN?\?GÄà?8[Å?¥äJ?ÏDq?Ì +#?ÈÐ^?Å” ?ÂV/?ÛÏå@\¢?ó¤?ÕÆ(?‡ìË>‰É!?0¿8?®KO?×M^@>ö?âA?2 +?T•?‡*Ì?ˆžü?œ9?†tõ?tIP?`Íý?0›?7 þ?ô?à?åY¶?t•ê?jšô;>ý –?Dgø?=†R?U8×?Rgä?si@?u)’>­!>”m> ë>†'È?b0"?uxf?âÈK?íBW? $?‘ÝŸ?@í$?M?Œ„?šâ?¾´c?ШE?æ‚Ô?í.Y?麈?ëŠG?Çò?¸¬ð?¸¯?¸]9?K†¤?NW?ÿÒ™@. ’@6^@„?Âëì?˜<Æ?’6 ?}Ì?ª ÷?µ’æ?´•]?¹7á?–¡a?w +y?D?¹W–?èðÚ@9¡?úó7?äÕ?Âk ?§¯´?”Ÿj?lŒ?† Æ?¤ë ?ÞóÌ@Ö¹?øÉ?¿oú?»=ó?¹ÍÙ?Ò†'?ï;ÿ?ª¾¨?>› ?¿0ý@ö?é8Ò?xI?šàK?Á˜6?í@1@\@(¨?ý‰v?s04?c²›?IøŽ?iµK?‰:p?¬-T?ãÌ°?°¤¼?œ™?Q¹3? ß6?ˆ©ß?|Ý?)ç[?6gÇ?ÙE»@v @NéÇ?ö?¶£ø>ø·’?Ü +@{;?ñ þ?L¢Á?šŠÁ?ñX*?åÝ?å¢ø@UÁ@Lÿ€@#¢í?š @?¯¤?ÑÙ?Êð +?ÕÙo?Ìê"?¦‹?“˜?<·¾?§]ø@.áÝ@d?y á?±Sz@'-?ê¿Ë>ù±?FYµ?ºÌ’?µå¼?¤šÉ?ÏeM@¥½?õwC?\B?~'?’P ?šž`?ºÏ?³PÁ?å#?’E£?€È§?žQ?àjË?Æl?y á?y F?y ?›=¨?휲?òRH?øÿ[?çûd?º¼Ö?º¹º?¼F³?¯–?f"×?‚Ôê?º¬«?·­Ê?¬ã[?ž“½?xÚž?ÿ?™Öo?¹28?øÉ5?ð“Ê?Ú±Æ?Ö)?Åçé?êS}@%Å@í?è– ?êë÷?í@7?ÍËÍ?#ÌÝ?•–<@TØÎ@>âÕ?»z7?Á)??Øü?ä¬H?âËe?Ùº?¹Ó@?¹§?ãº?áö`?ìÔ@,Ø@I1h@9H´?Âpç?Ä5?§t?ŸæÊ?˜FX?§,–?ì.@?@@‘@0”?{d?­?¼ÙW?Å·?ê 8?á³Þ?¹’ý?¾Ú?ñ+Š?ã>›?£?O?ŸÑ†?NLL?AëË?ÒÌÒ?˸?äü?ÑùË@?Àõ@At?E”?%V·?Þ~o?ìu$?ô +?ö]z?÷«j?úT…?ÀN¥?¸Çè@ ·@„?æ4=?áCH?æÄu?ìCõ@Ab@X’Ï?Á1Í?uß:?{&š?k¢´?€?ž?¹'ð?¿ŠŒ?Ëý?½@@z,@oÖ{@:¿Õ@!32?ê^?©ÿÞ?Ó»S?ôño@ !Q@TÕ@#Ôg@6©°@—ð@)Ú?·(™?Àÿ?n#?©P?óÊ4@<β@£ ?·Ö9?¦TW?‡¬?“?¤Æõ?ÈGµ@gí@(Jl@ ˜@–w@BV@—´?óDu?äñœ>óƒ?Tà?¶@%?¶Óå@D~/@='ž?¿—*?½åâ?ñ’!@[Š?Ðq²?в@ ˆë@Ï©@²@" ]?Þ2?¥ U@á`@ ÔD@ {Ò?þW–?À©G?Š¥@88U@–§î@L?¿ï—?ã|@ x@­8?îp_@r©@ E??ó¬7?“Eë? ÑÁ?ðj_@¹5@KÃÒ@Cìí?§B>úŽ@2š¿@/ÍÍ?ß&ì?È‚@rs@ %ë?ÕÎU?¾žô?ø â@® ?×ñ??µÙ ?–»²?„ÒJ?­XË?Üæï?é,©??Ò‘_?žt?ÒÕû@+ƒi@âã?“µ?¤¶Y?²iš?¬ï!?m¹O?q}ú?¿Æ?¬"Q?ÿó>íLõ@5±i@IÝ?ÃQ ?•Çñ?Àa«?È%¼?Å°Ž?˲?¯F”?#ˆ?¿š–?ô·Â?¶Àš?*æ·?I¦U?°U?»/?ë¼é?ßúâ?_Š•?€8@Ñ@$ã?ÜbD?ÉK›?mï?7æ®@ O‘@<øp@!U@Â’?É”6?jbf?}P ?’{?ÅÅ @Cö?ìhª>Uzd>“Ž?6i?¢$ ?£‡·?«?ýá>îuM?Ê~ò?òûJ?öbÅ?ê¹¼?ñ ?î…?Ø é?ÒÙ¿?¹¶?€Êó?{´à?vÀÓ?výì3@%˜@Aþš?ÃW.?ÎU?ß–ð?áií?ïÏp?ò/L?øè?Š}l?Ãrh@'T<@»™?¨w?¨ñ?œ„î?§²?Ž°?‚ë?”z>?,†?’‹?§×?¥`ì?œ`?£¿Ü@y@Z"?Ö]X?áÖy?O­¿>ú?àþ_@%ÅJ?é˜>?^Œ¥?x;‚?™ŽO?Šâ?¿DP?ÕA+@z¡@ +³@ +¢A@¡N@av@&,@ º@4)?åΗ?“)?˜’²?îr5@óÙ?v¦?\Ó®?ÚV¥@Ë:@&¼É@@ó @1F?‡=-?’•U?ÓÜö?ÛȪ?ˆâ?G3L?´¿n?òUO?Ï™¹?È Ó?ÞÛ¢?Å?lX/@ñù@Ì)?ù>\?òzý?¼œ?ˆæD?´ßÜ@^¤@Ì>ê¦ç>ß[Ê?ûîf@ ê@ Ïå@˜ò?ÊP¿?ZvŠ?Tß,?HÅZ?VOh@'@‰©?’µ?Ž¦¾?åÑR@Þ?ñ†Ï?ºðY?ŒX'>äŠÒ>ïÕ*?È/Â?Ì- ?ãjS?ó™æ?Þ†¯?É;¾?ÏFT?ÕR—?ÖÀ?§¤P?­´ò?¥s?£Ov?tã?9u?C¯Ù?›î?¸6}@Ë–?ñì(?ô–p?舭@çê@6´?Ò ½?£|?|ù[>Ýj*?$v.?¬3ô?“\)?Q‡?eÚ2?ˆŠ%?df‹>¾Sì<Ó>“‡S?ZµW?M¯•?]µ?+,™?Ÿð?¤^z?†8?`Íp?»Ý|?é™È?Øî&?ð¥ÿ?ÚvY>Üf>Ü/k?hmõ?a%>DI*?²uÚ@óP?¬-[?ø¥?F#A?°f?©¸×?¥ÿ8? ½ÿ?èÆP?Ýbþ?gb©? +@?Ãm>«µs?Oú?_<4?ÿ><©©>¶Â{?Tyl?l§>á¹N>âp? +qÐ>æ4ä?ŒäI?ŸF¬?ŒfÌ?Švá?AõÐ>äœÝ?UÉd?«ú…?…É5>õ8ê?Þ€?DIŸ?NdÌ?µ_Œ?Â^j>²,š>Ë&P=?L?MeX?Ixë>yaÊ>s¨‹?SÀ?lÇz?Å_>óʤ?Lsé?K`Ö>ÚéŒ>”£¶=xÃ&=Ýé<Ë`<ð >wl>­Í:?@»?hÿ?xP?f&†?¢F¨?„zR?Vkí?Ëe¢?]X+?9BÛ=8îá?JÆ…?`J?Zx>à«B>ãŠ]>ê§>é’½>â?ç>ÏW ?ç¿?[,R>×ãÜ=©Â=&¬j=.+}=õàº>åI(>ã·>ÌæÙ>ÌH?>tú?Kéå?K²Ò?K‘%?+]x?ô“>ø6ñ>˧ ?Ú&?YÓÙ?\z]?gè‡?ed´<'Þh?½çÝ?Ü‹?±J?¢ª‘?³/=3ͬ?VœY?ÙÈÂ?¤Þ2?—¯?ó?iÑh?yþF?³ú?±Áy?p´ ?o]î?Ub>ñž”?P­?h½£?ìÄ@¼?z¿“>\E>ë0? ò?mü^?nó„?k€Ú?EÒã<´¶Ö=ê?°Ô{?°ºÀ=û¢=¹ö`?FîM?]é”? ë>ì7 ?ÿ´? ½]>çGE>¿¢¡?I7?˜?ƒŠ™?POI?:WË?Ì? + G>§¥±? +Kº?Üt?έ²?Hò!?L\·>öòv>í+5>Àˆ¼>ǧ>ì<Œ>íZ9?Áo?—•q?X6?3»ß?¨->í“·?Öé?(ê®>Æ¡ >s?C­?Ps?mâž?am ?åÆ?-ù?î"Y?óª@_@ 3?Œ›½?€‹¯?ŽU¿?ŒÔµ?ŸWý?¨Ì/>Òêh<­2‹>¡te>ñÑT?Á½,@?îž ?°îæ?­ }?¥²`?žÄ? ‘›?º¼ò?å‹e?¿‹$>¿Õð>ÀH">îþ?|?Ä\?ļ‘?'2µ?º«?ø¨?& ?zÃü?‰:Å>äã>{h·?‰)¦?µãí?ŒsË?`Tr?‡’?œB?»K?Êëè?•º?K³Ö?‚>tê>­c‡?·?;>œ;Î>Ƙ£?b27?x%?°?°ÜF?°JÅ?±Š?pe÷?pÎ$?°½]?°²U@ +fÄ@ }@>æˆ×>dE†?†1?K„?Æ>ðÝ0>ðæÌ>ðô$?]¹Å?ê>ñB?N¡µ?Êá[?´ò?—!)?ŒB×?~Ñ@?f—¦?(OH?ç>ø>Ïô²>¶>¥Íb?øé?63x?¦§Œ?ªžŠ?úQ?ë"¿>ò—>þß„?µnš?µÖ^?ðÓ?ñ¸S?‡vƒ?„µ? B$>ò’%?#ç?6×Ñ?œR“?¨˜Ú?§D?¥k¹?½\x?Ê;U?Ëåz?Í”N?¡!~?Œt°?„Šà?sJc?Š°”?šÞp?k€Õ?VN?´?#õ“?2ÖK?P4Y? P=æ·ë?)¢E?Íÿ?ÑD?äœÿ?Åm_?ku´?ˆ>?·-­?Œ¥3«VÈ?³‡Ô?±â?¨ò“?žï?_T ?RÔ§?žÍ?›>Œß>šw´>¨X>Á9?D$+?A[?¥ï?x¹-?s­?uTö?õë~@Ö‡?¿(A?¸%U?ËÙ?Ò’d?ä;´?ç¹ë?Y Ý?$¿‹?ž”Ç?±ŠÛ?…ô]?vr?©w?¸X?‰Ñ&?yóø?¤BŽ?­Âµ? Ë?Ÿ|?»œu?Å“R?“‘?v‘Æ?Ó»ª?øH‹@‚‘@aa?ÛþÙ?¹Ž?ÐmÕ?×??°+p?ž9 ?Ë4æ?îØd?ôr/?úò?É›â?›t?ç)•@yy?À„??^ˆ?VžÅ?wyN?×G@Ò¿?ö5k?¹´Ì@ Ï0@5 @ §I@ ÊÝ?îR¼?Ò‹È?•$°?I÷?j;ø?¤]?© º?µTÐ?ÔŒ¶?ñ‚+?–U>|Þý>~<ò>T\·>Ìÿ?)nS?‡4Ñ?Ìú‘?¢ô¹?Z¯’?K¦Ì?'Ër?gò‰?¬o«@ ý@Tïœ@¡?xšM?˜8‘?½ü?£Eõ?jX/?Ò¬@4èÙ@Žµ?ZQœ?„¯?¶Ø??Y”?ÍCö@6ÝJ@´?›!®?È Ù@3«?ÄÉ>žÍ¶?-˜øô$?|™W?ôë?ÞË)?º¹S@ {@ô[@K0c?ÿ~?H`?A,?_µ·?º¸•?º»º?º¹\?¸ý­?«ý?©æ’?º³„?¬ü^?ŽçJ?’?˜‚À?œå?±Ê?΃@š?éÜm?»d±?º¥?º¢8?‚SŸ=ϱ˜>×QN?‡l?V`¢>º³d?iwR?ú•?Ôÿ?‰$?§%Z?ø±¹?æ?Ð?º}A?°y?“ãj?¹í8@˜j@´#?óI?²ÿ’?ÖÞ?Ó²ò?å]>?Ñ^?z3L?pž?õ`^?ä½4?º5>?¯ùR?•>ñ?°?ø(Þ@ß½@#Éí@ ¥?h¹V? åÜ@F@€?FH?‚?÷ØG?âÇÍ?s·è?t¯Ä?¯Òf?Þæÿ@hèw@Y®?¹lÆ?°“ÿ?~K‚?‰Š +?Â??Ãol?¹~b?Åݸ@†Œ@+'?¹\?³Òu?p‹Ô?„rè?þ<æ@x¢@`ìy@akÖ@& ++@-S’?—ÊÝ?ŸoÆ?Ò]?„ñæ?¶|T?¹]9@M^<@Nø@`8@·»@Ñ'@lU@5@>?æ_ó?Ú8D?»Òã?½W?Š-?uÂX?ìÊç@@?«%?€nZ?È>¿?ê}.@fA@‰Ì’@y–?Ìl?ðG2?þø'?ÒH?·¹¾?Ã(Ë?Í6¥?ÂIÖ?Æ…æ@ H2@,_u@$=Ò@Çû?á{?‰ó ˜@O=Ô@ \¾@ V×@ ©@º@ä@6?ßô?€,`?Ûª?Ã1Æ?¯£*?ÅÑ?À_ƒ@¢¡@c?‚±Ö?– ?̸¯?åjà@)c³@#èW?‚Ë¢?oÅ|?Š-?)†?¹Ÿ?¿ÉŠ@W@¢œ?¼*d?¬Í(?áÐø?÷®?þZX@ϸ?ïŠ?ÔnG?Š,Á?¥ë?o]?´`¾?Ÿ5´?€/1?àùí@H ‚@-L?Ⱦ¥?²g?–®ÿ?™ +z?ŠÅæ?LÛ@7Rû@>ÿö?*!Ê>öØR@SF@ D?i‰#?ú?¿C?ì«?±\½?’ØP?¥†?±?4?ýí´@1ª¹@d?ëù”?Éu!?l8ý?… ?¸/\?¸0~?‘Qs?ŠFÐ?Ól‡?Ï5y@¥ì@À&?½ká?°"e?¢?¤ƒÆ?I•“>ô®ÿ?zW„?§ /?Ý´/@ ?'?ï ?ÂU?±™˜?%,?1)S?“Æ¡?’o·@HÍQ@Jé?ŠÈ)?aœë?ÒK§?èëR?ž†_?„B?°ïÂ?Ñ ’?¾$?›Bœ?©³¢?¸,}?¿~5?å—Ÿ?îò@ ‡@k?­´?­¢É?­‘½?­@¼r@ ïÆ?¶~? ƒÐ?s>ë?©?óù£@#£y@>˜?žÍs?£í0?ÎÙJ?ÉÝu?ÍBÒ?Ñì?òN?ð/œ@.ÖZ@Fâ@4Ã5@&÷?×ßt?e ?Ìɸ@%üì@ 4ø?Ÿ?u?ëu¾?þñ€?«Í?ª‰+?¹´(?ÏÌÒ?ôäT?ö´:?Ê?ªÀ,?¯õ?¿‘L?×™@œ@Í€?dc…?t"’?vd?•W?¦œI?ËÊŽ@ȼ@á@È@ có@&@b@£˜?Éè?· @¿@çg?›3b?—òØ?Î~Ú?ïh@i)@&óÒ@a%?èÉ?ãðÂ?¨k•?¤Ä>Éö>óp?«s?·‡@(ë@!??ùe?§Ê?§°q?§ Æ?ž—?_Q?_@®?»?$“p?:B©?Oöh?×O]@ ;í?½é? [¥?Q3è?ÀÀ˜?¿Ls?9?"ðÁ?êµ6@µ\?ï§ +?ãÁ5?Ä¿:?³‘J?ÝTf@ ê@†P?]-?]M?¼B>áÅÔ>ðni?ãˆ?zÍ?ÀŒ‰@³l@5F@!:õ>­ë>ÃÃ?œO?§6{?ÂcÛ?Àµ%@¼µ@$ÍD?ä»Ù>¥ø>“¢(?Ô¬$?Úæ@3@ ½[@É@Ö9@«?Ôrò?ËÕC?ßû|?ëƒ?Z»`?V° @Ä…@¾?ðäž?ÖÁ"?£mÆ?7µu??Ýw?î'>éúê?©Íâ?µ®?"s)>Ú}?ÖrÂ@#”@(5}@=ü@:B‘?¢±R?™S·?7Q?SD!?¾R?ÙÁï?âgè?Øb?¸w??¡ß]?¤·å?£E'?£A¡?…éi?†Ì¢?ËUY?éíé?±žv?Y°Î?qî¬?­??¹Hú?vJx?“¿@?¬oÂ?Å+\?¹n£?£m™?·8ó?ÒY?¾XF?²zò?¸½õ?b¼?@à ?ßž—@æx?ͬ?V µ?,ÌÚ?–*?!ü?gÌÅ?5|ä?Ž·h?š6N?ÌÕÆ?ÚŽ??Ž‘è?KR-?p|Ä?€,}?‡ms?žÚ?ó7?˜’?¤¯æ>Žbk?¥øü@?éLÁ?´´?œÜ?Ñn«?Ó6 ?dh‹?q•æ?y$?³D²?^c ?6ý§?¥›?Ø?ÞÂÚ?ÛR!?ž:>¢Ï×>®R\?'ám?i†>§¤Š>ÂIQ?Ì}?Ý:ê?PÍq?-O?*Á?*u? +{>ä¡Á?LD?§’*?„F•>æG>ÍY>¨{>Éà0>Š¨v>š€^=œx"<À¤Þ?L²?›¬á=Å"?Aj?A?]’?mç?Ù®?&?}H_?}>>F\õ?‘x?©@×>_Âf>pµÔ>dß•>,‘Ý=çô;aÄ=9Oæ>F‰ê?C(g?Hç>{üa>õ7?^²?Št>Â1¯>•>Õ1>Òø®<Ȥœä(þ>»ÉŒ>°‰¯>ÙFu>àÓ>äc‚>ä  >äÖê>å >åEE>ÈÆT?r?·3æ?H{Á> •2>”âP?º??nl?TfË?D¿­=–©û=“4#?Uºì?_íó?U—>èßô>ôSû>÷§Ë>æ=&>Ü™É?U×Æ?©Õ ?—ÒH?e‘Ó?‹&Ô?äã?à3?¯®A?¯\A?l<@?j‰Ê?Œ¯>êµh?ÂJF?êåå?kÊ >çà5>èêm>ë6E>ïAJ>ön´>©·Í=uil>&1@>×Ù?>»¤ê>߀>RÄ0?N˜€?L'œ?iz¨?lE?[§Ò?WÛ?UÃÛ?Tpõ>¥Âb=Õô¨?'ûÃ?…§?P€¢?Æ?/ /?Hò ?,k>ìØú?,4Ð?µÜH?¹ëš?¨ñ?ü>íu>î7²?Ë?“Ê>éb>íRñ?‚¨ƒ?—Ø™?- >í{)>í…Q>í7?:Ñ?m¡o?!J>&»Ï>±¸Z?X?¼L?*´+?7Ýö?PØ?No‹?)o?1Jô??ŸÎ¡?¢þ?¤<ù@ýP@iM?0³S>îN­>ó€Ž>ð9z?’ ?²Ï?"á=šd`>³¨u?r~?Dì’?|Ü?©ú?Ü‹]?¼%f?Žwö?p-#>îÜ‘?7wÑ?½oW?¨—b?C’?N‰+?oØ?kåÖ>ïÓÕ>ï0?8;t?78E>ú8>ïW)?³»Â?Ç_m?µ¼?³Ÿ$?Š9[?os?ô(ÿ@!1?ÄÜ÷?7a?|–u?Ÿ#?ŠïV?oàM?š/~?ÙTç?­‡_?Ù?½+?sû¸?C¿n>v?pJ +?p‰K?y8û?z}?2jÒ?>n?KµU?Ȧ?è«$?òL¦?xæ“?M˜1?…êN?‹…¸?˜?(¼?EòÁ?ÎQ?Š¨y?µ÷j?€PÈ?9Ø°?m®?†H?‡N~?ŽOÚ?”3Z?¢—â?ˆoì?3¼E?^Z?‘žì?º@"ÎÍ@ë"@Ͷ?ôÒ3>åð*?S?µØ ?¹YÃ?ò6%?î· ?-$?=?¤Xå?£&? dx?5q?ˆwý?ˆêó?K…°?D±g?çC5@¶ô?Žþ!?^å"?|?Þ?zM?Ìs_?í"?±²Ü?“;ã?§(?¶Š?‰ _?Mƒ?‰¥c?šîà?jj?+?-?«"y@bþ?Ú`C?h †?>X°>êæ”?LX³?·?‘5Z>ê‚V>²è;> 55?0ËÈ@…@£ý@6C.@2‘?—9P?‘p–?y¡ô?Oý=¼g€?tõs?}qÕ?·Ì‹?³„?=ž«?CuP?Ÿ}â?¡¼µ?¸?¸%?°.—?©XF?¨¯«?¬3“?ÊøQ?É:?‚Y?uÒ!?pRR?s2,? ð>øäW?Ô*ö?ît[?”‡ò?‚‡ >§Ÿæ>0¥{?^¥p?‰ÙF?~éÏ?vyY?ˆî?•i‹?¸`?È ­?Õ?pså?Ñ +i?ûÓ?¹+I?”‰l?Á‡q?Ñò?–S6?wÃ?µW3?Û)4?Þê€?â­/@ -@‘?Äè?qÊd?-_@>÷uá?FH?‡?ª¹?͈$?±á?›!?;5>ª¯ ?²ÈV@ ¼³?Ák¾?wÞÂ?—«D?ª»#?®ýª?¹ûæ?w–>äTæ?'¯ý?^¶Ê?ff8?x&Ý?·ÀY?ø3^?§§?Þ?qãÏ?±3\?y¯>ø^ô?’9}?÷Cß?ÀQ?xw@ÙË@O|@%;­?æ•/?ß];?ádÞ?¸Ü?xž¯?x  +?x¤c?”sS?­HÂ?¶¢Y?Ó÷?¥kÈ?GÆ›?›%&?ßøŠ?ªC”?%_ +?©ýy@8`@)™˜@MV¦@:@‡“@‚©?¾L?î,å@@¿?ëY?sÑx?«Ý‡?øåš?õKÄ?íä?ãå=?ç[Š?æ 6?Î;Á?ž‡0?|C?‘¢m?þÆd?áHÄ?º«Œ?Ê{å?ëó?åÈ?Ϩ¹?Æ/þ?º¥?ÌÚO?ì¨ô?ÃyÎ?x×@?Ô%Î@5¡…@!è-?øÄ?Ê»H?€24?$ÉŸ>µ-c?xº-?c +?3: ?‡³?æ_l?ç‡Ý?Þ%?Âx?›{E?« ‚?ºok?±?Ð&š?¸ú‹?T&?c0Ã>øqÍ?¢ê@:K×?ÿT<»Ã??CTw@ÁD@|f?øBb@~C@F™@F¼@LóW@0—C?ø~@íÈ@ )@v¾@ò‘?í-?Ûت?¯×1>›oÝ?ËË?Ágj?Þ\»@@‡@ÞT?œ3Y?ÿ¤?ß,?zÀ?xJ’?ž)€@»‘?úD?%3???‹(µ?¦@yÚ@o?Ý.9?ÐYô?vê?f x?Z4¦?€C¬@ñ_@ñ>»À1>Âåƒ>P»>0°@@w?w©?{¶?ˇ¹?×:È@¢@¤®?÷ò?ö @G#@K/a?Äœì?¶>n?Ê?c¹?¡H«?£ÿZ?î@Ý@*’²@;2?¨Ñf?gF[@zÁ@8°Ž@ +jP?ï Ÿ@(t@+àñ@j ?ã2í@ +dÄ@?Z?é9S?¼}?¶÷§?ÀöR@ã™@6l˜@8}?îOp?æÉõ?ìcs@\¹@)q@ ×?û'%?в4?‚nY?âšJ@FoÏ@›Ð?Ž©á?¥•„?Ø2g?Ôÿ+?ÑÍZ?ú™o@n$®@k¥—?ä52?ì‘å@kS@ ÙW=tQ<ä¼Ã?|dj?„žÄ?ç*?æ?ð*!?ãÅâ?ý8‘?ûëÿ@ýô@Ô®@ó@·Ó@T-Ñ@qZ@C?½‰Y?œÂë?~ÜÞ?áþ@´%?²Èç? B?KP?‰j?¤¤l?Á?Îb?ð†S?ʺ?R³?XX«?‡±Ý?“o×?ßØ?í„â@;r@8C@ˆ@‹›@ +Ó¾@^ˆ@'º‘@(¹º@9\@ 8]?î¼S?⊅?¾oÿ?³"½@}ç@%Æ@­~@Œ@[>?êŒè?ùÇP@á@ʽ@W@èÁ?¥[‹?³»?©‚ú?¤EÂ?²(Î?±"]?¨%r?«÷?êq?ì[@-l@]?‹§?Nƒ€?aÂ?€?(?yˤ?lo“?Šž&?¥?¨‘”?±@?ÃÓ?ãó?³4A>ò¥,?yXÑ@!Ø@³??ÙM2?×–ž@ÛŽ@¹7?ÞÙâ?é o?¬“.?¤nÞ?T¤U?3(?¯gd?âM?Á˜›?¯¦š@wn@/ˆj@>á?±gr?•<œ?>r?ah‡?®q?ÖÔ@,Ùú@.ª¬?ú +?"O?¦˜H?½ºG?u!•?8Ôí? ¬P>èx»?€o]?µÁÁ?ÄÖ‚?ï†??ËÑ“?il?„}µ?½ÏZ?Å›˜?­§`?­–T?e4ÿ?n¹É@{ø@:P@á?¾Gý?_ôò>æË?‹ÞA?õ,¶?Õh¦?ƒÖ ?“’7?ƨ'?Ë a?ÂlF?½›’@ I‡@ô?Æ¡?­ÿ@UÊ@+ô@П?çiŽ@ ¬ö@8ø²@1!#@Ø´?ê2M?¶š>÷Á†?e>9?h9?r<?{þl?·^a?Ö¤¢?Ár½?ª²^?šæý?€È?„? M?¯Îy?Þº?Ô“@G&@|ï?ÌI?­€g?¬UÁ?¼YŒ?ýR#@:@±ÿ@)+@1#?‚´H?ê¦@)@ (¡?ƒ5Ë?F•¶?€Õæ?†‘Ä?Ó=—@ Žm?ïéÐ?¯‚Î?ŸŸl?6qÛ?K€¹?' æ?®’)=FÏu?cë?åÌ?÷´ ?òÝt?ÜÇé?Ûˆ?É}?‡ÂÂ?’Áº?|xL?_tÈ?$©„?&›?×±?´¶Ö? V?•Õ8? gD?v8‰;=¸€Á>ÕÏ?RÉ?–ÌZ?µ£?Õ6Ÿ?ùš˜?ÚÞå?f^i?LTW?¡??¤Ãú?„?¡?˜œ@›‡@4V@Û¤?¾\?«*]?ÌJ? …?ZŸ=?Z™‡?»†À?Ö¾a?¸ÈZ?£È±?t¾`? $c?[ŒÎ@l@÷P?£’ ?£‡Ë?„ö3?eÝr?Òn÷@-«?ã?Y×k?Yɽ?^”à?j‡?«ˆ.?œhá?ž‰?­Õ>@WÔ@/¹Z@Éá?Z>Z?[ÈŠ?#r?1v¢? èn?'†‘?¡?Üέ?¹í?[ºx?ƒØ?ÑNÍ?˦'?ß~¡?À´!?`Üüõ?Úg?fÓ?€Ç+?wðˆ?d?Å8U@]ð?Ãà?9Aè?@Ï{?§×Û«? +šË?Šu%?{Š>ðR +>éë>Ëc>¤Ä?WÃ^?¤|E?™ ?‡.4?Šÿù?bÊ°?`˜®?^ »?^In?^}4?^²ã?MžÉ?1LX?ô%?¤J°?Á«1?àæ?Åm×?‚5„?V´~?^Ö?¸Ø>,õI=†â¯<'Î>)€?/V?>Î?1 Û?#ÿ´?*Ö?!/>û: >å{W? Ú?OƒÑ?7e?…>¿Ä>®v>>è¯r>ÿÚò?£Éø?¢8?;‡?W t?)åM>ùX=$=6l =¯0Î>ÕS>ýµÐ?8Š<>—€¤=÷ü—=ˆeÙx‹?lr?4¼^?oÆ>‡>”•w>±†ƒ>Κ&;ñ9F=AFt?^ö3?^‡v?¼Å?˜¼µ?5ÏX>ê8?t· ?™]ë?_M~?$X1>ßX·>Ä,>Ämê>ÚØ>ñ§[>äPG>è±x>ìVp>åò¼>Ü!ù>«Óu=µ"Ú=Âùa?Ñ€K@ +z?ñnð?Ú¾¤?Å u?ª›š?h±|>3Žr?s<â?k×Ó>ÞZ>߀>ßÜ>à¯?Lá?eÔ0>¦~<ã²×>ƒâî>镉>é±·>éÐ>¢)|>†Ã?¯«3?¦uY>êsb>ëfa<¥d< »>Ú@a?6:>šâ<¸–ˆ>•>ë0Ð?1KL?a“©>ùô>"+À>ë¤æ?&e?˜Ñ?V> Þ>!¬²>+êT>6b? $Z?‘Ø?`Ü2?lQv?‚Ñ?‚«£?4ć?Jý?³Ò>ìž?[T?rï?”‚Ï?†:v?Jáä>º¯{?,öØ?ÊÃj?»,°?7ä?>àJ?•bC?“Œy>ñ‘>íK¤>íS>í^~>íi‹>íq)>í{m>í?cÄ?‹Zü?g +¯?A1_?Tt?m½Ò?Çž=è–ø>ž@ã?(Å.?JQ"?Àº?ÃŒ?Ö±?ê?'N-?+oá?êP>?ëH_?n×>õá?b3ƒ?nJþ?¨GR?²Èƒ?Ö¥/?ݽÓ?[oú>î„?Ÿ@ñ?ܹ2?Éêã?¾Tc?´ˆf?¥?ô?Œ@?NG?2Š?òÍ?/ ?Dg÷?I*t?nþL?}=ý?Ÿô‚?˜=ƒ°±>ƒˆh?µ3K?Éôx?‘º±?ˆ?d?Ó‡?­ê?ÉÎÏ?ß?²?ÉË?³³Â?ó#Z@c ?È_N?oÄ_?7ô>ïÙg?(Z2?oî?Œ:Ý?³óò?£'?lvƒ?Oo«>ÿ6¤>á/<=Ô>§>)/Y>ðVg?U»?×¹?ÓÈø?qÀd?~æ÷?'íÂ?á ?¨8‹?´\?qãa?_\?p/Ä?pêI?¢H?¸¾?S3>ñb?Š¯?ÄHk?²^ú?¡Œy?ª Þ?©ÅA?` ¹>Ÿr??i€?ÈÇì?²TA?q©?2L–=~ÒÈ=Õ]éJm@ö@M¢=ÒÏd>¨Œ?¨°…?Ÿ½u?Ë?&8…?,¨u?3Ä?z©?©È?‹›¢?ŒT?´+l?ÁïÑ?*$ø>òÕX?Ð?ò:¯@‡©@)•?Öx?¶]Q?˜PÂ?ŽË?Q?rP?Úõk@%‰E?ððI?¢.?®ªG?¶Ãq?€œ*?'Ã>’<;% ?˜ss@5[â@]ö’>õÔU>õÜó?ã—Û?õú¶?‰½?v¿?“«-?‘Ÿ¤?+ç?Z+?——ù?¤‚~?!üc>ölï?Äi?á‡l?t=¥?84Ö?ÍQ%?îš?²®Y?¡ôW@÷@/k…?ÊáÛ?‹;ï?"R?w»?‚9?ƒã&?ùæá@}ý?ÁM>óÍy>/%°;ö`?˜„?é4>?„²6?ɧ?‹½?­X ?š‡m?‰[©?h”?o8ë?PÃì?+iê?i Ð?͆?«R?¹æµ?†ö†?B¦_?ob¼?Œu ?…—&?x ‰?™ì?¼*C?¤æ?‡&Í?…4?ƒ?"?Aáq?ŠD?}Òé?º9 ?¹Èÿ?·lf?¥ls?žTà?ÐPs?øl?Á 4?‹=?›I§?§€â?¥~ƒ?£}à?Ë™?ø’Ê?Üö ?º.?Y£>X-µ?KSg?º{Ã?¹ëÜ?À;·@ ~@-Ž@+eƒ@ ·@½ÿ@vp@‹@`?àÑh?z͹?Ñ"ß@ï?Ä—„?/ëº?Œí¼?ÇjÀ?Ñx ?Ö™£?´#å?‘Ç#?M‡Á>Íj9?©\&@€Ù@C?º—²?“Õh?I¼´?oÒ?åœö?ãŽ?Ø…?ÈÞ½?ºŽJ?¦¦v?ˆ;#?š ¨?¹ !?º}°?»«?‰”È?“é?‚ùV?Ð) ?ú–0@,î?ùx¨?§B%?­Ÿ“?ºo)?˜ê?b©"?•{%?²ä»?º‚·?Òéh?ñp@ò?ïf°?« U?ˆÇ?>ð?«>‰@.”²?ÿsÆ? &0?)UF?’9?Ø)¸@3‚Î@,À7@&y@á@™r@‘ñ?÷üE?Òp`?‹×â?ØK˜@9¶@#Ÿ”?Ô|?¡£]>©Ø>Ç(ê?Tñ?Wäù?Êœ¨?ùÔ|@3l@()Š?úõƒ@@£@qJ@JáP?ǹ?Ï” ?Òxƒ?Ä1?§ôê?ÀLO@jÅ@€Q?³Õ?½Ùx?Õã‹?¸¹>;ž>“íp?†L¹?mcõ?Q—>àæw?g‘å?w[ˆ?ºí:?¸â×?·\¡?´¶V?¸¬_?¼@Dô@@ˆÎ?ö‡?õúÆ?î&Q?ý ¤?á(?Ô}?¹ 7?¸@Z@ qÆ@ h©?› +¯?‡°‰?2ó?¸z=Âüæ@•z@7Ô0@3¨@/»ä@ŽÎ@?:?þ?ôÁD?ùS @y@¿¸@ ø3?´ž?tc¼@ e@GÒL@R~.@UŸ@Wé?¼·)@÷K@U@8Ž6@Y@$D@gƒ@,6­@k'@-×þ?s^ä?¾Ì@)@ š ?§A?«i˜?„þ–?r©è?©z?±´{?È»?Ãê{?ñ—®?àÆÍ=‘q­>„@Ï~@9Ò@/Û@nk@»«@0=?¬a?¢pØ@ X'@!ý@'ºÎ@#õ|@¶?÷Ÿº@§T@4§-@EèîJ@U +@(I?Â^Ê?“ç·?®€‹?«¦¯?å=Ô@ý@ e@ Ù“@!}¾@Fºa@$~Q?|ðF?•í@6@*šˆ?BìZ?$F3?9S?ž*?ß™ë@ˆý?”|4>æ–¡?¡òò@ +øé?ø#4?¿f?­ƒQ?×—?“c +?˜ûû?«æ¶@ m@yù@ã@ vr?ýÓ?ü½@s@!-q@ {›?éL@[@ÁW@&;?db”?fI?âä?Ú$Ë?øÏÚ?ðZ¹?Õv?ÊøB?§B?”l“?™`X?žKI?Œ:a?Ax?µÂ?vû€?…‰Ö?ÿ @~õ?ÿ³1@g?­è`?-N?÷*@:7q@9h?o Š?„ƒ??a¯ø­ @K|@b1?^ù>݃(?Ë‹~@f±?ò]b?jSÉ?f›Š?¸Šº?­4E?¥é€?®.?©IÛ?¥oÝ?«M ?¦ˆÄ?Æ‹ã?ù ?Ü•?Ö¸Ÿ?Ûsp@5?@&°’?å¡@?Ǫ?јî?ÓiW?ÝÔ^@;Ø?óOl?Y”Ü?_ÛF?™ÛÂ?–d?¨àS?ÏîX?£@f?3qy?[ë?©Ë³?“EÈ=(»0> ’?¸Ý½?Æ ‚?­_?£¸†?¦…?—¼l?ýL?\†¥?w£?ÐCÊ?ÊBr?ÄE÷?¾A“?ñ€&@;?ɯB?kä?~‚??Î4`? ƒ@ ÃÎ@­k?Òq,?¤Ho?® ?ÌÅ{?¶ø?Y€ª?W‚>?<„?0S§?±ç*?¢Iˆ?a7Û?$Ùœ?\só?¢œ?«Åò?Ù†ð?Ù ?ÌÿŠ?å©~?—¶ä?‹•‚Kè>R×m>Ô`Á>Ú'?_ô?¥E"?·½?áæš?Ë€?­Æ?‰tÇ?ƒ9e?yê>ÉjN>ÎûB?‰š?°?¶!?‚ `?~/?‰3?J%f?ñ,·?äŠQ?¥ð­?›h?Š5>Üš2?{5.?Ÿ²Þ?XÔV>ÝEj?*æS?¦‹¡?¢t?œo?•Èî?c#‘?^¥ ?Œ(÷?š•2?}‰x?^;e? +óœ>šÝŽ??_w?¨u™?Ž,›>!à>9 ?oêÔ?d54?X„&?>6?›W?a +?m?¸?kžM?›²ð?/—ÂpXØ?d§?2˜@?gf?Gµ>©d+>ÈA=>èÉÁ? ù?âß?Ú÷B?…= ?ož?­üî?±&5=ß*ï>ÌØê>ñæˆ?dç>òû=ËÈV=É >•¾>ÖÚ­=¨®< Ö>0ÛO>Ì7:?‹ìä?ˆ[í?!%Ø>îgx?¤8?༴?½Ãò?–¦ù?œ†?„2Ú>Íuá>ÔWÆ?Xgq?Z•?Wâé?X’?&ð>í<â?Jº(?§ô?’×ø>âúÓ>ãR}>ã’H>ãΖ>ä >äD¤?<Ç÷?d¼®>îDö;xAÔ;£l;Åsö;³ßƒ<ŽæÛ?ßå`?âô¤?*}¹>ëë>îZ>ÿ`1?g‘ð? ~œ<fÊ?G?è.(?Çç¶9÷T;²±:}í>Í<ì>éù?’x”?¯“?JHÉ>éœï>éµÓ>éÔ>é~>çéZ>郶>ô´?j?fƒ:?z2©@ º`@ +¾›>Zõ=â$?¸:?×t>ë<Ê=?P>¯…?±n?dPO?˜^‚?„œ?Y6Ö?B][?„Î?,Í?=`å?,‘>¸e“>×å?Ásþ?¿x? E?Å)?~ô?‡ô°?Z56?F~?D¤9?C$€?råÊ?Œ©.? t?±žú?“óƒ?J B?HH]?cw§?YéS?0w¨?;á?q{@?rç„?,.S?-€Æ?†6?ƒu”?)’Â?# 7>ø›´>í€?n»¢?Ÿ?›ØÂ?¡ç?~7·?Qï?@Ï7?'øì?n0'?¨3h?ˆ!â?DÜ?Kz¶?¬‹õ?Æiè@@ §?¯wP?¹Ê@Ý@@Ì&>ÿLË>õ{2?j¯]?vŠ9?%FÎ?Üù?’NG?¡>0?:?¨?ˆ“?„ç›?†$8?‡`B?,og>”[>ép›?­?œ?&x³?)-?+—‡?aû?Ïàq?εx?°£w?Ÿ9;=³ ?˜ÀÞ?“êK>÷ÎW>ïPd?ê@ +è?Á"1?³—Ó?³Ÿ?³¥T?ãÁ?ø+•?£*Q?d ƒ?7ìœ? +)s?=DÄ?qÉ€?oÞa?p¤?¹çv@J;?èñ?dÒ?x½?™‰?¼?XÁN?ka?Âè)?º§‡>ðkN?%?²ôB?®Œ½?U,Æ?\$?C ×?8Û.?1]í?6Hê?flÖ?påƒ?c.±?U”L?'Nü? Í?o~“?‰Ì«?ÔÈÔ@¥m?Û¾ð?©ñÂ?Ph]>@Y>âÁ×?]ðS?kp¶?uE˜?rd„?qÄZ?ªg*@)ô@N?¥¹?­³3?ér?×j ?Z=?DË)=ð$q>,œ?Mí?L¾?´¾²?µäœ?w® ?r¡6?¢·>ò»&?ÁÙX?Ûïñ?¾Ñ7?¶4Â?ÈÝ3?Ëž­?]h4?°/?q ´?ˆeÆ?øV>·O?Wu?IÒ?~P?¨Bˆ?°«p?µK9?l¿5>óM&?µr’@É?Èý?8 +>Î)Œ>9þ?,éj?·'?¡!p?tPy?ðƒÁ@t,ê@?ÏK?„3?dŠ<>ØÜy?'ÔM?™•?“Å9?•‘x?œ[ ?Ódf?Ðÿ?Ž»?¤ÙÈ@,«0@%mÆ?u;…?m†?%?»ñ?8Ñ?%/Ì?¡?Xk@@÷>?µK?¯é>?#[?)£T?sÉ%?uöM?3¯i?6ðU?Ü>ö&P?†ª?‘VQ?ò8>öVQ?ò‘=@ öÿ?”ߊ?v€{?ü´ @ ·´?›`z?v®…?ýχ@|Š?Ñ­M?¹!=?o¥é?N‘¯?’à›?¦s@~Ó@M?*¤+7??€Â ?°Ã{?o±>TûL>ÔÐ>÷bb?²Øè?é÷ª¯?(˜?<¯ú?ÑH@Ç?›~j?-];?)†ñ?%©?>aî?V¥>Óþu=Ñ?2?ŒúÇ?Þ¾c?Â_?´Ö?–hŸ?zÉ&?Ÿ³ß?º(+?ý@@q[?¨±s? ?Ž?ÆòG?ž…½?xa0?,îV>øФ?‡—?ª¥?˜ž«?×3 ?ê;¦?ø„×?Á H?‰’«?‡_z?T\?v†?@_?fû6?|uÝ?îé·@1Ñ @":@¦@ P?ø­¦?ø>Á?ô°õ@ +d±@o¶?ïz?¥¨Ã?wÊ?7h?"—‚?Î?¦åƒ?ñ;?Ѽ +?­PÝ?Êõl?ú2`?Ý5h?ºˆj?zÚK>ø´Å?OŽÉ?—ïí?Ê ú@œŸ?äoõ?ºƒa?Øa?ø¬C?»ùh?x)[?¶Ø?õ©@ +@C"\?óìŸ?DC?ŒB&?¾9‡‹?K”§?É8Ò?@‹'@ž@3²?àÍÞ?BÔC?UvÎ?fê?z¥B?„ê?þIÛ@Y@ j?lž>à‹>Ë +º?Iô?£Îó?°ÈÜ?¹øÁ?Á¬±?ÐÜ‘?©º×?@6V?‰Ô?Þ[?ÿ Ä@+F@@A?µà?¨É?˜† ?^ú¸>`£í?.Æ/?îÈ%@èÜ@Xt2@=ì­@v?øžm?¹iV?¯]@?—Ù?Å”I@]è@ú@¹Ý@Q:?»ë?°Ü^?¦aÏ?ž5Ž?&m=?Z¨]@Ë@Á†@ ºb?ÿ‰ˆ?m±?0éJ?ö\“?õšµ?òõJ?ð1i?ímˆ?ì¼Q@T7@ôæ?¢Z÷?«ÿë@'Ó@·Ô?˜p·?§•ï?ˆHÚ?‹š…@V‡@#N?ª?¢ X?½¤R?½7÷>’ Ø<Õé@º@<±@©H@o?Þ£·?Çe @5‚ @Ih‡@:‡2@/Ék@D3?ôsÊ?£3?tR?‰9?—¡b@|~@UŒ­@!¿?óï:@:i.@s @7ºž?ú%n@ +:Ÿ@;+@ç5@JF@i?åY@ ·X@Eùt@$0?™¿Ÿ?Ã%@2±¦@ bÐ?ŽtK?®St@1Î]@ ¯“>øs©?ÑS?WÂï?W¥?ÿMã@>D?òU–?ñõ.@ \@# ?Ÿ~?…Lµ?Àza?¿8"@:ô@S4É@#Gá@±”@â?òsâ@ºƒ@Ù@?]“@M~È@ãë?Û¡M?»y_?˜qÞ?¹äz?æ°?}Z>§`Á?%È?pß?³o@5ìP@.ÛÉ@PÞ@~?Û¤—?ís>?à1?ÜÞ?«ts?¾1?ýÉ>îúé?E ?C§@‘ž@!$@ “,?û/³?ñMº?ï`^@ÝN@C?Û ¦?®46?Ÿ¶~?šÜ?ßã@2C…@!¹Z?í?ímÓ?íX‰?ñŽ@ ‰h@³/?±Å[?±±*?†õ?&z?«kO?Åëë?çTø?ìhä?§¢B?€ì˜?´æb?ÜÐX?ŽtË>Èÿë?’?Ä@ @$–@ š—?ý—?¿r?§â¶?‰õ‡? ¥V?˜|ˆ?¤ßo?Šï?’o?Jă?P §?Ž¥>íúr?d>”?”à?†ð?j +o?ÎH@,@ tØ?òc½?¸@ö?H’"?|1æ?ÙÅÁ?ùNÑ@hç@dë¿?¢ßó5k?9¤ô?_£:?”‘#?ÆSK?ºÈ8?Ÿ`¢?¢}Ï?Œè?Ô¨p?Âmà?¹Ï ?‡¾•?‘\I?½ññ?¸‹2@‘O@þÖ?í©/?ÛÞh?Ñ-³?ÆY@ pò@GôY@1…×?ë“þ?ö™W@ AD@Î6?½2¥?®iE?²ç+?´@¬?£ŸQ?y}õ?…èr?ÉêÄ?ȧ?Š5T?s <@Rà@Wâ?ÖÖ?‡ }?ê‚Ê@$ò:@?—?˦X?ÕŽ?ûj@ÿ=ÇÅ >4…?É%É?íù1?ñb?õ=È@ —m@:W’@1PÏ?¢×Y?¥×@}¡@)ï?î§0?Û›÷@ ãÌ@Cã@*Ô?ÒÎ4?½3>Ý —>ñaÚ?óù?ïY?‘“˜?TöJ?·?²;Y?À‚þ?ß‘ì?Ìz ?B³Š?+"G@æt@ !&?Õªc?¶Ë?è¹@žg@!,.@ /@Oð?Ùæï?Ùܸ?Á“¸?ÂUð@ é$@DA­@+B @HÊ?ä5%?#•S?G¬¹?“oC?¾w?ãá$?ñ®£?®ÄÌ?YqÖ?¯­6@ŽÞ@Læ?Yi|?Yat@=@êÿ?åV?Í¡Ô?¿–Û?£A?¥½ +?²BÀ?·†¬?‡š?r?Éh>úî$?1ã?YŸ’?“'á?ÌÀÖ?³äÖ?'\?™ä>ܹ(>Ùôa?¬Ø$?Ù´?ó9÷@Õk?¼/>?:>?:SŠ?~‰×?‹éú>ê <å¼?u¹?¤O"?¥Ðq?˜(?l‚Ñ?3þ[?…6Ð@!XÕ@$^A?hÓ$?mH ?ƒá9?ug?“qE?²îm?õ >Ý>Ò?Hl?Ü!W?Ö98?Ïè?ɨ¼?(“?…__?fÊé?_f?Jt>ãh¤>€=>Þë>?¨v ?žük?Sˆ?6a?¥üç?¨ó ?Òr˜?É ³?`¥Á?/;>æ/ò>‹œ¼>™s¨>ÔUÏ>ã¥Ç>Ï ð>‡#->·r>ÑœC?g#M?3œ=“@«>驶>Þ½È>¸Ëc?+ƒ?ÆÑ?A>÷?œ¯?¤L¡=í+;‹T>Ë.º>ðù=ZÙ>G]d>+r\>Ü`>ò+?¦þÔ?±i>øÂH>²!>–E >t™#><]J=ÿÿ!={@¯>¾•k>“§n>nMu>G"?ØD´?ÎÇÞ?‰r?7ò[>,Ú >Êö©?Sqq?HâJ>õ>ó•[>ò&>ð±’?Í×…@Ò?§=^>ôêÁ>¬÷¥OwE?àU¡?áaA?s[q?cžã?d]ü?d®!?"ÔW>å}>åR7>åˆ>¬°}='À>æQ0>惕?_~Z?fÞŠ>C=`?ðr?g‹{?-~€>çÚs?ròÞ?è(r?²Ç.=8Àk>è¹À>èØÅ>èúÎ>é\=¦\„<œGÄ>¬ÅQ>é™>>é´n>éÒÝ?+Ö?dáç?-ð<ÑŽd>Ä¿>ú‰Y?"ö?¹¤ÿ?³_h9‡H¨?_¨? Ã>圮>ÊÚ­?9ð’?YQ?o>?õD?”Ý?¥]Š?EOß=Èñö> €>\Á€>“€Ã>ì©?è?ÁƒY?¼>ì>Ô>ìSK?ge?ljô?lwv?lJ?1ßÚ?$5Y>çuM>Ä(ç?,§?^éÅ?“™ ?±¨?Œc>?2$?¾>íU?%²?Š6õ?‚©†?m3?x·z?¿à?À6º?DÛ(?E–?F\_?>§ó?¤4?Õ„?që?„ÚÇ?4×n?é)?Ë’?¨Où?‰%3?]ü?ˆ`“?¦Î÷?•«ä?mçû?‡7Ï?®Å?•ä>î +à>î+Í>øëÔ?°A>î,u>ý,?ãs?á{ö?k€ ?\àí>›&d>„üê?³àÓ?Ó‚Þ?°Q?¢ÿü?…~.?n’;?ê>›wº?F!ã?›½¦?ßØ?;-?8«K?6*A?i{¸?³.}?³#.?ºv?§wY>½L£?Ð@c +?ûo>¥Þ¼>«â¹?ôÔ±?ÿך?—R ?Rc?|Þ?¡ˆœ?îø÷@ö»?l%‘>ám^?ª¸Ñ?쓉@ y@¹7@µÞ?ê²(?¹fV?ˆû?]Ä_?rY?‹÷?$k½?ZÖ*?¦S?’í¤?;£Z?7G„>ðLì?õÒ?ð`ý?î¦l?£ac?„í?0à?4œÅ>¸<>„˜?>j?¢N?¶û?ɯî?_å>:?cóf?–ÓÅ?µ©–?ÀÊ°? âY?Š\ì?­hé?Æ_D?=¦í?&8x?ÚÁÅ?Ú»K?Þô?ÙBm?™ Ý?“}ª?“:?“¾?›Ô„?Ÿ¥§?žh}?¦%?ƒ·?s‡?© ö?¶U¢?Ó0ü?à•6?¾ ?°~;>ñÛ<«˜ ?î ?s†)?)ú*>ó§e?Kæê?‰¤??ðu?b•¨?„ w?’á"?Š6µ?‰u´?a.?È)?Š[~?é‚×?¾]»?@÷×?“¯>±Z?V+ó@—?åì€?…\‘?ˆÚ?“®Ÿ?¤­?î"J?Ñšø?u?‚£?œ?•B?‰ó?£oö@5ä'@*7Æ?v³O?ktµ?Ãt?º]?¸1²?¸!µ?¨Eú?£›*?uŽP?vœ¶?šG$?–n?>ûiI>ö?p²9?ve?¸>ö2ý?«Ô?º‡?Ð[r?ʘ ?¬ô)?²ª?„5i?vŽ8?ÆZØ?ק‚?§®¶?¡n >— @=ÆK=¶I=Œñ‚>à×D>ÿgó>öú>ò¸3?œf°?¹W¹?-">ÔÓ­?®g~?Ò+è?ë•?÷R?!wk>¢1?µ—Û?îÁ?‰$?@\š?e&F?wœÃ?þh2@ó@€0?íÈ ?ŽäJ?Qð½?H(t?8‡?óŸ?B @ t‹@Jv^?æ?~¦ò?¢ÑÉ?¹øF@ƒ@k1?Öì>„ >Ú­9>ø/Q?Šh„?º-?çæ¦?þ½?­Zz?lʺ?ä•>º(?({H?w±?ÙB @ Þ'@g@xZ?©?"Š±?—Ÿ\?Éhå@Ç,@$ˆR@ î=?êù›?²'G?‡˜?ÄÆ?ø’>?ø‘y?ø”'@¥ø@6g©?ÍTo?-z¨?KO‚?W‡‡?À€B?ø!6?þî@ÚB?Ù£¥?³¥²?»Ô ?ºtU?Èõ-?Ò—?€Ø“>ø™G>øšp>ø—|?CgÜ?jœ’?äM?³Íd?Ò¯?ñõ®?hÓé;üÀ?Jù?¿:@U¢@?g@èq?Ϥ?Ð|1?ÓÅK?…4>ømC?ÈŲ@/}:@BÀ?˜G,?k6Ù?/+?¡ˆ@?÷ê?æ(?ÊXµ?w_4>‰ÙŒ>Á¾v? ªõ?”!…?óøq@ +:û@ÝÂ@ åz?çd¸?Ü‚N?ΪJ@¸r@3è@ðV?ãåê?Е"?¹Úè?Ë—G?ÜŸ?°š{?w­‰?Ôƒ{@.‚Á@ÓY@ Fæ@Û¼?ëa?ÖÅe?²+?¤Ú?‚ò?æÖ@X[w@/óú?¿3£?ÏãÍ?ì6 ?Ö»5?©>—?âG@97$@-]@ ²@sc?öÉ{?ëw«?º ë?¦B½?Žå‘?„èØ?YïÙ?lл?##?‘¸ö?¼]'?ÀÃ?ö=`?ö/®?ö'¶?é#Â?\ü?•Íx?›='?¨²æ?òq4?íyX@#”@%º?eÊÆ?K-›>˜ÁÀ>¤c?“a.?š²k?ßw>õ@G?ésI?õ'@2ŠØ@5ðw@Uë?û!?ýó­@d?Ä­?·„;?é™}@ˆ@#@%pz?ÏîG?§V,?t7•?LÌæ?Ž;“?8ê@hc@Iðö@[?óÎi?ÑÄÊ?ÂÏ@@v@.'@ ²?ÓïÓ?¾01?£Y=?ÒWk@ ¸@,¢@(@²w@©õ?÷(?Äàz?Ù @ +,l@Òú?öŒz?Þg?mÅe?ÏÏ?൵?Ô4Û?—ˆï?ž'?¤ˆg?«?Í>U?×ÌÀ?ñý?ñ—»@ Ê%@.ƒ@5ú·@A¯Ñ@›?÷ @P¢@k¯ù?ôJJ?”Ã#?ñèB@ñà?û‚¼?Ë•¥?âØ·?ð9±?ð\q?þP?¼4É>ÿ5F?+(ç?’I?Ηi@LkÞ@KXo@2%œ@$Ò? ·ý?O‡ó@ Ðp@ +O?¥c?šÚ?iZ?WÛÖ?—Ï©?¢Kœ?ºîÆ?¼?>@/17@N±Ý@9@ž­@S[@É^@ûW?íæL?ãyÆ?Óß)?ý»H@%6@sZ?¶¶Œ?ÅH»?Ø?3?ÒAµtö?f•n?ëFT?¹óV>"6?ž·\?p°?YHå?@>+ry=‚a<ÛvŒš?ÙæÏ@mÍ?‘5*>†îH>¿O>ñÚ?D‰?¦Ò›?¢²?“»²?«ä@‹o@j"?ÏÚZ?Ô?À?fÏX?fÀ9?f£¥@4@:-g@€²?Ö¶Q?ÉÉ‹?´;f?«ÇL?¬ju?Ù@4€/@;f$? Ê=>é4Ù?Ì<½?ÝÁÂ?æËÁ?ÚI?ÅÆ3?ÆS)?°‚ ?–¶æ?’]R?zkê?nܹ?d<€?cåó?X~E?NY?²ŸÅ?¿e?²³Œ?뤯@ §+?Ϊp?€Dø?‘]ç?ªÿ/?¢[ä?ºÄ?Å“?Ï­¯?ÚIm?ß°Ô?ß–±@#ñœ@@„@y?ðÀ:?ôã?”¹ë?•üÈ? ùs>ðo ?R'7?i¹@?˜¤8?¦Ãè?²|Ð?Â#Ó?¼YK?¦~"?·6é@ ‘ê@ †?芺?ûÇê?½õ•?¦ ? we?®¬…?Äç=?Â,Ÿ?£rd?6¤>ä¬?ùú?Þå?©\…?°Y?àë^?ýA?Ýç?¥—?š´?\Z?cß@áÁ@?;?¸µæ?¢ÙÊ@g@?÷¡@½?Ÿ7?­½$?ÑîÒ?Àt˜?š&Ý?ªàC?Ó?Ñ.ë?Éå?ÏÂý?÷Ûí@# °@‹ >ÿv™? w8?õ¥g@ A?ìcÖ?ÚC?¿4?£}Ø?¤ˆ?±"Ì?Ái-?³Ó?¹Âz?‘žÕ?2ú@ RK@U–ž@AÌ@"ªT@ +„h?@o?4UÆ?lÇ–?=å?µø‰?Åö“?‘–B?Zqx?F€„?H†=?ƒ«?¡?‡†r?âY ?çôø?˜v~?^3?´?Òò*?ÌÓÁ?Ƭ½?¾)c?h°@?€²Ö?A¢ô?F1±?ŒÞ˜?Ÿí?‘âÊ?¾¶?‘RŽ?Y¶r?YÃ!?"±¯?4.?F‘G?bä¶?ƒC?™\?šØ?ZN?"}ã>Ú‚ï>Ú“{?QC?VM¼?·l?ͼh?šÛW?„µî?e9Œ>Ûx…?4œì@í[@ ª›>ÿ¤?_?¯›8?ÂÛ?}N?:-o?íö>Ý0l?,%©?ª÷ˆ?­?’v‚?Ÿ™Ö?‡°?”›ï?^û°?Tds?^•?W•F>Ô¸!>‘åì?izÉ?‰öl?ºú_?ǾË?`‰ˆ?h¦>³à£?‘â?"(Í?-‘^?V«n?dB>Òœ<|3.>iGP>å—\>Éq>‹—>Ÿª?¶X?#ë>=KU>C<‹?e €?A1I<{ÿ>k÷r>8½u?L(z?Z|¯>êÃ×>èRÑ?Wê$?QQ˜>ª›q>z‡>‹s³>«g]>ÇæÝ>䇫>ø3â? L>^>& +£>_D‘>ŒhÔ>©RÀ>¹dÉ<¬ôÐ><1>f¶8>j„=ãÏG;Ü@FAØ@3}?‰Ì?§?<?‚>þiÌ>ÉÒý=WÅz=IgÐ=;™”=.Nj?ÿ/?²´{?T_>â\ã>Ý­>Õž¶>Þ”i?=Æ? +Fƒ?ß+x?à?(=l>ë#ö>ç>å~>fܽ<…ð;¨&:LW€;°Ö0<ŸY>èؼ>éLs=^ì5>¬/>êtN?|cP?¬$?ÇQj?è%@?¯ôà>âìÝ>¸!Š<[rœÒ@¬>Þ?ÁÜ?߃Ð?’qz?aäô?fˆ?j ¬?/½e>ÔæÆ?8·?£ž!?~ÚÍ>&4Ã>Wç–>˘ð>Üïè?П˜?Ïk¨? +ý>ë5a?UÖB?k[º?'C?~?Ø?+ç•>ªãr>âºË?›?1ñ> +[>¶Iù?ˆªŠ?‹žæ>Ieg>íàZ?°Œ>ìã1>ìÈ;?–WŒ?ÎÙQ?Ÿ| ?lóµ?8É:>í>?bƒ¶?Õ`?Ñ)?¹[î?ŸIU?‡Z? Ê>íR8>ïM;?»Ï?‚ö?r •?m~V?¶ W?½î€?Ü8?€Žw?e ‡?^QR?xÈ>íÀª>øIÝ>ûÃ0?3ë?mÝV? ¯D>ž¨Æ?lƒB?LzÏ>î °>î}>î Z>ÛE?>põ¡>”¹? +ð ? -u>ÄIu>¸Íº?ÙMç?îaB?l¾n??õ‚?°yk?Å@™?(~>8¸H?£dæ?÷9?Ôfò?¶‚?–M[?nÂ.?›0M?Í 5?¯`?nãj?ní?nò˜?}Ó·? †À?šó>ÐÆ>*È.?o'³?mu=Áb?=–̯?ï¹?‡F>9ºs=¿q­=6¬Ñ<Ÿ ):¯E2?w¯?·ÄÃ?Ûfå?ï¶Ú?èõØ?àw¿?gm=§øú>Ùw?U3¥?g3?ˆBs?*Y?Ìæ?ª³P?ùý?çÆ¡?Í0X?¾Ï“?_€O?`bÑ>w3¼>‹Vê>ÒiB>Åw];J~?¶…?Ë0¨?£ö4?—ó¬?`x¾?DÞ?±½?Ó÷Ó?Ø•—?Ý;Ò@·J@1\ê?‘é;Õ¾?è¯?rP?;¢?à™?¡@>³@/5]?Ð P?Ûà3@eÞ@Gã?ƒf?‡I?tTe?r«Æ>©„>ˆ%„?D-|?Wbí?ÂÇŽ?Ë*µ?†[‘?s?| +?zðœ?"B >ú@>ó\?>ö+@9P@, S?éŸN?¯ZË?\MŽ?[X?¤Ù?å¶÷Z?7Ñ?Q~y?Ü3?÷;?˜!»?oŒ@"7L@>¾È?¶U`?wrá?“¥?˜Cµ?¢B)?­‡7?øW½@Áô?©ºŒ?a«a?~à?Ÿ›T?_å?… ?Ÿ¦®?¯DÀ?³4 ?·$Í?GQ$>ýñ?˜šï?Ã?Š¥ý?Uý’?‘ q?¡??ÐwC?ç¥'?àÚÒ?ãZ@ iS@eì?i¢Z>dkÜ?Ln?7Ý?ú¾¯@'ä½@f@>ý?ÀÞA?x\‡?Á¢û?ë@Å?¬žâ?…9¿?ƒ*_?ª?ÉÎÚ?÷·?øtÞ?øvÄ?ÔIÐ?À’?ª“T?ÚŠ@&«k@ i*?ø……?‡èw>ø‡’?)']?UWF?³ÎÊ?âE¹?Žë? u?Sʳ?hvŠ?æj@#„??Ü {?…µw?5¶>øxu?C/?o}+?Þ—È@ô?Ù:ò?¨ù¥@ @*™@Û³@Ó?·œñ?FÎC?ÍB§@AV?ôA÷?Ü”?¨Î2?x;—?“5S?¡ðP?Å ˆ?éä‰?ÅP?¦èè?‹Ý?d?ta±?xÌÖ?<<Ñ?På?WçU?ŠÒú@9y@_vœ@+•ê?ý÷Ú@ +BK@î%@¯?ÝÔ?æ1€?øã-?õ·À?ázõ?öýë@uE?åºq?šŒ»?¯â?Ä#?žy¹?a3o?Áu@9V?îLþ?ˆÃ¥?öÀx@HÆî@<<›@,qó@ÌÏ?¹7?Û¸¡@Šý@P@ Šd?æ0Ç?…úô?´NL@ Å?þõ?§>€?_?]ã`?ƒ$Ñ?èS§?ï<Ç?ö=¡?ÝMT?}Ið?Ž^‹?¿½Ð?Ð)@Äâ?ê´¦?ó?2ÅR?›ÎY?«¸a?ÕWV?ßp9@€o@  ?(ñP??¡ð?fç?!ê‡?„­?è­9?ò|©@Q¹Ò@UÈ?›~?ŠÎµ?‘T?–Tž?‹­?Ž¹?¾q7?Á(©?ƒe?xQ@2G@É(?xƒ@?U.@ øõ@>2ó@ þ@?è ñ?íD}?ó)@ @Æð?ò­)?Ö^µ@ þ@cÞ@·Ä@ˆl?íV ?ÓvS@dX@=Ö@"F?ï.;?ï–Ó?ÿX@õ·@eì´@]9™@5»@4 I@,ÚL@ `?ŽÕ#?¬dk@(=%@ Z@ÄØ@ æÖ?–À±?“f?î0«?ñy&?Þ…?È"6?µ +u?´ß@9 @Rke?ôâv?ÌÍê?”Íw?p¶Ý?#ùR?2?oiÁ?‘Ÿ?ÅAx?ôß6?Í`æ?Ÿ]ô?Ã9 ?ïò`?ûi@ òƒ?܈5>ð”4?]jT?ú2þ?ç?VJ,?z±^@{Ô@ Ï?ï˜?îðw?æš?Þ¤à?Áç?°óž?ëîG?õtB@ |¦@«@.(@@†#@)??Ì£!?Êlè?Æú3?©Z?+?³Æ«?âC?ÊÓ?uA,?Xw£?\ú +?¶®@'@°m?ìÐU?éö ?%?ø,@BhÒ@GCY?¶ëH?–Æu?¼¦w?Ãfå?ü¡0@Bÿ@¿a@,U@?@EŽ9@Q¾?=;?shd?Ä$P?± ¾?8“?\¤ó@Åt@ÅX?ø¾£?ôy ?…ûí?pž?¥yâ?¢“?’^Û?›‚A?οÛ?ïgT?ÄÐ#?z?[L²??\?U?®ú¨?‘»Ý>é'Ç?Y´@J @G2n@,Úº@!Ä„?d¹l?Zs'?37µ?#?Ñ?&@È*?àa?Öº&@7ãó@€•X@Lbä@X?àž9?gbô?†Ú=@ƒØ@]Þñå?"HØ?vú?¯ÐŒ@FÀ@ß&@ Ä6@ ¶?>Zl?0@,Ë´@_¹]?óéã?‰ï?ª¦g?º%÷?µ¬½?ÅÐ÷?¿é¤?_ú«?_â?Vm^?^®?žf?¯›4@ɽ@'±U@ §L? Är?x7?!`Î?A‘?§ ¦?¦ê¦?ÒË?Ìùç?¯‘À?¦µ?ÕK?ñ ?Ô=k?´6É?ÃÖµ@ Öf@%ô?Kd?„7ã? >á?¥ñ)?ÃÅ ?¼—›?È2@’µ@ {?Ûó?Ô©d?äàú?êr¬?ø.c?å[;?õ¹y@}?Ëõ•?–üe?–Ó?[Óc?^ø?ôÝ@"?‹á?[oã?ò¢#@+©¤@PÙ?s Â?J »?ªt?6w¢>“î´>¾[®?ôã@E?à’?«g[?’81?dA?ˆJé?Š{?}Q:?Ó`†?Úç?ÚÞ?Ú@?¾rÇ?£l]?”Íh?i³Ú?€Í?ÅÜÊ?¿Üá?êÑA?ШÏ@®j@7Y@îY?®Ûé?ÈV?ßæ7?ÍÆc?Š±?œv;@0°@®¡?æ"D?¡ë?Ç¥”@PB?áS•?¢êz?¢âÿ?Ö®¾?î¦?¸÷?¢?³?ÿ›Ã@/H™@ñ_?¹Ð?¼%?;ûz?#I=Ô"ô?FOd?£Ï?]ì->Ÿé>äÇŽ?-µÅ?:7?ªÔÒ?¦›{@#ÞQ@0sL?üw)?µ—?óo?“ B?˜cE?ÑÐ?¢§>ÜÄâ>ët?f þ?/…?ƒŸë?RmS?9­?¿ø?*Ó¡?¤ÄZ?ªÒ)?J‘ï?<’­?Ãg>?Üp.?€kÒ? « ?Ùþ>ëùÍ>æù ?/?8·?þ©?Š¬;?8«÷?AUh?=~™?ºÖ?70?_Ž >ãØÐ>ç>àšQ>ë÷8?…ý>ë9/>æ²>þdÑ>¯óÜ>‘C-?9?é ?dÑ¿?wÄ,?f"ñ?bc>ÜS=Ò•Ò>ŒK>æx%>ófƒ>Ñó£?\r?¢6°?˜@M>ÿñ9?Lƒ>œ|Á>“‡Ù?(¦?”q?%¦*? +";”!Þ=W >9`>•¼ç>W¨¡>ƒ‡<‹Õ5ä>éÎ >óâà<=µrÚ>“A>¬bM>ýË€>Ê>*¼Â=†> +ˆ@(Ëx@„?‡˜?ž(>#?º>£¯ >߇ä?,! ?G^?Šâc?C¯?E>Pó>Ú >· g>âN?Y&›? +»?¡¤?Zî?OÈy? ¼a?“?ŸŒ?¤µ§> a<Ãð?ã¢?Z7Û?…pã?¤ü?mTl:Èšà<žP <¦#t>×ÜŒ>Ý®>å'æ>ç‰ ?ÕDN@É?á(ê?±'É?—?aÈý?_éã?Zb?YYZ?X¡k?Tyð>é(>éa +?=C??Yï?iÙX>»¸Ú=Õ€À?™)?[y?ŠX‹?¯Ø)?—}©?F“À?HxÏ?W×?g +P?»š?¹n>ïg˜>ë:Ð>_FD>V‹þ?ÈžZ?ìRŠ?^›=úõn>ïUo?(4?‚HC?°ðž?‰uê?8?3´ñ?l%·?u ö?ŒSj?óÌ>ì[>û†T?Xk? +==ñM>ÀƒZ>çí?XZ?h» ?m·¸?¹?ZØQ?:p{?³>í[?Kï8?œ *?¸4U?ì…ï?²8j>*0>kTS?6‚?!>¬Y>©¨µ?mq?mÖ?óÜk?÷Ñ?¹vj?²32?#ês>íª0? +‡j? +œì?IŠv?mÇ?mÚ?m× >ëÇ>SF>ú$?KH?§ód?–¢?^ú?o@’?•\?’¸…?šQ\?‘\_>î@é>ðü?–`?›Y??T»Ž?Ef£?–íß?¥ù?uìr?MV£?¦E?Ê÷å?”Õq?s@Å?XžZ?9=?™\.?Ö’Â?¹EP?´?hnÀ?"Æ%?3_?N?==2>ïŠ?Ww?B”E?F{°?bê?¿Ê?¸ÿ?·ÁP?°kœ?±Ð5?|G/?ofU>V?> ‘?x*%?¨!¬?ºÔk?rHy?3{0?{Ý(?{7?—’'?¤=>?·=3?ÊäÍ?¡?M§ì?šì?ýù?Íu—?#†?F+?níl?X;[?!é?W’?@}Ý?H^õ8>ñg?¿+”?ïÏÌ?jÒt>ñ[?DpI?qPu?–ã&?©?Š#s?_½m?žô¨?͇?îu1@yí?ÒGá?BPw?X<[?qçà?Qé?e•?ˆMV@ §J@€…?³Ý­?¹ðR?úˆ½?å%>–›ü>·BÑ?rƒr?nb¡?0ÅÃ?9M?0 {?'«©@ €@§B?•ß?ƒ}?©E–?²îû?è­ ?ó"¤>É‹Ÿ<²ÿ ?n4?7 ÿ?Æ…?ê?d¸±>ó£´?Ò¶È@4ì?’¿Y>óÖZ?Qb?(û?´²Ò?ü#p?êpª?׉ž?Ät?·0v?’Ev?\£q?g ?ql?…9$?‹¶“?”·.?©‰p?žßÕ?„å:?¤›n?íÚu?­Á=© +>”·×?u@?uX?x ?Œ 8?Áåw?¶ê2?u_õ?ukh?u|Ù?f†¼???!¨?Gµe?bK'?¸U?»ó*?í9§?é²Z?—˜V?œ¨º?v Ü?O²@Õ@Úƒ@á«@çO>}j=óç˜@¶0@!ã?ƒ'?v…©?¤€?¬ Ó?Ô–>ú‰M?¯“?º`Ó?¹cŸ?¹$?‡ï\?„;Î? §(>öþÊ>"X>Q=@l·@%IP?O¨ð?,æ?ýðÆ@v?œ4?wYC?~,F?„}E?AÞ®?)&y>„Á>ðú?¹‹ ?è—?2V +>Ë?›èÚ?¹Ç?MÈ4?;>ýOª>÷Ò)?š%?´Òx@À”@v)?€ ?ß•?Á)?é–#?Ò +?Ìp¸?ƒ7ã?U¯³?¢âù?Â)?WÝx>ü¢O?Q·?x1º@b @"°??åa6?º2ƒ?Žñm?xJü?è–?¯?·gY?º@Þ?¶å)?·Q?¹Ì¸?ºOB?’œ?ƒ€?ƒr“?ƒØ›?~Å{?xk?ŽËŸ?œ\'?«G?§1‚?Íëw?ëz?ÞFà?×/}?±]å?• 7?oRE?ES°?u>Ã?‘ª±?‘Y‚?Œ5e?Ì„»?üm?˜*#?'¡?´Ÿû?òÀ³?¼Ø>øfí?°¾—?ðü?Õ%?Ëw2@-f@Q@1Òù@#úk?Õò‚?–|@?ŠY´?xBV?Õí¹@ æ ?Às?…¢$?û?x)(?ÅQ?ø!{?Ük¡?ÆkE?a¤?>ÙQ¢>‚é4=!ì?V(÷?¹¿Â?•Ý?nÇD?Ó°ï@ ë@aÎ@8?øh?äÔî?¸g‚?œò9?ã£ò@ x³?öØÔ?Ö®@ÖÅ@9¢@ ^„@ü?½–E?M?¬?À¯@*ù?œX&=fï?_©œ?÷Gú?õ»J?íùŠ@G´@>>@(™@ +9ò?áб?R€@§U@Wü@J:—@:>?ôç%>Qº¥?1`™?Ïn?­4+?vp"?º—å@$Tâ@r?€)R?œzÀ?õ–•?æ…«?´Òá?³œð?¸|–?ÇŒÇ@=l?ê.O?MžÓ?n…o?ÌÎØ?Î*g@ …R@#i@]-¯@NÂ?â>£?á,?£ä?œI?¿©?»Št?u|?tË.?Äç?/åW?â¬?àIž?­i³?§sX?ñ:*?ð©@ 1¼@ +æ?Åi‘?«Ö@,ÿ¡@P9?ι?‰“r?˜6?£Ê$?‚¸{?lµE? À>ûY5?]:$?i?ç0ö@ pË@q°@$t—@^?ñ>Õ@(uŠ@g>-@G¤`@²@@W.@ ²?òn°?в?uÿg?®ÌÈ@Ÿ @É’??Kg‹@ËÁ@aú?û[½@SV?{{ +?„ïg?Ü(Î?ߨS@Vq§@`¨b?ÞS)?½l ?èƒ?ò–@:º!@Dš(?—·?0?_y¦?lHª?Š…ø?˜žæ?†NŸ?0%?~á³?p:?®wÙ?ïÝ{?ÃZÓ?xbI?qþ?n/?¤0æ@ÎË@ŽZ?Ñ›µ?ÝôP@(M¸@"͉?îòH??ü/Ï@¼i@ Ò@¾ê@ñÎ@ûg?Ê*q?´¥?æ?ýæÜ@Iä@7c?¼Ô>?Üd?)sQ>tÑf?8Œê? ì­?Ío@C£?온?e?‡»?nò$?”ÊJ@5ê@ VÈ>ì‹>ìyÌ@0a?@<{?à­M?½Á ?Á*–?Ì6?Ü@8?ã÷¨?¤§­?mÈ?õçP@3ˆÿ?Ó˵>a X?)Ø(?°T@?¨4?“ö(?«æ@Åq@ +:K@Y@ 2É?ëš?ê:G@ -C@ gw@Ÿ=?ö=?¨u?ŒÍ¢?¡ÎØ?µÅ+?š'Ò?ii?:?·Š®?”ºn>ïG?2Ê«?ûx?üØ5?Q§m?‡¦#?@Ä@?0\?Šáò?™2þ@Ü@.h?´}ì?,½?0Æ;?ŠÅ\?œDþ?˜Â?Ήd@Ûô@¸ì@.8?ù‚"?×X?^§_?C¶à?V®?Îí)?áµÙ?¶‹? ÿ?ÛÓ^@E>?ð—T?ÀyH?¶}o?Ô6q?ܽç?턺?è—Å?åZš?å>?O%|?[[¦?l³>?NÛ?´}Ã?ÝŽ?Üò1?äz¾?ÌO?¥ÿ ?ªZm?©M ?–G˜=¸À‘>Üš?£=°?ª´?è&@ ]g@q~?üo?ŸW¥>æšç?(¨â?‹óp?ˆ'>⡘? -³@?úøî?Ž!°?~ót?€ø-?ru•?µÙÉ?ØK§?qQ¹>W¡r?#Ïñ?К?眊@±½@@»?ØëÕ?Â%'>‘8ž=§i ?+»$?`¾?Éü@ Õ@8Ü?íØV?Ñ`Ø?y¾?nGë>ý/&>ãÊ?¹5a?ÔT¶@+g@-|(@ u?Ñ‚%?°ˆS>’ÐC>¨?­¡?¦í˜?Ù†Ê?Þ`Ï?ìš ?è(?þ¾á@Ú@G™?ÈŸ¼?ÂM8?_‰_?t6?Ëôè?Á|Å?Æ)Å?ÄG?ßøW@l+?ü˜x?Åœn?±ðf>æÙ×?¼˜?°í­?¶ƒ?âž±?úÍa@ +þ@,¡f?ãžø?Jæ?9ª×?ÒãÖ?Æ«ž?´•)?º@f?’!:?ƒeÝ?Á¯û?åe‚@D½@Z>’@+!é>Úëâ>Ü»Ô?§´?‰ÃE?éÅÃ@ #Ž?ê>?ÍþJ?Ù¹·?Ñßt?ÁKÂ?£©¡?£™¾?¤£V?°UÌ?¼ü?Çé•?»k?£]þ?m>5~_>¯¥É?›Tu?§8ã@|‘@8y@ +¬ ?Ùq¶?ØÚÀ?Ò b?Ê@e?É¿ ?Õêv?© +v?ŠkA?™Eg?¢äæ?„g«?a?‚é??¬ýP?¿Ûü?¢ÚÜ?¢Øè?–vJ?ƒŒ ?ùé>äc}?*ÊÜ?†uZ?®`I?¿|Ý?·›¡?’ž5?˜Ð[>‚{²:m®\=³v>…:ç?ë‘?91?o?‘"?!„?ÅPj?×Øe@¶@n?èUË?¹Qì?¹·á?›/À?‚D…?œ9©?¢K™? †?”dV?i¥(?Z߇?\¿‚?r_Æ?L?‰í'? º?¤»ß?¤Ô%?¦Â?ìˆ?ª‹‹?ŘÔ?™Žõ?p¥1? —\?Û²Ô?°òP?E.Ó?[pÂ?ã*?ÖRl>µdÄ>³Y@ 8@&¸4?¹rð?_?8»->û/>ö:ã?ñ÷?ŠR?a;U?Mª=Ñ=® ”>Ü€f>âΗ?&uÍ?<òÔ?±®J?½™?J~>>óGU>ÜÂ!>¡“1>³ƒ>æ‘T?8R?Ÿùˆ?t»±<_=I¬Ð=šDÅ>ìÂ>:í >±Z?@§?S|?¡dð?«ÏÉ>å%ª>Ë™¢?/Fì?ß;‡?z>Í&=”ä5<™é+=s=˜=éÉÃ>xÏ>ü†Þ?)F?R¤±?Cí…?ft>ÅŠr>g?Þ?¤ãŸ?r? Lj>Ok¡>–Fã>ßlÍ>­g>kž–>•_!?Z?¼x>Âìn> l?ûÊÜ>÷>ãÕ'>íVŸ?nËè?nÄÎ?VX†?QÂ?^¥O?et?1g~?¬Ø?#Ø°?TâË?=µ«>Õbi>ÕïÊ>ç>ç2 >çW§>ç‡+?T?›Ç>•”½=î".>Ÿ3Ù>ý‰|?NP=?¨è³?ûB=ÂV«>FŠ~?\"C?[¸ˆ?[H?ZÐÃ? ë?ý^>ÛÎ>Ç0>cu >_4?M6?à4K?‰¿³>1°J>Õì?jÓ4?[Z7?)PÙ?†ì=ßEX=çšH;‚Ù\?“½ò?§Ì„? +Ž™>¤D¹?<¡ ?kÍc?™®¿?°ñ3?’ÉØ?l Ž?,lp>¸ ?INÔý>¢[ ?lu"?hº>ò' >ëP;Žz&?W ¸?yÛÃ? ‘Ì>Åe?˜9?$o2?"¼ž?!+?_í/?Šð?€ ?m'H?M«”?Pï?8ø?„Ÿ??†õÿ?™ß?“y4?DìÃ?]—@3Ù@ ˜7?®•ˆ?­Æ?rY>ùߦ?Ïin?í°?”U0?m»8?•Ê>ñ°Ø>DZˆ>ñ5Ú?c+¼?Ž?²zZ?ˆ¶M? +¯?å?'´/?Bk?…¢?Š./?÷ ?˜d?Ÿtµ?žHG?W?›ì?š¹¡?™„ç?,‡º?&a–?‹Úy?”¦Î>ð‰ä>WBË>pvI>?Êt?bû£?¢|œ?ÆU¿?•Ï?&ß>?.à5?Ká–?UÐ?iáV?'+Ò=Œ¨„>“s?§è?°‡?äÝÔ?âA ?o0?qƒð?íxT?í)Â? +ôY>à ì?ž†±?¬ö”?‡å;?.?·ö>ï—?[Qª?†èô?ˆ[;?‰Í|?}$†?tÃÈ?…ZJ?„ˆJ?ncs?bnü?D¨‹>óØ +??ž£?¹‰?¬.?‚ë7?‡”)?z/?ž'q@0R"@îÜ?1š’?<Ôí?D§3?;d ?±÷6?´‰¬?‰‰,?‚¹h?j¸>ùWà?žª?´¾Û?´ ?±DÅ?=“?S?³(—?éIõ?€ü?©ì?X?N6¤?8?-ú?Ç·Ì@Å?×ï?qÅû?h¢¬?I0•?›ù_@E–?èù\? šÖ?ª¼Â?µ£Ä?›vT>¥åó>»y¸?Ob ?HÂ>«®>¼S?µôÆ?·G¦?êð@?í°?û¼?ø}Œ?•g>óhI?«¯½?·ëQ@"qS@'@?ÂZ°?¥äù>ý­>º6©?A'?U•?p*>?†i€?É„þ?Ù”„?¹½|?¨Uì?ûM@rî@ÑÅ?÷?Õ?·1?‰°ü?10>õ•? Æ8?˜·Î?¦Maøv>Ä’?R?N‹Æ?Kâ?Vrñ?“®?•€|?—T?ˆ6Ö>€D­>³jq?ué—?‡Ú©@•T@x_@ÑÝ@)t>ºŠ>ÑWN?vF³?vSR?v^¿?qì…:ùP›?ûФ?úœ?HNà?-âŸ?À‘?Ó²¨? ]G?Âó?Ñå¶?Ù‰²?TZr?>…?c`?]ØP? Øû?¥"Ì?XHÀ??Aö?ÒØ?à¶R>Ô(ï>¥]?£K?¾þé?èk?ôäU?>Ùñ>÷·¹?dÃn?€_h?æ%¯@ý?áT÷?Òºð??÷èû?‚?MU™?Nç)?GNà?CQ¢??Sø?x½?™ªÞ?Y¨É?Dí¡?žL?·„Ñ?¬—?¨¦¶?`$?B©&?m4?x6Z?ºq¨?É­™?“P§?|`?©ä®?º8Ï@1Ø„@KÚö@F¢H@Ad@)Ð)@»P?ñü²?ÔaÈ?‘ª ?€½«?k±ª?fW?`å?šîÂ?´<[?ÂB6?êÖ?øZœ?’ì?EÐo?ÀõÎ?är)?'°§>0ƒ?¡c/?è`]?§[’?£ç?¦ž>?· +ã?ºÝ¥?À>œ?J>|+@ O'@I)W@+'7@$ƒ?áæ™?°-1?Ò[E?àö@ ~ú@æ]?Ÿƒ~?,¹?[‹ù?xØ?µá?ÙÝk?æÄ?í‘F?d*>f$²?uÿö?¹í¼?ßøÄ?öu@,@,è&?ák{??Í»Î?ç¯v?ð¾?÷«z?Ï’á?ª—Ò?¼P+?×Y?üîc@ù•@#&@9“™@œ:@ ý@;1@xú@BO +@‚¿ñ@%×{?€ƒ?:U?0Ÿ?J€ô?ˆô?®ÞØ?ÛøÅ?Ö—â?ÉÕ4?Î é?Ëî@:ž@a„3@_K]@Y%ò@ÿ>ö†Š?™é¨@]$@SÉ?–Ž;?Ú'@:%¬@"½û?¾´ ?“¶^>ü^×?o9Ô?ðA?û¨Ü@‡J?ëÈà?^l1?‹ŽÚ?ÉŒ$?Ëg?ïRé?ônƒ?ÿV@½É@f¨š@Xêé?·ïô …?“‰·?©rm?Iòß?ʼn?© ?!­?“úŒ?±%?Ôñà?â"ƒ@ Q@ L@Blf@_:ù@Lk@9€V@B ?øã›@ §¥@»ó@ÇU?ij?Ñ%s?êD?îÏÊ?òS½?Ë(?r6?›ÿ?úÈï?Æ¥!=ó4C>ƒD%?OÃv?iâ?˜ø?“ +D?^Ђ?X>¨?ÇÜd?Äz}@©†@ z'@¾@Š?ø\?ðÖL?ÿÔö@=;?¶_â?”/¥@Gñ@Ñ´?ª¦ ?o«,?Lá?&l?…pë?¨Û?Ìj²?øåå?ÛÌS?µ¿¦?ômÂ@. @”ø?G´?f?ï#v?öM&@ÕI@Åá?Òº&?ÒÕ˜?‰v”?Ó?1„¦?õ@ «§@ Ø?Æ¡F?²—«?ßÏ'?íñ?wy?2Ea?4Î…?)—T>áí›>RíÕ?a?Ú˜Y?ê{Ã@½ˆ@?ìû˜@ +øz@Iâ@E–ñ@]¼³@Mè›?¼5?…Ì @"û @"U@É…@‚ã?–º?kÝý?§¢†?¶“?Ø}©?ê0V?²hù?—Sß?š?Ó +?äÃ¥@ 2?×à´?7€•?l¸…?ÙSÜ?ÛTõ?ÁÌ6?¹£=?íŽ@?ê:º?ïª?óŠÌ?¯í˜?ªí ?ÓŒi?ÔˆÔ?–Z!?i„“?W3?L«?¨w?ûh?í¡Û?ç0Z?ÀÃ?)|i?B?"?Xâ?°Ë•?ªŽ?¡œÉ?˜¡'@ E@$¨µ@ +\R?éýJ?Æúñ?§µ¤?£>?ž† ?¢¤V?ʹ‹?﹯@gØ@ Ô?ã•C?õð‚>}uN= «á?½TŽ?æbü?ÿ÷'@_Ø?å §?Ü@»?òÑ•@?ò³E?‹I?¹ó?@hU@ R?åD€?å(?_ï…?E +>@À @ý»?ú7r?ò(?îqÖ?äa?¾”=?r¼?e +†?m6ç?‚+‰?©ûy?–¸?‰‘¶?2>×Êy>œü?%û??T5?_}z?b:?‚äŒ? u¯?¡6³?§l8?©kF@(4h@#™?ÑÒ?ÀQÚ?Ù"?áÜr?l]?z`K?™4?Ÿw®?­É7?æ{@?ÊMò?¨ »?·§>@*]%@:Õ€? 4)?Pl?§É?à *?â*k@ [#@Žv@ïT@=y?§ßÄ?§ÍT?Þøü?Õã?µ–A?µ¸ù@ÖÇ@$xI?Ý T?7À?páƒ?°$Š? =@B-6@:m½?’¸l?G8?§ñÍ?½&ò?»=b?¹6?¦õ?l‡?†Ã?Û§©?ÐÖ—?…Ôø?÷^?Ø ?Œ9Ù?QV¡? í? ? It?>]?Òÿ?üü?õàŸ?êu§?®¦3?¥j@ì;@4¡ˆ@s+?ÛÔ9?¿p»?z†)?L…@Ùê?þ]:@ +‹Ÿ@6)@Y@õ)?Ë0A?n84?ž›i?³Äq?£Ë¡@¬´@¡ã?Ç”y?°XÓ?Rë×>ßJ?mÌ ?Ú7Â?Ê$E?€ha?†D?„K?|Ì?€ˆ±?p6?Äx@9?ôt‚?ÆK?¦© ?ˆ{V?‚z?k¯ß?…Á'?Ð1Õ?Ù¿¾?®”‡?‚9¾?‰îP?ƒn(?Šb?ø0@(Õ?­ ?žRj?Lr>ö¾T?>šæ?3?‰Mœ?ŒJU?’`·@‰@ ?<”?OÜj?C–æ?7L³?CŒT?ÑÁ?›Ç?&©?>Ý€?Y@ÿßt>ž¯?aÑ"?Ùˆ?Âxµ?Š[v?{Ø3>Ý +>åq?i–?“l·?ŽüÉ?†`i?±§ç@‰É?þzi?Rs?ZÔ!>ÿA>‰^?t†Û?‹þS?2Ü>Ûû>î>f>‘e=É©Ì>ú¿ã?p?ƒƒ?m’É?dÜ7?~$“?¸q?¾¼?6öý=¼Vx>áè°?]pò?pœ ?Å‘«?ÙF‹>ñ÷Ü>dEç?â/F@ ƒR?è +~?Á›?£Ÿ•?‹§ã?|‡Û?`¢0?cuÊ?d€?tpÜ?Á˜§?§\=>Cô&>`dŸ>Õ>Ž>ã‡?ï¥\@%¶:?Ÿœ*>å‰>åj5>åϼ? Î/?!“ó?4ˆ¬?gƒÒ?gŽ?e?7>²ñ&>}Ã\=;ê>¤ðK>Ư>ûù¤>ïÄé>í…Á>éuÑ>ž¬O>ט|>P™#>< +>ÀXn>ÝA¼>ò©>à"ô>Ä~Ú> d´Ò¬>ˆ¸>€øÿ?B¼?®[?2¬=n/?ê @ +í?Íýc?‰C>„ìa=²¸ã?*$?¤7j?º´W?%¥ÿ>†žê?K”?L¢¢?M§ê?N¡ˆ?šÆh? ÄÚ?.ÝG>â¸>âû“>ãBÓ>£!=k;ô=ïå½?S>ÿ¹B=ñ£=Ñþt=Θ>=˶4>¤®y>åÔ >ë2=Å8=ªZ=DÖt=E~÷=F›*=i—ù>æ“Š>ç±?“Ä? ¤-?l^Ú?L˜u?Êö>èm,?0Z±?wïZ?jˆ?HÈ)?"ÔŸ>÷ÿ>zz_?¥ÿ?¥Àü?Zb-?UµY>BrK=¬Ua>™ÜÜ>¼)ü?…vÜ?¼-›?i‰>µØí>’€=>aÆÂ>Ñœ¢?LÚa?#£= Ê>¦¯Ö>¦4t?gùÖ?kˆ,?—“>ë§q?Sp??kÊT?„¤¯?Œ~˜?Sƒ?%¼?®ï?@?¨‹?+aÈ? V>wý†>‹Ïœ>ì§p>ò½*>øò_>ýó*>S«1>N¹ÆQ>¤ÖK=y†>7h{?aÍÇ?dêp?myØ?mƒË?m‰i?m’H?ä‘è?í V?ˆã1?m®ï?òÞ>í»?«´?×Ѥ?™S©?mÖO?wÎ?€ã„?AßL>íòj?†´3?ïxÕ?àÌ?Ìf?Â?²“4?›ˆy?UÏ?æ¹?Vñ¶?câ6?²³›?²¤/?cu>ì?¤û?²Íc?L1ª?(Sa>–º>00†?uI?Îñ?Š§?»è‹?àÌà?ÿeN?æai?ËŸ?üí•@ ñÄ?éÝA>îã(>õF>ýý|>ü¶¢>ûÒÀ? +OØ?oÀ?‡Û@uf@ö¨?á0Ó?ܵÈ?<¼?pÊ?h«(?od…?Z2³?RYŠ>»æ{>‹%a?œga?Çá?ébú?óøè?³Sø?‘åp?š¸$?™ Þ?n»?7¢Ï?#—? Æ?-¤ø?QG?€Žè?É{¢@ç–@b“a@Aò.=Ö›>›;?æ M?ásð?ž/˜?¤S?çœä?êùû?€Ù°?qq¥?Gâ>ø‚o?Õ²9?ìì?âšÿ?Û«Ò?ê5ø?ñ%m?‚ Î?. x?€?>ñW¸?_¥?"ç×?´U•@-`?íÑ?½±7?§®w?–ñ?¯Ûò?ÞE‘?´ë?ÄÃ?°’$?æ>ò>—?a^?‘«M?ÅŽ?¾ ð?½ h?»sü?ÆË@6 @4;\?òÙ¤?ðIÏ?ü3?§%?ÀOw?Ë¡>¨Jè>zÚ ?†%4? +æ?¡n-?¥_A?!ü>óx0?¡?œ†M?lð–?Zj¾?žÚ?·ÇŽ?“é’?9K?•&?Ÿ‹?ÓäÑ?ô?‡Àä>ÇH±>õ›¥?~8?Ȥê@#Ýd?̧í?Êà?¦±Ë@ì±?ÞCë?t¾?«ø?ð«;?¿µ?iÁ2?Iç^?÷—?‚”•?ÛÓÀ?£?\>´q©>Ôêì?"-y?;¨ö?um?<(?¿²X?¬·?uŸ+?Oü>Zx÷>Á*_?’p?—ú?¸i…?¾ž?ñƒç?ä: ?‚N>ñÐ…?c¾‰?eÉk?` +b?Vã<ðU?=¾Ò>÷jî?>?)+?½j?¸îç?·ˆØ?v¹U?{Œ$@Õø@x?$¡?#õô?'½ñ?+’»?òö¤?öùÅ?÷‘?÷ 2?´™?§-É?äñb?æw½?ºm?¿Œ?›ÄÙ?›·œ@6`R@? +£?ƒß?ZÂÌ?Û?íž?ˆ(?wy.? +ßê>÷›I=ý ½=ÎNn?Ò?:'V?¨û?˜Œ¥?jü[?i¸’?\ƒ>÷Õ?cãm?wâ«?wæ‚?wìM?áZ?ñK ?8û?>÷ÿ¤>°RÜ>©¸«?Z¼²?x ?Á>¶¼ç?U¦N?xÓ@þÃ@5IC@0 ?ø'‡?M+?–$?²›?×Pl?¶TÛ?µ€?ÛuG?é5)?ª?sˆE?«—?¯Ò7?Å:Z?ļ?¢’–?™ƒ?0¨¶?Ô?óœ@ì,?ÃÞ?©·F@'@'ÿÄ?º}m?ƒÞ¥?/ )? ›h@ a@:#^?I!Û=¨¢ð?Œ×Ó?º"¡?{ý?F|º?ã@ ùI?ñ¹»?äâ®?Ø™Í?ÓüË?ê%x?öù‘@$e@0?Ômß?’cL?ê?Âz?€¹8?wð³?­±W?Âf_@äB@1X?å0‹?¹õÂ?ºò?½|™?È #?Óã@‚@ 5@9úÇ@S±?ÿ³@?©Qþ?® J?²ó¸?“G?wo!@'BÓ@d*@:r`@%äØ@ ñ?å]@-‘@Ѷ@¶}?û΄@ 61@i{@¥¦@’,@‰M?åýÑ?̬^?¹e?ÏÞ"?äq@<ã@G@,ýÉ@BÍ@ò@ª?ì$å?–’#?Ž†©?–Ê ?µü?ÞÚ7?˜„f>Kõ/?qõ´@6@$!c@2¨C@.ª @0¬g@Æp@uò?Ëõ©×?sé<@ p]?æ_ ?1t"?@Úè?@â4?ƒká@£ê@ú?ÕéT?ÈÉ'?¥p?³"n?ñ5,?çÄ?tÒ^?„‚@°ÿ@r?'õF?Bs0@h&@`¢¹?þÆ?ìµH@#Ü‘@(ƒZ@&:/@$2 ?Ç'?¥$?Ç‘¢?¾"®?¼)6?¼Œ@"V¬@6µ@‰?îÆg?¥E?%‚?¾Å2?Ø' @ 7¹@ë?íëF?ÌÎd?¸ºT?œão?¢uÞ?Ÿ!f?µÀî?ÙZú?Ø`?ÈbŸ?Õ2N?òˆÛ?Ûåò?±#Í?¢âù?ŽÀœ?‘êž?9?wʽ?…q4?‚OÐ?—9Ô?¤H¥?㛬?Üšs?à–å?âR»?‚z,?~*?²Ôd?´£ê?êë?‘w?Ú¡ +?ðŽË@‰¼@Æ@œÌ@\p?¯Ëf?g—m?ƒv?ŒÞ?Éñÿ@œ@ÊÅ@)M@F?ïÑE?ðå=?ù†`?Ïs?V´I?€Ž+?Æ·0?Âæ?¬Å*?»ðÜ?æ‰+?Õ6"?G?_Ä?²o?²¿X@)I&@25@qˆ@˜@r¶…@ë?é8?k,!?¦þ??¹±Ê?‹R1?Veo?oK?‘dî?Šj?mË?šî ?ê + ?ýÑ@}@ {)?‘î?¶?þæ}?÷iS@!°Ë@#¤?é…Å?î;(?»ð€?¡Hú?Í)Å?æ ³@$@-Á@C‡@Jgá@ +Ú?®äë?¶Ý_?Ãu§?¥ïú>ê¸?g?’lÅ?§ã–@íU@€@i¡Y@bÑ£?É›é?»Ž”?b÷?iÈ?“ݽ?®ö¢?¥?@#6?py>é8”?É’­@Hž®@÷?sê–?’ž'?Æ ñ?±£ø?h†•?ipÒ@v#@[ß?µÒ?¹gž?Ϭ?Ú³ô@*g°@J+@?ÞÈŠ?Ç…?­}@?´«?µN°?® ?ߟ.?à˜æ?%8ˆ?§W?£C?¬d‘?ܶS?æM?ï¯ö?÷h ?à÷³?Ë;?Æqø?Á¢E?³±¬?–B†?¥Á$@ ê{@8·@  @ +‘_?sö°?dæ€@u³@º?«ïo?e?®ìz?Û$š?ö<Î@:?Û”œ?L?)¯d…?"Á“?\ˆ?4óf?bÞ@?¯´R@P?Ìñ?5›¦?w É?ýµ†@½@!É@èé?íAc?áÒ±?˜¦Å?a›K?ר?—̯?Ç|’@‡›@]?‡ê?Zƒ§?8ö>æÕW?•HQ?¡*@?­ÕË?º ?¿:P?ÄtÄ?ëÆb@{@þ?¡yå?§N9@ +ýØ@[™?¸Wð?§u?Æ`Â?ß™¿?Å´”?‹±?‹Ð¥?Í +?ÆxJ?2ë?F×?_Ñã?^7ù?^Û?^ y?† +m?e‰?‘Æž?¦<¯?š¬ ?lF?ƒø*?è%?×P? 2Z>Ý`?KjÝ?u¿é?Ÿuï?ÙÊX?³(G??RÙv@2.@Ku?lÿp?RƒÒ?Ì'ù@èý?ó Î?Û¾?×ÕV?Å‚D?¼Ê?è +d?ù?ä@<ð?@L!l@'1V@ ^î?øÂÕ?Ñ`È?Á–?´m|?¸çÀ?¦¤­?½í@Ý™?þÈF? ñt?Y|¬?¨þš@×?øÌn?ÌH§?º‹ä?ÊO?¿mÏ?×+?Ûõº?¾ 1?¯Å¬?»žŠ?Ç~«?ͳf?£ý?£¥>c)ù=Ié©@[l¥@žcj@E Â?”§„?Ž˜¯?ˆŠï?£Ý?9CJ?ES}>vÆ;þÜ?6íû?Œéî?¨:?áS?Í›?’co?†)°@=1@"f?&½ñ>Ô¢?uªÌ?Ñùq?›·Þ>Øùš>Øq>’ú“=ÀB;?µˆ£?Íî?…=M?4Æ? ë?Èœ ?Óf ?Âñ?Ï{e>ÝsÃ>ÙÐ?¥RÆ?¸È¾?‰/£?YÓ÷?sŸº?†¿û?d·>é>>ä w>¹ >ž@Ñ?(•u?\f?: d? ö?®¾Á@;€ @"Za?L]$?Bzç@Fµ?ù‹…?‹° +?Jc¾?þý@:¯N?þ§=?Bfö?S‘?’v>?ˆ‹6?]Ùl?^¿?Ñ— ?Û,*?²€??³õ?·o?º®ñ?†Ù.?ABª?lðª?vµ?€ol?¨˜? S'?ˆ»>?–/»?>¼o?Ï'>å’ô>ã–O>×xß>æ>õæ>å>r¥>FûË>ëH?@XG?VŒ¡?g?C;>ø/%?H`å?´³1?ˆga>Yç´> K€=ɧ?k÷?^e5>í½¾>ß÷<½fæ>ðq>è +9=h=UÞ>ò±Ù>ó^)>ô +È?zS?:b1>÷ÔW=ª{ÿ>íX#>·~0=*ºÖ>/R=>%‰?Ë? §?{"þ?åy>€ÙL? ¦{?Êxm?yò)?¨Æ=Á§h=ôX>híå>ÐÔ¸>Ú›>#T¬>iE?c‚>ç:ÿ>5ÅM>>¯?u¶-?vð¥?‘¤Æ?–2/>ÿ‹é=–é¼=8ܘ¥Rî>åÍ!>Õvg>ÆV>Ɖé>ƨœ>ùã¢?F¸º?G´R?VêN?Vð¸?ªÈº?­ß1?+ôèÖ>èn8?4žH?h¼"??Z?“>ü—ß>¿G? 7?¯@?¨ðÚ? h½? &l=!?+þ£?Ov?tu;?ƒ¨?fZO?L«?NÎ>©ì¿>Ø?è7?=‡?">ù?5y?‰ß ?†Z?kuÌ?jÿo>ð­Î>ë«È?¹l?™d=?¤›>ÅêÀ?#Xœ?7ã)?-Šå?,öŸ>ã÷>fö >Þ†"?/­(>æZz=b…>Nt>ˆöÝ?&®C?$O®??‰ð?AÞ„?›o?‚?.6{?#Jû?è|-@n?_ƃ>²•Ï>ÐÇ>íh?¹«?#q‰> LÇ<ê½}=m.Í>PøÀ?•F>úV×>íg ?C?v.2?p&?m|a?g°‚Tª=4òÖ?TV?†Žô>Íç> çî?“âk?Õ?¨?B°{=éü?ÃîŽ?V‘S?ƒ@Ø?>œù? +ÿ?*øÝ?SçÚ?(ÙË>Þ“ƒ?!a¼?nÞÌ?Î?îí™?ЫÄ?nûX?] +Ì?…Ÿ?1ÔÐ?…Ï??ˆ*>?[d®?W±Ÿ?»x?ÒÌ@ Û…@¼_?E +> …?QwU?:Y?ø"ë@??ß­>â£`?e³ ?™¤n?ˆÉ?_$J?6v7? \õ?<äP?Œ û?—C?« ?˜a}?h‡¡?>õ°>ð??'€?¬(Î?“!Õ="Á$>ºb?xÆ×?‚­t@_f@¬d?ìJÎ?ço>mx>J_@v@+J•?ƒ +F?C‹?»£?•—á?dŠ‹?Kµ?ýÔ2@l#@Æœ?û©v?¶<î?‘ 9?©~£?²ÎŽ?ƒ…~?,„?_õÍ??¤Xd?ËW?Ý\ž?ýˬ?Îm¾?-)„>ðad>È/Í?Þ´’?ã¡W?è’º?ÿ\Î@5|@/cd?ò¦&?æ7>òÁü>ú/;?9?‚i+>ÍäÀ>Àyl?,š7?9|Ó?Ø#?ßë=?>óUG?8Oú??Mþ?Å>ûq-?UÄF?je?;6Õ?+78? Û/?¹Á«?¨C’?¬ƒŸ?¡>,?š,Û? ¸?›#?…G=?tL7?‡=?Š¨ü?K’<(Ä~?: °?¶Àz?~÷4?€¤?!˜? Δ?…—å?Ó@l?Ý[5?õ0?³”>T[>È€l?I„?‘{í?æcÔ?Ðe?´°?Ì‚?íëÌ?·\>õšÅ?,U?¢£-?¤zŠ?¦O»?Ñ>¼@ý?BEY@UÊ@A¥?Pè?<Þµ>3•?v:}?u¤?r¯e?a°!>öa]?ÔÃ?¸×l?¼ºT?Ü­7?Óæf?­Nœ?­à>ö´[?ÐÊ?®? ?£U€?_œ·?sr?ºí}?¾ý?˲î?Óù?ñ‘û?÷ŽR?Lo6?>X†?6·:?/û@7ÖP@AÔ>“Š•=÷q‡>ìËÅ>÷c¹>÷m:>ú£?­4¶?°;>þM¡>Õ×l?Ëí]?Ò‚×?ôÏ?w¨8?!:>÷²í>N’4>B–@ Þ3@*ù?ýÊk?ò¯à?áN>?èÏ'?(nä>÷æ">ª˜È>ŒÀ·?^Ñ0?wö?Èïv?Û¥º?Šy£?xm?®F•?¸Ì±?îÕf?ø@M@åg?XÃÉ?!%?õÜ@í?í_,?æ€U?çb—?ÞÇ8?±Õ"?°<@ÞÊ@ ??šTä?ƒB­?0|? +ÜÏ?Ò¬@›W?™V’?x'ÿ?Ö1Ë?âÅ ?Í6?Å´­?¸æø?¸®½?ˆØú?€/˜?§A/?©ºG??É›?#¡2?èè@‚}@ ˜ë@'0ï@á%@ÿØ@!©@!E¥?¿%±?œd;?ÍE?Þì ?¡kî?‘ì?°èx?¹é†? !¸?’Hä?â©?þQr?§ÃÌ?k]@Z%:@‰ø.?Ìšt?KŒ?™Ëë?¹¹?†éa?tü@  æ@MV?¾É?-0R?1ý=?6ÒM?ÁQ¨?é[Á@C0ã@yèÖ@%Ü6?±¡¤?üƒ»@±@°@X“?ðO?Ããl?Ä>ð?Èh?õ @ +­p@*Ã?ö¦“@õp@.Öµ@Å?×Ði?åÂ?ë¼(?õåÊ@¹v?­®P>ö=ð?Hk?ŽiK?³'?íY²?Á¤=?v2Ü?€Õ{?ŒN ?\ü“>é¶#?%ï¸?UÓ7?Œ›Í?·¹m?ü4¬@NT@¤’?2nk?4¡?[S‰?aê²?’´”?¶‚C@«€@ Ä?4ý‹?DË|?ºæŽ?Ȫ+@õ|@ +“?ô›Ï?úÒ@¥@¤ç@*eÑ@0ƒ;@@¾@„›?×dõ?߸ž@ãé@ @&K¬@/BÚ@L†®@Wõ@Fš?í +?ò‹Ä?õB?š)t?‡3.?|=?s0?¥[ª?¶L¤?ú!@ =ê?µ[™?j_Ù?FÞ\?D¡?©¯i?áÍ?¥º˜?]ž@?ß™V@/«í@'s@@5»:@asV@4õA?×­(?ã.J@~®?ÚÀ?a4u?ní?qnÌ? p@¿ï?ýy?˜{? ä?´» ?´ô?ºÃ¸?´’´@'F€@#?÷òá?ðsö?¡pß?£4e?dà?\E?GÐ?šti?Þ¦?¡PD?’&Q?ƒh¼?VU‹?›7?³õÑ@Q?øg”?ºÙR?¤lž?o´?•“?Ù#Ì?LjA?–Ä?´¸³@,‚d@æm?Nox?ZU?²»1?²¬¨?éyï?ï­??J?·Í?È Ç?ïÃ?©ðF?l³?Ÿ-§?´7Õ?©$·?œuF?…û“?I:©?FIš?`Ò‡?=2[>îì1?„“6@ÝÄ?÷Ÿ>ìoš?ôÆ?º`€?ÎØb@>@8×?1€Q?*h@ª@,™ä?§1u?k~–?Ê„z?õý;@"×¥@=ÚÒ@n?¿œg?‚§t>êÓP?Sè?HQ?Bg3?˜å?kù‡?yLé~?-Õ4?<‡7?Ÿ1>é ?Òv@C@¥¬@ Uu?ô'É?¼§ +?Àý†?ºjU?³à@$ß@¸?[-ö?'4&?KÄ-?`Q?g/Ÿ?ç1?ÂÁ ?çhû?¦ï?EÛ§?“ßò_¼>ò¯@@Õ*@PªÒ?óÕ«?À¦@ +5ü@Ñü@&#t@*3M@gD@ +ñO?óX?eór?]¿4>‘Í>ñÄb?™K;?•ã˜?ŠËt?—MË?5Ÿñ>ÀW?Wfa?¤ëL?©ÁÑ?¬ô¾?Ë?òóÊ?Ñ¥ð?†)?Š_S?.5ˆ?8«?„?“ ç@\U@)e˜?ÑHr?bÈ|?§#?ò,>?ÄêV>÷¾>Òk>â1¡>â?¦ç?©oo@%I@  @h®@ @?˜Sñ>´ÓI?dºx?á#º?ókÈ@"E‰@"1â?£Öf?§]?w8)?u«?´Ê>ú©?Œa1?À”+?å10@@ +€-?_¨\?`7¢?yÊ?Œóê?¥; ?§b?§O—?§@?àF—@À5?å{Ý>ô +$?5T?œ¾£?‘¾Š?_Ç?^ â?1éK?/Ü)?Œ q?¹Æ]?½–è?¨œº?±/Ú?Ï~’?¿´?4½¦?lvg?…bC?hø(?±›?¥Œò?É?]­Ì?cæC?HC ?UBè@|æ@ ô?>>„ä?b£g?Ÿ¥ú?_-å>þx(?kÈ6?Û{m?Ùï?Á{A?»¬@ `@ Õ@0›L@>ÊŒ@¾¿?{Au?…4{? ?„l?Á³?Ê@)¿@Näx@ +/? û?ÌÏ@Df@Úd?׸Å?ãxn?ÿ¸@Êý@¢e@¡?·s9?lòó?®C“@¦Ü?äh¢?rÍ?…V1>ú׺>Ù5ô?ª±ý@WÒ?ì ?¢Ï¸?›²Å?ŠDw?Ž'Ì?FT>òM‚?»Kø?ÏŸ€?rm`?&=?wD?¼-Ö?ÑûN?è@ˆ?â#@Â@"_7?7?˜T+@¬¡?ä)¾>Øà?C?ï[??ÚüÎ?/ª\?$Ê&?¯?ˆ?ÍýÑ?¦´ ?€¦Æ?¥ô?‹ú?f,ÍŸÒÑ?sÌ?šÊŸ?y¯È=tPH>O¥Á>|,i>³{¬?e[Z?€Z¨?«\>ãÒ=ôÿq<€WP=ˆÄ*=ô”=Š& >a? >æÑz?"ö¬?g¶v?…{ ?žª»?ˆVE?v‚€?wü¼>ê¡ì>ê)+>˜˜>.Á>ðŽ>ï³ý=àÔ¤>4!y>}·>]ø)>ðRØ>ôM?žP>ÚÞ +=?á=ÑB(>!š°>¢±?‚Ž ?pÅ’=˼—=º9Ôô>Bˆ>Ë—)>¯Y3>’ï¨>¬—x>³CM?u7?oªÈ?'©ä?’¯=â(³? +:W?Œ*¼?äÇó?õÖ!=M‡)=ðÝœ>šÛD:DµÁ>€ä>¦Ž>Ä9>àx&?­6?-?Gbo?É#ÿ?ÉûS?3ûP?]…?2Á¦?6ß??Œ>¸æg>tÏö<•ä>"3J>"¢O>¾ü>½Ð·?<Æ?R1Z?RrÉ?R§©?"¨â>æš\>¯•8>›(>m¬á?Ïî?g;?Õ?‘>Æj=«Ë?sÞõ?˜ô?C;$? nÍ?aí)?–¼ü?c\>éI[?®(?)cJ?2³ä?N%œ?MŒ‡?0?.‹>…ƒE>zʺ?JµÕ?j} ?’§š?ž›³?Gj>êÜ.?¸,?D\û?Q4©?k/º?u£?‹%@?u.l>´Ý>ÂMÞ>ëž >í"í?­Ô ?°Ý°?w2?Ù?‚l\?”½u>ÿö>mu=>ÁâV>ß–I?ßÚ?7Y?˜Ê>Èë?n&?“ä?v„ ?l ?Y/]>ìµ(>÷V?G{é?LòÒ?,Ý-? ë?r?+æ?“Î ?¥4?-'L>íé?ƒ~ä?¨ù{? (=ßµ_>Žèq>íEï?)`ó?mRw?Bx¿>èé?w$d@cª@¦Ñ?ìF‰?κE<œ1Î? Þà?y?›ªŽ?š/†@U/@@?.{Ð>¼ ”?m«á?”>3?‹¥?!§?(¹ý>íè&>íë>íñÓ??„±?Žê«?”¼º?˜:?³†¶@F?îÕ?h·?b#>?}j ?†øö?²®’?®ÿ’?²Á?Cu?H¸?Kâ>ZX°=ë:ñ>÷–c?…u?†¸?ŸÍ¿?…¤‡?n—v>ä¾Å=ÏP=9 ä¦?nǾ?¨P§?îÜ ?íø?æà”?µ/>îûF??oµ?o?oh?dÝr>ï)k>õiÀ?¾"?Ä°?ܤñ?ÒÜ£?³>ïlR?˜Ð{?¯U0?3Ì„>éš?ì?,€2?a«¸?„æT?‡××?ŠÈ±?E…å>ïã?žcö@Où@ º¼@.?ÎÓè>ð&õ?"Î?d»&?N^>ûTF?@X?ðR1?è8?¶L?´=~?€R¢?‡_h?Ôˆ-?Íäö?Ÿ†Ï?§3^?Ù%?—î?¯Ó—?´Ál?Aöf?"ž®?¨·?ÍQ¸?Ëé ?Ê¡%?/ð>sç?aÃ?¼˜?Ä<?¿q??¶¡g?µFÓ?—Ƶ?qͪ?€9?†ïT?˜Zõ?µñ?~Nú>4Ã<>’šà?àÃ? Û?©^?÷?t$?hü? Ö©?#œE?e‡–?ole?¬2×?±ŸÀ?úÙ?ð€Ù?•3A?‘x?Ÿ‘K?¤œœ?¯ãq?¨’¢?v½õ?sU´?•œ„?–òm?™O?œÎÄ?Y1Ë?F¸É?ÂÆè?ä^ë>ë2Ç>°ž‘>óø­?Èeì@ß?®> ?t0ú@)2@4K ?ÙË)?tV×?tí\?z*÷?˜Íš?ªÎŸ?'*ï=3¬?×õ<Œ>£fê>åò{?*tÕ?¡Z:@\Ö?å]ã?˜ã8?º¸Ê@³¡?Ð*?(òq?0L?NÏ?ŠODä?pa?õÛ›@í§@O¤,@)€£>ö?ë•?v é?†”p?´Ê?ñ©>öIæ?Ã?(=!?}Áq@)Ù,@®§?ÑŽ?ÅãŽ?Œ ?Š¸ ?¯Â?±Ž…?}«¡?qïk?—Z}?ú‘?+Æ$?/®?Úì?‘(,?É×?Çê?¹R¾?·cô?w*x?yd??´RÛ?´§x?x>÷jþ>÷TØ>øÉ? ?‚c5?¨œë?¤£z?Fô?Qîý?© ®?§_ð?ê‘>÷œY?`-i?Vº?½D­?Ó¬1@ ‘s@EÒ?Ÿ{?“‘E?/?#3y?q?w×|?wÞ)?wß”?p½+?UlÛ?rE?wïÙ?zJ¡?xP?ìkó?÷ü‚?üui?ÿ þ?#ò +>øI?ð:@¶?ªÒ?£4P?º^®?ÃsR?¦< ?žO?—¶?žçi?H¨?.ôk?˜#Ü?¤ä¹>àÕ>†é°?výã?ˆ‘„@6?@LÄÑ@ :}@!E?—œï?x±@%Oi@4 #?Ô^Æ?º?$l>øH?äsü@(û?Ñx?Ï*¶?øj@í@J:%@Xí?ΈG?—m?ð˜°?ÿ?¥'?‡Æ²?­Bs?¹Û˜?á–—?@'@G™@dŒ@­½?Ùãˆ?ÊÜ=?DQ’>÷•±?Âoª?ë8`@Zu@%L@"s.@%˜Z?Ú?§Q¾?a<$?8E•?å¾¾@Nl?¼=?Wq?®MD?¹Z›?òœŠ@ +lá?À¢?Œ›?¦š?¸rg@lô@NO@l@åš?àµÄ?¹ +Ò@ä:@(&@ €Ö@"J¡@c?Ô¤Ë@GW@¸Î@¥˜@öm@OÎ?Ý‹? Œ(?H¬ø?š —?ß([?²ÆF?u÷ë?Ϙ°@$à?ÜÖ×?uË°?:F>Æ›?4;?•Í/?p+Æ?5:N?°r@"_k@§š?Ó¦?÷hn@?¾?翈>õÏ?aO‚?ÿ×ï@@Ëô@Ã@ß²@ˆ@âî@N`@ë•@ée@ ů@è?¤âÆ?³Ùž@S½@Ðñ?ÍåN?Ãåõ?së>?sݳ?‰¼3?†û?a™…?ee/?€³?wñÑ?t‘é?~«+?mF? rO?½) ?Õ@ËÙ@*B¡@Ž?ìÚ”?òÁÊ?òµÿ?»%Q?>?Pë?˜Å‚?Og×>òO(?qW-?³ÑÐ?™U¸?€-±?¨õJ?áŒç?Ì6ü?—x=?¤?Ò?º6Í?¦æ?8ÎD?AQÔ?qWÑ?ˆ0W?Ç®Ô?¾;Ü?„óq?oP¶?ºv?Ã# +@‡E&@ƒ·@Rø@~ì?òXÒ?ðc1?mx?Bhé?GQÿ?5HÉ?]<ì?oð€?“Kð?˜`^?§ã—?³»Ã?ü-å@¼‘?ÎK? Ó?ÌJœ@ ¶?™Æ?]è?„Rê?î×O?Öºã?–»q?Î$í@Pº0@:”»?eÚ?¨h?¿´?·&?oMN?xæ?o—A?mÓÇ??? ¹°?×®·?ݤú?“eÀ?aY?€¤?‰•ø?ÎÛ@ÌÉ?±Eî? +>–`¶<]€à?·@?öã?Í;Ã>ìXç?Õ?¹§?»6@+rø@5[ª>ðl>¥´ì@ +;=@“?žcC?kh9?ÊÒe?ë;ï?…›À?@´¤? TÙ?Èmñ?¤ì!?^ Ÿ?wÊá?™à?Ó˜D@MÔU@G4?æ{ý?í,¬@î¾@ Ç9?žš¿?¨ý¶?ãGD?é™?Œz˜?T])?‰Å¢?Ÿ§o?XØ%?½Õ?4 ?j™Å?“MŸ?¾Ï?×´/@j?ê0?§¡k?´‡Á@_Ÿ@j?ÝBe?ÌL?Oë?ª?Fh.?gŠ£?¹È?ç[?¥Ã?8€»?oq?­;`?†Éb>‰t>^³h?€ô?pkÙ?¬H?¤0)@É@$Cì?tðÄ? Þ?ÀÒ=@ +e¹@=n,@p>ð@E!´?ß[Ó?Õ ¬?ªö ?«?¼L“?¨Ù8?…Ê×?ŠþP?Œ8þ?{Oÿ?Â*Ô?Ò„©?¡þM?wñ”?Œ- ?ªúD?¢P?š$è?«¯N?´üÖ?©Ó?P; ?<5"?(#)?­?ÙO @ ’(?—7™?Uæ?rM?¼}É?²tý?)?•ðƒ?Åß?œC3?°b&?«¡!@D-@ d@@À?ý{?Öj?ÆÅÇ?á#?Þ±ý?èuœ?ø$æ>ãXŠ>÷à?×? Â?™d? ' ?$¾?Šse?«l?Ê^?¾ì‡?`ó*?_‚ +?_g›?_MC?áqœ?ç‚ ?“ÏÂ?yp¿?¦DP?»È0?¯®I?§Vù?«MN?Ö‘?ÐS?ÿÜÖ?ê^þ?§º?†«¦?ÒÇ>Ý°À?”„h@ +@Š¡@7(?ú;v?Ë‘>âÆè?²û?˺_?³57?¥~Ñ?À´?Ø:å?¥~ó?çú?(•W?½ÊÈ?Ãgª?™?ˆ€Î?g+1?[º?‡+ƒ?˜5·?˜Íj?¶@e?»ëð?Áœd?ÇOÊ?ÙI®?Ûé?ÿ""@ vÄ?Þ±>?˜‹Y?¥®„?ËÛ€?¸àŠ?”æ·?‰*?ÙöÂ?ÞÙ¨?•‡þ?f$?¸˜°@71?ùd?£_s?£L?¿gå?Ëd ?„và?b¥P?ö™@^é@•t?î4‰?ê6 ?1é1?òF>Þiì>Ù"h?í…@@¢"@“à@wÓ?æÜæ?Xë‚?VÓ¹?5b†?MŽn@qð@Ó-@ +_?ëM?«‡4?X¿s?sÙv?Óžo?ò+?¨ 8?«_¶?%}>>›ìÛ?ÕW@=C˜@ q,? …?+Â>@Pl¥@V´8?»#?ˆÊM?ÛÐ*@£²?Æð?c²?§BÚ@õè@!ìq?EÁ?,Ä9?0qQ?*#®?“Þ?Ç^?ÑÂV?ÙÞ?¼Ÿ?,?:Å?’×X?`ê?mXo?y¾Ì?=ˆ>ö0«>‰ž=b0>Üsr?Ìoh?Äk¶?]=?vòŒ?cÛ?\7~?¶$L?Ù}/?²½«?‰i`?lå¾?[D×?eçª? k߉|?B3!?€.?Al>à¬Ý? ò?GÛR?-¥º?ZÐ>ñf=>â0>âö>ãP>ã± ?½×‰?Íg{?1¤ž>˜I +>{2š>E¨\>¼½ó? ÷Ý?+þ+?gÖ6?H߀?$*?'2>éÂS>êE¦>êËN?42l?àï«?ØB{?dsã?F—>¥kK>§eY?.â4?B>¹¦(>óJÁ?pb¶?M3Ô=׶?Ðè>ðÌ>öª>öÕ >÷'>¯N<òÙ8>9>¡H¢>üi]? ?5îÁ?”Ý>ñð»?_1‚?tAü=ê3J?¨o@ ·V?°Qß?£¨ú>ºðG>GÉS>v‘ä>íC5?Ó)?Ðx?9½±?@&Û? ‚÷>àa@? Ê?a +H?X4?Cð.?@Ï•=í‡æ=ÑÁZ>êk™? +õ:?3ÓR?Jó±>ækC>< ?5C/?F~? ¹?Âr?q}I?eÇJ?eþ”?f14?"‰õ>æ™^>ÔM>·ò<>B=¾øó>š¡>ç®>äºT;Ž¼[?^õ7?F?gŠ?“– +?‡‹«?‚ƒQ?@ü!>éKÃ?±î?K2$?&i4>}i4>Äk?Ò?&Õ:?#Rô>›¶Ö>”Óu>ÑäÃ>ê!—>ˆ6õ>#½”>lÈ>«ÆÓ?Ö?k6%?PH?$ò??äì>ˆ\™>­FÀ?7©@?5~ù?bÅÂ?eì³?•OC?“È&?¬ÊG?± +f?R1B?"±2?+ã?8Ûò?'>ì[J??>öœ?‰8?Â#?šþõ?%B?-êž?>WÒ?47?†?-î?í¯?ïfJ?<]Ë?<Þ¦?UÝÐ?X‹,?Óò>í°?Eu?` L?iåí>¤?3þ?kÐ?Žš>0ô{>ûâÔ? ?}@?Pd‚?ÙJî?Æ¢ÿ?_7Š•G=ìæL?M?Ä?mÃp?¤Ho?²Z&? ´µ>- +Æ>·â<>íç?‚i??¹PÀ?¤%?“¬Y?a8O>ø»ñ?;|¾?˜Ž?‰¶?&-™?=]W?ˆë?Œ±N=‘?Tr?Ó±?KG?Ÿ?dÊf?niÃ?'ªº?Ëg?Eoþ?\^¬?0x?±O?L|[>î¡—?•¡?²P?rÇØ? ƒ†?uÛe?¹€ç?Ÿ4?\Ÿ÷?@ë"?3¢?@ÝQ?¤œÐ?(Ô>ïj?{¡?o$´?m ?—ï$?ž)?B£Û?8¸@?.à¹?4º?i(B?ovÔ?O?·x?…ï ?*?AH"?,Û?’ç>ïÅ`?oèa?§—O?¼6S?Óå'?¨Ó?D–½?K—>ð? Êm?p4?‰#à?´?¨Rd?vö?e-Ï?ê™?Ï`?‹ö?˜Y±@´Þ?ÿi“?‡· ?‰ƒÌ?Ü ?ܬð>™/b>:žŠ?-š&?<)Ú?ew½?q/u>ÍÍÐ>\g?:£?q_’?Ñïý@®ô?Ôþ¤?µ.?œi¬?‡¹q?H¥?öY?¡5±?¤té?°Ûø?ºÃ?Ë{4?ì ;@:@Sï›@-”U?³‚‹?¡·›?giÙ?¬Ÿ?­©?£šq?…f?Š]?§’Æ?¤yÏ?DRp?BI>°}‹>Îïô?¬TC?°Gb?šÐ?—õ?˜Õ?›~P?”Àˆ?‘Z¬?Z;?JÑ6?‚Ô‚?€j*>µ5@>Wµ(?_Ÿ?"7ƒ?U£?G}?Vt\?tÖ?¤CÍ?·Ä@x@4.'?ðùç?²O`?’è¿?‚µE?dõÙ?D¶á?‰h?¨ +ó?GMn>¨Ë¸?e·?±Né?™mj?ƒ–{?Æä/@ +]-@’Q?ð¢?»(I?uHù?bB&?Kp"?¡ž>¯éØ?—Ir@-zE@ +y?u¤?šD?虧?êÝa?íW?½Û>õêA?_~h?ñy£?³¢>– ?bs?ÙKP?ÓÊ?ÎF?Í»?ëã2?áÈJ?¤¼b?¬&9?¸à;?§ëg?3Ën?>–Ú?€9?‹â?Ÿ)"?Ÿçà?‘}Ð?‘¤ÿ?¦Ô²?¶ Š@ øÎ@nÞ?¹?£?µt,?‰Bj?„†|?w"e?€v?¹cÝ?°c>÷=h?Œ8?wM³?rFÿ?%˜V?1.?Z˜³?P<š>Ü?ÊZ?´£…?­Äñ?¹Ši?ºUÛ?~5è?m„c?Ôƒ?Ò-~?ŠhÖ?Ž.’?*o„?1ÆN?w½1?wÁú?wÄó?w¾×@>ʉ@Hzm?„A?wÖK?·ÔÆ?¹ ¾@0 @ ?7Pz?2w?Ò,F?Ð^å?›®j?ž³n?,‡w?'¼?žfö? 1Õ?n›—?tã?Ïøv?Ȩ~?—( ?“uq?¥Qí?¢[ ?Ž Ê?ŠÞ]?Áv?ćõ?ÔR?ß*!?ö–î?÷øD?ˆM*?wôT?ðbŠ@ïÊ?ó3¼?î‘/?|@T?\M0?•ì$? ‚§?¦ó?£$Ø?¶€€?¹ãò@}@ jÖ?™?üF3?Þ.J@?W@!ìŠ@}™?ÕfG?ŠÀ+?)?;õ.?tëø?xá?ƒûè@«å@\uF@]=Õ@] H@ +m®?G¸W?ýŽ>’“7?l?slB?À×7@1.@<*@9¡?@ =¢>»K?iØx@ Û@S?·’B?ÆÙ/?õ?µ@¯k@4R*@B @{,)@\èê?ÈãÜ?×I=@1ú@Á¦@VÉ@ï(?ýJæ?û4„?$;b?4¥Ç?Ò™ß?Ì©c?/¨?{è?éb|?óT?„Í?sB6?Îtî?Ñòò?Å6ô?Çní@¯ù@/"Œ?ÆLª?–æÓ?íÉJ@Âj@±@ì_?œŠ1?*q +?Rû? ·?<£y?q ??–íŒ?°ÚT@ß.@=q?â†>Œ%>?*'«?ó?™ÈÝ?–v›?“ ù?È‚?šAê?Ð?óº@D@>??çn‘?먛?¼$?Îæ®?(ú¡?=Tæ?”_?œÓú?xÃr?pY?Åš!?ÏÝr?œà?ŒÔž?á -?ý‘h?ß'f?È7Q@ÆZ@3@@Õ#@DàÍ@%?û-ª?âú?µA?©X?¬fø?¡’1?n•­?§N@+Šd@ ¾n?‚RŽ?ŒY½@&Ü@>óÉ?ÓZ?h¬u?mºå?ö´©@ƒŠ?Ê(?É<þ?’JÄ?ˆ:?–9+?¡FÞ?ýÉ=@$x(@).½@/;¢@ Q?¤Çö?¥n?½UÎ?Ê ë?×Ãy?κC?ìC?á+ã?‚d¶?Œ)?Þ–œ?Òzy@¡¾@*Câ@a„„@dHy?÷T™?ºÔû?tjm? i?„Ø?°?¼ùÐ?Ç…?ÄwÞ?Ëù?·É?jN ?TXŒ>ë÷°?Ws?¾Ø?ÅÚÄ?îU?àï?ú)@­,?¿d?®þL?¨±??šS?YŽ?h÷O@®Ó@Fn @6?®xÞ?·ÁÕ?Õš?ÐôÞ?‘¾¦?“ ž?èß?çþý@¢@"ñ%@)Ô@-FÀ?ý«æ?׆‡?ú“&@z?šç`>Ñ?P¡W?­*‹?›Hb?BÃ^?Q6?Þ˜y?à2>ú +?šU?M‹?v²l?+ìý>ýè?> +]?e¯í?ŒÈ‘?²Åù?»òÉ?¯$c?»à«?áò?Ïþ ?Œ©K?—`‡?·M?­Š?›Ùi?¨ÑT@{@€@pÊ@ ÷É@ ¦Û@çB?ãÀ?šc+?¥Ä?ãž?ÞàÖ?•Ú©?šÆø?Æ×?»ý>¬ì=ww@?˜—?K˜i?b®#?†ÙO?žQ?Ây?ÞFQ@K`Ý@[D?á×=?áÃh?ä_t?é¢\@=µ@O‰6@*Ùˆ@¾5@ÀL?àþB?¸‚0>ƒè*>é¹?¦:Þ?œK¢?Rg??Ê?çô@ ¨?ƒÿþ>·Z>ü]ø?}Íð?„œ?¦÷W?«Ùª@…@3ÿ?×C¶?Ý ?qèu?wZ?°y@˜}@N?Ýxâ?ôD4@1Dè@(T›?ȧH?Þ¦ù?ü•@[?£“?%j•>ê‘ù?¨a?Fb?—c?¥ËÎ?,N?‡„F?¬(?—Â?¬Í„?ª’x?¥ú"?ª²‚?—¢”?:ßu?9è­?ŠŸ?©Â?«/©?¾ ?Š“Á?[ï­?‰èv?¤œ ?˜Ç?‚µ?Ž‚?ºš–?´Åì@å?ø_Ô?Üïê?ÞP?˜qã?(Ô4?k…œ?¼¾´?Ȳ ?˜¥T?¯ù¹@Ф@"à"?·ýˆ?Y÷‹?ƒ ·?¬’•?¥Éa?F?j÷¯?“1œ?vß+?ÂÏ.?Ïý@ º@+Q¢@ ?^½7?{­‰?•µ?šýÀ?„Œ>Ù´?³ô2?òNZ@°X@/¯@ p?²,r?•ý>U¸[<Ôñ?º5½?ëR«?÷oÌ@ш?ÎÂR?X§3?DL>„Áx=qž?št€?¢zÞ?b]?3à?£°Â@Þj?õG?C*´??o.<ȶ>…“>>’ó>ÆÔƒ?ž6K?ܱ?Š.Î=Ì´Ø>Ÿj? ð{?©>e?YFÅ?YL(?Y^x?YnÔ??£32?±Á?ÓÈ›?á€M?ô2Ê?Úÿ°??m8?UtÐ?Jªl?,”0?@f´?Zĵ?X• ?Cf+?BÐ?“w?ž k?µ?ÔG?pŠW?lšu?“?ªi}?– :?€i:?GzE>wº>ÊÒ?t¥à?gê?^’?oŠ˜?Žm?£‘¿?²ÕG?W?š4?¨h?s5>Þð+?Í?aPS?l3Ã?‘êM?ŠEƒ?Çæ? ­²? º×>émc?Y%„?…®Ú>Û®=>9Âd>¸!ê>æ&²?"œK?X‰à?eIñ?gð‰?~Ò=ÿ‚¬>†‚S>éäÿ>ÔÞå>®§>ÿâ6?h±W?["?Sg?½¼>îNõ?(;?¦°?‚l[=˜%L>ö9?˜°>¹Áð>£òÖ>åÞ>ü›>¬Åp>ÔÄÑ>÷äY>¢ºD>ý°>©}¿>ºó>Œjd>f”@=Ú†Ç=¤$o<„a=o–@>3þ\<£@ '@KÉ;?Óq³?œve>dFc>t/>2 +>’º>™>Œ•£>‰±#?#Àá’Ö>ñ„0?&ŠÆ?'³>èÐ]>ãœ?½y? ÇÁ>ˆBÿ>?Ö_? dÔ?›Å>Öv>Ü6Ô?f´V?e¿.?˜‘Š?ŸD5>ëJ?=×>•lÊ>æôö>@¬<³›<=àüC>5L?.r´?-ÚA?Üv?/?ÁT*?ÙO»@}ž@ÔO?Ê}A?ÝŸ?\qž?#ç?:¬K?soB?O)ð>ßcÂ>ßX>›EÙ>¡Þ©?gù^?c—b>·#ô>”6O>’aô>~Ì>Ž‘Í>Œ—/?‹ý…?ÛóJ?Ÿ»´?7¿Æ?6ªs?5•?RÞ?”‰O?Šmf?0áQ?/ã±?pà?tV?Ëjª?ËI`?áÎ/?âÖZ?„ù?SÝ4?ÿã>ìU?,^³?H?Aê×?Fµf?R¶> +†N>ØÎ?‚sM?‚[Ö?l»?Q1û>»•&>­#W<}‹é?ï?@ ?p +?›8>Üú>ÜeZ?Qˆi?m&•?®>î—>í5.>í?ë?º©”@/?éw6?«rÜ?” ?b³6?kƒs?…“©?œ©?Údh?Ð%¤?¦r5?³¯Þ@$LX@!°w?ƒÍ%?}<¥?Ë?9n?£¾?ÏA?ù/?mäF?©É>Oã +?Ñ»?n(?˜ñÅ?ˇo?´y?‰³J?w1?h>õ(?7„,?<˜n?A°ü?IqÖ?pÿ?|æ‚?¯)p?²ÄÛ>kë—=×Ú?D­?n…5>}®.;½•`?oü“?²òH?­XH?¦ÌF?g[F?ž?t¾å?§Œk?uÎd>îÒ? ?;’¨?-¶>x2>‡)º?$¹É?-_#?<@?Jdã?¶¦s?°÷×?1i¢?.Aµ?¨•û?¨†Ø>“8>,l¡?¸n?à³’?lí?0„? #Ù?„Y?]Ÿ_?Æ`?MŠ#?!ª?÷ƒX@Gê/?ñÄm>ü2?+—~?p[?ºh@{p?ÿ:ý?®‰¿?Õ[³@Œ0@#R?ª?Ò?n¥–?}™B?pœc?m2ê?v6š?~gÆ<²—;?cé:?pñå?Ê’ø?ÍŽ‘?}b‡?]q>?iø‹?q;—@B6@B?êû8?Ô”?¾Y=?µ'5?eÈ? –«>þö#>ñ¾¦?“r?èûî?™ºò>òOä?aÍr?ºnh?¥åH?{"š?zGþ?rD+?wÆ?„8ã?Q›õ>eQü>ý ?¤Lu?ŸuÞ?Œ\?€Ê?§š? é[?0¸r?=FŽ?˜?›\?“ý1?‘À„?žé1?¡ +?3³?’@‹š@ƒ|?˜LÈ?…Z?žÖü?§?y1?jò/?w/Ì?uõð?sÿ?tº?)¯?íš?œ±=?·/5?Q 7?nT?Ìç@˜Ú?îš?âën?x!P>ô¦y?I¶[?‡5?SÎx?)FF?œQ˜?ÙÆ´?íÐM?þs’?Ë”È?õŽ?d-ù? C¯>éÆÔ>sâ9>ŽqÞ>ÆÐ=?Í?ej›?iž?l½­?I +“>ÿw>õ¾>õÌ×?x†»?õá=?íØ–?ÕÓ‰?ºmŠ?’t?–+%?™â ?²>?ãG?Æ;Þ?vLÔ?0?•ÅK?‚Ú§>öq1?1ôÒ?¥Cz?ŒÍ?G?k@Š_?ò¥¥?VDB?•L @,«0@!TÔ?¹(Ù?í.?û½Q?è.J?xæ™?ƒ¿w?¹K{?©õ9>÷å? ØJ?w+P?uKÖ?^3¸?RÌ}?}~?#}¸?%ãû?G~@!7Ô@Ê?¹’·?¸¸œ?¼?D?À??Ä>»?Ĉ(?RMF?A[Z> æl>!ië?wœ¸?zJç?Žæ.?ˆÀÿ?³Ï? VL?€²?wèQ?y,Ò?zãº?"Lx?:ƒ@  @Õ@r@rý?y'?wÕn?M´T?HºW?”‡Æ?—á2?~âM?s. ?Èš®?Ù°½?Ô\Ò?Ïb4@}ñ@ =?Ù—ã?Ó H?딡?ïW=Œ K?ííáÄß>¢ê?‹³T?”¡@ Å*@ òÞ?£uî?˜ý>´Žƒ>™>“?½Ân?Ñ•¿?ÛžÄ?Ö¢??èu?á‹?Ñï?ÉH²?‰d?z +?è)$?÷z=?›º‚?—B?®Yô?­ýî?ˆ´Q?LÂ?éÃÇ?÷Jå?×Ý?ÓI´?^ü?8ïÕ?ÃÛ’?ÜÚ @ À@îÊ?œ +‚?wh?Â??Ð[S?Ø1?ãÕ?˜Y¬?z»@CÓ@?¬@©ƒ?ðY?ÎÇ?ÄR]?ý†?v‡®?UX‘?Qi:?šà?¦\?š15?šõä?¼}•?ÄÉÄ?•¼¥?oh?æ‰@Th?ž+s>Ò© +?K ‚?÷ ?3YŒ>öŸR?¿êG@é§@´Õ@)/ò@ ¶?éâ?@@À¸?²¬»??¼&?‡1ž?±gA?οc@×&?åI?zô?>Dôì>ÛÏs?tÁj?ŽÕ¸?¸†?”V›? ”Œ?xv­@y”@8÷@4ºD@0°@ÓÌ@ìB@î!?ÿ†!?¸×C?ÁK¶?·•?Ç‘*?xIb?`ý$@<”@³ã?óxÞ?óf›?òÍg?óH2?ëgñ?ä߆?Ã%ì?Ã}#?¸ZÔ?¶*l?ûx{@"û?—þï?r¤ñ?ÈEa?ëò?«–â?”ùA?›8~?¡®?‰Í?r;?+_•>ô|Ã>N$>#à±?{‚Ã?êaÕ?éà?Ë!(?¹,ç?µ ö?ªÂ?™r`?²Ã?Þ™?̾s?£#§?£3?Ò¯ ?ÆZó>ô`ó?+Œò@²Ç@ +ÿ¯?[‹„?U¢?Í"2?Æ×à?áÇJ?Ùj1?¸c?¼Ì?¶˜n?³Ì ?í?¿íµ?«új?wp­?eÇl?ÃF¶?Óš?Wê/>j6Â?fÍK?è?Ôð?²2/?ºDô?ÄÏØ?¼š•?ä¥r?ä­?Z>äa‹?£9?¹kÑ?S€>ëdð?I©q?Žkm?ƒ!Ã??MÂ?P‹Ã?j7 ?Šm`?”˪?Š»@3é@%ä?ùuœ?ÐâI?Žc›?b‹^?‚õ?‘¥?˜pR?¶¿K?¼&?žÏ`?‡Ú?ßr?ᮎ@ú +@TÈ?· ?Áž?ÒÄq?ȳè?ÍÓÌ?Òøk?æM@ +µü@“R?hR×?rÅ?—¢6?”j?±ÿâ?Êó¡?²h ?ƒ’?— þ?Ö÷?û¦™@"ËÅ@7a?'Î?g¯y@ ³@áÆ?±à??Œð*?·*ô?Þ”C?Þt?Þ[À?ÒÖA?¸¢¦?Ô¡Ù?Ès`?·Ù®?¶¾Ú?Ã3á@î}@!·¥?É÷D>ÝTf?=ë ?» 2?¯ž•?¥¶Ø?¥¤l?geÙ?\¯$?ä b@ Êÿ?¾Š?m¼¤?ƒñE?‘â?Žä¶?HF?‘ÚC>óz>Û»z?‡w8?¢þ‹?ëzÿ@?ó¬Ï?ª^?¬W®@^ +?õå@qiá@†?…@U€@5R-?ÜÛî?5ïa?lá?·,é?š–I>OœW=ããr>Æð9>ö}>–%ü>NX–>Ô>?2? r>×vd>¨G¨@õò@!ÓÉ?Ä­¾?«3Ù?”ûÄ?šÊ?¢ ©?r-Ï?Qóô?Y æ?Yµ?Ÿ¤?š_*?†Ú`?ŒÇ¶@]@<“u@$í!?ÿž@l%@ U×@€•?ÝÐí?ØšE?í¶t?õ·j?Ìì§?Ž#U?¶a?ÓÔÕ?Ø ?¤oì?¢gŠ?=¹¤?3?Žæe?ªÿ ?iâ>õ&>ðyÄ?QŠÍ?9‹y? ÈW?ä?7¬?nèí?X¬M?Ï>ïÀ÷>Þ Ø?ön?–®w?u?ü>øn?C^=?‚Ö@?b/ö>Üì7?.Ré?¸ô‚?Å©ß>Kiá>nBÉ?<§®?%ž?i¦£?X¨¨?2Ó]?È°?,ÜÙ?Žš?‰É?¼#›?¢šP?Ë}ç?Û%W?ÙÇ+?Ó³ß?rUÄ>­ßè>Ôä>¤˜>>ÅÞ?ž°û?¤üá?^S™?^yÜ?' ?ê(?µ*È?ìo.?ÒŸr?°r?IíQ<+h`>:&? ùÌ?@NY?Æ…ê?½}f?b¯o?c ¯?¡Ý«?¨æØ?%1o? «3?A>ñí? ¯?‹²?H¸>óë¸>€9›=Ë"`?ÖÆ?eM:?6A>‡iÆ>aï?=ü§ï>í¹k?åP?TM>?(%ƒ>T#M>è®ï?µäf?¦¹=*€;Tà=<¼>VÛ?N[h?kÕ>rj>õo>–\=ŒÌ>F u=Ý–>y2p>Ú(ò?a¢)?zý.>û¦å>¾ü÷?¨›h?î?Ò¤.?‘g1=èÝ?\Ç?__Ò>°ÿ>??ê;?ݼ?G«^>á‚>ÉÇ>ƒÃò>‚*>“,=þ±æ?—Ke?´ª.?n­•?&x6? t@>ä‘‚?ïJ?(†f?#WÏ?ï¶? …>¸S)>µ¹û=¼‚N>{ƒ>æò6?ß,?(°¯?~%?ÑßÆ?½/‚?h€?bV >èQ{>èt×?´ý?¿øÆ?š$L?”Y?¨ú„?®ûQ?4Ùu>žÐ>‹;ß>îçv>°ân=r`°>”K0>¹»t?¯ÒØ?¯Û:?C.i?;;Q?v·Å?}o??‹>ëw?’W?Æ'û?®qÁ?”‹ +?oG?0#?D÷|?oVÄ?c]%?518?#³§>ƒÜÿ>™”Ä?‰G½?Œ{4?ö±‚?ùúX?ÎõÀ?ÆX÷?Og?‹B?…¶‡?Ÿ(Ó?DÄ>ìƒð>É;>°—1>€ª=ÕËã>ñÝx?º ?UÉq>l»>"'¬>E>sÙ?lîF?l'3?cÅè?eªï=Ú­¥=,yé?N_°?lùà?m!½?m$8?<>í8¢?Ln‰?3?A•4? Ua? Mc?$3?@£? +\ý?§?>sw??Š?/.¬?R!¢?·î‰?¸xƒ?‰J?Š>K?DwO?AÓ>Eæo>A4Æ?}è!?ƒãï?kÓ˜?mÀ3?¢ØP?²VŽ?oû¯?9ôX?2¼ˆ?&à?zk©?¡2ø?îû@)#Î@§?¢L +?± Ÿ?Ò›r?©û>3xÀ=þ +(>~v?¦`³?©Q¨?¯!S?°p­?vR ?nvP@&œü@1¸>î?<»Z?z'š>Ô:M>LpÔ>Äë‘>î™®?™Ôé?à·Í?ý×6@ SØ?Áàù?Gâ?6¼2?ñr?4ÕÛ?'‹?w"e?nú?˜ßï@¡Â@–Ý?:‘Í?R@P›@éš?&ˆ¾?èë?‘‹w?¶>cåÖ=ÕŠô?EÙµ?o†´?«³Ÿ?»4ù?ÒÝ?â ?¤-›?v*ç?½?$?ïÝô?’ÃE>÷Û?<ïÎ?†òå?œ6[?´Í?««¸?¤C’?§“¼?˜ ”?ÁŠB@ã‚@È? ²?L¸û?Ïpì?À¿W?Jz€??*í?p–Ž?pÑÑ?Ö¹ß?ß.ä?gmA?`Tí?sAô?q~@Lü=@n7¬@ÃÄ@±ð?º&M? •T?€0Ê?chn?Êe>ñžz>û±K>öèÆ?<3?qÎ>õêh=¨b?5Íæ?®Ä3?Æð?Þ?ÇÒ®?¨`Â?½L?Ûô4?»¹½?#N?r‘­? IU?OAÆ?½š‚?®Õ$?t­?lã,?ré?s%?…ìÇ?†±H?Ix£?Lš³?†b?¢{@ ‹=@xf?ºÒú?¶Î?#†ƒ?FŠ?Ñ?}?§J?¶Ø…?¶,í?´€î?Þ*2?â]}?”, ?ƒh\?ÁYõ?ÍÄÑ?‹á?|›ž?qu•?q ?¤›8?®˜“?©]Ì?¤ ­?ö>v~y?O­p?•·?Ö‹)?þùÎ?Æó?£‘?ŽVÓ?u †?eXú?[P>õ´Û=—ñü>n0ê>ÝÎü>åw>ìWV?Ž&×?õ™H?¦d>õ¬z?¢Ÿ?!Å»?V)?8”?Š2¿?uíÜ?Tÿß? À?—ú`@5M@¦-?ÄN‘?µ„5?œ«?|°4>öWÝ?yö¼@©©?ÿ\â?}V(?­Êm@.äå@p?lf»?Ž)e?ö³B?êÓé?¿œh?ÕCo@½@ ð^?¹,Ï?Ï×í@q—@æ?ivŠ?hz‡?wÏ?ƒë?ªÈ^?—¬ƒ>÷,þ?(%*?ÊlÞ?ÇÒà?å +Û?ç\$?¹~Í?µ¶Q?—÷{x?aj?w‡'?†Ÿ?ðV?ï-¯?Ça*?É]S@·]@(?B0??¬Þ?¥ðå?œ½?¢ù«?©3Þ?°<å?¦‚ß?¦ú ?ÈÎh?Æʉ?â¯?×Õ¿?›Ç¿?œ_ó?ßœ?èW?Ì«÷?Òþî@F@g@a–@ +RŠ?Ë9]?Ã6=Ÿõ=5ô\?öÐ'?øz–@Ã@€?Šù?Ä5?bÜS?]ëf@ní@—’?ÿQm?íÜl?Åƶ?Â-?ìxõ?øÒŠ?¡D›?Ÿ–ô?Æ?†Œ?çx?Ów?ô‰£@Ý)@<.´@E ß@2öm@4×»?ÿs?÷Cû?ˆ'{?ƒôÒ@$+ @'Õ¨?—jb?‰5 +?ÂRf?ÀU>@ +w@öÔ@™Ò?ý3?ÃÕ8?²å?ü @þ8@1ÿ@Ös?•ZÐ?vì?íš.@9‰?knû?Ú”? .?¸Âo?Š]‹?…_Ô?8Ïé?-™@ ïK@$Àš?ªó~?vnd?‰äu?‰•F?×j§?öGˆ?ßk??Î)h?Ì%…?Ù³Ä?Ǭ„?Â=Þ?•Sm?uðA>ô¥’>!­? ]?õÁ®?ªšI?r•?£RL?ÆÞ@9«@nÈ@S#@Á?óI¶?Ø:W?Ñ´§?»sÃ?ãìé@ ¸??Û”3?Û"?꣫@6®@øÂ?`hx?kDá?t¨-?¥Æ0?ô{µ@ ùý@+¢@ì?ôRË?Ý ?ªŒÐ?½š?âîµ?Ýó?¶úì?±G*?•NÕ?¡hœ?ó½2@]ò@6 f@: ê@!Æ@xO?ïÁÚ?ðÍ?u=³?€?†"?Œ)ï?´—×?¶.Û?ܾo?Ý<@R@G?—<ª?rŠ'?ž·¡?¢¤?vRG?N"¡?; ?(?TÂ[?r?žb?°??†Ž ?Mi +?Ú‚@ä÷?ßñ?”n„?×rI@ ++Î?窥?ªö +?¶?âÿ­?ý%á@•Ê?Ý~¢>6»û?pXÀ?–‘ó@1Wé@(%Å?§yq?¡Ò?mrI?€ûO?¤Â^?³uœ?Èq?½VF?³›r?³µ?¡ÙÇ?“,Ï?°ÊŽ?·«3?‹^?t\é?÷Î@êï?îË=?Ä9?Åú?¾‚K?œ±ž?nˆÇ?¥«›?ÿó?ý”7?ó È?ìi?–qB?6G@|d@Po@&@º ?²$…?²"°@¬%@?ÄEA?¬??è–)@õû?Àyv?˜Ý?FoD?]v?àv@.g:?îHƒ?ˆ·%?¹Ò?ýL¨?ój+?ÓJ?ês÷@x@BÑ?¬+ˆ?£æ?×^Ö?ßU>?pY„?kJš?~Ä"?Œ#?—Þ®?ÚR?ÂÀ?ß̧?±¸Z?•bg?™wg?“ü?“›p?~?P‰•>ö·´?ÏS?z¬ÿ?ŠEa?¢©)?ž_?š +Ý?•¹¡?¬&b?›ð™?NKÔ?I•L?”ñ¥?§œ?E·Ž>éh ?:IA?w¼Š?¨Õ?Ø ?À-´?• -?{ªÁ?æÖ?&ýQ?ƒO?{ÜY>çÑ@>ç%?\žÇ?p€ã@vk@Lë?ÃÅ›?–¦3?¾Qz?øj‘?Ãõ|?6S?y@“$@‰?æó?äÖã@ó`@7±@Ê8@•?×9w?ÀJ?ëR@¥?æìX?¬»@&y@d0Á@ Òú?äì?A/Ì?˜U·?¦?ä—\?ä~Ô?P„c?)ÙÖ?ë•@ ~[@!Z@$G@¥?ʵ(?«®?{¿#?Z3?:y?Z?Ô C?Ù…??g¨ê?m + ?€\?q¹í?b{??Ÿ6/?Ƈ•?¤“–?b?¡ò@)km@"•Ý?b…>?qt@@!çc?óÁü?¾ + ?Æà?Ó<ç?»á'?¨¡N?¶Ù$?ßÎÕ?æî?@©Ø?óhÝ?ô'ô?ê\?ˆóô?_ñ3?åŒg@ý?àáô?\ß?gʃ?‰<ë?–Y¯?™?óŒ?î +@ ˜?äe?Ó(Ì?Õ‹@?Üj³?ó}™@kû?ð{º?”›%?”¨œ@ +¯›@ + J? s=?‚¹-?[Ü‘?\¹Ò?ìHŒ@&ËÉ?çí¬? }?Z·?¥«?¥˜r?¡VÉ?Šã¯?é<,@ ½ã?íº;?Ä#Ë?¿Q!?Ä·K?Ãb?Ûá:?ÛÊ7? ê€>ôñ?±xí?Ö–«?ä ?ûö±?÷9?ÛÚ?êSH@$8…@$+Ž?ÚþP?Ûù?éa?øÜŽ?Ê 1?ŽÀ?›¨ª?Ñ0½?×qó?m*&?aa“?Y–€?P¹?²•?¾z4?åZ@^Ÿ?Ô?‰?±š?«fÎ?£§?¤ý.?¤Ú_?¢ï ?m¶/?)óê?wû}?ÆJä?½œð?fø?[Lá?\ˆ¾?h3ã?Œð?ŽÝÇ?Û@ ¥k@ ´l?S›ø?Bã@=Õ@94ÌÇW>í=Õ‡É=aÏ?/õ5?Ó³Þ?ÖŽO@ ª@:v?%êm>üMÖ>-F=…m¼<…ú<’¿à?F?‰eÂ?~†\?‡ÖÖ?‘;.?úW…@ Y¬?¹9?¥·„?¤>Éd–>Ñ!ó>mKK>·aÜ?;Ñc?K™M?]½?]=­O€>?L#?±š?²dy?¥y÷?§©h?±ý?ÎD.?°A¡?MtÖ?TÙ?„Þž?…4›?Èõ³?Ê›­?KÁ?XÏd>ñ²;?ãÈ?C§è?AEß?„\?ŒÞS?u«?fVí?fÏÛ?g?ú>èÈr>å=H?Œ¸T?rz >ö°á>•š}=Û}Ö>ÍÒq?«£á?‰E§?(‚>ýà>@S?'W?NE>ëE>µUL=%ž>¸+>¨óä;+?<p<×i8>'ö>†µê=©žL>#8=—;û?Ÿò?»†Ü? 81>ìwÎ@/ú—@*™í?£0?fŽ±>——=S¸ú<kË=Žµã>Ô>ÛÙ?AÓ?@b?½š?S(?I™v?`ÏÏ>ü•q>xX=ÓðÔ=ªß>œi>œín?H† +?YFÝ?)®Î?$?ûI>äŒ>¾$æ>†¼§>iœ>å€â>ìuË?"ª?"yg>µƒÎ>¢UÅ>Ðü>æó©>®³–>Œ‰?5…µ?©NÐ?¨8©?›Ò}?V*>èX>ì.–?†®?‡Âh?‚|>é?/3[?FÜÍ>ù©>”¯÷?=¼:?’û?+&Ö>U_ø?;#u?;?Vý ?W`¬?(=?)¬?&Ê?!-x?6Ò?3@i?„ªñ?“k»?}+r?n\[?—„g?¨üÎ?Oþš>‚`¨>„í>‡‚å>ŸÏŒ>¾*m>¸Û$>³o>¼†€?‡‰?‰?êªö?ìD­?e`d?Iý?#?•óÔ?> ¸?Úë>Ž=ÊÝÙ>”­a>ì­T?–€ý?ÿk}?Ç Ð?]“?yfM? Ÿ?˜¦B?dÐ?[S?Øõ? t“?±jY?±•>ûôq>íÚZ>ñw>õcå>ï§á>í6ó?MÔè?m@ù>´!€=:J?B×¾?µˆ?å~Y@h½?å,/?•Q ?f{&>ív">ÿÇ?.ö?c}‹?êÛ?Ëj>¹c­>Ç„è>‡Ø=>…Ã?Èô—?Ï'ùÑ.?e&è?}6ò>åÿ÷>ܳ?Æ$?C¨M?“C¾?µã^?Ð?&?èú?®“æ?Rq¼?jÁ ?‚Cœ?lè?K!?³#=¾ìƒ>î¼?‚?r’C?}ƒ;?î×æÃ?[K±?njJ?;³>ž¢?50û?S/–?N °?YœY?…&l?›F4?q]Ý?#Ž?%çÃ?(°N??B?e5•?‚^?”êÕ?»ø©@:@ò?'+Â?D +l?Öé ?Ø~¥?‰¶À?‹Ò@#Õõ@%˜2>ëZ>ïÈ?P½Ú?_h¨?Äï?Û2ˆ?Q!@?§?½ÅÀ?ï¬:?!+'=0ZÐ>¢ð>ï×Ù?uÞ{?¬‘ø?xؽ?!‹…?¤[$@í‹?¬†Î>ÅN?QUñ?ÙÀæ?Ìc?‡š?¨’'@Kª@'±?ÓÉ?Ç{?p§i?uw5?‘ŒT?~Z?1k¬?#Ëÿ?D+Z?NCÀ?ð»´@\.?ŒNk?q2Ä?.=?6á>çßt>ÞŽÄ>öûœ>÷”L?Žó?µ2É?ŽV°?q¹?•'ª?£êÿ?«,¢?µsS?]â>Å@>ÆQº>».@?s‚f?Ûr?È/?Ÿ•ŒÌ?,nú?Ò¼“?Ä?e?™yâ?“×ì?rÈè?Q†Ó>›Z'>¢»>¨Ñ¯>Ö¸©?s0?cû>=<’>i‹?¾òw?½I‘?»¤/?º,·?ò‹ç?ó—€=¬¤<é.0?hg÷?}“?çã%?óêµ?¶Ða?«v?—På?˜ï?à3F?çG…?ŸÒ¢?‹>Þ?ƒqÈ?‰š¸?Žãñ?”1g?2ì¹>ô¢±?Vd¾?…\Ÿ@ˆ@,ב?Ú²?Œ}…?€›”?u +?<1?]P? О? @º>œêç=³6=9JO;àÉo>zµè?½1?u.Ô?®A?ª¥á?§±?¨B?¬ +n?•kˆ?u×s?gLÚ?N¨Q?ÑÔ)?ºòÔ?4k±?PP?›üå?ú¿?ŸýŸ?±Š?÷Q³?ðL÷f ?;È?Ž©?a?®Â–?Õé@U*Ð@B š?{±§?tšp>÷?´?¹²?¿Ž?Ýš†?ÇúÉ?Ô?Oƒb@wë?ÿ÷Á?ÓAF?ߤ@Í‘@.?¯%?]J?dð?jþ×?)¥¬?9–?w¶`?,ì?œ²|? ts@.@ Þ—>÷µ¾? [?xË«?€UT?ˆø?ŽÈ¤?w®A?‡ '@e@œ ?Ÿä? gH?„Qù?—f¤?÷ž8?óúÝ?w˜_?y©M?–(?‘ê?pB±?€Yò?ÔÙŒ?Ù–?Itg?;nù?£«}?˜H?±ëC?·TV?öPÍ?÷Yá?ïö?êü¿@]@@E;@ á@%cˆ@% ˆ@§@uJ@oó@k´@f?@ah@Ò,@#i? ÓB>±°2?ŽQ?”2°>ù >Øç¦?Ñ*ƒ?ï(ø?/+à>úúÚ@¨³@8?éž?×;Ð?´”¡?¹¼?‰ŠU?vY??«æ¸?¸´&@A›@ +|:@:@9¤?“+?L›Ž?()?R?}A2?ŽÅ¹?ª=‰?¸T€?ߊÄ?õ‚2?¥÷?u—?¡Ò1?¸z?¨¯m?¦¡Ú?žöe?¡œö?òW?u8?jz?w·ƒ?Àû ?ôýÔ?Êþ?¤q®?¶Í°?Å;ú?…í¿>ô´,?2Îó?y]I?tÛB?y£?° —@ý@M?ô9ð?ÍAU?t[?iL–?ZM¨?„žg?¶ë!?¶ÜÊ?¶Óç?¾Në?àZ?ÙPr?©H°?ÓØÓ@gq–@Sš‹?·Ú ?²Ù?s#¼?p<5? +|¾?æ2@ +Ì@­w@ Èþ@@¹?êþ?ñ®?¢Ô;?‘²®?óH´@BG?ݹ)?Ú`y?àšÄ?æãü?œÒ?rþ?Çfº?ìÙ>?ÄPÚ?©àÑ?®±À?¿øO?½Ôq?¨rv?Ñx¨@²¾@`È?ñQ?É”‘?zvH?£á@÷?¹&_<¸im>Yc+?p{·?e³½?Jõi?oýÜ?‡-õ?ß"?®Qè?¢»ž>ïè:>ïÒþ?Ù¶^?íFv?œˆ?˜5@k@;E@¼@„?‚»ù?ŒŽ@ c@bÅ@â†?Š­1?­*Ó?Ís?ܼý?Þ¬i?Í÷Å?ÅB]?­›g?g ­?¨@DÌh@.e?²?õò¼@ @ +f@±ç?À‚?±³˜?í‰ç@‘(?Ó8Ú?±u@lÒ?!ž­?lIl?¨>¥?ì?ÈU¥?—º?Çn‘@+p@+•0@BÁ@ 't?„¨´?y,?kÉ?k4)@)M@ªú@Ù¡@°×?ç¼Ñ?Ð0G?ÉÃn?¼ö¤?…Ý]?K2M?‰½½?¯¡¸?®æ2?¯U2?œSH?iÖä?‡b_?ÚP?Ü)4@ ]¥@èl@m—@òä?‘=?\»?S¾>?`-o?hÉd?esi?Ê(H@×ÿ?µÔÌ?fÉŠ?ƒÜ¥?E?jAQ>)èC>“º¨?¡‘L?£?)@>蘕?ÓòŒ?ج~?­@’?µ<†?´"?­Ad?‰¼é?O¼ê?›¸ ?Ö•y?¸X‘?Ÿg?«°?®ˆ‹?Âé·@'@$ŸU@ @Ÿá?©ÉÑ?¬¡h?ªï=ÖMÄ?Më?¨o?ÆêÊ?ïöæ?ÜÉx?“ d?Rq?•—d?¡Î³@%TR@'?¢? AÔ?ÜΕ?åZä@§@*à ?ÿo?ºC©?Ħ?Êÿ?±>?~ö?ŽÚ~?µÆF?°²@ZëK@`R?§[o?b˜´?+V!?–$?®å4?ûèî?á–?®ò¦?ÀùÊ@!„®@!^Ž?§=D?¢h?që7?c ?©à·î?Q¥?ÌU?Ë}?ý"?ço?‹„y?‚†b?“º ?ž³P?‚ª+?`[?¹âô@ +àÞ@û¡?ȹ?à ?ÏšÝ?à??éÜ$?ä-‚? FC<¯÷`>†î?+rÒ?g­±??(?;Ý6?º?´?´‹E@=®@Ï?Ï ©?­{Æ?š:ï?ŒäU?Œ†Q?‡)n?›„Þ?ºi?ÅYº?›ÉÖ?£uF?~ÌS?|q¯?‰Ÿµ?•Ô?ŒƒÇ?y¼Ä?¬]d@&D@ ýR?x7K?b¦~?Ÿ o?±gO?™ÚD?†P#?¥Ka?Å×0?©6Ú?£†„?£zÐ>~>”?û¤@*¥—@8|@Rˆ@;]r?Î|@?Ñêb?£XÏ?¢òî?¢èz?¢ÜÏ?¼¾?¾?ªHÇ?¢¶ ?¡km?Ÿf§?¢2ì?ÌLe?ÂH¶?Ó?ƒ“?º¢Ê?ÚýÓ?éK@¢K@ÍZ?©ÿË?Áµx?\a³?0lÞ?FÔ`?lÜÝ?“@J?»10?Ã%€?¢5í?¢>6?×Ñ?ØW1?_åŸ?'W¯?•z?Ý®+?ÚW®?¢þ8? µ?«8¢?±q”?VK?Z2?^ÕÉ?X¤µ?ëŽ=8¯Š>Z«x?XÞq?Wš ?:¬à?SÇM?IV?,:.>ý0>Ùa?ƒm?oÀ¶?ª‰í@#Q‚@#_n?êp4?×`?Ib±>þí#>Û5w>ÈÿÑ>¨q>ΫŽ&>Åhú?”äF?¥Æ?%>šÉº>ñ£?"S?âÍ!>ã06=[=ƒÔB>ý S?Ñê?-1O?SÝ1?VÊ?U9L?bÞ7?gXi>ã<>âØ?-9@?X6ô?Žès?ˆ² ?`‚¶?‡ù“?±k·?¨ïÔ?ˆ| ?6L>VHC?ZŽÏ?+Ñ1;]>õ„+?¾¥?^>†áû>›>WšZ>æ™À>Ny>’Áö>üR¾>$y™?0—U?{Ù…>-¬,>p® > >©>(/”=K†½@k @8‰j?D3Ë?ßÇ>®ßƒ=†]=–`|?Úß=­QÀ>cÂn?3q!?/´²?&?Æl?VŸ ?`»?‡4?‘¯Ô?GC;>“Û>€ó¼>Ǹ>/ÛÔ?„lÓ?„çQ?JÐ(?>¦? ï<>äŠ$?+èu?hN?+žP>o«>‘3Z?™Ô“?™ß~>ò¸ì>æð>æļ>æõ>?w!É?™éÆ?_Ll?:?)Cª?D]s?4·×>èYÝ>î_h?iF?ái>;xù>/:u?(™í?êy¶? +{?r?g­x>qæ+>mÝ ?‹%u?’Cp?D²î?;%?5Æ)?*´?”Á¨?Á!?”Ž6?@Ûµ>ôøW>6» >û¡ü?‹{ì?r¸Ë?S?í>>ì 7? Œ?Úæã?Û#k>ü10>ì\>?æü¯?ú`?ñ?l†ø?&™>ì›5>ì¡M>ì«?È'©@ ü?Ësö?è>›/ø>}ø>ìê_?F³F?ìéG?Û¤Ï?m>?f:>í2>íå>í>í"V=¡¡=Mû<>ã-;?^?‚ç‰?’vh?…j?ƒ5M?¢p?„³‹?‰Ù$?‡~&?Œ–ˆ?Œ!?7û“>)B7?;ü3@o/?Ómv>‡ ã>§3Ú?5Åô?-–æ?5Ä??šÈ>ÝM>ÍÜD?"Û?%š©>rœg>(Á?&'©?AP¼?V†ö?Xú?(9ë?h±?=Y?Q#?…9ë?©¨Y?Gª=HÉì=]—L=oY>)üF>î X?H¿p?î¿?ÑfÖ?â?Ó:?ƒo£?‡bý?aµT?^ ?lËO?nQy?—p¬?—ñh?wbÒ?nlD?«Ð?µö-?–5¹?‡¿¥?…,?‚Hô?“ g?X?R¶¿>î·Œ?D˜Ü?˜4?›–2?¦I—?œ“ü?nìû?qðª?f©#?€Ù?Ò¡ ?Ì`ó?ȸ"?Äç>®ÿ>vÎ>ëÊM>ïQ§>?§=Òæò?Ñ…?ïeE?:>ù^Ê>Ç? 4`?b*0?1L)?þ$? >ïáý?bð!?§nÇ?`Ž>¤¥?3©?ž6?—ü?‘Ã?—=?¬Oz?Ämõ?ðn“?ÝýÚ?’"ì?™Óx?Ë?D?Å-Ž?µ¶µ?³ðŒ>®Ü>½¢V?’¸`?.±?]K³?_°'?¨?¯Y³>¸=á×H?F=À?q_p?¦Þ³?µ ?‰´"?q—¥?¡”?µDA?j*Ö?&pÊ?pÄl?‰„Œ?'Ã!>ªbZ?5á?Ž>q?X‘"?Ú ?1>òSÑ?$¶Ù?u—M?Rzs? ª??Ùc?=?[Îd>²2=Ö»@>&w?Y,K?`«A?s½?‹rj?ÿ£?úÇX?ðƒX?òAþ?ódõ?ìo: ?ä<ø\?qq˜?/ &?+Šè?([@‡¥@5ú6?êÿ?·žÙ?u>"?C×m?ˆuì?”žD?{W¡?jÔg?šóÔ?´ÌÅ?·´N?·tþ?‘û4?ng,?¹—Z?îV“?—þP?%Öª?¼aê@ B?óÇQ?ÑŽ(?¹“?¢—ß?§ð-?©ö?›E?uú™?[Q?4E”?ÃŽ‡@,'(@ ý8?º¡a?­0V?ÿp?låŽ>ö\Ô?{le?쉨?Õ~l?¬¨—?Åà¡?ñö0@â@WÀŒ@-þa?µÎQ? |Í?h  ?S„?Îü÷?ªÁÍ??@JR?Ž.?²\¯@ζ@sA?Ü‚ ?ÃTd?x¶©?b À?@u?^C©?’ý·?© ?÷<&?ê°Ï?ÈþR?®ô=>÷O‰?CÀÃ?莑?ÉïË? -?~â?wŽ§?¡ìâ@•Y@ˆ¦@(•@”?¹œ§?»×Õ?ȯÿ?Â\ð?“Bã?²ã@-û@“^?¹®V?˜“?ù+è?íÓ?µM?fœ{?-ª*?jK>‹ŸÞ>­H?w›ò?ŒßÂ@‡³@æ?¹¸8?ªCÝ>÷žO? +Ÿ6?wœR?‰m?êǺ?Ú‡¨?w—Ô?Šýª@ +þÌ@0@'…R@6·?—1À?’Ç×?Ö4;?ÖèJ?µið?°ê;?¹›–?°kÁ>ž. +>µ…6?¸‹ó®Ö?Åó‰?×ÉS>µø½>,›ì?«„>ÿ·È?jx)?q¡@)T@5 Î?Ö])?ÅK?­ù?§5t?¤¥¹?¢“@8Æ@ ô?ú2”?úD%?ðé>?çƒ5?°\#?¦*?Yì?A–?ÚŸ¿?ý’ ?ÉÕ,?¸@9?ŒØ?x”Î?'ºB?½™?'Q?(!5?­•?ÓÍ1?cbû>õ4m?½{@›Ç?ˆˆ­>áVš?“LŸ?ÞBN?ÞãÃ?ÏÐÂ?Õ¥ö?é/¨?¥I?)_u?|èÏ?·X·?œ $?t[?Ãäg@*Ú@´ @óè®?C,?¶Ùê?¨Óã?ˆ¿Ä?Ž™b?”yE?œ4.?›,-?èˆ'@©†@ Ý?óú?ßÍ]?Ë…??ÒØ.?DZ‰?¼‘˜?Èë?@"Èc@$Ÿµ?À}%?²";?´™]?µÂL@C@^ñ?ÇÕ?^Ñ?†Dš?‚Ù°?¦|€?´s@ؽ@qI@H\@ TL?ç{I?É8O@@U±?ðG.?´Ö?ºå?ÇÞ.@T@+b;@$¦ˆ@&^@šS>öYz?ÇO?paK?1Ñ?ží0?“O,?p&?Šü:@¯å@ƒ?k!Ž?]3?Œ¼?Š&?ÐÜ?t?Ñ'g?êï2@¿@tÄ?ËùÆ?¤_ã?²Ob?ο6@“Ü@„s?ü®?ð6E@ m‰@'%@öP@3ê@Gb@%tý@ÙÚ>íÛ³?)šÒ?« É?¨¦?ÈRŒ?ÊÈ!?‰Eº?ï?±Ýl?±Þ?Ø « à?¬¨T?¤Ü¬?~ì¥?—¤m@´s@”ª?G—Ý>ï$Ý?1tB?1J·?P4?gt?3§?±qI?¡½?®?†r?‹;?¥Ì@7_N@A²?ÅQ´?¡uI?ýû@R`?ŒÂ?HåG?I‰?<?«Z?Æýß?®r`?;?T?M +Š?Ú› +?ßdÌ?eÇ”?†Üá?ÈÄ +?Ç,Þ?ãýÑ?܈?Ø\?í{ç@M€@U@ îH?©Oª?¤Öý?k¬?uæ"?‰§X?©¾?Qq?„K;?í,™@oÌ?Ø ½?±U?º³?Ý’m?Êá?{(±?‚ÐÅ?/‹?Š²r? Éö>ßÌ%?ñ¢?ñ±?‹–?Ø÷æ?¥ +!?<¶˜?hX8?­Õ ?ÈÉ´?ü-#?æz»?i ?J¢ë?§0>èï?§º@ +Õ;@‚?Ýð_?ØÞ?–±•?‹—@è}@ ?èa?KqÄ>°„›>àrn?¥­-?§{L?º)?ÅI»?ƒƒ?aþq@Y"×@y0@$ð?¶‚6?¬Où?šuS?{ËE?@ÁÂ?L)>çÖN>â(ì?‰ š?˜Èƒ?¨ +¦?¬Ö¤?“‘K?Iî?O›@0¤@îÁ@<(“@1ÍÜ?ÍAs?£ÍŠ?§uæ?¡ ê?Æb_@'{@Ð.?¦¬?£hC>æú>«Š?˜–›?á[û@¥@ÒÝ@”?ÀÆg?­$´?×÷J?ÒZ"?ï$Ø?éç?È4?ÈV)?Á€“?¢¤¶?˜ã¿?YõD?^?'>–ó>ìSD?yUì?‡¡?éî>@"aÈ@l…?ÕC?æ¿Ú@2¢«@&v­?­¨>¼¥?)ù?5iº?@òõ?5e >ê}¨>ì…?§V@%@ÞÀ?bx>ØKa>õh>úz©?Yê@?×~§?Ò;?Ëß?Ųý? J>Ø\?5.ö?X”í?…&4?¢¿?˜|y?—ß•?{`>9ð>l(2??B?|¢P?(]“>ÖèA?AÕ@?™Ôê?“^†ø >íè ?¤]%?žŸ€>Cý%=7JÑ?@•I?j¡ÿ>Àò>"‡>ÜT¦?0èÀ?4¼u?99_?Sd?]²K?`#j?™z¿?“¨?kí?Jå1?x°R?”-Î?¢˜>?¦`??k‹x?#0y? D]>P ñ>³Îú?5Žþ?Ô->âÚÄ>ã=·>ÍÔ >²ðœ>ÛN>äÖî=Õ¿>ðý?n>èäÌ>ûV>ß×>ã±>µ‹D>éy4>êd>êˆ>˜t ;7úÁ>cq)?# ??C±?[›e?iÄ?$È>Ú½¥>Ö@u>î„°>äó1?!´´?œk’?q=->~@>=©×<± <9µ<\­€=[=Tl>!öc>™z©>C}D=¤å;Ég]…¸Æ@%2U?õ²? rá>9äâ7<>.•L>~N[?)u?^ÕÉ?KD)>ߘU>ßôv?Zh?`¨?Žiq?›y¬?.ʲ>(t¢>V1+>~õ>êV>ö„l>õnK?w?ž|>ü€>ä}Ü?Fõ?†¸€?E\¡>”b2?‡„?¬pü?¨Û ?=G¥?=D«?€}-?ƒog?Ìö?çN¾?}JP>ç®ÿ>çÙŽ>èŠ>·6`>3œâ>5¨¬>7غ>v+ú?P¯?N]±?²Ç¨?¸E‚?€—?i˜È?íö>éÖe>Ø >ÖÃS?^ëÓ?¯¶Þ?kq?m1¯?fì?kÁŽ?r&ç?eÎ?j¡ù?æ0e?åk">¢™£>KŸ°?IbÄ?kkK?#>ëÍ?^ ?”!]?œ¬?HNy?bä4?Ša$?b €>ÖéÍ>Ð >ìü? +{÷?„Î?üï>ìN1>ìZi?ç$Õ?ïb9?„[é?l‚ë?)öß?M? ›?þÄ>óÍž>ì²}?B)š?xH>üš?>>ã+>ìáˆ?Bç?±èî?‡ï)=hø=íè>íŠ?}Ã?Ûl›?Ô¶„<'õ2>Üw0>í,S?o:ì?ƒ†Ö?ÊÏ?¢í?3>2>íH,?@ÁÓ?mR@?*Òë?}5>ÜŸ>Žò1?,¨ˆ?ª_Õ?ˆàr>íu~>ç‰Â>òÑÁ? Ñ…? Y`?mn?m?j«G?Aq?CãW?"=@?×¼?¦|­?²@^?ÉŽÔ?ÒU–?™R?‚ ?Ï!ñ?ýZ?¥Ú-?T±/?*­D>üöl?1 +ç?mèq?>Þl>íð]>¢Ë¬=1IÀ>—ø?f ?‡eƒ?àçÝ?×Ã!?©`©?¨ä?¦Àõ?¤`7>±­>>¾¸?é|å?òŸ?FÒ ?*}F?¿·?Ö_´?ÕÊ?ÓªÆ?¤Ït?”To?#ÜÛ>j‚?(g?=¥„?¿M>î¹ ?¶½?#C§?_ƾ?®«æ?ÀJc?è²K?˵«>îþh?lQ?†kÄ?yòF>ï&R?Æ@üä@í¨?· c?³Þ?Zz>ïl?>ß½é>Ö¡?R¸Ê?o–½?”w.?›Z“?·ÝŒ?Â$?‘~˜?oÕT?, >ïì×?q‚¨?´¿?¨Ô'?˜´®?~¨.?3L•?ov£?»;?¬Õ—?…`Ã?‘0u?³b?ž 9>«Š >Íè%? r?mØ?åÃA?ã!´?'µl?¼Ú?e…î?j½Ö@+gÍ@4’œ?’6,?q:|>E¢À=Áïê=Ç£=è>ý‘Ê?"°á?šã>ñ§'?]’Š?‰×ö?©æû?µ.W?B]X>»ýÝ>­Vx>†íÒ?_Ð?¶fÞ?r2b>òKV?b>Ð?§9Ð?£Iô?µå!?’È©?Õæ?ZÞ>§Hº>¹/>?›A?0Ò?duŽ?¤'î@2jj@%5?¶^Ë?¶ià?·Ï?«¾³>ã`³>ï*U?s|)?ˆ_†@]è\@W<`?áü?mª?¤û?£m?ò>? ©±?o‡?t}?t ö?t*G?vs†?Üs?’µ­?’U˜?VW‡?K3C@&¤@A7ò?õû€?Å?C„> ¸ô?Ü<~@Ìt?7ð>éFž>õ†Œ>õ!â?ŽUQ?·ß?˜E?uA`?¥p?ÁKf?êÇ?[”K?©U[?ÙLC?¡—Ê?t@¬?öûŽ@'$[@¨[?Óñ#?–-I?9ä?˜D?ÊQ4?íÓí@c@XC@OA?ö/?ÈZG? Z?@8A?u·V?©=?‰ü?"Ú‡??•¸?xpL?wG(?‚É?œø-?¸ñR?ÊŸ‰?äJ‡?¬ÞÆ?/ƒT?Cñæ?Tðç?]Âü?vÓ?ŠR’?¬Ú•?¥ ?“¡‚?®”ƒ?Öi|?¿lT?‰v7?„¨1?Ž¾?¶¢I@4·?Ìw±>÷&ž?"z??kZT?mEõ?Ç¿?•},?¸5Y?Ù¾ê@wX@%™@7¿@‘˜?Ÿ,Ï?¬R?¹Š??¹µ?¹Œr?›V>ÿ?Nw?ág?Ðuz?r"?„ ?ˆ±?®=¬?íÉN?çuL?¼œü?¸ð?‹3?‹¬ê?‘öa?l“v=Ú#Y>§ib?¹¡j?£‡b>÷æ?:`?ïM~?ã¬w?Âù?¸—ê?w}l?€ z?žB˜5w=¯¢@'@" ø?ÛÛ”?¹ØÂ?‰,”?ux+?  +)?§Ê¾?{£o?ZRÈ?ÌJY?õ,È?ä]?Ñ/t?®?²sN?Ëæ>?Èr6?åÉú?ôþ›@qŠ@?¼Ô@ ÷?À¾ú?ì0 @‰.?ï•?·BÖ?ÑÛ”?é_Ø?×›Ñ?Íbå?ûYJ@3?Þêô?T‚D?‘‹Ð?¿?ÒÌ¢@b,?ÉŠö?#T8?œÇ>ón*?paB@_@?…_x?…™?·2w?ßbè@ZéÞ@D‹?à þ?Ä:j?¢ùÂ?Ÿª+?ÄÁª?ÍòT?¸~s?½ÿ?¶Þ\?µ¬Œ?õr…@Ôˆ?h ?%??üFæ@Ž›?dõ´?%Ý?t]è?•8š@wá@à©@š@ ™x?às?ÌÊ·?ÆTì?´¾à?–£³?pÕÙ@ þ0@jïþ@)5?‚6?Ô?³ëv?Ÿ;Œ?pF ?]Iþ?,7?s^f?ð–9?ã™ä?â}Œ?ìh+?³Ã9?²¨íú¯?Jõé?çz²?Ó!Û?„Mp?–ÑØ@ÅÂ?ÿÊÖ?ï ®?çsö?ÓwX?Ã:8?‹¬Ó?à/@4è6@_=@Ñ)?±Kò?Rr?f•?Cô?li?â\Ã@4¿@CÂ@GÈ÷@ä3?Œ.Ì?˜ú}?ž¡n?œ ì?éa?ñêÞ@+qÖ@%Nò@¥Ý@>ø@eW?ö„?“(?Vd >`ÏÔ?ËNy@!›¬?Ô<3?iø—?¥]?âø?߈ƒ?é¢~?ÜFÅ?¯£?²T]?ÌDK?οz?šgç?ž©"?ãóÂ?èÝd@"-t@.Q‘@%É@@s.?Øu#?£Ç?h+ð?°?í@ E¾?ü‚¹?¢š ?¹ ¡@*j¦@!1ð>ê91?¾°?Óp1?î¤w?—J??‰ §@®@ãã?ÎìØ?„›Q?—+!?¬×–?˜÷?f¥ ?E5±?hü?BðQ?³*™?¥½/?àâ´?ê4d?Ÿ¬v?›"Þ?Õo ?åEã?¾Æ?«“P?ªrv?«®Ô?Ç4F?çƒ?Çb¢?}?œ@ú@¨ö@©@F<@UÓ?c!®?kÆ?†`j?“G ?·z‹?Åç$?–i‚?o´i?“2±?¹¦?³'D?ª-×?­KÖ@&›u@?ë°¤?âm\?¸$*?¿\?­F^?–‚?¢v?½ ß?Å ?©uÅ?¢. ?axˆ?a_á@ô¾@•?¿õõ?´°È@8×V@uéQ@C±§@ +I†?½2e>C5Š? È£?¾ç?´W>?ÄÆL?¿`?UC3?#þ?¦'Ð?Û< ?¨a?t¿o?–É?®Í?“¨µ?)%Õ?F^@&œ˜@/òï?Q›=Æ9­?‹rË?Ìlh?çñ@ +Å(@è€?Ý×7?ת?«ð?¼m“@#@&`Ò?ö}.?Í™9?ÈäQ?µ µ? &?¥™0?ŸDñ?xiÛ?m*@ND@ñ?´m?Äúö?ÊZ(?»$•?à…@ `W?çjË>Û›±>Û×ì?[Yj?TÈ>±V­>µ4 +?†q%?¾Ø?â@q@Ç^@ë¾?³B??¥4L?¯ÿA?Ç"p?ÍÁë?ÅÝ?¡½?–¾o?–¢ÿ?o…Ö?€ZŒ?ØÐ?Öv?¿k?¬} ?FíÖ?"]?ƒÝ‚?¹ßÚ?îWW@4S’@5rï?§@Š?­'Ó?ÁW¢?Ï1×?’ö›?XØ?q}È?’`|?ž9Ž?¡’¯?œ U>®„¥>1f?¯àÿ?ÑÓˆ@wn@w$@*§?£XÉ?«‹å?ó#\@¤>÷ÿ¹>VôZ?dXÊ?¢#?ñ 7@6æÄ@*IÞ?ÅÁD?³Z@.÷@áv?€}?|Æ?3M?X0D?|;é?¥øt?¢µÇ?ME.?r~û>ù#>Øg@?FGu?f$‚?†„E?¢m¯?­yn?ÊB;?½«â>YýÒ>'Û>™M>J;(=ju"<”p=Ü“¸>œXà? DŽ?_›1?G;p?“SÅ?™¿ ?gÒ?[ø?=s?£Öí?k¹>ÚÁT?!+ï?¤PÛ?¤×L?¨àT?¤Gw?É©?I?Bú?9âv?”ý?‹>½t=#g>}5?¢>ò?™¥I?3oû?MÏ ?Š2y?”VU?ê>ÈdR?0íÃ?g|?ƒÆ.?‡@b?x?RÞ?p¶÷?øE·?ÅΘ>ë¥á>ãL6>ãª>äí>_a?¢.¡?å–Ö?2¤=‘Br>š>è”>é}>é˜ý?ßÁ?»>ñGÏ>ä¯N>ÙÌ,>ìò]>¼²`>kw#Xš>®<#?$L?Huð>®ƒ>d?6>ö"ÿ>TB>ëí>"å>ÖW>þùZ=@ß=˜²?ê-i?·vh?ß}@$¼;?ìá?‰*>?jB>FO>H4>” +Ù>Æ>÷0³?/«Þ?'Þ->»>¹óÊ?žðí?³„?ƒ>7²í>â…õ>Ó4¸>Š¨>†¢’>-î>/e>/Aƒ>/!™>ìNJ?NS? +Ð3>ås? ´y?Kiø?F}œ?Çþ?E?ï©?0Ì?j‰#?}ÙÝ?SS'?8Ør?KË>è +&?D±?JXS? –¦>„ýÌ>ªyK?Z–}?_;]?¨ß:?©Ã¬?ìi>lè×?ZšM?¯·Ó?ˆ˜­?8ib?;=v?+?£?D¤?–4?mÀ?Ûé?Ý +®?W)÷?R¹¬?;ÅÒ??4Ð?Šøq?Ž‚‘>Ðhá><ì?8¤¸?Œ%]?EGv>ëî??o?‘À#?_q>³I¬>ˆ¼ç=tHB>¿c">½°>ýÖ>!¢?iL½?l‚ð?¬3÷?±oÐ?pf?\ÈÐ?ªù>ì³Ä?­4Œ?êË>?F¸ +9“À;¶ï`?Î?±°i?j´•=÷g>íS>ú h?(\}?)Q•>Ãî°>¸ïˆ=ÂÈ=ÕF?ÈU6?Îoý?e„>ÑrÒ?Ÿm)?²…œ?PlK?"Ñ?|ÅH?ÈB?‚ãÝ?{¯§?N¿Ý?/N¤?4Wz?0JÞ?úA>Ô0•?“¹?™Ý¹?™‡ý?Œ¨s?ƒ¤K?ææ?íÉ?K*?O(W?±(?²4¥?_ì¤?WJL?–T½? Ì2>­ZÕ=H9k=Šn==q)?0…?kEj?m€Ÿ?mÑœ?“îq?¯Ä—?wÍr>Þ^¿>ç2p?ð¦?¡r2@Bœ @)?²ˆ®?¹óÓ?ß´Z?ϪÓ>©õñ>¤œ•?ˆÏ?åZ>¸Q—>©?qaÃ?‹/«?i»•?jN?G÷ú?.Qy>SÎ4?B$0?“¤?<À >î +?E¬?#É'>õ(Î>¢Š +>WŠ¤=« >rù ?ú?d C?óê?ÔM›?ü>øÇ^>ïÛ>þ¥5?qÄô?wGå?ᶖ?Þ-À? ¡a>ï`4?È”*?Ø)Þ?’*º?†hì?dI?a§´?6?$?!.#?B§>ïË?É[? ke?›.?Ò1Þ?ÐX9?É|-?Äê?ÀZï?¥ ì?v9Ø?D“§>ð[µ>ÕFL>mFÄ?'pb@zª@ðÂ?«ãi?±Ì8?Úé„?Õמ>ú?I?´~P?µE ?tmR?q«>ð¶>×à>Ñ3€>Ê×O>éc>ñk ?ÏI§?íž%?“d?qŸõ?Î'?ñº¿?š¸k?Oº?gU?vs2?¬&y?ÚAÓ?—0ú?*¾Ž?ÍÊx@(è@µ?£Œ?‹“ ?T¢ª?ˆ¾?µóŠ?™—Þ?Q£«?GYx?ó‚?m[#?òî?ä#´?¶Gd?ç@=Šuç>2e>óBd? _C?s^?h*9?Qâ$?`ú¦>o->rd?ß­g?リ@.@ ûþ?šä!?šI?˜•?–ß@?7tE?,Ôû?˜Cæ?¡M©?‹°>ô^z?OÛ?—úª?ÂÙ›?Ò†\?“ða?‚"¾?Üœ?ôÀY>î÷Y<496?7Šî?s˜Ì?ÑHP?ðÉ?j÷Ð? +K;?Ûö@ Èc?îù£?×?¤&Ö?wL?kv‚?H¤H@ t­@E9ì@Ö›?¸> ?¥*?‘M"?øëh@%Çj?õˆm?¸=`?Ü€ª?õû?Œ ?9?›$%?ìÉí?¡ã‡?œ?Ѷs@5 @)ÙÇ@»-?¦U=ið?1e6?¸Üà?¼øŽ?Ä7è? Êƒ?XD†?=7?!h?%M…?)5•?JÁÙ?vÇZ?Šoü?šš)?ÄmÃ@õ¯@æbò?jH^?æóŒ?Ót?ÀZK?´:$?˜T¦?¢Çµ?É™à?©.š?KàÇ?ER?Â?IR×?¬FÌ?½Í‚?îeH?Õ°?€m?Œ†¯?¹‘e?Ž…ð?PÏ?ÂõÎ?ÓWŸ?÷VÈ?ö°%?ú×2@Àä@ú?óT¤?wG€?m +¥?¡>øÛ>„‘>·d¤?ŽùÅ?†b÷?w%Ô?w#?x’?†=?³ü{?·'x?ëCˆ?äB¶?6A?8ôË>öô"?Úi?Ô ì?ÕØ1@/]@ f@$@³»?ƒ=[?4?äX±?ïò@?¹@;*b?ån ?èŸ?±•¥?¸v¼@û]@tT@Q'¹@M]­?ÕµÁ?Û¦C?Vq?_%†?wcÚ?væ?.õ‡?0¦¡@ˆ‹@¹Ï?É%?Å@.'½@:9ÿ@ôj˜J?¢Åü?ê‚+@ ‡Ó@@€?ô—\?è¹9?æ5¥?c)§=¨ò#?ˆ‰?òO9?Ô¨?¾»d?¢ëÅ?‡VÝ?„¢Ø?‰?.?ÃÊz?ñˆÓ?õ–‰@ (!@^–?ó5&?Êd?N]?^)Ø?^¤¡?˜üC@Té@Þ@5€G@“y?ÀI?œ8‹@†Pã@xòé@‚¯@±š@ï@[°?ÜÍH?Ôƒ}?åî?ؘë?Þj¸?ØØý?‹xS?„Sˆ?ý3S@wÿ?T‘?r ?n¿t?fÎÞ@ Ê@{J@„õ€@• l@B®~@¼s?ú€Ó?Í^«?DZ¾?Ë?“w ?Qä?àb{@78@iÞ?íö1@’ˆ@XÁ?ü†7?«‡Œ?—­F?QD?Gùå?]ðÖ?•,Û?ód•?åã¬?ã›t?Ø |?]°¨?HÐ@ˆ@ Æ>f¾ú;`I@°ß@¹Ö?ñ¹7?âp‹?ÞÇ@?Û!/?ÅÔ”?Ç%½?Ñð"?ÜÁv?óo@m¥?Êàl?‚ +?V…? D?"/w?k!Â?mzœ?ˆ +?¯/£@Ç0@Ã?øÄÔ@(@"-@ 5–@ùy@ ø³?©&†?ŸšÔ?*ýö>ö¤þ?““î?±9‡?„S?T¨z?-V.? Z? +‘?ëÍ—@·€@Yõš@$nø?4d?•ÌŠ@,²p@˯?°¨T?­îQ?Å?+f?€÷=?•=)@ +$@šN?°)b?¢#Z?ÝE>|}U@­@^ì;@ ^Å?j†?p,?‚Ÿ?Šsö?’à?©|º?Ñ×È?Í‚ž?É'ò?ÂØ]?—Ë ?$Ø?ÊyZ?ÚÆí?æò?ëB<@Œq@)Wõ?¹ˆ ?d_£?œþ-?±ó?áÅØ@ €?úRõ?îÜv@=@¶¼@ +´–?¨Ç5?Ÿ­d?~.?ƒz*?kج?fï?¢–“?Â9?èÿÝ?æXP?·»÷?¢n?² +?ã{´?ÉŸž?—w;?¤\ö@µ@Á?ä™Á?Ûb?‹Hè?€¦G?»g?××1?–ßú?i5›?®þŽ?Ù+â?Òb?Ö%?é†Z?ùåë?øà]@"øÊ@#£ ?qo?g£í@Mz @Rn9@´?Ôͪ?7†?vÙC?fÆ›?Æ?d% +?Êš§?Î?®„@?¨Ì?„Y±?˜r×?n?2?P >â.K?fS±?‘+?:Ò>A d? 6?àI+?ÄúÍ?ug?Çç@2u·@6@¡?†Ö˜?;Ò?·›¡?à³Í?ªªJ?aôá?¨bd?éÇ9?ÌF6?»óg?¿,á?“U’?£6>?‚ä?‹#«?v§€?_Žm?Âç2?ý%É?Ìšä?–Eç?œ¾ø?ˆõ ?„.Ú?Ïöa?ÕNk@+ýß@Aå?ðe¢?¯ßæ?ƒ¾H?Jg?šb§?ÝÅJ?ÒÁ?X^?,,@4»û@AHï?dZ>²jÔ?nuz?±Q?Óm?æ¾?ÍËr?¥i¨?¥R/?¤ãh?«(@ëd@áu?ÂD?‡„1?Ø’@ Vc?å²Ï>õüÝ>ç!ÿ?¢òÕ?_â>ù;>îí?bÈ?¤0·?´Jƒ?ÜÁ‡@“f@"3<@"Œ?Nù?]â?…õ×?œíæ?ÅÌÐ?»7À?©Ç]?¹5H?–”E>é÷?­ê?ƒ÷©?‘á?¦á?–rx?¬²¡?µÑ—?ŽJ¯?^²Ò?jé*?hïI?tÆ­?»ÃJ?¿p?£±?M˜?S>ü§)?2Ï2?Ôª¾?Îœq?‚õ?lõñ?¸$?æ3?ò27?þI-@ @%d?øNÁ?®³ø?´¾A?«Õõ?’îE?—YE?¢Æ?‹†±?XëÖ?t¬?/K?‹ï7?¸„?¾=Ž?B—ñ?"¼?\qÂ?`óH?²S@à4@ ¬B?àåv?Áë,?*Ww? E·?•8D?«Ÿ^?¢S•?¢a4?ÏHõ@"Nd@©ž?JZ~?1NÌ?ƒ¸¦?™eÍ?Ä5?ÈtO?t…Õ>–Õ>ñG?£+¡?¢Ê?AGÚ?NA?€:>æ3O?C×û?yø¹?]Àû?!„ò?0~;?‰®‡?™ùá?ÚOX?ÙYZ?ÃQ?®Ú??sè?'ê?e½œ?y?@¾>Ý3}>à"?…?&Dâ>Þ,Á>Þr6?Rß?_Ë>ŠŒ›<}Ã?F¾4? ½;?xi?C3?_€R?ˆ'?× p@^¿æ@gö{?àW?Δa>æ‹ >ä'¤>Ü' ?ß?#' ?>’ò?—ñs?­½Ñ>þ>=Ä>>WÙ¬>·dó>éÁ—?#s—?c!o?Dõ=7jH>ÁO‘?EÐo>çÓ)>/€Õ>ïªù?ü"?oõ_?^sÐ?BÄë>͆3? úÁ?·N(?TÙ<ßX0<î>v Î>¾†ä>Ü ->ù&Š>ø½3??e?¢)Ú?bÿ>†ç>e ?›^@[±Ã?öÅS?^g=ï>ëƒ3>éM?DÅ_?o?¡?K?"Cß? ë²?”ü½?¡B˜>½h>eî>â~$>âÎs>ã >í%Õ?`ß?Æ€<è¬T>;Ï>< ²>=À>=x>˜6û>åìÂ?¶¢?68Q?,%Î>…aõ>„ñ>?`">FèÏ>°Æº>ÊCŠ>Œ©±>N Ã?*æ?Žxé?xhM?2û ?2ƒ+?2G?.Gz?,ûX?-Æ~>ìáh>饠?Z?mau?7Ú>êO?…ÓI?¯ÁQ?Œ¦u?NZQ?€8¥?§ +@?•ˆ¶?jêQ?v¦?ŒO?‰k?…“?…6È>À>›ÒH?Çrš?Û¾¢?7(O>ëµä>ëȘ>ëÕƒ? +%$?yù?ú?¼2>Îc>>©>U4å>zzú>#~7>ƒ–?]´‘?_V”?`ù?d $?¨­p?ªáf=Ö÷>ÉJ>ìä¿=å y?n„?­¸÷?N1˜>àcÅ?3‹d?vÛC?;Kb>Ñ|?[»?Ò¡?¥HÐ>í â? +ƒp?S™»?6§<Þ¶?[\}?b‹?xý?l= +?k¥Ë?zâs?!>íA?d÷?ŠkZ?w¿#?hìŸ?M{Ž?/½»?/Ý?8Ê?j£S?Ž·n?•?Œlb?ˆö|?‹KR?„§f?KbN?Lïë?1zv?4T¬?™™?šªï>ð_ú>í–”>í›ñ>í Ê>í£m>í¨?V'¨?m² +?Õz>í·/>îbÔ>òÞ¨?¤o!?éô?ªœ?a Y?/5>íàµ?oßù?àã¡?È4°?…9@?}KA?\\?c¿Ž?Fí~?DEÎ?A™³?C~­?€´Ñ?{–þ?7G‰?4$L>öˆú>Þ6>÷,–? +9ü>IF?ň@ M?y¤›>«Ó&?œNC?òÊ??ÕN'?²ü?oÇ>Íú¹?Bÿ±?¨q;?ÓA­@×@8Ó@Jœ?øBh>ïÏ?Ï™?¯‰&?®©›?º?¹¯º?\`‹?Y,~?¼¹ƒ?Á X?ù5ü?÷ûì?ÀeÌ?³6 ?at?A]²?>cø?;fz?mÛÃ?v¨?Ó–@Î@‚@û@"u@+«@ “3?Ý”ô?£˜ú?f?4®7?pV?™µ§?ç'ã?ÒFÙ?ŠÄh?Xc¤=A÷™>)®‹?p)n?cµî>÷ 5?PW?°¯Ù?¯!V?¦„I?£,ê>üTË>ñ5Ä?’ùá?–‰Ù?Ì«ç?Ùóô?ŠŸ*?qÊ?œ“Ï?ª®Ü? ª?i¥:?p;˜?vÎ ?Ž/?’³Y?Α?rE?¨y!?ÈÌ?¦‡Ø?‰ô?Cju>òb-?_g?¬m?NÅ]==°Ò?OD)?ý ’?õÆh?òÓâ?¹?°u?Bt ?¦¶??ˆA>ó(1>û~Ä?˜Æ>ó>>fÁ?¨?Ÿo?¦Wn?­BU?ñ +?ù8?—§?˜ÜÑ?š¢I?îÜ?«æ‚?¨8>?¤Ãì?¡L?Fˆ’?:–Ý?÷'5@}>?Y­Ê?0Ö?¤ÈP?±ßj?è^ê?ò¤8?ý?t³³@Q@1ݼ?ƒ1­?!ON?XW°?`äà?‘ù?££ƒ?¿ÄÌ?É;õ@ÿÃ@"<ÿ?ά?Ÿmj?ü‚Å@?·¤?z«?¨¾€?Â&!?åZx@&ÿ?5|>¬_«?›¢Þ?çD?™L?JT—?›¥Ý?¿´Æ?ÑÒP?èM?¯Œ³?v/Q?œx”?¼¬o?sݽ>ß&¦?¯Oá@`F?Ò M?ˆ°?°~©?ÓåU?žX_?L;7>ÿlS>H!?‡^¦?þ.[?õ§Ü?ö¾T@Þ@?•&@TG?áâÑ?¯äC?Tß6?dÖ?cÒ?®É@ Å]?ت#?bÃÆ?láK?tõê?“0Ò?¸sr?z8î>± ?3¯ˆ?‹þ?¾y¹@¨E??¨:D?‰ïØ?"‡?B}Z?˜¦?ª{€?¶Ô +?ãÙ\@³@b²?½Ü®?²#×?q†Ö?iú”?wO§?fªÍ?J©·?x¼ã?«³?¶K?ÁW?»$u?¹€•@dV@g¬²@\€6@TG™@/À? >v?¨™ ?ÄEü?²Kí?Ž Y?d63>ÎÅ‘?Pû?÷C]?Ùm%?ƒWå?¥?@÷?ùÁ?±³U?Åò£@¼Á@õ5?žŒI? @BØ@pù?xØ*?w ´?w9?NÛÓ>2x>¿–A?‡‘(?…@Å?U\^?4… >,Ñ>ôùE@‡ç@ u@‹ä@?© À?³T?̉Ï?ÌÈÍ?¨»Ü?½¦d@;]T@7¹7?• -?…îÃ?UQ?¥m@û'@š­@‰|@ÚÛ?¸ª?¹ÙZ?ÅT ?»œí?%jã?+(k?BK?<j?ÕzÁ?áy?˜?‘+?Ý t?ä¤ö@è?@ ¡B?¦?¤@^@¶.@ +Ø@4>ä@8õ?ûh/?àÊ>®d=Æ™%?1a?xùž?ðÞw@Ÿ?ߊí?ÔGó?½–?fö¥?Ͻ2?æi?ÁT¢?·s,?×èÁ?éû3?º7+?’ÐP@ƪ@UrB?ôøF?‚`”?¢†‹?· +Z?¯ùŽ?§i¾?…L?IDù?À;W@éÓ?êq?Ÿt«?…*{?&é?/Ò?:ÒE?¥dü@^@&î?±î¢?Æ~Š?ó3¸?äÓ?«~q?Ë€y@.s @&Ûy?ØÞŸ?áÅ.?üŠ ?ÿVM?ÒKf?Ýn±@Nf@ +f?÷J›@O_?·c¹?µiê@Fëã@PÝ9@÷C@)@4­@ ]?‘+?‚ù?@"‚÷@Jét@5ðÿ@'HÚ@/Ä3@4²~@U?ðÎâ?€mQ>ºßë?÷¿?.’µ?€åÁ?µ«Ö@­@iß@O°@#”@V}?¢+î?€r)>`—?ð"?Ù5Ý?ð@ +ì7@ ¹?ýá¹?÷È?~@?w,ê?°ú ?°èT@ئ@CÃ?Ïûi?ÁÄ¢?¥pZ?£,?Îû?•ŸÑ?_Œ??Ô|?²q?â&?¹~u?¡Xo?Á(æ?êì?•þÇ=nŽˆ?V×@³g@>?ÁC?Ñÿ?Òè·?ÑN?ýs @xË?ìÛT?쯣?!Q^?ë¤?žÞ»?±½?°©Ä?±(£?©‚å?¢¯ó?“!ê?„Š(?–/??±üp?¾“Ø?ÒÍ@?àÐb?×N0?ßp,@ ®™@ »?êH%?åÏÛ?Ùº±?Õ +@7Ä@æ¾@@Ó³@>ûî?€z?Ý—?oÅ÷?‚¹?Ögù@Ü•@n?çœé?®?i§%?•º¬?ÅÞn?¶X*?©@[?»qÞ?é!,?êî?÷Éí?óg/>ßdã>áA{?[Ûó?x©!@(§â@Dë¶?Þ2§?ƒ e?§r?Ì]¿@µ@/˜@È?¸?|¯)@Vó?ý‚Ú=ü‹Z>£H?Ê…´?Á_#?™D8?‘9…?e¥š?EÏ™?øõ@-*P?Å¥w>îòj?µÕ½@(ké@9V?ØyÇ?Å?”Äš?¯øn@]@l?Á•?¶ñð?1ªI>ñZ>Og=£.Ü?]¬±?º@o?††?Üí?ƒ”i?úø@£b@™@ K?ªþõ?ªãè?ê[R@ì˜?«yH?•„;>è¡ï?3c¤?ª×$? G?•Ñ˜?¡ª@ Y¹@Ây?b’ö?bzy?fÙá?I,c>©¿->„¿O?¥a?ïö?à2o?Ü?Ïδ?­`e?¥^Q?D+÷?;Õ?Ô7 ?èéÃ?‰.?N­?ÍL?ðQ>@uð@$4ª?õ¨I?•Ë?­ç?Èè‡?À£?uoÜ?Uhç>'ª=GÄ?$ˆ?_Z?± m?ë Ò@°[@ +fN?úb ?éÁ©?Ø>~?²H¨?¬Áž?ëx?AÌ@‰ì@)(Ç?ÖŽD??˜ž?–y@2S@ûX?÷W@éà?ßá?çuÖ?5É9>¢è2?G8?‹ò”?ÂËq@%,@Òã?ž@±?¢Ý¼?^€Ö?hðP?¢ò?Æd?Юæ?»¾Ö?Ðñ_@ü?äë?[q?^`1?¤sâ?¤d?ˆ £?p~H?€Qá?Žç¡?{Ãr?'g§?K½ ?ÚÞ8?ãIí?èû?Ѭ‚?F;»?#ß[?÷)@;@3@½ú@K¢?ÌDæ?º–j?¸Œ5?­Dâ?Îjø?æ¯&@°†@Gç#@9ë_@Ë£?ôö?—+ï?‘1w?Ð:?Ø¿z?̸”?ËÈÀ?»äæ?¢h£?¡Ž0?©ÒÑ?¯"u?:2?R9ê?ܾ»?ä5¸?¼` ?¦¹?ò?p ?‡wœ?x~³?‚L?¤ÞÞ?¿¾Ô?¨¡Y?š¡F? b©? €,?š¨?”‰q?ã@ ‡h?úwæ?\Ë2>ÄP#? ½k@ˆ¦?×µm?˜¿à?µðk?èд?û{Ï?ª¨?–Á@Mž@!»M?ôns?¢KŽ?«‰?Ù³}?òàà?ŽÆ@?•? Üu>ØßA?½¾ˆ@°æ?«‚ÿ>Ù?½?¤Y?qÐ ?„±?dº>óÐ’?DŒ?Ln?ÍÏ?ù-?ÓôD?¯ÿ×?^Ü?&Ô? ]f?¥»?ªt?±2Ê?·Î">ݱŸ?âä?‘ ¡?o7<>ÝAT>Ýn(>Ý¢">ë¡?ihó?OxÃ?[kä?_J?">ßLh>øóü?¸|?4>àá>²½©>vù>„׈?X '§>±Mz>ãÓ>ä6g=#Q=œÚ^=5ÛÆ?*ǃ?n_Ù?ò>¢6A>‡3ý>X&>zmÿ>´n>ãðŽ>íÀÁ?Uíì?“)S?WM¸?&¥n>ÿj!>,më>aË™>Ñzá>Šz =°ˆ>ßÐ>‚]>¤B>sõ>§Ÿ >õ9>–9-=,¥=@Gÿ?tU¦?HsÄ>©±¹>Àç>>‘wÿ>7!?¸,›@PÐÌ?Ò2Ó?[óå9ó`ð?%P?%ÿ?H_?Xpè?);T>ß\›?ž?2ÏÆ?1Þ9?`…J?a'æ?DQë?9¥R>ÄûP>J¤i>šÅ³>ã>ØWï>É%ß>Î6>5 >ª¨?.tÚ?@:?@??ìD?6š§?2È´?BÈV?f\—?k?‹?q¥ó?mÊà>úÚ¢>ù.¯>ˆ û>vc)>tÊð>s¼?">?hg,?hŒ¾?h¸?“¤$?Êìý?ª>éI >énH>éŽï>ê ?^“Ó?^G?5>ê&t?/#?KÍã?ºÌ?ê4?Å!e?¦9?‹¢Ý??“?Hl–?eÇ?g!?CŒã?0x¥>z†>؉>é°>ëŸS>°9Q>®ÿ?>â·•>ëÛ¯?6ò>?S?Døß??ÊØ?NuÆ?XîÓ?‡¤r?©[?es™=Ò§Ž>AØ)>ìkH?T?ˆ?8è>ìl>ç3ï;KÈä?]—]?lQ9?hí?e"i>ë=±¶v>¶Hü>ìÛ–>ü$?Aó>ýh}>ìð?Œ!õ?ìú_?¼ ?Rý? Š%>sp>¹kj?(7?(\=?F”Â?@öí?KöÓ?O >Ih‡>D;>å x>í6¨?06?–§d?xAg?gŸ?gÁl?mJL?#xÉ>íSe?–fu?Üûæ?ÆR^?²í?‰ùŸ?l£??¾È??MÕ?¥ò?šŒ?13?$ê€?g¾?Ó>í‡þ>íS^>ãÝE>è× ?aÅG?mœ¨?mLŒ?kë>n²#<ó¥P>ÓÍœ?u?Sß?mÀü>êñ-=¸u? UÛ?…,?[“x?{?h£?³¥?ž_¤?mõÑ?mü§?n”?ir?dò‚?m]S?n?l;j?8ö%?;¹?$~?â4?q-?lšs?´Eó?Ì|œ?>b'r?*±?$†¯?Œaò?²ç?7ñ‚>©>ŽÏ4>î©1?\‹Ä?²èô?@E?q Z?u$È?h/¸?‚:6?³8š?³=:?³Er?²W©?§.b?¦!z?³d–?³m+?ÖœÍ?Ú Ñ?ÊRó?Ê?¢K?š-?y’J?o¼?¿æ?š×Ç?ñÄ@ 7O@ê©?ÿ`¹@ª©@+ ¨@ +±?Ô1)?³3'?’??‹ò$? ‘Ê?Áßr?à­F@ŠK?ô!ó?oNJ?6TÖ;ƒ <Áˆ<Ñž>™_?êaF?Ùò?êS?$‘!>ñŸ>ñÖ?6ÛÖ?? ¯?ŠŠÅ?zÆ?ž/©?œ÷è?›d,?™ÍD>ÆÂw>t‹M>ÚÌâ>ñ³/?:J™?^¶?RI°?IÇ‘?Á”?®Ý?£V#?š™®?Yùy? ‰G?U¬?†ø+??þ¾>òy?ýÑ@qdI@>| ?ò³´?ªç>òÌ·?PâÅ?¶/»?Ÿ‚^?]<ð? ‹¸=ä»4>@›š>¬gÁ?wd?£ïâ?¶êÛ?晫?ʵP?;†V??ˆ‚?s¨˜?‡öf?áÖ`?ØÄE?ÝWî?Ú\q?§¾P?®Ãý?—íÚ?œW«@=@ ?Ûô‹?ßèJ?„~Û?{9?®í ?·i@Jbñ@R.?Ú£K?Æèø?®èH?¦4?«TŠ?«c?Ð’-?Õ.Þ?ßa?á‘„?ÂÊË?È\â?ÀRÒ?·÷R?›¨a?˜Ð7?™Z?Žóï?|9?u‹!?>æÃ?"€”>J?auZ?«é/?Ó +> CÇ?¥u‹?úää?K`z=‚d?°S?vÍ?Ÿ©÷?¸žÏ?±r²?¨¾d?ã‚?ž€Ø?‹§?vYa?Ž§?¢#w?ºø(?ÇЪ?_V>‰®?¬š;@eª?ë{Æ?¦·×@ x>@I;@Dð?¦D‰?zÄË?Ð? gÖ@}1?˃K?vàl?Ñ?=:Br>kòñ>öó‚>ým?r*?»g¼@$$õ@ |?àÖ?Ó<7?È€Ç?±¹?ŽÙ?˜ú"?¡îæ?šˆˆ?ˆî?—¢ˆ?·À$?ýoÜ@9dK?÷›Á>­Æ’?jx–?÷:?æRC?¾ ?t`2>ŸŸ>£?!ÔŒ?¯a @8J@šµ?z¡æ?­õ¢@¨¬@„@>›y@'D¿?è~–?ë¨Ý?÷6T?Ö¬Á?“×?‰9Ô?K‡?–l£@ +Hq?ëµ`?ˆ¤?„?~ +?¸ ‘@ +ˆï@&—?ëµ_?°A=Z¿?¨G?ý³ã@jö@W `@&lÈ?9“?¼Ò?PÏA?i?ªõ´?ž†¼?vÒä?B¬Ë>‹ôÌ?´ø?¹A£?¹Ý?§Š?*Ó¹?;ž?Ž6?ŽŽ?—j?Ÿ#^?Ή?Ñ¢¼@8Í•@-<?¸¿•?°Ð:?…e?ŒER?‹à(?x@ p[@ +aÓ@•T@ žà?¯H?¦ö—?›é??™T?–¾™ô>².>äÈ?«Ñº?·ù­@#Ç@BŠ?O¹B?26?EÀÊ?:à?{íy?wÃÛ?ßÃÖ?ôë%?ùA??ôo•?ØÑ +?Ðw@)@%{á?ù7!?Óá?Å™ž?¿šù@(uv@Nü?‹ÏV=1 à=ÀË°=ˉ„?n˜u?¶ö+?¶ðT?¶á­?”àQ?sºÓ?•ÀË?´a?[Pè>ŒY‚?²Æ?se)?Œ½?¨l’?Ï+@Ç?å³s?‚U?Òê?·¿|?Éz?ë*ú?úœ¢@¥ò@š@,¾ü@§*?`»?d·ª?9!J?Uˆ˜?¼ ¯?´G?¹rZ?«¤+?¡º?§ü@‡î@%Ú?†yK?ƒº'?;CË?I‰?»Â??¿ÔF?ågŸ?ñÌ@@%Rê@Ž@8ê?ÛG?»¯b?<Ž0>0«??¢H@°‰@#­ˆ@3¡»@™©@S&?ÔÞŠ?}å6?¸‘`@±?ù¿?àf?Èjû?£Ù ?™ÙÐ?¶;Š?Çfy@i@T?¸\¬?´Ñ?³2®?³"²?ðâ?ø×@1@÷?tßÈ?(”?Xû(?u§w?$&²>îz?Ül“@%p?ÉF?È?ªL>în¥?Tˆï?ŸF(?™Š«?­“¡?¿?´-?·äÎ?¯ÿV?°=¡?lÐã?r_¶?Î22?ÕÊ®?tx?ll³?lÖé?o&Û?¦xØ?±?]…½?9äg?z3{?Ž»Ø?£˜Á?ª4?vß?5-?®2¿@&;@Šf?së/?ƒ?³fœ?¾s1?êÊù?ê ?ý¯Ò@úé@\Œ@'-y?ÎÓ/?¬êM?·î?¹Òh?p³? H?€Û?²ù¼?ø~I@ì(?ù3?Þ5?Âù?¯®?´s‡?éX?ëÃë@ˆ @ /;SÇë8Ê`?šá—?§yH?ÑO?ì¹?Åg.?®Õ?¾È0?Æ´0?Õ*ñ?Ó ?͹?×6@¹5@TÏ@ƒ(@ïÊ@eÕ?çþ?æð?n’b?nÄ[?¶Ü?¾˜d?‘îÇ?wOK?qSÂ?g3B?qþ×?†à?óˆ~@D÷ @ŸM>å¬(?æÉ?ÜaÞ?êv«?Àþ­?Íl@?²„ø?«˜-?È^}?ÄY9?xþÑ?9:Ê?heß?n!u?DAu?<3A?„z@ j¥@$?©$Á?ªÞÿ?ß“î?ã¤è@$Çp@$‘?¹†Ù?Oy)?¼F@ ë@@ +2@!=ƒ@]x?iÝü?‰»;?Ìsš?Â=?‰Q¤?‹L¬?”3#?qÄç?Æ>l@8ð?ÄÒ?cŠ5?…ûð?©ß?–cx?(ÿ?#D4?Œ§^?‡c?ÕhS?àÃu@%×@AsÓ?î8Ç?…E8?‡M?`)+?šjN@ ˜ë@]Ö?ò¾S?íLn?«ö>ëC¤?Üå@Õ¸@ˆÍ@,^Ì@€?ñU@g5@9„@ h‹?ö‘/?æ‰?¬˜#?œªÍ?ßžü@æ5@Ê@‘Ð@W@'Ÿà@{¯?ˆˆh?g"®@};@Ñ?Fî>Üði?sšC?¥Ž?Ô0u@ ô?ß—å?rR?\ê¡?\-?\™?¯Í'?±©?ÉöÇ?娡?Ñh|?º@ ?²][?[[¡?[¶*?k¼ä?w®?<ó?†ìˆ?†Ž3?~8]?¥v?Ú‘?ç~¡@„û@ªË@ZŒ†@NÚ­?f)>Ús?Ž?Íø‘?º8D? ËE?ž…ˆ?yŒì?ˆzg?¶ã?¼ ×?mÝD?`q²?¿ï ?èB—?È?©#9?²Xé?¢žš?¢” ?ërA?íã9?¹N?¢m5?£õ?¢Y9?­?ÍD±?Åó?güp?OØ»@Îb@0I"@ Q?Öê?ÔþK?È¢?·‡/?Ž'ô?ˆ ?IzP?+„5?D©&?WæþÁ]?RƒN?ÆÁ?Â4'@Y@!@7?ÿŒ?û’7?®¢I?g8ð?Š+o?“?‡Ð?Y0p?re?脳?þâ?㬠?Úxö?­œ¢?rÙ?sŠî?XqK?ZÁA?xxe?køÇ?Å|>ØÓ'? ×ñ?JW?¦É«?ËÝ@?6—>”Tö>½(Ì?Ëàï?Øüû?}‘?ZÊ?„l?«à@?ÜŠ1?þæT?õ:Ÿ?ÏÚ¢?Ï[>ö§Ç?:Ñ>Öia?×Þ?˜>ç.>ß–>õ÷ã?0?WŸá?%àõ=üïT>cô$?Œ–?’Â?~]³?lú+?`®?[?¼µÜ?Ú  ?¸>àèS? V?)ÐQ? ÜÓ>çÊ>å³z>ÁŸ/>¨F>ãç—>äPÊ>A®‡=ðˆh>ü•>ôL·?Jœþ?gÕ?*ý>çþK>¡es>Äö> ?<>ó%Á?i`?=Îx?/XJ?!Úþ>í•Ë>î7h>î×B>†µ>&ô™>Ÿþl>¼\0>ôlò>õ0¡>õö?:V!?vxÖ>­V¤<)Ð>/}|>šš">›n˜>'Ú?ü|™@RºÙ@!Ü?¾ÏN>hZ >fZ >eôà>ZIâ>¯° >ßEz?º ?^Tz?NBU>ÚW(>Ù][?¡9´?©R¾?‡b>n9!>W8>Uæâ>hÕ=Z£4>ä(©>äiß?Á Ì?Ê Ÿ?‚¹î?^îx?eÒ?eå?JÎX?*JÖ?[ü0?­K?³U>âUð>äÔ>qL›>gØß>iä|>l’?4eí?hgÁ?HU—?1Ëú?‹qÆ?Ò²Ü?°-Ð?)¼?÷w>éŒ>óºþ?{í]?}·À?\2(?RÖ~>’Wd>4R‘?Œû?¿cÎ?Fb»>˜i¹>ï?ñ>¹íë>϶?°r9?w_?ë»? Ï7>°z>³åø=ä®A=Îí¾?LÑ?$G×?3üC?3*v>Ôª?!áç??ˆo?`¬›?]rT?[_4?8eŒ>ìj ?›·F@KNÎ@*û¶>ì‹õ>ì“>ìHÂ>á}×<ÕÿO="<*=ZÑž=‰ÿè>Ã69>ÔKâ>æ»>ìÖ’>ìØt>ìÜŸ?q÷@?š/%?’*X?‘Ù7?†·õ?løÏ?¸î>Cö ?æ¿?3øþ?m\?fžB?=j?8?Ië?_Œ?˜Š?•˜:?‘¬w?™gç?&Â?|ëç?ŽÇ?ŽN?eÎ*?KŒ-?¹|Â?ï½v?¯Ë?€ +#?†ˆä?„öÐ?o• +?Uk.?WÌ?Z3Y?ˆK7?Ъ,?ÁÞÁ?mk¸?]·ö>ö·‚>á@”:»[-<<<ˆ?jŽÁ?m†Â=Щ8=t®¬>Áö‘>Ô'>æQ>í›ç?íˆ? Ë!?k¬?ˆ 5?•0?¡›>?åh?G!?1 ñ?/Âv?“C%?ßfî?Б?·?g?–eQ>ííD?[ï?‘À?Š& ?'>?-­?ÇÎñµ?5ƒå?o Ó?­5x?迵?£ý +?f?Œ,_@ zù@ ”@ ™Â?ç ë?2'?F^U?‰#?ì?³Y°?¯x?UßÅ?\5K?‘ðÞ?“¾«?uaÐ?oly?8bÅ?+G/?¨º? c?˜C˜?Œ^ý?¶‹1?Äç?ç½8@…Ò?úxê?ïö.?ëÉ?è m@ @Áž?öÿ?µpP?†ô >ðdè?E8?¬®ê?·‡Ó?Ù¾f?Í[ò?½]¨?º!ðÞÂ?C?¹µ‘?³¢?Ÿ,‘?œÃû?ZÕn?bO?“¢›?–aº=ñao?b®?)Ê>Ñ ª>§Z-?+ L??ˆ½>Àq>f:?=²â?h Î?tS…?€Ü?º¯÷>ò‡]>õ|-?}rÎ?¹a?~Úœ>ò­l?ŸQÆ@ âH@ û?Øm ?ÊÃ?°~Œ?k;> <>>ÑD´?s4ý?à?ÊMm?³ÊÊ?6\Ø?FÖg?s†N?œ/@‰@žy?¢–}?’˜è>õM>E>óòu?È?`‚’?hm”?^d»?D${?±‘î?³ÇÜwD?>ƒ†G?}·?ˆóC@¼š@øî?R¬G?.9?ft>õ>?†YÊ?— w?$À?m?ÄØ?Übb?µËp?¥Eí?ià?RLO>žW_=Þ‡E?ló?Lß;?ˆ °?ŽKE?ù’d@ãï@VX?õâŠ?ôpu?ðÓj?ðx?ï°!?†Ðõ?#¤r?ŒÎ{?ªªŒ?¨Åà?¦á²?¤ú?£2? ?Šp?@v+>öhŒ?˸ @”"?¤ +g>öˆ^?¾>$@Óª?ÍË-?‹îÝ?cþÛ?Cüÿ?!3p>öµ?B¹9?€Ì?wPÈ?uHb?šª’?¶íL?²é|?®åÛ?¼Ê¶?Ô¾#?ÐT?ÆvX?ÁG‰?¹9q?ÄMM?Ì!?Àܾ?¹C?µðú?¶å?» 3?¿4¯?î @­s?õ‚I?¢°?µP&?Ø`-@ ?‡@<`á@ ?‚sÃ?Ç‹@Ò0?èK×?w¿M?}g ?w$Y?)0>‚C^>Å:?Ô¼?ƒ0?Ê0Y?Ü‘?÷Þ?¬²>Í"Ø?\f?4e?—¨#?þP,?í$ä?É{[?œ©/>÷?C©a?«xd?¦. ?‰-?‡\¸?&†?²Jê@W +U@ h?à?dÛm?«!ž?š¦?vɾ?´ò@ –‘?îƒ&>¨ï>³Öï>¹ª?PW?š|†?‘›^?„9?‹Àó?ÛÆ?Š£ ?†‡ ?¦þ;@*†@#*£@Ž@“ç^@6‘y@(v¨?¸«Á?œÿ=±ï•>¿-…?áÉ?Ó«Ä?©Ó?»ã]@@O@&1?®'=?­±:?uŸW?†ôÓ?ÑðÝ?Î#?̤??×µ@0€¥@0'O?£9?™)Á?ôñ£?õ7ö?xÚ-?vóQ>&ë>sÙ5?]IÕ?^<à@i1@3Ò?ÀõZ?·ª¢?­ñ?±?ÐË8?ÝM6?ò¡ù?ô•×?Áô¢?­Ëê?ñáü@F]?èH?âÞ?võ?wâ?A>è^¦?9߯?Q–I?š}n?¶ß +@ $¥@A»à?õeò?œõY?ÑÕ?ï#¤?¡ê?<Ì?M)?sF_?Ž L?œÃ9?TþÇ>ÛÖ?³“X@5¹·?åìX=¹7Æ?`q¥@µë?íÀà?xÏ-?¨"ø@÷i?è÷¹>òD«>ò2ì>ò) +?)Ù’?òv$@n@ñBk?´§?Ç­þ?ªØ?«@@]@$Àp?ìã?Ê_ã?=ˆ?SÍd?úÜ?š¯Ù?‚Ñ?pL ?˜ µ?» [?¤ÜO?Š¾?¨’i?Àa*?¦?û?–n?·I‡?í¢°?ù˜}?ü9Ì?æÙ?[ Õ?H¿7?[óS?uã-?çE†?ð1¿@Eý@°^?¿,½?¿“.?¹Ç?ÆF@?þ2?yª…?k)ý?\™f?lp°?cE?¾—?í΋?ñoW?ñß?”>j>í‡?]Ž?²Œ?‹Ñ±?19?yÕ ?íw?àÍð?®1/?£&Ý?Šø?‡è®?~¦?‡¿?v@?n¢Z?«~»?­ ?¯òF?°þ?¹BÍ?°òg?–?•I>?·‘?Ô3?¸Îa?”À®?µ³Þ?ë+ß?ë?ëa@,¶@'RJ@L?¾œ?º.«?MØK?^-¥?n‹F?~î2?ÞðF?õ$(?Ûv?Úï1@.+ñ@L0ê?ãŸS?vŒ¾?qÑg?„æ?€oP?R&±?¢Ê?»è€?ÕÅŸ?Δr?ÜÌ?æí?æØ8?“¼¾?QÔ?”<)?«¹F?·u?²4æ?Ï°©?äæÝP?m$@Š@¦@É~@€ð?ëü?Ì_?Ý`?õPž?ß1ë?ªc?©Ó­?¥Ø?§êÃ?âkù?âKÖ?,Å–?+Ìò?ÝÞ/@ŽÔ?íû?ÄÚ?Êýâ?ßÞ?Øôø?Ö®µ?¹²P?7)j?5æ?¨³õ?¨¡?Á[ ?ÎDe?ؤÏ?à=r?û¼>?þ½¯?ÌM ?”ö•?¢d+?æŽ9?øX!?èž?ø¬?tÒì?_c?ž˜®?¶ñf@A@0€@n™?‰É…?„P?}¯’?Šº@9KP@AÎ^?½"?¦”`?°ä·?¹»”@+¼I@jH¾@B·µ?ù¿Q@@%üº@%/è>Fˆ>ËÌc?r´Ú?uù0?6t?ŽËy?جO@$><@&;ó@Üý@±ˆ&?—‰8?‘›?¢Âž?¢ìö?Ôåî?ÐÒÚ@8á@Ë¢?fp?r?j?~U?„òÏ@ ˆ@$V?ÀfŠ?œ°n?ÔÆÑ@~A?éãì?°åJ?¶>A?¢!ð?¢!?Õ—ü?òvæ?Ǹ?¢h²?h{ã>µœ?¸?ƒoˆ?‰|¿?âŸÙ?Ò¥Û?‰õÅ?YO?~ü?¸?óŒ?¶ Ò?¼5?®Þ?º_[?lÅ¥?Rù|?Š‚e?›-?ŒG8?}‡?€Þ°?G»è?.ñ?¥>Ý?¦U?,‡–?f¿?f?‘HT?‹f?„Ö&?€ÿÝ?¢^ÿ?¢k:?i+É?RÝe? å¶>Øå±?Smt?ÃA‹?³œ‘>VÁË=ûö1>Þ]ƒ>ðÍ?M=Å?YõF?s >Ú7}?&?ÚˆŒ?¾h?ZÝÑ?WE>Û8×>Ûn>?„;>áÌj?-Ýo?nl?yÇl?a‚ë?4[;>÷ò>ö÷U>Ž€n>ƒ3?0ô?>Mf?©§?ª9.?yÇ?_ ÿ?_Ê…?…ð…?…ÿÙ?N(º?[t#?”èÞ?•(Z?aƒ~?s+=?½µ?¥\ò>ãôÖ>äcª?“?_=?“]Ã?¬š>¹áo>AÏ>Ë·t>è\>Яw>”˜I>m¯€=é9>ƒ,Ñ>þ1> Åê>ãì?2 õ?‹½Y?JÝJ?CH>a]>Ó0]?F#>Õà€>I¦Ù>­ä>ž°>»â4>Ù@Î>4\f=*ð=!<`=Šo<…|= ‰f>ÂþU>øÿÂ?FD¡>Ãü[@Sé™@¸¢?ø‡Y?´‘ >HMA>Kµ>×o>Þ`á>ÞÆ>ß/Ï>ß’‹>ßïÆ>Ç=±>[òW>V0!?)pü?*u?/C?)—>Ëk>cï‡>£—.>å >û>Ö?+~P?*c•?ŽU®?ŽÎ¹>¸•‹>eÓ•?1‘™?eåµ?)¦U>æXó?ùy?jd?Hw>]™>‹ü?Z‘”?Xà=3“{? ‹U?42•?.þk?'rú? ?n?mš?8åK?(jZ>é”Û>ùæ¡?"C?!0ë?ƒÈÝ?„àm?ï‡>êdÄ?2u4?C ½>r? +ü¿?j÷T>ð¼’?AK?°u3?›­?O£?0:ö=Ê>s=ÿ7>ëµ1>ðî·?¯d|?°æ*?Þ@³?ä8>à +=Nßf?¨B¾?ç0ç?nu >Þqï>c…<ñ°m>lp9>îË›>“ Ô? +ì,?ê¡?Ãœx>ì˜À>ëo$>Üc >ØâÉ>Õ]>ÒÌ?Yb6?[©–?Y׶?X?>ìØä?³jü?Þ­|?yý“?Æ$?{!?Ÿ‘Y?G¢â>œa–>o%ó>1|>®8s?'Ö?<… ?m[?_„ ?/|ê?Mo*?Ðs÷?Í®Ú?+›Ê?)$®>íÍg>í'|?ûŸ?œò–?=Á?ŒŒÍ?‹^í?†ýµ>×my=á8??½?št·?T‰?AÁú?Är>ÑBô>–ò +=“V6>§Š?mYä?m¦?mEõ?me?lv?sÜ—?¯p)?¨¸;$n‚9‘œp?U]ñ?[£Ä?Yy?V >g²¨=àæe?PzÎ?‡s?ˆÃ?Šl?~±?mª^?=„? Œ&?Z1Ù?¨@–?•“É?oÄ?z©Ï?bf¸?pcl?š?ò?™c?C i?R_¢?£,4?§gÚ?n?n°?nÐ?ng>—oÆ>Wâ>ØN:>î>?—Ç ?¯XG>Àï^< +0?rÞ4?²¨^?S6>ùK?EÐ@?‚J†?v˜é?]Ò{?¾)‘@1„@4¤@91?ïI ?L{-?fæ¤?Ÿ 6?ŠG%? +žÁ?Šð?:é‰?:r ?o,?mP|?7Íc?:Õb?n3•?o`=?q"?¢€?!;5?"?¥®?Å>x?…“?Y”Å?±àÇ?×ËØ?»_Y?ªü?¯+?²,¯?Ò’O?ð"6?EkÓ¸.?z\%?”€æ?¼{†?›ss?%‰Ã?+å?2DÇ?,J¨>ð¹Ì?R ã@ÃÅ@’a?ý ?ê 0>ñ ã>òYÄ?5‚??8Û¤>fÿ>G«Á?dã?qnß?‹Gç?‹B$?½_y?Äz†?¿1‡?´µR@Ãp@X ?ÛE?µ{ª?W‡A? ÚB?K ??r2…?šŒ?ëàÇ?©“û?}gN?qHõ?`Ý/?·-Æ?þÛ?ú.^?ò´?Ëì¸?Ÿ]ü?‚5á?zÝ?Qä?œ„¹?šÙ™?™-?—ç–?‘Y?¾>?’s+?–åö?³’j?µr?‰î?‡(V>óº~?&Û?;€9?%N¸>Ö#]?U½@€`Ð@rþA>öÊ?#¾ +@4Õ<@) ¦?-ü1?HÉö?§ð`?£å>ÊR>¿¦?“É?ú&?Ö& ?àh“?2± ?»u>ôÅ>ôòÿ?h=Þ?u ?|9 ?ƒ1—?±¸z?·çO?ÇÈ ?ÏCŒ?0^¤>õfn?'-‰?)\?/2†?Å?õ¼@fg?Ó.?·º“>ºtu=œð=¹\H>÷œ?¸g?õìq@&1i@2-ž?¦îP?;µí?Øò @Õ¢?·‚p?’í ?fÉå?>ÝØ>Îlu>|ˆÉ@š@E׿?×éŸ?T3?äê†@Xt?ø‡‹?ÇN–?-.Y=§šV>Ÿ†š>ö›œ?‚Ù?¶rë?cº5>öÄm?¥¦®?óvÊ?²Õ­?‚°9?¾=N?ëwÆ@ÙP@ +Þ–?ÊT4?Žìñ?ñž]@!•?Óæ?jEÊ?½5Ï?ó ?±Ÿˆ?vøq?šgD?¹>ø?Î!?å™»?º?ˆ´Ã?†–õ?„z5?œŒô?¹B¦?ºJ×?¹Ñç?œ·+?wž?•Ë?³RP?©´5?šm«?¿¨€?릧?âà ?äì?¶Á?ƒâ?^;û?àÏ?Ôý?1A?‡I~?ÒPP?À€D?¤´Þ?Ð#?ŽZû?uH!?_° ?"%>)»Œ?Í?´{?‹*H>ü°V?^SÃ?° ‘?ÃqH?혤?Å,?v³b?Ÿ«â?ðd•?€/?ù–? _«>ö“Ö?Y2ð?Õä7?·_>?\%•?…¾i?Ì=;?—Á+=é—H?%5r@2@ Ú?ñbA?ô/ù?ö0÷?Ûp?{¯â?yŠ?W)Å?q4Ò?Å1Û?þ@l—|@Eàa?£‹?UÑ?œ‹½?š‡È?“!©?”N?Þ/?Û£?Ÿ\‹?¥²û@Ù†@Ùè@0y@/×G?õKÐ?ñ;H?u4ž?u* +?^¯µ?T<Å?«ú’?ª—?åè§?ð‘î@£‰@¢K@q;?÷ùó?„l?t™ê?Ñ››?à@úD@ 4Ö?¸ù6?–M*?#åe?³?ûtÏ@M?n·0>óöç?Üß0@%?®8?Šg)@$@&Qq?Ùp?•Ä‡?õöX@€k@ ´?Þ2?²!È?ˆì ?ðD @&¥?«*¼<Þ÷º?$4?·{Ã?üd@#‚ò@ó@–|?ìN^?Mæ"?a€Ê?‘?¨áZ?Ò݃?·W‹?„"¬?|X?ŠšS?¥’@7@<®Ÿ@-¡@-Y?µ#¯?³Éû?æõ¾?à‡#?a;?S›Y?‡wÎ?¹?8’›?/ËÂ?ñšÔ@ ÷?ê“…?Ý,ª?ì ÿ?ðz±@v#@'á ?Ï7?q'?r|ˆ?yŠG?˲÷@¯¹@½W@ ²?¼oõ>ï—½?"HK?ov¬?gú}?h×?•Ni?á?Éu,?È[?ÔÆ>öHé?‘+?ó0g?ö§n?ãIÁ?ßW(?ÊJ;?ÁÁl?–J[?”ŽÖ?[Dâ?\7?¤är?¿J9?Ù©"?冬@"†@ƒ@5…@ hE?â‚ê?±îg?”^Ó?GJ™?lnŒ?«B¦?Çâg@V?÷ò¯?Ê?ÂM?â¬?åZ?³.?±H@ l@ ×h?è!?Ýj?ÈYÉ?Ç(?¸R5?°®ã?°Ÿ?°{?Ð%?ëC?àZ=?Ü°î?è-:?êìµ?ß,g?Éäã?èh6@Ø¥@{^?8¥”?/×>êE³>ê.¹?Œê?Ó?ö?s?Ä? £Ì?³rì?Yñ³?JÎ?ˆä¥?´6\?MÁ$>QŒU?O`q?ô._?ÊXx>èÔ?F_™@%µ@% y?g0ï?Xý(?ÒS7?ÏÛ@ì\@ ­?Ìü?©G¾? ÚA>ŒZ?7íf?£¢Ô?‡ø8?)Ô?C2?q,(?gVn?+” ?U>à?æÔë?æÂ?›çœÙ—=»&Ý?£>€?áO ?žÇW?uF?—eY?¬d*?ï Œ@'MC@Ð6?ËóC?ÃB(?eV¸?iå¶@ g@ Kó?…Ëò?n*2?YfÞ?H9‰?„Èü?¡ôÌ?«‹Í?µ&ò?´ô4?›šš?z¥f?Hc?äa?Û÷³?Í&«?—ò>?¥Èe?«œ$?ªwÛ?»4ç?½ðñ? äa?„±À?–Q†?¬<™?›ˆ´?qO?„á?»"¬?À ?öU?€Sè?c04?aÙá@#@AûE?Ôê ?8²?%súì>§Ûü@6@Ñ?÷O—?Σ/?ìã>Ý3c?eà?õ÷D?Ù>Ú 0>Ù÷%?’¿Y?½ïÌ?./×=˜A?>:U?Ëÿõ?¨ÈÞ/?P“¢?˜(8?¡”Y?ëÔÔ?Óí¥@ON@YŠ?®0Ô?\Ö?]ÎÚ?~Fž?¨øD?é‚#?Û +–?¢W?¢‡?k}Ž?WôÕ?Wä¾?]²c?‰!Ï?›½b?+¬?WÄ°?Wº}@r®@'?ÚR? ý\?˳´?õÝ?Æh¡?Måˆ?gC +?yàL?m‘ý?{L>Ú¯Ž?“9í?͸è?Î3ã?Ê–?¹7¾?µ Y?®Öü?ÂvÔ?ÔÂH?ˆùk?G´z?5 •?>¾ ?t¢?¢1{?¢=¶?¢NQ?¢Z§?¡eÒ?›¿6?ÀUZ?Á’?¨a?#k?r(Ô?lb5?_Æ9?XS?NWŽ>“ãN>“.`? œ?Ä|?‘ŸÏ?å Å?Â×Ç?[=C?JšF=³Üt> ¢E?›Ü&?žrT?Â&>5¦O?Fé€?¥¡×?Ÿ#?|g?“é²?µí@?•]k>Þ+¼>Þq?È‚?ÞKå?@ ?V–?+wã?17(?Käø?‚ 6?XÖA>áµâ?LQi?Ü ?ÄÊ·?’ÙW?˜¯Á>qDd>“ßÜ?_ ;?ec“=âИ=‚“?l¹÷?xÓ?A£¤?,?6^ê?L´ò?‰é?¬V?W¨Ú>ë‘Ã>Æ|>æ?=•?ªÇÐ?‘—¥?^^u>圥>’Ò?ÉL>–_>.=„y`;—IT>ë’M>Þ‹`<çd>$* +>×á?Iå>ñgü=è’¢<œÜ@p +d@Œ³c?i÷? é[=q„ä>Ö·A>>{&>Ý>ÒÜ>x>v¨¨?ÙC?"?œQ>ßæõ?*¾M?†ƒÓ?pK¦>SŽ‰>T³â>ÙÝ>î=>$›>n ä?·ú?co?Qep?-Ý>?%>pnW>q9c<ƒ²;?_¡?¿ï?T+ª?(Lî?AÊè?\qÚ?[ß?[@^?„2Ò@‹Ÿ?û#t<)ì?ë?$®+?œÔ?£žú?7³>·¨Á>É~Ï>éZZ>Çš>“½Ú?Ëw?ž<“?H>ê|>ê8¦>êWµ>êp7>ê‹´>ê¢d=Äõ+?MØR?“û$?PL>ašµ?C'?°|S?}§®>¼º>èóz?rˆ?;>Ç[T>ñVZ?¡l?£!ž?ª¤µ?«cô? ²>ìØ?˜ê?®~P>Ç£<ŽE†?½C?l^Ú?—5Ó?±OH?9ц<Ø®€=ÁÚ>jHq>ìœß>ì¥Ü>ì«–?EÚ?¡?ŸmÔ?§|ä?¦AÖ?nÊ?lÐL?«“>ìÙz?AnÁ?Z‘?¨õÙ?´üñ?sôÿ?Hý¯?Iœ??¨û?&Ei? +58>ù¨ü>íõ?Rzã?³L6?Ÿé?g•ò?U\G?Föî?^Iw?Žzõ?‰] ?"Ï? îd?‰"?ˆñ±?"~à?ʼ?‡2À?–>¹?K.î?$–'?²Ó>í6…?¶LÓ@Aè?u©'= ƒŽ>æM?i@F?l›?mKç?DÑæ>îŒ#>óI>ø:Ç?Xßô@"Í@‚i@âã@Å?ØíÇ?ÖË:@ó§?þšN?ä ?€/Œ?àí×?ï2 ?w?m‘ +?‘b?™·ù?‚[??m ?NLi?2Í?içà?†Â¢~v>ËF1?ÏT?A?mòn?mù£?mþ€?pÚ¶?ª«Á?¬S ?'k?×?[œz?kb?n:?n6…?Ù|?s?JÛ‡?d§?i…4?nv?n{?n†9?¢ÇR?β.?Ѥ›?Ô˜`?Âø»?ŸR`?¤’?³>?–7¦?R(?ÒÂ?nû«?duU?6¿y?4XN>ï"A>ù6c?o8Í?oÙ>ïÅz>Óÿ©?$I&?4åË?Žm?ú¼>Óîe>ÍhÐ>é>ïº?¿H?b?IÈ:?oë?œ|?µD]?c‡¤>Þ™?c•x?¬©?T´ˆ>Vñ?ž?TÖ?Q¹´?N˜W?K{Ñ?H\q?…±p?ú}?ãÔ#?„–y?ˆu?5|?AGÑ?Ž2Š?â”?´Ðº?©¥?qA?pÌN?}X$?„õv?ùç¬?þT[@:Ì@E%Ù?¨°=H2V?K!?²l-@ÔÙ@ª?©[?rM?zzQ?‚-I?¡3f?­Ü%?Y?§?ÈÈ„@JL?£•ô?¡ý?¾Ú?È,?ÄÀ”?Áf?ɘˆ?ÖÔ!? )?=_Â?½7›@ N)@ + x?ÌÛø?±‘œ?kk§?†Œ°?Äùâ?¬§­?* Œ?f@ ?â‹?¹\=õ5j=¡‡l=>>"#s?sìv?ûí?À[M?ÉÐz?à^Þ?Òbc?„W°?{óŸ=ÛÀœ>"•»?Qç&?K̼?Mµ(?U#Ü?,=_?/Ý>øÏú>ôÙØ?”õM?–#¨?fÝH?Z¯a?œ%È?£qÑ?['?S¹Õ?{è>õL?²Zf?Ák@ló–@„bÒ@k½?ó9?JÖ?u·+?ð\>豨?¾ºÚ?Ù¶z?íÆþ?õÖ ?íù?òÁ.?ÒúG?¾Ï?ô’Q@!Ë?Úl?„?Iß?v+ >ä‰Ó>^?÷?ëIž@'ª7@Ü¢?àÍì?«5ü?˜‹¿?ÿ@ž±?žÝ;?,ÖS?Ç>öˆO?JBA?v‘=?(ªQ>öœ¯?± «?ö§l?ÌM?¯Š ??Å>Øh¶?î`@0G?×Ï/?vÉž?ÈŸ@3?½Ð?zÀì@‰¹@9%$?Éǽ?œæ?‹L?¹+î?Ìmë?מI?Ū?¹2€?´v?²iñ?½åë?ÀÚ›?Ú­e?öÜ€?—,?£>©æT>B×t?ºs-@&b@u@Þo?ë’ƒ?ÎZÀ?m‡>L=*>äì/?7SÞ?¥(=?ïé*?ä½#?ß÷?ë¼"?öÛ1@Õ“@+0v?ÜÐ>öÑÑ?`‰Ï?´2@?…x¡>ü} ?¤}@ï@jO@‚\?æç_?‘ñM?r†?8_?™‡@|ë?à³Õ?Ÿ–Z?t«>ö}?i +µ?Ûžc?âQ¹?äãÐ?àÁî?åT?µ¼+?öd?[N*?À;u?¼fg?¸ ä?Ê!ø?ö±?Ô™\?v *?ˆíÀ?®”m?Šë÷>²•Í?q]Ò@6“€@:K@!@?˜Ñ¯?¡.?ÀçÖ?È)l?Íb=?Ô@ÅM?ûIM?Ô¬ +?Ûs¶?Þ„š?飺?ôš?椙>ÿh;? ÁÎ?uU?uxh?‡£¡?‰0>?D~™?P½å@Øî@£ã?Ðó?Ý ?Íb\?ÁUi?¶Ç·?·L0@PŽ@$7r@¼@Òm?•²?w/6?¬Š¾?º’Ð?ƒÛd?eá@pÐ@YÀ?ë‚Þ?Î ?Ë2z?Ï-€?¬ƒ0?˜Dƒ?äß@Ž?­!?{hè?Æ‘?œEÍ@ -Å@dÀ@.·>ü;K?oÌç?¶?¥ˆã?›;?¢Oƒ?¤Ïš?©Ëð?¡(?‘‹s?r5&?“Á¬?à›¥?êð?Ür?Þ:t?Óæc?Äã‡?“àY?)þ?¯¸º?¿öi@¤[@Æ??¼‡ ?À~@Ü6?ùÎö@1‘@*W?b?$?4šO?d±?œî ?Á.B?Å\3?¼%#?Æãº?–jî?w°K?È3B?î¯þ@ž@ $Ï@¬L?ý¿?ëñ±?Ý53?¸;o?y›?˜??Ãù§? #å?9]?Põ*?³MÉ?±²?®£?Äd©@e´@ z?…Sã?Ž—?îuh?îdA@^–@Ø??¤Ãz?’‹>­×>!å{?bû?x4Ð?¤I_?·Ïî?‹³?nM^?žÒU?¿(¬@%”ð@`¹¡@ Un?!„?@fÒ?lØ ?™Ct?ú«@¡±?û}:?ð-?¸~?·G?ë¡ ?ê‚Ž?‰/Š?’n@4@ +Ï%?á²?Ò§¤?£&?–œº?ijò?ÔŸ~?ÏYl?×Î?‘‚Ï>ó:?®°@,ßX@Uq?€±L?˜ñß?êS×?Ûöë>Ý;Ÿ?™`?}05?dO?Õ¶œ?ß±C?»¢?±8o?¯CX?¯6p?£Ê´?–ç¹@‡¡@-Q_?¾Ž¢>iòé?7%¬?Ã]?¦×Û?<Á.?A|Ã?§šØ?·T@ °a@1@ Mø@ `1@#@x’?ôÙ?ïù?”:Æ?3ÛŸ?yú? @ ´@È@@8øC?g#N?t«9?‹F¢?u_?æÂ’?æZ@>é¨1>æ‡÷?8úÇ?'IT?X¦¯?fÓo? ^ÿ?Ÿ[?F² ?ƒ @T@Xá@1¼X?¬?¨ ˆ?Œ¦Ê?„Æ}?«Ë¦?«Éó@è‡@g?YÝ—?î3>âRô>ׇÂ?f£Ÿ?›¾?Ä +ó@ -ã?úæ?ªå$?©µJ?°{\?µG7?dwŒ?cc×?½<{?ÄÎ?Ù6?ãû?Ö¦Y?Õô»@!m¢@`…@ g?(ð?!lz?…³M?ŠlR?”šê?£Öâ?†õ±?v²ü?á‹@ Úï?¹üˆ?S¾ð?lƒ +?†›?WÓ>àù#?cÓ?–F?›n#?Õi?Ýå?߬i?×!Ö?Ùäõ?à þ?µÿ@?‰¢¿?ÃRý@-x@ Õµ?è}ï?ã )?ß%?×Ì9@0î@@Y5?é[ˆ?ÓmÛ?ÛV;?Æ$?^p?^UÏ?^ž(?f|÷@þK@ +·F?¼…ï?¹Î ?·1-?¦)?·Á¥?ÖÒ?ÏI?¨‹õ?ºÈ?ñÂN?à÷–?‰6¿?‹·E?8ÆA>½6&?PÍ{?®DB?–*]?bžÆ?ê¸?ç?â?Ö3Y?tË?Kg]?³Ž?Èžv@žÅ@X¥è@8x ?ÛÍ?̆6?Ø¿>ñ¨`?Õgc?ý8â@2Ê@0ê@\Š?¡=•? )¯?¼Šå?¹?W>@¶\>o5?JT?›ª?l“2?m¼D?†?ª,?²>×?³Ûè?¦¾ú?KÙC?4+.?œ¤Ú?¨À]?Ãjk?Ò,)?•ä1?$_–?dð +?ð[@ñ ?ð1p?ùÌÕ?½+ì?¢+?Îv'?ð3þ?Å&™?ûÛ?¦Óš?µð¢?¯Ü¹?yó1?[Å0?êÔ¥@¯Þ?î~â?´{?©??)Ž,?5±“?jý?a!l?X#?_T?¿+‹@ºY?Ü??â?ðÔ?¯Ü?¨Ûõ?Ï=”?ÒÁ5@OA@ú9@Ç£?ñÈ?û¡›@ð³?óH¹?ga>ÞW‚?Ô¶?•ý?— !?Ž¢e?”æ ?Ä1à?µä¡?ÄÎ?¢$Å?¢XL?¢j8?eÔ?h?¼í?ü×Ì?æz?—‡ä?Ÿ§ù?Yk%?YŒ¾?bº?A ˆ?hµ?€xþ?«&c?öŠÛ@Îý@8D?îø?m§f?G$›?Ÿ0à?³&?r£ +?Mna?ªž(?ÚÔþ?°öA?zwµ?‡}E?¦“¾?µ#k>Þ0l>Þw—?T^ü?dç›?¾Ä?‹µ?É5>Ý +Û?˜?ù?ÞA>ê n>ì2é?(î?V‹±?•²¡?†Û£>5vV=ÿk{?N®?`n=¿%? Y~?Ft?7› ?9 ‰?e­ñ?DÌ]>a )ìûÐ>í›>îB&?'ù>ÿ²»?8õ ?Zj¹?3>òVÄ>þ^>Õd=ÿ(¡?uÿ´?¹Ÿ>Åì.5HÀ=亹=VãÖ¢}>Ánû>à‹Á=Å+ƒ:³Äˆ@cgt@:ýÔ?x8ç>ë'=>L>t=Ó^P>Üæì>ðç? nf? Å?&øk?/z?J‹z?Q„±?sù&?–L+?yQÑ>z28>yVv;bá>Ò…?0g—?)”>ä>ÊOb>LÈ>;ù†?®M?ň?‰ø?fZ8?m3œ?x%´?y0.?zHÞ?†ëç?« à?œåL:ïJ¼?†ñá?Š’M?²lh?½c?‹€œ?i? Y>˜Mû>¢èZ>›Ã#?0ÂÆ?Ĥh?¾û}?“)n?ƒ +>§;i>ªßê>ê¿>ê¦Á>‡†>c.?°«,?ÝðÜ?q!?SXm?…B?›?:wi>t¢? Jx? ]_?s,=Ú¾V>Ey?­M?«¹?cäH?d >îr<>ì?b ÿ?l1µ?l<“?lH*?è¼>î8w>;€`=Gó?ç*?]‡?$õ +>ÖÔÌ>†Ú9=dÇÄ>EåÜ>ì§Ì>Ìä>€l]?$Ž?à6?ÍÕ>f.Î>2?LÏâ?J[?Šµe?‹Kr?nãÏ?uDK?“ø>ìèM?Hã?lê1?lðæ?lñ½?¾¥¸?îì?¼×n?™vM?…€ñ?IA$?"q >½o?‡ +µ?~¨R? nÛ?F£'?äŒV?Ý÷÷?…u?„ù>É”>À2?¬Ó? Ì?-vÕ?°0>l¹j=É£>ÏÐM?¾)>ôtË>í0”?3fØ?m4?¨“ë?ä©?£Ž<>í? ?ð?5!¢?q¢?ÐðÎ?Â?C½ ?p"@WÍ@¼Ø??à?C°­?¯iò?¸:„?A‰™?'¡ +? Ë0?²8?†Mh?mƒæ?mŠ]?m ?ÑØø@T™?àe?§˜ê?ºR\?Ø!_?…¹?¶A?IŠà?ÅX ?¸Gö?¥D?‚]¿?†ÞU?€ÿ]?c+?}*ô@‰U@žÑ<õ’Ü?^=Z?n @?h7§?d^ô? °Î?ªí ?<Þu? t€?©C?ÓO?½„T?²ØÔ?²Þ*?²å’?Ÿm?—™?®çL?Õmé?¤ŸM?/Äg?Yñ?“õ,?Šáƒ?]ÀG?M”í?$±b?$C;?GÜñ?Wxq?³_—?±Y>_šð>A+|?Püð?]Me>€}> ‡>ñxn??ÊGS?ï‰Í?ÃY6?³&+>ñóÁ=´Öæ>¯Ö)>ïõ`?GÔ?‚ñ?/°>» ‡?zU½?Ï·|?§‹ß?p_(?‡…-?¿?—nç?’â?‘;ã?yy?KÉ?¿å?V÷z@Ü)@9h@ †@° ?Šö”?‚Q[=òàÍ>Í?ü¾¾@B?áÀA?ã_À?%ºø?©?i*ø?rÑû?qÉy?t;Ù?s´r?qó^>Ž˜#=ÞLˆ>ö¾z?"2Ê?ˆS†?šxÌ?¾©Ÿ?׿¨?%!l?B.Ü?¨¼â?Ô-?ò¹N?á¸Y?Ô¢ ?˜o—? Ù ?¯Ø!@%‰@ +“ß?ß(C?ÑÚ2?Á{?š'Æ?óÛ?C8~?™?“b ?s”Ú?Œe°?¹ƒ;?·ÐÕ?¶Ú?¨^A?sã¤?F¬>Ó[>5Ìò> ë>À ?@?»>´ ‚>Ï"6?teõ?ic¦>ô}Ã? îY?¤4š?˜²->ô­Ü>ýˆü?œgÖ?žö{?·¤M?·.ƒ?NÓ@?PÎÎ>û›Ž>õÛ?+èØ?%³·?áð?î$Ä@> @¢è?Äú0?¸'€?·é¯?¶]X?±Z ?­-Ì?>zØ?2_@?‰›?”êŸ?³iµ?¸Uý?¤.j?¤,Ï?QL@?C‡l?¡Ë¢?³ˆ©?º^ ?µË,?k>ø=?=ý2?o;w?Ê›W?Û+ÿ?°M?¡Hu?Ê@ä @8âÒ?›òy=Zðp?ŒF¨?äÞf?}Ü>>ͬÌ?­¿[@ + +J?íí?Ì^?–OÍ?X®®?^S»?L?^U‡?qÈL?žò ?ÏÍ=?°ËÐ?¡ã?ªÆ?Æ'?÷@ ï?©ÄÍ>ö¸a?;ëV?|è?¶Õó?ö8§?½¯á?ˆ ·?Žñ?•×w?u?vŒƒ??Ðé>öÞ?¨¶@ ù?ð!?–¶ý?Kê>€ãð?jï?éü²?éŠø?øR[?ä~õ?¸¬>?¦s¢?…I]?§ U?ëh‰?Û±U?·ô}?¤Qù?~â8?¥?f?ç¢ò?µï9?+Y?Rܺ?…“?‡df?§-?ÅŸ½@Ã4@—ò?˜?¢(:?Ã#O?¾?Ïqu?êØN@ D=@ Âh?b‹ +?2ð>\ßO>†ð¨?·õX?Ǧ @„Ü@õœ?të?ƒR?Õÿø?Ò®A?ÞæI?Ô\³?ô£¬?ñÚ”?5‚¼?/€ª?Ï(Ø?ÛÕ[?Þv}?×p?ÄÓr?Á…³>A¬=çêú?¦Ý‹?·V?êÉ?ïÈó?¹| ?­G?¡Ì?¨,@}@ §s?²K?”†‹?€´?{üÓ@¨µ@#45? B9?|«?(ºí?9Šß?¯2¬?î ?Ïps?µûÁ?ò}Ö@Ê?çÕ{?«3?çz°@n@ ¨ @p•?É‹_?rn?ŠëÞ?¡»B?¬rä?Û—Y?Ü8K?úš›@†%@[?ýÒ>ñië? Ž+?ƒ{B?™Ñ¾@ ¼ì@Û?@¯Û@/F@Ùý@`ª?¿v?¯§Ã?“?`@YÅ@ ùÃ?Np=üÜ?†’/?²Í‘@ÁO@L?Âõ?”ðŽ?—ç?˜±Õ?Ô‰\?üøf?Æ¥Ç?•¼B?µÓ¦?æX?ðð?úê¢?ëlù?³8R?¤Xƒ?nÉ5?B»=Æ°j>£b/?n°?»Ž@ ¢ @ +Ï™@ ˆ +@"ƒ‰?×90?Ëa ?e«^?=sÊ@™³@™ø@Ô?ðzý?ž…~?mY°?t‹G?™k?Æ›@ +ч@·¼@án?Ó?‘ä“?Šî-?‰”²?©@V @å»?ú?å¢]?nñ¡?|¤Z?Ϭ?—?ž™0?±d²@ŒÑ@õ0?ŸOŒ?ka@ ä<@)ü?ßÍ?‹a?wrÝ?jãþ?À°|@µ“?à>æ??#Y?N2h?D¼i>aµ>ŒÔX?ÂWí?ʈó?»Ì¸?¶ÆD?àæ=?é|y@ µ³@ qÒ?Š£?0VN?ÕÏ¡@¨¤?¸·<>èýà?q^™?×P?×tË?ÖO?¿’ >ù ?á3?í“î?ñN¨?žË?«)f?®îà?­éZ?™Î?—Õ?„Ñ?“’¼?÷å@%L¸@ì9?¸×p?ä’˜@ž?×Îê?‡`?˜7?æ¬q?äÁ?A&s?.»Ö?áy,?ëá(?ºŒ‡?«¦ý>í +á="?hQ?¿Y3?ö<ö@+Ó$@Á?…/â?›Ým?Û=2?ܶ?¬ŒÞ?«¨Ü?·#?Á&Õ?(Š>ä†\?O\??XM,?§p?ä"™?ä ?ãù}?Òã”?ªÓq?¢àE?uU?{4Y>•ÇÔ>½Fè?Îâ³?ã"ˆ?È™…?ÈtÞ?ŸÄÉ?o¢Ã?Œ1è?»ð×?ÍdÁ?¹Rä?Ç&ÿ@Ðx@ Wc?x\v?Y©Ž?‹X˜?šÖ'?ûB?d¼÷>é´>!L0?vÐQ?ð'?®†¦>v)6>½ðó?~¿u?t,?¢Bp?§úm?*À ?wû?±K’?à Â?×ð?ÀÉE?õäz@G.g@AÍÝ@6P@ +Wq?i¡?{n/?ËyÕ?îw?ÊŸ†?Æ£!?»m?Å?~9š?^SŒ?^>ª?^)º?^”?½^ð?Ëq?¢ R?…55?ŸàÜ?´ú×?¹w¾?µ=•?¦B?¥Ì¼?©V?ëÊ£?ñI ?´‚Ÿ?•*Q?¾$u?Ê ó?ç‚è@ Ð?ð#!?žEH?ª„™@Û˜@óì@$@ ñ@Ò@;?ïÚÞ?¦Ÿu?¥‰?ƒ(?…¥³?ùR?%mÒ?¤÷“?š e?¤Ï?§WÉ?¿wh?Õ½e?ÏÜý?ÉùW?Ã]W? ÝW?{¨@Ô&@Jó@Pýª@s§ô@ÿe?nf‹?ª~?™*?¤Ê¦?¢Á(?¢µU?»¾—?ÑfD?˜NE?o»Œ?„Æ?~??nÜ?‰½Q?«;?­T?¨Ô?¢ˆj?¢ç?Â/ ?å¯?Òå"?Šõ¥?v¸E?§?¹‘?¤=?¡•Æ?]Q?RŒ>?œ¿>?Á7À?´Ÿc?ƒ7ú?UªÚ?—6G? @J?ujÛ?W} ?‚+½?¦Ñé?›+0?+¯°?AŠ_?ÄI ?Ðœ†@ÙÒ@@?Åø?±ÆÞ?·*?§”Ñ?Ä[ƒ@ït@,š“?|‘>×Áa?I2û?w_ã?Û…þ@ŠÍ@ m@ ¡þ@³«?UûK?\:»?ÃŽj?ÊN?1Er>XÒY?: +Å?»ñ¾?¤ƒÜ>àÜ^>ÿ?ËLl?¾¨ƒ?‰&(?‡ç?¨Ö¬?³ o?f˜¸>Ï™R?êŸ?€›?©?€®.?‡E?`©¤?[·I?2ÇÜ?=í?.‡?s%æ?½îü@nL?Å-4?ò!? +Þ?ì>î)E>ßõh>óÁ>«5h>Üû[?M5?BÁ+?@,„?a a?an!?a‚Y?v%û?’øe?Œ£?ª‡i?¤Æ8?< +Ä?!Y±?‹£>ç_Z?K·?9æ>÷u§>ç‡Ò?C§¢?AÚˆ?¿Ìé@Öà?<2ß=ð.4>̯>Ø”Û>í6Ð>íÖ1>îu´?=e*?oͼ?o›3?q6V>ì &>CPß>ÐÜ?ƒÖ>”=|ºW?ƒúÃ?¹‚h>¦B>ƒ(Ž>|´<-®Í<€öˆ>ýl>ÚF+=è/j>Ä¿+>Kª¹>iöv>ž =x l= >ÖSÀ>…ו>‚8@~ùÞ@-¼æ>—A>Í#‡>û€¦4Ø1ß>†È”>Ð’Ý?HOæ?Qù©?v‹n?wÜN?GdF?E ?5EB?? eJ>½M›>£$‰>²Ø‚>Àj>û>ƒXÍ?)_?Y?`1£?"+¬? è;¿²?°O:?·P?[éØ?8 -? ãë>æÐY>ç¾>ç<\>¸g.>/>T¾L>ªÍæ>µ?„¶‹?…wã?G&??A@Õ?"”?‡¡ž>åL>bÿ>ô :?F¸¾?86D?'…?—j_@™?û4ó=ëC†>&¤?,Ã?*CN?Í?”?•ó­?šqð?4ʾ? [?ëô?·|?H(”?z?AV?®d?(<”?kÇ?剔?Æ&h>å G>èl‹>ìý>ð&‡?kH?l8¢?¬!~?¯ýQ?\>ìbô=ìWÞ=Y)=ÄX(?„h?Õ Ž?Î`?ÆLj?Æà?Ê·?ƒ(–>ÄQä?À‹’?§’ç>©Tž>ÂJP?lËŒ?v??þrœ?üº?½ú>ìà¨?µì2?Á€½?‚ªl?lè??ú9?1÷¬?¹‹#?úI?³£?[ ?ET>¹(Y>ì©? u¡?û8>¡Ü>Ǫ>—? õ'@H@L›?™©ž?•b8uò 9ŽÇ@>Ènó>Óãz?M‡??]I·?ŸËi?­r@zÌ@1ØS?˜³Q>í"œ?‚Êð?®×“?læ¯?g[? Êv>í.?´¡ù@0A­?ðk>›G„>¦ª=÷zh>°7a?¬²b?´h!?¯Ž)?¢‚>¹OÐ>ÅL¬?;F?78Þ?_WS?mˆw?@,!?7k|?b½ë?mw¤?¨wv?Â'u?õ‰@ *Í@_?øŽ?öø +?2ë?íà³?Ý >ì!f>üŽÔ?ç4t?ä¤ç?®5•?« '?+µà? ‘à?P¢?S¸ï?Lˆ­?Wö?H™Ý?CRy?|•?'&?—+?™ýf?³Þ?ÎÀ?©>?jÞ?QǺ?Jv"?v«u?œ!?ŒÛ=?Fâ?8w>îø½?΢?¥FS? tœ?Y/?WÔ)>ï8>ôˆ+?»ž?ºeÎ?³¬f?³—Ô?³¢Å?³í?ƒÌ—?v°? ë¢>Ö>«=–‚?'ú¿?oòì?&™>ð û?0€?hÍâ?Ž‡X?ž<ý?¸¬q?×?u?Ÿü?0̬?uy$?·:Ë÷?vÑ(@!¤¢@ ©â?pã3?x±H?”î«?‰À5>¾Z>σg? …l?ãÆ?…&?‚v?´Àõ?µ#G?µS²?µ-r?z;O?q¹ª>)‡ô=Â(š?‰w¿?™P#?i“C?X¦k?È]›?â!¯?à€.?Þä_?Íýy?½;‹?£Ï?›ÀÆ?Ñ›î?ò?ªp·?|û¥?¯&Ó?΃3?“³§?HòÙ?uqO?“^?Jã>ºw‰?8??3G¡=é¢N>Þ§ð?{(?§ÃÚ?ô{K?ó¥Ù?òò?ª0=‡ª? $‡?Ôáè?³Æ„?Fã+?E\‰?Vw‹?@RÔ>ô6ö?˜ ?¡GC?¨»}?Ël›?º/Ë?”s?k>ô’ž?Á}?¬þ?¦˜å?¢[—?¡»Ý?@Ð>?5Ó{>ôñ¿>øó?˜³¢?žÛQ?±3Å?³&Û?î<¸?óŸ?õK?ôæ?‚k¿?}pü? þ?ÏÂ=ôîú=¸e‡? +\4?h?;Zâ?G'Ì?Á$V?È+?Ú;?Ж«?*|>ô,Ñ?mÙ]?‰yÅ?˜>º(á>ñì~>èâ?å'?z?ÓŽ³?ö,²?½ñÕ?°õ‘?»å +?¼~5@ c@šv?§Ÿ +?v`6?Ñ¥Ã?ê¬?–ÿÛ?vr¥?#]? +îü?4=?BÿÕ?­ïk?Ó>?³8?žáš?¡ ?œ(®?­‘Ö?¸ü&?Ž¹›?v¬c?Û±@@ +Í?– ?:Ï?ç=?˜¨Š?‡‡*?v½@ Ò@5{¸@$Ûs@H>?âvH?­V=@˜Z@0á^@x@A? Ùô?`9²?"B^>ýÇè?1&ž?C¼§?€>Ñ?™CÀ?ÏôR?ïÑ=?²°Ž?‚Ž¥?_â™?Ee-?ƒ Ó?‘æx@b@D¹û?âí +?Â?„¬×?¸ö1?¹ª?ºÉ`?¸\?²v[?• +?vÒ?v~Þ?vxR?ˆl?+¢?·>r?êÌÔ?Ù’?ºõq?yŸ_>Ù>š?›©@´y?ß‘ˆ?Œ¹Û?¤üC?Åm?ÇNo?È‹?¦Cˆ?vî?uÿ8?v4~?í!q@L©@>ˆ×@/ƒ@ •Â?›µo?¢/A?¸GÊ?¤Œ?u¦Å?_¿ ?5t?pÐñ?¸ ä?èk@/Eƒ@!Dˆ?ïêè?óØÙ@ Åd@*ïí@COŸ@Qâ3@r2@WšÆ?·Àˆ?¯©Ù??ƒeX>Exh>Ÿª ?dXŸ?o ç?f?ˆ;?ÓÈÚ?Õ$B?°ßt?¦3>ôXf?ÎF@10Q@,ŸÆ?ÞÿÇ?ãès?¸Ñš?¶ÿz?ðŒ?ó¼?,X4? ‰?|•”?…ÚØ?Ë7?Ð)É?Û½Š?åb?ãÑ‹?ؽ¼?¡8ö?Š•@—v@"Bé?ÜE~?ºƒ?ÍK5?Ùäl?Ï ?½Aý?¶k¿?µô?»CÄ?Ä5 ?¾èÚ?µÅ?¢y…?œ²ó?çp"@QÖ?ÔÙf?7Ò%?Á„{@.Ð@J@?ü0?ÈÝy>ñ–¿?0Á?¬¶?™Ý>ñRï? !z?q0 ?ˆÒ?ýr?ÿsX?ðì#?ðYó?׌Ë?Ô9š?Ó¡C?×aÉ?à]?Ù™Ó@$FÂ@4&î?¡‰‰?p*ëØ¢>ëÁ}>˜Ð¯>´„>?åÏ4@éö?—>?kN$@Ñ@Ew$@!ô@ í?Äܪ?jÏZ?¬û›?ónn@ +Cî@|«?ýÎã?Ÿ0Š?‚  >ê&Æ?†õ?†Ò?‚xK?éµ:?é½€?³1¨?°Hî?ä]?òÂ…?®HÌ?‹bä?­Mz?Éi?0?#i½?_Ðè?Ÿ«x?%q?‡Ÿ?¯ºô@-„”@Pf?¶\|?¼Ôû?ïR‰?â’?ì2?å’Œ?š5ü?†Íi?FF¾?#?Oúú?lZ9?È‘@ ˜Z?Íl‡?b’>?’¸^?¸çÞ?½}P@?÷ÜA?¬Ð"?¬Áõ?öuZ@ Qv@–{@ $”?ÚÕ?²9É?³!‚?ÂqÈ?ÔW?ås?«È¹>åAæ?# ý?«Ðò?°¸X?ä|ÿ?àr0@Jê@AÌf?ŒÄa?5ZO?Î@?ü!Ñ?÷-X?ò==?âqÃ?Û”?­Ï¡>õzõ?qÏ@(ö-@Ó?Q—ù?3Π?ëT§?÷ »?¦8©?…wÕ?·õ»?áj·?Æ`ï?©ÛÚ?œß?V™ý?§@5Ùà@9{Ø?áé¨?áÍ–?QÚ7?ID?¸ÒÉ?ÛO_?ÿ@ÖI@Ï<@-2@»þ?Û+?À…?¨xü?¨gö?dž)?bv¹?œ«>à#5?Â…E@¯?üÕ@ ?ÿx†?ý‘f?ï?lñ^?e‰Û?ÕÚ?Ê.M@Êk@›|?¼æ&?}u ?¨·?Þv·?µ˜ù?VBG?^+N?^ª?]ö¦?1aþ?F¬Øóô?Ôï6@šƒ?Ã6=?A^?`¾+?¸?v/?̃?Õ,û?ˆ5?b´-?©â?×ðT?Ï<Š?¿7"?»Så?ýy>ñÅ5?H¼â?[˜º?„¨÷?…¹M?“êò?»Àv?Àñü?Îûo?çT«?vbï?XX?’æ?–W}?¢Y?¨x'?€X¨>×^ >ä°?WXÐ?W[å>zŠH>²dd?¡+?Ím ?§—1?̨?aº>ö’­>Þ‡É?OÁ7?Iz?…þ©?Ž8D?À…í@=-@ò[@­N@b#>Ú*Ü>îáÄ? ¦U?´’Í?CÇ6>Ø—˜?,?mîÞ?`b·?X»(?MM{?.P£?T¤?\C?Y··?ÀŽ?å‡~?un;˜‹É>ñ(?ÆO‹?¶ª?1W?†Þ3?<Àx?C +ä?®Ë_?Úß?›N½?\ƒ?yr…?¨õà?¶?‚O´?sÁÏ?Q^~?\þ{?Yj—?L¼>w*?E¹?£ÀÄ?5Í?EW#?]R?aÛ?i¯?€û?uT«?/%Ä?WøI?€xh?•&˜?©f´?¨R|?kèÀ?f©ó?@ ?-<0?›¢õ?®ˆ*>ßÂ<ÒÔÓ>cÇ >“˜‡>Äûó>íi’>îð>î¸p?Aø_?p…>Þù >j*æ>›Œ1>}ð(>ä26>Ó!>½4ˆ>èæm>b>¹ß>¸pÅ>¤Ó²>ïŠ>ùë;«¶Þ=™>ê*´>É(»=¯€> Tž=â}€?ZžL? ¼>v¶IZb>O>àÞ@É@^Q@´÷>¾öö=œ˜í>J¯1>•å<]´=“»š>&ë–>º½b?É.?Éj>£¼<>.þ?!Ìå?`s´?L-Œ?4–Ô?iž>3¨>4Ø‘?3¦?5Èk>•ÁI>4Hê?OXÕ? «?v? Dª?ÆË?æ¿? Œ;?ˆ»f?ˆµ—?{>æ]Ê>¤øz>’°³>Ç,>ç90>çj>ç¡p?/Á´?›c?Še>èVÃ>ìKº?Ⱦ?+¸?‚ïÅ?Œ–u?8ï?\—>þ¬4>鯛>ô§L>éAR?(OI?†ÂK?nã™?wº?1»¼?¯õ]?°˜B?ËSi?Í$"?qa?Õ?y–ï?„¼>?fï?^Áß?šÑ>?°¦U?”©»?zcr?qé¤?kÈ_?iz«?hXº?(Z =¶hQ>ìÈ>ÓÕð< k¨=U%O?pÛŽ?sƒ?e]?añ¾?V†\?Q€>ý£>ÊRˆ?AÝ?3ÑŠ?s?ŽR?ÀŸ®?ì¤?­ ¸?.;Ñ?„×+?ÛAÓ?¡ÕÕ>Ât>¡– ?lÆ–?†Í—@?üù>ìöM>í/?Á×?Êù…?ÔTÄ?Íj?VK?,I£?l ?ž‹ä?·ßî?ÈgŽ?¤_œ?‹–?T…?#d=>ß©>„u>w¹>ìõ™?+‰ÿ?šK-?‡¼°>ìúq>Õü‹=äà¹=¿ç(=š²G=`­ ;ŸŠ/?K\¯?s{d?£ƒº?«[U?ý~6@„À?RZÊ=2>˜7Š>í]?Œ» ?æs?›¼>®Õô>©Ê5>¤¼Š?+Ÿ‘?ÃÜÆ?¯¦?€öV?„Š;?IQ?F¨ø?•‡*?“Qí?0^¼?,›¾>ñ`>íRd?]‰ô?mZ?m`l?mb¬?7îE?,¿?Z¼ +?mz?¦Rh?ÌÈ'?§„?}éø?–?§WF?ÁEô?èOm?Å ?ms£?•Z ?í¼Î?ËÖ\>íÑ’?c@?‚¯‘?‚Õ?С?ƒ¤>ñÖˆ>î|?òÇ?ú?p$Ü?H©>Šâø>-(/>ž¤>Äpr?ŠØ—?²ÂÆ?Ù‡F?í2h?Ê›?²ß,?h_>º†E?*¨þ?‹°/?væ?<ë@?÷k>µ1¬>éU?A>:?8›Õ>îþ>ê]>Ù†?@õ@ï¢@›?³¯C?³[Ù?¦˜?pÊ?Ï?FC?Tþ‡?]é&?yg?í+?Ÿ‘?¤Ê?rZ7?K‡¦?ÎpJ?ýlÞ?ÌD4?´‡?›Ë1?ŽêX?RLc>ðP?.sÁ?pg´?pz›?p„=?Æ#@*—@Í?™Žw?‚4µ?7•?>¢Ö’>Ý«€?”Y›?™5?éÀH?è5?´÷ ?ºÆ·@}P@X»?©Å?AÁ?T’*?O˜T@5%\@;êá?“sT?qè‘?”Üÿ?ön?Š?ËmO?Þÿ?è +f?ÝÐy?ÕÎ%?½u\?¹Ÿ?žâ‚?ˆ¢è?‹ºõ?šÜG?KHø>òË·>Ë&>¶=ý>iþ=¼?mü?âwÃ?»'Ö?ˆL?žÊÑ?ºÓé@Qû@6‚:?ݧ=ÆàØ>ƒ]>Ù= >ÿ“3?6‹i?¨ª¬@¢f?ùlù?sùv?jEO?J£”?ë?Ûâ†?Ìp ?¬x5?ªƒK?pÌÜ?…²?¥f!?Ýë?±(?¨}?)$­?M¬ç?ÆÌÝ?µ>ÆYs>ÉÏ>?O >D´ +?l`À?p›?v_Z?‚µ@7ñ@4#n?ìŠ?ç~?fYA?`êE>ɪ2>¾>¸?–-?”ûd?‘;¤?zø?ÊT¾?Ñ`Ý?äqõ?î²-?Å>åE•?~š}?xT)?p‚¤?uå_?  Ð?§V³?Ž¶Á?ˆBT?Òa%?ãZp?ž®j?‹ek?áÏ?ô§?:9«>ûŒ”?¸?aH?tþŽ?‹]?,ë?aÊ?6ÄE?5á£?aò>öj?Œ>?  ý@H—@nº?̓{?»ÿ0?‘Ùb?†˜e?_w?v‹è?ïB@³Œ?7_M>K¬=Ù,…=ˆë?<Ð?Xõ?­lð?ºW™@2‚@Uñô@n¢?¸ýû?Ê^?Ø-²?´Ý?§k­?½T×?½™Ÿ?Ž9‡?eÔš? þ0>Ý·ü?ŽÎå?¶nå?áÄÍ@ü@ª@ª?Ë7W?¨¨<@+a@:8ç@=D?±˜Š?ÖÞ?ðê +?ÑC?¸Þ±?fÂM? c?‰®¯?¸Ñ¼@C @I€@ Ñ??þLL?¾ ?‘±S?X¨­?#?Ç?¬+®?ö=W?Ĺo?”‰?¢…?¹©?³÷U?©.¦?¼ÜL?ÖNž@@Ý?ß,®?y‹>?uãÛ?uÝF?X¾^?JÍ?œ ‡?Û#?½ý¥?‹bY?zb´?Pæ¨?Žò;?Àu?°ö`?–¾}?Š?†™†?Ü@C@PµË@o®E@?e¥?u%?S—>õä?9ŒÔ?·»F?¼)M?·¬#?Ââ?â.Í?ÎNN?‹¶…?]Ó•>ræ>KG.>h®?e*@@’E@¬j?úŸ?!9œ?Gð@_`@]ƒ„?‹¥?†ð?¶á ?¶ÛZ?w‹g?€Ê@ ³<@ìÀ?ßÓ?Öç­? ±á?¡¼¤?´éÜ?¶Å?˪?×ýM?ïûÿ?óR?Â?½Þz?h 7?"Œ>í >ò¿Â@ë=@5“È?ö*ó?µÞ†?• 4?‚·¥?ØV@Ù’?Þñy?±N\?ÇÝ'?ìÝX?ÕÑYì>ú›? +-ü?r8Û@ƒ/?ìM? s§?€w?QvŒ?†r@ â@Š?Ð0ñ?Ð/Û?Lóf?`t??ï?ûùm?²ñ?ž@Ý?€Ô”?uß??Úò ?íY‘@ +d@ è¢?×ÿ„?Â^–?Ýè6?óè?Ù½‰?Ì]3?ã©?ï+G? ûñ?!Ä?XÆ?pÇ?‹•›b>ŸB?šXw?¥Ñ?ÇWÁ?ÁAÖ?±çŸ?²“¼??‹´:?ç@¨q@X @ )?ר:?°ñe?Ö‘?å×?À¹5?¢¾.?Œø?”?0'>íQž?8ó‘?ëæî?ç-V?•¢-?Æs?b;q?Iv^?Œõ?–ÒÉ?õ@?‡X?ƒN?~Šº?o¸º?jÝz?Ø;Þ@ rë@lÕ@$Rr@! ƒ@&.@)Z@#) @¹Ö>ê ?Í?¯h…?±¡Q?ï˜?ëYÆ? '?é²?úïI@ ¹ú?‰§‡?G" ?ÂQ,?èû·?²^í?ˆöz?‹µÈ?Œ<õ?´IÍ@ +¢Þ@ç?µrD?Æ„^?ÝS?Üu³@ùò@î?²?¾Ï?åôØ?ݤÎ?§:B?Ÿ_?Ìœg?æâ?“é¡?2g?*…Y>æ×°?Zl•?æ¯ï?ìa2@Åê@ñ^?ŸY4?£ç³>Œ¢š<¦¸?@&Ç@B‘@¡D@”í?Ò-?¬%8?®*6?¸ Æ?•Óø? ø—?6?«Â8?«°í?®Oæ?³ð@Lw•@P|ø?Õs?d^Ü?ÊH?óÎÍ?ýd@?ÅYÐ?cÑÀ?ƒèb?ŸëÇ?’ H?”9¡?®÷ö?Š·Í?ž·?Õz8?é]?Ý~\?ÛüÅ?˜’\?eà?«nˆ?ØTÒ?óPÿ@ uÛ?ê–?ËÞ¼?Þˆ@ëe?÷„ö@;.@ öK@Kí;@T¦í@6W½@(Ù»@~Ö?Ú>ù?ÕŽ&?•ÂZ?œîÄ?¨kÍ?¨S¿?¨H?¤+?^0¬?Bò@?xP?œtÌ? ð ?£n?Æ8?×VÛ?Ðz†@ k8@\?¯ÃÇ?µŽ@5zž@Bì¢?ÿ”×?ÊTc?Öë…?ÞaŸ?“«M;Íd‚>ÏV?ú˜ ?é0>Þ"ê>Ý´n?ί ?ß!º?ªÆ™?†{ÿ?Ù¨a@&L@ß.?Ò!ù?Ó7%@'é@|ï?Y»é?;kZ@@> ƒ?îJ$?jçå?¥Y?é?ïãù?å=Å?Îr”?”lÿ?‡i¾>ü=³@¡n@•h?µ¸´?«µg?€\é?]!÷?aé¶?Yû;?e¾?içF?d‹Å?²‚>?¾÷>nB´=Æ$?dL¬?–ßx?Çq@;â@’À?»iÈ?¾z@#íÁ@/°©?Lý†>Øœç?âã?†{?3ÎÓ?|ŠÕ?Íž?È4´>Ø`>Ø#ä?×ñQ?â?¾F?–šÝ?‰¼F?›ç?“”ý?Xý;?R³>Ù<á>ÙWT? +@?0ñœ?©E?ê¢?¼?Sùÿ?8»Í?BZ­?jü|?ˆ#?7>Àä>ºƒó=æâ]=\`?µ½•@ + œ?ÇX?`kØ?k›·?¦56?›ÒÖ>ñ;>âð?Z¾•?_ ?ú>ê+A?'›×?0q´>®hý=2Pã>Æ@E?aîR?,d>žÿÃ>¢<…Ö*>éŒ? ,?œP³?™TÁ?7÷s?7â?’oø?£ñ†?ƒj?h¯?1ü>¸ÞD>U§§>T¹O>ÉHÚ>í©?O©?Çö?F˱?pS`> £1>¦ý>ó>2?q.ý?—>°&F;4ä:åø€>yì>O$û>…9>šìk<"äÀ> Ž5>Fß?š›?éÕ>„¦8? ?¶O‚>çk=Mê <_ `>;½ú>¢Y`52T>š).?ÒÖ?=Ÿg?=p?Un?T!>‘é>jò?=Å??`lÓ? ¢Z>[—>y™>¦ >™Zî>⊕>âÛ‡>”‡\>GÉ?$Ñš?EÐd>æÉ>&:E>Á‹%?\yn?e©‚?ƒ¹H?ƒ‡„>œ+»>—w=Xm>Ô.R?D‡?-¼?<öï?w¤Ä?²õ»?—g¶>èa)>ù?HØ?Ifœ?\°?øþ?Adç?Lº$? ®6>éºï?”Å?Ðß&?bä =¹Iâ>¹Ô?UUÌ?iôC?“Œ ?…ÙX>É_C>ÛÊâ?kä?kD?Ù»W?àŠC?01Å>ûÕÇ?‘©è?­ãr?ÓéW?èÕ‘?§ÿo?kg¸>úHŠ>²:;?i¿°?„my?¬÷|?¶LP?Ýм?β|?lI¼?hÝâ?Ðð?g‡?£®}?¨'?D>ì€b>ìŒá>ìF?Q?6˜?8í(?W߇?‹«?Ÿp?lõh?œ×>Ù¬l>>W”?%ê¯?lXa?ìÍý?Óp>ìÒ™? 4¦?±l[?®èæ?î¸?ó3?‚Ÿ+?là‹?Îû³?å[¾?Ì +Ö?ħ;?¹JÇ?±®ú?4X>|U>²Øê>ìë¥?Ù;? (í?E >ìð +>ø š?5?%oM?„ +î?{ìt?h’'?S-Œ:ûü=85ê?±t?®—ˆ?åÒ–?æj?†£m?x·Æ?ˆ¯#?dÛ?b7?B¹? bW>í +)?‚Pt?±É/?‰ùº?H›æ>ö¥î>&Ó?¦Þ?¥/Ÿ?´Ïô?Àân?¶Ö ?±ÜÊ?·²²?Îà?Æ’\?4?‰¥‘>‘Œ>–ä/?@hÐ?GA?Iò?L¢¹? ²‚>Úm7?oÃÐ?Œ˜ð?]Xç?8’c?“xv?·™¼?mee?È»?7B¦?n”Ú?;³ƒ>î†M?̸Ñ@g×Ý@;ªú?¦à?¥r÷?©Í1?—1Î>íÒ‘>íÙŒ>íßè?G@cR@­Ù>ÃÇD>« ò?¿? ‹?@»w?B+2?þºp@@I?Ô*!?¿¹:?»wž?²Ê|?jSÓ?Ä.?™ò?Ö\ö?³çÚ?•v]?7=´)K>S !>’õz?™ã>ÚÁ#=1É>5Ž?o\?Sã–<‚šF=ÕO^?gÇ®?aØy=p—=…U›>jÚ>6«µ?£ÿÉ?³­@?Øñµ?ÞÅ?­Z.?Ÿ´?‰Â?0†?ÆÐ?ÔöÀ?›ÄH?o} ?GTa?-Š‰?Nów×?eD¾?b=O?q…;?pÞ?†Ö?’6?Ó=s?Γ˜?ËN?È î@[œ@Ï?¥‘½?”¯â?­Þ£?·s?ž„ˆ?“jŸ?ÆÎD?Û—˜?=¡Y>œ ¥?º&?9Ù.?Ñ”>þ‚#?T¹Y?{ë?u7¾?~ÐH?Þl×@¹}@'¦@6lp@…d?÷cÔ?º^?]qO?-p >óÜ?#¼q?Z« ?˜ê˜?æÜk?ã(‘?ÌÊb?­±q?sör?”êY?Ñ®…?±„º?7¿v?U¡Û?›êb?¨+H?Ò¡Y?¼‰S?"s“? ”ì>„ì?V?ç½e?Ä@=”LY>‚²Í?±ú½?¥è?P9?ÌÄ?·³÷?¼õU?û,/?ù¤1?¾¡k?¿ÇT?­lf?­üõ?Ê™5?¿–Æ?B¡‡?VÝÌ@rX@¤‡@Ò!@'F@ Úd@¦M?wU/?u«6?ÌÍk?ÙÝ?•·?–Ç?‹®³?‰Ã²?Á?ÃhÙ?³KW?¥g2@ p'@±?Ãtˆ?¸‹±?g±>öŒ?_Z?id¶?¨:Œ?®JŸ?Ï_>ö?Ô?¿Qm?Ñ‹c?mwâ?IƒÊ@#2­@47±@ îß@ +0 ?™J0?vj?;±?)˜?¥ŸÅ?³Œl@@ñ#@`‰ä?Â÷w?v…§?¯ë>ö†h?œŠ^?¸ég@:ZI@WV@*.×@1Í@+›A@,eÄ?à´¡?¸ëð?®1t?¨m?Á=?Î.ã?ö÷\@†?B>}˜?Œ\?¿í"?¼»K?¸çl?ðåC@–Ë?Š9?—T€?f(Ý?P8[?uçÇ?€Nš?xºx?vpk?£…?¸Ð=? f0=IpÔ­'?’0‹?ëpú?ó–?ǫ̃?Õ)y?´X8?sH >õ¼¾?Õ#@;Gz?é¶ ? cj?žš>õ„Ì?‹é1?õrY?õj¿?õ`ü?¢Æ#>›Œ†?}@:@ï/?þÓ‹?ÜÂì?Áfô?’§?V'>üWÌ? |?w?¿a|@.!@$p@%s@O@ ?ê×…?iI?TA?=Kõ?w€a@yü@°ò?Ö…?ÖùÒ?‹L?•¹¡@ìÆ@ ¬é?óñá?ðäñ?¹#Ã?´ò×?s¹³?u‚“?û??þ‘&?Åõ2?ÇCz?Ìç‚?Æ¥µ?¶èd?¶k„?J??9w?ÆW?Ý×A?Q™¿?<@ +M@'á¢?…Ú»?tÇ?Á—]?ó:@G’Ü@cŽˆ?Çmý?û?»X~@ c@M)2@xƽ@'Æè?ÓÎT@›ü@#öC?{'©@4à @*T7@³?ñÂ>ðø‡? +ýþ?NCÏ?y½Õ@3ç@·k@46?÷óÁ>»Í>§W–?™æÀ?“d©@ž\@"}?¸;`?²‡@&ˆ-@0è@o%@Ë@wý@ת?òà`?×f?^Û§>ö3å?™3‹?ØíÙ?º6É?•ñò?FX>Í«ƒ?Ã.@M„ @& ?ƒÎ™?¶%ï@«|@ +BÜ@)þ@%K$@¢}@pR?f ?]ÀÄ?”Ð?nQM?œ?[4>ÿ¤-?æc? ï#?£ðµ?Óö¼?ÃßY?À7­?Œä?,S¨?Äp4@(Q@ŽA?¾ƒ?”™­?±?±A?¯g?¼Xˆ@6@¡]@@¤@ÉX?Ó\­?ÏY_?RF?©ú?¡i™?°T}?¸g×?·)²?ŒÖ5?k;x?Ýïm@ ™?²?, T?¹lo@m(@¼K?ò˜©?×t‡>éô ?åû?ºªr?½sŒ@ˆh@W?ãÿ ?Õ\“?ï*d?øP +?¿˜?¢sY?öìS@‘W@7Ã?ãp$?ì£?úšÞ?«õ>èc*?9òQ?®)b?¸¶÷?è  ?ßúÅ?•=?¦Ëi?‹O?w%{?ñ+ó@ †?rSÇ>÷’ÿ?@ù?n²?ÆåK?õ1?›$ö>æÁ:?9]º?­G­?»'?Òé?Ñ×™?’Ë?„6@GH@FV4?®>±?£–ð?ä2v?ø«?ó±?æC?ã +´?ÔN!?§§a?y92?†©»?¬™?¤F±?phT?{õ@ `õ@‰â?ˆX0?dDÖ?­—x?¼š?°9Ã?ªïñ?Ž +?c¯?†3(?ª¥8?šƒS?>z4?8¼ï?c,Í?cj?¸O?§Žü?´M,?±5?ª ?¦ž&@€6@G«—@,K@.g@  c?žÓ`?¤i@™/@!£Q?µ¿v?©Í +?”Ìš?ªˆæ?ÏÅÌ?äº?¤Þ?$6c?3c?`ª¢?–ˆ?·V.?¨Ð?dž‡?nû@ô@*U?ÔǬ?¥Éù?CÑ>ߘg?ÄZ$@V1©@DŒû?àŽÏ?与?Ó"?Í©@ ™d@^•?Ñdj?¦Üo?´F‡?Ìx¤?ð33@» ?ÕüÚ?RL³? +C?o +?Y•@¬Ê@‹,@å<@ðl?ß› ?¯&?¹F?³Ú`?½Q¡?Üú?Ü…{?˜ÊË?oÄs@ f@$-»@Át?Ïîí?¾ÿÞ?¶†?Ó!»@$¨¤@$”•?ÏÚå?Ò d?Kt>Þ"¥?yb?®79?§á›?„³µ?‡F€?û}f@”û?³ûC?Èäè@¢¼@RÄ@ß@¦?ã<³?‡«¶?‹S³?ynÇ?m­Â?aç¹?Y^v?Ûg?ü?˜•?+Zz?x§?®ËÇ?¸3à?¢‹[?¢x§?Ђº?Éâ?Þ7!?ùÔ–?µ6?%_Î??q¹?X:?(1?ab ?ZD*>Ât®>Ë…b?’"?Ã{?œ?Wž'?YY‰?a·×?X5B?ÃÉg?ÄÍ/?ÍêH?×Zf?ÀY#?¡x²?²U?üù:@x ?¥àj?®Z?¦—â?¡^÷?…½?W'd?€&7?«ßB?¡}?W$ ?W&ó?¢“D?±ë?Rç]>Ç:,?PPw?ÊÀ¼?Éæ-?£ñ9?Ÿ-ü?™ ¿?’Øn?z\Í?‡» +?Fjƒ>׬–?®‰?^×??d·?“¼Ö?‡.ÿ?Á¾?ÖJ¿@Ó¹@öÉ?Íç?MÊ:?!—<=Â/>Scî>Ù(á>ÙJn?z·? ŒV>ŸŒl=«H«?ª¤?žcà?Ÿùf?¤â?Š¸b?+¼‹?8Ø?vž>mN?'Dj?IA’?U¼U?ð*?´·Å?¾/(?·ã$?±„Ñ?ªÀé?¦Wˆ?žRŒ?›ö¹?•Ò;?©aq?¢2?‹÷?šé?>>óž>‚T>O:8>Ÿ5=°„ <ÌžJ>åm>åí‡?ѵé?ÎÓJ?-9>çòó?VÌ?iÜ?£…Ø?¬‡}?sN ?IS`>̵’>`†¤>Â:>íÝY?J"?o3j?!¾? Is?%ªâ?Ö³>ôXÿ>ó‹c>ôX|>õS>õðè>ïÔ<>Õ¶>¸ª8>œ"¦>~×Î>E =õÇá>>Ã>>µa¿>Ô…+>óä^?ç&>ÐÓ°?´¸´@R7É@ÑŸ?­ÑÁ=RØZ>ÞB?8'Ù?e¢N?€ìþ?CÙy>—V>oG>ú /?d7>] +h=Ž*œ>sŠ>T÷ç>âà>ßÙ>;¬o¾?‰Ž¾?« ,?I™ì>äží>ÈxS>—¦>¦gg>å«É>ÙŠÑ> >`Ÿ? +Üd? ©j?ü…?#Ž?{b??œ?}ƒ^?3z¸?vû>«¥¾>»bœ>è·z?.Ê?Ý?@>÷m>ézØ?Ò ?"Öø?BŠI?Tï«?Ò®>ê?T>êYÉ>êvE>®†=ì¯=›t"=÷DX?VÛƒ?Zãh?k5?kJÛ?k]ÿ?kkò?icÊ?jzv?k–à?kµ˜>¡Î,:•Ä?¤G@òP?ÍE?l ¸?hÀ=ÓŽ>Ä??‚‚?l/?8 ?,Ó;?ÐÙÉ?dž}?!i?$ç>>ô‡C>ìl?E” ?NGK?«‰ú?¹Ùæ?v²€?G0’ìp>ÕE ? RÒ?Vƒ?8/q?ˆìG?ìÄG?Ùzä?’ ³?’ò?¶î€?³¤ô?©?ƒÌ ?š ?Œ.À?EÑN?E†â?hû†?lÛ ?Š3»?’ï¨?j¹õ?R‰?) ? Uá?5ú‡?[pê?:»?;‰?*í±?\2;?¬Q„@Q¿?ä3¨>ìä?&¹?°ú*?žâE?‘?b‰?Ýj?º? b?ö>:ŸÉ>/W±?—œ?¤HÙ>¾•.=þA?Ûð@!—@ Ž?é‚Ö?ŽdH?Ax?¡å?ûf?Ñ@+?­z‹?”r?:Õm?cA? ~”?Ø'?ƒþŠ?y_•>¢9ä>§(B?=²?7ÌŒ?2|‰?-"?áƒ?í6Û?Êú"?ÌCë@À@ l?ôvk?ç¼—?Å}Ý?² ?÷u@ M?èw?¬U?¶És?Íù1?‹¦¤>HÞ(>µ8?#?ÿ>í±8>í¶t>í¾n?% –@Âl?ø>“‚û>•,,?ÚБ?Ø°k?oþ[?nN^@ +Ý¥@Ń?7¿i>Ž±_?z>‚?¼4?] >–?™Ÿ?íÀ_?†òY>¾”>¥€*>[%9?' Ž…>§Ž~@ ðó@H|?—8?Œ_ä:È|\?0 S?<@XË@ I?ÇÞ?f>ÞÐÌ>†y?h8\?”ªº?ƒ‚O?zÓ“?w|­?p ÿ?†h|?h?–íb?›Ì2?O¡à>ð^¹?æc?&6Á?(›/?*Ã?NS? ¼¼>À&Š=4Üø?ì;?ðì?Ò¿ë?u;?ER5>#C?qD^?…|ö?Ù¬ ?Ñy,?–ØŠ?’Z?©®?£Ð5@{‘@éÜ@H@­Ê?á™÷?Ô=ï?MyÙ?;ì³?z0?†+‘?‰Žû?Œô]?¬ !?¬P ?É!&?Ñ;!@ + +@ f’@;Ù@WT1@5å?²¶²?Ü|S?ó;‡?C«S=;Ψ?±i¶@É?«>=ý ä?:Äø?ŸÆ…?¹é\?Õ¾?œe?CkP?ÇŒd@ ßé?üËÍ?iÛ?¥ÞÇ?¶ñ²? ãT?t?ŒÀò?«ÑË?…©>ô8Î?*[Í?‹ã`?€íX?X%?mËf?—Ñ^?]x?1sà?4·š?t­?…ø¤?·[õ<º?À‡?Úì›?ßžÃ?È•c?Ü”@9 ˆ@6¤?u‰?z÷±?•â ?ŒÕ?¥¿{?¨¿,?ƺ^?ÄH†?ÕL’?Ûõ]@_Fª@g” +?ˆ¬?w¤-?uíð?wƒµ?Š\>öD@"ÎA@'8??FS?-š!?íÚ=?ñ$©?¥x?¤aQ?Æùö?Äܯ@ë@$&ç?ÌUÇ?¸·8?š”³?“Û®?‘ÒL?Ʊ?ÛhÂ?ñù@ —}@  G?Œù?eü´?"'Ã? Vf?¥×C?¹„@%{@!Ò?vúÕ?-ùl?»Ä +?ØŸr?e»¬?6¶n??Lá?Gê…?‡î{?’·á@$$ø@;ÒÓ?ÏÅ?•çä?©(Ä?­P²?´t?¸Ð?Ƥ_?É9?ßK ?êžà?+>/r‰?Øç?/K–@=O@8ž{?èc_?©ŽÏ?¢FB?šº@?Õf`?ö ×?ör?öJ?ÔÞþ?Ç +¹?Ps?< ¡>Þ’³>A_A>¸‡>ÿrê?¤ßB?õ¹>@ `@.Þš?Ü“ß?_GŸ?°ËÀ?øŽ?õrè?Þú?œ»ˆ?AOü?–`v?× õ?Ì·ú?ÂÏ5?r¶Ñ>!r?O÷?Õä"?£‡Ä?MvÍ?ƒÖŠ?®B?¦.?tÝÎ?¹z„@ì@Hþ@<¿@ "²?Ó; ?¾Rè?‰à´?¨ù3?Ûæ*?Éðf?™]U?‰s?@¤?yä¼?Ë‚³?¾]?ÔÉ åÑ>D§?¦nv?ÉÞY@ ÝO@3Vù@ñà?¹åæ@ L@5>Ò@; ?ÿ¤?¯¡v? n§?[Û©?®·]?´!H?·Mƒ?‡¶ó>Œqß?"I™?™å?—ƒ? Æ÷?Ÿ#K?¬¤ ?²X?ÃϬ?Ñ-‚?Â?Žž:?ð+[?ïÓ”?(×Ö?òä=6V‡;ºK?m¸*?ô??–¿?ž¾ƒ?“Žt?ž…?ÃÙ?Íïº?We®>Ó’"?;?ÚTF?ÚoØ?â00?c7J>Øt?nñ¥?MÎ?ª?Ì?]~9?—d?î<Ý?èß?­Ô?°3o?™L?§” @+îL@2Ý?óâ'@¼Ì?„>ëïú@B@%`Z?Ã=Ɔ?„xÝ‘³> »y?‚H?—ø¹?혟?÷> ?ìu?èU?Ê5Ñ?Â(?¥2?x:?±Þ@Õ?Ñão?XìÍ?^s?zµÓ?Ïý?áE?ïÀW@/%›@.O?€Ú)?‡Áè?à*v?é?’xé?‰Ž<@Ü/@(Â.@«Y@Ç´@!”÷@%>Å?à×ç>èG +?<9U?®^?Ã\e@s>?ú)?4/‹?*”2?‰Ù•?œ? ©×>çYv?N°ú?g3‘?æñé@ ç?Äû?$ë´Y?+g?{„?‘0?·ï¹?§b?c_?bøì@.Ç[@/<:@è@ Ÿ¿?¦iÔ?osD?ŸS?Ô²[@põ@,Ÿ@O?õvÀ??á¨ö?áŒë@ k¿@ +-c?³ÞÉ?›åä?¼’?É©Y?Þýö?á?»‰?”}?¯½@&“+@#þ‡?Õ/P?Ê•ñ?Áf?Ú}7@0ï@;ë¥?à +î? +Š1?äØ@~?àí¶? +íq?25g?Ž t?˜ÂM?¾gS?Æg•?”å!?Œ*?eüÊ?ÞÅ?t@Ê?âøŸ?Ý”ã?®)J?œ[i?‰¥9?Ð?µ~>?ÅN—@,Kš@YbÕ@?ë@»x@ö?Êø+?ȯ?Ü@?Ünz@ø@VF@Ÿv@ œ`?×è/?®kß?…/?A/ö?m:—?ÀçV?âæV?¥°2?¤\à@Ø@£©?Ù:?¤‡?‘\?ì¯?¤kŽ?ìwr?曪>\[›=g7?¯ž?ès¯?µ¤/?§le?£à¶?Y ›?pôï?¯_[?©w?¤òÙ?¡*"?Qÿ?W2ã?ûÑ>i.i>¯p[?6 ?L¢+?œìW?¡Õb?oú?zš?Ö_?ùáp?”&”>@ž?@Ê4@Ä@ +¿.@©)@6©?»ˆD?•ù?žƒ?Á%?´X?rPù?nüÿ?žuÀ? 8`?)Ë‚?:ï?²Yh?×?T?È׿?±Óœ?«¸ä?¥œÏ?¡§@‘>?øN?@þF?d?X48?|ü+?–AŒ?× b?Íñš?W 9?W ?pÊ?ÈI?•ß?•¦s?”©4?¡`?ÀEœ@ Ol@8i>³Ü>ߥ‘?Aè?*…?,Ûº?(÷Ä?e¡¬?×FJ?À™l?ƒ?1VN?šñz?¢?Ýý?ï1?z˺;ç7>­O·?„”x?t‚?ÓÄì?³ù;?f³]?Y…—?‘³p?£_Ÿ?a”ª?6Ä?LÒ›?™§Í?›¼Ó? Å?ÖJ@*@>Xÿ?†C>ÿs?–c?›¾?™K?´D?»sN?ÀÓ—?ËB†?b)ˆ?oS¸?Î5Ù?Év‘?€?Œ?+g¹>àþ>?Yf<ÚùP>…Þó>â +Ž?å™?*ß?ñ<>㳿>¿iá;Ž€={Ï4=í%å?s¦o?+È?«>è¯?YÓ‡?i/¥?Ôä?âÓ?Œ ò?kˆ°?@2ï?%•?^c>î—?I(r?oq±>–Ò-=á+²?>”r?rS?º>óÙ]>ô§ô>õm‘>öH$>÷ž>÷ò~>÷«à>abæ>—“5>ûè>×2=%ù :˜Ù=Ééo=#Í?m>Ë$Ú?v†¬?بY?›º%?i…<'—}>eªË>…âX>þ#L?uç?,LÌ?4‘À?F¿?^FB?6=’>ø>Ú>‘N»>‘̺>2K>r~>¾Õº?u?".Ð?:d`?% ×?‰‡9?™Ã?*K>ä¢w?¡?BlD?í³>¡ž >¢¬u>£Ä¤>±ƒØ?µåH?·>²>[c=õ'?ñ?,×é?_’r?ƒåÒ?%Ú“=Õbp>r×? †œ?3¬Ì?ÅÏ?êà? +b? ¢º?’ãQ?œV$?’ +>ê í>ÓSô>Ì[T>ß7Ò>ê‚?6¦?ÒI?$Ú>;ñHÑ<¸ï;>´?qʯ?nÏp?jÐ?kx>ùE$>ë Ó?YƒÖ?k¾¢>jR~=™Ä>^Á?ªˆa@ ¼M?ÃI?Q1ö?04?À«>È­Ó=ž®p>]±®?;”Ü?T1£?–×É?•*2?“w?‘ œ?l ?l’5?b—Q?jš?˜g¤?œGÜ?‹ÌQ?ƒ`×?%Ž>ìµ¾?Ó?,O?NLí?l¾+?Á¥Â@Ç’?ñµ«?šw?—M¼?lËÆ?VQÕ>ìκ? g?d?›6>í†>ía.?„5ï?…Q?8‘?)V>Ó >´Ú?,óþ?K•?ØQ>ìÔ$?}”¸?­Õ ?/]=°>\©>ìÙ >ìÕƒ>ìØ‚?>«?±¤ ?– >ìÙÅ?;©?¢? .?©%?›?’?Œ® ?ˆº©?ƒ7g?†ˆú>Û Ž>¢?ã¾+@ …²?›Óú?kðô?vº€?lìi?ÇÐÄ@ß«?ð9Ž?Ç-n?™Ó?K<¢? nô>ìý?!"e?o¢à?oÏ?ˆf?Š4í?¢ã-?¢yg?™OÇ?±Ù?ÙËð?Ü©> r=1+?Kz?g“$?l­:?m??£$¥?±÷ü>õú=×Ü‚?—Z(?ççJ?ɲœ?²ø?¤Õ?íú?{¿?QÉà?Nüã?L-¸?a¹?‹# ?‚¢‹?}8.?‹È?¡ø?–yŸ?Œ»4?”¨ >ñ83>íðî?”Mõ?še™?rŽe?SÙA?’ß'?›™ù?{í?n7Ì?.C9?ëü>Ö½=–ô£?ac±?¹NE?=?+¥?•ê>ôÕ¸?'ó?nµì?‹¤m?°7h?Ì“@‰û?ôŠˆ?Å"Ö?Åe?³On?£oç>²àë>¼è?Jøð?Gë…?¶$?¼?ÁÇÙ?»µÕ? Ú +>ïž7?^;û?fù;?5­+?)=?9Ó?DØå?œŒe?´a?¹OJ?Âe¸?„ìN?(x¸?âb?«["?Ï^!?ðvT?Ô°€?´pë?´??´‚¶?žRÂ?v)†?¡Éì?çÁµ?Ñ°?J?nE>1[–>Ÿj?NÇ ?TA†??Bò?=ý@ñp@rø?ýí~?ÿÔO?¯úÓ?´2?òµ»?öˆ‡?;I©?*&Ò?&Ü6?#ŒÔ? 9ð?æ¼@iK@.^@%µ@Ä£?Ñ(Ê?½¯¨>Ø]ü=Œ€ù?87"?tº©?øÑ @²Ð?Ú'?«û>?“ñc?Ž)’?r³@?IÛ§?lyÐ?‡xœ?«Y?ÇÛ"?¬–?P?Á +?ÿ¶"?ào¥?¶Ì?¨Kg?™Q?i31? Þð?b"ˆ?°¡$?ˆ(õ>ô‡?Eõ?§ÖÇ?’úä?@’?ñ~> ö?FG<@ŽÁ?ÿ+?}R¤?4&]<4A >-”?Åo?Øú?(íã?…ûf@Z0@_˜?™l5>Ë€d?Àm!?¯Ë«?8ñ®?P”e?à•ç?èT˜?Ù Ú?ÔOƒ@©¾@ 8?uÑ?‚ó0?õ¡ ?ï`c?MaL?9óˆ?d7?oÜ‘?·@h?¸]¦?·HG?¶'†?æ½Ö?àzÝ?Ò•!?ÙW&? µ?šŽl?{ƒ?‰3?zcó?vž?†£?Žiì?r A?ws?¶!V?¸¤?ŠCù?‹Û&?ô“?”ÿ?)¾K?‰Ÿ?¹?Âʵ?w˜>Þ©Ž?¤+u?µB’?îä¾?õþ?fM?ˆLì?¨Ž?§ŽM?‰²Œ?ˆ !?˜Ü¡?–Ý?“à>öag?‘1å?Ÿx@²ù@(P`@?H?ö_©?áÑ??ß™N?Ž¬‚?©?àm:?öR‚?Ïú?Â9-?´¬x?³°ð?ˆzG?vG…?ØÝß?ò×î@O<¨@fžê?­¹x?&Kd>ëüÚ>¸Ÿx? +›'?# +€?¯G“?ÝV?¹¨Ò?ž9÷?¬ÿå?²]?ÞÁÀ?õõ‚?Ú.Û?ѵ`?w˜?ž¸?ÎYˆ@¾ú?õIÆ?î? ?Ì«¨?¸Ch?¸Öñ?»àã?„:?P+e?ouð?u…?ë‘T@„)?×ç/?š¸³?Ž2K?uQ0?Ë8@ê´?°ü%?G[Ø?t‰?„’E?Ñþ3@#Þ?³™~>5¶d> >ôݳ?-ïŸ?tÄ°?•áé?Âã˜?Èë?ÍPU?¦cK?;ô?HÕ\?Ig:?„½N?Ò±?Õ{F?Ô ??Åæ?šÍô?Ë]@G h@>p©@ ïE@ ƒ©?ìÎ%@Kè@8N4@$Ðy?€—Î?°c@ Gd@Þ›?sj¼?y?£ï:?Ÿpy?s.ö?wæí@'—@#tr?h,‹?R*\>¨Mè>‚æ@ ˆ@0”?jK°?å@z¦@~Q@0•9@8 @€Ï„@‡?}?ãÒ`?r*?¿¡[?Û'©?ÝÙ?׸w?™wŸ?q¯X?øX¢@+ƒÍ?ùò©? î?ˆa´?qNp?<ìj>ô=Ó?+D*?waK?² ?ýœg?ë( ?àäÜ?ݧå?ÚaM?Ù:w?Ö•þ?§>[?Æ“ß?Ũî?ä5c?éCò@{S?÷ŸÈ?sz¿?g"b@:;ì@;ŽÒ?V +•?ÐÐ?‚ŒÀ?†à?oä?”§E?ZäM??P?åÁö@Há?ÛQj?©?…)?d/p?ë¼ë?žÆò>îB)?9ìÍ?“¼ñ?ŒG¸?…?ƒr\?2A·?9g?@K?OŠ¹?“„ ?—†>dF=‹¥=<£Ôò;Ä?r ¥?•(=@+a7@0…2@7@4`ï@‰ ?ìˆ ?žø÷?L[ý?"Øç>ßá?,5®?‚¢?ö@?°äg?&Z?Ña?jý@š#@´?xã#?†zâ?ldl?|Ø?µˆá?©S•? f)?É@$$í@I÷ò@Lª¬@Gl@ –?Þr\?“BE?E_â?¦ßœ?ê—@YÖ@ó@®Î?ú¸@?÷·”?º@å?Æ +³@/-@.Oe@c_?þà?l +Ÿ?qô8? AC>èÜ2?áG@à?뢛?ÅeÌ?½•i?®H2?®-à?¨÷©?”âè?~™S?².@#ãr@ÈÁ>æRí? +úŸ?se?>?Žw„?bˆí?VÏ0?g?¡ñ?½a?É x?ÄÛ?À0B?ÆôÏ?Á±Ú?¹mÛ?ºi?›K?•• ?¸è´?°ë‹@¹ô@›y?®º?œIñ@My@"ÝO?Í56?­óL9?6h®?¸ãW?¯* ?°h?ºx'?å3g?û¤W?öy“?æ«?Ãmn? <?šò¢?›|?¡ÿ5?ÃJþ?¿Ø®?‡ud?‚ny@'õ¡@4ï¤@Vò@ ˜?űŽ?Ÿôb?ÊÖ?ß`@ È„@:> @,#×?ù«g?ý«?Ûˆi?àŒQ@C§@?8?î_‡?ÐÇÚ?ÚçD?àèË?ü´û@¾Ã@™@«†@: ?à„b?ê¦g@¡Ø@ó?àžo?ͧò@&»@H \@ÛÔ?˜ê?xE§?`¨O?IÊï>ß +U?/i?ÞU?ά?ñÄ?å?hÝ ?§¾?Üè5@&Qó@ …n?Ýît?ñV3@îF@ ®€?Ò÷ì?¼â*?ši)?ˆE?ez‚?`ª^?Ò +@@eÏ?ܦ?ØK¯?ÅÁ|?ËHB?‡Qü?sŠ@ ¢ä@$0?å®»?¤Ò^?”œö?gºl?MpÄ?íþ>Û!?¤cª?¤Ož?uQù?„˜?„b(?}/Œ?‰AK?„mÛ?Ž/?ôÙ?ÿ+û?Ú(V?ØkJ>èL`>­ì†?J1,?l´À?l¬?â?…çï?¿ˆÆ?Ðüñ@‡.@p`?¦9?€ºp?¶ê_?Îç?Ÿ¢…?Yuò?5e[?dM?ZYs?—AÌ?•ö ?¶Ã9?Ò_I?‹h.>áZ?CΪ@-Ñi@9ð=@àI@Ô(?¤;U?”&Ð?€Úq?W‚2?ˆ;?´Òj?› —>ÙC >ý4?Ñlr?É®q?Í7¤?×+V?¿ûþ?±&?ÃfŸ?ÔÉ?Õ ?±>ª?½_a? ‹¯>[a3?D1Á?¡4 ?­Ú\?ÑE¤?ѾŽ?›‘Š?•eD>ÌMË>ÁL?»’¹•Ý=Ͷ(?E ?¢,ë?‡Ô7?<Ã5?1Ý<Ã>H>DW?^8d?^‡M?Ú?NÜa>•M<>áa>ÊSa>îZˆ?tŸõ?—öF?ŠÜ[?ƒVL?U½„?2ÌÈ?K7n?Fà>öš›9îÎ=—/?4ÒX?‚?2¿Ò?%s#>êÿª>èAX?U‰i?i=@>l>¿ƒ1>±è>ÏèM?:? £õ>æ«l>Ùõ=ÞZ<=Ž@4?ÄÑ?&X©?‰Ÿp?”Ú¬?YÉO?/aõ>êN>óù-=‘B=­wq>ô©>õ +{>l‹ì>G‹Ú>¿ÓŽ>ãÚ>ýà¾> M³>ñ>G&Ô<ú;å?u^?tÀ?Ò >³‡?W>P?›Ì@Eµ?™=²Â¨?1‡>‰áG?<-ä?`ÕÒ?i¢ ?<èó?¬¯?):>›Í„>®ü??>M?>Rr>ú²>áã? š3??Éä?}j_?©Øx?‡Î;õƒx?@#:?C* ?+Ï?ž)?<à??QjÃ? þy>v‡–>L5 =ïJ4> V¼>¬Ý>®3«>¯p>°üÙ>ÂY=Îùˆ=ɃJ=ÃÓ‡>>èp?…?S`ÿ?<m>éÐ>û™ý?E›ð?GH]>ëj¤>éÎ_>Ïë,>Й>Ñ=-ÈÂ> žœ>êˆ~?’§ ?Þ¾?×’<ü‚ú>,Ì‚>ëÌ?H6±?ëCV?ËÉf<µ/]>ëwØ>ë ?§““?­¸4>Sœk?¢°B?Óîd? ­v?Œ¤²? $;>jÔ=óÓf=ªÓæ??ŒRð?_s×>ì`Ü?£G?…á‡?qá(>жŠ>ó›‘?l‹¿?l ?D…³?@à±?ÊÚL?ÔîP?xª9?\ ·?E¥”?5½ï? M+>ì¶"?;=?5 ?ªŒZ?ûÈõ?«w >ì½ã?!ž?lÅ]??Š +?ntL?&Oµ?%UÓ>ìÇ?$>?–ß™?˜¬?&?“S3>*o>=+â=åž›=´é˜>ÌGà>ú_õ?JVM?lÅt?›Y„?±“2?;¥;Ìú`>âÔt?f·?‹ÐÖ?±”Þ?p”î={±à> G ?€¤?‹MH?±“ß?¥î“?2Ôn?7e?‰ç?üJ>ñs5>ìËÎ?) +=?>@D> +5>ƒžY>¾d>æ­8?IüX?súS?ÙEª@ ž?èP?¿†œ?˜\?F¶y?ˆlî?Éü,?ÊSŽ?Àƒ“?«‹È?lõ/?s%¦?h¨l?]+?„,?zf>í ¯>íYŒ>òÔ:>íô?cV¶?m ? ë?0ó?J‡š?W’ª?¡_ ?º?•Hé?›w?žpp?²É?Kà>„’R? b?mti?|4H?Œý‰?ŒkO?ýñ?†Y?®µQ?Âæ#?ä´?Ñ s?¢Mä?˜À?mÒ‰?mÛ¾?êDô?ñ÷ã?ð.®?íþ?‡l6?nÀ?€M¢?€Åk?36è??°•—?æ¾Ø@ès@b@lµ?îfô?•=>ø–Š?dwÕ?²úç?¸(O?Ä([?ÑgP?ã?’?®Ü>¯«à>Ð@;>ïb>ùR?!?5\6?›Œ¿?–ÏL?Œ°˜?’¨?—Ä?œ»?Dãt?PwÙ?¸ŸX?¹òÃ??ù=?¸T?‚;?³èm?LÛ†?D“?‘³ª?´Ü?’ì¤?|ض?Áú?ðUd?Îö$?´'Ö?–h}?qåæ?rá?p§ð?¿ÛÓ@è-?Õ£É?!é^?‰X>º€>e>å>œ¨o?HãG?‚BŽ@ jÄ@´ ?“z¡?ù–?4ëp?Md™?ÐFi?Ìú?šr?ŽN?qè?qô½?rä?r?Âͪ?ι?‚Ã&?rMR?Õö~?ç×¾?o?vS +?©ËÒ?µø:?·bl?ºí~?HÆŠ?ì}?¸+C?àNÈ?ºÜÅ?©…G?UÊø??Æ#€@NÊ?¥­?Vª ?­yô?ؾ~?²ëZ?˜æ?˜Ð™?”ó ?,¹À><—³?zy?Ý9ˆ?“¤?ðQ??Ù?t?¢Ä¼?á‹?»˜Ñ?tHg?§#$?ô^N@&@UäÒ@5šm?ér)?ã£õ?áN?¼¼á?`uÅ?–pV@M©?ØÜ ?@‰å?342>ÿ·>ýó“>‘k>ýmí?´ ?¹2?´#Ç?¥ô?u>?Ÿš@-^ü@‡.?•3þ?—¦ß?ˆR*?–+á?ÿE÷@Ë[@)i²@Z<‚<‰=?y>ö)×?&þ?¸JÈ?Ĺ!@0üÏ@(??†5?€œ?æŸt?áë?‘ûë?Ž9?¡=K?œØó>ö4û>ù$­?7y?2‰?ƒT¶?ˆ=h>ûäY>÷o?g=?[ ?•s„?’×ó@Õ @×·>ƒê=æ»Ì?7>÷®>ûÓî? ÍÛ@&x_@+]Õ>Â&à>‚³ö?Î)Ñ?×öo@.Vá@0¤Å?y“X?FØa?ŽÓc?—(]?³¶Y?»Ù??¨1ð?«µ‰?¤¶¯?¤8w>Ýž >€„s?ÕuØ?ö62?þ<ì?ýb?ˆ¸?kGé?vÁ-?v*S?|R¨?ƒ©?›àX?®+”?ùaØ?ÿI5?ˆ©/?R¶³?éM@ÖÀ@f¦@°1?¬½Ž?œ ‡?£!“?ª'z?Ó0Ã?áQ™?²b~?š€=?¼'Q?½@$ü¨@Jzn?×~(?x‡ƒ?"£>þK>?¶ñ,?ï•?v.@>õz‘?H²·?ui?§Ì×?Ídß?‘kb?Aþá?^?u4N?ÖÄ@f|?¿óC?LÕž?«t·?ôDŸ?þnƒ@P?ä?·žÿ?yÃÉ>ö.Ô?3¿>?t§µ?H'a?TK?¾E€@#xµ?è*?OP¯?ZYä?tN÷?Ï¿ä@+C†@ä‰@@¦ó?ܼö?ÓТ?§Ou?´[Â?Ë*~?½#¨?¨ÙÏ?ó"æ@su@U&ù?²‘/?³@ª?ÉÜ°?òÁ˜@\=‹@ByÖ?Ž‚ó?®³?s ?[@¾±@ ©?ˆæ?Žœï?txè?r«@®l@…/?è]F?ëÓ?"þ]?[F?às$@Må@(o@8>Ò?ø7f?Ël@vî@$¢?ëº*?Öºp?›ƒR?qz?ħ?ûUÆ@¶Ò@&Á…?×÷?q-Ê?q=?pÂx?‘BÍ?¯©?¢‘a?œbŽ?Ð؇@ 7%?þÛ ?Í#@ +41@^zä@7Ô}?†i?|@èž?ûœî?¡_É?»<Ñ@e ¥@j+<±Ô@=–š@K:@@Qƒß@))W@4@#Q¡@ˆ°?çíï?Ëȶ?;<>îã&?à¬Ü@6þ?Æ`O?†6?x£=ZŽ>ù¾-?~2?©_?Í-z?«³Í?‰?¶*L@·@ï4@ +N?Î9š>žl>ÎW?B^n?2Ü|?Cû?t +U?°å?¨Ð@N©s@MÃz?憨?á@& @(Ë?ÍFè?[¼?»²s?Ã÷¿?ÀÎ ?Êœz?Ù2?äëN?ºvŸ?n£K?J]§>ë¡s?0ì?¹.ò?µÎ2?:¡?&á>ôÄ> ðõ@ ®Ë@ žÆ?€oÝ?jÈ`?r6?kQê?­De?ÊÈ*?FÕÕ>ìð‚?b¯>ê#t?ƒò?ÎŒ@‚ @M %@%œÍ?Š¢l?¤ë¨@ Œ@ˆ?Ü'?šD@)EØ@'À? gP>èï·>¢Î>B¿?—i?–ï¡?p¬¾?9øo?…;?®1Ç?áÕq@ {@?èÝ?Ÿª­?Ã¥ž@]@õ¶>P»‹>~Ô@U@ ¸±@cpŒ@vˆ´?%¢–=dð>>„k?$¢l?k‚L?†âz?V2?i’F?È ?‚·‰@ˆ6@ Cp@*¶‘@+@Í@)ÆO@'c¨?¶6?¬)¹@›@+ì?¬Å?ý?¯Cÿ?ùƒ?ÏÉ?ª¹ç?â>Ø@êG@³?' ¢?&ï;?Ä/@?Èê?¡J™?•0¯?•¯É?‰|è@³S@*’h?óR`?ªž¬?ª‰Z?ªx{?—FB?b3+?uõÛ?„Út?Ž“i?tÖ?jŠ>þä? –5?“V:?©¯C@ q÷@.š‰@Ŭ@šÊ?ÿ +é?Üÿü?ÆiØ?®}¾?«@ @Ó?£vc?—Üp?¢)ï?¬s•?n +Œ?!ŸÜ?¸·@#í@W?à;Ž?Ü0r?Àš)?Ëà@ +ç@ ×É?É<%?½3Ý?ÜÀ¦?ý%„?øSÉ?ÜùH?´ =?H «?X O?ÓqD?Þ'Q@*ý@ ùú?ÁÏ°?¦°˜?ÇÊ©?àœ²?¹ðq?†Åy?¥oÅ?êÞë?ö–ª?à’o?ü}@®ð@FÍ?š¬@?\ñ?–Ú’?Àô%?ÄvK?¾9n?¾ ?¥Cë?¥6œ?ã—‘?ÞYÉ@)D@$ãv@ÇÒ@ · ?ÑÉë?‰»z?—WØ?¼D]?ÇAÛ?° ”?¤¡?m +;?ZÌw?·&?Ò¼[?Î%?Úg„?ÑR?®ië?ª ?Ù°È?Ùô«?á]?Ǭÿ?½hF?¿zs?ÜÈ?ö%¡?¼)‚>ìû¸>Ú– +??è?4Œ?o˜‚?Š?ñú@'á@êÅ?úÔm@‰@ãÿ@ +?ÑŒÿ?È8ù?Â9v?¼1Œ?·`Þ?¤âÐ?‰Ï×?a1?hÕ@Î>@Â?"W>¿Z§?b·z?† ?²Ûµ@¦4?ï a>×:i>×*“?²°+?Ê‘{?±ÐX?­ ?™å>úH>âL^>Ý–?Žñ?¡)[?¡(¨?H3ë?”B?‚â?¬hÇ?“«Ý?VÜ?YC«?gû?*²?„Ò>Íp:?¤¼ô?ÿî´@™Â@¸A?ê¤å?fiË?rì"?rä?†?ÊÝj?Îf?–b?\68?7¾?è“?#ª?7i‹?PºV>wí>P?OÓ?›1b?ˆB4?bá ?w‚Ù?K’?šåÇ?’€?¥À?.>ü 9> òÊ=Öhð?ºf?ZÎ?py?æ`?êàK?2 +9? Sð?VêÌ?cc¹?€™?d;=?TŸ†?\‡Å?:-¯?‰Š>ó)>ß×>Ö÷¥?aH?›?ny>Íåˆ? µˆ?÷ë?8g?^¬_?&>8?c²?Yz?ˆ½?“nÊ?‡Ï^?˜¯t@ý?î[k>Ù ©>ÉSÇ?K?"Š?0·?>Dü?ìx?×Ô>çO¨>óîK?;,??(Ûé=¸åº> +ÌÀ=èâe=ÓŸ<“û~>·Ÿ&>ËÄN>Ž7>ºßö?^õÄ?ˆl?¤³=?®ÅR>r7ô“>s7>—op>x>W>þM„>ðd%>Å¢ì>l>TG¿>µ ü=lóí<„òš?ï?&){?pZ?ÈŠ@t”·@i‚¹?±Š?0ëñ=êM2>é:‘>Ë> ß”>Ù=õ×=öͺ=øC#=ù€d=úxà>}õ> ë›>¡AÀ>¡¤¨>¢­?P¢?/‰p?^›I?ŠÂH?Në£=õ—é>¨Ç>ãÀ>ä s?Z5?dŸC?¯³Ô?È°#?Š2?.so?]u>æ1>´ <œ˜>B²Ú>=–å>«ñ‡>»>ßC‹>è^>èN->èy>è¥Î>èÎ`>ö×?sç>Ú#Ç=à^1>Ñ>Ñ™Ð>ÔBý=´³T=UL>Ü0.>÷å¤>õºø>óŽu>4÷Ã<V>ûÇk?jî?8sÀ>ë%?gq?m‡Œ?nO?c÷?ŽÀ@(šw@!–Ý?há? [¢=w¹? QÆ?'ûš>‹o¿>î=un@>]Œ$>¸?]Ù?±A°?¥\¾?ŠS?…ºÝ?lvP?Fþ>'5>Ì%Ö?lŽ¨?tª?š´?˜5?§·¿?ª½+>š!b>`½T?ƒª³?“‚¤?'³>ì· ?A¥ +?[_Š?C ·?>7?KÔù?KIÑ?V„Ú?lÁ¥?¬zÃ@à$?Æ19>³ñm>à4P?C—Q?3¸¿? Í÷?%n>ŠV> +Ìù?¤d?§ Ù?jîr?fÇX?o¶3?n1É?lÆ°?l½p?m +?o/?¾Q6?Þʆ?@ÎP=º‚˜? q?}!?hN?Bv]?MeR?l·G?=éW>¸ï>ÕŸ¦>ì¹ä>칫>ì¹Ô? uP?¨u[?¢ô{?þ?µ?l¿?o?j: ?\þâ?µb>ìÃ6?Yǃ?„“i?¨7è?²!â?˜D?Žö–?5–?…‹?ªÿÀ?àÇÆ?¿Gh?·b?ÆV +@>aš@/¾Ø?ä¾d?ÌÀe>ìñ>?¦B?lù ?qó?éÏä?ç¼µ?pĵ?bL‚?k ï?m•?|?|?O£?¤2u?`^¤?8“ç>˜ñ"?U~ ?Á?‰ëÉ?(šØ?w³ø?²q?ÜÜ?m‚ï? rb@q@Çy?äX?ÙƒA?mµ¼?i›a?K]Ý?R?л?Ô2#?‡d?€ç?¤äà?«‹?¨RF?ª„>?np?iâv?ÀÄ>îC¼?Gt¼?wÆ?˜ÓÉ?¨u´?X?~ìÁ?€ü8?‚…–?°Aª??ÙÂI?©¢:?‚ó©>îäy>îóÛ>îÿ‹?NU!@ ‘¿?þ?pqà?{|?ïL ?ì£N?(A?ù?ùQÐ@R¾?D´â?.Œr?ÃQ“?Î%?™ãø?‹ô?£?­!‚?²š\?´ê?Û,Ú?ï¨B?¥F?pÈS?Ýì²@_?Å—H?pŠ³?¶÷y?úZŽ?‘œ=Îù|? |?”LY?ªú?Ì°?l?%þ?_/u?´é]?¦¿m?qRÙ?…»S?«dL?ªƒ‹?ÙÉ?Ðfß?Šíð?“|H?®p…?¦ Œ?qæ¡?s)?<¦¥?1í8?~¹Ã?~{@?iØ7?lÀŒ?´è?µà‰?¶Þ>þ”>£Y=ì7?Bª)?bü?®c—?ÁîÝ?•çÜ?ˆ¹a?d¼Ý?M£?òC@ûT@?ìy+?ª·?”pÝ?™¶?•æ?˜Zr?ž Ü?‚xÚ?NRv@¦×@Kð]@ Å™?‡ø"?üý?sû×?c`2?X?mEø?z¾?¯Â?ô,M?Ûd4?½`Ô?Àh¬?¼ƒ÷?Ò¾ä?ôˆÅ?ÈÃY?tž¨?´e@Ö¼?äƒÙ?Lûu?mâ!?–Xÿ?‹]¤?€øÝ?Ž1?¶Å¦?´M¾?ÀM’?¸ö®?‘0G?ª¡T@lé?ë $?6Ï—?DÑ ?–W:?±Ÿœ@ +›?ø‘?ø6?Àº>õõ9>õ Þ>õ”>ùà?ÜJ??[¨ ?‹Ž›@(Í?÷mÁ?ž?›ñA?Q%k?~‚Ï@2@›Ä>õè?zÝ?–ÜK?“4?Zan?[ó? w2?˜´!?ö ?ôŸL?ÞÙ‹?å#@)‘³@,ïV?òñ’?õ€É@«Î@0Ì?´'t?®èl?– Ó?Ÿ“?ü›Ú?ñ´’?Çñ?Ê@*Ñ@/”?Λ?Â(?{{?v.?²}G?°Ý¶?7}ý?(%î?oBÈ?v(?Xp[?Z£½?ÉÔ?Ú&ì@Êü@>–JN<óM?ØY*?ò‹I?îŸ?é~í?‰Ä?vî?îÇÂ@­?X°Z?"æ6?ÿwi@‡(@O •@X°Â?³ˆá?iaF?Pû>õÍ{?®À!?ÊŠE?Ò›?ÚÂë@@öÉ@_ã)?÷Ac?´GB?¹†w?¸5Ý?áò¹?ëN³?¡Æ´?‹>|?œðá?Às@×@)…}?¡Û?( E?-ú?2†§?7|?ÀS¿>úVB? +x?‰v>?½QX?— ?tG?µ}Þ?êNö@ á@6Ùé@P(@ Ï?¼äÜ?#î?…”³?¿Ðv?ç“@¨ï@ Ù3@ër?òì£?D³Ï?MËb?sÕ|?ª&A@ ²«?Ï7·=È¢>?‹?Õ•?X“”?¶|?«µ¾?…³‡?Âz½@fw @UOT?Äqß?±lî?3‚Ö?[k6@–?ð¾?!Ñ?v¾?‡¸—?„Û‘?µmK?µÛ ?gù>òX‰@ ô˜@ú»?õõ?ò­@ê @:å?Ú’j?Ëì?¼v­?ÆÞx?ïÎ?q–è?Po'?H~³?N’¤?T´]@(Å@XÚ"@4]?q2?qÑ?pôE?°þü?è¢??ÊsL?¥ý©?¸†à?Þ,?ßôË?Õ½@ù@Bõ×@6™°?ñ5§@‚*@ î@à?_U>ã(Ú;p¨?=ûv/?§Õ§?žªW@ãK@#“™?ü¸a@ Ø@)ñj@0ã™?ëºû?ÞGG?ƒnX?A¿‚?æ·=@P>?ú0Ï?éļ@Íî@1ÿ?ût“?¬^?ú ²@$ät?ìØá?mèN?šŽÁ?æCé@ t©@Bä@Ëo> N#>ÑuÐ?÷4À?ô€Ö?ôñm?íJ9?êû#?ç8•?€þù?–â>Æ¡ä>¤<?­€d?Í^ø?B¸…>ìQ0?¤Ë¸?Ü,?z®*>ì?7I¦?m«™?ªŸ@ ‚?ÔCŠ?S¼à?ƒ@?Äb?­»!?k>?iF?;¨©?/}n@ Çh@Ä×?Ÿ*?‡G?Üú´?ç]ÿ?Lòçhd>·¹?ë @ ¿E@Þ @ €G?Û-Ä?®"Ã?³;Z?¿2 ?ßI&?ÿ5†@¹°@ ¼œ@2¦?}ù ?oðh?Ë|?ÓÕj?‹$‚?oIw?cc‹?R“E?„Ld?‚Ï}?³Vä?ÃÉ ?¡ep?Œž•?Ð>µ)o?ˆ>?…oÚ?¬ül?ó•@,Lo@,9ý?ÿué?òd!?ý„@o-?Â0m?´0þ@è@$àP?åŸ?ex¤?TS>?LB¿?ƒ“??˜¹?’âÕ?ŽKÂ?“i@”@LK?ÿø‚@x‰?ɹ¼?°ˆÅ?±}{?ªñ?ªwå?ªiÝ?b +?$!h?%D>âØ+>÷“‚?©ú·?©ë&?j o?U©V?+E ?2Ó>?Û\Õ@É•@Õ“@tª@z«@-ƒa@1'Ö@ :p@ f’?èÒ?íÜ`?™b?²Î­?~íÞ?`À >ßj=ÅUõ?M4ƒ?àY?ïÊ@ ~’?û°V?j÷?„íð?Ùr¿?æÚ©?ˆ~V?_z?!E>ëfS?[ ý?«|L?›ÆÇ?^ÞQ?o/?§ú?¦ñ?Ì‹ë?Â;®?½¨`?¯,â>öÊ”>ªà?^Ô"?¾Þ®?§>?‰,ß?„ÏÌ>ÝZÈ>ÝF@?·Ë|?¬ s?õ³@ÒÙ?ßí3?Ëdx?•ð§?*P?c=9?¥2¿?¦Ô@Ú@ *û?ÁŒL?¿Ï¯?é¡I@4@_´@{J?ðCm?…Uí?„EÜ@#J¥@!Œ?Eê?gÒ?â´/@¥x@ Œ%?ÿ“F?ãC±?½Ïà?ÑXb?¤¤­?©üB@[Á@?µ8?À?ç×—@2•±@$lþ?\•?V‹I?Ko—??¤‡?„æ(?Š3o?ÇÚ=?ü»7?âÇ‚?¨‚‹?“K÷>øT×?*Èî?…s÷?“m‹?Æ^?×ñ-?ýó¹@eÁ@%?×ùb?È/7>ÁË?Øv? e$>ÑQb?†ô–?É-Â?Ï(5?ÕS?í3@)‚È@O˜?‰Ä·?ƒëç?hOÆ?Vðd?hâò?jט?r'U?šd¨?'ó?Ç/z?Á ?‹¦?~1É?™ ƒ?Àwö?®b?VÀâ?Tš"?<!?/«a?²¸?¬¿œ?3¸>ÖÓL?uUJ?×Do?Í“Õ?• }?m²>Ãr¸>ò¢¿?Õž@ ‡¶?Þ=?¡rŠ?»Î'?äq+?¶"%>6¸…>iGº? :Ä??{?P/>ÞÈÆ>æ>ýA)>ìþ>¯Â[>Ø4ÿ>‹!>¤½J?•Âƒ?£O?*¸b>· ½?’¤?Z ?iåO?y!?ƒç§?ÄÚA?×2?¤éÆ?œ™:?‚ï¸?ƒú?oÈç?\†ã?hs§?l²Q?`€ú?Z§µ?2xå=åEâ>7Í•?§¨c?šžè?N˜V?OcQ>tΣ<¤u >6Ò>álº?Íc?('ã@>mü">æê»>çÓì?UG?c®®=ZŠ÷=`„¤?V¨?jåà>¦‘·>?tü>Ô¹ò>ív?Vê2?l<¬>>Ñ=Û±? #?uf?O ?Bdm?m3?tÑM>ÿ¥$>Û³h9'TÅ<䜱>‰››>5âÅ<·²A='b!:ÝÎú=K,=€®>›õ=œóÄ=]ýB;Ãå‘<¼ +ˆ>¾Ó>?…qÖ?4u=F°@ž"‚@\Eh>« 0>1N>jTo>ܨ¨>Ý‹>Ý—Æ>Þ ,>Þ€W>ÞïY>œŒ<·Œ‡>h+X>g“÷?nK?ŒÌ?4£·>âlC?†R?EFS?0Èi>ã¹$>åŠK?HÆÝ?JZÌ?4¿A?2YW>è4>’³Ð>›?S>·nl> @=>1¦y>z¯²?=Dù?=DŠ< œ>Çø>è x>χÒ>É9ò>ËZ>Í(?"Ž?i* +?e`Ô?_Qj?4–û=‰¹?cüÞ?e=0?j@%?ja~?i1¶?j<"?=ª>êÌl>êã°>ë²5?oÆ1?­„6?J;ê=/10=ZH=‚Ñ’>—üJ?‹»ìò>Ƈ{>»I?#†¯?4û]?¥?’Uº?^î?:’ÿ?=ú—?AiÁ?z­«?œÏP?XÓð>2`j>› )?&wÑ?Kɶ?±oÊ?§Bè?-Þv?2©>í\œ>äYO?2>??CQQ?3n?'©Ó?‰åò?šØÞ?»>šØ?€‡•?±‰?š…Ö?†ìî?‚©þ?†O??{?˜Ò×?¦È?Ã×*?³_¯?lµ$?i–Â?`ö?VcH>ì³>ízþ>ò]™>ïgÚ?®òêJ>÷…ÿ>ü!™?a¨?‚´‡?S'>ÊŠy?˜?ÖÜ@?[¡ >T€?Ëá?l¢‹?SñÖ?$1?zµÞ?Õ“´?ÆÁ¸?§™^?¡1?©Nf?¯ÂÛ?´§’?«x~?6ß?>œ?‚/=?‰:-?‡æz?|"Õ?-_?Êp?Åï?ôl.?Ûb?0…@?fø~?È?©•k?ºØ]?­Ø0?¤F ?‘¸ú?dÏü?jÏ?ofÁ?NêÀ>ìÓ/?"$¶?°TC?¯r?µ³?· H?ªìÌ?¨í¸>/¸i>.87?]wµ?m&?:=§?8F?I«ã?F§_?'Ð,??˜³m?ÊÃ÷? á ?u ?£´.?ÎÇ?¿ó?ª–‰?}œ>ío`>ýË?˜?@O]?ˆ!ù?r!>í¤¹?˜´?°žŠ?¨ëÜ?ºöÅ?¹ +P?p:¨?mã8?#´>íù©=‰g¬?¼ÿ?ènâ?æ†H?ät@õ*@ !?Ód?§è?,Ê>^KÆ?b$Æ?ÃØ“?Åe©?Æõ8?’†¦>î¿°>îÍI>îÙÃ?PÄ–?ì?ߨ5?—À¾?ž\¹?¾>.?º»2?ˆ±g?‹Ód?Ž÷‡?’—W>»Ìÿ>£b@þP@ ??åýœ?á¨?—H?„ü?©¸Ì?³ö?³þŸ?´+?@U>úÍ{?’†J?¿ì™?•4å?paó?ØòD@*? šh>²‹—?Í1?Ýùj?¸Ix?”@€?mdz>ðóˆ?3?jÃ|?rð6?q.Õ?ª;@ÏB@Íj?‰I6?ÿ?òw?Bäˆ?á¤?Ý»¨?qÂ?‚&?éA6?èpL?µ|ò?³Îä? ¥>ûR‰@PJy@R»­?¸ª>ò`5?Så²?TÓœ?m­.?r™«?­=»?¶Í?ƒõ€?rÔõ?»×ç?ÈŒ?Û‰*?çž-?ʹ?ÉÕ?RÁb>óB;?v5?¶„r?ŽEK?ssí? ‹*?¶¨ú?m5°? á?’¤?Â_û?˜?sÝË>ë­U=  ?D—¡?·ß²?·ð?·†y?ÔL?ðFÐ?î€A?츘?ªW,?=«D?[ñŒ?t|k?wá?‡Š‘?‡Òß?t¦¦?{ˆñ?‹>ƒ?Ÿl÷?·œî?·Æw?½p•?ªß­?tó8?”tU?Ëý[?¹[ø?–ó¡?«¦7?Ñ+æ?™€W=L>OU³?¨œ?]¿õ?ñå‚?Ùug?te?…?¯®x?«Íi?§êE?ša?]‚-?ZÅš?zŒ?£Ä@gZ?ô²›>õ·ê?4¶I@ý£?õwV>õÈá?©U?¸_9?ÁÇ6?øà1?öð@Ž"@9Ÿ?Û5Ù?Úæ?–À?7¯?€!ù?‚bÂ?¸|¾?°}ô?ˆ´?ª?¸ƒ~?²Ò‹? `¿?;&?£9Æ?§ƒÍ?A—Œ?O§Ó?äK·?é~“?ö/e?ôÙõ?w8?vb?¿ŒÎ?ʼnÙ?Ö+Œ?ËæX?øé0?é¸Ñ?GW?ד? lÇ?þ©>ö‰»>ö?pÃ9?uˆ@.˜V@4eš@2!Þ@/Þá?>S‹?5|@@Õÿ?tu|?IN?¢Æ¯?°©³?áJ*?üÝ?•ÿÂ?…ÀË?:?$N?¬‹à?Æ?‰4Ã?uˆ?´)I?¾ˆ?„v(?rUA@FŠ@Q?Ô»?½ÃC?Šï³?uT˜@þR@7«ß@ì@/¸?Ÿ¦ò?B{ú? íÙ>õ6?"6?.n8?㤋@N§?·¡ã?Y›?ó€>×u?B—G?€)?ï“@Õ$?éñè?µZ?rl.?'*¼?ˆ ?¹Å`?®‹º?žA?ÁPD?Ô5?Ýÿ”?ô¦?»û?t¤?;?²Òé?¹)^?¶Þž?Ÿ*?s´_?‡²Œ?”}þ?ƒ¨ÿ?s‚h?Õ=?@Kå@<äƒ@)/˜@ëý?ÖE1?äï@«€@=¡?òù?ßwû•>ò9›?ïÛ¼?øGä?Âþ?Á™/?€[s?„áÖ?Žµõ?û?‚õ;?q¹Ù?Œ¼^?Û÷?A²•? N?TÂz?Wû?w²¢?ƒ¶Ú?q*Á?prq?pàü?pÓr?Õ¯>«;Æ?Š ?ß…1?ÊÈ ?´Q­?±Ã/?³ÍP?¾ûï?¿\{?…®ý> üï?~?Óÿ‚?º=0?o¼–?^Ð>î")?Ìg?³–;?´(¿?Íîs?Ô£¦@°š?üE8?Éå¹?Ѻ ?„µ?nШ?Èò?ÒÛŽ?ùS›@G3?Ì?´Ûö?ÿ^s@?ær’?²’¤?—0b?W?‹x?mÇß?ƒxO?“°k?›pý?²·?œÝ?0f?knN@ ‚`@¸³@O '@Fµö?¶jê?¹÷’>ò>ìª)?»&Õ?³;–?å>[?éñÒ?†µ\?I8t?¯Û»?Ëj?R&«>Õ¤k?sf?°œ9?Ím©?ò‘õ?÷?kj»?jŪ?|”l?„µé?k«?€_µ?ÁÍÎ?Ø x@G@Høy@A–@Jýž?Æ+t?´=¯@î@{?ôe~?ê(@Dü@®Q?åB…?¯VŠ?€ ?jý?YìÚ?¯?òª@JYò@<+@!Î¥@+y?…—Ä?Œ Û@ àÅ@5m?%Zn?E@œ¦@#ÑN?ß²©?®-?ŠWJ?mî¡?®Ò˜?ÜKx?ü?°ßü?а@|¨?þ×¼?¿,?ÀêÆ?}gÿ?u"„@*œ@,Ç2?ŒÅ?fÕ3?5Lc?86?‚Ôô?¢†Y? {?–vy?unm?û?x‚Ì@ ÆÈ@‰B@ v@T"? ˆ)?³e@M@[`?ÕCÑ?Τæ?†ä†?Au?œ…Ž?Öc¸?} >ïU1?iV’?¿Ú²?œËÔ?IU;?tBË?¾íw?°&@Úæ@M[?‘ø?fV?ï ]@ý6?—¹‘?-°=?‚üg?ªVy?ê!?6õ +?P^Î?i˜Ø?F«U?²U?©ÙZ?Õ…?ÎåP?¸Ê?¦Ç²? Ð?¬¶Ã@ +¤@@ë—@ðŸ?mÞå?®|C@D @8l—Ô*>—=D?d,[?…ž@ £V@_(@J›—?Âe?ÓdR?Ûç,?åB}?倊?΋%?Ûþ?ø9°@¬@ >?äÖÒ>#&@=¹¿Ó?£að?£P¤?¿iu?Îî`?±Ï;?‰ÚS?pí?k›k?w±I?¢„s?ž?˜+Ø?’A…?…Q?ˆoS?®|C?Ê=‘?͇?ÓiÒ?½¨t>Ø/Ù>Ø)? <?ß¼?Õ†I?ýæ?ñâ?å3?øX @ÿ3@+?rhs?NR ?—¸?˜X™?š~Œ?¡`Í?ž}^?¡Ó?¨S=?Ér?á›]?‘¶¢?„ïK?Œb?†#?œø‚?Ðü|?Ô½^?σ2?ȳ?´pÃ?º‹f?•Í*?‘$K?PÏ >òå—?4Îy?œ?¤+Ï?üþF?äI?Ûà?蟴?‚N?2ö?¾8?bðÜ? € @ àÏ@‡š>ÏHå>›õ´?oɸ?€wj?ŒÌ?¡m.?¨Bq?½ç#?ÇÈ—?¢x…?yC?V±?WÖ·?¶‹B?ÔÓw?ðød@!¹?¿Á?(Þ>þA^>v€O>Lž?’ÂX?¢ù`?™(?Šº?'³é>ËäC?0Ž“?“¨?¬o? m>àXè>N>‘ðÎ? +ß? y€?€–%?¶ö?¢?¢#†?¶¸ ?ÒúZ?­¦>”(>€)p?~åZ?š3Ã?@¼ï?â0?·Û?Ì]´?‚Ä}?<»?‰ í?ºv?ª´?„â>Œ7ë>Îíæ>€Rÿ>aÅ>ç Ü>ç›–>è'ô>é?ž‹?ŒÎ?k)*?kÛ>£X”>žßÊ>æ›ä>í­v>îþ>ÿˆò>Ëá‹>¦úy>ÆÌ?6±?iÊ?ŽC&?`Q—?qJr<þU)>°?/Çï?ع>ƒ.ß>wØÀ>æ1>ùH>Œ×Ðu…>ƒãâ?5 è>›ùº?•¿@¤@aõÚ?¹²+>1°=‚wè=g›?Eâè>Ü’3>Ý ¨>݆Î>ÝûH>¸ð!>©Põ>–Ïå>UòÀ>©çN?{•?{a©?Kš? +ü>îÐf>âc¬?s‚y?½XÅ?£à’?;Oñ?/³é>äQ#>äŸÁ=õ«ƒ=²Ä?tS ?¡¢I?0>qÏŒ>Û8?@é?þš=ŒGb=gâž5Þ €>ù÷?Æ +> +ñð=?§ òIè?`ì"?4åX>é>¥°þ=›>æ§>õ;ñ?jRý?jgG>ø[(>ê¯ë?›v­?® +p?Ö.¬?ä!K?åÔz?ç™3?‹²>סÀ>v’Æ>ÚµÜ?© ?”2Ô?,øû?1p¬?5ùç?:A™>ì&‡>ì ¬>ìÀ>ì#Ú?¢Ë?x@?¼V:?Úya?Àå3?±Ñø?NK>ìi ?rG?±Ys?ƒ9ü? rt>û‰ç>ì!?8ø˜?±qÊ?™w>ì]>ùs×?6´Ü?5D>HHO>AU™?e<¼?l®¢?‰Ï€?ŠnÝ>D¹)?R–œ?‘}È?þ?£•z?RÇ=½a.>Ôƒa?0•H>ÊûR=qÌ+>¾X?l«/?OÉ?¯>ù¥v>쨬?ïf?l¨ú?lš!?nRm?når>ïÍ<>ìž¼>쟋>ìœ>)z>rå>Í–™>욯?¹‘?ì˜e?«Š®?c™??¡?#×?mýT?œb?•3­?˜Xò?ˆvÏ?N T?O‹š?.Å&?G3?—a³?Æ>ÎüŠ>»Ã4>:»±>5gÐ?¿Þ?Å‹ ?Yœ?Jµß?é$?¡Y5?¡4)?¥±Á>ÄVt?‘G?æ"’?Œ%?»º?Ô«>úía?[“?±„±?±/_?®ÅÝ?‰ž?té³?w¦±?zaé?^M~>dç >{µØ>i·h>ƒj$>È > ­?T¥ä?lü?m:?m S?`¸[?eW?Š ?•È?˜Ÿ?Ÿ*R?¾±$?Öœ?™À?Fõ>ùËØ>‹œ—?èV?£€®?ˆ¾‡>í€0?q¹ò@9è¢@3d´?çÂz?ßñ?gÌ2?hn>ï>íÔ@_@°?7u¯?´L?¦·?º&n?›vw?–Öð?¬´"?²¯õ?³ˆ?«ô?t?E´W?KLJ?Qå?+ß>î?g?·ZW?°£å?¯%ú?› î?nç?nô¨?oŸ?i?O?B>ä?<l?5óÕ?;,?§›?±Ýg@L͵@LÜn?m¬?f5k@ Æ@Bð?Áá?³Ü>vý=J™þ?Š£ ?©qÙ?ˆÎñ?€+?v«?pC@÷@,Ò%?ƸŸ?L<·?„º2?£ä?9ƒ>DÖó>ìÓ?9C?lŽn?“†#?se—?=\Ñ?–êÖ@)‚?Úça?lh?Zƒ0?Qcâ?9"Ô>˜kH>ÐÕ,?‚2T?ˆéT?µOv?µZ?µdã?ÀY @;7@”ô=£>eD@En@@ ê@ ‚@“ç?|ÂÒ?rz~?†êJ?Š’?w/?r°ä?y_Ô?ƒÅ_?°q?¶/ð?[Êú?5¾V?2KP?.Ùq?ÅY?ä¿F?ÄÄÞ?´¥ +?¦Â ?¦o?ˆ¼Ô?s›?¬e?êw?£µ[?s½±?1úó?¹­?©`Ž?óíw@ +z@½À?Íò +?†Ô¼?Š~Í?Ž(ì?™ `?›Ý”?‰4|?t_ ?Õ-È@Öµ?ÃCƒ?+¶?ÆJ>ôŸ½?{au?ÔˆÂ?º ?“®?~i8?IÁ?{ˆW?­Á?¢aï?j¢?¤ Ú@ Ò†?Üa?-ç¼?}3£?êÓ8?» ¢>õ?a? †±?uNÙ?‹¨C?¸?¸ g?¸I?¨Šò?uv¸?˜6D?éŽ~?ÇJöÄD>ú‡ð?ô:.?ñ¸?'áŽ?;6˜@,k@Øã?Ñgñ?Çm‰@ç@åŸ?‚Œg?u½,?›žö?›;=ª^>áHq>õ¢É?‡ê~? ?DW¸?0Ö ?´!?ƒ†Í?ÕË?élƒ?0 >õŠ0?¦™?¾wˆ?:Í¥?íp?fœ?u:i@Þ@Rë@B|@G¢£@MG@k?°Æ?“ ]?ßÞ§?ð_­?â 5?Ü·^?àÒð?çGû@@ö@Š?ãº?½ü*@?–¡@tW+@J–y@0UÔ?ËÖš?`œ-@—$@/ý ?¥É>¢Ü?|q?Æ÷\?<“?wª?Ž#?’ N?dÙ? t?{ây?¶ÊI? ù&?‚2Ü?ñ’ð@OAz@Ýß?sg`?¨îË@9]@æZ@áå?ê»­?›Mš?Â}å@ š…@Óf?òÜ@?ß“§?›AU?™¦U?‹Ü?óž?ˆ‹?l&>Å?çvß?òÓy@Òo@Ý”@cM@íÆ> lÎ>¯KI?IñÕ?H¢?lÇ…?qŸ?¬û|?µ? ¥±?Ÿn?f*?R^ª?òÞ¯@¸@—Þ?÷ Ú?%M¢Š¦Ï>üz(?Íì@&ÌŒ@?¿?žï™?¬Ù2?À¤°?±%?¨±Ÿ? ÄÂ?˜×ú?¥@´@+&@*Ät?q¶ë?l\?¬¬£?¯»T?¥Ë?²©…?†ñÂ?€ü?+ ?™aÙ?[?œ¨I?‘FK?~3ÿ?’Í?‘Ü@Ö@ƒ?À²º?»á%@'€@%|ð>ó8U>†½Ø>á£Q>¥-÷?ˆ^M?®Å?I£>ÿÛ ?ƒUj?¼… ?œß?"›¡?R–ä?“ç¾?rá?gPå?sL?¥c~?«$‡?æ̹?ë„‘?Û ç?Ð*€?*¿ø>æ¦>Œ<>jÜ?"Cò?f8Î?±v>@âq?ý¤?ääuöx>ä’‰?X“ˆ?ºÅ­?·|ž?™Î?¡¡ß@ˆ)@ ðí?ªåH?ªÔ/?ªÄÚ?ª‰?ˆ ?‹(¡?‘&?…Íp?f¥ï?b5¾?T$©?º?yF¾@ýÍ@&É–@E¦9@@ð?;Z!??fQ?Ì?áÿå?•êÊ?aÔÎ?¬¥×?á¤?ËÛ£?©û?ÄK @Üy@ Ö£?}Üé?„§?5U ?%³?sVÑ?€,m@ yÉ@>ãÕ@5ï@&v«@=?Óär?ÛHÐ@Ó-@¦×?öMã?ðà!?±Û•?§{@E!(@wÂÛ@&r·?ÈK?Ø9ð@;ä?ð…ß?Çî?Ìf·?Æ?Ðáà?%[õ>óH³?[˜×?†h?| ”?uõ+?r‚?Hø…?‹^@u¢‚?‹EÇ@¹+@+?½èà?°/?ÛÅ?ÑàT?ÙÏt?ÁV®?ÃxA?¿¤×?¡ŽX?”sÉ?z¡>ÚüÚ?^b@ éá@†?©g?ªD4?©š§?£Át?›åÆ?˜XÞ?ÈOç@!·F@~f?ј0?Ë·?‰IŽ?†OÏ?Õb?þwq?äMî?³>0?‰œ>í?}¹?u9z?€r0?Ì€’?Å~å?Îóö?ÌGJ?š£Ö?XO«?NÇ>غ>×ÿb?*µÛ?!sq?Öœü@ ‹œ@þ@z[@?ây?ë"?ÆX?ÀÅ?Óˆ?×.U?ÃáÊ?®A ?EÆc=6Úò>x*E?"óV?;#P?¸Ç?¶»?Áï›?ÍDe?\´ó<)â?;@ä!@%½?¿B‘?¹ À?‡¢"?nlO?9? áí?žØÞ? æ?¢ÚÚ?¿Íƒ?؉C?d  ?nB!?’àý?Ÿ= ?4÷u=ß2ì>ç<î?¹%?Ò³?–õã?ŠM?Ú£@å?²?bO?…l%?¡x'?¯äK@ +‹E@êÞ?u¾?WÄŠ?Xrˆ?jS?Í$Ù@Àq?í¾?db?ydÎ?XÅÊ?Xåú?-?¢îÖ?„‰®?zìú?ý>G3Ó>ïÐ?…1?%@¹Š@O^?µ‡o?š6Ö>¸2¢>kL +?t?Ï÷?¦FT?^*?£ã\@Â6?è1µ?0®?#Y2>ëGó>›Ú›?Àê?Þž?·ƒ1?±ðÓ?¢’—?’LB?‹×?…^Ã?/)> Ö?<›ý=r +l>!Ž=£x<>æ)›>æ¯î>ç0ã>ê°ð>ô,0>èß)?ï)?5^—?j  ?kJI=t>ÙÁu>íé =f߶=Œ’Ý?Ad?BŒ=A2±=ö+=‹V†ë?£-‡?|c@=œ=¡!“<™P;Έ>t‘>ÄÐØ>§ˆ‚>Š >Xµ—>ß·;› 9=ÓüÄ?ƒrV?y ?T9å?ÐN?r>#Ú?knÐ@t(›@/•©?ý,à=ˆ ñ>Ò#->÷F×?U >«¡ >³Ä?QÊ?”K>I2z=Ä¿°>ûŠ^?_°ù?vî3?œJž?›\ª?acj?a«P?-«×?W‚>å·n>¶99?Gà´?¸`ö? \µ>äSï>ç(8?Kz?èÊ?E&F?SŽÅ?Šœ#?›½:?$t‚=y°•>Eˆ>ç+s>º+‘="1x?]¹?^±>ë®I>×ãô=ú¿¤<ÎÆ­>­úŠ?3>ónR>é©>±°>P¥Ê?¯šy?±?S?æÀ?äð\>;Ö9=—`>íÃÞ?'?(‡?2>Šl¹=d´>sÜ«>Ér©>ñav?»]>é<=·91>:]ƒ>ëï™>ëý >ì¯>ö£m?Kê +?JB >C>t2?OvR?o‰ð?˜äJ?¢p?j¸E?=H?vÄ?±‰?¹ûÍ?Õî¼?䛾?ï‡ï?лñ?±ud?±2˜?¤x¡?ºA?'$?->ì©$>ëý»?®,?ÄÇ?‹Œ¡?Ž…Ï>±Þ{>w?‚>Õ–$>ì¯Ç?=Z‘?V|?#ì?°ül?‹-‘>ì¢?úG?l (?XUŒ>úÐí>þ Æ>ì™>ì–²>ì—>íF@u$@‚»?"C?>ìY?=¡§?X…þ?F›?AW©?Âë>ì… ?˜lÔ?ÔåŒ?ºµ´?žL¸?af>ôµ‡?€—Ï?ã¾j?¦‰>ì~e?™¾?>X|?-*g>šQ†>¿™f?l~v?m0£?4_õ?.ÉÙ?öWˆ@”?’Oâ?~h¡>Åç>J3 ?ƒæ‡?­¸ƒ?°˜|?±j?Ô¯b?ì•p?¹>ø†Y?£¢? ?1Ú„?l¦í?L-¶? ‹?cñM?ê:“?ÛI?°u\?›È>¥wª>ŸóR>šl“>–Hþ?ÜÔÈ?Ýž?o>ܦ…?,c?0/l?\Éé?m»?aMÁ?Sa?•?±Ûe?¦½z?™¤.?†?mB +?yK³?‚t?^Áª?Pp?3cš?yzÛ?Šk?¸Yg? š¤>í™Õ>í¤š>í¬½>øŽ?K?„¤Ü?Ûzc?×ËÅ?´7°?²w@T @ã0?€½?8Nc?WÝÊ?kx>ØOØ>2»ð?‰0?ĆÑ?«˜ù?™Ce? õâ?¹€?Ê%×?ÕŠŽ?¨1ð?B–ø?€GH?°Œ:?·ç?Ó+Ž?ÈÜÀ?³S¦?¨Ö?o2É?“ð…@0"³@&÷Á?õÁ?´?²]ð?³¡?s®’?râÐ@V# +@\¿ß?iÍu?³¾?ÄÇQ?ÙÆm?± ¢?¥Êw?Ñ„é?è–?ž.p?p[+?plr?p{|>Â(¤?L>?³Ä`?•¥½?†òç?Q¬>ðïÙ?9dë?Œßë?§›¿?ÏÍÄ?™wt>»²B?;{ò?¿'ÿ?½‰z?»ëb?¹Ù?µ:H?µ‹ž?µ–ñ?¿TË?ò„k?ã’5?aïK?KE‡>ÎÝ'? ü‹?™p—? Iõ?§’Û?¤3´>Ž\>šÂ_?Åwñ?Åš?Lk?>JÚ?b4š?p'?¯19?°¢?­0Ñ?©Àt?ËÈÀ?Ý] ?óÝã?üœ¯?Ɉ?°7è?w{q?_6°?—zÜ?©j?ˆû ?s£J?¡Ü*?¶»À? §?zaå?ð”»@tV@ø@ ;­?· P?tH?NKM?:˜N?._Ÿ?!·Þ?¶pQ@ +‘y?©¡>ôt!?ø6?6ÍN?ˆNÌ?¿z6?Ê2?ÎZ—?žõ?FÎî?O²>¸<?Œ_®@ zƒ?äù?Šñ?Ã@(ö?º½9;)Å9?”?µ^œ?Š"•?Ô`?E´@N!?ë,Z?‡‹¨?“Ãb?§=Ž?¨¨?¸å?žç?Ç?¿Ë?49?†Òç?íÓ¨?º¯s?…’?W¬´?Ì,?²9^?Jœ?‹Xµ@1ò‘@þd?¸LX?ïn@eüÁ@[²V@@6Á?PÞ?1<?²Ú¹?“ƒ+=šó~>™QU?ªƒª?¶Þ~?ýÔ?àV`?TBG?V°\?0¢?Vq?×ï?ÉåC?uâº?nRM?&é¼?*h…?uÞ?†+´?õÜ‹?øË"@Äc@°J@îa@›Ù>õÖE?_@žX@w>õÇô?‹ô?õÂV?ôQ#?Ç×/?Ë?õ¶N?ôª?-q?2L?ן9?Öz?+Š?9¬?€2½?v?¢¬]?¨I’?ªœH?¬öŽ?ÈX¡?ÄÜ?ÒÅ?7T?jdû?s¯9?w?ÿ0@,ÚJ@7?g?~ñ>tÍH?±{«?Ì?Øtü?íŽ@ „Û@(!‡@ŽÂ?ôã @&¹K@6n @'ìÔ@! ?÷Õ?غì?¸³?±uL@ÍÉ@yî@v?ûÿ?K‚>©|?§ùX?Û»¬?Ë#r?Ñ”K?ÓŒ`?¿L"?¥§õ?šô?iÀÁ?%¨h?q©:?  s?J?s¸Â?ŸÂ®?Â"/?Ã_¥?‰3?·K?´¹?ê@)&?ÌNP?*ƒ!?Ìÿ‚@@T@He? *y?€j¨?è¯?ÜI?¶©q?¤> ?BS?]4F?†í¤?†‹$?µÔ6?£•œ>Âü—>…ˤ>ö·“>Ý® =µ’3>ÙÇA@Øq@vÕ ?¹Wê?­S³?ÈP?ÃrÂ?6ñÛ?3?“;x?›ä6?‘+Þ?‹«>ñ m>½˜ž?±?c?Üíž@"QÁ@4T’?éjà?ªîù??‹Mü?YŽ>?7‚ð?eÀ?´BE?½|ë?º + ?Ï?úÓ@Îe@Ü(@IÐ?Ëêï?´?Ðå?Š÷?Õ_?³8¿?²â±@J4@%Ц?¹ˆu?º=ˆ?ŒTÏ?Ìa?ö*:@ «š?úÞ=?î/!?½1„?£G)@ K@$2û?Ý–ü?œ’>?˜ùø?•\Ö?æÛÐ@&cE@=²?ýu­?õÞ?í á?î-d?î›Æ@ä9@0+²@ÞÝ?l¯?ƒ>K@"Ç@k$@ }û@÷a@ @ É&?°ï?¡ßt?#x?¡×m?ÔC>?ëF´?}þT>눈?£­£@Y{?»œè?GDp?‹Æ?Ê'R?Ìß?½‡Æ?Øæ-@ –º@ØÛ@6 @—Ý?ê*Ü?åøX?>b?Ž?b¸œ?j*?F*Í?5 \?¿L>é ?T×?„l?»„ª!?õWU?„vƒ?yxº?€¬ó?ƒem?ŸU¹?”7"=¥I>±ñ‘?K4|?AL?ÌŽ?áñë?“(V?a¿_?§¨ì?×ù®?Ç7?© ^?Æ„1@ ¼Y@qC?–òÆ?‘³X?ù?â¡Œ?Ëà?Á9n?ïãÙ@ +.?©MI?"‚­?ßå²@Tÿ@0»?¤?²sS@ ²¬@ £‡?ÒœB?´?ƒ?€Ìb?‹J1?ÞïÊ@êâ?ý_e?ø7?ôx.?Í“à?¾ÃF?^8D?^/@m@:©?–™Î?]µ!?"Ûê>Ý„0>îQW>Û$™?QÍ6@RGÿ@ZH@Abn@A5‰@$Sï@U+?[ >`4‹?&aÛ?•G|?Æiv@"­—@a£?gžI?~?—&?©[ä@©@àK?ÈçX?[Ç?Jí¼>ø8|?j?¸žÏ?É©?lÒá?Zl2?¥`à?¶À,?”÷ï?i?|e=)ŸD>Øú´?Ù©°?Ù”m?o¢ã?Yj„?Ýýí@µ@ +—ž@ ï!@ ±;?–/H?„ã>· +>¾ª?µË?è U@ È@3,Ù@Æ=?X$p?eÃ??‡¡c?wiò?Àž”?°ÀÖ?¢m;?¡¶|?\Z >ÛÈ?@ýŽ?ª™µ?­T ?•Â6?¡¹h?Ðë4?×]?ôo@ ?É1£?@qè?JÞ˜?¡ªl?q@"‰¿@‘?Áä×? õz?»ãÅ?Ëžw?¹fp?ͯ‹?Ù (?Ya¢?…2²?“u¢?˜ËÞ?žTR? Î²?o?oËä?„Ã?¤Y?—ù¸>¨¹å>Ö°?!œ?WÓ?yÚ|?€-J?] ?V©?ZeŠ?úVj?íç6?ˆÄÏ?Wª6?¥žÏ?Ãñ1?½¼?Á Á?²[‡?‹7ÿ?¤Žé?y÷?[œ?úÐ>ú3M?<q?‹C?r]ñ>ˆ[—>¸V¶?J7V?VLÃ>û™? #v>±"i>¦ ?¸ ?ê?gg½?Òt.?ágf@·«@ݱ?´Cã?¹)?LÝm?K°?xÖv?¥_¾?¥"N?¤§?˜È8?˜"y?“wé>ØjŒ? ª”?—èþ?žÊ„?e@?d¿>°‚6>¤˜”?);7?]¨¸?amˆ?tï.?’V¸?¥½‡?€¿Û>ÈÆ€?—ø?\|@?)J>æHª>æÒ¥>çS?dE?æ6»?Ðk†>é§t>ê©È?“ÜŠ?Õ&>–ìÈ>"9ø>ØÏ>î(ÿ<ÈÅ?epP?q _>Ó×V>‘;Y>ò„V>ô+Ú>óÀB>õÚ?Bkï?Ç?&ü1?7 Ã>žAi>QÈ>çá‰>Š:=sØ>·¾>ÔŒ?*>¸]v>ÈŠn;6žQ=Âœ? +qr?q?*§%>ÛçÄ>Š 4=ƒÌ?zãÀ@)C¤@ ç?ÂN"6˵`<`ÔY;’À=;ãb=Àø?05ì?0ºè>ȧ>±åB?Ë?Iu²?SH?`y*?XÑÿ?6?7m?¸P”?¾B´>ù =ߨ>!9Ð>b³>¨a?Œ?"û_?ƒT?‚ç9? lp?óö>Ô93>ʼæ>íÕ½>ÿiŒ>ó +j>ç3¢>¤R=rd¬>Ù®>ظ;¦¿ú>Ïé¿>îpC?·é²?çÛ²?k“>锲>s:Á>&¶Z>æ'A?+¢¦?¯ÆÈ?š =׬<=ÿW`;R„ð?LBD?]ô³@ ;@¢…?Īí?”ý?˜X?›1“?$½?SKè>òø‰>/>ëöù>ìc>ì>ôg?üÁ?ëø:s›>å¥>ì[?^ô”?lgã?’ ¸?—8;?®?´­å?˜H’?”©?üu@%«i?ê?|&8?ÄuW@åó?æ{¾?@ì?<§Ü? ?Ã>M<>f¢4?u‡™?i®‘?l w?l®3?HO? Õ5?O[?íû?r˜™?ƒ`@0‚@_Œî@-ÌË@³?Á"?l P?lŸý?l™ì?À¬«@b“?Í»ß>ü‘Ï>ûäQ>ì’2? ?,?[lî?K è>ìŠ5>ÿ·€?«»?°L5?•‚‚?ߤ?s>ì~>MÔ\>,L[? k ?<‹?o{†?ŠG©?¶Ì2?Î-?—í?4Ü­?‹¥@F·?ô¯ç?~ëÏ?WË1?¼è>øÍW> ÍÇ>®u?”ŠÒ?•5?˜|?™Ž¨?lkK?l¢]?¨ˆ?«2?Ù71?áóW?Š"?n(š?£¨Ž?±Z1??àD>ÿù?„¯?¨ÅC?ˆJÙ?^‹f?cŽW?l‰°?†8?˜›«?‡V{?odô?r:6?a—¸?Uk?>ì­ ? èQ?‚¹9?uû­?‚í?‹5™?Ìs>æš½?Šµa?sß?r~>?lé2?¥p¶?±¶¯?£|™? 5?È®Ò?Þ\›?ºfz?šíx6>íƒy>튩>ïsg?.??l ?í³-?ê[ø?&T?+AI@,Tæ@2n>Ù9{>w¬?,eÃ?AøK?µ€? ßi?µÚ!?êå`?Û"Î?Ñæõ?«!ï?‡êD?¶#?ß³y?­Ð+?ku…?¦úÚ?ùŒà?ør?õ£¦?Þ 3?žéq?—9©?oë?š~0@„Ý@ +±?³uî?¦ù>ï²^?=@.7Â@*^­@P§@±Ê?Ù\?Ïû?”:?“~?Fd…?;ÛÚ?ÇF}?Ûñ>?aòN?&ßœ?ˆt¼?™¥ß?žµ?—[>?¸5~?Õ…Z?nìû>¾Z?¶Ù?J¶?D>?=½`?o\^?”Ÿø?<¿>,_X?Iˆ·?éÊ“?çk?äÜy?ÙÒ;?µþ§?ÅÎr?ñvü?Ô„Å?~š?Œ3?®ÏØ?³¿õ?Ê(N?¿'m?¨8ý?˜t>È×ý>ü »?rs?g¬ ?¨["?ªÖ„?0Jù?3 l?7¸?2KÉ?¶û?À»×@#›@>€?!ô +>ó´?ch?s„@ RH@ 2í?KAì>Ôöñ?ÈS?Óa?\7Ø?t Ï?qN>ø4ž>ÿ ?ï?œË²?ÆKE?¦ÁÕ?›êÃ?‡¸÷?t?Œ9?‘ßQ?Ú·v?þÿU?¸9?” X?l¼?9¡?Ÿu?Í—„?œŽ4?t}t?¯IÁ?à1Z?¸Ñ¨?–2š?°ƒ?Ärw?Çü™?ÉÝ­?ÒòÓ>ôYÆ?/ß?|dû?HÆÍ>õH?kþ?άÙ?èÆ|@S¢?ôoy?âé?ÉËò? Þ™?žèý?œõ–?† Å?7Zã?5@h7?É6Ò>²Ø˜?7&d?Ä"m?ÿˆ?õ«¿?:oE?¸x?ª©Ý?n<?…4)?¸KY?½Œ×?Å€8?°ã7?‹ -?ï?L¨V?_¢Ü?Daî?Nû?|Ý©?jj?õÈN?ó˜ú?Ú¶?Â~·?uÈ­?oë¤?WB?å3?êÞ€?飶?ËÔo?»:w?qÉ?f©.>õ¼?#¨î?úù?ÿÌ@ʬ?öd3?K Ú?^nm?Œ¹Å?Œñÿ?€Ç%?‹¿Ì?¤€L?œå‚?ºO?½Æº?žÿƒ?¡ä9?̃?Ñ¿?ŠÂõ?‡a–?HõŸ?SA@×Å@Sü?¼©m?·ý²?ñN£?îæµ@ ã@ I»@ Ræ@ Æ¿?Áút?®S?µ¥?·¾e?VPù?=ñ÷?ÄN÷?Û¼€@T}@0‰?èôÿ?áðR@&·@"â @"Å@&Ì?¨Gå?t{ ?yO?t ]?ªD?»‹h?©{÷?šÇ?µy?ÅÌt?’?C?t‚?ÚÖ§@”è?ÖDÊ?¶ë@!Kt@@‰?Ëïw?L"­?Qz?VÚé?±‹?ê¬@±ý@b?—>®;j@?“qù@,@•þ@º×@fd@Å@°.?Økz?ÑØA?×W?Ô‹¾?Ì›?©­ÿ?P˜L?o˜@t|?þ.?µ¾—?à@HÎq@6•Y?r ?mª?^ܹ?uC¶@£Í@ÀQ?Åî?Ì¿Ÿ@”@zæ?Þ¶?’rW?qŸÒ?qH•?¯k?´ß=? 6z>¥>óü•?±¥?øFŸ@”­?þ}:?êßQ?š9”?pw?Å„D?âá +?ªÇ«?ßÀ?ÅXE?òa?â`ð?Êd.?´ +å?—ÁY?¸bD?ü´@&,x@gc@e…ì@N¬@+a?»7Ý?·Ve?–|Ø?˜ä`?ĺ˜?¼¤ô?³#F?¯5±?<¢â?Cp?Ar??2D˜?«¨O?²Â)?4.—>þvÿ@Âé@/7ð@<“"@;€ü@(¤@ò(?÷‚_?Õ* ?®Â?–Ko?ÈÝ#?ÿj£@B@Ös@I?æäh?üà@1?ôz£?/hÞ?‚Ña@A?ô×Á@Ÿ£@ N6@ ˆ@ÂÅ@v¯@0u?È<Ä?§Û?D¦q?âT?‘9A?±:Å?ñÁ@Œ¢?¢Æ(?RÇï?{@1?Ç7?qAè?jþ’?z,?‰3d?·V7@/ª°@-N,?æ™2?Û×X>ùP?¢#?ÎbÉ?‘3?럗?ä­@n@§ó?»c?àõ?žÄâ?¯î@+ù@ytN@3 t?¯ÿ0?ÚÌÌ@ ú @CÓ@6b@™â?ô—y?Ù9±?R~Ü?A‰?NH?4ƒ>?wtà?p£ë?¢Ol?­úÔ?ù E@ +Ô1?än¢?¾?õQÇ@ ™@Ǩ@‡^@m1?·÷Ÿ?°È?¨ˆ?¬åþ?­M?­ t@#æÝ@$'þ?ìE?Ð/I?Îz?Þ"?Üg@?ÙU +?‡!ö>åæØ?—ÞÊ@ ì?ìÖ‚?¡­è?«Á[?û›?|Y;?Ãq4?µMÕ?ñþ?ñÁŠ@3©@ öï?ÍG?«tz?«`Ã?«QC?´²?¸Bƒ?’Ë?$×µ?*øð?PE®?8Æ/?o­‹?f-y?§œh?ª“6?Øæå?ãAü@nh@ \@‡A?Íe?ºIû?žÊ?†Kˆ>êTí>ã[ê>Ïv>¾Ã´?ÄoD?ºmr?¥?¬Â!?¡÷Ø?‘Ð?›äË?©Q?©?¨ù?×)ç@#Y›@7?¨®õ?¨™?ôø@ +f‹?øÒ?ý´0?ÊA?¨z ?À™ô?Æqå?ó=È@1ü°@"U?Šš?i›@ £@ ‘z@2ÓW@Aù(@*JY@6µ?ê $?Ëa?Ø w?Þ†«?æþ0@ U@Â{?‡Òç?b—Ê?¥’Î?µûk?LKd?Bü?•B$?·¾ ?¢`?¥èø?·Šz@¼Ó@x›?³n?eù?Ú‘Ÿ?÷oi?µð>»g?Ù4?\D?$y@ pZ@Î?[°d?[—ö?:?ž@G)@k@?ÕvÓ?l(i?È,p@>jª@%*\?£øý?£â,?Ì +Ë?½ÂÎ?À??ÊÉ'?Î-z?¶vó?£i?—>‚?wpq>ù“¬?+'H?æ+?—K¥@DÄ@9'>@™j?Ù>†?é·½?úõ ?î Þ?Â’Ñ?Ÿ<†?%á? ¦¥?Ž?Ì}g?îÚ?þ¯?æòo?ÆèÝ?Àå?óÛh?úmø?ÝȆ?¾m?Ä +?Ó‰&?ô8°@"Œl@È?ˆxr?‚j¢?Ì L?Öø$?Ùk?×!k?•ÛÅ>ü“½?&zŠ?–wì?¢ŽÜ@FÇ@U¡þ?Ú®?›S&?‡XB?pØ?€q1?| ‹?ˆ¼„?´/?ƒc?tHÄ?f¼ø?æ>ø‡ä?ƒ>B?Ú?Ê´?ÖN?ÖRå?R.¹?JTÏ?´\«?Ñ~ ?òL¹@ +ˆ‹?Ø9>?!þ ?3ªÚ?ý +¢@3ý?ÀL,?ŸÀæ@&Æ@;Öû@|?»‡?°[ >ð´>Šñ’?Ä?ÖY?AX>×ÒÞ?y?%XŠ?)L‹?7Ý>Ço®>ئ>Úƒð?E2U?A)\?KÏ?0àì?!ý.?8œ1?{Ý?«þ?’ÿ¦?)?JZ?7Ì?PeW?jÆ8?‚”?áÏ?1%?^•E?É%>íù>>„>Þ£?ræ>Þ–"?HöË?V—z>ñGƒ>ò›¸?'D?•Î>›„!>|Æ,=ûOæ>UáR>ä!´? Z×?MÀ"?XUá?‹ºÜ?ƒã?•“?1m>çz˜>ÿ÷²?yÚp?‰…?EQû?9ˆ-?•Ü¢?œóL?:öN?W#m<’E<ý’ð:úJà;U©8?™áš?’ùÔ?Hóþ?TÉ&?Z>ökñ>õR:>ß-·>ë”>›Àˆ>™¸—?z°?rw¦I>×9È>ºæ>œ²£>‚‹Ï>¡<<ø©^> ÿ9?I=?á2?à>2Ãã?¶ðñ@)øŽ@'¨4?ßF—=Dk"?›ð>‹'Ã>…5>ááð?ÅÙ?$*O?9a¥?¤æ>¹·>;ûx?þ'@>?N~Á?–ƒ?k´œ?š¥?—ç"?”Ÿ¾?¤-:?Öþ¸?ÓIò?LA?M¿¶>D|“=©†Ü?h¼?]¬U?.€ ?‹è>¢È÷<¸¥<œ<<~B!™n:Ô‹;·S€?F ®?©í-?Âã?á/£?áÃ~?æ4¾?ï;@?çŸê;÷ªæ? æ?ü??I¸Ö?Z¡ ?}ºZ?@;?£@©?°µ§?ŒïÌ?k¾»>åua>F«r>ëü>´3è>^}>oðB>ì*e>Ǿ­=¯;>ìQ6>ëÑ>ËyÓ>ÖX±?‰ž?’Î`?Ä"ð?ÏÂp?CZ">×F?nB?¡n™?Rht>ìš0?¥âÃ@ DP?¸¥>ìžF?Žn?Jæ?S7Í?R*þ?ƒÉ€@ ‚?ü Š?V1!?XC>?ZZ}?\y›?¡uü?¥„?×þ»?á²?…€S?eé`?¡»ê?±q0?‰3?l’?»ê?è‡?ëX?ðÿ +?†e'=WT={ =H>°8?l}?P^ö>ìwß?kG?¡^?œ´M?ˆŒ“?Ž1®?Õ2e?ÏÝ|>ª+¿>‹æ?âú?+«‡?yã>ìZÞ?!e{?=Ý >áòÏ>ˆ{‘?Q™½?šÇë?˜ ~?œÏ?KìK? Ä ?z¦é?x‡?uw-?pŒ>õÖž>îßÂ?ªJ ?±A?ä)–?ê+?ì^8>c>+d> ƒ>P?Š?lj¯?yþ>?…u³?ŒD?k‡?v§?Cö?@\Ÿ?=ž¸?a ?±n0?šj>q,€>„ÿ\?5ë=?9m?€: ?ƒ7Ú?pžö?lÅ«?«‹?±žé?flõ?OpÆ? E¹?±±ö?ìÛh@—Ü@º@%}Ê?Õ(á?f”i?l¯…?n0?¨ß‚?íNI?ì^I?å¾?°,i>íe%?'ÅŸ?¡(¯?ªðÊ?í¨?Õ—L=æ>„ï?P)Y?eVû@ +~g@¾w>çW\>Ɖ ?]°?n„?÷Ì?•ç«?‚Å“?~œ@?Íì?îOÄ?øO@_~?ÙPª?¼¹Æ?ŒOS?8r‹?nÙ±?…Ý?@]‰>îК?¸?fDÆ?†=Æ?²ß?³<—?³Y¤?§áI?j±¶?…¡?ú"Ë?÷¹‹?¼ À?¿ö?ï??îûé?s²ë?o½ú>þê>ïÚa@k@#z?½W!?¡ò›?® ¸?´%û?Ëq½?Ùžb?®ÌB?›óô?…%?pˆ{?„Ö?«'?Š-j?ˆ™[úæ?rŸ€@@ËV@2êh@Mð?òñ?w;ä?p¾¸?ÌE?Šš?-iÜ?FêZ?¸¹ö?¬Ú©?r€q?rŒ?rš}?rÇ?ï7¯?öz.?ˆ”Š?u¸ç?oŒ?rú:?ƒ1,?‚Ú>S‰™=¡q„?jÔk?jP?­s?¶‚>ŠL<Ãì?ŠB|?©qT?ÛHš?éy?ºL?©ö?†~?sÝÚ?Âë?Þáá@ @$ã?¿¿S?t!8?K„Ò?:C3?Ò¿@ Ç?©g3?I*?}ß4?“‹â?Yz?•Y?·ò´@µ°@ —ÿ@•ù?­ £>ô½á?8 ?tÍJ>ôow<‘HP>ø&Þ?tíZ?©O®?×C?—sÕ?1×?”?ÛC°?é'}?õ(t?º‹í?`Ë×?h­õ?pšF?ˆNá?–†Ù?Š5†?uW†?ƒ2æ?Ž™ñ?Åjy@?Œ?çDÞ?—ö? fÎ?)Ã;?!V6?æö?I†>ö ?‹z@zß?ôÇJ?u•?÷?ëT£?ìÂ?õ¡d@“@ñ‡?ñ&{?g[5?Lå?1H?TY?š-½?À'^@¤ý@ æÇ?ï{Ý?à¡Ú?uª[?ovE?GíG?[s?¯ÀÌ?Ó_l@2®@•e>öÇ>Ì <•Q=[¤˜>Y:s>×å?œ–?£A?˜¢?œR”?Ìñ‡?Õ ±@ J?þ`S?µ½?¾Cá?ÌÈf?À¾ÿ?‘nr?{?ŒÀ7?,·?·ýË?®ã=‹?>m?õ8Ö?õ4»?õ,ò?ñpù? ÍK?Ž9?Ç?Ì‚™?Äñ$?ÆòŒ?É\Ã?ËÇ?ÞOL?Ûæs?9 ?tÍŸ?•eT?”¶¹@t’@"$Ý?¶nb?§Y?©šÃ?¬k?‰Jê?€sC?ë?‚”@!]"@4@0¤@-è?ˆBÔ?)©c>ÚG‡>ÍG ?ˆ…º? žx?ÀX?ÍO?˜6K?šË@6×@tMÜ?ç;×?k$?;d9?A.€?†¤+?©›Ü?Ò…?ñ;>@ +&Ä@ùš?±ª±?5Ä?°my@å@y@v@˜#?æB?ü•Ì@±=?û=°?äƒ?èò6?Üp0?Â.?šª6?¦-»?µ©?«ª|?‚•?†V?´/?ÎÊQ@&Ê@„v?ÂP?¿v?‹ù­?’Õ/?Ý`ï?è??· K?½ ?sÐR?q)ü?Òzå?ÐÀ?íSl?ðèF?”+Ó?yñp?ª®?¸²“?å\?ð‰v? Í/>j« ? `ò?Þ/Ý?žUõ?p#?q¶U? ª?À»?ï׸?÷çß?üúÆ?‘„Ž=×3B>Ïi¾?nqe?áfƒ@Q_l@-¹L?³]Î?¾rß?Ýêû?Þd§?îÜ.?ë8.?Ð.C?ÉÛW?”î-?‰Å‰?ð²Ò?âáÉ?šÔ?£Kì@ Z{@™]@-{F@2uÑ?оìžÉ?P³i@Èé@?ÕÖ?Îñ?³Ž>yi?u3 ?~kT@˜@h?Íg?Ìy-?­?N?˜l?¬_Ð?µúˆ?låF>î²£?[1á?·•Õ?¦êå?etÌ?•Ñ@‘@]@[ @¨]@×@Íu?¨%¬?mNY?g© +?p׶?zC÷?Þf?¢|?Äk/?©ÌÐ?cõ8?„´>?ËU?С?ª´R?ªvé?Þ ì?Ú¯”?˜øÛ?–ŠµÝ\>ˆ¿÷?#(È?0ßØ?Ä5@ò?â\?„Ñ#?¼Õ?`ï?gõ°?\²á?\Ÿý?û™K@Ì?ªm­?ÛÑ?xg(?mv?¡©R@ `p?ópä>$iÙ>~œ°?yüC?ˆÚŸ?¿¾“?á$?Ð%E?­ì’?‘¸Š?ví-?Ÿ"Å?ÌEw?Æm€?º‚?Ëe?½F?¯!0@\@Wö@÷V? Ù!?7Wå?Œì?i—Ë?»«t?ǧÍ@&¡@Ñ@K—@u_?üj¶?æj½?ëW?î×£@4„?‚Ú?X;C>²¤< +kÇ>çÑN?†²Â?¾»¡@¢]@iŒ?ìàð?æÔÐ@šó@5Ãû?ÿêÛ?¦5J?Æçú@¨Í@Aa?,^Ñ?P]?Ìå?ÖØ„?úv@tè?¾¹p?;þ‘?FUÜ?‡Š?e†?ÚŸ?î$§?bš;­–Ð>ñ}?VPs?VIä?VJ˜?zä<@C¥“@IÄ\?ìhj?Ô¼?î’š?êæû?À)Û?¨¾?¾Z?Ö7|?Ö8K?/ûa>ïê">ಹ?†|?³i@gë@ v ?ÑŠ`?£¥R>ý©y>ä°ã@Q`@‹?@ +t;@š°?è|H?dP¡?«Ô?â'6?ÛìØ–/>ظ+?Oë?Yi?{†?‰¾‰?dPì?°B?Š\@o?è5f>Ú«8>Úæ3>Û$Ï>ÛaÐ? ç?ÎT>竨>Üz\?…3»?Á͇?€my>„a(>Ë&‡?’Í%?’ñ™>ßX>ß\û?›Øƒ?–Í?k‘?`çý>‰Ø=êJì=Þ¨^>lØ>ãƒ>õ/Õ?Ñg? *Í>ì}À?$qb?f…N?Sþ>>ëíN>ꂾ?(j? oÂ>· ÿ>õ™!??©Á?I1=yì<ë¶Ü?f…?G,³Rq>ç¸:?pŒt?adt>õ¬ +>è¸ì>›š¨>9wk>ŸÍ8?gƒä?vPh?yc?jKô?aµ>¾qú==Uã;fæ=¹1o<ðÔ›>®…?mlÞ?.kú?Ñç>Î,?ô÷å@5$@ Í?ÎŽ 9}T=!\È=<>øf|=—Hè=Ö_’>â§>Ù©>•y>ã?}—þ?•ÚŒ>ø/O>ŸÔ$?a1½?g)À?€Çù?€ŠC?U®à?T˜{?ƒl>ã²Ð>_ã>‰í ?Yë”?@§j=š{®=ŽÊ?U{3?^ÔÓ? uÂ>æÇ'?€¼?©Gf?i1>ìc[>éÞÍ>è<>èJ0>è|">õn??hÕÖ?hý›>÷¾Q>ã3L?JÑ?_Û>ª;$=µìÆ>µ-?ý ?DòW?¥á?hJÔ?1Cù?lù; o@=¢™×=Ú»À?Ç€ã?Ɔ†?xª¿?k{¿?ì÷%@/?ŸÃm?kǾ?CZ?"¹ì?ôï>ìê?)+‡?aî?63>ì0L>Ö‚¤>ˆÉÉ>“æ÷>ìU>ØðG;´×™?/‚_?4P?ªó)?±c†?Ôá?l¹>ÜqÛ>’}"?&k ?H¾R?§õù?Ùó~?|=æ>©È?²0?1*Æ?‚Y?Ó>é?Ëuµ?±zü?™è.?y¹?b+?I?ç>ìž`>î e?¦R>úYi=!XG?I ˜?m˜+?m9X?lŠ§?)÷?ì>®çy>feÐ?Jº?”ôX?‘ƒÒ?Žt?¨?lmF?bô*?K?B¨9?A4¡?pó4?Â!b?¶kD?™%?™3g>OJæ>Xùº>b­Ý>ld-?[ß?bm»>õ´—>ÄÖE>bI{>0ûÁ?LïL?‰¾¹?u>ˆ×ž?R©:?¡Ö>?—V…?Ž*…?£aJ?Ä +?”¬c>ì4-?0d?¬Û(?­¹?­Á.?©Š(?l9_?l6æ?m•¥?p‚û?²¦Š?µÔ>>=¿á=iÊ`?µ,?“A÷?Uƒ?9œ?Êy‹?ùDï?À=D?Ÿ)²?w“\?Im?^÷ì?lda?’ãz?·Ï£?œŒ™?j†£?B9>~ÎÁ>²µ?'BÅ?€^>ì”3? +áM?ÁîE?»8œ?°\Ô?±ƒê?"ϵ?h?¡1Ó?±™?zù?`‹l?qO©?s†×?*‚‡>ôC³?€uˆ?±À/?lÏ?¨?@°?pf?‘1€?¡@Ù?fÛð>‡Yù?6)ë?ímR?Ç­>¨ÎT>ºâÝ?D?21»@‚O@»ò?ˆ?~Ìs?.ì?4(Ä?¦xŒ?ª¼â?‹Ý?€$æ?Ÿ¡]?²–Æ?§­É?¡Ü}?T™?Çð>͈@>2?ðE3@Wu(@ +?%#?gQ>ûDV?%yæ?nàÊ?IG>þÆ?"(?oò?\ŸV?(P‡?@†'?‚ê%?‘¾Æ?ïkj?æø‘?oˆ?o†è?Fn ?C–ƒ@> +@"§`?¸¯é?±jv?µ ?´ š?˜‡?÷?Çþ?ÎÙï?šH/?Š©*?ƒDÈ?rê?õ >É\>¨Y>ÍÙ–?~_7?´§²?ÓFì?îÒ­?ðeœ?ñ–?ñÇ?ñ=õ?¤  >ñY­>²‚È>JG >—™‡>Âv?5q??Ä‹4?ЮÞ?ÚaÒ?ÉÜ2?ŽÝé?uÅ7>Êo>àC­>ò(?:g@ 4—?ù‰¯?YÞ?%D‘?ŽÒë?” ¹?ÓýÞ?Ìg±@X`@O?…T5?ƒt?¼ÖQ?¼4?x¢?sÒ@,™p@6_ô?ýèŠ?ñAm?€|æ?]’@2^ +@B¾¦@ž¦@Üö@1JZ@4‡?¨)—?s¢?¹¯I?ÎuE?¬Ö?©ã÷?‰ì?t%?nôÝ?câ?–­Ê?¯×š?e¸y? O?h>ôW?IÀ?tj›@¿v@/qœ@á.@›„?Žö>úNj>L.õö>¸¨Y>r ?¢?…í?p?d?JX0?Šíà?·öæ?¤`^?ˆI?ñ°R@AqÙ@øµ?å9t@D @¾?ëc,?t“w?¨É?ùç¥?à‹_?¯‘u?Ç3¢?õ€?å9‹?Ƀ@ÆŽ@LRŽ@÷$?_צ?rn`?z]B?r%Ø?u‘|?¬Áú@Ð?ëæe>ääø? ?u’0?¢èi@3û?ß«ò?ioé?‡(É?¸(ú?¸(>?·?ö?²g?©ít?¯;‚?лç?Ö÷~@ê@ª@ÔŠ@S ?õm6@@#‘2@ â¥?ðË.?í¹ß@ ߬@²??ÌGÞ?Â:-?˜«n?¤>?ÍØ`?¼¬?¡%?+jâ?õ¤?õ—?õí?ðŽa?¬£ú?¨aè?·»¢?»ö_@ à@@@(á‚@žØ?¬ÀÖ?ž¶Ï?óc‚?÷¥±?hEe?%·Q?¿>ã?Û @?u§?7 3?A¤? uš?p?ŽH ?Ÿ?s}?Ë´H?óaê?y÷%>óN©?FWO?sHz?¡HÍ?¿J@%i½@Oì,@ ?òâ†?æ ò?àfÝ?οÖ?µý?ìø®@˜¨?ìñj?¸'?­Â’?ëÖe?Š‘?;•?i¼Å?µ“L?úœ«@S{­@IÅ@/vv@ +E>ìDG?Ò?7áº?d&8?Æ·?Ĉ?ÚŠÇ?Ê_ù?q?W?q,0?qÁ?qd@5Æ@¨R?òáù?ðÍt@×z@iÏ?‘Øm?yöI?±…¾?¿K ?–,Ä?€[ü?ÀÏH?؇F?¬°?–"?6ÛÜ>ïÛº?‚xÉ?¼m?õ!@s$?ÈŠš?_I±?7Åð>ð«ð?ô%š@ƒP—@BAò?„Ÿ?¤Ý’?îæ?Õù“?‹*¯?¤ºä?îœØ?ø)@Ö(@áÌ@*\=@42=Úª6=Ë®?§ð[?¶o>ÌÕÝ>ÓBD?»?Î +Ë?äbž?íŽ5@äñ@2 ’?é?ª”U?„br?2n?ÅP\@"&¶@ã?±š!?ðôÎ@-€¥@ û?ÊŠl?Ãœo?Ö¬X?Ïbâ?‰s×?”á +?râ?IÃ@KU@q³?œ%O?4×?9Ô>ì2?•™¼?ª¦“?ë“ß?ýLG?¯¨B?ŠØ ?\Ê?/¢Ù?O?jÆ?¥ÍÊ?û”»?Üa ?v_—?ž+Œ@LÜ@ ¾?ÿ@Î@91?ËÓ +?ë>øüÙ>éÁx@D@/ø?§;?M±¯?ž?µ…(@ =Ò@.·f@ÐE?¼¸í?~QY>¸bí?3Ö‹?–º ?’qM?Ž'·?‰Ûl?…Œ¶?ˆ§D@X@"¾G?€ °?lx‡?2I?]¹?¢³ô?°§é?£„$?©Ì?¯?­u×?Ãd?ì?­¨V?w_Î?˜ÔW?ÅÏâ@+?ä@+J@rf@(s?öÞM?¡Ø«?O½ç?*™?|+ê?«?݃?„¬A?†'J?ŒëË?„Œ?ª + ?ª|¿?€?‰±Ü?&æý?£WŠ>£«->?¢ú?i‹?SR-?Añ'?¹¼W@ú¯@N?ý¦×?ê3?ÚiÙ?ÚM‚?_æ-?ZÓ?ËxØ?áÉí?¼M+?¦Ç'?àž´@`²?â€?šä"?¦p;?¶Bi?°•ê?ëKm@m‰@§@ ³@ M0?ØÊ?ØëX?Óãã?È Ð?€Q$?fZQ?’#ý?ž6¸?ª5›?¾VÔ?ÛcQ@.õ@/‚\?Ꙙ?ömI?¬T? n»@§%@A¦ž@ûõ?×¥?¾z>)9=òK?«`?͆L?û F@&×?è±b?´!¯?§IM? Û*? ÍÞ?ƒºÑ?n’?¾$P?Í6g?S©?V5 ?0>Õ"È?&¿¸@H@W¹?‘ªÓ?XÝ¢?˜ù?¸àº?ºÎž?¥ˆÿ÷? +²>?ñ}#@[œ?£Ãp?‘wÖ?t?Œ÷z?r¸“?Wê£?~¶?¹‚u?¾†¶>Ø…¥>Ø©B>p¾p>¢ ?ƒ”|?–ÿâ?ƒ®?ŠŒÁ?± ?ÛC:?Ò¶?ˆÿË?x + ?&Ç?Š?6«ü?J)?©>Üvt?7èõ?‰B;?eÃL>Ý­>üÅw?? ÷?DýÕ>ßû>ßh—?fåk?zé†?fÉ9?`ñú>þÍO>ée?“ç?]•­?)³p>ãœ!>ä->ä”>¾ >:U1>¬²N?f«¦?g\?flh?=!Ò=×éé>RZ>ø ü>Óøh?::Ê?oH>ìÇQ>ßn‘=ÊG>œA]?Ähà?™ù×>ÉwÈ>‚§q=Š&²>õ³î>ݬR=ÓÊ>£ú??Ü>>0Hå>èŸU>p$¹=¢[ì>Iq >¡Su=Ä{r>¸.>Íý>ëàÒ>ÃB >‰m(?+x¡?ß5?&>w;|=îië?äý%@ +ª]?•=ú?.õ>ÀÚÝ>ˆþÕ?]>Ü0Ë?'Ð?;mq?IV?n¨X?nç’?$áþ?Öw>5">² +L?D±—?vä'?Íå³?Ì_ö>æÍ>ã¡>ã[,>ãµ&>Lv=}˜>CÃ>Ô´"?xÂ?^×…?Y;/>æ'>æQŠ>æ”>æÏ‘>ç a>çH“?6ó3?gµþ?5Ù€>è!+>èR,>è…?åJ?há€?fmù>êX™>éb2=Ô2—=‘âl>®ÏÜ>ÒüÌ?3Ö?\IZ?b¹L?jz‹?9؃>ê·”>¢õæ>óž?9ö(?*W>Û8>ë¨T?lâ~?k‹å?¡z?ª,Š?‚e>?kÐÃ?3gñ?#¹?›é>ì Á?qêÍ?±©?{<¿>ì:>¼Œ>Z¾>“Ó¥>ì^Ã>ÙvÌ>b†Ç>„Ô’?+H?% S?MVb?T5î?CNx?@É­=é8Œ?ucð?Ÿg?¬Ù—?±yç?yH=áæ•?.öù?™Cì?5?€b¾?ã?©y?•—?Tí‹?^j?lŸ?X2 >ì›?5 ?ì”y?êäÒ?±K#?®Sã?®öX?®.¡?Ý`Ÿ?áé?5 Õ>ìW?42?DªM?)òª?')K>ê2ø>®aæ>ù%P?éM??¹4?laÉ?@n9>ì^Î?lF?‚Ú?‡ú}?y,?xVø?r¸×?V:—>_Ks>WkT?y¢m?€¶¶?¤Ýà?¡žÑ?3( ?¡B?^Ï ?}¶n?^¦°?O¯I?Ó]@åX?éì`?ЬŸ?î-@gu?·˜H>ü3[?"OÊ?iI(?IŒ(>ì%û>ì>Œ>ïÍ?°ÿ?­Ÿ?¤ &?Òû?èÝ?ÈÀƒ?Ãx$?ƒÊú?‚ðˆ?ífd?ø K?ùVÈ?þu¢?c†^>û‚’?ˆ,±?¥4l?=F‡>Óby?E†?’š\?aƒ¾>ì[ì?.aÎ?sß-?S×?A4e?=Éo?àD?a V@!\‡@©ÿ?Ëו?ÈbE?•Í'?‘>¿?§5ž?«a? H<>ß•!?œ“ó?²Ñ@ø?@ûþ?ˆ + +?Qö?¤Í?ÜðÚ?¢¡3?mH?Ûga@!i?ÌL>´Ê¾?Zª@ îf?æ¢È>ï™>Ô]÷?›"Ú?¦ß.?í?å×Ö?°¡ÿ?µz§?Ž?ˆí? X—?¨´w?Á¢ò?ÅÔž?b!ó?;7h?ŠYô?“!¡?!Ú?²?˜1ö?¢Õ?• P?…õI?¼`v?êÙó?Îê|?²ýÊ?w{š>ôß–?)VH?ešä?™ä?ß~m?º‡?YZþ?t´u?¥f«?²ßw?ïNp?øå@ +üÅ?ýÌI?o‹O?o¬Ê?¦u?®Ž`?—™?”me?E/§?OȆ?Ü3†?à`@O@¯Ï?¼½?¤w?øë@ ºx?ÎB?´e%?fš=Á0r?bf‘?¬=0?³så?´³ó?‘é¸?ut7?|ß?dP?w,c?aÂ'?šŒÞ?Åu?…ï¯>ñx‚?¬À@&ú@¥¯?Ü“?¡^>Ä#>Àê >‚Jø>Ü?mÍY?‚NG?¾o?¦·'>³Ô>ñk×?¢Î³?À¹c@<Þ@6f?ÚiÍ?Ý>?ÇB‰?Å$?èˆÚ?é-€?y—_?rfð>ôíç?ø¶? +Ùþ? –=þé->—?Ï“h?åJ™?©Nx?§Žè?£u%?®ª?„ˆ@?s¦€?­$x?¶Íª?\j•?8V\?‹?™­³?eÉá?!H?;9·?VMÞ?"¬‰>õ$è?Rùy?™é‡?±8—?Âèb@#}@nKì@"i?‚ù>ù­³>õWì?3 K?u\¹?~;?ˆi$?ˆµ°?…±o?)?˜ü?–G/?ŽÂ?Áeú@ M?È5<>õx;?W-d?¸•?—bÕ?C?s+™?£0û?¹F»?Ù`)?±„?\ÚÐ?½ >@0!—@X? 6æ?J?¸ Ž?”Yl?©‹?o Ž?îFŠ?à>Õ?ï?âíh@_2@†@GW@òœ@ ÉÛ?öË•?–TA?ÅËñ@*mY@!e#?õ?b?ñ š?ã[[?ɃÊ?ü?QÞÇ@*‘@l2?»£N?Â$û?õL?ýý@€†@@O?·´T?½4j?è›?Ú¹‘?ƒÂ?Ší ?T_/Ô<¥Çt?¬J*?¿&"?-“´?-Æ?¦ºØ?«dP?ÍúY?Ø–=?Ð +i?ÇÌ%?ë~‹?ó™?myf?:ëâ?#P*? +Q%?X?có\?€Úª?†Œ?ÍU?ìcÌ?ešG>ó1Ì?Ž>*?´ÕV?ýCü@ß@@ Ô@w@á?òËÉ?ý<©?ÿýK?±÷;?n|Ò?Ç¡@ +³?ÔÌr?Ø?ƒ•Æ?N^2?‘¹A?á?é?×ÖÝ?ºÇ#?µíù?¸o¹?ä5Ù@Z?ÿŽ/?@¢?¥ÓZ@FY|@-~*?ñd¡?à‘º?—~Ç?«Û¶?Àvb?ºÉc?ÑÔE?¿ø?på?q¸ý?úËÞ?õ«E?ðWh?ñ²+?éí?áÇ·?¹«Í?´>õ?´,?´!ð?`Š;?R?Œ²\?˜—¤?‹ž9?uA‹?§â,?¯BZ?Ų?ç—¥?m¢=.”G?dnY?ç  ?Ý<±?ê-(?§¬ >|¿¸?äá?¤_›?±Ó?µ?¶·A?îƒû?ô25@›@ q? ª? íŠ?ƒQX?p]?éõ2?éKœ?bâ‹??wk?ŒMM?›ö÷@ aõ@o‡@ d—@ +?–sX?`c?ˆË¢?±À?–f¼?v½^?’×+?±‡­?â0@?ú?ì Í?K3ô?‹L›?Ö²ˆ?Ã1$?n6¢?måÍ?°÷F?¸¬@0Ûæ@0ÎØ>£N=æÄž?þy?®*ý?ÚÜÐ?â|à?ñ¨„?û8?‹¨?%ö ?R›B?`$†?Hu¯?E ?X°I?j”?Žì/?¸²P?°y?³­M?±±?‰7?”×Ç?Áè?ÅŸw?œ@?ò?ím?ë'Ç?çäŠ?éY??éIë?é0è?ðý?³ú?y5?¨¾?‘ò?Ƽ)?Ë??íÂ?ë‹ú?ò¶µ?Ü¢-?®/n?§XÊ?@å>ùœa?ãa?ß«¦?6È>ç¬õ?ÁJü?çƒ +?®j¯?Uj?’\?šÔ?w™?m´?X0Ü?­&´?‘ùú?!Üœ?käÑ?Õ¾U?Þò¢?‰Í>?ŽJ|>›}0>Ç?û(@.î?Ú÷ø?¯Y–?‰ÕÇ?qcþ?©3©?Íu?³˜œ?“ó? ¬m? +†?ˆLˆ?ƒœ?Óx@Kz@%³!?‰¸?‰v?Λ?׎¨?\Êu>ä%7?³a°@˜8?äeü?º68?Ïü÷@ u +?ø÷y>ë¥Ñ?ت?ÎD5?Äb3?‡Û?o…+?°d?¿¸³?Hw§>‹¹{>©L´>é^(?iΔ?âGš?Ì$ò?€^?‡Î¹?©n ?©Y?\Ê)?!²a?Líg?anÊ@|Å@Bã?üä?‘¶«?±Ò5?ÃœÊ?–ï¬>ÃÀî>±þ?|‘˜?rî?úw@ Ù?˜gè?_øÖ?_àl?_Çë?šý)?».·?…‘>»Žv>³èn?IE>ðû®@ÔÍ@Ö’@¾¨@©?Úå¾?ÁŠ(?Ê›3?æPž?®=¹=Ÿx>€'”?äºZ?ôîª?Åw?¸PÅ?Fçì?)Öö?LõP?]-A?y(H?z…D?{V0?¬ù„?À™•@¬ @+NŒ>Š¥¾?­Ûn?úOk?µ§Í?^›?‘"»? `?­«?¦m?•f®?ŒþE?žž§?L#u?Ÿ(>êJ7>Þ× ?Õ=??r2?t‰?¹v?¿!‚?˜aÚ?Œ8`?䥒@#?Ï–±?£:Ù?ó Ü@6¡B@ü1?ˆù?‚4S?¨^?»*Ê?«D?¢¹ü?È>?ëçm?Åîé?lZ?•¬?ù_…?ÿ3`?²ÇE?¥N9?ÇBZ?Ó'i?¾äG?²W×?Ìg@5Å@ ( ?¯d?©”?®>ß[T?–?ߟô?ßã?¹¤–?ÀõÃ?®{ü?„Kú?¢¹>Üö?oï?3Li?TX?iÑ¥?…ûµ?Œgú?’öq?Þy2?ØpD?Ö-¢?Ö.[?› ?V6?#‚­>7…Ä>–ì@o|@|V@ŠÕ@è@?šêÄ?+{&?¦Wç@p?óF?É\;?Ï‘X?s°>î¼ +?àr=@3æ?»iÝ>Õˆ_?à? µÕ?¬e@kšp@m†œ@Þ9?ò Q?¶Œº?ž´J?‡Æ>ölÅ>§®+>â2B>ßæa?^\?o«â?—Ð#?¡´3?›¹$?Œ„?9º=b )=gœÀ>Øw`>Ø ? P>î€\?Œ÷?·kÏ?V¶o>šÍ>#¸|? Jþ¤/>Ûâá>Ü/>Üy¶?–’ó?ßR ?Œp>w¨?>²ÐÍ?­Š>òø>á >ßt×?Ã×Ø?¼°? ¯Þ>úT“?1À?JÇ-?ÿ»>ã§?)oj?M€ë>þ$>F¥þ>äÄ»?=Ù‘?2ýZ?\À„?2K×=†1”>çQé?ȱ?›öJ?5©Ü?UN?°½š?¦&¡>î+>þÕ?B +?0N1?¡Ç??°H?ôa?$Zé=@èô>8ÌÇ?m–?BEô>­­j>þLÒ?x+p?6R>Œ·µ>Õ¦>·Ù>šj=`;4ê¹>ÿµÏ>Ü[Ó;”t=“ç>FS?$€?;uœ?7¾>ß"Ì; ÞH@ Y??ë€?•Ë;>§%j>K…÷> Ƥ>½á,>½($>É“>Î<?ŸL?£7£?Ø ¡?Ø®>½Äò=MS»=Ÿïª=¿:º>@OG>Ìt>×µ?Ì?Ç>Ô;à>ÓšÛ>àXŒ>äYw>uì =(¦>+ >Þü>áÕ>æ>æTh>æ—Ó>æÖ>çú>çLÀ>}x<i <9â q>÷P@?ß2?_Òò?^-Â>Öâ>>ÏÖ?Kpf?ZžÓ?T™??kÆ? Êu?24‚?S…½?o=X?‰;x?eÑ ?hÉ>ðô‹=Já£?~Î? Æ?¡?9(?¸Ï?ÁX3>ÖiA>7?YÕ?;h?˜?±ï?•{ÿ?r´ ?:j*>ëXÀ? ]?d×&?Q#?)÷_?ü? H??:>±ŸE>²ÄŸ?Gw?C¶Í<¾Ü¼?”îû?¤ÏN? ÐŠ?£ó ?1ô>ì¡>Њ>Æ­Å?lLJ?ª ù?‘÷?l¢§? l*<Ðk´>³œG?sd?MÛ>예>½©'1?q×}?t ?v="?w'h>n|—>ƒŽ>ê>ìr®?ÒØ?¥£?„Û#?“KE?Àþ>§!?{¡?E¨?—52?ÀW=?}&—>ìL^?em?6Éý?l¸`?±,?°N??µ;ù?¡º¼>ì2r?¯ ?PZ?N®?ÃÑ ?ÆĨ?®©?§<Ú>iæ£=Þ"×>Éò4>ì–?‹þw?¨>?<ýÍ>ì©>ì¥>ì R?<Üë?rÂ?5ÌÙ>ì ý?€Q?èƒð?ÀwÕ?ds­?0x>Tm>ÃV>?žãš?ŽQ>»¤q>à°Á?l}Ù?l$^?ÎK}?ÕìÂ?¤3u? Nå>x©?–3?Ë«Š?„?2nÊ?NÅ?b?i>‹G?†D:?üc.?Ä +Í?@õ?=T)?Lƒ@?‰ˆ?ìbõ?íIË?þQ4@Ÿõ@¡@jg?l’?l_=ÃÝü<Šç‹?×!?ì¦î?¼¦œ?¶qv?/k >ìÐÙ?\ãS?†ÚJ?ÝÚ—@kc?çü­?ÛÕW?ºs…?éÉ?Ž¿H?ž¶—?†Ö?ð2?7„å?tv?¡|?ÎÎ^?¿~?m}]?l¥â?ŠÝ¸?ŠóØ>–Ü">¤ë?ló‰?mг? ã?¤6Œ?ýáJ@3°?àh?ݼ6?W[™? °Î?Û€/@¯?±Ù¸?nk1?n–L?pö=?/91>î $?2Ó?nºÐ?•¨B?½Ÿÿ?£s?nòÛ?›°?ÞQs?Õj“?ÇB?¿!ú?®ôé?ÐÑ—@?üÜ?4Ë&?4[¹?zz?~=Ù>Á“£>½:«@¬*@©¾?Ýg?Ô~’?AÊ?…$?Áz1?ÇÑÎ?¶ÜP?´K?‰„—?w-ì>…âÇ:ø¿Í?§V@?ð;0?Ç8¡?°Þç?Ñ ?âÔå?£ÔÏ?q¦?V‹?Jê]?'À¾>ñWƒ?¾hÕ@+P…?ú¤Ö?ƒ±?|1??G®>?Qù?p”Ý?ÓT?šå?’>v?r “?e× +?J£¥?WWˆ?rCÁ?ˆ¨e?Ë ò?È+?•£E?¨m@I@ €³?wÄ&?†#¯?òËå?òE”?íTž?âuK?h<?muÕ@«“?øŠE?+;ã?2Ïí?¥§ ?¤¯l@Øë@ W@*¸@œ‹?úžU?÷>¢?†•h?sµk?—p?Õ„?€¯?så¿@—@¢@?å” +?Óƒ?Ř*?Ájµ@Ð(@·ò?›ÉM?hÆÞ@¢@¹Æ?­>??|å›?3–á?©?³r4?×oF?·É›?©ï ?UÓ±?ü?4Ü>ô¿k?Hs¥?tÌ??Ýi?. ‹?•?¼M4?›‘ç?†ôl?²óô?Ì6?r*ð>õ ƒ?"?,=?¦-¯?쟥@ú@1#m?êŸ?u5½?šVÔ?µ¦Ö?Ъº?êÔ ?æ¼…?⦮?öÓ‡@&ñ?€ ?uRƒ?Ž2?¢B3?nI²?– ?oç?šó£?°J?Óö?ǯ?®ÿ?¬jY?²F?Έ@ ?ÀâÅ?e?Ž®‡@3ü?âî­?¸Ì?‹^G>û²’?Sœ(?­¬?Ãv¹?õVð?àðŠ?·ýî?ÂCù?Ý À?ô³}@ Æ»@^Ø?ïö?Û9m?”çÇ?«´¦@Ÿ`@å“@–?òÆÇ?·×¼?¬N(?…Fß?yÅ?7Ð?dõp?òE±?è¡Ç?¸¡?Ñ@8@C@ ̯?„àÈ?s¨>ô +É??åÛ?ᔎ?ÍXá?…œÙ?Rƒ?ô›7?å‘Æ??ÀÖ?Tn?É›W?ɧ;?tid?w΄?‘Û?‰R;>M,‰>$?vT?sÔw?y*? EÄ@ Ç@ŸE?é>Ô?åÐ?U?5 +?£yø?ªâÊ@#¬R@(‘—?’#Ñ?a9›?ÑÚ&?߬??ób?àÚß?ÓÙ:?Àïï?ºÂ?9Q>ó?¾bò?îùŒ@ y,@Î?çFÍ?Å ë?¬´?¢‘µ?ãf‚@bµ?Ì¿?’õJ?Ã$Ö?òX?È°ò?“xß?¬pV?Ú×”?¹/b?„¶³?Çn @þi?év¤?x/[?¨Æà?ú¼?ãF¥?¦*v?Ål@JÓ@õ³?®kº?©YŸ?[-å?bÑì?×û9?ò;X@4Sì@0`·?^™?t~,@0Â@3ªç?°ë?—‡?èK´?ðP’?äw?ßô¼?–Ž?Ž˜À?Šò~?xà?Aš?>{›?ÇÚ2?ïª5@>^n@jQ@¼ø?©"ï?Ð7t?ï(Z@ß@.ú?Û|÷?&åh? â>¤É)?5V?n¯ ?‘q~?×?Þ\¤?Ù¾?ÐÔ?“H¯?†þ#?QU7?€Û@1 @0]_?í׺?íÃ?ªåF?£ß@ u@X”?ýmD@­â?È}«?±áÁ?ˆlŠ?mj?Œ C?žú ?«òB?±Œ€?”?qEO?‚Ö?“7?siÇ>ìMX?rïº@a+@ aü@ZŠ@°m?Aq?³çm@Hìç@@ús?ð–Å?ìV?µQ?°}?ŒF`?Œÿ-?÷åµ@ ,e?” x?4™?ža?Ǽt?…oå?õ?K½-?… ÷?ËÜË@.~Ö@€?¯’Ž?£Úð?ið¿?€P?Ôµ’?Íç?‘ð?žò@ ^@ž)?Ô'?Ïõ?è06?éÛ@FÓ@'… +?âàÊ?”Se?›uê?´ØY@þ@;‘Ð@,—¥@‹ @ 0ç–²?‰”9?¤î7?˜î¬?”ý‹?ø?ƒ19? º¦?º»¹?°÷ù?­?yÛ={Nœ>¥ ³?¬ÔÇ?¨’c?fG?f4Ó>Àž>œ—?¢ÁÙ?µVl?Ò¿R?ä˹@Ä@(B?• ›>÷Z ?‡å§?Ô;;@äp@>$@(Y?"¨?˜±?mH„?ec @Æ@!¿?ÎoY?»W†?¬°?–÷·?ðÕñ@&í7@ ¥ä?Ëƃ?ØÚý?ã?âéý?׈?ÇDÒ?¸G&?½!Ö?úö?Žž?õ“@†§?¿³?¡µó?²s?bµ?š„?â.?¼°"?Õ&?$ƨ?bôr?wS@ª}@žR?™s‹?k'w?—ÕL?¹ÿ†?²½>?š*Ð?Ÿq%?»+?®mÊ?6»#?Eœé?ˆÅ?˜`]=ÂÝ=‰õ?©8?Ç£2?½‘?²b‘?Ñ­`@œ?ð{O?›q’?×ç+@ˆb&@‰Wj?"¿p?Gó&?™Å?°²a?®8{?°N”?“ûÍ?^/£?dô*?d I?€Ž?ÝÊP?ݤö?ÑJ?›JN?ør?s)€?p”C?s3,?ßy@&±¯@ Ñç?¥}¤?«‰‚?Ür?Ü]æ>û~ã>žáÓ?ƒ;?¤ñá?£Ô@?¤Ò?·í?Û‰ ?ÛrL?ÛN~?Û7â?tª?P?¬é?ŸÊ?BS«>Ú¢??\ +â?°Ví?š?†•ô?ò?뤳?å¾e?¼¦à?¥å? ´™>3Á?@?Ìã?ÎR?g:k?~jÉ?òý>ñ`¿?‹L1?¢…î?Áoë?Ø‚Ñ?Áìñ?ŒÑb?‰kQ?Ø+ï?ØQ?Ɇ?Ö„ï?Ws¤?Dµ?~{R?¡³¼?¢HÂ?¬JM?»*Ë?êš|?Þ•Ä>’bÇ= $>ÇÛ±?,׃?„›¢?º|¼?ËŒW@.­ö@@°@ +D€@Ÿž@wV@‰ƒ?£–?$I3?(p”?V<?ZÊ?þë@÷?”ƒ?~T¹? .Ü?©l¨?‹©ñ?6ÚR?7PÐ?Ï9X?ÔÑ>@/‡@7Bì?ï%'?™“Ø?«1G?ìÆ-?öSŒ?±®??¥_?Ÿ!b?”?­¨ý?ÅQ?Üi?(ƶ?R=?–xÈ?œÜp?¡¼c?¼4ë?¼in?Ã"$?´µ ?›¾?¥¶&?ËxÂ?¿Lµ?Uè-?Oë +?•v?‘1Ó?]êö?_Ï%?Ç?³[›?¦^?X?gÅZ?¼‰Ê?©gü>Ïü\>äí +?^L?rÀž?©Î$?ØóX?‡­=ŽÍõ>»Q\?®ª1? ñƒ?[J?[RÛ?a“>â¢>Ü*D>ÜxT?^h?°‚\?”I>ñRV>á?P¨=?~ÝP@3?ô\¢?ý ?œø? O¾>¤+|? +¿? =>>ér©>âÚ›?aœ?›9!?Až>^{ >ã¹"?ÞÕ?yJî>óä°?§±?DÉa?,Ŧ?d8?ø«>“Þ ??ÀC?¬8¸?ik2?_9?nªS?_D‰>ð%>ØÊC=÷ã[>‰Ð>óLÀ>ôŒÝ? wf?xÉ>öµ˜?Ìo?H…s?‚ª=•RÂ<ˆ‰l=9xÈ=öÉâ>8>ì>u”:<äè¸=€Õ?çÀ>Ȇˆ?œ|?«Ÿ?€[>Äçä>¯ÍØ@eÄ@uA?¢äÀ>ËÆ;Quº='Ä=U$$>ÿP?QYz?b®?›Cå?œÙ?œ>àK‹?4õM?Woî?ÑS=Îcœ>·†,?¦I„?£û<>Ù>ɉK>ô?É?;§b?dó]?VÚ;Ë2h=ñ‡>æ1>æY>æ›t>æØé=Ú><í>°j>Þür>Ý/>>ÛO>Ù_Î>×g(>ÛiN>èð>íA‘?Æ?s”>é–>鸫>št>RË>ÔAÞ>êN >êpˆ>ê«>—ìû>ZºÔ?!Ë?„•Õ?sÓ£?Jc?XÆØ?tØÁ?vWF?‰†Š?´Ý>ë­\>ð4f?Äøu?ÈmÕ>ÑõÝ>‡L?JRæ?l +?d^1?hNá?kÏÃ?oQq?R%?6M?;ûC?K0Q?rYË?¦*?EË>s’Õ?‰øÒ?”!œ?Õ ?ÉI>}êö>n‚ì?ög @n?²s?¢ú?#ˆ>ì›I>(2—=[Xñ?*ÿÝ?v,y?jæ°?g8´?+I4>êK*?¥´Ï@Û„?·œ>ìŽH>ê>ßȳ?WN@ ½Ï?ú‹?lxË?t9É?“ßB?Žj>ëé˜>ìf?Kaá?Mb«?XÁ?‡ú›?X.ã?D[?_]8?lJØ?“¸?§Â/?V›>ì;±?©?1>v?M1?vˆ?d.?:á‰?8£â?"nn?>×É?Y?•òY?I—Ø?[Ï&?ìU?ïog>Æ›N>ÀÇ>êÚ >ëý?€Ïo?‡¸©?,ƒ>ùc†>îi;>ëóS?Ñã/@tå?ÂJØ?hþ}?70b?m? ‘á?^a?C×^?”óg?¦¥?ßô,?Íæ?… :?{ùý?kñ‘?fÊß?Eí?KS'?%9}?&Ô? Q¿?ÿÂ?úµ?±º?Ýë¢?æ¦Þ?ÑoÃ?Éì?Ç?/…œ?žŽÝ?Ãb4?àsâ?Éd?‘?Í7î?Ô—?>P{? ˆN?Dê?fF’?‚º‘?‡RÒ?¡ðÌ?±²ˆ?›«²?„Fà?1ò‹>Íuå? u?/Û*?F¿p?uñ?Y,â? +Ec?õ“>®s,>À¹,?¬?°?–‚ó?‘„(?mµ‡?mœ)@íY@e?ˆ8š?mô ?­·Ë?´Ú#>°36Ÿ¦À>²Bà>òœ>4÷Ì=€¨?‘^™?Ù1œ?€7? ©¹?¿H?,xa?“PŒ?ζ?Çvd?Æ°î?ÞTà?ý|Â?ëÊ0?ÃÂd?ùž@QY¹@3Þ ?“jÉ?‚‘±>ï|§?ÈŸ?¸L?µá @'F@ +/i?þœo@Î?¶P?´–@Yz@Œà?ºà`?°Xf?°?³ N?$õ®>ïÐk?š?·£å?A;?}¨Ó@x7@Dè@ +29?ÖÑ|?k©V>ñS?*t?IÁª?||?½Ù,?‘üq?<™‹?MÛ‹?oîi?ˆk¯?š±?åÉ?qɆ?qÔ>?qçy?c\k?=dl?H<2?rñ?W d? £—?{ t@ J@a«@(¼@ +@­?µêƒ?«²Ê?vu?NÀ?òÃú?äšï?r݃?mJ?U€?t;Ê?ÅìÍ?¸>ßcø?».@#®@#—n@öa@´V@t@.]?Ó-œ?Ç÷É?zt?s®j?M4?N-ƒ?å¢:?óÙÀ@Ìe@Dò?è4?ä{þ?•Ï¾?‚#–>yËD<‡‡?ö&@¥»?eCÈ?mô?QžÓ?c‡Ï?‡}?’®X?õl”@Ƨ?”ùV?LÎ)?HúF?E"ö?¤¢R?½u¡?§†¶?”gb?Ê1°?áŠú?‘KQ?Qáî?öGW@O ?«N‡?2ZÝ?‹?­¼½?È#9?Ï¿Ä?¼[¶?µÌt?“ƒ^?u„?ÀE†?ñ€y?³â ?‰õ}?Ç`ì?õ+^?â¹?׶ƒ?¨a?u3g?9Kb?F’?“õ^?Å|¤?§¡?Ÿ ?ÍZ,?õCŠ@Æv@-Õè@$»O@Jm?×û?]ç?†y¨?˜ ?ìªâ@3e8@®?·ò*?V] +<ÎU?—?·î?ù|*@+Ûè@&ßÜ@#E@ ˜?à12?@QÚ@ +Õä@ +Ö)@Àv?õ-?ñDÒ?äÃ?ù¶a@&M@ñÌ?ª×~?­&’?¯yn?âh÷@2S'@!¹?tÝi?Y±v?ê?g¸?üç¯?Õ¡ë?/.? n >­Ê?)–@•9?ðŒs?gïÂ?{õ?žÒ?–x">ôlÛ? +pÅ?tZ¸?tQù?tJd?‚d?Ùb¥?ár&?ìYœ?í£¨?·+?½Q(@-¤H@$‡x?”…?V?óÝL?ó̯?ΰm?È$—?x^/?s«@.Ú@*& ?õ›)?å9Ð@ +;Š@ê@r-?ÿèV@Å@'áà@sI?ö¸?EŒç>òöJ?È#Ÿ?òÝ ?ˆ9ú?YÏã?ƒb ?Šëç?›D»?ž¿í?ÔXt?òo…@ D¨@[[?éÓ?É3Ð@d¹@e?àO?‚ õ?¯«0?èì?ð'?ò@(@R‰?ß }?C?Ñ¢@®‚?ú œ?(š?q¶1>ëö?;âG?¿…î?®€U?Ö ?4!"?¨+?£q¸?8Ä?+@Q?µtÞ?³ŸY?iß–?cÃs?¼•?ÀÇ»?™Ýø?Þ@åÒ@|ã?ºM!?·È?{ú?O—W?¢Ä~?ÁÓ?Ó–F?·È?d§‹?>=+¨=/ï`?Îrb@3<@<”P@;Ð|?ðsf?D7?„D?¶­?œØp?nmÐ?ŽÄ?ÄÔ†?Áï×?ÌNá?¹?ƒ>SV=Ê–[>óãA?ˆ‹?„+?‹(×?ßWà?ÜZ4?¦ i?´CŒ?´ð}?±éZ@ ®œ@ ¸?žt?léê?7ÃÄ?I©?‚£$?±*?Îjê?âë@MÔ@F·:@ý9?°{r?­ím?Çï™?ø®@;t]@(–I?JTÿ?•J@‡ÎÌ@ŠSP@Ì’@þ§>20@>'>=?• º?¡¢n?ê¦ù@¢±?´mR?‘éÚ?šôå?¬z?‘¯×?jsv?©™ ?å`%?£fF>ô_Ü?Vs¾?¯|2?¬w¿?ŸS§?›¦A?¥ Î?¬GŽ?ˆàH?y7É?¾D?¼ÕÑ?h­?,âr?òßÉ@r»?ÿ£Ö?øŽp?v ->¦×? +øÛ?%z{?ÅŸ@6F +@%Õ‡?è0Ø?ÇÒ?#ìg?7+p?è(y?åý?¹çô?­@C&¦@8-C?îƒõ?ÍϾ?lª²?<¤Z?‡†? ÔY?Þ89@ ºU?ïsê?¬ÿ·?äN‡@"ìu?ýlÒ?Cf@?W?f/?f¯?fê?eïg?Ï!D?à$é?‹¹s?huÙ?Ãø?îñh?âö?ÀÊŒ?Áo?ãñ‚@lD@tB@\úÑ>äÀ8?«í?«q[?ªŠ³?/ž?U›?éU?ö:Ò?ç2»?ã÷…?¯»É?šÃü?«e?cŸ?–•?ãLF?ØÀû?±öÝ?µà?ªOÞ?ªAÍ?i‹ ?bÓ™@$!E@8®?Î#?uW?Íû£@ +¥E?¾‚Ù?8Ä?b”?{D?fñò?R™4?>4?í™ ?ê”/?ß±?áý?ôü>;@?œ‡¡?ôíË?¬p?)'?7tÐ?5±7?Í>]»=c÷ò?ŸdF?˜m ?ôd0@™?¿”?¤B‚?µÖÿ?ºœÓ?ž*á?_2±?^Â`?aƒr?’š%@Èç@S€? 8^?u?˜¹S?•íÄ?„D ?o.\?—ª4?Ý??×Øà?ݯy?ÞÎ4?úSñ?äN?ÇÈâ?ÊÆ?Ã2?´uç@%—¿@wX†@?q¸?¥jÍ?˜Ýó?1sa?]õ²?5-±?;Êg?¬x?³œª?…÷Þ?`Îó?‹° ?²iü?£ð?Iî?y°?È·9?ÎI?~PV?Z¸¬?Ðù?÷®•?ÎÎ?µ‰Â?¯\ñ?†[z?‚ è?ËŒu?è;³@.‘@"W0@žW?×X$?œ#5?Y>s?`ßx?cB?B[›?•R?oìà?Yá-?c»¤?ú.@#o\@só?ñEh?èy7?Ø D?×ùí?—>>ä™P>æM[>×¥?Yë™?¡?‹‡‡?3õÕ?Y‡•@æd@ ¿?‡ÙÂ?5æ’?¸@­?Ýó?ˉP?Ö´?Æ‚s?id‡?]DÁ?ÐÊP?Û&k?ËSZ?Ó9U?µñ£?ƒ³Õ?jc?=21?J‚z?]Wo?a»·?Öý??†nT?º¥š?»³·?¯Y˜?©ß*?¥À§? ÚR?DÉÓ?x¸?x”?{qÙ?‡‘s?w¿Ÿ?ŽÝ@Ð@jå?j±D?iØÔ?°e?¿x€?š÷Ë?Zká?XN6?ƒW½?g'?Ó¾$?Í™D?‡ú¨?€e+?§q ?¸à?½9Í?¨2?†!…<ÍÁÊ=õàð?‹»?=+T>¹'>„™X>ò“? ¼Ú?­¡?XJ?e@y—?úµ%?miß?+*c?‹$7?¢æ½?¢$Ú?¤ :?u+°>¥d›?è?öñ÷?ít?ÒÏ??GU?–‰ª?ƒ†">ÞgM>ý^í?‚öº?—BÓ?”y?’?@{$?A ?…³?¡­s??ɦ>âñÉ?Ç?Bª?(=)>äæÇ>çz>™è?,ô?åb?­v?Â?’D>v¥G>b\ç>‡“‰?rr@L@ ?š­?;ï? ôà?>Œó*>Ãu¤?#Ä?#í>ó—»?SÃ?ÌØ%?‚«>b;¥?È?H=? ^>ê%>úÚ>抵>Ér…>¬Í>Ž”&>aŸU>%œû>WÇ>îLÑ>³Âˆ?³<è?ËMr?È‘>ªbj?Ô2@š×l@1ê.?Îöâ<ƒ0'?Dɪ?e >˜B\="ÜÝ>>ü>çÝ>À¸b>Üü†>ÏõÇ>ÈB“>É^>ÊàB>͸ë>ßÔ”>àHT>à°I>á?dòù?£&;?’x“?]®?ERG†3‚?ª5?¤ +Ã;g<³¡ <÷‰= ¹ =L?–ò?\€J>ÿ=fÙ >Ü_P?ž)±?ŠÒ²>é¢?‡†?Ž¢M?ŒÆY>ú^H>êV¬>+Fx=ä÷’>so>«ä->óƒ}?Þƒ?hN?ò¬?IÛT?‰åº?~©7?LÏS?2Ŷ>:Ëõ>xؾ?YÏ=?[Ð>aHB>[Ò”?§p‡?±Áö?˜(º?rä?G†T?*ê¶?«>ìY>Öôð>¶f³?T°?±W?xZô>˜ºÉ?L½?±i³?ÀHÄ?ùê?ãÆ0?7Pí?F›z?ŒøJ?‹)·@¾1@§à?À×>Ó|->üÜ~>ýu?—~~?±t,?;½>ì +T>0¹—>‰\h?×®?7n)?eø?bàa?`«?šñ¸?ô—j?Çnü? +ë^?«Ò?(•Ÿ?(·ï>ìe¼>âñc>‰m>“Þ?iÎ[?lNg?'Ûw?$F?ŽV2?—åv?HSŸ?-gÆ>¾#£>p>À?n¹u?¥vM?NÙB>ì5>ì9>ìË?T”?Ew?Gé—?Jaü?@ÊÁ?«1?®š?%V¶? à‘<©M?[ë?"Ý@ +t@s’?ŠÿÈ?lÃ? ­)>ëÜp?P-?v Á?q÷r?kÛ^?’’“?¢ßÊ?U;W>ëÕ¶>¸ä>“Ù?h>?ëÔµ?°Ê.>Ò¼t?9o…?Ã]~?°VC?>¶?;UU?8¥‚?0¶‚>ác|>ík¼?ÇuA?ˉ?© x?¯¬K?™Æx?—‡>°|ã?b?lB?øœ5@* ?â4Ù?l¥?c÷;?]£l?eõ?l+Ö?¨K¡@Ží@ãF@ªN?ÿ“>ýË_? é?òw?ë?ª’>?©ë?3.¤?8åz?TÅì?Pž@?MÄj?JåÎ?‘H?Ã?ųB?ÖF?sÑÝ?ÂÖ?‚q ?™fù?f ?.„?C5ß?YÒ ?'L>®óÊ>åãÐ?Gwb?ƒ°?Ým¨?ظÓ?Æš?¿S,?Y™y?Y| ?Ŧ? È»?lôA?mÍ”?çÝ?íäQ?ƒ¹Ù?k? ?œ>î À?Œð?ž&™?MÉt?2ž8?¨Å&?Çt÷?¦în?’½?y0I?jw‚?7VÉ?ÐS?8õ]?~Nò?½†æ@È'@ VÙ@Ú@¾ê?š}-?{iˆ>˜2á?šI?ói2?îK?˜¹©?Œs?„"þ?ƒ“x?¡§Ê?¥·?Ø3?ÞÕ÷?{EŠ?rG0?J>ðWH@!¡§@-¤o?Y¾H?âÇ@ _|@"F?§‘l?‡ ?”šÎ?—ôË?4x>ðôn?{ÝG?žd?Ê@É?à?C?´Cç?—ãº?ITH>ñl?6·[?q‹Ô?„9?Ž7?§Tÿ?À"*?¯èŠ?¦ÿ?›–+?„?pm?S¸Ç?–vî?î +Š?ÝôB?µd?µÇŒ?µÓÔ?™U•?l)?7’³?½8?²Ü?r¾X?\X?™éh?›þØ?ÇÛÛ?³Qu>v'?çîÍ?릒?Öß?Ó,?Ù–è?ß c?ä…,?êÜš?¦h5?¡[À?DO›?: Ì?ÐÏ.?Ú¦ü?€%?sÑÍ?å]?‰};?ïj&?öîZ@!@G°@@J@”>Ã…•=eÎæ?¿Y•?ÞX”@5~@‘@„š@|?ù{?îY8?0Ü>ÒÅ?ȳ?ô–r?öCW?û„×@ Ók@¦ì?Ù^R?·Ž +@/fO@UÿÊ?úÙž?¬-a?‘Bð?çB@ø+@OX¤?à0.?u +@ Q @3¢Ö?ŠUæ>CŽh?¼¿É@ Þý?ÁÌ ?—°?¬¾c?·Ï¥?Ä:ß?È–?M| >ŠO¯?§÷@ +>½?®Þ?.ü?È[U@C@ CÔ@~y@q0@%?¨v!? òö?Ò¡@0w@ l?»ƒ?™íL?wÌm?q ?^Sg?®·>r›Â?qªy?ãrÀ?êZ?ðÉ»?åLj?ÏE„?³.A?‘&Q?äu@)aÕ@ ?Üdz?öÂ@Il@k¨@“°?ì! ?„Û?}?—,Ç?œ4A?¸¯ð?£Û5?tÆ2?rJ"?iŸ?‰F? Ã?¹­?˜ªÿ?Ÿu¢?·ð·?ÔÄ<@WF?ü—>ôv@?Í?cjç?E“û>ôQ¹?H?ŠŠx?ƒ/“?]Q€?X/‹?¼s?ã6?t ?fPM>ýFÁ?5TÂ@ÿ@¾ @ ø@n/?ÇUB?Í|@ lg@ bà?œ Ë?™Î?¸–9?¿HS@ @ ³¸?ÂBÔ?Äð@>!@ æœ?…1â?i²Ú@"f@6ª?Z³c>òÝJ?ÐÃ@ir@)ÝÍ?¼0U?NM?—¥`?µ~€?º¢”?»Õ`?u×M>úÅ@?6Áp?{ç$?†•®?‘ý?Êø>@sh?óšO?ñ’Æ?ó£¶?ßs?Ã:·?Œ±#?iñÌ?D¼„?f’Á?˜s3?Š‡ì?\Øw?—Lk@0§/@/û @S@ôB?®H­?­ *?ãüÎ?à½?¢cÝ?ža?´Ó¥?Ç‹é?‚‘?o°÷?—vÝ? t£?;‡?4:?û~J@#Ó”?ãˆ?³]ó?°—P?¦ùð?v „?b]?©é?ßQå?µÒ?n“\?ªó¾?ît)?Ôg³?£h?Ôo¿@a?ú•[?K²€?‹ÐJ@0Õ@%HC?­F$?¢HÛ?m–b?nÜ?—§?ž¥¢?§²%?œ.Ê?È*N?Ë÷@;&Ž@QéX?¾\&?lÊ?›N?­å€?KÒa>óò.?¢º­?ìZe?¿"?§ ?âa@%?íÈ?¯|V?»–Ø?ëÈ ?Íeê?,ËŠ?Qüo@ ä»@ + º?kl?xÜá>ש*>Ã`€?%5b?;ók?–Ž?¨?™­J?–s?Oô±?œì?Fƒv?jWi?7?­Ä¡?¯LÑ?©lü?•¨?ù4?qÐÏ?A12?U;(?i“?}¾ß?éjb?é2\?Ú_&?Þf]@C=@(w?žt|?xÆp?ÍÀé?èºË?¥µ +?h×?DÍ3?0ða?‹«Â?Ò_#?ú‡@x.@r?ÙƒÙ?î³Õ@j¯@- @‡@)¿?££)?È:l@Ca@ì›?©\@?_­E?ˆ‡Å??–â>?«ŸÕ?Æ9P?á3œ?Ûº®?æS?Ê^>æ=œ>å«t?f®?B2?³6c? àC?©åE?¬AW>-=d6È?  W?å[•@Þ=@;Ê?ÝK¶?‘ãø?ÛN?‚â:?q±?*?Ðü?«^??«MP@mÃ@ á¯?”j ?”G?Òª0?ãâ?“c?i?&‹0?c‹ö?…òm?«Þ?®ÇÝ?ªeÀ?®G#?ÎB6?ÉDj?h~?b¼8@2Ö@QÃÖ@‚?æ‘(?ÃÎ(?´7?ä‰@3?ï‚.?ç~w?Ù~ä?¾'?º±@ çý@ ×Î?·¨…?ª-,@'OK@3¢ç?ÿA²?ÓÜÌ?­Ã­?Q Ò?r6µ?¶_?·}?à7Á?ßÌ ?Üf0?×#?Êe?…Ù?wºg?_Š"?©â½?ßRE?½ ¥?rC¯?Já>è ?K¥?£4Ï?¸š‰?ÇÖ?Á\?Æ)[?΃p?ºté?¦…Y?x_g>ùíB?‚N?>([?d²G?ÏTa?å-v?Áù ?´‚þ?ãó@š=@&h@DÓÝ@ÿ{?zÈ?p«»>éI`>¼™«?÷!?»…?þL @"­?ä£ ?žUo?¯ ?ɽœ?³ì?O8à?&UI?•«a?›F†?|ÏV?Z¯î?·ÜÈ?äœr?§™Ë?Ct„?‡qŸ?Îy?»OÝ>Ÿ.n≯?éj@ Àõ@u@s´@î”@ ß?ñ?èä?å¹n@.Á0@<ø?dù¼>þ*‡@ &ã@M¼z@+3[?ù?üA?ê¬ü?ÞÎl@…ä?ûÃ?£ö¤? ?{–T?‡Û?‚Èœ?>0á?"›e?^á?]âÑ?¾äE?¾‚¦?ã4†@ü?æ­?³—?·TÀ?›eM? Py?eoQ?y +~?™"5? ¦ø?téT?ESŒ?X’?è¿?Ëu@2@ѧ?åÑv?ÃJU?Øw:?åùÀ?Ë•?¿Î?Òœ@k­@À?e7Ä?6"?)ÅÛ?l®?“®?àûæ?¿sk?¢j?£ÙØ?™î?’IÂ?« ?ºÔÐ?Êø?Õá ?ò¥i@n»@æ~?Ö@?Ö%2?µ“§?£¥A?‘Ÿ¯?‘'U?¯ÛM?Ö˜í?¹«>Àè>§Û?sé?`ˆ›?8Úo?A"?eáD?¥…?ÆqA?ÿ{.?àû‡?¡"ï?´Š?”»0?¥VÝ?¦vU?¢äÂ?Knþ>ýä?$Ð]?7*Ó?xÚ@’z@û?Õ·>ÿ›?M:'?dV0?$^1?j?MB>ÄOT?±|?]»Ï?AC¶>Þl"? ªú?œ}¼?–!E?Ç~¼?Á;à?ø‚>á1&>˜;dÚâ?öFº@%‡b? —>ä?!¸÷?=½?„O?×T…?¨•g? š?í5>ƒX>…a>é¡?´û?©ú?r·?k¯u?R.È=´uÅ>RVû>ï%°>¼ø•>zÀ¦?}†b?s Ø?l(:?X ]?jñ?&ãr?ŸË?­$Ï?$\ñ;€û>¨O(>ý;¼?E²?KVý?5™>ûB°>Å>±Ä +;¸À9äk>Ãq¼>çÞ?â¯>––@¤ß@°µÔ?ð)¦?œó: ­>ä¾Í>ær/>¼­<Î ?“ïq?”òQ?£$>ðÖð>oo¦=ÚD½=í6>!4Ç>ßÏu>à?µ>ÕŒW>Ö„k>Þªé>áåK>ßFz>݇ì>á¹>åsa>ÞÐe;7>¼Ù>å¹Å>翱>éÌí?Z‘©?¦²?‡í>þî>âiì:‚’X>ÍòX>Ñ°>Ï´\>ͨâ>ð¼Ê?óû?`†ì?“»U?i+?¶±?0µv?R›²?WÈ?Û”?‚™x?N<È?LU>ÀIï>©Oû>'0Î>P‚>»ˆô>ëÏ?—Ê-?ÒáÆ?yúw>²æ»>Ñ6®>ë œ>¨Ÿ„=²:>ëàr?”e?4pÂ?*; ?pœ?|*Ü?™Œ?…!s?wØS?lR{?8ˆ?"—‚?4I+?C¸ö?ZÓ1?sƺ?c«¥?KW¹?†4?±l ?˜!?l™#?Jë>¬!k?üÓ?Ò\a?Çkg?ÅC>úÞ­:§9?VÉ‘?f`ÿ?©š?±sª>Œ ¨:‚ô:ä?å?cüw?gÐ]?l‡"?ºu?¨µ[?ƒÝÄ?7„y?™>Ü?ó?¸YQ>ìi†? ÷e?I§?BcÞ?ˆ’?”F?lM©?lI?<_1?8´Ù?Fd?(ÁÒ>›¼>th>Ï=˜>Ñ#f?–<é?È7s?¼ÕU?¥yþ?v¤i?AeW?R">ëÿ[>ÐXº>´Pø?öY?d2?È\?¹Ú¶?—F>˜>hkc?kÛX?sB?¯ŽA?°±??°Ý?°Ó°?¯+Å?¬‹~?{w¯?kÅ1?kÄú?kÀí?0Z,?¨?€‚?—¯?³Q?ƒ3–?fýÂ?`ö¸?šSq?À!.? b?€}m?•ëÊ?¸z?§Í(?kµ?OKÊ=o“Ü?¹ÝN?½:?jŸx?PÇ>«>‘g>Àf>¸Ÿ]?ÍL?9i)?Ñ)@­0?°V÷?kúH?8?"‚?9ñø?rð? ½[> }x?sU.?¨…@ “p?ûÜ ?£sl?”m÷?0?!±R>ì^Þ>ìhL?ér? ‘?g›X?l‰÷? }~?0-?°(?Ë»? ’Þ>uM,?¥yw?ð‹?ÊCó?¨Ñ?ž+?›Ü ?•—u?‰}à?`Ç?–â?E¶?—Þe?€“y>íW>õ°Û?è?3÷?ÎÏä?¼ÒB?oÒÚ?rxI?²LF?²´ß?pµ(?mä?!N>íþ?¢?²“à? ü¸?™*4?“(?–Ï~?`Œ¯?BÛ)?â>î…¢?ÅZ? +/–?(i1?<´ï?’„?Ò‡O?Æ5û?³@ +?’´š?BàÂ?Êø>Ê;>¹ä.?oZJ?¬óC@1Û³@#¹?ª.ä?›T>ï°½>×n +=¢ºá?³Éá?µ ]?îÎ?é–?‰a¾?°> ñ«=Šb @ ´ @4\¤?¹œˆ?– œ?y‰Y?p¶¨?R‰[?E@ƒ? +e?´ ?Ó->@ÂF?¿÷Ë?˜bH?¤Yù?¡j?“eÑ?ŽŒÃ?—k?¢®Ü?ùº¸@&"ô?ô›.?TÍ?Ÿ<Ó?µj·?[¥=3 ?ß?±½?Ÿ¿?r;,?LW?' ?J÷ù?©b?ÈC‚@ àÝ?âY¸?Ây?t'Ó@øŠ?ï|¯?³G?k—”>,¹?gÏ?„¡?ÕWŽ?Í@?s=)?sHê?sT?€H^?à`ê?ày­?¶¡?µœV?…‘\?„o–?’'!?ŒÝÉ@¨S@Ée@4†A@6è0?úÑ?ö6?ÂÍ ?Ã?ž>Í-?5-Ú?K6¥?qn?‚T¯?žG™?¤gÁ?š¾8? îé?±a?1N@@$é1?ºÙt?žÓU? ÈÞ?¢Å?¤»@?¦¶§?×ñq?çÛµ?¥ùÑ?Œ'=?œ.?¨ÎÞ?· 1?¸º?·¢²?· x?“]¸?Œ¹õ>²KÛ@‹•@aæ›@@?ã@,^{?Íe?hµ?‡â?ˆfÃ?‡B?zº?³†õ?Ó©˜?«{å?’6ž@éí@A‰Ó?ý—…?¨˜¶?Ž^p?um?6p?5…?Ÿo?·Ï¥@B/{@‰Àª@-/4?³ú&?”S·?u ¿>é'>5m>Ìg+?¸Ë}@‰ª?¹$=?š?À>ôõË?”ªë?ý§Ò?ÕŠ½?¡ûA?¶«3?Ò£Î?äè?ôק?ÛIž?·›W@G@NO@0S>?ô¸ç@ˆd@y4?¼I%>ÜÆ?>ó?çsÕ@ u@2'.@´k?§¬óâË?ËÌ?”Cn?£pD?à„?Þ÷?Œâ+?’t”?Â…¢?Ìa§?ÖO?Ñ +?“×Í?’S­?ó"c?òÜ*>ü=>ó'¬?Ð(*?ÌÌ­?·œ?åô?hòµ?yV¸? v>òÄM?€J‰?®ê?¼»?Ç»?r;é?DûY?Ž¯0?™w5?—¦J?› [?ôhž@ Õ?´ëx?sCÐ?´ÿ%?ÒT?Û*)?ê1¹?ð®?ñTØ@}@4m?úÖ‚?Û]K?éç@3?ón„?ÚY?ú4½@¬â@ :6?ú@?ëï?°´Î?»ß?þ ²?Ì À>ð‘9??4?î=Û?æîç?¹ G?Ä;¸?çñ?ÝÔÏ?•ÁÛ?¡c=@9@r€?ŸŽs?“Õó??Ø?AÆö?kS=?ou[?‚Ëf?ª?3,Ú? “.?”í¼?³HY?ÙƒÑ?è4@ +å¯@oì?Ñ×S?žà4?kGþ?,ÉÔ?‘óÃ?Ô?³?ÎI8?Ç“=@µ’@`˜@V)ß@)ûó@ ¶J?í¯U?ÛGû?xWg?ŠµÛ?Ôå&?Èdˆ?mZÒ?m¬C?Ëz?Ï´¥?ë}Æ?í@ }@#&í?°\U?†4?lpM?jÕ´?Nš>ìj?†áì?¼+n?í¯@?)?ê÷s?äl!?öIJ@Ð?æq±?´¼µ?ÂvÚ?Æ33?´†?x2?l2f?k8P?mKq?ž(¬?–oC>ý©H>êØL?¨‘y?±ýÞ?Xk7?=‰I?_°?je&?w¸?wÂT?k~?iïÑ?©öË?ãÚÕ?ír?ùî™?Åì½?=WÂ?5§@ÙI@ +)*?ÕY¯?×·$?£?§) ?­>éû)@E>r@WzV@ +".?è v@lJ@|a?çi?ª‘?½Í®?Ó³@_é@fs@7l\?!?! 2?µYâ?°¥‚>ø€)?'«ã?µ?zä?¥vJ?Í'R?ôú½?õÀ.@ {@BÑ?œw‡>ê`?¨/ @ ¿n?Ý„?„Á‡?†08?náÒ?KÙ>®ï%>¹Âµ@¢Í@$&9?°«v?«Ù@¡@j?´Ã¸?’çÇ?¨×Î?¾Ë?¹¡C?Ÿp¡?ž—%?«‘?Ãä@ 9ß@š?«Py?ªö˜?¡´‚?´ì2@!¸@ Ð?ÁqM?¹§6?Ýoq?ú[W?ºqÈ?cqî?dO¨?lˆ ?†¸‚?ªU?µÌµ@¹_?þf…?Ÿy—?”§Å@¬g@ §@2@E¾m?ÅÍë?(.?´4@ †@*d?ǘÉ?̬„?­uÆ?¿«@ G@ Âç?´Â?¨Ðý?ñÓU@:µ?±§Â?U(š?€@Î?“ÊÚ?Fš?·œ+?ÍW|?ßq?ß‚M?¯Ì?´D‡?‹™ï?sßø?ƒvp?†!w?´Û–?ß>8?ÛFÈ?ÜX%?¸ F>ÞÔ +?˜@J=@ ÎH?á«á?ÞXˆ?•œ?‚„F?œN°?¦pë?¤ ¯?šDq?…Wã?;±?DW²?ÜL?Æy?»ŸŒ?ÇT?“÷Ö?`­°?“¦½?Ã.@úm@IcÊ@°?)^Û?4­]?[ús?[Þi?lEW?]£„?ñ˜þ@s×?Þ³?˜]†?Äœ†@«ñ@Wa?‚æ£?nðÞ@Ì>@Ï?¸l;?‰ ?M;'>Ú®?M˸?í'ð?õç?ÙÁg?Ù¡}?­`¿?±Ò]?üë@<á@ 5v@5t{@)(?êÛW?ïÉO<´DÒ=Â?¼?Ãï)?ÒYÕ?«pÒ?½±N?MûG?[æ“?ºb¤?ó² ?Û«–?9Ë?x='?×%î?ÝÌ?nc?UŽÓ?2Pg?+ y?Ïz‘@?]@>‰4@õr?ÿ­Ä?tÃ?yÙ?ƒ(?‰g©?³?S?Õ•?ã$@Žõ@B½?« "?±b¿?êFQ?îHì?ˆ]??IË?’°¬?Ö‚ï?¸m\>Ö¸5>ÖÐ5?ž[Ë?¡G0?Êez?×Oô?Òa¸?Öb??é@ê?õÃ?X7H?X`Ê?T?/N?ŠÙ‚?¢×%?I‚Ê>ÙŠ0?4q9?ÈÊ?•Ìf?ÕÁ\?çuÈ?±¶Ô?¦I×>IÀç> ¤h?ãÜ?0Ïë?E¯?]„?]kn?]ºB?@ °>Þw>ëê?- J?Hœ?Ž‹D?£7?!Ï¢>ýX€?J(d?Y«Í?®î?èÉA?œ6÷?)Xm?U™n?ÔZ?_Òö>æ9M?H°?›¬_?v27? Ý”>è>éÐC?$áš?¡‹Å?„‹=^ô>Œ¸Ö?-R:>ø¨E>t™¬>„\ÿ=ðÃ^>ÝöŠ?´§)?{p€>\~>¨¦8>õý€>‰¶ó>ä– ?hT¾?*ä„>õ¨‡>3{w>zò>®Ä–>úá>¡º >£Ð<ÿ„/>?=qˆ;5Sô)!>í÷½;ºBv>¬¢Œ>áÛt>S4:àQ >”R³?cWI?Gâ??Qó°?aÙ*?@Ÿ>å•Y>om1=¥æÊ=qz=÷Ä>Ñ}>ÑC>ßmz?Zdq?Ywõ?X‹Q?W“©>s’§=˜ï¨>3”>¡Û?®¹?Q7>? ›‹?ûçm?ÀÇè>lp +>“Î ?~Á?BL? F?‹M£?r²Ÿ?iG³?FÜa?@\®?L·‘?eG?=nö? `À>´ø>Q4³>pñ>>yÀ>—žQ>ëç? +÷Ÿ?rå?_”n= +$/?Bl’?;J“? ¶V?ç?˜T?M;>Ê&¢>¤Î´>QŸ>*>£U.>ì‹È?p’?±n’?’r1?X:”?“æ³?Ü8°?°áá>ìœN? ¸‹?\)à?D¨ÿ<‚Õì<Ž;$KK;‡›t?f˜õ?m¬ç>ýí€>áÛ?“­?¢ê¼>ºþ3=à3T?-8 +?l?<‹?#âa?­‡y?ðî5?±œÃ?ui;?nÊ—?Hi?QÛ?lSk?€/Â?šp"?’Eà?l<¯?c¶À?,ù?1˜æ>ê†3>àht>ÖÖÔ>ÍB£?UA?Q?HÓL?IMh@Þ‹@:+€?Êüà?,~?E³¨?à†>ŸS}=¯¬ì?,ˆM?°ã?¾Ã?Ùè$?Ì°œ?©ð? ;n?ofT?kÚ„?kºå?US‘<í0f=áZ—?çQe?æ•?­AÖ?©Ê?§Ã?¦t«?wT>ë¥i>¶à>ºK}?uŸ?>wË?’ðW?­/?Á ?ߧW?™°ë>ë t?ˆ²@Úõ?Ü~Ÿ?k£À?PÜÇ>Åx<>ÏÕ€??»…?Uœ?ìÝ%?ñ”?ˆ#º?…Ã?º¦?½4Ü?79>š(w?S£»?y‹&?fŽg?cªA?™j³?¯œÕ?ÒÊ\?ëì{?¯ú?f©?‹th?¬Ü¨?ŠY?-ßÏ?0$4?Ur?0Ã?RÔØ?@éâ>ì;‹? +P?µŸ?²Jy?çbr?ãIñ>¨ÕÚ>…óF?ƒYú?’Êí?Hfå?-µ%?cD?Ø?¼J?Öãð?›šà?lÛ@?—¥?±±Õ?›Ö?ƒ’£?PÏø? +ű?Fî?!v}?2h°?mJ·?è@Y@’K”@€Âm?²“?±É\?².Š?²Ÿ?­Ru?ªÔ¢?^”¥?ZÚŽ?€>]?ƒƒŠ?7ï?5mÛ?¢É?o:?žC?­r?~–?¬?q z?n{Y?‰5s?–\»?§Ó ?³«?™gç?†[5?KœŠ>îóX?÷[?Ð ?@à?„•z?vž(?[ž?h_I?|Æõ?`Öý?Ç!>Óg—;Ǭ>í,?pI¨?~R0?·?Š?¸½ù?­~?«î?JR?B•«?s]l?…iË?Šr?Š*[?uÜç?pª>á½®>Ä7Å?té;?s"?Óøq?ðëW?„5Å?=Œ!?¼){?ê(Ë?»‰U?¡Ýþ?ŸR¸?˜4b?º]G?ØÀÙ?îŒ@?ú¤µ?Ñ6?¯±;?˜î?z°?T’>W¦í>ùçÙ?ZŽ?ªÒV?„Î?«ï?² /@/Ÿä@&n?RÆ-?‰ ?Ü»?Ï¿Ï?Ÿ‘?ˆR8?ôÿ>ýÒ>òèç?ÛI?î?‚|Ñ?s ?kä?K8r?Yå?•¯Ï?Ÿ6?ÃMÄ?¿?­x[?·Þ¹@½û@H?´ë9?´=t?sË^?8Š?¹ÐÅ?º +k>(é¨>Pù? ßs?žW ?õÌô?ð«4?å?>ôŸ?›@‡?Ÿq³?Èmë?Ã;Ã?–3K?›-¢@"ê@/?Ø:q?¼0Ø?“-Æ?ŒXÓ?Ð6H?ÏwÎ?­ðI?­)è?Ó’?á¤d>ÚÂp=bFÙ?Ã>?ô±¼@(Ð@2îa?®ÍÎ?tǯ?Y/^?H*n?Š ª?§Óõ@ãT@,]?ó:/?ÆÅ?¯ê_?¢.w?˜Iæ?š/þ?³r¨?ÂFJ?œÅ)?q§@†Ÿ@, Ç?ÝÖ{?“Õ1?“9?‹P?ž]þ?¯x¿?¶ë ?·çÕ?[´?±?ýu?Òx>§ëñ>+u =­¡,?Hæm?¦¾È?ü5Ê@%¯?÷'~?£¿?MÏ7>ôÚ¹?_©?Ÿå0?™f?Ž“?­3?ÃM‚?Ãx?ÖË?Îáô?¼à›?žr ?v$Û?Ì í@'k@$+@@4Wð@ ;µ?–»k?ò@>oÝ@,¯@Ú3@új@ºE@Å2?ØÊ?åô@ÿ~?çY?)¾W?t!Ž?ïÿR?µ“8=µ)û? í|?í¤s?ýðZ@u‹@E ?ñ„y?ßMò?ªZ¸?’•Ù?? £ß>Å||?.¥â?ï½?â®–?½Õ?Åíù@€@7%?å”f?ß]Ë?àë ?ÞÞ?-P?(3¦@&æ7@,`Ô?¿"?¶‰G?ï#É?ì½?Óø>ò¥‰?ÍM`?ÖÎ?’3z?Ÿ?½ÙC?¿«¡?¶+S?µ¬Ó?5°{? ?š«9?ºûn?äW?ûΙ@¬Å@'ƒÐ?ëˆ?q«u?žðq?·'µ?Ýþý?ùD?£¶?J¶½?à!¿@!R$@+¼@ êd@’K?ó—˜?Ý77?´Ÿê?ÿGÉ@AåÁ@1”@ º?ÞÄ?>Ä?èâ?pxS?’Õ£?ë:?éDÌ?ð N?ì×å?ÌÈâ?Ëxs@Áê@ ‹@²÷@?])Ÿ?HLë?KW?Sî‘?¡»7?¬+ÿ?Ú›8?ì… ?’Rƒ?uÑ?©j?¼¹ª@ÓŠ@2úœ?Ň¯?RÄ?IÍO?3;Î?p&C?›fI?Œ–?n?wíø?€žë?‘E(?µ#n?‘Pb>ý9?=/ü?©õª?ª1ð?Á+Ò?é@ƒÑ»@méÖ?±Ï,?±Â +?ë)?ìà@"Ïä@0—ø?ó˜8?â ?KU*>í"?ŠÑ?¤º?ÉE?Þ:z?ʤ½?Ë U?ö”=@ç,@D@5&@=Ë?36?„Æ@oÇ@¡Ü?ê¨î?Ó²^>ü¾U? ‰?ˆ‰?…Wk?Eì#?;ì?¿’Ø?ÏJƒ?Su?Q?j‰Õ?€º”?™Ã°?«ëÖ?X=>ï%?>t?‡=$?‚ÒÀ?~4?'óûp?ÛÓ@Èq@ÑÉ@ < @!Â@%{!@"®é@&Ö&?ä±q?Ý*?‡ ?ÿp¸?Û^2?eå£?t}?ÜSê?àÓ?¦)>îþX?Ö]ø?ùÇó?5N®>›Öà?•H?ÇêÝ?нa?äÓ?ÄRì?˜F?¢h?ª¦-?½4|@Ü@ð©?ï${?ඎ@,÷I@:ú?à•`?¦½Ñ?€»?c’‡?e¢u?cxl?8´Ç?¼Å?Z—?Ñ&¥?Äjƒ?§uZ?½ˆ@s£?þÝ@@´K?bV‚? W?½ªx?éZ,?Ó¤œ?Öÿ?ÌSí? Ç™?ƒô”>á|O?Éë?áFD?á7¶?£«?>g?Àz@?àÒ?žž)?]Õ8?AÅ´?>qž?Wm>t%>J]j?c:)?nªN>€úä>¿ùÛ?¹t?ÅŸ?f½?”Â’?²¯[?Îì¼?®*½?_Ù”?™ ?ð8©?ß©#@ ±à@µ@?·d‚?·ðž?(È> È?MúP?¦bO?¦Qš?¦9ª?¡ÙÃ?‘næ?’Ä~?ìé’@d?ˆK¸?kRÃ?èî¹@ÖK?´ú‚?rãI?ö‡›@b,@B€?F˜?‘Ô?[ãÓ?[dž@è¼@mh?æ ?Î&Ú?¸•‘?‹5a?±¹S@F@ çL?ÓÙs?Ù0[@5—É@;ó|?÷}?¶·?­Çª?›°î?½*?£`ë?¨£?Ù£9?Ù†‹?¨¶š?£?ÔÉÚ?ïî–?鶴?çxÁ?É â?Hb…?[„Ž? Æx?‘þé?*½*?0Æ ?–{,?³n?ãîç@;Þ@ûå?ÖØ?Ù{€?¡Ó.?¡ Î?Ë¥ƒ?×Tq?ú>¸@2?àŸ?Öc>ßjˆ>ðáõ?ÖC?Éi`?Ö¢ë?Žï©?kT??”Uö?ª[¥?¤Gá? †j?œ@/h4@*³µ?œ™Y?]Љ?ד”@ +Š×?³"×<‚’Ï=Y°Í>8s¬>¥f+?7U?$qÍ?7iE?U‹Û?¦¦@o)?ûÎÜ?¥sÉ?«™?"Ü?bµ?Š6 +?‹=à?}0)?–}L?”Sü?jš¹?‡íØ?µ?©4?pJD?U–j?—Ni?É…?¤4>ùË?Dâ?î¡?á…?Â)L?Ï»3?w>ó¯Ñ?q¶o?Ök×?·^z>Ö¤°>ÖÀ#?žò@?¡:Ë?À û?Ï?šßB?[›c?Œ·Y?¼`B?Íàþ?Û¹ò?Â?‹Ç/?{-u?˜+?¢Ò?Hä>Ù…|?(þó?‡ G?¾†?;©?V+@Þ@Pp?i'3?'î¾?z¥?‹Ô?Y­ß?=¦È?]ž?gÐB? ­=M[ö>I{Ë?7’«?,Û?J™)?0½?{©?kj¤?ž9>ü`^>ÈÕL>ò£h?#A.?6#F?t>åBé>çYÄ>æ[\?x›‘?Ùàª?¥£m?+»á?0æœ?6? ÖF?7ñ?2ùÖ?N?\ ¾>¨jS>Á§>Bó>MÙŠ>Èé–?­ý?tS?!YÃ=™n\>f-™>o4V>öë>Ž+q>ì->û>ü i>Ð{•>¨ŒÖ<ÁO³>Uã?°ê?W¯W?ôE>•Ý@C£_@œÌ®?ä +Ú?sƨ>Û.h>¹¿=im$=Y>>È{W>ÝÛ©?1(Ê?ZS´?€`»?£ Ú?’Áþ<«y¬ÅËÉ>áÜO?:fw?b–6?ë<6ÐP=çr%>Ýȉ>Ô÷ÿ=8J=Ƈ)>åœW>ÚÄ@>Òt»?öý?N½€? ¡L=cCà> ö¦?WR?Ÿí?ðÒ?CÓ?†£Ö?Œ¦Š>Žóâ>©úQ?‘?°u(@Ø?¿b<ØÀ>È>Uq5?Cˆ?FÑ›?Ið¢?MÜ>Ðc>»²Ï?;>?ö?¥î?+&¼>ßj²>tŒ]>¬œ°>ëÕ€>ëäŒ>ëñÖ>ÊšÑ>†Y>ÊD^?=é?E¤Í?À]Ç?¾ÞS>%ïg>²º;eóÐ=ê.=÷X€>ñ*?[V>Õ¶Å>¾0y?r°_?§Ô2?\f>ìœ +?9xN?…é?UqÐ? §Ÿ>Ťc=>«=õBw>ì  ?,>?°ý–?©uW?l›Ò?hQ='ù^=,DT@lÔ@&¶@Ь?öí´?Ž}'?l|>ª=âñ?§5?üÕ`?í>ì[Ø>Á3ó>§äå?ž?lJ¡?H¥k?©§?M´;?•6Ð?‡w)?/?+€??7e?C–÷?Ž¥?fÇ?/Üç?"¿–?‚7·?)Û@;GÀ@Np¦?KÒÝ=Ïï?a£°?•€ª?3RÄ>ëÓB?}:?¶_¿?qæ&>ëÁS>îh+>í²D?pvl?ë²¢?Êüñ?k«?<>ñ<}>X¾q>™ÿh?~S¬?€À?' ð?*Ø3>-íµ=þ Í>šû>¡…M?'ø*?A??dÄà?‚FF?ŒÂŠ?:R?FP>ë†P?¯c?Õ6ž?¾A%?Ž&?iW½?ÞÅ?@”U?†¹Õ?„}ñ?–D˜?›åd?Ù6¥?Ò D?ËD‰?ÏqH?Ëž/?Ñ(Á?ÄO/?¼ZÛ?'H0>ðã?Ná?kÄA?‚4>ýÎŽ?¥£?ã>Ô?ªf˜?z)T?Žƒó? *?­A?Åž?˜ô7?Lâ?SFÕ?´u?¹Þö?ì-b?ß²—?œ ¿?¡«&?6 Ê?2¢ð?0[?5)š?8Ø?;?=×>ì’è?mÀ?‹¨î?b.°?L¾o?u¯E?ŠlÄ?•ó0?pƒ?† ?^¦%?Ÿ™B?Ü@ã?´Øž?h9?Š„c?±ñ??Ãn?ët?¹J®=çg}>-é?}=c?t’û? Žé? ?°Þ??Ã?Lžò?Hùj>÷‡q>î ?¶¿?Ë:è?ÓºÔ?ÒŒð?»KÃ?°Å?†:?nzÝ?žPÅ?²ó—?ŸjÅ?‰Áß?Iª_?;€?PþØ?„Á¯?ž6?½t??‹¿@?š?Wh1?·R/?¶ÿ*?µ—v?£ñ?oBŽ?‚‹?°Þï?œÒ”?Ji?2I\?³ï?³Xù?§wP?¨_?À»±?»Ay? ¼Í?ŸŒÃ?rO¾?put>¦Ðl>ƒu?×®î?ð²‰?pô?‡¢©?l³ñ?Ts€?„”?Œ2ç?Cª?/ËR?¥[·?ÊH¼?†€?JÔ)?ц@ +kˆ?Ä>¦?„\ú?¿|‰?ñ¯Ü@ $1@"d?É¥û?h«7?ÆÔ4@5N?ÍAb?["?‡Bš?µY4?ÅÊ-?ÍSz?ÁçN?µáf?›âº?_œ?€î¦?˜ê?Ža4?iƒÄ?S€^?*j½?-@??I) ?Lõã?>â0?7·‹?0ŠÏ?^ \?é)õ?Û˜Ð?†©A?‰¬ ?³¿¤?®3x?sÜ?Ÿ…@müB@^±ù?î?ç‡5?šéý?–0¼?¶äø?³x“?€4Õ?† >(¤z>C©.?Ú¢B?ÙÎk@?Õ@ #@?z°„?fˆM?ÔÏ6?Ý?ï|Ì?÷8?­G?§Ç©@@~¾@Q8?’?e²?‚±?¿ä?¦o·?·GÛ?ƒ'Q?{!¶?é |?ÿëª@ ¨ü@ +nh@h›@_Œ?Ñ%?¿eÙ?Ö\¸?ãRæ?òsK?ôÊ%@aq@ ó?‡šp?>ô’?š^ß?§ôu?MÖ¼?“S?t§ ?ˆÊ›?Ìؾ?êÃX?ø+0?ú¸?{‡?Ùè?»¿?ôƒ€?ÇŽ-?®ŸG?ÎI‘?Ú@÷?‹;??Ùâ?7§?.==?Sö?~â‚?ðgZ@Î@þ@ý?±ÛÀ?-Â?ãP? ?‚º?¦ë…@w'@8Ö?ãÏH?5½ +?ªÒM?÷f+?ÕÆ:?·`ñ?{Ø8?%à?3a?Q+ +?«Uû?æÿÍ?×ðÄ?Õs@öP@ Hø@—Ì@#Í´@'©Õ@(ñ@ðb@ +­˜?êEq?¼$’?¤»¼?LSu?E >?@§?wXd?Â5å?§Æn?sÑB?ž·©?ó¾?ãuÉ?¶Áš?½aG?Éç?´oœ?{?«Í@<Ï%@$¢J?”ôa?¦’:?é¾Ê?ü:ð@ €¦@ +)æ?Åù,?À³x?«è¼?«Æa?|Ù/?„¾Ÿ@5ؾ@4²ƒ@í@²!@¸§@Ò¤?Å7h?Ƴ™?¥b9?Ÿ[´?éˆ?ò9û?£Yn?š˜º?›>ªá£?ƒ,Ü?Šå¬?×>ñÌ4?|;?‰Ñ ?vÎØ?q½?ÈñÇ?ìËÔ?‰éÁ?7‘þ?P?ìõ9?é`s?ðW?Òeï?LH?˜B‰@3ch@(Np?ï² +?ñ[B@?@mr?ŠqP?Ë>ij­>ð?ŽŒê?‰H? \Ÿ>ðÉ?øïv@ „±?廉?âG@n¾@ +Md@fû@‚-?Çoš?’R²?Žé?‹}?˜p?Ÿä?«D»?¿ü‰?΀•?îN?ÙzH?©ó5?€A>„’?PO@+”Ú@ Ê\@"¸V@2È?–’Œ?šƒ?ب¦?ÜQ?a$"?Z ?t±þ?pžC@—·@:,?Êù?±"-?ؤ?ìÉ?ŽG$?&^³?ãë@0Ò»@&·l@&V@ \Ú?¤CG?šf€?tÛ?„ ‘?°»Ô?ºRí?Ô¿›?Ö0 @'Ì€@.Î?™C˜?•VÀ?­Ÿ3?¯Þ? {˜?•îÇ?àŠ0?âµQ?—¢^?me|?Ü^¤@ ¦~?î3]?ÑB?ÓÓÔ?Òé™?è®ï@¾8?êr ?=€ô?`;a?®×–?«;Þ?~î{?n˜¼?hÑN?h¾)?©&å?®p®?ÝÖ€?èp?¾P™?®6 ?Iúl>èu?ÒS¬@2`i@ ÷?ª=?Á\°?éLŸ?ëºT?ç~°?å¨w?æ!W?ñ'ê?Èóà?ÍCB?Ø ?ÏNß?±i¶?­"?Ñ5?fy?.Êü?1×h? Ç?ÚXJ?úã”@Ô£?úׯ@2W@¯å?‚®?‚+’?¬?‘?¬.¡@ »Ê@®"?”y÷?Ës?=Æ? ®ß?á›@šÎ@×?ä¿'?ÄŒ>ä–?ûï?ear?È}?½¯h?É‹‡?öÙ?û‰Î?¯ï?½€@º1@F©?³Y®?uPÔ?’]×?¨¢?‹#P?Lk?bd?œ(1?§s?ž¶ç?‘šé@Y@?Ê@8ïÌ@D é?ƒáÿ>â€?ÉÇm@ 7š?òºÚ?Çßi?׸?õöÔ?Ðy?-ýN?)C?Þ¤²?áÈ?Ÿ J?‘#ó?cšü?tºÆ?o:?qÓŸ?m¾6?@Ld?ccÝ?¨5?œ3†?_÷C?]’o?&=±??´€ý?ÅÆÐ?n¦?A¶?`Á/?gôÊ?¸Ýî@{À?í?Áz­?É؉?¾Íæ?Ä"Y?¯.?hK?]¶í?TÆã?‘—?¦Q?å!@£@Êm?ãú?ÏõK?‚‹-?yöF?³ž;?¬~Æ?ÏÞK?à}¼?íß/?æ·Œ?ç@¨°?ôn?8Y‹?Eˆa?i _?^F¤@,[Ÿ@<Õ(?覉?¤u"?î5@¬œ?çÑW?•¯q?œ)?£þe?¤#!?µ.?Ì|‰?¿·y?¹4ô?¤ú?¥Ah?±í?™e÷?¥Æ‹?Ù±?Ùo¤?§}v?¢î„?².¡?½p?§­7?’¯Ž?p¯>Ç…Å>Ø#C>ôn?“–?ã:?Úý}?¬ó2?–l×?âg?ˆ,{?‚Îù?¡ò²?ªy4@=Å{@.ê?¼4ˆ?£®¶?¯„Á?»UØ?Éa?Ôà¾?Íšð?”õÉ?ˆïÂ?ÎÆ?Ö„y?p5ƒ?m7?†I?Ö?[?Ö-®?Ó¢M?Í:™?Œ¬`?±…?.ße>ÕÙ¨?âƒõ@Mý^@,ÈÝ?S…ˆ?Tì?Ð{¹?±ò¸?¸_?·xP?’^?k£z?§íÈ@îý?å–g>a¡é>º¨œ?^È>?Pv¼?ÆÛè@Ñ„?²àý>Шî?1bR?Æ)%?¹¿?Ôþ´?Õs£?„.K?U€¨?\ýÙ?YúN?5\¬>Õª}?C?èšÿª">)5Ê>˜o>Í >B«v?Ÿ0“?¡)¡?¡B¾?¡]?üTd@@v@»?ꯦ?æTõ@ +mR@ú_?²#?Ç\ß?®‡á?¢Ät?F¸>Ùs·?Ç^?YòU?ON"?’¯>òÁù;]Hx>'H±? a?“~1?‰#I?ŒÞO?;>Ýí?{È_?Ý‚ÿ?˜Yi>ÜÚ?_Kk?^rí?cvT?†2×?ÖüÊ?á*M?«ˆ?“zŽ>šÀ>ÍŠ?ì ?Ñ+?[Ì?+8/?]›¢?Œä?À%Æ?œêR?'çq?6Í?j0Ã?†zX?°Lh?Œm?$ô(?Ù>†ce>•T€>ïí>> åÇ>±(V?s%;?6¶Å>¨•ú>ø>9^ý>Ä=­>!†á8@>¹’ž>ü~ˆ>P°>V.*<-­Î<¦#=媙=W9Å;Š±p>ãê +?Ìêv?HÏ™=œ„ø<ú‘€?Ô7]?óšk@Â?WUt>èôX?åÞ?V]8?UR>ÞßJ>ÝÈD>èâ°>é´Q>sIg>• 2?¨kÖ?¨jF?d[?aZv? Š©>æÝ>WyB>½F>ä J?‹?Õç?ÓÔÅ?Ó˜>åÍ?ˆä­?ŸÜ>?„ý?fº­?*7>©ÿ6?š9?Œ÷¤>è#ï>çǽ>‘ÆÊ>œYÏ=„b= nš=ûÐÀ?I·?¨Wé?@ú:=Ó¦ÿ>š¤>„U«>,Ôl>Š.U?Ö?~ yë1>럭>ë·!>ëÆð>ëÙü>ëë=>ëø†>ßÚM>¹›È?w¨?«óv?š|ù?è?‹+>¥a¶>¤L9"WP920h>â”)>ì}M?Góû?Vm}>œªN>I)?k ?PF8?)(ý? +Œ³?¢ ;?ì™Y?êÅR?꼨?ìt?ìB?ÛÄ;š @> +îV?*G?B. ?âÞt?Íxá>ЄX>à +>Û!6>÷iè?–™÷?›·H?%ðV?©?ú\?¨Že?¸ÇP?Ä^?Q@>ìTŠ?6YH?S“™?YÎ~?l>€?yu;?t¼Ñ?d3S?qPŒ?P„Æ?°?= >ì 1? r?±±?¬d?¡n“?¦4Ò?/º?N@9M°@AÙ`?BÜû>ëÐ-?ëþ@ ÌP?s}¿>ÿÿç?­HX?昪?ƒq>í¾Í?3Ÿ.?kš_?8Ž?%ð?Õø>þ ?].÷?ÎÒî?ɧt?Ä|?©åú?qž?Ô=ï;@>bã}>, g>§Ùc>Á,N?+?£?5Òc?Zk}?kgQ?DÊd?+#A?…Œ?¥Ä?¨»?°’?n‡Ô>•‰?FuÈ?æœ@?à¤?ÃÙ+?Ý¡j@¨Ê@KÒ?2[>øš«=Ÿ+=–àÁ@)%@/Š?‰È?k—?ØÊá?è6¢?ã ,?Þ,N?æÊ?ë´>?¡1?kÂ7?x*€?‚Ú€?Šú?•}?ƒà¸?F§Ë?  Œ@¼î?å2›?„4??|?5¨?/×7?2Fî?1™>ì;>ïåC?$}ã?!¡Ê?F4¥?AŠO>ù‰ô>ì}³?‰»?L?Hn>ñëd?…•?î-? ²?0¥>‹Ð=ÝÝ;-8˜>ÌÕn?pœ¬@º@%Ð@Xôi?šÁ¥?Ik? 3q? R>í‚?'w?åË´?Òíx?…?!¢5>ï%>íáŽ?­Q?²} +?è-—?î‚?Öl,?ÔS™?‹P°?nT^?£>4?²Ôn@`@f?¸¨?n¬­?š: +?³é?Î/˜?ç£ ?² 8?o 3?®Êæ?ò¼@ãg@3s@ßÊ?êa?×ñ?³¤ƒ?•“Î>ï¦P?)}þ?³Ô9?»Â$?àˆš?à¡Ü?ð¦?ç¦Ù?ëŒ?4Ñ?p>˜?qa?x%7?pqÔ?–õÄ? 0œ>˜¼†><Ÿ?¡¤ê?´›Í?¤ŒC?£Ë>ã˜O>Y$ë>ΨÁ>ñ)g>‹óJ>%3ü>Ú¾?Âã@”Ú@4?ÎÚ3?sÊ´?¢H†?½$«?–Ï¥?qØ„?‡Ï–?™d?‹T}?r-?¥’½?βF?ðr=@ Îë?ìUs?µÇ2?‘ûç?9úM?¢þç@>á?òÚ&?ÏUÛ?Ÿïä?£p?#òn?ã?aës?ÄàT?¸¡? .'?« §?½ÌZ?ÇmJ?ïlv?Ùµç?v’;?…7[?µºe?À¯;@Åg@èÞ@ ø@)ð?ç¶v?ÔÃt?8…I?Là½?8?Šë?bŸÖ?[iC?¯ð“?¿Ó@6iº@-oT?‚A©?†ýë? ‰?£Y¸?Ÿêþ?›GX?t8ñ?tM\?…7?ƒ(h?õu?zÒ?nEä?tf?tmÒ?u0e?tÅ?t{{?…bI?Š°—?Sø}?\*º?lY·?|”õ?ÁÝ[?ËÓâ?,Z÷?œ×?¾%?Ô Ù@ša@ +¯?t8ñ?+ ñ?Ö?ô½?jÖÆ?4Éõ?»JS?Ï6?Êâç?Ƥæ@ äS@V@žy?ôÃ>?ôÂ’?ôÁ'?k G?§õ?¡$’?Âüh?B1?t¾D?8JÂ?"Û@ P@0Î@4^N@9A?ö)?Ã[°?‡7Ç?Fj(>”OŠ?~Õ¿?ÀwI?¦¯§?–§?ä(ô@ê@G×@™ð@°õ@ë@@UÏ?àÉû?õæ“@<(?Þ„à?Ç66? ýF?tA7?Íy7@¡Q@ºæ@È\@lÂ?ã•@ t3@+™I?ûr5?ZWò?Æ¢?Ò‡²?õW‘@<‘@!]ù@6Ò³@C?µ„ž?É Ñ?ó¢a?¿-¬?'G%?”ã‰@ïj?õW?N:?½g@!ÏW@ +y?3Lµ?"²!>ó!š?%cE?¼ »?ÃïÇc?ŠÄü?Ö}œ?Ï ?Âl?‚&É>ð˜?ŽÇH?ðy@N@/Û@&\…@Ý@ Eb?ð²?Ñüì?š?‰¦?NA?‹j@lá@Wç?“òÁ?©ªÁ@Ï/?ûK"?>Å‘?/é©=¶è´=Ä@"±O@/ù±?¶?j«‰?³_ ?ÄG?Á 2?Â)U?ä>­?îh‚@q³@0&^?Ñ¡f?ð>?¹?+?Õ Å?÷ô¨@FÜ@õ@ˆM@àè@>­?邹?{e—?nÀr?5›L?ƒ¼—@ï +@ò¼>z•š>¡ ‰?Ž§ô?‹xÌ? n“?£öÔ?6¶&?A/?©÷ü?±`$?„Ã?…§>ÔºX>•¸U?p²?“?ò3?tñƒ?«×+?çÙû?¤ñs?h_?6¼Ü?kV¢?†Å–?¬Ý¨?°Uâ?°F?§É?ŠS ?«¶U@9ê@8ÆÔ?ñžª?éĪ?ɵ(?ÄéÉ@•@V<@NX¡@nõ@¿×?ér¥@)@³@E/@ +›¿?¾Ÿ@ À–@4æé@P¥?òo%?àÌ1?…4@?‡ê=ç?:Ž¦?SšŠ?•][?šã[?t¡µ?dÿt?µ€õ?êóÅ?øÃi?ðèZ?›>Ù*¯?ç?dPï?‘+@éC?øbd?ãû?ãän?ˆ‹ï?kæƒ?ÿvÕ@6“?äí?Þª6?¡~?mÀo?m?c‚?¬t‚@ZÝ?ð‘ß?Ùp?çÀ0?âi?âe`?¯"×?« ö?Ív;?ÅûŽ?§€Ÿ?«ê?ÿ¡d@Cî@ Wz@Š„?ÿ· ?Ú¸?Æc<£kt>#·ð?ÑÂM?Ñs?ŒŽ ?jEW?w:ñ?hà]? ð{?ÖÏ?Æ¡?§¼)?š¿Ù?_á³?Qiî>U‹>ºd,?ì`Û?é ?†P?J«l?}P?£þù?|?‚?½ÄT@ ‡õ@¯’@ >&@g£?Ñ %?æÑÁ??*>âˆí?ç(T@×8@¯‹@|@üü@ +J@±Û?¥Ìa?¥º'@@ pX?•­?{ Ö?ÜAÔ@ ·Ÿ?ð•G?¾J$?¯6E?z +Û?Ki~?¡øÚ?¤i,?µ²Å?Í{?›:?ƒÝ?Ýõã@$õ@ŸŸ?/¿?Rê?£/ ?£Ög@zÆ@£Æ?ò»?Ý¥r?‘¿‘? eX?Ûî?e°å?yÑô?ÙqL?ÙT¹?¦Lª?¢Ýo?M?‹?©f?¨ˆŒ?Kî¯<°ûO=ˉ?I‰ú?=ÂÔ?WŒ?²ÚÝ?ÒõŒ?×áø?ãò?ý5w@òÏ@JÃ?ûº?舽@‡?å“?·U?‡œ?Vîá?­?¡Rù?r?j¯Û?vŒ|?í+O?ð ?Ÿ Þ?q¹?¢\•?Ö"¶?É°?§?«æ8?0Ê?$¤?;n¢?-Ì5??*c?!Ô>•£³=bÔ¼>†áÀ?¿ŽË?ËÂ?Õ-\?Õe?KÆ?Šß¼?‡9?^¹?¦Ç?o.?JÃ?š¦ü?ŸêU?b?C?õ>âýë;lwÀ>ý š?þàK?ø}Á?A0Â?rû%?c ò?U`?‡–x? ë?‹G?@ÊØ?P€ó?ô'r?íñ½?×ÐS?Ã{ƒ~>HÊÖ?²n—?­€?š¶+?  X?]´ ?D½$?‰£…?­ a?Ã7£?Øv?Ø.ê>F—%<›Éa>ºÿz?÷?/4þ?.#?9ïa?YçÞ?n‘)?Y?œ=t>Òpz>¸ëQ?˜$º?¤Úk?Èɤ?¾R³??öN>Áçl?Nî©?¨}ú?†Óª> ï\>¾Ê?_WW?UÕC=Øè[=ZIW?œž¦?«T?ƒ8“?€ó?…Ÿî’>¡rC? K?FA¢?i ü?W§–?NŠj?>Ä)>þô ? ”ó>í$? ÙÈ?0¥§?ñÀ>ð(Ã>Ÿ3ú;éÁ¡??}ú?à{k?SP>õ/×>±à9>4€Í=Vé0=y0>ÿ­<™tŒ@qÖ>L?+„?»ÿ>þšç>_ª <Ÿòë=¨û?IF@¸&?‹þ¡>ÔBu=&»¾:‰qá@¯¬§@såå>µ½$>Áü?O°`?&Ë.>Ü(>ܲq>Ý:v>ÝÁF?”æ­?¦a? Ý+>}Ù>á}>ÐHo‰Ž­>Ó^?N²?=Êš?j:?#M>ÃÏ>˜Þ>–4>E„ç>êl4?-Ç?ŒO)?†è±?Ž§Œ?‡®Ô>¿>|½?¬L?°N>¿SU>x+b?,—?*@1>ÂÍ=>Š—>¤¯>‘9t?fw?BR??Ö°>Ÿè+>½^>ÎÈx>¡ø•=õ¢g=æf=׆>Cí?RVã?I_ã? _‘?f?S)°?_{â>&Œ?ƒ:‰?±zÔ?ÖÍq?ëË6?§TÈ?l£u>ê®Ë=€>mƒ&>ß“Ü>á0>ì™?íû?…h?™#ˆ?Ï_Q?µH>¼Ñö>»yæ?‰,?·>ï¦>ìp.? Âh?â?Òk??™>ý)u>ìNØ?¿¶Ž?ò +?Ê{?²B+?®Æ¨?´½‚?ˆ¾(?(À{>èäX>7¡ø>ÊÏ?H5L?I¬¿?u*æ?S=Ù=û,8>tJ?ƒ1K?‡*×?ûŸ@uŠ?@º‰?.„‰?œø6?§ŸA?|f?k­ô?k¤°?k£.?È’K?ë,P?x É>õ”D?6 $?al?¢”?Ô§ ?Æ<À?ºÇÈ?›UÅ?BOº?6jÉ>ëkó?™`?#ˆ=?ÿñ?ví|?†D:?¼?¨2;Á(ö?¡o??¯­k?­n?ªYc?4Nè? £¤?˜œ?ÁZç?¹I~?°}ß?‘UÞ?kU¬?Cf7?jT? °§? û??+³Ç?z3‰?tVé?kaè?q?P?~£ë?pòÙ?koß?n7H?¯½í?®©¼?³h÷?µ\`?ˆxå?„Ò—?¯ü,?»?p>R>Ô>ë‘?ÆE?|8ñ?ž^?œœù?›5'?·QA?áÚ¨?Ù¹,?¹~?¨Uo?’Ã’?˜šX?¢©Š?‰ºÉ>ì»?)?Š@Y?†v?z¬­?ðE?)€?=?†Àã?Š<#@÷B@*N»?àGÔ?¹Ä?¯V¦?¯?×–¹?ìË!?ÉhÇ?¬€V?Žx¥?lùq?½Bì@ ša?Ïú×?!Q=?8>E?Qè?Nðs?KøJ?e d?±ïj?±¤¹?„ªC?rþw>í±ã?-W?²Z?±ÃÁ?šXô?Ÿîƒ?„„÷?„¥Õ?M«+?Fk¨?•Öd?¡íF?Û?ó&?“ì?YOŽ?œ< ?³+?³ :?³Þ?’Ð,?qm@ '‰@Q&?ßõÎ=ÑJ°?¡:§@.r@ Ot?³q?‹ôº>ï‰;?!<+?†Æð?Œñ?œ;P?¸Áb@ 9#?ï+c>ÅT¿>ä?/êR?Gª?Ñ&?Èþ>‰ú>>š?Í?•w®?Žë??ž ¦?£á?Z‘•?T—R?n?pì­? +| >ñ +K?• É?¬ª7?³ÄÜ?´ô(?‡Í²?r”O>—Îû=P‹>Í3Y?|%?®²?ÝŠ«?Ú)¹?ÖÆs@Ëi@~w?Õ0¾?¡ñÁ?Úû&@ z?»Ï!?fäS?ˆ3ù?–ÔÃ?µÃ÷?é è?Èv?˜!?“Ïf?dæ¸?hi÷?ˆèò?ž¬³?Ï?¯+,?Ì?\Ά?O,?€Ž»@B‘?é®óøö?þ?t "?ƒ¶®@Ç?ûç?†GH?†§|?¿wß?½@_?·/M?¶b?tÀY?s•¶>ú&Õ?7ù?°‹2?°}Ü?ál?ÞÑà?cº`?VÓ?RÊþ?NÂK>ÿÄ? Ÿ4>£ + >ˆz?‹“q?™j?ë¨c?ô™É?ȶT?»Š?ýL@†>ÆÕ<=ÖFå@t@&®»@™‡@ ?ûsÑ?óô?>ÇÈ?`"?j’?„õR?Ìk–?×À"?–w†?ˆQŸ?À,?Ïç6?} ?Gè@ŠP@-Q}@*iþ@)Æ„@s ?ÓS%?H¶f>ô>±kŒ>þ¡?üŽ´@9T®@(†/@:G?µÛr?kdR?ÇɃ?ô˜6?G¡R>1g‚?¡ãú?ôP@ ]#@¬>?êJ¥?·*„?”–)?t* ?©·³?Ó39?ÕF?á–Ý?²óÑ©?bÕ?³C+@Àu@6ÂÎ@(ò?{O?‚Éë?‹‘€?c&>óvÞ?‚r¤@;?Ùý‚?sNÈ?”b??ÓËÙ?Äm?“Ää?Ð1?wSï?g…^?W«?Rùç?aZ£?O‡?rÆv?_i>óxå? ²Ù?x©i?ƒ×é?¤î ?°Pþ@*T@…k?ŸíÖ?¥©W?ÃÔ?Ì´?tót?r?,þÂ?$A?ÀT??ÅXL?Ú€—?Ô5ž?±˜ç?°}>„2g9ÀUì?d´?°Éñ?G«?Œ¦K?«ŒI?´×ˆ?ÜJ?õèØ?\ˆs>‚U„?ý£?-›ˆ?„‹;?¡+?ÆÍ?léÀ?®YQ?ð^¡?çSB?æœ?¤>À?)s?>?î?†>ú?…O?oÝi?oÎ?oºÌ?‚ÄG?«s¸? ññ?/9?JY½?Õ¯4?àã?Â^#?¹¾ÿ?£•? šp?~»?ow?®ƒÇ?®%Ð?ƒøÏ?‚Àr?÷ÐG@ýj@@›à@ˆ@GN?úF$?ѵQ?Ô„??ÿm?ýä@áh@/z@|»?ðoä?™)?mS±?m@F?m4˜?–[™?í q?é-?É$?¯=j?‡Ü?àB?„t?k?Þtè?åªb?ë\??ë@@?„/H?l›?ˆ½­?‚¼?2âÎ?#}™?’d?°¿‘?Ñœ§?ÏúÛ?§ØI?‘N?P?k>—??Æj>ëJß?‚Ö@ ýP?ïá?jËv?Œ(¤@ +{&@ 3µ?é¤Ë?ñ¥|@!Fh@8]@Oå5@c· ?4w¹=V?¯Rí?éÖ@?ýP?r{ ?ºæ?×:?ïKŠ@ ‡å?ôJ?´yJ?¼F{?ŠdY?\)š?«?æý?κ÷?µ¬u?Ö \@«ã?à¿?“÷Õ?˜b5?Ü„U?Óìâ@,‘?û›±?´DÖ?¬ôg?¬4š?¤á?¢"¤?ŸÐè?§à:?¤+?…MA?nhF?ZG£?õ?$¿x?e¥Þ?žÍ@H¨Ö@@DI?˜t?Š“Ï?õŸ´?õ›B?‰cJ?dèB?¾p>侟?¨Jƒ@£»?”=<;ô>>íÀ?¤Š’?¨mW?ËX+?Ò]?ÄžH?ÉVØ@¼@ º@7Ý@QØ?í5;äš? ?c?c×?bùÞ?¨ºÑ@ Ïb@†©?b–¡?xL†?âj2?âS˜?â"–?ß;å@„v@Á{?Ÿ`?aÇ•?Á/¬@ Ò@ä?Ô:#?Ç—‚?¢ô²?ÇR@8D1@& }?¶k®?»Žû?Ç °?Ã??¸×Ì?¿0?ªa8?œó?ŽÊ^?b&/?B?ÉZ.?¶²¿?MÆ?-]Ï@8lœ@9Ä‚@#f@í½?WŠ_< >î"Æ?^²þ?Äýg@8Zm@.lµ@)v@—=? €>ýÄá?Pñ¼?]&L?žž?ÄL€?ß¿)?òV¼@ ž‰@!§í@ß’?²„?¬‡?¥”†?§>Þ>«Ù¹>6Ì"?¢f?òÁv?ö¤+?ñec?ò}²@ jV@Ü¥?[žá?a$%?tÀ?%æE>ÚÞÞ>ʬo?£¤m?ì«?è–¥@L ?ï$>㳂?¥?ÂóØ?ÙO³?’²?’©¢?º $?Ì¥?¹r©?œ¦ +?«›Ö?ÙVó?Ù8½?;e´?GôÈ?XØœ?XÕº?ä«y@-]@w? £0?»p?X;?X+p@^>?多?¹ˆ?½(É?œûå?Zôá?AZî?ië?Wü­?Å*?¿ @ HV@V?Úœ¢?ˆÔ•?­È@ )?ì?’ãQ?ŒØk@ 7@½I?Ä9? Ÿ—?¹ ;?Õÿ®?ÔBT?Ëmv?Åê1?Ç…?µS?„æä?†ÚÈ@ƒ@9@@,ÂO@ Sâ?çJ§? ¤? ³?—v/?§ ë?«Þ?U/¹?g=‹?ŸÚ ?ŸÕI?ŸÓ?ŸÖr?FwG>üí?OÞ?•£¸?‘ _?¿z¯?ÊûV>ÈEˆ>–t}?3i?UM1?‡îi? –?ª’a?¸b?¸<¹@¤@ŒK@¨ @Ž?±õR?Pm?‹F>ŸjÑ>³š®?!•u?õ0?Ö>?Ö¸õ?0:À>Þò#>çÜì>×KÝ>÷¨Ý?ãS?f>5?ö 3?éUn?¥Êû?Ÿü ?¹½P?²_?¿Iä?Á¾?ŒÞÓ?;+M?EV4?PãÒ?b»:?—^¨?ŠkT?Á,S?Á—\?öÀD@×?f=Û>Tçç?ö®?]7?¢È?€:ß?ÍØ?"—º?%é”>üoa= aú>!™g>f‰>£9*?¢?q?ÌÑf?­Ø?¢fü?ÉúQ?俺?F?.÷G>Ÿäú>¤L??I2?àê=±­£>3œ¹>ëí–?'8?BT™?5aA??ts? Aç>ÊÓõ>è·2>în? C?Qi?8ç>õ„“>öp>÷[Å>-ò_=U¤?J)?×Ñ?j¨>™+›=Q$Ü=(Ï”=í Í?K>”àL>-¤>A3Œ>-†î<-ž°;gÿ>v©<@@n@‹u?¯+z=Kþ>=U==¡:'Ä <Ž€ÿ>yiÝ>ܹ>ÛF->ÙÇÒ>ÛØ~>Þ1Å>Þ¯–>[X;¤À< +L¨< Å:² °>Ð{ˆ>ÕE,=Ðr> ¢?dã?Iá?žº ?‚ù?ËR?;c?³‰?7š?IŒÏ?QÌ_?x‹_?‹&õ?Œ±*?†«[?|2ü?h5ö?`–?)‘y?\û?Ì¡?9?¯/?iz>ÆÞ>‹‹?)Ë^?Æô?¨Úì?ê¸G?¾›3?+éš?1@ó?1f?*h?7}Ë?<ù)>xõ9>MÆë>òº +? ÔC>Ù•,>±ÍF>\6>#m>qîÈ>¡½Ü>);|?]–?±@3?Š¤ >ìi>ìoM>ìx?2/1@º?þ9A?z¬Ñ?vÏS>ïÒµ>울=×Î==€k?”óN?±d ?„D(?l£Ó>˜ŸQ<ÖÍP?S¾?¦Y?Ud>ìž ?œ²ñ@³?£\æ>$9?>iš¦>ÇU:? ê?”¥?‘È5?‡'?ˆ‰?F…?@"v>—Mó>’\¯?ŠùK?ˆØ±?P>ìC?ûOh@¡õ?ûe]?ì+»?qv?Ô¥?+??1|?Ìï>ìî?O„?ŸZH?|ÄÅ>ò÷M>ï¿ä?i›?3ü?œGÿ?’\?&¿?8ù“@¦Y@ Ós>ã¡ä>åf:?hMn?kšj?k°?k-?Ôï÷?ëƒç?º­?¥–%?DÔ?Ôü?cœ?5r?cÕ>žb€?1E?KÅ? v*>¸>”n'?¢ +?ÚH>ŒÒj>¶Ã +?k= ?Y‹²<Îßá?èQ?ë5“?¤œŽ?¥^…>¸'(>$Ä%?¡,?G\g?lc?‚¾!?gݹ?R-a?oN?~ËÜ?|?y^;?‘°?°lÂ?Ÿg?tã?Ä~é@MÛ^@B”#@ÏŽ@¥a?rˆI?uQÊ?x ²?{@ó?¦×Í?¥ÿ?3?Â?+/Ï?3ú*?*Í?~{ú?Šªç?Z $?Mì?RÆ=?Xt#?“ýò?°Å‰?¼sô?ÐùÏ?ȯ?°Þ™?¾{C?âDÖ?º#½>ëôÙ?Z,?ŽÅ·?æß=ãȧ>•w?>φ?HŠ¨?êº:?ìLé?áŸh?ä@R@ +ä”@„E?TÆ>슺?’Ÿ0?³7\?b¤=á’d?jë?ÝxK?ȲX?¼Z¼?}g>í»?(Ùw?mG?m-?m8?mI(?mR5?…Bá?² ?¨û!?qWÏ?p%T?–¡?™mü?….ç?}NÒ?"0?L?@’r?:Ð×?gL?n)?gØ>îJM>îW€>îf+?•?²åF?°Öv?±¯?²ä¼?³Õ?‘#Ö?€æì?8 >ÚÏ®>¸|¾>Å6÷? Œ?%7$?Àbž@%­š?ö$¸?oò?TÍÉ?!Ø7?s E?äPQ?ËB»?BÛÓ?6±È?2€)?J:Ë?¼¹?±$ú>¶n>ÑXõ?Þt`?äñ?ˆvÔ?†U–?n;?äv?S?€]?‚? @? Ä?SJ?£ƒ"?´Ü'?´Ë?²M†?©Ðß?¢÷c?'tU>ñzž?pPÊ?’z?•ð,?™i?Ðìv?ð„¹?§ù?qíè?¬Â€?Ð1æ?¡PO?r‘³?˜¥?µ­R?ƒ1>?'ô?!>î‚:?¸.H@%’@Ã?µû×?‹N&?E?¥º£@ñ¨@ +!?ðß=?Ünà?¶C¹?£lš?†Å?‰e‚?ƒ‚€?­¹¡?¶æð@Æÿ@ q2?·Î?»tr?è¼S?è +W?·Ä?²­R?t+e?'?éÖ~?ä" +?ì×·?éó?¤–?Åà?Õžþ?Ю?tpÛ?s9¡<1 I;-h?Àíó?»í?tƒ‹?tv¥@ˆ„@%|@ïK@²m@ã6@Y?h>Q?:ç}@MÑ<@d&Q?¢8µ?y8K?±\?·rÛ?èÃQ?éÁ©?ˆá8?tŒó?‹.+?’ºÆ?ÍÚ#?Ó_÷?„á?x'?y´?t‡!?3¡Ö?2¯þ?¾Žï?Ù™%?õáF@s}?“!™?Aà3?MDú?Y£á? +?”¯ê@Ûx@.Á}?O2Ž>­£‡?V?ÖÎÙ@é?‘÷8?@R-?Žý¹?«MÉ?Ð?ÞôÝ?¶§p? ?Óå?óN?…ÒÒ>óò¤?%.?J¤ø?L¸?© ?e} ?‰u? +•Ì?žv?:Àð?s¢†?8ëð?3¶?y‡Ú?°&?ò7á@†ê@!P@#"Ý@Šg@ ¿Ö@ l?½? Ä0?yŒ$?®G3?üêT@°{@ ÃI@ Ù?ØÁ©?ø¦j@&›J@šÏ?woÀ?s‡?qŠõ?–Ðò@ý@@:w?µÂ¹?¶EÞ?ÌN?Ù¥º?Æ›?·¿?0,!?5¯ä?;:e?B·?qÖu?qÙ+?ßv#?ä_¬@'ïM@-›?W˜?u9?® ?±‰?³‚?´êŒ?¬Ñ¢?¨±?Ô Ÿ?Þl`?ø+C?ü1?¡g?o±:?lY{?pžîß??‚&?‚ep?€¼W?m1E?m#Ð?mF?š«î?ìëå@HJ@$Þ’@ô?d1‰?X¿?›S? Ûô?|B¾?nç~>÷Ñ7? >Ç?Тõ?Õµ°?ÚÞ@?ÙcÊ?–ÓÂ?zcT?ŠìÖ?–ñG@›”@P^@“¨?à€:?·*y?~fp?lhÜ?hE¼?M¸g?<šy?u¨?Ÿsy?•H?ƒT??«?•&à?žÆ@M÷š@S‚?‘JA?x¡?u/•?j‚T?ÐR?é²K?‘Ø?NWw?#9?Ä­å?íÑÚ@s?Ýn?À ‘@ óì@ZΞ@:5C?qI?@NQ<É>o$?À®?Èì‡?p ?˜?à1°?èK?Ãv/?®¦7?¿n?ѯ6?ˆµ2? b>]tq=°Q¸>F>ˆRš?5™‰?Þƒ?ËW?­FÔ?¯ ½?Ï]¿?ⓦ@ g@Í?¸ag?¬Ü„@/@¥%?ç±ý?Õì@?È7'?Ÿ[?©¢?~c?ˆnt?NÀ?•c?×i?žN @,ƒ@&ØT?y R?ö?ª#?¹×Ÿ?¯Ó?¢§U?™4E?‚ç?o¶?o$ü?Sñ?¨a`?S˜î>r––>ÜCæ?@x»?mZ€?Æœå?Á–Ç@Â@/œ@1RÜ@=äl?³´œ?Xö¦?ÊNÃ?öך?è È?ÙB?Õ$Á?ÛyL?Çßb?¿]?šœ&?ç57?âʃ?«Å/?° É@ü´@!%3?ªFO?a±Â?)mž?¡ñ?qD°?¨þ?‰\>å^ï?C… @Õþ@ÊB>ÒÙ?ë?„Û?›p?cÆ/?FÅ ?66?Æà?!>?_í?ƒ3m?¶°x?¯Ž™?Uk ?jlB@Þ›@,;¾@>Àœ@QEÉ@&NŽ@Ç*?¯WÓ?^o?ÑgS@BŸ@-Hq?¦«¬?§Ø¯?¨z+?‡èx?Ÿ®Ú?£\p?Äk™?ϳØ?çUæ?ûàL@ Ý@-ÕÁ@"¾O?à Ó?Òòo?¥î?¥nó?ý""?ï>?ð0°?øà2?ÎI8?»NW?´d?-ÿ?y½?[ç?[i@?‰¥’?€”E?tW;?LyÑ?Ú¿à@*Ð@pÃ?Ú”m?µ´=#6=¥Æ?ëßq?äýN?3?>©ñ5?JG?™}]?GÆK;iÇù? +¿@Ÿ@¦?6¤å?#a8? M˜?{ ?3ú?¢cÜ?¢Sû?¢>–?š—?X%3?XŒ@™ò@#?à »?|ü/?‹÷¹?¡qÇ?›Oà?ŒÜ?~þ-?p_¢?‰õÆ?ÚE?ñ<@ö£@7ê5@0D?zØ#?‚ïz?37÷?Kç?Þ.Ü?úñ©?ÅKl?¦±?¡W?¢ê?¨àb?®Þ?µÂ…?Õn³?ပ?d5>³ ¥?}U?Öù?ãuÄ?ì ?ê4©?‚t|?ˆŽÒ?ë?ÎE>fë;æ3è?(CF?Âc¬?Ÿ’À?ÔQ?&Ðq?Š9À?’§ñ?˜Òh?žô?Ÿe3?ŸÄ{?ŸÆƒ?ŸÈª?žíÕ?UÉ?U"?a[Ô?YœD?ˆIg?Ÿól?|Õ®?Ч?]è?ç÷d@ž?~Õ?U¶ª?›ú?›.i? §e? S•?‡`o?VJÏ?W?ÌMp?ÒÌR?.%Z>Öé—>׃>×4?+Æç?y{?‡_¼@ ˆ­@ŽÛ?Ù¶p?Ô&?µá?³þŒ?¸$s?ÇÍc?“#M>ÙÖ–>©Èè;e‘N=ÍLî?Íû?3V7?µ3-?Èn?­‘ã?¥V ?€3K?\qÔ?#öí>ÝÕ×?-›v? DÔ?“ö>Ž‚o>“H–?Ó0?à/`>âðu>´ï?PcÅ?=Z ?–/?ª²ž?y.Ë?\>±u>È?# Ã?fçV?$¾>Iuá>´ ‡? -Ü?žB@Aû?ºÔ">ì'?>”?+Ñâ?ý\>ï>Š">['Ã>òYl>ó8¥>ô•>¬1>Š±r>¨Ô?>Ç6é>³´?ˆ¾‡?—bp=ºøb>aÜ?ˆp>ýÝz?PÌ>„n>'€?bC?‡?ù?«&~>`èé;€?‡ð>¨¡{?ëèù@ùnS@195?dG>’Íã?ßÔD±>ÖNS>ØYØ>‰aD:”7e=Rp>Þ*R>Þ¨>ÜÈÞ>Û‹?)½æ?Xc¤?5y>Õ°>¤‚<ûàP=);æå<ë”8=Rô>Ž™Å?&…?&7¡?Sªn?RÂ?QÕ$?Pâ»?>þ? XA? ÇÄ?;f?‚šD?­Ü?•°g?hC]?96P>‹“k>‚þ\;Ÿý|>æ Û>é›n?œ£?"d~?|L>ê;F?[³Æ?+6?œá¬?¬‚Ê?kÞ¯>iòš>º„ý?3…Z?,i{>ÑM*>Û¬ ?WÉ?Sv>CÈ>.^*?,Ô5?Cûh?„1>ìÉ>´>Á΢?Ï?dÐ;?¤Ë,?q +Ž>ìt!>Þ/">Ê3Ý>ßÚl?që?';”?¬áõ?¢>⇅>ò°'?°€T?±|ë?s\§?m0?lët?l¤Ñ?“?¤ŠÒ?…Ý%?y‡¯?•í ? ?‚?–”$?–ª˜?âB>:X>¯º·>«îó>Ñ8?ì˜?Dûñ?B6$?"Ü?*‰?;à}?8ô{?Š¹?Ž0C>øÞ%>ì<ü?ùÒh@J?˜Å ?Šîl>ŠºQ>ã@Û? B?2èŽ?:gï?RHn?kìi?¯Û>?ëÞb?µu~?XC7?8$K>ëÁ?6ߧ?°Êm?½‹b?íþ=?ÍÒ:°Q> ža@+¥@+á?r26?k~Œ?áWM?ëp¬>ÛàB>L´K>ÓÍú>ë\ >QL2=ÚŒ>‡;œ>ªVo?%Yµ?kB0?lôB?`??-ED>ë4&>ë/ž>ë*q?F1a?Î Q?©zy>V¼8>“\@?¢1?¤Þá>쇪>ëSP?@C¸?;•ä>õ½b>ë3=³&É>¬è%>ë0?Ža?· +8?¯5?¬[?¬j?­Õ+?ãÚ@õÅ?å®™?vo?²-k@þª?ÿ7 ?k6®?…\?ØZÿ?ÒŠ?°tD?¯³8?O®Æ?J{?g´Ô?kb/?†Ó?‹ÃM?+6>ëyp?U}?rry?®y¢?Í?™ðè?k£o?tq¥?ƒwî?€)«?kÅ®?2²j>¨þ>é^ ?.1^?K,>¿<û>¦Úì>&W˜?溚?äür?gÔì?j/C>öO+>ìU)?^ÿ%?hÑ9?"h? =þ?ÛÕÜ@¡Ö@ q×@˜©?¹Š?„ +?i’?K¤å?Z”å?lþ†?ˆ8´?›2W?‹wÝ?m3?gþš?iRL?ˆºÚ?²?«h??fH?”M¡?ÂoÖ?Àñ?‰sC?ŠÍH?Áìƒ?¿Jy?VÉ"?X3z?Œ?Ɔ>ð`Ë>îF5?œ=÷?±%¼?„—?n„ƒ?¢ðÔ?²ýÞ?×9ˆ?å-’?qZ³>î߸?b™??‘ò2?àh@§ö?í1?Îô¬?Ó?Æ£?›s}??½¿?FD?d6?'2?–6?—)?oÞ´?oíÄ?oÿ ?u?ŸÝ”?U€>ð>Ì?§?¦åî?¥L&?p}ú?rÓ²?¦ÝO?ª°@?¸.?¶h?í‘K?ðçñ>¾>=E-…>÷³/?C>cÞŸ>SFö?‹76?œ¡U?2½k?ú?mi?áõ?&7?èØ?…ð¥?›lO?}¼ò?n ¿?µRI?Ñe?¾ëþ?µšd?‘W|?r>?Ö5?¤¡·?¿/?×Aú?Ç­]?µæ!?©q9?¢„Ÿ?µð?çð?ÓX+?¶i?¶'?¶.Š?´¸÷?± +:?…<(? D$?-ôÅ?vÞ½?÷è<@c ’@*ny?sU´?™Ù˜?å׺?̱Y?¯9?°Æ@Îá?ð…4??«K? ×ò>1™z>¿Ç¦?ŒFÅ?©…½@-@ Q?é$ ?ÜÆÉ?¢N?Ÿ´À?múV?‚6½?·„?ÇM<@P@Z?ô%Ý?ú@’Œ@ +Ö»?ˆ*S? K?É>?Ò½@ ë?ÿîS>‹Åc>°>²@´¹@¢²?”úÏ?”f/@(@(@,?¦ ?§T?ó·b?ô^n?ê50?ìPÈ?¹<?·Y?¾n+?·ãø@5>@Üu?¡K?†¨Â?¬v~?¬ÕÁ>˜¦í>mmF@`i@0„>ÍàÞ><Š®?êpá?þÌ$? +v?e¾T?ª4?·MQ?¯'>žO9?ªÁ%?ÆŒ?¤ +?P>5@â@°!?«vò?~ .>fO?±½?åB[?¤én?–ýÐ?0 c>ôî?sÝ? ?(g^?>®?ž2t?¶ú?·xH?Â:{?€Ë«?'šÒ?<€ ?AÓb?ÊŸ@ >ê?Áñþ?‚ð?r™ö?m×?sý?sˆÁ?2O>óu™??šÑ?‚Ì ?¯à?àõ*?ƉŠ?°8?ü¬Ô@$'@@Ì9?´M?u ê>Š—£?l1z@û*@ Ó‘@ÙÝ@ ?Ž­?YÂ?…g?’ø?¶¤?Ô¢×@X@*e@zW@ ã?†íC?¯ „@#ÁÝ@ú?ÎFÐ?ËÍÏ?—, ?‰;L?*;?, ?‹æË?ŒV ?Ýkm?Ô€3?é[?ì–H?µ+Ì?´ó¯=ù2Ž=¹`.?pG?€?ùÕ˜@*Ô@ C@]¬@¬@z?ÿÌ–?êš…?¨«’?X?|e ?pdç?ÄE?ÿ/Æ?ÑA¹?®6Î@ ¢@2Au@V$?Àî"?Ù|{?ïÇ?Ïìn? Óž?r•j>ï{?Z||?Ïô°?·˜Í?‡F‹?¤' ?ïe?Ôýa?/+)?D[‘?é0ü?ó@ú@£Ô@T@‘ºú@‰ ?|?nX—?ˆ²W?ƒ"¹?í +É@ŽÓ?±»Ð?œŸ?¼7Î?ÁþÔ@¾,@2>â?„ÕÓ=ØI>‹n¡>ícÞ?Ëv@ Yé?Ûùv?m?m )?l÷ø?Ÿ ?ìÏx?àÜ?Î.?ÛyI?Ý5N?ËAŽ?âÖ?#}?é?ì“@ *@Ëg@;_ñ@911?²I? È^?ÊXH?ÎÈv?ŸŠù?Œ`ñ?ñÑÄ@Ã?à9ù?°]?ëÄï@ž$?ÖôÓ?jÙã?©z?õ|X?ãi@?Öï2?Ð1Ë?·¶¤?k§?;Dõ?^hI@"œ@}?º'?³UÉ?ã8Ü?ç¼Y?½ S?·ÿ´? b_>†?¯"”?ò´?ê\ó?÷êÚ?ò.7?ËØ?£‹?{$–?‡_à?¬Yä?Ål@ò?öÖn?Ü?ÔA?Fò€?WœÅ?Åf?ÏJ?áà?ðþè?•ùé?g¸0@w@-”x?ôçë?›kz?ŽxD?x?j%ãŽP>ã}?b®~?d“þ@;‰•@PÏÀ@/§º@"F @·@Aû@y?ƪx?Þˆ?ùT|@â@ Aº@ ¤?l>G?v+?ñ"÷@#?™‰/?ašv?;¶©?‰?n?º˜«?¾Õ?Þt?ÕP·?ëƈ?ë@?R ?2ò?yn?dï¦>ãpØ>»þS?»—y@ Ù’?öKÜ?Ï”·?¯Æd?‚i¨?À?%.…?‡¶?ß?3»>ãBl>Þì‡?ˆ|?´‡:?xdE?%¶?“²a@ ¯¼@J·?¦—Â?²‰à@Osá@[¥÷@lÉ@Î +@B@tQ?÷#L?Þõ@@6O@ê?ö²>ÜÇÅ>ä¢É?a€?lrO?æ[÷@5Ú?çЉ?áf?†£©>Z~|?dl@"BM@#Ì÷@Æ@q‹?>Ÿ?D¨ ?ÕsH?ð“3?È?»ÅÇ?Ï l?Ú0Ø?Ö‰V?¸D? ïa?Êê ?ÖÕ?§½»?€ü?zýù?e :?ƒ’Ë?M€?—×æ?Êé£?Ü*(?Š/À?ƒê~?oc>Ž(Œ?]—u?£øk?¢AN?¢*œ?¦Ò?±’@?¥Ç?‹|­?¯­?®Ì¹?ÇŒi?¹§Ù?¡†x?¡wç?¡fŽ?sñ?ZV?B1Ö?—²Q?¡m?¡„?¡]‚?öiz@"|¶@!?ÓZ·?µM·?Þhé?¼>Ù?âÜö?Þ`)@pß@.i@ €ù? Dw?¤õi?äa³?Ò(›?6Ä>¾?~Ä£?ÕFò?Õ¢?›b ?AI$>× ?C³é?¤Øì?¤¬?7ƒî?Bÿ—?Tô´?UÊd?2™E?%3?ƒ¨ÿ?÷Y?á€x?TûÕ?U+?—¨=?ŸÑo?žÑÇ?ŸÛ?k´>s/Ç>xG?1¹w?>a?mÈV?W°ö?Ž9‹? VÎ?ˆX ?oôŠ?‡uE?{‰‹?oy?¾?Ÿ$´?›ÿš?GÌ?‚”Ö?k­²?°¯¢@­?ä#m?WÙB?X?adÚ?{4?|E?‚*?0? ¯?R¯?[?(=?½?Ž¢8?­ ?™|Ã?4™‚?S +?‡$?˜=Ý>÷ƪ=• >Ýy?>©ì?,ß?)rå?/®â?*¡7?<»>àMb>þƒØ>â¾”>á®G?º Æ?ÄÜ#?€‹g?ƒ×?VK>â>„?•j?¿û?9‰>¼±K>±Ê4>–ñn?ðù?P0Â?2P’? Š?F ?Jí?4*>íσ>ÌD<>¸Àm>_î?*VÍ?¡‚±?iS>Gè+=ȶ>Y€ê>Öp0<Ø×…<ÀÏn>¤ å>Ý©·?øï> N”<™P<ì?>p}>¬y;±Œ>Wðú?¸Â?"Ž?N‰=¾<2:­£=uµ4=Š´X?¢¥@}^§@TÅ?é +;ûçõ<+ <¡:ûë>Z?`>ÝÁ>ÜÈ´>Þt>Þ›0?T¸Ð?[ŠÚ?!Ö>ìZå>õ<ýT<óª0>—šÚ>Ų? Ð??RÚg?{eº?¡ÜÌ?ª,«?ÏŠ?ÊÉu=à£k=ÖÞy?0Í?IÂ*>÷ñE>ÂgV?Æm?k’>ÿ{×>œ8è>™j×>–ö>ª;¾?=™?;ŒÎ>ì G>éó?$Þ?›¯i?zÍ›?jˆŸ?×}>ìV>-=¹è´>„8>ªqX? 0?,t”?šhJ?’²ÿ>™Áí>vÂ>¡0ê>¤õ¡?î?Õö>ž^@>_Þ ?¯éë?÷L?œ„¹?Cí†?šÅ>Ëå>œ©>5°>ÉG•?dX¦?feÓ?hyÓ?=T;¾Dj=é,?l£å?he°>ó7ô>øà°?à¾?ã>š˜Í>&çÐ>靖?‰¤?Cã?#}P?‹ä?£îS?’5Ò?‚A?a÷?Hš +?½g>›¢>µKò>ìm?? jw?:Ö?!Mè>Ø—•?B>?1r?6Ä?ckƒ?c Ë?ë€0?ì»=°û>“´%>—ì‹?h‰"?†?™?»?¢Ç€?…œ£?kÚ?µ¼ñ?âŠ^?” ¯?0>ø‹ß>Úov?GY?­°?Óþ¡@>?ülÈ?j‰6?U %? &o?HÁ@&'d@!Ø>zJ>>Ñ>ÈÓ>½ +¡?²²Z?Àß8?±Ì?¨d—?f²;?D›é?(·m?!\#?=µç?WŒÿ?*ܪ>ëw?H™?‘ÜÞ?·ýs@µ#?јò>ë? +Ï{?IÕŸ?7XÁ>êûÅ>úë\?Á?“­?Kñ? çW>ŒÕ•>XP7>ët?Æ?¾—¸?çc‹?Ÿ=e?qñƒ?"´ß>ë>î­H?d:?ù›@^O»@ !Æ>‹Ò1?'F?¦Œj?ã²?Ž\?}ÎJ>·È€?ka?Æõ ?½!ñ>§;Ê>²…Â?#L5?'åg?7x`?3mr?+T8?8¦m?Œ3D?Ÿµî?— ?Œ$-?¢B>M2>÷—¸?(Æt>ÝÂ=Ýô?ýÚ?šÙ¦?]|’=¦Ý=U-d=&éV>†¥L?ªh? ˜v>ì ?L{?°.“?¬YO=™ƒ¢=š†¾=_kl=x”&?ÓŒÐ?÷+˜?ø´ª?ú;3?4FH>…1ü>ÿë¡?à? ¤?#¨Ñ??ì/?\ï7?i«Ä?m ?ƒÕÌ?Ž9ƒ?ªË*?ã<|?ÂM¹?†Åï?…û.?m|?‚?²4?Àç´@ ¨ò?ü>Çín>ÔIÛ?`á2?da¸??>üvÊ?cñ&?n?›?nL¯?n]è?ÕÚª?ééE?íÞ??Û:â?Î-þ?¹ì?³%Ç@ÏÍ@Hƒô?×Z%? DS?P6³?‚t6?€çt?oY‡?sº^?oS=?iò¬?o—s?“]1?¾R?g?GR7?€/?Ííu?»;ê?J¯?Mt ?‚œ‰?|¸?aã?Y%ý>ðw?íU?ïLâ?ç +|;Ž€=še˜@ С@ +VK?4£>ðÿ"?’?’¼?Úýî?â:C?»"?43?U5h?EÐÓ?©Jž?¯©V?°2Ù?µDƒ?ˆ<á?ióÿ?“¤?§w4?£b´? )Á?”6¿?Šæ#?h??U†o?xÑ?ƒúÍ? ÉÃ?µÍ8?"¤ç<îD<¶¦à;žK†>~Ê>øAj?=`Ù?{_I?™¬ö?¶&æ?­[?ŸÜ?†”q?T’¡?Ðyå@4WE@¹·?s7{?µ:?¶v¢?ž[?qý‹?»à<@ôä?ðjÇ>ó|?!Â?G¾M?ˆù«?å̉?Ù4h?п?Ýö+?ç»?ªz¯=Èü›>=W>õ‹P?H6?ó“?Ä/v>@ÆÃ>«IÐ?.‹è?ONÃ? 3?˜gì?vS?13?ŽÄ¦?­û¾@7 ’@'q^?:Ÿ?[]ã@ +ˆ?@›w?†ìO?+?£/0?¢¶ž?tL?}c?ÜÑ7?àÌL?Æc ?Áöú?º ÿ?¼ãÀ@U—Ã@S½Ø?½D‰?À#ò?v¦L?toY?µø*?·A¿?‹¿¾?‚Ý:@( û@,X>Û&ó>‹I?úEÛ@ €=?©¤©?¦+?‹q^?‹û¨?4‹?/³H?Ç€??Úõø@„@ vZ@Ýž@E@±(@•g?ÊÊ?®*?=+'?'«Ù?íRT@!?±‚²?•ô?`Öé?H¡_? W•? +UÐ?–´=?¶ág??bÍ>óÊÌ?·¾?ÞÀO?ã¿ü?äµ)?Ý[C?Ö&?¿kE?¶©?T‘W>óyû?«Ò5?ïöh@C±@%³T?Ï+ ?sE~?ó>>É¥h?"íI?GY?·3†@¦?åÛì?²®z?ƒ[? vô? pN?ƾ?1à?XÑl?ška?ãKb@ —)@2_Š@ ÿ@?ñòL?ßØÑ?Á~?Æmª?ËÈÓ?ÞÀ??ý2}?÷pY@¨ÿ?ýš~?”gu?–Æ–?ŸYÁ?¨íÍ?¤¯G?œœ?”?¨ZØ@*xO@)—?µ +]?´6Ø?q¡ï?sT?¨ÍC?¡ÿ?¡1x?›÷¤?Ío?Ù’?¬Æd?´|@@HÇ?åë?ãÕÏ?Â0,?´KÚ?” ?„gÂ>ØìT=Ç,>¿Ý>÷<…?B–í=??'ö?Dø‡@ìà@ž?…„ë?kœ1?Ù2F?ëuÙ?šw?‰Tê*H?.ç@@3þ@Cq?î®Ù?ê´Ó?|·¾?yœ0?Ò©Û?ÝŒ,?ÔŸC?¿þî?Ïà¥?æÓ(?µO»?ŠÁ¨?äoÜ@(Œ¶@^#?ÀAŽ?Ü,>éÐ +?8Ž?¼ùV?Ê6@?èI0?ÞB>è&Â>è /?©ãÝ?­ï‘?ŠW©?€ØK?_¿?^®l?éJ@*È?ý¡}?Ýñ?Äo³?­[ ?¤U ?’šŽ?Ž5 ?‰Ê¡?wkA?0QQ?aF.@ ²¢@¨*?®¥‹?¬·@*z @-Bf?£îg?eúM?­+t?ÅÕ?µÚÔ?¬>ñ?—\?tv?œ†Y?åcñ?ר5?œº;?†Zš>ÉŽ‰?Õ©?ŲL?ÊEµ?²}?¼Ÿ?ô´Ç@¢?ÐE?«Dš?+?HÁ?–=Þ?¶hx?¢€e?'.:?9õ{?cŸó?bõöï=ª£c?X«??ªú?Uù>½‡Ì?<<²?‘TD?Ôº?1j½?Et?¹»Ì?™Ï…?Ç=>ÞÝ ?HA»?s§ò?XmU?4^?Uýd?ß?œ†1?³Y?®M…?ªhG?¨Úm?ƒX ?ŽP<@€ÿ@%ÿÇ@êö?Ó°ã?çaÅ@‡ó@¦>æh™>ÝDç>õ·f?Ü4?Ë¿?Ü)?Ùã@?Îéê?Ÿ®?oMÓ?˜7?Û´?áÁ¾?ìÞJ?ø>KŸ>>MT®?Ì` ?ÿ¾?ˆeŸ>Ú—¢?G +?¥!U?¾‡Å@!Ø?ý?Âx?¼>û?óõ?ô`#?¹÷ ?¡%?Ð4»@r?ÉÚp>ÏŠ?5Ð@¥Y@M?šÐ,?’¦?à^@Œ…?ÊÄ?o%c?›pÄ@ +½¸@Ï„?^Pa?W£¦?7Ò6>öhÀ?Q?Ð̺?–³È>Û‚1?]??cûE?{­>?¼ˆŸ?²2ß?¢¿Ä? ÛÈ?Ø v@ ì@ ñ8?·Ñ†?Õ¶Å@'u@9Š¸@]Èç@oþ7@7,@Æ@]? /?¤òI?õŽà@ß?ëÓ?×@¢?Ôò‚?Õ-±?¸ÚÉ?’+g?¢>¹?ʉ2?ÜÜÏ?ï*ë@Åj?Ÿ`J?_ek?I?‘’?Je¶@FW@oé?NçÖ?³°?„¯?œ%F?Lá>ÔÎJ?XÆD@­6@ +=Z?mÖS?adW?¿)?ÒÓZ?šÇž?r.&?¤+}?ÒDp?¦y‡?<35?wã?ñ !@VG?¾C? Fú?}@R?! +?,Oí?ƒÝ?ŽnN<é\<Ƥ ?=ÉÉ?q9î?á',@[@4u@\V@}6?WË7?WöO?ʲÐ?¾?ç?>A? –>æ²·>r4?½ò?žõÎ?•]V?gr?Q?·ìf?¾Ã@>…6=ôs>Ía>åÚ?sÂ×?‘•(?  ¶?µŒý?‚ J>Þ¦ý>ÏÖi>MË?=Âè>à]>áÌO??¬ñ?£Ãö?¶j¬>ÁQ2=‡ÃÔBÆ>æh>{©D<ä/Š<]°>e”÷>ë?wÒ?"‹Ä?x™>î j>—²w=ˆù¸ñ±>UŽÂ>«Ôª>Ÿ"É>d¹>' Q>“I?}Z? +é>P÷Y> ˜“>D=‰à;“X =b˜¸?„„æ?œ#;ª“ +?‚Mx@À¶@pü@(X?…2?;›Æ?Yè=‰¦—>‡ð>ÝJ>Ý>Þp>Ó¬E=÷Å=7z?ªtv?ÔÝY?B€)>z1c?J÷??Ñx>ÆRÇ>ÄWŠ?C›A?R/¥?]>-?dÈ@?BA`? °èT‰>¿—>&D>,~>2Ç„>© ?i??aÞ>éÛ >ê•?Á©Œ?ËÏ…?'=‘>îCS>Ÿb>YŠÏ>RÁ>Kã´?án?mn¶?-€‰>¯Æ²>Ý69?CUg?+õJ>¦`>  >ƒÀ>s¨³?,ŒŠ?5ª™?Q5?TäK?ò]? Ÿð>€_!=÷—ÿ=׊N=·NE?D•k?­ºS?oÃd>æ‚>ê:8>ìŸi?• ~@1q@QÌ=Ä>yÓ*?© ©?«!?ì«+?ëúÁ?™òæ?”ª%>{Í=¼¶W?8È?Pž†?åS@¥c?_V>Ý”¾?à ?³¬?…yÈ?§z¸?^j)>ìlç>ݸ>ÜÃä>Èw¾>iNä>Ï|s?lE;?xU¤?˜·^?Ül?À?¼ +@>_Ž>“ö?gY?l]?À'?•µ?xC??ká¹?kÚe?kÎä?”Wx?¤Hé?£s÷?¥fí?a>f:ß>ë—±?&Ò×?o”˜?KÀ%>ø6ˆ?UÛ9?ÚH¶?Ñž?É>—?ºÑÞ>À#p>¯™y=Õ‡=ôg?‘œ,?—û±?¿»J?Ä#!?ƒv¶?k->¶<€>Gº¨?>ÿ?r= ?G(Ð?.œý?‡ +3?·#‡?¡Ä/?×±?x ú?²P?>i„?ŒD+?wKl>êç©?¼?A ?8UÎ?W”?^Z?· 5?¶ +î?z± +?q8m?¦ø6?¯¬ö@îƒ@0*]?4 >êà3?¥úŠ?Ýn?³Â>?¡Š‘?¡Ûº?‘åi?eÌñ?(ô0?%] ?ÈR?¡H?!TF?´ ?)¬ã?7¬9? ¡? ÿ{?uq?qâ?ˬ&?Èâ%=ù?\Ɔ?za?"Þ?‰ñá?$¿?>Åg‚>LŽ=Ù¡]>—YH>ëŽc>ë•ç>ëžX>먰>ë°¬>ú€Ë?§š>±|'>HN5?jÂ8?yÖ?±A?«úØ?Rp?U‰f@Ø=@¹‘?’ɲ?‘­õ?”©˜?—£¬?A£¼?ËÔ?6ô??NÍ? +Ú[>ì¹x?rÅŒ?–í¯?7?lì]?¥'?Ôjg?Ð À?Ñöý?¤"?× +?(,o?N/6?r?¥Šô?Ó:¸@<Öq@!”Ñ=OO=Ë0™? lH?Ÿ?²w#?±'Ò>ó >óX?ª©?®F¶@#þ/@+A=?§‚ÿ?ŒˆÕ?ÛÓM?î›ÿ? ”ù?ˆLU?Ùý@ÄP?é²?Í¥>?†ºP?:2ü÷Y>øϬ? +wç?pƒp?s†ï?eЮ?a°?ŠpI?™n'@-{@$ò?„úï?‡¢?Ã[?Ƨy@°k@(?Fï?)ðÆ?ö¥õ@Ã?±e?vÕ?}Å"?‚\¤?…ùA?|éä?0rË?'Á—?ê5?¦s³?#Ž>Ãæ?p×?t?Èkj?ÐÂl?dD©>ú?CÕ½?qâà?ßz@ÀE?£ +=áQè?¤¥º@ d@ F›@ {»?ð§ó?ÏÆ?—3°?X|Ž?*Ò´>ʽ?Ž‘a?õÛ›?— ç>ƒ)d?>×?¶o?†ç¼>óh?8é?•±?Ô£Á@#0o?û‰?0Á?àJÓ@ƒ»Ä@T\$?µMP?¤ä?sŒ¤?tè?=?aW>ÕÙá?N?] ?†"?Õ)ô?¦HX>‘>Ë}ð?Ÿ¦?¡¢9?Æì?¼RÁ?8ñ—?Qõ:?§Ì?™uõ>ž]>Ô¿ñ?t0ó?‡ ?Éi´?·Aë?ŒB+?—œ¥@½Ù@ÿ?ò?øï@½@¬H?~kæ? .?tDN?t¢Q?‡Æ9?ˆbó?Aì£?J¥?¬¼?¸Íœ?¦\R?‘ã?µ££?·%>šíæ>–›Á?™c?ˆÛ(>+àN=ç“Z?Š°?Ž?‚A^?¦?t¨ù?tÎ?t%?z6¦>E‘>÷Ì?ïƯ@û?ÖhX?ÔÊV?gSŸ?HT½?.53?*‰¥?'©?™ÎI@* Ÿ@:_'?¥ÕY?S,Ä@¹2@C°°@$°@k@%íå@+*?ä»$?³ÀÒ?G“ò>óeè?­œ?°?z9ë?Ÿ2÷?È-®?ÖVV?¢†b?wÎs?¤8Y?Áê?Úå?òôa?Ô4?¿þ?¥à?Œ­æ?zÜ?Sº\?g~à?_”·?Thì?h¢–?Ö?µÔ$?ŸC“?~Mñ?©Ì?éÞæ?Åþ?†Ö{?®Öu@ž,?ðó"?µu)?¦E*?qÖ¾?c‡¦?*\\?Xb+?Þvü?Ôš°?€ ?~#È?á›»?â}Ÿ?´ù^?´ìT?´ü?µÅc@+8@&{ó?†X’?‡˜æ?D”?LH†?¥ J? -—@Cc~@J‚E?ß܉?¸”Ú?¤Gu?¤¾Ø?±*?´â?‘½5?}¢o?ò @P£?Ú8?­à?~î¼?Xã ?¡á?Åü0?ŒšÓ?(Èp?›' ?ñ I?ð*Ÿ?õ5?õ‡?Þ¨Ä?Îïy?©6H?¬^à?¯ˆ|?¿T'?íÂ$?ÖP¾?{“Œ?Žuâ?ûmÏ?ôpÕ?k»?Š©?`èâ?m@œ?ÄDQ?¼§q?²Šâ?¨g?ºJ?»í ?…Ip?mlŒ?mjê?mKî?ïçE@d?ó¼¨?Àêª?œ`ð?‘Ç?“yú?‘ Ÿ?«‡¯?ÕÓo?Õ¬h?±UÁ? @Â?lMÐ?fŠ?ì'z?ìà?åàA?Ñ¡a?YN°?V¼V?ë½[?ë¦?¾Œ•?´pG?š­õ?£’S?Bbø?–a?‚nâ?žN‰?Ì«h?çë¹?êÞÎ?êÉÏ?ÈÌK?¥i ?‚§^?ZD-?Ÿƒe?Ð|E?ÝW@–1?×€¡>êÖ?!¶@)/Æ@#á¥@ «½?ãüg?}€l?¤"Z@Aã@þ?–]d?‰ ‚?­#ø?­Ûü?ßÙ"?Ô]U?KÒU>ûˆ×?ŒüC?µµà?š¸?Œ÷ñ?Ê‚ô?ö4^?ÓH¿?­-6?¥÷S?š¹?„¢ +>tãè>¥ßÖ?ã‰=?åU?nƒF?wH?¯%?ÊL$?ùZ ?ï1,@ }¨@åù?Ðx¹?Ÿ?+?£½M?¨=œ?Á)?åDs?ã&å?Ú¼?Á¨È?ßš?ëp?«”à?«†½?œ‚Ø?®?µj¦?¯…`?Óã?â}Ñ?Ù­?Íð?±ÛK?–Ck?gú•>ã¶ú?`•?‚ä?†ˆn?ÛíÜ?௨?¬É?ªVF?ªG?ª7°?üZM@„Ç?Î ? ê´?ºÙ-?âlv?Ôl?±›Ñ?ª?§3œ?¡‘–?º4?†¢ù?…y]?¤p²?ÚE?áo*?¹Še?“tk?sž¡?a'x?Ù@¢H?û™"?ºË'?ÂJŒ?á‚ö?ë½Q?Š¡5?&%?Z ä?YN}?ñü?^Û>ëõ¹>¡RÔ?@˜?ÅZé?¨*©? +?-W”@A +¿@S¼?ÁFÀ?ŸÝ­?œ7•?˜¢`?|ùÉ?^_"?Iš.?6Ž¥?È|?Ýòð?ã`@ +{L@¹?õ? dÕ?¤œµ?Ó™I@³ž@ +&?²†> +¿>Шf?¤Ó¸?¤|?êÞk?Ô•Ÿ?œoi?£Ÿa?ÖìQ?ð¹®?¿ß?™F?Ë©Ê@W÷@“®@°R?ÿ›;?š™?{ý?¦r?¿É?b¶:>ä]6?LÄ?£´‚?Ÿqó?ž: ?±_ÿ?ÙÜM?ÙÃÐ@ÊB@`ú?±;?Y‚p?‹y™?¶F?µ¦.?ƒå)?l(Z@.f@9’Þ?‹51? ó?uv¢?©Ç\?Ënu?߇?Ô+²?ót´@t÷?Y™…?WˆŽ@üÁ@ ð?ÿ“|?×%6?±®X?<’j?wã?yÜ?]@|±@"¹–?÷ ð?Ð.¤?S…?5_Ç?Z‘¡?Ý3?Ž?Uãš?UÕ?àƒ?9ê?IË?_ɺ?—@E?º½ ?±©=?‡½K?w'·@l @QÆ@-@'?Ø“Õ?Tü•?Tð?Tç?Tá?TËy?TÑ(?ÏÍ?íµÓ?Ëþ?©P ?³…?ú÷õ?î—³?õ%ò@@Ý@F¬?ú¢&?¸:¶?o"?¬Â@ pŽ?ý}™?°œ?£ÚS>…ÁÏ>H.¼?¹ñ?Tð+?˜H?ñl·@+ó?¹2ç?Ì2?é?Râ?‰÷°? 5^?”v +?©š?V§l>Ö a>ÚêU?UxŸ?CcÞ?‰ý‹?t‚?¡h?Õ}?ÀøG?W\?WQ?W¹?Wí?‚:?€?¨“?”æÔ?i”Š?Y6Û?-'Ÿ>Û??-W?ZJ_?Phî?‚™?9Rp?4sw?ÁÍ?J9:?\7Â?b`º?sÏ?®+‘?ÝÞÞ?©—Q?V?:b,?«‘×?§–«?žeÍ?3w>ß;?Ê?^á?bÓ™>è¡9>Õ>ãf>ϱ6=ïÊ<>›…>CÊ¿> -1=¨‡(>ŒWD>è¡ž>âèº>ëPÜ>ì¹>ìÅþ>½Ïj>§¹>Äx¯>âS>ï6O>ÙÁ>½Hö> ŸÖ>ƒÌt>M€v=CF<8]>" 2>€B’>ýò°>æ£ù>< Ð>{\?°?yšW?šõO>šG{>S—><4Š>×w> ‚d?„3f?–H @ê¬@35Þ@V?™#:=Ïc¬=ðÞh>åG?[(c?Z°v>g3j<A>ÆI?Yµ°?4Î?›7 ?­¤?#j?IØ-?'³à>þY„>ü² >âüÿ>â‰>ðÜ>"H?;E¬?dÉ?X$?Kß?•>b£>ÍéÝ?‚ã£?…âª?‹R +?‰øj?#¢?ë?8þ?>¥¡?Pà…?VŠí>å¦l=Ù˜æ>Í”Ã>õ||?3 ?3†?’#ö?“.=ÆÁÞ>¼¹ø>êàç>êü‘>ë:?Œ¾‘?Ïf~?“ó”?Ö?:>>ë°]>Öî8>«=m>Ù0b?O|_?@¹«;îÌÔ?çÄ?ßã?RÕ?]Õ?€?€í?cƒ‚?_GW?cn°?gž÷>Ëã_;f¹?æR?¹#F?}UÙ>xI¾?zNú?~ªË?ˆM?~a/>…ÿ~>¡Û?8CL?2´þ?gf¯?l˜™?3y7?=Œì>Ú +P>—¦y? h9?=~É?Œ¶Y?©Ì?-Ζ>`Ñò>v•¢>e6]>`…º>ƒ1>á³?<\å?>µV?Aå?N;Ý?l£?]ë?)?9õ>?„MB?q?4“? =Î?Sˆš?[gö?wŒ‚?w:g? «L>ë¯C>\;ÅdS8Ž¶š? ï…?iÛ>æy“=m`0?!òï?¤œ?½?ëS!?èË?ßö‰?¬Ï=ݱ>&>©Œ>¼‚l?k ?p =?Õf?Ô-÷?tËÉ?kÊ>°u†>ulž?BU"?p0?Œ t?ŽßL?«¿?¢þ?:ó²>¡?Y?G×ý?a?këv?W"D?>A?n˜2?Î_è?·@|?ëc?)-`?꽎?çœÉ?­Mõ?¯‹¾?ngÍ?jÆ’?qœ®?|ÒS?¢˜?¦w?E]—?#¿?Ð…=@¼?—qÔ?*U?A¸¤?JÕB?H8?EQ…?¾J>¬[—>„®>Tä?+¹ö?6‹?m5Ð?€%s?׿?Ù‚<˜#$?¡*½?²8ê?Yý?65¸?…"á?•Ô!?<Ü.? +Þ?Æ?ð>õep>ëx>ë‚×>댑?ˆê ?ë€?©yá>è¡w?üD?kÅf?·Ï @A=Ô@"Є?òI?<ã?r*Q?€–?Ü;?CÍ?¢.?m +?›üë?š‹í?™Ó?—¥¹?qŸ?p&J?Ÿm+?µ¦£?±3-?§rà?7t?œV?Š¦í?eÝ?‚RZ?•ªQ?s‚K?(Ð?4‹O?ZD?|wì?¥ó?A>í ?:*?ìUp?år?²X ?¨-¾>íç>ýÜ’?²v?³-@0¤Å@2©È?6Âò?_†?Ie˜?[¢Ò?)ïJ? ,?Båà?S|n?ÄzÎ?牎?õÛ}?ðëˆ?²ªu?˜?c³ ?'© ?Lùì?oU¿?FÒ?ì?Ixx?ˆjL?®ûä?Õa@@/ç@í?áÒô?Å?pú?‡õx?´(1?³;³?±ÿô?»!R?åW?ÀÇq>>z™Î?r™¹?|°`?“}?6f@D¹@0c@!¢Ã@"z0?…î|?|\?c±•?w#?’?Š}ê?…[H?€8 ?»§f?ËOù>Þ–=ûP³?1ÖÞ?YhÄ>¢é> Æc=ßsK=§8ë@=Œ@„f^@ R?µ´3?Ýo?í#”@0ì0@Mõ¤@áæ?þ-p?ú 7@Ž?•:à?*˜}?œ]?ÊÓÜ?›×?Zé?tN·?‚©¿?Ƴ@ lò?ÞK¡?—˜t?“‡q? ÝÜ?†½E?@È?G‘/?MÉÎ?¤GÌ?óîÛ?é‘G?íf@ƒg@ž$?ë%Ý?s•x?I!•>ý9¾?)G?s²Ã?Kã¯>ó¿¨?]>d?׆|?÷Ü @$ÈÇ@,‘?igË?]ç?¶íõ?—Ëz>óð ?B¹Q?ÃWI?­Vé?tm?S ‚>•ìÌ>èè?—Qq?Á­~@OGS@Dê±?ç[3?â>²?´ßõ?¤t£>ôw§?#{[?¾?Çd¶?ä¤C?æB»@‘í?üó??¦Ï,?›m¿>ô$E?_u?B<Ó?J. ?Ôh?ÙH?íÀr?ã+{>·h6>¯¡.?ùl˜?ÿÆZ?43ö?(ä0?Õfr?ÞLm?Â]‰?¼„Z?xIC?sø¬?²šX?³F>û>Ò¿?¿”ë?нf?º(†?¶Þc>•Í">2p?Ùv?æÀÎ?º{?¶Âé@(ª@B“J?òâg?ÊRp@ @Ì|?§Pu?ƒ­:?¶å?À¦A?Ôì?tÜ?Ò¦?ìõ–?•I‡?e «?á~Â@Õl?º%î?›¿l?“ûR?©?¸¢s?Ñnã@u0@Àò?À_?r¾Q?En–?GO? f?É1?ÏZ@*Æ?Î_¬>òhh?jTª?µ¹c?´Ã?¯ò¾?ŸØ?;?­Þí?Ñ$?¬ØV?|¿?–¯?µ[8?µ‰È?¯éÛ?OŒ?¹ƒ?Jê?¤¿Z?Ìùý@/ª@¥½?‡÷J?‡fø?´àñ?®†N?xj?p>l>Ýï’?mú?¥™ ?£Y?²o–?©_|@®&@ˆ$@R׋@b¾¹@°Ë@ ÞW?ž“a?„¸?ªiï„Ï?Ís@Ь?µ¹…?8?50Ï?Iæ)?.2¡>ï?Kr;?¥¹Õ?–÷‹?nÀV?tl?s/>?†êî?µÐÙ?•ƒV>0ë>’0Í?W 1?\*0>“×?>˜Ô?p6õ?c@Ÿû@ +o®?ø1x@-?èá?æ«H?b³?nîñ?£"ñ?­ù?–j®?–ÏŸ?Ñ9·?ìá ?Ç&?¢Ø?pîÇ?-`V?Fy¡?LµA?fÍC?£ÝI?œÿõ?‚Žé?˜Á?뺀?ÖSI?€E?…5?k¾?s³?ÄS¯?ÇíÑ?ë6F?ëbN?@ß2?Cs?zéA?‚èÀ?DÄ>êö­?Iƒö?jå?œ£Ç?¶p?~Óz?+ýq?T„‚?_–É?™–¹?ê95?Üóö?ÍjÊ?¾1ª?,ùÒ? #;?à“?Ç>ê#m?ý¤@!cÍ@Pü?îÄ?éF?›‚V?Žçˆ? +{>¾Ò8?™Í`?Ùô?÷Õ¸@ Ø?ËÚ”?iÇ?º%0@<Þ?îp?h=H?¬òÕ@?ûW@7@² ?ü3š?šÎú?žû†@.¦w@=þ@Qp@bí?ÉÈô?­tÅ@ RR@""@`­@Y/?íw?­/?¦EY?’}V?t?¦°?¢Ÿ%?f°?qåñ?f0|?fÕ?™‹Q?—•u@>‘@¼ˆ@HÓ@‹—?³œ??˜ü?u¾Ô?oêY?hè6?z|~?“Åß?ºE¸?±[?dØC?`ž?F-­?b0>ÂáÖ>r\ç?ÂY?äF>?ä1?ä*?È"Ó?¹£Ê?黜@ˆÛ?Õ5T?|½|?mRÕ?‰‹?šâ ?ªt]?ª…R?à“ü?ÛêP?Öög?ÒJ@ -J@ýä@é?âƒï?Ûj=?ØÕ?ñTp@ óË?æõ +?ü`??<ù?ú=Ø?ðu?›-?|ÿê?¼AÇ?Ò+ë@¢Ñ@á{?Ó+k?`ù,?‘X?ËÃ|?Ö§ô?Êœ¥?¶ö ?A°Ä?`¨|? Ê?Œ=ÁÉ{:Þì>Ÿg6>ß¾j?¦¤R?îŸ?Ã;?«e*?¤l?_/+?Xv?o>â5„=¢„>1£V?©£Ä?Ìa'?Ë[Ï?¿iÞ?•ær?NÈï?pLÌ?ÎuÀ?Ôó8?ªó?´¾=?·›Ÿ?¦Éå?©t?¢ðf?Íï?õÇÁ?ú¦¾?é@Ï?žOT=ŽÕ>Ò¹6@ ² @  ?è›Y?ÏDÞ?«2E?¤ÖÏ?R\ì>ã“Þ?pæ?à°í?ÝSG?ň^?Ò“F@Ôt@ÂÐ?»¨?”¾†?w©Š?[Kw?›Ûˆ?Ñ<õ?¨¿·?®Ì?05›?ÃH?ȹg?•™ï?yáH?\–?Y9É?aà–?tb»?y;H?í•?—¼?ØœI?؃³@Á¨@ƒf@÷“?þq?Ý’o?ÈïK?»À ?h´å?€Õ™>Õ4t?„ƒ?ŒÉã?°5?¿:µ?¸ùq?²µŽ?’b >ìÓ‹>Ø>á¦>ú±’?®Z¨?À³¥?!->¿ž +?cvOy’>ã/?‘$c?ž¬‹?q[?\wX?‹~½?•ôü?ˆHÃ?¥?Ž.?^ºÂ?‰?ÞÊ?ë@à)@ g.?/}þ?I¡¥>4î>°¿a>å ? '?©O>åHl>çxC>Ì“}>Òoo?6Œ,?bóu?"jŒ>ë„>ì9 >ìù·>[W<ñw:þÀŽ<ôëè=²2Ì>5>OV{? ¡@?#y>gë"=4È5>ÌÅ}>éŽÙ>Ìaÿ>¯ï>‘h¥>n=>¨à?Ôe?€Nh?€â?{©„? õ>çß4>#;è¥??>Õ8?Š«?[ÙÃ@L·t@P$£?šîI>µþr>VÿÏ?…1)>‡qð>áQ?[1?[Å?Wì ?U™~?çû>éj°?.íV?›yg?˜¾??iƒø?k¯'?˜ÂÅ?¢4°?Ëô=€”¨>˜uN?Pf?F†>¹NÓ>¶ÿÿ?R˜s?dÏd?e"*?ev?J‚?(Ý?7Öç?f¥z?]÷¶?=–‡?AÇ?BñÐ?>@á?!ÑK?!Q?qþ?|R>Û÷–>‚7b>´–s>÷–ñ?Ýw?/S?'”Þ>÷„n?À×>Ñ%Â>ÈMô?Ì>?$3?"GD? ‰Z?Â,?ú{>®WV>F‹>³aL?¨]>ÎåŽ=ß¡_>–q]?>6‰?,ñ>É:Ê>Ê:?lGc?jvÖ>î¿w>ìgá?Ú5©?é‡M>©Z^ž>é7Í>åŽ>àÍs>ôqó? +¹Q?…à?Ϭ­?‡>ʺ>ä3?l¯§?P'›>µ]G>¼8>?oY?*°_?ÈR?Ä l>¦ì>•Ä‡>5S(>?è?…5Æ?—-?GÔM?/mñ>ÂÒÂ>aDœ>¹¸X>ìTÒ>¢LÕ>;e—>ø Ò?JD#?"pÄ>ì% ?+pÊ?†C?IíÄ=ÜÁÑ>´Óæ?°ô©?§•?ZS?Wç>ëϱ>îêƒ?ªI?® Œ? >ì×&>ëŽ>ë”.>é‰>äœr>ð<~>üh×>æ–Ó>ÐZ^?8]?}èm?ZŒp?<˜p?D;Ó?KàÇ?,¿>§cm>á +ù?DÓ?XB•?š4¶?˜2F?¦ÙÅ?¨{6?k6?k°w?’q„?Xn?t>êÚÕ?fŽ?ƒû?¡æ#?¯ä?˜$™?†Zú?jõ?KE&?ª£s?öÅ?æ”Ò?Ï¿f?—Ä>Ñ|f? ‡ç?\8Ë?‹:g?èÓÊ?Ð0È>ê¡â>ýa?j¢I?l&Û?«Q>?ª†??ç_?Pi.?Tâ£?úŒ @ª…? U?Iìö?ˆDµ?œä ?±Á?¾é\?•¢?KÿX? øÌ>yË;>šéi>êÓY>êÛG>êÝ^? +¾H?jé”?c8>ð‹?>Ô/>¥ß³>¬!?|"?£R>ïâ>Âè?5ž³?Mí=?\ÁÈ?bU ?!Êj>øB(>í¦œ>ëj—>Z0«<üå ?Š5@ zr?½2ý?ZÌ?cö{?×{Œ?³qÝ>ëÒ¼>ëÛF>ëè¬?­?Œ!?‡¤?‹jæ?Œé1?Žiž?ë?¯×#?±=h?—~Å?•òž?#ò]? +Ý?{X¸?–Ôî?kå«?GÌ ?¤¡(?ÍÝÞ?Ðî ?Óø +?¸í¿?žÓ©?`‰N>ÓHò>éT>û"œ>ð²Â>뜣>í|`>î ˜?ï”?rû?Œ¼?Ü“ò?Òÿ‚?²lÕ?³y\?ÖC,?Ü÷?Âf¤?¼u?·×³?³4—?‹"?…)D?‚¥?}é·?§Ëé?³ k?áÄV?ø½%?ÅY?§î ?…rÍ?oc?o&s?o5Ï?‹Iü?• ?M‹“>埒?¼ä@'MÛ@‰¢@Í?Å¿[>þè?&¨à?oùú?Hv>þË[?(8Ñ?z{ñ?dÎ?*Î?R[Þ?‘p?…Ì?R`j?l1º?¹[y?´Ÿ?Ï­?àX…@–o@~@?ô8?ìßu?)Úï?”@?Õþ1?Ú!?œÃ?¢jE?Ž»±?‰ ? Ëy?ê>ͤÌ>Ì3??kÙ€?}«È?z9Ÿ?vÆB>J=~?= +ü?uâä>§!–>- \?u?¦…?yƒ?]ï?ŒZÞ?™­?\ò?#LÃ?;=??WM?›Èn?¶s?Ç="?Õ}?ÆT.?¾’Ç?øP@Œb?úÉ9?Ä™ß?ÓøÕ?ão–?èRÎ?óAà@<ü@ƒC«@=£-?ÈÞ)?¼á‘?¶¿#?Ñ8Û?ðü(@)â@E¼2@ ›ã?á’>@Sˆ@oI?ÊÔB?Öy?¥…6@"À@ù4@­@?׳T?,¤?a}ê?‘|3?¿+Ž@ÆÙ@¾b?óé‘?Ò"ð?sòV?–T¡?è*?ÃÜÜ?6?(˜?t˜?t°?tê? *§@‹n@ ‘l?íÔš?÷ø@Nú@ó@bƒ?ñ‚›?3?‰”b?Evz?[aß?¼Èj?ÇÖø@ã@:?ÿÄ?õ›Ù?KW?VÍR?‰Èp?‰PÇ?«¨ ?¨<ï>óôI? Û@¥@‰7?t¾?y³†@0j@-1€@€@o @ +‰Þ@Á{?ãâ?ßxÅ>¿Ê‡>å§?˜nC?±ï3?„¤?±Æ?5å[?%7‡?Γ¼?â“I?äõ;?ç[-?¾…x?¶‡@„r@hs?ÿ?òÁ3?òð?ó,?¾«ˆ?¬‹ú@Oêê@sØn@ –+?ËU;?á‰[?äýÛ? ¤?¶¦@ ä}@BÚR?ÉÇn?IÉ?e‹?rÃ?r‡?rzª?ŸÆ?º‰c?q"á>ô*?š'²?ï8?x>Jòç?AO…?§®??lkE?fŠo?@pÚ?}x"?µEß?·a?Àé?°ó•?f3j?€WL?¼¨×?̳ @Ѫ@µ@l@ "º?´ÌÃ?× Á@Cz@1‡¬?À¨S?¬Zè??®?o.@S@It¶?±þ\?½×Ê?ð‚?ðM?Þ^?ài ?ÄÄ—?½Ôª?µc?³ó@9Ïó@Qœ•@4Ók@%èÊ@³?ï”>?²RP?çÅ?›3?³þD?Ð+o?Ð,’?…~h? cå?G´?~ž?^Û.?Y»ƒ?en^?n¡Á?µõ@Ô(@žM@ Z?ëQ?<ºø?Wüö?µ\ ?«kô?¡x{?“¥[?w_?…7?ÙÐ?ÜRþ?s ?m{-? ¡?ªq0?ãºv?ìPQ?Ge?­?´^?Ñgš?ŒÛ…?r€?ƒ©0?ŽU?£â˜?§;‡?íQ“@pÜ?ãµ?l5ù?«‹ù?ûç’?¸èé>ør?UxÃ?Û{¨?Ô){?ÌÒ½?¿¬8?Œt?f ?±ºk?¹ ?à1á?Î B?îýg?ãmÑ?EÈ?`ô?ÄŠ?®\8?Ñw?áWG?™V1?H½Œ?k³Z??‘?› 1?—0w?dŽ?uˆ×?¯aÐ?¸)Ê?ãÉ}?Üå=?f}?o*Z@_Á^@[·¼?ÎU?Ät?œŠ?‘.z?Ÿüƒ?1?§.Û?®‹?©Û4?ª&K?­È¨?­q)?šÆ9?ŽÃ5?ÇÏí@ Ì ?ö ú?ÒÛC?ëV½?ñ”«?óÕ˜?ƒ†K?~‚ ?²Ÿ¶?°‹•>:kX=±¨šëä=?A @ +Eö@€8,@;`¦?Óp¸?¦ ?:•?CI€?(ì‹?/¦ >÷$Â>¿ì?Ô”;?Åq?Øä!?ä/Ê?•«°?ƒ†Ž?ðý@†ì@–ù@*ÅÚ@ݯ?Ïú§?¸Û?@ôÕ?6ô½?©ªE?© 9?zt}?†èZ@$“µ@'µÊ@Fx@pÂ?á$Ä?ÑòÕ?¹ˆP?£/?½•a?ân?¹¹7>áæ?mz?õi0?úY ?äÅ.?î¢y?´cä?¨òë?„° ?cò‹?`ÿ#?`æË?×m—@%¼ë@#º@-U@ žÉ> ~w>q,S?LÅ?W!>þ! >×,>Ù;>߬w?¬|å@áa?ÛÚª?…ÑÐ?€z6?vC?v'?¥ó?¥&ï?ô¹R?Þ$1?œ?› ?·¡Ê?ÑŽ?ÎL4?ÅÉh?£tW>ïK?S?¦1Æ?¦Õ?ÜÓå?ÝD?Ý/X?Ý?®V??šXâ@I@Aa@ Wà>Àôu>ý ?É(?Ô @ ëû@ŠO?Ìÿz?­üü?ŠaJ?[°1?¯ú@b›@žK@ª@ +Xb?ú¤þ@d@‹ @ÿB@ $@ðŽ@®·@Ùñ?Äç_>Ùå?oÌ?µì“?°j@²„@Ú7?çæ•?Ìâi?_‚–>e~>À>Ø»Œ?^?½ê„?Éxy@‚@!¾Ï?¿EË??à[ª@ ÄÞ?Ý~m?6rþ?'®?ɤh?Ô²´?ÖÓ?Ð`N?ò‚½?øã?¾üy?æÿ?ßD>Öj>Öƒi?™Ç…?¬ÜÙ?ƒB…?V&\?º,¯@¿“@z¼@øX@ ¼Æ?Ü‘?ÕÇ?Ì‚?¿ó¨?ÈŽç?ÕXC?ÕF‘?Õ8Á?Ìe?z³?Z3@>ý/Å? ¸Ù?¥*¤?ÔÓü?È{G?©fü?¯=@W÷@}{?ÙÖe?É°?Œ¦ì?wöñ?T%?jÿ?=¯z?ªç?£í´@SÝ?þÇ÷?ô*_?é’ ?±?‚ò;?’)P?È>†?ÅK>ÔŒ2>ùà?\þ?%?®?}ºN? îi?ljÃ?ü½e?è>ãŠ{>Õ‘?Àè?ÇVx?åÜ(?ð7Õ?ØWÇ?ÇŽa?µýz?Y$‹?Z¹M?Àþ}?­ïS?±Ñ+?»5 ?DB#>h¯?áz?¡m? Š ?šâî?“â‘?X ?X>>¹†>¦×=üz->ÌÈ ?gv‚?bÛ +?2 -?â–>…C‹>Ÿç¿?7‘?T‘"?Ÿ„>ùÜ>ѳ>ö‡Z?žæ>Ýò™?.ƒF?~èîñÔ??›/?Óƒ÷?Ý+E>׳÷>âÿ=– u>´ìS>å7"?ûÑ?-Qú?A¨?.\Ÿ>ƒ<Ñ>’4?I²?hP>ë³$>ìpX>í5>„œ=qç£>þN>èh>!™Ö>?ÃP>m«³?Ü?WqM?ßÐ>óGª>ø†m>ùˆ>£>D‘³>!r>{ˆY>«#Ø?~¥4?D.?sA>è¥Ê>¡Iq=s7<˜fà>Å”>£1ª=1Pn?¬Q?wR>î‚=kn;‘L.@hÈM@>S±?µ™®>;&=Š»H>­D =¡Zš>Úf>Þ‘%>á2^>ãÜq>æ‹‹?9!Z?VáÐ?\>+?hN]?wd’?¢ ?¡×˜?Ó*T?Ù7?€–>We2?)ú?W°>ãÁ_>âOé>P+¢>]zH?CS]?ex|?2Ý™?ªq?9X¢?f¨w?IË>ç2¨>ü{?g¶2?gö®>÷ª\>èj>T´>ÿÞ>ÀR$>é>v?ø›?/*u?~>w¼>C‰>NQå>gº?:„h?:±?ìQ?²¸?{?No?]¢f?kfÜ?âj>¬Õ§?.E?kÄ”?gv«?TUp?“€ö?â>R?éº@?ç#„?U;X?P¥(>û5H?Zº?«ö™?¯¨Ø?t +n?l<> +õk>¶—>ì¦È>)«À=/Ž¨?O“³?¢5?m§ó?1Wr??^S?<ŠÜ?n»÷?£?h?ÚJ?KªÒ? .>§>Þm?ìšç?ÜÐ+>ìŽÜ>ñÉe?Î?q?Z1é?j•?p[?dåÚ?e">ìY»?¼h?#ÿÃ?®G>ì;¯?Œ³â?ÃAÓ?vÅ–>ìp?`Ç?±ê?‰E5? ¥ ?>N ? 'n?Œ^ò?¼>þà>ù§?ök?o|¿?kÐe?k›Å?kmJ>ö…ø>ë€`?Í|?Ý ¥?0üP>ë`m>+îÔ=3ê>ÈêÎ?Z>–K­=î—Š>›J=>ë/??Cº?ˆ6–?B†y>´ï ?.O?Ž«Õ?‚œ!?- ñ?/ à?28o?Aµ?·iÄ?¸õð>òoØ>ê¾Â?¹o?Žî>ò•­>êªÁ?Šk?¢+¤?ú??ÔRÓ?iÆÇ>ê–>ÚK>Ódv>‹¢=•&Ç=FG;a +Ð>š±?jƒ?k)Œ?fë?y0c?«]å?™P>>-a‘>‹ H?ýŒ?÷Öª>ƒ“>`Û³? ë??'ù ?#c_?`?² y?ÔCx?›º5?…ã™?v©7?d¹›?PrÌ?-`¡>õh>…´d>÷Y>?O*ç?]¯p?‰ +ç?‰?°L?*>`²‡>fý{?Ty|?V¯:=¨½3=_Ž">»ÿ=Ç!ê>çÅ>úÂx?–Å?°ey?°;?­ó¨?…ÔG?ZÚç?ÔQÉ@!Ž?±¼¨>ë}h?1)ü?‚“c?3•Ì=û)">©\k?F‡?f)h?°áÿ¦Í>Iåþ>Æ{>Ŭ>ì•"?t þ?&O?záõ?lÏ­?C]?î§>¨®2=£n¤>ö–G?náf? 4É9žR>2>ídè?=¸d?¬sg?Ö­í@)v¢@ßÂ?²Oû?œÖ)>³Ø>îÆy?› q?™–‚?)Š?6Á?Yx3?^y¸?ÏO^?Ñx)?šÆ[?—jb?LÚÿ?=ñX?ˆÐ?™åÈ?’8P?‰Šî?wëŠ?o?«ß¹?Ìb@[@Ró?Úë5?¨þ‘?³ð‘?·Ón?´x”¶¼>iƒ?´?ù?µT?¾?–ÀK=á.=Pð¼?¨=i?µMU?µVÐ?µc?µ_?²æ? /î?[?‘±=?œð@…t@c?˜Ž?S‹@ º‚@$Ÿ"?éË?&?p +â?hx?º‹?Ô¼Ž?«¸[?šÿ7?ȲA?Öûq?Ìdå?Éàœ@_=@I@%WÖ@*Ö@1q?ó Ì@<Á@*«ð@Nºß@p%O@4 }?ó @¡ë@2…Ÿ?Êp>ÜO?N–?‘@?â/^@ V@¦Æ?¥=Ô?ëÿƒ@*ó˜@•?çÝD?·ò=?0è?„pM?ÚPr?íú@”æ?ëC?¿ÀÉ?·—?”x +? ‰!?À­?¹¢Ý?±Ø–?¢q{?sãŒ?sâš?såí?YQ?Š +?œ‹@. J@3ié@HG^@)~É?œÈß?«‹z?È‹§?Ä=í?¿î÷?Ó»@@Uô@-ÿF@%¡l?ÌÓ©?»[‰??ì5?Jã)?©×º?§rC?‚…l?w”Ó?Ì%>øû“:q­µ=?ªâ>ü£ç>ú…>¢Èn>ú©w?͆Â?Ò‹?Öºó?ÞïX@"2@tö?Ì4,?Â!w?ØÇ?Ç¡Ï?‹?„*Ê?ËÕ>?ŧ…?µÄ‚?¶‡ç?¶C?¶|§?£~›?¨úå@GÜë@Tïk?£ÅV?}s‘?)Uà?&±â?xÝ…?†@1Ú~@Ps¬?º±#?€T?¶2?Ì2T?Õ?Òã@Í€@&›ô?¯Õˆ??íM?rŽ&?…®ê?ƒ W?€h?ÆYü?òB@ $v@ @Ö•?ò?]B˜?jûŽ?áJ˜?Œ>ñÉ•?0Qš?q® ?’Âö?µ1ž?°ÚH?¤Ÿ¼?Û¿r@$¨u@/Q@Bó£@,³¸?æÙÈ?Þsq?µ^ç?µai?´³?Ïب@¡‡@7'?Q~å?l‰ì?‹)Ò?‘Åü@Á@S9?gCD?_?Ù?ð3 +?ð*Â?Å#S?Àòd?öN&?öØÂ?³s?±÷ù?a5?®?°?Ìä'?Ä1ð?Â?™¤Æ?Œ\ˆ?Ÿõý?žoö?¨â?À^Í?¡ÿª?Š”?Ú§á@@?´0Ú?~â?>½ì?xË?ŽÏl?·pŒ?«¡?‘Šy?Æë'@ó“@IÁ?È[?Ë”ö?ÎÒS?¾æÈ>í±Å?¸x?Õ{*?Ï[*?¸GÉ?£øû?q³>ûy+?bOD?y6É?Ë9?ÏD>?À¯P?Â]-?Cý¸>ì¦:>ìû>ìƒw?S¦?–²þ?õù°@"Òª?è6Ò?lò@ +HÈ@ƒýù@Wµ?ßÂû?Î2J?»ùp?¶ô ?š¿?ª©?Ø× ?È9=?k9?k-j@'.¶@0Œ±@HÜ@U£?Øc?¯ÅÀ?¯ûj?¯í¹?¶Ø?¼;@?‘²?jM2?šh?²Õ?œY?Úþ?“¬Ö?Ë_?ì˶@ÂC@pŽ@?J?ôÜ>çÛ¥?7„Ô?ìË?Ûš?­­ ?­£A?ãz?ç-?Ó&>ÐÖ ?mm?ß?aU5?9Oú?Ÿ—×?ÂÚ?Ùغ?øÝ@þ(@<Ž:@‡¦?hRQ?k“?Ž„?«Û¢?ô_˜?ø§Y@‡@ ·À?¤+?—‘Ó?&€V>¸û‰>èq—>øì“>çÝ?%Š?vþ?¸ Å?·“I?¤*}?–7,?ˆ>°?ˆÄ?ÞsÙ?Ь5@4Œ3@@V„>¬Uw=¸4$?;Ì¥?cí(?º9½?ìR\@>ì@)#?ì˜N?š¥?Ä0 @ û?þÙ?d”?{µ˜?ÿ3Ó?ðx9?ÒÅ?éþä@Ùo@Gv?ñŒ#?Ð'S?¢i(?sjƒ?3Ñ‘?D@?,û.?GØ?zìœ@ÓÞ@ —·?íØ?Þ•q?—¡?™z9?¨U?¨’™@á@µS@[è?õDÁ?þ&6@:]@Ȳ??¶›?HW³?Ž_>è7õ?Q‰~?SÙŽ?è&Õ?ý4ð?»`%?¥‘0?«EÌ?§eí?ª¶N?®üÌ?¡óë?_Y²?gwb?Œ ã?œjÍ?– +û?Œ÷ä?Ox2?8Ñ?\>J?nX»?–Ú]?Ýå?Á`?p§w?~±–?ÝG ?Ý)?ŒÂ9?“rR?¹?z=·?ýÿ@@ùE@}Ä?FÉq?Sc?¥S?¥j?¯p›?ºí3?½‘È?ËÜi?üHå@?Ê-?•AU?ˆt@!Su@!²r?ÇÒÙ?Í`ª?ÌjE?ÖuF?µ€b?®›b?¤«W?Ÿ¥I?¥²§?„àÍ?Ñm?Ùˆ?Ùoå@åt@ÇÖ@ÝX@“Ë?Žéè>‚Ë>¯&?É?^p?Eç`?Quä?Íô>?àx»?°G?’ É?ðo@/c@Á?¡Ÿ«?ŸH`?b‡?XY?ÆËH?×_?©‹ä?¦å®?› ?8 ç?þý>ÖpË>Ödé>ÞŒ?í?Ùid?÷]œ?±OG?—Ý ?¯O?—2ë?‰ý @Ò:@H§@ ö?ûÈþ@Êà@R±@­É?ÕÂ?ÚiE@ìŽ@x?¤™>ÔÎo@ôÈ@2õ†@²?è']?ãMÞ?Ÿf?Ÿo`?æY?#ö‚?›['?¨” ?…3?T_f?}ä?ÇFÈ?Ñ”ƒ?_z?•¹?”*þ?¦Ç¼?›§M?ŠÑç?‘ ü?—Mt?–8Ü>ÔoÈ>Ôz?o–h?rÖÑ?Y|v?T¤¦?‚ÿØ?¹žæ?Ì¢ï?Ó‡G?ÄQ9?ø««?ø9‡?ÉŠ?ÇbY?µ¡g?–jK?œV(? P?˜9—?/{;?Uö¶?²§?‰æl?qD:?VËY?M3?¡TP?¡Þ?¡©â?¡[P?‰²?ƒXÔ>÷Åú>vTò=³´™9ÕÔÕ>dq?žÃ?9–+?‹ ?mÞ>–=£ž›=`±Ø;r¨ú=1 Ð=¼" >Õ2b>ðì÷>ÓÄ#>Ýøv?n­Û?ÛvY?°H`>ß­!?½k?ƒiÍ?ƒnÂ>;ÿJ>ˆÇ>Üñ¢>ã¬?TÇî?LE>cÑ>\´>Å/C>æ€Ø?~lÂ?¤&‹??¿>æ£?0õ=?O3o?Â0>ëß:>µ´>ª`Ã>ðƹ>øçJ>8²=^zp>ˆ5>›¥C>Òªñ>ôÊ>õK>õîÕ= ƒÏ;Љ€=h>ô>qH>¡m>ƒZ¨>JÆ+>Vª=¢ÅÒ>e½Ã?DD>Šù=ò=Ž>8gÕ>xKK>b½å>Ä>6ó>Ó‹·>´ +¡>Ðs?²š?‹‡¤? ¦¬>'Ÿî>ú(@˜.#@:"?ÑÉ<ºlÞ>Axh>Û P>Âõ×<œ <À>|?5ko?]é„>å\ž=¬@P>R/Ü? +†? T{?An?$?é>-â)>Ù©?LI]?­=Ì°Ð=Ì5ø?.7?Úæ>ü5>æµ?Ù?Êz?Ã>ç@\>ö#:?!îØ?#Fk>èvv>èyÒ>è°¥>èãª>éœ>éIÏ??+ÐÄ>¯ðö>#_%>êUÊ? ¶O?MèA?=p4>¢mc>˜œÆ>iû> Ì!?ˆ@?”ÖÄ>¬¶=Ù©3?R?=Oh?ºY^@=i?Ý,ó?±?Wø <9å<Ýï‹>V@×?lnª?O(=o“?laè?l™]?b÷P?]ç‘?!ù>ì¬é=Áòô>ðL>u ?®ßk?ö+i?Š2?ª>?O£j?‡BN?_×µ?°É?ª˜>–Ô?2ˆ?ìå?Ê#Ê>ìy>äŒn>ã •?@?gÍ%?b|¢?”z ?˜uØ?5H?#ü?9Öœ?D.€>×ä:>¥®ä?Ž 4?¾…H?3Ý?)Ë?~ÏÛ?¦°?‹@ç?\7À?-¶>ÖIÏ?;è?`)|?eë?jÜ1?¸?ë¥Ù?ÛÀ?k’Å?kx›?cd@?aÒ?µFÁ?¸bN@,»K@.ÎK?«YV?‰µ®?]h?‘x7>§+?£ƒo?ù¥ ?¶ ²?Œ¨d?XÜW?ö>äL¼>â¶>ñ{h>êÒB>êÌÕ>êÆÿ?kO?‹àg?ƒþ§?;?! å?—¹Ë?”ò)>ô.>ê’y?GB7?UTC?WüÅ?ZŸm?%AŽ? +PÒ>rÚŠ=xy÷?Rú?¯ô‡?h>êRV?… ?åÙw?ÏbÀ?ªÑ~?œ,?yÊ*?sX?@µÓ?9VÜ?^^P?l¢þ?*åØ?$Ø>¡¼Ã>šrj?4†?<ôk?t9?‡ò?™åM?•ª±?)€s>ê¿?Kù?8çà?'é?0c?9 +~?‰x|?ŒG|?´?‘æD?”¹!?“tÕ?€7w?nlf?ª?M­>ÿ¬g?€‡?¯y?°3h?çŠÑ?ë˜?·Øï?°K¤>©ˆ=Ó™Â?5¢‘?k6!?†O+?”Û?@ì…?“;>~é¤?­ +?pJf?‚ƒü?š÷Ç?ˆ¼þ?X*?›Œd@[@7l?3ÿ?8L1?$b?ÜÔ?}š`?qmÇ?h›t?uS]?Bô‘?3K?–"?Áø?Ë¡(?ì‘?š¢ ?yI?¾¿œ?âÝ?ô?°ï"?Ó;?ìðl?g¡§?í?¦“w?V6>Q E?z3J@Wx@n?²8ª?“?ÿ>¥ïl>¸I¼?!$?/{R?T(?Z:r?¼R?µ½^?î?î®?t5?nr–?W°?Lµ>ºy>‘¹p?¨––?Â/£?aO-??`?+Å™?c +?³m”?ä)s?wW?ê~?Ï’d@©H?Ä7æ?që?—oÑ?¯]5?™•?‡M*?Š?êd?f$|?‘]?s`Ç?ź%?§­>§5¸?e?rf”?‡«L?“á'?ŸÑè?±'?Öu5@A†Ê@)A?pë?cr%?$¨·?4Ó•?q#z?xT?¨¬•?­¯H@Ã_@ýd?Ø@?¢Ø?²Š?´é:?µCÚ?µN¸?|£K‚Ö?>€\?mÖ?Õû#?ò–:?™c%?r©~@"@!zˆ@ i@Ù?ã* ?Ðxí?ÏØ?Ö±?ÜZ ?â‡?„ F?â~>ö£>ó2î?†Qö?¹YÂ?Š¢?=]`?PœÁ?HÌ´?[± ?seD?’÷±?°ûÿ?˜)?ÊÁ?唄@%[q@*é?·À?¦à?œ ë?’à ?‰kÝ?ÔJ@JW?Ä(Ÿ>¹]3?i‰#?Þ°Œ?ïß)@MÆ?ÍX‰?xc§?t§?sÎ@?!Š(=Ok >Z]¬>óÒÀ?{¡@T@ »0@¼!@‰Ž?ôh@?Øæv?ªÂ†?¸t%?Ó›”?ÍO¯?ÆT?Ö3³?ÜIñ¥Ñ?s‡?iд?V>ÍžŒ>»k>©&$>è +“?Œï?–!z?ü»u@Aü?î±p?øÈ•@8ä(@8±Í?Äž?ÉÊ·@º@Äv?Žô]?”,ª?¶\¢?¶kP>i×<Ýä›@€6œ@ˆxý@Ú?èaç?zL ?^j¡?¢°?¦ìK@Ó)@ ©I?¢!K?ƒ{¯?=¶?6 J?Ó÷?ò˜ï?ç“?ÞO?ØÍ?Ó™ó?×G³?ÒÑU?ÁC?º#:?ÞD!?ò­?¥äÏ?‚þ|?ì$Ñ@ìÁ?lkx?`xÏ?È·g?S›†>F[‹?zà¾?ÓB”?˜ä?VO½?˜[€?Ë%?×p›?ã¾}?ò“ë@‰²?Ï&Ü?u±Ž?Ù*\@Qƒ@+é ?´ ‹?’í™>î¦P?Ic?»‡ü?²¿?´b–?º¶F?ÔŠ²?Â[Å?‚e÷?ã¥?Ý){?ßnY?ÕûD?ÛÍþ@ê¾@ ÕÞ?T>ð:ð>ðq,>ï™?Ï2?ä'Y?–ÉU?‰?x³+?o2ÿ?¶X?Ñ$ÿ?}…„?&Ï°?T!a?_‘1?¶‚s?î°¬!÷? Ê?kkË?‡Ç?êL×?íÚÚ?¹!µ?­€µ?°>¶?°0G?pÔô?jÄ¿?mÕ?l8?ró?zoŸ?>c†?3s€?¹W?ß)a?á$?ê +Ô?ÒóY?ÂI?¹ô?™Db?ž©b?·Ø"?¿j¬?è+?Ï‘j?yµ$?y9?5 F?H{1?ÛÕ?Îó5?åžZ?èÍ?šA?’Ž7? ç>:p>¸½„>èðÓ?»’f@ â5?ðª›?ܘ‡?þ‹‚@ô6?öZB?‡U9?·W;@GÍ@4jà0|>ÿ¡Í?¬(Ä?§0v? +ú?e6?•¥Û?À¼ê?ËÛ¿?ºãK?™Á?ŠXœ?«‡?Þð?ñ4†@!ál.?Å­@ Ì?ìFÄ?¸©?ʶ @Éæ@@3?Á×3?¶gß?rzö?ZÒ@?•r5?£•³?¯6?°„?®A?Ñ?ÅÐ?¹šë?ÊÆA?¦´?¨?ö¦ @’ó?½»a?^:z?] ·?z1?ga°?©x>ßP!?Ë׳?×ü?•>î?¦±?¼@FÆ?ëg?— {?¡x?Öôk?Ðê³?ûO?ýº•?÷o?×cë?·±µ?¯ø ?•ÌI>ï­f>ÖJÚ@*.Y@‹/@‰r@ö ?ÉÂ?=ƒ•?†Dq@̆@eÑ?Ø U?ãLŸ@Ó@E@'@‡e@UF?ÀÔâ—8>ÔRv?Øq@,?À×?qˆº?e'à?Xâ/?V~¨?T/œ?T6?„Ù×?†¶ä?iý?T>£?^w?c =?T`[?K[;?>æb?îç?øÜ£?’?VÉ?ó>çŒ ?+Ϊ@9÷@ ?¢¿}?®$±?cÜ-?1ñ?G®À?Uv&?\x=Gá>XF´=üœl>1™‡?¯­•?µR¬?€0?V» >÷t·=…™†>]‘T>¼ž¿?r?^ây?y*>?“¡Õ?œ®Z?¢$Ô?šZ¥?r˜=ÿí>Þžº?Š?¥?ˆÂR?NW?Ú?W·Q?O”>´¯>×׫?*P¦>÷°>­°0?Feæ?§k·?ˆf>ß¼T?…_?`¡i?_³j?;–5? Œ>Ï'>âu>ó +?Û#? é??? ¦?=ø?7!?UDÌ>“ù™= Ðè>'Û>•¡÷>ÜTÍ>ìì>-vB?D(?n÷×>O'>©$Ò>ò™R>¥ùà>¨ ä>Æoá>å :=`ðý<@Êø>`^9>'V>®bi>ÍêD>í±L>…½—=(L\=">ïÅA>ã°?¦Ç>ÍÚ@=–Þ0>)ûœ?¢ä?'bY?ŠqÇ?B¢æ>þ–ó=×Äv?«SŒ@¹°ì@85"?•–Y>vîf>Úú>¦fð=l#=™+ ? ƒ¼?F¢ ?#ô>ßè >à]˜>àØ>áKÙ=h¥Z>¬Ÿ? +1Í?pi?,Uë?ã‡>¦æ5>´õÒ?ÙÖ™?×ÄS?´x4?«ç[?@¶Ò>æ¶>¡ÁÇ>6¢>¶<Ð?6Èû?*~Q>è<“>ê͆?0’¬?/d?_s?bØŒ?<«V?6¿>qn=öþ >‘Ç>ó±Ð?fOX?obÿ?jç?hœ;?7c%?1gì?®!×?µq£?Û­>ë­S>šj|>cÓ1>¾>ëÿ–?pÎÉ?¦Z€?<Ãh=Ñß">bR>ç´T?ç‹?lr)?6¿U=Šo>ø&Ä>î°=¡æ =ɸ>ê/!>ì¬ý?$K?‘à>Bê.?—ÍÄ?Ï•?‹qˆ?J1?+I5?y>ÄÖ>.݇>8<>AV}>ÎÉ´?Së­?l¢?oƒÙ?2R=ÑÓ?I>i?Qp?>Û?D“¢?Šò^?‰¹Ë?EnÏ?:¶>BW>ku4>üu¸?šÛ?ƒ3w?fn?}Wû?]E3?!T#>ëÞ>aSõ;T{¹:R>3¤->ë¹s>ñžv?La?ãÏ>ýã ?%íÂ?©t?ž)y?E´?(í?àLä?æCF?µ_è?°aK?°Xs?°Tm?¼f>–{¡?ƒÃ?±M?ŽüN?jå*?#>ç?÷h?#>Ê?†?&„?#â@?!@W?;¦2?‰Q +?ƒ—Ô?I3ñ?h,™?Îr??˱µ?9‰j?0ÒÙ?€?Å~?¤?|C?•ÎY?©¥Ù?®š#?¯ÁÉ?ØAœ?êx?æç>?áë{?Ç+?µ6R?VGÍ>D²?ŒÃ@ß@(Ú@nÞ@ë?Žýý?r¨+>˜·>ëÊ“?Í…?ÆêPš?žë ?´ +?W›.?%Ú¶?f°?vž¸?Œÿ?Š?…Äl?UAÉ? ‡7>ê~q? ©&?òh?M™Ò? ¸I?¥Fµ?«/ðÌñ?á¤?nf?t`;?šíâ?™zÖ?Ìèô?Ö&õ?‹éò?k!i??­?Brâ>¬À×?'³?‹­¹?T¥¢?`L?ŽÇ>ë‹?De6?³L‚?¤ü¡?Zô­?p¿¸?°ßL?²f]?Åd?ˆ ?$ïÇ?œÏ?Ëø?ÉKî?ƒsÝ?~Š±?Ë ˜?ÙöZ?±H|?« +ÿ?/¬e>îüí>ì²ô>íIv?¯¸?ìá‰?¡p^?Vl>íÎ>R: >¡"í>¾¾>Ôíp?J?Méý?ˆ©C?²Ã?ûaˆ?Ë,ò?=ˆ^?lª?Ò¨?Óä ?ï÷?òÜ´?îÖ?é ?Ž~?ŒÇ:?²of?²Ò¯?Š ›?†t?؃‚?⥀>ÂÌå> è?Ñ-?­(?±¨?’€?¤üü?³d+?³qó?µKÐ?ئ©?ç(¤?¥Jè?~W^?˜ô3?©É?ô0³@À?߬?‘Š?qÊ?J¤?|AI?Ûý?ŠC–?ƒ¨?]«?5=é?sAÆ?äˆ?ݺc@ ׂ@)š?‹ðY?pój>ÂÏ>ãýµ?qu?tëb?ë†?aìý==²æ=ñ\?la¿?oâH?qqè?g“=‹ø>èi@*Øä@'[˜?òFþ?ñÑF?Ϥ??È/f?Šƒ??#÷Ì?#&?‰_„?‘¾¬?©3?2Q?¤¶?¯X*?ãÛ‡?òsD?¤¦?Žªè?¼ò?Ï' ?ôÏG@ y@ +ê@ eÑ?Ìt? óÍ?½d? +€)?»¼(?òù3@!†Y@1Ñ?ÊÅ?~‹Š?nþÓ?`‹@Øò@3C“?ï1?¥%Ì?£9_?¡I¼?’eü?„J‚?¨p?Ðã¬@ÃŽ@{?Ëý(?s|f?ˆa?ŒY?½ËG@t³?Xö>"?žB?sŸ"?â°·@3N@ |?¶¬·?ƒa‡>úþN>õv(>Û»x?‹>@ôÚ?è(Ô?Å+™@–@9SL@ž?˜qb? ôW?›¤ ?º¦?w¸à?e£¡?ѳ?Z¼ñ?ËŽÕ?ÎÐ*?׎T?ËG­?¶Ás?©«Ý?b·?Pm?Àä?«x[?s ?‡Ä|?°i‹?— ? $²?ö?[ +q?B+Ù>°%>Ö1|?suf?‡2¬?ÙQZ?ÒЋ?¶†þ?¹u? ƈ?6@k?™VB?p>„Ëš>v^¯?¼—y?¹C€?vm?sŠT?º,ô?É,™?¼÷Ÿ?¾@*?yÆÜ?rÕŽ?²F?¶–?ȉ?Í +ê@³4@2^?k.Ä?0QT?Ä×Ç?Ü‚@!¸@(ÁA@ˆ‹@NÂ@$\'@.Çg@Ñç?ë +?Æ?¶eL?Œ9?qõq?PŒ“?Te=>¥›>õ{Â?Q‰?–6å?£ú¨?¸QÍ?ÛÞƒ?¬‚®?ZÙ?XH?q?~?¡DÞ?ÊEg@-^@/°c@ I?´ox? ¿€?‰(ü?Ž]Ã?h.?²øJ@ô?ärÓ?¡Qo?ÜÕÐ@?j\@* J?ô†Ü?ÝÅ&>ð!«?€`?£í‚?¢~U?[ª3?\é–>ÆB=$Ç”@úX@±¢?ve­?_B|?¶Ç#?Á²>ã÷@>¢Ì.?ád?üyµ?Ø6g?Î5@?± Ñ? Ñ?»ÿ§?ÑåÇ?åò‚?îŠ ?ëõ¿?ìÁ¥@ð¦@Ïû?í¹î?¢T?µ !?Þ¹Ó?Ĉ?Œ3^?xÖÁ?.‡‘?u½(?Þ ÿ?Ø;?ŸÊ(?°Âù@í"@}‹?m/Ú?hŒô>íÒË?¦º?‹ù?šÕ.?uC]?l²Ü?ËLÉ?Õ°?£ }?“q@ôÄ@5†@0çí@1W?ý•ï?¹ Ó?ÓN?ëÙ·?Ïл?°ÇÓ?†ÂË?³ƒ?j-I?¥‘Û?ŽbK?kEâ?_±?°^Ë?¹tZ?ÿ½@Ϻ?°(:?°?Z»?g`@$¯S@(¦l@ ´á@¶?ª_¼?Š €?Àò‹?äZj?Ùfo?уj?Œî ?''ñ?™Ë?÷º¹@¿¤@Ê@´›@j@.€?ÒI†?¸¤Ü>é 2?™?åi{?íc(?§ö ?°o%?bÆE?4Œ?Ñ n?í\º@o+@(Ii?ðÛÖ?ÃA»?Ñ+?Õ”?¹W¨?¦šÀ?àB@of@#@O@h‡c@VV]?ra?pð?­mà?­[›?ô#?ÿÎ@?AÇ>§úM?À¼?å?ã!?ù5F?åš¾?²—Ç?Õ=@‘@jÉ?æp?ð5]@Fk@†—@¨è?é™?)[? "?©šö?¼°W?°I×?«ïÌ?ÿ˜&@ ò?Ï?î?:Î?dÇÀ?ŒYd?«L•?¹<°?äåÈ?ÙØË?äOõ?Ú÷F>ûj>çã?hÁÐ?x Š?Om£?<¢D?¥m÷?Ç¿Ü?°ÃF?–-î?˲j@ ºì?¶T•;B¯q>ïÍâ?éü+?åûÂ?™? ?”K”?/ty?#‰|@ó×@6À?Åùû?w$?×Ôo@ ;—?âÏ?žˆœ?¬‡¡?ÌÐê?ÎGŽ?Ö¿Ì?Â"4?¸W?³2`?â¨?á³ê?<ɪ?øƒ?~¬?¡ÇI?«[?½è=?×.?¨0 +?Æ)>àX?oc@ ÚÓ@¶H?æÔ>ßžX?žýQ?¯<¾?¬¢`?Â1Ù?8¸?½:?rÍi?àÒÀ?Ëð—?Š]V?Ÿ¹.?•_?óÑ?Ô9ð?Þn?¥9n?…i ?äP@$³?óy^?]%?…mµ?ËäÊ?¾+x?'!¤?2–@—»@öõ@‡­@$ø¨@$%¥@!x?ÎD©>•PK?L®?Ç93?ت?ö‚:@Æà?Œ­`?Zÿ?Üô@úÝ?äš?¹f2?ØJ@¸8@¥`@˜\@„v?Ýz±?Õâ ?óóœ">Ýôn?Ò%ì?Ò_v?¡=»?£h?¹ à?ºÚ¡?¨§×?•Œ”?«,ä@º¿@ã?Ùìò?×ßc?Ö y?Å•ú?ÜD¿?ꛌ}>Þÿ¨?TŽÖ?6óÂ>ÌÀ? ?¦! ?Ÿ,ç?>Qb?î®?2ù'?Z£?lé^?Š ù?må?G¨?!Z¶?Õú]@’Œ?§c¯?S—K?&U´>º!.>æI{?IüZ?%R†?>Ø?%¡?A½,?Us1?[K7?g³w?"l|>‡še>¶V&?0‹E?Ql#?¤ò?¤Pê=Ðñ=õÎ>•å‹>ˆ??Ltq?kd>Ó×=kD?@` +?Ý*?¦Ä¿>ßÃû?ÝG?‹ÍL?Š¬÷?·Ø?¯Õ|<·<„ ?¤Ì?‹¹ê?/a$?.h ?XX¨?„¤>–È>›wÔ>ÃkŸ=ßXõ>J¥>ìH>?!É!?ok9>Žþž?A&©?jÇL>™ÝÑ=Ûà<hØ>ÚŽ{>ÇN=A>iÂü>-š=áÛ3=NìC;c;¡G@>÷ãÄ?)x?[ï>¹Ò>–e>œ;>S?n?t‰ž>Îm–?Ö¥@—ò…@1P?ÑÅj>˜?Ô>Úë[>ŠÈ<Û² >Êe÷>ÈO?‡Mõ? m´?X-%>ßáv>àZ=>àÖ™>ß7®<Ea?\F?–µ?Mº³?°2?$!?C¬?Mªm?© +œ?«¹?rÙ?o#¢?O½?9ïc>ì„g>†¨? f?“éQ?xo€>èKi>âb×>ìï1>ôhë?8œD?B§M?2j®?%˜>¦Ÿh>1Ä9=¦9>iË>“Q?î?…ñ?†.?“m!?ŠJ=ǽ®=´0>½>Æ~?šë?©Ø?Ó>Ö÷?>ÿYš?µQ?¤ +!?êC?i)¡>F›>ðgº?C&º?¨Ù?Ša>ì›ü?:à?šñ ?“q[?Y9|?SÆ>õv>™>»`K>¯Pa?œ£?±ŒJ?H¨?5¬?p÷?…Ò? Ñ>Št>…Ä/>é>øAë?3w¨?Yøq?•à¨?Jy˜=µ¯—>ìf8?  ?ŸW-?Ÿ´?’E?”\Œ?; Á?=v?Aâ"?FÉÈ?/Ž??œñ?fü?fb>úÅ5>:¤Y>ƒåÏ>êÎz?,³?f_ˆ?5³É>ëŠ??S‹?¡AØ?¿._@é»?íÒ?QÒ’?G¬0?2È?7â?<ø‚â?Z³?¨¦F?®?u?,Õ›?m£?IÄ•>ê‘P?X0@̶@lR?cUT?Q÷ò=Ðx> ŒÆ?®,}?°#5>å>Úd.?<=?‰³>ƈH>ƒE?Ã)?î?Gå?kAž? +‘<>vÐ?~œ?e8º?‰iê?§ºZ?¨?w?°µØ?ª +t?i?•½ò?kÏï?”+@sE@©y@Q@#í?ÎÙq?È;q? ?"ö>ò½8>í3B? ÅE?±.>‘Kl<³š ?°N“?ìÀ¿@@È@Ì*?âG>½Œh>ÔÕ">í8??F?x'Ö?G :? °?’¸²?úY½?Ñž?m™y?RŽ?Ð?Êå'?²bF?½ØŽ?íùÐ?ð!¯?îWw?ås·?Ã{?¾´%?—cG3?Uj×?^É…?oý¾?‡M9?´€ñ?´Šd?´—'?®~~?•ïw?”ß?§éõ?™ +D?’ô? >ñs€>Ï.<| +€=1 =e«Š?Hb…?_C*?Åû?“V.?–äÀ?štÁ?‹Àa?u/?Š‰+?…¨²?,üS?09?o2Ö?r.?¸z.?Ç”)@(@C¶?¿ÉQ?µÒ´?­ÓÜ?¥Ý?~o%?r™?ªy{?µÿÃ?Ý°?ë?O?ïŒ?òX@J1@S ?±Î•?Œ`½?§ÂŒ?­¶á?J|?Cè?› r?Ê­ƒ?ˆ-?Iúc?‚O?‘›•?MÁ?'xØ?\cD?sPa?Ú¶@ûö?ÐV?Ž¾ü?Óø”@–?ßy ?­äG?ºÔ°?ÈŸE?™ˆ?i¤×?²Ã³?ðú„?¶½.?t©A?so?jaq?¦e?ÙM­?Ïìò?ÐœE?ǪÀ?¶·È?×4p@!F?»à˜>ó£r?v?Õ¶S?¯ÁÖ?dˆ[?’C?Í_?ÙZ?óž²@…ù@r|?ùr?¤Fý?¬ý/?¶­ˆ?ëP„@5¿@%5ñ?ð¿Ñ?¯«=> ±8?™/?Ô&#?¡‘´>p¹>£Wz>ójq?#Æ&?žO ?³^Å@ ¥Ð@e?¶u¯?¬Ì?s?@?iK?º‚?¨´?Øÿq?Ø–Å?®p?¶Íœ?öz??ïå ?¶;º?½þ7@0ó­@*¥à?¶#ž?µ_p?s,%?s„?µ1¹?¶?µû’?µôƒ@E@'ƒ?¤ªj?‘ïN?‰C€?Žš,@%¹@7M?³tg?‹£?É­ ?áß³>¿Å8d)w?>tF?y/˜?ôTw@ Èf?¼HD?˜Ò¹?Ó¾>£;Ï?f??‘F?âºÐ@ê¶?ñ2¦?¾?×!?ô¸?׃—?®;3?õöê@~è@ î%?ó.?ŸGu>ö;1?1’¾?pµØ?I´C?!¢?¾Ad@I ®@þF>»P?‚óÖ@1ÀB@*Œé?æ‚?Ú'_?®ŒU?–zë?oæz?hð?# ?-ÞÔ?ô]?æ³ï=˜ç„>E•>° >0Lu?¬So?³iÊ?Å[?¶uæ?ôÜ@ÐU?ɾ¹?¾Ïá?å)?î±4?£þ?‚±Ï?º>“?ßG)?Ç?²½ï?ÖW2?òóD?í@Ç?âÏÑ? ±ï?=äu?xÀø?š“?8Ë?/ú†?>_?mu?mj`?mYG?mMu?m8c?p®i?wÛã?vUv?­á¾?©OI@äL@¶?ù}??©IW?ªý?˜{|?—@ +îÍ@)@òˆ@Õ@ù¡?ðæf?ëð}?ëÁœ?é÷Ÿ?åq(?Âòé?•ß +?ƒ:Ò?qW°?‰h?”}Ý?˜O©?°KA?º?àžº?Ï—!?ž©?¢°¼;<? ö ?9p¡?L‰ ?h:ú?æ:x?øª¹?ªÌO?’œæ?–k~?š9w?s»?V >¹k=2˜ü?u?¯Ds?קZ@ÆÆ?ô´?Må?”Y"@Šâ@5o?“ª?—?œ“ª?‡0Ô?È}³?Ùä™@ >@. ?‘s9?-9Z?kY?ö`?»@?çÝÂ?Ðôw?§qå?»C5@-v@©2@Ы?þì?±œ;?»˜Â@(܇@"aJ?ºæ?½-?/ýj?þº?Ã[[?ï"ä?Ž½U?2“k@ å®@X+¨@/Ü?¬¶?Úy9@ :“@%×8@b³=@@›?µ»J?ÎS?Ñç?¾ü÷>îƒÇ>åOÈ?˜_Ó?ªÁ§?­ ‘?µ Þ?¤iÆ??‘*?”„y?´Îµ?䌺?ê@9@_I@ 'o?ð¡É?üA9@bºI@UÁ?§:E?(Ð?nÉÄ?cªK@"Þs@5íR@dŒ@7ì?é‡Î?ÞA?·(ã?]ûá?­¹@6Se@(n¯?òP`?ææ°?bŠé?bo3@ +Ìœ@*¢?íT??àfæ?œy9?}ab?ƒS?~ÖÅ?˜øú?Á»?Ôño@oÜ@ ö?Õš?Ú“˜@ +Ê[@ LS?ˆöž?Lžè?Wòù?`‹¤?’ß?ž3?§O.?Æ{?—ÿ6>ÌÝî?©i?á§å?æ¸?æý˜?ÑŸ„?¾õ”?Ãnh?“ ‹?W‹%?[?le\?Øu.@Aê4@3÷s@˜V@Š?D†ð?Yâ´@Mm@CÈ?漆?Ö9?v°>ç{y?4´ ?]mê?Ÿ;ç@–“@>‹?JŽ‡?4è@BMÆ@auM@ ´b?Þq?Ì]ä?ÇêB?ÉET?¡âø?k¿ü?î*?'Æ?¤º,?¤§Â@³”@ ç?ÚL4?À: ?ëº?ü¼|@bB@à°@ˆp@‰:@wt?©Ö?©¼˜?pã?y1$?0;î>çŽp?BD]?•R?¦Ò?T=k?Xf¤? )’?,Ó·?‡´?ŒEg?¨_¡?Ä:º?ª†µ?i¤ +?qgN?¢¢?«st@f?ýQý?ðþV?óª @½@\›@ …@Åë@&…@Iyä@: Ô?ç'T?·V ?èõï@ ’?ÌKd?qo•?A€í>à’È?^Y?„Ãv?§\?†V??‘Öš?Ë‘?U‡è?8÷Ž>ØÖÈ?¡µ?g½«?sµœ?µÆ?…×P?—þ2?Ÿ¦#?ÞH“@©À@ ©Ç?m«Û?‚ö%?áuš?ìöø?ùÊi@¯?¸g8>õžE?3RV?Ô1!?Ô,]?´:7?§•5?…^?X¹n??}?Ÿ`?Ÿ?žþÝ?›9w?³É?ù?€Â?+îO?tE@?—qÔ?pC? '3?—Öë>QA$>š²š?§G?©¥¯?ŒÛv?Ž?†-m?Tyü?NæÒ?#¥W? +m?ËÓ?Ôà_?ˆ£?U?ž +i?Ôä?š)­>Ÿ>êxM?ƒƒ?Šê?{02?i‚Œ?³>×Ú>ÉÀ=»7V>eª?NpÇ?l,§?¡×­?¢l?¹ÿ>ÙÉ—>[ã>>R,?aï?b ?Gù?-ÐÖ?.ý’?¡$?¤NÈ>ÆZÐ>ªp?%?)P?„÷F?­&e?jé7>è¢?RJ)?­\g?À9…?ÈšØ?´2\?¿5˜?¿]?ê£?ã>ò?§º9?–'þ?€8j?†û>¨°w>‹I¸>®`=Šs;õó—>ªÍ«>é’N>ªL>n>ÿ`ƒ?W²>Q—yðp?lýÔ?ŸbU?Ñ>ôùX=c;m=‡ÒÃ>/W>šMª>|J.>„>¼ë¸>Ü>ùôv>ù¾Ï>Ý—Å>¿VÙ> ÒR>‚ ¿;Gž&=…q6>åNi>ž~>.¤~>nÕS>©l¯?3­2>Aì¡?ðrÔ@Wm?î‡?¡?ØP?4->fø?UT?U²¶?•?Ì÷?·Y–?RµÚ?Qáa?;x? â?˜8?ÅUò?Øù>àÍ>ÉnG?“Éç?ª=Œº¸>¹éÉ?4¶?(È?;å-?:Lu?^~¡?fÁq?G1>çO˜?Itº?N?züd?-ÇE?;Ü>X!|>„-0?I{9?Bv?3Îu?<ÿŒ?(ý´?þr>Oø?6Æ?…é÷?ˆ¡J?“"$?t¶é>ë9X>ëY>ës®>Ö +<ã?sèµ?v]õ>(1³=E±¾?ˆzº?®YÖ?‡ž¥?lQ²?k°P?gÚŸ?*¦”>ì€e?-dü?wœË?qQ?]$??cFí?€Oâ?’—£?Ô<™?ºCì*>쯣>ݱÅ>òë\>÷å>ìµ›?¿w?pä?•m>쬉?I4?lr?…VÌ?–JÅ?V‘¸? ‹k>Ð>2 Ç>lf>Ÿ8>«>ì]¯?AÎ?0:?7¨î?(Tø?A><pâ=ó?K=Ës?Ú¶d?è×?ºG'?²E/?°ú©?°Ù÷?°Òä?®ÞV?¬c¯?ªi?Mg=µ¤L>—§ã>ëxå?ßu? ®?€þ?Ë?²ý€?k;½?dk?FS?&¾>'ÔÂ>€×6?jýk?gí•?]‹B?c>o?éQY?éqó?œ‡:?•ÿ×?·ø÷?Çx?œÏ>&p2>è!\?š‰?ñ_?Jø?jK’?¢ñ;?ï+G@.h?éÊâ=rø>•ë\?jH ?‚4?±éÑ?¿§à@Uè@ Ó¤>éÁc>ç»5?ªá?«µÊ?})Ä?w@`@в@&Hã?êb½?Æ!Ë?ž.Ÿ?’a¼>óÚv?×Á?<ù?–ü½?‹Ûµ?ƒ~t?ÆÇ?«Àd?íÅ'?¿~Ü>ø€õ?±?j Î?oéJ?¾/5?À<4>¬á>¢ä¿?|o?„Ú?V5®?Q£v?ø­?œ¯ÿ?ÇÞ> œ«?'67?yàÏ?³G™?è}?Ïwõ?¯Ç†?Åå?æ¦â? ·˜>#>Å?j‡â?w#R?’¸p?†ô“?'® ?0b?.’‡?'N”?ˆ`q?ˆ¬[?Ƚ ?ËB?‚Ù¯?kH?¥q9?²[Ã?AhÃ>ë,‹?aí?—Ëš?¸kü?Õ›t?¨Cç?oýî?uܬ?kŠò‚c>ï¢?€†¼?“« ?°L?´r?Ñ[Î?þ= ?¦ñ°?<ûf?j@?‘Ó&?s““?35??M}p?|?šrß?ÉB,?Å2?Åý¾?ßJ÷@9Ž@=Î?ûÍ;?éWò?Kñ¶??Y?_cN?cü@?w"°?t?ù?u·#?nö2?¯o?´¸A?UW?M†?Í8ð?á7 +?B`f? Û­@ýÿ@"î÷?ǵ?’T‹?Üé@·­?©ñá?o«÷?D2€?,˵?Œ÷?³òŸ?¶^?ÆuÇ?¦V”?p-?Ȭp@ åb?ù°?ßr‚?Ü1ð?Ï¥¤?ÃMé?´~X?ÓÖ\@ ,Ù?Ü‚š?Mê?š`@a9@¾²?p;?Žš¶?áë?ùZÔ@9X®@#`û?ŸU®?A®?¦Ã›? y?q¤?qªÛ?q»ƒ?sg?‘êe?‘¾>ñöÀ>òl?8º‹?= >öH>ò#Ž?ü%@b?™öW?–p‰@ Be@}Ó?ŠÝO?rw ?¨µd?±M²?†.¿?v?r£}?sŸa?®ãs?½šl?7M?†:@ dI@%1?së.>òïV?«ûb?Ìåe?~{o?E5›?0oÜ?/(v>Ǭu>pƒA?7Ja?s1?‘È’? <-?”Øó?’?–±?šK@¤@"H@° +@ ¾ ? Œ?gM>öÜr>óƒÈ??ü ?sqÏ?˜ +§?¯5‰?€pª?? ü?=ŽÆ?8¯#?ŒEÙÚç?LÃþ?´›é? y‹?t•ú?¼8z@ c@†Ž@iž?÷j¼?ó]`?Åé»?,,n?Ehk?‰¶?›¯ó?Ø@‰?Ü +¬?õ®*?äuê?å†?«ýA?È£5?Á€?Õß?Ï´µ?˜K +?Žƒ?}áù?•»@·@?C?¶ Ú?·K¦?ÈëR?Éâ?„‹¾?ƒ£?’n?(?µñu?·½?ØmÁ?Õ /?·ã?¼|ø?¶Ç)?µÀù>½C­>¯:?âGY?äÎ?ï_¥?ò¸>šgr<ê[?OTk?m.5?¦Ö„?®ëæ_>¶c>Èì~>ðô7?·6€?Æ2ú?Ò06?ÎgT?‚øÝ?n·E?ØNË?î·?¯X:?¢Ó?;8>öt7?²žã?ìϸ?©– ?†“?ÞeÔ@ ’ð?Ñç?ˆ×E?poh?cõî?šS8?ÃLå?š­¢?G¡?E\?$Ð?™Ëi?¤˜x?ÿš@KT?ýÈÙ?îOE?‚ñú?l-¬?•k»?‹ ?‰íÔ?‡Úà?å…@©6?¹ŽË?t-§@âù@@¾@,iæ@¶”?Äa >ë4?-?:kÔ?‚q?Ćk?и¬@‚@ +óÈ?!+¿>ù;Ð@jp÷@_\å@K3@‹@CÙ@?›? ?iÕT?Ëß›?ßó @Ž$@FC¡?ê¿ê>òß?'§Š?mÊÈ?À ?’ô`?Žœ™?Dáø?x' @;Ù@ nk?Œ‚2?Š¸Ñ@D@Kó?‰Ÿp?p"J?Öñ?êDx·}>Ú%?u€Æ?š @pn@4@Fîc@DÎ@¤€@$Î?ÉK>ßFì?„Á?—ÍÁ?§÷€?¬Â?Õ@ˆ?麪@=v@3?îÌ5?Á“ä?ÞÛ¢@&@}’>噃?"\>@Š@#ï>æùC>å5Ø?Yƒ ?ewd?=@?PÍ?Êmd?û&Ý?¶§?Œæ*? <Í?¹ìè?Œõ|>´–­?fÚC@(Š–@V?§Ì?dC°@ +a@¾I?J\Ò?'|@7ª@q!@3úì@¹0?ìç¯?ªLù?×g@ª@™Ä@µ@.@ šz@ ¢µ?ˇ˜?·Å¡@uq@!ØA?Î!?©“&?§Qi?¡Ô?›ùl?–ç?k_X?*Z?j8i?¨ôK?¨çÁ?¨Ô;?¨Ã^?àt§?ä}J?Òb??ÄåÜ?Ô½Ë?Ð7Û?ålŒ@Yô@ +…È@´¢?Ò2½=>Nó> êÄ?v=Á?…+²? ¾‘?U/¿?`ÿ?nÜQ?œ[?¶Ël?«¾q?¡­?§¡ ?¶šë?³ %?€j·?‘ñR>Þ@÷>Þ(@+°@H+M?áC”?¦M¢?„3Â?Vs?T»ˆ?]X)?zAÆ?µ¶·?ÐÙÕ?˼B?À±Ø?c|›?\š??]˜c?ne´?±„ó?Ì›?½Å?½ßd?­~4? ½R>èn»?ª°Ê?¥‚&?¨¢?¸¤ ?ŽºP?~ïÈ?­[?â9Ã@ Ñ@1@-?N@«ƒ@fn@{Ü@;ü?ÀÃÀ?™f?NFn?eª?6QÃ?Šo?Z‚>ÚX€>ë¸?¤?…®?€iÆ?†¨b?e^n?c‚·?‘px?¦±^?ÍB@6ý™@+?g?¿ÿ?ÊÂŒ@hg@c?©?WDÛ?b[?Xºá?ˆâ?üóí@ +:°?«x–?½áQ?ßg??îñæ?äj +?ÓŒí?¬—Ã>ÕûN>ââñ?R„?‰J°?Wû?4>?gŠ™?{ì€?¥×@ }?ÝøI?UŸ?UŠ?›{Ã?•ÐC?™Câ?ŸŒ +?Ê=?@ñ“@†§?ê1ò?×å=?¶Ù?»÷´?Ú½Ì?ÏÄ_?ªJá?«T?†e??Œ?@óQ?ô¡>?î|6?»®?·—3?®ø´?žêÄ?¼ '?üX ?èÁT?.˜Î?"3b?[V8?H/?LÒêË«?ÅiH?瀰?…N¥>ö9?@R?›J¢?•?ŽÄª?ˆ\?Ð…]?ÔÅ–"1?ÈF?˜Y?ÒÕ?–!ê?œÓÈ?ÐnT?Îiø?qöA??)-?c·?sÍ?€í¸?ŒÉ@?Z^Ì?aµ>Ûe~>ÛÀ[?›÷?Ÿ‘@? ¹E>°É?%ßÖ?]ÄÙ?³ýf@aß?Ü?¹Ì?Ì0?Ïï?Ûy"@üü@Ì9?Ž?? ’S?bz¹?dœ‚>‡/P> ¼c>ë­µ>õgÓ=¿\m?ôû?BIZ?Å€>ë*«?3~‚?X욯?*ó?¦?%ä>€¥A?(¨?P@?F>õGC>óüü>äe??9þ? p>ú@[>½¢O;£Ï@=av0?dV?”ío>¸µ•>— µ?0A.?Æ®?CJh>ÿ´“>ßG¿>SÊX@Z^@‘¬=?ë19?6G=ÉC>0¸=¸ft>ÛzÔ>æm„?¢?©Kœ?n= =·êÙ=è”>Þ—ç>ÞÍÏ?×GM@ì?‘Œà=±˜î>!»[>®ÔÕ>«ù¾?%ñ6?.Vz?1îÙ?5“>¬=BÊ<>#‡ë>oÏÉ?oÝ?!m$?#n?%n×>ÿ•&>çX?<ˆ?-“«?fÒE?}°?g,Ä>èм?%WŒ?Ñ¥Ø?νX>ë¿p>éȹ?9?D´>>]0?"ÒÏ?ƒù¶?1Te>¸o;>¼¶V>Àÿ)>ÒÜ>ë|¯>½wµ=ò›a?¨ˆ¢?ªa"?mïy?l=Á´y;fA<ŸØ >´ä¶>ú=e>ó£o>ì‡?6c?l˜Ð?l R?l¢L?šÆC?ÓÍI?½ +?“ÑË?Š«c?(•’?Zƒ>쾋>ö€’?÷ß?„A>é>춳?~äó?|¬ú??À>ì«@?R®?wÊ?*ê? •?öº?§¼? iÈ?:Õ?Sû?‡@˜?\š?X>åé>AѸ?1¦?ºÇ?š¦V>+=Ó>u4Æ?uNˆ?x/4?®×À?°®?ê‹o?ëÙï?µÉð?°ÏÌ?€ñw?s€?u† ?xÚ>”lè? \=?TÕå?ƒ˜N?”Í‹?h}C?7B|?uÝÏ?fè?ó*? ¢ï? XL>Šuú>‹ƒÌ>ÕºÝ>ú‰ý?08®?1]W?ºW%?Àè#?©NR?£Ÿ?,Ý?¶f?;þ±?;‰ ?B2å?L›?O91?QØE? ?›¨ç?cÔ˜?ì?‡>ê7J?"Ó,?j0E?™ìæ?ê%ê?À4^>ñ{é?&'­?©Mþ?K? :ª?š‚?Ž†?­Ø?uÆ?ƒ•?×0?éñ†?[O£?Þ¥>ÎïÉ>—3½?[ ó?˜ ?ƒœ?iéo?VÔ¨?1¹Š?˜¦B@Ü?Îz>ÁÈ?B?Ÿ¼=?‘sz?D¨Á?CŽ3>¾„r>¯ý? òR?£Ä?çf>ê‰?‹?c(?“Ç?¬+œ?Ô) ?èO@? @©?j.þ?*~â>÷âÝ?žº???>¶*’>œ_ú?jeø?oËè?‚8E?‡Ô]?:?ž°H@ +˜s@|Ñ?¯þ¤?¯ÍÏ?šp*?¢?¶Ñ?±u¾?Ç'×?ÏÏP?>Æß>ë è?&0ñ?@Oê?r³¿?‹a6?'²A>zw?Šá?kgÝ?„‰¤?œþY?´ÝŸ?ÝÎ>?µ¶ ? ´E?|º?oýl?Xã>ëðE?é +?èº?á_?~¡í?‚Ÿš?ê ±?ìVI?£}Z?™&©?²9?°+5?®o +?±ƒØ?±»?±œ?œñ ?›ñU?ˆ‘Û?m u?m…?m-À?j†?^Œg?)œ>ípß?QÅ?±öZ?§Á{?‡£û?Žh²?¤¦¤?Áih@ +ï@ ºo@ +?ý×ú>ܬ™? Ãû?²¿h?ºŸ@ +ö@ÄÊ???ÃÇ?bßi?aE@ +èc@X×?€»?T³¾?{Õ?#ø?縘@ë/?ò° ?ïlÀ?²¸X?™€Š?›§?—Uh?ó<’@S¤?œ-?€Ò?@ÔŽ?p ö@ y³@V7„@¯?¦;Ø?ÈÏÄ?÷\ò?ã ?»ª?˜?hÝ°?Œ ?³ƒS?´›Ç?µN?‘q/>þ‡?(C?†8 ?‚G?t@?èÏ?´û–?¾^¶?ào?Ä€p?"cK?>JS?œØÐ?›a?™^a?ðº>ñËŸ?%c?^~`?WZt?P/›?Nƒ?Ǹ ?ÄFª?Mó +6?zÁÌ?Ò¡?~{?s Ý?N¡?7 ? '>ó2?YÜ?€üs?3?ù??³†ï?ó9M?Ëñœ?²œ?TœÀ?Õ?ŠEð?¶†r?Šþ6?V¥`?ƒ-d?‘s}?¤V2?¶Š?©™?›“J@;z@E^å@4\@$Îd?Ù‡m?nÔ?‡[à?•?Z=>óbà?;¾ê?ª3? Td>Óõù?sV?A ¹>ýDÚ?¸ž +@2ûý@ ¸¶?œ£?Œ#Ÿ?Y¾?M³‚?"ÆØ?6¦M?^I¹?‡Ø?µ%¤?§ ?§ƒ?‘E…?¤Óã?׿Ÿ@6Aò@ùØ?‘áÞ?¸e@@ñ@ ƒ‡?°ß?µF7?¶Z=’>Ùv?§õ?˜¯>òŽ??åµ?‘&¼?›B>?òjE?ë¸Ù?rUe?xn?ËCh?Æ„¸>3˜=ßÈW@4 Z@=ìÑ?ì{$?êÔß?ºøï?µiA>»ÿ=€¼½?d‹]?‚&T?u6…?qžN?¹ó?É‹@Ò@ #Þ?¹ší?–Jõ?%.!>ñ:U?º-b?õQÝ?Á¼?§–B?ªSá?­¹?Ýe°?ôá@?ðçJ?ñz•?¸E`?‘õ?ûòÌ@(_#@ý@‡†?¢3>»„ ?†‡@@ +ÇŸ@ †ñ?ÙÝÃ?I­Á?? Ü?I?DQÞ?³¿3?²6&?±à?©\P?‚Cµ?“¥¿?žžû?¤jñ>ï*Î? Ë?î¥?ÛÄ?mi?nÛå?šm?¥ã ?£Ï­?›QÏ?á e?îrq?r1Œ?"%í?W²½?n/7?¢i_?¶è„?ó0@~Ç?«‘T?€ˆ£?÷=Ö@ e@ $?é®(?Â…Ø?¸’?µÄv?Š8m?C^&>‘x>I>ökz?Dr?î$ +?Û߇?L\í?C +æ?l!?j÷‰?xõ?†Ë–@Sá@ÒS?¯»\?ÐM@öP@ëø>õà?Z?ðà*@6ÃÄ@6`?Äl×?{m4>W¹S>Ÿ¯>ÃÀ?dö‘@€²?Þ‰Ó?/o=?eW'@Δ@ +km?b]?Uª!?èÍ?ÿiÌ?—»m?¢â7? Y?¬wû?˜#?‹#ã@â¦@L?Æt{?>î?61-?i“?Ý:@#»?ÿ°³?¡LÐ?© ?¾F?¶C?®õ? PÌ?„Û?Á?»U?¶êT?²Ë?®öU?á ?è@Ÿš?üsÓ?ä÷?ÎÁ‚?‘Ý=?g£×?×öY@!È@­?‹×Ô?çš?©ÇÊ?ºíq?肬?ç35?ÔК?駘@v=@J?Mâ9?m?3P?CPG?‘vZ?£âí?ó¤@‡]@»‰@µB?Ö'›??…m]?‰ÔÊ?œða?¸{›?ž˜?‹-8?’9?È>û£#?\å1?dôŸ?”õ—?“ôæ?óò’@èÐ?É[Ð?%˜?²{¿?Ê(b?Œ=ž>Æ9÷?ßI?ä?Ýì?0ì?“®˜?³ +Ï?Åõ?ñs‹?ÖÒo?þ>«@dã?¦/î?qam?’F?ª<á?®q”?»{?¥ŸÏ?^™Ÿ?®s@8…b@-[z@L@ ì…?ÿéª?íü¦?âë?ߺ×?ûÝ@ò²?ÍNð?©%“?Á¾?Á’? wi?¨á]?¦Š¾? ÝÊ?¥X=˜âÀ>oŒy>ÉÌ? ­?æx?@ ;?ÛÔF?¼Ú?õ!¿@ÛÛ@ÝŒ@ 4X?ó`?ž6«?˜Q…?WY¬?7Å”?zD`?h?ŠÌ?u,>ï™>ߣn?}È”?Ö¾k?²õ?9^¢?'S]>Þ#ù>Þ Ì?wŠÄ?r5'? ÷?¦žX?Å¿u?În"?×-y?Ýs/?ŸRE>Ýp?$Î?õú>@l„?{’?]e?—ú6?œµ6?Ý_q?ÿ©?¹dÖ?[ÞÃ?­?Û¨?ÚC?×V?ÚÑË?O?¤é?ƒ¿†?Ž,-?ˆx?‚½”?¶…“@‰Z?üEL?¤û?§áÝ>Ín¦?+(@ X@ÿÕ?àë$?´hÖ?Çyµ?ø_ò?óX?ŸMÔ?”?¢ ?¢Æ?¡S?ƒî-?î_>@Ë‚?Q‘}?ÙúÄ?ïÄ×@%ró@&µˆ?6øª?NLÒ@ ˜ä@!€—?ÊG€?b™”?ùVL@jåW@C ?®¸”?´ŒÒ?d«?D_?­ó?–\?š¿ì? :A?º8?æ'å?ÏçÖ?à­½?Ô¤5?§Ó%? Ÿ?×QÝ@ M?½ó"?aW?R"I?Ž ?ˆß?¸¹?ÃNQ?¥{x?š!?‡¥õ?cçV?•W†?ã„?éë?^+¶?mèÓ@Á@9˜F?ÖØí>Ú€J?M?;@M?3kA?ì{©?òžb?z“k?@ Ú?‡¨Á?žìå?¾zn@TE?ÿ«?S½?SÃX?ˆ 5?¦@î?©U´?ž×Ô?ŒêÓ?fC£?fô?g?!ú”?•Þã?ŸÍ?¯f~?¢¯S?jÿB? ‰@?$Öž?>/Ù?W•`?ÐL&?Ôª\?¥/?›|?žÏ?—ñÅ?‹³;?~²?{Íb>†  >ŸÑ*?[|Ç?Zº~?®(?Æð ?€©>ÖÕD??+?äçô?ê)(?W¬ +?WíD?œ§?ª6Ð?{«>¨”>Õ!á>Ù}x>¯%=ÜWâ=¶ Ž>âF<>ûÙÃ>ÛbR>Û¾þ?˜Ÿ ?´ªê? ã=Шr>ˆßì>ç<­?rÖ^?ÆÁ®?š' >ëÔ|?5NB?›¿ä?šÀr?`â?võ?–ÉÀ?‰Fò?"‹t?/ÈÚ>ñlÓ>åâê?V‘o?g(‡?ñVá?íÉZ?¨µ²?–…Â>ëøà>­K?ˆQ? +¾ù=ã©=D?˜Í?C=.? +§Ä>ñâ>òÃP>ó¯½>ôžæ>õ‘v>ö‹I>û†‡?#û‹?)bƒ>úž[>¯ú>…hÊ>ÍÁh?6?tùH=¾eÎ=S“¡=Ý<0=1×:ž,r=!›)=Óyè>.A=ÖÕ¸@•Ó9@•lÃ?Ÿ²ñ>”;<¡^P<Ïex?/öÀ?eYº?ƒ˜B?“,ª?‚Ôï>Þ:}>ÞÄ2?-?AY…?—¡¬?±s°?hN+=ØT…>Cž?D>?B»i>K˜K>=+=_P¾> >Žü«>r…>;©>CÑ>JÀ>Rut>ÞC>ç`M>³¡>qáZ?vé¬>é×'>ê ¿>ê4 >/Æ=îø˜=ÞZð=ͯ=¼Þé=«öV=ïÄÉ> Ûw>ßz>뇙>²¿Î=‰ ã>7>ã”à>ÿ5¸?kÄÂ?l'?k:›?g’=¡¹¾?:YS?`÷Ž?øn>ìç?‘é? +ë9? 9n?†•>ük±>î“š>Ñܯ>‰ê>É„®?Šo?QÄ>/{Î>ƒ‰¼?'Q?&@3>ìÁ>íS—?‘;h?–U?×>ì® >ì¦!>ì¢Ì>vÁ>,Àa?l¶?žA ?‘IV?†ç0?•7w?£u?”T?ß?…ŒD?ˆˆè?¢1\?Øe?Éæu?¤Á?¨Nz?¬ú?¦Œ?kð«?UškÓà7>¼ »?Eª)?ka]?DoÄ?9€G>Åå>K¡>ùç?Nn?môC?}·k?(®“>ZdÀ>ó+S?f0?Z<Ì?jÉ?`°±?$|Ú?85C?Õ²?ÓÓ¬?G?H—ô?Ë{­?Ì}J?a:>ê^§>ÇÌŠ>ÆCX?ïÊà@ÍÅ@'7?âÒm?ƒT>ê"ã?/[›?j»?¦oÖ?ê 3?­O»>êÅ>óפ?™ð>õèÆ=‘rÏ>3éÌö?éÒz?'VŒ?»ïÃ?·@ù?’Pñ?ŠÄD?!Ë?.J?\š†?d4y?i©U?i÷Ÿ? ‘M>ê !> )ƒ= ?”ô?Û#?¸ŒI? %?,u??¿F?v‚|?¢By?Ö¹?jUµ?[J¸?A›?oU´?ÍX?ÊÄl?Ž‡? J?qR[?mûÏ@/µ@»¹?µ½¢?°ô?‹>êéx?4û?Æ­>üTÙ>ë¿?—:?9²Ã?g‡?~>‰?P ã?&£?Df?z!„?¤Êµ?êÚË?ë¢l?ë³=?êžÒ?æ?ÃÕï?a? ãE=ú;?>…@¤?ì#…?ì2r?Þâ?Ý ä?š»?šÁ¤?SY?Kc—?Qr™?W‡5?°ª½?º²±?²©f?°1?¿›í?Äû?—ññ?„A*?=®>íP? ]ò?&1?Œær?Ûÿ?º} ?‹ý‚?“™?ªá®?»ïŽ?å0D?²A½<ó©X>Š­^?²§~?Äl@÷›@z@ +í®@×>µþ>4&>á ?EE?£Òö?¢ùn>Ë×Ù>¡J@I+@( S?Á+?«„Y?ÍÕØ?Ò>??º•«?¸¸J@ ç@!hj?ÄW6?Šé?€î?oïý?æÀí@ A?Ë-?ƒ +“>ÿ =sÀÚ?H?ô®ƒ?›<<>ð‰O>ð—¹>ðôQ?..n?vg?G´Æ>ðÝí?n¨š?Ýcæ?Æž?šJf?­VG?àu6?ã‰?ñMŠ?º´ë>>à>Ñ i?” +À?œ^Æ?µ28?°z?Šv#?ƒ Š?ˆq?”Ö,?ÈB]?Ê‹;?ñõg?臘?r X?p‹/?b%5?^»õ= +•w=›?rëb?qŸ¹>øûÛ?sø?êxÀ?ìºm?%0?OU?Þc™?åR ?Ç3?ÇÔ?Þ?ÝÐÛ?Š€¾?†ô&?¢”?œùƒ?yÃ?râ|?fÀÊ?ZÄù?”¼O?¡Ô§?¯="?ªë?ÈëV?ÏO4?m?,¨ƒ?œº™?¶Z—?´¥*?µÓ;?>J>üq>R|Z=æ¹J?Ä›Ê@4w?Œ[‡?-ËM?«ç‡?Ðäž?Øù˜?ÝéÚ?ÛÓ§?Ùº$@ +³²@Kq@?9@Ö@Çò@ {+?µ6±?6 ?-ö—?1'=?(uÒ?¾à?x²Ž?¬,Æ?.™b;Ňç>ñ*`?s@ò?oê?h›Œ?ƒÿr? ÉÑ?”0ø?s.¯?åØ@15R?ÝÎ/>óû?óM?; ?M\w?s A?3D4>• «?]m?òõÞ@…ê@ÿ…@ ‡ž?ÖÌE@ +Ë­@Oàá@!6°>ö g?uŽ@N@«Ì@+k’@$´@'T@?µâ¾? ñ>òr–? æ¡?raÖ?€\³?¸¦ª?¹ÜÉ?è?’†ª?̽.?ÈÒu>ò„?5Û?‰ê~?„_;?qêµ?rÁë@ïü@y…?ãEÙ?Ö$A@d—@à¯@Œ™@4È?qt?SñS?«Cø?´þÞ?´óx?´ê6?vÿê?M§l?eÉë?q„?pûB?píì?‚¸È?ÒÓ@ +Á@4i{@FbF@M+å?èô?p~Î?¯'ä?àû´?à?Ým?„º.>†±‰>­Ô±?•?‚È?ïï?²n?,À?Lø ?–…v?••Ü?«¡?’>ï€Ô>úÒQ?j?cù?o+"?_:Å>ïp??ø&?ÿ™?´’+?®Þm?µñ½?¥ä‰?Æ%Æ?Љ?áƒé?å­þ@ Ò @¹!?™ýv?nÅ?ÍUM?æŽf?òÑ?û¬0?JÔ>í±?» .@Å1@ _ï@ÕÕ?¯Ó>š·|?žùÄ@%+@Ð,?çž?Æ~?mb”?£‹“@À‚@ :Ÿ?Ö2C?¼i ?MŠ?¸O>G[A>BÀ@—@Ù?Ùr¬?Û@õ?¤Ô§?’ëü@Ô @µ ?ùˆl?çt_?ÜÂø?Ñí8?ÑX?ßzœ?ê¿?á.1?2¶>äÚ?wü?@`L?£²@U@a¶?äb@@LÖ„@9?j@?ƒ/u@3H@+«?°ä?¡q³?tºB?_… ?¢ÍÁ?¯7r?Ú±R?é{?›¨„?iXÊ?$çh>íÐþ?ê]?MŸm?Ç° @y?ç´ò?„l ?Ÿ!ˆ?Ï.?ðN?\–]?V³¢?Õ¼A?Ýàö?è3?ç×¹?„û5?ƒY@?»0Ò?ͬÆ?ºOª?¼Z0?}c ?4¶î?O9r?tè”?¬’f?Þ¥ù?¹¼Q?g½?“&Ô?æø?å³?Ùp¿?×Ì?ü§{@oÞ?ä?Ú@?W-m?+×?9o˜?Q2?À$i?æŒ`?êT?î¬Y?ɽí?š˜R?–¤?‘”?›/n?Õ32?Ðñ>å>Š?bæWv? _1@Ø·@wö>éÃ>Š3@ɨ@$j·?ÔZ?‹Ù†?‘¡ê?¤kk?»¶?â¹l?í-¥?ü–í?ëÒ–?‡Š(?ŒÀ9?ć ?Îêw?d ?SÇP?]y´?[ùx?ª5>¼L¢?5¥k?CÝ?Š‹e?uC?Tç>?° ?¬ƒ×?ÕA÷?ÜŠÐ?»§?±~M?¿èß?Ò‘ö?µâæ?Fby?[ÿ¦?ÆŒ¼?¶^ê@dñ@P @9â@_0?ä ?Ô)±?×A?¾ÿ?¶l ?Òt;?Èò‰?[— ?i­¬>ææŸ>Ûû?‹ØŒ?¤¯?‰·ó?J?¹K±@7@ˆÅ@ÚÈ@ú_?Ñ,’?´”Q@ Û@%¿I?á¼?±Öÿ?†œÎ>çœy? +ìŽ?db?jÖ?1R?HY±?…ãßž?,;?VÀc?…’S?·5?Èè?ÐÉ?½û6?¤Âx?Ÿèÿ?sìT>Õj? ‰Š?Ÿ¤?Ÿ•g?à”?’F.?x¢ã?WLç?&z¬>?!œ ?F?œ%Þ?D°K?)TÍ@|¶@2J·@š?–86?o>l? 's? è0?ëÇW?å£?yQ?L³?ÈSE@ù@bq?¼hz?ÃèÎ?ƒy.?z‘¯>"Æz?<¡£?žÃ´?Ê9ö@¦E?ÜÉŒ?›;?M?­†[?¯ _@%hP@QÞq@7$$@dÄ?èØò?Xß:??¢?ÏÑÞ?Ô‘Ž?;–‘>Ù=>¦>”? +‚ ?UIÆ?GFþ=öSï=ºØ?ºZ?ÔþÅ?´Ú?­g?—­z?]*Ï?f€\?¡cÑ?³"?R‰ä?Wá?›[ú?¢D1?Ï>d+ç>¬B>Ù{à?‚W?ZÁ?XuW?Môé?@òh?3êU?&×w?z6S?zÙ?mÌ¡?a S?[ÍI?P#{?ƒŒ+?§Cî?‘/l?-r?Ô?Põ·?LH>çGf? xÁ?€:L?‡Z>g'æ>!? ¼e?øÙ?Zô?gP¹?CPã?rN?Œg«?“#9>ym–?‚?°8)>['=áäø>A‹ß>}&ö>œœ¸?B7'?!à6>÷‹>ìjï=¤Yt>øßb>ßi{>¤ü>AÅ=OÑã;h)†=tõ˜>’^>V- >‹//<ÿ‰<œ‚u=UÚþ;f d>.÷¾>÷ª£? +aW?yâ;ŒV2Þ?E{ ?[Û?bÄR?jdS?JX•>Þ,þ>Þº>ß=÷>ßÂ]?ÄÖ?;–G?<:Á?(wÑ? +Ð>€Î>ÞL?´?R0?PFt?ZRÂ?B«Ý?7é‡>भ<’>å3=>çd\>âb˜>Ò¾é>‚òâ>C4Ù?<î?¥™~?‰%›?yg?‰G?—+?«Ë>ê K>ì‚L?.?)Þ9>ÉÂo>¾ÇÂ>áä>ëù?4¹ð?^ž?)ï}>ë^?"õó?gJÏ?#†›;L|;_’À<¡)L=‰Ô=…*>>ÙÞé>ÕI«?ëÐ?bA?N–?WÕJ>Š)à=˶>±ôË>ì« >Ƚü>§0e>ö€)?ÀH>Ìœj>1h=ýP¶>‚¾>ìÄM?†b?mÀ ?yÁG?¨ÔT?›Õ“>ìªü>í¥å?#@m? Ûv?i„˜?g´?fÜ6?l~ü?—O¸?£ƒ?„÷Ö?l_]?‡6é?–×?ÃãZ?åôŸ?”Xi>ì%½>ŽÄN<B:»¶>€Äz?kâ^?S>Þ ? ó†?ªÓ\?¥ÅÖ?Z˜ø?^-Ë@+­‚@(õ:>‰›=îñ?N‹§?kOÅ?OF?CL?#2ž?e.?VSN?{t?…ù?‘X?RK >áà)?RGz?·h?š!?<ÁÓ?2`?J +??uw?ž7å?šõS?Oq2?ZNä@|¢@ ?'1Ã?µ¸>ƒÓã>7e>Ìb¿>ê#ù?K ƒ?i=?E>êW?;åc?iú—?pV—?{@Ã?øÿ?¡cF?pè‰>éØ+>Ýø>¸;>ñYR?iÄÆ?iÂà?i¾q?hjê?@¸Ž?@n@׊@%÷Ä?’6w?q^|?·>饓>é©>é¨a>ÓËÛ>·?”·y?צ·?qãÚ>‹´³? ?‘Ï­?gô‰>é¬ð?T~?àz9?è¹w@,à?ûš?i¼%?c¾^>ô´F>ëb1?gCg?iÒ_?gk?dt|?[˜?Sé…?v» +?…‘g?‚³?€?tŒ?jW?fX>ÈÐV>ºg +>œt?Da?=wó?1½í?'?Jèª?“¸b?‘*‘?”)-?—9q?ÁÆÂ?ÅÐæ?\ܤ?dÕ?$w ?σ?«³?°Ð6?J?%^ì>±np>Z3‹?p³‘?ª!Å?×ö?ñÚ9?êx?ê>?Ïs?°“3?™Éù?tFU?¢ðÖ?ë¦Q@@hïó@1.>®ÔÀ@ ~ã@R? +Œ?Ãkü?PÓ?›™ñ>õf™>ìeº?q”X?tî©?Øc×?îx?ÂZV?¹pÀ?ä?̓V?Y™¨>í?%´ß?8ðÑ?Si9?mFÍ?Ì0@™"@ +og?ôöô?¾ß#?mªv?kÓõ?kR×?Š +?²rZ?Ò:)@ìz?ñg¬?ç?WÕ>£ ?qç?Á0?­7Ì>´”ô>¨Â>ÔPR>êAõ>òj¡>îëú?­;?¼sm?€O:?o*»?p6º?€ðë?’UC? ±?¾u1?ÈÀ>?WJ€?{?o_ß?†oî?Ü¥~@a?Æ÷)?¤2Û?I–G>ð'!?ÂÄÍ@µè?¦áo>ðco?5Þá?k„;?5‚? V?‰ø?Ô½»?òáR@#è?óÒ&?´¸+?»7M?Èš?¼‡À?¦ø1?€dŸ>†n$?Zh?–Êx?`ß?ÚÕ?˜wÊ?Ú…›?¾Óm?Êä?[ å?ñ¾õ?éÜÓ?Ìêì?Ã÷¯?`‹ß?ZÅá? 1+?^?^¤? ~‘?µ—•?°«å?l?r¾»?òN?ðð? êÄ?ž5^@ÍÊ@c‹?á‡l?Þ‘?ñd¸?ò™/>’‡ >]¥?Œ6?›+Ö?I¢ã?@#²?ØQž?àù?fÐt?OÙð?ë–c@u@mÍ@ jz?ù±Š?òùá?¾£o?´¢±?…¹t?s1å>_À¶<åÄ?þÿ<@Xp?¼Æ$?œÚl?Œ?–“Õ?öú@ òØ?â¹+?ΘC@t¯@ ÈD@A·@dŽ?Á˜,?„†o?ˆå7?:ä@Éø@'S½?æ°`?«_Ô?¸#?½ +ù?fú>üH>ôW’>ó??ðþ@$ßp?½kQ>Qðk>á³\?7$1?‚ô£?¬ô?gˆa>¥ ?pÓN?òÖ +?ÈÞ®?„¡?Jî>ØÊs?¤q@‹d@±@Щ?ò©m?ˆeÏ?¡z¤?ÓŒ'?ÚÛ¦?â,‰?çãÿ?Þ³á?· ?>òTÙ?•}?rC?}[\?“í?’R‰? ±?f\?r ?cºC>ññõ?Y?á-?àÀ¯?o”Ù?|3ö?óé?ö-?ñ¨þ?ñe¹?Ú o?â=ò?\/H?tCÈ?ÏÐ…?ÆÔA?—Cã?—«I?šW‘?—?Ÿ·Û?¢fT?gßö?W.¹?|T?qt?Ôô˜?fh?ê5 ?Ä!1?_Á?tZé?¥„·?¯ l?ÛI§?ϵs?ÔÑÚ?Ñw?Óü?×^S@BŠ@P?T!š?Vƒ?¦Ï¼?­ '?çÉZ?îe?ì&.?åÝ? +'3>§Y(?u±ß?˜§ê?* ?ƒaÌ?Š,N?”¡§?² Ì?»,Ï?±6?§9Ö?É®¤?öŽb?؃?±¦©?Æó}?êô“?ÈD#?ŒÞM?z\b>åF5?¿¢?AöU?5Us>÷ßþ?áq@`@a@?‘=o?•Ó×?÷Àí@]–?¹­˜?°I?ƒª?}„?ô®°@ 1Ã?ï¡—?Ø=š?ÄÖf?ÃÜ;?½]N?¨¡?…æ?=0Ã?fö?•?”Â6?¬¬+?“„G?«V?6b­?j"2?})“?ïÅŒ?ýߘ?¤?«?«Ê?–;"?—ê?½0D?¾»ˆ?Ö[ ?áÔ?“‰ä?h+¬?º£Â?Ûß?šì¦?Pkî?˜È?ë’?¼;æ?0mí?“Sÿ@Dp?û\?ÌhÐ?ÇÉ?\z?kÔ?è€?èW?Ú¦[?Ñ£[?Öo³?Ô_Á?£Þl?’?‰”?wFj>åÙ=Ø”º?Y,?ž.?“Xä?g'?–eÑ?æÖŠ?Ýš?½í¥?¾ô?¦=ù?°2ž@BX@d[?š.?—É>ÒRR=‡¯?wlI?¯ør?ðWg@ dŸ?ðÔé?ÐTä?ËÍä?ÇBÔ?”ÔÛ>‘³>¹©i?N0é?)_G?f;Ù?gB?°@)?µ„c?x-K?…†?A.^?*Ð ?´à€?äK{?†8Ž>£&>ù¦?aÈ«?…@?¯±­?ÓÕj@Å@ f@X+?ÿÙÉ?•N¦?—›?Ëðw?Æü?®÷?ª6µ?Ê4Á?Ö62? [_?bü?H´§?$´9?l/[?Å`"?Â&ª@d@#=f@ ô7@ µ†?•>„?Ž)«?ƒS»?[Ö_? +ˆb>îÈ?˜¿?ñ°@"Yý@}9@jð??§p×?¨$#@vO@ôð?—>à]Ò?óæZ@‚Ö?ù´Ã?Ö ?¡em?^ãö?Õ¬@9\¼@©Q?ÊAà?ÑÍÔ?§ªy?Õ?¶7§?³dÑ?-"^>å†(?{oÀ?¡ÝI?‘Wî?o4Å?ˆO*?ÃÂù?¸VÑ?¦Ü¯?·¶ù?ÝË ?Ý­.@Jg@I?‡gH?,˜ ?eÎk?ˆæG?–qY?¥¢â?Ä•@!þÔ@ >ç„Á?Qí@'³µ@8NŸ?Ÿ°Š?%Ái?®Š@[u?ö(?©¦(?›÷É?[@ ?["—?AŠ?5&?yª?‹€—?]Î3?"*?o°¿?©â?±Ó,?ßp?Úôv?'yõ?`o@,@0ú ?’u‚>ÙGð?T”?¢Ž‰?©×F?Å*.?±ò ?-â•?">?+Ù˜?9Ø?CN?c?‚õ¼?ßZç?Ë>d?vz‡?„I?¼¬K?Âo©?Ô¥Ä?×L?¶tq?¡4&?µ+?Ì ?Ͳ«?à ?Ô'û?ÐÍ?’Üî@@5B@Ö»?”Ów?_F >Õ¥½?¸?ù6í?Õ6¹@ i@*?·Y¶?Y?F?Uj”?8Ñ…?1X?R½±?jÌÔ?‡“ä?xAI?’”U?žû ?Âþ?Ý&ü?¹Qo?‡äÐ?ÔÌ?Âg?¶l?©Èj?ŸÑ“?ºLj?Ë&ô?§>ª?)á?*ëô?ôÕw?úü?ö!@ù @Á?@››?úËù?ÀVŽ?³ãÅ?hb?€qR>Ž¯¡=+ú??ŸT?ž­?»ü ?÷už?ì ñ?&Á`?3U?åWç@½„? Ê?…,8?ÙŸè@°c@ ?aaè?zÓ¦?³y‚?ÇÖ >Øô=&d>Nl–>‘¶]>ùƒè?‚H°?n’«?„>ç|M?Áé"?ÕòŒ?–C©?wî$?ܨ?¡ Z?™$—?‹‡L?‘¥5>Ù^ >çöP?ƒ¬?0Æ™?/€ï?)Á>Üw>®Ï?ws?Z;?Z^â?Zµ•?b0?ÈÍx?µ ×?qÂl?†IŽ?ž÷|?¥Èð? –>=v?$F¡?‰7?”ßÎ?­Õ?˜Í>ÔÅ}?E?ö?‰êÂ?ö?&ª÷>ºŒ÷>ƒ—?9ÝA?\A.?fÇf?go‘>\3>'4!>ÐÝ? qÒ?ù›>Ž¢ª>Ó–‘>õk²>Ú§>³¤h=4Ô?Õf?ïÞ?rù?ZÑ>·›Ã>«Ïã>ù3í>±úó>:X“>ø:–>d¤Ã=óp°?ÁÚ>‹§Û=.?G> eM=’ÂJ<@[Ÿ?Y Ë?k­?•j@ÃM +@$é}>‚6Ç=™8=­MŒ?%}†?]Û?“T?Ã˵?¯ÒÊ>ß:7>ß¾Ò>à<ß>à¼î?eÆ3?š2%?e9>žÓ>Ïz?—°¢?—þ?KžH?IIº?/„z?"¿>ìçQ>}Ë:>vJg>n¼,>Zàÿ>nðü>wÒ¨?a¤€?gõ€>É<û>Œš¶?=Ç?qûî?RFŠ?C¦ð?Eðp?H=Â?9¬>ê±?Å?–äë?™.=Wº>ÆYI>ë%>ý¹>þL¤>ùèî>õy°>ñÌ>ìÍ8?&WO?k^Â?gq +?bø?.P¯;mÐ=\nV=€ÅT=“e=¦?œw?Ãú?2æX?0Mý>t%»> Á-?P—¸?‰ØÞ?«—£?À=’?/^q=¡ˆ>leú>å“j?vd´?„ê?¬N¥?«è?OPg?E¨Õ?E$¾?N&?ëž?ì’7?zŽ‘?l€d?VHå?V‡È?i=N?l`H>Á3Õ> K ?r­g?±(f?Y9v>ïI…>ì!ò>ì ß?Š$1?æ—T?¸q?k݆?hß?^Üâ?—bU@ +Iÿ?ö4N?k˜¼?s±9?¼ ˜?¾âž;ï½n>{î>¥%|>¯†>¹ïU?³Ç?);?SK?gMd?nÌ?jäK?I± ?8À”?UÖw?jµ©?]º§?D9í?€Ñ>ˆ¡ù>å¹ß?jwù?Ât?ÞŸ?ç‰â@ Ví@Î…?©=T?«ç!?æ?ç´E?  >ê‹>ê +ø>ê"#?P{?e^Y>•òP=žÊ?’8?ÚŒÀ?YP…>wÿª>C7†=Ðl"? +æR?׸?„Ü?i«é?“ÑR?ä¬Á?Äêá?$wS?=Òy?ɽè?ÈN×?jv°?oC÷?e ?Xïá?)IG?!e`?Ô?:1?¾Êë?ñi?°ø?‚Üö?3î>é‹ø>é3>éÑ?W"ú?µn?‘‚T?P×?Œt?h%™?‡Õ?é¨?Ô\—<îð7=¹²¦@ +9@ [?O•? +? ]ð? ,_>Ž¯¥>fÝ~>ø§?o–?ƒ2k?™Æñ?*%>ŽŽ—>â Ù?(w%?K}?m$á?†–ú?¯²[? ~—?jUc?Tcz>êgþ?m\?:Ç?)òs?j?k»³@,§I@0b?®?žÂù?¡«Î?¤•k?Vn?k*@ +e¢@/Ø?§[Ú>륿>õ>ÿn+?nä?«?‚@·?'ø¨?Ž æ?ô˜ë@÷@2°2@Î?©˜›?¿|K?þ•?ö²ç?Ôëz?Ô`{?¾…?¶Ä§?’ ñ?”ÝH?xâ4?|ÿ?‰‘?Øþ?Evª?D+??‰Îð?ZÜ?£ž?±Æ©?Š—0?m)>ûÜÑ>/Dá?¦"ˆ@#ó?ÊÒ&?k7l?7š>íªâ>‘sõ=3—ä=Ìõ4>Gº¹?UëJ@Œd?æ%è?ׄ?n.¦>æå?„?K@O?D2]?nv?¨H>î»Î>ön3?8q}?7j?±zÃ?®ñ6>}òâ>CéÙ?v-?ˆøŸ?ÒŠ˜?Ýl¹?–³?†…•?”¢‘?œÕÝ?sÑU?_z°?u9?¬µ? oO??^>ò{g>ð*—?Bù#?lÊ?mf;?pfþ?’ƒ?¢ +?u|µ?BV¤?œj?Ô?ÇoÑ?´£?Æ{¢?ÚE?Ýø³?ÞÇÔ?›Ã>ñ)5?ai?G> ?Gmg?'à¸?S]»?¡Å?¢U?™Å ?©Ô?ä´´?½Ïˆ>ñº>>øè?Vž?2Ë“?»­=?Á d?ñý£?ðÎ?ïÄæ?Þ¢ ?r$p?†mû?ò3ê?ìǃ?µ·&?ÁÕ×@-'©@&Ý?£0¥?§u?ªÔ??®l2?bã>í—>~ÔÍ>Š=?)ˆu?& ??þ2Y@1c?¹b?¢ÙY?Bï„?H+V?`F3?ep3?Ý?ínÓ?‡QD?rëS?­`¥?³ÌÈ?ªA£?¢ÝB@$œb@6C]@" ¨@þ¬?ÌwÎ?¶J*?ÖÀ?äæ?¦Šo?”ž‚?ªª?¹æ?¢j?’Ñ?èÁ@@?ÍJª?¶S©@ Ÿ @);?ËD÷?­ˆ?À™?ç¿ ?¥k?s†?&3_>ó _?DxL?sø?}¬\?„„?t¯\?uk)? Ó=?¶:[@@Û@ªå?Çr?=Á?nñ?Êã?â$–@¹?Íi?OM2?”B?Ë•?ŵó?¶ ?^kþ=­ 0?—³—@5óª@a÷?õŸõ?´ƒ¨? ý?~ìÈ?å«r?òBC@Ôa@ »/@)S@¶?ŸºÃ?—¹&?•%š?šóø?µ‘Ñ?¶:/?®ú0?ªK?¬š?œ(>ñÚ8>ô¶>üaM>ÕnŸ;!…@=¨€´?ª¦?4È‘?¿.`?ÃÈ/?â ?ÞWŒ?n½¹?]à¬? ò1?®½•?´è{?­"]?‘yÄ?Z¿?t.›?pæR?4´?ÿ°?‘UÓ?§f[?âOÇ?ð”*?Ài?¬¸E?Ev?ú|?Áß½?ðC˜@%_@ ±Ó@ +9M@ÂÖ?êìÖ?Ϩý?Òv?Ùéô?ž«í?Ož“?}>Æý0?ƒ~Â?ë9?¾€°?oJÿ?Þ¥Ä@J>x@¥a?o0? w0@Žf?ðš#?¼n?À“m?±V?·,Ú?²ë'?¯­Á?‰zÞ?†H£?W"Ÿ?>tN?’þ$?ƒ»²?ç??íþÙ@ADé@EoÃ@r0@ ­9?µW§?ž0š?¬ j?²«?©w?ûI?Ãûá?íR®@>@³ÿ@ +’«@ ¯?é˜?²!p?ƒ¸? «P?‘¶s@Íu?Ï2¤?&la?^!å?Þ?å?Ä?lE?ˆàÈ@$É@(Q7?HÝg?3¶?„¢? EØ>ð +˜>ñð0?šÑE?¨¼¬@;ø@TË@{5@Õ¿?ÁnÞ?’Ë?¦d{?¾ªÉ?ÄO?¾žÚ?è>@Œæ?éN?kã?”8ô?Ý6§?µ b? ®¹?YBú@%çÈ@àº?³Ô«?¬%?kYó?iæ?ÀJ¯?Ðæã?Êi?¼jp?5Î’>êðº?NgX?„ +?FÐÞ?²Ý?¢m—?ó¿?ÇÁ?Žée?ÉÚG@0—÷@œ~?}Uc?e&X>ûé?©?°?Ö?´M;?6Äí?K<?·šB?Ä‚ +?×L?p°?™r\?°ð?Ìã?kæï>ÐPÑ<ÏAh?EVr?à,Œ?Ýh?æ¿?ØèŒ?¬õ¬? N?-F"?;\À?ªŽa?·‹x?‹»I?RÇs?ù"D@ ?nû?sõ?·ìÃ?õ¥H?³^x?ƒù›?‘SE?ž·¦?—åj?e8´?¡EY@#ˆó@XÏ?«*³?¨ Ä?Ûºõ?×?nr>ä†b?à?„tß?Âþ†?ä9Ê?ä(Ñ?ä)?•Þ>äÖ?EØ?ªÑ­?Ìeu@ 7%@ ¥?Ä 8?Ñß ?ÿ!©?=t¡@ [å@ LÜ?{™D?[ +?Ñ]û?ÙL¤?»'ö?®‚?WÚÑ>ã6é?­zˆ@-@ç?D­?"˜@¤|@Qo?ÅÒ.?΀§?†ª?^„ ?×ü@à@ý@,@+Q?ÄûÙ?°s¼? ©ù?PÓ?äÓq?Ý»(?²ã~?·W%>ÿrY> >ß@O?+G ?a¤ð?—±?³1Ð@²@ç?T>¾?IÞ?°WÉ?Õ s?,Þ5>:N?,ùZ?†h?›ãw?Øçd?í›ã@ Ÿ@ A>‹G>·ð?¤7Ý?ª‘z?ªÃÓ?¬ß¯?íå@#må@H%?ÙøX?ÎL?AŽ>Þµ@(b@;Ii?Ÿo™>Ù/q?YÇY?¢»ù?ÎPu@”Z@m4?X‰a?Xm?ÿ‰?zâ?è³¥@ õã?Ú7¢?wqk?|áâ?W”?dO/?¸Ç?²E?¶2-?È8ç?Õî ?Ô/š?Ò“?Ö›À?Íbs?¹ß…?Ëî£?™Þ³?‡Ä‹?!¥ý>Øë ?9”?i»?ªòr?ò8ô?ß{:@8Š@AÏ?Ø7?Ð î?H?Tð@?‹£Ð?°4M?Ÿö?s1‡?Ná?ÄÕÔ?ÏÀ¼?­ÐÐ?Ÿ5r?©†I?½¿€?¾D¯?Ÿ?Ÿ£E?î>y?úcs@¤@1[?ŸÓ“?7†~?‡a°?¼Ù.?«Æ¢?Ä#$?ÊJØ?p¹Ñ?U#h?qi?‹z?—E?˜·? 1[?OP¢?*’?<w?RºÂ?¦`­?ɨ>?¢­H?oŸ×?uxÅ>‹bß>¤‡†?˜eØ?Ÿ8›?5Õ>÷¡ ?4ÓÅ?‹Uë?‰x?—3?û¿>½Si>ѵ{=Ó´?t*?jU?gÍ?Œ®â?Þ?b•?WÖ?œ??¨Ù?ÌÃ|?˵U?ºúê?´GI?Š÷>½âH? ú“@F?ë›?Jµ>ØF/?8õ?XÓ9>ú™Ó=ÀšŸ? 3)?Ôê—?®:*? ÿÖ?!¸?«ÖY?Æë>®™L=±©¾?(ÆZ?cf?Gàä?xÁ?2?,P ?™$>àà>Ÿvq8·P>P2>?w¨á?†ùì?™ î?‚´X??ã ?Nn4=©Û; +”-=•éE><šV>™±é>€vÙ<â”?¥)d?ÝwÂ?‡l +?ba>Ot&>!×N>}CÉ>HÃÔ< :5Р?cŽæ?i·ð=ÌhM>€`Ü>÷‚>øƒv>ùŽ2>¥ ì;¨F@? ·?D’ö> @>Åóy>‰n=¥Ï‚<©¸¶;ÁŠ€<ª(=ò0$>ç|Ë?á´? Û—?º?§ >¸)x>¾‚?9žÄ@R»@K?ùSß>Í»>Êdf>Ǥ7>ÄØÀ> ¡Ç=îÕ€?ç+?‰£?‰: ?‘â…î?‘b?…eé?‡è?€§W?{Ó±?xGŸ?tª¤?!¤´>åîK>±ë¸>gý%><ñÙ=¥x?Œ{O?‹–>†]M>,66?’ÿÁ?Ââ?dÎß>é\=>éŽ">éÀÖ>ýýù?ï2?E¶—=ë>ÆèN>ÖÖo?P;0?eÕ|?hCÎ?j¬ƒ?kº…?k®É?k*Ÿ?kÿ3?ÒL=Žô>ï´¯?œâÁ?v ?Gã!?Qo·?Žà©?…Ô$>ì¿>íDü?êm? ^?5äc?>ûQ3? +2?¥Ž ?Ê]À?k¶—>ÿ¦ ?²D?0ó$?F>4?XJ?% +k>ì¾Å>¾Ôy>0(Ô>ÝÀ@?þ?”Ëþ?:>þ?GpÑ?Á7Ë?©f?lŒh?lÕ–?ÓH?‰™?oÉ?wbG?=?¨Q +?­k×?°N×?‡Õ?lä?!šë>ìï?>öÁ?}N7?C:‹?À¨?Pí?ß%? +Æ?Vˆ$?gp1?kŠêÄ>éôt>éëù>éà@,Q@$(H>â +f?z\?6¸ ?>6‡?3[>ò­¤>¨,±?/ô{?‡Ùì?€ÓD?i‹Ï?‹è.?¾+Y?§±ª?3»?Dï?’¡"?ŠŒ?(6?,½a?¯ æ?®Ë?Dét?C‡>]’ +>ƒ‹?) ]?N€Ç?“i&?¤Yª??OÚ>éfä>ù'¾>þ;ü?Åœ?âä?åÜô?é„+»?sMb?J¡v>!ß?¿/½?½ñ¬>ëW>é¼³?‘›?‘NV>Öm >¢¡ >ØŸN>éÈ«?ð[ @ûí?›D>éäù?¼¥?/ç?‚ÔË?¯‡?¤+A?—¿)?•Mš?Š†?dh>ê@?HI^@ þ?òðf?Qqf?rLØ@&>@&³%?ä3? +¶«? ‰*?1_?`rR?k¢?g>îU?K1¿?eFô?”íÏ?¤Èî?È»Ö?âŒA?‰ÉÓ>ë_P?aÒ‰?°›Î?¬™?µ|¢?ª+É?k´?b¨é?jFé?Ž¸…?ËZ;?ËR”?Î/q?ÆF?‡ì? JS>ìœu>ì\»>3T:>©#?ÄW‹?ÑàŽ@ …*@)?Öte?»Õ¡?€ÛÌ?^¸¼?î?±Ú¢?¶¥¾?µÿ?X˜y>ícï?™éæ?ç¿\?ç>ÙŽé?tÑ?Í8ó?ž—_?Q~?†îœ?²Š?˜.{?'ó^?r:F?ë¸í?ÖÞd?šîŸ?­±7?þît?ß;þ?3ù?NÛŽ?îØ°?ëR?SiŽ?L@?M?Ûº?ž5®?¤\?²Æƒ?³’5?\é‰?:²? +ÂJ?ýD?j“ƒ?zh€@q5@ñÍ@A^_@L–,@4þ„@)À¶?ᥳ?«¦—?ð^@ +J¤?ä‘Ž?Âj¿?Д?ÝÑi?„ ?fo?Ty?ÎNõ?ÌÎ¥?Ïþj?«7?fÔÄ?1¯>@´l>Óee?HÚ?<³I?-&Õ?‹¥?ãë¬?͈3?¡Fª?‰°k?&„?&$C?l;?·  @5T@#P?xê?ŒN6?º±?¯,B?rf?…”o?Â6?º„Ü?‰x"?‹Å?¡IL?¦¹ ?rH?z¿?š Ù?•2 ?rj“?pý?gú?èR?Ž¥6?Œ‰&?¤e?¨9@I.í@OÔ/?Vþ>ØCS?/øÂ?ü?n y?rÁp?I¥>÷ê¹?âÎ`?í‡4?‰ÿ½?‚Çí?lùÐ?º?Ú8³?êÇ0?n°h?PÜ?«£f?¶3$?òqÝ?ôŽÐ?êÂ?Ü2ý?¥†(?ŸÜÇ@"@)øù?åki?Ĥ>à†=˜ÅQ?Ž\ý?»uê?JÍà>ý g@ +@4æè?¿ ??hî?¿œæ?àÛ?ü7@ú£?Ø?»Æ˜?Τx?Ûø?ñ`ò@,'?Ú³8?¶Ü?è‘R@nm@*ì@Já?äÔq?\?FÃ?^Øö?‰éˆ?°~N?µi?¶§C?Ò>½?ôÎ7@¯o@‡Á?ïQ? .-?¾Ð›?òJa?Ø%ð?¶º?Ôñ{¬? +*Í?…©é?—M?@ ³.@ +>{?Ù®t?ÐF+>ñ¦>ø@q?Öž·?Ù¤&?µ»?´¥j?˜¯¯?‘=?Õ+É?Ð3>kœË<²|~?šRg?µ‡´?´ß\?´A;?+ó>ðAµ?¡ðå?Æ+¼?»Ó*?¿NÁ?õjÄ@²‡?×˸?¾i]?º:}?³Ák?Š¯D?EÖm>¬ ?+oƒ?²EZ?|.7>öS?B•Ÿ?ž'N?ª±M?¥tÜ?—F_?Šð1?„vB?+)ë?1=?7X…?J +?ˆ´?“S?²·w?¾'Ý@Må@¹É@Nü@OÜ!=‡?G=ô1,?’ª?©ß ?Öæ[?äH@ +‚@!“]?´åO?”?c?—y¿?š¹ø?­e?‡–?åÜk@áQ?––W=›£¾?•Ìl@N?ëÕœ?£F­?¿ââ?ú0‰?ÑuÖ?l<.?’d{?è`?Ðò¢?:у?cëÅ?Ô +ó?ÌßÍ?Ö}È?Þ ?ò™(?ìZ,@Eñ@ b*@!N}@çt@Š|@ˆŸ@:Žq@DÕº?¸p§?C¿,?bàò?jœX?³›[?êyª?þóñ@€¥@{Ï?éì@@'èÏ@¶€?¼vB?çk@ìo@w(?±e†?¹'’?‰NS?…KÕ?™;Ø?6æ@ÍÃ@-¦²?©“î?b[á?e£?h×'?UÛ‚?B£É?xí?¥ø\?š£?éà?”q?’n'?”•h?®F?­~?­¿ý?«.ò?­ã|?¯?ê +™?ÙnO@ ;î@3å?72¥>çW?|?e¸?ð6@3wù?ì½?fÎå?iß?/?‰¨Î?’&Å?³BÄ?ð,=?Ór³?W(¸?I¨?UÕ?:ß@K& @\J£?T2Ò?q`?´#9?Ås²?×Óz?åˆ?¨O]?f!œ?n‰>•±Û?c ?ˆO?ŒÚ ?­Žj?‘Á›=«o†>}Ø?¸, ?¼±?E{¯?/‚z? ­ ?¹y +?ñ§¿?üK„?ûÒ?ïµ?ÿøÅ@§?»ÓÌ?"ã½?rv?Ö +£?ÓXË?‹M?‡Æ¸?‰.j?b^(?ÿÁ.@ 1?Ás?ªÖ?Ý>…?þT°?ÈkÖ?’>±?šÛ…?³ÔØ?×Æ[@ ²?ëà?¢q ?¯-ü@ +“o@Žù?ž€j?¥*K?ªª?©€?¾ãÙ?Î^ ?Ìy?Ϙv?Ä?¨~?˜|È?Q@Š?`QÅ?Ì#€?Ö: ?bù?u-›@·×@V?ê2…?Ù†'?@,•= ;@?T@?ùh7?iûÑ?kÛQ?ÖJ•?õë5?Ž'Ü?wè4?Í^\?ÙÄš@ÈÔ@ D\@ +¬è@ÄÛ?ÿî•?Ъã?¬N)?4ˆ ?i m@%û/@$4°?´‘?¥÷ÿ?AX`>ý¾Ç? æ×?ýÞ?#Ç?I ?W¡­?]T?Ï@CÝß@34í?¡'y?Œ„å’>\¨Ô?µR£?àNe?Åáµ?Æ€ü¾1?ÁÞâ@¶÷@?:@w@ð§?„žo?}‰?B|‹?Jp?UÙ?_žÜ?j‘ñ?W§†?W‡œ?Wm?h€?Äà¯?Ê¡?/-µ>ä}\?Å—Z@Âò?ÿ‚?ù|ÿ?íft?Ǫ?²¾@ñ@ –@W@s·?¶®ƒ?U™?¾ À@- Ã@)=a?ûSˆ@›Æ?9–{>×^|>íƲ>þå¥?Iò?—tO?£rM?¯t‘?»}…?š²?žC?ê,‰?ú=k?Žl™>ëLÓ?5?‰´w?(×?žÖË?žÉ?l ?q¶?`i?1?b¿÷?ÂUÕ?ÑÌÙ?©?£f@>_aG=Gnˆ?9¬p?Žÿ[?±%q?ægi?ÉÀK?ÓEž?ÓH3>n{Ù<ðÝ`?#¤9?†+?¿®õ?ëÇ,?¨î=ÙÅô=jº?¿Œ?ÒXë?ßÿz?Ó +²?«Ú÷?…¼Ì?dºë?Sþ¡?Tè=Yñ;î-@> ©> S?~ˆ?QŠ“?y¡µ?‡¾[?}j¯?ž ?Ÿ?@"¦@!%?½SZ?Vn?ÌxK?å?Ð?¦I =2‹Þ=ªµ–?ó?“Â>‰ÁÀ>S±?,’¥?XÄŽ?`[?\’>?·”?ª»?ŸaÙ?1~ú?$l8?Jã? + G?ƒþ«?fhe>câ¨=þNP?S²?‘À?[\?Ù? "Ö>ût·>ŸT +>‡`?™Ù‹?0 ?n\ ?ŒZý>¯Öí>Í4z?c…Ø?[)>ȯ5>£ÅR?•u ?Šô/>s`ù=Ê·²;è)Ó4=lÍH>.ç#<ØÜ€>Þç°>ñ'=Ý‘=È`:ý ±=wˆp<ñ>Z6:>¨äL>ùß >˜ç>Ï©?*%,>µ¨>_Ðô?Zx7?Súx>ö)ö?8è?ró¥>£¼Ó:• =A@ã?@͹?0á©>}-š=ë`ò?ÊÕW@ƒ!‡?æƒÝ?ªÙ>—óâ<<$¦>Ù¹þ>š",=#_ =QÍî>¾è>½ž>N÷ä>ð.?=½G?Ó3?Ä1ú?&.y?*]Ï> C^>ƒöñ>JWJ>,|>ŸÆ?Õ—?,a@?ˆÀ¯?‰ýŠ?©ÿå?«öò?È?>` >÷Ý?$Ê>Äãx>)fZ?~a&?¬v>–£Þ>˜ ƒ?2“'?EÚ>èà >ªm'>Ò[¿>éÍ@??×?‹ q?”qÍ?¯Þ`?¢?P:?K½=‹ðy=MBé>Ö]…>èÀ>ëƒ,>ë°Ä> +ÉQ<îÆ`?ï?l >àA2>×ý?~K×?Y%? ú°?[©z?Þ¿?¼+{>Æ>1Òb?A5?Eîó?"˜?#Ò>¥ût>‰y}??#?c§s?nxÚ?lÎæ?n#?w¢y?‘™i?£©?b>í>ìÆ >ìÀ>ì¼Ï?lX?)šÓ?\mö?£D?‰…´>½üM>à[M?H5ü?W˜E?¤Wþ?¦æ0?©u>?¬ü=ÕD‘;†;Ø>ÏM¿>ì^==Òð= zØ?GÝ?§n¼?¨»#?©‹w?£Bi?œçF?Mõð>ë³W? >?M@\?V€R?kƒx?– Ý?ÖÿÉ?·°Ù?Q½’?O€å?(ãN?E‰ +?Ì•ˆ?Ɉy?q=?v¥Ü?¶„Ø?»"?fò ?J(g?a†?j¥H?‚ÌR?…#v?ræk?jyr>Öȼ=¨Nó>õ0U?ZŸ-?]?Q?_ãw?kŠ€?tä?Iã¦>êcI>êð>ê š? +:Ì?erC?OÀ,=P=i(©?=~3?NTd?ë B?éî#?p ¾?Lúd?’æ?ž(_?¬üû?®[ ?ŸÖ?˜®Û?ƒåh?iqG?J}?,cÇ?^ÖÚ?zá?Ù?¿?€&š?<¦Í?XÚ?®ý^?¦QÝ>éMÄ>éM>éJò>éJi? +u”?¸l?Ik??Z²Ž?*4)?ò»?AJ?bç?!Ý>éP;>^J"<77€>ÖÔ +?]™?y/=º§¸?+?ø½Ž?÷4“@…‡?ô?M)?Q¸?¯$ÿ?®^ >7þj>)#v?17|?9Ã@Ÿ"@/Fd?šIì?.£È?T¢5?iÖ-?ˆ¼™?˜)C?u€Ú?A^?Žª ?Á*Õ?¦õà?kyX?iÏF?‹¿¡?sÿP>ÅÅ;?K?äH?áJ»?³I(?³/?è¦H?êœ>@Gí@¶?*¿Ã>êÐæ?ÂÉþ?Þ‰¦?”z”?}2^?‡z?ó?b<=î²ö?QD?°‚À?nÖ¹>ëuG>Ï¿X>½áè?@;Ý?¡'—?ž$ß?°ÚB?£ ?kìò?_é)? T2? +úû?GÃ?AÖ×?;ë?7k@ý”@Ûp?‹=?€Bµ?Ø6?åÒû?L€? ßp?•FŠ?°Á@C!@1Û2?œžf>íFM?IP?€íŠ>òă=ƒSô?íø?we?«c[?ÂÌ?݈å@#ð?¾2¿? w?4?n»x?…î±?’6„?Õ÷?Ó£@?ǵg?+¹î?On?ײ»?Õq$?³%/?­ ë?M¾À?R×è?o!?ovÊ?¨‰Ü?ªöp@’]@%?…þÛ?oŽ@ +¢½@ËÔ?“¸ç?yF?†Ý?c?½q?̾.?¼ 3?´R?ƹB?Ò3¤?ŽÑñ?f¡S?ÇzP?ð€‰? Jµ?QM?¦dØ?Óü³?Òà?ÌkY?Ÿ”æ?ƒž¨/¯?D±´?´üM?ŽÖP?"+­?o¢Ø?»Äî?‹ç¤>ñ'?!3s?xÝ|?ìõ?q¿Ñ?V—?Êð?RšZ?©‡D?“aB?7w&?ƒã=?ô†ê?óS³?÷ª²?Ï’÷?.ÖÙ?€ Ž@¢A@=*?rQ„?ˆ“?âPŽ?Ù;{?µÓ??µ´ÿ?¤ç?œª•?ƒëp?†‡@FÁ²@In@0W—@1+e?rÞD?uÜ ?ë¥Ø?å‚T?†O^?‰¿•>;§í>D\+?Q¯½?R]@€@q«?Ûà‚?ÍLQ?mÆÝ?l<)@3‹@ a@³N@ ª?’ÔŠ?rÝ‚@'@î@=¼ó@V?çö—?8ŽÒ>òà‚?ÇÏ’?îAÔ?òU,?òר?™#?‡i\>¯Og=üÆì?¸¼²?òÓ ?˜áX?¦b?wª?xøÍ?Щí?òÂ×?à¬?Ôhâ?äµ$?éž­?æÚ?ï³ô@Ø%@5õ˜?âŒË?…3"@ Â@2FC?èZi?€Ìå?¼`â?òaì?ñÙ¾?ò`Ì?ˆ¨©>±j‡?jP.?µ²ª?“³ô?hq¯?Rn?'ö?` Ö?•f1?»ðÅ?ëè=?Ì~?•HF?¯æí@â{?þ@Ó?ÙŠ?Í õ?œô?žH?ºø°?¥×‚?qŠã?¢ M@/Ú@4Ò?\Ô?}qš?Ñ}?͆ã?ß?ü?áÏ?ÏL?ÇNb?1cÛ?/LJ?†“å?Žúô?Æ?V?Ã#?Ø1?ÝÊi@Bµc@JžŸ?*x?ps?®±©?´D5@}º@ að?®KÄ?•N?‹ à??{FŸ?oæ-?£O?¸å‹?ž¿|?‚X?¥‰k?³©'?ð ¿@¯ó?m.Ý=‚Hî?áb?o;¾?èU×@'aŸ@ +iÉ?ÙmÚ?ŽVë>É—Î>íÏn>î³â? ÷ñ?4«?\1à?«2?‡f‘?@gó?Y‚„?¾·¾?Òô@2Ž7@2A@2Ç@/±þ?§!+?„³?mã-?m™Û?†h?Š|@û@¶?Ì…9?«ÁŒ?¥*%?žŽìÒ‘?†º?²d%?’¥Î?€±J?ƒˆ¿?€mµ?œýb?Â3R?šT¸?%Æ ?…¯?é„?ÅôÍ?KAÕ?‚¹@N•@ a?k”?—@/©Ã@0 ²?ƒ¼Ð?Šéj?Ë}™?Û…?ýÔö?úÌ‘@rÿ@©´?g>">6v? E›?K¬?¬@Q?âT‡?Ê—¢?¯®?—z”?wþT?¾¼@µ¬@€á?™áU?š:û?ˆ?N±?i…ƒ?påó?À?¼0°@Ñ@ DU?íÆK?é9Ä?‹‰C?hã›>¿‰ö>i¸?a³9?˜°?ËY?à{à?²bê?ˆøO?½k@ o–?ðå?µ3)?•)+>ñ@†?j?µ`?;#Ñ@ÁŠ@¶½@ cm@{ü?^Ý«?^?<›¼?Pgê>¿†Ê=Œß¤?Ë„l@)0@ºS?ÑÊÏ?É0>?Àð?ÃŽ?ãë:?äEþ?Â[?Ç{@ý?þ ¸?‚ù?hÍÖ?¤—@?¡2l?‹ ~?ŒS?˜\Î?¡3¨?™‚?’Ê?zV·?" Ê?fÑ…?Ïq?ÞHÁ?ä×?Õõ’?•Â,?‡D ?‚¬4?‡8›?Ï0d?Âï?¡ð»?•dÆ@œ”@/1@Ll™@c~]@6TÔ@RÏ?Ñ‘?C²?|ûˆ?ÉíI?Òò@â`?ñ‘7@ëŽ@?®]ñ?ª=@o@¯²?ìB?â‡À?®(l?Œ™J?‚=x?b2A?ËV@A)@ °µ>ã¦[?Ip?è~?ìú ?Ã6[?¶Äº?q­?nz?©w??·´?¢à?ƒj?dÌÍ?cÝÒ?‚¬Ò?œÌA?¦•5?ìг?Þœ6>à;>à@?šÍŸ?§óe?)µ›>à w?k8ë?Ž³¬? j¾?Í +à?¾"ø?ŒÎE?†ÿÔ?F^>¸?<@S0@ ³æ?¶êš?­Oš?†!\?ŒéÏ?¤³Ñ?¦›»?Ô‚@ +³9?Øþ«>H«>{¶]@ +ée@ SØ?ÖÂ?Ìv*?‚£q?\ý•?wç?~#Õ?St ?„?P1ñ?Ù‰;?ÉÛY?·`ö?Øs?©í?¤ÞÛ?´a¶?³½£?ƒ)Ð?S«ñ?[?[-~?ƒü?¾0I?­5.?'…!?,w?R.?Zga>ÃÎÃ=JP?Y ô?ÆÁ[?ÂÓ ?ÙÀ‰?Õ¥B?ÀN¹?ÅòY?¥Pù?¢ä@Föˆ@rqÈ?üÉH?XaÔ?ea?¯Cû?³œl?sª?…]½>È‘¥>ÌãK>Øèï>êb>¥â>‚|Ä?)Q©?Ÿ[?“[4?“9e?™–?ÍÎo?Õ…K?•m€?Œ~Ì?À8#?í=Û@²t@*M@'l¹@4<æ@9É¥?ôrU?âÕÍ?ÎÃ?°…y?¬¥Ñ?Í`J?æ m?Õ?Õ @Kÿ +@K?Ö8?ëÍ?c¬­?TŠ;?Tq@?T]»?TOl?T?›?UV?âÙÆ@‚õ?¢íc>èt>þå?SÆÌ?Xʆ?£k¸?žêñ?Âíà?Àͨ? 5•?ˆù-?XÔE?‚×?4CÇ?Ó@5?ÓBÔ?o,ä?5G¼?~âò?žf?àŠà@.!@);c?Ó'?Ó-`?jí§?:¨³?CÌi?S9÷?²ú@ a@ôU?2îÇ?Èø?LiÝ?hoñ?‰i?ŸUØ?šiÜ?r?•9ø?Sêý?TJ?ž è?Ú?N‘,?1a2?œæ?Žì?…f¥?¬»u?»p3?U“Œ?^²Å?Äex?æ—Ì?­‡?tð|?œ])?ä ?à›–?  •?ê ?Wk?W¯è=£f>߬Ø?1²$?ˆŸQ?¢µx?ŽÉ$?q÷3?‚•Ö?ŠœÉ?{š?;e?I)²@}Œ@$^?¶ÿv?i?za?‰”“?f?@»?N>?\Ñ?)î>n=P?…õå?oB”<®¶À=þ›>äùÙ>çÚ–?dÃs?’·<>×þ6>ÍU©=Iú¾>·qt>¬{”>ź>eÁ-?Å7?ÙÏ>×XÖ?3?if?0ô=þým>çÑú>®ýÇ>®•>t +`=ãNt>W’Ÿ>‹å¾>¹™n?RÎ>Õ~”=P§0>?j&=¶Ã0=$.‡? ®]>ª’ @0Ü?@£A ?…F?ȯ>Â'9½¬x>Ù¡a?¹Y?E¸E?*7º=f=‚`â>ŸÑ >µ¤l?£^?7ý‰?ÁW=ád=÷Þµ?¤}?åš> ä>•dº>µÚJ>ãXÚ>÷Åm?!7m?(—Y?Œ#˜?~W?w>ã#í?^ó ?’¦P?P´¤>Ábç>Áõ>çÂr>É¡ö>›g>§Ô>*{Õ=ãZ‹>ˆ´²>º$?y’ ?ÿx?·Ì€?¡XÛ?ix>*¹\?u<í?c¹:ç˜ ?]p*?h©”? À?¥3x?3TG?¤ >åÍ‚>ÉJö>ìÓ±? 1?Á—>ìv~?S19?Áy¼?Φ>†'j?­6?™$><_Î>P(â>ìÇú>ìÈ;>ìÎ +>ìÍV?[’Å?lν>ÏZx>‹¦‘? x°?!Ü?|s>ìî? ó?8¾? +X„>¨0ü? ?lœ5?3'ã>Síý>4¼B>†$>/ù™>Ýñ¶>äfç>ìY6?~F?±3²?¯Mà=¦<¤³`?KÒ?WQ>zº>:ü›?SDš?€Ss?Åtc?Þ¶ä?‘×F?LY$>ô_¹>’1?mÇ?kq?˜ ?È ª?–b{>ë<=?Ș?mp_?Žz?æÝ›?Ĺ>ˆku>•ûA?©?Õ?œ%3?žs?q]¶?jŽ¤?§Õw?¯ÛÎ?pŽà?V™Ã?KÊ>ÍtÁ?á?/0>üP>ñq?‘Èl?ê?¸í$?i`¤??¼y>éÛµ>íûd? ø>Ôì=YŽ¬>é¨a>à–ä?%?0>‘N:>—k?3’¿?FVK?•?¢êÈ?v?[êå?‰}Ð?’w«?‘ƒ?‹”#?™;f?®ï +?¤Âñ?™Få?u<‹>é2™?; ø?¿:?»ˆ(?˜lŒ?„øÎ? +? Û?„AE?ÆN?ËŒ>ø“h?Í(Ì?æèv>È{>¤“â>é*6?7 Â?ZZµ?_¼B?i6o?…xÙ?“7Ô?y‹?˜¥O?Çç?Éç?"~Í?Ç"?H;?Õ¬?É#ð? à?RÓ?fù&?iW?øÃ{@È?l ?6°¢?ƒ9?‹ê?VŸg?Bœ?Éû>éÐô?n ä?°øJ?Øõ–@™?ªÜ>Mäú>Ò_=·Ê>Ê•?¬ÂÏ?¸ù¦?éå‘?Õ׊>ê}F>ôÞ¿?«Ž??:?Ø’ ?ÖÉÉ@"´@&Œö@;P@U@?sƒ¨?g>Òr‚>¢-Ÿ?˜N?ÖÏ?¦1¢?€O+?‚Nº?~¤™?Œ²ø?²ÅI?·‡Ý?°¼ ?²Ü?kÇ2?rXÁ?ˆÁw?¥š?õœ?å¥?±­?¯µ¼?¦A?©U?Á« ?¾u?§ +)?ªð?åo!?ìÛ?'yb>ìÜ,?Ì%‘?ñVÿ?Q!>í?Ôë@ÌM?6™??Æ–?ܶ +@ G?¼ ?`Q?’ú½?µß?£äÔ?‚«A?’HÕ?¢]t?¢ïù?±Å[?›B?Qo?MÆ?ns?£?Ÿ\? º]?¢^¦?‘åÜ>¹d>às?n÷X?u¶ƒ?“Š€?0Ø?òòr?ðvO?s#˜?okL>ú^‡?e>>þ“/?â?cþ«?oÈÒ@¾’@ +?mX?2ÄA?~îi?Š$?l ?‰??·8è?Í'\?¼ÊÛ?´ZH?Übh?ð”_@Êà@ ö=?½È?y.Ø?¼Ï]?÷(›@Ô@!¶?ÔWj?žä?§â?­s¯?ÉUI?釵@43@u-?¬®þ;FŸ?½Ò?±AÒ?aæN=ñv”=÷; =³Vî>×mØ?‡ÉÙ?Žt?0a?Çá,@*GV@"=¥@‚?ÿRÉ?sµÑ?’ª€@+ ?ørž?1˜?¤µ`@ ?ùÊæ?¦Jv?´–Ó@Ro@w?Å(6? ›?Á Þ?´nn?rÔ?r?r‡6?{éß?»e?Æbg@#§i@ú"?Žmž?…y?²?!v¾?Í–D?ÖÕÒ?ÆHM?ËÛ?~z‹?m‘P?ç4¯?çÒ? +=ˆ>ò¿:?†¬Ø?‰ÚÍ?ö‹³?ÿó?³ì…?®·?>òÂw?dæ?r×–?­$?¸K?â‚?ååI?Ó‰Z?Çsj?›G‰?—ÓŸ?#{d>ò«µ>ò¦ú>ò¥E?nÀþ?’¶?¯}]?»¿y?릜@½A?ûE?æÈÅ@N@(9Ó?ä^ã?¬Ü?ýT@Yž@o@;?ÁŠ×?{6?‚Yp?‡ ?ÌÞ?ó ?嚃?á‚ ?á Ó?تy?©ìl?€ÂM?UÉ?7i?½¤`@-§@%H@"?â8è?FñK?0{f?MÌ?Ôå@KAG@Eü@5Š@!O5?êõ—?ú¨@ÕS?þl†?qAA?³îæ@6¹ì@$e>?Øñ^?Éõ+?•í|?¦ä?=ý¢?5 +> “>Üó¤?ÄÌ›?Ëñï?œý`?“:ô?¿j¢?·˜E@’@ÎÈ?íøÍ?é É?ZW?^8`@²E@f ?ñÙ>Àœ?¢¬È?´;n?\÷?>Ú¨?®üg?ÆFè?¸?„?³’p@Í3@G ?âYÙ?o0–@¥÷@/•@ÑF?þ˜ @ýÔ@%J¥?êØ?náB?¥5í?ä4»?Èýû?®aÉ?ÑìÅ@ô¿@ˆr?²¢ˆ?ÂÒ‘?÷ƒ@·ÿ@.rØ@"¸Y?sX½?wê>$¥‡>|›A?Bá? y@/÷×@(«W?ò:?í4Ó?í#£?íh?ÌÕ?ËP?Ü ?â™a?mÎX?T?ÔÕ@nü?ÝÇÈ?ª¡v?4Y>VÝ >õIˆ?Fød?-õ>ëþ(?K€?ºL?Á2¶?žµ?ÂMQ@ÅÝ@µW?kpb?u÷é?±dp?ºÅ?©Ž?¥ñÄ?¯‡?°3ü?Õ†š?áˆ?Ó4à?Ê·»?€H§?Bð5?-Ò? SÙ?…[ö?¯«Š?¯l´?¯“?àü@ý‘?ÿ{Ù?ø#I?Ñ~V?iªÌ?]Uÿ?.±¹?A£Ø?ŸUÝ?›(“?ÍûY?Ö +?À¼ÿ?´ÛW?®Ár?°û.?ª,?¤o:>š<¦?§Ö?îÒ¿@@&é\@(`ò@![V@1O @Sœ´@B“@¬[?ôÃÈ?^¯Ô?FtE>çž•? +cä?×pÒ?ߨÐ@#?ÿÇ4?“ð$?ƒ¼d?4ûŸ?ž±?“*£?­£û?Ó!Î?ñÀ³@M)@æ¦?â.À?zše?€ì5?o½t?Žõ?šì?äý.@Dµç@E‡R@+L€@*Êl?„GJ?x¹?™nr?š¡?â3^?ìo^@‘„@„ @$Å@'?Â]Ž?Y;?ƒ@&?õë¡?z¸?ZT?á5˜?ÒÜ}?ÉC‡?×É‚?ä3¬?ä(@1 @E#@0Ç?è…ˆ?›ö?Dáç?„È?–ȇ?˜\?¬1á?Ë{@¹…@(?™_—?¢ê‹>ðß­>ô…?zXx?”È.?í˜Å@½Ö?—\³?/«Ò?‚¿@?Ÿu8?ÎlH@![@ K?`4?ƒÁŽ@èj@ÛÎ@‡@6†?Ix?D¹q?»Ó¯?áI@ É@&d@3o@7“@ÀŽ?Ðê?Æÿ”?½„3?ůa>àL>àD?ïù?§áÒ?#„ >ß­(?|I"?§™u?¹¤œ?ȉ?Ëo=?ɾÅ?´ž?ºçC?ÃóÛ>äï>çñ¤?_Dk?s[û?„I?xè_?¢¾ñ?¾??×"?ÖbØ?¯1?¹íö?Ün0?Ý[?²TU?€/?‰q|?Œb,?±ˆ'?ÙT?Ü!Û?ÜD«?Òµ{?”º_??‰²?ŽÆò?¦h]?ºâ¤?T«}>ÙP?q¾?[{?TØ^?\ Ç?zÂP?Z¢¾?Z÷?rêÕ?j1É?ºêq?Ø’ª?Ÿ‚Œ?‚R?g…?˜¾»?§?¸µ?²Aß?™ë„?Ÿ=?që"?„Ý8?Hd×>ب>ɘ2>ÔAc? ã?Kæ}?)‘=å'Ê;‰³g?!<ƒ?Eç¯?Sj~?Gõ²?t2†?Á¡·?»¿:?j´ ?^Ñ=?W@â?dÓ´?ŽÚ¦?‘Šk?’kâ?¡^m?ÊÈ@Ö”@"Æ8@ñ@ëH>ó^>­‘a?›^Í?Õ^I?¨ ?5ï?KÀ?Õ]?Ôì @m¼@“ª@ ö4@Æ?´4æ?Tl?TXO?TB¼?TNµ?T¡þ?TŠ?£4ì?¿©?†F[?"_K?BB2?l¤Þ?k»:?ÓŠè?ÑÏØ?‰r}?…Ò?¼6ê?Ô;á?¥ò£?·>é y?ÐØ ?Ó'á?#Zs?F?$é ?Jx?œ“(?ü @>S?ÏUÕ?Ó×? Eá?“¾¬?º‡þ?ÂÈo?¼’²?ÀÕº?½W?õG›@¨Ñ?Ð*#?¿÷Ý?Q+¹?bô?EÙ?U^k?:í¬?SÍ?T¢*@L‘~@<æš?Tä>°aæ?ƒßN?Òà¼?ži+=¯>†ÿ??–À¿>æO?ñ?U?Œ¬?b‹>ëõ£? €Ã?\ãÈ?_a>? Ô?Ü>ÎþI>‘]j=mú¢?µSÿ@Ë@;ð?¸gú?±BÐ?¼xV?­Ù ?ø¢>í}k>Ý?o?Ùˆ?iö”?€m¿?lð´?^EÀ?t‰>´ýx>ÔL>àïU>áqh>±bK??ÔI?€øß?ÁV>˜ ƒ=9Êc;¤¨.?„´ ?n?ûˆ>Ä=£#º<‹ +ÿ?Z´4?OìU>óâ >î÷?2¸Õ?&s!?p&?f3%=}?? +£š? †Ë>˜®»>ÂJ?Iôz?/ô>†Ñ->º£ =‰Ü§=Öbh?f*k?+è< il>B¨U=¿ ²=¼”? >¬@V;@Y ?nÁ>¦¹>ÙD>Vý¶=¯ ˆ>9§$>¾`‚>»M>ÙJ·>ÝôÄ>U£¢=ȉæ=“ÀÄ=ñ`ò?˜‚?—]/>™:C> ò>­8 +>ãYm>ãÇÉ>ä.´>ò"Ü?'ìµ?*cÈ?,ܧ?/Tñ?1Ñ”?4O`?TQ½?g;?^rÿ?FËs?&)>¤^>¶³´>çñŽ>γþ=⺔>Š,3?e>ž<º<ÈÖ=?+ƒ?é¾Æ?Îb@>ë z>ó ?k¡?k¼? €ë? ½˜?íN’@Ë?‘ÃX?Vƒ)>²ª=ÕÏ&=éÂà=ýÇö?PT?ˆªQ?LÈ>™ø?bw?¥:9?­g?¦ó?”u›?3¾ü?-4X>ìÔ¤>ìÒz?5´'?‚—è>-f(?$?F¤6?Cöª?8O?ˆXV?£¬Ï?•^Å?º?ÒS?[\N?‰`â?«i;?¬µD?­ÿK?væÇ<Œñ1=Þä6>ìW~?e?±0o?¥>Û7û>ÕêÁ?:‚?z?E°)?@©?dµø?kÒÆ@ +I@ °Ó?‡Ä?I—?U»®?`ò?39?%Ç?ß? )B?#¬>ë4Ž?$M‰?u1?¤_?õŽÒ?¿aì>+=ú'|=ˆ7Ü?* ?4ÛT?j®?j…:?£kä?¦‡I?8—g?¥>NÔ…=ºtY?„í?®j?‡¿Y?j y?ß™@Ê€?‹œ=cJ?Rxé?צ?˜©»>é·â?fA»?éß_?Ð,«?’J?rn<á >š{ï>ši??~Øù?gȤ?iOÜ?ð>éB6?#nQ??“¹?®ïQ?ц²?ÙÆŒ?Ø´?—ƒ?D»6?S>=?QU?“È*?éM@ P}@Fé@,Ò)?Z€Â?w6Ì?ÛvA?Ú·ž?i +à?ih?i¡?i-?§Y#?©âô?¨,‡?¦V?§Z?§©C?¦Hh?¤éô?f–¹?'6t?LÐ?i#Á?œ~Ÿ?Ès)?žøí??>Z?Hù?šˆ?‹-V?”kÎ?83?iXc?r—Ø?ãRI?à²Ð?^£?LÚ~?Y&6?jîÍ?\Í>éÎ? aY?2>ƒ=­µ?/qÄ?ŒèZ?Ÿ$–?´œW?rŽ?x +?nc·?j‘?j Ï?jÉA?mÆÆ?d¨j?BÎ=5YI>yí¸@'Q6@$ÿ?h\í?uèô?Õ×ø?ßK?n}Þ?E‰ð?B®—??Õ#?ßxÜ@«Á?û*)?ï(F?Å®¹?²P?h¿>ëfj?MÀv?™ÿØ?•ˆØ?‰‰”?€ùB?Z}3?®?@2ÇÃ@"Zm?»Þ$?®d­?l&?ˆ¯M@Ê(@ ›x>äØ¡>ðBî?°=Ô?±tÊ?qOÁ?gø¹?¬ú?ü?ÃI?ÓÂ?ÆÀf?Èó>?ôƒv?üµH?çqâ?ç:?äÑ?Õ›‡?Æ"?½Äº?z¤k?"€)?¯©Î@.@Ü?îƒ?øao@™?Éw?F«®?V±?nx5?nˆs?n›?O^>¤€R>ÏÑ?|ú?›l}@)§@*¨0@ˆç@Ç?³cï?°$j?i¾}?g§?§‰?¤$ø@@–@”ç?t©Ù?kS’?WsB?LW ?»¢ý?ų?–dž?¡ ?É/D?ÔF­?ÒŸ%?Ðõu?û°Ô@à¼?å÷?Ú½E?·Î?ËëG?¢6 ?‡M#?šk?©@r?†{?Go?PàÉ?hYD?kõ³?oŠâ?˜ Ó?µ)®?–=â?d²?ê?µ?ïuù@sT?ö‹3?¸±Q?«Ô?£Zç?‰ i?OO ?­yo@@2@  ?ñãº?ò?ìÄT?¼&Î?(Å?O²V?¡}?¨w)?µF?ªlÆ?…ˆi?f˜&>ò> ?\g@¿@=ò@4/r@%é‡?µtT?¼Ñt?ê/‘?ßG-?µÚÙ?¹ +u?Ú5l?áÈ?âd3?Ù¢ì?†Ø?‡|€?r–V?|(Ò?¹ÙZ?´Üð?µöø?´¦M?Ï?A?Ø8»?J»‘?@Rá?´]?µçJ?ón’@y?Ž*m?ƒYý?h>ò«‚?­7H?µP?¾I? @À>…Š>•³Q?Û\ï?òž´?Fº ?¨K?ëc(?ú°T?ï}o?ä@Î?1ž >òˆ?‚1¸?‘¸,?¾o7?ɼv@'='@DŠ0@??Ý}?œ^F?~_à?È6?îT?lpÞ>û˜?OdvÄš?,¯Ð?´.?…tÂ?\%?@Cw?…^?Oà?šÆ ?•`“?q(Ð?“Ä&?å¼¾?à8}?®¹?ŸY?9HD?Eà?RS?9¹¨>Ìl¾>ÍÞZ?=ó$?c>§@+#Œ@/ï@2ÍÍ@.Öª?{XØ?Š¾:@a?ã@[¼Q?üQð?ì׃?é¤?ô:˜?tr7?EW?Á=Í?Ô‘Î?}¤?M8?–ý’?±RÞ?µËœ?³{°?Ð#Ú?ã¿p?jÂ?o@?¢‹? +?„@ ?8Û·?¿ó¤@EÍ?Ї?ŽC9?Ä´4@ö6?áŠ?¥?´}“?Îp?ʾ¨?¦ƒû?Å—S@ s@6Æ?²½{?Ç‹–@s?ø Þ>Å‹”>¼ +Ä>íp´>õÞz?ÿã@ qø?¶o?·™f?¾?Ä’]?gÚs?Qžê?‹2\?œ³?«‚˜?°ÕÞ@k@ÂS?¼ Y?€á?XC?)‹?³ó?¥¡d?}X?/H?;¨?LÜD?Mö?k›B?ªÚ@$â/@¢Î?i‚ ?kzK?q.ú?`@QÊï@HOƒ?°Âó?°¶?°d?°1?³Ìø?»Èö?ÃW?¿Ü›?‰]÷?jH?˜p?®<ç?Ž¤?otÔ?µÚ3?ô =?ñ…?é¼Ã?ÍŒ*?•ñ³?’ +?ŽCy?¡GÍ?îÚ}?÷?£˜º? ²Q?ð®?¤Ê6@Úë@P:?`PØ>‘Ô°?¦dÔ@ß ?­i>æR?¼‚?N@€Þ2@6U@ë®?â¸y?¬ ¡?†b?ã?†bD?ñŒ{?áœé?Úùÿ?á È?d8Z?d#Ã?ÍB +?Ùã2@$«@)S7?ßdB?¯Ši?Ø ·?ã®?Às?ª‡Â? Œ?‰S°?€D?c4?[&U? íË>ëûÆ?ÞBM?С?vi‡?b¯?×V,?û¾2?€D–>â,`?¥8ø@z0?ç/?§žê?š^}?a¯•?mNE?©”³?¿/Ü@ Ùf@ ÌÔ?¢¬?—º™?¾D§?Òï“?—ì?cÓ?V¢6?`UÎ?|m¼?e_\?ƒýè?ŠdË?„?Oî?0àø?§ƒÛ?¨µA?¥¥‡?›ßÖ?½Þ9?ÏŽ?ÕHÍ?ß7Y?ï4@ v?ðØ>ÞÑ4>ïir?^WÑ?VÀÐ?ïj?êdØ?—àö?ˆ<? è?¶¯ ?Õè?ú–F?ȃ>ÞK>â|ì>OxQ>©€á?Ü6Â?Ý8?Èqå?Ék%?@T,>ºÞK?ݳ?\âs?§ö‚@æÕ?àæ„>õˆ2?'{?´`ì?£c-?6ð•?ˆ'>/.F;Új?=?˜Æ¹?˜Q.?–­¶?zª^?¹†?>Ì?§„«?§f”?u®}?g¢1?g]¬?YÇ(?r$‰?‰•?›@o?úçj?ïP›?‚¦]?]$4?èEU?÷Ù?ÅØ!?žæN?+ýÎ>ˆÄ„?´ó³?Æ,ª?¡Hè?œâ£?¼ú ?½SU?•Eš?„sª?ó%?}c?‹ûä?›˜è? Õ@ÔÐ?ôѹ?³Vü? ÅŠ?ËSD?ÙÝ?®Ì)?Ô?ow3? +P?¦µf?G)¨?êß? ÀÖ?ÕCˆ?Æñ4?®q?­ZØ?Íß ?ÔÏå@H.@CŒÌ@-‚@¥2?óÈ;?ÂC?—ö?T$ä?`f§@3ȹ@$®‹?J3)>õ/?5d_?;)H?Eª¿?Žc?ž_?Ón?ÓZ?w8N?SEê?¦|?Û =?ìV[?ý¹¤?øæ?žV_?¢0È?QÙ?2sâ?nŸÕ?zå?„y7?˜=G?…^ò?ž¥ +? Â?í Õ?é¸ü?ªsQ?¢®€?Âä?á%?Ñ}ø>Ó9>ïÂb?m‡v?†(?‘à4?‚óÖ?‡Wˆ?«WN?¨²=?S¹#?S<Ý?R-ß?•µa?8“>S¹%?3·œ?…ŸÁ?j´~?TÊ+?F?¿?!÷â?mI>ÔÕ£?¬l>Úòœ?ö?Vh?‰ Ý?Ç…]?°ÚH?-Ão? Ú?.do?=@R>Nç?|FÊ?éÅ?ê +?Ùï?ÚK"?Ú¡¬?Ò†g?gëÞ?]E>é,>Ü?‚ô?c“?oâ£?^K>Ä>J&³>àDÅ>¢oc>/C>—w»?:(‡?ƒ ¯?×â??Ñ¢?duø?MÕ>¹ù>–(?m`?Dƒ?pca?Ž$ö>å<Ž>êSz?¨H¥?¤éÒ>õH>îQ?<¯È?L™²?\.‚?W »=‘Ëu>ô§³>Ò«:>i‚A>Ïñ?DQ>¨%é=°æ$>9>¤>‚U>J3õ> ‘E=˜—.È)>‘ðž>Ç‹>Ö>‹g> hØ@.B@Rø?aß >g >Ùuä>Í-7>ÄJN>Êhœ>ÜU>ÿHí?’w„?É™>sÌ=Ž™¹>Ð,D>Ý‘o=¿=ó;ž>8>AQ×>Jš>Sí>]Qv>fÄã>pI\>yÐ&?;¢?#_„? ªd?1Ã?R&J?†ð¡?NÄ>ˆù®>%1>lE’>Y@Í>F²>2Ý—?í{@í? +]ž=J,?Ÿí?rJ?1OÁ>êáà?#cæ?k)Ê?LD=>ëlä>í¤>ü“,?ÂV>ëÛð>ëû?ŒWÓ?•ƒ9?y3õ?lE¶?C­?./`?‚æ?¤Ø?.<€>¥Nu? ò?>4?MÑm?l»,?ƒ2?¬Óí?½ƒõ?ˬ?´­a?)œ*?"ä>ìÔP>êE„>›Xþ> –y?»Ü?Ç÷€>г>¨,]>ì™Û?8 ¯?lˆ©?n(ñ?m#?Ž¿Ë?±Jà?›¯3?h}F?J5’?U¦? Œð>ì >ìN>ì'>í( ?À??>tŸ>„¡@ûž@ß–?>j>ëY?vv*?Ž>,@ “@H?Œ&>çR?2ô?^Ð?Y O?S¯†?N–?cJ¦?3X¥>¢Aƒ>£Ð¶>vãÛ>~¨J>˜´À>·„ð?j|:?hMg?[ÃÎ?aµ?ÛiÓ?à|¶?¯~™?®Ò?z?j á?/>ïþß?òW?žy?¥I?ÎX?¡e}?ˆ™?wVô?Pö%?RG?løf?i?¯·?áù>^?;Œ?.ºZ?% ?);^?i«?i1L>õ•^>é"#>Ìè+>·Rw?]ü?†jr?À c?Ýo?„ö¯?òÅ?½¯?Ðø¤?Ù?߬¹?Ÿº,>èêÑ>èê>èäÜ>ëý>íq?f'?hßÖ?`V>ì¸É>ïØ=»°Ç=óÝs?dåÄ?x±?¦ÚÆ?®°¬?P@ç?)ÙN>›6b>Ý +>Ðê»?@A?XæÇ?Óì?s_”?%\a?GÄ?pÙÐ?eRÀ?l~ƒ?rµF?i1?ŠÊ@Ç©@äT?®ùL?®Ög>êœ>|vg?W¹ ?\™1?N€a?U,p?|>éšÍ?ƺ4@íp?ö‰Ç?ä‰ú@ à@&è?Õ`o?ië…?ŠJ×?¬,b?šDÀ?j+?cÉí?FÕ?a¢º?Óu,?Øc"?¾ à?»p|@Ä—?þùÍ?)²?!Z,?d©?jÉd?´Û!?Èé[?ä&ƒ?í¸*?œwh?k!ú?@¸?"m?IH²?k\I?‰ín? @þ?»­{?Þ1t?Égo?¦S±?é?úæÐ?×´R?u‚?ƒÅb?¯†?—c~=øð•?±IG?¹@Dšà@@w?á>ì´€?„*°?äD?…Ä9?…IX? Ü8?¬)?“Íû?‹•?mÙÔ?p’%?†Z?Œâ¢?†S?hñK?… À?Ÿ¿¹?¤~o?©=ù?ʪ—?îIq?¬ø?P?D“?„šz?}_œ?ns¥?œ (?î–ñ?Ý%†?¯+ø?–vÁ>ñmO?Í?o?”¦@Ä @9@?„l?lK?³ƒs?±•?©ó©?²$?Á„!?ºú¨?È@?Åõw?ì[?ïä ?ƒKS?pê?)«?™ëÕƒ>ðÓ²>ño?§ç?î[?ª¡ ?q8ì?A.-? ˆ/?²eÉ@M¾?½jU?`HH?”žÄ?µ*¢?|oü>ñžØ?‹š?ñ²?Ø0Á?¹ ?ß:@ +Öo?îD°?¢¡ý?—õ]?Š¯?œKe?ÂÁô?ËÒá?Û2×?¦Üp>ò—?Z¯?îÖ©?Òšx?rM¡?ŠÕŽ?µ°ç?žÿ?#Ï0?,2½?%‰,?d“V?ãI¼?ót´@"°;@†E?µÒŽ?·ø°?»õË?ºå?Õ1?Ê`¿?TÏþ?cçú?MHà?Yó+?èf„?ßãQ?Š8?»»y>¨Io>‹Ž?áÂö?è|k>öâ(>ö@–@Šê@¼@\@V¼?¶½>Á@ù?GEm?]¡?Qws?H5?Ê œ?ß•G@Ã@I¸?9̼>òh!?_? LÙ?¤P¡?®±]?…I«?rKP?rJ„?rB?¨fZ?µª7?2ݧ>ò+Ç?”›°?®Òõ?†ÛO?rx?œ )?¨ž>?yî%?Næ?~e‹?|•>Ó1º?_ë@?µV2@nÕ@Nã—@Ó5§>f²>È/Ù?°Ô?$è±?*$—?gÈ?Ò´À?¡–Þ>ðÀú?5õ?´{p?¬ÂŸ?˜mg?«º:?çã?àÅ?±)O?«ÙÕ?qM?…!È?¯=Ï?§Ä¶?… ±?™Ào?¨ Ô?±UV@›P@’?0¯p?4ñR?•3?›¡â?žw‚?¡Q„?Õ>ÇÇ?T?¬Ì?BÄ>ü*f?½Œ ?êÉ€?ÃSj?³ @õ?@'?üÎŽ?î’¹?˜J÷?+[q?nô?—OT?±ç?»W“?€ü,>ñÃÄ??»Ò?oµ‚?cD«?¦ñƒ@àð?ÿ1¹?‹2?ÌÖ?Sô?aR?²Ÿ?¤èI?m(¬?mT?m ’?lô½?lá‰?lÔ(?¾‹? ­>ÖÄ<ïÝ·?>‚?lùÞ?ø†v@®g?¯ðõ?l%ï?ÃåÍ?ëVã?û +@@?¤vz?9ˆ?Y&°?ž<Û?¦§½?£´\?œŽ¹?«ÿ ?“}>ëÀÇ?3ŽD?Þn¤?ñÍŠ@jåá@fU?Ö5e?Ò@2Õ´@)Óµ?ÞbÎ?Å;?áˆ?êI?žà”?u?m‹Œ?j¨?—d;?©M?°´?¼Ý¥?­È?ž÷™?©s6?¯d?¯‘?®ø ?½«Ù?øL?ó­?¡Hð?­Žð?èã¿?ëLí? 3*?0?²³æ?¿q¬?hF­?WæÜ>ÊkZ>IÀT?`½ž?–ü?p"?gù¬?x÷u?q,?h¾?uv¤?u@Ë?P_¾?ê0ó=÷‡>)Ñ¢=¹ðx?Îý\@)µ?ÂK>æ2Ž?NÅ?¬S?¬¿?¬p?¢ °?l¿j?}êÓ?âJp?Ý#8?eÕ?ejõ?…–‹?ŒI?Øw’?û¬F@)_>@ItÐ?òã?dÔ€?ª:e?ä;?Œâe=•i>Öžþ?©’Æ?¯J¾?½ñ?“þ?šxæ?‘,9?½ô[?·y“?¨|@?«‘¶@5ˆ¡@NW@0ƒ +@!°@ÈÎ?Çѯ?¹é$?ªTJ?žÍÛ?wˆ¼?…¯v?ßÈ??âm@ !T@¨?1‰9?Qø?öF@ eÖ?€!É>â×?ˆí7­?WÎí?¶X?O98>àHO?@¤¢?ÔŸƒ?Ë©?Óü?Ù +¸?Þ + ?ß5j@nå@¸È@#ùÉ@$ÕC@?ß4?Ð7ô?µ™©?›ãZ?K?¥o?¤>$?žß?¿dÈ?ËØh?Îp§?½ÊD?†9Â?]×Þ?Kæä?JªØ?€ºD?¢?R÷?*6í?:^?½\à?º?†ÿK?‡é?@Û>+$T>r(>æ‡M?vwÁ?馽?Û¿?rÜ2?Iм?ØÙÚ?éhI?°Ð?¤‰?}†ø?I>?•æ?Ë=r?Âu0?¾à?±+~>Åæ¾>‚ ?¾jT?Ø+ë?Öd?Ê¢€?§‚Û?D…?”äÚ?£-?³¶—@ŒÍ@r@!d1@ ÁF?îz”?ä”Õ?…^»?;§%?Žd>s0>L8 +>õÅD>ä;¦?Y ?cÉ?â?Žx.? ý ?#×?i2“?‹3?e¢?YËA?Xw?Ú~?∲?A½Q?4?Áõ0@—Ï@sû?ÛÉ´?Ë?Y ø?d—Ø@0¡ @+ó\@ {7@~à?âñ?Êý#?±žz>Ö'Ü?‰¢?ÌÔþ?íï?²¥ä?¡¦ï?ìxè@$J@¸–?Q†?U )?Šâ?©!C?Çäè?¨À¼?— ù?ž§¼?V,>ñF>ÂÀn>ÇÈ>£3Í?€?‡êz?…ªÎ?Œ?_?¥d;?Í<­?Ì#õ?ž+ò?ž,]?²\Ø?©~«?‘>Õ?—ã+?Ï…@ ¦@˜I?ÑM?ËÛÂ?–Ýõ?£¼?.á>†3?/~'?Šz¾?P/Ò>Ó>Óô?M‚ï?S&=?Û ?þDÛ?’>°À>ýnˆ?S•ü?Tïs?†Üð?t_Í?ƒLµ?mKH??¹ š?¨bÞ?T¯Ã?R±å?<úf?09|?‚žÂ?€²?’Xe?±à-?—Ã?VRÌ?DIX?5“I?ZŸê?W>û?Wƒó?+uY?£œ>F¸>‚T>Љ.?8aR?…¯V?£l«?ËÔ‰?Ω—?¦0­?£·¾>ð}Û>Ü‘K?4ñ?]+?Gö?Aí¸>®/L?Íî?—ËÜ?N&>ˆáÚ>¦°‹>õa]>÷È?—(@?˜ñ>>ö{Æ>4>4'¬;÷u>LÛ½=´Y„;’Á±<êi1? ;??™û?:ä—?(„ß>¡j‚>Èò{? ‹‡>ÔeŠ>%¿?Mž÷? "^>‚Œ!?JžK>õ˜{6îä>yËá>ŠÒ >.€>µ¨q>Ö~>÷}r?T­?bè5?š«Ë?øs>ŽÍòùO>#Nã: +f@¬Ò!@„‹?Ï“Å=$š]>Ùc`?F‹~?OB_>Æ—j={ù=À—>q>…³6?+c?)‡k>lÅ‚=êÃn>™ib>•Bs>‘€>ŒÓ?LŽ?9Ú>¬°Ñ>v÷€>ª¯û>å(Ð>´•>S$>Rÿ‹?cš‘?f¥›>$Ì">•p9>çÒß?+~Ù?h\G?^P?N®?Z¬?¼?yY?Gï'?ME? <>êIˆ?Š›>?©wF?K4ø>êëÙ>ëuš>ï´‰?O•7?©O6?—ôn?_Vs?\â°?Zq¶?XRî?lÓ?l&?l8â?lNÚ?!{¬?¶P?‰Õå?ž÷š?RMk?˲>ÚÐÃ>̇? ‚‡?.Ë?Ö¿>ìÍÍ?p »?ô˜ž?×Ú?lÙ?`‰¢?F?»>Õ3Ý>ÇF-?ln?lÒt?lËD?lÆY?‘Rx?‘á?[cé?UÌJ?–>?c?G€s?lˆ¸?™vò?±W?’ˆ?p¸/?p0=?lM¤?>”>ì6F>ì*>ì>»C«=ÎÑ>6)'>ëçv>ûézÒu>GÀþ?[G>?kkù@ óä@% S?ÙÎ?©L?ˆÒ?‚?@?¯ME?Ä‹?CSý> ¼>Õg=íÜ>ß ?j ?zo?“ž›?ŒË™?]m?M¡ø>ú:„>óIÀ>ê4ì>ê)%>ê>ë ?f“Ÿ?i÷Ø=ìïq=C +=Gœ†=rò?ü„V@$ö?˜Æw?Ó¹?†¨?8+?2"Ê?D“6?bÓ°?‰×D?LÆ >‰×Z>¹¾8?)ÆÂ?€?>hö>¬÷©?ŽÏ1?Š8R?#œÚ? Ü'?eÓô?hü¼?CÊo?7J?1Ñ]?,W¶?/?;ê¦?N÷·?Wצ?—œŸ?´cB?h˯>ܬ×>ä—>èÇÿ?Üq?hŽ?ƒÏ?¬à?´øb?Ûv&?Ì2q?L ‡?IT^?¤±?£Fß>¯PÈ>¨½™?Î×#?ßÂà?¹Ñ>š‡á?ƒ#Í?¥Õí?â?>HÝV>°á‚>èì?D-»?“$ç?‡·F?WÄ&?f`H?Š”7?«©‰@²ˆ@eÉ?žg?£‡À?«gƒ?¤^L?õlÏ?ýf?'I?!=>ì•>éx÷>øþ>ò\ƒ>ê +µ>éŸ?=²?pù{¾?6ñ6?wiÜ?Ka?2o?J¼?£Ò?¼ÃA@ ¼?õT)?Áä_?ºÏ?ŽÓR?—gí?öv?yÃ?h©À?j¨Æ?4‚Ý?3Ä€?£Ø—?°*^?”ã‹?‹8–?u•,?k^??•pr?oûŸ?Q`8?•ñ??º«Š?¾›?yض?Ñü=@*Ž“@Üe?²b? ¹?lÖ?PÁ…>æp?©q?u¬?|`‰?›]˜?¨@N?Í)0?ÊtÍ@Bœ@‚L?Ρ“?ȶÑ?1ó? Ãñ?c$Ÿ?mË>ËËó>€ä?DÕI?jn?ŒÕV?Ÿý²?b‘ë?$Te?» >íËð?9Ô¯?mïê?–ö€?¬À?«\·?²§—?¤|=?ŒKp?­[˜?êc?Äí?q<¡?n¨ö?n³õ?¥£@d@ +Ð?ôÓé?û~„@1Å?ã¢@?)>Ç?Zä?ü?í{u?Ͻ?¡+÷?¤Š7?¨ò5?̓X?ÏaÍ?·«›?²PŸ?l&µ?_?P?>ÿñ?CE$?ˆó?‹#N@íÅ@Yw?¡6Â?„]?@ W÷@¯‚?Ʋ-?ª?²®P?´ê>ÍHN?%^è?la¨?ÇcG?ññ?@½é>ÙL?U_ˆ?šÔU?çZ¤@yg?Ì$¸?ŒeH?ÊÇ?ýÖü?•ÿ7>ñ†ª?oÓ?·—˜?›Øë?q«u?f¤?±ï?ÚUè@Ê®?Ú“°?§eú?Á”Ò?ç½@!³@CÑ@ s???% »?rŸ? /?í§ +?ÈŒè?~ô?ªS@%?»±e=á‚‚?B,%@#ž@K5?ø¦?Þc?aÒS?fö ?qì1?vã?N`?QÉ™?ת?A,?£Ñ[?·«@,L@¨?ß.G?é«(@|@X=ˆO ?qÆP?táB?¾ªÛ?¾ã;?s¤?ŒÚ)?Ë‹W?ÂØ7>ó1J>ó{l?ž™l?«k?Þ¢?Ù>Ø?™U^?Ÿº•?ŒÅ›?©‰?pŒÊ?rF2>ãˆ@>¦ô??w?• À?k‚Ÿ?hÉÌ?«†"?µ˜A?$R(>òñ?÷î½@èI?h·Ð?:;?ã“Ô@QÝ?žIé?qÞj?;Ç4?+ôÃ?>ìS?4Q¬?‚?œ!)?ísÂ@ èü@°l@-EÖ@ß]?ñ}Ö?õÓè?öœw?²ë?ré??qKR?qC ?œ ?Âû¹@ Ï@.W‹?ßF±?+q–?1ë?CµÚ?v€ë?A?ÍI@x?üŒe?’ÿ?•¹•?´iœ?’ÅF>ðsÃ?3à—?´Da?§=´?pDd?ói?ëY1?æ”>?èn?ãp?Çy=?¸›·?oÔ?€Á2@"/þ@"rQ>ð‹>ÕF3? A»?Ŭ?kœ÷?oT?â»-?ï7U?¤'å?ˆôŠ@+D@*?ûAê?î×Ë?à +î?³ +â@“r@®Ž@[Ã?îza?ûŠ–?ò?Ó1­?¿ôN@ ú@5'á@šB?íø?Ø ?¸]?gÿQ;*ôz?–AJ@h—@6"?mt?€®w?¡¤¼?ž³?¤ã?¬ÖD?²ªe?¨Œ@?lïº?l' ?J¿U?QAð?WÅó?^Uù?Š—>òò@Mâ@+eK?Œ`?CÉ?”dÁ? ©‚?nó¢?g‹ ?Ñ¢“@ßO?ÀÓ^?\Äs?dO·?„â?ÏKL@$E@ê?r‚á?)è-<¢í>+”¢?/:c?„Eý@+Ý9@,Ï)?ê©é?éá@'-J@4>@¨%@Í ?ÿÝ3?óy|?ﺉ?ëôÂ?•V­?iæ™?šæÂ?¯QÒ?É«?Ø£?·’£?–ž>?…Í?tç +?˜í©?Á‹À?±À"?ŠyÈ?lߘ>õø?èÈ?èÄ€?ä÷„?W¶?O/'?‚þ?ˆÁí? +ð>èJŒ?l}2?v6¡?¸@?ÚR ?œ~Î?gãà?ï"á@-˜)@ôû?Ùœ#?°³[?gr +?q˜?}–×?£Ü@_Ó@hK@q6@ z6@ ‰<@ “î?…¨ø?fq?—ûR?•M?ˆ…z?ws©?á@vL?î>³?™Ö:?¡†¾?»é–?Ë¥ ?Û•å?Ée7?å¤_?Òó4?€Ø?ˆõ]?eh$?eWh?¯Í‰?ªøº?ugü?e + ?e”?D¯Q?Ué?gz±?f³?t²±ß+?:Ý?¥Z‰?¢Œ)?ä†?ãîý?ÿ…@ tˆ>•óx=’yÛ?É›ñ@ +•P?÷í6?ì‹?ÍžÆ?°*t?²‡°?ªE?§A×?£ÀJ?“ÿj>æWÉ?X?»ÌÔ?Åbs?ô‡˜?Þ&Þ?õ§@™c?^ÎÌ>«ØÌ?Vaë?ƒZá?cCá?a«¨?Ä8@3c@mU>áNÙ?n@4ù2@2iŽ?³ý/?”âa@tC@(Ne?ÚE§?š!”?ž42?¨J˜?‡£Ø?)#«?tòY?óÓ?î†ò?˜?¢Zß?§Ù„?«AÇ@@™ü@FÍ@7^?Ønw? a?¶>ž?Ê"Ä?òÕz@&$/@¬ ?kçŠ?vmŸ?€z?…À[?çA?ÿFú?“É}?Fþí?f)=bh‹>§`”?is•?‘ë\?áÄ?е&?Á26?»¨?Žˆu?]ß?Òx–@G@A©+@\ÙŠ@Ìç?‘y5?œsî?§v|?®ï1?[Œ?[sÆ?êv?¤l¸?3§]>ý¦?­…?ã›?9Í?:ƒ'?ga/?—œ?<Ùa"<ùuÀ@%̽@B¥@™¾?Â^³?²5»?£Õ?’ã?9“? +¬?Ùw4?â)&?‘—E?Œ¦?ä>RùM>×9â?'&P? Qo?Qû?g V@ƒÑ?ïm ?½ÿ4?¬ "?´ú?ªN?šÈ?Eu­?i<>? Ã?œÞ?€&÷?‹ðá?€²@?Jàr?~RX? o +?Å·@•@ @CÉá@1Õ_@Ò@@:?õ ?ç¯Ð?ïµí?Á(•?®Û ?ÎFj?¼h,?Ÿ?–?ŸIQ?Šñ?~,)?œ=º?°ÈŒ?…†Œ>Õ +À>ü“¯?“ÛË?½#?ìÎ:@íz?Ç`¤?“’?šFß?žwæ?¢ËO?Ý’•?¾é©?»ýÎü>‚+6?•ëæ@×@ ž?JM8?=È?ÏtI?Â8V?Ö*&?øùÞ?Ž–C= C;>VûÜ?S„œ?[õ@îP?øÜå?{ô?w?QÇÄ>æ'H?öc?Tœ–?I¯Œ? ½?À3?„-œ?ŽÓV? f¿> ¹Ó>Ý?VCd?4¦á>Ö¸p>Ö7ö>ñï‚?lú?‰xL?šG°?¡Ó¿?”ÉÖ? ú>‘ÑB>Ññç?c–?F`]?­ÕÙ?­(?Ûo?ÖdÐ>\à>bh>Ç.Ü>Ýn¾>Ýãº>ÞU>7ÀH?!¶›?¨B¾?—˜k?e%v?]J ?‹Q@?v;=U \>eÉ‹?œ¢?t?V£Á?$o->-ƒ~>;®?ZDq?gÌ?c ?B&>Rñ>C¿S>÷ºÓ?î$=Þx>D­Ç?³gè?”%>·Ú?-në?Ž>­T>6}½?ÿµ?lc–>’Ü0>1/ü>¥>2›±=¶“#9|`=¤>ß•?Xù=? À”?¹Y;–@<ºý=ÖJ8Öd='’d>ú6">ä + >/×w<¼râ>–Š¯>ËÑ8?çÀ@Âmê@g¨?þyF=Šò€?YrG?Zªo?J >»Ñ%>f5¡=Ge°?^7ï?^ïf>é/J>Ÿ°8?,??ƒÞ¹?LC>&à)>=DÀ?‘?‘÷Ô?ÞS>ä&">Ý$&>ëç>ö†>å¦A>óú?8C‹?:üÏ>Sý#>M$>¿8>çÓt?ø?.eÌ?×?>èØÏ?!èn?’’?‚ø/;Î >Ôðú>Þ=ÈŽÀ<<Êá>¬ýØ>êïw?€ÜÜ?ª…”?kJI? Õ4>ÇO >ÕÅ>®W>+‰³>¤îG?lª?l*d?l=?lÕr?Œ Û?‰w_>ÊñB>´«t>¿Rz>É÷#?^¼?z˜?˜2>ìÃ?³É?*BR?4œÝ?WÅ°?VÚ­?C½?:J?%jî?Ll?¢xƒ?›Ž¼?SæÂ?[<>?€Í?}ø@LÕ@¢é>[˜ <»ˆ[?“ì½?°Ü¤?ƒ|Ð?l€Ô?A>ÿh?gW?Rß?ÿ?°Þ>›?J=§¾`>©/>ì ?.9E?EØ?P™>ëÚv? +Ì?k¿u?Ú”@G°@ +xÃ?Šƒ?E?¯št?­¹á?:€?8®É?™M¢?§f?l(å?D²ß?¶Â,?ÙÕ?wáO?¸>ÝÐ>¼Xï?á•?G/t? °>CYt>ŽN>÷Êt?Ê_?j9¸?Nóë>ê >ê>êÅ>êj[>úŸ)>ûqŒ;Æ‘¡?8/ë?=¹µ@³ @Ö?’é?H¡¬?Eá:?Cò?(*Ø? e\>õçÕ>Ä´5>àÈh>é0ä? ƒ½?-ú?+è>‚ú«>ߥ›?/ª?†Í?ˆ‚??‚±Î?FE?LPß?®v?®?—¶:?™¦»>‚ö=wN×>·†¿>赜?±ôl?è¯E?:ºe9î£>t ~>è£s?¹L@)”˜?ÿ–=?rý?š=Û?èŸ?ƨ«? © ?¾¬?¿+?‚ÕÕ?(e?"2??3†V?KQ?H ?:b?°’ä?È]Ø?{ ª?1‹ý?N©É?_¶b?`06?hϯ?§®¹?Ù<Õ?¼Àš?œ'F?ÉÇË@šü?ó¢~?Oå?‰ýš@i@7ö?d'?Qy?qÞ>?o­×>öëß>éSI?Ÿj‡?¯ +Ê?€Œ¤?f ã?››>û²c?<Òv?Zë¹?(ß™? ?R?n>éÒ€?~9?Ú ‹?Æ"d?­4r?É ?ùuõ?ÝÊB?}tÖ?yÁ?B?ŠÃg>ñ×B?±L?\Mÿ?Uù?”“þ?šÖ›?ŠŠÉ?‹ +?ZŒ?LŠ?´=þ?Òz?Y'Ø>ë3h?wù?ÝûZ?Ã1å?¬Ú¯?®_ ?¯æ+?ÊX‰?뵇?©‰‡>òã"?dRÅ?Ý·(?£‡t=÷À@>œÄø?l;°?€\[?¿ B?¾%?¹oß?¼þ¡?mZR?vƒ>÷M>ì×õ?’D×?–;æ?–ÞÂ?‘`î?“ ‰?˜L?Fÿº?#Ís?«Ì;?Äš]?^¶(?ˆá?MX?mÉX?èƒ@<-?üõ™?Àt?é¨ñ@ J“?ìñ ?²½Ñ?Ì,`?îpR?©=>øÓØ?Tþ?¾žH?ŸŠç?-§V?r)â?ËØ?Î@ ?ÀRº?¾Í&?Ù+;?îŒ`@ëÚ@ ÿ9?š ë?¡2R?ñ´©?éÿ?¸U¹?½±:?Ì?Ù?Ê2~?O¸?Dÿ?ã¸h?ã£Æ@DÒ®@Q›?ÿ”?á/@ é•@,Š?Rå>ð…?ž‹Y?´v?âõ?édÈ?M5Ë?%?œ#Ê?½œ4?|ø?>éµ?˜ &?´Î^@—h@+~?íô?´î•?§Z?¨?~Ðs?3ç?«QÉ?àh*?•I)?E"T?Jùù?B©z?Ç~Y@ ?ÛÉg?ƒËã?•ÂÄ?®9Š?—58?qÛÞ?“dÕ?µx€?œ‡k?qò¼?Jî?›“?ˆ«?ߧI? ¢R?mE?€€?Ù?¼!?¦L?³Z?µ¤¼?Î?øÏâ?úí?#Ù§>ùðv>9¾Ü>ÿý?ÈÎá?µš-?rL ?wÆ9?ƒñÑ?Ù×?‚O?‡Í¿?¸Ì?š¿ü>ý?rQ–?€=³?µ»î?Ãû1@\»@ þ?™Zk?›,)?IP ?L§?µµR?·êÅ@ÉÔ@DT?exŸ?\r@Bw@?x¦?r'o?™<+?ŸÏå@Êü@ +·Â?,_m>ÿY9?©”m?µ~å>== Ä?v‚'?•O?j1:?U¡‚?ãÀ?±•Ü?¥Ö…?ž}?"‚D>ñ°È?F?š3?”¾3?Žâò?©Ü[?½ÿ´?y$¬?@¥V?®þí?ÛÉÖ@ +™ž@ãh@SÓ?ðµÊ?ì[Ž?ç9ø?«EðR›?@¹Ô?´)0?£ëw?p ?Xu,?Îâ?‰#f@(ð'@*Ë@8û<@!„×?$-?>-"?Ë/1?ÊÑ ?ã?ê>%fø>á?kqz?o-Î?×/?â³;@Hm{@Q`?Ó|Å?·í/??Á}?)D´>»l.>«?·?Ê¡ó@[Î?õ„ä?îYá?ÿýÃ@ e@ )#@ +Bø?Ø?[?²6E?ÊTŠ?ÜZh?à*í?æ,È?»ëi?j¸9?¤ve@hÝ?Ó9?.? =?DË£?H8?*t÷?LtU?·D ?¹Gá?Šµ„?…‹'?-^”?Äb>ì… +>ìy¢?§Çd?°Ó¹@ ’Ë@µØ?N}÷>ì +U?”°„?°î?Uè>‚˜?xH‚?¸UH?ÇÄj?Ûb??¼À?˜é ?¦½Œ?°l­?Ý~ä@Øþ@!@‘Ê?ìʤ>êα?k¬ß@9?N@-ö?ê‡ç?äÔ5?jcž?jR>?x’R?‡ÿñ@ñe@@ÿ®Ö?W³ƒ?¾ý?©Jô?ÇP?§Ç„??‚º¿?O΀?œ…?ø6?ñ¸?èí?ÏWµ?jBÃ?hÛ—?z›F?ƒùJ?h€V?h~ø?¿y—?¸1Î? +ƒ¬>è'1?¶·?Õçd?¹VÐ?­è`?ˆ ?gÀL@ º‘@Io@“ï?çv?ÊÒƒ?šÄb?ˆõ­?_N{?K8?ç +,?âƒ7?Ê_k?ÒI)?Õ?á†?æl¼?ào(?>c™?!Aá?2/>?C-Ê?¥qR?É&t?Ò…Â?â^£?Û­¡?Îj+@&Ô@‹ @xhÐ@{á?üܧ?ejB?pù?¾-?µC?âìt?åU?µ¦? æ»?ít¸@|x?Îѽ?«^?Šø‰?d¥?‹ €?«B?”‰e?:#N?ƒµþ@ºÙ@½½?ÊÍÇ?Òª>þò>äj™!¡?ôU@EŽ@?¢úµ?Ã…r@ÚL?ò°ˆ?-W?W„Í@0¸Ý@5¯Õ@sj@mŠ?ñ$E?ã?»~C?¨X¸@õï@Ž˜?Ó¨?`k?‹òv?ÄId?§e>þpå>òo«?Ýå?×Ôˆ?©™?¥Ì0?gýî?cßÕ?+J_>Þíš?" ?^»m?€~:?©@ø?²Ò[?›êt?—×?³58?¨xä?­GÀ¿æ?ëA@@W¨@CI?ÈÙ?÷e„@Nš @;ï?Å…‚?Êák@ @ƒQ?wÿ>扉?”Ï?ætR?ó ¼?Ñh?Àc=?¯«ú?›/è?[r´?[VÅ?žŸ?¤Z?˜¦µ?Šn?h·–?7{?'Ž‰?qÑ?L?J=w?Sñ„>ØÁ‡>Æü°?—´?ÍS?µ1?£¡²?–Z-?„¹?ž?ÑW?Ôë?¥ÈÓ?«s1?Û›ð?Ñ- +?›$«?p‰W?^¡²?‚˜½?s¨e>ÙçÎ?’?²œü?¾-ä?› +p?Ÿ‚…?‡¢º?€ÿà?XzÍ>ù×:?kßõ@[{@¬?‘ñ?‹ø?œ)(?«ÿ?¨Ìv? ZÌ?ÆS @~Ô?êÁG?#úd?–.? —,?ŸÓÓ?DI5?Ø|?ïȉ@jp@;fQ?µ™?3Rž>Ý?Œ7? ù?ŸÖ?ÎÈ.?ÿøé?ç€?˜bü?Ú`?žº?ž¨? õp?¬ÌÑ?žÐ?}øô?€ƒ–?ž\µ? g0?¸`?ÄEÄ?ºF¹?½rw?E*e>\Ó?0,r?Òzä?Üá@ûÊ@ Ïr???†Þ‡? J?“?ð?°L÷?Ò‹T?´Ýÿ?_?(ñb?„±?‹?_2?R«†?Ãnö@˜¢@0L?íÆ?Ú2€@Ãn@׋?¡ƒ?kÑz?+N>ÕØ?h‘@ ¼"?þ|Ç?ž§?¾¨?+’ß>—‰O?`˜?T6z?vrþ?—Œ?‰‚?*<Ÿ?t~?=?X”?»1â?Õ"?RJ,> ™f?{?•.ó?o^?>–CÓ>CŸ¤>äe>Ù¥0>'¡>`çÖ?‹?+ÊY?%|(?5-²?s%ñ?Ë©h?Ç@²?çS?+ Æ>žuö>yùÞ? ì@?6Æ?!²í?å->2fº>£=?9Ë}?Uú?rR,?Yþè>â˜ó?Dæ?ât‘?Ò?ØCÙ?ͧ?¬Ì?  á>¦oï>É—‘>úÄ?çØ?© T?â?£Õ>è¨l>7Ÿß>jæ>ΛG>Çìá= +P(>TÞ=\«è>yô÷>ž"ÿ>pþ ?csñ?öBÏ?ZÛ‹>~†>¤‰>—ù#= ¹`;‹tP>Æì®>·ð2=Ã!¦>\„ ?.Ój?%§Õ>,;®?8>O\É>OöÙ>àÎþ=ÎéB:Ð `?§æ @ÓÙÃ@9T?yÈõ>ÎÐ>ìã>ò›>á&ù>Ûèƒ?D–Š?†X8?{Ë?^X?^è?EH9?>õŠ?‹óý?¨Ä ?£0/?Œ)!?sÿU?Ô‡?lj>Š>^UZ>oˆS>Ví×>Íäs?#¹S? ù>ŽZ >“Ÿh>˜ç>ž6K?¥I?kó>x82=Ó+>°X@? ³å>±b–=€Šx=WT=-o =\Š<²O<˜¯K?ª¤ÿ?¯õÈ>V¬ó<ˆ=†ä=ä`„>­ïÊ>ëƒ>lî>âÞC?ŠÑÑ?f²ö?Ö„?(Uz?lG‡?~ë«?×£?Õ»3?[Øw?Mêé>—ØÔ>}›?¬ A?ÏÐ'? B>ƒðœ>ß%‰?Û‰>»¾>& Ü>¿€Û?}Ý>³V>†h?S‹??0v>ìÓ6??ªŒM?¡VØ>ýÚH>ú–›?„>ð§Õ>ì¡ã>íBá>ñ˜¹>öŸÅ>ï¥>ìnK>ì`Q>ìX.?:’?VÉB?F;?6Jz?pz8?¢*?‰Vª?ˆçå?5°À>-j›?¿?˜c¸?©`?çc?ÛÔ?’¼^?FÛ?œµ*?Ÿvq?$Œ`?Ò½>˜YM>Ó5?¶ÎN?ÀÊD?¤Œ†?¢W)?€2+?j¸@>Ã`V>oÐ=ÜÐ¥=°À$?€"¸?â?¯´`?kï?j4ð?j) ?ˆv?«Sí?Š¯Ó>éð5>¿ÿU=rQ +=ƒŒÄ<³;+?Л?Y?Éæ¡?ÑdV?7LU?m?˳Ì?ßåÂ?°v÷?L‚?9tf>ñùe>ã$>é¹?gš‘?¦¯?LÃŒ>0 “>…E{>èâò?)9„?žÉ?ŒKy>èÈ·?¿€?¹› ?³ú?`[?,Ú>諺>è¤b>èÊ>è›Ñ?ĺ-?è’à?èŒ;?æ?o˜/>è…U?´?ÀG?‡Õ?¨Ú>áìW>·4‹>¢D"=ã%>Äæ–?o8?ˆ¸Q>Ž>¢§t;Or?"Ð?)s-?¦ÌO?®r¯?Q(¥?@žš?q{?®}„?‡Çâ?h®U? •?Êh?›lQ?JÅœ?«c²@Jé?Ì3]?BÓ?/˜Ž?vKk?qD“?i?uk1?¬—w?©öZ>éSò>ée(?fÙ?nú@fÛ@ + æ?C[x>éiõ?®V’?ÓÙý?è=Ù?ícO?b >é±ï?€V?¬H?|í·>±m®?+ÿæ?ž¤ú?•> ?d§ ?…1D?¬¦â?ŒKü=èë?™ÀP?™NÓ?DE?G$Î?Ó¼? >î€ú>êЦ?Wp ?jóŸ?£v?ä[?f…c?‚¬?s2X?l øê>Í©Ð?>6?;:H?8>*?8i?±7[?±›9?µÌ ?º?u?N$‚?@~?ã]œ?ê@x @)÷?ža?Siõ?V—á?YƼ?hœÇ?mÎô?Ú¶I@ [±?™ H>î]?ym^?²¦?•ë:?x³8?“LÙ?§B­?Ö£^@ [?ç/ˆ?š†0?`-?†ò?Юi@4é…@a“?ÙÝ?È›N?±ÃU?ÅrÌ?ÒžÜ?äÏÇ@#‘÷@ò?C6?•y?Ú’ò?ÛÇZ?ÅŸ8?Æwd@c@ ðæ?Ë>?Æz©@Y\6@a¡È?À +?±ÚÑ? +Ä>ðg?Ü\È?ïI?Žn?‚7"?ΘW?×8È@®œ@"„ö?ëø1?Ñžf?™ˆ?‹¶ê@ 0 +@" ?«É??b‚E?§öÜ?´ì“?œ;z?“#û?ü +6@8*?’c>¥ ±?<ò?‡­?ÚŽQ@ ]?Ñ–­?¶?’¥+?€ë?vyN?qÀ™?µ5é?ñ4?î?èÿÕ?—x#>ñæ0?õÙ?Bp@?n|?„ì?¢ëô?ÝÙ«?±HÅ?A¿Á?}e?µ‘ß?ÔÃ@ T?÷os?Zè?ŽÏq?Iºó?†r5?âb?ÅüÐ?r5?‰8?µ¨€?±!?«c?¿0¦?òÝ?×ðö?jÀ2?{Ð?¯„Ú?¸NÎ?çÆo?ã:º?áõP?ߧ?¢†? U,?ž#M?‘Æ«?'w½?LÆ™?Õ÷¸?Úœ?å”?ߎ?ôö6?ù¦B?–md?‘#5?5õõ?'Xþ?\>ÿ´·?µê}?µt]?x˜?wäø>í“¢>Ó! ? ?€?²ï>‡Z†>‰ ¯?Ÿ?$±]?ˆ]?“Šj?KyO?2zÝ?dx,?q‡?í““@¦Å?Mü‡>ñd?»>ÿÝÒ>ãÂO>ñDo@Ñ2@4ØB? Õs? ý“?_¼[?ˆ‚Õ?½ÝÑ?Ö°R?É°‚?Æï/?’S¾?jÆM?ÚÝ@ ¤@Ê ?ð™¿?¶Ø&?pñ?ÊR@8¦?¸ =¢²Ë>‘ "?ª?X +u?´+?Ƹ??éí:?ò%ù@ÔÕ@1@JÇ@.F±?±ìN?±·¬?=j?IT?”³a?‡o>ºW>¼Hé?`Íï?U_ô?¦šK?š×R?‰a?€@Jñ@PýX@1æ(@*¼½?Š•?W¬+>ÜÌ4>¨Ë»?†O?¦”?݆a?î;æ?‡Ú²?> ?ôd@ÉR?ÌV>ŒÌÇ?&hr?xÊ?5·˜>î?.P©?mz‡?§¡ú?íX?Þ˜m?¼?²d©?¨¿ûõ¤>ïXà<][U=…¡Q?~ˆ>?’p™?`j?KŒE?¡{]?°Ù?º‚?¯™›?§Î?¢` ?(¬B>­Í?7ˆÝ?[ !?…Îo?°WÃ?ÉdD?í'?ÍF\?š`¹?¼ý«?äÍ?ðò„@*@»L?²yÜ?±•š?@Ó½?H׈>×…>œ…Ú@hLc@Ú¶?”m=r¢?:¯M?WÔÑ?c¶?i†Œ? ÚÃ?*?n²æ?‹Á?´<:?Õmú?Òô’?èèk?ñ~ +?ä×Ã?è6e?çr?Ö’ ?¦hä?§J¬?ÈËõ?ÀOœ?ÅÜ“?É»?§L?” Ü?˜&G?Ÿfd?»4=?ºçT?‹ +Î?gǘ?wûÏ?‘ÚD?z¸Å?H›?r?‰ïÁ?¯}J?Ý%ß?®¤?Á?½ï?|©?nUv?C[>æÛ£?¬:?³ ?cix?Gön?zì·?z…Ù@ +U@"?³#å?D–ê?o›Ÿ?‚ÞZ?¤ü]?å\ó?éð?ë0Q?Í ~?¢`?/Iô?Ã0N?ÈW@  â@!Ì@‹^@ -Y?ÁŽN?«ƒ…?9£¢>øÎV?TŽ? gd?"Ê?DñI?W.K?iu»?³Å¼@,Š½@§?Rs?`ÏÀ?«Š?§²‚@)ÿ@c?ÁýÉ?¦Õp?ªl?§÷5?‘‘?ƒ.÷?zq?Êh©?žƒm>ã?G¶?é¡Ø?÷‚î@@Ñ#?“D?„?‘ªQ?šï?Âþ?Ö£Î@þ@@ Ëð?±5U?qY?š¥ž@ÅÇ?ãj¦?ŠÆ?ž@ã@ÊÍ@UÆ?n9Ò?c9Ù?¡º£?­mµ?ªÇ?¨Eå?Úà¬@Ù?Ìóî?`3?±D@ùt@úÆ?§;Q?ŸH½?çí?6À?’žz?‘C\?ð€>¹\9?#xo?;MN?E€K?bÚ_?‚ +–?¦Ó?•í’?*ÿT?M†"?ûò;?ö…,?°p ?˜Q­>ÑŽ=Cuq?;¤?€{?v™‘?DËb?©×¯@-„@/ÜN?¥Žù?¥z-?èÎ?áÀx?ÛÒJ?Ïí¶?•t?z6h?¤é©?Ù?Ýús?Ý\?ãi?cf?bòŸ>ðƒ&?7ò?¯ Š?ɱR?Ö­?Øš]?˽N?ËWá?¯¿¨>éë>ëÚ?œË'?‘`™?ÖJu?Òêù?¯Eý?™êo?Y¬Ì?èK?y?VŸ ?i¸?¢ó?¢lê?ä=©?ñò@ˆŸ?û›?ƒO=Ä‘$>ÊÜ?žéc?§a@"îÞ@1?}dÎ?W ?$«›?Ò?iž?£ý?¢5J?¶ïå?Ä»±?|ƒs?„Y@ði?ðï?·¡N?¥ +Ý?‹…£?eÚ(?˜Æ?èG?ÄlÁ?¹@'?´ƒY?¦¢2?¡ž?cC?XHí?•Ñ¢?´#?Ÿ>ò Ó>ÁÖÎ?£xý?·Ká?¥žá?žÜ›?µJ?bâ/?uÌ2?ž¤¾?ž”®?bàô?SI«?ÁY@K¹?à‡£?žG†?ž=?ž54?ž'µ?B\?V.Ÿ?–ý?ž‡?g_:>øet?(r?‚$? ì?³``?¡\?~1¶?^Ýf?–²?ÒsÒ?Ô‰ª?Î]Ì?µrc?ž;P?Ý°?ŠÏR?o]@?›Œ\?Õ ?ÌNã?‘lø?¤\?ëYH?ó a?¿s^?¥ý¼?…£ö?Q<*?]Ð!?©™?´KÙ?V;'?<Ìx?u}É?Žï‹?yûÆ?T!B?Ž¼?ÇaÍ?¹ +V?…•?~s¡?¿"¹?ãl×?·C¡?¡NÊ?{U? Có?+¼v?…ki?‘àÇ?WÃ?W_x?YÝ7?U,¼?ÞÌ?c?J[½?=6?™ +”?…ç‡? Ú?”Õ?»˜Ã?Ý +?”mä?8Ô6?0"Ó?1\ï?Ö¨>უ>â >â¬a?-¾|?®Üÿ?›~º?ßé?K¨?u$6?pp>çº?®°›?‡¨?'}?O2ü?–(÷?†}<>î8Œ>ÖŸþ=-<:¶‹=¬SÝ>œÀò>2$;>ß·“?… Í>û¯Ë= ° >ª ±>¼Ý‰>è :>þ…N>^lD>µ§=†÷Z<—?ü˜?,Ó <•T0<¨ˆ:öÜ0? +ê'? +ûO>õX=ê>â@ Ã(@¼®[@,?Žôà?.Ij>ÙÓc>ݾ˜?Kn ?KGÿ>ÎlL>€\v>¾R?? ty?%I?_g—?_ï ?F˜>ékï?…‘?01­?$îN>€_\>w%0>m}®>c¾8?u ?&x?f9"?ŠTÍ?)Ù”=Ñ>Ý]>ÅÅÊ?%SÖ?-²4?¤+>èe?${%?CÇy?p'>éWu>úö?”f>÷jK>åA,>éè>ëYb>ó¥¿<ŸL?5I·?Q C?V½ý?Yj>¥-?1å–?°öš?“¥??IDW?oä>¡`p>Éli?7k@?Pk·?ñê?‘N“?5©n?1?iT«?xÃ>¯ZT>>–j>æo‘>ü§¡>å†O>ìÚ/?QšW?…ìŸ?V=Ëe>Dý>ìÕ?±W?ë£?!?[o"?bM½?i¥ˆÆù?!û7?‘X·?ž¥¾?°«á?•‡¨?F; ?WSr?QÌÊ?=‰?3ž?yÆ= +é>?¾%š?ÃŽ?t›æ?jÄr?HÅ?K·©?q·?tp-?fª1?f s?°>êJ´?¤:ê?éÛJ?]¾#=/¸?)A?¯wó?ª ?ží??Vù6>2¥ô?2¿w?"#­>鉣?ê\?Ö=Â?ÓÑI?„`³?€Z¼?–d?¢}:?¬U_?®"¤?,õ>ü(<>÷GŒ>èù?‰8“?¾k$?„±?d¦?¢Ê?Ü_?1È;?h´ë?M,?Ô!?Aà?Òc?ÉÓ?rÍ?gdÅ>è…ö>è€Ù>èxù>èv @Àt@£?—UJ?xÐ?’\>èdª?JõŽ?{_Î?Ž¨Ð?•Èx?Œ«á?Nz?za?r$Ú?†z?®GÆ?Œ>‹t>Ÿv=?tô>üÿÑ?.ï?0`?ÇéF?ÇD>‘.¾>3Þ?»„H?ÕÕ?u+f?F™t?±¾>ª‚®>æA½? 5ê?Ì +?·.Œ?®ó•?¨¦(?ª 6?«vƒ?œ§õ?i¦{?O¶›>èëÇ?›†?«^?¥‡?i K?hZC?.?:s?VôA?RDN?†û(?‘M?Ÿ± ?¨ ™?ð¢>·Ê>ºâŠ?϶>×$ +>ƒ%ì>®qá>éÔX? ÍI?+9"?—˜@ NÏ?ÔuÔ>+‘ >»Õ?šP‡?¤å?¤u?íG?7»?< >Æ¡w>È„ò?a^?jÇu?[ûÄ?_ð@À@0]?ßB]?°S?¯Ió?­ßs?8 >]Ó5?ÿR?I‰w?/œw?#Á>Â|ö?ñ?»Æi?Ò¿d?éÄ+?Æ*\?U‰F?_~Î?–Æ^?•L×?“Õ…?•?±{?¬¥å?=¯¸??Šw>X>¡!@7í@E[s?ò&H?èl?BlW? +(3>ó Ó>í„Ï?Xö3?t­š?Sw>ì!>íÙ”>íë¼?ó²ü@.‘D@Ï@ ¼@(’@>o +@ Í?œV?Sh)>¹ó¦?F¨¯? H?ÓÖŸ@qó@¾?îõ9?ÄTí?:ÿ˜?=aT?e€?Äÿµ@?Ʊ@$¢?‰3?A•?¡Äé?«ÿ?á ö?Ýø*?³Ù ?»vˆ@+@ i*?´¼?²óg?t·?p+ù?p1 ?nÙ? Š„?¹å?Ò?pÔ>¦–>º!Ò?lhÑ?ˆ„?™ì%?äS?=ˆ-?%Û?æ Ð@rÙ?ŽÄ?s?§[?ÁR8?á4ò?ã–K?ë¥é?ñ> +?ôŠ>'>Cà€?—Ë¥?×o?+0;=—'š?b]?îÌ?ªªE?q¢®?½dS?ñª ?—´@?%Þ…?»»?žˆÂ?TÂÈ>ñÏ9?Dü®?Œ/æ?³¹?Ú­Ž?ÝÁÒ?ÜŃ?Çsr?µzÌ?u??†S?|Óš?£Uf?˜`Æ?“[*?¨_¯?‚1?£¢¨?`e”?ŒëS?¾é÷?ƒÑì‰_?%Ìì?çÅŒ?æ=@—î?û€&?‰%Œ?ÃÖ?æPô?é{‰?ñëå?ësP?€k?„Q@5_(@1è¯?êtŒ?å-"?¤ôð? 8y@BIH@;ªÊ?‡‡Ö?q]¦?†^?ƒE?q¢?q†w?’[?’€M?v½~?qe–@ëu@+<ú??Pâ.@(@@Iù½?Œã>õ_¨?—:i?·–f?Úör?ߊ?a«?•?8…?Y•Ù?¹PÙ?Û_®?~6ô?t{?ºQ@w°?Þc?ÂM,?/A?pdˆ?Žý?n?q¿?"dÛ?Q&?ìÍ8?ð²?ï9‘?ÃÄP?„?ñ?ÁJ†@Þ²@%Å?Íàr?»NR?B}?zN¡?Ö'¡?Áê§?™²×?’¡—?G?]†?µ¬Ç?Étõ@|§@!*)@ Ð@}Ô?ï߀?÷)?’Õ?š!‹?or?€=>D÷Ñ>$¾~?OÃK?n9õ?¥Ü³?¸I»?\Ú? š1@‹»@I-¢?õ!Æ?¡M@?°Àq«?ãÌ@;ø×@ !­?°?õ?zQÂ?À?°«ô@Ì7?÷“f?°q˜?Íäˆ@£?ë?jFŒ?[!Ó>ê$8? pº?êm?éóÞ?µ…?¯‡È?߉Þ?ÕàØ?ÕÈ#?ÐÆ´?ÉFb?Á½©?Rû²>÷Óä?‘x”?Æ@?ìz„@ ¶Š?¥Óä>C?¸­?­@?¥c?w™H?m.?"VY?BT“?šÑõ?¨ +¡?ëÊx?ãÐå?òºˆ?ü +ì?«Œ_?”Â3?ô‹"@ c?÷Z?äh]?»p{?£ç?€9?C³ª?P"\?gB?¬p”@+|@®?‚­•?‰w\?³îz?»G>@+l@ ªz?¬Ø}?¬¾ñ?pY„?f2%?†º?Ži7@‰ª@7F}?Êòø?&…'?¥Òk?îÚ?ÍÄc?­R?Ó#=@ +/@1–?ü™?ãcZ?Ê"?ÊÀü@6Zþ@4Â?Ëkd?ÍC?°v¨?«Iè?Ï>T?Ña@ض@.Q›?͹7?3œ?!ñ>äØ?6Üö?¹¢â?²˜U?<Î?ïÚ?ân?Þ1v?J|ÿ?fÐA?µŒ?Ânÿ@ D›@i÷?Ê»9?œfâ?p? +‚N?hæ?_z¶?|ùæ?´Þš?Ðòl@)±§@':˜?ÈÕ?ÌÎ ?s~?aÙø?N|?[]?ádô@ õG?êß?¶Õ«?öO,@,íä@ i?’žV?»o/@>² @=̤?¦w£?¨??ÖÚ?×^Œ?ò +ý?ñÔ/?À.$?¨ý?ä,??W–?Æqt@=Ìê@#E;?a ?_¹t>ßb">ßKÜ?>ß?XÈ?ªL¦?¨ˆ¯?È,¡?Þ»\?Áv?¦ÚM?¥`R?¦ÂÙ? ä?€b ?€‘ @ +¹5@ +­‘?ùÅ@ëC?–+?]é&?\U?]AU?P5?7ð ?k*ù?Ã?ÈÃ?Ã>¬?¸4S@iæ@%h@ qà@kn?ØwB?µ=ˆ?ÒZ?îsø?·Dï?@œn?sFò@d@‰ >úá|>Úð{?9Ù +?m”€?¹UG?åè?º’ü?ƒu‹?ˆDX?Y#-?VõÙ?i +?tD”?ÀšN?Ô\¾?Ê0û?Æôn?¦ûÐ?tob?G<`ÛÐ>¤!¥?÷[?ëx€?¼‹K?¿?-@$å7@6"E?åY•?__‚?°or@qâ@ ÈÏ?Á@,?ÞR ?¥ ”?‘Ȧ?—Ξ?‰ Z?õÒ@:M@Öñ? À"?œëw?VÉ?Uü’@.Ù‘@Z6@CP?Ó­#?½ö?˜îü?¥¨«?û’@v4?€qr?“_¾@Óè@L‘?›D›=KDp>Ásî?ˆ‚u?•|E?½Í?‘d?ÛÕn?ù\Z?ǽö?žÉð?«¢j?»si?¦šË?J]¹?b”?²G?¢Ì?–#?žR¿?¡ +?ž+N?“á;?@{W?XïÇ?=p{>úI¬?sÚ?žÑÅ?›6¡?Ž¡ì?§éK@çè@/,?¹Ý÷?Φ%?¤ƒ?˜?”?ÊÞ;@Wy?õü ?å?ëG?Jœæ?`Œ7?³…À?ÏÈz?ºs?£61?‰lC>]>ÁÎ8?ºt?ÂçÌ?¼?+?ÉSÓÆâ?)ñ?T·?J?T‹r?jƒ?8Œ?^ü&=ùã*<Æ+/?Ü?_ë¥?š¾$?±žÂ?€„->ÖŠ—>îs·?D¹!?R[?Ÿ?œ>Öü9>˜Ÿî?) B?noŠ?„Á ?’]S??Xçœ?CœÈ?•:?Zõ?‡ìZ?œëb?ÕMà?öG“?_ú>ïIO?}U?˜Í†?_Aä?)¨I?eÝ>á—X>â*ï>âÂ>²X5>\¬Ø>ú"›?KCm?Þ>æŸÅ>ÑÌM=°¥é=u»:?‡K?ž*>@8>ŽÀ•?y®G?{ÚK>¿lA?i±?oÇy?/m>N>óñÜ>Àd`>†·?"íÅ?³X?&¡Å>©ì>ü|>ýªæ>þÝ|?Ö>üõ]>ù+?(Ãu?fÆG?6>§ï¨>ˆö>O5°:!‘ ŸJÅ>¼dÛ? û¾>«Ì¶>@À>e;ç=9Mã[a=›Â@p&‚A+#@…¦?XôÄ?…„d?ËÇ=?ÁìË?9Þ?œz?P\´?1ª?7Ðb?CoÞ?UÛú?—Œ4?–£‘?k»¬?Yô¿?RÀ²?Kv?:\%?0Yì?B­Ò?Ø€?Œ,÷?bø?dêì?LK?Pì?¦>è>Ô[ ?Š‡ò?xÚ>­Ïi>½Ç#=¨›>‚î`>ÔŽM?[g}?ªs’?c&’:J)ã:ø?Àú«Ý?[4>WÃM>1äb>§>>´4Ü?  ?8¸?t8?¦ú?7 õ>N?l_?~µ>?¯>Š?¤½Ê>†ƒ>‹Æç>‘mÀ>—Û?ŸÓ‹?±£ò?)vñ>ìÞ*?]©%?ŠÄÇ?U­?úC?N}?¤1?fÍ÷?¨® ?P‡üe>ìµx?2²>?´ƒ?¡¶?¬–? u?Qe?Ad>œ>7%Ü?ÚØY?Þpc?êœò?䘯?E$??ø˜?@?^‹‚?’vÖ?—Üx?9 æ>ëà >åx'>õé?U'°?—.L?2aì>× ?œ¡^?dVj<ôeD=ã{>ÁL>êçÌ>û‰à?jÈ?g]çêZ•>êNŒ>ê>z>ûœ? .Ï>óv>Ñ…\>ˆ2Ð>U-ð>Ûƒ)?#r¦?C-?°ú?†×Ð?n?TØ%?­¼j?³ôK?é[ˆ?ݸé?Ž +Ñ?Œ–à>é¡Ñ>éä?a?Ž‚§>ñ¡X>¹È$>K–>——?]5J?†Ž?\ðD?JÔÅ?M ?PD§?^G_?hž7?h”?h4?E£Œ>øJ›?6uJ?±ê?šµ‰>èhZ? .´?¬Ö¤?ªÆ?´µŠ?·ê§@b@ÒV>»4d=¥¾?ë_3@I?m6|>½¨þ?}–-?®/6?™Ï—?‰k +?ª÷C?Ð3VOù>Ô(’?hD¬?t?éý?ŒH?£80?¥Ð>é¢>èUR?À¶?ѹU?W«Ô?)Þ?†v´?™¯?ê„?ƒýÞ?±'²?Ô!¨?ŸÄå?cìÍ?h¨Y?hÁ ?‹An?®U?‰4î>èÈ@?+×7?®¤†?œÈ†?|?P?™'Ð?—Z>?Íbº?Ë®?rUù?i7ª?%˜?ï >»Š2>‹‡%>…ì +>€Pl?/úì?iÜ÷?#-Ë>é²?.þ?iÎ?œµÆ?â%/?¶_'?æÃ?Fï)?­¼?®$?œ(?rÈ,>Š>sû>‚"”>Uæ?p¹4?o Ì=¢“z6 h?P4b?mj>NöT=”-Ë?@ƒÛ?w:R?‘Ê«?•˜B??Ì%? ‹[?6É”?MÏØ?:Œ?$Nq?f¶?œ Ü?•ìÈ?šMm?§ù‘?±¨?ž?m?–lË?å°A?Ób@?š2m?’•2?¥$?ê^? >ú»Ø?•vµ?™+÷>¾;ê>—¢?oah?z=?¼Ã>íiâ?¢=+?²½ï>‘;9ß ?¯Ð?å}\@ ¡Ù@¯¼?æÙê?ÄÏÈ?rÁª?,x®?)Á!?9Ë?€’?£n(?’ª?N7?ª£*?ÌRË?±K?‘Y§?ºxj?ë S?²·?¸l?œi@1R¾@´¬??±½?ND”?†cµ?ˆ˜ÿ? …?¤[d?³Ãó?±·5?ª½¶?®1ñ?±ªp?¹Š¤?ðØ?îo?ë[?ãJN?d+‹?gV‰@-&@çž?Ùh?‡ô?’,?¹µ?éŸm?ë?YaC?=¼Ý?†_À?“ˆ¦?±âÄ?´¯“>ëþq>‘’ååÄ?Sª?Š×~@Ö@EDZ?Ì`?n8à?Ž>ñy¢?ØÆE@œˆ?»ð??†B"?ºö?ÑÑÐ?¡lõ?‡U™?3f?xe?/?qÃÛ?Íü#@ øx@·«@(?Õ9}?›>6?tåu?%4d?¯Î@ ï?¹ E?ò^?Œc,?è1?¨”÷?÷#?›ð@ù@ ¢®?ñ²@N¥@ ë?áV"?ˆô¬?Ï(•@)@b@ ±?Û›?È ?³$–?¤À?ß¿¯@ Ï@?ú?ì+Ó?³`?oû?tQ1?ì?•ãþ?ªó?¶Uj?Ñ[Í?âÙ?îr³?Á U?ovð?¬%M@—o?ýS?o<?]ùu?kl?a½>2îš>Æ™=¬íQ> +XÍ?pIY?ƒ%^@£@Ìi@Sä@JÓ +B?ªôÉ?§’¦?—?¯|?Eï™?Q(?08]?0ûà?K>ëkÿ?µWª?çߘ?ö,?óÌ?>ëQ= Ñ÷?‡~?è÷?Žxø>ê¸6?W®ù?µaº?¥s?js?š»?Î?»`½?j,Â?\'f?ªù?'ó5?ãd?èˆ @ g@ò–?…‡Í?…›Æ?ŒýÂ?”e?ùhÐ@&¡@ÓÕ@b @“¾@Q—?âéÏ?Ķ?Áîô?³Ô?}-5>êç¶?Gþß?§?wûQ=ñY?>‘,ò?h+¥?}5Q?ë˜?ò\?š¨?ž‹‡?ãÌc?ü÷†?Ž=?gù?Ë€-?çk³?À„X?­uè?º\?¼SN?„æ0?.± ?IæÍ?fÛº?n÷[?ŠLÿ?§îc?æ•@˜[@d5E@Ypn?Ün¶?Ø#¬>·g>´¤×?žR?§¿ ?Zò(?BBÄ?¥(?¾‹;@E@*+%?Ô ã?Ÿü?iïG?Æh?Ô"?íí@?ã4{?väp?•¥@Õ›@!.’?;‡Å? +uƒ?US>‡:¤:?é›@$ð@Ru@²Í@è€@ ¸ø?ïõÎ?`ñ^?› +…@(–L@!Ô ?`³¯?f“l?Øí|?à[?³CŠ?¶¢?øŒw@é”?˜£?;?‹s|@û”?úà1?£@a?’i®>ßL¿>ß1?gP±?Tþà?ÆŠ¦?éõ¡?Ù|Õ?Öi?¡ŸÅ?b¢ç?ÓUÏ@)$ô@ wò?¦’?³éò@lÐ@°Ž?˜Y?›W]?¥È{?¤¬2?½ûñ?ÅJŠ?¨??ŽñC?›F>?»$p?Å%,@ ÚB@ ‹¿?¥ò?ª<¤?Œ/ç?“©©?—–€?Æ?Æ[q?øC=?Ö)¹?7—? ‡>Û»ñ?¸?I}À?=ñâ?j–D?aX7?bŠ„?€S?2ŸD>†>£`>Þ9? +÷ ?—cN?‘¡Â?Q@Q?`m•?w*˜?†ïé?²ìõ?Öiæ?×¹ì?Æ06?Ÿ"p?!:ò?ZÁà?ìºd?à@62@\F`@!5™?×mè?ù]~@!”Ñ@ }?ˆ?" 4@·ú@š~@ë^@ú ?Òô~?€Þb?Ü…Ü@-øk@ý¦?„¢?}P?œP +?Š>‚?bÌ?W®!?e[Ò?l9:?qžÕ?vÅ¢?5Ø?Z/o?b×?É”½@¾W?Ìm?ˆ«?–ˆz?În[?¸?“ÑÂ?¥× ?°çv?¥[ˆ?~,§?\Pº?‡o5?¯Ð?¨;Œ?@? Ö£@ u•@)Ò?å¦÷?ž1?ãî0@qb@ +ª?¸ÞÂ?š(?ÕôÊ?ï’?ßÖÞ?Ñ͈?Ìv??ÆGw?Ê°M@ +&3@Èð?eÁ8?"nV>^¬ ;ƒÅì>óÓ?‰bÖ?‘]?tj}?ŒôÙ>Ú¢&>~X+?læá?Â!?Ë¿u?ó$ž?ÁéS>ðñ„>¾–W?œýÎ?úŒ?Bq'>ØL3?‰”?Òí¤?ÓWÞ?áš?èÕ‘>Žna>6·[>õ6X>×ÖŽ?)Ö?Sóñ?a_?d²ƒ?9bñ>Ž2>4Òð>߸`>Õè’?|¨?–>½?yL?uÐ?jN—?ò>øe>Ÿå>×!È?\3Ö?mç>NÈ\>½4…?WÄ?.¡>çüô? w–?Zƒ7?J¶Q>ÛS>Þ …?IÏŸ?.úX?g>òI@Sw@§q?™¨Y??að?1Õ>àˆé>È‚>À1‘>Ûl‡>âÒ\>×Æõ>ª? +õ?¬q?•l‡>涊?!‹?dpN?Rm–>é®>ÉM=@s>ìÞ¼>ãÀõ>B]¤=Ý ‡>üÉÎ?ä¥>©«ý>„E>…Ås>¤Ê­>Ĺ>ã«>ø@;>òØø>ÉYF>ZJ©>`¾T>ïœ>ü‘E>Ñ{¼>ÁA:߀>vh£?ÞÐ>Åp•>tZ +>›ºÇ>ºW=²¨L>7ÈÓ?È?>X!À>íà? E?'n?= +ö?#Z]?óÞ²?ë°@=ÿ7@–@IÞñ?n[>Tm¤>ì>.Ïå>*a¼>JŽ??#?qn?voÕ?™n?dÃb>Ãe[>ÝI?<k?AÒ)?~„Í?ˆ,?6/‰>ÎÏ}?š?ŽÙ¶?‘õh?1q„?40 >ù >5z7>šFÕ>â€[?>èpD=Øý˜=« Ó=wCÓ=SÔ­=ל.=¶È>“Í.>åá®?+jú?h°˜?¸®=¯]g>Ó:]>Άº>ë-p>ë‚¢?;ï—?7³>ú–Õ>ëÊã?rcä?‹°c?]ÌP?L? p»>ŠÜ>üÅ??H?Dxê?lŽã?j¸?ƒáà?o¤ç=·>£Î`>–ûì?‰»?‘I?B1¬?+¥%?ö¤>Ð|‡?›Dè?À¼0?­ +¦?¨GQ?^¹?%…>ñ7>ì¿–?*³?jEd?Aû'?ƒg?&0Á?^Ìt?0s¸>–š>ôˆ<™”P>öF˜? §í?¬Lª?±¬?ÔÓ>ì ¾? ŒÏ?Àa?~ s?’l?24?eË(>Ø„¯>I`?o—?>àS?P°f?B‹¶?H}w?k9~?(e£>\7>‹ë€>êô?\?ë{? Ž?j¶½?Sp=nï%=€½,?j ©?jd£?j.b?gì6?eÍ?b=ç?›Äì?¢ A?r3?VÝ"?Eá?8œd?yË\?‘e?Ôží@ a?À¼&?@;Î?l?£k…?›C(?ˆ·­?‘ ?‘÷@?‡³Á?)í?(š[?~+?ƒ#?ŠgÎ?ˆ(>ú³>ÊðK?¦+?¼¦€?Eo? ¨>׃Á>Æ +ˆ?4Úk?h{ü?c¦U?b4°?fJ2?h]z?ÈZ@.=‚@l >èFæ>ìeÄ?H´? +ÈÛ?C€?fõ?Á‚^?ÄmÄ?ÏF?„gC?{D?;G?D2??3úÅ?L“? `B>Æÿ¢?…M?ɲ?[ƒa>°§G?hä?ž?ÄC?¤šM>è#z>ô,è?iŒ?Ï#>¦ýZ>–ƒ”?©a?®.ê?<?O??Ê@ +?èXT? Ÿ =AB™>›tÅ>èqc?žN?ç—`?®k&?n÷2?‹xU?¢€Õ?¤_§?®†º?©Ý?—w:?}<$>¬) >Õ³ë?[]>?g*h?im=?i”?‚&?}Ä?̶>é;??&î?-¶ƒ?‚!M?•[î?­$ë?¬è?s0?Ax†>çŽÑ> +(?,_?ƒZ²?@•>ŠöS?$ù?Ïän?½Ð?j7?’¹M@ô¾@ qM?¯•6?·+b@/ëÒ@-„ð?u¨½?jÂV?XÏÅ?PÂz?eYÿ?kB?{Ä ?õ|?_â2?Lz?¨}Ý?ÆÑÁ?vê? Gè?®àú?ö"½?—¦å>ëÒ&?AtÛ?”5»?‰Tg?])y?—­?ù°1?Øû5?l\ª?~Y?—È$?š ?Ãhù?¸z»>ìÆ¿? ›W?åD ?æ1z?¶Š*?´¼3>û„ï>íA8@ Dr@@H?-Ö•>Ử?ü­F@~K?þwÑ?÷ ›?Ä€•?²s?µîÞ?¯šÎ?˜~?š?àü@ í×?Í‹?™M?” ?“Ò +?o§?/?’îô?à²?Æ·Ë?ß”?¯‘?Êü??²¢†?‡.ü?¢’ä?ÊJÿ?¯Ò^?Xi™?jߨ?®ø†?™j?ßÉ>ðë˜>ïÄÎ?Iö»@Åp@7Û?ƒzí?—Šz@:®@ ,:@KÍ„@C<?ˆ[?’%0@*Ö @%à‚?½Mì?ì“?Þ…?ÖÀk?îeÆ?ã–Z@<½Ö@;{–?â>¥Yà?„ª?,Ø?ÎeO?ã©8>Áùƒ=šv˜?·ØÖ?åEÂ?““Ú?u˜7?í>ñFB>ñMh>ñX?)?(Õ,?`ÅT?qq½?Ëyv?ñÏ?¿÷?£Ž)?ñÜi?fC?·ÿœ?¤‹}?as?gp’?K?ƒž?ãaS?©¦>ñÝ‚?j›W?Ùé?ô§>@(@&@ ´`@í}?è&s?ãîÃ?ËíÓ?¼®?l¡ë?–Š?¿H“?î @N F@7Ñ?´Z“?“¬Î<Ñô4>ðv’@5¸@Ûõ?ñ”¢?â‹Y?q‰†?eŒ>ñz‡? ª ??Ÿ˜?×—°?ËÐ-?qRi?qH ?qEe?sB8@3€.@4à8?Ò«Ñ?ÈZ;?§7™?«%¾?´e§?´½/?´”?²¢Ï?“¾?›×¤?õóø@‡ë@·@ µ?ÀR­?¬¼?€V%?fyq?ºž(?Úvë?†$ì?D!è?ìÑÉ@ôö@ {Ø@Ù??â^à?ÀT¥?µ‹O?³"ì?cIÂ>õ×m@!kÅ@‡ôÔ@21Ç?³¾2?³°?³¨´?ÄØM?⌙?Ê3L?–p›? ê?ƨ?¯U’?H<¨?_òå?…7ù?uÅÈ?NûÓ?_˜`?s$y?›Å@1É@#Û?¿j;?¿„?‘V?¨Ë8?Ê-Ê?Ä5Æ@*á‰@/Ðv?¾Ù?²~D@3Èv@Eí?ŽJš?0Ã?GÃú?8×?¿ôž?éŠs? ÍO=¿ ?ëf@.O§@÷&@/L@;=@æ‹?ùσ?¸z–?—|?Tψ?›ƒ«?ÿrÀ?ÆX?{>?7? ³`?sVÖ@ät@ Œ?¨Å~?­l@ + %@F?Û«:?Øu?ƒé´?xÿ?jûR?]H!?vV>ëGä?ï¢? à}?Ó±Ð@q@?ÒžY?°&Ä?°­¯?µa¹?©Qž?—8í?˜ƒ?œhy?§“2?µ1Æ?¤íÑ?–Ìž?­(ó?Ím?²V;?‰¢±?‡ÿ’?¬N{?²þ?ꕆ?íÂþ?kÇ*?il>—›ï>š¹?†eë?¥’‚@>¡÷@bC@T7H@KÅ"?Ï8j?f?˜Ìo?æ\`?çúy?ße?³X»?~‘?›7¡?Äïx?¬2?“ŠG?Ýl?–PÌ?œè?²—~?¢šÑ>ZÄ=±7?™m?¬¦u?†ðy?…7w?Ã?Ö?¯?²=?¥¡??_U+>æà&?}I[?ÄA—?vƒÞ=û®3?V^?æÂY?ñJ\@´@ÇÞ?æ/÷?æ%?©¢>ùt³?Ñǧ?å×-?–ê8?báª?Ù +[@ +9?”²¨>ì,m?©:z?ýŠ?åKË?Ôm?Å/Î?«À[?£Õ?abb?5g—?(Ö7?"Ï?ã O?䂯?}È:?dYX?7€?35?²Ê–?×±¾?êB.?ü¦¢?åŒ+?Þ½t?ñµ«?ð!B?ÊËŽ?dÙ?x‘?‚ˆí?Yy@¶=@›Z?ÏGM?»þ¿?Ø­ý?âÐù?£ç?yãå?hK{?dz¯?‚$g? h?І9?ô2ö?Ó@?¨¦ø?—m†? +¡? 7‰?>–?TI ?aKÂ?W®²?§ºM?Î?ºõ?³ZI?ÂS½?ÀÍ*?´ªã?šy0?²Ýñ@"˜Ö@ ’q?¦LŸ?¡4k?>Ha?W±?bû~?`Í@ O@1š\?Ø*æ?O³e?/µ¢>à‚q?¹¼?»\?MIs?Ëf¬?¶x&?ÛâÂ?Ñ“?—?„¶6?tA?aqÄ?Ë7Ë@™ü?Ång?œ¤j?«‚h?Šuc?¢g@+@SÂ?"¢¬>î-}?ì@ñN?Ì)o?µ÷l?Ñ-Þ?ÞJ?Ïȱ?Ë`5?ÛF@šš@­‰?]ù&?gÈ>gY>†…;?0¶?%‡"?\]ê?{x?­S@¡·?òN?Vü×?MÏ?–ýÈ?‘N¡?†ø?‹3½?(¢n>ÚNŸ?PÔ:?¡e°?cðH= N>Ǻ?-¯²?DTË?…O?jóê?@¦>ÿ€Ä?dKˆ?¢uá?“´°?|z?|ãù?$>Þºý?»•÷?âuÎ?ï,‡?á",?u`æ>öqw?Mêg?¤pµ?£ÂØ>×€>×`@àl@'2®?÷³T?ÖÕ?¸1†?˜Ô?™vt?Äê…?Ûb?A’Ú?dìó@v•@ +Ò?÷¨?ÍSÞ?çÅ•@?ÆÆë?YÙ?@’@v +?—7?Xþ(?5²Q?+ë?›}D@B@uä? Îl>ÿYÎ?߆ù@ÔJ?¥^Ÿ?Sv2?D+ê?=`¾?hæÒ?¤½ž?’n?s¬?Yº?T‹y?_S?¾Â@#‰@>'?ú_@0ê?Fy:?Dl¢?±“?ÒV +?ÒDç´q? ™ ?¶°Â?È o?ÑŠ‘?Æ¥€?{† +?¦? ñ}>Ò¾>Ò Î?ŽœÍ?—•„?iN?¤õ?»Ñ©?àÁ‡?ÝŸ,?µ«z?¢ý?ï×?—N@Œž@3At@c?ù^¢?ÑÎ.?„b?ŠÄ»?ƒØÅ?n>3?îÅW@öf?ƒâ?c?‚µ?ÒïT?·t?TF?T¯I?VNu?QTÛ?_äe?rà/?‰°?‚~§?G'·?$Á?;’%@<–Ä0>öi? +õ>?e?õ?IËÆ?/Lâ?A1õ?R"$?YÂ|?W$?Z‚ö?`(U?k2?S¦>?¶ú ?°†(?Ÿ‹ð?¥êæ?±oß?Èr?,šJ>H´}>²´>à“>o7;&€=5ô>R)->ä$?Y?{‡â?x>?Q‹>Âþb<_0>˜Î?’kµ?\Ú[=]Dœ>°’É?)=Ò?êI²?Á|}>ðŽ¨>ñ…a>òrŽ? gn?hµ>P{ë<·|ð>­¡š>ú×¼>©5†>gЊ>¡ÄŸ>¾\±=.<[:‡È”=DË\>$9=™êd=M©x>ûCþ>©ÌÓ=10= ôT>gÆ­>q¤?åî?†MÀ?;µ?‚©¼>â®Å> -„@2ñ¼@8þk?^Š>Iãö>ñÔ¯>ÇÍë>ÃC>¾­Ø>¥ƒ=›°@=±?V>u:x>¥ z>On—=¤½>àX_>àÝæ>®ƒi>¼›¤>¡Ï>r'8>Ðù?)µ??‚>€Ë«>‡\“>Aïï>&š‰>Ù>y‚>öÒµ?Hq4?6¹ž? ±/>ú >f >Fkô>èð>èí”?™§?ª.Ž>½ñ½9.l”;ß›€<îr >cÞm>×°=?Qß"?ÔU?¨+Â=§’å>!Ké?ksŽ?k”/?Mо?HaŸ?ÆÉC?×b ?|äv?=P>ÀäÄ>S¦Ò?¬o?kï?†LÎ?‘¼?K·¾>?x>h‹>¨.Ã>Ï· ?lË¥?aÎG>ìÕ…>ð›¦?—üÛ?œÒ?úál@Gy@2m@ +!?Vì>ä°7?¶Ÿ?ìɉ?¢Ò?j˜?,3ò>üa?/ÓÀ?^ï½?8hœ? ·ú>þ¡>º’>´H >®>Ì!Ë?"ë?)¨? €;?'÷Þ?;ï>?;,Í?´ÖÇ?³2?r —?kÉë?ë6?—ä"?F8d?!Á~>Ãe‘>ž÷,?´ÿ£@Ͼ?¢Ñ®?5¡C?aÈb?€ €?IÚÅ?Ì1?Iu ?¦n…?˜ÝD?f°"?éé?¯áÆ?”¢7;Áop<Ýê=HÙP=¤?‡?Pb?¹ ?ØCI?ßÍÃ?«¸*?¢o7? ü6?ŸŒ6?‹±”?‡OÞ?‡Ôƒ?”(?…!k?i\Ý?iQ†?iDÎ?ƒÔV?Cë?p@Ê?Bh3?‡´Ï?ÐÇó?¨óÇ>—´Æ>Ï‹ú?÷?Xz?‘=?“ÏÄ?Áø4?ÈÞ+?‘†‹?ƒÚA>Ó¬¯>IL?$´Î?_K=?)%>è]?4!?h?á?lðé?{Vé?MÇ?>è)O?T"ÿ?Ðp¾?µ«“?RËy?G ÿ?)Œw?/ „?4ˆ>?;4g?‰vl?…€ƒ?%ÏE?!÷Ê?6h[?4€}>¹ä>l¨?)'?pæT?(ÒK>À Ô?K; ?ž‡D?ŸÛU?°gl?Ž•>è?ÏD?h ?† á?×0T?Ë°¦?Ÿá?¢Ÿâ?ây?äÀe?âJ{?æB?è7ï?è@»@ Éš@¯T?÷øò?èYa?£V~?hjˆ?<´î?‚?s†?®j}?®rë?®y?‰—>¡ +Å>Ë??_S?,3Q>¼˜>ÓoØ?]¹‘?d&á?mÒ,?c„?4°†?7M“?:$†?<ýQ?ß±@_t?Ô[>é~–?.mö?GÍ?w¦?™ˆÔ?¥²­?¯^›?ˆ¿?#¸?& +|?`¯Å?’ ‡?ê"û?Óˆ?j‰Ÿ?•R@/Ðö@'ü‚?j ?jž×?j®²?j¿9?¢$%?£;o>¯§J>}‡È?‰VJ?‚?}z¤?xè?X?¡RK?ê7?©ˆ5?‘2Z?fðû?Iª?¨†?’òè?„I0?G?´y?Š+›?K„?†g'?Ñ©Í?¸7¸?42¼?r6>ì¤%?%Å?©ˆ?²„3?ë¾Þ?ãxà>í +›>óy%?´)0?¸H?©ËÊ?¥vê?¾R?Å¡@ Æy@@}?q¼ö?5å†?Œ²?œÓg?‘:æ?(&?¯<?Ø?KÍ?iuô?%ÿÄ>þ˜[?Ð ? Yi?FLJ?n·g?nÆq?nÕÈ?—sT?²zI?WŸÿ>7&ƒ?ƒóÎ@}ä@);@L™n@æŽ?oo?ÀÃ@3¦$@À<†Ÿ€?v@×L@ 5?Ýé&?Í8{?Iû?­Ê‘?ó¼7?ëŒ?p'ù?€œ ?êã¾?ð?™Âõ?œ›7@AÏ@ ›a@E$8@E·&@y€@€„‚?f‰Q?MÎþ>Í‘à>¥×?©O?ª‚Û?ñÕ?er?[Oé?k‡Ë?¬Ñ ?´Ô?‚Ge?n ?ÑË?á(q?9J>ñHë?·š‰?×Tû@ è@mô@´@%×?Gú>Žß÷?”Œ—?΀¬?—ŽŸ?^ÉL?»ø¨?äò­?“Ù5?HV\?£e·?Ñî¨?ŠÅ±?( ¶?—E?ÒÊa?¿$7?® ?Ó/N?ñ™–?ñ§?í'Š@ÚZ@a¾?æø£?«c»}"?²ôÜ?§©?…Â?Ž%Ý?€¯{?Œm,?À3Ç?³ü8?¡§t?¥ +£?ˆ;?—2I?JF:?Y|?çæ)?í»§?«ˆƒ?§3?ô:h@? ?”¤2?mXI?ˬC?ÜCœ@^@1Ñ_@gE@¿@Kë@ ‡ï@ 2µ@4?ìâ ?ÕPO?¾@”? ‹q?¡=?•V?¬,Ô?ì2?ÛÊ&?±lË?œ³Ý?[Ó?Qm?ø†ü@ŸÐ@Gu@%ù?^qm?kî=?–i9?™üø?¾¸?¨$ ?˜S?®`?-pý?.?ºá?èþ$@'WÍ@;É8?©mº>½—m?FlÑ?ŒN?Ö—@£6@¸P?ÊgÅ?íŸë@0v4@%I½?âðÀ?ÒÝn?kà?ýg?é„~?ån±?iaÊ?iM$? mó? ²Ú?-–²?,Uœ@(ÂJ@C³@0„~@2/f@ Ø?½À?+ê?hèÚ?”ìa?´ô?¯]¸?Ÿ¯Ï?¡®‡?¶ÏÚ?­:?lUÍ?p`ì??Ôþ?x›³@9ÃÞ@53?ª4Š?­«?rVû?p¬?i¼©?g.—?ÉsG?ç±?Û³’?Êc2?ÆÓl?¶ƒ@ +N@IÉ$@BÖ?Uú”?¥'¤@@¸&?¾q|?»±¶?[ ê?vð ?’§ð?ŽT?ó½Ä?ø‹m@æ&@ +eÂ?Ń?ª€'?«»?¥P/?u…ã?S,Õ?–>g?À›œ?Æ·ï?Ç>/?×û[@÷²@µ€?¡¹?§{c?âoc?äg?«™©?¢Tj?ý Y?ü…p?öŠ?ÿç@¿@?ª¼Ù?ùt?§t@([n@Ù>ï‘k?QBà@¯/@¹@K@ õ$@6·@5Å?ïb.?â»A?ÞZì?à¾/@¿æ@"Cû?Ö«™?bB>?µÅ÷@×+@ dÙ?Ê5"?Å{¨?}ɇ?sV'>>Ô<áå?Ã<°?Ôa?±Åº?¨î³?_8_?%1q?œ­/?àèç?û]@i@þg?ª›Ú?¤ÓÎ?lºÍ?vÇk?@âc?5fl?&Hð?/"(?­(?ß"Ò?ƒDÐ>ß¡?ƒ'?Ø„ˆ?«€¸?Eð%?„–l@ɹ@@nê@Â?æ,?ÞŸÏ?Ýé¯?ÝAo?ß ‡?è´Ã?¬*?3ïZ?:®?]ݹ?‹•@îù?ü +ð?ßÍa?ܺå?‰Î›?‹g_?Ø£k?ë_0?Þ|R?ä?ÄÜ%?‹d?ª·?äΘ?Ù1? „’?šî?œ\5?‡q±?a€˜?HèM?º+?°6%?¼lø?Ú0þ?Îîœ?îð?”Èz?36}?Iˆ”?Z¶†?Zi¸?5¦£?Xº?, w?Yþd?w¸?‡¦Ý?[L»>Ù€å>Ùb¿?½“ë?ÈvÊ?š?x\Ÿ?X>è>>À'‚>UK¶?¯Î?¦•&?›?1 ,>íM-@‡œ@ æ—?Þ÷µ?“°?{Å?W9˜?x§‡?«cu?Žf?ypF?)È?È_Ø?Öou?·ß!? §§?Ħ?‹O?Xi!>#£=­Š@ @Í@–P?QÙ>†ð–?YG£?»Æ¯?Ãà?”a|?‡èÆ?f¯Ò?Z”u?¿U?Ë[_?‰“?3-‰?yfð?Û×?ä â?S¿+?S¦?TÁ@?\JG?Äý2?àI‰?Å¥Þ?¢XR?–(?Ú?ìFì?Ó%?Ò^)?‰w?R«ž?ZŽ?®2€?Áx?À¢ª?´Ië>_"-<,ÿ¸?Ùõ@×A?ÊÛ’?gèâ?xÁ¬?1R>Í\T?@={?OûÃ?´o$?Ñý;?kÙð>âþ>À—è?aö»?<€?oÖ?X–]@‘I@Å'?Ð;ç?CÒ?¢Í­?È7?ÙÞu?RXµ?RdÛ?”¥l?¶Fû?¬ ¤?¡Äu?œ-½?Rä¿?d?ÛƒÐ?ÕY·?Óý©?Ùµ?¬ê?-Ú"?wÐW?É´ +?Ëy5?uNÒ?\B&?!1?™Gh?±Ã?®cw?”’Ž?—f?_PÂ=wNì=©ó¥>Ò`$>ºˆJ>Ö©¬>×¼8?G?‡>w?dÔ!?Lî?%ëÄ?Y»#?>A? ‡?! N?_ÄÞ?€Š"?Ü$ÿ?Üšè?ò>ò„‘?[Å_?1ó?H·>LžÖ>wô>±_>YŒ‡:y–Ë>¥ æ?7 >íQ”>IÁ=>›Èl>å‹$?dü?fïÇ?5tˆ> R®?E?WfD?Hÿ>°¾þ=—E<€7<Áà >%è=éí">1 æ>nÉ? !o?ˆó?-Ä<¢+>‰>Õy(>V@>Dyë>‚”>¢K$>²=äm¬>þÄ6>÷¨Å>Ù*\>¹Óx>š) =aÝ;œc:ÖÖF<$7 9ʈ=¢Œ´>3 9>8>d=…G–@0ëÅ@5˜f@ †«=)—“>Þ<¶>Ùue?f€™?–&M?qŒZ>µ1B>°D#>«FÂ>¦=ª>¡#Ã>œæ>«Å\>àQe>ßÐW>‡QØ>­þ>G…æ>W×Ú?¦ì?c©à?8™<0">³Ÿ>•»c?5iV?7¯ý>Ú¹&>­÷Í?–}?Pã?káu?”ϲ?ŠÀ·>è®.>è"]>ÞÿW>å'Î>é”>çر>5>ÿü1?]ó?F¯>”,¢>¹§">ºb#>ÅSŠ?T?a>‘ .>œî«?"Ð;?4º®?”¨ˆ?——?]hŸ?7F?‘Ïò?©~?Šw?€,Ä?E^>ì²P?»˜?GW–?JUV?MV%?EŒ&?ù§? S? +ìÞÁ>ìàS=mSŸ8Wq>À}>÷q2?QBç?l¿N?Z>챋?ìË>쀆>ìw6>ª[Ö> >˜„ ? ·ß?,ÉZ?;Ç?fê?ÕÎ>~ÒÂ?€Z?£k >ïò =¢F +?>´ï?šv\?Á ?YPÄ?/M>ðÆS>ëŠ>ê—ˆ>›!!<¤~ˆ>Œ´~?[“v?€;†?Ð!O?Ät’?œßâ?—Jñ?E;?ð?„Î?…C>ï]R>æ=A?¶S? ¹D?sO>éc˜?b?+ËÔ?S_ƒ?i-ý?†6ÿ?¶?‡ÜR?2…ž?›¹M@a?Ö·!>ÃÝ>“þ!?h°ø?S×+>¼¾>Å…(>è„c>êŽp?Ó|'?ÛÌÚ@ +.@L>Í‘Ø?,:þ?g3 +?˜’H?ªÞà?©vC?¨3?£-­?œ…R?¥‡¹?¹‚™?”%?€õ?eµ÷?Ýài?»)á>çè~?!-?­èP?«)J>TtG>Tí^?"Õ‰?.¦ƒ?]B•?[WÕ?/ŽÔ?""j?5ü?g¤?†º»?³ª?’ï ?M(ˆ?ö>·c?=?†µŠ?¿¦p@:] @ °Ø>Øp?»¦?¬à‹?«U;>ê¿Œ>è>ðÛñ?¸æ>EÏ,>BÎ +?°4?!ì½?V¸H?hJ|? ×&>è\)?ô'?3þÕ?ƒµ?®^‹?f>,þ?;z?¸S?“:>xÀ˜>ê¢×?Çɺ?ÁŠe?áÂn?Üþ†?$íW?;·?uB?¯@?[÷ ?iDù?%ªÎ?‘ô?ÉõÖ?ý¹ ?†)?hž?vÒ$?ªË¢?Ç®!?æ…·?…Ó½>'6?>ði&?…?j.Ä?©~@/¹<@ûª>RÕ>µR¥@ˆ+?õœ+?0øÿ?7ø>°ÀÐ>’A?¢}û?°C?Lø>ë ì…Z>ò¥>öP?"X?±˜µ?±Ã>?­ä’?¡<«? +Ë?î>©>˱€?¿ê?0aU?`š?e»Á?‘?’¯?sü?T7§?B%û?J¢?a¥Ç?n´Ø?äˆQ@!÷²?çÎq?‡À³?Êâ,@12@d~@ª?à³J?oPM?Q ?¹qx?Ê)˜?ÚI@á‹@bxÆ@A·q?ï½ý?ÐÇè?oÛ!?…¾l?³öù?À¬[?èÌ?Õ©&?™ñ½?¡??Òˆ”?Èl³?Ÿíö?«??ôl@P@–?ú46?h®?Æ? M?•™G?Š‹?†)Ü?f r?jZó?¬è>ñj?ä7´?ð@ÒÑ@Ž>ÛÁÍ>ˆx?çªÔ?ü#ö?vÐ;?YšU?ÇUâ?Ýv?àèb?äˇ?{kk?9ÅÄ?‰n?•U!?Äèœ?ØÈ„@Gâ@ •r@ M=@[F?—Šù?X'ý?³=?µ.?û©=’H,>¦ñc>óÊe?BÙ¦?sï‚?7ù?Ír?±.E?ú‚`?ÔÕb?µ>ð?e?\??oƒ ?z.Ë?¨Ñö?Ï?¤ ?q»?ÁC@ÃU?¸n²?#Ö³?ƒ÷»?Ïf×?®ÏÓ?q—ï?¿J@ù?èàd?j ?Œ»3?µ!W?´øM?²Þ5?å©Ï@*Û¾@ W?šû©?†ý´>ñ]?€ß?qR?I ?›‚?’;Z?q6?f…?>y°?K‡?q?|*?¥Ù?¥ÒÏ?Ÿ[?Ÿt­?e ?€R˜@ˆ$@…@¦€@:?©2"?¤Ë“@g ”@_óR@Mv@Â,?©Ë?§H@ ¯ö@Ûò?ú?÷äA?Gô ?+*?j™«?„Ö:?Æ—:?Û^?æC0?êÌœ?À$u?³gê@VB@2à?ø Ë?ßñœ?©ìž?’Z?Óp?òñ2?×£j?ËÍ=?$?3V•?i ?„¿¸?œ?åŒ?¥Ëï?Çí”?ª•?@í?Av’?q®x?n™'?p°P?;” =Û‡’?ïä@ÜÊ?é ?œO8?’Óm>ÄIŸ?…ý?çÜè?Ê_1?7¥ð?›?Ú•Ÿ?ßÉ}?†öv?|ú™>•k%=–PV6…œ +<©|€?” ‡?¹`\?̶?Û$å?*ž?Hú’?“ÞÓ?«;?Ôù‡?óÝ?Ò?±X?¬{y?žtr?Õ*É@ž’@Ø›?ëxg?³HK?^­?O>ëÍQ?æw?–J?¢K˜?Ñ]?ãNz?ꃡ?ÓÜ6?¢‘ù?›¯Ò@U¸Ã@^ÝÎ@ü]@ +èÁ?ó ?êǶ@L…Ö@`A ?óA?²I‡?B7*>U^?$Øõ?j>C?ù/@<@,ƒ+@Ÿ®@¿ù?¹ó?°ïŠ?¨£ú?ÈnÚ@ÝÞ@WŠ@@vè@2ìê?Ÿ¹-?z @% @Ò¯?šS„?ŒÊ7@5ÇX@O¥c?ñ?·¥@šV@,?ñ_ô?«°l?«?®,«?®z?®x?˜\.?gõ2?ƒZA?šá„?uR>ç°±?R”e@_1Ã@\n‡?gh¦?hY@:í@672?¹Ú¿?-?¸Æ¨?Åuc?µÉ?»|½?øqJ@Õ`@&RÊ@3óR?ßÒ¦<¸û^>ž@ ?®y?“X?¬•á?­f³?¦­k?œV?ÈAà?Ãì@œÛ@8?Ýv?ØÁ¶?Œc?euí?™0˜?«ëï?V/ç>åÒ>ïª`?Ž?X^ª?¹D?Íp@NJ@mÞ?dŠ?dq‰?eWl?s9 +?©S?«!+?ùs@Ù·?ÚŠ?ÉÞë?Î_È?ÒèP?§Y•?rÐú?£ +l?ãg%?ò§@@9?ßµ»?²ïŽ?Å,ü?Ãù¨?È¡Í?çq@?þ ?ñD(?½h?©æÿ?±žì?Á?Éôk?¿Y¤?©‰“?¤Ðñ?¬† ?•¹Â?£o?ÇE?¹ë·?â?N?ÝXY?ßý?áQã?ÔÀ?Ì­‚?z¤?$&³?§’ß?ð£Ï@å±@×o@.À"@Bÿ@&Í2?`SÌ?cøè?·H?­ä?5;O?uo?fÖñ?SŸ ?–ž>ß‹•?ˆŽè?ß]b?Öd‹?½|¬?¿5£?ù:@ÎÝ@@ ­H?ôqÑ?ã’?³r%?ªàö?“h?ŒpÑ?cÚV?!÷?L@?‚g7?ª?þ@C9@P@ +ZŒ@Ä}?—?] ?ÌÿÔ?õ”j?¼?‘ÞÛ?~„Š?"Œh?žÄ¸@\& @H ’?mÛf?xºÎ?”3°? ¨É?í7á?îq?Î j?Ì£¸?À×É?¤Èc?§•†?¤%\?žÈ¸?/€?#Äæ?-(?:Z_?Ÿ"¿?¬ùÕ?R94>âú5?d’?ÌÇ?¹!F?bx?Ke?Wô-?{ÕÖ?æ@¹Ô?ŠU >Ø£_?I ?‡? ƒ?i½Û?¨@ —_@ +›G?äñ¿?ØË?Ö7â?Ëÿ!@³i@!Ü@³°@!+ @LH>0ö=!eÃ>´± ? óg?mÛ? ý?”:þ?i(?¿>Õ¦›>ÕŠ?š ¨?£ýD?d«Ä?!š„>Þà>Ƥ?d8¦?õ½g?ærµ?£ìè?Ÿ|ª?r;À?wð¦?iç’?Sý?e¥’?{ÙÍ?o²m?c‹?W‘Ç?˜_%?˜ØG?mÄ ?wÓ?«‹?Ú?É×a?(i?@aý?šä?¡ë?Ô‰€?Ùg.?Æü}?´Ž¾?­ÂW?à^ð?ò²ý?ÒÞ2?Ì«?oþW?n’ƒ?Id¨>Ò¹?8"Å?àdÍ?Ú0—>×êå>Ô1²?Ê'?ú\?¾ª?`3ô?c]A?ÂQð?È”Í?ËÑ…?Ñot?¶G?¾çÖ?š½h?R +»?G`â?1ºæ?>iY?Km?RG)?’[_?Ш?“Ò§?†zY?€)©?s¶…?~@ ï@åd?‰Û?~©3?jp"?S°Ñ?S×8?TÇ?v¨ ?Í{»?Ô+Y?Ïíó?ɤ?ìK¡?òV˜?YÆ?*Áì?µ´>ÖPä?D“?–<ú?‰6‚?xGN?^‹>‘C=ôúy?…ä¤?ÔÌG?¾r¿?œÙý?‘b„?wÝV?J§>ÛKÄ>ó é?ÌÒ=?Ùõµ? +õ–>݉w>Žm.>¬qœ>Û„Ç>ߎ>•`Ê=Ï’Y>l Ú>Ø‚˜>ã(+?*B>øe>S–@>Rºï>´p!?µb?f±ÿ?z®"?rÔ?Eײ>Mñ>î&?žYf?Œ)C>í^©?5C›?£* ?c7 >Ÿ©>)Ó =[Û¦=ÁŒ?<ì?t*a?eã=?[<ƒ>YL¯<$uú>þçU>ÐÌ4î->½ƒ_?h‰=ê¨> gþ?õ>a\>5áØ>§öõ=#á¿=ÇT=@ˆòN@?÷¾?ïí?Љk?Í?„Î1?h?7¢È>Üc?4P?ŒÍ?ŠY¹? t>ß)?9ûÅ?€>À?MHW>7¼a>CÉ<«•P?Czs?Œ-³?.û¸>;ú1>_FÀ>¤Ù<>™w5?‡¿c?ŒMì>ÑÔ=Ô7.>¢PÊ>çš³> Z4=é'—>E->诣>ËLM;k€¹›>Ö 3>CÔÀ=üê ?ô??H®>ã^b=Þíl>­²?I“»?ÔV<öÞW>×R>ˆ­ü??%ƒ?-9?”Ï6?ÆŸù?ÛB?”ý?P ?·g>ì´k>Ç(>«)>ËP>ìÒ(?-9?X&?Vc`?OŠu?yÁ?ßó‘?×x>ñÿú>í9­>ì׈>êgÝ?_ó¯?e¦1?£ÂÜ?«x?Ëšó?Ð+·?Ž`Ú?lš¼?[¼ä?M´@>ÓÅ>ñ/=©üÂ=f«>AÿT?@à´?Õ™w?ˇ¬?Ð[[?Õ>?Ñù?Æb¦?‚Úè?…ÁÝ?ˆ§Ç?8l@ ‘@Pz?‚Ÿ+?kW6?kC­?k6à?Æ@?P‹>(ÊQ<þ›¾=;ƒ»<ÏÔ? š?jªß>àM¿<-]?lŠ?£)í?ŽŽˆ?jA?4‘l>ž=>Ú“ç?(\?9­u?iÞr?iÏL?i¹?fÔ|>—À[>Žð>9 `>K¿o?&Ç?0¿é>þw>é26>öûO?Š?Ž–?¡p?)Å?Ã^i?»²g?®–?…MÅ?›«?)ÊT?h” ?=b>4êZ>YÜ(?5Z>ÿÿí>èUZ>í5ä?gR?h3`=z#u?Á$å?ßß>?¸Žu?®ã? íf>g-Ÿ?”jk?ÛŠ†?ªæ?ƒ«?m‰Á?D +Ï?t?±×-?Ÿìw?8ý2?8¤¾?\sq?t¢„?‘6(?„i}>çO>綂?s Ã?nL?‰ð¹?‡FY>èØ>…p? í˜?+šè?¥}ê?܉Z?f°¥>')?JÀ?Ö§å?³­Ê?aâ?%ÿÇ;ãLB>:•ƒ?gßH?uÿ³?ª³n?¥·’?_=Ÿ?\B?È,(?Æ´?ÁG>è[?±2Ù?ÌR?ŸÐ¼?Œ’p?_öÀ?A&Š?@Å?M†ã?UþÌ?EóP??’?_>?4Ïû>u‡??Oó‹@"+_@¤ ?÷&ï?ðã¨?‡??„OÁ?HJ?Kæ?3\ø?8…s?>-Ë?CØ2@¡e@dš?¬%T?iq?oh+?m"I?i¬Ü?iª6?±K?äü%?®tô?aÌ_?c †?jk?]°~?Vô?wš±?‰µg?w?Îì¿?Ñ)?³*1?¬"p?…E¡?o™?S¸â?\h*>þvj>ë¦?‡·í?•/¿?¬3?°tê?d?*k@?„Í:?šz½?›È*?¡]M?ˆìt?kЋ?Süw?F03?3C¼?Øj?e i?±+ü?„ö©>êj?g&ó?ì‚ý?¼Qí>þ„ë?N?ç~o?ÑÈf?\)ÿ?k j?½Jó?½¢=?£M_?£ù?¦vÚ?ŸQR?ÄS?#³¥?¹4%?ºn«?Sm?7ÙG?.®Ð?-ë—?k·?ûé?ì,†@}Ö@ á•@ P?|X°>îy“?iñR?Ž +Y?£ÅŸ?³ ³?ÊÞ?àh?«@ ?tí?—Ê?³L½?rLè>ö¬®?§“¹@RQ?ܳ\?ˆþ™?Ã{\@ÝK?àŒ?T¶4?I7d?»v?^O¬?³ß ?ßD @&ÿ˜@B…?Òœ“?×bL?ðl?Òv?'0:?#ªB? b?CÒS?êÛ½?äå`?pwÓ?a—D>\y™>ý ?厰?á+é>é7y>ûeš?´s¡?´!?ð;§?ðËi?Á Š?Ä”u=’Ð:?T.3?t³?º*ñ?·b?ùÑ)?ÿà?ûñ‹¦@G-@YŽŒ?ô&ð?ˆøa?¤µG?µ)ž?\°ü>ñ‹a?€ò8?µ'|?ƒ%7?.ë’?’GÂ?ÓË?´|?‹$?€Û5?q€ +?qz?q|,?Íòõ@l?É ô>öa˜?\pÔ?µ â?ž·î?|œ?jó\?\< ?s•?qKy?f]›?JÕ0?S­?q4?kÌý?jí+?tq5?qb?l“´?Q<×?bú?›;þ?“Oœ?…“?{*p?5½¢?#žN?üÇ?ì?´”Ö?·zA?¼nÕ¦2>¶# >– +?u»ú?†s¥?µºÀ?¹ŸF?+ê›>óX ?›ã(?¾ðR?¾@?¾¬ê?í°Ò?ùÃø?Çy?¹Ÿ?¹0÷?³fI?[åø>ïî?ªRÇ@ë?%ö>îßQ?¨_?J„?»âù@,ü@¤ô?²åØ?\õ?ni…?DÔ+>ÅØ?Jn©?þ'„?ë^ÿ?œ«õ?Þ?žhÍ?³€Q@T"l@Mg×?Úü?ÚV?¤˜|?§Ç9?²Ü?² æ@-—í@1ñŠ@GM²@?M~?jŸƒ?!ìh?.i¬?:ìÐ>FÔn>” Ü>î®?‰øå?±\Ñ?¼ðå?ÁÇ?÷[@¤Ñ@@Ém?ô$?±7¬?¯ªM?¤a ?~—â>ë­·?ˆˆ?k‡™?ƒµ4?¶ìï?¾ôç@/@É?Å»?̵a@Þ@#­?šÚ”?|çð?Ü¥€?ê©û@ÂM@'?‡y†?Š;?6¤P?<ÄÅ?.´¢?0·?ÒÛ¸@!¯ +@ •^?Û…õ?ßn?⥰?­,>êì¶?Raó?ívt?×Ô]?}4l?$é?Ö]¯?Ò»þ@óÖ@$‘?*’?™âK@ƒL@ +Õx?ù"j?î ?ÁkX?®]?¯zv?®1¿?®$Ç?®d?èÉ6@ od?ÏËŸ?gÕÇ?Q$?ø†H?Þú?X̉?A?@$Cº@"åÁ?gGZ?g¡?@@(É?•vø?‡Só?‹Z™?c¹?mðæ?IZ?#"C? ¾.?D˜”?pG1?¨ŸJ?äÛk?íÊÇ@Óž?ògŒ?Õ–“?Èï?¤²ð?¼ +­@"ö @?[@ ¥}@ÌÀ?õ)?`W[?eH^?e=Z?o/­?{ Ú>õª> Ü?3Œ?eF?7Fž?ï3?ƒÍ´@3*@yC?l2Ù?yâ?Þu?Ôã¤?$û\?4½y?ÔÎ1?ãéi?àªý?ÖöÍ?¶ó±?ª¸r?®ÚÀ?®@-?ª¿?¬8ì?Õ @Ñ?ôg?cî?ƒ‘Õ?û:l?ë¼L?7ãy?$†ï@=Ü@+ŒV@â½@ @S@6êk@D©)?åm?qÖß?IIã>áîS?™?aÉ3?™={@&N9@&¾Ô@ £«@ +t ?ä°?á8Š?¥|?¡¸å?”-*?†# ?àij@Iš?ðpR?«Ë?îK@D[±@.÷2?™½Ñ?–ag?À¢è?Å©8?±ÎÇ? ›?ýÊU@K??•ü >ßr ?hÄŸ?² Ú?·?´?¼fú?ÁÂ?¿sf?Á @Q:@å-@"db@&Ê@"M×@7?É €?“ C?caú?"ËO?LΚ?— +¹?•¸D?oz?sÏ @ +Lx@ +=¢@ ï9@rÈ?âS?ÜÍ?¾—!?œ=ä?°æü?Üa¤?ÜC³?å1?éæY?[ø?[Ö?ÅÍ}?¹_W@ŒÞ@Âl?ÌÏW?g é?†Ò?¤?-?˜[?x¯?†[?¦G|?šõ?yñ ?Iàá?í¤l@ ‹½?í•Ú?Åìa?´ê“?µÈ?©®e?aÔ6?wQ¼>£IE>=?O?>F?Zà?gÍ>Ø‚Í?<ûW?Œò?–”»?£"I?-W@v@ As@8ˆà@6N2?ê\”?±2l?êeþ@"×0@%!Ð@Ì“@ ø? èŒ? OÕ?—§¯?Œ2C?}± ?€ùù?K'z>ÕÁ">ð1i?Ìp>턯?œ{¢?Ÿæ ?–Ó?Žf‹?œÖ?ÓU?•ºï@a @ È„?ÒÒ?ÒŸÁ?sŒí?T?+ì„?Àð?Q*N?Aˆ?–M×?ž¢ ?žv^?dL ?g›á?“Ø?>_?—ú}?°‚y?‹PA=E79;Ì;ú?ø‹?øW@%í@ƒ*@z>@pa?æE*?bÇþ?VŽ³?œð,?£=@~/@*?C>Ñæ¿?? Å?ò‹…?þó¦< Gá=ÃÀ?‡Ã?¾z®?°Ü ?¢í?¦Ó?’bØ?˜pÌ?Ql¢?^«F?”6±?d ?‘RÉ?E?Gç«>£ê;>½Ü>Ór]>ÝD*? +¸¨?&ì-?@p×?Yöê?„2?ž!?¢Y]?Ò3ú?ÕÂo?r€å?SK¬?Ss®?S˜?SÀ?Së÷?Uç?TÃé?`¯?%'ç?Jð?¹È?ÚR9?½í? M?sý^>×*?—c?k|??y‰ê?¿¶ ?¹Q?Nä?f›?AÃâ?Y”×?¹¼À?ù+‚?És?†A¨?€+Ú? Ü? 9?Vþw?^ø=åYY=Îcº?‘i?CŸ?5î>ߘZ?3ÁK?`¶?^ñÈ?Rˇ?†NÙ?¡ò?J“E>G4>c>ÃI>ïìD? 5?6…Ð?MÙÈ?#š‘?!l?‚ž0?Vø>í„:?9H?‚ÙÊ?^»Õ>ñ&>>¹9n>.^>Ž¡>õÞ>Zãú=¯©`>éQ ?&í4?>Ïú<³Ù¡<ùHÆ>õ[½?àS?d†õ?Õš>¥Ò[>…ç>¡TJ=u" < +ið=’¤=T™<>,V¬?O…? ‚?r7= >æÌQ@W‚ì@B~??þõ +>õu¼?·‹>ôœ>õ«>y^=›->—ÕZ?vžS?z>0>A ½> Šú?a9?¨&Ð?vØË>ƒîZ>|u®>põ>ej{?rY[?î?[sñ?Ù]?5án?e9?p_z?y¬Y?m/\?%Ä? i>Ìп>®t?÷©?Oy?1±n>ôã·>²°Æ9Ö >ÞÅ>ê7×>ÑÂo>ijØ>÷žé?”O?&±G?,¤Ø>ð,ï>•êµ?Âè?^‘?. s>Gˆø>FzÊ>ïÙØ?ËS?d«‡?l~C?“B}?5?‚«ƒ?]]ò>ï‹Š>awü>¨«+>ìÏ>þ|¨?GN>¨©’>Ø7>ìÛ{? …?lØÖ?l5µ?iYÿ?aFÔ>ÿ¥r?/ò?xù?=•?á˜Æ?ì£`?Öøm?ÎÃ?Þ~>’*ú>¤¦>—ZÀ>ìX? RU>À^¥>~œÕ?ŠÏ@#Ý?УÑ?køã?€¾æ?š „?Ob?E\œ?.Òö>ëžW?YM?kyä?i 8?Ud¥?Zµô?«J?‰8a?b`_?cÈ'? +•™>í“À?•ýÂ?° o?:½¬>ñÖõ?:g?W¤e?*8¡?~¦?BSâ?j-ì?/D>´¿b?ƒ ?I‰ª?OI?iÄÍ?Xà? • ?º˜>é„>æªä>vVÒ>pù†?°?ý?‡ÍŒ?@Å>/?/›N?hÜò?QTq?Jo>?´Í?ßÛc?£ÅÚ?hŽn?p%¼?uã?†‡4?¢Š°?¨?­F?–_„>è3Ÿ>ËbäÙÙÄ>Ômë?yäm?ƒy¢?&P)?ã?7C£?2³ÿ?}œê?“ùí? …?g¼?<õ¯?õÀ?C±2?g§R?g§Ÿ?g£^?}ëd?Ž0†??*?¼!Ã?µ¿c? ÷?(ùæ?‰BQ?ƒ6«?‡Ï@?Ž:þ?;e?3¨?”»?£pÖ?¤Ðù?¦0 ?†Ëj?g™?+X'>ï Ö>ê)—>礸?M{j?­ƒã?ˆ´Œ>ñÙ >ʃ=ýo(>ˆ¢W?gË'?nþF?¸« ?ºNk?Àñ‡?»+ø?_@?^ s?œŸ>õEb?P»!?h™?vÏ?tc!?ß8‡@½‹?¸U(?W >¨Ç?Û?ãù?ÎR>?‰ôâ?ŒÂŠ?“!?ˆãò>èÏ;>âSM=ž²8=‰=ã½Ü=¶í§=ÊaY=‹ëÔ?AË,?iEÚ?Ìq8?ée?ÁÁ?­1j?YdÛ?oa?E´?iÀ¶?Œƒ)?¤î?J–â=Õi? ¶ç?¯•ˆ?£÷ž?ˆ6?…r?¡(À?¡6?Ž!º?‰!œ>ê¥{>ïË“?-T?*wE?gÿ?jø4?ªm7?°WQ?áØC?ëA?¶£?° ¡?i$?;ù’?m°?}ƒ™?â×>>]¹?Fßð?¨?­?©?°º˜?A\9˜Þ>PD|?æ¥?Sº4?¦ ”?™e4?‡Æ­?’Á:?¥ÈH?°ƒ%?Þ2?Îø?ˆ‰w?†æ>?u`Ê?x’Ü>íTú?5‹?í4s?ìùÎ?t ö?w’ ?‘Ó?Žùr?í>íî8?¡–Á?¬ ”?ªT?´?÷?EÁI? ­V?¬»Œ?Ömy?ÃŒ¹?·§Ô?H@ >î°?­T¤?îÏJ@,—î@Meà@bË?ß‚2?”Rô?;ñÉ?‡œ?§†^?²J?Âßõ?®ñ ?Žr?›"?¬ïú?ÇG†?ø?Ü?á‘‘?ÍÒ„?êJ@˜!@Ë.?ð|?èÔ?É©?½<î?ª4ö?”pŸ?,­0? ù|?´}›?͉C@€|U@u8ê?瀹?âOl?<ÜŒ?3¹è>ïЋ>õm-@EX‚@CáÈ?è•„?éà?ív¾?ñZ?´î”?¤ÀG@Á(@¬Ï?é/‹?ÞôØ?²V?£ˆæ?{—W?qIp@;¿@%:y?»ÛØ?ˆz¬@kY@5²?±9?q]9?xÆ? ?¿ªÁ?ÐuÙ@&¿k@D<2?쇹?¡²Ô?rVŠ?W ¸?xÆ•?z«Ð?‹©?˜Ú ?Kt€?ß?på?ŠzM?”™å?¥á¬?ÆÅ?q`>?hDo?d¶Á?év«@0\ó@»ê?´Óº?xnx?Š? »E? ¯?[h?š«#?Ô_@kQ?ùœÂ?Ä`h?²MÏ?™Ã|?‚Xt?1†@?„K›?׊¥?Å£?´°S?·Dã?ÆW€?ÊZ‹?½ðÆ?ÒÞÁ@ƒ@sw@4DK@.®ê@6,@ï2?´g×?µŠ:?À~¦?Á¨@?´LM?µ…?Êy¼?ɈÀ?©ZË?·eD?ëY?å†?þ'@7!?•Ï?–̱?§h¸?ª•'?é„9?ïň@+¢)@3Àê? +’?h±ƒ@*TÀ@?á$?¹t“?…ð¢?á_#@~ï?Ö[o?¼½¿?ÉÙØ?ÐQÕ?³Ìº?™t\?Òí×@zY?°b +?@<$?sB.?Ÿžc?«V?²L?ç·ò@@o?ò°š?«*Ú?ÙF-@'?ì Ç?ˆ+?§µ6?²rŒ?·Ö«?Ô-7?Ùˆš?Þ_8?óôþ?óqW?Ú—ø?XòÈ?eŸ°?±ûú?³&@@1[a@1Õi?˜÷Ã?žJ‘? ƒŽ>ìÛß?‚µ¼?ˆ›Þ?þ+Ó@€@?½¶?›ù’?´ÀÓ?ÄÔ5?½Ïy?ÄÕ?ëzÁ@J4?þ™%?ëzè?´Pl?qæW?xi’?~ò?‰Ó?”?šõå?½~Û?ê@>ƒ*@'ƒ3?Æ·B?º/[?jý?u•5?Ê0–?¿ÓØ@F’+@MNœ?ÃJL?µ +Ž@ +Õ¼@}Ž?%Q?Cí?ˆÞª?•YÏ?|.C?Y›Ø?‘SÄ?¯`?¶Œû?º¯?³{’?¯)œ?™%ß?h@`?¶3@'eï@ÀF>é$?+<œ?éj?ßq¡?hßt?jnéý4>Òß?œìŽ?ùò¸?Ãeæ?g¸ˆ?tp?‹øf?´¶@¿E?÷«ý?k›¯?u%?ª9?¤Ë[?•½¼Rê>¼‡1?„8¹?L??µ8ý?¾¡ ?œ~‡?†o?”°¹?ª9s?iÕ?…¸?Ž¬—?ñÌ6?×­Ð?›eÞ? ˆ?œ)?¥ÎÆ@=7@B“1?ew ?ef?Â*>åç?QÏ–?eº?úZ‘@\?Áæ†?†Rë?ßwA@{x?禭?’D?lR?Ñ?H@?äBN?àb?ä"»?â¯w?ŠÖ?¹? \·?­QØ?ÒD ?æ^´?ÑòÞ?¼^[?μÛ?âúÿ?ü›@[Û?þ×_?ò3?ÓOä?bò'?³ˆ@›¯@ +„?ªÛ?©ë„@6tT@E–¡@.^â@&Ó@ ±@Ù&?òð9?´T1?•Oj?p\7?OãÖ?J²o?‘L‚@ Ïà@ i?±š?ºÏ?Ë8?–,€?’ðX?‹ýt?. ?…?ôa@ ùÈ@áw@ 6d@ +¢@©@ +¥í?¨$?ª«?Ã1?¾#?Ò¤?èD¦?@ûø>æ!>k´=?np?ÐHë?¡ü?T¥Ï?–˜4?òÏ?ëDZ?Þ¢©?ÞŽ@?Þ3?âs¾@ +{3@(9?š ­?K¿ê?yð?„†>?…?„¢w?• Å?Þë:?ÑêB?d ?‘„í?Áu?§ñ?ÕÛ?ܪè?á¢ô?òªz?ï ä?ÜHË?ì;à@B%?ðÙå?[Þô?[Ã?§n4?¿(„?Œ¶?n»?°,q?Ú“\?¿}Š?¤/ƒ?«½?´±?¤0¥?’&ï?¢ìS?ô@ À@Fû@Yg?º3h>°J?2ô«?ƒ ‡?’!N?WÞ?‚4¤?¢»¿?¢¡X?ÐÛ¸?Ñzt?„›?:V4?X3å?†žH?»3ð@( @3+É?÷Ú+@H^?æ(¦?ñ!v?Š[0?û=á?X:?«Ò?Ÿªf?¦ñC?Ê;t?«~>¶hº>á‹Ý?W)y?kâ¹?ÍÕ? Ì? +?ê.?BÔ?qe?uvþ?ñÙ?žx–?–1Ô?£ÿ@ çQ@]S?ïõ¦?·?Œ?¦5¥>àÒç>Ï¥Ž?Óèþ?Þ„?³‚(?²,¬?Ø”P?ö¼á?áÄË?–&V?^?Z™0?f;ä?¬-?ÙTR?©cw?/`…?8¦Z?’Éî?œˆ ?•‹p?‚û?çBÂ?úæÃ?©s·?QÒ?WÖ?^,Ô?Q ‚>ØÉ$>ñ‡?UÔÄ?z˜1?2~?°Ëa?„V…>#é—=oy„?O™?C.>òÑ(>Ò7Z?!ô?8 Õ?cê¼?«ß2?›$?X}X?pÖÚ?øp?Ší?ƒ¾—?zÁ9?Q œ?8æ?eì²?{—?—b¶=öào>'t9?–lž?³%y?¦$¶? D3? oU?œH/?‰c\?Vµ\?W!m?‹¢‰?ŸÍç?š(n?œå'?Æö?ÒÑï?–3Œ?qb?ƒƒ­?Zsæ?gJh?ƒ™(?dýˆ>Ü‹ý>íä>´~t>• é?‡Š#Û>ç@>çøl>è¸4?ÀF?„?—d?©ø?Ÿc>í±a>¾Žú>ˆ9Ž>~+>>Á‚>óL…>ì–ô>ôŸ?8–ß?Iè>¡9~>Z”Ÿ?.¬ˆ?TµŸ=÷ Å<ôIt:µ5@=€mÌ>\Ú&>ƒH>r Ú=½ >cš>Œ‹¹;á.a>àõ®>ýøÍ?F·Þ>úRÄ>¹à¥>==9’r?ê¹c@ËÕ7@s°?„{??ž?å3>ÙÙS>Ú8=ßkÉ>PÔ`?÷?/í?Pt?¦?‘ ?¨³?”vu?s"0?]ã\?,uX?)¿?**j?1-X?4¡?8º?QÉ?e2³?“…Üåv>×KM>ê —>ê;_=Â7¡=°™ä>ÈN‚>êîè? Á?Rb>Ç`>­ô?Tš?.sC>€‰j>ѯ?hÍ?DÐx>O„>LµŠ?iè¾?lÜ?GR)?H€Ð?ª„Ä?¿òÄ?‚á¤?U3•?O`>ìÎ’?8m?lÚq?úB<˜JM>=ö“>ìÚt>£çX<¥Tð>·ƒ>þ=?ÊÌ>ìÆ;?Ÿ?l»;?l®R?tì?”nÃ?^Ï?báŸ?tÂ9?câï?}Gž?€ò? +¥ê>Ùˆí?Ia?io‹?·»/?ì ™?¯aì?kðy?WÇÓ?DO¼?dÁ?Gn?pÂK>ëÕ?u?€u­?f$D>ëLæšü>éÌv?f2ƒ?jÌ?l37?o'a?fˆ?`1?fË ?jab>®›§=¯—²>ÀD)?Éó?Ø>éù`?+IË?iÖÕ?„ Ž?˜Ä]?r/>錱>é€0>émµ>é_Æ>éOò?4â?ÇG?Æ,?èµ’?èþ,>Ç‚>‰åx?Oæ÷?hÆî?Mà?9¡Z@Ï@>gÐ?×N]?hqz?‘ãæ?«1H?63;)hÎ>·í?h-Í?gýˆ?d½½?FšE>Ö&ô>Ó>n>çðË>èä3?ü/? =Þ m=ã¦>ij%>‡¨‹?N‘¿?gªÎ?Î]?—:~?ã¾?ýÌŠ?”'@?+Áš?.ƒu?1A>?‰’”?Ï?—¢Ú>‘2>úîV?†—&?“¯?ðïÎ?æÄL>±öì>¶Î<½ç?a.q?tq’?z…6?v~t?mvJ?i}´?g`?gy?g{$?f ¡?+S?­§j?” ”?[x?‹b?ø^?¤F?Ð81?°€Æ>­©?_@;q@×?Óí©?Ìgl>»F>‡t“?•·?“6?p™3?j• ?ÜÌI@ ò?ÝCw?®*Œ?>A=> ߘ? uÄ?…ˆ(?]ÇÝ?d=?ýð?#†#?ë;>è§>ã’ >φ>è;:?oÊ`?mŒ¢?«ÁÞ?®ÃA?rŽ¿?i"w? a‡?ã?—´*?¯ô?$ò?X¾ñ?¯1)?Ó/w?\¤Û>¨°?…@Á?Ͻæ?ß8?üçK?È€ý?j$?á3?– i?Œ»?j[$?l??bdE?U W?9Òò?<ÈÕ??ÀÃ?Cq2?œŒ+?Ÿ_?È"Ñ?Î¥Ž>ùFk>‡˜4>–ñé>…²8?ÿ?¥×”?Ò ™?æÎ?(Í9¡Z>‹¥ê>í™M?¶¥±@ íS?Âý¬?`¦?‹|?±HV?­fc?¥1†?ˆÚù?3Sv?‡ ­?ìÈ?Ð(?lëu?‰.±Vv?U~½?n3÷?@Í~?%IË?ÁÆ?éO?PÑ >î‘Œ?åV.@?×?âAÎ?ÇÌS?ŸZV?ˆ9?6t©>ï«?¶˜ð@55@ŠÙ@ßü?¯ú?P,?mP7?ˆoÈ?Ç6à@G¼?γÃ?e¨è??ì?ËÓõ?ÅA‚?²tb?çwÌ@#@Yý?örK?èöc?´J?ÁÆM?éùÓ?Ð/$?pM?‘é?ðcª?±w>$y¡?z¯x?yU»?‚kI?˜vÂ?Á?·ß?éÄ?)#;?Œwë?‹e‚@Î@ rœ?´®?µ•ù?ÑeÁ?Î@£?¯”n?ºðR?Èuð?Ë š?•Âf?–ů@{z@ ¤y?˜iñ?†ÂÖ?#=ø? O@n!}@‡®¾?êÀ?º]h?„^?qBe?£OL?ªîg?»Î,?Ã&b?Þ +”?ìÖ?¦??4Ù>át–>VX~?9tå?tÛG?Ž>Q?‘¤?Y?%^x?Ó'Â@¤r?½Þ?„—?‚aÀ?€+›?3gÆ>ý°>õí>ñ4?€ …?´âc?ÍU?Û©D?…®õ>ñz?p½?´Ð@ˆ8@4ʤ?ÿ‹v?ˆêq?’5C?–µ¼?‹Ò?pé ?Ãñ@ Ã@p©?•?}ì?L4?w œ?ð²,?ßä?µ·ë?¤??u?àø?¿"?Ì;?æ>?ã×?áà?×H8?´6'?¾ú ?ù`õ?ç +C?n?{½B@ Úa@ö«? ÎJ?¡B>ð|>ð˯?nj¶?o¾²?î{à?ðxò@¨I@`ð?Šl|?ou?h† ?„D?/7õ?£??Ïr?ï%a? µê?‘)[?Ã-~?Õ7&?ñAö@">?ЃÍ?³Î?×»c?î Ì?qÃ>(^?Ó;?nˆ?´”6?óVª?×,°?² U?üŸY@2ˆ +@8í?mìB?Š{?²[¯?±ý?¨àh?‘â?â?tÝÍ@íP?â?²¿Œ?«Ð? +Å +?)Æ?õà? Ì?‘²4?ŽmU?Ïë?ÔÆÏ?Õ6?ñ6?þô=@ª@š??ü^³?leT>ìÞ?rÑ?ÊŒ?¿?±7¢?éj™@ ›¡@ã2@„Ö@¾w@&Æ?ýïÛ?ŠÈ?ÎáŒ@;„¯@)Ù ?Ÿ};?«³[?™•s?¡/¸@(K…@(wf>ê˜P? sô? Q?ÂÜ@Oj@'Ý?,|¥>µl´?«ðë?Ì9‚?Ú-¶?Ú”É?±¬? ás?Å7?âcÌ?Ì Ÿ?¯z8?öE/@'Z…@/@O‹@ÖÎ?±iä?¥6ó?¨]+?¨±Ë?h¿¯?u½Z?ùÕS?öçµ?¬ø8@UÌ?²¥?Pž(?48>ÀgY?*fÄ?¬8â?¸5?õ×?éäˆ?eW¯?eFé?©:?©¬?r1•?dÿ;?Ÿx‡?½ +?Æ Ú?ÇÛ@Zb@hÙ@ +';?Ø‹”?Ó¤?·:?}ª=Œ>åhY?ä (?匤?ôÉ™?ë G@ 9?ý;*?“6?­6?ñðf@#€?ÔÛN?«?ã@°5@%?üoå?—¸?®ÙL?Æm×?ÊèÎ@ ­È@ +e?³T°?®(?«Ky?­ûl?fí?šÏ?r×Ô?hì&?Ë?ÿ€x?Óߺ?®dP?Ž´þ>þô\?€\k@):@#w3@¥Ù?ÿ·P@Ùõ?õ±]?–·{?‘O?‰’>«\?±ÇÛ?í°›@ŸË@A½:@"4—?ìà?ߥ÷?¨ ?¨Ê?±å¡?¼ +æ?mÌ>ýûè?ZM?_7Þ?Úc>¼ ~?FrÏ?•Ó ?cÈ>>Þç5?gI#@Vv@ê¦?Ôî?Ü„Š?¨¢?¬øè?–yz?¡§«?·F¥?§l3?Ÿ}`?¦@;?Â[©?ä«?ýEr@%aT@ä¿?´?pô?1Ì?'8@?¯í?Ë ù?ž]ý?vÒA?§4Ç?Ü+¥?Î=ƒ?ºÏ3?Âø§?¯ò‹?£É‚?»ì?Ò?•P›?¤g²?4{z>íæ?Â?–q?ZNK?œ¶? ÷·?c;H?A^?¡ñç?£€@¢E@'qÀ?Ò¶Ú?iÊ”?o „?ˆ9j?šæ}?ôÙ9@#?íè?¢?A?¤Ç­?ªcö?W€>›Úi?™4?)øÃ???WÏØ?Aba;ªö³=Î(??9ç ?jì"?_Ñ?Qè ?VÅ?H]F? M}>ðâï?Y¼î?e|?ÏÕ?Vt?”Iƒ?Ǫ±?Ï0?Êך?ÄBa?Ÿ³=?£`?» ?©¥h?…gk?„°a?}öŸ?3"T>ô‡¢>V.”=JG%>å÷>ýÊ—?-µ©?&ô +?`<û?xŽ$?‹Í®?¹Å@?±Ïg>Þ?%?šLÙ?ž@[?ç³v@¼+?Û¦g?R©?jœ ?ŒÜ?”Ø£>¬²€?x?âO?"ãt?wï?¯ç?œaŸ>Ññ>ìñÜ?ì…©?ÙÿU?€Ñ}?Q´K?u2‹?:œ?~ù¯>Þâá>ê7Ö?÷™Ð?ë(?ªX¶?µo?ŽòT?5KC?d¶[?žê ?œLž?¤e?„‡?†¾ ?„"ì?‹ÎÛ?¥{Ä?®¤?SÒ?›ó4?—™µ?‘QÍ?–¼Ç?‡ƒK?n„? I?°3]@I?õîã?R¶æ?RÙ3?—»¶?žU&?žo?ž?4ß¹|ã>™9?¬ô>Úò™?‚1?ªæ?¦(§?ž¦F?ŒEˆ?d?LŠÈ>¡ü>ÛUU?<|ã?"!`?7"Ã?TPa?’e??ªÆd?cžÚ>Ù¡$?ÌÊ?3±V?l +x?ÏÒ?ÒD"?V½À?I“?<@?.ßÔ>^ >•9q?l)?žÉ¬?ËŠ?Øs´?šÆ ?aòú?v¿>AÄ>½¹ü?Å?&y‡?dkì?36™>çRÓ? +G§?15?<ía?T½n?=às?hÊ+?!²M=z× >žåª?øÀ>‘q#>3<>×KÏ>WKŽ<˜‚>Æ ?VI>Âä>g1’?(^?q>ç¨5>Òì>nä>bù>"XR=Áôâ:>½>Ȧ;?¥:S¨<.Ï*?x°¸?*‰>Œ˜>mÉ>:úõ>ý É>ƒî~@/@Îi?zˆ!>gºó>æ^©?0©?™«?—ó=ÃÒ>x >>Ý(>¾>}¹>‹¾Å>ÜK>øv0?3­?Pv”?^Ž;?b(•?f0K?Z\?Teô>ôz->äa«?<Y?e.›?UñÜ?G„ž?%ßs=ÀA=ÁC$>Rò¹>,)µ>ˤž>è(C??Œ*?gU<>äXR>$òâ>é¦? +Ì÷?Z|?^j??Žé´?Š5L?Pm?KTì?æ>ëAZ>¶6å>’b>¾ˆ“>ëÃ+>ëà}>ëø5?.™î?›³?Šù>ìQÑ>îT?Õª?$$?æ?>íÊã>ì´ý>Åy•>Æã[>ÿì;c>ìݼ>ìÜX?‚øŸ?ÝZ?³ G?^×I??wÒ>ìÄç? Òh?lºN?`€Ý?ñü?Œ>ì D>íûì?‰è‹?Ž=¶?®þ¢?±EO>eü…?dÃ?—C-?ž´ž?§»p?`’?t?aº½?{ s?/χ>ë©I?—d?5+(?\¢N?¡w?†³I>ëA?ç~?k{?HÁ“: +7€<”„ =k£?h²O?j™a?¥Ùý?§S?vº’?jVï>ó>°«H?*½?GrU>µn>! ;?Æ?iÃ1?:/³?ëŠ?hí?’â¤?r,Þ?)ß³?À:>Šj$>âjª?•Óï?ž¾’?³-0?º (?¡¢+?œb?PSj?S"€?ÜÇ?èb?ÝMü?ÞNÉ?/Ð?cÝö?f§ +?h@e?#÷Ù>çá?.Ù?h@?hF?gýÖ?c£Ç?W£¼?:q]>çÖK?>E?’eÄ?„Å'>¥½ñ>¦¶?ð?þª?:?"Ÿ…?}p?Ó@ˆs@'À?Ž–©>çl?Îã?"y?—ò÷?ÖÈü?šC2?õ8??*i?ž_v?K?N’W?57†>éS> Ô‚>$üó>5e?¨"k?ª¶Œ?ß2ô?æÆŽ?¶a'?­È?ØÕ?ãên?–Þ„?gaè?nç?uÐà?=TM?Ê?m£Z?ºK÷?¬…?’ž÷?tS>žÛ2?±P?ד@?Í»Ñ?lÂó?|Ã>ìj>çÉu?'NB?7ey?^d?V6?;+®?<.ý?–ßÒ?®?LD>è,Ô?`àr? ‰|?Œû­?hVÇ?‚æÞ?ž­?‡ÖG?[u>ÝXJ=$¶Ø>qéƒ?®‹ï?Ÿ^J7=]ü@ «´@ RÃ?ݪÇ?Ö?†št?{Ž|>¨Á9>?Ëi?Ž-?Mª?–Vm?¢òà?¤G‡?²hª?ÝâZ@›L?²rP?)w¾?'îÇ?.¹Ö?7´Í?5 ¡?€Ôv?ß&à?¿ÛÀ?ß?5bí?”Ké?ŠªÌ?„jŠ?‚S©?jè ?jùã?›‰Z? Ü3?ö +ø?ù±£?5x+>òÓ¬?SEs?kð? íÕ?¯•?>jT>ëÒÍ?ð@-²ý?ô±÷?§‚”?rŠ»?(‰‡?Y‚e?…Ùµ?‹–)?‹ø>?“a?¡ìò?}Ù>ÇM?ƒ.d@#¶{@¯¢?ÐðÂ?Á´ú?m:R?€V?Áƒ¸?Égò?¾Üa?·ÉÉ@„f@žê?nÆA?mÞ ?ØK?ÞŸß?oþ„?e/þ@ .º@/£ñ>Ã@Ž?DLû?j›N@ù@?Ð,,?³ä?ˆ g?nÐÒ?Çp>îëÇ?Ø$h@gR?ùÞ?ß]6?í'?çÑÍ?ý…>ï[î?‹*?Óç€?·³N?›‘?Dù?s§Ö?5O>ïÄŸ?e÷V?ÆûÉ?¢ÎM?4|†?zÔÜ?Á÷?¿+?¼äV?£Û?p$y?š–Á?ðJÆ?íe?Ý´Ô?²ÏÔ?ç„?_Ö ?ülÊ?ÕN?7df?48´>ð ô?rf?Uš,?W¸Û?.š¢?FO³?´™¡?¶â•?×o +?Ð3†>¬l]>«º‘?Š"ˆ?‡g?/¡×?*R:?ÑÀ?Ì? +?ûiœ?ø½¨?í|£?ðÁ-?¸p?º¥U?†[?{7!?©më?«½ë?³]Ë?´ã+ +?ËZ¡?Û¤ç?§ã?›";?Y¸¯?5Î0?ZÒ+?`Å,?£8?´æ•?Òÿ»?ß¿½?øl•?þG2?ч+?½š?¶ó¤?´ßT?1k?rµ?Ÿro?² k?0&?|ÅV@vø@C^@ :Û?Ä>Ð?èÊ@ƒ?åµS?Øñ¨?°?Ü?vP\?”\m?­ýŒ?‘Íý?pЄ?¥­p?ßpb?¡~?mA?,øÓ?a/?œîk?çðt?îØ?ð‰Ô?Ûu"?°²¦?ŸÈ-?€ËG?¡® ?ðR?å?ÆÁi?»¼Ý?°k?•Ñ?®®˜?¹p?´m?¸Òf?ÚÚ2?Ò[?oÜ?f}>ïÇW>ýùŒ?zŽw?{ðà@ @ Í@’=Ú@ô?ïº?Û}Ô?s>ïA>?†g3?‰Ôý?qÈ?Šu"?K"¯?/z3?²gö?É“¨?©6?¢4s?›Ü?œï?¿Î?ØXã@3ß@2bø?µ}à>øŸh?Ûq @*I?ÿM¦?²‰Ô?¢õV?Ÿy ?‡7q?*¦Î?.ýô?>¶W?Œûf?×ç0?åÄ‚?ý¾?ðϳ?Ú$w?ÃùR?ªî?1Jý?ìüÌ?ûhÒ@?&£@78¾@DGû@8;?±=i?±y ?„ÍR?ŒÌ:?;ú ?Fë?€í?‰D‡?Æf?ç†h?€¡W?‡?’®F?±y2?ÕG?è]Ó?”²Ñ?Eë?¼ ·@<1?ù¦?é{è?Ô»?‘–D?Œ«N?šê?‚>¸}%?vG@¥~@1¸?´÷ ?´‡³?åM‰?Ù"d?Y—?Q÷h@=œ@?z?€™`?AÁ?‡ëD?ž[±?äŒÞ@X?Àâ5?•<š?¥ƒf?²¬ý?ΓÐ?èÒ;@I@qs@ç¢?ÌQÜ?´ýƒ?yR¢?v©‘TÕ=Ñz˜>Ø’]>á Í?_Œá?zï@Ý0@…*?³ßZ?„»H?YQ ?&&¬?ŸÕZ?ç{£?È d?¤"a?àF\@)À}@§æ?f¦?O‚Ü?ÑFZ?Òc@Iƒ?ü.7?Ⱥ?̉?¤M?—ð7?X%P?R!Ö?. %?¤œ?ªÞÃ?ÞŸ?ÆX’?ˆ?™%?>ãæ?V=L?l-(?f!p?—%A?·Xñ@—S@ îû?|D?g$»?gIò?o‹»?‡?SÁ?Ç¿‘?Ùø3?Œ(?p$u?™è3?«`2?¥ú?£R7@k×@G›@K>v@L2~@1c@ú @Õ¬@/O»@*´!@JÑÚ@Pc³?°Êb?–ŽD?þ¾u@—?¬B?l?Ø`C@Áá?ë8?“ ?ª™À?êçÐ?ì4?àÅ?òªÚ?í`?ä<‡@(i@"VQ?³7™?›Æ?£TÝ?™¨¼?¡—?´d_?]<…>­È?‚s?a}p?ae$?tÿ ?²Ér@8¹è@0Ýš?ëHp?úç?Oz½?:š>|‡=‘ñ@ ¾@_mì?÷_?Ay{?€¸À?‘Õr?•?‹û?ˆ ?:M$?Döá?_›ˆ?_ì@B@‡„?³Í?J?ŽLÞÑö?H ?ÇËZ?¿B3?^n?s.@µ%@· +?È…?³¡?¤ü`?¶žÔ?³ON?¦-8?Û‰!@ ƒ?Ñý=? "?s’ë?؉‘?Âí?!| ?,¡a?™ÇJ?¥_à?Ë ?ÜHP?¢Šÿ?md?ŽM?¤æû?©R ?¿ +U?Ã?Ó??…°:?Ÿ„˜?¤Wr>ÅM5=9Ó?C=?‚Æ?R;ó?%?Y©§?Ëù?ÏâÝ?ŸŒ"?£Oõ@@Qj@Q% @"ùª@Ms?ÒV.?¢ë-?ŸQ?xÈ#?;Ϩ?\*†?[BM?fP?qV[?+ä>ðפ>Ò6Í>×òÓ?%Ý¡?€Ë'?Qà>ÔZ8>¿°Ä?ƒ‰~?|–W?×Ù?êäã?¡¯?VªS?’¾d?Ú¶+?Î`?š˜¬?”§{>ù¦•>Õà”?€&?1­ ?‚—?¦2Ù?“/?Xz?jrF?ÔùÉ?ÔÖ?!5Š>ö«(?ô}t@.äJ@>Ÿ@n?Ó@Q ?¹ +=?¦ôƒ?\~I?S·s?’n?ž h?Lôç=œãÍ>‚lj?“ +˜?†å ?vQ‚?99?,²?tDJ?zL??n5š?S­2?X[Ó?df?¢¨>úAæ?Cå?L>ힸ>Ñíƒ>Ñß]>ÑÖó>Ù{?o??¢à¯? + ?{ “?| L?rð?Š•0?Ïòî?¾½Õ?Œƒ?ž¶}?¹ùÖ?¡Ó¹?)x¦>«µï?=2™?Ñ3?ËF?n?‰?3¢6?2¤1?i˜?Lßt?Hžå?Ah? Ö?ÇDe?Àú?åÅk?èäš?Ëç?Ë¥?Êå¨?ÑŒ‘?¯æ|>Áà>õŠÑ>°êr>¯l?$¶w?V+Ê?ZA?VÌ?Dš²>ã\>¹Æè?’3–?™l>[9Ð<6b@?c_?¢ª†?T‡V>Ù›×>öÎ? žá?qb?XÚ©?`Á?\"ñ?\žQ?OÁ?'ý¬=Õåk>ň±>ã•Õ>þ’%?)¨µ?+†? kH??I?<¤ç?Y;Ù?Ï??Q%q=ˆ5 >B6>0.>¶Žu?7{Z?„Â?Ö2?ª»Æ>íݼ>¥‚­>v¡?1˜$>üQ4>bi="QO6l=¹‡x>?¬u>€>Ÿ”?S°?`P¿<¶ì+ „>®‹Ð>Ђ>ìŠ=:HŒo>Ü<ò>÷¬<,>¿b>’8Ê>«6c>¿:P:‚8>m£Ñ=¼¹æ@W¦ï@½oç?„ßb>Çp…?Ue->ô–Ž=Ùáq>W¸Õ?<&F?6]A>ü â>Ýá>ɼG>ž¸H>ËAk?’šl?Œ~p?w‹á?p¬²?b’â?b?PR?:(Û?CÃO>ŽÙÆ>¦B?E‚"?e+J?ôb>¬7S>³!ª>ºb>þŒ?•ð~?šÌÙ>ô}‹>è%Ó>ä²á>è’ª>æÅÉ>ÞÉ&?$ˆÛ?]à?’²>ȇ>‚ß ?'å?'Ž½>|ˆ,>‹g ?…\«?†úk>©,°>@L‹>ÃÜp>ëÂì?3é?.¨î?+w^?(@F?6Ë2?Mv?)›5>”‡>œ3Ö?/[é?7BI?p ? +›ñ<Ž¸`?EFP?dþß?^Y>ìض> +9:ÿû1¨4>†Qõ?lwC?l§»?’Z´?”#Ä>‹dz>O§|?€¾?Œãb>Ýp>6>ÕŒ>LJu?©œ¶?ðŠF?†IJ>ëP?ÂT?ܸÝ?Ô0>Ú>íÎ>õu ?ÆÙ?kU?L +>äü>Þî•>Øâò>»÷¼=îk¹>Vš?¯Ú0?¯oÚ?m^S?jD8>ÿhá>êµ>¢“>¥çƒ? ¨? ,è?HEÛ?i±­>ÿyf>g5_?8ëÂ?›~£?!A?;./?*ÆÐ>ñ –>‘25>9C‰?-ÌÎ?\·D@M?ó"ä>è¥Ã>öùÚ?á‡ö?ä3F?k˜"?b©Á?2>èAä>è6‡>êz>êJÌ>èC?~ P?§Ã½?Šöž?gãË? X?Ð&ˆ?ë<Š@ <?ÓŠü?9y¢?fÞÜ?ªûª?˜º +?!·,?,õ?t3‡?nöZ?“¯g?‹³?´¼?›ÚÎ?Hf‡? m±?1Î9?@\?¶\Ù?îs†?Ó"í?¼ç?žŠÊ?g1?;Ûÿ>ç,?’!?[wé?qñ=?¤?¡úE?gøn?bË>çzL>éÃ=Za;=‚¯å?›ßW?²ß@)õ@ k?Έ?¢„?BOj>çM¤?@xë?„c?ÚI2@ŽÏ?àG™?; 8?eÙþ?­7?˜®K>óéï>ô(É?+OË?*æ¢?/(? æª?§U‡?­ÔP>ÙgI>Ÿ)ü?“£ +?­ôZ? !">µMÏ?6Óî?h?^#ô?YÚ¡?*Ü>èIn?€„?æ¼6?Ák?h}m?ƒ?x?®o/?·ë?ܵ?ÒÊ8?º0?½å?·P‡?¸¬‹?nÚ?i¾>Ðþˆ>ª´ª?wT?ŠR?o·²?ts!?@Íû?%™?dõÒ?‹_´?•O¸?L?DT>Î,Ô>ú r?"äà?u<Ú?Ôƒë?ÊF;?—”P?ªg“@èÛ?ÿ)€?™?˜ƒÕ?jÅu?fs??²ó?Ãþ@CÑE@J¦‰?‰Ï?kD?©?¯tp?Þ3d?çvÃ?´ß˜?¢¤ª?#~>ñxz?KW?*K!?DŒx?Kê5?-.\?jÙ?¼¾è@ÿI?¾F«?(Ñ?níë?š ?ŧ¶@Ý@¼?±µ@?¨h]?Œõ?™` ?Àeð?ÜBO@G=@>ƒò?ì Î?ê5–? Ó?}È’?‚ƒ£?{°B>øüÈ>ò >î6>î´@(¦˜@,ƒõ?1fû?Ëÿ@3Ç@H|@> @8è??Ìi?£Å`?ø”f@œ?Æ B?¹^?„†,?\î?ÓWS@ÒQ?èÒ+?ÅåÃ?¥7?›P;?u*`?Eó®?›’Y?Ìþ?Œ"ø?fü?Òx>ï½?ƒSe?Û–³?ýG²@ÂŽ@!ž@3ö'?Ý](ð‘v?üº?•yÄ?ŸŒ?èr0?àF?Ê®e?ºÇ ?L>?eûB?Âþ›?Á·?¿?Åïb@'Ÿ¬@+¿ü@0Û@@0C?qÉ?sÿ ?´†A?´À$?®À~?¬|“?%ÛÚ?)ù>?23 ?:uf>þUš>ñC?¾@½?Íœ?¸'¥?´Ð‹?› s?™Å¹?Ç +œ?Ë›±?ýçÖ?þÚ¯?¥+•?˜k:?èÕW@ø¸?ì?æ?¿˜“?³µT?àÏ5?ðXÀ@ Ž'@ +Â?ÑEO?«§¬@)¢@RÒ!?Ú.R?eUC?†$î?— 4?žj +?™I>?Ëï¸?í¶?챧?ð½¸?»¤`?‹(G?§ª>?ÂŒd?œøû?p–*?Dí-? +(¶?Ò\>ò@¿?*Ô?x]©?S?¿Í?‚ÏÈ?ØY?Í£?Äõ%?ÛœY?¦Le?’Uî?Å>î>+4<7[?uw˜?´ ¡?PQ£>î'À@¡@Jv]?úų?ˆsW?ŠiT?ƒ°² +Š?v?§Ôq?÷¡`?Û×?yž?¦6@dÌ?ø ?1?.q;?¢NÐ?ÁÚO@*eŠ@)©s?‹~É?Ê>aD¯>uŸ?ó?óxÅ?¥ih?¡a^?³>”??¬¬—?ଵ@ @ɺ?ز?·zƒ?Ww¹>ëw +?Ì_@£@?Ö ?òè@ð?ÚDÉ?jêéÀæ?–{Ý?¯8j?ì1d@ä?÷7j?èé ?éH¸?é3ø?º‡3?•”Ü?\õD>܉|?b?5@Ñ?]¥ó?üC?‘7Ð?œôs?¬Š@i[@ û‡@.-b@.!ó@”Ö@S?Ù­Ô?Í›S?­ @?²ß?:/Å>碛?_¤Æ?‰*H? $Ó?¾Àþ?£Êä?rtÖ?;ä·>çê?„“ð@2Ë?Ó»x?K ?mǦ?«"ª?¿?;?¬ëÎ?¬à@?­ìy?ºÏ?(.>ÿ>I?ìLÉ@ÊÌ?Ð}¡?²ùß?°TØ?¬\~?Qó>ºtU?M¡€?²P\?œ}Œ?C;Æ?”cg@/>@!Øw@y&@ [?Û_n?Ò¥>Liø>àI?›A¬?Â*à?fSÎ?º?³XT?ÞÅj?ž +Æ?d?£?Ôü|@+ª½@.á‰@4ö_@!X?ªÛñ?Æ?z@ì6@"<;@ …@Þ™? @§>Ëzš?ê÷@£?Ê?¡Ù @2a‚@o:T@ ‚?Œ‡¼?‘,?•Ô?…gL? ~?E_Ü@'Åý@(%Z?ê¦)?ô%Ä@­@ —¥@®o?þ.?Ô§?a®ª?¹?>ŒÖ>ïØg?adK?aMæ?a7À?¦‡!@Dð?@:­ú?Yåà?m¬?j +?IÇ*>øÉN>àÁ> ìô=–aà>"´=°%Ž?6âs?µÅå?½0?Ò«-?­õ—?)¦?öP?gç?_êv@Ïk@ †¥?Ÿ} ?€Ø˜?b’,?^:i? q>˜ik?w?lµÁ?bN¨?^Xk?hÆ ?ÈN?ÓOv?½™?¿ë ?R +Ì?nA?e?”í#?ïfÆ@%í+?ÜlÖ=ˆ#¼>œ?„bÅ?™œ_?R¬??<åÁ?³âÎ?¶Ë?Í«É?Ü+u?ºù.?œH?+†?“û?€^F?h³?…šá?ÛY¸?Û<?­´?¤D¸?äÎ>±ä–?1W?‚°@?d\/??x?)Ò¨?Ž?—/s?X÷?]fž@W¢?@nJÆ@ +—K?ÍéÚ?ØóÕ?Èÿ?ýž@A]@42‹?×|Ô?Í•B? +¿?¶q¼?yz¡?XA?dÍ>Ÿªj?pÓ¯@E?â`=í=¦˜?¿—Ç?Áÿ@òN@!¸?ÙÝ4?wñ´?˘s@;":@*G?ˇ?ÅŒ‚>þêÂ>ÕÁ÷>Õ 1>ÕƒÅ?Öo?ÓŠ%?Ôå?É­ñ?Æsó@ê5@è¶>»¨G@IŽ@c7@/È?©…G?¶ó·?;8Ö?_K?V¯ê?S”:?Ž•Ÿ?žˆ?Îó@µÒ?ì²?ÈÍy?«ê?Œ?"T?‹Ù"?òä?ÌY5@_\?ÀZB=ò ê>q܇?‰×k?ƒ¯T?§?…Æv?B[{>ìR÷?Û?F°Æ?;R5?Q™$?QŽ©?l? Í?¯œŠ?ͯË?ÿ@@1´@"Ç3?QLv?QIN?Øl“@(9?—´º><ë?ÌŽ@@?ó„´?' Æ?@=?@ñb?ÿ{?» O@ÔÙ@0ø?*­?¦¹>@ ý@¯Ç?ʸy?Ð`?«Y'?’Î÷?nð‰>çDâ?ƒh?R‡íAÁ>§«?¾äd?ÊGR?>>Ò[1>D£Ž=Ž—d>‚8§>äa:>þþÙ? ß~Ø(?L1?~ˆ•?J?ƒ>Ýã>á»>Q=5>ŸÜî?]b†?DÆW>ÄuÜ>8”?€~É?¥ +>éFH=ïö>òÂ?'µ¥?Tˆ˜?þx?0Üæ;ìù?Ë ?º?8ÇQ>…ÍL>™˜>é­?£)?YÞ?@žé>ì\g>×µ½>ŸØ>}]ô>‹>y>Ⱦü>ñã >^¸Ô>ò­È? _?wÝe?>.>¼Ž>œŸT>y£.=‹^=9h>ýà>–fl>¡ >´üË=ÿùV?ø÷>mc<©~â>Üí0>cðý@[!ò@˜¼}?P×v>$¨ã?Wõ¬?‰æ?–o?]c=ðS>½U?:,¼?Cî‡?A/ù?>fÖ?'Ú´?¨?(˜½?MÿZ?Rz*?88¢?(ô³>ÏOì6ôE€?T‚F?eÿ>á±—>ZŸ¦> è=¤ª¤=¸PD=ÜΠ=øõø>çÖò>è&t=‡¥;‡€>µÈ¡>é,¿?¿»÷>Æê3>êl¼>áÚÈ>¥qñ>¡Ê?Hñ?O<º>«u>„_Á?‚ ?1m ?/?7”?X€È?l%'Q?l§\?X¨ò;ÂS¶>è­5>ìËv>íVÚ>ìÒæ=¥é…?u‘\? 4??Ž?v†?9@û?TFØ? ¾š>¹G?Hõë±Ì?0w?]‡?F`?km >é?5dz?°YU?D8Ü<àâ@=*w<=<>4a¿>ê²??!¡Ë?p?n>A>¥œ>Ç ?±‹?÷?C%•???¿Â? h?Zž?i¾~?¦o”?­r/?VI?'qô?˜>éK>µ»¯>›Is? Ý!?zNw?"Åz=Ú¦?) ?£Þ¨?š•Å?xJI?]L¢>ü<ö?#»?®M?¥eê9]’5<ÇD@(0v@*?.Àã>èÓ?I\Ã?Y¿›?nÂ?{©J?2íŒ? Tî?anu?’èÜ?½¥?•™å?‡Wá?==Ë?‰Yê?çrð?è$?Õ€,?ºþY?iŸé?oÙH?¡R8?ª^E?‚ŒO?sÝc?„‘®?†-•?*¡°?<?‰8?šÆ‹?Qåé?Ë?8ï ?WîÊ?/\·>úDd>ÿ¸ª>ÿ·Ÿ>¦™9>ç×?­:µ?¬‚?¨„Æ?¥¼Ä?í©?š09@L@.±?§ÞÖ?£bò?®ë?­V ?40Š>ç'T?=% ?g,é?ê<×@'n»?úËÄ?“Ë.?œSk?­~ˆ?›ì‹?ge‡?gk˜?gu?J$?Âà8?ÅN?å:$?à1v> S>f„?…‚(?–è>Úþ©>V%»?diÉ?Œ¬û?.6œ>õÀg>ç8)>årÓ?i¯?®*j?x¨>ìÖ¶?qŽ?ä…‡?äŽÃ?è‰p?ÇŸ7?8¿?-ó?€¥Ï?}=é?“?çÅ?‹$¨?ˆ8#@'¾@Ð2?z¤c?7l·?¿÷t?ÓCµ?¡Ï½?°l?¢ÎŸ?·È±?…yþ?=’ð?Vpy?iíõ?5ø®>êc?ƒ|*?÷Ÿ?Ä£„?ªÝ? +ùå?$x?'pØ?`Çw?dÇ?jÂS?jÖÆ?jæó?h]G>í-B>ñ÷d?lþf?t”?àîW?ëb§?¹gh?°¤o?”¤í?‡ù?)•>ëÑá?Gs°?kö°?²Éu?Ì}(?á¾Ù?þPÿ?ÞÁž?´e5?¼|#?ÕÐŽ?À,a?¤ ?£õ§?œt?~H?wù?¼‚?@"Ý @Ðù?¦ ?Šj>PT®>Äê¥?²x?¹Gè?èév?à[¬?mÀ#?«@n(@ ²>9\û>ƒ5n=‹Q=‹´™?e1d?ƒ²3?â ¹?ð?bbµ?AÚ?–h±?©™ñ?¢8„?™»i?L¦?˜°Ü?À·?ÎÝx?î®-@ä…?¸?Œe?GiR?_­?9”ª?Sœ¯?W$®?Z°5?.QÏ?œ¢?»>ý3Q?xKè?´E?îã@%·?Øa?_ö>?‹{d?´È?*Æ?@L?? ˆ?p.û?¼6?´/¶?ŸýÞ?pO6?’E·?Îa­?¯Aœ?4­Ù?R _?¡"ˆ?µ¦ñ?è¿?á M?¸( ?¤sq>ð¥ì?4ªC?åœ +?é./?ðºe?ฮ?w9¡?€œÚ?´‘Ö?®ÃA?pÖ&?_D‘>Úu>–‹?çeY?àÒm?Uű?Vl?»ç;?´Õ ?Eœö?AìÕ@-õÝ@*Õ??|?æ?yvÄ?’›ó??)?Ô4š?ÝrÅ@!}@,ÁT?+¼f>ÅG7?Îl?ÃC?}© ?I‚?r™j?pé@¦¦@àb?×@V?ÄHî?ß‘ü?ä‡o?êä?÷ðu?kf@>ðÄv?]÷)?€Ÿ?¡NÒ?´‡S?ðX$@ ñ2?’?È}?¾nÇ?´l3?À-?Ð$ˆ?¢œ$?pr®?™¨í?µ|®?Ò‚;?îË@Px@Oa?ÊÙ´?[ë7?¸H@ŒÕ?àsË?Œ«?Œ!ù?߈?ˆ+B?•r?ÒˆZ@3át@ îC?9˜?TQ4?±åÒ?½DÆ@Äï@ KA@—Ò@7w?ïjÒ?Þ³D?oUä?ƒw^?æÉq?ÜÕ¦?…a_?Œ´I@ +¹@ (V?äÔ%?éݤ?>7¬?9 U@[K@20?‡Nš?ƒ¡G?àÚ²?î{?sçÿ?$dd>ýу>îM×>ô7Ë?i>üõ>îŸ?è›h@#·Á?ât~?€4?“£¾?‘†Â?ãšE@—#?©s#>¦å|>Žþ9>mô>áœ?=]Ê?iuÉ?±Ïl?çq²@1‡a@/c?¥‘N?«uX?ÔP?Íõ?Ö4ù?ÒEÔ?lo0?g×Ý>áS/>Éx‚@.ƒ@ ú?ž°??Žqm?àæ¯?ëÔÐ>«z;ø?åˆ$@>í?¬ ]?úÀ?a÷?IŸD?ää’@¹¶@þõ@åº@Ãê@k ?ÙSÝ?„}?M£>¥âC?)ˆ?æ!?ܳ„?µnš?Ǥ+?ó ?í÷?ŸÌ¼?¥ç…?‰¨x?­‡…?nÝ>?·?sÈ”?«}m?uJ >æøÆ?œú9@'ð @ Ðê?ˆ4>?g‰>æŒÐ?Q—?¬Ó?¬=?/ +õ?¼m?^ƒ?f?¢S?°’?‰ðË?z˜¸?·°¶?Òë¬?¨0.?q›¸?[¨½?em›?H< ? õ4?8X,?§Gé?¡?h†[?~¼ï?ƒðë?Œ™ü?Æ= ?°ÏŒ?8ï°?/kH?Ÿóü?§g@ôz@G»ª?ôÝB?hi?6Š?#Ê?Š;Æ?ÔÎï?ÄX(?cµ¥?u?±ðS?¼šc?Éõ‹?À¶„>f¯Î=7<>¿Lr? ¢t?ض‡@R$@ +ð@!Z@1§?¤Ae?’îÞ?If?gñ?H.ì?n‡?ª +?¿IV@9L‹@2 ô?Áì?Ëäí?ß÷«?ê ã?¤€?~>{?²7?ÜÔË?¬NJ?aGt?£zï?øëà?Ùˆj?´JH?ÎÈ +?ž¸?ŠÄJ?Ý—‹?à«?PPü>ôW?‡<?˜¯?‰€ÿ?t’?‚{9?¢¶Q?¹Ñm?é¢Å?ï?§®Ç?¨ŽÞ?©èä?¦G?²É˜?½ã¡?Bd?¸?&fƒ?Çö?6Z±?ÈÉ?2é]?ž–„?ÁôI@Ã2?駭?&ïz?<Û?¥?3)½?{¶?{hM?&ß?>î9b?ax?¬[ó?—ÀÒ?)tÜ?$Õ?-uÊ?)Or?È?–'7?ÿ$5@ƒÓ?ÀÏT?§F?ÂÐX?ÎÃä?¢¾?[¨{?d“?d>H?Yö?Ò”Ë?Ø„@øò@H`?«ÒÕ?†®=?ÙT?àj?’p? +º?(õ ?ÅÝ>æ¼&>ݶÆ>òKO@ðÙ@*Ö +?àÒF?Ÿ©/?Ì6d@Ü@‚q@R 6@Cβ?¦§?¬B ?× ?Ø0ë?˜ðw?ó>ò{=˜6Ò>ýñ?¡‡5?‘&‘>²ÇQ>›s‘?³§õ?»¾ï?ôÄÀ@ À®?ëÍ,?Î×Ê?Â`?®%2?Ûº;@$”=@¬?4þÎ?/Í?pÚ§?U¢?q¿?  *?À¡7?ÿìj@Œ|@*šŠ@-~q?#1‹>Rш?«4æ@Þ”?Èÿ¯?`?v?bX?/²?#us?{Û¢?tÿ-?“#ª?žn¹?·ä ?ÕÑÿ?Ù!q?Òçq?ÑÂ?è8?¶{?‰2X?Úê?‚¶?VÖo?•úØ?ÉÓD?¬&þ?¹¡?³ve?²Ne?¾J?ÎIø?Ñ|N?Õ|`?ç‡Ê?Ó‰?¤‘Ö?˜4?|ù?h"L?ˆÖi?œñO?•e?”§?¬Gâ?Ñ÷?>x?b¸x?ƒÞ?ÐLA@´ç?Æø?&ßy?U¤%?(ˆC?ÿù?™Jb?·?Éíº?Ñ\*?±Oñ?`,ó?tÍ?¸ï?Òbë?xÖ}?QÉÆ? •ø>ÚÔŸ>ÔO>Ò-î? +Nß?©ôö?7ä?•*»?lŸ¼?Â[’@Š?¼ˆ‰?4Í?C$Ò?žä?ÔÙ?qôö?†.o?aæŒ?Tå5?†ç^?Ž«"?Ft&>ÕìÄ>êð.?ôZ?+é>ÂÂJ>Ö~Ì?PÔ?kâ‹?Fd3?JÂ?(’>‹l?2Êt?ÎÜj?¤º=Ÿª=èSÌ>’Î>o*`?m+?…Ô¶?Œ:y?Ÿ°‘?$Co?é:>GU~?(ëÞ?†ë-?'‡„>Ä…?%ái?^ÒÇ?5Ñj?0èö?A· ?+_”?+µ#?)Ç=>»¯;8dÓ=°ˆ=¦º>‰d>îIz>‚­>Kš=>ᨲ>MÌP>wê»>! >ò<>ØRë=íǪ>¡è§?eù? ]?º€>sûA=„€ž:äöj;Û€=Ü"=§ìN=óÍæ?}A?žá>§Þh= Uý9£@:Ž-@F¾ ?¾Ú·=ð[4>ÚÚ…?ã‡6@D?•Ë=°c:?š^d?™B=?5]_?Ùœ>°Çˆ=¬Ö(?2“Ú?/ŒÓ?_×?aÜŒ>ø¬j>Fï >$=?ñ>üá?„ms?‚éW?3¤Ú?2"µ?\=?4±?6 +?s1ª?Mæ™>ÝÝ»?#„?­¿­?©ŽV?§ŒÁ?¤µ/?H·?išù>Õo\=¿‹(>ˆçM>ên?%?EV?2Òq>ëü>àß >NZº>\(’?`ºx?k¼‰? ÿs>ëô?ÜÉ?oA? ¶7>Õf9?"W?lsu?/ÔÞ>ƒýi>ä ?{ß¹?E'=QÎ>éP>ô—¤?kÊš?iHÚ>ìd>ؘç>=Š>H$“?9?û?UŒq?"™Õ?%.?\í}?v-~?Q0F?Kèª?‰ÿ?¢¯ ?©‘Z?ÉÒ{?©l?4UÕ?—c?âÖ?Êq(?l44?l'o?l_?yÏã@ @L>‡ñZ>&ßÔ?0"²?/ù?T/v?cE+?b\:?gs|>ŒÖ_<)à==ò(=µ8?ê?üö^?ù¢=²V¶>•†ß?-õ9?ŠÅ>¥Œg>ˆ >!¢£>Žò£?j d?cÍÛ?)Lù?*Ì®>éIé>õ¤?¬P?·ñß?•4?Š{¶?X>.??ï*>™=þ9>«WM>Îò>Í—>èѶ?+—?h¯å?†À®?¦ð?˜÷?hn4?‚I>?®=Ç?®-P?«­z?£ ë?‚Æð?‹lÄ@û9@ µ?y:û?gÐÖ>–ÿz>Z>­T>Ÿ?Œé?Á?„ƒ0?;P ?*Å8?%uj?†p¹?É,?èy´@‡?ðF‚?$²? —@>. á>pGÂ?›:À?¤2?½á +?¼°?Uµ€?NðÖ?ß3?û¤’?¯ƒÉ?™³]?<& >õã?6ðã?dèQ?­ÅU?æàÖ?¶a^?d J?bûx?mÁL?…‘È?­*¼?×ÃO@PŸí@>ú!?P¨p?\ν?jë?fóR?§ýŸ?­<>¸‚‡>)Ër>šö®>¿«?¤s}?â³?ØD?É´?º” ?­c?•è1?g<¢?vKa?‡ÓG?“BC?Äzg?ЕV@Èþ@Öè?g ?h“ ?,Ù8?#’?žÞ?¨¢Œ@J@+o†?¬bS?h>“ƒð5ˆ>‘V‡>øÇ—?m¤K?¤mä?u°Ð?!æ#?*@g?2™™?` ø?”a?‰Ø…?hœö?]X?ÿ@Û?çï°?J±ê?Rnã?ì½o?õq(?±º?i'?óüŽ@¤Ä?ÈÿM?¹B¤?™áæ?Š?zÅ?cg–?LKÈ?J˜?¬~>éî?®r#@<(@)Ã@Eäé@)ù,?æ,–?¶\á>êvÌ?–‹?jž™?WWø>î[¤?à™?c=R?`}]?k 9?l2?¸Ö?»¤v?±ªŒ?°Œ…?ý°P@ $>èb>!H§?||,?™³§?³9Ê?Ä“œ?s$1?/n©?¸3$?ñÆ~?ŽÇk? y‚?èœ?ž?h·¡?™Œ}?78£=è]E?3]?Ö‘?³¼?\{$?ˆ5ì?¼B+?»â??¼?§Yo?mzý?X)8>ñ>ûi?d;? P>вa>¼:ª=T¦¾?Ä¢2?¿Í?‡Š?‰å¡?KH?BLJ?Ä!a?Äÿ?”ÚÓ?”²?â+¹?îÁý?­ºÄ?¦OT?•ÆÅ?ŒIJ?©æ?³O¶?‡Ð1?o1Â?a‘h?Kœõ?ó–?·`?AŠƒ?huK?j!±?n±L@€@3Dò@°4?»NÇ?˜þ0?oТ?y*?‚ì+?å9@Ùs@ ¢j?õ<:?²¸?Oôq?€z?šsj?¢ì÷?´2c?žo}?pPï?5â‚>“íÉ?P?‹…¤?zyã?6(,?&¸?†=?C4Â?´lÄ?ÀýÏ?ìÆ?áá(?´[?Í–>ö°ï?J?Ïr?A¤>ÍÈy?|?Á]2?ÅúÌ?Ï`?Å¡‡?¢O#?¤Db?pÒ¢?z0M@ë @ó9?.n¦?/*?÷­å?ñà8?ÙU«?ÕÔ?¤œ«?œ8›>¶1>sòC?­FŸ?·çŸ@)@4šŽ?þ^z?ìh·?“KV?ŒEÝ?1ö¿?$»u?C:²?UÕë?…«0?Œq7?§¨ ?¦²•?ú‹\@ž*?‹#6?Kq?—#?¯›‚?ŒW¤?pw? E?´V?‡ƒ?Cl?]8?uÃP?¿l?ðH"?Îü¤?·Ðe?÷¥@`@+Ç@6p?þäZ?ØÂÒ?Á0'?œ /?´À?Óˆé?¹Ò? æ?˾E@Û?éÒ=?ˆ+`?·g¤@²Ü@ß1?{}?‰!Æ?²¸[?³‚À?´¢µ?Ë4@ ×@%?ï®?ÓÅÅ>‰Ç? û@®@Ž?“]Ô?–qŽ?`€…?TÕ@ÿï@Ѐ>¼+š>Fh?ÉWe?àÊM@"!Ú@/É ?ž!ý?kÍÚ?fØ?`K\?h°>íå³?‡Ð?®?³çþ?²@e?µŠ%?±j?é'§@ù ?¼€Ò?Jm‡?^ƒZ?m/Ô?ÂÑ©@u”?÷‡e?±×‰?‰Ói?…`?„œà?ã?A?ËŠQ?•…&?±ø?ûãÚ?ÖÁç>àš×?=­?ŽÆÉ?Š„£?Œ`å?“†º?÷T?ô”z?æÑð?éod?ƒ]?hDØ?¬]?¿ï?÷ZÀ?üÖd?·w ?œä?°I¢?Æ~¬?áI.?ó‚ç?³F^?jÅœ?¥œ/?Ò˜á?èæ@ Ù?Ѽc>ê?\þÛ?äÌ +?Î?Ð/?’mè?ˆV-?¥˜@9¯¦@=±C?Ž©?ŠCŸ@ûf@{Ï@â@Ø&?ž–V?k«d?jù?pt¹?†¶?•h ?ÔW8@.?çÔ?Ágž?ØgÖ?膓?ŧ†?…¿D?ò?|H©?†•b?°‰W?ž¤Þ?Šî?.!…?˜1"?§ƒï?LP?>m??ñ-?ë ï?€i§?J‰?±ÇE?É!“?¢š?›€ ?ŠÞÀ?fû°?eKÛ?Z‹D?4«?*ž?gh´?‰ƒP?–<…?¦½?–%ÿ?™÷?Ÿ!/?·…¾?³Z.?pø»?f +¤?¤fk?¬`ï@@%O¦@ fã@&¹@ÿä?ÿ±ö?®R¨?A͘?TB·?e,§?e¨?e ¥?‰9ã?ÜÐd?Éøñ?dÄù?e¬k?ÖQ?Þú¾?tø•?LsÒ?Û«X@÷þ@!4@9$m@4=U@)Ù"?óhs?˜æ¯?Š]“?ƒãà?•S?­† +?Ÿ± ?†}u?”MQ@%EÌ@ + +?­ &?ªN†?ÓsD?ÌìÊ?ÂÇK?Ëlå?åÇÏ?çt5?á/°?â”í?Ðñ€?µ®â?zAj=¦µ=·ý>ùÞQ?Õ?ƒ’Ï? K{?gáð?aĤ?à>=?ä½z?µÌ!?©M?© p?¨û‡?¨,¡?£¬?Í€º@ ž“?è”ÿ?/ Ò?L5?îß?÷,·?¾lz?ÍLB@ê@'VT@4=@1AÑ?´Ö?>Í?uïŠ?Š/?`Ò[?úš?:»7?­nP?¿Úÿ@Aüä@8Åá?¬¤Å?§Dc?Nv¸?*øQ?n%_?‚¬î?Ü$^@•á?½ƒ×;@è‡>™~œ?†h»?ŸVâ?Ì?¶¼%? kø>þ8…?”.S?¦F?…³Z?_”ï?©Äù?Öö?ÜŽ'?àA?ÏùÊ?¿¤?©‡?\~¦?\dt?Ë:ó?Úï@?‡ý&?i/!?ÏÛ°@”?×{•?¢u+? ¥Í?¼Ìr?Ã×?¨‹K?¤s6@´^@¿ò?šsä?€m,?ëФ@£O?ÉC>ÐÉÕ? I?Ö*ç?ݶX?ü)ß?åpW?Äñ´?Îë¾?ÿrÓ@}?ßÍH?ÏM}?ÀÙ?¢S$?¤*?ió?ui@?ןÐ?Ø-?¬·¾?¡å8?df+? ™˜>Ûòå>èZ¼?ÙY>×(b>×Ñ{?PJ?g´—?´–O?¶È ?€Ý›?T¼ ?46? +¸Y?U·Â?ï¤@6k?…"|?u¶:@ ¥(@2Ô?ã<ß?Züý?tR?–áq?ªï9?Õ¬?ì´u?”Õ?vG?¶ü?>¯?›UU?£‘±?Ö‹ù?øÛa?åÊU?âÒ•?é!v?éS?ã"“?l=t?G{õ?Á˜Ù@²z@IÞ@è@?û¦¡?…¦?˜Ò?žC®?œê‡? y?œÙk?µ­ÿ?Ý3 ?ËH?¸R?™m¯?Hã? «?¯HQ@£`?Áõ_>Ñâ>òìü?žôƒ?’g‹?. ?/Àö?¡î"?Ñ:Á?—>Bw>Ø̈?ÖèÆ?½–?fP$?Q¬!?‡¦?œSF?x?9 ¸?5κ?{?“+M@ Ú“@Ò ?„}>ÞWî?/. ?ScZ?N²³?Q '?i\?"?—Ö?C ,?TÕ_?'[?!tt?1y?ñÞÕL? + ¶?$>?¬?u ?‘K?Kñº>ܹ_? ž?3é?¡€>Ü>ÞTë?XåÈ?/Æ·=·)`;Šÿ=/Õ=ºØ'>ßB¢>ó-?%I-?qD>õç"žHø>æ2%? ®?;‡“?o¢‘?Ÿä§?|)+>ãæ“>Èv>«`5>»@Š>îi¯>v½Ü<‹~©:ÝiÜ? žÛ?G*š>Þp>Š¯_>XÞ>3W?RoÌ?fpÄ:ä@=“à=Œªu>r¦->š›è>¼BÖ>ÞAa>þêÇyŒ>¦¾Ô>…›ˆ=cú1=©4ñ>Btp?œRR?ÓW?‘çì?¿c@ýK@U‰)@ÿ(;Áß*?QjT=¬žú> +Ê +=´¥2=#>{Â>“ÿ>áK®>Þå>¹hï>‘|ý>ÚT?`dÀ?_…Z?Xĺ?c=œ?f"Ê?S]›?„7µ?ªÜ9?›é?mò¯?zíR>z^š>CjÇ?;Ä^?f‰ï?Œ¨´?£5?Oº‡<ÁRØ:çga<Ã4˜=®T?r? À¦?œÛ•?¥d7>²jc=ƒy>N?ißó?è7X?­­ >ëí>Ü<—>zäô>d¯$>÷õ;?»>õ=S>ëøZ?ÝS>æÓè?~\§?¡tÂ?}®w?SÒH?}=6?–Úa?œq?¡CÄ?` ý>L³?çÉÖ?ÕFT=;À=”añ?Äæk?ÁM?!?ý?Ï~>úM>ì½D?±¸³?×ÚB?‡ +D?<^g?>þm?[_›?.¨7>õ‹¯?Nö?(yŽ?˜}Ž@½Ü?Ý ²?FðÕ?S7„?lÀ?t]?˜­¢?›êÜ?‡Á]?‡?V@ +MÈ@ Ü?">ï:ú=V õ?=ñ×?bŸ–?\Sè?V +]?‹J¦?—A?f2"?PÚY?=?„m?;ÔÂ>êo.?½Nå>Y‡è¼«?8×g?h™è?->èyÃ?&³½?hYs?»ß=®ê>ÜŸË?®Û?­a?¦œÙ?š½7?EóR?Uãþ?hHØ?g‚Ñ= 2l>‹~>–¾ ?LÈJ?}á×?CD??'`K? $>çHý?Rch?“v?»_X?ç%ç?»N ?gr?Qƒ>?d«? OY>µÅ×>ìä$?Î6š?Ìh"?ò?æB?°-? *q=ƒËú?5z?fËi?×>æÆ¿?€äN?®Õ%?f£>øÅø>þA^?߶?-»?z¼ï?ŒMØ?¿¿¿?§äå=÷kM>¥ 1?éé˜?ßšx>ù”‘?Êh>~±>‚Áö?ap&?o·0?œŸ?­6Ó?ÔL"?æþV?¨=@?±¨?cÝT?@ö°?Tì]?x£¡?d=î?0ºŠ?;‹T?5'?5³ ?g`Ü?|ˆS?â?á'?n d?jK2?à6_?ç©}?ç¶?æý?<i>ÛzN?ƒãë?¢Cè?¨Kª?® ?ó].@°Ö?šÎ=â@î>öò²?…¤?© z?焽?죘@ +É?øÉï?6$Á?/çÄ?,•å?<©A?ÆD?Â27?yÚ¿?€Œ?Û‘ž?ÚiP?¢£×?‚9?¾›X?ÌS?Qa>é©?Ò?-á?Ø4@&½@¸H@ AÚ?íO‡?¯#z?ƒØì>êY ?>_?®@·?Û3>ê¡ê?!7?¨¡w?‘óy>&™>B2Ã>ŸìÕ>¾ *?…ãu?‡J¦??:?OrR?”\o?Œœ@Å4@ªù?ªX?“v?qQþ?Qžl?†ƒf?™é½?BÁä>ñã? +Ù]?'õ"?£?Þ€?Š¶$>쯨?.tî?lÖ¦?Pþ?§]?žã·@1S@2Æ°@m=¬@Iu‚?ëâ?ɶ ?dÕÀ?a±I?^‰÷?[a¥?X:?…^N@cY?íȨ? +,Q?{}? -Ý?.X?¾ŠU?¹™â?¦‚`?®õ@?=ÿ¼?7¨ +?̪$?ÖŽD?j„º?JX¸?i[=?~+?‘¦y?—Uz?}Í¿?oý?ûB@ô•?›î»?`ãí?|i>òª>!;f_?w9~?¾T¾?ܸ?èÎ?£RC?o¸ø?Ë@a}?Ý{?ÑÊå?Æv'?¸ã¢?z†S>ð½?¦Sœ@„7@¿’@ó?Ä(?p4ú?i &?E„]?w&4?´Ax?´Ej?´Iµ?Ÿ’‡?pm??‡”Û?«‹e?±âF?µÍ?’¸¤>òäŸ?Üx?h{B?˜ó@Ol?îšÅ?œb+?jM?´z?Ö#—@4\¹@˜õ?p³R?\ì‚>ã ?¤´?”¹?ŒT&?AÊM?iBs@*íX@+ë@x;@H@ðý@bõ?ðø+?ð½?ðºo?ð³×?;Ð??e?èmð?ð²>{Qà>´C?è%Â?óHS?Ã…Å?¸²?:ff?'e?ºöÁ?ÐYK?Ñâü?Þ¿%?‚îO?7ãf>ÀB|>§Ë?{H¸?“{ž?©E?Ï @!³@2"?ìy½?´¦?´Rà?¶;|?’ò?~(?ŒÒú?›‚?Åd‘?æ4(?äº +?ÚBÉ?²&?’’å?„’îg¥>õÔf?è?Çó?Ùi®@óŸ@ )?ßSB?»?ÎÆ?Ñòv?¼(ÿ?¹ªÖ?·‰?±ý·?#;?.œY?{Oè?–Ž&?º¸P?êü?ìÛx?ìd?å…}?ØsK?¥–¢?C­?£x¢@ 0«?ô”?¿?®Õ>Ü>ðÿ×?†®*?‡?Ÿc?ˆ8?ü™@O³?´.t?°ºL?sF“?kwM?x•S?€i?kµô?ñ–?[©?U?¶¨â?ʽ?õ‘g@b?Ì5?¡Ž?ÝÙ~@ o?þÏ­?¯Ì,?Ú>êC*?… ÷@ Ñ`?í†s?iþ¿?y2è?˜p5?¢ÜB@Ø @ª?™ÒO?’*?‘Ú+?‰þw?ü¬Ø@ +Ú@÷„@ò?™ˆÚ?hö]?&Ì?¸b?0a?LQ)?ƒo?‘ •?­–S?Ó‘?ÆS?®;P?±>?´`?¾ìå?è£?¾ô=%^é=èL? €é?å?gœ¡?g‹R@ Uí@z?°E?›Œ…?ã-@kú??î=KNq?­Ôý@ Lc@tÃ@ ?ðW?ž‘?ª?ÑÝ3?ä Ì@«9@Øû?GÂâ?bù?ßb?ã²?­#¡?ªÜQ@‹@‘K?нU?Í·¤?óþ@8?Ó|?Ån\?§X­?`ïÊ?JÜ?Z™s?båg?dñ‹?GP?³ž_?®?d«â?pDø?êܱ?âq?Ù.n?ÐT ?Ó8C?È*Ì?E$°>ì5s?§P'?ìý?ÿw†@Pg?Ð ð?”¯?¢'O?ÉÀÃ?ÁxW?™æ½?À"&@i4±@tñû?ªwu?ªJD@±ö@³V@{?ñîŒ?öº*@ZÜ?Ø¢Ã?À6 ?Îßž?Ú£À?·ÊŒ?bÆ?A¸Û>âK?p`?×”H?ÄPP?Ë2)?¼Äõ@Ï,@·;?ß»µ?º­:?ª“]?¨êI?ä6?sùÜ?Φ•@ @ %ÿ?Á…??¸Oˆ?Ê¡}?¼ƒ“?Îq>ù¤:?WÕ??}i3?™ñ»?´Ÿ?™n…?p{??·z?騆?°ãî?_Ž!?‹Ü?Ü)Ó?ç$@öy@¤¶?}áP?ƒf:?eo{?^ÀÊ?—å¡?¦ïW?—+Â?™bä?¾Æ?×R ?€>>B£=? 1¤?ô“Ñ?÷pÒ?($?•ng?Ѧ?™áY?Ìn;?Û ?Ù’£?ÜÿQ?³ëQ?Ž + ?ªýš?ÏÏÉ?ÓÜi?sì1?hóÞ?grû?_o?åäë?ñ¨m?ÑÈ°?Ðθ?ÁÔ?¯Ã±?¥Ìó?pÕñ?… +?ܯO?ÙPŒ?‚Øê?’Îg?0ÇÎ?‚4?Ž%{?Á¾o?Êpê?ÈÿF?³º]?Z7½?j–Á?‰I­?š-ç?Gß²?V{I?⧌@ +Ì?ѯ^?Œ1?n)>çõƒ?QÊ?æ“*?Ó??ŽM?¨õŠ?– ?•Ù†?·¡?Ô° ?ÓÐÁ?Ão¡?•hu>× >åp9?z©Å?W”ž?È–?ò«À??Ú)<•À@?¡œ?‡?‹CÚ?½„?·´¸?Âñã?·-?Ÿ8å?ŸJŸ?‚ æ?Tð,?’?Ϫa?ºQö?•õ¸?‰õÍ?ÕKÿ?ØÍ@ 3¡@4c°@!Ä&@v´?莀?êN?ÇÍ?‚¥ï?br?Pì>Ø¥(?Ÿß6??Å2Ë?[Ëí?@>ÅÃo>yÀU?ÎÉÐ@/R@BÔ@èx?í!z?i¡£?Œñú?àœ§?ìÁñ?RTV>áPœ>ç3?"+v?l??£_?²’É?†dL?[d×?…—Œ?˜§µ?÷%™@Ad@ ®@—@µM@Ô?@ð›?Øë˜?Íãf?²Ê9?¦g?®‹Š?+½?ŒUª?¤Ó?°¬³>·jF=d0*?vÒ ?Ñ?²3û?TQå?M9˜?õáV@‚Û?‰?R?XÜI? Ê>óïŠ?GPã?Œm4?‚5¾?Cš?)ù¬?¶F.?ËþŸ?R=N4?9_ß?¯ò§?ŽèR?/½?¬v?ŒÄ?™ñE?`Ê>êÒµ?W +k?u n?r~^?€ZM?€çV?˜”3?”êš>¿¬ñ>×üW?ƒí?•J?ÀÞ”?úü(?à¶f? [/?eXÂ>qv>Õ•?V|)?=S“?·÷f?Í:$?$»>ÒL{>¶è¥>›EÊ?_É?‰_>? _>¡‡=i´´>Y‹O>æLr>ç >çÄe?ÐC?Šß>êJƒ>ë±>ëÝ1>ìº+>ížØ>îŽk>ª]Ý=ä>Ã>é~N>ƒ˜O>‹Êä>|AV>„åÿ>¤Üº>Å™>å¹c>úÎ >êÙª>šä>c„Ï>Ú„P>;·<—qž>ì±7>©¸†>>ï[>‚Í>¤÷W=¢•>LUó>ðDs=öYª>>Üìw?¦ÍK?³E=Dˆ=P„>ÏX@Ô‡a@3Ôe9ÂÐ>þ©…?SY9?M>$s@<ñ¡„>Ý >ÝüÏ>U;­>œ>¶?‡?3R¿?fV¸?_Œ¨?ax?sÎó?^w^?ZZk?#¾\>­÷>Pk?J»Ï?N¼?R¼k?V¾#?Ë>ÖCÄ?*e~?eo£?‡n¿?¨5?™û>èä…>é$¢?el?!4½=Ïk¿>sÐ>¡?f^€?·1«?†LÈ>ëf>ë;~>ë]l>Ø‘>Q+>:ƶ>‘lð>˜›?döÉ?zd‚?XV„?PÀÞ>ù¬á>Ãz2>Ýã=0è°=M l<¹¤D:Àz>ýÚ°?­)+?«UŒ?¶{? ?>Ë’.>Ííß?<«t?J#›?P™o?K*0?Šîp?‰2x?›[¦?¥eë?‚q1?l\?xÉ?g]Í?’E>Ì©H?nÛ??×?‘5q?Æ`?­¯?s+Š?zñ?Ž·F?u‰Ð?FÚ?I ?Ô ?ÌíA?k¢„?k?k{²?g‡?Î?$‡?Hu‹?Mk?:= ?<Ä«>Ñ‚Ê>'¯©?‰¼?j9^?•9?ÆK??¢þq?- ×?MˆW?Ž& ?…d ?M«%?:¶ž?¹x?,~?Ž©O?“ ¤?F€?:Y‰?:Ïk?FXë?eé,?hÉp?rð>þ9„?D§?h4>? F>èaž?rWŒ?«Á*?ÙµÓ@¿¯?ßV?­ÿ~?(? a4?20÷?KÑn?Lr‡?g¬…?W<•>,Q”>?·©?’Ü?–ñã?s@?dfÏ?˜gï?Ÿ84?[P³?:3?uN?˜0ž?¢ä?E(q?bí&?a?Ž4î?­%¯?œØú?UÆŠ?[#N?fÄ;?k§!?¤& ?§=*¸×?N $?f©Ü?d/.?`òv?ÂR™?á +º?+9[=…vö>û±?Ps?-ðh?õR?±¶?rf?’2?uh?(!¥?‘É%?‘P3?¤&>ýuÁ?/Y?-d?Þµå?æÅ™?ˆÄ ?|«Í?œVH?¨Þ?X” ?Z>þÜ>æú`>ÉVB>–#J>aé>š¡?6„?à?Äf·?oê9?€ñé?«Ü›?­05?­ˆÿ?«Mõ?hF4?m3?®6R?±Öˆ?UG>粦? eŸ?b‡?Ùû@ ?É5w?°†á?˜?pÅ?†pü?™€ ?“7ø?—ÚR?­mú?È’?³*?h«?|ð?ØRí?Çè8?Ä©­?È +?G­?B?F@$½.@*¿ä?´wå?ž?Žñ?Š³þ?42?~{?‘äŒ?¯>-?´{Ø?´`G?Ž Ì?iíÖ?iþ×?j`?~/?ªäã?«)ó?¯ÂŠ?™….?Z%À?(Ù>„ÿ6>pÖD=uË>§ ~>éÛº?ÃEô?Çk?û”?ìdš?J8ñ?Z§Ê?ã +w?ï?_D?HY@ Ðb@Ò[?«e?‰–.?˜\`? ‹ƒ>Åõ?v5U?»Éœ?‰*?@P•?Xp…?uV;?Ðl@ÏT@ú@p?«n=À'0?SS·?í=„?Öê´?ª0ñ?™eÝ?m€a?m±?m¢Ë?¶7†@GKÝ@5§?Áš´?¶_ž?¥îÉ?¨I×?î\?ã$Û?0üˆ?&Æ#>‡Û!>œà?È|‰?ÇTº? h?¡³¸?*h¡? +óÉ? L%? i±?‰`?Œ³?ßV?ï^>°– ;%×?½›X?î¼?è÷µ?á°£?½âi?³“^?¹¸%?¾)i?Ð$Ý?ÓcE@Å@Í”?º]1?oÀC?ŽoÈ?šÝy?lŠä?6„ ?›ö“?ÝüY?çPŠ?ð«É?­ø?GÓ+?áTï@.¤S?þè?›”?žÕw?¢±?“.K?pRG?@ò]>ðYv?•¡”@/Ö@ ë?æ%?â ?᱘?Æ¿ï?šZ„?Ü÷j@3¶=@v??´kä?´³g?É ¹?Âr›?p–Š?t$¦?c )?Š†@ +Ør?î(? “q?OXø@x@@”0@ +³y@}€?+?cd?ð ù?ðœÒ?ðç?çăÌÅt>»Ò?ùtö@r?|;’?}Kl>„­>U§?!^L?;}A?c7å?YMù?£¢?µiQ>ó“>oû}?Çù?ðHn@ëŽ@(û«@æ'@Í«?¦µY?qwI?vä?zæ¶?tÇ(?p ?—t?¤Ð¾?’P ?‹ýí?…¦?†ð?]5ñ?3Ïl|?¯Àq@.½Ý?ô¾?]aË?¼ý@oÉ?Ñ(‰>ùu?'J›?oN?d +ª?`†&?Äç†@>’‰@á?V¯?- @X½@¾{@0ý@2Ë+@´@æ>?ÀÃk?»Ú!?\8?…®=³¬áÎß>&¨Þ?ˆ¯§?˜ Î?êÀi@sH@ ÷Ï@¦+@Ý@—z?ƒT‚= +ü_?3eÕ?¯´7?¬è?¤|?™Á?šù?°!?®?°Ð?s0?¬a@ ˜‹@å?itŒ?xt”@ d@E?ñ»>ê…3>ñ}†?¢D?˜~"?£—„>Ìòk>ÈÒ?À_m?üÏå?’a?Fˆ´?‚È?®9 ?´&!?¸,0?Çÿ?èª?çö‰?çå{?ÀÛ>Ä À?·ñ@@C?ï?]?•T˜?‘h?“ ¸?—Ž^?˜@×?·.?o: ?g?q¬?­,?QŽÌ?"á?µ¯¹@$ž@³À@ú?øV@?襚?úêm@iY@çÒ?6æU?7ÉÉ?²œ·?¬§`?¬\É?¬P?[ ?|;Ë?o)?e| @Ùå@(PB?“ó³>å:*?›õ˜?÷,?¥Ž#>äöH?¢ú@$ä @Á?|´†?RÞ?dŽ³?€€@ÂÞ@¸d@®ï@¦½@Á@ +á?Χ%?ª}ã?ˆÂó?‚6%?«Å„?Í~?Ñ>(?Ék3?²=T?”æ7?Ÿ§t?£¹V?˜=?± o?§îf?f‚ƒ?oœ€?›CO?¯Ï§?χ ?ÛÑ)?Ϙ†?Ì$£?“?..?ƒôó?©¨z?|Ñ>ég×?.2q?’Ë@?“ŒÌ?Ó!1?ÛZ/?ÌZõ?ÚÀŸ?ŸAr?±`@ ¿@%?VGå=ºoZ?GÀ?›‚?¸® ?ï8ò?ëë{?Ôœ¯?湩?ÿ;@b?åçu?à8Ø?k¨w?`)@!F@)Ù?ë´!?Ã?ß@~w?ËW ?P¯%?ZÓã?_»?o˜0?‰ö'?›Gþ?¸±™?®>Ë?ÒÒa?ÃPC?ž)?œQ>ý`l;±‡>ß'÷?v=e?hòO?©þ?7b ?Áu?Ãnä?€q@?v Æ?ã­>ò>?‹‰6?ªr?åÙš@^l?³^C?(c3??2w?€j3?|Ew?–¦˜?¡¼@?@5_?Ó9¡?Ãè]@p¸@'„”?_?—?ž?ÌI¾@>K @4x?˜¡Q?’ø>¢â>aÔ?M&i?fý?h­ð?qÜþ?Z“;?Y½†?KÑþ?ͺ?Ô?_»J?IÂ?½cÁ?Æbx?«s?Z¤s?ˆo?•‘ü?vÃ?¡ l?¯ƒ?X?Wà^?úÛ?u){?ܲ>ÝÜ? ÿp?.°«?Yb +?gE£?W¿ö?°#Ö?»¶¼?QÅ>û®>Ô3õ>À¨º??£E? gL?¦ó?½ c?Ä0Ò?ýôç@ß'?†éd?Vâè?¾ µ?åˆ??Ãו?²Z•?É/T?嘯?ß„Ù@‘N@OZ?£9…?‘åO?–o?˜±ª?ºz±?½dÊ?¤?­?ãE>õr ?Øž?õv?ॕ?ãP‚?ÚU?µØ¦?¯³ ?©’‘?£kj?e–?]pô?Òf@ +)é?à?R=þ??ˆc?æ?7ë?ô­Ò@¿Æ?Óÿ?­µ?‹<Ì?Q5?hþÓ?åÅ@?ò*?G(>ÒÅ?šÝÅ?å³£?÷{@†/@z ?ôß?úEž?§óu?œtA?Ö.L?òk?÷ t@™?ð)ù?-Žà?:&+?FÂ?P^º?¦—¶?Ñ÷?²?|À?„«Ø?‹ Ì?‘xð?“¼\?œ~Ô?rßd??q-?iÑ?l’?¡!?¯U>?¨û(?Zæ7?RŽf?ûu>¬a ? VU?q`8?‡$Ÿ?uüà?e‚>?ä#>Õ0Œ?°vÙ?µ?Œ?‚\î?œ +9?°«F?˜Ît?Pª?NÕu>Âmˆ>§ñƒ?f…&?^§Í?w¬q?›°?L”?]Té?.í:?½ +?Ä£>‰¡‡>”¹3?M¹?t %>ù E>á)}>Þ#ò>Þ¨I>:>4Êê?j2?]@ì?„>1?™ûµ? wª>?¿Ö>Oã>µ³|>æ[Ü>çã>çàS?Š#{?è«’?“w>ë"…>ëû÷>ìÞs? ‚?¢?3"¢?jxð?o$Q?b?>‰ëÔ<¼¥f=®.È=ÍŠŒ>‰Ê›?/%t>Ší;“7¸=Ýx.=é^Ð=Xx>å=.q:;›ß">™î?yëª>ÞL?Y@ü4@[–:?^I–>‘(KD>¬CÏ>‘[ä?*¤?1µ?4—?]4?d0w>åű>âÆ=Ïß>¡Æ?%Ý>÷×ä>²yö>¿äˆ>æ>æst=ÃÅ<Ø;ŽNv:–>yt?«?F­|?¡?†ó>éS†>ðb!?„¹1?~ªÅ?ˆ[I?ˆIã?ò>»‹3>“ì>Y»? Ž˜?e¸Á?:É&>ë›Ú>Ò}î>&I>Ò—> e1=õõà>äE¯>ìE¬>Þa=‚²T=·ƒ=’“?!»‡?l›¯?l¤€?kŒ?¬k“?èìò?’9>.Ô'>—o`>ìÃÈ? Df?PT ?B• ?¶?*?JÇ—?P™”>ÉÈ>ÑÔœ>ßmv>í?‰9%?ž'‚?ƒ0³?lgð?9qM?Úu‚û?k•E?U +>î?0ëŽ@ es@Pu?°OË?¯ >><èÿ>==3>ãÙÖ>ê¿?$^?Ð6? zi>êoî>¬çJ>ˆË >« l>ÛÁ ?8·Q?iø’?3Î6?{ ?QÆ—?™}Ð?‹ñ‚?nCý?7æT=êÇŒ? ³ü?#“é?Âõµ?Áw =SâZ=*×?a8·?h­s?§ä¢?®f>}=;¬ ?+2?aÜÆ?#ý? ”Ö?#\ø?çÆF>ÀE>ße>ðOë?gŒï?hz=?NQ?5A©>|¥>~¶©?¬—”?°Ê?I ?Hˆi?ßmY?õÃÿ?má?ÙÀ>“‚=ý´œ>Ä®? €K?[Ðó?˜›?§‹ž?´{Ò?‹±>ùDà?'À?fž?>F”=õöü?¬£?¨yê?g]n?f…q?£`@?¦, +?=ʘ?+ñ´?|M?ˆ?±>ô—>o >>/®> s^??¤œ?©:y?”x?f€_?B$>æ‚0?Rî?J1?…ÕP?1÷??=.Ž?·qa?º.@?'êÒ?U?ŸW?éû?;.@?Jœ*>õ• >¹dŠ?’÷ñ?Ç?Ÿ8S?~ŸŸ?øP?ª?ª,;?«Ís?›ôŸ?g&-?4ÊÝ<ÔÏÖ>4àð?gN\?tµo?àÕ¯?߃P?̨á?Ç€‚?™Èz?’â?&è.?!°?^¾?g×,?Íîa?ö—5?´X`?Œz?–£?–‹l???’$Ï?|M?5¿?›cŠ@R<@ Î?k$©?Ê?С¤?Ê_e?®­¶?¯Àå@ØÈ@¢œ?ìÖ?é8f?°Êk?ª•Ë?®Š‹?¯Ô@Ý÷@&?¬¾9?iÆ>¼YX=L7 =¼Úú>zÌ>¿)e?àÖ?jS¿?£éÈ?ˆJ?/…?XÆ>£üã?‚Û?¬ýG?¼3-@@&Š?ÙµÓ?Ûßw?0 +?& ++?kAs?lTË?@-{?/E@÷_@\Ã?Ó5?ÀÕw?Žm÷?‚ðµ>”øÛ=ž¬'?µ Q?ó"æ@‹—@1O?ïÃ`?°¯#?±v$?±„v?c¸A?¡é?8zË?XÈç?jÏm?†îï?b5?$¶?EÒ?m[®?O!É?J¶?Týü?¹hï?·çƒ?œqn?¥¡D?­øÙ?ªö!?—é÷?˜Y_?nV?Pýl>(nú?îV?çÖœ?nsá?t^þ@Öt@ +Çö?”/ ?Œc@;@Ž?ðûÄ?î?èÌ>îqs?¤ïÂ?¶«K?8Ü“? Ÿ?pøW?‚8>âe>§4À?Ÿßš?Å‚?¶Ë¶?·!²? f?oŸb?üt@î?´U‰?oÈ?$] >ïÓ¿>¸±+>ž h>¥Œ>­•?Ü  @<+K?éE?/ã? j >ð ¯?8ï¥?v>‰?8Œ">ð7«?e0ì?¹ë“?¤ƒ^?…ºø?Çh¯@Ö&?à%Ú?p^Ø?´sÆ@Jê@ó@$×}?îÖ>ðrŠ?Tzq?ÏÖf?Ãæê?¾N?éÄ.@3°@_4?p}ú?ˆ a?ÀñË?¾Ó?¼µd?²ŸÎ?„t7?Ž² ?ð&1?èõ\?µl?¼^D?ÚMu?×oë@ [’@T‡>ðn>ó¦Ð?háÚ?xF„?B¡Ê?>¶L?å&?p€¯?'i3??€kk?Š`?)¦?´Ý?35^?A °@–™@ u(?ˆêâ?kŸc?oœA?p1A>UVz=|´?‰ùn?«0î?ƒí¿?oݱ?ã¦,@fÿ@-˜@M{?´u>?v,k?l,V?b%7?¬Ðƒ?åê[?ðÿî?åE?´?Ž~¬?Ñv¹@ &–?’ÓT<ŽWÄ>ßï"?sÃñ?“; ?§h©?ºDû?Ø‹ž?«üû?MÚ?Š‡s?ä†á?Ðóø?y3p?Ÿaç@œ?êNX?²Ø,?¾²ü?ù¶Ù?ú¢?Ù&N?è×S@T-@C„?íÒ¸?çh?s•?võÊ>NmÃ>ˆ)"?®õ?²ímQ?Òü?öæ¬?jjM?…U?§¯~?·©º?½gÝ?¿ÔÍ?øâ@Ø@òø?ë.²?ŒùÅ?œ]?Æ7@ñz@ÿ?ë×?þß@?ñËh?–JÀ?x¤–>ëð&?:õi?¾ö?¨Uà?$SŠ?0H‘?°¦ú?¥ì&>þR?Ø7?ã?µ?ßëM?Û$a?åÈ?xñ˜?N>? Ó$?³p?͘?Õ«Ä?|+Q?.bç?Ò&@ +ýô‡?Ûj{@+Üñ@È+?¯~ˆ?a–2>‚Ai>Ö½f?9ß;?6úo>ñÍ:?Œ~b@D1@.ý”?¥´?¢­²@nX¸@x‰ ?k‚š?gÙ:@bn@õá?ç[ú?Ùõy?Éá×?´d-?ÞHD@ª=?³dE?T‡‚?“«™?»é¹?ËkŒ?áÇÏ?ä8 ?ç¿¡?ÂMi?|ˆ?—$?Á|?Ä×*@ i@jm?d Æ?råq?;Pâ?C‰?©eÒ?¾,þ?•]6?ysÿ?ŸÀ5?­Ó?<–¦>æœÀ?%ð§?]f¹?† ª? ‰°?—?zcÒ?žÕ®?Ë´²?Ï„?íS†?òk @ÐÖ@$?¥D?4G?Jq:?B7?`4Ò?e[0@‚Ò@7•V?¨®\?3—?Q? ¤Ö>îæË>äÏ´?ÃÔÛ@Dlý@%{¾?Ä€Í?¬BÑ?dm¸?…î@¯@d…@1x@ `?-)>ð‹w?Ãô?àˆì?³}!?žˆa?¤€Ë?ª©Š?æ#ç@ T#?Ùw¹?ƒ%”?ºt‡@&0@"­@ „@ÿI?¤J$?ŸŸÍ?d;?b¬)?¢/?©æ—?˜ÒX?—ž +?1n®>‹ÏL?Mm‚?ª#—?tÒÉ>áóÝ?PX1?ÒGÇ?Ô]?çØ‚?ÚÃ?œ$?’S_?”?…ë\?khÙ?a²?YŽH?@cä?+WE?8Sý?jíÉ?Œ,ñ?•l?•}?’m?¨H„?¹£P@(¦@%ßµ@º @oŒ@+²@¥D?¿”ž?™až?ºg?±ã"?v`?ŸV>ß’•>ꮜ?7$Ï?Ħ +?¼‰6?ÞÒ³?Þº¢@›A@®?žPm?j›^?À>Û¶¦?Ôi?ö0)?×í·?³Ùœ?¯rÐ?¾Ÿ?·(à?¦Z?¦ â?ÕFç?ÜÜy??}ž?Ý=?´~O?ðŸ*?¤öè?+‰}?slÍ?²ôòj>ÜÒB?j‰?Zêú?üw?³iâ?^¶ò?^U?…….?£¶(?Ê­o?Äûi?¿åÄ?™[þ?Ï(;?û:ä@ì@y ?Ówu?YœÅ?bë[?{Å8?gO?ëâq?Úë@î)@òá?ÛT?¡ï\?j9?ü¼?^o?«NÄ?™â±?/³u?;—?ßþ#?ßØÕ?PFÓ>×FC>ƒs‹=üb·>Ô¤?†Éí?‰i›?Vë?Vxs@ç,@ YË?L:ã=Ÿ{>ÄÛ¯?A¥Ÿ?ršF?  \? ²?¼Ó?ÎU>V·=žq ?p¢v?Á•?¤„ï?Txi?ƒI÷?üÃÖ@I?Ò’ï?Õ Ó?ÊUª?ºkr?ƒ‹‘?"H?†ÓÑ@V @d!?ÎÙs?Ò×Y>áÄl>·á ?©¡?ñô­?ä%?ÒgO?ÎSp?µÅ?̨V?¤«¹?— Ý?ØTº@Ü?×5?‡ ?‡ûu?! ü>ø·?éŠú@Òã@k@,õ@Í«?Æ&á?ªž7?‘ª•?—ÍE@?N*@G<—@ÛÛ?ÐÄ(?¹G`?¢Q?¼°6?б?ЬM?o‹Q?Trü?•µÎ?¸÷à?Âʈ?Óqõ?Ý?5Yˆ?¡>Ù¯n>Öì? ä?;¯Å?WM?Q?U<È?k(,?^†â>ð¨~>Ý| >÷ó*?Äx?;Ü!?ƒ¹ ?Š‹‰?žÝì?¸Àj?_?RpI?EØR?5£²?FI?NS·?Ióò?†?K?— +™?ÔWá?̽"?¬d·?¯l?øßs?ýQÝ?Ë•P?¿)¦?£n?>ÖAÓ>òd~?BWS?59é?HÓÕ?eý·?N@s>ðp®?SfX?¢Ûß?›Hl?‹Öó?UME>Û%S>ѹ¡>v\ã>$í¯?U½O?[ä?PDl?BÁ%?J˜ì?'> gâ>‚t¢>¿2¶?žI?5ÂÃ>è›>™E>Ë]Â>çñŽ?©y¿@ä´?Úªy?ŠN¹?Z>ˆÙì?µÛ?Z©R>ÆM×<r€>ºû‡?½?óe>ùsú>cõ=ü[_=ññÍ<ƒCð=–b3>¶üž>—ž«>oÕª>/Æ¡=Þ=6pÉ:š¹¡>àÆ>Õïa>µtø>;XÙ<À30=æß>øØ´>QF‡?J%>Èç´>—ñG=ÙÃØ>ðËT?ö'å?õt@?Š»J?‡=¿? ™â?®$ô@?ÿlM?‹R?[Ï|?¼Û>Xš§>® ?ƒñé?€zÅ?*æA?±g? âc>á9ì>ÈÊÖ>yÊš>„èŸ>DšÀ>²>ãl ?$ÇÒ?€“>Áÿ±> l1>Ä×R>ÌÞß>ÔàÂ>Üç=©l?¹?_ø÷?fíË?x°ö?–|â?Æ,t?¨Åf>¹ðÁ>ÔÏý?‡‚µ?ŠY§?)½i?óm>ÿ$Ç>ð\å?T¿H?–#x?’/?}Å7?r¿L?g¾¼?TS?3)9?(W? Pt?ÒÈ>ìQ.>ìe´?W•?g›g?mÍ?l•ÿ?iç>öî=? x³?è?<, ?F­?qú7?—#š?qCj?Ôt?ÈL>ìºÍ>ì³=>ì¯@>Ó‡L<à•å>ãàZ>Ö5«?T¿?Sm:?>#Œ?D£c?)h?*|Æ>õö=Їƒ?#k?l ?uÏ'?xyæ?–µ?°Ù!?C«B9Ñgã>²ÿ?kˆ?†€Á?¨Ùú?:-?.S£?6¹à?Õ +?5æý?‡”­?}>éð;>ê¯?>ßÛ?KGú?¢3Ç? b³>»X>^k.?WX?%„R?¡Â?&É>é@£>ªo¶? ?iù?†=ñ_ç>F¨G>-?`Ð?†l?OHÅ=¼(L=û§Ë>Ýn>÷ÿš?h¦œ?h“0?h‹r?jjA>ï¤ã>ØzÔ>ö_@?èŽ?‰òé?šO@?—U^?”YJ?ª’S?½‰H?BÌ>îÒ?¡k?ZC?Vß?go"?©?ÌC?ªµü>ç<¶? ]?Œ\ ?‡ +¹>¯‡´>£ƒv?|?‰à¢?o4?fÕù?M¸è?;G?Eö?T_¤?7p1?n4?˜†Ü?ß~Ü?¯i‘?f‰@?fþ?f€‘?EšÖ>âÌÐ>âRI?ó™?òè?f`L?sß @ÉS@â…?žA?’6?:·?3‚Ï?Ò!?èˆ?¬~¢??”n?£ÉH?¯-â?°I¬?^ò>n!8?ˆl?¬Ë_?~h>æl/?“?šŽ{?‘þ?D˜Z?IÈè?¾Á?1?Wã•?D£›>u$„=î™N?üƒ9@*¬w@Ñ—?ä­?¦1¨?fÛ*>íþÌ9¦z? âò?«Ð?„¬ë>Ó?f?3?¥°k?–‹'?2ù?:P‰?B‡Á?JÂÙ?4b?8»ì>µ™0>—¥s?Ôª?!R+?¢.I?À_z?Ž§†?gêw?Íu@‚v?ßÛ»?¼×ê?x×#>èD?_¾™?Á ?ÆQ“?Ø»?ìW@cÊ@¸N?™©ê?œ}à?ŸTŽ?¥T;?èþä?èç&?pcÄ?i7Ý?©YÂ?¯?P>üéD?S2?i¤)?’Ð2?ššó?*­>ÂÕ’?"ÚU?PÀÁ?Œ‡?¯§6? ?? Ä>ê|:?n°?ê¡6?û•³@»¹?öš?.Ÿq?Jœ?°M§?°#Á?£Î? Aå?ÃÓó?Ťh?¼ý?cÞ?Êê?Ó ?´ªu?°äE??Uí?¯ì@:h@5i@'i¢@0w=?·W?llõ?n?qJß@—¦@#Ò@$ ?Ûšº?‡zY?ò?Ÿìé?ì­ý#ç>öèÏ?²60?³<¥?°#/?¬‘t?Œô?¢:>öEš>ïj?ðÕÄ@Áú@2?þ Ã?ÞT?Úcé@Ÿ|@wg?ã>±?ÖÖ@ Vß@~Q?‡5P? ÿµ>à ¯>œÇñ?°ó?1>r7=Ô°æ>îË>R?Ž9Ù?ät^?‡Øy>ÿ~‰?¡fÕ?ð¥@>U@\l?æV9?´Ñ?–€]?p.Ú?d“?i?&± +>Ä=?|Ÿ?ðG¦@Ã@RFƒ@& +ã?³¢™?ÄbC?øÏG?Ømb?Ýh?žÍ/?ÍD2?·{?p_š?™¨+?ðd?ùv$@@#@(Ì@é?qð?b±? +YÌ?ÏV>ŽV÷>ó;g?Ÿþ”?ŸÐ7?LïÐ?cõ@?Ó× ?ÅËQ?™˜§?™ñÇ?ÓJò?Ô»D?´)[?´[Ì?oº½?_kb?1›$?Wø>FM’@jìÈ@€Ã¤?K&~>ïù©>ñmb>ùúë>áU>Ò­’@O ?@irq?þZú?ÍÔš@ E@Ð@ ­ë@^ë?ÓyÒ?³«"?¡?`?œl-?ÿ>‘Ob?ËXq@N!@ä?ç>(?¦0?o,æ?nëž?o?•3Ç?¯)!?¯ýÁ?³1?ÎÞ³?îÒÑ?Í«Z?Ÿ'?«M6?¼/?Ø l@2?ÿ%O@ŸJ?üód?Äé?ªóÕ?Tõu?bü_?|Ul?£rá@09@!»Æ?pÙë?‚Æ?¬M?¡ù>½ð«>Å͇@ÌÀ?ÿÊØ>û¬X>íi…?ó_? +?¬3-?±áÚ?΄:?ÃÝ®@)@Aß@3^@ ç?{‘à>íAœ?²CÐ?쑱?ž¼/?VJ?nLs?‘?½ÞÜ?ßà?æü?ì(@?ÔÁ…?¤\?ˆÌ?9xO?€6ª?á#?â‰\?ã3Á?ÝËÏ?°H?§ÍQ?aÿ?^ER?ŒÆC?‘¯?>Q?K¤?ñ—?íŒC?~‹ã?j±ˆ?§…?¯çI?æóG?äü(?É܇?»I»?×ôF?é·t@7ûƒ@cß$@ +Èj?ò÷?4 µ>™ý¶>Œ>|—>•+>ù'?]n“@#ÃH@%£S?é.8?Ù”9?bÏÍ?u’?ç©@?àû¤?÷3?ÿ ?ÃÔ]?Àé2?¸ÐØ?Á Ô?‰û?hSâ?Ï+x?ÿO¾?óñ?èÈ?ËÙW?°fX?qg>÷×H?ß}?ÕÞË?­ãç?Vã¢?°©›@6÷@ èV?‡wÊ?w’0?`m?H“>€À0>èy@Ó@- +p?h==? ¼~?Aç>?KVó?”4'?¥œB?ˆŒ?bÆ-?R„“?B7?˜˜@s@= @ +ˆ@„@Gó@53 ?SBI?LmÇ?š•!?–_N?’ ·?á?Õls?å„?¥ÿ3?‡??˜¤C?©ß??Zùó>䶖?r@jA?É·2? 8?:X|?+´/?hpæ@ÙÞ@ôï?ä k?ä?­±?ªÅÜ@DÅ@ +  @È?ûÉ?­Ý}?‹œ?Ààâ?û/Q?àÔæ?ªaL?ÏÈn@ èì?õ¹?i?‹?…üg?ªY?¬•@@ +^o?²<-?©ÓÂ?ÔE_?Ľ”?ѾM?â$í@÷z@ :¾?Åþú?M^x?Hæ ?g›?€âî?’ás?«ö?¾·k?ÈR>@û’@?è_W?Û¸J?ó­>G(Ö>¾y>àÂ?â?¸PÔ?±æ²?ÄL¯?Ç}¸?°e%?¨§V?­?¼Û?÷+p@›@¨@ )?¢Óv?aýR?ñž)@-hç@û!@ @Œ?Âj>ßí??’œó? D?Âð2?È Ê?¨€›?¦×Ï?ÁìÅ?¯}#?€K™?U]&?xíƒ?›œ•?°¡(?¿½‰?Ñ6ñ?ðëd?î?âîk?½ÿ?`ÖÒ?hz³?óÇ>Üã°?ŽpÙ?½×1?†¢Ý??o?{7?ÜKÖ?ÏÂ[?¤äî?¥gJ?òO½?ÜQ?™‡#?žä²?»Ó½?È2?ÜW?ãfä?Æ*?¤? O×?š®ü?‘/)?h0¨?„Ä@l@•Ÿ?Ë#)?£z[?„¡ä?_Þ ?ˆ¦f?—G,?Ž¼?ƒÈÉ?Œö!@ö@ ?ýÑ3@_©?¢Wu?`° ?-3È>Ø;È?t?‡D?´[>×Æq>פ×@*ÃÝ@×+•>¶py>…`ó>“?\>ÿïr?1„?.nu?E²?V ²?m.i@µd@ ?¢>Z? þA?iJ&?Íêä?³Ó>ðú}>ÕÆY@-ž@.m–?îZ]?¿%)?¬þM?‘Æ+'?¨ ?Ó”ã?«;C?AD?† ?Î3Ó?ç=±?ž»? R?¯è?›#~?­±3?ѽj?ÒŸ?ü%?µãò=imS<(µ?²Pÿ?ƺu?¬’v?®¾Ï?•åR?/½Ù?Tô±?ÈšÃ>´,?¤ð{?ñðî?í?Ü0?åÜ°?PÙ?PÍ‹?ÊÃ?@Ç4@”?Ò¸~?_n[?Y%ƒ?Г.?ÐŒ†?û[²?ñ"@?þØ?ÿ¹Ü?´íy†>ª/>Ù?û?Pä?U/+?„\?— +?›”F?ÅY?I_?˜Ð†?bÖ—?(Oy?Q’=zôèÖ/ï>ê8G?VÕ¹?W*~>éB@>×Ü3?àÝQ@ñÛ?£èÎ>õÅ2?k!?2ý??*É?F?'À®?‚ñ?\ç^;„ú€=¬€v?’ÃÄ?“’ ?e¤5?vx8>P¾;à”S?LW?F{?Ãï>ê»v>Ôé~>Wôô>Œé>æ?W?¶?E?_?Ž°‹? ñð>›'~>þÕð>ïoŒ>Ü[>MðY>$Éø?(Ô?C2â>×öI>Ñ¥£?kVY?b7}=âõ +>ý ¢>Ðp8>¢\>ÃíŸ>åß?±3>ú y=ÄÅÍ> +>_{E>÷a:A´ ?¼ß>Áˆ@=ã3Ü=;ì;Ä-ê<èóÎ?ˆËx?%?«@$@px.?†9>ù3ô?'.í?X/“?^=?nj´?y¿d?î?×?!ÕÐ?'Öb?QI>φÐ>é’V?ŸßÖ?š±?-S>á(u>»jü>HÙá>{§½?F¢o??&=ÏÚ?_ÛN?š ?‰§K>7aC=ýÇ8=mŒ9<òÝÈ>ÞÀb>âtq>ï k>üóa?@^­?hÏI?¦ôé?éHê?¶~Z>¦«ù>ÀŸ'?j$ï?l’À?Ú¥ ?Ö÷?ðI?kÐ?¯ô¬?¿Ç”?–?—Ò?¨À2?¸IQ?¯º‰?–,m?Œ…v?E‡k?H¾Ð? Ö?ß»>ã³½>êÏ?§ä¶?°=H?«øª?§Î ?¤63? ™V?ÂýŠ?Ô“u?cÏ+>»õx>”>ï—>Ï{n???hÊÂ?›‚?fb=e0?Ž­?$úÉ?Ç—?Âl>¨•ñ>¨Z>Kš=ØvJ>øÆã? +8`?p¤’?ƒJ¡?—¢w?§>{?¬J?°m²?[šN>é¾â?.ƒ?k}D?íq>)‰>ã$?Vˆ¸?“Gâ?ïg +?ÚLC?°+X?ž¸Ò>êºÆ?Ù?Wž?yøÔ?¨.e?­R? /«>ÚXi?^¢(?~˜_>»iÁ>'c%?„Ì?ªr?„M©?i€À?6>? ¬?h–?¦~‡?½Û€?ÞkÑ?¾ú“?vC9?,Ô><“Á?h”?‚–ÿ?â f?Ö\ˆ>èW2>é£?Sf¼?RÉ3?y9õ?‘Ô>ð|“>Æ•?c±j?‡T†>¿E>í{S?XóŽ?¢¨U?Ì?¢?x´I?k»ï?#4E?4H?ƒeÁ?y´Û?®Â?"ì >æÛÿ>ëwŠ?}‡A?|—Ù?ÜÅ?æ§Â?FÞî„”?"7 ?\¶4?Ù=rÄ~=ªi>%± +>ÙÙÌ@=ý@m3?ÖfË?ÔÍ‚>ü¿ë>æ6ä?³Û??ÎÈ?®æ¡?¦v?„„Ä?f8â?–¤?±ø?ì??Ì?x4?¬±é?„:à>æKñ?:±Ë?ÆÚÕ?¿Ûu?uiÂ?y]?ækÌ?æe@^E@®3?v¾¬?_v@1@Ku?ÉXÃ?¬ÿŠ@#Èp@H.Ü?Þ¦>Ù6°>ïìõ? ã?lí>æòØ?’Z@ô§@þþ?ÎŽ?|5÷>ç68?Y?Ò;N?ÇNô>çg|>çw;>ç†Ù>ç’¯?WÑF?g­ +?‰á9?ĸ?À×?Üop?àœœ?äɵ?“Rï?fŠ?†0þ?Êg1?µ%”?•ïk?¸¨¬?ý/?Ö[¦?)lŽ? D? w?0¸?éö€?á’?i/?fÅ?<ð„=M‘Ü?ÐW?Úw•?o,?i²?wÞÊ?~ðm?’*Ì?”U’??¾Ë?´¦?`N¡?ˆGå?‰°?ƒa™?£é$?ÀÊ?¢„¾?Ž€Õ?€ž?¶5{?•“K?LÂ?,@§?„Lº?ŽÛ?²†?ª|§?Kf?Qê½?ka+?m[®?È®?|ý¬?©‹?«%ÿ?äÓ?é>„@*.3@0øê?KtÎ>îU?W]™?lKþ?Ÿâô?«[Å?™ß?š™þ?³É“?½ºD?¦”?’ó?¶o™?Ö½Þ?įÄ?±Õï?±âÒ?±ðg?Á·õ?ÑIè?´¸Ù?™XÈ?q´>ížd?tÊ›?í½=?àu??É9;?ØK?ü^ ?ÑZx>î¤>î#é>î5j>óvX?D{?eÀ?qËf?|Ž¢?²å?²«a?²ûC?³²?³ ú?±¢å?^#˜?ZY¶?Vç?SoC?¢Ly?«e“?j½?z=?ÂP?…Î@ð@#”5?Ç‚?ºY‡?Îl?Ì3§>ž Š=ó!> +0?”Ið?Æø9?Xû³? T?~G_??&?zûg?oÛù?Ÿ&ß?³ð1?Žl4?wX?‚ë?‰I?¤Ï`?´-?ɨ?Ôí¦?˜¡?M“? +–‘>š+¸?$ÇZ?ˆ‰c?äá@$c¤@t3?Âb}?Ì»‚?Êþ?¦?z²µ?Œ“&?”j×?‚¤y?\PÒ?”‹Ä?Þñ @ é @„@N?pzõ?¬ ß@Äå?ý>É?¤Z+?s)²>g?£†?±ã°?í#?ä( ?ç&þ?Ù¦¾?oûä?q/€?Ná9?m?´Š?µ5²?Ï0í?ʈ»>=RÎ>6”ô?¥˜Ý?ª°?z˜ ?qï°?í¨u?ìql@(Ä[@% ]?­WC?žx°?Ì2ø?äO¶¶K=4Ð?ͱô@'ì%?¢‹>˜Ön?IKª?›\™?©Î6?²ø?>?e0ø?ÓÆ»@&@ží?ÇÆÚ?Íõ7?î;;?¹í5? l×?>í?®ßÂ?±”m?²oÌ?Ò³>þ”?(+|?²H$?¯’c?“c4?Ž¸Ý?¶6?¼Ñ¨?7Ÿõ?2ý…@ã(@už?µ¶–?±ÎH@6=k@C_K?ô2Ñ?àÏ$??Î¥>ïÑÐ=á1q<Íà?<ŧ?‡Aéy>?3‚e?‰k7?MaŒ>Z[?°‰?Õx(?Âκ>èò>?$š'@yI@ þ?¹ÏF?½f?F•?M&´?Pó?®}?Iu?=ÿ$??¹? gE?Ãêµ?Û™ö?å +è?çÐ @*G@UÉÝ@)¦?/æ?ŸP?ªSô?¨µS?àUI?ñuX?»Ø?ĹÀ?ØÈ%?Ûé?­)?­R?­¸?±Ã¶?¥/¿?™áE?u‘µ?fd!?Ù‚6@+ê?ð"?Ü…)?£†8?zL?‰8³?•r›?’I?fH&?ć„@c,q@OÙ?Ë3À?Èâ@ ͈@w|?ã·Ú?ÚPá?ÒR?Ö>Q?®õ?ËâÂ?”?dÊj?#q¡>ä›]?ÜÏ?OƒÊ¨>ÔPï?Rë|?zÀá ?3Ši?ŸÉ?€ë?ŠÄÌ?æÉ?„•¾?bš?iuÐ?|ÔÜ?É~'?Å)û?Ž ˆ?f–?¯j2?ñQ+?¿ÝG?`\Ü? 7;@  !@¼'?¨­?¬¯á@ò…@[—?Úêh?ìAv?Ö?Ü?ÐØc?—¾¶?hÛ?$·^>÷ÕÇ? +ï>Þñç>ñæ?eM?B¯¹?¾Gã?¸Â ?j?—nr@B[š@]ô½?ʯÒ?^—?]é=?]Ñ3?“ï!?¿¸$?¹nG?Êè@9¿@„8@‰ƒr?¥;%?žb[? ¸Î>ÜÃ?š Š?¿¾?›á@?{Që?¦?×”O?³‰£>ê¬/?&>?èsÄ?íϦ?n‘œ?[uß?—×?¤rê?ëñî@ +¿ó?Èõo?`~Æ?‚%x?£õ°?§g?¬É?–[Ð?9Œ?@ž$?Ä6?¡¾“?¢Î¿?ž ?äe­@Y°?øÇp?Y-+?gº‹?Ð:e?¿œ?iª÷?X™f?Z€Ù?XZé?H^ú?/ϯ?5yv?EdZ?*>4?z¿>ë¼A?þâ™@„k@ ×?ÿlå?™%?$ÇÓ?Á˜>ˆ/®>(=*ü;€œ²?•&E?˜õc?Æ_Û?íL?Üs?­ø"?´új@ »@ +•? ?šÎ–?Ûè?d%*?©ùI?¹nÈ?¶y?¶?Å î?Ô¤?ÓæŠ?Ãœ~?«÷?ªˆ¯?´’;?ƒø¸?K©g?=WÇ>ZÛÍ>+§÷?Ñγ?Ì8y?XÓ©?X«Ò?~¡Ù?‡Í°?̦?“ÎÑ?™}â?BG?’a•>ÌAQ>ýr^?f‡™?#?t(?I×ö?$?QBƒ?Wér>ÍÑù>š¦?cáç?œ´?t`?,Ï?Ù ?P¶l?Pª(?¾?1Ì1?™µ¢?ÊÚ?Êï?²\-?¿·þ?ÍÏ?Ðnƒ?‚;†?Š,I?¨À?ÇŠï?«;œ?'"´?ød=—u;©AÁ?‹å?œrE?#²?dÕÞ? “?¨+$?€â€>l‰;q9X?·¡?œÛà?¿w?Ñ\“?Âêã?’ÏÔ?V”?ÈA>Ðï ?WOC?iQ}?/O'?D2ü?>?“?Êï?€| +@Ð@>mJ†>ú&D?ˆñ¾?¬š?ò<@‚„?§µ–=¢=û°>Ö!‡? ÅR?Ιa?ºÁ²>±·­>£Ô#?Jþ‘?[?Uø'?G­?§“>Ú4?PÀ?6kU?g5?ÎWU?Ñ,>Í›ö>².2?2“?SF?(f?iÅ=ô°-?½‘?J3Ð>ÌÕz>£À4>—EÙ>1J­>àì?G×Æ>ÏÄ*Ú?Ï*?Æ÷?n[>¹¹1=µ+="ÿ°>\Ì1>ªôÒ==Õ»;ÂÀ=¬– =P%:>vè>,œô= Æ<1«îÀ>ðOÿ=\=xö >Ì{£>ð´Ö>ƒ-\>Dcz@T>@˜Bê?Ž>».<ŸùÒ9•‘[?Z"$?[)?XÔˆ?Yf,?Hèl>ÚÞh>Û“ >]ëp>P‡¼>“­Ç>™µu>º“?š,þ?ž˜Ž?±¢>á„>¥q_>|ú…>úJž?•SÓ?˜->Ù­Í>´Í>õíƒ?±?jìr?¥wÕ?•C0?`¶h?WOQ>çR=>ç¤B?X.J?[én?r‹?— >á].>á d?S9>é³]>û–W? þÑ?&$™?•ü?‹Å?;Ú?5#Þ?®ã=?ÉÐ ?}X¼?Ïn?$¦?3i“?¥Â>ëù¯>—g{>«oŠ?­NY?•«½;=þ=;º?oN«?sS÷?wS?zÆ—?'¦³?!u+>åñò>çPD>7Ôä>ò* ?l§r?·´î@fÔ§¹>Š|Ô>ͬ:?ÿÚ±?áG=þ>>ñ@?'©?¨S?VÎ?]Ý?ÖÁ?ä³Ï>¤9;7’;êÓ€?"[R?dvw?$èD?ˆš?cç"?‘±ø?S©’?´?†?ÑùR?»Ä¤?‰ä?W¾Ë>;c³>…«þ? ??¤}?‘ÖÉ?ãd?j%}?jô?$=¨?#t>¥º >¤,ß?Åâ?ë"ö?Ó?~?|Aq?y?e†?_Ž?f™?hì‡?ÆB@{ï?ÝöM?eN°?”ž_?à¹`?Æ Ò?ðK?Åä?TYÝ?RHî?h@?j(Ä?òb?œ€&?(9?d%?WÌb?g¸>U“¨?PX ?öY?Ó/T@žÊ?‹³ +>6Ö ?î?‡q;?pÔÐ?7©™?BG?FYW?1]?7(Õ?8ûç?œè? â?Õ~Í?Ú¾?ªò¤?ª(â?w„$?fdï?3Ï>çóx>íZÎ>òî©?5áê?ZTÓ?¢p¬?Ôº-?Ê=?¸ 1?kŠ +>à¤?æÁ?Ñç¾?iÔ4?g +>4b³>?]­>Åvß>ÕPÔ?\g.?f?‰EÏ?Œkb?Nã?8È™?˜mû?¾=J?¶àa?¬–G?>Ø? W?-‹Ò?f,¼?§‚@‡U@xA?ßäé?ÔSÆ?_Û?_â>î–ò>æ–Û?¦—?¬Ó¸?¬Û1?¬ßø>â„<>€n?2yü?X ð?¯>æµ3>„§5=Ë—È?L3˜?Ûv×?°{?<9?Z‘^?ƒˆy?,=?ÜÔ?Ñw“?2–…?/éD?-;B?*u?0:—?6ü?tÁA?¾’?pD?g»á?L (?FÉ ?˜ :?«3Ó?‡ƒ?hR?V=Ö?6¦~?€? +l0?’÷@ãž@]?èj@?õÖ @uä@ ®¼?åp¶?âZ?Öëû?Î__?‚Ù$?†×?l_Á?iYG?ik;?i|?¥" ?¯7Ñ>Üh> êº?203?iê‘?š“x?¯Š¼?–vp?ÏÒ?R©>ê[?&}R?Ua­?Y´C?S[°?3lˆ?ÙT?7œ?oÖ?\ÇZ??´G?CóÛ?~ +{?„q/?°…Ì?®*O?‡è?³?¯ÄÂ?± ?êÉþ?ì¾ì@9ê@ ™I?†oO?l*[?Ó€Y?â²S?؇§?Ó ñ?•ëD?†?S ³?Bc?˜ç­?±¡A?„?[Œ?„tÙ?“ê?µ*)?Ñ”?†4">íY>ÀÝø>˜‘º?Xxâ?É™„?²N?…™ù?ƒþ?‚`q?a`Ù?œ`? 9™>î›?Ï¥?n/›?„‡¥?²·ã?›ß>üs?;~ï?é\?çµä?æÌ?îm@÷³@S[?nÉ>?€²Šø> ¬Ã>Óöé>ïx¦? üŠ? ó‘?ZÝþ?oš¿@SS@-3&?²«h?o¸k?oäª?rÆ?qšÃ?oÒJ?›íâ?ª´3@†?@ Mø?Ðèš?™ö +?‡?oýz?ÙÛ¡@IR?µÿb?toz?¨-Ö?ÔýÜ? £$?T0?•ò?Ê0?w•Ã>m‡w?‚)I?ú׉?¥ú4>ð#(>ð%7>ð&°>ð(´>ð%?Sú–?±g,?ulG>‹ò?4N;?´Y?‹=Ç>±s!?"jA?´ñ?Ý°@'Ö@Æ?”ìÈ?ŠM–?-Mx?9ºÉ?]T?_Sy?³ü2?­¨u?„úå?8™?oå³?epD>þð?ý;?ïÌÿ?ì‡?µþ@?µƒL?<Új?W'â?ä?ቋ?ý3?’z?"e‡?'<‚?j¤M?os‘?®M9?ºÆ/?Gf?"Uþ?A:ì?NŽ!?Ò1?à™Ó?ÈÐ:?¿Ën@Ú@ñ¦?ªÍä?nïU?e…/?Wó,?‡À,?£ý?=§“>®T?-X?n“C?a}\5?„ ~?ý¥@Çì@!ù,@%ƒ?âåC?¶KI?W7m?e2&?mà~?ˆz?²Tä?Ù@>@a$?ÿù0?+ÿ?UËr?²”?¯bõ?™j?“Gò?m8ß?nL€?´¾@?Ãòµ?¡?£_ö@Êæ@c5?“•Ã?{sJ?©Ÿr?°±Ê@@i@ËT?»TÏ?¥1??ÂØ«?Õr¡?{¶­?&•ù>Ñ‹Ð>dG?%¨G?„D‡?¨!?ÀÊ¡?œXV?kt?‹~Ò?­6—?Äü£?êùd?Ä¿?k(Ë?L?£ù¿?˜‘¨?jæU?y×K?°Þ?«aµ?uÛ?}É?®è„?™ìR?i?M›q>ÿ(>éû>èÏ…>ô~?2ì…?iãn@Cß?ü]A?‚ô?ty?Þ³?ߊØ?"#>è%?xº?‡œù?p&)?gË}?¼*ï?ç«c?×â +?ÚXœ?Üà]?ÆH ?£°M?‚nÑ?†7æ?Oë?Pd™?—³?š¼?Ì¢?¾Ä‰?ªšè?¬õ*?l€õ?qzê?§ˆâ?¬É?ß.×?ß”¸?ŸÄ?Ëh?æpâ?÷„„?®Î?%·Ï>š=iš>ýñÂ?«[ò?±v?ØDw?Úý?”ðB?§°†@ í@>?Øvô?ä¿.?²~‰?«¨o>¾|Ù=P\ø?u7q?©*¢?E&Ø>ä{3?D‰?=Dî?ƒ´?¬_Ã?™Hê?–üt?±ÅÕ@1{@ÙŒ@ a@ 1;?h@r?qæ?œÍ}?šô-?ªJ‰?»•Ç?nx?ˆÄJ?J–?¯E?n§^?Y¢?´ò”@ Å%@£Û?ÐCy?¼e¾?…/?}‰?ÃAá?Ú„W?ècª?Ê ‡?ÛiÚ?â1?J>¿>ç³¹?=?Æ'?±lË?©8ó?¢]G?Œuè?Ì¿$@E/A@3&—?Ç9?â8Ü@`¢=@\?±ÿí?R:? # ?¯§Ì?„±ã?l±?–t¸?¨Gó?ŸŒº?…X-?…Ë?©™?›Œî?,Ð??P?Ðx?ÚŽ“?¾§À?¬Ü³?¿)1?»áS?«wT?§cì?¥Eq?›“D?|ãñ?>™þ? fð>Þ³æ?öj?Ë«Î?ÍR„>ÿøê>ê÷?=H¨>3x$?ìÁ:@ ÐÅ@5¦?í4??Ѓç?È ?¢>θ>ðP?ÛŸ?ãƒ?¥¹ç?¥§ý?†ìú?pý?¬?ƹù?¢æû?gu?¡<@?¦tâ?•¥?OGç?aEI?Û© ?Û’½?‹à¶?‚Þ?Á¬ÿ?ÂÒ@}È@#æ ?à2Q?Z½‚?ŠŽ?ÈX?Ñ¥@ém@¶?®ö?NA|?Qà?ZË?$Dg?Ø=?D?“bŒ?ª9Þ?‚nï?Œ]U@!@¶Á?~ÎÝ?Xyå?cð¯ +?®¡?Ï•?ûÁ?½'=?ƒ[ +?=ƒ?œšª?x c>çÑï>ÒÊ?g.?º³?3«?Jx›?ŸCù?Õ¡?š£z== O>[þ?Óu(?Í´>Ú¦>ˆÑH?\I?ËßW?‘³Á??S·?}7!?Ó]o?Ò®Ž?§j?­dñ?Ôíà?ÒÏv?oêÀ>©ªŸ?$DÌ?Ìcœ?ÌÌÃ?£;1?©+ü? ñÏ>Òaµ?G%?t›Ù?Y¨s?Gêy?2q=c”û>I¿4?Sú +?>ø"?“û÷?°­›?Ëïû?þ:?éß?Q¼?Q¯?9û(?+ñ{?c¹{?‡-?‚î?bâ ?Vxš?Pš˜?PŽ‡>©è>@B?bXü?•‰ï?‰Û?yH­?o¨¸?œD¦?Ÿà‡?“Ñ&?Œ{?…Óü?#‘?ÿé?§¾? Žœ?œG)?’ÜI?y}?'Tæ?^‰Ì?‰og?³ly?öÏ·@ #.@S?õo­@E‰c@;vd?Ø>ß?¢Ø?åzZ@!Äd@)6@üb@yË@ÈÞ@š›?™ùF?8¿ã?R`÷?{I ?a`˜?TŸ?`l?Á*­?ÃI ?«j ?¹µZ?´sh?žÝ +?‘Ž½?‡Éú?‹K:@4R@jf? ã>wx?©m§?ÖB"?’"?YRÑ? Ki>_s’>¢´Ë>ÛG>Û‹>Ü :?ˆÉ?Jcy?<æí>á¢>Þ®9?2+/?I‹>0£>²`?–ú?’ K?™–‡?D!¯?I\>…ùâ<ƒ5F?< 5?™o?* +±>’¤>v©•>”S ?ƒ÷r?ØÇ®?4©T=Š0=#T8䪳>ÅÙY>¦¼>‡IÓ>OÑ>ö¢=œ8]>¬ÿ>þòé=‹´%=‘‰?ƒn>?8Jë:™ž_>_n>Ÿ›F>yÒÓ>&hj=(=0=Än@'m7@„þ,?¦K‹>Ÿ¯¦>æ3">àö>?˜Ry?ù?!: >âÜÖ?^_Ó?Ç>T?ÀüQ?‡/?~ØÐ?Pá?<@?Y™=?’Wƒ?ÈW?0üì?)øó>¯¦¤>EÑ?!Õž?šß#?Œ¸Ë?rg?~öŒ?SÃÊ?P,­?T¨u?Y$?/U>ï±æ>©àS<žH<Ç =£7ð=ãëà>Ûb>è¼ö>ÅS>¬^N?q?¯æÓ?v™>ê>¯’Z<‘tf>zÓ>†ûØ>êñÑ>ëAø?¾Â?Ú?Õ€?Ì?dM„>ëñý>˜@‘=¹/£>Á{?hwW?K$@>랉?M?l|À?cq­?:U? \¨?ÉkE?ÅO`>êP=>©Fj?oû?j?þ¯? šï?CàÜ?l£ø?”Èw?¹’ä?“AO?<“? ">" š?;@J?ÜsÏ?÷‚k>ë=X>åÝ>Þ‘y?RáA?k‡>“DF=¡„ö?t“?°iµ?Ÿ3è?Ž¢û?dS¸?F'Ú?8‘>»ñf>·=">~Ü·>ø8>«dø?¯²ä? ½æ?>+?FÞ?iêü?fÔ>zÞÖ>]Œ?'? +ˆ?™Æ‹?§Œ«?³R?³'™?/Z™>ä†B?A~«?hÚî?%›m>ÿÆ>”þç=¥´>Û¨>r—Ô?8 ?h:X?h'?hŒ?h?gñ/?_æ!?BŒ?GÿÑ?!1’?$L}?f–v?gv²> 5›>^x ?’…¯?µ‡è?Éðú?Ñ8ë?cƒ>ç´?6g?zY?—` ?­?én@+¾@Ú?æž{?Áû>ø—>òÔ®>í˜>ç«ý>æ]‚>ç ?¨:?«;”@©3@!î«?˜@x?Wøó?`›?fÃ?¹ôì?æQ?ˆyµ>÷H$>è¹>K?Àz?œû6?…Æ>å÷?¬?9é…?$ˆ>aæå>k!¶?¤‡¹?£9ñ?ª Û?¬uê?Ö&>åô ?Gðö?eõá?˜p…?¬}0?“À?{6?eíf?VrÈ?SÞ·?Q¸õ?|b?ª7L?“°>æˆÖ?K6?¬«ˆ?©/Ó?iËF?l´—?Ýên?à”?̓?ÄZ›?7w~? µi?;ØÌ?J¶ >ÿøX>¤¬?›€Œ?ù¹—?žÞÝ>æÔä>óh?µ?DäÐ?$?ƒÆ¾?0?Lm??¥R˜?Ÿ š?L?@?H²?› ‚?”L?²E©?±Fà?G`Ì?&og?ö´@ X?® F?Y—,?æ.'@¸Ö?çÅ?¬v!?È‘Û?èX?ѵƒ?®„²?°G?³òa?Ãt#?轘?èÎ?èál?ó:Ò@~Ê@O?i& ?i9£?iIÏ?i]¢?ªj)?¯ ð?/‹? +ß?RÀu?iÉ?ŸÈë?¯t?>·>Ћ?I1þ?ú?£ºo?Ä ?Õóô?ñ°?½îÅ?j«y?®°)@3¨?úlu?Ñ?Ép?ª¥›?­({?°o›?ØÁÓ@MÅY@81P>ëƼ?ý"?ë­4?åIé>`r2>‘TV@ÆÈ@D?“éä?”n?»J½?Á“.??ƒï?2?=O ??oU?·qÍ?ÓB?ñ?ñ1Ü?ÔR8?È Ÿ?Ç•U?ÉÛÐ?«?Ž›^?NÐþ? êÎ?%%à?P·ë?™Pº?Èzë?É“?ÉåÂ?ºÏÕ?­ÏØ?„L0>íõË?.?n?J»ù>ý!^?Êe?cÅÅ?PdÂ?+,À?_af?¾ôÂ?Õóì@ã@ÉÉ?Ÿús?«fØ@ é,@ €x?‘|b?— ¢?³½þ?´®Ü?ünb?ò"æ?¼“™?¶ö?²Z?³l€?~rB?gFÇ?AŠ ?5g9?‹&Ù?‹}ê?iý?i½Ü? +²Y>ïQ@ Æ@[?ôĶ?å¿\?#V?o¸™>Ô—Ã>—Ä?k­?FfÝ?2Q+? Íâ?Xî÷?oßÆ?ä•æ@¨*?¹þ8?yY[?¡ø?³úà?Á!:?Ç’G?·™>?¦,?‰³ë?pi?בÎ@¥?¾¨€?„?>ð ?fá¥?°Fê?Èv£?éçÙ?œ$I>Æ]W>ø¯1?2óÙ?"ëä>ð?¨?U×R?Ÿ!@ÊÇ?êdí?“§\? ^µ?½‘s?Ô‘!@ð‹@´ý?¥¿W?­Iç?½sð?­±?e×$?l}m?q¯¡?€0[?´±?°6?zÚ—?}`ê?Zó ?RÖ÷?RbÏ?uÈN@Úš@ ?‚\?zï¸?ï À?æÒ»?DO;?A”6?F€l?KrG?9†Š?+@,â@Efg@î@Ïî@,ª”@3.²?Ùí ?¯»?…ð?n¿°?»:?Ñæÿ?Þ3U?Û¼ ?®ãñ?™÷w?†’?lÀ¬?#é×>îJ6?IœO?f?É‘?ûFf?ëz?ÑL2?g#›<ŒT>»MJ?mÆ´?‹äŽ?²BÏ?šB"?eCº?“dh?»^s?¨ÙR? ?±Qí@[’@ +ã?Ü/Ø?Á“f>êüÏ>ßY+?‘߯?Œ¬ ?•¦?‰Àš@Ní@Ö[>H¸—=©?’ï?Æ^l?®i‘?‡ø?zÅ6?lfú?l‡b?wY ?¡Ò?Ø\?º[A?…h“?–ö,?½å?µ¼…?¯üò?¨¤?Q|Z?E‚X?jf?k(g?ˆŠF?Ç™?®úl?¯Çñ?ãñÐ?ôgî?ó¼?ô@.É@6–?¤¡?$ï¡?µ›¬?Þ0‚?›Á«?i<_?Q ?®ÒS?—†?høN?‡Š$?®Œ?Ê—)@¦?ÜG»>è‘Ë>ï¨W?<‹û?m8Ú?Î#¿?Êi¹@ª¤@ž¶?Š±?zPÖ?Ò +9?çÕß?•e?gÅË?"f‡??WžÁ?€ƒ‡?Fœa?#c¼?¥.?ëûÕ?íÉÎ@ yÐ?ø;b?Ê‚Ä?äL@ Uý@ž_?f¯ž?e†:=®¦>«É?ÌXh?Ôç¸?Ö\ ?ß[f?ŽÏ ?f Ö?™¦?¬hZ@R@=JÐ?ÿ§:?g§?fwX?n¥`?™x??؃Î?Ç–?–Áô?L—?å?âÞû?™!›?¥?³Ëä?²/a?¬ø?«z¤?«>?«d?@ƒ¯>äa‹?—žŒ?Ö_k?Édã¸y?)e?¤B +?Ÿ¾ò?3êz?A +2?ßÝ?áœ,?¢¨I?—fQ?ÛÖz?ö¯µ?ŽŒf>æÄK?V: +?²„?™}9?Aï“?vÜÎ?©×}?´Q^?ä½»?Ã/û@;ˆª@GÉö?û®?ã=6@ga@ Z?Œ½?B! ?s%¹?‡Ú–?¥mÏ?ɹ;?ùÀì@0 i@G¿>òŒk? ð?åÙ#?øo_?«”5?¨X?q)¬?`”l?¶ÆÛ?´×"?Û’`?é]H@g+@&öS@1Ií@:@@8¦û@@ð÷@&æp?æD?ÛÐP?×WÃ?ç‰6@}@ªÁ?ć??§PÚ?â{Ï@?§2Ÿ?‘?¼Õ?Ìü?··'?ÑËþ?½Þ3?f m?^r>çF‰>ÀÅ»@ì’@&[@&G¢@&7$?Ú( ?i…?¹èS@ *Ä?æÕ'>ç9,?"mR?ÑÒs?ÌZ?Vdò?Z܈?«@ë?¶uÈ??ü>Âå|?›ü@Ñ4@˜4@%!¸@Ë0?ºy?¿â[?¥u?¤o­@‡½@:•?üÈž?ÝJ*?¨È5?Z R?tš?›m²?°«™?ö!#@9+@'ð!@5öµ?Èeœ? é?2Ú÷>Ùl\?¦?+©ô?D™–?¢¶‡?¥ŒÀ?Çn?Ö7P?¥N>ò­?V7•?| î?¢_M?¿\m?èwÙ@#¤{@&D5?¤ßº?¡>¡@C~b@/ô¼?pÈý?6¡?šÕ®?´BC?Ö–@€‹@×@ñ?ö°}?Šâ4?}X?e€H?MàH?5ˈ?;I?(a>ÚÝI>×y? ̆?1::?¼›ž?ªüñ?ÈÁž?æB?¬×?"•Æ>ßíí>èK’?-8?ž§7?ž’ ?²‹Î?ÇÊ8?¬Š'?”Ý:?jŠ>ÓŒ?,Ľ?ó[#?ç.³?ß >ÒDµ?Cš5?„²>?WQO>Õ‘û>Ò³\>µiÃ>¨?-Û?N«?–­ø?³¥-?Åô¥?Ñ'Ð?´k†>ä|é>üí?È;«?¿2]?Ž“á?qæ„?‰g? ·?œ~”?™?’Ý#?^§‰?5Šì?†ž ?¬ Þ?Á{2?Ð6F?Çg??œ%§?œ$Õ?œ%O?œ&?»Ï”?Á;P?¸±’?Ä9B?Ʋl?œ1ö?œ6@?ð»5?6÷ >…Ga>{¬k=ÃQ>Y3Î? AÍ¢ž?±÷ª?Ô¬N?Æ‚ ?À_,?ÌVq?ÒÊ?Òóá?Í9æ?¾ ?“8)?r/@•—@¬ƒ?‹R:>äz5>Õ§+>÷©?.ÁÑ?y3š?/ç?ß @?ìô?Ðfü?Õ9ë?®Hâ?¨5$?Vñg?«&>¥¥q>žî>Û ­>ÛŒ$>Ü!??–ó“?Ob>rB~>A…>Ø¿¾>ßÙ.=®ž=‚ NQ?<4?Ÿå¦?p…u?;~?ý%>åº?>Œ•¤>›QÜ?,É?2€>¿{ž=ûÂÝ>¯jy>ò³‰>+W7=µò>øÒ>ÙBÉ>]Ýù>Öß°?%%@? Ðþ?>lo=V£<,\¸=6ý.?oo>ï‚a>Ão=‡œ8<¹•>åò°>ç¹Õ>Åý‚>ˆ>”_>¸Å>>¿èÖ=Å2±> ÔÞ>x`S>9?“ð?Þ®?/3+=íd©<þ“ì=vBø?õÏ?uš<·-·˜6£?]‰? Ãp>v¤>”´>‚vs>…o>·CY>üi?ŸÌ>ÊËÝ>Ü>n>Šäô>6a?T´?¥”•?yc¢>?«=ñ‚>´G>½>Åß>Ϋ$?/º`?`>Í?5>‘>ßÃŽ>×Îõ>ÏÔ >ÇÚ>ç©>è«A>èìÎ>é*ƒ?w[?ÿ?Ç?8Ök?!š{>ïk>ß>ÎëÅ>¼Â?>ë/>é$å?oˆÝ?}?Ó8?ëh?jâ?ŸÊ?4”?\¤ý?+Zí>ì9 >Œão<}Â>œ3?lp^?SÒT>샞>õõ@?GcÔ?RÚO>ñfM>ì›?d°—?lž¿>êñË>Ö.?P¢?’ìØ?+×Ò>ìŠw>샷>ìV>ìt{>ìj?mÖÛ?¿²?øì?Wàº?žÖS@ +-@=W@:?ù +Ö9`H= +‚Ù>ëË–>ó Æ?¦$Ç?£îÀ?%M? iú?8߉?6'Ä?sÜ?†Gh?T×ò?Eå©?GÈž?;Þ ?D±3??N?0ŠÆ?.-5?) h?£m?V?\–“?oÛ²?cËù?Z Ð?iÏ#?dÄv?Q×7?\#D?†?‚o?iU,?i=b?Ú9X?ç#ß>ˆå?5o»?h¾ú?¾¾ ?Ù2ú?uª?G„Ö>«î?îÑ?Ÿ¸`?Œí/?gõ£?Ž)?¾ï˜?­öï?}¸3?w!?qŠ¡?n_S?!g?‘è?¹Ðæ?±|?‰¯M?ˆƒN?¦Yå?­= ?,`—>æâe>d–?=Â*ó?8éû?šŒf?gÃÉ? ?~T?ؽP?ºz¡?fe„?fZ?fO•?S’">æ<&>÷à•?n5©?t @ú@ìÓ@°@i‚?’®Ü?eøj?Rg?VÍ?: ?2Ø>ª¯>1‘¥? S?eÕw?ŽŽ ?°cÓ?Ÿí$?‘`²?wÀ»>„á³>Öº‰?ÐN?Ш?™Ù?šõX>Ãáð>«/=?htò?}®¢?˜Sn?£(?ª§?¬e?Xók>õ p>‚UW<‹J;>¼‚?eú?…„Ñ?«Æ¦?©ÿñ?¬‹?´+³?Úª«?ͧ#?%£?/äX@»,@ °F?Üs>æWÖ?Š´?šñp?_wz?=Tò?x\‚?–Íx?'ðA>Oúá>´ Ù>çÛ…?Jš@?¨½?õi>æôê?F?«?çÖ?Ú9?›-B?¨Ðç@ô-@8ë@'s@ D?¤¤?œ:?h_?[®?0ô–?¥@),é@fFo?ôê2?ht?'¿¡>ôçø>”µ‘=·s˜?#eí?®T?xÜE>•ý­>áé4?=OÏ?<„?3~‡?uèp?íòx?íav@¯È@×?ÑL?Є%?¶é?²#Ä??ƒ ?1àt?Š†é?–H»?;}?‹*%?Ìü]?ê?ÒAx?ÉCÝ?™É’?j]Ë?‚› ?Š¨É?š~µ?¯ý¸?}¤é>êÊÏ?%3‘?r­s?ˆæ«?°QC?¡–?nž?ŸéN@ ž[@ÚÃ?¶çL?»ÞŸ?Æ‹ö?·þH?XyÉ?d¸¤?P?õ_?†²ü?Šq?«EC?¦þD?˜¿¬?—X?¨]ˆ?±@9`@'?ùÊ^?á|U?Ìœ?Ä>X?ïfå@?Ù|ã?ÃM’?x¼8? *å?©àq@¤Q@CH@'’&?ç@þ?iÞw?8„>íÐ5>_h=ôH?6Çä?ݺc?ȱâ?©È?¤ô?š>p?‘2?†Ñ•?›ôå?Ù>?Ý‚?×ùü?Ëé|?«q?¬^K?•v’?ŽMâ?„À?ŸYË@"÷Î@'%@ï@‚ð?£la?ªR@Š@Þ?Þ}¢?áª|@ +ùB@k=?§>ïqÐ?f”©?m¬õ?²l¸?¼ä +>¹—.>‡„?—qÖ?§k"?ŽxY?ƒ[?{#ý?oè?úö@ +U?|ˆ‘?/”?²ù#?Ïö„?pÓ—?(4û?ÓÂè@6ø@ß¾@@â +@ ä—?ÀÒÃ?‡Æ¹?èéÜ@ïá@&€º@3Ïý@3ë“@12O@u?ꘖ?›Æ4?1gu?5>ïçô>ïär>ïäI?ƒ?ÑÂl?ªÝ?|6«?ƒÕ#?—8à?£– ?³Ü ?åäŽ@¿¶@ ð??ß‘?Äf?Z]T?•ŸŽ?õÏ"?Ʀ>û¿"?J’(?ïQœ?ì!ˆ?ë;ÿ?úÜË@!¾@n=?¥ÔŠ?­E1?áù?ÝŸ@²Ÿ@D?h^’?.@ªk@A,?©‰Z?œBž?\æ?MõF?õI­?믗?æQÓ?êŽÛ?¬÷>îšÓ?¤ ®?º /?‡hÚ?}žM?É_Y?ÕU›?Äû7?ľ ?¹+Í?¼}m?¸s'?²¿Á?Æ&?Ìs?{è~? ¢?EÀ#?Q¢¼?ÒEÐ@¹J@-5@GÅ%?íðÞ>í¿|>ï/>ûü?±9Ð@$½Ô?Íüy=èø>ÂÑ?oð®?ˆé?—þO?ÇiË@3Òä@(¹S?öCX?þL?Ѭ?Ñ M?öáí?úÌ@+ÿ@-L³?±eç?³‹>èA>Ïò;?tç?ƒ8K?ÛÔ`?ÚO¾?˜g?|½g?ä=@ Ž@?ü´?²Vz?’“?JwÖ?=ö?Àï­@ÚZ@Ê?ê&?Êüc?©œñ?›þ?«¹?wýß?‘\?(m?P̆?kB®?wÞ?ŽlY?Ã!b?½Ø?›-G?”Œp?ä0?çg?鶛?é>¢@ øU@?džß?½Fç?×”0?ò7}?¼`.?•ã¨?õ¿·@?Ê`ñ?iW?Œl¼?¥I9?“u?mzô?h×´?jÞã– ?{é?ª˜Ä?ª$€>æÿ>ã?ò?¸ñ?Ýà#?›ZA?€1“?ïsÊ@/&?ËŽ?b*À?짇@5T€?ÿ»???M”Þ?ŒÍ?¬?L@/t@6ô¸?žœ}?£F”@ ×@ ?Ä;K?ºð?»a?«õ’?:$>ÛJ?Lšá?•¥·?©Òñ?Íʲ?¿.{?c\ö?EÇ_>,·>±ŒO@&[à@uW? Z?Š}n@ñä@#‘G@@5Œ@_J@,Ïí?à‰Ë?Ö.u?ÌQ½?ÝŒU?õÝL@Î?¬Æ`?ÁÆÐ?¡?Ø?‘ð ?¿n?ÙŒ>?A:Q?‰U>îCž?Ã;?9êl?,€0?ƒkñ?÷ß÷@@!Óo@ÁR?¦;?¥ Æ?Uù•?F:¨?¤hŽ?È1â@S@& ?¬þ¯>=éÛ?Èq@#Ì@DÉ?›ëü?”V\?µ)?ºx=?«ç„?”¸¢? ²?¶Ž2?:þ=­HB>b~í?kš?MYÄ?“·Ô?¤•£?WO´?m*¯?‡ç?Œ} ?eÒC?ZøK?”X©?©–!?¢Á?“CS?‚ ?ZK¥?b0ä?y[â?m^‰?YÖñ?Y»?¿? ê?9? #i?©86?ººà?´ód?¯0è?œ +>õë>à“=qß"=³ä×?/àê?XR?©ý?ÉV?IF>GM”?‘ë@gª@Ñý?ÿk)@ ;^>Ϋ?\)b?¹Nø?—C?J••?>ùÑ? [;?;l ?u>?€g¾?†4 ?ŒB?3&>Õ+M?ƒ??TcŽ?;ù>Ô«>Ô“2?ãW™?ð´Y?š˜;?…p“?㣾@¡g@ ¨?ÀÛ¨?³`×?ãà’?×É7@np?ÿS?Žjë?IÓ?ª<©¯È>³Êp@ˆÁ@x5>Ã>ƒV>àW>ð•?¶O?Pƒ?F#Ž?9å?-§Î>Ø>Ñ\¥?\~?yG¢?i–?Ñö?±4Ø>Ðß,>ÐÍ{?‡á6?¤o?° ø?¨2v?´¯?Ïjƒ?¨g¢>Aöø>«0ê?qû3?‚Æ™?‹«?‚ +x?•¾×?ËÕÆ?´¤1?R?Jã?ÓS¿?ÐpH?¼ÿà?Ít¦?°‚¾?Ró?cÃÒ?œ¦?œº?Å{§?çßc?u e>¦A7>ìã÷?Pt?a »?œp?œ}0?®Ì?¶lù?(}q>YÉe?½[?›¹l?S¯?5?Y^?ÆF??zê+?Ä ?«ˆ¦?Ï)?¤Kb?Ùý?_?ó0ð?ìß»?õHç?ýUþ?•”Å?T+³?€,Ú?22?§ò?¨N³?™±]?¢>?–œW?œ8?¡Ìÿ>·ò‘>†q>mHw>G;>Mó`=ü¼å>a@£>ãÂÆ>Û„…>Ûü®>úÚk?‚ßá?ŠNo>ýb>§ÿD?¾G>ænx?Žæi?Ž¨š?s±?Hª8>Q&Ô=à¾=•µÓ? ß{?^Ü>«×?.Í?yf?3>ë°C?=é§?l<»>˜c›>ÕÃ>ñg{>´R$>meÓ<1ª<Ð>#i>§Ö>ŠÓÎ?L\a?,­d?8:>h¥>WcD?+?î?fc=Ʀ> >T{a>¯V>¼T(?žã?‰»?Lò÷?» @t?÷*?.qz?ú¯?Ö›÷<›mÀ=/~D=(¹\>Kí¡>‹¸>ƒjÚ>v&ù>QL×?µ ?BQ’>þ\:>£áv>„l·<¢M#;ë¡?i’?aßô?5ˆ>çÉÒ>ÀZ=±Á-=Ó™€=õo>  >f™>­j½?rþ?•›º?b¹‰?1f?u)? -?[?C?Ò—>Šò>X]ø?\Ëo?wàf>‚û™®x>ì1s?nlâ?¥n?ŒÜ/?lh ?D_É>ì€G>¾S¨=üÝ>Exï>ì•X>áü´>¼N|>ÎO?˜¢>îêH?¢:Ô·î>±ax?ƒf/?Ë;Û?‘¬?d?dÄJ?±[?œb?k’z?LWú>éBd?b?cZˆ?Tq?Ã"?!§’?U ¿?Qdà?iye?kCà? ?r(>ûç¤>êñ?}æ?*ü»?•¯­?¯öõ?Pøû?8î?hæˆ?š +ì?"e—?€?½ +&?®·?€‡?X§>é–‰?/h,?Ú5?Ñ€Ô?a÷Q?bp/>é?x>è,ÌÒ5>g?E!*?hW7?Ÿ[Ã?«ø¯?mMn?<Œø?/–?Sœ?â¼[@HS@“§?`àæ?˜U?É,)?¶/?xÃo?‰&!?ï4?ôl˜?ˆ¦q?‹j?}Dÿ?‚æ?!Á*? ¨Ó?³?º±?ÆÔ>ûª_?„„=?¯6±?$qÖ9X&Ï>Ížl?fJ+?f<÷?f4²?(èM=$ÚŒ>âr@Π?õ7;?“nç?–jò?z±A?„ª*?"D?œ›>ô´¯>åÎÅ?¶?!·Ä>ÊÈ>yñm>ñ ”?,Ç-?«]*@µe?Ì°ý?e®2?-^§>!ŒÍ>—c5?oÃ×?„Wj?žüÐ?“Ï”=Àím=ª8F?›‰?¤\[?sã#?e³Û?Ÿ‚†?¬L?†B?fq?eǦ?eÊå?+ u>ìMé>öÙ ?:p? ¢Ä? û>ý_>›pÏ>àðÈ?M9?`&R?õ8‹?÷øP@KÌ?ùŽ?¯°F?¬¸?Ô]0?ÖMæ? ·¢>ZF=£uò?EqY?¥Oy?ªÜY?º +?8b?«W?Wý?´y?ž½Œ?.?m‹˜?ò®Ë?Ûf> …>IV>ÿGd>úÙ?6×?.%@"à@-Áé?¢PÜ?gàP?iB¾?gì+?•4•?¤%+?jï?Ib¢?ˆ}C?®=I?´Ø?³€ª?ØÁ?â©ñ?¾ÀÈ?l=e?{¿·?µC?Ð}/@×@|!@ŸŸ@|?Í +x?ÎÜÐ?¤ž?š„ƒ?ŸÂD?Ÿ?R?šC?œú1?ÚÅ?éó•?´.3?› ³?n¶Ý?V¦j?µ[F?ã}•?½Ä¯?£ãã?h \>÷·?Š³Ñ?êÒí@­p@KŒ¸@ÈL=©è>½åB?Š“­?dk>oy?$¤?ëŽ?Ø=U?K¡È?n2l@-¸?îÖ?"GN?'SK?§Ìš?«²ï?Єt?Îmf?D´g?8E¨?¯?¾£Ò?¨Vö?ž ?‹øÄ?‡5?®?–·À?P8 ?ÍU?iÜ‚?„ѹ>ÈE,<÷=8>ŽG4>êýŸ>Mg_>[ª>í´v?‹õ_?×)?Ýä?ííF?ªµ?(¡%?T³?†Ýœ?Á6+@ =R?ã9‹?Ôë?–¿?«xA?Äò‚?ïOr?Êú?{Õ°?z¶v?8æ?d3S?ízÈ?ñ·”@M^@kÓ?VTW?ƒj×@&:ö@"´?‹¹Õ?€?WŸ>öà—?o#§?pSß?éF?æ‹Î?è©?ç9r>éìÈ>¿£k?ÔŠi?߶@#0@\?¼?³ª @‘—@¥N?Ì¥Ò?®8×?ö†@&u?¨k?Œ€+@Ç@Ûq@ FR@ éÛ?å°¤?¼YÃ?Öu¨?æía@ —Ž@Jd@gd?ðÃg?ô¹R?øða?”‰·?,¡?‚ï³?™ÄÉ?•¸?‘4ó?nª?D…‡?ÈO¯@Üó?á3?–:¢?xó?=c)?MgL?k6Ø?Ç¡^@bˆ?ÖÏÓ>»ó&>Æcø?:î?u÷@Ë9@Áû?³©þ?¡ý}?|8?‘Y³?»dz?ª +"?t¼R?ýi?³‡6?ÒƒŽ@(}W@?­@è?¢qÀ>ï3™?Q‹?À˜X?Í2H@ÅŽ@qþ?á›d?çÌú@kù@t)?³çã?²8´=TQ.;Å'@?§ ‰?²ÿ¤@Ifû@Mµ§?‰¾k?XL@ì@Ëì?´B?˜(K?Ãÿ?ÙxL?ë±K?ÒHá?­¾?ŒíÕ?N>2?\#?«¾¾?Æ[ð@ a=@ï-?«þ?­D$?mez?z^?‹2?•¬z?†Ñ?†6?1Ÿ„?&ì?™w(?³Í?‘j±?‡b?’"…?ä)?y”ç?hÛÝ?R‹?®‚9?•d?h•¦?‰.V?®U;?¢&Ï?‡`?«xc@:@Öº?h b?ci×?™Y?—?å´ï?ç¶`?´m¯?­­À>’Û>Y<Î>ôÏ?  ¿?Äè´?÷Æ„?´Ži?¿±?íSñ@"EŽ@)!•@4ÔÔ@$Lˆ?ó'%@IV@,ÒC@Vw? š?Óç?(¦}?=âÍ?»uÒ?³b?’kÇ?„9?U ƒ?E³>íø >Æã>ÖH§>ã÷ì?½¾@ )‰?Æð6?e=?— ?ÕÀb?ÄÞI?Ç”?ƒ}ê>ê­Í?Ú¥@È@†¯?䜨?䉹@$‡m@"9)?Ì?¹Ú|?9? ï?&ûl?1à?(™Þ?šþ?½Û£@4j™@Üu?cÑ?DýÚ>ã} ? ?Ôˆ˜?ÉÓ>>n>bÞ?us?f‹Ö?žº¡?ª+ú?O…k>ùn>ãf¦>ðß ?¹ +M@R@Ð,?¶hR?Š¨>ùûm?3ct?©L?¤nP?Tȯ?^=@[¥y@\çñ?Њ?©5k?¶MV?¿LD?‘T¦?D†B?}¢?fÌ?‡ÃÎ?kà?œë?ߧ{È´?Di?BÖŠ?zá‚?bŒP?4?;?tË'?`hå?ç/?ûH9>;Ô;¯¿?Ñ |?òí?OUí>‘™??tî?½ge?d–=ú¯ª?µ²@Ÿs?ÿž‰?`Å?i®(?šøð?•òÓ?­|?§Ñ ?é<"@ .F?Ãݾ?kÁn?dï?^œa?tk³?oÉ8?‚AÌ?¥|ø?¥iŠ?áÏ?íà.?˜úÑ?Mo?÷u@$±»@ è`?în?¬ê$?3d?‡>x2>ª G?m•¹?6Y.?Xìt?ZÕ³?ÝMZ?üêÚ?ƺ?£Òa?˜Šˆ?ƒ<ü?Š.F?®m»?¥8å?YÁU?Y§?‡ú?Š(?ó8Å@ (·?ä42?ÅÀ¾?Æñã?É?ç@!ÁÖ@´´>³ˆ>˜h?pô?†Û?Ì¿?þz|?Õ5è?ž>?®ŽÐ?Úvz?Ýmÿ?°³?µ·Ñ>É z>+ó??Uö?}·ã?°h:PîU>Õ¿ ?»‘ñ?¨Ã?‹Ä2?…ÓA?9¯‘?6´ü?^ë>ñ>Õ?Æ>ãW?_Œ?€²ô?išL?ëèR?è%s?eº:? +,ç?Ž{,?Ôz ?­pg?+æp?_ÁZ?Ìa‰?Ø<@\Z~@~…A?î¼e>ÚÕý?6È?‡±‚?_+X?B¼?~ÉŸ? +¬¿>³§z?;Ñ?]8`>èy[=s>ùH8?Óð,?Á›?Ž? v·?·”"?Ûs?Ѻ-?Ðé¢?®DE>ÐÁ)>Ю?|ˆ-?[ä?–p?»›?œ#t?T¤?[î?•@?Èô?ßâ?'Ð?â?·´Ã?YnK<ˆ¨€?<@'ä?þÑe?Î&È?Ù[Ü?‘¶?-ù¶?S1[?›£?¨†æ?í¥?àsJ?+xÄ?$ÿp?x«ð?“B?ƒi®?PX\?1ý\>‹*>ךÃ?±ƒ4?±ô ?fm–??À ?M) ?R{?”Åc@ÊÖ?ïá/? x~?¦>?VkÞ?aü>Æ0 <Ù + >ó¯¶?ƒè}?mô?ƒ¸M?¤Ö»?ÝT;?Úî=?JSô>Û(?„Íø?Ƥ¯?¾ þ?¼}V?½”t?R +?vš5…Z>c>°²S? ž?ZµÛ?;:Ý>Ûü?>æµ?"Z?1« ?‡Îo?–C>?¦Ê«?¥ýö?+̺?*RJ?Gƒw?dð”>ÈVÓ=Õ3—?ÞZ?eCÛ?!"?f?B?¯u?&ÎÀ?p\j?H]ô?Ý—>' è=¯²d=U<8?4¦—?q|?>Ã?Qð“=Áú="Sè=1)œ>™îR?Qa=ÙÇ¿=µzI>šô³>ž¹?Ÿ?¹?Õ2>ϧg>z}?;ÖÚ?ˆ?Sum?¬,Ì?„(o?M/{@lÏ„@Q†N?õW?VY€?  =Á¤¶?¬>ùƒ$?xsP?kå»>òæ_>Þö“>ߎÿ>à>­ðí;FL€?Ÿï?ª T? Ɇ=úºq>©É>4”Ä=àíÑ:×Ìh>Új>æd·>êPÂ>ôº0?jX5?žP»?—-L?Š?W|@Èç@_g?À'?‹öª>ð+ë>c`8? ?(‰?1?'bk=¦J@=µ§§?¨eÛ?¬·b?Ý>î/?QÃ?gñÀ?oÓ?xƒ}?9&J? +pÍ?…o°?Âø?•dû?$*?&/Ç?@wÒ?&>„½Æ> +¤?l‡À?lÇÒ?—t ?™æç?Ž‚{?‰Úñ?Pψ?LÎ>Žh“=¿ÞÈ>Ì"?‰Ô?såM?£À•?©Sh?®ÖT?t0d>ìà>–î/<é‚ð=bÈ=èKÂ>¥Qf?UÚº?fŸå?¢$ñ?¥N\?Ç\?»ãÙ>-v?>:Q¤>èNQ>êܺ>êÆ>ê°#?šgÙ?¯æ>ûµ>-5?)”1?j1Â>ºiã>¶ÙÉ?"´“?Wu/?–ô@?8‹?ãÉ?â>ï.š>²!ð=›!¸>èùž?“µ? ½ü?—Ü®>:†Í>aÒ?9Ÿ ?6* +>‰zÄ>{3î?ž[ü?Àß0?{EØ?<0?e°Ï?w¦R?è“¡@+ø?Ø>ç{›?{ÌÈ?çV2?±;u>ç0ž>û(ß?ÐN?ð;>¬gŠ>³º9>:@>$MÓ?a ?f¥^?[Ív?^ æ?j<ó?i 5?ÇuA?æOÕ?›÷Ù?dË?c7?f%r?fò?f)?Zðñ?As^?tÛs?Äe8?¬PŽ?Œ?íT> 7>]$œ?¨e9?¤'C>ñ¦^>åªÙ?*Ið?.ÅV?+ùÆ?)+?œW!?³v~?Ë€?åŠo?¶9?…¥„?wÚ!?S•'?êö?âv@ +U?öz ?›¼?úÍ?oíœ?mä?eŒC?e?¥Ž˜?¬.|?Ùæõ?äü»?“‡z¶ ?eåH?fƒ@*@“è?íîX?ð®þ?Œ–g?Œê£?¢œ”?«¸>Öse>R³ó?ì~? ý0?¡ ?Ñ~£?™ôÑ?f“’?T÷?Gkå?$Ѿ>æÈi?oh?$˜?t8ã@´?ó¥û?‚$&?y9Õ?g8_?r&´?çNJ?ç¹>üžê>ôˆü>óD>õ#Å?Â5n?ÛŠ°?’K?y™>ÙYÀ>9œö?ï6?ÙÌ£?É€ï?¿X©?¶^?¯çô?¤$€?Š÷¬?rk+?'M÷?QVæ?«Pr?­ˆ@Þ@‡€?–zÊ?Úm?øxó?ù¿0?±¡ù?µqÉ?‰¦•?ƒZ ?¹\^?ƾÖ@mH@ Í?Sya>Ò:ü?ŒG?¯¯ ?<hÛ?‹í?ꆣ?Œ(‚?f“?? ?.ã?[{>Ëøt?ÿ°?kŽ?´b?]@ +°?î]õ?k‰ß?x¶?¬çw?»¤9?¿[‘?´6‘?” +P?”o—?Ñ:?ÑÃ=?(«Ý?"ð?iu?œ¼D?Ãv7?ÌPT?ÐC?Ë€þ?"¨r>ìÕ§?™ê/?±¸–?×i?æîq0>Ot8çà>—“6>â¼T?6év?a›è?íãÁ?½ã@½£?ò¶Á?­˜£?»—d?¹¯Ê?©Ñè?•°?Üú¢@2Ì @Ãl>îz?`1Ö?îî?ÿA`@/?@ +Ä?šlÕ?õ“?+ºE?LE0?Â}ó?Õ]6@0ED@3í@3D@+þŽ?êp\?ç.?ï'º?ébh?‹0F?’/°?Ʋ8?Á}Ø@ 5@ Ä­?‘¡Ö?˜_à?S?"ï•=?¢ ?˜A?Íâ?àœb?“¼V?qu)@+I @QÇ?ͼa?D?©X ?»Ï~?‡ã2?W £?·‹W?ß$?÷#œ@ût?•ˆD?*/?¬–‡?î¢`?ξÆ?«ôã?»|=?½áñ?>¸5> Àš? ¤ ?š.M?ºcÊ?ß Œ?¶šÃ?väQ?sh?o…¿?½9/@©@Ø@ ²Z?ßÜ?‚ñV?zš?OP’?v¸?³l–?º×À?ÝŠ?Î{?oí?mð$?ZB?T—Á?nü±?‹@Ù?î‰`?ÙN›?•…X?–0? +ñê?˜?o;æ?qëô?­ú?¥¥4?ü/?†?¹°;?Íý*?`Ê^?G?å †?ýD%?öÖ¯?íŠÀ?¿’I?½Ï|?‹˜q?gÈ@<@(ÒÉ@ xú@?¦J?h˜X?ð6?퀕?¦"#?wBã +É= £@?³tÚ@iN@0j`@Tw@$²…?ê¨Ê@ +J@:j@¶ä?â?ÔÖË?-¹?y¡;>>Ý>Ĉ|?ªKæ?œ7´>éÜf>Þù¼==>F|_@0+@'’ ?¢è—?™}µ?÷?íŽù?…n}?i[?K¢ß?4$?ºši?è×#?©¤?sm?(©>ô•†?ú¨?ƒˆ?•xÎ@Z:?´™l>¸˜t?5?Ï3?Ë’ý?ˆAÖ?€¦¼?Mð;?^yÁ?çžÓ?瑵?ç~¨?å U?m”‚?Aï5?Gþ?E^}?µß?ÞL—?®Õ?µ?Ægc?üʉ?ï/?Ü-@@(X?þìÕ?$N?2æ‚?ST;?KV™?CXf?F‰?Åѳ?ÉÄ>öÓ}>åÆ4?H\'?:®ç>iÁ®=uLò;æHö;§P@?"þ²?ŒØ?šÇæ?›ß?Ÿð?‹‰Ó?˜_?¢k?žrñ?«ŽŸ?›%?6ð? ù?äoõ?äiƒ?¾B!?ÉÌ ?Mõ?==©?Kµ?1x?“÷â?¡P½?‡mî?{ú7?l”©?c k?‡OÄ?©>þ?°Ð®?Äíò?¸5Ý?½y¡?¸ï >æ2>Â!?ÜæF?âæ¥?ºïˆ?°5ù?þG›@ r•?ë·H?ÊøÂ?ñ¶n@ ~j@‚ @B)?Ñˤ?Q¦£?RÝï?µ×?¤ýø>ü}>âîZ?™ú?ž= ?ª¢[?©K?©?¨ÿí?N#?¥?Êz?ùÇ%?Ù²{?¦{Ë?†‚5?  ?f?üýF?þ*Ã?fn?‹mI?±[v?½Œ¢@…@ƒ´?É?§ßl?¡2›?—ÓÞ?»cê?áxÔ?´e'?^ã!?¾J?ßZ"?ÒÒÒ? >òQò?ZŠ?QÐ]?©–#? l?—ÿ?n¯?¡5ƒ?Õ–z?³v]?Gò?Rãá?¥ˆù?¦Ö_?¡@f?› Ð?}g?ƒÄ/?ÓTÐ?Ý|=?´Ì?¥öš?¡©]?£*ˆ@µb@l´[@)?\º?‚D_?âÒ?ÖPº?¥D²?¥2¢@&] @;™@ìH?á²b?›]$?\Lm?‡¢?‹Þí?WZg>%ˆ>“Ú¾@ @ Iï?ã £?Ó7»?Þp£?éZ1?­¯ ?‡#?¨ß„?Æs†?»ý?Ç#Ž?Ì©v?Y¡ ?YƒŽ?í)‰?íZÿ?ç™Û?ø Á@L?ë'…?°öˆ?e H?XÚ"?t£s?k>Ø)ö>Ø9?³!?¡Û?Ù†?ìH?­A?WÛË?‰îÎ?×?â ê@& +Ž@xé? Îb>Ö~¶?•k{?ÌÖ?ˆø>ÎII? e?…ê?’’Î? $¶? (?šÞ>Õ*œ?püA?Ÿs?… A?Dö?F}Ý?|«‰?…~l@ž“@0?®‹·?›¤¥?¼ÊÞ?Óž;?«gÓ?3Õ¢?9O†?žbÄ?žM{?Î#P?ëV%?àvt?ÐÓ?uwà>’UÚ?,pP?Æ6?›ÖQ?›h‰?j[?»¤n?ÑsE?Zn;>È?¨öâ?»*¶?zý?jHå?ó—7@Ȇ@5?ýï„?Érs>Р>Ð?ãD?ÞÝ‹??Íl>ÐMõ²O>ÜÌm>ÏnÝ>¾€¾? O²?¼£?Û@??Š ?‹}Ä?áY¿@åž?½ÆM?W€?mÕ¦?™7€?¬.Þ?xTN?KŸ¬?SÑ!?WøÐ?P@3?P;O?eÒÝ?Ž!R?iIÙ?iˆ6??M®Ê>ûŠŸ?ñƒ?Q ?|…h?Ðw?ã£+?Q¥á?Qˬ?‹ç?šÒ?FY*>½Î­>Û?×?2­£?Rs?UZæ?”0?ïŠf@©z?— Ï?Gž“?S|?w?b‘u?Œ@˜?  ¼?øŒ@ + =—ëú>2?(:?¨%>Ël>”å>e€ý=éÄ5;a4=]>à>`õà>Ûô«>ë•‹?ü~?„ø>·0>Ó«Ç? 4_?§å=?¨>á"(>ˆ²m>Šõ >¨[×>Åþ·?>0û?eFT?¦>æÍb?h€[?Z¶>øÙ=Åq?\ ?°¡æ>àW?E?N¯ö>?µ²<‹V$?d Î?SAM>¹Êƒ>5U>ZÊ]>ü_W>þßP?kæ>À>¨É>FýÞ?WOC>ïhL:Ùn=H€=ð >>äà>)˜Ð>”z>Á?TKó?sE>çä=g_É<¡Ÿû@bÝg@8æä?ûàÓ=€ô>Íëz=hì2?Fž…?L:?Q`â?C¾H>á£â>ës3>h=Ž H>“ÅH?$_É?-áp>á¯>ÞÙL>ßqM>àÜ>„›k=rl?N™å?\³°>Ôgü>¥íC?+‡Ë?dpt?”È=Xf>æÃ>æ[_?WÝË?^¾r?™ì?­¾Ø?J{>›è¤>½N>£$>€!2;¬Äž?ÍB§?å:?©[?œý>Û¼÷>1>‰³ø>!˜x>ȳU>ïº$?Yà~?gû?°9?°€n>Ÿµ=‚Êž?DšS?l< +?Ü>ìUd?'°?X%G?kë³?lwˆ?LÝ??&ÿ?^úŒ?—le?]á?6ãÆ?2 ?Ê?$>?že7? ¶?9a?*Žà>ñG`>ìJâ?JO¼?aj>«~7=}‹Å;„bd9ŽÈ<^úð<¿>r™{>Ñð>ɱ]>ÂV‚>•(ì>_G9>ÃÎÚ?;íÐ?]j +?Ÿä?·y{?îxµ?Ò#ò?2o„?,’[>껢>ê¢?v™?„|™?T«{?=øŠ?x¢T?ƒÐó>ݬß>5#?c#?§j?-|?§o@‰?Ø^?iBŸ?>ç·>áÓ#>Þê¡>èæ±?óà?yXÌ?wv?:z?GŽB?öX“?ïô™>°Š¢>šK¥? ü?­ÿÌ?|"M?gÔ?Ÿ-\?­Á2?hò”??bZ?8K?!wÇ?s.k?«Ïì? ­Í?y‘˜?gcò?fù™?8pø>+÷>Tb?f¸2?iþý?yhP?p(î>è_>æn§?¤±Ë?¬¾~@ÛÍ@ã?düÉ>ø2I>ýíA?Õ ?¯å?‹ø?¹p@}?Ûbð?‚æo?XèÜ>å¼>¯©=°þ,?CÌ{?Jÿ>Z>Z>g7?+[Í?1±?4w¤?79Ã?ïŠû@ “ð?ê6Õ?ÓÛK?¼W;?¬˜?»So?ÍD­?k.ò?ËÖ?å`4?Ç­š?ecI?{Õ?¯mÆ?§£ð?ejØ?fˆÍ?«Ù?¬Ä?t'? vÁ?WkØ?e„»?êï@ +¢b?•‚'?$WS?ÖW$@(3?ͽ?¤l?†ôä?áÕ%?ÙD9?Ú¨Ã?Ô”?¬j“?®)u?¬íO?¨.‰?\`Ã?VäÉ?Q–?LCÏ?R³Ù?c¡Ì?¢zæ‹Œ>æ˜;>æ¦?Ù}C@Pçƒ@®€?fÜ)?¦U@}4?ú"P?g?VI>íÈø>ýPë>çU>ça!>çtå>烶?}?‡îK?Çp*?Î0D?cµ¶?)Ém?ôóÆ@¿?Æ<”?‰Œ?§f?¸±A?Æ°Ç?ÒÒ ?›x?-Ú%?…|>è¹?(Ås?—f?‘!ï?i¢?tÊù?/ã?•-\>éN&>÷Ô?¢ùŒ?¤0 >ѳ>ÊgV?Èrh?Úév>²° =‡B=?ˆA?¯–?ÛÉ?éÚW?g?†?ƒóa?¤¢ù?¿›Z?Ðóè?™= ?SÇf?\¦Å?jýÌ?ÚO> çc?ðA?³?°u?™Â?{jÑ>ëj?3Æ|?ΡS?½÷ ?CýÑ?d|—?°þ”?¸?ÚëÛ?ÓX*?ýW[?úJ>?…!Â?‚Ÿ@c@øä?êK>ì¸?£©”?±£?€ÒÒ?m$&?m“?lÛà?gá?`÷•?aY=?`§ß?hPz?ms>¾ñ=ÏÌ>v>ÃjÎ?„rQ?²ØŠ?ÝŽí@BO?É­a?{:Ä?’å¹?²Å‹?¨ +?˜iÌ?Æn0@(«?Å°„?Âã?Œ?þ>y?ò *?×­?©…€? ?qUè>äØË@ çÏ@ +¶ó@?üM>ïAÄ>ùÇð?;hÐ?-‚ò=0Κ>ÄÅ>é«? @Ü?³¥»?·æ«?Àt@Ç@ +¨?ïdh?ä¶?_ùÙ?Zí?¤PR?ǵp?¾o6?Àµ¬?SÜ,>ïŽM?ð@3g?ô­?ï„@Hf@H?®<‰?Â?(N(?/ +q?hj7?Š“?½?´N,?ÐT§?í‘…?íà‡?ôɬ?Êg?•ú?u¤:?/Œ?{q?È0–?¢`Ô?Xy8?g%D?oR?Lt-?6Â?X/²?ÈQ?©‡c?.™?ðÖ@KQï@)ãX>{>˜¦s?µµ§?²ý›?²”+?°€u?²çñ?»î@Ñ@gO?£Z~?¡¢?Äÿ>?¿êÇ?`ýö?h¤6@µŸ@ÌY?@Õ?±®?ÈŸÃ?Þ©z@Bœ@Z?ÈÚ?eƒ?¾þ>íÄ@Díß@î¸@ ‹C?©—d?µ +G?¿úÉ?¾$Ã?²ZÃ?ºN›?Ë$?“c0?/$M?£°?õl?ÜZ?¹®Å?£”Š?ŒY¸?†z„?€™ë?Šl?±-®?£š??r9¾?‘Éî?ì&­?ênž?ÝC?ÕÉ?°îZ?«9H>ëĘ>ïÆr?É‹ì?ÇfX@hW@ ?œS¿?‘¦+?‡Š ?{>#?þøÆ@éœ?o|ß>×:q?µ!a?ö9@·¯@ðŸ?Æhò?ƒ+€?¬Rÿ?Î~¬?¤<þ?J”×?Nï¿?j&Â?•Õ?U?€5??iÞô?R]V>é¼ö?ñÀ?H‡o?KÝp?ëjÎ?÷¼]?M·g?Yÿ¯?ûM@ +â?‹¬´?hÿ¹?¼¨w?ÆÍç?ê­4?òÄ÷@ùû@`?·áG?]ˇ?„ö?•@l?«þ©?Õ?¼ØQ?x’Ü?pyŠ?‹¶Â?å?­Øu?«F¶?ÛM?]R*?äbè?èw×@+Z²@'ÀÕ?¯Îð? $?sjÒ?g ü?†yb?î?¶ŠË?§@?Ÿ¬?‘P¥?§Ñ ?²ñs?”}º?f_m?ˆ4?¡„Î?‚} ?c?$ú?eüP?†—@_@_Æ?‰ ?rÕ?ÅôÈ?Õ†?‰ ß?fò›?Æ6?ÓßÛ?¯DÞ?ŸIÑ?é_(@ R?áîb?ª‘?Å?7?ønk?ÒA ?‰²?Ž?d}.?p4‚?¬Úz?²r@‘Â@;À?Õí¥?Á,ä?GWÃ?=²û@ö³@"…Ø?ßèÇ?¢ÛŠ?‹}?c…H?‰tî?ª‰/?Ÿp8?Žf?“"?ˆÞ,?Œ%?‰û ?†}?ò$?íµY?ÒSp?Ý°?ˆ_W?tyO@Cò@¦ñ?àX?±:‹@.l@'C@BÖ@ñë@Y=?áÚg?á®î?áº+?ÖTr?a—¤?a„Ú?É‹r?Ëóá?®È½?¨ïÞ?:œ`>¼ËÑ? +=?H£ñ?'Æ>âݽ?•V@W¢@¨I?à‡K?ÝÓî?Ãù¤?¾ýÜ?”@a?‰Ïü@ßî@;/e?¶=Ô?däb?nη?x¹y?¦„ ?Ô·?Ýá3?Ö¾?Ƚq?ÄþÊ?Ë‚l?­5Ë?§V²?Øú¼?Ï3 ?†Ö?f5?/rÑ?*$®?©§ð?ê±?Ïa[@R?Úż?^³í?ª¶@Ü?í§ ?U?!Ï©?»5?Ê;?Äï?·;õ?ˆ7^?]d?Gw‘?ng“?ߟ…@$‰b@ &ñ?à+ž?çú•?¥,àlŽ?!Ï`@~$?ïø*?Ä¿\?Πƒ?š1 ?c@vø@6œª@!G2?Ø£e?Çrú?™ñ±?—Õ.?¿[Ô?¨_?³ö¦?²ß?÷y@e‘?ñj?Ÿþó?Õ®ê@) Ñ@Î@ 7@¢?Ì{>Ö^?N-H?[oÒ?TÊ?H·Œ?`I>’8L>á[ë?ˆ­¡?Ž{Ù>þ1ý>Õ @?2¬D?WÖh?‚Q·?’W„?g°Y>Ç1¹?t9?øÓl?þœ?ƒ;L?SgÅ?űd?ÿº}?¸Ö?Ó—?-]o?Š +K?÷w?5pª>÷7?xÒí?¢Ú€?’«¶?UsÜ?y†¼@Þè@â:?¢:Á?Tx?!o>êX>çá©>˜ù?ú8?œµÒ?î7?fZL?…ˆ*?dÚ»?U‡ ?’Žµ?´AÐ?£³ë? >õ?H{?åý?ñT?Q.>Ð@™???Pç?Hy‡?B}Î?[<§?Pt?Oàw?JC?Oyê?IÈ7?=Ct?X ¦?¤FÐ?—Ç+?t÷?f—“?Ö„@ªP?¥k\>òÃ?1¨?¥ ²?˜qw?™ª¢?­ ›?›f?šò«?/ÔH> µQ>е?“A[? ³>8²‰=µm¸?ž¤†?Ñ1î?…2b>öCø?Tú?ÙÁ?Éê0? S?'Ä?Qé?R2R?¨Ä>Òj ?¥ô?#è?>Ž°?çÑ;?õLÔ?Öê‘?Ô>Ç?ˆFý?T˜?*À>áC>íºÝ?8,¨?Iiw?Y¸©?\?¬á:‰­>=ÑTp>Š‡ô?o¿?iÖk>*ÿ#=>ÎÁrd>/Îâ? …ô?^3À?#Êþ>ê#„>H‹=…J>£>¥Ç>ë È>Òî™>âtK>ñ³>èn¯>ò¾º=ÓOÖ>ˆí?K9c?èQ75I¤é‘>€(Ö=SEk9È&>ÒÄ>€Ùû>©Ë©?;Gõ>È:ù>ÇS@=@5¾?l Ô=ˆ7Ú>º®J=&Ô>³%>½G´>Çk6?<%½?  ¤?›g?Fšæ?: +?= W?Bµ?ÇT>.>!^®?j ?l0? „„>ÔoJ>¤<ɳF>‹²Ê>rÌ1?"F±?O)†>à©=?vÁ> I>ëfµ>æOR>ððÓ>údÆ>Vñ>a3o>±–N>°Žç?4ÊÆ?‰´k?6ùË=|Zd>é¢Õ>ç¾m>Â6>ˆ…¶=fl ? <„?jå„?*ãY>ë*¤>‰˜ô=<¯=«±q>49Q?l#n?hñ£>Üyò>Óû1?dS?l-Ñ? b>ìF>ìRè>ì[>¹?3>µø>’~ô>UºÈ?ð?—kx?x Ð>ìlÍ>ÆÂe>"hŸ>’y?l]Ô?xûÞ?±>Ô?¬Ãi>ÍCò>Ò‚ˆ>þBµ>öní@s@†f?WßØ>ã"?¤Ò>=›*=¸Ê=ÖZ†>qS>§Í?8ü?AÏ?1ú?&C§?W-i?Þw?¼da?4n?8õì?$…w?%Ð?ElM?=eå?œ•Â? æy?–`?˜þB?wê“?iÚO?sˆÜ?rfÏ>˜˜;ôä>‘µ>>éQë>ìDI>ñÂ0?¤°@¯2?³½¬>èËŸ>ôí{? V?làŽ?ôÕÆ?çH ?Ó!v?ÈOi>è>âÍ?‡Š?fb>é\‡>ìL°ËÆ?W#0?†'?X­Ô?3"?ªâ«?úA˜?¿gC?f×ñ?t5õ?€Ò€?x>H?ny?›Ž?æu\?Ðì>æ[š>æIë>ïãï>û¡Ñ?ð9?ëw?–¹?›t(? ^>åé­>NhC=äÛ?cŸJ?·Žà?ך?âý¬?ÕÝS?ÀÚ?qš[=‰l>fÀc>¯ê?P0?Cfo?OÃ?Iï?DTu?>¼ô?³Ðå?¼7{?¡‹~?ž}¸?€à?‹ÓK?oÇm?UUÅ>Ä]$?J”ã?àIU?¸àn?dù\?²iØ@+ï½@ Le<Ëyü>þŽ?mãî?ni$>èBW>åT)?špS? ÷Ì?cc*?`½T?Šp?‹/³?‹€?™ ?ˆËü?e‹c?£²L?Ý<=?Ùº;?Êy?£?3H;?{é]?åÒæ?áʤ?¤^?¼ +?…]?‡ð=1cZ?¦ž?¹ˆ@Ÿ"@/ð–?¢½? €±>ÿ±Y>æ~M>öp°>ø4Ã?-@?f¹ˆ?Š{ð?­æ?ˆ¯‡>î:H?~D@!÷@b§>ç+0?ÁÉ?É{??ÀKì>I§>`Câ>ëú?ô~?“k…?šS¬?÷“Ž@ +'¼?]+þ>ÇÆ?WÑ?:W?¡õ¤?´¨?—¥Å?hk‚?4 ž>è’.?!K?h·Ã?™K½?×±*ãÀ=þúì>ç±ñ>éª?àŒ¿?éÎ?éå‹?é5¬?ºÙ™?³8§?¹?]*E?pê?}O?§7k?¼Os?­lÆ? °Å?æ´Õ@ ‰??ýߊ?àÔa?¨A«?k#‡?ctó?bÂA?nb”?gæD?Q,{?8zÊ?7¥>4õ>Ûî«?°àQ?ÓZ@>~@9¨@ êÐ@]?’‹Ý?—Ïg?„]õ?€¨?Ó™?|?¬³?±‡©?±Ù?±?~?¯Æ?®6Ç?¬¢«?« Í?æ°?m.¡?"Í.?@í?˜6í?ªþ3?Sm¨?Ã??!T…?:Xš?­Î;?Ó’?—Ø?o9?™ól?ªï‚?š Ÿ?”—?–Õ»?K?ˆ£¤?n8²?§D´?í0ä@‹c@@é@f?­Ë?ÅEñ?í=@Hã@n¡ª@.O>÷0^?C@?c8Ñ?_S?[èL?4Åå>ž.¢?»æ?€t=?‘DÁ@ÚQ@\Ð@Ï#@ -?un%?x9£?³^Ì?³ù†?šØú?»ã?‹µÁ?³E?‡™‰?…ÆH?@Z¹?3˜@  @œq?s5>ÿ Ú=?£€ý?³@ +¿^@ÞÃ?¤ˆ?˜pê?»’~?ª…>Èw†>€Ï?к…?ü+Ø?”›L?okÊ?CU‘?/€@ù @'Ý?ïWm?Ég,?c†>éUy?- +?[ Ü?º?é¦)@>@0@"B @TX@Z£?ï6þ?€Fa>Ð>ˆ)n>Z8˜?Ø?JxV?XÊÂ?€Íå?¢îì?»½é?±óˆ?­å&?†öp?Z?nn]?îÐÿ?´E>—Ñï?U›A@°‰@j?µºç?Í5.@©?üô?òº?R-¶@ D@iØ?Ü@B?Ü/v?Š…?Šôc?ƒêä?‰Ý>kn·>„wK@uÜ@Û{?[oŸ?)ÈÄ?šö×?¦®š?ÕÃÓ?á+@?ã–7?êí?½?°??íŒi@ö·?©µ­?‚¬2?ÂíØ?ÛŠn?³*1?¤ì9?†p?iÒü?ˆ¦?Ô?Îå@ 0@èG@*Úÿ@žê?ì}n?òuŠ?òlv?Ãu¸?m×”?™1?ÞßC?Äöû?-2?ž ô?Ã{§?ÉHè?Ó(?Î\Ü?«Ës?žø?¿T5?ÅtŒ?Ë‘ú?ѵy>Ã(>Qüù?Ë ¤?ég?-ò5?Ðî?å¼Ò@w«?Ëé?¿)?‹À©?uø?€Ø;?o÷ã?”7é?¯·4?¯¦$?¯™G?œ p?ðý?´"©@ ²Ë?êŒ?i»Í?žê@eÜ?ù‘«?ÑY?Ág7?‡Œ÷?†yè>é3‘>éÒo?gÎ|?hüï?—™?’à?ù4@ B¶@ "Ì@, 8?DÁÁ=¥™Ô>Èm?¾?µíæ@¾À?ÁÈ?‹€?Ø9?–|b?•’?†5?ŸD„?Æ¡Š?ö@pNr@dÇ?gn?†¢@G_<@ErÌ?‡™u?„¾ü?·Âñ?µK?|D”?fÅÁ?™n?²Í?Ô?.?ªÝd?êj«?’<ú>íM!?,ѽ?yTé?…\x?‰y¥?kÑÅ?%Ô?ygL@1Ù@/—Â?ÏIK?ãká?^å³?]ÙP?×äT?ã÷l?ãðÕ?å Â?û-ù?üâ?Ã5"?¶â?å•Ï?ü¤Æ@Mi@àØ?Èðÿ>)ÇL>‰ô?d:?t³4?«-v?«ã]?Çœ?Ð'v@ ü@q"?UÂ;>ýd%?¾W{?÷h?¨¬?jÀÚ?cçQ?cf«?;u?±½?[ L?—°¢?› ?«Ö?«O?Òz%?ɲ5?îð9@}H?H”>âϹ?PÕ9?bk„?(Âú?Eϼ?hÌ?b$Œ?À“„@æQ@&?Õ¨ ?ÚJ°?ÞåP?×3Æ?«^??«^Ç?au&?a`e?ºíÇ?ÂÌV@/s?üi‹?£Û]?’-â?v³=‡n>á=?Y|€?Œ7ë?ÐcÌ?Þ›?àgF?Ø*?±åK?¾8?ú¸ä?ð¿„?.æ2>áŽÊ@¶@ÃÉ?­'x?_—?wÞ¤?ŠÂ±?½„µ@/«?Özå?<æ¶?ƒ2ï@ dw@‰?{Ö­?ˆÐ?·?±FX>óų>5Tñ?ÜR‰@0Æ?î~?^÷?‚×ú?¢z·?¸^ø@ +’P@Ý>݈Â>Ýr—?ØÔÖ?ÑÛ‹?ïkm@#‡?Ê“ù?£¦ò?Êm~?áOƒ?ð2p@ôe@ "?¥=G?¨¦v?ïç?³^T?Ϥ>îN?K×?¤¹S?‚±¯?[s–?[YŸ?[:?͵s@^ù@Lûß>Ýë +>ëÙ\?Y™?Z†V?;,Ë?)Êg?«?ÚÃ?¹¨?›j?]Å?Y\S?XŒ?‰Ô}?š¢­?Ä7§?¾€Í?°˜?pñ?Hj?@%?—üû@^£?à‚Ø?r/×?x4è?tB&?–¯?Ão?ËAB?ˆŠÊ?WVÙ?"x.?N?“¨@ÄÜ@ôß?Ò0Ò?Æwÿ>ÇÍâ>¹©ú?ÑÛÀ@ÝÌ?¯µ²?UË'?Så?5íï?!Äb?zhô?nƒü?öŽ>Ùîe>Ø#«>í;?]Ów?ŸTÙ?Š>Ã? q>ò—Î?È>?ÎU·?·E>Úˆ?NÌ$?’ä?Tø¸>K-É>Ó+a?—«F?…›(?ô¹›@‚2?»8)?É?¾Ë‹?Ûe?¹¯!?pv4?„FB?–Ðô?œ:›?˜;>Ñys?6®þ?n$Ü?€Io?»æã?¾~ >wƒ=7$¿?!§Û?P¬Â?˜Ü…?¿Ì?«5?~’H?sÝ?œ.±?œ'?œˆ?–mš?i¸?ŒÑT?ˆE?z¥ë?UsÕ?gàÍ?[i?âd>׋?v¸Ç?³Qh?¸Ð]?èÝ=?â˜?ƒU!?Ž¿ ?¿Ø\?Ñ +”?Åî‹?¦€|?•Ë?œ~?©(9?!ÈŸ?[|>9*=PØ? õx?e7ï?ƒ­?çcì?džÿ>ª=x>·JÀ?ò$¶@¼î?ÛäU?½©?ŠÃ?Óm?ÛQ}=¿ø.=0&¾?{µ¶?›¡?ŽÍƒ?}žÎ?„€ß?™yô?“ï½?´6?§,º?Ð:š?ÓéÍ?†pA?TW?T¿¨?Uø?9Ü +>ûx.?ù0? uk?›Šç?=Ï?Ê•>çWb>Ø>¾?HU8?hNû?[¢?\dÁ?˜Èr?Ìc¢?£Äo?+a?MÑÁ? dU?Û?Ý’4?Ò?>ËU/>š®?Bâà?oªo>•âþ=¢¤½>«ûo>⪤=ðí>Èë>횬>²ñ½>o¦K>ɤS>íüÚ>}£?O¿®?Âú?DðÎ?GË.?q•>ñÄé=,E@=eÿ: Ѹ=™ÑJ?4×x?û>…Ë;>ÝZø?*Xo?d¸ä=±LA>“ŠT>Ù„š>·è->ö=…|=´Ö0>ÓŽ¨>ùrÍ=‡_h>SgK=I=(ÆŽ> Ã@=zŽy;€o?„ªŽ@ÄÐ@:s?–>Vy=ièA=j>ˆ$‘>Þ¸°? Ûu?Z‘ö?[HÁ?[ü|?\©X?k…Ô?deÍ?RgÑ?…ß½?ˆ™7?>V·?+§Ê>쌽>/Çm>ƒÁ2?@I?Ekl>ñÏð>ä@¼?wd?öj?+ô×?bR¡?/Ùì<Ïü=1À ;-âˆ>¿ @>èÄ>ÎÇä>èÆÎ>–§>¹ˆ>é—±>ïí¤>Ê°ö>ºËÁ>újÜ>ß²ð?œÊ?2t?/î_?“n>’[;=*²'?JE?é»Ñ?´²Š>ò@$>Ìл=<ãB> Ã1?lE?jXÆ>C>¤?5„¬?BÞk>Æ} +>ˆÄ¯?L ?4FÉ>È>„¶D>ŒëÒ>•£>>4>¥]]>âÛ­?5…3?_Æ?§…7?‘S=63â=º“?h°V?mi{?¯þ÷?³’˜@ 1²@ +¢?Ai;?Äð?6+û?8½´>åþx>©–>?¨a?Bób?yæ>¿=!?QÐ?˜W/?Ebs>\$®>³1z?%]?2¢ž?j’¿?oØm?Žƒg?‹¦`?5ê7?:/Ä>Äww>ËéØ?e[~?i̦?¦Š³?®e¦?JS>éj?º|5?áóË?Üщ?×´P?ˆHG?={º? =æ>è·L?láÀ?¹^¶?¬¬˜?­'\?ÚÁ?Z¥?> J?›³U?‰²!>ê©j>ÓÖf>Pÿ§>D=B>áÏ3>çt|?“*à?˜B?‹Y?=š?±Ä€?¹9Ú?˜´W?…-?‚Ñ?}ö?¬lh?á¦?Ëè…?¬¡â?¿ÁÆ?æ[a?ÉêÐ?a¼ˆ?^´½?[³™?PŒR>æ +û>åù™?çR?%)X?IëV?Fá¨≯$>œNv?:^Ð?ežŠ?]–Œ?pçt?¶'°?áý™?Š8†>\ˆ>¾sW?$'¬?fE"?Ïh +?Å?˜Øµ?š;¶?› P?œ­Ì?¼Fa?ÀÓ7?sû“?e(>ždæ>ò>ù­Õ?.Ü>_;<Ïñ ?/e?ed>ïÈÖ;¥4€>üê?|ò?:,­=Ѫ‚?ds?(…?ÃÛ?¼1â?€à?Æ}?Œ1;?ˆB¡?Æ c?ÐÆë?8¬U>å\a?@?ek¶?‚$x?Tö?ÅÔ?—6E?ˆ¹?;Œä?ySY?Ðæ?ͧ?Á…?²¡#?×0?ß=ÌÓ=É£Â?×y»?Ý@¯?™ÈC?‹§Ö?ÈT®?ÛÍÈ?R°g>ð Õ?…­¥?¬×Õ?¬ã[?¬o‡?ãÞx@ Ü?¹Ö¿>æÌ‚?Pš?ÆÌ?²;?Pê?Yñ…?u’?—çé?¤²x?˜±r>™òØ>•'N?¨WI?­·‡@!›@#<>ݺ¨?WŠ¸?ˆö|?CÇ?#H²?KŽ¦?hKä?Î->Ÿù?,œ?ƒ¨ë?Û‰w@6XU@,#9@ ¥8@Îÿ?Úöd?È +¶?qŸø?ˆ:1?å r?ׄ„>éu—>ûòƒ?¯‘'?°ÎÝ?xðà?|Y•?¬1?¯}´?yÀš?j!?çƒí?üñº?Ÿ³?…qu?n_>æå?— ·?ÍÙ$@ +e@V"?ÑâR?kú?l‡ ?dl?fQy?~?QC?‘Át?y\[?@™k?aà?¡!Ë?Á– +@ R@ÙP?Ïhj?²º=Íá>› ä?èï³?êJJ?ë}E?æ“Ë?lØ?n4Á?qu@?tÔ¿?° ‡?±¢?&iG? NA?fá[?mü?S{ë?K4æ?²ž÷?ÆF1?Äè?¾*7?æÁ> ?…éR?³~‚?lo?*@9?§È9?׈?§:°?Œ­†?¨Ö??¿µ]?±¡?šø¤?-˜s>KxÍ>¬š,?‹?8U>?tˆ?‘© ?²ÕÔ?ÌäÈ?öû9?ó8û?Ý_¬?íKN@ó?ÇÝ÷?…9?‡f-@¼?Ö/?‹òR?‰Z_?„•a?`d?¨y¨?¯Î*?—eŒ?£T,?ËQ?ÐT.@G±?õVJ?Y!I?TW;?šµ*?£`‘?Þk‹?à•º?·Îô?µÒT?³êo?±ãF>ðñú>ç#?tšM?{®?ò·V?ùžŒ?­ ?¥É>é5F>ßÔê?vô?ÜÁ?Î9å?é´^?‹Nz?oR[?£O’?§ê£?ÇtÁ?Ûõ#?»ER?¥åÆ?ÆL>?Ù8Ï?y ^??1È?¯6ý?F>ï->?Ö|&@w?ä b?»G,?Uaè>¼ÛÁ??ÀÅ?ió?o1³?nûF?¢pÙ?Ài?ýUQ@#ƒ;@§@;?ó­Ö?ص§?ÃÂ?¶Þ?»ŸF?²üQ?Ž‡¡?áÛ?k¾?îxó?Þ&?·EW?ÄÝ!?Ø£-?ÙMÕ?úœ\@7Ë@z?ëñ«?n"#?z’Ù?šï3?‹¬>Ô¥î>ÕÉ&?äá½?õ›(?ù?’@€I?_’·?]œd?bò¨?hJ*?>î +@@]@¶Ñ?žš‡?ŠáK? å?¢4í@ Ÿ@Œº?u%F>Ö–G?ÙŽ?+áä?I‚?Æ7?–?l˜?Â'´@ˆ–?ü– ?è¯g@*Ù­@l?ø@/ “?¬¸;?¯=²?»LØ?§á«?ké5?u¬“?Œ!G?a?Ì`?°D³@3W@ WO?¬Ç ?¢h3?ûÌ?ˆm•?ꔤ?ëz?úK>îÌ?Z‘°?^ÃG?C/??X`G?A?@[]?x@L?zÙ®?œïõ?¯¹?¯¬b?¯¤%?¯“?¯ƒR?¯v‘?¯k1?——p?k-T?ÊdÆ@*ué@º@íÀ?ÿÓ}?”q®?”¤ô?iª@:S?à %>ì!?]2?« w?ªT+?ÔöT?á{¥?nŽ?æÒ? R?­­?yX?fª¤?'·?J{?µYø?æfÁ@{ @,³¢?ùÅ?¡]?¾÷?žÖ?“$_?ˆ…t?jÖí>å¾ã?@öà@’¨?ûµ×>ìl€>šù>å6H>åK‘@Zü@ ˜?œ A?‹¯€?Üæ?ù¸b?м+?©}~?ÉûÝ?ö`9?þ±¤@ƒ?é)S?«La?‹Dl>êK?%M?«y?« +?ªþ³?ª»–?¤{Ö?¶”•?Ô:/?ÌtJ? 1†?ŠÉ?â?ªx@é@ n?ä3×?ŽB£?PË? «ø?„G…?ûºJ?òëô?ëö‹?è) >LJ–>ÙŸ?`.?]jm?ñÇÂ?÷é!?hþò?Èã?±H?ÚÇ¢?Ô??¢V?p¢?™»Þ?£žs?©'š?¶?ÚìÉ?ã§ô@j@5T@âï@u*@H@$ ¼?‹¤? £ß?Ë4Ð@ M·?ñ\¯?Ðq?º¿C?¨Y4?Ìä˜@ ¦Ø?úáð?•e9?–ß@#žŸ@& +å@'ݧ@#±§?ªÎ?žØ?¤/?’?7û®>üº¾?“@ ?íIf?£¼=~œ>ÿ +@&I›@L>=j„>‡¨ž?“›?¥ªæ?h…?7Pð?§˜+?Ön +?¢??]ñB?„Ï”?¦Tâ?£•Ï?§ØO?¶ÆÇ?ž·Ð?‰Y@ ¼^@ì…?ˆ?[wÀ?_ÞŒ?j Á@ +@B¢@ïw?ÁV ?½¾_?¥) +?±Á„@Lê@#(?Ýh«?É…¿?Ì>u?Ê”—?ÊÃÞ?¾™³?v€„?!ì?nË“?ÆôÊ?âÆÍ@¶©?òk×?ò_?úª?]_? :ý?¸Ý?Ë“R?¬A?sn?3ZÚ>æro?kB?YM”?Y`%?ŸèQ?«-!?ã S?÷Ò:?ÉU?¤Í?e!3?FF?L“?Xr?ZaÜ?F?h?²rD?°œ?y3?W2b?PU?AŠê?hÜ#?®5k?¿xP?ÐÄf?â÷>¡»=–¢T?£áš?Úg?‹Ä?UªÝ?fPñ?†‘?Œ\c?’&l?—òE?aÙ)?TE?ð,&@..?Æ ?Ÿ? ?‘Vm?tz?ˆŸ¸?¥Ç?Ÿè?œÅ?‘Ú}?jº?SE¬?H¥>4DÀ?1@ @ó?`a?b>b?ò°@¿?å½Õ?Òá?®M >šÛ>¶æ&?U@&?R¡§>jO=º°l>Þd ?GÏã?`Ï?xRÒ?‡;;?Xôª?Pßë?Úëd?è“&?Áº±?±î?¢Í?o \?„‚e?–3Ý?›iA?ê¡X?ô‰Á?¬ü¬?wõ?Šx?¨´>?´g«?›ºî?›¸º?™»a?ŽpY?—Üé?®²„?»ó„?ÚÀ«?ç*¼? +>ä \?7Á”?gÏË?“Ž?®NL?¢—?OŽ5?O”Î?ªb‡?ŸT¯?uÕ>·l+?@[¦?›ê¿?Ò)K@@ákð?²?ÊQÛ?‚ãÁ?;¸?ZD(?‡Y?¨[±?ë‹@ +/?nï`?wªo?+p?Ð@?$\ˆ?2›??¶ˆ?MtØ?i<? ¹ ? ×?| Ñ?a=5>«´Ñ>˜õÅ?pq? ˆi?V=ÅQü?N“?•¢‘?‚Rx>¦F4>ÉY=?žè?¡{?e”¿?€Â•>æ¬S>ßÜa>„{>–yÂ>Øs>âsÊ=Èq*= h?†T£?˜à°?pQ?fè¯MO>ûT®?7äŸ? 6>ïÓò>ðÑ*>ñâK<èB =¢“>÷Q>Æ()=¨ÍF<§˜û=çÈ=ô«8>=o¡>€Ÿ²>G°|=ÕLâ?cB™WÉ>ou>h.h?Ãõ=ÊÏC=)TÑ=ô`Ì>ÿ 0?‡%?²û>úÈÏ>G‚ç?åÙ@zþa?ˆ­â>Ìsš?(ÝÆ>Öp.>×C™>ØÙ>ØÜg>ÝŠÎ>íSß?#?[]?\ò?ç¥>Ìh ?d= ?Ô̾?Êa>é¼>à½4>áE“>áÅo>À}>ž ->¨X>²8>¼'Y?±?Ð8®?(á#<ó >?©I>×v>ö@Ø?DÉÄ?? ?½Ÿ?¹ *?>>—ë=Ìäe>OUS>éT?½S?iê}?jK°?ˆ¯u?Œºï=,¯Q?8Ê?Ÿò=?=ˆC>ù÷Ñ?9ÄÅ?k…?Bž<Ýaˆ> &‹?L—“?K51?l?h*è?*2;?ï?ï‘?#ðø?{ÐÚ?uÎÍ?dò*?s³*>ààG>< +ò>Ž Ð>šµ>E•v=ó0(>€¡>±eU>ösÙ?^2)?L“?Æ›>öê›>ìð>Ñ Œ=TdŸ>Õ±?ˆ!ˆ?Ü>ý™C>ë³w?˜-¥? é?3–>ënª?1»?$O¡?Cí?>/‰?mmY?—"p?ˆ­?VP??XÞ§?j¦±?[^Ô?HÃ?2Õ>êN->À:}=šu=Ý÷>qíá>b’ø?dÅ)?h54?išú?iƒk?g«h?dû?ª´?´éè?Ž[­?‡]·?#‹S>èÌý>m¬>(q>¹£¤?ªO?L¬í?hA?_”@?@œ?zñv?Ë+¦?¾=~?ZI?‹IC?yL ?Y„B>›@J>¯Ê½?Æs¸?Ê¢°>ÝHz>º‰/?Äð™?Þæþ?Õê?Ø?ÚB›?ß]ä?ž÷Z?f{e>ÙR <Õ@>Þ”Y?s[6?L¥g>ÿ7?ŽX?~?/9>åæI?"Ô?¸_i?±Be?dæ*?e¦·@Z}@ Z?…xB?e{? ^>éwM?ƒ¡2?¬Þ?–Ð?U}?=ƒ?Ç?VF¡?š-? ?ŸrÇ?‘²?eA?a}?*´?# ?dÙÁ?e ?¬†ß?®*¤@¡@£?Ærg?«¹ô?=B•>둯>âÇS>Ól’>z¿=ãQ”>t\`>½¶ ?-?’³?¢D`?å?Õrg?e…?`²?E%?J²@/7@æÔ?¦Ù‘?“0™??å:?.ªg?{Î?£ì\?›èñ?‘7…?¬ú?Ò#e?²{t?Š×(?s\8?- Å?IW?|^?an¦>åÀ¢? ¿à?²lC?²±Ë@#>_@'f?7É>æ?Êþ—?æ3>á·|=2R¸>ºaÜ?PX?ès@)J?ÙÒ?RÝ8?bþØ?ç?y7Í?fàª?N@×?k´?Ko~?Â÷?¼ ?}h?p¬_?\ ;?bz+@@W?Gä€?\?âHæ?þ+G?`Sì?£¶?)6?$´Ÿ?9 >áùù?‡´Ÿ?Å’?sŸ7>¬t_?n%r?âà ?»Ç_?o¿?‡‘þ?®iš?‘j>é)µ? =…?fƒE?s¢å?¯Ê?²ðd?ÛoF?׆X?¯/=?¯^þ@âÚ@îÉ?Ôj]?ÑñM?§?›á?–ݳ?ŽZÚ?’‰?•öí?µ¢ ?Ì#…?˜%Ï?jßa?Tˆ?Q`??½(?TÅ?™~Q?ðt‘?Ð^“?¡´)?Œ¿?Sä?˜Eþ?ë´ÿ?³Ò >ÔõÃ?ÈU?vƒÌ?„ÜM?±ý?œw>í û? +)?l^B?vî·?«95?¦ÅA?R?K¼?Tp¢?P´z? g? AÑ?$8?ñ*?‡?µ?Ž–&?ˆV ?M¥?}¤Ž?id8?ipí?mz.?‰Uw?ŒÄW?§na?²DW?V4¬?>K?6Ò«?=a“?ÊB¬@P¹?ÕŒ*?­Â#? €?k˜?¸e˜?î>9?’>ÿ’¬?—CÆ?î`M?¾!Ù?‰û?¼×Ñ?ûŽé?Ó~K?‘‰“?¯Þ&?ð8Ó?ò³â?áø¶?ÈÃ(?›Ú?`ê´>`"o>°+,?>p?f©e?±ÁØ?·zô?³9?¼ h?â^‹?Ê­‰?`E? _Â?o?†Lý?í“?ï ?ï¿?ñò¹@$ê@ö?«¥‹?«Û?ï(˜?ëç>Áf“>Ù5Í>¦}>–H…?–Gj?˜òÈ@õh@íÕ?ÏÀT?Â÷?Ó ²?Ú¤?‚¼3?X¸ë?æ]G@º3?”#?o ?ÕÚê?ï"?NþL>ï?O¯?jîîo?Z7þ?Œ2G?€µr?n×?”W„?´8U?Þ£@m@wÀ@'@öù@ ?žCÖ=¥³?9â'?ÃGY?·Ò#?²3²?²Ðï?³¢œ?¡kÅ?yêø?’7#?½Y?ç‚,@"¸é@ h?¶?¯??n?’Ö@ ›?í\$??ì¿?>¹G>Ô@•>ÎÚØ?ƒ5,?{â?ä0>ÿsœ>úíŽ>í’\?hò ?g¸@&þ™@-È@;?ÿ! ?»m1?±ÂW@!s@1ªL?³s?e×v?=UU?>Ž¸?—gÏ?¸€Ó?|˜0?>C?ƒcK?u ?š{?°oÃ@²—@3=_?Ë(B>A+Ž?8ò=?°çù?º É?ÃÛ8?¦½å?k¡É?l’ì?aGK?ƒ¯?çñ ?÷4›@ ¸¬@ 0?ÚFG?àor?æ Ù?ìÕ@.…"@'vÇ?âý?×??õC>ê‹?7~]?=Y?Ðë›?êê:?¾ ?¯›ô?¼¼o?À ?¬çå?¥v@?¡ü2?¥Vü?®Ú?¯­?„n‚?2½6?o©^?›~k?£nP?›0u?—½¨?”F?‡l¢?7F ?a @À°@yX?RÍC?Y¼ê?ãwW?è|z?´­ä?«Ÿ@¾@$J?eð)>¤ ë?PÎË?Œ)¡?}æ:?g̲?—µ¼?­ƒ8?ïà7@'·@ +,Ü?­‹¶?œ1?g£?}i=?­W^?»#4@{ë?ø€Ñ?¦ ?šï3?,Ãí?4û•?<’?D1±?†Î÷?†V?Ì ‚?æD??À2%?²¯Þ?•¢=?y¾?«E ?Ô š?ò>Š@âp?È!È?"^µ?aÃa?åÝ?èÙ/@Ôb@—]>çµÌ>å)7@>½@?Ü ?’DN?då`@fÆ•@£‰@&|?Ö/æ?©X¦?Œ`ø?š*˜?¤0œ?ªŽ¸?«SN?—ìÐ?Xào?ëå?ÕÚâ?Ìu§?ªæe?ª¹8?…¼h?qm¾?àÊÀ?öÂ}@N¿@ `?È»Œ?ªw3?µcÊ?ÆØ°?¦Œ?ƒÞ"?S“f>ëµ?O0-?Ýý?Öw?ˆ;Ù?e-=™ÑW=Ht@%%=@ú»?nŸ?q]?1£?#wœ?ôx@pð?Ìs?VŠR?¯\>ïy?Í ?dÌS?qóž?†°r?ºÔC@W1@PÄG@1k@?…½K?„Þû?¹ÂÂ?±¿?Âè?qÍ?‚~ñ?‰[¼?­E¯?ʬ?Åü?Ø}ó?ìD\?à H?ç,@#‘@ /@'&Û@'ÀÂ?¶zË?—ˆá?_Ô.?X#ƒ?ý>t?E‰@§¿?Ùl…?_žX?aW"?ˆ>9#€<„l`@vo@:¼@'Â?ò<ã?ë³N?»’f?¨y™?ð(?Šh•>ÛíT>é4,@°¦@ÝÑ@“?ü›&?ÒG?Ï[û?‰“>³Ïš>+;<š²ö>R”¼?~Ø»?üÉ?™)?läâ@ ±°@ 5b?À ô?£eú?õ¥ª@"åq@ä?“ó?›©Ä?ÕÄi?Â9j?„4÷?<Õ‹?{½8?…£Õ?i@?=$?BB?ÑÛ¹?Ó*ò? Àw? á?§® ?Âyã?™]~?S`þ?}¸@áN@x ?[ID?RZ?é[@  +?µ ;?=3°?=E°>>Âï?œùí?˜¡É>ý;ð>£>ê T?«À? lÜ>þX‡>ýCÌ?›µ·?šSË?̲!?Þ¶Z?»Cé?œ4î?w:Ó>Ðî>Þêb?UGP?QÉU?*Á??LÏ2?E?‚и?‚7Z?„í3?s¶È?™m†?› ë?›™F?›v?›£?›‡ç?›Œ¦?›†X?œ'¬?Ì‹‰?ζj?}¿ ?O\a?Èï?› ?Ž¬÷?Op?O{?üÐb@‡Ê?Oð†>Ϩ¶?n¹d?·ë¸?âÌi@@›5@Føù>ç­Ô>Îí}?{!ö?¥@?ƒ’·?€î–?ŒËÿ?œ³Í?¡ª@ÇU@•V?Pÿk?5+ç?_Œv?S×ä?-³é>ÙO“>T´<„À3=ZËh?‘?–ã?Dlç?À?6ÚØ?3<ñ?©·>ÕŠ˜?< á?øí ?êTŒ?¡8?¡‚Y?]}>wUë?ÿ?Y:§?Mÿ§?*ü?2V?ZÔ£?Oj§?=—#?L \?Yãä?V;#>ûq¡? EÑ>0[Ž>g~>'Ëí=̧Ç>Ö*>ã‡ù>×9Î>º€?>à6?„Ô?1®? Í >ñþ¡>ÝŸ;>÷Å=ÆrŒ>Æ µ>ìY>]5>3ŽÕ>Ðàˆ>ïìÅ>ðã™>ññþ?HÓÓ?!Ö„=L»:>¨| >Õ-P>ùÊõ>ú\`>å`ý>Å–Õ>¥v_=aî 8¤ó€>¾$2>°Gø>£±Ú?%!u=_È9øô; =¶&z>¹Í>1³>ÙïŠ>ü`å> ÃU=¯â~@È@¹ˆ¸?LÃ>‡ÇÕ>¦kV>±2®>Ãõ„>èð‘>ß®q>Ù¤î>Ú5Ö?7e?É?Å3S?ÎÏ„?ÁûJ?“º?Žz’?…-4>VL>j»>2 >‰Ó<>În=&¢O=ÃÛ=Š†z?0–Ã?dÝ? Ýß>æYé>ïy•???Ž@?H^Ý?Vî@>üì–>èzi?wÖ?€’‚?i_/?b ?Eƒ?<4? HB>¡…Õ>¹>¢eê>ƒª¡>äèi>êü¥?QúL?g6Ì?”>îÓó?6òã?V|?) ]? ^å?0þð?kôa?=üp>”mÜ?Ž„?§`Þ?žÿ)?°ð[?°ýs>™5Ü>†Ý?=Å? OŽ?9wÌ?JŒ¢?RÖ(?B ?¡–Ï?ÛA—?ŠÑ>Ú×Ö?En?ëTÔ?ÄÏã?iÚj?ŽhÄ?סZ?¬\ò>‰0>}m•?Q½ ?Pðt?¯Ã?°›û?L•â?> Ê?š‰?›Àƒ?mª?n¢l?rê>êæÃ?O‘Y?†4á?–=Y?—ª}?\ó¦?(??Vî?à¸>ê +?n%{@ O?ðè¦>é±K>é£>í™õ?<¤?iVü?h.j?6]?K—?>s?¬?†Íd?„w>~nÉ>Moi>‹æ?‘šß?Ò¥ª?üÿ@a¨?å@ž?­Û7?­Î„?­½=?¸Y†?Õ!É?°ÖP>rª>†+t?7xx?6¤›=‹ü×=jÀÌ?—Q?¡7? +ÒO>æ¡Ý=­Ðì?'د?f]&?’ÒN?ŸÎµ?¡ä?¥C¢?ŸÈ¨?—ßí?”׉?‘Ô ?[`?E@P?Ci?fH?fÙ²?Þ? w?¯"Ÿ?¹¡[?w‹?e\j?ŠY`?‹°d?ÉÔæ?Ø;³?ÁLß?¾‹+?J8>ƒŸ?rº?e ·?ª!ö?ý×ö?ÓŒ?dñ1?ˆö?ÕTà?Ë.?i²˜?só.?äÇ¥?ä¹ ?­Ÿ"?¬]•?Ü­õ?á¿ó>Í=0=9ÈÄ>¨ !>äÒ?Z‘œ?‰ÙL?ÑÎa@¶F?à%¬?«¨W?ÌZ¿@]Ð?öüŽ?¸Ã7?¡†ã>äói>ôy‰?§Q?¬å?Ë?ËHj?Aü’? Ή?¢GÙ?¼?¬@úz@Fp?Á¨ò?¯­?5KÑ>³eñ>‘q>x?å*?ÅI?…·>÷ÅÆ?5 C?Þ*d?Ð|E>åÍT>ìÀ±?e’O?d¶·?ªû?¯Òv?¡¾Ø?šÈ??°z>æAÆ?À Û?üî1?Œ·¡?)@?ojp?œS2?ˆ+?f¿Y?˜¶?ÈŒ©?£¥?VQý?|6?­V?ªœ +?ŒåÓ?~8#?S,? /ç?T¾?]Žy?Í)¤?Ø7?Ǻ>º½>vŸ>Me¡?ž¶-?Óìç?÷x™@ ,@ +Ò@ ¥?á@d?®oÁ?®}2?®p?–ܧ?hþ_?ˆAX?©ºJ?‰§>þƒ>Úê >CýX>ÛCg?º/?¿çÙ?Û¾þ?ÓrK?Žà?—\?þš?úZ¯?³ ?¯š§?§¾Ç?ªï«?㮢?éc!?°Ñ?j•î?™™#?£6ç?"—ã>ŸÉ“>ú6?&ûá?Qú1?k% ?xìE?€¨”?EÙõ?³Ö?ˆW3?æžý?·z?"ð?ë×?ëìC?ëy`?èÚ8?áM?ݵ?ÞºÉ?Ó¬Þ?±FÇ?¶ï?ÒDï?ÏÜ?Ë÷ÿ?½[¿>ê¿/? z?Íp?Å'¥?)Öý?-ÿ–?4‡c?/?ÛhR?ãÆW?Zft?B+÷?•??ŸÛf?¯o?²(Ý?˜á¼?·j?Ô~œ?íÂ?œñÊ?vø0?oÉí?mó™?½­>î)?õX\@0P)@ ®ž?Ü°Þ?©Ì?‰øn?œ?¥¶i?Éîð?îfÛ?ÑwÊ?²Ü?ê‰?W} ?±çË@.•@Ž.@a‘?ÄþÓ?( ·?ENo?rµ1?€fs?W9?µÌ?¦AP?¥ y?¡/À?¦ê÷?®8?£»[?q,6?n÷ƒ?oB?„Mr?¶xÛ?°ÇK?MÔ?ž×‡?ã±é?çð¢@ ¯L@±? Ç³?”›??™k?FZ/?òõ‹?ï¬@B·‡@Cøñ?¸}¿?À½?|›×?€k?Û{?âtÓ?ª?oÀ?o*?nýÅ?Ûƒú?îà%?îÞõ?êw+?¹¤ø?­2x?4¸þ? ‚ô?¼ËB?ß¾%?Äl>?³¬Þ@\@¼@ò[?òB?œÌ?_œ?­h¿?ÌÁ?Ãþ‚?ÃXÔ?ÊŸ¶?×Vô?”÷Ë?˜—?ÒµR@0»?ôb‚?nƒ??Äÿ@}?Âœ}? êe?`~?²—b?Òß°@ +†0?æþR?mô;?€J¹?”ªü$H?´%@jY@"9?¨Ëñ?ª·?Ž­B?e.@3+½@@ès?Ö(º?º—?žf˜?ˆ8?/»E?‚â>bnæ=|¬ã?ÛÐî@+èÀ?¬ª)>ï¦?¥eX?÷¹_?Ç4? Œ?™¼6?°Ëâ?ú¨@*®y@'ö@Ü´?ਙ?°ˆG?¥å,?†Ò?Áa?õôó?â”ç?ˆá?w,?jà¢?}”!?òè¨?øv[?º³ƒ?½tµ?¹«,?®¨ì?Ùné?Õáñ@ +ç@[=?·Õ“?œB‡?²’i?ÃË¿?˜Å¯?u÷È>ÁǼ?ykp?æ'I@Å@æ{?ÅLs?2È?*èÂ?RßK?¼õ?®¸Ú?«>•í>Ü)?’Š™?”äÖ?Tn? k‰?æ™`?è[ˆ?±Èf?®(P?ò<¨@Ó>?¥M¹?„’?Ž—s?‘¶œ?Ž6?Š`Ÿ?ʇE@zÕ?ùf?ùà?çÊ,?°b…?ÁC«?áHð?Àp´?{Î\? RF@I¯@v8?K«í?jœî?$Ÿ?ÕË>èÉ>æek?Ø=ö?ë¡y?åÝ?æ#U@j@ £:?ç™]?ÉóE?À¢O?Â$6?é‹E@¨%@×?­¦Š?´ëé?å[~?Î3å?^9V?pB?ªP.?£ƒÁ?þw«@}2>Ó¤º>§Z@3yi@g£Ä?èÆE?…ä¬?`‘m?5¹·?MƒÈ?ií`?Àž@@ &ª?êѵ?¡ÿ?™w +?–À?›`?ŒÛ|?™e½?øêm?ôƒ«?7^©?BuÁ@ÅÆ@)­ ?û§‹?Þ,£?¹÷5?ªE}?Ÿp×?“{ +?C§?bÇ“?‡y’?¡¢ý?¯è?ð©?æéJ?â_ð?Ôšˆ?‹ìG?ž'|?K…?94w>‹‘o>m=?˜Å?Óû6?ýÊ@èê?ÉX?cÈ–?².I@Ð??·CŠ>wk§?9ø@@ 1Ê?`ú?`êù> €/>1Û–@&Òÿ@D‹´?»Å?`€¸?+žñ?YB?HØE?ˆ¥?v´m?Ï8?[É?ßï?õ£å@C[@A:v?¸áŒ?ÇÁœ?ôp?íä ?ŽBÝ?>ÜëÛ@aÓ@y"?ÈÃÒ?Îg?Å©?¦ñ7?Ïñ?ÿi?¿A ? B‚>èk>ÛÊÔ>ܬ?>Œ’?iù ?Åp*?ÙLÞ?®ÍÖ?r9?°(†?Ôrq?îH?¢FÔ?‹ïÓ?Z{v?]°?ƒ?ˆ€¨@-V@&¾ô?É?¸?ža?F >û¾¤?E$É?ræu?™m2?ñŽ?õø”?Ûb,?ÊSâ>T¶ï<~IF?ÁõÙ@1!?ÃQN?Œš?ŒU¬?ˆ&?œ˜ ?¹ko?ÄÉÚ>ï†>×sº?Ü ?û¢?©ãŽ?‚ã?]©G?©S?"H’?jj×?^°c?VVÀ?`„?Zcž?U¥i?Æi@“?Ù—?h”à?QÑ?—¸M?ŸB³>ú¹?æ?Z7À?BëŠ?]ÞE?}Q~?^×’?BWM?\"ó?žÔ¡?¢Ïy?K`=?3 =@ýA@(úç?ÿFŸ?¹M¸?£¡>×C=>æÓñ?—d…?‘P±@*@_o?›I·? Ÿ?Ñ–á?Î{w? 8?œô3?ƒž?c×»?5ð>?+žË?>Ç ?P¶s?H,Î>Úuä?@@z@)ñÍ?Ò ˜?‡€d?g)>ñAu?Ô¡?Ï"½?ÅfI?Ž+-?qRÁ?ˆ–1?›°Ì?£/Þ?¼Pz?ÂÎ??O–?W†Í?cë\?pYë?«Éi?Éi?°Ë?‘¦?—a›?›[Q?žíÒ?j-Ö?O9Ì?gÆ?„P¶?z'é?:R?GÝJ?›é?¢}ñ?`Wƒ?/1x?k#|?¡²˜?ÁÂM@o@†À?›ð?”@w?qèÝ?qâY?€ô#?}cá?n¿ ?€1{?™²:@µÖ@ÏÊ?sÆm?-ÑÜ?Hr?‰@?§ê¢?ÁÓÂ?¼Êq?P^?:A‹?jÙ?zÆ:?Ö?Ð?‹Çl?Ç[K?–_>Õxò>÷Úˆ?aã¯?Šðƒ?]|?y+樛?f}?‰P?Oeî?„Á‚?Yï?Å>æJ„>Þ>>ñÿ©>ÞS>ÞB5>b’e>)¼§?8Tù?Ü£?Sú?^–>^Z›>Äï>Är>ådJ>¥Št>68<ØHb:#Î;Ž)€=þ¶L>^¢é?÷\? &?)Ó>õ!è>ðñr>ñŸJ>ƒˆ€>°Kª>"­Ó>ù¹o>Œü=Ë,À>À'ò>þðˆ=¨ñ;ª q>9|Ô=¬ìP=S#0>€¶:=îÀl?\{?Dœ­?iy @>&©=šS$<ê¢>YÜv?Bë’?Mþƒ>õ“x>Úƒ>œ§Ù>†äÿ>Á‰§?ZÇZ?p¸?!mì>ÞÀN>¿G>koÑ>pà§>ÃÝ@>¯ÿî>7[>'.>VCý>³eÖ>©2ü=àó=Äý<ý††;줜<ÉP= ¬ >‰Ž|>æð ?#h?IÔÍ?- †>1ñ>2{¸?vâi?‹–õ?ÁýÊ?É]D?½Ó?KB>Õ^>Ç’Â?¯Ý¬?Ÿ¤œ>êË°>ìë>õë?>í8‡>ëMU>ëh?MVð?k˜©?"Añ>ëÁã>¨ºÝ>&ƒ>;Þ(>·µ?¨.?šæ÷?0Ù=?Fáç?á?BF?=!¡?Fß#>ÂÄP>²±Ò?¨§×?Íâú?‘Ÿ%?l$È>Á¼¥<ÒÚã? X?lªÆ?oi?kñ®?"ÛÚ>}¹ø?/}?Œô×?mÈî?­Ç?«>?r§?kZì?i¹ÿ?‹Ð¹?“¯Õ? àÂ>êÿð>˜è>•Å>Û‹Ó>ê¯_?µ[’?êã?‘œÛ?Aÿ?‰¥p?©@Q?fk×>ß9&>æt©>éËs?`à?g‹@?œ«1@·N?îÚ?iC$?s3?—–ð?” h?„S??«†¹?®uÍ?+æ²? ýø>èf•>èB°?ã19@ —@†Ç@4à?Þæç?˜Äº?š]Ú?›ð¿?–Yq?¦i?…Ø?PÓÚ?)[%=ÿI'>,_…>ú >߃u<Íø/äk,>æ‹É>ãÜ>>Ý¢»?ÄÄ+?Ûº€?Ý•v?ÝÎp?u/Ï? sû>áÚ >¬€Å? +;ß?8]Ï?/–?ˆ©?Bð¤?{" +?cÙZ?0ù†?1‚â?)ó?*àµ?¥!¥? Êç?O‡?Zm]?צ8?è\?¨Â?ÆÂ?ƒ³1?}„ü?’œœ?˜9S?€›¸?dàé?ni§?t?D§>èÐE?-øÒ?«‘µ?¡ä*?fZ?bÄÜ>ý·j?\]?ó­?ÔW>Õ©…>¼ÁÐ?¦e?¾Œ¶?Jß?ɨ?‡oL?“ê–?ºè?Ïäì?á à?üT¨?éŽ?Å×1?«?*ô‚?gá?ì`?Öí%?”ÀÛ?–¨D?‡¶F?…n•?F!>?DŒ?ÉÈ?çéå?‡³’?4b¾>’5=…¬>éÕ«?N§Ø?&”Ò>åjõ?Y+?cÝ?!1_>Dà?d%p?EV=Z–²=í¨=?rÔ?u"%@Ï@´Ì?õ{D?ìËk?Áu»?¼—?yDÍ?BD?=n`?F"? +do>»/?–cÝ@hB?½\î?-P}?=.ð?q[‰?xÕ?ˆ«ã?~Š{>§}$>³çtì>甤?l€?–Ƕ?]±??VG÷?”(?€'?d½î?a{€?Aú?®Ö?®H?®V¿?®b–?®rÓ?‘T?hÀî?m0î?uá?GC)>é `>Ÿ‡¨>(üÂ?0{9?M1?˜Z=? ­!?«ªÉ?¨Ìá?Þk³?ß•)?¤ß?¶@>òë>ö\3?°5°?ÁyX?—NÌ?‹.“?µ¢|?Ä“ª?³!j?¥˜n?0¿>ÑÕ­?XçE?‰Éö?ª÷Ù?¾©š?—{?s’?˜C’?²ÄB?99®?K}u?ëº~?ª†A?±“?bÃã?¸g=?ª©Ï?‹-Ò?˜ °?±/¶?Òœ#@ b¶@ "þ?nâ%?cA,>Gû>Ä–è?Æ"g?ÅbP?1$n?+á—?8À)?=W ?áù?èø‡?-Sï?Dd?¡…ä?¢Ú?—8Ð?›å?ãF?íŠE?í—ª?í¥_?¾5?²JÜ?„­ú?mÓì>(Z<›Œ€?¯~~?ùìi?¬Û ?ŠA?ž¼S?¥~;?Ú´?‡Ô¡?Ås?îK?·S+?4è?Gà>îm£?nØ?¶ ?ýÀÝ@!Kè?ï%*?‹õá?¤c'?Ìàî?ôu@@è5?ýxœ?’õz?p+Ù?IÈ?,¸­?nÌ+?‰zj?³ ?Âw?é#F?ʪn?|˜t?Š"C?¨Gè?¾X@ Ø~?ô¨C?>¦˜?Z"·?Q?‹™?—Úu?’×?ºê?¯—`@Eó@ˆ—>¸«>Y|>¹$®>¢Ñ ?² J?²çh?VyÌ?\¦¥?jr?n(c?nâÇ?q¢Æ?zXº?¥¬?­É'?³±?l¢«?R|Ž@O@ UK? Yz?¦ù@>e¯@`®å@ë7?ÞÏ ?çÞ€?߇?ôp[@Ù?é¨O?Ôî"?¯Pn?H?Â…ž?ëAÊ?Ëî.?²´•?²JL?¯’?ì¸I@×Ç?ýþÕ?Æð¨?’e??N?¾/Ú@N ?Ð ~>áø¼?aA©?Ìag?° µ?P™?zRk?ÑqÅ?Ŷ?² §?°†?­r?ÀD@9@ gÏ?±ê?¶H?ÖóÏ?ÕýÂ@+Wñ@'Mì?Å.? µo?˜Î?–óÌ?ÿ‹†@ ªÄ?ŠŒ¹?lc@Žé@–ú?š¨?lRú?G[õ?Åy?…U>ì?Ö·]@ h?Ø +ø?º|r?›/>?…[Ê?eƒb?KŠ!?Š ‰?¿ÚK@A’@'ÔX@Â?× ³?µí_?ˆ¸Œ?­Wà@D@·Õ@/:P@ Í"?®y]?ŸšK?$‡&?P)@bY@,X?ž3?¤šC?â¡3?ëçK?òLÖ?ø¹r?ŒB ?iê~?G¡7?)òÆ?S?¬ÿ>óäÞ?í:?ƒÈ?•??¬MV?Éãé?е§?ŒÜ¹>èûT?A•Ð?®¤{? æF?L¦?ŒB>è—=?í«ü? +=?ß“õ?Ý}-? +žX? ôÓ?•ú?ŒÓ?Ô×c?ádù?»?­¬ß?¿ð?ÄZ?QY>u?§ˆ@IÀ.@G ?oe?GÝt>fÚÌ? >æ?µ;C?±jy?(åw? |8?œEñ?”Å +?ZW?;Q@B@1™?¿zß?®íâ?Þ +Í?ð}?n¯9?›#?ˆ~œ?¬8È?ž°û?”©^?¸Ê?ðUˆ?í<É?Öpƒ?·| >æÝ?á·?n7„?„V@¢š@‹ ?d­ï?@>÷?‡°ñ?“¨³?ˆ9?Œˆ)?ñ(?ÝG?½ó?ªðm?­1b?¶DJ?ÈÑ_?ÕÀH?¿Çd?”&À?ÌÐ?‹tÖ?Ä?étÆ?òî±=„ø¯<ùŒò>ÑöV>óø“?eë?„*5?‚ß?ƒŸ,?ˆ +À?Œq??¦e?¯mž?Î]7@½‡@{º@+$ @ '4>ú[œ?(Ãé?žÑ?™ô*?¹L'?°@>­&ý>3Ã>öÂ? º?¶ï³?é±@?x @y%}@A¦h@ Ït?ãŠÊ?Z +1?T$‹?‹V)?§e?>W?H-#? { ?¥¡ã@7"p@Duf? Ò?¢>’ ™>-Þ>T º>{$…?%&È?—7?œÏ¾?Úè4?è®u@ @ Þê?t!±?~õ?Êf?Ú ?Ço÷?»Ø=?¬¡É?§>f@@]U£@/8?Ùhù?­]¨?-4`?Lçó?ˆé ?‘¡µ@ Oü@'?«ÍØ?¢nË?".3>ò׋?gÿR?Ÿ/x?¢¥?ƒ;’?;j?¼;B?¬pf?Že“?’À>ìúU>ÜÔß?z”Œ?–ª ?÷[?÷«O@nö@Áz@å‚@ _ç?ü$ã?§þ?¤‹+?œÁ½?™gV?þû™?ã¡\?gD#?jX‡?©Ã?Á³š?¯æ\?¢U?ÒÐæ@L?ùÇÃ?â+¥?ÂÃŽ?"k|?-tz?Ó~ ?ÙÙX?„T?Y¦ö?‹ëÿ?–Fì?}!?Y6C?ŠHè?Øöù?Þ +@ t¼@ßv?>Øi?Én?7¸)?—·ï?®D+?ƒãá?;§?‘W?Wx_?W£¾?XŽ?R¯@ +‹ò@OŽ?ݱ|?¤1ª?˜ÔÓ„>è¿l?Düu?9B?¬‹Ž?º½3?´¶Õ?®¯¶?ƒÂú>òj—>Ô(ñ>ì Ø? †?‹`?‰\¼?çA.@w¯?ݧ¢?R±Ë?R¢²?QœÊ?Oø?ðI@?ä!&@¢@ w?Ê^Ö?+|¾?g^á?ÑÒ?Ťô? W&?!‚‘?‘×q?œ¼®?=Tb>ÐËæ?¨?M:‹?F;>Ðl­>Ð]@&éx@B7U?Û(ž?P + ?J”w?I1Ü?cÒø?ÏÁ:?ϳw?ñÿ? +?–î?½ Ó?—'–?F.Ë?V¦–?˜ ù?’g÷?Œ$?…ãÖ?°5p?ßW(?Å¥…?Y¯B?OÜ‘?S·?`)÷?£”?¤ñY?¬À?O*Ò?2¬P>Ï9›>Ø™?›wƒ?›ƒ?/š`?3b?ÿ?’ÊÃ>œ™/>Æü¸=Ô´d?´o?X§?e=W-Ä>+¹Ý>Ö +>Öxž>Ö××>×8•?hœ‰?[ +?þ/…@ &ä?Š“é>Ùͯ?%Ü ?€®o?ñ?TW?-Å.=¸ >Ž”>Þ>Þ‘ö>ß5I>ßÑž?¸Ö?Û[š?=i?†+>¸q>Š_>ÍàŒ>åjU?&üæ?Ró>[Á"?Ux³?n÷~>¼³ª>F£N?eEW?€™B?j>Ä?n¡>þ>ì”`=\u£>°Xƒ>5Ax<Ñ/x=&Ä>Ñú>’\e>.ö=Ÿºs>ÌÏ?%K=îJ +<ð²ª?ÑK>±B;Ÿ÷o<¢J‡? å?'Ú>‘æÀ=cK`?„÷ò?݉Ò>ÑçÀ=”Ò<„¶x>ìN>¿¦=àÀÒ>Õ=>Ù×(>î¶<˜Žˆ=Ðwû>àJ? ëÏ?Ÿ´=?ÀH>R;‹>ŽW¤>üá7? +eu>ë >âiØ>d?A=¾‚>Áp/?V¸?ZÒ?^‰z?bˆT=qmM?^¹Ð?—ò1?We5?ôs?®>•Œå>‘QÜ>è>èà?bs3?„[±?ª³¿?¯EE?%W¡=ø´0?(&V?¯Îu?Šá>Ó O?Ró?h¹=?cáß<Åð= '\>ìKz?›1>÷½í>ë°{>ÄÈN>£[ž>æÿ?#)ù?µ¤3?€O>Z®‹>éÄ?±÷?¥Š ?Ý?AV=åàs=¾`­>Þ-°>ìh?Zvs?lä?m“?l¼?kó4?kñâ>Õ«=Õ£\>‹ÙÂ>ÀŸ¤>¤ªò>²i? UG?E¹w? +úÈ>v±Ø?•’Í?Œ_]?-{:?%RÇ>êÿj>éÊ••~>±d?©v?Êþ>ðQ™=Uæq?D?d:$>ÂzM9A5A6É;öÚà>iŵ>ûà?6¹)?4f?vÄõ? +«>þs6>·q>Ì&'>á‡?]•?M/r?R& >Ðô>Úèã?Ž«á?‹áõ@'U@ü'?¤âÁ?„Û¢?[I,?ETè?\‘ˆ?gqÑ?7@à?±?ƒu?¿?7¯¸?nüþ?i#?e9?f»ñ?f§™?W5>æ€>æo9>æ[b>è]Â@Í0@#L?ð¯ª?æ=>èÑ =öÛÏ>ÿog?ô\>œ;9>+®—? Å?v‰Í?Ž1S?¬i?›a>òë£?LÂ?Ãõc?¾C?»´?²MÄ>‘Iþ>‡ƒ¡?bQÏ?dù ?Óù?Ïi?¢Ÿ3?›uí@’²@f?ĬÔ?s0O?²|q?ä¡ü?¯¿Ù?dªe?:òù>òà¸>½ØÜ=‘ÒÔ>Ê6u?ΞG?»)8>ä•»>ä“:>ä“3>äŽý?ˆÆë?”›?šuõ?—ÊN?ØÝó?ç%;?³ø²?¤g'?„ ?^›?)?«}y? ]t?ŠaÃ?¸PØ@$y@H>?dÆ`?kžW?›’£?Ÿú?z>!?k>Ãæ>¿W­?Ç‚?å + ?Zm½?Ó>9ý<„wÈ>åD&>kN§9õÐ>;Á$>Ü\Ô>›Œö=Gî? ¾?ù7¾?Ýüæ?e·ð?Y¬Œ?ž»?{@™B@¿Œ?“ˆƒ?†Ž3?1Í?oõ?ç°?›Øü>ĸ²?%ê?”+»?¢ÌÂ?¥P?‰R§?Lq? _×>Z>ÌFÒ?„dY?—ÒÙ?ç<?ÑXþ? +¤j?ü +?S ?Àc?QÉ?8Y?ØX­?åÜË?(å>è»?ÃäN?è*µ?IB=N¿à?%F?rK¼?òÎ@?Ïgå?hª?^2E?NY”>ïiv?uDV@&ÿØ@uB?iZš?kt´?„4¢?çF?¯;(?¼¸@®Ç?éê>IϹ>?8>èC‡>ê,ß?„¤?‹»?ˆÑ?„Ru?詤@gL?è?áŽD?×/q?Ø70@V @ l:?Öt?°eý?ø °@P?âœøP;>â­‚>Õ)?ib¤?ŠLƒ?yÑ)?mïå?«¢?‡Ô«?@=?ås?ÔH@ÔÍ?ïUÜ?Öž ?¬† ? ¸?çS?£{?Òs1@ []?Å9*?ìs?n6'?T+?cL?n’?Áߥ@Ÿ¤@Z¦?è#}?¾O?n®§?¤ ë?ì)‡?ÿB­@ó`@Óª?Ù¹?®!?1“Á?Kß?†&î?Š'B?]ø'?:ð«>îÕ>?'Ö»?³ˆ?±úú?“#`?aà?´R?£[m?N¸—?f +À?¾ÞÎ?ºÙU?«¨£?¥¤q=Eü<Ûœî>î¡‘>öC?é3?æ:ë@ +Ñm@ó@8.è@6\â?±£š?¡5Â?Áæ?иŽ?a;?8«ä@·ª@6s¡@p"@êŽ?ûr°@bT?‡7Ô?.¬?I?\"j?ãë€@„?Õ¶L?²€?ØÎ?ìYÚ?§£?{‹®?\ ~?T“À?…L?˜\4?©¯z?¬´½?¼Y?â ?Ç‹?‰¥ì?´óp@=@P!@ ã5@°@j@ÆO?«^?žß?mH ?„ur?²âW?ÌHw@†ø?ø†F?8ü?Z%?¸’?Äv&?ª½W?¨ V@$@~ö?m´ ?l…ž?“?&¢@Ÿf@~î?Ÿ–¦?‚sÍ@Ê@/Þ>@ß@;¨?ƒµV?1œ³?˜¬?°Íá?¦^?{Q?Οc?ãVÂ?‚Dw>Ýr"?hõ"?¿ÿÞ?×Íâ?÷T8?ªgq>a¯¢>6ïê>a=? +i ?êìä?Æ™Â? +ça?FQœ?Ç|M?Ämj?üa?ù£`?—V`?“‚‹?“‘?–ý?®¬‘?¯q…?°¬P?¢ÿ?Ô–æ?ä´¥?’pK?i…k?e%›?WÆ?æŠ?£Øº?‡$L?i»@ßÝ@D!@Á9?_ÊÉ?Œ¿s?ƒà?æÏÂ@!bÅ@üf?hý?"P»?®!Å?ºÜ¡@ ,Œ?þ)m?ŠD?‘)”?s{ß?YuÏ?¬jº?­ì{?Ì“Ô?àá?¼æ?­”@gô@$‰@gH@{¨@.¯@J'_@äB?Ðê¼?žÚí?×€?yRª?ñè\?Ý+Ø?Äí?½°Â?µ$ü?ÄI@,/@ +ý†?åØ%?æ¥@:3“@<q?Û*?º®ì?[úà? Ë^?ƒÅÎ?¬!Ú?ŒîR?ebC?eQ•?[ÙY?XTW?d^ó?c+S?–U@·@ + ?¥_²?±œ3?‹¹"?F?ŠÿŒ?…¬¬>ä–Ä>·Õ$?ŠŠõ?«>÷<Ÿ=÷¸?µýë@2?ù:q?½@çCS?\æ?YXÍ?Gâ? ÑT?Oç²?bÐ*?¾™ý?ÖSô?êu@sÏ@Pÿ?ðùÝ@l3@Eùs@"ˆ?UT›?k(?Ò~?Ê`­?‚•R?^)?”>;?€ ?°½j?¤qA@ +:–@(Ì'?²ç‹?J7?Šëª?˜Á?¯Y?¹b?säd?Õ=+?½†«?<³?#Ò?m{?`Æä?«®B?Ãp£?Àá3?®Þ\?’©>n°e>Ò* >ðf?pv¹?Õ©B?ÐóË?¬}á?³ñ²?ä‡ ?âëÎ?˜£\?“šæ?¦Yc?§c?‘P?ŸÊÁ?©w:?§(¯?Ç›…?àÑÙ?¢¹˜?*ñì?ˆ×é?ÅeU?ªD`?ˆKd?ˆQ'?Ä>x?¹Ùµ?I ?_ê›?îÛû?û“2?˜Z*?]| ?˜8é?ÁA?Ï¥?Ý*£?»,?0ë?¦Î?Ü?Ð$?:? ï˜@ò@u!@ý/@GÒ?¿Á’?Kݺ?–xÔ?Û·?ØKÇ?ÒƯ?Ñ®@Wƒ@·©? “ì?ðò?\¯Å?ZÝ-?^:Ÿ?Zå³?¤¯?ãÙÖ@Wé@{í@ú®w>Ø?6Ÿt?ƒ¸?Š¾O?y,c?m™Ó?aü+?fX@/Œ?÷ž¢@Né•@U¿*@a¾?îU?èÐ?â6Ô®È>ùTo?ã‚×?Ñ® ?¹ïO?½nà?Ã=??ÉÈ?¸Dã?žŸ?‘a÷?CB ?7?‘?›|’?žBµ?†H?p‰-?MäË>ÑDœ?­?†Ê×?u@P†@œ¿?¿zV?eCX?4Ü>Ñ“>õ#y?sµ?†™?x$u?C¦?±¢Õ?÷3³?¹Iê>ÓèÚ>é1?^Î?k?ü?É„?ÍÒæ?Õ×?ÎIe?±x?œ' ?™äò?“û‰?µi?kk»?‚*_?tQi?O '?6h­>Öæ>ÝXŽ?›bq?›j6?ø3>ÏOï? 0#?44÷?^Q$?Ï k?É^½?_DX?l8?`ð?ž:C?…9?pV‡?Žââ?œ|?Ž¥‰>Ððô>Ñy?™m?½áÇ?Z…Â>Ñá¥?®¢?RJ‚?Bùj?1•?,ìN>í3>µH8>Ôœ=•K—?=ÔÑ?Ÿ8±?”tÐ?wQ?IþŽ?"|„?+ü>ÖÂú>×%ü?óYg@ Â@»@"ž·?’)ß>d~ž>Žd9>ª·N>Êå>Û½z>²¨<Ÿ\|>E·R>ƒ”>ß+·>ßË.= ¼Ø<}å€=k&=ÚV`>((Š>c”Ü? +ä-?s>V$;Æ?€U?‘Ì?LTX?YŒ6? &š>ì5?–ªg?¯nå>•ê=¾¢,?O«F?@žv>wúL>ŒÎ§?VâY?(^_? ÈÓ?+>÷gš>èÝû>å2.>dä`?GX=Üôã='ùÄ>ï(>¢~qŸ +ã>Zs=„Òd?4>‚5u?A>óµ,>»~=¦¬+?æUu@ ¨>¨ü=m|z=ñ©G=Ç‹¦?qŠ¦?šHL?R¯›ª²œ>ìi‚?¸.]?»Z´?;ý>ïl•>ÚÈá>Æl>ê÷?fZ›?Výs>ëÀ >ã22? åø? 'O>§ÉÒ,+p>†v?(•2?F®>ëÇè>+“>?ø>TZœ>zs>TÔí>A?¡nÊ?¯1×?I/y?|2?zyÏ?¦d°?GÌÝ=Ž >$[>êe¤>î2{>Ü þ>ÝÇO?Z(?Uý£>øG»>ë—ô>KÈ> §é?]t0?ˆû½?§˜¼?ÎC½?™Q?(7ú?U—G?œq?V?KÝ ?½‚Ð>Êñ~>ì .>íǽ?czi?j¢ƒ?ªóŠ?¯ë.?&Rõ?xD>Uq=bð@=Úk:>äd?$n»?'c?!}9?x?¤e ?zÕz?3Þ´?1]p?â ?.É>êåË?p³?(dý? ÃÀ=γu=± ?%3˜?Æä>ÜKÍ>ݽ>èÕ™>éú2?ä l@P?Ît§?¡½á? +¼þ=‚Y¬?a¥¦?Ñ´C?uOè=õÍÀ>¦~ø?.'?Aï?Žß€?yÀ»?4›?žÄ=¯Ó¥?çð¤?ç4z?³£V?½¼0>îu]>¥8%>«é>>²´?fÎ[?‡r-?[$£?Lݪ?±Æ[?æÿ$?ÈWM?¬}l?{5”>æ®õ?\?f„ÿ?N?¡¨ß?„êg=‹A +>#\F?¢UE?§Ï +?OâÜ?U©-?ž)£?—¯‹?.?ïÀ>½0,>~{?"MÓ?dþ+?jê ?pØË?eCU?6Wþ?“]÷?øî¿?É?0?C@î?U ?€m³?}ê\?z÷+?x?u&?r1Ú>Þ´>ÕCæ>ãx†>ä¥À?æN¯@à?«~ ?fMa>зw=MWH=a~˜=?ä´>°Sº?AZ¡?nnÓ?¶Ü÷?±‚ð?Ž»9?‘bê?±M?¦‘p>A>©?›?$S?À\Ú?Ü}…?t;¹?,È >t +ƒ?_?ÁÖ¤? –}?ƒÓ?r?”ƒî?‚eú?G¶ ?P­“?d­Ó?ˆw@Ó%@Úv>Ÿª+>xc?Ìä?ÝLA?µ±§?«ón?(`ï>å?†¯Ù?©?IGë>Õòv?†?ÑíŸ?m£¸>À‚«?•ð?œØr?Íþ?§U/?Éù?Àl?Ó­_?Ô’?#Þ?"Dq?·ø?¶]þ?g‹ ?g³y?’>Ï^?T²¤??‘iŽ?¨f?£j{?šÿ±?_/;>æϦ?bðâ?Æ "?¾õð?¾ò³?²%F?g8p?dþ†?^o?uÖH?ã‹Y?ä·é?­çƒ?­Ì@KQ@€€@(ct@*“N?ëV?ÏeÇ?D?-? ¤?äÞA@#I?×p?Ÿ÷ó?\b–?ñW?vW?Y?‘·î?ýö£?ß1?•* ?‹Šç?k³q?s·–?”0‰?©Ø@(q?ó[Ã>éÌ€>ý®??>vâ?3±z>ê†>êç³?”±æ?™|w?]?ZL?¨ìÒ?¯óu?!_">óí >òžu>êé?’ï?°Fþ@A@ûg?’¡-? ±@!Øw@n&%@ƒ,?°±%?ÜÅ%@óØ?¹£?>Ò˜?E%–?K{6?L’i?;‹?‡ãl?å .?Û­?±EI?±Mü?±WX?±g5?±o7?­R?Ÿ·?£æ¯?±šs?®$ë?Ž7È?I?ºSu?¾žÖ@›º@-Ú?qV?n´P?±,¨?²Ã@d¼Ñ@f-?‰…=?`¾’@Ÿ@z@ µ@rÙ?Ý!?ËÙÛ?§À?ÜÎ?âü·?ì*?â¼°?ê¥?×ÆT?Õ_ ?Ä8è?½U/?¸&•?²¨]?Œ±z?nCÒ?N) ?Èè?@7ý?U«ï?t,O?ˆù?š‹g?±…?0¡ô>iNˆ>÷©5>«„–>G ?yU?øǧ@¢}@ +ã?Åò¿>î¤y?hƒ_?Ñ1ï?´´Š?‘¶è? +]?lŽ?g¼?€ûl?Ÿçå?ýá£@ûA?ø††?Ûˆ?c?JxÆ?öÂO?ã± ?}³?u§j?o9¾?nž?lÆ?y`?î ?ì*¯?ÇD·?Ê¡?ÀH—?̼Î@ʲ?ÿH5>Òî¬>Ð,>âr:>ôßm?ß·A?îeK@E¸@[DÉ?Ýä?²º_?²µž?²±€?4^Ó?îT?iì?tÖn?*>óa?â’@J?®•‚?mòN?Œ¼@?“«æ?LÉW?¡¶?Ʊ?©ª‚?Ö«?êž&?Î7¥?ɵ1?òÃÕ@ ?èô„?·—~?Þ’o@_?Ù?gXq?l3?m$Ò?*AŸ=¿K|?R(õ@- x@€þ?OIà?~M+?ë7´?ãx~?ì§T?÷›y@3-@.úè?lrÁ?núê?&å»? +ò>æ¨ú>ì-u?ÕÁ6?ç?Ö?ƒ2þ?me\?œ²? û¡?<>ë¹?bîÓ?†å‡?‰Ó?Œ¿8?ס¾@±þ?³}Í?kA†?â?‡[?yê?k¯?šõ€?ÀÜ ?äµ-@ÊŠ?é}†?vJ?w} ?X +?MV©?R?^?€û?ÅÄ?Ê#Œ?Íìì?Âûø?:1N?B‚ë?¯‡?¯WH@­Æ@#Í,?¶ô?«ÕÍ@™@`'@2½@7TÙ?ÃìG?ƒ ?vc#?húÛ?Ê]9@®š?ã>“?—¥Ð?¼Þÿ?è™?Û ¸?Í;j?¸Þ3?hSG?h:Á?j/?t??‹ØP?4s?ÿÅ?­Ë?­Í|?­ÄÚ?­Ñ?µ“,?µ»Õ?¨í¼?Á?Â[@õW@*E-@V@cÀ@"1§@0ú¢?ËŒ>>ñ\?Vî„?–hÊ?«÷+?ëŸl?ã?ª˜Ï?¨k?<½W?5kÖ?¨G?ªÈR?fW?qls@'÷x@1¨h?Éi?¬9[?›»?‘ÁÍ?|Œ?{Òõ?DO?Å*?ƒtð?s0¢? ÛØ:ø.Š?[?$@!Õ@ C?þÐÕ?ñ_§?d–Œ?`¦?-*Ê?5d¥?•Æ?œD>Ÿ²7=ÙÙX?‹Ã‹?«ß>ÙVá?7Q?ª½¶?Ÿ³Õ?ˆ‹ü?l¨?0_u?,œ¿?¥É?-"'?›‰? ³‹?áÉ­?àKŽ?¥p? ÷X?4Ê?…ú§?%?¬?ô]º@_?ï¥Ç?ʽi@â@%}g@§U@'G?åF_?Àœ?7»A?½jÔ?¶>iVœ>‡&?Ü}~?ñÈ¿@@³'@W;@ ¢Á?ãR¥?2`l=¡Çb>±6{?’Ùñ¼?'o +?Àh.?Ôo”?Ð[(€²?iyˆ?¤•D?§\²?«dç?hv +>ÞpP?E5²?¹©Æ?ºtÎ?’+^?¢ÈÑ@©•@4‘@ +{@ ý?—€Á??²^?²N-?ÖËy?ëÄ:?ݹè?Ý +X?Û7œ?Ú§¦?Ì’©?k>?€7:?@tè?5/?ùBì@ ¢M?Þ Ž?ÎK?s5>ÛØ^?y ?Û¨B?ÛŽ7?ÛrB?ÛXX?ÛE?Û(?ý 0@à^?ž?l2?µ@?Ô4D?¼—Å?±õö?®Ûµ?´Î#?ÏŠ?Ƕ?»ªS?gÂò?\ÉÀ?Y}n?Yg8?‰×å?’Ëä?¿¨Œ?ôD ?Éç®?Xº?G>Ø{±>Øf˜?Í1}?¸â¡?Xâ)?1:?m÷?wð?“Y.?¹]B?ªz?? y˜?¤¨Þ?Ý(¡?âÌf@ðÂ@Ùø?ܸ˜?Á˜¹?Þiª?ö·?æì@?ŸÖŠ? v?¶ò&?ÂL?‹Å?ƒ ±?‰Q¤?“2?^‚Ê>ä—Ö?%é?“Ãì?ˆ¤#?žõˆ?°–Z?£br?žöJ?žÞr?žÊ©?bÁú>ÞŽ®?&¨æ?‘qÜ?‹hK?È ?ž'«?µwl?±ÏŽ?+iŸ;8‡Ð>˜¤§?v›Ý?„ò?Qú?QÚ6@.K@X‹@)FŒ@O>Þ@ Æ?-??#?4”Å?q$^?¢?°Û³?§?œg?ˆ É?IgÇ?OÆ?œ! ?œ|?ŸÂc?¬K?–þþ?ƒ©?š°?˜ ?e3?«k?‡u?Æ ˆ?ÏP”?Ö·?Ö1(?½|×?™X¸?6$>M} >˜‰é? 7?Æú@*@%£ +@ö?Î4š?Âkó?g{Õ?tq?—z¯?…ÒH?g‹X?^¹?qÝ¡?™ú¾? …?›Lf?›Sú?;Ç£?P ?ó?À%r?ÌfÕ?ÏÚ?ÌÒF?ŽÞÔ?ˆ~Å?[*q?Pc>Ñ´q=Z e>Íýr?œh©?š¼i?€¶†?gw?'53?+ø´? ¿ >þht?PÌ?R2g?MÕQ?3—?&ƒ§?#…?0ér>ô Þ>Ôz?)ß$?\Ï´?–Áö?áÎ?°µ€?2K?lØt>Ö±[>×ÿ?Pz?~ ï?¼l ?ß=¡?{R¾>¡ƒŠ>Sø9=È©†>!ò™>Û«â>ú²?ï?¿?{”>×^>ß"!>ß¿ª>ßÙý>Ìös?xJÜ?]†‹=Ò ?% +?Uÿ¢? + +>àøx>‚H¼>Á5)>íöù>ê^¡>«óÔ>¼S?obñ?n=³?\èK?=â]>£»b>ä)+>ó7Ø>ôQã>õrÀ>­o›>‘¢\?Ä>¶¿ï>á¡›?ߪ>îˆÍ>„¡J==| :Ýã<‡^>—ív>T¦ž:„¹=JâÌ=@_|>ŠÀz>“¥é>ƒ<+5¢?³ž²?ßJ`>ùý‰<ý +>Ôl>Óå…?)SM?6?Å? }Ð>ÍÇN>Õd>÷0K?ÜC>òV,>ÜK˜?`ú÷?ÌE·?ÃøH?JØ?"ü_?¸ïÙ?Ô9?»f•?ºL'?·B >ãW¨>ãF?„Õ?žMB?Öï<Q>Æêù? OC?˜º‰?‘ Ù?‰†Ï?f»?g:´>¦Få=úÎ?>u>Íáw?Z¶?Ra*?šn3?^?T~?Oê?eùÃ?j9?jcl?j†Q>üê%;4 ?Z˜?Û0Œ?¶–ß? س?ݪ=î´ï> +Mÿï?Xðî?kñÆ?J$Á?=Êq^>ëø…>ðªã>òrÿ>ã+„=~Ó=³në?WÇ.?[¿ñ?FÀ6?:Ž">+?#ÇÓ?k}Y?#V>ë\$?ceÈ?®É?Lf¤=š>m>-_>vkˆ>êÑN?>øf?ï ‘?Ü_ >ê}û? ¿i?ä¥?ã0Š=0+:ª’Ý>Ø]“>éãá?d¦?½†?*ÖK?ÙÓ?9V?:o?sh"?“XS?8<{>œíñ>ß»f?!™ ?-!‡?QV?gè¬?hcå?LYP>Æé1?‰?½PY?¸-=>Ö~½>·|ˆ>¬®>• ?­J?Ïp¦>ÃÒg?žì“?æâ?3:|;“ôà>øNb?`$?Ÿæù?ÙŽr?´d‹?yw¾?ƒge?†IÅ?†\?œ”T?™«w?†]²?ƒO?ÁR?ÃÚs?CD´?0(y?‰Ëž?ŒG?e÷¡?U ”?N÷'?Hð?•/t?¿ä?覰@M€?ÄY7?%‘?IrH?˜#?›æ?êv? È–?£¨C?žKƒ<†‚ :¡¢Ë>Ûi>ä‚f>ë„:?Ï_?¼•j?Û"\?«º>çÚL?;a¥?KÜB?dQž?oN.?ñL?ƒO=?„¯¹?‰ü‚?œ¸l?•âT?0X>ôæ:>r>g™Ø>Ü®Z>öŒ®?#*|?!E5> ÔF?b–È?­ÎÜ?•÷ ?nD`?°Y¯?ñD~?ªž®?—g?'áÂ?s”K?€£:?¡°Œ?ºs°@'q@# ¹>å<`>åC@ +j@ÈC?·ŸÍ?¦(´?€2?oÁ½?ý“Ž@¹?þR£?å#¢?µCß?„Ý?%<>~ù}? 9Õ?…Jf?›ï?Ö’Z?àZ?ï[)?ÜP~?0Ø?2¦ ?æS?é`{?‹$Ï?sàP?­Ï›?´\V?§²?¬å†?oβ?5.¥?<ËË?JÚC?Vb ?Lö$?­uŠ@mù?že_>šØ+?gY?GÝò>åP? Óð?g]?Y^Ò>íI>øO€?C?ÌÒ?‹@e?‘û‚?4õ1?1‰n?†>è([?ðz@2³?i…ô>Þ\ú>ðJW>蛇>Æn%>Àå?ŒøG?Òd?½Å‚?®Êñ?£ò?•0¼?ËQª@ +q?ò®?²Ù]?‡?Ã>¤¼À>õžV?’‰?‰é>éö>ó ú?ró?×|>ê@Z>ëH¤?§~T?­C>?r”P?j¥?ܧ·?è°È?¸õ ?°+¸?Ž"Ý?‰¡?œ ?œå]?ÖŒ?ýPÔ?Ћ?°”ñ?‡þ?g¨Q?.*>ëµg?fw=? Î?ˆ0„?k÷x?ƒ.‹?‘{û?‡@f?€£§?˜¶?ÆP¬?Ëd ?Õú?·p?l‘?|•?šÚ»?¯?»?ìÉ?î?ñœ ?î±+?êC?ækf?±Ô.?±»ç?±å¯?² ‹?Êö.?Ѫˆ? +eÞ? ªü?Ñíø?Û&F@Q|@f@ Ç@ +,›?ÿ~?ø‘§?¥]ˆ?§kV@2ˆÑ@;á?¤R¾?mù,?š~È? N…?Èæ‰?Ôx¹?˜?n$(?ó.º@óg@'P=@,ûU@þþ@  ?¼Ã5?nW+?»@ô?æ½?Jè‘=?ÓT>yþ>ƺÒ?º´?îwI?Ë­í?¬êÌ?¢+1?‡ $?‹«¶?£i?—è?n ?²Ž?²ìx?‘šÖ?!â#?^–Á?¢PJ?‚!º?:ú$?[Þd?ˆ‘í?¨˜W@‹P@ WÃ?íò¦@Êy@O`@,è‘?4æ?FR`@]@Ö?²Ù"?­{P?np?‚tS@ÿ×@÷ý? ÷&?”?%š?Œ±?»#?Äû¼?Ã9w?¶õÌ?ñU?êÓ™?®_8?¬ü?ŒÓÁ?{³¸@7¼±@P2?ÜÑþ?©ëç?â«—?÷ c?¼@É?¤G-?ÌW?Ú°S?‡–f?=Ç?Ö›>èÈÚ@ +§>@K]ó?åû?G?¢QÄ?Þvm?‡¬Ð>›zd?/iA?Œûä?F…7>í/?Þd?èK?ÞöC?Α?¨,Ð?yi‹?XfO>”)h?>Ò.@N?ôYˆ?±7ç?·´?Ç& ?Ë‘?ˆ¨›?æ¼@Vã@¯Ê?Î?™?j‡2?kïû=q}™=WZ?KÀ?YdS@±@ ,a?‘S?kz +?km?kZ ?Ÿvò?°m?t_•?CÙ?/ì?¾5;?ŽC^?[)g?á6G@,¡ö@/ÿ«@/–@ +ÕA?©  ?ÇYT?ý½?Öã»?ˆóò?Œäµ?¯”„?¹Þp?éû1?ÝüÔ?lÍŠ?]‚®?¡É¦?¥4?¨5Ë?«rk=±“Ñ:ª?Zjo?…Wd@h!@4ó6?Ò8«?›Ð ?Lc?hÙ‹?˜¸ô?§Ö?ˆ.“?h”?­F®?èv?¢ œ>ü‘¬?!=2?h.x?“Àu?Þ@ ?ìH+@ +6@ˆ?‡Á;?†'¤?Í{¶?Éxt?Œ±1?ˆ¦F@ +µ¬@@x@ØS?óÖw?æíƒ?À$â?µ¸%?„çƒ?hXú?€ðÁ?gb?P÷y?]äÛ?‰Ý›?¡õ ?mÑå>§&š?#þj?Õáé?ÎI¡?g`?f/•?eÖ?eÂ}?^ï‹?ƒ™Ž@ &Ã@ +ü?¤ÎÒ?‘@­?”_ú?„Ÿl?Æ7¶?ïöi?Ög?¶çî?‘§å?`@ö?® e@ˆD?þ´Ë?”è¾?›±½?‘Ú1?ˆî? ÛÒ?â?EÝ0?NmÊ?VºÕ?_²@„‘@(w÷?£fL?;Ž„?O§;?c¥˜??’?'ë/?€þw?¢ÊŠ?h”Œ>È“´? ׳?®0Æ?’5Š<и>uöÙ@Œ3@ø?®6X?ª@ê@‹;?¼K!?±_?°˜N?•ù?˜tv?© 2?7!?"ïÑ?£#?³è]?¯¶?ÉNp?µc>¶†>‘¹D?`£?au ?˜ ¡?§à³> C„>(ld=¸=(>}a‹>àêÚ?#%Â?`É@?+· >QÓ«>” º?Yt”?G€(=G¿–>L€~?œª?˜)à?*ñÝ?#\Ô?…TC?¢4a?~ê?0Tþ?‘è??Ü1*?µ?Žå?Á]p?ûÙ?ù·O?¿—§?ð[?§Cj?§5~?D’ >Í2M>Äàz?Bcï?pÆ{?Ãa??ìÎÚ?ÝL£?ו?½ ?ž?œ°‡?è‰v?ÞŦ?§í‰?±Ï?"²?p*?…ó?£>«?ð Ç@PA?øS‹?Å`?Äâ]?¥–K?±?\à?fðV?Ú@Ë?Ê$7@W?@ŠÈ?Äa…?¤ñü?AŒ%>ÛH¡>ï&?8·?m=½?¶ïD?·§‘?¨'b?³ü¼@OA?öi@;{@‡è?¤H¿?z‘§?•ÉK?£«?…òÖ?ÍJ?e”´@$#@Py?œ¿i?¢ó™?Ê•£?ÅÅÚ?Å¿¾?Äô?éúµ@qž?×E?Œn1?c&>ßWO>ß3î?©+,?®Á*@_@Ž§?È6Û?²ÀŒ?̼p?ñc?Ø“s?X,ž?cH?ŸU?z@£ï@õ#?“Æ–?=P?Rƒè?bªŠ?ü ?Ñ(W?Ë8w?ÅD?¿OS?¡ÂF?ŸàÇ?_@º?EaY?¡DÊ?Ó»X@ C&@N´w@-¶y?/8?"ë”?–ÍÉ?žáÍ?–Éï?œ:P?…ØF?GBæ?HÙ?vù ?Ñ8?ž,š?žŽ@…E@¤@Ѳ?ü-d?ÈØ’?~­?‰fÙ?ƒQ}?zrI@œ(@<Ó!@¡h@C?»ûG>ÑŸ>Ù—*>鋽>¸Ó¢?a½ª?ft‘?Š6ô?œ¾??B@>PC>ÃÊO?œ +Ä?›ý§?Y.»?OÎû?ûg>Ô%Ä?,?\ÉY?]Õ+?3‘è?L3é?Å<-?Ï0º?ç&?þÏ„?¡WŸ>®ø>Õ ¿?©GÅ?ŠK?«n?…­›?…¸?•Ë*?­?Îê?ɦ?‰®p?ƒg5?Ú„ä?ó Ì?Ç"ê?é?»wg?ù¨?åPƒ?qÔ@?~¡D?7ݧ?0¶?N*¡?T/L?oŸ? ¿ë?¦sŒ?›°i?›Á¶?‚;á?lîö?;º¯>ì¼Ê? (?\ÉÔ?€4±?Þ?Ñ›‹?uTÉ?8ö]?t-t?›^Ä?8~-=óÌ(>½³?]?!‡?3Œ?Ø>îJ+>Ôë¶?*Þµ?T?UÑ´?u@ý?‘©Ó? gá?˜Ì>Ö¦ª>×®>êõA?Ûl?Àoª?Û#Â?tÂp?²Î?< ®?Uüy?¤W—?óX?¿}Ó?\¹t?_ºU?€]í?‰A>ßl>ß¹ã= úÿ=° +>Ó??„á?,5>ÃOó?ë>óúã?–¹¼?ž¼>Z-H>ÀÖp>êa®>1Â=/R@šn@M>” >˜YX<î`>­Hé>Î!*>íʯ>ó¬}>ØÝE??I¾ø>’ ‹:5)ý=#V=Ê æ>gœµ>Ž=¢ùy>ϱ·>Ôt.>n>dm>XuA?ê=/B? àn?¢¿´?x/x:rÚø>Ô.ø>À>@ªv>Od;ÊA>«@N?TV?Lü>à1£>Ü?š9?S|v?<3É>3z6>J/Î?®R?Ò¿Ò?ˆ«?h ?dz>âoø>âêe>ã^³>ãÐñ>ä:>äŒÆ>êD?&Î>éßÔ>hôÙ>ž¡?°?ú +=òÉp=ïX¶>b­a?Ôž?zס?u®?BW[?G$Ž?]>? V?NËp?\æ’?h§>?jrÑ?!¶">â›>’¼>]ј>¹C>ë/M>áj¨>¨w>Äð?_Ò—?Pf ?‚š>ñ°>æ•e?1Ó?#à7?L1?4ôI?KÞÏ?`vÀ?kæü?ð>>&Ó>ëær?pé›@Õ?÷¦ò>Û >Àå[> S,>:&š?iï›?k£=§zl>ˆ¡[>½,??'é?3“÷?i›>ë+x>Â>4¯>É—›?Z? +=>êÀG>ר6>Áb÷>ݧæ?Æ‘?)W?­bÈ? iÑ>ê?V?«.¬?¦¬9?UK?lÅ?”'Ñ?—ë=?roÔ?iAV?*r?Œm?žÀ?ëõŽ?u²Ô>è³f>°¿s>aÛ?7Î?hO?V5?>É?AzC?DêJ?Q\?ƒÌ?t™å=¨Œë>"¼?ç\%?æX]=®PÆ<~kY<]&ˆ?;Œ?i z?8N>Ö¬;? ¢;?×ûŸ?Âd™?·5j?—„?f'À?qK«?ƒÙ¯?…f\?†ð?mo•? +¹Ã??då?Ë_h?Á‹Ù?-Wœ?1‰6?áZ˜?åJ¤?ƺö?ÀM,?¯Ê?«Î$?šÊ?;´?±p?Î@?½Ü?«•’?Íû?NP?/É?Ù=>ôZ>äÂÔ??2?d{æ?Z?“>äm0>éK¬?Ó*H?Òi?á l?äL5?&Ô³>µg¸?œAV?Ç5_?ª™…?™Û ?˜u¥?—H?KÕ->¶‹¶?¾³?d&#?‚:n?«Žß?‘MG>x4É>Žp%>ºi>±}Ù?¬ ¦?«Øî?JF>ƾZ>¢‚R>¬µ?¸Ü?û´³?ÿ¿Ã@áô?»œµ?dZ??ŒE?®ˆ³?‡ã\>é,ö? î?d†?ƒÂ‘?ãFD?ß‹ ?ç²&?è^ë?ö.?g¸?\çé?dÖ=?¹>?Ð~*?‚©?KêÆ?”°€?«Ò“?G«ž>”Œ™>•þ>¶UÞ>âÃ>?‹•?c}~?ÆïÄ?³Ê¡?06Þ?Aè?”47?™I¬?ô\]?öÛn?Ô+?Ù[>ü:M>ªtI?”»Ê?¬¸?ASh?ˆ•?ÈR@ ?·)?f°W>ï–Ö<Ûé°>Ë<Š?fó½?•·8>€>ɆÚ?«I¤?‘\Ð>ç`v?‘?Xq ?_,{?£€•?£Uí?Á ?¼Ýä?Oµ?Eá¢? Œ9?¯•Z>Š\Þ?tÞB?œ_B?`@â?3ýW?‹'?¶ +??ˆ±”?J¬?yŽ~?Š6?ý»»@MÑ1@Bs~@,%w?þ’€>Ó+ë>þ+–?GŸÏ?.Ôì?àA?)®?´õ?¤~ª>ðãþ>ëwn>êH“>êXÿ>ë“Ö>ñ¶?¯fR?´k?áB´?ã)°?‚Ý??jì¡?0ÏJ?,7ò?û†?°e"?°sS?°|?ão?îÇä?¢µ?yg8?ƒ}u?’Pq?…¥=?kÚØ?seÓ?éÉ?p÷?Gƒ_?žª?ì60?÷Ð@¿?éøÔ?¡?†ó'?1íÄ?|lP?è€è?ù£º@Ž#?ÿà?lâÒ?WÆ>>üóƒ?(¦r?±Íæ?Æ”@$¬‰@`ç>íD >ðçy?5•v?G:A@I¥@ò˜?ß­ç?ã6_?æÏq?êg??•Ï>Þs@;—@Tµl? ‰û?mÚ«?Ü-—?íë»?ß|˜?ç™,?š[y?€xT?QIó?0h?¼V#?èXm?Ã=?²££?²eþ?°¸ù?{d?‚É ö?$¥{?ÚÈ~?À›?nq›?nnl?ol?{F?Œ·±?Ž^&?] ?y}?ÌþÍ?ÝUÔ@l?ñý±?œ¶¿?ðB?ÆÊ ?ÍœØ?Ôp?Ûä?Ê‹(?ûö?n2'?tŠz@–@ Tf@T¦D@[KÇ?“O¦?~•#@)¸{@2{r@Xe@Ò?Ã2?²c‡?»Ž?¿7S?[9h?>?°ç ?É3?Œ¡s?m•3>ÜŽÅ>Tyx?÷H’@7Çb?Õ²3?‹?¢µ?±òì?ÊDï?á@Ô@!M@Mà–?ì|Á>ìÿ;?§qê@«@¥ÿ@Hø?æqý?Ø?ƒ®?]Eò?¤¶è@¦ñ?öSÎ?ljž?}z?ŒHz?…ê\?¢rø? sý?~;/?€ÆJ?­žÏ?­_?käö?kÔ,?Zì«?O*>2u)>O~"?Ïé?é?§:L?—Ó¯?vS?k>œ?wo¡?ƒñ¤?3þ>ªWË?šî¹?Ö®Š?€†¦?X?;@ ?j¡?uD?‡×?¶üü?ß°0?ÕÃ-?Ñ•Î?ò'É@ ºE?üîD?ÌfU?ж@?éáÙ?âÅÞ?É¡Æ?Ç2?|´‚?vìÙ?u”K?iýÆ>êšF>ݽO>þŠ…?–ø?›2?µ4$?“‹¼?‹Q5?ª×^?­{Ï@ ή@É?ÉIA?ƒ ?²Í÷?à[t?¬fî?e÷Ä?»ä@1%@ºC@%y@‡F??®ü?€¦ü?­¿­?ÁÛ@G)@[?™î?œ³5@0!@(j;@3P¢@BE*?Õ?®Fý?†€Ó?wŠw@ûQ@/Vˆ@Üû?ÏBg?¯K‡?Š å?¢[Ã?Óú?š´>‹(ú>ÄÄc?eý2ƒ?EãO?Ù? G>ä¯3>ãéD? ¹_?¼§Œ?©"Ž?œW?|ؾ?c‹?!¤µ>ãeo?­áŒ@­ @„?óeD?éïk?ãOD?Ìœ?ORÑ?EŒÂ?š`ß?§’³?ˆôY?Œ0È@,bE@;¹?˜p? ¡i@ @A™£@ÞÏ?©‰d?:†c=«²Øks>e2n>ó¾è?<”„?aðî?E?Pšù>á)?Ø8?•òô?Ž®@$£¿@áÖ?ŸŠÔ?…L?l©?O9»?§i'?Ó‡l?ÏO>âŽÂ?WË?ž„B?° &?ß4E?È?c,•?w&®?…’l?•5@CëC@Ytx?za®>Þ‡?u2n?Ç:V?Âð?ªÊt?žÿn?·³3?ÏKä?‰i¹>éP?™Üa@!„Æ@ Ÿ¼?˜ì?žöK@@Ÿ@…"@#Ö¾@$ÿ??ן?­_>ðØd<\`?r` ?à—ª?³N¼?„àï?ŽL?–Ç™?“,C@:¤Ø@=KÜ?=e>ùõÉ?…óª?–Õî?hã?LÓe?øÒ?“éÊ?îf?î¼i?ðÇ:~¬=¦Èb?j÷ ?‰éº?• º? 5¨?õ•ü@©@ ý ?÷„¡@µÏ@†?ìãï?Ør?2‚ª?Êo=@ƒq?½…›?†«m?FšT>ðÒ? Ó6?Vþ?aâY?‘U?‹0Ó@Þ@'NÓ@¿ý?玩?÷ŸJ@œ2?á~—?©Ö—?©Æ?•.S? Æ0?Œò ?‘A‹?& í>à‡?ãyŸ@4 @&¸@$+T@&*–?´›Q?–öÖ?¨}E?¦ˆW?2]|>Öy‘>–´ >03Ä>‡¤Ü>·3Ù>î-F?t˜›?†+œ@Ï@6¯£?Û)Æ?|‚ã?…âÎ?x ü?ˆ"·?²®±?¬–?ŽcÇ?–…?à–þ@ÁP?Ñ€ô?yÒ…?r½g?˜¿:?Œ€@?¥m?¢DL?sÏC=>Ï7Ï„?dÙ?vH#?…Ïa?{™ý?„'?¶S?Ä`—?É?Θ?°ià?…‡?›’ç?¾Ç?«Âw?\o?#¢~?h‹–?›I?™]ð?›zC?–áü?DÒ?^¬°?ˆê?’•×@‚>ÙÛ +>ž$Ä>²öÀ?ô?a?n1?‹A;?cód?PL€?‚½?Tˆ?1Þ™>dú@>úêÊ?•>ÿ?“Zï>Ö‘!>Öó‹?:õb?4–þ?·¡?á–‰?/Vh;®.c<#[@>åBP?–˜º?‘‰X?&ôu>݆>ß°>¹cR>œÄ +«Óˆ>¢\>žKc>jû…>‹ã½>±æf²>ì;­> ¶¦>Èß\?'º%?(j>Sbq>zH;CJ@=QST=ëzð?4²A?œ]¯?#¹ >nz=ÒU1ôcÉ>¨u=Ø•À>–¸ +>TŒ =ª±Ð<œÅ:°û>pGŽ>”jý>N">>ïz²> @(?¼¿7=Žx>Óèj>üší? Û2?&º›=ôÞ =–"<¦²Z<û”Ä>¯‡;?•!€?ó7?mº>Ý<£>¾·>†˜ð>[Qh>]óÜ>u]>[à>;‡>Q§Î>¨Ós>´h>¿ùC>Ì>äl>ä¦>äèM>åFâ>Ù¸I>½:·>‘£=ú>G>ß°<£´>Œgj>èž>Â.ò>ŸÄŽ>ä“l?OMŒ?Jκ>ÊXÇ>Õø?g‡?k=? üs?¨ê2>í"­>ks9>ë_>ë->ëDý?Ë?S’/?XÌK?.‚°?5õ!>Ó¬>º3?1š=?FĤ?#Õ˜?]_?^?}ÙÁ>Ûœ.= + ^>rM±>ëÏ?ñ4?îž?¸‚¶>ë¹f?6G^?¾~)?·ì?Ì(È?¿kJ>›öQ>’h#>‰³~> +/?…”|?‘?¾>ëG?V¤?jAb?ˆ¯í?“öÐ?>hì>ê§Ô>ž3—=à«}>Í?dl!?h^?j$?/ůãÝ?äAu?árÃ?ÍfØ?Ãï ?hé?ƒÄ?©÷?có>öx·>è÷¶?³Í¸?ÝÃA?¯¿A?Ž“é?nÑË?VV??Ì—?>Y?D|.?8ê2?ÓH>±7>°Hâ>räì>•?8)?7ö:?Ú­?ÑÕw>çÝ>û±D@É@ ب?YÖ>ù…(?’k ?œÛ?ÓîÍ?æZu?Ÿà1? D?AAô?ˆÒ?jÃ@?—x¢?†$/?eÀì?-j>q9±>ÿËÓ?¯|?™ÇW>…Ô >¼à@?»©Á?ÁƒE@D¹@·a?À>É?¸Ü]?ÜS_?äÖÄ?ž<?€ª¬?“X½?£&?¦L?¨ûf?àr@ÐC?ÝìU?c£Æ?€gÊ?¨ /?‘ >äJ¼>ý‘ ?ƒÿ«?‡È&?¶°þ?¸Pœ?X'_?D"U?Ëî¯?äc?Ÿ.±?‡ž{?‰Ì?Š`T?†âÑ?o-›?D3r?-º\?ŠÊÜ?äû?§¬°>Ë×?ªîž?¦mú?Û÷¹?àÛ[?„­Æ?†Z“>£>ÙÕ?.Íû?V[ ?iu?lšË?_1?]õv?® E?äE0?Ë2Ì?«<}?ª$?©8x?›ˆ??w7`?jŸ»?8ª?$5>ä•e>ä 2? +]s?(~?x~–?‚ëÆ?Ž#>äáH?,L-?I?¥s›?¼¯ +?©™ï?—J%?¬>µU×?e_õ?q?ymæ?v[F?†£þ?õ«V«>±ÁÂ=ÐÅ=«,?”Ú›?¤‰®?Ÿ‘?q+Î?¢é?¯ž>?…'j?f‡?f™¬?f¬?fÀg?fÏž>ùj?lr?­QX?˜Ô?UKø?o9­?¡Ý?¢|?­¢Ä?¤§Ï?Z`q?]-+>ž–m>ª:? [Y?#ß+? ѳ>úöt?Ìç_?èV„?¤Î£?”y¶?(m>è§î>ÅÁQ>¢ð/?n÷Ä?®¸?®Ãƒ?®ÓÁ?¨`?¢÷Ò?¸¸¢?×W?øì‰@#?ïnU?i±3?’ôƒ?è²C?ÑÐ?iÿ.?W3¹>ê%ü?€²?aøR?fV\?¯Òo?®ÛE?‰Zï?Œw¢>tˆ²>i}¥?A·›?G¯—@§5@$ZŠ?Èt?°eÄ@^8@w¶?¢Í?ma5?l/d?]9õ?£Ú?Œšõ?3o3>ëÖ!?|‘r?°ù%?·ÙZ?ÄLç?²ß? Œ?èøê@#—@º@4­?ù,Z?²%?ÅØ ?ì¦??¶„×>ö«Â?9/?¥÷¢?ŒÆí?`Ž?ÐA?¢÷?7KÜ?LùV?VA\?ŠÔ—? + ?ÉÝ?ÂÄÜ?`ëÎ?l3ª?”Ö¬?™¿°?Äp?½š…?› D?é?€”?˜E;?æÈŠ?íË,>9þø?ŽlF?§¬@ íh@0™?cn©>îû?ÈtÄ?ì-Ï?•F¦?yˆ,?Å°L?Úùè?pßý?-J?q’?ˆ?±œh?È c?žË¬?ó’?pÒ¬?nFÝ?Ý5Â@IÁ?Ú‰Þ?¬#E?òâz@‰?ÚPP?’Ä‚?dÄX?£Ž?Wín?ŒÎ?!Öƒ<ßÁR>¼(ÿ?nQB?¶¾F@m@SH@"¬o?îzT?ó½?6¡Ç?‡óÐ?“‘b?¶îê?¡Û_?„?SàP?±£±?­Š?¨€Õ?¦êò?ÅÞt?ÊÔ—?µ­?¬Èé?½X¸?¸6Î? ¿?«@œd@Ä$?qŸŽ?~’?¹õ¶?À +®@ ø±@ ·a?U«?9GC?«Òá?¬ö?Í~?Óž? 6a?’’9?±ÓR?­H¾?}“?yÏœ>ñ¬^>HìÄ?…zR?¹@?¹í?m’?šMì?±ÿ?ñ¹c@ +ì…?ä%­?ÅVÔ?áŽü?ûì§?îz«?×ùu?¨v~?^vÓ?¶Ç@·ì?û \?Œ3ý?¥ó‚?õŬ?ܘ@?lµ?€w?«¿ç?¥KÞ?káQ?—Û@Hu¥@?JŠ@ ”@Žo?‡ í?|wc?®'2?°„$?϶?δ¸?Ne†?:we?JXÊ?>Êm>Þ¦>“r?Uš?Ì?£wÐ?°Øƒ?¯Üï?­¸†?ŒI?jb+?âh1@!y@õ¬?ÕIc?Å1?Â>I?Æã¯?·ë9?Ä­`?×-ã?ÆLµ?€å‰?Ä2?žM›?®§{?é£?å*w?§Ó?¡…œ?ùÊ°?í]Y?wB?hݪ?hÒM?h»Ý?þÏ@ Úg@0·@E J@­?¹Î?­5)?ª8/?`9>èVŽ?fîË?¹Ô?×|“@ÛÇ?ÛXx?c`3?p?Ìf?Ï=@»v@ù?FŠÀ?c:¡@‚Îœ@ˆ:^>Šv|?˜D?­^?ÌöË?Í­l@$yc@@Ó?ô6´?ªq?¢ œ?¢ZØ?š®÷?Ž…u?–?²Ð?•å[?gBÿ?KIÂ?!?8eæ?ÎÒ ?çŽ-@?I@<Ñ?0ð?‘½j?Ç=ñ?»­ï?3Þ±?ú?ÙœÁ@ Ɔ?¯Î?sæü?ƒž1?…v±?»òj?ö3§?ÔNZ?‘ea?ž[=?ÍFò?»g?,»L?0M#?±SZ?¬,ª>å‘Ç>ãÇ^@,¬„@2š#?…~å?<Ø?·~?Êp?7¿š>Zc?rr”?Êv@Ø@*Da@ âÐ@ aC@V?К?ÇI?¾l@?´X¤?ŽïË?Šw¸@¿6@lV?¹•5?¢Jf?Ñ#l?â??7¤È>÷æ>–+b>¤ØX?”ýÖ@Ã?÷Óß?³Ñ@?¸JX?™u?ƒ> ’å®Î>¯»?\á³?_p@&ï@)@c?¥ýù?^Eµ>ë)†>f§?nÛz?ä/@èc@d(o@Wþ´?Þi3?àG‘?ˆª-?qÿU@î@-?Øë2?É«?Å+?·RŒ?U*?]}?f‘‚?Œ£?µ©?ï>)?ì56@÷ƒ@“O@.Ü@Ìq@ ñT@ ?¡F:?A›Î?o0?¡‡Î?ÅH#?ØÕ?»?«È1?¼@‚‡@#7f?¯†Í?–8R?½èO?Èf?î•#?ê?È+?Ë=Ö?®kd?_?)R?š›Ÿ?‰Å?Þ?²ß?wKÍ?ƒÐ±?ÕÕ@cg?±î³>ØaÆ?@£Ö?ݳ×?âßÞ?ÊK±?³oS?Ê„ë?­c?§"?½ßb?ÐŒ×?Öæ‚@ @$K±@;â?Á¦e?»ÃÎ?ô¾¸?ü‡­@åà@ûA@¿ø@¡ª@–ÿ?íÒÁ?ØW? è?•!(?6æM?AÜè?RW¼?T³®?3£w?UŒJ?ªpL?èël?ëG”?ëì9@¶g?¿:?Ëcå?ù>a?÷²L?Å(?“²?DÀÎ>F¤…>k`>Ÿ(>¶÷ž?‹? ÛC? >Ž?‘€?eq ?ÿ«?6Ú? Ë?²ŽÓ?V%>ÒU‘>s3>°lØ?sü¯?»íÔ?»'X?Ь ?ЊA?¶„.?ËT¾?‡•‡?P+?rtÛ?‰h?˜7½?åi?Þب?+6ð>ñ ®?0,?Op ?, ? i?*”à?p?Jî$?_÷Ð?WS¡?­P„?Ë»Ÿ?›ÌÙ?cÚ–?€F)?± ? +3ì?FÄN?Nœö?ˆB;?•è ?nŠ?‹ã?‚9¦?N‡V?N‹ã?“°T?šçª?w¯G?X0¥? ¤?‹õ5?‰J´?º•H?ÍÀ ?ǹ‹?Ê w?’™»?T•V?‹˜Û?¿—Ã?¬ F>càG>‹Å?)Í´?G°¼?ïÐ?í?Mrž?‰‰Ò?“ˆF?†8?Œº?‹eØ?—\F?spH?GN£?:C·?-:ö?!q?(‘|?1¼a=sâH²«;>ïÐC?¬‚}?àn??md!>8ÂŒ??Ÿ–?J‚¢>Ö{ß>Ößþ? +sÜ?cI?}!_?‘‹>ïZ©<ÀmÞ?$÷ö?”p?V"÷?£Ü¥:?•ç?lÙ?K‹o9ë<y?cÇ?ky?¤v:?¬c?Jºq?’Ø>…šb>Œ¹2>E=yõ>Ò¼>ì@z>Ë°>«€ ?l¹0?oP"?G>©?×\?!¯?£¤F?‚[l?m—S?}øL?rN3?h >ÁÈ™>¾]s?¾ ?ÆN>ð€>β>7=ð|ß>žpN> !¢?Ö„?»§ƒ?-,Ü@mE|@4~? ¥A>Ó ß>?Ti=æ§c>¡b?E×/?LvŒ>îL­>Õ(J>~RÉ>$pQ>jIÈ=Ó½å=ù©ý>µ/0>ÞE +?Å?+ +?„Ï>€#>Ïÿ>Ð.>­o>@}é=Œ¹=Ù}n>ð?d>æFÞ>ä»c>åÀ?1æt?Pˆ”>ñ>AÚ0?X3b?F£ž>õõé>ß¿>†&«>Ž¼>Ù‡Î>Ï•>¥;å>¹®q>”r*=ý :?®<Ë?¯1«? ì? t?B÷Î?B @? +1=>ê÷ž>’3å>"™>Ô“×?8›'?3°i?.ÃJ?"ê? ë?Ê¥>ì!ú>ë¡Ü?I J?Tǵ?ž ?ª³?LEµ?>ío7>ë´R>„Àß>` >«Ú>ë¡K?.÷s?‘É?|S ?â?2{Œ?=†œ?0Å>ëG >ñ'»?”É?—b‡>°;ì>˜‰'?ŒÑè?©ƒó?±ót?ºUm?Zo? ?A\Y?jb‹?-ì>êŸO>ê$ö>îUí>ìžè>ÕŸD?5¬s?¸E±?®ô?Ž–l?b?iTú?`„%>é#>ïâ@?{—X?t>ço>ð9p?ŠûÔ?ŸK?œ+I?™†?Ö>¤"?Oðþ?“)?'Á=œm`?Ó?¡6?¤®?¨"Ô?qÜö7ˆÜ€>”µ`?¬{:?¢ŠO?|ív?€sÖ>æâ>ær?¿¢?#p}?AD´?O8?”¨°?™î +?]¾‰?:1ˆ?Ž6 ?¬Q?vAj?+NÏ?.é¢?&®ù?;þ?eY²?0, >Vþ>ƒz¦?Cú+?r·ø@ƒ@Ôð?Úì‡?Ûík?ÝbS?ÞÕù?àKãûP>äxj>äl¨?6?n™?«d?Û +?’†?%›?eF›?ÅÍ?¾J?ÉšR?ÂZ9?«=?§›˜?FÇ?›µ?¹ Ì?¢?›§¯?‘ +(?q’»?cãR?…»j?—Bc?Kè»>ãÞV?=.h?“¨¼?pÏÒ>Ïëé?XÊn@{?í20?!–•? gl÷Óá>ãü ?–ša?«¿>¹ <?Zƒ?¬)´?¬$f?«¬?“G¨?pø ?›á$?ÒFO?¥2:>äXE>ädG>äkÂ>äw>ä€J>é'¢?c°4?dŸ>bíz>;„7?¿Öù?ÔåY?ªäÂ?«ò)?üS«@ ñ?Ñh?Œ°?ƒÄ?‡^?“a?®×ü?¥¾´?ŒôÃ?®$‹?ÿwÏ?Õ§>%¤9>1Ù$?a¨?¿ž?ZØØ?^W‰?¡]?¨û¹?Ý–?æ?Ð?>¦>æÀ?E!e?f„ì?"wO>û(?eRú?•½'?†˜ƒ?{ÚÀ?uh÷?g!?¦'™@±?ÛÎä?†4¼?ˆÓ»?ƒ.d?Z¿=i˜Q?2vŽ?3“ü?¬¦v?ªw¹@ +§œ@ ˜??b¼ø?<Ѥ?†^‘?†1Ä?OG¦?H$Ñ?qÛ?†*??šgc?¤²?”v÷?„S`?n2 ?_Ê?ØÉì@*–¾?û¼?i‰U?i ™?i»e?˜·©?å.+?ámý?ÚDH?·nœ?h?‚{o@f7æ@RGy?¡º€?œßY?&F,?Í> +p>¬º!?¼¼ú?Îyk?Õ|³?Ï^e?²=ž?³]?îDn?é¦L?‘Ÿ~?„Ì ?¦äL?°­‡?6?s_?{Îþ?‹`X?8Vå>ëî„?D…?„?Cc?qùÑ?•Ç?±Eò?èF@ª`?ªF&=Á+h?ö?¤Á?¦üç?±ˆ¤?šÚô?R¡%?a·µ?€4Ý?™¦´?ìu¾?È6g?TÛ?wTj?±à?´‡ ?¯×?£›‹?Ã?”·H?ç,?éy_?›ML?˜#Ø?Ð1Ñ?Õh?ø¤D?öŠn>‰üÜ>1&Ë>ãc>íÃê?àØ?íа?í,×?èG…?‹€L?‚Iª?ŽL? û^?€~#?‘¹þ?d†÷?K…²?‘Ð?\P?‘Ä?-³?uÏ?kŠ5>ÛŠ£?nL?ƒv?™©?Q›Z>È‘?» Õ?¿”¨?Ä )?·*R?mõ£?¤˜o@2pÌ@' ¬?ßÇS?Æ õ=Ä“?mÆý?jÉ>ûBb? ;Œ?²@i?¯–l?z„?9òŸ?O(¿?DÈ%?åŽò?ít?²á(?³9Ò?ƒî?à­?æ ;@sÎ?Î^>^N@?w»F?Òš?ÜQ?ô,l?š²‡?lè?n?rô5?CÁ8?9"W?“P³?±yá?Òas?ìŽ]?²?„^?jÛM?0«?‹ ó?Ô€«?·i„?Œ¯5?ˆSÚ?lò?eúñ?]à+?eb??kÕ÷?kÇl?k¹ê?–Ì@l1@ +áM?(?3¼?<’•?Kô +?2?ω@Ôñ@½l?eŠ]?G0Ž?‡9Û?“L^?¬¯&?°á?Þe?êœ@ +í&@:?­só?vxH?p¾1?j:Å?±šÖ?ç ?íé?éûc?ß–w?Ão¾?£¶¢?‰ÞM?Ž¡b? œì? Â?žÛ†?m[õUî?3ï>4I°>½Ón@'¢S@%áZ?çG?Ú„Q?—rz?˜w@ +v@×G?Þà?Ìüj?â]m?è3¡?œJb?hÛ?•x?§ï;?gNe?à^?‚b¡?¾Äû?¬;?‹Û?ª ß?çe?߈¥?®(?‰¿/>ç%?BÛ?ëô÷?è×Ú@.u@ ‘³@:–q@7Z½?…äŒ?Wl?Д?õ ?²ŽÚ?Í?0[þ>æE??œµ?_2 ?"}>òŒ7?t$×?ävê?Ûé¤?Í”J?¡wu>½,Ù?îH?ÆÂ?Ý8?Œ{ª?ˆJ?ö©@ʪ?Ø?XÛ?› }?«?Ïÿ ?Ù‰?ÐçH?Ƚ@QŒ@&ÇÕ@V•?«+?¹Ëã?ÐDú?ÁYS?ªù¡?³á?ãÙp?Þ?_£!?W)?¢×˜?»,Þ?;Ÿ>ãe:?¹¾e?éÏŸ?WR>„B»? +e?S=_?×Ǫ@)ó ?ím•?”ñ?P>¹?ŒßØ?•¡ù?žgË?¥rI?š?•P?à5ë?â1…?Œ©?mYú?ÇB'?áð +?Ð +ê?· +½?€¥“?:»?›e‰@ªP?ô©Ö?§‰°?¬9ë?õt¾@+?á%º?Û…ž>ÍQî>º{“?!Žý?.ϳ=’é?^€N?^u @4“@B*?ËãË?1é?]>/ *>ÃðM?/p?K°>?]¬D?C÷–?5”?//ü?z–é?‚s@Å@L^?¼ŠD?¥®Â@÷‰@é÷?õk?Øõ?ºi‡?˜ö?™Q?²ë\?ÑÒK@7"@;?è'?ýxú?âu?Ü‹p?±X´?™,?“³=?Ž1¸?¬žU?ñ¢?ÔæÖ?õØ?Õp?_f ?c@æ@A@&u?­?ufd@ öÐ@:Ó|@¶9?¬Ö®?Ås|@³‘?ó7Z?h¹‘?sÌ™?Ÿ¶ð?V}?kùó?{N!?Üq®@N ?«êƒ>Ø@Ð?E7? +?Ž)Â?­|?¾w3@)^@¡£?yG÷>×7?d³¾?¤6 ?µnª?ÚìÚ?ß—?Ÿ.å?ª{`?¦ ?·JŽ?£åL? 8 +?âPm@Œá@ d‡@JQ@àÇ?¿?ÄT´?=‰™?Ý?AáN?T“;?~hú?ƒW@?œà·?Ôs?ÀàÏ?SÔÄ?S³–?EW>Óõ„?L i?…?ï Q@?ïhj?`Ô?1/­=ú{I<ú=N?5 ?\T?5?•?-@\?4pÞ?’?Qò>Ñ}Ø>ÑZ©?–?™Y?‡0D?fK-?r¦ø?œBf?¬(ù?Âuá?Èl5=ꄵýYõ$>­ÙÝ>.&Á>ðµ?½\£?Ã~è?“r?š[h>ߣž>ƒ‡â?Ãù?%Y^?óV?)wþ?5ê§?m:ƒ?Ršï?.¿?†3?W|n?šÏ?–ûž?t3¤?gŸ©?8c?š +I?v +?NwN?“’ ?ÙÇÅ?ÌŠ½?²>¹?˜Ì¦?Ž×q?™Ù8?Ó“ ?ê´ô?Êg?° ª?§%Á>¿=ºPÙ>Å!Â>ÐÆ¡?"ú?=ê ?$>Ç?ó?!A?.vZ?;¶†>â#u>Ñ3?rc‘?’’î?Z2¼?ja?“É?·>÷È[>íàp>Ñ\¯?6Ÿþ?:ªv?‹î?¸RU?k7=Ø`=~SÙí?\HÏ?£Ô ?páö>ÛyÁ>Üæ>Ü’_?Å)?£$X?”d>ÏÏ=Æôš?™âE?ª´=?rŸ?ÇÉ>±?F>ÑÒ>ÅÒî>„I…>º›G>ã#>ëD>ì6 ?Žë?‚É\>ú/Á?'$¨Œæ?6¨+?ç*>üà*?­–l?ª|Ü>-ƒ>>¾¥ ?En=?är=ï’ >@‹ü=È+$=Ñr>¤Ù#=±ðn<2°@2,î?êàM?zœõ>zã3>‰÷~>–‡[?Ã?ƒ?f>÷>à…E=ï¤>µuˆ?)í?pCT>ßßÕ>Þ?!Bû?[bÂ?T >¹'³>¡i}?P/„?{Õ?0¬µ>âß0?Sç?cÁ_?c±-?_f€?Zu?aœ?e²&>»¹>‡ý™?Mú?l!©?‘¨þ?Ž¡V>Ø?{>­2Ñ?=¼å?|?TÍ>,;>;gq>+B>švÏ?iô?`6>ê>–>뎷?e!?j¤ +? +¹ú>êÚe>¬_?QZ÷?´Áž?t­2?--?;ù>¬Dâ>Ç +?80?&Š­>ë“s>ì“Ñ?Z¿ ?bÿç@ú@6?]ïÂ>ëšÒ?8MŽ?M™.?O>?SDd?åä>…¿—?6,³?–O®?m¢“?)/ô?"54>ë.÷>û?:Ôù?8éæ>Â> >T=õ²¢=Ó=;‰åD?@ï ?js?qÙN?l^®?j1A?i$Ú>Ã×ò=Ô>?XÄp?e’$?Hv?}!$?ij=?:„Q>¢ÑR>Ö>é >üT ?d§?m Î>ÓB˜>Á|Å>‡D>•Ú¤?XîÐ?h-þ>-³5>Í=±?ì>Ü\Ò>Ð…>×.>Þ?y>æce>ç<²?#¯‘?cÒÒ?=½?…H?=ôl?¥T¢?¢QæWo>îÄo?ˆéW?…²Ô?Ê(y?Ï7S?»0>ÏÛ?sSs?µ?S„µ?$°/?ÝÑ?N²?)¾-?@?_ƒ>§]û>û«@?,æN:þ"?0Ë›?^'?aP?d7'?9jØ?'¦ù?{t>äF?6:?jì?„€?[_Ò?I}_>ôî¦>ó">9ãr>€ÉF?ªÒZ?ªà?Æa?Å‹ì?L~?3éA>¾È{>|>”›>šH>]'“=ú°ü?%HJ?Ú¹?°¶V?ÏF÷?ɬ ?²X ?ë=š¬ƒ>ÈŽ?_zÏ?_)ï>äû±>ãÕ +?¢ðÖ?ªæ´?DZ>ØÄì?JÞå?n×?q€n?t,€?‘ˆ|? Y€?QJ¦>ÕyÎ?[û´?´O™?‹šG>äFÝ?E#?€×|?w?doa?j¢B?v•?k!~?õhÖ@L?œš8?ÏÕ?ÓA?ò×!?ñE?øNv?Ãþ‰?›]?tª?)ü|?0zs?6.Æ?± o@,Ë@ ¾~?q¦0?q*Î?s|Ž?a³ +>ð s>Ýmí9îïY;äž=5ÿ8<ôã =½~>ÏTF?’Õ?@ø ?SÓ²?•TB?¬ÿJ?-.J>jxˆ?nÎÇ?ÄJü@#ó@Iô@&ÀA?Üó ?Ê??­ˆ×?ŒcÕ>n9Ñ>À¯?ŽíÂ?“N?ÏmÕ?ÏOR?ïyo?ökÆ?`>è3Ü?à>Û?õ×b?/{.>è}\>mÙ*>á?VE³?ˆÑ?ÕñÖ?ø ~?…hF>ô’ü?5øÜ?iCU?.‰>ëèŠ?]Ë_?«¬?ØŽÐ@Þß?Ö9v?,£]?\òö?—?«ÅO@;¾?ññ?=‘ ?K ?jo?l(Æ?Ob¼?CBû?4ƒ{?2ÿ‘?Ì~Š?Ï×g?Aôl?:ùê@.-@!Ã’?… ÿ?=>H?“ ?¡È©?ß«˜?÷Á-?AÁj>ˆlü?Y? +?ˆ5G?¬›Ù?°B†?±?ÓÇ´?ë»,@£Œ@/bž?ÅD>Ь?-œJ?€}—?¬ln?Þú?Å*%? ‡l?¥ˆ?±”®?¥ÊS?šgø?qnª>ZŽ?0"?êÖZ?ýZ@ ¸ð@ Þë?œ`¨?“aä?IP9?k9 ?І?Ç’|?WË»?uæ@e@V¤?æ€?ä`Ï>îmð>ðG?mÁÒ?uVu?|ä•?‚;\?©lV?¨Ýê?k'>íÕ>ƒ‹ >‰Tª??!Å?JÁ?ZÞÚ?‘”û?•Š¤?+‡>íûî?':?³‹?|ú4?…¦‚?¡Ò«?²‡¾?Š;ö?nÓ?  >î´?¥ê}?éÿ°?íœI?î8?ªÑF?sJr?¼m?ôï-?°^Ý?W¤¨?_bÒ?‹é¬?}»?R?:ï?mþÿ?œÉƒ?Ñ/?¡Œw?R?cÙ?¸ [?ªÁ^?™3¼?‚¢ô?;««?žEÀ@&z@‰?m¿ñ?=h°=§PÇ>÷5r>þv>í—5?3ëP@ 3¶@pÝ?*;ü?+òû? ?½3”?í°?íR?°9D?©%ñ?×Æ?pÌ?`Õ™?Q™±? ¸\?žÏ{@'î@*C@(Î2@1UÊ?Ù¼›?¯÷4?­Qy?ª¥ð?}/?TK|?Ó~@X?Úó +?È(6?²OM?—žï?­ò?€©?žçL?±’?ŠÍ?/m¢?U¢û?‡„D?[§¬?á²? >¼?k¶X?†ó?¬f0?‰m>ȇ'?z?*?iÜ?@D?6ì*?,qÂ?5îô?¦‘½?µ¯0?‰âa?š?$T? +[?·2?¢žÐ?Þ¯±?êzÌ@#‹@-Þ?ûéJ?ÖD%?‘4¿?j’?¤ó?†?]>É?’Ó?×E¶@ -B?õÆc?À6`?¥ ?~«ñ?Ok->ùÎC>í$ß>é1k? Ðl?_8Â?ƒÏJ?éÜ?×Ç/?åW?óÌZ@"j@ _?yôŒ?¿ƒ?©-å?·O?€m?h2l?Î2†?èÊ?•Íñ?gó?Ýöd@ ̦@ +Y?éN ?ìîE?÷/`?¬¹?,ö?•L´?ýï@ž¼@#õˆ@Â?Ì??ˆÄ@X‰@:a@6+@?l_&?‰þ&?²r?§ø¢?©±[?¬¯t?†j +?È?>òµ?c¼?Ïh“@:;?ÞHm?eée?ºüÁ@ øø]>ä±a>ôÙR?º1?äzè?äkñ?ä^á?öç^@ +O?ß ë?”›&?ÞG4@#Èq@,S?¤þû?³é=?ã»@?è-"@—!?üß?ÅÒü?½6¨?û ?è6}?±WA?ª^Æ?¤YJ?•²4?:n>ðl?ºÑ?äÆ„?Ë»?–÷È?pQF?Ë·?-&?bb!?bU#?bBQ?dm÷?ÖKF?ÚÏ&?æÛ?áþÐ?<í? #?˜Z?¸ß?Y¥?aŠ•?‹Y?žx(?´Xv?ð ?Í—J? /?+c§?á l?×ró>àãú>àا>àÆ>೿?NX?`ï?¥år?µì?ËÜ=óÂ>á ”?d|H?KÆ£?¹¡?JÓ?˜V?–f9?$BC?#Âü?ßœè?ß“·?f…Q?[Ý@&µt@<Ÿ¬@0‰?Ä›?íóÞ@zŸ?×6?§!\?ùÅÊ@am@Oð?«ÞW?ªƒ?ØÄW?Θ@W•@ +R@o?øh?€‡H?ä>Äz>!ô~>ÌZ'?]‹Î?³ÛÑ@&tH@ æ•?’pî?¨ì?á‰|?ëï’?•J6?’[Å@4«:@\VW?ô[?vÜ?ºld?ðíß?Êu²?‰=°?£…'@¯@ÁÔ?ä;>éŸ?È÷ô?Ûr¾?ó ?ñ†“?ÀbC?¤L?žÍ²?Žõ™?w +o?O ?‰mæ@"NË@w1?œN?¯¹j?S×,?"Ÿ ?ÛuS@ô–@ÏO?âÆM?µŸ‚?c]?kž'?üÝ?·z?›öõ?§jÞ?ÞX>Ø–¯?ÁÒ@%z@"@«P?ÓGn? +ò¬?ñ?W°(?Wä?®c ?«m›?`>×þ?j÷*?¡&¼?cÎ>锨?#Sê?V_Ä?Wœ^?Cw +? +m?Fû|?Xß÷?™E?º“?Ý'ß@7O?ðiM?Ž¼q?—uY?ô§e@ðI?Ú0ã?Æð?ª`ä?Ÿ(î?ÖùÐ@ ]ú?âé;?>ÞÉ?J¼w?Ó(p?ÌS°?67V?äk?¦Ÿf@'@9ë@¯?æ`?LÜ{?Q×k?“^?“eê?Vc?%—ø?E²ˆ?v'Ø?Rl[>Ñ]Ì>Ñ;ó?øûÌ?÷¤U?˜° ?v¡j?Q;¢?&OÜ?\±„?®EÖ?¢œ>Õ€þ>¿PD?] ™?vUp?”?³!ž?§Ò?‰·?m)Ú?›M·?Ë9?­?|˜•?e³>G7c>ÇŠ¬?›.ð?›$ƒ>ß$F>Ùò>ÃàT>™S?T‹Ü?´æT?”ø‡?Þž?ÞÛ?ðö(?ÿPË?®e!?M?qï¾?€l:?†²8?Œýï?“NÉ?ZáÆ?Oî?¼Wî?ÛæK?ë«^@K@ +Þ»@ \J@Ç"?.²q>Ö¿Ù>Á¿²??P×ß?Šú?}_W>Ï,¨>Ï@??ˆ™?LT7?€9[?‡Ú?|þÀ?Jºø?,>þáÝ>äÞU>ÒÀ)>Ðæ???qÓ?Q Ä?hé?}¼?>9Ð?V:w?Òm ?Å[?»k‡?¯(?}›1?T:t?"ÖŒ>ÔÜ? kÓ?R?/É¥>ŸD>ƒÕ°?®?~ ?|M?’/Þ?{Ë+?S¹?¤m>Êà¿>ÊÈò>y^ª>ªì>܈>Ýå>àö>ëT.`Ûó>&ñ÷>©Šÿ>ÉZê?\8 ?h°g> ·t> +¾à<›ä¼?]6?@R+=È|u;Yo€=MÃB=ãÁ?JÔ?j&€>.h>óŽ>ñ-¨>òA>æÎ<>Ž)o>ô>r>½íG>üäÞ?ªi?7I«>›Ò:>-Í]9 ¨=ô%=šHO<¶×°<»÷Ý9ÖÐù>Ya@TÇ?ø€?m2>6ìà>Kb>„?kƒ?‹+?‘¼„?˜hn?œIû>âŸÕ>Åò?‹}î?Щ°?»6(?:–¯?5q?f;ü?d£Ò?ïÉ?qs?d‚?eŒ>ìÀ}>¡>¿zs>æÛ0?+r?M?•?‹U?ˆK9>A±¸=ò«;?#/?UÛ ?¦B?Ù ?³Á¾?i×…?Jb>ê"1>Ñp‹>+zÜ>k—Ä?¹(?²Ñ®>â{>‹hk?—ãp?Ígd?‰š?bR?³L?Dbt?e‰¸?“¸t?‰ô?`²?â>ýB»>ó 4>ëˆA>õw˜>ïøm>ë…/>3›¡>!¯>FÎð>l]V?>„?lyÊ?œ S?È„e?tcä>dõF?9e?‡ªŒ?dL§?À +?T>êÛ8>êÈà>꺮>äÇ,=U-=8f?X]%?g”P?Û‘?êw?>¾j>øû,>àÄ:>Êið?7Â?i®A?Ž?Ÿ"k?‰ ¦?iO?H4^? gå?þÆ?1A¬? üC>}»A>š¢©?+Ñ?½Ÿ>á“>Æ,?H30?MíÒ>˜é=•j?cI²?~@V>q¤<}";:Ñ0w?Veé?ªÒà?¨æ?¨n]?»E!?Íòë?†Ó¡>Œ³e>¡Aç>µ·I>× >æ??©?Ð3r?Ì}?Å“t?ÇÜ>˜>Z]ì>á¦?~?0‚þ?;Þ&>¬ßi> N¥>õbE?+ðk?¸Å>²ß!?VŠ{?Ì»?œ²°>ä¼è?F¸?ß#?¼ƒZ=Œ/>å¨Y>ò ?W|¹?R”¢>! =쀠?@98?dÃ?Sò˜?I„ý?ïi>ãöC?¡2? n? +>ãÖ»?,y`?€¼‚?Ct +>j²â>ÜrC?ÅL2?ÂÓ?Ëù?Í$??&)?ß™>HSç>=öË=àÛ? ‘ ?5h9?Xc©?t±b?y’t?zé¦?  ª?Ú??»³?b¾ã«û?ñ?©º0?¤ÄÀ?j Ý?lÅ×>ñßp>ãÊÅ?“u9?¡?ŸÆR?žzü?Vú?.K}>ú,>3¡?_¤?¿`¤?¨Iä?zvš?ˆ¢ú?«-ñ?¥Ïz?§? ?¯Å>?±„q?“¤ž?•v?ÍFK?ÐÉÈ?Ÿù,?šIO?Q­?-'?e1æ?}$7?’çÃ?¢G¥?“Ù?Þ>p@´@! f@=Û?ªMž?¼¶d?冼?啪?å¤w?Ü_ƒ?§@?¦ž¼?Ôg~?Ï<:?Ê.?Äâì?`ß/?P]]?: ?ZÐ?hpb?ƒ}Ò?DN¾?'¥?F&Œ?tªæ?­ä?ã9þ?ºO?†xI?œéÂ?­pœ?zhµ>&E?[?­¨½?¼cÐ?êa»?Óp2?9ë²?1/Ù?“5?³ÏªÆ>È“õ?f`;?rë ?ûdÙ@ Ê0@Q€/@h´i@7K?èú @×®@æô?Õü¯?¥‰?`ìS? ?¶ W@ü€?çT×?”š#?‹Sj?…3Þ?”¬?¯†K?™¥m?=ÝK?y +8?ÙŠÆ?¿r?e§!?mÏ–?j“\?{a€?È”?Á«Ð? xÓ?±Ä??pú?9TQ?{àh?†»û?qDP?kQ? ®>ën ?ÈŽ»?çý?æO×?èî®?M~e>ëÏ?Žÿ?°ïä?ØÅ"?ì ê?Ž +o?A©C?Š-å?›}3?„–d?lZÿ?|=?Âß?§k!?‹'²?wr~?Wi®?P¿?5Z*?½ý>àŠÆ?‹Bå@@ +`?ùÓ??óU>?½ >?”k>í*µ?Ù¤?C#$?9ôH>íN~>øqå? +|€?é?mkÌ?mtÍ?lÙm?_î>ýÌ>÷ô=ô;,>%û?$Z?,Z>ñ*Í>íë9?"?É ?%¬?€–ë?›?—oí?ÇIÊ?Í?¥î1?–qm>åŒú>•çî?è%S@ YÓ?Ô~?½Ë?¡çƒ?‘‹?.WÏ?ƒ ?KRa?mò?o"?v¤Â?V[?¬ ‚?”õE?Œ[ ?]æ?£r+?¾Vö?ȱw?["Ë>½À•?ŠI®?Ôù|?Îdþ?Òø?ÅÀ?²]Ý?Êp¯?ó™T?éO˜?Ó!j?‰/û>ÿ”Ä?ºw ?£§ç?mö&?—lY?çÊs@ +¯ @Wáè@.Àõ?W‘?…µH@}Ì?ô”y?éP?$ÛÄ?Kø?r.X?ÐZ–?ÍW§?y…?˜Då?´[ó?¼)7?ß(ÿ?᪡@& +‡@+w‘?ÀlE?±¡“?±™j?²ðè@’@xí?f•¹?!¾?µEŸ?Ì…T?ïkÓ@Û^?²ñÜ?Ô­?à½í@˜3?Ñ”è?±'?± G?±?ªÎ?¦uk?³?âl?èÜu?ë´Á@-R@†Ä@éæ?ãLÜ?Ö@Å?³Àú?žÜÍ?‰Oä?‡—’?k%7?wJQ? ½?nO§>,J>'™>¬Å>¼˜4?WU«?]€Ü=±¯ +<+jå?U÷ù?pèÆ?ãFw?ùÊ%?uùº?H¤?’¢¸?›] ?oùá?@†ß?S?Ø?[óñ?‘YÓ?¯8 ?«ó_?µnŠ?½ +³?µ™ƒ?™|!?i7ì?ˆí?ª?–bM?hò½?y?ˆ?£Î? ºè?Mh?‹¬T@K¶=@C­Â?Nm_?@Ó™?31)?%†M?_ÇF?h˜?Ó??çï¢?K¡?gØ+?„_?•]p?ººó?Ò +G?ìÿŠ@SC?¾kp?Y®x? É'?ü>}?Üf?‰ÊÛ?ŒT¨?©F`?¬…?­[?¦¤ç?'?G4/?J·§?C??š:R?¥& ?Æ.?Ūq?bš>ŸçZ?x‰‡?ÈŽ?fO!?\v1?’Ë?« ®?Çß¿?î?u?ò˜?õÛR?ìüÆ?Ììz?»ùQ?’«ä?ŒáÐ?ý?!m×@dc?ô¾¹?â'Ú?ä—³@6cn@4ÜJ?³†æ?¨?Ìš"?ä@o?¯Sý?ÇÇ?‚ºµ?cû(?Û1@A™J@³#?fÂL?~¢.?­-”?¹i:?îRs?ôŸ@sQ@I½?ûPÉ@ÛA?ß³d?Ê©?ëÌÚ@v{?­²ð?cÞ ?î{‘@$¶?Ñ [?)H·?L^>âi¬?£ì?bEË?[º÷?Aö?R™³?©„Ô?©sÔ@%gÂ@'—ê?àÖÎ?Áj‰?_Œ_?@àÉÒ>àé?1—?(?XI¸?`w‚?îÓ-@õ®?¡?`Ò`?äsó@Ÿ?éPj?‰®V?¦ºË?ìŒ?Å{Ž?_¦?rAQ?ë+p?æ9"?|á>߆Û?¡ ?Çä'?ÜÐK?ßã?Á¤K?Ã|Þ?Á}?§ ³?É“¯@@³@ ˆÎ@ í@±?|ÄÎ?ˆy`?·_?½aN@dƒ@ûÈ?à9[?«ÄQ?§‡&?ª V?×ë~@O@=Û@:c@…§?=?6øÃ?‘7^?–f ?œ„>ï‚—@¸9@&”—?Ásô?\Tk?ˆŽ&?°_2?¬À?Žº¸?«a]@™ä@ÁÚ@ü[@07@)¶@[?¾<¡?­2*?ßÿ?èI?ËZ‘?Ã.°?ÿï>ßD,?6Ï@ +à@“å@)áj@0ã?2g?‚Àß@ õ¯@(˜H@!{i@"MV@CÆ?ûç?èQ´?ÈtÕ?¶=Š@!B?âp—?E‡>Øt?¡:n?ØJÁ?ªÍ¯?µÏ?blA>$/>¦•?—Ó¦?Œaõ?ëFƒ?àÿ}?*þ\>Ö÷?”ìÊ?É»N?¸x?‘±j?~,?ŽIY?Š‹Â@Ƥ@°Ÿ?­Üì?™çj?›õ?y_?¶;ü?ìÞ|?ż?Tî1?N.’>Ø3ß>äé¡>ƒª>Ä8Ÿ?Q¸ø?‚ `?µ @Ïa?ö«ö>þ]>í‰g@6}s@-È[?Êà?™Pþ?–JÜ?ž t?ã(@:g6@1 °>ÒK>ÞÿD?”bA?p]?J[?2q?yã?ªG°?C>Ñ@ >Ñ Ó?ÒÌò?ÜÉ4?¹Àþ? ÀÒ?… Ô?H‡ +?€ŠC@/·@ ?IÆä?=ji?Ã%?ØÍ"?Ã*?½ch?ÎWž?÷aÍ@­ ?ÍÈŒ?ÇÙ¡?Þ +?ÛH?›\›?6=??:‹+n>”?BÅ£?ÃÔ%?Íï3?«;æ?žó6?V[?nDö?®r¾?¼S©?¶Y?¦o?‹3Î?=$Š?IÁ?•m¥?•r?ó¡@¾n@ª8@;á@ ‡œ?Îc…?Îs*?ghŠ?CG >ì·>„Ü?Ö?w W?a%U?‡œ>Úl‹=ƒ4Ô=Óú?%µ³?vØÍ?‹h?›ô?’&Í?CÅ?Oî?Äú?¸š?x¦ñ?Q:=?Qn?Q¦¤?:n5>ä$·>ߢn?`t?{3s?ç–?ðÓ?‡2€?4o¿?2à>úçé? +“ù?U°?[ëU?sl?XKm?o´÷?†ªŠ>Qâ>š%­>ûÇ?`Ø£?~wd?2ä8>Õ >°J¡>êš9>­›=bò=ùHp>‘y¦>wœ§>à,2>àv~=m×;ì@x?Y?,?cµ?(#?‚ù>fS>°Ó<$u@>ÕÛ>ÕEJ?„)ª?e d>íTy>éÙ>³0­>Õµ:>ñ' >ÁîZ= EU>Í!>?R¬>éÄ>?›¹?z^±>zuD=`»º=øD>gg>?r÷>âÄU>f­¿=“€«:evq9´D<GT>ú*€?;:e?„ta>|ý$>Ó˜m>êŠ>xÄ@(¢\?QB°=ÝõÈ?JŠ«?>üî?3RQ?'—2?Äÿ>ÉD„>À +M>šB¨<f€= bY>?·ã>§\ ?"ñ1?]‘?Wg?IZh?Wl‡>á‹©>€ô¼><ºÂ=›Ç@ý @?Âüp?¥b?.hl<ÚŒ>ÝÓ?Ó?Êwê>ò© >æ|>f" >=õ>Ÿ&!>ëßr?'²ˆ?€’ô?éô?"'?²=>»q…>Æèå>-_a=9ç?Sç?­ê7?‘p9?\_w?í=È)?_ K?o/R>öÜ>êÓ§?¡(?°;¥?°JÙ?°TÊ?´ç?;O‰?1 +G?&Îî?O/¹?šñ?”Ó¹?g ’?VË¥>ëk¾>Û Ð=,I=ˆ¦ˆ?>êq?8ÖÐ?/Ú=?LªÃ?¦æK?ŽµL?FŸ8?#¤h>´Wå>½?Æ>ÆÛ>ÚV>ýEF>ò|Æ>èƒ!>êB +>ókö?H=¥â¿=bà¨>ÍX>é½û?_›?‘¬?.Y?Bá?q->¼+t?.‚ó?iü?2>ûÅí>Ô+à>6:>‰Õ×>âZ?t?5€?ˆdR>èØ>ï¥?ab? Î?æÅa?éT?äª>çcŽ=¥ +>¿‡?m?}!?ˆÏ?`@k?‹ë?jiy?'hë>üaö>™uc>Þ–Þ?8äN?U>?¦ø¨?¬?¬Z?¦C?$\‹?#z›?-Îœ?g-?4 '?4ÅØ>Ãj¸>¯õc?pÈm?—•?¹ÒS?Ð'¡?‡áU?ç>ïÅý>â>äÍ>ä~>>äßb>°cé=Ø”> ¤§?d2?iKG?»}¸?µ'?œX?œMª?+µ ?,i?640?:Ë ?7Ù]?4ðÉ?{sº?”Úg?¦Í?Çá?ŠÆK>ч?ÖN?Í}m?¼@?a–'?háš?B‰¢?ES>çÅÏ>ã~Î?MŒ?æU?µt¾?ÕÍŽ?´3·?¦ª?É/f?à®ç?ŠÍ>ã|N>ã‚l>ã™&>å—4>ã…g>µÛê=ì">NñA?ö•?ò,?–C{?“‡N?{ãÛ?€³?9dP?56¨?žš?©k9?¥ƒf?¡Ÿ2?âž@æ?ÆQA?TH?‚?iÄ’?œ2ò?Ü#‚?¿(?dBò?dPB?dX¤?h÷?š“Q?›áÈ?g2Û?d—Ú?¥™?«…?”¢ó?”iq?z‘?dêy?”Ù¼?©2à?Xc>æe}?)¬b?eAi?·dJ@ðt?ùg=?¯–”?‰å>Fí>Ÿ(ï?„5¶?‹KS?·¶•?¼ê@ýQ@)Ð? BÑ>æ;ú>Ÿªü>£Ñ?×ÍB?ýMà?†Dv?3¢?€ Ë?‘‚?%6>U6?Eûÿ?­U3?Y<½>*•h?&âã?À6Ö?Ñë@»@OU?»ž?«5m?R¶…?U|$?XF‘?Tÿ=öÁè=»M®?¥Ž6?¬Ep?q]›?h‹ñ?B>ô -?›gÛ?±ÏŠ?ÞÍc?îüï?yDÚ?Þ?Ü&I@ƈ?š+u?~ü?±•@T?¼ Y?i¾h?À¥?Òžíüû?dÇ?‰äY?.MÍ?9¦?¡­•?®ðÞ?yÀØ?kŠá?¦’ç?­! ?ÛÔÇ?æÁ?šYÇ?†uD?˜‰Þ?™ù ?Ç÷d?ÝR@<‘Â@^ÓÙ?ø‘?‹œ^?•…ƒ?˜y?›/?—ðš?ge?5ˆL?U? 3?Ûk?éò?¦]i>ìß+?ž÷@$?í>í >Ù*a>„2,>™¿?µY?W ?í7­?Ò§–?mMP?ŒÛ,?åLæ?ÎÕf?]í ??ïa&?×/K?Nü@?C¥,>íŽ>ùÁê?m›”?vÊ?óh\?îF?³zò?¸G?Šû^?’S-?Ò 5?Ý©|?‚2&?mÅŠ?ÔkÀ?âô?Ý>Ÿ?àDí@%ˆ@1 ?ÕD"?²\¿?„B2?mÕ»?Ö8?èŠ@Mž@#Ÿ?“UÉ?éÜ?[ç?²ZŠ?þ% +@Ÿ~?‰>Or?„I=?Öµk?ñ&?÷n—?¹ç?'?hm^?5„*?jú;?‰Ç²?bæ=kP?nua@›ñ@ Cq?ì=?Ã)¿?Gq?¨™?²¾\?ºƒ?£>j?ž7¹?Ôm?ƒæA>Czà>ŒÊ>ïÖd?.?üû?ÜÈ> –Î>™é£?ž?÷?Å·?ÀÞI?çǬ?êa’?³l2?±Š^?ù7?¥û@9e@E®ö?·èá?”>¿@]m@ou?À;?¨yÆ?³ÛH?¯ v?ð_?@7?ÐõB?°þd?§{Ì?¤Î¾?˜ó?xíA?oŸ ?k®ø?±Dü?ë•P@O@+®?»ÇJ>ÁBL?ŒðÆ@ +#;?Ò‚ü?$¼u?`Þj?°:?²m?ÓkÇ?¾£Œ?ƒ?‰t>9š>:h¦?"y? bc?j ’?iÙò@^>x@YvÜ?Ê¡?»QL?¾N?´M–?̸þ?ÑÃG?¶Ìþ?¯OŽ?²Æ?™w)?Àzä?Íæ?B +D>»J?pš;?á¡k?²kU?ië?ù>!¹>ë?hÓµ?£¥^@]é@s@ Ê­@ÉÄ@)kŒ@,‚L?Ó%V?ÉäŽ?–Ζ?–s?‰%?s)p?§vˆ?¯G)?~ —?g³œ?–V‰?ža*?ÜÂø?ô±Ä?ÂÝA?®[M?£­9?˜?›“»?Ÿv?½&a?æãu?Ãê?ggã?0¿=¢ÅU>®,×?—oµ?…>õ>³a>®L«>Ëü>éÃû?}Á?’ÈÍ>›½E=Ô/½?цÓ@ íµ?.?•?p,î?³Q?åYº?ÓšM?À¸À?Ä`?Èg +?Á/×?œK?—NŽ?™"G?¥\@C,[@Dú2?e²D?o0Ü?G_K?rÛ ?š~“?˜_Ç@û@4ê?£â?87j?S÷Œ?cÜÄ?.4Õ>ã¹i?G…g?ª§V?¸‚?Ü—¼?É[ü?FB?ž ?ÙêÐ?á|¥??½?ü‰?Üe?øŸ†?ëô?bŃ@«ø@'1@&~ý@)âÙ@ì?ªÍ?!?f&b?vìá?™ÜŸ?…y–??0˜¸?ƒ*>áR|?EªŸ?|fÓ?M¦,? +¼¿>æt¡>é\ã?…[ +@@Oª?ò£I?Öáµ?`‹ö?`{K?>jÿ?Dùì@4 j@Yõa?ý…?§?5à’>õ®”?RÈ?ƒÃ÷?˜z&?Ë…?Ãr?>7t?hÜ@L6@rÖ?¨V9?¡Ia?¥¥n?§Jé?´ì?½ýX?UUq>ÞŹ?`²õ?¦õe?ÄI?ç#?Áq‰?l`›?Ú÷?^)?^*?…ƒ¬?Š¤Ë?¬1?º§³@Ë÷@3Y@'3@ +^Ë?ù¨Ò?åÅ?êÙ!?ïö?ô^’?Ð0è?¡TÉ?\ÐP?\¹ý?\¥š?\#?ïª?¶ËŽ?Y´?ô?l?$d?Pw¼?~lu?2—?΄ ?ÇÞÜ>àÆ"?N?½ÿµ?Òzø?¹ù +5?{†‡@'ðÂ@0§?ºÏ½?£Kd@ 4@>U@ ?¥¸…?±Ûw?¹ëB?«ÛÙ?c6?”Ñl@º@%X?+‰E>ØXœ=íh=¸ßÈ?B Ê?“¶?|(×?*J?U6«?ù`Ò?ï@¢j@!½?CE¥>ÖÙñ?î*Ÿ@ »z?ø¿‘?ÃÊð?Ô?Ö%$?Ø—4@Â@ž[@*¿A@$ L?Úð?§GŠ?ß@wq?ä’?TÏ,?T±b?S]?ICþ>½úï>Žè?${Ú?Sõ ?Q^®?2a¯?A0®?Ÿy&? +“?¸r7?Ð +?Õt|?ÒÝT?¥Ì:?w,?“_T?™>â?Œã™>Ò+³>ÒW?vˆ?9öü?ŠŸ¹?„ôó?’‡,?Á&*?¨F>Ñ >Ñd?)z ?N=˜?rqÀ?‹W ?qü?¯”??Ñ@ùZ@-ý?¿fš?³e?§¡“?·•?Ì'Ã?ÂçŒ?ªã?šBó?š7X? }ø?2M©?BOz?w—??tÁ?Œx?ˆbØ?SH‹?O1•?N?N}C>Í8Ï>`i>÷ÛÃ?NJ©?†ºo?û£[@Ç?šš?¼?Šª\?•B?¦/?ÁîË?¿Ä>õÚd>Îb±?é[-?ìɨ?Ö…Ì?ßà§?ætþ?âA?ç“?ÈC’?ÎY\?8Å>ú ?qN…?‡g”?›ÉY?ÈH}?²”x?›8]?š‹„?‹cß?ohœ?'5.?¬q?QŸ?õt?†õÄ>äÕ'>ÔG‘?¯?ªI?©5_?›¦7?Žˆ-?d£?bÏf?Q<—?@§y> ù>y›ƒ?P¸?‘­?J·r>ý,?œ]’@Û?Ý^y?”°>?Œ_,?„Jß?‹o×? È©>ö@ö=§ÓÒ>•..>Ù?ø?\µ)?¦q{?¤Ã?˜®@?Ž$¥?\<û?€™?²%?„Y>K’ >ƒ>ø> ê6>¾ÓN>Û,t>Þ{>ÿr?¨v?!F?.½æ>ðÉ>æÑã=¶ê=r°=½¦ü>æ{»?%qö>íŒ>ÝÌ…=‹Iã>ñ!õ>ç:Ø>¯Rw>Ó ?HÑï?J@A?Pq?K£Ø?zXà>]Ά='¯>¡“?2?hæ}?5rÇ>ú0W=‰]:=§´Ç>¶=¡Tª<âä­?so>›'?¢?BZ?“ß>„!è<ë,=œÔ#?–Â@I†Ÿ?"£ ?T¦-?bPD?Yر?\±:?p>Y=cºé³JC?M—?;‰ +?sÑ”?f¾»>~©>@×k>(~ >=ïQb=¾k4=ž­E>ñT>îk>âK™>×0?&•Ï?„ìà?zÇ>å‹m>äX­<ÉÖ@>:Û¦>\ã0>£š‹>ç«S>ú©F?'ýt?).>$™ë=ì·s?Rö!?e̘>VÑ[=€®ú>¶ñå?dC>˜'>oE>ê_š>ê~H>ê–×? ¿ @‡è?ýúI?Éû‘?Äá„?¤¹Š? í¬?£–µ?¦8¡?,a¦=Ÿi>p´×>í=þ>¡®G<·Äì>›M>ËîS>ßée?kBÆ?k@Y?k75?k4?¦†ê? ˜Ç?öù>ëD?"ù"?:8?.ºÐ?ó$>Þ —>®?>>xOu=¨¥A=T³>Š"h?gT´?6N:ŽëÀ=8ö>ê ‰>÷Ÿâ?Hœ2?>C"=Ö·=êÎG>ÛF>és >é]@>éC®?¢Š>ùš->Ý–`>øãD>hdà>¡®1?eÈ?xÙ“?½Zž?5ª?7Cˆ?  ö? ?%8Ý?ªO?¸>@‹O@ ¿>ìQÊ>çM°?SÆ?P°©?UŸu?Tx„?ü…>æ¶B?Á²?ëÜ?bI?Õe?WǦ?|K?…-x?‘Äñ?„±Q?eÔö?’ãv?Ü Ð?¾;­?|j!>qt>®–>Í©#>îjÌ>ï$S?¬c£?ä”}?>W¾8a@>àÊ?_l…?\NG?Y0 ?2_">ÁÔš?tÖ?Ÿp…?“Ìî?Ii?[Cä?«8?ªáI?…q[?}±Õ?cÝ¡?c°/?3ÒB?)mç?Žø ?¯%È? 1Á?“KV?ÓX>È5Š?‡D?ZzÒ>mkÏ>f:4>³6o>¸Ã]>¾Ló>È??U>%?Y±?qs¿?lÚa?e¾f?ci5?cT(?cS>>§?<'">~ð¸>ãZð?|/¡?ÏZà?‚ì}>XÜ¡?Ko#?0ɶ>¯á‘>Ëî4?\[? ì?§Ôù?£Û ?Ú3Ÿ?㪾?ɬr?ÅK¡@O@ÿÓ?Ææ˜?‹,\?†Fƒ?yæŒ?µq„@yg?ÜŽ`?ƒ‹q?‚H?k?t'W?Kžú?Pÿ?daˆ?f +?ª¯Š?«f]>â”<Õä?FŽ?gΠ?dÖ¿?dàµ?˜™ ?«g®?‰n>?ek?:ô¼?V?r¨¤?¬µ?’¥ý?;ü?AÉG?eœ%?{+?¬OÉ?«C ?»·‘?Às:?=!5?9æ±?N`m?DÑa?¬ ?ÂŽµ?†bz?f„? Ÿ(?´·Ú?i@Ü? ??{?d6g?Pé>¢â?e« ?Êt´?ϱ>¸ƒh?CB?Ìn?¨éß>ç¶À>ì9V>öjë? §?¬-‡?¤æ!>è'2>âû1< à€<á­?YÅ”?_R?×£?á\Î?Rî‹?1;Æ?Œ‰*?”Òä?¤R_?³Í +?4Ø>žº?uk‘?µ\À?“æª?i–@?Ž¥)?«—??Àò?ÇW¿?³X˜?—ŒÌ?‚sŸ?j* ?Šsé?¯9W?A?ýÅ?&j?j•)?SÁè>¥ÈI?@!€Œ@"ŽÍ@›{@c]@-kv@-}6<¥‡§:™«?c‘«?kf{?ß„?峄?B?+åò?›¼é?¤‘¨?Ò¹Þ?Ü_d?…‘Â?f›á?³ ?ÜÆ[?žO@?l-o?GË?±4û?èÌù@ª¡?»5;?Ò?Pw]?!?é?| ù?¨z‰?|â?+Zÿ?ƒFV?ÅÏØ?™[?É›?Ÿýþ@Ã@¼Ž?íŽ?Ù!^?²pó?}L\=ˆ>î°Î?¹×â?’8>:2ü?Ï?ü³?ÔÏ>™*—>Ðæ;??‡N?AHœ?mv5?¶P?ïh%?ëâ?mˆÅ?hË >§qÄ>Ÿú"?\W?PØ\?èÛ?ŒÍ^?°?²>?„/ê?y=N@ ¤o@‹„?ÀˆE?²BC?B2?m­¡?›@›?ž–$?£ž?¯#Í?ß½?ß·a?€aå?Qsí?Á¼;?è= ?ˆý/?.çð?Uì{?m2@!@…@X‹?áÚæ‰>t®?†ê?çß?“ë>õ¦ú>ío¼>ð; +?8þ?~ü®?”X`?¨ä2?“ç'?mEx?xË?‰:õ?ªç6?â(ƒ?¸Lÿ?9ÿÃ?wþÊ?Þíü?în@')W@\?†¥`?ÈŸ?lØ|?‰ÎÇ@ Ùæ@ ¬F?²“·?º‰‘@0ÒŠ@+¾Ô?§"?¡kÖ?©²?¸?Üög?Ùåˆ?ì—k?øR·?[Qb?0(÷?¥Ò?ºÙ$?ôD?ÿR?¸¡?£1±?“² ?†??£ø€?³^æ?ŒÙ ?k‰{?0^Ç?„ä>éÄÇ>Íì¬?Gu‹?€lÒ?ŽûÞ?¶Ã„?~B+>\†?GË?êà·?ÓO?œ’—?•jN?j£?bd?L ?†øà@I@á>ìËÈ?ÖW?Ð/¿?߀?ß%Ó?ÚIü?ž ¾? ²t?¦ß{?­?ó¼X?÷P‘?ÁYï?©ÛD?üº"@Ùÿ?¼ó?|ê ?+±Å>é!?23?hôO?„ÌÝ?0±?¢^Ö?Æ$?Ρ¯?õWÖ@¦Û@üä@ +Ö?„8?–Kÿ?èät?æ¯^>Éî5>çª\@+‰¢@-Õ@*µò@%¹?·úV?¡9$?ª€c?­’;@Ž@/íÁ?­Öã?6›k?n†^?„¥U?ŽÉ?‘L¡?¯»t?ä?Ñ/B?¬X2?n­/> Ò?.ì÷?.’&>Œò.>: ?&¹?ƒŸ?J­œ?%?ˆ>åË >åÀw? OÐ?¯³>±P?°ñ@â‚?í?å7Î?·@á?‹©¢?¦cÚ?ÄÊ?Å’A?Ôe¹?åÑ@ +©Ó@ Ü—@ÛÓ@ Ví?¨IW?¤:5?Âp3?¶ïF?ªË?«¿@$9ã@:©Ü?§L?ËU?2†¶?Q]«?'^,>çϪ>äOˆ>ûQÄ?4 ?ˆc‡?‰-?c4+?`Y)?byá?kõ> Å=û­°?mî»?q Z?u¯Q?cR?mxL?‡»í@Ëí@)Ë$?ÂGÈ?8 €?B„??@Á?sK?¢Ö?«¿4?›¢w?¤äË?©R¼?¦ó8?a£*?aŽ®?ÚU~?ák?¸›÷?§2?jd=?9 ”?€¾˜?Ÿßï?ÄŠ.?á]%?†úr=åd?å?Ó$ü?Ó¬¦?­õ6?Æe{?µ¡/?§kc?,6Ô?Ô–?æÏÝ@ 2*?î·?Úø?¥¬$?uÒU?:¢²?!?Ok?qZ½?C ©?j.? îº?_A?fÈ?Ü2?×3Ì?Ò1†?Í4?üFŒ?ûE ?’[·?7­Ø?£ n?Ï;ô@DX@B×@"?ŸqÚ?‹§–?Ÿ›?)2‰?Âõ©?³™V?ƒtj?vñŽ?‘ œ?¡^?¸Y?½|K?áœ÷@(&í@'/¹?ƒ†Ë?qâ¨?[‹?\nÿ?œïk?¥1»?¨í»?›þ?xŽÎ?Iíž?‚ w?±M?š¦?[Š?=Îâ=L>=šs}?vÒ‚?àÝ?„»ó?”,Þ@ŽÓ@0³t@íñ?ÖÌ»?†¤=„õÔ>ä«k?¬¿™?š‡?žð?´ë:?¦‡d?£3@­£@=)Ø@#@OÏ?ùUr?îZ?¯KY>SM>€Šë?eܼ?8Ç>Ð'R>×ÄF?õ Ø@ +2W?ÆO?¡ÒT?–g@?ŠXæ?©æ£@ ¸@ºŒ@€í@Á…@RÚ@ñú?ëþ[?ýNH?¾g8?VBG?‹Ùš?Ö%?½[EC*0?æ,c@mF?¤+”?‰–?Ü´@0ø?ðkç?X|F?mà”?ÊÓP?¾÷ç>þòÑ>Ô?W-Ù?yf?¥ Z?Ó“A?ÓwV?Ò·‹?Ç8l?jKÞ?vw?Ær¡?Ò»J?1­?Rx'?UtÕ?S6·?d“ ?Ž¯??‚ ç?-ûA?ì‰?ˆ„y?ºÄV?š}‚?KJë?PðZ?I ô?@ò? ¡Ÿ?ŽhA?xTS?SÞ(?:×ñ?g¢?IeÑ?ÑB?Ôœã?©LZ?¯KÊ?m‰F?O??ÓVG@Œz?ö?Pî?a-f?¬¯4?š,K?hѽ?.rÖ?.O×?N«+?jc«?šÕ`?•Ûi?Nh)?NZ]?Vl˜?Bf6?MýÒ?bà6?l§)?šiZ? æ?c.?maÍ?/Ë¢?o ? Ø>Íñ¥?"6™?Ͳn?Äú1?>õ??d!?¦é?±®Ñ?¥ +K?š’V?’dçü¥>ÎT¾?Bþñ?Š¯r?»”@¡Q@†ú?›!W?›2“?m7 ?q·Ç?=ªÆ?Ï­?&5*?O¸t?„@ý?íY’?s2?vu¾?º¹&?Ñ ?Å'‰?Ãáœ?¡èÝ>×1>Ûèœ>-)>às? ÎÍ?JÅØ?Ï#?.R?FÊ?w|(?uHF?(âU?7?VÔc?WYè>÷Ûp>¿G??±P?0Õ?}ï¶?•ž?pbF?O˜™?5Œz>æ”S?"ÐÝ?G?‰°t>@õ2=ù…;aõ4=Hš`?Œü3?€/ô>î±[>å$Z>´`R>ÏĤ<݃Ç?4ö ? Qp<Ëía>ÙA[;y_ =xµT=ý©=>@þ>‚Æ>ß™_?ný ?)<Þ?ñ`>Ö¾Í>¥s;nª<™¬À=­ž<†§B>+xÉ>âÚi?šO>ÿrÃ=…áã=›â´?‚ãÜ?@¼'>Îäß=Æ?p}@…ÃÍ?¡9²> Lq?Žð?͘=Ûx>K¢?=ò? ×>(6z<ë! >Ÿ…>Ä>·ð,>Ô}>Ü€¹>ÏXÅ? ?¢>Þõà>ß„J?^y?Ü>ûZ;>ážo?o‡?Vîi?]wF>öw`>ãÜu?~8Ç?¡ô?Hc=ú>ô>xf?L?G>Ýö>æõ->ç;”>ç¸>éæÅ>µqÂ>ÌZc?Chh?D˜J>èÛ>îOF@ é@íý?F‚&>é·#>Ì€@>¬ÿö>Á¬¨>ê<×?[?5·‰?„#Q@"‘¤@P,?•X? ?XüW?PE,?ha?k è?kø?k.?—½ ?¯Ž²?+Ð?V0N?œI=¤™m=ú!h>tŒ’>«îë?n?+À÷?§Ã¶?¬A‡?EE>êð?xöÆ?vÊÖ?&§P?'|>î•8>‘v¬>¹]1>ê‡Ð>…~0=7î­>WýÞ>ê@ >˜Ö<#~8=jTB>%”? 9? ã¦>©»>™'w>fü>2šj>Cb&>T i?pø?1ÃB>A˜>¾r>è¢Ö?L°‚?ƒŠä?š¦×?ºÍ„?к?à›r?¹¬?nÌU?il÷?gtÝ?gŠ\?iÖØ?r?_/?[ž?gÍ?eÛ¾? ƒ¯? ÑG>$ è>Ž³?•vð?©Aá?\Pl?6g?¤ãò?Ê¥ò?ÈÔ–?Çb?¶?7j?†þ,?Ð õ?§ V>åeÏ?€?&†Æ?8qÖ?™*ª?öî?~fw?wî=£Œ<¾ñ?I†[?dšž?Ÿq§?«îë?4†>Õ÷?¹Ú@nè?Ñ]?¡6W?‡$á?J$?YC>¿µm?Àø?„èú?€’ ?‡×:?Žñ?ʾ³?Ék?ÊMÁ?Ä…? +w>ã}n?%½?7ëU?Wî·?cc¥?™E>À9¹?òD?&cå?D”¯?xP?.jH=rb=«¹> >aö>óR>ýÒ$?â—W?ã2F?®(?ª†?‚Ì>ïr…?¬$ô?Ì$û?*z=‡N´?…?‡âJ?‰á7??nê?cO?QÑE?ç¿?èp?7ãÊ?=¿E?¢|?¥!¤?§Ãw?ªgs?’Øä?»?–é ?Ž9?pBü?XëP?”˜»?­7†?±!b?µ?³Æâ?ªùò?¡¤I?–M?„‡?ªê?è6?Ní)?bµ¦?«B¾?¨"r>åL¶>ä€p?Ùôv?ä ?ãÂ?áÚ?G…/?ü‡?HÐ?døE?[mL?QÿR?%J>‘?7c?eX?‚[m?šÊn?’ªç?†·Å?w±¹?èï?-ü?eã?gÌì?ŽÂ{?f?-Ü?&Ù¹?1Ù?7ÛÍ?`²Ž?f…?G¹"?Bšn>¨Æ"=ök^>:Çh>L#-?"XÔ?{U}?3²Y>²Ã™>©­j>ÔR&>ÞÁ>ç“u?X?g¾À?LL>çá??oÏ?ª`Ý?­Í?Õè$?Ê{-?hVG?iˆn?·3¦?¹ë?Ã4a?½É ?ú?›@hÝ?z´>Ÿ¬•?)2Q?;†ž>í´>Íw?ãv?-Þý?To×?i™l?¼Ž?þ|@5R@+Ð?Áî?E¥@?¥Q3@Ä?Χv?QÃ÷?TÏ’?Wã~?‹ ?Þ "?Ɔ`?]ÎØ?yïÒ?¯Ö´?ŸÃ>êõ?&v@ ò@ ö?á?ÜÅW?¸Ö?º"@>úÖo>ë€>®ƒÄ>à é?µ@?ÄM>¸4U>6"ô?•Ux?¤š»?”Ñ;?“¦W?¨Ï¨?±§?Ï]]?âsL?Ý"„?ØÃà?þ|@_@ Z@ s¥?ØV7?¨-d?# =8ÉÜ?fä¹?ã½(?êåe?ìÔ&?·™i?p1?uQ?vo?k&?LT?6%?%í,?†£¹?Úª{?ËK÷?Å1Û?‘á¸>wH?,UÅ?=õž?mVý?Œ$³?ã¤?ÊÏ?CÚ?X ç?˜¾t?šïE?àgâ?àRö?Ò<„?ÙŽ¾?Ë~O?Áé‚?íCD?íQ?³Ef?´“?ê? "æ?gàû?mS?¬Li?²)!?¤©Z? 6¿?Œ¿î?”:Ñ?ˆ¾?z9{?¥:û?²&|?™eŽ?Žæý?XÚ?F­@3¨¿@sRp@£w?²¾?²é?² «?»bì?¸ëi?²LG?±þj?Ï=M?âzS?ÂâÒ?©«ó?Il>›µ ?Œ«Ç?óLà?Ê:Y?›U?Ñf…@'e?ç]ë?wd?²šÞ@eB@b„@ªÆ@äd?¥O½?šV»?^-?yåD?¯C@?º…÷?ì§?ùp÷@1]C@2÷©@<]˜@2²?Ç?8‚ú?‰¹?É?ù¸Õ?«->Ùü?c*|?ÕZæ?µBÓ?j¥C?[V?D6€?'.=æÞX?,´@Lý­@5‰³?aIŒ?]½?ç?‚âß?–<6?œÌQ?½8?µéD?¯£'?©UÅ@ö@!?ð—”?í"H?ùÉË@?â?ïiN?ç8$?ÃhA?««+?¨1Y?¦˜ÿ?©VO?®†¹@Šò@+ÍÂ@?®QS?‘¹â?8ñ?Ar$?7à™?.Å>è \>Îû=Wž=¨ó>êìX?_ò?óN‡?úák>×0_>ÇZÄ?¿?³?Ï°¾?¿Ò?Ön ?ŽÊ#?C·Y?v;>?“[£?ç!˜@8+?åîê?¬óÖ?•d?oŽp?¶yÌ@ >—?õ=‘?Ó ˜?¯œº?0ðÄ?6ß$?”û7?ž X@ /@–´?',Å?ea@×@bì?¼q?™+û?‘)Ô?œ~?æÈ‚@U‡?ÆL1?ŽB/?žh?¼ó¦?ºý$?«†æ?½þÝ?è®°?ð‰@ǯ@SR?s+u?{Cô?‘ +C?™F?é°i?å¹N@R©@ ?ª*é?}¦¹?åó>ÐË?1¶ø?c€?\Õ(?Th¢?w![?š’?µ[ý?ó ?Í?QV?@a‰?/Cœ?gì?©Ÿ?©ýn@!1ã@&Çl@ +,?üxŒ?ÞwK?â`â?š¤?-@3?Ê0>ðv5>»G3>…øÝ>Œ<æ>óºp?Fˆ¨@ +ôx@#?Ëg3?ÂJ|?˜“w?¡âÏ?Âȸ?Ê™Ë?¿D.?¶3½?†ÚY?`ðú?ÍË@ ?ÜÖ?‹¯M?b­è?;ö5?UÁ±?_xE?o›½@úˆ@÷?Ÿµ¸?£åÒ>*&=iè?H)ƒ?„4$?ƒ•Ù?ƒ—±?{v1?Y¹Œ?\?Î…?´ Ù?_F7?_3?_ð?X$?ù\?;Õ?Ùä÷?ÞÈà?ÝÝt?ñ*R?§ÄH?ŒtÛ@²@Wù.@*¯†?ä5K?Èì?v/?€mþ?tØ?l«¶?Ïí2?ß*Ø?ÛAG?ź?"q·>Ýh>ßê>>Ý1Â?<‘Ö?€Ða?qP0?aÞ?uÖX?…Tó?˜˜ö?ÑN'?ÖáA>ÞÜ»>ñ ‹?èC·?ó«D?­Ä(?¢¦\?™´:?’Ùê?¦Ì?Ŷï?²Üí?[i?5}È=‰Îo@ Óo@;Ü?‹XY?\q@ØÐ@C¬ï?ñ,?Z» ?.>µwò>ºeï?!3ï?NÄÉ?J€?3ë:?‡œ^?•½š?ö8ô@2ü?Õ ?·Á6?±›'?­RÐ?£Ä#?AÀ?_ÎÃ@ O›@ pÄ=¯²{ß +?ŽR?  ?H²Y?,ð?‡c?˜Õ?”˜b? œÚ?ÕßÕ?äiª@´¢@8È?Ž£p?•Ð¤?›â{?…†Ÿ?ÍòH?þª.?Í ?ŸQì?Žý ?%ªR?HÆ ?,žh?é?–d?¬pá?»Yü?Ñ…‘?’Ù/>8>á+Ù?±Ì?¥”?·¿?ÀvI?— ?k7 ?ŸÐ?œ…Û?œÎ?jü?vÓ%?„Ûd?}Q>Ö¨6>²>”¬·>Ñü?>}?¾®¬?²%¶?±¥ˆ?·›þ?®Å_?¶Ç¶?Ùà`?ÿ¶ð@GQ?ýƒø?óH?½-7?¶ùY?—) ?…Åú?¸H?÷÷š?átÝ?–ü2?—é?ò ?ëËÁ?®ðX?­u‘?®cÇ?… ?1>åÐz?P?¯®?£6]?loñ?nÏ–?ƒÓe?C(?~?ý>ߧz?ö?mq?½—?\˜ùUÔ>üíÊ?Uúâ?nÉî? T/?2?Ö¼[?ñµ˜?Â)?•L?‘@?N?Nå?2/?#I¢?RÂ?N¹Ð?ݯ>΋~>Π½>è ø?¿>’áÚ>µ%Ã>éTŒ?Íæ?6žÕ?O¡ç?¤Ò@Iå@?bS?³z"?Ÿ·U?”md?¥Sù?“»S?W³Ô?“ž=QŒ´>ÁÌ?qo>Ïa>ÎÙ>ÓCµ>àØÖ>Õv!?OØÎ?S2?DìÄ>¶SS>Ø}›>’¯G>¯Tq?J®ß?WC>$®æ=Ák’?#þè?Y?‰²¤?°? >Û%%>ÝV>ÜDÉ>ÉJA>¸0Ø>ë²8>Þ±q>ÈO¾=J +?LÕ.?/Êx?…Dç?bì?LM½?+ø‰>¡< 0>†u²>ÉjÒ>P¬->E{>Ä'¹>ÊàØ=”>¶>–¬>mΆ>-¦Ì=Ù²r>†¾³>÷n8>ú¤>úAg>dp>j6s9ª˜œ>‰Á>FH;`:=QÇ<>iOþ>º 4>™N8>cä =Ö…Ü?šûÒ@‘,?Ñ:!?Í£>½D>ÏÇn;… +¬?8@? ·Î?™??¸?Lù ?U9?PÞŒ?K ?E5 ??Sn> +É@><Ÿß>Þ»í>ã,?3ÏÍ?;<Š?–^>áj ? Nº?}•>ýMí>âsq>ã©5? ?S&>ˆ¾=»ö>±¨6>Ø(K>æ7>æË’>çÚ>çWN?{ßÄ?Ÿ©¹?;Á£>4>J·E>è·ü?OL?³ŽÂ?¹xù?¡Ý?™'O>—Ú >Ôê>˜{>3@>>ÚÈ^?-;ó?ƒ6Ï?Ú „?½’Â>›ýÿ>‰`˜>êÉè>éÀé?D.ê?S70?]õÂ?h>®?kƒë?oí>ÐË}=ó ø>õa_?8>È>àÆö?¦‚3?›–Þ?”h?b†?]sn?OŽ;?©Û8?²¯î?ˆ¼>Þ }?t±è?”Ú?1Åæ>ü +??B—?i•¹?jÙ?fÊì>æ…>‰í?KŸ\?1î¢>é„? +{?Oð?<6>òÝa>ÚnÌ>yF,>ˆÙß>EÅÕ>¢$?”o'?®^+?ÃýÖ?ÅuC?ý=rP?F‚Y?¦¿Ñ?«V?­°Í?vm >é^é?nRä?ÞóÜ?° +þ?„Ü>è ¶>;Ow>¿Ö÷?¸‘ì?­aý>›p”>’þû?'[›?C¯Ø>õš>à{?}hú?˜t?ã +#?ü5u?‘ž%?µ±?.‡>årô? pí?#F?T»ç?£!?Ç°@W@8¼?ÜŽR?Øî*?d±6?f6F?ª>Œ?©§I?ªîA?«Cæ?¡€?›‹?YýÄ?Kh?8î ?+M>åƶ>Š£g>ž$>’Uþ>ä´?Og-?€—/?®â'?¢¼®?éˆ?”9ú?¡p%?©ä?%Ý‹?A?"€?8F?«W ?¹Ÿ‰?´62?µò4?§x’?¡±7?§ ?ª\K?x}>ïbŸ?b€A?âiV?Õ»Ð?ªOý?¢S˜?fD?f5Õ>þóŽ?íÐ?š”ï?›6"?…P?† ë?Ïer?Û,^?ÉÚ??Ããq?„Z$?:³ß?.D„?z8?!? Êè?_Ž?®Ò?Ÿ.?cN±?qÓI?¤jQ?ž\ ?5ç¶?8ˆT>ñ­>㆜>E?y>Q‚>ˆAa>¬Õo? ­?mb?k@º?™ÀJ?S_™>Ëï)?=\U?¤&†?lƒ¥<§„S>“L÷?«*?•!:;=Š‰;?­žý?®ï„?·?Ÿ'?”:]?™ö?'nÃ? $>—'×>^îä>œ$³>£ K?ysA?¿Ä?³¬l?¬e?±¥÷?´ò?•µ9?/àv?9Ž~?eÄ2?oÍÛ?ŒT/?ª,?·qh?´Tí?žõL?˜Ñ?e?%%Ù?MÁl?EwI>ÿÄ>æ°p?eg;?„P?ž* ?­;@ +.Œ@-\^?¤|Ý;}]>V&>çqñ?òT&@2i@2 ú>çÀï?PLû?áب?áéK?è ô?Ö¢¤?h7¯?iÅ?‚?€—?±Ø?}?Dæ¾?UØ?‘ +ò?ˆRb?h?i )?‘öâ?Ž<Ë?h‡9?[æ?¶Ö?ϵa?»›?°aa?‰˜²?i¿#?)E +>éè?Pdâ?™X?rŽ%?K? +µ>þë?!Íí?f,R?z>€4v?jòU?7š»<º˜´?'Ç@G’.@6X½?¹uí?¿Ÿ±?Þçå?ÏX“=÷ V>9?Ë? Þ[?™ÊB?‰pt?UÏ=ƒ¹:?š¥`?³H=?ƒ§°?{‹7?x?„zÎ?u9?l ÿ?ua?‚€~?ô1G@Ø?òr‰?Úò?§°¿?† +*?*:¶>ìŽN>>Þm?Hž?²Ña?±'ó?¬¶œ? ?lÙ6?láU?lêï?a.?MeÈ?‘þO?ØÃÎ?Ìð3?±Ï·?»À>5“>i h>v-û?%@=?À¼(?¶Ùˆ?À?æ?ªB×>íK?2??Ó.¶?Ê|?–  ?‘÷¼?¢}?g]@j…ü@bˆ¸?íhœ?í^˜?ê_ï?àd=eËÄ=Æ7?Öó?Ò…å?²‘?²E?Ø0?×›†?P2:?9:„?‹û©?•7?Æm?ʪ½?Èy2?ÆIR?f„ƒ?5û„?§íp?½b¸?´; ?±ý?±ü_?±öé@*M@Oš%?¶ð??Œþ?¹bó?uèø?'6Z?Ø(ê@lö?ß&É?·T+?¦ì·?ÞÃ?Ùˆ@«?µäý>&?<Ýj?±›Í?Û +@á5?û!ò?}i‡?[Ä? +fÃ?o`?l†×?„¨?´32?¤tî?F%ó?ˆ †@ ã-@Ù0??‹a?b’.@Þ@Rž?êÍD?ð€?©E>?¢'Ä@,Iø@0Ùª@$‰Í@,uN? ^> +Üê?ÅÖ?ëõ?¼ýÉ?±Þò@L£@)‘Ç?æD?¼ðc? Í>¡È>ãŸÕ?%SÑ?µ @‘°?³Ôw?^ _?(Q?ê¸?¬£<>¥I?0¢ï@—?ê÷?iíW?iÚÔ?iÍÐ?mC?ª†ê?±oy?éŒj?é{»?û°€?ù?Y?MÌò?Òg>ÝsÊ>Üud?Mˆn?iVm?ì´@ ê¡@¡@Sû?ë¿?Õî¥?í} @ ¢Ê?ì;Ÿ?®>{?€t>è-Û?+D¤?”wZ?†}? £?ð8?gÉw?W¤ƒ>ç©@>÷ì–?ˆƒk?ÉW?£„å?”# ?¿Qí?É.~?§¡?‰=?‘‡?\š?‹V8?[J?Ï^7@ ïB?¿þn?iŒX?ÀPi@ÐR?Ù q?³ƒú?à¦/@Ñ?ômT?e÷°?eç?e×Ø?|Z?ü(^@!“?¨VÒ?«~°?¬_•?±ñ@¨þ@¦Û?”Kè?eÞ?ÏÆ;?ÿy?ïF?Úh?¡˜µ?d³â?Š®»?«sL?΢Ê@¿?ó4Ð?{c‘?x?ù¨¶?ࢢ?Ø?"9?àK¦?ë +‚?ØN·?Ì6v?›Î¿?™Ã¾>ÏÅë<‡!?ÑCÕ@#Iä?ž>?eô?XWÜ?ÎÂ(?ãiô@CÅ?÷ ú?_¢?‚î?ª +…?©ý¿?©ï±?©è®?u¡?-íö?±–¯?Ç=ƒ?—VV?ˆ?±‡Ä?ÁÄ?¶k?ŠŸš?¥o?¶Y?¬¸?©:`?¨#??¶>?Ϥ%@Tè@‹ ?"%ó?++ì?¢¯`?¨ÌÌ?¶f¼?ÆÚè?L?a„Y?eŽÄ?~ì?¯®…?Ò;?çôP?úÈî?ØFå?¿Ee?Ày‡?à*a?Úºð?WÊ?_S¡@Ñf?üïJ?«‡9?˜Õ?C`©? ä¥?M‰f?xˆ´?¤Ï?¿Y7?ÊÏ?_&%?_?_W?gÛL?øB?„4?Ýk?Þ°N?RJ ?9é´?QF>ÿ¦Ë? OC?Þ*Ø?ߣ×?ÞI?”ï>‡ÄP?5Lâ?ß Ñ{>ÿÛ”>ÛY>é.?eÐ?@¡?òýÄ?êNM@¡?›ñ¶?¤Å×?|Ž^?ZtP?ÐÝ@y%?´ø?=ƒ?%ù>ê ?#ê?µvH?¯ÖÚ? ¤)>ç¤?DÔ?«³ê?‹Æý?x ?mu?X·N?…†?² Z?Áh“@¹ @!bÈ>Ü@}>¼¾I@Žž@!Ñl?¸Tã?W„k?xƒv?…Ä’?ˆJ@?£þ?¬Bð?ùé!?âæž>Ç>~M,?xØ®?“ž›?ÙˆY@ +!?úÍŒ?ÕÈ ?׊ ?è#?ó–ã?îÂ?…/?¬›‹?΂¯@3*4@jqq@(J¿?[n?PÝ>Ô6>Ôd?õ5?|p?©"¬?–W?±çI?žœh?š—?€R¦?m™I?³üˆ?¹Ñî?&P?ߺ?¾ÎJ?Ò;R?Ñ…­?ÌG»?Ã×?®hT?¡ž½?_1B?w> ?mm£?Z’©?½KÃ?ü2ª?Ó®Û?ªÒó?±r„?¶3?° o?QåŠ?Aa?cc>קö?n°?ÛZµ?ÓO ?=´4?nn*?ÄZ?ÏQJ?n½j>Ϩ$?.?aôö?€?ê?ä“?ê¡?ŒBº?egÖ@Y3@g!)@2ÞB?Š~¡?€ÔS?¯&?µPa?9ÉV>ÿ‘M>Ü6®>Ííˆ>Ò +M>ÍÚ >ÐT-?&?‰G?jÅŒ?š³¸?©:´?œ [?rS?M»³?MÂE? 8 +?Q@…?½ÞM?õ¼&?ËüÞ?S±´?O‰Ó?M÷?N? Ë?˜„×?–™=?ª’;?~Ý@>ÌåÏ>­¶ =ˆ¤Á=ð_?* +?>f>¡ìÙ>+&ð>Ù§?OË?q·Ò?Î"?ï6G?zf+?¿—?H?’? p¸?‰Ø’?П ?Áá”?¡Pô?„y?RNñ?RŽ3>¶L¨>·äg?3@&?PÙ>ù >°è >¡/9ƒi!:=|=|]ó<Ž p?E»s?‚›?Gfn? 2>åk->ÛM>Û£ª>Ü,ý>šV>Q’k>R_c>Þï>ÅH´<ìÜA?{N?•>Óml?«?‹‘o?œ +ô?dÝp?aj<ÊÎ<;O„>Ÿ­>²ã'9ƒü>'@?E†ò?ÇW>˜´]>ÎR)>õjÌ>dz<½ð>µ#8>ú9>=™ÃX>\LÆ>à#>¾Ú>››ª>þgT>Ô =ïP >Hë<Ð&º>)×>²œs>Ü€¿>¤G?à¸'@­aÈ?’È>ØNï>òéÈ>Ù%>¿-¯>¤§?W,²?„`Í?XÀ>lþ#>tl>Æái>èó?W@?š'À?‹w<°´=ëÖ>Xqø>Ÿ‡>ß|>éG€?/E?"i•?™¾c?Ð.B?Š;ªg <éGð=Z@±=ŸßŠ<ÌAÐ>3Ó>‹>[à`>g’]> d`? rë?x±?=@?Lö>?ˆ\Ò?‰æä?CMJ>òŒ÷>ì¬?Îb?¯;?|,9?~à=2î>þ§? +3>½Õ>m‰Ì?9ë"?Œcð?€Ø±?j„ +?L +€>ê¦Ñ>ß]ð>=­%:Ù?R†?jè¢>OJî?[ì?¡*?8²>™œ6?|ýé?êÝ?²Z?6Ì”?EÍÄ?TºÖ?M»>¡“Ì>ÇYéf>©Ñ?J͘?g¡í>:];Üe=$" =›œ=3¿ð>N>²ö??Ô¬?œÇR?kf&>éaØ>ô ¼?"Ïj?Nj?V?ýå>´/º> jg>èiÓ>è’–?ö.?–KŸ?îËÚ@`š?=\>Øω>àÌ´>ç1»?>cr?h„~?f„£?^åY/>JúD?ž?}??æ©|@i˜?"?ezÑ?>·_?¹ ?y?«á¿?“å?mÞÞ?á5< 2Ø9 ÁÈ>Ï?ª8?¢R¥?mT ?lçƒ?òM? ?ov?#µ>ùKv>ãûè?lž5?…šO>ªèö?„0?rdð?M¦H?+÷ª?hú~?¯`{?å>ãmk>ÉÔ_> Ɇ>6‹R?ª;?+¨?Ž?‹(k@0Ÿó@<ÚÞ?é;?έ?Ž!?klQ?–}G?ªDÝ?‹¯‚?bþ¦?bú?c3˜?foF?gê?häÌ?bí®?a\?Rùl?WÕV?ª1 ?ª t?fÈ\?bïW?â4€?ôgæ?Ƀ/?¾[q?G>ã\>ã>ã ?NÜ?ŽÑÝ? ýæ?É&?¯^N?c.§?„þÝ?ÎeY?ÃmÅ?:™W?0œ,>ã[ô>ãdm? pï? Gá>Å­=“5M?ƒÒ?ª·t?4½‘>Ór“>MðK<À;m>eð«>ãåp?O#?ªú4?˜Z?gtÛ?¾?žbÎ?Œœh? bº?Ó¡>äg¯>ã6>>Œo¶>ž˜>‰É=üsº?Nô€?i*`? ¥Æ>äðÈ?FKØ?~{?Âü"?ê_³?ôÜp@S?¸½‰?19£?EùB?ežü?j<¤?‚SÊ?–Ž,?è!?ë.£?ú ý?ûä°>TŽ%>>¢?¿[>?Ê^ð??Ý\?£Ñ?Æ÷…?â—ƒ?µÛŒ?ª2p@y1@-A?¥`½>ç?™#Š?๸@f @4ëJ@ +ï~?ž†‹?’Ëu?ˆ?‹D®?Ž Ñ?¬Á?ò¼t?Ö)`?h5Ä?k5ù?\˜W?G´>ˆ 4>ŒU\?È`?ÊéÃ?°Ž$?ªˆ*?ι¢?ÚŸs?ß²¤?Ù°Ï?ï[½@§&@í‰@ +$?‘µŠ?6…4?yB;?~ò?Ç*>Î1±?jJm?«Æ?’"ø?l,U?5+>êPÝ?š^r@O!@ zN@ ´j?ïT9?šþ&?³ÃÑ@“ +?ÖÀ0>žÃ ??À®I?²„Æ?©?%xŸ?£ ª?°cÇ?ùL¬?ëe«>í¸‹>ç!?£é™?ž#Æ?&Z? ñï?«?^¬?Žð:?“À6>š==¸%W?|?ŒK?W§?lDÉ?ø}r@þ?}"!>ìn×>룗>å“”?ªÅ–?çKÙ?Å_+?±z—?äƒ`@D ?ü^?ÑÉg?·“b?8Š?{|–?D]ý?#|@ Îõ?ÊÎù>ÊÃi>êb,?*¬÷?0Úa?Zö?-`‘=¥Ó>ç­?êÕq?álž?±òð?¿M?íHw?ݶç?„˜ ?£¿@(ÖÐ@¬B?Á7«?½6m?DP´?LöJ?‚'?Š¥ù?Ö3ž?Ξ[?ã¥?Ú±)?ÓÀ¦?Øa@Eˆ@ïà?»±x?±ïä?Ü¡?åÈÎ?Ä6Ê?·Îò?±…?±ß“?…å¡?{?!œæ>íÈ?Ùv?$"•?º?‘žÄ?·ôÈ?ÞWÜ?¥Su?léŒ?ˆŸ?“\?Å'o?÷ËI?“pØ>™æû?*t?”×?™ýê?’4?•b?¨”ï?ÃÍ,?ìc?ì\³?èþ.?Äøˆ?yë?‡®É?™TÕ?‰,Ú?\¡?g)??}q?Mã\?­t?¹Ñþ?å=H?Ú +à?­b®?·¡2@è@ù?d—}?>’{?ª¨k?°ž¶?å‚x?ëaž@$ª>@(‰H?à®e?Ñæ?—qÎ?† %?‚Â>’4„?@Ì?p¬ë?˜öv?°º?’°ù?h?ؤÝ@%$Ë?æôâ?[Ø?¹eS@)Q?ø L?°<?‰Ÿ¼>ÐJ-?ãs?šqÁ?™iŒ?iÊ>?ˆNÈ?Ùê•?Ìǘ?«Àl?§È?Ô-e?Öõ ?öhQ@Æ?£Â2?£ô>8ž:‡0Â?!?«_ø?·l0?ÁþÕ?¨É?¤þX?¢4œ?¡È†?†Ž(?i¢c?¢ãÍ?Ä2?”¢B?1kt?6?8Éj?b…p?±}“?Ÿ ×?g¨Â?Qõ‹>ç‡ ?.dH@f@¨Ý?Âóg?ÆT +?.Çþ?@?ó<ß@Øù?ÂÔA?¡˜X@ñ@>Ø÷?Ê~Î?fœr?–+9?§=?ÌÍe?óR ?º¤?f¢?›‘N?ãýæ?Ö~ë?ŸŠO?˜ Û?†J?‡[Ó?t-w?m‹†?h@/?f ¼?lP;?sݽ@YÄ@0Ã?ð8?Ú.×?Þ÷9?ä×R?û+'@uè?¾•?zÈÅ?‘¢z?«W?}Bü>îÖM?I—0?¢ág?gj?¢í˜?¥O¥?32Â?5˜¦?ÛÐñ?Ó˜@¥@*´?@1†>óC%?Iåe?a¦ü?äfÍ@?°Éü?!&ˆ?`ãÀ?£F>?¶«?Ëv?©‰¥>í¹ó>üùæ?YI?¥æ?©Öb?©Ïa?UO?”]?¦_ò?©ž?E–×?)6å?†6‰?§ S?Cl÷>¶Ö?£Ž@ *g?ØÝq?fU7?’Öt?Õÿç?ËÖ!?Â7R?ÕÚ;?¾y.?§®ã?„=ä?ŽpÇ?(9?0ø?(f?§¨‹?á¸?Ìþ|?xƒ5?B?˜¦¤?þ9Ò@ç§@TÌ?î‚F?Å¢?ÆŸ‘>ä¬Ò>ã¦[@:9«@9“?æ;Û?ËÒ;?Šëa?Yª¥>ì»O>œ!–?Œø?ú±?ÏÒ?_h?^÷Ä?^äÚ?}Q‰?ÍG@?Ìè6@ƽ@N&?o–>Þco?SÈ™?e+?”5Q?¨\?“Y]?†Ž?‚ó?IY4?…¾µ?ý°x?ü’í?݃]?ÚÀÛ?<?¥é1@Wí@—?×ð ?Ém>?¡VÉ?Š‘?‰:?}ß?§éÈ@¨H?éD@?\M4?Ãh@@?@G¶>þ@€>Ûâ¿?Ù,?¤Éí?¶ß?{&?Ç¢Ð@ /@ œÌ@2?òÏè?Í¥Ž?×i>ð*a? ­Î?[Sâ?$µ?E6ˆ?ZX%?'¡†?/ê@?’5?³Tá?•3Õ?Y¼Û?s» ?¿X9?É… ? í±?¢¬’?¢VV?¢Ä¾?—ÎÜ?öã?ˆMX?‚¥?©ÑŽ?îŸH?×j¾?¢ñ?£×Q?Kg'?@¿?ĵ–?ç]?¨~œ?~Ü?¢ˆ?Ï=?Ô‰±?ÖÍî?õÊñ@]ûZ@Rl +?þý?ÕUP?À8„?Ç;@¶Ô@4@¿¬@ ?ߦÜ?A`?dΤ?„­K?Š]¯?o!Œ?8\ ?ÚÊ•@Lq?Ö£ô>ö?t?-Á¦?—xû?…ÁŠ?³iÿ?­ê?|ep?Zr?SfŽ?YÜL? pû?éh?˯9?Ue ?m +ƒ?Uã®?RYõ?°?ÒŠ?èEŒ?ûuÂ?ãýñ?´‰?¶jü>Ñi”>ÑIÔ?ƒ’O?œI§?»È?Ø5Ã?È)˜?œz®? ýM?Ðd)?ÐM…?@×›>íE[?&“Ø?Fä?•{ +?òà\?çÞ÷? ×?lµ?¿H…?Ï6L?Ï2?Ç¥N?©úˆ?Œnm?ŽHù?ΰ®?Κ?¢~¶?šÛt?šÂÞ?¢¨…?³G•?š£Í?“o4?QC??‰ß?’.A?ƒ{9?Ñ>ÍÕˆ>› =É[’>,gn?M±Â?M±?o}>oKh?‡=?ÿž|?Ó¸?Mžn?M£2?Rº?»>Ùø >Í´m?ª Ú@–á?÷ÿ?MÛ†?Mçä?°L?º¦?MÿÍ>è;Ô>nv}<0*Ð=ן+>–ÒŸ>yã?xŠ®?ˆãÈ?‘M +?yÙ?˜>•?Ê&?®1Ì?nÐ?|1Ž?‘R·?m¶Y?ˆNÈ?™®?HHg?gÏ?^GÅ?®ó·?¯væ?|òF?oÇ£>tùÇ=Ô¢>œR>îÅ©>É¥ž>‚€Z>ð¹?=ÏÕ>ãÌ:=úJR<êx?KD/?/æ>§Â >qJ?Ô®?d”?‡Ï?œôÌ?]W>Úÿ}>ŸÓà>%k\>¨Y?³Ë?w²>ÞŠÒ>ÂKQ;ìƒD>">KRÃ>>²¸>VÙ>ã¬&>äò <¡U=ë'*>ª~ˆ>Œûü>]‰>–­=Ã5¼=“9Ï>=çr?<¬?•{>æÏ>Äìµ>?4>òÊj>Z¬ =Ýeœ>XëU= =´8>>Ò®É?8Œ?ø:>Í‹ã=BùÝ>‹L€>‘’/>ÕÚ÷=ŽÊ+>óX>›´>œ$ç>j7|>é=•.Ä;áw=@X@Ï'¬>Ý¢‘=j¹œ?Q‡>ê ñ>ÚÄ\>þW\>ÔÄ8>Õ¢Ç?‡ž?½f7?¬.Y>ØÕ¡>Ù•ý>Pƒã>b>Ò>eÁ÷< >ü2–>èу?ËQ?Çà?2ä ?˜Pº?›ÿ ?qS>úT]>?—Š>„w²?GÏý?5˜•>¯!e>¢;9>ÏhX>åwµ? wN?(Kf?Ÿè½>ñ×"? +? +aÌ>¦¨i>•®e>«ŽE>ÌÄ>•Œ|>YU±?:ü ?„Ä?Sh?+[o?Ê5>êzw?5÷m?«lj?‘Ñ:a’H=Ê ê?áªó?ܦ‚>í>¹y>¨—ò>ÓGZ?kÑÆ?‚e?”P ?­aI?Q(‚>LPA>¬¨ß>õƒö>¾†°>víÝ>4Õ(=§T;>Aîµ?Ÿ"µ?¢ôà>ïЀ>ê'¬>åùn>Üz-?CÑ%?I©V>.±õ? t+?Gé@s?.{õ?]N??Raè?€$?jiõ?d?# >胬>èmS>èR>æ!Ì>ÏbR>ל <ô5c;C…€=·ð=‡„?'}ß?gHH>äÄb>@½x>èÉÀ?3 ?³*>—í—>ü¥j?M?`±!?©{¢?“ÅÞ>U‘ê>\zð>åõX>çZ$?>Bº?B€ª?ÎÌ?×|V?‚…(?eXú?vT?å?¤ù¢?¨8x?©àh?«]Ü?dEŠ>ä¸p?;?[‘?9%?c}?$v?dH…?†ª?íå?Ú¯Ð>ä À>åƒí?ªMB?§ûö?Q,W?N,Ç>E ?A@?Žÿ2?¯pÒ?»‡’?sÅÈ? B?=?Æó?˜h?/ò­? ªÆ=Ê$Ó>‘wô?Ù_á?Úê@4}@'3? \y>âî™?˜\m?ª-Š?ª(]?ª&ÿ?…­?bÕ¡?bÒµ?bÑ+?‰ m?£ó?»×?bËÛ?Šçõ?Éð?Ñ ƒ?ýá?êë?HÄ?ã—?˜t)?\è?ç]Ë?ê>Y?5¯>âÞÃ?Bø¥?\uð?‚«:?š–r?¦V"?ª<ƒ?’O«?c²?„3÷?ªP'?¢Iç?ŽûÞ?‡Þ¢?Ìí? Aà?tPy?qäÁ?Ë>? §´?™Ð¼?¨%>–}48ÆìQ?›Y?c¡ô>´§þ<)`>ôc?kT?¸¬@52?æ¥:?«‰?š7§?M–8?:ôõ>ä?ä?wä?t:?uVC@ŒË@¥¦?Ю?ÍáÚ? c‡>äÉÔ?QÉ'?g¸>?¾5`?èÀ›@f@3˜5?ÒÀÕ??„ ?¿CÚ?ˆÊJ>å˜B?[d?€áó?_òp>¶Õ™>ÖÄ-?„µX?'©?%!ñ?t?Ù[?ßX8?®ª¢?¬Ê¯?ý>æ°?Ãaœ?é0|@l*@´?óU˜?ç&Æ?ð:â?ùªí?ìh¿?Û•ª?¿,µ?ŸÕ?uÃ~?~.?uF(?Öý?½k?h^?aX?Zh@?g›3?k"¥?a9?pãÔ?|òœ?¸Lç?»¹¸?‹2?ˆmÚ@ O@¦?C¶U?8˜?ÃÄö?Ýà?å©>MB@`ó@Rüï?ܪ=ƒÊ?¾?j¦?—ªb?¯‡L?í±@Yn?¯Ú^?Xs?œ?òzÏ?ÃáX?€i!?†\Š?‘Ç?»æ?ø.?Ã,7?GY¥?ÊÈ@e?Ð M>Ö’ ?(?íÀI?êÓ?Dc?”Þ°?ù¬ +?ùA?ˆß5?‡Aø?…¢?„=?èz­?ëØF?/rç?¼Z?«ž?µð?‚CE?nº²?Ø}þ?ì2€?=c?gÑO?ë>ì[J?—;?º˜?’õ,?ƒ¿?¶ ˜?ÒQà?Ê¢å?Å‹¼?eoö>ì²>?l§ø?šys?‘šµ?˜£Ü?ÕŸ@•J?á´S?ÃÎ ?¾ß™?º·ï?ÇäL?Ë‹#?µÖj?Ÿ°?‚¬Ô? 5?)0?ow:?m?mã?‡ð?±Ö;?ÛÖ¨@+e@ ? j?Á´n?³á>æ½? ÝÖ?>z†?:Eñ?6 »?J´N@|W@ r @Iû@Cp5?Œ f?wð@ |@þ]?º]?¹Ã?¡º\?§Y×@ 8;@%p?5ªC>ùtÍ?œJI?«Ÿö?s3p?WŠØ?d?“l?³Ž>ïù„?P²½?lÑô?Œv3?”"n?¦ë?±†n?Í—?ÙÃþ?¨@Ó?…‘7?EÊù? ?¯À@_?·D¢>óR¶?^3?±ò”?´X2?¶Ùm?³Hî?¦d‡?Æoë@°¬?Ó¯è?AìÐ?H/¥?kñÁ?yfJ?‘dØ?ŸÀ?úhå?ë…œ?9ô?3î?k”³?€KS@'Ÿö@*s ?¯ó¸?°‚!?<’? ðg@ Ø@š@ D@`?Sßÿ?~ç>ÿo>êÓÝ?¾7Î?å%?œ¹‹?†?½u²?ÛW/?ƒ¥v?Ãå?ÙÍ>÷ÉŸ?0ÝJ?j#»?o W?rø†?lŒ?Té?›{>„u~>÷1?i§u?µ)†@>Tñ@-0?éha?ß…¡?Ù‘?&b?Sˆï?[Öˆ?3ÓÇ?×™?bã‹?dÃC?Ûo?ã“?ìþ@‚H?ÓÔÇ?¿³¾?ˆY?hPÖ?A•x?%$]?›Vì?Ö0÷?Êl½?¹:?æI4@Ü_@·»@ÉÕ@¼Ì@ -½@ë3?ñ¸5@£a@gø +@Sdß?­T­?¨vŒ>HÕ>+ÔŠ?_8L?fÇ}@áË@"å? „f?h{%?fs©?f]B@¿e@5Q?É*ô?[1m?ˆ2Ý?“Ç£?ƒ›?s,¿?•¨R?Á˧?Ñ2?å•’?Öls?£Nt?À9ù@*ÀŸ@!µ¦?Õnº?ͺú@! Ž@" |@Añ?ÿëÎ?˜f1?‹N¥?Á–;?Ö +?¼õ³?«RÓ?«Gt?«=º?¸?Õññ?éW?$üL?A5?cë¯?cÚ´?cÇÓ?x R?ô¦£?üˆË?̈â?Ô):?q Ö?bÒ@*Wœ@;öç?ì±²?ä¨?ĈÅ?¸âB?“p?bÚ>?l®Á?„zO?©/Â?â”Ê?½™­>öÑ_?ôj?fìB?oƒ?x'?€Zñ?„¬‹?‰3?¤Äà?—\ ?o§?JK?Ç=>¨þÙ?E¼½?©(£?À2}?Ó*ô?ÒEõ?á@b?È"Å?a$?„n–@©R@éú?rôÛ?DÆ?£C„?¨¾@+¡ß@9ï‡?Ë\E?IF?¨€?¡¸?~<.?`'?¦üÀ@ /P?ò)ƒ>ïÀ3?*ÝM@ ß~?þ4?jN+?‘åš?™Í^? å¾?“@Ä?‘ß +>Åd:>–ìi>ðlf?ÉUL@È?õþŒ?˜DŠ?…>?‰3s?„L°?”SØ?¥`Š?ŒÅõ?YŲ?‹ ?Ó[ˆ?¼¦=?ªe?œŽ?®k¦?—‹è?o?—.,?¾#F?ÕÀ%?¼®?ª?¸«Ò?Ìà’?ÐGe?ªA?šª[?CÇ@? }Å@Vˆr@Z]ü?ÿPÍ?Õ"õ?N¤>Ùüé?sÑ?»ÂW?ªZ ?¡õ?oj?Yi©?YKá?YF?`!Û?•d?¢©r?ºì1?¾èP?‡ê”?]©?·€`@KÎ@ šÙ?¢p?¤4°?Àû—?µ—ê?X$?]/@?¢Åz?¯“)?©Ì+?¤Í?w%Ÿ?l¹?†/á@J¬ä@PLÈ@[@Ã?Ö"6?´KÉ?¦ÂE? o'?ºa¹?݈e?ºá>ÕFµ>ÜU?UH?Té£?ç¡y@¦¢?Ť×?¥g¸?e×?8Ý?‚»Q@–|?ü ?¤7è?µÏh?Ÿ3ÿ?žIÕ?¹hÏ?Âì?Öö@Æ‚?ði?d ?@L~?`/?Wp>e ¢>'d?YJ«?½tH?ÜNÉ?þE?à#Ú?2ž*?y?C¥\?RÿÒ?fÞÈ?v?vyŒ?J¸ö`Ò>«»@¾+@WÜ?¾Ø?C?]f”?†C?Wt?#€y?0 h?µPË?Íà?|N?¯}?-ý? +9ý? ›?£K?°E?,ÕN>Í“œ?{—ê?Ø” ?ÈÕÈ?Mº÷?MÊÓ?˜^½?šk?Yqª?H8?x0½?‡„Ï?nq¹?hH?Nk5?rp?h_ë?åá+@+?î[q?£Yp?‘µá?Ý_?h’?¼ÿC?׺?îÞ?PjŠ?€å¼?‰ +?«†?ôn]?Øžÿ?‘®?ÄÏ?œ1?®>°A±=ÇÀ(>Úý’?Òy?_¥C?Èa?×S¤?ž“€?›#f?˜>?‘Ï>þ5¬>×âo=ÙÓ;<‹ë›;„L€>{>Úä(>…Œ\>,H?%ç]?-•§>Ü>ÜYó>ºûª>ña>€­Ñ>aI¤?6ÔD?ÕM>äs>åSõ?™/¡?‚ôî?;ÌV?+`k>•¶>¹,Œ?-â?ÊF?Þ®Æ?¨A>œA>¤S×=~~=„Ja< [¡F=©>6þ> ½c>â`ý?'Œ>Ñ5÷>¶â'8Àkð?“O?U|Ô=éI×=»Ý ? >…þÌ>»aƒ? + l>«@­>øT(?ö?F>«¢Š?ù3®@®C;?óqÎ?#·»?n<>öú*>×wÀ>ºÁÍ>Ôkñ>Ï0n> Óó>¯jì>̘Á>؆>ÙF >Ç(Ÿ>¸¼I>«œS>žo>A>²ºä>Îõ?$?1?M}Ê?`&8?`«?a)ˆ?a¥ñ>€u>ôߢ?cb?,%æ=Út> _O?;½?6R?K?jÜö?!Õ>)"ø>·¹Ã?g?SD)9è¨= +@<S]?"T³?\¦ñ?VÀˆ?PÙ?+Ç\>é6)>Þ9y>‰Bf>k€m>j{>ƒ×8?L?\s>¶I >^DÓ>«c®>êU¤?&7ò?eu?¯À*@í£?ñÚÇ?‚Y‰?ÁJ>ê˜í>è(yê‡x?“?Ó;S?«ët?ÊP?LpV>êK©>¬8>!½Ì?iñÐ?f‰—?aª7?[9˜?#? c™>Âoÿ>©Þî?¨òÈ?ÀT€?"$Y>Èò¶>—?v>mc?dÊÁ?¸¢æ?¡(Ð?j˜?>eF>ôôÞ>ÀL¨>¼…ñ>Å +V>Í~z>·@1;e¥Ø>Ùyü>×8Æ>ÏÛ>Æï’@@,=?oO>¦öo?€¸??í?;ä>æ“u?"y?a3?:Ä>ùôu?"ù?M9V?EÂS?>U?0Ö*?9?Mò?¬c?¬žÜ?”ƒúÆ?PRS?dèÞ?dÐþ?e b?x¢>äš&>~Nã=Ó >ãŸÁ?P~}?‹Lh?ÉÌr?Å-?Ëßy?½¦F?<§?8?z¿Í?‚>ð‚È>ã¡Ö>å2i>ÒÌ>êoê?ÄÍ?¯ì]?ßÞR?arø>ˆkQ?5“ê?§-?‘ÄL?Ÿ@Œ?ˆ|¾?" N?E„8?ª5?™i>âä¬>âÌÈ>âÖf>ã?Û?¥+ë?ªÃ?Îx>üNŠ?Lüp?bµë? "®?ï)>µhŽ>ŠÚ@>Ù­ ? ù¥?gía?»§?©îÁ?‡Ó?oÍA>3þR>¥Oð?°IU?ªå?¦½?­†^?6Å?ƒ7?ŒGƒ?“ë)?*Å>”®ò?+:a?nËÝ?nìo?bå¤?|_Í?’Ïö?kÙY>ãÑ? ô[?V»?kí?¦ht?«@¤?ßJ?á÷³?hüÞ?cUs>üG>პ>çà7>ï˜L> ’”=ƒI”>â>ëO?GMT?fŸ¦?~Vâ?«Ez?í®â?·1>ä¾?\úu@ö}@¤?þ´0@'E?‡Å„?ŠáM?ª>䦹?›÷Y?«•T?dÁç?Q”4@ @)ÃY?äÖ«?•¨?ôªÿ@$§?äÚé?S¶J?‰ 8?¿Sê?Ìf?ì¼ý?æáÏ?Ý +é?é0¨@ +@ì>æ/>æ@ >æV1>ér‹?¥¼x?§"ü?!?|ÐN@­ç@Iý?AÍ„>­hÐ?°×èbY?tT?¯ù4?¯ö?лý?ʺê?Ûu¸?ãü©?š8~?’³`?£Y]?§¯?®wÊ?¯‹>}±t<6â›?‰/;?¯5Y?¯CÇ?¯€?ˆÀ?p@?)¼?‡‰P?84>ê*\?š³6?êFõ?ÆI¿? ˆÐ?²•1?ÅÐ\?ѹÔ?ðc¯?¾™|?9–Õ?r)?Åv7?›>^—>Š+?‡§?H*û?Åá)?Ì‘?ç*?Ý¢?¿Žñ?ºŸ\?¤ûí?­ã?üg?÷……?ºþ§?·¯?é.Ò?ë°,?ëî«?ëõ@•g@!ý?º +?ªÔ€?Wi>ì9Ú?îê?+h?“…Ò? e¨?]Pî?Hþ?_??H[>ì?hÆó?™ru?Bû¶>ì¬N?ºï@ Îz?ÑO?—k?G>ìΧ?œÇ9@A?¯M ? +ˆ0?q©†?¶0n?±·ë?±¶L?Ýä¦@ðô@+2@\ @1z?Ò6¶?·æ?O=r?k?¦?žÇ¦?‰¬–?€¢? º_?- ú?HÚú?’C?•AW?¾ î?Ù‹H@F™@üüœ>ìã4@I*e@S«?˜^Ý?lÒ¥?ðëô@³ª@äÄ@ ëÖ?¬î[?”Ýf?¾ö»?Ë=H?·Á ?±qt?èÈ@¯ƒ?¿*?šË.?€¢T?_¨J?–Ìþ?±D?Ñ‹í?ëä„?®Ý'?uX[?z[‰?cï?[Xz?0ëS?ŒÔ‘?ز?ûÇô@Õæ?é³?’žl? ½;?È?m?ºñç?ž˜í?«3_?Ê<±?¹~=?zB?€üR?°…w?§:Q>ìJæ?×@ 1@0I?ÄØÕ?ÊÛ@ç @Ñ>À…­>Deÿ?YU?g Œ?­åv?Êx÷?@çÕ>êy(?Ž&©?¯Æ)?Ž+Š?t¤\?pìK?jˆú?øe@*`c@ìT@\?Á6R?iÃÉ?nxA?b•„?q-×?”b±?Åž@)ÅÄ@%ð,?ü„j?ݼ?O:™?Q'?…??é@h ‘@eæ>õ¡„>ý?É:ß?Å÷÷?*3B?4,]?´üë?ÆÇ°?ˆY¡?h0x?•w%?œ¥–?°'?»”†?Ó®õ?çÈL@ZF@8?Õ°?uó*?…-â?i?™­¬?£ü±?Ò—C@-#õ@)4Ž?ÈüÅ?¸8>æÙÞ>ô(‰?œ@Í?‘–?—»ä?¤ ?ߟ?åk@Áu@n§?ð^Æ?æ·?­ò? q?àI˜@È?Ê:œ?pýE?_åé?e“³?–F­?ßcT?©E9¶œ~>;k?…0?—‹Œ?¸ ^?¾Ê@>+“@}?®]2?¯Ž¯?«2?«'r?àº?@ ë«?íN‹?°Cb?Á”[?ð%?Ç å?c¨e?mÇz?›>?¡å?œì?„2ù>ï ‡>æ©?صÅ?ýÇ1?áœö?Ѹµ@mœ@ u?Ãß{?bµ.?N¢É?)×|?†¬¦?âwe?âY?â=º?å‘@õÊ?ì·?bí?b¥ ?ÑÅ?Äa¶@&×X@)£X?ëâL?×mj@&9@CèL?æ{’?g§?wÔ?ˆ?Ø?‘2H?š+Q?•L†?aà?w`z?¾>?ÌØ-@Os@#!0?åÌß?ß{*?î:F?þœÛ?™oÛ?`G~?Äú1?üÎn?Â*X?‚ ?‘ ?šÈê?€g§?`93?Œw´@ Ř@f‰?A^L?7¹?‹ÕÚ?Š.?C°?=Äà>²ŠR=ߦä?N]%?§( +?¬È÷?Åu?Þ?ð (?ßêD?¥Ì?¶å‚?Þ¶?βÇ?ÕJK?Ú¬X>c¡™=œð@S}¹@„-x@4¥“@ +õ?Ð0£?Ž–C?„ Í?>ó2? D8?…w?,@ž@€ƒ@P@ƒ@FZ?Ö˜×?ÀHô?©r”?¥jr?˜«?˜]â?c[á>Ý(¦?:Ž…?®zß?ž)Ð>ÛáÍ>ós4?ú@Ú?ÿuÕ?|@C?[s£?_?[Oà?ͨ±@ +?¿_Þ?€½?–•Ä?ÁnÒ?Ï×@aM@õ¯@QeÏ@Z'?œ8?xü?ÞV?éöÑ?¸ |?£EJ?ªƒö?°ôM?¢ýf?o¶|?}¨Ã@’2@g?ô»T?çb’?®àŽ?ª¼?M)>#'>©>åÚJ?Z¶¦@¥x?ñ–(?²Zë?·é\?bÙ?<÷¨?ªøÍ?Î.I?ÓÄj?Öâª?ãÎ?é¢E?Ö|`?ñF^@I?Ì k?Á,?ÓG?óܬ?çz¥?Ó×?•­ë?9õÓ?ˆñ²?ÃÃþ?¥£È?Œ"Á?€hG?ÈBK?Ô‹˜?±†?Ÿ:¼?†‘?T?‹ü!?ú‡È@I>©)*>À¨q>Ò’E>ãm?Ã?;´Ë?…kr?µöU?Á#Y?´_?¿É;?¡ó@?“d?^¸¶?,~1?Ûr?Ûx)?ÕÌ0?ûÄg@ ©?Â÷ì?ÎCÃ?û"¢?óݨ?á¦ò?Ïpâ?³Ì ?'Ä?‰Â“?ø²o?àUr?þŒ³@}\?¨ÇŠ?…ÂÌ?ºf?¶¸?¬=î?™?Æ>Óª'>Ü6>ãÝ>ÎÃÜ?!†™?€p°?ŽË•?·3(?ªÏ_?ó6@‚?G‹~>6Ôþ?t)?ª‰2?ÃÍ?š`r?šS¹@ ã\@3ê³?Îœ?Mš2?“o±?éÏ5?Ù??(®>ó/K?®"r?Íh?Bâ=¦Ôî>‹iô?CB?dõ?Mf{?Mk%?ê>Í|?%0»?xÒå?€7œ?MŸß?M³?Šmx?‘Ë‹>¯ý¹;°£€?ŸtÄ@¿™?þE?ä)?†| ?d¤¼?…q>¥Œ6=4®>dCY> B*>á >ÏŽk>ÓŸj?1? js>Ôg>Ù‚J?5Y?oû?Žv?Å ç?Ö`¿?‰{?—,B?XÍ1?\ +Ö?–iü?Šœâ?#?Ý>ÿíQ>º2q<é(Æ>l›Ú? ÛÍ?¡0¼?ô!>×Çp>’ÇÑ=Å|!?ÿq?I…a?:ŽÞ?5ùu>ˈÑ<)àÈ=£=ø1,>€î?W…?Ao?žñ?¤ý>ãøE>âº>šSÈ>ö >âä$? ¨q=S‚¾?iBg?SV->¦Ê•?¼9?•>Éåa>‰úÉ>à>ìv‚>ðI>Ôz>´:b>“¦P>euÈ>"ß#>¾”è>ع?=ü4å>Å?v?ܾ?B 9>ÜÕ4>Ëie;"Fµ>¬…>úd>¦–Ù>´Õ'=xR8=Š\™>ÍEá>XŹ>3·P>–¾Ñ>‰SÔ?. <½«=@?I…?¶27?( U>X\æ>3`™>£K>À‡0>ä›u>Ô²>ÌdÑ>jêò>2ê >²Á>Ø5Ý?Æ?Q¥b?K\N?E¼?>§Ä>¹Ü)=¡ÅÄ?$—˜?e?¥[??²µ«?“ O?tª?Z}ç;‚­C=8I =ä7ì=½zÐ=-…È>£ô´>ÈG©?n¯Z?^­h?íz>æE_?'¿?J°Æ?$È=“†?e.?d+F?£4÷?§-??VC?îS?3Â?B2Û?<<{?6Iî?5"N? ðI?öŒ??j?F9?hÕ'?j t?Ò»>ê,«>âŽ>çÑ´>òc€?yØ??ñ5?jm†?eªZ?Mê¦?+n<û`?¥Zæ?¬ï`?y°ê?„¸~?C1r?Ô?°@(?é:ú?Ô$Ÿ?¹sÍ?gù9>×¥'>„y>“ç¦?iô7?G?¨”?v=Á(t>ÞŽ>é‘Á>é÷e?™Z1?¤kš>@©?CR?‰ Í?ž–ö?¸@D?·t?¹´¯?l—==é°À=…î²<½¾Ê;â=± º>àº|?·?Õâ8?Ëûp?S³h?O8?‡\R?™ÊC?_A3?>ë9?Š.»?•?)}>æxj>æa>æH>[¬É?+å?š+?›Öè?ŸÕ?“ìÿ?e#?rRü?[}?®ï¦@"(@%…¸?­Ô-?«·Q?«§?ªÕh?w.¤?d¡i?\\?UH$?‚¢4?Š]£?r¶A?d2¡?€4â?•/?¯¶Á?ϱ?¼Ç ?’ʨ?}ƒÃ>ã®Í?#?[¯õ?S:ß?bÝ?ch:>`ëØ>'ç?#—å?D?G[?J«? À?Æ?š¤5?bõê? 1B?ÛÕi?Í ×?«R?Œ?Ö>âLj>¼¥å;¥¢€=¤ÇÒ?iµ"?nÞï@,Ú@Œº@Ê+?û~à?§J‚?*C?‚ª°?rê&>ßé¥>F¢>è e?Gàô?u>C>Ê4?1KÐ?Sε?Ç´F?Ƕü?™^g?‘0=?¶ ¬?º;l?'ÜT?tÙ?>î®ï?Ù¦>õü1?&Æä?Obš?0Â#? Çé>û­>âá>>ìa>òUãb?&?©. ?¦gÎ>èäØ>ãJ=ª y=rc¨?qèä?Œ>?ˆsž?„¬?‰tì?ŒU?w s?cÄz?q¥ó?Š&t?}0?6PQ?nZo?ÑL¢?ÜIÏ?Éü?¹Ç¬?\¨4?c¥E?±Ÿ³?«zs?þÃ?üÉé?>¢.?\q?j6?»|?¾Ë'?ØQº?÷8e@ ¾@o—@)L@?Á@ à@ èÈ@ ³Î?ß—%?ew8?eÔ,?eéÀ?}¥¦?« +Z?¨~Þ?¥ñ ?§;@?àc÷?Þ‡1?¥#“?£ »?¿Ø/?Æ#"?µ€(?ªâ?¶EÀ?¿"ó?ùìˆ@9›? +?"#‹?Á–à@·Ÿ?Çf?‘1?›“?²¯à?Öðt?ÿÍD?ݽ?žG=?a¤?•å*?£[2?ó¶ž?ôÕ?ïj8?Ö´À= P…>og÷@ +SJ@ ï%?׎?zúž?°fø?¯T?‹\>éY¼?[ù?lwY?¥¤Þ?¯9û?1P…?¨_?©¸? °2>r’=ÕýÖ?·½¬@ +%û@L?ýøö?œi)?43c?qº?Žãá?„Sn?j­O?9¹>êÆX?  ?$ÆÚ? }º>£îë?4Ư?ÙÐZ?ú^ @)b,@÷Æ?ÊÚ?ÁŠi?zŒO?œÓ¹@.‡Ã@+Èë@äD@Å??°ËQ?®›¸?r»ì?{L]?ºÅC?¾Ìt?ã,!?á­/?b„-?Pk[?µ×?¸j?ÓB:?×Oâ?d÷A?;G-> +w”?7´­?cŠ®?¹;>ìÒ>¬Ý>œ°?•Õ?Ì‹?Ïè•?Ó²|?nU>ì¯t>축>츾?t¼?¯—@\Æ@O4?Ðɬ=†÷?qšy?ó¡Ï@‚Ž@ ýÆ?ó€¸?±ªà?»á-?Ç#þ?¼X£?±®ñ?ž°?lì;?\ªH?.V“?K•?™÷Ç?Ž[T?EïÕ?€Ì|?ìêÌ?Ø?lå¹?„x4?ßÉI?êÀ–@ã@ +?f>ìØ? ¼-@êg@ f²=r­=§õ²@ 9B@z˜?©T³?žãc?±¤Ô?¼"ð@%b@öI?Þb„?Ëð?©/?«AÐ?“/?k”?µó®?½sŸ?J°‰?µï>å­^>âØ€?ˆ,?±-?U…v? _è? ÏÆ?1g?@œI?l³?Å‚@' ?çMR?Ô(?ð)@|u?óR¶?˜ø?Øe?Þ£?Qω?4lÕ?Á o?ÈKs?Á>ê{Y?DfÍ?BÈ?œM?¯±q?ªú?­YÊ?×R ?ècn@ˆ @…o@›?ör£?à¼O?ÄHÔ?‚øg?ý?sáé?¯N?·ï?ÄB‹?Ù…ø@ +1¶?ãX!?c?@µ}?èîÓ?ð““@Þð@ú?¢^ ?ɬ@ +ßA@ n->ȶA>‰|?žp?®'Ÿ?P“Ã?: µ?¹ET?×Þª?Ò?f?Õ?ßNÅ?åá?¥£)?i§¦?’¦Š?¦è?Žäí?gC‡?g6 ?g'.?•¡ ?ç?óHT@ +áq?ô&–?4ø3?B¼U@Î@ú"=u´u: ¡˜?×"À?æB6@$ì@,—?ó ?ÓC°@%Ý@4‚:@}@ì ?÷Ìü?Ä[Z?§9â?wÂÔ?ŒÑâ?¬¬?š‰?_-J?U¡L?e…?¤A?Ô8å?×T%@'Z6@+T?oN?d—.@ùl@É‘?vAˆ?rw?ß•@ Ñ?±*A?oš¼?íÑv@$M?Ð9z?-ìî?³ÐÜ@3J@™?„Ç/?ƒ{,?‡b#?›è@[l%@a»#?©%&?ŸöÇ@ÚÔ@õ?ªÝ??Çõ9?î?¶ ˆ?ƒKI?‡üY?–Þ)?·ð@?à"?ÏO±?¬ Ý?²Õ‹?ÀÃA?½;F?aöØ?kÞl?þÌu@‘2@/™î@=ä'?×$É?®– ?úR@ ô4@ ÞW@a8?°yÖ?a ÷?~Fb?1x?džž? +c¬?M#Â?®ð)?˜°a?¡Â?§Àß>ò§é?ù?§úw?·]?Õ´ì?ÏÂ!?²¬¸?²øÎ?°ic?§ð¹@·¡@>EÃ@]4?¦œ*?±Fh?éí"?åµ?“—ï?Ì@Í?ý.ý?ˆdm?M¯?qH"?kN_?¶˜„?܆?×i?ÒÎ?ÅyP?½?,?¢ûI?/ ç?or@ ÎÆ@L?´f-?¦àx?¡Š)?’½?ƒ¾]?¶µ…@D”;@`“@òÑ?="?Ÿ7-?ÔðŽ?ÛE·?Ý5?ÊE)?Šî?£iC@è¤@G\?L?¤†Ô?ªNÛ?¥P¨?W|Ó>îné?Wë–? ?™É2?¤îO?œ9j?eX(?X­6?µª?¿ 5?h£ô?[T›?˜ªý?¢ ½?èZ’@×?®^?ßî?<´€?wUþ?™ŽX?ã´?Úû?£N¦?­F?ŸŸ-?–­N?ã¡¡@•?ÐYü?£)¤?¯g6?Çü˜?ð¸²@"×}@`@"¯Ù@" ‰?UL?yyÈ?™8á??w?‰¸­?”‰?¸SR?Öâ‡?µu!?‹So?¥Dê?áêÚ?Ö}r?£©f?¡n@?¡W÷?¡@S?¡+€?£Œü?šñ7?”ã`?ºgu?õŒ‡?ã¨ò?ê?õw2>ží;t­0?Ø„ <·SZ>ÓÆ?w?,ö©? £"?&Ñ”??HK?fP?[Af?ÑÐÊ?ÏVÌ?|ý>?Q½„?¯´?ìÓ?³>ÑH_>áLÏ?I8?R-¡?Ÿˆi?²p_?¾`©?ÊWð?ÞÛK?óO|@Ž@CÖý@O9„?6tý?(e?N%°?Oë?{Œ ?›}þ?›c}?›X-?›Aì?U˜?C¡>›Pù>þ.>äZ?Nyä?l|?Õi?ô,?jDz?hØ?B(ü? ,q>¶Ù>h¥|>Ä0?Yg?–‡Œ?š6c?§ëè?êAä?ôŽo?Î7(?»ö?ÆÏÇ?b! ?UŠ‡?ØZ?R?‹‚¤?Ua²?b‰>ã0 ? +ñ§?$N÷?=µ>üjj>Í[?C¤?‰á¶?ž'?Ö©ø?¶«å?N7?M±?McË?<˜Ü?Æ^k@#"&@ËP>ñÓ?ò¯öÖ=f~Ó>€S²>ªdŒ?¼‘?͘¢?v\§?@øÛ?§*?«H? +q¾>Ñ^[>Öúà>ã$:>Òt?MÒ?RÅû?TG?y¦ò?'#¦>s¢)=ãgÌ7ìÑ?;…i?!7b?= ü?Y‹v>¨W÷>¦ïû?„f1?¢Ki?ŸEÂ?™ö?4©>ÄL¾>÷’g>½íÒ>^2>IDÊ?B? LÁ=©¾:?]w¾?‚X$?PÂ\?^®>ãá—>ãjÌ>—†Q>r«C>5Âx=è)Ë<ïH„=üöp>Må?:cœ?C'à?HK8?€¸;’hà=f1P=ø#?Ž?6Œ?>ÒèQ>ƾ = ¼Þ=NâH>éà>¢@J>5b>ÄYâ?"t">3¿Î:FR;lÊ_§Ž=IØ„<ðÄ>Pƒ~>nVB>ÔšÌ?*'?"/ >ׯ]>×Ú!>Õ*ÿ>å*þ>ô(?‘Ö? û>š‚=ð´P>à1G?ÖŸ?ô³­@‡?ÉöBrE>`ø>‘W>>N?%6?:9>ÿy>æ +r>æT]>æ–]>iÉ]> ø>éñÉ>ïaH?>#?4>÷ä>è…µ?ì*?™Üï?ƒ ?i ¤?~aå?•Ì¸?|¢&>œÓ>»AŠ?OUÅ?Ul›>ùyM>éþ =Þþ”:®ú<›`=(åä?Ôê?j@j?D%?G?À>‘×>¿sž?jQÌ?_û >LX>8Â?`=L?j;?ìÕ>ê-%? ¢J?Îy×?!»í<Ü+D:©k>×cn?iË?o`?~gu?W>¬Þ>îWV?†ê?~ä?iCF?i(ë>ì©q>Òÿe>Hö®>-´j?“¦Û?®‚b?/Š°>è‚?>W¢=€øQ?ÿo?}Þˆ?5š^>è s?"÷»?b}?9©>ç“ >É.—>›–T>îà¶?g2÷?Wµ>pa>$å?”¬?#??‡‘8?&¡?°%>æU9?;­?J—>ð²>9N?Aªl?PØ?…EÃ?zÞ?a;f?JkÄ?5‰>å;{>å# >åå?ñÈ?««,?©1O?k{?nÒš?eÏÏ?dD?›Œ?ŸJL? ´>¸$ƒ>ŸÔV>•…3?*¨D?cét?ˆnÞ?¤q&?E?câc?F†2>ã‹á? 9%?}K¤?‡Á¯?—>P?Žú¯>ㇺ>ã:Š?#KR??(YÉ?!1?®³>ö‘i?5ÎÏ?[-?a·N?b¾}?ÁÿŽ@ ¬J?¯Š,<•94<²Hð<€À>‘—>Lí}?^³¢?qW?ï÷ ?ñ¢D?"X?ƒ2Y?Ú>ùº>¹&@>„RP>¹9@>âa¼?D`?%¨ç?Ná0?æ?’>³?“™E?™C?¹^@?²{’?öâ?'+;>«T£>šÚŒ?³æÙ?öJ?çÏ€?ôì??\Ò¾>öÔF?‚J?§˜?Pîk>âPB?]-?ª"?}`–>ås>èP•>âïŽ?ØW?ªD¤?˜-L=…6P=Æ¿a?7òÇ?2 Š?ulº?€Z2?£Œ?‚ðÓ?ùóê@ ýt?§%?cž{?I”x?2 h?ç9>Û±?«?ö†b?ÔÙæN.>êî2>ð'>ùòP?­¬>è’Ê>:®Ý>Ö·?·„?·¬~?¬Â,?©- +?1¹ì?7K?^Lþ?hÛÉ?©p•?­'—?™0?d·>>\·7?•Ôþ?Ά@ ±Ä@È?ºØÓ?g¦£?·–õ?úÊÛ?ë«?×0?ó•X@9?ðæ?~ɹ?Zxà?.™? ¾ä?zª?13Ä?«Ÿ?»Õ‘@k@w@ž6@<{?g} ?d •?݃%?Ýßj?álL?àϘ?Êu>éži?†c?’"ˆ?Åè?ÌqY?“j?Œç¶?ÅþF?ÞäV?©r ?~ÛÛ?š4N?®Èù?œñ?Ž÷W?•íE?•ö?‹y¡?ˆØ?¯Æt?×Kn?ºJ™?£]?Î+ @ øÀ?ÜA??b?Dæ±?°tá?ËØ£@ÛÏ@eA?k}s?INå=jºW>¿2@ +‹5?üL?Þ`?5tm?ëÕù?ç0X?Êk?õA@l@ËZ?Ê5E?Ê/?zG.?l*Ö?6?`?!6x?¡O€?±:3?þê>ì[¦>T•§=þ&Ô?$¬½?T?ƒ!/?‡?*Hð>þþ3? >ùL>옽>ìœ?G ?„ÛA?™ì??ÆG?ìµa@É‘@8ñ^@é?±Ž0?ÞÀÈ@‡O?×f§?‘_I?wy?4¤?`¥ï?ŽI?„uQ?lÉq?u³È?rr?†Ô×?Ë=×?Â&±?Š÷/?ƒvà?vÉx?‚sC?±Š«?ºÛÌ?åàÆ?Ú;.?¾úê?¶I'>¿¹þ>ØË8?Á;?¿ØÂ?G¯*?S?˜õ(?–>ò[>ÿsI?›Mê?©^?Ø>ìc?^U?v?¾g3?Üä?‹¯.?l6Õ>jÈ ?,ži?qCÇ?¾PX?ÕUB?­®?—Êb?›ôÓ?ŸCq?Ê÷Ë?õ‰@ †@éC@pß?äo?­Í‚?kŽñ?nÿÞ?‚–©?™B+?°‹…?Ï4ä@ ¹“@_'?êúŒ?Ûã ?°S%?½l?ë€?éLý?ÝÖ£?Ý;~?ÛY?Ä»ƒ?V6C?aj[?l«Ô?wöÃ?¤^°?­¶s?…œÃ?iâ?±žP?Ç|–?°9V?¬½“?% a>ê1(?S°´?}(^?óK‹@g?Å-–?–_Ï?³1ˆ?Åõ?€Y¼>ë¤R?xƒ?ÆBË?Áü?Æëú?Í>?ÓB¹?¹”O?hçÄ?’P:?èÉï?ô"z@eÔ@\©?Aã?4‘„?¦<ž?°Ë-?€`m?r®Ÿ?áa?à0þ?=E¸?æ? ´?¢ó?Œaõ&ª?lIm?ØÅ®?×í?¸öî?½ûC?Ýú?ÏÚ=?c"ì?z¾n?ªDO?ª6L?Ĭ‚?ÎLù?ØïÐ?Ì Â?-ø‘>âô?‘NH?·)C?Nœ>ÏÒ?&c)?bæm@‹q@g\.@.+?@|?.Ä?¯ãq?«ç‡?á­Ê?á¢|?·ð'?²ª£?Ò­¿?ßt²?;²Ô? ”>Ý_X>÷Ç?ßW?¶Y ?}5?i¼"?L´ä>É¥ +?p…q@8ý}@'.>àʹ>ê·º>àZ—>àGã?'ýL?>çu?Ø3?«ú¤?lG¶?<›k?“‘ý?°?í?ßZ@?ß›?Ù¹%?ÌCÒ?¶Ô»?Ã.\?åWû?ÛpÂ@ æk@ë*@óÀ@€6@ª¸@ 4D@,íÑ@7@Ì@/Ý!@(r¶?ánû?\‚¨?Të?Õ¾?9!?¡‘¹?—à¤@Aíl@>áa?Þ E?Ò,¹?JØ>‡à@çg@F@z£?˜{,?š@M?ŸO?ÚÒ›@#ɵ@ 7î?\Ðh?dØ?È+?Üζ?súw?+S?µxO?À 2?Í—]?Ûª?ï¿@[N?æáq?È"e?­J”?f,?|$å?w§?lì?b1³?[M:?š–‹?¶TA?È]Ë?¯xw?„?:݆>Úp!?Pàn@]á?øÛÔ=##Ø>(ž@CUº@?2¥@òÌ?ó €?³6õ?”Ž2?’˧?u??{>n?©ôh?ÇúÐ@ù Ø>¿éX?Œe?±ä?QEø>Þë?ŸÝA@°ÿ?î’Ò?¸D]?¨À…?¡µx?¸D€?j-î?ƒ¿ù?©wî?¡Á-?… ?eþ!?d[Š?Vfd?›É‘@’@w+? v? ](?W~>ц×?2ÌZ?U\?2@¦?ÛC?3‡D?Tå?R:?Gø?R‡ˆ?ü>b@ºX?æ ê?÷N?Ò¥Ð?¤€3?£]¤?ƒI?uŸœ?Ÿ@¬?›H2?º#q?­Þp?Hi?¯ü?Bd>Òr™?m?ª?‘?Ÿg?¥FÉ?” [?‰c›?„­‡?“›T?€z{>óx¡>ÁÆå:çf=…‹¼?²E ?À_›?Í@î?Ëèv?Á½?Äi~?Ãy›?Ÿ?£-‡?¹@?§šé?@?‚ -?“Ž?©Š'?£UÌ?H7?›)Ý?–4¬?åF?29ù>ááj?3à½?‡à?Q^k=¬Lj:i”Â?¹Nq?º¼œ?–ß4?„bÈ?]+v?j>Ìwý?; b?LÐ>øFf? µ?^í?|ê?¢\!?pu?ls¦?™ë.?™ê¬?be?^$?²*n?Ö??™ß >ŒO>:]Ì>sB;㪆>¡j§>ÍA?vžÝ?·¹ú?ÀT@â¶@®?M”=?M–x?M¨?M½K?šÅb?Þƒ0?º0=ý=˜=•?<µJã?i?› ]?8ȇ>Z´|>OE¾>cô> û>à_]>Ú"?A†?PWæ?€Tý?€{‚?L4¶?Òg? Js?P±œ?M??’ÕÛ?ó>>ÅÅh>n7t>ë¿?.sÕ? h‡>Ó‹ï>ùX?Ut„?M°Ý>ÖFÇ>Ö¶$>cè=E,”?*!„?\Êž?’dU?£(?7 L>?°t>ö•„?‡ÿÎ?N]F>RT?™BÊ?|˜Z>\îo>"µ=ÍŠc=,&(:´6É=@öS=«ï´>4ãå?ou¤?LqQ>§+ø>½,<œM.=ÞJ>Éo>”ÛA=_a>¢ŒÒ>Š¹>ê¡?KfŽ>G/º;ç¡Ð=Îûï>T&>…è,=Æé…=Nr?|Ò?Z‹M?73>~&?<.J< i¡?:~i>â!Û>¢í>ùCÂ?ì(@h?N׋>Sµ»?2Þ? ã>þÃ>áÒë>¸ÿX8WË`>Ö»ý>Õ§e=Z$µ<ÂO?ë?‘ž‹?ƒ’>¾f>ŒF->|”4>`†ƒ>˜_‚?4¶ ?áOƒ>§ÐÑ=nh=æ<¢§$?Y?:&>ÌòÄ>%á›?MAÌ??T>ç +­>æ];>îO>Øí¤?f-@?"ŒÂ=Dcú=êoo>è&>è[F?~d·?Šk—?•dÃ?’Q¦?]æy?9à¿>敨>E¹? ¤ƒ?N,>Ô9ï>â'¢?dªŠ?c§C>û¤”>Ìw²?‚“±?¢m?I"N>ê"™>ê(Ý>ê*ö?3Î/?‘Žï?u«ô>ê'ê>ë§ô?$5N?1¹©?î…?Ì =ÄÈ+=GG?8 +?iá?›o?¥j? ªt>„p?">?i‹Ž?8Ð/>éiü?@sH?®÷€?˜ÚÄ?,ÚA?'â ?¤õ?ÅQ?FÑõ?<2“?Šc˜?“D›? ¿.>èc[>Ò +e>Ö‚—?×ÏŸ@ƒ0?µ•R?fAM?¹?¨¢Ê?Œ93?T¸É?H«¡?0ì?Ý? Ö? ¦>ga>ŽÓ¥>æ­>çW•?.”i?3B>ñQ‰>æ5?r3?‰?sõ´?eÕ8?ŸXþ?½ˆ`?±åj?¥Ü?'ÄÕ<ŸÏ;>H¬Î>åÙ>å‚>äô³?K?m ?]ú?¨î?!??“ ? ÝŠ?©QŒ?«-×?2H$?ú?›?‡x ?‹ô?eÄ?Žµb?•?Ziª?!’ì?Gê?²? }i>ãP&?5nø?ƳÔ?³Åô>ãû?)o?ª>Ñ?ª‹Z?åé@?æ<?YÖ?cŒ<>FÁ*?ir?¨ç„@ßa@'ìd?õˆ?•:?±Û?ŒU?s¼¹?/Ž^?fl„?Ü´8?˼ùrÀ>t>a8Ü>ÇIÈ>âD¸?_¹d?’Ã_?S­>?X?(Yå??7g? ³5=íÓ =ØÏ=Ã@­>bÙß?Ò?#>âb’>â[ú=R8È<¿·|?A­×?a«‰?bˆ´?bŒ¸>‘Hâ:íö?¤Ê`@ +÷¦?§S >â¾–?Ð?S&E?xÛŸ?ª-^?£Å¡?ƒj˜?`x>w»ÿ>ŽÏ|?ŸR?2 ?`ôà?cLð@ ä@K¦?ÐhR?­µÓ?\E?,£‘?°Â>ÇÜ?Àr4@+¡?õÓ?Aç7? Óì>äÇ?$¶?œ*N?š„J?’Ky?¤$6@%x@&ú!>ë‚;>ä§õ<ØL?‘á«?ª‰g?#“³>å•?³ +¶?å4Ï?*}U<øÕÀ?>›B?£ý?\¶>å¡s>å³P>åÉÖ? o%?5ï?*ÁD?.S[?E$Õ?„‰®?#?ª@ ? pÜ?9-Ã?;Ýù@1«@?šÑ­?œ>¢²÷>NQV?B)É?g6S@9@)ðE?Á ?g„Z?4?ž§‡?˜b?•å?Œ3ö?{J™?’0x?®-?•u«?_úf?™®j?éÇÎ?Èy™?hÂ?ŽHÕ?èÛ¿?Í:? +¶ù?Uw'@#oK@Tj?…©Š?(@:Ïë@8®¢?Ãùg?¹æp?‡ØÎ?‡¥u?Oúú?Z0#?‚pO?{ƒ?‰-'?ߤ?½~P?Î…«@u‹@&@P?Óhb?šOê?ïl·@’6?ã ¿?¯øT@c@FiÅ@·?|²ä?­r?êõ[?Ñ«Ä?­Ï ?¯ñ_?°_?°hn?°Åœ?±ü'?­K¢?©H›?œÙ·?«ä?õ}j?øÙS?ñM?Ôk²?Z¾?Q£r>"Eü>…çÆ?½Hq?¿-?c:t?qº¦?ÊÁ×?Å.z?ù<¨?õW?ŠPæ?ŠÝS?G—$?4~?v×`?l ?%k?n˜?Íó?ì`7?«??kF.?ü s@Åp?ùB?ãJ?–˜?l‹t?5|·?!Õ ?µ¢?ì™@ù‰@&¹j?àvS?-Ø@î'@4!Ç@ÁÛ?®—ï?NìÛ>Œ¤­? ¸­?‰Ó\?y³?Mc›?³]N@êþ?Ö@Œ?’z?‡@­â@ +t?ì¶?½ŠÛ>û”¦>ÝŒ>I¡b?)Lœ@ @À-?¾Âà?¼)Þ?صG?Ò~…?£]w?™§ÿ?“/i?“I>ËÓ$>ÂZÒ?ä"?„›Ô?6p?,Ê™?”&µ?»‚?bé?d?n],?l(§?§R?¬½?~öÜ?kø¦?Ð<™?ëèÍ@D`@Æù?­VX?‹‘f?ngS?`þ‚?Ïíh@?@DÄ?úܱ?¶ü?kpo?mY=´‹?X‹H?Ô€?Ž·:>ð©ð>ë!¬>ô­ƒ?žï@&ÿú@™E?Œº?A?Á@?×|@°Ë@}?1ü#?%¾(>ê}4>þh{?g R?Vi?ü?³@ߌ>K."=‘XÜ?hó?jR?ؼ3?àÁh?ÜË\?××?É“y?Í?j?i…x?-Ñÿ?!Ò–?Œ¼?§*z?¯ò?Âñ?—§v?O8?ƒ‹ ?•ÐK?׈?jÐ?¾³Ñ@,Ít@Í5?Œw¤?ƒ¼>èhy?/Õ?™Mÿ?”“‰?t¿?“ ¡?Ùs?ã…¯?uPï?gÐT?gÃV?g°Ý?ÏÚ?æ·?ç~ð?åÌ;?k˜?7U?@¯š?mA?›K?Ÿ¥l?¦%?­eƒ?–^?Jxj?Hõr?KÒç?˜`@!Q@Ñ?ãý?ßž?¬¨b?¬M?¬_?¬‹í@Zà@¬O@G@Òm?¿cê?¬7x?¬(ûz ?7Y~?y¤Ý?£. +?óuÀ?ÙŽ,?XÆ_?|W7?´ÞG?²Î4?Yn?e8@2l@<Ó9?ò@Ë?äÎ@g@–›?äÝý?Õü@sx@Œ>?Ó™?¥áÖ?¨# +?§‰?·â‘?ãIA?ÓÉù?¬+?‡’y<þÆø>0â?sö?6îl@!P@ë˜?ã?è ?wê?5§§?»àë?âXP?*†.;•µ«>òhœ?b ?n|±?›U´?¢fí?aÓ?„iú?Æòå?ÁÎÖ?™¤¬?¬w§?Ï„?×Ö?s•¾?bN-?$ö>áÛ?§²?pÿ?‘Bx?ÂÅl?±­?ŒeÅ?›f¤?Àep?Æl ?ãR?ÊVÕ?]C@?T"_?JÝS?A’@?s?mÑÖ?[ d?Hj?OÔ—?ò®ð?A'#?Èð ?ÑLÆ?²o?u÷T?¥,?§Œ?pEN?p*§?×m"@G‹?üm¸@W?Â…?LA?m„y?— ²?ÇõÙ@R=@FNÊ?¬Ž?=û;?†Xà?þ´?ôeà?ã—?…ïB?]OÞ?M\?Laì?&’¤>ÝmÄ?"µ!?ŠMÔ?’¦R?\°›?vÔ#?Üž³?ÇÛA?þÆ?@¯G@+çK@=H6@?Ûü?®áÞ?˜ ‰?‘Ä?-U?z8?àå?&Á?¤z‚?¤aÈ?¤0Ë?¢^g?£qÞ?¤'‘?Š"Ž?„¢?š²?±V?Ž¿b?:¥?R$–?Ù­D?ÓO?-?}‰@®€@&¦?à³j?Òô?¯¶×H>Ö[=¥Y= ‚@>@@8"?ÞX”?“õÀ?\W6?Õ?jÆì?ÖW?ổ?¬Ó?¢9m?ž»î?”…Y?gƒ?U;$?Ë>ÔÿK?KÙ?;^º?<×¥>䳫>Öi?¤Xî?µx©?ÁRì?½ ¾?š;Ø?x`»?p?ÆD?Ñ«?Ò}ö?ÍAÔ>î5g? ÷ø?&cÝ?´??JóÍ?Zb6?M<@??|«?cÀ?M[?M è?MË?Ž:>ÑD?¹l?W˜ ?PÚP?C [?*ß ?AøÍ?i-ß?©ôÜ?Ì´¶?º¸?•™J?º[]@_Û@$?BtB?Wiï?}j•?†f‹?¤²Ó?Æ=œ?Ì8Ñ?ÎÊ_?ʘ#?/U?) +‰?HÚí?Nkó?âœ?çÛ?¾%è?š Y?’µË?òî™?òlÅ?‹+Ï?T6?…‡»?ªwŸ?œÒ;iø^<åà?|³!?{»¶?;Ñ?v?ZÅ?¦?Ÿ?™:•?™×-?“ñ?‹ôŒ?«_'?ÎÀ_?¹mè?eVX?c¶š?ÊìŸ?Æ:?’é?zÍ¡?”"^?´í¹?™3{>ûHl>æNÀ?NƒË?M~K?¦ð³?¯1:?‘.…?ƒØ?|XÑ?$Úó>ûŽ’>Î2a>¿Š?K?*Žâ?eÆt?iö)?BL\?>h?Víì?Îh0?¾Õ?ieè?PAz?ˆê«?©;¹?¦¼E?–Žß?\ÿ<ÚÚt>Dº„F> µs=ý `=`Œê>±ê=?KÄÿ?1cn?ZÐ?±M>Ö/>Öž >¼Õ»>Ó¿V>Ý•$>ø‚?SÔ?ƒã?7{Ò>Ú€œ>uj¦>1£ï?=Óü?E(È>ßW>Ú>ÇS·>߃>Øá…>°»0=™R?Dï ?hOp=’®f=˜ÆW?e’'?;C=ôï1>hœ«>ݪÃ>Ïh;±Q>KÄÕ>½£ó=¸Ñ³=IœY>ª[Š>‰H—>š>!ý<Ë;Á?#'?>éîJ>aEƒ>Éÿ?«»>Iõt?=Ñ×?E©>«lf? ›š@Ý@‹hÓ?†…Ð>[ˆƒ>û÷?~?*¡?JÂ?u¦>4Ø¡>›Ó>¬u¾>Ö[$>×# >×éŠ>Õi?FÖB?jI=?FDU>Ûs‹>ÙÝ->?#º>Tûù?\–?Evh?.__? ª?£C>â2>áŸ?(Zç?SU&?E§Ö?7ü’?)õÓ?œc?p:>q>ßQ?•×?\·?Žœ? +Ãj=× È=&¨;£½bãH&?JØ·?Bô¤?L‰‚?RvÄ?š¹?–ÅË?\ÃŽ?kŒÿ?A2m? ­Ð?¨·>¾Cé?žò?V™?%ɽ=aªP<(y<èW>éÔ•?oL?„I?ËÑ>éõs?!i`?4K9?‚œµ?¯}3?q>˜wŸ>’Þ=íR +>Q‘ö?W4½?W,t>ê >é) <¸Ç<˜QÀ>åuË?YB>ãÂ+>»j«>>„Ä>`ðH>,Úd?d?§?cI>èù¿>äf>¯p>í´5?^j?•§o>èzØ>ð_Q?"PN?V’=gÙÝ;Í’->Ã\/>ìÛ1>ö”>ù¦b?‰Æð?­ž°?§nÞ? K´?e§?w™? ªë>æì„?Q¨”?¹$?™ƒ?*³­?¹>æWo>Ý»>—Ý…>­5¶?–ö!?‹Ý?L3?RR¬>»\a>9ÿ?(~„?aV?æ)>å'(?1f´?b“q?^Ï ?[?¦?£Ä?ƒIZ>äx-?õÑ?Œ#±?† z?…T?ˆ!?• E?’Æ€?¡Á?©?yé ?mt ?Œ½ˆ?“ûÁ?ac[?<¬¶?~5§?‘Øÿ?Kë>ã+—?$•Í?vgÐ?Næ >âóí?·N?¦Â¢?±´ @ Ð@ ‰?¬ú?©ët?¦û?¡×‚?§&Î?©Ý?¸n?ú¡@ªK@.ó]?Ï û?+ Ð?$vE?Ù ?‚ +¦?öo­?♓?’š ?‘.?Ãe?ŠÚ„?*dà?-+"?T?UÇ?> ¿?Dòf?VÑ'?bÚ>û/½>xé>¬ +ç>â%³??EG?br?J`A?<>ÐÅ;=r»=æ“ç>üê7>ì®3>âH˜>âNZ>âU#>âqS>åÿ‰>ë5!?Š×¹?›~ñ?ˆ ?‡TÜ?n—3?NÁµ?ƒ%Ö?†w?Ta?>´[E?Ï?‚üB?•lf?·(?³N^?Á)ç?¿‡ö?ïì}?êqÁ?Ýã?ä]q?´ÅÀ?°¨±?N‰?k‰?MÉ©?cK?•H¢?ªÁø?´:¡?º4­?|Í3>ãë¡?Lú?d P?NÍ"?š¥>ð6”>÷> ¢P>äk >Úö<¥]:ú?\ô&?dÄÙ>ýå¾>äæp>þZ? ò¡>u?!ʳ?wTÈ?©qG?ÂÍC?r>å µ?Kü@?›¡Ÿ?”,Ã?…Þî?z“A?fD?–¤U@¥[?ç?)g ?R¡Ä@8@é?›ž?Ÿ P?XBJ?HÒ?–ð?˜ï%?Q´Ä?Gÿ?a´4?g]@?gnÆ?g†??4à®?Æ?ˆº?³$z?­?«t1?kË1>è¾?ÁÅ@*@)é?劊?¯‹§? Ô#?¡>èµ­?C>?X?zx›?¡çm?±4ì@!rO@ó?Áœô?Ã&W?šï?˜K?íg?âD?è©?ê$?åé ?Þcù?‰Ê‡?€Îð@MÞ@7]Ë?Ö°~?—–;?ø|@x?Ï’K?¤×?Ždð?zQ(?™–³?°Q?ÐùÀ?ìLà?°üñ?jæÆ?ŸŽ@ ?ÃXô?Õ¹?«#H@%Qå?ï¶Ð? ™Ñ?hCÙ?¾¦A?¸U&?ªHO?Ÿª?A§1?EŽß?N÷??<?-¬?D¹?¼?‰¾´?Æï?ÑÔ@"A@ ÑZ?'ƒ?è?¢vë?¥¸ƒ@þV@!ÉŠ?Òœ^?Àé=?ßwØ?êÝ»?$JÐ>ìtp@§¤@³y?÷¼I?ìZ¿@½Î@/¤?O ?N€W?ãõë@ +QË@ˆ@%â3?ì«?¶œ±?Ñq2?õ +š?×{Å?¼j*?\ÁŽ>ŸRú>—±;>­ƒ˜>ÑÔf>ì…p?¥™H@(ë?Ýz?~À«?q +?l|¢?Œ†7?²åV?Öî_@ð?ä‚Õ?’GË?©³û?û7â@ Þ£@1âÉ@|»?ÉÝ?Äåh?®ûM?¡£z?f??ß?lïl?ª¾µ?°…?{Ñ?wZd>o½Ä>*Ý!?-F­?Sâ:? ´ê?³ê"?¾6 ?¸«?ˆ8Ï?eå?‰¬?™»C?£d?wü?v¦®?kM?T¶©?.º²@{Ï@ýÖ@2ÈÎ?°?¬?¦å?°›’?Îì«?ÄÄà? Q³?£)"?¯ü‰?¼S‡?厘?Ñž?jw%?^i?:G?EZ:?ù®?ìÌÇ?|Có?uÓK?j?k5È@fZs@eìš?Å¥$?¶€C?H{G?Cƒã?€µY^ ?ƒ)ù?¿ 0?Ö@¯?ÍÓ?€È;?-²?ä¶j@FËØ@àN?®C’?±Ð?À1?Ý&Æ?ýœi?€®>èCö?#x‰?®]?¥Ì«?h/?p‹?›‹?“$Q?MWº?Sçâ?†ÇF?zØ?§Û?­ªg?‚è ?~ñœ?aÖì?MÂ*?FÝ??ùñ?UMô?fâ?‚§#?‹Ã?Ûb?›ª?°Û2?Ѻ®?ɪJ?¬ÂT?ŽÃW>è˜â?+ˆ™?¬v?¬€Ë?¬q“?²Er@!ÞŒ@þÁ@(*@²û?U?ke?˜ +q?¡Cr@îõ@äÎ?ù¶}?åÄá?ÂG¯?,8?±.ƒ?Ç`?Ǥ?Î74?¦ï?(Q(?F,G?˜Èø?˜ =?«½’?•Ç?\·±?cdÓ@(c@'lY?ÉŽ™?Á·â?›ô¨?˜Ÿž@º°@*¦‹@$¶?ãi?øï@d°?ùªÅ?Ýûö?áài?âü{?ÂCý?Hfð?JrJ?ŒH0?W8@$ÚK@(ûÎ?–.O?”ûˆ?wl·?„†?½?Ö}à?YÏÅ>ài?• œ?Ðÿü?Öáö?Õë?²!ä?†ï?„âU?z~N?ƒŠ?8¨?.?aK?a€"@ +´~@Œ?Î%9?¹úz?º,z?´õH?–(g?J´?°Ûm?×û_?ôæ@5Ä@ …p@ 3C?û^?¡Ôˆ?©gü?ésN?Ø—?ˆÊ\?f]?SF$?h‹ ?Í.³?ߣê?ÿuG@ ‘Þ?µ¿­?_`?æ@(ˆz?Ò8>tÜq>Ñ¢{?„P?†zŒ?²~±?­Fþ?£”Q?¦ûV?¤Ì?žùü?ïŸ @$ƒ?›¦?]Î?p²?‚1!?¯Sh?ôXþ?Ë+ü>Þ{>ýïÜ>ݪe>ק”>„þ®>­0K@3?Õ@A¤‹?Æ~Â?‰€y?J%»?³Ù?d?¡ãØ?jw¢?yà?$º;?\Œ¾?{=7?ðÒÓ@-Ç?ôŸù?éÝÈ?© ?¥m1?ª_?­Än?Ñ4p?Øx‹?¡«¥?Q«Ü?/̲?!Ò?Jè£?œß³?Ÿ»P>éU;? ¤¯?ûÓ?4[Æ?‚*t?‡q>?‚h?yz?ãµ?–À?‘Öò?_\û?‡dø?Í× ?ÉŽ@ MB@Ïþ?ÈÁÆ?¨ãU?±ãâ?¯c¯?¹Õ?Ò9¯?äÈ@;¾º@D^@4<@9Í?Zì>æ|h?¸k@à!?é ‚?×]S?½±:?,õ?a2>êç>ØvC?UŒ‰?8!?¡=? É^?ro©?ðn?&ë[?UêL?~¯4@J©@ù?ÒÄ"?ÊF9?›öÜ?‰4Û?esÅ?6‘M??s?é?)M?Ó‚7?Åï?l¸?tðÀ?ïÂÆ@±j?ÛB)?¸½‰?—’?VP?‚žØ@N=?ü“Â?düù?2™õ?ƒ£?Œþ’?ÁdÕ@ ¤?÷´à?T+?sµÎ?í-¼?áò?“0¯?loø?"‚P>ù ?D+(?œÂ³?‘Òå?Pª?PˆŽ?d/?M^Ò?0é?5³ƒ?Fôz?Oå"?SŠ ?}Sc?–Ý–?Ý Œ?¿w·?3nÑ?Av?[Jn?”2µ?›À?žt@?¤}H?1%G?"þí?@µë?NJ?l·”?«?m þ=4µæ>=³â?Ö¢•?â½?‰v?1ä$?#Þ? Û>×›Ö>Ȥé>±?\å{?t;?ŸùJ? ®‰?›w?¸—à?»ÑD?NïÏ?Z;¾>Ä‘4>æÃB?s è?™¸²?•ÝÄ?’ÿ«?Œg¹= ">]Î$ä>Î?†>Î_²>Î…F?2k'?ŽE@?‰€h>ò®}>ÐuÃ?¹!?+±Þ?ØZ?Õƒƒ?®Í?’Rq?sçì?Sb?<‰Š>´à>™û?é5? †ç?r—?B†?'€?So~?&v¨>ýÄÏ>â>Î>B;•>z>™†¸>µ÷æ<ôð©;Ô¥€=_…â=áâe>‘ÁT>äg?Hô?Ló>–DÛ9†@A> ¼>¯Ÿ¼>„>l>P‘÷>– V>ß3d>Á“v;ÙY·=Æið?Pšê??J^?‡>ÅÚ> æ~=ÓE{>æÅN>çOw?ü?£ú>·a?l.¦?A)V=”üæ>¹>ÞÀ»>lŸÎ>t½ >»X =Èj‹:0"Â>ÅAØ>¢Ñè>dÀ‡>= Z;À(>š$>6„=´$¬=§£ò;2ìA> ‹? ©>Y¦G>”öx>sw³=¹8ã>ÿ*0?C¢p?^L +?ôf­@cA3?¦0>†,§?<}?É>Ð¥6>ј1?< ‰?JV’C¾>¢>±êï>ÁÊ7>êQa?Xˆ‹?YÁ‰>±?=èêH>?ýÚ>êûœ?°þ?H’>?SV‚?A—g?>k>§K>Ñ3,>â#>ï×Ð>£=>+hœ>[ó>îI>+xI>ˆm>dQê>ù€ ?9Å…?@ýN?H0)?HÓý?Å,>ø/d=†Þ=TºØ>ž? =ð?gµ¬?Vù)?I¨?Zaš?0|Ý?*«/?ˆ¦»?ˆñÐ?ÁšÞ?Ë.Û?yšŒ?J[?0´¿?eý«?à‘=¦>¥>鞬>é§6?PÕÉm>¨¼{>¹Y>Ä)>Ï=]>Ý#>鬻?ªé?ãÔ ?Ö×?^j?V»ã>ù‡×>éY‹?’Z??š_Ú?7 ñ?îô?=á?0Ù?iÊ?€l?}p§?†Ük?enì?1ã?+®a>èY©?"kÎ?ÛÔ?Ø×>襵>é~&?aLå?`7@>ýÌ'>ç‹·?`¡,?€X ?‚},?„ž?_ƒà?æ9L>Èûc=÷]'>·y@,ˆ¹@.Oé?ú>û‰?× l?ãÌA?&%>å3?IZc?a|4?b•;?dÞ“?*3'?·C>Èuè>™Æ]>ÊY(>ä\a>Ú@¡>ï_ˆ? Q? íc?3ÆJ?ŒÝ_?‰åh>òïh?\q?QGŠ?Gº›?8yº??%a>Ö.å>¨R?±\k?î´?¢ô?DlI?z7ß?¥ Š?v¦š>â×ù?eŒ?b¾å?Kq‹>ãá?kr?©ì®?«0s?Üh?Ûä>¢ û>w ?ÝÙó@+÷@*å@¢ƒ?ÌK®?ƒas?1½É>â*?I2(?¢ÔÞ?¨P!?©[?°ð?ÃH?±eÒ?\I? ÊÔ?•·?–*?—ãâ?™B&?Ÿv­?™‘Æ?‚p?w¦Œ?)Ò/?BŠ@üq@Q¹*@î7?¦Äx?}Ð\>äZ?Pƒ@?â!Ý?ÂÖ>â*m>ö¢?\7F?[ö?æ?›ð€?wl?uJD?HB? H,?ã z@ ©s?‚H>ÍÛÑ>Á\©>“Ò—>Óÿ??Óï?—Ì(@ ¾Q@*E?àÄ ?ÜŒË?Íá­?Ѩ±?‘ä?’™õ?9\?9à3?‚­…?ƒØý?‚£Æ?l4?¿òn?ÒM^?Òô¿?Øòq?–n>ãÍW?!oƒ?Xkr?‚7?¤„?§¥?ª\›?€Ã>äL*?FF?«?¶?±9€@ ¡ü@Í‚?_´ë?Xëœ?Vz^?T>@tN@!ù>?wY? ¨E?— §?¼É?%g->X?y×ò?Ðpº?àpÆ?ï¯õ?¬?'´R?Ie±?Ùæ@?-™‰?Ï?À3½?àk?.fE?Ñgh?Ë¡l?¨ ?­ô*?8{?!îæ?IìÌ?U^š?’æ,?’û'?¡"Ê?ªó?Õ‰ ?ç°ý?mÞ?gÚ©?•ÓÓ?­`5?ïB?z!Å?K¸?ä‰>Æ¢q=‰¸N?i‹]@×>?Ô@>蹞?HX?×´?ÔPy?ÖßÖ?ÀÀ? ÓÅ?^7?\CA?jÊð?ç–n?õêN@Š“@[Ê?ÿ2b@- ?‡’€?g>ù?¶Ì?¿€k?ÉR~?Ð2K@€I@ u‹?¥Ö‰?wÛ÷?œUð?¬:¨?¯#r?¯í?ùNE@¬x?àyÁ?®[ù?²r;?ºâ?°?†?Ÿ¶ª?²á{?Ó ƒ?д¦?¾l ?£ØC?‡ì0?‚àJ?k^˜?™[?Úñu?Ý‹?í@+?¼³ >ë•­?B\?ŽP8?‹†?|O?!|?KSC?[@?9*?ˆ ?Yæ?]•G?aE‹?p®Ã@IÞí@M.E=vUã;—ï?^°‹?dù´?„eÅ?ŒL¡@Èï@ø?ýkæ?ûf€@ ^@ ž@¹ä@%»@?בi? ?åàE?ì[H?ºv~?›-J?œˆ9?ž&?‚nc?lfÐ>ü_e>:SJ>¨©4>ìfK?–¼.?åø @j@½?Ñ0m?l[µ?ªG¥?æ¿?©ùl?F'(?‡á?±=«?Æyµ?ìMa?óu?@Z‚@ °æ@Rç?ÐÄ??êû??º:?½@?I…»?8 >I¢«>”`?¡J-?ž„Å?ºr?F>?ëïù?鈄?°ñÁ?°pØ?/ ? ‡Þ?:‰?0¨e>ñy°>ë¨4?Žì¬?—é)?Œ¼»?”g¼?‚{C?€À•?2Dp? a–?&~»?cã?$”O?J¯?Þ§@q @]?ëT?êÅÌ?ça­?®òb?|º¬¦E?ŒŽ?ýx@æÐ@+$@$p@=?ý6f?‹0x?}3?I‰Ø?„˜O@\«?ý,?¥¿/?¦Ì?jƒ?{h$@ïÀ@LÀ@ +)@¤B?ì­?Þª¦@z½@}†?θ‰?Ì@»?ƒkÍ?PS¥?ŒÖ`?–"„@ïv@NMá@·Ž?®˜á?¯cO?®}P?®Ö=?®eŒ?Sï•>tY?pmœ?øÕ~?Õ?€/Î?Z¼¤?0ˆ?A­æ?;Ú?WýY?¹Iû?¼ã?)®?Ÿ@ üP@ @y@ –?³Ol?£"j?ÃÀ4?Äöé?¢?•N¥?z7 ?fÃñ?ÁgF?èøÓ?œ)\?LÏ?lØõ?~;È?„Œ?¬­?™·Ç?^vÜ?ˆP?Úû9?×V?Ó©=?În?Øwð?çw?Ì÷¼?Ðrë>úo>£åN?pT­?~%ó@[õ@+µ@>b@ ú?Ô ¾?«Ÿ?»?™ ÷?‘?Šq?¹WŽ?âå6 >õ½Î?·c:?Ã)8?­/K?ªÄ%?¹r?³™B?ë-•@E5?ó—‹?ãOœ?Æ#Ý?À‡¸?¸RÔ?¨²R?“ñ?o‚?8¸_>4?)??ô/F?Ü8?‹v­?ž‡“? +?!Ö+>f]L=õX>Í‘€>âÜÉ?Šu? / ?ǹE?áÐÄ?ÁÊS?²X®?Â6Ü?Ãè?­Î?yô'?¢>°@02—@)?b–q?Y™Î>2É`>²0ü>ÙÝM?œo?‘?r?¥î´?^?`œY?T{}?4¦?rÑí?¦Ò?‘´ ?l?¢I?¨°?¼¯™@ ûª@© ?_×?_Ê>ÖMÃ>’ÃE?¯gS?×À?Fu÷>ú[´?¾„]?õË[@ÿ@¿¸@Ù?ž*Y?Ž °?—([?¨µ¿?å >?×Æ>ß~>÷÷.?hp?x9Ï?"Ä?’a½?¥-°?“‘Ö?Wz?#t5? )L>ê—T?rM?Z0F?wIÞ?º†K?ª(û?†—C?dÔ›@ N§@*?Ùà6?Ì_”?ý4Â@ +&?ñÛÄ?ÕÌà?²w€?ƒ;?D\.>ÛÍ?›?\E?mä@5:@#D¶>lð‹=«ÖÂ?Bžm?wÎè?°Õj?ÕÃl?3Ù?Rq¼?!ôS=’­¾=ðF$>Ú€>? -þ?Æ%w?¶ >÷±¥>Ú•Ç?ŒÆŸ?£Ñ`?£ÁË?£¬¸?6☙ÊS?Yߊ?cמ?<4?ŸíÝ@ÿ@§@"r@"æÒ@GÇ>@XÐé?½ª>(8Ü?/Zù?¢vO?¢]/?¢Jõ?¨p?ò·p?ýƒ?Öî ?×ó÷?„d?EÉA?gù)?šÆo?« *?ª@?° Ã?¡Cx?¥î?Wç?T ?U¨?VxÃ?ÃÖ?ÜÙ²?›Æé?V§?]àº?d®?jq‹? Ôï?©»é? ?‹Qê?Lì?Ÿ¹]?Ÿ¥¥?ŸŒŸ?šX˜?›=?”¹Þ?e??}'ò?8Ë?‰*ñ?Èöÿ??îÔŒ?ñ!«?Ù9ö?ž%?ŒTÂ?=˜f?lµ(?€HŽ?…|Á?¥¢€?¹79?=6à<Ž^§>“œ>éj™? æÿ?ãf¹?é<ç?™£É?Ÿ`Ò?f±î?>“?”Ty?Χ ?®2x?`»?Z`?ä$©?ØS?(ï>°Û?!#?OÂî?9“é>û®? +Þy?à¶?ó%ž?D>xÎ>‘O>ÏS†? +}‰?`,?lù?Nrœ?N\;?‚K?¦?;±á>Ùu°>þç?1‹ˆ?Lj?07?Lâ@?ö…?š"?¯‘ê?ÌÇ?ÀòÊ?ÂÃ?Dõ?¥Iu?›‰Š?¨†Ð?ÈoÈ?˜9ò>Ó“?%*?îò¢?Ü +Ý>Ï›_>Tž?P‚/?™¡ž?ƒè?F§­?9Ïø?uøU‚“>zð=P8û=µØ?£!?6TÌ?`{?·‘?rçK?fw?SQ?Köñ?Xxe?‰øu?yïs?0Â%?€ö>Ãf#>( í? Az?Îç±?¸±Ã>Ïo}>Ïœ2?šð?ËÞe?ÕO1?ã†!?Ò)H?œ'‹?žæ?ª ù?•Xá>TÐs>…Ýw?9>]?S'>žæ&=*¸?0si?£ ˜?€ré? +5>º×¬>ƒG=D >Ìð^>¿^â=yq½>.>>ý·?FÚÇ?£µ!?bÞ×>Ïy(?í7?9X?‡Õ>·Õ>‹Q×>¾1>ÚY'>ÜRJ>áÊ?aÞ?Wæ->õRÁ?ÒÛ>¹J>ؤ+>æžæ?O@?“ž¢?ru¡>j<>˜”i?l~?kÏ&?m°‡?!Ù=ºÈ=¬Úx?ÿ€?ŠÉ>·³?? ?P38>)F3>7d:?ǵ>‘N²? +8<ü 3>åA?ò>Såf<…tä>]›?y[Í?«¿>@‚ =u&•?Õ•Ú@<ö2?Á;V>Ž²ô=êZ>±h—>Ð0>Ñ)$??A›?U‰t?, >‡=þ\Â>}«¿>!¾Ë?<%?Ô.?ÉÂ>Õ»>¤eñ>Ô7™?„c?C~:¾—ð>ßß|? >Ïrs=ûõã=«w=>ß@f>áS·>y>vE>›{>‘¬ >ã»>ä>äiP>ä» >¶Ù?>¬Íø? rV?:Í?€"?¬ Î?¥°¢>óÌ>ÂRY>öˆƒ?–?1‰?:”s?BuV?h"X?\ T?WK?j»²?Îð_?äÚ?¾þ4?®ºÕ?J[>êtÜ>màÀ>›o·?T/Â?bÀ/?Èä?…ÞÃ?¸Çt?Á¹G?D•J?*ˆè>ö9n>é¡Ÿ?Hžz?r÷>çËó=Ÿ.=»¡ +>C`â>é|›>µ$ì> +–?s_@N¤?ïDÇ=ñ³E> é³?``?}‰ô?sžÆ?hò!>Ë÷>„8Ä?O¢¹?˜IV?–^”?,¢?8¬>"ÿ_>{@Ö>è/ë>å„>åˆ=?"¥Æ?¬šM?¡ô“?g«¯?`w¹=¤P^=¿û»?­V?Œˆ?T?˜em?@]?%àÊ?›ù†?ÍJÔ?fö?6¿Ä?:å¡??‚?¾¹>¨C¤>éZ? Eç?_®?H x?TIA?eƒr?lay?«ü¡?«=Û^->ý$è>MMÔ>â>¿ÿù>äŒ4?ID“?oz>öýx>&X¥=Ôå=†¢á>_ “>Ï­«?cÃo?P»i>°¼y>º;B?—ôõ?šV,?S:®?C=Ž.˜?Ì©@| @Æ™@$ª=?Çü9?bÏ1?(¥b>â²B>„v<žG@>Üè?YÓ?[E˜?qE'?œW?´;Â?µ³ ?½n?yt×?†e?͇@?“‡?Œ #?/Z +?ìX?`Ý>âÏ?/’÷?aúŠ?}…?‘f ?ž_4?·tþ?¢]Þ?= _??ѧ?B™?Hm}?aâ(?aó;?ö”_@â?®Õ?£Wõ?€Z5?hžZ?h¨~?d¨?aç?aëD?Œ«.?©Aã?¾‚“?áú`?¯HÜ>âK>æ[?y>ò4s>wbó>•}Ë?bšý?b0N?°Q|?° ?’^­?™?FÌs? +ýp?N¼Ø?r$N?&U>âŒ2?T ¬?®€ú?ÇN?Ûr/?ÀrÏ?v S?rPo?…,ü?wNô>ã¿>é¤{?šÂ_?œã1?ª +O?ªw”@ Å”@|?Ÿd?žˆd?D#Ã?ê?”Õ>õFØ>åD0>ãæ¾?"?d‹?=£5>ä'-?Ta?lÀ?rŠ?†kj?ˆ¼.?dŽ¬?d¡ +?d´Ã?dÆ[?³?À.Š?c}Ì?@ä%?ººJ?Е0?»ÅJ?ªØf?ŸÌá?¦6?Ê'æ?äÓ/?ÏI>åÈ0?¥k?‡?E??V?™<?¿’T?«ð;?fhD?‡ã?÷!`?áWµ=‡²Ú?µˆ¯?³Žñ>ñæ>çS@3_Œ@DòÙ?œ\?gcä?ÐL¸?çŠØ?N°F>ï4?Š/ð?­àB?QÊ??ÄÞ?4›m?SÊ­?õ>´_R?L|?³h6?k,J>!š?Èä?Ÿ^´?mò?Uþ?l¢?w•P?ibÓ?dÕ?^ûÇ?Y'ƒ?fúÄ?ï ?ïHP?CÁ?Kk8?Øàä?Û;i?öÿÑ?õŠ§?Tg?GY?ÔÔì?ä”?­Þ|?¨>,?€ÉE?jNq?¡˜`?¯Ï“@ù@’Ú?±‘?v‹3?¾Cð?á‡Ö?Y+<>•Æ?J#?4œc?¨#l?ëv?²\?k?k)¶?k6q?–]…?ÍŠâ?èŽ @ º?é\ ?•`?]¢>™Ó>ö”¢?…fà?yžË?> %?_Ê9?ÒUë?½n+>ëÆ–>ð¦>ùôT?Vt?kãg?fz{>㬣>åƒ>?köã?hŽ¢>Õš>;&$?ÇD!?ÏÐ@ŸÙ@Ö‹?ј,?ÒÄo@× @!+£?—]A?eß?ÔyI?ì6{@ U¸@¡Ò@?Q?üò?¤v7?Ì-?da ?]9û?j¹>ì@“?A©þ?lD?™t4?³MÞ?’4f?l6ë?|^Ã?‰…‰?HçÂ>ì1?<Ÿˆ?ˆ™V?“¥ž?¤'?žø?‘†!?àü^@1i?ò™¡>3‰Y?˜ù?ÂÖC? c²?S®?'·Ü?|â4?g’®?Õñ?O?@e5@²M?2-?D+¶@&ðd@¯Ý>ë¨Ò>ñ²Ã?k{$?k•€?BP)?;ËÔ?«×‹?°“r?pL +?Y5Œ?vµ?l4ä>õOb>¯ˆ?ÓO4@à¿?Òð?¥° ?êôÛ?êêÓ?êãÖ?§ž?„¼?¶sí?Ѓ¸?h>†> wi?~>›?ßçÕ?ú®Z@ó8w?0  ?çÖ`?Ïý?*È?B;k?Y¹·?wÇ ?ûõe?þÞ @ü@†²?‰Ø?zŒ?©# ?®Á5?Ä?ÏÍ®?¸“Ù?®‘æ?°Œ?®õô?÷ùT@~?Üu?®KX?œ…çÀC>çµ>çŸ?,t`?õ›?Ým+>çaÆ>ùäÁ?\ê?2:1?#xh?-â$?³™Ñ?ÂŽð?ÌØã?ÊŠ8?œG®?‰Ùg@òÌ@îÕB? +¹&?^Ùo?u‚?’Dy?™Ç?ÐÆ ?ßì ?„r¢?o: ?‚Oò?Œ›H?Ã:p?Ôf›?W…X>¾úk>àž>ägç?±{@,ç˜@EÄ?;—Ê?i"Ý?¦Rc?ªêÂ?¨Û…?˜©Ì?Úg?%š-?‚fæ?†eX?JU™?dÒX?Ì ?ÒÝK?Ü×?ã(O?+ƒ£<þD>~jY>åB ?[Á?¢X€?HÉò>½øÔ?º ?­–L>¿ø9>´ ?äÌ>áÊ ?Bí?V|ˆ?aÝ;?_Øñ?ö?y]?˜O’?»@J?PþÛ>Ôëí?jü¼?·Fk?Ö‡@|£?è¥P?…ÄÚ?†øû?ßmì?Í¡ßsn?à…ž?ü¤ÿ@Áð@ rŒ?ÐêK?¢¦?¹ù…?Ø×4?¾É}?^»“?ýi@Žå@¦B? "A?–ZP?™4¶?”¸d?´Hj?¦œý?ãX<@þ?ÃçU?žZ9?ˆÄ¥?]°Š?5wõ>øž“?=Kê?¶Í»?·ž‡?¤<â?®¸{?¸™~?³ø?Œ ƒ?oðt?—…Õ?©\k?˽Š?Ü”|?Áä8?¥Ta?£‘}?†¥¡?FG-?+Ï£?TQ¹?Ú6?Ü Ó?YÑ?8°?Š-í?‘ph?Å’F?ÖÈŒ?œšï?.jä>õ@9>êÆ•>£)lMqš?°*¹?µt‘?qy.?V÷1?kÅM?„c€?©J?­FÔÚÝ>ìú >út ?Ý^?žå;?žÔ>?ƒ#Ï?o·o?Z¸D?SA¼?kD?žDÃ?™@š?|Ê?eÛA?Í_?µnú?DÖ?5mÎ?M”_?P&w?+ç=³Â³>”ê?´={?º¶?A;Ë?Ž^>CbŽ;Zqî>_WÃ?—ð?DêÐ?k 7?RÑ@Ð<@ zê?N-=Èm‰>ÓV­?O¥g?s™?žF…?Œù8?²±—?¬†?ž$?›+V?b?JÄÉ?s¤C?²bÕ?£ï?NUE?N>å?¤À?Àjž?æ“ž?þ +Î?¼)v>ÿ„¶? Š2>ÔÎ->£;^?nj?HI+?nb ?Žñ¡?yåû?Lè~?©“)@ä@äÿ?!½?hŒ©?xç¿?†is?“‡Ì?šp?V_b<¡ñ`> H?iªu?và? ž +?K–?,C—?DìÜ? æa=¯X>—wŸ>ÏS½>Ï€x?—ö?Ãõ>ßæ›>Ð^>Ò“‰>úoV?Ê>?YH?}MW?-šÈ?Rå®? .>²Pf?lt?ÔCÞ?¸ç+?{ˆ +?‡"?U×[?U¯Y>Ûä>×(×?Þc>Üü¹>Î[O>ÙÂ?`ƒ?¢ª½?/éÃ=”¨>•¼Å?-5?-RÐ?<£:?½ú;—.=W¸á>ªV>¯m°>æ°¹>›–>7‰„=ò¨9uü==PS>>¦«?ˆS¤?}J>‘ù>Ósþ?Rbo?N¹Q>øÜ>»XO?#n?¦z>>ïÖf?Ib!?xè<«>’o§>àµ9=’w8;iš€:¯§0=5Íè>W#È=Ì<?døx?¸„¥>îr>x‰@$$Ò@‚þ)?øv>ºK¨=ŠUy?8®?5@}? LÌ>ѧÆ>Ò“4>Óvo>ÔQŒ?&Ù?y+ô?ˆØç?#)4>çÂr>ÎcÎ=‹4@=ÉWÝ>ÇYq>Û®Æ?†¬?"cY?6Û?WØ?^–>?_ý?_œV?ZSa?\uº?ZŠ¨?G@?7H]?:Ñ?>›q?7›»?0 |?!bS>ä#4>äv>I)Í=Ù?Z?lNñ?Ò4$?¸¨6?g9.?^Gý>æšÌ>æ¢Û>ƪ>¥>‡Ãô>¾|-?È…?1|?2а>ù•û>Ã%>c¬Õ>6"M?šU ?¥Ÿ ?w3ë?h?KI>Ïlý>ÙÆ>Jª>اj??Ç´?.xÍ>Æÿ? =?+u?Œ#?"‰÷?Ùµ>9N½=ËK÷> Ô/=ÝUv?_@̃E>öÛ»?Y¢"?VùÍ>¡ +¯>ÒŠ‚?£?˜ò?f°H?hʪ?¬ F?˜ús>)÷ö?â'?:W_?O%&?h8g?'=¶>àßT>„Ò:;»<ÔŒ\=ÉѦ>°“?gŒ?€îÓ?±n’?¤í‰ºŠ>i¦>zyG>…æ?å?ÓÒ?~ð?1>Ü÷º>ˆ5?AÀE?³ƒ·?a+>zþ?eg‹?eMi?f§®?i‘}?Rœþ?F/=‹¦í=¥ë™?¨Ðs?«þ¸?Wtš?@ª"?Ë¢?k?÷>þˆÒ>ïù`>á{?„?DÃw?Uœ?†áÏ?‘F@?¦m??™ý…?6?…ý?؉˜?×Ìó>D´>z`?PO©?bê?ž[p?ªR?€í?b°Ÿ?"&>â–H>Ùs`>Êô?F#n? Ì2?] +Ï>Akß>þÚ;?©­?°\°?Ïÿì?Ã/>þä?n1?uÞ?l˜Ñ?Q>ß©??–…?# 2?kÉY?‡û?…©ƒ?„8Å?‚Ê«?]Q?HÞ|>áÉc?IW?`O?#Hé­É?¾9Á@‡g?Ý´'?°¦?Ð8=?òñL?íÂe?è—‡?ÂáÎ?%Ì +?=”D?¾Ë%?¶v#?iÁA?qó²?‹9?s1†?aC\?bIu?1“½?.¸¾?x„?ƒ}¶?*[>≡?šÉë@¦n?âÄÅ?®LM?¶’/?¹¹?¦‹?îG´?‘­^?ª¤?ùãÞ@H¢?\ÙE<1á€>ö—û?cå_?_ ?WKH?Z ?d*2?€?ŸÜ?‹K? ë¬?G¥>‚à´>˜7„?=?e?¹¥?·›ù?¡l?¤ìÔ?¼Ðð?ÅÏ’?‰£â?e_‚?‡ÁÁ?“›$?uûc?JÙ:?Lª?cúˆ?¬™—?ìÀa?Ù8&?»C?¦@*?fFà?l¸¢?x¿>?Aø#>™ ?ÞÝ,?ÓïÁ>ì«>ç‘ó>çá>çj?¨¿§?¬Žµ?zJ(?uÈS?ÊÕ»?Ô S?Jþš?1?¨ª5?Är›?[`?(h?#>è(’?5KÊ?hL×?…Gf?ŒY¥?xtñ?h•­?9 }>è·­?—H³@B×@Ù?®½e?¢kc?…Qù?‚?;ó ?/ñ›?q†?&)m?¯#?µ @ %@óo>Ë3=Ôš‘?¨KÄ?®5,=·¿y?œÑ?®÷¬>}Š=·FA?^9P?Š4¾?É +?Öv?Á9“?½hÏ>îN=¹=N> 2¶?˜Çñ?êç)?»2ã?•ˆã?ƒº?k=?O)m?8˜¥? (Ó?ë>e?é|­?îôQ?Ñ„?“†?–Dõ?¥6‚?½kÔ?ë‰ì?¸#a>ë–è>íÍð>îEÛ?Dø„?ë¶Û?ÈÛG>õÐý?T? +@!G²@Ù_?kßj?rE½?‡•é?ŒŒm@ @ø¨@e@é‡>ÖÒU>Ú¢J?Èã?ÓÎð?µp?± ø?©çç?°Ê%?ÚUš?è?¸@ù<@í‰?¼¹Á?©”?9ú +?‚>óÊ>ì/¼?ŽöÆ?°,À?°>.?±?¬W§?§–^?¨o?Ðkí?Âê`?µo€?¤M/?šfØ?¼ ?ÕÄÎ?ÏÄ?È@2?ñ½&@ï?Æpu>¢ÁŒ?D+?ÂÛz?¤¤?GÂ?vDC?¨3â?Ϭ@mw?û]?qö†?”5Ò?Ú#â?âN¥@œ +@ -½?L\P?JDÍ?kz"?ksÍ?khË?kÜb?”ø?–è>?°r?°oÚ?Ö{¯?Û’o?œ®ú?›yp?‚h-?uq/>XÛ;ïfL?8y¨?ouã@LØ+@wè»@¡…?¤(V?´b‰?Á-ˆ?Ÿˆ?‚râ?øÜ1@#ä*?àŽ+?ý€?Ã1?ýpB?þW9@±É?à?ŒÈÐ?´px@ Àÿ@ …ü?épø@d@D¾¥@/å?È£ò?Ò© @¶t@ Œ?6"y?Z¶í@õ|@vó?Í?Œ>^?ˆõW?‘ÝX?^»Ü?X@Q?¯)u?´º„?Ú•i?è7H?nqz?% ‚?îð0@™ü?ü3“?Õl!?Ò&m?Îå\?°&è?“‚?ÎF-@Úê?ä‰ñ?D?%•c?S°?ƒŸç@I´Ð@9É[?©0 ?ª®Ë?ý¨?íü?GïÆ?@øæ?†`?+—?©Ì¤?´•©?°i?¬ãá@ãw@DùR?àó|?vÀ§?%ªA>æ1Y?“/?àl½?‹ñß>Êü¢?>Ä“?š“?¡½M?¨ì«?§ºO?fH.?RàÉ?{,?:Áí?6·>÷Kô>àíŠ>äý°@d’@mN.?­õ»?d²N?[ʘ?oDp?‚>ñ?eg_>óäž>F÷?gž?É•?†S‰>‹¨>8Þ;>ãçá?ÂË?n»H? Z?þð?ˆÑ«?•Së?‘NÉ>vÇ ><œV?ü˜ö@ ù4?îð?ã”?[™¹>ã¿á?yy?¡®J?bÃç?#Ê?*ò?Ç"?4«Þ?ŒÎ ?{_7?;Ì ?vÀ@ U%@W#=»æ—9z£ü?Ò#4?Ö’˜?˜“>á°9?¨Å?ÊÉÅ?}\Á?™?, ?@Û?ŒÀu?·Î@’S@`Ó @Q\—@#b;@6?Äs ?·Íš?Yk>äÁB?u³%?eÈ ?\>àWÍ?PaÊ?fVw?>êÿq?£9Ž@[?åæp?Ò ø?½·Ÿ?V>Ô?eÖ?ÖSG?ç ?Ñ’h?Úá;@$ 1@" +S?òÞp?êµô?ï`ú?ô ?¶û¨?ˆŠý?—&2?éà?ˆx?j]o?'0§;©Ö >v-?o% ?vm“?7²·?K2Ë@ä­@ +¼Ž?Îmæ?Ä?¡?‰|­?WêÁ?]?]O?~9R?ŽJE?[cÚ?\î?+2?]æ?d:?ÏÀ'?Ô¿_@\Ä@ ð,?½4^?¥vy?­¼ð?¶•m?¯’K?¥=ç?»ÆÞ?ô?ÑX$>[€Õ>^I¸?¤õ‚?¨V^?œYö?–º€?Þ·»?ád?ð"B?þ<Â@Ž¿@ #?ØE!?ZEr?‰‡Ô?¿ñ’?£ÀZ?}UW?„}ÿ?£Îï?£¼¢?A??¤?ÜM@³–?Ô†Š?¯OÄ?ž,Õ?{P#?mN`?!ñë?%ë…?“CB?˜¬«@+r@•ö?PT‡?-À?#5U?pJ?N~ú?ˆÔ³?Ã.#@Æ–@³î@gÓ@ßî?Ò×B?ÆîO?»ž'?°HÒ?\B8?)2j?µ©@Ú?¹[>ÚRO>÷„^?a×z?m|?MâÇ?ˆP»?àà?øˆ?žsý?Eõ?©Ëb@V»?ØF•?” ?3û¨?ßȬ?Ô(?Pœò?7 ?'.Ù>ø:Û?K6?˜œT?æ ?6ª?3*G?žÏ?ž»3?·H—?°b?~_»?S&?W‹à?eÀÙ?O”—>þp7?+Θ@ +7 @ñ?È<õ¯>?:L?˜¬W?‰°?VÓö?Z$?Ì®?À æ?“ÇÐ?–ÞW?%Ä;>Ìn?­ÄÓ@=?ç Å?œ8?›¾‹?¢U+?´c¥?òIV@Äq?“ò>ö +?W;u?ÏLÌ?ÐQl?àük?ÚËN?³qX?œÎö?|Ì ?N™?wC?®Có?°/?N8‚?N%Õ?YO ?Q9˜? V?ä÷?P«Ñ?m ?Sô¯?M|Û?MoÔ?v £?’,Ï?L r>ð­/?¾²>Í >Ìÿç?‰¡f?ž +)?Ïrw?ó¬-?¢éd>ÜÍæ>õïó?†p??šÊx?­TÄ?à ?–za@ú¡@SO@'žÉ?n÷?{Dn>ö˜€>Ì»é?1)?HT?,N?m­?K›C>Ö—ô? \?*÷?3Õ?iþÑ?—ÁÈ>EŽð>œ+>Ðaš?ö?-PG?g>ÏÏhÍ?C±6?O×Ç?/Æ>ÐH¾>Єê>ÐÅM>ï‰? ¹?ä˜>ª a>0b5?3~#?RË#?€½>Óq5?*w¶?‰¢ç?zOo>Ôñ&>ò6€?U´µ?V0?@²?2ž4?! Ê?-)ð>Ý7W>¼uÍ>Ö$H>åçã>‹bÔ>+‹Ò>ÜQ(>ÊrÔ>µkL>Ÿ:)=‡x>ªÛn>ÂBÈ?^ƒÀ?/A‰?|xú?bÑF>äKì>×v>¸¶Ô>ÛÁ4?±‘?Œ…!;Áß\;£¦C>‚Ö>홧>Ÿ ¹>ƒ„ë>óþQ>ðй>Ô6Æ>—pÆ>έ>d->¯Á>—=A?ïJ>«êÛ>`ëj=­<É>¸8=šÌ•>ø-C?XC=@@Gð@°0?ûfé>»å>ƒØ˜=ÔÄ'>^t$=é >5#±?&Ä?*S]?3Æ?N ö?>æ¡?š¸> ´«>‘<?`œ?Z5‡?Ì>ºäÙ>­h>Ú™i>ÛJB>ó°P?$)¶?Oá?]¨Ä?]Õ?EÆû?MóÀ>Âùý<+jª?¤/?_z>Þ¶Ž>̘[>òÍU>ãÕ¼>ä)>äw>äÇñ>åÙ>åX?t•?«•p?_Uw=s¤@=© ô:=èØ>Š"d>ƒf˜?;›`?\#à?˜T ?ÁL2?œ{7?Nפ?Dtp>èkë>á†<"rv<ú'8=@‰X=…4®?RN˜?‚Ôß>ïS>' =éxÜ>ƒNØ?yNo?†Óí?‡³à?€¾•>êÃâ>é;Ò?Bö?Xì?eÆ®?i4}?›>úûÐ>l= ÙÞ?¢Rä@$“??„ 1?Ž}×?Éz?ºtÞ?3É]?<á<@ e@ +‡>’§i=Ö¬?³è?תV?ãÂ?h 0>ž$“?…?[yr?QÈ5?H'v?M¯?g^?\k?Zúö?b6K?J× ?Q¹æ>ú»Ä>â>Vg>D¬â;—øh?]?'‘?p„ñ?|ðÌ?ˆ”À?–©C?»3c?Ù|ÿ?d¡#>>o„<´:ó?UR ?a^ã?i"–?dFÃ>²ÇP>xmÛ?j½W?S?Nñ?4hù?‘²à?»{_?µë‡?ª  +?ØÇÂ@Ø@âZ?o K?©°“?•å?n˜5?m%Ó?„ä÷?¾AÕ@#r@  =Ñ]“?©i?© + ?dÈ>?aÎ?aÄ ?aÃÁ?^o?jK¤?rá„?{n)?¢'?´ì¡?lɽ>á£ÿ?CøT?£%ƒ?’&¯?TcË?-Åž==M—>áš‹>ᛈ>ã8g>ìè#?° ? V¨>¾€=WÖš?ªÖ?ëí@ ¨Î@DZ@^«@ È?äfH?¤šJ?²!•?º7_?®@?ÀA?£ Q?—æ?q>?_Q?dQ£?eVc?b&Y=ð””?w#â?¥¿é?W/B?Ž|?™#è?ÓF?Ž(²? +°?ußH?Î4V?ÚH³?êS?ÛüÛ?¯mº?¥$?bøî?\•ê>æ +s>äúf?§Ø?ªoø?p ?e›…?×X?kO?Aûf?K`Š?XZòî0>0Vþ?3/Ú?y?\x>¿ð[?"¡–?†;”?‰/ ?z?jx>>;ð†>ž3n?ʼn”?Å´'?fÂÌ?dì—?2v?3+Ö?`š?e7r?Bˆ÷?=‚ž?‰[ž?š»>Üp>é£J?M-?,Ç?€Ê?'5¥?W¼^?ŠÀ?µé^?zlE=©>q$?f“W?f§Ñ?f¹Ð?tŸò?ªq|?«Q?ã ?á¿ ?Úœ?×%‚?·„?¸U´?šÀò?’«?Vá[?UL?N.n?AÔ¹?uëÏ?‚g(?Žr;?•‚Ù?Æ¡\?èFì?¸¸®? n?bëê?&H|?¬_V@@ç?õˆõ?›]y?Ž­à?Vª??wUÑ?®Ó7?œ¢?TA?€SQ?Å•¢?¾å?³¤?²,?°´¾?«!â?i»G?m~s?®4‰?ª¥µ@ ¢ý@ KÓ?cY>?I°?eGõ?j@@ÓA@!C@žŸ@ÎH?³4Ý?–™U>Œw{?lp@?¬•?íI`@³”?È¡-?¦Dý?Ž‹?sŽ$?Ÿ ?Çæ²?§ûÓ?ƒ¹§?ÇOà@7?Í"æ?ƒñƒ?ªls?çÊÑ?¨O>íOD?X]?kt}?l$Ù?w ¯?™•½?ׂ?² ?Ÿƒ¸?§Ûš?¢›?£8µ?°Ò ?¸'ø?ò,˜?õÇ?ä—?èçA?°¦@?Ÿ7 ?káñ?nR¯?°´=?±/Ó?d6?Sld?|§„?iPÕ?—ëb?¢0?w8—?kûñ?§}]?°øë?€Tª?jJ&?B? +;±?˜;G?°û~?Wµ?,ƒŸ?¡áf?Âï“?«Ê?¢«V?­ëÕ?°îI?å @ŽD?ðv?áÖ?ÓýØ?Æk•?n‘é>aüM>Ÿ#M>뿦>Ÿ/Ö=›6q>aEÈ>î´˜?¤==@0rt@ â?k’G?9Q5>Ÿß€?^ÐÒ@*O@Z'?kh˜?kbH?kXš?X8>í$‰?MÐ?¥áì?¦$F?é’±?Þà?¢UÓ?¥9©?@ßã?'@r?©Åò?°&??°­?¯ :@§Û?çg‰?ÏqÌ@ ðs@(Ñ@Ô}?Ä7?íï(@ +ÅŽ?㘦?¯uä?ä£ô@%?ÅÊ>é¹›?"²ß?wÖÊ?—Ö+?Ô×?âåÓ?éc??Úx¾?¸ß?­9/><ˆ'?é ?î§l@$Ó³@ Ø—>ôy_>è¿þ>è°À>è¢8@XD@.b@-D‡@*$z?uMû>èB¬?©È?àCÑ?Ð?Ž?Ú÷Â?çâ€?ª»Ú?gÁ]?Íj`@Ši@‚S?̆Î?¶ ?l)*?“fÓ?è<×?Öùê?t"þ?†æ5?Ç©Ü?ÄÄ`?`x?&6-?±*U?ªD(?£Y=?œo’?¸iê?ºlX?aE?K?ÀOµ?å‹¢?åv?Ý0'@MÍ@:Î@‡7?¡ ƒ[?­?R¶Õ?‹‚ú?«ñï?ªÔæ?¦B_?‘½ò?cŸ|? ÛP@#¿@m!?ª‚°?«°‚?”X)?„E +@‰*@°â?èË?à7¿?Œê#?`ߢ?·àÉ?Ùµœ?Æ2ë?¯?ß%è@ƒý?äÛƒ?À€h?–gÔ>âl?9 Þ@;@ ŸN@ (@Žˆ>O'Š>¦Æã>ãÓõ>á‡@ŠP@× ??Y‚?61Ð?C"?¦š@ +B?ì¥ü?¯ÆÛ?–!>ô,x?CZP?–kt?˜ÂJ?(:O?1)C?·Ø?Ãu?8è"?t4?¹ub?ßé«?´å0?˜Î?xjI?vü?‰Gí?‰å«?†F´?|üƒ?y3à?Äa?H*?füœ?_ÇØ?®P½?¼Ñè?•?º¥?š.€?£¤6?ÈãÞ?Ïz?ñÆß@ Q?æþì?¦Ø&?· Ñ?Ï(?¶¥_?™"¿?›8Ÿ?ØÕ«?ÀJ'?ãÓ`?ò9g?›‚a?|I?ùÍ>Ý´>åÞ_>ù–þ?—jV?òŠ7?¥Öb>aîÝ?Î?ÉAE?¬ìC?•Œ‹?Ÿ£ç?aŒf?hÈu?íµ¬?û+0@u®@á÷?Ö>?¥A?ƒe ?òâ?f +Ã?ÛØa?Òš÷?¤Â÷?¦êð›>f“k<¿†P>Çz£?…@'?Ùö?,5?‹°[?Î%Ü?ÃQ?‰¸K?”V!@"Ô@=¬Z?ÙU¿?p-Ù?I´)?þ?#Øè?.²ñ?B0{?m¶V?bì@º@}ì?øs¶?ßO$?´>?*ë?$'±?0¨?Þ>®@jB@VM?×»3?ÚÕ?×Á?×xC?¹ýð?ºY?€Ë?1þì?í,@J3Ê@ïT?UƒŒ?{Ý=?êõŠ?ÙÇ“?=øw?Ÿ +?t;ž?å^?X~9>éÃ?ò¥?jéã?›±?ι?µÚÉ?ºVÖ?Ë“Á?¼~>ÔŽð?ŸÒT?ÔJs? zR?el£?=9½>¢r§>õܹ?ž°V?žž8?ä$Ù?þò?œC–?S¬?‘z?µ)‹?¡‰>ÐmŠ>Ç8¥?à|Å?Úr ?rÞm?Qwú?¤±?ǘ1?—ÉW?@¡l?u:ï?Î=™?à +i?j 6?RÒÕ?Q>О›?ÏÈ@6[Z@æƒ?` ?wnT?"è>ý6Ù?¯…€?Ò»?“Ïa?1\à?süÜ?Ï,?ÏY?ÝG?ït +@yã@ˆš?ëWÔ?µ=~?¯ˆé?µr^?«o.?júË?^žÊ?‘÷ü?š%J?qÖ?7Û ?j®Š?¶E¼?­ƒÎ?lÝ`?`cD>{ã :1.>oÜè>Í ?wa?‰ÿ0?mÞ·??f>õm1>îÙµ>ÍFA>ƒ²S=—a>mÊ? ~?àn?)Ã?86r?XXC?LÑŸ?F¨Ý?€©Ô?¯}é?Ÿ¹å?’üá?MÌA?ÇY>èÃÿ>ÌðH>Ôm>ÌÈ¡>Å>#>^YÀ>*À?=î–=†‚3>‚ïo>ÐRƒ?ž?}…5?‚ü>ÈÂ`>ýW?.…?@ÈV?LÐ?KÕ·?F{¦?N¾¼?:`Þ>[[™>ˆw“?/Ü?G g?OÎ&?I•—?%´>Ш>ÐCÀ>ó„/?Ö +?„ƒ`?˜cM?aÿ\?R­u>´:û>!Él>Ê ?£¤?ð>èWË>Õ¿³>áíÖ>þ½–?V^R?Vç|>ö? >×Û~=í^M>ƒªî>ÙãÕ>¹ò&>ƒ$ò>˜‚g>Ü)–>–¦>YÖ‡?KH,?Ãp>‚n>ÁŠÀ?·>^?ÀˆV?žc}?˜ÚR<±6ú>bE²?¯4¢?˜ƒý? g?œ#=·;Œ>å Ö>ÕG>íf>óª–>ÑÒl>31Á>„ +>óĨ>No/>°Ê<ïcü>÷`Ë>Ú;ö=8¨û=¦Ñ>Fµú>ˆ¤>C)>—îÈ>ÌÙÀ>¨ ¾>®{?m…>„$ß=’×?Çà @+Æ÷@$Ê>þ¥â?ƺ>˜`n?N?Š‘É?V™Í?Ë5? „C?Q±‹?ƒ(!?‚ú´?M]O?f‰?…çË?“Za?˜ØÓ=Ü8î=Næ¨=§ƒz=ç­X>w¥x?‚ÜÇ?d8?Fœm?]O?O>6? *’?¤q>ßñ>ßt? ¼L?F3H?«ñ=äª&>á >g>wú+>OVÉ>…$ >”=x>£L4>²S$>ÁIÍ>Ð9P?Hú?hVè?#rñ>Äñ>÷Éq?(&t?v>5 $>Sÿ÷?ˆöà?”˲?²K§?ÃÜß?„yJ? +Fê>í$>Ö|à? +‚e?ežé?Yt ?L’_??» ?%t?6ê?+“? ÿ\>¯°ö>gñ +?ú?O¹Ì?s¹Y?®Å3?–öÔ>é'>â$-=ÞE§=(@>ÞGÞ>ï'=Ùä&=h ?³ëË?âD?©p?©K‘?‘|ž?T…?_nµ?jMs?Q÷J>è„>Î'©>7>&?w? _ ? + ó?t£…?q¸Ô?h22?gäÜ? +Ž—>ຠ+>î»?¥?Bl·?gdÎ?gPˆ?g;!?Š–>'ñÂ>ñ…±?sºá?fxë?f°?Tjæ>æ‚ ?9š?7À£? ­ü>Þæð>»½Ç?‰Ä?ž„>É€‹=ÆÝL?ó&U?î&Ò?ÍÃà?„D?Nc¬> 2G>Û~k?aý?o?#«?&J¼>n}/>s=±?^ë?zJ"?¨K>ã¯3?) I?DnD?‡@ž?ž’}?Ðë×@bì@ø„@‹µ?Ü`›?eïØ?Gc>âÖÑ?ÁÓ?b·›?b¤²?RÃy?L®k?Üú]?âp0?Qý‰?9Š ?„7>â<‚? Žp?ÏÂÀ?Î*x?Ì’ò?žÂ‹?aû&?‡ƒ?ÁQ¬?·¹'?N«?Cp ?wR[?wj?„¹L?Óà??ÎÑ?B¶y>;j=É6;>o[”>hó‘?“˜¡?Ìõ;?hÅ >áˆÒ?7Õ=?nº?‡=Æpæ>á~ï>á„8>áŒ>á„]>á…ƒ>አ?…ç›?†‚•?«‘Ó?·^­?¯éÞ?´ü?•8 ?†$ž?.nˆ>°D?a¸±?Áí÷?¦°Î?aÌ?|ºú?¬mð?¦ì?Q¥[?P +Û?†£*?„jà<½Ù?!Ã?.™G?=$p?HM?žŒ”?´)v?7&?rEÁ?h{æ?b‰í?±¶’@9ú@ZU?á¹J?Å{U?bب?vW¼?ª(‡?£Ä¸?gX?iÛi?c˜þ?cA›>ö—•>ã_2?å†?GÁ?MÅ?c¡ä?˜îÔ?¤ê‰?Ô<1?ø}?ƾù?‘\ ?—+ù?«?§·?¥o·?°¶Ô?­Ð±?©d1?Åïï?Á«ö?¢h²?šk>äøž>æ"-?ƒ§?„Yë?]*‰?Nfß?Dôu?KÒ;>¯3%>$Ù>±ãÊ>å°+?1…·?[3?#L¸>åÿ”?¦xW@|5?×´?fM?›ÓÝ?å<]?â²ð?à' ?Æ0ê?ré?„$¤?µµY?¬^…?6Æ(?C»ý?„*?‚ƒ&?6ã&?;™¥?ªòN?©s">âðì>»¸Ã?³ÁÌ?ÍÕ?œðÓ?‘ ?“\ ?™›$?ˆ®Z?~ìê?Z?‰??S”?B<¾?E'§?†(? ß?¤|w?¹”?¹cv?®» ?ˆr~?¼^?÷/@%Œ9@ÇÙ?ém?éjå?éz?Õªx?iœ-?\EÐ?a? ·?¾Ô°?Áñu?¤¬ì?¡ÝR??G1?Û{?èÍ?þG>@,U?€ ?†u3?kƒ>ð‚K?–>†?ªÚô?Ж8?êÇÍ?ßJz?Ö°¯?¾{¼?¸¹Þ?¤1?x?š¡R?¦i@ ðŸ@=Ââ@ëE?ë3¨?Ï9M?°€ ?°wJ?°?ymü>ùÇ ?•Z@I?ÿ(7?ë{ý?´ù? +u?SÍ…?°²U?ЗÐ@{t?ÿµ?°Áå?°Ä3?°ÆÂ?Ä.†@”»@ ”Ö?A%e?Q ?Ÿy¡?¦ý-?ëÏ$?íéQ@"Õ~@$Œ5?…[>ùj?jÉõ?kÞ?kÚM?m‡I@Zá@ çN@®Ž@ñH@•@è?Ëgk?¶j×?ÎB?Õ­m?§¨'?–U%?ÓÖä?èÛ¸?èµ³?ëÇß?»ê?›ö…?¬Pˆ?¯å½?˜tã?‰³(?Zàc? Tð?>¨}?k›c?‘…'?°6Ô?™‘=?ˆ?c:¢?q >´>8?$(±?þa«?ãã?˜‰á?‘&?k8½?QÉ·>ǸÝ? +!?Ã:x?ØCû@!hy@¶™?~w?„ln@ ç @§°?°.G?°G@G8@DÜ—?ç”:?׆d?@\?0».?•3Û?›×?þQ @Ñï?ø‡?ê8 ?®‰u?™­ú?Ýj–?úb?Õg?É­?ËDH?¾ªR?ïÈ@õ¶?˜‹<‚à ?Òz?§S‰?Þ|•@ž@ø@—?Ü×{?6qø?22Ï?!Î6?E£?èñâ?ó׌@-æô@+ù€?¨? +ºy>è“ø>è…D>ê? +3?²îE?Çk>±ÅÚ=ëà'?Gã?H=?‚ÄK?_?ܘ$?ÿçè?Р?¨Ê?û£=@(Ý?ÏJ¤>çbŠ?PÞL?­rº?­©§?±“Ó?‡“>.Ÿ>ÆoÍ?… p?ˆbû?x„ã?yžŸ?æ™l?æ +,?Òä¹?ÖL4?ñ¼C?ïl¦>÷ÓÎ=Ñ~¡?6a?h‚™@ ¸@$üê@b½@¢²?æ‡k?ÁÛ?¬pÏ?=š?™&‰?«üƒ?Ç‘@P4@¢d@G^@YR?«d!?–Ù@;ZÖ@,)?ä’?ä—‘?¿è¥?ÁÁÍ?×h5?ê%T?ˆTÑ??Ê??m?LÞ?)ø ?î­?“àÇ?ãŸ@Nˆ@9T}?þl‡?SÒ?‚½Û@¹M@4N?ÞÈJ?ÕÚß?åaã?òP„@<o@@yá?Âc¹?ªš?wª?b¦Í@T¤@8D?ÿ“D?â`-?ÛÎV?í±ã@ŠL@Æ?¾Ï»?>¼?bë?a>â,?•²?4Iå?µ°¯?¤«?=ö—?1é?üKò@b†?–â½?Çœ?;—?aˆ?ŽÛ"?¨¬q?©®Õ?¨•Ç?;?$S¯?%¡?`„Y?IJ­>ƒÖ>œ—R?Cáí?LÖ³?š×?¦9|?¨+~?«w}?Ë#ý?¡zŸ? Äì?•,œ?Œ¬ò?³í"?³ˆ$?ß Ò?×+Ü?§Fó?§;ó?—‚?‘u¥?ŒªY?‡ÜÉ?êá2@ û@±š@ Å?ßž?¦¾?ºQ5?Þ-.?Çm??£€?’,í?ûˆÖ@?§µy?¦Eè?ÉÜí?Ø—ý@‘@Ú¸?Eqè=ÃZ8?Š?®?ŽYõ?J ê?îÌ@ ä€@¤ª? +ƒï>àL?×Jƒ?Î @­ø@ ´ @³`@ â€?ñ‡%?Ç'?·‹ÿ?«Ÿõ?¹ü?Û´¸?Ú‘®?ÒÁÃ?ÂuY?Ü¢?C¸ì>íÌô>Û#ƒ?rNÏ?€Ó?f¡+?[%C?dZ>À+f>ÑëÖ?ƒ?lq,?ó£¾?éf@C÷@ …Ï>0‰«;ŠT+?4œº?‰¥?ë^Ù@éC?´¥B?XA?]sø?kéé?Z›?¢¶Û?¤?ÙÌŽ?ÞÎÊ?šÇæ?ŸÙs?”Ô?…ìÕ?EN@? bA?­S7@5Ê@š?`Çâ?qÍ ?Æä"> ‡?UMt? H?Él‡?ï™é?áÑ?é~N?à+õ?*fx?5á‡?6¼[?uè?€™U?¡”r?aÆÐ?Ö?‹†?õ=?»Y¯?|?”ã$?Uê?Rþ?Tµ?Rݵ?‹`s?²/|?¶}æ?§?› ?ì_¿?ýþÛ?#Û>à4É?LÌ›?‡¿?mV«?”s?ª„?7A?Bñ³?š “?œ{?’Gó?…Rg? þ?¤´8?Ÿ"Ï>Ð f>ì~Ä?ÇH?Ïe?§Žî?£ìz?˜œ?‡ ?‹»„?¨œÌ?²‰y?Š 3?[Òy>µ;>‹¡í?z4á?¬Ð?»Ã?Î-K?É8?š{9?šn‡?š[6?šMR?“žÃ?‰ÖŽ?¥>ö?ä"?Ø9ó?©V?•ÑÄ?Ã7³?ÁŽq?®O?Ÿ¬?X?ðp?©Ô4?x€Ê?_kO?´ ?ÅRü?™€?Y5&?/¥?J—?)å>Ò¶>Ìiš?ä«œ@=Š?Äô?. :?8¦ë?žÀ?ªßÐ?·ª•?Ä|Ÿ?‹,æ?Fu?u&Ý?œdB?…ù³??*=?%`? ˆ>ãm¹?aúô?¼U?°È{?í’»?¾´U>°B)>Î^?ç”?Á>Z?Áå1?ÆÝÿ?Í +>µN=¾Í>äáð>Ѿú>Ùš{>ôxõ?$­?#:¦?$/>W>¸)=h6);àCÀ?Õp?â3“?5-K>T²Z>üàý?Sì+?TL1?T­¾?1þ=’è½>»%t>ôxS>©‘š>´ 4=ìG>†š>Ù®>ÚRO>ÚÚÕ>¿C{>¬ó>…8<Øÿ >6Áÿ>o>k ²>‘j ?a=G?T¶c>äù½>ÖŠÉ=;Î?Iöw?s¼Û>ç›ð>ÄQ7;¢.`=€^H>V#/>í(˜>ý*å?$ >Õ•Ô;Uà€=[™<þˆ><É7>%<\>ÈBd? ŽÇ?{BÁ?Žå;ÆZ=Ѧ=­Ô>DÛ:>‰Y>°!–>×Ç1>ÿö? ÚÁ;Ø ¢=b?¹E>^1ì@9[˜@¨öú@$™@?÷«>õxG>•7>ò'N>èBG?ÈÔ?¬È³?œÖc?MW?R¶?/ô>£-M>‚ËQ>´)¼>Ö9­>ç¼×>ØÅn>ÃHù>³»›>¤ `>ß+n?os?ƒë#?:©X?2 ?%Ÿ±?'ø(?0×+>ß&>ß‚è=ÿèH=΃\>ßdÝ?(r[?)"?{Sh?lw›>ü›%>ºR|>X?m=ü½,=z 9"@=lt?3œ?SI? «Á?Åt?‡— +>‡Ê§>Žmp?1œ?7‡º?œ‹?%b}?H§.?Tp|>Øf=3¹±>½–Û?h%“?h9É?hQæ?hó?IÅA?Cšs?·8?¶‰²?TT ?)ãÉ?xÖÇ?š[?“Ã?’%?t×—?«Ü?8?°«š? M;>èÍê>íñ7?K©?@˜Ð?Oý@?ršj?Z‹Ú?=²ê?f€[?p” ?#•V>èk>¼°>˜&Y>½1>è3#?ÜÝ?z¡;?¹·?­ò?«%È?hŽ?gö?Ù†Z?רŸ?¥Bw?™>ÖÙ,>r¡?²2?¿Š?qLƒ?Öt?aߧ?­]?ŒM?7tü?(–>æTÑ?/úk?æ1„?îB=?Ü5?Úç>ëŒ7>å²Î?Ôìz?å\>”Î’>ál®?=éC?•h¾?¹¢?‹‚¬?8J?$v½>äov?J|?Êî-?«w>äî>Ê¡‚; >‘6°>š?¥>¡›3>¨ê–>°.g>·eN?Aæ?c=v?c)À?c¾?e$?cÇ?‹¡ ?ª{?©{&?¦)é?pÅ=©jü>€­¿?br?u3?âYJ?á<™?J?@©>J«j>§d?åq?Ÿ7ø?Ð"õ?áë@‹u?*­É?·¤œ?“8z>á¢?!#Î?©.õ? 2(?!.?R>¼¾Œ>€º?¦%ç?­ñn?+h>ù ó>ägò>áb¨@[@E1 @ ?¤xì? U?œ8Ø?oa>áZ?7î?ÄG?²–?H˜´?ACì?,¹~?2=©?¦FS?©??3¯Â? ->“+N>BY>r¡ >l;€?w:?Ä(å?'ý?0Û+?3l=?5ÿw?KbO?‚®É?"?©aç?›¹ +=ä¤n=å‚?›P®?žú ?Kµ‹?1} ?µ‰’?Ñ|è?¯sÌ?£†?†ª7?dèÇ>Íj†>ÏaØ?bž?d]?b´®?doR?k¨E?l\¤?bë®?ngœ? ñG?¡n£?¿ò?¼"?N…?D]\?ƒ¶?§?¤aO?¿š?µ¿R?¶Š¨?Õ Q?ãÜn?´˜é?Ö‚?ª’?Â:i?Íi?õc?×ø¹?;*?±­8@ŸÙ?èXã>ä¶Í>úÏ?Žã¯?“|Y?ä[Ö?åU?S Å?3­?NŠµ?Z(T?ñ8>Ù1M>íá>êS>å¬>åØ<>åìÂ>èT >xH5=#™?†Ü@ ZÊ@¢?æs;@/@GZË@ÔÙ?€nœ?f¬9>æç?‘?Â9'?¾}_?§Ú?¢rÉ?Ä÷€?Æ™¨? Q{>ï‘J?‡Í?–”?’ +¬?ŒeË?8…U?bR?{˜V?…žÐ?M‰?4t‘?>?±?ºê_@ö¶?€Ç=o߆?-ð0?ªã?‘JÁ?e¢»? +ƒ«>ùX?¯G?Áëº?éU?ØÏÕ?©+Q?¦<Ü?3u?Aš?¯Có?œ §>¶ww?6'?²Ûn?©í´?ŠŠ€?ŽP?é¬?éöå?µÜ>êG?aë?j^ü?±lé?½™+?†`™?h¸?¿£?ÏŠ?b½æ?&üó?±O"?ØÐ?Š?T¥²?j¼s?o$m?¿‹?ë ®@)¹@L\*?õqß?s¡ù?ë? »?~‚v?Qˆ¿?¨ÖÛ?ëU?³1?°#?¨ùR?l×D?Uk[<…¸=ø'€?’nÏ?¢¢S@$Û@"é?Xr!?D)¶?†±6?Ž?ß„-?ê-ò@ +÷ò@ 3?–+Z?iùÜ?ëÁk@ $?’Ý?©®?î¸@,¥¤?õ h?°Ÿ?kå?P2Z?êÇŒ@4|@í@@‰'?ì•#?»ÚØ?©pèor?nú@@Ú@7zœ@Žð@FV?‹H?ilá?œ6?› #?Ev?3tý?¹p?æ^¢?ð¼?ù¬%@®˜@‰?¥ÕX>ï {?*#?k%?¢øÌ?ÞS{?¿ +ÿ?~;?~ ®?–öÇ?Šñ8?f¬?|Žd?¤“}?±??»Ï??¸%I@@Öâ@)#i@,~??”s£?eÚÄ?³°u?Ð ª?W€?B%?p_˜?ŒéC?ŸÚô?«ü6?ÒÝa?îŒñ?Ë]0?«Ê?¡æ?xÁä?H“Ä>ìqè?QI@#„@¢@0Wø@* +ø?ï>¯?çUo?’oñ?ˆƒ/?¤Êº?«–?9äå??†Õ!?ªÓ¤?íÀ@ _[?§¯»?"‘e?š>?ÎNw?¿¥?ÅÏ;?×ò@6X?îØ +?-SA?Mé~@F@  @ °Æ@ ˜¡?…’ž?b„9?ž#Í?ºî%?Ãœ(?Ä^È?‘q?GDš?´è@Ý?냨?~|j?É;V@E4ý@„ù=i¦å=ñUè>ý5œ?#™}?bÉ?aEé?Ξë?ÎÍM?ý°f@Ì?—ü?Zœ?`ÖÈ?eiµ?Ó?¨z£?ÁõÅ?ÜšÃ?ª-ø?*§?3}b?¯1>÷ú?^iJ?(Â>ê<Ç>â\M?ô@^ƒ?w-?6mM@d@5?@ Ñe?Ë¡é?ù^Ø@#èï@#œ¬@ +Ш?èj?fn?&B’?xÙ?€°Œ?…fX?ŠÝ?Íçp?Í°e?Öãd?îÒK?¥˜~?_³Ž?‹ó ?¦¡I?¼Øa?Þ›?Òêk?®j·? ‰ò?`ú?–øµ?²Rþ?­VŒ?r¨†?]i²?W&?*#l?“)“?—‹?|Ç?]ñô? +?¥¡?œŒ?{zŠ?˜aD@%hÆ@|R?¬¤™?±®o?ƺ¾?Òqé?°á'?¥+?ìˆk@ l?öIÉ?Û·g?±°™?j.Ì?Š›?²že?¿%r?Ô ?¯M>ݺä>Úü3?Àt?ÚØ5?´¬¿?¢„ï?™ç?Œê?(Ä>4¤“? ¸?ò¦@ãf@æt@üu>ô'Ý>Öeh?Ez¤?Y†À?´=?äØa?ŸnN?DêQ?¦H^@V?õÚ?¤†!?Ÿpž?pÂä?ƒVÒ@ýP@R?„Ê'?IÁ†?\ü?WèÞ?¢?¡±`?¥ý?™ü·?ˆo>™Ð>Ct?œ”¬?²Ëy?‘Q*?qèÜ?ŒÎ‚?¡:.?¿?k2†?n†?VÁ?S9 ?Fö¤?i k?[ «?Uˆ4?Uq?[Ã?NÞ?]ºN?‰™?ž:»?§[? Ç;>üE?óº‚@Š?a{&? \D?*¤?,àŽ?™¤k@!΀@%(„?{‡ý?cÿŒ>á†Ù>Û›@>cZ£>]­?jU¨?¸á‡?µ,¦?Ê%è?Ö÷þ?eìÅ?Q÷M?¼è-?¶”á?–¸$?ˆ)Þ?‚ž?x3ø?_"ó?¹5>æ(?Q +Þ?Z†Š?'¿å?,Œ?P‚?8£Þ?2•?V)? ¥ ?Q™…?VÒK?¹‘þ?Á›Þ?–a%?nÇ?‚?jrö?‡¿@/œ¬@3år?ö=D?ɽõ?¤&?š¯6?— ?žš?¬Â?–ݪ?šR9?šD“?š2­?š#o?š@?—ó0?ªŸ|?¿âå?M"«?M¦?»T`?Ìòp@š@#D°?óW ?LµR?R>?¼NÄ?ËMÿ@ Q@2?ê42?·ý~?ž:Ê?.| ?7å?ÒÊ>Ô|?m„?±QË?˜(?LRò?LWã?L[?L\³?Tå™?LÓ]?Ä9!?å-~?©ré?heA?ŽËq?º©?­Ê=?˜E?™¤?=Ê?mê?g?ûã±?ð*{>³ >I­µ>¿ì”>ÍæË>ë…>Ä"*?'@æ?äŠ ? +?>çc?“ ž?˜-!?âã>Ïôî>Åb§>ä.^?>Wi?ž ?r¯i?œÝh?Í“?‹;~? ,ë?œ>€ïÄ?¥U?SÎR?T,9?TË?>r">˜>rix>„“=¬Pð? áw?B³j?jfà?vSŽ??2´?'¿>Ÿ=´°>–=s>,Ä>ߪÊ>õ?BÌo?^d?_—;?D˜j>¢Z˜>k^€=7f>Á ç>ºÜ=ÿ,Ë>ìíÖ>šàê;R6ã>jW>¹+>˜ì>mz?3XÅ?.Él;¢û:Q=«>„LÐ>¡r»=Þ=,M?‹9> ƒ89À='nŠ: >JC=îh_=Žv;©”8>Î =·ëž?Èþ@Q +{@Ô÷?EÆñ>4d/?¶Ã„?Äsò?ÌHÿ?ÎÄ_?Øì¡?ÎÚ?Ã0¥?<ï?'cÜ?&t0>Õ¤>ÕÈæ?’Ô +?Ñ£b?ª{©=ƒs~=Å…y>Ö´>$î8>F¾>g9þ>„0)>è/‹>¨Ó1>œ»>Þ§ö>ñ?U²Ü?G(?®"Ö?ĹŸ?€/?×?"Ú:?-Ï?4Ø(?$zê?‹¹>Ï]“>;{Þ=Áµ#"«>¿Û? ë3?>8Û?4Í6>þ;·>¼A>¡éï>•F>rG%?fH?ú?O×?g¬ý?g–á?gæ_?gü?h6?NÛÃ?±ö?-$Ë?£à'?ªlÎ?qÑÿ?h{ï?†Åº?†tó?M6‹?#Ç·?8…b?]QÐ?¢!R?èqY?¥P<ü¼”>#÷? –? ã:>éKû>è“Ã?`€Ð?hgÌ?*b8?4fÜ?6 ? ç„?WË>Ê Ž>þ}?!l:?j ×?³Ù€?®‰8?¬dá?æ<˜=x;>JP>”X?}î?}?4*?¶Z?¬6?=É5?8J?,qÎ?3~Y?Gª?V‘#?A¥¹?(à?s?!Š>åþ4?*|Y?¬^,?›¨ >ëÃ>Ø™8 õ=M ;Ù >¯°º>¾ÕÞ>"p=Û?«w?9yç?pJã?h? Ž{>Nt?-5?­…+?‹I>ãò>Å ™>0,> é%=ûyá=ÝP=¿^d=¡œÄ=„ .=M]?<à?]ˆX?bqD?böÅ?—ÔJ?ª£?‰ŠW?ið?9»c? Ÿö?=¬>º•>•Hˆ>U +>÷Eh?ºHÊ?¯Ì*?Ï?\9?à:>þS’?UÕï?aáL?ŸŸé?®ä”?±ùŽ?µK?SM.>á¤ù??ç?€ý?i‹Í??Ýù?_«×?žãœ? Z?¡ËË?Ž:%= +–é=½øÁ?â_Ž?á|)?áMl?áFJ?%êp>áEZ?Ÿü?ÏT?ŒI?¨í?¨êr?¨ìÍ?µ±?½­Š?‡šæ>èß?2s>?—¯î?” e?¼?y~I?‡8"?ˆÍ?˜)ï?‘Φ?9ÞÁ?#W½>ì%>ámM?‰þw?µS4?w Ñ?˳?a°>á•>áš +>á¢?=2À?µ7?š"{>áÄr>öuû?T€?\¡ò@¦Ò@A#?”>çËB>â'h>â'ÿ?·€?âA'?cœý>Úþð?/ ž?bw?1 |>ý¾?Nû? ÌM?‚x?¼+?$W?$ª?‚]‘?’¨È?”–ð?c%«?bé>êó]>ãWž?¡é?ª›?yÃÍ?c˜–?`®:?p¶Ñ?,kz?;1?¤4ò?ñ{? >È? +„?ɼ?˜ç?”ô @$y@Œ?"æÐ?"ÇJ?,ne?CÖ~?äÝë?ääé@Y@|Œ? +ý>ìËœ=<Ã?Ž¢?¬%¼?~Ý?a°?R>åص?,ÔD?Id„?:?A ?¾S(@ Ãk?î ÷?Íç?³v5?fœÀ? *Á?ô¾î?év™?ææ2?ûþS@#³@Y?èLu?ä †?Ãðr?½då?T‹0?N|3?©¤$?­Ë?œ™?–EÍ?Ô-Ï?ètŸ?¦Ñ_?–ñÁ?\³:?ECÒ?£8=?ºx?X!š?b?<ºý?h¬ ?(Û!>èЋ?hƒ’?ªÑr?=é=Í€f?(º?¶-`?p?êÜ?B'˜?‚b?´¬‘@u®?öb®?Wý?0u·?¢PÊ?Ÿ¤Œ?iß?ˆ¥«@eÜ@ +.K?)uÝ?$zd?;ÕÅ?@‘4?ˆØ?‡=A?äs?êiº@wÀ@"(?ÏV?ÀÎ?‘‹Ÿ?ƒSÿ>¡’P=l§?…Ù?°Ž?ÚOg?êåÖ?ËË’?Ä|?µ±˜?§À ?ÉåK?Þõi?™n¢?KžÙ@¸Ú@DW¨@q?¼ÿí?ðïm@šK?áô ?™10?¨šo?¦|Ü?´6…?ÖÔ²? >…“?§T?—Ý?±4c?ë}Ü?¸c–=éäã>³Â=?³=à?°§Ï?°«¾?Çø\@,ð@ uä?·×„?±F’? q?dP>ë‘Z>ò>I?¯Ô?°ÁZ@"´T@*1å?Ÿñ?”QJ?®·6?°¤x?6Q?ñ?äF]?ùó?xÄ?A!Ë?~=N?Î?Ãä?å…?_ý>ë^n?®½ê?ä0@VÝ@©êâÃ?Bm™?°z?ŒÒü>˜£Í>ù•Ã?±A·?¼">?ê?÷?ÛèA?¡\?Žè? a?¦>?²ž?¾*î?›7?˜ºF?¶ þ?°­5@ZÙ@×@"tÝ@&¦?¾¥?œîÊ?È ¤?Ú:ì?ëS?ëÑœ?z¬;HÖ?$Âe?s6c?¶8f?Ôþ?Á†L?ÆŸ_@s@@ ?Å~Š?,¨ð?’Û=?Õl?̃èP? a?ͪ?Û… ?ö#??ù*_?‹ i?‹mœ?ÃlÙ?Ë¡÷?Ñt¯?¼Lc?{­î?gƒ ?gpå?ga©?`KC?bµ{?Ü#@Ås?Üo?¦Ç¶?–g8?¤·?yªÔ?B’q?g˜?Ô®?Ÿãú?³&?”Ód?8òÚ?I8ã?ÑŸ?ÓI„?{º#?jò?䆥?êŒF?¬’h?¢ìm?ª0?¬0N?BMÿ?$?¡z$?Âl¿?…cù?c´F@±@O%>1&>éDt?š@Co÷@?]ó?0¬ ?7ß?b²?—y?{û¥?ŠÚ?”¨a?˜ÉŠ?‹8?r€?¾,X@ ˜"@ P"@¬¤?ôÎ?0Ç8?¬?‚±?  ?¦¤h?÷Ñ?Þ,?ï2˜?Óââ?Ö@Á>Õ&:UL?\-ô¹Š?n+?ß'?Ð>]?–±…?ˆêü?^¾ðà`?ƒô?¦š?ˆ«Â?pùŽ?„—?•G%?æ @1:¦@4þ?]›š?ua©?ëCX?á_V@ gñ@7è>»P£=ÊT?‰ˆ?¼Uá? g$?á?³— ?Ë ?ÐùÄ?æBM?­ .=éÌ|>Ý8?¥1"?¥!Ÿ?†ö?‰ï¢?ï?”?í(2@ R½?ôZZ?Û‘œ?Á÷ÿ?›šÛ?ƒÃ¹?;?wÊÂ@Q‘@”•?lÇ?[Xr?Äx?Úh?²]ü?£ãÉ?ŠòÂ?|è-?cùG?»U?A?Z…?<Ì=¤š´Ù’P>Ùˆ?¯åŽ?¸o?ÔI£?ØÜï?‰ª•?‡'?gšò?ØÓ@ÿÒ@;µú@,®?ì@?Ûž4?Ò}?ùØÒ?yÌß>ïd?&- ?WÅœ?W§Ù?[v}?L“?ݾ?0l¤>ìTõ>¿JÑ?OÞ?VÓC?¿H?Ö?Ö>W?ÑÞ?¢ž?V0?eÔF?…BX?qxK>mz‚>ø)?A©g?Ufe?ŽJ÷?—Š¯?ص?™r×?~­H?T´à?f>I?“OÁ?x%,?œÛ?¢²r?üv?ûrò?±…ø?…ÚT?p‚=?Sp‹?q&“?ÊŠ?Ò '?͆N?¼3?‚~x?H_?]×?‘Æ&?…ºì?ØV?,@/.?þ[ç?Ôš?шU?å(?R ?{u ?ŽÊG?¦0?Õ²?Ëp=ÅP>&®N?Õ×?#nÕ?aŸu?›;5?Ï·¨@‰Ô@t?ÿQ:?î9?Ñåß?Ï?›?ž×q?wñC?uÎÈ?ŠŠ‘?ˆÁ„>ÒÙs?zM?@?lå4?”Ù?š—»?|6§?F;?Q?NZ?RóÞ?_h?kW +?Å¿?â< ?‘/m>;.D>( ô?L¾?Lúh?˜¢C?§r\?ð«´@äÌ?ü'?3À?;$¹>Ïw>>Û{?Þc°@q,?í?ÌY\?Ã\?¥»ž?Ÿ}þ@}@íÒ?œ,À?g]?{Æò?}Ä„?q¿?dK»?WŠo?•»f?—xà?£^œ?¶£?ÁX-?ªFþ?‘î?É"i?é–3?l®â?R”z? +½>Ìþk?Gâ?¶Üª?¸n?š7?š(?Xã=?DFÌ?Y…T?I ­?OGÙ?œ£2?­ I?NÏ«?Nú4=“ñ™>/6.?Ÿ?&;>Èñþ> X?8´¿@…Ä@.Ñ>îi“?ØÍ>¡Å!>˜{> +Mž>ÜýC?S­x? =ä=êø‚>.“?*?ï?ÿœ?·s>?×2?>%Š?Ï??,“.?VZ9?bçA?ZŽ£>ÿ—w;K(=-ä>E0h>Î>Ÿ¼ä>£N<°„‰>Dfm?¡ý¡?ŽäÑ>ãÞL>Ó¦”>]Ï=•õg=˜ë>Ï¢å>Y >9_?›>Éê%<ó[>UÓ°>Û§*>ÝÇ>òð¹>ô >õ.ä?„§?«`^;¸6“=šm>Åh¼>Èðá>ýÒa>ši=åE©·¹?Ù@?ÄÊ>a·W@_ú@—ñ×?õ”?CÈÊ>‚è°=îUÅ?Hý!?Ìá?Îû?b;Î?hÊã?€¢d>Òèð>Òá,>žøf>—y1>û‰?DO>÷…á?%zg?<'‚?øM;¢%?hL±?¡â?dóû?ZF?sá,?J9>ÞE_>ÛÈÕ>ç b>í¥O>›”z>ߨR?% ? p? +9w?&Vw?Tð??'W?ˆ4Ð?œ7Æ?©lò?ª”’?„&…>ÇùÛ>¯TÄ:»€Œ>ø¬?&– >—6Þ>IýÖ?!}Õ?6>I?R©Ö?[l\?md?gõs?ˆ>þJì?DL?gÔ?2L >çûS?ã?h?]M·?5­?@¶ñ?¬êw?®=Ý?‹c«?‘Îö?+øÔ>èd?|ƒ??®û¼?Ãé½?Íõ?‚Æn=Éê}=ù“Ë>}_>4Ü>Ãl>Ú¢Í<è!ø?HÓ?h)?qñ?…X?œ%ž?¥ËÕ?Äè?â|™?›2M>èXÝ?Ahm?Ÿ?‹¦???ëF?:>oo>±Ja?¾óæ?¹ØÃ?Pæ?5`Ã?W\j?X‹G?1“>õ”_?RYÍ?IÝ?s)9?P»?'of>åÙ¿??ûº?¦úñ?›Å\?e€Ã?8µí=ªPø?G™·?:™Ø=»u=ÜŠx?jQ?k7•?¯>ä†ô?5éÇ?Zß/?‰ÎU?†G?Úë?Ÿµã«ì?uI? ?&[>ã]{>ë,? ™>ø²«>ã÷y>âü‹?V³Ó?bÙÀ?fî‚?kaò?f€?b“ ?¥ŽÜ?À¥‘?n6Å>âTª?%?T?NÕä?©•ß?û!>áÿ?ú?Õ? Ÿ?£¯ ? w‚?!ñ?)?®™Î?¶Ïü?C>¸? “«?g€‹?’f,?®b?Èjâ?§8W?l@?i?fà?F”ž>áMñ?6z·@ Ã@ ?á0?á±?£ia?ƒé>VÔ9=‡.>BD>‡9?A†¯?}$â?þŒ÷@+ßL?Å÷>“[y>ã„ ?Ik?Nx`?SÉJ?Q=z?'|æ?óÀ´>û…æ?1¾>ÒGø8» è=m[ú?©H?©r¨[€?vD`?ÙmZ?¾ÞÚ?—*¾?ŒO…?bå'?b÷è?c[?`– ?.£*?-ª/?¨¶/?ªU?mä?c|:>ì4q>°yß>J×Ú>Ÿ?#’ƒ?n-?6[[>ìGk?‡gþ?×Ûƒ?â©H?õâ\?èìf?ÁšC?ÂÛy?Õ¾?Úi®?ßÉÏ?Àùù=Ï®?«ÉH?©¶å¹Œ?†Gæ'?:ÿK?zÇ?x{É?fQÕ?fgf?fy«?¦º¸?÷ˆ9@ºý@‘L@uâ@@Àj?¤„®?°P?ÈL‹?Æ?†’a?‹Ð?œàh?ž£×?Ë$f?Îy,?Fu‹?/?&ÁQ?_>ŽÀ³>)·F?ãQÐ@Y?Ë;3?®O?…Ú–?hŒ¬??ý>è±G>ýQ? _e?®1ð?÷–?„ww>Œ™]?…6³?è‚Ï?Å>è?-‹?§˜™?È2î?¿kŸ?—,¹?‚µ?+ h?kÁ6?É]Y?Û¨@"äÇ@§?ióx?gð??ck?QÔm?ììQ?áþ>?Ƽ?Ê|•?–PV?š—@Ÿt@ HQ@Qª@–]@,‚Ž@/ö™@/0b@,­,?Òƒ§?µÍÔ?E +?vš?—€?°,N?šëÕ?–S¬?½M?œ6K?»/?àë?Ʀ?¬b?ò"ß@»?ÿ,ž?¿å?Õw¼?ÿ\O?Ñ"Õ? 0>?‚ÉR?9´y?5Gt?¯>?‰}V?ù?Þ›n?±-ÿ?ãðf@0Ž@ Ê?è<í?é•=?ú÷?ï¹)?°”Ÿ?¬ø6?‘l¸?>P?‰>?‡Áµ?°•[?¯Ç?®S3?·?Þï)?Õú)?ñ;“?ëŸ?¬ÕŠ?£€ç?o„O?k\Á>h³î=Ê7é?ÅÈ#?éˆ0>­Î±?‡ý?ª!K?±ÎÝ?¸27?y- ?Y”Ð?€K%?†ËÀ?‰)e?‹Ã?ÒÈ ?õ0´?êÓ?êö?Šæ>±E?˜ @ +,y?ϱæ?Vçš?:÷?°—?èƒ@*ƾ@›'?ê‘?©ŽH=ú?Ä€?áK|?ãÎ?뀆?ãEÙ?éãò?ÑõÓ?Xéà?f‰½?•{?ž¼8@UZ@À@ +É2@ +à"?ëHÀ?÷ 6?…”b?i£Ù@ùo@÷Ÿ?Ř?¤ŽI@ ¨E@—.?½Ñ·?’‚Ù?µØ?¿ªÀ@¦X@>›4?ÌÝQ>èçc?¦¢d@Ê%?ü(?¼h§?ËlÏ?è“B?Érç?zzX?„x?®<Â? î¦?\?œ‚#@I‚´@0!Ï?º7?6g«?•'?’bW@ Ú,@?´@'.?@0­ö?£@’?} ]?^V™?^w?þe>ç$c?‰Yÿ?µß+?lð-?!~?å?‰-?r¿?Ço?†:°?f?©cœ@¤@ÑÆ?¹‘b?¨¾K?fR?‰;Ñ@¹@ +GÐ?sOà? +@c@”x?²Ä0?¬@?xu?eV¼?â/@C-?†«t>ë¬?ÀEn@™?ÿª¸?äÎ&?Ë,4?¶ ?·Á ?¡Wº?å¿?de{?fx”?„?a;?š¯`?«?Ý’¹?Òh?h¡??cÊ=?¢¹¾?ª¾À?}ô9?nU ?ß”•@èî?È¿½?ªry?™xW?Ž~î?§ˆà?¾!?ÓÌ?ú›ò?ãm¬?±±?ªÐ?©g2?›æ¢?L?|õ–>ìß„>âB?ó ?ó?‡¤L?…,`?€ö½?yØ?–º½?©Jf?©=Ê?ª[˜?œd±?Šl7?yF?Ì¥?:k.?L!?‘ôZ?ËA?ÌÄ£?F4?NÃ?qu?c±?_ú}?RÝí?”›Ä?¨a6?¨Q¥?¨F|?ÄÂ?à>9?üIò@ïÄ?÷–ß?O­ã?Eª>á“'? +žõ?±—¨?º¢‡@3@lñ@?û?ð ?àÈ?“"Î?_&É?gÙL?aï6?ºÓ=ýè>·¨|?$¾ì?? /?^m?pö:?Þ}B?ÞlV?šø,?¨ +?{@?_™?N4?ñË?—ÿŒ?ÀšÌ?“¤^?]À×?½Ò@.¸û@ù6?…¾1?—*…@$K”@#Üþ?þÉ?. >Äô>•|?дl?÷»˜?}ÙC?fj?ÍKì@!Êø@8ãÍ@\kf@ ¾>²0?äû?…T?\•¢?[ã˜?Š»"?„Ì+?Þ]@<@’a@ °?óY1?¤v0?¹o?Í)ä?¦Á?Zôû?q9u@(Èû@5çÂ?ƒ§N?`Ç.?¾µt?Î_ê?Aiÿ>µ «? Ù?G»s?ŽÎ½?«áa?ˆý"?[ßË?aYú?È—=?¸Lœ?\yX?oÐ?íÕ@ªa?Ó o?¸ýà?ÉKÌ?×v?¼l"?‰ˆƒ?œË?rñ?yo?Y½í?>y?¿Ë‘?×Ð+?‘qy?W)?¶v?÷T¿?Èah?xÝí?OiÎ>ío? !ã?p.?eË?¿5Ê?Öxh?õNf@ì.?Ê@â?‹6`?~8Ð?m8?€Ü?hSû?\ÅÙ?Uc0?UDû?³_?Ç<?¨LM?œü5?¯N?«µu?¯­g@~@¶Q>íÆH?ˆý?Ž—?´ß¦?®øŒ?ž¬ ?¡ØS?”á?uY”?R[û?Yò?omH?ƒd?Kˆ£?LM?3p? -?CÁC?€†?­N(@ü@|?±÷?±¡?V­–?‡??S¥·?‚¯?¨ @t8@½Ï?}Or?Y)r?Yj?Ðü?SAÝ?HÉ?S[?šüa?ŒãÁ>‚Í(>û¨äõÕ>Η·>Ι>Îi­?³ÒÔ?¨ö?™T¦?š†?¢]?¤k?ªÍ&?úÞ…?è¢">¿? >£];?xâ?Ävþ?·(â?Ys¼?Ac>јO>è€?f¾?™¤?ÇJP?àV?¥d¬>èH>à²Ú?JÀ¼??®Á?„(?žÚ(?°¾“?¸§d?Âã?Ì0I?Ìé¿@S@̺?«b ?…ö;?Œ˜?™s?’)o?…ãÈ?–´˜?Sl£?Z”½?gw?tZ4?®‚5?üb?å‹d=ü/;òÛ= €>oã?)1?!Æ?DŽõ?‰8q?×d?–k?šê>3¨>(BY?œs‹?ÑöÄ?ƒ†­>gy.>ˆH]?Q²R?NäT>¾g‘>š¯F>ÉŒ>Õ‡¶?Ö>ÿ&õ?20À?œ»J?r.?>£?0œc>‡ö¦>1™Q>M&>òs>ìéŒ?SŽç?GwÐ?Y?Ä'?!éà?+<>7x"=‹ ö>£?¿D?yËt?{Æ’?ŽÙ>ÙKÐ?J?L„´?)>Ô×9>¹E½>›ýQ>:H>!mÑ?^@W?@ë?+ ?=Áª>ãªÌ>ÜJ>¸ág>¸JB>>5ÖÍ?9?2‰õ>îKÔ>é›.>ðq >ñ…—>òœã?ÉÆ?R™>:Ž4>ç%y>ÒH@>úا>Ð9>žš6>áÇR? w=·ìá=åÒÖ=õ(q;·è°6‰€='øP='ÿX@A(@« z?‰Ó>³¸>Ò¬·>‰?gút>Û`Ö>Û‰ ?±f>γB>Ϩ¬?ï?#¤ç?´:>µÄ>†x?Áƒ?¼¿b?ÉÌ9>~4,=ºPœ>€Ìñ>ŸæP>‘fN?®C?Ú›?Ý>›P>€ý{?;]>ùõÆ>jKˆ<ƒ39>X©?8È>?&»¶? o?XÉ>õ‡T>ïäF>ã™–>Õ™>Ð??ƒ;>þîc?³-n?âØ?Á Â?›ˆ¶?‘ß½?zo ?Z(>á3>å·Ò>‰FX>:hk>€äõ>€U>ç ­?9œê?;—W?ªB?«s?b*b?X©ú?b•à?gŽ?RB?=‹Æ?*9»?+žÊ?['¦?€Y¦?_ß÷?väÇ?‚®"=ºã=c$>Ф>è*û?M:?nT«?|?†–æ?{À>»Á?[ëÁ?$3Î>u‘>]ñˆ>F?>5C??v9?Gš&>Žt>&Ü?$Mq?TgB?_v´?g4x?#­£>çc~?¤1@gØ?õ‡þ?Ì[ ?Žq«>–À@kb?þù?¬ûl?¬Vˆ?”é?—R^?l×?uàŒ?Æ8>æd? C?íj>íé>å±>bAs>E&Ý>ð\ª?=Ô?Hb™?s˜6?ÍÒB?³’V>¥4c>§Já?†" ?ˆŠC?< x?/ƒŒ?]Éø?\&¦?£Ï÷?ÃW¾?¥ð?šIY?•;a?íW?š?E¿a?]ùÓ‹?9ù$?ãÊ?Ö¢•?bv˜?_4O?bŠ&?b¶Ó>.gv>ç!?ˆ&³?U8? |?‘ê?£$?‚á–?m?bH?‰þ:?©|$?‚e¡>ááp? :?‘‰­?““?£üŒ?¦»>Ђ$>½'”@‡@и?ÚI?NTÜ?4n>áU>îíJ>ï Û?r–?¨ëR?¨çX?¨àö?”?`?a‰»?uÉ?jÕê?w–?&¦E?s\Â?v,§?5È÷?+~Ÿ>·¿> ^ò?êÙ?S9?ŽÐl?º°?d§?pˆ?,…O>áæ?¬q?Z¯ª?Ud_?P ?Cùì?Qý?_/$?ƒø?†IÉ?°4?´Ñi?¬e?¨ìº—ð?Ë@´ @ûë@C/?Üø¢?«1ó?‘;Æ?aŠT?½ÄÅ@)7†@,$>ßÛ—?"“J?ÞÚ[?Ùù”?¤a?¢QH??´ô?KÔ?ƒæi?ˆ ?šxå?›¬?¥ÅÇ?²â9?rò>?ñê?O*ú?äÓ?¯`'?Êæ&?©Gí?bÆÀ?Q^å?*°š?DÚ?‹3?†Ë?w˜A?Åô?›œâ?™ ?„ƒ?‚ýÁ?]>ãœ÷>·V>”íÔ?™$"?Ïí$?¿î?²’:?dÆH>øšE?»¢@%ë ?à‘—>åŽ*?É|?df?*B}>§-÷?âk ?Ú=?œÉa?›‘\?Ö?Ó?E$,?M6±>ÿ¸S>å’º?#§ý?4)? >åá >åö˜>æ Î?ŒfZ?µÌÀ? Æ?‘ðÚ?ŽÍ6?± ?ÔiJ@m?ù'¤?­â?dé=¦º> ¼P>×xŽ?/3?2\?g^Õ?pã¨?þ?ŽÎR?ÚF??Ý–h?çʃ?çÞ@ LÁ@á(?…¹+?h$t?ž5>ô¨?S&[?hh§>†P×=h¸T?aèÒ?šØ?•æ?›î·?F?:y?®å?Š³a?M{ï?>v0?'9«?wK\?¯ 1?™kµ?`*7?xºg?­cf?¼O²?ÑÚÉ?Á *?iÏY?ˆ¼?Ëă?Ú'h@&ˆÎ@C?U->ø>-é=Ïî:<¿Í=7"~@Ÿu@A@4@?’=¦?“l@½Á@“k>·© =Ùu?”½²?°ß?CpÚ?â.?™q@?°)f?7>êï'?ã?4í®?¨Á›?Ó¸µ@Èð@Cô!@Î?ö”??³P4?k%÷?£Û>aÞ?)ög?¨q@ ߃@M> +@)—4?ë:?ëòJ?ò! ?»t ?"z?…‹ä?ëK;?ô†ó@añ?îB?°{O?¨eÐ?²™?•ø'?°{2?¬µf?é¶?š~ÿ@‹Ý@»U@ÝÍ@÷a@Ùá@hß?nƒ?k1!?b¦—?g" ?¬Yþ?°a\?®”w?§õè?ÜZ¾?ã®Ø?á[V?Þý’?Æa±?¸¹d?¡£÷?š¸u?˜RV?•ëÄ?ô@Š?Ò„H?¦“X?™‘?‡6Å?¬Rë?Ðíë?ôˆ‰@ +µ?äc?­?w0>ê}ø>òÁÏ?t ?Qñ´?—*¶?ŠØ?òü?uN?…"ÿ?Ålz@4ëJ@é?j?_;É?Ti|?Dú?Çò?%m?éÀ?ç*V>…¸=•%Ò?\à?inf>ÿGÑ?/˜?¡ïë?®þ?uÕI?|°?›7•?›Š?ì@9@;N@0v?½Í!?6À?ƒsÊ?®~È?¿Rÿ?Õ˜$?áú?èpo@ß*@KL@>פ@'°m@Àå@]ç@¼@G@d´?¯`N?—§q?h„E?@fb@L¦?éæ@?çhÚ?±œq?­t‘?þV>éÌZ@Ç­@'¿V?‡*?”Ü?}Îò?Ž>}?Ÿ@Ï?¤cè?Ôê[@«\?½B?f]?Š€@?¬®?¼K?ݼÎ?×?eö2?”¤®@¥%@ |Œ?ÕÒ\?Çû[?j€r?ƒ_¨?Nx ?Y~?ÚQ¢?ÔÝ?߃?åØ?Ðaî?ÐÃ?ún@ +Ö¬?ûwò?ä®®?«©8?s?‘CÈ?«M)?À>¨?ÚÐd?¥²Ð>ä â>öë•?ˆ”?A³ò@²s@¤Œ?ZÞµ?aû?c¥?hF*?e?cbç?b‰r?€ŸH?¹ð*?ÉUF?Ó§e?Í­i?Ñÿ?âÝÑ@>˜@î@ûÞ@ k?æA?DÔ?76Î?½%'?°Ö×?¤zB?˜¼?Âqá?Êf„?ÇÔ?š?`@?”Š?¢Ž?©•?È™Ž?Ü{ù?é©™?ñIø?Ï?ŸB’?‡þè?j«?…ºõ?¨µ½?¡þ¾?$y?½Ò?Ü!?ßØ ? _}?i?`ƒJ?iÓ?Êx‰?ä#ü?³ü? ì¹?Ädð?ßùê?§ æ>ìC?'r?¥Ÿk?á?–‘?-nÒ?¨êä?¶›ð?‘ó?¤?@ëÑ@ wj?©l/?V]?°†p?ÝùG?¡ Y?:p²?F–>Þž…?Û+?Šóc?‘ä8?Þ\®?Ü©J?o¦¾?eãC?ÒüÃ?Ü9=?§Á)?’r?Üs)@­?ÐZÎ?¢‚3?˜±Z?Žâ?šD?ÐÖ§?ÚZ¸?ÝX?ÙV>Ý ü>Üû?yþU?n½w?ßíÕ@md?r%8>C¶?šáp@ÍÞ?Ëã%?~§¨?Vàß>€=?­—d?£P(?™ø?Ž³o?ɵ÷?ÕzX?„Áì?\¦f?yÛ¥?’Ž4?w„Q?<?%l?å®/?ØLï?ZÓ?_PÎ?p–?[$‰>ê9ã>õ‹T>Ñ~? ë>ÅÕ >Sö=?¡%?ï™?±(8@Gþu@=ô«?×é–?ÏS ?ÙYõ?ÙC‰?=`à?"‰2?öä×@›{?–,? à>Üö!>âÉù?cÝ?ì-?Ƥ©?+Û?!¿m?¡Ùa?¡åa?¿·?Ϙû?\Ù?WtÒ?qfñ?‘ît? Þœ?¡LÑ?‹¨T>”œº>e¨?¯”Ú?¤w4>KYÞ>/þ?¡Ú-?å.?¦qÞ?Võ?g7&?F„?7‡?˜aÉ?ŸÔ =²#Û=ùúÙ?‹Ãs?²ñ¹?Š.Ò?T«Ä?¸ò–@èÝ@ ?ñê?¤í?í·N?ÖZ×ò¯>ê|4>J4h>” ¤?A÷?B{H?DÀÕ?R„?zð?g?Àåö@/Å@)½Ä?„E"?‚.?Š¶?•`Ý?ÈÌI@ù?Ö’ð?kþ?Žˆù?œDÉ?œ)?[€?2ƒy?¨‘?ïú÷?Å©&?QÏ?;Ñ+?ŸMZ?Áÿn?P.>>ÎÉÉ?>A?šíš?Œ$-?;‘Œ?/Hu?½Â¨?Ñöž?˜d?ƒM«?¹úË?ÿÉp?åù,?zR)?“þ>¥°†>K‹>ß3Õ>ÐWº?Ê ?˜—Ý?¦Ìï?ç%Ý?ÎBZ?Ö¿«?ÎÚ?Ñ»Š?ãù"?½X ?LgŽ?^‰.?Á 4?´{û?§ßp?›Cƒ?‹ú?‹g? §÷?ÊsU?Ìõ?ѽÏ?Ø •?oL©?HãÀ?tì*?‹yÁ?b¥l<žŠ<— ?Ž·?ŒJ¿?4æ?o?)0?²=v?¤ +µ?™M?”À¬?‚HŽ?]§?I->?LÏŠ?Läá?Lÿã?M¦c?MeŒ?S€E?*A? zJ?n!Â?©¿Ê?˜•/?N9X?cuê?š–Z?•„Ì=ù˶>M>ûû>ç·à?§¯?Pa?‰¾Á?Γ¦?¸`™?Ë?¿)>Ú|¶>Ò?)ä?N`>À =²o|>žŸ??f$?•¥?,³?uí?UËã?V<æ?–Ï(?S ?~\h?„š:?AÑ? +¢†>ëø>Ú3q>Úïk>ÛYÜ>¤õ­>6jÁ>%Ø9ø¯\>õEý>,G>jîÙ>• +<>£ö@=ûl6g’î=k¶>•dŒ>=8ö<º¡’='8þ:3<ïÈ =Á>>#øƒ>h X>–m,?á§?\QO?tèm?i•Î>ú?X?€_? ܲ=õ]>˜ò>þØŠ=ÀG’>L|>ðŸ|=#¬Ÿ>¿jˆ?d>L=–N¢@Òõ@žÂÚ? +È=ôÑb>!Ü >&¬R?XX>¬©ù>¿H§>Ìè’>Î ^>Ϻ?;=?–?òÀ?%X;?.Ã>Ç#¼>®>À;g>Ï­>ů>Ë2$>عb>ä‡?°®?!§Ò>ÿq5? Ož?+R³?ElŠ?RÅÕ?ü_@>8?†ðC?¨¦?¥>à;Ï>â”>þ>ÒŽT>Äù>â ?êÁ?bËO?XÒŸ<›+=< >Üè´?¸Þ?$?©?3¼$?>p>?Òi>r$>å•>åÅ;?PD¶?f!?¾Lü@@Ž?»wÅ>èÊø?\?fòä?]JÇ>K6ç>€=z?Œ\7?–+?Vÿù?+ê?»ªp@ (V?½nÂ>¯Š+>–д>çØØ>ì%>ó¿>çæ>ñ$>þu~?Tô6?géð?lñ>Ÿ˜ð?3VU?ŒË?t8?+g‚?>çÀË>øb/?£?u0?SRu?Yrå>®°=ûP8yfÀŽ ? +1ç?¦ö\?¬sM?“¦Ö?s?@n=ÿ9Ó=ÊÙ >® a>Æ­Õ?Z},?k¬i?±¡>å„K>ä?g>Ü'>Üêt>å+R?RY.? aZ?†Ð´?Q'Ž?[E?\>k=Þ‚a>¬~C>㈂?ª6…?þt?ˆXA=ƒùP?Â?ªO?—¼v?f¦r?kˆ°?bÆK?Tm¶?ãi? +Tæ?3G†?+º ?x“X?‚]6?•8H?”ñ-?]J‰?Q‡Y?aLž?aîG?€¸÷?Ì,?QE>á¼@?K}8?©±ó?ŠøÅ?0ê?(`o?œ—c?›?a^µ?aƒf? …²?9Ž>×½ >Úí?H€“?a"é?—¤?¨Ï–?éM¼@ +Ç?½M?`ýô?`ø…?`÷°?[è?Jr?oø?Ķê?´,?AP?íÌ?Ω?|ði>u,ê>>˦?e¶?+°¦?Žâ×?¨¤æ?Itf>àßã?b\­?¨«J?¨®”?¨²«?€#õ>‚bò>Šj†>àûÓ>Ù0 >´™­>Æx?ŸªÞ?¡\>m3=áÕ ?á°?¨å‚?§­?¨áÂ?Í0È?áT3?£|ó?adY?¾š•@[ò?ÝÁÀ?VÖQ?BWÅ?Ô{?H%ß?©K¯?¨CF?Úý?pö?™—Ì?™ +œ?ƒS?ƒæ‰?“Ö}?”TX?¬´?²Ï?‹î?jä`?¯òr?⃖?Ÿ¸Ö?/ba?´>â¾™?µ?€ƒn?{f?;0®?G½"?³X?¶Wm?œÖ?ž ã?ô?º??ŽÜr?›‰9?­0?nÙ?Á?ÞiX?–WÛ?cT)?d=?d(?d=î?d,Ž?chÌ?ds2?_Ÿ?Q¬w?Š÷ë?äÂÃ?Â…?Q-?MEÞ?å?ßI;?Žlˆ?‹õ6?‰yø?†ü?Ìæv?Êš£?¦·?žÁŸ>¹<>Që?/;‚?f²‹?²@?ƺþ?¡‰?Š«ñ?– |?§Ë_?™.«?ˆo?<£Š>z>5‰>=Ïcù?Ù?ÁÜS?¬ìÜ?v[Y?š™@ À½@‹¿?oëÃ?P¾?ç£?Þ¢I>çÈ>í†>ï_>ôyÒ>é˜ï>èF?›ÕU?¥QJ?ßh>¹I/?“å?®`Û?¢¶ ?œÐ_?+w>–-á?ˆšä?¹‘ü?Ñ,Ë?Ø ¤?œ€?f¬•?¬ìp?áÚf?¯Dç?‚?U?dä•??›l>éû?3þ?Ž±;?¶ ‹@ <Í?ÜjY>«>¸_?p^G?–§Ü@0`@ À?¯•8?­þœ?´e­?»¸@?ð û?î û?jÑî?ih¶?XL˜?h¬/?«žÝ?¢¾ˆ?‡ä¬?ŠÌ? ›÷>ê¨z?žø?°’?®R“?¤ Æ?œ·h?•]?µ[š?ü?ÑÚ>?Û·E?¡Eg?€ær?}ÿƒ?z1ò?h¸:?c‰5?*>>ìvO?˜’'?ë}?´µú?y÷·?PÑá?#ì?‹JA?ÇÒ»?­r¦?•G!?®£‹?ØR8?¶Ö?Vb?´ë?Ððp?•e?°]“?°]d?°[w?°[Ú?°[?¶¹»?ÝÜ›?Øÿ!?§u-?§uÍ?‚ÛÁ?r6>ì¥>ó§?¯½È?°†ÿ@ âª@ É?ìÙ­?êó¹?êï[?êéa?ÇÂ=?Å3b?qÿ%?\•«?¤Pì?°¤?È¢?Óm€?£Ï?„[?’ýë?¢ts?†¸?jŒg?œ +?³lS?b®?jlˆ?“OÎ?«M‰?¦+?¡x?I\«>–)d>öÁ>¾É?gzR?ìD>?ãe@?ÿ(?ÈL?¶ +U?ˆYÙ?‰Þ?iµ¶?ƒøò?éœC?ßÛ¡?i‡²?eC§>én>î8K?`ró?\3ú?xù—?€Ìì? €?ŠùÜ?‡Äé?Œ&Ä?ѳb?é‹€?È´}?Ç\Ñ? š ?…N@?ŒWx?˜NŽ?“^–?ƒ\Í?²°D?è(\?èÑê?ð  ?˘þ?–ïÜ?Ðrl@õ?ì3Ð?rqæ?˜Øt?äm.?ê©"?Ë›?¯ï|?_?¬F\?†4?Ž=Ü?èÂ>æ¼î?a“Þ?‡:Š?÷´q@D”@xý@ø]?Í‹~?„–‰?1Œ?¡ï›?° à?·¾^?›·?eЕ?®oÈ@)þ@h?¸®~?Æm$?öP®?ÛÜ>åHª>å8u?òþ@üï@eq?þPž?Š¯Þ?dÏC?d½?d¬ž>ªÎ¨>14>Į̀? +Ï?£ž«?öŽ?åï*?àÔ?Ǿv?y®F?bú?cÚ¹?~W?¹Ž9?§ƒ7>æTñ>óŸ@>Ú@5$˜?ƒu-?cA§?ÁZ©?ÀþÓ?¿”?ÈÖ?ú2Ö@ÍÖ?ðì„?Î?Æ?§ã'?fþ?b„ ?i4ô?T‹M>âMÛ?$À?ºà?Ït‚@¦µ@xÎ?×'?ξ)?­…I?šGà>i†N<~“‹>¤Ò¦>í¢Ë?Nàz?„}‘?«{?ͱ™?®ú×?‰ +v?†ÈQ?Cq½?P‘=?œ}Ø?ŸÏz?¡©â?¦'o?cRR?sý?RCj?E~s?Z)?`8Ú?Ô³N?ÿ1?‘½D?ö ?Žö?ØÍ+?±:?_½Æ? ó>´¡>{;>ßr5? +?®þn?¥Æ=?8y+?áº@¾$@ªø?ZÑÇ>ݶò?±?«çô?ks×? ¿\>Íøì>=Í>öód?>&?¥ªÓ?ë2ª?à׃?Ÿ¯Ë?¦D­?gß«?tÌé?Å«¦?ÎUŒ?溚?öªo?­œï?‹ Ü?ÂGÑ?èá?½Œ¦?aðG?]¤%?kE?‹Þ^?Þf?Ê Š?…N‹?ŠÀ¨?yö?ƒíØ?¦ò?«üõ?‡£r?\wI?1ï>üÐ{>é6£>’¡*?Õ™?ö;¹?ë$Ÿ?»P©?Å„e? í ?£x?ü>ì)æ?f? +¾_>üçË>Úõì?V&q?§:†?›?jæ?°@p¡@ÎP?Åó6?µ¬E?–˜1?}Ã??1«?Ý?± Ç@èT?±üÜ>Û}s?ø:@Sµ@ÀÀ?³_l?¸·L>åÚ‰?Ýz?å%ú@ S?ÈþT?¡YŠ? §?–¸°?Ör?äB?ÀT$?†=»?}ÿ?h¥?„ã»?)ÕÆÏ>äÓ¬?µgô?Ÿ²U?œ??ŸÕ?}m¨?Tƒ"?³`?ô(É?Èvb<Û >A¨ã?Žé ? >??7xû?%7?ˆè>ÓC’? ‘Å?Ush?ƒ,0?¿}?¯œ?¬o¡?Žì¥?d_%?x'Ê?Z:š?H£?|¶‡?K=?›à¤?ªŠ?È!Õ?VJ?Q!ž?àr‘@ŽØ@¼–@eë?ÙO>ô8F? ?;Áü?Sœ©?×™Â?Ð:??‡Ê ?O¦Y?O‰3?Oh?9ü]>ˆûš>aiq?k´&?nñÒ?Aiœ?Té?BûÆ?š×¬?°±?ù¬Ø?á's?œéA?šwX?4‰ >åÐe?lÐ?T—®?l?Mi!?MTÕ>ÙR4>Í(í?¥Nn?Ôsš?¢ÐÇ?MÔ?k}a?± ë?½p¸?â ?êë?¦°í?ˆÏø?‚b?LI´?Ez|?)Eõ?Nã†?¾ð?Ì\?˜mÍ?\Çr?qd?™9?ë ?¤A”?ª?Dãí??³?)þ4?Këº?Kò¬?J#”?5ƒK?˜\?™à?g×í?4à?–^?ñž½?è¬â?™8v?™Eõ?¼Î?¸–&?\b6?(V”?>&ù?Læz?_Ï…?—÷?‘!>˜I˜>°¢·?gÖ?+?Ž?HŒö?8)f>ô_@? 4?ó¾>Ö¢\?—É?›¢¥?~› ?Oú/?Òú>| >õá ?%Ê?>D>—Ò…>©ì>Ì›>Óè?MÅ`?vˆ¹?*µÛ>Ô—>äa ? ‚»?=J‘?Sþ+?Vg?Æ ?Æ™½?Ç>÷œ'?,ù?Gä„?==>Ú¾??>O3?ÔJ>Í%|>W^=Ö8Ç>ÞY>«øE=Κ>·<œ¿b=ÈÔ’>#O,?dÅ›?FØõ>¶óü>¨ç>è2>ÆO˜=àf>2žÍ>ì™á>ày·>Àˆñ>9{|=/à>3îÊ>õB}?Ç?ŠO•?hê8>àÍß>W<´ùPf†<õì)>£í8?:F>êž>”æÐ?¿äÂ@‡é?ØU”?-ÕÃ=l®è>DZ>̓>Ή >Ï|$>Ð<’>Uõï>a³t>‰ÔÒ=ùâe=³ÓÇ=[c<¥H:>¶Ö*@%O@Ú?†®>ÙŒ»>º­:P>п?ö®>Ǿ|=w9=F¯D>Ù>Þò>|~…> …×>„óC?$”?,‚›>£ÇÅ>™Uß?à×?N]A?%Å‹=?ïh<„¯8>ÝOÝ>ãà„>;›”> .>Çèl?Pn>Ùøñ>å? >ßï?UÍ?/øž>ã¸f>Î?5±y?ed?b–M?f¤ê?GòÂ>­ä^>®Vo?‡ñP?Œf™?9Ì)?35á?¾#Â?û2³?ÑeÁ?¡9ï?kªJ>ÐÊä?)tA?­‘;?T¡>ç«u>ê9a?cq"?g«\?V²>ç¨û?FA?g¡“?•û¥?¥i;?sÎê?N?:½b?€ˆP?aBø?‡Þ?Èí?ª™?«Zë>ë–$>ÖÂ…?°?û!?I–Ä?l f?] —?=Í ?8fì?3 ð?žŽ?ÙC8?¥í!?fF?GÉN>æß>ünó? ?_6=ÉmÃ=„}º?¤’?¬"åZe>$'=M`@>§ÒÝ>å?õá?0 €?Ò >ä¨ð?uÏ?Ô\)?¼•X?Ž‰?‹°Š?½ Ÿ?Å™?ªù,?«ˆR?‘†ý?ŒÜœ?7 ?—`? P´?*Ú>BÿY=6ÿ?‘Pò?ãá?OâÚ=*?>„º±>ù“?FÌ×? ³??œNH?ò?†¸Š?b\ú?U§>¡T7>°xý?L%?VÆ?Ø?‹<«?g¯?aÐC?Äþ?šYõ?=>á?{c?Ók?¾5n?†]7?zKn?aUÔ?f°Ÿ?røV?u’8?§˜#?¦SF<£§b?JÉê?a²?ó80@Ä?ª²&?†ÐB?=ÁL?; +?5ßà?`ÕÌ?Òƒ?˜k ?”>F?–yñ?† (>àÁŽ>ï÷‰?S¢?lŠ@ ?öN…?Ì>ügl?ƒ‰?’¡Ì?b½ ?=Jµ?fW€?‡qª?Šœ?ŒÀv?ˆ¼?wjî?OŒº?Ð6>ñ9>’}ï>šèW?YÝÈ?a@?¦ºa?¨¬'?¨Çq?¨Î-?µT>ä'8>‚²=¶ªø?f½&?£˜­?.ÖN>œ²‹?õº?alE?YV}?Gò×?:.?-º¢?„Çz@¾Ô?ü‚u>ñ†¯?Hd?bvQ?aò0?‡—Q?¢ó#?ª]"?í¿?mj±?ÁÍ?â^j?}îý>âÒ?/U†?_6ù?9t¢?77?DÖÇ?œD?ˆ|Y?Æ3?$Ä?”‚i?‹æË?cCº?aCß>å«>ãyÁ?¢‹¯?ªµ ?t®/?c¾¼? ¶°>ä +Ð?AÒÚ?dÀ?“vq?¦!?‰/¸?dS×?dfV?duˆ?(‡ê>¿‰®?+Âù?Ž¦¤?–í?¼¥S?³ £?…ý¥?Œh/?«é¼?§ç}?›n ?¡ä?©ëk?«~>¥xg>Tò>¾@F>¿¯á?ÑAQ?ûo?ÀæÕ?¬¢Ã?&Ö">¥y>öÎ?oû?<ç=?f£ø?LY?%@V?ŸD×@àƒ?í•}?­LP?¬îß?­ï?¼§à?ç[Ó?·6J<ªëˆ>|>碰? +?æ?¡K,?ž‚?›·?˜1¬?~®‘?u…>ù%Ä>è?W?{wá?‡h‡?D:?^?“. ?+N?ºÿª?ʲ©?Ë“O?ÖÉ?Ò²¬?ƼŒ?Óªø?ä{S?T?<v?“W?ËÄ?›X´?:tY?Žüš?Ø—Ç?Þ³h?äZ|?÷Cc@ß?üói?¯Yy?¿Ä˜?ê#Ì?øVV@Ða@»'?ãEº?Ú]‹?¹Êo?¬ü?Q„?3· ?à·?Õ¯D?ÄU?Å‘?köE?k‡Ï?Õ³k?̃Ä?râ«?y‘Q?¾7|?͆?æÊk?î‡Ê?ÑuŸ?Íšé?­{?¥CL?™7Þ?šü?¨8(?¬ç´?;Ê>êÂy?‡šŒ?¯ˆŠ?°Yˆ?´I’?c C?•2?«?õ‚6?Ô9?ÀZM@ +`´@.x@°?õ*(?¥q>ëy?dê?×wp?×Û?Æ ä?·0˜?žªµ?¥I—?°A}?­nÿ?§Rk? h:?t ?”'­@Y§@6?jUÛ?gz?süÅ?÷ß?Â^_?ÂvN>Û¦¦?Áó?Áw ?ÄÀ˜?&Õ?3Û?±9?¬ï ?{Æp?€mZ?©¾±?¯ò³@@ 5?·ö³?³ ?u°8?jk?ÄÓý?ê[#?t |>ð8d?ãx&@%ÏÚ?ñg/?¯y?‚óp?&ª#?fÁÉ?‘¤?¶°–@¯;?òˆ?Âéªi?œš?|ëu?“¬6?í®ÿ?ØN—?id¨?OŽg< #Â=/âš>­,>?{©?i?i€?ÒŠ’?Ò¢h?¹–?°´¡?•s?–9 ?›ô>èšS?u1‹?•KH?:¿[?_Ž?ÎÚ1@tÌ?—qÇ>ô‰Û?€*?µÝ?Q!>Rà¤?vötŸ?$?þKæ?þ¿>?lñ?Bùå?^<¼?f|P?Ûç«@?í"›?ä¾5?¼nf?Ÿ±o?ˆÚ??eö·?ÝÒê@,BJ?üKÄ?e²ë?xŠž?›Gß?žÊ‚?ƒÙ,?’;D?Ód#?×G‚?Zœ{?P^k?˜0Ü?ïL@!“÷@'§?ˆª3?bê?d…?d‹Y?Žù`?ˆ¶?Œå?‰åM?Úru@–·?ó¾¢?ÄiÐ?é4@ ´Ò?ä»W?†Yž?«›¼@¼@‹ƒ?©MN?œ@?Rì?€—a?ÅÇ?»½ü@MÞ@ ݪ?–¡j? s? cè?ª?†5²?b˜…?‘ð%?©Ø4?ºµ?bRr?9²Á>â/a?¿2?‡& +?¢ @['@ ­?Ò«Ð?ã`(@_@!Ÿ?2·b>árØ?;™?œ&¬@ —F@Üü?Ýî”?¨Í‹?}ö­?!"õ?q½?¸P‰?¦7?|øä?V“²>á®?q{?ÕÏ?ÌŸ¿?a¤'?`2?¤9?ŒÇ¿?ÌÞ{?ßñ/?ž\—?u™?–8†?©±?Á¨Ø?Ûç?Í!¬?³;ç?¸¿3?êA\?¯È?j3.?‹!î?ß +ü?Þý–@s@!þø?r¬;ú­@?ºWÈ@Ï?χÿ?¤9Ò?x$ï? ‹J?46‡?€Zj?•5??öœ‰?ï^@>Ýè¾>ët®?]ð?]µÛ?ÐêÇ?Ý“Ý?Æ®f?ÄiÒ?'‡]=ô‰‹?‡nV@Š?û@Ô?Ü’:?¸úˆ?\èô?PlB?<e?mÓ?'Æß?1µú?‚?øA?¹ÏÛ?Ü>‚@#à @8;?ñém?‰èí?l—?jû-?˜ +ä@ Hô?þŠ2?qø?f°ö?]'€?[ï^?S·É?Gå`?=tâ?2ûË?™Xö?°?p?Øö¡@“c@þ@à©@»?eZ†?…ï?Ú)ƒ?ÚÊ?„çì?‹,ø?1 ´?zD? t?Ô´'?¦¹ ?W¡)?žÒ¹@ Y*@š¸?ÃŒ?¼S6?¿c>ÀO?D‘¡?X—Ž? Õ'>ß:?ÞÑq@&ª@ 9ö?áo?Êcµ?¡â?—O5>`©=ƒJ«@,Ò,@8ZÍ?§BÜ?W,:?iªF?ch??l Z?ŽOÞ?“×s?™dÇ?°‰®@;uv@7™?Úkì?ÆÞØ?Š#×?VÖú?dðK?tÌm?bÞƒ?Ub›?UH`?QH?DÙ?9*‰?[~b?™r¥?Ÿs€?z1?TZƒ?'šg>Ö‡ä?…Û€@#u-@c ? —}?ß?já°?S‡?!!??5þÔ>þíc>ç-Ý>Ó´?>ƒŸþ>$±9>ò¸??ŠR`?ƒñn?Q%?QB?ƪ°?õœ·?«Ö;?_ç“?g|f?3W? >e>Ð>ÏòÇ@ÄS@9õ?ºÂ“?O‰L?Ü6?¹=§?£v?Z8G?Aéò?QÌ?w]”?ÙKó@ôC?º#?^ë4?pÏ|?™æ?¸[7?Š&¨?¯Ò?Tô?I«H?Mˆo?M}Û?Md*?MOß?M<?Ôù?S?·3¾?ú&a?Ò"?”¡¶?‚´7?+¡Ç?Dsè?âi?®(c?T`Ç>ášâ?„¤?òx…?·]?*‡?ó;?aXØ?ŽS?¥§²?ž~?Ì ‰@ŠU@¥ß?m¯X?zWÏ?xCð?iÏ?Mwb?G7ª?KÛ™?KÙÕ?K8í?,³â?Fqs?`6Ü?z-?ŒÎc?—ŸR?ƒöô>ýZ˜?­–?W˜$?€¾?NêŒ?å ?$yœ?LÏì?;„¤?»?!+~>õí8>»š–?>–?bœ?!;>Îs>×ðw>ÎcÃ>ηÇ?´?%8ó?ŒÂ?›¯?} +Ž?Oß?CGñ?ÌÆ?©G?˜?t˜ë>‘Åõ=º >Ÿ™Ë>ÒsÛ?4\ô?vþ¯?Z!þ?½=>ãÞ^=ØìÙ<;G£<Æü¦>é¸?ƒ¿A?˜òÃ>|û>“[>ØÆ>>=Ķ=Dè?s0?3Ï?kŽ?6H·? Ÿ <ü*z=Ü7Ú>Þ«d>ÓY>Þˆ>dóð>'·Â> ¸´>âë?ú?d¶?F˜>~i>Y:>"ô>®z>Ï:Þ?)²?f‚Ü?7Y>íb>¹¹›>@Et=úÒ8?D>\Ï>”;>>¸e[>’_ð;€Þ²>„æ¡>Ò >® ™>Š¼±>LÑ>>bKé>é;>X +—?¯„Í@„׫>v«R8Žà> =™¦Í<óaè=Ri=ʺ=òˆ>þhv?.k +?Šj>³ž•>Æ8Œ>ë ³?8n?n½?×´>Ù$>±BÇ>O‘>8(j?3°?Aû£?K#ž?TG +?A%‡>Þ T>Þ‡)>¶è™>™ìæ>Hí +>N›Ù>ƒ,8>0>.¬>öÌã?oœ?eË?¦ÖÃ?qÌ =?ÝÐ=»×>®lS>œtm?Rÿ?%Æa?0n?!ÈB>Ý-»<½Ì8>Øð=•š>ÅP7>ë´ >úb?Ž?+ç?F³Y?sMŸ?¸Œó?¥‚>ç%>æñé>—iÖ>¢Û•?DÀ"?g??r=Ù\ô>YJ>ïq.?z¤?Xtõ?Sï*?gq>?d*>ë a>çnG? ˆ ?/F„?ŠLn?¥À??GÌa?ŠË^?­k÷?‘è)?Xò?&5ˆ9Õí=Ôª¶>æø;>Ü°¼=¤zõ=иß>Ýé<>æ©<>®Ó–>À²?Fj?fb¶?Á@Ì?²Â‚?…»?wÞ>åðþ?+ζ?”g?˜èÝ?eœä?e‰¤?euŸ?dûR>èÙé>å0Â?æVÁ?飢?ž½T?MP>ÅøS>ÿm>0è>BE?b}?ÈGÏ?¶J€?œE`?‰&B?=-?8vK?›‹p?¡L?Â[£?Æ3v?qO?ml?­†j?¬?ªdª?ªT4>ªŠô=¢(>£ù>É;^>Ó¾©>â©6?28.?~p?‘?©È +?™’?ÁÏc?Z™¬? ÎÃ>P.¶?UǤ?Õq¢?ª1"?Vpï?‘–?á Õ?ÈÂG?aT?adQ?Y³ý?MŸ©=ŸY=Í& ?#*J?;Ú?_i?`Ìû?¤øX?²°š?Ÿ#ÿ?–D`?n,z?E†?V›ó?`ª?;®>à¦$? ÝJ?ZV"?…Z@5‡ð@7G•?>ëO9?U´?`£é?m Ý?{¿¹?vú>àªË? ó¦?ë +?]”l?•¼?‡v ?`À$?¾Šæ@( %@¼ñ>àÕ>àݤ>àâï>ñãö?d a?fœ?Zš?VZ%?çn$?ò'»? <ƒ>xÒ?§†F?Ù{Z?ü¨P@ +lž@þH@Ù?ŸÏ¶>!–‹?¸?©™P?“E>zºÀ>Ê9ç?ª¿F?¤?aß?aîÄ?aú_?b )>þîs>â);?|ý;?™¢à?2Þ>â`¯?—yM?Õ?“ƒÃ?6žÆ?;u?@GÙ?PÉÙ?bã”?« ‰@"”(@@d?kÙ‚?We7>ãG6>öTÔ?ªq”?ª±@?ß›J?ßn!?ªµ$?¡Êm?£à?£ûu?„~¬?vÐ?”ê»?ŸP?S¿ë?¾e>æ¶<>¡|??A²Í?«{F?A ?IF™?mU)?“z¿?§€ ?èèÒ?ÈÞœ>å<Ø>á£>þ^­? <5?O8%?I´C?aïÂ?eÆ@ˆ@²%?±¶Ã?žq?¾¦>Š*ñ?aÕ`?å‚?J¦?se?°±¥?Û¾+?©?l¡;?1‚?­4X?”Û ?g:ì?žš”?ç;Ï?Àçè?RCo?OÚÈ?Wh`?Fµ†?@¼?3³´?“ë?†à4?e-? ú?Ôfp?Íðõ?ºèü?¸­Ë?™Ö>û…?º²ö?Ì +í?„ X?vù­?Ù>è¸ÿ?žBr?Áã¹?Œ(Õ?hôp?¦Ù?¼'ï?¥qB?“Wò?®ª?ÌÌå?£6Ú?qIÆ?”= ?¯àó?s^î>é’/>êÍ>ó•2?Ÿx?éÁd?ýoÞ@'É?õŸ ?‹hŠ?—ÙÓ?¯‚?²àÉ?³þ-?Ñ}p@7gð@'Ôé?¯«t?©˜‰?jJ?z™W@÷ª@ }B?QÜ$?L®ã?›Vô?’<[?g2ì?j?j–^?jœ=?ŒM?ˆ–>Œî«=©\´?DA?j¸h>OïÝ;¨D@>ÀÌ‚?t?ÛÄy@ +P?€R°>êÙu?í$0@'ï+?¤„¬>õ` +?Õk2@&|²@ !‡?és?£|W?)M¢?-û$??m?‹v¼?Çåã?ª| ?jãD?‚I??žTñ?˜nÑ?}"C?‹ â?°á?¡^Ó?l5I?†M|?«»#?²æ]?ÙX?ξ%?°U?§G ?"ŽA?Ä¡?ŒÜ?‹ó4>{DË>u+™@Ÿµ@š€>¾ì`>œä—?…$?’´Ì?Õö€?à»]@ÛË@ê#?™Öã?k9î?Îí?ê=È@ë@«é?—Âô?bP¦@kÒ@,¯á?ü¤X?¿ˆž?­m/?©Ë!?¾Ö$?Ê#?ý“ø@ÏO@r_@Â?ÕZ>éŽ1?7Ç?¤“7?ÊÝœ@žJ?ú ?iEÏ?‡,x?Í÷?»k?‰E?‚ÚQ?œ‘q?–‹®?ÏÌ?Š«É?¯Š¿?µV?s7?hœ­?…q>è‚ö??¡?4ÌE?X>ø?hH?žAÈ?®gý?õti@#¾?¯¡û?Â?Ë)æ?ñÉ(?‹Ãˆ>ç³C?r…?˾³?Ñƈ?àž?ÄzÅ?–°?J5´=&Ö}=ä>F¸ò?­eí?¼:@=1@ŒX@á#@%ú?xl?f‚•?-{ ?-@ª?>›}?VY^?ï:?‘6?‚vŸ?v…y?uð?kŠó?±Ã?礑?³—è?e”ž?©©Ž?ò‡ú?çò?ÝPŽ?Â)? »?Œ]–?–vö?Ÿí\?ÖÉC?Úl·@(°@aÅ? åA =ΰk=Óp@?±R)?ÖSù?¶cL?«T?ß&ú@o½?׃W?ºœ_@rø@-( @V¬?ãŸû@%l@Ž+Î@b’>??*ÒŽ?¿~?ˆ(z?šÂ?¢…½@  @ ËR?Nïv?C?Šä?¡v?|‹?`ð&@05 @vŸð@Ý?b3o?ŸJ?Ï ‹?ÆI5?ÉT©?¾3?¾ž?­ ’?$‘»??­Ä*?©Ûê?¨Þ,?£…?zŽa?wú#?Î-?ø2d?ɪ—?¨¶R?^¡?˜×?~h?ÀŸe?Ñe?Þƒµ?@ôê?ôC?²‘?¯1Ì>˜þª>¼4š?#ô#?B-S?­–á?Âe?¸@\?­‰î?ËÅø?ß‹Ö?Œûê?g ?´ô@L„?ýj?¶6W?¯\À>ª´«>Ë ?ë~?æ[/? ¡?¦ñ?цg?Ç[?™ä?œç¹?Ëð?ÞQ¶?ÎÅ1?¼$­?£ÁU?Ž‚Z?s2>ÔÄ>ÝØ>ÝÈ +>éð?]«g?]’á?¶,?¿ü5?ÓÑâ?Ív­?€®??*b?=ê×?] $? “œ?Üä~?äÕ±?éIG?Ò?‚?› B?„oR?‹N2?n‡v?oû?hFk?ÌËò?ܽ?žN»?™Õo?À;÷?Èêq?ÃÆÃ?¾š±?Õ`c@ 2à@Øy?´–n?¦µ¢?£ùÌ?Ÿ®?šsj?•2è?Å-Š?ÅOM?ö |@'%@V @ƒÌ@D½?£¾»?¦`—?œnf?•ž®?‘£?› r>“¿P>†¾d>Wb>!([?WU?¢®Ä?ÖßR?ýìn?¿º.?q­¸?©¹c@<;?û­·?‚´?‚m?reì?Zfb?Vœ=?L¢?¤¦ ?å(ˆ?Ù{D?¿5Ð?Â?¡Äþ?š”n?OJ@?WG???§x?\xî?WÜ?uJá?ˆ­å?– Ù?’ÞÛ?vo?R` ?Jˇ?' +?[Ä?‰sŽ?”N/?‹î?ŠÕr?™6¨? C?ˆô¹?TÙ½?'h=ç]Q>Yñ[>Ôʼ>Ô®e?zÆ?Žo?_ýÃ?HϬ?RÁ?RH$?}ªE?Î/E?ÖÙë?$·×?ÿ0?¥Á?»B·?¡©É?œz+?žÜ°?£àS?‘Óý?/ox?=¹?ÌZf?Àyž?š ?~ï ?V+?OŒC?fzY?o¢C?•HÇ@‹ù?ðl ?Q?Pâ>÷Ý>Ш”?aPä?”9b?€ÑW?P4"?:Õ„>€±>—ü)>èë>׺B?sûW?—o?­:“?Ï,£?¾«W?„#ô?Š#j>‘©$=éÞn?bì)?ž…Þ?gÒœ?Ö?ÑÜ?ó@? °Ã?Ž`?x\N>p„“<·?H@@Z¤?Î8¡?M4—?M!æ?/Ör?;­?Gã?Mƒ›?[®|?a«Ù?Qaß>Ì€>Ìu ?€í?rYî?‰W?™w?ic4?4ù?t±Ê?Ÿ5C?’¡Î>æTÔ>i{˜?Ÿþ”?þ½Ý?Í#¿?k ?¦E?ž«?‘ðì?– ¦?˜Î¼M>̬?l?KÆo?IF¶>ËÑ­>ËÚz?Ì…? 6?!<ü?L¼$?:ö¨>Ì!ì>Ì0=?³pò?•oÛ?’ì?™aÆ?{ª?L·þ?6y>Ìñ)>Í ì?*K?*"3?Î?•âD?ù%<ÈKà>Ç?œ¬?‡Gp?—m?;~?y?˜!ò?› G?•–ç?Žï?ˆF?}¥°?og‚?…°?˜!„?, ?–>ÒU?>þj?¾ž?Ic?pù8?[¡^?Oûb?ZOÓ?‰Á?h¢Ü?U›™?V§á>ò¾ž>q†4>©Ž>Ø—“>6O>½7A?\?2+M>«-î>Ì|>Ý''>£ßo=´ >ƒ¡4?*f?ÊW>©n>Êíô>â«i>É>$J¤>nŽà>? ¹?&M²?8'?W*>®ñ>5]¦?“.?Kâ>ÍÜx>ˆ/R<¯<_{Í=~ؽ>,MŠ>ó¢ç>€£Æ>`°>gr >™6A>¿.Q>¡ ì:Î=+;ñ=U¼?Ý´@ÛQÏ?QL>—õÙ>~}‚?q ‹?ˆp„?|ˆý?5b?#ï5?I_l?A¿?å5?$© ?K9ù? +«=;šæ>¾>Ö‡h>×:+>×ä{>Ø>Ù1L>ÙÉý>° >’­÷>¤º?>¶Á=>ÈÄÙ>ÙªÍ>Ý•?DR?DÖ?<­“?¢p?—'#?1Ò >à“l>ïX–?F&K?NÒ>õN>ÝŠ›?ŽØl?È¡ä?”ë$>ãf=>éßù?66?.åC?’óÞ?Ÿ{?•í>}òg?eKï?dß%?dÖQ?`Y>&¡=¤?¨Õ?êû7?ÎKu?ź¡?˜-·>€\u>®n¼>ÝÏ +>³šÏ?o˜Ê?vîò?¿B?âk?žmJ?`tl>üe¿>ˆ‡>T. >„A >³jº>ç,M>ý¿n?e4?XsÄ?¡\?……>Û L>´Ö?lr+?Ÿüe?ãB;¹®?>Cj>ÞZm?-z ?9­?‚³ý>°:>·Œ®??ûH?<7?„(Ò?p,6?Ÿ™5?¤2h?CÓ?Zß>Iyµ>|ý>å¼,>å¬8>å•Ä?OP?elÊ?I»Í>ï¤É>Ø%±=nÿ‚=ÊT?SÖT?gɽ?«îD?«„?.úA?®W>—>d“É?©€?4ì?+â=?/o?I™T?{?iþ?MêÍ?=¦P>ýøü?!ª?ª…H?³–'@ ÿX@ ®?ã5?ßÂÃ? õy>Æ?d?‚Œó?“íð?bX*?DÃm>ä©Ö>•0)? &R?JF?vµH?…â?{Gë? ñè?š?3f.?=¸º?ñŠ?†ž?b]Õ?aÃ?zî?wzx?céã?a\Z>°Ãç=Îë?-4?c)Ï>ÒÎÆ>C2e>çO”>ô>>ï‹%?]Z?`؃?k—Û?‹L?„&—?FÆW?Cê?]”P’œ>S>ªÇ>Æ›Â?€ G?œéÅ>ç C<š¯—>þžs?`¦?¿)æ@ g×@ •@ u ?ļ==>>F`f?`Ê?Nð£>†è>*?H‹[?WJ´?5­?#¨E?Ë?¥üS?¶žt?Áµ’@~$@(ñS?ÃÛC>ù5î>­†×>\ýÃ?Õú?¡±´?W?ï&?…øò?a¹?aÊ?a×p?aÚ?èù?œ>ò)l>Òßç>Ô\Y>â;w?¡Ø?à W?${$>x=ŽŸé<êÒ >Óû\?]‘Æ?aûA?bÝ–?¦Å@ Þq@f™@'ú@@læ?iö??tì¯?°Nœ?²Hk?ÛFº?Ú>¾>³N€>v—?,µ?dK?h–þ?‚®R?‡ô¨?„ñt?V,®?9;?­Ï¨?í?ÄF£?•…?€Øï?f^?œ¤÷?ê´T?Äàu?!? e>&À>…‡Â?‡…­?‡»á?F ?MšH@ŠT@¬?†”??x¡?žì¦?¥ÁG@+f@ß?È<æ€Ã?ÍÆú@'^?ÜÔ›?­µ?Ž²,?fíš?qw"?Õ?{è?g3?¸KÝ@*û?Ëi=÷xh>}of?c ?TN(?Ò¡ç?Ðà?Ýå?Öâ?Š©ë?”Gñ?¬…È?§üæ?”Bj?–j_??qØ?»Â??\»?h­d?h¼G?hÎx?µf0?Îzq?øv@6á??œ—=x8Î?aŸ•?®ãm?ÑÃœ?éRÐ?ˆ¹>éhK?©½ù@¿?Çýó?†Ïs?¸.ð?ö²?³:?;´?Œók?þ2à?è\z?Åê3?Ð%Æ?öœ-?öû®?Ì©´?¿`¬?Ž«Â?–Iv?Ÿ÷?Æõ¤?Ô´C?Ö®Ñ@f5@ûc?j_?jg¾?ji¼?k-‹@G§@h?írØ?êŠ#@Ã@Ú?…âŠ?VˆÍ?Z'Œ?XÓÐ?Œ5?›Ë?(6q>ê­¶?špÉ?È}ö?¦Á¯?‡pð?®Ú ?Ìðü?ª•?–_ß?Ù_C?ö„f?‡¹Ó>ê½(?!¨^?P…?_ŠS?j»‹?NCC?‹à?‡ë^?êXR@?Ø@|Ù?çà?jªè?–ƒ÷?áé ?â`½?ê "?ÉSX?<‚¦?|6?âÏ?Ïåö?”Ý=?‹Ý–?+Ø?6êÉ?â…ã?æF>Ñ >´´9?&EÓ?ãL?£X²?ªi˜?^2>îq£?Ôù«?éW‚@ ¿@·¤?©:9?“¬ø?˜—?Ûþ?¹´)?Û3?º`d?¨?êÉ?þùæ?Üû>?ÓOÑ@dÄ@7±µ@'êÆ@ŸM?Ï·á?;d>üz >ðQ?H2/?¯Ùó? ‰Ý?i#Ã? MT@ ýƒ?ë­®?8??k|?Ò?Ý?ÊK7?“Öó?ˆYx?h£?gh?Cî¹?I¸Ó? /?/Ã@«D@ –?Žg?h".?iøM?oÐ0?ÑB¨?ñÝþ?z+u?ò9@-`°@uI¢@ â?jE?f¼Ï?}ò­?h(Ò?EJ"?ÂG>*ØR>W/ä>pkù?-¤@X ?ù¿?nØ=?{mŠ?h«?­‰©?Ï«?×È‚?Ùha?ÏD>û->æ=ô?!x? ž±?£yx?Ƴñ?°?¨Æ?Òóç?åµ?¡ÈÔ?{Ž`?®?Ì•Ø?Üy?øº ?î…?àÃ?Ô¶Õ?«Æ{?˜{Y?C³C?YÝ…?˜Ä"?—&¨>ö>éUÃ?cT?\iÅ?‘ó?‰4?±ZÄ?½Ú9?”åe?Œ$Þ?‘–?Âk?u[?D?„ev?¢uÉ?Àº?â¤@Ì@.íƒ@ù•=ž— +>×>X?ÑmŒ?Çt?Ä ?’pD@%'#@!/¬?Œ™?y²ò?…©ð?wîr? Ê>ã}P>°Eå?5(?Ÿ£?¾N?¢Z"?—ž9?³ø?ÐÄì?ö‚×@K›?üô†?©#8?¯"?áfÑ?Þ›í?‘?l?¾Ó–?ÀJb?«^®?¨°?¨¤Û?¨™š?[—n>ãÞl>ØáÐ>öý3?O¶?¨Lg?¼/ˆ?æï6?æp?еñ?ÆgÁ?~W?Wþ~>7‚—>íi?~†"?‚û?ÃB>?ݹ™?ßwÿ?ßi.?ÐÔ\?º„‹?±7?Äç?X>߉?ü;?°Œ?šÃÆ@ 8*@+¡=-Ä?ÍYª?Þo;?J3? ?gDÞ?‘?±À?ÞÌ?¯??©†>À‚ö?'ËF@,¡Í@^?•lX?ˆª?¥c3?¥õ5?ÂÎ*?Úã ?î6ê?æ=ß?˜¸±?\â ?M?¯9å?›Å&?…g/? áp?Æ¥y?Ø=S?ô?ýé?šZ‰?£!À@J=@SÕû?¹S?[Êù?œ º?½‹?©Ç£?žE]?Õ›§@. @Uf@$iÚ@JY?¤Gµ?¤9??¤-š?¤"?ýÃ¥@ªÈ?Ó?¿Æw?ÂQl?ÎÓ§?­ýˆ?^~z?P®¾?¼#?K)B?«TT? ¬•>þÊê>¶ÄW?@‚V?YnE?Y_•?[Q’?tuð?Ž¯é?L4¶>1.Ù?ð”?Úåp?çr?Âg>ÿäe?͆?Öt?Ìk?ÁfF?ªo ?¡ìÈ?a‰ò?$I?MѲ?¡¥?‘¸Ò>×î÷>ÝÜT?À‚¼?±\?0Ú¡?ËÆ?E$Ø?V¤?¨Ð?õDr?ÁÃ>Ö{>ýÙg?C_?7ÿ @`—?ò¶ ?¿ô?U|5?†¡?›Š?aIž>ÛXn?´”?rlR?]N?¨Ë(?‘ÃU?š›?‘?im>×'o>Öþ¡>ë:ò?#·?vsH?mU>èg? 2¬?8ù?FRç?wà>×]>ÿ?äç?8¿?RW?m…{?ã>Ô?îãp@ Z†@yÉ?§NC?QŠx?‚R®?œûL?ª*x?çW@/?‡þ1?lN>õm>ÐŒ>û]£?â«?&GÍ?IA? §_?9'n?OH?Ìðý?î݉?ÚÖ½?Ï 6?²NH?+åÂ?7ïì?ª^¾?œ/§?!S?Jì?$-o?'5Ä?5Ÿƒ?u–‹?k)b?êL“?ûô#?ŠÉ³?8Ï?yç?Q@ ?”¬¼?§,s?”D%>òœ>ØÝÞ>Ìã>Û›´? ¼Á?L‰¼?5‚2>Ìe^>ÌX¾?¼â7?ÈXQ?AÐ1>ãñ²?¥8s@{?͹™?`;m?‰=è?×\?”Æ?pUU?]e?„Ó?‰9æ?‡è?´öK?»H•?–æJ?•?/¦<ܽ¸>L0œ?R±?—ÿ?‰Ö?±­?o‰?“¿ ?Íu?ðèª?Ú,¬?¸a?ž§r@"ÊÇ@ S?´è§?•„v?˜”?’ò ?€_Ï?%r?OL? *o>ûûè?Ií¿?NØ>Ípt>¹¸J?±ø?³í?ø¾?++Z>èÑÓ>Ñ•m?3+!?h(Ð?^^ñ?Pr?Lß&>Ÿ_‹>»Cx?OmÐ?VOV?Eˆ?1®¥>¿ý5>rÀš?%¼?–]á?f“z<,€>?  ?p×ö?±Î?XŽ?Vy9?}í?–íø?, g>Øf>¹h*>Œh>¦ªÉ>ÚŒf>· f>9S>ì >Üå>ûÅ!?·¶>ñè?i²?¦9=Š;>â\¹>õXº?, +>ÚÌ•<Ó3ü> +ˆ>æf?]>¹»>»7!? J?/)>õ ©<¼¯}=gD >ôÙ>®h =ž¤=xˆ >^@->³Oô=WT<<Ä£ê>ßç=nM>nU?F6=K¨?‰Rò@´aü@,,{?{t³>ã×>Ù¶ä>CÏÃ=ú¾>¾>Üj¶? ”[?h…F?scI?Aí;QKP=ú,=µfJ>hü`?LÛ?NeS>s²K=ΔT>—¯w?,–ê?$Â>“ˇ>ÍÑ=ŒIk:óóê<³Ta<ò‰@>‹²? ?LÝ‹@?Æ@¹Í?h~Ð>à&$?]? 7>õä= f<™I??êã?~Û¢?`.=ôm`>¯4¸?cƒ?`×Ù?“/Ô?£P?Râ>Û/¹?Aî?dô=?CxF>èE÷>öŒN>ÆÒ>¶vÍ?QÍ°?†‘×?pÇ?]®u?6*Ô>½á?w®?‹ú¼?Ÿ¬?Èöá?»õÌ=¶öy;¨l>È©>ý°¿?/“ç?5@?'¿x?‚_?tï>æëþ?'Ãø?­.µ?«y)?Óè¹?á9R>ÏÓO>i—>É,â>æÃú>éN>æ#É>Eú/=+—>÷ÅŸ?|ú»?2Zè>¾>>:O>µÂ'?T~?«Ã'?±J¸?¶ÅG?¼6§?Uá?Fû!>©Ç=¡+>‘ÈØ>Òo}>ÜÑJ>äѵ?*F¹?eAÐ?…^¬?žÀ?[KÈ>Zx¸?ŠÒl?ƒŠ?‡v?ŠU~?’ª?ß?’Ú>ä1/?\?hÁ?1Œ?Eu¾?ŽÍ>?ªÃû?dd >ã†Ù?"“X?g–Q?ƒ"û?ªh›?“*Ü>þf? i?zC?V§>ç¦x>â­J?q['?€õ¬?iö©?bb­>y´Ø>ßý?+á—?€Åô?©}C?ž}ß?“^Î?…Nù?:j–?!1|>áœù? + +8?‡W˜?……Ã?°Ï6?¯h?xÿ¯?lÐ? «Õ?¨Ýú?¨Ò]?¨É¿?‚ç#?Wþ?ÈÖ>àä +?|3?O’Û?1›?ßq?>Õ/?¨„ê?˜²¿?×?ìä?`•þ?`¼O?G5P?8˜ª?UM?`{e?ðžz@ Hy?Îå?¨P²?¶º$?˵ ?”ë??ø"?YñÞ?·–Ó?¨¯Ÿ?`c«?MC>àdÖ>í‰s?U—%?WÕ‚=·<²ŠÈ:ý—Î?.áµ?`{7?^&>æ‰>þLÉ?d?d©?$£É?ƒ(?¼Aß?¼žü?Én6?¹?|@F?bÿQ>àÒŸ>ê†þ?•d?”MG>ƨ>¶Íh?MlÅ?a ?»“¥?ß¡{?ŠÄ¿?- *?CS?=Š9?Ž†F?ÙéE?¥Ã8>âµ2? +É?a›Î?h•ç?}öç?tS¹?JZ½?VýI?ý%»?úŠ>ùp>ÊáÙ@öu@!ƒ?Î{ž?¨²‹?:à„>âz+>9bÆ>g[@>çŒ?XÌ1?±d?¢á`?ˆð;?smf?ð?Oç?<:?Õg>ÐÅÒ?éž@&œ@ â?‹v?„ªÃ?ö?ÿ×í?~"ü?QÏm?ÿ>Ó#Ö?€CÀ?¬? Sÿ?—R?„¸‡?OÈm?™‰?Õnm?¬ø¹?dôŠ?AO>å;>õ®…? ?¬?4fñ?;à§?£ÀQ?¥ ?¦gÝ?§1å?aX"?aߪ@ G¿@ËV?»ÄŠ?¬ªI?|@q?d=??pÕ?|Û,?.|Û? ìb?H’¢?fËp?/À(? °? Þä?¦ø?Kqc?f¤?K¢?bh—?1ü}>çz?^K?çž?Ð[ð?xã?€‚>çáv?*È?çÿ +?Þ·1?ˆÂq?‡-˜?²ï–?¸ü?’Áa?ŽÁB?h’£?h‹y?yq?w?–?fØ>èƧ>ñèÌ>íx!?•_×?®¾š?ƒÁ”?jB>©ª=ð5@? œ‘?[V^?žö8?ÃvÊ?˜‘ü?iy‡?„ã?–e ?ÕË?AQ”?¶Æ@)@B“?ÎÙE?¬9?iß?­ñ`@ —§?êt?…B?¢SÛ?ê.?òñã@ R»@É9?¥6? 4w?j="?mõ?}w?€»Õ?êTÁ?æ’µ?kb?r‘ ?¶X7?»ˆ@Ѥ@þ @+_?ý0a?©¦4?ž«d?ÐÎ ?ÐsR?JÄN?'¨«?˜LD?¯»?ðZ†?ü0?™’p?j?ø¯@&2?Ñ“?BÌ«?6&‚?)o¢?P,¨?su8?Õ¼@õÊ?ëhX?°$µ?`ž? î?eÍ?”(?A…?Cÿ?´Ýz@=Ž@ ?ÌTZ?Èû4?åhä?Ý/(?¯Ï?©’¯?‹®Ë?‚4?FÌW?feÐ?ɲ€?ÁžŒ?§|œ?§‰%?c…G?io?¯?¯Ih?±l¤?´Ï??e®?4Ô?y +*?ˆ¢õ?³ï”?¸b?ƒ¢ï?i¶ @ìù@)§Ô?÷“s?Á3@ +Ã@,Ó@^?½t«?”Âï?iJ?Âe?®Ê»?H­=à˜>ê—Ö?i¸?d»?r¸e?vô£?>•?Y³à?ª{D?µåR?Ï=W?ÏÀO?¯«?¥?Ï? +B˜?H“Z?Tç?­ +?®8?ã³”?ãC ?&„Ò?Ä9?/Ë?J™Û?„è†?„­‡@ Y8@4;@?åãË?”˜»?uõ?>ž?1ÿ~?%[V?_å¿?‹ë'?íä@Im©@, ?èøè?ç31?Õ‚°?°iS?ª?vxn@0OL@!‰/?åE‰?éFŸ? Êò?¨H?Ïxi?Ùt-?'ÊÒ>üóø?R`…?e¹†?žV®?¯wL?‡÷?euÿ?ƒnÃ?”ám?›Öû?¢Ìß?*V?o2?¢?Ѽ?«9I?97?©e>ä«ž?ÖÑ?«fm?À€j@U†@GºT?}ƒ¾?‚0ã?¨Ä??« •?Aú¼?/ʹ?†E%?ƒ',?SÝ>?3Ø…?QW”?jR;?ªz?ª½ð?ƒ .?8˜?on?|Û?6É?âõ@?سú?ªQ?°å6@É @1è?–4a?œŸT@(@ h>Êè= ûL<„æ ?ðÅ?áî;?Ê„#?§Q1?°”L?¾Õº?ìØ4@:6a@*žƒ?®ê?²Ä]?áH ?àOƒ?ÆÙ?º!Æ?¸|î?¾Ú?â2?Ý8á?Ãi?ºF—?Ê +˜?×^ ?¦Õq?g Q?+>>ø¹¼?[…d?³Þ?¢¶?k'*?ˆ¯?ª”?¯p1?7u?%.?Ð9c?Û#ƒ?€&?`›i?náÿ?€mc?¤y+?¸ÏR?·c?©ü?‰˜??ÌÆ?xÉì?ÓÝÎ?àaZ@½—@½ˆ?Õg?Â`Ë@§T@Æ?V"?fnc?øÂ>ÞÊ?–§?ÒôZ@ÌÂ@?Æ°@+ô<@yÒ?¾Ü?-Ú?’#i@ÜyA?Ø©?\O¦?p?¥L?Ÿµ¡>áæý>ÞÙ5@6T’@E;?ˆ®`?úR?ˆ½?¤¡M?hæ? ®?¨*n@""@$ Ï@$KS@¿r?o¹¸?yQf?@r­?U@?¿ +®?Ú5Ù?…!?J¦]>¼–ƒ?pQÓ?ùY?ÌŒÙ?~™?€=*?À U?Ä"Þ?” »?™f§?{)ë?ZÒÒ?“µ?œ¨¦?—:?‘ˬ?:ܪ>T•>ëÂû?„sà?`Ïî?‚?¡Õõ>íÿã?é?»A?²Ûé?‘é?[UÎ?°>pÎC?¶Ä?­Â?—å.?Sèx?GH¹?6öó?X=>—¨>jª?(ë–?VyÌ?cãþ?^x?0‰ï>Ö|?;r›@“;?줯?ÒÔ?ôs¿?“§(?i´r?Y…ñ?U Z?RÚÐ?Fï:?bxl?Ÿ‡ƒ?§­w?òU?÷ðŽ?òͳ?ý'ç?“ˆö?R—?–j?±Z?¾?÷?áô?²—R>‘¯L>F$>þVº>Ûý¶>ÒËô>Ò®>ÒŽ’>Òp·?3É?R6¶?asù?€¸?f]>ôºT>àAÄ>j¡I><Ç>ù{?G?RÓ„?+?,Q?ñ_4@Äà?yG¦?A©“?Šòe?–DŠ?„;R?dc?W: =k¾?²ò?ejD?Ò?‡C?‚{>þ4>ïV‰@Wt@Ó?¯´`?€Ü?]†?MýA?K‡0?_lÙ?l§?UÚù?N»F?I>øs_?Ï>áÞÌ?bï?°»ù?Ìîæ?>¡E?L«?‡=z?†¶3?‚Èà?ƒ’1?WRš>ÌLc>Ì?Œ?Ž’¨?˜ÏN?d4t?:¼E?“Ž­?í~"?ïëT?qï?²%?2å‚?Jô2? 8Ð>íÚÈ?a_Q?¶b’?­U¯?˜®?˜¥?SG ?K\?zC]?z^â?Àu>/À£>|"í?+r—?8Xx>ðs{>Ì '?b­Ì?­´? Zü?j ?—†Ñ@l,@"ŒÈ?+ÁÒ<5Ò > +“í>”5Ê>ìžÒ?y%?&È\?4$‘?A‰q?Ûhÿ?ûAÞ?œÁ+?ÌŽ?ðÑ?X¿k?gZ=šÔ<¹ù:qÄ=Iü>¬¾I? gô>᫆>€\‹>„Pñ=Eq³;‰n3?™ýc?”œâ?'?ó>°Ž,>©>¹ ã?JÎ$?5²Œ>¼§‘>¯?÷g?!¤Q?0i³??>Ë>L¸_:3 ž?#?Aú·?3´‚?%TE?ÀÆ>ÚR?<Öà?£sN?[¯l=šÔ}>ì–? ðË?*)=ô1À=r49;áþN=‹£>âq>Ù W>Äø—>Øë6;éQ<"dë=t²> +–=H,>›òu>òWà>¤”(>­÷W=°'<gÚ<'¸ˆ>" q>°ûæ>Ÿº>S¹>hZí>G£;0v=¼³œ>pÂÃ=X¹0=R6*>ï„¡>’ã>ªé?>š=Å$>S4½? Øn>ã+>ˆ/«?N6@ÒI¡@Oa>?«Ðñ>–j°?G\Ë?I¥?UU?Uz6?JD©?r©?Z^?‰a{? >>Õ¬>ð¿?/@ÿ?)†>K`²<ç/E>»´?º'?¨ª?k”k?X![?xcê?—D¼?… >ã>*¥ >i “?T»Š?O]¥>öÂn>Ý–m?åû?| ù?šð>ð¬å>ß±ù??Ào?`n&?XØJ?WÝT?LP–=jÆQ=ók´=Xx>–àLO+Ç>å5?>ù¾Ü?C5ü?;Åû?—>/? ?ji?fŸ??f?è®?‘Iw@Pó@µ ?dzG?[z¥=KÐÌ=u>ñ1|?!Ô?P×?fžš?'¯¿>æ£À?9yø?–2?v Æ>¥uV>ÛHl?DÛ?˜É>þõõ>éY?Šî?§­N>£·+?¾ˆ?fIŸ?ECß?•G?ïe>úÄ—?Àþ?Œ›ð?…:Ë?eÕ\?i²î?I´A?8–·>ÁùÛ>ÌlN=òÂAò¶Ò?jR¢?ªeö?’f?gEü?–„?Ðs?¨M«?%‚>ô¿(=æÌÚ>*‚­?bA+?bZ? «?!¢ì>Ÿ8€>ck×?ƒñ7?¢5î?kÔ½?UŠ?ˆ}”?“-ÿ?šaM?©0é?Ž9—?,Vé?Y*°?ÇÉç?Ï™Ê?ØŠ7?Ý©Ô?á ?àéô?ªÂ\?¨Á3?·»?@–?›n?¡j¿?3­!>àÁ6?dF*?šå/?U\B>àšù?'1î?„!Q?v#¬?2¯Ò?PW ?¬”œ?žÀ‚?- ?6q4?gl?b-?²êÐ?É“?•!p?†RM?b>§ßš?F‰?I°ò? Cý>à?^?!fM?k´”?Eô>àC>>ã¡`>äoì>ôë…?`Hö?^ï¨>ã¾™>ÛQ¿?T?`Yª>SÑI=O]$?\ÃÏ?–.ü?6ù*>àsc?B[?Œ—õ?%Ú?‘¯F?kc>æ ??z$Q?j +¶?Q4ù?cäå?“þá?ë?'Ý?-3×?Ä9É?Î>z?w’O?D¢_?‹ý?óÎB?Ñä?±†”?™j?` ?3?‡¡•?¶?©0l?”›? Ÿk?PÀ«@8˜ã@5>¶>ÐL=aï >ØKÝ>â%?SÔÖ?b6›?ZŸ?§'?-g)>ÓÊr?.!R?V«?- ™? ®?š8??FÝ?ä›?f¥>ã!†?$dû?›o¢?¡´²@,ã@ª?ˆ‹8?Šo?ó{®?ùýg?úë>ãçÐ>3>Na>Ä f>ä2Þ>äG~>ä]W?hf©?˜á7?Åè?í­O?óÄ?“ï?CØ0>¸yÓ?¡?SÖ?‡ïò?ÒÝ)?ÀY‰?egu?gÝ¡?l-?ZœÂ>å²u?J(?å ?温@ 8m@ Ÿ»?(>ý_v?îy@P/?®G?–¦ü?2dÒ?èµ?sÛ?ŒÂ?¼a^?Ó±d?Œó÷?;n?fŒ?Œ\n?N½ >çU)?i©S?ËüŠ?··¿?ŒrÍ?Ÿèï?¼×?²¼Á?Áðý?Õç³?þ;_?Öyö>èí? ’î?¿wš?¿°Ë?K€Þ?TA?¥ž‚?¨ÔÝ>ûf«>èÒÿ?`!W?h·B@·f@ŒG?½dš?©’?÷>ÇÙ0?¬Œ?Ò¾?ø=·@/?øF¬?í“ç?[>ª”L?ZÖ”?–r¬@êÅ@N²7@S1?˜µ^?Œ9ç?i´??»1@+ó?ë³?yÔ;?§ð*@ +Ù?íâ©?Íb?µ5l?RJÀ?_U¯?n®¤?˜)o@U-@ «@?ê,ó?⽺?«SÏ? V8?šß?#ž¼?¤í ?¬  ?¤à?ªiV?Šå‚?ŠØR@F5@V@ ™C@ËU?š‰é?Ž0Á@‚ˆ@xÖ?š í?jqð>Ìcd>J€Š?—Ê$?Ñ ?Ò÷Ñ?Ùy‘?¿Y?¯”A@ õ@Líq?ð‘d?rì`?i8Ã?Y*1?Ë\a@',?Õ§;?Œ¸º?m!?¨ÌZ?ÆŽ¹?äïÛ?ë{¤?æ|\?Èè?˜ôþ?•CR?‹)?ˆ7n?E>?„@Œ@šl?ƒýŒ?fu>ê +ì?6&?¯xù?±ØÞ?ãgž?ß +>ïŽÃ>éÒÃ>éÌå>éÂï?_ùk?i¯?Úí†?é£-?â^Ï?ÔŠÒ?Ðb¹?ÖÈ[?Ù_ +?Ûúp?”¶‡?iN?ãp@i?¹?i%ï?j½/?pW»?À8^?õß?±èq?hß®?Ô­@!çE?ö¢Ó?”£I?}9?3]å?Jö?„ ‚?£ƒÍ@&Ã?ñ­Í?hJ?Z'¥>Y/R=ò¨ì?® þ?«ôñ>?+>].@>çd>çËÝ??o‹?A¯F?¾ºƒ?Îz?„÷¡?p¥ü?n:Þ?gO³?™ö²?­hØ?™Û?•Î?öv@(ÆÓ?ë]?lr†?Ry#?µ»?PÿV?°?žTr?«Fu?´a~@q@ ×h?ÅL?¹øƒ?f¢?jê?·¬?´AA?s*§?h?e«Ñ?e—Â?¡üú?¬ @“3@L?¾Ï?–Ô?VõD?,$?aœ?r¸ƒ?¯/@¿s?òv ?Öx&?­(ˆ>êÒ—?B!]?áÐÃ?ÛÕ?Ü“Z?æe/?dõ?eÓù?ÊÕ^?Ç¥?ð>ãÇÿ?èÆ+@jï?ç©?ÝZV?¼4?ª„Þ@e£@$v?Ò‘Â?KHÁ?‘WÅ?ÏQc?±â?Šä?•P’?”?’„?BÃ*?'ç†>ùG>é°Ö?§M%?¬vî?ae>¼‘µ?׈?ê3¢?«°Q?¤2@8Ž@#¿3@W†@lÄ?Ëñ©>ú7?ƒ²n@ Ê?ñ´_?vÄ?—"@¸N@y?Ê£¼?ÆTþ?ʆÝ?Ù-Ÿ?þqË?ùÕÓ?µƒÚ?¤?@ ¼‹@'£?´%O>àÌ?Q¡¼?§ÿy?Ž5Ï?,U?%uD?4Ä\?T?´LL?¯Ca?£éj?§Oò?iQ5?_D·?p? +¸¨?a>ß?†"?šµ?®ßï?¸”¹?µäž?¦ê!?›±n?ˆ;H>ß4N?z?|Íç?ŠÄ ?ï#E?óÀX?­³&?¦Ï?g?g’x?˜K?«ä?ÆÒ¤?Ýâá?Ì›¿?¶`?›BY?jo?=fÍ?ܲ?è_P?“ ?‰?Ç?¬Åá?©D ?ÔÁ¾?ÞÌ|?—$?ƒoˆ?ƒð?‚¤É?Š£(?M°?U¦v?>’š?i¤|?©É?¥t ?£×‡?›.•? Rš?PŸZ?}‚?e)†?È6#?ß?¸¤?HH©?°e¿@oþ?à.?ƒÆa?ßü?Zº˜?`W?‹Þ$?xw?ž@?“|?(O>ì¸}?ìU?Ïx1?£…à?”eæ?»l‰?à¸ê?Æ·O? j?’Ú€?l?ž?a€°@ìé@Ëì?Ýò?Í6ª?šcN?‚Ø(?*>„û?‹G@,^y@p?Xé¢?[Î?•ÜU?ŠÚ§?[é?¡ÙÍ?‹À?f~„?Üà?‡û??ÃlZ@!-X@ ÐS?š/Ú?–C³? I5?†Ö?Ø,>áC ?Wõ3?t˜Š?©›¼?ÕÿT?º/˜?éÓ?‹å'?¼ô©?Ï(c?æK? +|e?Š +?›[7?vye?Tù‰?TÞÙ?TŠ?KÜ`?J`Â?o…6?±?¼}F?›_Ò?ží?mW?SÄÞ?AÐ?PA??«ôM@P?û •X§=¯D*?0>?`ä—?=­R?-·ý?Nê€?a–?J1?ÍÕø?À£z?‡ ?QR>Ü9õ>iú÷? uk?‘} ?.›>Ò:ñ>憆>*¡@>Oä^?‰Ë?´õz?ºÒ£?Àº«? 0Ä=D?¾6®_?=(Ê?)ù_>è>Ïc>Îé>ÎÍš?”?gBÂ?Nxd>àÊ÷?&îÐ?c!?s#V?›±H?¥AJ?hz>M#Ú>u ?ÍM%?Åš>¸}¶>Z¥>ŽV©>å•G?‚Ú>£«þ>­;hÊ.=)®ð>æ è?"Gl?™„Ì?Èšn?#>ùº>àW>Í2È>Û€š?šº?¯QÍ?Ÿiæ?˜Ù®?¼Ñì@&­@,ð0>%U8<çú ?˜Ø?/ý?›¯Ù?ûeâ?àœë?[H?“±ý>ýa +>ÔF£?g>-?˜–+?nGŽ>¹A‘>‘cÇ>ôÁú>ÛÌ>Ë»›>Ëœò>¤Jh>€>÷Êx>­úñ>ˆnŸ?C?–¬?¿Áq?·ýC?Dcò>ƒÁ>Õ{º?\¬?2¤>²ç/>Éù©?¬{ ?ÔЩ?ˆš‚?©R? 9v>Íóû>Ðn‡>Ü®!>Îrg?/ª×?$‡? m¿?•–>¬´Ÿ=» #>ÓÞ7>˪5?:?#G>íç>ÑãŽ>Ò9=>Ò>hƒý;/ä€>)݉>ÔÜ>ÔjÐ>ÔÑ\>Õ9¢>Õ®g>Öñ?°š?˜)>Úˆî>ª'?'ÁO?Y$?ýü>¾·®>{='8t=ôäà=h >,B>µOŒ>ÿæ`>ä˜p>Ü 1>äê?Aÿ ?²×<„Zb=’u=¸Ðg>ãT%>¡« >ƒ±>ëÉß>ŠöÇ>L†>®ˆ>wÎi>‡DO=‚ô>Ý*ß>ÝÑ=>?à>V¢6>}>µ[•?<¦X?{X’=l0>M^Ž>ÙÔL>u™‹>aLc>ü‡$?.;e?yî=?&cÂ>áóÅ>“ÀÝ@جó@ba?¨ãè>™1î>á‰Þ?Í$?Z@L?xú?—ï?Ç“?ÄL˜?˜C$?O6^?PØ?vÏè?Š)é?Œq?ª‡>üÍ`>ä’? &ò?:W”?º™õ?° D?“ÂÇ?ªéQ?ºÔ?&Ý?- Ý>Î}=ÕZ>+öó?N#N?E„™>Õ ½>Šû>Ë{á?#wL?— ?\ +”?_ü-?mÇ>ବ>´>®Lí>â¶B?·?G (?A"±>¥¢Ð>Áëç?ŸŽz?§»?=ž?Wº€?‚x±?•©O?jÃR?úÔ?.z?§\¨?®î§?Imw?>„?,ð?4??aJ ?p-,?°”;ÏÀ>i?>ÊS¡>ÆÑ_?IXê?C‹©?ˆ?#˜þ?1Ä2?(v?+-ê?>g>ÿvÛ=Ö‹Þ=X +>|áÁ >¶ÁŒ?E­W?f=?íÀ>¾OV?SÇ´?ŽÅ-?‚;Ÿ?€5ê?uü?Dì?r;?Ðñ?ÃýÊ=&oÇ<ë‚?_‰c?e ï?^7Q?S¡²>š">dØê>Í ú>丱?‹7J?ÒÄœ?—Z>äiF?Â?h!Ü?E“ô>5Ì‚>›4?˜ý?›6?~c?yt;?ŸPõ?¤H>~g,<îî¥?€àG?ªhJ?…xÏ?gá‰?gÈ?béè?EŽ¥?2œ‹?fL­?‹îñ?q‘í?#.? ?Uk?fa>XOƒ>jŸ>á~Ø>áû ?{p?’œó?=Ó³?9Ó?‹@‚?¼§„?®+;? u†?¶‡õ?ÒCž?‡ê<¼=±>á#Í>áñ>çÌÙ?H?Ýb?Ù…O>ìôh>àÍ>„‰è>’qC?10“?AÄå?4[ƒ?:Ð5????4ïÚ?G¯é?`u‰?y=p?ŒVÌ?šøD?Ç@á?±¿µ?z‚>ÖE^±=ç>°ßT>WŒ%>—ú>ð>K?”>õ–>à%×?]Ší?¦éÌ?uµ>à%ê?W¹Ú?à"?º¨µ>龈>î<>à0>ï¶X?Ïøi?Î@S>é~l>±ä?ZÂV?|§>¹¾.>ê¾>Ôá;?Ä·?Qý?ÚÕ?4û?>Ír?g«Ä?¨må?ŒµÇ>࣠?+Ëj@=Ç?úÄ ?H>?Cf @t@ /¥?š9?ˆê7@Ï@k±@ lÍ@ V?£Š?—ú?…TJ?Çé?Àvž?­Ø?©?¥ðˆ?Œ>á¯y?€Íg@~ ›@k7Ÿ;T·€<ªBá?]µ¹?b?¤;Â?©ªp?jÊŒ?QË?Ô°?L…>ôü>âžÈ?TN?Š‡A?ƒ´q?ƒ•Î?k͆?9úæ?xÃj?ÁBö?Ø{#@ˆJ@··?ælÌ?Ôÿ÷?â?ï>ƒ(€>‡`?)ã?©>ê?b>äs>ä, >ä=?^?•ç?Z1Z?N3Z?§W?Ó>®?`ƒÞ>>“ð$>ôÇ>ó/þ>ïg"?ó%?eFI?¡œ’@c @ É?á$S?Ö4 +?°VK?±â»?¹¨?·hH=¢Nó=­Jø?½ ÷?Ç ’?×ÿy?Ö…J?–o´?‡ÕÚ?àJ†?õÛ¶?Ä ?»8I?¤@Æ?’?Uá[?.ní?ní6?†v?‰Ø–?–º?˜*5?™ ï?ÑýÐ@<?òæû?g´?×É#@\r(@+pü>çò(>×Ùü>]r>%Ò=¤ A=±JÖ>蓳>ùf‹?hhk?k#×?¬Wb?ª_›?Ü®?(¿³?ú&?*~?OHx?O+ñ?¯Dx?¾Ë–?ïm?ü_¬?ÃÝ?¸FÖ?‚Ñ?B·‚?{-?‘ݲ@¼M@Fù@|L?”Ç?‰Ø?‡ÌR?‘Æ?Ÿ­*?ËÓ©?ÿå´@ +Ç@í£?ßê?ýl>¾õ£<µ’!>æ·?¯uñ?žªæ?r2O?µ®@*u™@mÀ?{¸ã?Ž!Ø?Ä\›?Æñ?ó~O?ß *?j4Ž?j4è?j:'?uŸz@PØ@æˆ@&ÂÊ@,þç?¤ ™?›;þ?ÑÜ1?Й?¥ÆU?š$/?r ?jTO?)ƒÏ? 0o>d¡lê¯Á> +Î>Ï[ê?I?†ð©?»„?¤¤?‹!?‡ +,?urC?‚gT?”!?ÉøU@çb?Òô?j"ˆ?c™p?F–ê?•Ú?òì6?ð‚¾?îÜ@¯Â@/gš@Ó?­/Œ?©rû?¯d>?¼êŸ@ ¥@5,>é¿? »@ Œ¤@Ÿ¢?h›]?i“ñ?tCü?†éÅ?û›Ã@-?¯ÊM? Ð?À”ó?ÀÒž?œÎ?†œ×?Ë«?é_?èo?ã­Ñ?šç…?hñT?£¿½?Éå)?ËÚ5?Ân¬?تH@oJ?ù?Ê/Ï?Ášó?¨oñ?Œ‡/?V×?„rz?ÍШ?·‰?‚7s?¹œ.@h@T½?­ø&?Ÿú‡=Až?¼?º?³:ë?â)B?ÚÊ?ÇaA?Ë?¶?v±ä?Kº¿?|Ëë?ƒcA?¡qÇ?­R~?Ò?=™Ö¶<Îh8»à>>ú^Ó>öb>擸>µš>Žµ ?CÀË?Å €?Á@õ?¨Y>?¦Ý?¾#‡?ºD”?€Cš?ˆ“Š?ì]™?æ¥A?«£6?¬*œ>þº2>ü‹,?k¾,?~§?‡ýé?›'°?r–?\®Å?©ç ?¯¶ ?°4á?ß?ÀÒ8?´ÿK?”ÒÀ?dQ?³x2@ ¾[?Ò´z?h ?Oû?ÿÖa?Þ=:?¬?4Õö?ÈK4?Ì”’? 'ý?Š·a?ä}?ì[Û?­f?§êñ?ªù?ªpÞ?øÒ^@€?¿¯Ü?bûŠ?—3p?§4?» ?š(C?‚…o?b–Ý?‡û°?ÙÐW?ÍÁ…?^³Æ?lÆO?ß׃?Ûĺ?WK=?EB»?ïk•@W?–ÜT?a­O?×4@X?Ôh‹?–0é?…À?^Äì?a5ì?mÇ7?\½…?mw?bp +@ ‹˜@Æj?ÃÛR?Æât?95Z?@W@>@ˆ?“2??_À?™?µë{?ÞÉ?âÍí?—”p?Hy?D”?-{A?-Ÿ_?\c?8…O?бç?Ðð?_9¶?aX¤@„ò?ù•?h\ +?9hW?‚3"?‹M(?o‘s?^¼?œGg?˳?’Ú²>ár?V>þ?Óy?«eÊ?êR?€Ì?t_??ˆ4æ?oÄ9?€Í?ϳ?î=Î?Þâ.?Ü(Ù?ÿÑÁ@s¥?ØÕþ?¥þþ?ºÝE?Ï?2?«;?]?s$?Ã=§?Ìä_?Ö—L?Ü¡¥@Éì@D~?oº=?2?D{ß?\Iõ?¨·b?Ü)Z?“W>¶½?AÃ?Û‡P?Ê÷l?f:?w'?ÅÛZ?¬ƒÕ?[ õ?g¡r?Þ>‚@ø?—¡Ý>ú~‹?$¯“?a‡ù?«)Á?ð*ê?Ïk/?Ž‰y?Ž«?Ö?È°É@÷³@^„?·©‘?£Ž?¥%Ò?«•?¡‡¥?•m?‘M´?«f?´H?‰²?„³P?ª—?£ß?¥žå?¯Û @fj@#ºT?±êš?Xž ?;Æ>ô„S?¤€í@Jë#@;bò? ëÙ?™ï?oKf?z[?º‹_?»ˆ?¢æ#?«Þ?Ú@Ý>?É)?dü|?iÊ?pð8ú?s€?Íì?ÿ`? U?$Dƒ?öl?lË?Y—"?TòÝ?—‡?“Šb?\Då?%ï»?þ?媛?Ð>˜?—]y?œB„?Sw¯?\{ý?1›x?ô¹?M?…^ò?xy(?3æj?4U?IÓ?2?ÐÊs?ÑY!?Û ?Q]>è l>÷q?P¬·?PG?N?Bá+?f|ï?HFû?C\t?bGµ?mG? {?†u£\&>X`>„%>œDf?1ù ?Ìp?ÊB{?ŽÄ†?‚Œœ?ºÈÂ?¸èà?ÛÑ´@šš?ÝâÉ?—O'?–tg?\"g?t£>Ïõ°>i˜t>òi?ÿä?FÏ?ÑGâ?Òõ9@Ù›@y‹?gµo?#Ã?^†û?¥h£?§ +/?Lì?L O?Hìh?<õÊ?q¸Ï?ÝW?=?gåF?“(/?ç+Ï?ü2?˜Lt?‚Ÿ?ƒÒö?„›Á?šVl?Ö­?Ù`¦?5g,?I¬?Ö­?ˆË­?DúO?8M,?=;?(«î?3Ðk?9lî?J÷?FE´?9nÒ>–q.>±ÁŽ?…©H?o°?F" ?L"?šÊ?'ž@?WÌ?R¿?p~”?¾¾a?½k_<Öª;è©@?ê+ë@ c^?”žn>Í{½>¹a>¡ªÏ>ÎÝõ?Møc?H S?5D?þ+?9²U?OFˆ?ó>6>Xjé?N‹0?B°–?5=?'b^?£U? Ù¢>ãße>Òií>Ò¬>Á¦Ñ? +‹?s8©?H«Ç>Ô§í>Õ ¾>ìXO>×=ëlð>eÈN?œ£>ìüÚ?*Ýb?XÇe>ÓÝ:UÄ>HW>ýAR>©vc>>'>€YW?^§ß?Jš£>àv?X±?³]¿?fI=–BØ>ìÎ!>¿Äµ=^Q¢>Yy? +i¨>¥Fe>'¸‘>óá§?#vd?P]>Ü]á>BÉy>ª>>“û =XÐ;Ê2@=g·¹<º²@;Ó*°=?ì>3ÜÁ=¯ì?a‹?Žd ?¸g?zä_?"tñ8{P@¼=@b¿Ý?£ÈM=‰Y¨>_;>j=N>…»b>¬å©>Ô-j>û•Æ?7™6?wûR?ŠÜŽ?˜Ë6?—¾?^ß?>G?Z9í> Ÿ>`âD>©Yr>…å>Iñ?U¶w?`á?$^Ò>÷p>ö~Ä>ò•>#¶Œ>üÊ{?*1î?"[Ú?õ?5·F?9g¡?ÌT>â×l>ÏÊ=?"â?‚G?_)[>Þ2L>âJ>åE>µ¥d>”¥™>g…k>¦¦‹?c¡Q?c·~?cûþ?d'é?ȧ?«Zø?ZÈë>äÁN>ÏØg>ßîU?è0>å9¢>åSŠ>µ÷=¦\P?‚4?¬>¥?V&P>Ý?÷>…N¿=”Yy>O`+?¢`?°Ñ>;Mf>VÜ?YwC?f?y>æk?9O?©>¤5¥=}âz>¡…?f?99S=¸ýR>P:·?Mï"?G¶ ?bž?eËø?R9¡?5‰ú?¶”p?Üع?”& ?<ž ?!ƒã? ?¬^?W<Ñ?C€ >å$?K`?äé?ÛÒh?fY_?dÌh?>õ?.›0>ZFñ>f-?Iÿb?‰ð/?7#>ä8?>®ÚØ>†¿W? ëb?`œŸ?^O.?¬?…)‹?ª±B?¦Ž?kç£?g8å?c~?c1õ=è+Ý=w@^?…Z“?£8>?Áò?Ì@þ?ŒÁ‚?C¢?_ºÛ?„àL?aŒÙ? ¨¤?dS ?«…•?€Õ =´bý?Dy?9/‡>©I=ï€4?¿\b?Ödú?!d>ÿ†?, ¹?Rc?µ>àQ?)}ê?aè?`”?\ê=?8÷t>àã¹>ïÒ#?%Ô ?Aª?ÿš? Ž?Ë9Ê? Õ?–‘?“ê}?‹â>àpq>Ë!,>Ö­?[«7?ŠH¿?{pu?tG??Jm?¨)9?›Jò?†8a?wè¢>ßš>íl«?†ƒ?|>„î•>U§¢?Y¢á?g¯¡?ÄB´?Ü u?M 2>à±>à/>à +?W?Ù,?ðZñ@ ™m?ë3œ?˜ùƒ?iQ==£«>[¹ª?‰²/?Žfö?‰šŸ?†¡Þ?Ýî?ÞD>ûÿ/>ˆ´M?o±?/k°?>àPf?l’'?¨Dk?¨KÙ?¨Rï?£y8?Žå¼?ŒOT?¦Õq?¬Ä?¨{n?ªp?¶ð¬?µñl?Twð?F ‘@ šÎ@ðà?S9>á +ê?õm?¡›G>ÿµç<ŸÉ ?súb?áS£?• û>ánu?ÄÊ?`¤?f)s?†}‹?ˆÚ?Kþ°?Hç÷?açÞ?dü[?©-™?©N>„C€>Z÷?ê¨Ó@¥ ?„˜?=¬ê?‘»T?©ó +?‡f(?b»j?¦÷´?Ï?¬<¢?_0?Ù|Ú@*]É@în?ô,ð?ãs#?‡ŠP?kR»>¦Ä>$Úý?bä?+~Ì?ƒBD?xëà>ëP >ä?€l?‘¬?3³i? 4U?I0Š?d…C?“ø7?¨Ç-?‰ç/?dÓÉ?Ý#?«¹8?’,?ef?ÉŠ@*Ü@wâ?²X??±üt?¬*´?¿`!@ æ?õ2?‚O?qq‡?5Š£?BKš?å­0?æè?6!? ž?’øå?¡w^?|k ?f¡M?·´?Ç]?c„?"”Y?µu€?çú?Ÿ&6?g,€?{p?‚ãæ?Gí? Œ©?*Ð?Ti?È™™@'ä?îË@? M?†LÅ@…?@ (¨?è n?Û.â?­-;?ª™g?ª¼?¾Ñ)@$«@ ç?ü-Ã?ïA??O#U?IÄ_>|Ëù>‹š1?¨ý,?®žC?ãu?èèÙ?„I‹?iB?3ÅÎ?6…?†Ó?#Q?Šzm?”gl?Ãàã?ÜJê?·iŒ? žƒ?†w?i|P?^|n?Z‚T?+¸ó>ù¨?¯U%@Êt?Ó^¦?i¼Í?¥«Ä?ç”:?¥–M?§8?Î&?T©?jˆ„?iîd?”ªÛ?éôï?äP¥?ÙJC?º¬z>Åø?J?°Í™?¶p`@RU@ïŽ?Å—b?ÀÄõ?‡ø?†Ø.@ +ÑÊ@ " ?óL?ý’E?~i˜?j+Ó?Û±Y?ê@†q¬@‘e‘@ÊH?á2z?C]©?«¨> +ÍÄ?à?GÚ>ä™g>¯ž´? e‹?)ã—?ŸÝ?Ë%Þ?Å8?ºî?Ãù7?×–¼?Á$ì?žX®?±ë?×Áï?ôO<@ ÔX@µÈ@(6?ýï˜?±¯˜?¥÷ ?tòö?‰m?¯FÒ?½¯à?ùs?ÿ0y?øOâ?ëf@ +yq@é½>ô,H? +Eñ´ ?„'?ƒ””?€ð ?|—Ý?ÿlt@ ø@AÅÆ@Käè?Ú¥y?°?ŠÅ?‚Ïf?¿]?Ï…ú?ñÁ?þœL?çž?=€ú?ƒ"?‘?“Âð?¢Õ„?âT@þö@àX?л~?þE—@%(‘@Š@ð@?óÔ›?v +?žŽÇ?ຠ?á?àm#?È× ?™áS?¤œ"@J@…J?”Àì?•èÿ?úYí?òëæ?¦ê™?¢'z?˜‹?žœ ?ª1Š?­s?«ì(?£“…?Þr?ùû? »Z?Fpá?,¢? Wá?§ãj@]É?íxî?ºD÷?¨ö~?eðº?{ïi?£Ïâ?¹ž-@ ׈@FÞ>éø?åjP>å_?a‚¥?e=X?,‘?v`”?îç“?îãº?ñøò@Òí?½B¥?‰îí?¯»D?Ö–??¥åI?diã?j@‚?€ë’?´\/?ìjœ@ +Œ@FÂÁ@,!Ë?±q?šÊ·?zÒI?v@#$@$î@·@?#ç>ã®[?S7?oÑ?ïêB@ ÛÊ@ Ô?ýl2?Ùz?Å@_?ÊÁÔ?àÿ ?Ã$Á?y„Ñ?‡Xÿ?©·9?‡D;[î >LþÖ >ÏÖÝ>ß>>á‰ó?&¿?`ýB?œ˜k?Úî´?òr*@,¯±@³I?³8?“’Ç?K–n?1áê?%\^?ã=mÑìåJ>÷ÅA?Cš?g.?cû‘?^Ùq?É"ã?Ô.\?¼én?¤ùE?}½ú?^v?^\0?]w¢?a¨Ÿ?€ëb?ª×?ò?Ú˜Î?Ã)²?§¶R?ó·? +yS>¿ š>Ì(!?G ¨?_YÔ?¿v±?æ•Ö?Ä 3?¥ßš?Ÿ£‡?©¤?¢‹1?\å¶?\ÍH?\¼#?\«?\›¼?câ?3öÂ?bÊ?å$K?ßL¾?°ò´?‡¢?É"Â?éÄÙ?ŠÙÚ=ô\é>Ü—L?¥È‚?±M¯?Æx?¹Í?¬ã?»7[?-G¿?6°?KÑ„?[Ñ?’ ³?¤&á?Û¸¨?þiñ?þ8”@œ0?êB?ˆ"Í?D.?’kj?—Ó³?ûot@«?²›Ù?£dt?Cͯ?#ÓË?˜ÃJ?ÁA¦?¡mX?aÈQ?ˆæ?âû?㇔@}i@±b?£?¢˜3?nƒ? Ma?f?/ƒr?‰?»W[?¤ÃÍ?XÔ?G +@?­?¤å>Š›Š>¶DÚ?ý4þ?ÿ¾»?Bm>×??-Ë8?Wf?ƒ£I?™ä ?”HZ?Ž«¸?”Óu?þs×@ ]?š”?™>@ ³.@;$¢?ñôÛ?©ªú?¿úo?Õ”#"N=£‚;Îþ<²îà?'?¯÷?#>?iS? +?w¦Q?‚‘Þ?ÁR?ÑW +@‘ö?øŸí?ÎÉŠ?–›?Àt²?²ÕÆ?Ö™@ +JÉ?è`"?RÐþ?^Vè?øÝ ?ç9??wžý?RA#?pŽ?w×?”ó?Ä5º?Þ@?,)?›ö¡?+Ø?Naò?UµA?PýW?Ù–>‹g>ݬ~?T>ò?|r–?ñ z?ß8?Cb?IG‚?ŽÑl?‚_?Aý=±7v>Oâö?ORG?O-“?O`?Nü>ó)ô>˜ ©>i=\Ív>†š?Py@?] ­?§,?-á¿?¸™ú?Öt?ÑG?Ûƒß?ÀP@?Mr˜?Râ ?MCÓ?M*¼?Y`m?DqP?Š ?¶„(?Õñ©?ÿÔ»?÷œ?°Ó8?ÃOØ?r-?LE;?Nóº¸?MZ7?HÜ>ç§:?J ?<Ô¬?K¶>?{ý>Ë‹>Ü$j>Øày>ÛýB?)ö?þ¬?…“©?˜†€?tÍX?e÷>ÔFØ;©P?<¥@€?´ +È?½¨?CâÖ>ËG>ËNa>ËLØ>³c=ª?1*?Ks0?W”>¸?×?+l?Á£;?½„2>ËÝÏ>Ú–Û?kÊ;?nÇ ?…× ?™)É?™;4?™UÝ?“NP>ÊTÅ>´Y/?¥[Ÿ?Ô:v?|X>Íd>¢CÔ=Ÿ‹;D´"=!>ûÂ?¶? ë§?<X?O%˜?l@Ò?–”U?nLû=Æt–>jM?P¯‚?Q³?3GV?;Aª?Eì>Ò#E>n<@=«Ì>tö?R¾?+¯Î>žc>½1•?UJ[?R +&?€°­?`ò“?R9ž?W‹N?X›?X‹>кh>‚±>žÁ<>Åúõ?*pU?–k>·+?WÆ?^\ÿ?JÀ>߯ý>ý({?q­0?ƒ;=¥˜Á>“?co'?EÒ>¬>œgb>öâ+>ö©=ª?>™|„?j-S??Vÿ?†é>¦†è>ͨï?Gf>p¢3=#Hû>ð—=•äÈ<#ä=-é#=s¹²;T*à>[¾Z?y?oÔ?t%?WW@Œ f@Iój?|:Td=Ž† =ÂÞî=É' =æ´æ>³‘Œ? )?;«ˆ?ŠÙ!?™D?hJ­?NìU?:>žUf>¢«{?ek'?Wvw>ý¨›>‰¢Ó?Ÿò?ö Î@Lj>02o=D?Š˜Ø?Óµˆ?ži\>á—ý>ìî?_®?bVæ?(w5?,öW?\o?m‚?J^1>êçf>ô ¸>lØÐ>¦9è?tŒ(?z?0EU>ÜA'?ƒ2?A¼¼?+Û? +ë‡?*)?¡<?ª÷,?'G>åw?`*‰?‰t.?cÞa?@4Ý?CÁž?=ÝJ?ß ?4d}?;M=>òþH>åÊw?(ÕS?G#U?Z'b?c¡ï?eÈ?eÂÏ?]ši?B?'÷\?=`?6Œ?ºÄî?²t?^U‘?lý ?ÉŸ£?àUÏ?¾'?«÷æ?q˃?@üD?Kê>×Ýó>âá>äðn>êÖÐ? +ò?)f?d°K?^q¬?þæ?‘¶†d>ƒ¦2? é?¯*?‹Ö?Õ”è?Å;˜?ª­ß?£§u?{?¤Êã?ª?Æ?ªg¡?©ÜÖÐ>c“8?yþ@Eº?¹ø>ÿ>ÊÏç?©Q?¢??9ã?/Ô’?¨l(?©E=Îý:µË>“êÇ>îè5?Ž{>?ÒÞ`?ùÒ>àÇ?, Ñ?Œ±À?­#ù@ƒÉ@ »@ S@ Y÷?ˆy³?‰¹?l}?]ƒ]?%ó?ßo?ÐzÜ?ü*z?»¦?‘†?„þ?ŠlÔ?æ$?NtÀ?ŽtÕ?èÕÛ?çZ,?åÜÓ?âç¼?Ý?Ûþø?§ji?§òr= ™?;ƒ„?\L?Y‰ù?VÇ.?)Wd?ÍÇ>ñmÁ>È`u?}Š?"Ë©? •>¢m?õW?»þÈ?µ[Ä?¨?¦KJ?µ¡R?¹°m?™ ?Žô!?íï?ôOâ?Ü>€w1?ê2?O½â?oÏ?‚Qf?»ï?÷z|?¯…h>àw2?*#Ú?œÃÑ?¤b•?ÄùV?Íš¤?ý¡ê@17?tÑj?mºš?§‚>õ5f>á>áÔ?D—·?aÕ?º¢Ö?á79?¾‘¸?¢ V?ˆÞ›ÔA>™£@?@3I@È?õÊ?Ï;Ù?ȱ“?Êøá?ÆÙ­?Ã&?Ìáä?œue?bàf?¥è©?èñ?Ç+û?„Â.?–Ã:?»O>?ªL+?eue?:Í->A™Æ>Ñ™1@9Ä@Ì×?â8? +g!>ªp=³F£?—öú?©à3?wY&?de? Œ8>äŠÓ> á0…šC?ª?€gÏ?‰ãN?£‹?•À?>2]?rêÔ?ÉŒæ?Àσ?Ä“J?¹èÅ=Ä?©²N?¥—?‹y>?‹m?ñN?ü"Ê?ˆ¶ã?fÃJ?±j ?ÆÍ…?¢??ŽŠ?©ý?·Ü?ª$¢?š”?>¨ü>çg:?U?ߤ½?Ês&?­¾H?Æ>¥?çÇX?ý`O@áÏ?çÿ?r0ÇGÑ?g˜’?y8?AÀ¾?Aæ?l»§?v&Ñ?$H>õ*P?Bo>?i˜`?ºAì?é›]?‰z+>ö?—i +?é¦E?õ¼>?ú†?Ê Û?“â?e[?©?TÎ? ?¨’-?¯jÿ?™,-?/S×?{ï­@¥@?ûÝ"?éöÆ?ÞYÜ?µ’«?Àˆ?Ês„?Å œ?Í´j?ȳ¬>±À=ͱo?i¨Y?j +N?j ¦?lO>r©>¼o?®.r?¸ƒ$?ñâó?ïn’?µ”#?£‹ù?6ßh?!Ð?Gj?@aH?/¤%?,)¶?fÿ?¦ +?Ê”K?ìݘ?Ê·f?¯m3?Þ?@BA?ÀË?rþ+?’#?¯Ä?ä8@ø@_š?äx>?ÌUù?¥$ð?—aZ?ƒÈp?—?Ã=?Ïã/?ùÚL@KE@V:?ì—a>:œ>Žy?œÈ? ØÅ?®çè?®âË?®ÛQ?®œ¢?k\ +?i@ :"@‰ß?ì¥D?⌋?®›?¢Ûo?“§Ç?–²†?ä¼?ÿI ?’äU?3Y?R¸#?{‡É?/>Ë>èO…?bµŽ?¡C ?›å?‰„ä?’U?«ID?R!Ú¿¦ ?gÏ?qÊ?‹2 ?¨ó›?ù<‘@æ~@ ƒ@@Ïê@üM?Ÿ 2?™Äò@)¨»@0¿0?pK?YýÜ>Šé;ÿ£¨??0¶?i '?Óü?’&?€w?í +? Á?˜ +?[#„?){k?³ÉX@ ×·?õ0¿?¦†î?¡Í?œûÐ?‰-Ò?mT¡?fùü?e“n?kzü?[z1?Tš†?M¯ +?Cc?ö%?ç ?©xI?«¼€@…x@׈?©>M?€nÙ?³–?ϬÃ?a„>çSw?Ÿ´d?ß@ ?ˆÂN?ç?1&d?zM“?½?@Z€@ÊÄ@¼Q?Ü+Þ>ãž ?$`ä@ÝÄ@‡÷@$òC@*@ +?¯»Ž?£ Õ>}Ñ>4n¬?„‰H?ªBy?­ºÜ?½òê?츒?ø×F?¤@Š?E¥ßO?îÕ?_2ô?]¯K?Qy%?Y‘ì?¯Ÿ†?¢›8@#÷@÷<@ ž@~´@kj@±Ñ?¹$?^£|?ÇMm@bî?øÏM?êÏ“?éž@€û@Ó7?Ûáá?èyÜ?]¥o?]°=ãu0;Æn?»{‰?Ó ?Øh?Ý(Ÿ?¥ +c?†Çx?\IN?"Í?Et?…µ ?u&?`ˆ†?\‡>?\v?\hf?DE?:*î?Ö…X?õ¼x?Ÿ4?“ +?Á³ý?édƒ?í ¼?Û¿—?±Bƒ?gì[?§8é@O_@Ä>ÒŠ™>û”Õ?6i?@ƒ–?€òm?m(ø?•?j?¤¢?j#Æ?LFN?¾%@…Z?äÁî?ƒ1È?{íY?qrN?eݽ?WV?Zkô?ž«?£D«?]#Ô?2ÝR?¹¸D?ñÛ¾?ÚÜ ?ËT†?Ýæa@È?æ!²>öc™? @—>•iå>Õ¤>û*Ê>̧?\ °?blÝ?"êX>÷̉?KV›? ¢?c•=ÁT[>™=?šŒ˜?~J#@!@= ?v Ò?2 ?1Û·?V>SÅ|?˜O{?ƤÍ?¼î?ºR +?Êi?êêQ?â3ÓÚB>àéÖ?sJ½?ŠÛ4?«â¡?µ +ø?®ÁÃ?½1 ?ìbƒ@ Ò?ÿ@z?R©¸?O Ö?=)œ?k´Ÿ>å|>ßâe?{y¯?c‡?]?Y¿Ö?´4¤@DôY@0£”>Ñ2f>Ñû>ã:ˆ? ؘ?n™?–—S?Äjˆ@ë\?ßgÒ?Œ”(?ž_H?¤Iƒ?‹·;?×Zo@ÏW?ÞÁp?›‹ ?z&ÿ>ðv?+þ?NþÖ?NÝÓ?N¾™?N¦¹?y”>ÔC<>Ïã!>ã½?g9?+VI?Û?Ž‹?šMÎ?aöþ?©>ƒü)=6$ˆ>3c ?»û?ô? 5?™®?[? ?7?\‡ø?L*?ÁÂ!@ ß?ý.?˜ Ø?Œï>ËÇÅ>Ë»­?—µi? 7?WøW?bÔ?V±f?ûVä?åî?2‹?%¨ú?©„³?¿Ü?§­¶?˜l“?ƒýd>Çq>>°ŽÈ?-ãˆ?Z.?Uá?/Ü\?˜”?îÀ>µG?˜}?¡í1?rå9?Ks°?bν?iº?” Ð?Ež±?8š?)Œ¸?@à&?…Yi?™j?”ò§?•50?‘X>̾>̲°?&vb?Lc*?B£^?!â?eF?Nd?:0i>«Ë¤>Ë¢??Ü?N’?:Ÿ?=>ÙˆÌ;å)À>ƒåF?PA?Mp?P„ã?PØä?x>ø°> +)í<¼q>DŽ§>Ž;»>‡õ<{w&=b@`<ºoR?U?U€É?/hq?FEÔ?W¢ó?WR‡?D¼‰?Q'î?‹¸>¾v>½@>Úqì>ûf?B5>¾¬>FÖ?^Ø?Jyj>ßZé>Ë÷„>Cq>\¤>Õí4>ÄP=³ù>>v¾t>å?Ò>Þ—ÿ>š”>r^>Ü>¦˜O=¿Í(>Õ9?>Y>¾¡>–Ð>SÊ7ôS=’û,>Ðö<>ó]>ö(Ó>×±ÿ>³´==Y?€>*sæ?¡Ä>;ˆ¶=”M¦? ™¸>vðk@n0¥@o$@Ò==GÝt<¤ =¹Š4=Þ^=ò<ž>sÃù?²ô?.Œ@? ±É?h?>õÈ÷>¾CŒ?5a?Û7™?ÍÉz@X¢Â@Z( ?Á¤1>á%j>ûß\?/F0?:wì>ï¨>G’ƒ?vyG?¦ š?ËÕ?]Z?R–ý?6»Î?.Ê*?̆}?Ì·~?#©a>ùûÌ?iC”?™_u?Ÿãt?‘.M?‡®?yä¨?cÛ¡>î>b>å?à–›@h¤?‹e?Û®?WÎ?Žò ?’Ô&?vñ?Gct>©*V>¶,g<…ƒ¶>½ì >å¾L>îšE>û«÷?9‘3?eq,?}˜9?‡=Ÿ?uàä?ƒcî?Žš?\X»?M”•?c˘?e!ñ?˜=´? |ï>ç÷>Dc= Í:¶Êî?t¿˜?Ý#?z|U=}ä0?Kú«@[?ßÿ>™R>Dk¦?A‹?V"è>ˆ†4>¨ó>Mÿ> p?–‚?Æ•?¥`i?–÷P?——Ž?›¹=?7„ø< Bö>žî?càÂ?ŽØð?Þ |?Ëï?bË®?raä?ÿƒ?ûÎ?‡Þ²?…©4@\@Uù?§?¨Îp?Ëð7?͵?¬Nž?¢qö;*ôã=,H=‡@Ø>íÉ ?8^ª?“=A?²'å?…;¨?<˜?¶ÎP@(W­@%ž:@p@\>çÑ?p~?qT?w_f?U$?^'‡@ + )@qª@@J?™9ê?M?©—=@¤@|º@O@ lô@ +éX?úôŸ?§ß?@e;b0=«i˜?T²H?N×>ùÔ0>ûÅE?©6?i`>ëì;>ßË‘?DÜ?"î•?“ß>ßÑ^?7?}~i?oñ*?{L?—^j?Æq?ºë³?‹‰º?‡­ñ?”êM?™›¤@7@—?¹ì>•©¥=@ÏC>È ? ˜R?`V’?‘Ÿ¹?VïÏ?ÞÝ?-õò?m=®??‡C>ÐsÚ>Ú»œ>æþ†?_[?ऄ?èz@D•<@D–÷?²!ô?¥˜Á?n]¥?`ùÂ? eƒ? =?aì?¨ä€?UÞD?Œ°?ëý? Jx?b`r?©%²?¥nó?¦½³?¦p?™?§ S?¿Å„?¬ì??GÝZ?W8‰?ú7$?ÿ#Ð?€€?v±û?ÚºŽ?ì7ü?JQ?b™y?@ƒ?„)æ?‚qÁ?u-ð?˜+?¸gÁ?·Å—?¿É~?ØË—?ÿÎ~?Ø!%?cn¬?zz‘?¥ùÿ?¨Œ?­"à?¬s?«H?©µç?dø\?d¿>ñy~>è¯Ï?R£€?]D(?” £?™^~?¹œ*?Írô?óÊv?ýö?¦L?dû?’…??¥ ”?ˆ;h?eCN?‚Û‡?–ó`?›lø?ž‡4?«E+?àÌÔ?ÐNÐ?ÎÏ?{üa>OÄ!> Ëù?ÂDU?Äãj?ƒLw?‡®ƒ?úvø?þ´[?xIE?f›v?ŠË^?‰à?Ör?æÞ‚?áÄ?áF@&é;@@h?¦jø>è%O>,lÛ?„Ä?iT;?±Û/?çœÖ?ÐíI?»f +?‰A1?x†?6Ȧ?€Â¨?s E?Hh??…ˆð?æÐ1?Ƈï? !¥?@ß±?•&ù?›ð ?åe?üíj@)™Ë@>#?‹Æù?Šé}?Ô?Õ~?*ús?+µ¡?‚vt?ŠÎã@¾‘@íº?¶Ð=ú–?’ÈÍ?°¬??‚ .?i??Éûk?è"”?è?éc;?™|Ö?Z}?xk?‹Xé?–Gþ?¡£„?Q]ˆ>ßǯ? Äj?<â:?ÇÌÃ@B@l`?èAC?Ä£Z?–©?°V˜?åãm?æ#?ØîÓ?´sq?½?fP¶@ <½?ð~a?B8?'6P?®–1?¨„Ñ?iã?W`œ=:\ê=îâF?Mu8?IÌ@ G@¡¨?¤ë}?ªOc?tù ?y¸Œ? Æž?šRg?©Ê +?¯a|?™?iÒã>«4õ>C>?43?iÅN?•KX?¥ïÊ?‹"O?s,¿?˜³ù?®ð?}š?jb#?tà³?ƒÉ?[…?//Û?2ß`?/%?+=5?·Ü?NÁ@ +]9?Í#þ?0¡“?šÖØ@kï@ã2>é3??Ü!?‚/?ˆ£±?·9]?³1?«‡Ÿ?ª;Ê?hé?fFú? +é@? º@ 5Þ@ =?ßm]?Ø[Ï?Å@ê?½/?û¿@©'?ªƒ?”þ?…®D?j&þ?*ƒŸ?¯?oâ§?Œæž?Ñ/%@ +§¿?¦˜'>çä8>çÐ,>ÕÝL?™„@<«?é#ë?Æú?À_è?ÃÚ…?Öú@®;@ ¬@ +9ä@–T?³%_?»äÎ?­;h?ª–~>û¡>íûT?b¹ ?eƒ>‘~=Ä#j?®º?Àõ?¢„Ú?™ÓÖ?Œ¨&?Œ~á?{\ ?Y-?@jl??Ýg?­¨?ú @"“@#¦¿@Þn?¬0•?¾7ˆ?߉ü?¾éÒ?eQC?uØ?›Là?ˆß>;¾å>†SP?«®?«²#?žèK?Š¬?°×‚?´ªH?/?ü>õPc?Ž•Ž?ª$Õ?ϧL?ä'Š?ëg.?â—?Óî]?ÅAÇ?¿ +^?ÆŒ^?½ø?»¾?®ŸB?X–ü?k™Í?ÅW?«¿±?c3´?wݦ@ #¬@J?‹R…?rô? ¶?!)?XÖ‡?Uc?âæ™@ ‡ù?É9ë?tƒ&?Tö?b-o?bl?dä ?Ìl°@2ùÕ@‰i?““[?Tž?#—›?1Â?LL +?;ár?—„n?žS­?Ù½Þ?á#Ç>ÀƼ>ª¦?‡×?ˆ&/?¹îÒ?ŒœE?- ”?˜•¸@{š?Ü“3? +÷¸?>¶ˆ?ÛSü?Ùµf?¨&;?¬tu>6ÃE>‰–Ç?Bù·?h»‡?@ÎM?%Öù?[/å?]r?# q?o¾>ãeÿ>ÛË>ßs—>ë~D?bÇo?òkf?ã«£?Þȇ?áL³@-¸‘@;Iì?Û€F?Ò„í?©u?£øè?¦¤­?¥_Ž?b<õ?AšK??jK?D1?w2=?Ž(ç?ŒæÝ?3cï?"vB?>“H?TÂy?¥óA?¢>í?Ä&?-çr?¤uÅ?¹Ö'?± Ü?¡|?Fð?\¶Õ?Œqó?ÃÙâ?ÅšE?¥Mî?µA?ûë?ä]ð?\&I?\*?ðL +?èÐV? þ‚>KL>K=~=¯SÃ?š;˜@NM?ðqM?Ãë¸?¡¤z?‚¡W? &?eù?/Œg?úN>ù~?õ„@®>?¼A?£ç˜?;Šº>Úa®?+zÂ?Š¾‚?²;?ÄmÕ?°­¹?—\¤?—ï>Úxd>é–9?žd?£!þ?n±?YYó?¹Ää?éß?Öà?³2j?“y.?XÝ•?’*Æ?ñ5ý?Ú³Ù?´+P?™J?Y ?XF´?¾£´?é½Å?Ãöt?¢œ@šÕ@/ð@÷?ØÒ•?¼ùÝ?ÚÔ•?æÏ©@ œ®@ +Ѥ?ØgP?Ö×S@¶ú@(îï?À˜Õ?5Ò?b˜E?ƒ Ã?‹·t?Ég»?Êš³>Õö>ÖOü?†ƒÇ?ƒÆ™?T°r?g§?‘c?Ÿïm?šþÇ?•½„?Šµ>Õº>Ú~%?|?5¡©?¡Š>é"Ç?ƒ°Á?°Ë ?¦SÎ?žë5?„O¬>Ó¯>Õ0c>ÿ‚¤? 4N?“˜?žZò?EÊú?H]?% …?R¼+?pZ¿?™OÐ?ŽÆ;?1Óò?&n? D>áR´?•ˆ?¤SÀ?Ð8b@wÜ?õÜ0?ü„@Ft?_œà?GÞ>¯šÌ>?çû?ß?PxD?~y¬?¨2¦?ºÓ^?Îhî?¼f¾?ëx??ósd?ŒR?O€^?‚²˜?›už?‰_t?2ø¸?)X†?N׊?N¸^?N ~?NŒ6?O'—?MÀd?d"3?„±7?u4›?ƒ\û?zpö?tW}?…û7?×÷w@k)?­ª6>ªï±>ˆÕ¼>&}”>W~2?šÃ?¥•­? õŠBr?Ñä?¹?²ÀÜ?€Ÿ?fpÒ?Yòê?NTr?ºS@&n¥@|u?”cf?–š?¥DÁ?ǨÕ?¯qú?•®?™XÜ?£Ùt?¯=?KCÊ?K@ž?žrƒ?ÇÜm?µKA?•Ò&?Œ±?>õj?2-Â?‡þ?~Á…?MY?‹œS?¥‡?ɨ§?¿œ%?‚àn?_ +s?¿ØL?ËD¡?‹Wæ?KZ ?,ú>Í|H? „ú?¹¸6?¬®&?UÄ>ËÕ»?_¼¡?™;?kSÍ>͆Ä>Ûìd=¶Ñð>Ï‘?cÄ?\³?wé-?“–m?™]Ü?˜¥Q?~æ=ê`Z>+³–?Atq?Nsà?ÞE>ÚC?JMx?"ú?k›p?OÝå?L®D?)~&?7½†?Çk?œ­v?%.>¬ºe>µo~>Òš¤>¦·=î%r>u>Ôã>ÑJ½>òy?J>Þ8D>Ö)t?${?D>”~Þ;´R€=}É =Ø–R>(»˜>eœ3>È:×?0Jð?³R>·ÚÄ?ÃÀ„?Ÿb†>Þü`>Ö1>²eU>´¼Ò9÷ë=¢—>¯¦>‹h>jÁ7>³)ˆ?7ÅJ?'FÊ::¦>tˆ3?2«9?s«>öˆµ>¥c—;‡$>ÑS>´Rã>`šœ>„·¯;h4>¬>/?h{‹>î^±>X©?yƒ>Î5Ô<Œ­°<Ñiø<0¶"6ðš0>Üï`> P>ç›É? ƒ? +ùI>ês@¹âi@ä¯Õ?²‰·>;Ea=` >A´ž?/è¢?€o>½RÚ>8¹è>\~>+n>µè\?"…Ò?3äG?E*Á?Vcb?ÙŽ>óÇ?c.'?ÌÄ?ã<Ÿ@Lã@;+‚?1Ó¸?¿K?—¢?¢²äú/?<¢z?eb?‘¬ ?¾S&?Ÿr>Å®ñ>pZ¬=,tH<ßF8>àÝ>å,?“:?š¸q?vd˜?e)ž?JÑg?Hð?-%í>å‰?9d?«¾e?®ŽÈ?¤é’?—r?dÑñ?dÉ?¢Ê?©ÊÅ?a¸>â,J>Sâ>Dßì>¯Õ>µ9ì?:P?½v?…VŒ?êP>Ûä4>f™o>qX‡>¼„>£\À>àô¯>㦖?q¿?x >ûéØ>ÍC >5ó¡<~ù?HW?©‘º?¥ì“?¥[?^0C>”é?8£S?ÆÖô?¹ª?¨†ì?­Â?bYk?a¶?º{Á?Ëœñ?³3"?©M?³Æ}?¼·‰?d,4? ¬–?,7î?Lÿ?Y ‡?aw?:î”>ꃩ?L§[?á;T?á+w?ÞÎü?Ƕç;o¥0?;»7?9„Ÿ?2/_?*êŸ>ôã>à –?U?$@”?Às%?øÍö?Î\?ÁR?Þ÷è@A½?Ø6µ?и>ùU?o? «¥>w^>_Àâ?q¬Q?uT?¹• ?ÉGy?…±M?_àä=­ =Ö4H?Š»Æ?‰Ê1?ª3?ª€¢?s}ä?_µ#?CJ?1r??]ó?W &?)ÜC>ßÁº?]Ïn?Æã ?·¦”?‘‹I?†J&?rˆ?Y:?h„ë?t3‹?~®h?zâi>‡?Ï>/}ø?+·Ñ?Or?!Í??¨?=ì?`9û?‹†-?¥ÙÍ?;œ©>œY?`uQ?' ×<Çh0=‹ œ>0׈>¨û?¨‹ï?¨X?cG?`ÝZ>øŽx>à÷E?^‘Ø?|›Ð?‰U"?ˆ­«?Ÿ™¶?©û¿?yž?CÊS?VŽ?a‰ƒ?zùŠ?Ï?šH©?Ä+r?§)€>S•>¸²i?Á™#?¼ªÜ?#>öÛ·?xÏz?…æ?+2_?"fñ?¦a?·ªÖ?ØÒ9?íâg?ÛîS?ÐÁº?Š [?ìÐ?9›…?c/\?c@–?cQ‚?d:?c™é?®í?㚬?ã¯G?ã“?ÔÔ?cäÆ?]Xp>äã>æ6Œ?aÙó?dCŸ?z“? ?ì—ç@nÜ?°¼©?¢â@ +·@HL?âW?À¢©?“–X?e%?~^?Œž?‹Tþ?Žù»?“;D?‘ç~?‘ôq?ŠŠw?qÖ·? Ï?.×c?aè¾?E[>æ!\>ÿÍY?…?ˆAz?Q_>?U¨D?Í… ?ÓJQ?õ¥*?ñÏ?¸.ç?®üÏ>a<?5z?fÖÁ?Ãܧ?Ü"C?’Ïð?g^²?8E8?'*Ó?¦àÈ?Üm?Íp»?¼<å?¿'Â?ÄÖÎ?ž¹N?gì÷?™R?Ðrß?šòð>è!6?L·F?ÊqÁ?º"ç?K+?³Ç#@1…“@'Gf?®d™?¸Þ?ìç?Õ7A>DYT>¼©;À¢0>s$=¾T?¤-?®!Ñ?ãÕã?é S?ƒ²Ê?i(?tp¸?}Ý??«$ó?·¥?òQ¼?þʆ?Ù¶ç?É’X?ŽÀV?ifò?Š b?Œ”?Æ ?”-?ÿø@2.{@û@ Ø?Ň˜?i ?…^?•5Ê?®”È?ÔD?µ:³?…‚ê?”i5?·÷È?Âùp?éK?Ìãc?iÇ?SÒi>öö–?Eª0?þí¤?ﶥ?Òv‡?ǬÛ?¤±?±Ô€?箥?Ýqó?9>*?4 Í?|û?—•?ÈD?Æ=>?Qãv?D¹ ?ˆŸ ?€F;?zÙ°?|už?›a?|Ú?¡µ·?¯0¦?†É?j@³‹@%¿s@0íQ@4á@{-?¾’È? –Ú?ˆ½¼?¨ûŒ?Ãru?Öß­@øž?µ¼â>„ß?7MX?®ÞÍ?ˆÃÀ>éà?/–Ð?¥¹·?¶(H?åI?Ñ_¹?hÞq?…}?äªO?Îjê>è¶l>ì›?Z;@?qkä?˜ä?ù²@ù @ý.@N=@ó?²¡x?sö?çMR?÷23?’v?h -?áë¢@ €ê?C'?Pµ?§I­?„ë›?UpÅ?œœ? ÊÙ?ÅŽ»?çtã?ÐÖÆ?­€Å?š+?g;‰?"?Òß‹?¬ã>ç?"]4?À{s?°?eÄR?f´H?f¥ô?fM¸>Î>»,?®Õ^?½ÿ ?¯ëš?¬«@?}Íù?f?®æ†?ÁVþ?z‹Â?+ÿ?}Âr?‘eV?˜}~?«)R?¬%%?¬´?®U?³½?¾á?ÈG?± x?‡ì8?—œ?­¶:?˜ûr?«—ä?®ql@ ”;@™C?çÜC?äw{?±+ï?«?§?«&Õ?«%è?£‹?Š‹(@=@!1w?ÚN_?¤%Õ?°Û?¶Ö?Œn?&ß?š±V@ +(Ê@"O @b3ß@8 K= +ñˆ>í??|R?n(@#ÉŸ@à?‚Ž?`^—?É£?ÑÙ6?û„‘@]@5CA@U2”?ø‚?bð?Áú@Ž4?ëφ?âð*?°¿©>³O:?ö®?†ã?‰YÙ?ÞX‘?Íè¢?tk˜?l$ž?Ûy‚?áÄ?+>Ée?ämê@]?©Âè?†Ø´?V°(?.Ã?œl?Ú]D?«Øu?`43?{\?§P‰?Õx@V—s@@ U>®V¤>œò_?tíž?iØ÷?0…;?3ö)?‹F?«Ž‚?~·ó?NÎä>Éß;(†@?´ü#@AF@%·J@ ;?ûAë?¤ Ï?¬Å‰?¦áD?§Æ\?È?ºW¼?oÕ{?^'Ý?,Å?ÙŒ?7R¨?>{ß?D´c?6¹?aIã?‹Îî?ƒd?šc…?‚þ‹=‘ë¡=œfy?`Š?jÇ>å†!>Üû¾?²¼?ÃN?°xô?´¤õ?ƒÊ-?GÖ‘>Ü™è;ýAu>¢¾i?cc?œ®Ý@ —@ÚS?â?‰-Ñ@ Þó@Çã?œev?x0?¿ü¯?Û‚@ Ñî@ ã¬?ùqx?µ¬q?¥TÊ?[|–?i(?ݶ÷?åŒn?‰øÖ?kN¥>ãhY? ¼?»»ò?Í™Þ?Gú#>Ú;+>Ó‘e>©NÙ?„äÄ@3­?Ú„«>îfç?E¨o@1;ú@ ÞO?wˆS?€Ç?º‘…?³²?— *?•¦ý?Њ¸@Ã2?áL? "?•Ú¯?“† ?ŸC?•-¨?ª\?]ë?X¸?)Â?3J?¢Û¼?ÕéÀ?ኌ?ýMÄ?àÉ›?«"÷?ǧœ?ÈP„?ÁP @Œq@ºÝ?(.7>òVè?€^?­Ïß?š2°?`9?i…?Ž‚^?”•?™…„?˜4ˆ>ÕÉã>Õ²¹?[`?së,?½ Œ?»¼6?¢-Š?ŸÓ?%?]u…?U&E?Q·,?H;Š?†C?uZ¾?ƒpÈ?pÜ?ª©?È›?´þl?Û ?4Ü>Óˆ>âR?1Ò¯?&1v?€D†?‹‰±?ig;?RË?RKY?R‹{?–¨J?òD ?䆣?ľ…?³#Ê?w â?ƒ\?½à?ÑŽ˜?Èœ?m‘õ?œ2Ã?Ñ$?Ì»§?œ®n?œ”0?^_Ö?P“ ?QEØ?PWÜ?V¥Æ?gŒ?güµ?lZ?“ë ?Ž|Ï?¥÷ð?ssÇ?O\š>Ò>˜>:Ø™? ×?‡jÁ?…X‚?£x?Ïl?Wz¼?Nfö?†ze?–‘?£+L?½M£?³é?šV^?šAØ?!µí>ð:?Ùc€@â2?ÉB*>Í»>¿®>E]F>-¹?£±3?ÀEâ?©ç$?–É?iú~?¨Ö?×êñ>ÏÂg>Íò¢?ì©?b3›?oý?€K-?sç?ë¼>Ë‘>Ìi*>Ί~>ïôy>ú®? +}?”Ê’?£ªU?tËz?Kj?K Ú?N‘2?qÃ?˜Q2?˜Ul?ƒG"?”>¥?gÈü?@§?Œ¼ý?Å"?¬,È?ƒƒs?¯Á?O;´?'Ì?uHW?˜ñå?B‰=/=Û^Ø>†”ö>Wí?€Çª?£Ýi?‚¡?M Ä?OZõ>>¿(?%¿Ã?9Ï?G¶V?N¯„?þ4?›n¤?ƒv?¸ë?%W?V>é f?Emt?TÄ.? D?¢¤Q?$Æ’>oâ“>”¸ß>±«j>Í' >ÓÜõ>ÔBm>Ô«>Õ>{¼>4â>­ø~>˪(>‚Æ>*›Ö>‡Rœ>S>=‚u<=Û‰h? Žõ?>=>K`>“¥®=_Iž>âÍ|>ÑùR>"=¬â=Šˆ`>¬ÇÖ>—ÜJ>zy>Öá>ßñy>ðî—=Ê÷>8/W?¿Ü>¤J?S‡?¤§{Ä>>÷§>>¼š>Qœ?+¦?«o¾?1§>¨Ï@¨›¹AXÈ?K+Ò>[ +q<*Œà=.ªö>7›½>¥ÿ×?K?Ç)™?ËO“?6]?P€&?¾”^?Ô…ä?è’?ü~?ïFF?äl?¤:?AŒ?7ÿÊ?¹úê?»„f?=e±?0þ'?Ë?¢dï?^ŠÔ?C<5?Ã@Š@²”?Ä3¡? Pp?¸á?¨³Å?ŸT)?t¡d?|~?èf?ç^%?w[ö?3JG?›µ>äÌd?†Þ?an|?§W@•~?êì?d˜Ú?f\s?hè–?cR@=Eâó=îê>®iÓ>¼xµ>%£a=úMì>©è>*’>Ï€£?'„ð?.5š?#Z€?;ݬ?…+º?sŸi? ß?ó?ª?†?ª|¤>#i<™Vl?–?ªá?4i÷?¢? :!?¼>û­/>«`3?Eá–?¼K©?³Æ?’»5?‚KM?(Ì?6›?Sgõ?G€H?~,ý?…Cˆ?K—·?F"L?6ÑÖ?;:?6Dˆ?R?>÷&?aPT?a@5?a/í?5vÏ>ôuª>ͤø>.öÊ>þçT?»Ò#?§EÎ? +T{?ZŽ?`V?`˜<>øz€>à{y?i…ï?t +ž?µ@ã?æ€?–•N?5½?\ó?“ðï?ÆŒ?†ná?|[û?Dú?X’Ô?„z~?â$?™Ì²?œB>çºc>ßÉÅ?VÚ±?_¿?õUÞ@ Ï?£-?bÕ×?b3?_¢Q?9*W?¶ç>þó’>¦>÷ëÄ?*£t?6†ô?nüû?d á?‚£Ê?„ê?¼‚?¾ª[?Г?Ê]â?|Õ>?_–­?6éÞ?!}Å?Zê!?u~?ñ×?§¿d?˜¶¢?€à)?hüe?BÍ‹?!?o=¾ñ~>FS¢?‹ž^?W?`G?_è>ÿßý>ìÙ?”Ã/?§CP?|\B?`æ?à >à*‰>ß‘¢>Û\‰?"È?`Qm? ù/>‚·?¨rI?¢£m?`°?kY@¬?þ2—?nTá?`ñó?€ªÄ?…Ω?ËKó?á'–?†ºu?-f–?l<‚?ŒÊ?_(?7~ˆ?;gx?2ž%? />áÁU?Xûí@ÝÀ?õ}?©€p?žÆˆ>¨ÆZ>±U>Gª>.F†?Çh™?Ùà\??îæ? +s@?CÁN?ZÏ–?¾ic?âã?­æ?c N?c¯?c'˜?¦2?â¢?Ì6U?­C"?®’?¯¾p?•4O?À>ÞÚí=–Ò>‚â¦?Ë‚©?Í`ü@vO@TH@ ¬G@¾ý?È8ï?ºß0@Ž€@Q“?} Œ?èÚ?)“?+)™?íó>öÿ?7ÜK?R-’?oÕ?ˆ I?ª·ò?ѹÆ?©‰é?e¯€?”ú?Ø:©?­YÏ>åö>ä(%>¦g´>–7>æ;K>í~c?çl? I@@Hì¥@Hø^@ïµ@/¦=ùvü>ÙŸH>ù¶H?—¿? È“?”¶h?¢ù»?mªm?Lª ? MC?½Õ€?‹?gÜ?¥e?ÃòM?¬Ñ ?”•ƒ?¼§?çÝ5?´3Ø?^rl?‡¨¾?¹?À1?‡L?ºŸÈ?®2j?¥ ?’%µ?ÆCØ@;$Z@)-˜?‹¿?p/Š>+€’>aÿ‡?®…G?«‚ß?hÅ?f¾=>ø$i?µ ?fÙR?hòÌ?Ò&ì?ÕmO?ˆIà?ݹ?œfR?§@©?:€?#ù§?àè?ýLî?¢ª;?Èø?§Ú"?¯r?¢ñû?¤7œ?ß"Ã?ü²ý?Â|É?“›$?¨¡K?ÆÁõ@ò@+M/@?é‰]?ÿœ•@³+?÷çá?¯JÖ?¯u”?«oŽ?—Ø?YÞø?O??Tø2?ttÑ?•=±?“…Æ?iœX?‚ðæ?à¨?ÚN?i–&?p9-?…]1?yTX?«™‘?²Æœ?Ù½?‘@"ÿ@_l?¨ý? ¨?Þ̦?é š?¸ò÷?¯Ç?­6u?ªˆ?^ýá?Q>?y<Æ?Ž?µ²?ÁÊš?Î¥ˆ?Ñ‚? ­:?þ?§y“?®Õ(?¨v?›ó¼?¹Y¼?Ú¶î?”m>èð?)b?z†?Š ¨?®™°?¾¡?åôö?â ?è¨Ú?íM?òÓ ?Û?‹²Ö?‡›¶?—‘Ö?¥Ïo@x÷Ã@p–? Ùt?§k±?Ô?ØÔ@ `\@?ˆøç?^…«?d/d?gÄ?û>ßD’?ÐWÌ@Ù¦@ A@((ð?±á? e?²aO@ÃP?éa?Ç?¶sþ?›Ø´?® v?èŒÅ?î”?¿?‚>Š@)¨Ç@§>çÑ*? k9?Ú^Æ?ͬ?MšD?H(?«Q?¬«¬?ËPÅ?ɯ“@s|?ú­š?´ùy?µ¥?Ĩ²?¿7(@ +vó@&¿?Ëy ?e\?/<:? ÀŠ?>£?$ÄO?$¹?¿)š?³þ?‘|ž?¬~›@z@ZK?šgz?•8k?<<Ÿ?TŒ?Ûfw?ã©è?¬Ø,?«%‚?ØŠr?Ú[?ËoÈ?Ášá?Áy(?Ó“Ç?˜¯1?V—z?Wäã?c…ì>ü–=¦'ã?DÍx?àSt?ö Ù@_Å@ •?Æ]Ÿ?°ÀØ?Œ§ú?¿D@¿Ë@ + ?à!?×Hî@sX@þ?é¼I?â.º?“Ä{?c2B?àGá@ÝÙ@$€2@:S@.o0@xJ?Ý£b?-9á?`í?Ì—æ?àçy@ùÓ@oY?­@Í?ª¡'?àÝ÷?àâ0?eG$?J°@5Åõ@M>?íùÚ?©ù?ŒZˆ?gæB?ÛÛh@"h?òãY?qº?; +Þ>åΆ?&î¬?¥±·?´Ih?¸?§—¿?§“¾>³?¤>‹>–,ý>6é5=™e«;&k¶?„s"?Ë´Ì?³k?Áºœ?ÕN“?ÔZÞ?¾|?^zR?ƒ#ù?Ó>|?Ê# @`l@#fš?®F?£Ý6?a@?F,>Èb…>¨ÇŠ?‹-?¿0?ݸõ@“®?ÊXœ?PÓÌ?Šl#?Ý)±?ÅA?]ì?_Θ?„H¤?uaÓ?Ò³ª?ܯ?”®?y”*?&°>ïÃÿ>Þè_>Ûˆ>Ýs?/>?T÷ ?ʨ‡?ÌM?¤ÞÕ?¨í¾?ìÃ?çÛ?â x?Ý^?¯¸á?§Tq?rð)?mÈ'?™a@?¤C†?šiå?™vy?“%»?Ca?ƒð^@ ·Ú@"H>ÜÂë>Ú[4?{iÀ?‘æl?NÌï? ±-?Wþú?xãp?­gH?û»'@†¸@<ø”@.Óø@(ë@%¦`?Y?h?Y)ÿ?Õ&æ?ëKR?–µ×?gª??[‘?X´’?ˆ-ê?¢bÞ?‘*Á?XU?OúØ?>†?K¦?X÷?Wë"?Æîo?׺N?T?b?ƒÝ?Ÿª4?×eå?¢(å?Ü´?`kQ?ñj>?ôV‰?¡$W?¡P>÷Y4>Ö‘Ó?<ë­?Ve£?‹-? ¦Ñ?—÷ ?ƒ«i?nLh?X¡?„‡@.V€@}‚?š÷Ö?‹A?ÂÖa?ë]‡?Ïj¯?©{Ê?¢µ§?Ÿ‹×?’¯¾?TˆÓ?Q¹T?3·M?J`n?aL?wÈ›?–g˜?žÛ?„Ÿ?T— ?q˜ç?ˆy?m‘? ý?"H?-‰¶?9i?D}Ò?Oˆž?r¬>äTÓ?à ?iñ?”QÊ?ÔòÃ?àÊ?è>Ѩr?¦`?Ñk?ü?>ûy?K^ž?²ö—?°ã£?ps?ƒö~?c*?RV]?Ïíû?óR9?™äˆ? +7? ¸r>´P¯>ƒBÓ=©NÉ=:1?$+_?O>®? +û>˜Å >¬­?\³?N—É?Éñ?áò˜?rÎ ?NNG?¢‘?o?6¶ÿ¢5?Qp?N‹ ? `E>ýOñ>Ú†>“Ÿé>²Ï>¡¯‰>`˜?;„?Kâ"? üá>ô.ˆ>ë >…H>Òw?&ó¸>é£?9Â?KX²>¨ +=˜>žÝ ?K)Ò?Mþí?ƒw?‰Åó?# B>Úá ?Oû?Ž2‚?\;Ü>Êô”>ËÀ?¡v/?ŽÔK?de?M£>à,=ÀËž>§§é?pè^?}Þj>›Õ>™•¦>³ u>ɨ?;sÜ? 63?¡û ?ƒ½?zl?•*q?˜¼‚?•Šì?˜Ül?µ¤ÿ?ÌJÄ?¤ó#?Tq[?9Ø(?H†>êÉi?+uØ?Lôv?psÊ?Œ£}?€»?MŸ%?MÒ,>×Ñp>Î3 >Îh*>Ü{=?eî?,²E?é>>yÁž>®6°?B“?NÝé>é—Î>ð§l?Âå¾?ïÔ†?oÛ¸>áq=Nêa>+xc?G‘¡?=a´?lMÖ?O’^>ãþ9>€jÌ=Þ:<;Ê€>kS>؆Ü>¹ý´>©íò>Üî9Ö/=Û9›>­OM>co<> Ö±?…~U?Rkp>âZú>Úþ–>±R9>²B8¦cv=®×>f&]=òN;>mº2>î>n>˜ÈX>~¥›=ŸŽ>œ'>÷Á+>‚êc=w<;ÍF=“Ù{>¯3B>‰q >F|=¼˜<ÒµH=ín=Ñd=wµè<ëèE>ôXE>ÀÌ@6=Y@ó´?C[P>yvH=5=¶l=’JŠ>5Çt>ÉÙü>èžÃ>Ã:¤>äe?}†e?Žiú>ç›>«Ëª@Þ@HÊ\@:RÞ@*c’@3âV@?DÐ@7¹þ@+ð@ûV?ö[Ð?ùåá?|¹ü?d†9?šû?“¨ø?^Ÿ?!î™?Mk?—™6?•ŽX?yè!?ü›?ä2Š?Ìjü>Ðx!>È9?KÏx?H€\?nÒÊ?`Î[?‚˜ú?~"á?czÀ?ZyR?=¢Ñ?:M8?N`?y÷Ì?ˆ¤Å?…Z‰?…Ú¸?¥È^?¤N\?c ?ce?§ãÝ?ªÆ?Ÿ®“?˜“š?“«q?ŽËG?)s>ânÎ?Cz/?ˆ%â?Šhf?Œ®ó?…æÍ?RtŒ?}&Ž?Ñ%¬?¾g„?.·? Š•>µ!Ä>½¤=­äª=ãÏ?åjO@ ~r?Ÿÿ­?a*V>°”¾='¶?.'M?›•”?€7Á?7ˆ?Zn>ãï’?èŒ>à›v>ÓW)>­„=>Ág@>âS­>à^n?ž¾M?­b?‹¶>?sP3?"ô|?ø?Hi­?`&?×&>±wB>Ûp/?5?Tßk?в@?³»>ߪ>ß¼¦>߶õ>ï A?ÞCÀ?Þª?}í?v‹H?Æ +~?ÑåN?O¿6?bæ?;?¹F?WÉ,> ëÃ>Œê{>”¤>¶jÔ? G>ÿ”>ÁA>烼?[UŠ?arø?­Ë;?³ÙŸ?Žà +?…ïß?qÒ?eË? …?›ò¸?§h>?§¬q?§°‘?§°´?ŠT+?9?#t? +O©>ÙDÏ=Äïb>H)?f:ð?aaÐé=¦@=)+€=O¥Ø?›€Ë?ý¤ò?«F¸?3Gà?ªõ?ÔcË?—HH>¿ÍK>Áú>’¨C>çßÖ?Ãó?ÄM?Ë0? ÂÖ?#0?%w?µÎ±?Åœ?®¬º?¢ça?Çê¶?Ö²È?Yè>¤³¹?4Û?™¨?(´>¡ˆþ?›NT@03&@?‡ ÿ?eqÞ=’Ô)>4æš?}µ?€KG?À—??ºà¦?®iý?¬+? ñ¬>â I?Ápÿ?âÅ©?:Ö?bç0?•K?§CÃ?[¢>?Íg?–ô?Ûšç?@S?ÜÒ‚?‘Å?³ ©?üp?Úãú?”‹?”½a?›vp?¯l}@ ñ@ °ñ?£Ãk?¥Ëú?[Zt?b;*>§×q>SA–?V?"H÷>Ú >«‡ã?,±?fb?ŽA{?›ŠÁ?Þ÷@tQ?Õæ?”ý? ø?´òh?“/™?/™Í?–û^@o¬?á¿y>æM?>¼±?æ;?Ót?g¤?…G?é ?àé*>ÑuË>Ëï¾>åcà>æÎé>æÝþ>æî8?É[ˆ?××?ì;o?ê§G?r›?GÅi?—Oh?ŸqÞ@¥^@3Šá?èŸ?­¶ä?ÀÂ?ÎѬ?•Q?Xžæ?}ˆ¥?†¾5?™3Ç?¹S?¸W5?®?‡m?Ãs?_ÄG?Õöý?éô°@ „Ó@»¤@+Ò@øÉ?®i>?¥ß?h¢ã?h n?]ü?a¯~?¥ZÂ?¡íá?„-?’È|@5ð@ +Áe?é‚v?â§è?gê~?FɆ?“[?¬ž¸?Vl:?(B‘?šUõ?®æ ?0M>é>"?ºÅ?÷¿%?Íñ‡?¾U?i‚"? ?¹¸ @ Çt@U`?éfŸ?K>ïÄ ?³F?å)d?¶2,?z+‡?Pq‚? §Í?G'ß?âd?Ïsí@+@ 7l?–ý?‚VÝ?/áS?1V?ƒÒ?DRe?ér?Ün5?T‡²?M‹ö?‹Áí?‡æà?‰ÊÑ?¾Ù= Ù<¡Ü?§ÕÒ?¯2À?Ì?Yq?¢½?®ôð?iŒ$?MŠ\?HÀJ?Có?šùþ?®Û¿?©s^?­& ?gßÔ?O˜?”?ò?Â×?×ÄŸ?èïg?þh¨@—6?ÁS9?õ?‹«ü?èM€?Ñ)1?®£?¯Úl?´t3?§†?ŠÓ?ŸœH?Ï‹s?Í ?®L2?®AÓ?®:y?Ì!Ê@g<@gÙ?œ‡¥?V?Ê??Äl·@œû@e?ܳ>éCÇ>çÄ*>ëêì?ë=E@.ù?„2Á?XˆË?¬&?Ïün?‹H»?6˜¯?¾¶ø@À5?è£?ÑŸp?Â-ñ?¸À?œ6s?=Ðñ?aÚâ?¦Åà?™ÛG?f¦Œ?„`n?£Ò™?«àþ?ægl?ã?Ãû®?±Åó? %?'ó’?åÈü?åùÀ@,òX@9ZB?•TH?LÖŸ?û5Ô@s?œbF?e{§? &>ôÔ'>hpt=©¤ò>—Im>åÔ?=|U?Š¯+?ŽÛ?‘}?ª?…&&?çx?Š¬¼?]ïn=÷»€=»¼³>äNv>÷æC?lb +?s‡/?´¥j?¹Ôê@Fñ@I??ï+?ĈG?pòI?\ ß?Rµî?IÈ7?-Ú¶?*°?ga(?ªXq?ÃH?ç”þ?øvø@²?ý0?Î÷ú?Ëè?Ç,?ÇÆ @Ä°@lø?Õ ?Ø_÷?ìº}?æ"Ç@B@ ÑJ?ñ™F?êy +?ªlÓ?œÈ?ÇÇ‘?ë¿5?ña"?Øy•?ºzL?™SŽ?š@v?™î™?­4À?àù/?Û¬¦?¬k8?°~æ?'ò?˜Aü?ßö·@É?«6g?šÝ7?Ü«²?îï‚?úi@Õ”@ k@ ÷?ýô?Îé˜?ÅÓ?Ã/õ?«|¢?_‚8?jf?§ˆŒ?¦ºç<‘®:?ŽJG?¤ÿ6?§:?£!T?élà@'L?±´Ò?^¡‰?—J‰?ÂmØ?š˜"?9U0?¡Ù@…7@“E>àù,>è¼[?¦L›?¦d‹?h?]»*?M–?-6,?­V?Ýp)?ÕO]?Ó&¡?”*z>åaà?ZÇ?Ý|?Ï¢ñ?™+?‘þ•?„ì?‰Jz?•m»?¤µ/?Öl(?É'Ü?…©?\×u?Ï +?ÿ¯&?«¿Œ?>¾Ú½b>õ\?[;?[X?[Fì?‰éd@$ç¯@€?Ûiê?Ècå?zs·?Yá¯?{Ê?»h?OHR>ÛØ?)Z?‡5E?žŠY?«?¼]Å?ˆ?ƒP?~+??Š#ž?™ùÕ? Àw?}Úd?XW?b«?t?‰Š?§-ø?Ÿ?2aq?@b¢?gñß?]_?œ»?¤œ?¸úÝ?¯Ë®?ÂÅ?×2–?ÐèJ?¶ä.?Ÿ ?™A6?ž¨÷? ý¢? ñã?J²`?:Ós?¸é€?ÁX(?™`?ŽÞ£?¨>‘?ÈÆì?Ã7¦? %?Ÿ¸â?Çý?ÞHÅ?¯¤?º_?ŠÐV?s€—?š`æ?ÄØ­?½Æ?Ÿi?†a8?Ù ? MË>Ô%+>Ô +o>Óõ#>ÓÓ#?x’?× ?¹A‚?ȹX?¦el?tÚ£?iüÐ>ÓP>Òà±?3:?Ôs>ÜEx>ÓSÛ?U]¥?‰ª?a[Œ?&9Æ?54?^?G¬>áý)>Ñ|±?8²ë?cgW?T¿,?0zw?~ø…?Ì÷¬?³¹¤?²Á?øF?“Ô,?›ªŸ?㮫@¾?À2‡?Z©?hXó?™óG?„®Ð>¼aÏ>ÎA_>Õ—_>ì“Œ>â¹ù>ÎÛÚ>>óÆö>²q>Îzl>Î[w?B¥ ?N&q?”‰?„|?h¯²?@h?#óR?¡„Z?¹Ê…?ûè?ýE^?¶RN?¸U?®ÇT?€Wa?€ ¾?L¸­?L£?™+í?˜Ê>ÎèÖ=¾£b>’çg>Ö;?ч?Ÿ…1?†§×?Xÿ?KË¥?Ê,>ˤ”>Ë”ç>ˆõ? šæ?¼eÜ?›(?`b?KA(?ä}>¡J>Ž›–>¹ˆ>÷Ñs?KŒ?J÷2?Š, ?—é!?••‘?˜*é?–N?ƒù6?a×Ê?Äl8?Þ,?®!ï?—¿j?‹æz?h¾?,b)>ÆÛ>úµ >¡c¤>q<“öŠ<Ѐ>‚”b?h3?6¦m?PóŠ?kW¦?‚ä*?#c?+¤Ÿ>ã3;?^n‚?¹]\?¶öJ?\Q?w4F?`X6?Oî7?ˆ ë?“° ?“AS?™á#?†¶ù?lì?ÒT>À©ü>Í )>ÎB>ÎE>‡#û><’Ý>QêŒ=å'é=òpþ>áò>Ô<Á>ÑÜ>ÐÇÏ?¡¦Û?Ö,e?rX$>«¯Ò>y|>‚¬y?‘óâ?†‡B?#Hù?Og›?’0ç?œ‘>‰Ä>¯\,? +Á>–oß>‰>Í¥>òŸ>‘[>L">& z=ëâÑ=¨ü3:ñ1;=!>åtÈ?C>áÝð>ÉåÕ=m”'>Ö‰>š;Â=dýü>”ãk>}À{=tüÀ>2âÆ=¹ ,=XÑ>>Š®m>pÕ4=Œ/7>¤v>õ =eÂp<èBà>lmY>nÍ>Å&%>:q>×Ü~?†V’?«ôí?¿Ó>˜·=ÅT<X`>Ü^>@ù¿?«îJ@³µÌ?µž§>»÷Œ<γr<ÕXà>E~Ç>Ë7¥?fx?FÝh?aÍã?(j¹?>˜7>Þ€b>ù5m?£É`?¼Æx?Íû?ÝI¹?_d>Ê«T?©ˆÎ@ e?ïE?­Œí?¬bv?™¯ü?œ›?Æ¢ˆ?Ämœ@ Ô¨@²?Ǭ ?ÇÊ}?ž +%?”}?h¨?3È?? +5>°Œ$?€sÄ?óù½?Å”¤?cúõ?bêÈ?bÚ“?c÷?n)?v&?ÖÁq?ÕXž?Ò×W?ÐWZ@Ì@i?‚~Ù?(<ƒ?…,?¡†ß?¡€;?©eD?Ë +¼@‚#?ðs™?ž€”?ˆ˜‚<³‹G>á(u>ሎ?Ø)æ?á6ø?Þ‘?Ùún?9 Ñ>·?šç›?ÕJ¢?…ðÌ?->í>“’?ç›?t™Þ?RZÎ>êÇò>Äá>sCÒ>‰°8?3Øc?7¤%@HK@ ?WgÀ?9‡?-iÔ?LR}>î`‘>MO§?ÐÉ?YœS?,!Å>ß<{>ߨ>ߤ¾? +=?\âÿ?>B&>,?>tR³? 8i?ž‡?…ø?‡ì¢?Ž$?‰a^?\½?[àj?M$V?5#?¾k?![?O/Æ?‘ø÷?€Ä²?S"?cK?–RT?zmi>‹Ì,>™6”?aÆ/?j Œ=ƒÓ =·vø=¸¸‘?ˆz+?°‚2?Ÿeß?šå ?Ö“@‘?ÜøÍ?¦fš?§ƒ“?§³Ô?¶îÌ?ߧè?Õ½#?¦ëA?œ«>í +º>öhó?¥Ð?§çM?“Ÿ?‹ÐO?­í?°çd?7˜Ð? ¨"?JpN?`,_?k?ƒªR?¡ç?®.‹?œ?‚J?‘^ã?Êå]?÷?§ÉÈ?—•×>à¿™>àÌp?o‚˜?x©ï?Ù ?áÌ?Ï?Òõ?Ž‚K?aB%?Á´?ò€“?Xã ?¥Õ@0h?Þ²s=Èã>6ÓŸ>Ñøë?8Ó0?Üè'@øÀ@b# @[ŠÐ@ k†@ ?âÎß?ß @ +A@ èë?Š‚Z?bÂÓ?&ä?ª+y?6Qw>ã ®?S¢r?‹.Û?Äßš?ò|4?©wÉ?7Õü?£Å3@¶ ?Ú£?cÀB?X¢”?2u^?S…±?ÃkÔ?¾9ì?d/?Zz÷>Heü>>Þ‰>á¸>äŒ +?‚å?…Dò?„H?‚Û>ûëÙ>§[ô?'^¦?NA ?¯Y?Óy©?ù»q@ ?÷sá?áÆe@ :È@*Œ(@,+ò@,YÜ?é g>åìÅ?…+@ÔO?Ð)=”_ü>”ö ?ç +?¢å­@ƒ@èô?LºJ?=œç=ûì×>?_pÈ?k‡œ?U:¬?eÇ?È>ç ?˜Z>?­'ó@5}1@P¨?Ù¶“?–zx?˜Ï?™‘e?jHØ?*¢Ü?Q:”?ƒÚg?HÛª? ±„?„–Ê?½rŽ?žÒ?zRn?D>ø}ã>éUK>è9 >™)K<–±Ð?Y@(®ð@ì?ÚIÙ?¬?¶>'ÆX>êbÁ?Ú²Û?Ñ£h?"™?£|+@ ?>@¦þ?½§t?Ä—ì?Î)Š?Ëi?`bþ?F‚R?í¤?\ò?1½?‹Úß?,šF?ý?Uôb?i ¤>ˆžF=D9U?0¡n?m½g?@A>é6Ÿ?…:È?¯Ö @Á,@=r%?Ì=ìÞò>鄺?Ø_œ?ÛdÒ?£*A?œZÖ?þ]ï@P?œ™£?‹d?‘¬ƒ?Ê*?¥¦ò?®ªæ?Ë +u?Ùk$?ÓŽ?Óñ:?J›>+£1?Šë?è3d?ªlØ?jZÜ?:èx? æ”?Œ¾v?ÝÒ)@Õº@8@Ÿt?Ó!?ŵ?®,õ?µËì?È ¶?Ç8?ÓŒa?îž@5}9@.©¹@Ú@¥p?`/š?e»?g´°?f÷?Ùø?Ön>çøô>åµÜ>ô§>ç\”?¤ «?¸óC?²þ?­?®¤ ?¹–?§Ò?œ€ù?ZrO?¶6?¨à0@ l?´ø>æŸ?{‚p?àf?Ë '?¬ËJ?–å¥?Pµ`?ƒ¶?ÂO?²GZ>é’`?´A?åè‰?ä5e?¬b¹?¬M@›µ@ L@ @õ?@$>ílª?±5™?Ëó?rý?'C–?a®?~q®?»ÓÛ?âé¤?˜N?:AY?M –?GÞ&?}V ?Τˆ?Ë*©?ª¨Ø?‰K }bÖ?Ñï‘?êï?2Ìþ?A]@(7@5v–@ 4J@Í?M%>¶iÖ?ÅŠ?×Ú?Õ??© ü?‰£¯?g,Ë?¬*ü?âÙˆ?³0$?zÕ¾?´ÖÉ@7×?âš +?™÷?¨å?Áwš?Èaí?²Aù?®šó@&põ@)uO?:\Ö?³7@­ @0ÓI?¤’…?6v?›:?¥íy?à* @ Ȩ?ÈO/?LIE?0àU>àø-?FÁ£?àÓ‚?è£@r¼?õT?‰¶?…ª@?f?ŠzÒ?QÔ¤?7©°?Á +ë?òaÜm¶>ÜX´@1µ¶@@±?Ôë?¤ ©?‹Yå?A¬?¬u¬?³n—?—z?e®û?yKO?†q?™4ô?Ðõ?Õõ:?\µI?sŠå?>a?]ÍÍ?©v?ª¿?>~s?W{?æ¬>ÚŒ`?7 Š?¡[?–/?Z@å?nûé˶?*@ê?Wm?S™ä?Y;‘?‹ÊÞ?Îÿº?·€?Œ]Ž?‘û"?L°ë? >w?K¸?X­?²Ì?ÆtT?uóD?:Ó?GÁ?·f?·Ö? %?‹Ð?Ÿ{T?¡¬º?¡•³?¡‰ã?ŒÇh?‘?‰÷5?5o?Óf@ žÀ?ð0¤?_X?Vœ0?\¦C?gŽÚ?Vªn?V4›?ÁíÖ?ݺ·?µ`\?ŽY ?küú?U©Š?yI¨? ì?™'#?tÖH?©—?W1\?‚Dj?wù?Ÿ–Z>ã‹œ?‘ˆÞ@L»?̨l>;S>œÓ?û‹?tHï?[éµ?$œ +?=£‰?TœÜ>þêÞ>²²Þ?É?S£?P•þ?3¸¬?ß?ȸH?ÑÏ?-Õ>ÒGº?Š¡"?Áþ˜?³ö?šo?‹‰9?ƒ#?Ž»p>ݾò>ÑZœ?ðL’@ ?¼‹‹?†ò?˜eK?Íá…?ÔŽP?œ]"?œBê?œ/8?œä?æß@ðÖ?¦W'?.Í­?Ž·Y?ø…¸?ð-ª;çõI<=Æà?¾Œ]?ÍóQ?Ûíá×Í>Î=3>Üúƒ>õ„Ï?.8?/³¶?f&?pKý?<ØA=%<–;<‡¹>Ùýç? ÓÀ?Iül?Löh?bò?sÃÃ?bºð?Lžº?L‡i@&˜@))?¿(?…@/?*L¨>ð°?Pøb@™@òG@ØA?ñÕ²?×h÷ß>Úa©?O?o/?ûâ>. u>*mÌ?&‰‚??Ò> ¤=Áù¤>ÔòÅ?(uS?ozî?µ¡÷?¸™r?ÚA>ÛY½?€I?˜Û?d‰!?,Ú?D'R?EI>ÖàÁ?›S”?™?‰?•¦4?„oW?nîÈ?aì.?6Ñ3>ËA~>ËS“>Ëgv>Ëy‡?&oå?9¹¯?-?‹??ì?K?Æ>îéî?Ž¼?™ @?5Ÿê?±«?1Û?M=?IÇ1>yŽ=ú¦C;uGâ<”Å°?! ?.]">Ï×Ñ>.˜^>=Ù¸>¯t‹?@sY?éxý?…ßð?eÇê?XüF?t·¯>ægŽ?Mé?ï[¹?²¡ ?6ƒN?C}i?=…n?U Ä>ôñ‘>ª§=Çÿ&>Åãtw:ÉÂÜ26>þ +`?\uý?FÂ7>´®>ˆH<âˆæ>«*+>·†š;б =¶@>H=Ss>MUì=„3>®dœ>³Ä;ζ¢<ã§y>á±>\œN>ô +U>\5l=ŸŽ< T >¡§…?‡SÍ?2£¢?+ݾ? ¥G>„å>Pú>+›ê>Þë0@¤Å@Fq?Jˆ?L=qE§XTENSION= 'TABLE ' / Table extension BITPIX = 8 / Printable ASCII characters NAXIS = 2 / Simple 2-D matrix NAXIS1 = 312 / Number of characters per row NAXIS2 = 1 / GCOUNT of original file PCOUNT = 0 / No random parameter GCOUNT = 1 / Only one group TFIELDS = 18 / PCOUNT of original file EXTNAME = 'x38i0101t.c0h.tab' / GEIS header file name with .tab TTYPE1 = 'CRVAL1 ' / CRVAL1 = 'right ascension of reference pixel (deg)' / TFORM1 = 'D25.16 ' / TBCOL1 = 1 / TTYPE2 = 'CRVAL2 ' / CRVAL2 = 'declination of reference pixel (deg)' / TFORM2 = 'D25.16 ' / TBCOL2 = 29 / TTYPE3 = 'CRPIX1 ' / CRPIX1 = 'x-coordinate of reference pixel' / TFORM3 = 'E15.7 ' / TBCOL3 = 57 / TTYPE4 = 'CRPIX2 ' / CRPIX2 = 'y-coordinate of reference pixel' / TFORM4 = 'E15.7 ' / TBCOL4 = 73 / TTYPE5 = 'CD1_1 ' / CD1_1 = 'partial of the right ascension w.r.t. x' / TFORM5 = 'E15.7 ' / TBCOL5 = 89 / TTYPE6 = 'CD1_2 ' / CD1_2 = 'partial of the right ascension w.r.t. y' / TFORM6 = 'E15.7 ' / TBCOL6 = 105 / TTYPE7 = 'CD2_1 ' / CD2_1 = 'partial of the declination w.r.t. x' / TFORM7 = 'E15.7 ' / TBCOL7 = 121 / TTYPE8 = 'CD2_2 ' / CD2_2 = 'partial of the declination w.r.t. y' / TFORM8 = 'E15.7 ' / TBCOL8 = 137 / TTYPE9 = 'DATAMIN ' / DATAMIN = 'the minimum value of the data' / TFORM9 = 'E15.7 ' / TBCOL9 = 153 / TTYPE10 = 'DATAMAX ' / DATAMAX = 'the maximum value of the data' / TFORM10 = 'E15.7 ' / TBCOL10 = 169 / TTYPE11 = 'MIR_REVR' / MIR_REVR= 'is the image mirror reversed?' / TFORM11 = 'A4 ' / TBCOL11 = 185 / TUNIT11 = 'LOGICAL-' / TTYPE12 = 'ORIENTAT' / ORIENTAT= 'the orientation of the image (deg)' / TFORM12 = 'E15.7 ' / TBCOL12 = 193 / TTYPE13 = 'FILLCNT ' / FILLCNT = 'number of segments containing fill' / TFORM13 = 'I11 ' / TBCOL13 = 209 / TTYPE14 = 'ERRCNT ' / ERRCNT = 'number of segments containing errors' / TFORM14 = 'I11 ' / TBCOL14 = 221 / TTYPE15 = 'FPKTTIME' / FPKTTIME= 'the time of the first packet' / TFORM15 = 'D25.16 ' / TBCOL15 = 233 / TTYPE16 = 'LPKTTIME' / LPKTTIME= 'the time of the last packet' / TFORM16 = 'D25.16 ' / TBCOL16 = 261 / TTYPE17 = 'CTYPE1 ' / CTYPE1 = 'the coordinate type for first axis' / TFORM17 = 'A8 ' / TBCOL17 = 289 / TTYPE18 = 'CTYPE2 ' / CTYPE2 = 'the coordinate type for the second axis' / TFORM18 = 'A8 ' / TBCOL18 = 301 / END 1.8263575416670000E+02 3.9405674999999995E+01 5.1150000E+02 5.1300000E+02 -4.5933261E-06 -6.4628589E-06 -5.9688650E-06 4.9734772E-06 -5.6454391E+00 8.3697998E+01 T -5.2420010E+01 0 0 5.0266589604322187E+04 5.0266589660745798E+04 RA---TAN DEC--TAN \ No newline at end of file diff --git a/Sources/Imaging.Formats/Sample Images/FITS/good.fit b/Sources/Imaging.Formats/Sample Images/FITS/good.fit new file mode 100644 index 00000000..0c00e5e7 Binary files /dev/null and b/Sources/Imaging.Formats/Sample Images/FITS/good.fit differ diff --git a/Sources/Imaging.Formats/Sample Images/FITS/ngc1316o.fit b/Sources/Imaging.Formats/Sample Images/FITS/ngc1316o.fit new file mode 100644 index 00000000..aec988d3 --- /dev/null +++ b/Sources/Imaging.Formats/Sample Images/FITS/ngc1316o.fit @@ -0,0 +1,1878 @@ +SIMPLE = T / file does conform to FITS standard BITPIX = 16 / number of bits per data pixel NAXIS = 2 / number of data axes NAXIS1 = 440 / length of data axis 1 NAXIS2 = 300 / length of data axis 2 EXTEND = T / FITS dataset may contain extensions COMMENT FITS (Flexible Image Transport System) format defined in Astronomy andCOMMENT Astrophysics Supplement Series v44/p363, v44/p371, v73/p359, v73/p365.COMMENT Contact the NASA Science Office of Standards and Technology for the COMMENT FITS Definition document #100 and other FITS information. COMMENT FITS (Flexible Image Transport System) format defined in Astronomy andCOMMENT Astrophysics Supplement Series v44/p363, v44/p371, v73/p359, v73/p365.COMMENT Contact the NASA Science Office of Standards and Technology for the COMMENT FITS Definition document #100 and other FITS information. OBJECT = 'NGC 1316' TELESCOP= 'Optical ' INSTRUME= ' ' OBSERVER= ' ' DATE-MAP= '24/03/94' EQUINOX = 1950.0 / EPOCH OF RA DEC DATAMAX = 1.037890381E+03 /MAX PIXEL VALUE DATAMIN = -5.450668335E+00 /MIN PIXEL VALUE CTYPE1 = 'RA---SIN' CRVAL1 = 5.01966661513E+01 / CDELT1 = -1.944444492E-03 / CRPIX1 = 2.260000000000000E+02 CROTA1 = 0.000000000E+00 / CTYPE2 = 'DEC--SIN' CRVAL2 = -3.73856168315E+01 / CDELT2 = 1.944444492E-03 / CRPIX2 = 1.470000000000000E+02 CROTA2 = 0.000000000E+00 / HISTORY -------------------------------------------------------------------- HISTORY /Begin "HISTORY" information found in fits tape header by IMLOD HISTORY BLOCKED = T /TAPE MAY BE BLOCKED HISTORY /-------------------------------------------------------------------- HISTORY /BEGIN "HISTORY" INFORMATION FOUND IN FITS TAPE HEADER BY IMLOD HISTORY /END FITS TAPE HEADER "HISTORY" INFORMATION HISTORY /-------------------------------------------------------------------- HISTORY IMLOD OUTNAME ='NGC1316 ' OUTCLASS ='OPT ' HISTORY IMLOD OUTSEQ = 1 INTAPE = 3 OUTDISK= 1 HISTORY IMLOD RELEASE = '15APR89' HISTORY TRANS RELEASE ='15APR89 ' /********* START 17-FEB-1989 08:47:28 HISTORY TRANS INNAME='NGC1316 ' INCLASS='OPT ' HISTORY TRANS INSEQ= 1 INDISK= 1 HISTORY TRANS OUTNAME='NGC1316/G ' OUTCLASS='OPT ' HISTORY TRANS OUTSEQ= 1 OUTDISK= 1 HISTORY TRANS BLC= 1., 1., 1., 1., 1., 1., 1. / INPUT IMAGE HISTORY TRANS TRC= 2001.,1401., 1., 1., 1., 1., 1. / INPUT IMAGE HISTORY TRANS TRANCOD='1-2 ' / OUTPUT AXIS ORDER HISTORY CNTR VERSION= 1 / PLOT FILE CREATED 17-FEB-1989 14:03:52 HISTORY CNTR VERSION= 2 / PLOT FILE CREATED 17-FEB-1989 14:07:08 HISTORY CNTR VERSION= 3 / PLOT FILE CREATED 17-FEB-1989 14:08:35 HISTORY PUTHEAD CTYPE1 =' ' / OLD HISTORY PUTHEAD CTYPE1 ='RA--TAN ' / NEW HISTORY PUTHEAD CTYPE1 ='RA--TAN ' / OLD HISTORY PUTHEAD CTYPE1 ='RA---TAN' / NEW HISTORY PUTHEAD CTYPE2 =' ' / OLD HISTORY PUTHEAD CTYPE2 ='DEC--TAN' / NEW HISTORY PUTHEAD CRVAL1 = 0.000000000E+00 / OLD HISTORY PUTHEAD CRVAL1 = 5.019667053E+01 / NEW HISTORY PUTHEAD CRVAL2 = 0.000000000E+00 / OLD HISTORY PUTHEAD CRVAL2 = -3.738555908E+01 / NEW HISTORY PUTHEAD CRPIX1 = 1.00000E+03 / OLD HISTORY PUTHEAD CRPIX1 = 7.02000E+02 / NEW HISTORY PUTHEAD CRPIX1 = 7.02000E+02 / OLD HISTORY PUTHEAD CRPIX1 = 9.97000E+02 / NEW HISTORY PUTHEAD CDELT1 = 1.00000E+00 / OLD HISTORY PUTHEAD CDELT1 = 3.05600E-02 / NEW HISTORY PUTHEAD CDELT2 = -1.00000E+00 / OLD HISTORY PUTHEAD CDELT2 = 3.05600E-02 / NEW HISTORY PUTHEAD CDELT2 = 3.05600E-02 / OLD HISTORY PUTHEAD CDELT2 = 5.09333E-04 / NEW HISTORY PUTHEAD CDELT2 = 5.09333E-04 / OLD HISTORY PUTHEAD CDELT2 = 5.09333E-04 / NEW HISTORY PUTHEAD CDELT1 = 3.05600E-02 / OLD HISTORY PUTHEAD CDELT1 = -5.09333E-04 / NEW HISTORY PUTHEAD CROTA1 = 0.00000E+00 / OLD HISTORY PUTHEAD CROTA1 = 3.00000E-01 / NEW HISTORY PUTHEAD CROTA1 = 3.00000E-01 / OLD HISTORY PUTHEAD CROTA1 = 0.00000E+00 / NEW HISTORY PUTHEAD CROTA1 = 0.00000E+00 / OLD HISTORY PUTHEAD CROTA1 = 3.00000E-01 / NEW HISTORY PUTHEAD CROTA1 = 3.00000E-01 / OLD HISTORY PUTHEAD CROTA1 = 5.00000E+00 / NEW HISTORY PUTHEAD CROTA2 = 0.00000E+00 / OLD HISTORY PUTHEAD CROTA2 = 5.00000E+00 / NEW HISTORY PUTHEAD CROTA1 = 5.00000E+00 / OLD HISTORY PUTHEAD CROTA1 = 0.00000E+00 / NEW HISTORY PUTHEAD CROTA1 = 0.00000E+00 / OLD HISTORY PUTHEAD CROTA1 = 0.00000E+00 / NEW HISTORY PUTHEAD CROTA2 = 5.00000E+00 / OLD HISTORY PUTHEAD CROTA2 = 0.00000E+00 / NEW HISTORY PUTHEAD CROTA1 = 0.00000E+00 / OLD HISTORY PUTHEAD CROTA1 = 1.00000E+00 / NEW HISTORY PUTHEAD CROTA1 = 1.00000E+00 / OLD HISTORY PUTHEAD CROTA1 = 0.00000E+00 / NEW HISTORY PUTHEAD CROTA2 = 0.00000E+00 / OLD HISTORY PUTHEAD CROTA2 = 1.00000E+00 / NEW HISTORY PUTHEAD CROTA2 = 1.00000E+00 / OLD HISTORY PUTHEAD CROTA2 = 3.00000E-01 / NEW HISTORY AIPS IMNAME='NGC1316/G ' IMCLASS='OPT ' IMSEQ= 1 / HISTORY AIPS USERNO= 51 / HISTORY /END FITS tape header "HISTORY" information HISTORY -------------------------------------------------------------------- HISTORY IMLOD OUTNAME =' HISTORY IMLOD OUTSEQ = 0 INTAPE = 1 OUTDISK= 3 HISTORY IMLOD RELEASE = '15JUL94' HISTORY SUBIM RELEASE ='15JUL94 ' /********* Start 24-MAR-1994 10:58:33 HISTORY SUBIM INNAME='NGC1316/G ' INCLASS='OPT ' HISTORY SUBIM INSEQ= 1 INDISK= 1 HISTORY SUBIM INTYPE ='MA' USERID= 100 HISTORY SUBIM OUTNAME='NGC1316/G ' OUTCLASS='SMOOTH' HISTORY SUBIM OUTSEQ= 1 OUTDISK= 1 HISTORY SUBIM BLC = 1, 1, 1, 1, 1, 1, 1 HISTORY SUBIM TRC = 2001, 1401, 1, 1, 1, 1, 1 HISTORY SUBIM XINC = 4 YINC = 4 HISTORY SUBIM OPCODE = 'AVE ' HISTORY HGEOM RELEASE ='15JUL94 ' /********* Start 24-MAR-1994 10:59:29 HISTORY HGEOM INNAME='NGC1316/G ' INCLASS='SMOOTH' HISTORY HGEOM INSEQ= 1 INDISK= 1 HISTORY HGEOM IN2NAME='FORNAX ' IN2CLASS='I ' HISTORY HGEOM IN2SEQ= 2 IN2DISK= 1 HISTORY HGEOM OUTNAME=' ' OUTCLASS='Optic ' HISTORY HGEOM OUTSEQ= 1 OUTDISK= 1 HISTORY HGEOM BLC = 1, 1, 1, 1, 1, 1, 1 HISTORY HGEOM TRC = 501, 351, 1, 1, 1, 1, 1 HISTORY HGEOM IMSIZE = 512, 512 / Output image size HISTORY HGEOM / Interpolation order used was BiCubic HISTORY HGEOM / Indeterminate pixels filled with magic values HISTORY HGEOM / 74383 Pixels blanked due to memory limits or geometry HISTORY HGEOM / 0 Pixels blanked due to input blanked pixels ORIGIN = 'AIPSGorilla (NRAOCV IPX) 15JUL94' / DATE = '24/03/94' / File written on dd/mm/yy HISTORY AIPS IMNAME='NGC1316/G ' IMCLASS='Optic ' IMSEQ= 1 / HISTORY AIPS USERNO= 100 / END  $0;J{²Y_diou}…“›¦¯¹ÁÀÄÇÈÈÈÈËÌÌÏÏÏÓÓÑÒÓÓÕÖÕÖ×ØØØÙÚÚÛÚÜÝÝÜÛÜÝÜÝÝßáÞßàßßáàßàááâáÝàáâäçèéëæååääãããæäéäâãäãääââãåãããããäãááàßàáàáâääååääåææççéìíïììëèçæçèçæåäåæååäåãååãèåãâåçããäãäåçæçèççèææçèæèáãèèææææèèæçæååååäçåææææéæäåäåååæåäææåååæææåçæææçææçåçèèèèççééææååæéèæéèçèèçæååçèæåãäååäääåääãäåäãââäãàáâáààáâããâãããããäãääååäâåèýçâãäâãââãàßâãäààààÞààáßàÞààÝÝÞàáàààßÞßåõÜÞÞÞÞÜÞÞÞÝÛÛÞßÝÜÜÛÚÚÙÝÙØØØ×Ø×Ö×ÖÕÓÔÖÔÓÑÒÓÊÊÊÊÇÆÅÅý·°¦Ÿ—‡}wrnhc`[VN ".9EVZc^chnsz€‰’š¥±·»ÁÅÅÇÈÉÊÊËÌÎÎÑÐÓÓÒÒÒÔÕÕÖ××ÙØÙÚÙÚÝÝÞÜÞÝÝÜÝÞÞÞßßÝàæáÞàáÞàààáãáãâáâêêåçääåâââáãáâáãããââäãâãããââãââãâáâáààâãâããããäääåååçééèêêééèççççéèèéæåååææåææçòçäâãæääääæçèççèççéçèçëçãVæççççççæççæçéææææçæææåæçååæååææåæååçååèèççæçéèççèèçèéêèééèççæéèæåëìçøöééæççæååååçåååæåääæååååçäããããåãâãäáâãâääãäæåäääåæææäåäååßãâãääãããðøìâåæáââáàâàáàßßàÞõôÞáààáàßßßÞÞßáÞÞÝÞÞßÝÝÜÞâáÞÝÜÛÝáßÛÚÚÚÙÙÙ×ÜÙØÖÖáâ×ÓÓ×ÍÍËÊÉÊÈÌÈý¶®¥•‡‚|vrmgb^ZT*6AJSUXbflsx~†–œ¡¬´¹¿ÃÆÇÇÈÌËÏÓÜÑÐÑÑÖÔÓÔÔÔÕÕÖ×Ö×ØÚÚÚÛÜÛÞßÞÝÜÜÝÞßàÞÜÝÞÞßÞàáßàààââáâââáâãããããããäâããâáâãâãããääääãããããââÞããâåäããæäââäããååååæèééèééééèéêéèéèèéçæææççåççèíçæåäåæææææçèèèèèçèíèèèèåþçèçæçéèæææçæéèççæççææææççççåææåççæêçæåèéçèèéééèèèééèêîïéèçèçêéìèææëíéèéíñëèæçæçæåçåæçææåæææåãäååãääååâääääääçèäæéçåæææçæèååæååæãããääååãÿR8ÜäãâããâáäâáàÞàáÞù÷ÞààßààààßÝàßàÞÞßÞÞÞÝÝÞàáßÞÝÜÜÝáßÜÚÜÜÛÚØ×ÛÙØ×ÚáßÖÔÓ×ÏÍÌÌËÊÈÉÇÄÁº³«¢›”†€zvusfb^Y '4?GNUZ_flrw}„Œš¡¦²º¿ÄÅÆÈÉÉÊËÎÏÒÓÑÑÒÖÕÕÖÕÕÖØàâÙÙÚÚÛÝÜÜÝÝáßÜÜÝßÞÞÝÞßßßßßÞßàáááâãäâââããããããääãâãäääãââãããæææææåãäåääãëåãâéæåãâããääääåååæèêççèèèéèéêêèææççåææåææçææççêèæçèèæèèçæåæèèèèëçê íèééèãæééèçæçèæçççççèçææææççççææææææææèççèæçéçèèèçèéççèèèèéìëëêéçèèééëèèççççèå;èæææçææåäåææåçæåææåäääääääåäååäåææçéæäææåæææååæååæååæääääãäéåðVOÙäããäãââãâááßàáàßàááààààáàáàÞàßàßàßßßßÞÞÞâàÜÝÝÞÞßßÝÝÛÝÜÜÜÛÛÛÚÙÙÛÛØÖÕÔÔÒÎÍÍËÊÉÈÇÆÃÀ¹²ª¡š“‹„zwvkgb^ +#.;EMSX^cjov{ƒ‹’œ¤ºÀ½ÄÆÆÇÊÊÉËÍÎÏÎÐÑÒÒÖÕÔÕÖÖÖÖßãØÙÚÛÜÜÛÜÝÝÞÝÝÝÞÞÞÝÝÝßßàßßßàßàáâäâáââãããääããçêääâããâãââããäæåææåäãããäåäùSåãâçääãâããäãäæåäæççéçæçèçëêéèéççæçæåææåääçææçéíìèççèæèèææççééèèêçêýìéêéèèèãåéêéèéèèçççæççææçêèçèçææååæææææçççéêééçêéèìêçèèèèèêìêèêçêèêêéêèéçèèçççîöñéççççææååèçåäæååççåååæçèåååææççåææåççåäæææèéççæææèæåæåååæåäèèäÞÞåäååçæäãâááâáàáàááààààááááàáßáßààààààààßÞááÞÞßßàßßÝÞÞÞßßßßÞÜÛÛÛÚÚÙ××ÔÓÔÒÏÍÍÊËÊÈÈÆþ·±¨ ™‘Œ†~yvojfa  +7BKQW\chntzˆ‘™£¬»ÂÃÆÇÈÌÏÊËÌÎÑÐÐÏÔÕÔÕÖÕÖÖÕÖØÛÚÙÛÜÜÝÚÛÜÞßßÞÞÞßàÞÝÞÞÞßààßßàââááâáâäèåããååãããâããããâäæãåääääääääåäääåææéûåäãäääãååäåååççæèéæçèçççéíîèèèççèçççççæïÿæèèèêêìéèæææèèççèèêéèêééêæèêêîóë:åêééêëéèèçèçèçèçêéçèçææíîççèçæçèçèééêéìëéóïèèéééêëêéçèéêéëèèçèèêëéèèèçèèèèçççéèæåççèççååçèçææçèèææçóééææäççææææçççææçæååææææåæääææääåååååäåæççåããáâáãââááááááàáááâàáàáßáàßáááßáàßààßÞàßàßßÞßààãâáàßßÞÝÜÛÜÛ×Ø×ÖÔÓÑÏÎÌËÍÊÉÈƼ¶®¦Ÿ—‰ƒ}wtnjd (3?HOTZagmsx€†Ž˜ ©³ºÂÆÈÊËËËÉËÍÏÓÒÒÑÖÙ×ÕÙØÖÛÜÙÚÛÛÝÛÛÛà ðÞÝÞÞÞÞßßßßßàààáàáààçâáãâããáòêáãææããääååäåãåäîåãäåææååæååæååææåäåæçåãääåæçæççæææççèèèèæççèèééèèèççééèçèåøæêèéèéêééèçåçéèèéêêêéêéêìéèééøB æéçèêëéééêééééççèèèèèêéììææèéçèççèèèéëéëêîìééééêëééééèééééêèéçèëêèèéçèèççæèèêççææèçççææçèççëìæäææäé íèèæäåæççæççççææåæçåååçìåäåääåæææååææåæçäåååãáãããââáááááâââââââááááâààáâáààáãáßàßßßàßàáàââäãäãàââàßßßÝÙØØÙÖÓÓÑÑÎÍÍËËÉÈÅÁ»´­¥œ“‡|yrmh $0<FNSX^ejqw~†Œ•ž§¯¸¿ÆÊÈÉÊËÎÌÎÎÏÒÔÓÓÔ×ÖÕÚÙ×ÜÝÙÚÛÛÜÛÛÜÞìçáßàßÝÞßÞáààãâßàßàáàáââäááãåæäâãååååääãääåããäææäåäåææææåäæçæææææçæêçäåèææçæççççççççèëæèèèèèééèééèèéèçççæì÷èèèèçéééèéíøðééêìêêëëêêêìéééöû% ÷óíêéèéìíéêííêêééèèéêéééïíèèççèèèèéèëëêêìêêëëéèéêêëëéêêêéééêèëêéèééééèèèéèèèéèçççèçççèéèçæèèèçèéæçèéìçéëçêèæååéèæéëëêææçåæåååçôëçæåæèççæåæææåææææååãããåäãâáâãáâäãâãááââáâááààáâàààâåãàâáááááâãããäæåçåääåäââàÞÜÛÚÚØ×ÖÓÒÏÎÍÌÍËÉÐËÀ¹³¬£›“Œ‡€|wpk  +8CKQW\cinu}ƒŽ“›¤­¶½ÃÌÏÌÌÊÌÏÎÑÏÐÔÚÕÕ××ÕÖÚÙØÚÚÚÛÛÜÜÛÜÞàÜÞàßáßðæßàâáßèõìàáâäââáãâãæäæäããääååæåæåæôõäåçååååæææöñãåææçæçæèææççççèåæèçççççæççççéîçèëééêèéêééèçèèçèèèèééèéçèèëêééò øèëììèîöìêííëêëêûð÷õìêëëëëêìíéêíìéêêéêèéìêééíìéééèèèéèèêìëêíìëëëêééééëìêêëëëëêêëñéèééèéééèéêêêêíèèèççèççèèèçèèçæææçæåççéèèèçéççèçççæçêêéçåæåæççæèêíççåææåæææççææçææåäåããååãâââãããääããââáâáâáâááâãáàááâââââãââããäæäéêçèèéèèçåãâáßÝÜÜßâØÔÒÑÏÎÍÌËÊÒÏĽ¸±©¡™‘Œ…zuq '3?HOU[`gms{ˆ’™¢ª³»ÂÆËÎÔÕÌÌÌÏÐÏÑÕØÕÔØ×Ö×ÛÛÚÙÙÛÜÜÜÜÛÝßßßåèáààçãááááÞð üâããäââââãâæäããåããääåääåååèìíåèåäåæåçïìæåååìðåææææççæèèéíêèèéèççèéçèèèçççêééééèèèèèèèèçèéèééééééééðêëééëêêììéçöìéîóëëëëéëëêêêéêëìëééêééêèêëêéééêéèéêêêééèéëéêëééëììëêëêêëëééëêéêêëëëééí¶)ìçêëèèêêèèêêèéëèèêìéèçææèçççççèèèçæçççæçççêéææéèççèèéèèéèæçèçèæêèêçæçæåæåäåæææäæèæææääããääâãâááâããââãäãâãâááââàâãâááâáâãáâäãâääæçæìëêìííåçìêçåäâàßÞâçØÔÔÒÑÐÍÌÌËÌËÉüµ¯¦ž–Šƒ}yw ".<FMSX^djpw…Œ”ž¨±¸¿ÆÇÇÊÑÒËÌÍÎÎÏÑÒÒÕÕÖ××ØÛÛÙÚÚÜÝÝÜÝÞÞÞÞÞéëáàáßßàáááàçñíââãããâáããâääãäæääääååäåæèååðçèååãåæççææççæççåèêèæææèêéâÃOéæèèççèèèèèéçèéèìéèèéééèéêèèèèéêêêêêéêçèéêééêéêëëëêéðúëéíôëñíìëìëëêééêêëëêéêéãêêëêêêêéêéééêêééééêìèêëçèìììîëêêëëêêêéòúîëêëëêéíYëéëêèèééééêéèéêéçêíóèèæçèæåèèèéêêèççéîæèêééèççèéêèççèéèèçææèèççççéçççææçæææææææçèçææåääååääãâãââääâáããâãääãæââââââáââããããââèðææêêéëíïðôú ññìèèåäâàÞÞ×ÕÔÒÒÒÏÍÌÌËËÊÇÁ»µ­¥•Ž‡‚~z *6CLQV[ahmtz‚Š‘š¤®¶½ÃÆÇÈÊÊÊËÍÏÏÏÐÑÐÓ×ÖÖ×ØÙÛÝÙÙÜÝÝÞÞÝÞÞßáåãçáàâááááááçíçáãâãæäâããäãâýóäçåäæåçêèççääæåæäæååèìèååææææçéçéçèççèìå`%ëèèèèèèççèèèééèèééèèêëééëêéèêìéêééééêêéêêìêêéêêêëëêëëëììííìøîììììðìéëíêéëëéê$éëìêêêìëìëêêëëëìëêêêêêéêìììíðîííììëëìéóþñëêëìïëêßëëëììéêêêëëêêéêêéééêîéèèééèçèéééêêèèéèêçèééêêéèèéèééèèèèèèèçèéêçèæèèèèçééèéèææçèééççèæåäåãääæääåäâãäââãâäæãããââââââáâãååäääãñ æéëíîñôô÷û ™XõöúþòêèãàßÝÙ×ÕÒÓÒÐÍÍÌÌËÉÈÅÀ»³«¤›”Œ†‚} &2>HOUZ`gmsy€‡Ž˜¢«³»ÂÇÈÉÊËËÌÍÎÑÒÑÒÒÓÕ×ØØÙÛÛÛÝÛÜÝÞàÞßßàáæáäâäãâââäåäçìèäæååçåèäæäääôïåææææçèééçæåååçææçæçééèîìæçèçèèèèèèééììêéôðëðîéééééêèéêéêéêëêêêêììïøñêëíîêéêìéêîééêêéêëííìëììëìîíîíëíëîííòîíùòëìîöõêììéjèêëëëìïîìëëëìëìíëëìëìíìíîíîîíîîíîíëëîíëïîëëëìïëìíììëëìêééêëêéééééééèééèèèéèééèèèèèççêëçèèèèëéèèèèëêèééèçèèçççèçéèçïõëèèèèééèèèçèçééççççæåæääãåãåìèâãäåäâããäãââáááâããââãåæääääçìèéìîñõøúý wMþÿðëæáàÜÛÙÕÕÔÒÐÎÍÍÌËÊÊÈÅÀ¹±ª¢š‘Š…€ ".;EMRX_dkry~…—Ÿ¨±¸ÀÆËËÉÊËËÎÐÐÐÑÑÓÕÔÖÙÛÚÛÜÛÛÜÛÝÞÞßáááààáâáâæãããâäæçåäåååäåçåçåæåääæååæåæçççæææææçææçåååæææææééææçæçèçèèçèèçèèèåççþöèéèèéêèéêéèèèêééêêéèêëêêëêêêéééìêèéééêðíë÷ñêêëëëêêéêëéëéîêíðóîìïîêì  èììììëìéêìëîííëìêêééëëíïïííîîìïðîîîííííðïìîïêêëëëëëëëíîìëëêêêêéêêééééèéëééêéçéèèéêééééêèíòêíçèèèéêèèèèèëéççèèçèèçççæçèçè6¿áèèêèèèçççèèêèèçèèååæäãäåãáíøîâããäââãâãáâáäáâåæäãäåääææåæèêìïñõüþ  þôîéâàÜÚÛ×ØÔÓÒÐÏÎÍÌÌËÉÉƾ·±¦Ÿ–ˆƒ )6AIPUZagnt{„Š“¢®®¶¾ÃÆÎÌÈÊÌÌÎÑÏÐÐÓÖÔÔÖØÚÚÚÚÚÛÝÝÝÞÞßÞßááæààááàáããâããâäåäãåååååæäãååäãäääåæååæççåæåçèçæçæääåæçææææçççççççéèççèéèéèèèèèîìëêèéééééèëëîëêêêëêêêêéëëêêêëëëëêêìëëêæLíëëëëëíìêëëëêëëðëììííîëðïëìíììëììëëëêëëìíìëëëêíëëëìñöóðîîïñòîíïííïê'èìîîëëëëëëìííëêëëëëêééêéêéèêéëééëèèééèêëêêêéêéìïëêéèéíêéééééééééèééééééì÷èéééé/÷çêéêïæãéèéèééêêééèèæåääååääæèççèääääääããååäããëçäååäåææèçèëîîñõúÿ (01) ÷ðêåáßÜÛÛÚÖÕÓÑÑÐÏÎÍÍÌËǾ¸¬¥•ŽŠ $1=GOUY_flsy‡’™¦¾·ºÂÅÆÉÊÊÌÍÍÏÏÏÒÒÔÚÖØ×ØÚÚÛÛØÙïüéÜÞÞßààáçáâáâáâãâáãääããâäèéèêææååäääæåäåæååææççèèçèèçæççååæççèééèçììçèêíéèéèéçéèçéééêêòðêéçêêééêîíëëêéêêëéëëêêëëëëìëëììëëëëêéòôïìëììììëëííëëìíòìììíïíììîíìììëëìëëëìëëììíìëëëìòðìííïððòðïïõñîîðïñóî=èìðòìëëìíìíìëêìðíìêêëëëéëèåëëëêêêéééééêêêìëééèèéìëéêìñëëëééééééêêêéééêêìðééêêêêäéìëëê鹩âèéêêëîììççèèçæåæçåååääåææääæãããããæçäãäååååååçèêìêìíñôúý !-@WjgQ=*úóîêæãßÝÛÚØÕÕÓÓÒÐÏÍÌÌËÉÅÁ»³©£›”‘ + ,9DLSY^ekpw~…– ¨°½ÁÅÈÉÍÍÍÍÎÐÏÎÒÓÔÓÕØÚØÙÚÜÛéì#ýÛßàááááâäâáâäãããããäääããåéêèêæèæçåååçåååååæçççèéèèèççææççæèéèèéêéèêëééîóêêééèéììéêêêëëðîéþ ðììëëìíéêëêêéëêëíëëìííìíìíììììíëìëìïíìîîíìëìîìììííîííííî ÷ëìïïîííìíììììììììííìëëììðïîïðòðïïíïïïëíïññññôóíêëíííìííìííììëëêîóïìêëììëêèþìêìíëéíêéèééêêêêêéèèèêìéêëìêëêèåèééèèëìêéèéêêééêêéêêëéêêéêè‚sçéééééìëïþëèæééçåååäåååæäãääããããåååäâáãåååååççæèêëîñöü&WžÐüí´p8 ýôîìçââÜÛØ×ÕÕ×ÙÓÎÎÎÍÌËËÈľ·°¨ž™” '4@KRV]cjou|‚Š“¥¯·¾ÆÈÌÌËÌÍÏÐÐÙåÙÔÔÖ×ÙÚÙÜÛÛÚúIÛãààààâââââããâäåäãäääåååääåååææåææææçæææåæåæçèèççèèçççççéèèíéèêèçêëêèéêéìðêééèèéêëééêêéêëëÜæçëêêééêééêêêìëëíìêëìîîëëììêìíìíìëêëììíîîíìííìëëëìñðòîììíñïíììíëíîëììîëëëîêëëëêëííìííîñòïîîîííðíííïññîíííììîíííììîìììëëëëðííìëëëìëêæ 0íéëîêëðìêéêêêéééêêèèééêéêêééêéêûèêééëëêééêêêéééêèêêìêíìëêêÿþêééêéêêå ¤óæççççáâäãåååååãê÷ããäâååääääæååææçèèèéííðóùþ8s)Õ0f¨F%ÿðìçáÞÜÛÚØÕÖÕÒÑÐÏÎÎÎÌÌËȽ¸®¤• #.:FMRX`gmrx€‡˜¡«µ¼ÂÆÇËÌËÌÎÎÏËý5åÓÕ×ÚÙØÙÜÜÛÜÜÚÜßááàáàáäââáàãâäãäããæåææååääåääæåååæçéæççæèææçèççææéèçççèîêéîéçééçéëêèééêëëééêéëéêéééêéèéêêã5eëîêêéèëéèêêëëëìïíêêìîíëìëììíïøîíìììëìïñòïííîîïîíòöõóñîðìïøõíììíïíëííììíéêëëêëìíïñøõðññðïïðïìíîïðóððîìíííìíîííííëííõììîìïìëëëëëìëêëïîëêêëëíîìëêëêèèééêêééêêëììêêêêéë.ÿçêêêêêééêëéìóéêéèëêêéëêééêææêééêêêêéþ„Iïçèçæä +ãäååååäãèíæåäãäåâäåæçååèèæççâ Z ïôû +'K¦ ’ãÃÞÏX+ùñìçâÞßÝÚØ×ÖÓÔÓÑÐÏÏÎÍÌÍËÇÁ¼²«¤›)6BJQW]cluw}„•Ÿ§°»ÂÆÉÈÉËËÏÑÐÑÑÕÙÕÕÖ×ÙØÛÚÛÜÝÞÞÞÝÞããáããàááãââäãâãäääêèçåäåäääääææåèèèèçèççèçæççèçææèèçèèèëêèçèèèìêéêêëëééëìééêêêêêêéééèééééëåßéìíìéêéêêéêêêêêëíìëêëîìëêëìíëíñìëëìíììðöúøñîòóððîöðîòðïîîíòòíêêîðíîíëíìëêèïìêéìììëíïðïîîíîïîííîíòôëîíìëìëìíìììïòëìïìí÷ðëìëìîíëêêêíîéëëêêëêëêëëëëëìêééêêééêíñðéêêëêêôïëêëêêëêêêëêíóëëêëéêêêééèëëêëêéêëëêììíéèéêéèçã0äåææååååææçæååäåäääææçççèçèééóõîö ,U½Ô½õÆßÍX-ûñìèäßßÜÚÙØÖÔÓÓÒÐÐÐÐÎÏÏÍÊÄ¿¸°º¢$1<FNT[agnsz‰‘›¥±¶¼ÃÇÈÈÊÍÎÍÎÐÏÑÓÓÓÔÕØØÜåÞÛÛÞßßßßßââàâááßÛâåäæãââããåæåååäääääååååæëéèæçèëèææççèçççèéèæäçèçéçèéåçíêéêéëìíëêìêêééèéêëêêééééèèëìëêêëìëêêêíëëêêêêêëëëëìëìëêëìíììêëììììïüëïDLéîðòðïðúž ðíîîîòôïìëíïìîïîíìêëììííëëìíïññîîïðïíîîîîïïïíîìîîîíìííîîðòîîìííìííñìïîííììííìííîîìëìíêêìêìíìîòïìêêëêêêíðñéìêëëíòïìëëêêììêêëëëêëëììîíëëëïëëêéëêêêêêêëëëêëéêéççåþöååææååææååææççååççææåæççåæççêéèíðõû +*L§£uš8]–E"ùðìåâáÞÝÚÙÙ×ÔÔÔÑÏÏÏÏÏÎÍÍÌÉÅÁ³«¤+7CLRX^dkqw€ˆŽ™¢ª´¼ÂÇÈÉÉÌÐÔÐÏÑÑÑÒÔÕÖØÚÛñþæÝÞÞßàßßàãåããâàìþñ åãåãäèåääääååææääåçææçëèêèèîòëçççêìéçèèèçîééééçêéâæèçèèðóíííêéêêêêêéêêêëëêêéèéëìëëêêììëêëíëëëêììììëëìëêìíìîîëììêìììííñüó•Í-êîïïðïïóGÐ5îìñðîîðîíîîîìíííìêéêììíîìíííîïïððîíîïîîïïïíîîðïîíîîîíííëý ñðîíìíìëìëììííììííìííïðìëìîíêêìêëëëëïðìéëêêêëêëëîíííëððéêëêëëìëëíëéëëëìíðñëéëïëèéêêéêêéêêêêêêìîëéççêçååççåååæåååååççååææèæååææååèéèêëïïõ÷þ%>‰Yj#¼h0ÿøðëåâàÛÛÚ××Ø×ÖÓÒÐÏÏÏÍËÌËÊÊÇÀ·±ª&2?IOV[ahnu{‰˜’ž§¯¸ÀÅÇÉÉÌÌÏÔÔÑÑÑÒÔÔ×ØØÙÚÜÝÞÞÞÝÜÝßààããáâáÙG!.Mæäãåãïéäåååæççååäåæææèççòìçòêèëéìñëçççèæö)íêìèèéêêééêêéîéêëêêêêêêèéêêìëêêêééëìëëëêëëìêììëëììíîììëëëêëëíìííìììëììííííñó øïîîïðîðñŒ ïíñîíîðïîðïííííìëéééíìîíëîîîïîíïïîïñðïîïïñïïñðîìîîìëëìíìõÿóññììíììììíìíîíððíííí÷ýëìëìîìêìëëêêñîëëêêëêêìëêíõïïïêíöîêòïëëìììííëéêëìëìêïêêêéééêêêêêêêëêêéêééíêèççêéçæêêæåååçêçæååææåææçæååèéçæéìéëìîðóöý9Yr“{X=%úõîëèãá@ïØØ×××ÖÓÔÒÐÑÏÍÌÊËÉÊÇý·± ,:EMTY_ekrz€‰“™¥¬´ÄÃÇÉÉÊÎÍÍÏÑÐÑÒÒÔÖÖ×ÙÙÜÜÞÝÝÝÜÜÜâåãååãââÞ*Àäååäääåèæååäåçæåæææçæåææçíêéîìêèóïæççèèçèééêëéíèèêëééêìêìêèêëëéèêëêééëëëëëêêêéíîëëëëëëíìíììîç÷ììëëëëëìëìììïîìììíììííìíïìêîïíîðñïïññàñóïïîíîïîîðïíííííìëéëíííìîíìííììííïðñòðïîòñïîììíìííìëìííìíîïðïíìííìîìíîíîîíìíïðîý ëíííîìíìëëëìðîìëëëëêëììêëîììëëëïíëùìììíìëëëêêêëëêëêéììêéêêêêéêëêêêëêêêéêêééèçééèêéæçççèìèççæææåçèçæååèèççéìêêëîðó÷û ++17?A:, øóîêæãáÿäÚÚØ××ÖÔÔÓÒÑÐÍÍÌÌËËÈÆû´'4@KRW^dipv}…Œ– ©²¹ÇÈÈÊËËÍÍÎÐÒÑÑÓÔÖØ×ØÚÚàÝßàÜÛÛÜßâã ðãæåäèðéäãääãäåäåæääåååååççèçççççìéèççççéééççéèèéëééìëìéêêêéëëëëêêêëêêììêêëìêëëîììëìëëëíòôñììììîïìïííòùììëëëììììíïíïîëììïîíííôòððïïîíîîñðïñòððóðïîïîïññððïîîïîîìììïîìëíííííòñììîïîïððñðîìíîïíìîíììííîííîïððîíîííïïïîïîïîîïîððìíîîñìííìíìëëîìíîíííìíííîììñììîíîííïý÷íììíîíëëëêëìîíìëëëììììììëêéëëëêëêëëêêëéêéèêëêèçèéèèèèçééçççææçèçççççæèéééêëíîò÷ú $! ýõðëèäãàÝÜÛÛ×ÖÕÕÖÖÕÓÑÐÎÎÍÍÎÏÉÉÆÀ¸.<GOUZagmtz‰“ž¥¯¼¿ÅÉÉÊÍÌÍÏÑÒÑÒÓÓÔÖ×ØØÞÛÝáéÛÜÜÞàßàêñëääæäåáåååãæçìêææææææçæåêñïìçççèëçêçèèèèèéêèèéèéééëêéìëêìêëëíìëìëðòìíìììíïëììëìñíìììííìñôôôíîííïïíïïîúýqóëíííìììììíðííííììîîîíîóòïïîîîîîîñòíïñïïñòñòñðñññò÷õïïïîïîíííîíìîíïïïñðíííîîîòóðïïðíîîìíííîííîíííðóïîîîîîïîïíïïîïïíííîîîðôìîííïìíííëìììííîíììííîìííììíìííìîîííììîîíëêëìêìïìêëëëëìììììëêèêëìëêéêêëëêéìêééééèèêëèéèææçéçççèæææêéæçæåæèèèêìììîóùÿ þû÷òð÷èâáßÝÛÚÚØÖÕÔÔÕÕÓÒÑÐÐÍÑÏÎËÍËƽ5CLRW^dkqw}…˜¢ª´¾ÂÈÌØÎÌÎÎÏÑÒÒÔÕÔÕ×ØØÙÛÛÝÞðàÜÞßàààßáåçæãåæäåæåäääææåèçæèçæææææçèçççæçéêéçæçèéèèéééêêéèéêééîìëêííëëììëé +ëîíëìó÷ïíìííííîîìîïîîíëìîîíííîîîðïüN—÷îðííííííììîîíìíìíííííîíïïîîîïïïïñðîîñîïïòòòðïððñóõõñðîïïððïíîíîîîîîðîííííîîïïïîííðîîíííìîîíìëýíïïðîïïîîïïðíîïóóðîîîïïîîîííííìëëëíïíìëëììëëìííðîííëíìíííììíííîíìîìêêëëëëëëíëêëëëêëëêëêéêêëëêéëêëëêéîëêéçèéèèêéêççæççççæéææåëéåææææèèèêíìììðõùÿ  üøõñîðüéâßÞÛÛÚÚÙØ×ÖÕÔÓÕÖÒÛþúÑÏÎÌÍËÈÂ>HOU[bhov{‚Š“¨°¸¿ÇÍÌÕÍÌÏÐÐÑÒÔÕÔÕ×ØÚÚÛÜÜÞÜÛÚÜßâääßÞáãåæãäåäåçãääæçøææåæææææçæçççèèçèïíéèèçêêèééèéíîêêêèéèéêëëïðíìíìëë÷ùìíðíëîùóëëðíîíîíìîîíìëíîîïíîîîðîðïôìðóõñîîîîíïîîïïíííííìîíííîððîïïïðïïïïïïòòðïðððððññññððòðïñðññðîîíïïññïîîííîïðïñöóîíîíïîîíîîîòðìëòíîððììðïîðîîîðòñïïðîîïîìïñîîîìëìííììîîíííìëìííîííëîîîííîíîîîîííìììììîìíìêëîììëêììíìííëììëëëëëìëìììéëêëêéêêéèéééééçççæçèêèçæçèçæçéçéëìêìîííïòó÷úüþÿþþû÷õñîëêíçãáÞÜÜÚÛÚÚØ××ÔÔÖ×ÕØöÏÎÏÍÔÑËÇDLRW]emsy€†Ž™¦®µ¼ÄÒÌËÌÍÍÏÐÑÒÒÔÔÔÖ×ÙÛÛÜÞÞßâÚÚÜáâäâíéáãæåâäæäçæãåãéçõëåçèèçæççççææçæèçèçèèèêèæççééçðùñêéêììéêêëìí ûîïñîííìììëìíìëëêíîîïîìíííííííîððïïîîïðîïïððïïððñðïîîïïïðïîíîîîííïïïïððóóïïðððïñïïòôñóòðñóóòòñòóóòòóññññññïïððñòòðïïïïðñïñôôñöðîðïïïïòòòðîî÷üòðñîÿO7ôïñðïðñóóñúùïïðñîðîïðïñïïîïîîïïîîííîïñïïîïðíïóñïïïîïððïîîíìíîíîîììîííììîïïíïðìììíëìëìììììììéêëììêêêêêêéêéèèèèèéêêêçæçççééèèëïêêíìíîíïõööøùùù÷õóñïìçñæãáÞÝÜÙÙÙÙØ×ÖÖÕÕÕÔÒØÝÏÏÐÎÖÑÍÊIQW\aiqx~…Œ”Ÿª³ºÁÉÒËËÌÏÏÑÒÓÔÕÕÖ××ØÚÛÝÝÝÜë áÛÞàããàçæãäççäææææææçåæçåæææééèèééèèçæôíéëêéééïëëêééééíïéêìíëìíîîñïîü÷öóðïííîîîíîìíïìíôîïîîîïïîîîïïðñññíñððððòòñïòòóñðððïïðððïïïïñïïððïðññûüïððïððññðñññóóôôõõóòòóôôóôôññððððððððïðóñïïïðñðððïññóðïïîîïïñðððîïðñðððë Ì¿öîðïñððòñð÷÷ïðññöúïïïïïîóðîììïííîîîíîîíîïîîîñîíïïîïïîðñðïïïîììíííìëíîíììììíîîíìëëêêëìëìêêëëêëééêéêéèèéëêèèèéççççèèéêèæææçèééçèêéééìëìëïññòóóôôñïîìëìèð åâàßÝÜÙÝÚ×Ø×Ø×ÖÕÔÓÒÒÐÏÐÐÏÑÏÓÎNTZ`fmt{ƒŠ’›¶Ò·¿ÅÉÊÊËÍÎáÙÔÔÕÖØÙÙÙØÚÛÜÝáôèûáàßßáààáãååèéæåååæçäåæççæçææçèçæçèèéèéðêèéèèèéìêéèèèèéêéééêëëëëìíïîïó +øóòîïñîïîííîíìí%úëíïððîíîïððïîòdùïòððñòððððððððððïïðððððîñðïïññððòúúñðïððñññððïðñòöõóõôòòòòñóòòòõðóòîñîðïïïðïîïïððïïïïïðîïîðîïððïðïððïðïððïïüA@óððïñððòñðòñððððñðïïïîðîððîíìîîîîððîïïîîñðòòðïïðïïïïîîïðöòîìîððíììíîìíîíîîíìëìíìêëëìëëëëìëêéêëëéêêééëíêéçèèèççèèçíêçæææèééêèèéèéëëëìîìíïïïñïíìêèèìëçáâáàßÜÛÙÞÛ××××ÙØÖÖÕÔÓÒÑÑÐÐÑÐÓÐQU\bjpw~…–¤Ìë»ÃÈÊËÊÌÎÏáÙÓÕÕÕØÚÙØØÙÛÜÝãõàÛÞáßßàÞàâååæèéçåæçäêüææçææççææåäéêçèéééééèééçèêéééééèéêééëëìîììíîììòðñóžËëòñïïîîïîñíñîîîñöïíîîîññðïðññî÷ÅñóòñóòñòòñðññïîòôñððòñõðñññððöóñóòòôñññòññòñðññòõõôóòôôòòòòóòñòöòôòðñïïïïïïîððïïïïîîïïððïððïññòñðïïòòïððñññðçëññððñòñðïððñòðïïïðïïïîïîïïñîüîîîïðîíïîîðñðñïïððîïòñïïòæW:ûäîíîïîìíëîììïíîñîíðïîìíìêëììëëêñîìêéëëéêêèééëíèèèíêéêçèéûïæèççççêëèçèçéëéëìëêìííìíììïìæçèèçæáàßÞÜÚÚÚÚÙ×××ÚÚ×ÖÕÕÔÔÓÑÑÑÒÐÐÐUYbiot{‚‰’œ«ÀÃÁËÊÌËÌÔÐÐÏÒÔ×ÙØ×ÙÚÙÙÚÝÞÞàãáàßßßàààâãåååçèèäæçäçõêêæçæçæååäãæèçèèéêéèçèêèéêêèééëêéêêêëëìïìíîíëíïïñöwŽqîòðñóñîðîïïîîíïîîîðïïðòñïïðñòðóøðññññññññðñññðîôüòððñóòñòòðôôñòññòñòòòôôòññóóòõóôôó÷öòòòòóññððóóîðòñðïïïððððïððïððñðñòðòððòðóóñðïòòððððññïðóòðñôôôóñòñðòòñññïððïðñîðòññíñðïððïïïîîððððòïñðïïðñððñí •~ìðîïïííîïïîíïîîîííððíîïîîìììíëëîïíëêêëëëêçèëìêèéêñééìèèçòìèêéèçèéèçèéêêîééìêèììëëëéëðíåååäååáààÞÞÜßÝÛÚÚÚÙÚÙÖÕÕÕÕÔÓÒÒÑÑÏÏÑWaluux†—¢«³¼ÈÑÊËÊÍ×ÒÏÑÒÔÖÚÙÖØÚÛÛÜÜÜÞáààááãâÝàãååäæçåçéæäãäääìíèççèáâååååèêéééêêêéìêêéêëîëéëëêëììííìîíðîììíïïñöEHöòððïïðïïðïîíðïñóñïïïïðððïðôóñóõôôñðõóóôóòñððñòòñðññòñóòøñòóóñòòõõññòôòóôòóóñòõöóòòòóóóóóôóóññòñòõððòññðïððððððððñòñòññóñòòñññññðððïðñññðññððòòñóôóôôóóòñòòòòòððïðïñïððóïîúñððñðïîîîîñïñðñðïðïïîïïðððöóîîîðîïîïôõðîíîííìíîëóýõ÷ìëììêêéìêééêêëëêëìëêééêêêèèèèèèêëéèèéêèççèéêéðééêçèêëêéèèêééîëåääâáãàÞßÞìæÛØÜÛÙØÖÖÖÖÕÔÓÓÒÒÑÒÐÏÐZhp~}|ƒŠ”§°¹ÁÆÊÊËËÎÏÐÐÑÒÕÕÖÖØÙÙÚÛÜÛÜÞáßßàâæéøëáåæåæéêêèåâãäääèéèçççûãæçèéèéìéêêêêìêêéìëïëééêëìëéììêîïíìîðñý÷ðïôõóñïîïïïïîïðððîðññïðððñðïðñðððòòññòòòò÷ôñðððñóóññòñóöóññððóòòòòòöôðòóòóóòóóóòöóòóóòññññòòòòôóòóòóñññðïïððððïðððññðñòñññññòñòòñññððïïïïððòóññññðñññòññôóóóòñññòñðòõòðïñòðïòððîîðððïïïïðïððîðñððïðïîïïïîïððíìððíîïîîííï÷ñííïïîìííëìè¤_êìëêìëêëééèéêïðéêéêéèèèééèéçèéèêêééëêæçèéççèèççèèçèçéççéèèåíûòãããáâíàÝÜÝëèÛÙØØØ×ÕÔÕÕÕÔÔÔÓÒÑÒÑÑÑ^gs†Ž™£­µ¾ÄËÉÊËËÎÏÐÑÓÔÔÕ×ØØÙÚÜÛÜÝãçÞàààáäëš7ééæåäíòêæãäææåæååçèçæÿâèííèæèëéêêêììììêëììëêêêëéòêõêíïíïíïó%õôóññóñðïîîïñïïïïïðôòñðïïðòðïïðñðññòòñôõóóõôõôòòôôññòóóòñòòòñòòôôòòóóññòóôôòóóóôôôõóóòòññóòòòòóòòóôòòññòîïïïðññðððñòòñòóòñíôòòóòòððððñïïïðññòòòðòòöñóòñòòóòòóòðñòòðòööòðññóðéëðñððððïïïïððñðïïðòïðïïïððïðððñðïîïñîïðîïííîï ùëíîîììîîíêôíìêëîëììêëëëêñòêêêêééèèêèíêèççæèççòöèèèççèçççèççææèðíéçåæäããäãáâäöâÝÜÞÙØÙÚÚÙØ××ÖÕÔÕÕÔÕÕÕÖÓÕÖÔbhry~„‹”ž©²ºÄÌÒÊËÌÍÏÎÐÒÔÕÕÖÜÛØØÚÝÞÜÞèòßßàááãçµ»§/Þæåëíæçäæèèíëæåæêéçîéåèîîèççèêëêêìëìììëíëëëêììéûñììéìíîíðìíñøññõùîðñïîïðñððòñïðñòóóòððññððñòòòòñóøóÿõóúüõñòóõôóôòòòóññòóôóòòóóôýùó÷÷ôøúóôõöõõóôóñòóòóôóòññòñòòóóòñðóïñðïðñòñðñòóóñòòò ?ôóôöõññðñðñððñòõôñññðòóÿòóóòóóòòñòòñòóñòö÷óòòòñòðK:üîòñððððððñðññðñññðððñññðððððñïðññððïïïððïîîøñìðïððííëø òìíïíììïììêëêíìëíìíðíìëêçèéèðèèéèêëêêæ+•dìéèéèèæééèæççææãææåååäâââãäëââàáÞæÞÙÚÚØ×ÚÛÖÖÖÕÔÕÙØÛÕÚÙ×ek|‰…†™£­¶¾ÅÊËÍÍÍÏÑÐÑÑÒÔÕ×ÚÚÙÙÚÜÝÝÞßÞáßâãããåÎXÚæäãäççåæçèðìæçíêééæâæèèêêçèéëëëëìëìììììëíîìììíìëîîííííîïîðîððññðõúïðïîñòòïðñññðòóòòóòòñððòóóóóññô÷óöõóõ üñóôõõôóóóòòóòôóóó÷öôø òicîôöøþõöõôôôôôöõõõôóòóóôôóñòóýòûòññòñïðóòñòñòòï#§òòóõòñòòóòðïñòô÷öñòóðñóüòñóôóóóóòóôóóòñóõóóòóòñòðL<üîòòññðïïðññððññòðññðññðïïðððññðòññòïïîððîíîíîíîïððïîíðöñïîîíìììììëêëëëêêìîîíêéèééééîèéèèéïîëéíøûõéçåçæçééææçéçäãäääéêäâäãàâëòëßÛáìÙÛÙØ×ÚÛÖ××ÕÖØÖ×ÔÔØÔ×io‘°™‰•Ÿ©²ºÂÉËÌÏÐÏÏÒÑÓÒÕÖÕíéÙÚÚÜÞßßßßßàáãâããäèêèèçìûäçéçäççååçêôëèêêýöçèêêèêëëêëììííìðíììîðíëïñííïîîïíîïîîðîðððñòóõþúïðððóñððñðñòòòññóõôòñññóóóôóññòôóóôòóúøòóõôòñòóôóòóòóôôôôôóôõôô÷ò`iìóòóõóõóõóôõôóóôôóôôóóôôóòòòóõóòðñòòôòñûüññòóôõðõóòóïñòõôóòïðòòóóñô÷óóññòñóõôòòóòòóóõöôóóóóñïòóôïñññòñññðððïðññðñññðññññññõôòòññòñðïññððïðððïîîïîîîïïïïïîìðûõîííìììëëëëéêëëîîîíëîêéêëèìêéëéèêééèçèèèèçæçæçêêèååçååæçæååæçååâãäáàåñçÞÜèàÜÛÙÙØ×ØØÖ××ÖØÛ×ÙÖ×ÕÔ×kp —‡š¤¯·¾ÄËÌËÍÐÐÓÑÒÖÔÔ×ÓÕÙÚÛÜÝÞÞàâáââáãäææçææåó#âçééåæçäàæéëééêð'ççççéëììëíìíïîëðïíìììììððíîïïðïîïííîíïðïïðòññóòðñðñòðñññòñòñòòóôôòññòóôóòóòòôñóóõôóôõöõôôôôóñòóóôóóôõôôõôóóôóôôóóöÿÿóóòôóóóóóòô÷ôóóòôò ÷óòóõôóóôõóòóòôóûí!(ðôöò÷ùôóóóññòöõòñïðóóòòòó÷÷ôôóòôôôöóòóòòóò÷üøõôóöûóóöñññòòññññòòðñòñññóñóòññòññôôóòññòøÿðòöñððññïïïîððïïîòóîïïïøîíîíìììëëêêêìíííìëêëëêéèéééêìêèçèçæçèçèééæççèçèæåæåææææåããääããäãáââáßÞßÝéàÜÛÛÛÚÙÙÙ××Ö××ØØÚÛÞÛ××qv…Œ•žª´»ÄÉËÌÍÎÐÐÔÓÒÓÖØ××ÖØÜÞÞÝÞààààáâââäãæçäåååææååçééëæåçòêééëëéðêèèéëìíîíîíïððîíïïîíìíîíîðîîïðîîðíîíîïðññðòñòóòòñòóðñóóòóòóóóôóóóóôôôõöóóôôôõôóóöö÷ôôö÷õôôôóòôõõôóôõþõõö÷ôôôôõôõöõïð÷ôóôöôõõôòôõóôóô÷ö÷øõôôööôõöõóóó÷òòóôóòõõôôõó÷ôóõööòòóõôòòòòóóòòóôõ÷øóô÷õóùôòóòóôôóö÷õõó÷Góóðóòòòòóòòóòññòòðñðñôôóóññòòñïðòñðððü5LëòóðððñððñïññóòïïññïñòîïöïîííðììëêëëêìíìëëëééìéêèêééëéêéèçççñöêèçèçæèèèæåäåäåæåääääâáâããâããâáâßßÝÝÝÜÚÛÜÛÚÚØ×ØØÙÙÜÛÙÜàÛ×Ösz‡“š¤¯¸¿ÆËÌÌÎÑÐÐÒÒÓÓÕ×ØØØØáìèÝçñàââáãâââäååååååæçæææçêíèèé fïèêêëêéçèêêëìííííïììîîñïîíîîííîîîñòðîîïïïðîîîðððòñðñòòóòòñòóñòôòóóôóóòóòóóóôôôôôóóôôõõôóôôôõôõöõôôôóöùõõôôôõô÷÷õôõõìïþûóôí%¶©ëôóôôóôõõóóôòòòôööõôõõõööôõþöóò ûòóóòòôóóôõôõööõõô÷óòòòóòóôóòòóòòôôõöôôõôôôóóóóóóôôôóóôôóô Ióôòóòòóñòòòòõùõñ÷þòòñòôñòñòòóòððñðñòí<:ìñïðïðñòòñðõôôòïïððñóôñîíîîîíïíìëêëêêëëëêêêèéíëêëêêëëêìëèçèã ,èíéçãþ‡ðååååååæçåååäâáãåãâããáàààÞÝÝÞÝÜÚÛÝÛÚÙ×ØÙÙÛäèÜÜÚÙØ×v}˜ž™Ÿ©²»ÃÉÌËÍÐÏÑÑÒÔÓÔÕÙÙÙÚÛÛÜßàáçàâááãäââããååæåæçççæççèëçééëëéêêêêêëëêëìíîïííîðíììíííîîîîîíîîîððñðïîïðïïïðððòòððñòóóòòòòóóóôóóôõóôóóóôóóõöôôõõõôôööõôöôõõõø÷õóóóðó÷ôõ÷÷ööõõöõõ÷øñóøøôôðŒíôôõôõûööõóôõóÿû÷ôûõ÷õ÷÷ôõô÷õôõôôóôõõõôóöøõõõöõ÷õöõõóòóóóôòóôõõõõöööõùõööööõööõõôôõôóôôóôôîõõôõôóôòñòóòùÿðû óõòòòóòòòñóòðññòóóðþëññðññññññðñöôòðóóïòõôòóïïîïîìîíìëêêêêêééëêééééééëëêêééêéèèèæóüðèêæåäð(ëçäçääåòíäääææâêòâãáááààáÞÞÜÝÜÛÚÜÛÛÛÚÙÙÛÚßðíÜáÛÙ×Ö€€Œ”š¥¯·¿ÇÌÐÎÎÏÑÑÓÓÔÔÕÖÚÛÚÚÜÝáãÞÞááäâäéæåäåååæåæçéèçèèèêïééèêïêêëëëêëìììííñõðííîïïíîëçïñðïïîíîððïðððïðñðñòñððòòðñòòôôôóóóôôôõõõöøöõöôôôõ÷ø÷öõ÷÷÷õö÷ööõöõþö÷õôóúñôöûþ÷õööööö ú÷õööõõýõööö÷÷øööôôõôöùùø÷öøø÷øö÷öõôóõóú÷ôôõõõöõôõõõõôüôöõööõôõõõöõõöõôôôõõ÷÷ùúøøø÷öõÿúõööôõöôóóôõôõõõóóôóòòóóòóõÿÿòòñóóôòñòòñòòóòðòñòóòòóòòññðòòððïïïðòñðïôõïïòòïðïôïðîëïìëêéêêéêêèééèèéèççêêêéìéèéééççæãæççæãäåèçåãåäääèæääãääàïÿáááááÞàáßÝÞßÜÜÜÜÛÚÚÚÙØÙÚÞááÚÜÚÙÙØ€„Œ”¡«²¼ÄÉÎÐÏÏÏÐÑÒÒÕ×Ö×ÙÙÚÛÝßàààáàâåáãäñæååæçææææçççèèèêðêééêîêììëêêêìíìëëîòðìîîïïïï-ûîôñïïîïñïïððïïðññðòñïðïññòòóóòóôôôôöõöøööú÷õõöõõøþúõ÷÷÷÷÷úûõõöõõöüôöôôóø òõöùûöõööõ÷õÿüøõõõõöõòò÷õö÷øñòùöõõõôõõõõõööö÷öõõõõôóôóõöõôô÷ö÷öôöõóõõõùöôõõôôóõôôóôõôôôõ÷øùúúúúú÷÷ûöôõôõôóòó÷õõöôòóòóòòòóòóóòñññòõòòôñòññòóóóòñòñññòóóñññððôðíííîíîïðððððïîðòïíðôïðîìïîììëêééçèééëêèéèççêíèèìéêêéççççæåæçæäããååäåææåããääåäããâæêâàááàáóåáâàÞÜÜÜÛÛÛÚÚÙÙÚÛÝÝÛÙÛØÙÙÙ‚ˆ›¦´¼¿ÆËÍÎÎÎÎÐÐÑÐÕÖÖØ×ØÙÛÜÜÞßßààáâââæõçäçåéæççææçççèèéêêèéêëêêëëëêêììëëìîíìíïíðîðïžæþóðïïðïïðñðïðñòñóòñðïðñòòóòòôôõ÷õ÷÷÷ûøôöõ÷õööö÷üùõö÷÷ö÷ýüõõõõöõõòõöù÷ôóóóòõõõö÷õôööõ÷ö÷øøöôôõõööõõöö÷ô ÷âòõõöõôõöø÷ö÷öööõõôõóôóöôõõôôõö÷öóò.óõöõööõõôöõööõîIJööö÷öõ÷úýÿûøôõ÷öõôõ 6ôôõõ÷óôóóòóôòóôóõõóóóòõúôóôóôóòõóòôóôóòññòòóòïïññôðîïïïííïññññðïðòôñïñðïòïîùòîííëéèö÷çîòêëêéêéêìéêêéêêèçèèçææææçåãåææçæååååääååääääãâäääãàßåâàåàÝÝÝÜÜÝÜÛÛÛÚÝßãßàÜÜÜÜÚÙ…‹”¢ª¶¿ÂÉÌÌÍÏÒÐÒÒÒÿÚÕ××ÙÙÝÝÜÝÝßßßàááââãææåæäååéèåæççèèèèéëèêíëêéêëêêìêëìëïòíìîïïîððï öî ÷îïððïïðòðððñòñôòóòóóñòòòòóôôöø÷÷ùùúúüøøøöýúõôôõõööõöø÷öööööõõööøù÷õôôõöôõö÷ø÷÷ö÷÷ööö÷ööõõöõööõööööõ ôçôööõöööõõ÷÷÷ö÷öööõõöõôõõööõõøûöò/ôø÷øõööøõö÷øøøöÿýõö÷øùûüþùöõõööôúøýõõöööôöõôóóóöõóóóôôóõöôóôõôùúõôôóñòôóòñóóôóóüöòðñðñòðîíîðððððïïññðïïîðòïîûòðíìëêç +çîñêíêéëééèêêëëêéèççççççææçæäååååååääåãããääããáßãåãéæàßÞÞÞÝÞÞÝÜàßÜÛÚÛÛÛÜÜÜÜÜÚÚÝàÚÚ‰›¦°¸ÀÇÌÍÍÎÐÓÔÔÒÕóÚÖ××ÚÚáàÝáàãèâáââããåãçèæåææçååçèèèéèèêíéêëëëëêëìêëëììëììîïîïîíîðòïðð÷óðïððõõððòôñððóòðòòñùþõòòóóõöõõöøúûþþ~)ýöööþ÷÷öö÷÷÷öö÷÷÷÷ö÷÷öö÷õ÷õôöõôõööõ÷öøø÷÷øøöõôöööööùú÷öõöùûô÷þ21ÿ÷ööööööôþÿõ÷øøûöööõöööõõõö÷öõõööõõûÿõööøõööööõöö÷öõóõöö÷ùú 1PQ/þøöôôõööó7ùõöôõööõôôóóòóóòóóóóòòóôóóòôôòôóòòþõ÷õòòóóñûúñîîïðòðîííïðïððïïðñðïîíððïíííïîìëêèúýéêéêêêééèèçèééëêèèëëèçæææçæææääåäåääãäâããããããáßããâæäáâßÞßÞßÞÝÝßÞÛÛÙÚÛÜÝÜÛÜÝÛÛßÝÛÛŒ”Ÿ©³¼ÃÊÌÍÎÎÐÑÕÓÔÕÙ×ÙØØÙÚÞÞÞáááäâáâáäãääåææçìéæææççèéêééëîéééëìéL èìììëëìííííîïîïððððñï÷îðððïïïðððôñññòïïññ÷øóóòòóõöõöøùþ   ýTÿóöø÷øø÷÷øøùùö÷ö÷÷÷õö÷÷öõõôôõööõö÷÷õööù÷öö÷÷ööõöõõööúû÷õööøÿúøòòøù÷öööööõ÷ù÷÷øúÿ÷öõõööôöööööùøöõõõöõõöõö÷÷÷öö÷ö÷öö÷÷÷öö÷øúþ $V¸ÿ©Aúööõôõõö÷üüöøö÷ôööôôõôôõôóóôõôôøùôõóôóõûô#óóóìWDûóôòòôòñôüùòïïïóòðïíïððññððññòóñïîïïôïîìììíîìêííéëìêèêêçéèéèéèêêèèìòòêæçæçææçåææåæãåääãããããããââäãâãâáàßßÞßßÞÞßÞÜÜÛÚÛÜÜÜÛÜßÞÛÚÜÝÚÜŽ™£­¶ÀÇÊÌÎÏÏÐÑÓÓÔÔÓ×ÙØÚâÞÜßÞßàààààââããääãääåçæçëêçèéêêéêìîèéëíêêõììììíîïîííîîîîïïìñððïñïòòñððððððððñðñóÿ ôòñññòòòõöõööøû_ŠHüüûñö÷ö÷÷÷÷øùø÷÷ø÷÷öö÷÷÷ö÷öööõöõö÷÷øùùø÷ùø÷öö÷öööøøö÷÷÷ö÷÷÷÷ö%ýø÷ö÷øø÷÷ø÷÷öøúø÷øùú÷öø÷÷öõö÷ö÷÷øø÷øöõöøùúüú÷ùøö÷÷÷øøøøøøøøøúþZÙWv+ þüøöõõõ÷÷õöõö÷ööõõõöûôôõõõõõôõõù÷÷ôõöõöùöõôôñ15òôòóóòñòñòòðïïòòïïîïññññððððñòóðñïïòóðíìììîîìëëëìëêéêêæééêéêééêééçîóëçèççæåçèçæåæäåääæäãääãáâããââãááßßÞÞÞÝÞßÞÝÜÜÝÜÛÜÜÜÜÞÞÝÜÜÝßÛܨŸª³»ÃÊÌÍÐÒÑÑÒÔÔÔÕÔ×ØÙÛàÞÝßÞÞßáåëéääãääåääåæççæïïçéééêçæìîêéëêìììíííííîðñðîîííïððòðóðñòñðñòóñðú÷ðððñññø‘ ðôõôóóõõõöýÿþW™[×þûöùùøù÷÷øøøøøøøø÷ù÷øøøøøøøúø÷÷÷÷øùûüû÷ø÷øö÷÷ö÷öøüùøø÷öøùøøöûö÷øøùúøùúù÷ùúùùúùùùù÷ùùû÷÷÷÷øúùøùùù÷ úùûüúùøøùø÷ùùùøøøøùúúûÿ 'rÍÑv1úùøöö÷÷øøööö÷÷÷öõõõ÷÷öö÷õö÷õ÷öçµ óöõõöööôööõôõöôóõöôóôóòòòòòóòïîîïðïïðôùöñòòññòóòòòñððññïîììíëêëëëíêéêêéêééëééèèèééèçççæççææåæèçèæääããåèÛÚääèôõãááââáàßßÞÞÞÞÞÞÝÝÝÝÜÜÛÛÛÛÜßÝÛÜÜÝÝÛÛò¯¸ÀÇÌÏÏÑÓÓÓÕÕÕÖ×ÞÝÚÚÚÛÜÝÞßßâåæêéåääåäæçåæçèèæêëèêêä(­ièõîëëëîíííííððíîïðïñôïïðòñðññðñðòóóóóòôõòóòòóóôô ùóôöõóôöööô*üd߈êþúúúùøùøøùøøùøøøùúùøöøùú÷øøùøøø÷÷÷ö÷øúøø÷øö÷ööøö÷úù÷øù÷øùùùøøôøùùùúúøùùùùúúùùùøùúú÷÷øúø÷÷öøùùúùøø÷ÿøøùùùùùøúùøøøúø÷÷øøüþû?V> þù÷÷÷÷÷÷ö÷÷öö÷õõõôöõ÷õôöõõöøõõöõ!0ýöõôõöôöôôõôôôöõóóõóô÷óñòóðñòòññîîîîññý ðôóòòòòòóñòïðïïîíìììêëëêéêêêìëêìêêëéêéèçèéééçæææçææçååèèçããâãäâsyþÞìãàããáááßßßâßßßÞÝÝÝÞÝÝÝÝÜÜÝÞÝÚÝÝÝÝÝÛð ²»ÄËÏÐÐÐÒÒÓÔÔÕ××ßÞÚÙÚÜÝÝÞàáãäââããåäæëçèçææçççæçéêëè]8êðíêêìîìëìííïíìíîïîïðïïïðñïîòñðñððòòññððñóóññóòóòðóôóòõôôõôùö&F÷ü*r–= ýùø÷øø÷øøøøúûö÷øøùùú÷÷öø÷öö÷÷÷öööõö÷÷ö÷øøú÷÷÷÷úø÷÷ööøøøøøùøøù÷ùûøøø÷øøùúûùøùø÷ùøøøø÷÷÷ø÷øøøøøùøøùø÷÷øøøùúúúùùüúùùúúùøùøþûÿýûúø÷÷÷ö÷ööøøöö÷÷÷õöö÷öôöööýúõöøõôø÷öôö÷ööõö÷õöö÷÷ô÷øûõôôóóóóôóýôñðòôóô ïóóòóóòòóôôòòðïïîííëêììëëëêëìêëéêêééééèèèçííèæçèççæçåæåäåæäãäãßòÝèòòããåäâââáààäáßßãáÞÞÝÞÞÞÝÝÝÝÞÝÜÝÞÝßÞÜŸ¯¶¾ÇÎÐÐÐÐÑÒÒÓÕÖÖØØÙÚÛÛÜàãâßàáâáâãääååìæççèççèçæçéêìíëèéìëîëëëììîíííïííííîïïïïïññòñïñññòðñòòññññóõñòñóóóòóóôôóôóõõôöù÷ü  +þýúøùùùøúûùùø÷÷÷ùøøùöø÷÷ø÷ö÷øùøö÷÷öö÷øøøøþùøüúûúøøøøøøùùøø÷÷ùøúúøøùøøùúûù÷øûüýûùùúøùøùúúùùùúùùùúûùùúúúúúýüüüüüûüüûüûûúúþþüÿþüüúùùøøùøøø÷÷øøùú÷ø÷÷÷û÷øøùø  ö÷÷÷÷÷ø÷÷ý÷÷÷õ÷øö÷÷ôÿó÷ööôóóôóóòôõòòòóòðòóóóóôôôôööööôúõññïíììììììëëêëìëíêêëêêééêêéçíîèççèçèåçæèåååèæãäåç<KãäââããääããââáàáàààæãÞßßßÞÝÝÝÝÞßßßÝÞÞßßÞ¦±ºÄÌÐÐÑÐÑÓÔÔÕ×Ù×ØØÚÜÛÜÝâçãàáââãáÛåäæèçæèéèèèèèèéêíêæëëêìíðìììíîîííîîïïïíïòïïððòòóòðñòòòóóòòóòòòóôòòòóõõõóôóôôôö÷ööøûûùûþþýüúùúùùøùûù÷øøøùùúøùûøøøøúø÷øøúù÷úû÷÷øúúþ÷øùùùøùøùùøùùùùùùùøøøùùúùùúùùùúúúüú øùúûùúùûúüøýüûúúûûüûûüýüüþÿüýúþüüýýüüüüûûûýÿþüûý÷úùùùùùùùùøúýûùûøø÷÷øûûøø÷÷ùú1/øùø÷ùøúøù÷÷úøõöøöûü÷õõóóõóòôôõôôõóôõôóôôõöôôöö÷úúøøöõóóóñïðîíîîîííëêëìêíêêêëîìéèéêèèèéèçèèçèçæçäååçåääåçàÝãåääãââãããåâáàâáàáàáßÞßßßÞÝÝßÞßßàÞÝßàààÞ«µ¾ÆÎÒÒÒÒÔÔÕÖÕÑØÞäÞÛÜÜÞßàáááâãâáý/ãåçèæèèêèééèèéêëâUÖLæëììïëíîïîíííîîîîííðóòðððññòññïõ÷óòòòòôõòòóóñóòóô÷ùóôõôôôõõõ÷øöùýùüüüýüûüüùùûúùúûúùøùûúúùùüúùøûúøøøùùøø÷öûü÷ùùúùúøøùøùùùøùùøùúùúúøùùùùúùúûùùùùúúúøPFòøúüúùùúúùúùýúúúûüüûüüüûþþûþ, +îõýýûûûûúûúüþýýüüúÿ×Aû÷úùùùùùøúûùùùø÷öøø÷ùøø÷÷÷÷÷  ùø÷÷÷÷÷÷÷û÷ý4 ÷öõõõôôôôõýóóòôóôõ÷óóóôôñòôóòóóöøúþø÷õõðñðïîëìíììêééëëêèêêêèééééççèèéëêçåæçæèåææåäåäääääåãâãäåãââáââãåâáßáàáàßÞÞßßÞÝÝÝÝßßßßÝÝÝÞßàÞݯ¹ÃÄÈÐÒÑÓÖÔÖÕÚúÙäñäÝÜÝàÞÞßààâãâÞ\ãåçäæçççèêêèèèéêàdóSäêìëðììéîíìîðîíïðîíïñðððïðñòññöññòòòóóòñôóòòóòóõôóôóôôõõõõõ÷÷øùøúüûûúúýüúúüúùúúùøúùùøøøùùúøù +üøøûüùøøøøøùùøøøùøùù÷÷ùùùùùùøùûüüùùúùùúúøÿøùùùúüüùŠ}ïøøûüþúùúùúúùúýýùúúüýüûûúüüýýûý=X ûüûûûúûüûüüüüûúüúÿÎAûøùùùùùúùùøö÷ùø÷÷øøööøúøùøøù÷ö÷÷øøø÷ùú÷øûøû +þ÷÷ööööööõõóóõøôöõôóôòô÷ôôôóóôöøüû÷ôòòððïîííñ÷òéêëìêêìòìêêééíêççéêêèæçççåæææååäæåääääããããääââââââáâáâßàßáàßßßàßÞÞÞÞÞÞààÜÞÞÞÞÝßÞÞ³¼Ã âÏÒÓÓÔÕÔäFÞØÙÚÞÝÝÝÝÞßááâãâãçëçäçèçæçççèéééèèéìñôòêêìëðììéìííïðîíðñðïðòïïðïðððñðûòòñòññòòòôöòúòòôóòñóóöõôóôõõõö÷ööøùùûúùùúúúúùúúÿûùùù÷ 'ùûùúùøùøøùùùøø÷øùùüúøúùøùùùùüúøúúûú÷øúùùùùûûúùùüüûúûúúúúúõöüúúúûûüûüùüûúúûùúúúûûûûûûüüüÿýýýû(ºùýýûûûûüüüûúûúùúúþøúûúüþüùùùúúþûø÷÷÷ùù÷øùúùùùøùùùøøøûùùø÷øö÷÷õ÷ø÷øöõöööôóùþóóõýõõôóóòòóôôôóôõöúÿ'¥ýaüöóòñðîïîìëëëééêéìñêêèééìééêèççççèçåæççæååçãââåäããããâãææäââááâââááâáààááàßßßßßßßâàáççò ëáÞÞÞßßß·À¹ñÊÒÓÕÕÖÖØéÛÜÛÞÝÝÞÝßááãäâãããåêæåçìéæçèèèééêëëëëëìïëêëêîìëììîîîîîíîððððòòòðððïïðñððòóòññòñòòóóñûñóúóôùöôöõõôõôôõööõö÷úøùøùøùûüúùùöøúùùùúøùúùùøý÷üøúúøøø÷øúøùúúýúøùùúúúúùúúûûúúûüûúùùú ÿúùùýýùùûûûûûüûüüýþûûüûúúúúùûûûûûüüûûüþþþýþY? üýýûûûüýýüúüþûúûûüùùûûþÿüûûúûûÿû÷øùÿúøúúùùúúúùøøùúùûÿúøöøøøýûýùøø÷ööö÷öôôóòóõõöúôòôõôôóóóõõó÷ûøûýdÕ•øõòòðùíîíììëêëëëêêìêììíìêêëëêêèèééèæèçæåæåæäæäääåääãòôäãããâáãçâáäãááäãäâáááàßààßìí € ëâàààáà¼ÅÍîöÜÓÒÓÔÔÖÙØÖØÛÚÝÜÜÞÞßâââãããäåäåèæçæåææçèéèèéìïíéíðìíðëëîïëìíîííïïîïñïïïðôôññðìïïòññõôòòóôóôòðñóøûóôøóõùøõôöõõöôõöõö÷÷öùûùùùùùúýúùøT2óùùùúûüøøúýüüûüøýüúùúûúùùùùûúùúûûùùøøûþþûùúûü ùûúûúûúûÿ þúúùüúûüüüýþýüüüýüýþüúúúúûûüýýüýýüýþþþÿùùÿþýýüüýýýûûüýÿüýúüúûûûûúùûýüúûüûýþüùúûúûúúúüüûüûùùúûûúøûúøúùúüûûøøúù÷÷÷÷÷ööõõöõõóñôôôöõôóóôõõôõ÷÷ýU^ä®øôòòðõñíïïñòíëêêêêêééîìéêéééêëêèæèéèèççæååçåææéååæäãäæåãååäáâãæâáááàáçããâààáààáâåòéû^ óæáßßàßÁÈÎÑÒÓÖØÖÖ××ØÙÙÚÜÛàÞÞßßááâãâäåææèëíèçéçççèèéèééêëìëêíìôëìíñîíîîîîðïïñðïïïòõñññô +ñïòòòöôòóôôõõóòôöõòôôôô÷ôöõôõöõöõõöõö÷÷öùúùúùùùúûùùøf?óúùùúúúúûüýýùúûúüÿúúúüûûûûùúûüýûúüúúûûüýûûúüùúúüýýüüüüüûüûþþüüýýýþýÿüýýýûýýüûüüüþýüþþýþþÿþÿýÿþþþýÿþþýûýýüüüüþûûýÿþýùüûûüúúûûûûüýûúúúûúûúûüúûûþýûûûûûüûûùúúúùúùûøùø÷øûýùöø÷÷ø÷öõõõõõòô÷õõôóòõõôôóôö÷ú"]r,üöôññðîîíííîíìëéêêêêêíêðêèéèèêèèèççêéçææåæææçåèèååäãåääååäâââââãâãââãããàááááááàáïðãùááåèåæåãâáÃËÐÑÒÓÔÕÕÕ×ÚØÙÙÛÛÝÝßàßàáâããããåååæéåæçêéêéééêéêêéìîìëìëôëìëòïîîïîîîïððïïððñòððïôñõóóôóòòóóóôôóóôôôõóóôõ÷ôôôõõõõõôõõö÷õ÷öøøúýúúùúúùùù øúùùøüúùûúùøùùúúþÿýûûûûüúùùúúûüüúüûúúúüüûûûûûüüúúûüúûýûûüýûúüýýüýþþýýüýÿþýýýüüþýþýüýþþýþþÿýþþÿþþÿþýýüüüüûüýýýþûýýýýþûüüûûúúûúûüûûúúüûûúûûûýüýüûúúûüüúúûúùøùùùúùùûûøøúøö÷ö÷øõõõõôõôòó÷ôõóóóõôóôôõúþúüÿþþ÷õòòïñóïìíîíëìêêëìééèêéìèèéèçéèæèçæçååååäæåäææçèæäããäâãäââãäãâáããäãââåâàáàááàààßæõðàìáßäáàèëçãáÈËÐÑÒÓÕÖÕÖØßÙÙÙÝÛÜÝÞßààáââäåãäãæéäæææçêèèèçêéêêéêììêìëêéìììóîíìííîîîïïîðñððñññïîìïøöñóóòññòóóõôóòóóõö÷óóôõôôõõõõôõõõ÷÷õùü÷÷ùûùùøùùøøùúööúùø÷ýùùùùùøúùùüúûûúúùúûúûûúúúüüþüþùûûúûûûûûýþýüüýüýüûûüûúüýþþþþýýýþþþüþþþýýûûûûþýüüüÿÿþýÿÿÿýþüþþýüýýüÿýýýüýÿýÿþ%úüûûûûûûüýüüüüûúüüûûþüýüýþüÿþûüüúûûúúùúùúùúùüýù÷÷öùùööþôõõõööøôöôõõôôõõôôõ÷üùùúûúøöôòòðñóïíïïîíììììîêêêìêééíêéééèéèëîéçæêõæçæåååççæååæçæäãäåãäçãâãäæåãäíåàááåêæàààßÞßàÞßààààãããââÈÏÕÕÒÓÖÖÕÖÙÛÙÚÚßÝÝÞßÞààáâãäääãäåçææåçææééèééèéêêéóùííìììîîñ÷íííîïîïïðò÷õðññòòñïîïðð÷òïñòòòóôóõõòòóóôø÷óôõõôôñô÷öôõõ÷ø÷øúüø÷øø÷ùùøøøøùùúûûùøø ÷úúùùúùùùúúùûûúüûúüûûûûûûýüþü  +þúüýþýûüø? üýýþþþþýýýüýþ + ýýþþÿÿÿþþýþþÿþýýüýÿÿÿÿÿÿþýýþþþþþÿþþþþÿýÿ4üüýüüýýûþÿýüýüýýýýýþýýþýûûüüûúúûúûúúúùúûúúúø÷úú÷öþýöõöööüöõõõõõõôôôõö÷øûþùûùöõöõõòòòñððñðîíììíìììëìëíêêêìêëêëéééìóïççìøççæåååæçæåéïëæåãåçåââãæââããããæãáâáååââááàààáÞÞàßàáâàßàâÑÓÓÓÖØÕÕ×ÙÚÙÚÙÞÞÝÝÞßßààâãäääããååæèíóéèèèêëêéèêëêëíðíëíîíîîòñíìïðñððóòøðóóòñððîïðòôñïòóôóôõôôóóôôóôôõøööõôô÷øõõö÷÷øúùøúùûúùùúúùúúùùúûûúùúûûùúûûúúúúûúúûþýüüüüüýüûýþþüýüýþüýüþþüýüýþþþþþþÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿþþÿþþþýýýþþþÿÿýþûüüýüþýüüüýýþüüýýþýýþüýýþþýýýýýüûüüûûúúúûúùúùùúúúùø÷÷øö öõööóøõöööôôôóóôôôõõõö÷÷öôöôóóòññðïïïïíìììììíéêëëììêêêéééêëéèéêéçæçêååææåäåæååë:ÝããäåäâáâæããáâáâáâààßááàßßààßâààÞÝàßååàßßàÐÒÒÔÖÖÕ××ØÚÚÛÛÞÜÞÞààßááâããååååæåäì(sòéèèéëêêêêêêëììíîïðîíïíñîïïñññòóòñðñòóóóòòññð÷óöñïôõóø÷ôôôóôôõóôõ÷þþ÷öõõ* ó÷÷ö÷ø÷øù÷øúùýûúøùúúûûúùúúúúúúúùúüúúúúùûüûúûüþþüûýýûüÿþüûüûýýýüýüüýýþþýú ÿýýýÿÿýýÿÿÿþÿþÿþÿýÿþýýÿ ÿÿýþÿÿþýýýýýþþþÿþÿþþýýýþüüüýýýþþüûüýþýþýüþýþþþþýþþýþýûýþúûúûûüøúûùùùùýû÷ö÷ø÷ýõõôøõôöõöõôôóôôóóôôõõôóóóõòòññðððïîííìììììíìëêêëéìééêïìéêëéèèæææææææååçææææåääöâãâãâââááââááââââáàáäãàáâàßßßáßßßÞàßæäàààßÒÒÒÕÕÔÖ×ØØÙÙÚÜÝÞßÝàáààáâããããäæåååçïõèçéèëéêéééééêìììíîîîîìíðñðíïðòòððñððððòôòòñðñ +ôôñðòóòóôôóóôôóôõõô÷õöö÷öõööö÷ø÷÷ùø÷ùøúùùùøùùúúùùúûûûûøòöúûùùúøùúûúûûûüýýüüýûúþûûüüüÿþýþþþýýýþþþÿþþþÿþþÿÿÿþÿþþþÿÿþÿþÿÿÿÿþýýýÿÿÿþþÿÿÿÿÿýýýýýýýýüýþþüþþýýþÿÿÿþþþÿÿþþýýþÿýûùûþüúúúùúùùúù÷÷÷øøöõööö÷ +öõöõõõööôôôõöõôóõôõöôôòòñññðððïíïïìíîíìììëëìêììðìðíêêëêéèçèèççèèçêçèèçææåäâãæåãäããââáâáââäãåââáâåäââááàÞßâàááààÞæâÞããáÔÓÓÕÔßåØØÙÚÚÜâåßßÞáââââããããääåååæéæåèèèéêêìêêìëéëëëìíîïîííîîòïïððïðñòòññòòóõôóñïñùôòòòóóõöõôôõôôöõõööõõôööõöö÷ø÷öøø÷÷÷øù÷ùùùùûüùùùùúúùûüüüù=ùúûúùùüüûúüüüüüþþýýüþþÿþýýþýüÿÿÿþþþÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿÿþ ÿÿÿþÿÿÿþÿûûýûüüûûúûüûúùùúù÷øø÷öøûõôööùöö÷ööööõ÷øõôóôôõøõôóòòñòñððñðñðíîîíííëììëìí÷ûïìëêêêéêêèèçéëéèèéééèçæèçææåæåååääãããäâäääåæåâãããääâáááààáßàßáàßâãâââáÓÓÕÖÖÜÞÙÙÛÜÜÝßáßàáááâââãääåæååççæèêèèîéêìïñïìíëÿëíîîõðððñïôðïññðññòòñòôõôóôôôóòöõôóô÷öõööõõöõö÷øöø÷ö÷ö÷÷÷ø÷ùûù÷úûøøøøùúùúûýúùúûúúûûûúûûûö$x=úýýý +þýþþüüùúýüþÿþÿýþÿÿþýÿýýþÿÿ(ÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿýüýüûüýýýýüýþüûûúùøø÷÷ö÷ù÷÷ù÷÷öö÷öö÷øöõôõöóòóóîðòóòóðñðïðñðóòîíëìíìëëëêêìôõíëêéêêéêêèççéêççèèééçççèæåçèæåæåãåäãââáåäããäãâäãáãäãâááàààààààáààáâááâÓÓÕ×××ØÚÚÛÜÝÞÞààááâáäãâäåææææçççèèèéêëêëìëëðîííððíîîïïóðññññõñðñòòòòòóóòòóóóôõôõòõôõøôõõöööõööööõö÷ø÷ö÷÷õöø÷÷ùøøø÷øøøøùùûúúûýúûûüüûûüüüüûüûýþûh üüþüûýþþýþþþþüýþþþþþÿÿÿÿÿJiÿÿÿ +ÿþÿÿÿÿÿþþþþþüÿýûþþüýüüûùøùúüø÷ø÷ö÷üøõö÷õõöøøöõôõöôóôùýòñòñððõóñðîóôîìëëëìëëëêêëêéêëëééêéèéêèèèççèççèèæçççæäëëææååäåäãåéáãâââããâãâåäâääáààáààâááßáààáââãÔÕÙÚ××ÙÚÚÛÜÞÞÞßááâàáãâãååççåææææçççèêèéêëêíîìëîíëìíîîïïðððððôðòòñòññ÷þøÿóôôõûöóôöóó÷ôõöõööööö÷øõøýõ÷õõúööøøùùø÷÷÷øøøøùùûùúúûüûûüüûüüûûûüýþýúüüû‡ úüüü&úþþþýþþýþýýþþýþÿÿÿÿÿþþÿÿ"À>ÿ  +ÿÿþýýüüýüþýýþüýýýüûúùú÷ùùøøø÷øøøúøóò÷øööõõõôö÷Zòñññðð ÿòôôïíïîííëíëìëêìëêëëìëëêééèéëèéééèéíéçèçççççæêéæçåæåäääæèãäâããåäããâéçâãâââââáãâââáââââããâÕÖÙÙ×ØÙÚÙÚÜÝÞÞÞáâááâââããäåååæææçèèèéëêêéêêìíìíîîííîîîïïñðïñðóòòñòòòòóõò*ôóõö÷õööôóö÷÷÷÷ö÷÷ø÷ö÷øõ÷öø÷÷üù÷÷øøùúùùøøø÷ùúúûþúûûýüüüüüüüüýüûüüýþýýÿÿþõýýýüýýûýÿþþÿþþÿÿýþþþþÿ0°ñÿ  = ÿþþÿÿþþÿÿÿÿüüýûûûù÷øùøùøüùøùüö÷÷÷÷öõóùôòóòóòñõûõîððïîììíîìëìíëìììëëêììéêêééêêçéîëèèèçèçéèæçèçæèæäåääåääããææääããæåããââããááãáââáâáãããããÖ××ØÚÚÚÛÛÜÞÞààáâãâãääåäääååçèæçéêéèêëëìëìïîîðïîîïïïïðòòñððñòôóóòóóóóôôôü÷õö÷÷õ÷öööÿ üö÷÷øøùúùùùøúûøùù-ùüûúûúúùùùùúúúúú ûûýûýýýýüûýþýüüüýþþÿÿþÿÿÿÿÿÿÿÿÿÿþþÿ  +ÿýþÿÿþþÿþþþþýÿÿúùúùùøùøøûûøøóiÞiõ÷öõöö÷õóòñòôòóñóòññðïòóðîîîîíííïëëêëêëëìêêêîíèêêêéêêéééèèèçççäåææèéâÜåèååäãäãâæãååââããââááááââßàááàâáàáâââãã×ØÙÚÛÜÜÜÝÞßàâááâäæåäåææååææèéèéêëêëíêëëìíïïíïîíîððïïðòôðòñññõôòõôóôóôôôóóõõ÷øö÷öö÷üúýù÷øøøøùùø÷øùùøùùùûúúýûúúúùøøùùùûüúùúúüúüüûûûûûüüûüûüüüýýýÿþþþþÿýþÿþþÿþþÿÿþÿÿÿþÿ# + ý*jÿþþþÿÿÿþýýüüûùúúúøûøøüù÷ùûw&Œéõôõõöøôóôòóòðñòòòòññððñðííííììëììëëêêêëëêêêêéèéëèéëêêèèçèçççèú÷äçâ4)äçåãâãâäçããäâàâãâáàâèéâáßáááßââáããâââãÖ×ØÙÚÛÜÜÝÞÞßáááââæåãääååæçææéìééìëëìêëëëììíííííðîêððïðòñðððïòõòóóóóóôôôõôôôöööúöö÷þø÷÷øþÿù÷÷ö÷÷÷øöøùøøùøùùøùøøùùùùûú÷øùúüúùøûùúüûúúûûüüüûûþþýýþÿýýþþþþþþþÿÿþÿþþÿÿÿÿÿÿÿ  !     %!/ þýýþûüûûúúùúüúùùþÿú÷öõôõõøÿüùóóôòúõòòòóòðïïîíîîíëëìïììëêëëêììêêêèêìêééééèééèèçèèSáèÜ}sßæåäããããäããßJ&éáâáàãíîâáßáááááäãåæäãâãÕØÙÙÙÚÜÜÝÞÞßßáâáâáäääääæçæææéìééìëêëëëìëìììíîííð;f òñññððððññõóñóôòôõôôöõôôö÷øùö÷÷ùøùùùýüþýùøùøøùùúøùøøøùúûùùùùûüûúûýýúûûüýýüûûûüýüûûüýýýýÿþþÿÿÿÿÿÿþÿÿÿÿþþÿþÿþ     + + + +      +   +    +ÿÿþüþþüúùûùùøöøúúúùø÷öö÷öõöûøóõôóùôóóóóñðïïïîíìíëììïëíìëìëêêêêêîîèéêééééèééçéééèî+ ãèå#h*ãååæäããââäãÞ^6êàâáàâååâààáááââäãååäããäÖØÚÚÚÛÜÝÞßßààããâóìãåæææææèééçééêêéêêëëìíìíîïíîñ>pôðððïðññññõóõõôòóôôôõ÷õõö÷øø÷øøùøùùúøúûúùúûùøùúúøøùøùüúúúúûûýýûûû øûüúûüüúúûýûûûûûûýýýþþÿþ&$# +ÿÿþÿÿÿÿ +  + +      +       + +  + + + +        +           +   +ÿþýþûúùùùúø÷øøøø÷÷÷ù&ôöõôõõõõóóññòõóòñððððííîëìëíìëíìëëììëëëéþêêêééêëèçèèéêéêçãæèçéïëáæååååäãâãåãåàÞàââáââáàààààáßáãäãäãâããä×ØÙÚÜÝÝÞßßààáâáãþñãåæéèææèêêèééììëêëííñîîîîîïñòýÿóððññññøòòöó÷öýùôôõöööööõø÷ùùøúûùúúûûúúúúúúúùúúúùüúúùûûúûûüýýüúúûýÿûûüýüþýüùK#üüüüýþþýýýþÿÿÿ>ÿ6ú    +      + +  + + +             +   +      +  + +           +   +    ÿþþýýýûúúøùøø÷ö÷ö÷÷ö÷ø ôôôóóóòóòòòòðòóòøöððîíðòîííìëëííëìììëêñðóÿøíêêèéêéèèéëèçëéèèèçççååæååæèæâãäääããâáåäáâááààáàßáìááâãàáèæãåØÙÚÛÝÞÞÞÞÞááâââãäãæèææëéæçèçèééêìíìììíîñîîííìïðððïñññòõñðñ÷ôòõôöôýúóôö÷õö÷÷öùøúùÿûúùúúûûùøýÿùùùùúúúúúúùúûûüûûûúûûùûùûûüúýûûûø2ÿûüüýþüüüýýýÿÿ %! ÿÿÿÿÿ  +        +        @7       +  +      + + + + +  + + +  +!G  +      +   +   + ÿþüûúúûùøùúøø÷ö÷÷÷ùø÷÷õõöôôôôôòóóöõóôõóòòðïñóôðîïíìííììííììëñòëíñîëëéëêêéêéìêèîðëçêéèèçæææååêæããåãåãâãâêçàáâââáàáàäöâáâàïïêåæ×ÚÛÜÝÝÞÞÝÞßáâäâãåãææææçççèççèèéëééëëêëìëííììíîïïïïðñññóñïñïòñõôôóôôôôööõö÷÷ø÷ùùøþûûùùüüúúúüÿýùùúúûþúúùûúûúûüúúûúûûúûýþúüüúûûûûÿýüüýýýýýýýþýÿÿÿþþ + + +              ]S        + + + +      !E           + + þüüüûúûúúùøøøö÷÷öøøõõöôóõóõóóôòóööôôôòòòñïîîíîðíîðíììííîïìîîíìëìíëêêìêìêêéèêéîöíçììçèéæäååäççääãääâááâããááâãåáßßáâáãââßüèåååØÙÚÞáÝÞÞßààáâãããéåååæåæçççèééèéêêëëêëìíìííííîïïïïðññóññòññðôòöõôôóóôõöõõö÷øøøøøøùúüüûüüüüüúúûûúûýûúûýúûûùûúüüüûûþþûûüýüüüþýüÿûûüýýýýýýýþÿÿÿÿ    +                                         +   + ÿýýýüûüûúûúøùùø÷øø÷õõôôõôóóôôõôôõõõóóóóñðññóòðòîíðïíííîíìíììîíìëìëëêêëñéëìêêéèéêéééêéèçååæååæåååçãââááââäãàáãááàââãæããââçæåææÙÚÜÞàÞÞáßàâââãåçéæåæçççççèéèéêéêììíìëìîííîîîïïïðñòóóôõóòòòò÷ôôõóóóôöøöõ÷÷÷øøøøùøúúüýûúüüüüûüüüûûûûûüüûúúûûûüüüüüýýûüýýüýýýþÿþþÿþýþþýýýýþÿ ÿÿ + + + +            +     ÿýþýýûüûüúøùøøøøøöõöøõôôôóõõõôôóööôóóòòññòññðððîïíìïîíìíííîíìëëëëìëêëëééìêêéèééééêéèèèçææçæçæååæãäãââââááàßãéãáãâäåäæããäçêéçÙÛÜÜÞßÞààâæáãâåèèèçêêéçæçèéééëêêîëíîìíìíïíïïîîïñòóôôóöôóòòòóôôõþùóôøøõö÷÷÷ùúûùùøúúûüýüýüýüûýýýüüüûûüüýþüýüúûûûüüüûüûüüüýýþýýþýýÿýýýÿÿþþýþÿÿ  +          ?B       ÿÿþýûüüúúùøøùøø÷÷ö÷ùõöõöôõööõôôö÷öóòòòðòóðïïïðïîìíïîìîîìíîîìêìíìììëëëëëéêëêèéêéééèèçççææçèèåäãâãääãâââáãäàëúßàáâãäçæãääåçèåÛÜÝÝßåèßàãããåäãååèêééèêëéçêëééëëíëìííììíîîðïïïðñòòóóòòôóòóôôôóõ +ÿóôõõõööööùûþùùÿûûûýÿþÿþþýüüýüüüüýüýüþÿüþûüüúúüýüüüüüüýþýþýýüýýýýÿþþÿþþþÿÿÿýþ  +$:  +  +        Š7Ü@     + +     ýþýüûûùøùùùùøøøö÷ö÷ööõö÷õôôôôöõóòóòññññïðððïïîíïîííîííïïíììííìíëëìðììëììêêêéêéèèéèçæèéèçääåãäæãââããâæçããàááâççäåãääåååçèÜÝÝÞßãæàâââãåääåæêéèèéî æëìêêêëëìíòïíîîîïðððððñòóòòóôôóõôö÷õô÷ôôööõõö÷ö÷øùúûúüþýÿÿþý þýýþýýüýýþýüüûûüýûúüýýýýüýýþÿþþþþýþþýþÿÿÿÿ( â3    +   +       /!"(âE    +   +     +   ÿþþüýüùøùùøøø÷÷øùøøööôööõóôõóôôòóóòòòñòóñïïïïïîîîîíííííííííîîêëëííííëìììêëèù÷çèéèèèèçççåäãäåäååããããââáâãàáááåöáããããäææéêÜÝÞßàààáäâââääæåççúðççëÿÿïòíëîëìëíììíïïîïïïðððñòòòóòóõóóõõô÷øõøõô÷øöö÷ö÷úùùûûúûýþÿ þÿþýÿþþýþþþþýüüüüüûûþýþýþÿþÿÿÿÿþþÿÿÿ!  ‚C  +   + + +            + +    ýýúüûùùøøøø÷ö÷ùú÷÷öõôõõõôóôóôõóóòòòñï'ðïñðîîïíîíëþëííìííììêêìïêëîëëîìëìêîïêêéèèèèæåéæääãåâèêçåäããâááàáâãâââãâãäååìëèèÝÝáãàâãæäâãååæ îéçéèèèêëêîòíñþííìîîíïðòðîðððññòòòôóóôõôó÷úöõõôù÷õõõö÷øøøúûúüûúüýÿÿýþþþþþÿÿÿþþüüýûûûþüýþþÿþþÿþþþýýþþÿÿ     +   + +              + + +  þýûúúùùùùù÷÷øøö÷÷öõöõöõòóõõõôóòòñòðüðïñðñïîîîíìúøïïïîîíìêêêëîëííëíòïìëëëëìêéêëéêæçéæäæäæêåçóìããââããáàáãçåâåããèôéçéççÝÞßàààáããâãäãäìææçççççèçèêëêëìêêîñ ÷íõõóððïðòññòóòóõóóôõúóõô÷÷õööö÷ö÷÷ùúúúúúûþýþþþÿÿÿþþþþþÿþÿüüüüûüüýÿÿúõÿþÿýþþüüýýýþÿ  +   +       /""!     +  +   þýûúúúùùø÷ø÷÷÷÷ööõöõõöôóõõóòóóòñòñðíñðððõðïîîííìíîîïîíííëëíëììííìîïîëëïîêêééêêééæèçæçåææêåäçäååââàî$àæëääãããäèçåççæÜÞààââãâââãããåäæäéêèèééèèéëêèëëìîðòøîðîïôñïïðñññôôôõóôõöûõõõöùù÷ö÷÷ö÷øøùúûúúûþÿÿÿÿÿÿÿýûýÿþýýÿû÷üû9† ÿÿÿÿþýýþ +      "  !!!! !#!    !   5      + +n¹O ÿþûúùùøùù÷ùø÷÷÷õõõööôöõõõôóóóóóòòòõðððððòðîíîííííííîîíîííìïíìììíìììîíëïîììêêéèèéçççæèæçäææåãäæåäåàñM~âéäãæãâââååæææèÜßáááåèåãäâãåäæç ôçéééêéééé9èëìðôîïìíïïïïðññòôõôôõôóôôôõøóõõø÷ù÷öööø÷÷øùûûüüýüþþÿÿÿþÿþýÿþþþú'Fò{ÿþÿÿÿ  +   ‰îZ !'(  "+' !""#$%##!"#"""#   "!"#  !!!  "'     +  + + +     ?AAÎþþýýûùùùùúù÷øø÷÷÷ööö÷÷ôôýûöôõõóóóóñòôñññðñïîîîöñîîïïííîîîîîîîíììëìíëëíìëììëëêééèçéççæçææåääææäåêèääãæ÷ãâááâãâ +íãäåæçèÝÞßààäéäããâãæèæçþîæèèèèéééêèëìîîõîùðíîðïïòòòóôôôóóõôóôöôöõõ÷÷ùøøùùúú÷øùùýýÿÿ    ÿÿþòtÊJúÿÿÿ    +    “~A0!!(%"(& "$%#"#$%$$'%$%##$$$" ! !""""#$$$"#"               CDÏ ÿþþüûúúúúùùù÷ø÷øöõöööö÷õüöôõôóòóóñððóóñòóòîîïöñïïïîíîîíìíîïííììììîëëìììëìêåèëééèêèçæèæçååæååäåæåäãããßÞäââáãåâþëâþöèççÞÞßááâäãäåîææçæèéççéééèééêêìïêëñìïí&÷íïðððððòóóôôôóôõõóôôôùöõöúú÷úûøø÷øùø þÿ$:5 ÿÿÿÿÿÿÿ ÿ  +   +     9S:,%#+5*"#$!"$#$%%&!Hi,%%&&$$$##!"  "##$%&&&%&%#""!#!             +   +"Jd*ÿþýüúúûûúûúøø÷ø÷öõ÷ö÷ø÷öõõõõóóóòòòñòòòñòõòððïïïïïîíîïïîìîíîííëìíìíìììííëë" éêëêëêèæèçæææçççåååäãäææäååâãáââäçåäùôèéëÞßâãâââääæìæååæìçæçèèéêêëêêêêìëîöìíîÿñîïðïïïïòôòóóôøõõôõôöõõúöõüû÷÷øøøøùøúúÿþ  +¬12  +ÿÿÿÿÿÿ   +    + + +   !+cF'#%$*,(&&&')%Jt;&(('&&%&&"($!$%&'((')(&%%%%"     +        ÿýûûüüûúúùøøù÷÷÷ö÷ö÷ööõ÷öõõôõõòóòòóòðòò÷ñòññïîïïîîíîïïîîìííîììììëííììììæ+¹‰áëëêéééççæçæçéèæææåæçæåäãäãâãâããäãäåèèæëìßàáâáâãäãåäæååæìèèèæçèéêêìíëëíîíëíîîìôñïðîïðñóóöøóõøõôôøôôõööûøøøùúúúûúüüüþ + ‡Ï8 ÿZÿÿÿÿ   + + + +    !%4$)D6*''$TH%)))*@O80***('''(&$%$%'&'())+.))'&'&##!      +       +    þýüþùøùø÷úùøøøø÷õööö÷öõõõõõôóóõóóòóñöòñððîîïïïííîîïïïìííîíìëììííëìììès[åëêééèçèèæçåæêçäæçåèçããâããâãæâäâäæåäåäåèéààááâåääãåæççèçéèèèèééêêëëìëëìëîìîññïöñðððñòòòóøûô÷üøõõ÷õú÷üûúúùùùúúúüýþÿÿ g¸Š#  *   +   + +      !"!!  #*2&&%)+)*(?T:)+,-.77(+,,,*))))'&&'))()++****+*()'$$#       +  + +   ÿþýþ÷øùøø÷÷øù÷øü÷ö÷úöõõõõóôöòòõóóóóòðñðïïïîîííïðïïïîîììííïíëìììëëíìëìêáâíêêééçæèéçæææçêçææäçïîãããâââåâãáãååææææçéààáâãäääããææçèèçèèéééêêëììëëíôüïðîðïîðñððñññòòñóöõ÷û÷õõõõþ÷÷øùúúùøøúúü ýÿÿÿ   Hq<      +  +  +         !%$!"!#')&*'(**,,,*(,.../0.+-,..-.-,+*+**)++*+-+***+,+)+)()&       + +         ýÿÿýúúúøùúøø÷ö÷÷÷ø÷öõöøõõõôõôóòòóóóòñðòòñððððîïîìôõïïîïíììîîïîíìîíìëìëëêëëëìëêêéççèèçèççåíëæåååíïåääãââäãâããääæçççêìßààâãããäçõåçæèèççéêèèéíìëíìëì<ìðíîîîîñôöôòñòòóóòõõöõõö÷ôø÷ö÷øûúøùùúúüýÿÿÿ    + +    +           "%##%#&()*++*-,11000210122123.0//10.----.,,-,--,,,,,,,-+)))&"!        +  ýýúúùùùúùùøøø÷øùùø÷÷ùõõö÷÷õöõôóóóòóòòôòñòóòòñðïóóðïîïññîïîîîîìðïîíììëëëëìîòëìêêèèèèéæææééæåååäåççääãääãâãçåææçèêììàááâåçâãì åçèêèèçééìëêííëëìíìÿ'ìîíîîïðòõúøòðòôöôòôõôôõö÷ýõ÷øøø÷ûúøúûüüûüýÿ             +     !""%%$%%&)+.-+--2/24545775665445122142200000//////.-.---,,,,,*(%#         + +     ýþüüûüüûúûûúùù÷ù÷÷öøúø÷÷öø÷ö÷ôóóôôòòòóñ÷ôóòòòðððððïïîñøíïíîììíìîîíìììëììëîóíëêëêèéééççæåææåäååäíóâäåæääããçäæåæèêëëáâããåçääìøæçèèééçééííëëëììíîíëèïðñðñïñòóøöñóõõõôôôôôõööö û÷øøùùùüýûüüüüþþ + +   +        +  + +      " ""#$%%%'('),37.//2:2246679;:9877776664645544312211000//.0..7L..**'$#!          + +   ÿþþþþûüûúúúùùýùûûüùû÷ø÷õø÷÷ù÷÷ùøóòòóõòòòóòò÷õòòñññððñðïïîïîíïíîííìíîîíìììëëîððëëìëëéééééçéçææææææåäìòãåäåääãååáäæçèéêëâãääääæååäçèèèéééééêëëëëííìííîíïñòðñïïññóòñ÷ø÷÷ôôóôôö÷öõôöùø÷øøøüüûüüüýþþ     1   + +  +           !$$$%&&'())*-48141593467889<<<<<<:;;<:9989:86697454211200100<b0/-+)&&#       +   +    (³Bÿÿÿýüüüüûûûúùúúùùøûüøøùùùùù÷÷øø÷ø÷ôôóóôõóóòóóòòñòòðïñññðïðïîñðòîìíïîíïîíîìííëêí÷ùëëëëêééèéèèèçææææææååäãååäääääååõìèêëééëââáâäåæååææççèèçêêéêëëêéìíìííííîïïðïðððññòòõöøøóøüô÷ùõõööûù÷øøøýýúûûýþýþ  + + ’^        +       !)#"!!$%$&'%')((+--10162433689:;==>@?@B@<>?==<===;::=;8865323211214D0..,)*'$!          + +  +K ÿÿþþýüüûûûúúúùùùûùúøøùúø÷÷ööúøôúûóôôñóõñóòññòðñòñðîðñðïðïîïïïïðïîîïïîíííííííìëìíìëêëêëéèèèèææååæååææççäæçìåääääãýçïîêêëãáâäæêéèèçæèéèèèééêêëìêêëíîíîííîïïñðññðñòòóóóôôóùýõúúôóõöùûùøö÷þþúúûýýýÿ   + +  E0 + + +    + +         !!###$%%'((()**-0/1.24456679:>@BAABBBEF@@@B?>?>?@?>=<<<97655432341/1/--++(%"        + + +  +ÿÿýûúúûúúûüûùúüûúúùùûøøøø÷ûùöøùöôõõùùöóôóôóññòóòòñññðððïîîîïðñòïïïîïîïïííííëìíêëëéêìëêéèççççææææçèðôäåçðääæäæã +ùèíìêììâáâäåêôïåçæèèçèèìêéêêëêêìïðìíííïðïòððôõóòóóôòñôôôõöøù÷ø øö÷þüþúýüüýþþÿ +#%%"                  + +    + +    +8  " ! !!#$*'%%%())++,--.4513876789;<<GDCDDEFGEDDCCDACCABDBAB?>>;9867554553340//.,(%"!       + +  + + ÿÿÿü  +øúûüýüýúþ  +ûùùøø÷÷ö÷ø÷÷÷öõõöøýööõõôóññññïðññððððïðïíïððñîîïïïîïïîíììììëëëììéêêëéêéèçççååååææôüäåääääéäåæäæéééêíîãâãäåæåèæèçèêéèêíìëíííììïïîïîìðîññðððøúôòóóòñôõ÷ùø÷øüûøøþý(ùþÿýþþ  !"+4651+(     +  +    + +   +     +   +       |¹  #" !!!#&&)&''()*/0--.09?16@876:;>@>FDCDEFIJGGIGFDEHHDCEEDDB?><<<9765464365211.-)%#!#       +     ÿýÿÿýY1õûüýüòaDtþüûúøù÷÷øø÷÷øööõôöööõôôöôîòòññññññññðññðîíðïðñíîïïíîïîíííììììëëëìêëëêëëëéèçæçççææçæåæççåäæçäåççèéëëëëìäããääæçæçéèèèèêèéêíîëëìîðííñïòïïïñðïðñóòñì@Qíôôõõõöõöô÷ùøûúýúþþüþÿÿ  (;HR]WK?/"   +               +   + + + +    % ;#!# !'+"&&$$%#&%&())*+**,../01<F4788<;<?@AA@BEGIJKKIKMJFGHKIIFGGGEEC@>AIE789<65574322/,)&%""      + + ÿþÿ#úüüüûõJlùúúûûùø÷ø÷÷øøø÷÷öôôõõõõôõŽ íñðññðïññïïðñïïïñïîïîïïííïîîìëììíïðêëìêëëéêíêéèèéèæææææåæéçäæäæäåçççèéêêëëìâçêääêöëèèçêçééêêëëëììììííê÷K‰íðïïóóñðñòòôôðñ÷öööõöö÷ö÷÷øùøøøùúûþþüþÿ  !1Y‡¾äÑ”W7(    +          + + + +    + +    ""  "##$)2&%&'(((),0-,-/0/002336888::>B@ABCDEGIJKKKKKKHIKMLKLJJHHGEC@EQL;<AN87744211.,*&%$      +  + øúþýüûüþ +ÿûûúùùø÷ø÷÷øøøø÷öõôõõööõõjîòóóóñðóóðïñóòððòðîïïððïïïïïîîííììììëìëëêêêîëêêèééçèèçèææçååçåæççëèêëëíììììàçäæçèçéðëëêèïíìììëìííïïîîïïðõóñðóòòóóôõöõóõööööøøøøøøùùùúúüüýþÿþýýÿ  +  "$+@pþ¸½mB0#  + Zzû       +Ýà1 ³Y“     +       (!##$$$%(+*(*),,-+,,31,MI/333468;::=<=>@CCDGHIKLKLNLKLKKMMNOOOMKJGHHFEB><>BJ:86554100,+'$#!   +   + þþýþýûüÿûôøþûýúøùù÷øøøøøøø÷ööõõô÷õöööùñóóòññññòñññòðñóòòððïððððïïïîîíììëëëìëëëëìêêéêèèééèèêéææèçææåèçççèêîðñòóóðíâèååçèèëîíëëëëëëììíïïîíîîïóþïðòòóòòõøóóõöôõöõ÷øúøúøùùúûúýüþýýþþ   $1L‡£ tAG1$  + Rp n  +  +  3ABùäà              1!#%&'((''((,*+*,,+02//<A;6288479:;<<=?BBCFGHHJLKLMJIKNNMNPQPPOPOKJHFE@Yk>AF;98553116+('""! #  + +  +   ÿþýþüúûûúúûúúûù÷÷úúùøøøø÷øø÷÷öôóöøöõõöôñôòñððïóôññððïðòïîïîïððïðîíîíìíìëëìëìêìêêéêééèêêèççèëëæåæèèçæåååäèðòóóñøõîîäôüææçéëëéêëôïìêëííííììíííïðñóððòòôóóôöôôôôôôööõö÷÷ùùùùùúýûúüüüýþý +  #2L—ŽÓ?#wC.#      ý }  +     z‚#e¸R        ! '&$$%&'')*(((,,+,---10/002/UŒh687:===ABABFFFEJKJKKLKJINQOORQQRPQQQMJHFE;—Ú:Mi:;9553101.*'$#%$  +       + + + +  þþýüúûýüúúúûùùøü÷úùøøøøøøøøù÷öõôöúöôõóóòóòðïïïðòðïøöðððîïîîïðïðïïîìììììììëìëëêëéééèèééèèèééèçæçççåççåæççìêéêéøúðñåççææçéêéêêëöïëìëììíííìíîíïñððòóðóóôöòóóôôõõóõ÷ø÷÷öøùøøúúþûúûüüüüÿÿýþÿ +  #/E€ºåf½]8+"    +  + +  +û   +    + +         +   #$$$%&()+1)*,,,.-.//0020250Cj`7:9;?>AABACFGEEJKJIJHFIMQRRSTSRSRQORQLKIGGHFA?<<?<96510/,+)&$+)   + +          + ÿýýýûúüþýüûûûùûùúùøøùøøøøøùøööõõõ÷õôôóóòñðïïñðïòñïÿùññïïððïñöòñóóøøöïëíëëëëéîêéêèèêéèééééèçèèæçåëççèèéëéêëê÷øïîæååççéíêêìêëíëëìêêìíííííïîîïðïññóòòøñûùõõôõööøøöøùøùùùýûúûþþþÿÿ );_†«²iG/$    +    +  :J           % !!!"$%&&),++,),---.../001223547>>989C_ABCCCDJJIHIJJKIGKRTTUUVUUTTVTSRRRPLIHFDCAA<?<96631/.,)('%!   + +       +  ÿþþýüüûûûüüûûùùûùûúùøúø÷÷÷øøöõõöùõôôôöõôóñðððððñóòì(tþïòôïîòñðôññðø28 ïîììììêëêðêéëëêééèéèéêéçèèèæçëçèééêêêëëëíîîîåæççèêëêêêêëëëíëòëìíïîîîîðððñóññòøøôõõõõõõö÷÷÷ùüøùùøùúüþýýýüþþýÿ +&2:FSUJ;3)      + +  +       #5              -( ""!"%%')16,,,,,./---.158323335668::=?FBCCDEGHIIGJKIHHJPSUUX[WVUSTTVUTRSQLKJIIEA?><;7642/.+),*'$          + +    +  þþýýýüûúúûûúûþúúùüúûúøùùø÷÷÷ö÷õô÷ûõöôô÷õôõòñòóñïñóòð=øïóõðïòòððñðïô ûìííììëêìëëêêëëëêééèèèééééééçèèèçéèêêêêëëëííîäåæççééééêêêìëíëûûïëìðóïïðïððóòôðñññññ÷ûöôõõ÷÷÷øùùýùøùûüþ˜Eùûýþþ  +$'-22.*'! +  +  +  +    "   +             !"""$%%&).0,-.-,/--//14665455689:;;=?ABCFEFGJJLGEGIKMNQVWZZ[_Z\WVUTUUXWSSQNNKIGEBA?<;9410.,+,+(&"  +     +   ÿýþýûüûûûùûúøûúúüúùøúùøøøø÷öõö÷õ÷ôóõ÷ôòñòóòññòòóðéðñòñòòññðïððñðìëííîîíììëêìëëéèéèöïçééèééèèèéêéñèççèçééêêêëíîîíãìñççéëéèêêêëëííîíìììîðïîðïðñóôõññóòôöúúöõ÷÷÷÷ùüýøùúúýW¦ üþþþÿ  !#""    +  + +  +    +       + + + + +  +   !  "#""**')++*,..-,--./0246666877;<=>=@CCEEEHIIKLMMIHGLSUUVZ]`b_]\[YWUUUVUSRQOOOKIGEA@=<;4321.,*((&" (0        ÿþýüüüüûúúúüúùüýùüùøøüÿüúúù÷ö÷÷ôõôóóôöñòòòñòòòñòóóññòòñòóñññðïññðïîîîîíîîííëììëêéééñíèééééèèèçééèìèèçæéèéëêëìíîïïäéíççéëéëëìëëëííííííííïøúîððñòòûûõòóôóóò  ùö÷öøøùýùùúüúý>ÿÿýýÿÿ + +     +    +             +  +    +   P{3!+" !#"#%*)')**,,-./-,/0*03469887gf8?ABCEJJIKLNLLONNPQMLRVZ[YZ`de`_^[ZYWTTVUTTRPNOKLIDCC@=;7430-+*((&$!  «ÊD  +   + +  ÿþþýýýýüûûüûûúûüüøùùøùýÿûüúùøù÷ôöôôôõóóòóôóòòóòòòóóòòóòòñòòòñ üññïïïïîííîîìììììêëêêêééèçèëëééèçèèèéèèçèÜçééêìíîîïñääåçæçêíìììëìììíîîïîîîïóõïðññóóõóôôõóòòôÿÿøöûÿúùøúùúùûûüýôøýüÿýþÿÿ   +           +   + +  + +      +      ¦ ^ $/' !"#"#&%%&&(*,,,.////2cA5889;;:WX=BFHIJPPORSURTRRSSUSTZ]]^``cfedb_^\\YVUUSSSSVSMKKJFER¾ÉJ54200-*('&%"    !    +   ÿÿýüýûüûûüüúüüûøùøøøùùùùùûùü ôöõõôõôôóò÷õóóòóòñòóòòôñññðñóð +ýñðïïïïîííííìëëìëëêêëééèèèêíìèéèçèèèèèèèéæãèëêëîîîïðåæèéèèéìëììììíííîîîïîîîîîðñòòóõôóòõöóóóõõõööúýúøùùùúúúûúûûüüýþýýýý +   a.   +   +  + +   + +,7         ^—<-# ! !#""#%&'(.2*+-/0012¨^88:;=>?=>DHLOPQSUU[\ZXYVXXXXXY]`^`dfggfehaa_]ZWXYURQQSSOLJJJIS ZY27432.,+)''%             +þÿþýýüüýþþúþúùúûúùùùøøúøùúø÷öþõõõôôôòóóóööôòñòóóóõòñòñññññòñîðóòïïïîïîííìììëìêêêëëêêéèêëëêèèèèèèççéèèéëåçëêëïîìíîåèééêéèéëìïîíððíîïðïîïðððñòóòòôòóòööõõôõöö÷øøøúúùùøûûúûýýüýýýýþÿÿþÿ    1        +  +   + 0Þ+  +        "5-$"#$%'((03*,-10012sT99;=?BDELQPSTWWXYZ_^]\]^_^^]]]^`bfhkjhigjeb`_]ZXXUSRPRUPLPMIGIsˆE88655/.-*))&"      +  +ÿþýþýûüûùûùúùúúúùûùù÷÷øøùùùø÷øóôõõõôüøùõóôõ÷ôòôõôôòõòòòòñòðòññïïöôïïïïïïïíììíìëêêìëêêêéëìëéèèéèéèèèçêêèêèéêìëìîîîîîåçèéêéééììîîîñðïïðóóïñóððñóòóòóôó÷ôõõõõ÷÷øøùùúúùùùûúûûûüüüýûþÿÿY +    ,      + +  + +  +4ï>   +  !"" !#G7'%((')*+,+,.,0/236/;;>?ACHKLV[VZ\]^c__afcbbcdcceddegiloonkkijgedalbXUTSQPSRMLNPQFC=9=876641/.,*''%     + +  +  + + ÿþþüüýûüûüúûùùøÿùùùùúûùùùúýõöööööý&ñôôõôó÷øóòòôóóóòòòóóòòñðõóððïðððïíììíìëëììëëìëêíìêêèèèéééêéíìêñëêëìììíîîîîïåèéèééêéíììííïïñññôôñòóññòôôôôôõô÷õöööö÷÷÷øùùúüüùúúüýüûûûüüüýÿR  +        +  + +     +           "C! "#$#%%#&%&'%&''-+*,-..//0/0136;;=@ABVUORUY\]aebdiefgnkhhhijklmlorqqrrrqlkkjgechbZ\ZURPOMKKHJJCB@@=:7420.-.,)('%!    + +   + +ÿÿýýýüûûûûüûúûûøúúúúúùþÿùùøøøøù÷ø÷ö÷ùL +ðóôõôôóòñòóóôôôñóñöôóòððôòððïïîíííììíìêëìììëîëêêêêêéèèéééìéíëéöëêëëëëìíîîíïêééêìêììïîíííðñóòòòòòóòòóôõöôõö÷öõöö÷÷øø÷ùùøúúúüüúúûüüüûüýþÿýüýþ  + +  + + +:-       +   +      + +   +        p.!!#&'%&&$%'''&'((*+,-..-00211247?=?BED__SX]^_cfihjijnlopoooopqrstuy{wvttvxolljff`^\_^XTOLKIGEDA@@<=;8730-++*))(17!          ÿþýýýýûúúúûûúûüùýûùùúúúúúù÷ùþûø÷ù÷÷ö÷óõôóôôôôóòñòóòóôùòóòòòòñððïðñððïîííîîííìëêëììëëëêêéêêééêéèéëéçèêìéêêëëëëìîîíîùåèëñêîíïðïðððòòññòòòóôóóóóöõõ÷øù÷öö÷øøøøøùùúûúùúúûüûûûüýýýÿþýþÿÿÿ        !àW.     + + +  +    + + + +  + +  + +         ""!!!(-"!"#$''(%&%$%%%''&)(()+./-./0234348>@ADGJLPU\bdfgilnnosvwxy{||yxxxyyz~}}ywv|tomljgc_^[ZYSNJIFBBA?=<><:5530-+**)('19"        +   ÿýýýýýýýûûúúúúúúøùúùùúÿøûû÷ý÷÷öõõô÷ôôóôõôóòóòñòóòòòòòòóòñòðñðïñóðððïïðïîíïñìëêìêëêëêêéêéèééèçèêéçèéçèêéêíïíìïîîïÿåéééëìííïîïðñóòòòòóôôôôóôôõöõùöú÷÷÷÷ø÷öøýýúúúûúûûûûûýûüýüüþþþþþþÿ     $$ír(+      +      +  + +   +     + %)!!###!$#  "$'($#&'&%%%%&%%&'*+-..//.0355579>@BGLORW\adhllortvz~‚‡Š‹‘“‘Ž‰‘„„‚~xvusqmigeacjncUNJFMW>==:9=;:7300-,,*)('(+$" + + + + +þþÿþýüûüüüûúúüüýùúúúûûûúùúûúøûýùøöööô÷ôôóôóóôóóòó÷øòóòóñòóòñòòðððòñðððïððïíìð÷ííëìììëêêééééèéêéèçèèçèééèéèéìððïòðîðçéèéêíííííîððñôöõôôõõõöôõõöõõõúøøø÷ö÷øùú÷)+öùùúúûúûûüýûûüþþþüýþýþÿ   + + + h›hC>"#&&"/b[ + +   + +        + +      "$$$##"!""   !!#&%&&%'&+$%&'%''()*,./012137577<<ACFMQTY_dilnqtx}†‹Ž” žœ¡¦¨¨©™¤¢Š‹‰ˆ†„„|xvtoihfch1Y¬OOKFMW<:::99776363///,)(('%%$!!  + + + +   ÿÿÿþþþþýüüüúûûýýùøúûúþÿûùúüûùøùúúùö÷ööúöóôôóóóõõôõóöüòóôôôóòñóòðñôõòïïïîíîíîïîîðíìîíëëêêéêêééêééèéèççééééêéëìïððïíîéêééêíìîíîððòòó÷÷óöùöõöööö÷÷÷ö÷÷øøø÷ø÷ûþ÷=Aôùùûüüûûûûüûýýþþüýþþþþ      +  9+9IQR;%yî‰   +  8   +   + +   + + +       !##"""!"!   #%')((&#$%%&&''&&&*,+-12342479;89EBEGLQV\afjotux~…‰•Ÿ¤¹ª£¨©¬®¬¦Ÿ˜——’‘Ž‹Šˆ…yvpkigdlÉÉKNNNB><:8:;75311?90//-+*++&.<!!     +   þþÿÿüþûüþüûùþùúûüûúúûúùúùùùüø÷öõøõóóôôõõôôóöúóóóòôóôõóóóôóññòóñïðïðññîîïíòïíîìëìêêééêêééèéèéèééêçéêêêëìíííîíïéêêëîïïïðñöôóôõöúù÷÷øùùúúúøøûùøùùù÷øøùúúûööüûûüüýýüüüüýþþþþýþþþþÿÿÿ   + +    + 1{SŽåT(G|A    + +M  +  + + +          !"%#$" "" $(((,-%&&'%&''.*'*-.013555;@?R=?BGLORV\aioru}‚„Žš¤¥¨«±²±¸Ìºµ¶¸µ°ª¥¥¢››™–“‹„|wsnkhfo±½zRMON@>;:7696321075//.,,,,,&,8       +  +þþþýýüûûûûùÿûúúûûúûûûùùùøúùø÷öõ÷úõòóöõôóóóï /ùôóòóóóòòòñóóòððññðððóüùíîííòïììíëììëêéëìêêêêéèêêêèýðêêëëìíîïîíïìëìíííðîñòóóóõööüüúûûûûüüûûúúúúùùúùøùûûûûûûûûýÿüüûýýþüþÿþþþþþþþÿÿÿ  + + +   ,C";ÕgÓe^+ +      !  +   +    +       !""""! !   #'))*'%$$''''''))*,/233699::<?@CF]^TW_biou{€™›¤ºÌµ¼½ÁÄÈÓNãÂÄÄÁ¼·°¬ª§¤¡›˜–“Œ„}urmhfh^VVSMIC?><964543310--.--,--++,)!"     +  ÿÿþþþüýüüüüûúûûúüüûüüûûûûùùûúóö÷øùõôóõôóóôôóùýöõôóóòôöòòóû÷òòðñòññðîïïîîîïòíìíîííìëêéïñéëììíëëêìé2éêìíìïðñðìíêëôöííîñðóóõõ÷øùúýþýþþýþûýÿûúûøùùùùøøùûüþýüüýýüüÿýýýüþþþýþþþÿÿÿ  + + +      "=Íû8Q(#         +  + + + + +      $x'   !"!!98# #&'''(%'&&)''(*-/-/02458::;=@BFIMU]]adiow€‰´Å¯¸¾ÇÈÌÒÚÜâêqýØÖÐÍɼ¹´²²­¨£¢žš–ƒytniea^ZTPLHC?><8542021//---31,--,-..&$!!      + +6  ûÿÿÿýþýýûüûüûûûúûûúûüüûüúúúùùøû!˜öùöõôôôôõóñóõôòôôôõóòòôóòòôóòñððñðððïïððîððïíííìëìëëëéëìéêéêîìéêîòêéëììììììííííëìñùôîîïñòôö÷ùúûýþÿÿýýüüûûûüûûûúüþÿÿþüüüÿþþþþÿþÿÿþþÿ   + +      ˜ñ!C&3kÆÁs7""    +    + + +  +  + + +      fÑi   ! !**!#%"#&('&&'(&()(()--../23469;=?ABFIPRZ^fikqz…š¤­·ÀÊËÒÙÞéî÷øùóï#úáÝ×ÒÌÆÁ¼»¹µ¯¨§ ”Š€vpic`]YRMJEB?<97331.//-,+,*A=,.-.-)('$"   + + +T +Q#ÿÿÿýýþüüûûûûúûúüûúúýýûúúüþüùøú Aý÷ù÷ôñô÷öôòñóôôôóóóôóóòóñóôòñòðïððïïðïðïîîïíííîíìëëëííîîéèèèêëîêêëìêêëëëëìíììííîëìíîííîññóõöùýýÿüþûúûýûúúûýþýýÿþüýýýþþþÿþþþþÿþÿ   + + +   'X%(<90+$      +  +   + + + + +    J!H !"! #%&&&%'''&'(,*-,,022359<<=@DFIOW]cgnrv}Š•£©®ºÆÏÒÙâéôÿ öëãÜÚÕÍÊÆÁ¾¹±¬¦¡™†zqpf_^[RKIEB?=:841/-/--,+++<8,----+'%#"     + # Š;þÿÿþýýýýûüûûúúúûúúúûýýüûúúùùúùøòöøøöóòôõôóòòòôõôöõòòôôòñòóðññññðððïïïïðïïîïíííîííìííìííêéééêêêëîêêéëëêéëìììîïîíîëëëëîîðñóôö÷øþÿ     þüûûûüýûûÿþüýýüýþýýÿÿýÿÿýýýýþþÿ     +    0&       +   +     +  +     &8 !%'&'&%''''((***-/99569<??CHEINS^hmp‚…Ž™¡ª²½ËÙäéïø !,178/"õíéãÜØ×ÔÆÀº³®¨Ÿ”Œ€qŒv^^[QIGE@=>:74/.-/,+++*++,++,,-+)&$$!     +9ÿÿþýþþüüýüûúúûûúûüúûýýüúøùúûøøö÷øø÷ôóòóôóóôôõ÷ö÷ùôòôôóóòJìññððñññðñðïïïïîïîîííìíîíìëêêêéëíëêìêêìììììíïïîððïïîêêëìîîðñóôöøúý    +ÿÿûûûûüüúüüýýþÿÿÿþÿþýþÿþÿþþÿÿÿÿÿÿÿ  +            +  +   +      + + +   $9 "&('%&'&'&&%(**+-.3459;=>AFIHMSYenuz‡‹•ž¦­¶ÄÓßê÷$+1;ISYVPA. ùôíæáÛÎÊǽµ«£™…xohb^WPKFC@=;874/.,,.,*)**,-,+,-,,*''$#      + +  +ÿÿÿÿþüýüþüúüüûûüýüüüýüûúûûúùùùùøøøöõôõ÷öõööõøøööõóõõõôóüïòòññññòôðððððîîîîííìíîííìëëêêéêìîììëëëììììððïððîïðïêêëíñõòòôõ÷øú +!),*# þüýþþüüþþþþÿÿÿÿþÿÿþÿýþÿþ ýý    +        +    + + +  +   +   !  !$&&&()(')/&),--12138;<>ACFJNS[alu{„‘˜¦®²»Êáíó '.5@KWeqx{zn^L:*öîæÜÑÊ»±«¢—‹|rkd[TOIDCA=7446/---0-)),,+,+,.-*+)(+&$!          þÿþýýýýýýûúûþþýüýþýûûûúùúøúøúùø÷÷öö÷÷õõ÷ö÷öõôôôõõõõôòòòññññññðñôïñðòïðïïðîîììëëíììëéêìììîîëêêêìííììííííîððîëìíîðòôóõöøúÿ.BZfZE2 ÿþüûýþþÿÿÿÿþþÿÿÿÿÿÿ  + +            + + +  +   #%')())(+2)+,-.23489;?@CFHMSY`hox—¢¯»ÅÑàïú'1<GUdtƒ™Ÿ›‹ufYE5'îåÚÎǼµ¬£™€ricZTNHCA@=8;12--4,,++)-,++)*,*))(''%"!     +0ÿÿÿþþÿþþüüýÿüúûþþüýüþþûûú÷øù÷ùùùú÷ûùõôõööõö÷öõõôôóõùþõòòòòññòñðððððïðïððïïîîïïíìëëêëììëéëëìïëêìëêìííîîíëìïïîïïììîïïòòôõöùý&NJš?# +þýüüþÿÿÿþþýýýþþÿÿÿ     + +               +      .!  "&'('')((++,,-.1568:<?ADHKPW]dks|‡”¡¬ºÆÖæõ2@KWg{ª¸¾¿¾¸§‘|p^N?*$gðëàÓƾ¸¯¤›‘„tkdZSMHC@?=:=0.,,.+)21+10+**+*''''%&%"!   + + +(þþÿþüýýýúýýûúüûûýüüþûýþøøøøùøø÷þûöòïôø÷öõö÷øõôôõùûõòóóòòòòðòóñ÷üîïïïïðíêïîíîííìëìëêëêëêëíëëêëëëëìíííîîîîîíîëìîïïñòóõûùü/jEI˜ÿÞN(ÿýüüþÿ  +  ÿýþýüüüýýüýþÿ    +           + + +    + +      5$  !%''(()')),-+..0579<=@DGKNSZahpw€œª·ÆÓçü )9K\kz¥¸ÅÕáêãÝ×Ä­–…rbS@-.)úñàÑÇ¿¸¯¦ž’…ymd]TLGB==<844/-,,,,-,)((),-,*'&%&&%#"      +  +  ÿÿþþÿÿþþüûûüúûûüþþýýûþ úøøúùùøøüûö2õø÷õ÷úûùõõöõöõôôóòóóòòóóò÷ûñòðñïï÷ ôìííîííîíëëììììêëíìöííììíîííððïïïïîìíîîîïñòôùù5œÍ RìT) ÿÿýý TŒ_ þýýþþþýþÿÿ      + +                       +   +       $!"$&''(()(++---.0159;<?AFJNRX_flu{…”¨µÃÓäù!2CTg}’§ÃÛíýöãʳˆuaO: ñàÓÇÀ¸®¥ž’‡{maYRLGC?;::44//.,-,+,*(()**)(')(''%$$# @2     + +  ÿ Hýÿþüüûüýþÿþýüüýüûùúûùûùùùùùúö'O!ó÷÷÷ùüúù÷õøö÷õõõóòòóóóóñòòñõùðñðîõòíííìììíëêëëëëììïìëñíííìîíîîîïïîïðïíîïïððòôö÷ÿ +2zK)M ´G%  ÿýUSYu¼÷ÿþþÿþþ +ÿ  +   + +                    + +     *   !!)"!   #%&'(((()+*-,//136:<>ACFKPV]djqw~‹Ÿ³ÀÑã÷ +3H]sˆ¡¿Úö &7FROE0êÒ¸„nYB&òãÕǽ¶­¤œ•ˆzk`WOIDA>:8642/1./.-++)'+-)('&%'+$%$"#"!        +   þþ© ûûûýýüüýýýýüûûûúûùúýúúùø÷øøùúúúûù÷ööùþüöøö÷úöôõôóóóóòòòòòñðóõïïðïíìîíöòìëììêêíñðëììíëëëíííìííííîîîïîïïíîîïðñòôõ÷þ *Y« ¹h5 ÿþÿþ %ñ +3Lû&ÿþþ       +                    +           "$(#$*   O-! !#%((())()++,/02369=@CEHMSX`iou{…’§¼Íßù.F_x—´Ïð "<Yhv{yr]>% íί‘w^E+ñãÕƺ³«¡™”ˆzl_UNGB?;9742/..064,)''&')(&$#"#$&$"""!!     $ + +ÿÿþûýýûûþýüüüýýýüûüüúúùúûúúúùøøøùùù÷÷ùø÷ö÷þý÷ù÷÷ûõôõôôôöôòññõóçëñïïïððîîîíöòíëìëéëîðïëëëëëëììíìíìíííïîîïîïðìíîïññõôô÷øüÿ "3CORD4%  ÿþýþÿU€Lûöÿ ÿÿ   +  + +   <               +     +,"! ! z;!  !"&+))),1(,,-/0348;?BEHLPV]cksz‚¡®ÄÜï-A]z–¸Ùþ%:Pm…“œŸœ”…hH%ãž}aH/ýîßÏÁº±©Ÿ˜’†yl_UMFA>;87630/-.0H1('&&'('%"""#$%$!'%"!  +  + þÿÿþþÿþýÿþýþýþþýýüÿÿýúøúúúùûúúûùùúùøøøù÷÷øøø÷ø÷ø÷öõöôôóõôòòòñ d2íïïðïñîïïïíííììññììëêëëìììììëëëììîîîïïððððñìíïðññöôõ÷ùûþ  &'# þýýþþ   ÿÿÿ + +     + +   I           + +        ! $(  &! "!!""!#&)+,)-<*..-22469<ACFJNSX`fmwˆ”ª·Íéþ&=Ts‘²Õö$Sm™©´·»¹°£ŒgAôÒ©cI1þêÛξ´­¥•„yk^TMF@=:865401,,+2-)&'((&%$""!!$$' $!""       +  ÿþÿþüÿþýüüýüûûþûûûùûùùøûûúûúùùùùøùø÷÷÷÷ööù øø÷öööõôôóóóòê?Ñxêïñîîðîðïïíìíìëõûòìëëêììëëíìëêëìììíïïïðððïðíîïððòóóõøúûþ    + +ÿþþþÿÿÿbXÿÿÿ +    + /%       O             "!   " "   !!!"""%)*)**,0,-./4679:>ADGKPVZ`js|‚Ž›ª¿Øò 5Kf„¥Ïû"Q{™§´½ÈËÌʶ¤ƒ[,ܱ„bF.þæ×ʼ®§ œ’ƒwk^TLE?;<>532..,+*(((&&&%$#""  !"" ! ##"     Mÿ +ýüüûþþüûùùûûúûþûùøøùùùùúùúúøøø÷öö÷öõù'øôõõô÷öôôóòòòò&!ïñòîíïîðïíììììêîõóìëëëììëëììëëìíìëíîîðñððïñîîîïðóóôõ÷ùûý       +[þþýþÿþûVOýÿ    +  + *"                  "! %$    5$!!!#$#$&()*))*-....568:<?BFJMQV\dpz‰“¤³Êâü.D\x•½ð#S€¡´¹ÃÌÕØ×ÓÌô”k7ßµƒ\A' ùãÑƺ¬¥œ˜žuh]TLD?;:;531/-,*))('&$$$"!!! !&   )$    + ThEÿ ÿüÿþýýýýûýýüùøúùúûúùùùøúúûúùûûùøø÷÷÷ööö÷ôöõõõööôõôòòòòóóïíòðððïñîïîïîííëëììîïííììîîìíëììííííîîîòôñðëììîïïñòóóõöøúüýÿÿlÿýüýþþýþöùÿÿ +                             &$ ###!   !"#%&$&)+++*-,../257:<?BFIMRYahtŠ“›¬¾Ôí#9Ok‰ª×BsŸ¼ÆÆÏÚßàÞÚÓʼp;Ù¯U;#ñÞ誤š“¢‘€sdZRJD?<85320.-+*()(&%$$#"!    (""    f + þýÿýüüþýüýüüýüýûûýúûùüúùùûûýûùúûûùûûø÷öö÷÷ùõö÷÷÷÷÷öóòôôóóôóòòñïðïñðïïðñððîîîìñóîïíéðíííìîîîíïîîðïðñïø+íïïðñòóóõöøúüûüþÿÿ÷ýþþþýþþýýþÿÿÿÿÿÿ Rª      +                        %#  !#!  !#$$#%&&&(+,-,-//20249=@BDHLQW]fmy…“ž¦¶Éßù/KazœÃô)_Œ²ÎÕÖÝáââàÝ×Ì»œm5ФwO5 ìÚ̽´¨¡˜“ŒrdXOHD@;8532/.-+,(((''&%%#"!!      + +Fn  +þþþýÿÿÿþÿþþýû %ûûûûúûùúùùùüüûûûúúøùúø÷÷÷÷÷÷÷õ÷÷ö÷öôôôôôóôôóòòñðïòñððïôñððîîíìííì[ïëíìîîîîïðïïððïîìü7Eíîïïññóôõøùùúúûüýþþÿþÿÿþýøúýþýýþÿÿÿÿ[Ö +            """    !'$##+)&(')+())+-1./802368<@BDHLOUZ`it‡‘—¢®ÀÔê$=es‡®ÛFx¡¾ÏÚÞáãããáÞ×Ë·”c+ó—nH.æØ̺²¦œ”‡„}pbWOIA;:8400..+**'%)&&%#$"!         Z|ÿýûýýýüýþýüúùùùùùùùùøùúúúûûùøøøø÷÷õõôôõøö÷ø÷õõøõòóòòñòòñððñððïïîíîíîîìííììëéCåìììëííìíîðîîîîïîíðòìïïðïñòõõõøøøûüûúüüýþþþÿüþýýý ÿýýþþþþÿþF    &                !!! !$#"#%%&%$&)))(+-,..11335:=>@EJNSW[ak­²¯µÄ×ó *G[w—½êV‡«ÄÔÜáããããáÜÓÅ­†Qᯅ]<#úÞÐÈ´®¢™Žˆ…zm`TOIMM65>U--+))&%%&$###!         ,3ÿÿýýüý"ýýýüüüúúúøùùúûùøûúùùùøøøù÷õööõöõ÷öø÷úû÷ôôôôôóóññðñðñôïïîîíîíííííííîíìíñöîìììíííîðïîîîíïïííîïïññððòôòôõûùùùùúúúûûüüûüûüÿüûûúŠMûýýýýýýüý ÿÿ     +   "/,             "$!!" !!#$$$&*+(')**+..-./11458;?CEKQTW^ep¶Â¢ªºÌâú0Leˆ§Éö,bŒ°ÇÔÝáâãâàÝ×ͺ›n9ýÇšrM/÷ØÈ»±¬ –ˆ„vk_TNOdb43Bc-,))('%%####"!    +  + +ÿþýýýýýû?Føüüüüüûøúøúúûûùøùùúùøøøøøù÷öõ÷öøõöøö þõôôôôóòóòóõññððïïðîïîíìììììíïîíííîííïîííîîîíîïîïîïñðïîïñññòõóõõ÷ö÷÷÷øøùúúúúúüûý ûüüùV/ûþþÿÿýüýÿýþÿÿ   +    +    !)"       !!!&#  !!"#$$$,.('')++-.../33568;ADINSZ_bjuƒ›¥°½Óç9SmŒ¯Ôþ1dŽ°ÈÓÚßááÜ×ÕÐÁ©}Mᬂ\;$ÿçÑŹ²§”Ž†„~vj^TKS[E540,-+)''&&$$$""""!'PO   +   ÿÿýýþýþýüýüüüüüúûúúûûúùùøùúúúûûùùøøø÷öøù÷øù÷øúöööøùôóóóóôùòñïñïïïïïñïîîîíìîîîîìîîìíøðîìíìîîîïîîîðóñíîðïðóóòôõôõõö÷øúûúúùùúùúøûüûüþüøùûüþýýþþþþÿÿÿB            !!#"  !!%&$$$$'*+))+++-10//04468:=@EJOTY_gv~‚‘©µÃÕó!<Yt“¸Øý/c«ÃÏ×ÛÜÛÕÊý©ˆX+üÅ“iF,óßËÁ¶­¤š“‹„}uh\RKE=8323.+**&&$$#"#""#!!!:í    +  +ÿÿýÿþüýýù úüüûúûûûùùúùúùùùûúùúøûý÷÷÷÷øøø÷÷øõöõôôôôôôòòòòðññòðïïîîîíîíìííííííìììíììðîîíëìëîïìïðîíîîîîïðïïñòòóôõö÷ø÷øúùûüùøúúúûûùûüÿüüûüþþýýýÿÿþÿ 7        +2= +     "$%#!#**'()++*,-///25558:?CFIMRY_gqy„• «·ÆÙñ &A\u’¸Úú#S|›´ÂÌÑÑÏÌ»¢ŽoX,Ô¤vQ5 +ûêÖĺ¹« ˜”ˆ}zuk[OIA<7234.*)+%%%"!!""  !-Áâ   + ÿÿþþþýþýüüúûüúûûûùùúùùúüýûûúøùøûþø÷÷÷÷÷÷÷÷÷öööú÷óõõóòòòòððñðïïñïïíîîîíìííëìíììëìëëíîíìíìììîìùÿòìïîíîîððïðòòóõööööõ÷÷÷øøø÷÷÷ø÷ýûûùûúúúúúúüüýýüýþýþþÿÿÿÿÿþ     0       +$* +     $# 3.&(&')**+,+1D055:79;@DIKNRY`emw‡˜¦¯¼Ëà÷+C]z–µÓó?h…›«¹¼Á¿®”€QF1ÿÖ®ƒ];"ôãο·³« œ’„}{uwv_MH@:630//*)'&%'" "!      + + +  ÿþýýýþþþýýýüýüûûüüùúûýúùúüûúúùùøùûùø÷øø÷÷úú÷õõöõõöõóòòðóóòñððððïððîîîîîíììììíìììììíñíìíììíìííííîîîíîïîðïòòòñòóôôõöõöø÷öøùö÷øþúÿþøùùùúúûûûüýüüüûüþÿþÿÿþÿ    + +  O#              !"!     "#!,)%')/2++,.21936:<=<<@FILPV[`gnu†š¦´¿Íäû-F^x’®Ëè$Gj„Ž”–w^V&&üÖ³kE&ùëÜǼ³®ª œŽ{zvl^RMIA:73/.*)('&&$"!        ÿÿÿþýýýýþþÿþþþüüüüý ýúÿûùúùúúùùùùùøù÷ùø÷øùúûýûýúõöôôóòòóòòòòðñððïïíîïîíííîììíìííííóüîìîííììíïîííííîîïðñðôøóõôôóôõõõ÷÷öõö÷÷ùüýøúüùúúùùúúúûýþýüýÿýýÿÿÿ     +   !      !#" ! #'!""#(/+'*./,--0201568;<=>BGMPQV\ad‡Â›·´¿Ïäû+E[sŒ£º×ö BduupWK=濨ŽkM2 ùîäÒ¿··¯¨£—‰ywsgZOIF@;72/..**&%$$$"!!   + +ÿÿÿÿþþþþþýýýüüüýýûúûúúúüþûúùøøøúúüùûùûøúýùùøõõõóóóðòòòñòññððòïîïïîíìíîííîîîììííîííîìëëìîîííîîïððïðñððôóôô÷õôôõõöööö÷÷úúøøùüøùúùüùùúûüüüýýþþþý ÿ +    "#("!#"   DR%  '   !!!1)"$#$)0-(13*.0.0/235689<>@DHMPSX]dlœ‘œ²·ÁÎâø &@Wn„—©¾Ùíý6FPKN3# +áÉ°‡lN5!ñèÚɺµ²±ªÃ—…~xuqcTLFC?852...)('$"$!    + + +  ÿÿÿÿÿþÿýýþþþýüýûñùýü ýÿúûûûúûÿûù÷ùúùùûøùúùø÷÷öööõôöõ÷0ïóóòòñòòñòïîîîîîìïðíîíïñïìîìììîíìïïîîîïñòíîîîðððññòóôöõõôõ÷öõ÷ööö÷øø÷úûúùùùùüüÿýûüüûÿýýþÿÿýÿ  +   ""%)))*((&$# ^w- /!  !!!-"!"#%%'('.1*05...1449;9<?ADIMQUY^fntz‡œ¯ºÃÐÞô  7Pew‡—©ºËÙé! ôؼ¡|cI2!õäÞÒûº²­§¨Â˜xti]QHC?;73/--.(&%$#%    +   + ÿÿÿÿýýþÿýýþýþþýùpþüúþüýüûüúûúúüþüúøúúùøø÷÷øùø÷÷ö÷÷öõö÷öðóôóòñò÷ñññïððñðîïîííîîòðëîííîîííóóïíîïïîîîîîñðïñòòòóôóø÷öõõö÷öö÷ööö÷÷ø÷úùøúùùûúûýþýýýüýþþýþÿÿ  +   !##%),.2230.,)&"!         "   !   #$%%&')++-0.-.0538;<A@AFJNSW\agmt~ˆš­¹ÆÑáð0F\mxƒ‘ ¬¹Ç×âæìêÝÅ®—€lY@,üêÞØÉĸ¸´¯¦˜¯œ€wodVMGB=9640.,+/''#"!"!       +ÿÿÿÿþþÿÿþÿÿþþ÷©+þýýüûüýüüúùúûúüýúùùùùùøù÷øøûú÷ööõõõôõôññõôôôòóðôòòüõñððïîîíìîïîïðîîíîííìííîíííííîïïîîòôñòóôóòôõöõõôôõöõö÷ö÷÷÷÷ùùùøøùûùùúûüýýþýûüýýþÿÿ! + ""%),28;>>=;;3/+)(#     ! ## !  "%'&()*,,++./21456:=BBDGKOSZ`cipv€Šš¬¹ÆÒáîþ(9M_hpy‚œ«¶´¸º´¦—ƒpZI7(þóâÕËÁ½··°«¥‰‚ysj_TLFA=842/-,*)''$!! (&    + ÿÿÿÿÿþÿÿþþýûûýüüûûüüþüüüûüÿüûùúùúùøýùøøûùøööôôôôóóóõ÷óõóñôððñò÷óîîîîíììììîîîîíïîîííììììììíîíîîïïïóöñòóóóóôôõôõõõöõõö÷öö÷÷øùùøøùúúùùúúüüüüûûüüþþÿÿÿ*   + $)+07<@BIIGGC=850*$!    !!"$"!%'()))+,+-.2;64569;?BDGKOT\bdiqw‹˜ª¹ÇÒÞìø )>NV[^er~‹Žˆ}oZI:,"  øíÜÐļ·´²­¥˜Š~yri`VOIC?<830.+*'(%$#!        + ÿÿÿÿÿÿÿþý  ÿýûûüüüüþüýýûÿ +ýûûúùùûúùüúøùøøø÷ööõõôôóóóôñôòñóõòñòðïîíííììðòíîïíîíïîîìîíììììîîîîîïïððñóñôòòòóóóõôõöö÷öõõõöõööø÷øøø÷øøøúúùúüüûûüüüýþþþþ + + '(%-4:@FKOVVTQLHE@5-($ !    !#%'$#(()+)),--/23<85579FABDGKOT\adjqw€‹˜§¹ÆÑÛçðÿ +9BGHNYfoomed_UF9,"þñåØË¿¸µ³®¬Ž†~tkb[ULFA=974/.,((&$'#"          ÿÿÿÿþþ ýþýüüüýýÿýüüüþýüùúúùùùùøøùø÷øøø÷÷õööõõôòòòñ÷ôñôøóòñðîîïîíììðóíïðíïíîîíùõîíííííîïïîîïïîòñòóòòóôóôôõö÷÷ööööõöö÷÷÷÷øüøþúøùûüüüüûüþþüýþþÿþÿ  +  "&*1=JJQ\glrle[ZVG;3.'! "!!"! !$&(&$41)++,++/14224579<YGBEHMPT]ceksyŠ˜§·ÃÑØáéõÿ +"+38=DLSTOHC;0( üõòîåÙÏÈÁ»·´ª¡ˆ‚ymd_VOGC@<742.+)('$##$        2-ÿÿÿþýÿÿüüþþýüüüüüýýüûüûúúýü ùúúúøø÷ùøùø÷ø÷öööööõõóòóòòüòòòôòñðïîîïðîîííîîïïîîíïïìøôîëëììëîïîîíîïîòòòòòô÷ôôöõõõ÷÷õö÷öö÷÷÷÷÷øøû÷þûùùûüýþüüýýþýþþþÿ    #'/9EN^iyŠ”œ©†zq]NB71*" !""""$!%&(&$72*+++/1,02144458=QFCEINQT^dfls{‰–¤¯¿ÎÖßåìóü $+-34321*$  +øóîèàÚÕÚÝËÄÀ¸® ‘‹…rg^XQJGE@;62/,*(%%#$"!       +  yþÿý ÿÿýþþýýþýþýýüûüýüüüüüûûûõ>øùùùøùùûúúùøù÷öö÷öõôõýÿóòòøòóñððòóñîîïïîïðíïððîîíîîîíîîìíëëìëíííííîïðñòóóóóùôôõõôõööööööø÷÷÷÷ø÷ø÷ö÷øùùúúúüüüûüþÿþýûÿÿ +  + "$*3@KXm‘¯ÊðéÃ¥~dVJ>3,'!$ ""$  !$%%''')*)*5:-031544779<AEFHKPUY^emry€ˆ”ž³¹ÇÏÛßáçîô÷ú  ûôëäÞØÑÌÅâòþ»´§–‹‡{kaYTNGEC?:410-(&%$$"""       ÿÿÿÿÿþýþýýþüýýþþüûýüüüüúúúúúø÷ùøøùøûùúúøøùúøøôñó÷õõóôóóôòòòñò÷ôîíîðñîíïïïïîîîïíîíîììîìëëìììîòðîïïòòóóóóôóôóôõúú÷õõõ÷÷öö÷÷÷öù÷ö÷÷÷ùùúûúûüüþþýü %ýÿþÿ +  +"(0:GSe² e¹Ôš1È‹lZMA5-' !%("! !!$"$)+**+*+,/4/13467::;?ADGJLQTZ`elt{~‡’š¶±»ÄÒÚÚÝãåæêïõúþ  õêãÜÔÎÈÇÄ»ÊÒ¸¸µ¬œ””•‰ve\VQLFB@<831.+'&'%$#!!            + ÿÿÿÿýýþÿýþÿüüüýüýûùùûûúúùùúøùÿùø÷ùøùúú÷ ÷÷ôõóôöóôóóòññòôóïîíðòíêîíîïïìíîëíëíìììíìëêëìîñïììíòòóóôõôôôôôøþýøõõõ÷÷öö÷÷÷÷ùøøøø÷øùúúúûýÿþýýþ )þþþýÿ  +Z$#*3>JXq™äk6™¨i›ñ¢x`RG;0)#  ###%$""%&'*/-++,-15145569;;==ABIKMPTZ_ektz~†Ž”œ¦±ÅÉÑÔ×ÚÜÝßäèêìïóöøùóöðòßÓÌÊÆÁ½¾º´¯«±³«Ÿ“–”†rbXRLIDA>:62/,)&'%$$"!2F        + +ÿÿÿþýüýýýþýýþýüûüýüûûûûûûúøøûøøúùøùùø÷÷øð[Á[îõõòóóóôøôóòðññòñððïîïííïîîïðíííììêìíëëììêîîëìëììëëóóôôôõõõõõö÷÷ö÷õôõö÷ö÷÷ööø÷ù÷øøøøùüûýþýýþþÿþÿþÿ c) #,4?N^|µÀªâæ·Ö±“jOC8.&!"     "&%&&&(',3/,--.002354789:<=?BFIMORW]cmwu|ƒ‹–œ¦ÇÂÅÌÑÔÙ××ÜÝÞÞàâåãâßÖÕÍÇÁż¹¶³³¯«¯µ°¤š‘™Â˜Š€p`UNIFCA?;72.+)(($#""!  )!           +  +ÿÿþþüüþÿÿÿÿÿýýýýýýüúûüûúùùùûúþøýûùøøùïj˜ê÷öôôóôôööõóñññòòððñññðññïïðïñïíïììíîìëëëêññììëìíìëôóôôôóóôóôóóöø÷õõõö÷öôõõõöö÷öøø÷øøþ ùûýüþÿÿþþÿÿ  + "$+3@Q`‚¿È¹å桽ª†eNB6,% &3 ",, (  #'&'(&''(*-.,/312256889<<??@BEGJNQV[`q~qx~…ˆŽ–¦°½ÆËÎÛØÏÒÓÓÑÓÖÔÏÎÉÄû¶µ¾°®­ªª§¢³ØÌ’Œ—ËŸˆ‚r`RJFDBA?<72-,+)(##!"" #3(       + ÿÿþÿýþÿÿÿþýþýýþýýýûûüúùûúùùùúúúúûýÿüø÷öõõòóòõö÷õõòóòññóóòòññïîïððòðîïííìííëìíìíììíìììììöôôôôôôôôõôõ÷÷ö÷öõõöùôõöö÷ö÷øøùùøøý ùûýú—ÿÿÿ +    +  +#)2@Q`€ªë‹P—…%iÙ—s\RD4,$ x9"%&'%'(*+++-/1443359:9:=?AABCEHKMQUZ_ciqtzƒ„“›¦´»ÄÇÏÏÊÊÈÆÇÆÇÄÀ½·²¯«©§  ¢   £ž¤ËƉ‡„|‹‚‚r^PGCB?>=951.-+()%"!  +S=%           þþÿÿÿþÿþþÿÿþýþýüûüýýýûûûúùùûùù÷øøùø÷öøùøöôöóôõóòòòóðñðððññôóññññïîîîððîíòñîëììêêìììíííìììííôôôõôóóõôõõõôôööõõõõõõöööö÷÷ø÷øúùùúúúûûýù!Åþÿ   +  !(1=L\vÀÂ¥[°}hVNA1("$E"$&'')1-*,,-011238;;;=@>AAADEILMQUWZ_ejrvy}†‰‘›©´¼ÀÂÅÇľºº¹·±²ª¦¡ ¡Ÿ›™˜˜™•š…€~‚{zvomnfWKEA><;9632.+(&'% &P>     + +  ÿÿþÿýÿþþÿþÿÿýûÿþúûüþýûúüüûúùúøùúøøù÷ööõõôôóôôòòòòôðñññññðïðððòñïïïïîïîí÷öíììíëìíìíîííëëîíïòôóôóòóôõôôóôöøöôõóôôööõõö÷ö÷ø÷÷ùùùùùúûÿ!2ÿÿÿþÿþÿ  + !&-7CPcz–·ÚúëÇ­ŒkYKC9-&!!#&'5.**+.../1125::;I„ODC@@DHIKMPVXW]egnruw{€‚‡’¢¶¹¸¹½½¸µ±°¯§›™—˜™˜•“’•˜„ƒ|{{{wtskfa`XOGB=986410/,(&#"! +         ÿþÿþÿÿÿÿüûúúùûüüýüýûúûúúúùùøø÷ø÷ööõõôóóòòóôóòòòòóòóòñññïïðïïïðñöíïîîìëííììëìíííííëëìííîòóóõôôôòóòòòòõ÷õôôôôôôôõõù÷÷ùû÷øùùúúùûüüþþýþÿÿÿþþÿ  +  +  %+3<FUgp~™”‡wl^NE:0*%! !"#&*)*++../123369:<wÞ|=BCBDGIJPWVTV^gdiotstx|}‡”¤©¯°³´°«§¢˜“’’‘’Ž‘‡…‚{xxwvtttqnjb\YSOKF@9541/,*)'&%#""   /gD         ÿÿÿþýþÿÿÿûùøøøøøùûúÿüúúúùüú÷öúû÷ö÷õôóóóóóôóòñññôðñ÷õñððððïîìíîíîîììíìíìêëìííììëëìëëëôóôõóóôóóóòô÷õôôóóóõöõöõôøøøøùùøùùúûüýýþýýþÿÿýÿ   + + +  "*5;@NRWbimjd[TOHA4+&"   ""!%&'&D@,-/23359::=M‘PDCDFFEGJLUYTUY^aemmnrtzxz~‰•šœž¯®—–”Œ‡ˆŠ‹ŠŠ‰„„~vrponmmnopjfa\_RMIEB>830-*11%&%$$!! 0mI          ÿÿÿÿÿÿÿþýÿÿÿüúüûù÷ö÷ùúúýûúøùùúøøùø÷÷÷ööõóóòòòôòñññóõ÷óñï òïððñòðíîïîîîíííííëìîíììëìììíìëëõóòóõóóòöóó÷öõôòóôôõõôöõöõöúú÷ùøøøøûúûüüýüýýÿÿ      %%/68@DJORTQPJFB=7/'" 6   ##!$%%2;2+,.13568:;>@7@EBDFEEIJKNRSTWZ\_ghpmmpqtw{€…ˆˆ …‚‚„†„ƒ‚€~{zwpokigeeghfef`ZXXvNMTG?=81-+$EM!##"!         +  +  ÿÿþþúúýýûùøöûüúûúûûù÷ùùøø÷÷ø÷õõôóóôôòññóòñòóóôóòòñîïòñîîîïðîîîðîíîîòðëëìííîîëíêòóóóöóóóöóüòóôóóôôüûõõùõöö÷úúøøùúúúúúúûüþþpýþþK  +  @1"%(.4:>ABDDC@<71-+& 2  "  ##&(&,+)-/014779;<AAAADFFFFGHJMOQRTVY^bbejmlnqruvwx|€…‹†~~~}~~xvpkhedhe_^_`b_\[VSRQNrÜf<<?7.*'-/$#"!               + ÿþþÿþÿÿýúùûüÿýööøüüý ûýùùúùù÷ö÷øøøõôõööôòòòóñòñòðïñòñððòðîîîîîìììëìíìîíîíìììììëëëêííêëéôòòóóóòôóòôôôôóóôôôõ÷öôõ÷ööøøù÷÷øùúùúûüýüýýýþþýÿþ9 +    $$&+/2379;843/+(%#     "#$%,3,'+-./1467;<>@BBDKHEGGFHJLNPSVWY^_deiljnppqruv{}zzz}yxuvwxxrjdfc`]cbYUTVVURPNLJGHŽˆ‰3982,(%#!!=G    +  +     + + + ÿÿÿþþÿÿÿû÷úüÿõö÷úüûùùøøøùù÷öþüööööõõôòóôòôòðñððñññðñðîïïîííîïíìëëìîîíììììììëëëëêéëëëóôññðôòòññòøõñòóóòûòóôõõõùõö÷÷÷÷ùûûù +úüþÿüýýýÿÿþÿÿ    + +    #$'),./-+*'%"    !!!(/*&()+-/2788:<>BCDGGFHGGIJLMQWXVY[^cdfmjjmnpqsszzssuvtsplsøvaa_V£†TVTPOPQQKHIGDFGEF<751/-)%#"  Yx             +þÿÿüøûþÿû÷÷ùúüüþÿÿùúúøøúûúø÷÷÷÷öõõòôô÷ôóôòòòñôóññïïïíïííëðêìììííëëííììîòòëëíïêëñòñòñóòòñòòòñññòóóøúóôóôõõ"üóõ÷÷÷øùûûúýüûýþÿýþþþÿÿ:þ  +    $%&&&&&$$"  !  "$%%%(+-.15789<=ABCEFEFFGIJKMQVUWY[^bceiiklnnpqqrsstpmlkhghŠˆbc\YVƒnOPMNLTvyFCCC@=>;87420.,'#!"!              +ÿþþÿÿÿýûûüúùùùúûûûüþüûúûûøùýû÷ûû÷÷øøööõóóôøóòóñòóñõóððïïîíõùïíëìïëëñëëìëëëëìììíìêéêëêéóòñññ÷òòññòñòñðñòóõóóóóó÷öþýþõøøøøøúüüûúúþýýýüþýÿ +   +()"!##"   %a/!! !#'%$(*,-/2479:;=@BDBPKEFHHILOSUWY]^_bbeghhjkllllmooljgedb`]ZYYWVSVRLIHHGIQOC??<:7766721-+)&# !              + ÿÿþýÿþýüüûúúúúúûúüüúùøüúúùúøúùö÷÷øüúõõôôôóóóóñòóòóòïððîîíííìììêëêêìêêëêéèéêêëìêèèèêééññïîïòðððñññòñðñññòòòòóóôôóùøõö÷ööøøøÿúûüûûý ÿþÿþ        /,       &$0úM !!"%$#&(((-.01688:=>A@JGDFDGIJMPSUX[[[\^`abcdffjjijikleda`_\ZYVVTRPMKHDCDDCB?=<;9665432/.+)'$ !           +   ÿþÿÿþýýüüüûûûûúüúúøøüøúùø÷úùö÷÷øúùõõõö÷òóóóòòòòòñùøðïîíííìëìëêêëéééêëéèèèèêëêçèëèééîîíííîïîïñððññððñññòññòñòòôôõôôôôõö÷÷÷úûùúúûüýþþþÿÿþ +     + + ¹‚&            '!(¿H  !#%''(.7GP3779:;>@>?ABJLGIKMPRUUVXXZZ\]```befddefea_^ZYYYXVTSLLKHECBBAA@?=86534340.,*('$""!!.    (     +  ÿÿþþüýþýüüüÿþüüúûûùúùùø÷ùø÷øùøöööõö÷ôõôõôóóòòñ÷öòñïïïíîìîîëììééééêêéèüüêëéèèëçèéìííîìíïïïððððòñðñññóñòòðòóôõóôõõõ÷øøøøøúûüûûûûýüýþþÿ  +      64         ™c"H%! !"%')-6EZ[35889;<>????KMFHHKMOPRSUVWWXY\]``_``_`aa_[e]VVUSQXpWEEECBB@?><:76533920+)(&%&#!!          ÿÿÿÿþþþýýýüüýõüúûúùøùú÷þÿù÷øùùööøþ÷ùöúöõôóóóññòòóòðïïíîîïüììéèèéééèééòñéèççèèçççííîïïíïïððññðñòñññòóòôóôóóõö÷øõõ÷øùøøùøúüýûýüüýýýÿÿþ   +    +   #   bZ      /» .€!##$)5<;&5476899<??>>CEDDFIIKLOSQQRTRTVW[\]\]^Z\\[Xbˆ\STRPMN^OCCB@?><:;964431230-(%$+'"!             ÿ $\Z ÿÿþþÿþýýýýýýüüûú Húûúúùöøø÷þ÷÷÷øøööùøúøûöóòóòóòðñññòðïïðîîìôìêéêèééççèéèçèççççèæææíîîîîìîîïðððïððððñòññóóôõóôôöõóôõ÷øøø÷÷øúúûûûûûûüþþþþÿ  +    !‡}       ,5 +      !! $*dÕA424767:<;<<>@ABDEEHIKONMNRaXRRTVZYYYVVWXVY^VQQONQNFCBA@?=;97654311..-.)&;,"#             + |x;ÿýüûüýýýüûüýù…úûúûúú÷øùø÷÷÷÷öö÷÷øñ÷ù÷öóùóñóóòñððóòîîðîíëêëêêëêèèééêêêêèèèèççææåìîîííìíîîïïïðððïïïñññòóòóóòóóóôôôõö÷÷ø÷øùùúúûûþüþýûúþÿÿ + +       i_           "!(²ÂN323566899;;<>>ACCCFGHGJJJOd[QQQQSTSSTUWVUWVTSKNNOMIFCA@>=;8763221/-.-+(%?.        –æÝO   üüüýüýýüüýýûú÷úúüûøøøøø÷÷÷öööõõkø÷ôõõüøòõóñðïñòíííîïëìêëîêéèèêêìëììèççççææçåëíîííìïîîðððñðððñõõññòóñòñòóóóõöôõ÷÷ùóìøúúùûúü! ü ýÿ +     + +                  #$)S´=20234466799:<=?BBBCEEEEEFHKONNMMOOOPRUWSSTTUWMOMJGHFB?=;;97651//1/,,+)'%*%         +  + +/jj þþýýýþýýýûüüúúúúúùýû÷úø÷øø÷÷÷ööõõ)¹ööôôôòýóõóññïîîîîîïïëìêëîëééêééêéêêçèçæææåææêêìíêìïíïïîîîïððòøöïððñðòññòôôõöõõööîkÜ+öúùüûüüüÿÿÿÿ       +                                .%!$(.""../12245456778:<????CCBBCDDGHIIHIJKLNOQRPQPUXYVTOLHDA><:988:92/--10,*)'%"'            +  +  + +ÿýüýþýûûüûüüûûúúùùûúø÷øùø÷ø÷÷÷ööøøù÷öõöõôóñõóòñðñðïïïñóïíìíëìëëêëëêééééççééçæçææçêêêëëíììîíìííîðððñðïïïïðñððñôõôõöõõöízý/õúùüûú÷ùûüÿÿÿþþÿþ                                          + +   +    ##%#"'*-..1323344576678:==ABAA@ACBFFGFEGIJKLMNQRU[[\]\XSMFB><;98:<:31/-//-*(&#! "2              + þüüýüûüüýüüüúüúýûûúøøùùúùùøùúøùû÷÷ööõ÷ööõôóòñþððððïðòïíìíìíëëêíêëëëëéèèçèèçææåæììëëìììììíîïïíïððïðòñïðððððòóòóõööö÷ø ûùùúûúùûûûüûüþþÿÿÿþÿ    + + +                                      +    "!! %%&*///013112333577:?=>?@?>@@oUCFDDFHJJKLOTX\]^ba`][VNFA><99:85343-.,,)(%"! '             ûUCÿ üýüúûûûüþûúúúýýúùùùùùùøûüúüúùõõôø÷ööôóóïðïïïîíííîðîííëëëìëîíìêèêéèççæääãåìêêêêêëëëììòñîîîîîðððîñïïððòòòóôõö÷ö÷öô÷ùùùúùùüúúúûýþþþÿþ                                         +    (%*)+,,/////01003446;9:=>>>@>·j>CBBEHJJKPWZ]bdfhgfd_ZUMF@<:9755332/.**)&#!            +      +  ùeZ øw‘(÷ýûûýýüýüüúûüÿüûúúúùûú÷ýþûûÿûùø÷ú÷õôõôñññððððïîíòöðííííîîðïïîêéêéèçæææååæëìéèêêêêêêìíìîîììíïîîïðïðïðòñòòôôööõõöøøøùøøùúúúûùûþýýýýýÿÿ  +  + + +                          +  +        #! !$'()(),--..-.1311233587<<==?:AA@ADHJJLRX^eluz~}zulbZXWMB=;99751.0/*)(%%"             +    !"  +ÿþýýýýýûüûýÿýýûúüüüüÿûýþþþþþB3ÿüûüú÷÷÷õôóòññððïîïïïïñïïîïñóïîðíêêêêéèçèçæåëùêéééêéêëëëëìììììîîîîðòòðññòòóóóööõö÷ùù÷øúøøúúùûûüýýýþþþþþ     +  + + +        +                        !"%&'()*,,,.0005B?/123358<;=>?AAABCGMMKOXam~™¡¥¢ž•„vgi–xDB=>?951.--))'&'"                 +       ÿþýþþüûûûûûýÿüûûùüüüüûûýÿÿÿüýû÷õõ÷õñïïïîîííîîðìíìíîðîîíëéèéêèççèéåãèéêéëêëêëëìììíìíïïîîïïòòôòñðóóôôóõõö÷øùø÷øüùùúûúüýþýüýÿÿþþþÿþÿ  +   +     + +       +  +     +                +          "!"$%()'((),00.2MO+0/012487;:COC>DFHLMOWarŠ£¹ÇÒÑÌÅ»²£ŽzxÉ—EH@<:961/,*)&%'#              + +    +  ÿÿÿÿþýýþûûúúùûÿúüúûûýÿýüüüþÿý4|$òõõùøñïïðïïíìíîðíííïííîîîëìíéêèçééèäãéééçéèçèééééêêëìíìííïï÷ïïððññòóóôôôõõö÷÷ö÷øùùûøùúüýüüüüýþþþÿþþÿÿ +    + +   +  +     +                      + +    !"%&-+(''),,23-.--.01284889<==?GKLNOVat‘«ÈÞðþøïìÜƹ®™}bTQLE>::72/-*(&#$$ "       +        +    +  +  + ÿÿþþþþþýüüûûûýùúøûûüýþýüÿ +    +   ÿ+ÑIî÷öõòòðïñðîííîíìëïïìëììììëûýççæçéèéäåéèèèçééêéçèìíëìííííìïïðïðôññòóóôõõõôõõøù÷÷øøùù÷ùùûúüüüüýýþÿÿþÿþþþþ +   + + +   + +     +           + +       +    +      + ' "##&(''&(***,++,,,..293479<>?@CMQOU`p‹®Ðè':6" ñÙǽ±”w`TPKC;853/,)&%#" +                  +   K”>ÿþÿÿýýýüýýþüûüüüüýýýÿ  ('033)  ûúøõóòóðïððïíîððîîïîíîîíìëëëëéèççèèçææèéèâXèòïåìíðííìíîîïïóòðñðñòóóôôôõôõööø÷øøøøùùùúûüýüüýýþýýþþþÿÿ  +      + +    +                            +Œê !!!!!"$%&&'(''())+-....1265BF;;=@FQUSarƒ¨Êê Dq‰‚g?ùÞĺªp\RNH?952/))&"#!  Z                +    +  +,Mí#þþýýüüûüüûûûýýýþÿÿ'<<EObg[J<2<$ ÿÿýúøöõòðñðñîîîóðîííìëëìííëëêëëéèèèæçæçèèéìôêëëêîðïïîííîïïðïñóñïòóòòôôôôõõõõööøøùøøùúüûûûýýýüüýþþþÿÿ  +          + + +  +                            Ð !#!"#$$'(('''(*++,.-,/013F;68;?JW[Zbw–»ã0y¶ÝäË–Qð×´ž~bRNJA:610+('"! "#        + + +  +    +  +     +    +òÚ%ÿÿþþýûýüüýûýûúùüýüÿÿ":S^m†°·›€cItj% þüùôóóññðîîðñíìíìíêééëëëëêëêéèèèæçéææèèèççëêêêéêììììíîîîòíðïòòñòòóôôôôôôõööö÷ù÷øøúûúúûûûýýûýýüþþøþÿþÿÿÿÿ +      +  +  +  + +   +          +     +        -&0! .#"!"$&&&'%%'()))**+-0/16457:>JX^fo¦ÉíM í.E+â•=á̸¦ŽmVQMB95/-*'$""hn.!     + +   + +   + +   + + + +  ÿÿþH”Aÿþþÿÿþýûüüûüýûùýýýþÿÿ"1[}‚´:' ù¼ŠfR0üúþýõôôòñðîïñîëëíììêééëìëêëëêìéçéçææææçççèçèèèéêéêëëëìíííïìêïðïïïñóôôôôóóõöù÷÷÷úö÷øùøùúûúûüúùùûýüüýýþýýÿÿ    + +           + +   + + +   +     +    +      $.%%" !"$%%%%))'''(+''*,.-/0348;>IZdmyŽ²Ñî Q·"‹©·kÈSé×Á©’sZOKD93/,''!"# ¥<              "    + + + + +     ýùùùþþ ýüýüûýýýÿÿþÿ $/E¹×5Ä¥ž=겂J3"ýûùõôóóòóññðíîìíììëëëíìëëëëëëéêèêìçäååçççèèççééêëëëëëïîíîííðïïðïðòòðòõôõ÷÷øö÷õöøûùúûúù +÷ùúûþÿüýþþýýÿ        +           + +   + + + + +  +     -$%!!!""'&%%'('&&(5=&)*+,-/25579>K]nw—¹ÔóR¿NÁ×ÜÂwòÞÅ©’xaSMG=5/+'%"#$!"!                 + + +  + + + +  + ýøööøúøþüýýüûþþÿÿüþÿÿþ +(7R“Ý%¢' ùƒ/ÚÂc4# þú÷õóóòññððíðíííììêëëìëêéêëèééééçèçäåæççèèéèéêêëììëëìîîîïïòïñðññòñóóøûöõõõøù÷øùö÷øùùúùûû øúûüüüþÿþÿÿþþÿÿÿ   5C       +  + + +    +       + + + + + +  +         +$  !"%"'&%%%#)/+/$'(*5--03347=I\r†˜µÍçE¦FÎÜÛÈ42÷ßÅ¥Œu_OJE<5,(&#"      ,+ +    + + + +  + + +   +      + øõ÷ùûú÷ùÿÿþÿÿþýýüýþýüûûþüýÿþþ %8uÇã—nNº_úò1 ýúøöõôòñññðïïîîíììëëëëëëêêêéêëëèçèçäæåååæèèçèéééëììëëíïíîíðîïïïðñóóòòóôôôôöøöøøö÷úùøøøùùúûúúúúùúüþÿýÿÿÿÿ    +     +  +   +        +     + +& "!"#"#%$(/*"#%&((0*--13989FYl~‰–®Èåý1|ñ–Ì¿Ÿ§@üâÅ¡„mZLHD80+&$$#   XJ     H1Ë» + +   + + +   + + +  ýööúÿþúõþý ÿÿýÿÿÿÿþüüýýûüüüüýþýþ$4hÈöãBÇ4QUÎoé‚0 +ýù÷õôòòòðñïðîòñíëìêêëëíìêêëìêèééçççäåååãåæçææçèèéëìëëìîíîìíîîîîîðññòòòñòóõøý÷÷÷ø÷øùøøøùù÷ùúúûûúûüüþýþþþþþÿ       +  + +    + + + +  !%"'  !/*#$"(+$$$%'''''+,/2679BSbs…•¨ÂàóU¥afAð™=ûàÀ–vbSHC@6/)&#%! rn%%     ."{y   + +     +       +  +  +þùõ÷üúöøý9 þÿÿýüüûûûüþýþýýÿ#4D~ÚîÿX°éû’3öÏv, ü÷ûûóóóòðñðñïððîììëëëêìíìëëëééëéêææãäääéèäåçæéêèèêììëêìîôîíïîîïðïõõñòññòóô÷ø÷öø÷ôøø÷÷øøø÷øûùøúùùûúüüýþýýýýþS2û       + + +     + + +      '$  E<"!!##$$"$%%&&%'),/258=L\i{ŸºØê*e§â÷æ½}3ûÚ²‡hVLE@;2-'$""!!-*               +  +  +   +   + + +    þùöøû úúýÿ?þþÿþýüûûûûþþÿþÿÿ *9N…ÉÛNjZ%Ò½µ] û÷øùóôóñððððïîïîííìíìêëììëììéêéèèçéèãããéæäåæçééçéêëììëëíñî òððïïõõòòòóôôõõõ÷ö÷ö ú÷øùùùù÷øö)öúúûüúüýýÿÿþýþ þÿ     +   +    +    +   72!!""!""##$'&%$&(*-2569DTcsƒ–®ÈÚð +-T˜›~SôÈšsZLEA<6.)&%"  #      +              + + +     +   +  +   +ÿü÷÷úýÿù÷ûþýÿÿÿÿÿÿÿþÿýýüýûûûüýÿÿÿ ,BSqºíò̼Ž{x5  þù÷õôõôóòñðññðñðîîîììììíìììëìëëéêççéèââãäãäæåæççèéêëììììííîòòòñññòóòòóóòñôùøöö÷ úøúúúùùúú÷ öúýûûûûþýþýÿý         ¨?  +  + +        !#  ""##$&$#%)+.1357=IYfs‰Ÿ¸Êãõ5LQt<ب}aNA<;82+'%$"             + + + +    +   +   +       ÿú÷øöøûø÷ýÿÿþþýýþþþüûûýüþþþÿ -=N`n‰¨‚mXE0 û÷öõôôóòòòñòððððîîíîííììëêëêëêëêéèèçáâáãääååååççèéìììíëììíîíØëñø÷òïññòóññüù÷öö÷û÷÷øøøùúùùù÷øùúüûüüþþýýýÿÿþüüo4 + + + +  +  + +f,  +  + + +   2#'     !#!"#!##+c,'*-03457?NXdv§¼ÍÚéú®AÛ«‚dQB8563/(%$! "+P8      +     +                +  +    + ++ÿýúöôöùõøþÿþþþþÿýýýþýýúûüüûûüýýþ +1BCKWJ=* ýùõôôóòóôññðñðòððîíîîîîììëêëëêêêêéèçæâåæääååååæççèêëêêìêëêìîýÓ@ðóõðïññòòñìl3óõööööö÷÷øøúùøúûúûùúûúûÿýüýüüþÿþTP +e.     +         + +    ¯[;I  ""! ! $"1ˆ5('*.13426CPYbuŠ¡¯¿Í×ÜããCô¥€cSD7122/*&$" #!7)         + +  +        +    + + +  +   + +ÿþûøùþþÿÿÿþýüüþûüþüüýüýþþÿ   +þúø÷õõôóô÷òñññòóòñïððîîïíîïìëëêëêééèæçáåèåãääæåäåæçéééééêìëìïJeðîðððñññññï +Eòööøö÷öùø÷ùúøùúúúûûûûûúøûüüüüÿþþÿÿ;9  + +  +  +     +    „¹"(  !! !"$#%,1,()+.23108EPV^l™¡ª®±µ±—ˆt`PE91/00,&'-!              &( +    + +      + +  +  +ÿÿþÿýÿýþüýüûüýÿÿÿ    þûø÷÷öõôòóõóóòòóôòñðððïíïööïìëêêéêèéèèèßââãâääçæäæêêèêêëìêìëîðøB +ððððñóòññòõóëðö÷÷ùø÷üøøùúúùúúúûüûüû7ýþþÿÿÿÿ + +         + +   + +              !! !!###$L=*'))-110019ENQWf|zƒ‡ˆ†zndVLB70.//-(%'+!       + +              +     +   + +   +  +  +ÿÿÿÿýüýýþýüúúúûúûýÿÿÿ þüù÷ööôôôóóóôòóñòóñòñðîîîìíöõìììêêééëêééçâäåããåæåæåçðïèêêëïìëìïïðçìïïïïðóóñòóôôõõööù÷öüøùúúûûûüûûûüþü/ýÿþÿÿþÿ           +  + +             !""#%J:)'((*+..--07AIKOV[dda^WOJE=5.+,,+(%$#     + + + + +   + +  +  + +  + + + +  +  + +  +    ÿ ÿþÿÿÿüþþýûýüûûûüüûüýýþÿÿÿþýÿÿýýüúøöõöõóóôõôòñòòññòïðïïîîíììëëììíêêëéíêééåßãåããçæåæääæççéêéëîíëììîíîïïïïïðððñóòóôóôõ÷øü÷÷÷úúùúûûúúûûýüþüûüüþþþÿþÿÿÿÿ +  + +  +               $JM"!  ##"#%$&')%%'(+-,-./3:@DGKQSPLFB=81-**++($#"! (        +  +    +  +    +  + /M    +  +  ‹‡ ÿÿþþýÿüüüýúúûûûúúûúúüüüýýýýÿþþþûûûûüùøøøõööôóóõöóòððððñðïîîïîíííëëíêéìéêëéêéèæåßàáäâããääãäååæèèèééëêìëëëìîîîïïïïððñòóóòôöõ÷úõ÷ø÷øùùûúúúúûûýþûüüýüýýÿÿþÿÿ   + + +    + +  + + + + + + + +     ;D"#'!!!$!$&&'(%%$'))*+.//047;@DGHD>71-,)()**%#"  ,     +          + + +   + +    #8  + HIÿÿþþþþýÿÿýûûúúûûûùúúúùùûûûûûüüüýýþüúùø÷øøùøöõöõôóññòõöððïñððïïïîíîîìììùýéëêëééèèææßâßâáàâãããääåççèèêêìêìîìëìïóòïïðïðïïòôóóõôôöõööùùøøø  úüûúùûûûúúúüüýþýýÿÿÿÿÿÿÿÿú     +   +    +       C\&'!"#%'(&#"##%'((*,*,--/02468:60+*)&&&))$"!       + +    + +  +  +    + + +         §¨+þ ÿþþþþýüûüüûûüúùþüùùúùúúûüûûûúûúùûùööøùôõôôôóóòñþõððòðòñïïíìíííìë$7çëêéééèçææßßßßáàáááââãååæêèééëêéëêêëðû÷ðîííîîïòòòóôóô÷øööûøøùùùúýýûúúüûûûûûûüýþþþþÿÿþÿ +;  + + +  +   + + +  + +   $$" #!""#&!$&&'%$%$#$**&'**++-0.1/5183,+)'&&%'(# !  +"     +   +    +      +         Èæ=ûÿÿÿþþÿÿýþ  üÿüýýûýüúûúúùùúúúúúûúùøúûùùÿýøùùøöõü÷õõóòòóõ÷óùïïñðïñïïíììëëíë%ëêêééèçæçæàßààáááââãäåäåçèééêêëéêììëîíîïïîîïñðïðôóôõõ÷ú÷÷ùøøùùúûüüûûûüýüûûûûüýýþþÿþÿÿý¯0 +   + + +      +*     !  !$"&&$%'%"#$%'()()*,->5A-..*('(&##$! $        +  +   +       +  %G   +      EJ þþ_ÿÿÿþÿýûüÿüüÿÿûûûúùùùúúùúùøøøùúøøýýù÷÷÷õôüÿ÷óø÷òóöùúñòôððððîïîîîììììììéçêêééèåççææâÝÞÞäãáááãääääåçèèèééèêêëëììîîííîðññïðóóôôõöù÷÷ùøøùúúúûûûüúûþüûúüýüüýýýÿÿ‚-û  +  +    F^     "!!!$%&%'%"!! "$')%&'')@S*$&&(''%#"!!! "          + +  +  + +    + + +  (J  +     + ýÿþCÿÿþýüüüûûüþþûþûûúûûùùûúùùùúùøøø÷ø÷öõõöþøóõôóö÷ñòòòòðññïïðñïîìììêëëëêèéëêïíææçàÜÝÞßßßááâããääåççææéëèêêéììëííìíïðððïîðòôôôõöõö÷÷øøö÷ùûüýýýüüúûüýþûüüýÿÿÿÿÿ ý4¤   + +  +"7      !   ##%*)%"!! !#&'""#$$&'%$#%$##"!                       + + + + + +  +  +  +         ÿÿÿýþÿÿýûûüüýüüúÿùùúúúùøúúúøøöøøöõõõôôôôóôõññôòñòññðïïñîìíííìëëëììêêêã ÅèæçÜÜÜÞÝßààáâããäæææçççèêçéééêëìììííîïïïîîñòóõó÷ùöõö÷ùù ÿûýþÿÿÿþüýüþüýýüýÿþÿÿ3                 !  !!"##)&#"#"! !"#!!"#!"""!!   U%                + + + + + +      +   +  +    + ÿþýÿþþþýþýýùûúûþüüûþüÿÿüúúûûùùùúù÷÷ùýöôôôõôóôóòôõññòñïðððîòùðííëëìëêêéëììëééêîêççæÜÞßßßàààäåâæèäååæçèçéêêêëëìííîîîííïðîòõòõóõôõõö÷øøí|ˆúÿýþüüýþüýýÿÿÿþÿÿÿÿÿ  +   +   + +  + + +       !+'$$%! $#!! !  !  !                     + +   +      + +      ÿÿÿþþýþýúûûüüûùüûýýûüüüûûøùüüûûùøøøøö÷øùöôôø÷õòóôòòòòôõðððïïò€B)åîîììëëêééêééêéçéóèçåÜÝÖÝàßßßââáäåäæçåçèçéëêêëîõëîîìëêêìîñòòóõóôôõõö÷÷ùýþ'/þýüýüûüüýþþýþÿþþÿÿÿÿÿÿþÿÿÿÿÿ  +      + #      _’%  # #%$#žÁR"&   $#                    +   + +     + +     +ÿ ÿÿþüúúûüûúùüýýüûûûùúúúùúúùùù÷øø÷ùù÷ö÷öó ÿööõôóññòòóñðïïîð6‹ éïìêìììëéèêèêïêçèñèäåÚãxÝÞßßààááâãäååçæèèíééêìðîìííìêêëéíòñòôõòõöôõõöøùùùûþg=PO þþýûýýüþýþÿþýþÿþÿÿþÿþÿÿÿÿþÿ    + +  "      Lu" "  !!ï5z%4i*%%     +            + +   +   +    +        ÿÿÿþÿÿþýüüüýýüûüýýúüûûøúúúùøøøùùøøùù÷÷ø÷õýù÷÷õóóòóòòóòóõññðöûóîðíììëëêêêëìëëëéèêéèèÛëUØÜÞßàááâáâåæäæææèèèèêêêëìîíìíììììïòðòòòóôôôõöö÷ùüýÿÏ{Zw þýýüüüûüüýüýýýÿýþþýýþýÿÿÿÿÿ    + +   + +            !$f|@ ! jd]     +             +  2     +     # '/ ÿÿþþýüþÿýüüüüöùûüúúúûûùùùøùøøùùö÷úùöôõ÷ööõóòóóóòöóñòðíëïîîîììììêéêëêêêëêêéçèçÜßH +ÛÝßàáááââãåçæåæççéèéíìêìííìììîñòïîññðõõóóôôõöööúüý +aüñ3 +ýýüüûüüüýþþþþþÿÿþÿýÿÿÿþÿÿþÿ  $ +    + +          !$"   !Kž9#       +              +  +  + ^` + +t™ÿþüýÿþýýüü/ ùÿùùúüúùùøùøøùú÷÷øøõõööõùøóóòòóòù ðóñîïîîîîîììíìêêëëêêêééêìèôéÚØËÖÞÝÞàçêäââãäææååçæêééììììíííëìðññïîñòñóóôõõõöö÷ùùúüÿ$ ÿþýüüýûüûüýþÿþÿÿþÿÿÿþÿÿÿýþþþÿ +lH    + +  + +           #%"$         + +   + + +  +     + Wa >g     þÿýýþüûDJ +öÿþøùúúùøù÷øøøùù÷÷öõõõõõõ÷õóòòñññóúðóïíîîíîîíëëëêêëíëëéèèèèéç ðÚÚÚÛÝÝÞàïöèáââãæçêæçèéééëëëìííìëìðñðñøñòñóòóóôö÷öøùùúýÿÿþûþýýüüÿÿÿý +ÿÿÿÿýÿÿÿÿ   S; C> + + +        %        QY    +    +       GU  +  +   + ýýûüüýû +#ùúùúùúúùùøùøøøøùú÷÷õôõõõõôóóõõòòòññïñòïîïïîîííìëëëéêëëéèéêèëéèñêÙØÛÛÜÝÞßèìåáâãåäåéåçèëééëëðïíîíëìíïîîòðñòóóòÿö÷öõ÷úûüýþÿýþýÿûûûüþýüüýþÿÿÿþÿÿÿÿ +þÿÿþÿþ Á°ü  +            1!19,$ 2  p     + +  +  +  +    +        + +    +ÿ +ÿÿüýýýüùöùûûúúúùùúúùøøø÷ø÷øøöõöôõõôôôóööóòòòññòñïïñîïîííìêëëíîêëéééêèéèèæèÛÙÛÛÜÝÝÞßßáááãäãäåæçæêêëêêïîìííìììííîîóðñòòòûùõööööùúûýüüüýýýûýûÿûýÿüüüüýþþþþþþýýÿÿÿÿÿþ      + +  +  +        .6" -%   !  +  +    +  +   + +    +!   ÿþþþüüýüüúúúúùøøúùùùùùùùù÷÷÷÷õ÷ö÷ö÷õóòóôõõôóòòòññðððïðîîðîìëîîëîðíêêêééèççæçæÞÛÙÚÛÜÞÞÞßßßßááãåäæææèéêééìëîõòìììììïðòððòòññòôôô÷÷÷ùùùúûûúúúùüûþøûüûûûûøúüüüýüüüýÿþÿÿÿÿÿÿÿýÿ    +   +      + + +    ! "       +    +    +    +   0  +  ÿÿýüýýüûûúùúûúùúüûùúúùøü÷öø÷öö÷øöøúõòóóõõóòóóññðîðïîïîíïíììïîëëììéêêéèèæçåæåÙÚØÙÚÛÞÝÞßÞÞàááäåãåæçççééêëêîôñìííííðñðñòòññòóôôôö÷÷øüýúúúúùøùûüûùúúûûüù(!øüüüüüýþþýÿþþÿÿÿÿ    +      + +        *(&             +  +   + +  +  + +           ÿÿÿýÿüüûüûûúúýûúøúüúùúùøûÿ÷ö÷öõõööõôú÷óôôôóòñòòñððððïîîîíììììëëêêêééêêêèèæååäåÙØØÚÙÛÛÛÝÝÞßàááââãäååççèêëêêêëííìíîïïðïðñññòñòóõöõõ÷øûûøøøùùøùûûøùüúùùúú ùûûüüüûýþûýýþÿþþþþþþÿÿþ       +   +     + !        + + +    +  +    +   +   +          ÿÿÿþýûýûüüúþûøøøùúøùø÷÷÷ö÷öõõõõõõóö÷ôýûóóñòòðñðïòððïîîíëììëëìëéêêèèêéèççæåååÛ×ÖÙØâãÜÛÜÞÞÞàãàáâáääçççéééêêêíììíîïîîïïðññóñòòõõôõöøø÷øùûúøøúúúùôùúùùúûøùûúûüüûûýþýþýþÿþÿÿÿþ  +       +  + +   /pc         +    + + +    +         ÿþÿüûûüüýûúùùùøøøøøø÷÷ö÷÷ööõôõóõóõöóñòññòñòñðñïïïîííìëìëëìëêêíïèééççæçæçäÔÖÖØ×ëíÝÚÜÝÝÞßãàáááããæåæèèèêêêëììíîïïïðððñðòòóóóõöö÷÷÷÷øùúúø÷÷ùùø úøøúüûùúûúúúúûüýýüýýý üýÿþüŠ·5 + +  +   + + +  +        "$4…x      + +   +   +  ÿÿÿþÿÿþýüûûüýÿüúùúùøøø÷÷ùú÷÷÷ô÷õõôôóôóó÷õ÷÷ñðññòòññïðïîïíîíììëêëëëëæýMRäìèææååæãÓÕÕÖØ×ØÚÛÛÝÞßÞÞßàáãããääåçççèèèéëëëìííîïðïñññòóóóüùõö÷÷öõö÷øøöö÷÷÷ø÷÷ùûûùùûúúúúúûþýþýýýý +ÿ +<Q  +   +        N>_ÄY           + + + + +  +  ÿÿÿÿÿÿüüþûýýüüüùüúøøùøö÷÷÷÷øöõööôõôóôõôýñòñðñòðñððððïîðîîîííììëêëìæwŒâíéææåäåãÑÔÕÖ××ØÙßâÝÝÞßàßÞààâäãäãåææçççéêêëìòöíîïðñññóòòóüøóôööõôõ÷öööõõõùöøøùùøùøøúùùúúùúüÿûþýüþø“ùýÿÿ +     +         :1ÙÀ      +       + +  +        )wSÿþýþüúýýýüúûûúøúûúøøø÷÷ûø÷ööõõôóô÷÷öóòòóóñññððððïîððîîîîíîîìéìîêêæäéççæææäååÎÒÔÕ×××ÖìóÙÚÚÜÞßßßßáäãåäååæèèçéëëëíøííðïðñðòñòòòóôõööõôö÷õõöõöõûøøùùøøùøøùùùùúúúûÿýÿýýþ´iûþÿ           + +     €)z       + +    +           :' ÿýüýüûûûþüûüüø÷øøøø÷øøøööööôóôóôôö÷õòòòòòòòñðððîïíîîííííìììëéééèêêéèæçæåæäãäÌÒÔÕÚÙ×ÙÙÚÛÛÛÝÞààààâããåæçéèççèêëíííììïîðïòòñóóòóõõôôõ÷÷õöö÷öøø÷÷ôøùøøøøøùùùùùùùûûûùüÿþýýýðöÿÿÿ  +       + + +              +  +  +         + ø  ! ÿ  + ÿýýýýýûûúûüüûûúüúùùøø÷ø÷ýõõõõõõõôóô÷õòòóööññññññðððíîîîíìíììëééèéêééèçççæååäããÈÏÓÔÖÖÖÖØÙÙÚÛÜÞÝÞßàáââçèêðêåæçèêíîëëíïðïïðïïñòñóôóòóôõõôõõöõ÷ö÷÷÷÷øø÷÷ööùûùøùøùûüûþùúûüüüüþþÿÿÿ!   + + + + +         "! !"       +  +         >´ +  +  +     + +ÿþýýûúûûüûûüûûûúùùúûù÷÷öøøû÷õûô÷ôòôôôôôóòñòòñððððîíîîíìíìíìêêéèêëéèçéçäåæåäããÆÍÑÓÕÖ×ÙØ×ØØÚÛÝÞÞßàßáâââääçççèçèëëêêììïîïôðïðñòòóóòôöõôôôöõõõô÷ö÷øø÷÷÷÷ö÷úúùùùùúúøúúüüüûüýüþÿÿþþÿÿÿÿÿ     +        + + + +   ',"(*'# )0          2'   +  +     +ka3  F%U* +  +þþþýüüüúûüúúúùùúøöø÷÷÷øöøþöõûøôùõóô÷ùûúõóñðððððððíïíïíìíìëëëëéèêêééæèçæåæääããÁËÐÓÔÕÖÖÖÙÙÚÚÚÛÝÞÞààáàãããåæèéééêêêêëííìïñðññðñòññòóõõôôôõôôôôõøöö÷÷ø÷÷÷÷øùúøùúöùúùûþûûüüüüüüýÿþÿþÿÿ ÿþþþýþ +  +   +         '8GJA,PC        + + kQ   +     +  9¸'  IK¨5   + ÿÿýüýÿüûýúúùùõõ÷ùøöõöööø÷õùöôôôóõóóòíI °ñòóðïðïïííìïòïëëêéêëêèçéêí÷åååääåâãââ¿ÈÏÒÓÕÕÕÖÚÜÚÚÛÝÝßßàââááäãçèèéìíééëíìëíïïððñðòôôóóóóøùôôôôõõöõ÷õöõ÷øøøø÷øøùùøù(øûúúþúüûüýüûûýýýýþþýÿÿþÿ0]þÿÿþþþýÿ +  + + +       !/’|]”/              +   +   +     ûü + %tš#  +ÿþþÿýüüûúûõZU õ÷÷÷öö÷÷÷ööõöõòöòóóòíLnõñòññïððîíîîòðíììëêëììéèéééçåææååæäãââºÁÊÐÒÓÓÓÕÖ×ØÙÙÚÛÛÜàáààáâããääæèèêíêëêëììíìîïòññòóóòóôóòòóô÷ôõóóõõööõö÷ø÷÷øøøöó+sõüøúýùùúúûûüüûýÿýüýüüÿÿ:}%þÿÿýþþþÿ     + + +    !3ŠOÐ*          +  +      ] +    ÿÿþÿýûþûûùû÷;Iôö÷÷öö÷öõõöööõóøóòòòóA/öòòññðïïïîíìíììêêêêëëéèèéëîêæåæäãåâäâ⵿ÈÎÑÓÔÓÔØØÖåÙÜÛÝßààáàáãääåçèèêìêëììììííîîöðñóôóóóóóôõõôõóóóõõüõõ÷÷øø÷÷ùú÷öôúýøÿüûùúúûûûûüþþüý * ýþþýþÿ   + +    +  4¾«s“-        +           ,Ø  +  ÿÿþþÿüúúúÿ÷÷÷÷öõõööôõôôôóôõóòòóñêîóñððïïïïïîííìíïìëêëëéêìêççèèçæååãââãâá²½ÆÌÐÑØØÑÝöóÙåÙÚÚÞÝÞàßâãããääæçæîõôÿëíëííïíîððïòòóôõõóóôôóòòòòôôô÷÷õôõõõöö÷ø÷ö÷ùûüùøúûù÷øúúùúüüûüüû +þýþÿÿÿýýþýþ     +  ,L}j>'+        + + + +  +  + +      +   + +   +   ) +  +  !#"  ÿÿþûúúù÷õøùø÷ùøö÷öõõôóóóóóôôòù÷ñññòòðïïîïïïîíííííììêêêèèêêçåææåääåããááá᮹ÂÉÏÐÓÔÒÖàá×ÙÙÚÛÞÜÝßßáääããåææçéëñþêëíïðîíîóòñöùùü÷ôõôóóôóóóóôóõóõôôõöö÷ùùøøùýþúüøùüøøùúùùúýýûüüûþÿýüýýþþþýýþÿÿÿÿ  +        $""         +        +   + +    +      +    $)#'.23/(" ÿÿÿþýþýûúúùùôõ÷ø÷÷ùøö÷õôôôôôôòóòòñúøñððððððïîîîïííìíìììêêêèçèéíîåååååãåââààê檵¿ÆËÏÐÑÒÒÓÕ××ÙÚÛÜÜÜßààâãããäèéçèéêòéêìîíìíïðñïðò#0îòòòôòóóóôóóôüöóôõöööøú÷÷øøøúûûýÿùùúûùøùúúûûüüüûýýþÿÿÿþþþþÿÿÿþÿ  + + +          +  +  +      +    - .7BPTI=5( ÿþÿþýüýüûùøö õ÷õö÷öõôôóóóóóôòóñññóòððïîîïïîïñîííëêëìëëêêêèèèèèçäååããããâçâáäâÒ¼ºÃÉÎÐÐÑÒÔÕÕ×ØÛÜÚÛÝÞßßßáääãçèçèèéëîêêéìëìíîîîïðõùðññõþóòóòòñóôôôóóôõôõ÷÷ö÷øû÷÷ùøúúùüøùùùüûüýûûúûýþþýûýþÿþÿþþÿ    +       +    Hê  +        + +   + +    l“7 + )'8W¯¾›pL1   üøþýüýüüùøöõ÷ö÷ùøõõõõôôòòòóôòðñïïððïïîîîîïðîîíìììììëëëééêêéæåäæåäãåãâäââãâŶ·ÀÇÍÏÐÒÓÖÙÕÖÙÝÚÛÛÝÞÞßààâããäåææèèèèèéìëëëìììîîïòýýñññïýôòòðñòóôóóóôõõöö÷ø÷õöö÷÷øûùüúøùùøúýüúüýüúûüýúüüýüýýÿ$     +     &+0(    + -ƒ   +  +    + +       úzŽþ$=%.Hƒ +ºV¿[3#  v„ýýýüüúúùúö÷ø÷÷÷ø÷ööõõôôóòòòóóñðïîðñðïîîðîíìíîëìíìëëêêéëëëëçéïêääãääââààáá✪µ¾ÄÊÍÐÒÒÕÖÑÙÙÛÙÛÛÜßëâÞàèæâãäåççèêèèêìëëëìíîïïîïíîñññðôûòòòññóóòþõòôöõõõøú÷÷÷÷øùùúøüøøùüúúúÿûûûûûûþûüüýüýýþÿÿÿ +         *«rÒ?           +    +  +            +Jn4e½"4X¹¸¡Çj:& +û+ê"ÿþüûûûûúøøùù÷ø÷ööôööóôöóôòòñòññðîîððïïîîïîîíìíëìììëêîìéééééåéòíãäââââãàààáá•¢±»ÂÈÌÐÏÏÎðq‘Ó×ØÚÚÛÞçáÞàåäáãåæçççèèîìêìéëìíîîîîîîïððòñðïñòñòòòñòöôóóóûûõööö÷ööøøø÷÷ýúøùùùúûûüýûùûûúýûüûýüüûýþ   +  + + +  +        2#’YJ  $W            + + + +     +         + +  +'K&:`ÙñÀÙ1p='  8dþüüûûüúùøûù÷÷õõö÷ú÷õô÷òóòñóóðððïððððîîîîíîîíìíìììëëîìéçèèæååééäãâãâãâáàßááÇɵ¶ÀÆÌÏÐÐÎòwŠÓØ×ÙÙÚÜÜÞÞßààâãäåååææèñëêìêêëëìîíîîîîðñðïðððññòùñïóòóóóô÷öööôõöõõöö÷ö÷ûúöøùøùúúüüûúúúûüúúüûûùýþþÿÿÿÿÿÿ          +             .ăÒ9''   @Ô             +   + + + +      +  + +  +         + + +   +  + #2Uª…gŸÊ^7% üýûûûýûúúúûù÷üûõöùü÷÷óóóòòñóóñðððñðððïîïðîíîîíîíìíëëêêéçèèçæåääåäããããâàààáàûð·³¾ÅËÏÑÑÓÔÔÌ×ØØØÙÛÛÜÝÞßÝÜáãåèèèææéïéèêéêëííííïðïññññððññòòó÷òñøóòôô÷÷öö÷÷÷öööø÷÷÷øúúúùúùúúûúúûúúüýüúûüüûüÿÿþ    ; +        ".       $26+   *          + +   +        + +  + +     +     +  +     -F~ÓîqÍxG,   ÿýûüûüúùùùøøö ôööõõõôóóñòñòññððïðñðïïïïïîíìììïíììëêêéèéèèèæåããäããââçããàáàßµµª³¿ÅÊÏÑÑÒÓÔÕÖ×ØÛÚÛÜÛÝÞßöðáåçéèææíîêýëéëíîîíîððîñòðñòññòòòóóôóöúõööõõöö÷÷öõ÷ø÷ùøøúüûûùùúûúúúùúûúøúüûûüþÿû.‚Yø      #" +                          $            +    +    + +    + + + +  +      +       &6H`’„_G5&   ÿþýüûúúùøùøø÷÷õóõôóôõóñòòòðòðñðïïïòñîîîîìíîììëîîëëêêéèèèççèæãâãããââáæâçààßߊ”¢¯¼ÄÈÎÒÒÑÓÓÔÕÖØÛÚÙÚÛÝÞÙ:pÜãäääéðìëéÿëêìíííìíïîíïñðïññðòðòüýôöôÿòõöôôõôõöõõõööùö÷øýûüüùøøùøúûûûüùùùúüúúüüýÿÿÿÿ þ     +     + +   +                             ,                      +     +      +    +      &(,6?<6+$ +ÿüýûüùúù÷úøûùö÷÷ööööôòôóñòñïððñóñïðïñðíìíîìëíììëëîëëêêéççæåæçåââããâááàâàãßÞß߈‘ª¶ÀÇÌÐÒÐÑÑÓÔÕ×ÖÙØÙÚÚÜ×4dÜâäãåîùçéèæèêëìíííííðñïïïîïïðñðñûûñôòþúóóôôôõõõööõõöööö÷øûú÷øúùùøøúúúúûùùùûûûúüûüþþýþÿüý!¡Aü +   +   +   +  +    +   + + +   +                                                  +  +   +      +   "   #&.% ÿþüüûüúúù÷øøûüùøù÷õöõóòóòñóòññðîòñïïîîîìììíòñëëëìêêëêéèèèççæææäââãããáààáßßÞÞÝÞ…™§³½ÆÊÑÖÐÒÒÓÔÔÕÕ×ÙØÙÚÛàÜØÝááãåæëñèèçéèëêëííîîìðòîïðïïîïïïïòóððððóóóóôôõõö÷õõö÷÷öúøøüø÷øøùùøùúùùùùøùøùþüûûûüþýýþÿ%ÈOú     +   +  + + + +              +   +    +          %%                           +    +  +  +  +      + +     ÿüþûûüûøøøøùüùöúùôööôòòñòóññïðïïðïïîîíìííïüêëîëëëëêèçèéçæçæåæåãããããáâáàààÞÞÞ‚Š” ®ºÃÈÓÜÐÐÑÒÔÕÔ×Ö×ØÙÙÛßâáßàáäæçäßçæçééêêêíïïîìíííïòñðïðïïïðùòðïðñòóóôôôôõ÷õöö÷öúû÷÷û÷÷÷÷øøö÷ùùùøø÷øøùûûýùûýþýþþþÿþ +)      +    + + +  + +  + + + "  + + +       +  +  +                                    +    + + +  +       +   + +    +ÿþþüûûûûùùùùøùù÷öúùõööõôóòñöòñòðïïîîïðïîííîíöììîëêëëêéèçèçææååææãããâáááááááßßß~…›©µÀÉÍÍÐÐÑÐÓÓÕÛ×ÖØÙÙÚÜÝÛÞâââäåïåææéééêëïòñïíìîîîðñðïðñïððýóôññññòòôõôôôõö÷õööúúøùýù÷øøòó÷÷÷øùùùùøøúøùüûüÿÿÿþþþÿÿÿüÿ     +  + +  + +    +   +  B           +  +        Q,               +          + + + + +    +   + +  + +   + +   + + +   +     þýúûüûûùøøøùøøùùøöö÷ööö÷õñòïððòïîîîííðñïííííîìëëíëééêéèççæçæääåäãããââáàßÜÕßàÞÞÝz‹˜¥±¾ÈÍÎÏÏÑÑÒÔÖÕ××××ÙÚÛßêéÞàâââNäèæéèëêëëëííííîîïïïïïïñðïñ÷òöóññññòôôóôôôõ÷öõööø÷ùýùöøô)*þõööøùúøøùúù þýþþþþý +ÿÿÿÿÿ   +          + +    +  + +  + +  + + + + + +        vT                   + + + +   +    + +     +    ÿÿ    + + + +ÿÿýúûùþúúûøøøøõö÷öôôöõóõùôòôîñòûñîîîîííîîîïðííðìëìêééèèæçæåååäæçääãáâââáä&ëÞÞÝÝt}‡’ž¬¹ÄÊÍÍÎÐÒÒÓÔÔÜØ××ØÙØì+×àâáäû äååçëêèééëêéëíííîîîîïïîïîïïñðïñññôöôññóôóôõõôõõöõöù÷ö÷ñ11þôö÷ö÷÷÷÷øøú ýüþüýýþþÿÿþþþÿ   +    +  + +       + + + +   + +   +         + +&  + +  $#  +               + + +             +      ýûûþ úûûúøø÷q?óöõõöõõôõóóôñõòöñïïþöííîîîïîíìííìîíêéèéèçèçæåæçåäåæâáàáâõb&×ÝÝÝoyƒ‹ž±·¾ÈÊËÎÏÐÑÐÒÕÓÔÖ×ØÙÙâõíÛÞàÞê>Šáæææõêçèéêêêëííîñïìíííîíïïïòðïððñøøñûþòóóóóôôõöõõõøøø÷÷óóøøöøö÷úø÷ùøùúúûüüþýþÿþþÿÿÿ    + + +      +  + +        +         + +              + +      !n              +  + +  + +    +   +        ÿÿÿþþýûþ ùùúùù÷÷²ñóóõõôóôóññòðñòðññíîíîíííìïõïëëëêëëéèèèèéîöëãããããäâáâáàáù˜ÚÝÞÝmu~‰—¦°¿ÌËÌÍÏÎÐÒÒÓÕÕÔÖØØØÚÜÝÝÞßàâçæåäçæééèéêëêìíííìííìíííïîîïïíïñðððòñíñôõ÷ôôôôõôôö÷ùøø÷ööùù÷÷÷úøùúùúûúûüýýýþÿÿÿÿÿÿÿÿÿ +   +  +           +  + +  + +  + + + +  + + +                    +    +    <  + +   +   +   +           + +   + ÿÿÿÿþýýüüÿûÿ÷øúø÷ø÷ûE+öõôôõóòóñòðððððïîîëìììîíìíîðïëêìêêèçççæææäíêãâââââãæáâàÞààÝßÞÝÝÝjs}…œ©¸ÃÉËËÍÎÐÏÐÔÓÕÕÕ×ØÙÙÛÝÝÝÞàáäääåæååçéççêêéêëëëíîííïïðïììï÷òîñðïïòóñðòóøÿòóôóõùý÷õ÷÷ööö÷÷÷÷÷÷ùýøøøúùûúúüüüüüüý"/ ÿÿÿýÿÿþ 18+3! + +  + +          +       +      +            ) +  + + +  +  + +     + + + + + +       + + +  + +  +  + + +þÿÿÿþýüúÿ úúùøûù÷øø÷îòø÷õö÷óñòòñññïðïïïîìíìììëëëìíííêëììèéèçççæææçåââââáâãáààÞÞÞÝßÞÝÜÝgu{~ˆ”¢°½ÆÉÊËÍÎÎÏÒÑÔÓ××ÖØÙÚÚÛÜÜàäâáâãæåäåçëéèèéëëëëìíììíóííìíôøëõòíïõöòññòôõòóóôôúóööõõõö÷÷öööööøø÷ùùúøùúûûüûûü%8þþþýÿÿÿÿÿþ ,.# WB       + + +     +   + + + + +  + +      +  +        +    + + +      +  +  +  +      + + +    +       ÿÿÿÿÿÿÿÿÿÿýþÿûüûúù÷÷÷øöö÷öõõööóòòóòóððïñððîîîííííìëëììííëììêêéèççæçåìîåâââââàááàÞÝÝÜÞÞÝÝÝdmu|„ª¸ÂÉÏÍÌÐÓÒÒÒÓÔ×ÖÖØÙÚÚÚÜÞàáäëâãäãåã Q +áïéëììììîíìíìíîðñîíîîðòðîïòññòóóóõóõöóøöõõõ÷÷öö÷ø÷øøùøøøùûúúûýüüüýü÷ûþýþÿþýþþÿüýÿ   (# +  +         +  +   + + +     + +   + + + + +   +  +  +     + +         + +         + + +   +   +        + þÿþýÿþþÿÿýüýûúüüùùö÷÷öõööõôõõôóóòóóóñðñðïïîíîíííìììëììììëëêèéêèçæåäåæåãæëæààßÞàáÝÞÛÜÜÜæßÛ]gpx€Š—¥²¾ÇÌÊËÏÏÐÏÐÑÔÔÓÕ×ØÙÙÛÝÜÝÞàäááãâääí÷ìßFDõèëëëìììíìíëëîïîííîîîïðïðïññòóóóóóõòôòó÷öõõõööõõõöøùù÷÷÷ùùûûûþýúúüýþýüüýÿþþþþþýþ þÿ +        +    + + +      + +  + + +   +        +     +  +   + + + +         + +  +   + #'    +þ$þüümœ(ÿÿÿÿþþýýýþýûüýùúùùøùùø÷ööõôôôôôóóóòòñññðñïíïïìííììëëìëêêêêëêéèééææçæååääãåëèàßßÞÞÝßÞÜÞÜÜÝÛÚXakr{„ž­¹ÃÉÊËÌÍÎÏÓÒÓÔÔÕÕ×ÙÚÛÜÝÝÞáâàãâäååææççóóëëëëëëëììíïíëíîíëîïîíðððððððñóóòôòôòóóò÷÷õõööööö÷÷øøøø÷÷ùùÿûûûúúúûüüýþ ýÿþþÿýþýB÷ÿÿÿþ        + +    +       + + + +  +  +    +        +       + +   + +       +      + +-  ÿþÿÿÿ,þþÿø¸Cüþþÿÿÿÿþÿýýüüüýýýýüúûøùù÷ùù÷õöõôôôóóóóóòñòðððïðíïîììîíëëëìííêêêìëéïèéçææææææåääããáßßÞÝÞßÞÞÝÜÜÚÛÚS[dmv‰—¥³ÁÆÈÊÊÍÍÏÐÐÒÓÓÓÔ×ÙÙÙÚÛÜÝààßàáâãããæççææèêëëëêììëëëëííìììîîíîïííîðñðñòòóõòöòóóóôôóõöõõõôõö÷÷õõöøøøüúûûúùúûüüý#5ûýüþÿþþÿþþýªP÷ÿÿÿÿÿþÿ "   +     +   +  +       + + +      +        + + +    +  + +  +   +   + +   +3$ +  +           +ÿÿ4w ýÿÿ*þÿÿþþÿÿÿþüûûýþüüúúûúúù÷÷ú÷ôõõôó÷÷òóóñññòñïïíðïííííììëëììììëëëêêéëçççååææåäããâáâààÞÞÝÝÝÝÝÜßèÞÚÙPW_ir|†‘«ºÂÈÊÊÌÍÐÛÔÑÒÓÔÕØÚÙÙÚÛÝÝÞßßßããããåææææçèðñéëëííìííîïîìíííõóïîïïðñðïðòòôõóõôóòñöõôôôöø÷öööööö÷÷öùùúùüûûûúúûýýûûýýÿýþþýþ÷üÿýýþýÿ             + +  +  +     + +    +   +  +   +     + + + +  + + + +        þÿÿþÿþþ ÿýÿÿÿÿÿþÿþÿÿÿþüûüûþûûûùûúú÷øöø÷õôõôôúûôóòññóñðððòðïîíííìëëììëëììêëêéèèêèèçéèæåääääääàââÞÞßÜÜÜÜÜäÞÚÚLS[dmw€‰•£±½ÅÉÉËÌÏÖÓÐÐÒÓÔ×ØØÙÚÛÜÜÞÞÞßááâããäóïèçèêëêêëëííîííìëíììòüøðîîîïðððïðñôññóóñññ÷õôóòôõôööööõ÷ø÷öø÷ùùúûúúûúúûûùûýþýýüýþýþÿÿÿÿýüüþýþ  +   +   +    +   + +  +   +  +  + +5  +       + + +  + +    + +    +   +      +  +  ÿþÿÿÿÿÿÿÿýÿÿþüûûþþýþþÿþûúúùùø÷÷÷÷õööôõõö÷óððòòòòïóùúðíííìììëëëëêêëêêíèèèèêèèèéæååäääãããááâÞÞßÝÝÝÜÛÜÛÚÚFNW_iqz„ª·ÁÈÉÊÌÎÎÑÑÒÒÓÕ×ØØÙÜÝÝÜÝÝàààââãäæëêèèééééêëëíìëìîíííîïòòðïïîðòòñóññòòòóóôòòôö÷÷õõöõö÷ùûüøþøøøøúúùþýüûüüûúûüþþÿýþÿþþþüþÿÿþ + +             + + +  +  +    + + +) +   +     + + + +   + + + + + +     +   +  +   ÿþÿÿÿþÿþý +ÿÿþþÿÿüüþüüýýýýüúüüúüÿüûþùú÷÷÷õööøøõö÷öõóòñôüùññðððòø÷ïíìíìììììêëëêêêêïèçèéççççæäããããâáááßßÞÝÜÝÜÜÝÜÛÛÚÚÚ?JS[cluŠ•£±¿ÉÉÉËÌÍÎÏÑÒÒÔÖØØØÚÜÝÝÜÜßÞâáàâçæääæèèèèéëêëëíêêëîîîîíîííîîîïïîðòñðñòòøòòòòòóöõòòóóõõôôôú÷÷÷÷øùùúúúûúúúùùüüýýþýÿþýýýþþýþÿþþÿÿ  +  +    +   +   +   +  +    +     +  +      + + + +  +    ÿÿþÿÿÿþþÿþþþþÿÿþÿÿþþýüüýûûûüûüýüüûúúùúù÷÷øøøøöõ÷ùùõôôöôòóñùþïððïðððîîìììííëëìëëìêêêêêèçèéçææååäãâãâáàáàÞÞÜÝÛÜÚÚÛÝÚÚØ×Ø8GSX]gpyƒŽš®ÛÞÆÈÊËÌÌÍÏÑÓÔÔÖ××ØÚÛÜÛÜÝÞâàßáääååæèççéíìèëêìëëêëììííìíííñòîìíðóñðñññóñòòñòòôôóòòôôóý öþ#÷øùû÷ùùõ- ÿúûúúûûûûüýüýþþýþüýÿþÿþÿÿÿÿþþÿÿ  +  + + +  +     +#    +  +      + +     + +   + +  ÿþÿÿþýþþýþþýüüþþþþÿÿÿÿþüþþûýúûúüûúúúûûúûûùøø÷øö÷÷øööõö÷ôóóóòòòñôøòðïðïïðñîîíìëííìëëëëêééêêçççççæææååäãâââàààßÞÜÜÝÜÜÜÚÚÛØÚØ××1ANTYclt}ˆ“¥Õ×ÎËÉÊËÍÎÏÐÒÓÓÔÕ×ØÚÚÚÚÜÝÞÞßàáâääååææçèëêééèêêëðïêìíìëíïððííîòùòðñññûóñòòòôóòòòõöô÷ùöüüøýøø÷øøùÿüüûúúúúúûüüüüýþþþýþÿýýþüûþÿþþþÿþþÿ      + +    + )  + +    +    +     +   +    ÿUÓhúÿÿÿþþÿüýþýÿýýþýýþýüýþþýüüüüüýýüüúûüúúúúúúúûùùø÷ùù÷÷÷÷÷ôóóòòù÷òòòñððñóïðïîïîííííìììíìëëëêèèééèæææææçæäääâááâàßßßßÞÝÜÜÚÛÚÚØ×Ø×××'5BNW^gnx‚˜£°ÌÌÈÈËÍÏÏÐÑÓÔÓÕÖØÚØÚÛÜÞßÞàáâãåäåååææççéééêêêï¯çììñîíîòôèãïðóññððñ÷ùòñòòïóôòóóôôóôôõ÷ô÷ùöööøøýúùýýûûûúûüüûûüýüýýþÿýþýýüýþþÿÿÿÿÿÿÿÿ 4  )    +     +     +        +          >³^ÿÿ&' þþÿÿÿþþýþÿþþþýüýýüüüüýþüýþüüýýüüþüüüýüüûúùùùúúøùûùøöööøõõóôõõòñúùòñòñðïðòïïîîííìííìììëìëêêêêèçèèæææææææäãâãâààáßÝÝÞÞÝÜÚÛÙØÙØ×Ø×ÕÖ× .;JSXais}‡‘ ¯¸ÃÈÈËÌÍÎÎãåÕÓÔÖØØØÙÛÝÝÞÞâáâáããäååææççèèêìëêîlýêíìòñîíîéTzëîîððððñòññòñõ ÿòòôôôô÷úõôôõôöõõöøøúùÿúúûúùûýüúùûûýýýüüüüýýýýýþþþþþýÿÿÿÿ6X)      +     +  + +    +   + 'þ-Qûþþÿÿþþÿÿþþþþýýýþýüýþýýýüûüýüýüúüüüüûüüûúúúùøøøûúøú÷õöõôóô÷û÷õóòòóóòñðððñïñíîîîìîìíëëëìëééééçççææçæçååääãááãâááßÝÝÝÝÛÚÚÚØ×ØØÖ×ÖÕÕ×&4AKS\dmwŒš¬²½ÆËÌËËÍÌéêÒÒÔÕÖÖ×ØÛÜÜÜÞáàààááâäåæççèéëìêëééèÜéìííîîíìíèFlìîîïîðïðððññðôýóòòóôö÷÷ôóõóõõõõõõøø÷ûüúùùùøúûùúøøøøûüüýûûüýüýþþþþýüýÿþÿÿÿÿÿ        + +  +      + ÿ  ýýþýýþÿýûüüýýüûüüûûüþþýýýýýþýüúûûûúøúúüúùùùù÷öøø÷÷÷öøöôõòóòóóòññðñòññðñòïïîíîïííìíëêëëëíîêèçççæéæççäãããâááäåááàÜÜÜÜÚÙÚØÙ×ÖÖÕÔÕÖÕÖ,=INV_gp|†žª¶ÀÎÌÉÊËÍÍÎÑÒÔÕÖÖØØÚÚÛÛÝÞÞÞßááâãåèéèçêìëèéééêéêìììëëïñïîõøïíîîîñîïðððððñóõõòòñòõöõóôõõóõõõõööö÷úúùùù÷÷ùúøö÷÷øùùúõûüüüüýýþÿýûüýþýþýÿÿÿ    +   +  +      + +þþÿþýüþþþþþüüýÿÿüüüüüþýýýýýýýþüûûúøûûüüúùûúøø÷úÿúöö÷÷õõõóóöõòòññóóòñòòòððîïïïíìíìëëìëêóôèèèææçêæçæåãäãâáàãçãßßßÝÛÚÚÙÛØØ××ÕÕÔÕÖÕÓ$2@HQYajt~ˆ”¢¯ºÄÇÎÏÌÌÏÒÒÑÓÔÕÖ×ÙÚÚÚÛÜÝÝßßàáããæêêèçèçééééêêéêíìëìëõöîííííîïïîñïîðððñññðôõóñûÿòôôóôö÷õõõöõööö÷ùúùùùùùúúøøúúùùøx÷ýüüýýýúûüþþþÿþÿ        +     + + + +      +    + + +       ÿþþþþýýüüüÿýüýüûûÿýýûüüüþûüûüüûúùùøøùùø÷÷÷ø÷ö÷ùû÷õöôõóóóóòøúöóññðñòñðïïðîîîíïìëìëêêêêêéééèèçæææåæåäãäâááÞâæàÜÞÞÝÚÙÚÚÝ××ÖÖÔÖÖÕÔÓÍ ,9DLU]foyŽ™§´ÀÅÜÜÐÎÑÖÔÐÒÔÔÖØÙÚÚÚÚÝÜßàáááââäæææçççêééçêèèêëëìììñðìíîîíîðïîðóþòïïðññðôôòñüòôñòôõõõôõ÷öööö÷ùùùùùùùùø÷øúûúøø‰÷üüüüûüûþÿýþþÿþüÿÿþ      + ÿÿþþþýþÿÿýþüüýüûúûûýÿýûüûûûúûüûüûüúúùùùúøøøöõõö÷÷÷÷øöõõõõôôóññòõõõóóñïðïîîïíîïïëøðíìêêêéèéééèèçèèæçåååäãâãâàáíçêîáÛÛÚÙÚÚÚÞ×ÖÕÕÔÖÙÕÓÐÈ"0=GNW`js{…‘Ÿ«¸ÂÇÉÌÌÍÏÏÐÑÒÔ×ØÙÙÛÙÜÜÛÞÞãâàááãäååæçèéçççèçèéééêëìêíîëìíìíîîîïø"ôïïðððïòóóñóóòõòòóôóôôõöõõ÷÷÷ùùøúúøøøöõøøùûú÷ùúûüýüûûüþýüýüüýüÿþÿÿÿÿ       +ÿÿÿþýýýþþýþýÿüûûûûúüýúüûüüúûüúùûúúøúøùø÷÷÷÷ööööö÷öõõõöõôôóóòñõóðñòòððððñðòíííõïñîíêééêëêééèçççèèèçæäããääãâßä/  #ðÚÛÚÛÚÚÚØ×ÕÖÕÖÕÔÓÒÌ &5BJRZdlv‰˜¥²¼ÅÈÉËËÌÏÐÐÑÒÔÖÜÙÙÙÝÛÜÜÝÞßàáâãäääççèéèççèçéêéééëêëôóêìíììííïîõñîðñðïðñôóñññóôóóóôóôõõõöõ÷÷÷øøùúú÷øù÷õööøùúúøóùüûûûüýüýþüúüüüýüÿþüþÿþÿÿÿ   +ÿÿþþþþýþþÿýþüýüüÿüþýüýýýýüüýûûýûúúúúùø÷øùùùùöö÷÷÷ööööôôöóôóõøõòòòòòññïððïîîñúûîëììêëêêííëëèçèææèçæåääãäåâàáøÝààÞÜÜÜÛÛÙØØÖÙÕ××ÔÓÐƼ ,9DLV^foxƒ«¶¿ÆÉÉËÍÎÐÐÐÒÝå×ØØÚÛÛÜÛÝÞÞÞàãåääæèèçèèèçèçèèéèéëëíñïëíîííîíîïðìðïïòñððñõôòóõöôôóóôôõõõöù÷÷÷÷ùøùúùùøúûöòöö÷ùüüüùýüüüýþÿþþýýýýþÿÿÿ* +ÿ      +  þþÿÿÿþýýþýþýûþüúýýýýüýüüüüûüúûûúùúùøø÷øøø÷÷öõ÷öööõõõôõòóóõôôóñòñïïîîñïîíîîðìëíìêìëêêëêêèæææåæñîãâããââàéçàÝÜÜÝÛÚÙÙÙÙØ×Õ×ÕÔÔÔÓÐÊ¿´ &2?IR[glt‰”¢¯ºÄÊÌÍÍÏÑÓÔÛùÕ×ØÜÝÜÝÜÝÞàáãååææèéèèéëêèêêêçéêêëëðïìëíîíîíîïïõòïïñðññññõõóôôõôõôôõôöõö÷õ÷÷øøøùúùøøúúõQõõö÷ûûý9ùûýþþÿÿýýýüüýýÿÿÿÿÿ  )  ÿþþÿÿÿýüûüüüüûûùúþþüûûûûûúûúùúûùúøùøùøùøö÷úøõõöööôõóóóôòòñóóòððñðïë +,úíðìíììíîîíëëêéêêéèèçææåæåäãââäâàßàÞÝÝÛÚÚÛÚÙÙÙ×ÖÖÖÕÔÔÓÒÐʸ¬ +)6CLVienw‚™¥±¼ÅÊËËÌÎÏÑÕÓÕÖÖØÛÜÛÜÜÞÞßàáâäåçéêéèéèèèèëìíèèèêëêêêéêëêëëìîíîðîïòðïðððóòðóðìòôõòôóõôöõñõ÷÷ööøùù÷÷úùóTõõø÷ûúúS2ùýýýýýüüüûûûüÿýÿÿÿýÿÿ      +ÿÿÿþþþýþýüüûûûüüûûùúýÿýûúúúúúûùúúúùùùø÷øùûùö÷úøõõõöõôôóôóóòñòññòñðððíêòíïïñôýïìëëëëêèçèêéæççæäõ!èåãáâáßàÞÞÝÝÜÜÜÜÚØØØÙÕÖÕÔÔÒÓÑÍÄ»¯¤ !/=GOY_ir{„œ©µÁÈËÌÌÍÎÏÏÒ××ÖØÙÙÚÜÝÝÝÞßâäæèêëêêèçèééççíîçéìñîééêëêêêêêîîïðïïïïðñððòòññ +"õõôóòóóôõ÷÷÷÷öö÷øø÷ö÷øüôî÷ùúùüúù( ùüýþþýüûüüûüýýýþÿþþÿÿÿÿÿÿ          +ÿþ ÿÿÿýÿþüüýüüüüüúúûûûúúúùúûùúúúúùùø÷÷úüùööö÷öõôõõóóôôóòòòñðñññððïîïö÷íìíîñ÷ÿñìëëíëéèççêïñëççßýåäáââàßáàÝÜÜÜÛÛÚØØ×ÖÔÖÔÔÔÔÒÐÉ¿´§œ&5@JQZcou~ˆ”¢®ºÃÊÌÍÏÎÐÐÒÔ×××ØÙØÚÜÞÞßáâåëñõóðêèèéêæçèçççèéèéèééêêçèêêëîííîïðïîîððñóôóéE³5ðõôóôóóóö÷ø÷÷ö÷øùøöõõùý÷øøüùøúøúõúþüüÿýüûüüûüýþýþýýýþÿÿý m    +ÿÿþþÿÿþþüûüüûûúûúüýüýüúúûúúùùøøøúúøøøø÷øùú÷öõôöõôóôôóóóôóòññïðñðññïïððìììììíïñïëëêìééèéèçêíêæçâõ/ìâááààßáâßÜÝÜÙÙÙÚ×ÖÖÔÕÕÒÒÓÑÐÌø«ž” ,9DNU^koxƒ›§´¿ÆÊÌÍÏÐÒÓÒÔÙ××ØÚÛÛÖHQÿáèú1S$ùíèèèææçééèèééèççèéêéèéêéëìííîîððïîïððóôòì2‚%ïòóñóòôóôö÷÷ö÷÷ø÷÷÷ööø÷øùõ÷ööø÷öPøüûûûûûúúüýþýýùüýýþÿÿ + þ + Z7e ,7ÿ[  ÿÿÿÿþýüýýÿýüûüûûûùúûýÿýúùúúûûúøøù÷øúùùøøø÷ööúùùøôõõôóôôòòôöóòðñððñððóóïîîîíìëìììëììëêêêêéêéçççæåæåâ×ààààßàßàßÜÛÝÜÚÙØØ×ÖÖÕÔÓÑÑÔÑËĺ¯£—Ž"/<HOWair{†‘«¸ÂÇÉÌÎÎÐÒÒÔÔÖÖ××ÚÛÕMMøáâ:”=Úîêçåçççèîééèèçæõõèçèèèèèéìîìííííîîïïïñøöðòòïòòñññòòôóõõõ÷÷ööõõö÷õõöõöúþ÷÷óA¼Eñúúúùùùùúúûûýüüûýýüþþþÿþ)5( ) ÿþþÿÿÿÿÿþþýþþþýüþüýüþüûûûúúúüýüúûüúúûúøùúøøúøùøø÷÷÷÷ø÷ùùõôõôõôôóóôöòõóòððððñòñðííîíììíîíêëïìêêêêééèçæææåääääááááààÞÞÝÝÜÜÚÚÚØ×ÖÕÕÕÔÒÑÑÑÍż³¦›‘ˆ +&4@JRZdlt‰”¢°»ÃÈËËÍÎÐÒÒÔÔÕÖ×ØÚÛííããã6bÜ‘ìéçæèèæèóéççëëç çæèéèèèéëìíîìíòðïðïïóýûñòôôòòôññðôóóôôõ÷öö÷÷÷öööõöõôÿ/úøø' øùûûùúûûùûüûüüûüýüüüýýýüýÿÿAn +üþ    ÿÿþþýþþÿÿÿÿþþýýýýýüþûûûüýûúûûúúûûûûýüúúùùùúùøúûø÷ø÷üø÷÷öööøøõõôôôóôóôòñôòñññðóóïîïîíììëíëíîêëíêëêêééèççæææåãããäâáàâáßÞÝÝÝÜÛÚÙÙØÖÖ×ÕÓÒÑÐÒÏÉÀ¶ªž”‹‚ ++8DMT]fnxš§³¿ÇÈÊÌÍÍÐÐÓÔ×ÖÖ×ÚÛØÚÞáè@Sîæìåæäæççèçççèíëéèçèêééèêëììííîïîïîïðñòòðòõñòóõôòòóóöõôõööõùùõööôóôóúùøùúøùúúúùøúþý÷ùûûüþûüþüûûüüüüýýýþþÿÿ7   ÿÿþþýþüþýýÿþþýýýüüüýûûûüüúúúúùúûúúüüùùûúùùûøøüú÷÷ø÷ ý÷øööö÷þþôôóôôôòóñòðñðñññöôîîïîíììëñííìëêéëêëééèæææåäåäããáãàßààÝÜÜÜÛÚÚÚÙ××ÖÖ×ÔÖÒÑÑÐËź®¡–Ž„} #0>GOV`jq{†’ž«·ÁÈÊÍÎÌÏÐÑÒÖÕÖÙÚÚÛÜÞàåëçäèéæçîååäåæçææçèéççêéææçééêêéëìííîìîîïðñðòóññððñóóöòóõôôöõõöõõö÷÷õõõõóóôõööõöýûúøøúýúøø÷ù÷÷÷ùúúûûüûüýüüýþþþþÿÿÿþÿþ ÿü  þýÿþüýýýÿÿýÿþüúûüþþüüúûùøúøùúúùùûûù÷ùúûúùøøûùùøù÷ü÷÷ööõóÿòóóôôòòòñòòóòððñóòîîííìíìëòñêìêêéêêêééèåææåãäåââáâßÞÞßòéßÜÛÚØ×××ÖÕÔÔÓÓÒÐÏÌƼ°¥˜Ž‡~x'6AIQZdlt~‰•£¯ºÄÉÌÌÍÎÎÐÑÓÔØÚÙÚÚÚÝàâããääãäãâäæäääæççééèçèèèçæçèèêìéëëììíëëìñòððóóðïðñððñòôúóóóòôõöõôõ÷÷õôööô÷õóôöö÷ûúøø÷øøö÷÷÷øø÷÷øùúúú$üúûûüüþýùûÿÿýÿýþÿÿÿÿýý +   ÿÿþÿÿþÿýþþýþþþÿüüýýýýüýýüûûûúùúü÷øûúøùúúùøùùùùø÷÷ùøøöö÷ö÷öööõõôö÷ôóòòôñòñðñòððñðïïîîíîíììêëìòîèééèéééèç÷ôåæåääâãâáààßÞÝÙx£ÔÚØÛäâÖÔÔÔÓÓÒÑÑàÎÀ³¨œ‘‡€ys +,;DLU]gm…Ž˜¦²½ÆËÊËÍÏÐÒÓÓÕÖÖØÙÚÞÞßààáááâãáâæäääååçéêææêêççæçèéêìèëêëêéëëëïðîïòòïïñòððñóóóóöôóòù÷ôóõöõõúýõõõôôôôö÷ø÷÷÷÷÷ööõö÷ø÷÷ùùùûþûúùùúýýþþþþýüÿþÿþÿÿþÿ   þþÿÿÿÿÿþýýþýÿþüþýûúüüýÿýûúúúúøùú÷ùüüúúùùùùùøøúüûø÷ø÷÷õöõööõööõôôööôòóòòòòóññîïðïîîîïîîïîîðêêééçééèéééèæùöåæææåáââàààÞßÝÙ_”ÔÚØÚâßÕÕÔÔÓÒÒÑÐíߺª •‹‚{un>$1>GPW`h}‡†«¸ÀÉÉËÌÍÏÑÒÓÓÕÕÖØìõåÛÞßßßááâááâãäåååææçææçèçèèçèéêéîëêéìëëêëììîðòòïðððï÷ ññóÿÿõòòóôõôôõ÷ûôôöõôóóõö÷øùøø÷ø÷ö÷÷÷ùøöúüûùúùüÿûúûùD¿|öþýþýþþþÿýÿýþþýÿÿò ÿÿýýþýÿþÿþýúüÿÿþþýúúûûûüøüùøúûúúúøúÿýøøùøûû÷øøöõöõööööööõõôóóóóóòóñóñïïðïîîîîîííîîøðêëñèêéêééèéèçæåæçæåàâáààßÞÝÝÞÞãÞÚÙØ×ÖÔÖÖÔÓÒÑÑÐÌÓ̱¢˜…}vphP&5AKRZdks}ˆ”¢°ºÄÈÊËËÍÏÐÑÒÓÓßßæëáÛÝÞßààáààáâáåååæååæå÷õçéééèèéëéëêêéëíîíëëëíðòòðððïòøùòòóúùóòóóóõôôõõõùýôôóõõúõõõ÷þú÷øö÷øø÷ö÷÷÷ø÷ùøùùúùûùùüûúóh"Åïýþþýýþþþÿþþÿþÿÿÿÿÿ Ý(ÿÿþþüþýýÿüúýýûüýþþúøùúøúùúúùøùúúø÷õ÷ø÷ùüü÷öõ÷þùööööõõôóóôóóòóòñòððððïðîíîïîííííèú õêêöéêèèèéçæææåååäãâààààßÝÞÝÝÝÛØÙÛÙØØÖÔÕÕÔÒÐÐÎÍȺ¯¦š†xpib,:EMU]fox‚Œ—¥²¼ÄÉÉÊÍÎÏÏÑÐÒÝÝ××ÙÛÜÞÞàßßààáááäååääåæã +äççèéëéêééêéèèêíííëêîòóòïïïðòôóñññòòñòôóòôôóôøùõôóóôöõõööõ÷ûúø÷÷ùù÷÷ööööøúùøùúùøúùúúúúüþýýûýÿÿþýÿþþÿÿþÿÿÿ 5ÿÿÿÿÿÿÿÿÿÿþüþüüüþþüüþýýýúüþüùúüúúùúûúùùùùúùùúûùùùù÷÷ùöù÷õUñöùøöõóóóòòóññóóòñðïïïííîîïðíìðôêééééêèééèëêèèæåæååäãâáâåâàÞÝÝÜÜÜÛÚÚÛØØ×ÔÓÓÒÒÑÐÏËÈÀ´©“Š€ysjc]$1<GOW_irz„Ž›§´¾ÆÈÊÌÍÍÐÚßàÖÔÖ×ÙÚÛÜÝÞÝÞßßàßáâäåããäåäöôäçèçèèèèèééèéèéëëìëêíðññîïððïðñððññòñòóóòôôôõôôôóóóóõöôõ÷öúø÷÷ø÷ùù÷öõõö÷÷øø÷øùù÷øùøùúþÿþýýþÿþûûýþÿþþþþÿÿÿþÿÿÿÿÿÿ  ÿþÿþÿÿÿÿÿÿÿþþüüýûûúþÿþþýûûûûúûúüüüûùúùøþúûûùúûúúùýþöøùø÷õ÷÷ø÷öõú÷õöø÷ööóñññòòññòôñòïîííîíîîíííìïòêêìêéêêçèêöìçççèçääåäãàãëäàÞÞßÛÜÝÜÛÙØØ×ÕÕÔÓÒÑÐÐÏÉÁ·«¡•Œ„{unh`X(4?IRZcjr{†’ž«·ÁÆÊËËÌÏÛæå×ÓÖ×ØÙÙÚÛÜÛÜÞÞÞÞÞàâääââäåããåçççéåæççéèèèçêêêêéëîíîòïîïîïïïððññòñòóóóôóóóóôôóòðôóóõõöøúùþúöö÷øøøöôôõ÷ôöö÷÷øøøøøùùúûüûù+þüüüÿþþþþþþþþýÿþÿÿþþÿÿÿÿÿÿÿÿþÿÿþýþýüþþÿýûûüüûûüüýûûúúøøþúúúúûúúùøöøúùùøøø÷ööööõõõõööõôòóóòóòóòôôóñðîïîîñðïîîîìííëëëééêèèëùìæçèçæäääååááâààßààÜÝÜÜÜÚÚÙ×ÕÔÔÓÒÑÏÎÌĸ®¢˜Ž…}vogkaQ +7COV\emvŠ–¡¯ºÂÉÉÊÎÍÎÓÔÓÔÕÖ×ÙÚÚÛÜÜÝÝÞßßßààãäââäååæççææéçççèééêêèêééêéìöõîòðîïððñññòòóôóòóóóòòóõöõõõõôõôôõõ÷ú ÿ÷øøøø÷õôóô÷ô÷ùúøùøúùúúúüýýýüûûÿýýÿÿÿÿÿþÿÿÿÿÿÿÿÿ +ÿÿÿÿÿþÿÿþþþþÿÿýýýÿýüüûûûûüüûúûùùúúøúùúúúûúûúùúú÷øûúø÷÷÷øööõû÷õõóóôôóòóóòòóóñòñððïñðïðòðíìììììëêéééêéèçëéæåçæäåäääããááááßÞÝÞÛÛÚÙÚÞÜ×ÕÔÓÒÒÒÐÏÌÄ»²­¨‘‡~vokbdZH "0=LRW`hpy‚™¦±½ÅÊÌÍÍÏÏÑÓÔÕÖ×ØÚÚÛÜÜÜÝÝÞáâàßáããååååççææçéçèèèéêëìêéééêëìôôîððïððïñññòòóóññðòòññòôõõôôôõôõõóõõùt¼A÷÷øùùøõóôöõõõø÷ùùù÷úùúúùû + ûþüûüýþüüþýþþþþÿÿþþýþÿþþþÿ  ÿþþþÿÿÿÿÿÿÿÿÿÿþþÿÿþþþþþþüÿüþýýüûüýüûûûûúúúúüùúùúøùøúùúùùùùøøøùùø÷ùø÷ö÷÷÷ôööûøôü÷ñòòòñòòòòóóñññïðîïîîïîîîîìëìêéééèçéæççæåæäããäääãâááàßÞßÞÛÜÜÙÛÛØ×âÝÕÕÔÒÑÑÑÏÎǽ²¬³²ypijaTKA \ No newline at end of file diff --git a/Sources/Imaging.Formats/Sample Images/FITS/ngc1316r.fit b/Sources/Imaging.Formats/Sample Images/FITS/ngc1316r.fit new file mode 100644 index 00000000..a9b65a69 --- /dev/null +++ b/Sources/Imaging.Formats/Sample Images/FITS/ngc1316r.fit @@ -0,0 +1,1858 @@ +SIMPLE = T / file does conform to FITS standard BITPIX = 16 / number of bits per data pixel NAXIS = 2 / number of data axes NAXIS1 = 440 / length of data axis 1 NAXIS2 = 300 / length of data axis 2 EXTEND = T / FITS dataset may contain extensions COMMENT FITS (Flexible Image Transport System) format defined in Astronomy andCOMMENT Astrophysics Supplement Series v44/p363, v44/p371, v73/p359, v73/p365.COMMENT Contact the NASA Science Office of Standards and Technology for the COMMENT FITS Definition document #100 and other FITS information. COMMENT FITS (Flexible Image Transport System) format defined in Astronomy andCOMMENT Astrophysics Supplement Series v44/p363, v44/p371, v73/p359, v73/p365.COMMENT Contact the NASA Science Office of Standards and Technology for the COMMENT FITS Definition document #100 and other FITS information. OBJECT = 'NGC 1316' TELESCOP= 'Radio ' INSTRUME= ' ' OBSERVER= 'INA ' DATE-OBS= '07/10/86' DATE-MAP= '06/09/88' EQUINOX = 1.950000000E+03 / EPOCH OF RA DEC OBSRA = 5.01966661513E+01 /ANTENNA POINTING RA OBSDEC = -3.73856168315E+01 /ANTENNA POINTING DEC YSHIFT = 7.105427358E-15 /NET SHIFT OF PHASE CENTER INY DATAMAX = 1.233247221E-01 /MAX PIXEL VALUE DATAMIN = -3.888696432E-03 /MIN PIXEL VALUE CTYPE1 = 'RA---SIN' CRVAL1 = 5.01966661513E+01 / CDELT1 = -1.944444492E-03 / CRPIX1 = 2.260000000000000E+02 CROTA1 = 0.000000000E+00 / CTYPE2 = 'DEC--SIN' CRVAL2 = -3.73856168315E+01 / CDELT2 = 1.944444492E-03 / CRPIX2 = 1.470000000000000E+02 CROTA2 = 0.000000000E+00 / HISTORY -------------------------------------------------------------------- HISTORY /Begin "HISTORY" information found in fits tape header by IMLOD HISTORY BLOCKED = T /Tape may be blocked HISTORY -------------------------------------------------------------------- HISTORY /Begin "HISTORY" information found in fits tape header by IMLOD HISTORY BLOCKED = T /TAPE MAY BE BLOCKED HISTORY /-------------------------------------------------------------------- HISTORY /BEGIN "HISTORY" INFORMATION FOUND IN FITS TAPE HEADER BY IMLOD HISTORY BLOCKED = T /TAPE MAY BE BLOCKED HISTORY PUTHEAD OBSRA = 4.991666615E+01 / OLD HISTORY PUTHEAD OBSRA = 5.019666615E+01 / NEW HISTORY PUTHEAD OBSDEC = -3.736666683E+01 / OLD HISTORY PUTHEAD OBSDEC = -3.738561683E+01 / NEW HISTORY CNTR VERSION= 1 / PLOT FILE CREATED 08-SEP-1988 12:22:10 HISTORY GREYS VERSION= 2 / PLOT FILE CREATED 12-SEP-1988 19:08:19 HISTORY GREYS VERSION= 3 / PLOT FILE CREATED 13-SEP-1988 11:44:07 HISTORY GREYS VERSION= 4 / PLOT FILE CREATED 13-SEP-1988 12:40:37 HISTORY GREYS VERSION= 5 / PLOT FILE CREATED 13-SEP-1988 12:42:34 HISTORY GREYS VERSION= 6 / PLOT FILE CREATED 13-SEP-1988 12:44:28 HISTORY GREYS VERSION= 7 / PLOT FILE CREATED 13-SEP-1988 12:59:18 HISTORY GREYS VERSION= 8 / PLOT FILE CREATED 13-SEP-1988 13:03:15 HISTORY GREYS VERSION= 9 / PLOT FILE CREATED 13-SEP-1988 13:07:23 HISTORY GREYS VERSION= 10 / PLOT FILE CREATED 13-SEP-1988 13:25:50 HISTORY GREYS VERSION= 11 / PLOT FILE CREATED 13-SEP-1988 13:26:20 HISTORY GREYS VERSION= 12 / PLOT FILE CREATED 13-SEP-1988 13:32:00 HISTORY GREYS VERSION= 13 / PLOT FILE CREATED 13-SEP-1988 13:57:57 HISTORY GREYS VERSION= 14 / PLOT FILE CREATED 13-SEP-1988 14:00:53 HISTORY GREYS VERSION= 15 / PLOT FILE CREATED 13-SEP-1988 14:28:51 HISTORY GREYS VERSION= 16 / PLOT FILE CREATED 14-SEP-1988 12:00:40 HISTORY GREYS VERSION= 17 / PLOT FILE CREATED 14-SEP-1988 12:13:51 HISTORY GREYS VERSION= 18 / PLOT FILE CREATED 14-SEP-1988 12:15:36 HISTORY GREYS VERSION= 19 / PLOT FILE CREATED 15-SEP-1988 07:52:43 HISTORY GREYS VERSION= 20 / PLOT FILE CREATED 15-SEP-1988 08:11:42 HISTORY GREYS VERSION= 21 / PLOT FILE CREATED 15-SEP-1988 08:18:17 HISTORY GREYS VERSION= 22 / PLOT FILE CREATED 15-SEP-1988 08:44:40 HISTORY GREYS VERSION= 23 / PLOT FILE CREATED 15-SEP-1988 21:02:47 HISTORY GREYS VERSION= 24 / PLOT FILE CREATED 15-SEP-1988 21:09:45 HISTORY GREYS VERSION= 25 / PLOT FILE CREATED 15-SEP-1988 21:19:53 HISTORY GREYS VERSION= 26 / PLOT FILE CREATED 15-SEP-1988 21:28:01 HISTORY GREYS VERSION= 27 / PLOT FILE CREATED 15-SEP-1988 21:32:44 HISTORY GREYS VERSION= 28 / PLOT FILE CREATED 15-SEP-1988 21:38:55 HISTORY GREYS VERSION= 29 / PLOT FILE CREATED 15-SEP-1988 21:40:20 HISTORY GREYS VERSION= 30 / PLOT FILE CREATED 15-SEP-1988 21:42:44 HISTORY GREYS VERSION= 31 / PLOT FILE CREATED 15-SEP-1988 21:49:18 HISTORY GREYS VERSION= 32 / PLOT FILE CREATED 15-SEP-1988 21:53:40 HISTORY GREYS VERSION= 33 / PLOT FILE CREATED 15-SEP-1988 22:09:40 HISTORY GREYS VERSION= 1 / PLOT FILE CREATED 16-SEP-1988 14:54:15 HISTORY GREYS VERSION= 2 / PLOT FILE CREATED 16-SEP-1988 14:55:07 HISTORY GREYS VERSION= 3 / PLOT FILE CREATED 17-SEP-1988 17:17:18 HISTORY GREYS VERSION= 4 / PLOT FILE CREATED 17-SEP-1988 18:29:54 HISTORY GREYS VERSION= 5 / PLOT FILE CREATED 17-SEP-1988 18:30:43 HISTORY GREYS VERSION= 6 / PLOT FILE CREATED 17-SEP-1988 18:33:27 HISTORY GREYS VERSION= 7 / PLOT FILE CREATED 17-SEP-1988 18:35:44 HISTORY AIPS IMNAME='FORNAX/NOBL ' IMCLASS='I ' IMSEQ= 1 / HISTORY AIPS USERNO= 51 / HISTORY AIPS CLEAN BMAJ= 3.8889E-03 BMIN= 3.8889E-03 BPA= 0.00 HISTORY AIPS CLEAN NITER= 21 PRODUCT=4 / POINTS HISTORY /END FITS TAPE HEADER "HISTORY" INFORMATION HISTORY /-------------------------------------------------------------------- HISTORY IMLOD OUTNAME =' ' OUTCLASS =' ' HISTORY IMLOD OUTSEQ = -1 INTAPE = 3 OUTDISK= 2 HISTORY IMLOD RELEASE = '15JAN89' HISTORY RENAM INNAME='FORNAX/NOBL ' INCLASS='I ' HISTORY RENAM INSEQ= 1 INDISK= 2 HISTORY RENAM OUTNAME='FORNAX ' OUTCLASS='I ' HISTORY RENAM OUTSEQ= 1 OUTDISK= 2 HISTORY PUTHEAD CRVAL3 = 1.384000000E+09 / OLD HISTORY PUTHEAD CRVAL3 = 1.510000000E+09 / NEW HISTORY AIPS IMNAME='FORNAX ' IMCLASS='I ' IMSEQ= 1 / HISTORY AIPS USERNO= 51 / HISTORY AIPS CLEAN BMAJ= 3.8889E-03 BMIN= 3.8889E-03 BPA= 0.00 HISTORY AIPS CLEAN NITER= 21 PRODUCT=4 / POINTS HISTORY /END FITS tape header "HISTORY" information HISTORY -------------------------------------------------------------------- HISTORY IMLOD OUTNAME ='FORNAX/NOBL ' OUTCLASS ='P ' HISTORY IMLOD OUTSEQ = 1 INTAPE = 1 OUTDISK= 2 HISTORY IMLOD RELEASE = '15OCT92' HISTORY AIPS IMNAME='FORNAX ' IMCLASS='I ' IMSEQ= 1 / HISTORY AIPS USERNO= 51 / HISTORY AIPS CLEAN BMAJ= 3.8889E-03 BMIN= 3.8889E-03 BPA= .00 HISTORY AIPS CLEAN NITER= 21 PRODUCT=4 / POINTS HISTORY /END FITS tape header "HISTORY" information HISTORY -------------------------------------------------------------------- HISTORY IMLOD OUTNAME =' HISTORY IMLOD OUTSEQ = 0 INTAPE = 1 OUTDISK= 1 HISTORY IMLOD INFILE = 'FITS2:FORNAXI ' HISTORY IMLOD RELEASE = '15JUL94' ORIGIN = 'AIPSGorilla (NRAOCV IPX) 15JUL94' / DATE = '24/03/94' / File written on dd/mm/yy HISTORY AIPS IMNAME='FORNAX ' IMCLASS='I ' IMSEQ= 1 / HISTORY AIPS USERNO= 100 / HISTORY AIPS CLEAN BMAJ= 3.8889E-03 BMIN= 3.8889E-03 BPA= 0.00 HISTORY AIPS CLEAN NITER= 21 PRODUCT=4 / POINTS END ÿÿÿÿÿÿÿÿÿýÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿÿÿÿÿþÿÿÿÿÿÿÿÿÿþÿÿÿýÿýÿþÿþÿþÿþÿÿÿÿÿÿ +   +  ÿþÿýÿûÿûÿüÿûÿûÿûÿýÿüÿüÿýÿýÿûÿüÿýÿüÿüÿûÿúÿüÿýÿüÿúÿùÿúÿûÿûÿþÿþÿúÿúÿýÿýÿûÿùÿùÿùÿùÿûÿýÿüÿúÿýÿÿÿþÿþÿýÿùÿúÿüÿûÿüÿþÿüÿüÿþÿýÿýÿþÿþÿýÿýÿüÿýÿÿÿýÿûÿýÿýÿýÿýÿüÿûÿþÿÿÿüÿüÿýÿþÿÿÿþÿþÿÿÿÿÿÿÿþÿÿÿýÿüÿþÿþÿÿÿþ ÿÿÿþÿÿÿþÿýÿþÿÿÿþÿþÿþÿÿÿýÿþÿþÿýÿýÿýÿüÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿÿÿÿÿþÿÿÿÿÿÿÿþÿþÿÿÿÿÿþÿþÿÿÿþÿþÿÿÿÿ + +  +  + +ÿþÿýÿüÿüÿüÿüÿýÿüÿüÿüÿüÿþÿýÿûÿûÿüÿûÿúÿûÿýÿþÿýÿûÿùÿøÿùÿûÿüÿþÿûÿüÿýÿüÿúÿøÿùÿúÿüÿýÿüÿüÿüÿþÿÿÿþÿüÿûÿüÿýÿüÿùÿùÿûÿÿÿýÿüÿþÿþÿýÿýÿýÿýÿýÿýÿþÿýÿüÿûÿþÿþÿüÿþÿýÿüÿüÿüÿüÿþÿþÿýÿÿÿýÿþÿþÿýÿÿÿýÿÿÿÿÿüÿÿÿþÿþÿÿÿûÿûÿÿÿþÿÿÿþÿÿÿÿÿÿÿûÿýÿýÿûÿÿÿüÿüÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿ  +   +ÿþÿýÿýÿüÿüÿýÿüÿüÿûÿüÿüÿûÿúÿûÿûÿúÿûÿýÿþÿþÿþÿûÿùÿùÿúÿûÿÿÿýÿüÿþÿýÿúÿúÿúÿüÿýÿüÿûÿüÿþÿýÿûÿûÿûÿûÿûÿüÿþÿüÿùÿûÿþÿÿÿþÿþÿÿÿýÿüÿýÿÿÿþÿüÿûÿýÿþÿúÿûÿÿÿÿÿüÿýÿÿÿüÿüÿüÿýÿþÿþÿýÿþÿÿÿýÿþÿÿÿýÿþÿÿÿþÿÿÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿûÿýÿÿÿþÿþÿþÿÿÿþÿÿÿúÿþÿýÿÿÿýÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿþÿþÿþÿþÿÿÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿ  +    ÿÿÿýÿýÿþÿþÿýÿüÿýÿüÿüÿûÿùÿúÿüÿûÿûÿýÿýÿûÿûÿýÿûÿúÿûÿüÿûÿÿÿÿÿüÿýÿýÿûÿúÿûÿûÿüÿüÿúÿüÿþÿýÿüÿúÿùÿúÿýÿýÿûÿûÿüÿüÿÿÿÿÿþÿÿÿüÿúÿüÿüÿûÿüÿüÿüÿþÿÿÿþÿþÿÿÿþÿüÿþÿþÿüÿûÿúÿþÿÿÿüÿýÿþÿýÿüÿÿÿüÿÿÿýÿýÿþÿÿÿýÿÿÿÿÿþÿÿÿþÿýÿÿÿþÿþÿÿÿþÿýÿþÿÿÿþÿþÿûÿüÿýÿÿÿþÿýÿýÿþÿÿÿÿÿÿÿÿÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿþÿþÿÿÿýÿþÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿþÿþ + + + +  +   +ÿÿÿÿÿÿÿÿÿýÿüÿüÿüÿüÿúÿùÿûÿüÿüÿüÿûÿüÿüÿüÿûÿùÿùÿûÿüÿûÿÿÿþÿüÿüÿüÿýÿüÿýÿüÿüÿýÿýÿýÿûÿúÿüÿÿÿþÿûÿûÿýÿÿÿÿÿþÿÿÿþÿþÿþÿüÿûÿþÿüÿúÿûÿüÿüÿÿÿüÿýÿþÿþÿýÿúÿøÿúÿþÿþÿýÿþÿüÿüÿþÿþÿÿÿÿÿþÿýÿþÿÿÿýÿýÿýÿûÿþÿÿÿüÿþÿþÿþÿÿÿþÿüÿüÿýÿýÿÿÿÿÿÿÿÿÿÿÿþÿþÿýÿþÿÿÿýÿþÿÿÿýÿþÿýÿýÿþÿýÿþÿÿÿÿÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿþÿþÿþÿþÿÿÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿþÿþÿÿ +  +    +  + + + ÿÿÿýÿüÿüÿûÿùÿøÿùÿûÿüÿûÿúÿûÿüÿýÿýÿýÿùÿ÷ÿøÿùÿþ4ÿþÿýÿüÿûÿþÿþÿþÿþÿýÿûÿüÿüÿúÿüÿÿÿþÿüÿýÿþÿÿÿüÿúÿýÿþÿüÿüÿýÿüÿüÿüÿûÿýÿýÿýÿüÿüÿÿÿþÿýÿýÿúÿúÿüÿýÿüÿþÿþÿûÿýÿþÿþÿÿÿþÿÿÿýÿýÿÿÿýÿýÿþÿÿÿÿÿýÿýÿÿ ÿÿÿþÿþÿþÿýÿþÿþÿÿÿþÿüÿþÿþÿûÿùÿþÿþÿÿÿÿÿüÿÿÿÿÿÿÿþÿÿÿþÿÿÿþÿýÿþÿþÿþÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿþÿþÿÿÿþÿþÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿ +  +   +   + + ÿÿÿýÿüÿûÿúÿùÿúÿûÿúÿùÿùÿûÿüÿûÿüÿýÿûÿúÿúÿú&8ÿþÿûÿúÿúÿýÿüÿüÿýÿûÿúÿûÿûÿûÿýÿþÿýÿþÿÿÿÿÿýÿúÿúÿüÿþÿüÿûÿûÿûÿúÿúÿûÿüÿýÿýÿþÿþÿýÿÿÿÿÿþÿüÿûÿüÿüÿýÿüÿüÿÿÿÿÿýÿüÿþÿþÿýÿþÿÿÿÿÿÿÿýÿüÿÿÿþÿýÿÿÿþÿþÿýÿÿÿÿÿÿÿüÿÿÿþÿûÿüÿÿÿÿÿûÿüÿþÿýÿüÿýÿýÿÿÿýÿþÿÿÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿþÿþÿþÿþÿýÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿ +    +  + + + + +ÿþÿýÿüÿüÿûÿúÿúÿùÿùÿúÿüÿûÿüÿüÿúÿùÿûÿûÿþÿÿÿüÿûÿüÿûÿýÿüÿûÿùÿùÿúÿúÿûÿúÿúÿûÿüÿüÿýÿþÿûÿùÿüÿýÿûÿúÿüÿüÿùÿøÿûÿüÿýÿüÿûÿýÿþÿÿÿÿÿÿÿýÿúÿûÿþÿûÿûÿýÿþÿþÿþÿþÿÿÿþÿþÿþÿûÿýÿÿÿÿÿþÿýÿüÿÿÿýÿÿÿþÿþÿýÿþÿÿÿþÿþÿÿÿþÿÿÿþÿþÿþÿÿÿÿÿÿÿýÿûÿþÿÿÿÿÿþÿýÿþÿþÿþÿýÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿþÿþÿÿÿÿÿþÿÿÿÿÿþÿþÿþÿþÿýÿýÿÿÿÿÿÿÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿ + +     + ÿÿÿÿÿþÿýÿüÿûÿýÿýÿüÿúÿûÿüÿüÿýÿýÿúÿùÿúÿûÿýÿþÿüÿýÿüÿúÿúÿüÿýÿüÿýÿüÿúÿùÿùÿùÿúÿüÿúÿúÿüÿûÿúÿûÿúÿúÿüÿüÿúÿùÿûÿüÿûÿûÿüÿýÿüÿüÿýÿýÿÿÿÿÿþÿÿÿÿÿÿÿûÿûÿþÿüÿøÿúÿþÿýÿýÿýÿþÿýÿüÿþÿþÿûÿþÿÿÿýÿþÿþÿÿÿÿÿýÿýÿýÿÿÿÿÿþÿÿÿÿÿþÿÿÿÿÿÿÿýÿýÿÿÿÿÿÿÿþÿýÿûÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿüÿüÿÿÿÿÿþÿÿÿÿÿýÿýÿÿÿÿÿþÿÿÿÿÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿÿÿÿÿþÿþÿþÿþÿþÿþÿÿÿÿÿþÿÿÿÿÿþÿþÿýÿÿÿÿÿÿÿÿÿÿÿÿ +   + ÿÿÿÿÿÿÿýÿüÿýÿÿÿþÿûÿûÿüÿûÿüÿüÿüÿüÿüÿüÿüÿûÿûÿýÿûÿúÿûÿûÿûÿüÿûÿùÿûÿúÿùÿúÿûÿûÿûÿÿÿþÿüÿüÿúÿúÿýÿýÿüÿýÿüÿüÿûÿûÿýÿýÿüÿúÿüÿþÿÿÿþÿþÿÿÿüÿûÿýÿüÿùÿùÿûÿüÿüÿüÿüÿûÿûÿüÿüÿüÿýÿþÿüÿýÿþÿÿÿýÿüÿÿÿþÿþÿþÿþÿþÿÿÿÿÿÿÿþÿÿÿÿÿÿÿýÿþÿÿÿþÿþÿþÿþÿüÿþÿþ ÿþÿÿÿÿÿþÿþÿþÿþÿÿÿþÿûÿûÿÿÿþÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿýÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿýÿþÿþÿýÿþÿþÿþÿþÿþÿÿÿÿÿþÿÿÿþÿýÿýÿþÿÿÿÿ +  !  + ÿÿÿÿÿÿÿþÿþÿþÿýÿüÿüÿûÿûÿüÿýÿûÿüÿýÿüÿüÿûÿúÿúÿûÿûÿüÿýÿýÿüÿûÿúÿûÿûÿùÿùÿûÿûÿûÿþÿÿÿþÿþÿüÿüÿþÿýÿúÿûÿýÿýÿþÿþÿýÿüÿùÿùÿüÿüÿüÿþÿþÿþÿÿÿÿÿüÿüÿüÿûÿùÿùÿúÿúÿúÿúÿûÿüÿüÿûÿüÿýÿýÿþÿÿÿýÿüÿÿÿþÿýÿýÿþÿþÿÿÿþÿýÿýÿÿÿÿÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿüÿþÿÿÿý ÿÿÿÿÿþÿÿÿýÿüÿüÿüÿÿÿüÿüÿÿÿÿÿÿÿÿÿþÿýÿþÿÿÿÿÿÿÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþÿþÿþÿÿÿþÿýÿþÿþÿþÿþÿþÿþÿþÿþÿýÿýÿÿ + +   ""    + + ÿÿÿÿÿþÿþÿÿÿÿÿþÿýÿüÿüÿüÿþÿþÿüÿüÿüÿúÿûÿúÿùÿùÿûÿüÿýÿþÿýÿýÿüÿûÿúÿùÿúÿûÿúÿûÿýÿþÿþÿýÿüÿüÿÿÿÿÿüÿúÿúÿúÿüÿþÿýÿüÿúÿøÿûÿüÿøÿùÿüÿþÿþÿýÿýÿýÿýÿüÿúÿúÿùÿúÿûÿûÿúÿûÿüÿüÿüÿÿÿÿÿýÿýÿþÿÿÿÿÿýÿýÿÿÿÿÿüÿûÿþÿÿÿþÿþÿýÿýÿÿÿÿÿýÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿ ÿþÿÿÿþÿÿÿýÿýÿÿÿþÿÿÿÿÿþÿþÿþÿýÿÿÿÿÿþÿþÿüÿüÿÿÿÿÿþÿÿÿþÿþÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿþÿþÿÿÿÿÿÿÿþÿþÿþÿþÿÿÿþÿþÿÿÿþÿþÿþÿýÿÿÿÿÿÿ +   "!"#""! !!  + ÿÿÿÿÿÿÿþÿþÿþÿÿÿÿÿýÿüÿýÿýÿýÿüÿüÿûÿúÿûÿùÿúÿüÿýÿýÿþÿþÿýÿûÿúÿøÿøÿùÿûÿûÿûÿüÿýÿýÿýÿüÿúÿûÿýÿýÿýÿýÿûÿûÿûÿûÿûÿùÿøÿúÿúÿøÿ÷ÿúÿýÿýÿúÿüÿýÿûÿúÿúÿùÿúÿüÿýÿýÿûÿúÿüÿüÿþÿÿÿýÿüÿýÿþÿþÿÿÿýÿýÿþÿÿÿûÿüÿþÿÿÿþÿÿÿþÿÿÿÿÿýÿüÿýÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿ+)ÿýÿûÿýÿþÿÿÿÿÿþÿüÿýÿÿÿþÿÿÿÿÿþÿþÿüÿýÿþÿýÿüÿýÿÿÿÿÿþÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿÿÿÿÿþÿþÿÿÿþÿþÿÿÿþÿÿÿþÿþÿþÿÿÿÿ   "#$$#"   + ÿÿÿþÿÿÿÿÿýÿýÿÿÿÿÿýÿýÿüÿüÿüÿüÿûÿúÿûÿûÿûÿùÿûÿýÿýÿýÿýÿþÿýÿùÿ÷ÿøÿûÿüÿúÿüÿüÿûÿüÿþÿýÿûÿûÿúÿúÿûÿüÿüÿüÿüÿûÿýÿûÿøÿûÿûÿ÷ÿøÿúÿüÿýÿþÿûÿúÿüÿûÿúÿúÿùÿùÿûÿúÿüÿÿÿûÿùÿþÿþÿüÿüÿýÿüÿþÿÿÿüÿýÿþÿþÿüÿþÿÿÿÿÿþÿÿÿÿÿþÿÿÿÿÿþÿüÿýÿüÿþÿÿÿÿÿÿÿþÿÿÿþ*(ÿþÿþÿüÿþÿþÿüÿúÿþÿþÿþÿÿÿþÿýÿþÿÿÿýÿýÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿþÿýÿþÿÿÿþÿýÿþÿÿÿþÿþÿþÿýÿþÿÿÿÿÿÿ +  +   "!"#$#!   + + + + + + +  ÿÿÿÿÿþÿþÿÿÿÿÿýÿüÿüÿüÿýÿüÿüÿûÿúÿúÿúÿüÿûÿûÿüÿûÿûÿûÿüÿúÿùÿûÿýÿüÿúÿûÿþÿýÿúÿüÿþÿýÿüÿûÿùÿûÿüÿûÿúÿúÿûÿþÿþÿûÿûÿüÿúÿùÿùÿúÿüÿüÿþÿþÿþÿýÿüÿüÿúÿùÿùÿ÷ÿùÿþÿþÿùÿûÿÿÿþÿýÿýÿýÿûÿúÿýÿþÿþÿþÿýÿýÿýÿýÿýÿþÿüÿýÿÿÿþÿþÿÿÿÿÿýÿýÿýÿûÿÿÿþÿÿÿÿÿÿ  ÿÿÿþÿÿÿûÿúÿüÿþÿþÿüÿþÿÿÿýÿþÿþÿýÿþÿÿÿþÿþÿÿÿÿÿþÿþÿþÿþÿÿÿþÿÿÿþÿþÿÿÿÿÿþÿÿÿÿÿýÿþÿÿÿÿÿÿÿÿÿýÿþÿþÿþÿþÿýÿýÿþÿÿÿþÿþÿþÿÿÿÿ   "#"!!     + ÿÿÿþÿÿÿþÿýÿûÿûÿûÿüÿüÿüÿúÿúÿúÿûÿüÿûÿûÿúÿùÿùÿùÿúÿúÿûÿýÿýÿûÿúÿûÿüÿûÿûÿûÿýÿýÿüÿûÿüÿýÿþÿýÿûÿúÿûÿýÿüÿüÿûÿøÿùÿúÿøÿøÿúÿûÿÿÿþÿüÿúÿùÿöÿ÷ÿüÿÿÿüÿûÿüÿüÿüÿþÿýÿüÿûÿüÿüÿûÿþÿþÿûÿüÿþÿÿÿþÿûÿûÿÿÿÿÿþÿýÿÿÿþÿþÿÿÿþÿýÿýÿÿÿÿÿýÿÿÿÿ ÿýÿùÿùÿûÿýÿþÿþÿþÿÿÿÿÿÿÿÿÿþÿýÿþÿýÿýÿýÿþÿþÿýÿýÿþÿþÿþÿÿÿÿÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿýÿþÿÿÿÿÿÿÿþÿÿÿÿÿþÿýÿþÿýÿþÿþÿþÿþÿÿÿÿ  "! + + + +  +  + ÿÿÿþÿýÿýÿýÿüÿûÿûÿûÿúÿúÿúÿûÿüÿûÿùÿùÿúÿúÿúÿúÿûÿüÿûÿúÿùÿûÿüÿúÿùÿúÿúÿúÿüÿüÿûÿûÿûÿüÿüÿüÿüÿüÿûÿüÿýÿûÿùÿùÿùÿùÿøÿøÿøÿûÿÿÿÿÿþÿüÿúÿ÷ÿöÿøÿüÿýÿýÿþÿüÿúÿüÿþÿþÿüÿüÿþÿýÿûÿûÿýÿûÿúÿýÿÿÿþÿüÿûÿþÿÿÿÿÿþÿþÿþÿÿÿýÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿ +ÿþÿÿÿþÿýÿýÿüÿþÿûÿýÿÿÿþÿÿÿþÿýÿýÿþÿþÿþÿþÿýÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿþÿÿÿÿÿÿÿþÿþÿþÿþÿþÿÿÿþÿþÿþÿþÿþÿþÿþÿÿÿÿ + !"     +  ÿþÿýÿþÿþÿýÿýÿýÿûÿúÿúÿúÿúÿûÿúÿùÿúÿüÿýÿýÿýÿüÿûÿúÿúÿùÿúÿûÿúÿúÿúÿøÿúÿûÿûÿûÿûÿùÿùÿúÿûÿüÿûÿüÿþÿüÿúÿüÿúÿøÿúÿùÿ÷ÿøÿýÿþÿþÿþÿûÿùÿõÿ÷ÿûÿüÿûÿýÿþÿûÿûÿýÿýÿýÿýÿþÿýÿúÿûÿüÿûÿüÿýÿýÿýÿýÿûÿûÿþÿÿÿÿÿýÿüÿÿÿþÿþÿüÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿýÿþÿÿÿÿÿÿÿÿÿþÿýÿÿÿÿÿþÿþÿýÿüÿþÿÿÿþÿÿÿþÿýÿþÿÿÿþÿþÿþÿÿÿÿÿÿÿþÿþÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿþÿþÿÿÿÿÿþÿþÿÿÿÿÿþÿýÿþÿÿÿÿÿþÿþÿþÿþÿþÿÿÿÿ + +  !!" + + + +  +  ÿÿÿÿÿÿÿþÿþÿýÿýÿüÿûÿûÿûÿúÿûÿúÿúÿûÿüÿýÿûÿûÿûÿúÿøÿøÿúÿúÿúÿúÿúÿùÿøÿ÷ÿùÿúÿûÿüÿûÿùÿøÿùÿûÿúÿùÿûÿüÿúÿûÿýÿøÿøÿúÿøÿ÷ÿøÿýÿÿÿùÿõÿ÷ÿüÿûÿùÿûÿýÿýÿüÿþÿýÿüÿþÿþÿûÿúÿúÿúÿúÿýÿÿÿüÿüÿýÿýÿûÿüÿýÿÿÿÿÿÿÿþÿýÿýÿþÿþÿþÿýÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿýÿüÿþÿþÿýÿÿÿþÿþÿÿÿýÿþÿþÿÿÿþÿþÿÿÿþÿýÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿýÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿýÿþÿÿÿþÿýÿýÿýÿýÿþ + + ! !"#"  +   + + +  ÿÿÿÿÿÿÿÿÿÿÿýÿüÿüÿüÿýÿýÿýÿûÿûÿüÿüÿûÿùÿùÿùÿùÿùÿøÿúÿûÿúÿøÿøÿøÿ÷ÿøÿúÿúÿûÿûÿúÿùÿùÿûÿúÿùÿùÿùÿùÿùÿúÿûÿùÿøÿúÿúÿ÷ÿôÿûÿþÿôÿóÿúÿýÿûÿûÿüÿúÿýÿýÿýÿýÿýÿÿÿûÿøÿúÿûÿúÿûÿþÿýÿûÿýÿýÿüÿüÿüÿýÿþÿÿÿÿÿýÿþÿþÿÿÿÿÿýÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿýÿþÿþÿþÿÿÿþÿÿÿÿÿÿÿÿÿýÿÿÿÿÿÿÿþÿÿÿÿÿÿÿþÿþÿþÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿÿÿÿÿþÿÿÿÿÿÿÿþÿÿÿÿÿþÿÿÿþÿþÿþÿþÿÿÿÿÿýÿüÿýÿýÿýÿÿ +  ""##"    +   ÿþÿÿÿÿÿÿÿÿÿþÿþÿþÿþÿþÿýÿüÿúÿùÿúÿûÿýÿûÿúÿûÿûÿüÿûÿùÿøÿùÿúÿúÿúÿûÿúÿúÿúÿùÿùÿúÿûÿúÿùÿùÿùÿøÿùÿúÿüÿùÿøÿúÿûÿöÿõÿøÿþÿúÿòÿöÿúÿøÿúÿüÿüÿüÿþÿûÿûÿýÿýÿüÿùÿúÿüÿûÿüÿýÿýÿýÿþÿþÿýÿþÿýÿüÿüÿýÿþÿÿÿÿÿýÿþÿýÿþÿýÿÿÿþÿþÿÿÿÿÿÿÿýÿÿÿþÿþÿÿÿþÿýÿüÿþÿÿÿýÿýÿÿÿÿÿýÿþÿþÿÿÿÿÿþÿÿÿÿÿÿÿýÿýÿþÿþÿýÿþÿþÿÿÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþÿþÿÿÿþÿþÿþÿþÿÿÿÿÿýÿüÿýÿþÿÿ + +  !!  ""##!   +  + + ÿÿÿÿÿÿÿÿÿþÿÿÿýÿþÿýÿûÿúÿúÿüÿýÿþÿüÿüÿüÿûÿûÿúÿúÿúÿûÿûÿúÿùÿùÿùÿúÿûÿüÿùÿøÿùÿøÿùÿùÿùÿ÷ÿùÿûÿúÿ÷ÿöÿöÿ÷ÿùÿöÿôÿÿÿôÿôÿøÿ÷ÿöÿûÿúÿúÿüÿüÿûÿüÿûÿùÿúÿúÿûÿûÿûÿüÿüÿþÿÿÿÿÿÿÿüÿýÿýÿüÿýÿþÿÿÿýÿýÿþÿþÿüÿÿÿþÿýÿüÿþÿÿÿÿÿÿÿÿÿÿÿþÿþÿÿÿþÿþÿýÿýÿýÿûÿÿÿþÿýÿÿÿÿÿÿÿþÿÿÿþÿþÿÿÿýÿýÿþÿýÿÿÿÿÿüÿýÿÿÿþÿýÿýÿþÿÿÿÿÿþÿþÿÿÿþÿÿÿÿÿýÿþÿÿÿÿÿÿÿþÿýÿýÿþÿþÿÿÿÿÿþÿþÿÿÿþÿýÿýÿþÿÿ + + !$&'$! "##!   +  +ÿÿÿýÿüÿüÿþÿþÿþÿþÿüÿûÿýÿýÿýÿüÿûÿûÿüÿüÿúÿùÿùÿúÿùÿùÿùÿøÿøÿøÿùÿûÿüÿûÿøÿ÷ÿ÷ÿøÿúÿúÿùÿùÿúÿúÿøÿ÷ÿöÿôÿ÷ÿùÿöÿõÿùÿöÿõÿ÷ÿúÿýÿúÿùÿúÿûÿýÿüÿùÿùÿûÿüÿûÿúÿûÿûÿüÿþÿþÿþÿýÿÿÿýÿûÿýÿýÿþÿþÿÿÿþÿÿÿýÿýÿþÿûÿûÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿþÿüÿþÿÿÿÿÿþÿÿÿþÿþÿýÿýÿýÿÿÿþÿýÿÿÿþÿýÿüÿýÿþÿþÿýÿÿÿÿÿýÿýÿþÿÿÿÿÿþÿýÿþÿÿÿÿÿÿÿþÿýÿÿÿþÿÿÿþÿýÿýÿþÿÿÿÿÿÿÿþÿýÿýÿýÿþÿþÿþÿþÿþÿþÿþÿýÿýÿÿ  + #'*+($!!$$"     + ÿÿÿýÿýÿýÿþÿÿÿÿÿþÿüÿýÿþÿýÿýÿýÿüÿûÿüÿüÿûÿùÿùÿùÿ÷ÿ÷ÿùÿùÿúÿùÿúÿûÿúÿùÿ÷ÿøÿøÿúÿûÿúÿûÿúÿùÿùÿúÿùÿùÿøÿøÿùÿùÿ÷9½˜ÿøÿøÿûÿüÿüÿûÿûÿúÿûÿüÿúÿúÿüÿüÿüÿüÿûÿúÿûÿýÿýÿýÿþÿýÿÿÿÿÿüÿüÿýÿþÿÿÿÿÿÿÿýÿÿÿþÿýÿüÿûÿüÿþÿÿÿÿÿþÿþÿþÿþÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿþÿÿÿÿÿýÿþÿþÿÿÿþÿýÿüÿþÿÿÿþÿüÿýÿÿÿýÿýÿýÿýÿþÿÿÿÿÿþÿþÿþÿýÿþÿþÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿþÿþÿÿÿÿÿþÿýÿýÿýÿþÿÿÿÿÿþÿýÿýÿþÿÿÿýÿýÿþÿýÿþÿþÿþÿþÿÿ + + !%(+,+&!"$$%%$"   + + +ÿÿÿÿÿÿÿÿÿÿÿýÿýÿýÿþÿÿÿþÿÿÿþÿüÿûÿûÿûÿûÿûÿûÿùÿùÿúÿûÿûÿûÿúÿúÿúÿúÿùÿøÿùÿúÿúÿúÿúÿùÿùÿùÿúÿúÿûÿùÿúÿüÿø›xBÿüÿüÿûÿüÿûÿüÿûÿúÿúÿûÿüÿüÿûÿüÿüÿúÿúÿûÿüÿýÿþÿþÿýÿþÿýÿüÿûÿýÿþÿþÿüÿýÿþÿÿÿýÿüÿüÿûÿþÿÿÿÿÿÿÿþÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿþÿþÿýÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿýÿþÿÿÿÿÿþÿýÿüÿýÿþÿûÿýÿþÿûÿüÿÿÿÿÿÿÿýÿÿÿÿÿþÿÿÿÿÿÿÿÿÿýÿüÿýÿþÿýÿýÿþÿÿÿÿÿþÿþÿþÿýÿÿÿÿÿÿÿÿÿýÿüÿþÿÿÿÿÿÿÿÿÿþÿýÿþÿþÿþÿþÿþÿþÿÿÿÿÿÿ  + + +  !#%)-/,&! ""!#&'&$$"!  + + +ÿÿÿÿÿÿÿþÿþÿüÿüÿüÿüÿþÿþÿýÿüÿüÿûÿûÿûÿûÿûÿûÿüÿûÿùÿùÿúÿúÿûÿúÿùÿùÿùÿùÿúÿùÿùÿùÿûÿùÿ÷vÝ”%ÿúÿüÿýÿüÿûÿúÿúÿúÿûÿüÿûÿûÿüÿýÿûÿúÿúÿûÿûÿüÿþÿþÿÿÿþÿüÿüÿýÿüÿûÿþÿýÿûÿûÿýÿþÿüÿüÿýÿüÿûÿþÿþÿþÿÿÿþÿþÿþÿþÿþÿÿÿÿÿÿÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿÿÿýÿýÿþÿþÿþÿÿÿýÿþÿýÿþÿþÿþÿþÿüÿüÿÿÿÿÿÿÿýÿüÿÿÿþÿþÿþÿÿÿÿÿüÿýÿþÿþÿþÿþÿýÿþÿþÿþÿþÿýÿýÿþÿÿÿÿÿÿÿÿÿþÿýÿýÿþÿþÿÿÿÿÿÿÿýÿüÿýÿþÿþÿýÿþÿÿÿÿ + ! "$$#%(+.-*%! !$%$ !"!"$%%%! !""  + ÿÿÿÿÿýÿþÿÿÿþÿüÿýÿþÿþÿýÿýÿýÿüÿüÿüÿûÿüÿûÿüÿýÿüÿûÿùÿúÿúÿúÿúÿùÿùÿùÿøÿøÿùÿ÷ÿ÷ÿúÿùÿú ÿúÿùÿÿÿüÿûÿüÿúÿùÿûÿüÿûÿüÿýÿüÿüÿûÿûÿúÿüÿýÿüÿýÿüÿýÿýÿûÿüÿüÿûÿüÿþÿüÿûÿýÿþÿûÿúÿýÿþÿüÿûÿýÿþÿýÿþÿÿÿþÿýÿýÿýÿÿÿþÿÿÿýÿÿÿÿÿþÿÿÿÿÿÿÿÿÿþÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿþÿþÿÿÿþÿþÿýÿþÿýÿüÿþÿÿÿýÿÿÿÿÿüÿýÿýÿþÿÿÿÿÿýÿüÿüÿÿÿþÿÿÿýÿýÿÿÿþÿÿÿÿÿÿÿþÿýÿþÿþÿýÿÿÿÿÿÿÿþÿþÿþÿþÿþÿÿÿþÿüÿþÿÿÿþÿþÿÿÿþÿýÿþÿÿÿÿÿþÿýÿýÿþÿþÿýÿþÿÿÿÿ   $&%%&(*)((&$%%')'#  "" #%&'#!  !"##""%'&%#    ÿÿÿÿÿÿÿÿÿþÿþÿÿÿþÿþÿþÿýÿþÿþÿþÿýÿýÿýÿþÿýÿûÿüÿýÿüÿûÿûÿùÿøÿùÿùÿùÿúÿùÿøÿøÿ÷ÿöÿ÷ÿøÿûÿÿÿ÷ÿòÿøÿüÿùÿøÿúÿüÿüÿýÿûÿùÿúÿûÿûÿüÿþÿüÿúÿûÿúÿúÿüÿþÿþÿýÿýÿüÿûÿûÿûÿûÿûÿüÿüÿüÿýÿþÿþÿýÿüÿûÿýÿþÿüÿüÿþÿþÿýÿþÿþÿýÿþÿþÿýÿÿÿÿÿÿÿþÿýÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿýÿÿÿÿÿþÿÿÿüÿûÿþÿÿÿÿÿÿÿþÿþÿþÿÿÿÿÿÿÿþÿüÿýÿþÿþÿþÿþÿþÿýÿÿÿÿÿþÿýÿÿÿÿÿþÿþÿÿÿþÿþÿÿÿÿÿýÿüÿþÿþÿþÿÿÿÿÿýÿýÿþÿÿÿÿÿþÿþÿþÿþÿþÿþÿÿ + +  !$%$"#$$#&()+-,+'""$$%%$$&()(%#"!"$%&&'(*)(&# +ÿÿÿþÿÿÿþÿÿÿÿÿÿÿþÿÿÿÿÿþÿýÿýÿþÿýÿüÿýÿüÿúÿûÿûÿúÿùÿùÿùÿùÿúÿùÿùÿøÿ÷ÿøÿøÿüÿÿÿøÿ÷ÿøÿöÿ÷ÿúÿúÿøÿùÿüÿüÿùÿøÿúÿûÿýÿýÿüÿúÿúÿúÿúÿûÿýÿýÿüÿüÿüÿýÿüÿûÿúÿúÿûÿüÿüÿüÿþÿýÿüÿüÿüÿüÿýÿýÿýÿþÿÿÿþÿþÿÿÿþÿÿÿÿÿÿÿþÿþÿÿÿþÿýÿþÿþÿÿÿÿÿÿÿÿÿþÿÿÿþÿýÿþÿþÿÿÿþÿþÿþÿþÿÿÿÿÿþÿÿÿþÿÿÿþÿûÿþÿþÿþÿþÿýÿþÿÿÿÿÿþÿýÿÿÿÿÿþÿþÿþÿþÿþÿþÿþÿýÿýÿýÿþÿÿÿþÿþÿýÿýÿýÿþÿÿÿÿÿþÿþÿþÿþÿþÿÿÿÿ +   !""!  $'*./-)%#&))'(()*++*'$%%%%'))+-+(&$  + + ÿÿÿÿÿþÿÿÿÿÿÿÿþÿþÿÿÿþÿüÿúÿüÿýÿüÿüÿýÿüÿûÿüÿüÿüÿûÿúÿùÿùÿùÿøÿùÿùÿùÿùÿûÿÿÿýÿùÿùÿûÿöÿôÿøÿûÿûÿúÿúÿùÿùÿùÿøÿûÿüÿýÿüÿûÿûÿúÿùÿüÿýÿûÿûÿûÿúÿûÿýÿûÿûÿúÿúÿúÿûÿüÿýÿýÿüÿüÿýÿüÿüÿýÿþÿþÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿþÿýÿÿÿÿÿþÿþÿÿÿþÿþÿÿÿþÿþÿÿÿÿÿÿÿÿÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿþÿýÿýÿþÿþÿþÿýÿýÿÿÿÿÿþÿþÿÿÿþÿýÿýÿþÿþÿþÿþÿýÿýÿÿÿÿÿþÿþÿýÿýÿþÿþÿþÿþÿýÿýÿþÿÿÿÿ + +   ! !#&)+*(%$%),+)))+-.--+((**((,..-*'%!  + + + +ÿÿÿÿÿþÿýÿþÿÿÿÿÿþÿþÿüÿûÿûÿüÿüÿýÿþÿýÿýÿýÿþÿýÿüÿûÿúÿúÿúÿøÿøÿúÿùÿ÷ÿúÿýÿúÿøÿûÿüÿ÷ÿöÿøÿøÿùÿýÿüÿùÿùÿúÿûÿúÿûÿûÿúÿûÿûÿúÿúÿüÿüÿúÿúÿüÿüÿüÿüÿüÿûÿúÿúÿúÿúÿüÿýÿüÿüÿþÿÿÿþÿýÿýÿþÿÿÿÿÿþÿþÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿÿÿþÿÿÿÿÿÿÿþÿþÿÿÿÿÿÿÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿþÿþÿÿÿÿÿÿÿÿÿÿÿþÿýÿýÿÿÿþÿýÿýÿýÿýÿþÿÿÿÿÿÿÿþÿþÿþÿþÿÿÿÿÿÿÿþÿþÿÿÿÿÿÿÿÿÿþÿþÿþÿýÿþÿþÿþÿþÿÿÿÿ +  !  !""#$%'&# !$&*,+*++-/0//.---,*),00,'%#  +  ÿÿÿÿÿÿÿÿÿþÿþÿÿÿþÿüÿüÿýÿýÿþÿþÿþÿýÿþÿþÿþÿýÿüÿûÿúÿúÿúÿùÿûÿüÿøÿ÷ÿúÿùÿ÷ÿúÿüÿúÿùÿùÿøÿøÿúÿüÿûÿûÿüÿûÿúÿûÿúÿùÿúÿüÿûÿùÿûÿüÿúÿúÿüÿüÿüÿýÿýÿýÿûÿûÿûÿúÿúÿüÿûÿûÿýÿÿÿÿÿýÿýÿÿÿÿÿÿÿÿÿþÿþÿþÿÿÿþÿþÿÿÿþÿýÿÿÿÿÿþÿþÿýÿÿÿÿÿÿÿþÿþÿþÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿüÿýÿýÿþÿþÿþÿþÿýÿýÿýÿþÿÿÿÿÿÿÿÿÿýÿþÿÿÿÿÿþÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿ + +  !#"!!!"#$$"!"'++*+-..010/--/.++*+--*&$#  + +ÿÿÿþÿÿÿÿÿýÿýÿýÿýÿþÿþÿýÿýÿþÿÿÿþÿýÿüÿüÿúÿúÿúÿûÿüÿúÿúÿúÿøÿ÷ÿùÿûÿúÿúÿùÿöÿõÿ÷ÿùÿûÿüÿýÿüÿúÿùÿùÿùÿúÿüÿûÿúÿûÿüÿûÿûÿüÿüÿûÿüÿüÿüÿüÿýÿýÿüÿùÿùÿúÿúÿýÿþÿþÿÿÿþÿüÿýÿÿÿÿÿÿÿÿÿýÿýÿþÿþÿþÿÿÿþÿýÿþÿþÿþÿþÿüÿþÿÿÿÿÿÿÿþÿÿÿÿÿþÿþÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿÿÿýÿþÿÿÿýÿÿÿÿÿþÿÿÿÿÿÿÿÿÿýÿþÿýÿûÿûÿþÿþÿýÿýÿþÿþÿþÿýÿýÿþÿÿÿÿÿÿÿÿÿþÿýÿþÿýÿýÿÿÿÿÿÿÿÿÿþÿþÿÿ + !! "$%#"! "#"$*+)()-..010/.---+*++++)'&# + + ÿÿÿþÿþÿþÿþÿþÿýÿüÿüÿýÿþÿýÿýÿþÿþÿýÿüÿúÿúÿúÿûÿúÿùÿûÿúÿ÷ÿ÷ÿúÿúÿùÿùÿøÿöÿöÿ÷ÿöÿøÿûÿüÿüÿüÿúÿøÿøÿúÿûÿûÿúÿúÿúÿúÿûÿüÿûÿûÿûÿûÿûÿûÿüÿþÿÿÿüÿúÿùÿùÿûÿýÿýÿÿÿÿÿþÿþÿÿÿÿÿþÿþÿþÿþÿþÿþÿÿÿþÿýÿýÿýÿþÿÿÿÿÿþÿþÿüÿüÿþÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿþÿþÿýÿþÿýÿýÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿþÿýÿûÿýÿýÿüÿüÿþÿþÿýÿýÿýÿþÿþÿÿÿÿÿÿÿÿÿýÿýÿýÿþÿÿÿÿÿÿÿÿÿÿÿÿ !##"##$%$"  !! !).+''),,.23100...+**++,*'%"  ÿÿÿÿÿÿÿþÿþÿÿÿÿÿþÿýÿüÿýÿýÿýÿýÿýÿüÿüÿüÿýÿûÿûÿûÿüÿûÿùÿúÿûÿøÿõÿøÿûÿùÿùÿøÿ÷ÿ÷ÿ÷ÿöÿöÿøÿøÿûÿýÿûÿùÿùÿúÿúÿúÿùÿøÿøÿùÿúÿûÿüÿüÿüÿûÿûÿûÿýÿþÿÿÿþÿýÿûÿúÿûÿüÿüÿüÿýÿþÿÿÿÿÿþÿÿÿþÿþÿþÿþÿþÿýÿýÿýÿüÿýÿýÿüÿýÿþÿþÿþÿþÿýÿüÿüÿýÿþÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿýÿýÿÿÿÿÿþÿþÿÿÿÿÿÿÿýÿþÿÿÿÿÿÿÿþÿÿÿýÿþÿÿÿýÿûÿýÿþÿþÿÿÿÿÿÿÿÿÿþÿþÿþÿÿÿüÿþÿÿÿþÿþÿÿÿþÿüÿüÿýÿÿÿÿÿþÿÿÿÿÿÿÿÿÿþÿýÿþÿþÿþÿÿÿÿ  +  !! #''%%%$$%%$"""!"""" #)./,)+--+.34311000-***++(%#! ÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿÿÿÿÿýÿüÿüÿýÿþÿþÿýÿüÿüÿüÿýÿüÿûÿüÿýÿýÿüÿûÿûÿúÿøÿùÿúÿùÿúÿúÿùÿøÿøÿöÿ÷ÿøÿ÷ÿøÿûÿüÿúÿúÿúÿúÿúÿúÿùÿøÿøÿùÿúÿúÿüÿýÿüÿûÿüÿüÿþÿÿÿýÿþÿýÿûÿûÿüÿüÿüÿüÿüÿýÿýÿýÿýÿýÿþÿÿÿÿÿþÿþÿýÿýÿüÿüÿþÿýÿûÿýÿÿÿþÿýÿüÿýÿýÿûÿþÿÿÿþÿÿÿþÿþÿþÿÿÿÿÿÿÿþÿýÿýÿÿÿÿÿÿÿþÿÿÿÿÿÿÿþÿþÿÿÿÿÿÿÿÿÿþÿÿÿÿÿýÿýÿþÿÿÿþÿüÿþÿÿÿþÿýÿþÿÿÿþÿþÿýÿþÿÿÿýÿýÿýÿþÿþÿþÿÿÿÿÿþÿþÿþÿýÿþÿþÿþÿÿ + + !$$$&'(+-+('&&&&'''&%##$%%#"(.0/---..-.1322442/.+))('%##"   ÿþÿýÿþÿÿÿÿÿþÿüÿüÿýÿüÿüÿýÿýÿýÿýÿþÿýÿüÿüÿüÿþÿÿÿýÿûÿúÿùÿúÿûÿúÿùÿúÿøÿøÿùÿ÷ÿ÷ÿøÿøÿøÿùÿúÿûÿüÿûÿúÿúÿúÿúÿúÿúÿùÿøÿùÿúÿüÿûÿûÿûÿûÿýÿþÿüÿüÿýÿüÿûÿûÿúÿûÿüÿûÿüÿýÿûÿüÿýÿüÿýÿÿÿþÿýÿþÿýÿüÿýÿþÿÿÿýÿûÿýÿÿÿþÿüÿüÿüÿüÿýÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿþÿýÿþÿÿÿÿÿþÿþÿýÿþÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿûÿþÿÿÿþÿþÿþÿÿÿþÿüÿýÿþÿþÿþÿþÿþÿþÿþÿýÿÿÿþÿþÿþÿþÿÿÿÿÿÿ   #%'((*,./0.,*(''(())*)'$##%''',110//-,./00/02573/-*('&%##"!  +  ÿÿÿÿÿþÿþÿþÿþÿýÿýÿýÿýÿûÿûÿüÿüÿüÿýÿþÿþÿüÿüÿýÿüÿýÿýÿüÿûÿúÿùÿùÿùÿøÿùÿúÿùÿùÿùÿøÿøÿøÿøÿøÿ÷ÿúÿüÿüÿûÿúÿúÿúÿúÿúÿúÿøÿøÿùÿùÿùÿûÿüÿúÿüÿþÿýÿüÿüÿüÿûÿûÿúÿúÿûÿûÿûÿýÿüÿüÿýÿüÿüÿýÿýÿýÿþÿþÿýÿýÿþÿÿÿÿÿýÿýÿþÿþÿýÿüÿüÿýÿýÿýÿþÿþÿÿÿÿÿþÿþÿþÿþÿýÿýÿÿÿÿÿÿÿÿÿÿÿþÿþÿýÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿýÿýÿýÿÿÿÿÿÿÿþÿÿÿýÿþÿýÿüÿýÿþÿþÿýÿýÿþÿÿÿÿÿÿÿþÿþÿÿ +   !$%&),-./011/,+**+***+*)($""#&+./232100-,-032/.14651.*(('$##! + + ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿüÿüÿüÿýÿþÿþÿþÿþÿýÿýÿýÿýÿüÿüÿþÿýÿüÿúÿùÿúÿûÿúÿúÿûÿûÿúÿøÿùÿøÿùÿøÿöÿ÷ÿúÿüÿûÿúÿùÿùÿúÿúÿùÿøÿ÷ÿùÿùÿùÿúÿüÿüÿûÿüÿýÿýÿüÿûÿûÿûÿûÿûÿûÿûÿúÿüÿüÿûÿüÿüÿûÿüÿüÿüÿýÿýÿýÿýÿýÿþÿþÿÿÿÿÿÿÿþÿþÿþÿýÿýÿýÿýÿüÿýÿþÿþÿÿÿÿÿþÿþÿýÿüÿýÿÿÿþÿþÿÿÿÿÿÿÿþÿþÿÿÿÿÿÿÿÿÿÿÿþÿþÿýÿþÿýÿþÿÿÿüÿþÿþÿþÿÿÿÿÿþÿÿÿÿÿÿÿþÿÿÿýÿýÿýÿþÿþÿþÿÿÿþÿþÿþÿÿÿÿÿÿÿÿ   !"#" !%*+*+/12321/,+++-..,,,)&#!!"%)/24541//0.+,14311478753/+*)%$$" +ÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿýÿÿÿþÿýÿþÿÿÿþÿýÿýÿýÿýÿüÿüÿþÿþÿýÿûÿúÿûÿüÿüÿûÿûÿúÿùÿùÿùÿùÿùÿùÿøÿ÷ÿøÿúÿûÿüÿùÿøÿûÿúÿùÿùÿùÿùÿùÿùÿûÿüÿûÿûÿûÿûÿüÿýÿüÿûÿûÿûÿüÿûÿûÿûÿüÿüÿüÿýÿüÿûÿüÿüÿüÿýÿýÿüÿüÿýÿýÿýÿþÿÿÿþÿÿÿÿÿÿÿþÿþÿþÿüÿüÿýÿýÿýÿýÿÿÿþÿýÿýÿýÿþÿþÿýÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿþÿþÿþÿþÿÿÿþÿÿÿÿÿþÿÿÿÿÿÿÿÿÿýÿýÿþÿþÿýÿþÿþÿÿÿþÿýÿýÿþÿÿÿÿÿÿ   #$%%%%&+/0/.134210.,-./010.,*(&#"$&)-14541/..//./243248;==:730-*(&%$! !  +ÿÿÿÿÿÿÿÿÿÿÿþÿþÿÿÿÿÿþÿÿÿþÿþÿþÿýÿýÿüÿûÿúÿûÿûÿûÿýÿýÿüÿüÿúÿúÿûÿûÿûÿùÿùÿúÿûÿúÿùÿúÿûÿùÿøÿùÿùÿúÿûÿúÿùÿúÿûÿùÿùÿùÿùÿøÿùÿúÿüÿüÿûÿûÿúÿúÿüÿüÿûÿúÿúÿûÿüÿûÿûÿüÿüÿýÿþÿýÿýÿýÿüÿýÿýÿýÿýÿþÿýÿýÿýÿþÿÿÿþÿýÿþÿÿÿþÿþÿþÿýÿüÿýÿþÿýÿüÿýÿÿÿÿÿýÿýÿþÿþÿþÿýÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿþÿþÿýÿýÿþÿþÿþÿþÿýÿþ + !#"!! #'(''()+/12223542210/023553/+''((((+.036530///0133332259=@@;6320-+)'%$"  !!"#! +ÿÿÿþÿÿÿÿÿÿÿÿÿÿÿþÿþÿÿÿÿÿÿÿÿÿþÿüÿýÿýÿüÿýÿüÿûÿûÿûÿûÿüÿûÿûÿýÿüÿúÿúÿúÿúÿûÿùÿùÿüÿüÿûÿúÿûÿûÿúÿùÿùÿúÿûÿûÿûÿúÿùÿùÿúÿúÿùÿøÿøÿùÿûÿûÿûÿüÿûÿúÿúÿûÿûÿûÿûÿúÿûÿúÿûÿüÿûÿüÿÿÿþÿýÿýÿüÿûÿþÿýÿýÿþÿÿÿýÿýÿýÿýÿýÿýÿþÿÿÿþÿþÿþÿþÿýÿýÿýÿýÿýÿüÿýÿÿÿþÿüÿýÿþÿýÿýÿýÿþÿÿÿÿÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿÿÿýÿþÿýÿýÿýÿýÿþÿÿÿþÿýÿþ #%#"#""'****+,.11233442221013446640+(()-.-/01465321221123431269<?>:4221/,*'%$"! !$%$""!   ÿÿÿÿÿÿÿÿÿþÿýÿýÿþÿÿÿÿÿýÿüÿüÿûÿûÿýÿþÿüÿûÿûÿüÿüÿûÿýÿþÿýÿûÿúÿûÿüÿûÿûÿûÿûÿúÿúÿûÿûÿûÿûÿùÿùÿùÿûÿýÿýÿúÿøÿùÿûÿùÿ÷ÿ÷ÿùÿûÿúÿùÿûÿüÿúÿúÿúÿúÿûÿüÿûÿúÿùÿûÿüÿûÿûÿýÿþÿýÿýÿýÿûÿüÿýÿüÿþÿÿÿþÿýÿýÿýÿüÿüÿýÿÿÿÿÿþÿþÿýÿýÿþÿýÿýÿþÿýÿüÿýÿþÿþÿýÿýÿýÿüÿýÿýÿþÿÿÿÿÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþÿÿÿþÿþÿÿÿÿÿþÿýÿþÿþÿýÿýÿÿÿÿÿþÿþÿÿ "$$#%&&),-,,-.12112232/01//1343330.+**,/0//11244333431001232258;=<8520/.,)'&$!"#" !!$&(&###"!   +ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿþÿþÿýÿüÿüÿüÿýÿýÿûÿúÿüÿüÿúÿûÿþÿþÿýÿûÿúÿüÿýÿüÿüÿûÿûÿûÿûÿûÿûÿûÿûÿúÿùÿùÿüÿþÿûÿúÿúÿúÿúÿùÿøÿøÿûÿûÿúÿúÿûÿûÿúÿúÿùÿúÿüÿüÿûÿúÿúÿûÿûÿúÿûÿüÿýÿþÿýÿüÿüÿüÿûÿýÿÿÿþÿþÿýÿüÿüÿüÿüÿýÿÿÿþÿýÿýÿýÿþÿýÿýÿþÿþÿýÿüÿýÿþÿþÿýÿüÿýÿýÿýÿýÿþÿÿÿÿÿÿÿþÿýÿþÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿþÿÿÿÿÿýÿýÿþÿÿÿþÿÿÿÿÿÿ + "! !#%'()*+-0/-.134101210.././13442/,***+,.///1233444552/010122226:;:641.,))(&'&##$" "#$%'('%$##"!  + ÿþÿþÿþÿýÿÿÿÿÿÿÿþÿþÿýÿüÿüÿýÿþÿýÿüÿüÿýÿýÿûÿúÿüÿýÿþÿýÿüÿûÿüÿýÿýÿýÿüÿüÿüÿûÿûÿûÿúÿüÿüÿùÿúÿüÿûÿúÿûÿúÿúÿúÿúÿùÿùÿúÿûÿûÿûÿúÿûÿûÿúÿùÿûÿüÿüÿüÿüÿúÿúÿúÿûÿüÿüÿþÿÿÿýÿüÿüÿûÿûÿüÿýÿýÿýÿüÿûÿûÿüÿüÿüÿþÿýÿüÿýÿþÿýÿýÿýÿþÿÿÿýÿýÿþÿÿÿþÿýÿüÿþÿýÿüÿýÿÿÿÿÿþÿþÿþÿþÿýÿþÿÿÿþÿþÿÿÿÿÿþÿÿÿÿÿÿÿþÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿýÿþÿÿÿÿÿÿÿÿÿÿ + !##!  #%(+,---/33102443111/.--..145541.*))))*+-..1345556751/12000121367630/.+(''&''&$#! !#$&'&%&'&$$$#"  + ÿÿÿÿÿþÿþÿþÿÿÿÿÿÿÿþÿýÿþÿýÿüÿüÿýÿýÿþÿýÿýÿÿÿþÿüÿüÿýÿýÿþÿþÿýÿûÿûÿüÿýÿýÿýÿüÿüÿûÿûÿüÿüÿüÿüÿûÿùÿûÿûÿûÿüÿûÿùÿúÿûÿúÿùÿùÿûÿüÿûÿùÿúÿûÿûÿûÿûÿûÿûÿüÿüÿúÿùÿûÿüÿûÿüÿýÿýÿþÿýÿüÿûÿûÿûÿûÿýÿýÿüÿûÿûÿûÿüÿûÿüÿýÿýÿüÿýÿýÿýÿýÿýÿÿÿÿÿýÿþÿÿÿþÿþÿýÿýÿýÿýÿüÿýÿÿÿÿÿýÿýÿÿÿþÿýÿþÿþÿýÿþÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿüÿýÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿþÿþÿþÿÿÿÿÿÿÿþÿþ + + !!""""""#%&*.11/035753344432/../001477520/,**(&'*,,.12455679620120/012233441.--,+)'''('%##$%&'()(&&&&&&%$#  + + ÿÿÿÿÿÿÿþÿþÿÿÿÿÿÿÿÿÿÿÿþÿþÿþÿýÿüÿüÿýÿýÿýÿýÿýÿþÿýÿûÿüÿþÿÿÿþÿþÿýÿüÿüÿüÿüÿþÿþÿýÿüÿûÿûÿüÿþÿþÿûÿúÿúÿûÿûÿûÿýÿüÿúÿùÿúÿûÿúÿøÿúÿüÿüÿúÿùÿùÿúÿûÿûÿûÿúÿûÿüÿûÿúÿúÿûÿüÿüÿýÿüÿüÿýÿýÿüÿûÿûÿûÿüÿýÿüÿüÿüÿûÿüÿûÿûÿûÿýÿýÿûÿûÿüÿýÿýÿýÿÿÿÿÿþÿÿÿÿÿýÿýÿýÿýÿýÿýÿüÿþÿÿÿþÿýÿýÿþÿþÿþÿþÿýÿýÿýÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿüÿüÿûÿüÿÿÿþÿÿÿþÿþÿþÿÿÿÿÿÿÿÿ + !$# #$#"#$&+/45345677667666410124568;93///,'''%&*,-/1244478874221//122444552/,,,-+)(()((('(***)))(('&((&#! ÿþÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿÿÿþÿýÿýÿüÿüÿþÿþÿþÿþÿþÿýÿýÿþÿÿÿþÿþÿþÿýÿýÿýÿýÿþÿÿÿþÿýÿüÿûÿüÿýÿýÿüÿúÿúÿûÿûÿûÿýÿýÿûÿúÿúÿûÿûÿúÿúÿüÿüÿûÿüÿúÿùÿùÿúÿûÿûÿùÿûÿüÿûÿüÿûÿúÿüÿýÿüÿüÿýÿýÿýÿüÿúÿúÿüÿüÿûÿûÿüÿüÿüÿüÿûÿûÿüÿüÿüÿüÿûÿüÿýÿýÿýÿýÿþÿþÿþÿþÿýÿýÿýÿþÿþÿýÿþÿÿÿþÿüÿüÿüÿýÿþÿþÿþÿþÿþÿýÿýÿÿÿÿÿÿÿÿÿþÿþÿÿÿÿÿÿÿþÿýÿÿÿÿÿýÿýÿýÿüÿþÿÿÿÿÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  #&'%#$&%#"#$',0688::99::;;:::854568:<=?:3../+%$%$&),0211224897653330/1344446740.-,.-+*+,+,,**,--+*))*)'''%"   ÿÿÿÿÿÿÿþÿþÿþÿþÿÿÿÿÿþÿþÿþÿÿÿþÿþÿÿÿþÿýÿüÿþÿÿÿÿÿýÿýÿÿÿþÿþÿþÿýÿýÿþÿÿÿþÿýÿüÿüÿýÿüÿûÿûÿûÿûÿûÿüÿýÿýÿüÿýÿüÿûÿúÿúÿûÿüÿüÿüÿýÿûÿùÿùÿúÿúÿûÿúÿùÿûÿüÿûÿûÿúÿúÿüÿüÿûÿüÿýÿþÿþÿüÿúÿûÿüÿúÿûÿüÿüÿüÿüÿûÿûÿüÿüÿûÿûÿüÿýÿýÿýÿüÿüÿüÿýÿþÿýÿþÿýÿýÿýÿþÿþÿþÿþÿþÿþÿüÿüÿüÿüÿþÿÿÿÿÿþÿýÿüÿýÿÿÿþÿþÿÿÿÿÿÿÿÿÿþÿÿÿÿÿþÿþÿÿÿÿÿþÿÿÿÿÿþÿþÿýÿýÿÿÿÿÿÿÿþÿýÿýÿýÿÿÿþÿÿÿÿÿÿÿÿÿÿ + !&)*(''((%$$&(+/379<@@@@@??????=:9:<>>?BC>7/./-(&'(*,/3300125776544453114533566410.-.--,,-,..-,,---,**,,)&$#"!!  !  +ÿÿÿÿÿÿÿýÿýÿýÿýÿýÿþÿÿÿþÿþÿÿÿÿÿþÿýÿÿÿÿÿÿÿþÿüÿýÿþÿþÿþÿýÿýÿýÿýÿüÿûÿüÿüÿúÿûÿþÿþÿýÿýÿüÿûÿûÿüÿüÿýÿüÿüÿýÿýÿûÿúÿúÿûÿûÿúÿùÿùÿúÿûÿûÿúÿúÿúÿüÿýÿüÿûÿýÿÿÿþÿýÿüÿüÿûÿúÿûÿüÿüÿüÿûÿúÿûÿüÿüÿûÿûÿüÿýÿýÿûÿûÿûÿüÿýÿþÿþÿýÿýÿýÿýÿþÿýÿýÿýÿþÿþÿýÿüÿüÿýÿÿÿÿÿþÿýÿýÿýÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿþÿþÿÿÿýÿûÿüÿÿÿÿÿÿÿÿÿÿÿÿ  (-.+'(*)'&%')+.258;ADDFEDEEEFFCA@?@ACBBEFB;411.,,,-/02431123333443355543345566531/-,,,,++,,-/.,++*+-,*+,*'$$%#!! "# !! ÿþÿýÿþÿþÿýÿþÿÿÿþÿþÿÿÿÿÿÿÿÿÿÿÿþÿþÿÿÿÿÿÿÿþÿýÿýÿÿÿÿÿþÿýÿýÿýÿüÿüÿýÿþÿýÿüÿûÿýÿþÿþÿþÿýÿûÿûÿýÿýÿýÿýÿýÿüÿüÿýÿýÿýÿüÿüÿûÿúÿúÿùÿùÿúÿûÿúÿúÿúÿüÿüÿüÿüÿýÿÿÿþÿüÿûÿûÿüÿûÿüÿüÿûÿúÿûÿûÿüÿýÿüÿüÿüÿüÿüÿûÿúÿúÿûÿýÿþÿþÿýÿýÿüÿýÿþÿýÿýÿþÿÿÿþÿýÿýÿüÿþÿÿÿþÿýÿýÿþÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿþÿþÿÿÿþÿýÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿ +  %,01/+*,,*('')-/147:@EGHHGGJLLMMJFEEEGHHGHGC=863000//023565432/./243466665457876431.,,+++*,+,./-*)))*,+)()*(&&%$""" "#"!  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿýÿýÿþÿþÿýÿýÿýÿýÿüÿüÿýÿþÿýÿýÿýÿþÿýÿüÿþÿþÿüÿüÿýÿýÿýÿýÿýÿýÿüÿüÿþÿÿÿþÿýÿüÿûÿûÿúÿùÿùÿúÿûÿùÿùÿûÿüÿüÿýÿýÿþÿýÿûÿûÿûÿüÿüÿüÿûÿúÿûÿûÿûÿýÿþÿýÿüÿüÿýÿüÿúÿùÿùÿûÿýÿýÿþÿýÿûÿüÿýÿýÿýÿþÿÿÿÿÿþÿþÿýÿýÿÿÿþÿþÿýÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿýÿÿÿÿÿÿÿÿÿþÿþÿÿÿÿÿÿÿÿÿÿ  $)-48631/010-+)),1447:>EIJKKIKNPRTSOLJIKNPOLKHC?<;96642003579:851.,-144578888778754442.,,,+**+*,.-+)))*++**('(*)&%%%%%#""##$$"   ÿÿÿÿÿÿÿþÿþÿþÿÿÿþÿüÿüÿüÿýÿýÿýÿýÿþÿýÿýÿüÿýÿþÿýÿýÿýÿýÿýÿýÿýÿýÿýÿþÿþÿýÿýÿýÿÿÿÿÿþÿüÿüÿüÿüÿûÿúÿúÿûÿúÿùÿúÿûÿûÿüÿüÿüÿÿÿþÿüÿûÿûÿûÿûÿûÿûÿûÿúÿúÿüÿüÿüÿþÿýÿûÿüÿýÿüÿúÿøÿùÿüÿýÿþÿýÿûÿûÿüÿüÿüÿýÿþÿþÿÿÿþÿýÿÿÿÿÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿþÿþÿþÿÿÿÿÿþÿÿÿÿÿþÿýÿþÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿ + + +  %+16;@A;8777652/..1568<?DJNNNPPPRSVZXUROPSUVTRPMGC@?=<;9754579;;:720..14456779;:99633442.,+*))*('*+)())(*,+++*('**'%'(''&##$%%%#!   ÿþÿþÿÿÿþÿýÿýÿýÿýÿýÿýÿýÿþÿýÿýÿþÿýÿüÿþÿþÿþÿÿÿÿÿýÿüÿýÿþÿþÿÿÿþÿþÿþÿýÿþÿÿÿþÿýÿüÿüÿüÿüÿûÿûÿûÿûÿûÿûÿúÿüÿüÿüÿþÿþÿýÿüÿûÿûÿûÿüÿûÿûÿúÿúÿúÿúÿüÿüÿüÿþÿýÿûÿüÿüÿüÿûÿùÿùÿüÿÿÿüÿûÿüÿüÿûÿüÿýÿþÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿýÿþÿþÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿþÿþÿÿÿÿÿÿÿÿ + +  #&*+.5;AFHD><>>=97643369;>BFKORRRTUVXZ\^^[XVVX[\YWVSMIFB@><;;:999::::9632344234568:;:8522210.+)('((&%(*(&()''*****('()(&())**&$$%%$""! +  + ÿÿÿÿÿþÿýÿþÿþÿýÿþÿþÿüÿýÿþÿþÿýÿýÿüÿýÿÿÿÿÿÿÿÿÿÿÿþÿýÿþÿþÿÿÿÿÿþÿþÿþÿþÿÿÿÿÿþÿýÿüÿýÿþÿýÿüÿüÿüÿüÿüÿûÿûÿüÿýÿþÿþÿüÿûÿûÿúÿúÿúÿûÿûÿúÿùÿøÿùÿúÿûÿüÿýÿýÿýÿüÿüÿüÿüÿûÿúÿúÿýÿýÿýÿüÿûÿüÿýÿýÿýÿÿ +  ÿÿÿÿÿÿÿÿÿþÿþÿþÿþÿÿÿÿÿþÿÿÿÿÿÿÿþÿÿÿÿÿÿ + "'+-1469>EJMKEA@@A@;88888:=ADHLORUWWVX]_abbba^[Z\`b_\ZWSOKEBA=<<<>=;::9::9767862234468:96422110-+*(&&((())('''%%''((((%%''&'(*,,*'%%%%"!! + + + ÿÿÿþÿþÿþÿýÿýÿþÿþÿýÿþÿÿÿþÿüÿýÿýÿüÿþÿÿÿþÿþÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿþÿýÿýÿþÿÿÿýÿýÿþÿýÿüÿûÿüÿüÿýÿþÿþÿüÿûÿûÿúÿûÿúÿùÿûÿûÿùÿøÿøÿùÿúÿûÿüÿýÿýÿýÿýÿüÿýÿüÿûÿûÿüÿþ ÿþÿýÿýÿýÿýÿýÿþÿÿ + + + +ÿÿÿÿÿþÿÿÿÿÿþÿýÿþÿÿÿÿÿÿÿþÿýÿþ + + ")-147;<?BGLOOKHGFDC@=;;;=??@EILQSSUXYZ]adfggfda__`cfda_\XTNIEB????A@>>=<;;;;;:986422236774212221.-,*'&(+,*(())'%$%%&((&$%&&%&(+,+)(&$%%"   +ÿÿÿÿÿÿÿÿÿýÿýÿýÿýÿþÿÿÿÿÿýÿûÿüÿýÿþÿþÿýÿýÿýÿýÿÿÿÿÿþÿÿÿÿÿþÿÿÿÿÿþÿÿÿÿÿÿÿþÿþÿÿÿþÿüÿüÿýÿýÿýÿýÿýÿüÿüÿûÿûÿûÿúÿûÿûÿúÿøÿøÿùÿùÿûÿûÿýÿýÿýÿüÿýÿüÿüÿüÿüÿüÿý-ÿÿÿþÿþÿþÿÿ    + +  + ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿüÿüÿþÿÿÿþÿÿÿÿÿÿÿÿÿþ + #'-378:>BCEHNRQONMMLJFB@??@DFEFJNPTWWWX[`egkoomkfbaaadggfdb^YTPKECBAACCCDC@><=>>=<<;61111245311233210.+))*,/,*+,+)&$#"%''%%&&%$'*,+*('%#$%# +ÿÿÿþÿüÿüÿþÿÿÿýÿüÿüÿýÿþÿÿÿþÿÿÿÿÿþÿÿÿÿÿþÿþÿþÿþÿþÿþÿþÿÿÿÿÿÿÿþÿþÿþÿÿÿþÿýÿýÿýÿýÿüÿüÿûÿúÿúÿûÿúÿùÿùÿùÿùÿúÿûÿüÿýÿþÿýÿüÿýÿýÿüÿýÿýÿüÿÿ ',   + + + + + +  + + + + + + +  ÿÿÿÿÿþÿþÿÿÿÿÿÿÿÿÿýÿüÿýÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþÿÿ +  $(+/49;=?CFGJMQUSQQPNNLHEFFEFIKKMPRUXZ]\[_ekpuyxtoieca`cgiihfc^ZXSMJHDCFGHHHEA>>>=>@@=84321013333123220.,+,-.0/..,*)'%""$&&%%&&%$%)+)'&%$##$$!  ÿýÿýÿþÿÿÿþÿýÿýÿþÿÿÿÿÿþÿþÿþÿýÿýÿýÿþÿÿÿÿÿÿÿÿÿþÿþÿþÿþÿýÿýÿýÿüÿûÿûÿúÿúÿûÿúÿúÿúÿúÿûÿûÿýÿýÿýÿýÿþÿýÿýÿþÿýÿþ   + + + +  + + + + + + + + + +  + + + + +  + +  + + +ÿÿÿÿÿÿÿþÿþÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿþÿÿÿÿÿýÿþÿÿÿÿ + + %,0359<>BDHIJLORTSRQMKLKIIKMLKJLNQTVZ\]_a`cjqw{}}yqiedbbdgjigeca^\YUQNJIKKKLLID@><<?BB@;974332235412431/.,,.012000,(('%#"$&&%%$$%%%(*(%#"#%%#$$" +ÿÿÿþÿÿÿÿÿÿÿÿÿÿÿþÿþÿýÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿþÿýÿýÿüÿûÿûÿüÿûÿûÿûÿúÿúÿúÿûÿüÿýÿýÿýÿþÿÿÿþÿþÿÿ  + + + +  + + + + + + +    + + + + +ÿÿÿþÿÿÿÿÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿÿÿýÿÿÿÿÿþÿüÿþÿÿÿÿ + #*168:?ADIJKMLMORSRPOKIJKKLOPPNLMQUWY\^_adefmty||{wogdddfhhifcccb_][ZVTRQPOPQPMHB=;<ADDCA>;87863245446520.-.0343110,)'&$""#$$$$$#$&&')(&$"#&'$"!   + + + ÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþÿÿÿÿÿÿÿþÿþÿüÿüÿüÿüÿüÿüÿûÿúÿúÿúÿúÿûÿüÿýÿþ  + +   +   +   + + +ÿÿÿþÿÿÿÿÿþÿþÿÿÿÿÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿ + #*06:;>DGINOOPPOPQQPNKHHIKMOPQPPPRUXZ\_`adhkknsy}zuphbaceilkiebbbb`]\ZXXXVSQSSPNKD=;>BFFGGD@>=;842465576320/0344200.*'%$" """"#%$#&(((('&%$%&$  + +  + +  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþÿýÿüÿýÿþÿýÿûÿúÿúÿúÿûÿüÿýÿþ +   + + +      + ÿÿÿÿÿÿÿþÿÿÿÿÿÿÿþÿþÿþÿýÿÿÿþÿþÿþÿÿÿþÿÿÿþÿÿÿÿÿÿ #)07<>?BEINQQPPONPPNLJGFGJKMPRQPRTUVY\`ccdgknpprxzunf^Z]cgkmlkhebaa_^\YXYXUSQPQMJIFA>AEGHKMLHD@>;74465576442245331/-)&$#" "$#!"%&$$'('&%&&%%%"  + +   +  ÿþÿÿÿþÿýÿþÿþÿüÿüÿûÿúÿúÿüÿýÿÿ  +   + + +        + + +ÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿýÿýÿýÿþÿþÿýÿýÿþÿÿÿÿÿÿÿÿ !$'.5;?ADFFKQSONNLKNNKIGFGHILOQQPPUXXXZ^adfgiknsuturle^VTZbgkmkkjhdb`^\ZXWXVRPLKLIFEEDCCGIJLPQOJDA@;6577666764576310.+&$###! !%&" #&%$&'&&%'('%$!  +   + + + + ÿÿÿÿÿÿÿÿÿÿÿþÿýÿþÿýÿûÿûÿüÿýÿþ + + + +  + + +       + + ÿÿÿÿÿÿÿþÿþÿþÿýÿþÿÿÿþÿþÿýÿþÿþÿþÿÿÿÿ +"$)2;@CEHJIKOOKJLJIJJHGGGHHHJMOOOQV[\\^_adgikknsuurld]XSRX`ejjhikkiea_]ZYYYVPMIHGDBBCDEFGIJLOQRNIEC@;::9857:989:863/,)&$###"!!!$%$"#&(''((''())'$"""!    + + +  +  +ÿÿÿÿÿÿÿþÿÿÿÿÿþÿüÿüÿýÿþ   +  + + + + + + +    + + + +ÿþÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿ  !$,8BFHHJJIIIGEGIJHFEEEGGGGFGJMNPRVZ^`baafjlnnprttqkbZURRX_dgfegkmkhdba_^^\WSPLJFA@BAAEHHGHKMNPPMJHE@?>:978;;<=;996/*'&%#""##"#%&'&&*,)'()*(()))&#$%$!    + + +   ÿÿÿÿÿÿÿÿÿþÿþÿÿ   + +  + +       + + ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ !#'1<DHJIGFFFFDCEIJHECDFGGHGFGIKMPUWY^accdhloqrsuvurlc[WUVZ`eecegijkkjgda`_\XVUQMHDCBAADGHGHKLMOPOMLKGDB>==>?@@A?;96/*''&$####$%'((**,.+'(++))***(%$$#      + + +    ÿÿ + + +   + +   + +  + +      ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  !%*3;AGIGDDFGFEEGJJHECDGGGHGFGJKLPVY[]`ddeimqtvy|}ytmd]ZZ\^adcbdeffgjkiea]\YUTTSOKJJHGFEHIIJLNPQSRPQQNKHEDEFFEEDA>83.*)''&$##%%&()*,,,-,++,+()*+)('$"!    +  +   + +    + + + +        +   ÿÿÿÿÿÿ +  $+3:@EFDCEFEEFGIJHFEBCEFGHGHJKLMQWY\^bdcdhlpux{zskb[Y\^^_`^^^`a__cedb_\ZVSQQQNKLOPOLKLMLLNQSUVUTWXTQNJIKKIHGD@=94.**('&#"%''(*,-..-,,+***(()*(&%#"    + +  + + + + + + + +    +   + + +  +    + + +  + + ÿÿÿÿÿÿÿÿÿÿÿÿ  + !$*2:@BDDDEDACEFHHFDDCCEFHHHJJKKMQUX[_cdcdgknrvy||vnf_XWZ\\[YWXXZ\YVY\\[ZZXTQOLLJHKOQQPORQOOPSVXYXY\\YURONMLJIGB><:5/+*))&$%&)+-/0//00-*((((''))(%#"!   +   + +  +   + + + + +  +     + +     ÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿþ  !#$*2:?@DEEFECCDFHHFCCCDFHJHHHHHIMQTW[^abcefjnquxyupia\YXXYYVSRSTWWTQRUWVVVSPNKIHGFJNQRPPTURQQUY[]]___\ZWSRPONKGD@=;61.,,,)'((*.122//11-*((('&&(**'#"! +  +        +  +       + +   ÿÿÿþÿÿÿÿÿÿÿÿ "##$&,4:>@DGGGFEFHIJIEBBCDFIJHFFFGHMSUZ]^`aceginsuxvplf_\[YXVUSPOQSUTRQQQRRSRNKIIIGEGKOQQPPRTSQRVZ]_ceb`_^]ZWVTROJHFB=840.//+)+--/1220.01-+*)())))*)&#"  + + +  +    + + +  + + + + +      ÿÿÿþÿÿÿÿÿþÿÿÿÿÿÿÿþ +  $$$#'-4;@BEHIGFFHKLKHCAABCEGIIGEFHIOSWZ^`aacfhintutqmic]\[XUSRRPORUURQQRQOOPMIFEGHGFIMPRPOPPQRSTWZ\^cgecbba`^\YVTQNKGA:50/0/-+.1111122100.++,++,,,*&#"   +  +     +  + +      ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿýÿýÿÿ + #&%$',3<BCFIGEGHIJKIE@>???CFGHHFFGJOSXZ]abadhjkotusolga^\ZWTRRSRQUWURQQSSQPOJDA?@DFHKNRTRRRRSVY[[[\]`deffeddca^\ZWTPJE>8410//..0133222320.,./.---,*&"!!"!  + +      +   !"!#&&#"#"!     ÿÿÿÿÿÿÿÿÿþÿýÿþÿÿÿþÿþÿÿ + #''&(+2<@BEGEEGGFFHFB><<<?DEFGHGGILPU[]_bbbejlnsuusmieb_\ZXVTTTSUYYVTSSTTUSOIC?<<?CGKNSWVUVVX[`cb_]^_^adefffeeca_\ZWPIC>;73011100355433321011/-,+)(%#" !!!! ! + + + + + +  +       !#"!  ! !$$  "!"$"#&'(*,++-,--*)*)'%$$   +ÿÿÿÿÿþÿÿÿÿÿþÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿ !$()))+2;@ACFFHHEDEGFB>>==ADEGHGIKNORV[]`abcgklostspjddda\YXVVWVVY\[XVUVUUVTNGC@><<>CHLRUUUUWZ^cghea`_\\]^`cceebaaa_]WPGC@;7334432477654334100-++)'&$"" "#!  + + +  +  +    +   %+,)(%#!!" !"#%''$ #%&%&''(()++-0257898976420110.+)(%   +ÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿý "$')*+-2;ACEGHJIDEGFD@??>?BDGIHHKOQRSVXY\_cehklmpqokgbcea\ZXUVVXZ\]\YVUVWVURMGCA@>=>BEIORRQORX[`eiigc`_^[Z[\^abbbcdca]WNHD?;964566789755332/-,*()'%$"! !! """ + +    +     +  ###$%'+..+($"!#"#$%&''&##&)-,+.../1357;?CEEEEDB?<;99998301/,&"   ÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿü !#%&(+-3:AEHJJJGDFGFB@?@@ACEHJIILPSSTY[[]aefgikmlligebdeb^ZWUUVX[^]\[XUUWXTOKHDBCCAACDFJMNLKNQSX^dggd```]\\\\_befeffdb_YRLFB@<7788999754431/,*('&&%"!!  ! !"""#   +   + + +      ! #())+-,---*&#!!%%&(()('(&&(-1323447:<>AFLPPPPONMIEB@@A@@:67640+)'#  ÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿý#$$%)+-4<BGLONLHFEEECAAAACDFIJKJKOTUV[_`beihffijhgeeeegfb]YVVWXY\a`_^[XWXYTNIHGGHGEDCAACFIJJKLLPV[_ba]\[Z\]^^`cgjjjkiggd]UNJFB>=<<<;::987432/,(''('$!!"! ! !" !#$###  !   + +    +      $$%+.,./-,-+('&#  !"!"'*++,,**+,,.38;9779>ADHKNTXXXYWTTQMIFFFGFA<<:9610/,($     ÿÿÿþÿÿÿÿÿþ "&&%',-.6?EJPQPOKHEDDCCB?@BDGKLLLLOUXY\`cdhlifefgffeeffhga[WTTX[\_bccb`][\\WPKJJJJFDDA=;=@CGIHGHMPRV[\ZWSRVX[]^bglnnonklmf\UOIGFCBBA?>===:98641+())('$"$$"!#$#""%$###! !  + + + +  + +    !$&',.-./,*,)%')%! !!!"%%$$%*..--../2677;>AA?=?DHLQUVX\\[ZXSRRQOMKKMLHED?<:6552.*&"   ÿÿÿÿÿÿÿÿÿÿ  $''&(-.07?ELQTQNKGEDDCCA?@BCGLMNOPSVZ\^aegjljhfefggeefghgaZTQRV\_`bccdfca`^ZUPONLIEDB>:78<?BEECEJKMQUVURNLPSTUY]billnqqqrmd\UOLKIFFFEDBA@==<:84.+*(&''&&&%$&'%" ""!"$#"#$#"  +  + + + + + +     #$&),.-./,*+($&)&#$%$%%&(+*()+/2111346:@B@BEIMKHJORTX\\[[[XVTOLMPRTRQROLLKC?>;8731/,($##"   + + + +ÿÿÿÿÿÿÿÿ #%&(*-.17?GNSUPIEDBCDDDB@BCDIKMOQTVW[^`dhklljjigfihffghhf`XQPSW\_abbdgkkhd`]ZUSQNKHEA>:547;?@BBDHIJMOPQPMJKOPORV\cgjmrxxwslc]WRPNJGHJHFFDA@>=:62.+(&''''&''''&$#%&%""###%%$"   + + +  + + + +     "%$&+,-../-++(&(+)&'(('(*,///2699899:=?BFIIKOSWWUX\][\_^\ZXUSRPLLOTXYXWSPPNFBA?<84310-*'(($!   + ÿÿÿÿÿþ  "%(+-./18AKRVWPGA?=>BEECACEIKLOPQTVW[_bfilmlklkhiljghiifd`YSRVZ^`bceiloqnic`]YVROLJFA>;5259=>@CFIIIKLLMNNKILNLLPU]cinsy|yupib\VRPMJJLKIIHECB?=:60-*('&&'((((((''*)&" !$&#!  + + + + + + +    !#%&(.//1//.,+*),-,)(***,/1368>BCA@?ACEEFINPSWX[\[^ba^_`]YWSQPQPOOPU[]^\XUTPIEDC@=97432.,,*'%$    +!%')-//.07BLRWWPF?:7:?CDCCDGKLNQPQUVW\aehkllkklkklmjghhheda\WVY]`bdglpqstsoid`ZUROKIFB?;7569;>@DGIIIJKJJLOMJKKJLMPV]elquyxtpkf`YSPNMKKKKLKIHGEB?831.*(((()****)((*)&!!"  + + + + + +    !$%'*022320/.--.0/.,+-./0148<@EIGDCCFJKIHKPTUVWYZY\^`^\[XTPKIJKJKNOTY\__^]YSNKJHFEB>;85320-+*(%!  + "')*-0/-06?IPTSME>759<@CCEFGJLOPPSVWX]afklkkklmmllkgfghiihe_[Y[_dfjotuvvvvuqkd[TPNKIFCA<:::;<>AEHHHINPLIKPOLMJILKJMT]emrvwtqmhc\TOLMNLKLMMKJKJHC;630-+*)))*-0,''((&$ ! + + + + + + + !  "&"!%&),0334312224565110122127=@CFIGDEFJNOMKMQTRRRRSTVY\[VSRPJC@BDBCFHMRUY\_`]XUSQNLLJFD@;996431.+&$##" + ÿÿ  $(**+--,07?HORQKD=747;@EEFFHKKNOPSVVZ_bgkiijkmomkjgfhjjlmlhb][[`fkotyzyzzyxvph`VOMLJFDDA>>@@?@CGIJJMX^ULMQPMMJHJGCEKS]hptxvspkf]TNKLNOMLMKIIJKJF>8511.)))))-.+)(('%" !  + + + + $%! $'&##$!!$'+.0345436769<=<97655446<ADDFFEFGHKNPQPRSRQPNKJMOSYXSQPMF?=>>=>?@DHJNTY\]ZYWUSQRPMLJDBB?=;853.*('%" +ÿÿÿÿÿÿ + #'**)*++-19AJORRME>:68>CHHGGJLKMNNQTUZ`dhjhgjmppnkigfjmnnnlhc]Z[`gmpty{{}}{xqh`XQNNMJGEEEEFGFEFHKMMQ`i^OMRQNKIHGC?@EKUcmrvwvtoh]SMJHJNNLKHDEGHIF>:7640,,,+)((*,+)(&""#  + + + + !#!! !#"$'())'%#$'),/377659<:>ABC@><9779<@CFGHFFGHJMNQTSTSRRSOJIMNQVWVUQLFA>====>?ABBDJPUXVUTSSSTTQPOLKJGEC?=;72-)&$!  + + ÿÿÿþÿÿÿÿÿÿ #&++*+*,.3:CJMPQLD><9<BHLKJJLMKKLNOQUZ`eijhhkoqpnkihgknoonjgb]Z\binprux{|€}zpe]UQQRTPIEIKIHJLKJLNNMOXa\PLOPMIGHGCABDGO]jqvwwvrh^TMHFHKLIFC@@CFHD>:8:8521.,(%',-*('%  "  +  + ! !  #&%&()*)''&&'')-1578:>BBBDEHFDDA<:<?@CEGIHGGHMQQSTQRSRUWTNNSTVZ[\YRMIEBA@A@>?AB@@EJPTPNNNOPRTSRPNONKKJGDB?93-)(&#"! + + ÿÿÿþÿþÿþÿÿÿÿÿþÿý #'+,-,*-03;DJLOOIA<:;>EKNNMNNNKJLOPRV[`ceffglpqqnjihjmnnoligd`^`ekrrrqty{}}|xnb[TPQQSPIIMNLKLOONMMMKJMTVPLKMLIHIIHGFFHMYgqvwwvqg]UNIHIJJGB?>>@DIHC;9;;962-)&%(-,'$$"  +    + +  !#'*((*,*())))*)*.1259?DGIGFHLNNMJFBABBCCCGHEDGNRQQQPQTUX\XSTY\]``_[TOLJHFDDB?@BDCCFHLNKJIFGIMPRPNNONMMNLIHE?94/-*('%"!"! +  + +ÿþÿþÿÿÿÿÿÿÿþÿþ #)*+..,.25<DILONH?:9;@EJMMNOOMMNPRSUW[_``bcflonomihilpoopmkkidbdgmsrqpptwxwuqjb\WRSXVMINQONOMLNOMKKKHKSUPKIIJJIKLLKGFJPYgpuvvuncYRMIHIIJGC@?>>BINJ?:;;751,(&')*($#$"!!  + +    + +    "%),+*-/,+-+*,--04667<DIKNMKOU[]YUQMJIIFCDGHCAFKONMPTWY[_c_ZZ_dcba^[VRONKHECCBBEGFGJIIHEFE@@CGJLJHIKLMMOPMLJD?;730-+($"#""! + ÿþÿþ   %))*-.-/37>EHLOMH@;:<@EHKLMNMLNQRSTVX[]]^acejjijkiilpssstrpolheeflpponmorspmjfb^ZU[lbJGOROPPMIJNNKJJHLSSMHGGIIJMNMLHGKPXenrttrgZQMIGFFGHGEDB@>BKROC;9852.+)'(*'#"#$$#"  +   + +   !"$*/,,00..-+*.116;<<=BJOPTUTYaefb]ZVOMLHFJKICADGLMOU\`behkiedgjgc`\ZXUSPKGDBDEEGJIIKKKGBDD?=>ACDCABCGJKORPONHDB?;840+'%#$&%#" + ÿÿÿýÿþ  "'*+,./.049@EIMNLH@;;=AEFILMKLLOSTTTVWZ[[\_adfffiiilptuuuusqomjebaekljijjlmjgeaa`]WXkbFFNPNOPOKIKOMIIHJLJFDDEFGHLOONKJMPValpqqmaTLHFEEFGGGGFDAAGOSOD;7641,*)''(&#"!"$%$   +      + + "%%+0.0320/-+,167<@@ACIPWY[\\`egge_\XOJIHILLIDBDHMQU\bgilnqrolmnjge_\[XTPKGFDFGGIKKLNQQNGEFB>=====>?@BEGMQQQQLGGEA?;61,)'(**(%! + + ÿÿÿþÿÿ $),-/11036:?DJMLKH@;:<CFEFIJIJMPTUWVVVWXXX[_ccdhkkkmprrrsqomkkhb^]_dfbaccfhecbaba_Xc’‰RFNNNOQQOKJMLIHHHGDAACCDFGJNPNJKNQV_imooi]RKEDEFHHGGHFBAEJQSME=7662,)'&&'&$"""$'&"  +  +      #&&*0136740/.17<=@EDCFLU]`]^`acdcb\XVNGHJIJIGEDGMQU[cgjmnorusppommke`]WRPNKHGGIIJMOPRVXVPKID@>==<<?BB@@ELPONPNJIGDCB=82/.//-+&#! + + + ÿÿÿÿÿþ#(*,/22147:>CILKKH?:9<BEDEEEFIMPQTWWUVWWWXZ`efhkllmnnmnnnmkheec_\ZY[\YWZ\`b`_`ccccg¡êzMPRPQSRQOLJIJJHHHE@@BBDEFJMNLIINRV^fkonf[QJEDFHIIGFFC>@GMQQMG?8762,'$%'('#"#%%&&$"! + + + + +  + +   + + + !"%(+146:;73016<@??DEEGMW^`[[]]_a_\XSSNJLLIHIHGGKRVY^fjlnlnsutrqnoonic\UPPPMJJKJJKOSTVY\\XRMFCA??==BFFBAEMRPMMLIIHGHGB>965420-)'$"#! ÿÿÿÿÿÿÿÿÿÿ"%')-22357:?DHKKKG?:9<@CCCBBDGKMNQTUVYYXX[^dhjmnlkklkjklljgd`^\ZYVSTURRVX[]\]`ccdk†Ê ëŽ]WYUSTSRQNJHKMJIIFCABCEEEHKMLJIKQV\elpmeZPIGGGIJIGDBA?AGLNMLH>764.)%#$&&'%"$'&&'%#! + +   + + +    +  ""%*.369<=93139=>=<?BDGLV[ZVSTVYZXWUQQPNNKHHJJKMPVY[`hmnpmnstsrpnppmicZTRQOLKLMLLMPTVWZ^^[UPKGECA?ADGHHFHMRPMLIFEGHKKFB@>;7420-*'$$$  + ÿÿÿÿÿÿ $')-01579<@EHKKKH@;9;?AA@@ABDHLNQSUWY[Z[^chhknmkifggghikhda]XUTSQOQPPRWY[]]_adcgt‹œ–†wf_`\XVTRPNLKMOLHFEECBDFFEEHLMKIJPW^emoke[QJGIIKKJHD@@ABDFGIJF=752,&$$#$%%$$'(&')'%#! +  + +    + " !$"$).269<=94468<;;;=@BFLRTQOMNPPPQSTQPSRMIIIILPRTXY\bkrrrpoqqppnnpplf_YXWURMMPPPPPPQSUX]\YVSOKIHFEGIJKMLKLONLMLHDDFJJGEEC@=8410-'"  !  #').0037;>@EHJLKF@<:<>@AA@@ACGKNQSTUVZ[]`ehfgihgeacefefhfb`[TOMMMOQOQUX\`bbdefgmureTWbccb`^YVRPPOOOOLHEDFFDDFGGEGLLIHIQ[bglnje]SJGIJMLIGB>?@>>@BGJE<641*&%$#%%#!#&'&(*'%&#   +  +  + ! !%%"#%$%(+/26:954877::99<?BHLNNKKLLMJJOQQOOSSMLOMLPSTUY[^fowvuronmllkknpkb\[]\ZXSSUVTRRPNPSWZYWWWSONMLMNONNNNNMMLKNQOJGFGGEFGEDC>853.'! + ÿÿÿÿÿÿÿÿÿþ !"#&-0/27<?ACEHIHE?;:<>ACCA@BEHKMNOQRSWXZ]bfdddba^^befdefc_^ZSNKJLOQQTXY]bdfihikmme\Z^cec``_[YVRQPQPNMKGEHJIGGIIFFKJHFHR^eijkjd\SJGJKMLGC><?@<9;AFIC932/*''%%&'%#$$%'))&$%# + + + +  + + + + ! !"#$&'%$%&'(*./3972489799779=BILKKJKLKKHHNQOMMQQOPTSSUUUX]aeltzyvrnkihhfjpqi_[]`_^\XWXXUSTSRVXXXVSVZXUSQNPRRRPMMNMNMMPVVQLJHEDDDDEFB?=7.)%" +ÿÿÿÿÿÿÿþÿý "! $+.048<>?ADGGGEA;89=BDCAADGIKLKLMNRUVX[acbca]^^^adedfgc_]YSPMLMPRUX[[^dehjjiiige`[\chfa^^][XVSQRRPNMKHHKMMKKKFEHIIGHS`fihhgbYQIHKLMLF@=<@A>:;@DE?5/..+))(&'))('&&)*(&$"!  + + +   + + +  !#"#%&'('$&((()--/551378789768<AHKGGIJKKJHGKMMKKNPPSXYYZY[_chnty|zuqmjgfefmtrh][]__^[WWWVUVZ\^bb]XSOSY[YVSPRUVTSPPQPOOPSX[WSQLGC@?>ADDCB<3-*&  + + + ÿÿ#(,058<=?BEGIHGD;78;@A@@BEGIJJJKLNRUW[_bb`b`]`a_`dghjkif`YUSQPQSUY]^_bfghhgfbaaa]ZZ^dge`^_^ZWTRTTRPONMKJMQOLJGDEIKIKUbghgfc]VNJJLNMJD?>>@A=:;@B@:2--.-+**)()**))(((&%#""    +  "$$$$&),*%'**)*,-+/1.045457768?BEGCCEFIJIFDFIIHKNQTY\]]^_behmtz{{{vojgfdglsvqf]\]^_]YUUWWX\bdhljd]UOQVXWUTTW\_^ZXXZXTSTVZ_^ZXRJC?<;<?ACC?:61*" + "&)/59;>BDFJKJHF>88:>?>?CFGHIIIILPUVY^bdcabbaa`_bhloqqnkf^YXVVVUX\_aaehgfeb^ZWY[ZZZ[^cec``a^ZURUVTSQPPNJKPPNKHEFJLKOZdihgeaZSMKLMONHB?<<?>967=A=70-00-++,,,***)**(&%$#$$!   +     + + +  + !  ###%(+/.()--,--.++-+,00/1455:ABCDA@BCEGFBBDFHJNRUZ^`a`cgiknrwzyxwsjdbcdjqvvnd]]]^^\XUWXY]cfgjnmhaZSRSRQPQTYajkgcbdc]XYZ\`a_]WOGA?=;:<@B?<:6.%  +! !&).6:;?BDGKLKJH@98;>?@@ADFHHGGINSXZ\`dfddeec`^`flptwvrnjea^[ZZY[_abcegfc`\VSPRVWXWXZ^bbaadb]XTVXWWUQONKJMQRNGFHKLMT_ehhfd`ZRMMNNOOJB>;;><5237;;60/11.---.//-+,,*)'&%%%%!  + + +   + + +  +  +   !#&)+..*+21-../,)+))+)*-036<@DEEDBBCEFECCDGLQVY]`accdkrsrtxzywtoic^^aemtwume_]^_^ZXXZZZ`fgfhlmib[TQOLKLMOS]imkihigb_`a`bc`^[ULFC@<99=?>>;7/("   ÿÿ "(+/59<?AAEIKJJHA:7:=?@@@BFHHHIKQW\`abefeefd`^^agnuyywtrnkhc][\]`cefeggd_YTPPOQSTVVVWY\^^aca\XVWYZYVRONMLMPTPHEINMOZdfffdb^XPMQSQONJB<:<?<61038:83221/....020.0/,*(&%&&$"    +  +   #$&*--,-230.-/-*))((%&*-05:@EHHHGFGIJJIHGLSX\_dhghknw~~{z}}yvpf`][[_emrsqkfb__^\XVX[[[`gheehkibZSNKIIJJKOV]__`bcbbeghhgea_^ZSLGB?<;===?>7.)%#! + +ÿÿ !"$*.169;>@@BEIIHGB<88;<=?@BGIJLMOUY^dddddccca^^adiqy}{vtspole_\]_cfihgjjd]UONOQRRQRRSUUUY[]_]XUUWXYXURQPONLNRQJEGNOTagggfc`\VPOTXTOKF@97;=;83027:843530./11354320.,)&%%%$"      + +  +  "!#'+**,/220.//,+,+*''*,/39?DHIIIHHLNONKLRY]`dkrrsy}ƒˆŠ…‚xrlb\ZYY]cimmkifca^[XUSVZ]_bghgfhmle\TNLKKJJMSWWWUUWY\`fkmmkfb``\WRLFB@>>>>?>7.)'&$  + +!"#&*/3689;>>@DHIJHE@;9:9:>@CGJLORUY[`ddaaa___``adgls{}wtspome_[\`dgigfjjf_VPNOPQOMMNORRPSUWXYWUTUWWUSQQQNLKMOOLEEMSZeiihda^ZTQSVXUOID>87:=;852379854541/135777630.-)&%#""!     +   +    + ! !"!!$(')++.0////.-..-,*+-049=AGGGGDDKPQOLNU^cfmsxz|€ƒˆ’Ž‡„ulga][YY\`dggggfc_[WTQQTX`ehjihhkpqj`XSRRPONT[\[[XVY[_bcgjljfb__\XSOKGD@==?@>8/)((%  + + + !#$&*/2479:;;?DHIJJHD>;978=@CHIKPTX[]ab_]\]\\]`bdghmt|€~yvsomjd_Z[aeggeeijgbXRPOQPMJJJLPPNMNQSUVVUTTUTROONKKLNMLIEGPYbjkjid`]XRRTVVTOIE@;9<?=:744688753311357:;;951/,'%$"!      + +    + +  "#" ""!!$%(+),.-.0/---/0.*,/269=ADBBDBBJRSQQSXahmtwx{}€‚ˆ‘•’Šƒ}rgc`_^]\^acffeffb\VTQPQTYcjmnkihkqsph`\[\YVW\`_^_]_cgigccdffdb_^[VRONMJDAABBA<4-*)# ÿÿ "%(+/2358:9:>CFHIJJF?:966;>BGHIOTW[^a`\ZXYZ\^abeggmv~{vpliea_\]dghgddijhc[TQQQNLIGGHLONKKMORSRTSQTUROMKJKLNNJHHMWainmljeb]WTTUWVURLHC>=??><843577643202578:==830.*&$##        +  +  !$" !%'***-../...-/1.+/236:>CB@BDBBKTUUWY\ckquvvy|~‚ˆ“‘ˆxoe_``a``bdfgfded`YSQQTUX_iprqnjikprrniffhebbfea``agnqpkfdbbbbba^ZVROPQOKJJIHFA91,'!  "%)+-023567:>BEGIKKG@:855:>@EHJNRW[]^\ZWVWZ]abbeghpx‚xpjgda_`_ahigfdcfhhe^WTRLIHECDEGKOMLLLOOORTSUUSQOJFHKMNKJNU]flnnliea\WVWXYYWSOLGB@@@@=8423433320/2567;<83/-+)'%%"   +  +   +  "%$ "('(*),//-./.-/10/4548=CEBAEFCCLRUXZ]`emrssux{~†Š†|rjb^_``acfhihgeec`YSRV\^ckpvwvsonprssqqrtutrpojeccfnuvrmjhc`^_`ba^ZURRRRPPPNKJF<3,&! +! "$%'+./12358<@CGKLKID>:65:>@DHLNQV[[ZXVUUX\_bb`bflt{€€{qhdca_\]^_efdddddeffaYUPGDC?=?BDGMPPNMNLLQUWVTQQOJEFJKKKMSZbjnnmiec^YVWYZZYWSOLIEBABD@941100010..1457:940-*)('&$   + + +   +   #"$$!$)'&((+/.,.0001344788<CHHB@EGCCHMQX\`dglrppuy|~€ƒ‡ŠŒ‡ykd`]]_bdfiihhiigeb^XW^ejqvx|}{{xxzzyxwx}€‚…†voighlqwyvsplf`^^_cec^YVUTSRQQOLKG>4,&" +   #" !#$%),/14557:=@FJJIIGB?;9=>?CGKLOSXZXWWWX\^^^_^_fow|}{ulecb`]XXZ[^``adfefggc\UMFB?;9:=@CIMPOONJJOUWVTRQNLIHKLLNRV]gnppngc`\XVWZZZXVRMIFDABDD@:41/--,,,+,.246861-*(('&%" +   +  +  " !" "'(')),.-,.2345767:<<@GLJCAEGCBDGLV_cghkoqrw{}€ƒˆ‡wga`^_cfjkjhhknonkhd^^enu}€‚‚‚ƒ‚ƒ‚€…ˆ‰–Žunlnoqvzzxupida_aehhb\ZYVTSRPNLKF?7/*%   !#$! "$%)-12588:==@FHGDEFDDCBA?@BEIKNPSXYYZ\\]\[\_`ahrxyxxtkfec_ZUVYYZ\\]bghijje]UMFB>:768;@FKMOQMIJOTVWXUQOOLJLNPTWY`jqqpmfa]ZXWYZZWVVSMIFDBCEB=84/-++)(((*.23454/+(('&'%     +   !   $'(+,-.-./368;:9;=?BEJNMHEGGDCBCIT`eghintwy{|~€…Œ‘†wibcdfjlonhinsvyxtnjfhnvˆŠˆˆ‰ŠŠˆ‰ˆˆ‹‹‰ŠŒ‹‹“›–ˆ}tqrpquwwxvpkgb_bgkkga^\ZVSRPMMKE?:5/)%  "#!!#&).11369>AABFGD@ADFHIIFCDCEHKNPRW[[\__][[]abciqvuuwuokid]VRUXXY[[[`fiklle]VPJD?94357<CIKNPLHKQVWXXVSPPLILPUYZ]dkqqmid_ZXYYZ[ZUSUSNJIHHHEA;73.+**(&''*.212441-*(&&&#  +  + +    ! "&%(,.../037:>=>BCCGJKNPKIJHGFBBHS`fgikouxxxy{‡”’‰|oghlprqplinw~ƒƒ|urquy€Š‘“’’”•“‹ŒŽ“•“’‘•™”Œƒzurpopqtwvollgbcimlifb`\XUSPNNKF@;72-(!   +   " !$'+/1026<ACCDEFD@?CGLNNLJJHGILQTUY]^^bb__`abdfjquuuxxtqlcZRORTUWZ[[_eijlmg_YSLE?:54668>FKNNJFIPTUVUSSQOJHLRW[]bhlpqmgd_YVXYZZYURSRNKKJJJD>:73/+)(''('),.,.342-*''&#     + + + +  !" !! "$"#(*,-/026;?ACHHGLONPQMLMKIGCAGR`gjnpruwuvy}‚Š’˜—†{qquwwrljpzˆŒ‡~{}‚†Œ•š›ž›–Ž‹Ž“œ ž›š˜———“Œ†~vpkhhlswuqrtohgkmljhgd_ZWTRPPNH@:73/*$ + + + + !" !$&).3545:?CDEFFFFA>BGLPSSRROMNPTWX[_`adddffffilnuxyz|}ztj_XQORRSUXZ\`fjikmhb]WPGA<88867<CILLGDFLSSQNKMPNIJOSW]cillmomgd_XUWZZXVSQRQMKLIFFA;973/,,*((('*,*'(-11,(''%" !   + +  +  + +   + "  !# ! "# "$&)+.14:?ADKLLPTUTRQQQMJHCBHS`impsttwwwz„Œ“šš•Ž…~|~|xrmq~‰”—˜—‡„‡“™Ÿ£¥©¨¢š’‹Š–¢««¨¥¡™—”‡ulebdjpuvuwxtmijkjjjjhd^[YURPOIA:62/-(" + +  + +! #""%(),38:9:=@CEGHGGFB@CGJOTWXXVUWWXZZ\^`_`diklkkorsxz|€€}vj^XRQSRSSTX\bjljmnje`\UJC?<><77=BEIJGEDGTWLDBGLMKLQTY`gnokkkige_ZVVZZWTRQQPONMHDB>:983.,.,++*)++(%&)-0-('&%%! !  +   + +   $#!#$#!!  ! "&,149>?CJLNRXZYVUUSPNLFDIS_kqsttuyzyz}ƒ‹’–—•Š†„„€zxxŽ™ž¡¢¡–Ž“˜ž¤©¬¯±®£–Œˆ‹—¥³·²®©¢œ™•Ž†}tkdbdhmrxxutsnjkjgghhhgb_]YSOMH@:41//,'! + +  + +!""#%%&(+/37;==>@BCDGHGGFDFHIKOSVY[[[\\]_``_^[\bjopopsttvwz€‚~xncYSQQRSPQW\dmonpokgc_YPHB@@>9;?ABDFFFDBP[K>?DHKMNQX^ciookhfeffa\XXZZWTSRQQQPNJD@=;9850..-,--+++'%'*,/.)&&&&#"#  + +  + + +  + !" #$#"" !*049=?CFGIOVZZYZZWTSPKGJQ\jsvvuwz|zy{‚‹‘“•”ŽŠŠ‹Š†ƒ…‡Ž›¥¨©¨¥Ÿ™–˜Ÿ¤«²¶·µ³¯¡“Šˆ’š©¹½¸³®¦ ˜†}vojgghkqvvrqqonmhdcefgheb`]VQNJC<6200/*" + + + !#$&())(,38;?@ABEGFDEGGGFEHKMPSTVX[]]^^`ccc`\Z[ahnrqqrsrqsw}~{th\TQQSSPRX^fnrssqoieb\TLFB@??ACCAAAACDGlƒ^@BEGKPRU]cfjnnlgddefd]Z[[ZXTSRQPPPMID?=<:863/./.---,)&%(+..,'$&)(%" + + + + + +  + +   "!  '-27<?ABABIPVYZ]^[WURNIKQZhrvwy{}~{z}ƒ‹‘“••“”’‘”—š£«¬ª¨¦¡žŸ¤«°¹ÀÂÁº²ª‘Š‰Ž• ±¿Â½·°©¥¡›‘ˆ‚|upnkimqstrqqqqohdcehijjifb]VQNHA;5100*"  + +  !#%),,++-39>ABBCEHJHFFFGGEGKPQRTTVZ^_`a`abba][]bgmqpnopppsw{€‚~ynaXUTUTSU[bjorvusrlgd]SKHEBBCDEEBA?=AD\§Õ—SFHIMSX]cgjmlmlhedcdb^]^[XURPOONLLLHC@?=;;94000..//,)&%(+-.-'$'+(%  +  + + + + + + + !! !!%)/5:=>?=?EKRWZ^^\ZVTPKLS^iqtw|‚€~„‰Ž‘”–””˜›žž¢¥¥ª®®ª§¨¦¤¨¯¸½ÄÊËÉ¿³§™Š‹˜¦¸ÃÅ»³­¨£œ”Œ‡vrromptsrsrqrtqlhfhjklmpojd]UQKE?70./+" +  + +  !#&*-.-,.27<??@BDFIIHFDFHGHLPPOQRTY^acdaaccb^]`deiljklnoqty}€„„|sg]YXWVUW[bimptsqqnic[QKIGEDDCDDBA>;@If¯êÅuQNNPU[bginplmlifa``^^_]YTPOMLNOIHLHBBB?>><74310121-*'%'+,./+*++(#  +  + + + + + + +  "" "#%$#',15:=>=AEIPUZ\\[[YWRLLT`kswx}„‡…„‚ƒ‡‰Œ’•š £§ªª­±°°±°«¨©©ª°¸¿ÃÇÍÎÌô¤–Ž’œ«»ÅÇÄ¿·­¥Ÿš–ˆ~sopoosurpqpoqttpmjiikklrvqkd[UME?70..*# + + + + + +!%),-,+-169:<>ACEEFGFEGHIJMPPOQSTX^acecdedb^^`bbdffgijmprw~„†ƒ~wpf_\\YWWX^flprqoqpkd]RKIGC@ABBA@@?=BM\y¢¨~\UTUY_eilqqmlkhd\Z[\^^ZWQNMLKOQIGJGCCCAAA?:8534540,)'%'*-/001/+'! +    + + + +  !" !$')'#"$%',28<>@CFHMSX[[ZYWWTNMS_ktyy{‚‡…„‚€ƒ‡ˆˆŠŽ•¦¬²·¶·»¸µµ²®«ª«®µ»½ÀÇÌÏÏƶ£”‘“—¡°¿ÈÊÈÁ·©ž˜—–‡{nkllnqqommkjkpsrnkhfgghqvtog_XND>70.-(# +  "&(+*).489:<=?BDDDGGGHIJLNONOQTUW]acffecb`^^_____`bdejops{€‚……ƒ~woeaa^YVV\enqqrqqpkf_SJFEC@AB@>>>?AGMQT_kg][]^bgiloqpomif_XVVY]ZWTPNNNNPPLIIGEFDBCCA=:74452,('&&'*.0013/*' + + ÿÿ + + + + + +  !!#&)(%$%$%*17:=@BEGKPTVVWVUUSONT_kswwx~ƒƒ€‡Œ‹Š‹–Ÿª²¹ÀÁÀÀ½¼¼¸³¯¬­±·¹·»ÆÎÑÑ˼¦–‘”™Ÿ©¹ÇÎÍÉÁ³¢˜•––‘ˆ{okllmmjiihffgjprnjhedbdlstpjd\RG?80-*&#    !%&((*179:<>=>ACDEGHHIJLMLLLMOQSW]aehgda`][[[Z[ZY[]`cjoorw|€ƒ†ˆƒ{sjeeb[WY_gprstsqnje`UKGGGEDDA=<<@ELPPNNSZ^adgknnoonlonhd]VTTXZVTQMLNOPQPMKJIHHGFFEB?;6210-)()()+,-.000.+& + +ÿÿ + +  +  #%''&&&'*057:>@CEILPQQRSTUTQPVbnsuvw{€€}}ƒ‘‘”š£®µºÁÃÃÃÂÄÆÀ¹´¯¯±¶¶³ºÈÕØÖÏÀ«›”–Ÿ©´ÃÏÒÎÈ¿° ––—–‘ŠwqpomidbcdeffhmqojgfdaagnssojcYMC8/+(%%!  #%%&(-3689<>>>@BDEGHJKKLLKJIKMORX]`dggdb`\XWVUVWXZ]adjnptvy~ƒ‡‰…|tmihe_]`ejqtuvtpnjf`WOKLMLJIE@=>BIPSQOPU_fhgjqrponkjmkhc[VTSVWROMIILOOONLJIKJIHIIFA<852/-,*+,++--,,.11.)# + + +   + + !&'&'((*.248<>ADHJKMOPPRVWUUZfqsuwx{}}yy„“•——š ª³µ·¼¿ÁÅÈËÎȾ·±¯±´·¹ÀÐÝÞÚÑÁ¯ ˜˜¢°½ÊÒÒÍǾ¯ ™š™”‘Œ‡€yvqle_\^adfginqoifdbbbbhqtrng_UJ;0,'%$! + !"##'-1259;====>@CEGILLKKJIHJLNQW\_cfedbb_ZVSRSX[\`cgkmqwxy…ˆˆ…~vomkgddgkouxxwronkg`XQOPRRQNKEBBDIPRPQTZdnpllqtspmijhff_WVUTTSNKKIIJLKJJIHHJKHHJHC>84210/.,-/-,---+-23-'! +  + +  + + +  $&%'()+-.159=@DHIIKNNOQUXXY_iqsuwxzyxtuƒŽ’–š›ž¤¯µ²±·¾ÂÉÏÓÕÏĺ±¯³·½ÃËØááÛѲ¥œš£³ÂÌÑÏÊù­¢žš“‹†|vnd\WZ^`adhmpoida`bc`bkpomhd_SB5.($"!!"" + + +   %+/15:;;<===@BDEGIIIJJIHHJNPTZ_dgfcacb]XTRSX\_cgjmotzz{€…‡‡„~umnmjhikotyzyupnmke_XRQRTUVTPKHFEHMOQSW^htztqsuvskgga__XSTWWTNJKKJJJHFEHJJIIJIGGC?<841110/.011/...,-11,&  +    #%$&(*,+*,17<AEIIHJLLNPSXY[ajqtuvwxvtrtˆŒ“™Ÿ¤®³¯­³½ÆÍÓØÙÓɾ³°¶½ÄÊÐØßßÙÐÄ·­¥£ª¸ÄËÍÊŽ´ª£ ž˜‘Š†€{rg^XY^_\^cglnjdaadea`fjjihge]N?3*$"!!"#! +  +&+/368::;;=@BDEEEGGFGIJIHIMQTY`ehgbadc_[XUTW\`eimpqtxyz~‚„ƒ€zpikliilpsvxxwspnmke^XTRTVWVUSQPOLKNQTUX_gt~zvwuutkgd\YVQQRUWTNJKKKKIGFEILLKIIHEC@<985221/0243330/-+,/.*%  + +  +  + +ÿÿ + "$#$'+-)(*-4;AFIHGJKMNORWZ\bjsvuuuvurqs{„Œ•œž ¨¯¯®±»ÇÍÒÙÚÔËÀµ²¸ÂÉÌÏÓØØÒËļµ²±¶¾ÆÊÉÅÀ·¬¥¡ž™”‹‹ŒŒˆƒ~vme__cb^]`bfihdbdghecgigdccee[K:-%#! !!!  %*/2479;;;<@BEGFEHIIHHIIJKNQRW^cfebceda^ZWUW]bgknqqqsuwz~}{ulfikilrvxyyxwtrrnid\WVUVYXUTTTUXVTTWYZ[_bisxxxvurlhc[VPNQSUWUNJIILKIFFIKKKKJHEB@?;86644322443232/,*+-.+%   +  + + "##&,-)(++09AFHGGJKMNPRW\`eltxwututpnpu{€‡‘—›¤¬¯®°¸ÂÆÌØÛÕÎøµ¹ÁÈÊÍÐÐÏÉÃÃÀ½¼½¾ÄÉÊÆÀ¸­£žš”Žˆ†‡‰‹‰†‚zrkgfffcaabcefeegjljhije_\\aheVB1'#! "#! +#',.05:<???ACEGGFHKLKJHIJLOPPTY]`cdffeda\WVY`ekmorqoqsvx{{zytlhlpoqw{{|{yyvusmgaZTUVX[[XVUVX\\[]`a`_`ackruwwvslga[TMOSVXXTMHEGKJGEGKMKHIJIEBA?;767754301311341-*+-0.'!! + + ÿÿÿÿ + + !%%&-.*)**/8@EGGIJIJORUY`dgnvywvssrmlnrv|†•™ž£©««¬³»½ÅÕÝÙÑÅ»¸¹¿ÅÈÌÍÊÈÿÂÂÀÀÁÂÇËɹ®¤œ˜—•ˆ‚†‰‹Š†~tmihhhigecdfgjlmorronke\WV\fh_O>-$"""! !  + !%(*-27<ABABBBEFFHJKLJHIKLOQRTWY\behhgfb]YY]cinopsqpquwxz{|}yrptxxxz}||yvvtsqjd_XQQTWZ[ZYYXWY[]adgfdcfkmorsrttnf]YRMRVXXVPLGCFJIFGIMPLGHKJGCB?;867863/+-112430-*,130*$!  +  +ÿÿÿÿÿÿÿÿ + !&&&-0,**)-6>DGHJJGGLSX\bfipwyxwtqokmsusv”™Ÿ¤§¨¦§¬²µ¾ÐÛÙÐżº»¿ÃÇÊÊÆÃÀ¿ÁÁ¿ÀÃÆËÌƽ³§Ÿ™“ŽŒ‡€}€…ˆ‹ƒyqlklmmkhffhimooswz{wof[TSV_ec[L8*'%#!! + "%(,159>?<=><>BEFFGIHGIKMORTUWX[aehiigb^[[^djmnpsrpquxz|~€€{y|~|~~|ytrqnmjd_[VQPQTXZYYYWSSUY^aehhimqqpqomptpeZVQOUWVTQLJGEFHIIJKNPLIIIIFC?;:965542-*,.0120-*)-352.&"!   + + +ÿþÿþÿÿ + !'('.3/+*(*2;BEFIJGDIRX]djmsz|{xsolls{zsr{‰’˜ §©¨¥¤¦©®¸ÊÕÕÎƾº»¿ÂÅÇÇÄÀÀ¿¿½¼ÀÆËÍËÁ¹°¦•‰ˆ‰‡ƒ€€ƒˆ“Š‚{vuusrpnkhfegiinu}}sgZSQPV^a_UD4-($"! +  #&+045896798:=ACDEFFFHJLOQSTWY[aehikid_\[_eiklnrrppsvy}€€‚~~~}}~}{vpnlgdb^YWVSQPQVXWXXUQNPV[]aejnpqrrqnlopk`XTQRWYUPMIGEHHGKNMLNMLMKHECA=98976420,*,-/00/*&',1310)$"#   ÿÿÿýÿþÿÿÿÿÿÿÿÿÿÿÿÿ +  (**052.,((-6>@BHKHEIQX^elpv~~{sljox€~uu€”™¢«¬¨¤¡ŸŸ£¯ÀÎÒÏÈÀº¹¼ÁÆÇÆþ¾¾»¹ºÁÉÍÌƾ¸±¥™ˆ„„†‡†…„„‰“š™”Žˆƒ}yvvtoia^_`bfny€}reYSPLMT[^ZM>4+&%!  +  !!"&)-124434679;=@CDEFEEGJNPQQUXZ_ehknmhb^`dijkloqrqopruy|}~€|zzyy{{zumjga]\ZWUTRPOPUVUWWUQLNW[\`fmssrtqnmmnkd\VTTTVVQKGEDCHIHMRQNNMMOMHCA@?=;:9962/+)+-/01/*%$*00..*%#" +ÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿ "(+-3630-*(*29<?GLJIMS[bglqw~€~ujhoz‚€z}ˆ’™Ÿ§­«¥Ÿœ™•—£³ÂÍÎƽº·¸ÀÆÇƼ»»¸·¼ÄÊÌÇÀ¼¸±¤–‹ƒ€€‚‡‹ŽŽŒ‘›£¤¡›”Ž‡‚~zyxskb\[]`cit}{pdYROIEJSZ\TG;/(&#  !!"%'*.0001025668<@CEFCBCGLONNSWY]eimqpkebdhmnpqrsqpnnptvxy{}wtvvvxzzunjf_[XWUSQOOOPSSTWVSOLNW[\bipvvssnklkjgb[XWXUQKGD@@ABHJIMRRSRONNNJFA@@@@=:9511.--..01-'$$*//.,(%$  ÿÿÿÿÿþÿýÿÿÿÿÿÿ $))-2452.+*,16:>EKLNPV_filou{}~vien}„„…Œ“¥ª¬©£œ˜”ŽŽ—¥´Àľ¸¶µ·¾ÅÇÅÀ»»º¸·¾ÇÌʽºµ­¢–‹ƒ€ƒ‹“™›šž¦¬®¬§Ÿ—Ž‡‚}zvrld^^adjt}{qf[TOFACHQYWNC4)#    "%%')**,.--/1126;?AB??ADJMMMQUX\cimppmheehosvwuurpnnqtuwy|{ursttwyzvnje_ZVUTQPQRRQRSTVSOMLOVY\cjptsqojjlifc^ZYZYRIA>==>BGKKKMOQUUSOMMKGCA??B@<831110/--..+&$%*/.-*('$  +ÿÿÿÿÿÿÿþÿýÿýÿþÿÿÿÿ $(*.1475/,-/25:>BHLPRVahikotz}~vhdo~†ˆ‰ŠŽ•ž¦ª«¨¢œ—’ŒŠ‘›¦±¶´±³´·½ÃÅý»¼»¸¹ÀÉÎÊÀ»·¯§ž•Œ‡…„Š“›£§§ª®²´²®¨ž•Œ…‚€}{{wmecfjpv||tjaZQF@@CJTWTK:) + +  "%#"###'+*)*,./049==<<=BHKLLNSWZ`gkoolhfejrvyywusqnnqruy{ytqpqsuxyunie`\WVUSSTUTTUUUVQNLLNTY^eilmllkgikhd^WVWZVKB;78;@EKOOPPOQVWTOMLJHEC@AA?;74320.----,)'&',/-,)''" +ÿþÿþÿÿÿÿÿýÿüÿÿÿþÿýÿÿ #'+015983///259>BFKQTZcihinv{~€}sgdp‡‹Ž’—ž¤¨©§ š—“ŽŒ—ž¥ªªª®²¶¼Á¼¶¶º¹¹½ÅÍÐÊÁ»µ¬¢˜‘Š‰Šš¤¬¯®°³¶¶²­¨¢š‘ˆƒ~umlosvx|}ulhaUJDCDHPUWQA-  + + + !"&'()*--,.379:<<@EFGIKPUY]djmmjfedkvyyyxuromprsx|~‚€wtqooqtuwvqkgc`][YWTRQRRUVVUQONMPW^eijkjiigfhheaYTTUWRF?956<BIOSTTUTTXWRONKJIFDCC?;844441--..-+('),./-+(&$  ÿÿÿþÿÿÿÿÿþÿþÿÿÿÿÿþÿþÿþÿþÿÿ +"',114996200259>BGLRX_gljjnuz}}xndco€ˆŒ‘•™¡¤¦¥–•“‘“˜œŸ¡ŸŸ¤¬´º¾¼´­¯´µ¹ÀÉÑÒË»´«Ÿ“ŽŽ‹Œ“§°³±±´¶³¬¤ ™‘‰‚€~‚ztvyzzy{{tlie\QLJGGKPTRF4& ""! + + + !$&&(+,+),1469<<>AABEIMRW[`fkkgeddkvyyzyvqoquvw{„ytppppstvwuojhfc`\YTONNOSSSSOMMPU]fmnmjiihgghda]USSQSLB><99?DJQVWVXXXYVRPOLLJFDEB;8644653000/-*('*.0.,)'%! ! + ÿÿÿÿÿÿÿÿÿÿÿÿÿþÿýÿþÿÿÿþÿþÿÿ $)-0038;743247;?DIMSZ`flmmosvyxsjban~‡‰’˜›œŸ¢¢›“‘“••˜›š•”›¥°·¹µ­©ª¯²·¿ÊÒÒÌú³ª’““Ž”œ£¬±°°²³®¥œ˜˜”†€€„„€|}€}xwxtnkhbYTQLGFHMNH</% !##!  + + +  $&&(+,,+.24579:;>??CFINTWZaggcbdhmstwyxtpqx{{|~€‚€ztoppqtuuvvqmkjhc^ZUPNOPRQQPKJKQXbmrrnhefffhe`]WRROLLG@?@>>BEIOVYWXYYWTRQPOMIECC@;96469742210,(&'*.0.+*($  +  + ÿÿÿÿÿýÿýÿÿÿþÿþÿÿÿÿ &*-1128<:6656:=AGLNRY^bhkmoqsutoha`k{„ˆ“—˜—™œ ¢›“’•˜šŸŸ—Ž•ž©³µ¯ª§¥©®´½ÇÍÎËú±§›”–™–““—›ž¤©¬°²³¯§˜–’Š‡‡‰ŠŠ‹‰…„†ˆ‚zwxxvsojc^ZRIDCFJID9,%" !"! + + #&&)+,./13335789<>?BDFKQTX^cecadimoqsutqosz}~‚~~|wtpqppuvtuurnkjgb_]XRPNOQOOMJJLQYdnsrnhfdcdea]ZUSRMIHD?>AACFFHMTXWYYXWSQQQOKGCA?>=;647:745531,(&(),/.*+(!!   +  +ÿÿÿÿÿýÿþÿþÿýÿþÿþ +  &*-2338<;8888;@BGLPRU[aceiloprrnhaajxƒ‰•–”•˜œ¡¤Ÿ˜—˜› ¢¢Ÿ˜ŽŒ’œ§°±¬¨¤ £ª±»ÃÇÈÆÁ·¬¢š˜›œ˜–˜›œž£«²¶¸¸±¥œ—””—˜—˜™˜—”Ž’‹ƒ€zvqljeZOGCDHKKC3($"!!  !$&*,-0111124779;<?BCEJPRV\adcachknprrpopty|~„…~{ywvtroottqrsokgdc_]]ZURONOPOMLNPT]fmpolkjgdcb_[XVTOLJIE>=BDGIIKOSUVXXXWSQQQNIECA>==<8688535751+'')((,-+*% + + ÿÿÿÿÿÿÿýÿýÿþÿýÿýÿþÿþÿÿ +"&*-1347;:9999=ACEJPQQX`acfilmpqnjfgozƒ‰•–•™ ¥©¥Ÿ›š›ž¢¥¥£›‘’ž«²±«¥ Ÿ¥­·¾¿¿¿¼´¨žš›š›Ÿ¢¢žž¤®¹¿Ãý¯¤œ™› ££¤¦¦¤ œ™™š–‘‰†‚|wurpj]QKGGJLMI:-'#! + +"%*,-01/./13579:;=?AEJMOTZ]_^_chlmoqqnmpuy|~ƒ…ƒ€{xxxwsnorplnnid_\[ZYZZYWTQPRSPPTVZbgjliijjhfd`^[VVSKJKKG@?FIJLKLNRTUVVVVTSRPMHEDC?==<<;;942354/*'')('*,,*# +  ÿÿÿÿÿÿÿýÿþÿþÿÿÿþÿþÿþÿÿÿÿÿÿ + !!!$'+-0368;=<;:;?BDEHOQPU^``dhkkmnllknt{‡’–˜›¡¤©­ª¤ œœ¡¦©«§‘–¤°´±©¡›¢©±·¸···°¥›šž žŸ¦©§¥¥¬·ÁÊÏÏǸ«£ ¡¤¦¦¨­¯­©¤Ÿžžžœ”Œ†}xvtqi\RONLLKNL@2)#  +$')+-.-,.0256899;<?CEHJPWYYY[agklmnnkknsy|}€‚€|wvvxxrmmmjhhgd_[WUTUWXZZXUSTVTW\]biihgefhhffe_\[UTQJIKLIEDHLNNLLKNRTWWVURRRNLIDCCBA?>>>>921343-('')('(**)$ + + + +ÿÿÿúÿþÿýÿÿÿÿÿÿÿþÿýÿþÿþÿÿ + """"!#%(+/148;>@?==>@CDDEKPQT[__bhkllklmnrv{„Š‘—™š §­¯¬©¦¡¡¥©¬°«ž“‘«³´¯¦ šœ¢¨­±²°°°ª ˜™ ¢  ¦¬­­®±¹ÂÉÐÕÖÐÁ±§¤¥§¨©¬±³±­¨¤¡¡¢¥¤–ƒ{xuof]VSRPLJNNA1'!   $(**+*+../355579:=@ACFJRUUVX\aeghhhffjpuwyzxurposwvpklkgedcb_\WSPPQTXYWUSTXZ]bekpmhfdcefdcc^[[VROKKNNLKKKNQQOLJLPTXXVROPPNOKEBCDECABB@910320*&&'))'')*&$   + +  +ÿûÿöÿúÿÿÿþÿüÿþÿÿÿþÿþÿþÿÿ + +  !$&%#"#&*-146:>CEA?@AADFCBFMPSX]^bgkonmnmotz~‚„‰“šœ›¡ª±²°®¬©§©¬¯±¬¢™š¦±´³¬¤Ÿžœ£©®°®«©§¡™”™¡¤¤§®²²¶»ÁÈÌÎÐÓÖÒĵ¬«««­°´·¶³®¨¥¥¥§¨§¢•Šztkc]YURPJGKK@0$    &)*)(*,+,/002577:=?ABFMRQRTX\`b```adhmppqrnllklputokmlhfedda]VOKIJMRUTSTWZ^agjnrpljheeda_^]\ZVQMLOQQPPROOQSRLILQUYXSONOPQQLEA@CGFEEC@;410.+($#%'('&)+'"  + + + + #1,ÿÿÿýÿúÿøÿýÿÿÿÿÿÿÿÿ +  "%&%$$&+/258<@GIEBABDGHDACINRVZ]aelqqppnnu|ƒ‡†ˆ’œ¢£¥­´¶´´²¯¬¬¯°¯ª¤ ¤­³³±ª£ Ÿž¤«¯¯ª¦£Ÿ™“’˜¢§«±··ºÁÇÎÒÑÐÎÍÏÌÁµ±´·¸·¹½¾¹²©¤¤¦©««©£—Ž…|rh^XTQPNHDGG>0$    #()''*+))++-03558<?ABELQQQSUY^]ZYX\adgjjkljiloorutqopnjhijgb]VOIFEDGMPQV\^aeknnqpljigea^\[]ZUSQMNRRRRSUQNORQJGKQU[YRPPPPONKD=;@FIJHA><851-)(%#$%%$%),(!  + + + +=IFCW^Bÿóÿòÿüÿÿÿÿÿÿÿÿ +  #&&&&&).27;=BIIGEBDHJJFCDHMPSX]`dlrsqpnnt|„ˆ††—£©«®²´¶·¶²°¯¯®¬§¡Ÿ¦®±±­§£¢ Ÿ ¦ª®®¨¢ž™”‘‘—¢«²»¿¾ÀÆËÐÒÐÍÊÇÇÆ¿¸¸½ÃÆÄÁÁÀ»°¥ ¢¦¬¯­©¢›”Œ…|rf[SMLKIGDDD=0#   !%'&'**((*)+/1357;?BEGKQSRRTXZYWTTW[^`ehikklpvwxywutsqnlmnic_YSMHC?@GOSW]`djoqppoifdeb^][[\WPPPNQUTSQQRQMMONHFJPU\ZSRRRPKJJD<9=DILJB;99850+)&%&%#!$(,)!   #5BOqÈ›2¡zÿüÿüÿÿÿÿ  + "%%%''),07;=CKJHECFIJJHDCFLOQV]`dkqsrqonry‚……†‰žª®®¯±²µ´²²±®ª§¡œ› §­¯ª¤¤¥¤¤§ªª«¬§Ÿ˜“’’’– ¬·ÁÄÁÁÅÊÎÎËÈÅÁÃÇÄ¿¿ÃÇÉÆÂÀ½¹±§¢£©¯°¬§ ˜‘‰ƒ}sg\RLHFEFD@A<0" + +   #%')))'&''),.269;>BFHKOPQQSVWWVTTVY[^cgiloqu{~}}yvvusqppnhda]WQKE?@HSXXZ_fmrronlgcbb_\\YXXSOPOOSURPNMNONMMLHGLRX[XSQQQPJFEC=8;@FKKB944662,*(''&$#&)+*" +  +&2H"ÑÊ]5 ÿÿ   !!#$$&'(*-06;>CJJFDDHHHKJGEGLOPT[`cinrtsplnu}ƒ‡‰˜¦­«ª¬®¯¯¯¯®¬§¡œ˜–˜ž§¬ª¦§ª©©®­«­®§œ’”•– ¯¼ÃÄ¿¾ÃÉËËÈÄÀ¾ÂÈÊÆÄÅÆÄÀ½½¼¹µ¯¨¦¬²²­¥œ•Ž‰„wk`VOJFDFEBA<0"  + +  + + +   #$&**)(%$$&(*07;;=ADGKLKMORVWXZXXY[\`dhkmqsu{}}}yuuttrrqlgbba]UNHEFOX[XX_fmrqnmkfcdc]XWTRPMLNOQTROKJKMNMLLIFGNVZYUQPMLLJE@=<:9=CHHB:2/241-+*'''%&&&))" +   ’ÀˆÛ E5   + +  !"#$$%&&'*.28=@DHHDCFHGGIIIIIKMMQY_cgjotspkjov|†‰‹”¡¨¥¤¦¨©©««©¦¡œš–‘’—Ÿ§ªª¬®¬­±¯­±±¦˜Œˆ–™š£´ÁÆÅ¿¾ÄÉÈÅÁ½ºº½ÃÈÇÃÁÁ¿¼¹¼¿¼¹²©¦¬³µ¯£—Žˆync\UOJGFHHD=0#  +  + + +   ##$()('%##$&(.68:=>@CFGFIMPUWZ\\[ZZZ^cfjmrstxz{|xtsttrqnifcfgb\VQOPV[ZXZ`ekpomljgeec[TQNLKIJMPTSNKHHJKKLMLGDHQVZZTNLHFHIF=7679<@DD@;4.-0/+*)%&'&%$#&(" + +  + + + + -•dø›ë¡g/ ÿÿ +  "!#$&&&),048?ADGGCCGHFFHFHKJHIJNW^cefmtsnkjkqy†ˆ‹’œ¢ŸœŸ¢£§¨¦¡›š˜“Ž‘˜¢©­¯¯®°±°®³µ§•ˆ„‹–š§ºÆËÉÃÂÅÆÀ¹µ³³´¶»À¾ºº½¿¾»¾ÂÀ¹°¦¢©³·±£•Ž‰vmd^WQNLJKLH?2$  +   + !!!%%$$$#"$&(-369;<<>ADFHLNRUX[\[ZYY[`dhkprswyz{wsrrrolhfeejjc__^]\^^[[_bejlklkiihd_ZTPLLLJLNPTQLIHHIHILONHFMUXZ\UKGCABCB<5/08<>@>;94.,,+)(&%'((('%&%!    +  !e²®––\( + + #%%')-359?ACFGDDHIFFGFIMJFEGNU[addkssnlkjnw€…‰Œ˜š–“•™œŸ¤£ž›š˜‘ŠŠ“¦¬®®®®°°´ÃƯ˜‰ƒ‹•™Ÿ¬¾ËÏËÆÄÄ¿¶¬¨«®®¯³¶²®´¼ÀÀ½ÀÄÁ¸¬£ž£®³® “‹Š‹‡|qic]VQQRQRRMB4&   ""!"###%(*-148<=<=BFGILNQVZ[[ZXXY[`dgimoqvxyyupnlljfdgefjicaegffhe`bfggiihijjljd]YVRNOONOPPROLIHJIIILONIHOWXY[UKE?<;<=:3--29<:974/++*))&$%()+-,'#  + + + + +  6;/3- +    "$$$',359>@CEFEFIHFFGFJONIFGNSX_dflqqppnkls{‡‹Ž•™–Œ‘“–››š›œ˜ˆ†ˆŽš¤ª­­«¬±»ÌàÜ»ŸŽ‡Œ”˜¡°ÂÏÑËÆÄÀ¸­£ ¤©ªª««§¦°»ÀÁÀÁÅù¬£Ÿ£©ª£˜Žˆ…†ƒynf`ZTPQSTWYSF7) !""#$$#$()+/39>@??CGGGJMRY^]ZWUVWZ^begikmsvutqlgefebcfffhgffikikmiejmjggfeghkmid_YURPOPOQRQPOOJJMNNMKJJGHOTVVWRKD=879;610//366642-()+,)$&*+*+,*$    % +  + +  !"###"%,15;>AEGEEGHFDEEFIMOMIJPTW^dinpprtrporx}ƒˆ—š•Œ‡ˆŠŒ“‘”˜—ˆ„„œ§ª¬­««´ÈÜåÙ¿§–•™¢´ÇÒÒËÆü°¦ Ÿ£¥¢  Ÿ¡ª¸ÁÄÃÂÅƾ±§¦©ª£™‘‹‡‚~|tja\VOKMOQVXTH:, !"!"$$!!%'*/49>A@@DHIFFJS[^[WSSUTVZ^cffhjotsrqkdaccaadeddehkmlikliglmgddccghjkfb_ZWUROOPSUSPOQMMQSSOHCCFJNQSTQLGC<669842210.03222-)())'(+-,***%  +   + + +   +   + + + +   #&((%$$$&+.3=ACHHEFHFBBCEFGJLLKMRUW[ahmnpsuutruzƒ‰’›œ”‰„ƒ„†Š‹ˆ‡Š‘•‘‡…¡««¬®¬ª°¿ÊËź«œ“”˜›¤¶ËÕÓÌÅ¿¶©££ œ˜•—š¨¹ÂÅÅÂÃÅ·­«­«£š’Š„|tmdZTPJFGHKPSQH=/    ""  #'.49=@?BGKKHEJSY[XTQRUTSW[adceglrssrldaba``cc``cimmkjkljhjica`^bhhghc_]ZYZXSRTUUSQQRQPRTSMC=@GLMOQQLFCA;45755532/,./03/,+()*)**(),*%      +      #(,.-(&&%'*+0;ACFHFGIE@@BEEDGJKLMRVVY]bfinsvvvuv}‚‡Œ”ž”ˆ}ƒ…„€†Ž“”’Œ‰‘¢­««­«¥¦¬±µ·´©˜™œ£µËÖÓËø­¤¢¤¤Ÿš•‘–œ«½ÆÇÆÃÁÂÁ¹¯ª©§¢žš—“ŠtjaWOKGDBADJMKF>1#  %+07=??CHKJHHMSVYXSPPRQNQV]a_`dhnqrqlgca_]_````dknlkjklkihe`][Z_hgdb^ZYWWZZWWXWVTTSTTRPONF=:>FJKMPNID@>:42344342-,+,10.-**,*++'%(,'    + +  +  $)./,*('&()*/7<@DGGGGEBABDCCGJLMNRUVY\^`ekqvwyww{…Š“ •‰€{|€€~{|‚‹‘”•Œ“¢«¬«ª§¡Ÿ¤ª¯´±¨Ÿœžž¢±ÆÔÓ̲¤žŸ¢£ ™‘Šˆ‹‘š¬ÁÌÌÉÆÂÂÁ¹¯¦¢ Ÿ ¡Ÿ˜‚wkbYQIFDA>AFECA<2&  +   +!$',2:?@CHJIIMQRUYWRNMNLHJPVZYY]afkonliea[X[]_acgkmkjhijjieba^ZZ_dd`\WUUSTVVUUUUVVVTTROKIHA99=CFHMOMID@=:5102100/,*(*-00*)0+)/* $*'     + + +  +   + + #'+,+,*(()*+06;?BFFDEDCBBBBDHLOQPRUVX\]^ckpuwxxwx{€†œ¡˜Œƒ|{}|zyyˆ”–“•¡©­®«¦ Ÿ¦­²´°¨¢    ¤¯¿ÍÑÌò¢›šŸ›•Žˆ„†Œ˜­ÃÐÑÍÈÆÅÁ»±¨¡žŸ¡Ÿ˜ƒynf^TKGFB@CD@=<:3(   !#&+06=ADIKKLOQRTVUQMLMJGHKORTTWZ_fknnkgb\WY^bdfffgffehjkjeaba]]_`_\XTTTQPQOLLMMRSSRPMIEBC=68<@BEKNLIC?>;61/001.+)))%&00)$*65&"'      + + + + +  + + +  $)++,*((*+.4:?@BDDCCBAAABCEKOSUSRSSW[\^cinrssuwxx|„Ž›¢œ‘†}|xvwz‰’—™—”–Ÿ§¯´±ª¤£©±¸¸²©£¢¢¡¡¦¯»ÆÌÊõ§—™›–‘Š…‚ƒ‹›±ÆÒÔÏËÉƽ¶¯¨£Ÿž—ŽƒyrkbWNKIFEFC=8540' + +  !$).39?CHKMNMMQSSTRNNOMIGILNQTVY^cinnlid^ZZafggc`__acillke`bb_^][ZZXWWWQNMIEFFEJKJJIHEA??:57:=?CILKF@==:6/,-12.)(*(!!(/. #CD"     + + + + + +  +  +  #())*''*,.28=@?@CBABAA@ADFGKQVWTQPPSWZ^cgimnmqvyy{‚›¢ —‹…‚xsv{‚Œ•šœ˜˜¦°¶µ°ª©®µ»»³¨ Ÿ   ¥®¶¿ÇÆÀ¸®¢™™›˜‘‰ƒ‚…¢¶ÈÒÔÐÍÊÇÅý·°©¡ž¡¡™ŽxrldZSONNNJC;3.,)# +    !$',27<@DHMOMMQQRUTPMMLIEFIKOTXZ^cgkkjgb]Z[cgec`][Z^djkigc`bc`\YWXZZZZYRNMGDFFCDCBCEDBA@=:789<>CILHA=;:95,(+01,&')% ",*"!S„S    + + + +  + + +  !%)))($%+-/27;==?A@>?BB@AFHHLQVWTQPOQTX^bdgjkjovxyzŠ™£¤”Ž‰ƒzsu|„Ž”—››™›Ÿ¤¬³¶´¯®²·»¹±¦œ™šž ¢©°¸ÁÂÀ¼´¨Ÿž›–††Œ™ª»ÇÎÑÑÎËÉÈÈĽ´«¤¡¥¥›€vokf^VRSVVNE<2*'$ + +  +   "&'+05:>AELQPOPOQTSNIIIGDDEHNRUX\adgiie_[Y\aa^\[[YY^digdcaacb^ZWTUXZ[[XQNMGCGIGEA?BEDA@@><;:;=>AHLD><9883*(*-/+$$&$ #%&@ÜET +  +  + +   + + + #'+,,*&&),-.148<>?><>CC?@FGIMRVVSQONORX_bcdfgipvwxz}†”¢¨£›—…}vv{„Ž’’•–—œ £¨­²²°°µ»¾¹¯¢—‘”›žŸ¤¬´»¿ÁÁ»°©¤¢Ÿš“ŒŽ—¥´ÀÇÊÎÐÎÊÈÈÉÇÀ·¯©§¨¦ŽwplicZUW[XOF=3)$!  + + + + + %().37;@DKPPNOOPPNIEFGFDCDGKNORW]adhkha[YZ\YUTVWVX_ceb___aa^ZWTQRUWY[WPOOHCFIIHDCEFEB????>==>>@EIB<;7650+)))+)$!!! "k°Ý’   +   +  $(,,-,'&'()*,05:=<;;?DB<>DFINSUSOMJJMRY`ccabdiquvxz|ƒ¡©¤š’ˆƒ~y{„Ž‘”™œž¡¦ª¬¬°¹ÀĽ®Ÿ‘‹˜œ¡ª²¸½ÃÆ»µ°ª¥Ÿ˜“˜¤³¾ÇÊÊÌÍÊÇÆÇÈž¸´²¯­©Ÿ‚{uqlf`\\\VKC=5*#!     + #'(-359>CHNLMPOMMKGDDFFEEFFHJKNRW\_ciic]XVVRMNRSSX^_^\[[\_]YUQOLNSUVZVOPQJFGGGGGGGGGD?>>?>>>?@ADGA;9630..,*(''$!Yr\     +     #'*,++*%##$&(+/37:::;?B@=>CGJNRRPLIGGKQX_bb``chmruwwyŒŸ§£™“‹†}ƒŽ‹Œ‘––—›Ÿ¢¥¨°»ÄÈÁ³¢‘Š–œ §¯µ¼ÄÊÊÇÆÁº³«¤¡§´¾ÆËÍÌËÈÆÆÅÄÇž»¹·³°«¡‘„|vpkeb`\SG@<5,&"  + + +       %).259=@EJKNQMJJHEDCCDEEEDDGIJJMSVZaca]VQOKHJNPTYZXWWXZ[\[WQLJHJORTXUPQOIHJIGFGJIIJF@=<====@DEDE@;96/+-1/,*'&%"#0<:2$   +   "&)*+)(&"  #'+/368;<<?BBA@CHMPQQPLIFEHNU\_bbacgjnsutuzˆ›¤£Ÿ™“Ž‹„~ˆ‘””•˜›œ ¥®»ÆÈÄ»©—‘˜ ¡¢§¯¹ÅÎÒÕÖÓÍÇ¿º¸»ÂÆÊÍÎÍÌÇÅÇÅÄÇÆÁ¾¾»µ°¬¢”Š‡ƒ}ysjdc_UF>;5,&"  + +    + + !(.036:?CFKOOJIHEBA??ADCA@BEGFCDIMQUYZXPJHGHJNRVWUUSSWZZYYWQJHFFJLOTTSRLHHJKJFGJJKMIA<:;;:;@DFCB?:73,(+0/-+&%$!    + +  +   $((''&%" #'+/368;=>AEECABHNQQPPMHECEJPW\bdbcfgjostuz…• £¢›“ˆ‚‚ˆ••””–˜˜™›œ ¥¯½ÆÈÆÀ°¡œœž¢¤¡Ÿ§´ÃÐØÝààßÛÖÑÍÌÍÍÎÎÌÌËÆÆÊÊËÌÉÅÂÂÁ»´®¤š”“ˆ„|pgdaXI?;5+$! + +    + $+-/16<>AHMLHFFC?=<;=@@>=?CDC@@CGJLPRPJDADJMQUVSOQQPSWWVVWRKGFEEGKOQSRJGGGJJHHJKMPMGA<:97:>ACA@=630+*-/-+($"! +   +  +   "%$"$%%$! "%'+/1578<@CEFB@BFJNONOMHDACHLQX^a`addekqtwz‚˜¡¢œ•’Ž‰‰Ž–ž››››œŸ¤ªµÂÊËËÌÀ¯ª©§§§¡›™Ÿ¬½Ì×ÝâèëëèáÚÖÓÑÏÌÊËÈÄÆÌÏÐÏÌÈÅÅÆû²©£ žš“ƒthc_YMB<5,%!  +  %&)-169=DJJGDDC?<;87::8:=@@?>=>ADGJIHFA=AJNRUTPKLNMPSTSSUQKIGECDHKLOOJFDEGHHIJLNQQNIB<87:=?@>=;1,-+.1/,(%# !  +      +   +  ""#!!"$%$$%%'*/1577=CEEDCAACEILMNLHCBDGJOUZ^_`cegkptwy†’Ÿ¥ ™”’””‘”œ¤§¦£ž›ŸŸ¢¨±¼ÉÐÒØãÙ¿µ³¯¬©¢™—›¤²ÂÍÕÜåîðïêâÛÕÒÏÌËÍÉÅÈÌÎÐÏÎËÆÄÆÅÀ¸¯«¨¤Ÿ˜’‡uhb^ZRF<4.("  +  + + +     #(,26:BGHGDDEA=;632348<=<;989=ADECCEA<?HLNPPNIJMNOQRQQRPKHGGDDFGGHIGDBCFGIJIJMPRRME?;;<>@?;96-'(,13.*&#!  + + + + +  "$#! "$&&&(((+/49:;?DFDEEB@BCFJLLIFCCFJLQW]abcehknrvvw|Œž¨¦¡œ˜˜™—–—¦««§¡Ÿ ¡§®·ÂÍÓ×áëßȼ¹µ°¬¤š˜œ ©´¿ÈÏØáåèçãÝ×ÕÔÑÐÑÌÈÉÌÏÑÐÍÌÇÃÃÃÁ»´²®¨£•ˆxib]ZUK>61,%  + + +   + +   "(069?BEFDEGEA<72/027;;985348?A??CFC=<CGIJJJIJNONOPOOPPKHGHHGFDCBCBA@CFEILKKMPQPLF?=?ABC?:72+&'-33-&#!   $! + + + + + +  + +!$#  %('(**+-29>>?ADEDFGD?@DGIJIFDDEILORXafhjlnqrvwutvz…–¤¨¨§£Ÿœž£©«¨¤£¥¥¦®¸ÀÉÎÑÕÚØÐŽ¹·³­¦ž ¢¥«´½ÆÍÓØÛÝßÞÙØÙ×ÕÓÎËÌÏÓÔÑÎÍÉÅÃÄü·µ±«§¢˜Šzkb^ZWQE:4.&    + + +  + + + +  + +    $+26:=@DEEGFD?94..0389865106>?=>BFC<:?DGIGHIJLMLLLNOMNLJKJJIFB@??@@>@DDIMMNQPNMLG@>ADDB>830,)*041)!  + + # + + + +  + + +  +  "" #''),+,/4;?@BDFGGGHE??DFFHHECCEHKNPT^gmrtwxxzztnmr}›¤ª­«¥¡£¥£ ¡¦¨¦¦ª®®¯·ÄÍÑÒÐÐÎÉÆü·¶³­§£¤¥¦¥§¬·ÃÎÔØÛÜßàÜØÙØÖÓÑÑÒÔÓÐÏÏÏÌÆÄÅü¸¹¶¯«¦šˆykc_\[VJ>60("  + +  + + +  +  !%)-158=BCCDDD@<71./047653128=<=?@B?<<>CHKIHKJJKJJJLMKKKKLJGFC=:;;>?>?CDHLMPRPLKKIC?BEC>93.-+*-12+"   + +  + +  + + + + + + + +  +   $$! "%&*-,,/4;>?CGIIKJHD?>BDDGHDAACEHKNRZeovy}~~|tjfkv…“ž§¯¯©¤¦©§¥¤¥¥¥©¯³µºÂÍÕÚÚÖÑÍÉÇž·¶µ®§¦§©ª¨¥¨²ÀÎ×ßääääÝÖÕÖÕÔÓÔÖÕÐËËÎÐÌÆÿ»¹¼¼·°¨™…vjb^\ZWNB;4+$   + + + +    "&)+.137;?@@?AA=;74434764237:;;?A?>==>@CFKLKLMMKJKKJJJIIIIHC@<6478:=>@DDDILPSPKHHHECCCA;5/**)*-/-$    +   +  +  + + +  +   "&'%! #$%)+,,/5<=>BHJJKLHC>=?BEHGC@@BCEGLQYdnux|€€zpfcfn|‰•¡¬±®§¥¨ª«©¦¤¥«³·¼ÃËÒØÝßÝÛÖÎÇÅÁº¶´¯©¦¦ª­¬¨©°»ÇÑÜääååÞÕÒÓÓÓÑÒÔÒÍÈÈÌÎÊþ»¸µµ»¿»³¨™…sg_ZWVUPIA90'! +    $&(,-.15:>=<?@@A?=;9898546:<==ADB?==?ABCINMKKKJJNMHGFCEFDDB>822467;=@DDCHLPTQKHFFFFD@=83-)((*,*&  +   + + + +  + + + + +   + + +  +  "*+($!!#$&***-17<>?AGKJKMIB>>?BGJHC@@ADDCHQZdkorx}~th`_bhr~Š˜¤®³®©ª®­ª§¦§­·¾ÃÉÎÓÖÜßÞÞÜÔÊÇÆÀº¶°ª¦¥¨¬­¬«­´¾ÇÒÜßãæßÕÐÐÐÎÍÐÒÐËÇÅÈÉļ¶³°­¯¶»¸¯¦œˆrd\VRRQQNG?7-#  + + +    #%)*,/17;<<=@ACCB@=;98768=@@?@CCA>=@BABIMKGEGHJONHDA>@?=>><6//3669<=@CEIKOSOLKGDFHE>94/*'&''(# + +   + + +   + + + + +   + %..(#"$'+*).48;>ACHMMMMICABADILJGDBADEEIQ[bfhkrvyyob\\]ajv™§±³²°¯¬¨¨©¬±¹ÀÄÉÏÓÕÙÝÝÝÝØÏÍÍÈý¶¬¦¦¨ª¬­«©¬µ¿ÉÓÜåçáØÓÔÑÌÌÑÓÏÉÄÀÁÁº²­ª¨¥¨¯³°©£›ŠscZTPONNMJD=2'     +  #&(+-/3689;>@AABA?;7887:?BA?>@BA>>BDBDIKIFDGLLNKEA>=<988860++0567:9<AEJMMOONKGCEFA;4/*&#"! ! +  +    + + + + + + +   + +  #"#(--'""%'))).5:=@CFJNPPNIEEGDEJNMKIGFFFINSZbdcelpsumb][Z[coz„Ÿ«±¶´®©¦¦ª¯²¶¼ÁÇÐÖ×ÙÝÞààÚÕÒÒÐËŽ´«©ª«¬­¬©ª°¹ÁÊÙçéåßÚÙÖÐÎÑÑÌÅ¿»¸µ­§¤¡šœ¢¦¦¤ ˜‰sbYRNLLKJIGA6," +    "#&)*+/3556:<=?A@<75789<@CB?=>A?<=CHGGIJJHFIOOKFB?=<962220+()-46788;ADILLNNMJD@@?;5.*&! + +  +   +  + +  + + +  + #%%),+)&"  !"$'&&(+059=AEHLNPPOLHHJHFJNONNNLHGKQU[bc_bjmnpkd^ZXY_ir}Š˜¥­³³®§££§®²³·½ÄÍÕØÛßâçæàÛ×ÕÓÍÆþµ°­­®°°¯±µº¾ÅÔâççãÝÚÖÑÌÉÆÄ¿ºµ°©¡œ˜”‹Œ’˜–‡tbXQKIKKJHHD:0( +   !"%''(+0211489<>;62259=ACDB=<>@=:=AHJIHIKKGFLNJD@><852../,)*+.4767;@DFIKKLJJGA=<;6/(%! + +   +  +   +   + +"&(')-+'%#! "" !#$%')'&)-379;@EHLNOOPOMLMLJLPQRUVQKIMSW]cb^ajllmke_[Z[_fnx…”¡©¯±­¤žŸ¥­³µ·º¿ÇÐÖÜàäëìéåÞÚÖÏÉÈÅ¿ºµ±²´µµ¸¼ÀÀÅÒÞããàÜØÒËü¸·¶µ²«£˜’Œ†ƒ€ƒŒ•˜’„sdYRKGHJKIIE=6/& +   """$&%&'*./.0678962015:@DFD@;;>>;;?AFJIHHJKGCHMIC>=:520./0-+-./2656>FGGIKJIFDA>9760)# +  + + + +  + +  !$'*)(**(%#"! !"#$&(*++('+06:<?BDGLOQQRSSQPOOQRTVZ^YQOSY^cea]`ilkkjfa^^`cgku‚‘ž¤ª®ª ˜š¡®º¼»»½ÄÌÒÙÞãèëîîçàÛÕÏÎËÆÄÁº¶·¶µ·¼ÁÂÆÏÚßàßÛÕÍƾ·±®¯±¯©¢Ÿ–†€|{}ƒŒ‘‹}nbYRMIGIKKHC=:5-$  + +    "" !$%'&&*./0577421148<@DEA=<=>=;>CBEIHGGHGEDGKG?9971.0//10,-//0346?FGEGJHHD=<:30.'"  + + +  + +  +  +  + #'()(&'*)'%"!!!!!#&*.//.))/5:>ADFGJMPRTUWYVSRTUSTW\`^YW\aeif_Z`ijiigec`bfhhjs€Ž™Ÿ£¨¤™‘™¯Äľ¾ÀÅÉÍÒÙßáäëîíèâÝØ×ÓÎÍ˼¹¶³µ¹¾ÁÃÉÓÚÜÚÖÐÍËƾµ®­®­¨££¢›†xwxz‚ˆ‚tg^UNKJHHJKGA<;90'! + + +  + +  ! #()(*-/0255113579<?AA><<>?=<?BAACDBBCBCFFGD<852.+-..11-,/01248>CEBCEEEA:85.*'! +  + +   + +     %)&%%$(*)(&#""##"$',000.,.5=BFGGHJLNPSTV[]XTTVXUSV[^_^]befhd\Ybjifdcdddfijhiq}‰’—œ œ‘‰‡Ž¦»À¼½ÀÄÆÈÍÒ×ÙÛáçëëéæãáÞÚØÔÌÄ¿»º¹º¿ÂÁÄËÏÑÏÎÏÒÓÎǼ³­­®ª¤££œ†~wtstzzmbZPIGGFEHKIC><;4+%   + +  + +   " ")-,+-02134236888:<=?=<<>><<>A?<==;;?ABDDDB<851.+,-043..15448;>@BAABB?<730,(&  + + +  +  +   + !&%!"%)))(&%$""#$'*/110/27>CHNPMKKMPTVWY_b\WXZ[YVUY\``^beeda\\digdcbdfgihiijpz…Œ•™•Œ„…’Ÿª±·ÀÉËÉÊËÌÏÓØÝâäèéééèåáÝÖÍÆÅÅÄÃÆÆÃÄÆÆÆÆÉÏÓÒÎÈ¿·°¯°­¦£¢œ‘†~yvtuxzti_WMFEECADIJE>;:72+# + + + + +   !$# !&-1/.056433468:979;;=<;<>=;;>B>;;:9:?BAA@@A<863/,/2596224778<?@<<??@?841-*)(%  + +  + +  +   &(#!&)),+('%#"!#(,056448>CGLSWVROQTVY\_dgc^^_^[XVW[`a`adfea_`deeggfghihefghnxˆ‘““Œ…€ƒŠ”Ÿ­ÅØÓÇÄÄÂÄÊÎÓÖÙÞâæéêèäáÝÔÍÍÎÌÊËÊÇÅÅÄÃÃÇÍÑÐËü·±®¯­¨¥¢šŽƒ}zzyyzyqg_XNGED@>@FJF>98760& +  + +    #$%$(/22248:8445578747;:;99=A><>AB?=<99=BB?@@>>:653//38;<977789;=>?:7:;<92.-+('%" + +  + +    +  !%(&#%)+,+(''%$"")/38:78=BINT[][XUVXYZ^bgkicbb`]ZXXZ^`bcgkgcaacdejkjlljfcbceku~„Š’Ž‡€||€ˆ‘£ÁÓʽºº¹»ÂÆÈËÏÓ×ÝàáâàßÝÖÐÐÐÍËÍÎËÆÄÅÆÆÉÍÎÍȾµ±®­­­«¦ –‰yy{|}}ypga\UMHC?=?EJI@9642.(!  +    #%('(.24467886563121/267899=@==BCA>@>76<@@>@A><74310259==<<<::>>=<<9778630.,+)&" + +    + + +   + + +ÿÿÿÿÿÿÿÿ  !$$$&)./*&%$%%"#,26998;@GOV\cfb]Z[^^]aeilkgddc`][Z[]_chlnhcbcefglnmnomhcbaelsy†ŠŽˆyst~Š—¨±°®¯¯®±¸¼¾¿ÃÈÌÑÒÔÖÕÖÖÑÎÐÐÌËÎÑÐÈÆÉÌÍÍÌËȹ¯¬­¯±²¯§’†{vwz}~yoe`^YPID@>@EJJB;73/+(% +  +  +  !!#$$())-/1455556772-++++.049:;<:=CDA?A=437:=>??=;51222568<>ACD@?BA>=:855542/-+*)# + + + +  + +  + +  + + ÿÿÿÿ + !#$)+,25.'$$%$#'.37879>DLTZ_ejidbbeedgkmonkgffb^^]\\]cjmlhedfhhjqrppqpkfdeimpu{ƒ‰ŽŠƒzpnv€‡Ž•œ£§¨¥¥ª®¯±µ»ÀÄÆÇÉÉÉÉÉÌÐÑÎÎÑÔÓÌÌÐÓÔÑÌÇýµ®¬°´¶·±§œŽƒytvz}~ynb\\XPIC@@CEGGA=82-)'%!   + +   "#%#!'))++,000112660*''('(,279:;9:@DBBA=5236:=<98852356888<AEHIFCC@><8410121+)))'   + +   +     ÿÿÿþÿÿÿÿÿÿ + "$%+/0253,''))),/26879?FOX^adikiijjiimqstrokiid_`_\[\bhihghijlmqvussusmgfgkmosz‚ˆŽŽ‰ƒzuvxz€‰”¢£ žŸ¢§¬³¸»¾ÀÀÁ¿ÂËÑÔÓÓÖØÖÑÓØÙÙÕÍÆÀ»¶±¯³¶¶²­¦›Žƒyttw|€|ob\YTNIC?CFFED@<70*%"    + +  !%##((&'&(*((++-1/+'%%&%',158:;:;ADEFC>73349=;6576667;=<<@DFFFECA<9972..020($&&$ + + +   + +  +ÿÿÿÿÿþÿþ +  "$)/0/13/*(+./1248::<AHPZ`acikloqolmqtvxvtqnlhcbaaa`cfgefjlnqtwxwuvwtmgeghjmqx~„Œ‘’‰ƒ€{xy‚šžž™•’’•™ž¤«±µ¸»¿¾ÀÉÑÕ×ÙÚÚÙØÜàÞÛ×Ñʽ¸´³³²°«¨¥‘†|usv|€}qe^ZRLHDADGGDC?950)"   + + + + "$%(%##!"&%#$%'*(%$%%%&)*-159;=AEFGHD>85569>=8799;<=@CCBCGEBCB?;63650--263' ""    +  +  ÿÿÿÿÿÿ  !$*..-/34/**.157:<<>CHMSZ_`cjkmtwtqptwzz{zxsplgegopfdggehlpuxyzzyxwwrjccddejoty~†ŒŽ‘•–’Ž‹†|‚Œ—›™˜–’‹‹‘—ž¥¬²ºÁÂÃÈÎÒ×ÛÜÛÝàäçäßÚÕÐÈÁºµ³¯««©§§¡”‰€yvx}€zqg`ZSMIFDDEECC?841)  + + + + +  "## !!#%" "%'()*((+07=CHIHGFA=:89:<AB=<==>ADEGHFEGECC@951///-''282&  + + + +  + +  + +  +ÿÿ $&*,,,16873./369>><AIPUY]abdijlsxxvuy‚€}xvrljmwuhcfgilqv{{{{{{yvsmd^^`aejnpty†‰‹““‘‘†„ˆ“—–”’‹‡……ˆŽ–¥«µ¿ÅÇÈÊÍÒØÛÜßäèéçãÞÚÕÌÄ»´°ª©ªª¨§¢—Š‚{xz~xqiaZTNKJGCBBAB?:95+!  + +  +    !%)+,+('*/7?EJKJHGA=<=@BCGIDBBAAFJIIIGEFECA;30-*'''"$;QL3  +  + +  + + +  +   " $&(**.59;=;5357:=>@FMU[]`degjjlptwy}ƒ‰‹ˆ†}{xronnkeccflqtz}||}~}ysnh_[]aejnopsx{€‚‚†‘‘’Šˆ‰‹‘•”ŽŒ‰„‚ƒ…Œ“š ¤¬¸ÂÅÅÇÊÎÓÖ×ÚßãææåãÞ×ÎÅ»´¯ªª¬¬¨¥¡˜ƒ|xy|€yri`[VPNNICAA@@>==:/#   + + + +  +  + +   %(*,.-)).28?DHIHHHD??CHIILNJFFFHLPNLLHDDC?;4,*)%! "!3o§•T' + +  + +  +  + ÿÿÿÿÿÿÿÿÿÿ$0%!%'***06;?@=:769<>AFKRY_`adfknnnquw|„Œ”˜—”ˆ€~{wrlhfedehpvy~}}€yqlhb`djnrsrsuxz|}}ˆ‘’‘Ž‹Œ’–’ŒŠ‰†‚‚„‹”šŸ¦¯·»ÀÆÉËÎÏÎÐÕÚßâääàÚÒȽ¶±­«­¬§£Ÿ—Ž…~zy{~~yrf]ZWROOKD@>=<;;;8/% +   + + +  +  + + + +  #)*)+-,*,259>CGGFDED@BFKKJMNKIJLPSTQNOJD@<85-$"# #DšÙ²]* +   +   +   ÿÿÿÿÿÿÿÿÿþÿþÿÿÿÿÿÿÿÿ *% !#%(**+.4<A@>>=:;?DHLQX]`addekpqruy|€†œ¢¢ ™Ž…€~{tnljjjkow}†ˆ…€~yqonjgkpuyvrrtxyz{|~ƒŒ’•—™™•’”•Šˆˆ…‚…•šš¤©¬°¹ÂÇÉÉÈÇÈÌÑØÞââàÞØÍ»·³°®¬¦¡–Ž…€€~}}|zre[XWTQPLE>9776431-&  + +   + + + %*(&')*,1688<@FHFBABABGJJJMMJJKOTVUROMJE>62/'!&@n…g;! +    +  +ÿÿÿþÿþÿþÿýÿÿÿÿÿþÿþÿÿÿþÿþÿÿ  $! ! !$$%()**,2<CCA@A@@CHMSW]`abeghkptvzƒˆ‹”£ª«©¡–‡„wqomosux~„‰‹‹‰ƒ„‚{rqrnkmpuzuoqtxz{|~|€‹”š£¤ž™–•‹‰‰†……†Š‘–˜—™ ££©²»ÃÃÂÃÄÅÆÉÐ×ßàÝßÝÓÉÁ¼¹¶²¬§ š–‚€ƒƒ}{tg]XWUTRNF=6331..0-(#  +ÿþ + + + +  + + + + + #&)'$#%)-38;:;>BFD@?BBBEGIJLLJIJMQTROMKFB=50-&! ',.)" +   + + + + + + +ÿþÿþÿþÿýÿýÿÿÿÿÿýÿþÿÿÿÿÿÿÿþÿþÿþÿÿ  !! !!!"%'(+,-,-2=GJHCCGJKNSX]abadghjlqvy}‚‰’–Ÿ­³³°ª¡—‰ƒxqpqsv|„ˆ‹Š‰ˆƒ‚„{tqonmmmqtqoqtx|~ƒ€‚Œ–šž¥§£˜”‘ŽŒ‹‹ŒŒ’’““–›Ÿ¥­µ»»»½ÁÂÀÂÆÏÚÜÛßÞ×ÏÈÀ»ºµ­¦Ÿš•Œƒ„ƒƒ€{sia\XVTQKB93120-.00-)%  +  + +  +  +  + %(*'#"$*/28=>>>@B@??CCACFILMLIHIILOMKIEA=951-(#$%  + + +  + + +  + ÿÿÿýÿýÿþÿýÿüÿþÿþÿýÿýÿÿÿþÿþÿþÿþÿþÿÿ + +  "$%&&).--///4?JQOGGNRSUZ^adddgjikmptz}‰•œ¦³º¹´­§‘‹…|wwxxy†ˆ‰‹Š‰ˆ‚€yuqoqpooppooruzƒ‡‰…„Š“—ž¡¡ž™”““““‘’”–š›œ¡¦¬±´¶¸»»º½ÀÉÖÚÚÝÜ×ÓΞ»·®¥™•‹‚ƒ„„…„{qje_YUSOG<2/.11.,.130)" +     + + +  "'*,(#"$)/5;@@@A@???@@AACFKMNLGGHGILHFB=:631,)'#  +  + + +   + + + +  ÿÿÿÿÿÿÿýÿüÿþÿþÿýÿýÿýÿýÿýÿþÿþÿýÿýÿþÿÿÿþÿÿ   "%''',0-*-/29CMVUMKPTVY_efgihhhgjmmpvyzŒ—¤±¹¹´­§Ÿ”Œ‡‚‚|~…ŠŠŠ‹ŒŠˆ‚‚~yvsswussrpopru{ƒˆ‰…‚„†ˆŒ‘”˜˜•”•—˜˜—”““”””—˜˜š˜–™£ª°²±±²³¶»ÆÔÚÜÛÚÙÕÐÈ¿º·°¦™”Œ†………†ˆ†|rlgb\VRMC80-.11-*-253+#    + +   + + + +!&*--)%#$)18=???@>=<;;;>@CGIJJGCCEGGEA=842,**&""  +    + +  ÿÿÿþÿþÿþÿþÿþÿýÿýÿýÿþÿþÿþÿÿÿýÿýÿþÿþÿþÿþÿÿ + +  +  #)++/1.*+18?IS[[UOORW\afijkkifdgjjlsvuw€Žž­´µ³®©£™’‹Œˆƒ„‹ŒŠ‹ŒŠˆ………‚}zxy{xvsqpnoqty|~‚€~}„†‰’‘’–™š›™›œšš›˜•“Ž‘—ž¦«©§¦§©­¶ÃÐÚÝÛÚÙÕÎŽ¸¸¶¬ ™•Šˆ‡ˆŒ‡}smhc]WQJA831010,-/343+#  +  +  + + + + !$ %)-1/+('(-48;==<;::6356:?DFEEC@?@BC>962,(&!!#!   + ÿÿÿÿÿÿÿþÿýÿýÿýÿüÿýÿÿÿÿÿþÿüÿüÿþÿþÿýÿþ  + + +  #"$*15410/-4AHNY__[WTU[befilmmlgefgikprqqx‡™¨±³³°¬¥—““’Ž‹ŠŒ‰‰ŠŠŠ‰‰‰‡‚}|zvtpmkklmquvwy{{yyz}‚…‰Ž’˜š ¢£¡ŸŸœ›–Š‰“™ ¢›Ÿ ¤®¼ÉÖÝÚÖÔÑÊÁ¹µº¼´¨œ˜•Šˆ‹‰€uke`ZTNG>853220.02331+$ +    +  + + +  %"!&*/33/*+.389;=<:8762/037>CB@A?=<;;92-*&   +   + + ÿÿÿþÿýÿþÿýÿûÿüÿþÿþÿüÿûÿüÿüÿýÿþ  + + + #')),4;80056;GPV\`]\\Z]cimkknnnomiggilkkmpv„–¥¯µ´±¬£œ™–•’ŽŠ‹‰…†‰‹ŽŽŠ…‚|xuqmjhgginrstwxvuuvy‚ƒƒˆŽ“™ ¢¤¦¥¡ Ÿž›•Š‰‹Ž’–—““—šš§´ÂÑÚ×ÒÍÊÅ¿¸¶¼¿¹­¡›™”‰‘Šuib]VPJD>833220/2233.($   + + +  + ##"%).252-/248;==:87640,.28?B>=>=:850-)$   ÿÿÿÿÿÿÿþÿûÿûÿýÿþÿýÿýÿýÿýÿýÿýÿþÿÿ"  +   %)+,06:7229ADJV^_][ZZ\agmqpoprssrojghihfkqx…—§²¸¶°«£œ˜–”Ž‹‹‰†‡Š‡ƒ…‰’“ŽŒ†‚{xurnheddgloruvvsqqrv|€€}‰•›  ¢¦¦£¢¡Ÿœ—”’Œ‰‰Š‹ŒŒ’••˜¤°½ËÓÒÏÉÄ¿»º¾¿¹°¤›—‹Œ†sg`[TOJD=60000./1134-&! +  + + + + + + + + + + +  ###&*.2102559>=;:7541/-/5;@A>:984/,'"!     ÿÿÿÿÿÿÿþÿÿÿÿÿüÿüÿýÿþÿþÿþÿýÿýÿþÿþÿýÿýÿþÿÿ)2.! + + + "(+,,2:=956>GLOYaa\[[Y[ahmprtvwzzwrmhefffkt~‰˜¨´¸µ¯©¤Ÿ™–’‹‡‡‡‡‡‡†„„ˆ••Ž‹…€}yxusmfdddgkmpttspnnptw}~z|…Œ‘š Ÿ¡¥¥¢£¢ ™˜”Ž‰‡‡‡…†‡ŠŽ‘—£®¸ÂÈÌÍÉÃÂÁ¾¿Á¿»´¨žš—‘‹Š‰†‚znc]XRNKD:1,,....-.22-%   + +  + + + + + + + +##!#%(,,.256:=:8851///049<>>:741,&#  + ÿÿÿÿÿþÿþÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿýÿýÿþÿýÿüÿüÿüÿüÿüÿüÿýÿþÿÿÿÿÿÿ +#170#  + #(+,.5>C@:8AJPUZ_b^\]\]fmnnqw|{|€|smifedgmv„™¦±³°®©¤¢–‘Š†…‡Š‰ˆ‡„ƒ‡Ž””‘Žˆ‚€}yvspkfeeegijnqrqpnnqstxzy{„Œ’šŸ ¢¥£¡¢¢ œš•Š‡‡†„„ˆŽ‘– ª²¸¿ÆËÊÅÅÃÁÂÃÀ½¸¬ ˜”‹†ƒƒui`[VPLJB7/++,,,+*,..+$   + + + +  + +    !"$&*-158:9443.,.038;::830.*&  +ÿÿÿþÿýÿþÿþÿþÿþÿÿÿÿÿýÿþÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþÿüÿûÿûÿûÿüÿýÿýÿþÿþÿþÿÿ #/1+! !&+/39@DFB>BJT\]\`a^^_cjooptz~~|slhhgfjpx†•Ÿ¨­¬ª«©¦£Ÿ™‘Œ‰‡‰‹Šˆ‡ƒ‚‡’•”‡‚}yupmiggefgfhlnoopqrttstuw|„Œ“™ ¤¦£¢¢ œœ—’‹ˆ‡ˆ‰Ž••’‘•¦¬±¸ÁÇÇÆÆÃÁÁÀ½¼¹­Ÿ”Œˆ‚€‚~sh`\WQLJC80+++)'')+.-( + + + +   +  + +   #&'+34570--,+.2799532-*(%" + +ÿÿÿþÿÿÿÿÿÿÿþÿÿÿÿÿýÿýÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþÿþÿýÿüÿûÿûÿüÿüÿýÿýÿþÿþÿþÿÿ "$! !%,38>BFIJKIJVcaY[cd`agkmorx‚‚ƒ€xqkfghhmqy†–¤¬ª¥¤¥¦¤£ š”Š‰Š‰ˆ†ƒ‚ˆ•—–“‹†zwrnljhgeefehlmmoqqsutsrsw{ƒ‹’—œ ¤¥¤£¡ž››œ˜”‘‰‡‰‘••’”›¢¨®´»ÁÂÃÅÁ¿¾»º¼¸­Ÿ“Œ‡~~}ui`[WRNKD8/*((&%')+.+"  + + + +  + +   +  +  "$*00/2.*,./157741/-*&#! + +  ÿÿÿÿÿÿÿþÿÿÿÿÿÿÿýÿýÿÿÿÿÿþÿþÿþÿþÿÿÿþÿüÿüÿýÿþÿüÿüÿûÿüÿýÿýÿüÿýÿÿÿÿÿÿ   $).4<@CHILRROT_`ZYdlgcinnpuz€‚‚~smiccejnqzˆ•£ª¤ŸŸ¡¡  ™—“ŒŠ‰ˆ†„‚‡”––“‰xuqlkjgeefggilmmprqqrrrruy{‚Š‘—¢£¤¦¦¡›™››—“‹‡„†ˆŒ“šž¥¬°³¸»¿Á¾½»¹º»·­Ÿ“Š‚{zzzztjaZUQLH?5,&%%%'++,-'  + + + + + + +    + #)--+--+.44587200,(%     ÿþÿþÿÿÿþÿþÿÿÿÿÿÿÿÿÿÿÿþÿýÿýÿÿÿþÿÿÿÿÿýÿþÿþÿþÿüÿüÿýÿýÿýÿýÿýÿûÿüÿýÿüÿþÿÿÿÿ   $(,06<>?CGKPTUSSX\]ckkhjoqsy~€~}ypkf`_ckqs{‰–¡§¡ŸŸžš—˜—‘ŒŠˆ„‚‚€€„‰‰‡xupkihgddfhjklnnqrqpprrty|~„Š•›£¥¥©¨¢ž›™š™•‹ˆ„€…‰Œ“—š §©«®²¸»ºº¸¸ººµª›†}wstutoicZTNHA70*$#"$*//-*#   + + + + +   + !&*+,--+0654650-,(# + +  ! ÿþÿÿÿÿÿþÿþÿþÿþÿþÿÿÿþÿÿÿÿÿÿÿÿÿþÿþÿýÿþÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿýÿþÿþÿþÿýÿýÿýÿýÿþÿýÿýÿþÿÿÿÿÿÿÿÿ + + #'+-/5:;<?DLPSVURT\aaciponsy}€‚}zunhb_afmrv}‰” ¥ œ˜˜››œ˜–—–‰…„|~}~ƒ†‰Š‡ƒ‚~zvojhghffhjllnppqrqpprsvz}‚‡‹”œ£¦¦©§¢ œšš—“‹†€zy}‚†‰ŒŽ‘•˜ž£¥¥¦«²´··´·»º²¤”‰woknqohe`WQLE:0+($! #+10,& +  + + +    $&)--+)-21//.,)&$ + + + + +  ÿÿÿÿÿÿÿÿÿÿÿýÿþÿÿÿþÿýÿþÿÿÿÿÿÿÿÿÿýÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿþÿþÿýÿþÿÿÿÿÿþÿýÿüÿüÿüÿþÿþÿýÿüÿþÿÿÿþÿþÿÿÿÿÿþÿÿÿÿ +   $(,.147:>AGMQTVVXZ_ddcjvxsw‚‚€|wpje`_dkpsv~‡‘¢Ÿš””—™š—•“‘Œ…€}yvy{yz€„†ˆ†‚||ypjijjjkkkmmosrstsqnorvy~ƒˆŒ–Ÿ¤§¨¨¦¢¢Ÿž—“Œ„|wvz€‚„ˆ‹‘—¡¢¡¢©¯°´µ´·ºµ«ƒxoheinmf`[SMIA5+&%" "*/-)" + + + +  +    #%(++(&(,+))(&#   + + ÿÿÿÿÿþÿþÿÿÿþÿþÿÿÿþÿýÿýÿÿÿÿÿÿÿÿÿÿÿþÿýÿýÿþÿÿÿÿÿÿÿþÿþÿÿÿÿÿÿÿþÿÿÿÿÿþÿüÿýÿþÿþÿýÿýÿÿÿÿÿþÿýÿüÿûÿýÿÿÿýÿûÿüÿÿÿþÿÿÿÿÿþÿÿÿÿÿÿÿÿ +  +  "'+-0478:>CJOQUYWX\bfhhoz}|‚€}{xrjfb__emsuv{†’œŸž›—–—››—“Œ‡|xqptxxz€„‡‰ˆ„€~{rlkmlmppnooqttuxvqlmswy…ˆŒ‘˜¡¦ªª©§¤£¢£¡›–‘‹„{wvx{‚…ˆ‰“™œœ ©®¯°²´¶µ­£˜‹}skcaflle]VQLE;1(#" $*-+% + + + ÿÿ    + +  #$%%$"!#&&$#!  + +  +ÿÿÿýÿýÿÿÿÿÿÿÿÿÿýÿýÿþÿÿÿÿÿÿÿÿÿþÿþÿýÿüÿÿÿÿÿþÿýÿþÿÿÿþÿþÿÿÿýÿüÿþÿÿÿþÿþÿÿÿÿÿþÿþÿþÿþÿþÿþÿýÿýÿþÿþÿþÿÿÿÿÿþÿþÿþ  !##"#(.026::9<BJPSTX[Z[ahnprz‚{|}zwunfc_^afmqsty„’ž›šš›ž—”‘Œ†}xsllrvyƒ…ˆ‰ˆ„‚|tnlllnstrstttuxzyspquy|ƒˆ‰Œ‘™¢©­¬«©¤£¥¦£ž™’‹…}ywwy~„†‡ˆ‰Ž•˜—–œ¦¬¬¬¯²±«£–‡yrj`^ejibZTPJB90& "(+-*! + + ÿÿÿÿ   + + "#! + +   ÿÿÿÿÿÿÿþÿýÿþÿþÿÿÿÿÿÿÿþÿýÿýÿÿ ÿÿÿÿÿÿÿþÿþÿþÿÿÿþÿýÿÿÿÿÿýÿüÿþÿÿÿþÿþÿÿÿþÿýÿþÿÿÿþÿÿÿÿÿÿÿþÿþÿÿÿÿÿÿÿÿÿþÿþÿþÿþÿÿÿþÿüÿþ +  #%%%%&'*.148:98:AIPTTW^abchswux‚€{zzxvrlgb^]`flkmsyƒš›š™™›œŸž˜”’…|uoklqw~…‡ˆ‰‰‡ƒ€€{upljkosutuwvuvy{yvuuw{€‡‹”¦¬¯¬«©¤¥¨©£ž™’Œ†zxy{„†‡‡ˆŒ‘”“‘—¡§§©¯°©Ÿ˜–’„vpj^[bge_YSNG>7/# %*+*% + ÿÿ   +  +    ÿÿÿþÿÿÿÿÿýÿýÿþÿþÿýÿþÿÿÿþÿüÿüÿýÿÿÿþÿÿÿÿÿþÿýÿýÿþÿþÿþÿÿÿÿÿÿÿÿÿþÿýÿÿÿþÿþÿÿÿþÿþÿþÿÿÿÿÿÿÿþÿþÿÿÿþÿýÿýÿþÿþÿþÿýÿþÿÿ + #()'&&)-12248978<AIPSUX^dhgiqwyy{~{ywumhfa\\^dhhlu|„”••™™˜™Ÿš•’…|tonmqz„Š‹‹ŒŠ‡…‚~{upljlpssstvvwwz}{wvvw{ˆŽ‘“— ª¯¯­¬¨¥¦©¨£ž—’‡€{yz~ƒ…‡‡‰Œ‘–Ÿ¢£¨®­¢•Œ‰€uoh^Y^dd^XSME=6-"!(+(# + + + ÿÿ + +  + +     +  ÿþÿÿÿþÿþÿþÿþÿýÿüÿþÿÿÿüÿûÿüÿüÿýÿÿÿþÿýÿýÿþÿÿÿÿÿýÿþÿÿÿþÿþÿþÿþÿþÿÿÿÿÿÿÿþÿÿÿÿÿþÿþÿÿÿÿÿþÿýÿþÿþÿþÿÿÿÿÿþÿþÿþÿþÿþ   !#%'&&'(+154358758?CIOSVZ^dghkpty{{}‚‚}yuricb^[\`dfhnw€‡‹•—““˜›™•”‡~vutpr{†ŒŒŠˆƒ|ytpnmmprqqsvvwyz~}yvvwz‚Š”–—ž©°±¯«¦¦¨¨¦¢œ–’‰|{{~‚…††‡‹‹ŠŽ‘“˜Ÿ¡¥©¦šŽ…€~ztnf]Y[ac`ZTLD>5+!#)*% ÿÿ +  +  + +     ' ÿÿÿÿÿþÿÿÿþÿþÿÿÿþÿýÿüÿýÿÿÿþÿüÿûÿüÿýÿýÿþÿþÿýÿýÿÿÿÿÿÿÿÿÿýÿýÿþÿþÿÿÿÿÿÿÿþÿÿÿþÿýÿýÿýÿþÿÿÿþÿþÿþÿþÿþÿÿ + "%&'(((*,0330/4876;BFJOTX[`fghowxvy}}ƒztnie`]\]begjpyƒŠŒ‹ˆ‡‹Ž‘“‘‘Šƒ|zxtv~‡ŒŒ‹‰…€{wsqommnpposwwwyz|}zvuwzƒ’”–˜Ÿ©°²°ª¦¨ªª§¢š“ˆ~~}„‡†„…ˆ‡ˆŒ’—™™› œ‡~wsrqlb\Z[`daZTIA<3(!#)*%   + + + ÿÿ     + +  +     + !6'ÿÿÿÿÿÿÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿüÿýÿþÿýÿýÿýÿüÿüÿýÿþÿýÿýÿþÿþÿÿÿÿÿÿÿýÿýÿÿÿÿÿþÿþÿÿÿþÿþÿþÿþÿÿÿÿÿþÿýÿÿÿÿÿþÿþÿþÿþÿÿÿÿÿýÿýÿþÿÿ  !%$%(+,-/231..4879BFGLSY]_dikkpy~{y~}ytmihc]\^behkr{ƒˆ‰‰…‚ƒ†ˆŠ‰ˆ‰‰ˆ„|xwzŠŒ‹ŒŒŠ†‚|wsrolmoqqrtwxxyyzzxvuv{…•••š¢ª¯²°ª¨¬®­ª¤™‹ˆ…‚~€…†…‚‚ƒ„‰Œ‘•”“••”…ypjiljc\[\`eaYQG?90'##%(,(  ÿÿÿÿ  + +  +  + +        & ÿÿÿÿÿþÿþÿýÿüÿþÿþÿÿÿþÿÿÿÿÿþÿýÿýÿüÿýÿýÿüÿýÿýÿûÿûÿüÿüÿüÿüÿýÿýÿþÿÿÿþÿýÿÿÿýÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿþÿþÿþÿÿÿþÿýÿÿÿþÿýÿþÿþÿþÿþ !#$%'*-...0138;::CIILT]_bgimpqv}€€‚ƒyutoifb]Y]bfjmqy„„†„„‰‹ˆ†…„‚|zww|ƒ‘Œˆ„vrspnoqsuwwxyyvuwxvvvv|ˆ“—–˜¤¬±³±«ª¯±®«¥›‘‹‡†…‚€€„†…‚€~‚‡Œ’”’“”‘Š|{umedgga\[\`ca[QH@7-'&')+*$ +  ÿüÿþÿÿ   +  + + + + + + + +     +  +ÿþÿþÿþÿþÿþÿþÿýÿÿÿÿÿÿÿþÿýÿþÿþÿþÿýÿþÿýÿüÿüÿüÿüÿüÿüÿüÿüÿüÿüÿüÿüÿüÿýÿÿÿýÿþÿÿÿÿÿÿÿþÿþÿÿÿÿÿÿÿÿÿþÿÿÿþÿþÿÿÿþÿÿ +  +  """#&*+))-246;=<@FJMTZ]bghmtxxw|€}~}wutqjb^[WZagknpv}€‚‚†‡………‚}{{zyvxˆ‘ŽŽŠ†~upqppoptxzyxxxuruwwxxw}Š•˜˜›Ÿ¦­²µ³­«®¯¬¨¤œ“ŒŠ‰ˆ…ƒ€€„‰‰„‚€~ƒ‰“•–”„|xtnhd``^YVWZ^``\SJA5+(*+++'! +  +ÿÿÿÿÿÿ  + + +  + + +   + + ÿÿÿÿÿÿÿþÿþÿþÿþÿÿÿþÿþÿÿÿþÿýÿüÿüÿþÿþÿýÿþÿýÿüÿýÿüÿúÿûÿýÿýÿþÿþÿüÿûÿûÿüÿýÿýÿþÿÿÿþÿÿÿþÿþÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿÿÿÿÿþÿþ + + +  #$$'('(,00159<BGJOVZ]cijlryztt{}zywuvvqja\[[\aillmsy~€~}}}|~ƒ……ƒ‚€{y{{zx|…Ž•“‘•—“Ž‰ƒ{tpoponosxzyxxwtruvwyzy~Š•˜š¡§­±´³¯«¬¬¨¥¢œ’‹ŒŒ‰‡ƒ†Œ‹†‚}ˆ‹Œ‘•–ˆ{xoea`\XVTSTW]_^ZRIA4,,.-+'" +  +  +  + +  +  + +   + + +ÿÿÿþÿýÿýÿþÿýÿþÿÿÿþÿýÿüÿýÿþÿýÿüÿýÿýÿýÿþÿüÿûÿûÿýÿýÿþÿüÿûÿüÿüÿüÿýÿýÿüÿýÿÿÿÿÿÿÿþÿýÿþÿÿÿþÿÿÿÿÿþÿþÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿþÿþÿþÿÿÿÿÿÿÿþÿþÿþÿÿÿþÿþÿÿÿÿÿÿÿÿÿþÿÿ "#%''%'-11136;DJLRY^aekmlotwtruyywvtutoga^^`cfkomlqw}}|{z{|ƒ…†ƒ€}{}~~~ƒ‰–•”–œ˜Ž…ztqpponnrwzyyxvtsttuy{}‚‹•šœ ¨­¯±±°«ª©¤ ž™‘ŽŽŒŠ…„‰Œ‹†|~€„ˆ‹”’‹ƒ|ywla]ZURQSTTV\_^YPG=2.12/& + +  + +   + + +  + + +   +ÿÿÿýÿýÿýÿþÿþÿþÿýÿüÿüÿþÿýÿûÿüÿýÿþÿþÿüÿüÿüÿüÿýÿþÿýÿûÿûÿüÿûÿüÿüÿüÿüÿüÿýÿÿÿÿÿþÿýÿþÿÿÿÿÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿþÿýÿÿÿÿÿþÿþÿþÿýÿýÿþÿþÿýÿýÿýÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ + +  #&'&).3568;?FKNTZ`dehlmlpuustvwy{yvrmfbb_^ciknonry}{zyxy}€„†ƒ€€}}‚†‰Œ–—˜›žžšŽ‚}yussrpoprwzyzzxvutsuy|‡Ž•›žž¢©«­°²±¬¨¦Ÿš˜”‘’’Œ‰†‡Š‹‰„|y~‚ƒ†‹’…€yvrh_[VRPPQRRTZ_^XOE9/044-! + + + + + + +   +  +  + + + +  + + +  ÿÿÿþÿÿÿÿÿþÿþÿýÿþÿþÿýÿüÿûÿýÿýÿýÿþÿþÿýÿþÿþÿýÿüÿüÿýÿÿÿÿÿÿÿþÿýÿûÿûÿüÿüÿüÿýÿýÿÿÿÿÿÿÿÿÿþÿþÿýÿüÿýÿþÿýÿýÿýÿýÿýÿÿÿÿÿþÿþÿþÿÿÿýÿüÿþÿýÿüÿüÿþÿÿÿþÿþÿþÿþÿýÿýÿþÿþÿÿÿþÿÿÿÿÿþ !#$)0336<@BGMORW\`deglonotvtuww{~xrmgdc`[_filoqty|yvwx{~…ˆ…€‚€}…‹‘“–šœ›–‹€|xuvwtrrtvxz{||zyxutux}„Š’—œ ¢¦««¬±´²¬¦¡š•’’‘Ž‹‡„…‰Š‰†zw{€…‹‰}xtmd]XTSRRQMNTZ_^WMA60241( + + +     +  +  + +  + ÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿýÿþÿýÿüÿýÿýÿýÿýÿþÿýÿüÿýÿþÿþÿýÿýÿþÿþÿýÿüÿüÿüÿûÿüÿýÿÿÿþÿýÿüÿýÿþÿýÿüÿüÿüÿüÿýÿüÿþÿÿÿþÿýÿýÿýÿþÿþÿüÿýÿþÿþÿüÿûÿûÿüÿüÿüÿýÿüÿüÿýÿþÿþÿýÿýÿþÿÿÿÿÿÿÿþÿÿ + + + "" !"$*2867AHHKQTVX\`ccekqsqqttuxz|}zwqicbcc_`dimoqvzzwutz‚…‡‰Œ‹‡„„„ƒˆŽ”˜™›ž ž›™’†|xwyyxwvx{|~~}{ywuwvv~‡Ž•šž¢¥«®­¯³µ²«£œ•‰‰ŽŠ‚†Œ‹ˆ„}wvx{}‚‰Ž‡€{wslf_WRRRRPNPX]_^WJ>8421,$ + + +  +ÿÿ +  + + +  +   +  ÿþÿþÿÿÿÿÿþÿþÿþÿýÿüÿüÿýÿýÿýÿýÿýÿýÿýÿüÿüÿüÿýÿþÿþÿýÿüÿüÿýÿÿÿýÿüÿûÿüÿüÿüÿýÿÿÿþÿýÿýÿýÿþÿýÿüÿûÿüÿýÿþÿþÿþÿýÿýÿýÿüÿýÿþÿþÿÿÿþÿýÿýÿýÿýÿýÿüÿûÿúÿûÿüÿýÿüÿûÿüÿüÿýÿýÿüÿýÿþÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿ !"!!&+18;>DIKNQTSRV^a^`gmstrpruvy|{vrmd\[`cdefkqrsx|ywwuy‚†‰Œ’“Šˆ‡‡Š’šž ¡ Ÿœ˜•…~{z{{{|{|€‚ƒ€}{xuuwvvŠ‘˜ £¨¯±²´·¶²ª ™‘Š†…‰Œ‡‚‰ŽŒˆƒzstvwy‡Ž†|vqnibXPNMLKNV_ddaYK@<82-'  + + + +    + +  + + +  ÿþÿþÿÿÿÿÿýÿýÿýÿüÿûÿüÿþÿýÿüÿüÿüÿýÿýÿüÿüÿüÿýÿýÿûÿûÿúÿûÿþÿÿÿþÿüÿúÿúÿüÿýÿýÿþÿÿÿÿÿýÿýÿÿÿýÿûÿûÿüÿýÿýÿþÿÿÿþÿýÿýÿýÿþÿÿÿþÿýÿüÿýÿþÿþÿýÿüÿüÿüÿüÿûÿýÿþÿûÿúÿûÿüÿüÿüÿýÿþÿÿÿÿÿþÿþÿÿÿÿÿþÿþÿÿÿþÿÿÿÿ + + !!!'/67:BHJKORRMKQ[_^]bhntspqttv{yrmhb[X\`eijlruv{|yywzƒˆŠ•˜˜•‘ŒŽ’™ž¡££Ÿ™’ŽŠ„}~€€€€ƒ„„„‚{xvvwvy‚Œ’šžŸ£©±µ·¶µµ²©Ÿ˜‘‹ˆ„„†ˆ‰ƒ}ˆŒŠ‡ƒyrrttw€ˆŒŠ†„wpni`TLIFCENZgnmf[L@<80)!    +   +    ÿÿÿÿÿÿÿÿÿüÿüÿýÿüÿüÿýÿþÿþÿýÿüÿüÿþÿþÿüÿüÿýÿüÿüÿûÿúÿúÿýÿÿÿýÿýÿûÿûÿüÿýÿþÿþÿþÿþÿÿÿÿÿýÿûÿüÿýÿýÿûÿüÿÿÿþÿþÿþÿýÿýÿþÿþÿýÿýÿýÿýÿýÿüÿýÿýÿýÿýÿüÿüÿýÿþÿûÿùÿûÿüÿüÿüÿýÿÿÿÿÿýÿýÿþÿÿÿÿÿÿÿþÿýÿÿÿþÿþ !!"##$',2::9>HNLKNQOMQZ``^]bioqonpqsuqlgc_]_acgknorwz‚€}zx|„ˆ‹’™Ÿž›—–˜˜™ž ¡¤¡œ˜Š†ƒ‚€ƒ…†„‚„‡…‚‚‚~xuvuvzƒ•œžž¡¨±¸»¸²±±«¢™Š„€ƒ„……€~†‰†„wqpqqw€‡Šˆ‡…yqmh\OIF@=BPaovshYI>71)! + + +  ÿÿ   +      + ÿÿÿÿÿþÿþÿýÿüÿþÿýÿüÿýÿýÿýÿÿÿþÿýÿýÿþÿýÿüÿüÿýÿýÿüÿüÿüÿþÿÿÿþÿüÿüÿüÿüÿýÿþÿýÿþÿþÿýÿÿÿÿÿþÿÿÿÿÿýÿüÿýÿþÿýÿüÿýÿÿÿþÿþÿþÿýÿýÿýÿüÿýÿýÿýÿüÿýÿüÿüÿüÿýÿþÿýÿüÿýÿýÿüÿûÿüÿýÿýÿýÿýÿþÿýÿüÿüÿþÿþÿþÿÿÿþÿþÿÿÿÿÿÿÿþÿÿ + +  $%&()),278;?@DIKIINQQSY_b`^afjkjjlpplgfc^]_dfhklossu|ƒ„‚}}…Š—ž¢¥¥¤¡ ¡  ¤££¤ ››™“Œ†‚‚…†……†ˆŠ‡ƒ„‡…‚„yusqt{…˜ ¡žŸ§±¹¾º³±²¯¦›Ž†€~€€ƒ‡ˆ…€zuolnrz€„‡ˆˆ…ysmg]NGD><DVlxzscPB80(! + + + + +  + ÿÿÿÿ +  +  + +ÿÿÿÿÿþÿýÿþÿÿÿÿÿþÿýÿþÿÿÿþÿýÿþÿýÿþÿÿÿþÿþÿþÿüÿûÿüÿýÿþÿýÿýÿýÿýÿþÿþÿüÿûÿûÿüÿýÿýÿýÿýÿýÿûÿûÿþÿÿÿþÿþÿÿÿþÿüÿüÿüÿýÿýÿþÿýÿýÿþÿþÿüÿýÿýÿýÿÿÿýÿûÿûÿýÿÿÿþÿþÿþÿÿÿÿÿþÿýÿýÿýÿýÿüÿýÿþÿýÿýÿüÿüÿýÿýÿüÿýÿþÿþÿýÿýÿÿÿÿÿþÿÿÿÿÿþÿÿ +  %'(*,,.5:9;BFECDEEGLPRSYabacdeeefillfacb^^bdfjoopsrs{…‡…‚…‡Š˜ ¥¨¨§¦¥¥¥¥¨­«§¦Ÿ™šœ—ˆ†…ˆ‹ŒŒŠŠŠ‰†††„ƒ…‚{upnt}ˆ’š¢¤¡ §±º¿¼¶´¶³©›Ž„€‚}{}‚…ˆ‡ƒzunknu}…††ƒ}wsog\OFB>@Ndw|p\F7/(!  + +  + ÿÿ    +  + ÿÿÿýÿýÿþÿÿÿÿÿÿÿþÿþÿþÿýÿþÿþÿþÿþÿýÿüÿüÿýÿýÿýÿþÿüÿüÿýÿýÿüÿüÿýÿþÿýÿýÿþÿþÿýÿüÿûÿûÿüÿþÿþÿþÿþÿýÿüÿûÿüÿüÿýÿýÿûÿûÿýÿýÿýÿýÿüÿýÿþÿÿÿýÿüÿûÿüÿýÿþÿÿÿÿÿþÿÿÿýÿûÿüÿüÿüÿýÿýÿýÿýÿÿÿýÿüÿýÿþÿþÿþÿþÿþÿýÿýÿþÿþÿÿÿÿÿý  +  !!#%%'*-015:;<?DGEBA@BGLNNPX]^]\]^_`befc__`_adfhlqssttuzƒ‰Šˆˆ’š¢§ªª¨¥¥¤¤¥§­²±¬©¢˜‘Œ‹‹“’Œ‹Š‰ˆ†„‚ƒ„{uonuŠ”¤¥¤£§°¹¾¼¸¶¸¶«œ…€ƒ‚{z}…ˆ‡ƒzuoknw~€ƒ†‡„€|wsndYMD@AKau€€yjT=.'  +   + + + + ÿÿÿþÿýÿÿÿÿÿþÿýÿýÿüÿýÿþÿÿÿþÿûÿûÿýÿþÿýÿýÿüÿüÿüÿüÿüÿýÿþÿÿÿþÿþÿþÿþÿþÿüÿûÿûÿüÿÿÿþÿþÿþÿýÿûÿúÿûÿüÿýÿþÿûÿùÿûÿþÿýÿüÿüÿüÿüÿýÿþÿþÿýÿûÿûÿüÿýÿþÿýÿýÿþÿÿÿÿÿýÿüÿýÿüÿûÿûÿýÿýÿÿÿÿÿþÿüÿýÿþÿýÿþÿþÿýÿûÿûÿûÿûÿüÿþÿÿÿýÿý !###%#"%),0249;;;=CECA?@GLMMLMRVSRUVVVX[^^\]]^bfhkoststwy|€†‹Œ‘•œ£§§¨¨¥¢¢¡  ¤©®¯®¬¨¤¢ž™“‘“”–˜–’Ž‹Š‰‡‡ƒ~zunov€‹–Ÿ¥§§¦¨¯·¹¹ºº¹¶«‘‡‚‚€}zx}ƒ…‡†‚}yuqmqz‚‡‹‰ˆ„}{xrjaWKCCK\s‚ƒ|p]F3)"   ÿÿÿÿ   ÿÿÿÿÿÿ +ÿýÿýÿÿÿÿÿþÿþÿþÿýÿüÿüÿýÿþÿÿÿÿÿþÿýÿüÿüÿýÿþÿýÿüÿüÿýÿýÿüÿýÿþÿÿÿþÿýÿýÿþÿþÿýÿûÿüÿüÿýÿþÿþÿÿÿþÿüÿüÿüÿûÿüÿþÿýÿüÿûÿûÿüÿýÿýÿüÿüÿüÿýÿþÿÿÿýÿüÿýÿýÿüÿûÿúÿüÿÿÿþÿýÿþÿýÿüÿûÿüÿýÿþÿÿÿýÿýÿüÿüÿüÿýÿýÿûÿúÿûÿüÿüÿýÿüÿüÿüÿýÿýÿýÿþ !##! %*.1227;<;;<=?AA@DILMMJKOPOOONNQTWWY^^]afjmoqqpqv{}‚…ˆŽ’– §¦¥¥¤¡Ÿš™™œ¡¦ª¬¬«ª¦¡˜•—™™š›š•‹‰‡‡„€}zxsnox‚Œ— ¥¨©©¬¯³µ¶»½»´©œ’‰ƒ||zy€„†‰‡ƒ}ywurwƒ‹‘Š†zxwqg_UJFLXj}…‚xeM7*#     + ÿÿÿÿÿÿÿþÿþÿÿ ÿýÿýÿÿÿÿÿýÿþÿþÿýÿýÿÿÿýÿþÿýÿýÿýÿýÿýÿþÿþÿýÿýÿþÿþÿýÿüÿýÿþÿþÿÿÿþÿüÿýÿþÿþÿýÿýÿüÿüÿþÿþÿýÿýÿüÿüÿüÿþÿýÿýÿýÿüÿûÿýÿþÿýÿüÿüÿüÿþÿþÿþÿÿÿþÿýÿýÿýÿüÿýÿÿÿþÿýÿûÿüÿüÿüÿýÿþÿþÿþÿýÿüÿûÿüÿýÿýÿûÿûÿüÿýÿýÿýÿýÿýÿþÿþÿþÿþÿÿ  "! $(.44249=>=;88<>@@BEHIHHLNOMKJJMPQRU\`abejnllpqqtx{~€„“—£¢¡ š˜•‘‘’—¡¦¨§ª­¨¢Ÿœ™™œœœœ˜“‘‰…ƒ‚}ytnlr{ƒ— ¥§¨ª®°°±¶¼¾»³§œ‘Šƒ|z|}~…‡‹Ž‹…€|{yy‚Ž“•”Š‚{uutoe\SKNXcq~ylV<)  +   +  +  ÿÿÿÿÿÿÿÿÿýÿüÿþÿÿÿÿÿÿÿÿÿÿÿþÿýÿýÿþÿþÿüÿüÿþÿÿÿýÿüÿýÿþÿýÿýÿýÿýÿýÿÿÿþÿýÿþÿÿÿþÿþÿýÿûÿüÿÿÿÿÿüÿüÿýÿüÿûÿýÿþÿþÿþÿüÿûÿýÿÿÿýÿýÿýÿýÿþÿÿÿþÿþÿýÿýÿýÿüÿþÿÿÿÿÿÿÿþÿüÿýÿþÿüÿüÿþÿÿÿþÿýÿýÿýÿþÿýÿýÿýÿýÿýÿýÿüÿûÿüÿþ + +" #%%)04348;<<<9767<???ADGILOOLJJKLMLNRW_effilllpsssux|‚†•—˜›œ™”““‘ŽŠŠšžž¡¡Ÿ¢§¥žšš™˜›žœ™”‘Œ‰ƒ‚€|sjku~…š£§¨¨©¬®¬¬²º¼»´¨›Š„|y|€…‹Ž‘”‘Š„~†‘™™™•‰~uqqpjaYQNT_jtxtk]G/  + + + +  +  +  ÿÿÿþÿýÿüÿþÿÿÿþÿÿÿÿÿÿÿýÿÿÿýÿüÿûÿýÿþÿüÿþÿýÿüÿþÿþÿüÿýÿþÿþÿþÿþÿþÿþÿþÿüÿüÿþÿþÿýÿýÿþÿýÿûÿûÿüÿþÿþÿÿÿýÿüÿýÿþÿÿÿÿÿþÿýÿýÿýÿýÿþÿÿÿþÿþÿýÿüÿýÿÿÿþÿýÿüÿüÿýÿþÿýÿûÿûÿüÿýÿþÿýÿüÿÿÿÿÿýÿüÿüÿýÿýÿüÿûÿûÿüÿþÿÿ + !$"!$''(,0258989977647<??@DIJMPPMLMNNKJMRV\dhijkmoqqrstv{€„ˆ‘””’’‘Š‰ŽŠŠ’œœš››——›œ—”•”“—œ—‘ˆˆ…€€~sjmyƒ‰’ž§¬®¬ªª©¦¥¬¶¹¸´«‘‹„}z|ƒ‹‘•˜™—Ž†ƒƒŠ—¡¢ž›’…yqmnlf^XTU[eosng`S=( +  ÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿþÿÿÿýÿþÿýÿýÿþÿýÿþÿýÿýÿÿÿþÿüÿûÿýÿÿÿþÿýÿýÿþÿüÿüÿýÿþÿýÿþÿÿÿþÿýÿýÿüÿýÿýÿþÿÿÿþÿüÿüÿýÿÿÿþÿüÿûÿýÿþÿþÿþÿÿÿÿÿþÿþÿþÿÿÿÿÿýÿüÿþÿþÿüÿûÿúÿúÿûÿýÿþÿýÿûÿýÿýÿýÿýÿýÿüÿúÿúÿûÿüÿüÿýÿþÿþÿþ +  $&$#%&(,///2668504876:=@BFIKLMPQPONNMLNTX[afiklmnooqsqpv}„ˆ‰ŒŽˆ†‡†‡‰ŒŽ“˜–”––’‘’“ŽŽ’™œ™“Š„ƒ‚€€€~{rko|…‹”Ÿ¨¯³²­©£ ¡¦°µµ±« •Ž†€~†”šœœ—…„Œš§¬§¡›Ž~qjhjib\ZY\binmd]WK8& + + + +   ÿÿÿþÿÿÿÿÿþÿþÿÿÿþÿÿÿÿÿÿÿþÿþÿÿÿÿÿþÿþÿþÿÿÿÿÿþÿýÿÿÿþÿÿÿÿÿÿÿþÿüÿüÿýÿýÿþÿýÿÿÿÿÿüÿûÿüÿýÿþÿýÿüÿþÿþÿþÿþÿýÿþÿÿÿþÿýÿüÿýÿýÿýÿþÿþÿýÿüÿýÿþÿþÿÿÿýÿúÿúÿýÿÿÿÿÿþÿþÿþÿýÿýÿþÿþÿýÿÿÿýÿüÿýÿûÿûÿýÿÿÿüÿüÿüÿýÿýÿüÿüÿûÿùÿúÿüÿýÿýÿýÿýÿÿ +  $'&&&#%,/-*,./32.0799;<@CDFLOOPQSRONONOVZ[_dgikmmlmrtqmow~‚†‡„€}|‚‡†ˆŒ”“ŽŽŽŒŠ‰ˆˆ‡‡•››•‘Šƒ€€~~~}xqmr|„‹“ž©±¶´°©ŸœŸ£ª°°¬¨ ™”Œ‡†‡Œ‘”›žš“Š†‰˜¨°°ª£šˆugbbdd^XZ]bhigc\VOD3$      + ÿÿÿÿÿþÿýÿþÿÿÿÿÿÿÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿýÿþÿþÿýÿÿÿÿÿÿÿýÿýÿýÿüÿýÿüÿüÿþÿÿÿþÿýÿýÿýÿþÿÿÿþÿüÿýÿÿÿþÿýÿýÿýÿýÿÿÿüÿûÿüÿýÿýÿýÿþÿýÿýÿþÿþÿüÿûÿüÿýÿþÿýÿýÿýÿýÿüÿüÿþÿþÿþÿÿÿþÿüÿýÿþÿýÿüÿþÿÿÿþÿýÿýÿýÿýÿþÿýÿûÿûÿüÿþÿþÿþÿýÿýÿÿÿÿÿÿ !$$#&)$"(,+)*,+,-/14689:@EDEJPSSPRTRPPQSY[\_acfjkkjkorromptwz~|{yx}„…„†Š‹Œ’Œˆ‰Š‡„‚ƒ„ˆ‘—˜“‘‘ƒ~|{}|wqpv„Š‘ž«´¸µ°¦›™ ¤§¦¥£ŸŸœ•’’‘”››•Œ–¤¯²°¬¤”}ka\]__[XZ`eif_ZWSL?/" +     +ÿýÿüÿýÿýÿýÿþÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿýÿþÿÿÿÿÿÿÿÿÿÿÿÿÿýÿýÿÿÿÿÿþÿþÿýÿýÿüÿýÿþÿþÿþÿþÿÿÿÿÿÿÿþÿÿÿÿÿüÿýÿÿÿþÿüÿýÿüÿûÿýÿýÿúÿüÿþÿÿÿýÿþÿüÿûÿýÿÿÿÿÿÿÿýÿüÿÿÿþÿûÿýÿþÿýÿÿÿÿÿÿÿÿÿýÿüÿýÿüÿýÿýÿüÿýÿþÿþÿþÿüÿûÿýÿþÿýÿþÿþÿýÿýÿýÿüÿüÿýÿÿÿþÿý "!!$#"$(+*++*(*/322468=BCEHKNOOPQOPTUX\]\^abeiihikkkmljjmprwxwttx{~€€€„ˆ‰‹Š†‡ˆ†ƒ€€€‰’’’““ƒ~}|yxyzurt{‚†Œ“ ­µ¹·°¤›šŸŸœžŸ¤¤ž™š›–‘“™™“”›¤­°±°«ž‡re^ZZ[\[\aegf_XUUSL>-  + + + +  + +   ÿÿÿÿÿÿÿýÿýÿýÿýÿþÿþÿÿÿÿÿýÿÿÿÿÿÿÿÿÿÿÿþÿýÿþÿÿÿþÿþÿÿÿÿÿþÿÿÿÿÿýÿþÿÿÿÿÿÿÿýÿþÿýÿýÿÿÿýÿÿÿÿÿÿÿÿÿþÿþÿÿÿýÿûÿüÿýÿüÿýÿþÿüÿûÿýÿþÿýÿýÿýÿüÿûÿýÿþÿýÿþÿÿÿýÿýÿÿÿÿÿÿÿþÿüÿþÿÿÿþÿþÿÿÿÿÿþÿýÿþÿÿÿüÿûÿþÿÿÿþÿûÿûÿýÿýÿýÿþÿýÿúÿùÿúÿûÿüÿýÿýÿýÿþ    "$),,(&&(*.233359;=BCDDEHLMJLTWXZ]\\`adggdfjhefgffijlnpspovzyx{|~‚…†‹ŽŠ…†ˆ‡…‚~…‘‘‘‘‘‹|{yvsturrw~ƒ‰–¢­²¸¸¯£žŸ ˜˜™™Ÿ¦§£ ¤¤š’’—™––§­¯®®¬£yja\ZWXY[agjic[TRSPI=, + + + +   ÿþÿÿÿÿÿþÿþÿþÿÿÿÿÿÿÿÿÿþÿþÿþÿÿÿÿÿþÿþÿÿÿÿÿþÿþÿþÿþÿýÿüÿýÿÿÿþÿÿÿÿÿþÿÿÿþÿþÿýÿþÿÿÿþÿüÿýÿþÿþÿýÿþÿÿÿüÿúÿûÿýÿýÿýÿýÿýÿýÿþÿýÿýÿýÿýÿþÿÿÿþÿÿÿþÿûÿýÿÿÿÿÿÿÿþÿüÿüÿÿÿÿÿþÿþÿþÿþÿÿÿÿÿþÿýÿüÿüÿýÿúÿøÿúÿüÿûÿüÿýÿûÿûÿý +   !%)(%%%%&'-11/169;>>>>?BFHHJORTVYZ[\]_bdbcedbdedddddeionlpvxvwzz{~ƒˆ‹‰†……†‡„‚€€‡“’“’Žˆyxwuqoonqy†‹’™¤«¯µ´«£    œ——˜˜ž¥¤¢¥ªª£œžžŸ¦­¬¨¦£Ÿ•‚nd^ZXUTW\bghe`YSQQKD;+ +  + +  ÿþÿÿÿÿÿÿÿþÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿÿÿýÿýÿþÿÿÿÿÿÿÿýÿûÿýÿÿÿÿÿþÿÿÿÿÿÿÿþÿþÿþÿþÿýÿüÿþÿÿÿýÿýÿýÿþÿÿÿþÿüÿúÿúÿüÿýÿûÿüÿþÿüÿúÿýÿþÿýÿüÿýÿþÿþÿüÿüÿüÿýÿÿÿýÿûÿüÿþÿþÿýÿÿÿÿÿþÿÿÿþÿüÿýÿÿÿÿÿþÿýÿûÿúÿûÿûÿüÿþÿýÿýÿüÿûÿúÿûÿýÿÿÿþ + !!####%&'*.269;=<;;>BCCEHKMQTWYYZYZ\]^`_]_bcbbba`aglmlkowxvwvuw~„††‡‡„„‡ˆ‡……‹’’•”‘‰xwxwpjijs}…‹Ž”œ¤ª®²¯¦ ŸžžŸ™˜™šŸ£¡¡¥«¬­¯²°«¨¨©§¢›—…vib\YWSQU^bdd_ZTPPOI@6' + + +   +  ÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿþÿÿÿÿÿÿÿüÿýÿÿÿþÿþÿþÿÿÿýÿþÿÿÿþÿÿÿþÿÿÿÿÿÿÿýÿýÿþÿþÿþÿýÿýÿüÿýÿýÿüÿüÿüÿüÿýÿýÿüÿüÿüÿûÿýÿÿÿýÿüÿüÿýÿüÿüÿúÿûÿýÿüÿþÿþÿþÿþÿÿÿÿÿÿÿýÿýÿþÿþÿýÿýÿüÿûÿúÿüÿþÿþÿýÿüÿüÿýÿþÿýÿüÿüÿýÿÿ  +  ""$&$&-25789;<;=@ABDFGLQSTVVWYXVUW\[Z\^^_bba_agjlljkruvusqsy…ˆ…„…ˆ‰‰‹Ž“–”’‘Œ„|yxulfejv…‹•¥¬¯¯«¤ŸžŸ ™™šž   £¨¬µ½ÂÀ¹±©¢š“‘‘Šulfb]YVRPT[bdb_VMLNME<2& + + +     ÿþÿÿÿÿÿÿÿÿÿÿÿýÿþÿÿÿÿÿþÿÿÿÿÿþÿÿÿÿÿþÿþÿÿÿþÿÿÿÿÿÿÿþÿþÿþÿþÿþÿÿÿÿÿþÿüÿýÿÿÿþÿýÿüÿýÿþÿýÿýÿüÿýÿþÿÿÿýÿûÿüÿþÿÿÿþÿýÿüÿýÿýÿúÿøÿüÿÿÿþÿýÿüÿýÿÿÿÿÿþÿýÿÿÿÿÿþÿýÿýÿüÿýÿþÿþÿýÿþÿþÿýÿýÿÿÿÿÿþÿþ +   !"%))(*,15579;<===AFFFKPPNOPSWVSQSTTWYZ[^a`_^afgijkklostqqrvy{ƒ…„„ƒƒ‡ŠŽŽ“–“‘Œˆ{vqhdelv~„Š–¦¬¯¬§¢¡Ÿž¡£ š™™™™›ž¡¦¬¶½Á¿µ©”Š……ƒ{qkgda_\VSQRV^ba`WNMNJA:1' +  +  + + + + +  ÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿþÿþÿýÿÿÿÿÿÿÿÿÿÿÿÿÿþÿýÿýÿýÿþÿÿÿÿÿýÿýÿÿÿþÿþÿþÿþÿþÿþÿþÿüÿýÿýÿýÿýÿýÿþÿþÿýÿÿÿÿÿýÿüÿÿÿþÿúÿùÿýÿÿÿþÿÿÿÿÿûÿüÿþÿþÿýÿÿÿþÿþÿÿÿýÿýÿÿÿÿÿþÿþÿÿÿÿÿýÿýÿþÿýÿþÿÿÿÿ  !! !#'(*)(-13678:;;:=DEEHKJHGFKRTQOOMNSTUX\]\ZZ_bcdehjihnrpopstx}€ƒƒ……„‡Œ’•”’Œˆƒ{uohehnv}„‹‘–ž¥«¬¨¤¡££ ¡¥¦ ™˜–““–› ¦­²³±«ž‘‰ƒ}{yslgeba_]\XTSRTY^_]XRQPI?9/$ + + + + + + + + +  ÿÿÿÿÿÿ ÿþÿþÿÿÿþÿþÿþÿÿÿÿÿþÿÿÿÿÿÿÿýÿþÿÿÿþÿþÿÿÿÿÿþÿþÿÿÿÿÿÿÿýÿýÿýÿÿÿýÿüÿþÿÿÿÿÿÿÿÿÿÿÿþÿüÿýÿÿÿÿÿÿÿýÿûÿýÿþÿýÿýÿþÿþÿÿÿÿÿþÿüÿüÿþÿýÿûÿýÿÿÿýÿüÿÿÿýÿüÿþÿÿÿýÿýÿýÿýÿþÿÿÿýÿüÿýÿÿÿþÿþÿýÿýÿÿÿþÿýÿÿÿþÿþÿþÿýÿýÿÿÿÿÿýÿüÿþ +  !"!!$%&(+-.25645657>BCDFFDBAEMQOMMMNNNRVXYYVVZ\^`acggeinnlmoptx}ƒ‡Šˆˆ’‘’–—•‘Œ‡ƒ{snjjmqw}ƒŒ‘•¦«ª¦£¢¥§¤¢¥§ ™—”‘•š §¬«¤˜yvussphc`^]\[Z[WTSSTVYZZWTRNIA9." + + +  ÿÿÿÿÿÿÿÿÿþÿÿÿÿÿþÿÿÿÿÿÿÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿþÿýÿÿÿþÿþÿþÿÿÿÿÿÿÿÿÿþÿþÿÿÿÿÿýÿüÿþÿÿÿÿÿýÿýÿþÿÿÿÿÿþÿüÿüÿýÿþÿÿÿÿÿÿÿÿÿÿÿýÿûÿýÿþÿþÿýÿûÿýÿþÿþÿýÿþÿýÿþÿýÿúÿûÿþÿþÿýÿüÿýÿýÿýÿýÿþÿþÿýÿüÿýÿÿÿýÿþÿÿÿÿÿþÿÿÿÿÿþÿþÿýÿýÿÿ  +  !   &***-450/2348>ABCDBAACIMLIJLNLKPUTVZWUWYZ\_acfffikjhjosuzƒˆŒŒŠŽ‘‘“––•‘‹†‚ztomortx}‚ŠŽ’¨¬ª§¥¥§©¥Ÿ¡¥¡š–’“˜œŸ¤¤›~skijlllha][YXXXYZWSRRSSTTUUTRLHB9-"  + +  ÿÿÿÿÿÿÿþÿþÿþÿþÿÿÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿýÿþÿÿÿþÿÿÿÿÿþÿþÿÿÿýÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿþÿûÿûÿþÿýÿüÿýÿÿÿþÿýÿüÿþÿþÿüÿüÿýÿþÿýÿüÿüÿüÿýÿýÿüÿúÿúÿüÿýÿþÿýÿýÿþÿÿÿÿÿýÿüÿüÿýÿþÿýÿþÿÿÿÿÿÿÿÿÿþÿÿÿÿÿýÿüÿýÿÿ + +  ! $(++,01.-0446;?@@?>@CBDHIGFHKLLPTQRXYWWYXY\]_dgeefgefmuvz~…ŠŒŽŽ‘‘”“’Š…€zuqnruvy~ƒˆŒ‘žªª¨¨§§¨¤ž›Ÿ¢Ÿš•’‘•œžžœ“‚sicacdffd_YVUTTTVXXURQPSSQPPPSRMH@6,!   +   +  +ÿÿÿþÿÿÿÿÿþÿýÿþÿÿÿÿÿþÿÿÿÿÿþÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿýÿýÿþÿÿÿýÿþÿýÿþÿþÿþÿþÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿþÿþÿþÿÿÿÿÿûÿúÿÿÿüÿúÿûÿýÿÿÿÿÿþÿüÿüÿþÿýÿþÿþÿýÿüÿûÿüÿýÿýÿýÿýÿúÿúÿüÿýÿýÿüÿüÿþÿþÿþÿýÿüÿüÿÿÿÿÿÿÿÿÿþÿþÿÿÿÿÿþÿüÿüÿþÿÿÿÿ + + + !"$&%%),./.,*-2347:;<:8<@?@BDEEDGKNQTSQTVVUWXXWY\`eebadefkrv{~ƒ‡‰Œ’“’””’Ž‡„€xsqpswz~‚…ˆŒ’œ¦©¦¦¨¨¥˜š¡£ ›•’‘—œ˜}k_[YZ]_a^ZWRNMMOPTVTTTPNQPNNLKOPLG>4*   + + + ÿÿÿÿÿþÿþÿþÿÿÿþÿÿÿýÿþÿÿÿÿÿÿÿüÿýÿþÿþÿÿÿýÿÿÿÿÿÿÿþÿýÿýÿÿÿÿÿþÿýÿþÿÿÿÿÿÿÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿýÿþÿþÿþÿÿÿÿÿýÿüÿýÿüÿþÿÿÿþÿýÿüÿüÿûÿýÿÿÿþÿýÿüÿþÿþÿþÿýÿýÿþÿþÿþÿþÿýÿþÿûÿúÿþÿÿÿýÿüÿûÿüÿþÿýÿüÿþÿýÿûÿýÿÿÿþÿþÿÿÿÿÿþÿþÿÿÿÿÿþÿýÿþ + + + + !#&&##'.2/+'(,./2677658;<==>CDCDGKPSTSTUTSTUVTUY[`ccacehmquyz~ƒ…ˆŒŽŒ‘–––—”Ž†ƒ~vrrrru{€…‡ˆ‹’›¢§§¦¨§ ™•˜¡¢ž›—’“™š–k]VRQRSVYUONLHEGLNSURSUOJKKJJIHKLID<2)   ÿýÿûÿÿÿþÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿþÿÿÿÿÿþÿþÿþÿÿÿýÿüÿýÿþÿÿÿþÿþÿþÿÿÿþÿþÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿþÿÿÿþÿüÿýÿÿÿþÿþÿýÿûÿýÿÿÿüÿüÿüÿüÿþÿÿÿþÿýÿþÿþÿüÿýÿþÿÿÿÿÿÿÿþÿýÿúÿüÿþÿþÿþÿþÿýÿýÿþÿýÿüÿýÿúÿùÿýÿÿÿþÿüÿûÿüÿýÿþÿÿÿÿÿÿÿÿÿþÿýÿýÿþ    + !##"%.21.)%'+,-3764369;;9;@DCCEGJMOSX\]YTSSSVZ]_cggffjqtvwvy†‰ŒŽŽ‘•——–•Ž‡ƒ}xutsqty~…ˆ‡‰’£¦§¨©¦—•—ž———”—›–Žƒo^TNKLMLMPLHIHCAEKNQSQPRLFFEEFEDFHGA7/(  + + +  ÿþÿÿÿý ÿÿÿÿÿþÿþÿÿÿÿÿÿÿþÿþÿþÿÿÿÿÿÿÿÿÿýÿýÿÿÿÿÿþÿþÿÿÿÿÿþÿþÿþÿþÿÿÿÿÿÿÿýÿýÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿýÿþÿýÿüÿÿÿÿÿÿÿÿÿþÿýÿþÿýÿüÿýÿýÿþÿþÿüÿýÿÿÿþÿýÿþÿþÿýÿÿÿýÿýÿýÿýÿúÿúÿüÿþÿÿÿþÿüÿúÿûÿúÿúÿûÿüÿþÿÿÿüÿúÿûÿûÿýÿþÿÿÿþÿþÿþÿýÿÿ +  + +  "&((,011-(&(+-0355359;<88>CDDFEDEINXdh_USTY^bdfhknmkntvxywx†‹’•œ•“Žˆ„|zxuuxz{‡‡Š“ž£¤§ªª£š•”˜›—““’”˜š“ˆwcUKEDFGFGHFCDDA@EKLLLLKKGCBBBBAACCC@5+%  +  ÿÿÿÿÿþÿÿÿÿÿýÿÿÿÿÿÿÿÿÿÿÿýÿÿÿÿÿþÿþÿÿÿÿÿÿÿÿÿÿÿÿÿýÿüÿþÿþÿÿÿÿÿþÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿüÿþÿÿÿÿÿÿÿÿÿÿÿÿÿýÿþÿþÿþÿÿÿþÿþÿýÿþÿÿÿþÿýÿýÿüÿýÿþÿýÿþÿÿÿüÿýÿþÿûÿûÿüÿþÿÿÿýÿþÿÿÿýÿýÿþÿýÿüÿûÿûÿüÿþÿÿÿýÿûÿùÿùÿûÿüÿûÿýÿþÿüÿûÿüÿþÿþÿýÿýÿÿ  + +   &+,,,.11.++-00037779<=98=ABDDB?AEJS`bYSTY_hlnnmnstrrvy{yx|‚†‹’’” Ÿ“‰„}xy~~}‚ˆ‹Ž”¢¢¦«©¡™–•™›–““’•”€mZNE?=>=>AB?>@@>@FJHFGGEDB@A@??==>=>=3*& +ÿÿÿþÿýÿýÿþÿÿÿÿÿþÿýÿÿÿÿÿÿÿÿÿþÿÿÿýÿþÿþÿÿÿþÿþÿÿÿÿÿýÿýÿÿÿÿÿþÿþÿÿÿÿÿÿÿÿÿÿÿþÿýÿþÿÿÿÿÿþÿþÿÿÿÿÿÿÿÿÿþÿÿÿÿÿþÿÿÿþÿþÿÿÿýÿýÿýÿýÿþÿýÿüÿþÿÿÿÿÿÿÿþÿýÿüÿýÿÿÿÿÿÿÿþÿûÿúÿþÿÿÿÿÿþÿþÿüÿüÿýÿýÿûÿûÿýÿÿÿþÿÿÿýÿùÿøÿúÿüÿýÿþÿýÿûÿüÿýÿþÿÿÿÿÿÿÿÿÿÿÿÿ + + + + + %+,++.1221112457;;;<;;=@?>@B@?BGIOUVSPT\aipstqqv{zvw}€}{€†ˆŠ•–’‘£¦”‹†ƒ„„€}}€ƒˆ‹”˜Ÿ£¢¤©ª£œš˜šœ—”“‘’‘ŒƒveTJB;:857<;9:::<@FGCBDB?>>=?><<;:;986/)(" + ÿÿÿÿÿÿÿÿÿþÿýÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿþÿÿÿÿÿÿÿÿÿýÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿþÿüÿþÿÿÿÿÿþÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿþÿþÿÿÿþÿýÿþÿþÿûÿüÿÿÿÿÿýÿüÿýÿýÿÿÿþÿþÿÿÿþÿþÿýÿùÿúÿüÿýÿýÿüÿüÿüÿûÿýÿþÿÿÿþÿúÿøÿûÿýÿþÿþÿþÿþÿýÿýÿüÿûÿþÿÿÿþÿþÿþÿþÿÿ + + $+..,-010..0589<?@=:;>BA?@BBCGIHJOTTQS[ahouvuwy~~zy|€‚€‚†‡‰—˜—“žÏקŽŽŒˆ†„‚‚‡‹”™œ¡£¢¤¨ª¤ žœ˜””“’‡{jZNE?;:756753667;?BA>?@=;;::;98:;;9620+%#  + ÿÿÿÿÿþÿþÿÿÿýÿþÿýÿþÿÿÿÿÿÿÿþÿýÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿýÿÿÿþÿþÿýÿþÿþÿþÿÿÿÿÿýÿýÿÿÿþÿþÿÿÿÿÿÿÿþÿÿÿþÿþÿýÿÿÿÿÿÿÿþÿþÿÿÿÿÿÿÿþÿûÿúÿýÿþÿüÿüÿÿÿÿÿÿÿýÿùÿúÿýÿýÿþÿþÿýÿýÿüÿúÿúÿýÿýÿúÿ÷ÿúÿýÿþÿýÿýÿüÿüÿþÿýÿûÿûÿüÿýÿýÿþÿýÿþÿþÿÿÿÿÿþ  +  (./,+,+*)*,/48<?AA=:;?ABEECEIIFHNUVTV\bhnux{}|{€‚„…‰•™™—¸½“‘‹…ƒ‚ƒ…„„ˆŒ–Ÿ  ¡¤¦¤žŸŸ›–””“ŠƒuaRIC?<:74331/1469=>;9;;767788537:974/+'! +  ÿÿÿÿÿÿÿÿÿþÿÿÿÿÿþÿÿÿþÿýÿýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿþÿýÿþÿÿÿþÿÿÿþÿÿÿÿÿÿÿþÿÿÿÿÿþÿþÿþÿÿÿÿÿþÿÿÿÿÿÿÿÿÿþÿþÿÿÿþÿþÿþÿþÿýÿûÿýÿýÿúÿûÿýÿüÿüÿÿÿÿÿþÿüÿýÿþÿþÿþÿÿÿÿÿýÿûÿúÿûÿþÿÿÿýÿûÿûÿüÿûÿüÿýÿûÿüÿüÿùÿùÿüÿýÿûÿûÿûÿýÿþÿûÿüÿÿÿþÿúÿùÿüÿþ   $')*,.+***)+.38;>AA=;<<?EGCCJLIJQWXX[_ekqw|ƒ‰‰…}}~…‰Ž‘–˜œ»èä´—•–ƒ‚……†ˆˆ‡Š’—žžŸ¢¡›—šœš”Šƒ|o]PGB>9630.//-0578<<97762002553037532.'"  ÿÿÿÿÿþÿþÿÿÿþÿÿÿÿÿÿÿþÿþÿÿÿýÿýÿþÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿýÿýÿÿÿþÿýÿýÿÿÿÿÿþÿþÿÿÿþÿþÿýÿÿÿÿÿÿÿÿÿÿÿýÿüÿÿÿþÿÿÿüÿùÿúÿúÿúÿüÿÿÿýÿýÿþÿÿÿþÿûÿúÿüÿýÿÿÿýÿûÿüÿýÿÿÿýÿûÿûÿýÿûÿùÿûÿüÿüÿüÿûÿúÿýÿýÿûÿýÿÿÿüÿúÿûÿüÿÿ + +  !#$&+/--/--...49:=@@=<;;@CBDKQQPU]`bcejpu}ƒ‹‘‰‚„ƒ„…„ˆ‘‘”šž¦©¤œ——˜ƒ†‰Š‹Œ‹Œ‘“—œ›œ™•”—š™–‹‹‰‡„}ugZOC<8530-+,..1699<=:7530,+-.///15420*$ +ÿþÿþÿýÿþÿÿÿýÿþÿÿÿÿÿýÿþÿýÿÿÿÿÿýÿüÿüÿþÿþÿþÿÿÿþÿþÿþÿýÿþÿþÿýÿþÿÿÿÿÿþÿÿÿþÿþÿþÿýÿþÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿýÿþÿÿÿÿÿÿÿþÿÿÿýÿýÿþÿûÿúÿúÿúÿü +ÿÿÿÿÿÿÿþÿýÿýÿþÿýÿüÿüÿýÿýÿüÿýÿÿÿÿÿýÿþÿþÿüÿúÿûÿüÿûÿûÿüÿýÿýÿûÿúÿûÿûÿûÿüÿþÿþÿýÿýÿýÿþÿÿÿþÿýÿþÿþÿÿ  ""#(*)+00./..28:9<=;;;;>@BFNTXWX^fknnpuz‚‡“’ˆ‡Œ‹ŒŒ“™œœš–•———•‡‚…ŒŽŽ‘’•šš›œš—”’’”•“’‰†„„€xo`TJ>5322/+*+,/258:=?<8640+(((()-0331.'" + +  ÿÿÿÿÿþÿüÿüÿüÿýÿÿÿÿÿþÿþÿþÿÿÿýÿþÿÿÿÿÿþÿÿÿÿÿþÿýÿýÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿþÿþÿÿÿþÿÿÿÿÿÿÿÿÿýÿþÿÿÿÿÿþÿÿÿÿÿþÿÿÿÿÿÿÿþÿÿÿÿÿþÿýÿûÿüÿýÿþÿÿÿþÿüÿýÿþÿüÿúÿûÿýÿÿ ÿþÿüÿýÿÿÿüÿýÿýÿýÿþÿüÿûÿüÿüÿüÿýÿýÿþÿþÿüÿúÿùÿúÿúÿúÿûÿüÿþÿþÿúÿøÿúÿúÿúÿúÿûÿþÿþÿûÿüÿÿÿþÿûÿûÿüÿüÿÿ   +  #$$#'-.**+,.466799868=??DLSWXW[ckpqrv}„†Š‘Œ’’ŽŒ‹•žžžœžŸ™”ˆˆŽ‘‘Ž“—™›š•‘ŽŽŠ„€}~{rgZND9200.,*)*+.1359=>:6530+&%&&(-000/+&#   + ÿúÿþÿÿÿþÿÿÿýÿýÿýÿýÿÿÿþÿþÿÿÿÿÿÿÿþÿüÿÿÿÿÿþÿþÿÿÿýÿÿÿýÿýÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿþÿýÿþÿÿÿÿÿÿÿÿÿþÿþÿþÿþÿþÿÿÿÿÿþÿÿÿþÿûÿüÿýÿûÿýÿýÿþÿþÿüÿûÿýÿÿ ÿýÿûÿþÿþÿüÿýÿýÿüÿþÿþÿûÿûÿýÿýÿýÿþÿþÿýÿûÿûÿúÿúÿûÿúÿúÿüÿýÿüÿûÿùÿøÿøÿùÿøÿøÿùÿúÿüÿýÿûÿûÿýÿýÿüÿûÿý    "!!$')*)(+--,/344325779=BIOQTV[bfikpy‚ƒ„‰ŽŽŽ‘’‘Ž‹‹Œ‹‹Œ–ž ¡¡ ¡¤ž—“’’‘“’’‘‘‘“—˜˜”Ž‹ˆ‡‰‰……‡ƒ}yvvtj^SI?61//,)*)''*-025896210-)%$'(+/0/.+'$#   + ÿýÿÿÿýÿþÿþÿþÿþÿþÿþÿþÿýÿþÿýÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿÿÿþÿÿÿÿÿÿÿþÿþÿÿÿÿÿþÿüÿýÿþÿþÿþÿþÿÿÿþÿÿÿÿÿþÿÿÿÿÿÿÿþÿþÿÿÿÿÿþÿÿÿÿÿýÿýÿÿÿþÿÿÿýÿýÿÿÿüÿÿÿýÿÿÿþÿüÿýÿüÿûÿûÿüÿÿÿÿÿûÿùÿûÿûÿûÿúÿúÿüÿýÿûÿúÿúÿùÿùÿüÿûÿøÿùÿúÿøÿúÿüÿûÿýÿþÿüÿûÿýÿÿÿÿÿþ  "(++,.-)*/-*+-11/378=DIMPTY\]`enx{|‚‰‹ŒŽ‘Š‡…‡ŠŒ“›  Ÿ£££¥ ˜””–˜˜”‘“”˜š™•Žˆ„€„ƒ}xuromjcXMC:420/,)*'""&),-.153.-+'%$$()+...-($"   + + ÿÿÿÿÿýÿþÿþÿþÿþÿþÿÿÿÿÿþÿþÿýÿýÿÿÿþÿýÿÿÿþÿþÿÿÿÿÿýÿýÿÿÿþÿÿÿýÿþÿÿÿÿÿþÿÿÿþÿþÿþÿÿÿþÿýÿÿÿÿÿþÿýÿýÿÿÿÿÿþÿþÿüÿýÿÿÿÿÿþÿÿÿÿÿÿÿþÿÿÿÿÿÿÿýÿûÿþÿýÿüÿþÿüÿúÿûÿþÿÿÿýÿüÿûÿûÿûÿùÿùÿøÿúÿýÿüÿúÿúÿúÿùÿûÿþÿýÿúÿúÿûÿûÿúÿøÿûÿþÿüÿûÿýÿþÿþÿüÿþ +  !! '+,,.-,-)%%)./-.147:?EIMRTUW[blqtx}…ˆŒŒŠˆ„€|…ˆ”šœ£¦¦¥Ÿ–’’“—˜•‘ŽŽ’”˜ŸŸ›—Ž‡}}|zunmmjea]UJ?742.,*)(##'))*,22,)&"!#$'),-,+*&#! +ÿÿ ÿÿÿÿÿýÿýÿþÿþÿÿÿÿÿýÿþÿÿÿÿÿýÿþÿÿÿÿÿþÿýÿþÿýÿþÿÿÿÿÿþÿýÿþÿþÿþÿÿÿýÿÿÿÿÿþÿþÿÿÿÿÿþÿÿÿýÿÿÿýÿÿÿþÿÿÿÿÿÿÿúÿûÿÿÿþÿýÿÿÿÿÿþÿÿÿÿÿÿÿþÿüÿýÿþÿýÿÿÿþÿýÿþÿþÿûÿüÿüÿüÿûÿýÿúÿûÿûÿûÿûÿúÿúÿúÿüÿüÿúÿúÿùÿúÿýÿþÿüÿûÿûÿûÿüÿýÿýÿüÿûÿùÿúÿþÿþÿûÿûÿýÿþÿÿÿÿ + + +  + +-'#'*)(*--*('(./-+,0434;@DHJNSV[bgkmmry~„„‚€|ywwz†Š–›Ÿ¢¤£–’‘”““’‘”–›¢£ ›‘‰„€~|yuojgee_\ZSH=862-**'#  %()+,,00+'$ #%&+/,**(#!   ÿþÿÿ +ÿýÿþÿÿÿÿÿÿÿþÿýÿþÿÿÿÿÿþÿÿÿþÿýÿþÿþÿþÿþÿþÿÿÿþÿÿÿÿÿÿÿþÿýÿÿÿÿÿýÿÿÿÿÿÿÿþÿýÿÿÿÿÿÿÿþÿÿÿÿÿýÿýÿþÿþÿþÿýÿüÿþÿÿÿüÿüÿþÿýÿþÿþÿþÿýÿýÿüÿûÿþÿüÿûÿýÿÿÿýÿúÿüÿüÿûÿüÿýÿþÿûÿúÿùÿùÿùÿùÿûÿýÿüÿúÿúÿûÿüÿûÿúÿýÿÿÿýÿûÿýÿþÿýÿûÿüÿüÿýÿþÿþÿþÿÿÿÿÿÿÿÿ +   !,#!$()&#"$()**+./,*)+.--148=@ELPUZ^decfouyzywvuusps{}Œ•š  œ–’‘‘Ž’““”—£¥£œ“‹ˆ„}wtrmg`^_ZXWRG<872..,'#""%+--00--.+(" $%(-.*))%!  +   +ÿþÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿÿÿþÿþÿþÿÿÿþÿþÿýÿþÿÿÿýÿýÿþÿÿÿÿÿÿÿþÿþÿÿÿÿÿÿÿþÿþÿÿÿÿÿÿÿþÿýÿþÿþÿÿÿÿÿþÿÿÿÿÿþÿþÿÿÿþÿÿÿþÿýÿþÿýÿýÿÿÿÿÿüÿýÿÿÿÿÿýÿùÿúÿþÿþÿýÿýÿýÿýÿúÿüÿþÿúÿùÿùÿùÿùÿúÿùÿøÿøÿúÿüÿýÿüÿûÿúÿúÿüÿÿÿÿÿüÿüÿýÿûÿúÿûÿûÿûÿüÿþÿÿÿýÿûÿûÿüÿþÿÿ +     #&&#"!&)**+,+)()+))**.38=?AIRW\`_bhmorqooopokkops~‰’–š›–Œ‹ŠŒ‘–•“–¡£¡š”’‘‹ƒzrnmibZXZUQPMF;65310/*''(,01221.,,)$ #%',-)''%! + + + + + ÿýÿý ÿþÿýÿÿÿÿÿÿÿþÿÿÿþÿýÿüÿþÿÿÿûÿþÿüÿþÿþÿüÿÿÿþÿýÿþÿþÿÿÿÿÿþÿÿÿÿÿýÿÿÿÿÿÿÿþÿþÿÿÿýÿþÿþÿþÿþÿþÿÿÿýÿþÿÿÿÿÿÿÿÿÿþÿýÿþÿþÿÿÿÿÿÿÿþÿüÿýÿüÿüÿÿÿþÿþÿþÿýÿýÿþÿüÿûÿÿÿþÿýÿÿÿÿÿþÿþÿüÿúÿûÿûÿýÿýÿúÿøÿ÷ÿ÷ÿøÿùÿûÿúÿûÿûÿûÿúÿúÿûÿúÿøÿøÿúÿùÿøÿøÿùÿûÿüÿüÿüÿüÿýÿÿÿþÿüÿüÿÿÿÿÿÿ  +   + "  !''&('%&(((('&'')0655<GQY^_`cgkkihgfggffghms{…Š••–‘Š‰Š‰Š••“”™›œ™–”‘‡|tnjgd_WTVQLHE@733320/-,,.113651.--& !%'*.-($#! +   ÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿþÿüÿûÿýÿÿÿÿÿÿÿÿÿûÿýÿÿÿÿÿþÿýÿýÿÿÿÿÿýÿýÿýÿýÿþÿþÿþÿÿÿþÿÿÿþÿÿÿÿÿÿÿýÿþÿþÿüÿýÿÿÿýÿÿÿýÿüÿÿÿÿÿþÿþÿÿÿþÿÿÿÿÿþÿÿÿÿÿýÿþÿþÿÿÿþÿÿÿþÿÿÿþÿüÿüÿýÿþÿþÿýÿþÿÿÿÿÿÿÿüÿüÿýÿýÿûÿûÿùÿùÿúÿúÿüÿûÿùÿúÿüÿûÿúÿüÿûÿ÷ÿøÿùÿúÿùÿ÷ÿ÷ÿùÿûÿûÿûÿøÿùÿýÿÿÿÿÿþÿþÿýÿüÿÿ + +  + !!!$#!''$$%%%$$).136<HTZZ\`dhhfeba``acdfilpx~„ˆ”•ŒŠ‰ŠŒŽŽ’••“ŽŠ€tnlgcb]VQPNIC?:20222///..0104740..-%  $&+-+'"  + +ÿÿÿÿ + +ÿý +ÿÿÿÿÿÿÿûÿÿÿÿÿÿÿÿÿþÿÿÿþÿüÿýÿÿÿþÿþÿÿÿüÿýÿÿÿþÿþÿÿÿþÿþÿýÿýÿÿÿÿÿþÿýÿþÿÿÿÿÿüÿþÿýÿþÿþÿþÿÿÿþÿÿÿÿÿþÿÿÿýÿýÿÿÿÿÿüÿüÿþÿÿÿþÿþÿÿÿÿÿýÿúÿûÿÿÿýÿþÿÿÿþÿþÿþÿýÿÿÿÿÿþÿýÿþÿýÿþÿÿÿûÿûÿýÿþÿþÿýÿýÿÿÿþÿýÿÿÿüÿúÿúÿüÿýÿýÿüÿüÿýÿüÿúÿûÿûÿúÿûÿûÿùÿùÿûÿúÿûÿûÿùÿùÿûÿúÿøÿùÿøÿùÿúÿûÿûÿýÿýÿüÿýÿÿ +  + + + +  +  !$&! ""#$$'*.356;GPRV]adghea_]\_bcdfhkpv|„Œ‘”“Œ‰…ƒ‡…‚†ˆ‹Š‡ƒ€wnkiecc]VPLID?<70./11//00/0/0350,,*(&"!##&(&#"!  + + + ÿÿÿüÿÿ  +ÿÿÿþÿÿÿþÿþÿþÿÿÿÿÿÿÿÿÿýÿüÿÿÿþÿþÿÿÿÿÿÿÿþÿÿÿýÿÿÿÿÿþÿÿÿÿÿüÿýÿÿÿýÿüÿþÿþÿÿÿÿÿþÿþÿþÿýÿÿÿÿÿýÿûÿþÿûÿüÿþÿÿÿýÿþÿüÿùÿüÿÿÿýÿÿÿþÿÿÿþÿÿÿþÿýÿþÿþÿýÿÿÿûÿúÿûÿüÿþÿÿÿüÿüÿþÿûÿûÿýÿüÿüÿÿÿþÿüÿûÿüÿüÿúÿúÿûÿýÿþÿþÿûÿùÿûÿüÿúÿøÿøÿùÿúÿúÿùÿùÿúÿüÿýÿüÿúÿûÿûÿúÿýÿüÿúÿùÿùÿúÿýÿÿÿÿ   +   ""  %&(*-/2217BINW\aegd^]\[`dcbdgjnsvy‚†’‘Œ†}|€{~€{xumgigba`ZRJEB=9750-,.0..//.0/034-(*&#%$!"#""##   + ÿüÿþÿÿ + + ÿþÿþÿûÿüÿÿÿýÿýÿÿÿýÿüÿþÿþÿýÿÿÿþÿüÿüÿÿÿýÿýÿÿÿÿÿÿÿÿÿþÿÿÿþÿþÿüÿÿÿÿÿþÿýÿüÿýÿþÿÿÿüÿýÿüÿÿÿÿÿþÿÿÿýÿýÿüÿùÿûÿÿÿÿÿüÿûÿûÿÿÿÿÿúÿüÿÿÿýÿúÿýÿüÿúÿþÿýÿúÿúÿûÿùÿøÿ÷ÿúÿþÿþÿûÿ÷ÿøÿüÿüÿùÿùÿùÿùÿùÿúÿúÿúÿúÿûÿúÿøÿùÿûÿûÿüÿþÿýÿüÿûÿûÿûÿüÿÿÿÿÿÿÿþÿþÿþ + + +     "$')*,,,07>FNT[aa`\[\]aed`aehmoosyyx€…ˆŒ…}y{{yyxxywrlgeeb]\YTKA><9521-+,-..-+**-/132)$&$ #&""%$"!  +  ÿÿÿýÿþÿÿÿÿÿýÿÿÿýÿý ÿÿÿÿÿÿÿþÿÿÿÿÿþÿûÿþÿþÿüÿýÿÿÿþÿÿÿþÿýÿÿÿÿÿþÿÿÿÿÿþÿÿÿÿÿÿÿÿÿþÿþÿÿÿÿÿþÿÿÿÿÿýÿüÿúÿÿÿýÿÿÿüÿüÿÿÿýÿûÿúÿýÿÿÿþÿþÿþÿþÿÿÿûÿúÿÿÿþÿùÿûÿýÿûÿüÿüÿþÿþÿûÿùÿùÿûÿûÿùÿùÿùÿøÿûÿýÿùÿùÿúÿùÿøÿùÿúÿûÿüÿúÿ÷ÿõÿöÿøÿ÷ÿùÿüÿüÿúÿûÿýÿþÿýÿýÿþÿþÿþÿþÿþÿþÿþÿÿÿÿÿÿ + +  +  #&(*.15>DIRYY[[XY\^aba``agjjmonlosyƒƒ}xtuxwwusttnhfea[VURME;9961.,))**,-)'&%',11,$!!"% %$    + ÿÿÿþÿù  ÿýÿþÿÿÿýÿÿÿÿ ÿÿÿÿÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿýÿüÿýÿüÿþÿþÿþÿÿÿÿÿþÿýÿþÿýÿýÿÿÿÿÿþÿþÿýÿþÿÿÿÿÿýÿþÿÿÿüÿüÿÿÿþÿýÿûÿüÿþÿûÿÿÿüÿüÿÿÿÿÿþÿÿÿþÿýÿüÿüÿþÿþÿþÿýÿþÿýÿüÿüÿþÿúÿ÷ÿúÿúÿûÿýÿúÿùÿøÿöÿõÿøÿùÿøÿùÿúÿùÿúÿúÿùÿùÿøÿùÿúÿûÿúÿúÿüÿûÿüÿþÿþÿûÿüÿýÿýÿüÿýÿÿ +  + !%)*+/69>HPRVXTSVXZ]``^]`bfjgddeflvwutqprsusnlkhed`[TPOJE@9762.*))'$%)*&$$$$(,+&! "" + + ÿýÿÿÿ÷ÿùÿÿ ÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿÿÿþÿÿÿÿÿýÿþÿüÿüÿþÿÿÿþÿýÿþÿþÿÿÿýÿýÿÿÿþÿÿÿÿÿþÿþÿÿÿÿÿÿÿþÿÿÿÿÿüÿùÿþÿþÿüÿûÿýÿÿÿÿÿüÿüÿÿÿþÿýÿýÿþÿÿÿüÿüÿûÿúÿûÿüÿûÿûÿûÿýÿýÿûÿüÿúÿùÿùÿ÷ÿ÷ÿúÿúÿúÿúÿùÿùÿùÿûÿýÿüÿùÿøÿøÿúÿýÿüÿûÿúÿúÿüÿþÿýÿúÿùÿûÿüÿûÿý  +  + "#&&&).2:AGJOQNNOPSVZ^`_^_adb_`aabilmpqmkmpngcb__^XSNLJD?:642/+'')& %&$%%$#$'&!  +  + +ÿÿÿþÿÿ ÿÿ ÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿýÿûÿþÿÿÿÿÿÿÿþÿýÿÿÿþÿüÿþÿÿÿÿÿýÿýÿ÷ÿùÿýÿýÿüÿþÿþÿÿÿÿÿüÿýÿüÿüÿÿÿýÿüÿþÿÿÿþÿüÿýÿüÿúÿùÿüÿýÿûÿùÿüÿüÿøÿøÿøÿöÿùÿþÿþÿýÿûÿúÿüÿüÿúÿúÿüÿûÿùÿùÿûÿýÿûÿúÿúÿûÿûÿûÿüÿúÿùÿûÿûÿüÿýÿÿ  + +  + !%%$%&(+16;?BHLJIKLKNU[^^]__`_\\][Z_cfmqjeggea_]WVWQKGGD=8641,+(%%&$ "!!$%" """     ÿÿ ÿÿÿÿÿüÿþÿþÿÿÿþÿýÿûÿüÿþÿþÿþÿüÿýÿÿÿþÿüÿÿÿýÿüÿþÿÿÿþÿÿÿÿÿüÿþÿÿÿýÿýÿüÿþÿÿÿüÿúÿþÿÿÿÿÿÿÿûÿûÿþÿýÿûÿÿÿÿÿýÿþÿþÿÿÿþÿüÿþÿüÿøÿùÿýÿüÿùÿøÿúÿûÿûÿýÿÿÿüÿùÿùÿüÿþÿýÿûÿúÿûÿüÿüÿýÿúÿøÿúÿüÿúÿùÿùÿúÿúÿûÿûÿúÿüÿýÿüÿýÿýÿþ +   + !#&(&%),.024:?EHFEFFFHPVXY[^_``\XWVV[_bjohab`]^][SOOMF@@;4222.(%%#!!! ! ## !" + +    + + +ÿÿÿûÿüÿÿÿþÿþÿûÿýÿþÿÿÿýÿþÿþÿýÿþÿÿÿÿÿÿÿýÿüÿýÿÿÿÿÿÿÿüÿþÿÿÿþÿþÿÿÿÿÿþÿüÿÿÿþÿýÿÿÿÿÿÿÿþÿûÿúÿûÿÿÿÿÿùÿùÿüÿÿÿýÿûÿûÿûÿýÿýÿøÿøÿúÿþÿþÿþÿýÿýÿýÿýÿûÿùÿùÿüÿþÿûÿùÿúÿøÿøÿüÿýÿûÿøÿøÿúÿüÿûÿøÿùÿûÿûÿùÿøÿúÿúÿúÿúÿúÿûÿýÿüÿúÿûÿüÿþÿÿÿÿÿþÿýÿÿ     $&%$',.//06=ABAA??BDFNTVY]_ac`YTSUZ\^dkf_^[XXWVNHFD@<;60.//+&###$!!     +  +ÿý + ÿÿÿþÿýÿþÿÿÿÿÿÿÿýÿþÿýÿüÿþÿþÿýÿüÿþÿÿÿüÿÿÿÿÿýÿÿÿþÿÿÿýÿýÿÿÿþÿÿÿþÿýÿÿÿÿÿÿÿþÿýÿøÿ÷ÿÿÿÿÿüÿøÿûÿþÿùÿ÷ÿöÿýÿÿÿÿÿûÿöÿ÷ÿûÿýÿûÿýÿÿÿþÿûÿýÿûÿùÿúÿüÿüÿÿÿþÿúÿúÿüÿûÿûÿüÿûÿúÿøÿùÿùÿùÿøÿøÿúÿûÿøÿøÿúÿúÿùÿøÿøÿùÿùÿûÿûÿúÿüÿýÿýÿýÿþÿüÿüÿþ   !"$%(*,-048<<=:7;>>EOSTY\]`a[TUWXWX]a`\ZUROMLIB;87785/,-,(%$## "!  +ÿÿÿÿ +   +  ÿÿÿýÿþÿÿÿýÿþÿþÿýÿýÿÿÿýÿÿÿþÿþÿÿÿýÿÿÿýÿýÿþÿýÿÿÿþÿÿÿüÿÿÿÿÿÿÿþÿÿÿÿÿýÿýÿþÿÿÿþÿÿÿþÿÿÿÿÿüÿùÿýÿþÿùÿûÿÿÿûÿøÿöÿøÿþÿýÿüÿüÿüÿþÿþÿýÿúÿ÷ÿûÿÿÿÿÿüÿûÿüÿþÿÿÿÿÿýÿúÿúÿýÿýÿüÿûÿûÿûÿüÿýÿþÿüÿùÿùÿúÿúÿùÿ÷ÿùÿûÿûÿûÿûÿùÿ÷ÿöÿøÿøÿ÷ÿøÿúÿûÿüÿýÿüÿúÿüÿüÿýÿþÿÿÿÿÿÿ      "!!$'(').379747::?FLNQVXZ]\XWVTRTUUUTSNIGDDB:311232-***'#"""!! + + ÿÿÿÿÿÿÿþ    ÿÿÿþÿüÿüÿþÿÿÿÿÿÿÿýÿüÿÿÿþÿÿÿÿÿÿÿþÿÿÿüÿþÿþÿÿÿþÿýÿþÿÿÿüÿüÿÿÿÿÿýÿþÿþÿÿÿÿÿÿÿÿÿýÿþÿþÿýÿùÿúÿþÿûÿûÿýÿþÿûÿúÿúÿýÿüÿûÿûÿùÿõÿöÿüÿýÿûÿüÿÿÿÿÿýÿýÿüÿûÿûÿþÿüÿúÿûÿúÿûÿüÿýÿüÿøÿ÷ÿüÿÿÿúÿöÿúÿþÿýÿüÿùÿ÷ÿùÿúÿúÿùÿùÿûÿüÿûÿùÿúÿûÿúÿúÿúÿýÿþÿþÿþÿÿÿÿÿþÿÿÿÿÿÿ   + +   "!"',25436878;AGJNSWXY[YVTSQPMKIHDA@><91+,...-*'(+)"!%! ! + + ÿÿÿÿÿÿÿÿÿû +ÿþ + +ÿÿÿüÿÿÿýÿüÿÿÿÿÿþÿÿÿÿÿýÿÿÿþÿþÿþÿýÿüÿýÿÿÿþÿÿÿþÿþÿþÿÿÿÿÿýÿÿÿýÿúÿýÿÿÿþÿÿÿþÿþÿÿÿþÿÿÿÿ ÿþÿþÿýÿùÿúÿýÿþÿûÿýÿþÿþÿüÿ÷ÿõÿùÿùÿõÿöÿúÿüÿüÿüÿýÿüÿüÿüÿùÿ÷ÿúÿýÿÿÿþÿúÿúÿþÿýÿüÿúÿùÿùÿùÿúÿüÿþÿûÿûÿþÿþÿüÿûÿ÷ÿ÷ÿúÿûÿûÿúÿûÿýÿüÿúÿúÿûÿúÿúÿúÿúÿûÿûÿûÿýÿþÿÿÿÿÿÿÿýÿþ  + + "%+10.141149?AELSTTWWVVTPKHD@><;:63/(%')**+*'),)!#'"! !"  + + + ÿÿÿÿÿÿÿÿÿûÿ÷ÿÿÿÿ + ÿÿÿýÿþÿÿÿýÿÿÿþÿþ +ÿþÿþÿýÿýÿýÿþÿüÿûÿýÿÿÿýÿýÿþÿÿÿÿÿÿÿýÿúÿúÿýÿýÿÿ ÿýÿþÿýÿÿÿþÿþÿûÿüÿþÿöÿùÿýÿûÿûÿüÿúÿÿÿüÿþÿúÿøÿùÿûÿûÿúÿúÿüÿþÿøÿ÷ÿúÿûÿýÿýÿûÿùÿûÿýÿüÿûÿûÿûÿüÿþÿüÿûÿúÿüÿþÿûÿúÿúÿûÿüÿüÿýÿüÿûÿúÿøÿùÿüÿüÿúÿúÿúÿùÿüÿýÿûÿûÿüÿýÿûÿúÿúÿüÿþÿÿÿþÿýÿþ  + +  + +  +  "()'),+,0698;CJMNRSSTQMGB?<::72.,(##$$%&(*))+'##''# "$!"! !    ÿÿÿÿÿÿÿÿ ÿýÿøÿô  +ÿÿÿþ +ÿüÿÿ +ÿÿ +ÿüÿüÿýÿýÿýÿþÿüÿûÿÿÿþÿüÿüÿÿÿýÿùÿúÿýÿýÿþÿþÿÿÿþÿýÿÿÿÿÿÿ +ÿÿÿþÿÿÿÿÿþÿýÿøÿ÷ÿýÿþÿüÿûÿûÿþÿýÿýÿþÿüÿûÿþÿÿÿýÿúÿýÿúÿûÿþÿýÿûÿýÿþÿüÿùÿøÿúÿúÿüÿþÿýÿùÿ÷ÿùÿüÿýÿþÿüÿøÿøÿüÿýÿýÿüÿüÿüÿûÿûÿùÿùÿûÿûÿüÿüÿûÿùÿøÿúÿüÿýÿûÿûÿúÿúÿûÿûÿüÿýÿþÿÿÿþÿþÿýÿüÿþÿÿÿþÿÿÿÿÿþ + + + + +  +  #%&'&'+2645<@CIPQPLHHE?;:994-+*%"$""##%'()*&&*+%"$'%! $%"!!  + ÿÿÿÿÿÿÿþ ÿûÿøÿû   ÿûÿùÿþÿýÿþÿüÿüÿÿÿÿÿûÿüÿÿÿýÿúÿÿÿþÿþÿþÿÿÿÿÿüÿþÿþÿþÿûÿþÿûÿöÿüÿúÿüÿÿÿþÿþÿûÿúÿþÿýÿúÿøÿøÿùÿùÿùÿúÿúÿùÿúÿûÿüÿýÿýÿþÿüÿúÿúÿüÿüÿûÿûÿûÿùÿúÿûÿûÿýÿþÿýÿýÿûÿøÿ÷ÿøÿúÿûÿýÿýÿûÿüÿüÿüÿûÿûÿüÿþÿþÿþÿþÿýÿýÿÿÿþÿýÿþÿþÿýÿÿ +  +  +  %((#!%,44258;CLPMF@BB;66661,-,'&%"#$##%(**'*//(#(+&""%$! !   + + + ÿÿÿýÿûÿþ ÿÿ  ÿþÿÿÿÿ ÿþÿýÿýÿÿ ÿþÿü ÿÿÿÿ ÿÿÿýÿþÿÿÿýÿþÿÿÿüÿúÿÿÿüÿüÿÿÿõÿ÷ +ÿúÿüÿÿÿÿÿÿÿüÿþÿÿÿüÿþÿþÿùÿ÷ÿøÿùÿøÿùÿýÿüÿûÿûÿûÿüÿüÿûÿýÿýÿüÿûÿûÿüÿùÿøÿûÿþÿÿÿýÿùÿ÷ÿöÿùÿûÿûÿûÿüÿýÿþÿþÿýÿúÿúÿûÿûÿüÿüÿüÿüÿþÿüÿüÿýÿþ  + + !(*$!'/0./16=DGEB>>>70144/-0-*)'%''&%(*))*-01,&)+'!"!    + +ÿÿÿþÿþÿûÿý  ÿü +ÿýÿÿÿÿÿÿÿÿÿþÿÿ ÿÿÿþÿÿ +ÿýÿÿÿüÿüÿüÿýÿøÿøÿûÿùÿÿÿùÿüÿÿÿüÿüÿúÿýÿþÿûÿùÿúÿûÿüÿýÿûÿùÿûÿýÿýÿûÿúÿüÿûÿúÿüÿûÿûÿûÿüÿýÿüÿùÿøÿûÿûÿúÿüÿûÿüÿÿÿÿÿüÿúÿøÿøÿúÿúÿûÿýÿþÿýÿýÿþÿûÿùÿûÿûÿùÿûÿüÿûÿüÿÿÿÿÿýÿüÿþ + #'%""%*,+*,29=<;==<;602441-/.**))++)(,,&%'(*-+%&(&   ÿÿÿÿÿýÿýÿÿÿÿÿÿÿûÿý   + ÿþÿÿÿþÿüÿþÿþÿýÿÿÿÿÿþÿýÿýÿÿÿÿÿþ + +  +ÿÿÿþÿü ÿþÿúÿûÿÿÿþÿþÿüÿ÷ÿüÿùÿ÷ÿþÿþÿöÿôÿ÷ÿýÿýÿûÿüÿúÿùÿúÿùÿôÿôÿûÿÿÿüÿüÿüÿúÿûÿúÿ÷ÿöÿùÿûÿüÿýÿüÿüÿûÿûÿüÿûÿúÿúÿúÿùÿûÿþÿþÿüÿüÿüÿùÿøÿúÿúÿùÿùÿùÿúÿýÿþÿýÿþÿýÿþ  +  #&%$$&++()/5766::;:635541++,*+----(&(("""  +ÿÿÿÿÿýÿýÿÿÿÿÿþÿÿÿýÿýÿü  + ÿþÿþÿýÿü ÿÿÿÿ ÿüÿþÿþÿúÿüÿþÿýÿÿÿþ + + ÿþÿûÿþÿúÿýÿýÿþÿûÿøÿþÿþÿûÿúÿùÿøÿùÿùÿ÷ÿ÷ÿ÷ÿúÿþÿýÿþÿýÿüÿýÿþÿüÿûÿüÿúÿùÿüÿýÿýÿúÿúÿûÿüÿûÿúÿúÿøÿùÿýÿþÿüÿüÿýÿûÿúÿûÿúÿùÿøÿøÿùÿüÿüÿüÿýÿüÿýÿÿÿÿÿýÿþÿÿÿÿÿÿÿÿÿÿÿÿ + +  %&%#%+*&'.101599:7456321**-**-+))# ÿÿÿÿÿÿÿýÿýÿÿÿÿÿþÿþÿÿ  + ÿÿÿúÿýÿÿÿþÿÿÿþÿþ ÿþÿþÿýÿþÿÿÿúÿÿÿþÿýÿÿÿþÿû  +ÿÿÿÿÿûÿÿÿýÿÿÿÿÿýÿüÿþÿþÿùÿøÿûÿüÿûÿúÿúÿùÿøÿøÿùÿùÿúÿüÿÿÿÿÿþÿþÿüÿûÿúÿùÿúÿûÿùÿùÿùÿúÿýÿýÿúÿ÷ÿøÿþÿüÿúÿýÿþÿÿÿýÿûÿûÿúÿúÿúÿúÿúÿüÿýÿüÿýÿþÿÿÿüÿûÿþÿÿÿÿÿÿÿþÿýÿýÿþÿÿÿÿÿþÿýÿÿ + + + #%&%$()&'-/,069675157301,+.($$"   + ÿþÿÿÿÿÿýÿÿÿÿÿÿÿÿÿþÿÿ ÿþÿüÿýÿúÿÿÿÿÿþÿþÿþÿüÿþ ÿÿÿýÿýÿþ  ÿüÿÿÿýÿÿÿþÿýÿ÷ÿ÷ÿ÷ÿûÿüÿúÿýÿþÿüÿûÿùÿùÿÿÿüÿûÿþÿýÿöÿõÿùÿüÿùÿöÿ÷ÿüÿýÿúÿüÿüÿüÿÿÿýÿúÿúÿúÿúÿúÿúÿüÿýÿüÿøÿ÷ÿúÿýÿýÿûÿúÿüÿýÿýÿüÿúÿûÿúÿúÿúÿúÿûÿûÿûÿýÿþÿþÿÿÿÿÿþÿýÿýÿüÿüÿüÿýÿþÿþÿþÿÿÿþÿýÿýÿþÿÿÿÿÿýÿþÿüÿúÿûÿþÿÿÿþÿýÿýÿüÿþÿÿ  + + "$&%#%((),.-1551241473..+('!    + ÿÿÿÿÿþÿþÿýÿÿÿþÿþÿÿÿþÿÿ ÿýÿþ +ÿýÿýÿýÿþÿþÿý ÿþ ÿüÿüÿÿÿþÿúÿøÿõÿýÿýÿýÿþÿùÿõÿöÿüÿúÿùÿüÿùÿôÿöÿûÿþÿýÿúÿùÿúÿùÿøÿüÿþÿÿÿÿÿûÿüÿüÿúÿúÿúÿûÿüÿüÿùÿöÿöÿúÿüÿûÿúÿùÿûÿüÿúÿùÿùÿùÿøÿùÿúÿúÿüÿüÿüÿüÿýÿþÿÿÿÿÿÿÿýÿûÿýÿüÿûÿûÿûÿûÿÿÿÿÿýÿýÿýÿüÿýÿýÿþÿþÿüÿûÿüÿþÿÿÿþÿúÿùÿûÿÿÿþÿüÿüÿüÿüÿþÿÿ  "$%%&(+..-01.-/2123/(&%!     + ÿÿÿÿÿþÿþÿÿÿÿÿÿÿþÿþÿÿÿþ  +ÿþÿþ + ÿÿÿþÿýÿþÿþÿÿÿÿÿÿÿüÿýÿÿÿÿÿÿÿþÿüÿþÿýÿùÿ÷ÿöÿúÿýÿøÿùÿùÿ÷ÿõÿ÷ÿøÿùÿýÿþÿþÿÿÿûÿøÿùÿüÿþÿúÿøÿýÿûÿùÿúÿùÿøÿûÿþÿýÿúÿøÿùÿûÿüÿúÿöÿøÿûÿûÿûÿùÿ÷ÿøÿûÿûÿûÿûÿüÿþÿþÿýÿýÿÿÿþÿÿÿüÿûÿûÿüÿûÿùÿûÿÿÿÿÿüÿüÿýÿüÿûÿýÿýÿýÿÿÿýÿúÿúÿüÿþÿüÿúÿúÿüÿþÿýÿüÿüÿýÿþÿþÿý $()()+/.,.-)*-00.,*%""   +   + ÿþÿþÿÿÿÿÿÿÿþÿÿÿÿÿÿÿþÿý ÿþÿþ +ÿþÿÿÿÿÿþÿþÿþÿüÿÿÿþÿÿÿÿÿÿÿüÿÿÿýÿøÿûÿÿ ÿüÿþÿýÿýÿûÿúÿûÿþÿûÿöÿ÷ÿûÿüÿøÿøÿøÿúÿýÿüÿûÿüÿüÿúÿùÿûÿýÿûÿûÿýÿùÿùÿúÿûÿûÿüÿþÿþÿýÿüÿùÿùÿûÿúÿ÷ÿøÿúÿüÿûÿøÿøÿúÿüÿúÿúÿüÿýÿÿÿÿÿÿÿÿÿþÿþÿýÿûÿýÿýÿýÿýÿüÿüÿÿÿÿÿûÿüÿþÿúÿùÿüÿüÿûÿþÿþÿüÿûÿüÿýÿüÿúÿûÿüÿüÿüÿýÿüÿþÿÿÿþÿþ  $(+----,**)'(*./+)*($$!    + + + ÿýÿüÿÿÿÿÿÿÿþÿþÿÿÿþÿýÿþÿÿ ÿÿÿÿ +ÿüÿüÿÿÿûÿûÿÿÿÿÿÿÿÿÿÿÿûÿþÿÿÿÿ +ÿÿÿþ ÿÿÿþÿûÿýÿþÿüÿõÿøÿüÿøÿöÿ÷ÿýÿúÿøÿüÿýÿüÿúÿùÿøÿüÿÿÿþÿÿÿÿÿþÿýÿûÿúÿúÿýÿÿÿþÿüÿûÿüÿùÿøÿùÿùÿøÿùÿùÿûÿûÿùÿ÷ÿùÿûÿüÿùÿùÿüÿÿÿÿÿþÿþÿýÿûÿûÿþÿýÿüÿýÿýÿýÿþÿþÿûÿûÿüÿûÿüÿûÿúÿüÿýÿüÿüÿüÿüÿýÿûÿùÿúÿúÿüÿþÿýÿýÿýÿüÿþÿÿÿÿ + + #(-12/*('%%'(,/-+*)''%  + +    + +ÿþÿýÿþÿýÿÿÿÿÿÿÿÿÿþÿþÿþÿÿÿÿÿÿÿÿÿÿ +  ÿþÿÿ ÿþÿþÿýÿûÿÿÿúÿûÿÿ + + ÿû ÿÿÿùÿÿÿüÿûÿüÿýÿÿÿùÿõÿúÿûÿùÿúÿøÿùÿûÿùÿùÿùÿøÿùÿûÿüÿüÿÿÿüÿüÿüÿüÿüÿýÿýÿûÿúÿûÿüÿüÿýÿüÿûÿøÿøÿúÿûÿúÿ÷ÿøÿüÿüÿúÿûÿüÿüÿýÿûÿûÿüÿýÿÿÿÿÿýÿüÿüÿüÿüÿüÿüÿýÿûÿúÿûÿüÿüÿúÿùÿúÿüÿþÿüÿûÿþÿýÿüÿüÿûÿüÿþÿûÿùÿúÿûÿüÿýÿýÿþÿýÿüÿýÿþÿÿÿÿ + + !%*042,(%!"&'+-.-(&&((    +   ÿüÿüÿÿÿþÿÿÿÿÿþÿÿÿþ  ÿÿÿüÿþÿþÿûÿýÿÿÿÿÿÿ + ÿýÿÿÿþ ÿÿÿüÿùÿþÿýÿýÿûÿýÿüÿùÿøÿùÿûÿùÿ÷ÿøÿýÿýÿûÿûÿýÿûÿøÿùÿùÿûÿþÿýÿüÿúÿøÿúÿúÿúÿüÿüÿüÿúÿúÿúÿüÿþÿúÿ÷ÿúÿüÿýÿþÿüÿüÿüÿýÿþÿýÿýÿþÿýÿÿÿÿÿüÿûÿýÿýÿûÿûÿýÿýÿüÿûÿüÿûÿúÿùÿùÿúÿüÿþÿÿÿÿÿýÿüÿýÿýÿûÿûÿüÿûÿúÿýÿþÿþÿýÿüÿüÿþÿýÿüÿýÿÿÿÿÿþ +  +  #%(-34.)# $%(*+,(%'(% +   +  + + ÿÿÿÿÿþÿüÿýÿÿÿûÿÿÿþÿþÿþ  ÿÿÿþÿÿÿþÿÿÿüÿýÿùÿúÿýÿÿÿÿÿüÿþ  ÿýÿûÿþÿþÿÿÿÿÿýÿúÿûÿûÿÿÿýÿûÿúÿûÿúÿøÿ÷ÿÿÿÿÿýÿúÿ÷ÿúÿýÿüÿýÿÿÿþÿüÿûÿûÿüÿüÿûÿùÿùÿúÿûÿûÿûÿýÿýÿþÿýÿüÿþÿÿÿÿÿþÿýÿýÿüÿüÿüÿýÿýÿûÿüÿþÿþÿüÿúÿùÿùÿûÿþÿÿÿýÿüÿýÿýÿüÿüÿüÿüÿûÿûÿýÿþÿýÿþÿþÿýÿüÿýÿüÿýÿþÿÿÿÿÿþÿÿ + !$',02/+%"$"%(()((+(    + +   +ÿÿÿþÿþÿþÿþÿÿÿýÿýÿþÿûÿþÿÿÿýÿÿÿþÿþÿýÿÿÿÿÿÿ + ÿþÿÿÿýÿüÿýÿÿÿÿÿùÿúÿÿÿÿÿüÿ÷ÿûÿýÿÿÿýÿüÿüÿúÿùÿøÿüÿþÿûÿøÿùÿúÿúÿüÿýÿüÿýÿþÿûÿùÿúÿûÿùÿøÿúÿüÿþÿüÿüÿþÿÿÿýÿþÿþÿýÿþÿýÿûÿüÿüÿûÿûÿüÿüÿüÿûÿùÿúÿþÿÿÿüÿúÿûÿýÿýÿüÿüÿýÿüÿüÿýÿýÿüÿüÿýÿÿÿþÿûÿúÿþÿþÿþÿÿÿýÿÿÿÿÿÿ  $),,,+(%&'$'(&'&*.(      ÿÿÿýÿÿÿþÿþÿüÿûÿÿÿþÿÿÿýÿüÿþÿýÿüÿÿÿÿ ÿþÿþÿýÿþÿøÿÿÿþÿþÿÿÿúÿûÿþÿüÿûÿúÿüÿÿÿüÿ÷ÿøÿùÿûÿùÿûÿüÿûÿüÿúÿûÿüÿøÿôÿõÿøÿ÷ÿöÿùÿþÿÿÿýÿüÿüÿÿÿýÿýÿüÿúÿûÿýÿüÿýÿþÿüÿýÿþÿÿÿþÿýÿýÿýÿþÿýÿýÿýÿüÿýÿýÿüÿûÿùÿúÿûÿüÿûÿüÿüÿüÿþÿýÿúÿûÿþÿþÿüÿüÿþÿþÿþÿýÿüÿýÿüÿýÿýÿýÿþÿþÿþÿýÿüÿýÿÿÿþÿýÿþ   &((('((*+)**'$#(+& + + + + + ÿýÿýÿÿÿþÿýÿüÿþÿÿÿÿÿÿÿýÿüÿýÿþÿþÿÿÿþÿüÿûÿþÿÿ ÿýÿöÿÿÿúÿÿÿþÿýÿþÿüÿûÿùÿ÷ÿûÿýÿùÿúÿýÿûÿøÿøÿúÿúÿ÷ÿ÷ÿúÿúÿ÷ÿøÿúÿúÿúÿúÿûÿüÿÿÿÿÿþÿþÿýÿûÿüÿüÿüÿüÿüÿûÿûÿüÿýÿþÿýÿüÿûÿýÿüÿúÿýÿþÿþÿýÿýÿüÿûÿûÿúÿúÿýÿþÿüÿüÿþÿýÿüÿüÿýÿýÿüÿüÿýÿþÿüÿüÿýÿýÿýÿýÿÿÿþÿýÿüÿûÿûÿüÿýÿýÿþÿÿ + $'''&&'+.-,+'# $(# +  + ÿÿÿÿÿÿÿÿÿûÿüÿÿÿýÿþÿÿÿþÿÿÿüÿÿÿÿÿüÿþÿÿÿýÿÿÿÿÿûÿýÿýÿþÿþÿþÿüÿþÿüÿúÿ÷ÿ÷ÿýÿÿÿÿÿÿÿþÿûÿùÿ÷ÿ÷ÿûÿýÿþÿÿÿüÿüÿýÿüÿüÿüÿýÿÿÿÿÿþÿúÿúÿûÿüÿûÿúÿúÿüÿüÿüÿþÿýÿýÿýÿþÿþÿþÿüÿûÿÿÿýÿüÿýÿüÿýÿþÿÿÿýÿüÿýÿüÿûÿüÿýÿýÿþÿüÿûÿýÿþÿýÿûÿûÿûÿýÿþÿýÿüÿûÿûÿýÿÿÿÿÿþÿþÿÿÿþÿüÿüÿüÿûÿüÿþÿÿÿÿ + !%&(*&$',/-+'$ #("   + +ÿÿÿÿÿÿÿüÿüÿþÿÿÿþÿþÿÿÿÿÿÿÿþÿÿÿþÿþÿþÿþÿÿÿÿ ÿÿÿÿÿþÿúÿùÿüÿüÿýÿþÿýÿýÿýÿùÿùÿüÿýÿÿÿüÿûÿýÿýÿûÿþÿþÿþÿþÿÿÿýÿüÿüÿþÿÿÿýÿûÿýÿüÿùÿùÿúÿûÿûÿûÿûÿüÿýÿÿÿÿÿÿÿüÿûÿüÿýÿûÿûÿþÿýÿþÿýÿüÿüÿüÿÿÿýÿüÿýÿýÿüÿýÿýÿüÿýÿüÿüÿüÿýÿüÿüÿûÿúÿüÿþÿýÿüÿûÿüÿþÿÿÿþÿþÿþÿýÿýÿýÿýÿüÿýÿýÿþÿþÿÿÿÿÿÿ +  %),)%%)-+(%%#%)"    + +ÿþÿÿÿýÿÿÿÿÿýÿþÿÿÿÿÿÿÿÿÿþÿÿÿÿÿÿÿþ + ÿþÿûÿüÿýÿúÿûÿûÿûÿúÿûÿúÿøÿýÿýÿûÿùÿûÿýÿýÿþÿýÿýÿýÿþÿþÿþÿÿÿüÿøÿûÿþÿþÿýÿúÿøÿùÿúÿùÿûÿþÿüÿúÿüÿþÿþÿýÿþÿþÿûÿúÿûÿþÿýÿýÿýÿýÿýÿüÿþÿüÿýÿýÿúÿüÿþÿýÿüÿüÿüÿüÿýÿüÿúÿüÿýÿûÿüÿþÿüÿûÿüÿþÿÿÿýÿþÿÿÿþÿûÿûÿýÿýÿþÿÿÿþÿþÿþÿþÿÿÿÿÿþÿÿ #&('%((')&#&%),$!!  + +ÿýÿÿÿÿÿþÿÿÿþÿýÿþÿÿÿÿÿþÿÿÿÿÿÿÿþÿÿÿþÿþÿÿÿÿÿÿÿÿÿÿ  \ No newline at end of file diff --git a/Sources/Imaging.Formats/Sample Images/PNM/hsk.tmp.ppm b/Sources/Imaging.Formats/Sample Images/PNM/hsk.tmp.ppm new file mode 100644 index 00000000..0330f323 --- /dev/null +++ b/Sources/Imaging.Formats/Sample Images/PNM/hsk.tmp.ppm @@ -0,0 +1,19695 @@ +P6 +488 512 +251 + + + + + + + +  +     +    + +  + +  + +  + + + +    + +  + + + +  + + +   + + +  + + + + + +  + + +   +   + +    + +    + + +  + +    + + +  + + + + +   + +  + +  +  + + + + + + + + +   +  +   + + + + + + + +  +  + + + + + + + + + +  +   +        + +   + +      +         + + +  + + +  + + +    + + +  + + +  +     +    + +    +        +  + +    +      +   + + + +  + + + + + + + +         +   + +    + +    + +  +  + +  + + +   + + +    + +      +  + +   + + +   +    + + + +       + + + + +    + + + +  +  +  + +  + + + + +     +    +   + + + +      + + + +   +     + + +        +   +     + +    +      +   + + +  + + + +   +    + + +    + +  +  +   + +     + +     +  +   +   +   + + +    + + +     + +  + + + + + + +    +  + + +  +   + +  +     + +    + +  + + + +   +      + + +  + +           +  + +  + + +        +    +  +  +  + + + + +    + + + + + +  +  + + +   + + + + +  + + + +   +  + +   + + + + +  + + + + + + + + + + +       + + + +     +    + + +  + + +    +    +  +  +  + + +    +  + +   +    + +    +                + + +         +  + +  + +  + +     + +  +  + + + + +    +  +  + + + + + +  + +   + + + + + + +  + +   +  + +    + +    + +   + + +  + +  + + +     + + +  + + + + + + + + + +  +    + + + + + +   + + +   + +  + + + + +   + + + + +  + +    +    +  +  +  +  +  + + +         +  +  + +   +            +       + + + +          + +    + + + +   + + +         + +  +   + +  + +  + +       + + + + + + + + + +   +     + +       + + + + +    +  + +  +  + + + + + + +   + +    + + + +  + +   + +  + + + +      +  +   + + + + +     +  + +  + + + +  + + +   +  + + +     +   + +      + + + +    + + +    +   + + + + +       + +    + + + + + +    + + +   + +  + + + +  + +  +   +  + + + + + +   + +  + + + + + + +    + +   + +      +   + + + + + +  + +  +   + + +      + + + +   +    + + + +     + + +   + +   +   + + +  +  + + + +     +   + +  + + + + + + + + +    + + +  + + +  + + + + +  + + + + + + +  + +   +   + +    + + + + + + + +     + + + +  +   + + +  + + + + + + + + +  + +  + + + +    + +  +    + +   +  +  +   +   + +  +  + + + + + +      +   + + + +  + + + +   +  + + +  + + + +  + + + + + + + + + +   + + +   +   + +    + + +    +   +    + +  + + +  + + + +  + +  + +   +  +       +    + + + +    + + + + + +     + +  +     +        + +  + +  + + +  + + +  +    +             +  +    +   + + +  + + + + + + + + +  +  +  +    + + + +   +    +  +      +         +   +   + + +    + +       + +  +     + +  + + + + +  + +   + +   +                  + + +   + + +    +      +    + +     + + +    + +  + + +   + + + + + +  +   + + + +  + + +  +    +  + +        +     +    + +  + +    + +       + + +  +      +  + +  +  + +   + + + +   +   + + + + + + + + + + + + + + + + + +        +    + +   + +   + +             + +   +   + +   + +     + +    + +  + +   + +  +       +   + + + +    + +    +    +         + + +   + + +   + + + + + + + + + + + + + + + + + + + + + + + + +    + + + + + + + +  + + + + + + + +     + + + + +  + + + + + + + + +    + + + +  +   +    + + +   + + + + + + + + + + + + + +  + +   +    + + + + + + +   + + + +  + +    + +   +  #  + + + + +  +    + + +  + +  +   +         + + +  +     +     +   + + + +       + +  +  + +    + + +     +   +     +   + + +    +  +  + + + +  + + + + + +      + + +   + + +  + + + + + + + + +     + +     + + +                       +   +   + + + +   +             +       +                    + +              +              + +           +   +         + +              +                                    +         +               + + + + + + + +  + + + + +    +   +  +    + + + + + + + + + +  +  + + + + + + + +  + +  + +  + +  + + + +    + + + + +  +    + +   +  + + + +   + + +    +   + +  +  + +  + +  +    +        +    + + + '' % + +  + + + + + +   + + +      + +  + +  +   +     +   +     +  +  + +  +    +  + +     + +   + + +  +    +  +   +  +   +  +        +     +           + + + +    + +      +  + + + +  +     +  + +  + + +  +  + + +  +   + +  +   +   +  + + +   +    + + + + + + + + +     + + +    + +     + + +    + +    + +  +    + +    + + + +  +     + +   + + +     + +      +      + +     +    +   +          + +     +      + +  +  +      + + + + + +      +  + + + + + + + + + +  +     +    +          +   +  + + +  +  +  + + + +   +  +                + +  +              +    + +         +  + +                 + + +  +         +     +             + +    .)  + + +     +   +                              + +          +        +     + +        + +   + + +         +   +          +      +  + +       + +  + + +    +        + +    +     + +     +        + +            + +              + +      + +  + + + + + + +     + +     + + +     + + + +   + + +   +     +  + +  +   + +        +  + +           +  +  + +     + + + +  + +         + +  +    + +     + + + + +  + +  + + +   + + + + + + +   +    + +   +          + + + + + + + + +  + + + + + + + +  + +     + + + +   + + + + + + + + + + + + + + + +    +      + + + + + + + + +  +    + +      +    + +    + + + +   + + +     + +  +  + + + + +  + +  + + + + +  +  + + +  + +  + +   #% .(  + + +  +   +   +  + +          +             + + + + +         +    + + +  + +   + +  + + +            + +    + + +   + + +     + + + + +   + + + + +    +  + + + +  +    +  +  + + + +   + +           + + +     +   +     +  + + + +  +       +    + + +      +   + +  +   + +  + + + +   + + + +  +  + +   + + + + +  +       +  +  +     +  +  + +  + +  +     +                      + + +       +                     +  +         +           +     + +    + + + + + + + + + + + + +   + + +  + + + + +  + +  + + +  + + + +  + + + + + +      + + +  +      + +   + + + +    + + +   + + +  +    +   + + + + + + + + +  +      + +  + +        +   +  + +  +    +  +   + + +  /* '! + +  + + + + + + + + + + +  + + +     + +    + + + +  + + + +   +        +  + + + + +       +    + +   + + +     +     + +       + +    +    + +      +       + +     +       +           +    + +          +               +                                 +   +  +     +   + +                                +                        +  +             +    +     +              +                                         + + + +  + +  +       +                        +   +                       + +           +           +         + +          +      +    (&  + +           + +  +               + + +   + +  +       +        + + + +          +   +  +   +       + + +    + +  +      +   + + +   + +  +  +  + +      +  +          + +   +    + +  +      +               + +       +     +   +        +             +   + + + +  + + + +    + + + + + + + +  + +     +  + + + +     + +   +  + +       + +    + + + +  + +    + + + + + + +  + +   + + + + +  + +   + + + +  + + + + + + +  +    + + +   +  + + + +  + + + +  + +  +         + + + + + +   + + + + + +     +     +                                                              +        +    +   + +     +     +   +          + +    + +                + +        + +    +  +                +           +  +      +   + +    +  +   + +   + + +   +  + +   +   +   +    + +   +    +      +  + +  +   + +   + + +  + + +   + + + +  + + +    + + + +      + + + + + + + +           +      + + + +     +  +        +    + +     + +        + +  +   +  + +   + +  +  + + +   +  + + + + + + +     + +     +   +  + +  + + + +     + + + + + + +    + + + +      + + +   + + +  + + +     +  + +  + + + +       +  +  +   + +  + + +     +     +  + + +    + +   + + + + + + + + + + + +   + + + +   +  +   + + + + + +  + +  + + + + +    + +  +  +    +    + +   + +  + + +   + + + + +  + +   + +  +  + +  + + + + +  + +   + + + +  + +   +   +   +   +     +  +   +  +    +       + +  +  + +   + + +  +  + +   + +  +    +  + +   + + +      +     +   +  + +  + +     + + + +  +  +    +  +   +   + + + +  +   + + + +     +   + +   +        + + + + + +  +  + +   + + + + +         +  +          +      +   + + +            +   + +  + +   +   + + + + +      +  +     +  +         +            +  + + +        + +   +                +                          +        +                                        +                + + + + +  + + + + +  + +    + + + +  + +  + + + + +    + +  + + + + + + + + + +  +   + + +  +  +  + + +  + + + +   + + + + + + +  + + + + + +  +   + +    + + + +  + +   + +  + + + + + +  + +   + + +   + + + +  + + +  + + +  + +   + + + + + + +   + +   +    +       +         + + + +       + +        +   +     +  + + + + +  + +    +           +  + + + +     +   +         +  + + + +  + +  +  + + + +   + +  + +    + + + + +    + +   +  +  + + +  + +  + + + + +  + + +   + + + + +    + + + + + + + +     + + + + + + + + + + + +  + +  + + + + + +   + +  + + + + + + +  + +    + +  + + + + + + +  + +  + + + +  + + + + + + + + + +   +  + + +    +  +   + + + + + + +  + + +   +   +  + + + +  + + + + + + + + + + + + +  + +          + +  + + + +  + + +   + + + + + + +  + +   +   +     +   + +  +   +          +     +            +          + +  +        +                                      +           +          +  +      +        + +  +      +    + + + + +   +      + +     +    +             +  + +  + +     + + +  +  + +           +   + +                         + + + + +    + +     + +   +    + + +  + + +     + +      + + +  +       +     +   + + +  +    +   +  + +      +  +  +      + +    + + + +  + + + + + + + + + + + +     +  + +   +      + +  +    + +       + + +  + +          +  +  +         + + +  +  + + + +    +    + + + + + +      + +  + +  +   + + +   + + +    +   +     + + + + + +  + + + + + + + +    +        + + + + + + + + +  + +  + +    +     +   +   + +  + + + +  + + +   + +  +  + + + + +       + + + +   + + + +  +  +   +  +           +  +     +       + +  + +         + + + +  + +    + +     + +     +      + + +  + +    + +    + +   + +      +                 +              +   +      +             +              +               + +   + +                          + +     +     +                +                   +            +                  +                +             +     +              +     +      +             +              +     +           + + + + + + + + + + + + + +    + + + + +    + + + + +  + + + + + + + + +          + +  + + +    + + + + + + + + +  + + + + + + +   +  +    + + + + +   + +  + + + + + +   +  +   +  + + + +  + + + +  + + + + + + + + + +    + + + +  +  + + + + + + +  +   +   + +      + + + +    +       +    + +  +             +         + +  + +    + + + +  +  + + + + +  + + + +    +   + +   + +           + +   +    + +  + +   +  +  +    +  +   + + +  + + + + + + + +   + +  + + + +   + + + + + + +  + + +  + + + + + +  +     + +  +   + +   +    + +  + + + +   +     + +    + +  + +  +  + + + +   +   +  +    + + + + + +   + + +  + + + +  + +     + + + + + + + +  +   + + + + + + + + +  + +  + +  + + + + + + + + +   +      + +   + + + +  +   + +  + + +  + + +       +  + + +   + + + + +  +   + +  + + + +   +                                     +  +      + +           +      +    +     +           + +         + + +   + +   + +          + +  +     +      + +               + + +   +        +  + +  +   +           + + + + + +                        + +          +        +      + +    + + + + +     +  + +    + + + + +   + + + + + + + +  + +  +  +  + + +     +      + + + + + +  + + + + +       + +  +   +     +  + + +  + + + + + +    + + +    + +    + + + + +   + + +   +   +    +   + + +  + + +  + + + + + + +   +   + +   + + +   + + + + + + + + + + +  + +     + + + +  +   +  +    + + + +  +  + +  +   + + +   +     + +  + + + +   +  + +    + + + + + + + + + + + + + + + + + +   +    +      + + +   + + +    + + +  +   + +  + + + + +   +  + +  + + +  + +   + + +    + + + + + + + +  + + + + +  + + +  + + + + +    + + + + +      + + +      + + + + + + + +   +   +     + + +  + +   +   + + +   + + +   + +             +        +   +   +      +       +          +             +  + + + +  +   + + +     +              + +  +  +   +  +      + + + +      + + +    + + + + + + + +  + + +   + +    +      +   +          +      +   + + +  +  + +        +    +  +             + +   +    + + + +     + +        +      +            + +        + + +                                                    +     +     +    + + + +   + + + + + + +   + +     +       + + + + + +  +    + + + + + + + + +  + + + +  + + +  + + +   +  + + + +     + + + +     + +       +   + + + + + +      + + + +  + +      + + +   + +       + +   + +  +   +  + +       + + + +  + + +  +     +   +  + +    + + + +      +  + +        +  +  + + +     +     + +      + +   +   +     +  + +    + + +   +  + + +  + +     +  + +  +   + + + + +  +   + + + + + + +    +    +       + +  + +  +  +   + + + + + + + + + + + +    + + + +   + +       + +  + + + + + + + + +  + + + + + + + + + + + +  +    + + + +  +   +   + + + + + +  + + + +     + + + + + + +   + + + +     +     +     +    +  +   +  +   + + +   + + + + + + +    + + +     +   +     +   + + + + +  +    + +  + + + +   + + + + +   +   +  + + + + + +   + +   + + +  + +  +   + + +   +  + + + +         +         +   +  +       + +   + +  +     + +  + + +   +     + +     + +    + + + +    +      +            + + + + + + +  + + + +  + + +    +    +     + +      +       +  +   +     +  + + + + +    +   +  +                  +    + +    + + + + +  +  + +        +  + +  +     + + +   +     + +  + + + + + + + +   + + + + + + + +    + +   +  +    +             +     +           +   + + + + + +  +            + +     +     +    + + + + +     + +   + + +  + + +    + + +      + + + +  + +    + +     +                    + +     +                   +                        +   + + + + +   + + + + + + +  + + + + + + +    + +    + + + + + + + + +  + + +   + +     + + +  + +    + + +  + + + + + + +    + + + +  + + + + +  +  + + + + + + + + + +   +         + +   + + + +  + + + +   +   +  +  + +  + +  +  + +   + + + +  + +  +  + + + + +  +  + +  + + + + + + +   + + +  +      + + + + + + +   + +   + + + + + + + + + + + + + +        + + +   + + +     + + + + + +   +   + + + + + +    + + + + + +  + +  + +  + + + + + + +  + + + + +         +     + +     + +  +        +    + + + + +   +  +      + +         + +       + +    + +   + + +       + +  +    + +                    +           +     +  + +          + +   +          + +  + +    + +  +           +     +                   +          +  + + + +       +      + +           + +          +   + +                  +             +                 + + +                     + +    +       + + + + + + +     + +                  +    +   +   + + +       +     +   +         +  + + +   +         +  + + +   + +    + + + + + + + + + + + + + +  +    +  +   + + +   + + + +        +   + + +   +     +   +     + + + + +  +  +  +   +         + + + +  + + + + +  +    +  + +  + +   +       + + + + +   +    + +    + + + +   +  +  + + +           + + + +   + + +     + + + +  +  + +  + + + + + + + + + + + +   + +    + + + +   + +  +  + + +  +  +  + + + + + + + + + + + + +  + + + +  + +    + +   +   + +    +   + +   + + +  + +   +    + + + +   +         + + +       +                       + +    +    + +               +       +                +  + + +    + +       +         +     +      + +    +      +      + +   + +  +    + +  + + + + + +  + +      + + + +  +  +   +    + + + + + +             +  +   +     + +     +     + +       + +  +   + + + + + + + + +   + +     + + +      +  + + +   +   + +    +     + +        +  +     + + + + +   + +   +   +    + + +        + + + + +    +  + + +  +  + + + + + + +             + +  +    +  + +    + + + +    + +  +     +    + +    +    + + +    +     + + + + +   + + +  + + + +  + +   + + + + + +  + + + + + + +  + + + + +  + +   + + +  + + +  + +  + + + + + + + + + + + + + + + + + + + + + +      +      + + + + +   + + + +  + +  +   + + +   + + + + +   + + + + + +     +  + + +  +    + + + +  + +   + +   + + + +  + + + + +  +   + + + +  +  + + + + +    + + + + + + +  + +  + +   + + +        +      + +     +  +     + + +  + +       +  +  + + + + + + + + + + +   + +  + + +  + + + + +              +    + + + +         +    + +  +  + + +    +   + +  +    + + + + +   + + +  + + + + + +  + +  + +   + + + + + + +  +            +    +  + +  + + +   + +    +  + + +    + + +  + +  +  + + +   + +  +    + + + +    +  + + +   +  + + + + + + + +  + +  + + +  + +   + + +     + + +    +      + + + +  + + +  + + +    + +   +   +      + + + + + +    + + +    +   + + +   + + +        + + +   + +  + +  + + + + + + + + + + + + + + + + +   +  + + + + +  + + + + + + + + + + + + + + + + + + + + +      + + + + + + + + + + + + +   + + + + +  + + + + +  + + + + +   +   + + + +   +   + + + +  +   +  +   + + +   + + + +  + + + +   + +  +        +  +   +   +     +  +      +     +  + + + + +       +      + +   + + + + + +    + +        + + + + + + + +   +   + +    + + + +  + + +    +   +  +    + + + +  +  + + +             + +      + +     + + +  + +           +    +        + +    +    + + +                         +    +       +     +  +   + +   + + +                                         +                  + +     +        +              +  +                          + + + +   + + +  + + +  + + +  +        + + + + + +  + + +   +   +    +  + +    +  + + + + + + + +   + +   + + + + +   + + + +  + +    + +  + +  + + + +  + + + +   +    + + + + + + + + + + + + + + +   +  + +  + + + +   + + + +         +   + +  + + +  +   +  + +    + + +       + +    +    + + + + +  + +   +     +     + +   +    +          +   + +        +   +   + + +    +  +   +    + +  + + +    +     + + + + + + + + + + + +  + +  +    + + +  + + +    + + + +     + + +  + + + +  + + +  + + +    +  +  + + + + + + + + + + + + + + + +    +    +  +       + + +            + + +       + + +   + + + + + + + +  + + +   + +   + + + +   + + + +  +   + + + +  + +     + +    +         + +    + +  +   +  + + +  + + +  + + + + +  + +  +  +     + +  + +  +  + + + +   + +    +      +           +  +   + +    + +         +    +          +                     + + +           + + +      +   + + +   +      + +    +       +  +    +  + +          + + + + + + +      + + +     + +   + + +  + + + +  + +     + + + + +    + + +   + +     + +       + + + + + +    + + +  +   + + +    + +  + + +  +   + +  + + + +  + + +     +   +  +     + +   +  + +   + +          + + +  +     + + + +  + + + + +    + +  + + + + +   + +      +  + +  + + + +   + + +    + + + + +   + +  +  + +  + + + + + + +  + + + + + + + + +     + + + + + + +  + + + +   + +    + + + +  +    + + +  + +     + + +   +   + + + + +       +  + +  +    + + + + + + + +     + + + +  +  +   + +   + + + + + +   + + + + + + + +   + +  + + +    +   + + +  + + + + +  + + +  +   + + + + + +   + + + + + + +  +    + + + +  + +   + + +     +  +   + + + + +   + + + + + + + + +  + + +   + + +   + + +   +    +  + + +     + +      + + + +  + + + + +  + +   + + +  + + + +     + + + + + +    + +       +  + + +  + + + +  + +   + +   +          +   + +  +             + +     +     +  + + +     +  + +  +  + +  + + + + +   + +    + + +   + + +   + +   + +         + + +   + +  + +    +  +  +  +          + +  + + + + + +  +   + +          +   +   +    +   + + +  +     +   +       + + +  +     +   +   +     +   + +                  +                 +            +             +     + +               + + + + + + + + + + + + + +  +  +   + + +   + +  + + + + + + + + +  + +   + + + + + + + +  +   +  + + + +   +  + + + + +  + + + + + + + + + + + +     +  + +     + + + + + +  + + + + + + + + + + + + +    +   + + + +  + + + + +  + + + + +    + + + + + + + + +   + +    + +  +    + +  + + + +              +       + +       + +  + +   + +    + + +        +  + + + +         +     +   + + +   +   +  + +   + +  + + + + + +  + + +   + + + + + + +   + + +  + +    + + + + + +        + + + +    +  + +    +       +   + + + + + + + + +    +   + +   +  +  + + + +       + +    + + + + +   +  + + +  + + + + + + + + + + + +  +   + +   + + + + + + + +   + + + + + + +    + +    +   + + + + + + +     +  + + + + +  + + + + + + + + + + + +   +  +  + +   + + +   + + + + +  +     + + + +   +   + + + + +     +  + +           + +                +     + +   + +  +    + +   + + +  + + + + +      +    +               +        + + +     + +             +     + +  + +  +  + +                +      + + + + +   + + + + + +  +  +  + + + + +  +  + + +    + + +   + + + +  + +         + + + + + +   + +  +  + + +  + + + + + + +  + + + +     +     + + + + +  +  + +     + +   +    + + + +  + + +  + +   + + + +            + +     + + + + +  + + + +   +    + + +    + +      + + + + +   + +    +    +  + + + +   + +     + + +        +      + + + + +   + + + +  + +  + + + +   + + +   + + + + + + +  +   + + + + +   + + + + + + + +  + + + +  + + + + + + +   + + +  + + + + +  +   + + + + +  + + +  + +     + + + + + + + + + + + + + + + + + + + + + + + + + +    + + + + + + + +   + + + + + + + + + + +   + + +  +   + + + + +  + + + + + + + + + + + +   + + + + +   + +   + +  + + + +   + + +  + +   + +     + +    +      +    + + + +    +      + +  +  +   +       + + + +            +        + +      + +   +        + + +   + +   + + +         + +    + +  + +     +    +    + +     +   +   + +  +    + + +  + + + +  + +      +   + +   + + + +      + +     + +              +  + + + + + + +  +     +       + + +   + + +  +        +               + +     + + + +     +     +                            +     +     +  +       +         +   +     +   +              +   +     + +  + + +          + + + + + + + + + + + + + +     + + + + +  + +  + + +   + + + + + + +  + +  + +   + +   + +  + + + + + + + + +   + + + + + + + +   + + +  + + +  + + + + +   +         + +     +  + +     + +   + + + + +  +   + +    + + + + + + +   + + +  + + + +    +  + +          + +               +     + +   +   +     + + +  + + + + + + + +  + +   +  +  + +  +     + +  + +    + + +   + + +   +  +        + + +  + + +  + + + +  + + + +    + + + + + + + + + +         +   +  +   + + + + + + + + + + + + + +  +   + + + +   + + +   + + +  + +  + + + + +   + + + +  + + + + + +   + + + +   +  + + + + + +  + +   + + + + + + + +    + +    + +  + + + + + + +    + +  + +      + + + + +   + + +    + +  + + + + +   +   + + + +  +  + +  + +         + + + + + + +   + + +  + + + +    +   + + + + + + +  +    +  + +    + +     +     + +  + + + +       +    + + + +    + + + +   + +     + + +  +     + + +   +      +    + + +   +  + + +  +  + + +  + +    + + +    +      +   + + + + + + +  + + +    + + + + + + +    + + + + + +   + + + + + + + +      + +  +     + + + +     + +   + +         + + + +  + +   +  + +  + + +   + + + + + +    + + +   + +  +  +  + + + + +   +  + + + + +    + + +  + + +   +     + +     + +  +     + + +  + + +       +     + + +    +         +     +     + +    +     + +   +     +          +        +                  +  +     +              +     +                                                                               + + + + + + +  + +   +  + +  + + +   + + + +  + +    + +  + + + + + +  + +    + + +  + + + + + +   + +  + + + +  + + + + + + +  +   + + + + + + + +  + + +  + + +    + + +   + +  +  + + + + + + + +  + +  +  + +  + + + + + + + + + +  +   + +  + + + + +  + + +  + + +  +   + +     +   +   + + +     + +     +   + + +  + + +   + +   + + + +   + +   + + + + +  + +  +    + +   + + + + + +  + +  + + + +    + +  + + + +    + + + + + +    +   + + +  + +     +  + +  + +  +  + +  + +  +    + + +     +     + +  +  + +    + +   + + +  + +    + + +  + + + +  + + + +     + +  +    + + + + + + + + + + +  + + + + +    + + + +  +   +  + + + + + + + + + +           + +  + +    +   +   + + + + +       + +   +     +       + +   +   + +   + +   + + +     +   +   +    + + + + +     + +   +    + + +  +     +               +          +                  + +   + + +   +    +        +      +               +       +                  +     +                                     +  +     + + +    +      + +      + + +         +     +        +      +    + +                     +  + +    + +      +     +        +   + + +   +            + +    +        +  + + +             +    + + +   +          +    + +    + +    +   + +  +  + + +   + +    + +   +     + +  + +   + + +    + +  + + + + +       + +       +      +     +  +    +        + + +  + + +    + +   + +    +  +   +   +     + + +    + +  + + + + + + + + +  + +   + +     + + + + + + + + + +  + + + + + +  + + +  + +  + + + + + + + + + + + + +  + +   + +  + + + + + + + + +  + + +  + + +  + + +  + +       +   + + + +      + +  +    + + +    + + + + +  + + +  +  + + +    +  + +  + +    + + + + + +    +  + + + + +  +      + +    +   + + +        + + + +   + + + + + +   + + +         +    + + + + + + + + + +     + + + +  + + + + + +   + + + + +  + +  + + + + + + +     + + +    +     + + +       +    + +    + + +    +       + +     + +  +                         + + +   + +  +   + + +           +         +     +     +              +        +  +                      + +               +    +                                  + + + + + + + + + +   + +    + + + + + +   + +  + +    +   + + + +       + +  + + +      + + +   + +      +     + + + + + +  + + +  + +       +  + + +    + +    +   + +      +     + +   + + +  +    + +       +   + + +  +  +    + + + + +     + +   +  +  + +   + +  +  + +  + + + + + +  + + +  + +    + + + +  + + +   +    + + +   + +     +    +     + +   +  + +  +  +   + + +   +  +  + + + + + + +  +   +   +     + +    + +      +     + +       +                 +  +   +    +  +           + +    +      +        +               + +              +                            +           +    +                            +                            + +   +  +  + + +  +  +    +         +        +    +                   +              +                        +   +          +             +                   +    +               +     +         +        +                   +  +  +                +   +                       +              +        + +    + +    + +  +        +     +    +     + +    +      + + +     + + + + + + +                +            +            +          +    +     +   + + + +     +  + +   + + + + + + + + +  + + + + + + +  +   +   +   +   + +   + +  +  +  +  + + +   + +   + + + + + + + + + + + + + +  +    + +   +    + + + +      + +    + +         +    +  +   +                   + + +     +    +                 + +   +      +    + +                  +      +  +            + + +            +    + +        + +   + + + +       + +  + + + + + + +  + + + + + + + + + + + + + + +       +  +  +    + +   +  + +  +  + +   + +   + +   + + + +     + +  +  + + + + +   + + +  + + + + +  +    + + + + +  + + +  + + +  + + + +  + +    +         + +    + + + + + +   + + +    + + + + + + +     + + + + + + + + +     + + + + + + + +  +    + + +  +  +  + +  + +   + +  + + +       + + + + + + + +  + + +    + +   + +  + + + +   + + +    + +   + +   +  + +  +   + + + + + + + +  + + +  +    + + + + + + +   + +    + +  + + + + + + +  +    + + + + + + + +  + + + + + + +  +  +   + + + +  +     +  + + + + +  +  +   + + +  + + + + +  + + + + +  + + + +  + +    + + +  + +  +  + +  + + + +  +  +   +   +     + + +  + + + + + + + +     + +  + + + +   + + +   +     +        + +  +   +  + +           + +  + +     + +   +  + + + +        + + +    + +  + + + + + + +    +   +   + + + + + + +  +    + + + +   + +          +   + + +    +  + +  +  +  +    + + +   + +        +  +                       + +   +   + + + + +                 + +    + +         +  +                     +              +   +             +           +   + +                  +  +        +      +   + +          +               +      +   +  + + + + + + + +  + + + + + + + + +  + + + +   + + + + + + +  + + + + + + + + + + + + + + + + +   + +   + + + + +   + +    +  + + +      +  + +   +  + + +  + + + + + +   + + + + + + + + + + +   + + + + +   + + + + + + + + +  +     +  + + + + +  + + + + + + + + + + + +    + +   +   +      + + +    + + + +     + + +     + +  +    + + + +  +   + +  + + + + + + +    +  + +     + + + + + +    +   + +      + + + + + + +  + + +    +     + + +  + + + +  +  + + + + +    +  + + + +  +    + + + +      +  +     + +   +  +  + + + +   + +  +   +     +   + +  +  + +   + + +  + +     + + +  + + +     +     + + + +     + +         +          +  + + + +  + + + +        +  +   +      +    +        +       +  +          +              +     + +     + + +  + + + +  + + +       + + +   +      + + + +  +   + +  + + +  +   +        + +     +     + +    + +   +  + + + +  + + + +     +   +    +   +    + +    +   +   + + + + + +      +             +             +      + + +   + +  + + + +  +  +   + +  +  +   + + + +    +   + + + + + + + +   + + +   + + + +  + + + + + +     + + + + +  + +  + + + + + + +   +    + + + +   +   + + + + +  + + + + + + + + + + +   +     + + + + +  + + + + + +  +   + + +     + +  + + + + + + + + + + + +  + + +   + +  + + +  +   +  + + + +   + +  + + + + + + + +   + + +    + + + + + +       + + +  +  + + + + + + + + + + + + +  + + + + + + + + + + +  + + +  +  + + + + + + + + + + + + + + + + + +  +   + + + +  + +  +  + +     + + + + + + + + + + + + +  + + + + + + + + +  + + + + + +   + +  + + + + + + + +  + + + +  + + +   + +    + +    +    +   + + +  +   + +  +       +      + + +  + +   +   + + +    +     +   + + + + + +              + + + +  +  + + + + + + + +  +     + + + +         + +     + +  + +     + + +   +   + + + + + +    +     +        +     +  +    +  + + + +    + + + + + +   + + +   +  + + + +    +    +  + + + + + +  + + +   + + + + + + + + +  + +  + + + + +  + + +  + + + + + + + + +  + + +   + + + +  + + + +  +   +  + + +  +  +  + +     +    + + + +  + + + + + + +  + + + +  + + +         +  + + + +   + +  +  + +    + +   +   + + +  +  + + + + + + + + + +     + + +   + + + +  + +  + +  +  + + + + +  + +    + + + + + + + + + + + + + + +  + + + +    + + + + +  +  + + + + + + + +  + + + + + +  +  + + + + +   + + +   +    + +  + + + +  + + + + + + + + + + + + + + + + +   + + + + + + + + +    + +  + + + +   + + + + + + + + + + + +    + + + + + + +  + + + +  + + +  + + + + + + + + + + + + +  + + +  + + + + + +  + + + + + + + + + + +    + + + +  + + +  + + + + +  315Á»ÌîìóßÝßèæêäæä×ÒÓ„qx% +               ^[dßÚéèçêáßâëêíæåççæçéééèæèéçéèæèååäãâ࣓š:(.   ~y…ëçôäãæäáæèèéáâà´¥¬I6<                    +             +       + + +  +  + ~ˆèåñàâàÊÁÇp\e[Z^ÜØçéæìÞÞÞèç記 L;A–ŸïíößàÞÁ¶½_JS  +us{çãñåãçàààãáâ—„Ž3"(    111½¹ÈëëðÚÙØ­œ¦B/6  +   +¥¢®ðí÷àßáçäéæçæÞÚÛ›ˆ’3"( +          gfláÞëäæåÓÌÐ~jtTHLËÈÑòïößÜßìëîèçéæäåêéêèæèéçèéèéååäææ㹩²M8B                                        + +     +  +       + +     + +    + +   +  + +    +   + +  +   +      +   + + +     + + + +  + + + +   + + + + +         +     +      + +     +     +     +    + + + +  + + + + + + + + + + + + + + + + + + + +   + + +  + + + + + + + + + + + + + + + + +         + + + +  + + + + + + + + + + + +    + + + + + +  + + + + + + + + + + + + + +  + +  + + + +  + +  + + +   + + +      +    7)6ıÍîíóßÝàèæêäèäÖ×Ò€{w$ +               cOeáÔêèéêáÞâëéíæåçèåèéèéèæèéçéèçèäåäâäà œ™8..   ‚m†ìãõãååäàæèèéáãà±®«F><                      +                  + + + +    + …q‰éáñàäàÉÆÆnfe^N`ÞÒçèèìÞÝÞèé覣 LB                                + +   +  +     + + + +  + + + +   + + +   +   +  + + +    + + + +  +  + +  + + + + + + + + + + + + + + + + + + + + + +  + + +   + + + + + + + + + + + + + +    + + + + + + + + + + + + + + + + + + +  + + + + + + + +  + + + + + + + + +  + + + + +  + + + + + + +      +       +     + + +   +   +  +   + +  +       + +   +     + + + + + + + +  + +  + + + +     +  + + + +    + +  + + + +     + + + +    + +    +   Ž„•íéõâáãåâçêéìåãæéçèéçèèåèæååæçäļ¾\KP              ^Ubß×éèèëáÞâëêíæåççåçéééçæèéçéèçèäåäããࣗ›:,/  DHÑÆÛéëìÖÔÔšŽ“2%'   [R^ÜÔæåççÔÐÑ„):39Æ»ÏìëðÖÖÔÒÆÏáÖãëéíèæèæäææèäÕÐÑwgm"                                       +             +              +      +    +  +  +   +        +   +  +           + + +   +      + + +  + +   +  + +         + + +  +   +  + +  + + + +  + +  + + + + + + + + + + + + + + + + +   +      +  +  + +     +  + + + +  + +  +   +        +  +    +    +   +   +   + + + +                       + +     +  + + +      +   + + + + +      + + +™–›ïëößÝàãäâÚÔÙ|gv%          +   [YYÝÙäéçìáßáëéíæäççåçéæéçâçéçééçèååäãâᥔ¡<*3  MKKÖÑÜëéðàÞáéçêãæäÍÄÊlXe +                                             yêæòäâæäáäëéíãáãåçãÎÈÌjWc   + ™’›ïëöáàãæäèêéìâáâæçäÁ·¾VDO           2.-¾¶ÄëëðÚÙÙ¬ž©A19  +•ŸëèòÞßÞ¿´¼ZIS  + +KEHÓÌÚèêìÕÓÔ—ˆ“/!&   Ž…ëèóßáßżÂdT^  + >8:ËÂÑîíôßÝàëéìèçéæäæêééèæèéæèéèéååäåæ中´L4:ʽÐíëóÝÛÝçèç¾¹¼REJ  +PDMØÌßëëïàÝáëéíåäçããáÞÞÜŒ‚‡, #              +    +     +         +   + + + + + +  +  + +‚uƒëåóããåäáåëêíãâãåæãÍÉËhYa   +›ŸïëöáàâæãèêéìâáâæçäÀ¹¼UFL           3,/¿´ÆëëðÚÙØ« ¨@38  +ž’¡ëèòÞàÞ¾µ»YJQ  +LCIÔËÛèêëÖÓÔ–‰’/"& /)*»°ÀëêðÛÛÚ­¡©C4:  + @9=ÌÂÓêêíØ×Ö¡”œ7).  % ®¤²ðìöÞÝßåæåÐËÏkZb                                      +      +         + +  +  + +    + +    + +   +   +   +     + +  +  +        +   + + +          + + +  + + + + + +   + + +  +  +   +    + + + +  + + +  + + + + + + + + + +   + +  + + + + + + + + + + + +  + + + + + + + + + + + + +   + + + +  + + + + + +  + + + + + + +   + + + +  + + + +  + + + + +  + + + +   + + + +  + + + + + + +  + + + + + + + + + +  + + +   + + + + + + + + + + + + + + + + + +  +  + + + +  g^jãÛìææéâÞãèçéâäáÁ¹¼ZJO       +       `VbÞÖçäææÒÎЈz€%=6=É¿ÑíëóÝÜÝçèè¾·ºSCI  OGP×ÏàëëïàÝáëéíåäæãäáÞÝÛŒ…,"                                          +  + v…ëåóããåäàåëéíãáãåæãÎÉÊhY_   › ïë÷áàâæãèêéìâááæçãÀ¹»UFK           3,1¿´ÇëêðÙÚØ«¡§@36  +’£ìèòÞàÝ¿¶»YKP  + LBKÔÊÜèêëÕÓÓ–Š‘/"% /),»¯ÁëêðÛÜÙ­¢¨C59  + @8?ËÁÔéêíØ×Ö¡•œ6*-  +$!®¢´ïìöÞÝßåæåÐÍÏj\b                                    +    +                +   + + + + + +  +    +      +   + + + +      +    + + +  +      +   + +    + + + + + + + +   + + +    + + + +    + + + + + + + + + + + + +   +   +  +   + + + + + + + + + + +  + + + + + + + + + + + + + + + + + + +   +   + + + + + + +  + + + +   + + +   + +  + + + +  + + + + + + +     + + + +  + +  +   +   +  + + + + + + +  + + +   + +  + + + +  +    + + +  + + + + +    111½ºÈîìôßÝàèåêäæäØÑÔ‡q{& +   +      + +        + + + + + +   œ©ìêóÝÞܾ±¹XEM   +  +  TSXÚÖäéçíÝÜÝçç篟§D08           + +  +     +  + + + +   + +    + + + + + + +   +  + z‡éåòàáßÑËÎ×Ë×èâêéèéãäáÞÚÛ}…,"  +—‘ŸîëõÜÞÛÑÉÎÚÎÛêåìçæçäåâ×ÑÓ{hp#         1.1½·ÈëëïÚÙØ­ž¦B16  œ•¤ëèóÞßÝ¿³ºZHO   + JFLÓÌÝèéêÖÓÓ—‡/!$ -+-¹²ÃëêðÛÛÙ® §C28  +   +          + ‚{ŠèäñàâàÉÂÆo]d       +     + +   +       +  +  + +      + + + + + + + +  + + + + + +   +    +  +  + + + + + + + + + + + + + + + + +  + + + + + + + + + + + + + + + +  + + + + + + + +  + + + + + + + + + +  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +  + + + + + + + + +          + + + + +    +     + + + + + +        + + + + + +   + + + +     + + + +       +   +    +  + + +   + + + + + + +  +       + +   + + +   + + + + + + + 4+/Á´ÆîíôßÝàèåêäæåÖÔÕƒx}% +         +                + ¤”§ìéóÜßܼµºUJN   +  +  YLVÜÑãéèíÝÜÝæè竦¨A5:                   +        +                + +„r„êãòßãàÑÌÎØÊ×èàêèèéãäáÝÝÛ‹„‡* " +›ˆžîéõÛßÜÑÊÎÛÍÛêäìçççäåâÕÕÔwoq!        4)0Á¯ÆëëðÙÛت¤¨?67  Ÿ¢ìçóÞàݽ¹»WOP  N?KÕÆÜèëëÕÕÔ”Ž‘.%% 0%,½«ÁëêðÚÜÙ«¦¨A89  +   +          + ‡rˆêâñàäàÈÅÆkde  +              + +                  + +   + + + + + +  +  + +  + + + +  + + + + + + + + + + + + + +   + + +   + +  + + + + +  + + + + + + + + + + + + + + + + + + + + + + + + + + + + +  + + + + + + +  + + + + + + +   + + +  + + + +  + + + + + + +   + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +  +  + + + + + + + + + + + +  + + + + + + + + + + + + + + + + + + + + + + + + + + + + +  + + + + +  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +  + + + + + + + + + + +  bXeàÙéçæêÝÜÝææ奚ž<-2    +   + + + +  + + + + +      + + + + + + + + ¦œ®ìêòÜÞÛ»±·TEI     +   1,/½³ÆëëðÙÚج §B37  +   +   +        +  +  + +    + + + + + + + +   + + + + + + + + + …|‰éäñàãàËÃÈjZ`dT]Þ×äíëðÜÛÜèé鬟¥A06 +š’ ìéóßáÞÀ¶½\KQxjsêåñçæêÞÞÞæå噊’4$*       402À¹ÉëêïÙÙت¥?/5  +Ÿ˜¥ìéòÞßݽ²¹XFN  + MHMÕÎÞèéêÕÒÓ•…/!% TMTÚÔãèéêÒÎÐŒ{…(    +           + …‰éåñàâàÈÀÆm[e  +            +               + +        +  +    + + + + + +  + + + +   + + + + + + +  +  + +  + + + + + + + + +  + + + + + + +  + + + +  + + +  +  + + + +  + +    + +   +     + + + +  +    +  +  +    + + + + +    + + + + + + +  +     + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +  + + + + + + + + + + + + + +  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +  + + + + + + + + +  + + + + + + + + + + +  eOdâÔéçèêÞÛÝåç壢Ÿ;22 +        + +    +     + + + +   + +  + +"©’®ìèòÜßÛ¹··QKI   +  +   3%/¿«ÆëëðÙÛØ«¦§@97  +   +   +   + +        +    + + +  +  + +  + +   + + + + + +  + †r‰éáñàäàÊÇÈha`eN]ßÐäìíðÜÚÜèé誨¥@56 œˆ¡ìçóßâÞ¿»½[QQyasëàñçèêÞÝÞåçå—“‘3(*       5)2°ÉëëïÙÛØ©¤¥>65  ¡Ž¥ìçòÞáݼ¸¹VMN  +O@MÖÇÞèêêÕÔÓ”Ž.%$ UETÛÎãçëéÒÑЋƒ…(    +           + †uŠêãñàãàÈÄÆlcd      +              +    + +  + + +  +     + + + + + +  + + + + +  +  + + + +   + + + + + + + + + + + +   +  + + + + + + +  + + + + + + + + + + + + + + + + + + + +  +  + + + + + + + + + + + + + + + +   +  + +  + + + + + +   + + + + +  + + + + + + + + + + + +  + + + + + + + + + + + + + + + + + + + + + + + + +  + + +  + + + + + + + + + + + + + + +  + + +  + +  + + + + +  + +  + + + + + + + + +  + + + +   + + + +  + +  + + + + +  +  + + + + +  + + + +  + + + + + + +    + + + + + + +   + + ’‹’îéõàßâââáÜÙÝp}'  +              + + +   c\^ßÙæäææÒÍІwƒ% ¤™¤íëôÝßÝ»±ºVGO€pvëæñãååÊÄÉteq +0*)»±¾ììòÚÚÙ¬¡«B4<     +         + +            + + + + +  + +   + +   + + + +†yƒéäðßâáÉÃÈoak 4**¼®¼îëõßÞßæææÈÄÉ_QZ˜‹—îëôÞàÞ¿¸¾]PXI=AÏÂÒìëóÞÝÞçèç¹³¹M?G       5-/µÆëëðÙÚØ© ¨>38  ¡“¡ëèóÝàݼµ»VJQ  OCJÖËÜçêëÕÓÔ•‹“,"&Ž}ŠéâïáäâÆÁÅeZa  +   E9?ÎÂÔéêí××Ö•œ4*-    „t‚êãñàäáÈÃÇlag  +              +                + + + + + + + + + +  + + +  +  + +  + + + +  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +  + + + + + + + + + + + + + + + + + + + + + + + + + +  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +  + + + + + + + +  + + +  + + + +  + + + + + + + +  + + + + + + + +  + + + + + + + + + + + +  + + + + + + + + + +  + + + + + + + + + + + + + + + + + +  + +  + +  Ž„—íéöàßáááâÝÛÛ„uy(        + +      +  + +  _VdÞÖèäçåÓÏÏŠ{'  ”ªíêôÞàܽ´¸XIL|l{êäòäæäÌÆÈwjl -'-¸¬ÃíìñÚÛد¥¨E89  +   +      +    +  + + + + + + + +  + +     + + + + + + + + + + +  + ‚u‰èâñàãàÊÅÆreg 1'.¹«ÁîëõßßßæææÊÆÆbTV”†íéôÞàÝÁº¼`SUF:EÌ¿ÕíëòÞÞÞçè缶¶PBD       3*3¿²ÊëëïÙÚج¢¤A55  +¦ëèòÞàݾ·¹YMM   + LAOÔÈßèêêÕÔÓ—.$# ŠzèáðâåâÇÂÃh\]  +   B6CÌ¿×éêìØØÕ —˜6,*    €pˆéâòáäàÉÅÅndd  +        +      + +        + + +    + +   +  + + + + +   + + + + + + +  + + + + + + + +     + +  + + + +  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +  + + + + + + + + + +  + + + + + + + + + + + + + + + + +  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +  + •šëåòÞâÝÿÀaYX  +  + +  +   + + +  + + + + + + +  cRfáÕêçèêÝÜÞåç夠ž<12 <.;ʺÒïïôÜÚÜééé¼¼¸SFHƒmìäôååèàßáãåâ’ŒŠ1&' +TCTÛËäëèïÝÜÝçé笧¥A67              +    +          +    + + +  + + + + + +  + ‚r‰éâñàãàÊÅÆoee†vŒîè÷ââãáàáÞß܇|}(˜‡žìæóàäßÁº¼]RR ¨òîúßÞÞääåÖÔÓreg"      2)1¾±ÈëëïÚÛØ­£¦B66  œ¤ïêöàßàäãäÙÖÕzln% tgzéâóåäçàßàåå䆆NʼÕîíóÜÚÜééé¼¹µSDF„p…íåõåäçààáãäá’ˆ‡0%& +UFXÛÐæëêíÝÛÝçèç«¥¢A45                              +  +  +   +  + + +  + „uŒéãñàãßÉÄÅnbbˆyïéøááâáàâÞÝÛ…zz&š‰¡ìæóàãßÀ¸º\OP ¢“¬òîùÞÝÞääåÕÓÑpcd!     3+4¿³ËëëïÙÚØ«¡¤@44  +ž’¨ïêößßàãää×ÕÔwjk$ xj}êäôääæàßàää㎃ƒN  513ºÊîìôßÞàêèìèçéæäæêèéèçèèåèåæäâáà “š9)/ G@DÓËÚîíòàÝàìêîçæèçåæêééèæèèåèåçäÝÚÚŒ}…,"                   +              + + +   +   + +  + …zˆéäñàâàÉÂÆn_e_V_ÞÖæèçìÞÝÞèç襛 L;A ’ŸïìößàßÀ¸¼\MR yo{èáñääçàààââ╈Ž2#(    4-2ÀµÉëëïÙÙتŸ¥@26   pdræßïææèâßãëêíæäæèæçéééèæèçåææèäÑÍÍrdi1),¹ª¾ìëòÝßܯ¥«F9<     +    +!¨›¯ðì÷àßáèäêêéëåäæéèééçèèæèæåååæ㶭°K. A2B1 A. 6$ +1& <. 4! ( ) 3) ?1 H6 O: >% +% + + + +  ,& 9* 2! +. +. + , % + +    /& 3$ ! + + + +  + +   + + +     + +   +     +     +    + +        +  +    + &  + +  +       + + + +  +        ! + +     +    *!  + +   + + +      +                  + +    + +  +    + + + + + +      + +        + +  + +       + +  + +              + + +  + + +  + + +  + + +      +  + +  +     + + +  + + +    + + + + + + + + +   +     + +    +  + + +   + +   +    + + +  + + + +  +  +  +      + + +    + + + +  + + +         + +   + +      + + +   +  + + + + +   + + +  + +   (  + +  +  + + +  + + + +  +  + +     +  + + +   +  + + +  + +  + +  + + + + +  + + +    ! +  + + + + +  +   + + + +  + +  + + + +   +  + + + +  + + + + +# 3& 5& + + + + +  + +  +! +' + + + + + + + + + + + + + + + +u1”z2—€<’|;‹q4ƒf)‚i&€i"va"t\)qT w\ ~`(}\%~_$vXeLZBQ:J7B3 I> cUlT_FL9 E4 L; O<G- @/ H9 F2 <- C9 ]PeS!O;D6 D8 ;. 8+ 4* 1& 7, ;, 0! /& <2 >4 <2 =2 A5 <- 3' 5( 4& *# ++! - ' $ $ 1+ ;.,! $ +& % 2' 2  +   + +  ! $ -" ) " + # + & 6) @7;- + +  + +      + +  +  +    + +   % & + +    + + %! .% .% . + + +  (# *!  + +  + + + + + + +     +     + +  +   + + + +    +   + + +     +  +   + + + + + + + + +     + + + +  + + + + + + + + + + + + +  + + + + + + +  +  + + + + + + + + + + + +   + + + + + +   + + + + + + +  + + + +  + + + + + + + + + + + + + + + + + + + + + + +  + + + + + + + +  + + + + + + + + +  + +   + + + +  + + + + + + + + + + + +  + +  + + + + + +   + + + + + + + + + + + + + + + + +   +    + + + + + + + + +  + ( " + + + + + + + + + + + + + + + + + + +  + +  + + + + + + + + +  + + + +  + + + + + + + +   + + +  + +' 5& 0$ +  + +! + + + + + + + + + + + + + + +  +  + +  + + + + + + +  + ++ =. B0 G6 :( +  + + + + +% /! 6% :) +. + +  +" + +  + +  + $ ( +' ++ ;* Ä _Ħ\ǪWȤ]š\»–W½–Sº”Nµ•T¶–T±ŒH¯D­‡9¦|4¬†<²ŽA¯G©‹E¤„9ž~7•u;™~A§’L¢ŠA™x2Šl-‚g,ˆk-„i*‚g.t8•=•{B“y>‘{9™†C£ŽJž‡I™ƒOšM”}AŽ|=ŒzDŒzD‹{=‰x>ƒo<‚o6zA’}C’D—ƒK—B’|?ŽyAŠwA…o>‚m8~l4{g6yf8sa1qd/v=ˆzFvc4n\*iV!fV$oa/mX(^K[K#]J"RAK>QF]T dR%hW(pd3gX/]O$eR'YH"QF"_S*k[(p`,ra0eT([L&XL%YMYK PF"WM'`T(WHG9B4>1<- 6',!/% 2% /# /" 1& 3* 8- C8E78'0# 4,7) , ( 1(B6J:J8:* & +$ $ 1+JFSJI81"$ "       +  %  +   +              #  *" 4) $ + +  +   + +  +    + +    +      +     +  +   +  + + + + + + + # + +   +    + +  + + +    +           + +         +  , + +  +   +   + +       + + + + +  +   +     +    +   + +     + +        +   +     + + + +  +  +  + +    + + + + + + + + +  + +        + + +    + + +       +    + + + & +& % + +      +  + +   + + +   + +     + +                + +      % # * 2$ . +- ! + (  + !  +  + +  +    +  ' 5& @/ ;( +, +) +* $ +! + +  ' ) 5& ;* =* P= _F ^CZAI1 +- +( 2 8$ @0 H8 P:XD_K\? E, <+ +J4 K1 =& 9# ?( ?& :! 9$ A- I4 I4 J5 S; ]CÌ¥`˦[̨_Ï«bÏ¥gÍ¥aͤVÇšYÁšYÆ¢QÈžLÅ™LÁ’D»‡5¾‘CÇžRÅOÅMÈžNÅžUÄWÈ£YÌ«\Ç¢T™Xº—S¸•F½–K·˜U¸[Ŧ`È©aǧ^Ū\Å°[È­bίjвoϱrϳrÊ°hĦ^Å©eÆ­fŧcĨ`¿¨]Á§^Å«hÈ­m̲pϳkϵlлpͺsɳoÈ°pɵpʱjǪrůk­\¿©eÆ´mʲk¿£e¸£[µ£X¶¡`º¡[³œZ°™`¯˜^¬”]¦Y¡“V§šW±¡`µh´›g·£h¶¨i²£j±˜^¬–V¬Z°Ÿ]¯™[°™[°œ^ª˜Vª˜S­™^°žh° c¨™W¨™^¯ o­k Yœ‰X›‡T”‚K‹zC‚q:}p9~r7€n<€l;r:…u=…xEŒL’{LŠvI…xG…xDr@|k=zmA‚vBˆyC‡uFˆvF‚q>yh4th5si7zjA„uJ€J’€M…tDzk;te:pd>k_8eW/]Q(VL PD QI'g_5o`5aV'XN!QCNBJ>F9A9B8E;F=@37+3$ /# -& 9/F=K@M=JA\V+m`2bQ(VA P>E41 +* -# ( % " ! !   "          $  + + + +   $ +" + +  +  + +   .$ 6"  + +      +% ) ! + +$ 5. 4(  + +   + + + + +  + + + + + +   ) /' ( + +) :' ( +$ + + +   + +  + + + + + + + +  + +     +   +   + + + + + + + + + + +   +  + + +    + + +   + +   + + + + + + + + +    + + +  + + &  + +  +   +   + + +  + +  + + +  + + +   + + + + + +   + + ." .! 2% * + + + + + + $ ( + + + (  + +    + +   + + + +  $ # + +  + + ! #  + + + +    # ) % 4( ?- :- ;- 4" - +4* 0% +2% ?2 @/ L<O? >) +4 +' + +" $ ( 0" :+ E6 N; YD`I^CV9 M4 +O: U> T; P6 +K3 O; aLmUsZq[r[|a€g‚d€`qTfHhQr_}c%„l'‡m%Œl)v0“v0Šh%|_c„f‚f ~_xYv\|_yZpUtWyW{WyZuWrTØ­bÔ©`Ì¥\˧bÓ¬lØ°lÓ¬dϦ\Ì£ZÍžWʘNÈ’KÂŽDºˆ6¾;Ã’DÁA‘?Æ—FÇ™HÉ™JÍ¡PΦSÍ¢SΣSФTϤXͧ]ЫbѬ`Ò¬_Õ¬iÑ«hÓ¬cÖ²h×´fزfݲnÚ³uÕ´qÒ±sÌ©iɦ^Ï«hÓªiÑ©fÑ­fÓ³hÕ´k׸uÖ¹v×·rÙ¹uÙ¸yصsÕ·rعpܽnÚ»kضhÖµnÕ±jزiݼxÜ¿yÖ¶rѳnÓºnÔ¹lѱdÏ«aΰdÕ¹mؽuÒ·pÏ·iÓ¼p×¾tؼvÙ½€ÛÄ‚ÚÉ€ÚÆؽ}×¼~ؽ~Ó½vÖºwÙ¸xÕ·qÒ³nÏ°qжr×¾vÖ¼yÓ¸yÓ¹|ÒºzÒ¶qεk̹sÔºxϹ{É´qʳjųp¯sÄ­t®uÅ«hĪeÇ´qÌ·oƱmÆ­rǬpÁ¬jÁ«rÅ«n«kÁ«kÀ§e¨gÆ­oDZuÅ°rÁ©n©rÁ©p½§mÀ¬uÄ­rÁ«mÀ©p¾ªp¿«j¾¨fº¦j¸ c²b«š`©˜Yµ¤gµ¤g®™b¯™b­–_§’[¡ŒQš‰L˜‡U˜ˆWœU¢ŒWšƒN~I‡xJ…vG…tE†vCŽ~MŽxIŒv<‘}D˜‡R¢X¢ˆR’vHˆn=}i2pY.lW&m]#n_.pc7pa.oY-gS(^L%^P%^NWFWCUAP=O9G5C3D5K>UHS=L5F3@, -;1?4H<YJYGJ7?/<*8+ :0 D6M@SDR@P=G/:& I=`P^E?( ) -$ 6* 3" . 0' 8. 5( 1$ -! ( ' ' ! $ + , 1' A5L<<- /% E:O=C0>.+ * <0 0"  +& ' % +  + +! #  +  +    & 0" * 7/ >0 " + +   + + + +  +! $ ! 0% + ' , % + 1# -" +! ! + %  +   +    + + +$ % + +  +  + + + +  # % 5, <3 ?2 UJXH- + +     +  " ) . +- * +% + +  +  + + + $ 0# + +! +   + + + + + - :+ B2 >, - +$ +" + + + =1 K<C5 :, 7* =/ D3- +  +) ' +* 4' 9- <- ?/ ;( 1 +, +, - 8' I8 G5 >- ?. 9' 6$ ;, C2 H4 :) + ++ 0 +6$ 9) :, A0 G5 G5 K8 YD`IfMiTdSfQpWrZ w`)~f&~c%‡k4ƒj*pVbJ\G_MiVq[xb#|m)€l'‰k'‹m*Šn.†j(zXpNy[…h$o,’u0Žu0r-•w1£‡D¬‘Gª‰;£…8Ÿƒ7¥ƒ5©‰:«Œ<«Š=¦…:¢„8«ŒC±•L´Pº¡R¶œK´œG¸žKµšO°‘F«ŒI¯“M³–H°—J±—K²“H­C«@§…5žz4›{9›{:šz4–w,i _àºrܵoÏ«pͪmÖ¯kܳlÚ³mزqÚ¬mפ]ÑžQÊ™KÄ‘HÁŠ?¿Š<‘@ÀŒ:¿‰7Å”<ËEÎLÑšOОOÍŸJÏ JÒ¥RЦTÏ KΟMÌ PÍ QϤXΤZѧ\ÔªaÓ¬eÖ®cÔ®_Öª_Õ«fÔ¬dϨ^ϦdÕ¯hÖ°gÕ«_Õ¯cÙ°hÙ±h×±lÔ­gÑ«cаfϯhЫfÒ¬dÕ°dÙµjÙ²fÓ­bÑ«`Ϧ^ЬcÕ®cÖ°hÔ±jÓ¯hÓ¯jÑ®gÍ©aÌ©\Ï­[Ô¯aÕ±cѲfÒ±lÕ³hÔ°iÕ³qÜ»qÚ¸xÔ´vÖ´iÖ³hÕ·kÖ¶oسoÛ·tÚ·uÕ±mÒ°kϱfÏ­cÓ±jÖ¶rÕ¶oÔ·n×¹oÓ±kÓ­gÕµk×»oÕ¸pÕ¶qØ·oÖ¶vÕµs×¹mÖ»mÓµlÔ¸nؾrܸqضqÔ¶qѳkгqͲuжvÕ»zѸuÍ°oѵtÔº{Ó¶zÔ¹uÓ¼yÖ¾zØÃ|×Á€Ö½|Ѹyγq϶n̶mиj϶mͶuÒ¶rѳv̳v̵hÓ¹sÒºxйrÖºvÕºzÖ¹yÒ´oȯkɱqͳq˶rÌ´qË®nÈ°lÈ®lÈ«oêkÀ¦dÀ¤e¿¤g½§f»¥c½¢cÁ¨e¿§^¸¢T´ŸX³›\±œW±œR´œY¶ ]·¢`»¢a¸ ]±—Z¬”Z®–Vª‘P ‡L ƒQ…K˜‚C—y?“t6Žt6Œs?Œw:“~8‘{<Žv‰u8’|C“w?‡p1x3Žy?|F™ƒ@™>Žv7Šp1†j2€g2~j5‚p5Œv6’v:p7‰p2‚i.x]&za&‚m/€f.qV$kU mZ"kQ iQi[!tb/ƒp@ƒsz`*K1 ;- 9- ' +' =1NARIUJZK\L`P\JP?O?M<M<D53' 4) =2I:UCdQ"jT%XEL?O>P>MAK?M<N?O=V?`KgOmW!dQ VDSAP<O?ZLgU#r^(t^#lVua'k*zf&u` fQ^IjT!jY hYo\xb%|h,|g*zf'yc*y_)t[lPlT|e&‚g*}f&k,|j+ta"u_$ze*|c/x_%p\nZs[{`!zc&{a$~b#‚g)ƒi-†i/p0–y6 ƒC¥ˆG¨ŒJ¯–O³˜K¯‘N²”Q´˜M®“M¯N«ŽD¡‡5~1‚?¥C°•E¶œR·žTµŸQ°–I®ŒC®Eª‘A¨‰:¤‚2š|/¥†:´•F´™Hº˜Mº—L·™I»šLÁ VĤXÀ¡P»šNºšL½œJÀMÀ UÁ¢VæMÄ£P X¼£Xªb˵hƱeÇ«]È­bêeÄ«\É°`Ê°eȬfǨkÆ¥eȦ^ã[ÁžXÁœT·K­ŽC«=ª‡=žy4’o&ˆh%àºwÞ¼yÚ¼tܹtݺrÞ¼pß·tÚµuÚ³r×­mÔ«bѦZËœOÈ•GÍ“EÍ•HÉ•FÄ•CËMÐ¥XÑ«WÕ©UÕ£YÔ¥SÕ©SÓ«ZÑ£SÓ›FΙAÌœIÏ¢SÍ¡KÊšGÍžRÒ¢VÔŸYÒ¡VÍ£YѨ^׫_רaש]Ó©UФQÕ£WÔ¦XÕ©aÙ­jØ°kÔ±fѪeÒ§\×­]×°eÖ­cÖ®bÚ®fÚ®j׬`ѦYÍ¥YШZÓ«^Ò­_Ö¬cØ­jÖ±gÖ®cÕ¨iÒªdÒ©^ѦcЦbÒ§^Õ«eÕ­eÔ«bÓ¨cÓ¬gЬ`ѪfѪfͦ]ϧbÕ±m׳pÙ¶nØ·kÖ²bÒ¬cÏ©\ͦWÌ¥Yͨ\ЫhÓ²kÔ³jÖ³mÖ³iÓµfÔµpسpÙ´fÕ°aÖ°iײiÕ°aÒ¯`Ó®bЭcÔ´iÝ»vÛ¹w׸zÙ·wÖ¸qÖ¸rÕ²v׶yÙ¼yصoÒ­mѯyÖ¹zÔ¶oбjζnÖ¹vÛ¿~Ø¿ØÀ|Ô¿zÒ¹pÖ·nеjÑ´lÔ¶qбlÓ­eÒ±iбjÓ´iÙ»nܾpغqÚ¹uÙ·tÔµpÒµkÕ±jÔ°qÕ¶qÛºnÖ´lÑ®kÓ¯mÕ³pÓ¹rÒ·nÏ°gήgÍ©eÏ«bѯ`Ï­eЯmѯhÏ®eаgвpÒ³mѳhβmвpαlͳgͱhÌ­dË°iË´sÌ®kʨeÈ©eɨ_Ê©_ [¾œWÀ¡Z¾žV¹œK¼ŸP¿žZ¿ŸZÀ¡_Á¢`¢\Á¥`¦_À Y¾¢_¾£`»ŸV¼ŸUÁžW¾šQ¼›M¾ŸRÀ¡YÄ¥`Ūiŧe¾šRº™MºœR¸šM´“F²•S¶šY·”K²L±’R³O­ŠHª‰E¬P©Q¥ŠK§M¬R¨‡Q§ŠHªŽC«K¸œX¼¡^³–V­’K¬“P«N¬‘L©–Rª”V¦ˆI„B¡ŠH«QªRª‘P±—S´˜T°–P±—P³”S°•S²šX²“T¤ˆKŸŒQ¢ŠLœ†Aœ†EšƒC—„D–‚C“|>|A’}C”|C’zA’|F–K’{;‡w6‰z@€F“€I’~D”€F˜F’x?{A›„K›ƒLŸ‹Q£Tœ‡JšƒEš‚E™†?¢’K¨N§E¦“K«–T¯˜U«”P«“M§K‡F›ˆJˆH›…G ‹P«—V«•R©L«’Q¯›W¯›R¥ŽFžƒ=™~<—€=šŠCœŠD™„D›‡CŸ†F¡‡Hœ‡E•ƒHš‰MžˆO¦ŽY¯™^¯šZ³Ÿa´^­“P”x:u]$n\&m]&gTj]&w@ˆN¤ŽQ‡E™‚?›ˆEˆHš…E’z:ˆm6ˆsAxFŠq=~g4~k:‹xA—ƒ?œ‡D¤ŒO¥‹LœƒE–{?—z<˜€@˜„G˜„Jš…I˜„C”z?–y=„?ž…@¢ˆG‚E’x:“x;“}>˜…I£ŒL¥I¢ˆE›~: ‚<¬E¯E­C¬D¦‹A¤ˆF¬’W­”S¨ŒK§N¬“K°L®I­ŽJµšV¸X­ˆB›o-Ži-žD¬MªI«I¯‹C­ŠGªŒM­‹A±F®‘O«‘F¬ŽDªŒB©ŒA¬ŒC­ŽC®K±ŽK²“Iµ”Lµ“Q¸–\¢bȦZȧ]ͪfË¥^Á¡WŸ^Æ `Ŧ\Á¢WÀS¿Z»šU»šN¾ŸVã_Ƥ]Ä¢^Ä¢[žR¿šO½œKÀMÁšR¾–P¿™QƤX̨ZɧWÅ¥QÅ£TÇ¥UȤQÉ¥[É©^É¥WǤQĦWƪ^Ë«bϪbÍ©cË©eΫ^¢T·œUædÔ³oÕ²mήjË®eÊ«fÈ®l϶jÕ¹nÒ´mέgǦbÀŸ^À[ä\Ä¥Z¿šY·—P²–G°@¥„/v&•p1Ü·lß»tâÂ~å‚â¼và¹nÝ´mݳlݱjÚªeתaÖ­YѦWТRÒ¥KÓ£QÕ£WÒ¨VÒªWÔªbÔ¯gÔ°gÚ±iܯ`Û®^دcÕ«WÖ©PרRÔ¦TÒ¨]ЦX΢RЦZÔ©XÖªWÑ©XÏ£VÒ¥\ѧZѦVÔ§XÔ¢VΘNΘIÏŸOÑ¥WÒ«[Ô­\ШZФYФYÔ¦WÙ¬bÖ¬eÔ«bÖ¬^Õ©YÔ¤WÔ¤TѤVÓ¤ZÔ§XѦVÕ©aײgÓ³fÙ°iسi×±kÝ°mÚ­eÓ¬aÔ­fÙ¯jÙ±nÖ°f׳lضpϪcШ`׫fÓ«gÒ²nضoݹrß¼{ÙºtÖ¸k׳iÓ¬fÑ«fÕ©hÔ¬fÓ°h×°o×´nÛºnÞ»sÞ»rܺoܼpÚ¸lÕ±gÕ¯dÒ©\ΧTÓªZÖ°fÔ¯]Õ±fܽxßÀ}à½}à¿|ݽuÛ½uÙ¼|Ú»vÛ½{Ú¿‡Ù½xÛ¹r׶}Ô¶rÓ³kÒ°rÔ³xØ·xÕ¹zÕ¶|׸tÖ¶sÕ²nÔ²pÕ¸uÕ·nÓ®lÏ«mЭeÔ°eÓ®aѲeÓ¶oÕ¶l׶mÙ¶j׶gÖµhÖµkÖ¸lÖ¶pÖµtÒ´jϯ^Ï«fÒ­lÖ²iÕµiÏ®eΪdͨ`È£^ͤeѬjÑ°lÒ°jÒ¯hÒ±n×·kÓµjѱp׳sÖ¶rÕ³pÕ³vÕ¶sÒ¯lÑ°mÖ²oÕ¯lÔ±gѬeΩiΨfΤXË¥^ΦaÈSÚVƦbʬd̬dέgÏ®f˧^È£ZÊ¥\˧b˨eÊ£aɦ^άfΧjÊ¥cǦ]ɪZΰbЭhаjÒ°iÈ¢YÄ£WÍ®hË«`È£[È¥mƤdÃ[ aǨeȨfŧcÂ¥aä_Ū]Ȧ^É¥cȪbÉ©`ʨ_Ƨ^¢ZÄ¡UȦZÆ£W WÅ¥]Ä U¿œS ]ÁšX¼˜S½œVº™Tº˜O¾S½¡XÁ¥\Ä¢WÀ˜MÁ™QŸY½\¢^Á¥\¾¤YÄ©\Ä¥WÁ¡T¾£PºžQ¼œW¾¢]½¡]À¡aÁ¤fÁ¦`»¢[¸ŸU¼¤R¶¢S³šU¸Y» ^¹YºŸV¾¡Y¾ŸVº™Tº™P»¡S»¤ZÁ¥]Ĩ`éb¦d¾¥a¼¤Z½¢VÁ¡V¿¢W¿¦^ĨaÆ¥`æaë_À¦\¾£[À Z¼Z¼ŸZħWǬc§^æ[Ç©aǧZĦZÀ¢[» X½¤^ÀŸ^¿¢^«fŪdĪ`«`êhèf¿¢^¢bÄ©fǬhÌ­g̯gË°hÆ«e¿¡`µ™S«“Q¨ŽP¨ŽH¦J¨ŽQµ—\Ç«iÍ°k§c¿¥]è^Ĩc½Ÿbµ–X°’O­N­’Y¬”[«‘O®“QµœUµœQ·œU¼¤]»¢[¸šWº–P½˜X¼›Z»›[¼žeºœ^¸–U¸–Oµ–I¹•L½“M¿œV»šV¬‰F°H»Q¾¤[¿¨^¿¦\»P¶˜L»™RÀœU¼—Tº˜M¾œM¾œPÀžWÆ£`Ĥ\¿œSÀW£ZÀœP»˜TÀž]Ç¥aÅ W»?ª5¥€7·I¿›VºS¼™Q»’Q½–XÀžX¾žO¼ŸV¼¡ZÀŸPÄžV¾™U¼–MÁ˜OÁ›SÁŸZ¿ŸVÁ RÁ¡]ß]Æ¢YɨaÍ­hÍ©bʦ]Ä U¿šNÀWàSÇ¢QÆ TÄ TÄŸUÄ›WÄžU¡VÅ¢YÆ¢RžPÇœWË¢XÌ¥UË£V̤ZͨV˦QÍ£XΨ_Ì«`Ì«\ΫaЭbϯXΫVÑ«ZÏ­bέeάbÌ®aαjÓ±jÓ´kвiÌ®cа^ÁM²LǦhݺ{Ù³sаgÊ«cÅŸZŸ[̬kÔ²mѪeË£Z½šT·•U»•S¿šX¡\ÀUÀ˜Q¾™W½O¸•A±Š?¡„EÞ²oàµuà·{ݺxܹrݳnÚ³lØ·nÙµjÙ±hÖ®g׫a׫\Ô¦UÕ¥Zת^Ö©ZÚ«cÙ¬hÔ©hÔ¬fÙ²jÞ»vä¼uÞ·jݶcã¸dß´bÛ­[ݯ[ܳdØ­ZÔ­XÖ´dݱgÝ­lØ«eΤ\ËŸYÏ£_Ô¨^Û¨[Ù¤XÑ›JÈ‘=ɘOÑ£UÒŸQÑ£ZФTПPÒ¢PÕ¦MפSÒŸUÐOÓ¡QТQÏŸOÏžQÓ¨XÖ©ZÕ¡TÓ NÏŸJСMÓ¤XÕ¨^Õ­]Õª`Ô§eÖ¬`Ù°`Õ«aÔªaÖªhÕ¬iÙ´mßµnÖ«`Ò«]Ò¬eÔ¯jܸm߶uܵxݵsÙ±lÔ°o×µrÙ²mÔ­gÕ³hÚ´oÛ´nÖµiÚ¶pà¼zà¼pß³k×°p׶sܽtÙ³oÖ¯jÒ¨bУZÔ¯fÜ·lÛ¯]ׯcÛºsáÀyàÁ{߸vݳsݺtâ¼yã¹yß¼wß¾~á½~à½yÝ»tÛ¾wÙ½}Ù¹rÙµpضv׶oÛºpܶsرnÒ±jÑ®kÙ·pÚ¹mÕ²iÔ²iÖ·nÚ¸rÕ³kÒ­fÓ¯iÕ³kÔ«hÖ­hÙ±lسt×µqÖ²lÕ²mÕ³jÕ±jÕ±nÖ°gÕ°aÕ²kÔ´pÓ±hÔ²hÓ°fÑ«gѯkزhÚ³bÓ®bѬaѯfÒ±lÔ®hÔ«cÖ°hׯlÓ¬lÒ®fÓ¯bÒ¯fÔ³hÔ±kÑ®hÒ­gѧbÑ¥aϪcЮ`Ô­_ѨbÅ›Tº—KÁ WË©[Í­_Ô¬nÓ©h˦]ʤ]ͦ[Ë«_ͪfΪ_β`ѯ`Ш]ͪ^Ï©^Ϫ]ÒªZϨ_ͪaÓ«^ͦfΨlÖ²uÕ´vбnÒ¯lÒ«kϪfÏ­hÒ³jÕµpÒ²qϬgѯfÓ¯h˨aʦ\Ï«dϯhѬdÔ¬dͨe¿šS½šSÈ¡aˤ`Í«bϦbÉž\È£aÅ¡V¿™QÁ™P¼•L¶F·”K»œTÅ WÆ›W¾•MÀ•GÙMÁ˜QÀ™TÂPÄ RÅ SÅ QƤZÆ£ZÂœW˜XÅ›[ˤ\Ϩ\Ì¥]Ʀ\ĦWÁ¢[¾ a¢aŦ_ŧ^Ĥ\Ã¥[è[ã]Ç¢`Æ¢]Ä£VäQÄ¥VÇ¥VÊ¡Sȧ_Ì«eÈ¥\ŸT¿PÞTÈ£[ƦWȦ_˦`È¥Zȧ`ɧ\Ǥ[Ä¢^Æ¥[È¥]Ç¡[Æ£Y¤XâTȤWÄ¡XÅ£_ĦgÃ¥bÆ¥aÇ¢aÉ£bΨ^Ϋ_̨fË«cÍ©aÍ¥]ʨcʨfÌ­bÌ«cΧf˦bʬc˪`È¥cÅ£aèZ¦^ßb¿˜W¹˜O¼TÆ£`ͬhÏ­dʦ[Æ¢ZÆ¡\ÄW¾ŸW¼šU¶“N²•Oµ•O¶“Q¶•V´’M·“M½™V¿U½V½™R»–OÁœVßUÁUÄ¡\¾šS¼“LÀ™RÙOØLÁšLÁRÂœV¹–L¸–NÁŸ[â_¡V UÂU™UÆVÆ WÀ˜M¿šLÄ¢TÂœVÄQÈ£XÆ \Æ UÇ¢YÇ£YÇŸRÇ›WÆ¢YƤV›SºK·G¾™KÀ¤UĤ^ÈŸZÅ UÁ UÄžVÅœVÁœRÀœRƤWƧVÆ£UÄžPÃœOÇ¡ZÈ£ZÈ¢ZÅŸYÄ¥ZÇ®`Ŧ\È¥^ήgάeÈ¡]ÄžVÆŸWÀWÁœMÆŸQÇ[Éž]ϤeΪcÍ©\Í©\Ê©ZƦXƤUÈŸPÇ UÈ£[È¢YÆ¡TÈ¡UÊ£TÅŸOÄšWÌ¡]Χ]Ω]ѧ_ϨbÌ«_ͪZЯaбeÔ°eÔ°eÑ°fÏ­jÑ°pØ·uÙ·pÖ¶nÕ²bÅ Lº–OÊ©bß¿oܼqÔ²iЬcÈ£X¿S˪hÕ±mΧ_žY¼›U¾œQ¢WÅ£]¢SÅ£PÇUÅœ[ƤaÁP½•EªŒKÙ­fÚ¯hØ­pÙ°sÛ³gÙ¯cØ®hÛ´kÙ³mÕ¬fÙ®fÙ«fÔ©_Ö«]Õ¬_Ô­`Õ®aÙ¯eÜ°mزiÖ±fظqݽxã¼xã¸vܸvÜ·rÞ±nÚ°kÚ¶lܸmÞ±jܬeܲcá¹kà¶p×­iÊ¡\Å ]Ì©lÔ±mܱdÚ«^ЦWÏ TÕ¦]Õ©\Ô¦XÕ¨[Ó§ZÓ¤YØ©TØ«VØ«^Ô¥QÏœKÑ¡OÔ£OПOÒ£PÓ§VÓ¤]Ó£YÑNϘIÑŸKÑ¢HÐLÑŸQОMËœKÌŸOÑœQΛRÏžQОUÑ£[Ó¦\Т[Ï XÑ ZÒ¥cÕ«`׫\שdÕ¥dÑ¥]Ð¥aΤc̤_ͨ_Ч[ѦYÕ­bÚ´dÙ²fÙ­gÙ²kÙ²lÕ¬eÓ¨_Õ­fÕ²hÖ²jÕ±lÔ®cÒ­dضqà¹nÛ®bÙªdܱoܶrܸqÚ¸rØ·pÙ´qÙ¯lÚ±jܸoÛ²l×­gÒ¯dÓ±cØ°hÛµoÚ¸r׸u×µm׳hÚ´qÕ´rÒ°dÒ«eÓ°oظsÛºxÚ¶uÖ¶nÙ¹xÞ¼Ú»z×µsÖ´qÔµqÒ±nÒ®mÒ°jѯoÕ­lÔª_Э]Ö´h×·mÓ±e׬fÖ®fÒ®cÒ±fÕ³e×µkÖ²jÓ±h׳nÙ³f×´_Õ¯`Ѫ^ЫfΨgЩ^ѬgÑ«dÒªZÓ©_Ï«bέaÔ­fÓ«gÏ«eÏ©dÏ©aϨbÒ§_Ð¥]Ц]Ñ¥WΣWÈQ½‘I¹“JÁžNÇ¥ZÏ©cÖ¨\Ñ£ZЩeÓ¯kÑ©gЪhЫfΩ^Ñ©]Ï«[ϪZЭcбeÓ«`ÔªcÑ«gÑ«dÓ­cÓ­jØ´rعq×´rÙ´qÕ´gЭbЭfϯmѱnÒ±mѯoÓ®qÕ®iˤ`Æ]Í£^Ь^ϧbΦc̦^½—U¶“RÂUÈ¢WΩ\Ñ«aË£^ͤbÏ¥^Æ XÄYÂY½™R¹’J·”H™PÅœZÁ–N¿E¾ŒC½ŽC¼“DÁ™J¿‘F»Ž?»”B™NÁ›PÁ˜MÁ–SÁ—NÆœJÄ›H˜KÆQ›P»”H¹˜OÀœSÙPÄUÆ¢UÆ¥VǦ[Ç¥a˧eË­eÇ«bÅ¡XÇ TÇŸTÇVÇ ZÉžYÆQÁO¿“MÁ“MÂPÅ¡TÆ¡SÅ£VˤTÊ£UÇ¡XÈ£WƦXÈ¥VË¢XÄ™S¿›L¿TÁ˜WÁ–O¿•KÄšTÇ¡YƤSÈ£TÈVÈžTÈ£XɦXÇ£WÅYÄžZžPÉ¢\ʦaÄ¢TÅ¡RÅžQÀšQÂXÆWÁœQ½šRšNÆ›TĘTº’H´“I¸”Tº•TŸTÆŸXÄ™OšOÄšR¾–M¼˜MÀœMº‘I¶ŠI²F´“KµMµŽJ¹M¿˜TÁV½–G·”?»•OÚZÄ¡S¿žMÂR¿›Q¾—J”KÀ˜RÀšRĘNÂKÁšH¿”I¾›KŸOÇŸSÅ XÃZÙSÄOÄ£VÂUÀœRÅžVÉ£ZÇ¥\È£[È QÊ¡UÌ£\É¡WÈ¢VÇ¡NÇRÇ¡XÅ¢PÇžLßQàWǤYÆ¢^ÊŸ`Ì¥_ͨ\̪bÈ©`ȤVÆ¥UĨVƤ^ˤbÎ¥\È UÅ¡]È¥`˨^Ê©`Ƨ]Å£^Ë©fΨb˧dʦhǧ_Ç¡YÆWŦYƨXÆ¢Zɤ\ʧ^ͦbÑ­kÓ°hбfË®gÈ¥^Ë¥ZͨWÊ¢RÇ ZÊ£cÈ£[Ç¡[ß[ÂœWÛO»˜J¾›OÅ¡TÈ¡ZÊ¡YÉ TÊžZ˦aΫgЭfÒ­hÓ²mÑ´kͪkͪkÔµnضoÙ¶mÔ°bÇ¥WÁSˤ[Ú¶mÙ¶qѳlÉ°`Æ¥WÂ[ȦfЮeǤW¿œQÁQǤ[Ì­eͪhʦaɨ\É£]É ]ÅžX¿œJ›I¬ŽMÓ¦[ѦaÖ©dÙ­hÙ¯lÚ²kÖ±mÕ±kØ«jÖ¦iÙ°oܳk×­_Ô®]ر]Ù²_Ú³aݳnÞ¹uܹoÝ´sݶsÜ´oݶr߸uÝ´mسmسtÙ²rضkܼjÞ·oÙ­pÚ³oß»râ¹rÞ¸rÕ²lѯpÒ´yصsÛ´nÛ¹oܸoܵqá¸tâ¶tÜ´mÚ´hÙ²iÚ­fà²c߶fÞ¶hÝ°eÖ¨`Õ¨]Ø«ZשTØ©TÖ§TÕ¤QÔ¥WЦWЫWÕ«TרNרSצYÑ£WÌVÏžSÓ£VÓ£WÒ¥TÓ¥TÕ¢VÒ¢WѤSÑ TÏž\Ó¢ZÖ¤YÑ¥XϤ^Ò¤^ѧVϨY΢WÊ›PÇžPÌžRЛPÓ¢QÕ§XÒ£]Ô¤[Ù§Zؤ[ФXШZÕªbÓ¬\Ô­\תhרgÕ¦cÔ¬iײfÖ­`Ò¨dÔ¬aÖ®`Ø°f×°fѪ`Ϧ`Ò©bÕ©]Ö«^Õ¨_ТWÌUÊ¡VͦZѧ`Ò©iسuÚ´mÖªd×­dײcÕ®bÔª_Ó¬kײoܸsÜ»tÛºoÜ»vܹyݹyÜ»zÚ¸{×µxÖ¸tÕ¹pÕµvЯqΨcЧhÒ«mÕ°jزpØ°mÖ°cÖ®cÒ«cÑ«cÓ­fÒ³iÒ±fÑ«eÕ«hسmÖ³hÕ®eÕ¯hÕ¯hÑ«`Ъ_Ó©bÔ­aÔ¬^Ó«aÒ°bÔ±b׫eÔ¨b̨^Ö«cÖ­fϬ]Ϫ]Ω_Í¡YÌ›QÊNÈ™N¿–Q´‘M¶‘LÀœXË¥dϦaΦWÒ­]Õ­gÒ¨^Ó¦^Ó§cʦ^ʦ\Φ]Í©^ͬ\Ó­]Ö®aر`ײbزlÕ²hѬgÕ¯kÕ±mÔ±mصrÙµoÒ®hΫg̦cͧ`Ñ®bЬcЮeÓ®bÌ¥XÅ¡V˧^Ì©c̤dϨeÒ«cÈœ[¸N¹”KÅ¢UФ^Σ`̪bÒ­qЪiͧ]ΤZϪ`ϪbË¡XÆ›UÄ›PÈžVÇT—LÁ”MÄœRÄRÄ—RÁ•N¾‘E¾‘F–TÄ™V¿XÞXÅšRŘOÁ’Iº‹J¼K½GºK»“S¿›TÅœQÅ™RÅšTÅžZÆ YÆŸWÉ¢WÊ©cÆ£gÄœ[Æ›ZÅšUÛMÞRÅ›UšOÄ™MÕFÀ“HÁ•LÄ–IƘGÆTÈŸXÉœQÇšMÇ›UÄVÈ›PÊšPǘIĘKÆšO“HÀ‘HÀ•KÃQÇ£VÉMÈ›JŘPÇ•OÅ™VÅšXÖM¿“R¿”Q½“MÁ™SÇœU˜SÀ–PØR¿“M¾‘B–GÁ–JÀ”CÁ’FÀ”K™LÁ™P¾šR¿žX¾›ZÀ›T¿›N¿šPĘVĘRÙNÅUÇžUÄšTÁ–U¿™P¾ T¾œT¿˜P›RÆ¢]Æ¢XÂPÃœVÁ™TÀ™TȤ\È¢[Ä™UšOÁRÇUÉŸ[È `Æ^ÅŸXÂœRÁ™PÃœTÄXÇ¢ZÈ¥]Å¡]ÆœYÆ¡[Æ¥]ʦXȨ[ʨ_ͨ_ΩaÍ¥aÇ¢]È£`ͧ]Ê©aÉ©f˦[Ê£XÇ£XÆ¢Xʧ_̨aͦ]ͦ\˦]ͤ`È£bȪhÒ±oÓ²jаhÏ®fάaÒ©fÓ®hЯcЩ_Ë¥]˨^ЮbÏ®eЬeѪcÑ«lÕ­lÒ«fΨaË«cÏ«bÏ¥bͬgβgÒ¯hÕ®jÓ²nÕ²jÓ³lγmÒ°nÔ­iέbÑ°fÕ®pÑ©jͬfϱhÏ­gÊ©dʧaʤ_ȤYÁžU½œ[¡]Ç¥[Ç¢ZÇ¡]ʤ\Ê£_ˤbΨeЫmЮnѳdЭfίhεgѵlϱkÍ­_έ\Ç¥ZÄžVÑ­dÖµjÑ®ḩb¡YÀŸZȨeгgÏ­bÊ£Yϧ_ͬjÏ®mÒ­nШhË¡^È¡\Ç ]ÆŸYßTÆL±‹JÑŸUÑ¢UÒ¤UÕª`ײgÙ®hØ«gÖ®jÖ¨gÓªcØ´fÛ±jÖªcÓ©^ÓªbÕ¨fÖ±lܹsá¸uá¹uÞ¹sÞ¶oÖ°oÓ±lÙµoصtÖ²nÛ²lܸs׶tÛ¸pÜ»tÕ²rÕ±lÕ¶tÙ¹zß½yá½uáÂ}Þ‰۹€Û·uݹvã¿æÀ~ä»xܹ{Ü»uÞ»uÝ·yݶtà¹oÞ¹lݶjà·pܵqÛ±oÚµmÙ´bÚ°eÕ°g×­]Û®\Û±cÞ²hÛ­bØ°_ÙµfÞ²iÞ°`Ù¯aÙ¯iÞ±gà±iß²là°hݲf×±aØ«\ܪYÚ­bÕ©cÒ¨[Ш^Õ©bÛ¬fØ­^Ó«^Ò§`РQÌ›JÉœQΞK΢PÑ¢TÓ¡NÏ£ZÕ©bÕ¦YÒ¥ZÖ©`Ø®[Ø«`Õ¨^Ö¨ZÖ¨`Ô¦aТZÏ¢VÕªYÕ«^Ѩ\Ó©[Õ©]Õ§]ПUÌŸUСYÓ¡WÓ£VÏ¡TÏŸUΞSÉœPÏŸSÑ©SѪY׫cÙ¬eÕ¬bÖ¬eÔ¬`Ó«XÔª]Ô©cÒ§aÒ©dÖ¬mÙ²nÙµlÖ®iÔ«kÙ³uØ·zغ{Ù¹tÖ²lÙ³q×µuÔ¯oÕ¯mÖ°h×°lÙ³jرfÕ®jÔ°mÕ°iЮaϪ^Ò«\Ó°bΪeͨdÓ­f×­bÖ¯cײa×°aÓ¬cÎ¥cÎ¥\ÕªbÔ®bЭ]Ó¯]Õ²hÕ²fÒªeΧeÓ­kÔ°nÑ«eÕ¬eÔ­iË©g̨cΦcΤfÉ¥j»š`¹Yê_ŪaǨdÉ¡aÊ£ZϪXЧ\Ϋ`ЯcÌ©]ʨXέbÏ«dϨaÑ­iÔ´iسeÖ°jدjØ«bЫ`Ñ°jÔ®gÓ¯dÓ³qÖ´oÓ­aͨaʦjΩgÍ«^Ì©_Ñ­dÕ³jϬm˧bΫfÑ­gЪeЮgÓ±gÒ§dÈ¡\¼™NÅ—OϧaͬaË©\ЬjШkЫhѳo×µpÖ²jЩgÏ©bÈ£\ÈŸ]̤[È¢UÇŸR̦^Í£bÊ¡ZÈ¥WÇžTÆšQÅžVÄžYÅŸTÊžPÆTÃœV¿˜P¾˜KÀ—LÁ“NÄ™SÚS–MÅPÇŸTÇšUÇœRÄ™NÄ–LÇœMÊžQÈŸVÇŸUÇœWÅšWÆ¢QÈ£QÈŸVÇ›RÈžIÄMÄšNÆ–JÀŽB¿AÇ”IÆ™I˜FÅ”@Å•CÈ™KÈ—NÅ”MÆ–KÈLÇ›QÄ•P‘GÀ’IÚRÆžPÈŸNË¢XɤUÆ£ZÄŸ_ÆžUÇœRÅ›]À˜X¼”QÀ™WÉ¡]È¡YÄœRÆžXÆ¢XÅŸOÇžPÉšQƘMÁ˜NÄVË£^ɤ^Ç¢SÇ¢[ʧaͪ\Ï¥_ШdЬeË«eάgέoѲtÕ¯nЪhÏ­eÏ­hʪhŧaÈ¥_Ê¥cŤ^Ʀ_Ë©`Æ£[Å¢YʪeÊ«fǦ`Ǥ[È¥`˨gЮeÒ­cÓ®f̬bÇ¢]ÆŸYÈ¥]Æ¥_Ä _ǤZǦ^Å bÇ¥bάeÏ©kÌ©gɧ`ʦYέ]Ѩeʤ]Å¥[Ì«fÍ®eˬ`̪^ΩYÊ¥WÉ YͨaϬgЬfÒ­bаlѯkЩaÏ«fÒ¬pÓ¬tÕ²tÔ³pÓ²tÔ±qÖ³nÓ²sÒ¯nÓ¬aÓ®fÓ·rÕ´m×±hسiײkÕ´mÕ²hÖ¯fÔ³iѵhÓ²iÔ¯mÔ³mÕ¶jÕ±jÕ°lÕ²o׳mÓ´dÕ³dÖ²iѳeÒµhÕ³uÔµ{Ô³jÕ¯bѳhвhÔ¯cÖ°eÓ¯hѯhΰhέfέc̪]Ï©`Í©aϨZЦZͦ[ʧZ̨`Ò©bÔ­eÒ±iѱiѯdÍ«]ʨ^ΨcË«XÈ©PЬbÔ­bÒ®ZÏ«aǤ`Ä¢YÉ¥\ЬdÒ±hίcÒ­eÒªgÍ©fͬe˧bÅžY›VÅžSÆ WÅ¡ZÊŸS²‹PÒ£^Ø¡^×¥[ÓªaÛ®gܯeÖ©gܨdÙ©bÐ¥d׬fÛ¯gÖ¨]Ô¥VÖ¥Zت_Ú²gÞµjà³nݵuݸqàºtܲtÓ«kÖ­nÕ°n׶nß¹vÝ·uÙ¹oÚ¸rݲnÙ¯jÑ«qϨqÓ²uÚ¹}à¼}áÃäÀƒÞ¸‚×µ}ÞºyâÁ{ã¼ß·{صq×µwß½yà¿yÝÀzÞ¾wߺrßÀvâÂzâ½uÞ·uݹuÞºpÞ¸qà½xá¼qâºhâ¾tâÀx߶pÞ¶oß¼sä¾tá¼xݹ}à½vã¿så¹tå¹rä¿qå¼rÞµrܵsßµqÚ³lÙ²mݯlܱeÝ´lÞ²pÞ³jÛ³mÜ°nÝ«fשdÓ©bÕ¨]Õ¨[שZØ­_Û®bÜ«aÕª[Ô«XجbÚ®kÛ«gبcרdÕ©bÕª`רaÔªgسkܲm×®nÕ«dÖ¥]Ó¤\Ñ¥\ΣWÒ¥UÕ¦VÒŸ[Ñ¡\Ò¨YѤXÑŸVÕ¤WÓ§aÑ£`Ñ¢\Ò§\ÔªXÕ«X׫`Ô¦aШ\Ó­]Ô¦_Ó¦bÔ©bÕ©_Õ¤\Ñ¢ZΦ\Ö®jÞ¹vÝ»rÖ´rÒ­lÖ­jÕ¯nÒ¯n×°nײmÔ¯jÓ¬oÒ«hÔ¬bÕ¯kÖ¯mÕ®gÑ©cÏ­eÒ°gЮeÌ«^Ë¥ZЩ[ѯ_Ò®eÑ®fЭdϪdШZÓ¤YÏ¥\ͨZΫ^ѬbШ_ШcΪhÓ³pعuØ·tÚ¶uÙ·vÖ¶l׶rÜ»yÝ¿|Ú¹}ɦjǨiжvÓ³vϯqÊ­dÄ¥^ŧ`аc×®gÖ­eÓ¯bÒ®bÓ²bÒ²dÏ­dѲeÕ´cײeرiÖ«lÓªjÔ°kÙ¶r׶pÕ³hÕ³lÓ®mÑ©gέmίkβkͯmÒ¯mÔµpÔ¶pسnÔ¯kÔ´nÕ¸lÓ³mÕ³mÒ±iÒ²lÔ¯jÊ¢bɧ[ЭZͨbÍ©eЪhÓªj×±jÖ´n×´rÙ²lÕ¬dЧbÏ¥\Î¥[ΨZΡ^Î^Î¥Zͧ^̤_̦XͪXͦ]Ë TË¡PË£WÇŸVÆœSÈž[È›WÅœRÆ WÉ¢VÉ ZÈœ^ÈœZÉ¡ZË¢[É¡\È¡[Æ›QŘRÆWË£VΦ_̦d˦`È ZÇTÊŸTÈŸQÇœOÇŸUÈ UÊ¡QÊŸOÅ–IÕKÅšHŘEØHÅœLÊMÉ›JÊ›LÊQÇRʤR˦UÊ£XÈ¢QÇžQÈŸWΨ]Ш[ΦXЪ`ЭfϬeͧdǤaÇ¥cÄ_¿•VÀšUÈ£UˤXÌ ]Í£^Ë©dͨ`Ê¢XÇZÄŸRÆ¢\ͦjΫ^Ï«`̦ģ_ѬdÕ²pÕµkÓ³j×»wÚ»t׸oÖ»uعy×µrÖ²kÔ¯nÔ²nÏ°hʪfË©e˪bÇ¢bÅ¡cÈ©hɬdɪ^Ì«kÑ°pѯmѲnÒ³iÓ²iÓ´nÑ°pÒ°tÓ³nЬhÈ¡\ǧ_˪cÅžZ ]ȧ`ΧeÏ©iΫcÏ®dаeΨbΨgÕ°jÕ¯dЯdÍ°jϲoÔ²oÕ²qÒ®mϨeÈž[Æ¡WÏ­aÓ±iÒ°k×´m׶xÖ´pÒ²cÒ³kÒ³pÑ®mÕ­mÔ²qÒµuÕµsÕ¶pÓ´oÔµnÓ³nÖ²mÚ¸rÕ¶rÔ³oسpزlÖ²kÓ°kÕ²kÕ¹lÕ°kЭjѲfÓ­fÑ­jÕ¯lÒ¯jѯlбlвgÓ³dÓ°hÓ°mÕ²mÕ²uÔ´yÕ±uÓ°nÔ±hÕ²hÕ²gÖ´jÖ¶pÖ¸nÕ²hÒ¬jÔ¬gЫ]ΩbÒ­gÒ®`Ω\Ì«Y̨Vʤ_Ϩ^Ô¬XÔ­aЬjÑ«hά`ɦ\Í£]Òª[ѪbÒ«iׯhÖ¯`Ó²\Ï°_È¥]Ƥ]Ϩ`Ô©eÓ©hÓ¨bͦ`ˤ`̤ZÌ¢XÆŸW¿žVÁœOÆ›MÄNÄšI¬‹Jß«eÞ®bÞ±cÞ¯dÚ²fÛ°kÙ©dتbتfÖªeبcÚªbØ«^Ó¦XФVÕ©^Ö­jÙ°fß´dÞ¸oÛ¶pܯjÛ«nÒ¤lЦdÔ©gÖ­iÙ³gÛ³jÚ­mتmÕ¯iÙ°dÙ¨dÖ¨e×±nÙ¶wÚ¹wÞ¿~àÀ…ὃ޽ܺzÛµvݹzÞ»{Û³wÚ°uß½€âņàÁ|ã¿{äÁ}áÃá¿á½à¾~Þ¹uݹyݽ{àÀvã¿uâÀtãÆåÄ„ãÀ|ã¿wãÂ|çƒâ¾zÞ¿|ãÀ‚åÂ~ãÀ}âÀ|â¿{ãÀzäÁ}åÂäÀzå¿xæ¿~ã¼}à»yáÀ~á¼áºxà»râºså¼vã»tá¶nß³mÛ±jÛ­hݲkàµná¶kà¶iܳoÛ´sݳpÛ²kÕ²eÕ³bÜ°cÜ®jÙ¯nܱjÞµqߺrÞ·jÕªeÕªhÚ¯dתeЪbÒ°cײhÙ¬eاeاcÔª]Ôª[Õ§^Ö¦`Ó¤YÍ WÍŸQÑVÑŸQÓ¤PÕ¥\Õ©a×­`Ö¬hÖ­dÖ«`Ô¦ZÒ¢OÏŸTË YШ`زkØ®dÔ¨aÒªcÕ­eÖ«dÕ¥bÕ¨bÔ©aШaÏ©_Ϩ^Ò¥aÓ£^Ч]ЬdÔ«bÒ§[ͪ\Ì©VÌ¥UË¡X̤]Ñ«aÓ«^Ó©YÓ«]ѬbÓ©bÒ«bÒ«aͨeЫgÑ©^Ê¢Vͦ\Ò§`Ò¬e׳lÚ¹nؼnÙ´jÚ²kÛ¸vÛ¾}àÁ~ãÀ×±sвsÓ»{Õ¶xÕ²tÌ®hƪdʬmвvÔ°oÖ®hÓ±oÕ³nÖ¯gÔ­eЫ_ϬcÓ±jÕ²cÖ®c×­bѬ`Ó²hݾoܸnÒ«eÏ©bÓªaÑ­eÏ®cϪ^ѬhÓ°kÔ²iÕ¶nضtÕ³nÕ°jÙ³o׶sÖ´k×±fÖ³mÙ°s׫oÓ­hÓ³iÔµnÒ°gÕ³gضoѱhΪ^ͤ]ͧdÒ®oЮkÌ«aϦhΧgέeѪfШ_Í©\Ϊ^Ϩ_Φ`Ô¯cÕ°gÓªcÒ¦^Ï¥a̤hÊ£eϨbЪeÍ¡\ÊŸVË¡Zͤ_Í¥dͧaϨa΢]Ì¢ZÎ¥_Í¡VËžQÍ¢\ͦW̨VΩaͧaÈ ZÅžZÈ YÛNÁžUÆ¥`É¡\ΡZ΢YÏ¡WΦWÉ£WË UÍ¢]ˤ^̪\̤[Ê¢[̨WÏ©\Ï«_ЫaѪg˧[Ë£OϨTЫ[Щ^Ï©bÓ«aÓ­_ήbË©b˧[Ï®eÏ©bÉ¡\Ǥ_˦aÌ©]ͧYÍ¥bÍ©eͪ_Ê£YÅ¡[Æ¢aɤaÍ«gѯjЬjЬk̪hͬi׸{Ù¸zÒ²mÒ´jÓ´hÓ°nÖ°p×±iÓ³iѱoÕ¯rÔ°qÑ°mÍ­cÊ«_Ë®kÍ«kË¥aË©gÌ°nͲnÕµrغxÖ·yÖ·xؼzÙºvÖ´vײxÙ´oÖµlÒ±pÊ©kÈ©gЮiÈ©bȨ]Ì­dɯkͬjϪfÏ«gÑ­hΦeͧcÒ²kÔ³nÕ´lÔ·jÕ³j׳mØ´rÖ®mÐ¥bÁœV¾šUË¥aÒ®hÓ¯hÕ±lÓ¯iѬlÔ­nÓ±mÑ°hÒ­fÏ­hΫdѬdͯgÒ°lÕ¯qÒ±qÕ²nÓ¬mѪhЭeÉ©c˦fШbЪ`̨`˨bϬeЪcÑ©hѨhË¥X̦YÑ«cϪaάeÓ±lÕ°jÓ°hÒ®jЬmÓ±mÔ®kÕ±jÖ´hÑ«lÒ±oÔ³mÒ­jÓ±jÒ°nÑ­eЭ_Ѫ`Ó«`ЩZΦ`ΫiÔ®dÓ®bÒ­bШ`ΪdÑ«bÖª^Õ¬aÕ¬cÒªdɪ[ɦSÍ«\ϯdЪdÓ­gÕ±fÑ°dÏ«bΦZÈ¡VÆ¢UÉ¥Y̤YΨXÒ¨VÐ¥WÊ¥ZË¢\Σ^È¡[àYÄžTÂP»™L¼–G©ŒIä¸pä·vß¼váºqàµtÛ´vÛ°rÛ®lÙ±kÕ¯lÕ¬lدkÙ¯gשcÓ£UѧZת`Ø©^Ú¯\Ý­`Ú§fתbÕª`Ô§]ѧ`Õ¨a׫bÖ¬_Ú«aÜ­dت\Ù¥^ܪeÙª`Ù«dܱnÛ°r׬pÛ¶uß¼yß¹x߶u߶qÞ·tß¹yä¼zâ¼uÛ·vÞ½}ãÂ}â½€àÂâÂã½{á¸rݳrÞ¶zߺyߺuß·uà¶tÞ¸sÜ»sß¾yáºyã»uä»yâ»|å¿~ä¾~á¼€ä¾~ä¿xãÁ~å¿æ»~á¾}âÆ„æÈŠå€çÃ|éË„èÉ‚åÄäÄ~àÀ}âÀ|äÂ}ãÀ}ä¾|æÀyã¿oãºnâ¹pÞµmÞµmߺhß·nà·vá»pä»tä¼vߺoÞºjßµhݳkÜ·n߸oß·oÚ¸lÞ»sßµyÔ³tÕ·oÞ¶pܵn×µo׶rܱdÛ­bÚ¯k׫_׫]Ú¯dÚ¬`Ø­`׬cÓ§aÒ¨bÓ§[Ï£XѦ[Ò¦UÕ¦]ÙªgÖ«gÔ®dÔ«`Ô¤YΡTÍ¢UСWÏ¥[Ó¨dÓ¥gÒ¨aØ­aØ®jШcѦWÒ¥]Ó§aÒ¤`Ï¢^Ц]Ñ¥cÒ¥bУ^Ñ¥_Ó¨^Í¥ZÌ¡ZѤZУZÏ£[Ѧ^Ϥ^ѧ`Ö«aÕ©]Ò¨[Ó«`׫_Ö©]Ð¥_ЪaШ\Ì¢YѨ]Ò¨^Ѩ^Ó¬aÓ®cÕ©bÓ©_ЪgÖ±oØ´l×´mØ·oÒ¬dͧbÒ«`Õ¬cЯbË­a̪kЭhÒ®eÕ±hÕ¯bÕ­fÙ­jÕ¨aΦ[Î¥XÓ¦VѬ]Ì­_Ñ©aÔ©dÒ«fÖ°lÚµuدoÏ¥^Í¥aϧeÔ°aزcÓ¦bÑ£]Ô§`Ö­hرjÙ®gÔ®h׳mرoÖ­gÕ«`Ö®eØ´hÙ³kÙ¯jÔ­jÖ³lÚ¸l׶p׸vÛ¹vÔ¬iÆŸ^Àœ\Å¢[ѲiÖ´pÔ®kÒ¯oÒ®qÓ±gÖ·kÕ¶rвhÒ°jÓ±kÓµq׶zصr×°nׯsÕ²rÓ°pÔ®rׯqײpÓ±eЬaѨaÏ©cάeÒ¬dÒ¨`Χbͧ^Ï£^Í¢b˧YΨX̨[É¥ZÏ«iѱp̬e˪hϦiÊ¢\ȦcΪmÌ«hË«bΩcϧeÑ©eÒªcÓ©bÑ­^Ò°[Ó­\̦XÇ¢]˨bÌ«_ЭaѪ_Ó«]Ô«]Ò¥[Ð¥]Ы`Щ\Ò¨\Ô«eÒ®fÒ¯dÒ¬dά`бfÒ³lбhέcϨeϪeΪ\˨\ʪ`Í¥aË \Å¡XÉ¢[̦a˪cÏ«dЫeίiЭfÑ®fÓ³qÔ¶nίf̨jΫgÏ­bÓ¬hЬhϲkÒµiЯdÒ­dÕ¯hШg̨cÏ°jÓ°lÑ«eΪaͬjЭoÖ³oÖºnÖ·nÙ¸sÙ¹vÖ²tÕ±nÕ¶mÙ¸sÖ³rÓ°uÏ«l̬mÕ³zЭnάhѲnÍ°hÍ­eЫjϪnΩiÈ `É ^Ò«cÑ«eÔ¬gÕ±kÑ­eЫ`ЮfÑ©dËŸX¼–J¸—O `É©eÍ­dÒ«cѦfͨbЬaϬfÏ©aÏ£bÑ¥iͨhΦhͧeÏ©`ШaΪaÑ«dΫdά`Χ[ʤU̦WÏ¥VΣ[Ϥ\Í¡[ͤdΨ^Ó©^Ó¬fΪ^Χ[Ò¬_Óª`Ѩ_Ò«fÑ­hѬcÔ«_Ó¨aϪcѱlײlÕ¯gÑ®dÔ²eÔ±gÕªgÔ¬hÏ­hЬfÑ«\Ò¦XÒ¨`Ñ©`Ъ\Ñ®bÓ¬bÕ­bÔ±hÒ¯eЫXÒ¬ZÕ©cѪcÑ­`Õ­_ШZͦZЪaÓªbϧ]Ñ«\ÕªaÓ¦`Φ\Ë PËœLÈŸQÇ¢RÈŸQÊŸSÉŸQË¢RË WÈ¡Yʧ\ÆžUÙOÄU×Q¼’E¾’G¬ƒGÞ¸fݸlÞ¹sߺtܵrݳoÛ³oÝ´oÝ´sÙ²pÚ°jÜ´jÚ²lܲgÙ¯XÑ©ZÔªaר]ÙªcÙ¨fרa×­fÙ­g×°fÖ°c×­aÙ­bÙª^Ö©]ÖªeÖ©bج]Ú­`Ø©^Ù©bÚ«fØ©_Õ¦^ÕªjÙ®hØ«kÖ¬yܶsÛµlÙ³kÛµhߺmݸqÞ¼váÀâ»}à¼uá»xãºy߶qÛ±kÙµrÛ´tÜ°tÚ°oÚ®nÚ®jرhݲjß²oà¶pà¶pݵlÝ´kÝ·tà»xâ¿uâºuä¸yä»wã¸qá¼záĆáÀ€à»yà¿~å¿ä¼âÁƒáÁ€Ü¼{Þ»yà»xá½zåÀzãÂxãÀtæ½qâ½sÞºoÞ´fÛµeÛ¸jà¹hÞ´g߶tá¿zà»sá¶nà¸lÛ´mÙ¸sÞ»râ»qÞµqÝ´tá½vÞ·rÚ³rÚ·tÞ»rÞ»uÛ¶pزnÚ´mÛ¶dÚ±`Ú®^Û³eÜ·oÚ´nÜ´gܲdÙ°jÙ°kÖ±hÔ²cЪ]Ϧ\Î¥^ЦaÖ­fÙ±kÖ¯kÔ«eÖ«eÖ¬dÒ¬gÑ«mÔ®hÛ´kܳr×®fÓ¦_Ó¥dÕ©bÓ«`Ó©^Ѩ]Ñ©]Ó§XÔ£ZÓ£ZÐ¥WÐ¥XОXÌœUΠSÒ£RÖ£YÖ£YÒ¦XÕ©\Ö¦\Ф[Τ_Ñ£YÓ£YѦbÍ¥eФdÕ¥_Ó¥^ТWФVÒ¤YΣWΦXÒ¤^Ð¥]Ϩ]Ϩ`Ñ¥`ΞXÐ¥[Ϩ_Ë VÊŸYʤ]˦_ЦaϦaΩcЪaΦ^Ò¦`Õ©dÓªaÍ¥[Ë£XÏ¢YѦXϨ]Σ`Ϧ_Ϩ^ЧYÒ©]׫dÕ¬dЪdЬiЭnѪfШbΧaЧ\ϧ^Ó«dÕ­\ѪXЩ[Ñ©bÕ®kÔ°hΧ_Ò¨`Ø´fײa׬bÒ«eÔ®dׯiÔ¯jÖ´g×±gÓ«aʦaÁ¡gÄ¥eϬcÕ³kÖ³pÖ³lЯdÓ¬cÚ°nÕ°iË«`Ï«cÓ­jÓ®oصsÛ»vÚ´pÓ®gÔ³hÖ¶rÖ´qÛ¸lÙ¹nÕ°lÕ¯iÓ®fÒ«hѬhÒªcѨ`Ï­hÓ³jÓ­dÍ«fаjѯjΪhÍ¥cЬjÕµtÕ³qÔ°kѲhί`Ñ®gÏ®dΩaϨhΫgÑ©fШaΨ^Φ`ͨ^ͪdЧhΦ^̪]ͪaÒ«[Ñ®^Ï©_ÒªbÒ¬ę^Í­dбiͨ^ͨ\ЭaÒ®bÑ­gÓ®gÔ«_ѪbЫiÑ«kÍ©hΪdÑ«gÌ©gÊ©bÑ«eÑ®aÈ£YÈ¡[ȨdÈ©gΨbϪbЯdÒ¬bΦ]Χ^ÓªhЭdÌ«_˧`ΪbЪcͦb˧fΫfÑ®hÓ°lÒ­dѬfЬmÌ©eͨ^ÓªeÑ©cÍ©`ΩcÍ©dЭlÖ²qÖ²xÕ±uÖ°qÔ­oÒ®k׸j׶rÔ¯rÔ­iϪgϬlÔ³jѲjЮgÑ­dͪg̪_Ϊ[˨bÈ©dŤUÄŸU̧^ͧ^ͨfÏ­hË©_ͦ^Ϩbϧ`ͤ^ÁšW¹–TÀžQÈ¥[ЪcÒ¥[Í¡^ΦbШaÍ¥bË¢_Τ^ΪeΪdШbͨeÍ©fЭ`Ϫ\ϧXϦXÎ¥_ͨX̦YÎ¥aÎ¥[Ì£SˤXͦYϧ]ϨaΫ]ͨ_ΧbЮdÒ±bÏ«\Ы`Ô®jÒ¬eÑ©^Ѩ]άcÒ­aѪ`˪dÍ«bΪ`ϯ`Ϋ`ЩcÒ«`Ó©`Õ©cÔªaШ_ͨ^Ц\Ц^Щ`ЩbÏ©_Òª[Ò¦ZÍ¥UÍ©UѨ[ѤZÌ¥ZÎ¥WÌ¡XÉŸZÌ¢XÏ£YË¢VË£QÎ¥ZË¥\Ì£QÈSÄœRÊœMÇ–PÓLÉ–LÁ•S¼•UÆžVÈ W™P¿•M¿“I¿”J»F´†AµˆB¦‚DáµlݯnÛ²nßµsܱrݱpá±tß³xÞ·{Ý·mܵc߶nÞ³uݲpÝ°jÖ«oÕ«iÛ¯hݲjÛ±gÚ°f߶gá·lݲhÞ±dÞ­cÚ­bÚ¬bت_Ô©`Õ§_Õ©\×­fÙ­kÚ­dÙªbÕ¨eØ©_ק]ѦeÒ¥eÖ§`جcتbÙ§`Úª]׬bدqÚ²oÙ±dÚ²hÙ²nسkÙ±k×­f×°gÚ±mØ°p×°kÖ­fØ®mÚ®fØ­aØ®eÙ®dÚ±jÙ²nÖ°iÖ®f×®gÙ²gÛ³gÛ²cÙ°hسr߶oá¸tÞ¹yÛ·mزkÚ³sݸsܸuÞ¸yàµsײrسrßµrá»uá½sÝ·mݸlá»rá¹rݶoÚ®fÙ¯hÜ°tß°qÚ±lÚ¶oá»sâ¸tà·mßµjÞ´qܶsݶná¶r߸sݹtß½t߸jÞ²kݶmݺnß´qÝ°mÛ±lܳpÜ´nÛ³lزmܹnà¿tÞ»yݶrÛ³jÚ³o߶pá¸já¸oÞ±oÙ¬hÔ©`Φ]Ø®hÞ¹oÜ·mÜ´mÛ²hÛ°jÕ²kÓ°_Ù±fØ­iÖ¬cجe׫eÙ®c×°bׯdÖ«mÓ§bÒ­[Ó©cÔ¨aÔªgÓ¨cÔ©UÒ¥\ΠWΡPЦRÒ§UϧYÍ¥XÔ¨cÔ«`Ñ¢WÒ WÕ¦WÔ£YѦ`Ò¬`Ö«_Ô­dÓ¨bÒ¥^Τ`΢\Ì¡QÏ¥YѨbÒ¨cÒ¦bÌ WÈœWË™TËžRÍ¡YΡVÊ¡VÍ ZÑ [Ï¥ZË¥TË£UÏ¡XÎRÏ¡VÒ£\ΤYÊ¡RÈŸQͤ[ϧ\Щ[ЦZÌ£YÍ©VϪ]Ò¦`ЫXΨ[ϨfÔ¯aЫ`ʦ\ϦXѨZÏ¥RËŸUÌ¥]Ñ«`Ó¦\Í£^Î¥eÓ©^Õ¯]Õ¯hÖ®iÕ­dÖ«dÕ­bЯ^Ò±^Ô­bѪ`Ы\ЫaέhѨcË¢^ʧgЬnÕ±eÕ³[Ô­[Ó¨`Ï«cÒ±fÓ±dΩ^ͧbÏ©iÓ­lÖ²qÖ³pѯkЫfѪeЫcÏ®cÒ¯hÔ²nЩ`Ì£VШ]Õ±bÔ²bÕ±l×±rÖ±qÖµrÖ²qÕ¸tؽsÖ¶sÕ³qÓ®jЫgЪjѬfÒ±jÔ°mÔªdÒ©eÏ©bЪ_ЫiÏ­mÓ®hϪhΪcͬcË©`ͨ[ϧ^Ϩ]ЬaÑ«hÒ«jÑ«lÏ­nбlѳkΰkЯnÒ°pͪhΩhЭgͨcΦ_Ñ­`ͨ[̧dЪeΫ`̨eÑ£cΧbͨ_ШZÏ«`Ñ«hѤcÊ¥_Ì©cάbÌ«]Ь]Ò®`ͨbÌ£^Ψ^Ï©`Ð¥^ЧbÎ¥]ͦZϪ^ШcÌ©cάcЭkЯtÕ¯tÖ®nÑ®eЪcΪcÏ©bΩbÑ­hÓ­iѬgÔ°m׳uÖ·sѲmЭlЯjЬbЯgбkͬkÏ«cϬaЫhÑ«mѪgѪcϪȩ`Ψ_ΨaÊ¥_È¥]Ê¢[̤U̪Vϧ]Ô§dѨdЦ`Φ^˨]Ì©]Ω]È¥Y¿œUÀŸZɦ^Ì¥^ʦb̨bÌ¥]ϦYÎ¥ZÊ¡XÊ¥\ЦaЧbͨ`Ë£WÍ£VЩ^Ϧ^Í¥YΨ\Щ^Ϩ`Щ`Ñ©^ΦXÌ£V΢WΦ]Ϫ]ͪUʨVͦ\ϧ]Ò©^Шaʤ]˪]аeЬbÏ©WÎ¥YϦcϨ^É¢TÉ£W̦ZÓ¨ZÑ¥[Ì£ZЩYΪZË©ZШaѪaЩRΤPÌ¢TÌ¢Wͤ[Ï¡YФ_ШbѤZΛUÊšQÍRÌžRËŸNËœTÈŸVÊ NËQÈ VÇ¡QÈšRÉ ^ͦ\Ë£UÉ¢ZÌ¡\ÊQÅžPÊ WÉ¢T¾œLÀ™RÇ¡VÅšMºF¶‰@¹‰>¹ŒAµŒB±ˆB²†? ‚<Û¯nÜ°lÞ²gÜ´gÞ¹jà¹pàºuá¾và¿wÛ·mسhܸlݸoܶqÛ¸sÙ¶tܳqݹtá¼vܸlײcÝ´gßµuÞ¶tݵrݳuÞ¶qà¸oÞ¶lÚ¯lÖ«iÖ¬e×®hÚ¯eݯ`تcתdܯfÙ¨fÔ£aÖ¥cÒ¡^Ï¢XÒª\Ö¨cÙ©c×­bתbצaѧaÖª]ÛªaÙªbÖ«[Ô«^Ù¯hݱjÖªhѦfÓ¦dÔ«eÖ¬bÓ¦`Ó¦_Õ¨^Ö¬aØ­fÖ«cÔ¨bÕ¦cÙ¨bר`רaÙ¨`ש^Ù±iܶoÛ´oÜ®hÛ¬eÙ®gØ®g×®fÛ±gݲjÛ°fÚ°fÙ´oÛ·uݱoÙ¯fرbÛ°iݶsݺqÙ±jÖ¬fÖ­jÜ°mÞ³jÕ°hÙ¸qâ¿vÝ·mÖ±jÙ·vÙ·sÜ´nàºsݼnÞ¼oà»tݵpÞ²nÛ²nÛ²kÝ°jÙ®a×®fÚ´l߸hÞ¹nܲmÜ´iÞ·qÝ°lÚ°gײqÙ±pß´lÞ·lÞ¹qß»sÛ¸qÙ´lÖ¯fÕ­gݱjܵhÚ²jÚ­lÚ¯hÙ³eÔ¬^Õ­^×±bÕ®^Ô­fÕ®gÖ¬c׬c׳cÖ²fÓ®eÕ±eÚ¯gÙ­gׯ`×±bÕ±iÕ«fÖ¨`Ö«[Ù©^Ö¯e×µeÔ¬]Ôª`دlÓ©dÎ¥\Ï©bÒ§aЦ]Ó©XÕ­^Ö°dÖ¯eÖ«cÔ¥bϦdÌ¡WÏŸVÕ¨bׯeÖ¬\ΣVË¡ZÍ¢]ÍžXÌŸUΡXËžSÉ›OÌŸRÏ VÎœTË›SË™HÇœFÊŸOÍœVÇUÈ TÉ›[Ï¡[Ò§TΣTСXΞZͤYϨXΡWÌ¡TÌ¡YÏ¢`ΦaÍ ZËŸXÍ ZÍŸVÈŸNÈšLÌ¡UϦ^Ï¢[ΞVΟZÑ¢ZÓ¨ZÓ«]Ô¬`Ó«dÒªbÓ«ZÕ®`Ò­^ΫbΨdͨ\Ï©bÒ©eÒ«]έ^Ï®kЩjÒ¨^ÔªaЪeÒªdÕ­eÖ¯eÖ­`Ъ_ͧbÏ«gÓ°iÕ°cÒ¬`ΧZͨ`Χ_ͤY̨[̪^ΩcϨfÌ£]Ì¥]Ò°hÒ²cÓ°dÖ²lÓ­mÙ®n×´qÖ´sÛ¶uÔ´nÒ°jÓ°l̪fË¢\ЧZÒª`ϨbΪcÍ«i˪jϨbЯ_Ï°fѬlÓªqѪnÏ«hͨcÌ£]Î¥\Ψ]ЫcÕ¯jÔ­hЯkϯmÒ¯fÖ²hÔ³kÓµoÕ²rÒ¬pÒ¬hÏ©`Æ¢ZàZÉ£VʤWË¥[ЩaÎ¥cͦaË©]ʧaÌ©cʤ]Ë£\Ì­fÊ©dË W˧ZȦ_È£^Ψ]Ñ«\Щ^ΨaÏ«bÏ©dͨeΧbΤ`Í¥cΦdΦaΨ]Ϊ[ϪZÑ®]Ò±cÒ«dϧhͪiÌ­eΰeÓ¬dÓ©\ѨYѦ^Ñ«hÑ°jÒ¯fЩhΪeÓ¬cШiΦdÏ­gάmϨhѧ`Ï©bÏ©bФWÍ¢XÏ¥_Χb̦`Ϩ\ΧUÊ£Wͨ^Ë¥[Ê¡UÌ¥UÎ¥[ΡUͤZͦbÏ¥[ѧ]ѪcΨ[È¢UÅYË¡[Ф[Ð¥]ШbЦaЧ\ΦUÌ£ZÌ£^̦YΦ[Î¥]ÇŸVÉZΤ]ΩVϦYЦ^Ѩ_ϦaЫaÓª]Φ\Í¥ZͨYΪ]Ψ\Ë¥XË¥WÍ¥X̤^˨\Ò§^Ц^Φ\Ò©ZѪ[ѪbÑ«eΧ`ΡWË YÈŸ^Ê [ͦ]ͤaË¡^Ш^Ϩ]ÉŸWËžPÍžQË SÊŸSÉžUÉŸUÈŸRÊ¢TÔ©`Ñ©[Ì£QÊžOÉRÉŸTÉOÊšMÊžTͧZΦYÌ£UÈ¢UÇœTÉ›Tͧ[Ï­^ΨbШ^Ó©\Ы`ʬ[Ϭ]Ь_Ç£XÙQÁšN¿šQ½’Eµ‰B²„A·‰A·‘K´ŒJµˆD£„EÚ¯jÛ°jÝ­là­mÝ«jׯhݲjÞ¶sݶvÜ°mÙ³jܵjÛ¯kÞ³oà¸wܶyݵuâ·uæ¼yâºtÝ·oà¹uÞ¹qÝ»tß»yß½}ãÀ}ãÀ~â½ã¶zà±uÞ¶nÞ¶lݳlܶjÙ²jÙ°kÞ¶kܲkÙ­fÞ±eÛªeΡYÓ¨TÚ±]Ú´gÛ´lÛ­eÙ©]Ù¯cܳlÛ­cÙ«_Ù¯hÛ®fܵmÞ¶mÚ¯jÓ­hÖ¬hØ«mÔªhÕ¤^Ö¦ZשcÙ¬bÙ­]Ú­`Ù®`Ö©iקfת_Õ§bѦbÓ§\Õ©\Ù°hزnÚ­hÙ­hÖ­cÔ«ZÕªbÖ¨gÖ¨dÙ­d×°hÕ¯iØ«kשeר^ת`Õ¯bܶkÜ·sÖ°hÔª`׫dÜ°nÙ°nÓ©e×®kÞ´qÞ³l߶oß»rß¼sß¹rà¸kà¸kÞ·xÞ´pÛ²kدjÚ®fÝ´nÛ²pÚ®kسlÙ²gÞ±iÝ´sÛµrÛ²oܲoÚ´rÚ³nÙ²lÙ¶iÞ»uݵtÚ³nߺwß¼tÚ¸lØ´dÜ´kß´rÚ±kزjÙ´kÕ²iÕ±i×­aÖ¯`رdÚ²fÛµlÚ·lزgÙ­fÙ¯kÙ·mÙ¹iسhÛ¯jß°fܳiÖ³nØ®gØ­f×±iÖ±g×°eÙ±gسnÖ±mÛ°kܲnÕ®fЪfЬdΪaͨdϨ\Ò«c׳lÖ±eÖ°gÖ³lÕ°cÒ¨dШcÕ²eÛ²jÚ²eÖ°fÒ¨fÍ¥^Ó¨^Ò¨_ѧ`Õ¥^Ò¡WΠWÏŸVÑžRСVÏ¡YПWÍ£[Ì¢[ΟXÍ ZÊŸXÍ¡[Ñ£ZÑ¢VÔ¨`Ô©gÓ¦^Ó§[ÍžUÌ YϤ`Ϥ\Ó¦_Ï¢`Ë¢WϦUÍ¡TÉœUΠVÏ¥ZΤ^ÊžVÇSË›[Ë™UÊTТ^Ϥ`ÌŸ^ΡYÓ¥UÓ¦bÐ¥^Í£QΤUФ[Í `Ф^ЩdÓ¯mײmШcÐ¥`Ó¨bϤ`ѨaÓ­dÒ¦cÓ¨cÒ«eѨaϦaѦcѪ^ΦYË£[Ì¥]ͤ\ʦ\ͪ]ΧdÍ«bЯaÎ¥\̨[Ò®cЪbÍ­`Ò¯bÕªeÖ°lÕ¯mÔªhÔ°lЩhФbÔ¬gÓªgУ`ΤZΤWÍ¡\Ê¥aͧbÌ©`Ë­cΫeЩcͨeϪbÓ­aÑ©aΟ[Ç›TÈ£Y̦^Í¥\Ш]Ц_Ì \Ï£ZÒ¨ZϨbШcÕ©`Ñ©eЧcΦb̤^Èœ]šTÈ VÌ£[ˤWΤYÍ¢ZÌŸUÍ RË¥[˧]É£ZÉ¡XΦZË¢ZÅŸWʤYÏ£_̦ZΧ\Ô¦_Ñ©]Щ_Ô¬dÔ¯fаfα`Ñ®\ЫdͨbΨ]̨\Î¥^ѧ`Ϩ_Ó§`Ш`˨]ϪbѲfÑ°cÒ®^έaѨcÒ¥eФ`Ϧ_ϨdѧbÒªdÒ©dÒ§bÒªcШdѦeÒ§`Í¡WÊ£ZͦUÍ¢UÊ¢UϤTΡ[É TͤRÑ¥^ϧdÒ§cΠ[Ê UÌ¥]Í£XʤPÊ¢QΡTϤXÍ©_Ѩ\ϨTʤUÇŸXɤTΤUÊ¢[Ê¢[Ð¥\ЩZË¥Ṳ[Ð¥bË¥bͦ[Ì¢ZÄRÅŸPÍ¡WÍ¡_Ë£ZЩYΫ`̧\Ñ¥YЦ\ЦaЦ_Σ]Ì¢\Ë¥]̧`ϧeϦbϧ_˦V˦WΤ]΢XÌ¥ZÌ©\ЪbÒ©hЦ`Î¥Z̤WË£PУPΦX̤YΡ_Φ]Ç¡RÇšOÍŸWÌ UÉœOÌ WÌ£YÊžMÌžPÌ¡[Σ]Í¢QÉSË›YΟZÍ¢WË UÈ¡YͧYÓ®bÒ­jѨfϧ^ʦZ̨aϯiÓ¯cÖ®f×®fÔ®hÓ®iÖ¬eÓ®bÕ¬bÍ¢W¿›MÀžSƤXÉ¢YÁ™T¹“M¹’K·G²‡@²…<£}?×¢]Ö§^Ù§_ß«eÜ­bت_Õª`Ï«dÑ«`׫aÚ°kݱeÙ­c×­eÛ°eØ°fÚµgàµmà³qà¶sà¶sß¹nݹqݶsܲqÜ·wáº|ã¼~ãÁã¾xâºtß¹vá¶tá¶tß¹vÞ¶vßµsà·uÞ²uݱoÞ±gÞ²hÓ«bШ_ܲkß³jܱeݱdÜ°iá¶oä¹nà²iß°dݳgß±fâ³gãºrÞ¶yÙ°rÖ¯jÙ³jÚ³mÙ®dج^Ù°`Ù­aØ«cÕ¬`×­aÚ°c×°`زeØ­dÖ¨\Ц_Ð¥e×­hØ®gÓ¬dÕ®eÕ®_Ö«YÚ¦[צ`Õ«cÖ§`Õ¡\Ó¦`Ó¨\Ô£WÔ¥XÓªZÕ¬[Ù¬^שeÕªeÓ¦`Õ¨cÙ­fÕ©dѦ^Ѩ]Õ­eÙ­fجcØ­aܯaÛ¬_Ø«]Ö­gرnÖ²lÖ°kÖ«cÖªaÖ®iݳlÞ¹jظfÚµiݵiÝ´cÙ²dزgØ´kܺtÛ¸uÚ·pÚ³rÝ°pÜ´rØ´sسmÛ²oرmÖ³eܵhàµlÚ°gÖ¯nزp×­fØ­fÙ°oÙ±hÙ³eÚ³hÛ¶jÚ¶iÚ°lÛµlÛ¸rÚ¶xÚ¶mÚ¶lÙ²pرjÚ²kÙ°jÖ°g×±fØ­eÖ­gÖ®iÖ³hÙ³kزmÙµpÞµrÙ´kÕ¯kÕ«lЬhЫhÒ«gÔ®nÙ³vÚ³vÚ¸uÛ»qØ°j׬fÓ©hÓªoÚ±kÚ°gÛ³jÙ±hÓ«g×°lÛ²gÖ®k×°fׯbÒ«iÖ©dÖª`Ö±`د^Ù­aÖ¯^Ñ«ZÕ«eÖ®mÏ©aШYÕ¨eÖ¦_Õ­`ѬmѪeÒª^ΣaѦeÓª^׬cÖ¬fÑ©`Ó¬eÒ­gϦcÒ¥\Ó©VÓ¨_Ñ¥aΤ\Í¡^Ρ[É£UÊ¡QÑ£[ÍŸ\ÊNÊ QÊ¢VϦ^Ц]Í SÎ¥\Ñ©`ϤZ΢YÑ¢`Ñ£eΧaΨZʤWÌ¥]Ц\ϦXÐ¥ZП[Í¢`Ï¥eÒ¥aÌ¢UÌ¡UѧYÌ¥YÌ VÍ¢VÈ¢UÍ Z΢[Ë¢[Ë¢eΦ]È¢SˤYÒ§\Í¢ZΤ]Ó©]Ò®bÑ´jÓ¯fÒ¥gϦoʧfɦcϨgΦ`Ê¡_Í¡\Ì TÊœ[Êœ\ÊŸYÌ¢[Í¥[Ë¡ZÊžWÊ ^Ë¢fÌ¢_Ì£YÉ\ƘSÈœOÍ›UÇ—WÈ–UÊ•IÃ’?Æ—KÈ›QÅ–IÅ—GÅ—HÄ—MÆšQÆ—WÈœT˜L¿‘IÇœNÊŸRÊTÍPÈœGÅœDÈžFÊžLÉ›KÊœQËœVÌœYÉŸ^Ã\ÆžYÍ¢^È¡WÊ [Ñ¥`ЧZÏ©[Ѭ_Ϋaϧ]Ѧ\Ϩ_Ш_ͦ`Í¥^СTÍ£Wͧ`Í¢[ΠYѤXФ[Ò§`Òª\Î¥W΢ZѤWФQΠQÌœTÊŸXϨ^Ñ©\ÓªWÒ©^ΤdÎ¥fϨ\Í£[Ï¢YËžQÈ™XÉŸXÇŸVÈŸWË¡XË XÈœRÉœUˤZË¥ZÌ¡YË£UÈŸUÆZÉ¡]Ì£UÌ¥WË¥[Í¢YУ[ΣZÍ¡UΟSÉ›TÅœVÈ¡UËPÊ›PË¢VϤUÌŸQË¢TÍ¥UΡXÊŸ\É¡YÇUÙTÈšXÍžUÈžQÇŸSÌ PÍžYËŸZË NΤ\Ì¥\Ä™LÕRÄ–QĘOÉ¡Xͦ\Ò­`Ò®aÍ¢[΢[Ѧ]ТZË¡\Ì ]Ο[Ê WÌ¢R̤TÈ¡VÍ¡VË¡VÆQÅRÈ TÇMÆšPËŸWˤTΣPΤRÍ¥WÏ¥UÍ£TÊ£XÌ¡RÌœPÈŸZÈ¢[É¡YÊ¡TƤUȤX̦ZϨdѬgѯfÓ®hЩeΩaÑ­bÒ®bѯbÖ±cÕ±fÓ°gÔ«eÕªhسhÕ°bɤYÇ¥_˪j̪cÇ£VÄLÁšI¼”I²‰@®…9£€?à¬gÚ¬dÛ«få²k߯gÙªbÚ¬kÕ¦fË¢aÓªeÚ±cÙ«dÙ¨`תUÓª^Ù¯gÜ®dÙªcß®cÞ®eÙ©hÛ­lÞ¯lܱkÙ±nÙ°oÛ²rݸtà¶qà³p߸lÞ·fÛ¯fÙ¯ká»mâ»rá´zâ·tÞ¸rÞ¶uá¸rà·rÛ²pÙ³hà¾oá¸qà°pßµuà·tã¹nåºoã¶oáµoÞ¶qà·kã¼qâ¸rà³kÚ±mÛ¯pà³tÞ¶pà¶iß³hÞ²kݳeÚ®bÕ¬d׳dÞ¸jݶqܲqݱgÚ²hÕ¯iÕ¬iÔ¬hÕ«hجiÙ±gÚ®fÛªeܬ^Ù¬b׬kܱjÚ¯`Ùª[ܬcÚ­dÜ­\Û­WÚ±ZØ«ZÔ¥]Ø­eݯc׫aÔ­cÕ«`Ð¥^ͨeÒ«eÑ«gÓ¨d×¥^Ö£aצcÙª`ÙªcØ«hÕ¬hÓ®jׯjÖ¬hÓ¨g×®iسl×°eØ­cا`ר[×®^×°fܲeÚ­hÙ­nÚ¬jبnدqÙ³kØ­fÕ«fÓ®hÖ°hÙ¯fÙ­cÙ°h×±mدjÙ±kÙ¬bÖªc×°lÙ¯cÖ«bÙ°hÙ±hØ®hÚ²lܳrÚ´sÚ³vØ´rÓ³gÕ´hÙ´mزgÖ°eׯcÖ²`Ô¯b×­fزgصkÚ²rײnÖ²jÛ´rÚ·r×´mÕ°oÒ¬hÑ­hÕ°rØ·xܼzÚºwÙ½zݹs×®lÔ®pØ­oÕ«mÖ°iÚ±iÙ°oسrÖ±nÖ°nØ´oرjÙ°gÚ±kÙ²gÚ²eÛ³mسmÞ¸oß»wÙµvÓ°oÓ²mÙ´iدeÔ¬cÖ°eÖ³nÙµrܵrÚ±nÙ°j×°iÕ¯eÕ²d׳i×±qدjÔ²cÖ°jÛ®mׯfÓ¯cÖ­kÙ°mدhÓ­fѬ_Ψ`ϨaÒ¨_ͤ`Ϥ^Í¡]ÈŸ]̨`ШbΣ]ΧZÒ§_Ó§aÓ§aÓ§dѨZѦ[Í¢ZÄŸRÅŸXÌ¢\Ì¢SÌQËžXÈ ZÊ YÌXË™QÈ—MÉžTÈ VÉžTÇžUÈžUË WËŸUÊžTÌ¢YΣZÉœYÇ \È¡ZÈœWÊš[Ë[ˤZЧaÐ¥_ÌžW΢ZË£_È¢e̤bÇ£`ÆaÍž]Í¢ZÊŸ[ÉŸWÊ¡WÊ¡WÊUÊœRÇœNÉ¡VË£\Ì¢ZË£WÉŸXÊ\Ì¡ZÌ TÊ™QÈ—UƘIÓ?Å”LÈ—KȘIÔFÀ’A“FÄ•LÄ–JȘNÅ–L½‘IÁ“HÄ—PÆšSÇQÆRÈœPËŸOÊ RÊSÊžU΢TÊPÅœTÆ]É¢]Ì£TÌ¡WÏ£[ϦZͦ_̦ZϧXͦ`È¡[ÇšWÉ ]Ë¡ZËœWÌžWÍžVÊYËŸZÍžNÈ›JÈœTËžWË¡Z̤_Ì¢RÌŸJÊRÇšPÆ™MÆ›RÈœRÍ£YΤ\Ë¢XÊ£XÎVÍPËžQÊšWÈœYŘQÄ•IÇŸPȤ^Í¡\Ë UÆ XÉWÌ¡YË¥`È¡ZÆ™WÆ—YÄ™Q×OØVÈŸWÌ X΢]Ì¢[Ë¢YÈ¡WÊžOÍ¡NÊQÈ—QÊ›ZÇ \ÇœWÊ›XË XÈŸVÊŸYÍœXË›TËVÌžWÖK¼’GÅšQÌ¡VÈOÆRÉœQ˘OÉšUÈ™QÈšQÄšO¾”G¾F¾F¿ŽF”LÀœTÉ¡ZϨ\É£UËžZЩfЭeÍ¥ZÈžXÈZÈ¢WË¢[ÈŸ[Ç¡RÊ OÉ UÅžUÅ™OÈžOÉ¥Z̧[̨]ʦ^Ì£]Ì¡]Ê£^ΩgЫg˨`̤[ˤVÉŸQÄ–LŘUÈŸ^ÄŸSÕM–TÇŸTË ZЩdÓ°eÒªfÓ­gÒ­cΫeÓ¬eÔ­eѯgÒ²mÔ²nرnرmÓ­gÌ¥cÈ¢aÊ©dΩ`Ç¡WÇ¢VË£VÆžV˜N¾B¥>â¹jÝ´hÛ¯là·uá¼sݵpÚ°pÜ­iÒ¤]̤]Ù«cÚªaÕ¨`Ó¥^Ö©bÜ´iÙ®bÓ£VÔ¥UÓ¦YÒ¡^Ö¢[Ó¥[Ó¤XÖ¥YÖ§bÜ®fܬdÖ§cÔ¨cÙ©gÙ«k׬cÚ®gÞ±iÞ²jܲmÜ´kÜ´nݳvà¶tÞ¶sܳrÛºoÛ½uÞ·sáµrã¹tá¹qá¶oãºnâ»uß»yܸpÚ¶mÞµnݲfÙ²dÞ±iÞ°nÝ´kà´dß´eÞµnÞµpÛ¸iÛ¶hÛ²oÞ¹rã¼tâ¹pß¹pß·pݯqØ°p׳lÓ­l×±oݶhÝ°eß°cݳcÙ´hÚ·iܵlÛµrÙ²k×°kܶsߺsܳjÜ®jݱiݱcÝ°cݳjÝ´jÝ°iÙ®jÙ®fÙ¯d×­eÖ­fÖ¬aÙ©^Ö¥]Ï¢RÕ©WÞ°gÚ¯cÙ­\Ù®cØ®gÛ¶hÜ·jÚ­eÙ¬c×°hÖªdÕ¬\Ö«[ק]Ô®]Õ¬`שdÓ¦bÒ¦`Õ§]Ò¨^Ô§eÜ«iتeÔ§iÖªiתbÙ¨bצbÕ­hØ°hÕ«cÕ­[Ù­ZØ«^Ö«dÖ¨bÓ©aÓ¬`Õ¬_Ó®gسiÜ´fدj×±gÚ¬bÔ«eÓ¯eÕ¯`Õ°bÔ­jÔ§gÖªfׯnÖ°oÔ²mÙ¸oÝ»s×´pÖ³qÙ¸sصnÕ±jÖ­gÖ­jÓ®nزpá¾yáÁ~ܸuصmÚ¶jÙ²jØ®lرlײjׯgÕ¬gØ«hØ­gÖ¯gÓ¯cÕ°e׳kÔ±k×®bزk×±iØ®hÜ´rܸuÞ·pÞ¸qضqÕ³pÖ±nÖ²dÖ±aÕ°dÚ²jܶrÛ¶rÜ´kÜ´jÛ±kÚ³jØ´gÙ²lÚ°nÙ­j×®eÖ³fÕµjÖ²hÖ³kÛµlݵkÚ´iÖ±hѬbϦ[ѧ`Ò©cЩbÑ«bͤ_É£aͱeÔ±hÒ«eάbÓ¬dدgرjرdÔ®_ЪeÒ«aͤZØWÆžZË¥ZÊ¡UÍ¢WÍ£]ÌŸ\Ρ[Ï¥ZÍŸWÌŸYÍ¡\Ì¢\ͦX̧Zɤaˤ^Ì¥\ˤ]Ê¡TÙQÀšSàRšVŘTÆšQÆ™QÊŸVÊ£[È¢UÍ¢WÍ¥^ʦ`È£bÆžbÈ]Ê¢\ͦYÍ¢ZËŸ]Ë¢_Ë ^Ê XÌ¢VÊ¢]Ì¥^Ц^ѦbϨiͨbͦ_̤[ΣZΦ[Ë¢[Ç ZÈŸQÈ RÄSÉPÈ›PĘNÊ›QΟRËQÍ¡[ÉŸV•KĘRÇVÊ£UËŸXÊTË¢OÌ¢TÊ¢YÈ YËžZÏ¢^Ë£WÆUÉ£X̦[Ê£`È¢Wɤ^̦eÍŸ[ÉœZË¢ZÍ£WÊŸWÅTÈ¢XÍ¥\Ë RÊœOÉœVÈUÉPÈ™LƘLÅ–KÉ—NÉ›SÇŸUÌ¡TÈœQØQÅšJÅšFÇžNǤ^É¥^Ë¢WÊ VÌ£TΠLÍšRɘRÇšRËYÈšTÉ™SÍ¢Z˦ZË¢XËžWÉŸQʤZÍ£_ʤ\É¡UÅžTÅžWÊžTÊSÅšQÆžTÌ¥WΡUÊ™SÆŸUÇUŘPÈœTÌ [ËQÊŸUÍ [ΟXÍ¢]Ì£[ÊSÇ™SÇQÊPÉŸVÉžTÆ™MƘNÍžWÒ¥]ϧaÍ£\Í XÌXÉšTÆžYÊ¢UÈžPÀ—Q¼“P¹“Mµ‘G¼’JØR¿šNÄœTÅœWÅŸ`ЪfÒ°_ʪUˤQÌ¥WͦYѦ`Ф`Í¢YÎ¥aѨdͧZÇ£ZÊ¡\Ф]Ï©cΨbϨbϪ[ΦWΧZÒ­^׫cѦbË¥aÉ¢\ÆžPÚOÄœ[ÅžW™K•GÆ™PË WÍ¥^ͧ`Ò§aÒ©^ͬ^Ñ®hÕ±iÓ±gÕ¬aÓ¬dÖ³pÖ²hÓ¯bÓ¬eϤeÌ£[ȧZ˪eЫhÈ¥]Ç¢YΣ[ˤSÇ£VÆŸKªŠ?à»uà¸t߶qÝ»tà»vá·pÞ¶pßµpدiЫjׯhÛ±gÛ²iܲmÙ¯oÙ±hÚ²dѦ]Ñ£XÙ©YÙ¥WØ¥ZצUØ¥PשUÕ¥^Úªbß±fÙªhÔ£aÖ¤bקeئaÙ§aݬeÝ°eÙ°bÙ«fÛ¯eÛµgÛ±rÞ°nݯfÞ®kܳoÛ²mÞ±nݶjݲqÞ¯rݳjàµláµjß´hÛ²eÞ°hÛ±gØ®fÞ±ká´má±e߯aÜ­\Ý©bß­má´oÞ³qá´mä·páµsá³kß´jÞ¶nÞ¶kÚ°fܯkÚ¯iݳfßµlß·kàµhݳlÙ¶hݵiݳmصoÖ°jÕ°jÛºqß½rÞ¶qÞ¸s߶qÛ°lÛ²pá¶{áµwá·uÞ·uÛ·rߺuâºrâ¶ká¶nßµlÙ¯hÒ­jزlâµtàµoÛ±fÚ±iݵjá³káµoÞµkÞ²fÚ±pÖ®nÚ®dܲe׳gÖ¯hØ«bש`Ö¦cÓ¨`Ö®^׬aÙ­aÙ¯eÖ¬eØ®bÚ¯bש`Ö¥`Ø¥bÖ¦bÖªdÕ¨dÓ¦bÕ¨]׬`جeÒ§cѧ^Ó§\Ò¨]Ô«ZÚ«ZبbÕ¨_Õ¨ZÕ©dÓ§eÑ¥^Ö­bÖ±gÕ©dÕ¦aÖªcÚ°kÛ²iÖ±gÚ²kزmÓ±gײmײmÕ®jÖ­oÖ°iÖ°dÖ±fÕ²lÚµoݳkܬlÙ«q׬mÚ±iÙµlزl×°gÖ®dÖ¨dØ­dÚ²hØ®fÔ­eÕ°`Ö³bÖ³jÖ´lØ·kÚ°fØ®fÙµkÚ¶fز]رgײkÔ®jׯfÖ¯cÓ¨`Õ­fسjÚ¯hݲhÚ²fÕ±mضoܵhÜ·iÙµoÙ³kÛ±lدiزc×°jÕ®kزnÝ·rÙ³pدpÙ¯rÔªjΧeάh˦cÊ¢\Ó¬bÖ¬cÓ©mÓ±tسf×®fÓ±hÓ¯bÔ°dÔ²hÖ±lÚ±nÔ«bЩ`Ó­cͤbÊ¥bÒ¬cÕ§]Õ§\Ò¦cѧaЪ_Ѭ`ϧfÍ£aÒ¨^Ó«gÔ¬lÔ¯mШfΡ`Ñ¡\Ô ]Í¢^Æ¡`ÈžZÆœSÅTÆ›RØVÁ™WÊ¢_Ó¨cÒ¦]Ò«]Ò¬fШhͧbÌ©_ΪcϨbΨaÏ©`Ô§cÒªfЭdΪ`Щ`ЮbÓ¯dÒ®hЭhЮhÏ©hÒ¨dЭ`Ϭ^Ô«cÕ­bÑ«_ЩaЬbШ\Ì¥]˨aϨeÕ©eѬ`ЪbÕª[ΦUÈ¡VÊ¢ZЫeÓ«cΣ]Ì cͤcÉ£Yͦ_ѧ`ÉžYÌ¢cΧdÈ¢Z˦\Í©dͤ^Ì¡\É¢^ͤ]ÏŸ^ÈšWÊ¢YÏ©_Ð¥\Ρ`ΨcЮjÖ¬hÓ¨aУ`Р\Í¢UÍ£SË TÈŸYË¡[Í WÌ›YËžTÊ VÌŸZÊžVÆRÌ¥]Ϋiʪd˧[Ì ZÍ£`Ы]Χ[Ê£YÈ£`Ë©hέ^ΨVЦ`ЩgЧ\ÏŸYТ^Ñ©bÑ¥eÏ¥cѨbЧeÌ¥gÏ¥eÑ£_Ë¡]ȤaÊ¥^Í¡[СXΣWП\Ë›WËŸTÒ£]Уaͦ^ͦVÍ£[Ϩ`ΨaΣbΣZË¢WÊ¡[Ë¡ZÍ¢TÍ¡OΣYΧ^Ь`Ѭ`ͨ`ͨeЦdЦ^ЭdÕ®lÒ¬mÌ«bɤ]Å\º–T¹–T½Uº–S·U»•XÁ›UÈ£^Ï«pÏ­qÏ©fÔ¬gÔªfѦbѨbϧ_Ψ\Ô­cÓ¬gÒ©bÓ©]ѧ\ѧbЩeÓ«gØ­hѬcϬbÖ¯hÕ´nЭhÍ¢^É VÈWÅUÄ¢WÞVÅŸUΨ[Ñ¥]Ê£YË©^Ψ_ΦZË£Zͤ[Ó«bÖ­h×­dÖ­aÓ«hÕ°jÓ³iÔ²gѨZÅšPšTÇ¢]ϯhÔ³kÍ¥cÇ¡bͦ`Φ]Ê¥^ʤW±Kã»~Þ¸uÛ´mسpݶtâ¹vá¸zßµxݵuÝ´pݶtß½vܺoݵmà·jáµmã¶rß³mÛ±pá¸tàµkܯgß´j߯iÞ®eÚ­gÙªgÞ²fÛ¬dبbÜ­fبeÒ¦\Ò§`Õ©gׯbØ­aÞ¯o߶vÛµuØ°rײuܵwÞµoܲhÚ¯dÚ°eײeØ­fÙ¨gÖªc×­bÛªcÝ©^Ú«[ب_Ö¦^׬^Ù«bݪhÛ­eÖ«WÕ¥RÕ¤TשZÚ®\Û¯]à²gß±mÝ®j߬hÝ®gܯ^Ý®aß³eÝ´dݲeݯgÜ­dÜ°hÚ´mÛ³kÜ°jݶqݹtÚ²nÕ«fÒ­`Õ±iܵmß¹qáºsã¼rà»tÜ·vÚµxܺyâ½xâ¼yß½|à½zâ¾~â¿{áºtß»tÞ¹rÚ¸oß»sâ·uà¶p߶jÞµkà¹pã·rß³nݳkß·jÞ¶fß·nß»yܸqÜ·oÞ·rܶiÛ¶jÚµqݹxà½{ݹnÝ´kÜ´jÚµfÜ´jܵhܳeÜ«fשfÙ­hݲrÚ¬dÖ¥\Õ¨_Ô­^ת_Ø©ZÒªZÓ¨`Ö¨^Óª\Õª^ت^Öª`Õ«]×­bÖ¬bÑ©fÔ¬h׫bפ^Ñ¡[Ϧ\Õ©eجeÝ­^Ù«eØ«gØ­eÖ­gÕ¨bÓ§dÖªk׫jÖ¬hÒ§^Í¢XÌ¢XѨ^ѨaѤYÖªaײh×®iÕ¨eÕªbÔ§\Ô£]Öªeزh×°hÔ­aÒ«bÒªfÓ®dÖ°gݯlÜ®fرcײgÛ±lÚ®gØ­]Ù¯d×°iÖ±cÕ«]Ϩ^Ò¬eدhزeÖ²eׯe׳kسiÚ®aرcÚ¶hÞ´hܱdÚ²dÙ±hÖ®k׳lÖµhÖ±gÚ°kÙ²oضrײhÕ¯bΪbÈ¢]Ê£^ШaÕ­aÕ¯cÔ«`Ø­gÛ³lÙ³kײf×®cÖ­cÙ²kÛ±nÔ­kÒ¬gÕ¯jׯlÖ®eÔ°`Ö¯aÕ¬bÒ©aѧfÕ­fÕ²fÔ¯kÒ«gÓ®bÖ²gÖ²nÔ´pѯhÒªcÔ®dÕ®hÓ¯nÑ­eϦ`Î¥eͦ^ʦ\Ê¥bÌ©dÒ±fÕ°iѪeѪaÓ­eÒ¯fÒ²fÔ¯jÕ¬hѬfÒ®fÖ±fÖ¯i×±kÖ´gÖµiÚ¸mÚ¸hÙ¶o׶tÕ²tÚ¯tÙ±qÔ°kÓ®kЯkήeÕ®jÕ±mÔ²iÖ¯kѨiϨjÏ«hέbÓ³hÕ®oÕ«fÒ±dÒ°dÒ®eÏ°hаmÑ­kЪeÕ«gÔ®lʦ]̦`Ò­l˦dÌ¥dÏ«dЮcѯj̬gЫbÓ¨hͤcÍ¥]ЪdϧeÒ©gÕ¯fÕ¬cÓªiÑ®oÖµnÙ·qׯjÓ¬kÑ®jÒ­cШhÑ«kÔ­gÔ­fÒ«fѧdЪhÑ«fϦbÓ¨dÓªdЬbÓ¯dÓ­cÒ®cÓ¯kÓ±pήm̦bÍ¥_УeÔ¤hÒ¨fΧcЩcÒ«[ѨYϦ\Ò¦aÒª`Ϊ]Ч]ѪcϨbѤbЪcÒ«dÓ¥aÍ¥ZÊ¥VΪ\ΫeϪeÒªfÏ«fΪdÏ«_ЧX΢XÍ¥[Ò¥\Ô¦bЩdΦcÏ¢bÍ¢^Ï¢^Ò¤^Ϧ]ͤ\Ï£\ЦZ΢WÌ£RͦYΦfÒ©dÒ¦`Ô¦e×­hÖ®k׬nØ´jÒ³cÌ£_ÄœY¿žT¼œWº“YÀ™^Ä¡`Æ¡\Ȥa̦bЦ^ΫbÏ«^ΧXΦ]ͦdΨdÒ¥]Ò¨aÓ®dÑ«^ͧWЩZѪaЪ^Ô¯^Ó¯XÒª^Ô«oÓ°kÑ­fЦeʤbÊ¥`ʤ_Ȩ\ŨbɨoÓ±hϯYÆ¢QÈ¡[Ч^ΧWÌ¥WÎ¥VΧZÒ©cÖ¬]Ö­]Õ¬^Ш^ЫiÑ©eТ[Ê Z¿šYÅ^˪iÏ®kÑ«m˨hÉ«iΫmͧeÌ¥U´“\ã¹sà¶uÞ¶zÚµzÜ´xã»yå¼wà¼{ß»zá¼㹂ã¸záºoÞ¸lܼráÃuäÂsã¿yåÅ}çÊxå¾qâ¹sãÂtä¾qá¶rÚ±jÕ®eرhÚ´hÙ¸kݹoÚ¬eѦbÕ®gܳhܵpÞ¶oá¶pà¹xà»yß°oÚ²mÞ¼nà¸nÞ¶mâ´gá²mÛ³pÞ´ià­hÛ«dÚ¯bÙ­eÛ¬bÝ«]Þ¨aݦ`بbÙ«]Ø©_Ù¦`×¥VÒžVÒYÕ£WÓ¢QÔ¡Pݬ]ß³dÛ®dÛ°dܳ^ܯ\Ý­aÜ°dݬ]ܦ\Ú§WئTÕ¤\Ô¨`ׯeØ­cÛ®`Û²gÙ®iÖ£`Ρ]Ï¥aÖ¬cÙ­aÛ±n߶sÞµhÚ²e×°dÙ°eÛ°cÛ°kÛ²uܵo߶kà¹uà¸zܵnسkײsܸtà¸w߸sàµmÞµoÞ¸lÞ´rà¶uá½qàÀvá¾|â¼{áºyà¸uÞ¸o߸mâ¸uá»vÞ¼sá¿wã¿xâ·lÛ´nÙ¹tß¹pà¶n߶jÞ³eÙ³fزhÚ´kÝ·oݳkܯoÚ¶uÙ³mÙ°gÙ³cÙ¯dܬfÛ®gØ°jÜ®fÚ«mÚ±pÛµnܳmܳoسlÖµm׳oרjÌ£bɤbÏ¥e×°iܵgÛ®hÜ´oÞ²oÛ­j׫ZÕ¨^תe׫`Ô«WΤPÇOÆ›VÊŸ\΢bѤdÕ¬eÕ³mЫjÍ¢[Ñ¥ZÏ£YÊTТTÖ§VÔ¨YÓ¨WÕ¥XÓ¥YÓªZÖ­gÙ­hÕ­_Ы_Ô«b×­bÓ°aÕ®b׫aÕ®cÖ®cѪ^̧^Ñ«_Õ®eØ«dÕ­bÕ®hÖ¬lÖ¯fÓ«bΨaÓ®hÚ°mÛ²nÙ²o׬lÖ®dÔ°`Ь`Õ±eÛ´hÕ«gÕªgجbÕ¬eÒªdË¢WÅ¡TȨ[Ó«bÙ«`×­a׳kسiÛ°hÙ²fÖ­b×­^Ù±bسjܱoÕ«gÒªeÛ±j×°iÕ°hزeÖ®gÔ®eÒ®jÑ°qÖ²nصoÙ¹kÚ³g×±k×´rØ´sØ´qÖ´eÖ¸cÚ¸lܳlÖ³pÔµr×´lׯkÕ«lѨgͪbаfÔ­bϧ[Ó¬^Ø®h׬gÖª`Ö§a׫fÖ¬dÓ«dÖ±kØ°mÛ²lݵiÙ³kÖ²mÖ²n׳p×´qÕ¯nׯlÖ²lÓ°mÑ­nÏ®kίjÔ®hÕ³i×µlÖ²nÑ«fЭgÓ®jÔ¬fÔ¯eسlÚ·rÚ¶sصrÖ³qÒ²pÖ³rÖ°tÔ³iظrÙ´vѪiÍ«jÒ±qÒ¯tаoÑ°hÕ³lÕ·oÕ±lÕ±pÕ¶xÔ²oЪhÕ³r׸sÕ´qÖ³rÖ²rÙ¸xÖ´uÏ©pÔ²oزlÔªlÕ¯lÕ±rÓ®qÓ¬kÖ¬pÖ«hÕ©eÓ¬mÔ²qضn׳rÓ±uÕ¯nÔ¬pѬlÓ­jÖ¯lÕ°lÔ°nÔ«dÎ¥_ΧbÒ¬eÕ«cÒ¦\ϤVϨYШaÒ®gÒ³eϦbÏ£cÓ«`Э]ЪdÑ©bЦ^Ñ¥]Ò¨\Ô«bÕ­hЩgϧdÔ«^Ö­bÖ°e×­dЦlΦdѦVЦVÏ¥XÓ¦^Õ«^ѨaÎ¥cΨ]ΦX̤\Ϩ^Ó§[Ц[Ï¥]Ñ¥]Î¥ZÊ¡XË¥VϪ\Ó¬cЫ_Ñ©aÖ«gÒ°kЯiÓ³kÔ¶kЮa˦`Å¡cáaĤ`Ŧ`Ȧ_˨]̦[Ë¡\ѤbÔ©kÓ¥aÑ©ZÏ­^ϬZά\Ñ©`Õ©bÓ«hÔªbÓ¦[Ï©aΪ^Щ\ÒªeÏ£aÌŸ\ΦbÔ«hÕ¬gÑ­dΫ^Õ¬`Ö®eÑ«^Ò§_Ò©aÒ²_Ò¯^È¡ZÊ TУVΠXΠUЧTѪYϨ_Ω]ѦTÏ¢TÇUÉŸ[Ì£ZË PÊžWÈšZÈ VÊ¢]Ê cΤdΦdÍ¥dϧfϧbЦUµ”TÚ²tܲjß³oݳnݯiß³q߸qݳtÞ´vߺsܵqß±tà¶sÚ°jÙ­jܸtâ½yä½yà¼xä¼æ½à¿yãÀ{ã»y߶rÛ²oЬmË®lÒ®nÖ®rÙ°s×­oÕ¯nܵnߺtä¿€ã»zà¸uâÀ{áÁ|ß¹uà¸rߺsàºtá¸qáµoà¶má¸là¹nÞµnâµláµiÛ°kÝ´pÞ·pÞ·jã¶já²bݳ\á®`Ý©cש_Ø«_Ó©`Ч[Ó£[ѧZÕ®\Ú®fÖªeÔ§[רbÞ®jÚ¬aÕ¨]Ø©ZئVÕ¦YÕ¨YÖ¨[Ö®cÖ°aÓ§XÕ£\Ø©aÙ«\ب^Ñ¢\Ô¦`ÛªhÙ©dÙ¬bÛ®hÜ«i߯iÚ®hÕ£aקaÕ«gÒ«hÙ®jݲmÚ³mÛ²hتdÓ¦`Ó­]ײkÛµtܶqÜ´qݲrݶsÞ·qݹuà»qã¾tà½và»p߶mܯnܯoÚ°oà³oã¸qݸtÝ´uÛ¶oÙ²kܯjܲiÛ±pݲqÛ´lÖ¯iÕ¯^Õ²bÖ³lݵqÛ²pضkݹoݸrÞ¸oÚµr׳mÛ±gܲfܳfݳiàµhà´pÝ´iÛ²bÚ²pÝ·{ߺvݸn×°fϦf˨fɦaÑ®hÚ¶kصeÞ¸mß²oÝ­iÙ±kÑ«fЩaجbÙ°_Ö­bÒ¦\Í£\Ï£dÕ©gÓ­eÏ­eÑ®gÑ©aΦ]У_ÍŸTÆ™H“KÇ™OПQÑ¢YÐ¥]Ñ¡ZÏ£WЯ^Ϭ^Τ[РVÉšOËŸWÒªbÕ¦]Ô¤YФZÏ¥[Ð¥UЧTÔ¥]Ô£^Ô§\Ô¦\Ô¦_Ö§bÖª_ÓªZΨZЪaÕ°hØ­ZÖ­XÔ±d׫dÕ¨_Ó§]Ø­eÖ°eÓ§ZÓ§^Ñ°fÒ¯^Ò¨ZЧYǤXÄŸWË¡RÒ¥XÔª^×±iݳiÙ°g×­jÕ­hÔªcתfÙ«iÚ²mÙ¯hÔ¦f׫jÙ­gѬiÕ­kÖ®iÔ±jÕ°nÒ­gÓ°lײtÙµo×µmزqرrÒ­pÓ­oÙ­oØ«jÔ¬mÖ¯kÕ®iزlÛµhÖ°c×´lÖ±hË£XÈ¡YÓªgרeÖ«aÚ±dÚ±jÕ¦bЦXÔ«cÕ¨cÓ¬^Ô®eÑ­fÓ­f×®nÓ­kЫhÕ«dÖ¯hÓ±iÏ­iÑ©mÖ«eÕ«eÓ«jѨgЩbÓ­jÕªlÒªcѬgÑ­jÒ«eÕ«fÒ¯gÓ¯g×´kÛ»tÚ¶q×±hÓ²iÔ±oصm×´k׳oÖ´nÓ±iÓ¬eϬhѳk׶oÒ·uÑ°mÒ®hѲkÕ²eׯ_Ö­hЫhÊ¢_ѪcÕ´lÕ³j×°hÒ±vÓµvÖµnͬkÊ©fͨfΩeÑ­iÒ«mÓ­fÖ°fÕ®oÓªgÒ©gϪkÏ°mÕ°lÖ°hÔ¯cÑ©dΦgЪkÑ­lÑ®lÔ­jÓ¬cЩ`Ϋ^Ï©c׬jÓ²iШgÓ¤cÕ©_Õ©bÕ¯cÕ°eЪcË¥`ѦhÕ©gÒ«cÏ­cÏ­bÓ¨bÖªbׯhØ´lØ°dÕ¬hÒ°mÕ±g×°l×­mÕ°dÒ¨[Ì¢VΣTÒ£XÑ©^Ó­cÑ«bÑ©XÒ§X΢WˤVЩ]Ö«_Ó©WÎ¥WΨ`Ò©]Ò¨\Ϊ]Ϊ\Ы^Ò¨^ϧ`Ñ­eÕ¯bÒ¬eЬiѪbѨ_Χ[ʧ^̬dͪeÍ£dÉ¡bÈ£cʦ_Í¥^Ϊ]Ϭ`Ó¬bÒ«_Ñ«]Ó®_ϯcЫeÔ«cÓ«_Õ­fÔ¯eÓ­cÓ­jÒ°hÔ°fЫZʧ[Í©`Ó¨^جc×°bЭeÕ¯bد_Ó«bÕ¬eÙ°eØ­fÔ¨]Í NÉTÈžUÆœRË¢UˤOÉžEÊ HÆšIÓGÄ—JÀ™JÄ™SÊœZÊžXÍ UÊŸ[Ê¢]È V›RÄŸ[Æ¡_Äœ[È›_˦]ͦS°ŽUÚ«kÙ¬`Þ°aÛ©cק`Ø«b׬eØ­eØ­cÛ­iܯjݳfß²rÜ«nبcÖ¯mرmÛ°kÞ·pÞ¹và¶vá¹tá¹{á¶{ß´xÛ³vÒ°qέmÖ­lÕªfÕªfÚªlÝ®ná´láµnà»nã¼rã¹tã¹vãºt߸nà¸nãºrã·rä»xâ»uáºnâ»täºsá·rã¸uå¸sà·sá»uà¼râ»vêºzåºvá¹tã¸là³hݳnß²rجjʤ_È£^Ï­gÕ²h׬gÓ©hͪdϪdÚ­hÖ©aÚ¬bß²lÛ°fÞ²`á¶hÞ´kݯdݯdݲfÞ³eݱhß´j߶iÙ²h×­jÜ°mÞ´mà²fܬ`Ö­dÚ¬kÞ­jÝ°hÙ­fÖ«bÔªaØ®gÚ¯jÙ­bÙ­bÖ§iÖ¦fשdׯkØ°rدsرqÚ°rܲvÛ´pزkÛ²oÞ±oܪjÛ«eجbتeÛ¬fÚ­hÛ¬mÝ®fܯaÜ­dרcÕ¦`Ö«dÖ©d׬c×­b×­bÖ°aÖª]Ö©bÚ±hÛ²jزg×±hÙ°kÚµlÚ¶lÙ±jÙ±jÙ³gÖ¯bØ­cݱpÙ²mׯeÚ°dÙ­gدkÛµtß·{ݶpØ°lÕ­mÔ­hϬcÑ­jÙ°qÛ±nܳk×­m×®mÛ³lÖ±gÕ±fÛ²bÚ°cÚ±iÙ°eÖ¯eدg×®gÖ­dÙ«cØ®jÓ­lÒ¨eЦZÍ¢XËšWÇ‘CÄŽ=ÉœQЫ[ѬcΨgͦdѧ`Ѥ^΢]Ï¥^Ê¢ZË¢^ϤaÒ¥`Ôª[ÔªYÓ©\Ò©YÔ¦W×¥UÔ­UÔ¬XÖ¨YÒª^Õ©aÕ¦[ФYɤ\̧\ϪiЬgѯ^Ó¬]Ø«`Ó©^ϨYÖ®gׯhѦ^ͤ\ˤ[Ï¢WÓ¡]ѧbʧ_ÀœV¾œ[Æ¡ZÐ¥WÚ±bܱiÙ©cÙ«aÔªbФZШ`Óª_Ó«aÒªcЦ\Ñ©]Õ²`Ò­`Ó¬`Ö±fÖ´jÕ°hÔªgЬjÑ­hÕ­hÖ¬jÕ®kÓ¬gÕ«aجhÙ­iѪ^Щ]Óª_ШbÕ­fÕ¯cÏ©cÓ«eÕ¯gͨeÄŸTË¢ZÖ­jÕ¯bÖ°_ݲgÛ­_Ø«^Ô©cѤbÓ¦`Õ­`Ó°_ЬaÔ«lÖ¬kÓ©_Õ«_Ó©eЧeÒ¬dЬdέbѬbÒ¨gÓ©hÔ«eÓ­cÔ±jÑ©fÒ©`Ò­cÒ¬aÔ­dÔ­gÖ¬fÓ¯eÔ±gدhÕ®eÓ±kÙ³rÛ±hÖ­hÔ®lÒ®eѪbÔ©jѬrÒ³rÕ³nÕ­g̦dʤdЧYÏ©\Ñ«cÔ¬dΨaÅžXÈŸ[Ъ^Ó¬bÓ¬kѱhÔ­dÑ©jÍ«jЫeÔ¬`ЬcÏ©eÒ¬hÏ­kÔªdÖ¬dаfЭgÓ«gÑ­gÑ­cѪbЪhÓ¨dÓ§_ЬjÓ¯lÒ¯jÓ¯lÔ®kЫhÔ­fÔ®lÓ®gÕ­kÕ­sÕ©hÖ«gÓ±jÑ­dÓ©dÓ«bÓ¨cÔ¦mÕ®oÕ°nÕªmÓ­lÓ­lÓªeÒ­`ѬgѨiÕ«g×®jÕ¯hÖ³iÕ±fÖ¬`׬dÓ¨fÓ¤]Ѫ`ЬbÒ«aÓ«`Ó«aΫfʤ\Ì¡WÐ¥_ÒªbÒ­]Õª\׫^Ö«cÔ¦_Ï£[Χ^Ó«`Ѩ`ѧ^Ѫ^Õ®d×®cÖ­aÓ¨`Ð¥bЧ_Ó§\ϨbÍ«hÓ«gÒ¨jÑ«jÒ­jÕªjÕª`Ò®dÓ®fÖªbÕ«eÒ©eÓªeÓ¯aЮ_Ö®bسfÔ²lÔ­nÔ­nÔ°l×±o׳nÑ°fÏ«]ѧ[ש`Õ©]ϤZÒ¥ZΣ\Ì¢\Ï«YÖ¯^Ó¤]ÊžTÊ¡\Ìž[ƘJšIÙQÃ’I”A—H¿“G¿•HÄšRÁšUÅŸVÍ¥ZÒ©^Ó­^ЬcΫcΨ]Ì£YÆžW—W¿•R¿–R×WÓOªƒFתgØ«[Ú­]ا_اcÙ®dÛ¨aÖ¦bÖ©_Ö¨bÚ©dÛ«cÙ­eØ­cÓ£_УaÖªjתhÜ­oݯnܯjÞ´rÞ²pÚ°rØ®nܬgجkÖ­jÙ³iرjÕªeÕ«bÖ±jÛ³qáµmÞ³mà´iß¹i߸oá¶lÝ´kß³rßµuÞ¶sà¹nã»ná¸rã»yâ¾|àºwß¹u߸t߶tá¸{Û·vݹsã¾säºuá¹uà·rÞµoÛµsß¹wÞ¶sͨgÀŸdÍ«mÛ´yÛ³xØ´rÒ¯nѧbѦbÓ«fܳiâµiáµjå¼pç¼tâµtá²nâ¸mç½uç¿yá»uá¸uä¸uâ¶vܳoÚºqÞ¹tà´là¶i×®hÒ®hÝ·pݵnÙ¯iÙ¨jÖ«oÓ­lÖªeÙ­dݱhݳgܲkܵmܵjÙ±mØ´qÙµoÚ±oØ°mÔ«eÒ¨eÑ©iÓ§cÔ¢`Õ¤`Ѫ_Ù«hß­eÚ°eݯlÜ©iÙ¨iÚªnÙ­gר`Ò£_ΣZÔ¢[Ö¦^׫\Ú«_Ó¨WѧRש\×­eׯcÙ­dØ®lÕ¬lØ®lجiÖ«_׫_Ö¨]Ô©ZÖ¯fÙ°mÚ¯fݱgܳmرkײlÙ·uÙ¸mÖ³d×±oÖ²jÓ­cÒ¨h׬kÖ±iÖ°h×®fÖ²hÜ´nܱkÚ®iܲgÚ´fÛ°hÚ±lݱlß°lׯfØ«cÚ«hÙ°hÖ­^Ó­^Ò­\Í¥\Í¢`РQÊ•PÏ \Ù­cÙªcÔªbÓ«fÕ«eÕ¬gØ°nÖ²kÓ­gÓ¬gÓ¯aÕ²dØ·eײbÖ¯c×±bܳbÚ¯bÕ¬aׯ`Ø®bÕ°eÖ°kØ«eÔ¦ZÍ£_̤dÔªgÕ±iصjÛ³fÖ­aÔªe×­gØ´dسd×­`ЧcÊ¢bΠ]Õ¥aѨcʦ^âV½žW½ŸXßUͤWÕ­^Ø®bÓ§[У[΢[ФYÑ£YÍ YÊ XȤ\ΦWÒ§XΤZѦZÔ­bÒ­dÓ«bÒ¬fÓ­bÕ¬bÓ¯bѯ]Ó­eÒ¨hÒ b׫cÕ²cÎ¥UΣQÒ«[Ò¨bÔ¬jÖ«cТ\Ѩb׬jÔªkÅŸZÅœQЪ`Ϫ^Ц^Õ«bÕª[Õ¨[Ó¨cѦbϤ\ФVФYÏ¡^Ó¨`Öª`Õ©[Õ©^Ó«dЪaÑ£[Ð¥\ͧ_Σ_У]ЩbÒ¨bÔªZÔ¬aÔªfÓ¬]Õ­\Õ¬eÑ­fÓ¬fÕ®lÓ®jÒ¨dѨeѪhÒ®mÔ±oÖ®hÓªcϪ^ͦ^ЦbÔ­eÒ®eѨbÕªbѨ\ÅœWÅœWË¢SШZÒ©bÑ©`ΪZÈ¡PÈ£YЩ\Щ`ЮcÔ­cÔ«dÏ­`ЭfÔ¯nÕ²sÖ¬jÔªdÓ«hЧeÐ¥[Õ­aÔ¯fÒ©bÓ¨aά`ͧ\Ò©bÖµhײdÔ­dÒ¯`Ñ°`Ó¯cׯdÕ®fÒ«dÖªiÕ«nÑ«gÓ­fÔªdϦaÒ©cЩ`Ψ\Ñ®cÑ­bÔ©eÖ­nÓ¯nÔ°gÒ­cÓªcÓ«cЫ^̧^È£aÉ¥cÐ¥dЧfÌ©dЩbÑ©bЩfÓ­gЫcЪfÓ­eѨ^Ϩ`Щb̦^ʤ]Ë YÈ XʦWѪ\Ï«`Ϫ`Ö®gתeСbÏ¢aͤ`Ê¥bͨdΨcΨaШ`Ò¥^Ó§]Ó¬ZÕ®`Õ®^Ô«TÒ©`Ñ­gÖ±eÚ°eرgسdÔ§aÏ£^ϨbЧgЦgÓ¨bÓ©\ѧ^Ó¦bÓ§\Õ¬WÓ­bÒ­fÓ­dÒ­bЫ`ЪdÔ­gÖ­hÓ¬fÒ®dد_Ò©VÉŸLÈ KÆ¢WÈ¡]Í£PΣUˤWΦVѨ^ϤXÈœJ¿–G¼•LºJ»D¿–G›VÄœYÅ¡WÅ¡_Ç£aΦaÓ©gÑ­gϬfѬcÕ¬^Ò¦ZÉ¡TÃSÄšPÅ™OÀ˜O½E©€;á±kâ³gè¶kâ·lÚ¯hÚ­`Þ­`Ù§gاeØ©^׫bÚªhÜ«eØ©`Ó¢[ѤYÕ¨aÕ¦bתb׫`ا^تhÓ¨cÔ©bרfצ_Ú«^Ú°fÙ°fÛ­aÛ©^Ô¢ZÒ¡\Ó«bدeÛ¬cØ­eزjܳjÛ¯kÚ­lÙ°pÛ²rܱnà·lÞ»mà·qã¶rã¸uã·|à²tÝ´mÞ·jß´jÚ¯nدkÛ³fݶfÞ¶iܳmÞ²pà²qáµqã·yÓªnÄ›^Ò°pâÀà¸vܹxÞ·}Ù­rÔ­kÖ¬lÕ«pܵtá·màµjàºpݸnرeÞ´kä¹qâ¸tß¹yá·uá¶nÞ¶nزpÙ²lß·ià¹qá»zà´pØ­hÛ´o߶uÚ°oݯkݯkÔ§fÕ¤fÖªkÛ´sá¸ná¹kà»pã¸rݸkÙ³mÚ¯máµjß³nÔ©gÒ«dÕ¯iÖ©iÔ§lÒªiÒ¨fÓ«dÔ¯fØ«gÚ®hØ­lÚ­jÞ²oܲpÛ±jÖ¬cÎ¥\ͨ[Ô«_פ[Õ¦YצYÕ¢TÔ¢[׫\Ù«]Ö¦aÖ©bשcÕ¬bÓ«]Ò¥`Ó¥]Ù©dØ©dÓ¨WÖ¬aØ­b׬_Ù­dקeÕ¬kÖ²jÕ­jÔ®mÓ°kÑ­dЩ`Щ_Ö¬cØ­`جbÕª_Ó§aÕªcÖ®fÙ±lÙ¯lÚ²iÙ·lݵkÞ¶hܵiÖ²g×±jß´mÝ´eØ­bØ«eج_Ò«^Ò®]Ôª\Ñ¢`Ô©dÝ®gܯfÕ¯eØ°gß´lÞ¸lÛ¶kÚ³oܳnÛ²jÙ´jÙµpÛ´uÙ´qÖ³gÛ·lܶlÚ²hÛ²eÛ­gÙ°nÛ³oݲmÙ¯dÒ¦XÍ¢WÒ«bÚµk׶oÚµnÛ±eÚ®aØ°lÖ³kÚ²lܱmÙ²hÖ³hѯhÖ¯iÙ±dÓ®bЬgͤ_ÄŸW¿ZÀšZÄW̦VÓ¯cÖ¯fÒ«aЫfϨcÍ¡]Ë¡[È TȤXͨ`Ñ¥\Т]Ч^Ó®bÒªeÓª`Ø«`Ö±iÔ±fÓ©bÓ¨cØ«dÔ¨^Ò¦_Õ¬oÔ®mѨ^Ф_Ó£cÖ¦gØ®iÔ¬]Í©[ϧ`Ö¨eÕ«jÆ¡`ŸVÇ£XÌ£[ѤYÏ¢YÏ¡SÔ¦VÔ¥\Ò§]Ì£ZɘTÌ›UΡYФTÏ£S΢YÒ¥\Ò§\Ѧ[Ò©[ÔªfÒ§cÒ¥]Í£`ʦ]Ϊ_Χ^ϤWÒ¦`Ò¥bÒ¨^Õ¬aÔ«aÓ­bÔ®eÕ¬cÔ©dÑ«eÔ¨cÔ¨^Ó­]Ó¨`Т^Ц_ЩeÏ©cÑ«]Ь]ѪaÔ¨`Í¢XÄ™QÇWÍ¥_Ϩ]Òª^Ñ©]ЦZÍ£[Ì£aÒ§eÓ¬cÔ«aÕ¨]ÕªdÓ©gѨ_Ò¯_Ô±bÓ¬aÒª`ЭeÒ­cЭ^ѱfÕ²jÒ°iÑ«gÓ¨jÑ©bШZÕ«]Ù¬fÖ¨eÔªeÓ®iÖ­hÖ®kÓ­hÓ«dÕ­f×°iÔ­jϬiϨaѨ`Ó¯hЯgЬdÔ­cÔ«fÖ«gÔ±hÕ¯kÔªlÒ­gѯhÕ±oÖ´uάl̨dʪgƦdÈ¢bÇ¡[È£ZѤ_Ó¦\Ó¬WΫ[Î¥]Ô¨\Ш\Ï¥_Ë£ZÉŸUÈ XË¡`Φ_̤^ΣbÒ¥_ѨaÔ­dÒ«`Î¥]ТaË£cȦ`Φ[Ψ^ϪiЩdϧ_ΦcѪcÖ©dÕ§gÔ®bÓ­`Ö¬dسbÕ®bجf×®jϦbË¥ZЦ\Ï¢[Í¢YЧZÒ¥^ѪaÓ«`ÓªbÖ²hÖ¯fΨcϨaÒ«aÉ¥TÅTÈ[Î¥[Ó¨\Õ­`Ö°_ЦUËžTÌ¡WÇOÁ›MÂRÄ›UÊ¡^Ñ©jÓ°jÑ°^Í¥WÄO¾O¸—N¼”GÅ¡QÇ¢YÆŸWÅ¡`̪hÒ®hѬhÓ±mÕ±fÑ«_ѬcÕ¬fÍ¢fÈ aÊ¥XͨVË¡QÄ–K‘F¦„Cã¶läµnâ¹ràºnà²nà²nàºrÞ³qÜ­hÙ³mܵtâ¹rÞµmÖ¬eÕ¨^Ø«`Ù®gÖªaÜ®aÞ¬`ת^Ø«hÛ«fÚ«aÚªgبbÖ©cØ©fÕ§bÖ©h׫fÕ¨aÒžWΚRÓ¥\Ô«bÒ¨dÕ©dÙª`Ú­b׫bجiÙ²lØ«bÚ®hÞ´qݱqݲoÛ³rÛ±sÜ­rÚ­lÙ±iÝ°pÙ¬eÓ©bÔ¨eÙ©eÛ«gÙ¬dÛªhÜ®hÛ°gݲqÚªkÍ¢dÒ°rß¹rÛ´pÛµvà¸x߶rÚ±nÖ¬mÒ¯gسhÞ³hÙ¬hØ­hÛ­eÙªeÚ®má³tÝ´sزpÛ±qÛ°mÛ´kߺsÞ¹vÙ´qà³qã¶vß»}Þ¶yÞµpܶpܲqÙ²nزjÙ³kÚ³tÛ°sÚ¯nݶoß»sâ¼zã½yÞ¸lÙ³fÕ±kÕ²pÛ°nÖ®lÚ²mݵmÛ´kÛ¶iÙ³mÕ«iÓ¨dÓªgΦg̤dÒ¬kÛ²oܶqÛ·oܳnݳlÛ¯eÕ§aÖ«aܲdÝ®eÙ«]Ø«ZÙ©XÙ©Xت`Öª_Ú±eÛ°hتaÖ§`Ñ¡bÕ¦eÞ²oݯmÔ«^Ó¬_Ô¨bÔ¬]Õ©`Ö¤fØ­fØ°iÕ«gÕ«aÔ¬aÓ«aÕ¨ZÔ§VÓ«VÖ¨Uب_ÕªaÔ¢^Ò¡aÒ§gØ©gت`Ø°dܲdÚ±cÙ­fÙ¬`ت]Ø°aÚµbÛ±eܬgÙ¯gÖ¬eתcÙ¯kØ­qÙ²qÞ¸oܳjÚ±jسkÖ°iÛ³hÝ´iÙ²nÚµqß´pß³nÛ¸rÛ»wܺrÕ´hÒ¯gÚ³jÙ±eÕ±bÙ´gÛ³lÙµrÛ¶uÝ»uÚ»sÓ¯lÊ¥bʨeÖµnÚ¶lׯeÓ¬bÒ­bÖ²bسaÙ²eÖ²iÕ°d׳dÙ¶mضnسkׯiÙ¯mÕ¬j̤cÊ¡bÆ¡\ÂTȤ[Ó²gÙ³mÛ²kÙµkÓ¬`Ë¢UÍ¥[Ó«aÒ©`Ð¥`Ôª_Õ¬gÕ­hÖ²eÖ®h׬gØ®gÙ¯jׯmÓ«dÕª\×­dÖ­f×®hÚ²fÙ²dÖªeÒ¬hÓ±eײcÙ¯cÓ®gÒ°hÖ®eÓ¬aÔ®dÌ¥\Æ›OË VЧ^Õ¬dÕ®fÔ«]׬`Õ­eÒ©eÓ¨cΧ`Ч`Ô«_Ѩ^Ϥ^Щ_Ö«^Õ¦\Φ[ΨbÓ¬dÔ¬fÓ©cÌ£ZÇŸXÊ£_ΦZ˦ZΦXЦTЦRÓ¦PÒ¦TѨWÔ¦TÓ¥UѨUÒ¨WÓ¦]Ò£[ѧ^Ш]Î¥ZÐ¥^Ѫ_Ó¨\Õ¤]Î¥ZΨYÓ¬[Ò¦\ÈœUǘY΢^Ñ©\ѧaÔ¨_Ô¨^Ì¢\Ì¡YÓ¦bÔ¨aÔ¨^Ô©]Ñ«ZÒ§XШ\Ò¬bÔ­^Ò­_Ь_ЩZѬ`ЫhÑ«fÖ±jÕ°eέgѯkÓ°eÍ«_̨hΧlЧ`Óª`Ô®f×°gÕ­dÕ­dÕ®bÓ°bѯhѯoÔ°nÓ®kЮlÒ±sÒ²rήjÑ«lÒªfÓ¬aÖ­bÓ­`ѪbÒ«cÔ¯gÖ·qÛ¹sÕ³mͪbΦbΦdÌ¢^ÈžVÊ¢Zͧ`Ѥ^Ð¥`Ϥ]Ó©\Ö¬bÕ¨bÑ¥\Ê¡ZÇžXÊ£UΫ]Ó©iÍ¥cΧ^ÒªbϪcÕ¬jتeѦ]ШbΦ]Χ]ѯfÏ°fЩhÓ¬jЯgÑ©`Ò¨]Ò¬`Ó«cÒª`ϤU΢ZШ]Ѩ[Ѧ]ЩcΨ^ÍŸQÌžYÍaΙ]ÍYÏ¡[Ó§`Õ¬dجd×±bÏ­^ÌžUΠWÍ¥`ÈžVÀ•M–PÌ›QÌŸXѧfÖ§bΣWÌ£UÈ YÅ›TÆœUßXÆ¢Uϧ^Õ®gÖ²iÓ¯dÑ®]ɨZŸWÄœR¡TĦXÈ©]ʦcÇ¡fÍ©hÕ³mÒ±mÑ«kÖ¯gÒ±gЭjѪbË¥\Ë¥aϬdÑ©\Ë¢ZÄ¢UÆœJ¬‹FÞ³oß±ráµpà·nà¶râ¶qã¹rãºxá¹zß¹uá¹uç¼~æ»xݵqܲnáµnã¶qá±hß´gà¹iÞ²iÞ²oà´oáµkà²kà­iÚªk׫l×­hÖ§d×­jÙ³jÖ­bÕ©\ج\×­^Õ¬bÖ¨bÖ¨`Û«eÛ­dÛ²ià²lݬ`Ù¯`ܱgÙ«gÝ«oÜ­lÚ®bÞ²hÜ°hÚ«eݪhØ©jÐ¥eÍœbΠ`Ò§aÓ©eÙ«eÙ¬bÖ¨dÞ«oÞ°mÕ¨bÙ«eÞ°jÚ®jÜ°sá³qÞ²mÛ¯kÙ­iÔ¨gתfبjÙ¦jÝ­f׬j×±kÚ¶lݱrÞ´kزhѪcÑ«`Ú´já¾rá½rܵlØ°gÙ²iÜ·rß¹vÞ¸rÙ²nÙ²nÚ³rÚ¶sà¸oâ½yá¼{ã´mÞ¶nݺvä¸tâ¼uÜ»rݳfÖ¬fÕ®rݶsݵqá¶lá¹nܶváºvä¼uÚ±tÔ¬pÖ°kÔ­hÒ§hѪpÙ±rà´pܳlÚ²iØ°gÚ­mÚ¬jײhàºpã»oÚ³fÛ±cݯeÙ®eÝ°gÝ­jÚ±pܶoÜ´lÛ²jתfÖ°mà¼vã¶rà°kÛ²fÛ±iÞ±nÞ³lÛ²pÞ³qßµrÞ¶qݳdÖ°aÖ®aÙ©]Ö©bÔ«dÕ¨_Ø«aÙ©cÙ¦cÕ¬fׯg×®gÖ«^Õª]׬gØ«^Ù¨XØ¥WÕ§UÙª]Û¬\Û¬\תcÕ¬fÙ­fØ­h×®lÙ±lÙ¯qݸuÛ´pØ­lÖ°mÕ©hØ©aÛ±eÖ­jÕ¯fÙ²bÙ°fÚ³oÞ¹tܵjÕ­aÍ¥\ΨhÕ®mÕ±k×µnÛ¹nÜ·kܺnݺ|ܶrײlÕ²nÑ®dÖ±cÙ²jÒ©`Ô¨bÞµpà´kرfÕ³kÙ¯iÙ¯k×°qÛ³oܸsÙ³u×®lØ´jزjÓªeÔ«dÓ©`ΣXΣ[Õ«a×®f×°gÛ±jÙ°eÓ­aÔ¬hزl×°hÔ¬cÔ®`Ø°eÚ±iسg×°iÙ±fرfØ­fÕ¬`Õ­_׬_Õ©cÕªeÖ°kضlÙ´g׫eׯdصh׳lÙ²mÚ²nÛ³rÚ´uØ´uÕ´rʧcÅœȚ\سoÚ±rײlÖ¶fÑ°h˨eͪaÓ¬eÕ­hزfÛ­bÖ«cÕ¯mÛ°jÚ¯hÖ­jÕªgÓªhÒ­iÖ°jÔ¯nΦhÆž\à[Í¥]Õ¨\Ô§^Ò§^ШZÒ©YѦZΣUТKÔ¡NÑ¥VÐ¥WТTÌžRÍŸXÍ£[Ê¡YÑŸYÒSΠQФVΡU΢XѦ_Ó¦cÍ¡]ÆŸ`Ï£dÔ¢[Ï¢WÒ©`Ö©dϤYÌ£UΤUÏ¥YЧ[Ѩ]Ó©bÖ¦dÒ¥_Τ^Ò¦`ѦYΡVТZÔ§^Ó©]Щ]Ò¨cÓ¬bÓªeÕªgÖ­jЧg̦gÍ¥bΡ\ШbÔ¬eÖ«jÔ«gÖ¬dÖ­eÓªhÒ¨eÕ¨gÙ¬h×®jÕ¨kÕ«jׯnÓ¦eП[Ð¥^ѨdÔ§eÔ«dÕ®bÓªaÒ«hÖ©nÔ«nÓ¯mÒ¨bѨ_Ó«eѧdÊ¥`˨\Ϧ^Ο`ÍžX΢VЧXÖ®]Ù¯gϪeͦbͤ`ɦ^ϬaÏ«[ͤ^Î¥eѧbÓ¨]Ô©a×­gÕ­eÕ§bÑ¥bϨ`Ô«`Ò¨^ͤSÌ¢[Ï¢\Ó©[Ôª\Ó¥^Ô¤^Ñ£UÊ™IÉ—HÌžQÍ OÍ¡TÉ¢\Ú[ŘRÉ UÈ¢VÈ›MǘSÈž`Í¥\ЩVÑ«^Ò©cÏ¥YÌ¢TÍ¢ZÒ¨\Ñ©[Ê¢TšQÅœX̦aЬfϦ]Ê VÉ¢UÊ¢R̤VϦ]Ó«_Ù´iÖ±k×­jÙ®gÒªaÔ«bÔ«cË¡^ÃœUÀWÅžZ̦cÒ«cÓ©dÔ­jÔ²hÓ°dÕ«bÒ«fѬhÓ¬iѬjѬjÒ³lÓ´lÔ­hЩgÉ¡\Æ›J®ŠBá³oÞ®nܯmÝ°hÛ®kܯoÞ³oà¶x߶vá·uã·xå¹tæ¹rß²qß²pã¸tá»xß¹vá·vâ»sã¿uä¹wá¸qß¹mâ¹mä½lÛ´gѪjسtÛ¹sØ°nß³kß¹gÜ·iݶkÛ³kÚ°jÛ¯gدhÝ´fä»mã¹rß³nß²kÝ°jÝ«jݧjÛ¬jܬfݬaß±aÛ±jݱjß³dÜ°dܨ^Ô£XË£[Ó§eÛ«dØ®eØ®cÙ«dÞ²tß³sÝ­kܲpÙªjÙ¦aÛ®gÞ³lݳoÜ®jÚ¬fÛ¯gÛ­gÜ©eÙ«bÛ«dÚªdØ«c׫d׬fݲjÚ¬iÏ¢_Ë¢`ΫdÑ­k×±lÚ°gÕ¨aÔ¨iׯmÚ³pÖ®lÒ©hׯkÝ°jتjÒ¬fÖ°gÛ°tܱtݳlÚµrÚ²rÛ³oØ´qÙ¯gÙ¬jÙ°qÛ²rܱmÛ´jݳhÝ´ná¹uá·rÚ´nÙ³hÖ°fÖ°kÚ²rرqÚ²nܵnÙ²nÖ®oÓ®jͧ`ϧeÖ¯lÙ±hÞµjÞµqܲnÞµfܵcÝ´cݵhݶmܵnÛ·mܵnÔ«hΧ_×°kÞ·oÝ´hÝ´fß´fÞµiܸnÛ¶lÛ´oßµnã¸já¶mÚ³kÚ³kÚ²fس`Ú³hÚ¯kÙ¯cÚ­hÛ±jÛ·jܲjÛ¯eÔª\ТYר]׫XÕ¤VÖ£UÕ¤RØ¥UפRÖ¨Tج[׫Zת[Úª_ج^׫`Ò¦^ѬcÖ¬dÔ¥XѨSÏ¥TΡUÖ©^Õ¬ZÑ©ZÖ©]Õ©[Ò¨bÒ­iÕ­eÕªbË¥[Ì¥ZÓ§dÓ¨dÛ°nÜ®nجgدhÖ®iѨfÔ§hÖ­mÍ©aÇ ]Ï£`Í¡[Ì¥aܵlÞ´mدkÖ³mÖ³mÙ²jÚ±kÛ´qÞ¶oÙ²j×±c×±cÕªfØ«jݵlÛ³cׯaÒ¬`Ѩdש_ר\ÖªbØ°hد`دbÚ°hÙ°eׯg×°eÖ¬dÕ©eÔ©`Ö«_Ø°d×±hÖ°hÖ²hÖ°gÔ®dÔ±gÕ®hÒ«jÕ­k×±cÓ«fÕ«iÕ°iÔ°gÖ°iÚ°hÝ´lÞ¹uݶuØ°nΨdÊ¥bÑ­kÔ´tÓ°kЫaϬfÏ«_˨YÌ©`Õ¬fÛ²pدnÓ®dÒ«eÔ©h׬hÚ²cÚ°g×®fÓ®cÕ®bܳjÙ¶oÏ®hÆ¡bÇ fÑ©kÙ¯nÓ¬lÒ¨dÖ«eÓªcÑ©cÓ¬eÓ«]Ô¨\ר^Ô¦VФTΦZÈ£Yɤ`̦`˦ZË¢\΢ZÍ¢VÌ¢TΣ[ЧbÏ«bΨaÉ¥`ЩbΦ`ˤcÑ©hÕ¨aѤVÌŸQËœPÍ RÐ¥ZÒ¦\Ôª`Ô­eѨZÏ¡UÌXÍSÏŸVСYÒ£XÑ£WУYÓ¦WÓ¥XÑ¥^Í¥\ͧ_ΫiϪmÎ¥gÍ¢]ͤ[Î¥]ѦaΡZÏ UÓ¤UÓ¥WѨ\Ó¦ZÕ¦cÓ«hШ^Ô¦cÔªi̤_ÌžYÏ¡]Ò¢`Ò¤`Ф^ϤgШgÒ¨]Ϧ`ϨdÑ­jЬlÓ¬iÔ¬`ϧ^ͤ`Ì¥^Ë¢TÌTËžSËœQΠVÌ£YÏ¢ZÌ¢UÄ PÈžYÇ`Èž_ÈXÆœXÄšWÇœNÈŸVˤaΨ`ϨYΣWР`Ò£`Ó¦`΢[ÈšMÉšHÊKÈœLÊ›NÎOΞRÊšOʘGÊšJÌžPÍŸWÉVƘJÚKÆšQÊ™TÊ™PƘPÆžYÉ¥]̤XΤ\Ϊ`Ó®cÒª^Ì£XϤ^ЩdÖ¯bØ­`ÈŸYÁ™SÅš\ͨjÉ¡]Ä–QÈTÏ¥ZÒ«^Ö¬gÜ°rß·rܵlÚ²lÖ±oÓ°hصiÙ³lϧXÀ™N½˜VÅœXÍ£_ϪcÓ­dدi׫hÖªaÒ«`ЬcЭhЭeÓ®bÓ°iÖ°lܱrÕ«pЧaÌ¢WÇ™R¯‹Nß²lÞ¯fÜ­cÛ©cܬ_Ý­bÝ«kÛ°kÙ®bÞ¯iâ³ká³gà±lݲnÝ°jÞ±qܶvá»pæ¿rå»wæ¸wå»vå»tå»tã¸tâµqà¸mÛ³kÜ´sß»rß¹nÞ·nà·rá¶sß²oä´kä·kßµkÞ¶lã¹oæ½sç»tæºtå»xâµsá²ná°qÞ­pÝ°mà±mà²táµmâ»fä¶må´iæ¶jÜ­nЪdÕªeÙ°nÛ¶mà¶qáµtâ¹vå¹vã´và´vß°mÜ«dÛ¬cà³mã¸pâµpà¯oÞ²iÞ²hÝ°iÛ¯bÝ°dß³jÛ«`Ó¡YÕ¦[Ú­bÙ©hÕ¦fУaÊ¡_Ë¢[Ò©cÕ©gÓ¤cÔ§bÙ®cÙ°dÖ¬cÓ¥YÓ¨VÕ­bרfΛ`ÊŸ_ΦdÓ¥aب_׬aÙ¯kÛ¯kØ®gÖ¬j׬fׯfݳmß³oÛ®fÙ©^Ú¨^Ü«aÜ­iÚ³iØ°bÖ¨_Ø°aÛ³bܬfÙ®gدdרe׬eÕ«`ÊœSÇŸZÒªhѦ]Ы^Ú¸uݲlܲdݳlܯlÛ³gܶk߶mܵhÙ¯hÔ¦dÌž`ϦhرlجeÕ­eײeÚ´hÙ°kÙ³mÚ´fزeß´rá¹xà¸rÝ·oÙ¸mܵkß·oÞµkܳkسrÙ´pݳoß´pÞ´mÙ­fÓª^ج`ܪcÙ­Z×±]Ø°dÚ¯cÚ±aÚ´eرgØ­aׯc×®jÝ­eÞ¯]׫aÔ¨gÔ¨^Ó¨TÓ§ZÓ©VÒ©OÖ«_Ù«dÒ¦_Ó¦\Õ¬\Ò«aÓ¬gÑ­jÓªgÑ£^Фb×­cØ­bØ®gÙ³hÛ´oÕ«lÒ¨h×®kÖ«kÓ©dÌ¢cÀ–]Ä›]È YÌ ]׬bÚª]Ô¨kÖ¯sÚ°nÛ°kÖ°dÖ®iܲp×®fÒª`Õ«eѧbϤ_Ñ«bÖ±bØ®[Õ«[Õ­`Ó­`Õ©cÓ©dÔ®`Ú¯aÚ°kسiØ°eÖ²gÙ³cÙµhÕ²iÓ­dÒ°hÖ°gرdÕ°fÕ®fײnسmÖ°jØ°pÕ­gÒª`Õ±jزmÖ¬mÓ®jÕ­e×®jÙ¹nܺnØ·m×·m׶pÑ®pЩfÕ®jÔ«qÊ¢hÆœdÊ¡bΡ_ͤcÏ­eÖ±hÚ²kÙ³o׳pÔ­fÔ¬dÖ¬bÕ¬bÓ¬dÓ«cÒªbÒ°fضmÚ¶pÖ¯ǫd̬dÕ³u׳tØ´iÕ±dÒ¯hÓ®hÒªeÕ«cÖ¬eÖ¬eÖ®gÒ©aѤ[Î¥a˧bÒ«hÔ­qÕ¬oÒ«bΩ^ѨfЯiÓ²gØ­iØ®hÙ¯nϨlÏ©gÓ­eÕ±iÖ¯pϬqΧaËœNÉ›QÏ¥TШZѦ\Ö¬^Ö¯iШfÏ¥_Τ]ͦ_Ш\УVÓ£ZѦ`Ñ¡aÒ ^Ò¦\Ò©hÐ¥eΨfÑ­iÔ«gѪjέeÌ¥]ÍŸ]Ì¢VÍŸNΞQÍ¡WÏ¥cÑ£`Ï WÌ¢]ЧeΡ[Ì\Ï¢cÍ¡`ÍŸ\Í¢ZÏ¢XÏ¢_Í¥`Ð¥`Ñ¥iЫnÒ«mÓ§gÏ£bΡbÏ£cϨfÒªdѨfϧkϧjΦ`É TʘQÌOÍŸLÌ›UÅ™N¾“F¿‘J»D»‘MÁ“TÀ’MÅ–MÅœIÅJË¢SÏ¥VË¡UÌ¡SÉ PÈŸWÐ¥ZУVËœMË¡TÇ WĘNÆ“IÉ–JÍœMÍžMÍŸOΡWÓ«VÑ«YÈ£^ÉžQÆœMÇŸTÊ¢VÌŸXÌ¡WФXѤ]ТbÓ§bÔ¯cزlÓ²fΨ^Ï¡`Ψ^Õ´aØ°eÒ¦\ÆŸTÀžYË£eÍ¢ZÊ SÑ¢`ÒªgÖ®hÔ±iÒ°e׳kضnزhÖ±kÚ²nݵtسtѪdÈ WÆžZÈ_È¢\ɤ\ΪbÖ¯dÓ«hШdÔ¨bÒ«fÔ­gÕ¯fÖ¬eÔªhÒ«kÑ©hѪbÕ°fÑ©_Ë¡Z®[Û¬ià°cÜ«_Ùª\Û¯[Ø®cÚ°cÝ®bÖ«bÑ­dׯhܯhÛ«fÛ§^Ù¨ZÚ©bݬbá´eå´oà¯kÞ±jãµtã³qàµrÞ´tÜ°lݳlàµqÝ°nÜ´mà·iß³iß³nß´näµpç¶sã·tá»uá»uã·rä¼pá¼râ¹uå¿tæÁuãºvã´qá³lÚ´eݵläºpáºoâ¹rå½xæ»sæ¸oß¹uÝ·oÞ³lܵtß·pà¸máµmà·qßÀ{á¿vã»oà»uܵußµpãºtä¼}å¼tå¼qã»rà·mà°hÞ³nß¹tä¸m߯fÖ¥hÒ¥bÔ«bØ°nÙ®kÓ©gΦeÓ«cÙ¶hÙ²dÙ©eÛ¯gà²cݪbØ©aÙª`Õª^Ö¬cݬnÕ¤]ÌžZÌ ]΢YРXÔ¤ZÙ®gÚ´fÙ­]×£^Ù¦^׬_Ô«cÙ¨cÖ¤[Ò VÑ¡UÏŸXÒ¢WÕ¨[Ó¦]Ô©XÚ«[Ù¦cÖ¡[Ö¤Wצ^Õ¦^Ò¦^Ц\ÍŸOÇ™QÄšZÅ™[Ë£_Õ®hØ®kÛ°mÛ°lÖ¨dÕªhÕ­jجgÙ«hÕªfÓ¨dÑ¡[Ê VÐ¥\Ø«]Ö®`Ö­g׫jÕ«k׬iÖªfÔªhÙ°mݶoÞµpß²rݵlÖ³cسaܹlݺtܹqߺsß¹xÙµu×°oØ°jÕ¬aЫ\Õ¬[Ù¬^Ü°fà·mâ·pà¹oà¸mÝ´iÙ¯fÚ±fÛµjÛ³lܲnÚ°kÙ°eÛ±gÛ³gܳeݳhÚ±h׳kÙ´lÛ²jÚ®j×®`×°dÛ¯jÛ±dÙ²hÖ­j׫iÚ²sÚ´oݸjݺvÞºzÞ¹rܸoܺtØ´sÔ«jͤaÁ™TÀ˜SÆ [Ψd×­kدlÖ­mÕ­lÕ«dÕ¨dЦfΨjÕ¦gÕ¦eÔªcÒ¦_ѦeϤbΡ]Õ¨cÖ«`Ó©YÔ¬_Ó­_Ö®bÓ¬jÍ©dÒ¨]׬c׳jسnײhÙµgÛ¸oÙ´qÖ³tÒ¬qÌ ]ѤXÔ©bѪcÕ³jÔ²uÓ«nÖ®lÓ¬eˤ^Ϋ`Ö³gÕ¬lÖ¬hÔ®fÒ±lÓ´jÓ³eÔ®fÓ©gÕ²hײjÕ«dÖ®gÓ®k̦eÈ¢^˦]ΧeÓ¦jÓ©hͨcͧhÑ®hײfÔ¯jЭgÒ¯gÓ±lÔ°kÔ«^Ô©[Ô¬cزgÚ¹kÙ¹qÑ°kͱiÒ¶oÖ³mÔ²kÒ¯kÑ®mÏ®kѬhÖ¬rÔ­oÏ­bÒªbΨbʦ]ЯiÒ³tÕ´pضjÕµnÕ²jϨe˦hЭiÒ­dÒ¨eÓ«hÖ®gѬgÌ«jÓ®k×°jÕ±jÖ°fÕªbѨaÏ«`Ò°dÓ¬gÒªjÕ±vÕµr×±gØ°kزo×´rÔ²kЫeÕ¯tسsÓ¬dÕ­cÔ±fÕ¯pÙ±rÓ°jÏ­mÓ«nÔ±oÒ±oÓ¨eЩa̧^Ì¢YΣYÐ¥]Ñ©gÑ«fÒ¤[ͦ^Ò«eϦeʦ_ЭbѬjÒ¨lЪhÏ©iϨiÑ©`̨]ͦbÒ«gÓ­gÓ«lÒ®mÒ­jШmÔ«jÔ¯mÓ«jÖ­iÖ²lÒ­c˨UɦN̦SʦWÉ¥WÄŸT¿–M¼’D¯„<³ˆKÅ[ÊžUÊŸVË UÉ UΣ]Ц\ͤTЦVУSÉLÐ¥YÖ§`Ð¥_Ò©bÒ©`Ì¡]ÈžYËžZÌ XÊ£TÌ£[Ë¥^ΨZÔ±`Э_ѧYÏ¥X΢]Ó«dÒ¶fÓ°fÔ¬bѬ_ЩeÔ¬eÖ²cÙ¹kÖµhͨ[Ъ^Ó¯bÔ°d׳fÖ¬bÌ£YÇ£^Ñ«eÖ¬bѬ`Ô¯eÕ°kÕ¸oÓ²jάbÓ±cÕ²cÒ«`Õ¬eÙ´lØ·kÖµkÒ±iϨ`Ì¡XÉœSÅ™QÆœRÌ TͤYϧ[Ñ«aѧeÑ£]ѦWУZÍ¢aΤ^Í£VË£XȦ`άdÓ­eÒ©_²•Uܵpß´o߯iÞ®fà²gß±kß³pßµsÙ­pÒ¨cÕ¨cÛ¬fÚ«^Õ¤\Ó¤Z׫\Û¯^Þ¬`ß®gÜ®dÝ«bÞ¬dÙ¯fÝ°má®mݬhÛ®hݳjÚ¯e×®dܱlà±jß³gß·iâ¹oß³oܱlâ·nâ¸pß³pß³nß°là¯oâµsãºvá¸rà¶nß´jݯhà±qß¹rá¹oå»vã½vá¼râºvä¶vå·pá´j߶oß¹tà³oݱuزoÞ¹qã¼wâ»xà»|ß¹zá¼vçÅ}êÂè½yå¼qã¼kâ»oá¸pã¹oåºsã¸rß·uÞ³nÖ­gϪpÖ¯sÖ°uÒ®sײhܳfà¶rã¼uâ½kå»jä¶mà²kß²kß°gÜ®aݳiã½tÞ¶pÖ¬gׯbÓ¬`Щ`Ø­ià¶sáºtß²mà°dß°_ÙªdÙª^Ú«[תa×­`ÓªaÍŸYÑ¥^׬hÔ§^Ò£[Ú¦^Ù©^Õ¨WÕ¨WÙ©^Ù§ZקZצ`Õ¢^ÒŸ]ÉœYÄžQÅTÉ¡[Ò«lÙ±vÕ®jÔ¨bÙªlØ­pÙ«g׫dØ­eØ«`Ö¤RÐœTÈž]ΩYÕ«_ÓªeÕ¬dÖ©dѧbÒ¦dÒ¥aΩcÕ«eØ­i×±oÚ­lÕ¨eÒªbÔ¬dÙ°nÜ´qÚ±lÖ®fÖ«`Ö§dÒ©kÔ«iÑ¥aË¥[ШXÚ­_ܲißµhݳeÚ°cÙ­`Ô®d×´gÜ´iÜ´nÜ´jÚ¯gÖ¬hزlÙµsÙ´kݶnÚ²r×±mÛ¸pܹqÛ°mÙ³hܶnÞ²lÙ³lÞ´pݲtÚ±vÚ³rà¼v㽃޷|à¼xãÀ|äÃãÀ†âº|߶rØ«jÊ bÀŸZÈ£XÔ®jÕ²pׯmدjÕ°fÔ´kÓ°oÑ©jΨaϨbÔ®hسfÚµhØ´jÕ­cÓ¬[Ó¬cÙ«j׬cÖ®`Ü°eÛ¯j×­jÓªeͦdЪcÙ²jÝ­mÙ¬cÖ¯dׯh×°hÖ­oÔ¦hÍŸYϦ_ЦbУbÕ¬fÖ¯fÔ«^Ô©bÓ§eÏ¡c̤dÑ©cÒ«bΫfΩfΦgÑ©kÔªfΦaÑ©^Ó¬bÒ­hÓ«gÖ¬dØ®bÔ­bϨfЦ_Õ«aשbТ[Ì `ÊŸbÇ `Î¥_Ï£^ͤ`Ô®eÛ³fÙ±jÖ­hÖ«fÓ«hÖ¯oدlÙ²eÛ·hÖ¶pÓ³jÔ¯eÔ­iÓ¯eÓ°dÔ«hÔ­hØ´oÖ´rÔ²hÖ²hÔ­ǫhÍ­nÓ²rÕ±pرeدfÕ¯mÏ­dϪ_ѪhаlÓ¯jЪkÒ­nÖ¯gÓ®eÕ°jÔ°nײvضqׯeÖ¯fÖ´nÙ²sÙ²tØ´vص{Ú¹vÚºzÙº}ݹxÚ´tÔ¯nÓ¬jÕ³pÙ¹tضp×±q׳qÚ¸qÛ¶uÚµtØ°tÕ®pصrÛ³pÙ¯qÖ¯pÕªeÑ©cÓ­fÕ«dÔ«hÕ¯mÕ¯mÔ¬m×­oÙ­lÖ¯pØ´vÖ²tÕ±oÕ±mÕ®mÕ«jÓ«jΩdЫ[Õ­fÕ¬qÓ­rÖ²uØ°oÕ«kÔ«qÕ®uزnÕ²gÕ±hÕ¬hѧdѨ\ͦXÈ¢^Ì£_Ê¥\Ƥ\ÄWº’M¾˜QȧV̨XÑ©]Õ©`Ó¡^Ѧ^Ò§aÓ¤cÕ¨dÕ¦[ΡTͧZÒ­\Ó­_Ö±eÕ¯iÑ­hÑ°eÑ­gÍ¥eË£_ǤaÄ£^Ê¥_Õ­fÕ®dÔ©bÒ©cѪdرgÙ´mزlÖ®hѦgΦ_Э`ѬbÒ®bѯfÌ¥bѧaÖ®g×°fدbرbÕª^ѤaÓ«lׯoÙ³kÛ¶lÚ¶mضjÕ¯fШbÒ©bÕ­fÓ®`Ô­^Ö¬`Ô§`Ð¥aÏ¥_Ñ¢`Í¡WÇQÆšVËž[Ï£[Ϩ^Ñ«^Õ«`Óª`Ѩ_Ϧ^Í¢YÍŸXË UÆRÅœRĘYÅšbɤ`Ѩ^¸“\äºuåºuã¹nâ¸jå½qæ¼uå¼yäÀwã»xà²vݳjܸpÞ´uÚ¬jÙ«gÙ¬lÙ¯hÞ±iá±mÙ¯hÑ«hÚªeÜ­bÛ¯hà«oÞ«gØ®eܲnܲk×­fתbÚ­bá²fà¶gß·gÞ±kÙ«g׫dÝ­lݬhܪb׫aÕ«dÛ¯fáµeá´kݯoݲkÚ¬eÚ¨hÚ©lÚ¬iã¸rä¸râ¹mã¹lâ³kâ´gÜ®bجhÞ³iܲkÛ®lÖªaÕ®fݲhÛ°jÚ±hÜ®dÞ®iä¶oè¼väºrã´hã¶dâ¶hã·sãºyà¹s߶læ¿xç¿{Ù°eЩeÔ¯pÔ±jرjݲmÛ¯nÞ²uâºwá¹uá¶wâ¸vá¹qÞ¶rá¶uß³iÛ²là»wã»sà·oݹpÞµmݲmß·sâ¹xß¹tݵnݱpß´hßµdݱjÞ°kà¶là¶kÛ²jÓ®jÔ®jÚ±iÛ°hÜ«jÞ®gà²eÞ¯eÛ±bÚ°jà±là³jÞ²mß´mÜ°jÕ©eÔ§aÒ¥\ϦXÓª`رoÙ°kÙ«cÚ®fÜ°lÝ­qÝ­hÙ°fÚ«iÚ¥_Õ¡\ÏŸbϦ_Ó¨\ئ\Ûª]Ù¯dÕªgÓª]Ω[Ê¡`Ë bÌ¥eÏ¢\Ñž[Ò¥`ѦZÑ£YÖ¬cÖ¯`Ч]У_Ѩ^Ñ©^Щ^ͧ^Ê£XÈQÈPÇŸVЦaÚ²dÝ°c߬hײiÑ­iÔ¨hÔ¬hÔ¬kѬcÑ«`Ò«dÓ¯fÚ¶jÚ¹hÚ¶qÛ±uØ®l×®m×®iÛ¯cܱkÛ²n׬aÖ­bÙ³hÖ±kÓ°pÕ­nÕ°mÙµnÚ´uÛ·wܽrß¿{å¿„à¿}ÚºpÜ´lÙ°nÈ¢YÇžVÖ®lݲlÞ±hÖ±hÔ±hÛ¶kܵkÙ±l×®dÏ®aÕ²iÛ³kÛµrܹnÚ¸jظkÙ´gÙ±dЫ]Õ¬jܱwÝ°mß³nÚ³tײgسbزg×°eÛ¯cÙ¯eÖ®j׬kÕ¬hÖ­jÖ«mÛµr׳mÒ¦bѧgΨgˤ]Ϫ^Ò¬_Ô©^Ñ©gЧgΧdΪeЪdÓ­f×­cÓ«aÔ¨bÖ§bÖ¨e׫iÕª`Õ©_Ù±i×±jÖ­e׬aÔ±dÔ°jѧcˤ`È aÈŸ^È¡\ÇŸZÇ¡`Ì¥eÒ¦cÔ¦^ѧ_Õ§bÔ¥_Õ¬bÖ­hЪiÕ²lÙµrÖ¬lÒ¦bÒªfÓ¨iÓ¨aϧbͨjزrܱnÕ¬hÓ°nÕ®oÌ£d̤hÒªjÒ¨cÓ©eÕ°gѲdЫ\ΧbΪeЭaÒ¬eÒ«eÓ­gÕ±kÙ³hÙ®`Ò¬cÖ±jײgÖ¯gÕ¯lÓ°iصqÛ¶tÙ²lØ´rÛ¸uسnضnÚµsسrÖ°oÑ©iÒ°mسlÚ°hرpÔ²tÙ´qÚ·oÙ´qدpÕ®mÕ²nÖ±lÕ²nÕ´oÓ²oÖ¯oدlÖ°lÖ°nׯj×±nدoÕ®hÔ³m׳pÖ±hÓ²dÑ®jÓ¬jÓ®dÕ°gÔ­hʤZÇ UϨdÕ°sÕ¯qÒ«gÕ±lÕ±qÑ®nÓ±lÕ±qÔ²oÓ°kÔªhÖ­qÖ°rͤ\Ș[È›`Å¡ZŤaÇ bÈ`Ç¡`É¢YÍ¥UЪ[Ñ­gЪeШ`Ñ©gѬfÒ­eÕ­eÒ§^ϧbÔ¬hÖ­dÓ©bÒ­lÕµr×´oÕ²nϱnЫeË¢^Åž\Ì ^Ó¦dÔ©hÔªdÑ©_Óª_Õ®gÕ²hÔ°dÑ­fͪhΫfвgΫbʦ`Ä¢]Çœ[ЧbÕ®bÙ®e×±gÔ±jÕ¯eÓª^Õ©dÚ°gÚ´f׳fÔ®fÒ©bϧ^Σ\Ѧ`Ô¯gÕ¬dÓ¨`Ñ¥ZФVÍ£RË¢VϤ[ФUÏ¡TΟŞY̬fϪhÒªeЧfÌ¥aЦeÑ©cͨ`ѨcΦ]ÄœZ™WÀ—R¼”WÅ›VÎ¥\¶–`ç¾vå»så¼xä¿{â½{å¾}è¿ç¾yæÀzæ½zä¿våÁvå¼{â¸váºsáº{á¸xáºtáºvܲoزkØ´qÖ¯mÖ²k߶oã¹ná¶mã¹på¼qâ¸nÞ³eÚ¬aÚ­fß´iáµkã¯má¬hÜ«hÛ­nÛ¬fשeÕ©cÑ¥[ЦcÖ­iÜ®bÞ¬dß­kÞ¬nÜ­kÕ©eÖ§eâ²kä¶må³fâ²eà±mä±hÞ«aÕ¥ZÙ­\Ú¬bÛªhÔ¦aÒªbܯdÞ¬dÚ¨eÖ£YÓ£]Ûªcà«bÜ«fÛ­e߯dá±gâ¶dâ¹jݱsÝ´oéÂvê½zܱjجiÙ­sÙ±kܵiܵpÛ³qàµsã·qß´kÞ¶i߸nݸmà¹pà²rÞ­mÚ­lܲqß·pßµhà³jÞ´oà¯iá±kß³pÛ´lØ°jÙ±fÞ³cÞ¯_Ú±hÝ´oä´kã¶lÞ¶pàµiÞ³fØ°jݶrà¸mÞµhÞ¶uàµlßµfÞ¸mÞ¶hà¶gã»oâ¿{àºsܱhܱpÛ³lÛ°eÞµoÝ´mÙ¯eܳmݱkÛ±_ׯjÓ«pÔ®fÖªcÛ­cݱdܬhܬ`ש\שcÙªdÝ­iÚ­gÖ­`Ù¬iÖ©gФaѧbΧ^Ï¡[Ѥ\Ò£WÔ¥^תbÓ¥`Ô¥gÙ¯gÖ°bÑ«dѦaÌ¢[É¡XÈQÄ™LÁ–K¿•KÊ¢Rد^Û«`ת^Ò§\Ñ£]Õ¨jÒ¨cΧZϦ^Σ]Ó«^Ù³bÖ©dÖ®hÛ¸oÕ¯nÑ©jØ®oÚ®lÙ±hÙ±kÙªiجgÙ°hÙ±jÙ®jÔªiЦ`Òªb×±jÙ±kسiÙ²eÕ­gÖ¬mجn×°hÛ¯_Ρ\Ä_ЧbÙ³bײcÔª]ѬbÓ¯kÖ­lØ­fÛ®bجiÖ°nÖ±iׯjÚ®jÝ®gܲfܵjÚ°lÔ¨hÖ­gݳjÛ¶mݸjÞ¶lÙ²l×®dØ®dÖ²gسjܱjدh×®h×´gÙ»iß»uÞ¼y׸qÔ°kͪhÈŸbÉŸ^ΫeÔ±m×­lجfЪbϪgÖ°hÖ¯bÖ®gÙ«kÖ­gÔ¯gÖ¯iÖ²nÖ³sÕ¯mÕ¯fÙ²mÛ´rÜ´oÚ¯qÖ²nسhÕ®lΨiË£dάnЯiÍ¥`ÇŸZÇ¢YÎ¥_̤[̪^Ò«gΡbѦ]Õ«_ΦfΩfÖ¯jدmϤ\Í WУ[Ч]Ñ©bϨfЪkÒ¯jÍ©`Ë£[Ñ©c˦`ʤbЩeϨ[̦ZÑ«aЪ`Ω\Ô­bÕ²jÒ²mѯkШgѨeÔ¬gÖ«eÓ¦cÑ£_Ó¦aÒ¦eÒ«eÕ±j×®oׯoÜ°p×°jÓ±jØ´q×±pجhÚ°fÙ³nÛ²rÖ¬mΪkѯkÓ°mÕ®jÕ¯kÔ°m×µoÚ´qÖ­l×®nÕ´pÑ­cÔªkׯnÕ¯aÑ­bѯmÕ°oÔ­iÓ®lÔ¬oÔ©nѬlѱkׯiÔ«eЫgÑ­hÒ¯lÓªkÔ«hÕ¯jÍ«bÉ©bÒ³pÙ¾zÚ¹{Ù´rÙ·vÙ¶zÖ±lرpÙ²yÖ¹yÙ¹wÙ²pÕ±hÕµmÑ°lΫdͨ`Ë£\Ì¢`ˤdÊ¥_Ê£XÅ£ZÆ¥`ϪgÑ­fЭ^Ѭ`ѪdÕªdÔªgÓ«fÑ®jÑ®nÖ¬jÕ­hЭfÓ°hÖ±mزqزnÓ¯qÔ²qЫdË¢\Ϥ]ѪcÒ¬eѯaÒ­_Õ¬eØ­dÚ²e׳iÕ°jЫhϪfÔ±fÓªbÊŸWÉ›TÍ¡]Ï¥dÓ©fØ°cÔ°^Ó¨]Ô¨\Ñ¥WÕ¤XÕ¦ZÔ¤_Ô¤eÔ£^ѧ^Ö®cÔ¬cͧ^Ô¬\Õ®bѬcÒ¥aЦ]˨[ϤZФYͨ^Ï¥^Ѩ`Ô­jØ°eÔ°bÐ¥gÔ¨dÒ«^Ó©fÙ±jرeÓ«eÓ¬^É VÀ•UÁœL›O¿šZÇ¢T±“Xá¹s߶rÛ·uܹuá¶zã¶{ã¹{ã½ä»|å»~ãº}à»uâºuã¸yä»xç¿|å»zå¿rçÂzã¼uÛ²lØ®wÙ°|Ú³qߺvã¼zä¼zç¿zè»xç¹æ¸yß®eÕ­gÚµsã¶tå¸xâ¸và·sݶwÛ±oÚ®cÕªbË¢\ϦdׯlزeÛ²láµvâºzܶpÖ­gѦhÛ¯mã¶oâ±lá®já³gá´là­kשaجbÝ­`Þ®^Ú¨^Ö¨`Þ²gà­gÜ«dÙ¬aÑ£\Т^Ó¦^Ö©]ר]רZܪbݱnÞ¸m߶kÞ³mà¹uÞ´oÛ°g߶já²mß°nÛ°cÚ±bß·nã¹rá´jÜ­dÖª`Û®dâµrâ²nÞ®fÙ«jÙªlÛ¬fÚ¬eܬcÞ¯eÜ®gÜ­eß°eÞ¯jÛ®lÙ­`Ú­]Û«[Ù¬ZÛ®cÞ¯gà­kß³mÞ²hà²jÞ®jרfÔ«fÚ°dݳbܱdÞ²fà·gÜ´fÚ­gݯoâ³má·m߶kݱhݳjÝ´gÙ±jܲoà¸nÞ¹nß¹sÞ¶oÕ¨cÓ©eÕ²gÙ±oÙ°sÜ´lÞµkܶrÝ°iܬ`Ú®jÛ°pÛ±sݲqÚ´kÛ·râ¶xÞ³pÙ±mÖ¯gÕ­dدi×°dÚ¯eÞ®gÙ©aØ­hÛ±jÛ°e×®cÕª`Ò¦dФ^Ì \É™YÆ—S¼‘K½•OËŸXСVÓ¨ZÓ¬`Õ¦aÕ¬lÒ­hѨaѦaÑ¡^΢]Ó¨`Ò§dϧfÖ±lÖ°rÓ­mÙ°hÖªbÑ¥aÖ§fÕ®fÖ°aÒ¨\Ò§`ת`ר^Õ¨`Ö¬]Ø°_Ó­aÒ¦_Ñ£^˦[ΦZѨ^Ò«eدcΩYÁWÈ¢]Ó­aÔ«aÒ¦]Ñ£]Ñ¥cרiÙ±hܲfÚ®jÙ®eÖ­`Ö«a׬\Ø°\Ù°fÖ®j×®cÖ®]Ö°^Ù±iÙ°iÖ­`ÓªcجeÛ¯eÙ¯hدhÕ¬c×­^ׯ\Ö±bØ´gÚ¶qÛ·vصrÖ±oÖ¯jÓªeË©gЪlÕ¬jѯiÖ®lØ°hÖ­eÖ­f׳iÙ±nدmÖ°kÖ®lÖ­nÓ±lÖ³pÙ¯tׯpÙ²fÛ°mÙ°rرhÚ²pݳvÙ³qضn׳oÓ¯nÕ±oÙ²nׯhÍ­cͬjÓ¯nÒ«aÒ°f׳rÑ£`ÔªeÛ±lÖ«bѨfÓ°kÚ¶lÕªgΤdͧgÒ¦bÔ©]Ï«aÑ­j×­hѦ]È¢`˦eΦd΢_ͦVÊ¡SÉŸTΣMÒ¤PЦYÒ©`Ò¬hÑ«iÔ¨bÓ§_Í¥YÍžVÌ\ÊœWÌŸRË£XÈ¢[Ц\Õ­gÔ²pÕ­jÕ¬kЬoÒ©hÓ¬cѯdШ`Õ¨^Ù¯dÖ²gÓ®eШgѪiÑ«gЩeÖ«eÕªhÔ¨eÓ¨_ѪbÓ±kѱhЬ`ÓªdÓ¨bЫcѬfÕ®jÓ­mЯkÔ®kزnÔ±mÓ­kÓ¬jÒ©dÑ©^ЮbÑ­jÒ©fÏ¥_ϨhÒ¬pÑ­rѱvÙ¹{à„ݿ‚Ö¸׺~Ö¶zÓ¯tÕ¯jÖ²nÓ¶sÔ²n×°jÖ°hÖ°i׳lÖ³m׶iÖ¹jضkÖ±hÒ®iбiˬeȧdΩgÔ©fÓ¨iÓ«oÖ«lÕ¦hÒ§gÒ¨eÓ¨eÖ¬fØ°jرgÖ±lÕ¯oÏ«kÒªf×±mÔµpÓ´iÏ°aͧ_Ñ©dÓ®iЬdЪZÓª_Ѫ`ϬbÕ¯kܳoÞ¶oÕ®iЫdÓ­cÏ¥VÊšKÌ›YÔ£cÕ§]Ч^Ω`Ф^ÍWÉžVÎ¥XФYÌŸYËžWͤWÒ¨^Õ¨a×±dÓ²bÓ°fÙ²j×°mÓ®mÕ­eÒ©aɧ[È¢UÏ ZÑ¥ZϦZÓ©gرhÕ³jЬ\Í¢TÎ¥`Ï«`Ö­cÛ²i×µjÕ°gØ­`ШZŤUÊ©^ΫeÊ¥ZʦV³™Zà´oݲvÞ¹sà´rá±ràµsáµzãµyãµtã¶rá¹oÞ´kà±pâ¸qä»nã¸mâ³pã¹vãºvâµqÜ·qÚ¹u߶yáµtã¶vã¸vâ·vã²tä¶vä¾|â»qݱhÒªdÔ¯hå»rç¼zä¹|å»}æ¹xãµqß´nÛ±iÔªdÒ°gÛºià¼qá½væ¿wéÁ{ç¿}à¶yÕ®eÖ³já¶sÞ´pÚ±màµoä¿tߺqܲkã¶màµkß¹jä¸nâ²kß±qÝ°qܲjݱjÓ¦_È¡ZË¢aʦaÌ¥]ТaÔ§eà±oâ·tÞµpà´oâ¹tàµpݲjá¹iäºfâ´oá¶tß´mã³qå¸tä¸mß°fÒ£_ͤbÙ²ißµlà°lÞªlÝ­nݯgÙ­eÙ¨bÜ¥aÙ«eשgÛ­dÞ±hÝ´pݳgÙ§bÚ¥\ܬ[Ú¯eÝ´hÞ´jÛ³hÝ´aá²bÞ®bש]Ù§aÛ«gÞ°kÞ°iÛ­aÝ«`Û¦`Ù¨[Û¯cÛ¯jÛ°hݱh߯jß±jÚ°fÛ®eß±fݱhݵrÞ»|Ý·vׯmÔ¯jÚ³lܳtÚ²qرjݯhÞ´gÛ·hÛ®gݱjÞµpàµn߶k߸páºqã¹qá´wݵwÚ·nÛµmÞ´oà³mà´jß³fܳbÛ±jܱmÞ³gÙ³fÛ¯hÞ­bÚ«bÔ¤cÍ¢bÇ£VÇ¡UÈžWÅŸQÍ¥YØ­hݳkÙ¯hÛ«nÙ°rØ°rØ®pÙ«hÕªfÖ¬hÕ«hήgÕ²hÛ³dÙ´kÙ«iÕ¢YÍ¡YÑ¥^Ò¨_Í¢XÏŸWѤaÓ«aׯbÙªfجl׬jÖ£bÒ¤bЦ`Ô§]Ч`Ï©fÕ«bØ«dÑ¥cÆ™YÅ™VϤYØ©[Ó§^Í£\΢_Ó¬dÙ´kÞ²h׫^Ôª^Ö¨`Ó£[ЦZÒ«W×°^ܵlÙ²eÔ¬`Ö©^צ^Õ¦cÑ¥_Ì¥T̪bÑ­eÙ°aÙ°jÒ«dÖ¬bØ°i×®fÖ¬`Ô¯bÔ¯gÕ«hØ­hÙ«hשgܬmÞµqÙ´jÕ«fÕ­i×´lݶrÚ¶hÙ³bݲiÝ´iÙ´fÕ­dÕ­fÕ²gصeÙ±hײmÖ±nÚ°mÕµpÕ´oضpعpܸoܲtÙ²qÙ³pÚµu×µoÖ¹i×¹nÙ¶sײnÖ®jÖ®l×´rÖ²pÙ±iݶmܶuÙ²nÒ®jÔ°lÚ¶nÙ´iÚ²kÙ²iÕ°jÙ²rÛ²tׯoÔ®kÔ«jÒªjѪeÕ«cÕ¨fѤ`Ï¡XÒ¥\Ò¨dÔ¨cÖªeÒ§gÔ¦dÖªfÑ©fÏ¥]СXÎVË™SÅšXÇ£`Ë¢^ͤ^Ô©bÕ©fÒ¨hÓ¬nÕªjÏ¥bÏ¥^Ѥ`Ì¡bÇ¢[ΦZÓª_Ð¥`Ë\Í¡XϦ]Ò¦`Ò¤b΢eΤZÌ¢WÍ¢`ѦdШeͤc̦hÑ«mÓ«kÔ­jׯoØ°vÖ´rÕ²mÕ°r×´kØ®cÔ¨bѤ`Ц`Ш`Ò¦\Ф^Ï jÓ¦oÕ­jÕ°pÔ¬mÕ«hײr×±vÖ®wÖ·xÓ³jÎ¥eФhѨiÔ©gÔ¥fѦfÔ«aÖ«eÖ¯kÕ°pײrÛ±jײlصs×°kÓ®iÒ®jЦhÒ¦hÒ«gÔ­h×°nÖ²oÔªkÒ£dΣcÎ¥fÒ¨gÕ­kÕ±rÔ¯mÕ«cϦfΨgÖ¯hÔªdÓ§_Ó¦\ΠUÐ¥\Ù®dЦ]Ê›[Ï a΢VË VΤZÔ¦`بdÓ¥^Í¡XÒ¦XÑ¡RÌžQϧ]Ó­iÕ¨cÑ£^ͦ_Í¥^Ëž[ËŸ\Ï¥XϧXÍ¥^Ê¢[ΦVÓ«^ײnÚ²nÕ­hÓ®jÖ«fÖ®jÙ·l×´mΩeÊ¢YÉžWÍ£[Ò«`Ò¬dÔ®hÚ·kݶsÕ¬nÌ¢]ΤYÒ©\Ô­cصfدdÚ«gÛµhÚ¸iÖ­mÙ²oݵkÙ¯eÓª[µ“WÚ°jÝ´là»jâºjá³oß±kà´já¶mßµkà³pß°oÞ¯hܬjß³iÞ·fܱdÞ²aàµgâµná·làºkâ±pã²máµmã¸rå¼vé·uã²nàµnã¸uá´sܱgÔ­dÕ®jâ¹vå¼vã»tâ¿râ½oà·o߶qá¸qݶpÕ³nÛ²sßµvÞºoä¼sçÀ†åÄ„ã½sÛ²kÙ±pÞ·vÞ·qÞ¶nã¼zç¾yãºpã»xå¿}ß»nà¼sèÅ€åÂzß¹vÞºpÚ³jÚ­lÛ®fÓ¥_Ì£^È£`ÆœbÉ `Ыdݸrä¾|ä½zá½vãºtå¶qâºoå»qå¼vâ»uä¹vãºtã¸qå¹táºuÞµoÚ¯gÒ¨dÙ¯kà¸qá·lâ·rå¹vã´qà±uÙ®pÓ­gزqÛ´pÛ²jÝ´lã¹pâºjà¶fÞ±bÙ²eÙ³oß³uà´vÛ³iÜ°eá®jÝ­gÚ¬aÚ«bÙ¯gÞ²kÚ®fÙ­dÝ­dÜ«[Û¨aܨmÛ¯lݱbݯbݯfß®bÚª[Ú¬_ܯeÛ°bÝ°gà³nÞ³oÛ²nÞµkݶhزiÚ´gرdØ«bÙ¯fÙ¯hÛ¬cÚ°fÚ±kÙ­fÙ±hÚ¶bÛ±]Û°iݲkßµpÝ´sÙ¯lÙ³fÛ³dÛ¯gÝ®fÞµkÛ¶r×±iÚ³dÜ´jܱkß³hß°gÕ©aÏ©aÓ¬jÖ­kѨ]ͧ[Ö¯jݶsÝ´jÛ®bÛ±kÞµuá¶sÝ´rÚ´tݶpÛ¶oسhÚ°eݳmݵnܲjجgÒ¥`Î¥[Щ_Õ¨fΠaÌ¢\ШfÒ«j×­dܯgܱoØ­gÔ«cÓ®kÕ­jשdÖ©eÔ§b×£_שeØ®hÌ¡aÅ—RУUרbѧaͤVÑ¥]ÓªcØ°cÚ²pÔ¨kÒ§`Ó¨cЦZϦUÑ£YÕª\Ù±dÙ¯gÙ­`Õ¦^ÏŸUËŸNÇ›QƘKÈžRÊ¡\Í¥ZѦ]У`Õ©^Õ­dÔ«fÓ©bѤ\Õ¥`تeÔ«aÕ¬eÖ¬iÖ«dÙ®iرmÔ±eÒ«aØ«hÛ¯pرjÙ±lײl׳eØ´eÖ±bÒ¨bÔ©dׯaׯcÖ°jÙ²fÛ²dØ­iÕ°l׳hØ®h×°mØ°kجg×±g׳nÖ²iײj×´oײpÕ²mѬoÔ«rÚ³sÙµrÕ±r×±pÛ´rÛµt׸nÕ³pÙµsÚ·s×µo×µkØ´oÙ³rÛ³m×®i×±lÚ³pØ®nدiرgÖ°fÕ®gÕ®dׯj×­jØ­gÚ®jÔ©fѨbÒ¬hÑ°gÓ¬dÒªdÑ«`ϤZÌžZÎ¥aΤZ΢XѦaÓ¦aѦcÒ«kÓ¨cСYСXΟWÈœ[Æž]Æ TÌ¡VÒ£^ËžXÉŸSÑ£]Ó¤`ϧ_Ц_ͦ]Í¥]Π^΢bÍ£gÌ¡`Î¥\ÓªfÓ¬gÒ«hÓªlÖ¯rׯoЩhÏ©bÓ§`Ó¤aÒ§eÔ¦eÕ£]Í¥[Ë¡]ÏŸXΣWС_Ï£eЫhÍ£aÇ™ZË¢^Ï«nÑ°uÕ±oΧfÉ _Ë ]Í¡^ϦaÏ£[ͦ`Ò®eÖ«aÒ¦_Ϧ`Õ¨aÓ§aΨ_Ó©bÕ§gѪgÔ©dÒ¦cÑ©g׫gÔ¬gÖ°jÛ®qÓªgЭgЪgΤaÓ¦fÕ¨b̧]Í¢ZП]ËŸ\ÈXÉžTÉQÍŸYÑ¥YÌ¡PПZÕ¦aÎ¥]ÊYÍ ZÊ¢VǘKÈ”MÆšTÇ›MɘMĘKÈMТQÒ¦XТZÑ¥_Ô¯cΫ`ʤcΤaÊ¢WÇ WË£[Ï©_Ô§dѦ^ϧZÖ¬kÙµr׳oѪeͬaÓ±g×®fײhÙ¶lÕ¯cÒ¨]Ò§^Ô¯h×±gÕ­dØ°jÛ´pÚ°nÖ¬fѦYУWÓ§cÔ¬fÕ¬eÔªiÒªeÖ­iÙ¯lÚ®oÛ±rÞ¶tßµqÞ¯f¼˜[á¶rá¹yâ½{ä¹zâ¹uâ»màµoá·säºpà´kÛ±lÚ²nÚ¯kß·râ¸pà°dá®dâ³hà³há°já³kà¶nà²nݱqá¼téÀvè¼uä²qÝ­pÜ´oâ¸sá²rܨcÚ«cã¸oåºrå¼ræºuãµqáµpã·uâ¹tã·vã´xÞ´oß²oâ³qã·pæ½{ê¾{æ¹xà³tßµjá¶nà·tâ·sæºtè»qä·qä»{ç»~â·yß½}äÀãºyâ»tâ·pÚ¬jØ­j߸rܶpرlܲnØ°gÖ±kÚµtß½åÄ„èÄ‚æ¼~áµyÞ¶uã¹vä¾~ã¾{â½vä½vçÀxè¿yä¼{æºyç¹tá¹tÞ·ná¹là¸rà¸yä»xä½uæ½vä½uá¹lݶmÞ¼râÀwá»wâ¹tã»vã¼}å¼yã¸oßµrÞ¸vß»uÞ¶vÜ·r߸lá·oà·nà·hà·kâ·tá³uà­mÞ­mܲsß±tß®lÞ³kݸpàµnã±hà³kÛ³eÝ«_Þ­cß³iܲfÞ­aß°hß³màµoá¶rß²gÚ³fÚ¶kÛ¯kÖ©hÙªcܪcÛ­hÜ°eÙ­cתaØ­bܯeÜ­`د_Ú¯fݲrÛ­jÕ«aÙ«cÛªaÚ°fÛ³jÞ°jÞ­g׫\Ù±cà¶lÞ¯_Ü­bÞ²i×°e×°hܲl×®gÓ«fÔ­_Ö¯_Ù²nÚ²mÔªdׯgݺná¹sÞ·uÞ¸pÞ¹nÛ¶hØ®f׬hÙ°jÙ°jزhØ·f×·hׯjÚ±kÛµkÚ¯iØ°fÙ®eÖ«dدfܵrÞ¶uß´oß´tÛ²mØ«dجkÖ¬fÖ«YÕ«^Ö°iݵjÒ§bÅž[ϧYÙ­`Ö®bÒª\Ô¦_تiدlÚ±hØ­dÕªhÕ¬iÖ¨eÓ¢[ΤTÓ§ZÖ®`Ö°eÙ®eÖ«YѨXÍ¡YÆ™QÄ™PÈžZÈŸ^Ë¢\̦`˨eÑ­cÖ­dÕ¬dÓ­^ЩYÓ¨Xت^Ù­dÖ±aÔ«^Ô«]Õ¯eÖ®fÖ­dÓ§^Óª_Õ¬eÖ­fÙ³cÖ²fÔ©fÖ¬c×°aÓ¨bЦbÑ©hÕªdÔ©]Õ©cت`Õ­`ÒªdÕ¨eÔ©cÓ«dÓ«aѨbÕ¨j׫hÖ¯hÓ«jÓ­gÚ²lׯkÖ­eÕ®hÖ«eÚ²jÔ°oѯlÙ¸tÜ´uÙ²vÛ·{ܸwÚ´pÙ´tÚ³tÛ±qÛ±xÙ±y×´m׳mرvÚ°sÛ²gÖ±fÓ±hزpÖ²mÖ±hÕ­kÔ«gÒ«eÒ¬kϬjÍ©cÓ¬fÕ°jÙ²fÛ°hÖ«eѨaЫeÓ¬eÔ©bÖ¬fÖ®gÓ°fÔ°jÔªfѨbΦ^Ì¥]Ì£`ͦdÍ¥g̤_Ψ[Î¥ZΦ\Ò­dÔªcÒ«bÓ­eÔªeÓ¬cÔ¨dѤhѧfÑ«aΫbÓ©eѨbΦbÒ¬kÕµoÓ¯hÐ¥bÍ¡bÍœ[Ò£\Χaͦ^Ъ^Ò«aШ_Î¥[Ñ¥cÓ§gϨgÑ­pÒ­iͨ_˧hЯmЯfÑ©hÍ£^Ì¡X΢aͤ^Ч]Ï£`Ï£\Ô«dÓ©cÎ¥[Ï£aÍ aÍ¢PÍ¡KË›TÏŸZУZФWÐ¥TϦ\ͤ_ÊŸRÑ¢\Õ¦cÓ¥bÕ¨dÔ«bÒª`Ô§cΤ_ÅUÊœRΣTË¥^Ë`Ì›XÌWÌ¡XѦYУSÌ¢UШ]Ч[ϧaÕ­jÙ­fתbÕ¨`ͦYÉ¢UÇžOÅžMÈ¡S̤UÓ§ZÔ§]ЭZÒ±aÒ¤cΣ`Ñ«aϤcËž^ÊŸ[Ѥ`Ú­c׫bÔ§bÖ¯jܺiصe̤^ШaØ°eÖ¯aÔ¯cÖ³jسeܱjÜ·kÛ¶fÚ³dÔ«aÒ§_ЩbЧ`ФZФ^Ñ£^Ѧ^Ó¨cТ]ͤXѧ^Ó¦dÑ£cÒ£bÕ¬fضmÝ´oÞ­j»™dá¼tߺtß·vá¸uá»xÞ½yÚµrÛ±o߶nß²mÚ­mÚ°pÛ´r߸nã»rãºvá´pá²lã³oàµsá·nã¹lâµrÞ´oá»væÀ|å¸oå³oÞ±h׬bÛ­eÝ®_Ó¤SÓ¨[à¹iã¶mä³tã³tß±pÞ¶nã¹oæ»uç¼xæ¹qã³iß³fݳeÛ²oâ¸uè¿zåºxâ¶qâµjà³hÚ±mسkߺnãºtßµmâ·iå¸là³iß¹pä½qä·râ·vá¸lÞ²jܲoä»sç¼sݵtâ¼uèÂyæ¾|ã»{äºrà¼sâ¾{ã¼y߶uÙ±sݺ{å¿~â·nà´kâ¼{ã½~ä¿|å¿{ä¹tä»rä¾vâ¾uß¼nß·hÞ¶nÞºzß»ráºjã»wã¿{ã¼så¿véÄ~æ½{ã»zå»yã¶qã·mâ¸làµoß·rß¹vá¹uâ·vâ»tã¾på½tà½rÞ»uáºvß»rà¹uâµt߶sá¸sܳsÛ¸yà¿}âºuß·mÞ·oàµoÞ²lß´lá¹iÞ³mÙ°mرjݶoá·qà¶pß³oܯl×°mÚµnÛ±hØ°dÛ±kÚ¯nݵná³nÛ¯fÚ°dÛ°lÙªiר^ÕªZØ«^Õ­`ÕªZÚ©\ܯbÞ°fÝ©^Û¬cÙ±hÒ©]Ö¨`Û´kÖ­bש]Ù¯`Ø«aÙ¬`ת^Ï ]Í XÑ«WÕ«a׫bÖªY΢UϦWÖ¬bÖ­gׯbÞ²fݬhÖ©dÖ¦aÖ¨e×°fÛ²dÛ´iÚ´sݵuß·q߶tß³rÛ¹qÙºqÙ´fÕ­dЫhÕ³mÝ»uߺxà¹wÛµpÖ®hÕ®hÓ¬aÑ©`Ó¨bÖ«eÙ­jÓ¦eÅZΤ\ܵmà¸wÛ²kÛ²oÚ·uÙ´iÛ³g×°gÖ®jدjØ­jÕ«jÒ©^Ö¦[Û¥`Ú­cÙ²kÙ¯mÚ¯oÓ­cʦXȦaÊ«mʪhЪaÒ¯jÏ­jÑ«bÔ¯gÔ²kÕ°cÖ«aÖ¬^Ù°eÛ´rÖ³oЭeÒ­bÔ®aÓ­eÕ©bÒ¤\Ц`Ѩ]Ô¨ZØ­cÕ©^Ñ£XÓ£WÒ¢WÔ¡[Ô¤\Φ[Ï¢\ÐYÎ[Ï¢[Ñ UТ[Ф^РTÒ¢QФUÊTÍŸRУVÑVÐœTÓ¤^׬iÖ±hÓ«bÕ¨bÕªb×­`Ö¬eÒ¯mÓµoÖ²mÚ³lØ´lÕ¯gصkÙ·n׳lÛµrÚ´qÕ²kÕ²iÖ®nÕ®pسq×­oÒ­hÕ®fÖ°lÕ°nÔ­jÓ«kÓ­rÒ¬sÓ®rÒ°nÓ«lÏ©aЫgÖ±oÖ¯dÕ®bѱgÔ³m×°gÔ®aÒ­hÓ¯jÔ¶jÕ¶nÑ°lЫhЬdײjÙ»u×»rÙ¶nÖ°lЬgÏ®bÒ«d׫kÕ­hѨfѨkÒ±kÔ²kÕ°gÕ­g׬kÕ«hÓªjÕ«gÒ¨bÒ¬hÙ±qÙ·tØ·lÔ«fÍ¥bÇ£eɦhʤ_ÇŸ_ΨcرjÖ°mÕ­kØ­lÓªjÕ¬iرnÚ´oÚ¶lÖ®lϬmʦhΦhË¥eË `ШZϪV̦Z˧Zͧ^Ò©bÑ«bϪeѨ`ѦZÍ¢]Ï¡XΧZΨ_Ф^Ó©\Ö«`Ù°hÒ¬eÄœ`Å `ɦ]ËWÊ›XÉ¢XЧ_Ô¯`ϪZË£]Τ`Ω_ΫdÒªhÕªaÓ°aÓ±fÕ°bÒ­^Í¥ZÆVÇ¢aÏ©hÕ¬mسsܶpضoÔ³kÓ­fΩb̤aË¡a̦]Э_Ö¯b×°aÑ­cѬdÔ­eÖ³nصmÔ°cϨ]Ш]Ø®eÞ±fÚ³dÚ¶hÚ¹mصhÑ©]Ó¨_Ö°dÒªcЦbÕ°cسd×®bØ®aׯfÓ¬cÑ©\Ï¥ZΡUÏ¢PϧYѧ]Ô¦[Ó§\Ô§bΦaÈ¢Z̤^ΨaϦ\Т]Τ`ÓªeÔ¯iسe¹Ÿ]à¸s߶qà¹p߶xÞ³xã¶uá³rتkتhà³jà³ißµjà·oÞ²oàµqå¹rá²qß±ká·mâ·sã¹vä¿và¸tÝ´vã¼tã»xà´pá³lá¯pÙ¨hÕªaÓªbÍŸ]Ò¥bÞ·qâµpãµqâºsá¶oâ´mâ¹ræ½uéÂvæÁpæ¹má³qÛ«i׫fݵqæ»wåºv߶tݱlß²kÛ²eÕ®jÙ°oß»oß¾oàºkã»jß³cÞ³hâ¸sä»xçºtå·sæ¸væ¹uç¹yç¹yÛ°lÞµméÂyçÃvåÂxå»sÞ²ká¸tã»sàµlܲnß¹tä¼vÛ¯nÕ«jÚ²oß²uß²lâ¸hâ¶rà³qã»oã¹rá²sß±rà¶uâ¸}á¹xà·mà²lá¸pãºqç¹væºuå¾xèÀ{ã¼sÞ¶p߶m߸jܶkÝ·uá¸qã¹oâºpáºoà¼uà¼sà·rßµyà¶yã¸wãºuã¼qã¼pá»vÜ·vÞº}ã¿…ß»yÛ¶vÚ¶yÛ´rܳmá·nâ·oÛ³tÛ´vÞ·pß»qÞ»xà¹sã¼ná½qÛ¶rÛ²tà²sÞ³nßµlá¸lâ¹uä´qàµkàºpá¸pÞ²rÙªmÖ¬eÚ³fÚ­aÛ«eܱh׫`Ø©^Û­\Û¬aÛ°dرeÙ°hÞ´kÛ­mÙ«eÚ®bÜ®dÜ­_Ó¤[ÊœNÍ¢RÔ«`Ö©`Û§_Ø©^Ë¡VÌ Zѧ]Ì£ZÏ¥[Ô¨]Ö¦^Úª`Õ¥XÒ¥]Ø°hܲkÛ±nØ®fÖ¬dׯbØ°gÙ­iÙ¯hÙ°hجbÑ©`ʤaÍ¢bÙªhÞ³fÛ²eØ­jÔ¬hÓ«iѨhЩiÓ¯kÒ­dÓª^Ѥ^ÅœSË£YسeÛ¶gØ°gÙ³iÜ·hÝ´cÛ°eÛ­eÖ­b×±dÚ°jÜ°nÕ«jÒ«iß±oà¶kÜ´fÛ±iݲgÛ­cÕªjЫqΪh˧[Ê£YΤaÏ©bЬeÓ¯pÕ°gÖ­`Ö¯bر`Ý°dݸrܹxÙ¯nÖ±dرfשa׬ZÕ¨\Ó¢XÓ£NÒ¥VÓ¦]Ó¥VѤ[Т^Ï¡]ѧcÓ«\Ѧ[Ñ¢`Ï¢[ÌœSËœNÍ¡QРQРQÏ¡OΞJÏRÊœTÍQРTÌœJÌ—JÔŸVاdÖ¦cÑ£]Ѧ`Ò¨bÒ¨aÒ«`Ò­eÚ³mÖ´jÕ­gÖ§bÑ¥`ѪcØ­eÙ­dÙ±gØ®jÖ«eÔ°dÕ°fÔ©dÔ«eÕ­jÔ¬gÔ¬aÓªgÓ­gÓ²kÒ°lدjÛ±mÙ±mÕ°kÔ®mЩjШjÒ¬pÕ±sÕ±qÖ²n×·pصnÖ±pÓ±lÔ¯g׳oÙ¹pÖµmײkØ´oÚ¸yÞ½tܽrÚ¹{Ø»vÔµoÒ®pÒ­h×°iÕ°nϤgÕ­k×´qØ°nÙ´lÓ¯kÓ­hÖ±mÖ°m×°gÕ®hÕ­kÖ²lÖµzߺ}Û´rÏ«hÊ«iÍ°qΫfÉYÇž]Ò­dÙ¯dÔªeÕ­fÕ­eÕ¬k×®k×±kÛµoÙ²qϬo̧eЬhЬiШcÑ®hÑ®fÖ¯cÕ³dΰhЬbÕ±eÖ°hÔ¨hÓ©hÕ­e×­cÙ±jسiÓ«`Õ­kÚ³qܵlÛ¹pЬkË¥`Χ`È]˜UÀžVÆ¡`ЦgЬhϬhÒ¯fÒ¬hÕ¬pزsײnÛµpߺtÛ³lѨcÌ£`ɤ_ʤ`ˤ`Ì¥`Ñ©kÖ²qÔ³iÕ®hÖ¯gÔ±hѪcШ`Ô¬aÔ©`×­hÛ³pײnÕ²j׳kÙ²pÝ´rرmÒ­cÕ°eܳnß´nܲgÛ´cÛµhØ°gϨeΤhѤaÏSÆ—LÇœLÍOÍŸPÍ QС\Ò£]ϤUÒ¦XÒª^Ϫ\ЦaÖ«d׫bÓ¨]Ô­fÖ«jÒ§_Ϩ`Ó§aÒ¦[ͧVͦZΦdÍ©dÕ°fÀ kÚ®kÛ³kß²pÞ±tÜ°nݱpܲoתcÖ¦bÖ«dÛ³kÞ¸mßµgܯnÛ³oá²kÞ«rÜ®q߶mà¸là¹qá»tà¸rÞ´nÙ´ná´râ³r߶qÞµqÖ¯lÓ«oÓ¦fÓ¡[Ö¨hàµvá´xàµvãºyã¶và¯oÚ°mß·ræ½|é¾~é¿xå¼oá±fØ«eÕ­dà´häµkß±rÞ°uà³pß³rÙ²kÑ«`Ù°nçÂçÁ~ç»tݳjØ°m߸tâ¿sä½tå½wç¾vé¾rç¼râ·pÞ³hÛ°há´qæºuä¼rá¸mß´gá¶iàµmà²kÝ°kà¹lã¸oÜ°lѦeÒ¦gÒªgÕªeØ«hÙ«bÚ«bà¶jå¼pâ¸sÞ·máµdã±má±vÜ°gج_Û±já´tä´oã¸jæ·nå¹uß·nܳjݵqß³pà¯mß´jݳjÞ´oàºtâ»qÞ¹pݱqÞ´oܸlÛ´kß´sà´uà¸tà¹rݵoÛµmÛ¸rÛ¸nÙ¯hÛ°nݶoÜ°jÜ«iÙ³mÙ°fÔ¯f×¹pÙµp×®oÙ°qݶrÞ·pàºsݶtÙ±kÛ¶mÞ·rà³kß·oÞ·qÚ³nزqÞ¶pã¸pÞ¶tÛ²pÙ°mÙ³q߶mÞ³jÞ±jÞ±fܱeرjÙ°lݵmݺlÞ¹nàºrÞµrÜ´jÙ³kÚ´xÛµoÓ­`Ò¬bÕ±dÕ°eدnݱpݵlÖ±kЪgϦ`É¥`ŤaÍ£_Ó«^ׯ]Ö®cÖ®fÚ°kÛ¯h×®fÙ¬lÝ­f×­\Õª\שeÙ©fتaÙ©\Ù¨`Ó¡\ÍŸWÑ¥]Ò§^Öªdد`Öª]קbЫbΰaÒ®_Ó¬aÔ­eѪbÄ XÄUÍ¢[˦Z˦XÒ«iزoÙ®e׫eØ«dÙ©bÚªf׬fÙ°jرiѳiܼsâ¿xÞ·sܱiÙ¯`×°`Ö«fÍ£^ÄœVÚQÄ›SÊ¡[Ô¨cرf×´gÔ¬hÕ¬dÒ¬aÕ¬`د`׳fÛ¶lÛ´lÛ²kܵjÙ±dÛ¯cÚ³bÔ®\Ö«UÕ«UÖ©[Õ¨bЬ`ѬfÒ«hÒ«kÖ«oÙ²o׳mÖ­cÓ«ZÒ§YÕ¨dÖ«gÓªeÒ«`Ô­ZÓª[Ò¨`Ö¬eجfÓ¦bÓ©\Ô§^Õ©\ѧRÏ¡YÓ¨fЪaÑ£ZÖ£Vج^תnÖ¦kÕª^Ï¥XÉžVÈ SΣXѧ_Õ¥bÒ¦`ͧ^ѧaÒ¨aÏ¥YТ]ѦeÒ©aÔ§bÓ¨fÑ©cΪ`Ò«cØ«kرmÕ±hÔ­fÓ«fÒ«fÕ«oÖ«nÒ®oÕ±l×°lÕ±pÕ²oÕ³oЮhѪeÕ®fÖ¶o׶rدl׳qÙ¶wݲyÖ³uضrܶpײjÒ°nЮsÒ®sÓ²pÒ®kÖ­kײjÕ±nÖ¯jÓ¯hÒ®jÖ®pÛ²mÛ³i×®nÔ®lÒ¯iÓ²m×µv×´rÍ«iͪoÓ°tѱuÉ¥kÅ•VË\Ï«hÏ°eÓ¯jÒ«jÓªcÔªgѬoسt׳sÕ´qÕ³pÕ®lÖ°jÓ­hѯjѯnÓ®k×´gÔ°bÕ®fضjÔ²kÔ¬nÕ¬iÔ°hÕ±iصjÛ·jЫbЫaÖ°kÕ°mÙ¹rÖ·uÒ¯mÖ´pѯqÍ¥j˨eÈ£^Ê YË£bΤbЪ^ѯjÔ®lÖ±kÕ´kÕ³nزwÖ²qΨdΨiÏ®kÊ©cË£[ÈŸZÈ¥cÒ«iÖ°mرlØ®aÔ«`ѪdÔ­h×´pÓ«lÒ£bÖ«jÕ²tÔ±kÔ¯jÕ®hزjÙ´jׯgÖ°hܶhܳdÕ«cÒªdתmجjÐ¥VÍ YÊ¢\ÅKÄ“FÉ–K˘IÇ“FǘOÊ \Ê£\ÆžXÆ ]˧eÏ©bЦbÕ«hÙ±fÔ¯dÓ°iزjÓ°aÒ«b׫bÕ®`Ó­eЧeÑ¥`Ô«aسp¾ŸpÞ¬lß®gÚ°fܯiÜ®cÚ­dØ«gØ«eئeÔ¢dÒ¬bرeجkÛ¬jܳnÛ²oÞ®eß±`ß´hß³rÞ±oÝ°mݬhݦeÖ¦pÙ°uà²mà²mÙ¯jÑ«gÒ¬n׫hÕ§cÖ¬hÙ³jÚ±há·tå½tß·n׬lÕ«hÜ´pä»{ç¼{ç¿yæ¼zã¹xݺtÖ¬iѧgÙ´kݵiß³râ¸yã¼râºpÚ°qܲrç¿vè¾væ¼xã¶t߶qß¹vá¹|å»|â¼wá½wã¼ä»|è¹uäµrݲlÛ²mâµqæºtã¸vÞ³sݳrÞ´rß²sá°{ã¶zæ¹oâ´kÖ©dϤdͨk̦eΟcЦgÔ®gÙ­fܵká¼rá·q߶má¹rà²jÛ­bÙ«dØ­_Ú°`Þ¯eß±fãµiã´j߯jß°päµrà´oÜ´mß±nÚ«lØ°oÝ·sà»sà¸hܲeݶpá·lݲhÞ³vàµqà³cܲm׬i׫dײgÙ±dÞ­aß±hßµjà´lß­jجbÚ²dÚ±eÛ³pÚ®gØ«aØ­qÙ²tܹuá¸sâ³jܲfÙ°hÚ±hÚ¹hܸrݲqÝ°kÙ®jÛ±oܳoÙ¯hÙ°gدhׯlÛ·pÞ¶nݳpÚ±nÙ°n×´rÛ¶pÝ·rÞ¶vâ¹rå½rߺrÞ¶wà¸xÝ·uÛ³qÚ°kÖ°jÙ³ná¹uã»tâº{æ¼}à¸oÓ¬hÑ«jÓ¯jЩhÓ°lÙ³hܲhݸuݹtÞ´oÜ®nÚ²pܹuݵqÝ°iÙ¬g׫jزmÛ²gÙ®dׯhÖ«cÒ£ZР^Ò¥eÖ°iÙ²jÙ­fÙ°gÓ¥b΢_Í«_Í©]ϤbÎ¥bÇ¡[ÁžYŤWÊ£TÉ WÎ¥_Ó©bÒ¦_Ò©gسjÚ¶cÙ¯e×­b×°eجiÖ­eܸpß·vÚ¬fÔ«]Ö«ZÖª]Ò©[Í£MÉŸLΤYШdÒ¦dÖ¦]Ù°cزhÔ¨fÓ¨eÔ©bÖªa׫\×­^Ù®fÜ®jÞ´fá¶há´oà´nܵkرcÙ³bÛ´cÜ´kØ´kÕ¯gÚ±iײgÔ¬hÙ¯mØ´nزrÞ³nÜ°gØ­hÖ´jÖ·hÛ³jرfÔ±bÙµjÚ³iܲnܵoÙ³gÖ¯iׯj×°dÓ§ZÏ©\رg×®iϦ`Ò¤XÔ§^ѨeÓ¨]Ò¦Wͦ^È£[ÈžVÊXË¢]ѦaÒ¦dË¡XÍ£PΣQÈ™QÉšPÌRÈœTÈžWÏ `Ó cСZТ[С_Ϧ^ШbÑ£cÏ¡bЧeÔ®gÒ®^Óª`Ò«gÒ¨eÓ¨fÖ©gÓªiϯlÑ®eÓ±hÒ³qدsÙ¬iÕ¬bرiØ·lаgÑ®i׳mÖ°jÕ©gÔ¨eÕ©jÔ¬jÓ¯kÔ¬lÕ¨gÖªbÕ­dÕ«i׬oرkÙ´j×´mÖ±hÖ­gÖ«gÔ¬gÓ¯jЮoʧjȤi̧hέkË©lÅ£cÇ¡[ͧ^Ϋc×­nÛ²qÖ²lÖµpعvÚµvÚ¯uÕ´rѱhÒ«fÕ­jÖ¬kÓ¬jÔ¯lÒ­hÕªgدhØ°k×´qÕ°jѧgϧiÔ©gÓ«eÓ±dØ°eÐ¥bϨaÕ¯gÕ¬lÙ¯o׳pÓ®pÖ±mÕ´pÔ²tÕ²pЭhɦ`Ç£ZΣ]Ò¤aÏ¢eѦhÒ­jЭlÓ­iÖ±gÕ°iѪgÓ¬jÓ±mÒ«iÒ©dÍ©]ΦdÒªjÓ®j׬kÔ¬gÒ¬gÔ§f׬k×°mϤcΠaÒ¨fÑ­hÓ°pÕ°kÓªfЪkÓ¯jͧ^ÊœVΟWÊOË™QΟYÍ¢XÑ£[Ì¡ZЦ^د`Õ«VÏ£QТ[Ò¡YÌžTϤ\ÓªeЪcÈ£ZÙ[ÅœYʦXЬbÙ²nܵpÖ¯gÕ­eÖ²lÖ±nÕ¯oÕ®lÖ²hׯjÖ­gÕ±_Õ¯bÚ²f¼¡cá¶páµlâ³jÞ¯f×­gجiݪdݬfÜ­fѤ_Ë [Í£_Ï£bÕ©bجf׫eÛ¬bÞ¬hÞ°nÞ²kß®eÛ¦cצhܬfÕªbÓ¨eݪi߬lÚ«dÓ§aÖ­eÜ«cÕ¡^Ó¤]Û¬eݬfà¯iàµnݳnÛ®eÕ©dÖ¬jß·ná¹uݵyÝ·u߶qݱpЧbÇ [ШhÕ±nÔ²jݳoà»vâ¼zâ¶xà»vå¿yæ¹wáµuÚ³mÙ±kÚ¯lÚ®cܲgÞ³já´ká·oäºqä¸pÝ´kÙ°lÛ²q߶vâ¶wâ¶rà¶qܲtܱpݳpݲmà°ná·s߶mÞ¯mرrШgʤZȤYÊ¥eÌ«kЩaÔ©b×°oݳqá¶pàµlݲgà´lܱmÕ¬fÕ­dزká¶pã·nÞ±bÛ­eÛ­pÛ²mÞ´dܳgÙ³jׯfÓ©iÖ¯nݲhÛ®hܳjÜ·hÛ²kØ°lÙ´nÛ´kÚ°dÛ­cÙ¬jÙ¬gÛ¯dÞ¯mÞ¯hÚ±bÝ°iÝ­jتd׫`Ù­cß´gáµfܪdÖªhÚ°hܳiÛ¸mÛ³jÜ®iÚ®fש]Ö¤_׫_ÛµnÞµvÛ°kÛ¯iÙ¬kÙªd×­c×°hÛ­dÙ«bÖ­iÞ²pßµpݶoß·lÞ¸kܱjß´j߸m߶qâ¸và½và¿zäºu߸jÙµeÖ±kدmÜ´pÞºnÞ·mà¹uâ¸xÞ²vØ®l׳oÜ·wÛ´sÜ´pÛµoÛ¶pݵqÞ¶pݺtضrÙ¶qܸvÝ»|ÚºvÖ²mسmÚºmÙ¶oÛ°rÚ²kײkÔ­iÑ©jÖ®oÚµtÝ·wÛ·rײnÔªbШ^˨cË£]ÉŸWÆšV¿˜U¼šXÄZÄœVÄŸY̦`ͧ_˦bÌ¥fÓ¬eܵhÛµiدeÙ¨cÙªaÕ¬^×­dÜ®bת[Õ¦WÔ¨WѪbѦeͦ\Ȧ\Ë¥`Ó¨^Ô¦`Ρ_ΨdÖ¬cѦYÍ¢VÓ¨a׬gѦ]Ѧ\Ò­aÒ­\Ø­cÜ®hÜ®fÙ®eÛ¯eÕ«]Óª\Ø°cÚ´eÙµmÕ­jرlݳlש_Ó¬`Ö¯bÙ®gÚ²lزfÕ­fÒ®nײiÚ°eÙ¯d×´hײhׯdÙ¶mÙ´mÛ°jÛ²hÔ±eÒ¬bѨdШhÙ³rÙ´oÎ¥^У\Ô¬`ѨdÑ¥]Í¥SÊ¡Y̦`ɨYÆ¥ZÉ¢bÓªlÔ¬iˤ]Í¥ZÒ¤YΠXÌ¡SÇŸRÅœRÄ›SÈœVÏ¥aΣ\ËŸUÊ XË¡XÒ¦_Ô«^ϦZЦ]Ó¥^С[Ρ\Т`ѦiΩeÒ©dÕªkÓ©fÓ©gÒ©kЩnÒ¨gÕ¬aÒ¬eÒ«iÕ©gѧeѧeÖ«gÒªjϨdÓ¨dÖªiÓ®fÕ­dÙ­jÔ¨jΤcϨfÑ«pÓ¬hÖ¯hÖ°hÔ­eÔ­jÕ­hÒ¬iÒªlÕ­oÓ­kȦcÆžbÈžhË¥kϬlгnͬeÅ \ÇŸZЩ`Ô¯mÕ´pÛ¸pÙ¹wÙ·uܵmÖ±nÕªmÕ§kÓ­jÕ­gÕ¬fÔ±kÒ­kÒªlÕ­nÖ®rÕ²xÕ±rÔ«lÑ«kÒ¦dÐ¥fÓ¬l׫bТ]Ρ`Ò«aÒ¬bÓ©cÔ©bÓ¨dÑ«fÓ¯_Õ­\Ø®aÕ­aЩ^ͤbѨhÑ®jÊ cËœ^Ñ«bÑ«bÔ¥`Ö¨`Õ¬jÔ¬sÓ¬kÔ«lÓ¬jÒ¯fÏ®cέ]̨\ͦ^ЫcЩfΣ]ÊœTËXÍ¢XÇ–JÈ•QËœ\Èœ]Ë£aЬeÒ©cÓ¨bÓªeÍ£VÆ—KÄ—MƘKÉ™QÈXÇWÊ YΧ^Ö²kܲnÖ¯eÒ°bÙ°^Ú°^Ö°eØ´mÙ·lسjÖ¯hÎ¥`Ç›`Çž[Ò¬`Û¶qÙ´kÑ®jЫmÙ­mÛ²rرpÙ´sÛ·rÙ±oÙ¯jÙ±kÙªfÛ«f¹¡fãºsã¸tá·pÝ°nݲmß´oß´ná³gà²eØ«dѤZÓ¤\Ó¤aÓ¥aÓªbÕªgÛ¬cà±\à­dߪjß°lÛ¯mÙ«nÙ¬iÔªcЦ`Õ¤dÛ¦gÝ«bݯbݱeÛ®fÙ¦bÛ¤]ܬ]ß­dà«fÚªcÛ¬gݯlØ®lÕ¨jÛ¬fÞ®eÞ®nß°oÞ®eÛ¯gÕ§_ΠZ̧aϧbÐ¥eÕ¬dß±ká°qÞ°là¯mÞ­nÙ¬gاdÑ^ÎZÔZÑžRϤWÖ¨bܨaÛ¦`Ù¨cÞ¬hÙ¨bØ©`Þ¬jà¬nݯjܯmÞ­mÜ«kÚ­kÙ²jدhÚ«eß±nß²kÞ­aרgΠbÍž_Ê fÈ¥cΩ^Ñ¥cÔ©hÙ¯kÚ¯nß³sß´q߯kà±nÞ²lÙ¯iÔ¬kÕ¬jݱoß²pÜ°lÞ²q߸nߺmà³oÝ®iݱhÞ°mÛ±mÛ±jÞ¯lßµkÛ²nÝ°uã·uáµnß·ná¹rݱrÛ±oÞ´pÞ²mÞ²qÞµjݳgÞ³mß³pÞ´mÝ°fÚ­fÝ°gÞ±gÞ²nݯnܱhÛ±eÞ°jßµqݳjÜ°`Û²_Þ²aÛ«eÛ«gÞ³nà¶lÞ±kܱqÝ´pܲiÚ¯eÞ³`Þ·fØ°nÕ¬hÙ°hÞ²gܳeÞµhÞ°fÜ­bÚ¯`ײlÚµuÞµpݵkÜ·vݸvÙ°fÖ­eÕ¯oÙ²oÞ³lÞ¶nÛ°hÙªcÞ­gß°jÙ²pݹwâ¼yá¼zß·rÚ²sܳqÞµmݶnݶiÛ²jÛ³nßµuߺyݸvÙ³qÖ±mÛ´qÙ·sÖ¶rÛ´vݲxزnØ´pܹsÞºpÞ¸uÜ·uÙ²jÙ¬kÖ­fϨZÏ£_Ì¥bÊ¢ZÇŸ\Æœ^ÉœXÆœUÄœ]Å ȩbͨdΧiЫlÖ°pÞ°gج_Ô«fدjÙ®aÙ«dÜ­nØ­`Õ«WجjÛ°nÒ®gÓ­gׯcÖ¯dØ«kÔ©cѧXЧYÕ«^Ô«aͦaЬjÖ¯jѤ]É¢SË£VÏ \̤[Ò©ZÖ¨\Ô©_جcÓ¡YÌSÒ¨`Ö«eѧbϤaÖ®bÙ±cУ^Ï¢_Ô§bÓ¦aÕ§`Õ©^Ò¨]ѦdЦ]Ò¦ZØ©dÚ±gصgÓ­cÓ©d×­gÚ±lÛ¶jÕ«fÑ¢eÐ¥bÎ¥cØ­eÝ°kÓ¦fΦ_ÓªjÓ®pѯlϦhÈŸ_È]ЦhÑ­l̨dѯjÙµoÒ¬hÓ«fÕ­cЩaÑ©hÓ­kÒ©eͧfͦeÐ¥bΪ^Ñ«_ÕªbÒ¦`Ò«cÕ­dÓ§aÑ¥_Ì£eÎ¥gТcΞaÏ¡`Ï¡YÍ¥_ΦcѦaÓ¨hÑ£fϤeϦjÑ¥eѦZÍ¥^Ð¥aÒ¥cͤ_ͧYЩaЧbÒ¥^ÓªeÓªhÓ§fÕ§eÕ¨hÓ¨nÕ°kÕ±kרfÕ©`ШbÒ©fÓ­iÓ©eÔªcÖ­mÕ¬lÕ¨fѨhÏ«hÒ¬eÕ­gШiÕ­nÒªlÅ]ĘTÊ\̤]ѪcׯoׯpÓ¯fѱmØ°sÙ«hЧa̤aÍ¢]Ð¥bÔ«gÓ©aУaÓ¨jÓªh×­iÙ²hÓ­eÓªdÓ§ZѨaÔ­kÖªbϦ\ͧ]Õ¨]Ö©`Õ¨cÓ¢WΠWϧ^Ф^Ρ^Ò§cÒ¢`Р[ͤ^Ò¨hÔ¨jΧ^ʦ[Ì¢]ÌžWÌUÌžWϨaÕ«eÒ¥ZÏ¢[Ì£^ΨbÓªdѦ_ÍŸYË ZˤaÏ¢^ÎœVÖTÆ™WΣWÉMÇ–PÌ™VÈTÈ£VѨdÓ«h×®fÕ¬hͧaÍ£^̤[ȤUϦ]Ó¨`ͧ\ʦ_Ϋf×´q×±lÔªfÕªdØ®dÛ°hÙ²jÕ´nܶpÞ¹nÞ·jدfѬaͦ]Ò§bÙ°mدnÖ©dÕ¨_׬jÙ¯lÕ®cÔ­nÙ²y×°n×®iÚ°mÔ«c×®`¿›eߺváºnâºjß¼rà»uá¹nã¸mç´nä¸mâ½kÞ¹jÞµkß´kß³mÞ³oÞ²oà±mã³iâ¶qã¶sã¸näºqâ³jÕ¨fÒ§_Ø©Zتb׫lÛ­mݯnÝ°iÙ°dÛ±hâ²dà°`Ü®bÙªbÒ£`קfß²iÛ­fÖ¥iÙ©lÜ®iÞ²fÞ¯hܯiÙ­mÕ¦hÓ¥dÕªcÔ©^Ô¦\Öª`Õ«gÕ§hÙ¦hÙ«aÖ¨^Ö£`Ù£bѤ]Π[ÑŸYТZÕ¨aÙ¬bÛª]Ö¦[Ô¢^Ö¥_ר^Ù¥aÚ­fÚ®bÙ¨bÚ©cÙ§bÞªfâ³kÚ°j׫gÙªiÛ¬mÚ¬jÛ©dÖ¤dÓ¤eÓ¤eÔ¦cϦcÓ¦fݬkܱnÚ®jÞ«cÞ¯cÚ³lܲqÞ²mß³là®gܬe×°iÕ´hÚ´pÞ´rݵjݲhܶpܶp×®iÕ­kÝ°nÞ¯oرrÚ³tܲnÞ²iß³fÞ³iÛ°nß²qà¸tÞ´nÜ®lÜ°pâ¸qâºpݵsܲmÝ´m߶rݳoÚ¬mØ°i×´lÙ¯pÞ²qâ¶tß²rß·mÞ¹rܵrܱhÙ¯aÛ±eÞµlܵpÛ´qÚ¸tÛ´mݱlÛ¶tܶmÞ´oß¹qÞ³fÝ®cܱeØ°eÚ°cÚ¯bÛ®eà±gݯfרa׫b×®bÚª]Ù¯eÖ²kܯfݯhÖ©fÒ¤_Ò©a×°eÛ´hÛ¶p×±dΧ`ЦdÛ¯gÛ²nݳpà¹pߺkß²qܯqÙ³i×­d׫hÙ®hÙ®d×®j×°qܳpÞ¶qÛ°kÙ­e×±r×°mÕ°dÖ²lÚ°oÚ°kزjܸoݵoÚ²oݶtÞ¹uß¹yÚµvÕ°m×°eÖ®`Ѫ_ί_ѬbÓ©hÓ¯bШZÐ¥ZЧdΨhÒ¬eÙ°oÛ±qܱkÚ±oÑ©jÔ«lØ°oѧeÓ¬mزnÕ­gØ®jܵoÙ´q×°qÚ³uÙ´vÔ°nÕ¯gتjÖ«cرeÔ²lÍ­hÕ«hÖ«nϧh̤bÆ ^áZÊŸ]ΤdÍ«dÑ«fÒªiÏ¡_ÌšWЩ]Õ­kÒ¤cТUÓ¥XרYÔª[Ï¥bΞ\РVΤSÏ¢QÒ¡UÒ WÌœVË›UÏ¥XÓ®b׬hÑ ZËWÍ£[Ѩ`Õ¨bÓ¥ZËŸXÊ¡[Ì¡ZÒ¤d×®gÒ­gË©e˪cѬiÕ®lÕ®hÎ¥bÉ¡dͬkÓ®jФdЪgÖ´mÕ±kÕ­nÖ­r×­mÙ°jÙ´o×µvسlÖ³jÔ«eѧbÒ­i×±kØ®dÔ°hÒ±kÕ¬hÒ©dÒ«aÖ­gÓ­hϨbÓ¦cÑ¡gÌ£_Ϩ_Ó©fÕ¬hÔ¨fÓ¦dÔ©dÒ§hÒ£aÏ£]Ì¥cФ_Ï RÌ¡UΤfѤ`Ò¢\Ò ^Ñ¡YÓ¦aÔªgÒ¨aÒ¦]Ô¨]Õ¨cÒ¦dÒ¦`Ρ\ÌŸ[ΧbШ\Ó¨XÓ«bѪbÒ¦dÕ¥l×­nÖ³nÕ¬fÏ¥ZЧaФ[ÊSÇšWÄ™U›XÍ¡VÓª]ѨbÍŸ\Ï `Ò¥bÑ¢bÍžaÊ¡YÌŸVËœUΡ[Π]Ë—ZË™WÍ¡[Í¥`ΦZΤ]ТYΠUÍ¢_ΦcϤVТUΣZÏ£YÓ¥^Ò£^Р[П[Ï ]Ó¢bÕ¥eÓ­hÖ¯mÔ¦jÌŸ^Í¢ZÑ¥]ΦcÉŸcÆ—VƘMÊœSÍ¡^Î¥fЩeѧbΟ^ÍŸUЧ[ÓªfÓ¥eÏ¢[Ë¢^Î¥bÒ¦dÌ¡aÅŸVÇ¡VÍ£]ͦ\Í¥WÑ¢ZЦ]Ϩ`ÔªgرnÖ¯lЫgȪ^ʪ^ЭgήeÌ©bÒ¯eÔµkʪfÍ©]Ø´fÓ±dΧfÒ¨bÓ¯eÔ®jÖ¯]Ò¬aÒ©fÕªbÓ©dÓ®fÙ³iÔ¬aÌ¥bÒªjÕ¬fѧbÒ§\Î¥^Ò©dÖ«bÓ¥dÕ©kØ°mÕ«gÖ¨bÓ¤]Ô¦Zº—aæÁæÀä€è¿~ç½}åÁ|éÀ|è¿yèÃvêÁyêÀxé¿xæºwæ»tè¸|ã·yá¹oæ¼uç¿uè½rç¾{èÀzæ¾sØ°eÕ¬`ã¶oà¶oÚ³n߶tÛ±kÝ°pã¸tè½tëÁ|èÁ{å¸wÞ±lدgÛªoÜ­rà¸xà»yß·pá·já¹mã¹oá·rá³tâ´qá¶pâ·nã¶nâµrâ¶tÝ°oשhÙ°mݳkÜ°hß´pâµrÞ³qÚ´pÕ¯pÒ§qÚ³tà¹qß±hÛ¯eׯgÖ¯kدsÚ®tÛ²qݲpܬjÛ¬hÛ­gá³mã¶oá¶ká·tß±ná²ná±sÜ®oÚ°jÙµiß´lâ³hÛ¬cÓ¨eÛ¯iãµqß±mß­eÞ¯fÜ°gÞ²ká±nà³oá­lß«gÛ°hÛµqصqÚ­mÖªfÓ®bܬfÜ­hÖ¯gÜ®iß±lß²nÜ°pÙ­pÛ­jÛ¯gÞ²gÛ°hÖ­lÖ¯oܯlÚ­hÚ°jà¶qáºnÞ·jß®jÝ­hܯmß°qܯiÙ«dÙ±jÙµmÙ±kݲoܶtÛµpݶqÜ·rݳkÞ±nݲrܲlÞ³jÞºoߺr߶zÝ´tܳqݵzß»xà¹vßµqܵkÚ°kÙ¬eݵh߸vܶsܵmܲjÛ³jÛ²jÛ¬gÜ­jÙ°iØ®jÖ¬kÙ­fà³pÞ³uÔ©hѦeÙ®fݳbÚ²kÙ®mЧfÌ¥cØ°gܶjܵnß±jÛ®hÝ°jÞ¯mÛ¯jرi×­fÙ­eÞ¯fÚ­jÒªjÕ¬dØ®cתdתjÚ¬hØ«cÕ«gØ°jÛ¬fÙ§aجhÙ®hÙ­hݵoÝ·vßµtâºràºpÝ´oÙ¯oÕ²iÖ²hÙ±jÖ¬eØ°jܶtدnÖ®lÕ­mÖ°nÙ¹pÞ»}ὀ῀㿃ݸuÒ¬kÖ«nÕ¬eЮd×±rØ°pÖ²hÙ±l×±rܳoݱlÖ­lЩkÒªgÖ«h×°mÙ²jÙ³mÖ°pÙ²qÙ´p×µsÙ³mÒ©gͨoÏ«lÑ®lÔ±oÔ¯mÒ®lЫhΨbÓ¬f×°nÖ®pÔ¨dΡVѦaزkÖ¯kÖ©aÖª`ѬgЫfÕ«dÕ«eÑ¥_Ì¡]ͤaÔ«gÖ¯kÍ¢aÇ™XÇœTÇŸY΢bÒ§eËŸ]Èž\ÊŸWΦXÔªbÕ©_Ц^Ì¢]Ê£]Ϩ`ЩcΫfÑ­iЫhÏ©eÏ¢dΣbÑ­bÕ®jÔ­mÕ­hÖ­j×­jÛ²jÚ°oØ®oÕ²jѯcÕ¬dزkسlÛ±oÙ±oׯpÕ²qÕ±mÔ¬nÕ±mÕ³jÖ­iÕ¬iÒ¬aШ]Ñ©bÔ­hÚ°lÙ¯eÕ°bÔ«dÖ©fØ®nЮhͦ`Ò©dÒ«_Ó¨cѦfÓ¦ZÕ¤aÍ _Ï¡VÕ¤aÑ¥eÑ¡XÏ ZΡZÍ UÌ¢[Ì£\ÆYÇ`΢aΤ\Ф^Ö¤^Ñ¢]Ò¥aÙ«nÖ«qתkצiСeÍ¢bÌ¢\ΣY̦]ÇWÅ—RÊ¡`Ô­iÓ­bÍ¥_Í¥cÌžZÎUÍ¡ZË¡XʤZʤ_Ô§_Ô¥aÍŸ\ÉšOËœXÐ¥cЦ`Ï£XÏ¢U΢ZФ^Ϥ_ÌŸXÍžQÍ¡VΟ[Ο]Ѧ^Ø­^׫`Ö«bÙ®eÕªhÒªc×´iÓ¬bÍ¡VС[Ñ¥cÒªaϨYÊUÎYÒ¤aÒ¨iÓ¯iÒ²mÔ¯rÕ©gШbѪhÓ°kÕ³nÔ­kЩeÓ«bÕ®bÕ¬dÔ®kÑ­jѬfЪdϨYѦWÓ¨bÑ«aÒ¯j×´mÛµlÖ¯m΢d΢cÔ®hÑ­^Ï¥^ЫgزgÕ¬bÍ¥cÑ­iÓ±hÏ«cЫdÕ¬gÔ§bÐ¥`ͤ[Í£W΢WЦXÒ¬^Õ®dزbÒ­bÓªdÔªbЦ]ͤ^Ì¥cÏ­l×­hÕªcÕ®k׳oÒ«eÒ¥`Ò§aÔ«d¸œcëÄëʼnì†ç¾}æ½~èÀ{êÁ{é¿}è»{å·yä¼wæ»oäºrã¼uä¹pæ¶sà¶qß¼ræÁ|ç¾}ç½xç½{å¹~Ú«lÖ®då¿uæµxÝ´qݺrÚ³oß¹qä¼uæ¼xèÀ{êÂ{æ¿yá»}ã·tß±nÞ·sæÂ|éÀç½~â¼xâ»sêÁzíÂ~êÂwéÂvçÁ‚êÀ‚æ¼zà´rãµtã¹tâ¸tâ¸zá³rß±sá·zä»tç¾yæÁá¸wÚ¯jß»vçÀ~á´uÚ¶xÛ´z×°uÙµvÛ²pÛ°pá½Þ¼uÛµrỄ㺃ߵ~á·{ã»wá¼yâ»~â½{äºrâ±sà¶tå¿tåºuÞ²oÕ§cÙ«jâ¸uà´rá²pß°hÜ«i߯oß·oáµuâ³vá³iܳeÜ´mݯmפ`Ò¡YׯgÞ°dܯgݳnÞ²oÞ¶kÛ¸iÚ°h׬fÖ®eØ°nÞ´rß±cÚ¬eÕ¬oÛ­jÛ¬aÕ©cÜ«mÝ®m׬gÙ«jÙªlÛªhݪeÙ§fÖ¦gبeÖ­kÙ®mÙ­nÙ­nÙ°hÚ±jÚ°mÛ­iÚ®dݲkܲpܶqÝ´qÛ±tܳxܶvÚ±rÚ°sÚ²s×°lزqÚ±uÙ¬eÙ¬^ܳhÞ´jÞµhܯkÞ®rݵtÚ²sÚ²gÛ¶lÚ³vÕ±jÖ­hزqÞ¾vâ¼vÚ´o×±lݵrß¾xáÀ{à¹zÖ²mЬbÕ°oÚºvÞ¸sß³vܲjÛ³fØ°oÖ¯mÚµqÞ¹sà¹uÞ¶vÛ³mÖ±mÒ®oÓ¯pÕ´pÙ³mÚ¯mÕ«jÒ¬fÖ¬kÙ®pزnدiئbÚ¨dÙ±jÚ±gܱmܵsÚ³gدeÕ°lׯjØ°hÙµiÙµoܺqä¿{à»{Ù¸qÞ»zÞ½xÜÁråÉ„èÈŽâ„ãÄݹ}Õ¯nÙ¶nÚ¹pÓ¯nÔ­pÔ­uØ°tÚ³mÕ²gÙ³gÛ¶jÖ°dÑ©`Ó«cØ­hÖ°mÖµp×´p×µmÖ³mÛ²tܸsضmÔ³lÔ²pÕ¯oÙ´uÙ·uضtصvÔ¯kЩj×°uݹwÜ·pÙ³lÕ­dÕ«dرoÚ±qÖ¯jÔ®fÔ«lÕ¬mÙ´kÙ¶qÒ²mÒ­eÒªgÔ¯mسjÔ©hÏ£hÆŸ`›ZǦaÑ°kЧfÌŸ^ͤ]Χ^Φ`ЩbѨ`Ч^Ë£^ÊŸ^È[È¡aΦ_Ï¥^Ï¥_УWÏžT΢]Щ\Ó©YÓ©cÔ­gÔ¨cÕ¨dØ­gת`ЫcÓ²lÙ´oÙ³oØ´oÖ²mÔ¬kÙ¯mÛ¶nÕ²nÔ«kØ­iØ´jÕ²m×°oØ°kÒªmÔ­mׯf×±jײmÔ°eÏ°bÒ®dÖ±eÓ­aΩeÓ°i×´hׯiÕªdÕ­fÓ¯gѪeÕ¨fÒ«dΫ^Ï«bÒ©fÑ¥`Ñ£[Ц_ȤYÉ£YЪlÑ©mЩaÓ­gÔ©iÑ©bÕ¯dØ­gÒ¬ącÍ©fÊ©eÉ¡`У`ϪeÏ©aѧ`Ë¢_ËŸaÕ®lÖ¶iÒ°hÔ­hѪeϦfЦeÍ¢^Ф`ЬcÑ«aÓ¨`Ѧ^ÇTßUΩ]Ô©_Ψ_Ч`ΨaΨ`Ò¨`ШaϨeË¥^ÇXÇ›UТYÛ®jÚ°kÚ²iÞ·qÙ±hϧ`Ñ©eÒ«gΧ`ЩZÕ¬`Ó¬`Ð¥WÈŸUÅœUË ZѪdÔ¯c׶lØ·sЬcÎ¥cÑ«mÕ¯kÚ®qÚ´rÕ³hÔ°fÓ³k׳mܸvܹuÕ­iÉ£bÊ¥\Ì©VФYѧ_Ò©b×­jÙ´mײgÔ­fÕ­eÔ®cÔ°fÓ«cФZÒªaÓ¨cѤ^Ò­bÓ«gÒ§dÓ¦`ФbÐ¥`Ô¨ZУ[ʤ^ͪ]Ñ«^ѨaÓ¬k×°i×­`Ø«cÖ¬bЫfÒ¨hЮiÏ­hÓªjÖ­pÕ±sصmÔ¯iÓ«j×°jÙ¶d¸ ^îÂì¿å¹{Þ³tزoÙ¯oá¶rá»sâ´nã±jáµræ·qæ·oäºsä¸qçµyá¸vܺmã½tæÁ}ã¾zæ¹næ³lÚ°nÞ´kè½så»vã·uà´mØ­eÞ´nè»æ»}å»tã»xã½uçÀvæ¿{áºvä¹wçÀƒæÀ†æ·}à²mÞ¸téÀìÄ~çÁèÅ„ìÈ„ïɆë¾~âµuâ»{æ½€ç¼{åºrá´sà´qå¸râ¹xá¼{èĈéÀ„ܲpݽvçÁ~Ü°uÙ­pÞ¶yÝ»rß¹má¶v⻂êÅ‹êȈèƒéÄ‚èÄâµyܳyÞ»zä¾vè¿yéÁ‚êÆ~çÃxèÀ~ëÂèÀ~æºyÞ®nزvå‚ê¼zä·uã¼uá½râ½yä¾ä¼yã½qàºrÞ³oÞ¯jÛ¯nÛ­nÙ«nÚ²xà´sܲtݳuà¯oÛ¬sÛ³uܳkÚ¯hÚ²jܵmߺoÞ·kÙ®kÚ®nݯmÙªhÖªrÚ³wݱr×£dÕ¢bØ©mÖ­lØ®nÛ¯nØ©eÕ¨eÚ«iÚ¬fÕ²fÙ°mÚ«jׯfØ°eÙ«kÔ¨hÖ©fܬiÚ¯iÜ­mÝ®pÚ²sÙ®nت`רbצbÔ¨`Õ©kØ­oÕ«_ΡZÎ¥bÖ¬hÛ¬gÚ­hÛ¬jÜ­dÙ­hØ©gÚ®hܳqÙ¬mЪbϯi׳uݵpÙ³oÛ°sÝ´uß¼{á¾zß¼zݸzÙ³vÞºyæÀ„áÀ„ཀá»yܺkÚ¸kܶtà¶xâ¹uá½yß¼{Û¸vصvØ°vÙ³vܸvß·xÞ¶sÛ±qÖ¬sܱsà¸tÞ¸tÛ¶nÚµlÚ°lÚ²pÛ³pݲs߶tÝ·mܵmÛ°qݲnݵhÛ·gÞ¹rá¼{âÁ|Þ¹rÛ°qá·xà¿xß´oã¹yàÃß¹|ܲrÛ³oÚ³tܶ}Û·vرkÕ²nÔ³lÙ´mÛ³pÚ³nÛµkÛ¶kÛ´dÛ¯dÙ±p׶qÚ¸uß·wÛ²qÒ¨lÓ«iÖ­jÙ³jÚ³nײtÙµuظ{ÝÁ~ß¿}Û¹|ßÀ}ß¿|׶vܼzàÂ{à»vÞ¸uÙ´sÖ°qÙµpÜ·oÝ´oÙ³nÔ±oÖ¯iÚ³oÛ·xÙ¶pÚ´nÛ´qÜ´pÙ³uÖ²tزwЫpÊ£dΩiÒ´rÓ²rÐ¥fΣ`Ô°dÖ±eÔ¬eÓ­oÕ¬iÒª_ΨaΦ\Ð¥[Ò¤\Ϩ^Õ¬fÒ§eΠVРWΡ^Ϥ_Ó¨bÒ¦`ÑžXÑžSÒ¢^Õ¦gÓ­kÕ²oرpÙ®jÙ°gׯiÖ©jÕªdÕªfÒ¨dÓ¯aÖ°gÙ²oÙµp×±fØ®gدm×­pׯnرlÖ¬lШdΫeÓ²r×´rÕ¯hÒ«j×­kׯhÖ±jØ®bÖ«`Ö®dÕ±fÖ®gÙ°eسf×±eÔ±dÖ¬bتhÔ­pЧjÒ©nÔ±uׯpÙ­lÚ²sصsÕ±hÖ¯hÙ³mÔ®hË¡`Τbέ`Ê¥\ϧcÔ¯jÖ¬nÖ¬jѬdͧcÓ¬lÖ±mÙ¯kÚ´tÙ·tÙ¹oÕ¶qɧeÌ¢^Ò¨eÕ«jÔªgÏ©[ÇžTÅ™XÇ£]Ë­bЭh׫kÕªiÑ­lÒ¯jÕ´nÔ´lʦ]ÄTÀ•KÇUÓªhÕªfÖ®cÕ°h׫fÕ¦cÒ§hЪeΪaЩeÕ¯jÔ­iÒ¤_ÈZ¿—YÁ˜ZÈ¢^Ó­eÚ´mÚ³lÓ¥cÏ¢fЩnÔ­oÔ¯pÓ±jÔ²eÖ°iزoÙµsÛ¸vÝ´mП]Â’QÅšUÉ£XÇ¢PË¢UѨcÖ«mÙ¯kزhسpÙ±fÛ°eܲnÚ¯`ÕªXÔ«aÖ®dÔ¨hÓªjØ­eÚ¬cÖ¯hÓ¬gÒ«hÕ±hÑ«dѨgЫnέkÑ®hͨjÊ«hΫhÕ¬oÕ³pÔ²wÕµuÔµmÓ¬gÒ«mØ°o×±nܳnÜ°lÕ°mصnÞ³gÀ™bçºvá»zÞ³vÖ§fÓ¦fתlÛ®eݳeܳjÚ²fß·jâ´qá²på¹næ¸kå»vç»uå³kâ¶pâ»uã¸tã¶nà²nÞ²má¶oæ¸pâ²pâ°nß°gÛ«bâ´kå¸nã²låµræµlã³pá·qà¸pá±sä°mã´lâ³jÜ«bÖ¨^Ú®eà¶uä³vâ´oâ½véÂëÅ„èÁzä¾vçÂéʼnéŃçÂyä»täºsæ¼zâ¹uà¹{é½€éÁvã¾yç¿~ä¼tÙ¬mÖ§pÚ±uàµuä¶uà¶{æÄŒïË•êÇŒåÅ…çĉæÁŒäº}ã¸vâ¼xä¼|侂äÁ€æ¿æÁ‡êÇŠéƃçÁ}ìÃxè»xã¼êÈ麃ä»zåÂuå¾zå¼æ¿zâ¼vä¼uã»tÞ·uß·rà¸t߶sÛ°pÜ´yܳuÙ¯oÛ²pÞµoÝ´qݳqà´oݱkÞ¸nà¹q߶wßµqÛ°mÚ¶vݶwÛ°p×±u׶|Û¾ܽ|ݸÞ¹|Ú¸vÛºrà»qÛ°lÕ«hܱiݳnÚ±oÛ¯pÛ­lÚ«jÙ®l׬iÒ¤eÕ§hܨjקgÕ¨gدhÜ´mܲmÕ®lÔ¬jÖ«`Ö«eØ®gÜ­bתcÍ \È™YÏ£[Õ¯^Ú®eÜ«e×­gÖªcÙª^Ø­fتfצ_Ñ£]ÌŸZΡcÓ¦eÔ«^Ô«gÖ«k×®nØ°pׯlدkÛ²p߸tâ»xáºsÞºqß½tß»vܶrÞ³qݶuرjÖ­cÖ­eÖ«k×­j×®hÙ¯nݲm߶rÞ·uÚ³v×±sسrܸuݼuݸtÚ¶tÙ¸sÞ¸pÞ·rÛµmݶmܶrÛ²qÛµqݹoÛ²jÚ²fܲiÛ¯oÙ³nÙ¯kÖ«mݶtá¸qÖ±bÒ°dÔ±kÓ­iÔ­gÕ¯pÙ³oÛ³lÙ°rÛ²rÚ±pÖ«lÖ¬oÙ«lÙ®gÚ¯hÙ¯lزnݳlݲo×®o×±sݸzÕ­sÎ¥cШbÔ©aÕ°`Ù°gدlصkÙµrÚ¶vÙ¶vض|ß»ƒß½‚Ô¶mÕ³kÛºyÚ¸qÙ¯eׯiÓ¯jÙ²kܸyÜ·|Ø°mÕ®jÔ±nÖ³lÛµtÞ»xÞ»uܼuܼx׳tÔ²yÛ¹~ܸvÕµvصuܸt׸sЯjϬgÔ²gÙ´nÜ´vܶsÚ·rÙ³mÙ²k×±qØ®mدiØ´qݶwØ®oÓªf×­fÒªeШ[Ô¬çhÉ [Ë¢\ʦbѧcרfÕ®fײfÒ¬fÒª`Ô§cÒ£cÏ YΡUÒ¤[Ó¤aÔ«eÖ­jÕ¬gÑ«]ШYÓ£[Ó£^Õ¬kׯqѨfʤbΨeÑ­oÕ°qÖ®jÖ±fÚ¶tÙ³zÓ«hÒªd×±jÚ¯hתcÖ¬e×°oÖ­pÔ¨cѧ^Ó«cÓ­fѬdѪgÑ©nÖ­oÖ®gدiÙ³s×´uÖ±sÛ³tݳpÙ®kÕ©kÔ¬oϪgȤZϧaÖ«jÔ¨gÖªiÕ«aѧ^Ò¬gϪ_Ϩ]Ô²oÖ±qÖ­qسwÏ«jÍ¥f×®kÚ²mÚ¯o×­hͨ\Ȥ^ÉŸbÎ¥eÔ¬gØ­oÕ®mЮiÔ°kÙ¶tÖ³pÊ¥_À™X¾˜TÃXÊ¡\É¢ZËŸ\Ξ]Ο`ΣaË©^Ñ©ZÕ¤\ΦfÒ­iÕ«^СYËžX–QÀ“NÁšUÇ¡bΩgÓ¨eÔ¤]ΦbÓªkÕ­e̦aÍ cÓ¨aÔ¨`רdÚ°j×­nÒ¦gÈœYÚQÊ£Tѧ[Ê¡ZÇŸTËžWЩcÖ³fÖ²gЫiÔ«gÙ¯iÙ¶rÚ·oÙ±kÙµq×µlÔ©cÖ¬hزlÙ³q×·sÙ·pÙ°nÖ°mÕ®iزj×´gÏ­gЯd̨^Äž^Ê¡eÔ¬jÓ¯iÓ®oÙµzÛ¼sÕ¯dÒ¬gÔ²iÖ¯kÛ±tÛ²jÕ­iײqàµe¾šZæ¿{ä¿{Þ²vÜ«m׬j׫bÙ®fÞ±oà°hÞ¯dá³lå´tá²yá¸pä¼iæºoé¶sâ²qá¶uä¶xâ²nä·kå·pã´tä³säµpã²là°lÝ°fÞ³iâ¸mä³háµhã¶oã¯nÞ®eܲeÞ´gß±ià®mÞ®eܪaÙ¨bÕ£ZÚ®cã·oá°lÞ²mà¶râ·ráµnÞ´sàµsâµláµqâºxáºzá¶yàºwã½zã¼vâ¹nå·qæ»yå¼~ç»|ä»tß´mÙ®nÙ³rݸtä¶vâ¸uãÀ~èņäÀ†á»yæÀzè¿€ä·tâ¶uäºxâ¸uáµuÞ¹uß»tâºzã¾{å¾yç¼zä¾~ä¿{èÂ|è¿åº}ã¼{ä»yä¶xä¸uâ¶râ´oá¸wã·uã¶pà¾tá½uá¶uÞ´s߶oá¹rÞ¶qß³pâ¸w߶zÙ²tßµoá¶râ¹zä¹uàºrÛ¸uݵwàµ}à¸zâºv߶uײuÖ¹{ßÊ…åËèʼnå¿|ãº|ã¹xâ´oàµnÞ¸pÞ´tà¶tà¶sáµrÞ¶sÛ³tÝ´nÙ¶nÚ²pܬl׬kدlÛ´qß»uߺrÞ²oÞ³sÞ¶pß´nà²mß²mܱhÕ­fÓ­h×­iدhÙ²hÛ°gÚ®e׬gÙ«hܪfש`Ö¨XÓ£WÍ Zˤ^Ψ]Ѫ]Ö«^Ù¨cÙ¨mÕ®nÔ¬gÖ¨eÕ¬fÚ¨gܦgצeÖ©gÛ®kÙ­lØ«oÚ´qÙ´lÒ¥bÌž`Ó¤`ÕªbÕ©fÖªhدhÖ­fتeÙ¬mÚ±kÙ°j×®pÚ°mݳfÚ³hÛ²nÙµo׳kØ®nØ°uرrÚ³nÚ°oÚ³qÚ¹tÜ´|ݶxܺnÕ±l×°pÚ³mÚ´iÞºoݶuÓ®rÍ«pÒ­rׯtײsÛ¶tÛ¸rÚ³qÚ´qܺsà·vܯnÕªiÑ®hÕ°bÙ°jØ°pزjÙ²eÙ°e×®f×°qÙ¯wÔ¨iѦ`Ó¨`Õ©d׬kتnÚ©fÙ©eØ«eÙ®e×®hÔ¬eÚ±hßµqÒ«cÍ¡YФ^ÔªbÕ«aÕ©dÒ©hÒ¬hÚ´mܶu×­nÓ®lÖ²qÕ±oسoÛ´hÙ¶iÛºvÚµvÖ²qÙ´yݼ}Þ¼€àµ~ß·zÝ»{ÙµuײmÚ²kÛ³nÜ·rܹ{Ûº~á¹|à¸uܼtà¹vܶvÙ·vܸxܸzÛ¶vܸnÛ¹rÙ·uÙ²jÚ´kÕ±pΫiάbϨdÕ¬kÛ±u×®pرkÜ­eÖªaÓ©fÕ¦]Ñ¥WΡ[ΣW΢UФ[Ó©aѦ`ËœWÆ–JÊœMÌ¢YÍŸZÑ¢^Ò¥eÒ£cЦbÒ¦jÔ¦lÓ«gÕ°lÜ´r×°pϤcÏ¢WÑ¥YÒªbͨe΢`Ò¥`Ô¨]Í¡WËUΡYΚ[О`ЦeϦ`Ï¥dϦjÕ¯qÙµxØ´vÙ´uÞ·vÞµtØ´uرoØ®iÏ¥cÌžYѤ\Ó¥dФfЧdЧdϨfÔ«fÑ¥`Î¥`ÔªfÒ¯mЬjÓ«cÏ©aЧbÖ¬gÕ°mرnÛ¬h×¥bÑ¡^Ï¢\Ð¥[ÒªaÖ­jÖªgÖ¬iÖ°mÚ¯pØ­pϤbÆ–RĘWÅœ[Å WÅ OÅ™SŘXÅœTÆœVÈ›XÉ¢WÊ¢ZË¡aË¢ZÍžUΚZËVÓM»‘Iº•O½˜[Ä›]Í¡[ΣXÍ¡[Ó¦aÓ¥^ΟWΟ[ΦeѦdÕ§bÕ«iÑ¥fÒ£[ЩZͧ^ѨdÙ±kÓ¬cÈ¡XÄžZ˨eÕ­k×°hÏ®bÏ«bÔ¯qÖ³uصuÚ¹{Ù¸vÔ²gЬeÔ®hÖµjײiصmÜ»uÚ·sÖ³qØ°oܲqÙ²oÔ°fͬbÄžWĘXÇ`ϤeÔ¨fÕ«hÙ±oÖ³mÕ®fÖ®h×°tÕ®pÚ²mصmÔ­g׬pݳs»œeá»|â»à¶wݲwݱuß²rß±qÞ±lÛ±mÞ°mãµqä»yâ¶rá¶rã»vä¸pã¹uâ¹uãºuã¼vâ¶tåµpãµqá·pá¶ná±kà²lÞ°kÚ«iÚ®gá¸hã¸jݵnݲo߯rܬnÞ¬ià±nÜ´pÛ´mÞ®aÖª[×­dÝ°iÞ¶lä¹rÞ±pÙ±jÞ·oܱoÓ¥dУ^ѤbΟ_ФbÕªjÕ¬hܲhà±l߶nã³n߯mÝ°kݵhÞ²má³rá³lÛ®eÚ´h߶nà²ná´ná¹sá½xä½{â¹|ßµvà¹wà¹|Ú®pÖ¬iÞ¶täµtà²ná·vâ¹uÞ¶ràµrßµuß¹}ã¸xã¸uã¹|Þ¸zÞ¹râ¹oá¶pä¶qå´sà³pß²qá³ráºqà¸rà²oá³iá·iáºqá»wá¸vá·t߶qÝ·uà»x߶qÞ·vå¾uä¾uå½xå·qÚ´qܹtã»vä»yæ¼xâ»}Þµ}Ú´zܽ‚áÁ„á¼~ß¹}Þ»}߸}ß³yÞ·uá¹uá»vÞ»wà»|â¹yã¸pä¶tߺxâ½xâ¹rÚ¸oݶu߶t߸oâºtß·nݶrà·|ݹsÞ¹oß´rÞ´mݸoÞ»nÞ¹mÝ´lÝ´jÚ³jÛ³jÛ³mجkÙ¬cÚ®^ج`Û®jÙ¬jÙ¬hÜ®hÖ¯eÔ®hجkÚ­kÙ±mزf׬dÙ¨eÕ¨fÕ­iׯjÕ¬jÓ¬iÓ©fÓ¦^Ѧ]Ö¯cØ®fÓ¤cТ`ѤcÖ¬hØ­eÕ«`׫bÖ§bÕ§`Ô¨bשbجfÑ©hÓªfר`Ö§^Ö®bÙ¬eبhÓ¬hÔªeÕ­hÕ³fÕ¯eÛ±kܳkزk×´oÙ¶qÙ¸uܸxÞ´uܶvÛ¸xÛ¶xÙ´u×´uÙ³r×±oÔ²pØ´sÙ³kÕ²j׸sÜ»sÚ¶s×±lرnÙ´vØ·vÛ¹sضsÙµp߶sܶsÚ²kÚ´qÙ¶wÚ°sÙªmÙ±p×®nÖ­pÛ²pܯgÙ¯gÙ®fØ©bÕ¨`Ô«cØ®jÜ®hÒ§dΤbÓ¦UÔ§XÕ¨dÓ¨`Í¢WÊ¢bÑ­lÙ±mÓ«mÐ¥dÓ¥`Ò¨cÔ°kÕ±eÖ¬aÖ«iÓ­pÕ®qݶtÛ¹uØ´tÚµqÚ·vÜ´vÚ°nÖ±n×µoÕ´s×µvܹuܸpß¹xß»ݸxàºyá½xÝ»qÛ´nÞ´lÞ¸pÚ»uÚº{Ú·wײmÔ³mÔ²tÒ®uϱrÔµqÙ·oضmÕ³mÙ³hÛ±hÚ°gÚ°d×±iÔ­fÒ©e̦_Æ¡\Ç¢`Ǧ`ɦ_Í¥_Í¡RËžLÎYУ^Ъ^Щ`Ѩ`ϨfϦeϤgͦjÑ«hÖ«nÒ£aÊ ZÉ ]Í¢YÍ¡ZËYÊžTÍ [Í¡\È PÈšQÈ›XÇžWË ZÍ¢[ÍœXΠRÍ¥WÓ¨dÙ®fÖ­fÕ®kÙ°mÙ®hÕ«iÕ«hÑ¡]ËœXÊŸUТWÏ¡\Ï XÓ£ZÒ¥`Ч_Ñ¥cÓ¥dÔ¨dÖ¨eÖªdÒ¨dΤbЦcÎ¥dÍ¢^Ϧ^Ò®eÑ©aÏ¡]Ï£_Ì¢ZË¢ZЩaÕ«bЦ_Ï£ZÓ¢]×¥bÕ§cÏ£[Ρ[Ï£\ÉŸWÉŸ]Ë¥dÊ¢bͤeË¡^ĘUšSÅWÈZÅ XÄXÍZÌ£YË¡WÍœXÌžXË¢[Æ¡]Æ bÍ£hÍ cÈŸcͧfÓ¬gÖ­gѨeÏ©kÓ¯nÖ®hÓ©fͦeѯk×µsÖ°nÔ¯kضqÔ´jÌ«bÆ¥dɤ`Õ¬eÖ±jΪgÓ«kÕ°pÔ±rÚ¶vÛ·vسqÕ¯kÒ¬hÓ°oÓ²rÔ¯m×±mÙµl×°jÒªfÕ­dØ®jØ«lÒ¦`±F˜vA¬†QÅ[Í `ËžZÌ¢]̤bÏ¢^Ö¨`׬eÕ¨iÒ¦cÖªbÙ¬kÖ¬sÖ°pÜ°e¸˜\â¶räºvâ¹}߶{á¸~⸂á¶|â´zá±uÞ°qâ¸zä¼}â¾{ä¾yã·uà´qãµnãµrâ³xä¶{ã·yâ¶sã¶nâ·qà¶uß²râµvä·vרgÓ¥eâ³sâ¸zàºzßµzà±}â¸yá»và¶uá²ràµsÛ²mÒ¨h׫pݱrܵuÞºzÞµxà´tá·tݳvÚ¯p×­jÑ©hΦhÌ£fϧfÔ®kÖ±jÞ±ká®jÜ­e׬gجbÙ°eØ°eÚ¯eÚ®eÚ±eݵlßµlá³nà¶rݸjÞµlݲsÞ°sß±v߶vâ¸xݪmÏ¢bÙ°rã¸vß´pÞ´mÞ´hݳhá´rá²vß²qá´oã¶sä·uß°pÞ®pà´tßµjݲhÞ³oá¸p߶pà´sãºwã·nà°iÝ°s߸pã¼nãºpá¸qà¶sÞµpßµoáµvâ¸vàºpá¸pâ¹tã»tãºu߸uݵuß¹zä¿}á½㽄å¾Üº~Ù¸}Ú²sÙ²sÛ·rÛµqÜ´pݳsÜ´rÞ·nÞ¶vݶyá¸vã¶vÞ·qݶkà¶iáµsÞµtß·pß¹tݺtâ¸rà¶vÞ¶qßµvÞ¹{á»wáµrà³tá¸xâ¶uáµsà¶rà°sß³rݶnÚµpܶuÞ·rܵsÚ²iÞ¶ià»uß¹qá¶mâ·mÞ¸lÛ³mݳmÞ²lÚ°mÙ°k×­gÕªfÚ®jÖ±oÕ²nØ´qÚ¶oÛ¯hÖªgÒ©dÖ­fرoØ®qÕ¬fÓ®dÙ´mÛ¯mÛ«fÛ±gÚ¯jÖ©hÖ­eÙ°jÙ¬gר\Ö§_ת`תbרjÚ®jÛ³lØ®nÓ¨hÒ¨bÓ©aÔ¦eרjØ­gÖ¬`Ô¦aÓ¦dÕ©fØ­iÚ±r×°mÖ®cÓ¬hÕ¯gÖ°j×­tÖ­kÒ¬hÒªjÔ¨gÕ¯hÕµkÙ°aÖ§_ÓªkسrÛ·pعvØ·vÛ´oÛ¸vÚ¹zÜ·zÙ¶sÖ·sÞ¼yß¼vزoØ·sÙ¸j×°j×´oÚ·oܹqÛ¶o׬pÖ­lÖ³k×®kÛ¯dÚ¶jÚ±mØ«hÕ°kÖ°jÔ©eΤdͧ_Щ_Ó®fÓ®dÒ¨eѤbѦ\Ó©gÓ¨fÏ¥bФ^ѤYΦZÑ­gÕ¯jÕ®bÖ­eÖ±qÛ¶zݲnÖ¬fÖ«hׯkصpÝ·uܵtÝ·vÞ¶vÝ´rݵwß¼wÞ¸oܱiܸnÙ¶sÚ³rÛ¸nÙ·lׯpϨfʨcЪpÔ«pÛ²qݸuÙ³qرoØ°mÖ®lÚ³mÚ³qÚ´o߶uÞ¶sÖ³mÓªjÕªlЭpÓ­vÖ°sسmØ®qÕªjÖ¬cرmÙµwÙ²vÖ®n×°uÕ°xÓ­qѪlѬkÏ«kϧcЦ^Ñ£^Ò¥\Ð¥]Σ]Ω[Ψ^Ò¤dÑ¥cͦcÍ¥bÑ©\Õ¨\Ò£ZѨ`Õ°gÖ­kÓªgÓª`ÓªaÕ«bجhÖ¨cÓ¦Yѧ\ѧaÒ§aÔ«fÑ«bШ[Õ«cÕ«fÒ«bÔ°gÕ³nØ®hÙªgÓ¬fЫeÒ©dÑ©dѨ`Õ¬_Õ«fÕ«dÕ¨aÒ¨hѪgΤ_ΠbÌ _Ì¥`ΤYÍœSÑ¡XѨ[Ê¢ZͤbØ°iØ­_Ì£W̤`Ô¨cÕ¬cÖ¬hÓ©aͨ^Ë¥`Ç¡\Ä¡_Ë¢cÐ¥iÒ¬mÔ¯gÓ¬gͧhͦeÓ¬kЪjЪdÖ°kÒªkËŸbÐ¥gÖ±q׳pÖ¯jÒªnÓ«rÙ²l×®iϧjаmÙ¹yصpÒ®eÙ¶vÚ¹{Ö®oÒ¨lЪjÔ«iÚ²rÛ´qÚ³tÙµtÔµnضlÚ³eЩbΦgÓ«fÒ­lÔ¬mÕ«hׯoׯoÔ«fÔ¨cÓ«gÔ¬bÕ¬dÏ¢Y«z6‹b.ŸƒG¿RÈ WΡVÌ WÈž^΢\Ò§bÔ©hÓ§aÍ£YΦdÕ«kÕªgÓ«oÚ¯j¼˜W߸sä¹uæ»wá¹t߸uß³wÝ®rÞ°rݯlݯdݲmà²uß³xá´vâ³pâ´på¶râ¶uâ¹wã»zÞ°vß«má³páºuà¸qÛ°nÞ²mã¹tרhÐ¥há¹xå¿{åÀä¿„â½|æÀyä½ÚµxÝ°nã¶uàµrÖ¤`Ó¢bשiׯmÞ¶yäµxâµtâ¹{áºãº|ã¹uÞ´nÙ²nÙ®gÙ¬hÚ°qرpÖ±lÙ°kÖ¦fÖ¦aÚ«hÜ°mÛ°jÚ®jÙ°pØ´oÞ¶tâ¶zà¶yà¸vá²pݬhÖ­gÚ²qá·{à¸zâ¼xÞ°lÓ¢`Ö­jݵmÞ³hÞµià³kÞ±jß³oß´qà³má²nß´oÞ²fÜ­gÛ³sÞ´tÝ°oß²jß³eÛ²iß²mÞ´mÞµmà³hßµfãµlå¶pá¶nÞ±iß²ká·qâ¶sàµuá²và²và¶uá·xßµvß±rá²hà¶lݲpá´nß»uÝ·yá¶wÞ²qدq×µvÙ°lÚ©iدlØ®i×­kÙ³mÚ¶nÙ¸rܳoÞ²hÞ¹mݶuÞ®uÚ°oÙµmÞ·qݶsܹzÞ¼v߸qÞ¸{â»~â¹yá¼zæÀ~ä½{â»~ã¹{ä»wã¸uã·tá¹vá¶{á¸{ß¼xà·wâ¹ràÀqß¼qà¸pßµlßµr߶vâ¹và½vÜ»tß·yâ¹|á¼zÞ»tݶpܳnÙ²o×±mÔ­kѪkرmÛµjÙ±c×®lÖ¯sÙ²tÙ³qײlسkÚ²nݵtÛ¶uÖ²sÛ²qßµnÙ´pÙµuݹtݵrÙ±kÚ²jÜ®j׬e×°lÛ±pÚµsܸqÖ±mÓ­kÔ®hÖªdÚµnÛ³rÙ£jÔ§dШ_УZѦ^Ò¨`Ó¥fÑ¥gÏ¡`Ê[ÈœWΟ`Ö¨eÔ¨dЦ\Ш^ЫjÕªhÒ¥\Ì¢XÑ©dÙ´uزrÕ®mÖ°lØ®g×±l׳tÖ²uÕ±sÙ®qÚ²tÙµnØ®kÖ°iײfرjÖ³nÙ´rضqÙ´mØ®iÓ«k×®m×±kÖ·sܾyݺwÙ³vÙ¯mÜ°kÙ²j×±hׯmÕ¬mÒ«iÔ¬mÓªlϨeÌ¥fÒ§iÔ¬gΪfͨcÒ©aÏ¢YÍ¢]Ñ«hШaФXש^Ú¯hÖªhÔ¢`Õ¢ZÕ¤YÕªcÖ¯dÔ©aÖ«`Ø­eÖ¨dÛ¬_دdÖªe׫^Ø®cØ®kÚ²mܳpجlÖ­gÐ¥_È b˪i˪gÕ¬pݲsسnØ®qجkÓ®gزrݶuÙ³sÚµvݸuÛ´oܵwÞº}Ú´q×°o×´qÙ´sݳpÙ³kØ´iÛ²mÚ³uصsÙ±vزyع{Ø·{Ö¯rÓ¬lÑ©nÒ«hÔ­iÑ©oÕ­kÚ²nÜ´lÙ²iÖ±uÙ·uÕµjÓ³nÕ³lÕ²d×°lÖ­gÖ°gÙ³t×±sÓ¬lÒ¨hÓ«eÖ±lÚ­mجfÔ°g×°iÖ¯dÓ°gÖ³nÕ²pÒ­kÖ®hÖ°mÓ¬dÓ©b×´oÖ·xÕ²pÖ²kÓ²mÓ°nÔ¯fÓ°fÔ°lÕ­lÓ­k×­gׯeѳfϬcÏ¥bÈ hÇŸfÎ¥^Ï¥aШhѬfɤ`Ê£fÕ¯rÙ¬kÕ¦^Φ`ͨdΦbϤeÔ¬hÕ´nÏ­nÈ£eɤeЬoÖ³uÙ²tÙ±jÕ¯eЦ`ÉŸbɤ`Í­dÕ³sعvÓ´sÈ¥gʦjÕµuÕ¶pÖ²nÖ°lÓ±hÕ·rÚ¶tÕ²qÒ«oÔ¬hÓ®hÓªm×±qسoÖ­lÖ²mÕ±lÕ«mÚ²qܳrزqÕ²iÓ­gÕ­eÔ¨XÊTËŸZÒ¥aÒ¦`Ñ¥]Ò«dÕ­iÒ§gÓªeΨ]Ц]Ø©aתeЩcÀ˜H°‹@·’MÆ WѬ`Ь^̪XѯaÓ°gѨjÓ­mÕ¯hÔ§dϦcÒ­cÕ­fÓªi׬f»•[à¸vâ»vâ»vá´vãµvâ´tß°mݱpÛ¬nÚ®oݵoÝ°qÙ­pÛ°lÜ­lß³pâ»nâ·kçºtâ¶qÙ©kÝ°râµlà´há³kÝ«eשdÙ¬hÑ¡\Ï¥Wß·sã¸~à¹wÞ¹yß²vâ´qá´qÝ­lÝ«lܬlÛ«gÙ¦cÒ¤`Ú­dÝ´k߶sæ¹yæ»{á·{á³väºxá¸yß²qã¸lß³fÜ­gݲgÛ®hÚ«hÚ«jÙªlÜ«oÞ®qÝ´yà´{ݳtܲpÛ¯pÙ²uݳtÞ²sÞ¶vÞ·vÜ°nÚ­gÞµnâ¼zã¹zã¹wá·wݱpݳjÞ²rÚ±{Û±sܱuÝ°vܲsÞ¶vá³tá±nà°mÚ«fÕ°eÞ¸tå¸vàµu߶pß´eÞ¯hÞ­nÞ³kݳmÞ±rà·ná¹mâ¶mà±hÜ®gܱià³oÞµpÞ´kàµjà¶já¸oã¶nã´hÝ®hݱkã¹má¸uÞ¶tß³pà²|á³zÛ¯iÓ¥`Ö²jÞ¼wáµvß²lÛ°fÛ±jܳjÛ²há¶pßµeÛ®bá±nâ³nݳmÛ°pÚ°mÛ¹iÞ¸ráµvâ·sá»vâ»yá»uâºvå¼zæ½|ãº~á¾{å½{ä¹y߸vߺyæ¾往侀侅翃ç¿æ¿ä¿~á¹vâ¶väºtâºrã¸yåÀ€ä¿㺀⼆âÁãÁvã¼yß¼tÜ·nÙ¬lÒ«mÓ³sÙºxÜ»zß¹wàµuÞ´xݸxܶsÛ´qÚµqÚ´vݺ~ß¾~Ü·tÛ¹rÞºyß¼yÞ¿zÞ¿zâÀuâ¾xà¼yܹu×±vÙ±{Ù²xÛ³vß·qݵoÚ³vÚ¯mÕ¯hظrÞ¹sܵqÛµoÙ³lÕ«fѨcÒ§dÔ¥fÕ¥hÓ¨gͤ^ÈZÍ¡`Õ¬gÖ¬dÕ«bÔªdÔ¨gצfÔ¤bÍ¥bÓ¨eÚ®hÕªfÓ©bÓ¨bÔ©eÓ§fÒ¤fÓªeШcÐ¥`Ñ£`Ñ£bÕªfÓ¯jЪhÖ©hÔ¬gÕ«aÕ­fÓ¯nÖ°rÖ°sسrÙ´l׸oÚ¼tݼuݹsصnÙ¶sÙ¸vÖ¸q×·r×µvÚµt×±qÓªkÓªjÓ«gÕ¬nÙ´q×·q׳qׯhЪfÕªpܯmÖ«dΟdΦdÓ²`Ô¬]Ô¦^Ò¦]Ѧ^Ó¤\Ò¢VÊžPÉžZΣ\ÍŸP͘PÎQ΢RΟUЦbÕ­eÚ¬bÙ®gÖ­lÚ­o×®eË©dŧjͧjÛ±mÛµmÛ²kÞ¶kÙ¶nÖ³oÖ³oײnÕ®jÕ¬mÙ°tׯjÖ®hÚ²pÚ³nØ®m׬m׬lÚ¬pÙ°l׳pÙ²rزlÖ°pÖ«rÔ°pÖ´tÚ¶}ÙµzÖ°lÔ°lÒ¯oЪiË©d̪hÖ±lÛ·l×´kسmÛ¶rÛ¸tÙ¶uÕ°uÕ±sÙ´oÛ­jجhÖ²lײuÖ®pÔ®kÖ´qÚ¸uܸqÙ²nÖ³sرmØ­fÙ³pÚ¸uÖ°lÔ­jÖ¶sײoÔ¬lϪjÓ±qÛµuÛ¶tÙ¹r׶nÓ°iÑ«kÒ¬pÔ«j׫j׳rضvÕ¬tÍ¥mΧcЭhΨiʤb˨eѬkÙ²qØ®nѪfϨfÔ®lÖ³oÓ²jÓ«eΤfÉ ^Ê ^ͦeÒ¯hÒ¬gЧcЪnЬsײnÜ´pÙ°sÖ®oϪgǦdɧdЫgÕ°q׳vÓ°kǦcÉ¥jÔ°qÕ³kÕ±qÒ³sЯlÕ­mݹyÝ·rÔ­eѪgÔªhѦfШiѨgÔ«n×®tÓ©iΤbЦeÖ¨f׫eÔ«_Óª^ÒªaÍ¥WÊ¡VÍ¢WÓ¨]Ó«jÒªdÔªcÔ¨`Ñ©\Õ°hѨcÊ¢\Ьb×°jرkÔ¯bШ_ɤb˨hØ´qزsѬjÕ¯nÚ¯qΦḩfׯjÙ²gÓ­mÕ¬qÙ°fЩaÓ¨h·šdç¼wâ¸wã¸wá¸vá·rä¹uá´uá¶vá¹y߸tߺußµxܯtܵvݳoݱiâ¶pä¹uà¸uÚ²rÖªsÙ±sâºwâ·uà²oݲoÖ­kÖ©dÑ¡_Î¥fÚ²fß³iÙ´mݳiá®nà±lß³kÞ«qÚ¨lÚ«gØ«mשgÙªeݲqã¶râ²rã¸rä»vÞ­pÕ©iÙ±gܳgÞ³pàµuݬlÞ¬hÞ¯eÛ­cÚªgÞ¬mß°jܬdÞ¯oÞ³xÞ³tÙ°jÛ®dÛ«hاiÛ¦aØ¥_Ü®já°lÛ¬gÙ©dÝ®gâ¶qâ¹tá´qà´oà¶sà¶rÛ´nØ°n×­mÚ²pÚ¯lܬgß³oÞ´rÝ°nݬgØ­bÖ±là·vá³tܲsÞ´tÞ³ráµsÞ¶pݵmâ´ná²oâ¶tã¹zàµy߶z߶uܳlÛ³gܵkÛ³rܲoßµmÞ³qß·nÞ¸lݲmݯlà¸lã»qáµnà¶màµiß³kܯjÖ¥aÝ­kä¶uâ¶rÞ³sÞ­tÞ±nݱhÞ±iÞ²lÚ¬gجbÛ°cÜ°fÜ´eÞ¶nÞ±xܲrÙ¯cÚ¯mß²sÝ°fÜ­hÞ°nܲlÚµoÛ²pÜ­jÝ°jÞ²pÛ±lÛ±gÞ³oß´oáµn߸oÞ¸pá¹xá½zàÁxÜ¿vÚ¼sß³jݳlݼuàºrá¼yà»uàµpݸsݹsâ»xá½uÞ·m߸sÝ´sÖ±tÕ¼€ÝÁ‡á¿‡áÀß¾{ݹvÞºzÝ»xÛ»sÝ»rߺwÞºxß¼zܹyÙ·vܵtÛ¸tܽ}â¹}ߺtݼyÞ½}ݾvÙ³oÙ¯nØ´mÛ¶tßµuÛ²rÕ¯wЭsͧcЬiÚ¸u߸vÜ´wݲtÙ²iײjÙ¯iØ«dÔ®iÙ²pÖ°oͪfÒ®lÙ²pÛ±kÙ°cØ°eÙ°mÙ®hÚ°hÙ¯hÓ«`Òª\Ò§ZУ_ϨhÓ­mÓ©bÒ£^Ñ£^ФZÒ£`Ô¡`Ò¡VÓ¥ZÖ¨`Ô¥aÏ¢^ОZÕž[Ô£cÏ¥hÔ­fÚ³nÙ¯qÙ°fѬdЫmÖ²rÕ±kÕ­jÖ®sÙ¯qØ°xÕ²{Ö²tÚ´sײnÔ°kÖ²pزvÖ°sÔ²kÕ¸pÙºxسrÖ­iÛµqݺxضsÓ­iΩbÔ±eصkÖ±cÕ¯aÔ®hÔ²kÓ­dΠ[ÉžXÊ¢^ÊŸaƘNÄ™HÇ›SÊœZÎ¥bÑ­jÖ¬cØ­`Ò©eѨiׯiÒ§cÆžZ˧^Ó©fÔ¦hØ«jÞ­eÙ«^Ö¬b×­jÕªiÔ¦`Õ¨cÕ¯kÔ¯iÔ«bÕ®cÔ±lرpÚ¯lÔ®fÖ°iܳnÙ³nÖ²nÖ±n×±mÑ«fÐ¥dÙ²qá½{ܽ|×¹y׸y×±uÓ®nѯnͨoÉ£gÕ­fÔ±jÓ¬hدfÓ¯jÔ­fÖ­eÔ­gÓ¬fÕ®h×°fÔ­aÏ«fÒ¯kÑ­dÓ­hظqÙ¸oÖ²pÖ´rسoسnØ·t×¹tÕ´nرnÙ·vÕ±pÓ©fÓªfÕ®`Ú¯hÛ±p×´nÕ±lÒ«hΧdЫjÕ±nزtÖ²xÔ¯sͧcË¡ZТ_Õ¯fÓ³hɨ_ʧ_Õ°tÙ¶yØ°qÒ¨iͧhÓ­tÔ®qÓ­gÖ°rÓ°sͧcÉ¥dÅ¢dÇ¡^ͧbϨaѧ^Ϊ]Ò«_Ö®iÓ¬kÔ©hרhÕ§eЪ`ЪfÒ¨kÔ¨kÕ¨bÊ¢^ÈŸeϦiЫfѦgÕ¯sΫeËZØ­jÖ²i΢bϦcÓ­dϦdÏ©eέfΫfϦ`Ë ZÆ XÈ¢\Ó©c×­`Õ«\Ô«`Ь^Ш^ѨcΪcÓ¯hÔ³lϯbÑ«[Ϊ_ΧcÕ¬fШbÈ›TÊVÏ©eÔ¬gÖ­fÖ¯gΧ_ɦ`Ò­dÓ«dϧhÔ©jÔ®fѬcÓ¨bÖ¨b×­iزkÕ±qÕ°rÔ®i×°e·œ_ä¶|à³zߺvá»yâ¼xå»~æ¹}á¼uäÀ{è¿{ã¹y߶yà¶xå¶väºzâºwâ¹yâ»zÞ²pØ©rÔ©lÚ²nä½yâºzã¹~â¸xÚ±rÙ°sÙ¯nܳoäºyå¼~ã¹}ä¼|ã¿tä¾qå¾{ä¹}ܯnÙ­kݵzã¹zá¸wâ¸zã¹v߶qâ·lä¶uá­sØ©fÙ®hà·nã¹qáµp߶nàµlà®iá®mÞ±mßµjá´kâ°fà°gݳjß²nÜ«dÚ©bÛ­kÚ©h×¢bÔ£bÜ®nâ¯iÙ¦]Ó¥bѨfÙ­jÞ²uÞ±tÞ¯tܲtß²mà²jÞ²pݬmÞ¯mÝ®nÝ­jÞµmÝ´iÜ°iß²kÛ²gÛ´k߶pرj×°kÛ²oÞ´qã¸và¸tÞ´xâ´yâ¸|äº|ä½~á½yà¶tÞ·yá»vÝ·uÜ·v߶rß´tß±jܲmÞ¶wá¶sâ¹màºqã»wä»|߸zá¹zâ¸pÙ±hׯmÛ°kÞ²l߶yÞµuÞ±tß²rÛ²lܲpܵkݲiÙ¬lÔ«kÚ®lÛ±rݲnÞ°nÚ¯qÚ±k×®cÖ©fרcת\Ö«bØ®p׬mÕ¨d×­cÛ°jÝ°oܲfÝ­cÙ©cØ«dÜ­cݱiÙ¬kÔ§^×®hݶqÛ²h׫lØ«hÛ­_Þ³jݵpݶsá·uâ·nݳhÚ®kÜ®pݲrܶoÙ¯kÞ±tá¶uܵpÛºvÛ½xÙ»xݼoÞ»mÛ¶rܸrÚ¸oÚ¶u߶xÞ¶vÚµu×°lÕ¬kزjزgÛ±kÞ¶xÞ»{Ú¹sÚ´oÙµtÛ¶sÚ°oدoضrÚ¶vÝ·€Û¸{Ù°sÓ­sͪhˤhÑ«oÙµqÞ¸rß¹vÚ¸sØ´nÛ·pÛ¶mÚ²pß¹xÝ»uÛµpÛ¸mÙ¸nÛ´qß±lÚªlÖ­lصpÞ¶yÞµsÕ­jЦdϨ`ÓªgÖ¯kÙ´pÖ¯iѪ`ÓªeÖ©gتcÙ®fÕ¬cÓ¦^Ц`Ï¥dÑ¢]Ó¢^Ѧ`Ò­fЩjÑ©dدgÕ¬nÔ¬nѦ]ÌŸUÐ¥bѧ`Í£ZЦaÕ«`Õ­bÔªfÕ¦c׫g׬kÓ§cÔ«d×±lÔ«kШiÓ¬kÙ®qÙ¯oÕ°eײjÖ´rÖµoÙ°nÖ®kׯnÙ³qÙ³lÙ°pÚ²sÚ³sÞµpÙ³kÓ¨dÔ«gέjÈ£cȤ`Ȩ^Î¥dÔ°jÒ²iשdש^Ò¦bÖªcÚ°cÖ«gϤbÌ¥cÈ bÈœXËž_ÌŸbÍ _С]Í£]Ð¥]Ф]ϧaÔ«dÓª_ϨbÑ©eÖ¨b׬gÙ¯gׯjÔµpÛµuܲuÚ²qÙ¯vÖ°vÓ®pЪgÖ³kÞ¾tݺyÛ·}Ú¹uÜ·oܶ{Ù¹|Ø´vѨpΦjÔ­nÖ°l×°o×­sØ­kÙ­iÕ°qÔ±fÙ¬^ܯhرmÒ®hЪgË£_Ê£^Õ«jÙ´nÖ²pÕ«qدsÚ´uܵwܶzÛ¶vÙ±mÖ°lÕ¯lÖ°jÕ¯gÖ­gÖ±kÖ®p׬uÙ­sÔªjϦiѨkÓªeÙ°eÛ°nÖ¦hΠ_Ì¡]Í£bШdÓ­aÒ©b̪cϳgÖ³mÕ¨jÏ¢_Í¥aÔ§dÔ¤^Ó¥gÙ°kÛ²kÖ§gÒ¦^Σ`ÈšcÊšZΠQÍ£TÏ¥[Ó¨^Ó©eÖ§dÓ¦_Ó¨^Ô¨aѦaѦ\Ó¦`Ó¨hΦdËŸaÆbÆ¡^Í¢XÓ¦b׬nѤ^ÊTШ_Ð¥bÍ¡bË©cͪbÓ¨cЯfÒ°iÒ¬hЪa˪\Ê«fÓ¬hׯgÖ±gÖ¯gÕ­jѨfϦ_ЦbÍ¢`ΧbÔ¬fШfÓ£`Ϥ`Ȥ\Ì¡VÍ \ÌœV̘YÏ¢fÒ«cÔ­_Ò¬d̦aÈ¥_ϦdТcÍ¡^Ó¦^ÔªcÓ¨_Ö¦\Õ¨`Õ«iÚ±kÚ³iÙ²jÔ¨cÓ¦c»—_äµtâ´uã·xâµ{å¶|黂åº|ß·vã¾~ç½ä·uÞ²oÞ±rß²xá¶zâ¶xâ¶vݵuÕªmУgÓ§hÙ±nÝ´rßµvã¼äº~ß³y߶vÞ¹xâ¹zç¿|çÀ{æ»~ç½}èÀwæ¾yå¿‚ãÁ€ß´uÚ³sݺvã»zä»{ã¼xàºyß¹wá¸pã·oâºvجqÎ¥mܵrã¹qâ´pâ·t߸x߶qݺlâ½rãº|ß·vݲgá²lß·sܹgݲhÛ²oݵoݯnשcÔªd×®lÙ¯mÔ«jЦdË¥^Í©fØ®kÚ°hݲhܳkÚ°mÛ¬hÙ«eÜ°jâ³râ°k߯gÞ±kÞ¯nÞ²jݳgÞ¯eà¯mÛ®oتeÜ­hܯnÝ­qà³rß³tà³uàµpá¹nà¶nà³và´zß±rݳsܱnÞ°nÞ·sàºoà¹sß³qÛ³kÛ´oÙ¯lÙ±mÜ´vÞµtß·tÛ²rÜ·pÜ´qÕªlدkÛ±jݵià¸sâºxãºuáºuà¹tÞ¶pܶnÞ¶pܸrÙ¸mÞ·qÞµxܹuÝ´qÙ°pÙ´nÙ±oÕ®rÓ¬kÙ­jÞ²qÛ°sÔ¬hÓ«bدjܳjÝ´mÛ³qÙ°nÖ®f×°hÛ²oܵmܶkÕ«jÕ«mÚ¶mÙ´iÖ¬cÓ§`Ô¬eÖ±gׯjÚ°mÛ±kÛ²kÛ±gØ®hÙ­iÙ¯lÚ²gÛ°fÞ³lÛ¶mܲmß±oÕ¯nÓ¬p×®mÕ±iÛ±pÛ°lÙ°jÚ¬fØ®bÖ²gجfÕ¨^Õ¬_×®gÓ¬jÔ­jܳpÞ¸sÞ¶pÛ¶sسkÛ³kݶrÚ¹tܼuÜ»sÙ¸rÚ»rÚ¹sÖ²rЯg˨jϦjÖ¬jÙ´pÞºrÞºtÙ²rײmÞ·rݵvظwߺwá·xÝ´oÚ³iܲpÛ´jدdزh×µkÙµoÝ·oÙ´rЫmЯiÙ´qÙµsÙ·tÓ¯lÖ°iÛ¶mÖ²kÙ¹pÞ¸uÙ³t×±qÔªlÌ©fͪhØ­mÔ¯hײjÙ°jÓ¬cÔ®`ÔªbÕ¨bÒ¡`ËžY̤\Í¢]ΡZРVПXÍžYΞ[ÏŸ^Ó£VÏ£WÊœPÊPÏ¢^Ò¡_Ô ZΠXÍ ZÓªfÓ«gѦ_Ò§aÕªdתa׫cÒªeÓ¬kÖ°oÕ±kÕ²jÙ±lÚ±hزjرhÚµnݸxÕ«oÊ¥cʦfÍ¥jЫjÓ¬iÓ©kϨhÑ«d×°jØ©iÕªaÕ´lÓ±l̤bÄ_ÄŸ^Æ¥dͪeÕ«bÍ¥`ˤcϧdͤa̤\Ì¢XͦbÓ©aÒ£[Ò©fÕ­kשcÚ«hݱkÚ±g×±jÕ®kتjÖ©jͧeͨeÒ­e×­gÙ¯mÚ±mÙ²rÙ¶xÛ¶w׳xÓ®nÒªiÕ°rÖ³nÕ¯jÕªeÙªgØ­n×±mØ­j׫wسuÜ·nØ®rÑ¥jÈZÀ“NÄ•NΤ]ÖªdÒ¦bÔª`Ù±iÖ¯hÕ¬h×®kÕ«dѪfÔ«e×®eÖ²iÔ±mÓ¬jÒ©eÕ¨gØ«cÖ®fͧhÊŸZÏ¥\Ô¯iÙ­gÙ«fÚ®lجfÔ¦^Ó¨]ÕªWÕ§UÊ¢^Í¥iÔªiÎ¥\Í£]Ѩ`Ц_Ï¥`ͨeÓ«jÛ°nÚ¯jÕ«hÒ¨gÌ£bÈ `ËŸ\Ï¡]ЧdÔ¯fÕ«hÓ¦cÖ«`Õ¬fÒªfÖ°gÙ²kÛ®pÖ¨rÎ¥f̦bÅŸ_¾˜SÇŸSÓ¨fÕ¬qÓ¯hÖ­fÕ¬eÒ«eÖ­pΪiÈ£`ΦeΨcÏ«fÓ­kΨhÌ£bЩfÖ¬rÔ¯tÑ°nÖ­iÒ­dЩfÒ¥cÓ¨_Í¢^Ï£\Ò­bЩcΣYË¡SÈ¡TÆžRÈŸTËŸ[Ë¢aΨcÕ¬eÒª`ΨXͧ\ЫdÔ±gÓ¬bÎ¥cÓªh×®eÓ¨bЧ\Ï¥[ФgÔ«jÕ«fتiÕ¨cÔ¢_º[à¸uß¹vß´pÚ­jàµræº{äµvà²oܳpß·sà³vÞ±t߶sâµtá·qà¸rä²xÞªlÖ¤_Ó¤aÒ§hÓ§jØ«oÞ²pä¶tãºuÛ±pÙ°vÞ¹yà·và·tâ¾wá¹}Þ³vÞ³tà±tà¶rá¼páºsà·vâ·vá¶zÝ´zÜ´xÞ²uá³yâµvá¶uâ¶zÙ°sÍ¥dͧlÚ°sá´râ¹sáºtܶvß¹vá¶tä²vâ·t߶nâ´uâ¶zà·uÞµrÜ·rÝ»xÞ¹{Ù²rÓ®mÔ¬j׫n׬pÒ¨lÌ¥kЫlÖ³qݵlà´gÞ±kÞ¬iÛ©iÕ©f×±iÞ±qà±pá±nã±má¯hÞ®iß²gÞ³eݱhÛ®dשbÖ§dשfÚªkÛ«oݱlá±oá²pß·h߯hÞ¬mÞ²qÛ±oÚ¬jÚ­fÙ¯lÞ²lßµkܶoÚµhزgØ©hÖ¤aÑ¥`Ô¨dÚ¬jÝ­pÛ¨mÙ¬pØ®oЪjÑ©fÖªe׫mܲoߺuÞºzß·uâ¶uá·pá¶oâ´vݸxÛµuݱpÞ³qß²nÞ²tÞ³â¸|á·sܱp×®pÛ·uá¼zâ¶zÛ³tÛ´sá¹|á¸xܵnݸtÛµqÚ°mܯnÛ°oܵqß¹pÛ¶nصrݳqÛ²nÚ±pÙ¬kÔªmϦkÔ©fÙ­hØ«kدeØ°`Ú­cݵcÞµfÞ²jܳfÜ´jݱkÞ·nà¸pÚ¬kÓ¨cبdתjØ­eÙ­_Ù¯cرeÕ®`Ø«eÕ¨jÓ¨fÓ¬bÒ©aΧe˦eΩdײgÙ´mܲqݶsÞºqÝ»kÞ»rà¸xÛµrسoà¸sâ½uݽuÞµtÖ­lϪmÓ«pØ®t߶|ä½ߺ}×µuÛ¹rܸvÚµv߸v߶wÝ´{Ý´qܶkÞ·sÛ²pÖ´yÚ¹uÛ¸mݸpÞ·rسmÜ·qà¹zÞºá»{سrØ´qà¼vݶvÞµuÞ¼vÞºxÞ¹zظxÒ°nΨfÖ°nÚ³tܳnÞ¶oÚ±t×®rÙ°nÞ®nØ©fÔ«dÒ«eЦ`Ò¢^Р]Ï¡WÑ¡YÍ `Ì¡XΡRËžLÇ›MÈ™OËœRË›RÊšPÍŸOÍŸSÏWÎQÊTÍ¡[ПWÏ¢[Ï©bѨbÕªeÓ©cѨfÓ§gÔ§^×­eÕ­jÓªfÙ³pÛ¶tÕ¨iË¡eŤcǦbϪiÕ­oÔ©kÏ©_Ò¬bرmÖ¬hÑ¥fÒ°mÙ¶zÕ±q̧`̧gÒ®lÕ³pØ·qÔ³kЬgÒªeͨeΧ\Í¡[ͤcÕ­fÕªh×®kÚ²kÙ¯iÙ°eÕ¯fÓ¨hÕ§hÕ¤fÓ§dÔ©fͤ]ÁVÅYΧ_Ó­gÓ­pÕ°uÕ¯qÔ­gÖ°mÖ®iЬgÒ®kÖ¨cЪeÏ©cÒ§bÕ­iÕ­lÓ¬jÒ«wÔ§pÙ«iÔ©kУ`Π^¹‘U¯‰L¼•RÊ `ͤ`Ϩ^Ó«iÒ¦aΡYÓªbÚ®bÚ®dÓ­gÓ©`Ù±kÔ´vÏ«hÒ©WШZÐ¥[ЩZʦXÃQ̧\Ö¬eÔª_Ú±oݵzÚ³nÚ³mÖ¯mÒ¬eÔ¬cϨdÍ©cÖ­bÕ­hÓ¯eÔ°fÔ«jÏ«jÓ±oÓ²nЮlÒªoÕ«hÔ¨cÌ¥gÄŸ]Æ^Ñ©lÖ³nرjÚ®iÙ¯rß¹wß·vÔ­pÕ°pØ·t׳vÔ®qÑ°lÔ´mάeÅœZÇ aѱjØ´oÖ®rÖ°q×±lÖ²rÙµtÏ«aÉ¡[΢dÊ \Í¡aÕªjѨaÈWÇ¡[ΦeÓ¦eÒ¬cÓ¬eÔ¬dÔ©]Ô¬`Õ¯hÓ¨cÒ¨bØ­dÕ®eѬbÑ«eÌ£aÈ¢XË£XЦ]Ъ_ЦdÑ©hѪ^ШZͨ[ЪiÙ®p׬hÒªh×±oÚ³rدnÖ¯kЩbΦ`ЦcÒ¦hÚ¨k׫hׯc¹šZå²và³pÞ°lݱmÞ²pá´ræµrã­kÜ«eß²láµiݶh߯gà®gܳiݲkáµoܲlتbÚ«gÚ«lÖ§hÔ¨kרeÙ¬dݯnÙ«j×­nÙ¯uÖªnÖ«lܳpÞ´rÛ¶qÛ¶nݲnݯoݯqßµsã·vã´yãºyä¸wâ²qÝ´lß¹pæ»zå¼xáµtá²wÕ§eÈ¡cÔ­sÛ¯pݲrâ¼{á¹{Ü°vÙ°y߶wß²uÛ°oß´n߶sÜ´sßµnÛ²sÞ·xá¸rÙ±rÔ°rÚ°oàµrà¸vÛ¯rÓ©eÓ®dׯmÚ°nÜ´kݲnß´oݯhÕ©jØ­nÜ°mÞ´nä¹wä³tÝ°jÞ²iÞ±dß«fâ°gÞ²_Ü«`ܦb×¥dÓ¦jצeÛ®eݶnß³fÞ­kÙ¬nÙ®mÞ°oÚ­gÖ«eÚ±gÞµhݯjÙ©gÛ¬eÞ±iÞ³kÛ¬oÕ¨jΣ]È bΪfÛ³fܬhÖ©iدgÕ¨_Ì Z˦cÒ«iÒ¨bÓ«bÙ°hÙ¯hÙ°mܲrÝ´jß±hݬoÜ®nܲgÚ°iݲpܲlÛ³nß·nßµmß²jܱhÝ·qã¼sÞºnܱpß²xä¼væ¼tÝ´qÚµoßµqܱnØ®nÕ­mÙ²pݹuÚ¸rÛµrݲuÛ²vÚ²rÛ°rØ°vÕ®jÕ­jÖ°rׯh׬gÔ®iÙ³jà¶oݵjÜ´kܶvÛ±pÜ®mÝ´o߶pܳkÔ«dÕ©eØ®iÔ¬bÖ­aÛ²lÜ®iÙ¬bØ­bÖ­hתjÔ¬d˨_Ç YÈ¢VË¡ZУ_Ö¨^ݬcÞ²nÛ´lÙ°oزrÚµlܳjÕ¯mØ­hßµnâºxã¾|ܼxÕ´rÖ­lÖ¬lܵyãÀá½uݸlà¸r߶pÛ³pÛ±qÙ°tܳrÛ¶lÙ´lÜ´oÜ·uÛ¸xÔ¬lЫiÛ¹xܶtÙ³oÞ·uÞ¶rܵtܶwÛ·uÚ¸rزfÙ¯hÚ´rÛ¹vݼvà½uàºyײuÏ«nÖ±sÚ·mسhܳmܳnܲoÞµrÞ¸uݸvܵpزo×®jجfØ­gÔ«jÕ®jÙ¯jÙ®lÔ­dѨVÒ£Xͧ^Ï©dÒ¥`Σ`ΣdÎ¥aЩ^Ñ¢ZÏ¢YѨ^Ï [Ë[Í¥dÔªjÓ¥^Ï¡[Ñ¢dΟaÏ¡YØ©\ѧeΡcÕ¤\Ô¤\Ô¦\Ò¥ZÊž_ÆŸ^ΧbÕ¨jÑ«eΫhΪiÔ°hׯjѨhΧsÕ¯wײnÔ±pÖ¯iÔªhÑ°sØ·sÕ±pΪiΪnˤlÈ aÈ£^Ç£eÒªmÔ¯mÕ¯lÚ³qÙ´rÕ²nÒ­jÓªiÔ©j׫gÖ®jÒ«iʤ`Á˜VÀ˜UǤ[Ï©eÓ«kÔ­hÔ­eѪfÒªe×­iÓ«kÎ¥aΤdÕ©pÓªḩ^Ò¬jÙ¯rÔ¬gÑ©dͤ]Ï©^Ñ«eЦhϧgÄ¢\·•Q¹•TÆ _Ê¥aÈ£\Ê¥d˨bÊ¥bÏ©dÕ±dÖ´qЪhÍž]ЧgάmͦjÍ©hͧeΨcΨeÆœ^¿œYË¥]Ô«jÕ­fÙ°hÚ³tÜ´tݶuÖµuбo׶rÕ´sͪlϧlÒ©hѪfÓ¬gÔ¬bÔªbØ´r×µpÓ«fѨiÓ¬hЫbÄ ]¹–VÁ›^ШkÓ®eÓ«`Ò¨^×°iÞºzܺtÔ¯kÔ®tЮuΦdÓªgØ®qÚ±oرkЬbÈ¥`ΪoÛ¶|ܵu×­lÔ­jÕ­lѧgͤ`Σaϧ`ÍžUË™^ͤgΨ_É¡ZÂœVÅšWТcÕ¬bÕªaÒ¥aÖ©`Ù±bرcÔ®hÔ²nÖµlØ´mÙ³oÚ±kШbÉ ]Ê¡]ΫeάaÆ¢ZÇŸ[̤^Í£^É¢`ΪhÔ°iÔ®bЪdϪhײgÚ¶hÙ²jÙ±jÔ«dΤdΤfÔ­oܲoß³e·[â¸zà¶qݲqÚ³uܵyß³zâµuä¹tà±pÞ³pæ¹tè²ná®jÞ²lâ³lÞ±d߶cá³mÜ­qÞ³pÙ²lÓ¥dÕ¥bѤaСfÚ­fß°dتeÖ§e΢dÑ£hÛ­iáµná·zã³ræ±nä³tݱpÞ²kã¶oå·ræ½€æ½|áºtß½~æ½…ç¿„ä¼zä¼}åÁݳtÕ«mÛ´vÝ·zàº{â¾}á¼}ß»{ß¹á·~àµvܯnܲoß¹|Û´xܵvâ·xߺ}Ü´tÞ´rá¿sã¿våÁ‚éÂçÂyâ¿}á¶xÞ²mÙ³kÚ³oà¯rá²jà²jÞ«kÛ«lÛ­nÝ´râ¼våºsÞµkÜ°fÝ°fÜ´hܳaݯ`ܲhÞ´nØ­jÒ«cÙ±fÛ°hÙ²gܲdÜ®iܯoà³oãµqß²mÙ°qÚ¶tß¹sÜ°oÔ«lÕ®lÚ±rà¶xá¶wÚ±tШbË¡[Φ]Ù³dÞ¶sÞ²xßµrܲhÏ ^ѪnݹxØ©jÓ¦hÖ¬fبbÙªfÙ°jÚ±jÞ®iܪiÝ­gß³hÜ®`Ü«aÚªfÙªjÛ¯mÞ´máµmß²kß³mà´jÛ°eدpÛ¶uàµhÞ°cÙ¬_Ø«`Ú®kÛ¯hÛ±gÞ²pÞ³mÚ®fÖ¨iجfÛ¯hÚ±oÙ²uÛ³tݱqÚ°pسrÛµrݱnÚ¯jÕ¬hØ°rÞ¸zÛµsܵtà»zܶvÛ±qݶqß¼v߸yزkسjá¸rݵmײiÛµmÚ´mÞ¶mßµqÙ²rÖ®nÓ¨hЧfΦkʦjȤfÈ¡eÍ¢eרbÛ¯e×­hÖ«dÑ«cÔ­hܲj׬gÓ«iÚ±qÞµrá»rå¾vàºr×±hÒ¦dÕ¬iÙ¹oÝ·lß°fÞµoß·xÞ·uÙ³oØ°oÜ´mضm×´oÚ±jܶlâ»q×®fÍ©dÙ¶qܶuÞµwßµqÙµoÛ¸zÛ³x×­pÖ­hÕ§^Õ§aÙ²oܶuÞ¶vá¸tá¼wݼ‚ܼ}Ü»tÛ·uà·uà¸vÙ´xܵxݹzܺxà¹|຀ݼzÞµuÛµtÙ·sÚ²pÛ³pÝ´uÚ³q×±fدdÚ­gÞ±nßµuÙ´oÖ°kÖ«fرhÚµtÙ°mÓ«cÑ«iЮeЯdÕ°oÓ­iΨdÎ¥eѨdÔ¨jÑ¥gÓ«cÖ¬kΠ^Ç›SÉšYΘ^Ò¢]ѤZË¡Yͤ`Ö¥fÖ¨gѪfШdÕ¨eÛ¬jÑ¥kÍ¢dÒ§jÔ©jÕ°jÓ°lÒ¦eÔªhÒ²lÒ®kΩjϪjÍ¢`ÃœYŸ[Þ[ϦgѧeϤ]Ù«hÚ°lرo×­pÕ°kÓ®iЫiÖ°nرpЧhÊ¡_Æœ[ÊžbЧrѯoÕ°rÖ°uѲlÓ°n׫rÔ«pͦfΩgÙ·qܶqÕ®mÕ±jÙµoÕ®oÔ¨jÊŸ`ÅŸ_ϨhÒªlÖ®s׬qˤcÆ£cϧmѨl˧d̨fÏ«lË¥kÉ¢`˦\ЦcΡbÄœWÉŸZΣfÌ¥hΩjÑ­kÓ±lÒ¬hÆšY¼“UÈ¢bÒ«hÔ«eØ­lزpÙ³qܵsÓ°rΨgÙ²rÚ´sÓ§bФgÑ¥gÔ©cÕ«eѦbÒªeرsÚ°oѤbѦaÖ±lÓ±lÇ¢_¸•ZÀž_ˤbË¢_É¡XÈX΢\×®gÙ¬iÖ©jÖ¯tÎ¥jÌ¢cÔ©eÕ­hׯnÖ­lШbÏ¥^ϧjÖ²tÖ®jѦaÓªdÒ¦dΞ`Ð¥hÔªfÑ©cΦ`ËŸZË¡\Ψ]Ыbͤ\ÌžaЦlÓ¯kÕ®hÓ«eÔ°jܵmÚ´hÒ°mسrÚ»vÚµuݵrÛ¸oÕ®gϦaʧdÍ«eÊ£Y¿˜[Ä¡bЫaΨbʦcÔ­kدvÔ¬pѬg˨dЪmÙ±rÛ³kÛ³pÕ¯iΪ_Ò©eÙ²lݶoÝ´iºš\çÁãÀ~àºwߺzá»{â¼uæ½yê½{â¸rà·qèÀzè½uâµqá¸râ·qß±mÞ³oà¸s߸wß·uݲnѦjÌ£eÓ£cÒ¦fÔ«iØ­m×®mجmѨdÒªbÝ°já±sã´rá´hã¶sæ¸vâ´qÞ®oÞ°kÜ´pà²vá¶sà¸sä¸yæÀ|å»uá·uâºwã¸tã¶rà²qݱpÙ±qدrÚ¯sà´|ã½à¾„à»à¼vÙ³rرrݶtÕ¯sرuá»x߸{Ü·zÞ¸zä¹yãºy仂迆çŃéÆèÁzܹpÖ´qÙµpÞ³nß²qݳqݲmÞµsÝ´uß²yá¹yä¹vâ¶uܶoܶiݵmÜ´jÞµl߸zá·váµpâ¹sä»qâµoݳmÝ´lÛ°nÙ°oá¶râ¸rÝ·sܵtܵuݸxß·xÝ°lÜ°lÙ´tÚ¸tà»tá¸u×®oͦfÑ®ká¹vâºtß¼uå¼uà¶kÙ¯mß»ŠåÇá»sܱnÚ®mÚ°jÜ·lÛµgÝ®cà°gÞ³kÞ´jà´fß°fà¬eÞ®aܱdÚ­cÛ²hÞ´oÞ¯h߬bÛ©fÛ©eÛ­hÙ±rÕ«hÒ¦eѦhרgØ­kØ®hÜ°bܯcÛ¬dÙ¬aÙ«cÙ¬kÖ¬dØ­bÜ®nÙ­mÙ¯kݲjÝ´eÜ´fÚ°h×±fÖ³eÚ´n߶vÙ²mÖ´uÜ»|ܵtÙ²qܵtá¹uߺuÛ³qݵqà¼yàºvݵqݳtà¼wà¾xÚ¶vÔ¶rÕ°vϨkϬlÕ¯tÓ­mÑ«oÔ°vÔ­lÑ­eÖ³mÙ´l×®iÕ«bÔ®gÖ±kÛ³e×±jÔ°mÔ¯iÚ²làµsà´rܲjÓ¨gÕ¨jÖ¯jÖ­gÖªcÜ°hÞ·qÞ·oÛ³lÚ¯lÛ³kÙ³gÙ±fݲmÞ°nà¶tÞ³rÕ©lÖ±oÛ¸qÜ·tÚ¶tÚ²hÙ²jÙ·oײmÖ¯mÔ«gÔ¨dÚ³oÜ»vÛ·qÞºqâ½vâ¾à¾ß¹tÞº|Þ¼xݳmÙ°rݹsݶwÛ²}Ù¸zÜ·xãµzàµyÙ´uÚ¶tÙ´uÕ²rÖ²rÙ´pÙ´oÖ®pÔªf×±fÙ´lÛ´kÛ´kÖ®gÔ«iÙ°nÜ°g×°iÒ³mÏ­iرiÞ¶r׳lØ°jݲqÚ±pÚ±oÛ³pÛ²pÙ¬mΠcÈœ\Æ™TÈŸY˧dΦeΧdЦ^Ó¦bÔ¨gÓ¤cÑ¥`Ó¨bÕ¬cÒ¨bУ_Φ^Ê£aÍŸ`У^Õ§bÖ¥kÒ¥hÏ¥`Ê¢\Í¥bÌ¡bÀ˜X¾–TÄ—W΢`Ì¡YĘPÍ¡^ÒªlÒªmÓ©iÓªfѪbШdײmسtШmΤhË¥m̪pÓ®qÒ®nÖ¯rÙ´uسsÖ®mÖ®hײnͬdÈ©_Ö±pÙµrײnØ´pÙ·rÕ«lÓ¨oË¥kÞ]É¥aϧbˤaΨfʤbË£aÔ®kÖ²jÌ©_Ç¢]ΦgÎ¥jˤeͦfÓªjϧhÈ _ÅžbÉ¥d̤`Í¥hÓ²xÖ´qÑ¥\ĘV»“SÃœSÒ¦[Ô¢]Ò¢_ϦbÔ©_Ù­fÒ¥bΟ\ϧdЧdÑ¢cΡaΤ]Ò©bÒªjΣkÌŸjУgÒ¨dͦ]Ϧ_Ô§dÕ«kÒ«pÈ¢`Æ£[Ë¢^Ëœ`ƘX•RØbΦmÑ£fϤaÕ¯kѦgУ_Ô¥^ѤbÓ©hÕ¨hÓ¢eÑ¢dΨkÓ©oÑ£^΢ZϨeΪ_Ц^Ö­bÔ¯fÕ³nÕ±iÓ«cϨbͧaѨcÔ©cΪ_Í«aÓ°hÖ´mÕ±hصmݹpÖ±jΩcÒ¬hײrÔ¸pÓµoÚ²pײiÓ¯eÓªeÓ­fˤ[Á–QÅ¡`Ö±rܱnÑ«gÓ¯oÚ³qØ°lÕ®lÓ©g΢hЬo×µlÙ²oÖ±kÒ©^Φ`Ö®k߶qâ¸m¿™cã¾zæÀ|ã¾xã¸}ä»{á¼uã¹xå»}ä¿~ç¿~é¿}ç¾å¹~â¹zá¸yà¹så¾säÀz心꿄乃خpϧcÕ®sÛ´uܯoשsÔ®tܳw߯qÙ®jܵjã¶jâ±qÚ­jݳiç¶uä·mà°bܧcÙ©eÛªlܨqÞ«jà¯gá®pà¯oÞ¯fâ²lä´oä¶rã¶rß³iÞ¬kÙ¨pÕªoÚªrÝ´r߸tà²vá±rÚ­o׫oÚ°qتjÕ¬kÚ³tß²yàµyà´vâ±tãµpâ¸x绀è»{ß·q߶sä·}â¶yá¸tá·v߯zÛ¯sܶnâ·ná³nݲqܸqß»oß¹nݵiÞ³mݵrÞ¶sá·yâ½vã¼vå¹vä¼uä¼tâ¹jÞ·j߸uݵsÛ²táº{ã¸wßµpß·uã·xã¹zã¿|ã»uà·rß·vß¹tà»uãºxàµpÙ³pܵvãºwãº{àµzß¹yá»tÞ¶tß¹€ã¼}ßµvàµwß´uàµuä¶uã³oÞ²oÞ²uÞ¶uß·qá¶pâµpà¹tݳrÛ­gÕ¨a×­hß²hÞ­eÜ®jܬfÚª\Ù²g߶tÚ«fѪ`Ó¯f×±mزlØ«jÚ©cÙ©`ר`Ú­aݹlܺuÒ©hÒ£YרZÖªaÙ«jܯpà¯jÚ©kÕ§jØ­eÙ­fÙ±kÙ´pÙ°hÚ±lÛ³vزoÖ±hÚ¬mܳrÞ¹wà´vß³vÚµtÛ¶pÞµrÙ´mÙµhÙµkׯlÙ±lØ°j׫qÚ³wܺwß»|ܽ{Û¾yÖ²lЮhÛºsáµxÝ´vÚ´mÙ¯lܵtÝ·uÜ®nÙ°nÖ³hرgÛ´kݵmÞµmÛ²iØ°dÓ¬]Ï¥WÒ©_ׯiÛ±nÞ²mݲh×°oØ­oÛ±hÚ°hÚ°hܱfݳiÙ±eÖ«cØ­eÙ¯iÛ³yß²pÚ«gØ®qܶrÙ¸mصoׯj×±qÞ¼tß¼tÚ´vÛ³oß·yâ»~ã¿{߸vܵxÝ·xÖ´pβk×µkÚ´gرkÔ®pÕ²qÚ¾|ÛÀ„Þ¹‚ݶ|Û·wÙ´qÖ²mÚµrܲsÙ±pÔ®gÓ¬gÙ´mÚ·vÚ´yÖ­kͪiÒ®mÖ¯q׶xضoÒ¨fÔªkصq׶mÞ¶mÞ³uÙ²rÛ´rßµ|á¶}Ú°lÒ¥`Í¡cÊ©eÍ­]˧WͤYÒ¥_Õ­eÔªgÖ¦kØ«jÖªkØ©jØ©eÓ¨bÕ«cÖ«eÔ¢cÌ_Í¢bÖ­oÙ®oÔ©fÏ¢_Ì¡^Ì¢^Ì [ÈŸ\¿–Y¿’PÏW̘QÆ•LÈ]ÇŸ]ͤbÒ¥dÏ ZÌ¡[Ð¥bÓªhÒªmÒ¦qÒ¥iѪjÔ®pÔªjѤdÓ§mÖ¬rÕ­iÒ¨eÔ¨jÓ°kΦ_Èœ[Î¥fÖ°oÓªmÓ§l׬kÕ¬pÕ«rЪgÄž^Å[ÇŸ[˜W˜YÅœ\È ]ЩgÕ®hΡ^ÄšZÆŸ]ϦcÒ«bÚ­gÛ°rÖ®mÌ¥cÂ]Ú\Å–WÇŸ]Õ©fÖ¦cÓ¤aΠ_À–QĘMϤXΟXΛ[П_Ï¡^Ô«fÔ¬dÉ\Êž]Ï£YΟZΡ`Ó¥bÒ¦dÕ­i×®mЪgͧdЩcЩeÍ¥`Ë ZÍ¢`ÕªiÔ­kЩkÔªhÒ©hÊ¡aÆšR¿œ[Ç¢eÍ¢`̤cЧaШ_ѬfÓ¨jÏ¢gÕ«kÕªdË¢]ΩfÔ®nÓ«jϪdΧbÓ¬gÓ­fÓ©e×®kØ®oܶrÝ»vÙµuÓ«nѨeΦ`̧bÏ«hάiЯdÙ¯mÚ³xܶtà¶tدpΣgÓ«hײkײnزnÙ±oÖ±q׶iÚ³iÖ¯eË¥\¿š^Å¢fÕ¯nÚ³kÔ«jÒ¦oدn×®kÒ§fϪ`ШeÒ¨jÕ­gÔ²kÕ²oÔ®kÑ©iÕ¬mÛ¶oâ¹h»œZã´uâ¶sá·sá·wá´|â²và¶tä¼~èÀ€æ¾wâ¾|ä¼}èºtä¾uã¿xå»yä»yå¼yè¿|ç¼~å¹}Ú®oË dÔ¯má¹uÞ´vÖ­nجgàµqæ¸}á²{ßµsâ¸vß³x×®mÛ³màµuà³uÞµoÛ²mܳuÝ´oÛ°fدkÙ±kÞ²nà®rà±sâ¶tä·rå·næ´vè´uæ¹kà²kÙªnÖªkתgØ°qß´yá·{ܳqجhܳnß´qÞ°iá²má³jÞ´gà´pà·wÞ³sÚ©lÛ¬i߬eÙ¨dجià¶sàµuà¶rã¹sݵvØ°oÛ²jà´jÞ°oß²vá·p߸oà¹wâ¹sß±rܯoÚ±lÜ°nà¶tã¸{ã´{â¶}à²zÞ­uݱqß³oÚ³lÚ¶oã¼xã¼tàµrá¹uß¹xß·uä¼wå¿zã»zâ¾yã½vã¼zá»yã³{ݲxÕ´nݸqãºqݳlÜ´kݶlܱlܯoÛ®oܯoÞ´sá¸vã·sâ¶v߶vàºvá»zß·tá·uã·yá·xâ·uß²lׯgÔ°mØ´oÚ·uÛ·vÛ´oÙ°hجdÚ¶oß½xÞ¶rׯhÖ®lׯvÙ³xÙ®kØ©e×­h×±gÛ³lß¹|á¾}رnѪiÔ­eÕ®cÖ²jÙ¶mÞ³n߬jÛªhשhئeÙ¦c׬aÖ¬bÕ«gÔ¨aÕ¤aÒ¢cΡeÖ§hܲjÚ±f×­\Ö¨[רcÙ°hØ­fÔ©e×­hجhÕ®i×±jÙ°iݶnÞ·sÙ³lØ·mÛ³oÙ©iÖ¬hܵqß´uÛµsÛ·nݵnÜ´qßµnÞ´kÙ¸kÚ¹pÚ²sÛ´sÜ·sݸrÙ¶lÖ°jÒ§fÏ£cÓ¦e×­jÙµwÛµnÙ±bׯiÙ°gÚ­d×­aدbÙ®aÙ²jÙ­jÕ¤]Ù¥\Ø«`Ñ©]Ú«^Þ±eدfÚ°m×°oÔ¬e׬eÚ±kݵoݹmÚ¶jÙµkÙ²kׯg×°^ÙµfÚ¶lÙµbÓ°cЪfÖ¯bÛ±iܲm׳lÓ­nܱpß»vݹyݳxÚ³sزpزoÚ´jÙ±gدiÕ¯eÑ­f×±qÚµpÚ¸o×´qÓ®qÓ­kÖ°kÖ²qÕ±oÒªfÕ«hÛ±pÙ²lØ´nÛµoݸqݶuݸsá¾uÛ´oͧfȤeÏ°mЭhÈ¡eÍ¥eÕ­hÕ³pÕ°lÙ¯mÚµqÚ³jÚ®hØ®oدlÙ°iÜ°oÙ°qÓ¨mÓ¨iÙ³nÚ¶oÖ±iØ®eЪdË¡cÓ©eÖ®iÅ[¸SÉŸ[Ð¥\ÇœYÌž[Ο`΢cϤ`Í TËŸWÒ¦eتkÖªnÕ¬mÑ«iЩfÕ«hÖ¦fПbÏ£gÓ¦mТaÉ¡ZÍ ^СcÎ¥f΢bϦ\Ó«eΦbÒ¢ZÒ§fϪ`ÓªeÏ£fÇœTÆSÉŸWÙV¾‘T¾•WÈŸ]Ò¥cΤ`ÈŸYƘQÈžQϧ_Õ«fÖ­gÚ°kݲlÔ©]šQÀ“QÕOÆTͤ\Ò¥_Ô­bÔ­eÉ›\Ä™UË¢WÌŸWΟYϦ^Ц_Ö®eÖ¯iÌ ]Æ›ZÉŸWË¡\ΣcУdË¢bЬiÙ³kرj×°lÓ«dÓ¨dÕªgѧ^Ê \ͤjÚ°tÝ´uÛ·uضpÑ«iΩeÅ£dŸ]Ç¢ZÅž[ǤZΩdÒ¨lÒ«eÑ«_Ï©cΫhΨeͪbÖ°qÙµuÕµoЭiÏ©gÒ®eÒ®kÒ¯qϪ`Õ­bݵrÛµpÕ²hÖ°gÓ¬eϨaЪeѬoÏ­gЭ_Ñ­fÕ°nÖµoÑ°cÊ¢`Ñ©lÙ³pÓ­pÒªnÚ¯k×­iײpضlÓ­aÒ©aʤYŸXͬkÕ²kÏ£\Î¥cÖ­hبaÏ¢bÌ¥`Ы\Õ©eÕ©m×°jÜ´iÖ°dÕ­bجfײkܹfº^à¶pÞ¶và´xà¹tá¿xã¼|á¹zâ»}çÀ‚åÀ…æº}ä»xã¿}ä½{âº|á½~à½~ã¸~äº~ã·zݲpØ­jШdÒ«jÜ´vß»vã¸yæ·€ê½~è¾~è¿‚çÁæ¿zæ¹vÛ±rÛ¶qâº{Þ´tà·tãÁ|ãÄ€ã‚á¼vâµpß³sàºrå¼sä»}ä»}ã¹vå¸pä¿väÀ|è½}é»xß³rݲpÞ¶rÛ¶yà¶|å·å¹{à¶táµrä¸rá·pß³rá±mß°nß±tâ³pÝ°e×£\Õ¤\Õ«dÒ¦eÕ¨iÛ±|ß²rÛ°fÞ³ná³lÚ°kÔ­p×­sÞ¯qá´nݳn߯oà±n߯r߬lÙª]بcܪlܨjà²uã·{áµwß´nݲqݳvݯmÙªoÛ®xà¶xáºvá½yâ½yá¸vßµzâ¸{àºzß¼t߶sßµqá·qà¸s߶uà²tÙ¬jسtß¹vܲhÛ²m߶sÞ´qßµtâ¶vâ¹uä¼tä·tÞ¶lÞ»kà·rߺtà»sà¶uà¸~Þ¶{ܵrÞ·oÞ¶uݹzß»zÞ¹qݹrÞ¸}Þ·vÜ·tÞµxܵwܹ{ߺzÝ·oÙ³pÙ²rÙ³oÙ°qׯvÙµzÙ´tزtß·wÝ»yÙ¸~Ü´sܲoÚ­pÙ°jÞ»qá»yÞ¸tݸpÞ³jÜ­cݪeÚ¬gÙ®fÛ®jÜ­gתcÒ¦bЧaΩdΩfÒ¬fÕªfСZÕ¤ZÙªbÕ§[Õ¨VÙ«^ت^Ö­_ÕªaÓ¨bØ­cÖ¬cÓ¢\Õ£ZØ©ZÔ¤^Ö©jݳnÞµrÛ®oתhØ®lÛ±oÛ°f׫iÕ©kرjܸrÛ¹vÛ»s߸uÝ°rÛ®nØ®qÓ«nدkܳrÚµpÚ³fÙ¬mÙ¯oزgÙ±jØ°iÙ±iÜ´rÛ¹nÙ³gتcÕ¬bÓ«dÑž[Р]׬^ت`Ó§dÔª^ج_×±fÖ¬dتgÛ­bÛª\Ô¨`ϧbΩ^ͨYÔ¬`Ù±gÙ°k×®hÓ©eدmܶjÙ·iÛµuرsÕ¯kÚ³pݵu׳pÕ³pسuسtÚ³sÖ®qÓªo×­l×±g×´mضqصqÚ¶tÚ¶wÚ³uÛ±qÓ®mÏ«iÓ¨h×±tÙ¸|سvÙ¶uÛ¶qÛ¹oÝ·nÛ·rܹtÖ¬fÌ¢^ʨaÔµoÙ´sË«hͲkÛ´xÙ³tÖ¶tÙ°tÙ­kÛ´mÛ¶qØ°mسmÙ¹qÛµrÝ·sÝ·oÙ±lÞ·tÞ¶tÜ°iÛ°oÔ¨oÌ¢hÔ¬iÛ±kÊ aµ“TĤ[ÙµkÕ®mÕ©jدnÔ¬kÖªeÙ°fÖ°hÖ¬iÜ®mÚ²tÚ¯sÜ­kدiׯpÙ­pÓªfÔ¨cÙ¬gÒ§bΞ^Ñž_Ò¤bÖ¬fÙ±h×­iÕ©eÒ¢^ÒŸ`Ò¤bѦ]Ô§^ת]Ò¢UÏ£Z×®cÓ£`Ç–ZÀ™VÈ \Ô¤kÑ£kÉŸ^ÄœVÈŸ^Ñ«eЭeÑ«kØ°mܱrÖ­mÇ£^ÈXÌ¡^Ç£`Ë ]Ò¢ZÕ«cÕ±mͧbÄžWË£XË¢[È ZϨeÕ¬l×°lÛ°jϤeÅšVÅ—LÃXÈŸbÏ¢`ͤ[ÔªjܯvÛ²uÛ°nÖ«dÖ¯m×°tѪj˨[Ì©[Ô²jܸsÞ·vß¹uÞ·nײpͨhÆ `Í©fÍ«fÍ­hÔ°lØ´oÕ²sÑ­tÏ«jΪiÓ«nÓ­l׳qÞ¶qÝ´qÕ²qÓ²oÙµsصpÕ°hΣb̦jÓ°s×±nÔ²qÚ¹u߶rÙ­iЪeÒ¬oÒ«mÒ®hÙ±i×­iÓ­lÓªgÐ¥aÕ¬hدjÕ¬fÔ°fׯkاkتeØ­c×­cرbЬZÇ¡_ϨiÓ¬_Χ^Ò¬nÕ¬iЩ`ȧ\Ë¢_Ò¦cÔ«_ÕªgÙ®f×®aÔ©bÕ«gÕ­i׬fÞ­_¾–ZÛ°nÞ´sà³nß³nß´uá´q߶mÞ¹uá¹{à¹vá¹sæºyâ¹zß¹|â¸{ß´{Þ³xá´uá´tÞ±tÜ«rß®nجkÖ­jÜ´sß¾yæÄëÈéÉé€æÁ€åÃèÁˆåº}Þ¶mà·xâ¹yܶzݼ€ãƃæÆ‚æÃç¾~ã¸|á¶vá¶oá¶pä¼væƒå¿æ¾xä»{ã¼{èÂ{èÂã¹yä¹xæ½zã¹váºzâº~æ¸zå¸xã¹{ç¼yå»rßµsß²sâ´oä¹pã´pß­cÙ«`Ö¬lÓ­oÕ®pÙ³p߸oßµrÙ°kÛ±ià±vÞ®tÔ«oÔ°uÜ´{Ý´rÞ´kà±iÝ­hܲhÞ²mÝ­mÙ«hØ©hÙ¨jÝ®l߶pÜ´kÙ°kÚ²pܯpتpÙ¯oÞ±p߯oÞ±sݱsßµqà¸rÞ´rá²tà´tÞµwÛ³q׬fÙ«kÛ¬jدmßµuÜ®nدqß¹xâ¶sݶoÝ»qà¹xâºuâ¼râ¹vÞ¸sݵpÛ¯qÛ²oáµlÞ´pÜ´oÛ´nÞµnÝ·pÙ³hØ­iܳvß¼|â¼á»|à»xà·sÛ²tÛ´vݵtܵvÞµxÞ·uܶoÛ²mØ´nÙ¶nܵmÛ¶nܶrÞ·tݸnÚ¶yݹ|ݼvÚ»vݹyÛ´zÖ®sÛ³và¶xݵrÞ¹rݽtÝ»nݵjܳhÛ¹jݶrß±oܳmÙ²mÔ¬hЩjÏ«hΫbÏ«eÓ¬g׫cק_ר`Ö«dÚ¯hܳe×®cÖ«eÓ«eѨcÓ¦^Ï¡\Ò _Ó¤_Ï¥`ÖªkܱjÛ±kÖ¬gΦbÑ¥eÕ£`Ô¦aÔ¨gÒ¤`Ô«dسmÛ¶kÜ´lݳoÛ±lÚ±nÛµtÚ±mØ«mÖ³o׶mÖ³nÚµoݸqÙ¶q×±oÙ±pÚ¹vݾ|ݼuÛ¸mÙ´p×µpصkÒ«gЦeÒªaÓ­dÔ¯cÖ®kÙ³oÙ±eÕªd×®kׯiÔ«bФ]Ë¢`Ì©e˦gÈ£dÓ©hÚ±kØ°fÔ§YÕ§WÚ­ZÛ¯`׬fÖ¬f׫gÔ¬fÖ¸qÙµoÚ¯nÖ²l׳nÙ®m׬hÕ¬iÚ­oݵsÛµnÙ°hܵjÚ¹nܹrß¹yÙ³rÕ¯gÒ©dÌ©cÒ®dÙ±pÚµrݸqܵtÚµrÙµpÛ´lܲiÓ«hͬkÌ©fÑ«hÖ³tЯiέmÚ¸~Þ¸zسoÖ³lØ®jÙ°kÖµrÕµvÙµtÖ³oÒ®gÚ°oÚ®pÖ«lÙ´sݹpÛ²lܲjÖ¬j̦jÑ­qدp΢f½˜[ÃaÓ«kÕ­bÖ¬kØ°oÕ®gÖ°jÚ²jܲkÛ±qرqÚµnÝ´hݱlÚ±qØ°lÖ³oÕ°m×®jÚ´oÙ¯gÖªbÖ±m×°nײkØ·oØ®hÕ¨]Ч\ÓªdÙ±eÖ¯jÖ®jÛ¯e׬bײeÞºsÞ³mקbÆž]ÁžYѦ_Ö¨dΧ^Ç ZÄ›^Î¥fÓ©cÒ«aÖ®lÞµuÙ²jÒ©dÓ¬nЬfÈ¡aʤgÏ©fШfЫhÌ©bÈ¢\Êž`Ëž^Ç›]ÈžaΦdÕ¯lÔ¬kÊ¡\¿›P¹‘M»O¾–SÅŸ^Ì¥bÑ©_ÓªgÙ¯pÜ´tÖ²qÕ°j×±eÓ­aÍ«bΪ_Ó°jضwÛ³qÜ°jàµrß¹rÓ¯jÆ£cÍ©jÕ²qÑ®kÔ³oݺzÙ¶sÔ±kÌ¥eÏ¥^Ô®fÓ¬i×±jصkÙ°jÝ´rݸ{à¸zá¼xÝ´nÕ¨aϨeͦbÓ¨dÜ´oݺuݵtدhЩ^Ó©bÓ©bÑ©bÜ°hܲhÖ®cÕ®eÒ¬gÒ¬eÕ¯mÕ¬oÓ®nÕ³pÖ°j×°n×±qÖ¯h×´gÖ®dФaΪfÍ©aϧfÕ±oÓ®gΧ^ͨaΨcÓ©`ЫbЫdÙ²lÖ°gˤ\ѧ`Òªg̪cÕ®\»—\Ö®dݱpݬnÛ«oÙ¤mݧhÞ®mÜ°qÞ³oÜ­iÚªnâ³rã´p߯tâ±uß±mà³oãµuÞ³oݲná±và°uݪjÙªk߶|å…心åÄ€äÅ|ã¿yåÁãÀ‚å½â¹~Ú¯và¶tá¾zâ½çÄŠéȈèÀ‚â»|Þ¼yà½~ß·{Ú°pÙ²kß¼wåÂ|æ¿}åº~ÞµtÛ´vß½yã¿}漂å½à»{à¾}ã½ã¼€å¼~ä¹~漄é‡濂ã¸w߶tá·sä·rã´táµpÝ°lÖ°sÓ³qظvã¼~êÂ}éÂ~á·|ß·wáº{Þ³uÛ´rÚ»~áºä¶xá·wâ·qà²já¸qä¼uà¶sÙ°nΦgÍ¥`Ù¯cã³oá°mݱjܯlÜ«jÖ«mÙ´qݸmÚ²iݳná´pá²qá²râ³nä³qÞ±rݱqÛ²pÖ©gÒ¦fÕ¨lשoܳnà²hÞ¯kß±tàµvà¹qߺoà³pá±pÞ°nÞ²rà³rá²oß±kÛ±oÛ´oܲnÛ­oÚ¯kÛ²kݯhÝ°kܲpݲoâ¹sç¾~绂翅ã¾|Ý´oß·sß·rݵrݵpܳmÛ´rݶuܲjܶhß¼nâ¼uåÀzå½uà·uܶsÜ·nÞ¶oãºtáºuÚµpׯnÓ±pÕ¶pØ´sܸ{á¼zß»vݺqß¹pà»sã¼xà¹wݹuà¸sÚµoÕ´mÕ²lÔ²tÕ²xÚ´rݲqׯjׯkܳsÞ·rÞµsÛ³uݶtÛ¸nܳmÚ¬jÖ¨fÕ¨cÒ©iÖ®oÙ²lÛ´qݱrÙ®nÖ¯f׫aÕ¤\Ô¨kÔ­hÒ¤`Ò¥fÕ§bÕ¥^Õ¥ZÕ§]Ô§^Ó¨[ج`Ù¬eÙªaÛ¯dÕ±lÕ­pØ´lÛµoܲuÛ³qÙ³qÜ·oܹr׳xÙ³rÚ¶nÖ°sÖ®pÕ®hÒªiÔ¯rÖ³w×´vÙ·uÚ´uÙºzÙ¼€Ý¹xسpÔ¬oÔ­pÑ®tÏ°wÓ°lϪeÌ¥nÒ¯nÖ°hЧbΨ_Ó«bÕ«eÔªbÖªeÔ¤_ЧZÖµiÕ°fÕ«cׯgÖ¬b×°cÖ¯cÔ­eÚ³qݳrÛ³kÙ±lÙ¬kÞ­là´mÜ·nݸrÛ·nÓ°gЫhÔ±mÙ´oÝ´qݶuÙ²oÚ³pà·rÞµrÙ¯oÓ©jÌ«iÏ«fÑ©fÓ±mÑ®lϪmÙµs߸rÛµtײoÔ­hزsصqÕ³fÙ´r׶sÓ±jÖ®nÖ²mÕ°mØ®pܵoÚµtÙ´xÕ³pΨfЫfÖµmÌ£f¼R»“QÅ›\Í `Ò¥`Ñ«cѱgÓ­eÔ­gÙ´mݵnÙ´nײiÕ¬eÖ®oÖ¬nѪiÏ©jÒªdÓ°hÖ³tÚ²mÚ±hÛ¸tà½uݸvÖ®qÖ§hÓ¥dͪfÔ³lÚµnÙ·mܵsÞ²yݳvà¹uà¿}ܹ|Û´tÏ©lÂœaÇ¥aÒ­fÏ¥`ÇœXÁšYÇ¡dѧk׬u×±tܸuݵuÙ³uÚ³qÖ®eϨ^ШfÓ®lЬdЪeѪfΦ]Ì¢]΢eÌŸ^ÈŸZÈŸ_Ô¬h×±iÌ¥c™[»‘P¸”N¸”O¼•OÆšTÌ¡ZΦaÕ¯jÛµmÛ¸sÙ³tÒ©e̦_Ê¥aÍ¥bÕ±gزiÕ«hÙ²l߸uá¹tݵlÑ©jͨhÓ°iÕ¯hÙ²tÞ·wØ°nÒ­jΦaÊ¢bϦhϦfУgÕ©c׬dݳxã¾yݶmÛ±pܵlÖ©fѦeʧYУ_زpÚ¹jÙ¬eÔ¦aΨZÓ©cجfЩ]Ô¦cجgÔ³eѳdÖ°g×®lÔ«nÓ­mÔ®e×­gײqسuÛ°nÙ±k׳jÙ°kÖ­jϧdΩcÔ¬jÕ¬gΩ`Ë¢aË `˦bÒ«fÔ¬fÕ­jÙ°q×­kΤcѨiШgÍ¡dÑ£e³”eܪfà®gÞ²mÜ®hÛ¦hÙ§mÙ¯iÚ®iÞ®mݱlÕ¨eÒ¦dÔ¦dÖž`ÖŸ^Ûªgá³oáµsá¯sá¯uà´sà±jÝ«gØ­lÛµràµq߶rßµsá²mä³nå³pã¸væ»{ä¼xÛ´x߶{â¹ڸݻzá»~᷄เà¹{á·zà¹{ßµyÛ°rÝ´tå·zã¶|ãºzâ¹vÞ¶vÞ·{ߺ€â»~â¹}à¸{â½}ã¼}à·uá¶zß³~ߺxæÀvã¼{ßµvß²mÙ­hØ«eݶiá¸pÜ´wÙ¸vÝ»sâ¿{æ„éÀ‰êÀ„ä»|àº}äÄçÄå»}ä¹zå¼|ä¹{à¶zá¶tä¹så½uå¾wá¹zݵvÓªjͤbÕ­ná»uá·rß±lá¸lßµoØ©nݱtà¹vÞ²uá´xä»|߸sÞ°pß°yÞ³vß±oá·uà¶oÙ¨cѦaѪdÓ«jÙ­jÛ®g×®fÚ³gÞ²eÛ°jÙ­hÙ¯gÜ®hÚ©`Ø«aÚ¬bÚ«e׬fÔ©`ׯjݶoÙ®jÕ¨eÚªaß°jÞ°qÛ­mÚªgÙ²iàºoæºpæ¸oä¹sà¶rß³qݶqÞ·ká¹lÞ³lÜ®kÞ±lÝ°mÚ®lÜ°râµsâºzä¹{á±lÙ²lÛ´oݵxÞ¹v߸qÝ´x×°sÖ°qÙ´zÛ´}޺߽{ܺuÞ»{à»}ݹ}Ý»~á¾}ã½{߶pܳmà½zãÂ}â¹|à¶â¹yݵqÚ²nÚ¶tÚ¹zܺvÛ¶rܶuÞ·yà¶vå¾uâ»rÙ³mÖ±l×µyÙ´xݶvÞºyݸrØ´nÙ²oܲlÖ«_ЪbÓ®nÕ©iÑ­`Ó°eÓ¦gÒ¦iÔ®dÒª\ΣXÒ¡XÕ£bÕ©dÙ­fÙ­lÔ¨eΣ^ЦeÕ«jÖ­hÖ«jÙ¨h׫gØ®mÚ¯nÙ­jتiØ­oÙ®mÖ¯hسpÙ²qØ´qÚ¸vظnܹwཀÝÁ|á½~Ý»‚Õ¸yÕ´oÖ³uÙ´u׳oάhÏ«dØ°eÑ«fϦdÖ­lسtÙ³kÖ¬gÏ¥hЧeضnÓ®dÎ¥^Ó¬iÔ®lׯfׯgÕªgجoرtÔªeÔ¬cÖ«bÕ¤ZÔ¨bÖ²jÛ°mܱmÙ±c×®`Ö¯hÖ±h׳cÙ³hØ­fÖ«gÛ²nݲlÝ°qدkЫbЫhÓ«jÔ­kЬfȦaÏ©gÚ³qݸtØ´lØ°fܳnݳkÛ°mܲrܱs×±yײuزmÙµtÛµrÛ²oÚ¶tÛ¶sÙ¶vÑ°pÏ­mÔ²o˦b¹–T¶‘W¾˜[È¡^Ì¥cΧeÔ­gÔ«dÓ«cÖ®eÙ´gÙµoØ®nÕ¯jÕ°iÑ«d̤cÈž]É¡VË«aЮjײjÛ´pݱtß¹rܸsÕ¬qÔ­nÕ²jÔ­fدkÙ°n×±tܵuÛ¹o×µrÚ°rÙ´qØ´xÙ³tЮkȨdȦbË£gÇž^Ä[Áš^Á™_Ë¥fÕ³oÖ²pÚ±wÛ¶zÙ±vÜ´sݸjÖ¯cØ°fÜ´jÖ¯jÓ«hÕ®jÕ¯oÑ«oÒ©gЩaÇ¢^Æ `ÕªmÚ±oÖ¯eФ^ÇZÁš[½—V¼™O¾™TÈœ^Í¢aÓ§cݵmß¹oÙ±iÖ«fÒ®cÌ©^È¡cΧgÒªaÔ©aÜ°mÝ·rÙµjÚ²lЭcÅ XÍ£aÕ®iÙ²oØ®oתlÙ«hÕ¦`Ê ZÏ©cÓ©_ÊŸTÈŸUÍ¥Y׫dÞ´sÙ°gØ«bرk×°aÖ¬`Ï£\È `Î¥jÔ¯lÖµqÖ°oÔ­iÒ¯jÓ¯gʧdÅ£iϬhÖ®hÏ£c̤cÕ¯jÓ¬mѦkÔªdÕªdÒ£fѧfÕ®fÚ¯gÙ­cØ´eÙ²eϦ[ʦXѨbϤ\Ë£XÒ¦`Ï¢]ÉŸ`ЪcÓ¯fÔ«hÕ©kÖ©jÖ¬hدmÑ­fÇ¡ZÌ Y³’^à²sÝ´wݵr߶rá°qà®nà¯má°oÞ·rߺrܬhПcÍ^Ê™XÊTÔ©^Þ¬kÞ­oÜ­lá°lá¯l߬iܨfÖ¢]Ö¥aÙ¥`Õ¤^ר`Ú¥\Ú¥ZÞ«b߯lá´pä¶vâ´yâ¸uà¶rÙ¬pÚ²tà¶{á³{â·|á¶yàµqÞ´tÞ´uß²|á±|ã´vßµzÞ´€à¶{à¶x߸|à¶{áµyܳvØ·rݽyÞ´xÞ´x߶|Ú®qÖ°i߸tä·zß´wØ°uÖªmÖ®jÚ·{ݸ}ظxÞ½åÁçËçÄ翇꽆黂㼀ãÂæÃæÁ€èÀèÀƒé¿å»{â¸vä¸|湀躀乃޺ݴzتsØ°{á¼€ãºwß²tÞ²rÞµtÜ°wàµyà¸{ܳrÞ»tãÁ…à¹ßµvå¸~à´vܵnáÀvæÂvâ»rׯpÓ«oÝ­nß±oÝ´oÚ¶pÛ³lݯmÙ¬nÖ¨iÕ¨j×­lÛ«gרjÖ¬qÚ®pجlÓ§iÕ«oÞµuâ°lÛ©hÚ®hà±lܬoÖ§iÖ§eÖ¦fݪhß­cÙ«eܯeÚ´dÙ°eÚ«gÝ®rà±tà²lÞ¯iݲjÜ­gÕ¢fÑ¡gÕ®oÙ±n߬j߬mÙ¯lÚ±jܱtÚ®rÙ°lÙ¶pصoÛ¶xà¹zÞ¸tݺuàº{߸wà»uá»xß»{ݼxݼ{ݼݹwÚ¹xã¾~ê¿}æ¿zä»|ä¼xß»pݵwÞ´yàµtÞ¹rÛ¹oݹrݸtÞ¹væ¿uäºqݲmÞ¸qß¿€ã¿~å¿xá¿vܺrߺs߸vÙ³rÒ¬jÑ­kÖµqÚ³oݶrܹrÛ²nØ´sÛ¹sܳm׫hÚ¨kשjÓ®hÕ¯gرgØ­lË¢iÄ¢dÍ©dÕ¦fÕ¦hÒ¦eÕ¥dÓ¨_Ó¬gÚ®r׬kÒ°kÖ¯rÜ«rÛ¯pÙ¯gÔ«eÓ©fÖªnÙ±tÛ´oݵqܹ{Ù¶zÙ¯uÙ¯uØ®vØ°zÙ³tÖ°jÖ­jÖ¬pØ«k׫kÚ²oÞ¹qÞ·rÚ¯tÕ©mÒ©gÓ®pͪcШeÖ«nׯmÚµvÙµvÕ¯m׬mÛ¯n׫nÖ«oØ°j׬fѨfѨkÕ­qØ°kÔ«]Ôª[Ù¨[Õ©]Ò®_Õ¬]Ô¥aϦcÑ©bجaܳgÙ­fÕ¤`Ö¬`×°jÒ«l̨aÈ ]È›ZÏ£\Ö®bÖ°fÝ°kß³oݶnÙ´pÚ²uÞ·uÙ´sصp׸rÙ¸tÚµsܶvݳzܳuܶ{Ø´wÔ´oÖ³nѪjÅ¡Z¿šXšcͦfϨiѪsØ°pØ´nØ´oØ°lײoÖ³qÔ±r׳qÚ²oÖ¯pΧhÈ¢jÇ¢mÌ¢eÍ¥bϱk׶qزoÕ­lجgÕ®gÕ·nÖ±iѦjÒ­qÒ¬m×­oܵuÛ´vÜ´qÚ´pÙ¯uÙ¯t×®qÓ¦eˤZͪ`ͦ`ÃœVÆ _ÈaÀ—WÁ ]Ñ«jÖ®sÖ±yÚ·|Ý·uݸp߸sÚ²jÙ²jÚ´s×°j×±cصlܶsߺxÞ·pÔªcÆ¢Xá[Ыcܳoá¶tܳmدmÕ¯e̦eØe¼‘WÁšXÈ¢aÌ«eØ´m߸kÛµkÛ²tزmÊ¢UÀ•QÆœ\Ò¨bÙ«iß³oܸnÚ²eØ­aѦbÉœVÈ™UÐ¥aÙ³k׬i׫iÛµjÙ«`Ϥ]Òªg׫dÍ¥YÉžWÍ ]Ó«eÔ¬eЩeÒ¬mÔ­sÒ«oÌ©h̨gË£h̦hÓ¬jÙ¶rÛ¹yÙ·vÔ¯oѨhЧbÊ¥]ίgݹrÕ§`ÊžYÒªjШdÏ¥\ÕªhѨaÍŸUÍ [Ô¨\Ú°aزi×µnÕ®gΦ[ͦ^Ì¢bÇ \Ë¢ZÓ«eЪeÍ£dѨdÒ§fЦhÕªjÖªeÚ­ká¶rÙ¬dР_Ï¥aµ“\å¹zâ·{à¶zá¸xâ»uã»uä¹wå¹zâ¹xá»xÞ²vÖ¥kÒ¦kÔ«f׫fÛ¬kß°lÞ±iܱhá¯gä±jÞ®jبcС[ÌžWΠ[ÐœXÏžVРWÕžYÕ¡`Í¢WÒ¢WÛ¨fÝ«hß®nܬqÙ¤fÚ§gà±oá³sÞ±sà°sÞ­sÚ¬sÝ®qÝ°lÞ²nà´rÛ«pפnÚ«nݯnܯrÚ¬rÞ¬pÚ­lجoÜ°xÛ¯uÞ±xàµzÛµvײqÚ´vá¼{㿃޹zÕ±qЯrÒ°vÒ­rЯqܺ|çÀ†çÂŒæ‡ãÀ†â½ƒä½å½|â»â½ƒæ¿}æ»~ã¼ä½ä¹~âº{å½{æ¼€ã¼~äº}ä»á¹}ܳv߸çÀ…è¿zã´sß³q߸uÞ·{à¸~㶀ٰyÚ·yåÀãºy߸xâ¼|àºuߺ|ä¾€æÂ}ä»{á²yÞ´tâ¼{å½á¸yá»zá»}ݸ}ßµyÞ°wÖ¨oÒ©iÕ´lÙ´vÛ·…áºáµrÕ­nÕ¬pÛ±xßµwݲoܯoá²tà²t×­gÒ¨`Ô«jسvܳv×°rØ®mݬfÛªlÕ§hÖ«fÞ³oß±rÜ®mØ®lÖ­hÓ _ʘ^ΤcϪaÓ¨dÚ¨hØ«h׫hܬkÚ«hקiתlÖ°gÚ­hà²nܳmÖ±hÛ´oà¶vá³uà¹yß¼wß¹tá¹uß»uݸsݹtã¼}è¼}â·vß¹uݹtÜ·tÞ¹xà¸{Þ¸yܸ{Û¸yÛºtß¼yß¹yܹsܶuÛ·rܺpÞ¸vß»~῀߿{ݼuáÁ}ß¼~Ö¯xÓ±uÔ¶rÖ·oÞ»uá½~Þ¹yܸvß¹xâ·rà´nÛ±rÚ³pܳoܳlØ°eÖ­hÛ¯lШeʧiέoÔ°nܱnØ«cÓ¨aÔ©`Ö­eÚ²jÙ¯gÕ©kÖ¬kÖ­h׬fÖ¬iʤ\Ê¡WϦeÓ«gÕ®eÖ¯kÖ¯rÕ®pÑ®iÖ¯j×±uÕ±pسoÙ²nÖ«dجjܳsÚ³n׳n×´tÙ¶sÙµoÖ²rÒ¯uÌ©fÄXÊ£\ÒªdÓ¬jÙ³qÚµtدrرp×´r×±vÕ²uÓ³sÓ±mΪkÒ¬rÚµqÚ´lÔªbÕªdÖ­gدiÚ¯iÓ©^ͨeϪhÏ©^Ï«i×°kÛ±gÖ¬eÕªfÓªdÒ§_СaÉŸ_Ê¢^Ê¢]ÈŸTѨXÕ«bÕ§[Õ¯XÔ¯`Õ¬dײfÚ²j×­jزpÙ´oÙ°gÜ°nݳoÛ²kÛ±eÖ¬aÕ¬dÖ²fÓ®eÒ©iÈ¢h¾šYË¥aÕ¯n×°jÛ±hÚ²rÛ³vÜ´q׳pÑ®mÏ©dØ®jݶqܶqÖ²nѬjѧg˨cÅ¡`ΦiÛ¶oÚ´sÔ­mÑ«fÒ­iÕ²rÕªiÑ£eÕ«mÓ­lØ°gÖ­eÖ©iÝ°uÜ°qÚ¯pÚ°v×­nÓ©dÍ¥\˨cÄ¢`À™^Ë¥eΫlÅ¡eÁœb˦c×´gݺuÞ½~á¾á¿xá½vܲqÔ¬fÔ­eÖ«eÑ©eϨi׫iÚ°pÝ°pÓ¤a¼–Q¿˜U˨]ײeß²hÞ²dÜ·nÙµnÓ¨eÈœ[¼’K½—TÀœ[Á™^Ì£^Ò¦`ЦjÒ«jÎ¥]»•S·ŽN˜TÓ¨dÛ°fÚ³hزf×°hØ°kÒ§^ÊQË›VÒ¥bܳmÛ³l×±iײhÖ®dÓ§`Ö­dÖ¯gϨbË£^ΨeÒ°nÓ¯kѬiÒ«hϦdÌ¥hÊ¢fË£dШfÍ«hέjÕ®oÕ®kÒªgÌ¡cÈ›]Фdϧ`ϪeÛ¹rÕ«^ÉV̤`Ò«^Õ­hÙ°pÖ²eΫ`̪hаhÕ²jÔ¯mÒ¨jÔ¨jШ^̨^Ϋcʤ\Ç›^Ï¥lÖ±lÙ²k׬gÒ«aÓ¨dجdÖ­_Ò©aÙ¬hÚ¬iÔªhÑ¥bµ[èÁ|éÃ|é€濅æÀƒä¾{ä¼迆輀å¹äº}âºtä½{æ¼~ä¶{ã¹}ã¼{ä»vã¹sÞ¸vÛ¶vÛ°pÙ¬kÏ¥bÌ©fÒ«mТeΡaУ^ѧfÒ¨jΠZÉ›SÌŸ[Ó¦_ݪcà¨jÚ¦dØ«cÙ¯nÛ¯oá²oá¯gÛ­jÚªpÖ§dÓ¥hÕ¤lÛ¬iÞ§jÙ¡hÙ¬hß®hܪaب`Ù¬fبbÖ¦dà³tàµuÞ²zà¹{ß¼yãºzä»{ã¿…æŠ罃۫qΧlÔ³{×°{Ô¬vÛ¶z廃輄åÀ€äÀ€ä¼â¼|忂异ä¹y幃â·ß¸vâ¼zä¼~â»|ä»|å¾ã¿}à½}ä½}漂㿅伆澈æƒä¿â½€ä»}âº{ß¹yÝ´yÛ³vÞ·xä¸á·xà·uâ¶}ß´xâ´wåº{á¼ußÀyâ½zã¼zåÀ…èÁˆä¿ƒä¿‚ç¿…äÂä€翀ݲuÕ«tÔ®tÙ²{ߺ€áÀâ¹zà´nݲhܱmá¹wâºyÞ¶sß¹xá¶zܯoÖ«mÔ¯y׺}Þ¾uá¹uãµpâ¶pÞµ{Ú­xÓ®vÙ´tܲqÚ°j×®e׬kÚªkÏ£cÊ¢gϧgÕ¬mÚ®mÙ¬iÙ¬oÜ®sÙ®f׫fÚ­kÚªeצh׬mѪ_Î¥\ÔªcÚ«bݲfßµkâ²pß·rÞ·nÞ²qÞº{â»{à¹zá¼xß·|Ý´Û´sܹ{â»~ä¾zܺyÙµwܹ~Þ½„߹ܰsÙ±mÙ¸yظwܲkݱqزxÛ¸wߺqݺpÞ¾vÞ¸p×­lÓ°xÕµ|׶yÝ»ἂà¹wÞµrß·xÞ¸uÜ·qݹvݽtݹsà·tܱqÕ¬kÚ³sÛ´pزqÛ³vÜ·oÛºmرkׯiܱjÞ±sÛµvضqسnÙ°l׫kÚªhÙªgΨḑkͨlÏ«iجjØ©dÙ­fÖ­mѨlÖªkØ°mÔ³oÙ­oܯoݳmÛ±hÚ¯kÛ®iØ«hÓ©k×±m×±p׬qÛ®lϤiÅ™bÇžaÇŸ`Í¥cÚ²kÙ²m׳oÕ±oÓ©fÖ«hÖ²iÕ±iЬmÉ¢fΦgÝ·uݶuÓ«jÖ³iÛµkܱoÜ´uÙ²rÚ·vظsÓ­kÙ®uÜ·{ÛµvÜ°kׯkΪiÒªhÓ¨hÒ¥hÏ¥e˧^Ê¡XË¢_ˤ_Π\Ô¤]Ѧ^Í¢aÕ¦dÙ®bÔ¨aÓ¨iÓ­dÖ­]Öª_ÖªdØ©gÖ©aѨ^Ò§fÙ­nÕ«jÍ¢aÉš[šYÌ¥eÕ«nÖ¬kÖ­hÚ°jسj×±lׯhÑ«kͤdÑ¥`×­fÜ°iÚ°nÕ©jÍ¢^Å¢^Ú\ÇXÒ¬dÛµmÙ´nÔ¬jΧgΦbÔ¦fÕ¥jÔ¨dЪaЩ^Ò§ZУ\Õ§_Ø°dØ­kØ©f×®jÙ®nÐ¥aÄœT¿šPžUÎ¥c×­mϪdÁŸ^ŤgаmÙ´oà´rá¶qà»oä¾zܵtϦ^Ϩ\ϧXÊžTÊžTΡ]Ó¨dÖª[ÊŸU¾—OÙIÆšSÑ¡]Ö§`Ó©iÚ³cÞ´bØ©iÕ¥\ΡSÅ›V¿šV¾—WÅœZË WÌŸ^Í¢bÊ ]Ô]Ú\ÅZÏ£gײr×®mجlØ­sÖ®uÕ­kѪdÕ«kزsÖ¶tÖ²qÖ­qÓ°qѱnÒ­jÕ­mÒ­hάaШfÒ¬sÕ±uЧgÊ¡`ͤbФ`Ñ©bШeÒ¤gÔ¨iЫdÏ©^Ò¥_Ц`Ê¥[Ù\Ä“YΞXФ]Ò«cÛºnÖ°dÈ¡VÊ¢XШaÓ«eسoÕ¶qÒ³kѱkÔ²fÖ¬cÓ¯gÓ³mÖ«mÖ©gÙµkܹiÒªbÍ¢dЦiÒ¬mÙ²jÚ¯kÔ¬nÖ±iÛ¶qÚ°mÏ¥^Ò¦bÜ°pÜ°pÕ«]±“Uá¼}ä¹~ä»~â½}ä¸väºvã¾}â½ã¼ã¹„⻃èÁëÄ~ëÆ…íÄŠë¿ç»zå¸}߸vݹuà¶qݶuÜ·zÒ¬nÒ©gÛ´lرhÕ¨jÖ¬fسpÚ³uÖ«dÍ¢ZÊ ZÎ¥]Ù­iݲnÚ©cÔ¤fÕ­sسrݱkà²gß²fÞ­nÖ§jÏ¢bТeÕ§jÙªnÙ©kÜ«dݪbÖ¥aÓ¥]Ù©cܨfÙ­gà·pÝ°lÛ¬fß±oÞ¸uàºvß´rÛ²ná¸væ¹vÚªiÑ¥jÚ²yÞ¹„Ù³z×­nÚ´wã¹}è¸uá¶xá¶xâ¶yÞ³{ܱsÜ°oÞµvÞ³uá¶uå¼~åº~ã¹và¹wà½|ä½yã¹yá¹xá»}⽈俀â»zà´ݸ{á½uá¸zݵuÙµiÖ²iÚ³uÚ³y×°tÛµ{à¸|ݲtײwݼ}âÁàÁâÀ~ä¿‚ä¿ã¾~ß»‚áº}â»~â»ß»~á¿}åÁ~á»xÞ·u߸xÛ·vÛ¸yßÀ€Ý½{Þ²qß³vݹ{â»wãºtßµtà·uá¿zܹ{×°rØ®mزwÝ´wÞµmܸtß¹xá»vßµxײxÞ¹}àº|ݶuß·yÞ·~߶{ݳtÖ°oÓ±q׶sÛºsÞ¸qâ¸uß·zÜ·sÞ²pÝ®nÚ«jبkÚ«nÙ¬hÍ¡\Ëž_Ð¥gÓ¦eÔ©e׫fÙ«fÚªhدpÞ²tܲoسhÜ°fݲhÛ´nÚ²qÜ°rÛ¯oÙ³oÙ¸tÜ°rÛ³tÛ¶vÞ±pÜ´kÚ¹rÜ»zظwÛ¶wÞ¸vÖ³mÒ¯mÙ´sÙ´qÕ³qÚ³n×­nÔ±tÕ¸uÒ²~رzÞ¹wܸsÖ±oÜ·vÙºsÕ·vÞ»„Þº~Úµwà¸xÚ¶oÑ­nسzÛ¼xܾvÞ¹z߸tÚµvÕ®tÙ³hÛ¶nݶvܸvÚ¶nà´qá¶pÖ±cÔ­a×±kÔ®jÔ­jÖ¯nÓ¬hÕ«gÙ°oØ°oÚ­p׬pÖ¨f׫eدlÙ­iÔªdÕ«gÛªfר\ÓªZÒ«^Î¥\Ï¢dѦhÓ¤eÒ¤fФaÉ¢^Ä¡bÄŸ_Ç¢ZΪjÕ©nÒ¦eѪaÐ¥^Î¥bΩcЦkѧkÌ¢^ÊZÓ«aÙ°gÔ¨gЫjÑ­gÒ«eÖ¬f׬nÖ®x×´vׯmÛ´wܺtÙ¯mØ­tرpÔ¨iÈ¡c˧bÕ¬eÌ©gÇ ^ÉŸ\̦bÊ©aɨ^ͧeͤjÇ¡fË¢eÕ­hÕ¯hÕ«eÔ¬hÓ­`Õ«WÑ©]Ô«cÖ¨dЦeͦ`Щ]ͨaÈ¢[Ç XÈž\ТbÖ¬fÖ¯kÖªhØ©hÖ®kÖ¬mÖ©mÒ«oÌ£eÄšXÅšWÏ£^Ò§`Ë¢TÅ›LÁšQ½•R»JÈXÕ©lÖ¬mÖ±l̤gÁ—ZÉRΡ^Í¡`Î¥YÍ TÌœPТYÑ£^ΟVÓ¢[Ô§cÔ«dجbѧXÃœSÀ›SßTÊŸ]Ô¦eÕ¨dˤb¿Ÿ\ÀŸ^˪fÓ«fÒ¦`Õ©dÛ³rÚ±mÓ¤]Ô£XѦZΡQË›MÍœ_Õ©iÖ¬bÈ Y¾–UÀ•SÁšWÊ¢bÓ©iÕ­hØ°jÛ³pÚ³m׫gѧcͨbÔ¨cΧaÄ¡_ÈŸ[ЧdׯlÒ¬bÊ¡^Í¡cÈ£cÊ¥hÔªlÕ­kÙ­oÙ±q×°sÜ°pܵoÙ³mÖ¯jسvÖ®rÔªlÖ²kÔ°kѬnÔ±nÏ«kΧfϦeϧnÔ°mѨ\Π^ѤbÑ¢_Ô¦hÔªhЪ`Ó©`׬bÓ«eЧ^ΧYǧ_Ä£ZÀ›RÄ¡[ϧ]Ñ©eÚ³vܵnÑ«^˧bϨjÓ«hÓ¯iÖµrضjÙ±mÙ°vÓªdΨaÒ¬kÖ®nÖ­hܱpݹwÙ¶rÔ«fΨ]Ï«hÖ¬lÙ±lÙ´jÕ´hÔµtÚµrÒ¦cͦeײj×°fÓ«e²•bá±vä±r߯oÛ¬jà¯ná³râ¶tâ½yãºyã²uà³và»zã¿è¾{éÀ|ä½á·yâ´rß°tà¸}á¿|á¿|à¹~Þµvà¹väÂæÀxâ¸xỀ俄径â³yשmЦjÔ§hÚ®qß´{à´tܲuÛ³}Þ¶yâ·uà¶yÞµvã¹vã¸vÙ¯mÕ©kÚ­rß®rá°nß³nÙ¬kÕ¥dÖ¦gÛ¬iÛ«gØ©kÞ®pá¬mÛ«iÞ°oà±rà°oß²rÙ¬mÖªiÖ«hÔ§gØ­nݲxÝ°pØ­hШlΩj×±ná²vÞ²vÚ±mÙ®gÜ«iÛ§lÖ¥cÓ©bØ«iÚ«kß·zå¼yâ´qݹtÞ»xâ·vßµyݲrÚ±oÙ²uܵrݳpÜ°oܱqà²qÛ°pØ­jØ©fÕªmدnÖ¬iЭrÙ´~á·}ܱsØ´{Ü„ã†æ‡åÆ€ä¿|ã»|ß¹~Þ¸{à¼wá»|â¸xá´wᴀ⻂äÀ‡ãÂŒã„àºyÚ´vÚº}Þ¸}ß·yß¹váµvݸqÛ³iÚ«jÙµtݼzÜ·uÙ²q×°qÚµvÝ·vÙ³yܵvá¹sâ¼{á¹{Ú±kÞ´pä¹zå½zç½}æ¼{ãºwæºzá¹}Û¹{߸sß´và¸yâ»|߸vܶoÞµr߶r߸rÞ·wâºwà¶pÒ«hΨcУgѤhЦgФcÓ¦^Ø«`׬jØ®fÚ®fשfÔ¥^Ö¨b׬fÕ©dبa׫eÖªc×­fÖ°iØ­mÛ¯kÜ´mß·oá¶oÞ¸vÛ´vݶvá»xصqÕ³vݺխmÓ«iÛ»vØ´pÕ®rײxÕ°p׳oÞ¹zà»xײmØ´oܶtܶzß¾ƒÞ½‚Û¸}ܶxܵuÖµrÛºxݼvß»v߸yÛ·wÚ¶xײxÙ¶tÙ¶tÙµuÜ·uܸxÙµvײpÓ«iШdÒªgÖ¯kÚµsÚ±rÖ°kÕ²nÛ´vÚ´tÚ¶rÞ±uÙªjجjزnÙ´nܱnدnÙ´qÙ°oЩjÖ«nØ©iÔ¨cÖ¬jÒ©cУUÒ¢YͤcÊ¥cÇŸbÅŸaʨh˧iÏ¥aÒ¦^ÎWÌWΟWУYÒ§eÏ£cÊYÈœ[ΞXÑ VΣ\˦aȤYÈ QΤ\Ѧ`ϧaϦaÚ±jß²hا^Ö©cزqÕ¬oÍ¢f˦iÑ«oÓ«rΫpЬoÕ²nÕ±kÑ«hЫlͬjÈ¥dΦoÕ±vײnÚ±pÙ±yÕ¯rÓ±nÔ°kÓªfرnØ°jÍ£`Ç¥aÈ£eÆž`Ê¥^Ï®fÓ®fÖ²jÕ³qÖ³pÖ´pÖ²oØ°qØ°kÖ¯fÒ¨jÊ `Æž^Ê¡bË \ΟXÍ \Ê ZÙR¾–QÅŸWϨbתh×­lЯlÅ¢_Äš]ÅœdÅž`Ëž\Ì ^Ë¢\ÔªcÒ¨aÍ¡UÑ©`Ó­jÕ¬eÖ²gÓ¯iÇ aÇŸ]Ë¡]ΧdÖ®rÚ¬tϨiÀž^¼˜YÄ¢`˧dÉŸ]ÊŸ`Ï©kÕ­kÖ§bÏ¡ZÏ¢`ÕªcÕ©^Ô¨fØ´kÙ²iÉ¡`½›[Âœ`àbÊ©fÓ°lÙ·tسqرnÛ´v×­nШfÊ£hШeϨ`Æœ[È`ЫgײlÔ®hΨcЫeË¥\˦hÕ±uÚ³nÙ±mÖ°jÒª`ЪeÕ²iÓ«eУ^Õ¬iÕ¬jÕ¨fÔªlÔ¨hÚ«k×­mÒ©iØ©gѤhÍ¢hÓ«hת_Ö¨]Õ­`Ó§[Ô¨hÕ°uׯl×®iÕ®pÜ®pÛ±lÒ«hͧ`ͧZÇžRÂZ̧bѬfÖ²qܵyÛ³rÕ²iÑ­gΪjаpصvÙ·vصmײkЩkÏ£hЫfÑ­mШiѯlܶx߶vرiÒ§dÒ£gÔ©kرrÚ³sÖ±lÕ°pÖ¶nÓ´hÒªoÓ¦jÌ£cÎ¥f´–eà·gà´hÞªgà¨iã¯kã³hä³jä²jã±lß°oÙ¬g׬fÜ®oã±rä·rã¶vß°sÛ©kÜ°rá¹}ä¼}ã»ä¸æ¶zç¹zëÁëƒç¿éÃêƉæÀ‰å¹ݲsÕ­rÚ±vܵváºwã¸~á¹â¾~â¼{â¶{ä·|ä¹vã»rä»wâ¹vܵrÞ´tâºnâºrå¸tã¸oݱmÜ®rݵqݳoØ©eÝ«lâ³tá²pã´pà³nÛ¬kÝ®oÛ®oÓ¨lÒ¥jרkÜ°sÞ³rÞ±hÝ°jÚ¨hΟ_Í¥`Ô¨gÛ¨kÚ¬hجcÕ¤_Ñ¢\Ð^Ι\ПaÓ¥hÛ®kà²rÝ°sà²uà²xܯsÞ°rݯpتg׫cÙ®mÛ®oÙ´eÛ´kàªsà«mÙ±gÔ¦dÒ¢eØ«iÔ©fΧgÛ­lÛ°sÙ±wÜ´|Û½{ß½{æº{ã½}Þ¶zÞ³qÝ·yÛº‚Þ½zß¹zß·wܶsܸ㼄ã»|á»tâ»yÞ´~Ú¶r߸xá·}ß¹zá¿ßºrÙªiÕ¦oÖ®nÚ´vÛº|Ý»~Þ¹~Ý»„â‰ãÃ}ÞÀ{޻ܼyÝ»uá»~ݼzÚºzß¼ä¼åº{ã»~â»~ß·yà¿äŠ⼀޹xáºzã¼zÞ¹|ݹxà»zá¸zÞ¹rà¾vç½zã»vܹtÚ²sÙ±mÕ³k×®kÖ¬mѬnÓ¬qÙ°sݬgÙ¨aÒ¥`ΡcѨgÙ°iÛ«_Ö¥ZѤ^Ñ¢YÒ¦ZÒ¤^Ó¡[Ô©b×±jÜ®fÚ®hÛ¯kÙ«oÙ°sÚ¯pרiÛ²yÝ·ƒÑªqÓ¯qÖ·uѨgÒ¥fÚ³uß·w×´q׳vܲs×°hÖ²pسuÖµwÛº€Ü¼Ù¹wÙ¸wܹyÛ³sسxÛ¶uÜ´qÙ¸zÙ¸~Ø´zزrÚ¶qÙµsصuÛ¸vÜ·yܲrÕ­gΩfʧjΨqÖ±yÝ»xÞ¼xܸvÜ·wܺ{Û¶uݳsݹuÚµnÙ°hرiײnÝ·wݵsܳgÜ´qÕ¯sزjÞ·pÝ´jÛ³fÕ­mÕ­lزk×­gЦaÉ¢aÇŸbȦfÏ®lÙ­mÔ«f̤\Í¡Z΢\Ó¥_تfØ«`Ó¦]É ZÇZÐ¥cШbÉ \ÌXËœ^Ç^Êž]ËŸ_ËœVΟ^Ñ¥eÔ¤_Ø©jÖ±oÖ³mÕ±rÍ©kÑ©kØ®pÖ³nضsÙ¶uÖ¶sÓ±tÓ¬sЩnÇ¥eË©kÓ³sÔ°nÔ¯mØ´u×°tØ°wÜ·zØ´rدtÙ¶wÓ°q̦jʦlÈ¥lȧgÌ­iÓ²sØ·wØ·rÖ°nÔ°mÕ³qÚ´{Û³{ׯuÕ¬kÒ¬kÒ©mÓªmЫmÑ«sÕ°nÕ­fÍ¥gÊ g˦fѳnÙ¶oÙµnײoÏ©hÉ£bȤb̨hΫkÏ­mάoѲoѯf˦dÑ­o׳v׶tÝ»qÚ¸vÍ­lÆ¡_Ì£bضtݸxدoÑ©mÈ£eÀŸ[¿ ]Æ£gÎ¥jΩnÍ«mΪmÍ¥hÌ _Ñ¢]Ò¨XÔ«_تmØ«kÕ¬b̤_¿˜YÀ–[ÄžbʦhÑ­hЭiÔ¬hÚ°hÚ²jÖ°j˦\Á˜QÇŸ[Ê¢cǘ]Ë¢\Ò¬fÔ¤cÓ£cÒ¤aÏŸWÉWÍ¡_Ö©fØ©mÔ¤pÍ gÈbË ^Í¢\ËŸ^Çœ^Î¥cѨaÏ¥`Õ¨eÙ°nç¿xà¹kÒ¦bÙ­jײjÒªjÔ©aÔªXÔ§`Ó¦bШaØ­mÙ³tÕ¹vØ´vØ­mÖ®jÙ³iÒ¯eÑ­mÖ®nÉ \›[˨kÏ­lÒ±pÚ¶vÛ²rÙ²mÕ±hЭiЬjÕ®jÚ²lÙ³cÖ¨^РaÏ¥`ϪbϦ_Í¥_Ψ^Ö¬mÚ¬rÔ©gΤdÏ¢bÒ¥dÔ¬gÕ®eÖ­hÕªrØ°xÙµqدkÑ¥eØ]Å^´”câ²oæºuå¸xà°lá²jâ¶jã¶mâ²tß°jÝ®hبfÔ¥bשhß°eâ±fä®nÞ«jÚ¥eà­iä·pà±nä·pé¼wã´så´lê¾vìÁ}è½~èÀƒëÃ…ãÀ|ß»}Û²xײpÙ³t×®tÛ³yݲ~à·zæ¾{è¿€èÁ‚ä»{æ¹wêÁ€ç¿‚é¾}ëÂ|æ¼å¾}ë¾zêº{æ»~ä¹亀éÁ}è¾{Ý°tÙ®sÞ³uàµqã¸pæ¶yà³wßµpäµtá´uÜ´t߶xå»{çºxâ¹væ¼uè¸pקhÎ¥fÕ©cÙ­lÝ®oÞ¬jÙ¬jÓ¦aÏ¢cОkÍŸeͤeÙ«jÞ®hÜ°oݳrÞ±mà­rà®qà¯qâ®rߪkÚ¦jÚ«iܱkÜ®nÝ­nÞ®lÙ¦cÑŸaÒ£aÖ§aϤ`Ñ¥^ܨgØ®xÙ³pרgÖ«rÚ²pÜ­oá±qà¶rÞ±rݲrà¸~á·zß³pá·w߶vÞ¶vá»xàµrܳrÜ´mܯnÜ®sݲoܳqá¸}ä¼{ÞµrÛ­mÖªmήvвvÖµ{ß¼€å¿€ã¾€áÂåÈ‚åÂ}ã½~á½}Þ¿zßÃâÀá¿~áÁzã¿wá¼|༅⽃àÁ„çÆŠëņæÁß¿~à€ãŃà½~Ý»|áÁ‚⾃ڳqØ®kÚ´xݶzâ¸xä¹xݹxß»xà¹uà¸vÞ·uݳtá¸r߶nÚ®pØ­pØ®oØ°oÛ²nÙ°jÕªb×­gÙ¬hÕª\Ö¨\Û¥cÕ«_Ö­bÚªhÖ§^Ú¬dÞ²tݲoÝ®`Ú®lãÁŠâ¿€Ó©jѦfÏ£jΟeÕ¦fØ°oܳkܪgÖ§gÖ©cÕ©kÔªqׯlÙ±jÛ´rÛ´yØ´xÛ¶tÚ¹q×´lجjزpÛ²tÞ±pÜ´qײt×­kÙ²nÞ·xà¸vÚ·uܸwÙµyΪqǧhÈ©f̬h×¹rà¿xÞ¸xܸyÛ¸}Þ¸ƒÞ»~Ú¹vÙ´sܵsܳvÖ°r×±rݶxܺvݺxܶxزnØ´nÚ·tÜ·qÜ·yÙµyÞ¶xÞ¹uÛ¶qÙ°pÕªjЧeÒ­jÕµlÙµoÚ°pÔ©dѧeÕªdÕ¬d×±qÚ²s×®iЬiÒ®pÚ²r׳oÔªgÕ¤cÒ¦ZÓ¥\Õ¦bÔ¦bСWÊZÊŸ_Τ`Ó¥aÒ¦]Ñ©cÖ­pϧgÊ¡bÒ§gÖ©gÖ¬g׫kÔ¥jÒ§fÒ§gѦbЧbÓ§hÖ¨jÒ¨jÒ¬iÔ²k×±lÙ²lصtÖ²sÓ®fÕ²pÖ´wϬrÍ«kʬnÀ£hÁ[ˤkѯzÕ³tÓ¯lЪjÕ­jÔ¯jÓ«kÓªkÑ«kÔ¬kÓ­iÔ­nÔ¯rسq×µoÔ°qаvάoЧgÖ³qÛ¹}سzÕ±sѬnϦfѪlÕ²uÓ´tÒ¶uÔ»{ÓµxϪnÈ¥kϨoÙ²tÛ·xܽyظu˪jÅ h˨pÕ¶x×µsÕ­pÑ«qȨlŤjǧgÆ£hʤmÖ«pЬuȧgÈ¡ZÊŸ]ΤdϧfÓ«`Ò«]ѪdѧcÍžZÚXÁšXÅ ^ʤcФcТaÍ¢aË£UË¢WϨbÈ Z¸ŒSÁ‘\Ë¢\ÉŸZÍ VΣTËž[Ñ \С[ÊšXǘXÊ¢ZϦ]Ñ£bÒ¤bÌ©aͦ[ͤ\Ë¥cˤbÉ£]˦cͧdÎ¥aÓ¨gáµwèÈ…Þ»kÔªbÛ³tÝ´pÙ¯h×®jÖ­hЭaЪbЦmÓ¯tÕ´oÖ¶qÚµp׶kÓ¯jÖ­kسjÙ´rÙµqЭe̤bШf˦jШkÖ­lÙ°lÙ²i×®gÕ§fÒ¨cÔ«`بeÙªgרbÔ§]Õ­gÔªfФY΢YË£]ЩbÕ°fÒªjÒ¨`Ï¥\Í¡^Ò¥\Õ¨aשfÖ¨eÙ«mݱqÙ±lÖ¨cË¡^Æ^±’`à·zæ¾€éº|â²pà²má´mä¸qà³pܳjá»uß´zÕ¬kÕ­gÕ­iÖ¬iÝ­iÝ®kÙ«fá±eá¬dÊYÖ±dç·tݨoÞ±gåµkä²gåµlæ¼|è¹zä´rá¯lܬlÖ­oϦkÍ¥cÓ©\Ó«_Ù®iß´qå»}çÀ‚å½z辀꿄æÁ‚äÁ‚羇èÀƒå¼æ¾…çÁ~ã¿~ä¼èÀ€é€èÈ㼄ڲuØ´qß·sã»äÀ~ã»vã»yå¾~ä¼ä¹ƒæ»çÀ缃åºzæ¾yæ»xá³sÛ±rÛ´uá¸zâ¸xÞ³uß³oÛ±lÔ­fͪeÍ¥dÒ¤fØ°mݸpà²sß®pÞ¬gß±kÞ³tÞ³râ´qá³oܲlܯmܱrÚ³lÙ®fתbÓ¨ZÍ VÍ¡]Ó¥_Î¥`Φ_Ó¢\Õ§h׫nÔ§iÐ¥gÒ¥cפeܬqÞ®qÚ©fÙ«dÜ­jÜ«nÙ¬pÚ¯tݱsÚ²mØ°iÙ­kÙ¬f×±gÙ¯fÛ©eتgÖ«jÙ¯tá²vÞ³vÙ´{ÚµyÒ¬mˤ`Ï©_Õ²hÙµnÛ¹vݹvߺrá¸{ã¹ãÁ|ãÂãÁ‡çĆæLJ㿀වá¹à¿yÛ¹uÚ¸uá»{ã¹|ß¹{Û¸|Û»~Þ¼‚ß¹}ßµ{áºß¿zرkЦgϪrÒ°rÙ´vÞº{ß¿~ݽ}ܹsä¼zã»}ß·tà¸sß»rá¸vÞ³vܵyݸ~ß·{á¶uݳmÜ´nà¶sݳhÞ³láµnߺjÛ¶jÚ°jÛ±lÙ°jݸmà·oܪfà¹xëÍŒâµvÓ¥hÓ­jÔ®jدnÚ´qÖ±cѨaШhÓ§_ѤaÒ©dÔ«dרkÖ«jÖ«hÕªgÓ©dÖªhÖ«lتgШgЯmÛ²rÙ«nØ­hÙ¬eÓ¨fÚ®pâ¸|Þ¸zÚ³sÛ²xÛ±rÓ©iˤeʨbЫf×µpݺxܳyݳzݶyÛ·{ܹ|Ú¹wÙ¹yà¸wßµpØ°nرlÛ¶tÛ¹vܼsݸuÙ³oÖµpÖ¶vÕ²vÛ´tÛ¹uÚ¶pÙ±nÙ³uÞ¸qܳpÚ²rÙ´oÖ³qسvÜ´rÙ°mÖ®oدq×°jÕ´kضp×±dسjÜ´yà±qß´pÚ´qÙ­eÙ©fÚ®cÖ²fÕ®mÔ¤gÍ£`Æ aÉŸ`Χ`Ë«dɧhѪeШeÆ¢bΨbÕ«eÒ£^ÍŸ\ËŸ^Ϥ^Ò¨^Ô¨`Ô©hШ^Ϩ_Ó§gÒ¦`Ô¦b׫hÕ¯fÓ¬iѦfϧaÔ®cÒ®eÒ«kѧjÇ¢b¿—Y¹ŽR¿”XʤlШnÍ£bÈž^Í ^Ï£^ËŸ]ÊžYÌž^Ï¢aͤdÍ£hΨmÏ­rΦlÌ¢kÌ©pÍ®kέjÓ°rÔ¯vÒ¨rϨgÌ¥cʦmȧfÌ¥hЪnÓ®mÔ¬jÐ¥^Ê WÈžZË£aÓ©hÖ¯oÕ­pФhÈb›_È¡_ͨiШiÔ£fÏ¥nͧpÎ¥hË£eÈž]Ë¡\ΨgЧcÉŸ`ĘZŘWÉœ`РcѤcÍ£]ÈŸYÌ\Ë£[Å OÁ˜QØ\È\Í¡YÍ¡YÍžWÌšWɘPÍ¡SÚT¶‡G”UѨcѦ^Ï¡TФUÔ§`Õ©^ΦRÅžNÆŸUÒ©dÕ«gÔ«cÓ¬fШgΦe˪g˪fͦdʦkέqѱgͨaϦgÙ±rݹ{Ú³uØ«qܳvܵvÞ´yâ¼xܼrÙ¹sÔ¶rΪfÑ©kÓ°oÕ±oÔ°vÔ®sÔ¯tÕ¯tÜ´nÝ·qسqÓ­bÐ¥cУfÍXÌ¡ZϨeÓ§e׫hØ°eÔªeѬlÔ­eÚªbݯhÚ´m×±sÙ¯k×­bѬb̨cË ^Φ`ׯeÕ¯bÑ®bЩ^΢^Ð¥aΦbÒ£]اbبhÚ¬iݳpÙ¯kÔ¦_Ρ\°’^ãº{ç¾~ë¼}ç·}á´zÚ²pÝ´oÞ·rá»yêņéÅ€â¸wß²vÛ³uܵuÝ´qÞ±xÛ«tÙ°k×­fÈ›Zׯiæ½yÝ®lÚ¬eÛ¯bÛ¬`ܯfà¸må¹nß°nÝ«oà­pÖ©rÇbÆ›VÍXÓ¢eÙªhÛ®kݳn߶mä¸u庀ä»{ä¸vã¶xãºwåºzâ·wâ¸xå¹|ã·zã¹zå¾~è¼}è¾|ä»xܳrÙ²qÝ·vä¼~éÁ€åÀ‚á¼{á¹zÞ´yâ¹zçÁ~æÀ~åÀ€á¹€á¹‡åÀ„åºwâ»ã¿…èÀ}ç¾zã¹ãº…߸zÛ°v×°sÔ®mØ°kÞ¸vߺ~â¹|á·vß²sà·}á½zá¶vã¹|å»wæ¸|ã¹}á¸xݳtØ°rÚ¬kרfÒ¦gÒ¨kϦjÌ¢eРdÌŸ[΢fÙ­tÞ±lÙ¬eÔ§dÕ¨fÕ®eÛ±gÝ«kÖ©kרhÖ¦eÔ«fÙ¬jß®oÝ­hÕ¦aÕ§fרgÙ©eÞ®hÞ©dÙ¤`Ó§cÕ¯oÞ·sâµtâµxÞ¸uÔ°jÍ£eË¡aÇ¥b̧hÔ®jÕ°oÙ²tÝ´tá¶w廀俀ä¾}èÁ„éÀ‰ã¹{߶v什âº~دvÖ­wÛ´wݶqܳhÜ°oÚ¶vܽxÞ»uÛ¸tÛ¸|߸zݱuÕ¯vгlϯkÒ±vÖ¸vÚºxÙ¸yܹyâ½wà¹vÔ¯tسrà»uâ»wà¹vܹyÞº€Þ·€à¸{á¹uß¹u߸vܳpݳnܵxÞ»~ä¼xà»}Þ¹€Þºxà»yÞµoÙ²mæÇŠæÇ…Ù¯kܳpà¿và¹nßµlܳqÑ«sÈ¡aÆXÍ«hÕ²sÙ¶oÛ³lÛ«iרbÓ¤^Ò¥`Ò¤bÔ£dÕ¨dÕªeÒ§kШgÒ¨aÔªfÑ©dÏ¡\Ó¡[תaÜ°nÜ°tÙ¯uÝ°tà´vÛ²qѪiΨgШdÕ­kÜ´nܶnÙµqÚ¯nݲuÞµ{ݳvݹyÛºyÕµrÔµsÚ¶}ß·‚Þ¶}ÚµuÖ¯uÔªp×±tسrÓ¬iÕ°u×µ{Ù²rÕ¬oÕ°pÙ¶rÚµuܸwÙ·uÛ·sÚ¹tÙ²uØ®sײoÖ³lÖ±lÚµqÚ¶uÙ³tÛµzÜ·wܲtܵoܶoÛ®lÙ¯iײqدq׬nدtÕ¯qϨh˦fÍ¥jÓ©rÕ±sÒ±pÒ­kÕªkÙ¬oØ­kÕªgÒ¨gÏ©fÔ¬hØ­kÖªnÖ«jÓ¦cÑ£eѦfϦdÑ£`Ó¦`Õ¨bÕ§`Т^Õ¢cרfÓ¥cÓ£_ЦaÆž^ÕY¼ŒO·‰IØRÌ¢XÈšSÅ–PÆœYÍ¡^Î[Ê›]ÉŸWÇœVÊš_Êš[È›YËdËšaÇšWÉœZÇšbÊjÕ«jÓªhËžbÇšUË \ˤeÅœZÇ\Ë£fËž^ËœWËœZÊ›TÅ—OØSÌœVÑ¢bÒ¦fУZËVÄ—WÅšZȘ[ʘSФVÖªeÖ«kÏ¥dË¢_Æœ\ÆšYË¢_Í£`È[ÇYÈ ]Ì¢^Ϥ^Ñ£aÓ¥`Ì¡[Í¢\ѪiÈž[ÂP×UÆ™TÍ YÓª^Ö­dÖ©eË›\È\Ã]¾“TÈŸZÖ®jÛ²m×±aÔ¬dׯo×°jÔ¬dˤ^È£]Õ­jÜ´nØ°kÔ¨jÒ§lϤkЦeÕ²lÕ²iÒ¬hÓ±sÓ²lÍ©bЪjÔ¬jÖ¯hسoÖ°mÚ²oÚ³qسtݸ{à´xݱwØ­pϦdЫfײkÖ­hË¡dËždѤbÕ¥fÕ¨iÕ­eÖ¯hÖ®lØ­aר[Ï¡YÑ¥_Öªi׫fجfÚ®oÙ³vزkܬkÙ¬m×´kÛ¶oܳiÛµeسlÕ±nÑ«hͦcЪg×°oÓ®gÕ­dÕ¯nЭnÕªcÔªeÑ«fÖªbÖ¬e×°mßµpÜ®cÒ¢VÓ¢[º–eá¿{ãºå½ã¿~âº~ܳpÛ³nßµxâ»|èÆ…èÉ‚èÀ|å½€ã¿{å¿~ໄ޹wܲqØ­qÙ¬iÓ¥`ÔªlÞ°yÜ°oÔ­eÓ©fÖ«fÙ¯hܶtá¾}ä»xÞ³mß±oݯsÏ¥hÇ™WÇ–XÑ£cÙ®gÚ­hÙ¬kݬoß­rà´tß·sÝ°lß±nâ·pä³iâ­g߬qݬnݯkà®må³qè¹vå·sá¶uà´vß±jß±jãµså¹tã¶tÞ®sÞ±nÚ°nÔ­nÛ¹såÀ{æ»xÝ´qÞµqã¹yæ»}ã¹|â½}æÀäÀã¿ã¾„á¹€á¹á»à»{â½{æÂ…çÀ‚ã¸{âº{㺀ἀâ¿à¹~á¼€á¾ä¼éÁ…ãÀ„ເâ¹{ß´pÚ²mÙ¯rتmÉ aÆŸfË \ÇšZË£i×±sà·z߶z׬nÔªlØ­nÛ°pݶuܳqÚªlØ«mÖ«eÕªjÜ°vÞ¯lÙªdÖ§^ש\Ù­bݯhÞ«fÙ¦fÖ«pÖ¬pÚ¬kÜ®jÜ°oßµrܱlÒ§bË£`È¢bÊeÊ¢hÊ«kÍ­jÓ¯iÖ±jׯmÜ°mà³qáµt߸sݹqÞ·và»{ÞµtجsرqÙ¹tÛµvÜ´sÚ·wÝ·zÞ´ܸ~ܺ|ܹzÜ·€Þ»~Ú¸zÖ±{Ù³xرt×®q׶pÙ¶wá¹€á»xÚ²nЬrгsØ·jܵn߶uÞµuܵvÝ´tß´sݸuÞºwÞ¸vÛ³sݳvܵyܺxàºv߸xÞº}ã¸|áºxܶoáÁzãɆֲqدpä¼~æ»~ß²w×®uÖ°nϪhÀ˜a½›fÒ²xá½{Þ·tÛ±nدgÖ­aÖ«bئcÖ¤k׫nÙ¯gÚ®bÖ©`У`Ò¤`Ö§cÔ¡[ÍœUÍZÑ£bÖªjØ©gئjÚ«mà±qݱrÕ¬nÕ§gÓ¤gÒ£hÕ©jÙ°q×°qÖ­qØ®nÙ¯vÙµyÙ·oÛ¶pÖ³sÕ¯nÙ³yÙ·}Ú¹wسoЦģdÖ¶rݵx×­oÕ­kÙ³pÙµtÒ­nÓ®qÙ³tÕ±rرuÚ¶sÙ¶wÔµyسvزwѳs×µmÖ´tÒ¶uܺsݵuÖµv×»tÚ¶rÖ³sØ·rÙ³sÖ°sسsسoÓ°gÕ¯nÚ±vÖ­n×®tÚµrصqÞ¸}Ü·zÖ±oÛ¶pÞ·uܲrÛ²mݲhÝ°lÚ±nØ´oׯmÖ¯iÖ¬iÖªgÔ®cÔ¬]Ó©bÔ©eשbبeÑ£dÕ£cÛªiÔªcÕ©_Ù§gÒ¨bÌ¡WÄ”W»‘PÓKΙWÍ¡XÈžUÇšWÏ¥aÔ©eС]ÌŸTÊœQÉ–QÌVÌ¡]É YÉ›VÊ™VÇ–RÄNÆ”XÎ`Ñ¡eϤcΡVÌŸ[Êœ^Å–TÉž]Ñ¥gÒ bË^ÇœUÌŸWË]ǘVÍœVÕ¦`Õ¦bÔ£^Ó¢]С\Ì YÊWÈš[Ì bÖ­oÙ¯oÓ©eϦcÍ XÅœTÆŸ^ÊŸbÌž_У[Ò¦`Ò¤`Õ¨\Ô­bÖ®kÙ­jÔ¬gÖ°lÍ¢cĘPÆSÈ \΢fÚ«mßµtÖªlÌŸ^ÉŸ^ÃSßPΪ`Õ±oÚ´qÖ±jÓ°lسt×®rÕ«rÓ­nέhÕ³qÚ¶wÓ«fÒ¦bÓ¬jÒ§hÖ¬jݹ}ݶyرi×´vÕ¯{ѬiÓ°nЭoЬl×´mÖ³oÕ¯lÕ¯q×±{Ö®o΢bТeÔ¨jÓ©jÒ§fΧbͧbÈ›XÄ•XËžXΟ^Ó b΢\΢\Ø°lߺtâ¹j߸iÙ°fÚ­cÛ³dÕ±cÕ²kÚµwصoÖ¶m×±mÔ¯cÕ°dݳoÚµsÔ²kÕ°kÕ±jÔ­jÕ°hÒ³fέdÑ«gÔ²mÓ¯jÔ®jرlÚ°mÙ²pÚ²pÞ°sܯpÓ¨^ÉžWΤb¼™hâº{ä¹{亀á»zà»wß·xܳvرvÙ³zÛ¸{Þ¹|ߺ߸xâ·à¸ŠÚµvÚ´sÝ·ƒÙ³€Ú±tÕ§kÌ fÖ¯m߶vׯyÓ«sÑ­pØ·wá¾}èÆ꿄å¹wå¼y缀تhÊšUÈžZѬhÚ°pÜ°pدjرoÞ°rã±nã²kà­dã°jæ¶tá°ná­hä³kã²tß²yá´ræ±mã²kä¸mè¸ræµoä±oã°ná´fݳfß®oä¯lâ²jÞ¯iÖ¥dÔ¥lß²vã³rÝ®lß²né¸uè¶{á´yã¶tæµwä¹wä¹uå¹zßµmß³kèÂ{ìÇ{çÁæÁ…åÀ⺂庅æ¿yâ¿x⻆㶂á´|Þ¶á¸{â»wã¾}è„çÆ㻀à·uÚ±qשmΤdË¢hÍ¢eɤfͨqدxâ¹zç½~Û³zÖ³{Þ¿‚â½â¸â¸zã¶pá´qجlϨhÕ¯nà¶pÞ´rׯkÔªcÒ¬jÓ°nÖ°nÙ¯oÙ°rתiÖ¦`רhÓ¥iÖ¬dܳiÚ±uÚ¯tÕªeÌ^Éœ^Í¥dϦkË¥h̬hέhЩkÒ¨kÖ«gÜ°jÞ²lß²làµmÝ°mÙ«nܵtáºxá¶qÞµqܱtÞ´w߸xÛ²uÞ²tßµyÞ»|à¾yáºxâºxà¼xݹsÛ·qݶyÞº{âÁzã¾wÞ´r×´vϳpήd×´nß»{Þ¼zÞ¸tܶsܸvà¹z߸}Þ¸|Þ·sß¼sà½xݶzضxÛ¹yà¼zàºwà¶uܸvᾆàµÒ§fÖ­pà¸{à¸zà·zÞ·wصnÔ¯l̨k˪mÙ·xàÁ}Ú³lÕ¨dÕ©d×°iݳlÞ¯hݲjݸrß·yß´uسh×­hØ«kÔ©lÔ§hѦ`ˤ]ΪbÙ¯oÜ­rתnÕ­kÛ³nÚ³jÖ«bÖ©`Õ«eÓ©hÕªeØ°m×­qÙ­lÚ±kØ­kÛ°qܲrÙ­kÙ¬j×­lÖªr׫rرrسnÓª_Ê¢\Ò¬fسjÕ­jÔ®kÔ¯hÓ­fÕªjÙ¯jÙµnÙ²qÙ±sÕ°tÙ³pÜ´n׳qÕ³oÕ°iÕ±hÖ²oײwÚ³pØ´kØ·tÙ²yÛ²yÙ³yسqÖ´sÖ´rØ´pÚ¶rÛ°nØ®nÛ´qÞ´qÞ¸xá»{Ü»yÞ½zã»|Þµ}Ú¹}Ú¸yÙ³yÛ´vܹsܹuÞ¶vÙ²tزrÙ³tÙ±uÖ¯nÕ®oÔ¯sÓ¬pÕ­r×µpÙµnÔ«jÑ©fÜ´mÞ´nׯk׳nÔ°eЧdË¢`ÔQÄRÏ^Ô¦cѦaÓ¦\Ø«^Õ©`Ó¢_Ó¥cЦ^ÏŸXѦZÔ¯_Ò©bѦ^Ѥ]ÏŸZÉ•PÈ”QÍœY΢YËŸUΟWÑŸWÈŸ_Äž^Ë¥ZÔ°eÕ¬dÐ¥^΢[ѧbÔ©bΟZÌŸYÏ¥\Щ^Ñ®cØ°d×°cÕ­eÑ©cÊ£aÏ¥`Ø°hÙ°lÙ­iÙ¬oÕ¬kÏ¥]È¥bǤaÆ [Ë¥]Ò«`ѨeФcÒªaجdÚ°jÖ³r׳nÕ«nÒ¥jÍ¢]È¡]Ì¥bÖ´tà»{Û²jЬgÊ£_ÕJÇšTÆ \È [زnÙ¶qÖ³rÙ¶yÕ¯mÓ¬lÖ­mÖ²mÕ´mØ´rÙ³oÒ®dÔ¯fÙ³jØ°jß´rá±oÚ°lÚ¶t×±tΩiÍ£hË£lÏ©nÔ®mÖ®mÕ©kÒ¨gѪgÏ¥dËŸ]Τ^Ö«gÛ°jÔ«`Τ`Ч^ͧYÈ¢WÊ¢[Ì£`Î¥[Ñ¥WÑ£\بj߸xÞ¿}à¹wݳhØ°jزoÔ¯fÖ²pß½}Û¹uÙ²mÛ´qÓ®jÏ©jضoÛ¸rÕ®oÓ­oسrÚ³vسrÕ°mЭjÑ«kÕ¯oÙµmÕ³qزv߶rܸoÞµtà¹{Þ¸rÒª\À™QÊŸ[¹Ÿeàµáµyßµ{àµzã¹vãº{Þ³xׯoײsÚµvÛ´wÞ³vܶtÝ´vÞ³zرrÚ¬lݲvÞ·v×­qϤfΩnÕ³xÙ¶wصvÔ°qÕ®tÞ¹xèÁ|ëÅ‚éƂ鿀辀澀۱rЦmÓ­t׶pÛ¹{â¹~߸tà·zæ¹yäºwÞ¹{âºyæ·qã¸uà±uá³má½oä¼uç¸zå¸vâ¶på³pæ¹rç¹tç·uã¶là¯cÞªeÛ¨bÜ­d߶qá¹på´mà¬eÒ¦bÕ¨jà¯ná³rà´rä¶pá³uÚ¯rÜ®kâ²tã°sâ²lá¶mÝ­kÙ­là¼uæ¿väµtá²rá²oá¶qä¹väµyß´rá·qß³vÖ®rØ­lß°uܵyß¹xã¹zà¸wݸuݯhتhÕ¬kͪdͧaÐ¥gÒªtÔ±uرqà¶|ä¿ã¹wàµ{㾆åÀ‡áº{߸{ä¹}å¼|ܵvÔªoׯpݶvá¹yÞ³rÓ¦oÒªnØ´pÙ´uݳ{à³{Ø­oØ©hÝ©mÙ«mÕ¨mجtáµváµrß®qÜ«gÕ¨^Ф`Ï¢eΦcÍ¥_Ì gˤjʤbϨfײp×®nÔ§eצgÙ¦pתiÖ¯fäÀxéÁxâ¶qÚ²qÛ±nÜ°pÙ±sÝ´qß´uÞ±xÞ´sß¹zà»~ã»{ã¹tÞ·qܲtܱtܹtÛ³tÙ¯uÛ´zÙ²vÕ®q×µtݺtÞ¸sÛ¸sÞ»xÞºyܸtà»y߸|߸zà½uà¿sà»rÞ·mÙºsݾyà»|ܵuÛ·vܹyÕ®lΨiÓ±nÚ¸mß¼uäÁä¿zá»qÝ´uÕ°xضyݺß¹yدn΢gѨoرtݹsà¼tÞ¹vÞ¹{à»á¹vÛ²nزtÛ²sÔ­hÓ®lÕ¬pÊŸaÉžaÓªmØ°mÚ°pܲsá´yÛ¯tÖ¨cÖªdÕ´r×°n׬qÙ²zرrß°pݳmÔ¯gÚ²oÛµoÙ²iÚ±hתdتgÛ¬kدoׯlÖªgÌŸaÌ \Õ¨dѧaϧ^Õ«fÕ¦hÕ¥`Ó©dÓ¨fÖ¦cÖ¨gÒ«hЯdÒ®bÕ©jÕ¨hÔªfÓ©kÓ«rÖ©m׫gÔ¯oÓ´tÔ´q׶uÚºrÙ¹mØ°pÔ¬pÔ±qÚ²tÙ±vÖ°rÙ´sܹw×·uÚ¶uܳxص{á½|àº~Û¹xݹxÙ³zÙµxÙ¹yÙºxÖ¶tѱqÕ­pܳvÛ¶{Ø°tײrÙ³vسvÙ´vØ·vÚ¶{Ú²uÕ±mݵsâ²wÚ°sزoÛ°nÖ¬mΦkÄšR”MË¥eЧeЧbÔ®eØ®gÒ§bÌŸWΡ[ѨfΦgѨeÕ­gѦdÓ¤`Õ¤^Ñ¢[Í YË¡YÍ \ÌœZȘTÈŸUͧaѨfʧd̪e׳qÖ²tÏ®lÒªfÖ¯oÕ¯nΦgΤhÓ©jÕ¯mÒ¬nÕ¯qÙ±qÕ°j×°hÓ°jÖ©mÚ°sÙ¸rܹxسyÕ°oزiÒ¯eȪiÆ£dÉ¡_Ï©hÕ­kÕ¬dϧbÎ¥hÖ«iÙ°kÛ²rݵzزqѬk˨kɦgÖ²vÞ¼Û¸rÙ´lЩeÌŸ]ÊX»‹FÀ‘Sײp׸vØ°qܱiÕ¯lÒ«mÑ©mÕ­oÖ­lÒ«iزnׯpÒ©hФaÍŸ\Ô©eÙ¯j׫fرkÒ«eÆžZÃWȤ]ͤeÒ¨fÕ®bק]Ó¤bÓ©bѤ[ТZÕ¨\Ô©]Ô¨\ÔªaÓªcÖªcÙ«fϧcÈ¢aɤdͪjÓ®nЫfÏ«iÙ³qÛ¶yÙ´vÙ³lÚ¹uÚ¹tÔ±mÕ°tݸ{Û¸xÕ²uÖ²wصvÓ±pÕ¶pظjÓ®cЫiÔ¯nزnׯoÔ­oÑ®hЫiÕ±t×µtÕ²q×·mÙ¸uÙ¸xÚºtܶtݶr×°h¿›\ÇŸ\¹š_á¶|Þ³zà´râ·rá²uâ´và¶wÜ®yà°|ãºyâ¸xá³}ß³|ß³uà³vÙ­oÓ§gÖ¬nÚ³vÚ­pÕ¨hЬnÕ±yÚ·~Ú¶xÖ­{Ó¬y×µvὀ彂ã¼à¿€á¿ƒã¹…ß°xÚ­tÛµ~â¹à¹}ß»{ã¸uä¸yå¾{ç½~å¾~åÀyê½}æº{á¹tá¶rá³qçºxé¿yçºvæµoãµkä¶tå¶uã´nã±oâ±kã²kÙªl׬dß¹såÀ~êÀuêºrä´uݯoÛ¬lÞ³rã¸pã¶oä²oâ¯mܱoàµoå±kã²sä·uâ²qØ©oدmà¸vÞ±vÝ­lâ²gß°jâ°mâ°iÝ°nÞ³xá²xß±qÜ´nß³lÞ­hÛ¬jÞ±q߯rÛ«mÖ¦`Ô¦aÒ«mϦiËš]ÊŸeÓ®vØ®tÛ²rÞ·r߸zä¿‚æ¼~軀å¸~áµvã»{ä¼â¿ƒâÁ€ß¼{Ý´yá¶{伀߹zÕ²sÒ³uÛ¸zá»}â»yàºtݸwݸyß»vݵuÙ¯uÙ³yß¹y߸wÛ°nÞ­pܲuØ®sܱyݵrÒ¦aÑ¡fÔ«rШhЦhÓªkЦeЦgÕªdÖ¥bÕ¤bѪeä»yëÁzÞ·n×®jÕªoÔ¬q×®lÛ°fÚ­eÚ¬kܲpß·pâ·l߸pÞ¶wâ³pÞ´pÞ³pÚ«jÔ¨i׬oÞ¸zß¾}ÛµtÚµtÙ¶xÙ´vݸxàº|ݹyݸvÞ»~á¿à¿{á¿{ãÀ|áºvݹsÞ¼zà¾zß¹{ܶyضrÖ°mЩhЮhÒ±lظvâÇ‚åÅ…á¾{ãÃzæÆ޼~ÝÀ~ÞÁ‚ÙºtصvÚ¯tÙ­oÛ¶xß¼wã¼zÞ¶yÜ·wà¾}à¸}×±mÔ°kݵyÚ³vÖ±oØ®qÐ¥nÈŸd˨kÕµsܶrÞ´tá¶vÞµsÕ¨lÓªlÙ¸yÝ·xܳsܶrÙ³pÜ·vß¹vÙ°jÜ°nÜ´uܸrݶjׯhÚ±jÚ±eÚ¯hܳoÙ³lÕ©cÒ§`Õ©fÚ¨bÙ©`ب`ا`Ö¨_Ò¦`Ò¡aÓ¢dÕ¨dÓ¦`Ñž\С\ТcÑ¡^ÏŸ[Ï¢`Ò¨iЦjШfÔªeÓ«eÕ°iÙ³tÙ¶uÚµrÖ²pÒ¯mÖ¯s׳tײuÙ´zÛ¹|ݹxÛ·uÚ²vß²vܳpÞ¶rà»zÞ½~ß¼~ÚµtÚµvÚº{Ûº{ݸuصvÔ²s×´oÙ¸yÛ¶vÚ²t×µxÙ´uÚ·uÚ¹zÙ·wÙ¹uÛ»zÞ»vݺu×¹xÙ¹xÝ»}Ûº}Ö¶sΫkÊ¢eÓ°l×´rÖ­nÕ¯jÓ°hѨhÌ£eÈ ^Ê \Í£cÓ«h×­hÑ£bÑ¥gÔ©oϨ`ͨXÐ¥_Ó§hÖ¨hРbÍ¡eϤfÔ©jЪpͧmÓ°oÖ³sÔ¯vزtܸvÜ´{Ù´v×´uÙ´uÚ¶rÙ²tدvׯsÖ±sÛ¶|Û¶vÚ´sߺtÞ¾uâ¿{à¹y×°pØ´mÚ·s×µvÒ®lЫqÓ±xÛ¸wÜ·zÖ¯uΩgϬhÙ±uÞ¶{á¹{ßµsݶxÙ²vÕ­nÕ°uײuÛ´oÛ¶pÒªlͤ\ÆV½O“QÒªgÖ®kÙ­hß³mÛ°nÒ§kÏ£lÒ¥eÒ¦\ЦfÖ¯oÖ­nРfÌšYÆ–ṲfÙ±mÙ¬iÖ¯nÕªiÊœ\Ç™ZУaÕ©kÔ¨eÒ§`Ô¬gÖ°iÚ¯k×®iÛ±dݲgÖ­fÓ¦bÖ­fÚ´jÚ³nÛµuײuÏ«g˦eͨoÓ­oÓ«jÑ®iÔ³rÙ·wÖ´sÙ³tà½zݽzÕ³mÕ¯kØ·tÚ¶tײsÕ¯nÙ­lÔ«hШcѦ`УYË¡[Ð¥dÕ©kØ°jÕ®hÍ¡eУeÕªkÔ«lÒ©hÕ­q×´{Ù±zÝ°rܱnÚ­oØ®hÏ©cÔ¨iÁ›kà¸rã»uã¸sâ°nà­qã¶yã¶uÞµrá·zå¸{ã·sãµpä±pâ°lÞ²iÚ°oÙ­sݲpá¸uã¸{à¶vßµpݳvß·{â·|á±vÖ¬sÙ±uà¹uݸuݵyß·xà¶x߸zÛ¶{ݹzâ»uâ¹x߸|à·yá¸xà¸wåºu齀鿈è¿}è¾|ç½xå¼uä¶yÞ¯vݳuâ¼{å¹wâ³oÝ°hÞ°gß²iܳpßµvæºyäºyÕ¬jÓ«ká¼€ëƒîÁ|ëÂ}ìÁyë½u߸qÞ·uæ¹zå³rà°là´páµqã·tæºzç¶qè¹pæ¼yݯpÚ©mÞ³v߸uä·oß²iÝ°hà³má±jä°nãµrã¹så¼wä¸wã®oã­hà°mÞ±jݯnß­jÚ¦]Õ¤`Ö©mÏYÁFÅžZÒ¬gÛ«kâ±nݬmÛ¯oå»~äµzà³s߶tá¶qãºoâºpâ¹sä¼}异â·uâ¶tã»wá¸wÝ´uغvÛ½zã¿å¿xá¹{Þ¶߶wâ¸{â¹tݸnÝ»xã»}á¶uÞµsâ¶uã»wß»uã»zå¼vß³nà³sã»zßµrÚ­lׯqÕ©hЧcΫfЧhЩgЪeÕ¯jݹtÛ³oÙ«kØ«rØ«jקhÒ¥bÔ¡\Ô£dÙ¨kݬhÛ­_Û­_Ý®iݱqÞ²lÙ­eÕ¦eѤgÏ¡eÕ­nܹvݵtݶsݶjݲmÜ´wܸyà¸yÛ²xÜ·zÞÀܽÛµxÜ·xݹ}Û¹zÙºuÚ¹vÛ²oÙ°oÓ°nέh˪mɨmË«lÖµuâ¿âÀ‡áÀ€ãÄ~âċὌ⾇߿„×¹}Û¹xÞ»xÚ¸zݹ{Þ¹xà¸zÞ¶yÛ¸rß»|ß¿‚Ù·pدhÛ¹uÛ¼}ܸwݸtضoѨg̤jÑ°qضtÚ³sÚ´mݸnܳnÚ³uÞºܺ{Ú¸rݶqÚ³oÜ´tá¶tÙ´qܵuá¹uܹ|ݸ}ÛµvضrÚ´nÛ´pß¹sä¼xß³pÛ°k߶sÝ´qÙ²d×­cÓ¨mÓ«fÓ«fÕ©lÒ©bÔ®aÖ­bϤ]Ï¢cÓ£fР^ËžUÐ¥bѪkÒªp×­tÖ©iÒ¤`Õ©gجmܪiÙªcÕ©`Ô¦`Õ­i×­oÙªoÚ²tܳxÙ²rײqÕ­oØ­pÙµxÔ·w×´xÛ³xܸzÚµxÚ±oÛ°pزvÜ·wÛ¸vÕ²rزsܵ{Ú·{ÙºvصvÓ±vÔ³xÚ¶uܳtÛ¶{غ~Ö³yÕ±wÖ´ܺ޿}Ù¼|Ú¶wÖ³sѲxÖ³~×µyÖ´v׳xرvÔ¯wÓ¯rÏ«lɤgÑ©j×´vعuÖ³qÔ±rÔ²oѯjΦe΢aÔ®hÖ³oÕ¬bѧ^È£hÉ©uË«qÆ£fÍ¥fÓ±hÓ³iÔ®p×±oØ´qÕ°tÖ´uضuÚ²m׳nÕ´wÕ²vײuÞ¸}Þ¶uܲuÙ´tصsߺ~ݹ}Ó±pÔ±mسxسz׳rÚ·pÖ²rÕ´v×·uϧjƘ^È™\Ï¡aÔ©dÛ°eÛ°nÜ·yßµsØ­kÔ²oÔ¯iܵuäÁ~Õ¨kÄ–\šRÀ–NÀ–TÌ¢XÐ¥[קdݱlÚ±jרdÖ«eÒªdÓ¨bÓªbÓ¨bѤfСbÓ¢bÒ¤bÕ§dÚ­cØ®eÖ²iÒ®[ÉŸRÈž\ϨgÙ±n×°mϧeÓ®fÙºoÙ¹kÜ´hܶrܶsݳrدmÖ«eÖ±fײnÚ²oÜ»oÙ¶lÖ­kÑ®qÓ®qÔ¨lÒ¦qÓ²rÔ³tÑ­rÔ²yݼ}ÞºvÒ¯oϨoÓ¨pÔ­rدoÖ­oÓ­gСUÎœWΧ^УYОUÓ¥]Ö­dØ®jÓ§bÎœ\Ìœ`Í¢^Õ¦`Ô¤bÒ¨eÒ«cÒ©e׫jØ°oزs×­rدlܳi¾œoä¹zä»zäµuã³tà´w߸wà¸vâ´xãµs߶mà°ná¬jà°má´oäµmá²pá²rã¶wå¼vé¾væ¶yâ¶vä¶rä¸xç¿}è¼}á¶{Þºvç¼sæ»vãºyå¹yã¶z滂翈å¶{å¹wå¼zâ³{㴃缃æ¼|è½}êÂè„éÁ„æ¼€ãº|é¾}èÀÞ¶xÔ­xÕ®yݳrÚ«iÒ©hܶsá¹uݵyßµ|Ý´rÕ«eͤ`Ó®mä½~ìÁ~ìÂì¼ìÀ…íÅ„ëÀæ¿}ã»uà³pÙ¯mݶqã¾xæ¿}è¿yä¼uã¹{å¹}à°sß°oå¼xèÁzä¸sݱoݱtá³uâ¸qå»uéÀvê¿{ç»xç½qèºpä¹tä»uåµuä´và³nݪjÙ«nدhΛS¿NÍ¥fÞ³rÞ²rÞµqÝ´oÙ¬lÞ«mܬiÙ­jß²oà²cÞ®`Ü®cܬfá´iã¹lâ³rà°qÞ®mÞ­lá³pá¸tâ»sè»zäµwܲuܶsݵwÝ·zàºvã·yã¼~ä½~â¼€Þ¹và¸vç¾æ½|ä»{㽂á½~ç½€èÁ‚á¾{徂åƒ߼vÚ³qÓ±qÑ®uÓ°uЯmÔ§kÚ±oݵlÙ¯qÙ°tÜ­kÚ«jØ­jÖ¦`С`Õ£fݤeÚ¦bÚ¥eÙ¥fÛ©bÞ©fÜ«jÕ§bÎYÌ›YÒ¥cÚ­hÜ­nÞ¯jÞ°eØ«iÙ¯mݱjÛ­qØ«sÛ±tÛ´t׳sرrÙ²tÝ´sݲtÙ±wÚ³yݱvÛ°kÕ¯kÖ°kÓ©eÉ fË¥lÕ°rÛ·xܺtÞ¹vß¼}àÀ}ß¾Þ½…Þº‡Ú´}Ù¶yݶvݲsܵ|Û¹~Þ¹xݸxÛºxÞº}ß¹…áº}Þ¶vÙ³~á¹|â»xß¹~Þ¶zسpÑ­rЯnÙ·tܵ{زzݺ{Ý·wܸ{Þ¾~Þ¼޺ݹyÞ¹uÞ·xݵuܶtݹxÙ·xÙ¶tÚ·sݺyܸvݵwß¹yݹyß·|Þµ{ݳtà¸xß»zÛ´nܳnزuÕ¯lØ°fزjرn×®oÖ­qÓ­pÔ©jÕ«gÕªdÓ£]Ô­iÖ´vÔ¬pØ«jÙ«kÔ§gקbÛªfجgÕªcÕ¥^Õ¦`Ô¬dÙ¬cÖªkÕ¬nÙ­qÕ¬oÔ¬jÓ®hÕ¬lÖ¬pÕ«lÔªkѧkÓªpÕ¬rÖªmשj׬kÚ±sÚ³x×´q׶n×µvÚ¶vزqÓ«mÑ­mÔ­tÖ¯xÚ´vزuÖ­zÕ¯vѬnѬqÕ°r×´uÕ´uÖ°rÒ°qÔ¯oØ°nÓ®mЭoÖ­u×±vÖ³rÙµxÕ¸uѳnÓ²qÙ¹yÜ¿{Ù¹|ضyÖµtÒ°jͤ_Ë¥\Ñ°gÒ­mЪlάeÅ¢bÈžcͦfÈ¢fÊ¢jѱvÒ³vÔ¬nÕ¯nÖ­qÒ¥mШjЭoÔ­yرxÓ°oÕ®qÖµsغyÚ¶}Ö®tÒ¨n׬uÝ·zÙ¹oÔ«mÖ¬rÓ°lЪmÕ©lÕªjÒ£hÓ¢eѦgÌŸ[ÂL¿‰QÅ“TÍSÍ¥YЦZÕ¨dÕ®hجgÚ­hÖ°fݸsâ»tÕ§[ËœTÄYÁVÙPÍ ]ϦbÒ¥ZجdØ­lØ®ná½và·pÛ®eÙ¯fÒ¬eÓ¬cÔ«dÕªaÕ¯aÖ³gÙ°f×°hÜ´pØ­gÄY¿šZ̦eÕ¯uÖ³sÕ²hÓªhײoÚ¶oÛ´nã¼xãÂyà¾yÚ¸rÏ­hϬcدmÕ¯uÕ²oÖ±nÒ®pЯpÖ²pÙ´iصsÛ¸}ÚµxÏ®pÒ®uÚ¶uÚµkÖ°iÕ©hÔ¨jÖ­pÛµqݵqÙ¯dУUÏ¢\Õ«kÕ«gÓ©^Õ©a×­hÙ´nÙ´gÔ«aͧbϨdÙªe׫cÓ©cϤ\Ï¥^Ó©fÖ©cÚ¯eÝ´qÞ·uã¶q¾kä¹yå¹{âº}á»zä¹zâ·{á´|á³záµsß´pà´pá·nà³râ±sæ±ná³oâ²mã±fá¶mç¹tæµqà±oÞ³nà¸rç¹xç´rá³oà°nã³sä¸xæ·xäµxâ¸véƒðÇç¼æ¸{æ¹zã¹zæ¾}èÅ€êÅ€êÄ€èÄæÁ~åÁå¿ä»yä¾{澃㸀ٱxÑ®wزwØ°uÓ¯vÚ¸|Ù´vÓ­qШqˤg˧eÓ«kÜ»|äÇæ½}æ½{è¿~åÁ{å¿uå¼zã¿{â¿uÞ´rÙ°rÞ¶yäº~é»~ä¼|߸tã¶rä¸wß³nâ´mè»{êÀzæ¸sá´wá¶rã¸täºå»}ç¾væ½vã¸tä·mã¸mã¸ræ»qè¸pè¸sâ³jÚ©`Ö©h׫kΟ`Æ_ׯlß³nÛ®lݲpà´pÞ°sÙ¯u׬v×°xزkצaÕ¤dתbÙ¨fÝ«hß±bÞ²eÞ²jÝ®dܬ^Þ®aâ²hä²pß²mܬbÚ©fÝ­rÞ«iܪdÚ­oÚ³qß³pá°tݳnرeܳoå½xã»xÞ¶€á¼ã½xâ½xâ¿|á»ä¼æ„æ¿à»yÙ¸yÙ´{Û¶tܳuܲzß¹}ã¹}ã¸}Þ¸uÞ¸rà·rÛ¯kØ®nÑ£fÌ¢[Òª^רcצhÒ¥bÒ§dØ©lÙªhÓ¦`У_Ò¢\Ô£bÙ§gÛªbשcÓ¨fÔ¤fÔ¥_Òª_Õ©gÓ¥gÔ§eÙ¬hÓ¬lÑ°mÚ²hÛ¯fܬiÜ«hÚ¯oݵtÞµrØ°pÕ­mÒ¨jʦhÎ¥fЦhЭgÙ´lß¹sß¼vߺxݹyܹxÛ³nÔ«oÔ¯o׳mÖ°qÖ´uع|Ü´vݲoܸsÜ»~ݺ~Ø·vÞ³vá¶uܸpݹvá¹{߸vܶxÛµxدrÖ¬vÚ²~ß·{Ú¹x×µy×·~Ú¼{ߺzݺÙ¹zÛ²yݲxÚ´yض|Ú·{Þ·|ܹ{ܵrÞ¶pÛºsÚºvÛ¹zÞ¸{à¹}àºuÚ¹rܽyÞ»uÚ¸sÚ¹}Ú¶uÚ¶uÛ·Ù¶{Ù¶tÝ´rÞ¸qܹqÙ¯lجjÙ±nÙ«kÛ±nÙµmزkÜ´nÜ°oÞ°mÚ¶lØ´oÞ·oÛ³gÖ¨eתfÚ®eÚ¯tÖ®pÓ®dØ°gÚ±fÚ°eØ°kÓ°hØ­eÙ§iÕ¥gУ`Í¢[Í£ZÑ£^רdÖªg׬g×±gÓªiÕªlÙ²lزtÔªpÒ¤gÒ£bѧbѨfÖ¨eÕ§iÔªvÙ³vÔ­pˤgϤeÒªeϦcϧgÊ©f˦fΦjͪjÆ›\È›YÑ­fÑ­oÓ®nÖ°rÖ«vÖ­sÔ­uÕ±zÙµwÖ²rÒ±tÏ©jÇž\ΤgÕ¯qÈ£eÈž`ЫmÈ£bÄ–XÌ¡gȦfÇ eЧdÓ¬dÒ«hÓªeÒªiϨiЧdÔ¦jÓ¨jШdÒ¨hÔ©jÒ§dÓ«nÙ¯pרbÒ¤aÕ­jÚ­oÖ§jЦeÖ©gÒ©fͤcÍ¢]Ë X΢YÒ¤]Ï¢^ÍWɘRÈUÌœZÏœXΡZѤ`ÕªgÖ­iÓ¨fÖ©kدj×­mÔ©jͤ\Ì¡YË [ˤ]ÉŸYÌ£^Ò«`ѧ`Ò¥fÔ©eÙ±pà¿|Û¶oÔ«`ѬcÓ¬iÕ®mÔ±lήjΪbÒ®hÙ¶nܸoÛ¸yײuÈ£`À]¡aË¥dÒ¬kÕ±iÔ´nÖµzÚµ{ݸzß¾}ß¿~Û·vÔ²jάeÌ­jÕ³mׯqЩj˨^ΫfÓ´pÖ´pܲrݵvÙ´pØ°kÕªfÒ¦eÖ«lÛ²qÛ±nׯlЫfÌ©eÕ²nÞ¹nÚ³dѨ^ϦdÖ®kÔ°oÕ©nÔ«kÕ¯hݸnÛ¸lÔ±jÏ­mÍ©iÖ°hÖ³hÔ®fÔªfÕ©dÔ¦^ѨbÙ¬fÙ¬fÙ¯màµm»žg㿃â¹~ã¸xäºuæ»}ã¸á¸}æ»zè¼væ»xæ¼~ç¾|ä½tæºwä·qáµræ´}â²yä¹yéÂ{æ¿väºtß°mß°lä¶pã´hß«eܨgß°nã²qä³ræµuå³ræ½ëÄç¹yãµyáµuã¼xäÄ~çÁ€è¿~ç¾}廀侄ãÁ€äÁç¿}åº{ã¸|çº}á´wÕ«vÙ´wÛ¶vׯuÓ¨jÇ›]Ä™\ÉcΦmݲoá´o߸}ãÁ‚ã¼~ã¼|ã¿~â¹zâ¶uàµwß¹yâ¼{â¸yã¸wæ»yå»~åÀ}ã»rݳsܲnÙ²lÛ³rä¼wçÂ~æÂæ¿~ã¹~ä¼€ä¼æ¾€èÁ}á·và¸xç½uè»té¼wè¼vå»uç¹på·rß°fÖ¦]ѨgÒ®gÕ­m×­uá´uâ·qݲpáµxༀݸ~ßµ{Þ¹vܶoÚ°mÓ¬dÓ¨_ÖªfÖ­cÚ¯g߯rà¬lá°hà²kÛ«gÛ«dÛ¬hÛ«eجb×­jÛ¬eئ]ÔŸYÖ¢W׫cÚ¬iÙªhÜ«ná¬lÕ¦aϧaÛ³qä¹xä»vã¹{áµuܹqà½}â·€à´xä¸}åºwáºwâº}ã¾~à¿‚ß·xá»yæÃ…æÀ‚åÀ‚åÃä¿{á¹yß³rà³rÙ¯uϦjͤeϪhÖ°nÙ²m׳pܱoÞ°pÚ«kتjÚ®lÙ«bÙ¨bÕªeÒ¦aÕ¦bÖ«_Õ¦^Ò¥`Ò¦cѦhÔ«kØ©hÕ¦iÖ«jÙ­fÙ¯lÚ¯mרhÕ¨hÖ«jØ«fÕ¨]ÍŸ]Ë¢bϧcÒ©bΤ^Í¥bÖ²tß»€Þ¼€Þ¸}ܱuÙ®oØ®mÕ¦mÕ©nÖ¯jØ­h×°mܸtá¹vܹuݹuÞ·qÛµpݵtÛ¸mݺoÞ¶vÛ¶záº~ã·xÝ·vÞ»y߶u×±sÙ¸uà»sܳvÖ°vÕµvÛ¸{ܵڲvܵpܸzܺzÞ»zà»yà»yß»‚à½}ß»tܵ{Ý´zÚ·rÜ»wâ¿yà¼vݸ|ܸ}Û¹zݸzܺ{Ú¼zݺyÛºwÙ·vÛ´ܶ}ݹsÛ¸uÝ»|ܵpׯj×´rÚ³mÜ´vÜ·y×°qÚ³s߸vÛ¶zÚ¹zݶzܲrÙ³kÜ´mÞµsݵuݹvܶtØ°oܲußµzà¹t߸rܳqÜ´nÛ³iܲlÛ®lÔ¨gÌ¢cϤeÖ«o׫jÚ«a׫cתcÙ¬cÖªjÖ«iתdУaѦcÒ¦gÏŸdÕ¢_Ò¦[ЦbÖ«kѦkÍ¢cÍ¡eÌ¡h΢`Ò aÍœ_Ç`Ì¢eÏŸdÀN¸‹IÊŸcÒ§nÍ jÍ iË¡bÊ¡_ÇœeÈ›cϦbÒ¬cѨeËž^Ë¢_ÕµqÑ©lÆ“\ˤfÕ²uÌ b”WÈœ^Ê `É\Êš]Ê™aÌžcÍŸ_Ì[Ì£`Õ§aÒ¤bΣaÏ¢cФbÏ¡^ΙWÓ¡\Ù®hÚªeÔ£`ϦfÌ¢eÌ¢dϦa׫eÖ«hÒ§fЦgÎ¥dѧbÓªbѦ`Í¢\ʤ_ΧbѧeÓ¬kÒ«hЦeÕ±mضsÕ­iÒ¬hײkÚ²nÑ«hΧbÖ­fÕ°hУ[ʘWΦdØ®jÕªkÓ­fÖ­hÚ°qÜ»wÔ²kΫiÓ®sÖ°qÖ³uÙ¶yÕ²sÑ«hϪjÔ¬oÚ·uܺyÛ¶tÓ°mȦgÁ¡aÆ¡cΩhÓ´oÖ´sÛ·sݼ{ß½ÞµwÛ²qسqÕ©hÔ«fΰmÒ®jÒ¬hͧ`Ì£\˦gÕ¯oرnرoÙ¯oÕ«mÓ¨gÓ§`Ò§dÔªfݳhà´oײvÑ­kÌ©`ѬfÛ²nÚ±pÓªhΩ`Ó®fÔ¯nÔ²iÔ±cÖ®iܲmÛ³kÓ­pΫoͦlÑ«kÖ­hÖ­nسrØ°oØ«j×­oÖ±pÖ®hÕ¬bݳdÀžc伇ãµ߸zÛ¸rá¸y潈åÀ€èÄ{èƃåÃ濆êÀˆêÀçÁ~å½|ã¸qæ¾vè¿zéÁ}èÃ…èÁè¿}ä¹sâ´qá´pÜ´oÚ²jÛ²ká¸rá¶pã³nå´pÞ®já°jå¸rãµrá±iÝ°l߯sâ³uá¶zÞ¶yß´tà±sàµsã¸tä¶yáµ|â¸wæ¼{ê½{å¸xÙ®qدnܳqÙ¨oÍšcÙ_É¡bÕªdܲqã¹yá·vݵvܶvܱrß³zà¶~â´zá¶{á·zã¹zã¾廃亂翂æ½~á¹åº}á¶rÙ®rÒ­uÔ²sÝ·vÞº€à·‚å¶|æ»vã¼và¸{á½€ä½~߶}á¹{ç¿}ç¾€é¿~é¾yä¼tä½qç¼mã²kÖ¦lÍ¥hÒ°qݺxà»uã¼}â»záºyã»xåºvá»}Þ»xß·tÞ·|ܵ|Ö©iÒªk×±oÚ¯hÛ®tݲvßµká³oß®oÝ«eÙ©fÙ«lÜ®lجhÛ²mà±jÚ©_Ò¢XÕ¢XÞ°gß´fÜ®dÞ²mÞ±mÓ¥aÌ£\Ö°kà¸xâ´pá´nÚ­rÙ«qܳsܲuÛ®oÚ®gÖ®hÖ±kÞµsáº~à·xÛ³nØ·rà¸oà»pྀ待߹}Þ¸tâ¹uà·vÛ´xÖ®nЬnÓ¯rܵlá·wÞµvÞµrá¸wÛ¶oÚ²gÜ°lݱlݳnÙ³qÚ´lزlÚ³qÚ±gÖ­eÔ©eÓ©^Ô¬eÚ®hÚ¬dØ©eÙ«gØ­jתhÑ©YЦYÓ¤[Ñ£WÈŸ[Ä]ÌŸaÓ¦\ѧ`Ì¢bÊ¢^Í¥bÕ«gÜ°mÞ¯kÖ¬gÒ«rÖ«rÙ®nÚ¯oÛ°rسvسsݵtÙ¸xÖµpݲpÞ³xÛ³zÙ³rÛµtà¸xá¶uݲqÙ³rÙ³nÚ³oÛ²rÛ±rÙ³nÙ´oܵpÛ·qÖ²tÖ°uÙ´yܵsÙ²nÙ³uÛ·yÚ·yÞ»zÞ½€Û¹{ÛµrܵpصvØ·yÙ´vÛ´rÜ·}ݸzÝ»uܼƒÞºƒß¼yÞ¹zÙ¶}ݼxݺv׶vعrÜ·rܸuÜ·sܳtÛµxضvÓ´v×µvÛ¸xÚ»zÚµvÕ®oÓ²qÙ¶vÙµzضuØ´oÕ®lØ«jÙ³lعqÙ¸sÙ·qÙ²nÖ¬fÕ³sÙ¹zÞ·pߺsÛ»yܸqÞºqÞºyÛ³oÖ¬jÒ§hÔ©fÚ¯gÙ°jزj×®fÖ©bׯfÓ°hÓ­lÕ­nÒ§nÔ¥jÕ©dÓ¨fÓ¡dÐœYËœRΡ[Ø¥eÕ¤_΢\Ò¤dÓ¤hÑ¢bÍŸ^Êœ[ÌXÏZÆ’VÅOР\Ó©kЧ]΢VÊ›YÆ—XÇ•OÁ”OÄœWÏ¡ZПXȘYѦmÔ³pšQÄ•OÔ§aÓ¥eÈ™]–YÇ™\Ñ¥cѦ`Ê™SÊ™WËŸZÈœQÉšUΟZÒ¢\Ô¢hЦgШdѤiФ`Ф^שiÞµgÙ±cÔ¦bÒ¦YÌ¢UÈ›YÌ¢cÔ¬jÙ¯kÓ«gÏ«hΩiÑ­lÖ°tÒ¯oѨkÓ¦jÍ©bΪdÚ²nÑ­rÊ¢jÏ®kÚ¸nݶnÙ³rÔ­oÒ¬qѪsШqÖ´vÑ®pÉ¡^ʨbÙ³oÞ·pÛ·pݵmرnÓ±pÕ°oÑ­iÕ°rÙ¹{ÖµuÕ²r×´xܳsׯqϨmͨlÕ®oÝ´mÙ·nÛ·p×°qÈ¢hÄ `ͧbÓ¬m×´qݺvÞº}ݸzÖ²qײwÛ¯zÔ iÐ¥eШhÑŸbРYϤ[Ï¥ZͤUÔªdÖ°kÕ­hÖ§iÔ­jÕ±kÕ©gÓ©bÒ¨[Ö¯eصtØ­kÓ«jЪkЬgÖ³mܳnÕ¨aˤ^̨fÒ¥eÔ¨eÑ®fÑ©iÖªiÖ¬bÔ©bѨbÐ¥bÒ§jÖ®lÙ­mدrزmÙ²lÙ´nÚ²rÛ¯oÔ«eرkÀœjçÁ~æ¾~Ṁݵyߺ‚äÁ†èÁèÇìÅŠçÁƒà½€å¿èÂéÄêÁ†å¾ã¼~㼃çÀ‡ëÁêÃìÅ{ëÄzçÂ}ä¿|à¸yܵvÛ¹uÞºtâ¸táµnà±hâ±já±nÝ­oà²pã´là³jß­mݬqÛ±uÚ²rݱkã¯má±sä¶uäµwß³uá³tæ¶xç¼zç¸vÝ©iÓ£aשhݯkÜ«hÞ®kà¹rà¸xã·xå¼yã¸uß³qÛ¯pÕªkÙ®rá¶vá¸vá¸|ã¹yá¸y亂ä¹~Þ¶{à¼ä¿ä»äºâ¹zÞ²uÒ§mÍ£hÔ«rݳuà³táµuãºrà¹tÞµxÞµuß¼vàº㼉èÁ†æÂ|æ¾€èº}è¼zç½~è½~ã¹uÖ®kÓ¨kÙµzáÂ~àÁ}â¾æ¹æ»~åÀâÀå¿}߸wݵrá¼xã·uà¯qÚ°tÛ´{à¹uá¹päºyä»}ä¹wâ±jݯjÛ´pÝ·{â¼€á»zá¶vãºyà·vجq׬jà¹pæ¿xâ¸qå¹qç¹qÚ¨dΡbЭkÚµsà´sà°pÛ­iÛªgܪhÛ¯jÛ«`Ö¡[Ô¦cÖ­dÕªhÙ«nÜ­jØ«jÕ¬lשgÚ¯váº}âºxܱwܳz߸rݶsÞ·~ݵv×±sß¹~ä½|ã¼{â½Þ½}ߺyà¸}ݹ{Û¶sÞµxâ·wàºuã¹xá¸uáºxä·{ݳqÛ±gÝ®iÙ®iܱjÚ®jÙ­n߯rݯrÛ²qÚ°lÖ«jÓ©eÎ¥gË¢bÍž[ТbÓ©fÔ¨aÕ¨`Ρ_Æœ_Π_Ô¥`Õ¬jÚ¬fÚ¯jܳp߯jÜ°nÚµnÜ´lÛ²lÙ±mÖ¯sÚ²tÜ´rØ°pÛ±nÙ³sܵyß·{ݵyÞ¶uݶqÛ°mجjÔªiÛ°oà»tܸtݳqà¸xß´rÚ´rÚ¶tÛ´rܲvܳtÚ·sÖ¶xÚ³yݶuÙ¸{Ü·|Ü´yÙ²tÚ´vÙ²vÙ°tß³{ܲ}Ú²v߸yß¹{Þ¸sÞ·oܵsܺxà»xܶsÙ¶rÛºpÚµqÙ²vÚµtÙ°rׯoÖ´xÚ¶{Û¶vÙµvسuÛ´uÙ¶pÓ¹o×·vÛ³vÚ³sÛ±qÕ®t׳yÜ»xÚµsÚ³rÞµtÖ¯oÕ°tÞ´vÜ®nÙ±pصoÚ´oÛ¶wÞ¸xÝ·oÙ¯hׯmÛ¶uÛ¶rÚ²rرuÙ²tÚ±tÕ°oÒ¯iÕ¬pÙ­uׯq×±pײkÔ¬jÓ¥hÑŸ^Ê™YÉYѪ^Ö¯fØ­iÙ°qÖ°oÒ¬hϤgΣhШgÓ¦eÓ¥dÑ¥lÖªpÕ°iÓ©eÕ¦aÔ©aÓ£aÎœVÉœOÄ•UÃ’RÈ™PÌž[Ô³pЯjÊ—XئdÞ±kÕªfТ\ÌšTÌœ_Ó§eЦ`Ì¢eË¥cË¥]ЪeÔ¯fÖ«^تdÕªlϤbЧeÕ°nÖ°hÛ­eá°lÞ´kÖ­bÒ¢bÒ¨eÍ«gË£dÑ©dÚ¶rÞ¶sÙ¯hÖ¯nѬkÒ­hØ´oÕ­qÓ§lÓ¨nÊ dÇ bÔ²rܲtÕ¯oÕ±x߸zá¿wÚ´nÔ¨fÓ­nÒ±nÑ­nÙµwЫjѧhÙ´sÙ¶rÜ´tݹ}ߺ{Ú´rÓ¯lÖ«iÔ¦kÕ«tÜ´vÛ´qØ´oÙ¶uܵvÚ°tÓ¬rÒ¬iÖ±mÚ¹yÜ·yݳtÙ°r̤iÈœcÌ¡iѪjÖ®iØ°lØ®mÖ¬hϦbدqÜ»vЩcÒ¦dÕ¬fУ`ΡbѨaÖ­fЧhÐ¥fЧ\Ï©cЧfÕªeØ®lØ«dÖ®iÒ­oЫkÔ°lÔ®eѪfÑ°oѯmÓ«oضuײgÌŸWÈšZÊž_УfÕ¢`Ò \УcÐ¥`ЧeÒ¥fΣ^Ë¥bЩgÒ¥gÒ£hÕ«kÚ¯lܲrÛ´qÚ±nÔ­kدk¼Ÿeæ½{ã»}ã·áµÜ³z߶}à·á»‚èÇ缂â·zä»~潂迂鼂乀ã¼ä¹~ä¾çÀ„꺂é¾çÁéÁ~îÅ„è¼…Þµ}â¸xâ·vܳrÚ­mÙ¯rß¹zã¹sß°pá³rå¸sá´pݵtØ°oÖ­mß³qæµrá¬kÚ®dß¹på»xç¸lã³kß³nâ³mä°lߪcÖ¥eÕ¥cݬ`â³lä¸xç¹ræ¹oå¸ué¶uä¶pá±pÝ­sÕ©i׫cܬhÞ±käºräºxà¶oݳgÚ²jØ°iسlݵqà¹rà¶rá¶rÚ°gÏ¢ZË¢^Õªhݯrܯmâ·nã·t߯rß®qܶvá»{æ¾è¿ˆè»€à»zà¹}ä»~æÁ„ç¾ë»}縀ڲ€Ö®vÝ·~ä¿~ãºvá¹xå¼~éÆ…èÄãºzâ¿záºtá´wá¸|à¸uá¹râ¹{߸{ã¿yæ¿}â»|ä€èÄ‚à·xà¹vãÂ~ãÃ}èǃèÄç¼{é½{å»xÝ°qÕ©fÛ¶kçÂwæ½sç¹tè¸sݯnЧnÑ­tØ·yß¹yá¸{ݵvÞ²mܲhÚ¶mܲqÙ¬lÚ³rÙ³vÒ§lѧVÒ¦[Ö©g×­bÍ¢aѦkݳrÞ°mÛ¬eÚ®hÚ°mÙ®oÛ®qÚ®kÕ¯sݹ|â¾{á½á¼ݹ}Ý·}ߺvß»xݶ{à´{à·vݵrÞµtà»zâ¿~Ề߶uÝ·jÜ´nݶtß¹wÞµsÙ°pݳsà¶yÞ¸}Þ¹yÞ¸vزuÓ­qØ­kÓ«gЩhÕ¨jÕªhÓ®dÌ¥aÅœ]ɤ^Î¥^ѨfØ®lÛ¯lÛ¶pÚ²kÙ«gÖ¦`Ѧ^ÔªiÖ«kѧfÒ§hÖ§jÕ£dÕ¨cÕ®e×­eÙ©gÙ°hܶkݬmÖ¥cЦbÓªgÕ±kÖ³rÙ°iÚ°iܯuÞ¯vÝ°sÜ®nÛ²k×µqÙ°qÛ³rÙ´uÚ²tÛ¸sÝ»tã¹ß¸€Ú´v×­tÖ®sØ°rرwÙ°n×®hزrܲsÛ²sÙ²rÙ³qÙ±lزpÙ°tØ­lׯh׳qÚ¶vݵq×±lÕ³qÚºtÛ·t×µy׶v×´v×´wضtÚ´mÙ·qÙ·yÛ·wÙ¸wصxÚ¸xÚ¹v׶qÕ³pÚµvضyØ·uܹuÚ¹rÖ²r×°yÖ´xÚµyܶwÝ·tܲs×±nÚ¶sݹsضiÖ°kدuÚ°sÔ¬jÏ©lÓ¨lÙ±iÚ³oÛ´yØ´xÖ¯mÖ¨dÒ¢cѦbÔªdÖ¬hݲkܸuÚ¹x׸yÖ²oÖ²jÔ²oÖ±qݳpÚ°pÙ­mÙ¯sÖ°s×®nשi×­pØ°oÖªgЧbÈUÆœVÐ¥_Õ¬mÙ¸}Ò­lÕ¨ià¹x߸sسnرnÖ®pЬoÊ¡aÌZÓ©bЧbÑ©mزxܳsÛ´vزzÖ²rЭoШmزsݵtÛ´tرvÙ°sدkدhÙ²oØ®nÔ©iЭpÙºyá½yÞ¸tÞ¸yصxЭmÓ±k×µnÓ¯nɦcÄœUÅ `ϬrÞ¶xÜ·vÙ¸uÙ¹lÜ»xÙ´vÖ¬kسo×±pÕ­qÓ²oÍ©e׫lܶrÖ³oØ°oÚµtÞ¸zÜ´pÖ±jÔ¬oЩpÔ°nسpÙ´sÛ´kÚ²jÛ±vܱpÖ­dЩeЦjÔ«mÔ¬gÓ§gÕ¨iÒ£[΢ZÍ¥eͦbË¡^Ï£cЦcÐ¥`Ñ¡_Õ©kܵkÛ¯jØ°kÔ°bÒ®hÔ®jÕ­h×®k×±jÕ­hÓ«dЬjѨnѬhÓ°hׯnÙ´oײkÒ¨iЪmЪfЩaÖ­gÔ«fЬfÕ°kÕ«`ΟUÍŸSÏ¢TФ]Ó¤^Ó©bÔ§`Ò¤`ÔªeÒ¨`Ì£WÊŸUÌ YË RËWР`Ò§eתlÙ­mÙ­iתcÛ®c»eåº|æ¼~㻃ṃá¶yâ¶|à¶yß´u㻆澂äº彃ç¿~廀â¹|á»wá»záºzæ¾{æ½uä¼y羄ç»å½|ëÅ~ìÆ„éÁ‚æÀ}æ¿{å»}Þ´{Ù³uá¹yâ¾{ß¹zã¾|êÀèÀ}ã¸yݯrÝ´sä½|ç½|ä¶tà´ræ·}é¼yæºwæ·|ä¸vå¶ræ³rà³mÜ°hÙ¨kÖ¢hÕ¦dà´té»~ç¹wê¸ué¶pãµkç¹sç¹wã³nã±dã°aâ±jå¹ræ¸rá®mà®hÝ«dÝ«[ß«dÞ«oß±tæµmå²nÞ¯sÛ«kØ¢hשoܱqÙ«jÝ­já¯hà­kâ²nÞ¸s߸räºwä»ã¸á¶|à¶~å»éÀ‚è¼~ç¸tã¸tݶuݸyã¼ä»€ã·å¹å¾çƒçÀƒã¹~á¼~á¼}ãº}å¼á½€Þ·zâ¸yã¾}åÂãÀ€ã¼æ¿…äÀ~á¼{ὂâÁˆä¿ƒã¿~à½~à¸á¼}ã¿€ã·~Ù¯qÕ°pÞ¹vã½xå½wæ»xà³uÕ¨qÙ¯yݹ{Þ¶uá¸{à»~â¹yÞ²yÞµ{ä¼~âº}ãº~ߺwÕ°hÒ£eѤfÓªaÒ­hϪnÏ©mÓ«nØ­gÙ«cÙ«hשfتhØ­jÓ¦eÑ¥e×±iݶo߶p߸oÛ³qÚ²qܳpß»váÀߺ~Û³wÛµuÞ¶zÞ¶á¼ß¼y߸rÛ¸rݹzá¸{â¿xà¼vÙ³pÙ¹vÞ»{à¾yáÁuâ¼xݳyà¸uã¼zÞ´vÛ²tزt׬mØ­lÔ©jΤcÓªdÕ¦iÏ£hÔ­gدfÖ¬iÙ¯hÙ°fÖ§aÑ¥^ЧeÓ¤dѤ`Õ¦dÕ«lΤhΡ`Ч`Ñ©`Ö©^ש`Ù«jÙ§jؤcبbÖ¦fÕ¥i×¥fÖ¨aÓ¦]Ö£dÒ¥fÓ©iÕ¬mÖ­kØ­jÖ«kשkÛ¬mÙ®oسoß¹tã¹tá¸sܳvÖ«mÖ«b×®hزqׯhÔ¨hÙ­qÙ°jسrضvÚ²rײrÕ²pܵpÚ²sÖ°nÙ¶uÝ·uÚµyÙ²xÚ´pÙµsݶu߶u߶vܵv׳uÖ³w׳v×´tÙµtÞ»{ß»~Û´vײyÙµxÙµsÔ´tÕµtÙ¹uÛ»zݸxݸvܼ}޽߽€Þ¼}ÚºyÚ¸{Ú¹zݸtàµvݶwسpÖ°qضzÙµ€×°xÔ¬nѬnÕ°nØ´oÚ·zݶ|Û³vÔ¯jÓ®hÙ°nÙ°oÛ³sà¶sÞ·qܵvÞ³vÙ´uصvزr×µpÛ¶oÙ³sØ·uÜ»uÚ¸xÙµtرpÛ´vÞµvݵqÙ²lÔ¬cÓ¨]Ö¬cÙ´pÛ¶tͪiÓ­r⿂ݼۻ߿޻xÛ´tϨjÍ¥dرnÑ°lήjÖ´vÖ³vÖ²vÚ¹|Ü»xÕ±mШjÖ®tÛ¶yÚ³sÙ´tÙ¶yܸxݹyà¸và¹rسuÔ­mÖ²rÚ¹}Û¸t׶tÖ¹x×±rÓ®uØ·zØ´sÇ£^Þ]ΧoѨpÙ°sÚ´v×±vÕ«mÚµvÚºv׳qß·zݶuÔ«pÒ¤iÓ§iØ·rÙ·m×­nÔ­lدiدm×±mÛ²r×®mѪf×­oשlѨlÓ«mÕ©dØ«kÜ°pØ­hÈWØTÐ¥cÒ¥aÍ]Ò¥bÕ¬eÓªhШhÊžgÌžfÓ¢`Ó¥^Õ«cÖ¥`Ô¦kÕ°oÜ´nà·sÙ²kÔ±n×´oÔ°jÒ®lØ´uÛ¸vزoÕ©m×®o×°lÕ¨gÖªlÙ­jÓªjѬhÓ«kÔ¨jØ©bÙªcÖ¨cÓ¦bÖª`Ù¨aÔ§\Ô«_Ö«bѧUЩVׯkÙ®jÕªeÜ®nܯqÖ©kѨgЫaÑ©WͤWÌ¢^Ñ¢]Ó¤[Õ¨aÛªfÖ¨fÞ°kÅ¡jß²mà²já¸nç¶må´oã¸vâ´uÞ²qã¼yã¼zߺwå½€ç¼ã»}ä»{ã¶vä¶uè¹wã½wâ½vå¹~湃â³xßµuã„êÅ‹é‚ç†èÂ…èÂä¾à¸yà¹}ã»}ä¹yã¼|潂翅俄ເ佂æÀ|áÂ}âÀ{åºuä½€åÀ…鼄澆æÁ€èÀ~ç¼~æ¸yæ´và±oÖ§fÍ¡eÔ±rä¹}ä¶uå·nä´rà°påµxê¼ç¿~åºuá¶rã¶qå²ná³oá¸tå³qá°hà®fß­j߯pä³täµqá´oÞ²qÝ°oÛ¬pØ­sÛ¯lÛ¬mÜ°rß°nà®oâ¯uã²và´lá³máµqâµqä±tâ²xâ´væ³{è´uã²pÞ±qݲpà·qç»vè»{ä¼}ãº~ã¸zà·rà´qà³vá´táµyßµ}áµvá¹rá·vä´xæ¸tç»qå¼vã¾æ¿ƒã¿zàºvà·}ß»~ÞºyܶpÚ±jݱo߶xáº{ãº}Þ¶xدoÙ±vá¼~ä¼|ä¼yáµqØ­lÛ³yå½}á»yݹ|á¼€äÀ|à½{ཀã¿á¼}ã»ãºߺrÓ¬kÏ©nÔ¬oÒ¨nÒªlÒªjѨmÔ¯oÖ¯lØ­jÙ«fתfÙ«iÕ¦gÒ¡iÔ¦fÒ¦bÖ¦`Ú¨cשmÕªj×°kÚ¸xßµuÝ°uزrׯkÝ°qáµuݵtÝ´rß³uÞ´yÞ¸yà½{ߺzÙ´mÖ°gÙ²pÞ¹vß¿{á¼~Þ»wݹuÝ»€âÁ‚心â¸~ß´yݶyÚ¹vÛ·qزqرwܱrÑ­jÑ°lÛ±sÚ¯oÔ±jØ´r×°rÓ¬h×®lØ®gÑ«bÔ¬gÖ°gÒ«cͧgÌ©gÏ©_ЧhÓ§lѧcÒªh×­qÙ­nÙ­iÛ­lÛªgبbÕ¥aÒ¢aÍ£^ËŸYÓ¢eתmÖªlÒ£fÏžUÒ¤WÔ¦dרlØ®nÚ¯jÙ²hÕ²iÒ«eÖ§^Ô¨^Ò©eÔ§gÒ¦cѨdÓªeÖ°pÙ³pÛ°iÛ­l×­kÖ®pÖ°nÔ¬lÚ­rÜ´pܸtݶvÛ³sÚµkÝ·lÛ¶mزmÙ°rزpײt×±uÖ³oÚ³sÛ³wÛµyܱzÙ­wرsÙ°lÕ®mÔ´nÖ¶oÙ³pÙ±pØ°uÙµxÞ¶xÞ³uÛ¶vÛ¶rݶqÞ»{Ù·xÙµr߸vÙ³uÖ²qܶvÛ¹{Ú¸pزnÖ±uÕ±oÖ²mÛ·yÞ¼~Û¸vײnÕ®bÙ°kÚ®rÖ­jصqÛ¹rزpÖ±zÚ¶wÜ·sØ·xÛ·vܵxÕ²w׸pÚ¼wعzÜ·vܸvÞº|ß¼~Ý»}Þ¶vÛ²rÕ­lÓªhÙ²jÓ²gË¥_ѪmÙ³|Û²zÚ·{ܽ€Þ¹ܳvÒ­l̪jÔµqÕ´oË©jʦjÒ¬qÕ³zÚ·yܸwÔ±sͬjÓ°t×°xØ­rÛ´sÙ¶uصwÙ·yݹ{Þ»vÜ¿sѳrΨlÕ¯rس{Ó¬tÕ±n×´xÕ¯xݶv߶yÈŸa½œ]Ê«kϧk׫o×°rÔ±tÌ©hÓ­nÚ³wÕ®hÚ´nÞ¹zÓ­tÍ¢hÓ«mÖ¶tÖ±nÛ­jجkЧoÓ§oׯmرoÕªfͤ^ϤdÌœZÊ™UÐaÏ^ΟbשiÕ©^Ê›UÈž_ήkÔ°iͤeÏ£dÔªiÒ¬oÑ©kÊ fÈ¡hÓ¨hزnß»vÞºw×µs×±mײn׳qÓ«iÕ¯kÖ°nѨeÎ¥aÕ¬kزmÓ­fΦdÑ©hÔªdÍ£aΞ`Ñ ^ѦdÙ°lÛ³oدi׬bÕª^Õ¨`Ô£eצhתdÔªeÙ°jÙ¯fϦb̦dÓ®lÖ°iÔ®bÙ¯mÙ±oÖ´lÛ¶sÞ¸sصmÓ¯eШbЧeÏ¥`Ò¤`׬hÛ±nã¸málã®nå²já°fá±mÞ®lÞ«eá¬eÞ­dß°gá¯iÞ°há³pá²uá´zæ½uã¸nãµvè¹|ç¹xå·uè¹vã·yÜ­wÚ³wݼzã¿~ç¿€çÁ~æÁ~ç½~é»}è»~ç¾~èÀäºzâ¸z伆濉æ¾ã»}侂êćèƒã½{åºvç½ç¾†å¿}é¾yëºé¾‚è¾{ê¿€ç¼|â¶xÜ°nѦaѦeܲqà´rà¶tä¸uâ²rä¸qä¿qáºvã¹}à¶yã·vä¸wâ·uç»yç¹vã¶rã¶tâºyæºvå¹våµtã³qà³{á±uá³mÚ·u߸xä¶wã¸yä·tá³vá³vå²pã®fá¯lâ´wâ·qå¶næ²sá°mà°iá°pá¬jß«jÞ¬râµxé¹xê¼{éºqã¶nÞ¸pÞ³iß®oà°oá®kà±rß·uáµtä±pâ­lâ²pâ¸yáµwá¶xã¼â¿ãº{âµyâµtã´và°yÞµwßµ~Ý­|Ú²sÞ¹xß¼váºrß·wØ°oÚ±má¸|ã»{á´oÞ±o߸xá¾|â»~àº{ß¼{侅༂߻~å‡äÁá»yâ½€åÂ…â¼zزvØ°xتpÕ¨mÕ­rسr߶qâ¸wã·sá·vÛµsÚ¶pà¶tܯkÕ¬fÑ«gÒ©dÕ¥aצcצcÙ¨dܱmݯpܨcØ¥cÓ¢^Ñ¥dÚ®pÛ±lÛ²là±jÞ®hÞ®kÞ³lÚ°o׫rÖ©lÚ¬oàºvá½t߶oÞ³gݳhß·sß»uá»xá¹|ܹrÝ»mÞ»xß¿|á·x߸wݾ|Ú¸zÞ¸zâ½zà»vá¼{á¿{á½{ãº}ß·xݶvÛ²oÙ³pÙ¶yÛ³uÖ±rÑ«nΩhЭiÖ°nØ°iÙ²lÛ³oܸráºrãºoÞ»rÛµtݵtܱiØ©hУjШlÖ­kÚ­kجiФeУfתhÛªbתaÓ¨eÛ¦eÜ­gׯjÓ£eП`Ð¥`Ó¦cÔ¦gѦhÒ£hÏ£lÒ¢fÖ¥cÖ«^ÕªbÕ¨cÖªcЦcÏ¥aתa׫`Ö¬fÜ°eÛ°eÓ­hÒ«cÓ§`Ú®jÜ´jÕ­dתgØ«kÒ©jЪgÒ°hÕ¯lÖªtÖ©jÕ§bÓ¦cÔªdÔ©hÓ­mÕ¯qØ«nØ­iØ°oÙ­vܲyÙ´uسqÛµuÓ®mѱkÛ¼{Ù¸uÖ®nÚ³zܸ|Ù´vزuÚ´uÙ³sÛ³yݹ‚ß½‚Þ¼~ݹxÚµu׶sײoÕ°nصv׳tÒ«sÕ¯pÕ¯nÕ²yÙ·}Ù´vزuض{Ú·zà»~ݶ|Ø´pÜÀy߆àÂáƒཀà»yØ·uѱnÚ»tܺxÒªhШhͧmΫjÚ²mÚ´tÚ¶zÛ¸{×µsЭhÖ®oصs˨gÄža˦hÖ®tܲxÞ¶wÚ²tئoÓ©rÔ³lÙ³i×±oÕ±rÙ±tß´{Þ»ݺvÙ¯pÑ«vÍ«pѬpÕ­t×­sÚ¯wÙ¯tÒªkÓ¬q׳tǤhÀ˜dÄ`Êž^УhÓ®kÕ°lÈ¡]Ρ\×­jÕ¬jÕ©cÕ«kÕ¨lСdУe׬gÖ¬gÓ§iÕ©iפfÕ¥h×­iׯjШcÐ¥eÐ¥fÌXÊœ^Íž^П[Ô¥eدiÔ¯dÒ§eÖªhصjسd̪^ɤfÒ«n׳mÒ§lÉ`É bÏ©t׶~޻߹uÜ´qÚ²uرpÕ­jΤfͤgÒ¦hÐ¥jÌ¥bШbÔ¨dÍ£]Êž`΢eÑ£cÎœYʘSÑ¡[Ù­oÝ·xß¹uܵrسjÙ²jÙ²kײdÖ¬bÓ¥eÔ¬e×´pÖ´rÓ®fÐ¥fЩiÓ®hÔ­iÓ®n×®qÖ±pÛ·u߸yܳxÙ²jЬa̦eÒ¦dѦdЪgÙªjâ°oÀ¤kâ¸sâ¶mà·jà¶oà´oݲlÚ¬gÝ­fá°fá®bÞ¬gÙ©iئ`Ú«eà¯má±oá±lã²qãµsä¸rå¹zà²yتu׫qÛµuà¶}áµ}ã¶xæ¸yå¼|â¹€ä¹zåÁzåÂ~ä¹y߶uä»|åº}á·wã¶{á¶}ä½}ç¾€â¹~à¸yäºvæ½{å»|â¹wä¾vè¿}ç½~éÀ~éÀ异⹀߯vÚ­oÛ´nßµyà·yà¹uÝ´oܶvã·~èº{ç½~ã¼ã¼|ä½{æÀ‚êÄ迅å»â»yå¿~éÂè¿€ç»}å¸|â¸vãºvä¶{æ¼|æÂ~æ»|ä¹uá¸và´zä¶uæ¸nâ¹nã·oã¶uá¶wå¹tä¶wà±tÜ°iÚ­eÝ©kØ¥cÓ«`ݳpä³uâ²på³qæ´rß³nݯnß­nà­iÞ«gܯqß³sá¯mß©gÞ©cÝ«g߯k߯jß­jà®nã¸tãºrà³pà´náµlÞ¯nݱqä¸zá²uÚ¯hß³qâ¶vå´råµsݱpÖ«mÚ´uâ³vá°tà¹rá¸oß´mرpرqß·xá»|á»tá»y⻊⻂ãº|áº~ä¼~ç¾â»{à»zà½|ÙµzÖ³vܸzãº}æ»{å»vã¹oܶrݹxç¼vã¸yÞ³wÙ¯jÔ²lÚ®qÝ­iת_רgÛ­jÚ«fÕ¤cÔ¤_ÒŸ^Ìž[Φ^Õ©cÙ§jÙ¦bÔ§TÒ¥ZÖ¥]تdצcÔ¢WÕ¨XÚ«bܪgÙªdצfÖ¨lÛ«gà¬eß³xá²}ܯpܲmä¼|ãÂzá»nÞ¸tÚ·xÞ´tã¸|㽄á»{ß¿{å¼wä»wá¾zä¸wá¸yÞ¹€âºxá»pà¸}Þµ{Ú°wÙ°|×µvÛ¶qÞ³tÞ¶sÞ»lÜ»và»}â»vàº}຀áºyÞ¸xÚµuÕ¯mÕ±nÙ²mØ®o×°oØ°kÛ±lÜ´nÚ±o׬nÓ§fÕ«cܵiܲkÖªbÒ¨fÒ«oÕ¬iÓªbѦ\Í£\ËŸbÌ¡`ϤaУbÒ¢[×¥\Ø®fÓ¬eΡZΟ\Ë¡bÊ£cÒ¦dÕ¨gÏ¥_Ë¡ZÇ¡`ΤkÖ©jÔ¦bÑŸ]Ò ^Ô¬iÎ¥hΟ\Ò£\Ï¡aÍ ^ΞSÏžXÑ `Ï£ZѦ]Õ¤dПaϤgÓªhÔ¨_Ö­gرqØ®oÚ¯qÔªkÏ¥fØ°qܲuÕ®nÔ­n×­qÖ­r׬qÖ°tÕ´yÚ¸uÛ»xÙºzܹyÝ»}ܾwÜ¿wݽwܺrØ´nÕ®mÑ«rЫnϧhÓ©kײrزuÙ±vضu׳uݶvß»uÛ¶zߺà¿{Ú¹uݹváºyÞ»vÙ¸qÓ²pÖ¶rÚ¶vÙµtÓ³rΫlÒ«gÖ°qرzÚµ{ݶ€Ý¶zÙ®kÒ«rЫrÉ ^Å–XÎiØ­rÜ·uÞ¶}Ù°xÓ«kÖ¨hÚ¯i×±oÕ°oÔ¬hÖ«nײqÚ·sݲs׫mÒ£eΠgѪgÙ²lÛ²tدnÖªkÍ `Ϥe×®oͤ`™VĘQÈœVУbÖ«nÚ¨lÌœZËžZÖ­jÖ­gÒ¢[Í_Ë `Ï¥\Ôª_Ó«fÔ©`Ô©cÕªiÕ¬eÓ«dÕ«hÓ¦fÍ¡dϧfÕ«hÕ®hÔ°mÖ­nÕ¯hÕ³nÙ²t×°r×°tÛ²uÖ´qÒ­pÍ¡eÅ]ΨgرnÔ¬fÇ\¿˜_È¡eͦiϨoÔ­sÙ¯qÖ©iÖ©dÓ©cÌ¢\Ê]Ï£dÖ©eÎ¥\Σ\Ñ¥^ÉXÈ\Цaѧ_Ф\Ò§_Õ­mÚ³rÝ»xÛ»x×µmÖ´pÚ·yÚ·uÙ´tصoѯbΪ`׬fÙ±lÙ±jØ°hÓ¯jÒ³iЬhÒ©mÓ­lÖªjÛ¯qÛ¶qÛ³n×®oѯj˧bʤgÍ«fάhÒ¨oÛ±p» oÝ´{á¹|â¹潇ëČ潃ߴnß²jâµsÜ­nبjÒ¦nÏ¡cÕ¥^Ü­gÛªhÞ§eá¬fÞ²já³tá³sß´lÖ«jÖ¨nà°qà³râ²pæ°oâ°tß´vá³vä¶{æ¼}ä¼}âµtß²wå¼{ä»{â´}æ¹âºà¹~å½|å½ã»zã¼{弆軄æ¸å¹€ç¼}æº{é‡ëÄæÀˆæ¼å¸}à»~á¼~⸀ã¸滀ä¸~ݲ€ã¸ƒé¾‚èÁƒçÀ~æ»}⼂èÁ‰é…軃淂ߵ|ß·vé¾ëÊêÃ…éÅçÂè¾}æ¾{ç»}龆çÁ‚æ¼å»€ã¸xâµ{â¶}ä¹zçÀ€ëć꿂ç¹æ¼}ã½ãµzÞ°pÛ±lÙ¬hÕ§kÚ®oÛ±lÙ¬hܬlá²uà²rݯkÝ­nܯtÙ­nà±nç·zâ²vݬmÜ°iݯdÞ­gà¯iâ­là­nâ³pß±pÞ²mß³tá³oâ¯g߬iã³mã³o߯uà¯sâ±ká²oã·nçºrá³lÖ®nÝ°xç·yç»}ã¶vß³kÙ¯iÙ¬lßµpá¹vä»xä¾|ã»}á¸uá¹uãºvå·|幂ã»}ä½{ä½xÞ¼zàº}â¼zàº}à¸}á½xã¿}à»zã¼yç¿|å½yå½zä¹z߶wÛ¶uÛµjÙ¯b׫_Ü­fÜ«k׫iÙ®fØ©aΤd̤eѦ`Ó£bС]ÏžXÍ›OÍŸIϤWÓ¦YÒ£VФXÒ¢UÔ SÖ¡YÓ\Õ _Ö¦aØ©`Ý®eà´fÛ²gÜ´oå¼yä·tß´oßµsݱoÛ±lâ¸sæ¹wä¶tÞ¶tà¸{â»yÞ¶nݳrÞ¹xâºvâºxݸ{߸ã»à½}Þ¹wݺyÞ¼|ß¼yá¼|ãº}Þ¸vÞ»xà»zÞ¶vÞ¸tâ¼zâ½}ß¹zÚ²uرvÙ³xÚ´và¸xâ»yá¹zá¹}á¼xÜ´rÖ«oÑ«kѬg׫nתkÒ«jÕ±qÙ´q×­oÕ­o׫oÕ¨kÕ©gתkÛ©lܬgÙ±nܳtÞ²rÓ©mÉŸeÎ¥cѪeϦfѪiÏ©eΡbÍ¢eÎ¥]Т\Ñ£cУjÑ¥kÓ¬lÒ©gÒ§hÔªdÐ¥^Í¢^Ô£[Ï¢[Ф`Õ§aÕ¥[Ïž_ÌœbÍZÑ¡\Ñ¡_Ð¥eÕ¨gתiÙ°pרrПlÒªnÙ±s׫nѤcΤbѪhÓ¬jÓ­jÕ®oØ®wÝ´yÞ·xܼvÞ¾€Þ¸‚à¸zá¼}ÞºyÚ´qÙµvÙµwÚ±zÙ³x×°nÖ­q×±qدoÚ°qÙ²t×µtܶtدq×°r×´tÕ±n×­lÛ®pÚ°tÕ®o׫jרlÖ«jÛ±pÝ´xÚ²tتkÕ¬pÛ³sÞ²rà´wà±uÙ©hÒ©bѦbΟbÍž_Ó§eÕ«iÖ¬iÚ²nܱqרdÕ¨]Ù¨jÙ§nÕªjÕ©gÖ§bتeÛ¯hÙµrݵy׬mÓ«jÜ®mدkÖ¯rתkצ`Ô¨cÓ¬d׳fÒ©aËšWÆœVͧbÛ°ká¶uá¶nÕ©`ѤbÚ¬hÙ­fÓ¢\Í ZÍ£]Цb×­eÚ­gÙ­sÛ®rÙ«kרfÙ±m×±qÏ£fФaÓªdÒ§kÕ¨mدmÙ²pß´sá¶zݶxÙ²pÖ±mÙ³mÙ®lФgÈ™aÆ›e̦kÖ«fÓ©bž[¼“TŘSÈ™VÆ™VË _Т`Ó¦a×®hØ­lÓ©iΣbÒ¤dݳnÙ²lÖ¬bجaÐ¥b΢aÔ­gÚ´qزmÚ³iÞ¶rÞµmݵoÚ¸sسqׯoÛ¯lÙ²oÛµrÞ¶oÙ°hÓ§bÒ¢`Ò¥gÙ¯mÞ´jÙ®hÓ§mΧiÑ©iÓ©hÐ¥gÔ¥gØ­gÖ°f×­jÕ¯įaÉ iÒ©qÕ­gÒ©g׬p½›oܲyâ½}åÀæ½€êÀ†ç¿ˆâ¸{Þ´uÞ´uׯkÑ©jѧj̤cÌ£bÕ©kÛ²nݲmâ³náµnß²iܯkݯnÛ«dÛ©já®oá°fâ­_Þ®`ß°iá°mâ®qã²rá±oá²vã´vâ´xäºä¹}ä¸yä¼~㼂侀ã¼~á¾â¼zá¶zḂä¹å·‚丂ä½}ã»æ»‚ç¿}â»xá¸yâ·{à¶zàµyãµ{ã·}ã¸|â·{ã·zã»|æÀ|ç½~ç¸zæ´yä·y満æ·åº€ä¼}á´xÚ°tã¼vé¿zå¼{ê„éÀ„ã»~ãº|ä½~æ¿‚æ¼€äº}ã¹uá¶ráµyã»å¿~èÀêÅ„êÂ~ç¾è¾éÀ{çÂ{á»}ݶ{׳tÖ­qÜ°xÚ±wØ«pÜ´wá»|ß³{ß²{ßµuÞ³pÞ·qâ·}ã¶|á¸oݱtÞ´vÞ¹vݲxß°uà´nâ¸uæ¼á¹sÞ´pà·pâ¸rá³vÛ°qÛ¯nÜ©jÞªlݱoÙ®fܬ^à°hæ²så³sÛ°jÙ°mãºuå»sá²hä®nÞ­kÛ°mâµrãµqà³tã´säµuß³sÞ³lß²oÛ³vÝ´zâ¶wÞ¹tݲwÞ°uà¶vá¹{ß¹zÛ·xܺ{â½{å¼{ã¹w߶rܶxẀ庀á¶zà¶|àµuÞ°hÜ®fݯmÝ°nݯcá²fÞ°bÒ¦^Ê£eͪhÒ¬gÒ¨dÏ¥cТbÑ¥bÓªcØ«kÚªiתdØ«hبdÕ¦bÒ¥_Ц_Ñ¡]Ñ¡^Ó¨cÛ«hÚ¬h×°jÞ´pâ²nÞªkÚªkÖªcÕ©dÛ®ià±gݱhÜ°nß±sݳpÛ®jÝ®gܶqÞ³zß°vÚ³vÜ´yà³tß³tܱpÝ´qÞºxà¸qß´tÞ´sÛ¶uܵ{ܲsÙ±rÛµzÞ·|ߺƒàº~ܵsÜ·{Û¹}Û¹yá¸yâ¹zà¼}à¸|ãº|à»wÛ²sÖªnΪpͪoΧeÑ©hÖ¯pÖ²tÕ³qÖ¶rضoÛµmÛ³nÙ°rÛ¶tݳnÙ°pÚ´tÞ´tÔ«hϨgÕ¬mÑ©cÏ«iÕ­kÔ«hÒ©nÓ§jÒ¤cÓ§dÒ§eѤdΧcάcÖ¬e×®kÖ²n×°rÕ®jØ­bÖª`שfÙ«fÖ¬eÓ¨dÒ¤[Ì£XϤ_Ò¨fϨdÑ£`צhÙ«lئgÓ cÒ¢bÖ­iѧcƘTÇœXΣaÌ¥aϨcÖ¬jÖ­jÖ¯pÙ°vÚ³oܸrݸ{߶vÛ´pײuØ­oÙ¯pÞµyܸuܸtׯrÓ¥hÖ©eÕ©dÖ©fׯoׯrØ­lÕªhÒ¦fÏ YÉ\Ì dУbÓ¢^ÒœVÑ¢]Ô¢eÓŸcÓ§dÕ«eØ«hÙ¨dÕ§eׯjÛ²hÞ´pݳn×­dÖªcÕ¨dצ_Ö§bÕ¨i׫lÚ±qÛ²uÙ®pÙ©hÚ«`×®fÓ§jרf×®fÒªbØ­nÙ­nÙ¬nÞ¹|ܹtرoܲpÛ´qÛ¯pÖªjÓ­iÙ³pÞ´tÝ´p×­l̤aÈ¡^Ó¬mÝ·xáºvã¹wÞµtÖ°mÕ®hÖ®eÒ©aÖªg×­pÖ¯oÔ°oÕ°gÚ³lܵpÙ±lØ­mØ°pرrدrÔ­lÏ©gÓ¢gÑ¢gФgÖ©lÙ²uÞ·xÚµqÖ­l׫jÖ°iÔ­iÒ¤bÍ¡a̤`Ñ¥]Õ¤cÕ¨dÊžVÁ‘P”TÄ›XÇŸYȤ\ΫbÖ°gÛ·nÞ·pÚ±iÖ°iܱoâ¶sá¼rݽxܹuܳnÔªmÖ¬u߶xÞ·tÚºtÚ¸p×®m×±oضoÙ²mÕ­oЫpÒªlÒ­iÒ®iÕ¨dСTÊ—QÉ–SÍ TÐ¥WΟ[Ìž`ТdÔ¨cѤ^ÊšVËž^Ò¦iÓ¦gÍ£hͦgÊ¡[Å›WˤgѧlÐ¥fÙ®i¾™jâ¾~æ¿~ç½ã»}â¹}â¸~á¼~Ề崃á°Õ®zвwÔ¯rÓªnÕ°sÜ´xáµ{à¼zåºvå¶xß´vß´uà´oä²mã²mß²já°iâ¬gݪiß®mâ¯là¬hã°oä¸vä¸tä³så´våµtå²sç¹{䶀æ¶}ç¹{â´{á±yâ²uãµvå´uâ¶væ¹鼂ä¼ä¶yá²nà²náµváµuâ¶uã¸zäºå¹zå³vã³yâ·tà¶yå¼€è»väµoä´tçµ{æ¹{á»zàºæ¼€å¸zÞ²yá·yâ¸vߺ徆꿂ç¿~å½ã½ƒãÀƒèÁƒä¾€ä»ä¼{ã½€æ»|æ¿æÄçÂ}ç¾}ç¹ä¶{ã¹{ã¼€áº~Þ¹|ܸzܸwÞ¹|å¾è¿wæÁzéƒã¹{ß·tä¹väº~à»ãº|â»~à¼Þ¶uÞ´uß³{ß³uܱoݲmæ¹ré¾{ç¾zæ»så½vé¿{ëÀxèºuÞ³qØ®fÜ°bß±mÞ¯oß°kß²ná¶rç¹vÞ²lÕ¨cà±jè»nã²cá¯hܬpÝ«nã¶oå¸hà®bá®hâ´là´pá±vá³oß³eÚ¯iܲnß±jÚ¬jÙ¬nß­rß°qàµmà¹rÞºzâ¸}â¼zà¿và¸uݲmܶmá¼uã¼zâÀ}㻀ä´wã·ráºwâºxáµxâ´zæ¹{â´tÕ¦iΤp×­xÛ³qÛ´oݳuß°jݳmÚµuÝ´tÛ¸sܶwá´qܲr׫tÖªmЫgЬjÓ¬kÕ¬lدpÝ­hß®kß²tÚ­iÓ£\ΡYЦ^Ö¢ZÖ UÔ¥[ب\Ú§^Õ¦aÖ¦_Ö¦\ר`Ú¬fÚ°jسkÚ´mÜ­mÚ©gÛ§eÛ­qÚ¯lÞ¬b߯iÙ±lÚ±mÛ­mÚ«hÙ¯hÛ°nÜ´rÞ»xáºvÞ¸rß¼xá¾{à¾xß¿vߺvâ»y߶uÚµyâÁ€ä½yß´xÛ±uÔ©jÏ¢dΨgЭgÓªjÒ«rÓ°p×µs×´vÚ¶uÞ¼{á¼y߶uݸ|Þ¸}ßµzÞ²uÚ°rÚ³p×±sدvÚ²jرoÛ³uݶqÝ·mÛ¶nÚ°r×­rÖ­mÒ©gѬkرuݶzݸvÙ²sØ´tÙ¶oÛ±mÚ²sÙ·sÚ³qÔ«jÍŸ\΢]Ò®oÕ²pÕ¯gÓ°i×°gÙ®fÛ®e׬eØ©lÓ¤eÅšZÈ›XТXÒ£_Ö¨cÙ¬hÚ«rØ©jÒ¨aÔ©fجkÙ¯nÙ¯kÚ«hØ«fÕ¬cÕ©aØ­jÙ±q׬lÑ¥dС^У]Ì ZÎœXÔ¤bÙ¬jÚ­nѧdΤYΟ[Æ“bŘYËUÍœYÒŸZÓ£`Ò¡]Ö£^Ö¨aשdÚ¬jÖ§kÔ¦k׫gÕ¬aÙ¬fÚ­o×±jÚ´jܳmÞ²kÞ±jׯnÙ±sݸuضvܵyÙ±pÓ®fÖ³jÔ°jÕ¯mÞ¸sÙµpÖ²i׳sÛµzàºvÕ´uÕ°nÙ³mÕ´oÙ°j×­jÕ°qÛ´rÞ¶pÚµrÓ¯pͧe̤bÓªlدuܶyá»xÞ¸xÙ±sÖ²nÓ­jϦbÑ­h׳sÚµuܵsÛ²nܲqܵtÙ­gÖ¨c׫hÙ¨h×¥lÓ¨gѦdÏ¡bУ`Ì ]ÉŸ\Ò§eØ«oÔ©lÓ§fÝ®nݲpÛ²pܵmÔªbЧ_Ô®jØ°oÙ°mÓªgÇŸ]Þ\ʨgÑ®rÖ°sØ°rÚ±tà·yâºuÛ´mÚ²rܲwÜ´tݺyâ»}â¼vܼxÖ´u×´yÛ¼}Ý·~à¸{ܼrÖ¶w׳{زpÚ±mÕ«jΣcÍ¡\Ì _ËŸdÊœXÄ‘HĉA¿ˆ=¹…;½ˆ@Æ‘HÍ™OÑ£ZتeקaÏ ]ÍŸ^Ф]Ñ¢aÑ¡gÓ¤hС]Åš[Çš_ÍŸaФlݲt¾¡fæ¾xç½{ç¿ä¼}Þ¸|ݸ}ã¹€å¶}å¼~ä¾Û²~×°zÙ´wÙ´tÚµ{à¶zã¹{ã¼èÀèÀ€ä»å»ƒé¹€æ´vá±oܱoÛ²oÞ­lß­jä³iæ±hã±iä±gã­iâªpâ¬pÝ­lÞªpâ¬pÜ«nܬtã±rã±nã­nã«hâ¯jâ®kß­lá²på¶uå¹tå³oä®iß­hÞ«mâ¯iä²oå¶uà·và³sá´oã±pã±vá³uá³{â¶~ã´xä°lá´lã¼}ä¼â·uà¹väÂå¼…ß³|Þ²tÙ²€Ú±†á¸á½|ã¿yç¾zã½yß»vá¶zâ¹â½…㻀ä¸{â´{帅轅å½ß¸€Ý¶~ݹ޶{ßµvàº}á¹~á¸zãµxã·{翂迉湇轃ãºyß²vá¸vã¸{áºzß»uá¹uà³vß²sÞ³jݹvߺ|Þµsݲtã·uåºtã·rãºrãºvå»xè½sè»râ¸rÛ³qÞ³uß¹uݳoà³màµlßµpã¼vâ·lÓ¦`Ò¨f߶vãµqݳhܯfÜ­hÞ±jà³h߯fÚ°fà»jâºnà¶rà¸ràµqܪkاeب^ÙªaÙ«cÞ«ká¯lÞ²kà¶qàµtÜ°xß²wãºvá·tÚ²oÖ±qݵ|ã»å¼{â¿|à¿~à»߸}àºzá»~Ẃá½ä¾}Ù´xΫsÙ´uâ»tà¼uã¼|â¹uݹoÞ¹sà¸yÞ»yÞ¶và¶zã»{ݳtÒ¬o̪hͪnײtÛ´tÖ¯iݵf߶tà·{à²nÑ¥YȦ[̨^ËžXÈ—WÊœRÌ RÍŸWÒ£_Ñ©aЦaÕ©bÚ®gÝ°qݳkÝ®cÙ«jÙ«jݪgØ­nÓ©fÕ¤`תgתcئ]צ`רbØ©`Û®gݱmÛ°hØ®bØ«dà°pÞ²qÙ³qݹtáºyä¸{ß±oÛ´väÀ‚ä¿zà¹tà¶xÞ±uÔ­jάfΩjΨkÒ­lØ´rÙ²o×°qÚ¸wßÀ|âÂ~áÅ…âÉá½ß½{Û¸zײrÙµpݸoÞ¹rܶuܶtÞ¹xß»tÞÁwß½|Þºxݶzܳ{Ô®sÑ­p×µrÛºyÚ¸{Û³xݶxØ·vÔ¸sÛ¹sÞ¸vݶ{Úµt̨h˦hسoÜ´uØ®lÙ¯gرkÙ®lÚ³nܶoÞ´pÖ®cÈ£YÉ¢bÕ©eØ­hÛ²rÜ´tÛ°mØ®fÎ¥aÊ\ΡZÖ¬\Ù°gÕ¬lÓ©gÓ§gÒ¢eѦdÑ«jÔªhÓªbШbѤcРcÍ£fÖ«g߯mÙ®rÕ«lÒ«e̦^Èž^Èœ\Ë ]ЦdÙ³rصoЪfÔ­hÛ³oÝ·uݹqÛ±kتgÕªcÔªcÚ¯jÛ®kÛ­lܵrß¹}á¹}ÞºvÚ´qÙ°uÞ±{ܳsÛ¶wÞ·vÚ³qÙ´s׳xÓ¯uײvÙ¶yÚµzÞ¹zÞ½{Þ»zÖ²uΪvÑ©oÕ¬qÖ°zÒ¯tЬmÖ­rܱrÚ²nÖ«nÒ¦oÓ©nÕ®lÔ¯qØ°tß³wÚ«rÔ§fÓªjÑ¢h͘TΟYÓ©gתg׫l×­kÓ¬fÓ©eÓ£`Ó¡]Ò£^Ñ¥bÐ¥fΡdС]Ó¦^Ó©aÑ£ZÏ¢^Õ§iשk׬eÛ®kݳtß¹|⻀á¼~Ö²rͪgÖ°mݸyݺyضnÍ©aͪjϯlÒ°lݶuÞ¼sÚ»rܼyܽvصtײuÓ¸tÖµoزnÚ¹wÞ¹}ÛºzعwزrÔ­oÕ®vص}غvÚºvÕ°pÓªjÓªpͤiÌ¡[Ë¡UÇšVÈ–SÅ“H½‰>»5·w*®l(®o*º}:Á‡JÓZÍ£k׬kÖ¬`Í¥_È¢cШcׯhÖ¬fѨ_È¡ZÆŸWÊ ^Î¥nܳo¼¢aá³væ¹~ç»ä¸à·„Ḁã¸~ã¸~â¸xä¹{á·{Þ´xà¶}߸‚Þ¶~á¶xã¹{å¸è¹è¿~æ¿~æ¾uäºwç¼}å¹{دzײxß´xß³vä¹sæ¸pé´vè³uâ²ná°oã²mÝ«kÖ¦gÔ£bÒ¥fÕ©lß­kå³rä²qã«bâ­eá¯mà­jà«g߯eâ³gâ¬jß­gå³jè°mä­eã±eæµqæ²oä¯kà±nà¯lá¬pà­rà­qä²pè±oâ­hݯhã·pé»uè·væµ{â¶|â´tà°lÚ®nÙ­tÚ³sݵsá´rã·xåµ}ã¸}ݵxß­rã±uä»wãº{à²zà³wå¶z渃什ã¹v߶uܵuÝ®xܲzá¼}ç¿‚å»å¸~ã¼zéÂ|ìƒâ¼~ä¿}㺀à¹{ä¼xã·tä¸}æ¿ã¿yáºtâ¹yẀâ¹yâ»uä¿xã»sä»qãºtܵnÙ³jß±já³jâ¸sä»wä»tÞ¶wܵuã¶oß²qݵsà¶uà´uâ¹yà·tجeѨeݶuè¼{ã¼vß»qà¸sßµrÞ¹pÞ¹sÚ±nܳsá¸{߶sßµoß·tܱoÙ«j×°h×°gÛ³o߶oÞ¯dÛ®gÛ±jâ³eÝ­eÛ¯gâ¸ná²lÙ©kÖ«oزoß¹zæ½}å¹{å¶~á»}ß¾uÞºvß¼~ܼ}Û¶wá¹váºyÛ¶tà¸zã¹߸{á¼~áÁà½|ߺxá½xâ¼{áº{ã¿zçÃ|äÁ{×µxЬsЬkظqÜ»xÙ²uÙ°mÜ´lß¹wâ¸qÔ®_Æ¥aÊ£^ͤ\Ê ^ÍŸ^Ñ¥gÔ«kÖ±mرkÜ°mܲrà¶qá¸qÞµnܲsرoÛ¶mÝ´tرpÔ«`Ö©aÚ­mÛ®kÚ®fÖ­dÔª[Ö¨\Û¯kàµsÜ«dÔ¢YП]Ö¢eÖ¨cÔ®d×­hÚ­lݱvÛ±rÛ¶sâÀ~à¼uß³kâ²ráµuݱnÓ©lˤhЬjØ´nÚ³qÜ°uرoÙ¶tß¹~ä½~åÃåÂ~Þ¹{ܹ|â¸xß²vسvÛ¶uÞµvÞµxá¹|ߺxÞ¶qá»{⽃޻{ݺuÜ·vرuÓ­rÙµsÜ·xÚ´~Ûµ€Ú¶Ø·tÜ»uÙ¹xÖµv߸}á¹}Ö°tЮo×´vݳyÙ®sزpÙ´oײl×´rà·và¼uعuÕ®lÖ­pÛ·vߺxà¸y⸂㻀޺t×®jΡ^Ì¥_Ö¬nݲsܳnÖ«jѪjÑ«mÖ­o×±qÙ±sÙ°rÖ²mØ´sÛ±sײmÚ³rß°uݱsݵtÛ¶uÖ±oÑ­hЭiÌ«gÑ®lݺxã»xßµuÙµrݸtà»zܸvÛ³pضm׶uÕ²sÕ²qÖ±qÕ¯oÖ¶xÞ¾ƒæ¾~ãºvÞºxÞ·wà¶yÞ¸wÛ¸uÞ·tÞ¹xÚ¶wݶwÞµy׶vÚ¹tà¶t߶}຃á¹{Ü´pÚ²oׯkÒ«n×­rدqÖ®rØ°qÖ°nÖ­bÖªeרn׬mÖ°oÖ¬oÕªhØ°jÙ¯gÕ¨eاfÓ£^ÊžUÍŸ[Ð¥eÑ¥eÔ¨fجjÓ©eÏ¥bÓ¨eÖ®k×­jÖ«jÖ¬jÔªg׫l×°lÖ±mØ«pÚ­mÛµnݲmܳmݹmà¹rä¼á¿à»~Û³zΨpÔ¯rÝ·zݹ{ܹ|Õ¯rÖ´vÖ¸|Ó­tÙ³záÀ~ãÀ~ܼ}Ú¸x×µxÕµvÕ³tرwÙ±oÚ¶qݹxݸuܸs×°tÑ«oÕ¯iدoÙ±tÛ´mجfÓ§gÔªfÔ¦bÐ¥fϧeÒ¥aУ_ÐWÌ—LÁAº1µs#¬n#µy8¿‡@½IÉžeÕªoÙ°rÖ¨lÏŸ`Ï¥dÓ°nدoÖ¦jÍ£`Æ¡]Í¥aÖ©gܵpÀ¢tÚ¯và¶uä·|â¹{á¸yã³zä±vâ°zãµtäµræ´{äµã¸yã¼yæ»~㹄áº~ä¾zå¿zá¸qã¸ná¹nÞ·pã»}ä½à¶zß»~â¿~ä¼|è¼{è¾|åÀ‚è¿‚è¾}ç¿zç¼yá²xÕ«sѦoÒªn×®mß±på·uå¸qå´kçµtå²pâ°kÞ±qÞ©kݨjß®mã±jè¹nç¶oâ±hä²dç´oæ¶vä³oâ±já°k߯kà¯jã±kå·qæ´vã¶qã¹mãµoà·qá·gá²eâ°kß³hÞ±bبeÔ§kÚ¯lá²nß®hß°hã°pã²pã±já®qá³{äµzä¶uâ¶râ²pà´{áº{ä·uã´zä´vÛ­l׬nÞ³wæ¼uä¼x㸀ä¸{ã¹væ¾~激߸x幄較ä¹~ä½}æ¿wå¼{ä¿{éÂ{㽂à¾}ä¾~ä¹á¼}ä¿€æÂå¿~æ¹~ßµz׳qÖ«iÕ­hصsÝ·sÙ³mرnÞ´tÝ·sܵná¶táºwá¶xä¸yá·lݳg׬hÙ²mã¾xç¼våºpâºoݵlÕ±kØ·qײnØ®p߸{߸xÙ°pÛµnÚ¸nÛµp߸tßµzá³wÞ´pݱnÞ°mÞ²iá²nÜ­jدkß´qá´pÞ®gÖ©iΩlÙ¶qå»zã³sÞ´màµrà¸uá¼tà·yáµzÞ´vܶyä¾yã¸vâ¸zã¼yßµtá·xã¿xàºsà¸vàºxáºyâ¸|ã»âºá¸{ߺyÚ·zׯqÚ´qݹyسvÙ°mÞ±pÞ¶xß¼{×µy̦kͤbÔ¨eͪgвdÙ´qݵwÙ´qزmÙ´jÛ²kÞ¶uß»xß¹oß·qܲoܶnÛ¸qÔ¬uÒ«nݳmä´oà¸pá¸oÛ±hØ®eÞ³i߶qß»vݶhØ«cÏ¢eÉ¡`Ñ©bÔ§cЧaÒ«eÕ¬hÙ¯pß³xÞ²xÝ°lÙ¬aÚ¬hÝ°hÛ®`Õ©bÒ¥dÕ¬lÙ³qܳjØ­lÖ­qÙ´pÙ°nÙªoܪkÝ«hÙ¯iÙ³sÜ´qÛ³nÙ³pÙ´qÛ³vØ´uÚ´sÞ±nÚ³mݹuß±sÚ®oÖ°mÕ­lÚ±qÛ±rÖ­lÖ°f×±l×°qÚµtܶvÛ³xÙ¯{Ù¯pÛ¶pá¾|ÞºxÛ¶wß¼߸~Ö°qÕ´qÛ¹~Ú·~Ö¸x×¹yÛºrÛ¸oÚ²rÙ°tܸvá½zÝ»|á¹{ߺxÝ»{ݸ~Ô°oѪkÙ²vÞ¸t߸xÜ·xÝ·vÞ¸}Ú·zÙ¸uÖ´vصw׸wÛºyà¿zÛ¿uÖµtÛ¶zܹ~Ú·{á¼{à¹}Ú¶{Ú¶v×±t׶wÜ¿{àÁ~à¿|߸}Û¶{ݹzß·{Þ¶qÙµoÕ³tÔ®pÓ«jÔ®hÓ®mÒ±oÕ´oß»€â»…Þ´vÛ°qÛ´t߸uݵrܳuÞ»vܸvà·vݺwÙ°uÚ¬oرxÚ·yà¸sß³pÛ´qã¸tݯoÚ²pà·là´l߸vݸsÜ°mÛ°nÙ®hÖ¬j×®nÒ¬eϨaÔ©iÛ¯j×®eÖ«dÝ­cש`Ì¡]ѤfÙ°mÕ­lÔ¬lÙµn×µjϬfѧhÜ°pÞ¶vÚ­tÖ­kÓ¯m×±uÞ³tÖ©kÕ­jÜ´nÞ¶oß½xß»yÛ¶uسpܵvܶ~ÛµzÖ°r˦iЫkسtÕ²~Û·~Ù¸zؼ|Ü»xÙ´rÖ¶{ݽ†â¿†Ú¶{Ö³{Öµ|Ñ«rϧoÒ«lÓ§jÖ®sÚ·yÚ³oÙ±gÕ®mÕ­qÙ³nÖ¬hÕ©gÛ²mÙ´nÓ°jÙ­oÜ­rÖ­eÒªbÒ«gÖ¯eÖ°cÑ«[Í¡PÉ—JÄA¿‚=ʼnE˘QÆ’PÅ™\Ï©oÚ´rݹqÖ°nÒªmرoÙ³mÑ©aÇ¢]È£bФf×®mÜ»s¾ oÙ¬mجmÙ°sÚ¯oÞ±máµuÞ´qÞ±sâ²yá²sá¬mã±uæ»辅罃æ»}ä½~ç¿|è»väµvá²zâ¶zâµ|ß´€âº‚彂㺄缌뽇羀çÇçÁ„èÀ‚ê‡èÀ‰é¾‡ç»‚Þµ€Ø²zß´vä»yá¼zæ»}êÁêÀ{ë½|í½|è¼yåº綂ã²{Þ¶yã¼~ì¿{è¶tã¯sá³pß¹uä½yè¼vã¹zã¶uç¼ré¾~æ¸{ì½{ìÄè¿~ê¼€è¼|ã»tã¸wä±xá²ràµoÝ®kÕ¥eÒ¦jÝ·sç¿xç´pà¬mà¯oå¶på´sç³qè¹nä¶nݲkâ®kä²qä¶pæ²nâ°rá³qä±qâ°rÞ³lÞ³nã¶vèµvâµxà»vå¸uæ²zâ³{߸|羀练ä¹}å¾y滀æ»ä¾ƒå¿ƒã»xà»vá¼{â¹zâºtá»vå¼æ†äÀ‡â¹Ú³p׫k×°qÚµxܱvØ­pÚ°nß²vÛ²vÚ¹z㼂ä¼yâºwã¸{ä¸wá¶zØ«nÕ«kà¹så¼pá·nÞ·oÞ³jתhÙ¯tÝ®uÙ°tà»|á¸~ܳrݹsß¾|㿃ã¼æ¾åº{ܵrÛ°oá¯iÞ´qÞ·zÚ°oÕªjܲrß¹uݶu×®rЪhÓ®iÝ´pã¶rßµnÞµmàµoÞ³hݲlÞ¸xá¹pá´tâ¶zã¸xà¶sݲjݱoà´nâ³kß³sÞ¹wá¼zà¶}ßµwß³jß°mÞ´oã»xã¸zÙ²kزrÜ´ܳtÛ³tÞ¸xáºzâ¹}á»~Ú´xØ°rÛ¶yزsصrâ¿}ã¿à¸}Þ¶{ݳwݵoà»s澃æºá¸uà¹và»tà¹qÛ°kÓ¬kÚ´uãº{ß¹t߸vÞ¸xÞ·qãµoà³mߺràºvàµsزsάrΪhÑ­fÕ¯iÕ¬kÕ­nÜ°{ಀà±và±pÞ²kݱjܯdØ­cÜ­dØ«aÖ®hÞ´sÛ³mÔ«]ÖªfØ­qѦdÒ¤`Ó¦gÕ©e×°dÚ³kÜ­hØ«dÕ¬c׬cÛ®hÛ¬hÙ¬eÙªiÜ«oÛ­oÕ«qÕ¬qÖ¨fÓ¦`Õ­cÙ­gÕ©aϦ`ЧgÔ¨h׫hתlÚ­nÛ«hТbΨeرkÛ±pÚ¹rÞÁuÞ»yÚ´u×°kÝ·qݺ{Ú¸{ܳsÜ°qÚ°rÙ±wÙ³qá¶oã¼zܶu߶v߶wß³rß³uدmÒ­jÙ¹xÞ½|Þ¼tܸqàºxå½à¸}Ù¹vظx׳uѬiÙ®pá¼{Þ»rÚ³mÙµwݸ{Þ¸zà¾῀߻ݸx׳oØ´uݹ|ܸ{Þºvæ¾xá½vܺwàºwÞ¸pÙ´sÛ³vØ­lͧ`Ñ©gÓ­nÈ aÊœ\Õ¨eÚ²iÛ¯fÙªkÙ¯sÛ´nÛ²mÛ±mܸuÚµrÛ±kÙ«eÔ¨^Ó®bرeÙ³jÛ¶oܵpÝ´v߶zÖ®mײoÞºwÞ»sߺvá¹{à¶xÞ²sܶpÛµvÚ¯zÔ­hΫ^Õ­lÚµnÙ³oÒ¬lШfЪm̦jΨiÖ²tתrاtÞµ{Û·vÒªfЦd×­vݸ~ÚµuÕ«mÕ«kÕ°pدoÙ«gÔ«hÒ­pÖ³xݼzáÁÚ¼zÖ²sØ°yÙ³xÚ´vÕ°tÏ«tÔ¯uÖ²qÓ­uØ°xܯ{Ø°|Ù´y׶yÒ³wÙ²zݺ״{Ó­qÖ¯mÐ¥eÍ¡bÌ¡cÈ eÕ«mÚ­lÕ§kÕ©gÓ¦bÑ¥jÕ­kÕ¬`Õ©bÜ´tܸuÓ±kÔ¬iÚ°xÔ¯vΧjÕ«mÙ³qݸxߺy×µsÔ­jÕ¦]ÍšQÌ£[Ó¬dËŸ^ÌŸbÙ¯qÜ·yàÀ}à¿vÛ³nÛ¸uܺvÔªhÊžaШmÚ´xݹzá¹x»¡qÙ³tÙ²pÚ¬nÛ¨lÚ­mÚ²qà¸uá¸vá¶tà°pݬjÜ°má¶yæÀƒç¿~æ¸wäºvå¹wæ¸rã·vä¶}ãµyá³yß±xá¸~å¼åº„ç„êɀ꿅幋伃ã»⹈徆åÁ‡èÀ‚å½wá½y俅뾈蹂å¹é½‡ë¿†ëÃ…éÆê„ëăîÀˆé½„乀滀æ¹vá²tá±vâ¸wä¿zëÁ„ìŒ迃é¿ìÉëŒ꼄ç¾}é¿€ìÁ…ëÁ†ê¿çÀ}佄㹄ãµ}Þ²Ù°tÓ¬fЩnÖ¬uæ¶ëÁƒäºzä¶wå¸xç¸oä¶lã²rá²tà°pá¯oã¶tä¶zâ±vá°mâ²nâ¸rã»så¸tã¶nè¼vå¶vá®oã¶rä¹qå¸vå¶{ß°wâ³yãµwß³kà´jã²oæ´næ¹rå·uáµwã¶ã¸~ß·xà³tßµvÞ¹záº|ã½~àºuÙ­jØ©nÚ¯pß´zà³}Ù¨sÛ­wÛ´zÙ²uß¹}á¼~à·xß»wâ»uàµvÞ¸{Ù°oÒ¨kÛ²tã¹{á¹xß¹wã¹wÛ´mÚµpá¼{߸xá¸vàºuÞµ}à¸â¼yæ¼ä¼á½xã¼vàµxß³pà¶jß´ià³nÞ±rÓ«lÕ¬mà¸rÞ´oØ­nЬqÒªtسtà¼qá¶nܱjÚ±hÜ­cܯgݳrÞ´sÞ´râµtä³oß³rÛ¬oÙ©hÙ¨iקkÚ±sÞ´vÞ­qÛ¯pÙ±fÜ°eß±kÙ­kÚ²pݵjÖ­`Ù±mÛ¶wÛµwß´tÞ¸tá¹{ä¸yà¶xä¼{äÀyß»}ܳxÚ´wá¼{ãÁ|à¿ᾄݸyܲsâ»~äÀ€Þ¼yÞ¸vß·tá¼vàºrÛ³oÖ®qÔ­qÞ²rÞ¶r߸uâ¿}Þ¿{ݺràµsßµtÞ·rá½záÁ„ܶ}Ù±tÛ¶wÚ¶wÚ²uÞ¸|á¼…áº~ݶtß´tß¹tܶmÚ°fà´hߺnܸqܶqÜ·tݳoÙ­h×®p×°qÔ«hÕ­hÔ¬iЬeÕ¯jÙ®o׫jÔ«bÒ©_Ô¨aÙªcÙ©aئ`Ö¦bשd׫hÔªhתgÕ­bÓ­^Õ©bÖ¨hÕ¦eÏ¥`ШbÓ¨aѦZѦ^Õ¨iÖ¥hÓZÏ SÍ£XÑ¡`Ô¨fÙ®pÚ¯nÕ«cÖ©cÙ­hÙ±mÚ²iÛ­bÝ«h߯oÙ­gجjݲpܳp×±nÜ°oÜ©hÔ§_ÕªeÒ£jͦbÕ«gÛ®vÛ²rØ«lÖ«mÛ¶sà·vÞ¶oرhÚ­hÓªdÖ¬lÝ·zײpÔªcÔ¬gׯhÚ®kܵvܼzÞ¹tݵo×®lÕ®gÙ¯fÝ­nÛ²mÞ·nÝ°pÕ¯lÛµnÞ±nÛ±pݲnݬiÓ¢ZÒ£\שfÇŸ`Á›_ËŸbÒ¦eÕ­gÙ®gÜ°gÛ³mÚ²nܯnÛ­kÔ§_Ö¦a׬jÔ­kݱrÞ³rÖ­gÖ­hÕ­iÕ®mÙµvÒ±oÑ­lÙ¶vÚ¸}Þºzâ»|Þ·~ݶsܹoܹxÛ¸{Ú´rЫgȦgÕ«lܳuÔ±rϪmϧkͦhΩnÔ¯lÖ§eÔ©jײo׫kÑ«jΫlЩkÚµvݹyÙ´t׳tصvØ·z׶zÕ±vбtѯqÖ¯tݺ|Ù¸zШlÑ«rÓ´w×´tÚ®tÕ¬pÖ­oÖ©oѧjÕªoØ®nÔ«fÒªk׬mÔ«nЧjØ­l×±mÑ¥cÑ¢dÓ¥dÖ§bÕ¤_Õ¤g×°oײpצhÓ¤^УbÏŸ^Ó¤]Ó¤]Ð¥aÙ±rܸsϧjÏ¥qܳsß´lدlÚ±oÙ´qÚºyáÁxÛ¹r×±vÚ¶uÕ¯oÕ¬rصoÑ©gÑ«mÚ·uÞ¸{â¿„Þ½zضsݶzáºzÙ¶oЭlÔ®vݶ~ß¹|âºy¼¡m潂弅àº}Þ²wß³xÙ´và¹{é¿€æ»{á¹zà·zܯvÙ²xá¹zè»vä»|á¸y߶tà³uà³sã·wä¸{âµyá³tç·zë¹{çºxèÀ‚ë‰ë¿ëÀ~è¿æºæ»ç¼…麈繂â¸xâ¹zæ»|çºyã¸yä»é¿ˆèÁ…æÁƒè¼€ä¸~ã¹ë‡èÁƒä¸uæ·wßµuÛ±uäº}êÄ…ë‡êÀ‰ëÂŒëÄ‹èÇŽìÈŒìÊ齅â¹xàºyçÀ…èÃ…åŇéÆ‹éÆŠåÂâ½yß¹€Üµ}Õ±ņkË¢oسxá¿‚ä¿~á»tÞ´và´tá´oâ¶uáµ{㹂廂åºzã·vâ¶{ã¸~å¼yäÀ|â¼~á·vå¹yæÀ{ã»sãµráµrá¶vä¹|æ¹pà¯jÞ°uß²tÞ«nÛ­mܵmà°mà¯så·uæ·qàµráµtã³qà°qâ±qä¶x߶uß³oß²oÚ®jØ­nÛ²lß¹sã¹uÙ¯j׳pݵtß°xݶ|ß´wã±zá¶vßµlß³mà·gÚ±eΫgÓ®kà¶tß»wݶzá´yÛ¶rܸ|á¹Þ¹uà¸záºvߺxá»}ä½rä¾rß·yÞ±wà´tݸyݸv߸vÞ·vÞµxݲ{Ù¬uÓ«rÚ²vݵpÚ³pÙ´sÚ´xÙ·~á»}å»{ß¹tÙ²mÚ¯mÛ´uÚ¶vܳpÛ¯qÙ¯tصmÚ¶oÚ­qÙ­sÛ­pÙ«lÙ°u×®pÓªbÜ«eÙ©e×®bÞ´hÙ«gÕ§`ت`׫aØ®cÛ±mÛ²wá±rß±kܲqá±tÜ´mÞ¶sá¶uá¸và·yÝ´uÞ¸yߺzà¹zä¾xà¸sÔ¯sÙ³uã¸{ã¹|ß·wß·tà¼xá¾zà¼zܳmÔ«eׯmÛ³vܶyä»yä¸xÝ·{Ý·Þ·{ݲs߶wä¼~ã¼ß»~áº~á¼…àº{à¹{侂á½xÜ·vß·xáºyݸ{Ô²tÔ°mÚµtÞ¸~à¸}â¾|äº}Þ³tܶwÚ®sÖ¬oݹ|ÞºzÚ·tݵtݯhÚ¯fÞ±tܯrÙ°rÛ¸vÝ´oÚ±pصrÖ³nÒ°pÔ­pÚ°lܳrÛ´vÙ³oزjØ®jÛ«fÙ©bÓªjÓ«iר`بdשiרhÕ©bѦ\ѦdѨdÒ¢_ÒŸ`Ò¡_Ó[Ó£]Ò¨fÓ¦fÕ¦aÖ¬^Ú­cÙ¥aÔ¦cÙ¯fÞ°i׬hÓ¨aÒ¤`Ñ£\ΡZΣ^Ρ\Íž_Ò¥fÓ¨`Ñ¢`Ï eÐ¥cרfØ«iÓªb׫cתeÕ©eÙ­iÕªfѤgÓ¨kÖ­l×®lØ­sجnתiܱmÙ±iÖ«hÙ«l×­iÖ®eÖªeÙ©gݪnÜ«qÞ°hß­eÝ®cÛªUÒ›NÕŸ]Ø¥gΤ]ɧdȤiѨgÞ´uâ¹€Ù¹uÖ²mزkÙ²nÛ¶qÕ¯lÍ¥hͦhÑ­oÙµtßµqÕ­nЮnÓ¯lÓ¬pÛµzݵtÒ«jЩmزsÚ´{Ü´yݵrÛ´oÚ¶pÞ»uÞ»yÙ¶{Ó­rÏ©gÓ®jصrÙ³tÔ±rÏ®i̦dÒ®rײsÒ«eÕ¯nÛ²o×®eÒªeÏ¢dÍŸaدmÞ´pÛ²pÚ²yÕµv׶pÛ³sÖ±oЭnЩkѨiÒ­tרpÔ£^ЪbÒ¬mÒ«jÖ«kÕ©jЦeÓ¥eÔ¤gÖ¨cÓ§_Ð¥\Ñ¥]Ô¥`Ö¨aÖ¨hÙ°hÞ¶iØ­iÕ¬gÙ°fÙ²kײlÛ¯oݳqݳoá³iß·gÖ¯gÌ ]Ò¦]Ö°fÑ«cÓ«aÕ°gÖ­hÒ«n׶vÞ¸zÙ³vÛ¸vÙ¶wÖ°yÙ±qÕ­i׳uß¼uÚ´hÙµpÞ¸yÓ¨mѨrÚ·yß½࿀ܵuرrÚ·|ݼ€ÜºwÕ¯nÓ®rܶvܳtݶyÀŸqêÅ’êÈŠêÀ…㺅å¾ã¸zâ·{ìĈíȉêÁ„é»á¸zÛ²z߶}Ề߸|ܵvàµvá²lÞ²oá¸{â¶sã²rã²zá¹yã¸rä°oâ³wâµzæ´xåµqä³pæ¸xç½€ç¹zçµpã±oÚ©eÙ«hÝ«lÙ«lÛ°qá·uå½xçÀç¼å¶}à±vÜ°râº~è¿~ãµuá²yݳyݳtä½yëƆîņèÀãÁ„çÆŠç„ä„侄ᴀٮxÖ°t޺⼆⼀æ‚æÀˆç¿†èÁ…èÁ„å¼ß²{Ö«rÍ©lÓ®tà¸yâ³xß²sÛ²oÙ¯tÚ¯vàµxä¿‚äņæÁ}æº~ä¸ã¼{äÂ翇仄à¹zà¹xá¼濆èÁæ¿{ã¶vâ¸vç½~廃à»{áºtã¸sà³sÙ®oÚ±tÛ³wݲnßµmã·sä·xã·rà²hÞ­jܲqܵqÛ®nÜ«fÝ­bÙ©dÙ¨cÖ«fÚ°oä´oÚ¬dÕªhÚ¯kÙ­iÙ­kÞ°nà°sà²tá²n߯mÛ©kÛªcУ`ϦfÜ®qÛ©lÙ©lÚ­tÚ«oØ­hݲpÝ´tÞ·uà¶rßµsá¶yã²uݲuÚ³vÛ²sÚ³vܶwÞ¸uá¸}丂à¸yܵxÙ²xØ­oÖ©mÕ¬iÓ®iÙ²oß¹wß»{ß¼â»á¹xÞ¶oÙ±pزpÝ·t߸}Ù²vÛ±uݱqزqÛ´xÜ´vÚµp׳pÖ®kÕ¬gدmܱqÖ¯kÕ±qÞ¸vݵjתiתoÙ¯kÞ«dÜ©cÛ°hÞ±jÜ­oݯoܲkÛµrݲrܱnݲpß°oß²kݳhݳmà²mß³kܱmÖªhÖ®jÛ²rÛ¯pÛ¯mݲnÛ±lÝ®pÜ°sÛ±tݲoÙ±fÚ±kß²oà¶nàºtà·vܵrܶmÙ°nÖ®uÜ´qÝ´sܶ{Þ¹v߸xݳxÛ²t߸{ݸsܸqÞ¹~ß´yܱs×®sЫiЪdÖ°q߶{á»|߸zÚ¯m׳n׳rÙ¸sáÁ|â¹r߶mÞ¸uÛ±sÜ´sá¼{Þ¶yÙ²vÜ·yÞ¹zݺzáºyß·yÔ²sÒ°mÖ°pÛ³rà¶y߶uݵtÚ±sÙ¬mÔ¬oÔ®nÚ®sرmÖ±fØ°lÚ°oܱoÙ°nÕ«lÒªiÑ¥gΟ^Ρ[Ï¡\ΟTУ[ѦaÓ¦[Õ©`Ú¯gׯcЧX׫_Ü°lÛ«cÚ§\ÖªcÖ«gÛ­jÚ®jÕ©bÎ¥]ͧ`Χ_Τ]ФbÔ§`תbØ®eÖ¯hØ®lÙ¬l׬mØ®pÖ°kÕ®`Ö¯dÙ²hݲmÛ¯sÖ¬iÒ©gÙ°mÞ³qß±rÛ°mÙ¯fÙ®mÓ§iÕ¦kÜ®sݸqÛ´nÛ¨bןRÎ’CƉ;Ò™NÕ¦_ѨeÓ«nЪlÓ­lݸsà¹vÙ³sÖ³pÖ±mÕ­kÚ²zݳvѤcÇždͨnÕ±jÙ³nÔ°mаgÓ²qÒ«yÙ°zÞµwÖ«nÔ©gØ«jÚ­jÚ²nÙ±rÙ³sÜ·z߶~Þ²vݱqׯoÒªhÔ­k×°sØ®qØ®lѤcÉœ_ΫrÌ®lÈ£ZÓªgÛ°kÕ¥aÔ¤hÓ¨jΣeЦfÕ¨fاhÙ­hÖ­_Ö«d׫jÖ¥fÔ¥aЧ^Ò¢eÕ¥m×­pתhÙ¨gÛ¬kÖ©eÔªhÖ¬kÕ©bÒ£`Ó¢_Ñ ]РZÔ¥]Õ¥bÕ¦cتbÙªhÝ°mâ½vÝ·oÞ´gÛ´iسmÛµsÞ·vÚ´qÕ®mÖ²jܸjÚ°mЦcÔªcܱsÔ®oÊ aÏ¢hرu×µwÖ¸y×´rÔ¯lÖ¶nÙ´pÕ°qÖ´nÔ¯jײlÞ¹t×±qÕ²mضoÑ­kÓ¬mÙ´xÚ·}Ú¸|ײsЬmÒ­nÔ«oÒªlϧcͦiÕ¬rÒªnÑ«r¿šrçÁŠåÁ†êňêÆæÈã½å¿„èȉèÇŒèËéljåŅ伀侃侅ä¼~什予⼄á¹{à¹{æºzè¸uã¸vã¼|àµrݯoÚ¬uاmÚ©jÜ©nÞ¬ná²rå³zæµtá²pܪgÕ¢]Ñ¢dÖ¨lÖ¥kÔ¢dÕ¥eÚ¯jå·nç´tãµ}ã²wÙ«jÙ¯oä±uæ¯ráµyÛ°tÚ«kã¶xìÁ€ëÂ|ç¼}鹂縃᷀ã¹~ã´yà¬zÖ¨tÓ­qÛ¸yß·zàµuâ½v㽀濊ëÈŠìÉìÆŒéÂ~Þ¹yÙ³xܲxâ¶yßµ{Þ²uݯrØ­nײs߶|㹀濅漅湄缂ç¼èÀ…éƉæÀ…⼈æÁˆéÇìĆìƆêŠ巂ã·}èÁ‚èÁ‚æ½€æÀ‚åÀ…⺃޷zÚ´uØ®sÚ´yÞ¹{ἂ俆忀æ¼~ãµ|Ý°rß±mß±nÝ°jÙ¯nÙ©mÔ¦eÕ­làµtå·xá°uتlשgצbÔ¨jÚ®pÞ®iÞ°gÞ¯kÚªmÙ§cÝ«dÕ¨fÓ¤bÚ«mÙªlÙ©fÚ­hÖ­fÕ¯jÙ²rÛ±nݯmÞ°kÞ²gß±jÝ°pÚ¯pתfÛ«jÜ°pݲqß·wá·}á·zÞ»}à·~à¶tܶuÙ°v×­pÕ«nÕ­nܵqà¹uÞ¼yß½yݸyÛ¶yÖ±qÖ²jܺqÞºwߺuߺtݶuÜ´uܶyܸ}ܵ{ݲwß·{ߺyÝ»{Þ¾€ÝºuÚ¸qß»}â¹~Û¶tÖ´qÚ²qݵp߶wÞ²vÛ°kÚ®iݲlܳsݳzÞ·t߸uÞ³yܯvݪlݪpݯrܱlÝ®hà®m߯jÚ®e׬jÛ­rݱlÛ¯iÙ¬lØ«eÕªbØ«fÝ°lÙ¬lÚ¬nÛ­pÚ­mÞ´oß·vÛ´nÚ±gÚ¯jÙ­gتlÚ¨qÜ®mß³oá³oÞ°kÕ¨hÔ«hÙ²hܳnÞ´wÜ´vݳpÞ°pשjϧfѱlݹuá¹yÞ¶vÕ¯oÓ­kÔ¯fØ´mÞ¸rܵoÙ³vÚ°pÖ¬iÕ®oÞ¶s߸qÛ¶mÛ³pÛ°mÙ²pܳxܳrÙ¯kÖ¨hѨhϬoÕ¬qݲrÞ·sݳnÜ´lÙ²mÕ¬mÚ³rÝ»tÚ´qØ°jØ®hÚ°lدeÓ«`ÔªgجhÒ°jѬfÓ¦`Ï¡hÓ£k׬iÕ°jÕ«dÚ®lܲqÕ¬eÚ­dÝ´hÜ´nÞ´n߶mÞ¶rß¹xà¾vÝ·pÚ®jÖ¬kÔ°i׬fÖ«fزhܵmÞµvÜ´uÛ²n׳kÙ²nÚµrÚ¶rÞ¶sà·tÜ´tܳsܳqÖ°oШoÍ«oÙ³pá³qزoܵmâ¹pÜ´lܳpܸuÚ¶oÙ®eئ\ЖNÄ€8Ä„2Ò¡R׫cÖ«fÛ³lÛ²lÙ°k׳nÕ¯rÖ«lÖ²kÖ²lÒ­mÕ±qÛ²pÊ a¿•\Ï¥jجoÜ°oÖ®kÏ«hÔ±oÔ°qШoÕ©qÕªiÓ¦fØ©gØ­kÖ«k׬hØ«kÙ­mÚ³pÙ°mÛ¬lÙ©lÑ©kÒ¨gÚªgجmÔªfÈRÀ•TÇ fÊ ]Å™Wͤ`Õ¬bÒ¡XÒ¡_ÓªhÓ­lÓ¥dÓŸaØ¥gצ`צ]Úªdبg×¥bÕ¨[Õ¦Zا\Ú¬gÞ±qÙ´l×±nݲsÙ°hÖ®kܲqÖ«hÔ§c׫hÓ¦eÒ£`Ö¬gÙ¯lÜ°iÝ´nà´m߶má¹pÝ·qÛºyÞ»yܵsسjصmÒ«jÈ¢]̦bϪfÌ¥_É£bͧhÖ®oÖ²pÑ«nÒ¨mÖ²rÔ´rسoرnÒ­kصsÚµoÖ³tصvÖ°cÖ³lÛ»y׳kÑ­hÔ²oÖ¬iÒ¥fÓ¬nÕ¬xØ­vÖ¯k΢cËš\ËœXÎœZÎcÌŸkÏ¢jΠbÕ¦h»šká´了èÊéÈŒäÌ߼޻„ῆà‚äćçÊ罉æÀ‰å„㼇弉è‹æÀ‰ç¿‰á¹„ß·zà»qà¼sã¼zä»Ü³Ö²pÙ·sׯ{Ö¯uÙ³xÛ²xÞ¹sã¸{â±zá¶uÞ´u׫nÕ¨s׫xÕªrÒ§eΣdϦlÚ¬oݪjÝ­mجqÍŸbÍ¢bÖ©hÙ©iØ«jÖ¥bÕ cÞ®mã³lå®nä²uãµyã´xâ¯yß®väµuá³tרkשqÚ°zÚ«uÙªjܳoà´tæ¹uëÄ„ëÌ鿃ã¶yÛ®rÚ´vÞ¹}Û³xÚ´sÛ³zÜ°|Þ²uÞ·}⿄佃廅黀ç¼å¿‡ç¿…罈澇èÃ…êĉëÆéɉêÉ„êÆ„èÁ…亀à¼æÀ„ç¿€äÂçÅ„æÀ€æ»€ä¼ß¹|رvÖ­vÙ¶záÀ‚å‚åÈåÀŠä½ƒã¾ä¾|ã¼vݱnئhÖ®qÙµvÙµÚ·€ßº~ä¹€à²v×­nÛ°oß²uá²vá·u߶uݲqܬmÝ­má³uÞ°qÙ®kÚ°oÙ®iÛ°jÛ®lÕªf×°dÛ²lܱjÛ°iÚ¯qÞ­lÛ±r߶}à³qÙ¯gÛ­hÚ¦kÙ¨lݯjÝ­iݳhàµkÞ°oÞ®pß²nݳjÖ²jÔ¯iÕ©d×­mÜ®sÜ®oÛ±pÞ´tÞ³pÖ¬oÖ«nܯhÛ±nܱnÛ³tß·â¹uÞµoÛ´tßµqà¸và¼zá¼vÞ¹uá¼{â½wÛµxÛ¹â½}á¹sÚ´pزnÞ¶vä»~ã¸tݸqܸtÞ´qÜ´sà·sß¼và¿|ã»zÞ´qÜ´mݲoÙ°pÚ±pÜ°tÞ±qà³mß³iÞ²iÝ°pÛ´qݳkÜ°mݶsÜ°mÙªgÛ®eÚ«h߬já³gܵmÜ´qÞ²vÛ°pØ®gبnÕ§iÓ©jÕªoÖ­gÛ³eÛ±hÖ¨gÓ¤bÔ¥cפfÙªhÞ³oà±qÚ²pÙ³qܯoÛ¯kÙ¬hÙ«kÜ°nß³lÛ¯qÑ©nÎ¥aÓ«gÙµkܵpجpÏ¥cˤ[Ψ`Ô«gÚ¯hÚ®gÒ©aÒ¨`Ö§hÕ¬iÕ¯mÔ«qÕ¬l׫lתjÕª`Ö©`Ú©k׫gجf׫jѦbÓªhرqرoÔ«hÔ«jׯj׫hѤbЦ_Ö­jÙ®kÕ«hÑ£kÒ¦rЫnÒ§hÔ¥eÍ¥`ϨdÚ¬nجlØ°gÞ¶kݱoݱqá¸pá·rܵoܵoß´sÞ³tݱsÛ¯sØ®jÙ°hÚ²oÙ´oÜ·nܶoØ°kÕ­gÖ®kرpÞ³qãµwâºyÞµpÙ­iجjØ«aѨ_ˤcÒ§eÙ­lÙ«mÛ°pá½vá¸rÞ´rá·zà±vÖ«jÔªeÕ¢YÈŒAÅBÓ¤XÓ¥\Ò£^Û¯kÞµrÛ³nÕªhÑ£fѧfתiÚ­o×±lÕ®jÙ®oÌœYÀOÐ¥fתkרiÙ¨fÙ¦gÜ°tß³tÛ«rÔ©oÔ«fÒ¦cÓ§hÙ«mÑ¥^ͤXÓ¦cÕ£dÒ£\ѨeÖªlÚ­lÚ®nÖ¦cÙ©aÛ®kЦfÈ^ÇšYÅŸbÚ`ÖUÈŸRΣXÌ¡^Ò¥dÕ­gÔ­iФ_С`שhש`Ø©fÚ®iÛ±cÚ°gÖ«bÓª_Õ¨bÛªfÞ´nÞ¸pÛ´mÞ´sÙ°oÖ¬là¸vÝ´pÖ°oÜ´pÛ°lܵlݸrܳvÚ¶sÚ¸sܶwܵpâ¶tßµtÚ¸wܹܶyÒ¯kÔ©h׫hÉ¢ZÈžVÎ¥]Ë¢ZÈŸVË£]ЫhÖ³oÛºpÖ´pÔ²qÕ°uÕ°yÙ·tÞ¶pܶqÛ¹uÙ¶yØ°rѪgЫmØ´rØ­mÑ¥gЩiЧiÏœ`Ò¢hÕªkÓ¦cÒ£]Ñ¡YË™ZÍšWСZÏXΛPÍ™QÊ™ZÖ§b¾œcæ·{á¶}⹄æÁ‹æÀŒá·†ß»„ῃ⿅ã‹俈仈㾎佇ä»~ã»ẅ㼊澊侀ڷyÖ³{àº~ã¼€ä»ß¸|سyߺáºß¸€á¼~á¾yâ¾å»äº|åÁçÀ}ä½xâ½â¹xÜ´p×­pШlϪfÒ¨eÖªiݵtÙ­pÏ dСfÔ¦gÙ«jÙ«oΡfÍ¢fÕ¬l׬jݬfà±lâ³våµvà³oÞ±oâ»tä¼vá±rß²và²sÚ¨kÓ¥iÕ¦hÔ§hÚ±uå·€æ²|ã®vÝ©lÓ§hÙ°sÚ³rׯkÙ®uÜ´uÞ¸oݲoÚ¯pâ·xæ¿{åÁ~ì¿‚ê¼ä¾~æÁ†çˆåÀ‚꿇íˆè‚å¿ç¼€ç¼}â¼ݺzÞ½~俅㼅溃躃庀㿃åÂå»wÜ°xÖ¯uÔ±sÚ»~á„áÄ„ãÁ„伂Ḅ㸆â»zß²eצbÔ¬rÞ¹}ß¼{Úº{Ý¿„ã…⻀޹{à¹}â¹xã»wå¿äÀã½|ä¹|à¹æÁ€å¿xÛ³xßµyâ¹w߸yâ¹yâ¸wÜ´{Þ´zà¶|Û´zܱuÞ¶xß¼€âº{á±rÞ®oݱnÙ¯iÔ®k׫hÖ¨d×­kݱsÛ¯sÚ®pß±qÞ³jà·ká¸nÛ®dרgØ­nÙ¯nÚ­mܯhܱmÚ¬mØ©dØ«jÙ«mÚ¬hÚ®kà³pá±pÝ°qܳnݳkÞ´nß³p߯sܯqܱuÞ¶{Ý·wá¸tä¼tà¹wÞ³xÛ°qܲnà¸{à¹~à¸{ä·|äµyà¶}á»…äÀ€å½~æ¹}á³rß²wÞ´vÙ²nܳsÛ·yݺzá¹y߸tݳwß´{ß»}߸zÞµrÞ¹và¶|Þµ|Ú¶pÙ°iÞ²qà¸tã¼tå½|â¹zÞ·vÛ±vÙ«rÕ«tÔ«oÔ¯nײoÛ²qÚ±lׯnÖ¬mÙ«gجm×®sà²yá·yÚ·rߺqÞ¹rß·qß²oÝ°q߶vÞ³oÖ­nЫgÍ¥\Ï¥dÖ®iݶtÜ´qÕ©cΤ`Ë¢`Í¥`Õ®gجjئeÕ©cÔ¬iÖ°nرkÖ°jÙ®pݲrÛ´qÙ«oÖ§eѧ^ЧdÖ«hתeУaѦaÙ­gÖ¯oÖ«hÚ¯cÛ¯gÖ¦cÓ£^УbϦiϨfÌ£]É¢_Ï¥e׫hѨhÍ ^ÉœUÉœRÒ¦]Ù«^Ù«`Ø­fÕ§]Ò¤\Ó«a׫bÚ«gÙ®eÚ¶nÛ¶tÞ´pÛµpÖ­hÚ­hØ®kÓ«eÙ¯hØ°jÖ§g×¥cÕ¨eÚ®kß°oݯtß³zÞ´pÚ¯iØ­dÔª\Ô©aÕ©bÓ¦aØ«gÙ°gÕªeÖ­iØ°gÙ¬mÝ´qÞ¶oÝ­nܬgÚ¨^Í”MÆ’KΟ\ÊšZÊž[Õ«aܱjÛ²qØ­nÕ¤gÙ¨hÙ¯iØ­lÛ±pÖ®k׬mÒ§fÌ `Óªe×­iØ«hÙ­gÚªfÛ®qÞ¹yãºzÜ®rÙ¬mÙ²mÖ²kÛ³qÚ­iÓ§^ШeУbÍŸaѦf×­gÙ­iÙªbÖ¤TÚªdß´pÛ®aÕ¤bÒ§gÈ¢_¸ŽL¹L™YÅœZÉ¡YФ^Ò¦cÖ¨iÕ©lÓªhÚ²kÛ³oÚ±gÜ°eÝ°lÛµuÙ´uײn×­hÓ¬dÕ¯gÛ°jÝ·iܳoÜ­lÚ´nÞ¸|ß¹{Ö´s×´qݹyß¹€áÀàÀ~ß¼€ÞÀ~Ý»wÞ±rß´rÚ¶sÚ¶wÙ´vزrÖ¯oÒ¨eÔ­hЮhÍ©bÑ«fΦfɤbͪeÕ±oܵsÝ·tÛ³tܵuÛ·|Ù¶zÚ½yݼ|ß»wܹxÙ³qÖ­cÍ¥_Í¡aϨfÒ§bС^Σ_Ѩ\Ѧ`Õ¦jÙ«fÕ¦\Ô«dÖ©jΠYϤZש`Õ¦[ÍžXÊ™UÌžZÕ¬e¾œaè¹xâ³sá³uå¶ç¹æ»ä»zá·{ᶀ߹|âº{ã¶~Ẁãº{ã²xà³yá´vá´xã¹}â·{ݱ|Ù°zر~Ú²}Û´~Ü»‚ۻ߼…㿄㾅俉⻀ã¾~èÁ„åºçÀ‡éLJæÇëÅ‹êÁ…ܹu×´hÖ­kÒ¦rѤjѨjÚ²yÚ²{ЩoΦgÌ©hѱmÕ®kÈŸcÊ£eÖ¯lÔ­lÖ¬jݳnàµußµuܳoÞ³oâ²nå·uç¿{é»yå³vÞªmÚ«kÝ­zÖ¨qÔªjÙ­mÞ¯lâ±mܦeפeÜ­rÜ®qÖ©oÜ®xâ³sܬrÙ¡iÔ¡\Ô«jÛ´t߶sã·sâ³râ¸uç¼xç¹vâµxâ·}å¸yâ·uß·vâ´tá´zâ´uÞ®uß³ä¶}ã·}âÀƒãÀ…å½{å½~å¿…ã¸}Þ°xÚ³€Û¶~á¼ä¾„å¼…ç¼âµwÞ´zà·~á·|߶zà³yß·~ß»Šã½„â½zÞ¸zṄ澈⻀àºä¼ä»…ãÀ…éŇêÄ„æÀ€ä½è„ä»}Ú²uà¼}æÁ…ä¼…ãÀ€â¿‚Ṁ⻄㺈佅á€á»Þ³}ݵyÛ´qײtÛ´|Ü·tÙ²uݱ{à²và´pÞ³uÜ·vݹuàµxݳtÞ´pà¸yܵxݯpÞ°sÞ¶rÞ¶tÞ´pß²kܯjÓ¨bÒªcÝ°gÞ°gÙ°kÛ¯lÛ­hܯgݬlݬjÚ«iצhاeÙ©kÛªmܧhÖ¥gÙ«là­sܯrܳxܱpدk×­nÚ°oá¸vÞ¶nسmݵ{á¶yßµmß·rà¶xÜ®uÛ°kݳnÞ³wݶ|Þ¹uݹwÝ·yݶwÙ³vÙ¸{ß»}ß³vجlزnÜ´sßµtà¶pÛ²oÜ´yàºã½~輄繂à»wß½{ܳyÕ¯rÖ°sݳtß´t߸yݸxÜ´uÛµtÙ³và¹}à¹~á¶zã¹}ݹ{à·pà¹pߺxá¶}Þº~á¿zà²rÙ©vÒªmΦjЦqЩjÔ®mݸw׶qÓ¬lÓ§gÓ®mÚ³xÞ­wÚ¯rÙ¶uÜ·vܶuÞµyà¹yÞ½{ܽvÞ·rÚ´tÙ³tÖ®rЫnÓ³rÕ²oÒ¨gÓ¬qÛ¶zÛ´x×°sݵqáºsݹtÖ«qϦpΫjЫhÒ©jÒ©oÒ©oÔ¨eÒ¨_ˤfÈ¡bÄŸ[Æ¡]Ï£^Ò¨gÚ´pÔ¥^ÈšSÊŸXÍ¢ZÒ©`Û¯kܯnÛ²jÞ´uÛ³wѬmÕ¬qÚ­lÓ¦jÖ©lÕ©hÓ¥mÔ©kÓ©cÕ¨hجhزlÛ¶uÚ¯lÕ«d×­gÖ­hׯcØ®dÖ­iÙ°jÖ¬pΤmÒ¦eÓ¨eϧiÕ¬iÕ«hÖ¬cܯfݯkÓ¢cÊYË£ZÈŸWÈ›XÊ£]ЩdÜ«dÛ¯fÙ²i߸pà¸sÚ²rÚ±tØ­kÔ©bÔªcЦcЩXÔ¯`Û®qà²vÛ°uÕªuÙ°sܳoÒ©rÑ©oײjÙµoݹvà¸tÙ¯kÔ¯nÖ­nÒ¬lЫp׬sÛ³rØ®hש_ݳnâ¹}à¶uÝ®lØ«nÇ¢\´‹F¹ŽOÂVÀšXÅšYÆ–RÈš[ЦgØ­hÖ¯hÙ°qà¶{ÞµuÛ°nÛ¯nÚ²mÙ¶sÛ¶uدlÓ«gÓ«lÔ©gÕªhدnÚ±oÓ¬kÓ±rܵsÚ°uÓ¯uظvÞ¼}à¼xÛ¶~Û»…ݾ۹|Ú¶xÙ±rÓ¯k×±pÛ³vÓ³uÕ´oÔ®hѪjÔ°hÒªeΠhÊ fȤhЫrÚ¶rÙ¹sÛ´yدr×µsܸ~Ú²{×´u×°sÔªoÒªeÓªcϨhÍŸbÍš_Ïž`Õ _Õ¢bѦdÓ©cÖªdÖ«g×®f×®kÜ®gÙ®eÓ¬hÔ«g×­eÚ±kׯjÑ©^Χ^Ò¨d¼•bì¼zèµyå¹yå¹{鹀輄ãºzá³uã¯xá°vÞ³wà¸zå¹|ç¶xä´rãµrâ³xå¶{é»溄䴄ܲ~×®vØ­vزxÜ´vá¶~㽉俇罆淄ã¶}æ¿é†æƒéćí‡翉çÊëÅ…á¹}ݱtÚ®jÓ©fШfЩkÙ­xÚ¯uÔ­qÓ¬pЫoѯxÙ°wÒ©n̨mЯrÔ¯qÕ¯vÚµz߶wá¸}á¶}ä¶yå¸亀èÀèÀ‰æ»~âºwÞ¸zå¹|å´yÞ®uÙ«qÙ¯qâº{á³xݯjÛ°kÙ­oØ­já¶kã·wÚ¯pÕ§hÏŸdÍžbÑ¥gÕ­oÙ²lÚ¯k߯ná°nà±oß°sß²rá´jß°ià²räµsâ±nà±o߯oâ²zäµ|â¹{ã½€â¸}ß²zß±{ã´~â»{Þ¸yà¹}â¿„åÀ„澄ã¼~â»yá´wà³yá¹~â·å»…ã¾á¶yà·|â¾{á¹yß´{ä¼â¾…ß¹„ã¹€ã»ß»{á¼èÈæÁ†ã¼å¾潀⺀ٴyÙ¹~á„â»}á¸z㻃â¹ä½è…忇俊侃ڵ}ص}Ú¶}Ö°ܲyܳvÙ¶{á½}ã»yá¹{ã»á½ˆáº…â¸{ÞµuÙµ{àº}å¾{ã¿|å¾{ä¼xß½{àº|ã¸vàºwÙ°nЬeÕ´qáµvà·ußµpܱoÚ°nÞ¯kß°rÜ°rÙ¯lÙ®fتg׬`Ô§ZÌœaϦeܱhܯlÛ²rÝ°nÖ§cÖ¨dÙ¬eÚ¯iÚ°kÙ¯gØ°nÙ®nÛ¨jÛ°nÚ³pÚ­mݯrÞ²rá¹uá¹wÚ³uݺuÞ¹sݵrرm×­kÛ­jצfΣYÍ¡XТaÔ¨gÖ«gØ­mÙ°sÚ³rÞ´váµzàµyà¸sß¼zÚ¶~Þ´yá¸w߶xÞ³sß»sâ¹~߶{Ý´tݳxÞ»ã½}á»}Þ»„ߺ…àº}á½€ã½ã¿vãÁyæ¿Þ¶xÕ±vβw̳uαpÏ­nÑ°rÕ±uÛµxÞ¶{ݸxÞ¼yàº}ß¹Ù¶vÙ·uâ·{ß¹yÞ¼ã¾â¾Þ¾‚ݺ~Û»zÜ·zÙ¯sÖ¬vÙ²tÛ¶rײqÖ­sÛ¸{ݼzÛµvܸyß¹|à¸yÚ¸vظwضnÕ´q×´}Û·vÙ³wÕ®vÓ¬gϨbÉ¢^žZÂœbŘ^Ï¥jãÁ…ܳuÌ¢hÊ¥`ϨcÙ«rܲjÛ²kà¶tá¹rÛµt×°oÜ´lܳoÔ­nÕ³oܲpÙ°tزvײrÔ³lÔ°oÒ«lÔ­mرmزdÙ²jÚ±qÙ·sÛ¶tÛ³qÚµrÙµvÙ±rÓ®oϪpΨo̧kΤgÒ«pÙµuß»yÙ¶tЬmÏ«gˬbÅŸ]ĘXÈž[ѦdÓ¬jׯi߶n߸oÚ³rدm׫fП]̘UÊœZÈ cÏ¢bÚ«p߸zÞ»vزtЦhË\ÈŸ\ʤ_ΪcÕ®oÛ´tß·sܶyÙ·{سwØ°xÖ³vصwÛ·vÛ¸xÜ·u߶râ¸zæ¸wâ¹vÚ·rƦ[²N¼“^ÅŸfàfž]Á™TÉŸ^Õ­kÚ³tÞ²vÛ°qÚ·uä¿€âºwܳqá¹yß¹rÛ·nزmÓªdÒ§`ΤaÐ¥dÙ¯jÙ³pÓªkÒ¦fÕ°kÖ²pÕ¬rÙ²vÚ¶vÚµuݶvܹ{Û¹|ܺ~ݹyÕ±kÌ©fÔ¯rݹ{ضrÖ³vضvÖ´mÖ°oÕªgÌ£ZÈœYÈŸbΨm×°rÖ²rÕ±rÒ­hÑ«iÕ­iͨbÍ¥dÍŸ]ȘZΞ]Ô¤YÒ¥[Ñ¥]УTΤWÖª^Õ«`˨aÍ¥bÕ­eÖ´mضoÚ¸pÜ´vÝ´oÖ±oÖ¯qÙµmÚµpÞ·pݵmÕ°lزg·œ_ë¼}é¼}å¼æ»}é»è·„âµuß³qà±rÝ®tÞ±wà´vã´vç¶yç¶{å¶{å¹zå·{ä³væ·xä´zá±zß²€à¶{ã»}溄ç»}æ¼|äºå»ƒæ¼‰è»†éÁˆäÁ‡æ¹‚黄é†弃ໃåÆ„äÁ‚à¹{á»zâ·}â¹}ß»~á¼€åÀ…äÀƒá¹zܵwÚ¹yὃ㺅ܶ{Ù´yÞ·á¹áº€â¸€æ»èÀƒé¿ˆéÊé‡çÀ†çÃçÁƒä¾‰æÁˆèĆéÀ濅㽃ãº~ã»æ¹{æ·zÞ³wÖ«oÕ¬nÞ·y乂á³~Ø­rЪpʤkÆ¢dʨjЭjÔ­dÔ­iÕ¨pØ«sÛ¯qߪiÞ¦hݦgÞ­há±là­hܦaبfÞ°sß±rÞ³rà³sß®sݬwÙ¨qبkÚ¯oÙ®oÚ¯qà¶rä·xä¹zá¹rà·wá¶{â¶{ä·å¸ä¹â¶{Þ±sݱwá¶|á»xà¹|àºâ¾ˆä½‚ä¸{à¸yÙ·{Ù¶{ß»{á¹{â¸~㺂㼀ã¹zÚ±vÚ¶yÞ¹xÞµvâ¸wá¶{Þ³|Û·|ܸƒß¼…â¼á·}ܲw×®tØ®tزr×±t׫vزyÛ¹zܸzÜ·{߹߼ãÀ~ã¹yÙ³vسvݵxá¶~à»à¾|á¾uâ½|ä¼~ä¿⽄߷}×°nØ´rß½„ãÁ‡å¿€ã¸{Þ¹vÜ»tÝÀ}ݾ{Ý·zÞ·zݵwÛ´sÙ¯lÔ¦mÔ«k߶vá´zÛ´pܱpܬpÚ¯lØ°gÚ¯iÚ±gÛ°hß±oÞ®kÙªiÙ®lÚ«gÖ¦fÖ¯dÛ²fܱlÛ²kØ®hÚ±jݳnÚ°gÖª`Õ¦dÔ¦hΟ_ÇœZÉ[È™ZÈ™XΠ`Ò¦cÑ¥dО`Ñ¡ZÕ©eÙ¬m×°hÚ¯nÜ®lܯpݲxÛ±mܯjÞ±pݱrÚ­nÖªnØ­qÞµyß»x߸sÝ°zÞ°{àº{á¿ß»xÞ¸rÞ¹tݸtدrÑ«rΪoÒªsÖ«v×°vÔ¯uÕ´uÛ»sÞ»uÞ»|à¾~Þ¹vØ´oÜ°mÚ«p×®xÛ®xݱ{ݸ|Þ¸xß´tÛ¶sÙµzÜ´|سuÖ±xÛ³{Ù±xׯqÕ«jÕ¬r×°u׳vÛ´|ܶzÛ¹|ݸ~Þ·}ݹⶀà³{Ü·zݶ{Ú¯zÕ¨lÌ¢fÇŸcÅ ]Ä¢[ß^ͪlâȄݺˤlΫjײqܺ~ߺ}دr×´oß»tܶ{ÙºwÛ¾zÛµ}Ú²tÚ´uضtܹ{ß»€Þ·zÜ·yÛ²oÔªoÑ«sÕ¯jسpÙ´uÙµtÙµxسyÚ´tܶvÝ»vß¿{ݸz׳rÔµtÒ²vÔ°uعvÛ»{Û»vÛºxÕ®pͦcÌ©eÄ£b½—T¿–SÈ¢bË©gЩgÚ°u߸{Þ¶vÛµvÙ±rÓ£aÊ•JÊ—NÌž]ÈŸdϨfÙ¶mÞ¼zݸ{Ö­sÉŸgÉ¡cÑ­hͪbÊžZÓ¦iܶ{ÞµvÛ¶pܹsÛ²sÙ°nݲs߶sݸsá³oÝ®fØ°mܹvÞ½vÙºy̧h˜VÊ¥fΨiΨiЭoЫkЧl×­mÛµpß¹uÞ¹{Ú·wß¹yâ¹wá¹tà»vÛ»qܺuá»zÚ´lÏ©eÍ¢fЩjÖ³uÚµuÕ¯i˧bѪgÙ³uÖ°uÖ©k×­rزs×±nÖ°uÛ¶{ÞºÞ¼xݺtÖ¯sÕ­vܵ{ضzÙ³{ܶ~Ú´zÙ´vÙ¶mÔ­eÍ£dÆ_ΡgجjÕ°bÒ§aÌžcËŸdÏ¢YÎœRÍšYÊ–RÅ“QË›_ПaÑŸcÖ§`Ò¬]Ñ©dجfÜ°bÔ¨\Í¢`ЪkÒ­l×´oÙµgÛ±oÛ³vÖ²hÕ¯dÕ²lÔµpÖ³nܶsÛ¶yݺv¾¥l濃濈å€å½{ä»|ä¾zä¹và´uã·z߸zرrܳqá»~â¼€éºvè¸zäºyã¹rä¶rå·rã³tà³yã¹|ä·xç¸vë¹zè·z庀繇꺂éÁƒêĆéÀƒâ·„ⶀ幂龄æ½{ã»y濆ëÂŽìÅŽëÄŒêÁ‡èÃ…èLjëÆŒìÈŠìÈŠêĊ亃滄êÆ‹ëȊ꾇޴}ݹ|èÀƒè…心êÀ†ìÅîÈŽîÇŽéÆ‹æˆèÀƒæ½‚éÀŠéÑèÅ‘èÊçÄŒçÄç†ä¿ç¿ˆêÁ‡ãº€Û±vسyὉëÁ‹è¾ܵxÖ±uÒ©uΡr̦mͪlÔ«nÔ®mÖ±oÛ´vÞ²vÝ«m׬kÖªhÙ©eà¯kÜ«hרfÓ¨e׬iÜ®jÞ±iݯiÝ©já¬mÛ¨aÓZÔ¡[Õ¥ZÕ¥bÙ¬fÞ°iá®ká­käµrç¹uå²sá¯là¶rãµuß®kÙ¨hÙ¨oÞ´{àº{á¶vá±vßµrá»xá¸yܵsܳzدvܵvܶzÝ´xâ·|á¹zß¹tÞ³oá²oáµtÞ¸xß»zà½zܶzÕ°}ص{à¸yß·zߺ}ݶzØ®xÙ¯y×±qÓ°sÒ¯vÖ°vßµ}àµyܳx߶}Þ¹|ܹ}â¾}á¼zÞ¹xá¹x߸vÛ¸z߸}áº~ß½{áºvâ½zåÁ~â½ÛµyÚ´zݺˆàÆä‚â¾à½{ß½Þ»„Þ»zá¼{⻀߼|â¾|à¹zÙ¶vÚº{äÀã½~Ú¶}Ý·{á»{á»{àºyã·vàµwà¶xâ·yà¶xݵtÞ¶uÞ²lÕ¬gØ­nܱoܳqÝ«jÙ­fÛ²oÜ®uÛ®rÜ­lØ©hزnÕ¬pСhÑ©eÌ£cÊš[Ë£XÌ£WË^Çš\ÉœUÑ¡\Õ¨dÔ¯eØ«eÖ¤b×£bÙ¨gÙªbÚ¬cÛ®fÙªeÖ¨fÔ¨hשhݳoÚµrدhÖ¥dÕ¥mÚ­rݵoܲoÚªjÖ©gÔ¦gÔ£hÐ¥nΦjÖªlÚ³vÚ²zØ°vÖ³pÚ¯sÚ°{Úºyß½~Ù´tÖ¯hÙ°oÖªkÙ©hÞ´mÛ³oÚµpسnÕªn×­oÙ²pܳuÞ¶uÞµuÞµxÞ¶uÛ¹sÖ´nÖ²mÙ±kÖ±nÖ²vÛµyÛ¹{ܸ|à¶{ễἄ޴vØ®rÚ±uÛµtÙ­jѤdÌ¥fЪlÖ¯oÐ¥lÈ gÔµsÔ²qȨhÓ¶xݹ~â¹}ã¼xÙ²rÓ«kÚµrߺwݵvØ´uÙ¶vÜ´xܲyÙµyݵxß³{â¹|ä¾ä¾…Þ¹€×³rÕ²rݹã½Ý¶{ܵtÙ°qÔ°sÙ¶vß·€à½ƒßºݶzÞ¼vàÁyáÂzáÁ~㾇޹|Û²sׯtÍ©l˦gɧmÄ¢eÇ¢]ȦbãeÈ£hÓ©hÚ³qÝ»tß¹pá¹pÛ³f×¥XÖ§aÖ­iÒ§hШoÙ´zà¼~àÀzÝ·yÕ«nÑ®jݹvÕ¯pÖ]ËžeÖ²oÖ­tجtÝ´sÜ°qÖ­n×±qØ°tܶyß²nΚTР]Þ¶p×®lÒ§iÈ¢`¾œZÊ¢h̦nÊ©dʪbÈ©eÌ©fÌ¥hÒ«nÚ³vÙ·tÙµtܵußµmݳoÙ²sÛ²uẀà½ܹvسkÓªbѪeÓ°oدoÚ«mÕ¬oÕ¯m×±pÕ°rÒ¬lÕ°m׳nÖ±sÚ¯zÞ³{ܹ}Ù»{ÙµrÙ­jÖ°qÖ³{ׯwÙ±rײvÖ²qײiÕ±mÕ¯lÒ¥eÌŸ^Í¢aѦfÒ¡fÍ›bÌŸbÒ ^ПT΢TÔ¨^Õ¢\Í¡VͨYϧ\̦^Ó±cÙ²jÜ°lݳràµsÚ±lΫgÏ«dÏ«gÒ­kÖ¬kÕ®m×´oÖ²jΩkϧoÓ«kÔ¬kÙ¬rÛ­pܲz½œrçÅ…êÀ‡é¿„㺄ീ濂漂䷂俈߷ƒÙ¯~Û²xß·yã¾zè¿|å»{ä·yåµuá¸vã¶yå²uäµyã¸}á³qá³qäµzä·tèºvä¶}å¹{ë½~蹃ê¸å¶|ංæ¶~ã¶|㻂çºçº}ê¾…íĈæ¿}ã´ä¶„ã¹å½ƒé¿ƒèÁ‡è¿Šå¾†æÃŒëÅíÅŒíÅŠå¹xݶsè„ïˆ罆俆èÀ†è½‰çº†æ»ƒã»„⼈⿄åƒëÁ‡ëÀˆå¿„è¾ë„êÁˆæ¼„åÀéÅ‹è‘ḃà¸æÁŒéÃìÀ‡çº‚ä¹€Þ¶|Ù²|Û³vÛ³qÛ²}Û´㿆èÁ}à¸sÝ·yÙ³oÓªeײlÛ®kؤgÔ«lÒ­n×±lÛ²pÜ®kݪeá°oäµvÞ«kÓ¢^Ï¢]Ï ^Ó¡bÖ¥fÖ©hÜ®kÝ°hݳnáµpá®kܪgÞ¯f߯mÞ­kÞ¬gÛ¨cÛ«pá°uÞ­jÚ¨hÝ©là®vܬkÖ§gÚ­kÕ¬fØ®oÝ°yÚ«uÝ­oÜ®lÜ®oÞ´oà¶tßµsÛµxß¼‚äÁ‡ß»~ß´{àµvÚ²tÝ´yâ¶và°rݯsÛ®oÖ©nÓ«mÔ­mÛ¯qÞ´sÛµvݲ{à±yݵ{ݺ‚Ệá¹á¸{â»ὂ޿}Ý¿}Ý»|Þ¹{ܸzܹyÞ¹z߸{Ùµ}׳|Û³vÜ´yݹ}ܸvÚµtÙ´|Û²{زtÞ¹xß¹€Ü·‚Þº}Þ¸vÚ´uݺvâ¿zàºz߸|Þ¹~àº}â»~ã»{áºvà¼vá»wá·vá»}á¼zá¹yà´Û°zݺzá¿yܶrÙ°rݳqÞ²nß´qà·vàµxß³zß¾xÙ¶oÒ«oÒ­gͦ`Æ¢bÆŸb–YÁžVǦXʤZÍ¡_Ò¨aÕ®^Õ¬bÖ«fÖ©eÖ©fשiÖ¦iÖ¨jÖªiÕ¨iÔªiØ«hݬhÛ¯iØ«fÒ¤^Ò¤^Ô¦dÕ©hØ«hÕ¦aÓ¢\Ô¢ZÒ¡]ΣcΣbÔ§fÖ­mÚ«kاkÓ©o×®mØ®lÓ¦jÔªhÓ«hЦhÕ¦lÕ§hШhÖ¬nݯqÝ®pÖ§fПdÏ _Ó¢^Ö¥gÙ«kܬoÚ±pØ´oÛ±qÖ®kÕ«iÙ®mׯkÓªn×­qÛ¯nÙ²pܸwá¹~ߺ~Ú³uÙ°pÚµtÜ·zÙ°r׫iÑ©iѬpÕ¯qФhÅš`ĦiÆ¥cÅž^Ò°tÛ¸|Ûµxܸ|Õ±qϪkÓ³tÙ¹~Û¶{Ü´uÚµuÛ¶oÛµvÛ¹}Ú·tÙ³vÞ¸yá½{ὂãˆ὇ڳ}ß»}âÁƒà¸{ܲsÖ°tШqÓ«mÚµvÞ¹~ß¹{á¾}â¿æ‚äÃã»}ßµ‚ز{Ö°mÙ¶sÞ»wصpЪkЭuÓ´yÓ­jɤ\ábǤgÑ°kÕ®j×­qÞ·yß²jÞ®kÞ¶yܸÖ®tÔ®iÛ¸vá½{à½zݶvجqÓ¯n×½sÙµoË bÈ¡hϪqÒ«sÖ®rÙ´uÚ²rØ®mÜ°tÚ±rÚ¶tݳpË›UÃœ`Ö®pÕ¢bÉ›^Äš\¿–VÂœ`ÆŸcÇ ]Åž_Áš]Áœ\¿š]ÅŸfÕ­o×°oײpÛ´tÞ±rÞ²rÙ°yÜ·xå¿záºÛ±uÖ«iШgΨjϨjѧhÒ©hÒ­pÕ®uÖ°qدoØ­qÕ²tÚ´xÚ°rÕ¯rÖ°tصtÛ¶tÛ¯kÒ¦dѨhÕ©kÖ¤fÕ¦fÑ¥eТcѤbÏ£^ÏŸ`Ñž`ÎœYÌ™YÊ›\Í›YÔªdزfÓ©_Ó©`Ù¯eݳkܲkÕªbѬcÏ«gÍ¥dÓ¬jܶoàµsáµvß¼v׸nÍ©hÉ¢cÒ­jسs׬rÖªoÕ©mÒ¦dΤ^Í¢fТdÏ£[ͧeϤfתfÁškçÁ‰è¿†æÁݺ}Þ¶|佃æ½è½†çÀã¶Þ±u߶xá´vãµvç»zç»xä¹sâ¸uâµwå·uä¶uç¼zã»vÞ®pà±~Þ¶~ݳwã¶~á¶sà´sã·}â¶zä¹wæ»uå·wå³xåµuä·yã³zãµvå¹{åºzå·vå¶vã²uå´væ¹}å´~ç³|ç»}ç¿„è¼…è¿è¿€ê¾ç½ß»}ã¼ê½…æ¾€ä¿ã½~Þ³xÝ­z߯~à³~Ẃ濃ê„êÉìÄíˆ龀鿄ëÀ滄迈ëÁŒçÀ…åÁ…ãÁƒæÁ‚éÆŠèÇêŠìÀ…꽂潂俀à»}â¿ãÀ€åÀé¾yâ³và·zß´uجmÚ°sÜ´rÖ­hÐ¥hШrÙ°tß´rÞµvÞ´wâ¸xç¼xæ¸tÞ°qÖ©hÑ dΧhѬgÖªmÛ¯p߶uݱoÚ®jÜ­pߪrâ±oã·oá³qß±nݯmÝ©jݦaÝ¥\Ú¥bפdתjܬkÜ«gÚ°hÙ¨`ݨlß±qß®jݨkÚ§jÙ§mÙ¦gܪeݯqÞ³uåºzè½â´xݯlÚ¬lÙ«oÛ°oܳpÜ©mÛ¨rÚªqצhÖ¥lרlÙ­iܲsßµ|Þ±vÞ¶xܸvàµuã¶|à¶{ß²vÞ²yÛ´vÞµzÛµuÙ°oÛ®uÙ¬rÙ¯rÚ°sÙ°qÙ°sܯmÞ²oà´tàµrà´vܯsÙ«qÙ°vÙ´vÙµ{ݶ}Þ¸xß¹Þ¹xÞºuá¸Þº„ݹzÝ·tݸvݶxß¹xà¹tÛ³rÛ±rÞ´xàº|á¹{ä¹{à¼}Ý·~ܵuß»{ß»ƒÞ¶~Þ»}à»xá¸yṄà¸}à»yᾈᾄ޴tܳuØ°pÍ¥hʤeȤcÅž^ɦjЫpϪkÑ­jÙ²nÞ³sÞµoÜ·oÞ²wÞ´xݸoÙ¶mÛ²xÛ¯v׬mÕ©eÖ­hÛµqàµpà³kׯlÖ¬lÚªiÞ­jÞ­mÕ¢dУ]Ù­dÛ¨bÑ£\Ö­cÞ·rÞ´nܳoݳtÝ°sÛ®oÛ«hÕ£^ѦcÖ§hÔ£aÔ©\Õ¦\΢\Ô¨`Û­hÚ¦bا[Ò¦`Ê_Ë›ZП^ΡaÌ¢Xϧ\Ô£eÔ£bѤ[ϤYѤ]Ò£_Ï¢ZÌ¢\Í^СbØ­hÚ³rزw×®p×±pÚ³vÚµvÙ¯pתkÒ­kÑ®lÏ«fΩeÆ¢g¿˜_¾”]ÄœgÒ®sܵxݶ{ݸyسqЫmÏ­pÖ²yܳzݶu×µvس{ݸ~Û´|Ö°vÕ²yÚ´yß»tÞ¼xà»zã¼Þº€ß¿~༃ݵ}ÚµxÖ±sÖ®lÖ®nÙ°nà»sáÀß¹|â»vé„æÀÞ¹{ܶ}Ùµu×´và¹}åÀ…忇޵vÖ±mÖ°uÖ«uϧo˧kΫjΩlÌ£fÍ£dÒ¨hØ°jÜ·q߸yäº}ݶxÖ²tÜ·{Þ¸yÚ·u×®vÕ«rÕ°nÛ¸xÙ¸~Ыp̧c˦fΣmÒ®q×´vÝ´uß³uÞ¶zÜ´vÞ¶{ß»{Ô«gÇ^Ë¥aÐ¥`Ó¥cΤ]Çš`Í¥hÒ©iÕ©kÔ§eͤ`̧hÈ£eË¢fÓ®mÒ©iÔ¦jÖ¬lÛ°oݵtÙ±tݲuâ¿xãÂ}Þ¸yÓ­jЧkÔ¥kÔ§oѦqÍ£jË dˤdϦfЦdÐ¥jÓ§o×­qÕ«oѪlÒ­mÙ«tݯuÕ®hÊ¢[Í ^С\ÎœSПVÍŸVÍ¡T΢XÈ›XË[Ο\ÌœLÌœLÎXשdâ¸yå¼tܶeÑ«dÕ°uÛ¸uÚ¶hÓ°jÏ«jΨ^˦[ͧnÙ´wá»kܲgÙ³lÕ­kËbÊž`Ö¯jÞµq×­nÒ¥hΠ_É›YÌšZЛZ΢[ÊZÈ—ZÎ]Ù¨g¹™dåÀˆåÁƒè¿zä»yÞ¶yÝ´xàºvç¾xé¾€æ¼á¸|á·€ã·zä¹væ¿|é½~è½ç¼€æ¿€è»~è·yé½~è¿…ä¸Þ¸|àºzå¼xæ¼}ä³|à´wà¸và¶tâ¸xä¶|å¶zã²xà¯zß²sß²qâ³xä³{ã±~ã³yã¶uè¶sê·rì¹wé¼zæºyç¶sçµvâ´uá­oá­oã´vä¹zÝ´qà´qã¶vݲtá­xÞ¬xÙ­rÜ°oÛµxà¶yçº{漈ã»~ã¿zä†迆ç»ä¿„äÁ€ä¾}çÀ‚羈罆æÀ†æ¿†äÁŠèƉìƒèÁ‡éÀ…æ¼~漆軇ä¼äÁ…ç¾æ»Þ²}á¶vã¼}Þ¶‚Û´|Û¹xÚ´yÖªsѨnÑ«mݵ{缆è¼~潀翇è¿}å¿}丅ܬrͧa̬pÒ³zÖ´wرuݳuدnÕ«mÙ²qܲkà´rã·yâ¹mä¹qâµuܲrÛ­qܯrØ°tØ®uÜ°sÛ°nݱqÞªo×¥dß³oã·uá±mß®mØ©fÔ¨e׫gتcÕ§gÖªjÚ°kÞ¯kݨfاdשdשfÛ«pÝ«nÙ©eب`Ý¥^Û¥aÙ§]Ù«eÚ«kÛ«kß­qÞ°sÚ¯nÚ¯rÙ°uÚ«kÛ®jÛ²jÛ­fÕ§fקjÖ¨iÔ¦eצfÕ¦gÛ©hÚ¯jÙ³oÛ²qÛ±oÚ®iÛ­rݵz߶sܱnÛ²nܳsÞµ{Þ³‚߶‚â¼ä»ß·|Þ¸{à¹~Û¶yÖ°x۰߸ٳuÕ³sܼzÞ¼€Ý³zÙ´wÛ»~Þ¹€Ø³wسtà¸tݶqܹzܺ~Ù¶{Þ¹~Þ¼zܶyݹ}à½wá½xãÁâ¿}߸zß·}ÛµvÙ²uÙ¶}Ö±uÓ«pÙ±{ß·~Ü·tÙ´qÞ¹sß»s߸và´wà³uݵwÞ¹xâ»uæÁ‚â»zÙ±pÙ°rÚ´uÛºzàºzâ»yà·zÚ¯l×°j߸tã·zݲqØ®hܶtسrÖ®gà¸tä»}â·uá¶sÛ¶sÛ¸tÞ·oÚ²iÙ­oÚ®pÙ°jÙ³hدj×­gØ­lÛ±oá¸sÛ³lØ®eÚ´iѬeÊ ]Ì¢[΢]РcÒ¥dÔ¨cÓ¦`Т\Ñ¡ZÕ¤[×¥aÒ¥^ÈWÓPÕTË¢cÕ©cÕ¥_УdÒ¤gÔ¦fÕ¨eÕ¨cÖ©dØ®kسuÒ­lÍ¢ZÅœ[¹’U¾‘PÍž^Ó©hدvÞ´}Û´tصqÔ¬iÓ¥_Õ§fÓ¬oÕ­m׬oÕ®tÕ®tÔ©nÓªgÕ¬eÑ­gׯkܱsÞ´yá¸xܶuÛ¶pܸqÞ·wà»uß·uÚ²qسqØ°tÛ´uݺvÛ²qá¹{íˌ漀ڭrÞµv߶sÞµtÛ³vÞ´zເڳzÔªpÎ¥gËžbÊ¡eͨhЦmϤqÌ¥gÉ¢bË¢iÒ§hÖ±qÙ²tݲsÛ³xÛ«tتmׯr×±xÕ±nÓ«gשmÛµxà»{Ù±pͦgÈ£aÊž^ΣkÖ«vܯoÛ²mÙ­oÖ©iÞµwéÆ„Ú¶nÅ¡_ÃZÊœZÔ«d×­gÕ¤gÚ­jݲnÞ±mÞ°mÜ®pݲuÖ°iѧaÓ¥jѤgÐ¥bÐ¥cÒ¤_Ô¥aÒ¢dÓ¢b׬iÛ®oØ­mÕ«fÖ©dÔ«gשmÕ¦fÍ£]Ê›RÌ•OÍœZÊ›ZÈ—Y˘VÑž]Î`Ê›]Ο[Ñ¡bÙ¨jÙ¨^УZÓ¨]Ò¥\Ï \Ò¥ZÓ¤SФXШ_ÌŸZÍŸZѦ_Ó¦_Ñ¥\Ò¤^Ú®hà»rߺsÙ´nÕ®nÖ²|׺€Ú¸sÓªhÉ¢cÃ\ÁœWȦhÔ¯yÛ·vÙ¶kÕ²lѨfΡ`Ì¡`Ò£bרhÕ§jÒ¢eÏ›XКTÑœUΟ`Ò¤dÒ¡^Ìœ[Ï¥fÝ°k¼šcἃã´xã°uä·|ã½yݶxà·}èÂç‡辆ã½ß¿~ã¾æ¼„åÁ‡éÁé¿辄êņíȉ较èÁ€ëÈéÁˆêÀ‚ê¿~íÃíÃ…ç¾…å»}çºzå¹{ä·væ·~æ¸~ã¹sã»sá¶xß±zá´}â¸~ã¸}â»|äÁxè¸uè²yé»}ë½xê¶zä²uã²mä±mÝ©jצmß®wà°xÛ­qß³tßµsÞ±ià¯lá¯r߯ràµvä¶zå³vå¸yæ»zâµuá´qâ´qá´xã¹{一㼂佃罉æÁ…什á»~ß¿yâ½è¿…ëÃë†ìÆŒåÃ…æ¾{꺀輈轃ç¾~ä½â¹}ä¿„èÅèÃ…å€促߸~Ú·tÛ¸wà¹}æÀ~çÄ濃æ¼~éÁ„èÀ…é€ëÃã¹×­vÔ«qÓ­tزuÛµ{ßµݲ|Ø°sصtÞ¹€å½ƒä¾å¼~ä»|ä¹}à¶|ܶtÞ¶yã»}á¹{Ý°xÙ«wÙ¯~ݯvÛ°qâº}è»ß²yÚ­oÙ«k×­tÙ²v×®lÕ¦bÕ¨jجoÛ¬lØ©mÖ¬oÜ°rß²sß°qÞ«nÚ©dÚ¨cß­hܦ`ן^Û©gÛªfÛ«hß­k߯lÝ«mÛ£iÙ¨bÙ©dÜ©dÚ«_קfÒ _ФfÖ¦iÓ¡`Õ§fשgÚ¨hÞªlÝ­lÙ­eجfÔ¥kУfרmÙªmÖ«hØ­mÚ­kݯsß´xß·tÞ¶xݲzÛ±{Ú°uÛ²yÙ±vׯtÚ¶vÞ¼wÚ°tÓ¬qÛ¹xá½|ݺuÛ¹wݹvÛ¶rѬnÔ°oݹ{Ú¯zÛ±~Ý·|×·rÔ²sÖ­sÖ«nÙ­sݶzà¸{ã¹}à¼{Þ¹{àº{ß½{ã¾ä¾ƒá»~ߺ}ß¹}áº|à·{ݳoݸkܺvݸxÞ¶tܲuÚ°sÛ±sá½ìË…è¾tÞ¶uÝ»{Ú½yÞ¿~â¿{à¼xݵxÚ­tØ°sß»wã»{á»}ß»vÝ·rÖ±oÖ¯vß¹{ß¼vÙµuܳxݸ|Ý»~à¹|Ú°tرpÛ¶mÜ´pÞ²zßµv߶qÞ¸và¹yæ»zã·zݵ~Þ·|ݲr×°nÕ°m×­nÖ­jÚ°nݲnݲoݲwݳrÛ³sÛ³sݲlتjË iÈŸeÌ£iÔ¨mÕ¥fФgÓ¨iئeÓ¥]Ô¥`תcزiÞ¶vÚ¬tÑ¡dÉšZÀ“QÄ™VЦ`Õ§aÕ¬lزpÙ­fÖªfÔ¦lÑ¡`Í¢^ΤdÒ¡_Ñ _Ñ¢`Ó¢bÏ ^ͤdÑ¡dÒ¡`Ó¨fجhÚ¬iÙ±lÓ®lÔ«iÙ±l×®iÙ¯kÚ±nÒ©jÓ§eÕ§aÔªkØ®rØ®nÞ¸êÇ‘Þ·vÓ¨eÚ°pÙ²tÙ­nØ¥hÙ­kÙ±uØ­nרfÒ¥gÉ¡Z™SÅš_Ê hÐ¥iÏ¥fÈžeÄžeÊ c΢eË `Ó§eÛ®rפfÔ£^רfÔ§jÒªkרdÖ¤_Ù«jä¸ráµqÓ«iÄ [ĘZÈ¡`ϨiÔ¦hС`ÍŸWÍžTÜ°rêÉà´yΞa˜UÅ•QÔ¦\Ù®cשbÚ«bܬhݬhÛªbÙ¬gÞ²nݯiÓ£^ÎRÌŸ^Íž_Ì™QË•OÉ—LË™PÍ™VΛYÒŸ[Ó¤bÖ©hÝ«nß­mÝ®mÜ«iÖ§bΟ_ÏŸWСVÍœXË™UÆ”OËžZÑ¥bÌšTÊ›OÍŸZÑ ^Ò¤`Ö«jÛ¬lתkÖ¬nÙ°mÙ±kÔ¬iÕ«dЧ]̤`ѪcÕ´hÔ°d̦^ЫeÙµpÞ¸rÙ¶t×´tÙ¸{Ù¹~׳rÔ¦cÊŸ`›bÅ™^ΨiÙ¶uÜ·vرmÓªgФdÏ£`Ñ¡`Ñ¢_Ï¢^Ò `Ó¦YÒ§UÔ¨YÓ¨Z΢]Ó¨dשiÖ¨fØ­já³k¿™açÃæÁ„湄ã¼}èÄ…æÀˆß½åÀéÂèŠèÁ‡âº…à½æÆ翊漅èÀŠãÂåÅŽêÆŒå‡èÂ…ìÁ…ëÁ…êň鿂è¼~ëÁ‚é»å»|èÁ~èº~ä¹}ã¾心æˆæ¾~ä¸~á·†à¸~â¹xã½~ä¼é»‚è¸}â±rã´yé¿€é¹{à¯pà²tæ³vß­pÚ®lÝ®pÛ®oÙ°uà³zá´ußµvå¹xæµxå²xå·{æ´wæ³tç·tæ·sã³uä¶xã³lݪfÚ©rܬqݬrâ²tè¸våµwá´uà¯uÞ¬páµxâµã¶zç¾}çÀƒçÁ}é½|æµ~纀éÀ}æ»yãµ|â¶âÀ‹æÃçŠèÊéÀŠå¼~å½}罆潆åÂåÆ€äÁ‡â»ˆæ¾‡æ¿ˆäÀ„êÃäÂÛ·yÙ¯w×°zײඃâ·}Û±zزxصzß¹çÁ‰åÁåÁ|ëÄ~ç½xÞ»xۼ߿†çĈçÀˆá¸~ݲsݶyÛ³{Û²rá¼{ä½~à·wà¸vÛµs׶rÙ³tÖ«oÓ¨hÔªpׯuÞµoܳoÙ®vÞ²vݶoÞ³oÞ±rÜ°qÛ®nÜ®lÜ­gاaרeØ«iÞ®kÛ°kÛ¯oÞªjÞ©cÜ°hÚ¬gܪgÖªmÕ§kÓ§hШhÕ£dÕ£b׬gܯjÜ«oß«rÞ­lשeÙ§gبlÍ¡fΦdÒªbÑ£gÕ¦nÖ«hÛ®lݱsܱkà±mÛ¬pÖ«kÙ°nׯnÕªj׬lÙ¬lÞ­kÞ«fרdÓ­oدqÚ­k×­mÕ±nÖ¯lÔ¨jÒªnÖ¯mÕªiÕ«hÔ¬hÓ¨oÔ¦sÖªoÓ¥gÓ§kÚ±rܲpݵyÞ·{á¸xá½~äÀ}ä¿}á»záºzà»~à¾{à¿yÝ·{ܱxÛµuݵxܳw×·{صt׬i׬lÛ³tݵvÖ¯sسxÚµyݵyỀá»~âºxá¹}߶zÙ³pÙ´vÞ¹uß¹uß¹yܸxÙµvÙ·uݺxÛ¸yÙ¶vܶyÞ¸wÝ·zܶu×±mѯqÓ±uݶ}߻ڶ{Û´tܶpÖ±rÚ±~â¹Û¶|Ú¸}á½|ß¹{ݻܽ}Û¸vÚ¼zݼwߺtã¾zâ»{àºyá¾yà½xÚ¶uÕ®rÏ«uΫtÕ²tÙ¶rÖ±oسoÙ±o׬nÙ²gÚ²mÜ´pܹrØ´pÓ«eΤ`Í£eÒ¨kÖ¬lÖ®mܳuà²sݬmبlרcÓ¤Z΢cÔ¦fÕ¢^П`ÑŸ]ÏŸZÍ X΢VÍŸ[ÍšUÍœXСaÓ§eÖ®dÖªcÒ¥_×£^Ñž[Ф`Ñ¢fÍ^Ï]ÑŸbÒ¥dÕ©h×­eÛ³kâ¹yÕ¬iТfÚªq׬kÕ§bÕ¦bÕªhØ­gÚ­hÙ¨jÓ¤gÏ bȘTÅ–KÆ™PÌ ^Ó¥eÍ _Ç™UƘUÇšWË–TÍZϤ`ÓŸ^ÑYÓ¡YÕ¢]Õ¨iÑ¥iË cÖ©gÛ®kݱoܳoͤaÊž\Р_΢VÊ¢VÊŸ[Ë YÌ [Ö¬päÁƒÜ±qÑ¥`ÞYÁ”PСZÖ¬eÕ©cÖªaÙ¬\ئ\Ó¢[Ò¨`׬hÛ°jÕ§cÌ›`Ì^ѧaÎ¥cÇVŘPÉ›UÇšVÌWÔ¦_Õ©b׫fÜ°iß´oÚ¯qÛ¯lÛ±hÔ§gÕ¨hرmÙ±iÚ­eÔ©cØ«]ݱeÕ¨eÑ ZΠ\É]ͤbÖ¯mÛ®oØ­n×µuØ·rÛ¶rÙ²uÒ®mϬgΩfЫeÕ²lÔ¯nÏ¥gÏ¥gάjÏ­pÙ±qÚ¹pصwÙ¯zÙ²uÔ­gÒ¢YËœSÅUΧd×®jÙ«fФbΟbÓ fÔ¨fÕ¬eØ¥[ÑžQϤZÒ¬`Ó«aÚ®eÛ«bÏž]ϤfÛ°hÕ«aÓ°gá¹o›cêÇíÊïȇçÁ‰çÃŒè„࿀äÅ…éƇçÆŒèƉæ¿å½…åÁƒæÅ辈漅äÀ‰äÊä…滆龇é†轄è½}è¼uå¶xâ·|å¿€æÃéÅ…íŃêÂçƒç†迆鿄ëÀ†æ½„æÀè†뿇ìÁ„éŇèÀ‡è¹{å»}è¿…é¾à¹}á¼~å¼zá±uÜ°xݱzÙ¯uײxݲuÞ²sá¶yâµyà´xå·zæ·vâ²uâ³zâ¸yä·væ´yâ²pà³là´xÙ®qÕªjÖ¬mݳräµvåµyæ¶uä¶uà³vá±sâ¯sá¯yâ°sà´uâµ|æµvâ²qà³{å¸{æµx߶{Û³qß°tá¹€å½å½‚æ¼}ç¹z罅侊ã¸ã»ƒã¾á½‚áÀ‡åÀ€å¼}ἄὄܸyÙ²zݲݹ{࿃㿅á¼~Þ·{ß³zÞ¹{ßÂ㾄â·~ã¼zèÀ€ã½~à»亄â¸}ã¼{çÁ€æ»‰â¸‰ã¼†ãº„߸yã¿çÅŠåÂ~侄߶„رwÖ²y׳zÕ±qÙ³sߺ€ß¹à»|ä»|ݱuݳtáº|Þ¶uà¶rà·vâ¸väµxÜ°sײp×±oÚ®mÝ´tâ¶wâ²nݲrݳrݱmÜ®pÛ®rܲqÛ°xÙ®{Ù¬lبdجlÚ¯oà±qáµrÞ°lÞ¬jÝ®mÙ¯jÔ§lѨkÓ¯gÕ¯mÒ­vÖ©jÛ«eرmÙ®mÜ®qÚ²uܲqÞ±mدjÔ©fÓ¦hÓ©iÙ­lÝ­jܯiÛ°iÙ­kקhרbÚ©jÞ©qÛ¬oÖ§eÑ \Ï^Ô¥eÓªjÕ«jÚ­iÛ®nÕ¨dÓ©fØ®qÙ­lÚ¯rدrܱsâ·uâ¹tÞ³tÙ±wܵr߶u߶wß»rá»wÞ·{Û¸uÞ·oÛ´oÙ³qسoÖ°kÙ°lÚ­kׯnÖ³qسvضxÞºvâº{߸zàº~ß½Ûº{Ô¬qΩvÓ³tܹtà¾Þ½‚Û¸xÞ½{áÁƒÞ¿†ß¼àºyݹyÚ¶xÛ¶vÖ³tÓ²sÔµuضyÛµ}Ù²{Ô°vаn̪fЩmÙ²vÙ®r×°uÝ»{Þº}Þ¸~Þ½‚Ú¹Ù´wÚ´sܳoÚºsܼyà¹{߸yÞ¹{Þº€Þ¹}ܹyÚ·zܹà¾ܼzܹ}á¸yá¶uÞ·~ß»ߺyݶyÝ·xÚ±vÔ°nÖ·lݸuÞ¸xÞ¸xà¹zå¼{â¼|ܸtܶlܬeרjÚ²pܲlÖ°fÖ±hØ°m×®iÔªaÒ¨bÓ¨cСbΠ^Ц\زgÙµp×­kÖªhÑ«hÔ¯pÓ®rΩiÓ¨jØ­kÙ®hجiÛ²nà½rܹn׫kÕ¨oÙ®pÚ«iÚªhÛ²lß³pá°sÞ²pÚ°pØ­nÖ«fÕ¥fТdÍ ^ФcØ­jݱfÖª]ѤZФYÏžVОWÏ¢WÓ¢ZÖ¥aÙ¨jجoÙ°qÒªfË¡\Ò§bÙ°jݲjÛ¯hÕ©d׬c×°gÔ«dÔ¨fÔªjתdÚ°k߶t߶wÛ±q×®mÈ£e¾™ZË¢]Ø«jÚ¬lÙ­gÔ«`Ó¥\Õ¦aÓªcÒ©cÚ°mÚ¶pÔ°iÓ¬iÖ®hѬeÍ©a̤^ÉŸ_Ê¡Xͨ_Ò±nÕ°kÓ¨eÓ¨fÕ­oÕ³qÙ²qÙ±tضtÛ·tÜ»xÞ¼yã¼wã»xá¹táºuÛ»wÚ¹oÕ°fÈ eÍ£hÔ®iÔ´fÖµoÙ¹vÕµmÒ«oЪjШcÕªnÕ±oÔ¯lׯqÚ±qÔ¬iЧgΩiÍ«jÓ­mÒ­kÏ«eΧdÏ¥gÓ©fÐ¥\РRÍžVÍž_Ö¦gÖ¨h΢`ΡVÒ£[Ø«fݯgÞ­cبbΤ\Φ[Õ¤`Ù­gÙ±dÕ©eÔ«k×±mÔ¬eΪeصlº¡i齆翉çʼné‡êƇèň佅ä„æÃ…ëʼnì‹äÀŒæ¿†åÀ‚å†徇㿆äÁ„â½}ãÁ~ç¾{âµuâ¼~è†æÁ„â¿~à¼ß¾~á¿å»„濆äÀ‚ç¿éÁ†êÁƒé¿…鿊꾉溄å¾æÁ„èŠëÅŠêÂ…è½€ëÁ„ê‰æÄèĆ迃激翆ä¶}Ü­pÖ«qÖ¯uÛ³uÝ´xá¶yæ¹|ã¸zà¸xá¸䶃á²vÝ´râ½xä»zã³|Þ°tܵváµ{Ú®rÔªpÖ®uÝ´xà¹vå¼pë¼té¹wç·væ²qà¯lܲkß±lß­kÞ®há´pã²wá±qã³mä²vݱuÖ¨nÖ¦qà¶xå¸}äµ}ã¶zä´tß´xß´|ß´|ã¸å¼开庅âºâº|ß¹|ܲwÙ¬t×°xܸƒä½äÂŽãŠå‡㹂à¸⼆㾄á¹zß³vÞ·zã»wà¶{Ú³~Þºݶ~Ú²yߺ€ã»‰ç¼ˆæÅàÀŠÞ¼äćèŊ⺃߹ƒß¾ß¹{ݺ‚ß¹€Ú³tÙ²xà¶~Þ¹zÞº€á¹~ܵuÞ¸zãº{á¹xâ»}ä¿|ã¼yá»vâ¶uà³nݸkÞºtß»{å¹yæºã¸~â³tà´tÞµwܵ~ݼƒáÀ€ã½{ßµvÚ¯sÚ±rݳmÛ°làµuâ¸sßµmßµtß´uÚ¯sØ­uÚ²rÜ°tÝ°rܳsÝ®lÞ±oÞ³yß·uà»vß·tÞ±vÞ´yÙ±sÖªpÕªjÖ«lÚ­nÚ¯m׬gÙ©_Ü«_Û¬hÜ­lݯnÛ°sÖ¨kΠ`ТgÓ¤hЧfÛ­lÜ®jÛ«fÚ­fÖª`Ö¥bبfبcÖ¡cÕ¢bÔ¥bÖ¨dܬnÙ¬o×°nÛ¬oÙ®oÚ¶ràºzàº|ܵvÙ®pÖ­p×±oÙ²mÛ·vÚ³zÛ®xݲvݵuÜ´vÚ´zÛ´}Þ¶{Þº}Þ¶~Û³{زzÖ«vÔ¦qΦmÒ¬t۸ܻ€Û¶yß¹~༃߸„ܸ~Ý»}Þ·{سs׳sײxÚ·xÙ»{պ׷xÚ´u×´zÕ´rÓ°oÓ®oÓ®kέjЫhÙ¯s×´wÖµpݶxÛ³zÚ´uÝ´uÙ´vׯq׫jÙ²qܳvܶ|Ü·zܵvÛ¶yܸ}Þº„Þ»‚ܹxÚ¶zܹyܺ{ݹ„á¹…á¸}ÞµxÙµwØ·zÖ³sÙ¹uݼ~߸{áº~Þ¹}áºà¼zÚ¹x޸ܷu׳oÚ¸yÛ¼vܸwÞ¶|á»zܹuÙ±nÙ²sÙ²vÖ­oÔ¬kÒ©jÖ¯r×´uÖ±qÕ±vÕ²{Ú´sÙ¶uÕ¹xݹvá¸{à¹{á·qâ·tã¿äÀá½xܶrÕ­rØ®qݵzÞ·á¹|߸~߸~ß»{á½yá»và¹xÞ¸xÖ²rÓ­mܵu彄຀ضrÕ¯iѧcΦaË¥[Σ^Õ§dÙ¯lܶrà¶tÙ®hÑ©fÓ¬kЭiÔ®lÙ±rÚ³pÞ»tÞºvÙ¯mدoسuÙµvà¹}ß¹|ܶ{ݸ|ܺ}Ò­rÂbÂaѪkØ­nÕ¨jÓ«fÏ©c΢`Ò©bÓ­fÚ³pã¼uß¹vÙ¯mÖ®iÕ²qÚµsݶuسnΩhɤiϦhÕ«jÓ­kΪlÍ©oÑ«iÖ®hÕ¯uÕ³yÜ·zÞµ|Ûµyܹxâ»ß»€Û½{Ûºv×µvЮlÌ¢bÌ eΤkÔ¬nÖ³n×´wÕ²uϨlÌ bФfÕ©hÔ«gÖ²nسuײsØ°nÔ¬hÒ¨fЧfЦgÔ§dÖ¥bÒ¥`Ц^Ч`ѦZÕ¦[Ö§^Ò¥^Ô¥dبdÔªcЦdѨaÙ¯jÛ²pÞµmÞµkׯbÓ¨aÓ¨eÕ«jÚ®iÖªgÑ«iѬeÊ¢dÅžfάl·žg⺄罅뾄êÀ‰éÅëÄŠêÈèÂŽæÀˆèÀ‚åÀ„àÀ†ã¼€á»á½†ã»â¹„㺋ค⻇潈⸀㻀ç¼~乂޶ݶƒß»ƒß¹}â·zâºzå¾}꿇鿇廊澈éÅ„ìÄê½}ã»}⻂⻈â¼æº†â·}á¸çÁ~éÁ‚鿇éÈç€ë¿}뿃å¹ã¹yæÁ‚罇ë¼íÄídžëʆêÄ…êÁ…æÁ„ç¾vä¿zãÀƒè¾†ä·€Ü±wߺ忆à¹{߸{Þ¶}æ¼zë¿ê½}ê¿tçºvæ·ræ¶hä³uâ°sݯlÞ±vÛ®pÛ°qæ¶uè¸nã¼rä¸xá±qקlÖ¥kݱuݯuÛ¬oß°ná°sà²p߯iß²tã»æ¸ä»{ã¼{ä¶}à¶~àµvݲw×®{Õ«xß¹ƒåÅŒèÀŠç¿Šá¿‰á½à»ß¹á¸‚Þ·|ܸzß¹}ß¹{×´vÓ²pݹ€à¸…ׯzß»ƒèČ彄æÁ‚äÀ„߸߻~â¾Þµ~ݵ€ä¼ƒã½€ä¿„佃ݶÜ·Þ·|Þ¹‚ß¼{Þ¸vܶ{߸{ß¹xÞ¸xÞ¸wäº|ç½|ã»vä¶uå¶yἄãÀ„ä¿忇俊佄ã¹Ýµ|ÞµzÝ·{གéÄ忀⹀á³Û¯tÝ°uÛ³yÜ»yâ½{ߺxà»zà»{ܸ{Þ¶}߸|Þ·vßµxß·vÞµtà¶wãºxâ¼~áº}áºzæÀ}ç‚â¼}Ù³pÕ¯nدr×±qÙ³mØ«pجpÛµiݸqÚ´tÛ³hß°kÛ­m×­jׯnØ°iØ­g×­j×±kÚ±jÛ­iتeÚªmÛ¬mÕ¤`Й^Ó¡fÔ¤cÓ£`Ö­lÙ«fצcØ­lÙ«oÙ©sá³wÞ²xÓ¬qÔªnÕ¨jÖªfÚ­mÛ¯pجhÙ®oÝ´xÝ´tܲtÚ°vØ®l×°jØ°sÝ°zݱsÙ®nجsÔ©iÊ£dÍ¥iÕ¬kÙ®mÜ°qܲqݳuÝ·{ܵxÚ´zܶ}Ö±y×±s×µtÕ´rܶyÞ·|Þ´zÞ¸zÝ»|ݸ}߸~à¹زwѬqάnÓ°sÙ´tÖ³uÙ²{Þ´zß»|àº~ß¼wÛ¸l×±rÔ®uͨjÒ«mÙµtÜ´tÚ²qسzÜ·†Ú·Ö³{Ö³xÚ·yÜ·~Þ·}⹄޸Ú³vÙ±zÚµwÙµvØ·uÙ¸tÚ¸uÚ¹~ݺ~Þ¹zÜ»{ÛºyÝ»}ݼ„ܸܶ{Þ¾Û¸~Ù²zܶ}Û¹{Ú¸zݺzݼzÛ·{ܶuÖ´tЬuÓ­tÕµwÓ³xÖ³xܶuܺzß¾~á¼~Þº€Ü¾~ݼ㽃äÀ€ã¾zäÁ†ãÀˆÙ³uѪkÒ¬sÚµvܺsØ·pÛºvཀä½ä½€á¿{ÝÀ|ß¼zܶsÛ»yã‚â½}Ý»ݹ{Ú³oÙ±hÒ«eˤhÌ¥fÑ¥dÛ¬nÝ°tØ°wÖ´{Ô²uÑ©sÕ©qÙ¶uÞ¹|Þ¸{Ü·wÞ²tÞ¶uÛ¶|ß¹ˆäÀá¾vß¼xâ¼|Þ¶zÕ¯pˤhŸeÍ«hÖ­fУ_Ò¤cÓ¨hѨhѦhÔ¤mÕ®mݺrâ»zà·uÞµtÝ·yݸsâ¼uÞ¸xÒ«lÍ£d̤gЫlÚ®sÜ°xÒ©vϨjÔªh׫nÖ®mØ°oݶvØ´wÙ´sß·|à¸Þ¸{Ú±qÖ¨i΢aË¢\Ò¦gÓ£hÒ¡`Ö¨iׯtØ­jѤbÊ¡]Σ^Ö§cÕ¤gÒ¦gÔ«e×­kØ®jÕªcÔ«h×­mتkÖ¨hÖªhÖªhÓªbÔªbÖ¬]Ö°aÛ³lÞ³g×®dÓ¬fÕ¯lÕ°mЪgÔªiÖ°lÚºsß¼wݳn׫fѨaШbÓ­cѯd˧`̧aÇ¢dÁ›cÊ¥i¶™n缃éÁ…éÀ뿄éÀ„éÂ…ìÀŒéÁˆâ¾~ã·‚ä¶â·~â·€å·{ãµ|á¸áºä·伃激è»{ã¾}â€æÁƒç»‚ß´}ݶ}⻅ἃá¼zã¿{é¿…ëÀˆç¼á¶wä»|ë‡îÆ‹ìÆçÂäÀ~⻀Ẁâ¼~â¶|ä³{꽄꿆è»~ä¹zæ»xæ¾}ç¿~ç€çÁƒîćîɉëÇ…íƈîɇíÇŠðÃŒîƈèˆèÁíljíĀ쿀ã´|ܲxåÂ~íÇ…ë†뿄ç½~çÁzîÁzë¼…è·{å´nä¸vá»xæ¹xä²wÞ®qà²qܱsݳvãµ}ã¶xã»{æºæ¹y߯oÚ¬n߶rÞ°oÚªnÚ®lÝ´sá³rÚ¨nÙ©nà²tå·{ä´uã±pá´uá¶{à´vâ¹và´vרrß¹~缊㱃á²uß²wݯyÜ­qÚ®sܲu߸uá·zâ³wá²uݲvÔ®pرvܳ~Ù°xÝ·á¼€âº{ã¹ຂâµ~â´{Þ¹zà¶yߴ⺇⺃߸{Ý·tݳ{เá¾xã»โ߷{â¶{Ý´xÖ®zÒ­yÔ²zܸ{Þ·xܵzÝ·yà¸å»‡ä¾„ß¼~à½|â¼€Ûºݸ€ÜµײyÖ®wØ°y฀亅߶~Þ³€Ú´{Ù´xܲxÚ²xݵy߶yß·yã¸{â¹|â»~ä»{ß¹xÙº}ܼyß¹yß»}Þ¹~ßµxà·zâ¼€éŃêÇ‹ä¿…á¸xß´tݳyÞµ{ܶzÛµvÞ¶qÞ¹vá¿|ã»{Ü´zÜ´xݳsÙ°nÚ±kܲlÛ±oÛ´vÝ´uÙ¶nÛµmÞ®mÞ¯rݲuÖ«hÔ¢cÓ§iÑ©jÑ¥lØ­sÕ«mÐ¥gÕ°nÙ´oÛ¬hܯmÞ²nÜ«gØ©jجjÖ¨bרgÚ©dÕ¥[Ó¨jÙ¯pÚ°nÛ«qÛªjÙ¦cÙ£eÖ©fÚ¬mÞ¬kݬbÙªdÓ¤dÎœZÈœ[È›^Ï¢eدqÞ­pÛ«lÛ®rØ«m׫gÙªkÙ¨nÚ¯k׳nÔ¯rÚ²vÜ°tÙ­mÚ°uÚ³~Ú³vÚ²vܱ|Û³vײtÖ©vجu×±tÖ¯pÛ³oÛ¸uߺ€Þ¶}Ù´sÝ·y߸Õ°uʤeÏ¥e×­jÕ¬oÕ®sÔ³uصuÚ³sÖ¯qÔ¬nÔªoÖ­qÖ°n×°mÙ´wÙ³uÓ¯pÕ²tÞµuÛ¶xÚ¹€Û¶}ܶtܸwÚ¸}Ù¶~Ø´}Û³|Ý·}Ú¶}Ù³zÛ·vÚ¸{Ú´Ö´xÙ¶{ܹ€Ü½~Û»{ܸxݽ~Ù¼€×·wÕµtÓ³xÔ¯vÔ³vÕµ|ܸzÞ½€Þ¼‚ݹzصuÙ³sÞ¼}àÁ‡Þ¾„ß½…âˆÝÀ|Ï«kÆœfÇžbÌžaËžbΨdÖ¯pÛ°v߶ß¹†Ý·€Üº€Ýº‚Ú¹zÜ»zà½}ݺyܸ|ß»à½~ݼ{Û´rÓ©nË¥iË©kѯlÕ³hÙ·pÚµyÓ®sЩmÓ«v×­vÚ³sÛ´sÜ´{Ý»|Úºxܸ}ܸ{ܺyܹxܳtܵvÖ²uЧlÆž`ÅbÌ¢fΦcÒªhÙ²lÙ³mÓ¬jÏ©jѨmÖ«oܳxܲzܲrܶnØ°oØ´nÕ¯iѤdÑ£eСeÏ¢iÖ«mÚ¯jØ©fÕ¦iÔ¨mÓ§fΣ`Î¥`Õ¨hØ«nÛ¯rß³qÞ³pÛ²oÕ¬kקhÕ¦lÕ«hÙ¬jצhѤ\Ϥ]У]Ï£\Ξ^ÌœZÌŸZ΢ZΠ\Ê›YÈœRУWשdÛ¯bÙ±eÚ°nݱnجmدlݳm×­fЩ]Ϫ]̤^Ñ«gØ´hÖ±aÒ­fÕ­eÒ«gÏ¥gάaίdÖ±xß»}ܵoЫcϪbѦj˦hʨeΨjÑ«kϨfÈžaË¥b¸˜g弆åÀ‚激彂潃æ»~â·{ã·|ä»}ç¹|ä´{ãµ}æ·{å³vä±tà´yá¹…åÀˆåÁ…龄弃⽆åÁ‰æÆæÀ…ä¼|â¿æÄŽëÆŒíÆŒëŇëÅ‚êÀƒâ¹xÙ´sÞ´z轂ë‡껆纂ã¹{äµwä¹yä»sä¸så·wä»yè¾|ê¹ä³xâ³oã·uãºuå¸z廂êÂîŃ쿃ë¼{é¿‚èˆéÁ~é¾}躀ç½ëƃíƃëÀƒä¹}Þ·uâ¾yìÁƒðÁ‚쾂á¶~â¸xå¸uåµtã³râ®râ±uá¼wéÂ{çºzà¸zߺ{Ûµ{à·}æ¹{ä»}澂缀æ¶|â±xܱvá¸záµtÜ°vÚ²tÞ´táµvÞ«jÒ¢bÑ­mà·xä·xàµzá³zã²và²tá´uã²rÙªcܯná³sß³mà«jÜ©kÚ«nܨjÝ©hà¯tß°zá±sâ²vã²zß²sÔ«oرzß²|ׯzÖ°uÛ°wà³|ß´zÛµ{áµ€âµàµzà¸yߺ{áº}Þ·xزsÞµyã¹~Ẅ⽇å½広㹊ẈṄݮzÕ©uÒ­vØ°|Ü°€Ý²vßµvâ·{â¾yà¿}߶‚ßµ€Þ¸}ß³{ßµÛ´‚ׯ{Ù¬tÚ¯vݷໄ޺€ßº‚ݸ}Û·uÚºuܶuÛ¶uÞ¸{຀ãÀ„ä¾á½â¾‚à¹ßµß·Ý·{Ý»yâ¼|เ۷|ß¼zà¿ãÀƒæ€ä¿~à¸{Þ·}ݼ€Ý½ƒâ¿~忀⻆à¼ã»uâ¼}ä¾~áµtÜ°qÚ²vܶxÝ´rÙ³vÙ¸~á¹}ã¹yà¸uà·vÞ·wݱtܯuÖ³tÙ´yÞ¶}á¼€Ú³uϪoÓ°tÛ¶qÝ°rÚ°wß´tß·wß»~Ý»z×­rÚ®tݱrÚªgØ©nרsØ®oÙ¯jÖ¬kÖ¬jÙ§eÚªiÙ±mܯkݬiÚ­oÖ«hÔ§bÏ bÉb̤eÙ¬jß­jÛ«jتhئhÖ¦oרkجjÖ§kÓ¨jÖ°pÙ­qÕ¨jÓ©eÕ©aקbÕ§eÓ¨hׯlÛ°oÚ«nÖ©iÖ«nØ­nÖ«lÛ°qÞ²tß´uÞ´qÚ°oÚ²xÝ·}Ù°pЦhÑ¢hÕ¨cÖªjÖ®nÖ°kÖ¯mÙ®pÚªqÔ¬kÒªkÓ©oÔ®jײsÛµ{Þ¸uÙ²qØ®qÞµxݺvݹ|ÞµzÙ²w×±wØ°pØ°qÖ¯wÖ¬v׳u×´tÓ¬v׳|Ü»}Ö¶uÓ¯rÔ²w×µ€Ø³„Õ²{Ô°tײzÛ·zÞ¸zֶѰ|Ø®z×°uÖ¯sÙµxÛ¹~Û¹Û´zÖ¯uÔ­xß·~⿃߼€Ü»}ܻݾԱsÊŸhÃdÁš]Ø`Æ gΤkÕ¨kÖ­jÚ´qÛ´uزu߸zã¼~à»}Þ¸vÛ¹xܼyâ½{à»~á¸{ã¹~Û¶|Ó±oЭiѪfÔ¨fܵzã½Ú¸vÑ­kΦjÓ¦nÛ±rÛ¶tܹ|Þ½~Û¹yÕ³tׯoØ°qÚ±tÚ°uÖ³vسwÔªjÊ ZÆšbÈaÏ¥_רmÛ¯uÚ­rÙ©mجeÕ«eÓ©kتlÚ©jÕ¨fѧaϧfФeÑ¢ZÓ¢\Ú«fÖ¬cÌ¡_Ò£bÚ­eÙ°lÚ´jÛ²hÙ«fѦ]ËžXËšTËŸZФeÖ«eجeÓ¨fͦaÓ­h׳mÕ°iÚ°lÙ°jرkÜ°jتdÔ¥aÒ¥_УZСVΟVÊYÌœTΠUÕ§_Û­cá¸lÞ¶mÚ®hÝ´lÔ²nÕ°uß»|ݺvÔ°ǫpÇ£h̨iÕ­nЪhÏ­iÔ®lϬg˪dÒ§eΤcÒªlÚ´uÙ´nÙ®l׫nÕ¨kÕ£fΡdÔ«qÚ²pѨbÌž_Ó¢i¶–gè»}è»}ä¹{ã²xâ¯tà¶vä¸så¸sé¾yí½uì¼yê¼zé»xêºyê´sã³râº}ä¹}ãº~缄âµ}à¶俇忄æ»~å¾åÉêÃëÂŒéÂ’éÂèˆ彇à·|׳tÙ¸yà¿â¿ç¼‚繂ä¶zå¶{伆伃ä¹}ç¹~ä¹~侄è‰æ¼å¸yá·yâ±yä´wá¿väÀ|ë¿|íÁzê¿}æ»}è»zê»vç¿wê¼yè¹é½~ê¾~辅纄ޮyØ®uÞ¸yè¼~ç¼{à¸vÞ²xÞ°vݵwÝ·wݶrÜ´tÞ¹zâº~湀彂å‚è„êÀæÀƒå½{æ¾…ã½€á»yæ¼}什á»æ¹~â¸wß¹wá¹{äº|á²wÓ¥lË hÕ©rÞ±tà±uÞ°vÜ°râ´sá´{Ú³rÔ«eÕ«pÝ°}ã²vâ²oÞ®nÝ®pÝ®qà­lß®o߬yâ­uá®mß±xá¯oÙ¬cݳpß®rÕ©nÔ©gÚªhà°qݲvÞ±wâ·yä¹zâ¶tß³p߯vá±sá³lÜ­nݳzá¸á´}ã·{ã»~ãºã´{ã¹|â½€à·wÝ®vÕ®rÙ°rß°uݳrß´t߸{ß»}à¸}ÞµyÝ´yݵuܶtÝ·}Þ¶{Û±tÚ°wݲyÞ¶{ݺ{ß¹yäºá¸}Û¶yÚµ|Û²~ܳ۷á»|çÂ~ᾀܸƒÝº€àº}߹߷{à·yß¹€à½„߼ܷ}ڴܵ|ß½{ß¿ƒâ¿…ß½‚Þº†á¼†á¿€ã»záº}Þ¼{ß»{ß»}á¿ãƒ޺yÓ¯p×°xß·zÛµxÜ·~ß¹…ߺ†á¼~á¶}ṃâ»{à·uݶxÛµ{Þ¹~ãÁåÁ‡Þ´y×°jÕ°pÙ²{âºzà³vß²zá¸vá»{ãÀ‚ܸxÙ¸tÚ¹zÙ´rܲqܳtØ´iÔ¬eÑ£aѤeÕ©mØ®pÛ±wݱyÛ²tÙ°nÚ³tݱsÚ©gÔ§gÒªmÑ«nÕ­jܹrÝ´t߬nÞ±nرmÝ­rÚ­nתbØ«gÕ©kÓ¤fÓ¤bЦcÐ¥dÕ£eÖ«gÚ­mݱqÙ¬rÒ¡iϤ]Ò©bÔ¤eÒ¥cÓªd×­fÚ­hØ©rØ«rÙ®n×®tÕ§jО]Ñ¡iÖ£kÖ¥gÓ«fÒ§dÓ¢aЦ_Φ]С^Ò¢eÓ«jײoÞ³rݲpÕªhÏ£fÕªrÙ¯uØ©pÙ¬rײoÕ°jرmÚ³wÕ°yÓ®uÖ¬zÔ«uÔ«qرwÛµyÙ°tÔ«lÓ¨kÔ¨rÕªlÓ¬fÑ©mÔªoدrÞµ{ܳzÒ­tÒ®mÔ°n׳tÚ·t׳z×­xݱtÚ³sÔ±qÚ²wÚ®vÖ©uשvÖ°vÙ·vÕ®tΦgȤdßfÄ£hÈ¥ḑgÑ«jÕ²kÙ¶rܱtÚ±tÝ·zݹ}Ú¶}Û·{Ý·yܶyà·~ݸ}Ý·yÞ´rÚ±rدrѨqÈœgÉjÑ«r×°sجpÒ¨hˤcÓ©mÛ¯zØ®vÚ¯qÛ¯qÖ«oÓ¤bÑ¡^Ô§jتqÖ©hÕ¨fקjÖ¨lËžbÁ–YÁš]ÆŸ`Ñ¥fبhÖ¦fÕ¨mÕªmÕªkÓ©lϤ`Í¢VÍŸXÌ\Êœ`Ç™ZÌ¢[Ö«dÚ³gÚ®`Ó¥YÒ§^Ù®hÜ´jÚµmÛ²oܯkÕªkÎ¥bÇŸXÊž\ÍŸaÊš\Ρ`Ô¨`С[Ó¥aÖ¯iЭhϪgÒ¬kЪfÖ¬gÝ®oرqÕ®hÖ«gÒªeШ]ЧZϦ\Ñ©[Ú±aݵkݳh×­bÒ«eÖ¶oÓ´jѯhÛ·mÚ¹uÖ²uÓ°pÏ«kÍ©jϬlÔ­iÖ­jÔ¯nÑ®nÓ­oÔ°kΫfЦpÙ¯vÚ¸uÚµvØ­oÔªgÓ¦fΤjÔ«pÛ¯lÒ£dËŸbÕ¨b¹™b什ä»zå¸wá°sÞ¯t߶yâºxåÀ{ëÁìÀzêÂ{ìÃí€í½xì»pä¹læ»rëºsä¹tä¸tã¯oâ®x鷀鹄溇翆翂㽃åĆèLjéĉéÆå…ຄܶ޺ἇ彌澌éÁ‡ëÅŠêĉëŠéĈçÁ†é¾‹ê½ˆêŠíË™ëǔ濇渀á¸{à¸zå½{èÅ€ëÆêÆéÂ…êÀéÁ漀潃èÀƒä¿|åÁ~心ç¼è¹{á°uתt׳}á¾éÂëÁ‡ç¿ˆã¿„âº~â¹{á¼}ܸxß¹}潂èÀ„åˆäÁ€éŃéÈ‹çʼnçÀ„迃翂çƒé€뿀éÅ€åÂzàºy㺀彃çÁ€ç¼á·uÖ®oÕ¬vÛ³xà¸{ݳuÚ¯mâ¸{ã¸|ß´s×­tÕ±xܶyã¹uâ»vã¸yâ´{á´yã´uá²râ³uã¹xâ·páµqã¹sá±pá±tÞ±v׫mÖ­jÛ°lÞ±jà±gß³nÞ³zá²xã²vß­pÙ§hÙ©jß±p߯nݬjß°jÜ°jÞ°rå¸sâ´nÞ­pß±tã¶sæ¶zá²|Ü´yâ·yâ´y߶wà·sÞ²sà³yḀߺ{Þ¸x߸vâ·rß²tܱxâ³tß²rÛ±tßµzá¹zÞ¶zà´~ä¶~âµ|ܲxܱyß³~ݶzÞ¹y什á»Ü¹~ݶzå¹záº|ܶ|ßµ{ß¹€Þ½„Ý»ܶvÜ·zÛ¹†Ø´„ܹ€à¾ß¼~㿃äˆགྷݼ{Û»và½yá¿Þ¹|߹ἆݺ~Ù´vÛ´u߻⼆߻‚཈ãÀ…â¾€ä½âÀ€ã¿å¼Ý¸|Ý´{ข߿ƒäÀ~ãµwݶtÛ²wÛ¬vÞ·wà¹|Ý´ᶀ潃åÁ…Þ¹zÞ²zẀâ¿{à¹zÝ·zÝ·oÒªfÍ¡gФfШnÙµyà¼|Þ¹|Þºyáºzß¹}á»|ß¹zÚ³vÚ°rØ«oÛ²pçËá¾wÛ­m߶oÛ³vßµyݶoÕ­iÙ³oܶtÙ­nØ­jÖ¯kÖ®pÚ³pÞ¹uÝ·vÛµzݵuÙ­jÓ¨kÕªmÕ¨iÒ¤hÓ¨gÕ«iÙ¬jܯoܲzÞ³uÞ±sß®nתeФbÔ¡`Õ¡_Ô¤[×£YÔŸYË¡`Ф`С]Ñ¡a×£hÙ¨iÖ©eÓ¤eРbÎUÌXΛ^ΚZÍ›`Ó£hÖ©lÕ¬lزl×±qÑ«nѧgÖ¥gÖ£hתlجmÔ¦jÒ¥lÓ¦jѦcÔ¦`Ô¡^Îœ]ËŸ^Ó§dÕªmѦkͦkΦhÔ¨cÔªnÖ¯t׳nÒ¨aѤc׬qدtÙ«uÔ§sУmПdѨmزvѦjÊ›]ɘ]ĘbškÅ lͨlѤkÓ¨oÚ®vÛªuÓ¨oÒ¨jÙªoÕ¬nÒ­oÙ°wدvÖ­n×­rׯtÖ¯oØ«kÖ¨kÏ£mË¡jÅ›fÄ™eË¡dÓ¦fÏ¥bÈ¢^Ï¥hÙ®pØ­iÓ¨dÓ¥mÒ¢kÑ¡aÒ¡cÖ¦kתoÖ§fÑ `΢lÔ¥iÒ TĘM¾’OÅ—SÏ£b׫mÚ°mÞ²iܱf׫bϤ]ÊŸ[ÍŸ]ϦbͦaÈ[ÄœVͤ]Ø®gܲqÜ­kÕ¦dÕ­lÙµs×°jجlÜ­rݵrܹt×´kÕ­hÕ§jΠeÉaÊ£eΦdÒ¨fÙ¯jܱjÕ«cѪdЧgËž_Í£cײrÚ±pØ­lÔ­kÕ­gÔ«dÓ«dÓ«bΧ^Ô¬fÜ´mÛ±mÔ©eÒ¦fÕ¯qÕ²sØ°sÙµqÙµnÛµoÞ¸tܳpØ°lØ°nÚ±oÙ³qÙ±rݱuÛ³|×´zÖ­kÒ¦hÖ°nÚµoÙ­jÕ§bÔ¥cÕ¨bÔ¨gÛ­jܯbÒ¢_Ï£dÚ±h¿™eê¼…ì¾~äºvá·yã´}á´{Ý´wÝ´r߸{æ¿…é‚é¿é¿å¹zá´sã·qæ¿~滀å´sæ¶oæµ|æ·„æ¹æ¶å·}å»zçº|æ»翀绀异佄仆ᵃà³ßµƒß·ƒà»‚ã¿‚èˆçˆ轈뿌ê‡迉輎鿊éÀ‰íÉ™íƗ轅滄å»æ»|â¸yâºxã¼{àº~áÀ€ãÄ„á¹~Ú²yÜ·xá¹rß´uݺ~ༀå¿ä¾~Þ´{دtÕ²uݼ‚èÅêÅ‹éÄŠçÁ‡åÀƒã»~â¸|Û¸yß¼zçÁƒçÁ…激㹅羌êƒå¾æ½éÀ|èÀçÂéÅ€éÅ…æÁŠå¼„伃彆éÀ†èÀ…êÁˆé¿‚á¼{á¿‚å¾|ä¿zá¿}à¸yã¶|繄㶂ܴ|Ù¶~ß»á¿~ß¼vâ¹{á¹}á·xä¸|á´yÞ³xá»yä¹xå¹zãºyá·vå»væºuáµtß³xÞ°uܲkÞ²tß°{á²uà²tß®pܪlبdÕ¨fØ­mܳlܬhÛ¨iÛªlÙ§jÚªgܬcÚ§dܨiÞ¬lß³oß³ná±sÞ²wݱoÞ±oÙ®sÛ±oß±pݳtݺvẀ޵}ݳvÜ­mÙ¬hÞµpÞ³oÞ¬r߯l߯nÝ°qܱpÞ°vá²pÞ±oܳuÚ³tÙ­rÙ²uÞ¸vÞ¹wÙ¹xÙµxÝ·và¹oÞ·uܶxÞ·xâ¹{ßµuÙ±sÚµwܹsÙ²tÚ±vÞ´yܵ~ߺuã½|ݹƒ×²‚د€Ý¸„âÀ‰à¼Þ¸{ߺ{ßÀ}ß¼{à¹}ṇ᷆㻅῅á»âº€á»à¸~߸{Þº}Ûµ~Ö±v×·~ໃá¼ẄໃܹzÛ¹yÛ¹vÛ·xݹ{à¿{åÂåÀ†â·ßµἄæƇã½à·xà»zÚ¸{Ô³sÌ®mʪnÑ°vÖ¹}Þ¼}ã½~åÀ‚åÀ€â½á¼ß½…ß¹}Ú¯hÞ¶oéƈߺzÔ§fÚ­oá¹zã¾zßµoÙ°tÞ¸zá»vá¼|Þ¹}Ú´xÜ´xÛµvÞ»vß»yÞ¶{à¹~Ý·|Þ¶~á¸Ø°rØ­kܳoÕ°mÖ­kÛ±oݶsݺuá¼uÞ·rÙ¯oÓªhΦaͤ_ѦaÖ«eÕ¬gЦaÐ¥dרfÖ§dÕ¤bÔ¥bÖ¨bÖ¡_Ô aÒ ^Ê™TÅ•SÊ—VÇ–XÈ›WÍ¢_Ó¥jÙ¨gרjѦjÍœ]Ë™XÊ^Í aÏ_ÏšZÓ¢ZРWÌœS΢ZÍœWÅ“RÈ–VÌ™\ÎbÒžaÏœbÎœcÍ›`É™aÏ¡dÕ¨oÒ£kПaСeÓ¦gÖ¢fÔ¢iЧaÍ ZÍ¡bÕ§jÖžaË–TÉ—OÈ”UÅ“TÁ–VÅ™^Ř]ÄœZÍ^Ò bСfÊœcËž\Ο_Ο`Ó¦eÓ¦cΞ]ΠeШnÓ¥mÓ¢fÓ¨fØ«kØ­lϤdÆ•^Æ—^Ï ^Õ¥bÐ¥fѧkÖ¥h×¥dØ«b׬aÕ«bÕ­fܯhÜ®mÛ³kÜ­gÒ£bÑ«b×­cÑ¥[ÈšXÁ“YÂ’TϤ_Ù´mß¹pݶmØ®hجkШaÊ¢[Í¥dάpÏ®tÍ©mÇ fÊ aΪcÕ¯n×®pØ°oÖ²tÕ´qÒ±nÔ²qÕ³oÙµyáº}ݵvݲuÞ²nÓ¦dË bÈ¢dÊ¥fϤjÙ°tß¹vÜ·oÙ¶o×±fΤ\È¥aÔ²mÕ°rЧlÑ©hЪhЫiÓ´jÕ±iÌ bΦfܹnݸrÓ©hÊ¢aϨmÒ©mЩjÒ¬tÒ¯rÓ²oÚ³mÚ±nØ´tØ´oÙ±kÙ²nرuÚ²xÚ²rÕ®jѧ]Ò¡]Õ¦cÕ¬eÖ«jФZ΢VÔ§dÔ¨dרeاbÖ£aÑ¢dÖªb¿–eðÉ“îň輄滃æ¼~â»~ß·|à³{Þ¶~ເæ‹èÊã¸~Û³zÛ¹vã»zé¼é¼…黀é¼{çÀ}éÂ}ëÀ}껄å²|à²zâ·é¹}ëº}çº|æ¹zä¶rá²yà´~Þ°y߯{á·{å¸涃è½èÀƒæ»ƒæ»‚轉溉绅纂㸂éÁìÁ‹æ½‰æÀŠç¾æ¹ß³}×­w׫vקkÕ¤dÔ§kÒªqשnÛ­tÙ°x×´zÚ¶{ÙºzßÀ{å½~߸ƒÛ±~د}ݹƒä‡濄廀å½~å¿ä½ƒã·~àºxâÄ{èÄ廂㹆潆êÄìĉé¿è¿†çÀ€è¿‚è¿ŠéÁ‡êÅ„çÂ~æ½æ¾‡êňëÅŠéÂ…è…辇过éÄêÈéˆèÄ‚çÁ‚潄çÁ†æ„ã¿{æÀ‚éÁˆè½‚仄㼃ä»~â¶{ä¹}㺀㼃è½|æ»vå»~å¼~ä¼zé¼~ç¹}ã¹|ä¹vâ¶qܲmß³kâ¶uÞ¶uÞ´tß³yÛ­qÔ¦gÔªiÓ­nÕ°nÙ±pà°qá¯rÜ´oݱhÛ­mÛ¬mÙ¦jÚªkâ²lâ®hÞ¯mÝ®oÛ¨gרnÛ¬oÞ°mÝ­oܪmÞ®oÞ°tÛ®oܯjجiÙ©ià¬iܬeשhÚ¬eÜ«gܪpÛ«gܨgݬqݱmÚ°nÛ°oÛ«jبhÖ«kÙ°lÞ°sܯxà²vâµyß¹vݺvÝ·xßµzÛ±nÕ¬hÚ°uß¼~ß·wÞ¯sÚ¬nÜ®mÞ²sÙ­pתiÕ«oÓ«pرsß·yà´xÝ´v߶vÝ·xÜ´yÛ´vÞ¼zݸyÛµ{à¹}Ý·€Ý·á¼à»á»ß¹xÙ¸wÙ¶~Ú²}Ý»{âÀ|เۻ}Ûº‚Þ¼…àÀ|à¹{ܹ~Û¼~â¿„çÆá½~གåÀƒåÆ„á¿„à»âÉäÂ…á»zØ°rΩnͬjΰm×µtá½~åÄæƒ忄âćãƈåÁà½xß¾yâƉܿ‰Ñ¯uÖµvݻ߻|Ý·vÚ·zݾ|áÂ}áÀ࿀á»â¸{àµ|ߺÞ¿~ༀ什ä¾{ãÁ€åÁá¸và³rãºuݳxÓ¬oÔ­lØ°qÝ·uà¿{ÞºyݶvÙµtÒ­lÏ¥aѨbزtß¹tØ°lÖ­jܳgݲlÚ­mÙªfÔ¨dÏ¢_Ó¡\ר`Ô¥XÌžWÌ _Ë›]ÈšVˤZѦfÔ¤hÔ§gÖ¥gÐ^Å—QÅ–V˘`Ë›WÉ™QÌšYЛVÍ›VËšYÍ›XÌ™ZÏ™WÒ[Ó¢gÖ£gÔ¢_Ó¡\ÎœTÈšTËaÓ¦jÔ¢gΙZÎœ]Ó¢dÔ¢`Ô¤gÔ£bÓ\Ñ ^Ó¦dÕ¡aЙOË™SÍšZÌ›XÊ›VÈ™\½U¹ŽP•SÈ•RÉ™TÈ•PÈ“VË›]Ì[Ô¢`Ö¥fÔ¡`Õ£_Õ¨_Ö¨eÓ¢eקià´wá¹{ܱsÔ§hΤaТaФeÓ©hÜ°oÖ¥jÖ¤fÝ°lÞ³pß²oá¶oâ¼yâ¹|â¸xݹvÕ³lÔ«hÕ¯lЪdÉ[ÔQ¹FÁœVÔªjà»yݹwÚ´vÞµw׫mΧjË¥kÏ«iѯjͪcÈ ]Åž_Ê¢cÓ«kÕ°lسmÛ·yÚ¸yÙ¹wØ·xÔ¬sÚ­{áº}Þ¶oܵmݺsÖ²oΧm˦lǦgɤjѦmÖ¯r⼄翈ܸ{ϯkШo׬xÖ±tÑ«jѬlбqÏ®vÚ²tܳnЩgΩfܶqݹrЬhÍ£gÓ©hϦeÊ¢e̦dÌ¡bÒ£iׯpÕ¯lÕ¬jÔ®gÔ«eÕ«kׯhÚ±kݱnÚ«hÔ¢[Ï¢]ТcÖ¥dت`Ó©XѦ[Ï£bΠaÒ£_ϧdѦ_Ц\Ï©^´”\뿃ê¿~éÀ~çºÞµ}ݹ~á´xݲtݸyเ羆ëăã¼~Þ·€á»„è»é¿†èÁˆè¿ƒè¿êÁëÀŒé½ç»}á²|Û«vÙ´zà¹{å¸wç¸{ê»~æ½yæ¹{é¹€è¶}ç¶zåµuå¸yç½ë¼é¼ã¹|ã³så³y鹀꺀åµ|åµ~繂äº|ä¹~ä¶~á´}á³|ܱvÖ©rרrÖªlÓ¤^ÓždÕ¤oݯqãµz㶀â¶~ã¹~㺀â¼â¼~ß³xÙ¬tܳ}廇廄溅绅⻄㼅弈伄â»áº„潂廂ๆåÀˆêˆèÀ‰é¿ç½…èÀ‡ëƒç¼ä¶‚ⶃ仆必罀翈çÁƒè¾}澃伆溃çºä¸~âºâ»á¿€çÁìÁ}êÁ…éÀëÀêÀƒç¼‚幃佀ã¼ãµ}â·yå¿}éÀ‚ç¿}æ¿}æ¾å¼}æ¹yå¸uÞ¶yÞ²xàµv߸zÛ¯vݲyâ¼~ãºyã¹€ã»á·xÚ­qÖ­pײxÕ®}Ö®zÞ´yâ¹{ã¸y߸vÞµvá±pܬkשmÛ®fÜ­c×­kÔ®gÒ§`Ò¦g׬oܲrÝ®oÞªlà¬là«jݧlݧmÙ§jתiÛ­mÙ©jÕ¤eاfÖªfÖ«eÙ¦_Õ£[×¥dÚ¤hÚ£eÝ«jÜ­nÖªhÓ¤cÔ¥i׫mÖ¨eئfÝ®jÞ²pݱxÛµxÞµrÚ®qÔªnجjܳyßµ}ݱmѦaÒ¤eÔ¥fУdÕ§eשiÏ¡eÕ¦jÜ°pجm׬mØ­pשnÙ®hÛ±mÞ®vÛ³vÛ¶yÞµ}à·zá¸}ÞµzݶvÞ·uÛ¶uÛ»zÚ¶uØ°uØ´yÛ·yÜ´vܳyÜ·yá»}â¿~à¼~Þ·~ݼ|äÅæÅà»xß½{á„áÀ†à½†â¿‡æÁˆé¿…æ¿}à»{Û²|Ѭq˧fÍ©mÖ³sß¿xâÅ€åÂᾀ޾„ß¾€ß·xÛ³wÚ¹uÕ´tЮvÓ´}ѯyÔ°tÙ³vÙ´|ݹ~Þ»~Þ½zÞ¿xݼzà¸}ใݹ~ܵ}὇äƆáÁ‚ãÁ„åÁ‡Þ¹Ý¹xà½}Þ·zÑ©o˧oÓ¯rÙ´xݽ}á¾à»ƒà»Ü´wÏ«kÑ®tݶ‚Ûº~Ö³rÒ«nÙ³pÞ¹sÛ³oØ°lÕ±nÖ¬nУgÓ«oÙ°uÕ«mѪhÒªdѦdФaÓ«bÕ°kÖ°pÛ°pÖ¦hÇœXÅTÌ XС\Í¡]Ρ\Ô£ZÒ YÏŸa΢`Ó§[Ö§_بiÛªlÞ¬jÛ©bÕ¢]Ò¢[Ï¡[Í`Ò£^Ô§bÑ `Ο[Ñ¢^Û¨cݪiÖ£bÔ¦]Ù§eÛªjÝ°fש^΢YÍ£[ТXÓ£^Õ£cȘQ¶ˆC´„=¼FŘS¾H¸ŠE¿˜MÆžQЦ^Ø«fÙ®k×­jجgݲn×±gׯlã¼|æÂzä»tâ¹uÛ²qØ®pÖ­eÕ¬cÙ°hϤbÏ iÙ¬mÞ°oßµyߺuáºz廆æ¸}ã¸yà´u×®iÕ°iÕ°jϪfΤ]Á”Sº’NÈ\ܯmߺjÚ·pß¼{Õ±sΦoÔ©hÕ°jÕ³uÔ²u˨eÇ¢_ɦgÌ«eѱmÚ¶€à¼‡â¼àº}سsΧiÔ©pßµyܳtÙ°yÙ·yײqÓ¬nΪmʦeʤdͦiЩkß·zãÁƒâ¼xÞ´hÖ¬iÙ±vÛµsÖ¯lÓ­nÒ«mÓ¦fÖ©j×®lÔªjÐ¥aЩeÏ«kÒ§dÖ¦bÔªa̦_ÇœUË›WÎ^СZС^ТeÒ¥eÕ¥fÓ¢dÓ£bÕ§`Õ­aÙ³kØ­pتhÙ§cÓ£bÕ©gרeÔ©`Ѭ`Ë¡]ÉŸYÌ TÉ›WÌ¥]ͤXÇœZ¯]㻀æºåµÚ±|Ó¬wܱsܲpÖ¯qÛ²rݵ|ä¿„éÀ€æ¿†ã‰çÁ‚çÊåÀŒæ»…èÀè‚éˆëÁ„ãº}ß¹€á¹~ßµ}Û¸}ݳ{á³{ã»yäº~âµ€ä¸yå½}æÂæ¼}à³tÛ³qà·uå¹|â·|ã³vä¶páµræ¹zí¿zë»{è½{çÁxä½}ã¹|â¸pݱpÜ­xݱvÙ¯sׯsÕ±rÕ«u׫oÛ²nâ²vå³uéºê½‡æ»|æ¹yç¹äµ~ݲwÚ´{佇êˆ彃㼅àÀ‰á½…漄弌今⹅ᶃ漄濅乃伃äˆ佌廉åÀˆå¾„å¹yâ¶yÜ´yÛ´v߶{å¼å¼|ã¹{ãº}ãº}å»~æ¼~ã»xáºuà¹uà¹xá¹yà¶wâ¼|èÂ…éÁ‰ç½ƒç¿ƒæÄçÄã¼~ã¹~å»ä½}äºçÁ‡æÈèÁ‡éÅ„æ‚å¼å»~âµ{Þ²wÚ³yÙ¶zàºxá¸vßµzáºá¼~åÀ{ëÂ}ç¼~à³tß³vâº~亀⽇ྃà½zâ¿zã¹{ä¼{áºyà³sÛ­nשlÙ­nÖ®nÕ©jÔ¥kΩhÏ­hÛ¯tà²uß³qß³tà¯qÝ°hÞ²jÙ­oØ«oÙ¬sÖªgÕ¡aÓ¡fÓ§kجlÜ­gשgÙ°iàµlÛ«eجeÛ°gקgÓ¡gÐ¥gѦgÕ¤aÔ¤dÖ¦jÝ«iݬmܯqÞ³nÚ°mÚ®lÕ¨iÑ¢dÖ­bØ­cÒŸ]Ï¢^Ï£_Ñ `Ô§bÓ§bË™XÏž_ÖªgÑŸdÑcÖ¨hÕ©lØ«jÚ¯oÛ°oÝ´máºuá¹yß¹xã»~Ü´vׯrØ°oÚ²tÛ´tÔ¬gÒ«nÖ°xÖ´wÙ³sÞ³yà¼zÞ¼|߶à¶ß»ÞÀ†äÂŒæ½Ü¸„Ü·€á½ŠâÀŠã¾‚ᾀ߿€ãÀæ¿„ã¿„ß¿ƒÞ»}Õ±oΩnÕ±sݹzᾂäÈáÀ„áº~à·|Ü·sÙ¯kجpÓªqϨjÒ­rÒ­xѬt×µtÙ·zÞº~Þ½†Ù»ˆÛ¸‚Þ¸|ß¹v㻂ἅܼáÁ‚çÂ…åÁƒà¿†äÁãÁ{Þ»zݼÞ¼Ö°vϬuÙ»‚ß½ƒß¼ῇể什ṂٴzÜ»⿅ݳxÓ«mͨoÖµzá¾€à»}Ü·}Û±xݲrÖ¯nÑ­pÕ®nØ­kÙ³sܺxß»wß¹xá·yÝ´uزtÛµwܳtÕ©m̤hЫhÕ³hÒ¯hÕ°j׫gÕªeѪhÑ©gدdÝ°eà°lã³râµmß°dÚ©hÔ¨fÏ¢WÈ•PÈ–TΡ\Ì¡XÊRѤYØ­bدhÕ¬kجmÛ±oݳpãµqâµqÙ®iÖ«cשcÒª[Ø®]Ö§`‘P»ŽJÕU˜\½”R¾”OÀšXÆž`ͦhÕ¯qÜ´wß·zÞºvâ¼uá¼|ܺ€ã€æÄâ¿}çÂæÁ…à¾~Ý¿tܼtݵoШeÉ£]Φ^ѨdÒ¬fØ°nÛ²rà·{ã¼}à»zߺ{Ü·yÙ³pÙ¶nÙ¶rÖ°nˤ`¿™Zš]Ó«bÚ¶mÛ¶tÞ·xسqÑ­hÏ«eÓ°mÚ³~Ú®zÖ­nÔ®jÑ«jÑ®oÖ°qܲvà¹~ß»~ݹ}Ú²sѧhͧmÔªqÙ­pׯpÓ§mÕ¥kÔ«gÎ¥eˤlÍ©lÌ£aË¡d×±sàº|àºzÞµn×®lÖ±uݳtÖ¨lÏŸgÓ¦cѨcÍ¡eϤlФhÌœXÌœYÒ¥bÔ¬cÕ®lØ©eУXÊXÉ›]Ѥ]Ô©\Ó¦bÙ¨bרaÓ©gÖ©jÚ«hÚ¯hÔ¬gÔ«eØ­eÙ¬gÙ©cÖ«dÓªaѨ`Ó¨_Ò¨`Ï©_Ó«_Ò§_ϦbÔªhÓ¦bÌžZ²Œ\仅緆㹈ֲxÏ©lÙ°sܱtرxسy×·z⾃练㹃èÄ…éČ翇éÀƒé‡翅èÁ†éĉæÀƒà»€Þ»„áÀˆäÁˆá¾ß¶ß³}ݲ|دxÙ®uÚ¶{à¼é»ƒçºÝ²vÛ®vÞ²~â¹|å¼å¼å¹yæµxåµzç¾ê¿~ê¹téº|é¼è¾}è¾}å¸yá¶{Ú±rÖªlÖªkÔ©gÔ¥j׫lÛ³sÞ²sÞ¯qä³ré¹uè¹yç¸uç¹uç¶zÞ±wÜ´y羉ëÀˆå¹€ä·€â¼ˆäÀŠè¿ˆä½‰âº€â¶z⸀ç¹å»â¹…ãºâ¸{á´xá¸ὂ߹‚á´}à³oÛ³qÛµ}àº|ä½{æ»}á¶|ã¹|è½|æ»}æ½æÀ‚激㼀ṃ⻅Ẅ޶~àº|ä½}å¹}â¹yâ¼}å¿€æ¼xã»sá¼}å¿æ¿å¾ˆæÁ‚æÁ{ç¿å¼}á¹yß»~à»zß»~âÁ‡á½‚ݹ‚ß½…Ễ⾀à¼ã¹|è¿xçÁzä¾|à½àÀˆã½€ä¸{â¸zá¹zâ¸}ã¸亀ãº|⽃á¹Ù­pÖ­rÔ¬tÒ©rШoΩpЮr×°qß³wã»~ã½uä´qß²rܶvÛ±uݲoܵpܱpÞ±kܱnÚ¯pÜ°nݸrÞ¶uÞ³uà·rܲnØ®mÙ®pצpѤhΨhÒ«mÕ¬jÒ«cÕ¬cÚ±hÚ¯kÜ«iÚ¬jرtÛ°tÙªkÒ¢fÍ¢gΩlÒªkÚ³uÛ­n×¥eÖ§jÕ§aÐ¥\Ô¤aÕ¤dÓ¤dÖ©d׫hצgÛ­jÝ°kÚ¬eÚ¬hÜ°rÝ´yß³wß´uß²wÝ«oÕ¨lÔ¬rÖ©jÐcÏ¥dÕªiÖªoÔ¬rÞ±sâ¸zÝ´uÛ²mÚ¶vܸീ⼅ང۲yز{Ú¶|Ù³tÚ²vÝ°|Ú±{Ú¸zᾃà»|à¹y㼀ݹz×µtظ|ݶḀâÀ†ÞƒÞÁ~áÁ{äÀ}â»}ݸzض}ص{׸vÕ³{ׯ|Ù¶xÝ·yܳ}Ù¶xصuܳuÝ´tÛµsà·{á·}Ú´qÚµtẂ༄áÀƒäÁƒâ½€áº†á¾„ÞÁ…ظ€Ð¯qÕ¸vܼ‚ß½‡à½„Ü»…Þ¼…ß¹}Ü»}ÞÀß»€Õ²sȦiǦgغ}ã†߿ݹݳyÜ»{Þº}Ú²sÔ®oѯqÚ¸佅㾄߻ݸw×µuÛ·uà¼yáº|ÞµyÓ®pÕ®nÛ·uÙ¶rÛ¶vÛ´vÕ¯lÑ®oÒ­qØ°mܳqݶqß»pã¼xà·r×±fÕ®gÎ¥hÁ–V¿“QÄ™]–Y–QÄšXÈŸ]Ï¥ZΦUЫcÖ­nØ®kܱsÝ°pÖªj׬pدhÓ§eÔ¥f׫cÏ¡XÇ•RÊ›\ˤaË£_ΧkϨsÌ£kʤiΧhÙ±r߸|Þ³xݶxß½{á½}ἂáÀ€ß½‚࿇߿€â»}ä¾{ß¾|Ú¶{Õ°tѬoЩkÉ aÍžcØ®rÔ²pØ°qá»~áÁÞ¸{ݶuÙ³tÖ°tÙ³tÔ°oЫkΣjÌ¥dÓ±eØ´kÕ°l×­qØ©qÔ©pÒ©mÐ¥jѪqÕ²tصvسvÖ²rÕ±qÖ«mÓ©iÖ±qÚ¶uÞ¸uÝ°rÓ¦lΠaÌ¡bѪhÖ°kСdÍœbÓ¨eÒ¤bТ]Ñ£[È–MÀ•MÇ¢^Ó¨fÙ®qÙ®pÔ¦eÕ§eÖ©jÑ¢`ОYÔ¡aÕ¤gÓ¢]Ñ ZÎœ^Ì›]Ê›TÏ¡VÕªb×®hÚ¯hÖªdÌŸXΞ[Ôªb×­^Ø®^Ù±fÜ°j×®j×®hÛ°gزkÑ«hѨbÓ«gÕ­hÓ©[Í¡ZÌ \Í¢^ΤfϦhÓ¬hدlÛ®hÖ¯eØ®iÖ§eФ`¹^è¿…åÀ„㹃ܱ{Ú´vä»zå¿~ཅá¶ä½|èÆ…êÁ‹æ¾ŠèÊë‰éÉìƇëŇçŇêÅŠëÂŒéÀ†ä¼€Þ¹â½ƒå¿†ãºÞµuÙ´uÕ®tÖ¬rÙ²mÝ´v亀â½ä¼€ä¶zÞ³|ß´zå¼êŠêƒèÀ„쿇꽅轄鼀ê¾~ì‡꿃ê¿~ìÀ€é»è¹zç¸xã²sרhÏ cÊbÍ¥kÕ¬pÔ«oÕ«pÚ°mÞ±rá°zæ³sæ²lä¯pà­xÛ­xÞ¶{輄èº}á¶xáµ~å¸è¸|ç¶{ä¶zàµuÞ²pà´vã¹ã¸â´vä±vã¶wãºvå·zä¸væ»{絀㶃⿉çÉèŠè½åº}å¿‚èÀ齃ç¾å¿€å¼…ç»~ç½翉ä¹}Ù­i׫l߶yã»}àº~â¿æÅ„éÃå¿|á¹xâºå»ƒå¾…⿆âº|ã¹wá´uܱuÛ¶~ܼvá¾{åÀ…Ềߺ€á¹‚㻅澄â¸yÛ´yä¼}êÀ„濆æ‚å¾}ã¼~⿀㹃㸅ä»|â½â¿ã¾ãº}ã¹zÞ¶uÙ¶u×´vÔ°nÓ­nÙ²xÚµyÜ´xâº|ç»~ä¹{áºxà·xáµxá·xâ¸yæ»yã¹sà·xäº~ä·qÛ³nÙ±qܲsá¶wã¹}àºyÞ¸wÞµvزrÖ­qÔ¬rÒ°uׯoÚ­lܲsáµ|Þ´vÚ°iÕªhÖ°qݶsÝ°sØ¥kСģmÔ³vá½ß¹rܳnÞ±nÙ³jÚ±kÞ°hÙ­hתhÙ®nݲsݬoÛ¨kÚ«nרhÓ¥bÖ§dÛ¯pÝ´nßµrÞ³tÛ­jÕ«dÒªfÍš^Æ–WË¡^Ö§fÔ§gÑ¥dÜ­vá¶~ß±nÞ®oÛ·xÛ·và´và¸zܵtÖ®mׯuݲvÛ¯p׬rÚ±oÛ¹vá»|ä»àº€ß¸}ݹ~ÙµzÙ°|߸{Þº|ܵ}Ý·{Ù´vÙ´{Þ¾‡åˆ迂ãÀ}àÁâ¿€á„á¿Ý¶~ܵvÝ´qÙ°x×±tÛ³sÙ³vØ´zÙ²sׯoÔ­kÒ©gϨgØ®rÞ¶|ເ྅Ἀ߻ݽ|ßÀ„ܹ€Ò±wÒ®sÕ¶}Û¼†ß½†Þº†Ü¹€Ø¼zؼ|Ûµ|Õ«tЪs˦oȤlØ´|äÀ‡áÀ€Ú¸{Ô°zظÝÁ„Ú»€Õ´sÖ´xÙµ{Ü·xß»†Þ»†Ûµ|Ó®tÕ°tݼ‚⽄ݺ{×´v×°}Þ·|ß¹zÜ·|Û¸{ÕµwÒ¯sÔ¬sÕ³v׳vرuÚ¶tß¹oà·sÚµwÕµrÓ¯mÈ¥oÄžhÅœ[¾™Q½–SÀ—TØXÄ—]Á˜XÇ£^ΧaϤbÖ¬lÙ¯oÔ«jׯo×­jÒ¬gÕ®oÔ©mÍ£aÉ¡eË¥fήcÓ²tظ~ÓµxǧlƨhέlÕ±oÙ³rسqÖ°rײuÙ¶zÚ³u߶uáºà»á¸เ߼sܸxܸ~ܸvÙ¶sÓ±sÌ©lΫlÙ¹zØ·sÑ®pÚµzݸyÚ±xزzÕ³qزmݲmÙ®oØ°xÙ°tÓ«nÒªkÓ©fÓ©iÖ³pÕ²sÕ«oЩgϦgÖ¬lÛµqÞµsß³sݲtÝ´xÙ®rצdÔ¤bÒ¤hÚ±tÙ²uÕ§jТ`ÉŸ^ЧfÛ²nÓ¨bÍ TÔ¤XÕ¢]ÐYÍžXÈ™NÃLÈš^Ìž]Ò¤eÖ­qÓ¨jÓ¨cÕ¨aÔ¤bЦXÔ©aÛ®lÚ®dÔ©`Ò¨^Ó¥XÓ¥^Ö¨d×¥]קcØ°kÓ¬]Ë›TËœZѧZÖ¨\ب\Ö±`Ú¶eÙ±jÖ³jÙ³f×±gѪaÑ¥aѦbѪ\ΤWšOÁœYÅ¢aÆ \Ì£fÒ­sÙ³rÜ´sÚ²qزjίfÊ©d³–cìŃ辂æ½ä¿„è¿ëÂçÁƒá·~ݶ€åÁŠêÄŽéÁ‡éÈëÂèÉêŇíĆèƒçÀ†çÃŒèÄŽêÁ…亀޵Ḁã¸ã´{ß²wÛ±wܳuÞ¶}à¹â¼仂繉軇âº~ܵ|ܵ{ß¹}è»…ë¿…èˆëÁ‰î¿‰ìÀŽåÀŒã¿€ìÂ†í¾‡èºæÁ‡æ½}æ¼}꿄꾂ߵ{Ö©oÓ¨iÓ©pÕ­tرuÕ­sÕ«kÙ®eÖ¨gקlÚ¬lÚ±sà¸xá³rÛ°pݳxåµxâ±vß³sÞµqÝ°u߯rá®pÞ¨oÞ«là²pá²vá¯sß­jÜ°lßµ|ä¹~å¶uæ³xã¶yâºyã¹{æ¼éÆŒêÂ…æºx⻀濉俈侂ä¼~㼀㼀ä¹~ç¼çÃã¹xÚ¦kÒ§kݳxåº|â»yã¾è†ç†å¼{ä¹xä½ã¼å¼„å¿…ß¼‚ݵy×°vÓ®vÔ°{ײ}Þ³{߸|ݶ|ܶ|ݺ~â¸}ã»zã»wÞ¶zß»{ß»zܸ{⽃ãÂ…á½~ã»|⾂㻀âºἇ⿅à¿}⺂乂߼|â¾{â¹{Ú³xÛ¸väÁ‚æ„æ¼å¿á¿|ãºã·}àµzÝ´wà·vã¹}â¸~à·yá·uäµxá¶{ݳp׫kÚ²oá½uâ»|ß¹yà½xâºy什޶wÒªnÔ°v׶|Ù²tÞµtÞ¸vÛ¶wܱwݲtÛ·sÞ·wà¶yÚ¯qÒ¨fЬkÔ²yÞ·}áºzÞ¶rÞ¶pÞ´uÞ´yÞ¶pÙ¯iѤgÕ©kßµlÚ­bÓ©hÕ®rÓ¬nΧmѨpÖ©mÙ«sܯuÛ°oÚ­kزpΫkÍYÍŸ[ΤnÖªnÙ®jѦmÕ¬iÛµmÜ°pÞ³pÞ°tÞ°xßµrܳoÚ®mÖ«nÖ­nÞ±mÞ³wÞ²uÞ´rÞ·{ã»ä»€ß¶{ݵ{Ú¶{Ù±uÙªrØ®tܲtÛ°vÚ²uÚ°vÔ©oÕ«qܳ{ß¹ƒá¿„彅็ݸ€Ý³zØ°tظyÞ·Û³wÛ·uà·wÛµxسx×°uÕ°sÖ®iÏ¥cɤeÏ©cÕ«jÙ°tÛ³vÙ¶~Ü·~ܲ|ٰشyײ}Ò«vÏ®rÔ¹€Û¹‚ܺÛ¹~Õ°wÓ­qЬlË¥h̨n̨mɦhÔ¯xݶ€Ü»zØ´yÔ¬xØ´wÛ¸׳}ÕµyÖ·ÖµÚ¸{Ý·€Û¸‡Ý·‚صxÔ¯vس€Ü¼ƒß¼‚Ü»~×¹|ܾ}ÝÀ€Ü¼~Þº~Ú¸~Õ´uÑ­oЬsÕ²uײzÖ°zׯuرsÛ¶rÚ¹uܸvسrϲqÏ«pÌ£nÄ hÁœa¿˜^¿™cÁœfÇ¡cÅ bÅ£bÒ²oÙ¶vÖ±n׬tÙ­sÛ­qݳvײnÔªfÔ«mЯoÒ®xسx׺zϳsÇ¥dȤlÏ­zѯtÔ²u×´yÕµwÓ²wÓ®oÓ¯lÖ±sÙ²}ز{Û·và¸yܶ}Ûº€Ý»~ݹ{Ù¸vÙµqׯsÒ®t×µzضxÓ¬mÕ­qÖ¯oÖ­pÙ°vÖ°rÕ®oÛ¯kÙ¬fݵlá¸vÜ­oÖªhÙ«mÙ®vÙ¶|Ú´qÔ¥dÏŸcÏ£dÔ¥fÖ¨jרkÜ©mÜ­rÙ¯rÕ©bÍ£[ËœZÌ[Ö¬hݲpרfѤbÉžZÏ¡_ÚµpÖ¯i΢YÑ£^Ó£eÏ¡[Í¡WΞ`ΠeÕ§hÖ¦aש`Û®jØ®k׬dשd׫cÓ§`У^ÔªgÚ®gÙ«hÒ¦eÑ¥]Ò¨fÓªaÔ«W×®eØ°rØ«eÑ¥WË¢aѧcÖ«_Ö«`Õ¬^ܲcÞ³lجeׯaÚ²fÒ¨aΣ`Ó«dÕ«mШgÈV–QÂœTÂœYÆfÒ¬lÖ³kÙ³pÛ´uÖ²oͪdͤeµ•hï̈ëƈêÊêÈŒëÊŠílj迃ݹxà½|êÈéÆ‹é€ê†èÁ‰èÁ‡çÀ‡èÁ„龃佃çÉéÀ’滉漂轆齈轃꾃罈潉ëÂŽïÇìLjìÄ뿊軉쿂鿄ᶅ߷zá¹vã´á¸㼄翆ê½|å½~⼄仆çÁ‹èdžæ¿{罀潆滃é‡éÇêÀ„äºuà¹xä¹€å½zã¾|⹃ⶀá¶{Þ¶tܯrÛ®uܶ{ãÀ‚å»~á²xß±xã³vå¸qå¹oà¶rßµuã·uá±pÞ«o߯tá±uá°pâ°ná®mݬpß°pß²sâ±rá³sàµyâ·åº}渀æ¹~æ¿~å¾áº{Ể⽇⻃⸊߹‹Ü¸}ݵrà¹xß¹~ܲxܲvܵxᵀ仃ä¼潄éÆ‚èÂ}è»|è¾{å¼}ä¹~ã¾áºƒÜ²~Û²t×­mΨoÒ¯|Þµ|ßµvݹ}ܺƒÝ¸}â»~ã¿‚ã¹}⼄߾ߴuÝ°xÖ®w׳uÛ½€à¹~ä·{ã¹Þ¶|ݸy߼ໂ߻}à¹á¶€á»€å¼†ç»ã¹yå¿„èÅ…èÁ‚ç‚æÂ~ä»wã¸vã¹yß¹{Ù¸{Þ¸xà¸yà»}⹀ߴ|á´{á¹~ܵrÙ¯rÞ·uã¾z㼀㺇เá¼zçÀ~å»}Ü´yÛ¸ἂã¸à¹ໄ⼄æ¿{ä¼~ß·€ß¹|â¼{ãº|Ù­vÔ¯uÙ¹yâ¹|á¸}á¹zâº}à·{â¹zá·wÔ¬kÎ¥jÓ©pÚ³zÞ²yÚ®qÙ´uݸsÝ´r׬nרjÙ­oÝ®rݯsÜ´vÞ³vÙ©iÓ¨hÒ¨lÖ°pߺuâ·sתpÔªnÚ²jÚ¯kܯpÙ®pׯrÛ³rÛ±lשjÔ¤hÕ¨m׫lÛ¬pݬrܯkܱqÞ°sà²qâ´vß°uÛ°rÞ±|Ý©sרiÙ±oÚ±qÞ²wß°xÛ¨pÒ¦hÓ¨mÝ­xàµuá»zß´xÙªpÔ¦kØ©kÞ±uÞ¯sÛ¯nܸpàµsݯqÛ®tÝ°wܳtÖ²oΧcÈŸYÊ¡^ФdÓ¥eÕªnØ­sØ­pתnÕªmجqÚ°uÖªqÒ¨mЩrÓ­xØ´xײrÒ«oЩqÓ®sÓªoͨpÈ¥qÅ¢hάtص€Ú¶x×µxÕ°vÖ²s׶xÔ°{Ö¯}ׯ~Ï®vÓ¯tÙ´xÛ·à¼Ü¾~ص€×°€Û¹€Þºzݺܸ„ݸ࿀ٹ{ض{ڻܼ|Ô³q˪iÔ­uݵƒÞ·Ù´wÚ²sÛ³uÞ·ã¿…àÀ~ݺ{×´zÕ³xÓ°tͪsɨlɦk˪oÉ«fÇ¢`ȤiЯuÙ·}Ù¶wÚ²zÛ°‚Ú±}Ü´xÛ°vس|Ù¹}Ù³{ز{Ùµx×µvÔ°yÏ©v̨uϪvÊ¥n˧kÒ­mÙ³{Ú¶z×­pÔ¨xÒªsѬmÒ¯uزxÙ¶xߺ⹀۶x×µt×°jÙµwÙµ{ϤiÍ¡jÓ©nÔªeØ«nÕ¬sϨgÔ«p×®xÕªqÙ¯sÛ³uÛ´kݵnÚ²p׫lÝ«gܯjÛ«o×¥lР[Ñœ[Ó¡fÔ¢aÓ¡`Õ¦bÖ©eרfÖ©fÒ¦`Í¡[Ï¢WÑ¢TØ­hݳq×­jתiÍŸ^È¡XÕ­dÝ°fܬfØ©eÛ±nݱlÒ¤XѤ]Ú®iàµoÞ²mÚ¯kÕ­gÕ«eÕªcØ«cتgÒ§c̤\Ψ`Ö­hÕ«gЦcΤ^ͦ`ΨcФ_Ò¦aتhÙªgÒ©gϧfШ\ѬbÕ¯n×®oݱrÞ²oÙ­`دhܹvسlϦaͪgÖ®iÚ¬bѦYÈ£]Ê¢^Ë XÊ£^Ó«fÕ¯mÚ´nܱqÚ¬oÔ¨gÔ¨h¾šnèÁŠë‹ìÅŒëÄŽëÂŒëˆ㻄ܱ‚ݶå€èÁ€æ½ƒå½†ã¸ˆåº‡ç¼Šæ»ˆä¼‡æ½é¼y澂ä»~æ¿~ëÈñÊñÇ‹îÈŠìLJëljíȇíÈîÉídžìLJêÅ‹æ¼…æºä½‚俀徃㹄᷀久丄àµzâ¶yæ¹|䵀仇èÀˆç¹}亀æÁŽëÀŠçÀ‡êƈíŋ翉俇æÀŠê¿é¿ˆéÊëÁ‰å»‚ß»à¸߶{Úµw߸漅廄ã¹Ý¶wá¸}é¾…è¹}æº{æ¼xå³wã¯tã±oß°kÚ«mÚ©sÝ­nÞ±gܬkÞ­lݬiܨlجtÛ±yß³zà³yÞ³|Þ´zã·vâ¸uá¶uâ¶}ã³€á°~Þ®zÛ¯sÛ®tß±xà²wÛ±zÝ·yâ¹{㵄ᶀâ¹}异èÁ†êÀ„é…㾂޶yÛ´uÚ±vàµyà¹wÛ·pÖ­jÕ­qݹƒã»Œè»‡è¾ƒä¿†æ»‡ä¾ã¾€àºàÀ}â¹Þ³vÙ¶sØ°vÙ²ußÀ|â»áºàÀ‚ß¹‚߶|á·}丈㼆ܾ{Þº}⺀ἂâ¾ä¼åºâ¹}åº~组â·{߶pÞ»xݺ}Û¶}Û¶}ݶzÝ´uÜ´vß·|༃ܻˆÜ¹‚Þ¹{ܹܹˆß»€à¼€à¹~Þ·wÞ»{à½zà¹{ܸܺ~ß»~ὃ޻„Ý»ã¼zå½~⾆á¼ãÀ~äÂå¾~߸|Û¹|ã¾ä½~ã¹yã»}ä¾å¼ƒç¿‡ä»~ܬnѪgÍ«iÖ²mÞ·vá¹à¸xà·wà»~ß·sØ«mÙ¯tß´xܱxܵ~Ù²vØ®nÞ·yÛ·tÙ¶sá¹zÝ·vÙ³pׯrܯtß³uÞ¸sÚ´oÙ²k߶mà¶qݱqÚ²uݵxÙ¯uÙ°nÛ®kبlÚ­oÞ¯kà¯tåµyæ³oá­pá´tÞ³rÕ©pЪfÔ­dÛ¯sÞ³xÛ°oѪiÏ¥dÕ¥bÙ´nß¹{Ù­qѦgÒ cÒžcÕ§dÕ¦fÕ¢eÔ¦cÓ¥dÔ¥eÖ©dÜ°jÞµnÜ°eתhÏ¡cƘXÅ™\ËbÒ¢fÔ¢eР`Ñ¡aСeÒ¤cÔ¦hÒ eПeÍ©dϦbÓ¤iѤnÍšgÎgÖ©qÒ¦lÉ¡gÆš^Ä™]Î¥gÔ©sÔªsÔ­pÒªpÕ«vÕ­wÕªtÔªlÑ©lЦlЦkÔ©mÖ¯vݹÞ¸vÙ²s×±uÕ³vÖµzÙ³|دtÖ±r×µxÓ³xήyÒ­sÙ´zÖ®xÌ¥kЩsЯyÓ²{׳‚Я}ЭwصzÛ¸~ݸŠß¹‹Ü¶‚ÚµyÞ·uÚ²xÕ²yÙ¹}Ú¹}Õ´}ЬoЩeÒ®jÕ·sعtÚ¹zÙ¶yÙ³yà¹Ý·~ܵzÙ´vÖ°lÖ²pÔµyײvزyÕ°yÕ­uШoÆždÛ_Ê iÔ¬vÙ¶yÖ²wÖ¯tÓ©iÊ`Ì¢mÙ¯vß·}á¿~ݼv×­nÛ©rÖ¨lÔ¨fÒ¦eËš]Ì™_Ò£gÒ¤gÔ©n׫qѦcѨcÖ¨kÔ©kÓªkبkÚ¨eרdÔ¤hÕ¤fØ©gØ­gØ«gÛ§gÔ«eÕ«dÙ¨bÖ§dÓ£`Ô¥\Ù¯cÖ¬fרaרcѦe×®hÙ±mÕ«nرkÚ¶gׯhϤaËžZÔ¥cÙ®dÙ±cØ°dرkÙ°mΤ_Èž`Ó¨gÖ¯kÓ¬gÕ±gÕ¯oЧgͨaЬcÕ®cׯgÑ©b˦\ϪdѨhϧcÖ¬bÖ¨bΦ`Ó©\Ö«_Ô­iÖ°pÚ´pÛ²hÙ©dÔ©bÕ­eدkÛ±qܲmÓ®dÒ®fײoÙ¯qØ«kѬgÔ¯kÛ°pܳiÛ²jÚ¯oÑ«gΤaÒ¡bѦgÕ¯nÚ³pÜ´qÞ¶pâ¸pŸoèÁˆé¿ŠéÀ‡ëÁ‰èˆå½å¸ƒåº‚áº|异輇往æÀ€æ¼…㿅㿊漆ëÀ„뾋翆æÀ~å¿}éăîÉŠîÇìÂ꿈íÂ…í¿‚ç¿„èÁíÀíËíÎ滆å½éÁ„ëÁ€êÁ€ìăíÀê¾~èÀ~æ»~幀佅弈缃ê¾ë»‡è»„羃迉æÁ„轂é‰èĈçÀŠç‰潂澂èĉèËéÄ‹éÀ‹á²ƒà·€ã¼†æºŒé¿èÂêÂëÁ庇߷‰á¾†è¿†ê‹ì¾|åµpà¶x躃æ´zÙ­pÕ®sÛ°pÛ±rÛ®rÝ°rÛ°oدpÖ±pÖ­rÕªpÙ®râ°xá¬sÝ°sß³uâ³så´uâ³xÙ±rܲmá°sÞ­uÞ±vá¶váµtá²wá´{â³{ß°tà°uã¶}å½}å¼å¸}â¹x߶rݱjÛ´uܶ~á¸{ã¶wß²yÞ·}çƒëŃèÄ€ä¿zåº渃ä¸~á¸|áº}ã¼yä¹{ÞµzÚ±rܲwÞ´xݹ~⹃异㼀á¹á»~䷃亅߻€Ü¶{ߺzà»yà¹~⺂á·{ß·~ß»€ß»{ÞµxÛ³rÚ³qÛ±tØ´uÖ±wرxسtرzܲ~ݵá·å»~฀޳zÛ·{Û¸~ßµxÚ´}۸߸ÛµÛ¶Þ¸Ûµ}Ûµ€Þºà·~Þ¸€Ü»Ý¸ßºƒá¼â¾{á½|㻀㾂ྃ޽‚à»zã¼{彂彆濇æÁƒè„齀â³sÙ©hϨkϯp߶yæ¼|à¸qá·vã»{áµxÛ¯pÙ±nܱq×®oÕ¬nØ­qÙ³zà¿~⾂⸄áº{á¹}á¹€Þ³yß´xã·|á´xÞ³uÞµyâ¼}á¼|ä¹éĆä¿{Þ±pÛ³pÙ°jÛ²oä¾}å¹{â¹tåÀuç»vâ¹wß¼xá¹vØ®qͤfÔ¨jܲuÚ³vÞ´rݳkÖ«hÕ©iÙ²sݸ{ܲtܯiÕ«eË¡`ФeÖ©hÒ¦bÒ¤dÑ¢\Ñ£\פeÛ¦gܨlÝ«r߯pÙ«pÏždɘZÌ `ЦkÍŸcÎ]ΟbË™\Й]Õ¢cÑ¢`Ò¦kЦhÎYÐœaΛhȘ`Ç–XËš]ËaȘX½ŽL½ŽRÈ™^ÍŸdÑ¡fÔ¢cÏ hÍŸlÒ¥jÑ©gѨiÑ¢eË¡_È gÌ¡jÖ«mÜ°wÕ¨vÑ¥mͤeѦlÓ¨pÍ£bУjÓ§sÒ®rÔ®pÓ£fÓ§cÖ°oÓ®rͨuÍ©xÒªqÕ­rÓ°mЬkΫtЬtÙ¶wß¼~ܹ}Þ¶yÝ·ܸ|Þ¶{ܸ|ݾ…ᾋà¼~Ù´yÖ±xÕ²xÔ²yÔ±wÔ°wÓ²y×·qÚ·rÚ²{Ø«rϤeÍcÒ§lÖ¬qÖ«mÖ¬o׬u×­qЬnË¢cÄœ[Æ¡aÓªl×­tÖ«oÔ§jУdÊœWÌ›XÕ¨hÙ­oÚ®rÙ¬jÕ [Ö¢aÔ¦gÒŸdÐœ^Κ[ÓŸ^ÕªjÕ¨lبk׫lÒ¡cΠ]Í¥aÏ£c΢_Р`Ö¢[ب^ܨfÙ£_קbÜ°jÚ¯fÖªhÚ°gÛ¯bÚªaÙ«cÔ«aШa׬gØ®dØ­bÛ­h׫pرmܸl׬hѨcÛ­râµyزiϧbÓ¨iÜ°o߶oÙ±mÖ­kØ­kСdĘWÄUÇ£Zͨ`Ö®kÔ°hέc̤`Σ\Ò¨fÙ°vÖ²nϬaÒ©aϪfЬhÞµmß·qÚ°dÙ«cתj×­gܱjá·oá¹lÙ´gÕ²fزkÙ³qÝ»pÛ·jÔ©fΫd̬hѦgÕ«fÕ°mØ°oÛ·oâ½oå¼râ¼vÛ·jÕ¬dÒ¨bÒ§cÙªkݵqÞ·oÞ·pá»r¼ l缅绂缀æ¹~ã¶~ä·âº{ã»~ã´{á¶侈伅繂辀éÁæÀ„å¿迀輆㿇åÆåÂ…ã¿~ã¹~⺇ä¼ä¹}á¹â¶xä¶vãº仄罅细ⳃๆè‹éÁƒèÁ‚ëÅŠëÁ†åÁä¿„å½€æ¿ç¾…èÁƒç€çÉëÀè¿~æ¿z鿆滅庀彂翂軈湉渃滅èÅìÆ‹ëÁ뾉帊â¸ä¿…åÁˆç‚êÁ‰êÂëÆŒëŠ伄ྂåƇéÈŠéÀ‡å¶‚á¸|ã¼vã¸wܳvضxÚ¸yß´wܲtÙ²qØ°oÙ¬oÕ­hЩgÓ¥hÖ­pÞ·lÜ®d׫oݳvã¶qä¸tä¶yá±rä²måµuã±vá³qá¹uáµrã´mà±sÞ­oݪhÛªjà±kÞ¯nÛ­qã²så³pÞ²jß°qã¶{à³yã°qæ¶tå¸|ä¸}â¹xå¹zã¶yÞ¶oß·oáµuå¹wå»{å¼ä¾vã¶sá°zÛ°|Ú±tÙ¯pÜ°uã·xã»á¹{å¸v㻀โáµ|߸{ݵwÞ·vÞ¹zá¶|à¸|áºzà¶yÚ³rÙ´rÛ±v×°rÙ³xݳ€Ü²vܯsÞ­}دxÖ¯pÚ±tÜ´|Þ¸~â¹wá¶uݳzÙ´|Ù¶vܯzܯÞ¸~޺ߵá¶}ߺ߹~à¸xá¹|à·|à´wݵxß¹|Þ»€ß¹ã»~߸yÛ´vÞ¸vá¸vãµwàµt߸zÝ·wá½{å¿~âÁ{ãÃ{äÀ}ä¼zä»yÙ¯oШiÚµqèºzâ¶tܵqßµsÞ²qدjÓªhÔ«nÔ¬kѪhÔ­nÝ´yã¹~ä»xã¿{ä¼æº侀߼yß¹xà¾{ß¹wÞ²pܶnß»{ß¹~㻂çÀ‰ã¹àµwà¹yݲtã»zçÄݲpàµuçÃçÀ}æÂ|èÂæ¼}ݳtÖ¯oÜ°rà´y߸vݹtÞ¹và³rܯsÛ´sÛ³vß²wâ¹pݳmÕªnѪmÒ®kÔ±oÕ®kÖ«aÓ¤`УbѤZÓ£ZÚ«fà¶rá¶vÙ­nÓ¨fÐ¥eÉŸbÇ›_Í¡dϤhТaÓ¤bÓ§iÒ¥cÕ¬kÑ«oÏ¥bС^Ë cÊ£bÆšTÁ—TÆš]È’U»†J¶ŠKÀ“TÆ—YÌžcÌžbÄ–TÆ™WÍŸcÐœaΚ\Ìš]Éš]Æ^Å¡^ΦgÕ«oÍ¡cÅ”\Å‘VȘZÌ›bÌ—aÊ_΢`Ô¥hÒ¤gɘVÅ’QÍcÕ¦pÑ©ḩeÍ¥oÒ¨uÒ©rЫpЪqͦpÑ«sÒ±zÒ¯yÙ±|Ú´€Ü¸{ݹyڸݷ{Þ³vÚ­zÖ¬zÓ­uÕ¬pÕ¨uСrÍžaÏ¢hÕªrÒ¥nÏ£kТaÇ•WÇ’QÒ XФbÏ aÖ¨kÚ°tÕ¦kÏždϤkÏ£hО^Ò¤`ϤeÒ bئdÕ§gÍ¡_ÌœWÑžZÒ \К`ΖVÊ–MÏŸ\Ò¦_ÒŸYÑžbÑ¢]Ö§aݲqܳrÖ©kبeÖ¥`Òž]Ñž]Ìž_Ì ZÊ›VË™]Ѥ^Ø«bÚ¬eÙ®jÚ°nÏ©_Ê [Ó¦fجeØ­dÙ°iÕ±jÔ«jÖ©iÔ¯eÕ°kÚ°oÚ°iײk×±oÔ§cѤdØ®rá¸vÞ¶rÖ¬nÓ©nØ´sÞ»vÞ¹uݳqݳuÖ³sʧcšT¾˜RË¢dÙ®mÕ¬nϪn˧eÇž`Ì¢dÙ²oÞµxܲpÙ®iÕ¬kÔ®oÖ°rܱpáµlݳhÖ­jÕ¨gÖ«fÜ°gá¶lÞµq׬i׬mÞ¶tà½sÛºo×°`ϦQÇ¡ZϤeÔ®oÔ´wܵsÞ·rß»và¹uÞ¹oݳoÙ¯tÑ­jЧ\Ö¨cÙ«kתnÖªnÛ¬h¼˜cä¸xáµyß²vá±xß­vܬuÞ°{ã´yä±zå²zä¹z湂鵄巀滀细満å»{㿀ὃ弄澆丆áµxÞ¹v㸀ä¹á¸€à·~à»}Ểߵ߷}係漆庈澉滈佇èćèÅ俀彈å‡徂èÀ‰ë‡澀èƒêÁ组鿃êÁˆç¹„æ¸|龊뿌迅åÀ„èÀ†è‰íÉŽñÊëÁŒè¿‡åÀ㽃仌辅ç¿弆俅èŃëʼnèÂŒèÂ…éÁ„êÁŒè¾ˆæ»{ã»xæ¼|ä¹|ݹ|ß½âº}ÞµvÚ±tܲo×°xÖ­vתkÖ©jÕ¨mÛ°tã¸~ß³vשnׯtߺuå½{è¼ä¶{å¸~å¿€ç¿|í¼}ê¿xå¼tã²uâ·sß¼sÛ´vÔ®pݱmà«jÙ¨dß²kä¸mݯjÞ²qçÀwã´oà®nã´så·räµtß±kÚ­hܪgÚ©jÚ¬và±uå·xê·‚è³xá²sÜ°sà²nà³tÚ°uÙ°oÞ¶på¹væ»{æº}å¸zâ·yà³{âµ{ä¸yá¶zß»}à»~à³á¶zãº}ⶂݱvܳtß´vá¶xã¾â»}à¸uÞ·yß·~â¶yßµsÛ²qݱpÞ³vÝ´{Þ°sÝ°vÞ¶}Þ¹yÜ­uÛ«vÝ·xà¸{âµzáºâ¼„ä¾€â¿|áºyÞ´yß·yÞ´rÜ°sÞ·{âºxâºxß·yÞ´yßµzÞ¹xݶxݵzݹzß·và¶yá¹vã¾rä¿yåÂ|åÅzæÅ{â»wزqÙµuäºxâºsÛµtÙ±wà´yݲrÖ«cÙ¬hݵpÝ´sÚ±pÛ³tÞ»~ß¼rá¸ráµwà¶yã¹zä¸zá·uã¼vå¿wâ¸xݵrÞ¸tßµyá´rá¸x߶|Þ¶{â¶zÛ°kÖ²jÙ¯iצ^ܬnä¼yéÁ{èÀ†è„çÀ{á¸xÜ»yá½|⹃޺{Þ»rà¸uâ»uã¼uá¹{߸~ß¹xß·u߸rß·pسoزrݳqܳrÛ¯pשlÓ¨iÕ¬gЩgѬpÞ»xæÁ}á¹xܯlÔ«kË¡eÊžcË£cËŸ_Í¢dÔ«eÙ¯hÖ¬rÕ¨qÓ¨jÕ®oשjÔªhÖ¯oÒ¦kË¢cÈž^ƘX“R½VÅ•WËœTËœ^Ìš^Ç–WÇ—[Ï\ÍšUÆ“OǘVÊYÈœXÄ–TǘWɘ]Å’WÑRÆ•PŘPÅ–TǘYÈœ^Êœ\ÏŸZÊš\¾Y¾ŽMÇ”TÕ¥jÑœeÄ’WÇb΢jÍ£eÑ«gÔ«pФjФjЦjÑ©iÔ¬rÒ¨lÔ§rÙ­yرuÛ²y×­vΦlФjТjÏ¡hΟcÉ›_ÅšZÆœ\Ëœ_É™VÈœWÌŸaΙ^̘bÒžgОcÍŸ`Ô©jØ­nÓ£gÏ bѦeÖ§hÓ¢]Ï [Ó¢a×¢fÝ«mÜ®nÖ¨eÓ¦cÑ£_Ï¢[ТVÑŸUÒ¡VÓ¤]Õ¦`צ[Õ¥\Õ¥YÚ§dÞ°jܲiÙ©fÔ¦dÕ«bÙ­gØ«jѤcÑ¢^ËŸZÆZÍŸ]Ó§cÚ¬hÝ°kÛ°pУ`ÇœZΡgÒ¦fÖ±nÞ¸vÚµuݵuà²oØ­kÔ¯nÔ¬kدn׳nЩbÍž\Ó¦kÙ±váµzâ·{دxÓ¨rÚ²uã¼wâºz߶{ߺà¼~ÚµsÍ£dØXÇ£dײpݳqݲmÖ«gÌ¥^È¢`Ó«lÙ°pݯqܵvØ»tÚ³tÚ¯rÚ³pß¹sÛ¶sÖ¯nÕ¯iׯjÞ³rÞ´sÜ´nÛµsÙ³rØ·pÙºqܹqÚµlÓ©_Í¢\ϧdÕ«nÜ°oÛ®iÖªiׯkÚ¯oÙªrÜ­oܱoÕ£iΞ^Ò¥^Ò¢\ÌWÉžWÒ£Z»‘^ä¯rà¯yä±rá­jܬmà­pã±oâµsã±tä±pá´qà°våµxé¹{ç´}æµzä³~ã²áµzßµvà¶{ã¹~㷀㳂ã·ã¿…æÁ†é¼‚ä¹}ã¹~ⶃâ²|ãµ{æ½…éÇíÁŠê½äºäÀ}èʼn꿈꾂翊翋ê„ìÆëÂŒêÁ†ê¾缄溇躃鿂äºà¸{㽆æÁŒæ‚缅꿌èÀŠè¿ŠéÅŒëÃèÀ‰èˆçÀ…翈éÃ轉羄弅จ彆迀è¿}æÀ}俄߻ܹ{⺂᷆à´ßµ{ÞµzݳxÝ´xÞ³wÚ³vÚ´tÛ¯sØ«tܱwÛµ{གê„ã²Õ¦qÖ¯nà·åºˆç½}å¸{ã»~ê¾yéº{ç¾è»|ã³{á¶}ãºyèº~æ¸|ܲm×®s×®uÔ¨j׬mÝ´qÞ²nâ¶oå»yå¶}ä°rß±oà´xâ·yÝ°kÙ¥\Ù£ZÙ¦]Ù¦dݪdß±gà³m߯k߬là¬kà­qáªqâ¬nß²o߯nà­jà²pà³và±uá¯s߯sݬvÞ®vÞ´vá¶zâ´à³€á¸zã¸záµ~á´yàµpã¹{廂㺀仂ã¼}à¸|âº{à¾zܹvÙµtß³à³~ܸxݶ{ܲ{ݵ{àµvÜ«vØ«uܲuÞ±uÞµsÞ¸r᷀㸅á·|ã¸|à¹{Þ¶zݱoÞµnã¸våµ{ã¹⻀߳zÛ²zܹ~߸‚ༀãÃ~ß¾ƒÜ»|ß¾}ໂເã½áºãº€âº~Ù³tÚµrà¹{á¹uܵfÖ±hÞºvà»wÚ²rÚ¶rá¸xä»yà½uÝ·qÜ·sÞ¶tá´kÞ¬fجiÚ±oà¯oß­sÞµqáºvÞ°qÖ¬kÛ·qÚ³kÜ®iâ²pݱjÛ°lÙ°oѧeÉ¡]Ç XÍ [Ò¤d×­h߸så½vçÀzç¿{â·rà·wá¸|áµxà²zݳvܵqá·vâ»Þ¼zß¹tÞµoÛ´kÞµsâ¶vÛ±sجmÚ¯iÖ®kÖ³pÛ²oׯkÖ²mÚ¯j×­nÞºæÃã½tÛ³sØ®tÔ«qÌ¥dÊ¢dÊŸbËž^ÖªjÙ°vÙ³vØ´r×®qÜ°xܲuØ®jÛ®jÛ®nÓ©o΢dÑ¢]Ð¥aͤ^Ò£_Õ¤dР_Óž`Ñž^ΞWÑŸ\ÎœSʘTË—^Ëž`Éž]Æ–TÀ–R“OÇ–VÊ¡]ÊŸ]Ê›YÈ—\Ç’^È–ZÈ™ZȘTʘPÆ‘K¿ŽKÑTËœbÊœZÂTÅ“ZÍŸ]Í¢hΠlПeÑžcТeΟ`ÑŸiТhÊ›\Í[П^Ó¤eÖ®sצoÕžbÑ¢]Ñ fÓžgÏŸbÈœ^ƘZÊ–_É•]Ê”TÑœVѦ[Ò¦aÕ¦bÔ¥gÔ¡jÓŸcÔ dÓ¡hÒ¥^ѤXÏžbΟbÑ¢YÕ¦ZרdÔ¨bÖªcשbѦ]Ѧ[ÏŸ]Í¢bΦ]Ó¥[Ö¦^Ó¢[Ñ¡UÐ¥VÓ¨WÕ¥[Ô¥cÚ®mÞ±lÙ­fÖªbÕ­fÝ·qܱkÔ§jÒ«bɧZ¿œWÀšUÍ¥cÖ®nÖ®jÔ«pË¡b¾•UŸ`Ç¥`ͧeÙ³pØ´nرpÜ·zÙ·tЭhÊžbΣkÕ³tѬqϤi׫qݲtܶmݶqݵvÚ°vÚ°rÚ·uÛºxÛ´vÜ´wß¹}ÛµsѬcË¥eͪnÒ²rÙ³m߶mÝ´pÕ®kÑ«hÏ©i̦iÒ§iØ«iÕ²lÖ²rØ°rزmÙ´kܲrÛ³tÙ°uجtÚ²tÚ¹tÚµuÚ°jײjÖ³oÕ­jÕ²sÙ·tØ®lШcǧcÏ¥dÒ¤`Ê]ÍœbФgФ`Ѥ^Ò§fÓ¦cÑŸ[Ê™ZËYÍO͘L˘VΞXºWç°tç®yå³wä±qç¬sä°sâ²uåµyå²vç°uå¯pâ°nç²xé´{êµ{æ´wá®pà¯uà­tá­lã¸uá¸wà¶y幅湄漂é‡꿇湄ã¸ã³á±~ß·yàº~佃鿄åºá¸|⺅åÁ…ç¾æ¿êÅ…íÁŒëƈîÊ…ëÆäÁ†åÁˆç½‚æ¼è¼…軄ä¸~á¶}áÁ‡äÂç½çÀŒèÁˆç¼€æÀ…éÆŽéÑéÁŒëʼnëÃ…ïÃ…ðÇëĉ辈㶀á¹~但຀޸~à¹{á»{㻂á¸~áºyâ´zá´â¹}â¸{ã»á»}Þµyܶ}ݹwØ°oÚ³{ã¼Þ»}ã¿êÁ~â¸yÞ³xáºwçÁ}ç¿„è»ç»ä»å»|ä¸亄å¾{߸qݳ|â´|â»rä½zâ¹}ܳ{Û³|Ý°sÝ®rÚ´tÞ¶uå´{è¹…êÁ†é·vß­rܳrâ´oß±jÚªeÛ¤aÞ¨iÙ¨oئjÜ®lܬkݬfß®n߯oã³hã±rߪpá­j߯fܬfß«gܨgÙ¨dݪnà­uÞ°kܱmß³sà³sà°wà´xãµxã³xâ·tâºzá¸yã¸tá¸~⺀â»ß¹á¼yã»|âºÚµxÓ­oÚ±wà¶~ã¸}äº~߶~ßµzܳwÙ´rÜ·rß²vß±uݲuÛµz߸~ß·zÞ¶wâ»yß¹xÞµ{á¹zà·zá·zà¶zߺ„ྃݵpÛ¯sߺ~ã½}å¾~çÀãºyÙºxáº{æ»à¾‚ß¼~á¸|à¹à½ƒà¸zܲ{Þ´vá¹vݲrدoÚ³vÞ¶xÞ»tݾ|á½ä¿‚â¿{á»vã»xâ¹}ݸwÜ°m߬rÛ²oײjجkÙ¯mÞ¶qܲqÛ°ná¹rÞ¸rÚ³pàµsà´l߸oÞµnÕ¨kË eŘYÇ™ZѧcÑ«gÕ°qá½{å¼{ä·vâµhÞ¹mÚ¸xÚ³vÛµvÛ³uݳqÞ·qÞ·vÛ¶yÚ´wݲvݲtܵsݵrܲoÚ²mÙ°iׯjÙ´mÞ³iݲjß²mà²qÛ´tÜ·vã¼}ä½~Þ´uÝ·tâ½{Û³oЪeÑ©jÕ°qܶ|Þ¸~â¸|â¸ß·{ß·wÜ°pÖ¨hÖ«oݶzߺzÖ²oÙ´tݳrÕ®kЪmÔ©jרb׫eØ«eÖ¦bÓ©cÔ¨`Ó¢[Ï¢aФ`ÍŸZÅš\ƘXƘ]ËŸaѨ`Ó©gÒ¢gÍŸX˘UÊ—WÉ›XË›XʘTÆ–KÄ“JÄ“PÄ“KÇ”IÈ—WË›aÒ¢eÔ¥hÑ¡dÏž]Ο]Ñ eСfÐ¥oТcΘSÌ™VÏ[Ô£fÕ«lצgÕ¢`Ò¥\Ó¦]Ó§cТaÍŸZÍ\Λ[Í¡Zˤ\Т`Ô£aÔ£fÒ£bÕ§fÖ§oתjÔ¨cÏ¡[Ѥ^Ö¤dѤdϤdÒ¤_ÖªeدqÓ¤fÑ ^Ï¥]ͦ[Ë¢]Æ›[È›YÊUË¥YЦeÓ£eÑ¡_Ï£`ШhÒ§h׬eÛ¶iá¹pß·lÖ²hÕ¬p×­o×±kسrÕ­e̦`Å¡fÄž`Ê¥dήnȬcȦbÊ£eĘ[Ìœ^Ëœ\ÉŸcÚ¯pÛ³rÙ³wÞµtÞ¸vÙ¶uʧdÍ©oÚµxÔ­kÒ¬o×±vÓ®uÔ¯uرrݳsÜ·s׶oØ´yÚ¶{ݲtÛ±xÚ´|Ú¶vÖ®oÓ¬fÔ´nÕ±oײqݸwݲr×°qÔ²nÒ¬fͤgѪrÖ¬lÖ«mׯsÛ°lÛ°oÛ³tß³uß³tÛµoÖ±mÖ°iÙ²oÙ°o׫gتhÓ¦fËžaΤbܱmÚ°iÒª_Ì¥_È¢dÍZ̘XËš]Ï¡\ÌžZË™WÏŸWСYÎœVÍ–RË™WϤ[Ö¥ZÓ£^Û¯g¿Ÿcè²lê³sæµvå³tå°sá°kß±låµtç·vç´wë´vè³rç·yê¹{ê´tä±sà¯kã¯hâ«oÞ«pã´tã±tß°uâ´~ã´à¸}ã¼{乀幅⼃޶}Þ¯wݳy߸{亀仂àº}ݵ߸‡ä¿Šæ¾…㽂åÁŒê¿ŠèÁƒëÆŽìÄäÀƒä¼„羇æ†åÂ…è‚廂අ弅ç½yãº{ä¾€ç½|æ¼…éÀŒêŠ罆êÁ„ë„輇çÀŽëÆ‹èŇ侊弇ä¼â¸á¶€â¸~ãµvã¸|çÀ„æÀç¿~ç¼~⾆æÀŠé¼~ç¸zá´}Ù¶}Û¼Û²uÖ¬mØ·vÞ½uá¹väº忀潄㾆ã†çˆèÁ‚æ¼zᴀ༄⼅ᶂ߷zßµtÚ¯wÝ´uÙ´rÔ¯tÞ¸}äÀà¹Ú±€Ù¶zÝ´tÞ´|â¹å¸zã»xçÁ~æ¼~වẂà³yÚ¬mÜ«nß²wß·vݳrÙ°qÛ¯qÜ­pÜ®oâ³nã²jã³kæ¶oá¯kÙ§jÙ¨gÛ¬jÝ«hÞ¨fÝ©mÛ«kݯkà²rà±uݯsÝ®kÝ©fÜ«dá´hß²jݱlâ¶tà´vÛ³uܸxÞ¸{à¸xàºzܶvܸvá¶wÞ­rØ«sÙ°xÙ³wݵrà¶yܸyÛ·tÞµpÞ³vÞ³yß·uÞ´uÙ¯yÙ±uݳrÛ³uÞ²tâµuà³uÛ±uݶwá³zâ°tàµwܹ}ß¼{ã·{ß³tà¹v㽃⾇⻄â¹áºá»â»~á¼}ߺ~ݸ{ݵ|߷เ۱uÛ´vá¸~Û®vÕ¨uÖ­{Ý´xá¹t߸wß¹à¼{å»{æ½濃⽂߽~âÁ„à¿Ù·zØ­rÕ­lÔ±qÞ·{á»zÞ¹wà¼~á½~ߺzàºuâ»xã½~ãÀ~ã½Ù³vΨ`̨bÏ®lϪoÒ¬pÙ´pܶtݶyܸyÜ·uÞ¶wÛ¶{ݵ~â²~ݵuܸmàºtÛ·xÚ´tÛ¶xÚ³{ݸxÞ»pÞ´uÞ±tÖ¯lÓ¯oܶpá´mÞ³lÚµpß³râ¸uÚ¶oܵpá·rßµtÞ·wá¼uß·sÚ²qÛ¶tà¹y⻀à¹yã»uä½xá»wß¹zÛ¸uÔ±uز}⻀â¾yÜ»zܺ|Ú´yØ°vÙµsÙ³oØ­rܶuÞ»rÚ¶qزjÖ®fÓªeÒªhÓ§iϤcΣ]΢]ΣbÒªcÕ«eתhÙ«hÔ¨cΡWɘMÂJÁAÂ?Á”NÄ–UÁ‘N¼PÄ“QÌ¡WÏ¢_Ô¡_تiÖ¨iП`Р^Т_Ïž`РfΞ`ÐœXÔ¢_Ô¦eקgجhÙªfÕ¡bÍŸ]Í¡aѤeÓ¥bÔ¡_Ð¥^ϨbУdÒžbС^Í \ÈšWÉžXÕ¬jÛ°rÛ¯oÙ¬fЦ]Ë£aѤeÓ¦bѧfÎ¥eЧiÓ­pÖ©pѨeÈ£`Ë¢lÌ«lʬlϬqÒ°oÕ°uÙµzÕ´rÕ®nÕ¯lÒ°rÕµyÙ¹{ÙµwÚ´tÚ·uÖ±w׫sÒ¨mÓ­pÖ®mÕªfÙ±tÙ¶vÍ©hË¢dÈ¡d™ZÈžYЪ[ЬeÖ¯qÔ¬dΦ`Õ°lÚ³kÝ°qá¸}á¸zß·uÖ¯tÖ­yÝ·wà¹wÞ¹zÙ¸v׬qÓ©qѪlØ°rÞ·xݲqÖ¯q×´yس{Ö¯tسvÛ³xݵsÝ·xÙ¶{Õµ~Û²~Û±wÖ¯jÕ­hÓ­mÔ±nÔ®nÓ°yÓ®qÔ©fÚ²vÞµsÛ²mÚ±rÚ±lØ©hÓ¤iÑ¢aÔ¥dÔ¨hÕªiÒ¥`ÏŸTÍœUÔWØ_ÔªkÖ®kÓ¨eÖ¨`Ò¦`Ρ]Ó¤]ѦeËž\ÊšTÌ™W̘SËžWТYÌžWÈ™WÍ ^׫jÚ¯oà·s¿¥kã´næ·rãµtá²tâ²qà°lÙ°nÞ¸{ç´xä­pà¯qæ°uç±|è²vè²tå²rç±rè²uã­nå«jé¶oå´râ±tä²xã°sã±væµ|ä¸|终縇å³|ä³}ã²|åµ€æ¹~âµxá²à³~ݵ|⸀什ã¾~罃꼅辅轈꾊彃⻃仆待濇çÀ龂鼀é¼{èº{åºy罃鼇绅辂è¿çÁˆêÂŽêÄŠéÁ†éÀ…èÊæ‡æÁ‰è¿‰è»‚æºäº|Ṅᶄ巄齆輆鿆èÁ‡ä»…å½轂㵇ܲàµyÜ­rÙ«s۲߷ƒá¼€ãºá¶ƒâºˆæ¼ˆæ¼ƒç¾ƒé¿ƒæ¾ƒãº}ã¹~å¹€æº}ß·tݶu߶xÕ®sÖ°qׯuÓ¨xݲ彃á´xØ®tܸãº߸~ã¼ä¾…çÀ‰çÁƒãºƒæº†çÀ‚âº|Ù°xرrݳ|ἆ޿߸~á¶Þ·v߶wá´vã¶væ¼ç¿{â³nÛ«lÖ©jÔ¨jØ­rÜ°nÞ²iÞ¯nÞ¬kÞ­iß±oÞ²l߯kß«iÙ¤eפhÞ¬kà¬kÞ­jݲjÛ­iݯnÞ²rÞ®mÞ­nÚ­mÝ­nà±sÛ¯vÜ«qÜ°oܵoÞ´táµyà¶yÜ´uݳsÞµtÞ¶và¸uÜ´sÙ¯tݲrÞ³tß²xà®tÛ°vÞ¶xݲsܳy߸{á¹vݲyܳtß¹tá¶}áµzà´sß´sá·{â¸|à¸zà¸wâµtßµzßµÞ¸y߸xá³yâ¸zã½{á¸xà·vá½uÚ°lÑ«kسzݳ~Û´và¸zä¸|ß·|ß»€ä»€â¸}߶|à¹~ἄܸ~Úµuܲu×°s׳xܶ{à»{ß¹{߸{ã¾{à¿uݹwá¹å¼~è¿‚ëĊ徆ݳxÔ®nÓ²sÓ¯qÏ«oΪjÔ°nܹuݹzß¹|ãºá·~â¸{ߺ}Þ¸àµ{á¹yß»~ݺ}Ü»yÜ·{Þ¹{ܼ{à¹zÞµtÙ°uÚ¶vݺuÞ´xàµtßµqß»rá¿v߸qÜ´rÛ¸tÛ²mÙ³oݺzÛ¸zÞ»}ä¼ãº~å½ã½}Þ»~Þ½vÞ¹vݸݼ}Þ¹uà¸|㽄ã¾}Þ¹yݹ}Þº|ݹxÞ»|Þºyܶvß»vàÁzÞ¼zß·tÞ³oÞ²pß³zÛ²uجj×­pزvÖ³oÔ¯nÖ«oجqÖ±pÖ®lÕ¥hËœ]¿Q¿ŒQÁ—R¿–SÄ–XÆ™TÅ™SÈœXÓ¢cÖ¥bÕ¥bÚ§bئ]Ó¢^Õ¤]Ó¢ZÒ \Õ¤hѤcÏ \Ò¦bÖ©e×¥bÕ¥`Ö©bÖ¥`ÑžZÏ¢^Ï¥iÍ¡jËŸdÑ¥lÕ«sÔªpÔ©nÔ¦fΣdÊŸbΟ^ÖªlÛ´zÛµ}Ú¯wϧmÈ£cÇ aÉ¢dͦfͦfϤhЪnÔµrÕ³rϧnΩrѳwÒ³sÔ¶xÔ´zÓ³{Ö»Õ´{Ô°uÓ°sÓµxÕ·zÕ¶tÏ«nÎ¥`Ï©_Ò«hÙ­oÖ«jÓ«mÕ¯lÙ´jãÃῃЪiË£fÉŸhÆ^̧aÒ°gÖ²oÞ¶zÛ³mЫ`ЪgÕ©dØ­hݵyà·~Þ·yÜ·wߺ}⿃á¸Þ¸}ߺxà¶tØ­qÑ©nÕ­rÙ±oجmÕ¨mשo×­nÖ²oÛ³xÞ³vܳtܳqÛ°mÚ¯qݲsÙ¬nÔ¨gÔ¦hÓ¤eÕ¦hÒ¦gÑ«hЩ`Ì¡^ѤfÔ¦`Р[ÏŸ[Ò£[ΟXǘPËšNΠUÒ¤\Ó¤`У]Ò PΘK•S¿–UË¢Zرfß²hâ´sà±rÚ«cÙ¯eÛ®fÕª`Ρ_É›\ÊŸ_Í£fЦaÓ©\Ì¥VÍ¡ZÓ¢dÒ¨jàµyÅ¢tá²lä±rã°tã·nã¶uá²uݯlÞ°tãµvÞ²iÝ®jå³så´tä³tã±oã²rê³të¶xç¸vç±så³qæ¶rç²{ç²}çµxè²uè°tçµ{æ¶~æ¶zæ´vâ­rá¬tè²uæ±t߯uÙ²s×­nبoÙ®uÙ²tݳwæ»~èÀƒæ½†ç¼ƒç»‚á´{ßµx㹀廅輊鼈麀꺂ë½éÁ…êÁƒêÄéÀ†è¼„ã»~Ṃ⹆å‡æĈæÀêÁ‹ê¿ƒçº…滎çÀˆç¼ƒçºˆæ¿†â½zà¹}弆心ä½~ä»äº‡ç¼Šåº„á¹Þ»€Úµzܯ{Õ©xÔ¬uÞ¶{ß»~á¹{佄㾂â¹z༄ã¾~ãºtä¼{å¾徉꽈齃罃áµxÞµyá¹}Ú­mÚ«nÙ­oШhÙµuâ¿€Þ´qשmÞµ⼃ߴá³߶~⼄澂à»{㿄鿈徂߶Õ±zÓ¯sÚ²|߶庂輅漅満ä¶yß·uæ¸{å·}ß²tß´zÚ´}ѯpÕ°lدoÛ·rá·já±jâ¶uâ¹váµuâ¶yå·là±hÙ«jתhØ©hÛªiÝ­mݱnÜ­fݪbÙ¬fÛ®oß®lÝ­kܯmÛ¬kÛªkܬeܯdÞ¯nÞ±rÜ´uß·{áµvÛ®kØ®rà´xÞ¯mÞ®mâ±rà¯pß²rݳoݶná·wá²{ݲtß³pà¶uܲuÙ«oݬràµlÞ¶lß°tÙ¯nØ®kÜ©iÙ«eÚ¯iÜ«mתrÙ­rÞ¯|ã³~â´rá´uåº{ãºyß´vݲuØ©mÒ©oØ°oݵtܵzÚ¶}Ûº}ܵ{ß³}ݵuÙ¯qØ«rÔ¯qØ®tÙ°zص{Ú´wÛ´vÛ·{Ûµ}Û¶}ݶ}ݶá»~â»xÝ·wÞ·{á·~ã½{ä¿zÞµoÓ­ȩgÌ©mÊ©dÉ¥dȦhË©jÙ²uÞ´wÛ²yÞ¶zàµwßµ~Þ¹~ܺxڶܶ‚à¶~ߺƒÞ½|ߺ{ݹÚ¹~ß»}Þº}Ü·yß·}â½à»}ݵ}à´yâ¹}ãÁã¿{à¶vÞ´sÚ±tÖ¬xÚ¯xÛµyÞ¼ƒá»ˆà¸ƒâ»áºß»~àº~ݺ€Ý»ƒà¼zݸtÛ³yÞ¶|ܶ~Ú¶yݺ|à»}ݶ}Ü·~Ý´wá·uã½⺃á»ã¼|Þµwܵy߸{á´zÞ´qÚ´pܶyÞ»~ß¹}ݳzݳvÜ´rÙ²qÖ²uÓ­qÈ¡fÈ¢hΨbÇŸ`ÊždÍ¥eΦjÕ¨kÓ©kÒªiتhÖ¥jѧbÓ¦[Ó£[Ñ¥\Í£^ÏŸ]Ï¢`Σ[ÌžYÏ¢bϧeϤdÖ¨m׫f΢ZÍŸ`Ï¢`Ì£^ΨkÓ­uÕ²sØ·z߶~߶vÞµtÙ±xÓ­pÚ²vÞ¹|ܼxÛ»€Õ²}Ï«pË©iʪlÌ«sÏ®sѯpѯuÔ­tÖ±qÕ²tÙ´xÖ´vѬnЦq̦rƤfȦh̨fͨeË©gÊ«iΨjÈ¥hŧfȧ`ȦcÈ£fÑ­lѳtÔµxÚ¶xß»€ãÀ‚Û±pÓ¦lÓ«pÕ²pÓ­jѬ]Õ°jÚ²uݳvÚ°uÕ©mÔªjÔ«kÑ«nÒªlØ©pÚ±uÛ´wÞ°y߯xß²yßµ|Þ³yà³}Ù²wÑ«hÓ«nÓ¨gТ`Õ«kÔ¬pÓ¤hÔ¦gÓªhÒªbÒ¬`Ó©hÓ¦iÒ¨cÕ©iÙ¨gÕ¦cΠ]ÌŸ`Ï¥_Ï£\Ò¤eÔ¤bÉšUÄ•MÆ–KǘPƘQÉžQÉ ZÊž]΢_Т\ÏžYÑ¡_Õ¦cצaÓ¤[Ê¡Z¿—T¾”QÕ©eâ¹wã¹sÞ±jתdÛ¯hàµtܲkש]Í£_È¥cϧc˦eΫgÒ«eͤdÉš]ËžZÖ­mÀœvã´tå³vå°räµrç½têºoå³sâ¯vã®rá°sá²oä±hã±jå³oæ¶oå¶sê¾uí¿vê¹|çµ|è³véµtê¹vè³sç°pç±uè­uë´|í¹~ê¹rè¸oå²sã¯së°rè®râ¬mã¬oá«kâ±på­vâ©uâ³yæ¹ê¶…긂ç¹~æ¸ãµ}á´yä¶{ç¸纄綃涂漅èÁŽëÁŠì½‰ê¼‰é»‚è¶á²}Û²yÞ¶€æ¿ŠêÁ‰æÁ‚ê„èÁ„ã¾}ç½}çÁ‡çˆ翇迃èÂ|辀迆êÀ‚æ¼âºä»}滆㻀âºzไවݯvÔ¨vÒªtܶ乇à¶zã»xé¼~äºä½€ç»æ·æ»‡è»ƒç¼æÁ…翃绀ä¶|á²sã¸záµ}á²zâµqÙ­oÛ²|å»{ݳtÓ¬qܵxã¹{á·{á¶{ß³sàºxãÀ‚åÀ„æÁƒã€㿂߸‚Ö®uÎ¥jѨqÙ¯vܸ}ᾄ漆龅á¸vÚ¯qß±xÞ±tܳv⽃޿†Ø¶~ܵv߶và¸{á¹y㻀æÀˆç¾„æ¼}ã»uä¹tàµvÚ°nÚ±nÙ­nÙ¨hÞ«lâ²uß³qÞ­iܨlÞ¯tâ´xã¸vá¶oݲjܬjÛ¬vß³xá³r߯tâ­}ã²xà³l×­jשjà°lá±n߬oá¬oݬhݯkß³pã³qä²xà±rÞ­jÙ¬jÚ®jÙªkÛªgÝ­jØ®mÙ±iÝ®mÙ©jѨfÕ©aת`Ù§dØ©cÖ©b×¥fبgݲoà±nÜ«jÝ°râµuݲsØ«pÖ§jѦcÒ«hܳrà²rݱsÙ±oÚ±pÛ±tÙ¯kÙ©e×¥gÖªmزuÚµsݵrݲtÞ°vÞ³zÞµvß²|ßµ€Þ»|á¼{à»~á·~ã·xà¸sÜ´tÞ¯rÕ¥jÉ¢bɤdͤfÉ¡cÇŸdÈždËŸhÕ¬oصtرqÛ±sܱ|ܱzÚµuÛ»zÞ¸yÜ·qÛ¶uà¶}á¸}Þ³xÞ´yßµ|Úµ}Þ¸€ß¸€Ü¸|à·{ß¹{Û»xݹ{á¼ã„࿃߻‚ß´ܲz×°u×°vظ{ß¼~â¼âºâ¹}ݸ|ܺ~Ü»xÙ¹zݶ޸ܶ}Û¶zÛº€Ý»ƒÜ»Ý¼‚ὂຂݸzÞµvß¹‚ἂá»zâ¹~ὃݽ|ܸyÜ·zà¶}ã¹à¹~Þ¹‚ὃäÁ…á»Ú¸|ܼzܺwÞ¸zß»zÓ·rбyÕ®uÒ­lÖ²vß¹{ݵxÖ®rÓ±mÕ®nÙ­t×­pÓ©iÕ©kÕ¨nÑ«fÒ«hÒ¥jÒ§cÑ­jÑ­hÓ©cЩc˨aÖ³uß½~Ò¬jÊ¡eΪkÖ±tÚµxÚ¶uÛ¸vÞ»}äÁ€æĆ༅ڳvÛ´yÛ´}Ù³xÚ·yݹ|ÞµyײtÒ¬rЪqѲpÓ²rÕ±vÖµtίtÖµ|áÂàÀvÞºtÙ³rÖ«lÓ§rÊ£jÆ£_Ë¥hÓ¬nÖ²gÒ­l̨hͨdϯnдuÓ¶uÏ­jΨkÑ«tÖ±yÕ±qرoÚ±wÕ­rÒ¬nÙ´xߺuÛ´lÖ´oÛ´uݺtÞ½vÛ³tÔ®hÓ°gÚ²qÛµqÖ®iÔ§hѨjÓ©fרbÙ­h×±sײnÙ²kÛ³qÕ±nÓ­iܱrÔ£bËšXÕ«hÕª_ΚX˘[Ê™WÉ–PȘRСYТXФ\Ô§dЦbÒ¥YÏŸXÉœYÌ [Ï¡YÓ£aÖ§bÍ¡WƘNÍšSПZÌ TÓ¦[Ô¬dÑ©^ק]ѪbѨ`Ö©bØ­iÞ°fÞ°cØ®cÊžW¿‘RÊ¢c߸pçÀuâ¹nÓªaÓ«iÚ°pØ«hÕ­hÒ­gË¢e̦eͧ_Ñ¥eÔ§gÓ§cÒ¦dˤcѦc¹šné»zé¼uæ¸yè¸tè¸tæ¶xå¶våµrä²päµsáµuä¶pã²qß´sã¹péÀsë¿zêºxè´uã±nå¶oé¹{é³tå²lá²nâ®rå³tç³tæ±xæ±vé´vêµså³rç±së°tè³rç³pæ²pè´rê´zç¯pè²jç¸tç¶}æ±|ä´zæ¶{ä´våµtéµtæ³yä³zã³yå³vä·xå»|轅軂åµvá±yã²{ä²qÛ«mÚ¬zÞµ{ã¸wåµ{â¸äº€æ¸|湂侂â¿{ä¸y幂绋终躅幄ⶀå¸{âºxÞ¹x߶{â·â¸}ß²}Ù¬yÖ«qÖ«uÙ­zÛ°{Ü°zâ·{â»ß¹å¹}æ·}âµä¹|ç¸tä¶xâ·~åºå¹yâ¶vÞ³}߳㺄åÀå½~Þµ~Û´yáºxÜ´rѨjدsß·xâµ}æ·|Þ´oÛµwá¸å»羀侄伄ã·~Û±vÔ°oÕ®rÕ®qÕ³wÞ¶}ä»yçÀ†àº†×±yÕªnÕ­sܼ„ãÊ㿈޶}߸{⻂ᵃâ¶~࿀⿃彀å½~à¶và´vâ¹yÞ±vݯvÚ±pÓ«gÕ­oÞ¸xã¼uã¸tÞ²uÝ°váµyá¹uÞ¶rÞ²uÞ²yßµwá»uá¶sݱsÞ¸xá¸uá±qܨh×¥e߯pã²vß´yá³qÞ­kÛ®jà¯jß­pà¯rá¬oÛ«gÚ®cÛ±aÙ¯^Û¯gÞ°mÖ­fÔ«hÖ«lتiÖ©gÔ¬hÙ¬hÙ¬iÚ°iÛ®fبbÖ¨cÙªfÛ§fبjÖ§jÔ¥hשkتlÖ§lУhË£dØ­kâ¶qß³pߪmÙ©oÚ¯nß­hݪiܬgÞ±kà´u߶vܱoÛ°jݯnÚ¬sÚ°rá´vâ¶rÞ¹lÞ·pá¶rá¶xâ´xÝ´sزn×±oÕ®qÓ«mÖ«n×®rÖ«mÔ¨jÐ¥fÍŸbÑ¥nÖ­uØ®vÛ±sÚ³uÙ²zÚµ{ܵvÜ´uݶuÜ´xݲyÝ®rÙ°rܵtß±oݳsÛ¶uܳtÞ¶~ݶ}Þ³}ܲÚ´{Û¸yݶ€ß·€áºyݸuÛ·yܹzÖ¯uÚ±xເ޹wÞ¸rݹzÛ³|Ùµ€ÖµyׯrܳxܳvÛ¶t߸|޸߼yà»zẄῃâ½ใ۸€Û¹zÞ»yà¼{ݻݺ€Ý¸xÙ·wܸxݺzß¼༃߹â¸庄ᾀߺ{߸}Þ¶{Þ·ຄܸ}Öµ}Õ¶{Ùµyß¹}ã¿„ä¹Û°wÔ³pÛµuṃ⽃á½xàºrÞ¶vÞ´qÞ´uݲzرwײ{Ú´}Û³{Ö±tЫlÛ·{âÃ׳zϧsÖ¯zܺà¿Þ½{Ú¹{Þ»|ãÀ„âÃ…ÝÁxÔ²qÔ²wÙµuÚ²sÚ¶uÛ¹|ݸ{Þ·zÞ¶xܸxزxز{ضvÖ´rÒ­sÔ°oÞº}㽇߽}Ü»yÝ»~Û¶yÓ­iЫhѪrÖ®vÞ¹uÞºvÞµyÛ°vسvÖ´sÑ­iÈ¡aÉŸbÓ©qÚ¯sתiÔ§jÔ©pÕ®vÕ±uÚ´vÞ¸tÛµpܳtÞ¶x߸xÚ¶vÛµsܳpÖ²qÙ²tÞ³uÙ±pÖ®nÍ¥dÊžbÔ£eÔ¥bÒ¤bÔ§^Ó¤`Ô£fÖ¥_Õ£_Ö©`ФXÌœ]Ó£^Ñ UÊ—RƘUÉ–OÇ”QÉš[Ñ [Ó£]Õ©a׫eתmÔ©fѦZÍ£YÍXËŸYÍ \Ø¥`Ô¨bÆ VÍ¥]Ö­jÔ¨fÓ«eЯmÑ­oÓ­kѧfШjÕ¯kÙ³jݶkݹhÚµiÑ©`ÇŸXȤ[Эlܲuá¸nÔ¬iШmÓ¬jЦiÒ©lÒ®eͤgÎ¥nΩgÓ¦eÔ©kЦgÔªiÑ«gÉŸ[³–dê¼ë¼yé¹zä´vä¹tå»tá¶u฀罀é¾|æ¹{äµxäµsá¸rã»ué¸{êµ~æ²xâ®râ¯oæ²{é·~ê¸tëµræ´uÝ°qÚ­vâ±~äµvâ³qèµwêµsé²nç·uå¹uæ¶uçµxä³sã´rá³|ã±zèµvéºxë¹zé¶wç·pé¶të¸|ë¹yë¹vë¹{èµuä²tâ°sã¯rã³zæ¹è¸zä°pá®qã³zç´yá¯r߬rß°uá²zâ±}â±zâ³vã³~嶀äµzãµ~ⶀã¶væº~廅㺄á´|ß²yà¯{à±zß°rà­tã´|â³{Ý®wÙ®xݲuÜ´tÜ°uÝ°tÛ­vÚ­uá´qåµvã·{á»{à¸~ä·{â¹x߸}ã·zâ¹uß¹yäº{ä¸zã»z澄弄ã¾}á¼zà¶{ä¶{Ù±sË¢fÕ©iܳv඀⻃ٵwÜ´z㸃å·廃æÁ迆ä»}ä¿€è¿wäºyÞ¸vÙ´tݲyÝ´uÞ»~çÀ‡á¹Ò«rÑ«rݺ€Ý»„Þ¸‰à»„äÂ~辂ç¹ã»ƒÜº€Üµ{ܲ}Ú´wÛ²vܱzܵzÙ°u×®rÖ®rÖ®uÜ°vݲv߶{ã¹{ݵu׳rÛ³z޷เãº㻆㹅â¸zã¹zá³vݵvß¼}â»ã¶}Ú°vݲtäµ{ç¹~å¸wá³wàµxÞ²qÛ­nÛ°oá´ráµtà¶wÞµtÞ·vß·|ß´zÞ²vÞ°tÚ«oÕ«o׬jÙ¨kÝ­vÞ°xݳpÝ·mÜ­mÙªlØ®lÙ¯mÚ«jÕ¨hÑ©g×­kÙ­nجmϧe΢bØ®pÞ²lÜ«hÜ®pÜ«lÙ¦cÞ®gá±jÜ­fÝ°oß³uÛ®qܬhÜ­iÙ©mÚ¬jܱnܲuÞ²uÚ®nרpÚ¨kÙ­fÚ²pÙ­qÙ±qÞ´tß´tà¶tãµzàµzÛ°kÛªjÙ¨oÒ¢eÑ¡_Ö¨fÙ¬gÝ®fݳpÛµuݵwݵ{Ü´xÞ¸{Þ¶yܲvÜ°uÜ®rÜ®qÞ¯wÞµu߶và³{Þ´uÜ·vÞµzà¶wß¹yݵsÝ´mÚ´sÚ³tÛ°kÚ±mÙ¶tÙ±rØ®sÔ®pÖ¬oÚ®rتgרlÝ°r×°rÕ¯xÛ²vܱyÞ´ݸzÛµ|Þ³~á¶|ã¼}á»{߶~ÞµƒÞ¸†à»ß¹{Û¶vÛµtÛµ}Ú¶yÛ¹xÛ½~Ú¹|ÙµuÛ¹}Ý·ß¹„àÀŠá¼‚à¹|ض{Ù³xÞ¶|Þ¸~Ü´uÙ²xÖ¸|Ú¸{Þ¸}Þ»{àºvݶxÚ³qݵtà¹uÞ´nÙ²nܸmÞ¶sÝ´xá»|㼂޻€Üº{Þ»‚࿃ݶyÞ°uâ¸|߻ص׳vÚ¶qÙ¶{Þº€Ý»Ú¶{Ý·}Ý»‚ܹ‚Úµ‡ÕªxÖ±oؼ~Û¹ƒÜ¸~ݽߺ~à»}à¾{ß½zÛ¹xصuÜ·yÙµyÕ³zÛ¸}Ễ㾀à¼{Þº}á¼{ÞµxدyÛ¶vÙ°tÜ®râ»tá»zá¶{ÞµoÛ²mÛ²tѨiÇa̤gÓ­rÙ´vÙ°oÖ¨lØ°tßµyß´}ܸ|Þº{Ú³v׫nÛ²uÛ®rܯrܶsÙ±lØ®nÙ±qÙ°nØ­n׫tПeÈ–VÏ¡XÏŸ\Í™VÕ£\Õ¢fÕŸfØ¥dÔ£_Т^Ï¡]ÒŸ[Ö¢[С[ÍŸXѤ]Ó¦cѤbѦ`Õ¨fÛ¯lÞ¶mܱnÝ°nÜ°l×­gÔ¬`Ö«]Ѩ_Ë£\ͤbÒ«hΨeÒ¨g׬hÒ©fЩeΫcЬeÖ­fÑ©eÑ®q×´qÙ²oÞ´wá¹tß¹jÖ°ḑcЫaͧ\Î¥gÜ´pÕ¬dТbجjÔ«kÑ«mÖ­mÓ¨lÒ«jÒ¨fÐ¥dÒ¨kÕ¬kÓ¯nЪeÈšR°ŠWæ¿~åÀ€å¼~ä¹wå»xç½vâ¶sÛµxã·zê»|ä¼}å·tçºuã¹xã³uéµvç´uä®rß®oÚ®nß³sæºwæ·wâµ{å·xß±wÙ«sá³så¹wâ³oæ´oé¸rã³tâ°uå³ræ³rå²vä³wä¸wäºzâ·zä¶뽆껅êº|í¿yê¿~ê¾€ê½{è¸yê·wë·{æ²tà¬eÞ«kà³væ¸væµvå´sã¶oæ¶vê¹xç·rå²xåµ}ä³qã¬mã¬uã±tá­ná­râ¯uß­rß­sá²xß³xá°vâ±vß°ráªrâ®yà±vâ¬ká«qá­yá­pÞ©gß­kܯpÙªuÙ¬sÛ®kÜ«mتqÝ°sÞ´vàµ}䶂㶂ã¹~åº|â¶wáµt߶xà¶{â¸~ä¹{㺀㾅æ¼~â¸xã¼zâ¹}ßµ€Ó«vÈžjÖ¬xݲzÝ´xå»zݲxܶ~ä¼~ä»|ã¿ä½€éÀ„çÄŠé„꿂潃乀߷~߸yÛµtÜ·z待踇ܭyÏ«pÒ²yÙ²yßµ|㻃佂㾃á»~á¸}â¹}ß´uÖ¬oÔ«oÕ¯oÒ­qدwر~د|Ü°yÛ´yà¹{ã¿á¾}Þ¶xÜ´xÙ±|ص{Þ¾zà¿zá¾{ã»{â¸}㿅潆ä·zäº{⼄äÀ…èÉ߼~Ú´yâ»åº{á·wÞ¸x߶xÜ´yÜ°qÛ°rݺ~ç½æ¹}Ü´và¸wæ»zã»~á¼{Þ»tݲs׫lÕ¯mÙ¯rܲ{á¸xá·táµwÝ­pÕ«lÑ«kÔ­lÔ°iÒªfÕ¬uܵyÞ´tÚ°vÔ°uÔ±sÚ³tܲrܲuß¹y׳mÌ _Ó©gݶlÛ®kÛ¯nÝ´rÝ°rÝ®oÚ°lÖ²oܳqà²rà³wâ³xÞ²qÝ°sÜ®mÙ°nÛ²sß°lÞ±qÞ±rßµs߸wÛ´qÛ²qÜ°vÝ®kÝ®eÕ§kÏ¡jÒ¥dا]Ý©dÞ¯oرlÙ³nÙ¯nÚ­lÞ°rÙ°xÙ²vÙ¬hѦcЧfתhÚ­lÝ´qà¸yà³zà¶xà½|Þ¿}ß½wÛ¯pÖ¦nÖ¦jÓ¥aÔ¢_Ô¤dÑ«gÒ¦`Ó¡]Ï\ÏXÏ¢aÏŸ`Ñ¡]Õ©k׫o×­qسuÙµtܳuܶÚ¶|ÛµvÝ·zݶzݳvÚ²uÙ²zܵ|Þ¹{ܸ{Ö²tÕ±pÛ²{ݳ~Û´xÙ¶{Ú¸~׳sÓ«kÖ®sÛ·}à¿~à½}Þ²zØ«pÑ«kسvÚ³rÕ«m×­uدvЪlÓ°pݺ}ݼ‚Ý·{Ù²sÙ¶sÚµvÖ¬jÑ©fÕ®rײnÖ¯rÛ±yÛ±vÛ´tÛ³wÛ³~ß»‚á¸zܳxÝ·‚߸ƒÞ»|Û¹vݶ{ܺÞº€ß¸Ü·zݶwÜ´zÙ²rرrÖ¯xÙ²{ܶ}ݺ|ݵyݳ}Ù¶yÕ±pÙ²}ܵxÚ´rÚ¶{Ú¸}ܶ|ܲzÜ´{ß¼~Þ¼€Þ·‚ἆåÀ‚ߺ}ܸyà¹vÙ°n×°mܹpÛµqܲxܲtÛ®oâ¶yÞ´vÓ©jÓ¯kÕ¯pÛ­wÛ¬wÖ«mÛ­t߶yݵvÛ°wÖ­lϤaÇ™ZÉ£^ѨjÙ¦kØ©dУ_Ò `Ö¦cÒ¨cÒ¨hÖ©nÍ›_È—QË›TÍTÒ£^Û­eß±eÛ¬hÚ©bØ©`Ѧ^ͦdÖ¬fÚ«dרaÖªaØ­iÛ³pݳoØ®nدpÞµrܶoزjØ®qÝ­tدeÕ´cÚ¶nÛ³jÔ«eϧdͨcÑ«jײpÓ±i̦[È¡`È fÒ¦eÖ°gÔ°hÙ²jÚµpÛ´tÞ¸tß¿|ܹtЬmΧnÕ¬kͨYŸWЪhÔ¬eΦ`ÔªhÕ¬hׯiØ®mÓ«nÕ®q׫iÓ¥eѪqÕ­qÖ«mË£`–Q±Š]漃뺆鼂ç¾{è¼~繂â·và´tå¶{å¹å¶á³|ã´zè·zæµyè³uç¸{åºyè¸xã¸z߶y潃ëÀèº}è·„è¹{â¶sæ·sé¹vä¶ræ¶réº{ã¹tà²sæ²vé¹~å¸äµ|ë¹뿃æ¼{ä¶yæ¸ê½î¹}î¿ëÁ‡é»ƒç¼zá´yá³{è³xè°vá®tÖ°vÚ³ã³ä¹{ç»væ³xæ´vç¼|ê¾€è¸}ë¸ì¹~å°xæ²vç³vß°vâ²wå°uâ°rá¯rß®oá¯là¯mâ¯là­hß­jä±rä¯uâ¯sà¯ná°nâ±kà­gÝ«lܪfÞ¨eܨdÚ¦aÚ¤fØ­wÚ³vÞ¯r߯zÞ¶⹄ീܷxâ¼väºvä¸{ä¸|áµ~โá»äº~æ¹zã´}à·ƒà·{à¯uÕ¥mÌ¡hÛ³vá»{Ù°nÚ²oܵxâ¼}æ¾å¸„漃߶{â¹~èˆ过ç¼|å¼~㶀á¶zݶxÙ²vÞ»ƒêÈè¾ã´zݱyÖ¯vÚ²z⸀ྀãÁzãºxÞ³~à¶~æ½~⾄ڵ‚Ñ­yÏ«qѨnÒ°pÚ·{Þ´~Ù¶{Þ½{⾀係⻀ܷ{Ý·yܵzܺ~㼂ãºà·ƒá¹}â¹~ṃἀ༂޺†à»ä¾æÀ‡ã½†Ýµ{Þ¹|à¼~ßµxß·xÞ¶{Ö¯tÕ°oÖ²pÛ¸zäÁ…⾂ܹ{á»}径㿆⹂ݵwÛµqÕ±pÕ°rÛ´wàºxß¹}á¶â·àµ{ÛµrÔ³rЭqÒ¨nÖ¯qܹt߶zá¸ß»Û¼yà¹{àºzà¾và¼wÞºvݶnÒ£eË¢oÖ±uÚ¯oØ­vÞ¶~ܵvÙ°sá³uÞ²nܵqߺ}ໃ߹~Ý·}ßµ„á²}ß´xá¸yâ·yÞ´wݳyà³uß·pܲpßµsáºsÚ²o×®iÙ¯nÙ©sרmÚ«nÞ²rݲrܯnÞ±jÚ¬hÔ§dÔ©g×­sÙ¯pÔ§bÌ™^Ëœ\ΤYÒ¤`Ó¥dÕ¥eÝ­pÞ³uݳxܲtÛ®mØ©dÓ¤`ÏžcО`Ï¡XОYÏžaÊœZ˘SȘVȘ[ЙXÐœWÑ¡`Óž[ÒŸbÖ¬qÙ±wÚ²tÛ³xÚ±{ÛµzÞ»Û¶Ú°sÜ°oÛ´qسrÚ¶wܺzݵ|Û²€Õ³xÖ¶uÛµtܳyÜ·}ݺٳxΪoΩmسtÚ¹~Ù°uÖ©fЪgÕ¯mܲvÕ¯pÖ«p×®xÖ²uÑ«oׯr丂á¹Ú¸tÝ´xÞ¸€Û¶|Ù±tÕ°rÕ±uÕ­xÓªsÕ°qÕ­pÕ¬rÔ«tÖ¯tÜ·sݵsÙ°oײrÚ¸Þ¼„à¸ßµݸ}Û·~Ú´{Ú²sÛ²y×°xÕ°p×´vÚ³vܱ{Ý´„صzÖ±sÞ²zܱx×®qܱrܳtÚ²xÚ³zÚ¶|Þ²vÝ°rÚ²sÚ²{ݹƒÞ½€á½‚㻄á¶~߶yÚµuѪlѪkÖ©lÚªqÙ®rÖ«pØ­tݶyݳqÚ¯kܳpÚ¯pתmØ­rתrÙ«qܳmÞ³jÕ¬fÉœY“W¼ŒO¿’TË ]Ò£fÐdÏœVÏŸZÏ¢bÎœZÐhФhÍžSËœXÏždÒ¢bÕª^×±iÛ³kß³iÝ°rÚ¯rÖ­eÖ©iÙ¯lÚ´gÕ«gتhݯkß²sàµtÞ¶pÙ³qÙ³rÛ´uÕ±yÒ«tØ«pجp׳rܶ{à¸|ßµqÖ¬gͨdШjÓªkͨfÇœYÈ™UËŸ[Ó¢cÖ¨iÔ¬jÛ°oà²tݳrÙ¯nÚ­qÙ±nЬhȤgɧjͬkʤhΤkΨdÍ¥bÓ©hÕ«jÓ«o׫mÕ©lÔ«l×°bÕªgÕªkÛ®tÙ°{Ñ¥hÍš\°’cê½|⻀㻇åº|æ¹{æ¹â¶tä¶væ»~ç»~縇á³{á°rè¸zéÀyè¼zè½{å¼sç»zé»}è¹{뾃ìÀƒìÀƒìÀíÁƒì¸xé¹{滂è·yçºtç½|å¸}ãµx黀ë¹ç¶zå·~ç»{í½vê¹ã¶zäµyêº{ë½zì¼~é½|æ¼yæ¸}á´xà´tå»zâ¶vÚ¯nÙ±vÞ¸ä»|èºuå»tã¹sã¸tè½{ê¿~éºzç¼}ç¾æ¸}æ¶yä¹~亀æ·zä²yæµ}äµwâ°qâ°sá²rã°vã°sà¯mã¯læ³mã²pã°rç¸vå¹tá°rÞ«rÝ«iÞ®hÝ­dÛªeß­uá°zà°xÝ­rÚ«nÞ¯tá¬sÝ«nÝ®oÞ°qß±rà¯xà­xßµqà¸uá³{à´{à²}ß­yÜ­t߯tÚªkÍždÒ¦pÝ·zÝ´xÔ¬uϪjÓ©pâ¶}çºvå·{嵀ܪtÙ¯uå»|ã¹{གã¿á¶zá·ݵ}Ú¯vá¼€æ„漀åºå¹à¹ܶ€Þ±{â¶vß¼xß¹yߺzÞº|乂濉㾈ٰuÍ¥h˦oÖ®wÞ·€Þ¶|Û³tÙ³xÜ·|Þ»Þ¶|ܵ޸߳}ß°{á·à´{Û¯vÙ´}Ûµ{Þ¶|Ý´€Ü²zݳzݳzݶzÞ¹‚Ý´~Ú°xܱuÚ³tÛµ~Ü´„×­vÑ©kЪhÓªk׳zà¹{ݸx׳yÞ·}ݼ€Ü³~Û¯vÕ¯o×®rس|Ô¶xÚ´zṃâ¼}à»|ຂẃá¸yÚ²sЬt̨lÓ­uÞ¹{áºxá¼ß¾ƒßºƒâº‡ä¼á·uß´~à¶Þ·zÕ±vѪsÔªuÔ¯uÙ²tà½~à½{ݯoß²qá¶sݲvÞ³}㻂⻀á·}㸀ã·ã¹㻀æ¹~ã·{Ý·}à¹zã²vá´vã¹wâ³{ܳx×°oÛ´và¹{áµvÜ·rÛºtàºsÞ»sÚ¶qÖ­lÕ®iÚ±nܯuÚ°sÔ«pËžgÅ›_̤fѨiСdÍ fÒ¨pÚ¯n×­eקcפgÒ¤gУ_Ó¦^Ô¨gÓ£aÍ [Ë¡dÍŸ]ÉœTÊ›YÌœ\ÌŸYΟ^Îœ^ǘRɘSÔ¤_Ö­jÖ¬kتrÖªxÚ¬nÛ®iשhÖ©i×­tÚ­xÖ­qÓ­oÖ¬mÖªrØ«xÖ±uײuÕ«tÒ©vÙ­~ݱÙ²vÒªqϦsÖ­vÙ´yÕ¯uÕ¬sÖ±tÙ·uÛµ|Ú°zײu׳vÚ°uØ«uصÜ·ß´yÞ³uݶyß¹|฀޸zÜ·wÚ¶~Ö°oѪgϬlѬjÒ¬nÓ¯tÓ¯rÕ®qÙ²tÞ³rÛ±uÕ³vÛ¸vá¸vÞ¸zÚ´zׯuÓ©rÓ§j×­j׳sײuÖµt׶rرoÙ´vÔ®rͦoÒ©tÙ­rÙ©n×­mÛ²j׬iÓ¬qÕ¨oÓ£fÓ§mÕ©oÕ­mÚ±uܲtÚ²vÕ«pÑ¥eÕ¦iÔ¥cÌš\Ë™^ΟZئcÚªfÓ§bÖ©eÚ«bÔ§aÖ¨iܱpÖ«gÒ©cÖ«cÔ£bУ`ѧYÐ¥^Ë¡X×LÂO¼Q¿‘UÏVÔ¥WÓ£ZÒžWÒ£^У[ПSÏŸWÍ ZÒ¢ZÖ§`×®jßµqß³kשiÔªpÛ³rÝ·rܳuÚ®tÕ²rسpÚ°nÑ«cѪhÙ®nÚ³qÞ¸wÞ¹rÓ°hÕ¨hÕªgΨdÈ£eÇ£eË¡dÔ©iÚ¶tݳzÞ´wÞ²rØ«kЧfÌ£jÇ aÆ^Ï£eЧ`ΦeѪjΧdÒ¥h×±nزmجpÔ¬kÒ©hϨgÈ aÉŸcÍ«jÌ«fÊ£_È¢`Ì£]Ò¦\ѦfÏ¥hÕ§hÕªjÓ­gÕ®fÙ°mÚ®tدtÛ²mÚ¬dÛ®f¹œgå¾åº†á¸„á»}ä¹{è¹軃澂必滂ç¹â¸{Þ²xà¶~ä»|ç¹vçºvâ¶tß´wã¹€ê¿zïÅñÊïÁêÂ~ê¿€í½{ëÁ~較é¸~龀쿀î¿~ëÀíÂ„í¿‚ê»}ì¾€ìÃíÀï¹ë¹}çºzê¿ìÀí¿}콃⻀佀èÀ}ç¿{êÂ…é¿‚ã³{㵃龌齀è¿{í¿ƒç¸}å¼{êÁ€ìÁ„ìÁˆê¿„ëÀ‚ì¼ç¶z߶uãÀvê¿{ç¹~ê¼€ë¼æ¼|ãµuáµpä¸vêµzä¯vÞ®pâµvã²{ß°vå¹xåºyß²rà´pß±rÞ­kà²pã´{å²{à²xà¯yá­rá±vâµ{à´qà°k߬oÝ«qÜ«pÝ®wà±zá¯râ²uà±yß°wß²uß°qݬjÚ®iبdÑ¡aÔ©gÛ«rÞ¯rÚ®lÑ¡dÏ¢jÞµ|ä¼}á¼z亀à±tرnÛ¸wÞ°yáµ~ã¸|á³zá¸ݳtدtݹ€á»€â¹zå¼zä»}ݸ~ßµuã³vÞ¸}Þ¸}ã¶x߸z߶~â·tã¸z溋á¶ÔªoШrײyݳ|ݲwÙ°oÛ³rß·tßµuݸyÛ³yÞ²xá¹|Þ¶|Û±{ܳ}ßµ}ܳܵ}ßµyÞ¶ußµuà¶{ݶ}ܶzÞ³{à³}Û±vÙ­oß²wà´zÚ¯wØ­tÔ­xѬuÓ«lÚ­uß³}Ý´|Û²uܶsݸxܲvÙ²oÖ®oÙ­{à¸ßºzݶuß»zÞ¾„ܹ޶u߸zß·à¶~ܳuÔ¯mÖ°zÚ³…ß»}á¹zÛ·{Þº|á¹~à½ݶzܲ{ߺ}ݹ{Ù±|Ó­sѪoÔ­u×µ{ß¾‚âºzÙ³uÙµ}߶}ß·|Û¹‚á½ã¿~Ý»{Ý·vß¼~ß¼{à»wá½…ß½†à»á¹€â¶~áµãºáº{â¸yã¹yß¾~ä¿~äºwÞ¼{ß¹{ßµxݸwÞ´nØ­lÖ­nÚ³tÚ²vܳoÞ¶tرuͧnÓªqݲoÙ°jÔ­pÚ°rÞ°lØ«hÔ¦fÙ©dÚ¯dÖ¬jÕ­mÕ­nѨhѦhÓ¨iѨiÒ¥dÒž\Ë`ФfÖ¥jÓ eΞ[ΠXÑ£fÕ¤jÔ¤`Ô¦`Õ¤hÒ¡eΟ^ΟaÐeÕ¦rרnÖ£dÒ¥fÏ¥hÔ¤gÖ¥mÔ£kÔŸhÑŸdРfÓ¢jÒ¨jÔ¯oÔ¬nÒ¤hÕ­tÙ³vÚ°oÚ°tÛµzß»yà¹xàµwÝ´xÚµtÚ²wÙ´rÚµtß³{à¶yܸܸ}Þºyßµ€Þ¸‚ݻ޹~ÛµxرtÖµyÕµxØ°vÚ²zر{Ö±zÛ¸€à·~ߺzÖµwÖ¯yÞ¹}Ù»|׳}Ú¬vѧnϨwدwÙ°sÓ®uÖ²{زzÔ­qÕ«nПdÅ–YÍ ^Ò¥dÓ¢gÕ¤iÕ¥hÕ bΠZÏŸ\ÑœWÏšVÓ£bÔ©cצ`Ô¢cΡ_ÏŸ\Κ^Ó¡_ÏWÆ”SʘXÍ›TÒ¢_ئmÔ¤bÓ¦\Ö¤[Ó¢^Õ«f׫eÓ¢cÒ£jÖ£dÑžXΠTÏœZÐ^ПZÉ•QÅ–KÀšRÁ˜]Ì¢`ׯgÖ­gÔ¨gÖªhÖ­fÔ«bÓ¦cÖ¥gÙªgÛ¯hß¹væÄ€â¹tÙ­eÒ¦cÓ¡gÖ«iØ°pÓ¯n×´uÚ¯uÖ§rØ«lÖ°kÕ²lܶvæ½{åºuØ­mÖ¯jÚ´lÔ®jʦeÅ¢aÈ¡`Ó¬lÙ°uÚ³rÞ¶râ¶nÞµsدx׬pÒªf˦b׳pß¹sرf×°jЦjÇ¢eЫiسn׶lÖ²j׬nÖ¬jЩcÌ¥g׫nÖ¨hÍ£cͦjѧhÓ§dÔ©gÓ¥dÕ¦hÖ¬kÖªnØ©sÙªkØ­dزhÚ³lÚµqá·rÄžn濃éÁƒå»{â»z㸄å¹~ê¼vç»|æ¿è¼ä¸}à¸vÞ±kß­xá·{ã¼tå»~ã¸~â³zâ´~澄íǃíÃé¾~彂纂辂èÁ†éÁ„êÂê½€íÀïÅ‚îÄ…ïÄê¼æ¸ìÀ†ìÂŒêŇíȆí‡ëÁ‚è€éÁ}ëÀ€êÂ…èÂéÀ…漇翄íÆ„ìÆ…ã¾ä¿~ìʼnéŠ翀éÀèº|é¾êćíƇîÌëÃæŃ仄߲|â¼~æÀ㽀潂罃ä¹å¸vã¶|å¸zå¾xá¹vÜ®oÞ«pÞ¯rÚ²má³rã³uݱxáµ}å¶tâ²pã·yæ¼}ã¼yáºzåº}å¶一è¼zç¸våµuãµqá´râ´wä³yã¶{âµuã³sâ¶s߸uà¸vá´lÙ©eÙ¨eܬlÙ¨mܬmÝ­m߯rá¯sÕ¢fÍ¡eÖ«n߯tß²vß´wܱqÕ¬qÙ¬qجr׬sÞ¯xßµ~ݸ€×­vÙ«z߶~àµ|ೄ㹀ä¹{â¶uá¶sà·{ß³vâ´tå¶yâ¶yá¹ใä¶yâ¹|ß¹ܱv׫m×°tÛ²}ݯ~ݲxݱvà²~á³Þ°wÜ°{ݹ~â»{㹂à¶ß³yÞ¸|à·~Þµ}Þ¼}á»xãµzá´€á¹|ã¹yä»|ä¼~á·zà¹zá¼~á¸{ß´|Þ¶{زtÓ«kÒªkدsÞ¶uá¶vÞ³rݶrá·vß±pÛ°qÛ±sÚ®rܱwݶ|á¸~㷀ܶ‚Ü°yܬsÚ´yÞ¹{à¶{Û³{Ý·{ݶxÚ²vݲ{Ý´vÚ¶{Û´{Ú¶tà¼zß·tÚ°uà¸~ເݴz×°qÓ«jÓªqÙ´{ß¼€Ý»„×µ}×µvÚ¶wÝ´}ݸyÞ¼€àµ„Û²zÔ±rرuÚ°{ܯ|ຂ޽|ÛºxÙ¸wÜ´wÝ·€Û¼}ܼ}ß»~ễἆ຃߸ƒà·ß¹€Ü¹vÛµrÖ®vÕ­pÖ³oÚ´z߶~àº{á¼~ÞµzØ°oÛµsà¸yܸvݵsá³tß²r׬oÕ§mÕ¬oÔ®mÖ«gÒ©kΩlЬkÔ°nØ´uÙµt×­oÖ¨kÓ¨l×­jÙ³jÖ®iÔ«dÕªjÕ«oÕ¦hУeЧgÔ¥aÏ\ÉZÌ£]΢fТnÑ¡fÑœ_Îœ_Êœ\СdÔ¢gÎœcÌeÍ›bÏ–WÏŸZÏŸ]Ï cÍ£cÌž]Ñ¡fÔ¦gÔ§c׬mײpܳrݱuØ°rÕ±qÖ®rײrÖ²p×­qÙ®wÛ³t×±tײzײxÚ²uÛµuܵvÞ³Û³€Ü¸{Þ½~ݵzÙ³vÖ·t×±rØ°rݶuß¹vÝ·{Ø°sϤjÓ¨sÕ®uÕ­o×­pÓªqÕ°pÙ³sÒ©nΧlÔ­nÓªkÑ¡jÑ›fÇ•VÃ’PÏ—YÑž]Íœ[Ñ\Ï¡dÐaЗ]Íœ_Ì™UÌ–WÑ dÕ¢dÖ¤aЦ_ÍŸVÏœUÓ¦XÕ§XÍœTʘXÉœXÉ›WÑ¡^ÕªeÕ¦cÔ¥]Ó§cÖ­mÙ±oÔªhÔ£bØ aÕ¤bÑ£_Ñ£_Ñ¡bÓ¥cÙ¬hÔ§eÊž^™V¼™XÈ£aÖ¯jÕ¯nÚ°sà²xÛ°sجlØ­iÚ±mܶtÛ¶sàºzçÂâ¼yÚ²lÕ¬bÑ¥gÒ£mשq׫mÖ®hرoÙ¯tÚ¶uݸsà´tà·rÞ»uݺwÚ³lÙ±mÖ±mÖ°jÙ´sÔ°oÔ³oÙ¶vÙ¯rÚ²pÛ¶uÛ´rÜ´sÝ´pݵjײhÔ®jß´ná¹nÛ´kÞ²sÖ¬oË©eÏ«iÖ«mÞ«lܯoÙ±oݲqÙ°mÖ±gݹvݶxׯoÙ³sݵtÙ­o׫hÙ­dØ°iÕ­nÓ¨fÔ¨aÔªhÕ¥kСaÕ¨jÛ­rÞ´rÁkèĉëÄ滉޶߶{âº~å»æ»|æ½廃çÀ€ç¿xä»{â¿~äÀ~æ¼~éƒéŇêÁ~â»ä½‡í¿Žëºˆè¼é¼é¿…íÄ„ðÈ…ëÉ‹íÄŽðÅŽïÈ‘ðÆŒðĆðÄŒê‰⻂èÁíÆ뿈êÁ‡ëćêˆä¾èÂëĈêƈéň丄à¸}æÀ€ì‡êÁˆåÂ…åÁêÄ‚ëÄ澈æ†éÁ€éÁƒêÄŠèÁŒèÂŒêÅ„ëÂ꿆帅á¶}æÀ{è½~ç¹~ç¼â¹}âµzá·xâ·zå¸}ã¸}ã´yß­n×®kÙ°lܱrÜ°tܬsÜ­nß·uæº~ã²y߶wã½䶄å¶}激乀â¸|â¼|ä»~æ»{é¹{è»|åº}纃é¹|ä³yå·xè¼yæ¹€æ¹è¸wà­gÖ«lØ°vܳxÞ³uá¯oä®rß©m×¢^×£bÖ¤eÕ¦c×®oà²uݪnÙ¥jÛ©kܬrÞ«vÝ°rܸuÙ±sÑ¥fÖ¦nÜ«zÜ®sÚ°jÚ²xà³á±w߯wß±zÞ´}à³{âµuá°sÝ­|߸ƒã¿ä¿~ã¼}âµyß±zâ¶zæ»vâ¸vßµuá´rá¶xâ¶yá´vÞ²{ã³uã¶wᵂṃâ¸|â¹vâ¼~ⶂᴀã¸ãº}á¹{ä¼}â½}á»á¸‰Þ¸~â¹uὃ߾}âºqáºtÞ¸s×®pÕ¯wݺzâ»zá¹xÞ·u߶yá¹vÞ·rÞ²và¯pÝ®oÞ²yÞ´yã»~ã»~Þ´rÚ®nÕ®sÚ¶|à´{ß³~⸂å»}à·xÜ´rݳuß¹}Ềâ´}Þ´yÞº|à´zݱuß¼v߾Ṅ᷃ܳ~Ø°vÚµyໄළ߸}ݵvܲwÛ³}Ú³€ÝµuÞ±tÛ±xÖ°uدsݱwÛµ|ݶ~ܳ€Úµ|Ú´sÛ²yÞ¶|Û·|ܸ€Ü¸xÛ¸xà¹}ãµ}ßµ{Û¸yÞ¹zá¶zÞ»xܸxÚ³wÙ¶yÝ»€ßº‚ß¼~߀ݻyÛµuÞ¸yá»{â·wà´s߶wÛ±uÖ©jÒ¬jÔ¬hÔ©iÔ­rÔªrΨrѪrØ°sÞ¹}Ý·}Ù¯pÚ²qÙ´tضrÞºvÚ±lÔ©iܱvÞ¯tÕ¨dبeݬhØ«fÕ©cΣbÍ¢dϧfͨnÏŸfÏ›`Ë`ÌŸaÒ¥cÖ©bÒ¨eЧdΡ`ÉŸYРVÖ¢dѦoÏ¡_Ï›[Ð_Ë™\Ì—`ОcÔž`Ö£dרbÓ¢bѤfÑ¢dÔ¦jÕªjÔ¦mÓ¦nÕ«pÕ¨qÒ¥nÖªqØ«uÓ©nÖ¯mÙ±vÛ±xݶtÞ¶tÚ²uÚ¯p×®pÒ­sÕ¬vÚ²vÛ¶wÛ³{سwЧlÐ¥rÓªuÒ¨rÕ«tÓ«pѬmÓ®pÏ¥jÌ›aÏ£fËŸdƘXÄ—UÄ’UÅ”QÍ™UΛXÈ›VÏœSÑžYОaÒŸaѤdΞ\Ï›\تmÝ°rØ«pÕªiשdרbÖ¨dקiÓ£bÑ¡[ÎœXÊ–VР]Ö­eÛ¯gÛ©bØ©eÞ´nÞ³lÚ±hÜ´hÝ°jݱwÛ¯tÖ­f×°kÛ·và»vá»oÒ¨^ÃœY½šV¾›ṲiÔ«oÖ²tÞ¹zÚ²sÔªoدsâ¶sä»yâ¼{â¾}ãÀ{Þ¶rÙ®sÔ­kÔ¬iØ­mÚµpײsЩqÓ­mرmݯuàµ{Ềà»}Ý·rÞ¸uÞ¶xÛ²oÕ«hÕ¬vܶ}ÖµtÔ²tÕ¯rÕ±rضrضuÖ­jÖ©fÛ±lÛµg×°cÖ°kÙ³rÛµpÛ³qÜ´oÕ±mЫkЭiÒ­fתiÜ«mݯràµpá¶nß³qà³tݳpÛ¸qܸuÙ¯lÙ«dÖ«bÓ¦eÔ¤^Ó¤WΞV͘RΚYË™XÈ–VÏ›ZÑ¢bئf¹”[èÀ‡èÀ‡á·~ß´{ܱܳy߶x仆彆㾀æ†åÂ…å¾è¼…èÀ‹ì¾ˆíÀ‰ïÉŽñLJíÀëÀ‰ìŒ鿇뿆êÁŒíÆðÍî΋îÍñÌ—óÊ™ñɘðÌ“îÉŒíÉíËŒèÂæÁ€êÆëÁ‚쿆ìÁŽëÉëňîĆð‰ìˆéÀ„⸆޶滂齃éÀ‚êÄçŠëÄŒêÁƒçÀ†êÄêÄŒëÁ‹é¿‰èÀ†æ¾‰é¼èÁ~äÀå´zÞ®sá¸|躆湆㾃乀âµzáµváµ|ã¹}ä¿{伂åµvÞ¯hÖ«nܳxá¶tÝ°rß´yæº{å»{ã¸zä·|ã¸ãµ{㵀幄æ¸~â³{ݱvÛµxâºè»€é»wè¼|輂缀麀껀æ»|ãµyæ¸~꾃á³uÕ¦nÖ®q߸xßµxà±lá³qÜ®nÚ©jÞ­oà¯nÛ¯qàµyè¸tâ¯nÛ«kÜ®jÝ°pà³lá³oÞ®vÕ¡dËšYÕ¦iÙªrبnÚ¥jÛ¨gܯlÙ¯vÚ®xÜ«pÛ­rÛ±vÝ°sÛ¯qÚ°oá¶{湂å¶{áµuß³vß³zâ¸{ä¹yáµvß²zá´~ã¶{âµzÞ²xÝ­qÛ«hÙ«oÚ¶€Þ¶yÜ®pÚ®qÞ¯wß°yá¹zä»{ä¶wâ¶tâ¸zàºzÞµ}ã·€ã½{Þ¼yÚ¹uÝ»wä¼æ»{â¶xÛ±{Ú·{ß»{à¹{â¶â´{Ý·vÞ´{á²yà¸|â»}ãº{á»áº„áºàº|Þ·zÜ´yÙ°wÙ¯tÞ°ràµzểâ½ß½|Ú·xß³{㹃â¹záµyݵ}Ú´~ÙµvÞµxã¶}à¼{ãÂ}佀ݸzܶwÝ·xÞºx߶tܲrÙµtÛµtÛ·tݶtß´wÛ´zÙµvÙ¶vÚ¶sÞ¶vÝ´ܳzÙ°tÜ´zÜ·pÛ²sÞ´xݺoÞ·tÞµyÛ¹zàµ}ݱuÙ±pÚ²xØ´vÜ·s߶|Ý´{Ü´uÚ¶xݹ⻀â»}Ḁà¸~ݶuݶ~Þµƒà¸~ß»yÚºxÚµuÚ±hرmÚ±uÙ²sز{Ú²{Ù¶vزo×®nÛ¹{Û³Ö­yÚ·|á¹{Þ°sÛ²pÙ²nÓ®lÛ¸xá´|ß±sݱpÛ¯uÛ®pÞ°mÝ°mÔ«iѨiÑ©hЩiÔ¦gÓ¥gÏ¥hÔ¬pÚ¬vÚ®tÓ¬pШjÔ­nÖ°qÙ­pÜ«qרhÓ§gÔ¨hΠ\Ξ_ТdΟ[Ïœ\Λ[É™[ÈšWÈœYΣeЦcΞ`ÌZÍžTÏ `ΧdË£`ΠcÌ£aÍ aФfÏ¢fϤhÒ­iÙ©jÝ®rدmÖ¨hÕ§kÖ«mÙ±r×°vÖ«tÒ¨hÑ¥hÒ¦jΦgÑ£eÒ¤eТeÍ¢eÍ¡bË›]É•YÅPÁ‘MÁJÇ’J˘M̘PÍ–VÈ—RÌ™TÑžXϦ]Ò¦aÔ£`Ì¢^Ëž_Ø©kߺxß³yÞ°sÛ²lÜ°hØ«iÙ¬fÜ­cØ­jÓ¨cÍ™TÊž\ЦdÔ¨kÖ­kÙ¯kÚ´pÚ¶rÙ­nÝ­nà³vÞºzݼtÜ´sزrÖ¶nݵvä»|سoУfÆ¡^µ“R·R×YΨfÔ±qÕ°sЬoϨjدnà»zß¼uݹtÝ»tرeÖ«oÔ­pÒ­eÒ«lÙ±oÙ²lЦjË¢mΨpÒ¬mÙ­q߸zá½~à¹~ݶwÞ·uÞ³pÔ®hЮmÕ±vÑ°sÓ­lÓ¬hÕ´sÛ¸xÖ¯nЫgÑ«gدoÚ¯jÖ©eÙ­kÕ«jÖ©lÙ«jׯcÓ«`ЩdѧgÒ¤hÓ«k×­hתhתnÖ«oÔªiÚ¬oتnÔ©jÖªjÔ§dРZÍœZË™ZȘRÇ–QÆ”OÇ‘LÇ‘KÄ‘OÄ‘PÉ›TÌ™TÓ›P·“R俅㺂àµzß³vÞ²sݲuÞ¸wä¹ä¶}âµz⺃â·å´~幂异å¹练èÀ…ëÅ‚ëÁ‹êÀ‰ìŃêÅŠçÉêˆïÈŒðÉ‹ðÈŠòËŽòÊ‹ðljðÉ“îÉ’íÄïÆŽîÅ‘ìÄíÂŽìʼnêņìņíÆ‹îÑí‘ëÆëÉçÀŠéÀ‡æ¼{á½€æÁ…ç¿…åÁ‹éƉìʼníƈëÁ†ê¿ê‘éÄ•èĖ濈ä¶xܱyܶ…乃ã¸{ã»㸄缉ëÂ…åÁ…æÁ‡é¿ƒå¶åµ‚异æ¾æÀˆæÄ迈ã´~ݳvá¸|å¼ä¼ä»å¼€æ½ä½{å¿|é½ç»{æ¼{ä»{一繂ã¶yܱz⸀꿀é¼é»‚êÁ轀꼃íÀƒê½çº缄æ»ã±uÙ¦p׫uà¶vã»wá¶}á¹z߶pß°väº}èÀuä»y軂ê¼âµqß³tá¶vÚ¯oÞ¯vè¶}á³rÕ£eÖžeÞ«mÝ­pÞªgÛ¦bÙ§mÜ©nÚ©jÚ¦jܨhÛªmÛ¦mÕ©h×­lÞ°rß®oÙ«mÚ±và´tà°q߯tß±uÞ¶wß³tâ±rá¶vâ¶}å·|ã¹wݲv׬vÛ°xݱ{ß°wÞ®yÞ®xÞ±xÞ²}á·}á»|à·záµ}â¸}߸xá¸väº~è¿~å¿|߸€á´zæ¸xæ¼~ãºyÞ³tÞ²yä¸}ãº{ߺà¹{ܵqÛºvߺyݸvß¹xã¹}á¹ã¹yáµrÞ¶tà·và·{ܳzܳuÝ·tà¸}á¸à¹|Þº|ݸyà¸yâµ}Þ±rݶlÞ¶xà¶yá·vܵwà¶zâº}ß¹{à¸zâ·|ß³zݱvÜ´rܳtÞ³vÙ³yÚ³vß´u߸xá»zߺzÞµyà¶wߺwݺxÞ»{ݺ{ܵtß³xÞ´xÞµvÞ¶zâ¸yã»{߸zß³vÞ³vÛ²sÖ°pÓ¬nÖ«pÙ´v߶zÞ´xÞ¶và»|ß¼|à¹|ༀߺ{Þµ|áµ߸~ܹ{à»~â»ã¸}ã¶{á·zÞºzá¾|⽀ᾄâ€äÂ{à¹vÙ°yܳ{ÛµwÙ²~à·}Þ¸vÙ²qÚ¶wÚµzÛ±xẀä½|à¹v߶yà´tÞ·và¹{ä¼xá¶s×®tÚ²yÞ¶xÙ²vز|رuÙ±tÞ·xÞµwܲ|Ù³z×µlÙ´mÛµvݵoß±mß²rÜ°nÙ«hÛ¬jÚ­kÒ¦dСbΠ^Èœ[ÇžaÈ¡\Ò¨aרgÏšZË–VɘZТcÙ¨kÊž`ËžYÔ`È’\Æ‘UÈ•UÈ•Wɘ[ÍŸ`Ð¥aÒŸbЙaÏcΠbϤeÓ¢dÔ aÑ¡eÎ`КYΘXË—_Ë™[Ì•WÊ“WË—QÊ•NÇOÅLÆ”RÇ“OÈLΙTÒŸWÒžUÏ XОUÒ [רbÙ®dÙ°hÔ¨cÇ›]Ë¢bØ°lܳtÞ¶t߶tÞ¶vß¹xà¶xá·xÞµsÖªiÍ¢cÈ¡fˤeШcÕ¬kÖ¯nØ°oÙ­oÕªhÔ¨f×­rÛ²tܲsݳuÞ°mÖªfÖ­pâ»âº}Û²mѪe—Yµ†G·ŽKÄ [˧eÓ­tÓ®rÌ«dЬhÙ³sÚ·sÝ´yܶ|Ö²hÖ­gÝ´sܱpÕ©lÖ¯pÙ°oÖ¨h̤hÈ bÊ hË£jÏ«hÛµsá»~ܺ|ܵxÞ³vײqÖ®qÙ°sײmÕ¬gÕ¨m׫vÚ°xÚ­nÔªjÓ­mÙ¯lÙ­hÙ­lجfЧbÒ§hÕ¥fÒ£eÒ¨gÔ¨dУ\ΡZУ^Ó¡eÒ¢cÒ¡`Ñž_Î]Î^Ó¢`ÑŸbÏcÔž\КQÉ–OÌ•TΘPËšNÌ–MË’GÈ”HÈ–UÍŸVÏ¡]Ì›]Õ£]½—eå·vã¯zá¬qÝ°mÞ¬uÞ«qÞ®tÞ®~Ý°{Þ³xÞ³}ß´yãµz彂ä½}æ¸zç¹|æ½}êÄ€êÀ€á´ä¹}ìÄ„íÇŒíňðĈïÂ…í¿ƒìÂ…êÂŒëŠëÃ…éÀ‡ìÂŒîÇŠìʼnìÂìÅéČ濄ã·â¼æÁƒè»€ã»}á¹â¸‚⺃亅乆濆çÁ„绂繃çº}â·|á¹|ä½âº‡â¾‚ä»ã³‚ÚªrÌŸjÔ³‚áÆá¹㶆侉åÃ迄湇伆俄濅åÀ‡ç»„躄漅潃濄漅ã¸å·ä·ã»~滀äº~á¾å¿æ½~è¿|ç¾{äºæ¹€æ»}é¼ç¹Ý°uÚ­vã¶å¿€äÀ~æ¾æÁëÄ}ê¿|澇羋æ¿å½{á²tÕ©mÓ®tܶzà¼~㺄ä´~ß²qß´rã¸~é¹{æ¹~乄丄Ḁåº~åµvתoÚ±yç¿€â¸rÙ¬lÜ­pâ´pãµs߯qÞ¬oÞ¨oÛ§gרdÙ¥gئnܬnݨbÖ¤cÚ¨jà­nÞªjÚ¥bÜ«mÞ¬oÛ¨fØ«nÜ®iݨaÖ¥kÕ¦lÚ¬jà²uã´yá¶zß³uâ®räµuã¹yß²vÛ®oÜ°qܲuÛ°vÞ²uÞµvß²vß²và¹wå½wâ¹xâ¼}äÁƒâ½€à¶qÞ¯qݱ}à¶~á´vÞ®tß²{ã¹~ã¸zß³vܳvݲrÝ®uÛ¯xݯvÞ°{ݵyÚ³v׳uÞ´pÞ²q×±rØ°qÞ°vß³zá·~ã·yá³rà¶tàºrà¶mÝ°qÛ¯tÚ±mÛ´qÞ³wÞ¶€Þ¸ß´{ßµzàµwâ¶zÞ¸{زuÛ¬t߬uݲvܳrÞ±xÞ±vܯoܲ|ݸ~á»{á·yÙ²uÚ³xàµ~ã¸~à»{ݸ{Ú³zÛ³vܶ}ݶ~ß´uàµ{à¶~ݳxÚ²vܲqÜ´rدtÔ«qÔ­oزnÛ³sܸsܸsܱrÙ¯nÙ±mݳyÞ³}Ú·xÚ·uÙ²oÙ¸yÜ»zܶxÞº|àºvÛ¶tÜ·{ß¹~â»|â½z㿃â»ß³xÚ³uÛ²pÚ­qزwÞ¶yݯsÙ®rܲsÛµtܸ{à½}à¼y߶|Ú¸}ܸzá¶}á»|äÀ€ä¸zÞ¶vß»|áºÛµ|Û´uܳuà·z຀߻|ß»yà·xÞ¶yݶ}Þ±zÚ¯wÚ´{ß¹uà¶nÚ²vÝ´yá´uÛ°qÕ°dѪhÌ¢nˤhÎ¥gØ®sÜ°pÕ¥cÕ£^Ñ¢_ЩhÕ¬kÓ£^Õ£cפbÏYŘX“N¾M¾NÀ‘SÈ•Y̘RÈ•PÇ”VÈ”UÊ•UÍ™VÏ[Î`Ì›_É–XÆ•QÉ™XÌœ\ÇšXɘYÊ—YɘS͘]Ï—]Î\Ο[Ì—JÐœPÚ¦bÚ¦cשbÖ¥`Õ¤cØ©kÝ°oÝ´pÖ­jÈ `ÅŸ_ѪkÙ¯sÙµqݶr߶zÞ¹}Þ¸{߸~ß¹{زqÒ©oѪoË¥kͪjÛ¶uܳvÔ¯lدjÕ«hϨhϨfϧcÓ­m×°pÜ°lÖ°rÑ®rÚ¶tß¹zÝ·xݶwϦeÀ—PÄ›XËŸ\ƘXѦfÚ±nЩj̦iÔ¯qá¶vâ³vÞµ{Ú¸ݵvã¹wâ»xܹtÙ¸uÚ´rÖ´rÑ­hÈŸeÆžbÇž`Ê¡kЬrÚ´vÜ´{دvÕ®rÓªpÕ­tÙ²tׯlÒ¬lШkØ­hÛ±jÒ¢]Î[Ï¥gÒ¨cÒ¦[Ò©bΨaÉœ[Î\Ñ¢\Ï ZÏ ^У^ÏŸUË•MÇ”MÇ’QÈ”MËšKÏ™R͘Q˘OÒŸ`Ù§fÔ¤`ТYÒ¡OÐPΠWÔ YÔœVÍžSÏžQÏœRΤYЧdÕ¨bѨYÙ­`Á™dæµjá±fß®jâ«mâªp߬oÞ¬oÚªlÚ­jß³sã´yâ´{à¹zà¼xá¼z侀轄é¼ê¿}ê»~æ³yçº{í†ðÈ‹ðɇîÀƒèÀ†èÀŠê¼†è¿ç»€ã¶~â¼{è€êÀëÀ€ì¿‚꼃ç¹}ã¹zà´|à°~âµ~ä¶{â°zã´~á¹ã¹‚輇깅軄濅㹃äµ~åµzâ±zᲂߴà´|á¶wâ¹y帀á­{Ö®zÝ¿Šå¿‡ãº…弃è»ã¼‚ß¼á¶äµá¹ã¼€é¿€èÀ羆èÀ‡è½„缇ç½é¼滄æ»yè¼纊彀æÁ龈껋迆ç¾}ä¹å¼ˆèÁˆê¿„é¼~Þ±pÔ¨jÛ°zæºç½…æ¿„é¿yç¼wåºvåµvé¶|ç¼{å¸}á²rجgÖ®qݳsß³vâ´{æ¶uà¶nݳsá´vá²wá®uã²w廀â¹~å¹€æ¶|ܬlÖ®pà¶{Û°pÖ­oâ¶wæ·yã¶xã¸xäºvã¶tß³pÛ¯mÙ©kܯtá¹vÞ°kܬgã²hã±mâ³má­pâ­yâ´uÝ®hÚ¨cÝ«fÚ«iÔ¢cÑš\ÒbÚ¨jÚ¦iØ«fà´kà°tß°tá²rÞ­tÚ¬oÙ«kØ­lܪkݪmÙ®mܬjÝ­sà°zâ´zß²vÚ°sܲsâ°qß°nÙ¯hÚ¨iجnÙ¬lÙªhÛ²vã¸yá·qá´xݯtݬvÞ®wÚ®pÛ¯oݪsÛ©sتnÚ­mݲvÝ°mÞ®lÝ­rÛ®oݱoݳtÞ®qÞ®oÜ­oݬpܯuÙ¯p׫nÛ­sÞ²qÞ¯rݲyá¶|ä¸yâ¶xÞ³vݲvà²|Ü°xÙ°sÝ®tݬvܯuÛ®rدtÛ³yß³{Û³sÚµvÞ³zÝ´nÚ²jÞ³rà¶xáµtß´tÝ°xÛ­pÙ­oدrܲrÞ¶uݹpܶvÞ²zÜ´sܶxÛ²{Ô¯rÕ«qÙ²rÙµoÛ²tݲxܳuÕ­oѪp×°sÙ¯sÖ¯qÕ¯nÖ©kØ©nÙ²sܺ{à»zß´pÙ²uׯtÛ°rÛµxÞ´yàº}ݶrܱk߶wÚ°vÔªiׯqدsÓ©oÔªsÚ¯tÝ·|Þ·|à·{ܹzص~Û´€à»{à¹|޸ἀà¾Þ»€ã¹€â»~ÛµzÞ´{à´yݵ{à¹yã¾}á¼ß¹xà¹xÞ¹{Þ¹xÞ¸uÚ·uܸzݸ{Ù´qÜ»uß¾zܶoÚ²kجoÕ¯oÖ²mÜ°uã¸{ߺvÜ´nÚ²mØ®lÔ¬iÒ¬dØ®dÚ²iײhЭdÉ£_ÇŸYÅšZÁ“WÁ—QÇ›UΚ_ÌšYÍŸXÉšNÆ‘GÐ[Ú¥hØ¥dЦ^Ì¡XÌŸZѤ]Ó¡_Ñž]РYΚVÍWÓ¦`Ó¤^Ô¥[Ô¦[É’HÈAÓ ZÖ¨gÚ«eÙ©hÕ¨iܲlݵtÛ²tÙ²kΧeË£eÕ«iÙ°uÚ³yÙ²u߶zå¼~ÞµwÛ¯mß¹yß»~Ü·qÕ¯jͦiέpܺäÁà»wá¶yݳp׬eЧdÆ bÈ¢bÕ­iÚ±uÛ³xÖ±r×®tÞ²xÞ¶vݵqÕ¬jË£aΡeΣ`ŘUÒ£fܳsÙ±pÕ¯oÖ±sÞµzà·w߶u߸ráºx异å½{á½yß»yܸy׶xÑ°rΦkѨmѪkͪiͪiÒ¬nÕ«qÔ¦nÖ¥jÕ¥hÕ«n×­gÐ¥]Ф`Ï¥^Ѧ\ÖªbÐYϘ\Ð_Ê™QʘPÒ£ZÏ£QÇ“QΘ]ÒžYÌ™UЛSÎœRǘSÈ—LÉ“LÆ’KÆ“HÊ–SÍUÒŸSÓŸYØ«h߶hد_Õ¥_פWÑ¡UÒ¢\צXÕ¤\Ó]Ó¡YÔ¡XÒ¢\ש`Ô¦^ΡcÕ¨c¸›[Þ¬mß°y߯uá°mâ³tá®sߦmÛ¤jÙ¦já­iå°jâ´xṀߴ߳xâ³wåºå¸å·å¹|ä¶uç½yìÂì¿{ê½{è¼~ä»~ä¹~ç·}縀ä²{߯våµ{軀ä¹|è¹}鼀渀è¶ë¾ê»{å¶}嶂æ³}å²vçºzå½ç½~ìÂ꽃èµzç¶zäµ{ã·v漂濋軂ç¶å´zå¯wá±}äºè‰羅争㸉ã¼~äÂ|å¼}㸂ܸ~ݶ{ã¹yâ·y伄ç†çÀèÃ…éÆŠåÂ꼆ëÀŽçÂç¼z弄廅滅缅輂è½~éÀƒé¿„绂伄éÁƒæ¿ƒâ¼…å¿~Ü°tϦqϯxÙ´€ä¹ƒê½‡é¼äºxã»ã¾‚缂潀äºzã²xÞ³yß²xÞ¯tÛ±uÛ­yÞ­rá´pà´zà´rÞ°mÙ­tÞ´sä¶w䷀輅ì¾~æ±tÙ¬lÞ´oâ³qÛ¯rà·ræµqà²w߶xã¶uãºxå¾zçºzà·wÞ¶vã¹vß·uݲtâ´má²rÞ¯rà®iã²sâ¹zâµoܪjÓ¤fתkÜ­oÖ¥fÔ£gפjÙ¥cÛ©mß®xß©mÛ¨pÜ«pݬkÚ¨dÚ§`ئdצhÙ©bÚ©aܨhÛ«nÞ°qÞ±nÜ«jܨkÚ«jÙ¬gÛ¬nÖªnÓ¥fÕ¡bÔ¢cÕ¤`Ú§bà­mâ®lß­iÞ®kà²sâ³và±pÝ­rÙ¬tÔ¨lΠcÑŸ\ؤ]Ù¥hØ¥hרeÚ¨hÙ§eتhÚ¬fÙ¨`Ù¤dÓ¡^Ó£^Ö£fÔ¥gÓ©jשkÛ¬mÛ°rÛ°rÞ¬kÚ°mÛ°nݯlܱoÙ¬oÔ©jתgݪdÛ§eÙ¨eتhÚªoÙ¬hÖ¬hÚ­rß­pà®qÜ®rÙ²q׬jצk׫pÚ³qܱpÕªqÒ«uÙ³wÞ³rܳnÛ²uݵyݹuÞ¶wÞµuزoׯoÛ°pÞ³rß³qÜ´pÛ¶uÚ³{Ù°zܳuرmÔ¬m×°qÛ²nÙ°rܳuÞ¼{Þ·{à²uÞ¸wÔ°sϬnÖ±qÝ´vݶxݳsÚ²rÚ¸xÙ²pÖ­iÖ²nÖ²m×±qÙ±rÚ´rÚ¶uÛµ|޶߹|ÚµuÚ´{Þ¶zÞµuܶzà¹|Þ¹|Þ¹xà¹zݹÚµzÞ¹~ເݷvÚ´uÙ´yÞºyß¹zß·‚ä¼~àº{Ý·Ú¶yܵvÜ´vÚ²rܵrá»}Þ´{Õ®sЮqÒ³r×¹tߺ{Ṃܶ߼}ã»vÞ±zÙ­xתmØ«jݶnݵmØ­rÓ§mÒ¨mЩnÊ¡cÊ¢dѨeÔ¦cÓ¢bÖ¡bÒŸ\Ì›UÔ¢aجlØ­o׬tÖ®rÕ©iÖ«nÖ¬pÒ¥cÓ¥dÔ©eϤ^Ð¥aÓ¨dТaΟZÈCÀ…?Å“RΡ^Õ¨gÓªnϨi×°màµnÝ«jÝ­nÚ²iÕ¬nݵyÜ»xÚµxÚ°tÖ­qݳxÞ³rÕªjܯtäº{äºÞ²vÓ§cÑ©fÚ¶y㻀ãº{â¶xÙ°oÒ­iϪjÆ bÅŸZΫaÕ±jÜ´qÞ²oÙ±mÞ·vܵvØ°kÒ¨`ÇœYÈ ^Ì¢`ÈŸYΨcѪlÓ¨jШbÒ­mÚ³rÙ´kÙ²hÖ«iÙ°nݸuß·wã¸xà¹uÚµuÖ±uÍ«mÉ£fÓ©jÕ°kÎ¥fÈœbÅš[ÅšYÇ™`Ρ\С\ÍŸdËŸ`É™WËšSÍšOʘVÍ›XΙSΙQΙM˘QÍœUÓXÏšRÎMÕ¤XÕ¦[СWРWÎœRÌ›RÎWÏ›QΙMË—PÊšXÏ¢`Ó§^تZܯgÞ°k׬cÓ¨^Ö¥bÕ bÔ YÓ¤YÓ¦bѦ\ЩVѧ]Ô¥aÕ©cѨ^ÇZÓ¢e¹›eÛ´oܳoß²oà¶rä¶så²nà°jÖ«oצrß«pà°mä·qå¶rá¯må²tá®oݬsã¸yä»tá·uݲzß°}é·~ë·€ì¶|ëºyë¹êº…í¹ê¸çµzé´{뼄켅뺇캀â°{Þ¶~ìÀ…ñºëµè³{äµnç»xê»ç¶}辄î‚ðÁ…ñ‹ñ†ð¿~ë½~ì¿€ðƒðÁ€í¼zì½}ë¹ã±zä¸yè¾}è»{çºyâ¸zà¶~Þµ{߶}Ẁݶxܸ~徂ã¶|åµ{èºå¶ä¶…一àµ|Þ¶{á¼ãºâµvâ¸zæ»~å»~ä»~㺀æº}æ¼{ä½ã½â½zã¸á³zà´zä¹à³rÔ©mΧkÒ§iá¹}ìʆêÀ乀弇çÀ‚ê€ê¾å¹~ä¹~終ä¶zݸzÞ¹~ß´~Þ²Ḁâ¹~ä·yæ·vãµtâ¹{êÁŠëÀ‡êÁ„èÅå¼tݵuÞ¶wá·qàµtâ¶}ç¸xæ¸så»xã¼xç»|ìÀ}è¿~åºxß²n߯nä¶vå¼xå·tß²pÜ®qÞ¬sà²uäºã¹xß°mÖ«kÖ°wá¶yà²uÙ¬rܬpà±vâ¶{âµxÛ¬lÛ®lß³rß°lÜ«fØ©hبkÞ¬uß®qÝ«hܧfݨmã²vä²pߧl߬mà±qß«mÜ©jØ¥cÓ \Õ¢bÙ¥fÙ§hÜ©jߪkà¯oÞ°kÝ®fá´sãµvá°sß®sÙ¯mÖ¯iТ_Í›bÒ£eѤ`Ò¦dÙ¨dÕ£_Ô¢eبbØ¥bÙ©qÙ¨jÕ¡_ÔŸeÓžcÑ›]Îœ]Ò§fÚ­hÛ¨eÙ¤dÙ¨dܨkÛ¨pÚ©fÙ¥fÖ¤_Õ¦YÕ©`רbئbÒ©cÓ§dקgÖ¨jÓ£eÒ§c׬jÛ¬oÚ¯fת`ÏXÈ—LÒ¥^Ú°uÚ­mÕ®kÖ¯tÙ­v×®v×°oÚ²qÞ²uÞ±oÛ®kײrÛ³nܯoܱuß´rà¶rݱrÞ®sÞ°yÜ®xÚ²qׯmÖ¯lÙ·vÞ¶yà´wáµ}à¶{ݳtß´v߶xØ®sÓ­mÙµuß¹|á»}ßµwÚ²sܸzÞ¶zݵxÛ¸xÛµyܵuܺzܺ{Û¸zÙ´yÙ¸zܺyݵzÞ¹ÞµzÙ°xÚ¶~ܹ}Ü·yܸvÞ¸uÞ¹wÞ¸tà¹wà¸Û¸zÙ¹uݶyܵ{Ù¹yܹvà¸qß»tÞ¼zܶvÚµyݹ}ܵuÜ´uݹzÞ¶yܳuÕ³lÒ¬pز~⿃á¾yÜ´oÛ´vÞ¸vÞµuṃàºØ­xÓ©vØ­rܲrÙ´wÙµ{Ú¹xÚ³qצiÕ¨e×­jÛ«mÙ¨gצdÕ§dÚ«jÚ«rØ®uÚ¯wÙ¯xÙ²vÛ¶|Þ´yÙ¬qÖ­jÛ±kÕ¨nË¥hЦbТ`ΠbÍšQÄ•AÄ—MРaØ­hÔªgϦf׳oÞ¸z׬qׯhÞ¶oÞ´uäº{çÀ㾂صvͦjØ°vᾀشuÙ®pâµtæ¼{ä¼}Ú²rׯkÞ³oà¶xà¸vÞ³mÔ«fΫdÒ®nЩqÇbË¢dÚ°iÞµoݱsÞ·qÞ¼vܲrØ­lÖ«mÒ¤cѦaÓ©gЩeάfЪfÑ©fÑ¥jТlЦfÓ§eÓ¥eË¡eΧkÖ°mÙ²rÞ²uÞ²rÚµq×±oÒ¦hËžeÓ¦jÖ¬hÌ `Æ–W¿MÀIÆ“TÇ›\ÍšZÏœZËžVΙPË™PȘJÉ—NËXÏ UÖŸUÎœWÌœRÓŸX×¢_Ô¤]Ù«hâµoÝ®bרdÚ¨aÒ¤YТZÒ£[Ó¢[ÕŸVΛQÉQÏ XÑ¢^Ö¥[ÚªhÙ¬oÙ¬cÜ«YÚª^Ø©^Ó¦^Ò©hÓ­kÓ¨bÒ¨bÖ¬hܯgÙ®eÐ¥eÊŸ`Ô©\Àdâ·vâ¶vãºzä¹uä¶wãµuá³rÚªiÙ¬jܯtß°så·qä³ká¯mè¹væ¹{ä¶{è»xèºtå¶uå³pæ²nëµ|í¼yîÂtï¿}ï»}ï»~ﻀìº~í»ƒñ¾‚ñÂ~îÀ„íÂî€ì¸{â­má²oë¼}íº}î·yî¸uë¹tí¼{ð»}ì¹zë¼€ñ¿‹óÁôȉõÊŽõÈŠñÄ{ë½}ñÀ„ñ¼„ë¸ï»~î¸}é¹wç¼zã¸áµ{ã¶pÞ´sÛ²vâ²{äµß³|Ù¬rß±{嶀ã²{å·~å·zà³{â³|á²uÜ°tÚ°uÜ°vÞ°uß´rá·{å¹}æ»yá¶yà³wã¶{ã¹{áµzà²~à³xß®rݨvܪuß­xÝ©oÔ `Çš`Ç¢cݹué¿€ç¶{ã¶uÞµyÞ¶}â¸|à²{â´xä¹|ã¶vݱuݲvá¸wÞ´xÞ¶zá»yà´vß´zà¸xäµs渀êÃŒê„ä»~ä»|å½|æ¼|å¹và¸rá¶rã·yå¹}å¼{âº}äº}ä¼zä¼~äº|ã¶tÜ®eÕ°gܸxæºçº{áµoß±oÞ´vܲuà±xá¸{Þ²tÛ¨mÙ¯rÞºzã¶uå·vå¿zä½yà¸~Ü´xÙ¬jרjÕ«xܲyà°pÚ¬i׬nÞ±vâ²oß«kÞ¬m߯nä¶sæ·qá®ná·tç¼uâ²rà­pÛªjЦcÓ¥_بkزpÖ°gÖªkß®nå°iÝ°rÛ¶xß²qÞ±tà¶xâµtâ°rÚªjÒ¨jÕ¬nשiاkܪnÙ¨jدiÙ²kÚªjÞ±mßµmÙ¬iØ«gÖ¬dÓ¦`Ò£^ÓªcÔªcاgÚ¨eÖ©fبgÛ§fÚªgÚ©dÜ¥aÛ¨`Ù©`Ø©bצfÖ£aÓ¥^Õ©dÚ­jÖ¬hÓ©eÙ®nÛ²tÖ¨fÐWÈ—V—XÍ¢bÝ­lجbÔ¥dØ¥kפgÔ¥fتiÙ¬oØ®nתjÖ¡mÖ§nÙ¯rÙ¯nÚ±nݲqÚ²lÙ±lÜ«jÙ«jÖ«jÕ­gÔ­hÕªjÙ®sÛ²}Û°sÛ¯nÚ²vÙ­tØ°qÙµmׯnØ°wÙ²vÚµxß·w߶uÞ²{Þ³tÛ°qÙ°pÛµrݶvÞ±qݳpÙ´tÙ²qײnÖ¯rÚ±tÞ·vݹtÛ¶uݲvݲsßµyà¸zá¸x⻀⺀á·wݸvà¸yßµvÚ´uÚ°uܲtÙµtÛ·{Þ¹}ܹ~ݸ„Ú³Ù²z߸zàºyÞ¶wݶzܹ{ܵtÙ¬nÓªmÕ²uà¹|Þ¹uÙ²rÚ¯wÚ¶{Û¶}߶€ß½~Þ·zܱtÕ²rÚ³yݲzݶxß¹zÞ³zتlبgÛ°oÛ±mÚ­pÚ«uÛ­nÛ­mÕªmÓ©rÖ¬rÖ®oÙ²yà¸}ä¾}ß¿|صtÚµsÕ²mÑ©gÖ¬nÓªnÕªnÛ­oקbÌ [Ó«iܳtÙ¬p×­rݵwݲuÑ«rÕ¨kÛ«k׫oÙ¯pá»zߺ}Ø®mÌ£fÓ­t⽀ݵsÔ¬kÕ±rÚ¸ráºwá»xݸmÚ±mݲyÛµrÕ®eЩgϨkͨm˦gÄ›_È›^Ô§gÚ´rܶtÛ²qÛ³qݳoÚ±kÙ°lÛ®oÚ¬oÚ³rÛ¶rÝ´kÞ¸jÞºoÖ°lЫd̦bÌ¢iͦkË¥eË¢e̤fÔ«iܳqݸtß¹yÝ´uÚ¯oÑ¥eÉ¢_ΤdÌš^Ç•TÂ’NÂ’MʘSÍœZÏŸdП`Κ[ÒŸ^ÓžXÍ•UÌ—RÍœP΢VÓ¦WÓ£WÒ¢XÖ¥Vب_Ù¨gâ¶rä½xܲoÙªkÖ¨gѨ^Ó¨WÖ¦ZÕªh׫hÏ [ÈœWÍVÌ™Tʘ[Õ¦cÕªfÖ©dß°bÛ°`Ù¬gÙ«jÕ¨`Ö¬gÔªiËŸeͧkЭiͤa̤aѬfÚ®kÀ™gä¹}ã¶zè·tç¹rãºsâ²uá¬tß±rݳoÞ·oáµoã°qá±rá³kæºvê¹xç´vå¶|è¹zê»yîºzí¹yè¹wè¹së½xïÀ„ò¿{ò½xï¶zëµxíºvî¾yð¼}ð½{ñ¿~ï½}ê¸uá¬pÛ«räµ}ê»}ë¸yì·{ì»{í½í¼ë½}íÀ|ðÂðÃ…ôňõdžôÉŠí¼„êµ{ð€ñÁ{î»yñÁ€î¿}ë¿|îÀƒë¹~é¶zêº}è¹}ä²rä³sæ¶~ß­{Þ®|ⴀ㳂岀å³zåµyå¶vã·uæ´wæ°tâ²tâ´tá²sß±uá±w䶂ã¹{áµsß·zã¶}â´{à²oâ³oâ°xß«pÜ«lÝ®sá±tÝ©mןpÍ—eÅ›aÖ¯xä¹~â¸xã¹|á±sÚªlÛ­sاjשkݳvÛ°uÙ©q׬o×°rÜ®qÜ­mÞ±sß°wß­zä¶{ã·{ãº}éÂ~è¹{ã±tá²oÞ²oßµzá¸{âµqä´vä·{å¹xè¼}æ½}å·rá±qß±qà³pàµqá³qÖ«rÓ«wÞ²{ã¸yâ¸tä¸zå»wæ¸uæº~æ¼~ã´uܱoزrÜ°xá´|ã·~ä¶xä¸sà²sتsשmÖ¨gÒ¤b׬mà¶|ຂݷzå¸yè¶rä³oãµzà²uæ·yéº}ãµræµqå¸{à¹{â·zâ³vÖ¬mÓ¦hÕ¬lÚ³xÙ¬rÖ¯mܵrÞµvÚ²sÕ­mجmÙ±pÞ²tá²vÞ³wܶwÛ¶qÙ±pرtÚ²nݯnÞ²sÞ¹uߺqá´oã°uã³pà³lÝ°iÞ³iÞ°n׬oجmÛªkÝ©rà¯oà²qÝ°vÞ±kâ²hÞ¬jجd×­jØ®lܲn߯rÜ­oÖ¬eÖ°fß³oà²sÛ±tÞµ{ã¶zÛ«oÒ£d΢]ϦeÞ°pá³rÛ©fت`Ù©cÙ§hÙªoبnתn׫iÖªeÖ¥cÖ¥iÖ«iÖ­jÚªqÙ¬lÕ©kקv׬vÖªkקgÕ¦iÔ¥hÖ¢^Õ§aÙ®gØ®hרiاmتsÙ¯oÚ¯nÜ­m߯lܯrÚ«tÜ«pÛ¯tÙ®sÙ®mÓ¨hÒ¥gÕ®mزsÛ©nÚ¬pÚ´xÚ²zÙ­{Û¯zÞ³uß·xÞ¸xÚ´qܳvÞ´wÝ´tà¶wâ·záºxá¼zá·€â¶wß·sÚ¶wÙ´vܵvá¸{à¶|Ý·~Û´}Ø°xÚ²wÚ´yÛµw߶zܵ|Ù¶zß¹~à·~Þ²zÛ¯yÙ²tÞ¶vß´|ßµxݱuÙ¬sÛ³tÚµyÙµxÞ¼x߸xà·xá¸wݳsÙ²xÛ¸}Þ»~ܵt׬fÛ«kÞ´oܶoÚ¹rܶpÞ²uÙ²rÕ¬mÙ°qÙ±pÕ¨kÖ©j߸uå¾{âÀ|Ú²pØ­rÙ·{Ù±xÛ±zÛµyØ°uݲzÛ°vÏ¥iÖ¯nß·sݲr߶|Ḁܲ|×°xÙ°uÖ°qЬfÓ¬gÙ±rܲuجmË¢eͤnܱuÙ«lÒ¥mÓ¨lÖªdÛ²oÛ¸u׳sسtØ´nÑ«jÓ§fÕ¬jѪg̤ZÈ ^Ìœ^Ì[ͦiÙ¯rÙ¯pÙ±pÛ±oØ°mÖ±lÕ²uׯuÙ®mÙ²jܵo߶uà»vã¿}ß¹…Ö²sÒ®lÏ«qÑ«jϧgÆbÃœ^Ê¢cÕ§jØ®tݶxÝ´qÙ±oÓ§fÍ_Íœ]Í™PË—OË•QË–NÎœRצ_Þ«cפ]΢]Ò¢Z× \ÑŸZΞSÑ¡UÔŸWסZÕ ZÓ¢VÚ«]Ý«`Þ®_æ¸oã·sÛ®jÛ¯gׯgÓ¦dÕ¨dÙ®fݱlÞ¶sÛµiׯeתfÔ«bϨeÓ®dÒ­bѦhÙ°kÖ°iФcÑ¡^Ñ£dÓ§hÕªeÍ ^È ^Í¡`Ë ^Ψ`Ñ«eÖ©e¸›få¹yæ»yê¿}ëÁê¾€ç¸ä¸zã»yãºzä·vä¶sã»sç¶vä®så¸ué½xç´xè¸yì¼{íº{í»zê»{â²vÞ«lãµqê½}ê¼zëºsë½wè»vé»vê¼xë»yí¼€î½ì¸{æ®yܨtÕ¤jØ©mÞ®qä´wé¸|é¹xê¸yíº}ê¼zç¼yë¾{é¿yè½zë»‚í»€è·pä¶tè»}íÀêºé¸yê·yê¹€ê¾}éºuì¿„ë¿„æ·uâ¯sä¸{è½{æµvå·xè»sç¸xç´zæ±vå´yå¶xä³rå³uå³ã¶yä¶xâ³yß®pá«má±mâ´kã³uã²ræ²oç±rá´kà±pݪsß®tã°uâ°sã²rß®qÞ­l×¥dÇ^Òªkå¹zè·xä²sÞ¯rÙ¦lØ¡dÕ eÖ¤fبnØ¥jئfÙ¬q׫oÔ£fÔ§hÙ±uḀã¾~ä»yê¾|ç½{â¹uá³sá°vÞ®qÛ­sܱvݳoá²på¶zä¹xä¹vå½|å½xá¸vÝ°nÞ²fܱjß´sæµs߯nÓ¨fÖ°qâ»{âµqâ±på¶tã¹vã»zå¸uãµuà´wݯtÙ®wß²wâ²vÞ±uã¶zä·yܲhÛ¯eÛ¬eתaÙ­hà¹vä¼~ã·zæÀêÃ{ã¶rçµtç¸pä·vå¸æ¹yæ¼|å»}äºvâ»}เà´xÙ¬oÕ¬jÛµtÞ´yתqѪt×­qÕ«mϦl׬pÞ²rÞ±nß²o߶là·ná¹xß´xܱrدpÜ­qâµuâ¸tâ¶tà¶yà´yà±tÝ°pݲoà³xà±wÜ­pرtÖ¯pÚ±q߶uá¶|߶wÝ´rݳtݱhÙ«cÖ©mØ­qà²oå¼wç¼yÞ³r׬pݲoÞ·s߶uæµyäº}Þ·tÝ®jÛ­kÜ´nÝ·tÞ³sÞ¯nÚ«bÛ«cÜ­oÛ°nܯmܯtÙ³pÛ³oÚ°oÕ¬gÖ©hØ©hÙ®jÚ®fÚ«hÙªuØ­pÕ«cשh×­k×­kÓ¤gΣaÑ©bܪgÙ¦bÕ¦]Ú°eÙ­iÙ¥kتlÕ§fÖ¤kتpØ«mÓ¦fÔ§cÕ¨fÏ¢dËŸbÓ¨hÜ©pÙ¦oÖ«kÛ°kܲnÚ±qÚ³tÛ±sܲrÙ¬tÙ§nÛ¬lÙ®nܱqáµpß³pݳxݶ|ß·vß·sܶvײsØ°pÛ¬uܯrݲtÚ±vÖ¯qׯpÙ¯pÙ±qܳuÚ³vÚ²mÞ¶mà¶rܳuÞ²vÞ°tÛ°vßµzݳyܱxÞ³pܱlرpÚ¯sܱvÙ²vÚ±{Û¹ݼxÙ³vÖ­zÚ³xܶwÙ¶xÛ±uÜ°rÛ´qÚ³xÙ¶}Ú¹xÛ¶wÛ¶{ܶ{Ü·{Ú¶zÖ¯sÑ«lÔªhÙ¯oܳsÔ«mÔ«oÙ²vÖ¯tÕ®qÙ³xܱsÛ®rÙ­sФfÎ¥cÕªfÒ­f×µnܳrØ´mÙ´mÞ´qݺ}Ó²xÌ¥kÑ©pسyܸuÓ¯qÉŸfÑ£eѦhÔ­nÔ®gÏŸ\Ô¨hÓ°qÒ©lÓ¨mÑ©jÒ¨e׫hÚ²lÜ´nרgΡcΣcП_Ìœ[ϤaÕ«jÚ«iÛ®lÕ­oÓ¨lÖ©jÖ«k×­nÙ¯qØ­rÚ®uݲyÞ³yÞ²rÛ®kÙ°pÕ¨hÑ¢jÌjÁ•[¼“UÀ–XÇš[ÏœaÓ£hÑ¢cÏž_П[ÐœZÏœWÍœQË™PÍžTΞQÕ¦\߶rݳhÕ§\Ò£\Í¢VÍYÏŸaÊžWÊ™MÊ“LÅ“S̘NÐœRÏŸZÕ£\Ý«gß²nÙ­eÖ©gׯqÛ±nÚ°jرhܳnÞ¶sáºwÞ»uÞ·oÜ´iÖ°eÓ¯fزfÒ¬^Ì¢bÕ«kزfѧ[ÍŸ_ͦeÒªfÙ­i׬fΤ^Ì¡]Ë aÍ£fЦdË¥^±—]èÁ‰êÄŒêÄéÂéĆèÀè¹€ç¶wè»sè¼wè¸uçºyç¾yå¸yè¸|éº}è¶vèº|é¾éºvä¹xæ»{ä´vÝ­oá¸xìÁ€î¿{ëÀyìÂyí¾zí½€é½~è¼~ë¿€éºyå³yá°qÕ¨hÑ©kÙ¯lá¯pä´wç¹yê¼ì¿…îÁ‚îÁƒêº~é¹zé»|æ¸zæ¹té¼zé¹}é¹}轂뾂í¿{è¼zæ¸yç»xä¹yåº~鿇깂â±yܳwâºvç¿vä¹zæ·yë½}滂å¸~ã·}áµxå·渀ã¸{æºã¹vã¶næ±uä¯oÝ­lÛ¬rá±nà±jݬhÞ«ná¯rã°mâ±má±qâ²xç²çµzæµxè¶xè¹|à±}צhÔ¦cà±sè´nå±kà­rÞªoÛ§dÚ¨aݪfÛ«eÚ¨hÙ¨mß°pÛ¦rÒškاr߶{á¸|ä·}â¼|è¿{é¹xåµuß´tݶxáµzá´uß´tÞ´tÝ´tß³qá¸rá¼zãº~ä¼}â¼|ã¹væºxä¼wß·vä¶|è¼Û³sÙ¯u㽂â¼}à·vß·qà´sä³râ³uãµ{åºzâµuÝ®oß´qãµxá±tä¶yç¾çºvå¹vå»xà³lÚ«ià¬jÞ«eݲlå¿xä¶r߯jß³qß±vÛ²pݲqáµyè‚íÂè¾~ä½|ã¼{å¼€Þ´zÒ©k×°pß¹xß²vܯtÚ±uׯsÖ¯pݸ~â¼ß·tà¶wà·zá¸wç¼~â¸Þ¸}Þº~Þ¸vä¶tè¸zä¼xå¿wâ¶oÙ°nܶv߶}仆ã¸zݯoܳtÞ´rÞ´zá»}ä¼xâ·tã¸nä¼vÞºpزh׬oÙ®váµ{æ»æ»{áµzÚ²xܵsâ·vá¹xàº|â¸~ã·uà¹uÞ´rà²là³vß´{Û´oدjÙ­rß²uâ²uÞ±qÞ¶x߶yÞ±sß³xݳvÙ®tÙ¯pÝ´mÞ³mÞ²tÞ¶sܲnÕ«jײrÞ²wÞ¯uÛ®rÒ¤dÒ¦fÚ±oÝ®jÚ«k׫hÕ©bÖ©f׫gÓ¥_Ô§hÝ´sݳpبkÚ£jפfѤaÏŸb΢fÕ§kܦkÙ¬mׯoÖ¨lÕ¨oÛªrÚ¨fצgÔ¤kÓ¢fÏ `ÎbÕ¡eÙ¬gÜ°jÚ°lÙ­nÜ«oÝ­nÞ¬p׫oÖªjØ©hÖ£fÕ a×¥bÖªiÕ©lÖ«iÔ«gÖ©hÚ«oܯlܱqÝ®rØ®oÖ®iÚªhØ©mÙ®rÚ¯tÙ®p×°oÙ®lשiتmÙªrØ©oدtÖ³vÖ¯rÖ¬o׫lÖ©pÛ®yÞ´xÚ±oÖ¯rÙ²vÚ²uÚ¯xܳwÛ·xß¹߸~Þ¸{ß»xÞ·vÖ¬nΦkÔ¬u×±oÔ­fØ­pÙ­{Ö®zÙ°vÛ¯nØ«iÖ­p×®qФnÎ¥lЧlË£lЬiÛ¸tÙ¹}Ö¶wܶvâ½{ߺvØ­mÓ®oضvá¾~ܸx̨dЫjسoܵsÜ°nÖªd×°oÑ©jÌ¥cÕ­pÙ¬uجoܲnà´oÞ¹nÛ³kÔ¦gѦiÑ¡hÈ™[É›XÕ£bשhÔ§fÓ¢cÑ¡fÓ dÒfÓ¥l׫hÓ§jÒ¥kÖ©hÕ¨_Р\רgÝ­lÕ¤eÏc˘XÉ–SÆ–RÇ”TÊ•WʘWΞ]Ö¡ZÖŸ\Õ¥cÓ¥\Ò¢VУ\Ô¥[Ö¦]Õ¦^ݱlå»vÝ°dÖ§`שbÓ§`Ï¡_ΠZËXÆ™UÁ•B¾Œ=¾ŒC¾‘EÂGÅFÉ™VÏ]Í›XÌŸ\ÓªlܶsܸoÛ³oÛ²nܵrݶuÛ¶mسhÖªcØ­eÙ°e×°eÑ©cϤ`׳nܵnÔ¬bÓ¬lÖ®jÔ«kÚ³wàºuÛ°kÔªbÖ©_Ñ£aÌŸ\Í\²‹Wáµ~ã·táµtÞ²yáµvß³vß±xß±tá³rß®jÚ¨hÞ«fà«d߬o߬pá¬oã°tä´næ¸rç¼yæ½}éÀ~ëÁ€ä»}áº}ìÀƒïÃìÂðÁ}î½}ê»~ë½{é»~æ¹å¹~å·|â³tÛ¬p׫sáµvä¸yä·}é¹|æº~éÀ†îćí„íÁƒì¿‚é½ë½„黃åºyç¾yç¼{è½}êÀ…꿆罄忈è¿~è¹z湃辆漇ã¶yܱuÙ±~一é»}滄縇湃äº}à³{à³}ã¶ã¶亀æ¹áµwá¹xé¹wç¶oßµrÞ³sà´lÞ°kÙ¨kקjÚ­mä´pç¶tå·yç·zæ³tä²rçµyí»}î»}é·uâ¯sÙ¥hÙ§fâ±nâ®pâ°oãµià±lá°pá±sà°qß©eÛªfÛ¬oפeÒ¢eÛ­râ±rá³mà¶qãµsâ´tß´sáµuà¶sܳrܱrá´qã¹{߸vݱrÜ­vÞ±zà·{à¸yà·väºwäº{ç»|ä»Ú´yݵyéÁ„å»xÚ´pä½xé¼}ä»}â¼z߸x߸yß¹|àº}åÁ}异ãºzä¾uæ¼xä¹yæ¼æÁ{å½xè¹}é»~äµxÛ­oÙ®i׫jܱrå¹và³oÚ¯hשiÕ«mתpÖ¢hÕ¤eá¸wçÀ|ã¹zä¹€ä¸yç¹}â¶zÓ©rÓ¨uܲyÞ´yâ·zà¹x߸yå»~â¼{à¹}â¹}â¾}äÀ‚å¼ã¼yã¼}ã½ä¾}â¹}â¹zä»uå½vä½Ý·xܹsÞ¸|ß»åÂàºyÛµyÜ·yØ´qáºvæ¿{â·tâµoÞµrݸvâ¹z辈ã·Ù­mÚ³uܸ{á¶xá´sÝ´s߸xß·xÞ¶và¹qàºqà»qݵjܳlà¸pà·rà³tݯt×­rÙ±rÛµrÛ´qÛ³nÙ³uÞ¶{Þ´yÞ´yܳqÙ¶rÛ´{ܳuÜ´xÞµ~ܳuÙ°oÖ¯oÙ±qÚ²oÛ°oݲo×­mÑ­mÖ³nÚ±kÛ²iÚ°fÙ¬eÖ­eÙ­dÚªb×­lÛ³xâ´rݱmÚ®rÜ­pÞ°qÛ­lТhÎjÖ¥dØ«dÛ®gÙ©`Ö£bجn×­lשiÖ§iÑ¢bÑŸbÌšaË›`Ó§kÙ¬mשh׫hبfÙ¦gצgÙ«fØ«jÖ¥gÖ£[С]Ó£eÙ©dרdÕ¥cÓ¦`Ó¦]Õ§dÕ¨hרlÖ£kÓ¥eÓ¦dÒ¢`Ò YÏ¡_ЧcÓ©eÕªgÔ¦dÑ bÓ¥jÓ¦iÒ¢eÒ¦cÒ§fÑžaÐœ_΢cΣaÒ¥hÙ¬uÕªtÓ¦sÕª{תwשpÖ°rÙ¶zÛ¶zÛ´yÙ±wÕ¯sÙ³uÜ´s×®qÖ¯u×±nÕ­jجsÙ­sÖ¯qÙ²t׬qÓ¥mÕ©pÔ¯lÏ©fШhÖ®iÔ©mÓ«q׳rÛµyÛµzÛ´z߸†Þº‰×³xÕ«sÙ¯tÞµ{àµ~Ó¨oѪkØ´qܵvܲvÙ°u×±p̨eÆœ_Ñ£iÙ°nÕ­fФcОcПgΞbÉœWËœVΛYÇ™^˜ZΛZÓŸ_Ë™YÊšZÍœXÇ•NÄ”RÊZР\КXÌ—UΚTÌ”RËSÓž\Ö£`КWКQÏUÓŸ]Ø¢]Õ¤`Ô¥dÓ¤YÒŸSУ\Ö§\اbÓ¦_ѧ^Ù¯iÙ¬bר]Ù¯gݳmÞ³jÚ­cÓ§_Ϧ_Ô¦^Ó¦^ѧbÓ£\ÌŸUÇœSÉžRÈ›QÈšQÅ—NÀ’BÔHÇ–QÆ™MÌ£[׫eÛ®eܶkݵgݯaÛ®eØ­gÕªiÒ©gТcÖ¦aÙ°bݳhÖªbÉž^ѧl׬sרoתlÔªhׯhÞµoà¸uß´rݵpÙ°rÖ¨jÕ§dÒ¦`´ŽXÝ©qÚ¨kتkÙ«kÚ­nØ°t߶zÝ´qÙ®rܬsÓ¡fÍœeÑ£`שbß«jÝ­mØ®iÙ¬gÞ°x幃뽀éÀ}ëÁ}ë½}äºvç¸z黄è¼ê¹}ç¹zã·vã·{à´xÞµtâ¸zæ¸~ç¸xå³vã¯vÞ±|ã¹€ìÀ켄鹅쿆íÄëÄ‹ìÆ‚íÁé¸å¶~æ¹yäº}涃ä¶ã»}é¿~漆äºè¼~ç¿~å¿}çÁå»{æ³}ç¸}à¸{Ú¯yᵂéÁ‡è¿‡è¶†ä¸‚乃긃é¹罃꿉ëÁˆé¼€ã¶zÞ¸zâ¼yä¸yà³yß²qà°pà±uß®sÙ¨jÔ©hÞ·rç»vä¶wá³tã°pá¬rä­tæ´så³oæµpæ±oÜ©jÚ¬qâ¶vé·zè´xä¶ré¶rëµpæ´sá­oá­lß­nܨjÛ¦jÙ¤bÖ¨cß±sã²wâ±qã²qß±sÙ¬iÜ«lÞ±vݯoÜ­rÞ³~æ¶yé·yå·|âµ{ã´|ã·vá¸vã²~å¹€â¼vàºz㶅ܮv×­qá»~ä·yܯrÛ´zà¶~â¹{áº}ã¸à»ƒÞ¼†àº„㼄潄æ¼ä¿~à½ßºzâ¹yà¸yߺxáº{å¹xä¼zܺ|à¹ã·|à¹xåºuä·pâ·yÝ°yØ°pسnÔ®sÔªsÙ°oá³nà²tâµ{å¹}è½åµ{Ö¦sΦpØ®uß³{澂ç¹|á¹{â¿~Þ¸xܵvà·zá¹yß¹|ᶂ߸wߺvã¹~߶|Û¶uݸwàºzã¿{â¼{Û²vß¹}Þ¹yß»{å¾{ß±rݲxÞ·{Û°vเใܶy߸uÕ©jШmß¹€îÈ‘êÁÛ²uÙ²xݲtÞµvݸ€Ú³€Ý¸|á»|à¹{â»yãºà½á¸rãµmâ¶sâ¹vá¹zݸ{صq×µsÜ´yÛ±sÛ±uá´}â¶á³€ß¶{ݶzÞ·~ß·{ßµv߶uà¶sàµuݵoÙ´fܳsÙ²vÙ®ià³mÞµpײrÙ´rÚ´rÕ¬rÕªqÛ³uݶqܲmØ«kÔ«jÚ²qݶoÙ°jÙ­nݵrà»và´qתgÑ£cÓ§eتgܬmÛ¬kÙ¨e߬oß³oܱmÞ¯qÙ«hתeѨdÈž`ΤcجeÖ©hÖ¬j׬kÕ©nÖ§lÞ±rܱqÔ§fÓ©dÔ¨bרdÚ¯jÛ­jÙ­kجhØ©fתeÔ¥bקkÛ¨lÖ¦cÔ¦bТ\Ì¡XЦ`Ò¥eÓ£fÓ¥cÑ¡\Ñž\Π]ÎaÑšaÕ¤eÔ¦eÎ`Ë™ZÐœ\ΛYÎ\Ò¢_Íž`ΞjÑ¢nÔ¥kÙ¥iÕ¦fÓ¦hÖ©pÖ§mÕ¢mÓ¥oÔ§nÙªpÙ²oضqØ°qÓ¬tÖ¨lÓ¢eÏ¥gÕ§gתn׬oÒ©kÒ¦fѦdΣeÕ©k׫hÔ§m×­p×°o×­tÖ¬sÛ³xݸÒªrѧeÕ¯eÖ­fÙ¯nÔ­nÒ©qÕªqÕ¬iÖ¨fÒ¤eÏ©d΢cË—^Λ]Ó¦aÍ¡]Ä”[¿‹PÆ’QÌœTÆ•OÈ“OË“LÅ–SÅ™TÈ•LÈ’MÂMÅ”KÊ™QÇ“PÄSɘVË›QÊ—OÍ•KÊ•GÊ•IÌ”KΖNÑšRÏ–RÒ™OÝ¥^Þ®gà®`à¯bÚ¬hÛ¬hÕ¨^Ñ¥_תcÕª]Ò©^Ù¬iá¶oà´mÚ¬lÙ®eÛ­aÛ®qÜ´uÖ¯eÊ£YÌ¢XÌšUÌœVͤTÌ¥WÎ¥[Ô¨bÓ§iЦeѤZËŸ[Ê£eÍ©fȤ`ÍŸ`Ϧ_ʤ^ФfܬkÞ°nÛ¯hÙ²iÚ°oØ©jѨgÔªeÙ°bÚ¶cزeÍž]Ñžc×¥gÒ¦`Ó¦cÔ¨iÕ­qÛ¯yÙ­uÙ¯m×±hÖ©gÕ¨gÔ©fÖ¦hµ–_Û¨mÜ­iá´sܲvÚ¯tß³yâ»}â¹yÜ·uÛ¶xÙ®yÒ¬uزxÜ´vܶsßµqÙ®l×°vÚ²ܵyä¹yäµuÞ±sâ²{â²tà­pâ¬uâ®nå³pâ³zÜ°rÙ¯kÕ¦bÙ¦gà°sß³wã¹{ä·tß±tá²|å·}é¾€ëÀ}ê½z輀뿋êÁ†èÀ{黀æ´yà²pÜ´wà³{ä²zÞ²uÝ°tã´zå»~ä¸{äºä¾ä¼{ã¸zà¶y㻂佂åºyâ»xä½è¾‚éÂæ¼~å¸yé¿ìÁ†ë†êÀ…ê½êƒé¿æ´{ݳx߶uâ±tÝ®uܱoÛ®rܯvß³qجkÎ¥kÖ¬tß²tÞ²sÜ®sÜ­sÜ®rÝ­hä°nä´vãµvæ¹zä¶sá´tá·vä¶sè³và°sß®jä³oå¹xá­jà®jÞ®lݨgܪlתmÖ¨jÚ­lÞ²rݯrݪpß©nÙ¨jÚ©kÜ®nÙ¯nÚ²pà¶pâ¶pâ³yá´|â¶{á¹zà»tåºzâ¶}á¶vâµ|ݲ{Þ²tݯrÓ©t׫{Þ°rÕªjÕ«mܲuß±wß³{Þ¹„á»à´zÚ±uÛ¯oÞ²pÞ¹wÞ²yܯyܵxß³sÙ­qÙ¯ráµvå¹}ç¹~å¸xã»{å¼xæ¸vä·yà´uä¶uå·vßµrܺvÚºtÛ³vÚ°uÖ­oÛ¯ráµuá·{â¸|á·rÔ¬n˦oÔ­xÞ¸‚å¾€á¹xá´zà¶zÛ²rÛ°vÞ¸}ݼwÙ³uײxÙ²xݲzà¶zÞ´tÛ³tݵyá·}å¸~à±rÝ«uà¶~Û²vâ¹|ãº|Ù®uÚ·xÙ²tÕªvÜ·ßµyݱtÝ´sѨmЩqݼ~åLJâ»}Ü°wÚ³wܳsÚ¯xÙ°zÙµyàºyà¿uß»{ๅá»á½zà¼yáºvߺzคἀá¿yß¹xÞ·uÞ¶zݱuÞ³pß¹xßµxÞ¶s߸vݹ|ܹߵ{Ý´uÚ±tÞ±uàµ|ßµzݯuܲtݶqÞ¶tܹzܶ~ßµ{Þ·wÙ¯tÓ§lÔ¥hØ­kÛ²nÞ¯nÙ°dѪfÔ­rÛ²tÚ­uÖ®uÙ·qà·sà¶vܲmÕ«hѦmÖªuܯtÜ®lÛ®pà·uÜ´mØ­kÚ´qÚ³mÛ²mÛ±jÒ¤bÍ£cÓ¯h×°lÙ²nصmÙ®o׬pܳrß³uÕ¬kÒ¦cÓ§gÏ«j×­mÞ°oÛ°mÚ³gܳlÝ°qÚ°mÞ²ràºtÞ¶oרhѤdШcÕ¨hÙ¨jØ«gتfÔ¤cÓ¤\Ô¡`ΚYΠTÔ¨cÜ©fÕ bÍš^Í›WÍœWÌ›XΚTΙ[Κ^ËšXËšTÏWÎœ[ÍŸ`Ò¡fÎœ_É”XÈ–WÌ XÒ¢`Ô¢gÔ£lÑ£kÒ¡cÒœ]ΚaËaÒ¡]Ú¥eרjΟaΡaϤ^ÈYΡ^Ö¦\بcרmÔ¥mÓ©iЦfجrÛ²uÒ§jÒ¡`Ó [Ó¡_اn×­oÒ§cÑš`Ïš]ɘQÊ—VÏŸ_ТaË—TÊ”TРaÒ¡^јWÅ‘QÅ“QË™ZË–WÌ–L˘NÊ•XÈ™WÄ•IÄAÃ’CÅ”QÑ›VÓ¡TÌœSË™QÊ™QÊ™QΚLÏ›RÑžWОQϘOÕT×£Y×¢Xß«^ã±hà«fÝ©dרaÛ­jÜ­jÒ§fÔªlÓ§_УWÕªdÝ°lß±iÞ²jÙ°cÔ¦[Ѥ_Õ¬gÖ§fÒªoÕ¯hÏ¢XÌŸXΞUÈ™TËœWÐ¥WϬcÒ­gÓ©eÒ§gÖ¬jÖ¶oÍ©d–\À˜\›ZÍœdÕ§lØ°jÙ°iÙ±h×°m×°nدkÔ¬kÔªfØ­kÙ°iϧ\Í¡\Ö¦hתlÖ¬dØ­_שgØ«lÙ®bÔ«`ѧ`Ñ£bÒ¢aÏ¡ZÑ¡bµ•dÙ¤gܲxäÀˆá¸„ß³xá·vá·}ß·xßµu߶tÞ¶nܳsÚ³zدtÓ¥uÕ§vÓ©mѧmÔ­rÓ¯rÚ³sÞ·vÛ±sá³uàµtÞ±rß±uÛ«sá¯uâ²sجpÖ¦dÖ¢_بlܬràµtä¿~罅廆້Ḉ꼄ìÀŠè¿æÁéÀŠè½è½…縃嶀ã·ܲ{Úµ€äºäµ~Þ±{߸yã½幂㺄亅ä¹}ã»ເà»|å»~渂ä·~æ¼€æ¼å¶sâ´mã·{èÀ…é¾èºæ¼}â¹vä¸xè»zâ±vاsØ­nÚ¯tاqÔ¥hÔªoÚªtÞ¬tÙ­nͤdѧiÞ²yã·yà¶tß³xÞ´xܯyÞ³{ä»vç¼vè¾}å¼zä¶vä¶yãºwå¸nÞ®k׫kÞ¯lß­mÙ«jÜ°mܬo׬lÛ°iÞ®m߬rÝ­nÞ²kß­lÞªiá°nà²pÞ®lØ©iרhÛ¯lâ´tá´uá±pÞ­uÝ®xß°s߯oÞ±qØ°qÖ«pتnרmÕ¦rبoÔ¢hСjÖ©kÒ£eΟ_Ó§eØ©rÙ¯v߸vâ¶wݯnÕ¨hÔ«mÜ°vß°{Þ±vß³xÞ´zÜ´xØ«qÙ«u⸂潂å»ä¶{ã¹|㻀ä¶{áµvß²yÞ²€à¶{Þ´vÝ´{à¸zá¹zÛ³uÕ±uÖ²nÖ±jÛ²vã³{ä¹yÖ±rϦqدuâ¹}缃â·|ã·zãºxݵqÞµ{à¹}ß²uÜ­qسuÙµ~߸|â·vß²uÙ°uÛ²sâ´zå·Þ±vÞµ~á¸yØ­lß´{à°sØ«rÞ´}Ö«rÖ¬vã¸}á¸vÞµzá¸vßµtß»}åƒã½{ßµvܶyضtÖ²qÙ³vݶyݺvã½|á¹~Û¶wÙ·tÛ²tÛµxݸxßµz޹ܻ€ß»â¼}ß¹|ݹ|Û¶{Û³vÞ·zÞ¶{Þ´u߶zÜ·zÞ·xÞ·zÙ²zÙ±yÙ°vÛ´táºzá¶xݳqà·zเà¶{Þµ{⸄䷀ߵ}ÛµyزqÙ±xÛ²yÙ²sÛ³sÜ´qݵrÛ±uÞ²vá¶}áµzÛ±rÚ³pÞµvÛ²sÙ³tÖ²qØ°qß´xÞ°wÛ¯xÞ·vÜ´sÙ­rÙ±uزoÚµnݸxدmÏ¥fΩnÖ°pÞ®qÚ®rׯrÖ®j×®jÚ°nݲmÙ¯sÔ¯lÒ­`Ù­oàµy߶oÝ°mÞ³qáµnÝ°kßµpã»zÞµxݯq׫lÓ¨hÛ°nß·tÜ°mܯhܲlÛ®gÙ«dÖ§eÖ©fÚ¯mß³vܳoجiØ©kتiצkÙ¤eÔ¡^СaРgПcÒ£\Ó¢ZÐZÒ¡`Ñ£`ÍZ͘U̘XϘ\ÎœYÑ¢[Òž^Ïœ\Í™XÍ›VÍžXÍžTÌ[Í¢]Ï¡WΞ^ÊžbÉš]Ò¡bبeÜ­mÝ­vÚ­p׫kÒ¢cשnܵ|Ø°uÓ¤[ПSÖ£aÚ¨jØ­nÔ§cÑ]Îœ_Ì™ZÏš[Õ¤\Õ¡WÌ–RÏœ\Ù¬lÖ­jÕ¦^Π\Ê›^ÍšUÎSÓ¡ZÕŸXÏœ\ÊžaΞbÍ]ÌUÏžWÖ£^بeÕ¢]ÎœVÈ™TÌžWÍžYΟXÕªXØ©RמVߦ^á®dܦfÛ«eÚ±bשdÛ©cÖ¨]Ö¬gà¹rܳjÛ¯ià­kÝ«kÚªoØ°qÙ³pܲhزaÒ¨^ËžZÍ¡aУdÒ¦fÚ¯nÕªgÕªeÕ©fË£]Ê¡WЦ_Ì¥^Ì¢\Ш^ϧbÒ©lÓ°k̦cÅ›]Æ¡ZÊ¡]ΦhέoÑ©jÕ©jتqØ«pÜ­kÜ®dÕ«`Ó§bÕ§c׫gÒ¦eË_Ï¥dÖªiÖ§fÕ¡`Ó¡aÓ bÑ¡ZÍŸUÍVΟYÏYÏ™QÏŸV¹”_à§gÞ­há³{ã±}Ü­pØ­pÛ¬tà°oß±oÖ¥hÑ¡`Ò¥hÓ¤gÐ_Ξ_ÍžbÌ™]Ì™]Ô¦mÙ°tÞ¶xá¸sß³rã·yä¸sÞ²pܵqײrÛ±zÞ°vØ«qÛ±tß²uß´zß·zà¸}åºç·}ãºༀâºäÁŠêÅŒëÊëÄŠìÄŽêËæÀ‰ã¿‡à»Šß¹Œà·„߶€áº‡ä·ƒÞ°xÛµzà¹}â¹â»„㽀⺃ඃ޵}ܲ{Ý°zá³zà°qã²på·uÜ®oרlÞ¯sã´sà¬oÝ«uÞ±rÞ®lݱsÞ²tܨjئhÚ¬sÛ®vÚ«kשeÕ¬q×­tÚ­pÚ©mÓŸaΡeÖ§qܱsà¹tá¶vàµwÝ´qÛ´sà·qãµpá¸tã¸vã¶vß³xä¶yæ¸}߯yÚ«mÚ¬iÚªnѧsѨmÙ°sݹ€à·uä¶oä¸vá²vÞ°và°tá®sá²vã¶râ³qجmÙ©oà«pܬnݬqá¯qÞ¯nݬkÜ«mÙªkÛªoß®rß«nÝ©pݨeÙ¦\Ö¥bÖ¢^Ò¡aצcÙ¦`Т^Ó§iÝ­rݲxâ·vá²oÜ«nÜ©mܨlܱpßµzà¶{á¶}â¶{å·à²Ú³yÞ»ã¼~ãµ{߶ß¹zá¹{á½}ߺ}Ú³yÚ³zÜ´uÙ±sÙ°uÞ²uãµsà³uÙ®nѪhÏ¥fÑ£jÙ¬yᶀܰvÕ«pدtÞ°qá¶và·xß²rá³tܯsÛ­mܯjתgÙ¨gݱjÞ°kÞ±nݳjÙ®lÕªjÛ°mä¸xâ´t߬kä¸Ú³uÑ¥a׬nÕ§hÕªqÚ°xÔ¥bÚ­kÝ°tÚ¯ráµ{ã·~à¸|â¹€â¹âµ€á³}ß²xܶvÞµyã³zá¹}Þµà´~ܸ€×±zÙ°sÙ¯qÙ°uݳsÚ²rÚµ€Ú¶}Û±tÛ²wÚ´rÙ´zØ´~׶xÚ¸{เà·{ݳxÚ­uØ­oÙ¯uÛ¯v×®tÕ°tس{Þµ~ݹ|Þ»vݹxݶ{Ý´xÚ´uÞ·{Þ¶|Ü´uÝ´tÞ¶yܲvÞ²vÞ´wÞµuá¶zà¸vÜ´sܳwã¼xä¼|Ü´vصqÙ³vدwÚ²tÛ±yÚ®{ܯvÚ±uÚ²rÜ´sÛ²uܱsà´wÝ´uÛ¶tÝ·{ܳrÖ®iÓ¨mÖ­tÙ¶uׯp׫nÕ­rЪpÔ«oÚ±vݱvÚ®pÖ­oÛ°tݲwÞ³tݲpÝ°rÜ°pÛ¯lÜ°qà´pß³sà¶xß³tÜ­tÜ°vÞ´qÞ³lÚ³oßµsÞ³rݳrß­mÛ­mÚ¶wà¹w߶pݶpã·vá´vݳpÜ°kÖ¬jÖ¯iܱoÞ±pÞ³nÛ°kÛ«jÛ¬nØ«mÕ¦dÕ£cÙ§cר]Ô¨]Ö«dÕ¢\ÎœVÏ¡_Ó¤hÕ¤cÒ£^Σ_Ï ^Ëœ\Å—RÅ“QÈ™ZÓ¤aÝ­hß²tà·{Þ´xÛ¯vÙ°rܳqß·rÞ¶qѦhËžbÔ¦dÛªkÜ®lØ«gÕ£eÕ¦eÕ¦^Ö£^Õ¤]Ö¦[Ó¦`Ѥ_Ö«_Ù®eÙ«hتeÒ¢ZÐOÓœWÔ¢bÖ¥_ÓŸ]Ì¡ZÎ¥ZÕ§^Ô¨`Í¡WÑ¢\Û­hÞ¬gÚ¦aС_ÊžYÍ¡YÔª_Ø®bÖ«[Ö¦]ݪbß³_ܱ]Û«]Ö¥^Ñ£[Ô¤_Ò¢a΢\Ú®gàµuà¶s߶oÞ±kݯl×­gÖ®^Ø®eÕ«gШ`ËŸZÌ ]Ó­f׬dÖ­gÖ°eÓªcÑ«lЦh΢fÏ©oͦfÇšWÁ•WÈš[Í¢ZͦfͤfÆžXÆ \É ^ÊaÌœ`Ëš\Éœ\ÍZÓ ZÖ¦cÖ§cРWÊ›V΢\Ô§cÑ bÈ™ZÌœ[П\П]ÏŸ`ÍŸ\ÍœXÌœVÈ–OÆ‘PÆ–UÈ™XË™ZÔ¢Vº“Uã¬sá«qß©vÛ«qبiÞ¦lß©mÚ¥hÞ¢hܤcØ¢^Ú£dØ¥gÕŸcסfߤmߢlÚ©jàµ{涅æ²xß®nÛ°uÞ´{ß°qÚ­nÖ²rײsÝ´và¶uàµwã»}ä½|廂㲀ޭtܱsß±sá±|ß³~Ü·{á½}é…轅羅辆帀â¸}à·~ݵ€à³€â²Þ¶{à¹xä·xà¶và¹七㶀á´ä¸~ä·á³€áµ}Û³xÙ´yä¾å»xá·€é½â³|Ô¨sÞ³{äº~á´~â¹zã¸wâ´}à³}ܲzܳ}Û±xÛ°uܯwÚ©oܪlÛªnÝ©sá°tÜ«pÔ£iÒ¢bÕ fÚ¨pà·wà¶yá´zâºzÞ¶xÚ¯uܯtß°uã°vâ²vÜ®oá­vå´{ã¶|ä´}â¶}Þ´vܯrÔ­qÒ²wàÁ„ëÁè¸|æºzå¶wã¶uäºvä¸xã¸zç¸~ç·yâ±rã°{æ¶|á­uÛ¬vݱuà±uá®mß®iÛ¬oݲrá¹äµ~ã³sá¬lܪkܱtà°uÛ§h×¥cÝ©hݪlÝ­sá±uäµwâ¸tÞ­nÝ«pÞ®ná«fÝ­dܳháµrà´sá·tã·sß²vÞ³}á¶yà³yÜ­vÛ­sÞ°wܱvÞ·{áµzÞ²uá¶xä³{á´zâ¹vå¸{心éÂ~æ¹xÙ¥kÕœdØ£jݬq߶tܲqÚ¯mÚ­jÕ¦iÕ©gÚ¯jà¯nÞ­hبlاmÖ©j׫lܬlܪgÜ©eܬdÜ«hÝ«pרjÙ«jã¶xÝ«nתsäÀ„Ö§bÆ–VÌ¡\ÍWÔ¨iÕ¨iÔ g߶tݵoÚ°oÞ»vá»{ã·xà´tß³vß³xÞ²xà´vß·pܳrÛ±zÙ®u×±uÛ¶yß³yÚ¬tÙ¬pÙ®lÕ«nÖ¬yÖ°{Ú°xÛ®xÖ­z׳sÙ¶qܲvß²}ßµÞ·~Þ¹~ß»{ÞµxÚ­qدnׯnÙ¯mÛ±rײuÖ²vÛ±zÜ°|Þ²wà´uÛµwÚ´sÛ´pÛ¶rÙ²m×°lÚ³rݵrÙ±q×°rÙ±uݱwàµxß¹wÞ¸wØ´tضsÞ»{Þ¸{Ü´tݹtܶtÚ­tÚ³xÛ·xÜ´uÙ¯tرuݶxݸtßµvã»yá»{Þ¸|à¼vä¹{ß³{Ö°sÙ°uß´|ÞµzÛ´pÙ²oÔ«mÓ®oÕ±jÚµlâ¹uÞ´pÚ´vݳyܲsÛµpݳuݳuÚ³jÛ±lÛ°sݲvß·{á´tß®nàµtß³vܱwܲrݳpßµsܶqÙ´jܶoá»yß»uݳoݳuß·zâ´rà´pܲjß·rÞ¶vܶtä¼~ä¾~á»{â¼}â¹|ßµxÚ³tݱsáµq߶sܶtÛ³n׫dتbجjÙ¬nݳlܵnÛ´tÙ¯vÖ¦kÊZÁ–WÖUÊ›ZÙ«mà´zâ¶}â·~Ý´|ݲuáµxá¹{ܳvÓªoШfÓ«hÚ±nà¸sßµlجc×­lÛ±qÞ¯kÞ®nÞ³pÛ²hÓ¦a×¥eÛ¯jÚ°kÜ­lÚªhÖ¬fØ­bÚ«_Ù«bÕ¤YÑ£YÓ§`Û¬bÛ­bÌ¥[Σ]Õ§c×­jÚ®jجgΦfÍ£dÛªlá±lÖ«bÑ©]Ò«`Ô«cÚ¯cÜ®jؤhÏ¡`УdÑ aÍž^Ѧjݵrå¹wà¶rݲmÛ¯nÕ«nШkЬfÔ®hÒ­hÍ©eÏ©hÖ­f×®iÛ­pÝ­nרfÖ¨lÕ¥mÏ¥hÌ¥eÊ£^Ä Z¾—RÄšQÆž]ÆœbÈœ^™ZÁ•UÄ“SÕQÁ•MÀMÀ“PŘTÒŸZÖ¦aÓ£]ÎœV̘TÎTÒ¢YÓ¢ZÌœTËXΛ\Ï™WÎœU˘RÍšRÏžTƘPÆ”RÊ–RË–RЙ`Ú¥b¹˜]å­sæ­ná¨jÞ¨iå­mæ®rá«lݦcß©gæ°pä°kã®kæ«là¨cá°eèµuæ²tã´rç¸yæ³yâ¨sÝ£lÛ¨oá³vâ±oÚ¨jدoÜ°pÚ­pܳsá´uà²tß±{ß°{Ý°{Û®{Ý°xà·‚Þ´}Ù®vÞ­{á°{â´}ç¸|ã·}å¸æ·|á°zÞ°xß°sà±{áµ}ãµ{ⵂá¸㸀幃å´~á³{á¶~ä³€á²{à²táµwá·}âÁˆèÊéÆèˆìÈ‹ä·uÓ«nÕ¹|ß½|áº|âÀༀܷ|Û¶~Ú¯zÚ´xÛ¸y×®uЦrÓ¨rܱwà´|Ý®uá°tá²pÝ­nÛ­rدqܲxã±zß´vãº{é¼zç¼{å¸zç²uçµxã¸|ß³xÞ²ráµzáµzá¸xæ¼{å¾|çº}ã³uسoÖ³uÞ´zäº{ãºzä¸{ã¹zä»~å»yá¸v㹀繅æ¹å»zâ»{â»{ã»wá¶{Þ²zà²vãµ߶|ݳkÞ³oâ¸~å¸}à²tݳsá³rä°sã±rà±pשkܯpàµxá´væµså²oä²kß°gجmܬrÝ©rÙ©kÚ¬gÛ«jÚ­nÜ°ià°là²qÞ°qݳxß³vܬlØ©iÜ«oܯzÛ²và­nâ®tßµzà¸~滂æ¸~绀éĆéÅŠç¼}à²qÚ¬iß­kâ³oá³oÞ¯lÚ¥eÑ \Ì›ZÑŸ`Ø¥fÛ©kÛ«kÚ¨kצhרbݪ^ÞªcÞªgÞ¨bØ«dÚ­j߯kØ©dÖ¨bà¬k× bÕ«qçÆŠÑŸbÂRÉ \Ϥcܯpת`Ó©aáµrá´mݯhÙ­oÛ¯nÞ°qÝ®rܱqݹzá¶xâ±tß­pÙ¨mÕ§hÔªkÛ«lܯjØ®iØ©jÖ©mÕªoبnÙ«s×­tØ­uØ®pÕ¨gÔªrÛ±{ß³{ß³y߶và·xÞ´yÛµ}Ù´xزoرqÖ¯s×°tÚ³qÛ®zÚ°Ù³|Ú¯vØ°oÖ±pرqÛ±nÙ´pÙ´vÕ°uÕ¯jÙ°nØ­rÙ±rÛµvÖ°xÙ°zß¹yá½{ã¼}ݵuÕ­sØ°sÛµzÞ¸Þ¸}ܹwÛº{ظطxÚµvÜ·zݹzß¹{ܹvÛ¶u߸vá½|ãº弃å¿ã¸uÛ²lÙ±oÞ³|Þ²{Þ®vÞ±sÝ·rܵn×±m×µsß¼wà·zÚ²vÙ´rÛ³rݵvÞ·rÚ·sݹuß¹vÜ´wܲtÛµyݶuà·oܵrÚ±xݲxÚ´u߶tÞ²t׫tÙ¯sÞ¶và¼Û·uÖ¬oÚ¬vÛ¯uÙ²uÕ¯nÖ¯jܵtÕªiÖ¦hÛ¶vݶtà²pá¸sâ¹vá¸xÞ¸vÞ´váµxß¹qÞ¹sÞ¼zÛ³lاeÓ¦iÖ°oß³uáµxá¾zà¼{á¶wܳmϤbÄ™WÀ—VÊ¢a×´lݵsß´uß·rݲpÞ°váµyÞ¶rÙ¯pÓ¬nÔ®gÛ²qß´|Þ³{Ù¯jØ°eÞ´q߶tÞµnÞ¶pܵoתgÕ©fݲnÜ°sØ®hÙ¯eÚ±hدaتZÕ¦^У\Ф\Χ_Ö°`à¸hѨbÂ’K¼‰HÇ›cÚ°sÙ®qÓ¨hÏ¡b΢dѪbÍ¥]ÇŸ\Æ›VÅ›YÊ¥eÕ®jÙ°jÔ«hÕ«nÕ¯lÕªcÒ¬fÙµwã¼~߸sÞµkÝ´kدkØ­mرrÚ´pÜ°hÔ§cУ`Õ¦dÖ¦mשkÕ«hΧiÍ£dѧbÑ©fË£cÌ ]Íž]Å”P‘PÔ\¿’W½•Q½“O¾N¿’N”OÑM¿LÀ“PÄšRËUÓ¥[Ò§^ÏŸYÏšTÑœ\Ñ¡aÏŸZСYФ[ËŸ]Í›XÍžQÌSÒšZÑ ZÍœNËšTËœX˘TÎV׫^¹šYé·rí²nçªhâ§nã¬ræ±tä®qâ¬qç²të¹sì¹uê¶vè²oé²iê³nì¶tí¶tè°oç²uä°qà¨jà©oâ°tæ±wâ®tÝ­qÝ­mÚ¬pÔ¦nצkà­pÛ§k×¥oÞ¬táµxã¸}ã¹~ä»~ã·€á±}ß±yß²xâ³~ä¶çº„íÀŒëºˆåµƒã¹}ç»|é¼~æ¾æ»ç¹z罂翉纃弅㻇â¹â¹‚㹅滀å»~ç¾…éÂìÇê„åÄå¿„á´|ѨlÍ¢pÓ¤rÓªpÒ§tÐ¥rÓ«rÓ«qÒ¦iФjÌŸjΟhÔ«pÕ®oÛ°vã·ßµ}áµuå´yâ¶â¹{æºxä»~ä·å¶|一⻆俀è¼~ç»å»}ã»|á¶ß³~Þ¶|ݲ|Þ²uá¶và·uÞ±mݱsجoÔ¦hÙ«rÝ­vß³yà¹}à´zâ²}à²yá´|ä·{ã¶}äº}áº{ß³â´|â·yÞµ}ܱxÝ°rÞ´yá¹|à·zÞ³qà³oݲuÝ®uß°zá´záµsÞ±nÝ°qÚ®nׯj߶nßµpâ°nâ²há²oã³xÞ³sÛ²jÜ°nÛ¯qÛ°uß®vÝ«oÜ®kÞ®oà¬uá°rß²oá²sß°tÜ°oá´náµqÞµsÞ´sà²vã³tâ³sá²tâ³uá´tå²tè²yâ¸uá·oá³mã³wä²rá²jÜ­jרeØ£_ÔYФcÖ©hÙ¨fÝ«lݯiÚ©fÜ«iÞ³fݱoá°pÞ®fÙ¨fÜ©hÝ«gÙ¦cפdÛ©eÔ£aÞ²|é‰Ì_Å•[ΤgÕ­jܲgÕ¤]Ó¥fÙ«hÚªhקeÏŸ^Ò `Ù«iتiÙ©màµtà²qÛ®pܯj×¢bÒ¡cتlÝ©oÚ©gÙ©dÖ¨gÙ©fÚ©eשfÙªmׯo×­lØ©mÖ¨jØ®nÛ¶uݶ{Þ´{ݸwݶsÞ²vÛ±vÔ°pÕ°tÙ®s׬hׯhÖ®j×­jÚ¯o×®pدtÖ°sÔ­oÙ±tÝ´qÚ³qسxØ°sÙ¯lÝ´qݶuݳxÞ²uݳtܳrà¹zãºá·|à¶xØ«rÔ¬lÚ¸rÞ±}Ü®{߸{Þ¹€Üºß¸}à¹{Þ½}㻀Ẁ޺}ݶuزuÚ´yݹwà¿€â¾ßµzݳ{Ú´vÚ´uá¸zâ¹}á¹wä¾yäÀ~Þ»zݶuÞ²rßµtܵuÚ±sßµqݹtݸxâº~á¼{ã¾}ãÁ„ß¼|Þ¶uÜ»}Þ¹yá·vß¹ƒà¶~à²xß´vÙ®kÖ©iÖ®rß´wã¹|ÛµsׯnÞ¶yÝ»wܹzÖ°uÓ¥gѤbÇŸ_Ì¢gÕ§iÑ¥_Ѧ`Ö¯jÚ¶sÞ¹rà·uÞ°rÜ­qÚ°oݵsÞ¶uÚ®lÒ¤fÏ¡eØ­pá¸xßµrà·vå¸á·wݳnÔ©jѨjΩlÈ¢`Ë¢^ѬjÕ´rÞ¶uÞ´pܵsÞ³yÛ²xØ´mÕ­k׫nØ®nÙ®uÙ«tÕªnØ®rÛ±xÛ²vÛ±oÚ­mÙ­r׬pØ­oßµqÚ±nÙ¬oܯmÜ­lÙ®lÙ®d׫fÖªhרeÔ¨fÔªdÞ²pÕ©eµ=¡i,²†OÕªoÜ°oØ­jФZÄšPÉ¡`Ê¡aÀœR¿˜Q™VÅŸ]Ï¥fØ­nܱnß·pܹwÚ³wׯrÖ­mÙ²vÚµ{Û´xÙ³nÕ¬mÙ®oÚ²jÕ®l×®nÖ¬lÐ¥dΪ_ѧ^Ñ \Ñ¡_Ñ bÌ›ZÉYÓ¦bÕ¦jÕ¥d×£WÒUÊ”QÄ‘MÂŽIÀKÅ–IÈ“IÉ•NË™Q˘XÍšTÉšKÆšMÍšTÑVÑ£_Ò \ÕŸYÖªcÕ©cÕ¢ZÑ YÑ¡XÒ SÑ¡WÔ¤^Ô¢]ؤaÛ¨]Ò¤QÌRÎVÑ¢YÓ§ZÖ¦[¸‘Zì»wé³sä¬pâ­pä®mæ°oÞ¯kܲpã·uç¶qéº{é¶sç³nê¸xé²oê´qíºvë·xèµxå­kä«lâ¯qä²qç²vè®yæ«tá¨kÞ£mÝ¢kÝ¥qß©sß©kß«mâ°sâµ{â¶âµ}ä¸zãµ{ä´wäµrã¸{å½…é½è¹çºäº~ä·~æ¼å¾€çÀèÀ„幀丅꼅뿂êÁŒëÂëÃ’ê¿æ¿ŠéÉ“ìÊ–ëÅçÀƒå¹}滀â·|Û¯vÛ°zÚªvÒ kÒ£eÏ¢dÌ¢iÎ¥kÔ¦iÙªoݨtØ£pПgÉšbФx伊àµsÛ©mã´wÞ³sݬrß³{ã½~ä¶vá·xä¿|æ¼{ä·{àµvß±tÜ°xܱzÞ´sÛ³uÛ±{ܱuÛ°pÚ±s׬qÙ­tÞ²uÚ°qÛ¯pܯmÖªr׫uÛ¬sܪqá¯yã³yá´qݱlÚ±tà¶|ß²rÞ±jÞ±mÙ­rÚ¬sÙ®uØ°rÚ´rݲvÛ´vÚµuÞµzß´xÛ±uØ®sÙ¬oÚ°qÛ´t߶yá³{Ù«oÙ­pÜ­zÚ¯vá³lÞ´rÛ¯qÛ¬jÝ«rà­lݱiݯjá°oá²yß´và´rÞ®oÞ­kà´pßµsà°uá±uà³rá³mä´pã´p߶nݳpܯoݲlâ±l߬gÞ­mà°sÚ¯iدiÞ°oß°sá²wâ³xá²oäµpâ³oß®hÜ«fبbÒ¥fÔ©hÚ³oݳpܬgÛ«jÙ©iÙ¨bÜ®jà±q߯j߯jÞ¬jÚ¬jܬgÞ¬gÙ­g׬hÖ©háºá¹|΢[Ϥ`Ô«iÕªmÔ¤eÊ›YÑ ^Ô§dÒ§aÖ§cÓ¨eÔ¨jÚ¯tÞ³uܯoÚ³iÚ²mÚ®gÛ®iÚ§hÕ¤b׫jÚ¯pÚ¯iקhÖ¤kקaب\Ù«aÙ­nÝ«pÛ¨eÖ¦fÕ¦oÙ²vÙ²w×±vÙ´vܳvÚ²tÛ­qÔ¨mΤlÔ¢hÖ cÓ `Õ¢cÕ£`Ó¤fÕ¡kÓ£eÕªkÚªmÛ­oÙ´rزqÛ´uݲrÚ®jׯlײnÕ²nÖ²pݲnݯnݱs߶vÞ´yÜ°}ܲyÚ°s×­mØ°sزrØ®lÚ±tÚ²tܱtÜ°sÛ°sß²vß²xÚ°pÙ°qÛ±tÜ°pݲqݲvÚ°uØ°tÙ²uܵyÞ¶xÞ¶yÞ¶xà¹nß¼sà¼Ề޷xݲqÚ¬kÚ©pÚªoÖ­jÙ¯oݱsÞ·uÞ¶{Þ·yß¿vÛ¸x×°v×±uÚ³yÞ¹}ß¼€Þ·}ß´{à¸Þ¸zÙ´pÙ´sÛ´sÜ´và¹~à¶vÚ¯oÞ±váµ}áº|ܲsØ­mÔ­mʦfË¡eУfÈ¡eÅždË¢eÓ©nÚ²rÜ°tÙ®uÕ¬sÔ®qÙ°sÝ®xÚ®wÔ­jΣc׫náµuà¶tâ¹và¹xß·tÞµuÖ­nÖ¯qݵ~Ò¯sË©dͦeÕ¯oܶsÚ±oÙ³qÛ¹uضs×±s×­lÓ§fÕªjÖ¬nÕ¬gÔ®hÚ­oÚ«iÕ«gÒ¦hÓ¦eÑ©dÑ«eÙ²lܱl׫lÕªoרfרg׬g×­\תbשkÓ©fÏ¥bÉœ]ÏŸdÓ£b·‡>¡s4µŽUÓ­nÙ±rÛ°rÖ­fÌ¥cͦfͨeÇ£cÆ¡`Ê¥fÆ¡cÆ¢eЬnÙ°oÝ´rÚ²nÕ«nΤmÆšfÈŸbÑ©iÕ«kÒ¦eÓ¢gÓ¨jÔªjÒ¦jͤhÕ¦kÔ¥cΟ`Ë™\ÊœSΠVО[ʘWÏWפZקcÚ¥gܧbÛ¬\Ñ¢PÎœKОVÍœYÌ›OÒ OÓ¡QÏŸUО]Ïœ[Ï›UÐœUÐZÒŸ]Ò¢ZÖ¤aܪeÙ¬[Ù¦aÙ¤aÑ¡WСTÑUÓœY×£\×¥[Ú¥^ܦZ×¢[ÑWÏ›VÒŸ^Õ¨fÕ¨`¶ŒVé¹}é³uê³rç²råµré·uä²tá¶xä¹{å±nç¯jç²nç°oëµxê¸uè¶pê¸qì¼xéµtâ¬kâ®rä­pã«rç­wê±rê¯tä§mâªhä°læ­lå²qä´uå¬rã«på­yà¬xß®sâ®yæ²~ç³yã®vá²wå´tå¶{æ¶{å·|乄å¶~â¸â¸ã¸{æ´uæ¯på³|缇è»ç·較íÈéÁçÄêÈ‹ëÆ…ëÈŠæÀˆà´yÞ°xÝ°yÞ­vܬuÜ«rݬwÜ­sݬkܱtÚ±uÞ¯qà°sá´|å·{â·~ܱ~ḆêÇ幀ݪrá³{æµzà¬pÞ³}à¹Þ³rá¶{â¹{áµvã¶záµvÛ±tÚ­uÙ«tدsÙ«rÝ«uÜ®yÛ­wß²wÛ²vܱváµ{ܱtÚ¯pÙµwÚ¶zã·äµ|Þ´uâ¶xä¸wàµsÛ²uÚ²zàµ}ß±xݬpÙ¬kبkÖ£oצlبkשpÛ±rß³uÚ¯uß³yâ³{â°uà­r×­tÚ³xá¶wá¸uà²sÛ®pß³yâ´}à¶và¶wá°yâ±vã³xà®vÞ¬wà³uâ»så¹xç³zä·zã·xÞ±vݱtá¸xã½ä»zå½zæ¿}ã»yå³zç·€å¶}ß±oÛ°lÞ«mß°pÞ±qß°pã¸wá¶wÙ®jÙ¯hâµtäµuã³sä³våµræ¹xß³nÚ©aÚ«mÛ®uܯvÞ·uàµtß®tÜ°iØ­eÖ«iÜ°pà²tß³yß³tÞ´vßµyß²rà°tÝ®oפ`ܪqçÀØ­lÑ©iÜ»|Ú³nÔªlÍ eÍ¡aÕªnÕ©nÑ«kÓ­nÖ­nØ´pݶrزoÔ¬iÙ¯nÙ±rÙ°mÚ²qܯtÙ­lÕ«fÙ¬gÞ±jݪhÙ¨lÙ®qÞ²láµlÞ²pÛ«qØ©nØ«fܪhÜ®gÙ­iÛ­hÙ°oÙ°vÚ¬kÖ¨lÕ¥jÖ¥cצcÖ¢`Ô£`Ö¥cРbÒ¡dÔ¢`Ξ[Р\Ø©^Ü®fجpÙªlÛ«nÛ°yÚ±tשgÕªm׫rÚ«oܯrܱuÛ²vÞ´uà·sݶuÙ°vݲvÞ¶wÞ¶tÛ³p×±p×´rÙ±pÛ®vÛ³wÚ°oׯq×°sÖ¬nØ®oܱqݱvÛ³wÙ³pÚ²uÚ±tݲpÝ´tÚ³uݲuÛ¯sÙ¯k߶pãµrß°nÜ·vܶpØ­gÖ¬oÙ­r×­mÕ¯p׶vݵ}ß³yÜ·sÝ»|ßµtÙ®jÚ±lß³pß´sà¶rß´uÛ±vß¹vá½{ß½}ߺwÞµvÞµ|㾃濂ݳzÛµzÞ»x߸zß·}ݺ{Û´sÕ®oÔªtÖªlÕ«gШkË¡kͤjÓ¬lÖ®nÙ¯oܲoÜ´tÖ¯vÖ¬uÛ²xÚ·{Ñ­qÔ°tÞ»xà¸}ãºäºz߶€Û´{Ù°qدv׳vÔ®nϬǫmΦlÒ®pÙ®rݳ{ܹ{Û³xÙ®tÕ¯t×­rÙ¯qÙ±oÙ¶pÙ±mÚ³nܶpÖªkÓ©gÕ«iÑ©iÒªhÙ­oÚ­mÓ§cШaѧaÕ¨`Ö¨`Õ¥cÓ§fÑ£\Ð\ΟdȘZÊ›_ѦhÆ]¿“TË `׫nÜ°tÜ´sÚ°nÕ«mÒ¬oÏ­q˨kÊ£cÈ¡hÆ¡fʧcΫoÒ¨nÙ­mÚ±uÔ¨jΟ[ÅšYÀ–XÉžYΤ_Π^ÊœZÌœZС\ÍŸ\Íœ[Ïœ[Ë›XÍœZΚVɘPËšWΞXËœRΞYÓ¢^Т^Ñ¡`פgÜ©`Ö¤RÕ¤[ß®dÛ®`Ö§\Õ¥YÖ§^بaÔ¢WÏŸSÑžTÑžUÎœQÍžPѤWÔ¢Wצ^Ö«aÔ«dÖ­bÍžQÍ›RΡTÊœQËRУWÕ¤]Ö¤]Ô¤[ΟVÓ VקbØ©bÕ§W¯Nçµyê¸{è¸{æ¸~æº{é¼zæ¹|àº{äºzå¯tà¬jä°oä¯sã¯kç±må±uæ´qç±oݪpÙ©hÝ©gߪgà©eݪiã°mæ®oäªhå¯mê´tç°sä®qæ±kæ¬hå«jæ°sã¬r߬pߪrá«tä¯wá­uÛ©nÛ©lÝ«rÞ­rá³väµuà¯sÞ®tß«r߬oÞ¬lß©nà¬oà²sà°tݬqÞ­yà­ã´~æ»ä¹‡áµ„ß²}Ù²tØ©oÙ¨uÛ±{ßµ}âµ|â³|à°yÝ°rÞ³w涀è¸~ã²yà­yßµwã½~èÀ‡åÀ…æÀ…é¿ãºwÝ°páµtæ¹}ß®}à³{ß³uØ«sݱ~ⵂ޴~à´{â²zÛ¯tÛ¬nÙ¨u×®yÞ±và¯z߶~á´zá´{ݲ|Ú±ܵ€Ù±tÖ¯sÕ³xٹ㺂à·~ݵ{Ý·yܸx߸{ܳ~Ú³zÞ¸yÚ°uÚ­oÞµvÚ³vÚ«nקlÔ¢iÔ¦qÖ¦uÕ§tÖ©rÛ­oÞ³mß³pß°rݱmÛ±mݯoݯnà°ráµuãºvæ¼vá´oÞ³sã¸涀ä¶{å´}å³yâ´sâ¹yæ¼zçºwç´rå´uâ¶~â¶}â³zä¹€æ¼væ¼sèÁ~ã»~âµtæ¼{æ½ä¸vâ¹tã·rãµxâºxâ¸zã¶á¶sܳqܲsà·xàµzà²tà¸zã·{äµs߯lÝ­hÚ°pØ°sÛ­iÚ®iÙ±rܸxß·qÞ³nݲoݶqá¹xá»{ݺzà¸wâ¹vÞ¹vá·{ä¯sצ^Ù±tã¾…Õ¬fÛ³rç¿}߸tرnЦ`ϦgÒ©lϦjͦbÍ¥^Í¡cÌ¡eÊ ^Èš\ÈžgÍ¥iÒ­jزmÛ¯kÝ®má±lÜ°mÙ°rÜ·vÚ´mÙ¯hà±sá²uÞ²vܱm߬iÝ©lÙ«jÛ¯eܱbØ°qدqÛ¯hܯoÛ®nدoÙ±rܯjÕ«iÓ©eÕ¨dϨdÒ¦bÔ¥^Ï[Ï›YÑ¢SÓ¢YקdØ©fئiÕ¨jÓ«lרlÕ¦fÓ¡cÖ§kÙªpÕ«q×®nß´vݵyÙ®qÙ°pÙ°sÝ°qàµuß³|ݱtÙ²pÛ²rÝ°pÛ®rÞµuܳpØ°pÛ³tÚ²jÖ¯oØ«oÛ­kÙ¬oØ©nßµwßµ{Ù®oÚ³jÚ²nÙ°nÛ±oÚ­vÜ´vÝ·oÜ´ráµwß¹uÙ¸rÛ´uÙ²tײi×­f×®mÞµuá¶vݶqß·tà¸tܵqÞ±uÞ³uÛ¶qÛ±pÞ­pÚ¯qÙ±oÞ´wß·vÞ¼uÝ·wÛ³wã»~弃ߴyݲvÛ°}Ú±xß´{ÞµyÚµuÙ®pÕ¬jÖ¯jÚ±rÙ²tÖ°jÑ¥gÓ¥jÙ®nÙ°pÛ²vÛ°qÙ¬nÕ­uÖ¯oݵqÖ±uÒ¬rײrÙ®pÜ­sÛ³vÙ´{Ý·„ܳvجjØ®oÖ«lÓ©gɦhÄ£dʧhÒ©mÕ¯n×´uÖ­tرrÚ²vܯvÞ´uݶsܶsÛ³rÛ¯jÙ­hשkܯrÞ´xÛ®tݱqܶxÛµqݲgرrÓ­qÕ¯iÓ¬^Î¥_׬kجcЦ`ЦeÏ ^Í¡aÕ«tÖ®tϧjÔ¥mÙ­mÙ­jÖ«hÓªeÓ§fÓªfÓªf̦fÇ_Å™YÅš]Ç cÄ `ÇŸ^Ò¨hÙ°kÔ¬jϨjЫhʤ_Éž[Ξ]ËœWǘTÌš]ËšV”IÆ“TÍ™VÌž[ÑŸ`ÐXΟVСYТZΟ]ÏžZÓ¢VÓŸ[Ò›]Ö YÙ¦WÜ¢Zß©bá¸ká±mتgÒ§aצ\Ø©`ѦbΟRПNСSÍžWË ZѤXÏ¡UΞVÎ^Р^ΤWĘQÄ›VÉ¡RƘNÓTÊšZФ^ѧ`Ô§^Ñ ]ËœYÒ£XÕ¦^Í£V¬‘Nê½ì½}ì¿~ç¿zâµnä´uè¹åº|ä¹sá²pÚ¯qÛ¬p߬má®gÞ«bÞ§kÞ¤lÜ£aÙ¡aØ¢`Ûªfã­lá©fØ¥bã«fç®qá©rã«kç±mè±qå®kç®mç®nè²oê¸yæ±tä­lá®nܬnà­mäªlݤlÕ¥jÚ¬pà¬nâ¬fä­ká§oÞ¦rܦqÜ¥mܤiݤhݧkÚ©mÚ©lÙ¥kÙ§nÞ¯wã°{߯uÜ«xÚ§{Ø¥qÕ¤kרkÞ¬u߯{ݱzݳwà¯uÞ¬tß²xã¹æ»zà´mÞ¬lÞ¯sÙ®sÚ®oà¸tâ¶{æ´~ä¶{á³uÜ°qØ­rß®{Þ®xÝ®oÚ«oÛ«sâ²uá³vß°~ã°|á³vÞ²uߪtÚ­yß·ƒçµ€ä¸~彃äµxܲvÙ¯vÙªoשnÖ©nاkÓ©oÔ­sܳuÛ³yÙ®uÛ®uܯzÜ®zݳyܵ|ßµ}ܲyÚ¯vß³x߸y߶xܲrÕ©fÕ¦hÔ¥cРaСdѧcÖ¦l×¥nÝ­pâ±xÜ°nܯfܯmÜ­oß°rß²uá´pݯpÛ²xä¹xß°oÝ«kß©kÛ¨nÞ¯kãµrá³qÙ«dÚ¦dÜ«eÚ°kÞ±rß³qà¸rä¶vâ´vá¶xàµpÞ³mà´rä¸vâºvâ¼wæ¹zæ¸|ä¸{ã´yÞ±nÙ¯iÙ¯uÝ´xà¶xß´yß¼yàº{ݲuܳsÚ±rÕ®nÓ­pÕªlÖªnدvÚ·qݺuãº|âº|à¸yß¹á»{â·pá´{á»{å¾zã»{â¸y߶oÙ¯o⿆߽Ô¬o߻߻}Ö¯wÕ¬nΤ`˧gΨgÍ¥fÍ¡`ÊžZÌ¡dÌcÆž`È¢dÌ¢dΪjسxßµ}Û­vÚ«vܱxß±tݵxݼvà¸s߯vܱ{Ü´yÞ³oÞ°kÚ²oÙ´rݳtßµyÝ´tß³nß²mÜ­sß°rà´pܶwÚ¶qÛ¶nß²pܱmÙ´kØ­jÙªlÙ¦hÔ¡eÓ¢gÓ£aÒ¢]Õ¬fØ°fئ_Ô¤cÕ©eÖ¦]Õ¤YÕªbׯhÚ¬mÕ¨jÕ¦aÛ¨fתhÖ¦`Ö§_Õ§iØ©mØ­n׫lØ­kÚ­sÞ°rܯnÚ¬rÞ±vܲvÚ°qÛ®jئm×£cÖ¤`Ö¦kרhר`ݯcܱd׬jÚ±nܵhܲnÞ¯qܳrܶxßµoÞ´jÝ·xܹ{رqÖ®iØ­iÙ«jÒ¥fÓ¥eÛ«pÛ¯rÙ°lÛ®qß²uâµsݳoØ®iÙ«gÜ«kÝ­nܪkÚ¬mÛ²và´tÞ´gÛ±fÙ¬oÝ°sݳ{Ù±sÝ°pÝ®wÝ®và±yÝ°xà±pà³rÙ¬mÙ©kÜ­pݳoݲjÙ®hÔªiÕ¨fØ«hà³uß²nÚ°hÜ°mتmÖ¨kÖ¨jÏ£eУgئiÚ¨sÛ­tÛ²qà¹~à³yÝ«vÞ²yÙ±qÛ®sÙ­qÒ§jÎ¥sɤl˨hÓ¬oÕ­mÕ°tÚ³yܵyݸxܸtÜ´sÙ®r×®pÙ°mÚ±pÙ³uÙ³qÚ²qݱ{ß³zÞ¸uÜ·uܵnÞ´oÛ²u׬lÓ¦hÑ¥kϦjУjÓ¥gΠbËœeЫpÚµuÚ¬oÓ©hÙ­mÛ§pÒ¡kФfÐ¥cТbÕ¥dÔ¥bÏ£hΟ`ΚTÎœXË¢\Ê¢ZФdÚ«iÛ«fÕ©kÕ«tÓ¥iËš[ȘZƘVÇ•KÊ™QÉ–S¾ŠIÓNÎWÒ _Ô¤`Т]Ô¡XÓŸWÑ XÓ¢WÔ¡UÒ¡TÑ RПTÓ¤WÙ¦^Û¥bÞ®iá²hß­f×­oФ_Ó¢[Ú¨iÖ¨aÓ¤XÔ£\Ô£_Ô¦`Ô­cÛ±eÙ¬fÒ¨eÒ¥dÏ¥X΢RÆ›W¿˜XÅ—WɘWÔSÆ–TÏ¥bÖ­fÔ¦eÍšVÈ”QÎœ\ÌžYÈšP²ŠNç¼~é¸~æ¶}ã±vÞ­tâ³vã³tá¯lá®mÜ­tܵ~â³|á«pÝ©mܨmÛ§gاfÖ£fÖ¡]Ñ]Ó¢bß­aܧfÔ£eÛ§bݦbÚ¦bß«câ°lâ¯ká«dç°fëµoé²sé³tè³yæ°tã²tã³rã°oá°sß«qؤdÚ¦há«qâ°på®oä­oã°sá¬oÝ¥gØ¢gÙ¦gÛ¨gÙ¥iÜ£jÝ£nÛ¨oÞ°oà°uܪrØ¥jܧkÛ§kÚ§oÝ©uÞªpÞ©sÛ¨rܨkߪoá«sã°wæ²}ä²yÞ®kÚ¦gÚ¦cÖ£cÓŸjÔ¥kשoÚ©mÜ­kݯnÙ©mÖ¢jÙ¥gÙ¨hØ­lÛ¬oݪqà¬sà«oÞ¬lÚ«pÛ«nÝ­pÞ®u߯tæ³vãµrÛ¯jÛªlÖ¦kÒ¥kÕ£nØ£nÕ¤iÖ¨iØ­q×­u׫uÛ¯{Û­uØ¥nÖ­tÙ³zÞ®xÛ®uÙ±x඀޵|Ø°tݱuÞ´yÞ´~ßµ{Ú±pÕªpѤnÒ iФnÕªvÙªuÖ©mÕ©oÙ«sÚ¬nÚ³sß²uß°rà¶và³rà°oá²oâ´tá¸zܳs×®mÖ®kתhتlÛ²qÙ®qÖ¤jÓ¢eÓ£bÙ¤hܬrÙ²qÛ°oÛ°nÚ±oÛ®qØ°pÛ²pÛ°uÚ³sÙ²pܱuâ¸xå»zã´{ß²pÙ¬fÒ¡iÓ§nØ®mݵoà¹uß±yÝ­rÖ¬fÒ§gÒ©gͧ`Ï¥bÓ§kÖ«oÙ²wÛ°tݱtã¹zã¹zàµyá¹~æ¹€ã¶zÞ¼xݶwã¶{ä¼àµzÛ­sׯqá¿…Ù°rÔ©ià»yܳrÖ¬nØ­mÖªn×±xÜ´tݳoÙ³rÖ±lÙ´xÜ´~Û°vÚ³xÚ¶vׯsܵ{ã¾~á³v׬kرnܵvÞ¸oß¹tÞ¹wܵsÞ¶xà¸}Þ´yݵqß¹qá¹vÞ¸xݹwá¸zà¹vÞ¶uÞ²vܶ{߶ã·{â´vÞ²vܳ{Þ¸zà¶{àµ{Þ¶qÙ³nÛ­nÝ°pÚ¯mØ«kÕ³rÒªoÕ¦iÑ«dÏ¥gÖ¨lÖ­iØ©lܬk×­nרnקhÔ§fÖ©hÙ®gÚ¬kÚ«qÕ§dΤcЫnÔ§kÔ¢eÔªhÙ¯k׬h×­fÚ«hÕ¦dÔ§fÖ§gÔ£bРaÑŸbסcÙ¨cÚ¬cاcק_Ú®bÛ­hÛ©oܬmÙ­jÙ«kÚ°pÖ¯pتtÙªvÕ¨qשjÙ¬lÚ¨pÖ¢eÓ¢`Ù§jܬlÚ©fÚ§dÞ±jÛ²pÖ¨e×¢bÖ£fÕ¥dצeקbÖ¦`Ô©dØ­fÜ«oÖ¥oÒ¤eجkݲrÝ­pÝ«mÚªrݳtâ¸rß°iß°là³oÚ±hÕ¬hبgÙ¨cÛ­fÙ«gÖ¤aÕ¡\ÏŸ]Ô¨f×­jØ®nÝ­pÙ¨cÕ¨cתdУ^Íž]Ò¢_Ú©nܱzܵvÚ³sÕ¯v×­xÙ¬tدtݳxݱnÙ­fÕ©iÌ£jÍ¢kÏ¥lЦhÖ©l×®uØ­yÛ®vÛ¯uÕ©rÕªqØ°nÚ°qÚ®{Ø°uÚ²pرtײvÚ²uÛ°xÚ´xÛµuݲwݲvÕ¨lÍ¡gÈ¡aÈYÈXÈžXËžWË Z˦_Ó¨hרoÒ¨kÔ§fÓ£cО]Ñ¡XͦZÏ¡ZÒ¡bÕ¦eÖ£bÕ¤]Õ¥ZÕ£]Ñ¡^Ф]Ò¢bÓ¢bÓ¥^Ѥ^ÍžZÉ–QÊ•QÈ›RÈ™QÈ–RËYÉ›TÁ“IÀ“PËœZÖ§_Ô¥ZÏ›QÐTÏ¡ZËžVΠUÓ [ÑŸ[ΠYÓ¡VÓŸWÒ ZÖ XÛ¥bÛ«cÚ­aܱdÕ©aÔ¥eÙ­f׬aب^Ý©^Û¬dÙ®iÛ­lá²pà´l×°b×®cجhѨjÅš`¾N¿’OÃœTÅžYËŸ_ÍŸ^Í¡bФaͤ_Í¥aÔ©bÏ¢XËœV³ŽZä±xã¯xá²wà¬tØ£fÞ¯lä³rå¯lå°náµw澄ê¹|ä²oã²tæ²vâ¬iÜ©eاeרkפhÏbÓ¢hÚŸd×ZÕ ZÔŸ[ÕŸ]Ø¥_Û¨`ãª`å­dä±që²të³qè³uç°pé²oç³xå³yå´sä¶sæ³qá«nÛ©pÞ­iæ²lç³uâ±qâ¯pã°qâ­pܦjÙ¨hÜ©pÛ§rÜ©iÝ«hÞ°nâ¯vä¬zß«uß©xߨvÚ¦pݧkÝ«lÝ°lá°jß©lß«kà­iâ¯kå²så°vá­tÞ©mÞ¨kà¬mà¬oܪoÙ¥gÚ¡kÙ¡nÙ¥hØ¥hÙ¥hؤe×¥hÚªsà¨oÞ©fݬhÝ«oÝ«màªoÛ©rتmÚ«nݪpà¬oܨlØ¢jÕ gÙ aÜœ]ÔbÖ¡_ݧdÚ©nÜ°râ³vâ®x߯wÞ³{á´{ݱtÚ²uݲzÞ±yÝ®wß´}⽂â¹|Û´vÙ³zá¹€ãÀ‚ãºÞ²zÔ¯rÒ­rÓ¬mÕ«sÛ°|Þ·yÛµwØ®pÕ¨iÖ­kà¸uá¹zà¶|ã¹~å·|å¹}æ»vãºwà¸z߶wà·vâ³tÜ°tܳsà²vÜ°yزuÚ±sݳtÙ´uÛ¶}à¹xÞ²pݯtÛ´zÖ±sÓ¬oÕ°qÕ²tÓ¯yÒ¬uѪtÕ²y׶vØ®sÙ«qÕ¬oÒ©rÖ©o×­pÚ¸yâ¼{â·uá²qÞ±u׫qÓ¢gËŸdÏ¥k׫nÚ®lÞ±pß³sܳsà¶sä¹zã¸xå¼vä¿}ä½€æ¹|à¶zà¹}ä¹{á²}Õ«q׳q߹ͣmÕªoä¶zÞ´qá¹{áºà¼ã¼á¶vä·wä¹{àºzá¹zãº|á»}ä½}â¿{ܵvßµ{â¼{àºv߸qÝ´pÙ¯p×±qÜ·{Û¹zÝ»{á¶~ß²xßµsߺxá»vá¹zá¸{ݵvݲzâ³vá¸uܹwݹyß¹|ß¹y߶xܲ{ܳuÞ³xÚ°yÞ´xàµvÕ²qÖ²qà·väºtà¸vÛµrØ®a׫h׫qÔ¬mزmÙ±kÕ¬h×­kÚ¯qÚ±x×­uÒ¦kÓªlÛ·vßµpÙ«jѧjΦmÒ­qתlÕ¥^Ó¨WÕ¨\Õ¨bØ«iÞ®lÛ¬dÖ©jÖ¨mÕ©kÖ¦gÔ¥^ب^ÚªhÙ¥fÙ¨bÙ«fتhÚ¬gÞ¬gÜ­iÛªeÚ¨eÚ°jÙ­hߧj߬kÙ©cÙ¥aÚ¬hÛ¯oÕ¨lΠ]Ó¤\Û®`ß²fà±mâµqà²gÔ©`ЦcÔ¦`Ö¦_Ô¨bئiÛ§iÖ¦aÖ¥eØ«iØ®gÖ­hÔ¬hÕ©eÖ¬bرeÛ±oàµuá¹rݵnß´oáµqÞ²nß°jà²eÛ±gܳnÞ¯lئgΣZÊŸWПbÑ£fÖ¨bÙ¬cÕª]×¢]Õ£gÓ£aÑŸ\Ñ¡dÙ¬mݲmÛ­hÚ§jÖ¦gÖªkبhÖ¨gتhÙ­dܲjÚ±lÖ«gÓ¦eÎ¥hÒ¥jÓ¥eÒ¦gУcÏ£cÓ¥eÒ¥`Ö¬mÛ¯tÛ¬oܲqÛ²qÙ°nÙ±mײuÕ­rÖ¬hÛ®oÚ°t׬oקpÒ£m΢bÊ¡^Êš\ΛYÎSÌœVË›XÌ–WÉ–YÍYÏVΙVÎœZÉŸXÎYÔŸUÎœPÏšUÖ¡[Ó£XÔ¥YקYÕ¦ZÓ¢bÓ¡aÔ¢_Ñ¡[ÍŸWÏŸUÌšRÅ•KŘLËœOÌ›RÌ›TΞXË™VÈ›UË¢WϦaÖªcÖ¤ZËœYÊœXÎOÈ›LÌžOÐœSÍYÍœWÏ™OΛUΟ[Ñ¡^Õ£`Ó¦^ÕªdܱkÚ­fÕ¨iدnÖ°fÔ©aÖ©_Û«h׬nÕ®jÞ´mßµrÛ±jÖ®eÒ©eϦ`É›TÁ“QĘZÌ¡YË¥YѦ]Ó¡[ËžWϨ]Ò§_Ò¦bÙ­hØ«jÕ¬kµ˜`ݱsß±xⵃà¸Þ³xã¶|ä¹yåºxå¹{â¼}ç¿…è¸zä´qçºvá²oÚ¨bݨcÝ®mÞ³sÛ°vË¢dË¢ZÕ¦hΣlÎ¥bÒ¦`Ô©f׫jÕªjÚ«oß±oà¶oæº~蹄ç·xç¶qç·véºvë¿xè¼~ä¹yè¹qç³qâ¯pã±pã³rç³tå³râµuæ¶xæ³oߦhÕ¤nÖ­uÞ²sà®oܬqà¯tä°rç¶uå²uâ­ná®hß©jݦhߨmàªuã®så°pä±tæ¯qå¯mâ²qã²ræ¯tã¬q߬lâ°qå±qâ¬qß«sÝ©lܨhÛ¨gÜ«há­pà¬sà©pãªkÝ¥fܦhÞ«gÞ«gÞ®mß©kÝ¡eÙ¥hÚ£nߤlÞ¦lÙ¢kÕŸ`Õ¢_Ú¦eÞ£cÙ `Ö¤`Û¥hݦm߬sâ¯qá®mߪoß®sÞ²qÝ«qÛ«uÛ­sÚ®rØ©pØ©rÙ°u×±vÚ¯xܶ€à¼å»‚å¶xÜ­lÕ¬yÔ°tÒ«iÍ¥jͦfÒ§dÕ©jÕ®nÖ®lܳsâºzã·sá¶{ໃ޿€á¼~à¶yß·vã·}à¶{ã·{áµ€Ù³zÚ³pݱoàµsà¶{ܲzÚ³rÛ°tدzÖ®xÔ¦fÒŸ]Ò¦fΩfÈ¡eÌ¡gʤnˤtË¢sÌ¢mϤmÓ©qÕªmÔ§jÔ®r×´uÕ¯oÖ³tÞ»{ä»xå¹yä»{ä¿{à¸yÛ´w×°oÖ°wß·~߶xÞ³râ¸rá´tÛ¯tÚ¯qبiÙ¨mÜ®pܱrÞ²uÜ®tÚ²€Ù²×«mϧaÙ·{ß´|Í¢dÕ²nÞ¶uÞ·qä¿yá¾~ã¿}â»sÝ·lâ¹qä¹xà·{â¸zæ»{è¿ã¸}Ý°pÙ±sݱvÞ±tÞ¶vá¸pÞ®mשiÕ®oÛµxà³và³uâ¶uß¹vݺvÞ´qÚ³tܹyàºwܱoÙ­rÖ«kÓ¨gÖ¬uÝ°xß²oÚ­jÔ©mÒ­kÕ«rשtÕ©p׬rÖ­pЦkÑ©pÙ°mÚ°mÚ¯tÙ®qجkÚ¶vÚµx׫gÚ°pÚµtÕ±m×°pݳqܲpزvÖ­qÕ©oÙ´}ß·{Ú²jÚ°nسvÖµsÜ´vÛ°pÖ­iÓ©hÔ«kÚ³nݳjÛ³làµuÝ°rÖ¬jزjÙ²kÙ²pÛ³rÙ±sÚ¬j߯iÚ­mÙ¯qÞ²uÚ¯lرhÛ°gÞ²là´rß³uà²mÙ­cÖ©gÖ¨fÖ¬gÔ«bÊ¢[Ê¢ZÓ¨^Û²gá¸má¸rßµqÚªiÔ¨eÔ§aÖ©gÖ¬lÜ«fÞ¬gÚ¯lÛ­kà²rá¹|Þ¸sرnÕ®sÔ¬nΧ^Ï¥^Ú«iÞ±tÞ²vã¶pæ¶oß°rÝ´uàµr߶pÞµvܲoÛ°nÕ¨nÍ£bΤcЧbЦ`ШcÒ¦\Ó¡YÕ§`ר_Ñ¢ZÒ¥^Ü­jÛ¯jÖ«gשbÖ§`Ö«jÝ°kܪeÑ¥eÒ§bتcÙªgاeצhÖ¦lÔ§eС[ÏŸZÏž\Ï›]КVÒžY׫cÖ­`ÕªcÙ±gÛ®iÙ©lÙªr׬tЩjÏ¢bÒ¤eÓ¥b΢bÌ¢^ΞWΘUКUÑœWÑ›YÓž[Òž[ÐUÏ™TÈ–UÄ•LÈ–IÌ•MÊ”PÆ“OÈ–RΞVÑRЙTÏŸ]Ñ ^ÕžZÓŸUÓŸTÖ£XÕ¤ZÕ¡[Ò aÑ¢\Ï QËTÇœWÖMÄ•QÊŸVУWÏšTÈ•PɘXËŸ]ËŸ^Ò¥cÒ§^΢ZÍ¡_Ï£aÔ¥\Ù¥^Ò£[ÉŸSÌUÍœWÊ™TÏœVÕ§`Õ­eÔ¤^П`תkÙ®jÖ«lØ°pÕ­oϦgѨ`Ö­eØ­iÖ«jÔ­nÖ¯pرmجcÓ¥[УZСUÉVÆœ^Ò¢fשjÖ®lØ­eÕ§`Í¢\΢YÒ£cÓ¨gÕ«iØ®i·™\ä¿åŠ㻇忄èÅ‹íÄîʼníƇîÆŠëÈê„ìÀ†îÄŠîÉëÃäµzâµ}ä¿{ê¾{á²{Í oÍ¥kÓ¯qÒªoÒ¥lФfͦbÑ£fΠkÎ¥nÕ¬pÜ·væ½}é¼{ä»oâ¹pæ¹}ç¹ç»zæ¶zå°uèµqè¹pè³që´nëºuê¸xéµpé¸sé¹væ³tá¬mÚ¦gÙ¬nà·|ä²sà¯má³tå²wåµ{å³rä®oã±oå°kå®pà°xã°zç°wè²}ê³yê²ræ³uä³wä³vå´yæ²zâ¯rÞ¬iݪkâ¯må²nߪjÛªkÚ¬mÚ®qá±zæ´yæ°qä«pܤhØ¢cبeÚ¨eߨkà¬kÜ©fÚ¥gÛ¥hݦjݧgݧeܦgÕ¥nØ©uà¯sÞ«iÜ£fÝ¥dÛ¦eÛ£hܦhÚ¦oÚ¬oÙ­jܪkÛ«pØ©sÙ¦nצjÔ¥j×£iÔ fÒ¢fÔ¥nÖ¬qÛ°pÝ°vÝ°vÙ¤kÎœcÌŸdÏ¥aÈ ]Ø^Ř_ÊŸ`Ì£_ѦbÚ²oß·vâ¸xã»ã»â¹xà¸uà³zÞ³}ܵvݱlÞ¯lÛ°uÜ´zÞ¹xߺuà¹yß±oÕ£_Ìž^ËŸbÑ `Íš\Â’V“QÉ›cÑŸhÊ_Ê¢fÓ¨oÔ§oÒ¤qÑ¥vѧrÖªvÕ«vÕ©sÚ®|ݵ‚඀฀â½{å»zá³uàºuçÁ澂ä¿{ä½xà½zåÂçÀ„å¼~æ¼{ã»xà´uÚ¯kÖ«iÚ«jÛ¬cÙ¯lÜ«kئbײmÙ´tÖ«lÓ«rᾉ֬oˤcܺ}ݵzݶsâ¼zÞ¹zÞ»vÞ´sÛ³wà¼}ݼyÛºxà¹xá»zàºxâ³u߯nÛ°oÙ­rØ­oÚ´tݵtݱqÝ°yݲzÞº}㼀߶޷|áºzߺ{à¸x߶và·yܲvÖ¯nÖ¯kÒ§jΦlÖ®lÞ±rÛ°wÖ­mÖ°lÖ°rÕ®oØ´lسp×­uÕ¨pÓ¦jÖ¦iרj×­jÖ¯k×®rÛ²y㻂ߴ|׬pÙ±oÛµoÙ®rÜ°pÞµrÞ²uá·yà¶yÛ³vض}ܸ}Þ¸}à»}Þ·yß´zḄàµ{à°sÜ®r×­kßµtá»uà¸uä¹zã¸và·uà¹xß·yàµvá¶sã»vä¶uÞµtá¹qâ·tà´wãµsâ´uà´wß·yä»yã¼vã»xá´sØ©fÓªcÖ¬jÔ¨mΣiÉ¡`Ë cتkÝ°rÛ±tÝ´mÙ°e׬dÛ¬dÛ­h×®oß´qã¸uá³yá¶vß»vߺ{à¸vß¹vÚ¶vØ´nϦ_“RÇ–RТaÓ¨hÙ¬hݬsÖ©oÙ¯nàµrÜ°rÚ¬oÛ¬nܯrÚ­lÓ§bѨeÔ¨cϦaÌ¥dÑ¥cÓ§bÖ¨dÕ¨bÒ£bשiݳmÞ²jÙ±lݱoݯlÚ¯oÞµsÚ²rÓ§jÕ¦hÕ©hÓ¨_Ö§bÖ©kÖ¨dÕ¨^Õ£\Ô£\Ö¦bÖ¤dРWПTÒŸTКNÏ—SОWÒ¢XÓ¢`Ó§`Ö¬bÕªhÑ ZÑ›ZÓŸbÑ¢[ΟZÎœWΚRП[Ò¢`Ó ]Ñœ[Ô SСMÌœTÌ™UÊ“JÇŽAÇGÄ’KÃCɘMÏ¢YÕ£VÓŸWÔŸ]Ô¢ZÕ¢RÖŸWקdÛ¯fÚª`Ó¦^Ñ©bÕ¦aР\ͤVÍžWÈ–UÅ—KÊœRÒŸ\ÌTȘMË™TÍ \Ρ^Т`Õ©cÙªeÙ¬hÚ±mܯmܱkجdÒŸ^Ρ]Ì¢WÈ™RÌšYÓ¦_Ù¯fÕªaÍVÒ¥`Ö¯oÕ¬nÙ¯m×®iΤ`Í£]ѧcÖ¬jÙ­n׫o׬kدkÕ©cÏ¡`ѧfÓªfϤ]Ì¡[УbÖ¨cݲo߸x׬jÍŸ]Èœ]Èž[ͦYÔ¬bÙ¯f¹•YèÂçÇ帅湈êËêÁ‰ìÄŒìÆŽê¿‹é¿‹ìÃòÈ–ñÈ’íÇŽìÄè»ß¸á¹}ç»|á´}ΦqÈ¡lÏ¥oТjÌœfÈ™`Ç™]Ç_ËžeОgÕ¤dתhÛ¯nÞ°qÞ­tÛ©hÛ¨eß®mä²væ³zæµvè¹vè¹yçºwê¼uì»{é½|åºwç¹}é¹~â³pݪjØ©fÕ«hà±uä¶qã¯hä­hä²qà­qÞ®rãµtä²wä³xç¶tç¶væ¶}èµyè¶uæ¶råµnâµráµsà±tã³ç³{æ²qà²nݬlÝ­nß²pß­má°ká±mß°nâ³sã³rã­lâ­kÞ¬lÚ§kÚªjÛ«hݧbݦ`ܨ`ݨdÙ¤dקcá¬fâªlݨoؤhÛ¦iá«lâªeܦeܪiâªbÜ£^ØŸ_Û¢`Ù©eبkÛ¦lܨrÙ£pÚ hÖ¡fÕ¥gØ©lÕ iОbÕ¤j×¢iÒ¢dÕ£lÖ jÑ™`Ê”NÄ“PÃ’]Ę^Ä›]Å•[Ëš_ÑŸ_Ó _Ø«fÝ´nݸvá»|â¶}àµxàµwÝ´yÚ°Û¯{Ú­mÙ¬pÚ¬vÜ­vÝ°sà±vá´{ܬpÑœbÎcÍ¡`ÇšXÄSÆP‘ZË¥o×°rÒ cÖ£jרtÔ§qØ«sצqÕ¤lÔ¨rÔ¦pÙ¬p߸~ã»…å¼}å¸{à¶{á¸{â²{â¸yæ¿~ã¿~Þ½|ݺyà¸yâ¹â·{åº}ä¿ä¾}ä¿zâ¼wå¼zå¹nݲjÛ³sݱnÝ°qÞ¶uݲpѧh×´zåĊΦdΨmຄٯtÜ´tá¼{ÙµqÚ±rÙ´vÕ±tÛ®vÛ²qÙ¶v߶yá´zà¸zà»zÞ»|Þ»xÛ³tׯqرwÚ¶vصvÝ·€à·~â»~ã¿‚ã»yâºtá¸zß·yÞ¹z޸ݸ€ÚµwÙ²tÙ²yÚ¯Ù±|Ù³xÚ³vܵvÛ²rÛ¶rÞ·vÚ±sÞµy߸ְx×±sÚ±tÚ²qزrزvÙ±wÖ°rà¶tä¼à¸|߶vß·|Þ¶zÞ¶xß¹~ຂ߸‚â¹â¹€Ýµ{ÙµtÞ»zá¼â½yß¼|ݹ‚ß»ƒÝ»€Þ¸yß·tÚ°oÞ·uà»qá´lã¸wâ¼yáºtã»rä¸uá¸zÝ·ußµsâ¹{Þºvß»uã¾yã¼uà»váºtÞ¸xá»yá¾{Þº}ã¼}æ»yã´vÙ­wÓ¯vÙ®sÕªj̪cˤaÇ¢cÏ©nÚ°zÚ±y×±sدnÙ°q×±oÒ®kÙ·wãÀ‚á»à¶xÞ´yܶyݶuß´rÛ²pÖ®lÎ¥eÀ—UÀ–QÈ Zͦ`Ó§bצeÓ¨jÚ¯lܲnÚ®sÚ­p×®nݳqàµtܱsÙ«nÕªnÍ¢bËœbÒ¤lÔ¨eÕ¨eСdÍ aÓ¬iÖ«kרkÖ¬pØ®oÛ²pÞ¸yàºÞ³vØ­q×­tÜ­uÙ©kÖ¦fتl׬mÖ£eÔ¤`دgÛ®iÕ¡XË™MÈ™QǘQÇ–TŘRÇ›YΞ]СYÓ¢cÔ¡kÑ cФ\Ô¤ZÔœaÏœ]ÍŸSÏžRРXÏ¡ZТSÑ¢QÑ XÓŸ]ÑœXÍŸTÌRÈ•R×KÁ•DÄ–JÇVÌ¡[Õ¤ZÕ¨^Õ¦dÔ¥gÔªaѤ\ËŸYѧbÜ­jܬhÓªeÒ¬hÑ©gΡ]Ñ¡[Ô¤^Í ]ÈžXÌ¢\Ò§_Ñ¥_Ï¥^Τ]ÖªfÙ«jÓ¨`Ö­fÚ±sÙ¬nÚ¬mÙ¬g×°hدjÒ¤bѤ\ФYÇ–RÁŽKÄ–UÏ¡bÒ¥`Ë£^ϦfЩdάfØ°mÙ¯oϨgÌ¥aʤb̤aÙ«jÛ¯pÖ¯kزhÕ­hÓ©jÖ¬r׬gÏ£[ΣgÒ¨kѦdÖ­nܲsÙ«lÒ¤fËœYÆ™[ÇŸ\Í¥aÙ¬oº”^缅漄᷀ä¶å¼|ä»~ä¹€è»è»‡ã¹ƒã½|çÄ缂ã¶{ä¶wÞ²w×®tÖ¯qâµ}á²vÉ¢gÅ¡eÊeÇ]ÆŸ_ΤlÕ©kÕ¬mܱxâ°uÞ©uÛ©rÛ«mÞ«jÜ¥eÙ§jÛ³rã·væ¶{ê¿}ìÁwé·|躆翃ê¿è¼ç¸zé¼{éÁ‚å¹ܪrÓ¨mÛ­qå¶xå»væ·qã´tã·{è·xã²rã´xæ´xå¸yç½~ç¼}ç¼xè¾yê·wæ·vä¹wåµyá°rà®qà²wã²uæµuç¶xà¬pÚ¯má¼}ê»~é¶庂軀é¶èµ€ç´vã´mâ·sâ°o߬nâ¯qã­mà­hݨnÛ¦qÛ¨eÞ­kâ³sá®iá¨gà¨mÛ¨hÝ«nߢiÙ¢eÛ¬qÞªlÕ¡]Î^Ô¢bÙ©eÚ©iÙªjתhÚ¤bÜ¥jÚ¨fÛ§gà®uà®oÜ©gÛ©fÚ¦dצcÔ©aקjסfÖŸUÓ™YÉUËQ¿ŒR¾VËžaÕ¡aØ¢aצeÓ§mÚ²rÞ¶ußµyâ´wݯpÙ®rÖ­o׫pÙªxÖªqÖ¨lצjתkܯvá¶{à³uÙ¬qÛ²nÞ±qÓŸjÉ’VÇ’NÍœ^Þ°w߯oÒ¤hÙ©oÛ¨oܧsݬqקnѤjØ«oÞ­xݯxßµsá¸rá³tÞ¶{Þ¹}ß·uàµpÞ¹uÛ¶sÙ¯rÚ°sÙ¬lÙªpײo×µpÚ³t߸uá»{߶xá·wåÁvâ¾uÛ´vÞ´{Þ´xÚ±uÚ¯mÕ¨bΟbܸâÁ|Î¥`Õ¯tܼ}Õ³tزvÞ´sÙ¬qÖ¬uدsÕªnÕªpÖ°rÛ²qâ²uä·|â¾á½zä·sâ·{Û¶vÙ²nÚ±uÚ´~ݵÞ¹{ݺwܹvß»|ß¹và·yÞ´zܳuݸÛ»~ß·uݵ|Ú¯xÚ²vÛº}ݽ|ݵxÛ´xÝ´vݶuܶyÚ²wÖ²yزyÜ´zÙ³vÚµvܶzÛ³~سzص{׳yÔ¯vÖ²|Þ·sß¹rܸqÚ´qÛµ~Ü»~Ú»xݹ}à´~Ý´yÙ³vتsÓ¬r×´wݳrÞ´tݶuܹqÚºxÚ·xà¹zÞ³yÖ­sß·}ݳuÙ°jÞ¶uÛ²mدdݳlÞ¯mܯlÙ­hÒ¦eØ®oà¸uâº{â¼~âºxå¹váºzݶwÞ³xá³}á·|á¹xã¸{à¸yܳrØ°vׯuÑ«hÌ«dȨgÇ£cÏ®lÚ²uÙ°pÖ±nׯqÕ¬vÓ¯qѨmÚ²|âŃà¼yÞ²xܳzسxÜ´{Þ¸zÚ±t׫oÓ¦gÊŸ`Æ¡^˦hͤlϤhΨ`ѪcÖ­pÙ°pßµpâ¶vß´zâ¶zã·zà¸uà¶rÚ°qÔ®iÓªg׫jׯiܲpÚ®lÕ­mÓ°nϨeÔ¤eÖ©eÖ«dØ°mÜ·wÞ¶{ܲsÚ³uÛ´uß±tÝ°uÛµpÚ´nÙ±mØ­o׫nزoدfÊž^Äœ_È]Èœ]Í cФfС_Ô bÙ¦eÚ¨nÔ¦jΪ\Ñ©aÕ¦bÔ¥]Ó¥^Ò¢XÑŸYП^Ñ¡XÓTÑ_Ò£[Ò£[ÍŸ[ÌšWÍœWÎœRΠUÌ]È™ZÇ¡^ͧeÎ¥]Ó¨cÙ®lÞ²lݲhÒª`̤\Ѧe׬pدqÚ¯o×®pÓªhÑ¥^Ѩ^Ô¨fÖ§eÔ¨]Ó¨c×­kÖ­fÕ«eÙ¯lÛ²rÙ¯n×­gÝ®fݱmׯjÖ¬jÓªgÔ¥`Ù«iÛ°mܱf׫^ÌœVÓLÖQÌ[Ò¢aÒ£fͤ^˦`ЧdÔ¬hÚ°kתfÌŸ_ÛWÈ¢[Õ®lÚ³sÛ²qÛ±nÙ°nÖ­iØ®gÙ²iש^Ó¥eÓ¬jÔ¨eÔ¥hרcר`Ô£bÊšXÆ•XÅ—[Ç—\Ñ¢f´—eå¶~á²~á²|á³zã·z湃纇é¼~çº~ä¸}áµ{à³váµuà±yà®wâ°tß®sܯv㸃콈ä°}ÎiÅšbÈ¡bÑ©i×°tÚµzâ¶|á³zâ¸ê½…浂å³|è¹{å»|æ¸zå¶{à²{ß²{äº}éÁ缄âµ{ã²xä´|ä¹}æ·|å¹}ç¿|ëÀ}ê»{ß²vÖ¬pÝ·y滀æ¹zå·}äµzã¸wä¸tã´râ´våµxã¶wá»xâ¸xâµyæ²}è¶~è½é»‚é¶}ã®zà¯u߶tßµxä¸wç¹uà¯kÛ°oåºvë¼xé¾{è½{ê¼ë¾è¼~å¹|äºxå¹vâµsáµtæ¹tè¶væ¶|ã·yâ´xâ³xã´tè·uæ²rã­iâ«iÞ­mà²lã²oâ¯râ¯mÝ­fפhÔœdÓŸ[Û¨dÛ¨h×¥cݪhÞ±kà¯f߬gá¯qâµtàµuà­qà¦ià¥kÞ§kÝ¥iÙ§hØ©eצfÕ¥aÒŸ\Ë–YÂO¿KÈ›WÐ`ΞbÌbÏ™_×£gܨlÖ§kרkÖ¨gÔ¤gÖ§jרk×£hÔ¨kÕ¨mÖ«jÚ±rÞ¶{à´vÞ¯uÚ­pß²râ¶zÛ±qÖ¦fÓžhТnÙ°xÝ­q×¥jÙªlÛ¨mÝ­tÜ®oبhÖ§hتhÜ­kÙ¬nÔ¨mجrÙ²vسxÛ³zÚ±uÕ©pÖ§pÚ«nשuÖ¨uÖªoاqÚ§tتoÖ­rدrÙ°sÛ³rÞ´rß±sÚ´qÖ°mÖ¬kÕ«nÓ¨gÐ¥bË–[ǘ\Ú»Û±zÈ“ZѪhÙ²pجoزp×°rÖªtÖªnÖ¨jÖ¥lתnׯrÛµ{á·}â¹âºà±vݳvá¹{ܱrÕ«sÕ°xÖ¯xÙ°vÙ³tÛ³uÞ³uß·}ß·{Ý´zÙ¯zÙ®rݶwܳ{Ù±rܱpÛ°{Ü´yÞ¶xݸ}Ü·}Ú³ײxÕ±pÓ¯qÔ­oÒ«hЩfÓ¬nÔ°vÔ¯vرsݲrÚ²sØ°rÖ«mÓ¯kÓ¯qÒ«hدgÙ°nÓ¤jЦiײoÜ´{Ú²xÖ®kÕ¬pѧmФgרmÑ¢lÓ§m߸yÖ¬rÔ­qÕ°oϨoÖ­vתpÖ©p߸zÖªcѦ`Ó«dËšYɘXΟ]ÌŸYУ[УcϤdÕ«eÖ¬sÓ«tÙ°uÛ°uÙ¯n×°iÕ­kÔ¨iÙ­lÛ³xß¹tá¹oÞ¶tÞ°rÜ­jÜ­kתhÔ¦cÈ›^¿–YÅZÈ cΣgÒ§fϨkÒ­lЦeÉžbÎ¥mÚ³uÞºtÞ¶uÚ³xÖ°vÞ³{ܶ|Ù´sݶrÚ³pЪcÅ¥[ĦbȤmΣlÒ©lÒ±lÙ´mÛ²rÞ²vßµvÝ´rà¸wá½vá·sáµtÚ³kÓ¨fÓ©mÔ°kÕ¯jßµtá¸sÛ³kÔ±mˤhСeÕ­nÒ­kÒ¨fÖ­mØ°n×­pÓ¨oÔ¯nݶrݶtصpÙ²s×°oØ°jÖ¯gײjÔ±nͨjÍ«iѱtÓ°sÓ°nÔ±hÓ­fÔªlØ®oÙ­oÕ­iÖ°jÕ¬jÓ«bØ­eרhТcÓ¡_Ó£aÏ ^ÏŸ[Ñ¢\Ö§^Ô©aÎ¥eͧcΦ]Ë£bˤeÄšY¾•VÁ˜WÈŸ\Í£eÒ¥hجqܲvß±oÚ­qÕ¬kѪbÓ¬jÚ°qÛ³tÚ³tܱqÙ¯kÖ­kرnزrÕªnÓ©kÑ­jѪhÓ¬jÕ±nÙ°sØ°rÕ«iÕ¦hתfÕ©ZÓ¤`ФbÏ¥WÖ¨`Ú²mܶqÝ´nÖ«eÒ§fѬeͨ\ͧZÓ¯^Í£`Ë›_ÍŸ]Ï bÓ¦gÕ¨fΠgšaÆœ\Ó¦lØ°pÙ°jÚ¯nÖ®kÖ«f×®mÙ¬oÔ£hÏ£cÕ«bج_Ô©_Ð¥bФdÏ£_È™RÂNÆ“PÄQÅQ¯ŠOá±yä³{ç¶|軂è¿êˆíÊ꿆ä¹~ç¹黀ç»~巃㸀æ»|è¸{ç¸~纂麈鿅ä¸{Ù£mÏŸlѬsÞ³yç¸蹅涀â³vⴃ躂ç¸tä´tå¹{éÂìÀëÂ{å¹yÞ³tã½~çÀ…è¼~ç½|æ¸yê¹éÀ„ä¹|ä»}忆ⷆâ´ã¹€à´zá´}â¹â¸‚帅床庂ã¶uà´vã¹ä¶}â¶xá¸{߶|߶|àµ඀ä¹|嶀á¶â¼{ç¼~溂乄纂è¹~å³wã²så¸zè»{êÀ~èÀ|ê¾uíÀ€ç¼‚æ¸vä¶pä¸xåº|è·zç´sâµpã»{ç¹~å¶xäµ{ç´yç¶uæ¶qá´sáµwà°vã³vå»xåºzå·}å²wâ­uÙ©tÙ«rá­rß­iÚ¨gÝ«lÞ±pÞ¯oß­nß±q߯p߬ná«kß©dÛ§fÛ¦lÜ¥gܧdܪeÚ£cÜ¢bÞ«jÛ©`Ó TÍ›]ÐdÑŸbÍš`˘^ΞcÔ¤nÖ£kÓdÒžcÔ¡`ÔŸ_ÓžaÓœaÑžgÒ£jتnÞ¬yà­tÞ°tß®vܪmÙ©dרmجtÖ©lÖ¦nÙ©nÖ¦hÖ§hاjÖ¤eÖ¤eÕ£hÕ¦cØ¥bÕžcÑž^Ñ eÖ©nÞ«q× jÒ¤nÔ­uÕ¬uÕ©qÑ¥hÑ£hÕªnÖªpÙ¥oئgÔ¨kÔ¥oÔ£jÒ¥kÔ§rÙ«oÖ«kÙ®oÞ¶zß²yÜ­qÙ¬iרcÖ¢aÒŸ\ΙTÆŒLÊœj὇ӦcÅ•UÓ¦gקiÕ§oØ­sØ«pÖ§nÕ¨eÔ¦hÖ¨qØ°qݳvß´{á´xÞ´{޳߮vá¶{翇á¯sتeÖ­qÖ«sׯoÖ°iÕ­nرzܶ}߸{߶{Þµ}ܵwݲrܯuÙ°~Û²~Ù´uزuÙ±zÚ³w׳t×®vØ«pÔ¬nЪqÒ¬oЪh˦hÏ©mÓªsÔ¬vÚ±yá´vÛ±rÓªqÒ¤oÖ¬tÔ²tΩgÕ«oتvЦoΧlÒ©jØ«pÖ«oˤaÎ¥fÓ¥dÔªiÝ´xدoÖ³má½zÙ°rÙ­w×­xЧmÕ©jÕ§jÕªpݵrØ­hÓ©gϧbË¡^ÉžaË eϤbͦbÌ¥jÑ£nÒ¢mÍ¡fÇšZÈ›\Í¡cÒ¦bÖ«gÕ«lÖ¨f׫jÚ°rܳuسnÛ²hÛ¯nرsá¹uæ¸{à²tÓ¦eÙ^Ä™ZÈŸZÇž]ϤeÕ¬kÖ­nØ­lϧgË£f׬lÞ³uÞ³{Ù²y×°rÜ°sܳ|ܳ|Þ°tÚ²pÕªiÊœaÚ`ÅŸ`É£f̦eШgתjÛ­mÚ­kÖ¨gקiÝ®qÞ°sܲqܯjЦ`Ì ZÏ¢[УbÕ¨fÛ²mÞ¶oáµpÞ²zÚ­tÙªd׬fÕ­mÖªkÚ®jÙ³lÒ«mÌ¢jϨoÔ¬sÖ©hÖªcÕ©mÓªmÔ®pЫnͬiÒ©pÕ©nÑ®lѬoЬlÒ­mÙ¬zÚ­|Ú­oÜ°oÜ·oØ°mÖ­nÚ±nÝ°nݱiÜ®bتbקcÕ¤dÓ§c×®fÙ®jÙªiÔ¨eΩcÕ­jÙ«gѦeÊŸdʘZÊ—[ÈœcϨeÔ«fÏ£fФdΦgÖ§jÞ®oÙ¬kТeÓ§g×­fÙ¬kÚ¯oÚ®oÙ°xسmسnÝ´s×­hϤhÍ©mͪqÌ¥kÍ¥eÓ©mÔ«oѨkÕ©n×®jÓ­eÕ©iÓ©fÍ¥_Ϧ_Ö¬hܱtݳtܲrÛ±uÛ³sÖ«jÍ¢bѦcÌZ–^ǘaÊWÍ¢]Ñ¥cѬeË£^Æ—YÊžhÒ©oÒ¤hÓ¤bÔ¨jÓ§iÖªeÚ­gÕ©eÒ¦hتnÛ­lØ­jÖ¬hÙ«iتfÕ£XÏŸZÌ]Ì–QÊ“L²†MÙ­lã¶væ¼èÀ‚迂彅伅帄æµ|è½|çÀ‚丅äµ|äµvçµxæ´{ç²rçµs軀뼅鹄â³xÜ«mÚ¬qâ³|å³{ä²xä²qÜ©iØ¥mà«pÞªhÛªmä»yêÅ{ê¼{ë¼~é¾~ä·xå¸齄äºyä»zè¼€æ»~ç·wê´tä¶yà¶{à´{ß´yáµxàµ~߲ݮ{àµ}异仈亅å¸|á³{Þ³|á´{ෂฅ亂ãº~â´}á¸á¹äµ~âµ{ã·{å·}å»}èº}æ·ç¹€è´}å´tã¸vâ¶sä¹x縀éµ|ç¶~â¸xâ¶tã±uå´wè¸é´‚é´xãµuâ¸wã¸{ã¸|ä»wà·tã¶sç¸uã·wá¹zâºxà¶så¸yç»{ä»vä¹qå²rã°táµtä¶vá³tà´kâ³mà¯qÝ®jß°fâ°kÝ«nÚ®lÞ°kà­hÞªbÝ©_àªeá«hÛªhݨjݪkß²kâ¯fݬbÛ§e×£bÒ¡cЛ]ÍWΡ`Ñ cТaÓ¡\Õ£^Õ§dØ£f×¢gÕ¡dÕ _×¥hÚ¨pÜ©mØ£kØ£pÛ«qÛ¥cÒž\ÍeИbј`СeÑ£[ПUÐœ^Л_ИZЕTΖYÑš`ÒšYÑ™ZÒ™bÑžZÖ¦jÜ¥qÖš]Ι^Õ `Õ£`Ò¥kÕ£nÕ¤hÖ¨jקjÓ¡gÒ›\Ó™VÑœ^Îœ_Ò bÙ«jتlרiØ­lÜ°uá³uà¯nܧgØ£bÑœ]Í–ZÊ•TÊšcÝ·…ໃɘWÉšWÒ£jÑ¡j׫oÚªpÖ¤kÔ¢gÓ¢fÕ¦gÔ¤eÔ¦kÕ¨mØ©mتpÙªsÞ¬uÛ­wÙ°zà¹~ܱv×¢hبkÖ®pÖ®o×­oÖ«mÙ©sÝ«sÜ´zݹÞµzܳuدpЧiΦlÒ¨uÒ¤rϦkѨiΣkÌ¢nΤjϤeͦlÐ¥qÒ oËkÌ jÏ¢eΡcÓ¡gܬrß´v׬oÓ©nѦqÓ«uسvÖ°rÓ­q×±sسtÕ²t׳qÛ²țk¾”WÉœ^Ó©mׯq߶vܹtسuݶyÖ¯pÒ®sÕ²vÔ¬oÖ¯uÙ°nܲqÚ´z×´oÛ·uÛ¶~Û·wÙ¹tÖ¹s×µoÕ²hÓ¯jÒ±qÓ±lѪiÈ¡iÇ bÈ¥`ΪeØ´xÞ¸xݶuصzÖ²qÒ®lЪiÕ­o×±pܲr⻀ä¼}á¹sݶnÕ¯oЦoΦgШkÙ¬qÛ´rß¹xß»~׳uÔªmѪqЩkΨjΧjϤaТcÕ«mÚ³qÕ¬hÙ®oܱrѤeÊ›_Å–YÅœ\Æ£fͤjÒ¦iÓ¦gÖ¥kÓ¦jѨgÙ®jÙ²lÝ´nÙ­jÍŸ]Ê›YÊœ]Ìž\Ñ¢dשk×®eײmܵxÞ³yÚ°pØ°nÖ¯tÓ¯rÕ¯l×®oÖ¬nÏ¥iÌ£fѦeÔ¥kÔ£iÔ¥jÒ«oÕ®mׯjÖ®mÖ¨jÔ¨kÒ°oÔ­nÓ¦kÕ©mÙ®vØ«xØ­sÙ´tÕ°s×­r׳qײjÙ®jØ«jدmÚ­mתhÕ®iÙ­iܯoܲoÖ©eÍž[Í£aØ°rÛ²w׬qÓ¦eÔ¨hÕ­nÖ©lÓ«nÖ°nجhÓ¨eÏ¥aÏ£_Õ©eÓ©dÐ¥\Ó¨eÓ¨gÖ¨cÖªdÛ«iÞ°kÜ°eÙªlØ«mÓ§gÍ¡hË¥lΪrÏ¥mÍeÌ¡h΢lÍŸjÍ¡gÒ¨hÖ©dئdÙ©gÒ©^ΣbÖªk×­sÖ«pÙ­gÕ¬lÓ«pÔªhϨeÓ®jÒ¨cË¡bϦfÑ©cÑ­jÕ°hÕ±hÏ«jÆ™VÁ˜TˤiТeÎ_Ö§jÚ°iÙ®fÚ¯kÚ®eÙ¬iÚ¬oÚ­nÙ©hÚ©bتjÖ©m׫hتgÚ©hØ©bÕªc¹•gÚ¨jÚ«pâ¹{澂å´{çµxé¶zæµxä·xå²zã±tã®sáªtàªoã²mçµjæ±nåµré¹uê»}éºéµwæ°kâ®nä®rä±rã±pâ¬qܦlÕ¢eÙ¤fÞ§jÞ®sãºê¾…ë¼è»뺃ë¸{ç¹y콄뼂ê¼}ê»å¸zå´xê¯wã¯sà²vã¶|â¸áµzà±zÞ±~Þ°‚乇鹉踈巆䵄à¸}ßµ}â´~溄躇黎載å¹廀æ¸~ä³€à°vâµxæ¸æµyæ¶{渀㼂åºwæ½wæ¼|ã°qâ²wè»æ¶{Þ°xݱvÞ°rÛ±sß²sâ²s⹀迂é»~æ¼}å¼zä¸zå¶|ä³xäº{翅纃縀幄áµwäµxè¸}æ¸wã·sã³nå³oå¸{è·~åµyä·{ç¹{å·xä°oæ³mæºxä¸xà´vâ»{é¼zäµrá¶kå³nâ¯mß­eà¬jÞ¬m߯iá­jà«k߬iÜ©aܧ\Ú¦`Ö¢^ØŸ^ØŸbÒ¢fУgÔ¢`Ö¦gÙ©pÜ«j߬iÞªdÛ­g߯pÞ¨e× `×¢e×¥bØ¥cÑŸ`È›^Ë_Ï›[Ò[ÕWÑ–TÑ•WИXДSÑ“WИ]Ι\ΙTÒœWØŸbÙ bÜ¥gØŸeÓ•^Ó—_Ò _ØŸcÖœdÔŸeÔŸcÓ ]Ó ^Òœ^ÏšZΚZÒœ_Ò`Ô¡gÚ¦nÕ¦cÖ§eÚ¦nקkبjÚ¨iئcÑœ[ÒœYÓ¡_ѤhÝ´yèˆخrÁ”WËœ^Ò¢bРaצeÖ¥lÔ£gפ_Õ¢fÕ¢gן^ן^Ô`ÑžaÒ¥cЦkÕ§qÛ­oÚ®nÜ°oÚ¬hÒ¤gÐ¥eØ¥bܨdרi×¥kÙ©lÚ¬qݱzß³xÜ­rÒ¨hΣ]ÌZÈœ\ÏŸ`Íš[Å•XÊš^Ì™`ËœhÍ iÏ jÕ¦pبvÕ£qÏdÓ¤jÔ¦oÒ¥iÖ«hÙ²rÜ°oÙ©lÖ©rÔ­vÕ°wÚ²vÛ²v×®tÖ°tÙ³uØ°uÚ³tÛ±tÏ¢kÇšbË bѨgÖ«j׫kØ­jÓ©hЧhѦhΦfΧhÔ¬tÙ³{Ù±rÞ·rà¹|ܶ}Þ¹zÞ¸xܹ}Ö¸zÕ°rÕ°qÕ±qÕ³rÕ·{Ùº}Ø»zÕµxÓ®pέoÔ²|Þ¹€Ý¾ƒß¹Ù´n×±n×­uΪlΩi×­pÛ´vØ´uÛ¶sß»q߸oݶxÙ³yÙ´tܳuÛ¶{Þ»~ãºyáºwܼvÚµrÒªhÇ¢]Æ›ZÈžbÏ¥kЦo×±wÝ»xÚ°là´tä»vá·uÙ²rÌ£dÆŸdË¥hͨjÒªjÓ©gÕ¨eدhÛ´mÞµsÜ°nÙ¬iÔ«nÌ¢bÈœ\Ï¢hФiÍ¥gͧhЦjÔ®rصvÙ²sÖ°vѬvÓ©mÖªhÒªjÓ¨jÖ¬mЫkÍ¥hÔªtÖ²vØ®qÛ®x×°uÙ°pÞµrÙ·mÙµpÙ­p׬qÜ°qÚ¬nÖ®sØ°tØ­jÕ°lÕ±oÖ°qر|Û¬tÕ¨hÒªjÕ¥fÓ¤dÓ«mØ­nÖ«jÕ¬mÛ¯mÚ­mÑ¢cÅ™TÉŸ`رsݸtÚ±m×­hÙ®oÚ¯m׬jÒªgÔ§dÕ«uرyÚ¯fÕ©_ÒªaѦaÒ¦cÙ°iÙ¯mتmקhÖ¨gÙ¯nÚ¯oÚ­pÕªqУkÔ¤iÔ¨hÕªjÒ§jÊŸcÍœdѤeÑ¥`ѦgÖ¬s׫jÖ¨dÓªhϬf̤bË¡eΧgѧcÓ¥dΡ`ˤcÑ«lѪkÕ­lܲrÛ®qدtÙ°pزkÖ­e׫fÕ¬oË ]ÙSÊ¡bѦ`Ô©[ܳjÝ´mݲjÛ³jسjÛ®gÙ©fקbקfÕ¦hÕ¥aÕ¤`Ó¥gÚ¨hÚ¨gتnݵsº¡mç°kà¦dÝ©ià±qá±oå­tæ´yä³vä­oã­iâ­kä«qåªnä®lèµnì·uë³vëµkì¸kë¸sì»vîºrì±kê¬hè²líµqî±oæ®oä©kÝaÙ£bÞªlàªnà²rß´tá´pæ¸tç¸|ê¸~뻂ë¹èºzç»{è·yå²yå¶zåµ{â¬zá²{á¸|ä¶yâ²rÝ°qÝ­xß±}á´‚ã´€ã´xá±yâ°~á²|ܱrÞ²rá¶yà´vã´tá°sÞ­uà­uß°xÞ¸㻀弃äºâº{âºå¹ä»€Ý¶yâ¶zè¼à°rß²ræ¿€ä¹zá±vß±tݲrÚ®wÙ¬sÚ«lݲ{仃æ»~åºé»€é¼ã¹ã´{å¸|å»åµ~ã´|ã²yá²{á²€æ³zæµvâµuá²tâ´yá´yâ´uà±tÞ®râ´uâ¶qß²râ²â³zá¶pá³qã²zç·zä¶uá®mÝ«gÛ§eݧjÞ®pÞ²rß´pá³uæ¯qæ¯dà®fâ²rã´mß«gÞ©eÞ«dÞ¨bà¨_Ü¥bÙ¥cÝ­bã°há­iÞ­h߬jß«kÛ¨d×¢_ÔŸdÑ¢dئfÚ¡_ÓZÏ[ÓžbÚ¢fÚbÕ˜ZÒŸZØ¢`ךXÑ—PÒšXЙXÐœWÖ[ÙžbØ£cÚ¤bØŸcØŸ\ÖŸXј^Óœ^Õ¢VÕ¤WÓž\Òœ]Ö ^ÖŸ[ÔUÒRÒž[Ö jÕ£fÖ¢bÔ¢kÚ¥mÛ¢dÕœ]Òš[ÓŸaÖ¢bÕ VÕ¢XÖ¨hÛ±qݳvØ®xƘ\¿‘PѦiØ©nÖ¤bÖ£`Ó¢`Ó bÕš^Óž^Ó¢`ÏŸZÏžWЛ[Ñ›ZЛWΛaÑ kÑ eÑ¢dÔ¦eОcТjÍš^Í”XÏš]Ì™\ЛbÓŸeÖ£jÙ¥lרiÔ¤dÌ–UÆNÇ•VÉ“TÊ“UË–SÆ•MÇ”S˘ZÍŸ^Ñ¢eاkÛ«nØ©tÖ§oÑ¥mÖ¦pÕ¥jѧlÙ¯pÛ²oÚ±vׯo×­nÛ¬vÕªrÕ­r×®rÔ¦mÔ§oØ°qرmØ°p×®pÖ°p×±tÖ¬lÔ­iÔ¬mجn׫iΠdÍŸlÎ¥kÍ£fÌ¢lÕ¬rÛ·xØ´uܵvß·yزuÒ­yÓ¨uÒ¨oͤkË£fÍ¥hÊ¡hÊ¡dʤf˧iЯsÒ°|˨pË£gÍ£mÑ©oزxص}Û³tÞ¸vÚ´yÑ«oΫjÌ©nЫpÕ¯rزuÚ³xÙ³yݱxÛ³tܶtݵwÞµxܶxݳuܲtÚµvØ®pרoÓ©lЪhÓ©iÒªkÔ®nÛ¶q߶oݲoá·xä»wâº}㹂رqЦb΢aÇœbÉ fϧgÌ£bÕ©fá²rÛ°oÔ¨iרjÖªiΦeÈ¡`ˤfЧfË¥dÇœdÇ_Ë¢dФmÖ­pÖ¬sШqÐ¥jÓ¥nÓ¦j΢fУkÒ§lÑ¥jÕ¨jÕ¬lÖ«nØ«rÓªrÔ©m׬o×®kØ­iÕ«kÒ¦gÓ¬jسoÚ®mاkÔ¨mÕ«pÙ¬qÙ¯pÙ«rÖ¦sשqØ­oשoÕ¦kØ©hÚªhÖ§fÖªl׫lÖ¨eÑ¢aÈ™UÍ a׫rÓ®pÓªgÔ¨dÕ«nתoÖ¦eТaÌŸcÏ¢bÖ«mÚ¯x׫sÕ«kÓ©nÕ¬vØ°xÕ¬oÔ©kÓ§nÒ¤hשjÚ¯rÙ®qÕ¨jÒ¥cУaÍ fΞcΞYÈšVÇšVÏŸ[Ó¡cÔ§jѪeϤ]ΠZÊŸ\É\Ç™UÈ—UÌœ`Ê›^̘YʘYÇ™YÈ›XÉœ\Ñ¥jجqÕ­mÕ­kÔ¨kÕ¦fÕ¥dÖ¡hÖ§fϧ`ËŸ\Ф]ÓªbÓ§eاhÚ«dÙ©gשhÖ©dÕ¨cÓ¥\Íž^Ð[ÍœXʘ\Îœ`Ó£bצbÓ¤eÑ¡lÕ¡kµ‘`ðÀté³qߨfà­jå¯pê´lì¹oè²ké´oç´qè²oîµsë´në²jð¸uð¾}î¹vë±míµpï»vï»yñ½uð¹qð»tñ»ró¼uò¼tì¶mê²lã©jÞ¨rá¬nß©jß°và°wݨmÞ¬mÞ­và­täµoæ¶qä²oå²qæ±ræ²qæ±uã«så¯oâ°vá®yã²}à¯uܪk߬qã«{ä°yã¶|ã²xâ°rß­uÜ«oݨeà¥jà«iÜ®hפjפmÞ±yá¶~á¸{å¿„êÁ…èÀ‚äÀ„⻀â¶z缂軄ᶀã¼ê½~åµvÞ°tà³}⽃çÁè¿ã¼}à·|à³Û±{ܵz庂æµ}巂翉黅æ¼~âºwä´vä¶|ä¸~ä¼~å¼€å¸}ã¸yâ¹~åµ{ݯqÙ±sá·yß·ußµxá¯}Ù«tÙ«sÛ¬pØ«mتnبiÖ¨mÖ¨hÖ¦^Ú©hÞ­pÛ©jÕ¥iئqÝ­}ß¹á¸ä¸~æ¹vá±oß­oÞ­j߯gá°qÞ«mÛ¨aÞ¬cÞ«iÞ©fܪcÝ®bá°lá¯rà¬hÞ©iÜ«gÛ«fܬhÛªfÚ¦e×£dÚ¨gß«bÞ¦dÒŸeÒ¡eÞ¬iÝ«jÚ§fܨkÞ¬pÞ¨dÛ [Ø¡_×£bØ£dÙ¢[ÙŸZÚŸ\ݤcÛ¢cÖ¡c×¥cÖ¢\× WÙ¡_Ù¡cÚŸ]Ý¢cØ¢^ÖŸVÚ¢^ÓXΛ[Ü¡dߣgܨgÝ®hÞ®gܧdØ dÕ aÕ¤bÕ¤gÖ¡a×¢_Ú©eרkÏ¥lϧhÅ–VÄ–WשhܯiÙ©fاeÔ©gÓ¡bÓšbØ¢hÙ `ИTÓœWÖXÑ™TÑ™XÍ”RË•WÏž`פhÚ¦oÖ¦qÞ´}ݨkÏ”WË•YÈ•ZϘ]ÒYÏWÏŸaÒŸcÓœbÏ—_Ì“TÉ–W͘YÍ”VÊ™TΛ_Κ^ÎœXÎœ\Ïž^Ô¡bÕ£hÕ¥hÑŸhϤkÐ¥cÌ–^Ò eÖ²p×°rÛ°uÙ²vÕ¬pØ­vÔ«vÏ£hÑ¡o΢mͤgÒªpÕ©oתj×­qØ®vݳoß´rܵÜ´xÞ³tÛ°qѤgÍŸeÐ¥mÓ«qÓ«tÚ²xݹ}ÚµwÛ´wׯtÓ©fÖ¨gØ«o×°tÕ¨nÑ¢hÔ«kØ©lÕ¦oÐ¥kÓ¥iÔ¬tÒ­rÍ£kÉ¡hÈ¢gɤfÔ®lÚ±vÛ°vݱxݳvײpÓ­mÔ¬kÑ­oÒ¬sÖ®yÕ²vÙµtݶxÛ¶~Ý´{Þ¶wÝ·zÛ°w×®mÙ®jÙªmÖ¨mØ®rÖ¬pÒ¦oÔªoÖ¯lÚ³yܵzÛ°oÛ®sá±yá²xß²sÝ®pØ¥hПZȘYÄŽPÊJÅRÀMÀ’OËžb΢b΢cѧhШeÍ£`Êž]Çœ_Ç™^Ç•[Å‘VÃ’VÆšVÊŸYÓ§iØ©lÑŸdÍžbПcÒ^ÎaÏžfФbÏ¥`СdÑ¡fÑ£fÔ§d׫fÔ§eÓ¥^Ó¦`Ò¥]ТYС\Ò¥f×®nÖ®mÔ§fÓ¥kϧlÓ¨cÕ¨gÕ¦mÕ§j׫jتqÚ­qÖªiÔ¥fÔ¥jÔ¤hÕ§eУbÏŸ_Ô ^Ó¢_ѤaѦ[Ρ[Íš_ОcФaÒªaÖ¦gÒŸdÎ`Ѥ]ÕªhÙ¨hÚ¨gÛ®u×®s׬mØ«hϤcÏŸeÓ aÏŸXТ]Ô¤hÑ£fÌ¡[ÉœTÊšTÊ•UÌ–WÉšRÉšQ͘VÐœ[Ñ ^Ï£^ТWÌšRÉ—SʘUÊ—VÈ•RÊ•P̘U˘OʘOÌ–XÈ“PÄ‘NÉ”YС`ѧ_Ò£bÑ bÏž]Ö£eÔ¦cÒ£]Ò¨cÏ£^ÌšTÌœWÍWÊœZÏ \Öž[Ô¡]Õ¢\ÕžWÒ£]ОZϘSÎSÍšQË—TÌ™RÏœTÒ£YÓžWÓ˜UÔžV·ŒOí¸rìµoá°lä±oéµpêµvì¹|ê¶vìµxí¼zê¼oì¸rìµvì¸uìºyí¼xð¿vî·vê²të¸rðºvð¶vñ¸tó¼xõ¾|ô»wð¸pï¸sï¸uá­oئnܪqÜ®yâ±uâ­mØ£hמcØ `ÕŸ[Ú¡^ݦdß©iã­jæ²kç°méµsç¶xæ®uè²pæ±oã«qàªlà¦jâ«lá²hã­kãªlá®kä°må­qݧfÙ£aÜ£mÞ¦iݯpÚ¯rß®u轃é†è¿éÂéÀ‚æ¿„á¿â·zâ´yåºè¼Šé¼‰è¼…翈ë¿å°qبoÞ²x潂缅ç¹xã¹v㼃æÁˆãÁ„促å½~âº{ã»{æ½ç¿‚ä¾~äº{ä¸yᶄ᷆â¼~âºà´á·{߶xÙ°sÙ¯uÜ°rÚ­oÚ¯xß²|ݳ{ܲuÙ®nتtبrÓ¤iУnÒ¥mÑ¥jÓ¨oØ©lקkÔªmÛ¸xæÀã¿‚ã¿}羀庂â·yá±xݯtÛ¯lâ²vá³yÚ«jÝ«jÞ²m×®uÖ¯zÙ²oß´sà´tݯnܬnبkÙªo߯qݯiÚ°lÞ²oÝ­hݪhÛ¨iÒ¤bÖ¨há­pß©iÜ©aÞªeáªgâ«cݧ^Ù¥_Ù¤dÙ¦aפcÕaÕYÚ¥]ݨaÚ¥^Û¦aÙ£_Ù ]Ó aÖ¡]ܦ^Ü©eÙ¢aÒŸZÓ¡`Ó™SϘPפbÙ«gÙ­oÞ­mÞªeÙ£bÓŸ\Р]Õ¢aÚ¦cÙªdÚ¨gÚ¥fÖ¥hÕ«sÐ¥oÉ—VË›_Û¬uܬh×¥hÙ¦o×¢cÓœYÕ¡^Ù¨_Õ£ZÒ›ZÒ›^ÏœYΛZÓž\ÏYΡeÒ«eÙ²jÙªjبsêÅ“â¶sÐœYÑ¡aΚYИ[Ó¡]ÏŸ]Óš`ÑžbÓ aÕœ]Òš[Ñž^ÏšVÌ—RÌšUΙ[ј[Ê™TÆ•QÉ”WË™ZËšVÍš[Ìœ^Ìœ\Ç”UÆRÏžaÔ¥hТeÓ¥gÔ¤gÑ hÓ¢jÑ¢fΞcΛaÊ™aÊ›bРcПfТhЧhÔ¥jÔ§o׫jÚ°oÚ³rÚ±rÙ«tÑ¢hΞ^ÑžaÓ¢kѧmÖ«oׯpÒ­lÓ¨kÓ¦nϨjÓ«gÙ®lدm׬kׯp×®rÚ«rÖ®r×±pÜ°qÙ²tÖ±uÔ¬rЦlË£nÌ£qѦqÔ¬oÖ®l׬rÖªnÕ§gÒ¥iÒ¥k׬oÓ«jΧmÔ¨tÚ­tÞ¯yÞ­yÙ©sÕ¦sÓªsÒ«mФhÑ£fÔ¦fÕ¥fÓ¨cÓ§kÔ§nÖ©mÙ¨qÜ­vÞ·xܱxÜ©uÛ¨lÖ fÓbÓž`Ï—YÈ‘KÈ‘H‰C»ƒ<»‚A¹@¹‰K¿–RÆUÊ [ÇœVÄ•ZÁ’T½ŽJ¾ŠO¿PÁPÂ…P¾‹QÄ•SÏœ_Ö£iÙ¥iÕ¤eО\ÕœZÔŸ^Ð]ÏšaÏœaÐœ[Ñ›WΘTÏ›XÓ [Ó¢bÒ¢cÑŸZÏ£`ÍŸcÊ™UËšXÒŸgÕ¤mÔ£`ЛZÍ™YÍœ\О]Ñ^Ô hÔ£gÖ£jÖ¤jÓ¤fР^ÌšVÍ™XΞ[Р^ΚWËšUΞ\ПWÏšTÌš]ÍšZÉ”WÇ•YÍ›WÓ¡ZÕ¦_ÍŸ[ɘXÏš[Ò¤`Ô§_Õ£aÓ¨fÖªfاiÓ¦eÍœ[͘Zɘ\È•TÌ–RÍšZ͘VÉ—QÆ–OÈ’MÊQË—VË–NÈ’NʘVÓ ]Ñ [ÍœRÊ•UÈ—SÌœNÊ™QÉ—RË—MʘSÌ›UË–NÇ“IȘL̘QÈ•OÈ–UÑŸ`Ï ]Í^Ïž_΢XÑ¥YÑ ]Íš[ÑTÎPÈ›Q˘LÏ•QÏ›XÒ¢VÔžRÎœ[Ñ^ÑœYРZÍW̘TΘTÑ›QΛUÍ™RϘSϘYÎœU΢\תf¼”[ëºvé»uç¾sè¸xåµvè·të¸{ì½|ðÃ}ñÂî½zî¼yî¼{ðÀ}óÃ|òÂ~ò¼yð¹vì¹uìºní»qð¼yð»wñ»võ¿yó¾}ðµvî±rèµrß°qÙ§lبfÜ°mß°o߬kÙ§pÓžhÑšYÑ—PÕœTÛ¤_Þ©fä­dê¬bè®lë³tí´mé´mé³rè±gå®jâ§oä©hæ°kä¯næ±lå­jã¦dã¬må®xߦqØ¡eÞ£hä­uã¼€á¿å»zêÁ…ê„ê¼}鿃迃é¼~輈缈溄澈êÁ‡êĉë‰꾀æÀ}ã·zÙ«qÙ¯z繃鹀å¶~èºê½êÁ„éʼné‰弃ข่å¹å¶{布濂濂齆罅ã¹â¶à´|Þ·|àºvß´wÜ´}Þ¶zÙ®sשrß°xá¸vÞ¶uݳxÚ¬xÖ£rϤfϤfÔ¨rÖ¬xÕªv×®sà°vß­zÛ»æȉéƒä¼zä¹~纂忄㼂ã¸á¶€à»{á¼zà´xܱyÚ²vÕªlΫqÖ±zß´{ß²uà²xâ´t߯jݳvãº}á·qà´qä·xá²jÜ®fܯnبkÕ§iܯoÞ°rÛ£fÜ¢bà­fà­jÜ«dÙªbܨiÞ¬jÜ«jÞ¦bÛ¤YØ¥^ߪc߬eÜ«dÝ©dÚ¦cؤaÖ¥cØ¥eØ©^Ó¤WЛXÔ ^×¢ZØ Wà¦eà¨jÞªcá°jÚ©hÖ£`بnÖªoÓ¥eÔ§fÖ«kÙ¨gÖ¨bØ´oܱuÑŸfǘ\Í¥gÙ´uÝ®iݪeÜ©iרbÖ¥_Ö£cÒ¤`Ѥ[У\ΞZÑŸ]Ф^Ψ`Ñ¥eÒ§jÓ«iÓ¨cÏ ZÓ¨mä‡޳mÓŸdק^Õ§WרjÙ¨bÓ¢XÑ£^ÑŸaÓ dÖ ]Öž]ÖŸ_ÓšUË™OÍœWÕ aÓ¡^Ï [ΘZË™XÌZÑ™TÑšWÒœ]ΘWÉ‘TÈ”[Ì—]ÓŸbؤgÔ¡fÑ kÑŸkÐk×gÓ bÒžcКTΚZÐœdΚ\Íœ[Ξ^Р`Ó¡^Ò£cÕ§jÖ¦gÖ§cÏ¢bÊ^Ο]Ξ_Ϙ^ÐœZΠ[ΡbТdΡdΞdÌœ\Ë\Ï¢fÒ§kÕ¤kÖ¥lÓ¢dÍš[Íœ]Ï£eЫjÓ«hÕ¢fП`ËŸZÑ¢bЧjÒ¦j×£iÕ¦iϧkРhÑ™`Ι[ÍŸ`Õ¦gÏœaÊ—_ÑŸhÓ¨pÔ¤mÒ fÓ¡aÒdÏfР`ÓŸ`Ðœ_Îœ^ÒŸ\Ò¢`Ð¥gÔ¢bÓ¢eØ©oß°uߺ}Ü°xÙ¦lÖ¦lЙ_ΖTÏ™UÏ–SÌ“PË’RÅK‘LŘLĘOÖYÂ’S¿O—V¿’O¹†Aº‡A¸†DºˆEÀIÅ‘NÅ“RÄ“UʘWÕ¨_Ù«hÙ§iצbÓ¢YÓ¢\Õ¦`Ö¤cÒž\ÍœYÍœ[ÍŸPΟPÑ›ZÒ¡`Ò£^ÓŸ[Ñž^Ó£^ÒŸVΘSÖ›VפaÔ¤eÓ \ЙYÍ–UÏœVÒ¢aÑ^РZÑ£\Ô¤[Ò¤`Ñœ_КSÊ•LÈMÇ•NÊ™XÎœ[Ï¡XÏ¡ZÒŸ_Ò `Õ¢dÖ¤aÐVΛRÌŸQÒŸ[Ö eÑ^ΖRКNÓŸQÕ¡SÖ¡[Ù¤eׯjÖ©eÖ¤`Ò¡SÍ–NÇ’MÑGÆ‘NÌ™VÈ™TȘOÊšLÌ–NÊ”QÌšUÑWΙVÑ_×¥kÕ§dÐXÍ—[ÍœWОVÏ›RΚJΙMË–NÍ™PКKÏšMÌ—QΛVÓ¦[Õ£ZÖ¦bÖªeÕ£]ÒžUΟTÒŸZÑžTΘOЙYРWÍŸQÎœTÔ¢[Ø©^Ô£\П[ПWÑŸXÓWÔ TПRÌžPÐPÒœSÓœSÑŸPОUÔŸ\Ò¡[Ô¢`Þ®g¼ bá³vä·wç¸zæµvß±pà±oæ·qé¿yìÀì¼yì»xí¹~êºë¼vîÀyîÀ}ì»zë¹væºxãµwæ²wì¹xê¹véµtìµzë·‚å²xá­kÚ¥hÕªoÜ®nÞ¨nܯsÞ³oܬpÖ¨nУeÒ¢gÒ¥hÕ§eÙ©hÛ¨mÞ§lߪjá©fä¨häªlä¬oâ«páªiç«fä°mã®kã­eå³fè²gæ­iã©ià§eäªhâ§fÞ¤câ¯rá·㼃ä¼zàµuã¶繆â´ä´}êµ{ê¶繄ã¹ä·åµ}á³{â·ƒâ¶~à®tß°sÜ®pÕ¨oÑ©rÛ²rå¶rá°xà¶~㹂ⶇງà»~ß´}Ú²ܳvܱpÚ«rÞ®vá¶~å·~è»ç»‚ä¶{áµݳ€à¸€à¹‡Þ±€à°}ß°€Û¬yÙ®pÛ±sà²|ã¸~â¾|ܳvÛ¬uݯxÛ±vݵvá»{ãº}ä¹æ½€ãµ|Û²zݸvä·uäµ}à·á¹€ã½âº|ã¼zã½{什꿄á¸|زxÛ¶zܳ|Û¯xß²xß³|Ý´yݸxâ¶zãµ}â³{ßµwâ³wã²xá¹uâ¹oá³qß±oÜ­mÙ­pà¯rÞ¬pÚ§gÙ¥dÛ«lâ¯mß®hÜ©gÞ­lÞ³gݯdß«iÝ«fݯdß°lß²kÞ²gݯmݬkß®hÞ«lبlÖ§`Ó¢[ÌœYРZÙ¤\Û§`Û©kܨlá³pæ¹vá¯rØ©fÖ­mÖ®lÒ§bÓ¦lÖ¦mÑ_ÍŸ_Ó³oÔ­lÍ`Ϥ^Ò±eÚ³má´qß³sÞ³rÞ²kÙ­hÔ©lÔ¨gÕ§fÏ¢dÏ¢eÒ¦i΢^Ë^ËŸeÉœ_Ç—XÄ•SƘUÍ¥fשpÔ£jТkÖ¥kبgÕ©gÖ¨fÓ¦dТ`Ò£^Ö¥cÖ¢bؤ`Û¤\Ô›UÍ“QОYÕ¥`Ö¤aÖ¤aÕŸ\ЛaÔ a×¢\Ò¢_Π^Ì›]Ìœ[ÍœWÍšUÓ£bרgÕ£bÖ¢^Ö£YÓ£\Õ§cÖ¨gؤeÓœZÍœXÒ¡\͘QË–TÏ]О]Õ¡^Ö¥dÕ¡fÕ_ÖŸfÔŸgУcÓ¦bÒ ^ËœYÎœSÏšTÏ[ТeÎœd͘XË–VÊ“PΗWÍœbС`Ó¢]ÍXÆ—RÈ‘QÌ–TΟYÒž`ÑaɘZÉ•TÍ[Р`Ïž\П]ТaÑ¡dОa̘[Ê–WР[Õ¦eËœ\ȘWÓŸ^Ö¢\ÏžZÒž]ÒŸbÍš\ЙVÑž`ÏŸbΘU͘SÈšYÈ™TÍžWÎœ[Îœ[Т_Õ¦eÛ¨nקeÔ¤bקhÓžZÍ—TРZÒ£YÔŸZÖ¤]ϤTФV̤ZÅVÄ—S¿‹I¿‹H΢ZÆžT½HÅ”FÅ’JÆŽOÌ™SÑ¢ZÑ¥YТVÏœZÓ¢`ת_Ø«dÙ¬hÕ¥`Ô¦`׫eÕ¤`Ñ ^Ñ\Ñ [ПZÒ¡]Ô¦^×¥`Õ¤`Ï¡\РXÔ£]О\Δ\Ò›`Ô ZÒ YОZË™RΚWОZÒ¢[Õ¢cÔ¢cРZÌ¡YÍœY͘QÉ–FÃ’JÄQÃQȘWÕ¤bÖªgÒ¡fÑaÑ¡[Õ¨dÙ­gÔ¦WÓ¢YП^ЛXÓ¥eЦdËžXΛWÔœSÕ WÙ¤^ܧcÞ­mà³oØ«eÔ¢[ÒŸXÍœUƘSÅœ[΢cÏŸ`Í`ÑŸcÑžUÎQР`Ô¤fѤaÓ¦a×¥^Ó¢ZÑŸZÑœWÑWÑžUÍœUÐœUÑRÏœSЛRÍžPΠUÓŸZÖ§aÞ³kت]ÔžUס^ÓžUÒ UÓ¤`Ο[ÐœQÏšQΚXÓœZÒžVÑŸZפ_׫]Ò¥YÔUÙ¡VØžVÒŸWÒ¡UЙNÍ™QПRΠMÏœPÏœRÐœWÙ¢]Ö¦_Ѧ^Ù¨^¸˜\â´räµyé»{è¸{â¯yß°vä·wæ¾€ê½ì½뿃ë½ì½|뺂è¹~滀湃ã´xݲuÜ°rã·vìÀ~ë¼|ç·嶂â¶|Þ±tÒ¢fΞ^Ú¯rÞ±qÛ­gà´tá²uÞ«gÙ£fÑeÍŸ]Ì¢`˦gÒ¨nÖ©iÒ§eÕ§jÛ­lÝ­jÞ«hÞ«dÞ­mߪpÞ«fä²kå®lá¦eà¥kâªoç±lä¯m߬iæ±oè¯kÞ­eä´qæµuâ³wã·và±pÞ«nß®kÞ¬oß®uã°uå°{ä±}âµ~Þ²|ܧpØ¢gרoÙ¨q×¥dÕ¡aÔ¤hØ«pÖ¦rצoà¯vä±zâ´uã³}á²Þ³zݯtÞ­rÛ­sܱy߯yÝ®vݲyÜ´x߶uâ·~ãµ…äµâ´{á²zÞ³y×®{Ö«yØ­tÙ­nשjÖ§mجuÞ²€á·ß¹tß³v丂꿉çÀ…㾀幂å»㿀㼈巃ݰvÛ±}ᶀáºxÞµuÝ°uá´váµvà¶}Ḃ往è¿~㺀á¹~å¹{ã¹ä¼ç»ä¶{à²uàµyä¹áº}Þ¶yÚ±pÚ¬nݱußµxá²vãµxã¹|߶{Þ°tܯjݱqÞ±yݲlÛ¬jÞ¬pݯmÝ®và³tßµjá³râµvÞ°oÝ°oÞ±sáµtä²pâ°sá´tâ±xâ´xá²oß«mÙ¥fÑŸ]Ï£dÖ«hà«kÚ«lÚ«gå´u껀ã²rרeÑ©jÓ¦dÓŸ`УeÑ¥aÓž_ѤhЬoÔ®mÙ¯pÚ³rÞºzä¹~å¶uå¹xãº}ä¼}å¼{ãº{ä¼}á¶tÜ«gÙ«kÙªgÓ¤dÓ¦hÖ¦iÏžaÈš[Æœ]ÉŸ`Ñ£hУgÏ¥kÖ§tÙ©oÙ®hÛ­oÜ«nÖ°hÕ­jÙªsß³tÞ°mݬjÞ­cØ¢^ÔbاlÛªgרeÙªbبbÕ¦jÚ¨kÚ¦aÕ¦cÒ¦dÓ¦[Ó¥^Ò¦^Ѥ`Õ¥hÙ¦jÕ¢cÕ£dؤ]Ô£\צgÙªgØ©cÕ¢ZÒœZÓ XПSТ\Ò¢^Ò ^Ô£cÓ ZÕ¢\Õ¤`רdÛ¬dÚ¦cÙ¦cئbÓ¡`Ó¢`Ö§eרgפjÔ¡gÓ ]ÔœXÓœ\Ô¦gÒ¤eÐ`Õ¢bÓ ]ΙV̘VÒŸ^Óœ^Й_Óž_ÒœSΘSÍVÒ¢UÔ¡WÕ¡Zמ_ÖŸgÕ£dÓžZÑ™WÕŸ\פ\ÓžWÓŸ]Ó¢dÕ¦bÔ£bÔ¢bÓœ]Ñ’TÍ–SÒ¦`Õ¤cÏ–VÍ•TË”VÊ”QΛYÏ^ОbÔŸbÔ\Õ¡^פ`Ô¤`Ö©iÚ©gÖ©_Ò§bѤ_Ò¤ZÖ¤\Ñ¡\Ò¢ZÏœVÉ‘NňE‹CÏ£WݱmÒžbË™ZÑ¢^Ñ ]Ó¥cשlÚ«mÛ®oÜ®oÔ¦jΣcЩbتhÞ«iÛ«eÛ¬gÚ­fبaÓ ^Ó£^Õ¦bÔ¢`Õ§dÕ­fÕ«gÛ­jئ^О]Ρ\ÑŸSΙRËœUОXÓžYÏŸOΞRТ_Ò ^ОWСWѤ^Ô¥`Ò¤ZÑŸUÎZÈ™YɘPÍQ΢^ΤaÑ¥`Ô¤[Ö¥XÒ¥VÒ¢[اdÛ¨ZÓ£XÔ¦aÕ¤\ÌžTΠYÏžYÊšPÌŸUÎœ\Ó¢^Û«fݬná²oä¹uÞ±oÖªcاbÓ¥^Í£]ΣeÖ©hÕ¥bÓ¥\Ù«\Ô¤bÒ¤fÙ©eܬe×­lÓ§fÓ YÔ¢YÕ£]Õ£^ÒŸVÏ›RΞUÏŸZ×¥bפZЛMÏ™QÏœWÍŸ\Õ§dܯkÔ¥aР[Ö¢`ÓYÔ ]ÛªjÙ©bÔŸOÏ™OË—PÌ•PϘR̘LÄ•KÆ•PÊ”UÍ•SÍšSΠWÑ OÑžOΟVÍŸRÍŸOÌUÑTÐœOÑ UÖ¦ZÚ¨]Ø«^×¥ZºŽ\蹈ç¹ëÀ‡ìÁè½~æ»yâ¸ä»~êÀëÁƒïÊ„ñ̇îÇëÇéº|å·á·~Ý°wÞ¯ná²uæ¸ìÀìÄ„íÂê»{ã¶yÞ°rÕ¢iÖ©p伄ޱ}Ú©ná²tä´uã±uÝ­lÖ£]Î_È™]Á–YÅœ]Ì¡fÈdȘ\Ëž\Ò©hÙ°qÛ¯qÙ«oרnÖ¦jݬhä¬oÞ£hÓ¢bÖ§kߪká¬hà®kå°uä°rà®kç¯sæ²uã²på¬råªrã¯oà°qà¬uÝ«pß­mâ±sã¯päªmá©iݧcÛ¥cߧjà¨nܦmÙŸg×eܧgÞ¢gÕŸiØ­oà±r߯sÝ®rÙ©pÖ§nתmÚ®uݬuÜ°uڳ߲{à³xß°vß­zá®tá¯nà²sß°tÖ¦hÓ¦gÚ«lÚ¨kÖ§kÙªoئpÖ¢mÙ¦nݨpÛ«tÝ®{ã±}ç¼}æÀ{ä»yà¶{ܳzÞ²uݳvà´}ã³|à±}ᴈ⹆àµÞ´{ݲzä´{ã¹~ܵ~ܲyßµ}ã·|á¹sã¹vâ¹zá¹y幀滈à¸á¸~â¶|á³váµyßµ~ݳtÙ¯tÚ³zܳzß°yß±yݳyÜ´zÛ®uÚ«sÙ¯xÛ¶{ÚµxÖ¨pÔ§rÛ¯sÞ±tܵvܸyÞ³wÞ°{ܱxÙ±tÛ±uÞ²uÞ´sß²lÞ±o߶uá¶tá¶tá²rÞ­mÜ°mÛ¬kÛ¯kÞ±lݬgÚ­háµpá³tß±pÚ¯kÒ¦eÓ£bÕ¤^Ï¢cÍŸb×­fà¹xÔ¨aϨcÛ´vݵuà¶{ä³xà±ká¸tä¸{å¹{æ¼ç¿ƒéÁè½zãºxá¹~â¸|à³u㶀翀ߺuÙ±vØ®sÙ¯nÝ´pÛ³tÚ³wÞ¶uÞ²wÞ¶uÞ¹tßµvà¶t߸xݵyݳs߶vݵvÝ®nÚªkØ«jÜ°nÜ­sØ«qرmÛ­nܬnÞ³oÛ²rجqÛ«nÚ¬kÛ¯lÙ­kتdÙ«iجjÚ¬bÛ®fÙ¨iÚ¤hÚ«lÙ¯kÙ«fÙ©fÖ§dÕ§`Ò¢]Ô¦bרdÏŸ\Ì ^Ï¥bΤ^Í ZÒ§bܬgÞ«hÝ«hÛ¨lÙ§fÙ­eØ®aÙª^Ûª`Ù§`×¢bÙ£`Ø«bÙ¬eØ¥eÓ¡aÑ¡cÔ¦^Ò£[Ô¡aÛ¦\Ô PΛWÒ¤aÕ¥\Ö¡aÓ£\Ö [Ø¥dÕ¨eØ£bؤ`Ñ¥ZÓ£Z×£`פhÙ¦g×¥\פaÛ©eÚ®iÜ©mÙ¥gÓ¢`͘QÉšSÒ¦`Õ¤`ÏœWЛUÏžXÉ—X˘ZѤbÚ¬nݪnשeÖ¨gØ©lקeÚªfá³nÝ°hÒ¡_ÄTÀŒHÂMÅ“UÒ ^ÒŸVË•KÌšLËœXÓªhѪdÇ™_ТcÔ¬`Ò­cدkÞ¶mß¹t߸zâ¶xß²nÔªjÒ¦hÖ©lÙ­nܯjÜ®nÛ²nÛ°mÖ¬kÓ«jÙ­hÔªfÒ¨gØ­kÚ®sܱtÛ­hÕ¥aÌ \ȘPɘPÊžUÉ¢`ÍŸaΙZТ`Ò«cÕ¨`Ô¡WÒ£ZÙ­fÜ­mØ©dÖ¨^Ó¥aÌŸ\Π[Õ¥aÖ¦bÔ¦eПbÎœWÒ¢[Ø­aÖ«`Ö¨aÙ©a×£^Ò¢]Ò¦XФXÏ¥^Ρ[Ë™YÍŸYËœQÇ—VΞbР^Ô¨_߶sâ¶rÜ°eÙ«gÙªhתiÖ«mÚ°lÛ°hÙ­iØ°kÛ«dØ©`جaÝ­hܬnѨdС[Õ£`תhÙ®fÙ©dפ[Õ¤]Û®e߯hÛ¨aÕ£YÑ YÒ¤^Ò¥bÔ¦fÕªgÒ¥ZÓ¤`Ù¥dÖ ]Ò¤[Õ«fÕ«cÓ£WÓ£[ПUÍKÍžVÄM¶‚:¹†?ÀŠD½…@¾‰KÂŽMÄJÇ”QÌ™TÊ–OÇ”KÌšOÎVÍ›TΟVÑ¢\Ö£\Ö£\Ò¢Y¹“^껂뼇êˆë‰鿌麇跄㶃㺅çÇíÇŒñÄŒëÄ‹ë¿ˆí¼…éÀêÀ~ê¿€ä¿~羇íÀîÅŒíÇïÉŽðÆðÃ‹ì¼†è¸„í¾†íÂംدvá¾}êÁí½€ì¼}è´tߨhÒŸcÅ—]Á–XÅš^Äš`–WÁ–SÇ _ͤgÕ«oܱyÛ­rÚªoÛ¯uá²tâªlÚ¤kÔ¥mѤnÖ¦lß«lá¨lá©ná²pâ³mâ²ká³pæ³uç¶{ä¶rã²iæ¯mÞªbÙ§`ä¬kæ¯kä­pæ´væ´pã­qç²yè¯vãªrâ¬hݨbߨfÞ«kÙ¦nÖ¦oØ«jÝ­gÞ«kÙ¦lئhÝ©h߬oÝ«oÚ«nܯpÛ«nÛ©oݪhߨmݨkݨfá§jÝ£gØŸcÙ fÛ¥cÚ¨`Û¦cߦjÞ¦gÞ¤`×£aÕªiÝ­lÞ¬uà¯wÞ²sÜ®uܬsÙ©rרqÕ¨iÖ¦gÖªoܲuà°yá±{߸zܶyÚ³yÞ±vá°wâ·vâ¹vâ¸yá¹zà»}á»xâ¹y乃伉乄清⼃â»å·~á·߸á¸~ã»à»|Þ¶{Ú³}Ú·{ݶ|Ý´~Þ³zݬsתoدqÚ°rÛ«rÚ«tزxܳyá²x߶{ݱvÚ¬oÖ«pׯxÛ¯tÚªnÙ§jØ©qÚ±xݸtݹzÞ´yÞ´vÞ³uÞ´uß·ݳ}Ú²xݳyݯuÙ­tسsÙ´pÚ´tß³zݱuÚ±nÕ«iÍ\ÉœZÖ±qÞ¹rÔªjÔ¨mÕ«kÚ«nà´sÚ±nÖ«hÚ­iÚ¨hÙ­kÞ¶sâ¶qâ¹uãºzâ¶{à¹xáºsá¶xâ¸|âº|à¹|ã¿zâ¿yã¼xâºz߶€à¹áº⻂å¾}ã»|ܵvÞ·uá¶}ܵvݸrã¼{áº~߶vÞ¶vÛ³xÚ°rÜ´pÚ¶vݸ{Þ»yàº}ã¼}Þ¹vÞ³vݵvß³và´vß·vÝ·vß·xß¹uÜ´qà³xݳvܳoà³sß±rÛ°sÞ±oÞ¯lÛ®rÙ­j×±gÚ²oÖªqÔ¬pÔ«hÑ£bÒ¢dÔ¨f×±mÛ±pÞ°pÙ¯pׯkß±gß³mÞ°mà®qÞ°oÚ­eÛ­gÛ¯gÞ«hÞ«bܪ^ݨdÜ«fÛ«fÛ«dÜ©fÙ¦fÔ¥\Õ¤^Û§fÚ¬fØ­fݯkÜ°mÚ«jÖ©dÒ¤YÍŸUϦ\Ú±eÝ°eÚ®mÚ«oÜ©iÝ®kÞ°rà±vÞ°o׫dÏ¡XÍXר_Ø«cÔ£`Ò£^Ф^Ï›WÐVبgà°qá°oÜ°tÛ²nÞ±sÜ«oÖ¨jÞ®oÞ°lÒ¥ZÈ•FÆ”OÉšSÎœSÝ®kß°mÔ¦eÚ°iÚª_ÍšNÄ•KÀ“OÆ›ZѨcÖ«nתsÚ²uá»|à»à¹xä»xÞ³v×­pÙ²rß³tܱuÚ±vß³tã»xä¼߯uدoÚ²tØ­qÙ²o߶uÝ·vÞ·tÚ°nÒ¥bÎ_Ï\Í \Ë£fЦgÖ¥cÙ«lØ°lدhÖ«fÙ©gÝ´r߶sܲiܲkÞ®kاdÕ¥eتh×­dÕ¨_С^Σ`Ö©cݯhÙ¬dÛ­eݲeÛ­bקaÒ¥`Ò¢`بgÓªh΢`УZÎ¥WË ZÉ¡YÇœVÉ—ZУdØ«iÕ¥dΠZÌ¡`Ò¦hتfÙ¬kÙ­mÜ­mܬnÖ¯oÙ­nÚ¨eÖª`Õ°cÒ¨_ÏžZÓ¡ZÔ¦`Ô¬hرmØ®jئbÝ©eݲjÚ°bÕ§YÒ¥bÕªfÖ¬cÓ¬cϤ^Ï¥_Ö®dÚªjÖ¤dÒ¨`Ô¨_Ñ¡^Ó¢bجe׬_ש^Ô¯_ЩWÈšVÈ™YÆ—Q¹ŒFºŒD¿ŽFÀTÅ—WÉœUÄ•RÀ—QÚWÆ—YÅ•TÆ–PÊ›ZÏ¡dÍŸ_̘W³[鿆èÀ„辋軌彊侈è¼ä¸€áº庀漃éÂîĆïÃŒîŠëÄ‹ïÊŒðÊŽìÆêÆîÈðÌ쿇êÃŒðÇòÉòʈòÈŒíÆîËèµ{Ý®téÁ‚ïÇŽïÇòÆð¾ƒè·và®qÙ¬oÔ¦mΠeÐ¥dΣkÊ fÒ¬gÚµuÞ¶€ã¸{äµxâ³wßµxä·}ä³yÝ®sÝ«oÓ¤gѨkÞ°zÝ«sÙ«já²qÞ­pÙ¬pÞ±rá³oåµsè¶vç´sä®tÙ§iÚ­hã³wâ²yà³oæ¸rè²sâ±nå¶qå³já¯jã®lã­càªcâ®pÞ­kÒ£`Ò£bÚ«fÝ«fݦhݧoß«ná«mÚ¥gÔ¢_Õ£dÒŸ_ÑŸZÓ¤bݦiݦcئeߧjߤfÛ£aݤdà§dÞ¦[ݤ[ã¨`ã§bݦaÕ¢_Ú£fÞ¥hÙ¥bØ£`ÕŸ^Ïž^О^ÓYΚXÍ™[ÎaÌŸ_Ñ¡cÙ¥kÞ¬pâ³xß³xÛ®rÚ«nܲxç»~è½zá¸{á²~åµzã¸yà¶{á¼~äÀ€ã½}à·ใä¾}â»}á¸ã¶{Þ·Þº‚ༀá»ݵ‚à¸á¿€áº|à¶|Þ¶~ܲvÛ¬nÙ­oÙ°sÛ°wàº}ä¼yá¶xÝ´yÛ®tÛ«rÚ¬tÛ±uܲsØ«qÙ«pØ«pÚ­u߶}Þµ‚Ù±~Ø´uÞ·vÞ³zÛµwßµyß·zܵsÛ²qÙ´pÙ´oÙ³vÛ´zß·uà·uÞ´nÖ¨dÊœ\Ç ^Ò¯pÖ®oØ®pà¶vÛ¬m׫jÝ´rØ°kÓ«iÔ©iÖ¦`Ù­iÙ´qجgÚ«ià²pÞ°qتnÛ°sá¶vݱmتnÖ­oÚ±rá¶~⻂â·~Þ³zÛ¹zàº}å¹{ä¸zܲuÕ°mܸuâº~ßµyà¶vá»á»ß¶y߸~Þ¸yܳqÞµ}Þ¸|à»zà¿~Þ½{â¼}ä½~á·yá»{à¿{Þ¸xݶ{à¶zá¸~ß¹~Ú²vݲsÚ³vÙ²vàµtݳrÛ²vÞ¶xÞµtÛ³vܲuß²xݱwß³tâ²yܶvÕ®oÔ¦o׫uÚ´yß»|â¸{ßµy߶v߶x߶wáµz߸{ܵsݲoß´oß³sâ·wߺxÜ·oܵpÛ°pÚ­jÝ®lã²rá³rÚ­dÙ­hÙ±qÛ¯qÝ«lÙ¬nתo׬nÔ¬pÍ¥bÊž^Ó¥fß°eݱjܯqÞ°mÚ´rÚ¶zß¹yá¸pß³pÞ°rܬnÔ¨hÕ¬fÛ°jÚ³oرjÔ©jÏ£iУaÖ§gÙ±uß¹xß³qݶoáµvÙªjÒ¨`ÙªhÞ­rá²rß®hÜ­fÖ«lÔ§kÞ·rÞ¸rÚ¬jݲmׯmȘW¸ƒC²€A¸ŠKÙ]ТjÔ§uÕ¯{ݹ|ߺz߸~ä»{á»yÛµyܵvÚ·uÙ²rÜ®vÞµ~à¼yã½}ß¹{Ú³sß¹yà¼tÛ´oÞµ}Ềà¸{ß´xÙ¯rÒ«lÑ«iϧęaÕ²sÚµ{Ù¶sß´tܱvزrÜ´pÞ¸xÞ¼yÛ´rܳpݶxÛ±pݯdÞ²qܳsÜ°hÙ¬nÖ¯hÚ±hܱoÙ¯nÛ­pÞ´nݶjÙ°hÕªdÖ¨hÞªrÞ¯mתjتrرrׯrÔ¬pÊ¥fÅeÈe̤gѨb΢YÈž\Ì£`СaÎ¥aÕ«eÖ¨dÒ¨eÓ«gÕ§gÖ¦cÕªbÒª^ФXÍž\ÍaÏ ^Ò¦^Ó§`У\Π[Ï£`Ï£[΢SË¡ZÏ¢_Φ_ΦjÖ¦kÒ¥eЧdÓ¬gÖ­mÕ«hÔªbÓ¨`ͦZ̧[Ò¨`Õ«aÕ«f×®oÕ±oÒ¯hÒ©cÐ¥fÊ¢`ÈšXË›ZÌ¢\È›WÆ–ZÁ™YÀ—TŘY™T–PÆ™WƘZÅ™ZÈœSËU°Y꽈êĆëŠ꽈迈çÁŠëÂìÁ…îÂíÂèÀ‡èËìÈïÈ’ñÃŒíÇíÄŠïÔëÈ‘é‹ëÀŽíÇ过èÂŒîÃŒñÆóË•óÈŒìÆëÀ䶀޴tèÁˆíÄ’ðÇ“òÊïɉëÃì¼꽅伃߶zÞµ|à´~ß°xÞ¶~çÀ‹é‹êÀ„꼃乀滀êÊå¾ãµ{æ¶}Ü«xÛ®wç·ã°tÝ®rå¸}çµ{â±{湀躃輀ìÁé¼|ç·vã³wã´vë½|ê¿xè¶rë·uç¸xåµ|å³yã²sã²vã¸tà¶rÝ°oàµjâ²mÞ­pÚªkÛªlà®là°há°mã¯mã­hܤfÒžcÔ¡eÒŸdÍœcÏŸaÕ¥`Ö£Z×£\ÚªdܨcÛ¦bÛ¨eߨhߦeÞ¤aä®dä®eÚ¤`מbÜŸdÚ£bÚ¤]Úž]Óš^Ò›WÒ˜SΘTΚQÍ•NË“RДWÑ›\קjá±z湂å¸ß°pݲsàºz㻀㹅㹀à²}Û®xܱvÛ®wÚ®sß²|á±~Ý°uÞ³{߶|à¸~áº~Þ·yÞ±wÛ²uݶ‚Þ´†ß²âºá½à¸„á¹áºzÞ´xÞ°pÚ­lÚ±sà·zâ¹}ã¸{à´wݳ|Þ´|âµ{á¶}â¹yã¼{Ẃã»~âºzà¸|ß»ƒâº}ܳrÚ·{á·‚Ü°}׳zÞ¸|ß¹}ܸ€Ý³€Þ·{Þº{Þ¶‚ݶ€Û´|Ü°wתnѪiɧbßaÉ£eѪmÛ¹zäÁ‚á¸~ݱváµtß·{ݶqܶpÞ³{ß´yãºyà¶uÞ°tÞ²xرrÚ±oÞµqà¶vܲxÝ´uß²uܱzÞ¸zãµuÞ¯zدtܯrÞ²yÞ³yâ°xÛ®tÕ¯táº~â¾|ܸvàº~á½~à¹và³vÜ´v×°sÚ¯oÞ³rÞ³|߸áº}ß³tݵqá·vß²{Û¶}Þºz߶rÜ·xÞ¹ݵÚ°~Õ«tÖªvØ©{جyÙ°}ݲzÛ³wÛ´sܶnÛ¶mÞ´tܵvÙ²sÙ­sݳ{ไݳ~Ù°pÛ°qÙ°yÙ³yß¹xàµwÜ´uÜ·vݶuܸtà¹zߺsߺsä¸}ව⾅â¼}ݳyÞ´yà¹sÛ¹xỀä·ßµvß·nÞ¶qܳvݳtá³vâ´xÞ­qÙ«uÕ°nÔ«gÒ¥iÓ¨nÜ®rݲvÞµxà¶uÞ´uÞ´sܵyݶ}à¸zâ¹}â¶{Þ±tÖ®qرqßµtá¶wÛ·vÖ¯xÔ¥jϦjÖ²vã»}ã¶xܱvß·zܵrÓ©fΨjÒ°tÞºuâ¼zÞµwØ®nÔ¬gÙ²oÙµnÒ«_Õ¬eÚ±jÐ¥aÁ•U¶ŠI´‹HÀ™\ͤlϬpÓ²tÛ²wß²uà¹yã¾…ãºß¶xß·{ݵ€Ý²yßµtÞ¶yÞ³wâ¸wà¹}Ù±và²{ä·à·xâºzâºâ¸~ã¹€Þµ|دqÕ©kϤjΩiÛ¹yཅà·}ßµwÛ¶qÜ´nÞ´pÝ´tݯxÜ®qÞ²pàµmÞ³iß±kà³qà¸zÞµyÚ¶nÞ¹uÞ²uÛ°kÛ°kÞ¯u߶{߸uá´uÜ°rÙ°pà¸xãºwß³qÞ¶tܵqÚ­sÙ¯yÓªķgȧmÍ©mزoÙ¯qצkÓ¦eЦhÒ¨hÖ©jتjÔ¬h×­hÛ­qÛ±kÚ®eשi×­kÙ­iÕ«fÔ«fÙ¬h׫eÔ¦bÏŸ`ÍŸVÊœVÈ™aÌ ^Í¡WÈžWÌ£`׫jتkשj×­gÛ°jÙ®pÙ®oجnÕ©iУcѦeجkÕªiÓ¨mÒªlÕ«jÓ©fϧ^ÒªeЩbΨeѬfÉ¡ZÆ›\Äš[Á˜WÛXÁ—S•WÈœXǘPÁ‘OÆ—SÌŸZ²ŽU(쾊íÃŒí¾Œé¼‰æ¼‰êËðÌðÈîÂ꼅㸂êÀòÈ’ðÅîÁŽíÄ‹ìÀŒìÂŒèÃ…è»ç¸€â¸‚å¹ê¿„êÇŒî•코êÀ„èÁ‚Þ¸{Ù®vḆèÂŒíÄñÇíÃŠí¿ˆðÇ’òÊ’ðÀŠë¿†êÃ…è½…ä¹æ¹ƒç¼…ç¿…êÃŒêÁŠè½„è»…é½€æ¿~á¹xä¸}ä½€áº}ã¹…â·Þ¸~èÄŠïĊ뻆뿊ìÄ‹ëËë†鿀ê¼ë½}è¼~ê¾…íÃë¼|趀æ·}ç·}é¸å´vâ³sâ¸~â±yÛ¦jÛ¨qá±wâµuæ¶vã³väµwè³|æ³vä²sã¯qá¯jÚ¦fÑ£kУfÍŸ^ÊcΣdÓ¥fÖ¤jÙ¥gܧfà©nß«qÛ«jÝ©aÜ¥h߬má­kÞ¡bÚ `Ø£bÙ¤_Û§hÝ¥dØŸ_Ô`ÖŸ`Öž^Ó›YÒ—VΗXÍ™WÑž\Õ¤gß­sä´yäµuá®qà­rà³xà³yÞ·Þ·„à¯tÛ¬kשmÕ£nÔ¤h×­qà²wâ°uÝ®zÙ®sÙ¯oÙ®wÙªtÔ¨oÓ¦pרrÛ©yÜ«xÜ°zÚ³}Ù²~ܲvÜ°pØ­xÙ¬nÙ«hÙ±yÝ·}ݲyÞ°€Þ®vÝ­qݳvÞ´}ß³}â·}什á¹á¼âÀ‚㹄幆Ẃ߳{á¶~ṀݴƒÙ´„Ý·}ß»|ݹ{ß´~߸…ݵܲwÜ´wܵyØ°uÓ©lÐ¥kÉžc¾˜^ÄžlÒªvÛ¶{߸ݳ{à¶tä½|æ¼…å¶~â¶zâºã·€á´ä¸æ¹~ß´{ݲtá¸}ã¾{æ¾yä¼~äÇç†á¹|Ý´xܯvÖ¯qÒ©pÒ¥oΤkÑ¢hÚ¤fÓ¢fÚ®p辂â¶}بy׫uدvײsÖ®kÖ¬jײlÖ¬lÕ¨mØ°u߸uáºuÛ°tÙ®yÙ²{ܱsÛ°oÙ±wÚ±tÚ²sݳyÜ®rÙ¯p×­vÔ­vدrÙ«vײ{Ý»tßµmÝ°uÙ²vÙ²sÞ·uß³yÖ«rϨjÓ¬sݳ{Ú°uÔ®oÛ´rÛ²qÕ¯rÛ³uÛ°qÛ³xÙ±sÔ«mÕ°m×±kÕ©lÚ´vã¹vܬqÞ·{â¼{Û°vÚ°vݳ}Þ·}â½|ã¼Þ´}ݳyÛ±mܱiݶsÞ¶zß·xÞ¹váºuß³sÛ­oجo×°m×µiØ´nÝ´w߶zÙ²xÙ³uݶxÞ·yݹvÙ·xÝ·vßµw×°rײrÝ´yÞ½zá¼yà³uÚ¯sÕªuÙ¬wà¶{Þº}á¸{áºyÞ¸yÜ®qÓ©hÕ±pÞ¸wà·tÞ²uÚ³qÕ¯hÕªiÕ­pÕ­oÖ«mØ°mÒ¬fʦaÉ¡fÆšeÉ¡hΩkʨgɦiΡjͤk×±tã¶}ã¹â»ƒÞ¸€Ý¶}Û¸{Ú¸}ݶß·zÞ·€à¸‚ßµvÞµtÞµzÞ¶}á¼|ß»yÞ¹vá»{Ü´yÓ¬rÔ¬uÖ«t׫t×°zܹ~Þ¶|Þ°xÞµtܶwݲuÝ°sÝ«tܨsݯsܶqܶrܲvÞ³xÞµvß°xÞ®sܳqÞ±pÚ²lÚ³kܱnݳoÞ³qà²tÞ¯tÛ°uÞ³xݲtݵtà³xݯxÙ¯nÚ­kدlÕ­kѨhШcײjÞ¶jÛ¯gÕªj׬kÛ±mÛ´tÚ³tÙ²pÙ±tß²pÞµnÛ²kܯnÞ²qàµnݵmØ´mÖ´oÖ´oÛ³nÙ°jÔ°kѯhЫmÑ®kÓªeϤb˦_Ó¬iÚ¬lÙ¬eدi׬oÚªmÜ°sܳmÚ²jÓ¨iÒ aÕ¨mØ­oÛ¬mÙªoÖ«gѨeÍ¢mѦkÓ§gÕ§kШhË¥aÍ¥aÈ¥`Ä¡[ÇœXÙY›^Å^ÅœWÁ–OÀ–TÈœV³‹TðÈ‘ðÈ쿆뾉鿉濅迆ë¼ëÀêÁé¸~å²y漄ëƆìŠì¿íÀïÂîËìÄŠí¿Žé¸„â´䵄鿃ìÃíÀ„ê¿€êÀ€ê¼†Þ±„Õª}Ú³}ä¾êŠ뿌躇㽄ëƇñÊ‘ïÅ’ïŠï‹ìÁŠé¿ƒã¼„⻇翆ëʼníÂŒí¿ê¼è»Šæ¼ƒâ¸á¶…亇澃弄⹃â¹è½„îÊëÁ„뾂îÀˆë½ŠèÁèÁ‰éÁ‰éÀˆçº}é¿íÈíÂŒêÂ迅뿈èÈ缄綄軇é»~â®oà¯uã´wã´{㺀åµxåºyå¼{å¸xçµræ¶qç»vä¯vÖ£hѦbϤfÌ£fͪfÔ«hئeÛ¦hÞ®râ³oâ±fà­gÞ¬dÛª^ܦcà§jà¨bÛ¦\ܧbà«kàªbݨaܨdܧ[Û¤WÚ¢^Ø¡`Ø›]ØœcÕ¡]ОXΚXÕž^Ý¡gß©hà«hà¤lÜ¥qتpØ®rà³xâµxÚ­oÕ¥kÓ¢kѦn׫pÞ²uà±tÞ¨nÛ§lÚ¥mÕžbÒ aÒ¡gÏfÎhÓŸdשmÚ¯qÚ°rÛ°uÙ®r׬oØ­vÙ²{Ù³xÙ¶{Þ¶€ß³~߶ݶ€à¶yáµwÞ´vÞ±sÞ­sß­vÝ°zÞ³|Þ³}à³~á´yà¶|á³zà³vܳ|Ü´yݶxß´yß·yܵxݵ|à»}Þ³yÙ°zÙ²yÚ¯{Ù©vÔªnÒ¬pÍ£hÂdžeÍ©qÙµ}Ý´vܳxÞ¹á¼~㽂á¸zÞ³uß²qß³v߶{á·z⹄â¶á²tß¹~ÝÁ…áÀá¾~⾅⻂ݴxÚ¬yجoÚ°iÚ±oÕ©hÍž`Ë¡fЦjФcسmàºzܯrУiÍ fÕ§hÖ¬lجvܱ}Ü°{Ø©sÕ«rØ®tÚ²uܸsÜ´xÝ´zÚ´oÚ²pØ°rÖ²uØ°{Ù°xÙ³sÜ°nÞ±tÙ²s׬qÛ¶yݽuß¹vá·|ᶀ޳yݲsݵvßµxݵxدtÓ¥lÕ¦jÛ±sÚ°uÒ§nÖ«vܲÙ±xدqزvÖ±qÓ¨eѧjÔ¨nبlÖ¬nÙ²rܵpÖ°oÙ³xß»yݳoÚ¬nØ®y×´zÖ³oØ®pجmÖ«jשmÖ©kÖ¬hÚ²mÞ°vÞ°uÞ¶nâ´rÞµxß·zà·}ܵ|ܱ~ß²~Þ·zÚ¸uݳwÞ¶€Ü¶}ß³zÞ³|ܳ}ܶy×µrÜ´zß·|Ü·zß¼€Þ¾‚ểà¹Ùµ}׺}ß¼}ä»á¸‚à¸~Ý·ײ€Úµ}ܺÚ»‚Þ¸|Þµ{Ú°sÓªiÓ¨rÛ¯zà¸vÝ´sÕªmϨgÔ®hׯnÕ±rÔ±nË©cÉ¢^Çœ_É£eÕªnÚ­vÝ·|ݸ{Û³uÙ±mÓªfÓ©l×°zصvÛ²rÞ´zÙ±sײoÙ´qÚ®rà´zÞº}Ý´yݵvÝ·wÛ²vÚ²xݳ}ܳyÛ³v߶}ݶ|Û´v߶ݳ€Ú±vÛ²rÚ¬oÙ®oܵtݱpÛ°oزmÙ®jÜ®rÞ¯tܯrÛ°oÙ®mÙ¬l×­nØ­kÙ¯pÚ¯uÛ²rÜ®mتlÙ«oÝ­lÜ­nÙ°uÙ°tÛ¬qß³yÞ·yܳqÚ­hÔ«iØ­lÚ±gØ­aÕ­h׳sÚ³nÚ²mÚ´oײqÖ´sÛ¶tݲtÚ²qÙ²lÙ´rÖ°tتfÚ­hØ®mÖ¯qÛ²sÛ²mׯkÕ¬n×­s׳rÔ®kÔªdϬcÒ¬kÚ¯rܲvܲzÚ±sÚ²lÚ²pÛ³qݲeÛ­hשmÖ²kÛ·mß³uÞ´rà´mÜ°nØ­eÛ²jÞ²qÞ³nÕ®fÎ¥gÎ¥iͤdΟcЧd˧bÆ _Å ]ÅWÀ—Q»P¼ˆL¥Fíĉíŋ黆跄涄â³|áµyä¶ç¼ˆç½…å²zá­x伈èÁŒç½Šé¾ƒé‚ëÁŠîÁ†îÇ„ïÆí¿Šè¶‚å¸„èÀ‡ì¿ˆì·†ëº€ë¿~ê½ß±{׬wÛµyäÁ{è¼…æ·„ãµ}Þ¶ãÁ‹ìÂí½‹ë¿ŠëÂé¿é¼ˆê½„éÀ‡è‹èĆ뿊꾉꽄鼇彈ã¹ã·…䷉輇溅市å¹}æÀ‚ìŒ踃ã¼仅ᵄäº|ç¾~鿊꺅ã¶{å¿ëÂëÂíƆë‡ê‘ë‹鿅ëÀˆîÄ‹ëĆä»æ»‚æ»~å³zæ²{ã³{âµvâ´tà±qáµvä¶{ä·zâ¶xÞ­kاfÖ«nجpÖªhÖ­eÚªfÛ¨hÜ©nß®wà°tß®kÞ«oÙ£gÕ¢`ÛªcܯdÚ«dÞ«jà¯nß±kÞ®g߯jà­eá©dâ¬há¬má¬oÞ­mÕ¨iТdÌœZÎœUÑšWÏšXÖ¤]Û¢`×™\Ôš[Ñ `Ù§lߪoÚªl×£fÓb΢eÒ¦gؤcØ£_Ö `Ù¤fÛ¡dÔ˜[КUÔžXЛY̘YÑŸdÔ¢cТeئoÜ®uرmÙ±pÝ·€á¸â·xß·zÞ¶}เ޹‚ã·|å»}â¹zà·yÝ´|רlÕ¥dÑ iСhÔ£dÖ¦lÙ©tØ°sÖ¯kÖ¨lÖ¨pÖ§gÓ©mÖ¯yÛ¬xÛ­vÜ´vܲtܯoØ®rÓ«vÓ«tÑ©pΦrÕ«vÒ¥jÆ™cÆ›jÓ«|Þµà³uà¸ᾃá½yã´vã¯uà°pܲrصxܹvܲzܱ{à·|ß·~ݶ߸zá¸xá¸ß¹|ß³vÛ¯yÛ°vÙ®uÙ¬uÙ°pÙ´uÖ¯rаvÔ±qÚ²qà¸}à·{Ô±yͪlÍ£dÓ¨nرvÙ°vݲvܲv×­oØ«iدlÖ¯rÛ¯pÞ±qسuØ´sÖ°t×­zرxÓ«oѨmØ­pÝ°wÝ´yÙ±sÕ¯oÛºxÞ¹€àµßµ|׳tسmܳnܸvÚ¹oܸrÖ³{Ô©sÖ¯oÛ·{߶~Ý´{Þ·yâ»{à»uÙ³oÙ¯}×°{Õ­jÙ±vÖ°xÔ¬q×°tÙ´wײxÕ¯rÒ¬pÖ¯uÛ±tÙªnÔ¦jÒ¥iÑ£fШfÕ¬eÑ¥\ФbÕ§jÕ¦fÖ®fÞ°jÚ©oÖ©qܱuß·‚Þ¾~à¿{à¹ÚµuÝ·v༅޹~Þ¹yà»~߶zݲxݵzÙµvÜ´wÛ²uÛ²tàµ{Þº}ݺ|඀á¹à»Ý¸~ܸwÞ¸wß·{Ûº|ݹy߸~Ü·ضu׳u׳uÙ¶yÙ²~Ó­yЧoШoÖ³xߺyà¶uØ°mÓ­iÕ°oسvÕ°vÕ¬rÔ­tΪwΤoΦkϪjÕ­qØ®wÔ«tÔªoÕ«i΢^É[ΤeÑ¢gÏ¢iÓ£hÑœdÔ¦lÖ­dÒ¢[بhÝ®oÛ©pÙ°rÚ³tݱyܲ{Ù±qØ­jÙ¯mÛ¯pÖªmÓ«mدsÙ¯zÚ°t×®hÓ«lÕ¯rÖ¬oÒ¢bÔ¢aÚªmÚ«kÒ¤cÒ£gÔ¢iÔ¥kÔ¨fÑ¥dÓ¤jÕ¨dÖ«`׬gרeÕ¦fÕ¨iÕªmÕ®qÙ­kתlÙ­nÞ³rä»yâº{Þ±zÛ¯rÔ¨lÒ¨m×®g׫jÕ©pÓ«qÖªqÚ¬qÙ°qÖ«oÕ¬lÕ¬nÔªjÔ¬iÔ¬lÕ­hÕ«jÒ¨eÒ§^ÕªfÖ®hÕ®fÕ¬fÕ§bР]ΡcÍ¡bÈŸcÍ fÏŸcÏ¢gÒ¬oײlÜ®lÚ¬qÙ®q×­s׫qÚ«gÚ«eÙ«iÚ¯jÛ°rà²uâ´sà¶pàµu߶vá³rã¹xæº|à¶sÙ¯gѤlÍ£gΣ_ÊŸ]Á›ZÀ˜ZÀ˜X¼”RµŠI®‚<±€9¤}Bé¸ç¶|æ¸|涂ç¯}ç³}껃뼈꼉꺈긂è»æÀŠçÊëÈëÀŠê½‹êÀŠé¿‰ê¾‰ì¿‚ì¼깆床羉éÀ‡èÂ…éŠèÀ翉à³~Ó§vÔ°~Ị淈㲀嶄繂龈ïËïÁ†ïÀíÁ‘ëÅŒìÊ꽃꼆龋漉帇ã·~äº}æ¸~å¶ç¹ë¾ê¼ƒê½ŠëÀŒë½‡è¼êÃì¼ä³xàµyä·{ã¶z幀뿊쾀è¼í½ˆî¿ˆëÀ‰ëÃ꿉黆练㼀伀鿂轆⽅澃뻂å¼àºá¶zâºඅ߳{å¸yã¶và²yßµ‚Û´|ܲwß®{ݱvØ°nÖ¨mÚ©lÞ°rÝ­uݬqÜ­fÚ®jÙ­pÕ¦hÍ¡dÑ£bÕ¦`Ö¦aܨgà®iÝ«gã¬næ²pã°mà­mã³pæ·uæ´yã¬pÓž^ÊžbÌ¥kѦhСbÊœXЛ[Ô›]ÓZØž`Ø¢dÕ¤aÕ¢aÕ¡`Ö^Ùœ_ÐbË–^Ï–SÏšWÖž^ܤdØžcÓ—XÕ›UÖŸ\ÔžaÖŸhÙ§pÖ¢gОcÓ¨nݯvã³}â³~ã³⸂â¼|ã·vâ´}ã¸{á·{á¶~á¸~ß»zá¼{ܵ{׬sØ«rЦlÍš_Ë•YÉ—XÍ›WОaÒœcΘXÍ–UÌ–YÌœ\ÏždÔ¡nݬwà²~ܯ}Ú­yÚ²uØ°qÖ§kОjÏ hÕ§jÑ¥fË›bÈœcÖ®qã¹á·‚ᶀⵀá¼ã¹uà°ráµxß´rÙ­nجoÚ°yÞ¶}á¹zÞº~Þµ}Þ²}Þµwâ¶s߶{Þ¶uá¹uà¼yÙµtÕ«uÕªuدyÚµzÙ²uܵuã»{è»~âµzݯsÙ­nÓªjÕ«oÝ´xÛ¶yÛ·}á½ÝµxÜ«vÙ°vÙ³tܵ{ܵ~سxÙ´qײrÕ®kÛ¯hÔªmÒ©nÖ¯mݶtá¹|ݵzÜ´zÞ¹{ݹz߸yÜ·xÕ²yÚ°rÜ°pÙ³pÙ³vÜ·Ùµzײvܸà»}ݸ{Û¸à¼á½€ÞµØ°{Ù¶vÜ´uÛ°uÞ¸}صxÓ®pײtÝ·}׸zаsÔ©o×®mÖ­oÕ¨iÔ§gÔ¦jͧdÕ±jâ¹wØ®oÔ­rÙ¶vÛµrà¹yß¼€Ü¶~ݹsÚ·tÙ±vÙ³vܲxݳyسwÙ¶|ܹ…߸á¸~Þ¹|ݵ{ݳv߶tÞ¹xß»{ßµzÚ°xߺ€à»ƒÝµ{á¸~เܴ{ܱxÛ´{ݳ|Þ¯xÙ²xÚ³€Û³~Ú³vÙ®tÖ§sÒ¨jÓªmØ®rÖ°qÖ¬r×­rׯxÙ²}Ý´tÚ­nÓ«pÔªkÕ¬o׫qÑ¥jͨiήnϬqË¥nÉ¥lѬrÙ¬yÖ«tÕ°jدxÔ¦oÌ£\Ì£cÌ bÊŸ`ÊœcÈškÍ¢hÍ[É•WÍ dÌžbÅ’XÇ•_ÎœaÕ¡eÕ¨hÐ¥bÏ dÌ cТfÓ¤qѤoÔ¥mÓ§mرrÚ¬kÓ¢bÕ¦iÕ¦cÓ¡`×¥fÚ¬lØ«mÒ¦jÓ¤dÒ¡^Ó§dÔ©gÒ¦cÖªbתhØ­hÙ²jÕ¬lÓªiÕ­mÖ«kתgÜ­oß±xÛ±pÛ²rÞ¸xܵvÚ¬rØ­nÔ­iÖ«eÔ­fÒ§iÓ gÔ¨hÕ§hÔ§jÕ¬jÒ£eÍŸ^Ï¥^Ó¥dÖ§j×®iÙ¯nØ®uÕ¬kÕªfÖ¨cÛ¤bØ¥fÔ©gÔ¥fÔ¢bОWÉ™VÆ–TÇ“QÄ’TÆ–XÍ¢bÑ©kÔ¨oÔ©hÖªdצhÔ¦hÓ¬eÖ­hØ°mݲgÝ´hßµuß³sá³sá¸vÞ¸zÞ¸yá·wá´|Û´tÙ¯lÙ­hÕ«]Ð¥eÉcÁ“WÀ‘`¿W²‡E¬D¯}D¸‚B¬Fé¶~éµyç³wéµ~ëµ}éµyí»ﻃ쿂ìÂ…ëÄ„îÅ…í¿‰è»‹è½„ê½€ê¾„êÁ‡ëÀ„é¾ç¹‚麂ëƈëċ뿉翈澉çÁ‡æ¼…庇à³{Ö¤oת|㷌溇ã·æ»…éÁŠìÃðÄñÆ‘ñÃŒíÁ…ë‡jì½éÀŠè¿…潆练æ¸}å·€ã¼â¸zâ·{é¿€ëÁ‰ê¿ˆì¿ê¾€å¸}ä´}äµu߯qÞ²uå·yë·{è¼{꼀뿆åÁƒä»‚ë½…ëÁ„黂åº}â»|ã·}à²zâ²zç¶~ä³}â¸zã·}ᵃá¸á¹~ὄã¼zã·{⸂⻄㹇䱀߰}à¸~â¶xß²yß´{Þ³y×°xدwÜ®wß°yÞ²yÞ±yÝ°xÖ«uÖ«rØ«mÕ©lÑ¥jПgТdÕ©hÙªi׫kݯuà²qà³pä²xäµuã¶nå²rä­pן]Ç•YÈ¢eΦkÌ¡gÇ¢fË bÌž^Ï¢aÙ§dá«hß­cפ_ÖbÙ `Õ _ПcΚ^ÊŽUÌ“TÕŸWØŸZ×ZÕžTÔšUÔ›[Õ¡^Õ¦bÙ¦_×¢aÒ¢fÖ¢jÞªoà¯vß®xß²sß´vá³|á³|ݱ{Ø°y×­wÛ®vݲvܳyݹ€ß¶€Û°sÛ¶tÛ²yÕ¦oÍšaË•XÍ™WË–TΔQÍ“RÇNÉ‘JÉ•QÌš^Ò¡c׫nݯrÙ«o׬nÙ¨oÓŸfÉš\È—\Ëš\Ë¡aÊ aÍœ^ПdÖ©rßµváµ|Þµ€ß¶|ä¸yà¶yß³vÞ³xܲyܬrÛ«pÝ´xݸ{Þ´yÛ²~Ù³~Ù¯tܳtà¹{߶wÛ±{Þ¶}Þµ{Ü°zÚ®zÙ«uÕ¨pѪnÙ­oÞ³tà¹{㻀å¼â±{Ý®vÝ´wß°vß²zÞ·€Þ·ßº‚ÞµÛ±vÞ²oÙ®tÙ°{߶zÚ´{Ù²zÖ±sÒ®vײ~Û³Û²zÙ²zܲ~Ḁݺ}à¹xà¸zݲ}ß³xÜ´zزzÚ°tÞ±sß±uݱxÙ²yÙ³vÙ°y×±wÛ´vÙ±tÕ¯yÜ´|ݵxÚ²uݳvÞ¸zÛºxÙ´xÜ®vÒ¨mÌ©nÑ­oÔ­pѪqÑ«pÚ²pÞ·~Ú¶}صsÛ³yײy×µxݹã»~ݹ|Ù¸~Û¹zá½xݺwÙ¹{ܺ{Û¸zÚµsÛ°qרmÔ¨gÚ­jÛ¯s×®v×°sÙ¯pÙ°oÙ³uݲtÚ¯tÖ®qØ°rßµ}ß³uݱqÞ³xܳpÚ³uÚ³|Ú¯tÚ­xÖ©xÓªoØ­pÖ©nÔ©lÖ«qשqÖ«pØ«oÖªnÖ¨jÖ©nÕ°zÚ´{ݯpÜ®mÖ®rÙ­uÝ°vÛ±vÚ°rÙ­mØ«oÙ°xÓ«mË¡eÊ¡eÊ¥bÆ\Û_Ê¡kЧuÓ¯q×±kׯnÓ¬mÒ¬pÓ¬oÓ¯nÓ®qÒ«mΨeЦcЧb˦cÓ«jФa»ŠK¸„HÀŽNÈœ]УkÓ£fÓ£eÑ£cÒ¢d׫rÛ¶uÖ¬jÕ§iÙ°qÚ¯nجpÔ®pÓ¨hتg׬gÔ§eÙ¬k×°rØ­tØ«nجiÛ°nÙ±rرpØ°jÚ°mÛ°sØ®pØ«jÕ¨`Ó¥aÓ§hÖ¬iÙ®jÙ­q×­nجoØ«oØ­jتjÔ¦hÕ¨lØ©oÕ¥dÒ£cѤeÏ¥dΦhÕ¨cÔ¤bÍ¡cÒ¥mÚªpׯiÙ³rݸzÙ»tÙ²pØ®lÕ­iÔ«i×®h×­jجkÚ­mØ­kѪfÌ _ȘWÅ•VÅ™WÈ ZÌ ^ΡdÑ¥aÒ¥]Ó§`Õ©fÖªlÚ¬mÜ°nܱqÛ¯rÙ±vزrÙ¯mÙ¬kÚ©kקnØ«lÙ®qØ­uתgÔ¨^ѤeѤiΟ^É—YÈ•WÅŽM¹ƒF³D»ˆJÅO³‡Oî¶|î·~ï¶zð½}ðº€î²ï·}ï¸xì¶wëºvî¾~뽃è¹|è¹}é¼zêÀ}ê¿€è¼wç¼yç¿€ê¿„í¿ŒèÁ‹é½…캂è¼æ¿‚çº}ç´{籀ݭ~د‚âºç¿Œè¼ˆè½ŠêÀŒïÊñÈ‹ðÁ‘)쿇ìÁïÀŒí¾Šì¿ˆì»†ê·…ê¼…èºå³æ»翄뼃ìÁƒéÀ‡è¼é¿†å·…Ü®rܲvß³yà¯xß°á·€èŠéÀŠè¹èº†ç¼‰ç¹‚辄ìÁ…ê¹ã±~â±vä¹væ»}ç¸}踄踇çµã°z㴀布廂꿈麇æ¸|å»~廂é»{è¶{á³ã´{ãµ}â¶~âµ~߳ݯzÜ®uÙ±yÛµ{Û°vÚ­xß°xÞ±xÙ°|Ú±~Ý®|جvѪtЦoÒ¨mÖ¦lÖ¦kÔªkÕªkÙ©kÝ°qÚ°sÛ¬pá²wà²tàªhÙ dÉ™eǘ`Ç™YÆ\ͤbϤdУ^שcß°qà¯tݨlÚ¤bÙ¤Zפ[Ö¢dЙ[Æ“SÆ—YÑœaÖc× aÙž`Õ˜]Ò›]Öž]Øž[Ö¡_ן`ÕžZ×£aؤeÕ¤iØ¢lÚ¨uݯzÜ°uÛ¬pÙªlÔ¥jÒ kÒ¦jÕ«qÚªsÝ®wÝ°zÚ¯vݶxßµ|Û²{Ú¯t׬oÔ§lË–WÈŽJÈ“QÈ‘QÍ’RΙXÒœXÒ™\ÐœeΙdÍ™cÏšaΓZÉUÈ”Q͘\З]Ë•YÊšdÓ¡hÒ gÓ£pÙ­tÙ°lÞ°oß³zÞµ}à¶{ßµzÞ°sÞ²xÙ¶}Þ´zâ¶xÝ´xÙ¯xØ°xÞ±yÚ«uÔªr×°vÞ²à¯~Ü®wØ«rÙ®sÙ²uÚ°rÙ¬qתrÝ°xà¶xä»{缃弄ä·~ß°vÖ¯qØ®mÛ®rÙ®s߯uß±~Û²}ܳxدvÖ©jÙ«lÙ¬sÕ§kÕ¦m׫qÚ²pݲuÞ´}ß¼}Ý·uÚ°uߵ߳zÞ°vÞ²~Ù±}Þ±xáµ{à´~ݲ|Û²}Þ±wݱwݳ~Ú³{دuÚµuÛºyÛµyÛ´xܶ|߸~߶z߶xà¹xÞ¹}Ú¶~×µwÓ°mѪlѦnÑ©hΦjѧwÛ¶zà¿|༂⸀à¹}߸yá¼~à¼~ß·vß´tÞ´vݵuܲwÝ®yÞ²~Ú´€Ø°uÙ°rܲuÛ±oÕ­rÕ­{Ù²yÛ³sجkפgУkΤoÒªmÕªgÓ§jЦkÓ¥fÖ¦fÙ«pÛ©sÔ¤lÑ¥fÕ¥kÓ¢mÔ£lרnÓªqÓ©qÔ§qÖ«sÙ®qØ«kÛ®kß±kܯqׯuÕ¯nÙ±uÙ­yÙ¨lÙ¬oØ­rجsÚ°vÞ´rã¸và·vÞ¶wã¸}Û±rѨmÑ¥rÌžhšYÀ–WÆ™bÍ gѧlÓ®p׬oÕ©mÓªqÖ¯tÚ²yܲvÚ´xײyدuÙ°qÖ°qײvÒ­hÇœWÅš[È ]ϦeÖ­p׬kÚ­nÚ°vÖªvܳ|㿅ܶyدvݲxÝ°uÚ±vÙ²mשiتnÔ¦hÐœbبlÚµrÛ²pÜ­pÚ­sÝ®vÜ®rÛ°lݲjÞ¯nß°vݯqØ«nרlÖ¦bÔ¤aÒ¢fפeÙ¨dÕ§hÖ¢bК^Й^Ô \Ò¢bÒ¡hØ¡aÖ¥^ѤcРdÒžbסgÙªmÙ¬h׫jÜ«mÞ²nݱpݲsÛ³u×®pÕªoÒ¦mÒªkÖ±oزuØ®nÖ¬kØ­sÚ¯tÚ­tÙ¬mÖ¬fÕ«fÓªcͤaÌ¡b΢bÏ£XÒ¦`Ö­n×­nÖªkתoܪlبfÒ§fÕ¦fÖ£dÖ¢fÔ¥bѤ`СaÒ¡f×¥jÙ¨iÖ¤cÏ [Ëœ\Õ£bÒ¥\ÊœUȘPÆ’O¿MÁO˘WÔ£[µ”Wî¾yî»íµ}î¹}î¹xî´sî¶oíµnî·vî¹yð»|ñ»€î¸{ì¶yèµzè¸è¶{â°sâ®tç´pæ·vä³zæµyç»~è»빃뽆齃껀í·}ê¶å´}ä²{ⵄ滄꽂缀軀ðÄŠðÃˆí¿ƒë¼}ê¼~黃ê¸~ë³êµã°{à¯uãµy峂躄龈è½ê¼~꿇æƒæÂ}澂乄⹄àµ|à³rá±yݲ{æ¼~컃å·{æ»{ë¿€ìÁƒé¼è¼ƒé¾†èºä»ä»å¼ã¸~ãµvå»}幂á³â¸è»ˆèº…æ»軃麄縃繊踄æ¶~浄鶄ç¸㹂⸂âµ~ß±xÛ«nÙ¬oÚ¯vÜ°vÜ°yà¸~ãº~à¶~߸|à·sݲuܱvÛ°sدvØ®sØ®pÖ®pÑ©lÕ¨lجpÔ¨jÚ¬næ¹{è¾ç¼xã¶rÜ­kÖ¢aÏš]Ë]УfѪrÕ«qØ©oÝ®uÞ±rÙ«mÙ¦iÙ¨cÔ£]Ôž^ÕZÌšPȘPÊWÑ¡^Ö¤_ܨeÜ¡`ןYÚ¦^צ]Ó¤\Ö£ZÕŸYÕ¦aÒ ^Ïš[Õž`Ù¢dÚ¦fØ¡aÕcÓ›eЗ^Θ]ÐaÔœhÖ›eÒŸdÕ¤o׫mÚ­mÛ¬rÙ­sÛ¯wתnÑ¢bÆ‘RÅŽHË“PÈLÈ‘KÐœRÒ›YΗXÊ•TÅQÈ’TÏ•TЕTÏ—SÌ—OÏ—RÓ˜WÊ•RǘZΛ^ɘZË gÕ§mÖ¦`Ô¥h׫xܬzÞ®sÛ­iÚ¨oÙ¨rÛ«kÛ«mجq×­tÕ«tÙ®vÞ±vÙ©mÕ¥cÕ§dØ©nÙªoשgÚ¨lݬuÛ­oÛ¨mÚªnÚ¬nÝ­uݶ|Þ³yß°vÝ«sÙ¥pÚ¤oÒ¡eÌZÓŸ^Ö¢dÙ¥jݬnÚ¨hÓ¢dÒ¡bÒ hÕ¤rÓ£jΛ\ПbÕ¥nØ«pÖ­pÓ§lتmÜ°qÖ©nÖ¦rاrÙ©tÚ¯xݵ|ݶƒá´zá²rÛ´wÛ±tدsÚ²xÞµvݳvݱ~ܱxÚ±vÙ²xÞ²wÜ°{Ø´yݶ{à±|Þ¶xà¸xÞµwܶxÜ·}Ú±wׯuܵ~Ú´|Ò°sÙ·vß¼ݶ}à²zÞµ|Ü´ܳ€Ú´uݳvÜ­xÚ¯pÙ³uÚ²yß²sß±uÛ²|Ö²uÛ³qà¸}ܵ~دrÔ­nرpÛ­nØ«oÕ­jÍ¢`Æ—`Ëœ_Р\Ð\ʘXÈ”TÍšRÍœVË™YÉ—VÌœ\ΟbÊ›\Î[Ô¥dÓ¨kÕ¨jÕ®qÙ±uÝ°tÜ°qݯrÝ®yÚ¬vÖ­rÛ¯sܯtÖ¨hÖª^Ó®hÓ°kÖ¬iÙ­qà³uä·z߸xßµvåº{Þ³sÕ§oÕ§nÔ¥gʘ_ÔZÆšYÈžbË¡bΤ`Ì bÌcÒ£iÓ¨mÖ¬rÛ¯rÛ³uÛ´qÚ¶qÚµt×®jÓ¦jÏ£gЪhÓ©mÕ¥hתhÙ±rÚ°pׯpØ­pÙ©b׬hݸ{à·qÛ°nݳrݲpݯvÛ­nÖ©fئdÖ¤dÍbÑ¢bתgاhÙ¥dÕ£eÕ£hÙ§nÚ¬kרfÚ¨mÚ«hØ©eÛ©mÚ®mتgÕ¢_С_Ó aÓZÑžWΚRÅŽDÅŒHÊ”RÈ•RÍ—RÑžTÏŸZÏ^КX͘TÎa×¥iÚ¬mØ­sÚ­vÝ®sܳnÚ³mØ°oÕªhÓ¥cÒ£lÔ¥mÕ¨lÙ«pÙ«kÓ¨eÕ©dØ©mÕ¨qÖªmØ©fצhÔ«lÒ©hÖ¥eÔ§gУfÒ£`Õ¥[Ó¤]Т^Ò¡bÓ¡^ÑœT̘UÆšXÉœUÍ™UÊ–SÊšVÇ›[Ș]ÑžbÖ¦`Ó§XÍœWË—WÕ ^Ø¢`Ï™WÈNÄLÆ’RÍ›[Ó¡^רc·•cñ½}ð¿}î·uíµrë·qé´kè®jå«hê³pñ»uò½rï¹qî¶ví²tê²kê²qè±nã¬já¥mã­kè²pæ¬ræ¯jé´qëµxì´zëµ~ë¼zî»yîµuë´ré°vå«qæ­pç³wæ²ræ±lé³qêµxíº{îºzë¹wë¼{ë¹}ëµ}ï¶í²‚ê°}è±tâ±y㶈껅ä¼~広깂ç»{ì¿}í¿„é¾ˆè¼‚è½è¼ƒãµ{à­vâ®vÜ­xÝ°{åµxç¶vç¸yç·z鼄ëÁ„輂罄꿅轃ä¹ß³€Ü±wÞ±tç·黃ݴ~߶ƒæ¿„ä¾~é¼é¼€è½뽈渆㶂⹅廂꼇鼄滂çº|æ¸}ã´€Þ±rÙ­oÞ²zâ·zã¹}伄异伂忈庀乇仉æ»徂ã»~ä·{â¹⼀㹄æ¹â²{à³€ê¿‡ì¾…ìºƒí¾„è»{æ¹uæ¹xä¹}ã·|ß´{߶{ãºyã¼yá·tݯnÚ­lÞ­oܦaÕ£`Ö¢dÓ `Ô¢eÔ¡`Ö¥YÚ¬`ݯeß®hݧiÞ¤hÞ¥cݧe߬hÞ¨fÛ£fÝ©`Ø£^Õbܦ`Ø¥`ÐœZÓŸWÖ£VÓ VÖ ]Ù¢\Ú¥XÕ¢RÐœTÓ]× \ÓŸVÏ ]Ñ¥iÕ¥eÒœ\Íœ^È—TÉ‘NÍ“SÉ’OË’OЕTÒ›NÏ—PΕTÒœTОXÍ–OË”LΚ\Í–[É”PÏ™PΗUɘZÌ”RÈŒKÈ’RÍ—WË–XÑš]ÔdÓcÒŸ_Ñž\ÔŸ]Ö£^Ô¢dØŸeÙ¢hÖ§eÙ§cÚ¨kÙ§eפeÑ aÆ™XÍŸbÖ£fÑžaÓŸeÛ£jפbÓ¥Z×¥`Ú©jÛ§kئkÚ«kÜ¥oןhÓŸbÕ `ÑžWË—YКZÒŸZÑ›^ÖeÖž]ЙVÍ›VÍ™UÒ›YÐœWÌšYΙ\ÓœYÕ _ÓaÍ•WÌ–[ÓžgÔ_Òœ_ÏŸfÕ¦jÞ®vÝ´}Ü°yÜ­rܯrÜ­pܬmÚ­tתrÚ­nܱn׬pÒ©pÒ¦gÖ§iØ®pÕ®lׯoÙ®zÖ¨tÙ©qÛ²tܵvÚ³}Ú³|à¶zâ¸}à»|ܸ€Ù¯yÚ­vÚ­}Ù«vتoØ­o׫oØ«tÜ°|Ý°}Ú®zÚ³xܵvܲsßµvß·Þ·|Ú´zÚ´|Ú¶y×­uÚ®rÚ¯pÓªnÖ­mÙ¯oѦhÌšXǘWÅ•YÇ–NËšU̘TÈ“NÇ“TÊ”UÉ—QÊœRÒ£dÔ¨lѦbÕ¥gÙ¥mبjÙ­pÞ®nÞ¯qÚ²xÞ°qÛ¬mØ©oÙ§rØ¥qÚªlÙ±iÙ­mÙ¨dÛ²gÙµpبhÜ©qݯyÞ´sÝ´sÚ¯pÚªjÖ¦eÓ£`Ó¢dÒ£aÏŸ\Ê›ZÊ›VÉ–YÆ•XÉ›WË›\Ëš]Ò¡aÓ¤iФhÔ¦eÙ«nÚ¬tÙ®pÚ³l×®mÍ£jÍ£gÔ©pÒ§aО]ÑšgÑ¡eÖªhÖªiÕªgÖ¨gÔ¡gÕ§kÛ¯hبeÕ£dاeÝ©lÛ¨iÕ¤`Ö¢cÕ _ЛW͘OΛVÖ¢fØ¥^ÓžZÓ[Ô¡YÓ¡^Ó¡_Ó¡^Õ¡^Õ¡_Ô¢`Ö§gÔ¥dÏœ\Ïš\̘YÇ–SÉ™SÈ•LÂA‹GÆ•PȘTÌšVÍœWΕUÍ’WÍ“SÉ’OÈ•WÏ^Ô¦fÖ©jÕ©kÕ«nÙ¬hÛ®eÖ¬cѦ`Ñ£iÑ¢hÒ£dÒ¢eÓ£gÔ hÑŸeÑ¢iÒ¤kÒ£eÓ¢`Ñ¡cÓ£dÕ¥`Õ©fÕ©kÔ¥gÔ¤_Ѥ\Ñ¡[Й\ÉšWÍžTÏšQÈNÆŽLÈ’PÆRÅKÈ•P˘UÌ”VÍ—UПa×¥gÔ¥[ÏšRÑ•TΞUΠVЕRÈHÀ†GÇMÏž[Ó›]מS¸Qîºvï¾~ì·yåµqÞ´nÝ©kÛ¨hÙ«hÞ¯qå¹qé¸kè¯iè²gì²nì±rîµní°ké­jè±kè°mê±oë­jçªaé°lí¶|î¹~ìµxï¼wó½yò·uô»vñ¹rë´më°oê²hé±kê²të¶pè³qê¹tî¸yî±tò¹sð»xê±tï±vî¶{ê³uç±så´væ¸uê·xê´zè¶zè²vç®xéµ|ìº~é·|é¹zê¹}éº{ç¹~ä¯{ä±sß®kÓ¤lÖ¨mã¯uæ³zå³xæ¶}èºæºƒâµ}á°zä®ã®yÝ®pØ©pÜ®sá¸vä¶~á°zá¶{伃äºç·yä¸~⼂較异߸}߶仂æºä¶zâ³xÞ±uÞ´zá¶~à²{߯uá²xà¶}à¹å¶}ä¸æ¹ƒé¼…彆巅ã´}á¶|ç¶åº€æºë½ç¼Šè¼ŒêÂçÁ‚æ½~çÀ~廀ç·~ë¿~è¿zè»}ëÀ…ëƒêÁëÅ‚éÀè½}ç¿æ½€á¶yÛ³vâ³vä¯vÞªpÙ£hÚ¨gÝ­lÛ¦fצfÙ§dקcÔªhÕ§bקcÜ«qÞªpܬgØ«fÚ§hÞ©mÛ¨hרhÙ­mÙª`Õ¦[Õ¥cרhجeÙªdÜ©gÛ§dÖ£^Õ¢c×£^Ô¢ZÓžXÒ›XÒŸ_Ö£]ÒžWÒ¡\Ô\Ñ™VÍ\Ì›UÍ›QÑœTÒšRÑ–NÏ–QÑ]ÕŸ\ЖOÈ‘JË•TÏ—QÍ”LЕWÊ–\˘[ÆP¿†KÄŒMÉ”MÍ–PÑ—SÔœWÔžXÔœYÓŸ^Õž_Øž\Ôœ^ÑœdÙžeÖ`ÑŸ^ÖŸ\Ó›ZΙTΘSË’NÍ—UÑžXÑœWÓœZÖž[Õœ]Õœ\×£[Ù¨`Ô¢_ÓžYÕŸ\ÕŸ`Õž]Ó¤[ب]Ú§fÔ aÍžXУ]Ñ¢^Ò¢^Ñ¡bÏ]ÎœWÎœYÍWÏ XÒ¡_ÒŸ`Õ¤`Õ¢\ÐœUÊ—P˘WР`Ï [Ïœ^Í›^РcÝ®uÛªpÕ£iפjÒ `ÓžZÓ§mÕ­tÏ_˘YУgÒŸcЗV͘XП_ÍŸ`ÊaТgТbÍ¡_Ô¥bاfÙ®pÙ®vÕ«rØ°qÛµyزyÙ¬yÚ©wÕ§nÖ¨iتm×¥kÕŸkÑ£gЦeÕ©kÙ¬kÚ°rà³|ß´{Þ³rÞ³xݶwÞµrÖ­rÓ§kÔ¥gÒ¡hÕ£hاiÕ¦iÕ§jÕ§pÎ`Æ‘LÅ”OÇ•SÈ”OÈ“QÈ”NÊ•NÊ–VÈ•TÈ™WÏ£_Ù«jÜ­oÛ­lÙ°nÚ°qݯoÛ«pÙ¥jؤfÓ£bÓ£bÕ£eÕ£hÕ©iÔ¨hÔ¦kÕ©jÕ¥cÑbÖ«nÝ·qÖ§jÕ£cÙ§eØ©pØ«kÓ¥[Ο\Îœ]ÏœSÏUÕœ[П\Ê\ÌœZÌšUÈ’OÊ“SÌœZÌŸ[ÍžaÌœbÏaÔ cÑ£hÒªoÔ­lЧhÍ cÏžeÒžkÕ¢fΠ]ȘRÈ”LʘPÍ [Ò¢bÓŸaÒZÏœ^ÌžcÑ^ЖVÍ–TÍš]Л]Ïœ[О^Ñ›ZÏž[̘TÌ“KÍ—NÏ™YÏœ^Ïš]ΚYÍXÏ›XÑœ[Ô\Ñœ[ПYÑŸXÓžUÑ›NÊ–RË—WÈ”RÆGÊ–LÊQÄ–LÆ‘J̘SÒžWÖŸZÒœ[Í—X˘\ËœWɘPÇ•PË–QÏš]О[ЛXΛ[Í¢`Ò¢hÕŸbÎœUË›TÍœTËšUÌšSÍ›V͘YÏ™XÉšVÇšTÏžYÓ¤^Ó¤cÔ¥fÒ¢eÔ£aÔ«fЦ_ÑžVÑ XÌTÊ”SÆOÄ’NÈ“QÈ’JÄ’MÈ‘RÊ“JÈ‘DÌ‘NÍ“KË”EÍ•RÐœ\ÒŸXÐœXÏšWÏ•SÍ•PË’MȉD¾…<¾‡?ÅŒJÈ’KÇ“L̘P·ŠOè¹zïÀ|í»|éµvç²pã­sÞ®vÛ®qÚ®oÛ¯uà²sß´oá´nèµjè´që¸}î¸uê¸mé¶mêµpëµsé±næ­nè³tî»zóÀð·}ò½zøË‚÷Á‚öÂyöÆ~ô¿ð¸uí¶tìºwî½{ï¿}íºvîº{ð½uî¸oï¶yï·vð·nð¸uî¹zí¹vé´té²ré²oé±ké´qéµxè¶vä°qå³ví»€í¸{îº}ð½€ê»{ê»ë¹{ê³vé³rà¨jÒ¢cÜ­fé¸oë·sç²uâ³yà¯vß«oÞ¯nݯpߪrá®uà©rÞ§mâ­oä¯qà®oݲvß·}亀å·~â´{ⵀ㴂᳂à°yß²qß·xá¶á´à²w߯vß²|â·~ã¶ß·}Û²zÜ°uß°xÞ¯z߯xâ³zå¹zæº{àµ}Ü®{ݯwá¶xæ¸|è´‚è·€æ¹|æ¼|æ»{å»}á¶uÛ°oÙ¯pÞ°vå»xå¸vá°{å¹ë¿{éºyè»æ¼|åº}æºè·{â²xÜ´xݸtã¸sâµuÜ«rÛ«pÞ®p×£kبrß³vÕ¨kÒ¤hÐ¥hÍ¥mÓ«vÕ«uÖ¦iÛ¥fÚ©nÚ­nØ©hØ£eÕ£jÓ¤gÖ£cØ£kÚ©mתiÖ¥lØ¥oרhÕ¨bקeÙªdÕ¨`Ö£aÙ¥bÖ§bÕ¢bן]ئ`Ú¥[ؤ^ؤ_ÖžVÒšWÑ[ÐXЛVÐœVÐLÏ™MÑ–PÔœNÖTÕ–XЖWÍ–SÇ•SɘZÈŒR‰IÆ–MÏ–PÓ–TØ]Ù¡`Ú¥cÛ£hÛ§bÝ«`Ù¥\סZס_Ö¥a×£\ÙŸUÙ¡XÙž]ÖžWÔ£TÓ¢[Ò¢eÔ¤g×¥iÚ¨fÙ¢bÕšXÖ›XÚ¤]Û§b×¢[Ø£XÙ¤[Ï›WÑ \Þ­jß®kà¯hקjÏŸeÍ¢]Ê ]ѤcÖ§bÔ¢aР]Ô¨gרmÑ¡eÒ¢dÕ¢dÖ¦iÚ¥fפaÕ£]ÖŸdОgÎœVЛSÌ›WÌ[Ö¨jبlצlئeÕžZÍ’R͘YÖ¨fÍœ[Æ“RʘUÈ—UÊ“QÍ•SʘYÇ–WÉ—PÏœXÍŸ`Ía̘\Ë™^Ñ£hÕ©oרpÕ©dÕ§cÔŸfÑ£hѧhÑ `Ð¥hÔ©eÒ¡`ÊœYÌ›YϘ[ËZУbÖ©oÚ­oÙ¬mÖ©lÙ©iݯnÞ±sÔ¤f̘]Ê™ZÌœXÑŸ[Ò¢aÏ¢aΟ]ÎœZʘUÆ’RÉPÍ•N˘QÇ“QÈ”NΚWÐœXΙTΛRÕ¤[Ù¨dÖ¥]Õ§]ÙªhܨmئgÓ¥cÑ ^ÒŸ\ПZÏšTÎœ[ÏŸbÕ¡`ÓŸ^ΙWÑœVÑœUÍšWÙ«qá³y×¢_Ö¦aتeÒ¦]Ô§bÕ YÏ›PΘWΙ]ΚUÓœRÐWСaÒ¡bΞ_ÎœYÎœ[ΠcÍ¡^Ï¢`ÑŸ]ÏšYÍž_УfÔ¤`П^ÐœbÓ¡fÏ_Õ cؤdÏ›ZÆ•VÆ“RÊ•OÌ™TÏš\Ï™[ÉQ˘NÊ“NÆ–UË’TÏ–RÍœYÍšTЖTÒšWÓ ^Ñ¡`ΖTÍ“TÏœXΛWË—RΘPÒžUÖ¦^Ò¤`Ò£bÖ¤bÖ£ZסYן[Õ¢ZПTÏ›TПXÒ QÒMÒŸXÔ£[Õ¢ZÎ\ËZÒ¦_Ô¤_Í™TÊ–PÏš^Ó¤cФWÌœVʘWÌœWПZÍšW͘WÐ[Ñ\ЛWИSÑRË›RÈ“RÈ“PÊ–OÉ™VË›UȘNÆ‘MÍ–QÕ¤_Ô¨bÔ¥ZÔ¡YÍXÏ¢]Ñ¡b͘YË™XÌ–T̘IÊ—EÇ‘HÆ’LÈ–QÊ—PÌ—HΙTЙWÒRÕ¢XÐœVÊ•SË™SÐMÍ™P˘NÍ–GÉ‘FÆ‘CÆ>À€=À‚>ňB¿‡A¿‡AÍ“M³‹Mé¾~íÁ‡ì½„ì¿€í¼}ê·zß°vÖ¬kÕ¬kתpתkÖ«oÙ®v߶vå¹uë¹zè¾ç¼~è¸zê¹€êº|å´uâ¸{è¾zé»yê½~íºxí¾zóȆôÄ‚òÀzó¿í½}ï½빃ê¶~ì¶uè³ræµ{ë·xè³tã²uåµuè·wë¼ví¹yë²rë´oê¸xè¯oç®fè´pæ³tç²sæµ{ç»|í¼~ì¶~í»{ð¿{ìº뼃ê¹zê·uëµ{æ±tקkÔ«sã¶yí·yæ³rß°jã°mæ¯mÝ«mÛªjâ­mæ¯räªqߦsà«pá«hÛ§dÙ¥hݦj߯nÞ²pà¬oÞ¨kÛ¯qݬuÝ©pÜ«nÜ­pà³vá´vá²xá´xâ´yâ³{ã¶~á¸|Ø°pÕ¨kÔ§mÓ¥nÖ©sÜ´yà¹zâ·xã·~à¶~ß´}幆什޴uâ³uç¸æ·€â°vÝ­rݱtÞ®tجpÙ­qâ¶yá´uÞªmß²qÞ²rà­uã´xâ¶vÞ³{ܲuÞ°qÞªrدsÙ³oá³sà³zÛ­vÔªnׯjÚªpÞ²|è¾zß³mÚ²pÛ±rÒ¦nѦpÕ¯q×­rݯvß³pÝ°nÞ­qÝ®qתpרqÙ¯sØ®nÛ¬qÛ«pÛ­rÜ°tÛ°uÚ°tݲlÞ²nÚ°nײjÚ²kÛ¬n׬iÕ¬iÚ«nÞªpÞ«jܪkØ¡hÓ `Ô¥eÖ§bפ`Ø dÕ¢_Ò£YÖ¤XÙ¦YÙ¨^Û¨_Õ¡YΕWÆ“ZË›[Ì•OÈ’SО`Ö XÖŸWÙ¤_ܦcà«dÞ¨aÙ©dÚªhÚ¨eØ©dרcتhܯlݬeÚª`Ù«gÝ©dÞ¨fܨlÕ¦eÒ¡bפiÚªkÖ¦gÒ¡iÒ¦iÕ«aÙª^Õ¢[Ò£[ѤdÈšWÍ£[ܳtàµqß´qÙ¬nÒ§fѦlОgÒ¤cÕ¬lÒ¤nУhÛ°pÚ­nÑ bÍ¢eÔªnÜ­mܪjÚ«iÛªeݦhצfÑ ]ÎœXÉ›TÍZÓ¦fѦbÔ¦`Õ¨bÒŸYÌ”QÅ•QÉ›[˘]È—QÇ™MɘRË”PÊ—QʘNÍ—MÑšOÏ›WÏaÑŸ[Ë–UÈ“ZÌžbÑ¥fÔ hÓœ^ΘWÊ—YÍŸbÏŸcÍ—ZΘ\Ñž\Ì™QȘOÍœVË™WɘYÈœWΛYÑŸ]ÍŸ]Ìš`ÐœbÖ¥nØ«tÒ¡aÏœ]ÑaÎœ\Ëœ\Í›ZÍœYÍœYÉ›RÇšOÈ—RÊ–SɘRË›RÍšSΘMÒœPÓšRÑ—PÐœZÐœXÑ™VКTИTÔ›\Ó›WÓ˜NÒŸXÒ\Л]ÏœZΘPÍœWÏŸZЛRÍ—Q̘QÏ—PÍ™UÏžYܪhݲrÔ©iÙªfß­hÙ§hÖ¥bÖ¤ZÔž\ÖžTÕŸVÒ\Ò™PÐœTÒŸ`Ù©eدkÖ©iÕ¨hÕ«dÕ¨^Ó¢^Ñ¡YПZÑ¡`Ô¡XÓœUÕœ\Ø cÖ¦fÔ¨cÙ¨i×¥dΞ^Í›\Ê–UÅQÈ”RÏšT͘QÊ™OÌœTɘMÇ–OÍœ[Ô¤YÓ¦ZÏŸ\ÌŸXÍ RÍ›RÍSË—OΖTÑŸZÑœTÑœQÑ¡RÕ¢\Û«kà°oÜ®mÔ¤^Õ¡R×£ZÙ¤aÛ©^Ù¬gÙ©oÜ¥jÙ¥cÙ¥^Ú¦]ب`ÚªaÒ§^ÈŸWÕ¢ZÔ [ËšWÑ WÔ¢`Ö©eÓ«bÏ ^ÒžZÕ£`Т]ËšUÎœWÑ¢aÖ¦bÓ¤ZÒ¡ZÓ¤cϤ`Ê™PÇ–NÌ™T͘PÌœQËšPÇ•QÈ–VÍSÊœPÌ›UÕ¥[О[Ìœ\ÎœZÊ”TÇ–PÊ ZÑŸ]Í›RÈ–PË–SÌ™TÌWÑŸUÕ¤[ÖªbÙ«]Û¬cÔ£aÉ™WÊ™PÍšLΘOÑœVÓœRЖMÍ“PÈ’K¿ˆ9¾|6¿}7´|3´|>ÈM±J콂ìÀîÄê¿~é¼zã±o׫sØ­tÚ«oÙ®sܲyÞ¯xã´ué¾vê¾|ç¼~å¼{â¼xæ¹í¸ƒè·yã¹è¿€ë¼{î¸~ìº{è»~ïÁñÄì¾{éºyç¹y躀èÀ„è¾~ç¶{è¸}蹃è·}ç²zâ®xÞ¯vܬtß°uè·~é¶}çµ}êµ|çµvç±rå±såµtèµxæµyâ´væ·}îºè²uâ³uè»æ¸yä³yê¸ê¸}ê´zå¶qÙ®lÖªzß¹…æ¼€ä³sß²rã¸sè´qܦnתiá°jæ°uá³qá¯kã­oà«nܨqÞ¦oá¥ià§oܦmߣbÞ§`Ø«lÞªpà¦kÞ¦jܦoÜ­sá²qá­qß®tà°qà«oÞ¨pÙ©mÔ£mÑŸmÒ¤lÓ¨iÓ¨nÛ°xá³|ݱvá¸}㸄޵zß·~äºâ¸}â¹躄蹀â¸~à¶~á·ä¹‚â¹|ݹ}仃ã¸~ã¶}å¹}ä·zã´|ä·‚ä¸~ã¹wÞµxâ²uâ®rß´ä»}ã¸xá·á¸Ø¯pÛ±rã»yä¾{æ»}ä´zã½ç¾…ãµ}Ú²tÛ³xã¶å¶ãµ|àµxâ¶}軄绀å¸yå½{à¹zàµyä¹xä½}ã»…ä¸ç¸€ä´|ã²vâ¶sà´xà²{Þ²tã³}涀ä·pâ¶vá³yÞ®qÛ®oÚ®uݯsà³mã®qà¯tß±rݬqÚ®mÛ±eÛ«dÝ®jÞ°oפgÇZΤ_Ðœ^Ëš\Õ¥aÙ©gܬkÛ¦mÕ hÕ¦cاfÓ¨eÔ«cÚ¬kÖ¬nÔªiÜ­iá³nÛ±n×°qÙ°mÛ®hݱqà³uß²vÝ­oÙªmÔ¢jÎ_Ρ_Ñ cУ_Ù­hÓ ^É”QÏœ_Ï¥fѯmÚµ}ܵ~ßµu߯tÛ°vß³{Ý°zØ°rÝ´tܲtÚ¯ußµ|Þ´xܱpÞ´rÝ´xÞ²tà±rÚ­mÜ®k߯jÛªiצjÕ¦kÏŸfÉœcÉœfÈš_ÊdѤhТ]ÐœUËœT™UÄ™VÎœ`ÏžaÏUÏ™UÐTÕœUמ\Ù¥dÙ£fØ¥eØ£cÑšWЛYÑœ^ÓŸ^ÓŸ[Л\͘UЗVÑŸbÓ¤bÕŸ_Ôœ^Ô¡bÔ ZÒ YÓ¢^ÒZÌ›ZÆ•WÈ”UКXÒšWÔ™VÓ›WÓ¤aÖ¨dÖ¡cפmÚªgÔ£_Ñœ]ÏœVÏœOÔžRÓ›YÑ™WΖRÌ•RÊšVÑŸWÔ›XЙPÓŸWÙ¤ZÕ VÔŸYÕ¡XÒœWÐœUÒTÒ™VÑšYÒž[Ô¥`Ù¥^Ö¥cФbÑ›WÒœYÏ¡VÏWÒXÑœYÒ¡YÕ¤YÙ¥_ã³ræ·rÛ©kܯqá²mܬhܱnÚ­gצaÙ¨f×¥fÑžaÒ¤]Ö¨`ئfß±q߶sÕ«nÚ¬hݯlÙ¬pÚªeÖ¥`Ö§`רd×¥hبeاdÚ«lܯkÙªbÛ«`Ù©cÕ¨kÒ¤fÍ•VÈNÆ”SÏšYÑšRϘNΙWÌœRÍžPÓ£cتfת_ÓŸYЛRËžSÆ•RÆNÀFÄ”HУYÑ£ZÉ•KÅ“LÊœXѤ_Õªc׫iÖ¥bÑ [Ò¥\Õ«dÙ°gà³hâ³há´jß±jß®hÞ°lݱfß®cרbТ]Ô¨]Ö«gÔ¢dצfÛ¬iÙ¯lرoÖ­cÖ©dÛ«nÙ§jÔ¡cÔ¥bØ©kÚ¬o׫bÚªbܪhרdÓ¡^Ó˜[Ò¡XÐ¥YÑ]ÒœUÍœVÎœZÓTÏšRÒ]Ú¬hÚ¨cÖ¢[ѤXΠXÏŸTÑ SÒŸUЛPÍ™KÍœPÍ SÑ QÔ UצZÞ¯ià­lÝ«dÙ­eÏ¥^ÉŸUÌ\ËžZΟUÖ¢SÖ¡TÔŸTÑŸRÌ–EÅ‹=¾‡=º†;»‹PПX¿–Të¿…ç¹à¸€å¼ã¸~á´zà·rà¶x㶄߶}à¹{庄ⷆâ¹æ½~ê¾ë¼æ¼ãº|å¸y꿇ìÂˆé¿…ë¼‰í¼„ê»~å³{â±xä´{âµxâ´nä·rݱzÞ°xè¼{éÁ€é»{滆鿑뾆軀ⳂݭzÖ¬oÖ¬oÚ²tå·{ë»|ê¼uè¶sã²wã·~æºç¶|æ¶|äºæ»€ê¹uà­qÞ­vä¹à·{Þµvé¿îÀ…꼅뺀æµxÞ±~ã¸ê¼zå¶yä³yæ¶zã´uÛ©lÔ¦nبtà¬qã­oß­qß­jÛ«fß±nå²qà¬gÝ«hß©là¦eÞ¤eÚ§hÞ¬jÞ­iÛ§lÛ£nܨrצnÕ¢hÛ§lÛ¦hÕšcÒ–_Ó˜[Ϙ`ÍšdÓ¢gתnתmרpØ©pÖ¤hÕ¦lÚ±uàµß´„߶á²xà¯vá·}ä½~áº~ݸ€á¶~ç¸~ã¸~߸yâ¸xà´{ݲඊ㹉一ຆඅ䴀á¹â¼‚áºyâ¼潈ã»~ã·}æº{ÞµuÙ³yἂ潆ä´|ß±tÞ·{ễ必ཀ޽â½㺂޷~Þµvá¹忇澃å»~侀⼂Ṁ湃뻇缊⻇Ὀ佇æ¼ä¼„ã»â·xâµ|å¼çÁ€å½|ã¼zß¹{ܱwÞ²sÛµvÚ¶zã¶vàµv߶|å¸}á¶yáµ{á¶zݳtß²yâ´vÚ¯pѨnÕ«kѦgÉ^Ò¦dÜ°qÝ®oÛ¯hתaÒ¨bÖ«jܲk߸n߶sÙ¯oÙ«mÛ­pܯtÛ«rܪrß°r׫rÖ«wÚ²vݵxÞ±xÚ«kÕ¤iÑ¢kÓ§eÏ]ÍdÜ°tÙ¤gÌ•XÏ£j×µ‚Û¸€Ø±v×®sدtׯyÙ±{Þ·€Ú¹}Ú´|Þµ}Þ¸zà¹{ßµ{Û±rݵsÞ¹}Þ¶{â¶uá¹vß²sݱoÞ´rݲsرo×­lÓ¢fËžbÆœcÈŸd˦eϦkÕ¥nÓ©hΦ_ÉVÇ¡WÉ£_ТgÔ¤cÓ¡]Ö¡dÖ¡gÓ¡jÔ¦jשiÚ¬oØ°fÒ¨[Ò¥aÒ¤^Ô¢cÔ¥dÓ£YÏœVЛQÓ¡YÔ¢dÖ¢eÓ¨hÖ§dØ¢[פ\ب`צ`Ξ[Ä•QÕPΞXס[Ö¤]Ø£\Ù£bÙªdÖ¨bÙ©kÜ­mÔ§`ËŸVÐXÕ¡_Õ¡bÓŸaÏŸ_ÎT͘OÏšQÔ£^Ò¡[ÐœRÕ¡VÔ¢\Ñœ]Õ¡`Ô§^Ò¢UÕ¢SÔ£]Ö¡aؤ[Ö¤_Ú¦dÙªgÙ«fקdÑ¢]Ì¡]С^Ñ£]ПYÔŸWÓ¢ZÔ¢_ؤ^â°kâµqÛ©gß®jâ¶uá³vâ¹wá¶vܬjÜ®gÞ®kÕ¨^ѪdܯoÚ®lÖ°sÚ±oÙ­qÙ«qÜ«jשiÓ£dÒ¡^Õ¦cØ­dØ®dØ­dÕ¬c׬iݬoÚ«kÚ®kاiÙ§eÖ§dÏž`ÇŸWÉŸSÓŸYÖ¤^Ó£_Ó¢]Ö¥\Ö¤]Õ¦^ÖªfקeΞ[ÌœXÌœUÇ–Q“Q¿‘MÄ•KÏ¢WÍ¢WÀŽL½‡FÃJÄ‘PÄ“RÉœXÉ™SÈ™PËŸ]Ó¢eÒ¤aÔ¨^Ù¬]Ö­cÓ«cØ«aÞ´mä·wâ²rÚ±mÖ¯kÕ±kØ®nجm×°jܲrݶxݶpÛ¯jÚ­jß³qßµsÛ²mÚ²oܳrܲrܱrÞ¯rÞ°tÛ­kשbÔ¦iÖ©gÓ¦[Ï¥\ÖªaØ«aبbÙ¥dÕ§dØ«kݱrÙ±m׫gÖ¤bÖ¤aÒ£aÑ¢[Ô¢]Ð[Ë™PÊ—KÈ•PÇ–MÆ–GÉœUÔ«fÖ«fÛ«háµlÚ®aΡ^ÍŸ^С^Ô£`Ô£`ÑžZЙQÏšPÏœRÊ–HÅ’CÆ’JÈ”TÙªhÁŸhí¿ƒæ¶~à²{â¸åµ}å´yæ³zæµyã´€ä°ãµ练軅㸅㽅éÁ‰èÀŠèÂ…êÀ„一è‹ñÉ–ïˆëÀ}ïÁ‚ïć뽄å´ã³{å³uæ¼tè¿yå·{å¸~î½ñÁ„í…콄í‰ìŌ뾈éº}߶tÛ²pß®rÞ³ræ»yí‚ìÀ}ì¹uë·z鼂ë¼yé¸qå¹vå»yè¸xë¸|èº~ê‡ðÉŠîÁ~é¿zîÇ…óÅŒïŠðĉïˆë½ì½‹êÁ‹ë»€ë¶€é½ƒç¹{á­uܪrÚ«oà®p߯oß®qà®nÛ­oá±{æ¸}æ¸sã°mÜ«oߪn߬lܲrá±sâ­qÞ¨fÙ¦d× eÕ›^Õœ\ØaØŸdØŸcÖ ]ÕœWÔ™\מaئfתlצeÔž[Й\Í™`ÑžeØ©qà³~ã²zá¯sß±yÝ°y߯uâ°zâ³~Þ±{Þ±|á²xá³xß²zÝ´uØ®uÕ¨yÙ³yݶwà´äµ‚ä´~床仄à¸uÛµxݵ~ݵܵ|ᴀᶀݯ{Ù«xܲyÞ´|ݶڳ|×­zܱ}වഀߴ€á·ä·~ã´yܲyàµ}æº{ç»{ä·{ṃ廅ã¶|â¹å¾à¸|ܳ~ߺ€ä»‚â¹à¹ං࿇⿊伉æÁ‡á»ƒá¸}à»|Þºà¸~Û¸{ضuÞ·uÞ¸tá»y㺆㷄乂å»~ã¾}⼄ã¸Û¯qЯrÚ´xØ«qÌ¥nÒ«s×­vÙ¯sÙ³vزsÙ°nÙ²tÞ¶vá¹{Ḁ޵xÞµvÞ¸xܵvݲrÞ±tݳu׫mÖ­tÛ´yݸvÞ¶vÜ°tܱuܱwÛ±uÙ§kÖ¥uâ·ß¯kΤgÒ±vÕ¯rШj̨gÎ¥fѨiÒªpÕ©sÕ¯tײqÙ­nدsÚ²{Û±zÚ±sÙ±rܵvݹ{຀߹}ἀ伅ව߶yß¹uàµyá´xÞ±uÙ¯pدo׫pØ®nݱrݳuÞµvá¶zØ®jÏ¥dÍ£jÍ¥lÕ¨kÕªlÔ©jÖ¨lÕ¨mÕ¨pÙ®pÞ´nÝ´sÙ­qتiØ­mÕ°mÕ«fÔ¨cÔ¥aÓŸ^Т^ѨeÖ¬fÚ®fܬlÛ©fܨdÛ¨jשdØ©cÏ¡bÇšXΤ\Õ«dשdÛ¨aÙ¨dÙ­kÚ­fÛ¯hÞ¯oÙ«kÓ£`ЦbÕ«jÙ©eÖ¥]Ö¤[Ó£^Ê]Í¡dÓ¥mУfÌ¡^Í¡]΢]Í¡XÍ T΢WÍ¢ZÍ¢[С]Ô¢bÕ¨gÕ§eبnÙ­nܯlÞ®jÕ§dÌ eÒ¦j׫jÓ§cÏ dÏžgО^ПXÒ¦bÓ¥eÐ¥eÙ°nà·xß»{áºzâ³{ݱ}سqݲlÚ­tÙ«qß°pÜ­nÙ­iدoØ®pÚ±jܱmÙ«mÓ¤eСaÓ¤dÙ®hÞ²jݯlÚ¯fݱkÞ³uÙ°oÝ°jß°mÞ¬mÙ§gÖªfÓ§dÏŸ]Ñ¢_Ô§b׫bÚ¬hØ©hÔ¤]ËTË›WΞYÉœVÉUÊ›QËžXΠ^ʘ[Å—UĘRÁ’Q´„N³„M½ŽG·ˆE¶…J¿J¾ŠF»†H¹†JÀLÓM¿ŒMÂPÄ’MÇ’PÎ]Ú°iâ²rß²rß²tÞ¯vÞ°vÚ°vׯoÚ°nÚ±sÜ°vÚ­r׫hשrØ®yÙµvÝ´tܯpÚ¬sÛ³uÞ³sÝ°tܳnݲoÜ®sÚ¯jÚ®eاbѧhܲpá²uݱqÞµqݱqß±pà·tÛ³oÕªiÓ£gÛ«hÛ°lÕ«hק_Ö¦VΠTÇ—TÅ’M‘C¿‘JÅ”QТZÒ§cÔ¨eݯfÛ¬hÕ©aجeÕªjÖ¨dا]Õ¤TÏŸOÏ VÍ UʘLÈ“OÊ•TÌœXפ_º˜`꽂æ¶ß°€ßµæ¹麂ê¶æ°{á°äµ…å¹轄ëÁ‰êÀ‡ë¿‡ìÅŠê‰íÁìÄåÂ…èƇìÈ„ì„îÂŒíÄŠìćîLJëÃ꼃콈íÆíËîĈí„îÄïÆ„ëÄ„éÁéºzæºuç¿è¿}å½yå¸æ·‚趆鼇ê‚ëÁ}ìÀê¾é»~ïÀƒí¼{å¹êÆðŃîÅðÈŽòÍôГõËòÆ‘ðÅ‘îÂŒîÀŠïŠïÅ„ìÁ‚ê¼…ç¼…êÀ„鿄缄ä»à¹ßµ|á³wä¹{áµvà¯pà¬oÜ®sà´{æµ{ä¶rß±gß²kâ¶tä´xæµæ¹}æ·xà°uݪjÙ¥eÒ£gÔ¥bÖ `ÖšcÙ¡bÛ¦\×¥]Õ¤bÚ§cÚ¢`Ôœ]Ôž^Ôš^ΖXÌ™UÐœ_ןgß­sß­vÛ¬uܯtÚ­vÛ«yÝ®tß²qà®xá«vá¯sá²vÚ­sÔ­pجoÕ¦q׬wܵzÛ³yãµyã·|Þ´zß±wÛ±xÙ®qÝ­tÜ®|Ù«vÛ±}ݲܪwרpÖ®tÕ±rزxÛ°zØ­rÚ¯xܱ|ܱyß±uá´wä¹|à¶yݱxÛ±vÙ­rÝ®sÞµyÛ·Þ·~à´zÞ´tà¸rÛ³uܱwⶄⶀ߳yÞ¶}ܸyÛµ{Þ¸ƒàº€à¹|Þ·{Ý´{ݶ{Ü´}Ý´ƒÝ³{Ø­uÚ³z߶~ß³|เ㼇㹄຀޸€ß¶|â¹~Ú²{Ò­tزrÖ¬tͦtѧpÓ©rЪtÔ¨qÔ¨pÖ­tÚ®tÛªrÓ«nΫlÔ©q׬uزzÖ±}Õ¬}Ú´€Ü¹z׳wÖ°{Ù²vØ°wÖ±xÔ±uÙ®uܲxÛ¶xÚ°rÙ±yܸկuЭuЮuÊŸeÚ]ÃœcÆœfÈŸdͨoÓ¬u×±|ܳӬtÑ©oײyÚ´{ݳ{Þ³yÞ¶{߸€Ü¸Ûºß¼‚ß¹€ß¸zß·~ßµ}áº|à»}â¶áº~àºxà¸|ݸƒÞº‡à¼…à¼à»‚ߺ}ݳwÚ¯xÓ¬oÔ®pÙ±xÚ´{Û³zÜ°zÜ°yÞ³yܸ|Û²wÚ°qÛ¶sÞ¸uÜ´uÛ­sÙ¬k׳gÚ²rݯtÛ´oÚ¸nÚ³sÛµvÞ¸tÝ°sÙ­pÚ«iÚ«fÓ¥_ÆœZÈ¢bÒ§cØ°hزpÔ©nÙªoܳtÚ²vÚ­sÙ¬kÕ«hÒ©hÔ¬kÔ«nÒªeÕ«fÕ§lΡhΣgÓ«jѪgÓ¥cΤ`Ê£cÍ¢eÈ^Á•TÁ‘MÅ–QÄšVǘWÊ›aÎ¥f׫fÚ®nà³vá¹xÖ´oΤbÑ£bÖ¬mÖ¯oÓ«jѦdЦbÑ®jЫqÐ¥jЦiѬuÛµuá¶xà·zà·tÞµqܱmÜ°pß³zÞ¶|Ý°vݲoÞ´qá°|Ý´qÛµoà¶|à³uÛ¬tשsÙªnÛ¬rÚ°qÚ°pÛ±tÞ·wܹuØ´sÙ²tÛ¯mÚ­hרhÕªkÕ®iÒ¨cΦcÖ­dدhÛ­kÝ®hÕ¦_Ì–TÄ•ZÈ¡aÊ¡^Å™XÆœUÍ£cˤjÆZÅ™O˜J½D¯„D¯‡IÀ“L¾F¸‘K»“R¸ŠH±€>¯}=µƒ>¼‹E¸„A¹†>¼ŒKÁŒVÊ™VЦbÜ­là±kݲoá¶pá¸uÙ¯sѦmѪlجgتfÕ¦lÓ¤lÔ©jØ°kØ­lÙ­lÖ®kÒ¨lÖ©mÚ¯kÚ®lجnÙ®lÙ¯oÕ®oÕ®iÖ¬fϤaѦgÚ±sÜ´vÞ³rÝ´là¶rã´qÞ´nدjѦjÕªoܲmݯlÛ¯mÛ±lÙªgË¡[Æ£[Í£aÍaΠaΦ[Ë¥ZÍ¢bΣhÏ¥fÖ«jÚ³kÖ­aاdÛ¬jרcÒ£]Ö¥]ПWÈ•MʘPÌžXÌžcÔ¥i·™`â¹…áµ~Û¯wÖ«sâµzîÂ…ìƉçËìÄŽðÅîÄïÅ”îÇ“íÕñÃŽðÆ‹îÃðÅòÌëLjçÀ…濃ç¿~輇缈ê‚ìĆ꾄꿆뿇껅쿈ëņêň뾉꾆꽅꿅缀á¸æ¿„èÁ뾂ðÂŒðÅ’ñÃð‰íŠíÃŒðÈðÄí¾Œïˆ뼀绊ïÊ—óΙñÍ”ñÈŽð‹ïÅîÈ“îÃŽèÀ…âºä·…缋缂å·áµá¸€ä½Šä·ˆâ²‚á´zâµyÞ·Þ¶zá¸ݳxÚ¬q׫tرrâ¶qà­rÝ­rÞ°mÞ°pä³vè´|æ¶}æ¶~æµ~å·xã³mÚªgÖ§gاgÕ§eÓ¤cÖ bÛ¡cÞ¥cá¦câ¥bÝ¢YØZÖšVÕ˜TÕšYØž\ÚœdÛ¢nܧmÚ¦fÚ¨sÜ­pÝ«cÙ¥hئpß®sà³tÞ¯vÛ«tקn×¥lפlÙ¦lÙªmÞ°nÞ±sתqÖªqÚ®wÜ®{Ü­wݯ|Ý«à­|á´Þ±}Û¬sÛ¯pÛ¬tÚ©uÞ¯vÞ®{Þ°~â´‚â³€â¶yã¹}â¶}â¸{á»~ã¹yà´vݲuÜ°oÚ¬pÙ°pÛ´s߸{Þ·|Þ³yÝ´yá¸}ã¸á·}á¼{ã¿xá´|á¯vâ¶zß³‚Û®}ܱ{Þ³Ù±|Õ¯sÛ®uá´~à¼{ܲzÙ«vÛ°uÛ±wßµ}什伂伅᳂ݯ{เ⿄ܵu×­vÙ°yØ­nÖªnÙ­rÒ«uÑ«v×°uدxÝ´}Þµ{Ó§pËgÊ£fË©gÊ¥iÊ¢mÍ¢hË¡bÌ¥mÓ¯tÔ°xׯzÚ²vÚ³vزzÕ°vײrܳxÚ°}Û±ußµyÛ´zدnÕªsѧyËŸjÉ›dÈŸoÊ¡nΤkѯqÔ¶zÖ¸~׳yÕªsبqÞ°~ß´ÞµzÞµyܹ„ß»„Þ·yÚ±xÚµ~Ü´~ß±{Ü°vÖ¯uÛ¶~Þ·€Ù²}ݸ€ß¼~á»~ể὇Ḉ߶‡á¼†ãÀ€ä¾€Þ¼ˆÙºßµ~߳ݵ~á¶}á¸{Þº~༂޴zÚ­vÚ¯vݶ{߶޴{ݶuݹxÞ¶xÞµyÞ¸}ݶ~เ޸wײrÞ¶{à¹Ú´uׯeÕ«dϤgÅšcÄžjË¢fÕ¨eݳtÙ³xÕ¬vÚµsà¸m߬pÙ®xÙµvÖ­oΨnÒ®o×­oÙ­tݲpÛ±jÛ³jݹrá»|á¼yÖ¯nË¢hÈ¢gÄ¡`Æž^Èž`Æ^ÊZÈZË ^Ѥg׫oܳxà»á»ß´{Ú±xÔ°pÓ­mÖ®sÛ¶xÚ°qÕ¬jÖ°rÓ®rЩjЫqÒ­xÕ¨qÞ°pá»yâº}á·}ß´wݲvݳxÞ´|ßµ|Þ¹yà¹xã¸|à¶yݵvܳ|Ü·xÞ»wÞ¶rßµsßµ}×°uÜ°ußµ{Û´u߶xÞ¶y×±wÖ­rÙ¯j׬lÖ­s×±nÖªhÔ¦hשhÖ¬lÛªnÞ­j×®jÒ¨jÍ¡fÏ¥jѨhÊ¡dÈ hÈ¢cÈŸ^ÇœWÁšUÁ™X˜V½•S¿˜TÇ¢]Èž]ÅšYÉ£bÇ ^Á“R½“LÁ–JǘR•T¿“SǘUÌ_Í¢iͤgÒ¨eÚ­hÚ°nÛ²và·vÞµvÙ¯yÖ°lرfÜ®oÛ¬oÛ°oÞ²uß°vݱtÙ¯wÚ¬pØ­nØ°xÚ±qÙ±lÙ¯q׫lØ®qÛ±sÛ±mÚ­nÒ§gЪbܱk߯mÙ°fÜ´nâ¸sâµuá³zܱoתkÙ­qܲqß±mÚ­mÙ°rÛ²mÖ¬gÕ¬jÖ°jÓ®gÓ©dÑ¥aÈŸ^ÇŸaϧjÓ©n×­nØ­nÕ¥jÙ¨jÜ«kÛ§cبgبgר\ΡVÍšY̘_É›]Õ§g½™jÞ³|â´}à±wجuÛµz㿃ëÁŠéÄŠëÄíÅ–ìÇ•ë‡é¿ì†ìÀ…éÀ…íÄŠðȉíËë‡ë¼êºzç¸{â¸†â·€è»€í¿Šè»ŠèÀ‡æ¼…áµåº|繅丆弅êÀŠìÀ‚ëÇëÁí¾†îÁˆðĉíÅŽïÊ•õΖôÌ”ñÇ‘òÇ“ñÊ•ðÈïËîÁíÁ†ç¾„濆îĉðÈŠíĎ꽊潅㺆ä¸}æ¹{ä¶ß±{áµxâ·yá¶xá³wß®xß±qá²rß²}Þ´{ܯsØ«zÜ°Ø©vÔ£kФiÒ¢kØ«u߸và±oÜ­pÛ±t׬qÚ¬nâ±wã±vãµz帄æ¸æµzã³xÞ­uÙ¦nبpØ­tѪrФaؤZÜ©gß«kã­hä®gÞ¨^Ö ^× _Ù \Ú¥hÚ¥hܦaܨdÚ£aØ¢bÖ¢dÙžcÙ¢kÙ©pܨuܪwܪkÜ¥cÖ¡eÕ fÛ¢hÜ¥qݪqÚªpÙ¬mÚ¬gجlÜ®sã²{â´Þ³xà­zÙ¯rÖ¬fÚ¦mÚ£nÕŸnÖ¢kÛ©rß±}ß°}߯|à²{á´wà¶yà¸å¸…ã·á¸yá¹zÞ´zß²}ßµ~à¶}à¸}ß·zâ·€áµ~ß³⸅ä¹â¶䶆ä»ß¶~ß³zÞµwá¸侀߶zÚªvÚ­x׬sÖ¬oÛ³uݵzݵyÛ²qÛ°vÚ¯{Ú±vܳzݳvßµuã¸߶|ݳz伂å€áµzÞ±Ù³}Ò°v×±{Û´{سwÚ²€Ü´€Þ¶|à¹à¼}Ý´wÙ¯qÕ®oÓªrÎ¥kÊ¡gË¡kË n̦lÑ­tÙ®}Û²~ß´á´ßµzܱxܱyßµ|Þµ{ܶ{ܸ}Ü´zÙ¯uÚ¯vتuÒ©lέpÓ®tÒ¬qЬqÕ¯lÔ¯qÕ­yÕ©vÒ¨sÖ­|ܵ~Û¯wÕ©xÓ©s×®{Ù±zÕ­sÒ­sÓ¯oÚ®mÛ´{Ü·yÛ±rÛ¸}ض}Ø°~Û¶…Ü·|ß´zÚ²{Úµ{ܸݴzݵ|Ḁá¸~á´€Þ´‚ܸ~Û¸Ù²Û³|ܵÛ²Ûµ€à·~ݱzØ­rÛ±xÛ²ƒ×³×µ~ÛµÛ²{Ù±xÛ±{ݲ{Û¶yÚ·vÔ±oÖ°tÞ·Þ´xÛ®m×°gϤiÆ›bÃ\É¢bÔªfÚ±vÛ°~Õ®uزsßµ{ݲzÙ®yݳ{ݳvÖ«sÙ¯yݲ|ßµxá¼~â»ã´yâ¸㿄忀ܶ{ЪoÍ¢fÊžbɦhЭnϨlϨsÒªmЫoÖ±sÙ±kÙ°tขä½ß¹zݵ|Þ·}س}Ù²x⼇㽊޵yÞ¶qزsΨoѨrÕ¨tÑ©mÕ¯oÞ¸wÞ¸zݵá´|â²zÚ²uÚ´yݵ߶{ീ㺇ไ۲‚Ú²|Ù³uÝ´yâ´{Þ¸qܶxݱ}Þµ~Ý·}Û³qÛ²uݲvܳrسnØ°sÙ²wÕ®oתh×®kÕ©pÕ§m×­lÚ¬mÚ­mصs׳qЦdÑ£bÔ©iͨlͤjÌžbÊœbÈœdǘ^Ç›_ÆŸ[Ãœ_›`ÅœX•UÆœ_Ï©mÍ¥hË¥e̦gϤlÐ¥dË¡YÄ›Y¿”R—UÅœZ»O½‘QÅ\Íž^Õ¦eÚ³rß²và²yÜ´}ܳwÝ´wÜ´á´àµxàµxáµ|à·vݵrݳtÞ´{Þ¶Û´yÛ²pܲoÚ²uÛ°uÞ¯qá´rÖ°oͨj׬mÙ¯lÕ­dÖ®jزrÞ¶rà¶sÛ¶tÛµrÛ³rÚ±qÛ¯qÙ°oÛ°qݲnÙ´mÚµqܳpØ­gѪgÌ¢eÊ^ʤeÔ«hÕ©mÖ¬rÛ³qÚ°qÖ«sØ°pÙ´oÙ²hÚ¯gÚ«eר]Ò¥VÎœ^Ç•_Ï£b¾œiå¸væ·zåº|ã¶~Þ³àº}ã½vã¼}翈뿂êÀƒæ»†ä´|ç¸}켈êÁˆêĉëÃŒíÆŽíÄŽêÁˆìÈëÁ‡é½ƒç·~è¶~軄깆꼉縂âµ{â¼èÀ‹ê»†åº…èÀ‡íÁ†íÅŒðÇŠîËðÆòÊŽðËóÈœòÇ•ïLjî„îÁ„ðˆïÈ꼆ç³ä´záµ|ݯá²ä¶â³~â°~ä³}â²yà¯xá³zâ´vß´vṂ黆鹅æ·丂漊龆ä¼Þ´€Ý¯yâ­uã®}Þ«vÖ©kÓªqØ«|Þ¸‚ἄâ·{߸zÞµyÙ¬jתpÞ¶zä»såºz齇뽆ç·ã¶vß·vÜ°{Ý«rÚªoÕ¥fÕ¨dÖ«jÚªkã°råµxç²ná¨hÜ©hÞ­hܧiÝ©gݬiܦhݨ_ܧZÚ cÙ^×¢\Û¦eݤfÝ£cß©gܬjÚ§fÚ§fÙ¢aÚ ]Ú¥hݨkÜ¥dÛ¨pà°yÞ±tß°tß±yÚ°wÜ®tØ©oÔ¡gÒœ^ÓŸaÖ¥jÔ¤kئpݪwݯxà®tݯnݲtâ³{â³xá±zã±{á³|Ü´wá·z䷀߲zá±xâ´zᶀà»âµ€â³~à¸|ß´zá·~ä¼€áºzà¶{â³~â³|Þ±z۳᷅â¶ܲzܲ|ßµ|ß¹á¹áµ~ß³}Ý°|ܱyÙ°qÕ¨fÕ«o×°qÑ«mÖ¬yܲ{Þ·xæÀ…â¼}Ø«mØ©tÙ¯sתrѦvÒ©qØ®t×±vÙ°rÚ´tܸx߸}àº}ã»à¸|Û´qØ°rÔ©nÓ¤jÓ¦uÑ®zÚ²zÞ²zØ´vÜ´{â·€à¼à¼ƒã¹ƒà¶~Þ²yÞ²zݲ}ܲ|ܳvݶ{ß¹zÚ¶xÙ´}Û²|Ú¯}Ù±{Ù³{Ú°{Ý°yÜ°|Ù­w×®sÖ¯vØ«uÕ®oÒ®oÔ­tزo×®oÖ­vÚ°vÚ­wÞ³|ãº}àº}Û¸~Ô®{Ò«zجw×­v×±yÖ®tÕ²tÚ¶xܲvزyÙ´}ܱ{×®y×­vÛ±uÛ´zÕ°xÓ­vÕ°yÔ¬v×­vÞ´{Û²sÕ«wÙ¯}Û¹yÛ¸yܱ~Ù¯Ö°zÖ°qÕªmÔªpÓ­pÔ¬lÒªiÖ°pá¸yáµzݳyà´vÚ¬jÉ¢cÄdÈ¡kЫrÛµsá¶xÚ®oÕªgÙ¬vÙ®{׬vÛ²uÛ±qÖ¨qתwÛ²uÛ´qâ¹uàºvÙ±rÞµvå¹yà·{Û²pÖ­hÒ«eÏ¥dÒ¤jΦfáYÆ\È bѯpض}ѯtÔ³xÛ»‚Þ¼}ã½~຃⺅⸄ݴƒæ‰éÈ躀äºzÛ¶zÙ²xÝ·vÞ»vܵxܲrÞ·nÜ´uÛ±|ݸ|Þ¹~Û±}×°zÛ°vÞ¯vÝ°{Û³~Ý·xÜ´yÕ¬rÕ©kÙ°vÞ´xÞµuÚ±uÚ­tÚ®pÜ°sÛ±uÛ³vÞµwß²wÖ®wÓ¬oÖ¬oØ«oÚ­nرlÚ¯rÛ®rÚ°tÙ­yÙ±xÛ¶pÖ­fÍ£cѦdÖ«kÕ¬rÕ¬mѨ`Î¥_Ê ^ÉŸ^ÊœZÆœTÆžV¿˜X¶Kµ†DÁ—]ˤdÊžaÉœbÈ£dÉ¥jÆ¢hŸd™]·ŒH²‰H»“M½ŒQ»ŒQ¿”MÅ™[ΤhÖ¬lÛ¬nÛ¯oÙ¯vÚ±zÝ´ràµyÞ¸}Þ¹yà·uß°rÚ°r׳nÛ°jÝ­mÙ¯rÚ±pݱrݱrدhÕ¬iÙ¬qݲqÕ±gÌ¥bÍ£fϪgˤaÐ¥jÙ±uݳq߶tÛµpײmÞ´vÞ¹yݸpÚ²s×±wÚ°tÞ²u߸yà¸x߶qÙ±oÕ©kÑ©jÖ«kܯpÚ²wÙ´vÞ³vݵtܹr߶wáµxà·rÞ²oÛ­mØ®j׫eÓ¤WÊŸRÒ¦e¼gë½~쿄꽋緆å³|七溄幀齋ìÀŽëÂŒêÁ‹ä¹辂îÃᅩ뽅ì¼~ñÀ„î‡뿆í½뺃迉ìÁ‚è¸}æ¹xë¾~è»{ä¶rã¸væÀ„íÆîÁŠë¿ˆê¾ƒë½†íÂïŠëÀ…êÄðÆ—ñÆŽñ¿‚ì»èº~å³|ã±uà²y溊鶅â±zâ¶{á³{פmØ¢pÞªuà°sã±xá¯xâ²}çµ{è¸}è¸{å¹yèÀ†íÃëÀŠé¿‰éÁŒê‰èÀ€æ»{㸃⻀á·ä´ã³ß²Ö¯~Ò¬{Ú³{ݵ|ݳ{Þ´yà³xÞªsÙ¨rÞ³yãµ{ã¹~ç½ã¹zß°sÞ±xزyÙ®qß®pÜ«nÕ§mÕ¨oѧjЦdÞ¬oá°vß«pã¨má©pß«pâ­oÜ°nàªiݤaÔ¨cÞ©gâªaר`Ù¥^à§Zܦ\Û¡dÙ¤rÛ«pÞ«eà¦gÞ¥dݦaÞ§cà¤aܤ^Ø¢fÝ¥iÚ¨eØ¥gÛ£_ÕŸ[Ó\ØŸWÛ¡WÙœUÖ hÙ§sÜ©nß«zâ±ä³vß±vݯtÜ«rá²tã³xâ­tâ¬vá­|á­xâ³yà²xÚ°xàµ{à´yÙ°yݳyÞµzݵ}ß´xÞ²oÝ´}඄â´}â³{ᶀã¶~Þ³vÙ³uá´sã¸vÞ¸{ݵzÞµ{߶⸈㵄àµ~Þ¸}ܹzÛ¶sÖ«lÖªsصÕ³yÖ­vدyÛ¶}ß¹Þ´{جmÔ¨pÕ¢qÑ fÉœfÉ™b΢`Ò¥gÓ¥tÓ­zدnÝ®oݱ{Ù®€Ø­|Ú­uÕªtЦq΢rѦtÑ«tÔ­tØ­qØ­rܯzܵ۲€Ý±Û²Ù²w׬nÓ¨tÕ­uÖ«tÑ¥uÖ¬wÙ®zÓ¨{Ó¦uÖ¬yÚµwÛ¶zÛ¶ܵ}ݱyÚ²xÓ°qÒ¯tÖ¯{Ö¯tÙ´u׳uÕ²vÙ²‚Ú³~Ù·zÛ±|Ú¬wÚ´xÞ¶{Ù³wصzÔ¯xÓ«yÚ¶}Ú´ܱ|Ù²zÖ²vØ´tÙ°yÙ²{Ý·}Ú¶Ú²{Ø®}×°tسtÖ³{زuÙ¬vÕ¬uØ´vݵ|Ø´zÓ®uײvÚ¸{Û´}Ü®xÙ±vÛ³t׬oÕ¨p׫qÖ­tÚ²yض{Ö³w߶}⺂ã½ã¿á¹Ø®yÌ¥nʦq˪vЫxÕ¬wÕ­qÓ«qШqÓ¦oÓ©lѬmÖ¬lÔ«hÍ¥jУgÕ¦eݶtÞµuÔ¦p×°sÝ·vÙ«nÖ©kØ®mÔ­mÒ«p׫pΤhÄ•ZÁ’[¾–ZÂdÌ£j™bÁhЬjÖªgØ­r×°vÙ°zÙ´vÛ¸{ãÁ‡ã¹}ᲀ仆ä½á³yÜ°uݸxݶxÙ«xÙ«v×®yÛ²~à¸zãµtݯq׫qÙ«uÕ¬oÓ¬lÖ©oتnÛ­hÖªfÕ©nÝ°wÙ°uÙ¬qܱsزpØ­oÚ«qÛ«rÞ°tÙµoÙ­qÕ©qЫgÓ¬oÕ«qÖ«qÖ¬uÞ²yá¶xØ°rÕ­nÚ°pÝ®sÚ­n×°mÖ±rܶ{Ẁá¹zÛ³kÖ¬mÕ­kÕ¬gÕ­jÒªgÍ¢eÙ[»K¼‘RÅš]Í¡kÓ¦oÕ©hÕ¬p˧pÄŸbÄŸcÄ b¿–W¾”XÄŸ]ʤdÊ£dÂ\Åœ\ΤaΤdÏŸdФiШlÒªjÕ®jÛ±hØ«hÓ§iÖ¨nÙªkצ^Ó£`ѧeÒ«fÓ©pجjÚ­eÙ©oÕ¦jÓ©gÕ®kÕ¬eÌ¡`˜T¾˜QÁ™WÇ›ZÌ¡eׯqâµsâ¸rܸuÚ²qÛ´sÚ¶wرpÚ°sÛ°uÛµpÞ·yßµzÜ´sÛ³tÜ´sܱsÙ¯sÖ°sسtÙ³vÚ±{Û¶}ßµzÜ°vÙ²xÞµuÞµrÜ´oزeÒ©aУfÕ§dЪkÖ¨rº™ií¹~é¾xê¼{é¶zâµ}緈꼄ä¾{çÀ€ìÁ†ë¿‰êÁ‡è¾‚뾃쿈黇à³{Ü®uà²âµƒç·é·€æ³|æº~îÅè¹uâ³vè¸ç¶å·躄軂íÄðÈ—íÁˆíÀ齇è½íÇ‘êʼn콆쾇轄ë¼é»å»}ã·}Û³}Ûµ|过ìÄëÀ‹é¿Œá¸{ÙªnÞ«xà°sß·{㼃湄軆éÁ†ë‰îƇëĈèÀŠêÂŽéÁŒæ¿Œè¾‰é¼†â¸ƒà³…巂渀ⷅã¹æ»áºÚ²{Õ«vÓ¬tÖ­uÕ¬tÛ¯sã·xá¶qÞ±qÞ²|à³{ä¸{å¹yÙ«nÓ§jÛ¯xÚ©qÐ¥iÕ©gÖ¦bÕ¤eרlÖ£hÒžfΡjѨfÔ­lÚ¬râ®rÞ±oÞ¯jà­iÞ«gÚ£a×¥fÜ®l߯hÞ®iÞ­là«fߧaá¨gãªpá¬rÞ®oß©nÛ¦mÚ¦cÛ¦hß©jà¨aߥcݤfØ›^×›YÙ¢_×¢fØŸ^ÚžWØ¢_Ú£fÜ£cߪhߪlܪlß´xã¸uá²râ²sà®sݯvá´uà®oÞ¯ná±xÞ²zÞµ{ã±và¯rà³xá°~ܬ{Ú²zà³á°zݲsܱoܲtÛ³zÛ°yÚ±xÛ´zݳ{ܯyÛ«{Ú®|Ú±xÙ­tÖ¬u׬t×­u×°vØ°yÙµzݶzà·|à¶~Ú®yÚ°~Ú´€Ùµzà¸zàµuݲxÞ³~ݲ{Ù³xÓ«oÏ¢cΟfÉ—`Ç“XʘaÑ›fÑžkÕ¦iÕ¦lÔ¦rÖ¦iÑœbΕaË™ZÌ™]Ï™_Î^ÎiÍ¡jѦpÛ«zØ®uÙ®tÙ­rÔ¨pÕ£mÒ£mÓ¢oÓŸjΡkÒ©qÖ¦kÔ gÕ£iÏ¢iÏ£lÓ«rÖ¬vتtØ°xÙ°xÙ­yÛµܹyÝ´xÞ´xÞµoØ­nدvÛµ}Ü´~ܴܸ„ݺ޸~ÛµyÖµ{Ùµ{Ú±vܱuܳyÛ´~ṃ⺄߻ݶ…Ú²‰Ù²}ܳ߹†á¾}ߺܳ|ÛµvÛ»yܼyÞ¼yÛºx×µuÚ²|Úµ}Ù¹{صyÛ±xÚµ{Ú´uÛ±rÛµyÛµ€Ý³‚ܳ}Ú³xܳxÙ¸yÛ»€àº‚àº~á»}àº}à·zã¼|çÁ‚æ¿}Û³pÎ¥nɦqʬpѨvÕ¨{دrدsز{زvÕ©pÒ©oÔ­o×°tجu׬lݶzáµÙ¯xÛºy߸{ܱuܶuà¶tÛ¬mÛ¬nÛ°vØ­uÖªkÓ¥hÌ¡cÌ¡bÇœ]¶ŒP¼VÆ™a¾˜YȤ^Ô¬mÕªrÖªlÛ´rß»wØ­mܱväÀ~â¼~Ù¯wÒ¤oÖ«mÙ­lÙ§sØ®rÕ®iÚ¬sݲzݳzß³zÜ´qÙ²nÖ«uÖ¨pØ«iدmÙ°uÕ°rÖµvÛ³xÔªqÓ®tÚ²xݳxß·xÛ²uÙ°mÞ·rݵvÖ­sÕ¬kÖ¬oÚ­tÙ®rÚ«sÛ®rá¹xá·~Ù¯tÙ±mÞ±rß°vá¶{ã·{Þ´uÞµvå¹}æ¾{ߺuݵu߶wß´xÞ³wÜ°oÖ­pÎ¥gÈš[È`Ï£g×®rà¹xá¹wß´qÝ«cÒ¡]Ê¡e̤cÈ ZÄœ^Æžd̦mË¡hÀ“Y¼“Xß`Ì£cÊŸdÍŸcШfϨgÔ¤eÖªeÔ¥fОeÓ¢bÕ§aÍ¢`ÌŸ`Ñ¥bÔ¦`Ô¨bÔªhÖ¬k×­gÙ¬jÚ°pÛ²rÚ®mΠ\Æ\ÊŸbÊœb΢fÓ¦iÔ¨pÛ±sÞ·rß´uÞµtÙ±qתnÕ¬kÙ­kÚ«nÙ¬oÚ°mÚ²oÙ±nܱrÞ±zÛ²uزsÙ²vÚ´uݳvÞ²{ß±wÝ°nÙ²q×®rÖ®rÙ°uÛ±rܱq×­kÔ©fÕ«eÕ­iÚ­o¿™mé¼z蹇沇á°xీ繌꿈ç»çºè¼ˆê½†ê¼„áµ…á´}å»{较ã²}Ù«yÙ¯{ݳ{â¹ç»…ç¹~ç¼{êÀ~ä¶uà°{䶃æ¼}迃èÀŽå¼‰å‹ìő齊澆è¿è¹ë¿‰îÈëÀ‡èÁ‡è¼‚躂쿃ìÂŒìÁ꽉á¹áº~龅轂廄á¶ܱs㷀㸅߸ç¿…ì‹éÁ辉èÀƒêÀ‡í»„깂黅躅帀幂廂â¸{ܵ{ݶ€á²‚á´åºæ¹‚߸|ܶvܱtرsÔ¯qÓ®sׯ|ݲ|àµxܲuÛ³xá¹å¸à´~ÕªnѦoá´}à®vϦtÓ¬pاjÓ£mקoبiÔ¥dÖ§hÓ¨hÑ©jׯtÞ²sݬfÜ©eÙªkקfÖ¥fÖªkÜ«hÚ§eÛªlä«mãªjà²oä¶rã³xá¯tÞ©hÝ«ià«iÞ«rÝ®qá®aã¯eߪfÝ¡ZÙZ× Wݦ^Û¦gÙ¥aÝ¥]Þ¬cß®dܧ^Û§eܧiÚ¨fÜ­jܯpÞ¬p߬lÛ¨dئfÚ¦jÛ¤hبkØ©iݨhß©mà®yà®{ß­uß«qÚ©oÛ«qà²wݬtØ¥oاtÜ«wܬvØ©wÕ¤qÙ¦nÚ©qÖ¦jÓŸjÓœlÓždÏž`ÌžcÍžfСeѤkÐ¥pÔ©uÕªuÖªvÛ­zÛ­rØ©rÚ­uÛ°yá±|à­zÖ¨s׬qܪvשxФkÍŸ^Ѥ`ΠcË—cÌ™bÏšeÒcÏœ_Í—\Ë™XË™XÉ“TÆTÅRÈVÊ–UË—ZÐœdÑbÐœiÔ¤pפjÕŸkÑžeÌš`ΗcÑcÑ eРhÏ fÑ cÏfÌœgÍbËœ_ОgÓ j΢mϤsÕ¥rÑ¥o̤pÒ®xرvÙ¬xÛ±{Ú±vÕ«xׯzÛ´zܶ{àµÞ´ƒÛ³{Û³{Ö¯vÖ°tØ·s×±tÓª|Ñ­{Õ¯vÚ³{Ü·‚ܷܶܳvÜ´uÛ¹~Û¶~Ù°ز~×°{Ö±zÚµ}ߵܴ}Û´xرxÙ±yÙµ|ز{Ù°wÛ°wÚ¬|Ö­|ײz×´|Ø´€Ú²{×´z×¹|ض}Û¹vܼsÞ¶{á´ß¶~߶ƒÜ´ˆÝ¹ƒå‚çÀá·}Ö¯yͦu̧tѪtÒ«sײy߸ṅݶ€Ö°|Õ®v×°rܳ|Ø´{Ô°vݹ}à½ß¹á¾â¿â»†åÀæ¿|Úµw׳|Ú³{Û¶vàºxà¹zܸvݹsÒ¯o¿œ^¿–UšZ»˜[Ç£cÑ­pÕ¯kÖ®jÙ®uܱqدoݳ|ã¾}ÛºvÒ¨lÌŸ^Ìž\Í¢`Ó«hÙ°rÑ«qÕ¬pÝ°sÛ¯tܳpܵvܱxÞ¶v߶yÝ°xܲ|ܶ}ܱtÚ²qرpѦdΧgÖ°sÚ´q×´p×°qÖªmÕ­pزsÜ´rܲvÛ±vݵrß·uݲvܳpݵyܳ}ݲrá²tâ¶~â¸záµvܶuسoÕ¬k×°rÞ´tܵq׳mÙ±oÜ´wݱrÞ¯qÝ°rרfÌŸaÍŸeÑ¥oسxã·wâ±sá¶vá¸tÚ®jÖ­kدjÓ¦hΠcÉXÈZÆž]À˜X—^Σ_Ô«bÔ­kÒ«lѪbÔ§`Ò§eÖ­c×°hÔ«gÔªfÒ«kÒªhÔªmÕ¬rÙ¬mÚ¯mׯrÛªnتjجmÞ´pÜ·uزvÖ­qÖ«xÔ¯uЯkЭiÉ£`Æ™\Í aѨfÖ¬nÛ¯qÙªmѦfÓ¦cÕ¨fÖªmØ­mÙ°lÖ´pØ°qÝ­sßµxÞ·sÙ±kÙ©gÓ¨hÕ­qÛ¯pØ­n×­zÙ®nÕ«fÔªs×­zÛ­xà°wÛ¯oשiÓ§pתkݱh½žm䷂浆跂߱yß³|滇帀ç¸纆æ¹æµã³€ã¸{ç·~丄罊缇â´zåº|å¼ã¸|æ¾ëÀ„綂ߴߵ{ä¹}弃ä¹|ç¿}çÀ„ãµ|áº~çÀ‡ê¸€è·êº…ê·~뾂ðÄŒìÅèŒ美éÀŽí¿‹í»†ë¼ˆè¼ƒá³|ܬ|à¬zÞ«rà®vå´~ä³市幇䷆缃êÁëÁ‘è»…ã·€ã¸~å³å¶}äµ{ß®zá²á³Þ¯tÝ°vØ­yÚ¬xÙ©vÖ¬xÞ·}â·tß±rá·}帀â³ßµÞ³|Ý°}ݳݱ€Ú¯xÝ´và¶~â¶â´{Ú±uܵy㼃å·Þ¯x×°{×°zØ°xÞ³ݳ}ݵ{à¸Ý±uÛ²uเä¶}â°tß«o߬pÞ®rÚ­oجgØ©`×£_Ù«pÞ±qâ²häµqâ³sà¯sà°tÛ«jØ«lÞ²rå´nä¯là­mã­iã«`â©`à¤ZÞ¦Wß®hâ°kã¯dà¬háªmä¨kÞ§iÛ¦`ݨdá¦hà¦bÞ¦dÞ¨lÞ¨jÝ£cÚŸcÚžeÚ¢d×£aÙ¥_Ù¦bצdÝ«pß®tݪkâ©fÛ¦`Ö¤dܦhÚ¥gÙ¤mÚ¤nפdÚ¥`Ø¡dÕ¢cÙ§hÙ£gÔ[ÑšXÑšZÒ™_Õ–aÕœ`Ø¢eÙ¥fÓŸaÑ¢hÒ£fÍšbÍœdÚ­sݯvÚªpÝ°xÛ­uצlÔžeÐhÑ¡dצhئsÕ¢jÊ™]̘^Й]͘YЛZÓ™XÌ—RÊ–QË•RÉSÉUÇ’WÈ’RÌ–TΘZÏ•YÌ–\Ð`Ñ—]Å’XÉ—VÏ™YΘ\Ζ[Ê”\ÏšdÕ¦jÒ¦dСbÊ™XÆ’QÉVÍ—\Л`ϘdÓ›cÒ[Êœ]Ë gТfФfÓ§jÕ­vÕ¯~×®|Ú±xÙ«qÓ©sÔ­vܱ}ܲ{سzٰٰ{ׯvÔ©rÒ©tÒ¬uШqÐ¥lÏ«nÔ©lجsÚ´}Û±zر{زzز{Ö³|رwÖ©wÓ¨wÒ¨vÓ®vÕ±tÖ«sÓªuÕªu×°wØ´zÚ³xܲxØ°~Ö°xÙ²s×®rÒ®tÕ°uÛ²xÛ®zÛ°Ûµ~Û²tزvزxݳ}ßµ~ܵzß´~ݶ~ܹ~㾄侃á¸Ü°Ó©uΪoÏ­qѬsÖ°vܹà¼Þ¹ƒÝ´}Ý´{Ú±zܲ}Û­zجuܵ}ܲ}Ù²yÛ¸~ß·ƒß¸}â½á¸}ܵ}Ú·|×±qÛ¶yàÀ‚â¿€è¿åÃß¿}Õ­vʤvʧsÌ£jͨo׳sܶqÝ·sß³vÞ±uݳtâ¼å¿à¹|Ö³yͬqͤiÈ_Ì¡^Ù­kÖ¯oدrÞ¶|Û¶}Ù³yܵvܶxݶxÞ·xÞ³vÛ³sØ­iئiÜ­w×­pÍžZÈ™XÉŸ^ÌždÑ¥kÒ¨mÏ£hÕ©nܳxÞµzàµyÙ´tÙ°pݱxܵ{Þµ{Þ´{Ü·{Ý´zâ´yáµuܵpÚ´tݲxÝ°tÙ®mÛ®pÝ­vÛ²uܲsÝ°tݳtܱzÝ­uÞ¯nÙ¨kÑ¢cÒ¦`Ö¯jÛµvå¹qâ´qâ¶|ç»{ß³tܲtÞ²qÚ«qÖ©qÓ«jÓ«jÓ¨mѧfÕ«kÚ¯oÚ¬jÙ¯mÕ²mÔ¬mתpÕ¬jÔªdרlÜ°rݳqÚ²oÙ¯kØ­oÚ®pÜ®lÙ°lÕ«dÔ©gÙ®kÛ±mÙ¯tÙ®tÛ®nÚ°lÕ®oϪoÌ¡iÄ›`½‘Uº„J¼ŽOÅ™WÌž^ѤiÓ¦kÔ¥gÕ¥iÕ¨mÖ«kÙ©q׬m׫b׫lÖ®pØ®o׬o׬nÓ«gЦfÖ¥jÙ¨fÖ¦iתq׬mÕ§jÖ«o׬rÛ«tÛ°tÚ°mÛ­hØ©hÕ§jקl·—hÛ²{à²vä´|ß²{à®xä±…á´ä´zé·è¶à²|á´{ë»뽀漀辇뾅轃鿄齋丆ã¶}å¹丂à³zÞµuáºyæ¶}ä²zá´wß°{Ü«zݲzâµâ°|ã±xè¸伃亄뿉íÁ‰ë¸†êºŠé¾†ç¹€ä³}á°zß°y߬uã®yåµ{å²vå´|å¹}äµ}æ·†æ¹å´}踂é¿}è¸zæ³{ä±vã«ná«pá°xà¯oÛ§lÚ¦mØ¥jÔ¢dÑ aΟeÔ¤iÕ£fÑ¥m×®vÚ­tÛªu߯~ãµáµ€àµ†ã·ƒâ¶Ý²€Ú®tÙ°uÚ³zÛ²yß´}Ù±vÓ¬oÔ°xس۴‚ܶ}Ú²~Õ­x×´yÞºÛ²}Ý®~ᴀ߻€ã½ƒèÂ…æ¿„ã¶zá¶xÞ¹|à·zÞ²oÖ­hÖªgÙ¯kÞ²tâ®rà°pã¸tæ¶{â°vß°pÝ­nשuÝ®uâ¶vá¶uâ±på¯kä®eäªcá¬gá®iå¯hâ­pá¬pß«iÝ®mݬjܨdÚ¦fÚ§cߪdÞ§bÙ¥bÛ¦`ݨbߪeá«dàªdß©gÝ«bÝ©eÞ¨kÚ©hÜ«cݦ\Ù£\Û¨gÛ¥^×VÚ ^Ù¡\×¢]Ù¦aÖ¢dÕŸ]ÕžWÖ [Ø£XÖTÒ˜YÑ—\ØžbÚ¤gמbÖš]Õ ^Õ¢`Ïš\Ì›ZÑ›VÎ’SÈ•ZÓ¥hÙ¨oدvß®r×¥hÑŸeЛ`Ò˜[ÕžWÓ ^Ó eןbÉ”QÆMÍ’RÇ–RË™XÍ—WÊ’NÈ’KÊMË‘OÏ–OΘQË—VÍ—YЙUΗTÌ“RÊ•QÊMćIÁ‹MÈ’RË“WÌ–UÉ–VË—WΙX͘ZʘVÈ”UÈ]Ë™ZÔ¡eÖ¦tÕ£mÖŸcÑŸ_ʘ[ËšaΟkÓ£mÔ¦oÖ§uÙ­xÙ²{Ù®yÕ©sÔ©qÖ©uÖªuÔ¯rÖ«nÖ¦uÓ©zÓ§tУoÑ¥uÓªxÓªuѨuÓ«vÓ¬oÖ®v×°}Ô¬{Ò©zÕªr׬u×­z׫uÕªsÒªtÓ©rÒ©sЫuÐ¥pϤlΩsÑ©{Ó®{زØ®|Ö®x×°{Õ­zÕ¬uÓ©oÔ¬uÙ°yÖ­uÙ³zݵzÚ¯sÚ±xÚ²}Ú²~ܶvÙ´tÙ²wÛ´xÛ´vÝ·uܸzܶڳ}Ö±yÖ­xѪqɧoϬsÕ¶{Ú¹€à¶}Þµ€Û³xÛ°zÞ°„دxÖ²v×±~ׯyÙ±}ׯzÜ®vݳܷ„Ý´ܳ‚Û²Ö®vÙ²yà¹{â¹zṀ侂濃ݸ€Ö±{Ú®uÖ¯qÑ­rÖ¯tÙ´tݵuß¹vܶsá³vâ¹yà½}⼄޺‚×µ{Ô±yÌ­sÍ©oÖ²vÖ´}Ù³|ܶ~Ù¹}Û¹yÛ´~Ù²{Ú·tß»vݸtÕ°pÓ­nÖ­lÖ­n׬m׬eÔ¦`О^ФcÕªsרoÍž_ПdÙ«tÛ¯{Ý°xÜ®rÖ©oجnݲtÚ²yܳvÞ³uܯuÞ¯wÚ¬zÔ¨nÙªnݲrݳqݲyÞ²wܲpÞ°pà­rß®sݳqà¸tÞ±rÙªmÔ©fÍŸ`Õ¡fØ®sØ°tß²qجn×­sâµoß±fÜ®nÞ²rá³tß³qÛ³qÛ°sÛ­rÙ­oÚ±uܯwÖ­nÔ«mÖ©mÖ©mÖ­qתkÑ£`Ï©cÖ¯jÖ±pزqÜ°sÚ±vØ°qÙ¬lÙ¬rÓ¦mΤfÕ¯kÙ±oÖ¬nÚ¯sÛ°lØ­k×®pÕªfÒ§eʤ\ÄOÁ˜RÇ™WΞ]ÌŸbСbΠWÍ¡UÓ£ZÒ¥bÐ¥dÏ¢]Ï¡bÏŸeÐœ]Ò ]Ó¤eÔ¤cÖ§^Õ¥_Ò [ÓŸ`Ò¦lÔ¦iÖ¤lÖ£mÖ¨gÖ«hÕ¨jÖ¨mÚ¬nÚ¯oÖ©pÕ¨mשlÔ¥f´–eà­zá´zå¶}ã¯}߬ã°{â®sâ®yæ²ä±~ã°緆齇뺂뽂轄뺈蹅å»ê½„뻂ê¸~è¹€å¶zåµzäµ~â±|à®yà®zß®}ܨxÙ¥pÙ«tß³yä´{â²|㷀彋éÀ‡êˆ뺈æ°|ä´踅æ´|á®|à«yá®xã¶ê¾‚ì¼ç¶~æ´~å¶|á²xä°vã·}ã¶ã²vã°xäªväªmâ«lÞ¦lÞ¢eÜ£`Û¤`Ø¢fÖ¢jÓž_Í–`Í™iÔ lܨtÛªxÜ©xÞ¬uÞ«uÞªvÝ­xÜ°{ܯuÛ±uܳÙ³{׫tשvÕ¯rÕ­p×­u×­qÓ¨oϨrÒ©xÖ«sØ°rÕªtÕ¥nÕ§mÖ©tÛ¬xÜ®qÛ¯lÝ­pÞ±sݲußµwá´rß²và³zß³zá´{â³{ß³x߯sݯvâ¶xä³sä³vä¹}ã¼xã¼wâ¹zß±sß­pã±vãµ{ä»vå¹ræ¶uç¶uæ²tá«s߬pà¬q߬sá³uã²sâ±pà´pÞ®kÚ¥gÕ¤cتaÞ©`Þ¦cÞ©káªlâ®hä°nå­tä­qß²lá®gá©gܨeÞ©eݦ_Ö£^Ú¦aÞ XÚž[ܧdØ¢bÚ£`ݪ^ܨ]Ù¦aÙ¦ZÙ¢TÔXÔ˜VÕšQÖŸSÜ¢]Ü£`Øž^ÙžXÖšUÔ™UÓ™WÑ™VÒ–TÍOÊ“NЙYØ¡fß«nÛ§iÔ›`Õ™YÒ˜XÓ›]Öœ^ÖšZÖ ]Ù¤\Ò™PÊ”MΙLΖOÍ–XÏ™RÍ—NÌ•WÍ”RË”NÕ˜UÕžWΛQΔOËOÈ“NË“LË‘JÉNËŽIÈJÇFÇŽDÊ‘MÇLÄLÈMÉKÊ”RΔ_ÑgÒ¨oקkØ¢hÔžfÒœaÌ™[ÆQÇSÊ”^КfÓ mÓ§u×­v×®{תxÖ¦nÖ©lÕªpÕ¦oÕ¨uÕ«{ÓªuÒ©o΢kÌ¡lÓ¦uׯvײxÕ®zÓ®vÔ¬tÕ«p׬pÕªuÖ¨uÔªrЪlÒ¥jÓ¤m̦mÈ¡cÈœdËŸgΠgÍhΟhÑ jÑ¡kÑ©pÔ¬tÔ¨qÖ­xÖ¬{Ô§tÔªoÒ«kÑ­rÖ­vÔ«tÕ­xÙ­xØ«yׯݶ€à·{ݳ}Ûµ{ÚµÛ³xݱoݲ{Þµáµxß´vÛ¶zزzÔ«{Ô¨xÒ§qШwÕ­Û´wݶuÛ®zÙ¯xà¸yß±~Ù¯xܲwÚ³|ܹ{Ûº{ÚµwÞ³|Þ´€Üµ}Ü·zÙ·vײsÛ¶xÞ¹tà¸{ฃá¹}ã¼|âºzݶzÜ·~ݸܵy×®yׯvÛ¶wݸwÜ´wÞ´|߸€Ý¶ỄäÀˆÞ¶Ù¯{Ö¬{Ò¦tÕ°xÕ²x×­vݶ€Þ¸~ܲvÙ³~Ù²}×°vÜ´zݶzÛ´{ܳ|à³y߶vÛ·zß¹zÝ´uÙ°zÜ´zÞµwÛ°sÕ¨gΧjЪjÙ¬là¯vÞ¯rØ«hÙ«mÚ°uܯqÙ«tÖ­xÛªsÞ©sܬyÙ«jרgÚ¯nÜ®lÙªpØ«kÙ©nÚªrÛ¬kÙ¨iݬsâ±sÜ«kاiÒ¡bÈšVͤdÓªt׫oÚ«kÖ©kÛ«oß²qÜ°sß®xá²wáµvä´pá³oܯoÝ­oÜ°pÚ¯qܯyÙ¬rÓ§bÒ¦fÕ«oÖ¯l׬gÕ©e×­lÙ¬nשpÜ®pÙ®pÖ­sܱsÚ®uÕ­oÕ«mÐ¥kЦkתqÙ¬pÛ²rݱrß±rà´xß²yܳu×±pÕ¬nÚ­oÞ®qÙ¯lÕ¯kÒ«jÈœWÄM̘SË›UǘPÈ™QȘSÈ–RÈ”QÊ—PËœRÌYÍžXÍŸRΛWÑŸbצcØ¥bÖ¨cÖ¨dÔ¥bÓ¥_Ô¤bÖ£fؤiÙ£mÚ¦hÕ¥fÒ¢cÖ£`¼’eâ¬~ã¬wå­vÞ§yÞ¥tã¬sݬmà®tæ°{ã´{ç¼…íÁŒêº†ë´ê´{ãµzÞ®}ã®~ç¶|鷆纆å¶tä°uÞ¬sÝ°pÞ®zá«|â¬uà­oß±rä²tå­xè±ê¼„ì»ˆí¸ƒè»}è»}ê¹ì¹„éµ€â®vã³{í»ˆì¸€é¶{æ³xá±uæ±xæ±uæ±sä±sä°tè°pè±mç±vè°‚å±vå¯rà¬rà«mæ­mè­kâ©bÛ¤cÜ¡eÛž_ØdÕžj͘[Í™[Ó¡kÚ¨rà­sÞ®rÞ¯sâ´w߯tÙ§rÙªuØ­uÖ©uÕ¤qÓ¦jÖ®vÖªvѤoϤkЦpתxתrѧnÒ¨xÕ«tÖ«kÜ«nÝ­wܯ{Þ°uݯvß²tä¹väº}á³}ß²}Ú®vÙ®qÚ±|Û±yݱwá¶{â´uâ´|å¹|áµqà¹zâ»~à´yâ¸yæ½yåµxâ´xå¾€ç»zÞ¬tݯxå·uã¶vç·{ì·}ê¶yä·tß²rÛ©wÞ®vã¶zç¹{æ¶uáµtßµpß±qݯlÚ¯kݱpÞ®mß«iã±tâ²pá®lã±mã±tä°wç±qã­oß©jÞ¬iÞ°jß©]Þ¦ZݨcÙ£`ܧfß°oÝ­cÝ©aß«e߯aß®iÙ¨hÙ `ÛžbÛ¢aÚ VÙ [Ú¥bÖ¡]Õ Y× ]ÚœZÕšSÔ™[Øœ`ÔŸYÎœTÍ–TГSÒ™Y×¢aÚŸ[Ö›TÔ¡XØ¢\ןZÖ [Øž^ØŸ`Ù¡[Ó›PÍ™T̘XÍ–PÍ—JÍ–MÏ“PÏ“LÉŽLΕLÖXÓ˜RÏ•MÏ“LÌ‘IÊ’JÊDÈFË“RÈQÆJÈJÇŠKÆŒKÆ‹CćCÅŽNÇ“JÌ“OјWÑŸZÓŸ^Ì—YÆQÆŽQÆŽM‹FÀ†IÈIÅLÆ”SÌœ]ÏiÏžkÏ¥iÑ kÑŸiÏ¢dФfÓ§nÑ£pÎpСqͤiΠkצyÚ«tØ©uÕ«Õ«tÒ¦kТmΣuÍ£nΡbÍ dË¢gÈŸeǘeË•cÊ’^Æ’TÆ“QÆVÇ’TÉ•RË•]Í–fΖeΙhΞiΟbΟf΢fÍœcÎgÒ£iÓ¥kÐ¥lЦkÕ§pѤqѤiÓ¨mÕ¬yÙ³€Ù³}×®{جvÙ®uÖ¯x×®wÛ®s×°tÒ­xÖ«uÖ®qÖ®vÙ­tدkÓ©jϨjÓ±uÚ²}ײuÒ¯mÙ¯pÞ²{Ú´ص~Ú¸~Þ¸ീ߳}Þ·yܸ|ß´|ß´{Ù²zÙ±xß´zà·wݶzใ޻à¹|â¹}߸~Û¸ƒÝ»‚ݹ{Ù¶wÚ¹|ݳ{Ú²{ÖµyØ´tÝ´vÚ¯zݶƒã¾‚áº|ݳ{Ø­vΧiÉ¡cÊ£gΨoÔ«xÖ¬yÔ¨oÔ©mÕ­rÓªrÑ«qÕ°pÚ²xÞ·zܸzÚ²}Þ´{ßµuݳuݶ}ß·~ß³uß³lݳo×°pШlÒ¦jà²uá°qÚ§bÖ¢aÖžbÕ¥gÙ«nÕ¦iÐaÔŸcשjתjئaÖ¥aÓ¢cÕ¤\Ï \Ï¡gצjÖ§gÙ©gß«jÛ­rجoÔ¤cÉ–UÅ‘OΞ\Ô«gÛ­kÛ¬hÔ§dÖ¦gÜ«hܧiܨjÝ«fܦhاgÖ­jÖªrÛªpÛªjצjبgÖ§eÔ¢bÕ¥`Õ¦dÖ¥kשkÕ©iØ«iØ«jÖ£eÓ£hÒ¦iÓ¨gÒ©kÕ¥kÕ£jÔ¨jÓ¤gÓŸfÖ¡iÒ¥cÐ¥^Ö¥cئjÖ«oÙ²qÛ±u×­rÙ±kÛ´qÙ³nÖ«gÒ§hÓ©eÇ›UÀ‘NÅ—TÕLÅKÇ’NǘOÇ•QÈ“LÊ–IɘMÊ™VÊ›R˘QΕZÒœcÖŸ\ÒžRÏ WО_Ñ›[ÐœZÐcÑždОdÐœ_ЛVЙXÌ•XÏ™Zº’`ä«qã«tå«pæ¨má¨oà¯oâ±rä´xì¸~鹆鹂붂éµ|è¹sè´yã­zâ®yä²|ä³uæ³tá«rß©qß©uݨoß­là­qá¯på«ræª|곂í¼ì¿Žî¿Šî¿‹ðÊñÁ…ì¹~ê¸€í¼‚éµ}ä²|趀뼄컈쵂ë±zè°té¯pé­wë´wé³jê°kí°oì²pí¸zï¹zî²pê°jã¬gà«iã°oæ°qä­pá¬eÞ©eئkÛ¨jÞ£kÑ™^Η\×£hÙ«kݪoݬuÜ«uÛ©uקqÕ£kÕ¡nÔ£oÑ£iÏžfÑeÕ¡iÔ£qÖ¦pÔ¢rФsÔ­qجtØ©qÔ©gÓ©hÚ­qà¶{â¸~åµ…æ¹…ä½|伂弄亄㺈俄á¹}ܵݷ~Ý´vÞ¸{áµ~ܳ|ݺ}â¼z߸zỆ濂å¼z軃鼄æ¹|æ½yç¿{è¹€á³z߶uã·så¶sç¶vç´vå·yç·xâ³uݱqÞ¬rÞ²{æ¾{ç»sä¸sâ´q߬tÝ°vܲrâ³wã±vá±râ¶xã¹yâ²sá²váµuâ³kà³oܯnÛ±kâµtä±tá®mß±mÞ°oÞ®oãµwæµxß®m߯mä°râ¯oà±pߪlÞ¦kà©lݦiÙ¢fÞ§jáªjÞ¨aݤ[ݦ^Þ­hÞ©aÙ¤\סbØ¡]Õ¢UÔWÖUÙ YÙ aÛ¤]Û§]Ûª`Þ­bÞª`Ù¦^Û¤bÜ¢cÙ¢\× VÖœOÒœRΘUΔMÉFÊ“LÓ™QГMÏšUÖ¡[Ô™RÒ—QÑ—RÏQÌ•TË•MÌ‘KÊ“TÆ‘KÆŽEÊQÍNÎŽEÈBÄŒBÉEÇŽHÅ‹JÊHÊ“OË‘YȈDÁ‚>‡DÀˆ?À…:ÈAÄŒDÅ‹KÆŒPË‘QÊ‘QÆ‘S͘ZË™]Çš\ÍšbÏžeÓžbÓbÍ—YÊ“W˘`ÎœiÓ¨kÕ¦oÕ¦vÖ¨tÑ cÌ—[Å–\ÓWÆŽTÅ’QÆ—WË•YÉTLjLÅŠJÁ‹KÅŽNÅŒYÁŒOÅŽLÈVÅRȘVÌœ]Í›^Ì—aÊ‘^ÈYÆWÁTÑYÇ”WÆ‘TÈ“XÍœ\Ñ^Ñ›dÏœdΠdÎ¥mÔ¦tצvѦqÒªqØ«uÔ¨uÕ©uÛ¬pשoУlѨnÖ­wÖ­rÚ°sÚ³{Õ®vÑ©rÒªu×­rÖ¯nÍ¥kΣhÕ¬lÙ¯uزvÙ¸~Þ¶‡ã¸|á¶yܵ۹‚Þ·zß·zÚ´Ù®{Þ´yܹ€Û¹~Úµ{Ù¶|ݸ~Þ¶ÚºÚ·yÚ³}Ú¯€Ý®{ܲvÚ°{Û¬wÙ¨uÙ±vÞ·wÔ«qÕ­uß¹|Ú±uÕªtØ®sÒ¨jÈ›bÈž`ÊbÈš`ÊžbɘgΟi×®oÙ±uÚ­sÔªqÓ¯pײuÙ³yÖ³xÓ®qÖ­pÚ³xÞ²vá³wß³uß²tà´uÛ±oÓ¨hѤeØ®lÞ³qÛ«dÑŸW˘TÓ¥]ܵo׬hÍš^˘]Ëœ`РaÕ¢`Ò¡^ÎWÍYΚZÕ¢eÝ­pÛ«iبfÖ¦kÖ¨lÙªhئeÍZÄ–OͤaÔ¯qÕ©lÖ«cÓ¥\Î^Ó£aÓ¢_Ñ ^ÕŸ]ÕŸ]Ô¡c×£`Ø£]Ù¦fÛ¥iÙ¦iÖ¨bÕ¦aÓ¥fÕ¤iÙ¤dÕ¢^Ó¤fÓ¢fÔ `Ó ZΛTËžUÍUΖPÏž]УbÒ bÖ¦iئ_Ó WÑšYÏ›SÌ›QЙTÓ›TÎœZÕ¦fÙ­hѧcÔ©h׬mÓ¥jÏ¡`Ó¢aÒ£bÉš[ȘXÊ›UÈ›QËšUÇ™VÅ—PɘNÌ™UÌœXȘTÌ•RÉ•QÆ’LÊ–PË›TÊšNÆ•LÇ’NÈ”UÆ•PÈ–PÍœWÍšSÉ“SÉ’T̘UÑ]ÍœWÊšV²‘^ê±nì·rï³së­rá¯uä´uè²vä²vã²pã®sæ¯{ç®xä®ræ°vëµ}èµ{ä¯zå®|æ²vä«oã¥oáªtê²{í²zå¬mç­tê´}ê¶yí»wê¼vé»|ìÀ„ïÂ„î¾‚ìº†îº…í¼…ë¶€ê³~êµ~ëµ~í³€î´yï¸zð¹ï¶zê¬sè«uð²xí±sê­kç¬kè±tìµvëµpë¸qí¶wì²vì³væ´tà®oà¬oå¯sä®wâ«tá©kÞ©jÞ¬mÛ«oÓ¢jÒŸc×£dÛ¤gÝ£jÚ¢gÓ cÒ¡dПdÑšcј`Ï•ZÌ”YË—XÍ—YÏ™dÓŸjÔ¡fÒŸmÏŸnЦlÓ¬rÕ§nТkÔ¨uß²~ä¸~ãº|àµzàµ|߶~ݱ~Þ±}߶~Þµ„ᲂೃܶ}Ý´yÞ¬xÚ²yÚ´|Û®tÙ¬oÙ¬vÚ°uݳsàµvä¸弇伂åÁ€äÀ}䷃渄è¼}å¹~â¸zã¶rä¶{å¼|ç½xä¶{à´yá·yÞ¯{Ü°wå·yæ¶|â»yÝ´qרs×°vÞµvå·xå¹uá²tä²uã»uâ¹qà³m߯qݬoÙ¯oرqÚ®kà·xá¶vܯhßµoàµtÞ²sä¶yç¸yâ³vâ°yâ²sßµpà°mߪdݯhß±iá­eÜ«hÜ­ká®jß­iÜ©fÚ«gÜ°oÞ®lݨhרeÔ¢aÖ¢_Ú§bÜ«hÙ­hÛ¨hÛ©hÞ²mâ²ià®hÝ«eݧbÞ¬eÛ­`ܦ]ݦ_Ù¨aÚ§_Û¢VÕ£OÒŸIÔŸT×¢_Ø¢VÚ¢]Ü£dÖŸWÓœQЙPÒ›UÕ YÓžTÑTϘOÊ‘NÇ‘PÍ–QИSÌ•TÍ–NÍ—JÌ“OËIÇŒCÊMÌŒKÉŠFˆAÃ…:ÇŒ?ÇIÇŒKËMÌ‘RÊ”NÎ’IÊNÄŒLÅ‹JÇNÆTÆUË–VÍ–SÇ“QÅRÂŽH‹GʼnMÊ“VΛbΟdÑ¡aÎœZÈ’SÆMÀˆK‹OÁ„GÂ…DÄ‹MÂKÁˆIÀ…M½†CÉHÅŽW‘TŘWÈ—ZÌ•[̘_Êž_ПbÍ›eÊ™c̘^Ì™\Â’XÀ‹PÅJÂŽPÂŽXÆ‘]˘dÏ_Íœ]ÍœaÎœdРbÍ¢dÊœfËš_П`Ò¦lÒ¥jÕ§lجnØ«nÔ§pÔªgÓªhשq×®wزxÖ¬uСqÑ£lרmÓ¦qÉ eÅŸ`˨lÙ¯{Ú´|Õ¯w×­~ܶ~Û¶{Û´wÞ¹xÜ·yÚ¶}ÚµÔ²nÔ³mض}Öµ}Ò­vÕ¯tÕ±rÖ¯uØ­pÕ¬pÕªpÖ¦sÓ¨vÕ©vÙ«uÕ«nÓªpݲxÚ°pѤgÕªlØ­lÍ£^Ì¥_Ø®hÜ­mϤeѦcÑ£iÅ›bÊždÍŸkЦmÞ´râºzÞ¸wÖ®sΤsˤnШpÔ«uÕ«tØ­tÛ°{Ú³~ܳwÚ°sÙ­qÛ®qÛ®uרuÓ¦oÖ¨nÙ®pØ­mÑ£aÍ _ÕªgÛ¯mשnÕ©hÒ¥_ÌŸ]Ρ\ΞYПZÒ¡[Í›TÏœYÖ§iÙ¯nÚªhبeÔ£aÓ¢_Ú¨bØ¥cʘXÑLËŸ`Õ¯nÔ¦b͘WÅ•TÇ”SΛ[Ñ ZÔœWÕŸWÔŸ\Ö[Ù¢\Ú£fؤiÛ­nݬkÚ®fØ°dØ©bÕªfÖ«lÖ¤`ФbÐ¥gÓ `ÑŸ_Λ_Í™\Í\Ο_ÑŸ\Ó¥]ئ^Û¦cתcÑ¢WÑTПZÍVÍ™TÍœYΛTÓŸ\Ó¦fТdÔ bÓ dÎœWΙWÓ¡_Ó¥VÏžYО^ТTÍ¡UÍœ[ΖVÌ™TΙRПPÏ¢MÏQΚRÈ–PÉ•T̘TËœQÊ™OÈ”KÈ“NÈ”OÅ’KÄ‘OÇ–QÇ–SÄ’WÆ“VÌ^Ñ¥fΣcУa¶™_í³tì²vê°tí´|ê³zä´zá²và©náªhä©kç«næ´nç²qì³pê¸ué´vê²xæ°tä®kç«mä¦hâªjë·uî¸tè°qå®pæ³oé¶vï»|ë¶vä¬sã°w귀ë·ê²{ê´zèµuê¹ví¹pð¹sô¾}öÂ}÷Ä}ô½{ñ·sé±nä©dë°hí±oèªoå©mê®mñ³vð²rë³mê´mç²mê³oê²nß«iܨià¬sã±xá±vá¬hà¨iܦnÙ¦oÖªmÖ¨mÙ¤gÚ¤dÚ¢dÚ¡VÖ¤]Ó hÔœ`Ó™^Ï–ZΗVÍ—XÏ•WÑ—XÓ™`Ó˜bИ_Ñ™`ÒšfØ¢mÛ¥lÙ£nÛ¦và´|⻀á¶{â³zßµ|à´|ã³xß³{ܱ{Þ²}â´}â¸vß¹vàµyá³yÞ¶xÚ°yÞ­|ß°}Û­uÙ¬hÖ¬nØ«vÛ¯sÚ²zÜ´}ݺyݺ}ß±yß³vÞ¹}Ü·zá»}ã¹à²{㸀但â¹{â¸uá¶{Ḇṃ޴xá³zã³vÞ²yÙ°xØ«rÙ¯u߶zâ¹uß¹zà¶|à²{á¸~ä¹}ß³xÙ°vدyØ°v×®pÖ¬pØ­wܯrÛ­nÛ±z߶yá´sã¹zã»~â´yà±tá³xß³vÙ¯k׫jÛ­pݱtÞ³vá±pß­hÜ°cÜ°nߪsá¬kà®mݪoÞ¬lÞ«gÙ§iÛ§hÞ¨eÜ­hÙ°hÞ®ká±máµmà¯qà­xÞ²vݬkß«eÛ¬dÚ©`áªfã¬kà¬hܧbÛ¥d߬j߯nà­cÜ«cÞ©oܦkÙ¤aÛ¥iØ¡gÖ¤^Ú¥^Ù¢`Ù¥bÕ YΖPКZÑž`ÑœYÓœSКWÖ¡cØ \Ñ—UÑ–ZЗRÌ’MÌ‘OÈ’NÌ“TÑ”TÑ–UÔ—VÒ–QΘSϘWΖTÍ’OÍ‘PÈRÈ“NÊ“SÊVÉWÈUÄŽNÅKÈNÉ’VÉ‘VÆ‘XʘY̘]Θ[É—VÆOÅŒMÅŒOÅŒOÆŒIʼnLƉOʼnHÃŒHÄ‹H†DÃŽHÆ•PΙ]ΠcΠdÕ¢iØ hЙZȘVÊaÏ¡a΢cÑ¡bÒŸ]ÍžbÌ™aÌ–^ÍœcÍŸbÍ¡cОfÍœg˘bË–YÍ™_̘bÊ“XÇ’ZË—bÑŸfÒ¡eÔ¨mرvØ­vÓ¥lÒ¢gÔ¤g×­kدoÚ¯uÙ­uÒ¥lѦoÔ®wÓ¯sÓ«sÒ¨xÔ©tÚ¯tܱ|תuÒ¦nÔ¬tÖ®xدxÚ°~Ù°yÙ±tܲyÖ©qЦnÔ«sÕ¨uÒ¦nϤfÕ¤jÙ©tÕ¨rÑ¡hÕŸiסlÑ£bÏ£bѤgÑ¢cÑ¢i׫hÙªaÓ¢fÓ©pÔ©mÑ¢eרkß´wÞºvÙ°pØ­vׯqÔ¬nÚ±wÚ®wÙ¬vÚ³€Þ¶ß´yÛ­qÔ¢mÍ¡pÐ¥lÕ©pÕ®xزwÙ²tÛ³sÛ¯tקoÖ§jÙ­uÛ°tÛ­l׫q×­q×°qÚ¯sØ«sÖ¨jÛ­kÛ°qÙ¬sØ°vÓ¬pТdПgΠgרgتkÏ¡^Ѥ]רdפbÔ¦bÔ¢ZÏšTÍ™_Ö¡`Ö¤^ƘR¾ŒEÉ_Ô®kÑ¢YË–OÈ–VÏž^Ö£aפbÙ¢`Ù¤bÙ«bÛ«eÞ­jß²ráµtâ·wß·vß³vܲrÙ¯kÙ¬pØ­mتgÖ©kÕ©lبfשgÓ¨eÕ¦fÖ§cÕªeÙ¬kÙ«lÛ­mÜ­lתdת^Ø©bצaÖ¦cÔ¤aÖ¦]Ö¤ZÔ£]צfÖ¥hÕ¥_Ú§\Ô¡ZРY×¥^Ö¡[Õž[×£]Ó¢YÓ XÓ¢\СVПRРTÒ¡UÔ¢[ѤaÑŸYÑZΠ\Ñ [Õ ]Ï ZÌžZÏYÍšXÇ–UÊ“UÏ–VΙPË–SÍœ`Ô¨jÙ©gÙ¦aÙ¦^¼’\è³mè°jê¬fë±fê±mç«nç¬oæ®mè®lè«qæ®qè³së²zï³vñ¶oí³xí³vì±rê±uè¯qç«læ«oè³së´pç¬næ©rãªqã¬tç³{ç´yãªtã®uä¶xçµ{ìµ|ë´rë´nì´vï»{ó¾{ö¿{÷ÇzöÄ}ö¿ò·uç®nà¦lÚ¡bݧiæ¬rç±så³sä²pä°pâ­hâ«dâ­hß®jß­mß­mܬfÒ¥cÒ¥jÛ­s߯xÝ®s׫g׫eÙ©eتjÖªjתlÜ®tÞ¥j×_Ù¤jܨiØ£]Ö ^Ôœ_ИYÏ™XϘWÑ—XÒœ[ÒQÌ›UÏœ`Õ£fØ©oÚ«qרsÙ¯uÞµ|Û±yÚ®vÚ­zÜ®wÞ®vÞ°xÝ°uݯvÛ­wÛ²vß´rÞ­m׫pØ®tÞ°zÞ°{Þ±}߶{à¶zá¶Ý´{Ü®zÛ®yÖ²uÚ°tײuÕ±pÖªsÖ¬xÖ­xÕ®{Ø´vݵzÛ´€Û´€ß¶~ܶyÜ´|ߴൂܲ{Ù®vÝ´{س{ׯvÚ²sÚ²vܲ}Þ²{Ù°wÙ±vÜ´{Ý´|ß²{߶|âº{à¹~ܶyݳyÙ­vØ®vß´{Þ´vÛ°và´t߸sݳyá²zá²xá±vß²yà´xâ±rá®uÝ°xתuÖªoÚ®sÞ¯nà¯eÞ®mÛ±qÜ­hÛ¨fÙ­mÛ¯iÛ¨kÜ«pß²sÜ°oתnרkÒ§bÖ©fà­qÜ®wÚ«oß®nÞ´rÚ­uÖ¥zÕ¥m×­hÞ²rà±nݯdÙ«hÛ­eÞ°bâµpà±tÞ©oà¬lß­hܬfÞ°jÞ®fÜ©gÚ©hب`Ü©gÙ¦eÖ¡ZÖ¦ZצaÕ£fÔ¦\Õ£^ؤkפgÓ¡`Õ¡\ÓžYÓœZÔ]Õ›[Ô\Ô ]ÖŸ`Ôœ\Òœ`ÑŸaÑŸUΙO͘TјVÑ—TΔXÎ’VÍ–UÍ–PЖOΘVÍ—UÌ™OÏ™XΖZÌ–YΙ\Ï—VΕXɘ\Ì™\Θ[È“XÅ’OÈ“PÌ”RÊ’NÆ’SÌ”XÉ“PÅIÉ‘NʘQΛTÑœaΟgÓ¡aÏ–ZÄŒNÅOÊ“UΚZÏœ\ÐœTÍšUÊ—]Í™\ÏŸbÑ gÑ¢gÏžfϘ_Í™XÇ•WÉPÊPÅRÅŽQÈ“RË™\ОeÖ¡mÕ¢mÔ¤pÔ¤sПeÍœ\ÒžeØ¢kÓ¨nÓªmÕ¦i΢hЦlÖ­tÕ¬sÕ®qÚ®xÔ«yШsÕ¬rÒªoѦjÕ«vÕ«yÕ§oШjФjÒ£mÒ§pУfË[È^Êš^Ì™`Íž_ПeÕ¤hÑ¡eÏžeÕ¥hÕ§nÒ¢gÎaÍ›dΙ^Îœ[Õ¨fØ­lÔ©jÕ©sÓ§pÓ©j׫oÛ±vß´yÙ±uÖ®qÖ­u׬sÙ®uÙ±xÙ¬uØ©rÖ§uÙ§wÚ©tÕ£nРlФlÓªlÖ¬sÙ­uÖ«t×­wÙ­vÚ¦pÛ¬pÚ²uÙ¯pÚ­oÚ±rÖ©sÖ¨nÚ²uÙ±oÖ­hÙ­oØ©qجo×°pקgÔžeÓ¢fÔ¨dÙ¨jÚ­nÓ¦bÒŸ[Ñ¢]Ѥ\Т]ΞVΙXÒ—VÓœVÑžZÌœWÆ•QÊž_ѧmΟZÈ“RËšaТgÕ¦fÖ©bÓ¦]Ù¨cÚ©kݬgåµmåµvå¸xå½xÞ³uß±yÝ®uשhÚ­eÚ¯j×®oݯmà²hÞ±lÛªjÙªfܯfÙ¯lÛ²ná·lâ²nß­uݲqקaÕ¡cÜ­gÔ©cÓ§`Ù©fÙ¨gÙ©bئbÙ¥dاbרbÛ¯e׬]اZÜ«fÚªeÖ¥bÖ¦hا^Ú¨WÙ¨_Ô ^ÒŸVÖ£ZØ¥`Ó©]Õ¦[× ZÖ§_Ö©bÕ£aÙ£bئ`Ô¥eÔ¥gÖ§ZСSÉ™XÍšWÐœUÑœ\Ö£cÙ¨d×¥fÓ¡dפe»“^ê¯gé­jè®në±mî¶mî³sì¯vë¯sè²tê°pç¬qê²wíµrð²qñµxð¹sò¶rò³mí³lì²sí¯oì³mî¶rî²rì°lê­pæªsã®té°|é³{é´qê¸uê¼î¸î²yê°që·uïºxî¶vîµvîºzñ¿öÀ‚óºyè°l߬mÙ§oÖ¢jÙ£eÝ­jâ²tãµxå´ræ®kߪnئsÙ¦pÜ©kÜ­nà±nà³lØ©gΠfϦsزxÜ°qÕ¬pÖ±rÙ«t׫qÚ­iܬoá´tá°pÚ¨pÞ­pݦkÕŸfÙ¤`×£cÓžcÖšYÔ•YÑ™`Ò¡bÔ£eÓ dÕ¢eØ¥lÙ­pÖ­mÖ§lרpØ©rשmÒ¥gÓ¦lÕ©vÔ£lÔ dاmÜ©pÙ¥jרoפoÔ¢iÓ¡hÕ£iÛ¬oß±zàµ{ä·|䶀â·{ã»|廄ᶀá¶~Ḁà³{ݲxÙ±zÙ¯|Ú®zتsÖ¨uØ©zÙ«Ú­~Þ±|Ü®u׬uÚ«tÚ©p΢lϦlÜ®pÛªzÖ®}Ù±zÙ¯uÖ«sתtÔ«rÔ¨rØ«p׫oÕ«qرnݲoܳyÛ´}Þ²|Þ³xß·sã»väºâ»|ä¼|å»~ä¹zâµ{â¹}ä¸xà²yà¶xã»qã¶tß³zܯvÛ®ußµrß³oÞ°oݲjݲoÛ­nרfÙ­iÜ­pÝ«nÛ³hÛ´oÚ¬sרoÕ«jÓ¥eÕ¥hÙ§oبpÔ¬mÖ­m×­pØ©kاhÖ¦fÕ§nÖ­qÚ²sá°sÞ¬rÛ°rßµnÞ³qá¯tá°pݲná±uà®sݪm߬lß®i߬gÞ¬gà®mà«jÜ©eÜ©eÙªcÛ«gÛ¨iØ©dÙ«hÙ§fÕ¡aØ¡aÚ¤_Ø¥eÙ£bؤ^Õ¤bÕ¦fÕ£aÑŸeÖ¡eÙ¥fÖ¢fÓž^ÒZÑœWКYј_јZЛTÍ›RК[Ò™]ΖRΘTÑ¡YП\Ñ™^Ïœ\ÍœWϘXÏ–VјVÎœVÊ–OÍ”VΙTÍœSΖ]Ϙ^ÑœYÏ“RÌ‘OÌ‘QË“RË–VË™Y͘UÍ“VÇSÂŽKÑJË’SÒ™_Д^ËWÈ’OÈNËWÍ™[Ì™UÉ”VÊ’SÍ”UË•WÊ’LÉ’QÉ’QÉ’QÅUÈ“W̘W̘YÓ_Ó¡bÓfÕ hÔ¡eÕ fОiÍšbȘUÈ–QÈ•VÊ•VΞ]Ò©jÕ¥mØ£sÖ¨uÒ¦mÒ£lÕªpÓ©lЦnÖ¬vÕ¨kÏžhÊ›cÊ–YË–X˘\É“`Ä’ZÉ”T͘WÈœ_ÍžaÒ¢bÓ¦hРdÔ£cÙ«jÕ¨mÕ©pÔ§rТnÏ¥jÒ¦jÛ¬tÛ¯{Û®vØ«mПbÓ¡hÖ¦rØ«pØ­uÕª{Õ­r×­nØ©oÙ­qØ°wשnÔ¥hÑ£hÑ£hÓ¤hÒ¤gΠaÑ¢fÔ¨oÓ©nÕ¨pÔ¦nÕªiÛ°rÜ®rתm×­mتoÚ¨mÙ­hÖ¨jØ¥oØ­qתiÕ¢bÔ£cÒŸdÒ `Ó¦_Ѧ^Ѥ_Ô§eÔ¥gÕ eئdÔ¥^Ó¡[Ñž]Îœ[ÐœZПYÓ ZÔ¢]Ö¥]Û©bÙ©fÍšZÈ™ZË _ǘTÇ—VÏ¢fÕ¦dÙ¬dØ«aÖ§_Ö¨`Ò¢\Ô¢[à­kä´xâµr߶kÚ«jß±uà¶zÙ®nÝ°lݱnÛ°uÜ´uܱmݯlÚ«pÖ©hÚ¯fÛ¯nÝ´và¸vÙ¬pÙ«kرgϦ^Ó¤dÛ°nÕªjÕ¨iØ°kØ°gدk׬nÚ¬iÚ¬fÝ°jà»kÙ±gÚ­iÞ¶jÙ¯lׯlÚ²jÙ¬iÚ©hÙ¨b×¥YÙ©XÙª`ÚªhÝ­hÞ°kÛ±hÛ®dÚ¬k׫j׫b×¥_×¥cتeØ©`Ø¢XÓRÍŸWРTÕœPÖŸZצhÙ¦eÖ¢]Ö¢\¸“Rì­tì®pì±oî³tð¼qòÁnñ¾uï¹vë²xí´|í³}í³}ñ³rð¸rð»zñ·uòºuïºrí²oî²rí¹uí·{ñ´{ð´sê³oí¶uñ¶xí²në³oíµyð¸yò·wñ¹{î¹që²jä©på¬oì²rè°nÝ®lâ²së¹|ì¹uå°mÞ¨mØ©tÕ«tÞ«yâ­uÞ²rÞ³vä²oã³vã°yá®nݳqݱuß­vß²y帀è¸~Þ¬qÌ¡hʤnÕ©qÛ¯rÜ®vÚ­{ݬyß±yݶ}àµ|çº{ä²xà«và±qÙ©dÑŸaצeݧhØŸbÓœ[Ó›]Õœ`ÔŸbÓ bÓ ]Ò `Ò `Ñ¥dÒ¦dÑž]ј\ÏŸbÐa̘[ÈšYËšZÉ–[ÌšcÖ§jÙ°mÛ¬pÞ°qÞµvÝ°tפkÒ¡o׫uÞ±{ᶆã¹~à´vݳ{Þ±|Þ³„áµà±yâ±}áµ{ݳzݲ}ݱtÛ°tÛ­vÙ­v×®rÙ®rÛ±y߶yÚ«mÔ kÖªo×­rÓ¦oЦlÖ®sÖ±xÖ­uÕ©nÓ¥rÔ¦vÖ¦nÒ¤iѤhÓ¥jÔ¥sÖ¥qØ«kÙ°tجuدvÝ´}Þµ}ݵà¶á»~â»á¹ß¶â·€â»~æÀ{æ½ã¸€çº€ç½ƒã¿~æ¹}áµ}Þ°vä·|âº|áµyâ·xã¶và²wܲxâ¶rã´rÞ³sà²sá³uݲpØ«nÔ¨kÒ¥dÓ¦hÖªnÕ­jÓ©jÔ¦mØ©lܯo×±oÙ³oܯkצkبqݳrÛ°zÛ¯yÞ¶pà´qã¸vß²jצeÙ©nݬjÚ¦fÙ¦fÜ©eÛ®iÚ¯eÞ®jà®r߬pß­jÞ­hݨmÙ¤jÚ¨jÝ©rݨqÛ¦fÙ aØ¡aÛ¦bܨcØ¥e×¥jÙ§jئbÙ¡`Ø¥dÙ©hÙ¥hÕ¡dÕŸ_ÓžUÓ T×£a×¢bÕž[ÒšXÔ \Ö ZΕRΕVÔœ`ÔŸdÑ›[ÑšTÏ›]Ï›^Ò™WË–WÊ’RΕUÒ^Ò™ZЖSΖZΘ\ÒšV͘QÉ‘LÆKÆOÇŒNʼnKÅOÇŽKňJƉMÈŽMËSΕVÏ–VÉ‘PÈ‘MÇŽNÄŽPÈ’KÈJÆŒKÅ‹HÅ’MÊ–RÉ”QË–NϘUЖQÉ—KɘNÉ—PË•PÍ•WÌ™ZÊ™Z̘ZËš\ÍŸ`Л]ÆMÁˆDÂLÑSÆUÇXʘaÊgËœeÎ_ÐœaÍšdÒ¤oÒ§nÉ›YÌ›`Ë›aÅ“TÇŽTÆŽUÆ’UÊ”[Ç—ZÇ“ZÊ‘[È‘TÇSÊ–XÍ›XÎœZÍž^ÏŸ`Ò£kÒ§nÖ¦hפhÒ¤gѦmÔ¦uÔªvÕ­qÔ¬tϦoÍœ\Òš]СfΠiÑžnÏ¡lÑ¥mרpשpÖ«qÕªm΢eÌ^Î_Ο_Κ`Ïš^Îœ[ÐœcÕ¤jФ_Ò ^Õ¤cקmשtÖ¦iÖ¢fØ©nØ©m×¥eÕ¨hÖ¤nÖ¡eУ\ОZÓŸ_Í\Íš\Ï\ÎYÒš\ОaÑ¥cÒ¤aÏ¡_Õ¥gÖ¢bÖŸ\Ô¡`Ï ZРWÕ¤]רcÙ¦gݪlá³pâ¶sÓ¦cÉ™]Ç›Z¾‘IÁ’PË¡aÑ¥eÓ£^Ò£Vר]Ù«dТXÍ™TÕ¥dÙ®eتfØ«lÙ¬eß²qâ¶t߯nÝ®sݲqÝ´pÞ¶tܲuݳsÝ´oÚ°oÚ­m׫oÚ­nÚªhÖ¤hÓ§kÓªeÕ©gÖ­nÛ³tܵrÛ´qݯuÚ®wÙ³sÛ¯jÛ°nÚ°mÛ°oܶvÙ®kÚ«hݲpÜ®mÛ­iÝ´kÙ®dÓ¨aÕ¨gÖªfÙ¬fתcשcÚ¬mÝ®mÞ©lÞ¬pÞ¯mצfÔ¤cÔ§^ΠYÑ `Õ¢eÒ _ÎXÏ¡VÕ¤RÖžZÔ¡fÚ«lשaÒ¢\Ö¥^¶•\ê³nê¯ní°sî´uó»‚ô½ó¼wô¹zò¹yò½~ó½{õ½vô¹{ñ¸vòºuò·{ð¶}ì´vë°pìµtí¶rí²wí¶vî¸jí³lñºuðºví¶xì¶xð¸yñ¶zî´oí´pë±vê²qæ®hç²kî¸rï³nå¯nã¯yå¶xäµoݬkØ©mÙ©vÝ°yå¶yå´và°và°tà²kà°fâ¯hâ±kà±kݱlá²qâ°vâ¹€èÁ…â²{רvÑ©tÖ¬nݳmݯsⶄ轃è¸{æµzã±{ã´yå·}à°uݱm߬rÙ iÚ§nݨlÖœ\Ô`ؤiØ¡aÖž]Òš_ЙUКPИ\ИZЙW͘WΔ\ÓšbÏ›\Í“\ÍšbÑŸcÖ¡lÚ­vá¶åµ{ä¶rå¹væ¾~è½~á²xÕ«pѨiÓ¦kÙ®wݳyÞ³uݱyÛªtÜ­tß±wÞ¯vá³sä¶xà²x߯tÛ¯tÚ³vܶtܳwܱvÚ­tدzÞµ}Û°qÕ¦kÖªrÛ¯yÚ°|Ù´yسtÚ±xÞ±}ݬrÙ­qÛ±sÞ°sܱzݳà±{á³}߶‚Ý·|à¶xÞ¶y߸yå¸z伅濄꺀庅á¼zß´~޶㽃争伆㹂â¶~å½…çÁ‚æ¼|潃ểà´zá±|á²wå·{æ»}ã»vã¹xæ¸|å»}ãºá¶zâ¸x滃潄äºÝ±yÔªqÕ­qܳpÞµ{Þ´vß³sà»{á¼}亀åÁ‚ã¼}ß­sݱqÞ³xÜ°yÞ»}滀ä´|á¸|à¶rÕ«jÖ­vßµzÞ´vÞ³tá´rßµpÞ²oá´zá·xÞ²kß®pâ­tß­iبgܪjã³lâµnà¯nݨiÙ¥dÝ­c߯hà«hܨfݪcÜ®`Õ¨`Ù¨fà¬jÙ¨f×¥aÙ©fØ¥cÙ¡bÙ¢e×¥a×£aÙ¡bܤfÚ§bÑZК_Ø¢eÜ¥cÖ bÖ _ס\Ôœ_ÓZÓŸZЛYÔŸ\ܧcÖ¡cÓšYЛZÏ cÔ `ÒšXÌ•RË’NÌ’MÊOÈ‹RÊMÌŽGÈŽLÇ–VÍ•WÍ’OÍ™TИ]Ò“YЕXÌ’UË‘W͘TΓOÌNÈ‘J͘QЖRÍ”MϘP̘ZË›YËœT͘SÌ“OÇ‘OÊ’TÌ‘RÉ“OʘQË”TÊ—RËœQʘQÈ”MÈ–QË™QÉ–OÆŒRʼnUÉŽWËVÈTÊVÍ’[Ι]ʘ`ÂZÃWÃŽQÀ‹KÀŒQÃVÉ”RË–QÌ”XË‘ZÉ’TÇ‘SÆŽRÉ‘WË’bÎ’ZÌ‘WÌ–]Í›[ÍšWÑœ\ÏŸaÏžcÏmÓ¢qשoÕªmÕ¦gÏœ^ȘXËšWÍ™ZÍ™^Ëœ_ËXÒ¢bÓ¤kÔ¡cÕ¡cРaË™Z̘WÎœZÏ™XÌ—RÊ–UÍœ^Π^ÒZÑœ]ÑŸZÕžbܤlÛ¦iÔž_ÑbÑ¥fÓ©bÙ¦gØ¢jÔŸcÖžeÑdΚUÐœUÐœYÏœYÒœZÑŸYПZÓŸcÚ«hÙ¬cÕ¡cÙªlܱoÛ§iÙ¥eÓ§hÓ¦gܨbÛ¬gÛªlÞ¯oâ¾wæ¼xÕ¥fÈŸhÅœ`»ˆH¿ŠQË›aË›WɘRË›RÑŸUÕ¥]Ö¨\Õ¦^Õ¨hبeשbÚ­hß­pã³vã·â¶~á´{áµ{á¶~ß´|Þ´yݸ€ß·zÞ°uÜ°sÙ¯sÖ«pÕ¨fÓ©mØ«oÙªjÚ¯oÞ³xÞ²rÞ²pà³rÞ²pÝ°oà²n߯rÚ¯zÚµtܱmÞ³oÛµmÛ³rÞ¶uÞ²oÞ°oÞ³mÛ­fÕ¨eÖ¨h׫fجeרfÖ¥bÕ¥dÖ¬cÙ¬hÚ¬tÛ­oØ«lÙ¨iÓ¢\Èœ[ÉždÌŸcΞ`ОWÒ£[ب`Ù£XÙ¦`ß­nÝ­i׫hÚªg¼”Xæ­né¯kë¯jè®nëµqî¶vñ¸zò¿}ò¹ò¸ô¿€öÀzô»só¹ròºrðºyé´uè­jç²néµqè¬må­mé²ní³nñ¼tð¼oë¹në¹uí¹uí·vêµxéµyèµwåµxé´vé´pç´vî¹|î½ï¼븀æ¶}â¶váµxàµwÞ²qà­tâ¬vÝ©pÛ¨lߪiÞªaÚ©]Û§`ݨbÝ«cá­qÝ«uß±}织åµ|߯tÕ­mÒ¬lÚ³vß²xã¶{庀布æ¹ã´yâ±xä°tß«nܨtã¬oß«jÞ«làªhÔž\Ðœ_פd× YÔšZÕZÕšVÔ•VÓ–[Ó˜XЙWÍšVΘYÕœeÔdÒ jÖ«vÛ±uã¶}ä»~áºyâ¶~ܯvÚ¬uâ¶|çÀá¸|׫nØ©mÔ£jÓ§tÞ±â³{â³uá«yß±yÛ²qÛ«uീâ»}ã¸~ã¶|Þ²xÞ°yݳsÙ¯v×¥rÓ¥nÔ¬rÙ¬yÙ®zÕ¬uרuÝ°{Þµ„ß´}ݲ{ܵ~ß»~â·‚á´}â¹zâ¼ä½‡éÁ‰çÅãÁyäÁä¿€ä»zä»|ã¹áµ}Þ¸ä¹äºàºà²}Ú±yڵൃߴyÛ±}Û±ܲ}â³|à®yÞ°tݶvݶ|Þ²{Ù¯tܯoâ²xã¹ã¹~á³uÞ¯t߶xáµuß°mݳmâ·{ä´€Þ³wà¶vÝ°wÙ¯u߶xã¹{â¶z亀ãº~߸}Ḁ廀å¿{â¹xá³vݲtÚ³và½{çÁ|ç¹|åº}ä¼á¶}ßµá·à²{á²yà¶vÞµvá²qß³qܵqÞ´jà²oà°tá°qÞ¯tá³qß³rÞ®vá¯tß°sݯr߯qß°oܬoÔ¤gØ«hܲjÙ¯eÝ°hß±rÙ«iÙ©cÝ­mÞ¬lÚ¥eØ¥hÚ©jÛ¦eÙ¥gÜ©kݬjפeØ¥bݬhܬnÛ«mݨhܧbؤ`Ø¢dÙ¢aס`Û¦gÝ«jÓ `Λ[П`Ò£cÓ£bÑŸYÏ™WÍ™UÍR͘MË•PÍ•RÍ•OΘTÓœZÒšWϘYÔbמcÖ]Ö¢YÑŸ\ΚZÑšYÓ™TÑ™VÒœYÕšSÍ”LÉ–QΚ[Ï^Ñ›ZΗ[˘YÉ‘OÆRÌ“UÏ•VÊ–VÍ—NÍ•OÏ•WЗUÏ–SΕQΖQÑ›WÑœSÍ–RÆ‘NÅŽPÅ‘WÅ’TÊ”TË”RÉ‘IÈKÆ‹PÈLÃŽJÄŽHÄLÊPÇ’QÈPÉ’TÉ•SÇ‘PÄMÃŒMÇRÊ“RÇ’PÆ“QÌ—SË—WÈ•WÈ‘PÈ‘RÌ–ZÏš^РeÒŸkÐgТgÍœdÈ’WÊ”RʘWÌ•ZË–ZʘX͘^Ðœ]Í™UÌ—Y̘Z˘XÌ–VКXÓ›ZÏ™PÍšTК]КWКWÑšXÐœTÏœVÓ¢[Ò TΚQÏ›ZП`Ó¤eÖ¦hצdתfÙªiצeÖ eÙ cؤ\Û¥`Ú¥gÙ¬cÚªfÛ«iâ´nà°kܬjà´yâ¶zà²nÚ±m׬kÛ¦jÙ©kݱpß³sÜ­pá±sá¶pÔ¥bÉ›`ǘV¿ŒL¾“P¿šUÄ—RÁ’KºH¿“QÈžXÍ¢aÓ©eÒ¤bÍ¡`ΫbÑ°fÖ­lßµ{ã¹xÜ´tÛ´zß²{ݳ}Ú³xÛ¯sܳ{à³zß´}زxØ­mÙªoשjÖªoÖ©sجpÚ¯nݳmÝ´oÞ´pÞ²vݲwݲrÞ°rÞ°pß´uàµwÚ²vܳuß±wÝ°yà³Þ²{Þ²mß³rܯoÙªfÙ«lÛ°oݯoݪrÙ¨iØ£^ÙªbÖ®mجiÙ­fׯgØ«gÔ¤dÏ¡`Í]Ê›^Ìž_Ï¢^Õ©fÕ¦dÔ¢cרhÙ¬nÚ«nجkÖ¯dº—aè°jé°kè²kç³lè²pë²sí·sñ¸sï²pé±jíµnñ¶pï±pí³pí¹zê·|å­lã¨hä­mä°hà¬bä­hè³oé»tñÄ}ñÁ~ë¼sè¹rèµqè³nè¶{é¶~éºxë½{í½zëº{ë¹~ñ½€óÉóÇ‹ñ¿ƒîÀðŇòËðÀ€çµvß«sà«nà­pÞ¦jÛ¡b×\ÓWÒœ]КZÔšVÙ¢eÙ©fÛ¨eá²uç½ã³xß­rÚ­pÑ¥oÕªrÙ¬nÙ®oݵ~à·‚ã¸{à³yß®rß«mÝ®xÞ¯uÞ®rÞ«kà°hâ¯oÙ fÍŸ[Ц_Õž`Óœ\Õ¢_ÕŸ^ÔžZÖ£YÕŸ\Òš\Ñš^ЛaØ¥lÚ¨mÛ«qß²€Û­}Û¯{á°yݪtØ©kÓ¢gÍœiÔ§oÚ®uÚ°|ܱzݳtܲoÜ®qݱ{á´}ã³vã°xá´yÞ²vܵzݼ€á·|á´}á·à³yÙ­uÛ²zܲuÔ§qÓ¥s×­vØ®tÚ²vá¶và´xß·zä¹ä¸à²{á¸|ä»}ä·|à´zá²zâ´Þµ~â¶}å¹{á³tà³sÛ³pÝ®nà±uá±xß³{Ü´|Þµ}á¶{ß±zÞ­sÛ°rÛ´vܶvÚ´|ܳ{Û³|ܯ}Ý®yØ©kØ­qÚ«tÛ¨tÙ©wÙ±{ß¹â¶àµ€à¶à³và°rá·à´}Ü­nÚ¬tß´{ݱsÙ­nß´uݲ~Û«yÚ¯tÚ´t߯v⸀޴tÙ©oÞ®rÞ²vܳtÚ°pÖ¨pÖ¬rÙ¶xܶyݲxà¯wå¹zèÄ„èăæ»zâ³wß·xà»sã·oã·rà³tà°sÞ±uÞ³táµvá³và¶xà¶uá°pà®tÞ³zÞ¶vá´rçµ}繂ã¶wà¬hبbÞ®mâ²pß®lß²nâ³pܪfÕ¨hÛ°nÝ­jÚ§hبgשjÖ§bÕ¥cÝ©mÞªlبlÛ«jÞ®kÞ±pá³mß±mݬlÝ©aÜ©bÙ©aÙ¦_Ú§eÛ«kÖ¤bÐœ[Ó aÔ£cÓ¡]Ó XÓž[ÑœYÏ™UÑ™TÓRÔ¡TÐœVÑZؤa×¢dÑ¢cتbÜ©bÙ¤e×£hÕ£dÕ¢`Õ¡\Ö¡[Ú¢_ؤ`ס]Ô™ZК^Õ¢_Ú£^ÙŸbÙœ_Ø›[Ñ›XÑ™VÕŸ\ÕšYÔ•UÔ—TΗOÍ›SИZЖWјRÓ™WЛ[ÐœVÒšTÓšXЙWÊ–TÈ”PË—VÍœWË—SÌ–OΖSÍ’WÈ’QɘMÌ–WÏ•]Ï–TÊPÆ‘QÈ”QÈ’PÆPÅQÈ”WÍœXÌšTÍ›XÏžUÎTΘSÊ”PÍ”UÍ–\Ê™ZΛ]ÑšaÍ•[Ó¢bÕ¤_È—QɘUО`ÒŸ[ÑœUΚV̘YÍ™YÍœPÍ™RÌ—RË–NΗTÑž]Ò [П\Ó¡aÑŸ[ΟYÒ£ZÒ ^Ó¡cÔ¢eÕ¢fÔ£fÔ¢_Õ§aÔ¥^Ú¨bÛ¬jÚªhÚ«gÚ®kÚªkÖ¤eÓ¤\Ö©`ݯjß²là±qã´tà¸vä¸{è³uä¶oã¹záµwá±oàµrݱqשgשkà²tß±nÙ©jÛ©hܬmÒ¨cÇŸWÅšVÇ—UÆ^È£_ȤWÆšV‘YÆœ[È YÊœeËœeÊ™]Ç—[ÅZÅŸZÆeÕ«oܲpÕ¦kÖ§pجuÖ«m׫oÓ©nÔ¯pÚ­nÚ­tÙ®vÖ©nÕ¬oÓ¬mÌ aÌ¡dÓ¨kÔ¥kÕ«p׳s×­s׬nÖ²pÖ¬nÔ«lسvÛ´{Ý°oÙ¬lØ®qÛ²rÞ±pÞ°pÚ®jÛ¬gà¶sÜ´pØ®qܶxÛ¶tݵnݲjÔ«gÒ¨hÚ«pÚ¯sÛ±mÙ­f׬fÜ­qÛ®uتiÔ¤bΟbΠcÓ¤fÛ«mÙ«kÕ¦cÙªeÙ©hئmÛ©kÝ®jºiæ¦hà¥dá«gãªlå«jç°pç²qé²jé­há«jä¬bå©cà©kã«bæ¯aä®gáªdݦdØ¢iÚ©jݯjà²ká³oá´|组ëº}ç³uß²tá²vçµzé¸}é½{쿃ð¾ñÀ‡ðÁ†ñÆ‹òljðŠñÀŠïÀ‚ì¿€îÈñƇïÁ궀ã¬yß«oÞ¦jÓ›]Ç’J¾†>¶|9²~>¶‚@¾ˆDÈ–NÑ¢\Ù¨gâ²xå¹~â®xÞ­|ß°بuÓ¨jÕ§gÕ¦oÕ¯uÜ´{ã·á´|ß³uݲuÛ²wà³{ß±wÚ¯rݱvá´wÞ«jÖ£fΠ`Ï ^ÕŸ^ÓœZÓœ_ÔcÖ WÔYÒ_Ó™WÑšZؤgܬlÙ©kÙ¥kÒ¢bÑ¢fÖ¦pפo× iÏœfÍeÎcÒ¤mܪuÞ«sÛ¬}ݱ}Ú­tܱ}á·{á±vß°~߶à¶~ܳ{Ü°y߯xÞ³vݳtܱrß±wÞ²vׯnÕ¨sÕ©tØ­oÙ­qÞ¯uá³zÞ¶޺߷‚ß´vÞµuà¶}ã³{à³yß²{Ü©vÚ¬pݯoÛ¬sÜ®xØ©rئoÚªrÙªrÛ«mß²pá±wÝ­vÙ°yÖ«yÖ¨qÖ¬oשoØ«nØ«oجnܲpÜ°vÙ®vÚ­qÕ§nÙ®u׫pרoݱvß·}忂必仅㻀޹|ເèÀ‚滂㷂߷zâºá¹ß¸yà¸{߶޶ݵ|Ý°|߳㹇߶vÞµmà´vÞ´uÞ³oÝ°oÖ¯rÙ³{à¶~Û±xÖ¯tزyÚ²}ܵà¿~æ‚꽀èÀ}åÁ„åÂ…çÁå½â¾ݹ€ßµ€á¸xݹzÞ¸zá·xá¶xá¶yãµ}ã´yä´tæ¶{ä»~ã¹yã·sâ¹rݲqÚ¬sÙ©rÜ«má²oá¯kÙ«cÕ«hÜ®iÚ²hÜ®gÞ­fÚ­eתeß®s߬uÛ§jÛ­jÙ­hÛ«jÛ¯tÛ«qÞ­mܯhÝ­hß­lÙ§gצjÝ©pÛ¥gÒ¦_×¥`סbÔ¢^ר_Ù¤\Ö£YÓ£YÒœZÒŸUÕ¢RÕ¡TÓ£Z×¥fÖ§jÖ¨jÛªhÜ©hÙ¦jÚ¦gÚ«gשcØ£fÝ£hݪgÛ¤gÜ£eÙ¨gÔ¤iרgרaÓ£ZÖ¥a×¥eÖ¤aÖ§eÙ¨bÖ¡WÒ˜\ÖŸ^اZÖ£]ÕœXÏ›WÒœXס]Ñ¢aЛ`Ö¢eÙ¦bÕ¡_ÎœVʘQÑœYÓœUË™UÍšUÕWÒœ[ΛXÎ[ÏaÑš]ÐœY͘VÍ•WË—QË•TÉ“RÈ“LÐZÕ¤^СWÒ \Ó `Òž[ÓWÒYÒ^ÓœVÑ—QЗYÏ–WÍ–UÓ¤`Ô¤ZÏ–OÑŸYا^Õ¤`Ó¢]Õ VÎUÏ›XÔž]ÔŸWÓšRÐœRПWØ£aÔ¤]Ï¢YÓ¦bÕ¦gÙ¦aק`Ó¡cÒ¡cÚ©fÛ©jÖ¦jبlܬkجgجgÙ«lשfÙªjß©hÙ§bÐ¥]ΠVТbÖªgÙ­bߪgá¯qß²nå¶på´má²kâ¶pÜ°hß­iâ³oà´pݬiÙ¤fݪqá°tݯmØ«gÕ¤`ÏœXÈ›QÍŸPÑ¡]Ï¢gϨdΦ^È¡aÈ¡]É©^Ì©_ϧaΨfË¥aÇšS¾ŽO¹‹M¹ŠKÊ¡]Õ¬dÉœ]ÇžaÊ¡jËž`Ëž^Ê fÊ¡fÑ¢gÔ¢eÐ¥hϤcÐ¥`ϧcʤ^ËbÑ£mѧgÔ¦eÙ¬oÔ¬nΤiÒ£iÔ¦hÓ¥gÕ¯gÙ¶nÛ±oÔ¥kѤoØ­qÙ¯iÕ¯iÓ¬pתlÝ°qÙ°qÙ®nÝ´oÜ®oÜ­tÖ­iФ`Ò¢iÔ¨m׬oÚ³jÕ¯g׫pܯxܲrݳpÜ°pÕ«iØ©gÖ©fÚ¯lÜ°iتcÚ­hÙ°jÙ¬kØ«nÜ­mºœiæ°nä¯mã°mä¯nç­sç®pæ±lç²oè±rê®oê¬oè°sæ³på´kæ²pæ°qç²jã²iݬkרkÚ®rÞ³wݯqÛ­qá³yç·}èº{æ¹}í½ôÅ‹òÈôÉŽóÄŠòĉöÈóÅŒóÆŽôÉ‹îÆ„ïÅ…ïÃ…í¿…íÂíŠ뽂ê»}ç³qÞ£`Ë‘J®v6ša+U#€K{HP ‡_$›u7¼‘QÒ¥fÞ°sä·xãµuâ·|仄㺄ä´}Ú©nÒ«m×°zݳ{ß¹|à²zß­yß°zÜ°tܲ|Þ´|ß³x㹂å½|ã´r߬rØ©jÔ¥fÖ¨kܬmÛ¦hÖ¡dÖŸbÕ›^Øš\×—TÓœ[Û©kܧgØ¢eؤjÓžcÓŸ`Û«kݬrÛªrÝ«oÖ¦lÌ£kÔ«vß±~߯sÞ¯rݬqÙ©j׫oÛ²zÛ±uÚ¯pà´tá³tÛ¬pÝ©wÛ©v׬rÙ«{Ú­{ݱvß­uÖ§qÒ¤oÕ¤tÖ§pÕªnÛ®vÚ­sØ­sÞ°yß²zÝ°qÛªkÙ©vÛ®và±wå²€ä´{ßµ~ݲ€Þ²{Þ¶Ú³~Ü°|Þ²|Þ´{ݲ{Þ²}Þ±zܬrÙ§lצjÙ©lØ©kרlÙ«nÖ¥lÕ£oØ«rÝ®rß²yâ·|à³zä¶yá±wáµå½ƒà²߶ƒá½ƒÞ¸}Ù´xÚ´uÞ·{仄迄ä¾zàº|å¼€ç¿åÀˆåÀ†ã½å»â·à»„á¼€ã¹}á´~Ü®uß²~軆æ»âÁ„åˆ⹃޶{ܱsÚ®rÙ±tØ­oÕ¨jدsã¼|éÁ€ìÀ꾂纃å¼~ὀ㹃ã»â¹}ݵ~ݶƒã¸ƒß¶~ݵwà¹{ã·{ä´zâ·á¼€áºxà¸uÞ·xß·|ß³{à°vݲsÚ°mÞ¶uà»zß·qÜ´uß´|â³rܲlܵqß³mß°pâ´xá²tÛ¨nܯrܲtÞ­tß®nà¯lß­rÞ­nà±uà²pܬdÝ­gß³j߯jÙªgÕ¨]Ó¤\Ö¨dÚ¬hÛ©hÞ¨cÛ«bÖ¥eÓ cÓ£fÒŸjÏŸcÑ©gÔ¨kÙ©kÛ°pÚ«iÛ¨dÛ­eÙ­hݧeߦeשeתgÜ¥gݨhݱhÚ«jרeÖªaÒ¥]Ñ¥]Ö¦hÛ¨hÞ­eبdЙ\Ô[ß©fà­mÞ¬fÛ¤^Û¦_Ú¨dݨiÛ¥kØ¢mÜ©jÚ«aؤdÔœ`Ï›\Õ cÖ`ÑšZØžbÙ¦iؤgÕœbÓœ^Ñœ]Λ\Ó¡`Ó ZИQИXÐœ\ΖVÏšWÙ§fܤf×^Ö¢fÕ¢kÕ¤cÖ¥aÕ¡cØ¢]Õ¡]Ñœ]ÒœZΚTИUÖ bÓ cÓœbÚ¢kØ¥cÙ¦^ܧhÛ¤jÖ¡dÖ£iئkØ©dØ«dئbئbÞ¯iÙªlÖ¨oÝ­oÛ¦fÙ¦dØ©eÑ¢\Ó¢]Ö£eÓ¤eÖ«iÚ°oÛ¬kبjÙ¨nÖ¨kÖ©nݯqÚ­mÙ©hÙ«kÖ§hÑ¡bѦcÔ¥^Ò¡^اhÕ¦^Õ¥^Û§gÜ«iÝ­iÚ­lÖ¨oÚ¨lÛ¨hÕ¨aÒ¢\بgãµqå¹tã¸sÚ«iÒ^ÌšVÏŸ]Ô¥gÒ¥^ΠUÉ›XÆ”[È–VÉ¢^ͧdϦgÒ®sÓ­lÀ—Q°„?¸‡F»‹QÆ™aÖ¨iТeÍ dÌ `ÆœZÆš`Êž`Ì¢aΟiÍždÎ¥dÖ©kÙ¬gÚ°fܱnØ°pÙ²pÙ±pÙ²yÝ°{Ø­jÑ«iÑ«mÕ«pתrجqܲvݵvÞ°qÚ«q׫qÙ®nÚ®sØ­oÕ«f׬jÖ«lÚ±rÞ¶tÝ°nݳqÚ²qÕ«oÔ­l×®kÙ°kݶjܱnݬpâ±tß´xÞµ{á¹|á¶xݲuÙ°oÚ³wÞ¶wÝ°mà®sã°uà¯pÜ«sߨrÀ•lé¶tì¶{í¶èµtæµvâ²uã±rå³sã²oâ±sâ¯tä®oã²qã°sä«jæ³pè¹{綀ä¯wÕ fÑž_Ú©fÜ«mÞ®tè»{ïƈòÉ”ñÊ’ñÎ’ôÒšöÓ™öÍ”ôÇòÆŠòÊï¿ðÂŽóÆŽñÄŠïÆïƒîÀƒîÆëÀ꺀éµ~Þ¥cÅ‹C¡h&Ih7b3b5V- J& J* Z<Žj6™^Û±tâ¶uß°yß²€â¹€âºâ¸}ß°wÙ«xØ®sÎ¥jÒ¨qÞ±sÙ¬rÚ¯sÛ«rÞ«yá³và·r㻃忄ä¹}â¸zÞ³wÝ®uÚ´vàµ}ß©uÕ kÓŸfÙ£`Ú£`Õ`ÕžWÚ¥_Ú¢fÙ£eÞ«hÛ«iÚ¦sà¯zã¸våµxâ°vÛ¬lÕ¨pÙ®uܱtتoÖ¥pÕ£mÍŸdÌeÑ£hÓ§oتvÜ®uÜ«sÚ©tݨqÙ¦uתuÛªsÞ§vߪwÝ°tÚ¬uÓ kÑ›eÓ¡qÙ¨rÛªlשsÔ¤tÓ¢mÖ¥pÖŸjÑ•`Ò˜hÕ£lÕ«mß´ræ¸{à¸xá¸xæ·à¹…Þ¼…á´ß³Û´†ß²}á²}Ý°ƒÛ¬zÙªrÙ­tÝ°uÝ°mÝ´râµvÚªpÖ«xÜ®à®~ⵂá¶yÞµtߺ|ܵ‚߸…ä¹zÖ¦mÕªuàº}Þ´{ܱzܱzܲwß·㺄â·Þ°yÛ²xß¹~Ẅ޵à±zã³{ßµyÛ±}Ý´{Ý»tݸuÛ¯qÜ´wãÆèÇæÁ‹è¾ˆè¼}à»yÛ³wÚ²uÞ³xß°wØ°sÑ­tسyâ¸~㼃伂ߵ…Ö±€×²wܶ€ÞºÞ²xدxÛµxß¹~Þ¹|߶yà»~à»{à·vÞ³z߶}ݸyÜ´yß³xܳqÞ´x㵃ã¹}á»zá¸zãº}เߵuàºvá¼zß¹xß·xâ³|ß²xܶsݵrݲt߶yÞ¸zá¶xã¶yà¸xß³rÜ­oÞ°tÞ°nݯmß°qÝ´mݳqÝ­pÞ¬iÙªlÝ­qà­sÜ­oÛ°nÚ«jÕ¥gÒ§eÒ¦dÒ¢`΢]Ò¤aÚ©gÛ¬mÛ¯lÝ°lÝ°kÛ®jÚ«jÙ¤fÚ¤cاaצbÙ¥jܪn߯kÝ®eÛ«fÚ¨mÔ¤kÍ¡cÒ£eاfÚªe×¥bȘTÇœYÙ«kâ°qÞ¬kÜ«hØ©fÛªgà³oÜ®jÙ¥eÞªlÛªjÛ§bÙ¢aÔ¡bÙ¥bܨcÙ¥_Ú¦bØ©jÓ£dÕ¡\Õ£dÔ¢cÔYÒž[Õ VÔTןXÙ£]ÓžVÑ›YÖ bÕ¢ZÕ¤]Ù§jØ hÖŸdØ¥^ר^Ù¥eÙ bÔ]ÖŸ^Óž]Ò¡`Ø¥d×¥`ئcÙ«iÒ¦jØ©nÝ­nÙ¥hÚªfÞ®jݪlÞ«mÝ­mܯjà°lÜ­rצjÛ¦iÝ°tÚ¬rÛ¨hÛªeÔ¥`Ô¥cÙ¦hצeÕªjÕ­nÕ©jÖ¨hÖ­qÙ®sØ«iÙ®h׬fÖ­kݵrà·uÚ¯oÖ­pÓ¯iͦcΡcПbÏž^Í¡_ÓªgÛ°qÛ«jÔ aΟ`Ï¡bÒ£fΡ^Ñ£aÛ®jܯfÝ°lÛ¬nÒ aÎœ^Ï¢bѤfÏŸa˘WÇ“RÆ•OÈ™QËœVƘVÀ—QÈŸWË¢[¾“Iµ‰J¿”YÅœbΣkØ®tܯqÛ¯oÖ­lÓªdÓªfÖ«jØ°jÚ°lÙ¬nÙ¯uÞ¸yâº~âºzàµsß³yÞ¸sÚ¶oܵtÛ³rÓ«oÔ¬oÙ³m×±pÙ­vÛ°sØ´pݳpÝ·rÙ¶qÙ´qÚµzܲ}ܲv×°jÕ­jÙ­qÞ³vß¹uÞ´uÝ´tÚ·vÜ´|à¶uÙ°kÖ¯mß·xݳvܳuÞµzÝ´zà·tà·{ßµ€àµ|ß²{ݶvÞ¶uá²pß²oÞ´tݲrÛ±oß´sÀžpê»ë¼ƒë¾€ê¿zêºxå¯uâ­rè³uã¯uß­mã²lä²oä¯nâªhÛ¨gß°râ¹{åºzè±rÚž^Ï™ZÖ§eß«hã°kíÅ€öÑ÷ÍŒõÈŽ÷Ì—ùÑœúÏ”òÇŒïÇðÁ…nñÅïĉîÁ‡î½î¼€ì¿€å¹~ä¶{á¬hÍJ¢h'uF_6[3`: j@e:L% 2 0 YF¦ˆOÒ¬x×®tÛ¬sß°~â³}à²zß´}à´zÜ°v׬rÇœiÉ£r×­sÕ©pÙ®q׫oÙ¯vá±u߯uß²uß³uÛ®|ß²|Ý°zܬráµuÞ±uÞ®tà¨kÖ£bØ«gß«gݧbݪgà­lÞ­mݪgá­gݪoݬyâ³xá­oÞ¨oÛ¤lØ¥gÙ¦fÙ¨mÖ¤jÕŸdÓ¡_ÓŸ`Õ›`Κ]Ñœ[מ_Ù¤kÞ¦nÜ¢hÙ¤hݨqܪvÞ­và«vÞ¬rß°qß­t߯vÚ©tÖ¥sØ©oÙªtÛªuÚ¦oןjÓŸfÖ¢jÖ gÐcÒ¤lܲuà¶uâ»z漂ä½âº}à²vÞ·uáº}âµ}à·zá¶{à´{Þ·yß²yÝ®{دtÙ³và¹|á¸tá¶|绀ä´yܱ{ܸ{á¹}â·|Ü®oÓ¨j×°nݶv߶޶yÚ«mÙ¬tݳyß³€à´€Ûµ|ݶâ³à³|ݶyÖ¯q׫uݱ~ݵyß·wâ¶yâ¹zä¼yä¸vݹ{à¼}ã»}Þ¸{㻃èÂŽæÄ‹çĉèÁŠä¹‡ä·€å¸}ݳzÛ²u߶~ܱΩsбvÙ³zزz×°uدtÖ¯pÓ©nÖ«{Ü­~ÙªuØ«qÚ²xÝ·{ßµ|àµ|侀㻃߹ƒß¼‡âº€à¸Þ¼‡Ýµ€Ù°yà»~å¼~æ½鿄绅罂â¹}Ü·zà¼zã¾}â½|߶ܳ~àµzâ´xß´|Þµ}Þ¶và·vä¶xá±xß³vÞ°tÚªyÛ¯yà°vÛ­sÙªoÛ­nÞ²mß³sà³vݲtÙ¯uØ­tÙ«s׫q×°sÜ°vÞ¯vݯnß°nß°oݱsܲzß°rÞ±mÞ³sà´xÝ°hÜ©bݬlÜ®lÛ¬kÙ«fÚ«jݬqà±rá²pÜ®nß±lÞ°hÖ¦eÙ¬iÞ¬h×¥bÖ¨dУbÈ WÒ¥`Ù«lÝ­fÞ®gÙ¬mܪpâ³xÛ²p׫gÙ­gÜ«eܦgÕ£dÕ§dÛ®iÛ®hÙªhݨjÝ©jצgÕždÖ dרlؤl× cפcÙ£aצeݪjܤb×¥bרfØ¥bÚ©eÚ¬hÕ¤eØdÙaÕ£dÛªfÛ¨dÙ«gÛ¬gܧdÚ¨gÜ«kרgÖªgÜ°kÕ¥fÖªlß±uÙ©jÙ¯jݱrÜ­uÞ®tà°vá°và³uܳkÖ­hשqß³vá·vÞ²sÚ±kÙ­lÜ­tܳuÙ·pÖ¯iÕ«lÖ©pÚ«lݲqß³t߯mà¯rÙ«pÕ«jà¶tä¹yá¸vÞ¹tܲqשjΤgϧgÔ­eϤaÔ¦eÛ²oØ®fТ[Ëš^É¡hÕ°uÓ©fÅ™PÅ—SÆœXΡZÔ§`Ñž[Ì”SÑXÒ¤^Ï£_ОTɘQÇ™YË™YÙW½–P¿‘T–^Ê£b̧`̧`ΩfÏ©kÖ­qݵuß¹và¹uݶsÛ±mÚ²qÞ¸vá¸yÞ±vܯiÝ´mâ¼zä¹wã·uà¸uܶqÛ´oÚ¯kÙ­lجnÖ«kدqÕ°qÖ²nدuÙ¯vÞ±nÚ¯qÖ°uÛ±vÞ°uرpÛ¯oÚ«pÒ¬mÒ¨gÖ¦lØ­sÙ¯rݬwß³|Þ´wÞ·và¹uá³pݳmܱpÞ°tß³rß´qß·yÞ¸€Þ¸zá¸y޲ߴzâ¸uâ´zà²{ܳtܺqß´qÝ®sâ¶v¾¡pæ¹~ãµ}ã±zã²zå·zá®lÛ¬lâ²tá®sÜ­wâ±vä°uã°u߯pÙ§fתnâ¸}ë¿}éº|â±vâ²ræºvã·pÞ¬kæ»~òʈòÄ…òćöÌ”øÒ™øÑ‘ôČ)쾀쿀ì¼ê¼~ë¾{ê¹wæ¶{ä¶{äµxä²vá±zÞ­vÖ^µr1Bb5d<i?nKsNtJh@F' ) 6*„s<ȤfÑ¥eÏ¢eÚ°zá·}à²yݱyݳ{ݲyÜ®tÒ¥qÏ¥oÔ§iÓ¤pÕ¦sÚ­nß·và´xÛ¨rÜ©vÞ®uÚ«vݬ|Ü­w׫uÛ¬{Ü­tÝ°sà°qÙ®jØ­nÝ­sá®uã°sá²o߯cߧ`ܦgÞ«fá©iÝ©nÚ©hÚ£aÖ¡`ס`Û¤gÚ¡bÕšZÓ¡dÒ¤hÙ aÝ YÓž`ÓœdÙœbÙfØ¡dÙœ_ÔžfÛ¦jÜ«qÛ«pá«oÞ±vá¶{ä³vß±uݲ{Þ¯Þ¯{Û®pÝ©tÞ¨q׫lÙ¬pÛ«lÚ¬hݯqݲzÝ´|߸€à¶xà¶|㺀Ṁ۱yÙ¯vÞ³~à±ß³|߸{Þµyß³tÝ­rÖ¦nЪmÓ®vÞ²{Þ³{Û±zà³{Þ³{Þ²{â¶}à·|Þ´uÛ¯pØ®qÞµwà·}ß³à³|ß´sܯsØ®{ر}ܲxÞ³zÞ±Þ®‚á±|à·|Ü®uÚ­sโ࿅á¼{â»{âÁƒå¾…滀ä½{æ»~å¼á¼}ß»}â¾ã·Þ²{Ý´zÚ²vÙ²pܱuØ©uÖ¥lÙ©rÕ¦mÌ¡eѪsЧnΣjÑ©nÒ¨pѨrÕªsÙ°tÙ¶wÚ²zܲzß´xÚµxÖ³zÛ²}àµÞ¹wà·|⸋⼅â¼{Þ¶|Ø°sسpݵtà¶zߺ‚Þ¸‚à¶zÞ¹}ݹ{ܸx۶ߴ€ß¸zÞ´~à®{ß³xß·€ß·Þ´‚áµ~ãµ{Þ²{߯vß±uÞ³uÛ¯pÙ­qØ®tÙ¯uÙ°tÖªoجuÙ®xÕ®sÓ­sÓ¨nÕ¬pدuÖªnݱtá»xà·tá¹rà»sàºzá¹{àµwßµ|ä¸yà¶sݸtà¶qݱqܳtß´rݲsÚ¯qØ®rܱuÞ³qÞµtÞµvÞ³pà²kßµlàµpß²oÙªeÙ«jÕ©cÌ[Ï¡bÚ¬kÜ®mÞ²nÜ°jÛ«hÞ´uÜ´rÙ®nÚ¬lÙªeצfÖ£eÓ£bשgÚ®lרfجnܲmدjÔ§mÓ§gÖ«hÚ©hÚ¦fبnÛ«jܪfÝ«fÞ¬kß­o߯jÚ¯jà²qÞ·vÕ¬kצcר`Õª\Ù¯gÙ­jÙªgÝ­kݯnÝ­oÞ¯m×­hרlݲsܱlÚ«pÛ¯uÙ«kÛ­nÞ²qÛ±mݳn߸rßµwÞ³yÚ­oÕ§gÚ®rß°uÞ®nÚ°nÙ­jÝ®hß²pܯwÞ°wÛ³uÙ²vÚ°zܲwݶxÞ±yݬtݯsܱr×­n×®oÖ¬rׯxܲsݯrÙ­qÔ¦fÓ¬lÕ±nÒ©iЩsÕ®r×®nÓªkÔ¦fÓ©j׶y×°nÇžYÁ—VÄ•TÈšYΡ`ÍŸUȘSÒžZئ_Ö®fЫZË¢YѤaÑ¢]Í¡_ϦfΤfÈœbÇœbÒ¬pØ·vÕ¯sЧrΩpÏ®lÕªoÙ«tÓ©kÒ¨gØ©lܪpÚ®rÚ®qÙ©jÔ¢bÒ¨lׯqØ­jجoجoØ©iØ©k׫jצeاcÖ©hÕªoÚ¯qÜ´wÛ³rܱrÜ­qÛ±oرpÙ­rÚ±w×®u׫m×­lÒ§hÑ©bÙ®lÙ¬sÖªqÚ°oÚ´rݵ{à¶{ß³oà²oݵvÛµwß³yà³xá·zགຆâ¸z߶vܱvß´sßµtݱußµtß·tÞ³mÛ²rà·w½¡i䳀ܮvÛ§kà©rà¯}ݬmÛªlà²{äµz䴀巀å¹|æµ|æ³yá³uÞ²xã¶}éÂ~íƇñÈ‹ôЋòɉéº~Ý©hÕ¥cá´ví¿„ðÈõÉŽôË‘óјð̉íÁ„ï‹í†é¿ë»vå·râ³uæ¶væ¹zä¶{á³uܪnÙ¢hÉ‘M“Xc4 d@tJyQ~XzPzPƒV*d;5 .! p^/º™^Ê™aÏ™b߯và¯sÞ«sܯyÙ°wÞ³}â²|ܯxÞ®uÝ«s׬rØ­pݳuá¹yâµzß±|Ú°}ݯ{â¯|á°xß°vݯ~Ü®}ݯvÝ®vÜ­sÝ°pÞ¯pÛ¯sß²vã²z߯zÝ©oݧgÞ¬nâ¬pã«iÞ©iÚ£kÝ¡fÛ£dÙ¦fß©mÞ£gÖ›`Ù¢dÞ¨dÞ¢bÙŸbØœ]Üœ\× `Ö cÖ›[Ðœ^Õ¦oß°xß²t߯oà­u߯uÞ°oÚ¬oܨsݨmÙªnÙ¬qÛ«nÙ¢aÕŸZתmÝ´rܯgÞ®r߶xܲuà°zã¶ß²zݱ}ä¶~à´uÜ°pܱuÜ°{Ý°zã·zã¶}Ü®xÚ²vײnÑ¡bÊeϨlÖªlÓ¨mÒ¨oÕ¨rÖªwÚ¯xÞ¯yܳvݶtà³uá°zàµ~ݶ{Þ±€ß³Þ³vÛ«sÙ®wÙ²uݱvݲwݵ{޹ݶݳxÝ®kØ©qÞ·}äÀÞ¸zà¸{溂⹄â·zß³tÞ´{á¹zݲsÚ¬tÜ­qÙ©qÙ°zݳvÝ®uÛ³uÞ¶yÛ®rשkÙ®uÔ¨oÓ¢eÕªo˨pͤjÖªhÖ¯oܲvà·zá¼}Þ¹|Þ¹}߶ƒá´à¶yÛ¸xÙ³yدuÔ¬yØ´~߸€Þ±yÛµrÙ±qשqÕ«jÕ©fÓ¦fÖ©lÚ°vÙ°uÚ²x޷޸߷}߸xß¼{â»}â¶~ßµ~߸|ã¼|á»|á¹{áºyÞ»vÞ¶xÞ¯vÞ²sݵxÞµzÝ´uܲsܲuØ®tÖ«u׫nÕ®mÕ¨lÖ¥iÙ©oÜ°vܳuâ·y㻄彄å¹~ݳ~Ú¶‚Þ·yà´{Þ¶‚à¹yÛ¶sܵvá¸yݵxÞµ}ãº{Þ¶vݳuÞ³sݵxÝ°zß´väºzã¹yã¸râ¸qá¹xá¸xà·yÞ¶{Û²vÔ©pÕªmܱvÞ±yà³uà³vÛ²ràµpá¶rܲpÞ°pÞ«nݬoÞ¬oÙ§mÚ«kÞ®oÜ©qݬnÞ±qܬtקoשnÝ®oܯhØ­cÜ­dܪlÚ¨mÞ¬aá«eà¬lã°iá­kãµvæ¼{Þ°nܬgÞ²iܯgÖªcÒ¨^Óªa×­hÚ¬jÞ±mݳoÚªgÜ­ká·tà³nâ°sÞ®uØ«kÛ±gݲmܳoݶqà¸z߸~ÞµrØ­iׯlݵxà·{à³p׫jצeØ©cרfÓ¤gتhسjײlÙ®rÚ°v×±sÙ²rÛ°uÛ³vײq׬oרoËfÐ¥fÛ­pÛ­vÚ¯wÜ­rبnÒ§jÎ¥cΤaΡeÕ¢hß²pá¸sÝ­qÙ°q×°nϦhΠdÏœfÉ›bÉœ^ÈšZÇ—PΞZÕ¥jÔ§jΣdΤdÓ¬gØ®lÙ²pܳoÙ¯oΩgÄ¢`Ç£iÑ©lΧ`Äœ\Á™ZšQÇ™\Ìcʘ\ËcΡcÏ_СaÖ­eÓ¥[É–OÆ™\ÇfΡfÓ¥eУeÒ¥bÓ©dÕªpÜ­pÙ¬jרkÙ¬i×°hدuÝ´xÞ¸uܱtܯtÞ°vÜ°oÙ³nܱsÛ¯nÙ®kÚ­lÙ±mÙ²nØ­rÚ«vÝ°uÙ°sÞ³yã¶v߯mà³và¹~à¸xß¹uà¹zã¸|á»{â»ã¸{ß´tÙ°pرuݱxß±pݲnܲjÞ²mÝ®pá¯q™l뾂å´uâ³tÞ²tÞ­uá²~ãºåº~æ¸}ç·€æ¹ç»}꺀ê³~éµ€ê½~çºyã·{åºé¿|ìÀxê½{æºxß®iÓ¢`×­oãºzã¶uå½xëÁ}ñÁ€í¿~æ¸|龃ë€迀羂ã¸vá´vç´}å³{å²zã«tØdÑšW¸6|D_6oM|RƒT ‚\{R€Ve3~O&G% . +aM$¬‹Q•`Í›bä²qã±tÞ§uߪqשlÚ­v⸄à¸|à³~ã¯Ú«qÖ«lÝ®uá³wáµxâ²|à¶|ß·{à´{ßµ{ãº~ãµzÝ®vÙ®xÙ«qß®pÞ²nÙ®qÙ¬uÚ­tÚ«rݬtÛ­sÖ«pÙ¬wܯtÞ¯iã±oá¯uÛ¬lÞ©kà©nß®mܪhÙ¤bÚ¦bߪgݧaؤ^ؤcÚ¢]Ü£\×¢`סeÙ¥lÜ®tÞ³{á³sÜ°mجjÙ­nÙªpÔ¡gÒžbÒšbÏ™cÑœ`ÑœgÑkÓ¡m×®uܵvÞ°mß²nßµ}Þ±zÝ°yßµ€Ý²yÛ®rݲ{د{Ù°vß²xݲxÚ³~Þ·Ý°u×¥rתuÖ«sΟfÇšbÌŸhРhΠpΠnÑžhÔ¨m×®qשsÝ®wݳuØ«sÚ¯xܸzÜ´{Û³|ݵzÞ³|ݯ~Ú°€Û³}ܲ~Þµ|à¹}ߺ€Ý´wÙ¯qØ°qÙ¬lÜ°qàµrݯnÝ­sà°tÞ¯tÜ®qÙ­oÞ³tá´vÛ¯pÜ°sÝ°yزzÚ¶}޻ݻzÞ»|ß¼|ܸzÞ³}Ý´{Û³uà²vÛ±sͨnШoÜ°xංߵ…۶ܸ}áµ{Þ²yÛ´uÝ°uÙ±rÓ¯oѧnÒªoÕ­vÚ´~ݸ֭sÖªkدqÚ±xݳrׯnÔ¨uÑ©rÓ«p×­sܸ༃ṇṇ亂㻇ỉ㻀߸~á·æ»‡ã¼…ᾃã½ßº}ÚºzÛ·vÞ³uÞ·zá¹ã¶~à¹}ܶ~رyÖ²s׶tݶ|ä¹߶zßµ{áº{຀เá½~⾅ẀڳrÙ±vܲ{ܳuݵ|à¸à¸zß´|ã¸}ß¹zß»{ä¾}á¹{߶€â¸á·}Þ¶zß·‚㽆㼀âµzÞµwݲxá®tà·vß¼{Û´sÖ«oÖ­tÙ±vÞ´xãµyß²rÙ®oá³vá·|߶wá´sÛ¯kÜ«gÝ®tÚ²xÔ§gÑ¢hÕ©nÚ­iܱoܳnÙ­kÚ«kÚ¬kÚ¬hØ©iÕ©nÖ¨hÖ¢aÕ _רaÞªfÞ¦iÚždߦjã¶vß´tÞ¬qÝ®oÚ°pתfÏ WΛ]Ò¢hØ«hÜ®jß±pÝ­qÞ´uá¾{ß·xß²xݶsÙ²sÙ°pݳqܳyß´và·rÝ´tÚ±tÙ¯sÙ¬pÛ°tÞ¸yݸuÛ²mÙ­iجmÖ«mÕ«bÒ©fÕ«pׯqجoÕªoÔ¬k×±nÚ±pÚ®j׬kÔ§fÔ£bЦdѨnÙ¨vÞ±xÞµrÚ¬tØ©tØ©lÓ¤gРaÊ_Í gÖ­oزkÔ¨hЩkΩhÍ¢bÍ¢f̤gÊ£cÈœ]È™ZÄ—UÇ•SÍšaÑ¡eÊ\Ƙ[Ì›YÒ¢^Ù¯qÛ³uÖ®oÓ§kΟcÆš\È _È¡bĘ_ÙW¾–UÀ—^Ê¥c̤bФgЧgÈ¡`Ì¡aÔ§cÒ£[ÇžZÈ¢cÅžbÆš^Ρ^Ñ©gÔ«kÓ©eÓ¬hÔ°rÖ²qÙ²oÙ®hØ«kÖ­sÙ­vݬtÖ­oÓ­hÖ«hÕ®pÖ¯pÙ®pÛ³tÚ°mÛ¬jݲoÙ³pÝ°oâ°oß°lÚ®iß°ràµyܶzܵxݵvݵ{ݲ{ݲvݵrÞµtÞ´}ݵzݱpÚªjÔ¤fÕ¥nÖ©tÙªmÙ§nئmÙªhÜ«i¿•gð¼è´yà¯{פlݬr缈龊캆꾆ëƒíÁê½}î»í¼‚í‚ïƒìºç´{á¬rܧoÛ«pÙ§dÕ¡`×¢hÓ¢mÕ­t߶p߬jÞ°tå»~çºá³~ݯuÖ«wÙ²xçº~è´ä²~ãµ}ä¶|ç²{â¯uÚ¦dÒ›ZÌ”V¥e*k3 eAtNzNƒ]%‡\"…PƒTŒb1‹[1_21 TG!ž…JÀ›]Ѩfæ¹vê¸vå³sá°uÛªqÝ«qÞ¯vÝ°xà²{ß±yÙ«tÖ¬wß±|ã±xáµx市溄ãºâ¸€á´xä´}ä³~â±yß°xÜ°yâ¶~å¶uà³o߯sÞ®uÞ«rÞ¯yݶ~Ý´{Ý­{Ù®wÙ®sà¯và²sß±tá¯nÞ­j߯q߬hÛ«eݬkÞªnݦdÚ¨aÙ©eÛ¦eÛ¤dÙ¥jÛªnÞªpÞ©rܨqÜ©mÛ«gÚ¥dØ¢kÖ¢kÖŸbÒœYÏ™[Ï™\Ι_ÒiÓ§jÕ©mß²{à¹}Û²wß³€Üµ‡Ù¬~Ý®uà¶yÞ¶{Þ²wÝ®}Ö«vجrÞ°{Þ°{Ù®wÖ¯uÔ«oÓ¥lÕ¥jÓ¥eÓ¡gÑŸhÑiÑ¡lÑ¥hѤhÔ¦rÔ¨oÓ¥hÓ¤oÖ°zÞ¶zݬvÙ«yÙ«wß±tß¹yݶ}Þµ|Ü´tÙ°xرzرxÞµyÚ²v×®{Ü«rØ«kÙ¯rØ®lÓ­gÔªlÕ mÓ¡jÓ¦iÔ£eÔ¢gÕ§tá´{æ»zà³zᶀâ¼Ü·yÛµ{Þµ{ܵuÛ¶sÙ¶wܶzÞ³zÞ³zà·€â»à¶{Ö®zÔ°{à·ⶀݰy׫uÕ¦vÓ¦nקoÙ©vÔ¨rÕ«t×­sׯtسyÜ´xܶ|Û¹xصxرzݶ|Þ²yШeÑ«fÙ²vׯvÖ´{ض}à¹á¾€ß»€ã½†â¿ß»‚ß»„Þ¹~ܸ~ßµ}ß´à¸{ã·zâ´}Þµ|ܱ{Ú®wÚ²uÛ±sÚ°tÚ´{Úµ}ݶ~ݶ|Ü´uâº|ä¿€ä¼}â·~ß·â¹|ä¼|ܺ~Ù¶‚ݶÛµyÚ±yد~Úµ}Þ¹zàµἃáÁ€ã¹„ᶀ߷~àºÞ·}Þº‚Û¹‡Ù°„Û´Û¸yÛ¶z߶yá´tܲtÛ®sܱwÝ·vݲvÜ´zÛ´zÚ¬xÛ­yݳv߶{á¶|ܳqÛ±qÞµxܱsÚ¯vÞ±}ܯpتhÙªoרlРeÓ¦jØ«lØ©hܪlß°sܳpجfÛ­iÚ§lÓ¡aتbÖ¥cКXÍšTÌžUÍ¡XÑ YΟ^ѤeØ­hܲsÞ´vݳsܱtÚ³rÒ©gÍžbΤjÓ©pÞ«qÞ²tÜ´x߸{á½xܺrÜ°xÝ°tÞ·sݳzݱwÞ³sܳvݸ{ݸyÜ®tÙ°|Ö³}ݳyãº}à¸záµtâ¶vÞ³tß²qß´tݲvÚ±vݳtÞ³oÜ°qܯqÙ¯mÚ°pÛ°qÜ®hØ®nÕ®pݱqâ³tá¸tâºvá¹tÜ´rÞ³sá´xá¶xݳtÕ®lÙ²gܬ_РYΠbÍ¡iÆœ^Å›[ÅšbÃœdÆŸgÈžfÆœaÆœbÊ_Ñ ]Ф`Ëœ[É–VÆ–QÌ›ZÜ­eÝ°aקgÓ¦f΢^Æ™Y›]Æ¡aÊ bÏ¡eÌ£bÈ¥fЮjÖ¬jתnÕ«gÓªbΩhÏ©gШfΨmϬnˤbÉ dϦlÕ²tØ´tÕ©jÑ¥^ÊžYÍhÔ©qÓ¨jÑŸ^Ë¡aÏ¥eÖªcÒ§aΣ`ФfÒ¥gÓ«iÙ¬pÙ®qÕ²p×­nÚ¯mÕ¯lÛ¬mà®oØ«jجmݱvà²vß²rß­tÝ®sÞ´qÛ°p×­oÚ­nÛ«pÖ°rÖ­qبkÖ©eСeËœeË cÔ¥iØ©nÙ°nÚ¯j׫eµ˜bî·{â­pبoÑ¢ká¶}óÆŽï‹îÀˆîÀ€îÀ‰ñÅ‘îÃì¿€í½Šî¿‰ð¿ŒñÀŠë¸ƒß±xÞ±pä²vá©qÚ¢gÚ¨kÛªkÙ¨nÚ¯sݱkÖ§iÔ©kÖªkÏ¥jÈžaÕ^ÍŸkÝ°xâ¯{á°zá´wä­râªlݦeÖ™WÍ‘OĆFO[- fCtIyLƒ[$W#zIvI€V%_,sD;PD›I•`ÑŸfá±så¶xå±qæ±q߯uà°sÞ©mÛ¢nÝ«yÜ®|Û­uÞ°uܬxÙ°xÞ²x᳃㻄激æº~äº|ä¼}æ·}ä²}ã¶~â·ãµ†â¶‚á³yâ´xä¶zäµæ¹€ä¹}äµzà³}Ù¬{ÙªjÞ²oß³{à´wá°tß²váµsà°mÞ¬mÞ®oÛ«jÖ£fؤcؤ`Ú¨bÚ¨eÙ£gÝ¥hÛ¥m×£cÚ¤fÜ¢hÙ£aØ¢ZÙ¢]Ù¤fÕŸ`Òš[Õœ\Ó¡^ÑŸfÖ¥qØ©jÖªnÚ­yÚ°xÙ­uÛ±xÙ³{Õ¬oשkÖ©rÖ«qØ­rÕ¨uÔ¦sجxÚ©vÙªrÙ«pÖ¢nÏŸjСhÏkÎœpÑŸmÓiÑ hОeÏœcÑŸeПhÏ hΠfΟjÔªpÙ¶uÝ´vݲyܳzÝ°yÛ³}Ûµ~ݲuܱvÚ²{Ø°tÔ«qÔ¥iÓ£dÕªtÚ°xÙ«n׬oÙ¬oÕ¨iѦgРdÍeÈŸcÆš\É™\ѦgÞ´uä¸à¶{ß·~Þ´€×¯vÕ°uÔ®uЬrÕ«vÖ¨qÕ¦lÓ¦nجlÞ¸vá¹{ßµxÛ³vܲtà¶yÞ²v×­sÓ©rÒ¦eÑ¥gÓªsÖ­qØ°sÛ³yÛ³|ÚµzÙµzݳzá¶zÜ·xÛ´xÞ´zݶ}Ø«kÂŒKÄ”`×°xײrÙµvÙµxÖ¶yÙ³|×±vÚ¸zß·~ܳvÕ¯pÖ­sÚ±vÚ²{×±{زvÜ·zÛ¶~Û²vÝ°nجnÛ´sÝ°oצmשnÕ©j׫nÞ¹zß¹zá¹ä½†ã»â´{Ý´zÜ·~ݳvÚ°xÚ³€Û³|ܱ{ܴܲ~Ý·{ݹ޺ƒß»€Þ¹}ßµ~ݲ}ײ{زyÖ°uØ­xÙ®sÔ«oרv×­yÕ­sÖ¬oÚ°yÛ±xجkÚ³x฀à³wà²wà²xÞ¶uß¼~߸~àµ|ä»zàºzÞ¶{à¸xܵwׯxÛ±~ݲzÙµsÕ°tÖªlÕ­j×°uܳ{ݵvß´ràµvÞ³sÜ­rÛ±uݱnרmÙ¬nÜ«fѧgЦdΠ[È›]ÈŸ`Å›[—^ϧkÞ´xâ²zá´qݸuỀ߶vÕ«lÏ©jШiÔ©tÛ±wݸvܹ}㺃â¼á¹yÞ±{ܳ{ß·}á¶}߶}߸{ß¹zݹ‚Ü·}Ú·vÞ¼~á»}Ḁá·á·}â·|ã¼}â¼ä¹€æ¼á¸†ß¶~ã¸râ¸uà¹vÜ·sÚ¶vÞ¶pßµnܳoÛ·sá»wá¸và·uä½|æ»æ¹~æ¼~éÀxè¾yæ¹{å»wè¾vâ±mÐ\ÎbÕ¤jΟaÌ[П]Λ[Ê›`Äš^ÁšZÄž]Ê [ÌŸYËYÈ›[È–ZÇ”VÇ›]УaÑŸbËœ\ÌžWË›UÅ•OÅ”QŘYÈ›[Ρ^ѦgШfÕ«cÔ©dÍ¥bΣ`Ñ¢bË_Çš^Ï¡jÒ¨lÎ¥pÍŸjÏ£`Ô«hÛ´sÚ¸pÕ¯cÍ¥UÄ™QÆ•[Ï fΠ`Ê™YÄ™]ÄžbФ`Ï¢^ËŸ]У^Ñ¥fЩjÕ«fÓ¦bϦdÖ¦cÕ£fÏ_Ìž\Íœ^͘VÌœWЦbÕªbÖ©cܨjÞ¬oÛ²sÞ±pÝ­qÙ©qØ«pÙ¯s׫jÖ¨`Ô¨^Ϥ]Ñ¡^ÍŸ^ѦiÚ®kÙ¬hÕ§iØ©dºœhêµtߨhÚ«lÚ¯qè¼…ôÊŒïÅ…í¿‰ð¾†ì½„îÆŠïċ뺅ìº}í»{ëº~æ¼|é¿~ñÄ…ïĉ纂è¼yê»yâ¯xÜ°tÞ³q×¥gΞcÑ£gÏeÌ–bСjÖ«oÜ­sÞ¬tà±sà³nݱlݧgÛ[Ó•PÉŠH¶s3~C\3oItCtEyMqDj>lGxR…Y0vIC"YD¤ƒFÁVÍš_ݬiá²sá²{â²vã°pä°sà­tà­tâ­vÞªsܬuÙ«{Ô¢pСiÑ£oÛ¯yæº{æ¸~幀廀äº|å¸}ä¸ä¹{ä¸~ç¼…ç¼ã¹}â·|ãµ}什é¿è¹‚â¸~á¸Þ²„ܱ}à·xâº|ä»~å·yá´~ã¶}â³xà³}â¶~á²sØ£fÑ¡jÕ§pÝ©rà©nܨjÚ¥eÖ aÚ£eÛ¦jÞ©jà¥cØ cÚ£fÞ¦fÚ£cØž]Öœ]Õ_Õ¡dÖ¤lÖ£hÖŸhÖžkРcÏ¡dÖ£qÖ¥rÒ£gÒŸ`Ê™bÉ›dÓ gÔ¤oתtتvÖªnÖ©jÖ£lÔ¡hÑŸgÑ_Í›_Κ`Î`Íb̘`É“SÇ’RË•YΕZÏ•]Η_ЙfÓŸj׬oÚ¯tØ«sÖ­tØ«vÖ§sجvÕªuѤs׬zÛ°xØ­s׬sÙªvÜ°~߻߹wݳ{߸ݹհxϪmЫjΩjË¢gͨfϬjÒªs×®}ݯvÚ­vÕªxÕªqÕªqÒ¨nÒ¨pÖ¨rÔ£iÊšaËjתvݱ{áµvàµuÞ¸xáºzâ¶à¶„ݷݶ„ܴܲ~ܳ|Ö°yܹ{ã»}Þµ{ß¹~Þ³|×®tܵ|Þ¯€Ú±}Û¸zßµzÜ­qÅ‘UÅ™[Û·tݲtݲwÝ´|Ö«sÕ¤pÒ¥sЪsЫmÏ©nЧnÖ¬rÙ¯yÚ³{Û´~Ü´~ݹ~Þ¶tÙ¬pرvܹtÞ¹xܳxØ«r׫lÓ§dÕ­mܸxܶyÝ·}à¹~߶{Ü·~Úµ€Ú²uÛ¶uÜ´|޲߻~ß·‚ݲ€Û³yÝ´|Û²ܲ‚ݶ€Ù²{Ù°xÚ°qÖ¬qÖ¨rÔ©lÕ­oÔªnÓ©nÕ­vزyÕ¬w׬yáº~àº{ݵvÝ»}ßÀÞ¹†Ü¸…Ẃ⹄ངỄ޷~Þ¼|⼃߸ƒá»}ß»yÝ·vܸzܹyݹyÞ·|ݶ|Ú´wß·}á»~à¾{áº}Þ¸yß»vÞ·sÛ²xà¶xâ¹uâ¹qáµmÚ²kÖ®iѦeТiΤmÈ cŘ[ΤhÛ±xá³}àµzÞµ{ã·z廀ߴ„Õ¦qУiÕ¬pÛ²rܵ€Ü¹„â¸}à·yݵzÛ²wݸzÞ¸wÚ±xÙ®}Û¯{Ú²{ܸ|ܳ}Û®{ܲ{Û³zÙ³|Ú±}Ú°xÜ°wß²pà·pã¹à·~߶tà³tÞ®wà°xá»uà¹xß´~ß¹yÞ´sÚ±vܹ}à¸{ÞµuÞ³qä¸x漂⸃湂꺀å¶}Û±vÙ­uäµzß³pТcÔ jݪlܪjܯqß´kß­hÙªnФgɘ\“T•M¿˜P™WÉ—ZÍšYР]Í_ɘ^Ï›`Ò¤WÏ V˘\È•XÅ–VÅš^ÌeÑ iÐ¥hÒ¤hÖ©jÑ©gÍ lÍžjË¡cÍ¥_É¢aѨjÙ­kÒ¨eЧfѨeÒªmÙ²}Û³sÙ®eÖ¨hΡbÈžYΞaÏœ^ËžYÊ\ÌœaÔ£gТ`ТcÔªrÔ­sÙ§jØ¥fΣ`Ο_Ô§bÍ¥ZÆ—NÓOÀMº‰A¸‡B¿ŠLÃTÄ”TŘZË¡bÔªhØ­oקlÓ fÖ¨pݲt׫fÔ§iØ«iÖ¦eÑ¡eÓ¤bÔ§gÔ¤hÔ£cѤfתj½šjâ°oÚ¥i߬lë¼{ôÁóÄì¿†ì·…í¸„æ·ƒè»ˆè¾Šê¿…ï¿‚ê¾‚êÁƒì¿글繄澄ë¼}î»{é¹{趀깂ç³sé°xì¶~ä¯qàªså²zé¸yé¶yì»{ëº~ë¸|æ²xâ¬pä®hâ«gß©bߤ[Ô˜NÄŠ?¨i't> a;wP"tFn=rCg;b8tKT…X!rEC +bH#¢{C´‰PÉœZÙ©eÙ©nÝ«uÞ¯uà±sä³wæ´{å²xç´qäµnà°và¨oÙŸcÔ fÕ£fÝ«oã¸}ã¹zá´uà·yå¸~è·~æ·yã¸{â¶â¸}廀赀å³zá¸vå¸{跃一ãµ}æ´ãµ}à³}ãµ|äº~䶀å´zæ»wå¹{â´uá¶sã¶|á²rÙ«eÕ¨qÜ®yä°vá­mÞ¬kÞ§jÚ£hß©ká­fÝ­j߯eܧ`Ù¦hÙªh×£c×¢dן\Õ™VÓ™aÖŸ`Ö `Ô dÒfΕcÏ•bÒšdÒšfÏšfÑœbËŽYÆ[ΛgÔ£pÕ¨pצkÕ¤oÔ¢nÑžb͘`Íš^ÍœZЕ^Г\Í‘SÍ’VÈ”YÇ“RË“SÉ”YÊ•]Ï’aΓc͘]ÏdÖ¥xפvÒ hÏ¡iÑ¢jÖ¤kÖ¨hÔ¢eÏ£hÔ­vÛ±ݳ|Ü´|ݲxܲxà´‚àµà¸{Þ¹ܸwÙ³vزuÚ®q×­uÓ®rѬpͤjÅ•_È™^Ì¡hÌ fË¢dÉ¥g̦g̤dÍždÑ¡hΟeÇ™hΨsÙ³zÛ±{ݶxà¹yá¹|ßµwÚ³zܸ}߶~ߵܷyÛ´uÞ°vÛ®tÜ°xÞ³~ݳ|ß´„ܵ~Õ°wÛ³yàµyÙ°w×®mتlÕ¨lТdÑ¥nØ°z׫qÕªqÚ²vÙ­zПnÌŸaÌ f΢oÔ¬mÔ­rÜ®yݳyÚ¶⻂ä½á¼€ÝµuÖ¯r×°xÝ´{ݶxÚ³yݵ|á´{ß´zÞ¶zà·x߸zÝ´tܲqײvÖ­wÕ«sÕ®xÙ®{رuÙ´sÛ³v×µsØ´wØ°zÕ­u׬vÚ®vÕ©pÔ©pÖªsÖªuÕ«uØ«uØ«mÖ°kÙ®sà­wà¶yà»|ß·à¸æ¼€ã¿}ß»€Þ¸€Ý¸}Ý·}Þº€àº€ßµáµ}à²~Ù¬yÙ¯tÚ³xݵzá¸à¹à»â»}á´xá´xá»xà»zà¶~áµzß³tݳsßµváµyá¹}á¶{á·vÞ¹và·xã¶vã´sÞ¯qÔ¨lÒ¦gÓ¨hΨdÆŸ_ÁœcÅžf˨nÓ±r×®hرlÛµzá¸~â»…Ü´yÖ¯lÕ­rϨnÏ©kØ°vÛ±xÙ°uÚ«sÓ¥jÑ©jÔ«hÒ¦jЦjÎ¥jÒ§oÖ®oÕªsÕ«sÚ±nÚ±uدrجn׫sÔªsÕ§qתwÖ¯tØ®jØ©jÖ©gÔ§`Ó§eׯpܱqܳoÛ°kܬfجlÙ¬hÜ­iÚ±iÔ§ZÙ§cà·sÙ®jÓ§dÓ«gدqÔ¨fÎ¥`Õ«mجnÑ¥fШmÙ°s߯pá²uã»xàº{à¶{Þ¯jÕ¦eΣbÐ¥^Îœ[Íž`Ô©gÖªhÚªdÔ¦_Ê£]Ò©gجmÒ©j̤dÌ¢`Ì¥bͤbÓ¤hÕ©mÕ¬nÖ¯sدwרtÖ¨oÔ¯iÕ±lÖ±oÕ±gÕ¯lÙ¯jÙ®lÖ­kѤhÑ¥lسsÚ±jÕ¨fרgÓ¤dÊ dÉžXÈ™XËžbΦąaѨjئoÕ©kÓ­k×­kÙ«lÖ©nϧeΦcÕªdÒ©]É XÆšXÀ“V»ŠQºP¾R»ŠO¸ˆK½‹MÀ‘UÆ›]Π_ÒŸ]Ñ¡^שmÛ±rÕ±mÚ°pÚ¬nÖ¬lÕ¨mÒ¨kÒ¬lÖ¬hÔ§cÒ¦jØ­t¿šoá«jÞ¨jä°xí¿ŠòÅ‹óÁŒìº‰í»…ê·}ê¸~쾂ìÂ‰í½‹êº…ê¹€ë·ê¶€æ¶y鸀뼇껂鼅è¾è¶}è·„ðÄò„î¹~î¼óÇŒõÇôÆŠöˆ÷Ljõ¿†ð¸zê´wè³xé°jæ¯eãªiÙš[Æ„:¨`x8e>yVzNtFuDi8f?zU!‡\(‡Y$m>C( kW%¤{B²‡KÈž`Ó§qרrÝ«uÝ®uà³tãµxæ¹zé·~è¶é¸xé³mä³má³uá­rߨsá±~æ¹{â²vÝ«sâ°wå´{é¸|칀㷂ݴâ¶~亀ä¶|à·uáº}æ¸|ä¯rá°yäµxæ´wâ´yß²uâ¹}罆äµã³}åµäµzã¶à³€à¯xá¬sÛ©hÙ©là°xæµxà­rà­uä¯uà«sã¬uæ²râ´nà°mÛ¨eÚ§kÜ©jÚ¥cפjØ¡eÖŸ`Ô[ÕŸ\ןaל`Õš`Ï›^Ñš^Ø¢fØ¥fÖ]×]Ôœ^Óž\ÓŸ`Ñ¡eÕ¡fØ¢fÕŸeЖ`ΓWÍ•PÌ—XÏ—XЗTÑ•[ЗbΗWÌ•UÍ•]З[Ë”UΘaÓ¡hОcÒ™aÑŸjÓ©qÖ¥oÎfÎœ_ÍžgÊ gÒ¡fئoØ®vØ­tØ­uܬzÞ¬yÞ±wß²uÞ±zß´zâ¹zäµzß®wØ©oÐ¥iÑ¥nÓ¥nË¢jÅ›aÀ’WºŒU¿•]Ç—]È–bƘ^Å–]Ç–eƘaÅ“ZË”fÍkÑ¥oݵ~ß¹„ß³}Þ³xܳ|߶~Þ¶|Û°{Þ³€Þµ‚Ú²vÚ¯tÙ®y×°rجlÛ¯tݵvײvÛ°vÞ±uÕ¬qÖ®qÙ²oÕ¬tÓ¦rΤkШnÚ¬vÚ¬{Ú±zÙªrÕ¤mÛ±yÚ°|Ó¥pÓ§mÒ©lØ®ràµ{Ü·|ß¹€áº€Þ¸yÞ»~à¼ߺ~ß¼~áµyÛ²uÜ´vß´~Ú²{Ú³{Û¶|Ù³xÛµxÛ¶zÚ°xÙ©lרiÛªpÕ¡hÊšfÏ£qÓ¨tЫoÓ©pÕ¬vÕ±qØ®oدpÙ³sÙ²wدxׯqÕ¯pÕ¯rݳxÛ¶{Û±{ഀ߹~ܹ|㼄弉ἅῌ⼊Ṃ޺ƒÝ¹}زyÔ¯tÔ±rÙ³sܳzÚ°vÙ°uÖ®uϪlÔ©nÛ®sÞµvâ¹wá¼|á¸{à³{ß³yݸyÞ¼‚ã½…ã»Þ¶{߶xàµ|ß´ä¼â½}ßµsà·xãºuã¸vãº|á¾xà·tÞ°mÚ¯pÖ«kΣgÊ¡mÅŸiÂœdÄ iͧjÔ­lÖ³tܶyâ¹濈á¼}àµyÛ­~ϧnϪjÙ­uܲ~Û¶€Ö³wÔ­oÔ­kÓ°pÕ®tÒ«sÒ«uÕ­pسn׳sدrÞ´|ݼ~ݹzÞ´yÚµwÚ´|Û¶xÙ·uÙ´yÙ´tׯsÔ«oÕªiϨhÌ¥gÒ¨j×­nÙ±sÙ­qÖ¦iЦgЦjרnТaÍ£[×±oÓ§hËžYÒ¦f׫kЦ`Ð¥bÓªeÓªkÕ©pÕ®mÚ°qÛ¯rÖ¯rÚ³wÜ°xÜ­xß°vÞ¯kܱoß²xÙ°oÙ±sÞ³yÛ®mÕ§eÏžYÉšWËœ[ËœWÆšUÅ—VƘXÆ›\Ä›^Æ`ϤkÕ©qÕ¬oÖ­qÙ­nÖ®r×°xݳrܳtÚ²u×­qÙ³w߶wÚ°hϦcѨhÚ²p×°mÓ«lÙ­sÕªnЦeÊ `Ä›WÆŸVÇœYÇž[Í¢cÓ¤gÑ©hÓ«mÙ«oÚ«oØ­oÖ°lÕ¯oÕ­tÕ«j׫fÖ­iÒªfΦbÍ£cÈ¡fÃœ`Á˜U¿–SÀ“P¾QÄ–YÍ¢^ϤbÖªjÚ²lÙ²lÞ³qÞ±rÖ¨jÓ¥hÓ¬rزtÚ±tØ®qجpݳr¸ nâ¯tä³záµàµ€è¼îÀˆí»„ᅥðÁŒí½‚켂鹅è¹~éµ{ç¯tâ±qá¯sá°qÞ±oàµu繃뻎뼌쾊è¹}ã³ué½ïÁ€é»}äº|ë¿„ò¿‰õˆöLJöƆõÀ‡ò½ƒì¼|ì»}í¸sç¯eã¬lÚ ^É‹E°k0{;^3 tR€V~O~LrCtR"Œi2“k+ˆUe3 C( v_)¥|<¥|?»–ZÓªq׫pÞ­mß²rá³uçµwç·~å´†æ¶~ç¹wåµ{ç´xèµtç²væ±vä´zäµ{ä³xâ®vä²xä¹{å¹廅忄ⶀâ´ã·|Ý®rÖ«sÙµ}ß·à²}â³yå´uá±xà²{à´yÞ»åÁ„é¸â°~Þ°}Ý®yܯvÛ¯vÙ«tÚ«pÙ¯tÚ°yÙ®vÜ®qÛ¬pÛ®tß²vá®tâ¯qá¶uâ¶wà¬mݪlÞ¯uÚ«tÙ¦qÝ©mÞ©gÛ¥cØ£aÚ _Ú¢bØŸbÕ˜\ÓYÖ¤`ܦlÞ«qÚ£iÕšgÖžaמ`ÕŸhÒ¡aÔ¡`×¢fÑž]̘XÍ“bÌ—`Ï^Ò™]И\Ñš\Óœ_Ñ›\ϘUКVÌ•TÆ”XΡdÔ¨lÕ§rרrÔ¥kПcÑœcÑ›iÌgÌš_Ì™fÑ£nØ«qبxÙ¨uÔ§pÑ£r׬sÛ²vÚ¯yØ­uÙ¯{دwÔ«xÓ¦pПfΠjÒ¡kÏeÊ›aÆ•Z¼‡P»ŠOÀSÄŒQÅ‘OÇ–TÇ‘OÅRÆYÅVÈšcЦtÙ¯yà¹{à½|á·€á´~ܶ~ݶݲvدy×®yØ°oØ­uئv׬tÜ´tݳrܳrÛµ{ܲ}ܲ{Ý´|Û²wÒªsѬvزuØ«yÖ¨rÚ­mܲ{ܲ~ݳ{Ü´{Ø«mØ­sݵÞ²zà´~á¸}à¹}⹄߹ݹ‚߸zܳrÛ²}Ý´{Ú³uÙ²yÛ´wܱvÙ±rÚ²uÖ­qÒ«oÕ©oÕ©lÖ­pÖ©oجmÖ«jÓ©kÕ³pѬhȤhˬsÒªpÔ¬oÖ²sׯsÚ³wàµyàµvß¹xá¸{Þ»Û¼yݶuݳ€Þ¸}ߺyß¹~โ߻‡Þ¹„Þ¼~ß»ƒÛµÚ¶zݵ{Û³{رvÖ­qЩlΩhÒ«qÙ·|ÚµtÒ©mΦoÒ§nÔ©oÔ­sÞ¶zâ½}à»|á¹~Þº~ݶ{ß´zÜ´tܵxß¼|ݼ{ß¹zâ½zá¿á¹€á·}Ü·|Ù±|ݵwÝ·{Þ¶}â¼xá¾zß»vã»sé¾â»ÜµvÚ³yÒ¬qÊ£fË iЩmÖ±nܶuß¹xá½}ãÀ„á»~ß·}ß²Ù­yÔ­sÕ²wÛ¸à¼Ý¹yÛ³uÛ´yܵ{Ý·}Ú´}Ù²zÛ´vÚ¹~Ù¹}ܶvàµzà¹~áÁá¾}Û¶{Ù¶zß¹|á¶Þ¶ß»{ß¹{ÚµvزrÒ«jË¥gͧnÚ³{ãº}Þ·vÚ³sÖ®nÓ¬sÔ«pÔªg×®mײsÖ¯oÕ¯hÖ²iÒ«eÊ¡ZÌZËšbËŸeÒ©oÔ¥iÔ¤cÒ¨fÒ¨iÕ§mÓªoÓ°jÖ¯h׬hܯjßµ{Û´}Û´tÞ´sÖ«iÒ¥^ÏŸXÈ™WȘSË—SÉ™ZÄ™Z“Z¼ŽT¸†I½ˆPĘZÈ `Í¡fÑ£hÔ£nÒ¥mÖªeÙ«mÕªpÖ©mØ©sدoÙ¯jتjЦiÏ©j×®oÖ¯oÔ®pÕ°rÕ®rѨlÍ ]Ê`ÈbÅ›YÀ•YÕ^Í£`ϪjѦpÔ«eÖ­cÙ¬h׬eÕ¬e׫gÔ¦bÖ©hܱnÙ±jÙ­jÕ«oЫoЪnϨhÇ Z–\˜cÈ¡dÒ¦jÖ©k׫lÙ±tسrÙ®rÙ¬pÕ¬eÐ¥dÒ¥k×­qÛ±tÞ°sÚ¯uÞ²y¾žqß±yÛ¯s×®sÖ¨sݨrê·~î¿‰ë¼‰í½…ëº‚è¶{é´wè¯xâ®xä®uæ¬oá²tß°sá­må°oè·xè¹}æ²~ã³{â®rà©lå°véµvæµsæ´vìº|ñÁ‚ó½ƒó¿‰óÄ…ôÆòăﻅð¼‚ï¹|êµqé±ká¥`Õ–K¿x3ƒAW- +qN†W"…MˆRTˆ^'—q8—n9|JM&E-ˆd*ª{A¥tF¶‰QϦgׯtß³tä¸}庀ä¸zæ·~èµê´}ê³wè¯på°kã²lå´vä³wä¯uâ¯{àµ}â¶|ä²yà±zÞ°~â·„æ»…ä³~á²yà°tÛ¨rÙªrÛ±z߶ã·€âµá´ݲܱuâ°sá¯uã¶zâµwÚ¯nجrئrÔ¦jÔ¨iÙ¬uݯ€Û¬{Þ²yÛ²~Û°zÛ­mÖ§jبoÞ­jܲnÛ²sß³uâ²rß­qà³u߯qÚ¦gبfاfܦaÞ§cß©gܪjÛ£hÚžbÚ cÚ¥fܨkß«pÛ¨jÔ¢jÖ hÚŸ`ØžbÕždÕžaÖŸZÑ›XÍ“WÈSÊ•SÒ–\Ò•ZÒ˜YÔ˜_Ò•]ИXИUΓSÊ‘MË–QÓ ]Ö£cÕ¢bÒ^Ë™\Л\И_Í“]Í”YΕZКa×¥hÚ¨kצmÓ¤kУkÒ©kׯrÙ­zפnÒŸgÊ fÍžgÑœlÑ jѤhÒ£iÕ©oÓ¦lΞgÊ—_ÇNÆLÅ“QÈPÊ”NË–YÌ’UÇŒNÄŠUÊ™`Ö¯lܸtܵzݯxܳwݶ{Û±|Ú²yÔ®xÔ§pÓ¦mѨuÑ£pÑ¢nÕ«sß³€à¶€Ýµ~߶}ßµ}áº}á¾zÞ·}Ù¯‚ЪuÓ¯oÛ¸}ÛµƒÙ²~ÚµwÞ´{ã¶~âº~ݸ{رtÖ­sÛµ€áº‚á¸yà¸vݵ|Ù±xÛ®qÚ®yÙ®xשsØ«sÙ°tÙ­tÙ±zÙ¹}ܹ|Û³xÛ´uÛ²uØ°zÚ´wܶxر~زxÞµ}Ûµ|Ú¸xݼ€Ü·uرsÕ±vÖ²pÛ´yÞµ€ÝµwݶvÞ·uÛ»yÞ¼zà¿{ß½{â¹~áºà¹wà·|߸~Û¹}ݺ€Ý¶ƒÚ²„ݵ~ܵt×®rØ®rÙ´qײs×­qØ®p×®pÑ©fÒ¬gÝ»{Þ¹׬yׯxܹ{à»~ß¹}Ý¿‚ß¿‚⹄Ẁ⹀â¹ß¸‚Û·~ݲ~߶ڹxÙ¹qÞ¼{à¸ß³ݵ}Ù³vÕ­mÔ«mÛ±tà·vÞµ}Þ¶|Þ·{ໂäÁˆã¾ŠæÀƒå€ὀܳ|×±xÛ°vÞ®vṀἅ⸂㼂޻~Þ¹wâ»xáµyÝ´x׳uÖ®sܱ{ݵ|ݵ{ܳzرvÚµ|ÛµƒØ³|Ù¶vزyײuÙ¶zÞ¹~ܶzܱ{ß²{ßµzÝ´zÞ´|Þµtܲpݵwß¹yݺyÝ·wײuÓ±uÔ°uÚµ{ß¼yá¶{ß°yÚ±vÙ°Û´|Ù±sÚ¬vÙ±{ײ{زzׯrѨfÉŸ[ÅšTÄ–UÈš^Ï¥oШmÑ¢cÓŸcÔ¥bÖ¨eÕªnׯqÙ®nÙ¨hݬoáµxßµtܶyÛ¶wÔ©dÕªcÖ¬iÕ¨hÕ¨gÒ¦eÏ£`Ëž]ŘZÂR¼‡J¹ˆI“SÈš]Ê`ÎbÐœcÑŸcÔ¦cÕ¦hÓ eÒ fÒ£jÓ¢dСdΡdË¡_΢eÓ§lÒ©mÓªmÕ«fÕ¨`Ñ£bÊžbȘ`Ëœ`É `Ä›ZÄ—]È›dË¢fΤdÒ¡hÒ§nÕ¬qÖ¨nÓ«e׫iÓ¤hЦhØ­jÚ¬kÖ©mÖ©qÙ°iÖ°hÒ¬lϦgÉž`̤cÔ«jÕ­qÕ°rØ°pÛ­rܯuÛ±pÙ¯jÓ¬gÓ¨jتqÛ¯sÛ±sدtׯuà±zÀœuÖ¢lÑœjÑ›cÒŸdÚ©næ³uéµ|è¶{ç´xâ²væ´|í¹ƒï·}î¶}ð»í¹ué¶sí·yî·ví¶pî»캆é¶é³wç²qè´uí·yíºxò½zó¿€ò†óÃó€ñ¿}íºvðÀ}ô¿€ð»òÁ‚ñ»~êµuèµrä¬hÝžT̉9”PX) jHˆ[$ˆX'‡[)U!…Y‘f,Žd+i=;L5Žj3­G¯‚L¾‘ZШsܱޯtÝ°pá·~缃ê½~è¹xêµxé·vå³sâ°oß´qá³tå±vâ±|â³zá´~ܲ|Ö®rÖ¬mݯuà·~ãºzâ´xá¶{á¸|ß²yݯtß²táµ|à·|Þ¶tݲvÙ¯sÙ­pÞ«vÚ©rÚªrÝ­uÚ¨rÙ¤sÙ©sØ®sÙ²xⷅ涀߶tß¹{á¶~ݱqÜ®nÝ­oÜ®pÝ°oÛ®qÚªrÜ­qÝ®pݬpÞ®wà¬rß©nÞ©má©lݨmÛ¦fߪiÜ®fÚ¦bÜ¢fÚ¥eÙ¦eݪjà©fÙ¥^Ó¡fÙ¤jÙ¥cÕ ^Ôœ[Óœ^Óœ`ÑšYϘYΓZИ_Õœ\јWÑ›YÔ›XÏ“UÑ”QÑ•QÎ’VÎ’ZΖYΘW̘TË—UÈTÈVÑœaÕžbЗX͘XÏš^ÓŸ`Ô¢iÕ¢fÔ¡^Ò¡cТhÓ£nÖ¦mÑ¡cË–ZÆ“VÂTÈ‘]УnÖªrبpÕ¨pÖªnÕ¦cÍ›^É”TÊ‘RΖ]Л\ΖUÍ–TÐœYÏ—[Ç‘UË›aÙ¯qÝ´yÛ¯xݯwÜ«wÕªrШnΡdÉ›aÄ—cÄ—aƘeƘcÌŸaѬj×±yÛ³|ܱwÙ­tÕ­vÖ®}Ù³‚Û´Ú°xܯvÖ®yزvÞ¶{Ú±€Ù±}߸~á¼zÞ·wß·{á¶|àµ{Ûµ~Ú°zÜ°uÙ´tÚ´yݳܲ}Ú­xשlÒ¨fÓ§oÔ«tÖ­qØ°{Ù¸}ß¹zâ¶Þ´€Ü²~Þ¶~ݸ}Þ·yܸ|Ú·~ܵ~߶€ß¸„ݺ‡Þ¹€ß¶~ݶݵܵ{ݶxÛ³yزzÞµ~߶uÙµnÛ¶zใ߹€à¹ƒÝ·€Ù·ƒÙ¶}Õ¯sÓ¯xÙ²€Ü¯yجt׬pÕªqÖ¬xÞ´}Þ¶Û¶}ܶ|ݶzݺ‚Ú·ƒÙµß¾€Ü¸{سuܸváºzà¼Ý¼„ݺ~Þ¶zݳÚµƒÞ¹ÞµzÛ¯wÚ°zÚµyÛ·vÚ´uÚ²sÚ³wܵxÚ¹|Û´yݵzÙ´u×­r×´uܳ{Þ²„ܹݹ‚ß¼€Þ¿ƒß¹‚ߺà¾~ã¹yßµyÛµwàµzÝ´yÝ·vܵzÙ°}Ü´{Ú³zÛ³⸀á¶{ÛµvصvÕ±vÔ²xزzÛ±{×±yÔ­sÒ®tÖ²{Ú±{×°tÕ­qÕ¯wÞ¶zâ¶zÙ²zÖ°zÛ³{Û¶xÙ³tÛ´{Ü´|Ú²xÙ³}ܸƒß¸€Û²zÖ®tÙ±tÙ­rÔ­uÖ²wÕ¯uÔ«rÖ«r׬pÔ¯tÒ­oÕ©rÔ¨sÓªoÓ«oϪmË¥fÉZÆ•YÆ—ZÌ¡aÏ¥hΤnѤlÌžfФoÖ§oÓ£kÓ¦lÓ¨jÓªjÕ±rÚ³yÙ­uÚ­rÚ­pÑ£kϦnÓ©pÖ«qÙ¬lÖ¦eΡ[ÆšT¾ŽT»Lº†D»ƒN¿VÄ–^È›bÈš\ÊšaÏŸdÒ¡`ОaΠb΢_Íœ^Ç•[Æ•UÆ–[Ç”ZÈ•YÅ”^Æ™`Í£bΤdÍ¡bÊ ^Êž`Í¡bͦeУ`ΟZÈ™XÈ—[Ë™^Ì`Ï¡gÕªmײmÕªnÑ¥iѤdËžfË¢gЦkÏ¢dÍ¢XÍ¡^ѦcÕ¨fÓ¥lÒ¨oÒ¦hѤkѨqÔ¨nÕ¨gÒ¨jÓ£kѤfÑ¥iÔ£mÔ¢oÕ¤lѤiѦqئq×¥kÕ©tß²xÂqâ«náªjå°oç¯på±vê·yí¶tè±wä¯pê³tó½õ„õÁõ¾}õ½|ð¼sð»uóÁ~ó¿xó½}õ„õŃõÂõÁƒôÀõÁ~öÈ„ùÍ„ù͉øÌŒøÈ~öÄ~ö€õ¾zê·yê»tñ½{î¹ñÂ|ñ¿zî´yé»~é¹{ä¦aÔ“Eª_#d* +_A†c ’d&ˆ^(}V~V…Z'€O&X* < eIšp0±€FÂ’UÒ©jݲtã³wÞ®uÙ­tàµyå·|ç»~è½|åµ}æ´|å´qá°mâ²oâ°mà¯tá¯sà¯oá³wá±{Ù¥tÓ§qײzá¹{åº~漂待佃ã¹~á¶}à¶à´~ݱ{Ú­tÛ«lÜ©oרtÙªoÝ«nÛ«uÝ­wÜ°zᴀ漀ä¼㻀軃ç¸â¸â¹‚ß´vÚ­{Û¯{ß±wݯzà¯wá±uÜ®vÙ°qÙ³uÞ²~à²qÞ°pá±vä²qâ±oá­oà«oß­oÝ®jܧgÞ¦kÞ¦iߧkà¬qߪpÛ¡lÓcÓžbØž\Õ [Ö¡]Úž^Ú¡[Ù£`Öœ\ÕšUÕ _ל`ÔšWÒ›^Ó–`Ò™VÔ›YÑ•RÌ•NИYÔ˜^Õ–YÓ˜YΔVÈKÌ”UÕ™^לYÔœWÑ™^Ж_ИbÐbÒœcÓ˜eГ^Γ]Òšbј`Í’YÊ’VÊ‘VÉŽVÌ”ZПfÔ£mÔ¤hÏŸcÌœ\Ì—ZΓ[Ë”ZÌ”VÑ™WÑœZ̘TË•NΗ[ÑšeѤdÚ²oã²}à­|Ú¯uÙ©qÔžnÌšaÅ”R½ŽM¼‰J½…L¾‰WÄZÊšc׫yÛ³|Ú²w׫zÕ©tÕ§jÑ£fѨmÓ§tЦvÔ®{ܲ~Ù±zÛ³uÛ²{Ù®{ܵyߺ}ໂã¹~â¸{à¸Þ¹‚×µ}ÒªqЪmÕ­wØ©yܲ{Ý·€Ú´yÚ²tÖ¨pÔ®sÛ´}ݵÚ¹€Þ¶€ã¸~ãº}ഀ߳zݳ{Ú³}×´zÚ³}ܸÛ¹Þ·€àµ|Û´}Ù³wÛ³wÜ·ܵ‚Ü´€Û´~ص}ظ|Û¼Û¸|Ù´yÛ´‚Û´„Ù·‚ݸ‚Ú´|زxد{Õ«yѪtÖ­rÙ±vÖ¬zÔ«uÖ­qÙ²tÚ»vÞº{à¶}á¸vߺzໂâ¿{á¼zß·‚Û·}×°uÙ°wÚ¶|Þ·{à¹{Þ¹‚Þ´‚Þµ}Û´‚ݸáº}ßµyÛ³yÙ·zÙ¶zݶwÞ·zÚµ}ܼ~ß¼zÞ³zݸ{ܹ{ݳÞ·€Ü·Ú¸~۸ݻ…Ý»~ݶ}Ú°€Ø±zÛ²yßµ{ݲoÛ­lÞ·wÚ±vÚ©wÛ¯wÖ°xÚµzݯuÙ©vÚ¯tÚ­qÔ©nÕ¬kÕ¬lÓ«mÖ®x×®zÓ®pÓ­rÓ¬vײvÝ´{Û°zÕ®xׯxß·z⺀à¶yÜ·~ܹݲvÚ¯xÙ´{ܲzÜ­zÚ¯uÖ¯uÖ«uÙ­vØ­xÖ­u×®sÔ«rÓ«mÕ¨tÔ¨sÓ©kÖ­p×±vÔªsÖ¥hÔ§gÒªgÕ«nѦmÆ™\Ä”WÆ”VÈ’UÍš]ΡhÒ fÑ¡bÌaΟkÐ¥mÒ¢fÓ¤iÒ«kÓ­hׯnÚ³yÛ°rÛ«sÙ¬rÕ¨iÕ§l׬nÛ¯lá²uÞ­oÒ¢aÈ™YÑQÀŒMˆMÀ†EÀˆHÅRÈ”PÈ–SÈ–TǘQ̘YÊš\ÊŸ\Ë›^Ä•UÀM¿‹NÀPÀSÁTÀ’SÑXÇ“ZÈ™VÍœ^ÍžfÌŸbÎ_Ð^Ñ¡`Ó¡_Ξ\Èœ`Ì aΣ^Ï¥gÔ«kÓ§gСfÍžhÊgÅ›aÄœcÈ `ÈœZŘ[Å”^Ë–ZÍœZΟ`Ñ¥gÑ£cÌaÈŸgͤfÓ£eО^Ì›_Ì™_Ì™RÉ–TɘbÍœd͘^Íš\ÐaÑhѤmÚ¯o¹œhòºyò¾~ôÂ{ñ¹{ð´vò¹vò¸zî¶zëµxñ½vödž÷ȉ÷Ä‚ô½zñ»tð¼uï¹xñ½yóÀxò¾yõ‚öÅ‚óÂôÂ~÷Æ÷ÆøÉ€ûÎ…úˉúÉ…÷Ãó½~ò¿|ñ¿|í¸xê¹xíÀyí»xí¼zñ½}ð¸{é·vé»|å®tÚšRÀw'~9 X-|T•b,…U(sFoGuRqFJ% N4Šg)¯~:ÂUÕ¥já±zåº~å´{߬vÞ²yã¹ä´wä¶}织ç¸zæ´wä´rå·ræ´tå±qã¯rß­lÞ­gÞ®oÞ¬sÞ¤oÚ¥rݵ€æ¾ƒã¸Þ²}ã¹xã»yá³~ß±|Ý­zÛ­}×­tØ¥pÚªvÞ´{ß³xßµ{á¶{á¶uâº{å¹€æ¹{ä»ἄã·ä¶{ã¶xâ¶zá·{ݲyׯtÙ®}Þ°}ݳtÛ´sß³vÞ³}Ý°€Ú±}ݵ{Þ°uÚ¬xÜ´vÞ³rܪrÛ«qÝ­jÛ¬eÜ©eݨbܪgÛ«n߬há¯mÞ¯oÚ¨jÕ eÑž^Ô c×¢bØ¢aÙ hÚ¦jÚ©iÕ¡`ÔŸcÜ£hÖ ]ÏšWјUÔ™TÔš\Õ™[Õ•TÑ’QЕSÔ˜PÑ™NÒ›UÒ“TÏUÓ–cÔž`ÕœXÓ—]Ñ’\Ñ–ZÍ•YΔ_Ô™]ÓšYјWÍ“RÍ‘UÎTËSÈ’SÈ”VÈ•SË•TЙVÏšaΙeÊ“YÄQÈ‘V̘[Ë—WÍ•QÏ–UÌ•YÈOÆŽSΗdÖ lÚ¨sÜ°xÞ±sÜ­tÙ©rÔ¢fÈ–[ÁOÀ‹QÀ†T¿‡L¿†F¿‹OËf׬vܯwÙªvÖªpÕ§pÒ¥uÑ¥oÍ¢kΤoШoÍ£rÔ¨zÚ±}Ø­}Ö¬{Ö®{Õ±zÛµyݲ{ݳ}à·à¹á½}ÛµyÕªtÕ­iÓ«iØ®vÒ­tÖ­wá·|߸{Þ°vݲvÜ´vßµzÞ¹}Ú¶{Ú°{Ø®zÖ°xÖ±x×±r×®qÖ®sÖ®q×­sÛ´|ܶÛ±xݱwÞ±vÝ´yÛ¸{Þ´{Û±{زyسyØ°xÖ¯wÓ¯Ô¯}Õ²uÕ°uÕ«tÓ¬tز{Ú¯Õ¯~Ö¯xÒ­tɦrÊ¢rÍ©vϬxÕ¬uÙ±xØ´|Ù²{Û·}Þ·~Þ´|ܳ{Ûµ{߶{ß´€Ý³|ÛµxÕ³vسwÛ²€Ýµ‚ß¼|à¼~߽߿ݼ‚Þ¹€Þº~Ý´}ݲ{Úµyܳ{Û°wØ´yÛ¹|Þ¸~ܶ‚ݸ‚ß¾„ߺ~Ý´|ß´~Ý·Ö¶€Ö±~ܳƒÝ¹„Ú¶Ù¯{Ù±zرyÛ³vݵoÛ´rÞ»yÞ´qÙ­kÙ´{زxÛ³nÕ±mЪpׯyÕ¯sͦgѬpЪt΢nѨrÓ¬uÖ­wÛ²}Ü´zݶwß¹zÛ·v׶tÖ³vس~ر{Õ²oÔ²lرrØ°xÓ®xÑ«uШoѨoÖ­sدnØ«pجpÕ­o׫uÙ±{Ö²x׫tÙ°r׳pÖ±qÙ¯uÙ°}Ø­tØ©nÖ§tÕ©qÕªjТfΠeÕ¦hΛ^Ç—[ÈŸcÌŸbÓ¥gÓ©fТbÓ£iÓ§kÔ¦jÔ«iΧhѤhÕ¨lÕªsѧnÒ¦mÔ«uÒªmÕ§lجpØ®mÖ©lÒ¤hÍšaÆ“]Æ“QÈ’KÆ’KÆ’MÇ’OÈ•NÊ“NÉ‘SÅ•NÁ“KÃŒNÉTË–TÄ“U‰MÇE½ˆF¿ŒDÄBÄIÅ‘TÇ’ZÅ”VÇ“TÉ”TÇ’YÆ“UÈ–QÈ•YÌ’XΙZÎœ\Ò›YÑŸYË¢`Í¡bÑŸcÍš`É—WÈ—WÅ“VÁ“RÅ’UÈ‘WÇ’OÇ’KÅLÅ“Q˘]ÒœaÔ¢^О`Ìœ\È›[ΚeÑžgПbÐœaÌš`Ê™UÆ”TÁ‘^È”]˘Yʘ\Í›^Ï `ОhÙ¤m¹šeò¿wñ»uó¹yï¸uð»sõÁ~óÂó½~óº}õ¿€ùÈ‚øÉ„øÅ„ö»vñµró¸uö¸{ó¸|ð¼pð¼oõ¿zõÁ{ñ¹vñ»}öÅöÁƒöÀ~÷Á{õ¿{ô¼xò¸xí¸{ë¼ðÀí¼{ìº~ï¸{ë±sè·rìÁtë¶xà«tß²vç¸tã©iÑ‹F¡Yi5qH‡X"{Mf=]: aAY5I- x]'¼“TÑ£bÙ¬jâ±tä°vã´vå·zæ´zå·{æ¶{ã²vã·‚ê¼…è·zå¶{å³{æ´xè´}â­{â­sá¬uÞ«rÞ¬lÝ«mÝ©tß°|㸄å¸â¶xã´wâ±z߬vÝ®tÚ®sÛªtÛ¨vß«uÞ«vã±zè¼xäºvæ¶~ê¹è»}å·~ã»~ã»}â²{á³yݲuÚ®xݳ{Þ³xÝ®vÝ°uÝ°rÛ¬oÛ¬tÛ°zÙ¬t׬rÙ¯sتh׫qâ²à°yÙ¯xÞ²uÜ°i׫o×­{Ü®wÜ©jÖ¤`Ù¦ià«pݯkÞ°pã²sà³pݯoÚ©lÖ£hÓŸgÕ£_Ú¨`Ü­jݯoܨl×¢dקdݨeØŸ`Ö›X×›ZјWÒšZØŸWÔ˜TÏ•WÏ“TÐ’SΗZΙVÏ•UΕ`ÖaÔ›[ϘYИYÒ—TÒ–UÑ“TϘYÔ›^Ó—\ΔWË‘UÌ‘ZЕ]Ì–WÍ’RÑ’TÏ”TÊ“QË’NÏ•]ÏœdÍ•XÇQÈ“WÑ dÐœ\Ê‘PÌ’WÉ“QÊ’OÏ”ZÒœc×£kÖ§mÖ«vתwÙ¨uרoÒ¡`É“RÄNÅ‹QˆX‹QÈ’RРg×­pÚ±vØ­zÙ¦tÕ£oÓ¦qÖ©rÖ©rÕ©sÙ­sÛ±vÖ¬sØ­tÚ¬uÖ¦pØ­sÚ°t׬vØ°w×±xÚ°}ߵᶀ㻂⻂ܶ|߶|ã»…Þ½~Û·vÝ´Ý·€Ý³vÚ²vØ·yÙ°u׬uÖ°}Ö­Ò«yÑ«tЦnѦwШzѧsÕ©uÖ­uÙ±}ܲzÚ³xݶƒß·ˆÜ³{Ú¶{Ù¶~دtѨqÒ«uÔ­sѦnЦsЫxШuѨsЪnÑ©qÑ«vÓ®vÔ®sѬsÒ¨tÒ¤t΢rϦmÒªpÖ°}Ü´}Ù°wÕ«{Ú°zÞ¶}ÞµzÛµ{Ú¹€Ü¶xܲrݶxà¹~Þ¸{Þ¸~â»à¸Þ·Ú¹}ݸ}á»á¼~Þ¸~ݸܸ€Ü¸ߵ߷„Ý·}Û¯yÞ²}ݶ‚Þ¶€â»à¼‚Ẁ߸zÛ²|Ú±{ܳvÙ°uÖ®yÚ¯{Ù®z×®tرqØ´zܶyà½äÂŒçÀŠå¿†à½†Ý¹Üµ{سuÖ²sÓ®rÑ«qÖ°yÖ°vÒ¯vØ°xØ«sÓ«oÕ´vØ·zÛµzßµ€à¹…Þ¶ƒÜ°vÚ°mÖ®pÍ¢hËž`ÊŸdÇ›_È¡eΪqÕ¯tÕ®uÓ¬tЫnÓ©qÔªvزzܶ{Ù±qÙ­tÚ²|Ö³sدrÚ®zײx×®u×­yÕ«uÕ¨mÓ§rÖ¬rÙ­kÕ¨nѨnÑ©rÖ«pÚ¬mΣeÈœZÌaУhÓ¨oПkÌœdÐ¥cÕ¨eÕ¤gÕ¡eÍœeÉ™gÒ£lÑ¥nÊš`Íœ^΢iÌ fË \Íœ^ϘbÉšTÆ–RÅŽUÅŒQÇTÉ•SÈ”OÍ”NÍ›UÌ›XÈ’SÇ’RÊ’RÇŽKÅMÈ’OÇMÅŒOʼnHÆ‹FÄPÅTÉ‘QÈ“TÌ“SÌ’UÆ‘SÈ‘QÉOÆLÃLÄŽHÁ‰JÄŽOÊ›W͘TÊ‘TÇ—ZȘZÈ”VÅ’RÅOÇ’LÄ“LÃMÇŽQÈ’TÅ‘WÇ‘RÇ”HÆ’O˘[ΞbРcÕ¨dÕ§jÓ¡fÒ¢eРeÍ£_Ï£dÏ¡eΣ^Ë ^Ç™]Å™UÉœYÌ™dÉœd΢bÖ¥bÒ¢aجe½œcíµqé²kê´që°rë±uï¶zñºvð»xò»vô¿róÀ{öÂ÷Áxó·qï³mí³lî·jë¸mè³jè²lï¹zó¿|î·vð¸söÁyøÃöÂ{õÁwñ»sð·oî·vê³xæ³wí¹{ï¼xíºuë»të¹tí¹}뺂æµ}Ý«oÙ©mÝ­uà«mÚŸXÀ†@”\%qClCiBX0 L% K& N* kJª†Qتnâ´rå·|躀æºzß±r߯wä·~蹄봃岀仃轄鶀è³{è´væ¶vä³tä±mã²qâªuÞ©pÞ¨gá©kà°tà³xà¯zà«vá°yÞ²yÛªtÙ¨oקgÖ¨oÖ§uÚ¦mÞ«rÞ¯{ßµ}ã¹zâ¶yâ¶wæºvæ¹~ã¸~á·yâ´wß±|à±{Û®uÙ¨qÙ©sÙ°tÝ®tÝ©wÚ«nÙ­l׬sÛ°rÚ¬lÔ¥mשnÖ¨kÕ©zß´„ᶀڲ~Ù²~Û¯yÝ°}Ü°zܯwÛ¯u×®tÛ­x߬xÞ²zÞ´vÞ¯qÞ®qÞ±oß®jܧbÙ¦aÛ¦eÞ¦eÞªfà®hà­oܨhÙ£_× gÚ nÙ¢dÙ¢ZÖ\Õž]ןYÕœVЕNÒ–NЖWÑ–WÒ˜\Ï•\Ö™cݤgØŸYÒ•PЖVÓ—ZÓ–[Ï–YЖXÓ˜WÏ—UΕTÌ“OÌ”WЗZÑ–RΔUϘZÏ—VÍ“QÎ’QΙUÒž]ЗWËPΑZÓ›bК^È’QÈ”UÌ—[Í—U̘VÐdÒŸcÌœaÏžhÓ¤nÔ§rÔ£nʘ_ÄTÇQÉŽTÇVÈ‘SÏ¡aØ°qØ«sÕ¥hÔ¤gÓ¡kПlÏ¡rÕ©vÚ¯rÙ­m׫zÖ²zÖ¯uÔ¨{Ñ«zرyÞ²yÚ²wØ­xÙªvÙ±uܳyÞ²{à´}ß´~Ý´~Þ¹~Þ·€Þ¸‚޽ݸٴ}Ó¯rѧoТmÍ lΣlÍ¡hÈbÇŸfÈžgÈ›eÉ›_ÉšcÊœkΡjÔ¬rÖ°|Ø°}×±€×¯€Ý²}ܵÚ±Ù¬xÙªrÓ¦hÊœaÍŸkΦfÈ¡aÇ¡fÇ¢fÈ eÌ¡nÊ lÉ iͤnË¡oÈ›eÇœfÊ›eÏŸcШiÒ¬rÓ«w×°wÙ²y×­qÕ«qݲݶ}Õ³wÙµvݺzÚ¶Ú³xÞ·xà¶}Þµ}Ü·…Ý·€Ü¶~ݶ~Þ¶zÛ¹|༇㹈޻޽…ܺ„Ú¸vݻݹ†ÜµxÙ³}Ú´‚Ú²xÛ°{Þ·{ܵzܳ~زvÔ¯tÓ¯vÕ¯rÕ¯uÔ®xÒªtÓ­tÙ±vÙ°xÛ¶zݺ{á»ä»…á¼…Ü»{ݲzݱ}Ø°tÔ­uÔ­xÕ­uÕ«wÔ«rЬqѨrЬrЯrÓ¨hØ®nÙ²zׯtÒ©qЦnÐ¥pË mÌžeɘbÁ’]×_ÇšYÙ`ÇŸnÒ¬rر{ج€×ª|Ô¨wÎ¥nÒ©mÛ°xÛ·xײoÕªpÓ¨nÔ¨lÔ¬oÒ­nÔªnÖ¨n×¥pצoÔ§lÏ¢eСbÒ©oÑ®rÑ©lѨnΪqÏ¢lËœfÇœfÊ›dÍžjÍžfʘ\È™]Șaɘ_̘^Ë“VÄQÆ‘XΙeÌŸgÆ•WÅPÅ“TÆ–TÇ“UÅQÅŽOÄŒQÊOÆMÈ•QΙXÓ[ΗVË–VΛcÍdÉ–TÈ’SÈ”PÇ‘DÇ“LʘSÉ•IÇ’MÉ‘UÈPÉ•RÍ—XÏ•YÏš]Ï™]É‘UÆ”QÈ•RÆQÑNÃHÄ‹HÉMÉMÅŽMÆKÆLÄKÂŽDÀ‹K‹PÅŽKÂMÁOÁŒMÆ‘OÊ•TÉ’QÅKÅMÆ‘PʘTÏ ZÐ]Õ _Ö¥bП\Ò^פeÒ¥fÒ¦fÒ¤dÍ¡cÌ¡aË™ZÌ™X΢^Ï£_Ï^Ñ ^Ò£dÔ£eÞ©f¿•fì´jå¬hã«næ±lë±hê°lë·pî´pì²qî¹uð¼wð½~ó½ò²wí²oî·kï»qê·sé­kê°fí¹sî¹|î¸xð»}òÂõÀ|õ¾{óÀvò½sò¼xòÁvî½sè·væ¹y쿀뾀çº}ì¹€ð¾„íÄ‚èÁ‚ä·|ß®uÚ¨sÜ«rݪh× _ÄŠRœ\)s;_2M' D# N/nS  ‰GÒ«dæ´rçµyéº{켄츃á°zÞ±zåµ|乃澂é»~çµ}åµ|æ·|å¸å´€æ³~æ·xæ¹yå³vâ¯qâ°pà¬nâ­sá±uá°pà®qݬtܪuÚ«rÒ¦kÓ£fÙ¥hبoØ¥nפnÞ­vâ¯zà²xä¶{ä±yà±xá³xá²zÞ´wß³tã²và²qÞ°vݯyܯtÞ¯vá´{ãµxá°tá²xã²~à°xà±tá³yâ²uã±wá±ⵀ縀㴀߳€á¶~àµ{á¶~ãµ}Þ®|ݱ{Þ²uÛ¯tÛ®vÞ°rß°tà°yÞªxß«uß°tâ¯pâ­pÚ¨jÙªaà°iá³lã±qàªrÚ£eÙ cÚ¤fÞ©fÞ¦eÙ£cØ¡d× `Ö¢XØŸNÕ™QÔ–TÕ™UÖ™WÕœ[×£fߦfÜŸ[Ó›YÎœ\ÑœWÓšYÑ–YЕWЗVΗWБPÐPÒ“`Ò˜`КZÒ–XÒ—ZÑ—]Ï›^ΚYÓ—]Ó™`К\Ó–XΙTÌUϘUÉ“QÈ•XË”WΔMʘXÌ–_ΓTÇNÈ‘WÌ™bÍ›fÌ”`ÅŒUŠTÅŒPÈ‘NÆ‘QÇSÐbÖ§sפqÕ¢nÙ¥oÖ¥nÕ¡mÔ¤kÔ¬oØ®v×­uÕ§yÖ¥|Ò©uΫpØ­xݲzݵuݲzÖªvÖ©pدyÙ±ƒÚ²{ܲyÙ±~ײ|×±zÙ¯|ݱ|Ø«wÔ¦oѦjËžfÉ–aÅ‘ZÆš`Ë eÆ–`Â’VÄ’ZÄ\Ä]Ç“cÇ–eÉœfѦi×­vØ®}Õ°{Ó­pÕ§qÖ©xÔªtÓ¯v×´xÚ±tÚ®sÕ«mÓªoѨoÌ£lÌ£iΣhÍ¢jΤmÍ¥oÑ¥uÖ¨tЦjÌ¡mÍ¡nÏdÏ£lÖ°wÙ°vÒ¨rÒ§rÖ«sÕªuÚ°uá¼}á¸Ù±xÚ´wßµ~ݶ‚ൂà²zÙ²wÙ¶xÙ°uׯ|Ú·{ܶyݶyÞ»཈à¹Þ´}á·‚Þ¸}Þ¸~ݺ‚ݹ„ß·€Ú³{Ø´zÙ±rÖ®oسwܶzصÖ±|Ù¯zÙ®}Ù¯yÙ²zÛµ{Û´vÚ³xݶ}ß´‚Ý´€ß¸àºÞ¶Û´€Ù°y×±vÖ°wÓªuϪtÕ®zد~ÔªuÏ¥q̤nΦiÏ¢e̤jÏ«mÑ«gË¢aÈœbÌcÊŸ_Éœ`ÉœeʤgË¢bÅ™cÇ iË©lÇ£fʤjЩuÔ¬uÕ­vÓªsÓ§sÔ§rѨrÓ¨uÕ¨tÏ£mΠoΠeÍ¢fÒ£qÒ¡nΡjТkÒ¢fÖ¦kÔ«pÔ¨jÓ¥iЦnÒ§qÓ£kÏ¢fÉ¡`Ç™\É—[É”ZÇ•ZÇ–[È•[Ê—YÆ•XÂXÅŒTÄ’UÁ‘XÁˆKÄŒJÅ’TÆ”XÄPÂŒMÄRÆOÇGÇOÌVÌ”PÉ‘KÌ”LÏšWСdÔ [Ô˜WÓžaÑ£^ÐœX͘XË•VÌ—QË—NɘLÊœJÌ•RÍ‘NÍ–QÊ™WÎTјXЗ^Ñ£bÑ¢\ËšRË–NË”NÊ•PÊ”PÈMÆLÃŽJÇŒEÆEÁ‹GÀ†FÁ‹G¾ŠL¾ˆNÅUÅMÄKÃŒRÃJÆ’KÅ‘KÃJÅIÂLÇ‘TΚ_Íšb̘WÍ›VÎ[Ìœ]ÌWϤ]Ó¨fÓ©dϦ`ΡcÑ›_Í—XÊ›VÊœWÌœ]ΞaѤ`פdÔ£hÔ¥h·”dê¯kæ¯há¯cߪgáªiãªfä°hå¯jä«qêµzë·zæµvì¸xñºxëºtêºtï½tì¹vä«tå­sé¶réµsê¶{ì¸yê¹tê»oê¶kè­kè²nìºsí¼uí¼{í¸xâ­tá´}éÁƒåº{ä¶uë¾}꾂é»|æ»|âµtݱoÚ¯pÖ¦jÕ£fØ¥cÈLªl5‹V&tKuSŒi,¬‡FΤeâ²té·wì½ë¿è¹æµâ²ä³‡äµƒà¶€ãµ€è»ƒãº~Þ´uã¶~æ·†æ·{æ¹|嶃å´xå·uç´rä±tä²yèµvã±lä¬må¯nà¬oà¥oÜ£jÖ hÚ¤oà¬u߯sÚ­qÕ©pÕ«tÚ­uܲuÞ·yà´xá¶xà·}ß®tݪjتqبuØ©lÙ¯nܶ~⸀å»}ã¸zâ¶{庂å½~ä»~ä·€ã¶}á¶~ൃ᷃ä¶â²yÝ´{ß³{á±{ßµ‚ݸ€Ûµ{Ù±zÙ³xݱuÚ«rÖ­qÜ«qÚ©oÕ«lÛ¬lÝ«jÛªrݪrݬoݪoÞ¥gÜ bؤcÜ©há«tݪuÛ¦jÛ¦fÝ«mÞ©nݧcÝ©fܧhÙ¦`ܦ^ܤcØŸbØœ]×™^ÙœdܤhÛ¨eÔ£\ÕžcÕšbÒšZÒžcÔždÔ_Ó™\И^Ò™]Ô˜UÍ“WÐœbÙ£cÖšZÓ•XЖT͘Tј^ÑaÑ›\Ñ—ZК]ÑœVÏšXÏ•ZБUÍ–YÊ›ZÊ‘SÌ‘PÉ’OÆRÇOÉPÊWÊ’YÍ“RÉ’NÅPÈPÆ’MÈQÊ‘WÌ”WÌ–XÍœaÐ¥iÕ©uÚ¨{Ý«uÙ«sÕ«r׫uÙ¬{×­sÕ¨kÕ¦vÖ¬{Õ­xÓ¬vÖ¬vئuÒ§oЦuÓ¦yÕªtÓªrѨlÓ§nÔ¥rѪuЬvÔ¨mÒ¦gË™eÂ\½ŽT¿‹TÁŽQÂRÈšbË¡dÈ”ZÈ”_ÌœcË›aÈš^ÍžeÒ¥lÒªnÔ¦nÓ mË hÊ›bË›bÌ gÍžjÌŸhÔ­uÚ²{Û®vÞ²vܳx×±yÖ­yÕªvÕ¦sاsÕ­pÕ¯rÒªtÓªu×®rÕ­qÕ©oÔ§kÓ¨oÔ­wÕ¯xÔ«xتtÖ­rÔ¯uÛ±vݳ{คâ¸Þ±{ݱ~ܵ}Ûµ{ß´‚à³|ܲwݳܱ~Ù¯yدu×°u۲ෂ߼޺}Ý·~Ü´€Ù³xܶxÛµzÙ³xݶ}Ù´z×°v׬zÒ®{Ó±qÚ°pÚ­qØ®uÙ³}Ú³|Ú³|Ü·Ý·}Ý´{Ü°}Þ²~Þ°x׫vÛ°…ݲ~Ö«vÔ¤uÕ§nÔ©sÔ¤oÑ©jÕ±uÕ­uѤtÑ£nÒ¥iÕ«nÓ¬qѨkÒ¦jÓ¨pУmÉdÇž`ÏŸlѦvѲyÖ²{Ö°yÔ²uÓ«lÌ©hÊ©sÆ¢nÁšbŘhÉkÌ£lË¥o΢kΣaÊ aÇ™dÆ’^Å\Ç–[ƘZÇ—^Ë—dÌ™dÊš^É™cÌ›eУfÖ¨jÕ¨eÐ¥dΞgÊœkÅšhÅ•aÅ’YÃPÄŽNÁ‡MÁ‹PÇ”VÉ‘TÇS¿ŠN»ƒG½…IÁŒLÂŒKÀŠJÃŽOÆRÄPÃMÅŽKÆPÇTÉ‘NÇ“MÉ–ZÒždÑZÏ–VÓ˜\Ðœ_ПbÒ `Ò¢^Õ¤^ОZÍ–T͘SÍœTΙSЖPϘPÍ™TÏ—PϘTΘYЙXÑ›ZО_ПaÑž\ΘRÊ”KË“LÉŽPÇ‘QʘOË”NÌNÇQ‰QŠJʼnIňLÄŒHÅNË”TÈ“FÅ’KÆ‘NÄ‘KÄNÄŒGÀˆDÁŠJÁ‰LÄQÌ—\Ê–TÆ•QÈ“UÅ“RÁ’SÅ’TÌ•TΚ^Ï£dϤ^Ï›[Ì™\˘[Í—U͘TÌ—ZÍ ^ÒªdÖ¨hÔ¤kקi¹–_ë³oå¬pߪnÙ§dÛ©jÜ°nØ«pÜ©ré¶qï¿t踀å·~ê¹zë¸xîºvî»zí¿|ì½yè¯vè´{꽂껂ê¼{ë¶|賂ç¸|éµsè¯pæ±té¹xé¸vë¸{í¸}áªrÝ®xá¸|á´vä·}ìÁ…뼄å³~ã³ã´yß²rÜ®tÓ¤kÑ¢hØ«iÖ©cÑœ]ÄŽQ²ˆK¶QȘ]Öªiå¶pë¼xéÀé½è¸~æ¶}ä´{â³}ᶄäµä³zã¶yè¿}íÀƒè»æ¿ƒê¼‡ç¸ƒæ»‚æ·ä¶zå¹~å´ƒä±}å³xâ´zã´uä°sâ«sà°tà¯tã«jà«jÞ©oã­påµxá²zÞ©sÔ£mÙ­uà¸|Ý´uà´|á·zà²sݬvÖ¨lÓ¤gÖ hÔ¤l×°vá¹~㹃幃滀຀á¹å¸zâ¸vâ¹xá¸và³vã²xÞ³~Ý®|Û©oÜ­tÝ®|Ú¬zÛ®yÛ±yÙ±yÛ±xÛ¯|ݱ‚Þ³wݱnÜ­vÚªv׬rÛ°rß±vâµzá²tÜ®qÞ°oݨkÕ iÖ¦eÛªgß°sâ±uá«tß°væµzæ¯tá«oá­oÞ­iÚ©hÜ©lݦhݧfÞ§eÛ¡cÛžbߢgÙ¤jПaÖ _Ú¢`ס[Ö¢^Ø£bÖ¢cÚ¢aÛ ]Ú ZØžUÔšWÙ gÚ¤oÔŸbК[Ô™]Õ™ZÔ¡Zס\ÔšYЗXÖ–ZÔ—\ЛXјSÓ•]Ó™[Ó˜VÑ’SГSΑUÌ’PΚUÑš^Ì—XÌ•UÍ”TÈ•OË“SΔXÈ“TÍ’UÍ”`Ì–[Ê“RÈ”XÌœbΡhÔ¨oØ«vÖ©yÖ¨tÕ¨mÔ¦oÕ¤jÓ£lÖ¨vÙ°uÕ¬tÌ¢qÉždÈ›fÇ™bÍŸ[Ò¡eÔ¢kÓ¤nÍ¢oÍ¢jÒ¡gСgÌœ`Ê–ZÉ•]ÉU»}D¸ƒ?·„Hº„GÈ™XÕ©qÑ¢mÍŸbÓ¦rÚ¬uÚ­oÖ«nÕ«r׬uÕ§lÍš`Æ“VÀ‘T¾ŽVÄ’dЧsÌ¢eÍŸbÙ²xرvÙ®sÖ¯wײvÛ±Ú³‚سzÙ²yØ°{Õ¬uÔ©tѨpÏ«rÑ«wѧpÒ¦oÓ mРiÓ¦mÕ§mÕ§lÕ«qÙ®sÔ©tÒ¥nÕ¦kܯwå¹…ß·€Ø³zÙ±{Ù´vÛ¹|ز{Õ­xس|×°uÔªoÑ¥kÔ§qݲ|Þ¸ܹ~Ú¶x×°wرyÞ·yÛ²Ù®€Ø¯zÙ¯|Û¯vÓ¬oÒªpÕ©pÕ©oÕ«nÕ¬mÓªrÔ­pجqØ«}Ù±zÙ°nÕ­pÕªqÓªtΨqΨjÛ¸‚Þ¸…Î¥uÈšjÊ›bÍlΛnΞdÓ§oÓ¦sТfЧlØ­{Ú±}׳tÔ²pØ´sÚ²}Ù°|Ù´wÙ¶xÚ±xØ°}Ù¶ƒÝ¶€Üµ€×µ{Ô¬tÌ¡oÊžp˜g½’Z¿“\™`È eÌ£fÏ£gТhÍ `ǘbÄ—gÈœ]È›XÉš]Λ`ÎaÏ aÍ¢eÍ¡hΟękÒ§nÑlËšgÍšbÊ–`Ä’[Å’VÂO¿ŽKÂNÀ‹L¿HÄQÅŒSÄŒPˆOÁƒHˆHÂŒL‰IÁ‡FÈŒQÏ–WË•RÈOÄ‹FÇŒQÌZÊ“QÉ•TÒ`קkÒŸaИTÏ›UОXÕ¢^Ö¤_Õ£`Ù¥bÔŸ\ÎVÑŸVÏœ^К]ЙYÍ™XΘVΗSΗUϘWÔŸYÔŸVÓœ\ÒŸaÓœ`ΔYÌ•VÍ–VÌ”PÌ”QÌ•UË•O̘JÉ’FÈHÆKÂŒEÅŽFÇLÈ“WΞ`ÌšTÈ’MÇ‘JÁŒFÃKÅK¿…EÀ…@‹AÁŽHÅOÇŠLÆ‹NÉ“QÆ‘LÄIÄNÄOÆŽOÍ›\Îœ]ΗVÊ™ZÍ—[ÏšTËœVÎœ^Ñ `ÔžaÒœfÍeÕ¡c½’\éµsç¶vå°}ݪoשkبmØ¥gÚ¨ká°rä²|߯vä²të³vç²té¹}ï¿}ìÁxê¿|è·~é»}ë¿î¼î½íº‚ïºïº}ñ¸~îº|é¼|ì¾ì½xç·oê½{æ¸ݪzØ©uÔ«lÖ¯qÞ¹æ»ä·€æ¼|é¾zä³vß²yÚ­vÙªqݱvÞ®vÚ¨kÖŸbКbÑ¡dتmà°uä³xç¶zå¹~ß³yݱ}ݵƒâ·~á±xÚ«rÛ¯xáµ~ã»迂뼅è½ë¼€éº{å¹è·€ã·|á¶}å´|æ¶}ã¸zâ²rä´tã¹qä±pã¯sã²ná­hà©nâªwà­vݬq߬qݨnÔ¢lÜ©{á²€à´|ä·|ä¶zß²yݱnÛ®oݯvß°~â²{â³tâ³{á·‚ã¹âµ{ܱrà¸uå»|å¼zæ¹zã²wÞ±xܯvÛªpÜ­rÚ­vÙ®|سzÒ¬tШpÔ§kÔ«rÙ¯€Ü°àµ€à³{ܱsÝ´rÜ°qÛ¯uโã¹zâ¸uá¹xã´{ä¶yãµqà¬nݪgÚ«mß±qçµrä°rß²qãµyã®y߬tÞ­ná¬mß«jܨjݨfܨcÛ©dÞ¨gØ¡bס_Ú¥mØŸgؤdÝ©cÛ£bÛ§eØ£^Ö£_Ü¥bÛ¡\ÕŸ_×bÖš`Ú¡eÞ¨eפbÕ¡\Ú¡\ÙŸYÙ¡ZÚ¤bÖž^ÓšVÒžVКVЕZÓ›\ÕŸ\Õ`ÓŸ]ÑšUÕœZÑ›[ΛYÒ£aÑžgИ[ÓœTÍšSÉ–TÌ–TÌ”TΓOÒ—UÑ’VÍ•TÏœVΘXÊ—WÍ™ZÏšcÍœbÏ`ÒŸcÏ¡hРjÏ`ËbÏ¡hÓŸbÍ•]ÅZÅXÇ\ÇZÆ”^ÍŸfÒ¥lÑ jÌšfÈšeÊ™aÑ dÍ d˘^Í™`É—ZÆRÃŒSŠVÅWÒ¤fØ©sÖ¢qÓ£kØ­uݲ€Ü±}×­tÓ¤mÒ nÌ›eÄS¿ŠQ¾‰V¼‡SÌ¡j×´ΠkÓ¨tÝ·€Ø¬vÓ©uÕ«wÖ¨vÖ®sÔ®sÖ­uدy×®zÓ¥sÑ¡pÍ£pÉmËjÉ›jÌŸjË¥jФrÔ¦rѨiÓ¥iÔ¤mѤoΟfÌžcϤgÔ®qØ´xÛ´xØ­uÓ¨tÒ¬xÖ®zÕ°vׯuÙ¯vÙ³{Ú°{קqØ«xܵ}Ý·t߸zÚ³~×­yسvسsÕ°uѯ{Ò­vÕ®v×­rÓ©lÔ°rÚµzÖ¯vÔ¯vÙ¯vÕ«mΧjÒ©nÙ·yÛ´{ÖªvÓ¬tÓ­kÕ«jÕ¬rÓ¯qß¾‚ݸ‚ÉŸdÇšbÌ gͧmÒªoѧmÒ©xÖ®zׯuܱyÛ´}Û´zÙ´yصyܶ}Þ´‚Þ¶€ß¶vÝ»tÙ¹zÖ±yÔ¬yײzÙµ|Ö¯yÒ¨vË nË oΤhÈ¢bÇcÍŸeϦkÑ©qѬrͨļpÍ®xЭxÒ­nÑ°pÖ°yجwÕ«vÙ¯}×®}ÒªtϤmÍžjÉŸiÅš]Â’[Ç”dË”\ÆUÄŽUÄLÀNÃNÈ’NÆŽRÅNÄ‘F‹J†IÁˆDÁ‰F¾‰D¿‰D¿‰DÁŽHÊ–TË–WÇNÆJÈ’RÉ’SÈ‘VÌ“\Ï_ѦiÎœ^Ë–MÍœTΙ[Ñ›`Ö£hÖ£dÔ `Ï]Òž]ÖŸ`ÒŸ`Ò \С\Ïœ^ÏšX̘TË—VΙ^Ó£aÖ¥^Óž[Ò ^×¢_ÓšVË–RÌ”UΕRÌ™TË•WË—VÊ™QÌ”KÈ“MÇ‘TÊŽQÈIÈ’TΙ^Ô¡]ΞSÄ”IÅFÅŒHÅŽFÇI‹LÅŽIÈ’LÅLÃOÄDÃŽDÂŽQËMÅ‹HÆŽNÄŽPÅŒQÉ‘TÊ•TÓOÂJÆŽLÄ‘RÅ“VÉ”XË•WÌ”UË–\ÊœeÑ¡b·‘Zî¶zê¹{ç´xߨoÖeÕž\Ò§bÓªoÖªuׯuÞ²xã²t߬kÛ¬mã·z쾃ðÀ„í„ê»ê»„é¼é»{ê½|êºí¿ðÃóÀ{ôÁzïÂ~ì½í»{ìºíʼníÄæ³{á°xÙªoÒ¦k×®vÞ²ãºè¿„縂â¸ãµâ´}䷅䳀߱rÛ¨i×¢iÙ®qá¶uä´sà¯pÝ°sà³{ß²}Þ´㺀ç¹}á¬tΡhÏ«rẆ鹇캄í¿æ¿~éÀ‚ì½|ç»xè¿ê¼ç¸‚軇軅縄æ¸~ã´vä°væ±yâ®uá±nã°kà«mâ­lå­oá­nÚªfÛ©iߨjÛªj×­oÝ­rà±vã´}㸀ã¸ã¸äº}轀轀é¼~ê»|äµ{ß´{Þ´zÚ¬sÕ¦nÙ¯tä¸}㹂à¶{à±qà­uÜ°uÛ°sÛ³xÛ³uݯoØ«rÕ«uרpÕ¦jÕ«u×­vÙ¬nݯoÙ­mØ©nÛ©qجrÚ¶yá¹xá²xÜ®zÙ°qØ°uܲ~âµ~ä´|ß­pתkÜ­tá±oÞ°ià®oà¯tÛ¬pÜ­ná±qæ¯sá®lÜ­eݦfÜ cÝ£_Û£\× \Ù£bÛ¦gݨjÞ¦ià¦gݤhÙ¦cÜ©aÜ£eמ_Ø¢^Öœ]ÖšXÖ¡[Ø¢`Ú£cפb×¢bؤaÙ¦bÚ£\Ü¥cÚ¢dЙSÏ›PÕšTÓ™WÒžY×£^Ö¤]Ò SÑšSÖžZÕ\Õ ^פdÕœ^Ó—TÖ]Ô™bÍTÈ’NË“OÌSÍ–]Й\Ñ•WϘZИVÑ–SϘZϘTÊ”UÊ“XÌšYΛ^ÏšfÍš[ÊžZÍŸ`Ë–ZÇŒQÆŒNÇŽJÌ’PÍ–ZË™ZÌŸ^Ïž^Í™YÈ“WÈ“]ÍœcÓ§nØ­nÚ­iÙ­qتpÖ¨oÒ§nУeÒ hÕ¦mשpÒ£nÒ¢oÖ©pרtبtÒ¡mÌ—cÈ”[ÄYÄ‹TÆŠKÆŽQË—\جwÖ¨sËœa×®xܳ~Ø«vקtÒ¦kÑ«lШqÏ£kÓ©pÓªuШsÐ¥qÒ¤oÑ£mÌoÊ›iÌ hÔ²rضwÙ±}Ù°uØ°uÙ®vÖ¨s×®u×´r×®qÖ­tЭsÑ«s×­tÚ¯rÖ¨rÔ¦qÕ­mØ®oÙ³uضwÛ¶|ܸܹzÙ²xÖ¯vÙ´}߸„Þ¸ܳzÛ±{Ø´uÖ²tÖ°{Ö¶yعyÛµ|Ú²|Û·|á½…ß»€Ú¸tܵvÚ¶wزxÖ°xÙµ{ܹ€Ý¹ÝºÛ¸}ܳzݵzÝ·zà·~ײwÌ¥nЦlÕ±pÜ·vÛ·yÙ·}Ù¶}Ú³yÚ±uÜ´uÞ¶uÛ¶xÚ´xܲ}ݲ‚ص}Ø·xÚ²uÖ°xЮtЩlÖ¥rÕªzÕ¬z׬wÒ¨tÏ¥sÔ«u×­pجnØ­tÔ¬uÕ«xÙ°uÙ²oÓ¬nÔ©qØ®xÙ°}Ù­zÚ±~ܵ€Ø³{Ô°zÖ­yתtÕ¨lТaÍ bÉ›_ÅUÄ‘VÅ“XÇŽRÈQÈ“SÇ‹RÃPÇNÉŽTÇ”VÇ’OÅIÁ‰EÀ†D¿†F¾„D¾E»€B½„BÄ‹QÈ“VÉ–UÈŽKÆ‹GÈKÇLÈ‘JИRÎ^ÍŸcÌ™ZÈ‘MΕXÐœZÔŸXØ¥bÔ¢_ÓœYÔž`Ô¡b×£_Õ¡]Ó¢YÓ YÒ\Òž]Ñ¡^Ò [Ñ›]Õ¢cÖ¥[ÕŸXØ¥fÙªjÒZÏ–NË–N̘PÏRË™PȘOÊ™PÍ•NË‘KÈ“QДWÑ•SÌ™UΟ[Ó¢^ΛZƘRÇ“HÈŽFÅTÄRÅŽJË™WÍ™WÈ‘OÈ”LÅ“HÃEÈŽIÈPÇNÆMÄKÃKÅ‘PÅOÅHÄŽGÁŠKÀ†HĆFÃŒL•RÆ“RÇ’UÈ™YÍœZ²‹Vç³pâµtá¶uØ£hÈ–^ÉŸ^ΡaÅ›]Ç¡bѦhÑ£gÍ¡fÍ¥jЦfÙ°mä»vêÀxêÁ„꼆꽅ã¹~â·vå»}㺀é¼xê¿|黀î»î¼wë¹pè¸}軄îÀ…î†ïÇîdž予ܴ{رrÛ®vß²{布꿈éÀ€è»}䶄຅ãÀ€ä¸æ¶ã²uÜ®sä·yè¹zä´}ß«pÛ­mâ¸~清乇ãºÞ²yØ­wÑ©tÔ°vß¼„羂쿀輆乂쾅뽆迂êƅ龂庀轇漂ãº{å¸}æµ~ç¶~å´ã²yã°qâ­oà¬mà­iá®iߨkÞ§hà«hߪpݦqצoÕ¤oÙ§sܯvܲvà¶z㸀ⵂ䷂æ¼~å¹{䶀áµÜ°sÛ­rܯy×¥nΟjÔªrÞ²sà²|â´~à³{ܯvÛ°vÞ³yÞ±|Ú¯xÝ­x߯tÞ´sÞ·vß´tà±tÞ°u×­oÖ©fÙ«nÞ¬tÝ­wÚ³Þ±{߬vÙ«rÙ«vÚ¯wÚ°xß°~á´…â°zß«rß²uà´tÜ°lÝ°oݬnݨjá²qáµrß®lä¬qã®pÝ«fÛ¥cÙ bÖžbÙ£bܤ^Û¥`Ú¥eÖ¡]ؤ[Ù¤fܤeݦaÚ£dÖ¢^Ö \ÕžZסZÙ¡]ØžaØ¡^Ö£X×£aÖ¢dÔ ]Û¤dÝ©jÙ£gÓŸaТVÓ¡TÔYÔž]Ù¢cØ¢`ÒUÔžX× `Öž^ÖœZמ^Öš[ϘOΚSÏš\Ë“TÌ‘KÍ•PË”RΖMÏ”PÍ’UϘVΘWÏ•WÏ™UÍ–RÍ’TË”WË–WÌ–XË‘XÇ’UÊ–\ЛZÏ—TÌ–[È“QÉ’PÍ“WÊ”OÍ™SÍ“WËRË‘TÊ‘XÌ”UÕ¦dÛ±p×®sÕ®xÖ«tÕªnÖ©pÔ¦qÓ£hÔ¡dÐœc˘^É™bËœbË›]ÊšfΡiΠaÊ”WÅŽQÂQÆZ˘Z͘VÔ bÔ¤eÆ’YÂ`Í¥uÕ©wÕ¦nÕ¥oÑŸoÓ¥oÔ¨pПhÒ¥jÕ¬oÕ¦hÒ¥hÔ©qÑ©rʤiȤgÓ±uߺܹ‚Û¶}Ú±{Ý´|Þ¸zÞµsá¸yå¾àº}Ö­vШxϨqÒ«oرxÙ¯x׫qÖªnÚ²v߼߻zÞ¶}Û´‡Ý¶„ݶ{سvÙ´Ú¸…Þ¸ܵwÚ´vÚ´zز}Û²{ܶ€Ú¹ƒ×²xÓ®qÕ²zݸ༃޸~Ý´}ݸ}Ùµ~Ö±Ò­zÓª{Ù¶ƒß»€Þ¸}Ú·|Û¸zß¼|â¾{à¹|صzײyر}Õ¯zÙ­zܵÙ¶zÙ²vرwÚ¯xÛ°zزyÖ¯}ׯÖ±|Ò¬uΫpÏ­rЦsÌ nÌ¥oÒ«uÓ¨rѨtÒ¨tÕ¨pÓ¥mΡsÕ«}Þ´Û³~Ú°~×­vÕ«r׬tØ°tÖ¯uÔ¨pÒ¦kÓ¥rÕ¦vÖªqÕ©jÒ¥nУjÑ¥jРiΡ`Í£hÌœgÆ“[ÂUÆPÆUÈ•XÊ•WÅŽR‹RÄUÆ’TÅWÃUÃŒLÁ‡G½‡I¿‡D¼ˆB¼‚B¼}>¾„EÇVÉ“ZÇ“TÈRÉŠNÇJÊNÍ’WÍšZÌ›WÊšUÇ™VÈ•WÏœZÒ \Ö¢]Ùª_ר`Ó¢\ÒŸ\Ö£bק^ѤWÏ ]Ò¡\Ô¡XÕžUÔ¡WÓ£]Ò¡YÕ¢_Ø£^ÔžYפjÚ©hÒ¢WÒŸWΚXÈ—XÉ•VÇ”UÈ•VÌ—SÏ–UÏ—WΗUК\Ñœ[Í™VÍ›XР]ÎœWΕSÌ‘WÈPÆ’OÈ‘WË’XË^ÈœWÇGÈ‘PÈ–UÈ‘OÆTÇ•YÈ“JÆŽEÄKÅŽIÅNÆPÅMËOÄ‹KćAÃŒEÇ’OÇ‘RË’QË“RÇUËT±…OØ«pÛ¬nÜ°kÒ£gËžcΤjОh˘bÉ›aÐ`Ïœ^Ë`Ï cѦe׫tá°{ä·väµwç²|æ·yß²xÝ´á¹€ã³yè²vè»}æ¼|æ¹{éº|è¶zâ´{á³xç¹}ë¿ŠêÁîÄë¾…ä·~Þ³Ú¯yݳvÝ´‚Ûµˆã¼…èÀ„㻉æ½è¾‹æ¹ˆè¿‰æ»…ß³}â¹v幃æ²Ý§gÚ­o彈輋湈ãµá´€ß·‚Þµ€ß·…七ä¶~á¸}à°}á®é¿êÂ亃濃羀ã³~丂争㹄âºãµç¸|ç¹wç´{ç³nã®bߧfß©mÝ©hÛ¥eÝ©kã®nâ¬mÞªgܤjØ¥mרkبkצnÕ¥qؤmܬt⼀伀â³}â³{ãµzÞ°~Þ°€ãµ~ß®|Ñ¡uΦvÚ°~ãµ~å·{à´{Û¯vÛ¯uà°tÝ«rÛ­tà´ã´ä¸xæ»yå¶|å¶~å¸}à²xà­tãµ}⹂ä´zâ³yß´á±}à¯vÛ³zß´xß´uܲuÝ´yâ¶{߶~ã¸}èºwâ·rß³sâµuâ³oá°páµrßµpߪsÞ¨qÞ«hݨhܨaئZØ¢^ܤ^Þ©fÝ©jÚ§`Ü¥bÚ¥gÛ©bÞ¬`Û§_ן`Ø¢dÚ£bÜžaߣcÛ¤b×¥cÙ¥cØ£bÕ¦bØ¥gÜ£ná¥kÜ¡eÓ[ÓžXÕ]Öž^Ö ZØ¥XØ£`×]Øž[Ú£\ÛžVÙœ[ÖžfÏ™WÊ•RК^Ô¡WÏ™PΕSÌ—PÌ–OΕQΔMÊ‘RÌ•UÌ›UÌ™^Ñ–`ГZÊ“UÊ–VЕRЕQΖRÊ‘LÊ‘NÉ—SÈ’RÌTÍ”UÉ“TË–WÑšbЙ`Ë–PÉ’QÊQÉ“MÌ—XÑŸjÕ¥nÖ§sÖ¦rÔ¤fÓ¤lÒ£rΠgРeÍšbÈ–XÆ–WÇ’ZÄWÁŽNÈ–UÐœ[Í–[ÅUÄ‹LÄ‹MÇ‘S˘QË–MÍ‘VË‘YÉ‘PΘ]Ï£oÏ£jÏ¢dÍ¢hΟkÓ¦rÖ©qÖ¡tÖ¦tÓ§m×£oÔ¥rÒ§sÕ¦sÓ¥oÓ¨o×­zܲܳƒÜ±{Ú°yÖµvØ´uÛµwÜ»v߸vÝ®uتs׬uÓ¯wÖ¬uÖ«tÕ­rÖ®sØ°uÙµ}Ü»ƒÝ¼Þ¼ƒâ¶€Û°qÖ®uÜ´‚ݸ€ÝµƒÞ¶ƒÛ´{Ú³}Ø°€Ø°vÚ³zÚ´€Þ´}Ù¯zÕ«sÏ©lϪqÚ´|߶{ÞµzÞ¸z߸|Ü´zØ­pÓ¨mÖ°zÛµ€Ù²{Ø´|Ù³x×°wß¼…äÁÞ¸Ô¯vѨsÑ¥wÖ¬zÙ´vÚ²wݱsÛ¯rÔ®uÏ«vΧuÑ©vÒ¨rЦyЦtÓ¨mÓ§sÒ¥yÍ¢sΟgÔ¦mШrΤqΡiÇ™^È”`Ç’^ËœgÙ­uÚ³zׯ{׬yÖ¬sÔ­uÙ³~×±ϧvЧlÔ¦oÔ¤uצjÕ¡jÕžjÔ¡eÔ¡jÔ¦jÑ¢cÒŸiÏ¡dÊš\É”ZÉ”VÊ—ZÈ”]È‘XÆTÃŽUÈ’XÊ–ZÇ–ZÆ‘QÃOÃUÅŽYÁ‹Q»‰M¾†F»…G»„LÆTË•`È’`ÄVÆŽPÇŽPÈJÍ“TÒ—[ЙWÊ—XÈ“UÈ•PËŸSУZÓ¤_Ö¦_ت^Ø¥cÖ¡eתcÙª_ÓŸ`П`Ô¤Y× [Ö YÒ¢WÓ¢_ÓŸ_Ó¡[×£^×£[ؤcؤfÔ¡\Ô£ZÓ£ZΚSΚVΙVÏ™SÐœWÏWÍ›QΙOÏ›ZÑ—[Ì”TË•SÑ›WΚ\Ë”TÉ”MÄ‘NÈVË”TË—O˘T̘VÈ’PÈ“P̘ZΕUÍ”RΘWÌ•PË”LË‘IÆŽIÈ‘KÍ“KÈ‘QÄPÅKÃŒIÄŒHÇMÇ‘LË“NÊ’QÇIÉ’J°„HУ`ÍŸeÕ¦pѦn̦tÕªxÔ¦pÓ¦qÕ¥tÖ§pÙ«rتtÙ¬vÛ®tß²såº{é¹~ä³xãµvä²sá­sÜ­zשpÙ¦fݪlã¶uè»}ã³yÝ°qÞ¯xÝ®xÚ¬p㸅滊߱vá·}嵇䵄߷}ݵ|â¶yÛ°xÔ¬wÚ²s七鿓ëÅ’êÂæÁ„æÃ轈淀á´~ß¹€à¶yÖ§iÙ¬vä·ƒã·á·€ãº‚幉䷀ݲuáµvà²yÖ§tÖ©uÙ«xà¯è¾ŒèÀ‹çºˆè¹Šæµ‡â³á´඀廇꾅溄è¶~ä±pá²pä³sá°nÞ§bÞ§cܧgÙ£eÝ©hà®sâ®sá«lߧhÞ§iÝ«iÚ©fÙ¥fÖ¢iТiÓ§oÙ±~ß±|à¬sÞ­pÞ¯xÜ­zØ­wÙ²vÚ¯tÕ«oÑ©oÒ«r׬rÙ§oاlÕªkÕ¦fÔ¢cÓ¥jÖ«wÞ²yã¹y⹀Ḅⳃá³zá´uà²xÞµw߶xâ³{ß°tݲvá²vݯqÜ©uܦmÙ¨gÚ¬mÖ¨lÖ¥nÜ­rÚ°sÙ®uܯuÛ­pÚ¬nÞ²t߶rß°là±rá²oÝ«gÞ­kâ­làªeÝ¥dÜ¡^Ù¢bÝ¥lá¬mß°rߨlܤgÞ§cߦZÛ¤^Ø¢eØ¢bܤ^Ü¢[Ù£[×£]Ù¤bÞ§gÜ£bØ£bؤfÛ¦eà¬dݨeØ¡cØŸcÖŸ^Ö ]Ø£cÝ©eܪi×£dÓZÕ \Ú¥aÚ¡`Ú bØ¢a͘ZÍ•VÖWÔœSÍ—RÍ—TÍ“PÍ‘NΕQÌ•QÉ”VÌ—ZÑš^ΘYÍ–PÍ—PÉ—WÍ™^ЖZΖRÏ•TÓ•TΕSÌ•QΕTÌ“YË–WË™V̘ZИXÍ’VÉUГRÎXÈŽ[ÊRË“UΙaÔ¤oÖ©qÖ¦hÒ¡bΛ^Í—^È–^Ç“WÇRÇ‘RÇOÇŽKÅ‘KȘV͘`Æ‘QÆ’PÈ”YÆVÈ‘WÍšYΞ[Ï›`Òž`Ó¡eتnÕ©iÍžgПgÒ¢iÔ¢lÕ©mÒ«mÒ¥oÕ§rÕªmÒ¦oÒ¥pÓ¨pÔ©tÓ©wÖ©yÓ£rÓ¤t×­wÒ«vÒª{Ò­vЪoÒªrÒ¨tÑ¢vѦxÓªoЦeЧkЧoϦoÓ¨oÙ¯qÛµyݸ}Þ¸ˆà¸Šà¼€Þ¼€Û¶Ø±yسxݵ}Þµ€Ý¹€Û´wÖ°qدtØ­tÙ°rܵyÜ·zÙµyس|Ó¬tÍ©kÔ²qݸ~Ý·Û¶|Ù²|ܱÛ´{Õ°wÖ¯{Ú±}Ö³vÕ¯vÌ¢jÇšfÓ®xßÀƒÚµƒÖ­xÒªvΨxÕ²vÙ³|Ö­}Ò®{Ï«tÌ¢oË¡pÏ£tЦrЩrÓ¬wצqÕ¤nÏ¥rЦrÒ§lÍ lÍŸmÈ›dÄ“XÄYÁ‹YÁˆTŠMÈ–ZÖ«pÚ°tØ­sÔ­uÒ¥qÓ¨sÖ¯xدuÕ«mקhקnÕ¬zجzרsϤkÌŸbÌš]Èš^Ì—^Ì“^Ê–\ΟaÍ›_È‘ZÇ’]Ó\Æ–[É—WÉ—YÎœaО`ÎœXʘ\È–aË•bÌ•^ÃŒP¾ˆJ¼‡K¹†Aº†FÂUÈ™WÅ’ZˆUÆKŠFÄMÉŽPΘUΚ[Í•TÍ–TÈ’UʘTÓª]Ö©`×¢[Ù§fتiצbÙ¨eÕ¦cÕ _ÕžaÒ¢^Ô¦_Ö£aÑ¡]Ò¥\×¥[ק]ئ`Ù ^Ú£^Ù¦dÒŸ\ÒUÕVÓœSÐSÏœZË™\ËœZÑšZÍ•TË—WЛ[ΙTʘJÇ•KÈ—OÍ™JΕQΓSÈ‘QÈ“SÊ–TȘTÉ•VΓMÌ”NÌ‘UÌ”OÊ–MΘT͘RÈ”LÈ•PÊ“OÇLÇ‘LË–MÉ“OÄQÄOÅ”MÅNȉLÆŒOÉNÈMˆLÈŠG²ƒDÓ§qÔ«sÙªwÛ®yݲ߰‚Þ²}ݶzá¶|⸂âµ~â²~ä¶}å·zå»{æ¼溂æ¹~åº|ä¸yå³{á°}ÛªtÙªm߬oâ´vä¹|ç²xã­uÞ±vÚ±pÙ±mä·{æµ~ݲ{Û­|àµ}漇湆绅èÀŒç·†â²€à³{ã¸éÁ‘ëÄé†鿄広仈涃à¯z۲߮{Ú©rܯzâ¸~á³{ß­{ܳzß´}Ü©vÕ¦pØ­yÛ«|Ù¯xÞ²~⷇辈ëÀêÀ齈鹈䵀á²}ãµ廀éÁëÃŽèÀ„潆à±Û®qá¶uå®vá¦lÞ¬hÞ§eݧfá°nâ¯tâ­rã®oá«kÞªa߬iÞ¨mÞªkß­oÚ§iÖ§mÙ«qÙ©qÖ¨pÙ¨iÚ¥hÖ©oÙ¨mܨjÞ¯sÚ­pÑŸdÑbÓŸfÓ›iÓfÔ¡cÕŸgÒ¢hÔ¬oÝ´yâ¹᷃ݲ|ß°{Ü«uÚ¬jÞ«kÖ¥iÖ©kÛ«nÚ©iܨoÞ­vÙ¯qÖ©lקfÖ§mÖªrØ«oÛ§nÙ¦rתtÖ©mСdÍœgÏfÍdÖ¨rßµ|Ý®uá®vå°uàªjâ®rä°mâ©bÞ¡^Ú¢]Þ§bà¨lߨoÝ­jݬeݨeÜ©jݧbÛ¥\Ù¤dÜ©mܦhؤ^بZÙ§\Ü©fÞªnÞªiÛ§hؤgÚ¨eÛ¬hÛªlØ£dÖ¡\Ö¡^Ö¢]Ö¡cÖ¡dÙ¤bÚ¢bÕ]Õ¡aØŸ`ÕžZ×¥cÙ£eÑšYП^Õ aÔ˜YÖ™YÓ˜TΓPÏ“QÌ”TΘVÔšWÓœZÕ›]Ò“XÌVÍ’VΘYΞ_Ò™cÑ™^Ò]Ó›]Ï—TΖTÐœ\Ðœ`К^ÑŸaÎœaÍ–WÍ“SБRÏ”NÍ•QÉ’\Ê“\ΙZÑŸfÖ©pØ©pÕ g͘]ÈZÄŽSÆŽRÊQÊQÊ“TË”SÆPÈ’RÏ™]Ê’XÊQÒ¢cÔ¥iÔ¢hקmÓ¦kצoØ®oØ­nÝ«vÛ«sÖ¨mПcÏgÕ¨vÙ°rØ­pÖªpÔ©jÒ¨mÔ¦qÕ¦rÔ¨pשtجuÖ®qÔ©nÏ gОlÏ£lѦkÖ©pÒ§iÌ¡dÉgɘb˘`ÊœbËhΦrÕ®t׫nÖ¬r׫rׯvܳ|ßµ~ݸ}à¸}Þ´~Õ°wÕ¬pÖ©qÕ¬tÚ±pܳxÛ´|Û´vÚ³|Ú³ݲxÞ³{Ý·ˆÝº…ܹ|ݹ„Û³€Ô¬nÒ¬sÚ²Þ³}ݲ{Þ·‚Ü»‚Þº€ÞµÛ·€Ü¹ƒÚ³„Ó¯}ʤlÁœd˪qÙ¹~Ú³Ú´{×´}Ъ|Ó¬zÖ¬zÒ©uΪq̧pЦnÓ«nÒ¬uÓ«|ײ×±}Ô§xÏ¡nÍeÒ¦kϤhÉ•^Å•[¼ŽQ»ŠN‹PÃŽXÇ”ZÍ—ZÑ d×°rÚ°yبxÖ¥wÔ¢pÓ¥nÖ¬~ׯ|Ö¬s׫tÖ«oÒ¨kÑ¢iÊgÅ“^É•[Ê`È•ZÈ“ZÉ—`ΚdÔ¤hТfÌ›dË™`ÍœbÓ¥fΣdÏ¡dÕ¥iÔ¤iÒŸgÐhÍ¢gÓ¤jÑŸbÊ–SÄŒT‰QÀˆJ½ŠLÁŒRÉ’XÑU¾ˆJ†FÁˆKÁŒIÈ‘OÏ™VÎœVÈ”TÈ–RÉ”TКYÚ¦`Ù¤cÕ¡aÙ¦fÛªnÛ¦mܨo׫jѧ`Ñ¢YÕ£Zئ\צ\שXÛ§YÙ¥eÖ¥aÚ¦ZÚ¥_Û©fØ©bÑŸZÑZÖ¡]×¢\Õ VÏWÍWÍVɘOÈ•PÍ—YÐ[ÐœWÌ”OÉ‘DÊ•IÊšPÊ–LÌJËLËšL͘MÌ“MÌ”LΕRÌ•MÆ“IÈ”P˘QÎœWÑ›`Ï–WÊ”JÆJÆŒKÊ’P͘VÊ”MÈIË’LË•MÈ“PÆPÇŽPÇK‰JˆIÈŠC¬‚?伊辋滊终éÀ‹è¿‡äº†å»ˆë½‡è¹Œäµ‚ã³yâ´}ç¼ì¼æ¶}å¹|滂à³yÝ°rà°qà±tÜ®tܪpÙ¨lÛ¯uâº|à·zá¶záµ{Û­tâ³tä¶xãº}翇⸂乃뼉꽇ìÆîÈ•ïÊšîŔ绅滇翊çÁŠæ‰澅ä¹àµ…ൂ޴|Þµ„ⵆⱀᴃ㵄䱂ݮٰwÜ°zÚ¬zФnÖ®xáÀŠå¿ŠéÀ‘íÈ—íÆŠíÀ…ê¾ç»‡å·ƒä±€á±yá¸zåÀ‰ê¿Šé¼‚彃é¹åµ}ãµ|æ·zç¸sæ²tä­oá¬jàªqã¯tã³wâ°s߬lݪhÜ©gÝ©lÛ¦kߨnáªtÚ¦kØ¡bØ£hÖ jКdÒœhÔ¢jÛ¨ká¯râ²rå³}Þ­}Ö¥nئlצmÙ¤dÕ¡_Ñ¢iØ©mÚ°sÞ³}á³{Ý®zܬvجmÓ§fÖ¤nÙ§q׬pÓ¦iÍ£oÑ©sÚ­oÚ¯yݶ}á²rÞ­wݲ}á·zãºyà¹~⹄é¹{å¹sÛ±oÓ¤`Ï¢aÓ¤nקkà²pæ·vã²rã³nã¯nâ©oã®vÞ®iÚ¥]×£gؤfÛ¨gÝ­kÞ¬jÝ«mß­gà¬gß©hÛ©_Û¦^Ú£jÙ¨jب`Ù¥^Û¡_ÙŸcצfÙ«cÙªfÛ¨jÚ¥dÙ©fÛ¬hÙ§cÓ¡[Ó¡^Ø dÖ¥aÙ¦aØž`Ö£`×¥[×¢XÚ¤^Ù£\ØŸ[פgפeמ\ן]Õ¢\Ϙ]ΕVΖQΔYÍ–T̘QÍš[Л]Ô`Ô aϘWÇŽRÈ“SÏ™ZÑžaÓŸaÖ£bÖ¥dΞY̘WΗXϘXÑ™WЛWÓŸ^ÑœXÊ•TÉ–UÌ–MΓR͘UÏœUТbÖ¨jÙ©kÕ¢hÍcÉœXË•UÈ’YÇ•TÇ•VÈ‘XÈ’SÉ”XɘXË”RÉ‘UÌ™`Í”`Ê•eתoܲuÙ­uØ°uÖ­qØ©oÚ¬qÔ¨lÒ¢eÓžeКeΙaОgÓ¥qÖ©wØ©|צrÕ¦hÓ§iÑ£fÏ¡iÒ¢mÖ¥kÖ¥pÓ¢jÒ¡cΞfΡkϨsЦsÒ f΢dÇ¢gÈbÌcΡkΠfÐgاuܶ}Ù¶}ܳ‚Ù±{Ö¬qÙ¯z×­{×®xÙ³uׯoÖ¬tÖ­vÖ¨qÖªvÖ±wÝ´vßµzܲ}Þ¹~ܶwÙ²}ݸ€ß¶}Ý´„޳ܴxÚ¸zײ{Õ¬zÚ³{ܶ}Ù²~Ú³yܸ|ܸ€Ü³}áµ€á»Ùµ{ְ׳~Ò­vЭvÒ®pÔ­uÔ²Ó´yÏ©oË£oͧoͧrÍ¥uͤnΧmÖ°~׳zΧhË¢oΤoΦg̤jÊŸkÍ¡jÈšdÊŸh΢a¿ŒH¿‡GÂSÄ•_ÊeÕ¢lÝ«xÚ°yÔ©nÒ¢jÑ¥oÌ¡kËšfΡkϤmСmÑ eË™\ÃŽV»ŒO¼QÄ“WÎ`Ô¦gÐ¥cΞ^Ò¦cÚ°oÙ«t׫oתkÕ§mØ©lÚ«iÕ¬fÕ©jÙªlØ«nÔ¤eѤa׫gܪhÚ¦aÒ£ZÍ[Êš_ĘZÁWÂWÅ–XÈ“UÆOÅNÅŒIÅ‹HÊNÏšVÍ›SË“LΗNÑ™RÔœYÙ¤bÙ¦eÔ£`Õ©cتdÚª]ܯc×­fÓ¨aÒ¦bÔ¤bפXÙ¥ZØ¢\Ø¢WØ¡bÙ¥hا^Ó¢\Ù¨bØ©`Ò¢_Ô¤^Ô¡]К^ÓœWÓœWÏ™\ÎœTÎœSΖZЙYÐœUÒ›YÔ™QДRÍ•PÌšHÍ–IÍ‘NË“LÌ™MÌšTË”QÊ”PÉ—PÌ–IÊ•HÈ–JÍ”FΘNÎWÏ™SÍ“SËLÊIÊ•LÉ’LÇŽKÅ’JÉ’MÉŽOÆOÈ“MÉ‘PÆŽJÆBÆGÉO°„Cé¿‚í¾€íÁ{ë„éÂêÂŒì†꿇ëÁ…íÁ‹ì¾‡è·~ä·‚é¿…íÁ‰ê¿‡èÁ…澅涃ä°{á²zà´xÞ®rÛ¯qÙ¬nÜ®tß³}بqÙªnÞ¯rÙ®pݳtÞ®x縀îŋ輋繃èÁ‚èÀŠëÃŽí‹ïÄíÅ‹é¹€ç¹~⼂㸆布â¹â´Þ±ݳƒá·}㶀à³ßµxà¶~â³â´€Þ´ƒà±ƒà¯zݱwÕ­vرƒæ¿•êÈ“ëÆŽëÁ‹éÀˆè¼…ä»漂᷂ߴ一æ»~ã¸乂åÀ徃湆å·zå¶rä´rä°râ±rá²sã¯ná­qâ²wå¶zß±vÞ«nã¬gݨlÛ¦mß©mÙ¨hÛ¢_Ú¡bÓ`Óž^ÔŸ]Ò›bÕ¤oÛ­xݶ~à¸~ß±uÞ³zÞµwß±qã¯xá³uÞµyÞ°yرuÞµxß³zÜ­sÕ¡oÖŸqÛ«pÖ§mÑ hקhÞ´vã¹{ß°rÒ¦pÔ¨nÕ¦m×°vá¹ã¹{ã»}佄åÀ†ç¼„äµ|ã¶~æ¾…ç¼€æ¶{à°vÚ«xáµuã¸oäµwè¸}ä³xä³uæ³uà¬oÞ­iß«iÜ¡^Ú£WÙ£`Ü£cà©dܪjÛ¨làªhݧfܨjÛ©jשcبgÝ£hÝ¡b×¢]ئaÛ§bܪjܪgܤ]Ü `Ü£hܧiÚ¦bÚ¥eÖŸbÑœaÕ£eÚ¨^Þ¨^Û£_Ù£aÚ¥eÖfמfÙ¢bØ¢ZÖ£aÕ£cÑ›ZÒ^ÕeÓ–\Ñ—TÌ”T͘WÌ—VÌ•WÏ–XÑ™XÓ¢\ÒŸ\Ì•ZÌ•WÓš[Ö¢j×¥mÕ fÓŸeÓ¡dЛ`Θ]ΘWΕYΗ\Л]ÑšWË•QÉPΔWÑždÕ§lاlØ¥iئsÙ©xÓ¥jÍšXÊ”RÅ’YÅ‘XÈ•RË•VÑšaÔ¤fÒ£cÐfКbÐœYÑ cÑŸdÑ¢`Ô¥hÔ¨gÔ«iשpØ©oÔ¦iÒŸfÒ hËfÊ—dÇ’[Å”QÊ”QÌ‘WÍš]Õ¥kئlÖ¥f×£nÒžrÌbËŸ_ÍžfÔ¥hجpÔ§qÓ£kÓ¤mÒ¥kÔ©oÒ¤jÐcСlѤoÉŸkÊŸhÓ¢kÕ¥kÕªnÙ´€á½„à¸zÞ¸{Þ´|Û¯uׯsÒ§nÕ¨qÝ´{Ú³yܶ}Ẁ඀à»á¼‚ṃ߹ܶÚ´|Ù®rرsÞ¾{ܺ{Õ®u׫vÜ­~Û±yÚ¶vÚµuÛ´xà¹vÛ¹xÙ¶|Þº‚Þ·ƒÜ³Ü¸}صyÖ­xØ­xÛ¯tÝ­uÕª}ͨxÔ«pÖ«qÒ¨pÒ£mΤqϦoЧmͧpÎ¥lΡjÖ¬uÛ²uЦhΦiÓ¨mÒ­tÔ°xͦqÆ›gÆ—]Ô©gܱmËœ_Ș[ÌŸ[Ìž`ÉœbΨjØ«rΗdÆ‘^Ç–\Æ—W•TÄ”RÇ“]È•dÈ’^ÆŽW¿ŠQ¼ŠNÁ–ZÊ£aÒ§jØ®pÙ±tجw×­pÙ­rÛ¯wײtÜ®rà«qÝ«uÚ¬t×®qÖ«mרhÔ¨jÖ¨hÙ§eÙ¨lÞªkÛªcש`بgÙªmÕ«iÔ©dÓ¡b͘^É—YÈ’VÄŽOÄŒMÈ‘KÇ‘LÈRΕW̘W˘QÑ PÕ XÔœZØ¡ZÖ¢_О]פeÚªjجgÞ¯iÙªhÓ§dÖ§`Ö©aÖ¬bÖ¤[Õ¡YÓ¤^Ö¤^ܧdÛ©bÕ¢^Ú¦dÙ¦dÔžbÖ `Õ¦^С^Ïž]ÏžTËœOÍ TПVÏ›TΗQÍ•RÐ]Ô _ÑšXÔŸVÐœU̘SΚPÌ–PΖQΚQÌ™SÊ•UË–QÌ–MÊ’FÌ‘HЖQÑ›UÑœZÑ™VΖOÍ”IË’IÌ™PË™UÊ–WÊ•TË’OË”QÇ’VË“RÍ“KËFËGÌ’RÌ—Y³‰Jî½ì»Œé»‡êº‡ë½Šé¾ƒç»~껆뾌íÁˆïÁ‡ì½€é·|æ¹ë¿€ïÄíƆìÄ„ð‚ðŇîËì¿ì»ì¸‚è¾…æµvÓŸ^Ï¢fÛ«nݪn߯sß±sä¸{íÀ꼂㹅ëÄŒïÉ‘íÁ‰êº„湃á³à­và°yá³}à²}Ý°{ß®xÜ­yÙªyÛ§uÛ©vÜ­}Ü®w׫sÙ¬v߯yÞ«zÛ­‚à³€â°Þ³}Þ·xḅè‰êÈé¾æ¿èÁŒç¾‡æ»繅㸇á¹~㸃ⴃܵ{à¹é»…ç½€ã´zß´uÞ¸pÜ«pܦk߯uã³xå²oå³rä³{â­uݯpß²oâ¯mà¬nÜ«oߪkܨgئf×¥fÓ¡cÒžfןhÛ¦jà²w㵂ã±à°{Ú­vÚ°vݲyÝ°zà³zß²xݲvݳqÙ­rרtÕ¤kÐdÊš\ÏŸhܬvÝ­oÙ¨nÚ²}Þº‡áº‚⸂جvÏ¢iÓ¤qÜ°{à¶xß´᷈߹ᵀä®vÞ¬mÛ°xá³}á³vß±tã³xâ³yà³sÞ²uà²yâ´zá²zâ¯sã«nà©oݪpܨb×¢UØŸXÚ£aÝ«gܪgÚ§eݪhܧdÝ¥bàªhݬhÜ­nÛ«gÕ¤YÔœYÖž_Ø¢`Ú¦^Ü«eܪdÙ¥^Ú¤^Ù£dÚ§iÚ©cÖ¢dÐœeÏœZÒž^×¥hÚ«hÙ©fØ£bÖ¡`פ^Ö£^ÖŸ]ÕŸZÔ£^ÕœWÓ–SÒ™]Òœ`ÓŸXÓžQÏ•MÏ•RКTИQКZÑœ_Õ\Ö›[ЗWË•VÎ_Ò¡dÒ˜\ΔYÊ—WÍ—SΖTÉ”WÊ”VΖZÏ–ZΘT̘TË“QÊ–UРeÚ­qܱsÚ«uÖ¨pÔ¨lÒ£fÍ›\È–UË—YÆ”RÄUÉ•TÏšZاpÞ¯uÚ¨pÕ£kÖ¤jÕ¤nÕ§o×­oجr×­nÕ¬jÖ¦mÖ oئkÕ¥fÏžfÍŸdÌ›]Ε]̘\ɘ[Ï—_ÒœcÏ¡bÔ¦gÖ£jÓ¡lÒ¤nÑ£kѤoÒ©uЩqѪnÓªqѨpÒ©pÔ§mÍŸiÊŸkФqÏ mÏjÓ£hÍfÍgѤhÓ£pÖ©oرu۸ߺ|ß´vÙµvÞ¶{á·zÕµrÕ°tܴܳ}Þ²~Ý·}ܶ}Ü´‚Ù³}Õ°rÔªoÒ¨oÔ¬hÒ¦dѧrÚ¸‡Ú³{Ó¦rÓ§u׫tܳ|à·€Þ²zÜ´zݹݵڱ}Ùµx×´zײ{Ö°yÖ°uÔ®pЭsÖ±tدu×­vÔ¬vÕ­x×­tÖ¨nѤpФjÏ bÏ£hÑ«lϧmÐ¥uرzÙ²zÖ«zÙ­sÚ®wÚ°yÖ°nË¢lÈ™jÈŸgΩkѪrΦqÓ­qÖ«rÒ¡hÇ•ZÉdÍ£jÁ”\Á“Z×Y—Y˜_ÆœaÉ]Ú`ÅšdËŸfÌ¢iЩoÕ®oÖ¯wײzÛ±vÞ´y×°qÖ­nÜ°sÛ±tÙ­tܬuÝ°sß³sÝ°mØ­gÖ§gؤfשf×¥bÖ¡YÕ£]ÔŸbÑ›WÔ \Õ¤bפeÞ¥gÞ¦fÙ§lÖ¡jÌ™`Ä“XÄ‹QÅŽQÈ™UÆ“OÅ‘NÍ™YÌ—WÌšRÓ¢ZÓ¡ZÔŸ[פhÖ§eÒ¥_Ö§lتsØ«nÛ­oتiÕ¦dÑ£aÖ¤[Û¦bÖ¦fÕ¥bÖ¨bÖ¨aÙ­eݯeܨ_Û¨cÖ¤_ÐYÔ ^Õ¢\РWΞ[ÐXÏœTÎœSÏ›RϘQÏ”NË—XΡaÓ¦ZÓ¢XÕ¡ZÔ¡_Ó™^ÑšRÏœTИWÑœQΛRÏ™PКSÍ•QÍ•IΗIЛKÒ QÑŸZÏ›VÍ–KË”LÍ•OΘLÍ–MÊ”TÉ’QË•KË”QÈRË“RÊOÇKÍ—PÍ›UÒœS·ŠGïÆ…îʼnïÂ‹í¾‹ë¿†è¼|ã³{á´|ä»{ç»xé»zé¸zã³tß·xæ»|뼀꼇꿆íÆŠðËñʉòÉòÈŽòÆ‹òÇŒòɑá­oܯpå¹{é¼~ç¸wæ¸vì‚ñÅíÔéÄŒíÆŠñÅ‹ïŠ黄㺄䶀ã·xå½{庀ã´|â´|á´á®~á¨zݬuÞ¯sà¬xܪtÙ¬sá¯yà°wݯ{â²€â³wá±r㸅꿋ìÁ‹éÁŒç¿†è¾‡ì‹컅涀äº|ä·zãµ~丂ä·{ã´vä³|ä²{ã¶xå´säµvæ¸zã±vá²vã·tç¶vé¯yå°xâ²yá²xá±sß®pà¯râ­oÞ®mÞ­mà©kÞ©gÙ¦dÙ£kݨrÝ­ußµ~æ¸}äµ{â²xß²rܬmרh×®oÚ­vÚ¨wÙ©rÚ¨lÚ¦oרsØ¥o×¥mÖ¥mÕ¦mÔ°qݶqã³xÞ±tÙ±pÝ´uá´|ܯv׬oÕªpÒ§uÖ¨vتv×¥rݪwã²záµ}à³zÞªrÚ®yÞ´zÞ²vÞµuá³xã²á²{Þ¯xà¯yã´xä¶{ß®rߨkß­qܬgݨaÜ£]ÚŸZÚ¢_Ú¨gÙªgÝ©eÝ©eÛ¤cݦeݪhߨgÞªiÛ§eÚŸ\ÕŸ_Õ¡fÙ£fÙ£bÙ£`Ú¤^Ù¢`Õ¡\Ö¢^Ü¥fÞ«hÛ©hÖ ^ÒžYÏ¡_Ø¥jܧiÙ¥bÛ¢fסdÕ ^ÙŸ_Ú¥bØ¥aÕ£^Ô]КTÍœUÏšVÓžWÏšRЗRÑ™X̘XЙ]Ò_ÑšdÕœfÔ›bÓ•ZÒ•QЗXÌ”YÈ’PÈ“MÊ•TÌ“WÏ”XКZË–ZË”WΗWÊ”Z̘WÐœ[Ô¢kÙ­rÚ®oÚ©pÕ¦rÕ¦pÒ¤iÍš[É“YÌ–[Ê—[É’ZÊ‘WÏ cשlߪpÞ¬mتlØ£lØ¢jئrÝ©{ÞªtÚ§mÚ§lשlÔ¥nÕ¥n׫hÙªhÒ¥pÓ¦uØ«sÖ¬rÕ¬sרlÙªoÙ²u×°pÙ¬oÕ«mÓ§lÖ§lשoÚ­v×­pÕ©pÒ¦r΢lÍ¡mЧqÓ§mΠhÌžbÌŸaÌ£fΦhΣdÓ¢hÜ­lܶsÛ´vÙ°rÙ²sÞ¸yÜ·xÚ²vÙ­sܲrÞ¹yÚ´xÙ°tÜ­tØ«qÔ©nÕ¥pÓ£pѦoÔ¨oÖªoÕ¨lÕ¥pÙ­vÚ¯pܳ{â‰٭sÓ iÕ«wÔ­zݶ|ä¿„à¹|Ý´xݵzÝ·~ݵƒÜ°zÔ®rÔ°zÙ«€Û­{سsÖ¯sÖ°|Ö³{Ù±|Ù°zÕ³{Òª{ЩnÓ«kÔ§vѨrÒ©uÒ«xÔ­sØ­{Ö­wÓ­s׬rׯtÕ®sÖ¨rÕ¢mÒŸlÐ¥oÒ¨pÓ¥jϤg΢kÔ©qÕ¯sШmÊiÉ¢lË¥gËžcË¢gˤeΤkÑ¥qÖ«tÓ«sÎ¥iÓ¨nÚ±zݵ|ÛµyØ°w׬sØ®pÚ±vݱw׬jÖªkÜ°wÞ¹wܵtدrÙ¯qÞ±oÜ°mÝ­iÞ­bÛªa×£ZÒŸTÓWÒ[Ðœ[Í›XÐœ`Õ¢`×¥^Ö¤dØ©jÙ©mÖªjÓªcËž`Ê™[È–RË”UΖ[ÉZË“ZÊ“TÉ“VÏœ\Ñž^ÑŸdÕ¥gÛªcÙ©dÕ©g׫jÛ¬nܪlרhѦeÎ¥_Щ^×­hتbØ©^Ú«dتhØ©jÚ¦hܨhÛ©iÕ£cКZÓœ[Ö¤`Ñ¢[ÍœVÍ›XÍšQ͘KË—RÍ–WË–RΙSÓ¥^Ò¥[Ï™PÒšTÓZÐWÒWÏSÐQКZÍ—RÌšKΠPÎSÍšSПVÖ¤[Ñ¢ZÏžWÖ [ÕWÍ–NÍšKÐPÊ™TÅ”QÅOÅJÊ•OÏ–QÍ•MÉ“HË’IÏ™YÒœZÒ™S²‹PòÃŒòÆòÆŠòÃ…ïÁ†ê»†å³~ݲzá´zá¯rÛ­pܨpÚ¥nܯlá·váµ~á¶~â¶{ä¹~æ»ç»~ê¿|é¿~è½}é¿}鼃趄å·~ã·彂é»繄翇íÈðÄ‹íÇŠîÇŠðÆ’ïÊ”ïÈ”î•ìÅŽîĈëÀ‡éÁ‘ìÄíČ꾋清滆纀æµ~â´ƒÞ´}ß´xß°wÞ®tÞ´uÝ°tÞ®rß²zÝ°uÛ¬sÞ²‚迈ì‹迎鿉êÀŠé¸‡æ³äµ~á±xÛ­t൅꺊æ¶}ݸ~â¹ç¹é¼€è¶|à´vâ¹}ã¹{ä¼{ê¼}é·xåµ{å³|æ³xã²|á«wÝ«jÞ¯pâ­má±k߯jݨfÜ©gܨeܨhÝ®mà±tã³zโà¯~à«xÜ°pÖ£fКdÏžhÕ¤hÚ¦lØ£nפj׬mÙ¯sݯuܱtݳ|Ý®yÙ°rÞµwä¸zá´uÚªnרoÛ¦nפpÔ¥oФhË¢kФnÓžnÌœkÕªuàµ|߻㹀á³}ܳ€ß·€ä¸|ã·xâ¶wã³{à²vݳyÞ³záµuä¹zå´và­oà­rá­qݧiÙ£[ØžRÙŸZÙ¨bÜ¥jÚ¢hÛ¦cÜ¡`Ù eÕ¤kÚ¥gݪhÛ¦fÙ¢^Õ¢_Õ¢bÚ¢aØ£aؤ`Û¡bÚ¢]סYÒcØ¢eÝ­`Ú¨bÓ bРZÑ aÓŸ`Ù¡eܦmݪhبgÔ¡aÔž`Ù¡hÙ£eؤc×£dÒ[Òš]Ï_Κ[Θ\Κ[Íš`Η]ЗUÑ\×£aÖ¢aÓaϘUÍ—WÒ–XÓ•TΖRÌ”QÌ–SÌšTÍšSÏ–VÍ”WÌ–UÊ•YÌ™bÒ¢gÔ£hاoÚ«qצtÕ¡qÖŸcןeЗgÈ”YÇ•UÍ•\Í”WÉ”TÍ›\Ó¥fÔ¦pئrÛ¨sØ¥sÖ¤kÖ¦gبm׬uÖ­{اrÖ¤oÕ¥nÓ¤hÐ¥lÕ¬lÚ®nئmÖ¨mÚ­nÙ¬mÕ©oÖ¨qÙ§oܯqÛ®rÙ©pÕ­oÚ°nÞ°{Ù³}Ö¬sÕ£mÑ¥jÍž]ȘaÊgÎjÑžmТnФiÏ¡mФsÖ«sرtݶxÞ¹{â¼}ã¸|Þ´vÙ±tÙ®pÛ¯rשpФeШhѤkÏ¢iÍ£lΤkΣeÏ¡gРjÒ§vÖ²}Ù®vÜ°vß²vݯxݳ€à¹‡ä¼‡ãºÖ©nÓ«pÚ´vÚ¶tÛºÞ¹‡ÜµÚ±Ù³€Ü¶ÞµyÛ°uÔ®rÖ­wÛ±{Û·Ý°vÖ¬qÔ²v×µ×°~Õ®z×­xÔ©qѨrÔ©pשoØ«uׯvÕ¬uÒ§lÐ¥jЦtÏ©qѨrØ­uÓ²nÑ®oÖªtدsسtØ®pتjשeΦjΫsÓ¬ţpÍ£oÖ«pÖ®nÖªvÖ«xÒ®rÓ±vÔ¯xدwܲ}Õ­vÓªnÛ²{Û³uÙ®hÖ­jÕ«mÙ¨pÛ¬xÛ³{Ù¬sÖªrÛ¬zܬxØ­iØ­dÙ¯pÛ®sÜ­]Ý­^Ý«fÖ ]Ñœ\Ó UÔ QÌšYÊ•ZÏ™\Ô¢dÖ iÔcÑŸWÒ¢bÔ¥kÕ©kÔ©hÑ£cСfÍŸ_Ì™ZÊ–VÇ‘MÇ‘OÃQÆŽNÌ•QÏ™YÒ›[ÔŸ_Ö§b׬eÖªhÓ¦hÓ¨jÛ±sØ®jÓ¤bÔ£gÕ«lÚ°fÚ¬bÖªaÕ¨^Õ§fÖ¦cÖ¤YÖ¦]Ù¬e×¥^ÒŸYפ_×¥_УUΠWΞcÌœ^ÌšXÍ–TÊ–KÊ—OК^ÒžXÐœUÌ—TÏšPÏRÏœZÓŸYÒšUΗUÒœZΛXÍ•PÑVΞS̘MÑ XÔ¢^ÔœUÓœTÑ [Ñ XÐœTЙQÐRÍœWË”ZÈ“SÈ•QË’VÏ•QϘOÍ“QËŽIΕRÏ™[Ñ”P³ŠJóÅð¾ŽðÂïÃí¿‰è»ˆè»…ä¸{á´uÞ¬pà¬nß®dÔ¦dÙ«væ³|á°vݲwà´zà²x߶xâº{â²{à±ã¸}å´~â®}â¯~å´†çºäº}á¶zåµ}꺅鿀繀跄è¿~鿅鼊çÁ…åÂê¿íÂ…ìņíƆí‹ëÁŠé½ã¸ˆã¾ˆç¿„æ¹…â¼ãº}帅䶄à±zâ¶}á³z߯xá³â¯~Ü«vݳ}⺆丅㶊æºä¸†á®vá«uß²yà´|ãµ~纂仃䶆涊渉輌罇᷀⹃⺀á¶yç¼|ê¾~ç»}è¹}è·|æ¶~è´yæ±oÝ­lÞ®qã®sã­pâ©mà©nÞ©hܦeÝ©nݬmÚ¨gÙ«lÙ°sÔ¨rÔ£o×¢hÓ›dÏšcÒ¡fןgÖ hÔ§kØ«nݯrÞ³xÞ°{á¯ä³ˆã²}à±{߶|àµ|á¯ß«xÚ©pשvجuܪmÙ¤mÖ¨oÕ­p׬nשuÚ±|á¶弃è¿}æ»布ç¹~ã·~ᶄ丂à·~â·zã¶wݵuà³uâ³wà´r߯iݪhܨoÚ¨iסaÖœZ× ZÙ¦bÜ©eܤhÙ¡lÖ¤gØ `Ø¢dÚªfÞ¬jÚ¨fؤbÕ£bÕ¥`פ`Ù¤cÜ¥cÚ£bסeÚ¡gÕŸdÕ ]Û¦`ؤbÓœ\×^Ù¤`Ù¥bÙ¦iÙ©kÞ¨kܦiÖ¤e× eÛ a×¢d×£fØ¡_ÒžXÔœZÕ™]Л]ÒžZÑŸ\Òž[ÔœXÑ›[ÔŸ^Õ bÕ¢eÒž_̘UÌ—WÓ˜\Óš^Ïš[ΕTÍ—VÑXÏ™XΖTϘTΖQË•PÍ_Ô fÔš_ј]ÓšeÔ¡iΣgÏ¢cÏžaÉ–ZÇ“RÌ•SÌ–]È–[ȘRƘSÍžeÕ¤nÕ£hÙ¤mتnØ­qÚ­uدrÙ¯rÚ«uÕªmÕªjקnÙ¥kÓ¤mÔ¬vݲzÜ°pÙ¯lÚ­lÕ§kÒ£nÕ¤sÔ§s׫oØ©oÙ¨kÚªnܯzà²{Ù¨pΟmÍŸqÑžjΙ`Ç—aÏšjןiÒ£fϤeÔ¦kÙ¯vÝ´xݳyڳܷ}Û³qÚ°sÞ±vקmÒ¡gÕ¥jÖ©mÔŸ_Í›\É jÄ“[ÁTÁ“[Ę\Π`Ô©kÖ¯lݵsá¸{á¶xÞ¸|Ü´~Ù¯vÙ°r×°wÙ´yܳy׫tÕ¦mÒ¨lÔªlÙµqܸ~Ûµ}߸zݵ~ݲ~ߵܴ€Ù®{Ú²}Û¶~Ü°}Û¯yÖ¬uÖ¨r×­wÕ®zÕªvبrÕ¦nÓ©pÓ«xÖ­{Û°yÛ°xÚ²uÔ­sÑ©uÓ­vÓ¬wÕ®{×´zÙ²}Ø®vÕ°s×°xÚ°qÛ¯rß±xÝ°sÓ©nÑ¥oУjÈŸfÈ¢jÓ°oײrدvݱ{Ý´~ܵvÜ´qÚ¶{Ú·~دyѨqѨlÕ¥kÒ¥iÕ§jبqÖ©rÓ©pØ°tÜ´yß³~ܯ{Ù­vÙ¬rÙ«mÝ«mÝ«nÙ§dÙ¦`Ú§cפ^Ö¡YÙ¢_Ø£eÔ¡eÍ\Ô¢bÚ¨i׬kÖ§hÓXÑŸ\ÏžbÓŸdÚ¨mÖ¤mÔ¤kÙªhÏ¢_Èœ[ΕXÌOÄŽIÈ‹QÌ“WÌšVÏ\Õ¡`اfÝ«lݬpרhת_Û°fجfÔ¦dÙ«jÝ°iܱeØ®jÕ¨hÔ£dÔ¡`Ø¡^Ù¢cÙ§dÖ©fÖ£eÙ¤cÚ©_צWÓ¥YÔ¦]Õ¢]Ï¡]Íš\Í–UÊ–MÌ”RÒš]Ô¢[ÑQКSÐaÎ^ÒžVÓVΛM͘LÓžUÔŸSÌ—QÍXÑTÏšPÒŸTÔ XÐYÓ RÓ¡ZÓŸ\ÕœSÖRÕ TÐœXÎœZÍœPΖOИWИU͘QΘQИNÒ›R̘[Ì–T¶ŠMìÂëÁŒé½…軃é¸æ¶æºˆéºŠè¸€æ²qè´tæ¶tâ±v嵀黄çºç¸~ç·ƒè³ê·€æºä¸wä²~縃æ¼}ä·zã·{㶀㵆麄è¹|㹀彆äµ~Þ¯{á²}â±yÞ³zß·~âµ~á²}à¶æ¼‚é¿èÄèĆèÁˆèÁˆç½ˆè¾€ä¿~ãº㸀ⷃ縄꽆滅廇㺊⸀廀亄á³à¯}㶄á³~Þ¬xà±|à®uß­xẄ翉ëÂêÀŒæºƒã·z溃躊繄軉⸆à²wå»æ¼€ã±uâ³~䶀è´~èµæ·}å¸xå¸{æ·xß²rà±tá®qà«ná­mß«hÞ¦dÙ¢fؤeÙ¦dØ ]Õ^Ö¤gÕ¢hÖ iÓŸeÒžiÚ¨qÝ­oÙ§lÛ¨rݬoÞ«n߬yÞ­{á¬râ¯sã¶|ç·~ä¶}ä³zã²}ãµ€äµåµ~ãµã³ã³xá³zÝ°|Ü°wݲ~Þ°€Ý¯uÝ®tä·€è¼辂뽇çºâ¸~å·ä¶xä·{ä´}á±xà³}à²zà±pã±qà¯qÛ«nݨjÛ¥fØ¢]ØŸ_Ù¡bݨ`ݪiÛ§iÛ©fÚ¨gסbÖ§`Ú¬fܦmÖŸjÓž^ÑŸ\ÔŸ_ÙžbÛ¢bÞ¦hÝ¥g×£ZסaÙŸbÙ¢_Ø©bÕ¡aÕœ^ÒŸ]Ó£iÙ¥iݦdبbפdÜ¢dØ cÕœcÖ bÕ¥bئgØ¡bÑœbÒ›_ÑYСWÒŸXÒš\Õ™`Õ›`Ô\Ô [Òž[ÐœZÑœWÊ—QÈ•QÏšSÑœXÓ›XÑ™YϘ]Λ_Ì™T̘UÍ—YÏ–UÑ›XÐœZÏ™WÍ™XË–`Ë–bÐœ]ÏšYÍ™VΘWÆ“XÅ”TΔV̘\Êš[̘YÊ—[Ï¡dשfÚªjܯvݱsÜ°pÛ°sÜ®tÚ¬yרq×¥lتnØ«mÖ©oÙ­oÙ³uÛ·z߶wݱtÜ®t×¥sÓ¡qÙ¬rÕªrÕ§pÙ­oÖ«lÕ¦pÖ§rÕ©kСiÏkÏ¡eСcРeÓ£eÔªjÖ¯lÖ¬oÔ¨pتpØ®tØ®sÙ®uÕªrÕ¦mÒ¤iÒ©nجtÒ£lÓ¥mÖ«rÖªnÕ§kÔ¨lØ«pËœ_Á•PÄ”VȘeÓ©qܱvÞ´xÞµ{Û²tØ­oÜ®uÜ­y×®v׬vÖ­v×°tÝ°tݱrÔ©kÊ›dÅš`Ë jÕ©xÜ´xݹ}Ú²|ܲ{ß³{Ü´xÚ´}Ü´„Û¶‚Ú´€Ô«xÎ¥oÎ¥rϪqÏ«mЧpÒ¨q׬uÚ¯zܯxݲvݶ{Ý·}ܳvÛ°uÙ®uÖ¬oÕ­q×°wÛ±yݯzÚ¯vܳtܲtܲvÜ®vÛ­zܳ{Ø­oÔªfѦeÍœeË¡kÑ«rÔªyد{à¶{à³|ݳ~Ù°yÖ©tØ®sׯtÒ¥mѨkÕªnרnÙ­s×®tÕªsØ«pÚ±tÛµwݳnׯgÙ±lݲlܬoÚ¨gÛ©^Õ¢\ÑœXÚ¨dÛªiÖ¦gÖ©dܨdÚ¨jÓ¦fÖ¨dÜ­hÙ®pÕ¨eÓ¢`ÒŸ\Ê—TÉ–[СbÖ¦cתjÔ¬lΣ`Ç—QÊšRÇ–Q¿CÇ’NÌ”XÍ–TÓ ZÖ¨dקhÙ¨jתlÕ§lÙ¨oܲtÕ¬j΢bÓ¦lÙ¬qÙ«lÙ¨eÓ¤_ΤaÒ§`Õ¢aÖ¤`بbتgÕªeÙ«cݬhØ©hÕ¢cÕ¤bÓ£dÏŸaÏŸXÒ›]Ò–WÍ•TΚZÖ¡YÕYÏ™WÑ¡]Ñ]Ñ—ZКYÍšTΘQÏšUÉœVȘTÑœXÓžXјTÔ™SÕUÓžUÒXÓžXÓXÔœTÔœTÕXИUÊ—OΖTÑ™WÐœWÏ™VÑšSÕ›RÒ–OÏ—TÏ™XјZ·‰R뼂켇躎庆Ḁ޼€å»ƒé¸ˆé»ë¼~鼂ã¹{å·{鿆ëŠ뾅ëÁƒî‡ëÁˆæ¿…å¸~嵃纅뽃îÁ‡ðňîÄ†í¿„î¾‡îÀ„íÁ‚鹆ã¸}ã·{â¸ß´}á±zæ¹è½„å³ß±Þ³~Þ³zâ·|ä¶ẃ㿈廈了徃æ¹|ä¶~蹀꽂ç¿é¼}껂羅澄ç¹|å¸}⸀æµ|丄巃á±{Ø®zÙ°xß¹€äĈìÇ’ëÃ麄è³à·„伈鹇躋éÀŠå¹„ã´è¼ƒè¿†çº‚äºä¹{ä¶zä¹~ç¶{èµ}å·|åµæ´€ã³y߯sá°sã­lÞªgÚªgÙ£dÙ¡hÚ¦iÙ§_Ù¡ZÕœ`Ò›b×£gݬrß­qß­uÞ¯xܯpà¬qà®uÝ°qà°vá­uÚªrÞ³sã·xá³}áµãµ}â³}à¸~â»~ä¹ã·|â¶xß²uÝ°tÞ­uÛ¬{Þ±}ß°zÜ«uÛ®vß²€å¶}径廇â²yâµuã¶xá´vá·tã¹tã¶vã¹yâ¸xà³và±xà²r߯mܪlݧaÚ¢a×¢fÚ¤`Ú¤aצfÛ§cÛ¦eÙ¦kÖ eØ¥cÝ«iÚ§lÕ dÐ]Θ\ÑšZÕ¥cÙ¥gݧ_Þ¥eÕŸbÔ [ÕŸeÚ£hݧeל[Ó˜TÑœWÔ ]ק`Ö¥^Õ¤aÚ©iݦhמ`Õž]Ü¢bÚ¢cÙ¢aÕ `Ð]ÍšWÏœYÖ ^ÕžWÔšYÖ^ÕŸXÔŸ]Ô¡bן_× `Ô `ΘRΚUÔ£^ÓŸYÔœ]Óœ]Ñœ^Õ^ПXÍœQÑšLјOÑ™WÒšZÏ—QЖNÓ˜YΘ]Í™UΘQΖSΖZË•[Ç“UÈ•QÉš[ÍœaÖ¢cÕ£hÜ«rá³{Û±|ÛµxܯsÖ©uÖ­pÖ«oרsÕ¥mÓ¤oשrÛ­nÛ®oØ®sرuÞ³zÞ±xݯuß²y×°rÔ«rݵà¹}Ù¯oÕªnרoÖ£qÒŸk̘eʘeÓ kÕ jÖ§lÚ´uÙ±xÛ¬uݱuÚ¬xÕ©v׬mÔ¥lË¡kÍ£hѦgÕ¦mÕ©r×°uÞµÞ´yÞµvßµ|Þ´}ß·{Þµ{ݳ{Ü°t׫qѦmѨvܳ~ä½{ݳ{צq΢eʤg×®sݳ|Û´yà³}Ⳅá¸|à¼yá¼zزuÉ£iÙ^ÆžjÓ«wݵyàµz߳ݶß¹ƒà¹†à¹€Ý¶|×°uÓ­zÖ«vÔ¨kÎ¥lÒ§jÖªl׫rÚ°tÚ·rܺqÞ·{Ù³|ײ}Ú³zÜ°tÙ­yÖ¬qÓªnЧzÑ©{Ø´uÚ³sܲvâ»{à»zݵzܵzÝ´xݵxÚ±zØ®xÛ¯tجt׫pÚ¯v×­vÙ±uÚµ}ܳyܲu×­sÛ¬pÞ°vß±{Þ°sÛ¯pÛ®zÙ²yÙ³sÜ®vØ«tÖ«nÙªnÚªuÙ­tÙ¯tÛ²wÞ°nÛ©fÖ¨hÕ¦bÔšVÓ WÕ«aÕªeקfܦcÞ§aà«eÚ«g×¥eݨiÛ«kÕ¤eÓŸ`О[Å“QÆ’TÎœZÓ£bÙ®jÙ®jФ]ÉœQП^ÍšZ½ŠI¿KÊ–SИUÕ¢]תbÕ§eÒ£gÑ£eѧlÕ¬rØ­nÖ©hÒ¨eΫcѨcÔ©j×­kÖ®bÔªcÔ«hÖ­iتhÛªbÚ­fÙªhݯjá²kÛ«gÓ©_Ò©cÓ§jÓ¤dÑ£`Ò¤aÓ¡ZÓšRÑVÑ¡YÐœSÎSÓ¢[ÑœUÍ—O͘S͘UÎœUÑœOÈ™IÈ™QÑžYÒžQÑQÒ UÖ MÖ›KÔUÒŸUÎœQÐœUÔSÓŸPКQÊ–MË—RÏœYÑWÒ˜ZЕ]И\ΗWЕSÑ™VÓ›TµO繃踅纄輂åºáµ~ä¶麇뼌뼈鹈㴀᷆⺌幊èºè½}ëÂíÇêÁŒä¹ã³y載ëÃŒë„ìÁ‰ìˆìÀêĆêÀ‚ëÁ‚êÀ‚缃ⴂã¶~黃巄乄弈èÁŠë¾‹å·†áµ~ä²~å³zà°⯂ã´z߶zഅൂä¶{æ·å¹€ç¿}ä»~䵂超渇ã¸ã·}â¶|á³zßµ€ã½…澊â³Þ­xÚ²}۷ẇ绋ç¸ä³}ß²}ܲ}ව⸆下很ä¿~㼂㾉庂ä³xܲwáµzæ¶vå¶xç¹{é¼{蹂è¶~ç¸xå·wá°rá«má¯tß«uܨhÙ«lاkÙ£fÖ£eÕ¤cØ¡aÕŸgÙ¥oá°vá±vÞ­rÞ­sÚ­oÚ®pÞ¯vÛ¬vÚ¬rÚ¦q×¥rØ©qÛ«uݲ{â³zà³}Ý´|ݱ|ංṀ߳sÞ­pÙ¬rܯt߯rÛ®pÛ¯tÛ¯sÚ¯sÙ¬oÙ±qÛ´}Û­~Û­vÞ³xß´~ã³zß°xÞ®uà³uà³wã³râ°vß°xݳxÛ°vÜ«j߬gÞªkÚ¡fØ¡`Ú¤[Ý¥bÛ§kÙ§cØ¡aÛ¢bÚ¥^Ú¦dâ¬fÞ©cÔœ^ÔžYÒ XÒš`ÕŸgÕ¤gÙ§iÚ¨fÕ¡\ÓŸ^ÕžbÚ¥hÝ©mÕ aÏšYÎœ[Ò¡`×¢dÙ£gÙ¥eÙ©gÙ§hÖcØ¢^Ú§]ÙŸb× fÕŸ_Ï–TÍ–XÒ dØŸ_ÔœXÔžbÖœaÓžZÓž[Ó`Õ fÖ fÔœ`Í—WΚ]ÔžbКYΚ\Òœ`Ñ—[ϘbÑbÔWÔ›WÏWЛTÑ™VΖXÌ—XО`Ñ›`Ì–XÏ–ZÑš[ЙYÍšUÍ›PÎœ\ÏeÒŸeÙ¥mÚ¯uݳtß°tܱsܱrܨoÖ¥kÒ§iÕ¤kÑ£nѧiÕ¥hÔ¥jÔ¡mØ¢uרuÔ¨oÖ§sجtØ©pתtÖ©k×­mΈçˆâ¸wÛ±vÖ®vÚ°vÛ²rÒ¤`Ë_Ï¢kÔ§gÖªnÙ­uß°zß°~ÕªmÑ£kÑ£q΢jÑžcÏžfÒ¨uÛ®yݱṊ㹀ᶀ߷{ß´{᷄Ḁá´|Þ´|ݯt߯qÝ´vÙ±z׫vÙ±uߺܳvÕ§lѦsΧpÒ§oÙ®sÞ´yໄ俇åÁ†âÁ„⾄ݶ{ЩmÈ kÈ£lÏ­tÚ±{ܲ€Þ¸…àºÝ¸}ß¹Û·xÖ±u×°{Ô¬vÕ¬rدsÙ¬tÜ«yݯ}ݲsßµzÝ´|ÛµrÙ³nÓ©kÓ§nÓ©sÒ§mѦlÔ©rÓ¦qТj̦lÒ¬v×°tÖ±wݸ„โ޵|Û²€Ü´}Þ´yݲ~ݳ~à·yݶxÙ³yݲwݳuÚµsÚ³sÚ®wÚ°vÛ²uß´wâ¶䶀á·yÞ²oß®qÞ®xزsÚ³qÛ¯uÓ«pÕ¨oÒ§o×­qá·tÞ±iÙ­iÔ­iѤ_ÔœXÑ›ZΟbÒ¢dÖ¦eקaÙ§dÞªhÝ«bݦbÜ£bبbÙ¬hÖ£`ПWÏžWÃLÅ‘MÐœVÏ¢^Ö¨hÚ¬mÔªjÒ¤_Ñ¢YËžZÄ‘OÅPΙ[ÐœZР\Õ¨fÔ¦eС^Õ§cÕ©fÕ¬kÚ±pÔ¨fÏ¥^Ò©bÍ `ÊŸ`Ò­hدmÖªgتgÚ¨sتo׫eÙ¬jØ®pܯjÞ¬hÖ¨gЦfÐ¥eФcѤbФeФcÖ¤\Ó£TÏŸWÑœTϘQÏ›SÒžXЛVΙQÑšOÓ—RИQÍRÊšWË—ZÑŸ[ÑžXΚQÑ›NÓžPÑžTÓœZÖŸXÏœLΘIÓ™RÑTÍ›MΔNÌ•QÍ™RКSÑ–RБTÏ”RÏ•KÏ”RÏ•QÔœK¶ŽO緂궃蹅ëÁ…ëÀ†æ¹„廇齅켋쿊æ»}ä·€ä¸æ»濄㺆䶂缄迅éŽ꼌鸄潋軇æ»}促廅湀â¶~Ü°|ã·„è¼…à¶}ß±}á²{ä¹}罀涀æµ{蹅뼈ç»~嶀鶃æºãº|å·w赀䰅á®}ß³{ß¹満鸂åºåµzá±|à²}ã±|߯ްxá°và²zݲyḄ來á¹}ݲxÛ®tÚ¯qÚ²tÚ±xÞ¬vß«uÚ¯tÛ¯vೄ䶅å±~⯀ܯ}Û³xà¶xâ°vÛ«sتqá¯xè³|ä²{á´~çº|ç·{æ¶~æ¶zä±sß­sݪoÜ©oݧoߥkÝ¥jÛ¤hÙ¢dÙ¡dÙbÖbبjà­sã±{ß²zÞ¯uÞ²yà±}Ý­xÛ«sÞ­uß«pÛªnÛ¬pÚªnÜ­oã²xâ³~ßµxÜ°xݯ}à³uÜ­yÙ¨zܪnÙ¦oÙ©sÚ¯vÛ¶~â¶|à²|ß³zá³sá´yá³vÜ®xØ°}Ý´yä¶wä¶{á³{à²rà²vá´}ä¶{â±x߯sÞ¬nß©nÞ©nÞ«nÞ«lؤ`Ö¢YبgبlܨkܤjÙžaÚ¢eÚ¨kܨhÞ«mܨhÕXÖWÒ¢]Т\ÓšYÕœ`Û©eܪhܤ`Ü¡_Ú cئbÛ¨eן\ÏœWÍ \Ðœ[ÕžbÛ¨iÞªcÛ¨aÙ¦bØ£]Ú¥bÛ¥_Ø [Ö¡cÕŸ\ÑšTИXÔŸcØžbÓšWÓ™WÖšXÓšYÒ˜[ÔœXØ¡\Ù¡`ן\ИYÏœ_Ó¡`Ðœ\Ñ]Ó›ZΔXЗaÓ—`ј`ј\Ζ[Θ`ÑŸbÑ›^ϘXП\ÑŸXÏ›WÑšZКXÑ›[Ñ™_Ó˜]Ò—aÑšeПdÕ¤jØ­xÜ®uá«vÝ­yÙ©kסgÙ¢jÖ¢oÒ£nÔ¦gצoÖ¢oÒœaЗ`ΛgÍ`ÑšYÕ¥eÕ¦gÏšbÌ gÑ¥kÙ­y⿇廈ܲ{Ü´uÝ°xß´áµ×¯tЪnÓ¥kÖ¥kتo׬oݵuß²sÑ›dÊ”aÏhÑ¥jѧiÙ­uểâº|àµ}àµ|Þ°{Þ±}Ú­uاtÛ®{Û²zݳtÛ¯tÔ¦iÕ«jÛ²uܲzÙ°tÙ®uܱ{Ý°sݱsÚ³xÚ°vܪuܱuá¹{ฃݸ€Þº|ß¹{â¸}เ۵y×°uϨpÊ£mÑ«oܳwà¶yß·}ܳ߶ݶ~ÞµvݶvØ®p׬qÕ®vØ´tܶxܳwÜ´xÞ²}Û°xدrتrÖ©qÕ©pÕ«nÓªkÖ¬q×­yÖªtÑ©iÍ­kÖ²wØ­yÖ¬tÛ¶zß·~á´ß¸„Û¹Þ¸~Û¶wÞ¶{ßµ~ß²{Ý®{ݲzàµrá´uàµwÚ´}سzܳyṂ㻀á»|ß·}ÞµzÛ²zÞ°vÝ°hسpÝ·{Ù­sÕ¨oÒ§pÓ­rÚ²zÚ­nרiÔ£bÏ™PΖTÏ¡]ТYП]Ò¤eÔ¤dÚ§fß­dÚ¤bÕŸ\×£VÛ¥[Ù¨`Ó ^Ñ™ZÍ™TÃHÆŽOÏŸ_РdÔ gצiÙ«jÙ©fÕ eΙ\Λ_Ò›aÔY×£]ؤcÖ¤dÕ¦kפlÚ«oÝ®tÙªmÙ­jÕ¨gѤdÏ¢eÌ bΦbÖªjÞ«lÛ®fÕ«eקjÚªnÛ¬hÞ¯hÞ°mÙ­hÜ®mתhÏ¢^Ò£dÕ¤eÓ¥aÓ¥`Ò¢bÕ¦^Ö¤YÔ XÔ¡WÔœUÐœVПXÑšVÑ™YÒ›RÓœOÕŸUÕŸTÏ—PÍœWÒ¤UÓžQÒ›XÔœ\ÖžWÕžSÒŸQÓPÓ™HјLÒ˜WÓWÏOÉ™I˘Q̘XÑœZÔšVИLÌ—LΘSÑ›WÍ™RÏ™N¹ŠMá¶~æ´|å²æ³ì»€ëÀ†ì¾‚꼆êÂŒïć꿇輄é¹}é½éÁŠæº†âµâ³z߯{á¶ãº€ä¶~ã²{á±y߶wݳrß°r߯uÚ¥nÔ£gÜ­sÞ¬x׫tתpÚ©pÞ°sá³tß°yà¯zæ³~纂æ»{æ·{å¶{å¸zá·~ß¹€ä¼ƒå¹ß²|Ý­zÜ­xß±~㶃ãµ~ä²våµyß±}Ý­yß­tà²vâ·{â²€â²yâ¹}⹃㵅嶇â²{߯zà­}Þ«qÙ¯u޳ݰvÛ±wⴃ嶅渂â±{Ü­pÛ­pÚ¬vÝ­yà±xܳtâ¶té¸yå¶{â²zä³{á¸{ã¶~ã³|߯uÞ«pÚ¨eÙ¦bߦgÞªfÛ§fÖ bÔ£bØ dך_×¥nÝ°xݬrܪnÚ©kÙ¨tâ±zã²tÞ¬o߬qÜ«r߯xä±và®oß°uà²}ß²zÙ²vÚ²tß®uݪsܪkÛ¨oÚ­qÞ­tÝ«wاmÙ©nÞ°~Ḁãºä¸ã·‚ä·~ã¸xàµvà´}á¶âµ|â¶æ¶|â´uß´wã´wã´nã²pä±y߯tÜ«kÜ«jÚªgÛ¥]ן\Õž\×¢^Ù¡bÚ¡jÙ£dØ [Ù¡YÙ¦YÜ¥bÞ¦hÚ¥aÕ¢YÔŸ_Õœ_ÒœZÒ aÙ§lÞªlß«cÚ¦`Ø¥hÙ¦jÛªcÙ¨aÔ›VИQÎœWΚ]Õ¤jÚ­jܨbÚ£]Ù£^Ø¢bÙ¡eÙ¡^ÔUÓŸ^Ó¢bÐœYИ[ÔŸ^Ö \ЛUÏ—TÑœ^Ò^Ò˜^Óž`Ö¢dÕ¡dÒ _ΕWÏ—^Òž^Ò˜YÓœYÒœ[Ì”Z͘ZÑZΘZΖVÒ–QЖXÓ™^ÔšZΕQÑ—RÓœZÏVÍžWΛ]ЙYÑ™XÏ•]Ï–[Ï–SΕOÍœ^Ô¦nÜ©nÜ®qܯpÚ¨mÕ¥jÕ¤jÔ¥mÓ£kÕ£eÓ¤fÑ¡hÑ›aЛcΙ`Ë”VË–\Ó hÔ£e͘aÓŸcتpà±}ã´yÛ²yØ­tÕ§lÕ§kÚ­vÞ³{Ú°tÚ°rرtرuÜ°tÚ¯qÚ³vÛ¯nÑ]Ê—_Ñ¡fÙ©nܯvàºyå¾|ݳvÖ¨hÖ£bÔ£fÔ¦jÔ¦kÕ©qÖ¨uÕ©qÕ­qÏ©jÈ£gÑ¥oÙ°vÞ¶ußµyܲvÞ¶uäµ|à´{à·㶅à±{Þ°yÞ°‚ݲ}Ù±{Ú°~ݳ~⺀㸂á´Þ¶yרhÈš]Ì¢hØ­sݲxà¸{Ù²{ܯ~á¶~á»àº‚Þµ}Ø°uزuÛ²{ݳ}Ûµ{ر}×°wÛ±sÝ°rرmׯqÚ±zÚ¸qÚ²oÜ°uÚ°tÙ¯qÖ¬sÔ«vÕ°r×±tÙ®oÞ¯oáµyÝ·{Þ²xÞ²zÚµ|Û²zÛµ~ܸ{ܵyÚ´{ܲ|Þµ~Þµ~ݳ~Ú³}Ú±vܯvÞ¶uà¹y߶ߴ{Ý®uÞ²wÝ·xÜ­tÙ¬uÚ²vدt×°tÕ¬mѤjÔ«pÕ¬lÕ¦gÎœcÌ”VË™RÈ¡^ËWΙWÓŸ[Õ YÙ£^à¨_ÕœU͘TÕ¢YÙ¤cÖ¤bÏžVÌšOÈšN¾FÄQÏZϤZФeÒ¦hبhשiÕ¦^ÎœVÎœ[Ó\ÓžbÒž`Õ¡cÔ `×¥dÙ®qÙ®nÚ¯nÚ²sÛ±oÔ¨kѧhÓ¦iÒ¢fÓªhرjÛ­jÛ©mשoÕ¬hÕ©eجjÙ°nÜ«hÜ©jÝ­kÚ§fÓ¢hÒ¤jÒ£gÑ¢bТcÑ¡bÖ¡_Ö£[Ò£`Ö¥_Ö¢XÕ ^ÖŸ\Ñž[П\ÓžRÑœTÑ›SÓšRÏ›UÓžRÕ›TÒšRÒžXО[ÓžYÕ›VÒšXÕžZÓ›MϘKÐœQÐUÒœVÑšVÏœUÏšVЖUΓTÑ–QϘJÌ—O˘WÌ”QÒ–RºŒUåµå´€â¶}ç½~꽅꾃꽂êÀ†ëÁ†í¿„êº~ç¸|è¼€è»ç·zæ±y߯t߶sä¸vè·}è´{ä´tà³uß­tß«qߪyÛ§sÙ¨mß­sÜ©qÚ¨oÛ¨pÕ§nتoÞ³xÞ¶~ä·è¼|濇éÀŠé¼}è»æ¸…ݳ…Ø´€á¿æ¾ƒå·ƒå´{Þ¬vÙ°{áº}å¸}åµ€åµåµ|ä¶{ã´}絅黄é¾~溂乂޸ƒâ½ˆìÂ쿈꼂é¹â¶{޵㸃ä¶~à±{Þ¶⽇æ»ä¶€â²}ä°„ß±{ß´xå¸å¹軀ç¹ã´|â­|á«}߯zãµ}çµ€ã²yÜ­tÙ¦mݨeà§aÜ¥aÚ©hܧhÙ§gئjÙ¨jÙ©mÚ©nؤcÕ¥fÕ¦qܨvà¯x߬nÛ¥hÚ©mÞ«pã°}䵂á«vß®yß³|ݬxÖ©nÖ¯nÞ¯yÞ¯yß³|à²xáµwã¹zã³uÝ­rÛ­sá±wâ»~â¸ãµ…㺇ä¹}ç·yå¶}â²â·zæ¾{æ½}ã¹~á±wã±qâ³pÞ¬rÞ¬oá¯lá¬lߪhÝ«iÛ§cÙ¦\Ù¦WÚ¡^Ý gܤbÙ¥cÙ¤fÚ¤bÙ£cÚ¦fݨfÙ¨hÖ£eן`ÒŸWÒXÖ`Û¨hß®rà«uݦjÛ¥eܧeÝ£aئgÜ©oÙž`ЙQÏ›YÕ£aݬcÞ¨hÙ£mØ£nØ fÙŸaÛ¨dÙ¤bÒ™YÏž]Õ]ЕXÌšYפaؤ]ÓœWÖšTÕXÖž_Ö]ÕXÖ¢ZÔ¤^Ö`Ò–]Ïœ\Ôž]Õœ`Ö¡`ÖbϘ^Óž`Ô™]Ζ[ÏœZÐœYÒš[Óž`Л_Ò˜YÒœYÑ[Л\Í–VÍœVП^Ðœ[ЖWΕ\̘^Ì™YÍšVÓ£eÛ¨rÜ­tÛ­tÙ©rשrتoÕ£oÓ¢pѧrÒ¨oÖ«m׬sÙªuØ¥oÖ¦lÕ§jÛ­oà²lÙ§kÙ¬xÚ±zÝ°vÜ­tÚ¬xÚ±tجqרrÞ¯tãµzãµ~㸀á¸wàµvÝ°uÓ®sÖ±rÝ­qبqÚ­qܱuÞ·|â½~áºyà´~Ý©uÔ¤iТiΡlѦkÓ¨lÔ­jÙ®lÚ¯xÚ®sרkÒ¥jÔªhÙ¯pß´xâµ|à³|à·vä¶oâµuà·„á¹á½}ß¹~ݱܭyÙ¬uܲ{à¯yã°|ã»yã¸xÞ²xתmÑ¥jÓ«oÚ²rݶ{ß¼~ܹzÙ³}߸ƒá¿„༃á¹Ú³vÖ±rس~×°€Ù²{Ü°xÙ­xØ°uÛ³vÝ´{ܵwÚµtܲrݳrÛ°rÛ®mÞ±qݱ{ß°~Ü°vÚ±rß³vßµuÞ´tܳzÛ³z߶~Ý´{Þ³rݲuÚ³}Þ²~Ý°{ܳwݸyß½~߸Ý°}Û²zÚµzݳÞ´~ݲzÛ°yݯwݯ|Þ±xÛ­t×°vÛ²uß³wݶwÚ¯lרnѪsÓ¬kÓ¦`ÌšTË™XÊœZÇ™XÆ–VÌœYÕ¡YÕžUÖ£Zݨ\ÑšSÈ“KÍ›RÒžZÑŸWË—MÅ‘HÄ’J¾ŠF¿FŘPÌž^Ò¡`Т`Ö¨gدiÓ§bÑ›[ÏšUÏ›\ÓžcÔž_Ö¢fÓ¢fÔ lÚ«qÖ¬mÖ©iجnØ«rÖ¦dÕ¦dÙ«tتrÕ­j×­jתiÖ¬kتnÖªkØ­jØ­fתhØ©kÛ¯hÜ°j׬dÕ¥^Ò¢bÒ¤dÕ¦eÔ¥cÏ \Ôœ\Ù ]Ø¢Xס_ÔŸ^ÑœYÓ`Ö£aÕ©[Ò¤YÒœXØ¢QקVП^Ó^ÔžVÒ™RÏ›XÏŸYÓŸWÕžQÒŸZÒžZÓ™UÓ™WÓžYÓž_Ó^ÒRÑWÐ\ÍšRÈ“MÍ‘PÑ—XÌ•ZÌ–\ΙYÒ˜O¶‹N绀繀뿈íÅŒìÂêÀ‰ëº„軇徆滆輅æ»ä¹|å¼y㻂ⵆ縆꼃è¸|ç¸~é¹ƒí½„ë¾ƒëº€é¶~ä·æ·|à±uÙ¨mÚ©rá²yã°uã®xã´yß²rá°x߶ໆ弇伊⿋濅漇湊亄à·}د{Ú²yæ¼€íÁŠéºˆã±{â°}幅羂è¹|ç¹xæº{輇ç¾ç»ƒé»‚繊趈縂â³ṅ迋뼊躇淀á¬{Ú«xܱvß²sÜ°pÛ«qß²{ã¶ä·}æ»}滃㷂ã»|å¹yä·yå¶vå²vâ°|ã²vâ´vä´zäµzäµ{ãµvá¬uÞ§pÞ¨aÞ¦bÙ£eÚ§`ܨjØ¥qÔ¡kÓ¡fÓ¥kÒ£gЙ`Ó hܲxá±}á®q߯rÚ©x×¥xÛ¨rÚ³qݳrÞ«qܪvÞ¨sØ¢nÑ¡fÓ§gÚ¯vܳ|ßµ}ãµà³€ß±yà²xàµyä¶tä¹uâ¹|á´á´|â´{ß²xÞ²vݱxáµyç»ë½€é¹~ä¯xÞ¬o߯má®nâ³rà²pÞ«mߨlߨkÞ§hÚ¤bÖ¢eÙ¤b×¢eÙ¥nÛ§gÕ g× eÚ¢bÚ¢bÛ¤^Ú¡b×¢dÕ¡dÔœaÐ]ÑœZÕŸaÜ«mß«kÞ¬qצjÕŸ^Ý¥aÙ§bÙ¨jÛ¤mÖ¡\ÏžZÏš[Õ¡bܨhÚŸZÕœ_צkÖ§eÕ¤bÛªd×£`Òš^×›dЛ[Ê–TÎ^Ö£dסZÖ XÔœ^Ó bÙ¢aÕŸ^ÒžVÖž\מdÔš^Ì“RÏœ[Ö¡\Óž[ÑŸ`Ñ›[͘UÕžXÖž^Ë–WÌ—UÕžWÒœVÑ^Ñ]Í—[ÏšXÎœVÏ™YΗYÊ™XÌœ[Ñ›SΙWÌ—^Ζ\ΗRÌ›ZÓ¦pÚ¬sÞ­wݪvתoÕ©pÖ¦oÖ¡fÔŸbÖ¤iÚ±wÞµ|ß²wÛ°tݳ{á¸~㹀満å¼}⻃ä¸á³xÜ«xÙªzÛ°yà¶|Þ³vß±qß¹{Ềå·弄㺂߳yØ«qÖ¦nשnÞ¯sà±yß¹vݹvݵݵ~Ù²và³~âµvÞ³rÚ®qÛ¬pÙ­uÙ¬wØ®u׳tÚ¶}ܲxجnÔ©pÕ¦pѧpÖ«vÝ°tÚ±oزyÜ´€Þ´{ܶ{Û·}Ú´{ݲ|Ú´uÔ©hÓ¦iØ­rÓ¨oÑ¥hܳtÞ³{Ú­sÙ­pرvÞ¹{à»zà¹xàº{Ú·{ز{Ü·~à¶xÛ²xÛ¶|Ú²zÕ±x×±wÖ±wØ°sÛ°uÙ°xÕ­wײ}Ûµ|Û·{Û·{Û³vÙ°pÚ®rÛ®rÛ³|ß´~à¶ß¶ƒÞ¶€ßµÞ´€Ú²yÛ´wÜ´{Ý°{à­zÝ­€Ù²zÚ³vܳÚ¶{ßµxß±xÝ´vá³{ⴀ߷{ܳx߶~Þ³yÚ®tݯxÛ¯xÛ¬uÚªsÓªoÖ®xÚ²}Ý°tÝ°nÙ¬mÚ¬uÛ¯pÔ®hУYʘTÈž]Ç]Ê–^Í™\Ð\Й\ϘQÒŸWÙ¥`ÖžTÊ•QÄ‘QÈ—TË—NÁŽC»†Bº†D¹†?¼‰GÀŽQÊ—XÌŸYÌœWÏŸ]Ò¨bШbÒ¡^КTΚWП`ΞWÑŸ[Ò¢dÒ¢cÖ¨hÕ¨hÖ¥jÙ«tÙ­pÓ¦hУmÖ¨mÙªkÕ§g׫j׫iÓ¦gÖ¨lÖ­lÖ­oÜ®qÜ®hÙ©iܬjÚ²lÖ«jÕ£gÕ¤gÔ§`Ñ¡aΞ`ΞZÎœ^Ôž\× ^× _ÓœUΚRÐWÔžWÓ¡WÑ¥]Óž\ÔcÔ¥bΠZÐœ`Ô`Й]Ð]Ò¢XÔŸWÔUÒYÑYИUКUÓ¡UÑ ZÑ[ÎœUЙRÑ–T˘V̘TÏ–WÓ˜TÏ™PÍ–VÏ–WÒ˜O³ŠM轂쿈îÉíĊ뿇ê»ê½„鼈뼈齇軂麀湀á·}ã¶~æ¶ç¼é¼ƒåº†å¾…êÁ…éÀ‡è½‡è¸}à¯vÞµ}迃绀޴v߯wã´€æº‚í½„ðÂŒëˆ轇潈潃亅㹄ⵇ㵆âµÞ²‚ßµ†àº~Ù±uÖ­wᶂ縇廊å»â´}අç¸~è·~çº~è¼|ç¾~迀軄市äº}什缅溂澄èÁ…æ¹€ã¶|âµ}á±{ß®vÙ¯tÙ²zܯzÞªvà¬xá¶}羄齇弇ä¹~áµxä¹zåµuá³zã·}åµwä±zâ³xä´så´qä´oã³oã­gß©eÜ«jܨhܨgÚ¨hݧlÛ¤jÓaÒœZÑžcÔgÕeÔ¤mݪ{à²xà¶vᶄ䵄޲vרq×¥kØ©jÖ¨lÒ£hÓ¤iÕ¥kÕ£oÛªsâ²vâ´rã¸yâ¸}ß°tß°xÝ°zÜ­zÜ®yݯ|Þ¯zݱuá³xã°tÞ¨qקpÕ«pݱwã¸~ç¸ç¶~å´má¯jÞ¯h߯eà±pß°oÛ©cئgÛ§oÞ«lÙ©iÖ¥gÕ£^ÙŸ]Ý›^Ù¡[Ö WÖŸ\Ù¢bÛ§dݨcØ¡cמbמbÕ™bÑ™]Ò™XØ¡cÜ«jÚ¨hÛ¦jØ _×`Ú¥kÙ¥dÛ§`×¥_Ó[Ó›_Ðœ^Ó aÚ¥kÖ _ÓX×£eØ¡`ÖŸXÚ¤cÙ£_Óœ[ÖŸdО^Í›XÒžZÖ¡^× cØž`Öž^Ö aØŸ`Ö›`Õš\Ô¢cÙ£aÖ›WΔUЙ]Ôž^ÒŸYÒœ]ЕZЗXÙŸVÕœUÊ•YʘYÌ›YÎ]Ó _Ó]К]ÓZÕ›XÒ—VÏ“QЗUÏœ\Ïœ]Îœ_Í—\ЕUΖXÕ›dÞ©pÞ±uݱuݬoרmÕ¥lÔ¤jÓ£eÑžhÖ mÛ©u߳ߵvÞ¯v㵅弃渃溅ãÀ€ä¿~ä¹~ß´|Ù®nÔ©hÚ«sݱtÕ¯rÒªlØ«jÚ°sݱ}ⵇà´Ü®mÚ«mצnÙ­qá¸á¸}ݶxÝ´xÙ­qØ©jÖ«qܵxߺzݶ~ݵ{Þ·xܵ}ܳ}Ù®w×­xجxÓ£oÓ£nÖ§oÐ¥nÈŸkÔªrܵyÙ°rݯrÚ³zÚ³zÜ°uÙ­uÕªtÔ§oÖ¨mÒ bÑ¡`׫hÒ¥cÌ›cÑ¢qÒ¤mÕªjâ¶qá¶yß¼~æÂ|äºá·|â´xà°vܱzØ°zÖ®{دÙ¯uÖ­tÖ¬qÛ¯nØ°pØ°xÚ±xÕ®tÚ²yß³|Þ±{ݵݶܶ{Ù³tÚ±sܲ|ܳzܱyÞ²~áµ~à³|ܶ€Û¶{Û²}Û¶…à¶à²vݳyܲvÙ±uÛ¹{Ü·{ܲvß´xÞ²|à±|ã·yßµuݯwÞ³{ܱuÛ¯v׬uÖ¦tÚ±tݵsÙ¯sÙ²rÛ°q׬hÔ­gÛªkÛªiÕ¨eÔ¢dÌž\ÈšTÌZÍ¡\ΞXÑžWÕŸZÔYИOÓ˜Uך]ÕœZÑ›UÅŽK¾ˆA½‰=²A­y?­~9¯=µ„I½ŽJÖSÉš^Í›VËšTÊœTÍž[΢cÍ_Ñœ]Õ¡bÐœ_Ó ^Õ©_Ö¥dÔ¥hÑ©dשgÙ¯k×°lÔ§iÒ¦pÙªuÚ­q×­kجkÚ«oÖªhÓ«gÖ«iØ©jÛ¬kÜ®jתgÚ®gݯhתjÕ¨iÓ¤bÑŸbÒ¡fÖ¡dÖ¤[Ó¦XÔ¡[Ú¢`Ù¥_Ô¡[ÒžZÓWÑUÓžRÓœMЛWÏ`ÏžXÏœWÓŸ^Õ ]Õ£]Ô¢ZÖŸXÚ£ZØ¢YÖ aÖ¢bÑ SÔžUØ¡[ÑZЙXÒ•TДQΖLΙOΚTΔTϘUÑ›TÒ›\Ê–XДLº‡OÛµ|â»ç¼„ç‰æ‰æ¼ç½‡ëÁ…ìÁ†ë½Šé»†æ¹†åºˆå»…涀岀æ»äº~á¹ç¼‚é¿~æ¿ç»æº~ß³zß°yæ½…ë‹渄㹃àºã»|èÀˆìÀ‰ë¼…缃什䷆æ·äµvå³zæ²{à°yÞ³{â³{á°zÝ®wÝ­yà®xá±vä·‚â¶|á²yâ´߸xã·z滀â¼|฀⻂á¸yܲxÞ²|ᴂ轉迅轃íŽフ湀áº涄㴃ᴄá²}ܱtÚ²y߯vã¶z齉黓渉ã¶â¸ç¶ç±uá¯pã³xæ²xä³|ä·vã³nã­tâ±vâ°tÜ©oÛ©fÛ§cÚ¢cÛ¤eØ£dÔ¢eÓŸ\Í™VÏZÕŸZÓž\Ñ _Ö¦iÚ²zÞ¸‚áµ~ä´zá¶vÚ°qשqÕ¥eΠbΤkÔ¦nÖ©nÖ¯sܱ€âµãµ€àµ{ݲqݬuÛªpקcÖ©jÕ¢iÅ`ÉšfÔ¦kÔ¤jÕ¥eÕ¢iÓ¢oѨmÐ¥eÙªgå¸tä¸{ã´qá¯iá¯lá°láªlߪlß«cÚ¥bÖ¦iÝ©hÝ©hئbÙ WÖ \Ô ^Ö \×£_ÖžbØžbÚ¢eÜ iÚ¢cÕŸ`Óž`ס[ÓšW͘WÏœZÖ¥`ئb×¢aÛ¬pÖ¤lÕŸ]Ý¥cÞ hÙ¢eؤ]Ôš[Ñ\ÒZÑœ]Ó£eØ£_Û£\קbÕ¢^ÕŸZØ£`ן`Óš]Ó cÐœZ͘NÍTÓ b× dס`Õž^×[ÚŸ]Ö›`ÒšYÔ¡^Õ¡gÓœZË™SÏœ^ÔbИ\Ж]Ñš^К\ÒždÒœ_ΗYΖ[Ï–[Ò˜_Ô hÑŸ_ЛUЙWКXÍšUÍ–VÍ–UÌ™QΛUЙ]Í•YΗTÓžZÔ¤eÚªnâ«nÜ­pצlמdÔ kПjÏbÎ`͘bÑ£hÜ·vÞ·ܵvà·zá¶zâ³tã¶wܲ|Þ´xà¶vÝ´xÛ²rجoÛ­rÝ­oÓ eÊ—]Ï`ÐbØ¥pá·‚ßµxÛ±rÚ±tÚ°mݶpÞ¼€Þ»Þ·uÞ¶uÕ«nÍ hɨpгvܲtÙ­rÖ­lÚ°lÚ°yÖ­yϧrÑ¥oÖ¨lÓ¦iÕ©sØ­rÓªgÊ¢fЧtÛ³yÞ¯vݯ}Ûµ€Û³vݲyݲÛ«sܯsܲu׫nÖ­i׳lÒ¯qÏ£nÏžgÓ§mݵwâ»zß´€ß¶‚ä¸ã³yÞµ|áº{᷀ߵ{زqÖ´uݵyݱxÚ²t×­nØ«pØ­q×°rÙ²xÙ­uÝ°sݳ{Ú±zÞµváµ{ßµzÛ¶yÙ³wصyÛ³wÚ®tØ­zÞ²và¶sݶ~߶€ßµ{Þ·{á»xàºwݸ|ݳzÝ´xà´wݳvÙµwÜ´vÙ°s×°tÙ®zݯyÝ°yÜ°xÛ´rÙ­qÖ¦n׫nÛ°oÞ³tÞ´wß±rÚ±mÕ«eÒ¨ZÒ¦[Ö¢cÑ¡dÌ`ʘXÉ™NÍžXÍŸ\РZÔ¥_Ó£[ÑU͘KÏ™OÒ›WÍ•IÊH½ˆI±{:¨p/™j#“g"›l-¥u9«z=¯D·‰RÀ“PƘOʘSÈ‘PÇ‘OʘVΘZК\ÓŸ_Ò [Ô¤`רhÓ¨jÖ¥mÔ¥hÕ«jÚ°oØ­pѦqÓ§mÙ­oÙ¬mÙ©lÙ¬sÙ¯pÙ¯hØ­cتkÖ¬pÙ«nÛªjÚªjÚ¨eÚ«dÕªdÔ¥cÔ£hÒ¡dÑ^Ö£aئ`×¢\Ó£bØ¥gݦbÖ¢UÒZÔ cÒŸXЛPÑšTΗRÒQОUΘSÒšTÐœYÓ`Õž^Õ WÖ¤VÖ¡VÖ¡^Ö¥\ÔŸRÕžVÒž\ÑŸYÒŸZÔWÔš\Ï•ZΗPϘMЕKÑ–OÒœVÒ VΚTÐV¶NÞ²vßµ€á³„ᵂáµâ·z幀湋꾑íÁ‘뺎跄è¿}뿅載꼅뻌淆ã¶æ¸…å»‡é¼…í¿Žë¿Œè¶{æ±xæ¿‚êʼnëÁ‰êÁ‹ä»‰Þ¹†àº€ä»{ç¼€êºæ¸„蹃뻀罂滂æ²|ã°}æ²|é·ƒç¸æ³‚å³ä¹{åµ{â°zß®vÞ«vÙ«uØ«rà²xä´{ß®}ß±ã´ß³~ݲyÝ°xÞ³{乀湇ç»ìÁŒëÀƒæ¸~巄껄躂乆缊䷊᳃á¶|â¶|ê¼‡í¼ˆç¹‚é·{ê¹}è¸~ã°uÞ¯rã·xä¶yã²zä²yá¯râ­kã±má³uáªqܤlܤhÚ£bÖŸaמ`Ö¡jÒ¡iÑž_ÓcÕdÙžfפiÚ¬uá±}ß²wܯuÚ§oÕ¡kÓ nРh͘^Í–_Ñ mרqÝ­xß²wܬsݯyà²zß®tÞ«mÛ§oؤnÖ¨hÜ­mÛ§kŘYÃœ`Ò¢kÔ¢gÒ¡dÑ¥g׫sݱuܯpà¯yç¸~æ¸~ã´vâ­jà¬là¯qá¯qáªjà¨dÝ«jÝ­nÛªkܧjܤeÖœXÖ›WÖœTÖ¡Xקa×¢ZØ\Ö bÓ£]ÕŸZÒ˜[ЗZÒ›XИQ͘SОZؤgÚŸaלZÝ©oß©hÙ¡XÙ£`Ú£bÙ¡cܧaÙ£[ןaÕ¢ZÓŸZØ¢gÛ¥_Ú¢fÚ¥h×¥dÕaÖœ^Ô›ZÓ ^Ù¦hןaЖRÒŸZצiÖžcÕ›bÓš`ØžXØœ`Òš`ÕWÖbÕŸhÓš[Í”QÒ ^ÕžbΖZÐœ^Õ›bЙbÒ`Ó^Ï™\̘^Ζ[ГZÒš_Òœ\Ï™ZÑšZИYЖYÏ—WÏ—VË—ZΖ`Óš^ЖYϘZО`Õ¤gÙ©gئhÒ¢fÑœhϘmʘaË–XÊ‘ZÇ‘`ÎjÙ­rÞ³vÛ°uݶxã¹wá·yá¶xà³sÚ¯uÚ«mÛ«mÛ´~ß¹€Ý´wÙ¯uÞ±qÛ¯jÓ§gצeÙ¢fÜ©xܯyÖ¬rÕ©oÒ¦hÖ­oÛ°xݱtàµrݳrÙ¯tÖªrРgˤjÓ¯vÙ®wÙ¬pÙ«rÚ©uÛ®p×­qÓ¨oÕ¬mÛ±oØ°mÝ´táµyÙ®r˨kÌ®nÕµvÙµzÞ´zß²vß­zಂ㷀ߵy߶xá¸zݵxÛ·د~Ó«yÏ©tΦqÕ­{ݹ‰ß¼ƒÚ²wجvÞ²{á¶~à±xáµ~â¸à¹Ü´~Û²}߸zݶ{Û²}ݳz߶xܳvÙ²qܵxÞ³à³và·uÞ¸}à¸wâ¶y޶ܶxݳvÞ¶{à¶yܵwÚ³uÞ·yß¼xà¸uÞ´{߶€á¸~ß¼}Þºzݲvß²vá¶zß¹|à³}߶~Þ·xÛ¯rÖªu×­xܱzà°yݱ}ݲvß²sݲwß´và³oÚ±jÛ°nܱpܬoÚ¬mÕªcÒ¢^ÏŸ^ÍœZÍ›YÌ›X˘QÍ›UϤ]Ñ£[ÐYПZÐXÊ–YË–LÊ”EÊB»…A±{6¢k'”_!…TR‡_(d-”d-™n7 s>¬}:¶‰D¾P‘OÂ’KÇ”LΙUÑž^Ò ]ÔžXؤdÖ©jרdÙ­fתhÖ¨gÙ®fÖ«hУkѦnÚ°sÙ°rÖ«iÙ¬fÙ¬pÚ­oÛ°jÚ­mÙ©mÙªfÛ¬eܨiܪjÜ®jתhÔ¦gÓ¡dÑ›]Õ [Ö§bÖ¤^Ö¤]Ú§g×¥jؤ`ÙžXÒšXÔŸXÔŸ\ÐYÐPϘPÍšOΚMјRКLÌœRÔš^ÖœRÏžRјTÑ–RÔœQÒWÍ™U͘NÑ›VÓžYÓžZР]Ο[ÎœZϘQÑšOÑŸOÒšOјWÐœU˘OИUµQ᷅ݯ|Û®wÝ°}Þ¯zÜ«oÜ®tã¶{é¾€ìÀ…ì¿è¼é¸‡èº…ä¹yã»}æ¹è¸}一嶇纅éºí¼‚ë†輂äµx繀輆彇罊ⶃܯz׬{×­{Þµ~仄輄輆鹊èº~ä¹tâ¶~㸃æºè¾ç¿çº„久亄æ¸æ¶xâ¯xÞªyÝ­zÛ®vÚ«má­qÞ²yß·|ä³{à¯uÝ®sݯvÝ°uÝ°|ß³ã·æ¾ˆèÁ…æ¼~å·~å·嶀乂繂紂万꼉麅꽌ìÀ‡å·€å²}æ´}ãµâ¯uà¬má°pã­qã­uá¯xâ®tã¬qá®vá¯sݬlÞªlà§gÛ¢bÚ£hؤgÒ `ÕcסhÔ¤mÙ¤pÝ©uÛ¯x߯xÛªvÓ¡lÓš`Ó›cÒœcÑšeÑŸgÓœcÑ—_Ñœ^Ô¡lÚ¨xÞ±wÜ°qà¯uá®à¯€ß²yÞ¯uÜ®oß°pß³tß°pÖ§nÑ©pÓªnÑ¥gÒªmÚ´wⶀã·á³wâ¯yá³}á¶tä±oà­kß«iá¨pÞ¨hݧeݨfÞ«cÝ«qÙ¨mÙ¦bØ¢^ÓXÒœWÒ `Õ¡cÖ^ÖšYÖ™_Ö¡fÖ¢cÑ›]Ñ™YÓžZÓŸWÏPÍ™QÒ›]Ù¡iØdÕŸbÙ§kÚ¤iÙ¥`Ø¥_ן`ؤ_Ú¦`ÓŸ[ÏœUÕžWמ\Ú©eÜ«cܨdܪhÛ¤^Øœ_Õ dÕ¡_Óœ[Ó¡_ÖžXК\П`Õ¢cÖŸ^ÕšTÒ™VÓ\Ñœ[ÓŸWÕ¡Y×¢bÚ¦eÕœ\Í“WÒœ^×\ÒšZÓœ\Ò›XјVÓœ^Õœ]ÒšWÍ–QΛUÒžWÓŸaÑž`Ϙ^ЗbÑ™WÔSјW̘UÍ›WÐœ]ÎœYÐœRÓšUÐœcÔ iÕ_Ξ\Íœ_ΗZÊ–XÈš_Ê–]ÆYË›gÙ±zà¶~ß²v×®kÛ³và´|Þ´zá¶~ß²v×­qÒ¨wÒ¥tØ©vÛ¯zܱxÚ³|Ù²}Û°rܳqà´qß±{ݱ~Ù«pÔ£jÏŸcÈš\Ï jÕ¤lקsÝ­|Û©pÙ¥nצtÑ¡kΡhѦoÚ«tÙ¬q׫h׬oÙ­tÛ®jÚ®oÝ°}ݵ|ܱ{ß±€â¶{Þ²oϤmÊ£lÖ¬qÜ´~Û²{Ú¯sÓ«qØ«qß³vÛ®vØ©pݬnß²vàµ}Þµu×°rЫlΦfÓ¦jÖ¯uܳ{Ü®tÖªqÙ­vݲ{Ý´~Û°€Þ³áº~Û°w׬z߶€à¸€ßµ€ßµ†ß¶ƒÞ²xÚ­uÞµvÜ·uÛ²xà´xß²yܯxÛ®xÚ®|Ý°{Þ²wÞ²yà³{߶xÞ·xà¶ݸ|Ú³wزwصyÚ°yÛ±yر{Ú«zÚ«xÚ°}Û±xسpÛ²nÞ®rܲzÚ´tÚ±mܲuܲuÞ´uàµvß³xßµ{Þ´uݳrÛ²nÙ¯nׯuدmÙ¯iתhÖ¦kÔ¥fТ\Í¡^ÌžYÉ—VÍœ\Ï¡\ÌŸZÉ™WÈ•Xɘ\Ì›UÊ—OÅD»„9³~4¤p,ŽY yIf@iBpKrJvJ!zR%€X%b'šm1©x<·‡DºŠFÃMÌ›VΞ[Р[ÑYÕœb×¥jجkÛ«lÖ©iÕ¨eרlÕ¨jÒ¤dÕ£iÙ®sܲmÖ©hÕ¨lÛ®nÛ¯jØ­iÚ²lÛ­iÖ§fÔ¥bÖ§hܬkÞ«f×¥aÖ£ZÓ¢WÑŸ\Ö¥]Ö¦\ØŸ^ס`ئfÙ§aק^Õ _Ó™[Ó¡_Ö¤_Ô XÒVÐYÍžWÎœRΚOÍžTΞYÓžZÕ TÓUÒ›ZÓ\ÓžTÐœSΖQÍ•LÍ™SΘTЖUЙVОTÒšOΙQÏ™VЕMË“MΗRÏ›VÈ‘QÎ’P´‹PÝ­xÛªwÛ«tÞ°yß­wÚ¥sתtܲsâ¶{ç†êÇ軆ç¹ä´|ⴀ䷀ä¶zã·|ä¸âµæ¹ƒé¿ƒè¿„éÀ„è»~ä´~ä´†á¶à´zâ´€à±wÛ¬pתrÚ®uÞ°}ß°yݲrݶ‚á·…ã´~à±zݱ}ß´zá²xâ´}帆廆å»æ·}躆鼀é¹}ç´ƒê¶ç¹}á¶~浃蹄繅縄åµ|â±wÞ´vÞ²vß³}᷃庆轃漃å¸ä·€é·„æ·~一湆嵃㸇辈鹅긅꼄乂ä¶~çµtå¶wã³zá¬sá¯sä®xã¯xä²uâ®tß©mÞ­má­qà©oÞ¬kÞ¨jלdסeÚ©kÛ¦oÛ¤pݨjÞ«kÞ¯sÜ®vÛ¬tÙ¥qÙ¤mÙ¦fØ eÚ lÙ¤lÚ§lݨnؤhÕ¡hÖ¡mÖ£n׫oÛ²vÞ²}à²yß²xݶ}áº|á¶yÞ²~ݲzرqׯsÙ©uØ©rÖ§sÑ¢nÕ¯xáºä·zä¹zâµ~á¯yã¶pâ²tã¬pá­eß©eá©mß«mÛ«lÝ­jÞ¨fݧcÛ¥aÕŸbÕ bÙ¡]Ô WÓ ]Ô\ÒœWÕœ`ÕšZÔœ[ÒŸeО\ÓžTÔXјXДWÑ™VÖ£`Ø¥`ÖœVÖ›YÕ¢^Ô¡^Ø bÚ¡[Ø WÕž\Ø¢^ÕŸ`Ò™`Õ›_Ù cݦbÛ§\Ú©`ݨgÛ£bÛ¦`Ù¥cÖŸZÔRÓžYÔœZЙWИZÖ¡fÚ§eÕWÓ™TןZÔWÔšQÕœTÔ aØ£gÕž^Ε\ÒœdÔŸbÔ™\Ô›`Ðœ]Ï›WП`ÔŸ^Õ™XÍ–ZÏXÔ¡]Õ¢bÓ [ÎœVКWÒž[ÒŸZÔ˜XΖUÍšTÒŸYÐœ\ЙYÒœZÐ^ΚZÍ•UÌ”ZÊ–XË•WÌ”XÊ”WÌ–VÍ–\Ò£qÛ´Þ¸~Þ°yݪvá±yá´vÞ±vÛ²xØ®tÖ¨wÓ©sÐ¥kÎ¥lÓ«oتpÔ¥nÔ§kÔ¦nÔ¨t߸z什වް~تsÒ¦jÐ¥gÖ«lÖ©qÙ¨uÛ¯{Ú®rÝ«pݯvØ«qÙªoÙ¬o×¥fÑŸdÓ¡eÔ¥j׫tÚ±sÚ°rÞ³}߶}ܳqÛ³xÞ°{Ù¦qËcÆ—[ÍždÒ¨lÓªjبjÙ¥gשjÛ­vݪtרuׯ}຀較å»~ä»|àµzÙ°yׯvÛ®vÞ±}Ø°sÕ¯m×°yÙ±vÛ´yØ°{Ô¬vرyÛ°zÕ±tܵzàµzÙµsÞ¶{á´~àµzÞ³tÞ°uá°{ݳvÛ³tÚ²sÛ´pÚ°s׫xÙ±vÛ±zÞ®{Ý°xܲwá¶z߶{Ú³~Ú±{دzÙ¯zݯrÛ«rÖ©vÖ«mÕªfÕ©iÖ¬gÔªkÖ¬oÚ³vß±{ß®xܳqÞ¶vß³yÞ³yÞ´yܲrܲrÛ­sשqÙ¬tÝ«mدhÖ°kÚªkÙ«gÔ­fÒ¨gÕ¥dТ^ÌZΚWÒž_ÓŸaÔ[ÑšWÌšYÍœWÍšUÉ•R¿ŠC²|7 o/‰X$xDh<]8g?jCd@nDpFhCkGtP†]$˜j-¤v7¯EÀŒPË™YÌ^ÍšYÓZÔ£jÓ¤iÕ¨hÕ¦kÔ¥gÕ¨jרlÕ§cÕ«eÛ­lÙ«qÕ«iÙ­lÛ®uجrÙ¬nܳpÛ²lبcÙ¦dÚ¨kÜ­lÚ®gÔ¨aÔ§fÙ¥dØ£^Ö¬dÖ¦]ÔšYÓ¡`Ô¤_Ô¤^Ó§^Ò£WÑžUÑ `Ô£hÖ¡bÒŸZСWÔ¢WÑŸ\Ñ^Õ_ÓŸ^Õ¤bÔ¢^Õ]×\ÕŸ\Ó¡ZÑ™WΓSΖMÏšSЗXΔTΕPÍ—MΙQÏ”PГMÏ”MÌ‘LϘVÐYÊ•MΑL·…JØ©sÛ­tܬnß­rà¬zÚªvÕ«pÖ­tÛ°uàµ|á·â¹‡é¼‡ê½æ»~æµyâ¶}Ệ待꿅輋蹂æ·å¶ƒç¶|ä³vÞ¬rÜ­vß³wà²yà¯{ß­pÞ¯tÞ´~Þ¯vÛ¬rÔªv׬vß°zá±yÝ­rÚ¥qÞ¨{á­zß³wã¸~澈忋湃麂軄äµèºê¹†è´æµ一輅躅å·}æ¸{â¶|â¸~漃á»â¶~蹅漃åº䶂ã·ä¹}ã¸~ã´xæ¶v㹀潊輈帄蹇绂⸀äµ|æ¶vã·|æ´|ç²râ²pá®vå­uáªkݨhܨnÚ¨oÞ¨mÝ¥oܤnÙ£eÕž^סf׫nÖ¦mÙ©sجoÚ¦iÚ¨lÖ¤jÚŸjݦmÞ¯và³wà±vÞ°rܪpÛ¨vÚ§sÖ¤fÖ¥mÖ¦qÕ£lÓ£lØ©mÞ¯pÜ®sÛ²zÞµ}ݲsÙ±qݲrÝ®nØ«iÖ«pשtÚ¨pÚ¨rÙ©tݬuà³yâµxä¸zã·~ã¶uá±oß®má±kܯhÚ¨hß«hà¯gÜ©eÛªdÜ©fÚ¤gפeÛ¥eÜ£bÜŸ^Ö^Ò _Õ [Õ›ZÔ˜XÔ•VΖX˘TЙTÓœXÕ[Ï–XΙSÑž^Ò›fÕ›^ÒšVÑ–TÖ›]ÖŸaÕ¡[×¢\Õ[ÔZØœ\Õ˜YÔ˜ZÔœYÔ ]Ù£_×\×¢aÙ¦eÓŸ]Ô¢YÛ¨`Ø [ÖY×¢`Ò›XИTПcÖ¢pÙ¢hÓžYÕš[ÓYÐœVÔ™`Ô›fÓŸdÒ¢`ЛWÍ“VÑœ\Ó¡bÏ›aΖVИRΗVÍ–ZΗ^И[ΙWÑž_Õ fÔŸ\ÑšZЗX͘RÏ\Òœ`ΕYÏ•UΔYÍ•[Ñ›[ÓZÒ˜_Ì“[Ê“ZÍ’UΑRÌ”[Ê–[È”WÊ”WÌ–[ÏšaÕ§lÕ«pÙ«wÞ±vرxÙ®uÝ«tÙª{׫wÖ§rÕ¥rÔ¦qРkÉšbÌ¡hΟhÌ•bÏiÔ¢cÒªl׳záµyà¸}Þ±yبoÕ©qÙªoÚ®mÙ¯jØ­sÛ°€Þ²{à´wÞ²xÜ°uܱsÛªqצoÖ¨pצnצrجrÙ­kÕ§jÔ¨oÖ¨kÓ¥dÏ£eÏŸbÒŸ\Ê›Z¿’QÅ–VΞ\Ïž`Ö§gÙ¬nÛ´{Û»}Þ¶xßµzà¸}å½|ä¼æ¾„êÁ†è¿„㾄必侅޷{Õ¨qѤqÔ¬lØ«oÛ±xܲyÙ¨wÕ¨wÙ°yܳyÛ±~ß³{à´yÞ³{Þ³}ݵ~زtÛ³sà³zÚ°r×°p׬oÙªsÛ­wØ­m×®lدtÖ¯vØ°pÛ²oÞ²tÚ³yÛ²xÚ­r×­rÜ´vÚ±rÖ¬nÖªmتjתq׫u×­tÖ­qجs×®rÚ°pܬvÚ­|ݳ|Þ®sÝ«rÝ­uÖ¨oÕ©mÚ­oÖ¬mÖ¬gÙ¬kÕªnÖ©oÛªoÚ¨mÓ¤fУjÕ¢hÐVÌ XÏž^ÒXР]О`ÏžXÌžXÌ›SÌ™RÈ“I½ƒ:¥j&ƒQpEsGuHuK|S'yR*tMyS!vP!iB[6S1]9sK…Všl+°„@¼ŽJÆ™SÌžUÏšUÒœ[Ξ[Ó¥hÔ©hÒ¦bצbÕ¦^Ô©b×­hÚ°jÜ®kجnÖ«oÙ­rÚ¬qØ©lܯoß±jÚªfÙ§iߪnÞ¬sÚ£kÕž`Ó¢dÕ¤dÙ©jÛªg×¥aÓ ^ÔœSÒœWÑŸaÏž]ϘZϘ[Р_Ó¢]Õ¢]Ï ^ÏžUÖŸZÓŸXÎœXÓœ[ÓžWÕ¤]Õ£XÒQÑœTÑVÐœSÓ™TÒ˜ZÏ•VÒ˜PКQË™RË•KÏ•PÑ™RΗMΖTЕQΓRÒ˜\ÑŸTÊ•KÑ’J¹‡Jã³}æ¹è·ä·á¸…湃߶~׫{بyÚ­yܳ}㽆êÁ‚ç½ç¼†æ¼‡å¸ˆè¹„꾃黃껅꺊æ³æ·æº‡æ³‚沆ⶇᶀæ²~è´}æ¶æ¼ê¿†æ·}ã´ã´yݵxܶ~ã¶~å³wà¯tÞ³‚Þµ‡á¶组缋齉黂æ»~è¸ç¸„亄åµé·ç¶wå¸tæ»ä·‚ä¸}ä·}â´xä¹|ç¹€å±zà²弈ìÀ†ì¼ƒêº‡é¹è¸zä¶}á³{á³zⵀ㵂ã³|á³{å¶{ç¶zæ´{æµ{æ¶uä²rã­qà¬rß®pÞ­jà«bß©cÝ¥gÞ eÝ£_Ú¢[מeØ¢fÕ `ÔeÙ£eØ£eÕžjÖ¤nÙ¦iÚ¢jÚ£hÙ£hݤmÝ­qݲwܲ~ܳ}Ý®qܤk×¥pרqÖ kÓ£eÙ¨iØ¥mÑ¢hÕ«pà²vá®vݬxݱxß²xܬuÙªwØ«pÕ¥mÖ¨rÔ©tקzܮݴ}á²xâ·vâºwä´xå³zâµxß­qÝ®nÞ¨kߣeÛ©dܯpà¯qÞ«fÛ¥fÛ¦mÛ¨kݦlÚ§hÚ¤`Øž`ÒœYÐXÏšXÑ™UÓ—VÓ”SÑ•RϘYÑš\Ó˜ZÔ™ZÑšQÍšOÓ›WÙ›^×™YÔ›WÕšYÕ˜YÖaÓ^Ò YÕ£]ÕždÕžcÓŸZÑ\ÔžXÖ¢VØ¥bÖždÕ¢bצeÕœaÖ \Ú§`Õž\Óœ]ÕŸaÔ•WÒ™VÖ£`Ø¥lÕ¥gÕ¡dÖgÕdÔ^Òš]Òœ`ÕeÕŸgÑ[ΛVÓ¡`Õ¢_Ó›YÒšTΙRÏ•UЕUјVΚ[К`ÓiÓœgÓ˜_Κ\Ì™YИYÏœ\ÎœXÏ–QΙTÏ”WÑ—WО[Ïž]Ó›[ΙVÉ–WΗ\ϘXÍ–TΗUÌ”RÏœ[Ø¡hÕ¡eÖ¥fÚ©rÚ­vÚ¯tØ«rÕ¥nÔ¡qÒ rПhÏœdÏŸfÍ eÅ—VÂŽTÊ›bÎ`Íœ^ÖªmÜ°oÛ®pÛ²vÛ°{à«߯zׯwتxÚ±tÚ²yÚ®}Ú®zÙ¯wÜ´|Þ³{Ü®wݱvÞ³tجyתwÚ±qÛ¯qÕ¨mÕ¤jÓ¢nÐœgÐœ^Ñ™^ÊXËšVק`à«rÛªqÌ cÏ cרjЩmÖ¯qÞ¸xߺ~á¹ä·‚ã¸ã¸‚ä´€ä¹~ä¼ä¹å¼}å½|⹀ᶀڮyϤqÓ¥nÕªrÓ­tÚ´{ß´yÚ¯sرvß¹ἃ޹}ß´}á±}Þ²{ßµ~Þµ~ܳvݶ~Ý´Ú¯vÛ¬zÞ®~ß²xÝ°w׬tׯqÙ³uÝ´vÛµsÚ²sÞ°xÞ¯uݳxݳwܯsÚ³zÚ³tÜ®nÙ­xØ­{Ú®vÙ­tÙªrÙ­sدmÕ«fÚ®oß³pÛ³sÜ´uÙµuݱxÞ­qÕ©iУgÓ¡kÕ¦kÕ¨iÖ«jÖ©eתgÚªoÚ©nÕ¥lÕ¦dÒ¦bΟ^Í bÍŸgÌ›]È—RÊ›WÎœ_Å”ZÅ–SÈ“SÁŠI±{7ŠVn<sH‚V ‡Y!Š]%b+b-…]&‹a*…b0xS!d>J* D" Q/ e@Z¡s3µƒE¾LŘQ˘XÐœ^П^Ó£eÖ¦jÕ¤gÕ¤fÖ¤bÔ¢`Ó¥jÛ­uÞ®uÖ¬f׫eÝ­nÚ°jتmØ«pÙ®eÛ¬hÙªlÙ«jÛ«gÚ¨^Ö¢]Ó£eÓ¥gÙ§fÛ«lÙ¨jØ¥`Ö¢_Öž^ÖŸZÑ[Ïš[ÐœYÓUÕ¢XÖ¦XÔ¢VÒ [× ZÔŸXÒžVÓ QÑ›[Ö ^Ö¤WОVЙTЙVÐYÔ ZÒŸUÓOÕUÓ˜XÏšUÍSÓ™UÔ›RјPÑ“WÕ•X×™XÕ›`ÓŸaÐœXÑSµR侌깎鴊轊èˆ꿈빃æ·~ß³~Û°}Û°záµ㶂â³|äµ€äµ~á²xåº{è½}è¹}軄귉è¸~æ¾y鼂껊轄迃鹅é¶æ¶å¼ŠæŠ翃踀å¹å»€ç¸~å¹€æ¼ç¸äµä¸ä¹ƒá¹‚ä·€ç·æ·…幄ä¹{è·€å¶~ã³tæ³vã´wà²và±zã´zå´vå³}ã´~á°wä°xä³xä²væ¶éÁ‰ëÁˆéº…캄컀è¶vä³tã²tä¯yá´zâ´uã²}ã¶wãµqå¯uã°vß°lß®nä­mâ©eܧkݧkÜ£aÛ¢[ܤbܦdÚ£eÚ¤lÙ¢eÖž^ס`ئ`Ø¢`ÖždÖšcÖdרkØ«mÚ©fÛ£jÔhÔ¤cبhÕ¨sקpÖ¥jÓ¢lÖ lÖ¢gÖ¢gÓ hСaÕ£jÙ£lÙªoÞµyà·xß´vßµzݱzÝ«zاuשsרvתoØ­rÖ¨vÙ«xݱvß´{å¸ã¹|â¹xã´wá³sá³rß±qÞ«pߪnÚ¥cÙ£fܪpÚ©mÛ¦gÜ¥]Ù¤bÞ«hܧdן_ÕŸ\ÓWÑœYÒš]јTЙUÏZÏšWÕœVÖ›VÔ˜UÑ™SÒ˜SÑ’OÍ”PÒŸ[Õž_ÕYÕž\Õœ`Òœ[ÓšVИVÑ›^Ö]Öž[ÕŸ[ÕšSÓ™UÓžZØ£^Ü¡bÕžWÓž_ÙdØ›[Ú¡aÜ«eÕŸRË–RРaÐZÉ”MÔŸZÙ¥aÓžYÕœYÓ›TϘUÑ—YÒ˜XÑš[Öž`ס_ÎœVЙYסcÓ ]Òš[Ñ™\ЗYÒ™YИ\͘\ÑYÒž[Ñœ^Ñœ[ÑVÒ˜UÑ•WÑ™VÎSÍšUΙXÏ—XΗXÏœYÑž[Ñ™[ÑœVÒ™ZЕ]Ë•YË—[Í™bÏ™eΙ^ÏœaÖ¤oÓ¢lÏ jÕ©rÖ¨qУmÉŸh̘cÊ“`Ç•YÈVÆUË™\ʘXÁŠGÃŽTÒ¢oצrÖ«nܱqÝ°sرtÛ³xݯtÙ¬rØ©pשnÙ°rÚ²vÚ­{Ù°xرuÚ¯wÞ²qÚ®qÕ©pÔ¨jÖªmبmПeΞhÒ£jÏ›cË–bΘdÍ•^Ê“]Í•[Ç”PΞ`ݶvá¼zâ¹zà²yܲxܵv×±wÕ¯|×°yÙ°zÜ°}Ü°zÝ­zÛ¬vÚ­tÙ®wÖ¨qÕ¢mÕ¤rÓ¨pÒ¦pÓªrÕ¬tÕªyÛ²{ݱzÙ°xܸ{à¸{Þ³zÜ·|á»|ß¹Ú¶xݳxÞµx߶rá¶ußµyݳvݳ{Þ³Ú¯Ù±|ßµyÞ¶xÞ³uÛ¯wÙ°uÜ­nÙ¬sÚ°vܯyÜ°yÞµtá¶yßµzßµxÞ²xܱrßµxÙ°uרnÙ­uÚ®pÚ«jÙ¬nÙ­sÙ¬mß®lá¯nÝ®rÙ®w׬mÛ©iÙ©oÓ¨qРcП]Ò¥aÕ­eÚ­fÛ§eÙ©q×°o×®hÖ¥dÒ¦fÓ¤gѤ_Ρ]Ïž_ÍœZȘUʘTǘQ¹ŒI¼ˆJ¿ŽP¼ŒK¥t4xFpB‚VŒZ(Ž[*‘g+–k5’h6Œh5g6ˆ_1Y(pJW5 I, D' K. oJ•j2¬}=¹‡?À‘MÈ—RÊ™VÍœXÒ¤[Õ¨hؤnסbÑŸ[Ï¢bѦeÚ¬jݯnÙ©iÙ©hÙ«fÕ¦cѦgÒªmÕªlשhØ«gתe×­dÕ­^Ó¥\Õ¦cÕ¤cÖ¡bצ_بaÙ§dÖ¨cÙ§bÚ£^Ñ¢^Ï¢]Ó¡YÓŸ[Ó¡bÓ¤bÒ¢YÔŸVÓ¤YТXО^Ó¡TÔ¡PÓ¢^Ñ£[ÑŸPÖ¡Wפ\× \Ö¡_Ó¡YÓ¤ZÕ¥]Ò UÓTÓœQИSÑšWÕžVÕŸXÓŸZÓŸYÏžZÏž]Ѥ^Ö¡TµŒQ齆꽈绊羋绀äº~ã½è»yêºuä¸vá²yãµ{ãµzà²wãµ{ç¹|淀뾈ëÀ„åº辇鼃ä·å¹廀缇鼈龈꿀è¼彊⺆澄éÇ軅资æµ~ä´巅躈幇巂å¸á¸}Þ³vá±zâ°}á²}ã¶åµ~å¸{ç»{æ·vä·}涀á³}Þµyã³xæ³|á°zâ°~å¶}ã²uã±tä³{丂軂è¹|ß³zã·}è·wå²qä±xä³xå·rè´zèµvä·täµuà±r߯nà«nߪqá«oß«hÞ¨_Þ¥aݦgÛ¨dÞ§gݦmܦmÛ¥nÚ£iÖ fØ¡`Û¡`ס`פ`Ø£fØ¢hÚ¤hÚ¢iÙ¢mÖ jÒŸcÒŸbÍšfÍšfÕgÕj͘cÍ™`Ó¡dÓœbÔœcÒšfÌ[Ιb׫vൃ亃å´}á¯~à±€Þ³zÞ°uݬvÞ­qÞ«qÜ«t߯vÞ¯vÞ°xâ¶yá¶|Þ±uݳvâ¶|æ¶{äµxã´så°nâ°mÛ¬iÙ¤\Ö¡b×£jÚ¨dÙ§`Ú¢aÙ¥cÜ«cÚ¤`Ó™VÏ™SÕž[ÙŸ]מXÕœ\Ó™\Ñ›YÑœaÓšbÕšZÔ™ZЗZÏšTÏ”LГTÒ™YКUÒœZÔ¡]Ó›UјVК[Ô—WÖ™RÒ™SÕ\Ô]Ï—XЗTÕœWס]ÕŸ^ÒYÔŸ[ØeÔ`Õ¡`Ù£fÖ¡YÏšVКYΘUΖUÕœbÖœ`Ò™XÏ–WÍ”SΖTÑ™XÑ–ZÒ–bÓ™]Ô›VΗUË•]Ô˜aÕš]Ò›[Ò\Òš\Ô›^ÔŸ\ЛaÑ›dÒœ[ÓWÓšXÑšZÐœWÏœWΗ\Í•[ÍšZÏœ\Ô˜YКWИTДVÏ™XÏ›]ϘYÏ–TÍ—TÍ›TÑ›WÔ—[Ñ•aИ^И]Ì”_Í™\К]Í•^É”\É‘TÇŽUÇ‘UÉ•QÆ‘SÅTИYÌ“[ÆWÑ¢dÜ°tÜ«r׬nÙ­rߪvß­zÞ²|Þ³~ܲ{Ú«rÖ§qØ«mÙ«rÔªw×­sÝ­uתmΡcË›bÉš_Ìša͘`͘aÇ“]Ç•ZÌœ`Íš\ΙWÌ™XÈ’VÍ—Z×¥gبjÚ±vâº~߶{Ù±}Ù¯vÙ°vÙ®{Õ§rÓ¤iÐ¥lЦrÕ¦oÕ§kØ©n×¥oÖ§m׫gÔ¦iÒ jК_Ì™[ÍšbÒ¥lÖ¯uÖ¬xØ­uÞ±vÛ®pسoàµzã³}ܵ{ß·⹀ߵ{ß²~àµ}à¸}߶€á¹|ß¹yݸxÞ¶sÝ´pßµxàµzß²xÞ²xÛ³vÜ°zÞ¬pÙ«hÚ«tÜ®uÙ±rÚ®uß°váµxݱu߯pß³yÞ³}Þ¯tܨjÚ§lÛ©pÙ©jÚªlÚ­qÙ¯tÜ°uÝ°oÚ¯hܪeÚ¦dÕ©dÕ«fÚ«gÖ¨dРcÓ£`Ö¨bÖ§aÖ¤XØ¡[Ó¢`Õ£aÒ¡eÏ¢eÕ¥mÔ£iÓ¢`Ò¢cР`Î_Íœ]ʘW¹ŠGµ…>¹‡A¸‡C›d*p?wM‰X‚T ~Y$Ša-—k4”k2“i7˜l4`,ƒW){MpC d=V7@& +Q4…_&£x8²‚<»ŠEÀ’OǘTÍœXÓ£fÖ¨fÓ¦bÓ¢cÓ£bÑ£_Õ£eÙ¨lÚªkÛ¬lÙ«iÕ¦dÒ£`Ñ¥gÖ©lبfÙ§hÙªfÕ«cשlÛ¨fÑ¢bТhÖ¤_ÒŸ^Ô¢dاbÙ¥dÙ¦hשiצgÖ§fتhÖ¥^Ó VÔ¤`ئbÖ ZÔ]Òž`ÏŸ[Ò¢\Õ£aÔ¤b×£cÙ¡cÔ¡ZÕ£ZÙ©hÙ§l× hÖ¢^Ó¢\×£^×£^Õ¢ZÒž\Ò¢`Õ¢^× XÖ¢WÓ¡WÖ£ZÖ XÑ›WÒ›^Ú [¾X鸅껇軅踅㲂٫zÕ®|Ûµ|â°pá«iß«s߬sݯmÞ°uãµwåº{é¼íÃëÁ纅載èÁ†å»ƒæµ„布å¹ç´‚渆弅ç¼æ¼ƒåº…齅꾎黊è»{ä»潈뽀躅涅ç¶zä·{à°|Ý­zÝ°zܱyÞ´}æ½æ¼ƒé¼€íÀ€ë¿„çºå¹€é¸~軂漄è¸æ¸ä¶{åµ|æµyæ´tä²vä²xå³~ã®xÜ©n߬uæ´vç¶uä³uä±næ²lå´rã¶zå³}æ´xæ³tã¬p߬jß­jáªpá«lÞ§cÛ¤bÛ§dܦaܧiܬmÛ§gÙ¢c×¢dØ¢]Ø¡\ÕžbÖeÕŸbÕ§eשjÕ¡bÒ›bÔ™\Ñ™SÑŸ[Ò _Òœ[ÕœaÕž`Óš[Ñ–XÏ—UјZÒ–^Ϙ^ј[Å”UÊ¡gÜ°€à³€ä¶ä¸€à¹{áµ~â²{ݳuÞµyãµ{ã±wÝ­vÛª|Ü«}Ú¯tÛµtáµxÝ°yݵvã·vã´zä´vä°sâ°nÞ­nÚ¨kÜ£dÛ¢`Ù¥bÙ¤fÖ¤eÚ¤^Ü¢`Ý©kÜ¢bГRË—XÒ¢bØ¥^Ö ^Ò›[Ó˜TÏ™WЙUÕ›XÕž\Ô™aÔš]ÒVИVϘYÑšWЖPΘO͘QÍ•SÑ–TÒ—QЖTÒ˜XјYЗUΛSÍšXИZÓ›Z×¢]ס]Ôž_ÔŸ^ÓŸ`ÒžZÒžYÓŸbÓž]ÏšTÍ—XΖUÐœYÓ¡hÓfЙ[ΘXË–XÊ“TÑ•WÓšYКZÓ˜^Óš\ΕSΕXÒš[ϘXÍ›YÒbÑš^ÐœYÏš[Ï™[ЙZÐœ]ЛYÒ–QÒ˜ZÒ\Ò \ÑžZÏ™VÏž[Õ¡\Ô›ZÌ™WÌ–UΘUÐœWÒYИZÏ•VÑ—RϘWÍœWÍ™ZË—[ÍœZÍœ\Ê—\ΖWÊ”SÉŽPÉŽLÅ“PË“RÍ’SÊ”[Ì”WÌ“PÍ—UΛWÌšaÑŸfÙ¬mÛ±uÔ©sÔ¨rÔªrÕ¬nزtÚ°zÛ®sÙ°uÔ©rÓ§kÕªnÕŸoÏžhÍ¢fÊ•]ÁŒR¿‹TÀ‡TÅQÎœY̘\ÄŽTÆ—_ÍŸeÍ–WÊRÇQÅQΟ_Þ´rã·và¸{ܵ~Ó¦tÌ kÍŸhÎfÌžhΡgÒ¢jПgÏŸjÕ¤qجrÛ¯oÙ¯tÙ°xÞ²oß®lÜ«lÖ¬kÕªiÙ§kÝ°zßµ~ݲvܳxÝ°{Ù­xÖ°xײ€Ù²ƒÙ°vÙ°tݲwß³vݳ{ܱ{à±uÞ³vܵ}Ûµ{ܵxß²xÛ²zܳ{Þ²sݯqÞ²vݲtÜ­sÜ­yݬoÙ­lÙ°tØ®sÖ®nÕ²oÚ³tݯvܯqÞ®kà­uÝ°~שuبjÚ©oئqÔ§pקoÛ«nݱqÛ²rÙ°pÖ«pÖ«jØ®iÙ­nÝ®qÜ­mÔ¦`Ð¥`Ö¦bÙ¤[Ó _Й`ЗXÐZÍŸ^Ïž^Ô¦gÙ©hÒ£eÍ aÌ¢\ÉŸ\Í^ÍœWÀI»†I¸Aµ{4Yj<~M ‚RsDj>rIc*›l-œk4šm5d(ˆ[%€SwKwP"mL!B( 8! oP—m/¤u>±ƒE¾ŽIÈ•OÊ›VУ`Ó¤cÑ¥^Ò§_Ó YÒ [Ö¦eÚ®hݳhܱnתlÙ¨bÖ§eÖ¨kÙªjÙ¨fקeק`רdÙ«jÙ¨dÓ¡cÓ¢eÓ¡bÕ¢eשhÕ«bÔ¥\بYجeשeÖªeÖ§iÓ£cÕ¤_Ù¦hØ¥hÕ£]×¢aÔŸ]Ð_Ö¢cÚ©_Ú©bפb×£bÓžWÏ›UÕ¨dبeÖ¦aØ¥^Ù¦`Ù«hÔ¥iОbП\Õ£dبcÕ¥\Ö¢dئbÙ£`Õ¡^ÑžXÓ›[×[»U蹆귈ä¶â»~å³{ݤrÓ¥pÒ§tÖ¥lÞ¬lß°pÞ¬tÞ¯uà²wß³}á¸䷅踀è»}细齈뽈黇䷃峀æ´~ãµ|â¶|七仉㻀à¶æ»ˆé½‚軆蹂éº{꿉轊ëº~ë¿€ç»ç²ƒã®‚Ý­zß­}߯}Ý´~伆ëÁˆí¿€ë¾ë¼ƒè¸~ä¶{å¹uë»z뾈뼅èº~껃칃ê³~굂æµ~æ°zå«xà­tå³tæ°oä¯væ±tç²så°rß²kàµqä°vâ­yå²zæ´yá°và­sá©sܨkÝ©eÞ¦bÖŸ^Ö¦aئeØ£hÞ¬kÛ¨iÖ¡dס]ÖŸaןfÖbÕ™bÔœ^ÔŸ^Ö dÔœ_Ñ”XЖWÒ˜SÓšUÖ^ÖXÓšVÔ]ؤdÛ¤eÕŸ\ס_מfÔbÖ¤cÖ¥jØ°uá¶|ã²ã¸ƒä¶ß­xÝ°|ݵ{Ú¯uÛ¶}àÀ‚ã·}à®yÜ­{Ý­{Ý®xà±sã¶}äµ~æµ~æµ}ä²rà±p߯oܪnÙ¨kÚ£eÚ¡aÞªháªkÝ£cÚ¥_Ù£_Ù¡\Û¦jÖ¡dΖPÍ™[Ö¡eÕœ\Ñ–RÍšSϘZÏ•ZΚYÓ›^ј_Ï™_Ñ›bÒ˜[ΖXÏ™\Ñ_Ñ™YЖVΔQÌ“SЗWÕŸTÔœ[Ô˜\ÔœWÒ—TÍ–NÏ–TÖ˜ZמZÖ¡ZÕžcÔœgÒ_ÓžZÒœTÒ›RÕš\Ó˜\Ñš\Ò™VÌ™XОdÒ_И^Ó–^Ó™ZΘXΖUЖZјZÓ›RÔž\ÕœdЖQИRÓ\ΘRÌ™UÐ]ΘXИWÓ˜UÑ•ZÑ™`ΙYÍ’XÏ•]јYÏ“SК[Ô ZÓžVÕ£eÖ dÑ–ZΖZΘWЗWÒ›^Ò eÓ`ÑšVÑœYÓ›ZИZÍ”WÐ^Õ¦oÔ¢iÓš]ИUÌ”PÊ”SʘTÌ–VË’SÉ”TË—WÌ‘UË’WÌ–[Ò¢iתoÜ©ká°rÝ°uÙ¤qÙ¢o×¥lצlÖ«tÙ¯vÙ­xݯ{Û¬qרnÚ«sÒ¢cÇ–TÃ’SÀOÁˆN¿„MÀ‰KË—VÒ¢bÏ™\Ì”YΛcΡdÌ–UÈ“SÉ•WЛ]Ö©jà²uÞ°yÕ¨oѤjËœaÅ“\È•cË›bΟ^ÔŸgÕ¤jÒ¦fÔ§mÛ¯sÞµrÞ´tݶyá¶yà¶|ß¹}áºzã¸wáµzݶ}߶{Ḁ乀ã²xß±}Þ³€Û¬vÕ¨qÕ§mÕ¨lÖ®yÛ±}ݳwÞ²yß²yÚ°tØ®vܱ{߶yÜ´zÙ´~Ûµ{Û±uÛ°rܲwÝ´|ݶrÚ±nÜ­tݳsÞµoݳyÚ¯{Û±sÙ²tÙ­rاkÕ§fÓ¥bÕ¨hÖ¯iÍ¢YÆžYÑ£oÖ¥pÓ£gÕ¦jÙ®nÚ²tݲsÞ²r׫jØ«hÛ°nÙ®oÚ¬sÜ­lÛ©hØ¥jÙ¦jاfÕ¤aס]Ò [ÑŸ[Õ¡YѤ_Ò¦fÕ¦cÔ¤`ËZÈ•UÍ›ZΠaÊ\Å•OÀŒD»ƒ=±|7~Th9 „Q~Ok<_5e>†]'—o1™j,›g*•a,‹\({RxM„b-€`'P4 1 `D‹c ”i-¥w6¼‰GÄ”RÇ—VП[Ïž[Ïœ\Ô£cÓ¦hÕ¢fÖ§hÖªlجjÛ¬lÚ¨kקnÕ¨rÕªlרdÔ£bÔ¥eاfئgשbÔ©bÑ£fÑ¥dѤ_ѦcبfÚ¨fاaÙ§`ÛªcÛ©fܪjÚ¬fÓ¦_Ò¡aצdשbÖ¦ZÙ¤[ÒYΚWÓ¡cÚ¢bÙ¤d×£iÖ£dѦ^Ρ^Ó¢[Ö¦^תaÛ¨bÛªh׫gÕ©fÕ§cÔ¦_Ô£bÖ¦gÚ«dÚ¦`Ö£eÙ¤hÚ£cÙ aמ^ס[¶‘Uë¿ç»†ã³|ç·å¹‚äµ|à°xØ«{Ö­{ݸ~ä¼€â¸~Þµ€Û²€à¶ƒæ¹‡â´áµ{Þ±xÝ°zã³㰀߲|ã¶zå³uݱvÚ°yà°}á²~â³âµƒÞ³ã·„踂ã²~Ⳁ予湃滀æÀŠê»Žê»‹è¼‚å¸|äµä¶ä¶‚äµä¸€æ½ƒèº€ê¼~鼀䮀߫záµ{æµzç³|ã³~ã´}軀黆é¶~æ¶zå´|å²à­và°oæ¸xé¹|ç²xã¯rã²uå³vä¯sá¯rá±sà©qݨp߯oà¯oÞ­wß«vߦiÝ¥eÚ¡cÖ›XÔ XÕ¢^Ó¡cܧhݤeÖ¡fÔ _ÓŸWÒ ^Òœ\ÔœZÔœbÓ™_ÒœYЛ\͘[И[ЛUϘWÌ–`Ι\Ó`צnÝ°{á®á¨xß®rß±qß±rá³{ß²{ß²vâµã·ä¶xá²wÞ¬uÛªvÙªuÚ«vÚ®{ݱ~Þ±uݯuÝ°xܬtÚ©wÜ­vß²|á¸滀å¶xã°qáªmÜ©pÚªlÖ¥bØ ^Ù \Ù¤dÛ¨n× fÔ[ÕŸ[Ö¢]Õ¦`ÓœYÑ–RÔ¡_ÖŸ_ЖVÊ”NÊ’QÍ“QÍ‘PΓYÑ›[Ó˜^Ô•bÓ–ZΔQΔUΘ_Ï™[ΓVË’S̘MϘMЛSÔ YØœ[Öš_ÓšXÒ—RÑ•TÑ–VИSÏšUÓ—WÓšYΠ^Ñœ\ÔšZÑ™WÏ™WÑœ[Ï•XЕVÒ™[ΗXÒš]Ó›ZÑ™WЖWДVÓ•\Ñ”[Ì—XÏ™XÑšZÕŸ]Ô]Ë”PÍ™RΘYÉŽRÉ“TÍšZÌ”\Ï•^Й]ϘYК[ΙYÌ’TÎ’TϘXΔTΖTÒ›[Õœ^ÖžaÓ™^К]Òš]И[Òœ]Òš^ÐœbÖž`Ò™[Ê–YÌ–\͘_ΛbÔ£iÕ¨iÓ aÒŸ]ÒŸ\ΖTÈ‘PÌ–TÍ—UË’UÌ’UÈ”SʘXÓ`Ó¤iתwÜ®|ß®yà®sܯoÙ«pÖ¥qبpØ«nبtÜ­zÜ«sÙªt׬vÙ®uÚ®xË¡h¼ŒP‹PÇ“YÅ“WÇ•[΢eÕ¬uÕ¦oÍžcÍ iѤjТaΟbÕ£jÖ§nÓ©tجvÙªpÓ£jУhËŸgÇ›`Éš\ÌŸ`ΣeΤjѤkתqÕ®sرqÛµzÚ¬sبh׫lÖ­sܯsÞ´vÜ·yÛµtÜ´vÙ¯zÙ­t߶t߸|Þ²và´vÞ³yÙ«tÖªtÕªqÖ¦kÚ­yÛ´س{ׯzÙ®vׯuÙ¬uÖ©qÖ¯qÛ´x×®rÕ«rÖ¦|Ø¢tÙªu׫uÖ©kÕªnÔ©qØ®sÝ´wâ²xÝ®zØ«{Ú°tÙ«rÙ¨qÔ©lÌ¢aФbÒ¦bÇ–VÄUÈ–WÌœ[ОbÚ¬nÚ±rØ­sÞ°tÜ­rСkÓ¢jÛ®lÙ­kÕ¨hצnÛ¥oتjÖ¨gÚ¤eÙ¦gÕ¥gÓ¤bÒ¡_Ò¢^Õ¤XÓŸYÐ\Ó¡_ÎœXÆ–RÊšZËŸ\ÅœZÄ•UÀLº†<±€6}Qd:‚S€NrDfBrL’f-—j,˜e(œi)’c-‡_'nIkB…^+ˆi4fI 9! L0wQ‚W—i1¶‚EÄNŘVÏ¡^ÏžXËœVΣ\Ô£cÖ¤eÕ¦gÔ¥hبiÚ¬hØ«kÙ¯mÕ«jÓ¦fÕ§bѤ`Ó¥eبeÖ¨eÖ«eÙ©^Õ¥`Ó¥eÓ¥bÕ¥fתj׫hÖªhתeÛ¬hÞªoÚ¨lÔ¦jÕ¢`Õ¤_Ö¨dÙ©`×¢WÔ¢[Ò¢`Ñœ]ÕŸ^ئ_פ`Ó¡bÚ¥bܨdÒ£aÓ¡aئdجgÛ«eÜ©eÙ©fÖ§fÖ¨gØ«fÙ¨gÛ¥eÜ¥iاkÕ¦bÕ¦cפfÖ¢cÕ¦bتb·”WèČ迊귇븅縀躄鼊ãµá±㹈è»~ä·}áµ€á³xá±{Þ³Þ¶}㹂ã²{Û¬xÙ«yÜ©uà¯yå¹€å¶}á³wá´yä¶{áµà¯xß±zá¸â¹‚â¸ßµ}฀侀么峉湃幂çµé´‚嶄⹀渀縂滆繈䷄â¶}ê¹vê¹{æ³xã®qä´vå´rä²på´|ç´€ç¶{ç¶xã¶rä¶rå¶våµyã¯rä°pç¸{äµxã³oá¯hà±jâµvã°uå­uå®wâ®qá«oâ­mÞ®oß­sá¬uݤkÚž`מXÖœ^Ùž`Ø›^Ô˜`Ö `Ö `ÓŸ_Õ Y×VÓ\Ó\מfØ eÖ¡\Ô^ÔšZÒ™ZÑš_ИaÍ”YÍš^Ò¨mÛ®sÞ³{ß´}âµ€ãµâ°ã³~â¶á¶{à´yß±|Þ±xݲxà°vÝ­tتxÖ¨vÕ§qÔ©sÔ©tجoÝ°xÛ®|Ù­vܬuÙªt׫rß²zä¹~ã¶yá±oÞ®oܨkÞ§jݧnÖ¡g×¢dÙ¡bØ¥aܨjØœhÖš_ÖŸaÖ£^Ù¦[ÖYÑ›\ؤfÖ]ΕQÊ“UÍ“RÌ•MÌ”PϘZÔŸ`×[×¢aÓ\Ì“PÍ–WÒ˜\Ï•VÍ’XÉ‘TÊ”QÍ—PЛPÓšXÔœ_ÒŸ]ÑœbÏ–ZÏ™TÒž_Òœ\Ïš[ÐœYÓ ^Ó¤hÑŸ^Ò˜XÓ•UЛYÑŸ`ΖU͘TÑš^ЕYÏšZÑœ[Ó™XÒ•RÓ•QÒ˜^Й_͘TÏ›UÓšYИ`Îœ`ИTΔRΔVΔYÍšZÏYÍ™XÍ™TЙTКTÏ™WÑš\Ïš[Ò˜WÒ•XÑ“[Й\ΚYÌ™ZÌ™XÑ–UÑšXÏ[Ïš\Ñ›WÑ•ZÒ“\јX͘WË™XÎœSПZÕ£iÙ¡kÕžfÏœZÏŸ^Õ¤gÑ›`È“VÍ–SΗVÌ–ZÍ]Ñ¢]Ö¥hÛ®rÛ°tÙ­rتsØ¥mצmØ«qبn×¥oجuÚ®xÙ­sÛ²yÛ«xÖ¦t×­sÙ¬qئnÍ›]ÀNÄ’[ÍŸgÒ¦f׬qÝ´qݶqÙ°vÕ¥rÕ£nÕ­nجoÕ¥s׬tÝ°vتrÕ¨lÓ¢jÒŸgÔ¦kÕ¨oÓ¢jÓ¢dÕ¦gקpÖ¥rÕ¦jÔ¨lÔ¨sÔ¨nЦkÏ¢fÑ¡eÓ¤mÙ©và³xàµvÞ±yݲvܵuÚ°{ج{Ù¯rرnÚ°uÛ°qÚ­mÚ«rÚ¬qשqÕ§sתq׬uÖ¨uÓ¤oÑ£oÕ¦rÔ¦qÓ§jÙ¬jÙ¬rÔ§mÒ¥bÑ£hΟg΢bͦeÊeÅ’^Å™bÒ¦nÖ¨oÙ±tÛ´uÛ¯pÝ°yÙ¬{دuܶrײpÖ®pÙªgÏ aËaÍŸcÌŸaÍ£e×­rß°zÝ°tܯoÛ¨oÔ£jÓ¦dÙªhצgÔ¢cÔ§e׫gÙ¬mجjѦ_Ó¥jÙ¥lÕ¢bÓ eÓ£eÖ¢`Öž`Ξ^Ñ¡cÔŸaÍZÍž^΢bÊ™XÇ“RÅ“S¸†C³z7…PX0|W$‹^&‚O…X Šd,•i2šl%žl,œg-‘`&ƒV%b7T/ oQ"‚e5~\/P0=(ZDpN$ˆc5ªB¼ŽGÓRÌŸVÍ VÌ›[СbÒ£bÒ¥]Õ¨[Ô§eÖ¥iרcÖªeØ©jÔ§dÕ§eØ©gÔ¥]Ô¥^Ù«eÚ­jÜ°kÛ¯hÕ§eÓ¤_Ö§^Ø®hØ®fÙ¨_Ù¦]צ`ÙªfݪeܦdاgÖ«hצlÙ¤p×£gÕ ^Ø¢aÖ¡aÑž`Ô¤aÕ¥cÚ¥bÚ¦cÖ¤eצcÕ¥[Õ¡`ئeÙª_Ú§^Ú¦eÖ¦fÓ¢eÕ£cÚ©eÙªbئ`רfÕ§cؤ^Ö¦aÕ¦eÕ§eÕ¥dÞ¦d¿•`á²zà´}ãµ…æ·†àµ{âµväº|㷃㰀á²}áµ|浂䳃á´~á·|ܳ{Ö°|ݺ~á¸yݯxÝ°€ã´ä¶…溆躃巅広꾆黀åµ|㷃渇跆清ᶇ㺈åºã¹Œä»‰è¹‚æ´zä±~ä²€ä³à³€ã´å¶‚巄綂帄ã¶}ã¶uè·yæ¶wä·sæµuä°tã°xå¸yè¹}ç·}ã²vâ°sä±uá°rã­tä«oâ®eá¯kä«qã¬qà«làªiâ±sä±uä¬và­tݬnߨlߧsà¥nà§rܦkØž`Ö™`Óš^Ôœ[ÙXלZÓœaÑ aÓŸ^Óœ\Óœ\ÕaÕžaÒŸ`Õœ`×–eÒ˜bÒœYÕ™WÑ•V͘RÌ™RÊ—WÏŸf׬uÚ²{߶zà¶uà¶{Þµ{Ý°uß®uá®vß®xÞ«wÞ¬zݳvß°tÛ¨qÕ¦lקqاvÔ¢pÓ£mÖ¦qÚ¬râ®zá«vÜ­mÜ«uÚ«vÙ°uÛ±~ß·~á·qà­má§mÛ¤mÚ¨uÛ§rÙ¤jÙ¦g×¢^פgܦm×]Õ›]Õ¡aÓ¡cÖŸhÕœcÓŸhÖ¤lÕŸcΘYÊ“OÌ‘PÌ“NË–NΛYÑ›^Òž^Ø£^ÖŸYÏ•QΖTÔ›ZÓ›ZÍ™ZÈ“SÊ“QÏ–OЗTÑœYÒž[Õœ\Ö[ÒœZÏ›VÒŸYÕ\Ó›UÐœVÕœ^ÔŸbΛ^Ñ™UÑ™YÑ™\Ô™TÓ–RјYÑ]Íœ[Ñ [Ò¡ZКY͘YΙYÓ›RÒšP͘UΘVÓšUÓšSϘXÎ’QΕMϘMÒ˜TÓœ^Ó™_ГSÍ•OКVКWÏ™TϘUÌšYÏšYÑ–XΕ^Ðœ`ÐœYÌ—YΘ^Ï–]̘RË›V͘[Ñ›`Ñœb͘YÍ—YÍ–UΙXÒbÖ£jئmÕdΗZÊ—\Í—[̘\Ë”ZÉ’WȘXÊ›^Îœ^ФcÕ¬nÞ°vݲwܲvÚ­rÕ¨gÕ¨jÕ¥jÓ¤hÕ£kÔ§pÖ­s׬qÕ®rÙ¯rØ«qÖ«qרnתp׫sÔ¡kÍ›fОhÓ¥jÕ«qÙ­x×­tתxÙ«{ÓªtѤpÕ¤kÒ¦lЦlÕ¨lÙ§nקpÕ¨qÓ¤mÒ¢oÔ¤pÖªsÙ¨oÚ§mÚ¬rÖªrÖ¦rÓ¤m΢eСgПfСfÓ§oØ­tÖ«uÙ°oß·tÝ´vÕ§pФpÔ©tÕ§tΤmÊ£fÒ¦lÖªqØ«mÙªpتvרsÔ§sϦmѦhÔ©rÖ§uÖ¥oѨoÖ­uܯzÔ¯pѪlÒ¤pÍ¡mÌ eÐdÏŸaͤcÏ£hÆ™]¾TÄšdÊ¥oË¢h׫qÛ³xÖ°tدqÕ­oÓ¨r×®vÔ¯qЪpÑ«oЩoͦjΪnȤhÅœ^Ò¥iÚ®yÕ©qÕ¦kÙ¥rÖ¥mبhتlÕ©hÏ£cÓ¥d×­iÚ®oØ©iТ\Ó¢aÖ©jÓ©`УaÕ¦dÙ¨bÓ£dÏ `Ò \Ò\Ï ]Ρ`П`ΛXÈšTÅšP¼ŒF³}:…OM$ +lI Ša&†Z"Ža,’g1”h/šj.žm&›i$Œ\'wJP) A U:rV%}_0\=<& N:lM€Y, u:¸ˆJ¿TÉ™Zʘ]Ș[Ò eÒ¤gÓ¨eبlاhÙ©gÙ«pÕ¦jÔ¤iÕ¤lÓ¥fÕ§_Ô¦]Ô¥bÖ©mØ­kÛ®gתiÓ£gÖ¤gצgØ¥jÜ«gÚ«hÖ¥eÙ¨eÚ©nÙ¦kܧhܪoتgÚ¥fÛ§lÛ«dÙ¨cתcÕ¨^Ô¡YÖ¤^Ù©eÚ©hÙ¥fÕ cØž_Ù \Ó¢Y×¢_Û¦hÙ¨e׫dצhÕžaÓž\Ø£dÛ¨eÙ¨cÖ©fÖ§dפ`Õ¢bÖ£hÖ¤hÒ¢dØ¢`½“[Ú¯uÛ§mÜ°t异ã²zß±xâ¸|渃嵃ä¶æ·éºé½‚äÀ…߸}Ö­xÒªvݵ|ã¸â·å¾„æ¾†å»†ç¿‹é»‰éºˆç¾Šé¿‡í¼…ë¹ƒçºŒæ¼‹êÀ‰é¼ˆæ»‡êÂ‹í¿‰è¼„æ½„æ½ç¹}ç¹}å¹è»ƒé»}å¸}緃鹉뻇붂á¬}Ü­vâ´væ³tæ²pã¯qá±oå³mç³påµrã¶xä³uå°qâ¯uà­oá®mâ®iâ«kÞ§iÝ¥gá§pá¦rã§qå©sà«oÞªlÞ¦jܧjÛ¨ià¥gߥiÚ¥kÙ¢^ÒšWКZÖž]ÕœdÕaÓžTÒ¡[Õ¢bÕŸ\Ô^ÖžgÔždÓŸZÔ^Óš]ÒšTÑšYИ[ϘSÍ•WÐ’\Ñ•Yј_Ù¥rݲxÙ±vÞ°wß­vá¯tä³rß³yܲzÞ±vß°yÞ¯{ß°{à´xâ¶uâ´{Þ±|Ü°qÛ¬pÙ¨sÙ®sÛ°xݱzâ³{å±x߯oÛ°sá¶vá²uÞ®uâ³wã°uà­nÞ¬oÝ©mÞ«nâ­oÜ­gÚ£dÙcÚ§gÝ¥k×dÖ¢bÛ¤cÚ£`Ø¡cÔœ_ÓŸbÖœcÖ—aÒš[Í—RÍ•TÑ–WÓ”XЖXÑšWÕ]Õ_ÖŸ\Ô›]ЖXÒ™UÓšWÒ˜QΕMЗTϘTЛVÓYÓ›VÖZסbÓ›cÑ–ZÒšYÑVÓYÓ›[Ò˜WÏ•Y͘ZЛYÖ›WÓVјYЖZЛ]Ó˜]Ï–ZÑŸ]ÔŸ[Ñ™]Ò›]Ó˜XÒ˜^Ϙ[ΗRÑ–UÓ–YÑš[Л`Е[Ë–RΙYÓ`Ò¡dÔœeИ\Í™VÍ›WÏ—WϘZÏ™\Ì–Z˘YÏšYÓœ[ÕžbÑ™[Ì•UÍ”[ΑTÌ”LË•TÍ™XÑ^Ó›^Ô›XÑ›[Ζ^Θ^ΟbÕ£oÙ£iÒ™YÊ’VÇ”SÈ–XÌ–WÌ”SË‘TË’YÊ”\Ê—\ÐbÓ jÕ¦uÙ¨pئmÕ«qÔªuÕ¥nÒ¥gÐ¥kРbÓ¡dÔ«tÖ«pÚ¨tÚ®vÚ¯hÚ¬oÖ«sÓªnקmÕ¦oÒ¦iÒ¢eÓ£pÙ«uÚ­s׫oتnÙªrØ®uÓ¨mÓ¡lÓ nТjÓ¤nجtÖ­rÕ§rبoÕ©lÕ§mاnצpÙ©oØ©oקsبsÕ¤mÎnÎi×£jܯvݶ~áµzÞ®wÙ°zÚ¯uÖªiШ`ТfÔ£mÓ¦kΟhÒ¢mÖ­xس{ܲ~Ù²zÖ°pÙ±tÚ²yÖ­pÖ­pÚ²yÞµzÙ²yØ´yܺ{ܹ‚Ö±{Ò§jЦlФpУjÐ¥lÑ©oÔ«mÒªjЦnÍ£nЭsίwÈ£jÏ«iÖ®rÕ¨tÔ«rУlÊhͤhË¡jËiΣiÌŸfËšdÆŸf¼•Z¼ŽWÍ¡fÒ¨lÓ¥pרqÖ¨n×­nÙ®uÚ©sئjÒ¡dѧfÖ¬qÛ°qܯrקoÖ¬nÚ²pÚ­nØ«pØ©kاbצcؤfÖ¥WЗEΕTÑœcПbΞ^Ï™^È–T¾M»‰Ga!I& O3nLzMŒ\(“f)’e.–i4›j.›l0Ž_%lAH$ @ G)aDvV)\@;! +D-eFuK”g4±„D»NÆ™YÆšZÇ”TÒ¡]Õ¥cÕ¤bÙ§eÙ¥eפcÙªeÕ«iÔ¨mרjÖ©cÓªbÕ¨bÖ¥`اcÚ­dÛ°fÖ¬gÕ¨hÖ¨iبdÛªaݪiܦfÛ¦bÚ¦gÙ©cÚ«aÚ©_Ü©bÚªhשdÛªdÞªgÛ«cݪhÛ¨fÖ£^Ú¦`Û¨hÙ¦fÙ©_פVן\Õ¥aТ^Ó¥bݬiݪbبaÔ©bÔ ]Ó¡]Ð¥[Õ¥XÖ¥^Õ£`Ö¢cÙ¢hÛ¤bؤcÔ¤^Ó¢UÜ£`¼–dܬqݪtã´{漆ޱޮzâ¹|径鼈淅軈罇å¹{ãµ{Û­vØ©mÛ«tß²|Þ±€ß²…⾅㿇⸄â·{ã·yã·{一湆湃ä¶~细éÀ‡ç¼†å¸Šæ¶ƒæ»…潊繃繂ä¸å¹ƒç»‚çº|é¹|澄彊軉ìÀ„é¿„æ¸à¬vá«sã®oâ­nä±tä±sâ©lã­oå°nã°pß°pâ²rã²qâ®iâ¬lá¬pá®oà«oÛ¤iݤbߧgߧkݨiÜ©kÞ¦iÛ¡dÛŸbÛ¡hÚ¤lߧfÝ¢eØeØ¡^Ö›\ј_Ñœ\Ò™[Ò›ZЛVÒšUÔ¡VÓžWÒœ^Òœ`Ðœ]Ò™_Ô–^Ó˜\КZÒ\ÑœWÍ•TΖUϘYÐœ`Ó¥gبqÖ§rÖ©mبqÜ­rá²{áµ}à³~ß±}ß±yÞ¯yÞ­uÛ®uÛ­yÞ¯xÛ³wݵyÞ´{Ý°}Û°xÞ´uÞ¸yà¶{ã¹}á·tÞ³oݵv߶}àµ~ß®zâ±vá±uÛ¨mÜ«mÜ®mà«mà¨mݧkÛ¤f× `Û¦iܦkÖždÖŸ`×¢aØ¥cÙ¥_ÔžZЙ^Ôš_Ôœ^Ñž^КYΚZÍ›ZΖ\Ï–[Ïœ]Ð^Õ˜ZÖœ`Õ™[Ó—WК]ÑšZÑšWΛZЛ^Ó\ПWÏšUјSÔœXÖ¡aÔ_Λ\Ñ]Ðœ^ÐZÒXÍ”SÈ“OÌšPÒ™VÓ™WÔ™UИXÒœ]Ó _ЙWÍ”TКdÓ]Ï™UÌ—VÏ•SÓ”TÑ–VÑ™RÔšUÒ˜[Ðœ[ÒœZΘSΗQÑ›XÔ^ÕžaÐœ]ΖWÏ•YЗ\ΙZЙUЙUÏ™QÌ”VÉ“_Ñ›YÔšZΓSË’LϘUЛYÌ•TÌ–ZЛ]Ôš^Ò™^Òœ]Ó\Ñ›ZÑŸ_Ö¢bÔŸgÏ™cÍ’ZÈŽSË‘RÏ—VË™TȘU̘TÍ–VÉWÆŽSÌ“WÑŸfÑ kÎœhÐœjПhË›bË™cÌ—bÍ™jСmÖ¨nجyØ«uÛ­oݯsÙ«oÖ§lÕ¥qÐ¥r̤pΡkÔ¦nÛ¨uÙ¥s׫r×­rÔ­vÒ«uÓ¦qТvËœqÉ•dÈšeÌŸkСhÕ©mÔ¬rЧnÐ¥sÓªtÖ¨nÕ¦jÔ¬lÙ®tتsÔ¨nÕ¥gÓ¤eÍ¥fУkÙ©{ݲÜ°{Û­zÕ­sÓ¬oרsÔ¦oÓ§oÕ§rÖ¨qÖ¬qÖ°uܶyá¹}â¹€â¹වܲzÙ±tÚ²vرvØ°wÛµ}Ù³zØ®qØ°yÚ´}Ý·zܵ|Ø­vשnØ«oÖ«m׬rݳ|Ù´|Ô«sÖ©pÕ®qЫoɦnÇŸlÌ nΤoΤoÔ¦oѦjΣeÏŸhÌœhÉšeÊ™hÊ–gË•`Ë™`Á`Å’eÒ¦nÔ¦nÕ§tÖ¬pÓ¨fÖ«hÛ°oÝ®uÚ°uÖ¯jÖ¨nÖ©tÖ¬nÚ¯sÜ­rÙ±nÛ³rݬlÚªhתgרjÙ¨pרnاcÔ SИMИZОdÍžZʘPÆ•QÀ’N¿’F£v0^6= K'h@V„W‡[ f)‘e/”f.Š_(iEF& = H'fDwW.\B;% +A+[<qF”h-±„M»ŒTÄ—ZÆ™ZȘ\ΟaѤ`Õ¦eרnÖ©hÓ¦bÖ¥cÙ¦hÕ¨iÓ¦hÒ¦gѨjÕ¦i×£aئgÙ«nÙ­iÙ«aÖ¨dÕ¬gÚ­hÞ©fݨiÞªsÛ©jÖªeÙ¦eÚ¥bÓ¤aÓ¦bÚ¦aܦbÙ¦hئhÙ©eÚ©eשeÖ¢YÙ¡ZÚ¥[Û¦]Ú¦d×¥\Ó¤`Ö¥bØ£]Ø¥dÚ©dÚ¨aרeפdÒŸZÍœWР\Ò£^Ò¢]Ò¤ZÓ¦[Õ¤bÓ¤bÓ£_פ`Ô¤e×¢`¸•Xç±å´鼃齂å¸zä·{â·{á³{å´|ã²~á°æµ}á²xÛ©rݪy߬{ß±㸄ã¸}ã¸~亄纂終á­~á­|ᵀ㸂淄ã¹å¼ê¾…ê¹å¹à¶„Þ±€à²|䵃渆繃æ²}ç³€è·}æ·uå»}轃ê¸|è»é¼„è·}ç»xç¹tå³xã±vâ­uä°uâ±rã°så±qä¯rå¬uå«xá¬tá­qæ­på­sâ¯wâ«rã©lá¬nà©nÞ§hÞ¦gÚ¦gÞ§fÞ¨cØ¡`ÚœbØžfØ¢fÝ¢bÛ¡]ØaÚ›bÖ›]Ó›YÕ—XÓ—ZÑ—[ЕWЗ\ÔšaÖ›dÓcÐbÓž`×bÓŸdÑž[Ó^ÖžbÔ›`ЖeÒœgÖ hØ¥lÙ¨nܨlÚ¦oÚªoÞ­và´}äºyå´rà­yÞ©xÞ§mÙ«oÙ¬rݬpتnשrجxØ«wتuتu߬絆å¶å·|æ·|ã³wÞ²wà´xãµ~ã´{á²tâ²uá¬nÙ¨jÜ­jâ­jߪnܧfÙ¢XלZÕ YݪaߪkÚ£aØ¡[ן^סfÙ£jÖœbÓœ`Ø¢dÖž^Ò`ÓŸ\Ñ›XΗVÍ”SÍ–RÒšYÕŸ\Ó ]Õž`Ôœ]Ó›\ÔŸ`Ô aÕŸcÔžeÏš]Θ[ј^Ñš[Ñ™VÒ›XÒž^ÑŸaÐ]ÐUЛRÓSÔŸVјSÏ•MКNÐœVÓœZÖœ\Ó›\Ø^Ø¡eÑ™VË“NÍ™YÒ_ÔœYЛW͘XÍ”WϘTÑ™TÒ–VÒ˜UКWЙVÏ–TÏ—YÑ™\Ô™\Ôš\ИVИTÏŸ`Ô hÖŸ_ÖŸ]Ó›^ÏšTÊ—SË”TЙZÕŸdÕŸ`Í–ZΘbΙ]Ë“TÍ•WΘZΘ^Òœ_Ð]ΙVÒœZÔ¢dÑ¡cÑœaИ\Ì•XΗUÍ›V͘[Ï—ZΛZÍ™[Ì”VÉ‘OÆLÍ•SÑ`Í™_Ì”[É’TÆPÅWÃŒUÄ‹PË›dÕ¬qÛ®tÙ¬vÙ¬sÚ¬tÖªsئnרjѤnÓ¡kФjͤgÓ©mÖ­sÓ§mÕ¦oÓ¦rÏŸkÍ iÏžiЛaËšaʘgÌ›hË eТiÔ¦nÐ¥lѤmÔ¨nÖªmÙ«rÕ¥pÓ§lØ«oÙ«rÓªmÔ©rÖ¬uÕ©lÓ¦mÔ­rØ°qÖªqÏ£jÍ¢hϦoÔ¨tÕªsÑ«rЫsЪtÛ²yà·}Þ³yÞ´y޶ݶ}ܵyÚ±vØ­tØ­wدvÚ®oÜ«vÛªyתqÔ©p×­w߶‚à·Ù­sبuÖª{Ö«q׬tÜ°~ݱ}Ô«sШnÔ¨sÓ¥rÉlÇžhÌ¡oÊ¢pÊ£lÒ¬lÒ¨oÏœsΡkÌ¢fÊ™gÉeÊgÐœiÒ¦kͤlÐ¥nÓ¯uײuݶyÜ·wÖ­rרuÙ­tرtÜ´xÞµxݱsØ­vتrÚ¬rÖ°qÖ­oÛ¯nÚ®nפlØ¥gÜ°fß²kܬkÙ¬fÚ«cØ¥YÔ¡QÓŸ[Ï`Ë™PÄ•PÂ’QĘK¹‹>\_2 +J& \8rKtJRŽ_*_(c*Š]"rGP* A! P2rT%~`1[=8! +='U1 oDn4¹ŒO¿ŽMÆ—VÇYÉ›YÓ¤bتeݨcܨeÕ¨eÓ¦bÕ§fקlاnÙ«kÛ§mاmÕªhÖ«fØ°fܳkÜ°gÙ¨dÖ©mجhܬbÚ¬hܬkàªmà«mÜ©gܦcÛªjÔ¨iØ©gÞ«eاaÙ©cÛ¬dÙ¨]Ü©Zܬ]צdÖ¥eÙª[Ö§YÖ¦cئfÕ¢^Ö£aØ¥g×£_צdÖªhÕ¬bÖ«`Ö¡YÓšNОRСZÐYÔ _×¢bÑ¡ZÓ¡\Õ \Õ¡\Ö¡bÛ¤\½”Z鹈åµ~ã¹y輇鸈è¼è¹}ç³wã±|Þ°{á²xå´ä³~ä´ç·„æ·é¹€í½‚èºå¹‚幂å·å¹ƒâ·ã²€å¸„䷉峅乄廀鹂⸆ๅá¶~ß®{Ü®‚ݳ€ã¶ƒè¶‚è·yåµzâ²yâ±vä±zæ¸}綀綀æ¸yæ²qê´ré´rä°oâ¯ræ­oç¯så®væ¬ræ°rã²qä¯oä«râ¨ká§mß«tà®kà®mã­päªhá«lݪkÚ¤fÚ¥jÛ©bئ]Û¥bܤcÛ£aÙŸ^ÙžYÙ¡WÕ\Ó™^Öœ^Ö]Ó™^Ô™\Õ–ZÓ”]Й[Л]ÑšYÏšVÒšXÒœWÒ›[Ô™dÔœ^Ôœ\ÖœfØžbÖ[Ô[צbÙªjÚ§jܨoÞ©}ß®á°wà¬uß®uÝ´yÚ²{Ù¬vÛ¨qÙ¨nÚªrØ©zÚªuܨnاnרsÖ¥uÕ¦pÚ±tä¸yç´yâ±xá´sá±là¬jß­nà®râ²tâ´zâ°tß®jÞ®pÞ¦oÛ¥jܨlÛ¨gÙ¡_Õ[Õž[Ö£`Ø©kÞ¥pÙ¡fÕ¢c×eØaØŸaИ\К\Ö¢^Òœ\Ðœ^Ôœ^Õš^ЙcИ]ЙXÐ[Ö¡\ÔŸ^Óž^ÕœXÔšPÓšYÓ™[Õ›cÔ˜aΕVÍ—YÏ™ZÒšYÓ™ZÑ–WÒ˜VЛYÑ™XјWΗWϘWÔŸYÓž\Ι[К[Ñ cУ]ÓUÕ˜SÖœTÖaΔ_Ë“RÑXÒZÏ–YÑ—XКXË—WΘRИQЖTΕVÍ–UΘ\ΙZÐœZÏ›]ÍXÑœZÏ—YИ[Ö`Ö bÑžcÑœ`И\Ζ[Ë–RË“QÏ•WÑž^ÓŸdЕZΓYЙYʘVÊ™ZЛ`Й^Ñ–ZјXИWИ]ÑdÏ_̘XÌ’TΖWÍ™bË–\Ë–ZÍ”ZË“XÌ—ZÏ–RÍ’MÈTÈ“WË–YÇTÅŒJÆKÆŽTÈ”XǘUÉ–^Ò£nØ°tÚ²wÚªvÖªs׬pרvÔ¨uÕ¥kÔ£j΢oΡmÏ oϦmÏ¥jΠlÍ¢lÈšhÊ–eÍšfΚaÈ™`ÈhÌœkÎœjΡnΡpÑ¡lÓ¢kÕ¥gÕ¨n×¥nÕ¤lФnΟkÍhÒ¤jÔ¦kÐ¥kѦrÕ£oÑhΞhΞkÌ™dÆ•[ǘcÑ¡l׫nÙ°qÖ¯wÒ¬{رÞ¸†Ü¯}بrÕ¦pÔ©qÓ«~Õ¬{Õ¨qÒ§qÒ«sÓªrÕ«uÕ©tÑ¥kÑ©oÓ©uÕªuÕ¬tѪpΦiÍŸfÍžhÌ¡mͤlѤlÒ£lÈeÆ™kÌ nΟgÊ™bÈ›aÊeǘfÇ•dÍkÊœaÓWÑ[ÄUÆŽSÆ‘VÄ’ZÈœaѦkÔ¥nÖ¨vÔ«yÓªvÙ­qØ­nÒ¨oΦhÓ§m×®uصuÞ¶uÞ°vÙ«vØ­rÚ°sÖ¬nÕ¨mÜ­uÝ°pÖ¬oÕ¯rÞ²qÞ°uܳpÝ´mÛ²lÚ­hØ«`Ö¦_× \ÐVÇ—UÈ‘PʘPÔM²{;—c#uIj= jAiB{Qˆ\'‚\$Šb)Šb$|Vb;V5lN&{_6tY*O59 +I, _9 …U®z?·‡D¸ˆ@Å“OÍš]ΞbÕ©hÚ­oØ­qÙ«kÙ¦fÖ¦fÕ¬mÖ©rاrØ«rÚ­nÚ¬qשnÖ«jݳqß°tÚ­kØ«gÕ¤jÒ¦kÕ«oÝ­pÝ°rÞ¯rܬoÚ¯lܲqÞ²pÜ«lÛªoÚ°nÝ­iÝ©cÚ©cݨ_Þ«aÞ¬fÞ¨gߪeܬe׫jÕ¨hÔ¨gÒ¢dÕ£_ת^Ö¤_Ø¢`Ù¦bܦc×¢ZÔ¢ZÔ¡ZÒŸ]Õ¡bÒŸXÑžUÓŸZÔšZКYÕšYÔ™ZСZ×¥]½ŽZ赆尃߭yâ¶|鼉깋깅껆繄丄ⶈ湄èÁ…æÄŠè‡èÀ…éÁ‹îŽ뼉軃绂幄ä½å¾…湂é¼è»ä»€çº„岄å´á³~â³|ç¶~䳄ಇ߸€ã¾€æ½†ä´‚æ´{æ²tá¯nâ¯v䶅ä¹ä´|ä±{å³vä³xã¯rä®hä°pã°ræ¯hä°hã­hã¯fã³jä¯hÞªdݧbߧnà«sß«kÞ­sà±tá«nÝ¥pß¡jÝ¡dÙ¤hÙ¢hÙ£eÚ£bÙ aØ¢^Ü ]Ûœ^ÙšWÖšSÖŸ]Õž_Óž`Ö bÙœ`ךbÕœ^ÓœWÔœVÑZÌ™]Ðœ^Ô^Õžd× dÖ bÔ cÔ gÖŸeÕžbÒœaÔŸcÙ¤lÚ¦pÞªuá­|ܱzÖ­oÔ§qÖ«s×­qÙªvÙ¬xÙ­wÚ­vÙ¯vÙ¬xÚ©zÜ­yجtÓ¥oÖ¬wÞ¸yç½|ê¼}ä²r߯mâ¯má¨mܦfÙ©fÞ¬mà¬pÞ­nß®oÝ«jÙ«eÙ¦fÞ¨kÞ©jÚ¢aמbÓaÓŸ^Ô¡aÖ¢eØ¡hÖŸ`ÖŸ`לcÖŸbÔŸ`КXÕYÔ aÎaКZÒšYÑ›_Ï™]К[ÑŸ]ÒbÖ—`Ó—W͘WË“RΘYÏ›bΖ[Ó™ZÕš]ΗVÌ—WϘYÏ•YΑZÑ”^Õ˜_Ñ™ZÎœSÒ˜TЖXΙ[Îœ^ÎXКTÍ•]ЗbÒœXКRјTÒ›VÑœ[Ï™UÏ™UÑš]Ì™WЖVÑ—YÍ•WГXИXΖOÍ—RÏ–UÑ™YΚXʘWΛ[Ñ™VÒ˜YÖž\Ó›XΛXÐZÑ™\ΕYЖYÍš[Í—[Ï™\ÎœZΘWϘ[ÑœcÏœ[Ôž^ÔŸeК[Ò™UÑ™TΘYЗWΖQÌ–Q˘VÍ™bÍ—ZÌ“OÌ‘UÌ–ZÍ™V͘WÍ–WϘVИ\Ζ]ΖSË•OÆQÆPÊ”VɘYÍœ[Л`ÓžfÒ¤oѤpÕ¤qÙªxÚ«wÙ«tÚ¯qÙ­tÔ©tÔ§pÐ¥i΢iÏŸmÍžpÊiÊšbΟh΢hΞfΞeÎbÍ›`ЛhÏŸeÌžeΞmÓ¤vÔ¦vÑ£kÒ¦lÕ§nÑ¥hÔ¤jÖ§nÔ«oÕ¦nТjФkÒ¡nÔ¤pСhÈ™^ÌœdÎœaÈ—]Ř]Æ—]Ç“[Ê–\УiתnÜ®tܲzرvÖ®yÛ²yܲuÚ®vتuÔ¥nФoÐ¥pΤnϤmѦjÓ¥iÒ¤kΧlÌ¢oÍjТiÑ¡nÏ¢gÊ¢iÇ™gÆ—aÅš^ÅšcÈ—hÅ™cÅšbÇ–cÄ”cÊ›eРiÑ mΠgËaÌœ\Ë›[Å‘VÄŽUÃV¿ŠS¼ˆOÀ‡IÅŒJÆ“PÇ‘RÈ”X͘aÍšcÏbÎcÊdËfÍfÊœ^È–\ÌbÕªhÞ°uÞ°yܯsÙ­hÛ­jÛ°tתkѤdÔ­lÛ±vجvÖ¬qÖ¬r׬p×®mØ®oܬvݬsÜ«mÚªkØ­jÚªaÑ¢ZË [Ï^É–QÄ’G¾‰A¨u)Š[rEg?wQ&‚Z$yR„`*g)‹c wToK^.€a0hKG, O) pGˆ] ©z=»‰HµI·„OÄ™WΟ^Õ¢aÖ¨eÙ¬eÞ°gݯiÜ«hÚ«oݯwÝ°qÛ±vܲ{ݲvÛ±uÚ®tß®qß²qÞ®rÝ­t×®qÓªlѧkÕªqÜ°qݳpݲqÜ®jݱpàµyà¶xß³sÞ¯nÜ«fÜ®fÛ°kݱkÛ¯kÛªhÞªhÛ©aÛ¨dÝ©kÚ«bتaÚ¨eפ`Ó¤_Õ¥aÖ¤bÖ§eÛ«gݪeؤaÒ ZÑžXÓž[ÖŸZÓTÐVÑZÏ™VΙRЛSÑ™PÓœ[ØŸZ¶“P껇㵆ݲ}ã¶|淉䶄æ¶ä²€ã´㳃á±à¶yá¶三㷇⹄軇溋湃é»|ç»~滄輆蹄é¸ê¹~æ¸{â·xæ¶z㳄ݲß°rß±xáµ~æµ~幃蹃麂ê¼|êºzç¶uå¶lå³qåµå¶æµuæ´zå±yä°qä°ká°oæ°på®jà«ká®nä­jàªkß«kâ«mâªjݨhÛ£aÞ¥^ݪdݨhݧlà¦lÞ£hÜ¢hߥhÜ¢cÛ£há¥hÝžeÔžj×¢dÚ¤fÙ¡dÙž]Ù¡bÙ£bÛ¢`Õž`Òž_ÕŸcןeÙŸdÖžeÕbØž^Öœaלbמ]ÓœbÕŸdئfØ¢fÒ ^Ρ[ÑŸ]Ó `ÓŸ[Òœ[ÔœdÖ fÔ¤gØ©sÙ¡pÑœgѤhÚ©rÜ«xÖ©yØ©yܬvØ®zÙ®uÙ¥mÓ¡kÕªpØ©oשoÛ¯vâ¶}è»å²wÝ«dÝ­fÞ¬oݨfئhÛ«qÞ«iÚ¦jÙªnÜ©jÚ£hÚ¤bÛ¤gÙ¤kÙ¥jÙ§fÙž]Ó™WÎœUÑœ\ÕœdÑœ_Í›ZÎaÑš`Ôœ^ÓŸ_ÓœWÔž_Òž`̘UΕTÍ–WÍœ^Îœ\ЗWÕ^ÖŸ`Ô–\ИUÏ–MÍ•RÍ–ZÑ—PΖQ˘ZΙWÌ–UÊ‘NÍ”SÍ–VË•RÍœ\ÓVÒ˜SÏ™XΖVΖVΙTИT͘UÌ™WΙYЙWÑ’ZΓY͘VÓ›ZÓž^Ì™ZÍ–RЙTЖTΖTÍ•XÍ•ZÍšTΚNΙMЛWЛWΚUÍ™WÍ•TÍ•UÍ•RÍ”SИ[ÑšZÌ“QÊOËRΓQϘTÍ™XЖXÒ–WÑšYÑ–TÒ™VÖ£hÕ fÑœcÔ^ÒšXЕ\Ñ•[͘[Ì›ZÍ—PÈ•QÌ–VИYΕYΓRÍ“WÍ—YÍXÎœZϘZÓZК]Ë”XΘZÍ•[È‘QÈ–RΤcÙ±qÝ®yÚ­zÚ­sÚ­yÛ­Ü­zÙ«vÙ¨uÕ¦mÕ¦lÖ¦kÓ¤oÏ£pΡkÎjÍžhË oΟjÑŸfÒ mΟgËšbÍ›`Ë¡dПnÓ¥sШqÕ¥nÓ¦rÔ¨rÖ£kÓ¥nÕ®o×­oÖ©t׬qÙ°sÚ²yØ´wÓªpÖ©vׯxÔ«sÑ¢mÉaËŸbΡfÌžbËœaʘiÌeÒ¦jΧuË qÍžpÌ¢oÒ¢lÓ¢pУmÒªpÖ°uÙ°sÙ­rÕ¨oÔ¨lÒ§jШpÓ¨uÖ¦wÔ¤qΡqÍ£rÌ¢jΣlΣnÊ¡hÊŸeÅ™dÅ•hÌŸhУfÍžjÊœhÍ eͤgÉŸjУsÖ«wÕªpÖ¨mЩnÍ£kРlƘ]»‹OÀ‹KÄQÃRÃŽIÅ’PÇ“XÊ•[Ê”^È–`Ä“XÆ‘TÇ“UÃRÄ’SÆ–YÆ’TÇ”ZÏœgÛªuܵ{Ù®rÚ«uÚ°tÞ²tá³yÚ­uФoÖªxݵvÜ®uبsÔ§gÔ¦hÑ¡hÍ¡fÒ¤hÔ£hÔ£gÒ¥dÖ§aتeÓ¨dÑ¡\Ñ[ɘUÈ—PÍšYÄ’P¯y8‘_%rGjGpO#tO"†`.•o=•o:\#vT€_-uY*R6?! kD–m,¦{;¿ŽHÆ“G¼ŠDÀOÈž\΢`Ô£eÕ©hØ®iݲmÞ²oܲtÛ³xܵvß´vß³tܳwÛ³uÛ³tÛ°sÞ¯sß²xݲuÚ²sÛ²tÜ®lØ«hØ­mÝ«kÞ±oÜ°oÛ«dÛ¬hÞ®sß°rß°oÞ¯oÜ°nݯoÝ«hÜ®dÛ¯iÚ«iÙªcجfÚ§_Ú¨\צfÖ¤bÛ§`Ö¥]У]Ö¤eÕ¢cÓ¡_Ô¥]Ö¦`Ó¤`ÔŸZÓ™ZÒœ]Ô¢[Ñ›ZÍ“_Ñ—XјRÍ•ZÍ•XЗWÒ–VÕ™QµŽMê½€ã¸xß±z三⸇ⶂâ¸à³~á¯xâ¯xà®yß²zá±vâ´y䷀ⷀã¹~ä¶ᲂ廇鿌渊緇消ã³ä¶}ä´€à®zá²~á²Ü²~Þ¶ß³ß¶æ¼…í»Œë»‰ë¹‚é·…ç¼†ë¸{ê¯tè¯yç±|ç¶uå¶vâ³{á²vå¯pä«qá¬qå­tâ®oß©cߨiá¨lߥdݦiݨqÝ¥hÞ¤cÛ£bߣdá¦hÝ¥dÛ¡aÝ ^Üž^ÜŸ`Ü ]Ø ^Ö aÚ¤bÙ¢cÖ¢bÙ¥^ÙŸ]ÖŸ[Ö£dØ¢iÛ¦`Ü£`ØŸfÕ¡_Õ \ØŸdØŸgמ_ן[Õ£]Ö¢cÕŸdÕŸaØž[Ó¡^Ó¡gØ _Õœ\Ñ™_К^К[ÓœZÔaК]Í›aקqܪqئl׫qÙªoÚ¥rÖ©oÓ¨jÓ¥mÕ§oÓ¡hÓ hÔ kÓ£nÚ°và·|à´à·{â·yä³uâ®oàªoß«rݪrÞ¨nÛ©lÞ¬sá«nÞ§dÚ¦cÙ¥cÙ¤gÛ¥hÛ¥hØ¢hÙ¢lÛ¤lן`Ò˜UÒ–XΓXÏ—YÒ—VјSÔœYÕ\ÔŸ^Óœ]Ï™UÌšUΘYГTÎ’QÍ•VÍ—VÍ›]Ε^Ñ”]Ò˜_И_Ò˜^ИYÍ‘TДUÑ™XД[Ò•VЙTË“VË“NÌ”KΔKЙUÔ bÒš[Í“RЕVДVДTÒ–XÑ”WË—WÒž]×£fÔŸ_Ò™]̘`ΙXÒ™]Ζ^Ï–XÍšXË—YÌ–QÍ—TÍ”UÏ–VКZÑœXК^ΙbϘWјYΗ\ÍRÍ•RÌ—TÌ•VјVÑ–UÍ“WÉ’RÈ“RΖ\Ï–YË•TЗVÏ–XÌ™ZΙWЙWקdبgÓž]Ñ›^ÕŸ^ÖŸcÑ›`ΗSË™S͘TÏ”]ÒšbÎœ\Ë”YË•Q˘RΔUÌ—ZÏ]ÑšXÑ–YΖ\ÊUÆŒRÈ‘UÊ•U̘YÓ¦mÛ²zݵzÛ²uØ©p׫xÙ¬vÙ¨lÕ¨oרrÕ¦jÓ¥nÒ§tÒ«tÓ§qÓ¤jÏžeÎœiÓ¢rÒ¤nТhÑ cÏšb̘bÏž`ÑŸfÖ£rÕ©mÓ§kÕ¤sÔ£rÓ£mÒ£oÒ¦vÖ­|ٰ٬vÖ«qשwتvØ®qÕ©tÑ¥vÓ«qÕ©nÓ¤rÑ¥pÔ¨tÕ­yÕ§sÔ¦mÒ«iÕ«lÙªpÒ£hʘbɘaÇšcËgСjÏ kÑ¥r׫xÞ®rܬpÖ¬rÖ¯zÖ«vÔ¬pÖ­xרyÖ¬tÕ¯pÕ©mѦoÓ§rÕªsÑ©nѦnÓ¤nÒ¨qÕ­tÚ­uÖ¬tÔ®u׬uÖ¬uÔ«uÖ«sÖ®yØ­yجsÓ©tÇŸjÈœeÉ–bÀŠSÄTË’]Ç’WÇ‘YÉ“]ÇŽWË“Y͘ZË“YÇŽUÇŽUÃUÁŽTÍ–UΘYÌ™fÓ¤nØ­sܳyÞµ|ܳÙ®sÚ°lÞµuÞ³{Ú¯u×±pÚ²yÚ¯}جvתqÕ¦oÓ§nÑ hΙ]Ì[ÏžaÍžbΡbÕ¡bÓ¢cϦkÒ¦kѤ`Í[ϘTÒNÎœTÃH´~:”_)i?\9jL"_0Žk5l2~W%tO$rR%^C>$ M/ ‰d¬}:º†JÆ•MÊšOÊ™OË™WÍ¡^ШeתmتsÞ¯sã¶vâ¶}ß´{ݱuÚ±oÞ²uá±wÞ²tݱtܲxÞ´tß³tß´xÝ°pÞ°mÞ²pÙ®sÖ¯oתjÕ¦kÙ±lÚ®kÕ©nجnÝ­lÝ­kݬiß­jß­oÚ®jÛ¬gà¨oݪnÛ¬cØ«`ק\Û©^اbÖ¦[Ù¨`Ü¥_ؤ_Ö¤dÙ£^Õ \Õ›YÖŸ\Ø£\ÙŸ\Øœ\ÓšVÑœSΛSÍ•PÒ”UÓ–\ЕTÍ’MÍ•SΕWÏ”WÔ–X·ŒT渆㶀â³x乃㸄巃湃ä·}å¶~â·yâ¶uäµ}à­vݪpá±tã·{䵊涃ä¸~廅仆㹆ⷄâ¸|æ»væ¹{ã¶xá°xà¯|Û³|ݱ}â´~ä¸}æºê¼…뻇踀æ´wæ²uæ±nç­læ­vå¯yä±pâ¯läªsä®|á¯tà«lá­oâ«qߦpà¨mà©jݧbà¦gá¦dÜ¥[ݦaݦaÙ¤Wܧ]߬gܦhÚ¤hÛ¤`Ú¡^ØŸbÙžbÛš\Ô˜`И_Ñž_Ô _Õœ]Ô˜_Ò™[Ò_ÕŸfÕžbÓŸaÖbØš_Õ™`Ù\ØŸYÔŸ_לcÕšdÖ bןaÒ˜XÑ›VÒžWÏ›WÍ™^Ó™]ÑšYЙ^Ñ—YÍ•VЖ\Ï–\ÆQÊ›_Ù°{ß®tà±sà´xÚ¬nרmОkÌ›dСjÕ¢mÓ¡fϤhÑ©pÙ²xᴀ䲇㷇㺀à³vá°u߯vÞ¬rà®oã±mâ®jÝ­mÛ­pÞ¬lݨfܤfÛ¦dÛ¦fÛ©lÖ¤^ÕWÚ¡_Ù£[Ö ZÏ™[Ì•RϘRΙ\Ï–ZÒ’VÕ–XÔ[ÕŸ]Öœ[Ò™XÏ”VÏ”ZΙZ̘WÌ”QÍ’VËYÈ’RÌ”PΕUК\Òš]Ò–\Î’SÌ”UЖ\Й^ИYÍ—SÍ™TÍ–RÍ”UÏ—SÐWÔŸ^Ñ–TÊ’KȘOË™NÍ–WÏ•^Î’YЙ]Ö¦hקoÖ£nÕŸfÑœbΛ]ÍžXÎYјWΘU͘UΕSÌ”QÌ–TÍ™XÑ›]Òœ]Ï™YË•WÌ—UÍ—WÍ–TÏ’TΓT˘TÍ•QΕLÑ•TÑ’[Ë“XË•Q̘MΛVÏ›aјZÑ–RΙRÌ–SΘ\Ó£eÙ¦lݦlÚ¦kתmÓ¨fÏœ_Ï™]К\ΗYÏXÓ ^КbÌšbÎœ^͘\Ëš[Ð`ÓœhЗYÈOÈPÇJÅŠJÈYÎœd×¢lפqÙªrÚ¯uØ®rÚ¨mبvÖ«wÖ¥oÓ£nתkÖ©gÓ©lÕ¨qÖ§tСmÑžlПkÊ¡gѤhÔ¡fÒ gÔ¤mÔ¥jС`ТdÒ§oÓ§rÒ§nѤoÑ¢p΢tУuÕ¦qÔ«oÒ©rѤuÓ¦lÑ¡cËžbÍ gÎmÇškÊžaΣfÑ£jרkÛ²rÛ²tݯvܲx×°vÓ¨pÒ¥nÓ¤rСmΡiФiÓ£fÕ¡kÕ£sÒŸoؤlÕ©nÐ¥nÕ§qÓ©oÏ£oÏ¢xÓ¦tѨpШqÓ¨r׬tÖ¬sÔªtÔ­rÓ­rÖ­rÖ¬rØ°uײxدvÙ¬uÕ©pЪpѬuÕªzÔ§oÒ¥lÑ©oÒ©lÑ¢mÉ™d¿R¾ŒNÀŒS¿‹I½ŠDÁŒJ¾ˆJ»‡PÁSÂŒO¿ŒMÃUÇZÄŽWÁŽTÂTË–]Õ¢hÓ¡fÖ¥lÚ¯nÚ¯vÜ°zÙ°rÚ¯rß­mܬnØ«p×­mÓ¬lÔ¦oØ¥jÖ¦eÓ¨jÕ¦mÖ¦hÕªjÒ§hÐ¥bÕ¨gÓ¤dУ_Ö¤YÓœVËœ\Ê _Ï dТcÌžYËœWÌŸ]Ñ WÍ™RÃ’L´„<ŠZ"a;_<iItT{V"qKgGW<?# B% +qQ£y2¸†AÀŠHÆNË™VÌŸZÏ£]ѦiÓ¨oجkØ®lÛ¯oâ³oá¶uàµzâ´yß³uÞ³yà²yß³v߸{â¸zá´{ݲyÞ³wݲwÚ°tÙ°tܱwÙ°xØ­xתpÜ«oݨhÜ¥gÜ©lÛ®nÝ®iܦcÙ¤_ÛªfÜ­mÚ¬hÞ©hÛ«iØ­eÖ©dצdØ¢^Ù¡]Ø¥bÕŸ^ןZÙ¢[Ø¡WןZÔž\ÒœWÓŸQÖžXÖšZÓ˜WÐœQÏšNÎ’RÎQÏ“QΓXÍ‘XÌNÍ’UÍ–V͘TÏ—V¶†Tâ¶y淂嶂庂èº}é¼}缃è¸ë¹zé¹}åµ~åµ€ä²|߯rä¶{鼈蹃鼇躇å¹æ¹…ç¶å¶‚麅ë»}ë¹|비깂æ¹xå¸{ê´{ê¹wê½‚í»ƒé¶zæµ{æµxæ²tç²så°uâ®sã±næ¯oä­nà¯oâ°wä²râ²lâ­jߧgÜ£gÞ¢gߥiÝ¥eÝ¥dݤdÛŸdÜž`Þ¡]Ú£dÙ¥mß©hߢbߢdÝ¥bÚ¤dÙŸbØ]Ûž^מ^ÕžaÓ™]Ñ•[јZΚZÒ™^ÙžeÛ¡gØ cÔœ]Ó™VÖœWÕŸZÔœWÔœXÔ›^Ò—dЛfÑž`ÕZÖš]З]Ò—[И\Ï•UÔ—YÒšYÐWÓŸ`ÓœaИZΖQÌ‘QÆŽVÍ¥r߶}à°tß³zß³}ܨqÛ¨oÙ¨lئjÚªsÙ¨nØ«lÚ¯rݲvÞµ~ß³„ã²xã´vãµzæ´wç³rã°p߬oÞ­oÛ­pܪoÜ«oÛ«kݪnÛ¦cÛ¦bÚ¨iÙ¨eÝ«kÙ¢cΚXÓ¡bÛ¢eÖ`Ï™_ΕZЙYÕ›\Ó›TΗN͘WÏ]ÒšZјVΘTјZÓ›UÓ˜SЕWÌ•TÏ—UÍ–UÍ”TË“WÌ”WÔWÏWΗYÑ“^Î’^ΖZÑš\Ò˜XÑ–SКVϘTÏ–QΗQÍ–YЖ]Í”WË–QÌ•UÎ’UÓ–RИVИZÑŸ_Ï cÏœdÎcÑ›]Ϙ\Ë•]Ϙ[Ï™TÌ–TÍ•TÊ”PË“SϘSΖNÊ•UÍ—]Ϙ]Ϙ^Í”XÌ“RÍ”VÌ’VΕZЙ\Í™TÍ–VÏ–QΙRÌ–WДUΗTÌ”QΕVΙY͘WДTË”TÈ–ZÓœdÙ§nÛªrÚ¨mÕ¥eÒ¡eÏ^ËšZÏœ[ÒšYИYÓZÕZÏ›ZÐœZϘSË“RÏ–YÏ]Ï•RËŒNÆ’[È–[Ê–TÉ™WΟcÚªpß°wØ®tÙ±~ܬ}تvÛ®tÚ­yÚ±~Û¯|שtÙ­rÚ­wÔ­oجlÛªsÔ©mÕ¬oÔ«oѧjÔ¦nѦkѦmÖ©tÖ§qÔ¤oÔ¨tÓ¦oÒ¤hÍ hÏšfÕ¡lÕ¥jÓ¥gÓ¥nÏŸjÈšeǘaÇ“aÆ“bÈ–aÇ–bÆ•`ÍjÓ©mÛ®oݲ{ܵ{߸vã¹Þ²zÚ²yÛ³}РkÆ™bÌ¡lÏžlÓ¨lÖ¯pÒ§rÕ¦qÖ©uÒ¥pÖ¨lѧoÍŸjÍœaÆ”]Á`Å”gÈ•gÉ”dÆ—dÊŸlÔ©vÙ­uÖ­vزvÙ´vÕ²vÚ¯zÞ±xÖ²vس|ܳzÔªuÕ©s׬yשzÒ¨rϪnѨlÐ¥lͦrϦpÏ eÉœcÈ™^Ä’]Â]Ä’\ÁVÁO¿Q¼ŒN½‹NÂŽVÅ‘YÅWÈ”[Ë—dΠfÒ¤iÔ¤jÛ®rÛ°{Ø­vÕ«p׬qÛ¯rÚ±oØ«iÖªiÖ­lÕ¦kÓ¢hУeОaРbÒ¦hצkÖ¤fÑž^Õ¢iاsÔ¥gÕ©j×®sУbÅ–VÆš[Êœ]ɘXÌš^ÑžaÎWÊšSÌ™TÏ›TÇ•G±}6\m?^6[9]=X:L2 F+ O. oGp6»ŠLÔM“IÑTËŸhТaÏ[УiÙ­rÙ­jÖªkÙ­rÜ´rà¹{á¸{à´}â³€á¶}à·€à¹}à»|à¼{à¹xݵvܲzà³ß³zزtÛ´}ⵄݮ~Û®sÞ¯uݪrÙ«nÚ«oà®ná°jÙ­i׫fبaØ©gݪgÝ«cÜ©aبcÕ§cÛ¦`Ü¥ZÙ¥ZÕ¥`Ñž^Õœ^ÕžaÔXÖ¡XÖžWÑZÔ¥_פWÖQÓ™XÏ›YΙWÏ“RÍOËTÍ”XÏ–UÏ•RÑ•PÏ‘RÎQÔ–N´‰Iâ´yå·æ¹€ç½~蹅蹊辅绊齌쾆麅纃蹂æ´zå¶}é¼…ë¼èº€å¼†æ¼ˆã¹†æ¸ƒç´}ç¸xìÀ€í¼ê·yë¹|í¹zë´qè²zê¸{í·xé¯xâ­vá®uá²xä±væ­mâ²kã°kã¦iÞ¥ià§nãªmà§eá¦há¨iߦgÝ¥eܤcá¦hâ¨hÝ£^à `á¡kÙŸcØž]Ú]ÙŸ\Ú¥aݤbÜŸ]Ø [× XØžUÕœXÕ›]ÕŸ\ÑŸ\ÔaÔ–^Ï•\Ι\К_ןbߥjß©rÙ¢jÒš\ÏšVÓœ\Ôš^ÑYÒ™[Ò›]ÕžXÙœ\Ôœ_Л_И[Ñ—\Óž`ÓcÑ™`Ô^ÕšZИ\ÎœZÒ™UÒ™XК]ÍŽTÊ“XÖªrß´yÞ²uÝ®{ݨuÛ§lÖ§mÖ¨pÛ¯}Þ¯|Û¬uÝ°xß­{ݧyئtÖ§rÜ­uá²yå³xå²|ä´}à°tܨuà«uÞªqÚ¨jÛ¨eÚ¦mÛ¦lÛ¦cØ c×¢`Ú§cܧgÖ ]Ï—ZÔœbÚ¡bØ`Ó•SГPЖZÒš\јXÒ™UÑ—XΘYÐXЙYÏ–ZÒœZÓœ[ј`Ï”XÊLÊ”PДYÒ˜XÏ›[Η[ΖXΕPË–VϘ^Ï•VÊ’WÊ•YГTÐYÍ”[Í•ZË”WÏšVÔšYÒ™[Í™ZÍ–SÏ–QÍ•SÌ—TΗOÌ–UÏœaÕbÌ—^Ç–Y̘VКYÊ—^Ì•ZΘUË”YÈ‘QÆ’EÊ•PЙYΘXÊ“PÏ–SÏž]ΚWË•PÊ“TЕWΔRÍ–QÍ•TΕSÏ—UÍ’VÌPÏ’UΔ^Ì”YÌ•TΔUДZ̘XÈ”TÊ“\΢gשmÚªpשlÖ£fÐœa˘VÌ™TÎœZÐœZÓ›ZÓŸ^Й]Ï’SÍ”QÆ‘WÈTÇRÄ–T˘SÉ“RÅ•VͤhÖ©pÙ­pÙ®q׬hÖ«kתrتqתsÔ§vÔ¨qÔ¨lÓ¥uÙ­Ý°}׬sÖªrÙ©t׬sÙ°vÙ°y׫rܱnÚ­pÔ¤qÐ¥n΢kÑžkÕ§oÖ¥tÓ¡rÑ£kÑŸlЛiË—]Ř]ÈŸeÍž_È–YÄ‘WÇZÌ™aÊ—_Ç“bÄ’bÅ’]Ê™^ΤhÔ­uܱyã¹~â¹ܶ{ݵyÛ°yÙ¯}Þ³€Ý°wРdÍ™]Ó¢jÖ«qØ«qݱuܲuÙ®vܲxÛ°{Ú¯yسsÒªmÄ–Z¸…H¸Kº„T½‡SÁŒ[Å—hÏ¥nÕ­pØ°uÙ¯~Ú²Ú²vÖ«mÖ®xÚ°Ü­~Ö°~Ó­xÖ«sÕ¬uÕ¬pÔ®oÓ­sÓ«sÔªsÕ©qÔªo׬uÙ¯tÔ­oЩr΢jÏ¥eΦnΣo΢fÊiÈ•cÉ”UÇ—^ÈœeΠgÕ¥mÖ®kÕ«iÒ©tÕ¯r×°pØ­x׬wÖ®uÙ­wÛ¬{Þ®vÚªoÕ¦iÕªkÒ©nÓ§nצhÔ¡dÖ j× dØ¥gÕ¤eËšXÕ¤eÔ¨hΟ^Õ¡bÔ¡`È™Y•\Éš^Ë™Y˘YÍaÍ bÊž\È™ZÊš[Í]ËšYÅ’K®ƒ:”e$xGa4X- R- Q, `6~Qo-µƒGÈ•WÌœVÅ•RÇšWÖ«cÕ¨gÎcÔ¦gÙ¬nÚ¯tׯtÚ­vݲ}Þ·€áº}á¸}á´}á¶w߶zá¸{Þ¸qÞ³oá»zàº{ß³}á·}ܳtÚ®tݵzÜ´}ݯvÞ°râ­sá­nÙ¬jÚ¬jݯhÜ°jÜ®jÝ®eÝ®fÙ«iØ©hܪbÛ¨bÚ¦aØ¥bÛ¤fÛ§_×¥TÕ¢[ÖWÓœSÔœ\Ó™XÔœUמXÑœVÓšWÖœ]ÔWÑœUϘQÍ“NÌ”OÉ”RË“TΕYÑ–WÑ™TЛUΗXΕZÓ–R´‰TÜ­ã³è·ˆæ¹äµ~㸃ä½æ¹{é´~èµ~å·æ·‚è¹{å¶{䵇庅ã¼á¹ƒâ´„é·†ë»~æ´yä²zç±væµuâ·{ç²zê´è²}é²qæµrä²zã±tå±sæ­zä¯lá«eà¥qä©qä®oã­jâ¦^Þ _Ý¥dߤhß dߢ`Þ¤eߨcÝ¢`Ý¡bߧhݤiÙžaÙ›dÙžfØŸ^ÖŸ^Ø^Ø^Û¢`Ú¡`Ù¢dסaÔ›YÒ–ZÕ™[ÕTÒ›TÏ™XÓ[Ó›[КZÖœ]Ô›\ОaפoÛ¨kØ¡_Ò˜YÏšWÏš]Ò—[Ò˜WИ`Ò›`ÖZט[ГVΔXΖ]Ï™ZЙ^ЛZÔŸZÙžcÔ˜_ИWИ\Θ`Ñœ\ϘVÍ•`Ó¤uÞ³}à²{ß²yß±vÙ¬qקsÖ¦mÕªrÙ®}ß±{à±zà°uâ²qÞ²{Ù­yÚªuݬxâ³uâ´zß­}߯và¬qߧká¦iߪrÛ¨rÙ¡iÛ¤tÜ¥oÙ£b×£_ן[ØŸbÚ§fןWÑ›VÓ¨eÛ¥kÕ™eΔ\Δ[јUÓšZÒ™^ЕUΖT͘YΙ\Ò˜YЕUϘYÒ™aÖ˜_Ò–YÍ‘SÍ”UÑ–YÓ–ZЙ]Ò•^ДZÊ“SÊ“UÏ•]ÉTÉPÈ”QÆTÈ’YÍ™X͘[ÓšcןfÖ¡kÓ¢jΡeÒŸ_ÓœUÍ—SÏ—XЙ[Κ_Ó¡jÙ¢lסdÒ£gÓ¦lÑ£bÍœaÍ™^Ì™TΙTÍ“QËMÉ‘TÌ•VÏ—TË™NÍ™SЗ[͘UÊ“QË‘TË•TÌ–TÏ–UΙY͘`Ñ™^ϘXÌ“SÍ“UΕ`Δ^И^ÐœcÏ™]Í•XË•UÑœXשkØ°sצmÕ¡gÓ¡cÒœcÑšaÍ›^Óž`Óš`Í“^Ê–[Ç•RÇKÆRÆXÍ”]ÍaÈœeÎcÎœ_ÏžgÚ®rà¶{Þ²€à³}ܳvجt׫rدrÕ¦oÏ¥mѨnѤlÔ£nÙ¨pܬtÙ¬yÙ«yÙ¨sתtد}Õ¬uÔ¬pײzØ­rÓªtЦxÕ£pצuר}Ö¦rÏŸgÌfОjÎeÊš]ÏŸcФjΡ_ÈšXÆ•]ÎœdקrÕ¦pÑ¢hÍ¡jΟhØ«mÛµzÚµ~Ú²yدvÛ°{Ý°}Ü°{Ý®yÝ­|߶‚ݸ‚Ù­r׫t×°yÚ²vݶ|߸~à¹{áºyã¾}ß·ßµ€Û³}ΣnÁ“Xº†Jº†K½PÅ’SÉ›^ѬkÙ³xÛ±}دvÚ°sÝ°~ݯ‚Û®|Ø°yÛ±{Ú°zÕ°vկ׭~Ö°uØ®uÖ­yÓ°t×­uÚ«xÖ¬tÔªtשvЦqΣmΤmѨpÓªxÒªzÕ­vÓ«tÓ§qФkÊ¢fÊždËžeФoØ«uÖ«pÒ¨mÖ«wÖ­zѨoÕ¤nØ©tÙ«xÙ¨rØ«sÚ­{ÚªvÖ¨gÔ¦mÔ¨pÓ«nÖ«tÔ¤rÒ¥jÖ¦aÖ¦jÔ§kÒ¥cÙ«nÕ¥bÊ—WÊš^Ç™ZÂTÆ•ZÍŸcΣ^Ì¢\Ëš`Ïœ^Ï¡ZÊšXȘZÌŸXÎTÊ–Q¾N³„>¢p+ŽZ…U~NO_£q4µƒ=¾‰B¾ŒNÈ•T˘TСaÝ­kÛ«hÔ¦dØ­kÕ«oÖ¬uݯuÞ­vâµ|ã¼€áµ~á´~á¹Ý´wݱvß³xÚ¯vÛ­yâ±}ß³|Þ·áº~ܵrÞ´xä¹~â¸yà¶zß¹yäµrä°mà±iÞ¯mÞ°rß®jß«eÝ­kÝ­eÚ©bÚªhÚ¨iקcÙ§[Ö¢[Ö¢ZÛ¦\Û¤XÙ¢WÖž\Ñš^Óš\Ï–RΗWÔ\јXÔ˜VÖž\Ô›YÓ˜TÑ™PΕPÌ—WË—YÍ–UÏ—\Ï–ZИVÓ™WÒšZО^Öž\¹‰Yà°á±â·€ä³|á®Ý¯}Þ¶xâ¶wá±rà¯pá´vá·{à³zß±zã¶}ä¹äºæ´豀鸆é»ä¸tá³sá­rÞ¬rá¬rä­mæ¶uå³~ã­sã°mä°pä°lã°mâ¬pä¬nã©iá¥fà¥bÞ¥cߥeߥcÜ¡`ÚžcÙž^ן[סcØ£bÚ¢cÚ¢b×¢]ÕžaÕ›]ÕWÔœ[Ù›\Û^סdÕ¢bן]Ö¡_×£_Ù¢[Ù¢dÕš^Ò•VÕšaÕbÒ™Wј]ÓšXÖœUÕbÕ^ÑšZϘ^јcÔœdÓaЛ\ÑšXÓšYΕZÏ™VÔš\Ñ–^ИUÑ—UΑSÍ–RÐœWЕYÍ’WË“XϘ^Ôœ]Ó™]З[ΖTÉ‘RÆPÉŽOÊ“`Ö¬x嶆ä±Ü´yÙ³uÙ°uرxÖ¬}ܯà·€å»è»â¶}áµzà´{à²â´~ã³sà®tß­tÞ©pÝ©mÚ©fؤgÚ¨fܨlߤkߤfÙ¤hÕ¢dØ¥cÚ bÛŸ^Û¥hÛ£oÔœ^͘XÕ fاjךeÐ’YÏ“RÒ’TÏ—YÑ—YÏ“XÌ“YГYÏ—\ΘYÏ•TË•[Ï–ZÒ—WКZÍ™XË•RË–RÏ•WÏ“UÌ’VÍ’YÍ’XÍ–^Í™^Í–TË•SÍ“TÈOÉ’TÖžgØ£lÖ£m×jÓœgÔ¡oؤpØ¡jÔ cОbÒ£gÖ¥jÕ¤fبpÞ§uÞ§rÚªoÜ©oÖŸdΙWË•VÉ“WÊ”VÊ“RÆPÇ’QÌ”YÌ“WÉ‘PÉ’TÌ–TΕSЕUÍ•WÈ”VÍ•YјXÑšVÌ—XΕ]јZË–ZΖZÑ–VЛ]ÒžaИWÍ”\Γ\Í“QÎœ`Ó¤oÓ£iУfÎœ`Ì•ZΖZÌ–dÊ•[Ê’QʼnMÄŒJÉ“OË“UÍ™YÍž`Ñ¥mÜ®uÝ°vÝ«oÜ©oÚªlÛ¬mß²tàµv߶xÞ³xÜ«vÙ«tÚ­tÙ¬tÕ«vÖ¬xÕ­u׫uÙªuØ­pØ®zØ®€Ù°y׬sÕ©sبvÑ£qͤkÔ¬qÕ©uÕªqÔ©xÑ£vЦqÓ©oÒ¦pÏ¢p΢mÒ¥rÖ©pÙ­uݲ{Û³tÙ²sÙ®wÔªnÔ«oÚ²vܳvÚ²xÚ®vجtÚ­xÞ±{Þ°xשpѦoÖ«uÙ¯qÛ±uá³~ݲzÛ³~Þ²Ù¬qÙ¯mÜ´{Û³|Ù³€Ù²€Ú³xá¸}⸇ܴ{ܳxÖ°Ê oɘ^Ëœ^Í¢hѨfÓ«iÙ±tݸ{Ý´yܲtײyײدyÚ¬rÖ«wÙ°|Ü°{Ù®xØ­uتsÖ«wÚ¯yÙ®xÖ©xÕ«yÕ¬|Ù¯xÚ­xÙ©vÚ«|Ò¦qÈ›eÇ™dËœdΟlѤsÕ§rÓ§uÒ¤sÒ¤iͤeΠfÍŸmÐ¥pÕ§pÍŸiÇœfТnÕªvѨqФmÕ©t׬yÑ©qÖ¦mÛ©tÚ©yÕªuÕ¬qÕ¦iÒ¢hÒ£oÓ¦jÎ¥f΢lÐ¥mÒ¦nÒ¨kÒ©eÍ¡aÉš^˘]Ç‘\ÀŠRÁŽUÈ•_Ê™]É•^ɘ^ÍžaÑœdÊ›YÆš[Íœ_ÎœVÈ–TÁM½ŽJ·‡>¯4­~=¯z7¬v*­z3¹„GÁ‹Gº…:¼ŠFǘZËšYÑ `ÛªmÖªhÓªdתiÒ£jתnݶxÜ´{Þ²zݲ{Þ´߶„ß·‚â»}á»á¹Ý²tØ°pÜ´uݳuܲvß²{Ý°zÝ·ä¹â¯tÙ¬uß²sà±oÝ®oÜ©hÙ©aÛ­bÛ¬dØ©eÛ©gÚ©fÕ©dÖ©_×¥`Ù¢aÜ¢^Ô¡_СaØ¢\ןXÙ\Øž`Ò¢\ÔœTÓ˜QÓšSÒšVÑ™QÔQÖ¡XÓ\Ñ›RÑ™TΖSÉ‘QΔ[КYЖUÍ‘ZЖ[Õ›XÔš\И\Ôš\º‹]鸄æ²ä²~ç¸å¶á°|㶀å¶á®rà­oå³oç¸rå¹~Ⳃ浂é¸ç¶ë·‚ç¹€äºêµ{æ­rà°nâ°gã¬gã¬já¥ià«qã²uã®qá°nã¯mä©mã¬tá¬rá¨oã©oà¨eÜ¢aÞ¡bߣcÜ hÙŸgÞ¢bÝ`×`Ú \Ú _ݤcÝ¢[Ùž\ÙžbÙ›X×–]Õ›fÙ¢gÛ¡oÚ¤qÚ¦kÝ¢jÜ¢gÛ¡aÙ¤]פYÓœUЛWÔŸ`ÙŸdÕš^Ò–Y×™]ÖžbÖŸ\ÕXÕœbÕšdÓ›`ÕŸ_Ù¢bÙ¢dÙŸbÖšaÓœXÓ™\Ò•\Ô›[Ó—\ΓUΗUЛ^Ñ™bÒ–]Ó–XÓ—\Ó™cÒ—`ГVÌ•UË“XÌ’XÉ‘UÈ•WΠeÚ²|ä¶~æ±x߯{Ú®xÚ­v׫sØ«vÞ´}ß¹}漃꼄â²|ß°wâ³yä³}æ·ƒä³à­tÞ²rݯhܨiÞªjà©bݦdÚ§hÜ¥hܤdÛ§eÛ¢kÛ¥fÙ©bÖ¤eܨkߪjÕ›WÌ–TÑ¢gÚ§nÕ¢eΙ[ÑšYÔ—WÑ–Z͘VÍ•VÏ–\Θ[ΗXÏ•SÍ–LÏ™YÑ–[ΖTЙ[Ò•ZΕUÌ“SÍ“VÍ–WÏ”VΗZ˘WÈ—ZΖYÏ–SЛcΘbÊ•UÐeÖ¤mÔ¤iÒ¤iÕŸlÔŸfשfÙªoÖ©nÛ©rܪrÙ«lרlÖ¦jÔ¥hÓ¢hפhÙ§kÕ§k͘_Ë”\Í—[É—Y͘YÍ•UÉ‘QË–X͘\Ê“SÉŽJÈPË•WÏ”XЗ]Ì“VÈ’NÊ–UÍ—[Ð’XËTË•XÑš^Ñ–WΕQ˘ZÐiÒcÍ•\Ì•YÌ•UË‘XË—RС\ПcË—^É“YÈ“RÉ•XÉ•WÊ’UÊ“XȘZËšbÒ£lØ«oبnÙ©qÝ´zâ¸|ã¶{᷀ߴ‚âµá´zݳyÛ¯xÚ¯wÙ¯{Ö§vÕ£sÚªxÞ±{Û­}ݯ}ܱyÙ³yßµ}Û´zÜ·yݶ€Ù­‚Ù¦{Ù«uЩpÍ nѤsÖ«xÙ§sקpÓ¦pΡjÍ¢kШsÕ©u׬sÞ±|Û²€Û±{á´yỀ߷„ß·Þ·€Ù³}ײvÚ´}Ú´|Û¶z߸yÞ²~ܳƒÜ¶}ݲ{Ü­tÖªkÙ°xܱƒÚ±~ݳzß³~ܸ€Ü¶€×¬vÚ¬xá±…Û²~Ù·zܵ~×®vÛ°uß´Û³|ݳ|Ý´ƒØ¯zÔ¦lÖ«sÛ³~߶}ݳvÞ¯và±}ฃീܰwÙ²vØ®y׫uׯyÛ³~ß±|Ö­zÓªuÕªsÓ©yÖ­xØ°vÖ®{Õ­vدuÙ²{Ù®zÚ±yÞ¹|Ù±yÏ¢kÈžcÇŸcÎ¥gÕ¨nÓ¥pÒ¨tÓªsÒ¥jÓ¦kÓ§hÔ¤gÓ¦qÓ©wÑ£s̘gÎhÕ¬{Ñ«zЦp׬rÙ­yÕ¥uѤk׫pÚ«rרpÖ«uÕ¦oÕŸpÓ¡pРhÏ mΟnÌŸi΢oÑ¢hÐ]ΟeÍ¡eÊž]È™WÂK»ƒD»†CÀ‹KÈUÆ‘WÆŽVÊ“]Ç•_È•SÑ™TÍšYÆ“R‘PÀQ¿‹G¼ˆ>½Š?½ŽE¼„B»‚BÀ‰GÃI½ƒH¾…QÊ™^Í `Ò \Ø¥fÙ¬q×­nÐ¥gФh×®uÙ¯xÛ¬tÚ°vÞ¶zã¹Þ¹ƒáºå¿}ä¿zã»{ݳy×­uÖ­sÕªp׫qܱzà³}ä¸{á´tØ©lتqÝ«mÝ«fÚ¬iÙ§dÚ¨bܪeÛ¨bÙ¨aئ_Ù¤`Ù©j׬jÚ§^ݦ^Ù§^Õ¥bÖ¤dØ£^ÚŸ]ØŸ\ÔŸ\ÔŸ^ÔŸ[Õ]Õž[ЛXÑœVÙŸWÙ\Ö™UДPΕUÏ–SÌ“VË“[Ï–\З`Ï—\ÒšZÑ^Ó˜[Ñ“WÒ—R´ŽRæ·zâ´~Þµz乄輊縅終ç²}ä®wâ®tç²sè¶mçºoè¹yç¹~軄踅緀è±{å²wäµqã«nã«tã¬qãªnã­pâ®tå¯qæ®oå¬kã¯kâ¯qå®nâ¬nß«hà¬jæ­nâ¨gÞ fÝ¢bÛžYÚZÜ ]ÝŸ^Û_Øœ^ØŸ[Ø¢\Ù¡aÛŸcÙœ]מ_Öœ\Ô“RÖ˜`Û bÙ¨kÚ«vÞªnÞ¬pß­vÝ¢hÛdÚŸcÓ—XÓ™[ÖeÔœ_Ö›TÔ™UÖ›]ÖŸ^פ`Ù¡`Ö d×£lÙ£gמeØ¡jܧhÚ¢gÕ›aÓœYÑ›UÑšTÓYÕž\ÒšWÒ˜[Ó˜[Ó™WÕ`Ö¡iÑŸdÖž^Ö`ÐœaÒ™]ÓœaÕ¤kÓ£lÓ£mØ«xÞ­xà¯vݯ|Ü®|תvÓ¦rØ­sà»㿇ä¸ç·}깄ä³}ã³tã¶xå¹å»}ß°uÛªxß°{àªqÛ§kÛ²nß«iÞždÞ aÞ¥aÛ¨bÛ¢`Ü \Ù¦^Ù£`Û£hß«oܨjÔ aÑ›]×¢lݨnÕšZÏ”WÑ—WÒ–XÒ•\Ï”ZÏ•XÔœ^К^ϘUЗVÌ‘XÌ”VÍ”PÊ“TË•QÌ–QÍ•WÌ’SÇŽNË’VΓZΔXΔWΓYΕ\Í•^ΙZΘXÍ”YË”XÏœaסiØ¡i×¥fÓ¤hجsà®uÛ¦pÖ¨kÖ¨nÒ¤iΡdÍ›]Í–YΚ[ОZÒ_ʘ`‘VÈ“RË•QÌ•TÍ™[ÍšVÌ—RÍ”TΖYÊ™ZË“PÊ’WÍ™^Ñ•WÎTÊ“VÈ–U̘WÌ“WÈŽPÇJÇ•U̘ZÉ’PÊ’QÎœTУ[ÎœXÌ•UÌ•W˘TÊ”RÊ“V̘\Ï`ÑœeÓœeÓ¢hѤkУjÓ¡eÕ§nÙ¬uÞ­tÞ±uß³á³~߶|ݵݰ}Ý­yß°{âµ€á·~Þ²wÜ©rÖ¥sÕ©rÖ«vÒ£xتwÞ²uݱyÞ¶|Þ²~Û¯Ù²{Ù²}Ù°~Ú­~Ù®~Ù¯vÖ­uÔ­wѨrФkÕ«xׯ}ÕªuÖ¨uÖ§sÕ¤nѦqÒ«oÙ­vÞ²wÞ³yÞ°€Ü¯xÙ³uÚµyݵ|Ù±z×­zÚ­zݱ|Û±|Õ¬v×°vݳܳ}ܶtÚ·vܶ|ÞµuܱyÙ­zØ®p׳uØ´xØ°tÙ±xܳ{Ô®sÕ­uÛ³{Ý´{ܲ€Ø®zÙ±wÚ´ƒÚµƒÚ°yß²~ã¹à¸„Û²}Ú°yۯسyÓ°pÔªuÜ°~ᵃá³Þ®vÛ°vÙ±x×±tÕ±vÓ®zÙ²zØ®rÒ«mÔ«uÕ¨zÕ©wÖ¬rÖ«tÖªsÕªmЪoѪrدxݵ€Û²zÔ¬uϨmɨdͪlÕ¨nÓ¥gÓ«oÑ«uÌ kÒ lÔ¥mФkÕ¦s×­|Õ©yѤoЧkÓªsÕ¬qÔªhÔ¥kÓ¦vÔ©pÕ¥mÓ¦tÒ¤pÑŸmÓŸkÑžfÒ¢gÒ£kÏ¡gÏ¢eΡaÌbÌŸmÑ¡iÐ`Íœ[ΟcСmË›cÁV¼ˆL»…=¿‚@Ä‹OÅIÂŒJÅNÅŒOÈŠQÌ’ZÈ•YÆQÆUÅRÀŠC½‰E‹NŠC¿‡AÊFÄF¿…F¾„HÃLÍ›\Ï bËž[Т^Õ©fÙ¯pØ©sÕ§qØ®s×®rÕ«nÙ¯tÞ°zÙ³xÙ³vÜ´vÙ³vÙ¯rتlÔ§nÒ¬pØ®qÙ«pÛ¯wáµ}ß³zÞ³wÛ°nתnÛ¯tÞ±sÛ°iÙ©hÙ¦iÝ­hÝ«fÞ¦fÛªfÚ©dÞªlݱkÛ«iܨfݪ`ß©bܪbÚ©_Ù¦cئ`Ø¢\סcØ bÖŸ\ÒŸ_ÕžZÓšTÒ™VÔœUÒSÒœXÑ•WΗWÌ›SÊ–SÈ•YΕVÑ’VÍ•VΚTÏ•WÑ–YÑ™YÔ•Wµ‹V涂沅ஃᲂå¶ç¶|é¸|èµyæ¶sæ´sæ³pã±jã°sæ¶vçºsè·xé¹{ç½uæ¶qä±sä²sã®tã¬tä®nä°rä³væ±ræ¯rã®säªuå¬sä°oå¬qå©mâ¦hà©má®lÞ¦aÛŸaÜ¡cÛ¢]Ö^ÙždÛŸgÜ¡fÚ aÚ›[Ù›ZÙœ_ÜaØš]×–[Ù˜]Ù›ZךW×ZÔŸfÚ¦tá«vÞ«uà¬rÝ¥pÙ¡iÙ¡_Õ™^Óš_Ö™\Õ–WÔšTÒœ`פhÛ«jاlÙ¥nÚ£oئlÕ¦hÙ¢iÛ¦hØ£iјdÏ–WЙWÒ˜WÑ—WÒ[ÔŸZÕš^Õ˜]Ô–WÔœWÓž[Ó˜_Ò™bסbØŸdÜ£lÙ¥iÕ¥lÜ°rݯwÜ«uÝ®pÞ°qÞ±{à²â²zÜ­vÙ«x䶀꽆滈å·}á³{â·{ã¹rà²uá°sã´x䴀ߵqݲmã°oá¬hݪoÞ°vÛ¬kÚ¦jݧjÛ¢aÛ¢cÝ¥^× `ØžcØ bÚ¦kÞªmܪjפgÏœ`ÓŸhÞ§iØž]Ï“]ΖYÍœYК[ЗWÏ™`Ô fØ¡dÔœaЗ[Í’XËYË’TË“QΓZË’VÊ“PË’VÊPÌ’PËVË”YÏ™]Ì–XÊ“XÑ–aÒžeÒ¡bÓŸ]ÐœbÏ£nجsÜ®tÝ«uÙ¨oÖ«oצmÑjЛjÍ“`Í“\ΙbÏ›gΙ_É”YÊ–TΙYÌ”^Ì•[Ì•TÉOÌ’MÑ™UÏ›XÌ–QË•UË—ZÍ“TË“TÉ’RÌ’WÍ”RÊ‘JΓUј]Ï•XΕTÍ•VË’YÌXÊ“XɘQÍ™UÑ[ÒWΔUÌŽUË‘UÊ“TÈ’QÊ“X͘[ÑeØ¢jÛ¤gبpÖ©sשqÝ°vݲ}ß³}ß±xݯtܶyá¹ⶂܲ|׫vÖ­vÖ­rÙ°wà´}Ý°zÙ¨tÙ¨qתxÚ­yÜ­rÚ®xÚ°yݯpܯsÙ¬vÕ¨pÒ¤oФuÓ¦tÕ¦vÐ¥sÌ£kФoÒ¡nÏ¡hÌ¢hÐ¥kÒ¦nΣlΡkÏ£nÖ­|ܱ„Û³{Ý·{Þ´}ܵ}ܲ}Ú­|Õ²yزvÙ±rÙ¯yجqÚ­mܲ{ܳ~Ö¬pرuݸzÛ°yÚ³zÝ·{ݳzÙ±yØ°€Ö­|Õ§lÖªnÔªxÖ©yÙ­yÛ²€Ù¯xر|Ù³ƒÙ²zÙ³rزrÙ±x߶}㸊޲‹Ýµ侃必වേง޹~Ù¶{Õ¯zÙ¯}Ûµ„Ú´Û­tÙ¯uÚ³{Û°tׯuÙ±yÛ¶tÙ³tÖ«y×­tÕ­nÓªo׫uÜ®wܬvتxÔ§wѪsÙ²yÞ²€Ú®‚Ø®€Ö­|ϧtÏ¥nÓ¥nΤjѦpÔ¥sË›eÏ¡cרkÕ£rÕ£xØ«vÙ«sÕ§pÔ¦l׫tÖªq×¥kצoÕ¬nÔ©mÕ¤oÕ¡iÓŸmÒ¡rÕ¢jÒŸfÏžfÑ¡hΠeÌ eÏ¡kѤnѧlÓ£fÍ™aÉ•`ΘfΚdɘYÅ”VÂŽU¾ˆMÁŠLÇŽQÅ‹NÂJÇHÈŒMÅŽNÍ–UÇQ¾…JÈ‘RÇ’NÂGÅNÄŒK‹HÀŒIÁŽNÈ“RÈ“LÇJÇ‘PÉ™ZΟ_Ξ]Íœ]РfÙ«nÚ¬oتrÛ®tÖªiÓ©iÑ¥lÓ¢oÖ¨uÙ°tØ®nÔ¨lÖ©nÙ¨pÚ­pÛ²yÞ´~á±zâµxáµ{Ù±sÕ¬gÕ§jÖ¬tܯvß®rܱlÜ­dÞªj߬kÞ«gß®gÜ°iÛ°kÝ°hÝ­gß­jÞ­kݬfÞ©fݨhݪcߧaÝ£dÜ¡cØž\ÓœXÖžZ× ZמZÒ™ZÏšWÒœVÓ˜ZÓ˜\ÑŸ[Óž[ИTÍ™RΖXΕWÑ—ZÔ˜^ÓœYÑ™WИ]Óš^Õœ\¹‹`淂縇ä¶}â³zä±~ä²xç´qå³oå­pä­sä®lß©gß©hã­hå®må°qå³{å²|ã¯qã¯kç­jå­ká­kã¯jå®oå°mæ¯dã¨kã¨lä­kå¯kæªjå¨kâ¦oá¥mâ¦já§gâ¨bà¢`Þ_Ùœ`ÕŸ^Ö[Öœ[ÖŸ\ן[מdן`ÙŸ\Ú aÚ]Øš^סaÜŸ\Û™YÕš\ÔšbÖ eÙ¨sܬ}ݪqÝ£iÚ¢lÙ£jÙšgÕ™_Ï—WБZÐ’TÑ—XܤoÞªp×¢gÔ¡fÓ dÕœcÖœbÔŸdÙ¤dÛ¡cÕ˜`ΖWКWÓ˜]Ò–ZÒ•VÔ”WÒ™WÒšXÑ”YΖXΘRÍQÊP͘XÑ›bØ£jÖ¦fФhרqݬvß°€ã¸ƒãº|ⶀ᱀߱wß³€á¹ŠåÁ蹊涅඄ۭzÛ¯xß³{à°rߨhâ«mâ®vÝ­sݬsá®qÞ®pÚ«j׬cØ«bاeÚ¦eÛ¢eÚ¢fÙ¤cÔŸ`ÒŸ`Ö£_Ù¨fÞªcÞ¦ZÖŸ_ΘaÎœbÙ£dÕžWΗOΔVÍ—VÏ–UÍ”RΘXÓžeÒŸcЛdÑš[ΓPÌRÊ•TË–RÏ•WÍ“XÈŽZÉUÈ”NÌ‘VÍ’]Í›[Ñœ\Ì–[Ì—YÒ›[Ø¢b×¥mÙ¨pبoשqß®uÞ­wÛ«xÙ§kОbË”^ÇUÈTÇ‘VΙbÖ jÙ©sاjΗVΔYÓ˜`Ò›`ÖŸfÕœaИV͘[ј`Й\Ï™YΔ]Ê“[É“OÈŽPÈ‘OË”QÉUÉ“ZÎaÏ›^Ì•T˘Y͘Z̘YË–YÈ”ZÈ–WÍ™TЗWÍ’TÊQË’SÈ’UÅ’VË”WÓœ\Ö¥fÓ¤iÔ£gبhÙ¦oÔŸjØ¥oÜ°{Ú±tÞ°sÝ°uÕ«rÖ°tß¹{ä¸~ß³rÕ¨jÑ£mÑ¢qÑ¢pѧpÕ«sØ«nÔ©nÕ¬xجyÖ¤kÎœ\Κ]ÑœjÏŸhÎcÎiÌžjËžhÄœkÄ™jÆ›jÇ—eÃ’]½ZÅ–eÉ•eÇ“ZƘcÈ™fÍœgÒ£pÙ¬xÞ´{Þ°zß´zßµ~ޱߴ„د{Ù®yݲ€Ú­|Ú±{Û¶{Ú­uÚªvÛ°yØ®uÜ°yá¶|Þ²wÛ²|Ú´}Ù±x×­xØ®zÕ«rЩqÓ«vÕ§rÒ§rÔ©tØ©pÖªqÙ­uÞ¯uÝ´~Þµ|Ø­zׯzÞµ}例㻊൅߷‹ß¸â·{áµ|ß·ƒâ¸‹àµ„ೂà¶Þ·„Þ¶~Þ´|ݲÜ°{Õ¨yÖ­{Ú°|Õ®wÒªoÖ«q׮ج}ÖªsÙ­Û´ײvÕ°sÓ­sѨqÒ¨vÙ¯uÚ°rجzØ®~×­vÖ©sÖ«qÔ¨oÓ¦rÕªpΣkÕ§r×­zѤtϤnÖ¬tتuÓ§lÕ¥oبtÔ©kÕ¤jצmتnקnÔ¥qÒ¡kÏ jУiÔ jÔŸiСiÏŸeÒ›fУkϤdÐœdÑ¢lÓ¤kΚeÈ—_È”XÆVÈ’[ǘaȘ^Æ‘SÀŒPÂŽMÅ‘HÅŽGŠGÁŠD‰EΓNÍ•QÁŠIÅOË‘UÈŽNÈ•SÇ’QÆ‘HÈ–JÅ’NÉ—LÌ™MÍ—UË™XÏœWÖ£`Ñ£iΛdΟfТkÒ¤gÖ§fØ«oÖ¬q׬sשt׫uدxÛ±yÙ¬rÖ«rܲwà²{Þ²~à·Ṃݵ}Ú±tÚ°tÔ«mѦhתsÜ®wá°pß±oÝ­qàªmá«i߬gß«rÝ®uÜ®lÞ®ná¬dݨdÚ¬lÜ«gß©fÝ«hÙªkܨfÙ¢^ÙŸYÛ ]Õ¡bОeÓšeÕš^ÒŸZÓ ZЛZΘWЛXÑVÑšXЙYΘWΖRÍ”TÑ–]Ô–[Ж\Л`ÓXÓ™YÓ™]ÖœSº‹Uè¹rç²mé³yè¶~å¶uå²rá©lá¦há©hâ¦cä¨càªjâ©jãªjà«oã¬uå°tã¯mã¯fä®lâ¬pá­ná«lâ«ká©mߦhÞ¤\Ý£_Þ¦dà¦dá«hå¨ká¤fߨeà«oÞ§nÞ¥cÝ¢[ÙŸ]Ù¡_Û aÚ¡bØ¡Xן]ÖŸgÕœ`×\Ú `ÜŸaÛŸfÙ¢gÙ¡aØŸcÝ¡dß eØœcØœaÛ¡eÙ¨sÝ­{ß«rÚ£lÕžiÙcÕ˜`×›\ךYИ^Ò˜_Ö—_Þ£gÛ¥d×aÖžeÒŸbÓ\ÕdÓœgÕŸdÙ¡g×]ÕŸ]ÑšdÍ“YÍ”VÍ’XÍ’WИWÓœZÒ˜]ΑYÈYÍZÍŽUË–Y΢gÕ¦mÚ¨qܬ{ܳ~Û³yß´z⸂丅å¶Þ®tÙ®sá¹æ»ƒã¶ã¶ⵀ㶀ã´}á¯wà¬vÞ¬nÝ­lß®vß°uá±oÞ°oÞ®já­mݨlÚ£^Ú¥^Ü¥eÝ¡fÛ bÙ¤eÖ¢hÔœcÕcÕ bÙ¦dÜ©hÚ¡cÓ˜]͘XÏ™aןiÖšZÍ”SÌ–T˘WΕTÏ”VÍ•\Ò™aÔ—aÓ•\Ò•TÌ–PË’VÍUΖWÏ’[ÍSÊLÈ‘SÇ”UÍ•SÑšVÑœ]ЗYÍ‘TÌSÌVΗ]ÏdÒ¢mÖ¤pؤpÜ«pܯtÖ¤pÍ—]Ë”WÊ’\Æ‹QÄŒOÇ™^Ö§eÞ©kã¸~à³yÔ¢iÖ£lÖ¡qئpÙ­q׫sØ¥nÕ¢eÓŸdÒ˜\ЖWÑ–UÏ—TÍ•XÍ–XΙSÊ’LÅHÊ“HЙXΙ]Ë•VÑ–XÕœ_И\Ë–QÍ–XÍ–^ËšWÊ–UÇ‘SÄMÇŽPÇŽTÄWÌœ]Ô¥gÖ£mÒŸkÓ¨mØ­tÛªvÖªsÒ«rÙ­uܬyݬvÜ°wÒ©tϨmÙ¬qà°{Ý°tÓ¨hѤjÏ£o̤oÏ©uÓ°xÑ°uÒ¬qÖ«pתsÖ¦mÎ[Ș\΢fѬlѦmÔ©rׯtÓ©qΡiÍœeÍhÍŸdÅ—ZÄ–\ÍŸnËŸiÆ›\Ì eÒ¦mسzÜ·Ú­yÛ²}߸}Þ´~Û´}Þ¶yà´~ܱݴܳ€×¯{Ú°{ݲÞ³zݶvÚ´€Ö¯}ܲ~ᶇݲ~ܲ|×­vÔ©lزrݵwÙ­z׬sÚ±qÛ°sÛ¬wÚ«zÕ®sתsÚ«{Ûµ}຃⹄ݵ~ض€Ú²„Ṇà»Þµv߸}ݸƒÝ¹‚Þ¸‚ß´€ß³…ߺŠáº‡àµ‚Þ´|Þ¸„Û¸Ö²vÙ°zÙ°vÓ«vÔ¬}Ö¬yÕ¨nتqدvØ®sÛ®{Û´Ûµ{Ú­uØ­vÓ²vÑ®oѨsÕ­x×­rÖ§oØ«qÚ²rÛ°yÚ°zÙ¬uÖ¬tÙ°{Ú­xÚ®zØ°z׬xÕªzÖ®xÙ°tÖ¬qÓ§o×£tÕ¤nÒ¨jÒ¦oÕ¥pØ¥mÒ¢lФnÔ¢kÕ kØ¥mÖ¤jÐhПcΞbÍdÌšdÈ“^Ê•`Íš[Ê•\É^ÅWÁŠPÂŒMÄTÆXÅŒJÄŠIÂŒOÂKÁ‹H¿ˆDÁ‡DÅŠMÍ›`Õ `Ì–SÇ’QÈ’TË“QÒšVÏ™UÍ–KΚOË•IΗKÓœNΖNÍ•VÍ—YÑž_Ï¢dÍ¢`Í¢cÍ¡jÓ§j׫iܯpÞ²rà±vâ¶}á¹y߸~ᶀۯp×®tṂäºà¶~㺄㻃ݱwÙ­}×°zЭh×°tä¶}äµsà±oß°tÞ«oݨeÞ­lÜ©qÞªnà¯kà«mÞªmØ­eØ©bÛ«cÚ¬_Ü©aݬhÛ©eݨgئ`Ô£]×¢_פXÕ¤SÕ¤YÖ¢[Óž\ÓœWÖUÓž\ÏZΞ\Ò]Ñ^ΘZË–VÌ™ZКYÓšTÏ–[ΘcÓžYÔš[×–`ÝžZ¹’Zç¬vå¨pã¯qä³wæ¯qã«kã¥iÞ¢iÛ¦fá¨gã«káªháªkà§lÞ¦iã«kâ¬nÞ©lá«iàªiߦmä¥hà¥_ݦaݦbߤ^ÜœVØŸWÛ¦aÝ£fÞ¤gݤdÛ¡`ܤdÞ¢cÝœ^ÜšVؘWÒ˜VÔ˜QÖ\Ù cÙbÖš^Ø›^Ø›ZÖ˜V×™YÖœ^ÙždÛ gÕ^ÓœXמYØžZÔŸ_Ô¡bÚ¤bÚ£jئrÙªjÕ¢cÒžbØŸaÙ\Õ›XÏ“XÏ•[ÕcÓ™_×£gÙ¥hÔbÓ¢hÕ¥fÙ¢dÛ£gÙžeÕœc×¥jÙ¡iÕšbКZÐ]ÓžgסhÕŸjÔ¡qتrبrÓžaΚ\Õ¡fÓ aÏŸeקuÞ±~ßµ}ᶀá·á·{ß³}㶃久޵zÖªrרvܯ}Û±xß³zß²€Ü±väµuè¹}â´tà­sà±sß±oß®v߬vÝ­uÝ«sß©nߨmߪnÞ¢cÛœ^Ù hØ¡gÕ bÖœaÖcÓš_ÖœZ× `Û£là¨iÝ¢aÒ˜WÍ’PΓZÕeÑ [Í™NË’PËRΖSÍ“OÎWÒ˜^Ò˜[Ò•[Ò•\Ë“ZË’TÍ’MÊIÊ“KÊPÈŠTÊNÉ’QÍ–NИTΘ]Ñ•XÎ’XÉWÍ”QÑ•RÏ•^ÏžbÖ¤jןhؤkÙ£mÒ–\ÊQÈ‘UÈSÈQË–YΟfÖ«yÜ­‚අá´xÛªqÙ­tÚ¬oÙ©nתsÚ¬yݬrÖ¨oÕ¡kÒ^ÍZЛ_Ò^Ñž[Ë–VÉ”TÇ”SÄŠPÊŽRЕWÏ“[ΓXÌ•Z͘\˘T˘SËš^É–aÌ‘YÌ”WÌ•RÇ“QÈ“TË–XË•WИ]ÓgÑšcÓŸiÙ«tÙ­mÚ¬oجtÓ«tÔ¦zÖ«yØ®uÕ£rÉ™dÄ•ZÈ–_Ö©mâ¹vß´yÚ­wÒ©tЦv×­Ö°|Ù±{߶~ݲ~Û®‚Þµ|ݲjÛ¨lÙ³xܽ{Ý´|ݳ€ß·…ß°~Ü­zÙ­}Ù­{Ú®xÙ­xÙ°{ܵخ|Ô©pØ®và¸â»Þ¸Ü²}ܲ{Û´zß³{ݳ}Ú²zÜ´|ݳƒâ¸ƒÞ¸Ü²ܲzÛ²wݲ{à´yݲzÙ°}ܳ~Ú²wÛ¬{Õ­zÒ¬nѨnÓ­wÜ´vܱyÛ²€Ý³}Û´zÝ´|Þµ€Ü¸€Û´|Û´~ݶ€ß¹ƒã»ˆá¼…Þ¼…Û¶ƒÛµ€Ö³zÕªwÙ°xØ°vÙ¯xڶضƒÚ´Þ¸‚Þº‚Ý´€Ý³~ܸ~Ø´vÔªqÚ¯yÙ³yÔ®v×°yØ°sÕ«qØ«uÕ¯zÕ®vÙ²yÚ´}Ú²zÖ°vÖ®vÖ«vÔ¨rÒ©pÖ¬wÖ¨vÒ¥rÕ©sשqØ«uÛ®xÙ°wÛ²|Ûµuرr×­tÖ«rÕ­uÖ®uÙ¬qÛ«sØ«sÕ¨lÕ¨eРaÍœi΢nÍ£hÑ¢gПeПhÔ¥rؤmצmÒ¤oÏšgÌ•WÈ•UÉ–^ÅUÁŠLÆUÈ”UÄ’TÅVÅQ‹LÊMËQĉTÄŠNŠK‹JÄŒI‰I‹KÄŽQÇUΚ_Ô¥dÎZÈ”QÆ‘PÌ“RÓYЛTÒšVÒ YÏ›PÕ›SÖZÔ–SÒ˜WÑœ[ÏžVÉŸVΣaѧgѨhرqݵtÚ´s×°qÙ­xÞ³xà·xâ³}â·zÝ´vÛ°wÞ·tá·uá³{â·~àµ|Ù®yß°~á®yÕ«pدxáº~ߺtݳrݲsÝ°mݯqܱoá°nâ¬kÝ®iÞ®là®hݬfÙ©lÛ©gتeÙ¬dÛ¨gÚ¨jÚªdÚªaÝ©^ܨ[Û§XÚ§Yקa×¥^Ö£\Ø¢[Ö¡ZÒ SКTÒ›^×¥bÒ£[ÏZП_ÎœWÑšVÔ›\Ô™XÔœ\Ô¢bÙ _Ø¡`פ`·‘Zå«iߧkà«mä¯oå­kç¬dæ©dâ¨gߦdà¨câªgå©lå¬jãªfâ¤fá§gáªlá§gá¨eà¨gܦ^Þ¦aÞ¡hÜœbÜ [ÛŸ^ÙœbÝ¡[à¥XÞž\ÝžbÛ¢cÜ¢`Ý£aÝ hÙŸ^ÓRÑ–OÓ”RÕ˜W×]ÙŸ`ÚaÙžbØ›^לVÖ\Ú gÚ¦l×¢eÓš^Ò˜[Ô—TÓ“TÒ˜UÑœVÓ X×£_מbמcÖŸ[ÏšSΖXÑš]ЙXÏ”PÌ‘QÏŸbÕ©rÔ§s׫yתrÕ§jÖ¦mÙ¨rݬvÝ¥nÙžbؤkܲڦkÍ•XÍeÖ«pÞ²yâ³yá³uà²wà³{á·~Þ²|Û¯xÞ¹z߸{à´}ḅⷋ䴄á³|à´}â±{ß³|â·„çµâ¶xÞ²vÖ«vׯvà¯x߯{ݵyá¹xä¶zä´xæ³vå°qâ²oâ®pä¨tã©tߨmߦkÞ¦jݧlߦlÝ¡cÙžbÖ cÙ cÙaØž_Ø jØ¢jÖ aÒž`Ò eÚ¤gݦfÖ™^Ñ”VÑ_Ö¡bÔ™\ΕRÉ’NÍTÐUË‘QÊ“WÍ•XÏ•Uј[Ϙ[ΓTГOÏ‘QÌ“OÍ“QÍ‘WË’UÍ–QÌ•QË•UÍ^ПbÕœaÔžcÔ¢k×¥nÙ¦o×¢mÚ¤pÛ«nÖ§kÖ¢gסcΕ\ÈŽZÍ•ZË•VÏ™ZרhÚ©rÚ°Þ¶„á´}Ý°xÜ®|Ú°€Ú±|Ù­vÖ§uØ¥vÜ©rÙ§sסpÖ gÑ cÔ lÔœdÍ–ZÅRÂKÈRÇŽPÈQÏ–XΘ^Í‘ZÎ’XÍ–YÍ—UÍ—WÌ•SÊ“OË’RÏ“\Ñš_Ìš\Ë—ZИbÎœgΙfÒœiÔ¢mتtÛ«xÙ¦qÖ¦mÕ¦m×£nÑ iÑŸeÔ¡gЛdÍ•bË”]Îœ^Û°x俈徆à³Ù¯xÛ±xݲ{Û±}á±âµ~ß³yâ´~à¶~Þ´zâ´}嵄廈ḃ޵~Þ»ˆß¹ŠÛ²Ý¶€à¸„ß´ƒÞ¶~ß¹ƒâºˆà¶Þ´{߶€ã¶~ã·|Ü´|Ù°yÙ®vתs×°|Þ»Þ¸ݳƒÝ³ß¹~Þ¹€Ü¶{Û´{ׯt×°wÛ³ݱ}Ü°Û±|ܲv×°uÒ¯uÖ©vÔ¦wÖ°z߸ƒã¶~à¶~Ý·‚Þµ}ݸwÞ¹€ß¹}Ù¹{Ý»…ß¼~ܺ{㼄ἈẆểݸ€Ø®yÒ§nÖ¬uÛ°Ú²€Þ¶…áµܵzÜ·Ú²z×°{ݳߵÖ¯rШnÕ®}ײ€Ø¯}ݱ|Ù³{ر€Û²{Ù²wد{Ûµ{ݵ‚Û°Ø®uÕ«xÖ¬{×®wÖªvתtÖ«p׫qÖ¯wØ°yÙ°wدxÚ®xÛ±zÙ°xÓ¨nÓ¨sÕªr׫oÛ¯vÛ°uÚ«uÚ«rØ«rØ®tÖ¨hÓ£lÒ§vÑ¥lСiÌeΛeÒ¡oУjÑ dКaÉ•^Ç”PÈPÈ‹ZÄŠRÀˆOÊQÄŽPÄ‹KÃŒKÅKÇŽIÅŽLÂRÄ‘TÅRÅMÇ“MÇLÄŠDÆŠFÈNÊ‘QÌ•RÏ™[Ì”aÈ”\É“PÊQ͘WÎœRÑ›TÖžQÒ M×¢UÖ¤`Ó¤eÙ¥fשdѧ^Ì[ϦaØ­gØ«hÚ­uß°xÞ²vÖ­mϧlѧyÖ«zÙ¯tدsÙ¯sß³}à´ß³|à´yãµzà¶vâ¶rã¶|ß³}Ý®qÛ­kܳpÞµoà²sÞ±uß³pá³oá±qá±sà±mÞ®oݱoÞ±kÞ­jÛªjÜ®hÞ¬cß«cÚ«eÔ¢dÖ£aÕ©bÚ¨aÜ£bܤaÚ§_Õ¦cئ`Û¦\Ù¥bØ¥gÕ¡aÔž_ݤjÞªpÚ§jÚ¤eÚŸeÔ^Ó\Óœ\ÕŸaØ£eÙ¦`Ù¢[Ùž_Öa»Ž]á§fà§dߧbâ§käªkâ©`á§_Þ¦\ÜŸZÜ bߦdߦbÞ¨eݨdÝ£`Ü£hߥlá¡há£hà§mà£hÝ£_ÚŸ`Ú˜YÜ™Zן^ØŸ`Ý fÙž^ÚšWÞžcÞ¢bÚ£dÚ£eÞ¤^ÜbÕ–\Ô—WØ›bØŸgÚ eØŸbÙŸ]×YÓ™YÏ”^Ï—`Ø¡bܤgÖžcÖ—^Ôš\Ï›WÓ–UЖVϘVÒ™_ÕiÖ¡hÒš`ΑQÌGÈ‘JÉ”TИ\Ï”ZÓ™aÚ«wÚ±xÜ®tÛ°tÛ­xÚ§wפnÙ¤kÚ¦qמqÓ™gרuá¶Ø¨lÌ—hÖ£zâ¯~á³€ã·äµ{㶀溇嶄â´~ã¹幀彈罇清丆ä´à¯{à³á³~ß²zß³à¶â¹ã³{Þ¯xḂ幄å³{â²}à±zà°oâ¯qá¯qÞ®oÞ¬hߨkÞ¨kÛªjÚ§bÚ¥`Ù§cÚ£bÚ¢kÙ£jØ]Ùœ]Û¡dלZÕ˜YÕŸ]×¥`Ô\Ó›\Ñž`ÑœaÑœbÍš\˘XÓ[Ò›ZË“ZÊ‘SÍ”NÊ–[Ë“YÍ‘QË“^Í•`Í—WΛXИVÍ“UΑWÑZΖbП^ÐWÈ•UÊ’QÎ’QË”WÎœ[Ñ ^Õ£kÙªpÜ«vߪ|Ù®vØ«oÚ¤jÙ¦kÔ¥sÑ£kРaÌša̘^Ïš]Ï]Ö£há®{àµÞ³|Þ²Û¯zÙ§sÙ¦qÕ¦nÖªxبvÕ¡pØ¥vÙ¨uاlÕ¤gÓžgÓ›jÖ£hÓ›]Æ‹PËSÅŒOÉPΔVΖTÍ•VË–WÉ”QÍ”WÍ”\Ê‘SÊ”QÌ—RÊ“TÈ•\ÎœbÑ›aΙ`Æ•`È‘\̘`ÎcÒ¡kÓ¨rØ©mÙ©lÓ¢mÏ›kÑŸhÐkÈ›lÈšeÒžfפmÓ¤hÒ¥rÔ«yÚ²{ݺ„ῌ㽈áº}à¶}â¶~㻄㼈ã¶~à°zݳݴÞ²€áµâ·†Þ¹‹ß¸ƒß²~Û³{Ûµ|ܶ~ص€Ú°Ý±~Ù¶ƒÙ²ƒß³~Ü°|Ù®zܳwÛ²{Û¯rÚ­jÔ©qÑ©uÓ¦lÓ©sÚ³}ز|Ö±€Û³}Û²~د{Ô¨vרvÙ¬wÜ°wܱyÛ±vÝ´zÙµ{Û®yÚ­yÕ±vÖ±wÖ°xÛ²yá¹}ྃใḃ޺‚Ü´yܳ|ÛµƒÛ¶ݹݷƒß¸€á¸‡ß¶ƒÝ¸€Þ¶„ܵ۶vØ°wÚ´}߶}ß²Þ¶}Þ¸yÚ³xÜ´{ܶzÖ¯|Ù±zݲuÙªtÒ¤sÓ©qÖ­sÖ¨tÙ©qÙ­uׯu×°xÖ³vÚ²zß²{Þ³~ܯ~د{Õ®~Õ­}ׯxÙ®yÓªsЧq×­|Ù²zÚµzÚ°€Öªt×®rÚ±€Ø¬‚Ó¡pÒ¤jÖ©rÙ¨tÚ©rשpÖ¥pÖ¦rÕ¬rØ­uØ©vØ«uÙ¯uÕªkÓ¢hÌšbÄ—`ɘbÇ—^ƘXÈ•RÅNÈ‘XÌ‘WÈNÆQÈŽRĈN‰KĉPÄŠRÇUÉTÇPÄŒPÇ‘XÌ–^Ì‘ZËŽOÈŽHÅ‹JÄŒOÃPË“TË–ZÉ“VË•UИYÑXΘSÏ–XÌ–[ΙVОQ͘RОaУaР\Ö¥eÔ§gÒ¡^ÕŸ\Ö¦gÚªmáªrÞ¬pܱtà²yÕ¬pЧnÕªrØ®sÔ«lЪm×°rß´và´zÝ´s߶u߶~฀à¸Þ¶yÛµzÛ±qÙ°nÙ°xÚ«rÛªmÜ°oß±qÞ¯mÛ°oá²tÞ°lÛ¬jß­mß°gݱgܯnà«nÞªiÛ®hÙ¨bØ¡^Ø¥aÚ«^Ü©`Ü¢_Û¦`Ø©dÖ¡\Ù¤\Û¨`Û¥\Ù¢[Ø¡bÕ¤bئdÞ©gÞ«eÛ¨hÜ¡fÚœ[ÔœZÓ \ØŸ`ÙŸgÙ `Ø[Õœ\Ö\»\ä¡eâ¦aÛ¤`Ú¥jߨrߦhÜŸYÛ›W×–UؘPלSÙ \Ü¢fÝŸdÝŸ]Ý¡bÞ¡fÝ£_Û£^Ý¢`Þ¤_Ü¢[מZלbÚcÖš\ÓZÙ¡^Û`ØžaÙ^Ú›]ÛfÙŸdÙ¡`סaÕœ]Õ™[ל`ÝŸbÚ¢_Öž[Øœ]Ûž^ØšWÓ•YÖ—ZÙŸ^×¥e× cؘ`Øš_Öš`Ö™]Ô˜YÑ•VÒ™]ÕcÔŸc̘XÈŽMÍŽNÌ“WÍšdÙ£iÝ«ná²}ã´…â±|â­zâ®}ä±zàªtÖ¢mÕpÒ›mÍ™dÏ¡bÛ«sâ²€Û¬|Ø«zá³{ä¹ã´€ä´yã¹~㶆峅嶃䵀ã·}á·|ß°€à­€Þ²߸€ãµ€ß²}àµ~â´‚Þ³߲ᲄ㵆᳆ߴ‰ä¼è¼‰ä¹}ä·yä³uâ®qá¬rߪkÞ¦bÛ©fÚ§hܪkÝ©jݨdݦfÚ¢bÖ¡`ÕžaÔž^ÔžaÖžbÖœ`Ó˜^ЖYЙ[Ó™^Ò˜]ИVÑ™WÔ`Óœ_Ï–WΕZÓš[Ò“WËŽXÌ“UË“VÍUÍ•WÌ—VΛZÒžZÒ–XÌ[É“ZË—VÌ™TϘTЛ\ПbΘ_Ë™WÍ›VÍ”WÊ”[ΙcÓž_Ö¥jÛ¬yݬtݪtÞ­vÜ­nÛ¨nÙ¡oÖ mÕ¥nÓ¢hÐfÒŸjØ hÕ£h×­sݲ}Ý°}Ú°vÛ°sØ©lÑ¡hÏ¢hΞgΟmÒ§nÔªiÖ§kÙ¨iÖ¦bÑœ`ÏbÓ¡eÔ¢`ΖWÅŠTÄŽXÉ’Q͘YÏœfÑ›`Ï—YÉ“VÊ•VË–aΓ_ÍUÉ‘TÊ”UÍWÈ‘YÉšcÍœeË™cË™bΠbÕ¥hÖ¨oÕ©pاlÙªpÞ±xÝ®uÒ¬qФjÑšhÍ›iΞfØ«mݵqß³xß³Ù®yØ®xܶ„ߺ‡à¹à¶|ܱvÙ«yÞ³ƒã¾„å½à·Þ³|⹀⺇ݶ}Þ¶|ං޴{Ø®zجyÙ®vݳuÞ³uزzÙ±~ݯ|×°zÖ±vÙ°rتsÕªuÜ®yÜ®yÖ­xÕ°x×®sÕ«rÕ­uÚ°vÙ®tÔ®qÔ©qרvØ®xÑ¥sØ«uß´{Ý´€Ý±wß³xÜ·|Ù´yß´|ܳ|×´Ù³‚Õ²yÛ¶yỂ޷}ݳ}Û´ƒÛ¸€Ù±yØ®xÛ°zݲzܳ{Ú´~ݺ†à¹ƒÝ´€Ü²€Þ³à¹ß·€Þ³€Þ²wÛ²yܳ€Ý²{Û¯}×°|Ûµxà¶|ݲ|Ú³zÞ¸wÞ³vÕªvÕ¨sÖ¬oÕ¯sÛ°xÚ®xجvܯvܲyر{Ö³{Ý·~Ûµ{Ø®yØ«}Ô­wÕ¬uÖ¬vÔ¦pÏŸmÍ¢rÑ¥uÕ§tרyÔ¤tÔªsÖ¬vÕ©wÏ¥lÌ¡gËŸmÍ kÏ£gРjТuÔªrتpÖ©qÕ§rÖ¦pÖ§mÖ¦kÓ¤mÍœdÇ’\Å’ZÄ’TÇ“VÈ”TÅ“RË•ZÏ“\Ê’UÆ”TÄS‡MÁ†OÆŽTÊ”[Ë•\Ì”WÊTÈQÈ’PÉQÊ‘QË–QË’OËLÌMÌJϘRКYË‘RË‘OÐœYÔž^ÔœZÓZИUÍ—TÍšYÊ—WÍ›\Ò¢cÒ _Р`ÏŸgÓžfÚ¦eÙ¯mØ°vÞ®vݲv߶{㺅޴z׫oÙ­xá³{Ü°qÕ¯wÚ³}Þ¶sßµuà±|à³xá¶xå»}å¼~àµyÛ°mÛ²qÛ³tÛ±nß³pݱsÞ­qâ¯sá°tß­sÞ®sÞ²jß°iß®kÞ®qß®sܬoß­pà²oà¯hÚ¦bÖ¥bݧd߬cÚ¥`Ù¡aÚ£dÙ¡cÙ¡a×¥\Ú¦]Ú¥]Ú£ZÙ¢]Ö¤YÚ¤YÚ¦dÙ¥lØ£eØ [Õš\Õœ^Õ¡XÖœ_ØŸdÖ¡\Ó™YÒšXÙŸ[¹ZÞ¡\Ü¡_ÛŸXÙ™VØ™`Üš[Ý—NØ•IÔ“PÓ–WÔ”PÖ‘QÙ–YÙšWؘWÚŸ[ÙŸ_×™]ÙšZÚ™ZØš\ØŸ[×—U×—ZÖœZÓ•RÒ’SטTךRÑšUÔVÖ˜TÕ—UÓ•VÓ–YÕšWÖ›TÔ›[Ó_ÖŸ_מ]Ñ›ZÔ›WÚž]Û ]ØœZØ›^Ùž_ÙžaÖœ\Ö›XÙœ\ØXÔQКRЖWÒ›cÔžcÕ£iÑŸeÐaסfÜ¥nܲzâ¸æ¶†ä¸‡ç½†ê»Šê¼…轄鷂å­{Û¨xÚ©xتvÓ¦rÖ¨yܲ‚ß³‚à²à´ã·…áµÞ²}ä¶á´‚Û°€Þ±xà°yá³~廃߳׬wÚ¬xÚ«|á³{ãº}á·}âµzáµ|à²Þµ}߹㸅㳂᷇㸊å·}á²t߯tá²oá°kÞ¬jÛ¨eÛ¨eÖ¦e×¢aߥdݪfܦgÞ iÚŸfÖ›\Ô–^×›bÖŸcÔ›`Õ™^Ó–ZΔVÍ“UΕWÍ–ZÑ–]Ô“\Е\Ϙ[Ï•UÏ“ZËŽYÊŽOËTÉ’RÇRÈ’^Í–ZÑ™WÓ_јZÍRËVÌ”ZÊ”SÎ’TÒYΓ[Í—\Ê•TÌ•TИYΕTÊ•XΚcئmÝ®sà«lÜ¥iÚ¨tÛ­uÙ¨uקuÙ¦nÚ©mÖ¨oÒ¢kÖ¦k׫tتvÚ©oÖªuÙ­}Û®~Ö©xÔ¤nСeΛbΙdÍ–]Ê–\Ò£mÜ®vÜ­uÚ¬tרmÔ¥lÔ¦pÓ¤lΟcË—YË•RÏ–\ΖbÇ—]ÎœaÓšaΖZË“YÆUÃQÈ•WÊ“ZÈŽXÇYÅUÀ‡KÂTÍ¢bÓ§gدw߸€à»Ý´~Ý®wÞ­zß±€ã¹€ã¾€à¶{Û®rÖ«pÕ¥qÙ©yݳxäº|躃ä·yݳvݯ€ã¸‰ä¾ƒÞµ{Ù®uÖ¬qÓ«vÓ°}ݸ€â½‡á¹…ḂỆ޹‡à¸€à¶€Þ·‡Ý¶{Ú³vܯzÞ­}à³ß²yß®vß³zඇ߳„ܳ{Þ´€Þ²{×®vׯvد{Ù°‚Ý°€Û®€Ù®€Ø±}ÚµyÙ´vÙ±zÖ­|Ù¬~Þ°zÚ°sÞ²}à¶ß·uÞµtß³~à´{Û¶uÛµsÞµ~ݹ…ܸ†Ü¶‚Úµس|Ö°uÖ®sÖ°wÚ²xÚ®v׬tÙ°uÞ²€ßµ‚ÙµzÚµ{Þ·|ܳ{ܱ{޳ܴ|ܳwزyÓ¯vÕ­qدvس|ײxØ°yݵ€Ýµ~Ù³}س}Ú³|ݳ~ܶ~×µzÖ²xײxÙ¯wÙ¯sزqرvÛ²{Ù²xØ®xܳÝ´Ù°|رwÖ­qÕªnÖ§mÒ¦nÍiÆ•`Å•_Ș`ÊžeÍ hÒ¢kСjΣfÒ¦gÔ£oÏ¡nÊŸeÇšaÉcТpÓ£rÓ£lÑ lÎjУfÑ£eÏšbÐœeϘeÈ•`Å•XÈ•QΙYϘ]ËSÈVÈ—YÈ“QÆŒJÆ‘PÈ•ZË”YÏšZÏŸaΛ]Í–SË–TÉ’UÅPÅLÅ“NÄ”NÇ“NÈ“RÊ’QÌ•RÌ–V͘WÉ•WÈ“UЙ]Ò\ÍœUÏ¡[ΟTË–QË™ZÇ™[Ëž`Ñ£dО\Ñ]Ô£gÖªkÙ­mÚ°jÛ­mÚ­uÞ²sáµzÞ·xÜ´sÙ®uزvßµ{à´|Þ´yß´yÞ´{Û²€Ý°zà³và·zÞ¹zà»zá¹{ݯmÙªjÜ°tÞ²nâ³iã²hÛ­dÞ¯k߯nÚ­nÞ¯lݯf߯b߯iÜ«mà¯h߯kÝ­mß«bÛ¨d׬lÙ©jÙ§lÚ§dÛ§aÜ¢iÝ¢eÛ¥]Ù£\סZס[Ö¤]Ø¥\Ø¢bÕ¡fÖ¤eÚ¨dݦeÚ¢]ÕŸ\Óš^ÔšV×UØ_Ö¢]ÕŸ]Ñ›aÑœ\Øœ]·Ž^Ù[ÚšUÙ˜NÖ›YÖ—ZÔ–VÒ—ZÕ‘WÑŽUΑUÑ–XÒ•UÔ–UÖ™ZÔ–X×”UÙ˜VÕ˜[Ö˜ZØ›ZךVÕ–TÒ”WÒ—UÔ˜UÔ”TÓ“RÕ”VÒ’UÑ“QÒ—TÑ–VÒ”PÒ‘OБWÑ™XÖ›ZÖšWјZЗ]Ó˜VÏ—QΖXÖŸbÙ¡aÕ™^Ô—]Ö›TÕ˜QÓ•WÕš\×ZÕ™XÓ—UГ\Ò˜cÖ¤kÚ¥mÛ«rØ­xØ©xܯ{ä¶}渂异ä½á»‚仅纅ä¹~æ¹ä·‰á´ƒá´zßµ}ݳ€Ü®|ß±~ⷅ⸋âµäµã¹~ã·…á²€á±zá°~Þ¯€Þ³|Þ³xÞ´€äºŒç¶‡ß¯„Ü°}Ü®~ß±„ß²~Þ¯Û°ƒÚ´}ݲyݱáµã³}á²â¶‚㶃â²~á¬sã«qâ­lß«gÞ©gÝ¥bÙ¡aÙ¢bÛ£`ܤdÙ¤eØ¥`Ù¥c×¥dÔŸ`ÖŸ_Ú¤hÙ hÖ^Óœ^Í•]Ì‘YÎ’ZÌ“aÑšfÕžeÒ™^Ó–]ДYÊ–ZÍ•ZÏSÍ“YÍ—YÍ“NË”QΙ\Κ\Ι]Ϙ]Ε[Г\Ï™ZΙWÏ•XΖYЕUГPΓMË‘UÍ’UΖU͘YИZÒ hÚ­wݯyÞ©uÚ¦rׯvÜ´zÝ­xÚ¬rÙªrרrÕ©pÙªqÜ©vÙ¨sܬoÝ©hÔ¢jÕ¦o×¥oÎhÒhÙŸjÒdÔŸeÓ jТjÛ«pàµvà·xÞ°wÛªsتs׫nÐ¥dɘ[Ë•`ÒžeÓžbË•]ÃaÆ[Ì—VËœVÍšUÈTÆUÈ“TÇNÉGÀ‰K¾‡K¾ŠOÈœeÕ¯qà¶⸅佊澎ߵ…Þ³€ã¹ã¶€àµ€â¸ƒâ·…ã¹ã¼€áº‚à¹ßµz㷃鿋ç½áµܲ{ܶy᷅ᴇݲ{Ù°x׫wÍ¢kѨrÜ´z߶{á¶á·Þ¶~Þ¸€ß»€Ü³~ܳ~à¹ß¹‚ß¹†á¶…à²ßµ€ß·…Þ¹‰à¶†à´„ẅ็ݵƒÛ¶yÞ¶zܳ|ܲÝ°€Ú²€Þµ‚޸ش|Ö°xÚ±xß²xÞ´vݲzã¸ßº‚Û¸|àºå¹†ã¸ƒà¶ß¸‚่߶‡á´‰â¹†ß¼„඀ڬwØ­sÞ³yใฃ޳~Ú°zܲ{à¶Ù²zÛ´⺃á¸{à·{ã¸ß³€Þ´Ü¶~Û³€Þ·ߺ}߶~ݲÛ±}ݱݳ€Ü±yÛ³{ݵßµ€Ý±€Ú²{Ú³yÚ²vܳyܳ~ݶzÚ¶|ܳ…Ú²{Ö°xݵ}ೀܱ„Ù²}Ù­wÙ¨uÙ¯tÖ±uÔªmСdÍŸeΟjÓ¢pÓ¦rÒ©rÕ«tÖ«n×®o×±zׯyÖ®vÕ±{Ô«xФqΣlÍ iȘfÓbÅ–[Ä“UÃXË”aÑ™bÍ–_Ê‘VË‘UÌ“XÍ”XÍ•TÈ”WÉ”[Ë•W˘UР`Ô£oÓžhÕžfÔ¡hΞbΖZГVÊ•QÅMÇŽNÉ“PÈ“TÇQÊPϘRЙTÍ”UÏ‘TΑRÊ‘L͘SÔŸZÓ›QÖ¡Y×£[ÒœRÐœZТ\С]Ñ¡bÓ¢`Ó¦cÕªpÙ¦kÙ©dÖ¨cÔ£dÑ©fÖ«mÞ«tß°tÛ­pÝ®tܵ{߸{⹃ṅ߶~ݲyÚ¨nÕ¦lØ°uÚ®uÙªoÚ®qÞ³wà°pÝ°kݱpß²oâ³nã±mÞªfÛ§iÝ«jÛ®dݪaáªcß®iÞ¬káªhà­là«kà«gܬjÞ­jݯgÛ¯gÞ«^߬\Û®bݨ`ܦgܦhÚ¤e×£bÙ¢`Ù \Ù¡`Ø¢d×¢d×¢fÚ©kÞ©nÝ£gÖŸf×cÛž_Üœ_Øš[ÔbÕŸaÓ^Óœ^Ø\»Ž]Ö˜UØ–RÙœVØš[Ô“RÐ’NË“PÏ•TÔ“OÐLÔ“XÕ—VÑ”MÓ–TÕ•WÔRÒ”WÔœ^Õ›]Ô˜UÖ—ZÖ–]Ó˜YÕ™[Ö™UÔ•XÔ’ZÓ”PЖSΓXΓPÏ”PÏ’VÏ’SÓ•RÕšVؘWטUÑ”SÑŒSÑ”RÔ˜TÔ\Ô‘UÑ•SÑ‘VÎQÊ‘QÏ•UÓšYÓš_ÓšXÑ–PÍ“ZÑŸhשtÚ¨rبsÙ«zجxÛ¯wà²{㶄䶈㶃á¸Ù­~Ô§zÙ­yݯwÚ¬tݪrá®yá°{ä°{ã²}à³{ßµ€â¶ƒâ¶€ã·|丂幊䵂ݯzÚ­{Þ³}ݳzܲvÞ²{Þ±~àµ{à¹ã·Šãµƒà³áµá´Ý°ݱ~Þ²Þ®~ß°|ã´ƒåµã´záµ€ã¶|æ²sà³rß°oâªnà¨kÝ£fØ£_Õ¢XÚ¡]ܨi×¥kצcؤ\Ö¡bØ¡jÕ›cÒœ[Ö¢dÖžaÒ™UÏ™TÍ™TÍ•OÌQΑUÑœ]ÑŸ^Ñ›]Ï–[Ë”UÌ“RÏ—QÊ”MÉ‘PИYЙYΖXÏ•XÊ’TË‘OÌ‘PÉ“SÍ“VÑ–[ÒšZЛVÑ—VÍ”YЙ[К^Ë”WÊ”TË—VΙY×¢fÕ¢eÓ iÙ¦uÛ¨uئnØ«xÜ®|Ü­qØ«oÖ¨tÔ¡pΟkÒ¥kÛªqتmÔ¨iÕ¤hÕ£kÓ¦sÓ¦jÕ¢iÓ¦mÕ§kÖ£nÕ¢rפmÝ©sÝ®{Û¯xÛ­uݬtפmÍŸaÊ™`È’[ÈYÉ—`ÍŸaÏ¡\Ê™^ÈŠ_ÉTʘV͘_Í—^ÉRÇŽOÆ“TÄIÀ†DÄSË¡fЦtÚ°ß·…㷄帅⺇à·}ݲvܳyá¶߶…ܵ…ݶƒá¸„á¹ã½~ãÁŠã¾Šá·{ã¸|澆æ½ä¸…Þ³„Û³|ß·€á¼„ߺ~ݱvÍ¢kÅ›eϦrÙ°~Û³„ݵÞ³xÚ´zÚ¶|ÞµyÚ°yÙ¯|ß²€ßµ„Ü·€ßµz߸yཀසߴ‚ݶ}Þ¹{á¹}à¸}Þ¸Þº}Ü·|Û²}Ù¯ƒÜ²~ܸ{ܸ€Ý¶ƒÜ²€Ø±|ײ{Û±yÚ²{Û²|Þ¶€Ýº}Û¹‚ๆ㻆ἅ༃ệ㻈⻇߸⻂佊廉㸂ߵ⻀⼇ݴ…Ü´€Ý¹ß»{Þ¹}Ù±zÛ´‚㺋Ẇๅãºà¸}Þ¸}Þ¶‚ß¹†á»†å»‡à»ˆÜº…Û´|Ú­v×­x×°zÚ²zÞµ|Û¶~سװ|زyÚ­{ÚªxÜ°wÞ²}Ý·ƒÚ¸}Ö«tتvܶ|ܶ€Þ²|Þ´|سzÔ«pÛ°xݶ{رyÙ²vÙ±sÖ­yÙ²ܱ{Þ±zÞ³|Û²}٭٭~Û±zܱvÚ¯yݳ}Ú°yÕªvÔ¨oÍ¡^Æ™XÆ™[ÈœYÓ\ÁRÊ“RÈŽU¿…MÀ‡KÇQΚQÎW̘]ΓYΖZÏšZÕ¢eܨjÕ£cÑŸcÑ›aΗ]Ê–XÉ“VÅSÆŽLÈRÇRÆNÊ‘VΖ[Ê•TÊ”RË”QÊ“QÈ’UÈŽVÇŽTÊ“TΘWÓaÕž_ÑœYÖž`Ø¡eÕ¡aÒ¢bÑ£dÓ¥bØ©hÛªiÚ©eקgפgÔ¦gѦfÙªmÞ¯uܯnݳtÞ´|Þ±~ã·uÞ·vÙ­yÚ¨qÓ¥fÒ¥eשpØ«rÕ§m×¥lÛªqÚ®pÞ±và±vÞ®mÝ­j߬kÞªgÞªjÞ«hÞ°dÞ­fÞ©hÞ¬cÜ©aܧiݬkÙ«iÙ©gÝ­hÝ­jÛ«`Ù©`ݧdÛ¨aÙ©eܨiÚ¦cÛ¦bÚ£bÜ¥`ܦfܤ`ؤXÕ¦bÚ¤bÚ¢^Û©jߧeÛ¦bÙ©eÚ¥dÙ¢`Û¢bÙ¥eÖ¡a×›]ØœbÕ^ØœV¼ZÕ–WÖ™UÕ—UÕ”\ÓYÍŽQÎNÑ’QÒ’QÍLΑVÒ”WÏ’NÒ“PÕ“QÔ“TÓ”TÓ˜TÔ”SÒ“SÔ›_ל^Ùš`ÚœhÙ¢iÚ¢eÚžbÕš[Ó”WÓ‘SÑ“UЖVјSÑ“RÒ•SÓ—VÓ’YÔ“VÓ“TÎMÑ–TÛšfÖ•aÎ’VÌTÌNÌ’QΚ]Ô¤kÖ§yÛ©xݨnئoÙ¦nÞ¬oá«rݨsؤnئpئqÛ¨pà²}඀à³yݯ~Ú­ÙªuÔ¨pÚ¬sá°~Ü­zݯz㳄ã°}â³}á²}Þ²yÞ´{᱀ᲃṀᶂ᳄à²|Ý®zÛª{Ú«sÖ®uØ­wÚ¬xÚ«}Ù­}ܲ€á¶~à³{â³{æ¹~ä¸à´~ß·à¶ß°á¯zæ´|ã³zá±täµxå²yã­tä®má¬kÞ¦iÛ¤eÙ¤`Ù¡[Ú aÜ£dܤ^Ùž[Ó `Ó¡cÖ¡gןdÓ—[Ñ“^Ø›hÖ›hÏ•]ДRÑ”TÑ™YÏ™XÌ’UÍ“RГSÑ“PјSÑ–WΕQΓRÎQΑQÍ‘TÍ“WÓ—[Ò–ZË”UÍ”^Ò”aГWÏ’TΖYË™XЙSÏ’TБXÔaјYÉŒMÇVÉ’U͘UܪpܨxÙ¤rÞ©rÛ¥oÜ¥pܪpÙ¨uÕ¤qÒ¥jÑ¥fÔ¡gÒŸfÒ¢gÙ©sݪvÙ§qÕ¤nÔ¢iÕ¦hÖ¨hÖ¨lÜ´}á²Ú¨rÒ¡lÑŸoØ©rÛªtÔ¢mÍ›dÉ“bÈZÄŽQÀŒMÁŽPÓSÊ“SÍ—ZÍš`Í–YÍ•XÊ‘UÇ’TΚ[ј]ÇŽSËNÆMÄLȘ[Ö­uÝ·Þ¹ƒâ¶€Ý®xÛ®vܳ~ݱ~ܪrÙ¬rݲ{áµ€ã¹â·ܵ~Þ¶‚â³ß¶~ể漋弉侄什仂áºá·€ã¶€å¹zá¹yݺ|ܵzÕ¦mѤm×®|ݳÞ´‚Þµ†Ü°Û¯|ݳvݶuÛ±yÜ®yÝ®wÞ¯xà®}ß®}ݲ}ܵ}Ý´€Ú³}Û¸~งⷉṄݶ„Þ¹‡ß¶ƒÛ±wÛ±zݵ~ݹ~ᴄ㶅ܷ|Õ°|Ó°|×±uÕ¬vײ~伇乆ߺ‡áºƒãµâ¹ˆàº…Þ¶„ൄáµ}ệἉ㻀彋亇߸ݻ†ß¼…ຂ޵~Û¶zÞµ‚ᶅܴ‚ܵ…ä¿âºŒâ¸ˆåº‡áº‡ß¹„߶ݼ‰Þ½ˆàº…ệ߸ƒÚµ{Õ¯sÕ«rÚ¬{߯}ݵvÙ³zجzÙ¯vÙ³x×­z׬zÙ°~Þ²Þµ|Ú´{×­{Ø°}Ý´„ßµ‚Þ¹~Ü·zÛ²{Ú°wØ­vÚ±{ܵyÜ´{ܵ~Û¶{Ý´}Þµ{Ü´{á´~â¸}Ú³|׬zÙ«v×­xÙ®vÛ²zÚ²~Þ²{ܯ}Ù­uÚ¬nÖ¬tÔ¬vЦoÍ¡jÒ¢hÏ aÆ—XÄ—\Æ—\É—TÌZÍ—[ËUЗ]ÒhѤg×¥jÔ jÓŸaÔš^ÐœcΗ\Ë“Y˘YΛUÍ–RГXÓœ\ÍšXÊ”YÊ’VÈ’QÉ‘VÆ‘QÊ‘NÎ’PÇNÉŽTÌ–YÑœ[ÕŸ^јYÏšZ×¢`ÕŸ]Õ\Ö¢cÕ£eÚ¨gÞªgÚ©]߬cݬhÖ©gÔ¡fÔ¡eÜ«qÞ±wß´xá¸u߶pܵsݶwÝ´vÜ°mÜ­jÜ­oß²pá²{Þ²xà²mß³pß´yâ·vÞ³lÚ©kÙ¬kÛ¯kß­mà®nß­qá®oß«cܪ\Ú­^Ù¨\Û£aÛ§jÚ©bا`Ú¨fÞ©eÛ¥^Û¤_Ú¥bܦ_ß©^ݨ]ܧeݪeÚ§]Û¨_Û©eÙ¤b×£]צeئh×¥dÙ¤d×£dÖ¥gÛ§gÚ¤^Ù¤ZÙ¥bÙ eÓ›^Ó›WÕ›UΕQÖ›Uº“XÔ•V×”SÔTБWÔ‘YÔPΔIÏ—MГRÏ“WÒ“XÒTÏ’SÒ”TÖ—ZÕ–\Ò’UÓ•RÓ–UГZÒ™`ÖŸeÛ¢jÜ¥kÙ¥fÙŸiÙfÔ™^ÐQЖSÓ™ZÓ•VÓ•SÐ’SÒ”PÒ˜TГXÒ•RÑ•RΓWÏš[ÕaÙ™^Ô‘QÍŽPÌ’SÐœ_Ú®uà·{Þ±€ß±€ã´zà¯vÝ®oÞ«rߥxߨuߪuÝ«nÞ­vß­ƒÜ¯„Ü­vÛ©oÙ«|ܲ€à²}ä²}ã³᳃àµÞ³|ܳ~Þ²{߯yÙ­{Ü®}ᰀୂ߭‚ీీۮ|ج~Ù«׬yÕªsØ©uÕ­xÖ¬}Ú¬~ݱ|à±Þ°ˆÛ¯ß¯}ã¹ä¹ƒã³ã¶à´zâ°zâ´{áµzà²vß±uã°qá­oà§mݧfܦfÛ¤gÙ¢fØžd×bÖŸ`לaÚšaÕ˜ZÒ–WÕ™]Õ›cÖšcÏ“OÊ“RÕgÕ™[ДPÏ”SΖUÒšYÏ–XÊRËŽTÍ”UЕWЗ]ЕWÍNËWÍ’YÎ’VЙ`Óœd×eÕžkÏ•cÏ“\Л^Л]Ï–YÌ–WË”WÊTÊŒQÌWÌ™^ɘWÈQÉ‘WÊ–[Îiת{Ü«xÜ«yÛ¬xÖ¥pÙ¥jÝ©hÛ¥kÕ¥nÕ¡kÒfÑœdÑ™^Í”^ЙjÛ¥qÙ¡lÕŸjÖ¡lÕ§sØ©qÛªt߸†â»„ܪpÍ—aÈ—aУpÖ¦rÐ`Æ‘YÁ‰NÀ‰L‰QËKÃŒRÆ•`Ì”ZÊ“WË—Z͘^ÌŸ^̘[Í’\Í•[Ë–]ÆSÄŽQÈ–WÍŸ`Ø°t߶yÞ³yܱzجxØ«yÙ¯rÚ¯tÕªyÒªoÚ¯qÞ³yá·å¸à´{Ú°vدuØ­v×­yÜ´~á»~᷂ⴅᵂ޵߶~â»ä½…á¸߶{à¹à¶zà°qݲxß¹⸂ߴ„ßµÞ¸€Þµ}ݵ{߸€áº~ߺ|âµß´Ù³zÙ°Ö±}Õ³uسxׯ}ܯzá¶|à¹߶|Þ¶Þ·€Þ·ܷܵ|Þ¶|ßµƒá´à´ƒÝ¶Ó°uѯvÛµ{Ü°vß±~缅绀⸀༂ໂṅ㻊à¸Ý´}ݵ}Þ´„ß¹Šá¹†ãº‡à·‚ܯyݳ{ݶ‚ܲ}Ú²vØ°{Ù´„Þºˆã»„ß½}Þ¹€â¶†Þ¸ßº„Þ»‚Ù¶{ܶxß·yÞ²|ß´{à»Þ¹‚Û¶€Ü²Ø¯|×°xÚ°{ݲzܳwÚ®~ٮزÚ³|Ú³zÙ±xÚµ{Þ¹}Û¶€Ù¯|Ú²z۶ݶ„Û·ƒÝµƒà³‚ܯ{Û±yÛ³|Ú²tÛ´qܸxÚ³vܯsÝ°xÙ­yݲzÞ¸}Ù°yÙ«wÚ¯tÙ¯oÛ­sÞ¯yÞ¯zܲz×±t×°tÛ²vÙ­xÛ¬yÙ®xÕªxÛ±yÛ´xÙ¯uÔ§nÅ–U¿ŠHÅYÉ‘YÌ—T͘^ÒždÖ¤hÙ¤mÖ£iÑŸeÔbÓŸeΘaÍ—WÎXÑž\ÓžWО[Ι]ΖUÉ“OÆ”OÈ“VÈ“RÉ”MË”RÍVÊRÉ”WÉ•WÌ•ZÓš_Í—[Í”\Ñb˘XϘVÕžZÓ¢^Ö©eب^Ö¢bÙ¥kÛ«eÝ«fÔ¨iÌ¡`Ó¤gשqÙ±rß·xÛ¸yÛ´rܬoÛ®lݵqݵtÞ´sÞ³|áµ{à¸rßµwâ·zä¶{äµ~á¹uÞ²sܪuݬj߯nß®qݪjÝ©kÜ©jÙ¨aܬ`Þ­bÞ©eߪdݪcÛ©jÛ©kݧdÖ£_Ô¥gÚ¤gÚ¦aÚ§ZÖ¦`Ú¥fߥfÙ©hÙªcÚ¦_×¢^Ù¦]Ü«hÚ¨lÚ¦bÕ£`ÔžeÖŸcÖ¢^ØŸ^Ù]ÖœYÔšTÓšRÔšYÕšR͘OÒ˜\¸‘`Ò“UÔ”XÒ‘QÒ‘XÑ’YÑ“UÔ”YÕ•TÔ”NÏ“SГUÑ’QΑVБVÖ–XÚ™[ד[Ö–]Ö›aÕ™YÕœcÕŸmסjÖŸbÒ˜[јVÓ˜OЖQΔMГOÒ“WÔ–ZÔ•TÓ“LÑ–QÔ™YØ”ZÖ“QÓ–TךWØœWؘYÕ™YÓ™\Ó˜cÕžfÙ¬zá·†ä·~ß³tÞ±vá²}á²xÜ®zÝ­€ã±}âµ{ä¹{ç»纅縃ᵀݮ{Û¨rÙ¨rá±z布仂乄ᲅݬ{Ú­uØ©tÚ¨uÛ¬yÛ¨xÛ­uß®|ݪxÚ®z㵂᳅ޮƒá³~ß¹}Þ±yÛ«uÙ©qÛ¬|޲ߵ~ẅ㸄ݳ„Ø«yÙ­{⻃è¹{â´}å¹€ç´zä®sä¯vã²uà²nÜ°sÜ®vݪlÚ©mÙ§lÙ¤cÖ¡_Ö^Öœ_Óœ_Õš\ÕcÓbÒ–XÑ—^Õ˜aØšaÕšdÏVΖOÓŸ]Ñ™^Ï–VЙUЗWÏ—VÎVÇ‹TÉ“W͘X˘TΖSÏ“UÉ“VË‘OДWÔ dÕ£jÕ¡fÓ£bÓ^Ê‘YÆWϘYÒ˜]Ï“XÍ–SË“[Ë‘WÈ“NÇ’VÊ™]Ìœ^РgÕ¦pÒ£nÕ«rÚ±uÖ°uÙ­uÝ«xØ©wÛ®tܳxܱ{Þ¯uÚ¬pקpÔ kϘdËZË–[Õ¦pÙ©tÙ¦lÜ¥jܯuß³uà²yẆ㻈ܮxÐkПgÛ¬oÞ­wÚ«nÔ¦nÓ¢kÒ¢cПcÑaÔ eؤkЖaÍŽZÏ™YË›\ÊšeСkÓ©tÑ¥nΟeÌž`Ï¥eجr߯yä¶á²Ü«zܯwجuÚ¨sÝ­rÜ®tÔ¦oÏ£mÕ©vÚ­zÜ°€à´ƒÞ²vÙ°qÛ«pØ©mÙ¯qÛ±uÞ®vá²~฀᷂㸀ã¸|弃åÀ‡ã¸ß²€á¶è½€ê¼ä¹ƒá»…㻄à¸yÞ³|ßµƒÞµ€áµ}ä¹}߶€Ý³}á¶|޵جvÙ¯uÛ³vÙ°yÙ®|Ø«wÙ¯rÞ·zà¶}Þ³zÞ³‚ⶈ޸ƒÝ¸~Þ·}Þ²zܲ~ൄ幇ీګyÜ´‚ãÁŠá»„ß¹€ä½‰ã»ƒß·Þ¸ƒã»ä¼ƒá¾ˆâ¼Šà·…ß·„Ý´ƒßµà¼Ý¹~ܲzÚ®{Ù±}۵ݲ~ݳƒÚ´„Ùµ€á¾ˆèÁ⼋߽ܸ‰Ö²{Þ¸Þµ…Õ¬xÖ®rÙ²xÛ±}Þµ€Þµ†Þ´à·á¶†Ýµ„Úµ‚Ù²ݰೃ޹|ݹyݳ€ß°|ß²zÜ®}ܲ{ݶ۵‡Üµ}Þ²ݵ†Þ¸ƒß³~Þ´Úµ|Ú°zد}Û¯~ݲ{Ùµ{Ù¶|Ü·{ݲƒÞ²‚Û²uܵ|โ۴zÖ­vÖ­tزtÚ¯zÛ®{Þ´{ß³zÛ­xÙ¯{Ú±uÙ¯uܯuß®sÝ°xÞ°uâ®sáµ€Û¬uÆ“W¸†MÀŠIÅ’OÉ—YÏ›\Ó iÒ iØŸf×fΘ`͘`ÑbÏ–WÍ“SÏœ\Ó^Ñ™XË”QÉ’OÊ‘TÊ“RÊ’RÊTÇTÊ“VÍ“VΖYÌ—[Ï•UЕWΙaÒ _ÐUКWÓZΕSÈ—SÍ UО]Ö¥eÖ¦aÕ aפiצdÛ©gتlÑŸ^Ï `ѨjרkÖ«oÛ®rÛ«nѤbÕ¨hÚ²tß´zá³xß²sß³u߶yà´uäµxå¹zâ·pã¹pã·qâ°sá®qß­nÞ­nÛ«kÚ«hÝ®jÞ­hÞªhß«há­fá«cÜ©cݪiݨdÛ¨`ÚªcÜ©dܨaÚ¨^ß©^Þ¥_Þ¦_ܤaÙ¢aÛ¤[Ú¢XÙ£aÛ©oݪlà¬bà¬iÝ©lÛªbܦdÙ¡cÖ [ؘXÔ›WÕYÙ›^ןaÖ ^ÒšWÕV¼^Ò•QÐMÏPÏ“UÎ’VÓ—TÖ™]Ó•XÍ“KÑ“QØ“\Ô”\Ó–XÙ\Ú¡cØ¡jÖfÕ›_Ö›WÔ—YÔ˜fÔžeÒ›ZÑ•^Ñ’`ÏŽUÌ‘RÏ–TÐ’TÍŽQÌQÏ•YÒ•\Ó•UÑ•RÔ›[Û¢bטWÓ•TÖ™\×›ZÖ™aÓ•ZÌ“VÒ™dÙŸkܯ|Ḇᬃà®{ß³xá±uá³xݲ{Û²}Þ²~Û±{Û²~Þ¶…⸀仄㹇߷~ß³‚Ý°~ݳ|á¶}à´…ã´‰à²|Û«vÙ¥vÖ¡kÙ¥mÜ°{Ü´}ß²~á°|Û©yÙ­ᴅⵂá¶ã¶€äµå´‡ß±ˆß±â³€à¶…ຄ⾅佅á¹Ý±yß®wä¸{æ¶qà®qÞ²yà¬oà¤lÞ­mß®kÞ©lݪdܦ_Ù¤dئjØ¢bÙ¢^Ú£aØ_ÕšXÓšQјWЗ^Ñ•`Ñ“TÍ—VΚaÓœ`Ó[ЗVÏ–QË–UË–^ϘcÍš\͘UÉTÅKÆŒOËTЗTЗXÍTÌ“SÌ’OËMÍ–SÓ¢aÕ_ΔWΙWΓTLjIÈŒFΕQÍ–TÌSÈŒPÊ’XÔœgÑœiСjÏ¢oÍ¡rÒ¦sÓ¨tÔ§tרpרoצpÛ§uß­{߯~Þ±}Ý°xà­yà°zܯxÙ¥nÕ¢lÔ§qÔ¡lÖ¤mÛ±uݳtÞ°vß±}à¶~á¸yâ³wâ³zÞ³vÙ°xÞ­}á²{àµà·}á·zß°|Ü­yÜ®zÜ°zÜ®sÝ®tݬvÕ¢kÐœaП`Ñ aÕfÔ¥m×®tÝ­xجsÔªoجoܲvßµ€ä¶…à·~Þ²và°vß­vÚ«vÖ«rÑ¢lÍœiÌ dÍŸbÐ¥fØ«oß²€Þ·}á´xà®wݬtÞ²wÞ´zÚ­yÚ´wâ¹{湃㺆áµã´{ãµ~à´„ß³€à´}æ·æºzã¸}á³€áµyá²uà²vã¸tãµzݲvÞµxß´ß°|ß±yÚ¯pÕ©oÙ®uß´Þ²ݲ{ß³à³vàµvã¶{áµ{Þ³|Þ²~á´~ܲ{زvØ´zÙ²ƒß¸…ãºß³zܳ}á¸èĆçÀ€â·‚ḇ߶ݳvÞ³zá·~ߺ}Þ¼|ß¿Ý»†à¼‚Û¸Ö®}Û°xß´{Û°‚۰ܳÙ±€Ü³}ݶ}à·€à¼áÁ†çʼnãˆâˆãÀ„Úµ€Ú´ƒÞ¸ƒÝ´{Ú´yÖµ{Ú²|Þ³€Úµ‚Ü·†à¹†Þ¶€àºƒâ»‚à¸|Þ´~Þ²ˆÞ·†ÞºÚ·€Ú¶{Ý´yÛ±}Ø®zÚ´~Û¹ƒÛ¶‚ܳzÛ²€Û³‡Ü´|ܲyÛ°zد~ׯzÙ¯uܯ{ݲڵ۲ܱ€Û±€Ý®}á®{ß³|Ù²wجxÖ«xÓ¨rÕ§nÛ°vÛ±}Û®zØ®uجuØ­vØ­tÛ¬oÙªvÙ¬yÜ°pܯwà±vÝ°nÊŸ^¼‹H·…J½ŠRÆUʘ[Íž]Л\Θ]̘\ÇXÈŽTÈ“TÅOÈ‹PÉ‹MÅ‹LƉKÈIÂŒQÈ’WÈ•SË“QÉQÇ’TË’TÉLÈMÈ”WË“ZÍ•WЙ^Ñ™_Ì–SÐœZÓ¢]ΕUÑ’SÑšRΙWÓ^ÖŸ]ÔŸ_Ö¦eÚ¦dݧdÛ©eÕ aÑ eÔ§nÕ¤jÔ¡fبoÚ«l×¥dÑ£eÕ¨dÛ­jÝ­sݯlÚ°oß²uä´xâ·vÞ±nÞ§hÞ¬kà³nß­j߯jܯiܪkÞªjÜ©jÝ«lÛ¬gÞ­fà¬hà©gÞ¥jÜ¥gݧdÛ¨bܪaÞ¨hÝ©eÚ§cÛ¨fà­_Þ§\Ù£`ܨ`Û§\Ú¦_ܤ`ؤbܨjß©kÛ§dݨeã«jß©mܤjÚ¤_Ö¢\Õ`Ô_ÕŸ]×ZÙž^ÖŸcÕž^Ùž^»aÖJÑJ΋OÑŽTΖ[Ñš`טf×”dÖ“ZÕ•\Õšdמ_ÚŸaÞ¡gÚ¡dØŸaØ›_Ö•WÛšRÕ˜MÑ“WÔ•_Ó“YÔ—VוTÒMÎNÓ‘\ÔYГTГPΓNÎ’NÏNÐUÖœaߨkלeÑ”\ј^ÓŸ_Ö jÔŸnЙb˘^Ñ¡eß±}縆ã³~ᰀ組淄ⵂà±{ݲ{ݵ{ݬyÙ¦yÕ§wÓ¨vÙ°}ݳ„Þ±‡ã²ä²{߯zÞ±~᳄⹈ⶇã±ß°|Ü°{ݱ{â·縇㴄޲{Ý®vÚ¯wÞ¶}弈鹌岈ⴂâ³{Þ°}߱㴄ఀ߯‚᷅滅繆â´}á²xä³wå­nà¨eÜ«eܧlÜ¥lߪjãªmÝ£jÙ£kÝ¢hÚ¡dÙ¢eÙŸfØŸhÚ¢iÙœfÔ™bÕ—^Ó•\Ζ^Ε[Í”SÍ“VЖYÔ—`Ñ—[ΔVÎ’WÌ‘PËQÍ–a͘dÉ‘XÊŒPÈŽRÌ’RΖTÕ `Ø fÏ“YÑ’VÓ•\ЖXÑ–]Ï–]Ê’ZÇ‹VÆŽMÊKÊŽQÌ‘UΘ]Ì•\Ì‘VјTÕ`פmÚ©rÞ«vÙ¤rΟfΡhÏ kÏ¢lÕ¤lÖ¡lÖ¢mÛªrß²|âµ€â¯}Û«xß±uã³xá±xÛªoÚ¨o߯wß°xݳzá¹…ß·Þ³{á²€à²ß´yà³rݳuݱrܪoÞ²yã¸~ä´â°€á²~ß²{Û¯|Ú¯€á³}à²|ܱwݱrÚ©rÓ¤oשmÙ¨lÚªtÛ­vÙ¯uݱ|Ú®xØ«pØ«tØ®ݳ€á·x߸yÜ´x߲߮„Þ¬xÞ®tÙ«pÕ¨lئl×¥nÙ­vß³~布載踇ã³âµ|ⶂṇ㹂佀åÀ€å¼~â¹{áµ€ã²záµvà¸}޳߳à¶}ß²{à¯|Ý°}Ý´}á´{âµ{ã¶|Þ²rÛ°qÚ­yØ©vÙ«tÛ¯tÙ«rרw׬yݱ{ãµ€ã¸á¹{߸xáµzãµyá´~Þ³Ú³{×°‚Ù®zÙ±rسyײߵ†á¶…Ú°Ù°vÞ¶ƒå¿’àÀ„Ý·ƒá´…âµ€àµ~à¶~á¹áº…伋伋á¶à·ß¹†Ú°}Ö­uØ´ßµḀߺ‡Þ³ß³~Þµxá¸y⼃ὅຄ޶ƒß¶‡á¾†ßº€Ú³…ݳ‰Þ³„Û´€Û´Ûµ‡ÛºŒÝ¶ß·~ß»„้ฉ⸄â¶áº{á½~Ị߸‚Þ¶{ݶƒÝ¸}Þ¸{Ù¶€Ú¸‚Þ·€Þ´Þ¹zÝ»~Þ¹†Þ³~Ù²wÙ³zÚ¬xÚ°|ײ×±yܳ}Û±}Ø­tدrÚ®wß±~á²Û¯„Ú¯zÛ°oׯsÙ¬uܯuÞµ{à³}ܲwØ°xܱ|ܲ~Ú°zÚ®tÙªuتtÙ®{Ù¬|Ù«pÕ¥lÈšb½Pº‰SÂXÈ—Vʘ]Íœ_ÏŸ_Й`É•Y½ŒIµƒC¹†E¼…F¹}?³z7³~9½‚DÄŽRÅ“YÅPÈ’MÈQÉQÏ—YИ^Ë•\Ë”YΕXΗ]ΖYΔTÏ“WÌ”XÏ›`סcΔTΔUÓšYÑ™[ÓŸfÔ¢`Ó ^Õ¤dÚ¦dÝ£fÚ¨kÖ¦jÕ¥hÙ­o×±iС[קjÜ°rÔ©jÓ¥eÖ¥iÛ¬p߯qÛªiÚªlÞ±vâ²rß«oÖ¥cÖ¦Zݪhß­vß«nà®eÞ®iÜ«oÞ¬jß«fÛ«hß«e߯hÜ°iÞ¬jÛªjÞ©hß©bÚ©fÝ©hß©gÜ«lÝ«kݬkß­hà«eÚ§gÛ«kÝ«eÛª[ß©]Ý£bݨh߬hÞ¨cݨiÞ¨lÞ¦gÚ©kÙ¦gÙ¡_ÕŸbÔœ`Ôš_Öœ^×¢`Ø¥bÕŸ[ךZ¹‘\ÓSÓPÓ”OÕ•QÖšXØŸbÖ›cÖš]Ø`ךeÙžgÛ§lÛ¨nÛ¤dØž_Ó—]Õ•VؘYØ–X×–VÙ™aט[Ó–WÕ–^Ö”UÐNÏ’QДVДWÑ‘TÎUʈLȇGÌŒKÌQÑŸeá®{ܨtÕ¥j׬oÚ¬vݬ€Þª{Ü©qÚ¨uÛ°|ෂⶅá°ã°~âµ}à²~Þ«{Ù©xئxؤtØ¥pÖ mÒ nÑ¥oÕ¨pÚ­pÛ®qß°yⳀⳃâµã¹‚⹊ṊḀޱ{Ú¯{ݱ~ß°}à³xâ¶|ä·‚á´ݯyݳ潋꼇ãµ{àµ~඀޴}ß´â³|Ø­uÜ­vâ¶~â²yå¯xÞ°u׫p߯uÞªiÚ£fà¨iÞ§cØ£aݨcà§eØ¡^Ö¡\Ú [ÚžZך[Öš^Ø¢eØ `Ó—TÑ”TÑ“VÍ‘UÎVДXÑ‘XÍŽYÍ—VИQÍ’TË’UÏQÍPÊPÌ’SËUÅŒNÆPÏ–\ÒfÔŸhשqجmÔ `Óœ]Ï—[Ì’QË“PÊUÆŠOÆKÈŽIÉ‘SЗ[ΖZÌ”YКZÑŸiÒ rÙ¨nÛ­jÞ±qß®rÖ¢kÒŸgПeΚdЛgОkÙ§rß°tÛ°mÚ­tݬ{Ù­vÖ«qÔ­uرzݯyÚ¨vÖ¦x׬vÜ°uܲzáµ}á³vÜ­jبlÙ«tÞ±}߲߹y߸yÞ°yݱwÞµ|à´}ݯ~Û­zÚ¬vÚ¯wÚ°yÝ°ݱzÚ°yÞ¯{ݬrÕ¥pÚ«xÞ¬xÝ®xÝ´yÛ®tÙ¬xÚ®xÚªpÙªkدtÛ±€ß¶†ß¶}Þ±zÞ±Û°|Ø°{ݱzܲxßµ~万ä¹ä¼}ã¶}å¶{澃ä»á´zß´xßµ|ᶀ⹀但忈ä»{ßµzÚ¯yÚ°sÛ²yÞ³zݶ{ßµ{ß­rاsÖ©zÙ«tÚ°vݱzà´xà¶yß±vÜ®rØ«nÛ§mÛ¨qÙ«lÙ©nÙ«sݬxá±àµ|á¶}ãµ|ã³}å¸}á·yܲxÛ¯tÙ­uÚ®uجqÖªwÖ­{Ö°tÕ®tÙ«yÙªxÛ±zÝ·}⼃ག߻~滂侀伃㾆⿆æÀŒæÃãÁ„â·á´Þ¸…Úµ|Ø®zÛ²~ݳ޴„ݺÝ·€Û¶‚ÚµzÛ´zÞ¹|Ý·}Þ±~Ú­|×­ݳ‡Û´‚Ù³{ܵÚ²ײ€Ö¯‚ٳܹ€Þ¹‚Ý·Û¶„ܵ޵„ߺˆà¸†àº„á¼à¸„෈ݷ„Ý´ß·Ề߹€Û·Þ¹~ã·à²{Û²tÚ¶wر|×­wÙ¬uÖ­yÙ°xÚ¯yÙ°zܳxÚ±yÖ«vÖ«sز{س~Ý´ݯ}Ö¨wÙ¯}ܲ{Ú­uÛ®yÞ¶{߸vÙ­sÕ¥vÚ«zÝ­yÛ°x×­wפqØ¢hצkÕ¥kСbË^ǘcÅ™dÊžcÒ¥iÓ¨iÔ¦lÖ¥tÚªrتjÍœ]Ç•T¿’Q¸‹Jº…F¸„E¶‡H¼RÓUŘWÀŽQ¼…H¾…M‡JÇŒLΖTÕŸ`ÓhÒ¡eÔ¡^Ð\Îœ]Ï–]Ï—`Ïš\ΖZÏ–UÉ’OÈNÌ—TЙWÖ™YÖ\ЛZÓ™[מ`צ\Ù§^צnרlÛªsÙ«sÐ¥dÖ¤pݯpשfÖ§jØ­hÛ­lݬkÜ«eÝ«bÛªbÜ®dÝ®iÕ¨hÓ©cÜ°g߯kÜ«oݬoÜ«gÚ«kÝ«gݦbÛ¦jܪhÝ­cÞ­iܨfØ©`Ý©bÞ§gÚ¬fß­bߪjÜ«pܬgÛ©eݨjߨeÙ¨fÙ¥dÛ¦cÙ¤iÚ¤cÙ¥dÙ¢jÝ©bÝ«\Ý©fÛ¨jÝ©jݤhØ bÕœ\Ó™^Õ™[ØœZÙŸcמfØžcÓ]ÔšZ¹ZטYÕ–SÕ–SוXØ›YÙ bÚŸhÛŸhןeןfÛ¢mÚ¤mØŸ`Õ˜XÖ’ZÕ”]ÙœbÜdÛœ\ÙŸ[ÙšYÔ“UБTÓ’TÑ”OÐ’LÖ’JÓ–MЖPÑ’PÌŒPÆ‹IÍ”XÑžiÔ¤qÛ­zṀ了䶉ⶋã¶á³„â³~㶅㸄涃ã´á²xã°~à±{Ü®zܮުvÙ¢iÔ¢gÑ hÏžoÒ¤rÕ¦qÔ¢rÔ£pØ«tß´}á·€Þ²~ß°ã³~ã·}乂ⷂ޳{Û­vܬ{ݱ{Ý­vÚ¨}߯…ä·…â¶á®€Ý¬~ß·…佋à³wâ²u渂帀巄ෆ߯|â®zâµ{ã³tà¬pפhÑ£bجiݨeÞ£_ߦdÙ¢_ÕžYØcÛ j×bÕœ]Ø bØžbטXÕ—XÖcÕ˜bДZΔWÏ’ZÏ’UΑOÌ‘ZÌ“ZÍ’WË“TË’SÊPÊPËQÊ‘MÊPÊUÍ•\͘]ЙaÒgÕŸlÚ¢kÞ¦oÚ¤oÖœlÓ–`ΕTÉVËVÐ’RËQÈQÌ’QΘYΚ^Ï™bÓœgÔ¢mשlÝ®pá±zåµ}ã³|Þ©uÚ¡mØ¢j×£gÕ™iÔœmקrݬzÝ©tØ¥kÓ¡mןkÛ¡hÔ¡jÌŸgÒ¥mÚ¬tÚ«mØ©nÕ«qÕ®tÜ®yÞ­vßµ{àµ}Ü®xÜ°~඀á³~ⶀä¹å·߸{඀ೆݶ„޹ܴ~Ú°{Ý´{߶€Üµܶ}ݳ}Ý®yÚ¬xÙ­{Ý°uß³tà´|ݳ~Ú®yÙ©zÙª}Û«pÜ­rà´zá·}޳ܰڭzÙ¬vÛ±|ݳ{Û°uâµy꿇꽊龈èÀ„罂㺅߳|Û¯yÚ³yݳ{áµäº~å¹ḅߵƒà±rØ«iÔ©pÛ²vܵyÙ°tÝ°vÝ®vÙ§rبlÕ­lÖ«oÝ©uà²|ã²vâ¯pÞ®r߯pÞ°kÞ®nÞ©kÙ«pÖ­vÜ«mß°oÜ°uÛ®uܱuà¶zä¶à³{Û²tÛ²uÚµ{Ú´{Ú­xØ©uÛ°xݲxÙ­vÚ¯yßµvâ·~䶃⹆㼉⹄ݹƒÚ·Þµà·€à¿å„é‰漃á¸߶†Þ·ƒà¼}Þº€ÝµƒÝ´}Ù¶{ܵßµ{ݶ{Û³€Û®}Ú®Þ·†à¹ƒÝµܳ€Þ°Û°ܵ|ܵ|ز~Ûµ}Ù³y׳~ݶ}ßµ|Ý´ܳ}ܵƒß¸„ߺà¶}Ü´€Û¶ÞµÚ³Ù³ݲ~ݲ‚߶‹á¶ˆß¶ƒßµ€ÞµxݵzÚ²}Ø°zÚ°|ݯzÙ¯xÖ®vØ®oÛ­uÙ¯{Úµ|Û±yÕ©vÕ¬yÕ¬xЦqÒ¨o×­pÖ¨lЦiÕ¨fÖ£jУlÖ­qܱqÏ£oËœlÓ¤lÓ©mÓ¨nÔ¦qÔ¥mФgÌ¡lÌŸh΢h΢mÍŸhΣeÍ¥rЦuרrÛª{Ý®{á¶sß³vØ«pÖ¬hÒ©gУgÓ¤gÒ§fÕ©hÓ¥fÊš`‘W¸‡J¸†K¿ŽMÂSÆZÌš]Ô¢gÙ¥lÙ¦rÛ¨pؤhÑ`Ñ£_Ö¤aÕŸVÏ—MÌ‘NÇKÆLÈ“RË—TÐ^Õž]Ö™SÕ™WÕžbÙ¤eÙ¤^Ö¢aؤjÛ«qÜ­qÓ£bÓ¥`ݯnÛ©mÚ©fÛ®iܬeÛ¬fÛ­oÞ«nݬfݪbߪkÙ«l×¢dÚ©iÜ®fÛªgÛ­pÝ­pݬiÜ«`Ü¥eà¥hߪdÞ¯gâ±oà«iÛ¥bÜ¥cÞ¬fݬiÝ«fܯlÞ®lÞ©aܨiÜ©jÞ¨bÝ¥eÜ¢aÛ¢\Ú£\Û¢]×¢b×¥fݨfݧfÛ£dÜ¥hݧkÝ£aØ¢\Õ¡bÖœaØŸ^Ó¡dÖŸaÚ¡\Ù¢bÔœ]Ò—Z¹`Ö˜Y׌NÕTÒ•TГXÖšfÚžnÖŸoÒ›eÓšbÒ›bÐUÐUÏ“TÌ‹NÏŽWÖgןbÒ˜XБSÎQÑPГPÏ“SÒ•TÑ”TÏ”QÏQËŽQË‘WÒš^ÓcØ¢rÝ°‚Ùµ€Ù²ß°…ᲂ᷃à´Ù¯~Û¬~Þ­zݲᯆàª}Þ­{ݲ‚߸‹ä·‹á³}ß±zݮگ}Ý®vÛ­yجyÛ­vß°zÜ­{Ô¨sÔªsೀ䵅ݯÝ­zޯߵ‚å·€ãµ{Ü´yß³{߯€â°}äµ}Þ¯{Þ°㹇㷅ޮ€Øª{Ú²~⻇ⶀâ±zâ³{ãµ渇巇å³qß°lá°qä¬nܨkØ¥fØŸgÙ¦qÙ¨fØ ]Ø _Õ›XÔ˜WÔœaÖœbÒ•]Ï’ZÔšYØš]Ó‘SÍ”SÒZÓ™SΓTË“UÈ”W̘VË“PÊPÌ’]Í”XÍ”RÍSËŒJÈ‹IÈŠNÊOÊŽQÉVÒžeÖ§nÕ¤j×¢jÖ¢dÙ¦gÞ©rÖžhΓZÐ’SÌLÇŽFËMÍ”TÏ•WÍUÈ‘UÏdΛaÍ `Õ¦oئuØ®tÙ©vÚ¨yÜ®sÛ¬qØ©oÙ«mÝ°vß°u߬lâ°uá¶}ߵ߮|Ú¨lØ©hÛ®sß²xÝ®tÓ¤lÓ©rÝ°yÞ¯{Ù±xܳ}à·~Þ´yÚ®vá¸yå¿„áµ}ß´xà´}ݱ{Þµ|Ḇ޷฀䷉万翊辊߶޵}߸}ݵ}ܶ€Þ¹ÝµÝ±|߶vÞ²yÞ­à·…àº|Û²Û°€Ý¯{ڮخ~Ú®vá°{ã´zà·|Þ·~Û³wÙ¯{ܯ{ß­{à¬yá±{澄漅丂罄轂â¶xÕ±pÕ¨oÛ¨vÛ­vÛªsݬwݲzà´zâµ}ß²z×¥kÕ¦hÛ³xÜ°}ܬuÜ­rÛ¨rبqتnÖ¥jاjÙ­qÝ°rݬrÙ«rÞ¯sà²tÝ°rÝ­xÞªzÜ©pÝ­sÛ®uܯnÞ°wÜ«xà¯tâ¶xáµxÞ²yÚ­zÚ®zݲuÞ®sجtÖªrÙ°uà¶wà²sÞ²uÞ´yÞ´yã¸}㹂޶ڳ~Ù­yÕ©tÕ¬}Ú±|߶zẀ⼂เ޺~ß»ƒã¹~á¹}ฆᵀ޳xݲ|޳ݵ~ݹ‚Þµ„Þ°|Ý°yݲ{àµà¶Þ¸€à¶…Þ³Þ·Û·}Ù³yÛ¶{Ûµ{޵ᶄݴ߶€Ý³€Û³~Ü·}߸‚ᶆ߷‚Ú´xׯyÙ­~×­zÖ­uÚ®tÛ±wÝ´ßµ€Ü³ƒÛ²‚à³}Þµ}ݶ}à¶ÞµØ¯tÕ¬rÕ¯uزvÛ³zس{Ù¯zØ®~Ö²‡Ù³Ö«tÓ«oÖ±tÔ«sТkÔ©gÑ©dÇœbЩqܶuЧgÌ¢hШnÍ¥jΡlЦmÕ¬kØ«qÕ©tÕ¬sÕ®zÙ¯|Õ§qÊbÆšcÉšgÏ¢fÛ­oݲzßµ~å·~à´|ݲzÞ³{Þµ~ß·ݵyÚ¯tÖ¦fÎYȘYȘ\ÍeТeÍ ZÑ¡\Ö¤fÖ§gÕ¦eÔ¡eОcΚZÍ›WÍžXÑŸ[К]Í•UÇ‘KÅKÆKÊ“MÌ’PÍ•UÑœXÕ™TÖ›[Ô \Õ YÖ[ÕŸ`اcÙ¨_צcØŸfÕ¢eÚ¬mÚ¨iÚ¦dß©fܧjÚ¥gݨfߪfÝ«cÚªaÙ¨jÙ¨fÓ£^Õ¥fÛ«fÚ«aÞ«fÞ¨kÛªhÚ¬cÚ«gÛªjÞ©gß­cÞ¯dݨd×¥_Ö¤[Ý©dݬfÛ¥`Ù¦dܪkß©iÚ©dÚ¦`Û¥bÚ§]Û¥RÜ¢VÚ¡\Ù¦cק_Ö¢_Ø¡bÖ¢_Õ¡`Ú gá¤hÞ¤fؤ_Ö£Y× `Øž]Õ™WØœ[Ú¡`Ý¡`ÕœWÓY»‘^Ù™`ÓQÓTÑ‘YÌ‘RјW× hÕšlÏ_ÎŽU΋QÍ‹NÒ’VÑVËŠNÌ–WÔ£iÕŸhΓ[Î’ZÒ•]×™dØ™gÕšdÑŸaÑ]Ò™`Иc͘^Ñ™gÛ¦yⵂ㺇᷂ް~ݯ{Þ°yܨvÚ©sÙ«sاvרvÖ¨vÖ§vÕ¦qѧtÖ¬{â²ç»‡ç»Šå·ˆáµ†á·‚㸆⸂ãµ{â°~à²|à¶áµ…Ù­|Óªpزqà³}â±ß±Þ®}᳂绋涃â²z㸄㷆溅辊溄溄帇ഀà®{ß­zݲ{ß´â²yà¯sá®så°vå¶~å¶yá«lܦkÝ«jÞ¨dÝ¥dÞ¨gÞ©iܤg×bÚŸ^Úž^Õ›[ÔWךYÕ˜ZΘYÏ•YÒ˜YÖšVÒ—SÍ•VЕVÒ•UÏ’[É‘UÉ”PÍ—RÌ“LÌ‘MÎPÌ’XÏ™`Ж[ÊRÈ’PÉLÊHË‘OΗ^×£oبvפpÚ¡mÖ¦oרlÛ¢hÓ•^Í‘PΔPΖSϘRÑ’OГPÍ”TÈTÊ“ZÒbÕœ[ÓždÑ¡jÏ›bÏžeÏžfЛgÑdÒ¡fبtݯ~å·å¸|߶€ß¹ß¹|⸇åµÞ±mÚ³v⻅忆ã¸Þ°uÞ®vݲzâ¸{ä¹ãº‡æ½‰ç¼„â¶Ý³ä¸å´‚Þ¯}ݱ}á²{á¶}㶃ä·á¹á¶„ß·€à¼‡ä¾‰á¹„Ý´ƒÝ¶„߶à°{ݲtÚ²tà´~à³|Ü°{ݳ{á³}ß±€Þ®{ß°|Þ³~á·|à·}ᴃ巆à¸{Û³yßµ}ã¹áµ~ß²yÛ²yرuÛ²sá¹yã»}ã¹~å½å½†àµÛ°xتvÖ£oÓ¤lÕ«pدpÞ°tâ³uáµwàµu߬pß­vå¸zå´uâ°vÞ¯tÙ©lÙ¨kبkצkܪkݪjÜ©oݧoÛ¦hÞ¬sá°zß­pߨgÛªfÛ°jß´ráµvà¯qß­sÞ±vá³sáµqÚ®nجqÙ¬tÛªtݬtÜ«tÜ«pÚ­nØ°oß´vã¶~â¶~ã¶|â²{ã´{á¸}Û¸wÛ²|Û®zÛ­mÞ¯sß²zݯsß²vá¹}ܵ|Ý·‚忋㾇ໂ⻀ã»ß´ƒß°Ý´zÛ³|ݲÞ²à±~á´€à¹zá¹{ß´xÚ¶xٲܰzÞ¹}Þ·|ݲxá¸ß¸€Þ¹á¹‡ßµƒâ¹‚㸇޵…ݵyß·|⹄â¸~ÞµÚµ…Ø°}Ù®}Ú²}Û°vݱyÞ²{ݳ€Þ·‚Þ¹‚็޺…ß»„⸀߶{Ú¸}Ø´vÙ²Þ¸†Þº…Þºˆà¹…ßµƒá¶â¼‡â»„߸à¶áµÝ³Þ²}Ù¬rÓ¨uÛµÛ¶}Ñ©pÓ¬tÚ³yÝ°rÞ±rÞµxâ·å¹á¸{Ú²}س}Ý·Õ¨rÉœbÊ›bΤgÖ®pß´v߶yÞ´yà¶ß³}Þ²|ß´Þ²}Ú°tÞ®vÚ«qÖªiÞ­sà°vÞ±rÚ°qÚ²uدnרtÝ®uÚ¯kÕ©eÏ `É•]Ç‘RŠOŠPÄMÇSËVÈKÆŒIÉŽQÌ•QÍ—UÏš^ИYÑ—YÔŸbП`О[Õž]סeØ¢iÕ£gÖ¤dÕžcÕŸfØ¥eؤaÖ bÙ§dÚ¦bܤaݨdÛªkÛ¨eÖ¥bÕ¤dÚ¦hؤiÙ¥dݨgÞªlÞªhݨ^Ú¨ZÙ¦`Ù£hÙ¥fÚ¦cÚ¥fÙ¦eÛ¨f×¥cÖ¢dפkئfÙ§bÚ©cà©eܧfبdܬbÛ¨dÚ¤_ܤ\Û£bס]Ù¥YÙ¤ZÙ¢ZÚ¦aצbÙ©cÚ¥eÙ¢dÜ¥cÚ£aÔŸ^Óž[Öž]ÖžbÕbןaØ¡cÓš]Øž[¹”\ØŸhÖžiÙŸmÛ¡qÖŸiÖ¤gܤpÕ—lË“\ÌYÊ^ÏœeÛ¨lØ¥mÑ j×¥vڬ׬uÚ¬zÚ¬{Ú­uÞ­wÞ¬}Ü«|Ú¨uÛ¦nݦlݪwÚ¬xÛ°x㸃꼌컇çµà°€Û­تtÖ©oÕ§tÖ¤uئmÓ¤lТqÕ¦rÔ¥lÔ§sܱ~ⷄ⸅ീᲀംݱƒã¶‡ä¶‚Þ¯}Ü®~ß±à­yÜ°zÛ­|Û¦vÛ«vܱ~Þ±ä³~ä¶縃èºä¶}ã²xäµyå¹}å¶}é¹ë»…ä·ƒâ³~à­vÜ«xÝ«xÞªpݨqà®xà¬pܦkàªqà­xß«vߥhÚ YÛ£`Ý£hÜ¢bݧeݨdÚ¡aØ›]Ûœ]לXÓ›SÓœWÑ—VÑ–TÒ—OЕQÕ•QЙXΗRÒ’PДWË”QÍ‘RÎVÊPÍ’YÌ”UÇŽOÈŽSÉ‘PÍ•UÑ•ZÍ‘RÈ’LÆGÉ‘OΙ[СiѤoÑ¢jИfË’\É’ZКbÒšbÈŒVÈŠOË‘RÉ“QË”QÊ‘UÉŠQÆQÇŽQÎQÓ™YÐœZÍ–WÇWÆŒWÈ“^Șc͘dÔ hÕ©kÙ­tÝ°xݲxݪvÚ¦wÜ«|ß­xß´}à·‚Ý°vÛ®uã·ƒæ¹ß±vÙªs×­vÚ­}ܲ߸€ã¸‡â¸…â³€Þ®€Ü²{ܳtÛ¬wÛ­߶ƒá¹zÞ¶qܳxݯ~Ú¬x׫sÚ¬yÚ±{Þ·ƒä¸ˆà´„ݸ‰ß¸†ß³yß³zÚ­{Ù¬yß²{Þ²ݳ~ß·{à´Þ°‚ß±~àµ~Þ¸€Þ¸ƒä¸æº€â·}ß·~ß³ݯ}ܵ}Ý´yÙ¯uÖ°wß³yäµ{ß³ã²ã´yݳuÜ­sتtÖ¦oÖ¤jÒ¦kÕªlÜ«oß®pá¯rÞ±{߯qâ¯lä´yä²zÞ®tݯtÛ¦oÚ¡iئnÕ£nؤmÝ­oÜ©kÛ©jÝ«mרiØ¥gÞ¥eÞ§gݧiÝ¢cܤbݨeݪpܧtÛªp߬uß­uܪl×£hؤiÚ©g×­lÛ«nÙªmÚ°vß±uÜ®sÚ±tá¶tã¸yãµ{ã²xß³rݱrÞ²xà¶}áºxà¹vá¶{Þ°zÝ­vß²yßµ|Ø­uÕ¬v⹅丂߶}à·€ä·~ã¸{Þ´|Û±~ܱzÙ°vÛ¯vÝ´zàºzÞ¹yݵyݹ~ß¹Þ¸~Ú´}ß³~à¸{ÙµuÙ²yÛ²zß·~亃߷ἅ徉à·}Ú·xݵ{à³{߸⻂ỄݷƒÝµ‚Þµ€Ýµ~Ü·Þ·ܵ‚ݸŠà¸‡á¸ƒá»‚â¼⺃ຆ߹ݳ}ܳ{Þµ‚Þ¸‡ä¸…á³~Ú¯yÙ°z߸‡ã¿Žâ½ˆã¼~庀⹀â¹}áµy߸{ݹƒÙ°yÖªrÙ­xÞµ‚ݺ‚ß»~㾀⽀⽀áºÞ²vÞ²xݶ}Ö«tÖ¨kÙ®rÚ²yÞ³vݲvÝ°vÚ­xدzܲzÜ­rجtÙªvÙ§lÕ©lÕªpجmÞµvã¹ݳ{Ù±tÞ±oܬnÚªnÛ®tÛªnÚ¦bÔ¥`Ñ¡cÏŸfŘ]Á“W‘RÀMÅOÈIÇ‘MÉ–SÍ›YÑŸbסbÒŸ^Ð_ÕcΘVϘSΕ]Ι`ÓŸ\Л[Ò¡dÔ cÒ\Ö¡_ןeÔŸbÓ£gÙ§rߪnÚ©eקcÙ¥]Ø¢\×¥d×£dפ`بbئgÚ¦bÛ¦^Ù¥cÚ§`Ú§]Ú¦bÚ¦bÚ¤f×¥iÛ¥hÚ¥hÙ£fÜ£kÜ£hܨ`Þ¬dÛ¦cÚ¨fÞªeݪaܬhÚ¨eÚ¤YÚ£_×£dÖ£]Ù¤`ؤcÚ¥eÙ¢fÔ bÛ£bÛ§cÙ§hÞ§jÙ£dÏ›_ÕœaÛ£dן]Ö[Ú¢[Ù [Ôš\×›c·“cÓžaÑœeÛ§pã­uÞ©qÙ¥nØ kÔšjןo×¢mÓ¢jܯxãµ~Ý®uÞ°{ⶉ٬ˆÚ«ⶄ⸋ⶊ希伓ߴˆÝ¬yܯ}ݵƒä¹ˆå¹ƒã´€â¶…ãÀ…ê„꺅ä²â®|᱃᳂ޯyÞ«zÛ­|׬zØ®}ݵˆÝ±†Ü±zâ¸|帅ⵈá²ÝªzÙªzÛ¯yܱ†ß²‹Ý±{Þ¯|ß±‚ᰄ䱅嶅市ã¶|âµ|漄龅伀廀부ç³zà³wß­xà¬{ß²~á´á±{á¯xâ°qà°n߯sÜ«rÜ©mâ©jâ©tݧlÛ¨hݨoܦjߦoߦnÚ¥eÚ¥hÙ£gÙ£dÚ¡aÚ\Öœ]Ô\ÕšZÕ—YÒ˜VКVÒšZÓœ]Õ˜YÒ•YÒ–VÔ•WΓUΓSБQÉLÍ‘PÎRÊŒNÎKÍŽQÉ‹NÇŒNÏ’XИXДXΑWËUÌRÍ’RÏ–\Ó˜aИXÌš]È’^ĈQÇ“ZÏ¥kÒ¢cË’UÈSÉ‘RÌ‘\Í\ÉSÈ‘OÈ’SΖWϘ^ÑžbÔaЖbÎœ_Ô¢dÙ¥nÙ©qß­tá°yß°Þ°}Þ¯vÚ®zÙ¨tÙ¥jÖ©qܬyß±|ܳ€ÜªxצrÚ¬}ß«zÙ§qÖ¦mÕ©rÛ¯wݱxܵƒã·Ý®qרuÙ«~ܬ{×¥kÕeקxݹ„á¹~Û±yÙ­uÖ¦qÔ¦rתyتvÚ°vÞ¶|áµ€à²zÛ²|Ü´àµ~Þ²{Ü®xà´{ä¶Þ¯zݲvá²ä²â·yà¸zßµÞ¶€Þ´áµ€ãµ|á²Ý°~Ý®|Ú¬xÛ°{à²Ý²}ß²sâ¶zÞ¸}߶}á¯|Þ«uݲrÞ¯qÙ¥lÖ¦gÓ§bÓ£gÕ¤mרmÛ­mÞ¯lÚ©fÞ¨jà­sÝ­nÝ«mÛ©kبg×¥hØ¥jÖ¦hÖ£hÚ¤gÝ©h×¥jØ¡dØ _Ô›`לcÙžaÙžcÚœbÕ›UÔZÙŸbס`צ`ت_Ü©bß©jݨkÚ¨iÞªfà«kÙ¨gÙ«dÚ­jÛ¬kâ±oà¶vÝ°xÛ¬uß²tã¶và²yܪyÛ¬tÞµvÞ¸{Ú´}Û²wÝ°zÞ´zàºtä¸}á´ƒÛ¯rÛ±pÛ³yÞ¯qá¯tá´඀á²|ß°{Ú°zØ°~Ù±yÛ®nÛ²u޸ߵ|àµ|ã´‚åµ~七ᶂá¶}ß·{ܳ|×°xÙ°wßµ‚߶†à·€å½…伊ආ޲ƒÜ°‚ݲ߸Ềà·Þ¶‚ݸ„ݶݴ~Ü·à¹ã¼~ß¼€à¸äºâ¹ƒàµ€á¸zá¼}Þ·€Ü±wÛ²wÜ´}ܳ|Û´xÙ±|Ù®}Û¯t߶€ã»á¹ƒâ½à½„à·Þµ‚Úµ~ߺ}廀á²vÛ­uÛ³~ݵ}àµḆ⻂ä¸xá¹~Ể޲zÞ³}â·}á°yÞ³ußµ{á¶ß²tקjתoܲrÞ°sÚ­tשpÙ©tÚ¨v×¥oפsبvÚ¬pÝ°zݲܯsÛ¯gݱpÚ­uتqÙ«rÚ«lÙªmÖ¥pÒ¤nÒ¨lÑ£lΞeÊ—ZÃŒ\ÆYÍ•XË•[ΗYÕ]ÖeמcÕ`Ï™ZΛ\ΖWЗWЛYКTÒ›[КZÑ›\И[ЖYÔœZÔZÖž]Ö `ئdݦdÚ¢`Ø¥Zب`ܦbÚ§_Ö£]פ_Ú§bÛ¦bÞ©cܦbؤ\Ù¥YÙ£^Ù£aÙ£dÚ¥_Ú©\Ü©eÜ¥`Ú¦`Ú¨dܦ[ݨ^Ý«eÚ¨bÝ©g߬jÞ§gÞ¤_Ù¡]Ú£fܧaÛ \ØeØ¡jס`Ù£ZÚ£\×£_Û¤`ߢbÛ¢_Ù¥dÚ `× XÛ¡^à¡bÛ ]ן]ÙžbÙŸaÐœZ×\¾Ž_Ñ›hÈ”`Оià¯{Ü­بxؤsÙ¦yà±ßµ‚ܲƒâ·ƒã´„ß±…ᴉᵈݴ…à°á³…ݵ~Þ²|㹊乇߲ج|Õ«z×­xÝ´zß·{à¶~à³Þ´z߶‚㸌඄ڲ}á³~紃ᵆ޳ƒÝ­~Þ°ƒâ¸‚⻂ᶃ޲ആᶊ㵅㰄ܩ}Û­}Ü°‚ݯ}á²~á·~á¸~ä·~ä¹~踆깂ç¼æ¸ƒã²å¶åµvå°uå®wâ«lß«oÝ®rÛ«mÝ°rß²rà«qß«rà«qߪpá­vã­sÞ¨jܨgÞ¨kݦhÙ¡\Õž\Ö¥cÙ¦fÚ£hÙ£gÚ£fØ£gØž^ÚaÙœdÖ›`Ò˜^Д\Ó—ZÓš\Ó˜]Ó›[Ñ—VÔšXÔ]ÒŸ\Òž`Ö™`Ñ—WË•WÌV΋OËSÊ”UË‘QÊQÈ‘PÉ“TÊ—UÏWЛTË“UÈSÆ‹PÈŽRÈRÌSÎRÄŒWÆ“YËLÆŽWÍ¥sÛ°|Þ±~Ú¬uÔŸ^Ϙ]Ï™cΖ\ΗaÒŸjÖ§oתqئiÕ¤jÕ¨pÙ©rÝ­uá´}幅练过彃à¹záµxß°sÙ­rبvÚ§oרmܬuܬyج{Ö¬tÒ©uØ­uܱpÛ­sÜ©zÛ®{ßµ}ܱ{Ù®~඀ڳwجqÝ°~Ý°ß®rÝ«oÝ«{ß²€á³à¯wÙªqÔ¨rܯxá´}Þ´„߶‹ã¸ˆã´à¶Ý´†Û³„߸}Þµ|ܵ€à»ß´Ý±Ú²|Û°xⶂ乃à²yÞ´}Þ¶…à²{á±xÞ±tÛ«oÖªsØ­uܯz߯|Þ±zÛ´uÞ°pÞ¬pÙ®pÞ°tá±và¯sã°xá°uÚ¨m×£rÖ¤oÖ¦mÙ©pÙ¬rجnÙ¨jØ¢aפaÛ¬rÛ«nÙ£`Õ¢`ן`ל`ÓŸjÕ gÖœWÔVÑšWÒ—SÏ“UÎ’WÑ™ZÕž[ÓšYÐ’UÓ’QΘTЙQÒ–OЖTÒ™ZÕž_ן]ÙŸZÙŸ]ס_Ù¨eÛ§eÑ`Ó¢jÚ¨lاdܬlÞ­qÚ¦jÙ¨nÙ­uÞ°sÜ°rÙ¬qÜ­rÞ³wݲvÚ­kÙªnÚ©rÛ«pܱzÞ²à²tß³uß²~ܲvÙ²uÞ®xà°sÞ°sÛ«vÝ­tÙ°pÓ®lÖ¯jØ°v׬xÛ¯sã¸yá¹yáµyäµxã·}ຄ⺆ൂݴ€Ü±|Û°z߸‚⸄áºzâºz⸀߶}à¶x߶ܵŒÜ¸Žâ¹…ෂسÙ­zØ®}Û²‚Þ²‚޳ᵄ㸃᷃㵆㺄ḅⳈáµ~Û°u׬vØ°sÚ®vØ°zز{Ú®zØ­yÜ°uß´xⶀ߶ƒÞ¶Ú´}ܱ~ß®{Ú®yÙ²uݸvàµ|Ú±xÚ³tà¶~àµ~àµ~඀ݶ}ß´ß³Û±zß³{âµ|àµtݱtãµ{æ¹Ú²zÒ¨mÔ¤oØ«u×®qܪjÛ«dÚ²jݱrܪmÛ®nÙ¯oÛªuݪuÙ«uÙªxÚªvÙªt׫oÔ¨iקlاnÓ¤jΞgΞ`ÏcÏœgÑ¡bΞ`̘^Î\ÏXÑš^Ô¢fÔ¢cЙZÊ™TÆ—UÇTË’VÍ–TΖTÏ›TÐœTÑ—TΓSЗSÏ™VΘTÒ˜QЕTÒ˜WÕŸZפbئiØ£bÖ¡ZÙ¤bÛ£eÛ¥^צ[Õ¥`Û©gܨdܦ^Û¦cÙ£bÙ£\Ù£YמYן^Û¤hÙ§hÔ¨^Û¦`Ù¢eÕ¢cÚ¤cÜ¥eܦhܦiݤdߣbܦ^Ù¤_Ù¡\Ù£`Ù¢cÙœbÚœbØ¢bÕ^ן\Ù¡YÕUןcܤfÚ¡`Ø¡cÖ¡bÖŸ[Û£cÞ£fמbÕcÙ¡`Öœ]Ñ™YÕŸ^º_ܪ{ΟqÏ¢wÞ³‰ß°ŒÚ¬~Ù¨qÙ«t㴀䴃àµ|à´~ᯂâ±~ß¹…㺋漇㽊㸋Ⲃݯ}ݶƒß¶…ܪuÕ¤oϦtΣmÕ§sجyجtÙ¬wÙ«€ß®…Ṋݳ…Ú¬zà±z幂㶈୆ݮ€ß²z߶€à·‚ⷂහീ㳃㸎ã¹ç´…繆㸃á³}â¸~溅鹂çº~å·…ä³}ã²zä³}æ²vá¬nÞ¯sâ®pߨjݨpݦuÛ¤iݤfÛ¢iÞ¨jã±pà¬oÙ¤hÙ¥eܨiߪnÝ«jÜ¥bÜ¢iÛ¢lܤfØŸYÔœZÔ£bÚ¥dÚ£cÙ£bÙ¢d×`Òœ\Ó›ZÕ›YؘUÖ–WÑ•XÒ–XÓ”YÒ‘VГTÏ•\ÕŸiÖ hÓ jئmÚ¤iÔœ_Í”TÌ’QΖTЖQË’PÈOÍOË’WΔYјYÏ–WÌ‘TÎ’XËQÅŽNÌ•\Ë\ÈTÌ‘UΑXЗ_Ñ™c× oß²~߶}ã²~á·ƒÞ³|بtÑ¥mÒ¥jÕ¦sجwܯ|Û«yܬvÜ­~Þ±}ã´{â·}ã»~幆湉仄弄ã¶~Þ¯vÞªtÛ®sرvݬtÙ¨mÜ®và®~Þ®{à³Þ°€Þ®{à°|â­vã²zß·{ݵyÝ®uÙ«pݳ{Û®تvෂ蹄èµ}æ¹ç»ã¶ƒß¶á²}ಂ߳€á³|áµ}á¸~俆仄á²{Ḃ㸅â²à´à´ß³}฀à¼}Þµ{ܱzÚ·}ἄṂܱ{à²{á´~ݳ€×±zÖ¯u׫r׬lجjÚ®xܲ}Ù«mÖ£fÖ£eÔ«kÜ­rá¬r߯uà°tå±qã¯lÞ©iÛ¦cÙ¦cÜ«k߬iß«cÙ¨gبlÛ¦lÚ£fÞ¬gݨhÖŸa×¢b×›]Ò–PÒ˜TÒ—ZÒ”VГUΓUÌ”YÎŒTÒVÓ™[Ô–TÎRËPÌKÊMÊNÍŒIÍŽKÌIÍ‘FÑ–MÑ“QГKÒ˜QÔŸ^Ó›dΗ]П`Ô§dÔ£\Ñ£`Ó jÖšiÖ jÙ¨pÚ©kØ«jÜ«pÞ¬rØ­vשsÛ§oبmبqܦqÙªjÛ¯lÝ­jß­jà´yݱ}Þ­nÜ®tÚ©yÙ¬qݯoÜ®s×®sÒªnÔ¦lÖ­oØ®tÞ±tã¶|ൃá´~áµxܲzà²{à·Þ¸~à·}Þ·{Û³{ߺ‚伈嶆湂âº~Þ·xÝ·yẆงߴ‚ểἅٱvÑ­vײ~ీ߲~ݳzไ㻋㷂㼅㻇á¶àµ‚à´Þ·~Þ¸zݵzß±~ಀ߱}Þ²zÛ¶xß·}ã´‚ã¶ã¸|Ü®sدsÞ¸xݶ}ܯzÙ­sÛ´Þ¹‚Ú³yØ­|Ü°yݳxÜ°~Ü°yݱtݳxÛ³|àµ}â¸~߶yã¸zá¶vÞ´z⺅޵z×±rײuÙ´sÙ±uجuØ°qÙ²wܳvÚ³sÙ¯vÚ¯tÜ®sÚ­qשkÓ¢kÑ£mÓ£jÓ¢qÒ¢pÒ¤lѤhÏ¡lÌ›gÌ™aÍbÏ hÓ¢nÖ¦jÔ¦jÔ fÓ¡_Õ¢e×¢gÑžcÉ•\ÅŽOÅ‹IƉIÉ‘JÌ•QÍ’RÍ–XÑ™YϘXË“TÌ•QË•OÍ™UÕ]ИYϘWÕŸ_Ö£hØ¡gןc×¢dÖ¤iס\Ù£XÖ¡_ÒœaÖŸbÝ¥bÝ¢^Ù¡\ؤbפ_Ø¡XÙ¡aÚ¤cܧc×¥fÕ¡_×¥_Û¢^Ù£\Ûª`ܦbؤaצ_Ú¦bÛ¤fÜ¥jܧhÙŸbÜ _ݪbÖ¦]Ö¡\Û¡]ØYØŸ_×¢\Ó `Ö¡dÚ¦aÝ¢`Ù›dÕ]ÓŸXÙ¢bÛ¥dÖžaÚœ`Ü _ÖŸ[Ñ[×]·]ß°‡Ò¤~Ҧ߱„ᯀ߮{Ú°zÛ¯€á³‚Þ±€Ü°~Þ²~Þ±|ൃ之ⷌ໊幇᳆ߵ‚߳߱‚䵆ᰂ۫{Û­}ÙªxÙ©vÙªwÙ©vÛ©{ß°|ḃ庋踇äµãºæ¹†á¶†à¸†ã¶‡á²á¶ä¶„幀丄㵊⹆仆纈湄ç¹è³}â­sà±sä²vå³xå²{á¬x߯rݲoÞ¯sà¬oÞ«ná­sá§iÛ¡^Û¥aؤgÙ iÛždØœ^Ù aàªmÞ£jÖš_Ö¡dÚ£iÛ¤eÝ¡dÙŸ`Ö [Ö¢[ÖŸ]Õ›[Ó–^Ô–\ÙšVÚ \Øž`Õ˜^Ï•WÑ“VÓ™_Ô™ZÕ™ZÖŸ_ÑœZИVϘWË‘[Í”ZП`Ô¦kÙ¤qØ¡kØ¢gÛ gÑ•YÈŽNÌTÏ’TÍ“UÍUÌ’PËQÉŽQÈ“TÈ‘WÈUÈSË–YÌ–_͘gÒ¢jТcÑ¡hÒŸrÕ¤vÜ®qÛ­vÞ°á¸â³zã²xᵀݰ~Ý­uÜ®tÙ­rݯuà·~޲߫sÝ©oÞ¬wá²zâ³yâ¶xà»ݶ„ܱ}Ý­zß²~à³yܬnÛ¬rÙ­tÚ¯tÞ°rجtݱ}Ṇݻ…㹄渃ä¶{åµ€â´ß¶„à³€Ù¬qÕ¨o׫rܯyÜ­{Ú°yâ»å¼à¸ස䷆湈⹂ݲyݳxݳ{á±}âµ~Þ¶~á¶}ä»âµyã²|湆溄ã¶ß³|ß²zß´€Þ±~Ù§uÖ©qدrÝ°{ß±}ܱ{ݱzݳyÚ²uÖ¯rÔ¨nÕ¥nתmÙ«jØ«rݯvݪsÒŸnÌŸkÓ§eÚ¬hß©lߨhܪgÛ°nݬmÖ¥eÖ¢`סdקeÚ¨`Ú¥_ؤcÙ¥gÖ¦eרbߦkÜ kÔŸdØ¡c×›ZÔ“RÒ—TЙUΗUÏ‘OΑQÏ–QÍ‘RÑ–WÔ•TËŠJȇGÌMÌ’MËPË“QË’KËKÈ‘PÊIÐJÏKÈŽDÍ”NÒ˜WÍ”UË—UЛXÒœZÐ[Ïœ]ÑŸ`Óž^Ó¢`اgÚ¢fئbÚ¨bÙ¥gÕ¢kÓ¤iÙ¨iÚ¨nÛ©lÙªe×¥]ܦbÝ©lÞ§pß«rÜ®kÙ¬fרhÙ©nתqÖ©mÛ«kÚ©pÖ¤hÕ¤gÕ¨sتnÜ­tÞ°|ß²sÙ®oÖ©tÛ«vÚ¯vÙ¬yÝ«yݱuÞ°{߬vܳ|Þ¸†ãº†ä¹ß¶zݶxÞ·yà¹|Þ³yÖ±zÚ¸Þ¹Úµ|Ú´{ß·{߸~߸‚â¸|⼄ὉḄ㷊ඈݴ}߶}ÞµzݲzÞ±~Þ´|à¹ä¹‚㺅ݹ…Ú³}ݱÞ¶~ݳ}ݲ|Ù­uجvÞ³xÞ²{Û®|ܯvÞ´}⸊ᶇܱyØ«tÙ¬vÖ­qÓªoÖªrÙ­vݱ}Ⲃ㶃â¹ã¼~â»|á³}áµ}ݵ|ܲxܱpß´{߶}Ù®pØ©mØ©qÖ«pÙ¥oÙ¤vÙ©uÛ«jÛ¯jÕ¬mΟhÌœ`ÎbÓŸgÒ fÒeÒ gÐœdЛbÒ¢bÓ¢eÕ iÕ¦hÖ¬jשlÖ¤cÓ _ÑbÍ™`Ç—^È‘YÇŒRËOÆSÈTËŽQÐTÏYÌšYÌ™RÌ“RÌ”TΔTÓšXÓ£aÒž[Ó˜TÒš[ÔœeÓ^ÒžZÕŸZÖ WÕ WÖ ^ÕŸ\ÓžVÕ¢aØ¡aØ ZÖ ZÔ Zס^Ù¡_Ö¡ZÕŸZÖ cÛ¡aØ_ÖœbÙ¢[Ù¡XØ¡^Ù¥]Ù§\Ó¥]Ø¢_Ü£_צ_Û¦bÛž^Ö£dÙ¦hÙŸcמaÙ¡_ÖŸ`ס`Ô¡aÓŸdÚ¡eÝŸbÖ `Ôž^Ó]О[מaÚ_ØšXמ]Ö aÕ¢aÒœ^Ø[»“\Ö¯‚Ô«}Ü°yßµ~á·{å·âµ‡Ý²€á²ã¯€Þ«xܬxÚ¯yݱzá´à³„ⶅඇ޵…ḅṅ丌廊ߺ‚ᶄ嵆ⵄᶄߴ}â±}䵆⸆Ḅ漈辊仉㹉仃繄紃å³}㮄ᲂ㸆帉彄幄å´}ã¶å·‚è²yæ¯rß«lܧbݦlà¨uà¬sá®rß©mÞ§há©mÞ©jݦkߦpà©jݤbÙcÙšgÙœd×›aÔ–[јXÓ]× gÙžeÚœcÚŸeÖ[Õ[Ù bØŸ^Õ™ZÔ˜YÓœXÑ™^Ò˜^Ó›VÑšXÖ^Ûž^ÕšTЕSÓ•UÓ–VÑ•YΚ]Ð]Ñœ]ΘZË“TÌ”XÏšaÔžg× nØ£nÔ£hÐlÓ˜bÎOÉQË’PÌNÌPÍ“PÍLÍŒLÆŽMÅŒQƈNÅ‘RÏœ`ÖŸiÔ¢jÓ¥lÔ©qÚ´{Þ¸zÞ³yà²~â³|â´|à³|áµ|㷂ⳅ䶃䵂߱{ß²yà²߸}â¹yã´yÛ°zݮⱀâµß³vß²yݲܯ~߯uÜ­yÞ¯ãµ|ܯvÜ°sÞ²xÞ²âµ|æ»æ¸ƒä±~Ⲃ޳‚Þµ}Ṃᵅ㶂ä¹âµ€Ý¯‚ج٭~ß²{ݵyݶy㻃㾉޲€Ü¯zව乆⸀޳zÛ®Û°‚ݳ{â´{ä¶ã¶|Þ³~à´„ãºzãµwä³~ã¶|ß°Þ²~á±zÞ©pÔ¨cÔ¥hݪpß³rÛ°sÝ­sà®uÝ©yÛªyשtצlÞ«tà«vߪmàªnÞ¦oÞ©jÙ¦eÔ¡eÖ¨dÛ¬mÚ¨nØ¢cמdØ¢hØ_Õ–\ÓšZÒšXЗ]И_ј]ИZΘ]Ó›ZÖWÚ¢bØœ_ДZΗ[ЗWÑ”UЗTЙTΘWÒ˜VÖ˜ZÑ™\Ι[Óœ`Ôœ_ÏJÊŒDÌ“QÑ–WÏ“UΖYÑ•[Ï“TÌ•SΕNИOΕRÈKÊ•PΖRÈNË’QÓ™TÕ›TÒ›ZÐœZÓŸYÖž\ÕœcןaÚ¢\ÖžeÚ dÖŸbÎaÓ¢`Ú£^Ø¢c×¥bÙ£^Ù¡]×£cÙ¤eש^Ù«cܧiÚ§iÕ¦kÔ¥oפgÖ¦gרhØ¥eÙ¦gÛ§jÙªkÚ°oÛ°pÜ«pÛ¨sתkÔ©cÕ§mׯwÙ²uÚ­s׫rרyÙªyܬsÞ°wÜ´€Þ´}Þ´vÞ³yá²{âµ{Ú´{ÔªvÕ§pÚ¯tسxÖ°yÜ´á¸ã¹„乀乀庇弅ขݴ~ݵxÞ¶yÞ´{Þ²yÙ°u×±xÚ´€à»€æ¿‚軃ä·Þ·~Þ´~ܬwܯ{ܲyÙ³tݶ€à±€Þ°vß·zܳ޸㽂â³}à²Ü¯Ó¤rЦrЧsΨrײsá·|ⷄคไ⹅䵄ä´}Þ¯vÙ­~Þ²àµ{Þ´{Ú®vÖ§rפoاrÕ¨nÔ¤dÚ¨iÜ«mÜ«lÛ¬rØ«nÒ¦hÒ¤iÓ¥jÕ£iØ£jؤmÖ¤hÖ¤cתhÔ¨hÐœbמ`Ú¨b׫jؤmÒœaÇ•XÆTÇŽOÈQÉRÊPË’RË•RË•Q̘SÑ™XЖXÑ–UÑ•UИZÏ›YÑž\Ô`јZΙTÑšVΖXÍ–XÓ›WÑšWÒ˜UÕœUÕž]Òœ[ÒžVÓ¡^ا\Ú¥Xמ[ÖŸ[Ô¡[Ô¢XÕžWÓšRÒžW×¢]Ù¡^Ù¡^Ø£`Ô^Ô]Ö¢^Ö£\×¥aÛ©eܧgÙ£cסZÚ¢ZݦfÛ¦hÙ¡[Ù _Õ¡dÓž]מ_Ö bÓ ZØ£_Ù¤dל\ÖYÖŸ[Õ˜dÓbØ¢^ÛŸdÚŸfÙŸcØœ`Øž^מa»]حذ߱ޱ}ౄెà³ß³‚ß·…ಅܮڮuݯⴌⵈⶈ⹅ް}Ú¯ƒâ½Žå¼ç»…꾆躅較é¼éµ帆什湀幅㷆亅齇鸂ç´zå¸{äºå´{æµxä¶{ã¶yä¶á³ƒÞ²~䵃崀߰sß®tã°uâ®nà«iߦdÙže×^Ü£dߦlߦgݦhà£lߥgÛ§bØaÙœfÞ§hݤ\Ö›XÓšZÔŸbÔŸaÑ–VÑ•TИXÓœ]ØŸcÕš`Õ˜]Õš^Ø™^לaÕš\Ö•VÑ’RÍ•NÌ’MÌ“XË•XË•TΙXÏœ`Ë”^Í”RΓQÊ’VË“UËSÈ‘[ΔYÎRÅVÈ”YÒZÖŸ`ÓfÕ eПkΟrÐdÌ“[Í™_ϘZË‘UÊ•XË•[É‘\Ë—]И\Ñ•WÊ”`Ñ jÕªkÒ©qÖªxÑ¢sÌŸoاwݱ߶|â²xÝ­{Ù«uÚ­rÞ¯~Ý®zÞ°vⵆ㴅â³á¶ƒà³}á²}á³}à¯zß­vß±tÞ²uà´xâ¶{à³{á¶~à·€à³}Ü­vݵvß¹{ܲƒà´†Ý³„ׯ…ã¸ìÁŠä»‚á´ƒÞ¯Ù«}Ý­ⲃ㴀㺄ຆ߹‚ݵ}Û®|Û³~޵ව߷}ܲ|Ú²}Ù°z×­và¶ã·Ü¬vÜ«vÚ¬xÙªvÜ°yß²uáµ|á¶{Þ°sß®|â°|á²rß²qÝ®zÝ«rÞ¯pá±yß©qØ¥lܪqà³sÞ°sצt×¥sÛªqܪmצkÕ£fÜ©hà®rÞ¦mÚ¤hÕ¥dÓ¡\Ú£dÕ¥hРbÕœ_ÖZÔž[Óž[ЗZГ\ΓXËPÊNÎQΓTÊPÉJÈ‘MËŽNÊŒOÉŽTΔWÎ’QÇ‹IÉŽPÌSÈŒOË’QÍ”WÉŽXÍWÏ–VË“PÊ’RÍ™UΖUÉQÄŠMÈOÅ‹PÁŠFÈMÍRÊSÉSÍSΓRÌ”MÆ‹LÅPÅ‘NÄMÈ’XÏ”WÏ’WÏ“ZÏ•XÏ•WÏ“VЙYÓŸ^Óš\ΕZÑ™WÑ—X͘YÏ›UÖœ[ÙŸZÕWÖYÖ›ZÕœ[Ø¡^Õ£dÓ¢c×¢_Ö£_Ò¢aÒ¢`Ö¡_Ù¢`Ù§`Ø¥aÚ¦bبeפcØ¥dÚªgÞªjܨpÝ©mÝ©iÔ£jÖ§nÚ¬rשmÒ§jЦkجnß³yß°}Û©oÞ­ràµ|Þ±{Þ°vÞ¶rݵvØ«oÒ§kÖ®uÜ°pØ©lÙ¨yÝ­àµ~Ḁ޴}Þµ|ⶇ䶈à´}Þ±yà´{Þ´xײx×±uÕ©rÕ§qÞ³yä½~侅⸊ᵄã¸Û°|×®xÛ´{Ù³|ܳ~߶€Þ´{Û³{Ù²yܳyá·á¹ß¹‚ß»ƒß¸€Ø±€Ð¦vÌŸoѨuݳ|ᴂ޳ݰxß±zàµyßµuÛ¯xתtÚ±y×°{Ù¬uÛ­uÙ­sÛ®tÚ¬tÖ¨uÕ¨mתiתnØ«rÛ¬qÞ¬nÙ«nØ«kØ­lשjØ¥dÖ¦bÔ¦g×¥jÖ£fÔ¢gÓŸeÓ›dÖ£gÙªgÞ©hؤfÈ—WÁŠKÇŽKÏ•UË•VÉ“QÏ”TÏ—XÊ“TÌZÍ•ZЗQÑ“WЕ]ЙYΙUКYÏ•TΓNΓTÌ•TÉ’QÈ“TΗWÓ—TÒ–YÕ›XÕ]Òœ^Ò˜ZÔ™XØŸ\ל]ÖœWÖ¡TÖœWÖšRÔ›PÑœ[Õž[Õž\ÕžZÖŸZÔ WÕžXÕZÕŸ`ןbؤeݪnÛ¦s×£iÚ¡^Ü¥bÞ¬_à¥_Üžc×`ÖbÒ eÖŸaØž^ÖŸaÚŸiØŸdÕ]ÕŸ`Ò›\Õ™ZÖœ_ØžbÜŸhÚ¢eÔ\ÕbÖ`Üœ]¾\ß®„ß°}ß±{â³à°€Ý«Þ±ƒà³|ß³{ൂà´}Û¯yݲ}漉彊ๆ㳇ಅ߶滆齉弅什ç»~绂è¹|ç¸xå¹æ¹ƒêº†é¹‰é¹‚éºç¹å¶{å²råµvè·ç±zâ¯rã³xä²~á°zß®xß­yà¶zà²vâ©oâ©oÜ©rÛ¦eݤ_Ü£fÝ£eÚ \סbÚ¦gÝ¢hÚždÜ¢\Þ¢eÙžiÖŸcÙ£bÚ b×™ZÒ“TÒ•WÖš\ÖaÖ]ÖŸZ× eÖ h×`Ôš]ÔšZÕšZÓ™[Ó–WÓ–VÑ“NÎKË’SÉ’VÊ‘UÍ’TÍPÍŽNËRÌUÉ’OÊ”PЙ`З[ËŽKÊUЖZГPÈ‹QË“\ÓhÖœjÕdÖ£gקrܬyÝ©rÚ¦pÝ©vÙ¨tÓ£nÖ¦kÕ¥mОiÓŸjÚ§uܬuÚ«uá±|Þ²{ÙªzؤvÍ›gËŸcÚ¬sã¶yãµ}߯ޮÝ­yÝ©tܬwÙ°yÙ°uÞ³xâµ~㶄么䵅ã²|Þ°vÚªxÙ¨wÙ¥rÛ«uâ´tæ³wâ³€ã·ã¹á¸á²ƒÜ°Ú­ƒÝ²‡Þ·…Ý®yÙ«vຉçÀŽà²‚á³~ã¶}ݲyÛ²zÞ¸‚à·Ü²}Þ·ƒãºßµ€Ýµ„ീ߳ƒà³~ã³xß­~Ú§|Ú¨vÚ°wß²rÛ©rÖ¥rÛ¦sÝ©rÞ«rߪrá¯uà±qÞ°nÞ°tã¬m߬lÛ«lÞ¬hß±uà°vã°eá­iݨqÙ§jÛ§gß©jߨiÙ£eצhÞªgݪcÔ¤bÓ¤dݨgá§eÚ¤eÚ¢^ÙžYÔX× Wל]ЙaÔ˜bÔ“_Í“XΕUÍ”TÇNÈIËMÇ‹JÉŠMÍPȉHÇ‹NÉ’VÉLÈŠKÅŽNÉJljDÁ‡BĉJȉPÇNÇ’NÅŠIŃHņGÅLÊOÇŒHÊJÊŠO¾‚C¾‚8À:¿?Å„DÆDŠHÆLÈMȈJȉOÅI¿†?ˆDƉFÀ†BÁˆJÈRÍ“RËSÆLÈOËOËLÍ”UÌ“UÇLË“LÌ•PÉWÌ‘RÍ“OΖTÍ–RΖTÑ™ZЙYјaÒ˜cÏ•XÏ•ZÏ›^͘^Í–[ÑœZØ¢aÙ¢aØ ^סdןfØžcÖžcן`Û¨iݬnÞ¥iܦjÔ dÓ¢gÚ­pÝ©nÖ¤oÕ¨rÚ©mà­ná¯uÞ«sÞ±mß±nà®ràµqÜ´oÞ²rÝ°qÙ«nܬtÙ«vÙ¨uÚ©uØ­vÞ¶á»~Ý´zà´€à»àºâ·à¶xݳwÛ¯uÞµvá¸w×­qÕ¨pÚ°xÞ¸|àºÞºƒß¹…ຆ޳ƒÜ®x×°yÚ²Û±{Ù¯zÚ®zÚ­tØ°uݳv㸄ãÂãʼnéˆëÂ澊ګwÓ¦tÙ±z຃潅å»ß·{à¸{á¸à³€Ù­xÔ«w׬vÚ©oÛ«pß²wã¶}á´~ܱzÙªvݯyݯnجoÜ­uß®pÚ¯jÙ¬lÙ§oקqÔ¨sÔ¥lÒ£fÒ `ÖŸgÕ¤kÖ©eܨjܦkÚ©hÝ®nà°oתjȘUŠFÄŽNÌšUÍ—PÎ’SЕWÏ•WË’UË’TÌ•ZÍ–]ΘVÍ•VÑ“XЗQÏ•VÓ–\ЖYÏ“XÑ’[Í’VÒ–UÕ™\Ñ–ZÒ–TÒ˜YÕœ`ÓXΙUÓ™ZÕšXÔœYЛ\ИYÕ™XØšWØœTÖ›QÓ™]ÕžaÓŸZÑ›\ÔŸaÑ›YÒœ\Ù¦d×¢ZÚ¢aߨhݦjܤnÛ£iÞ¤dÞ©d×£dן`ן]Öœ\Ö—YØœZס`Õž]Ø `Ùž]Ú›[Ùœ`јaÚžcÜ¢_Öž`Ü¢dÜ¢bÕœ_Ø›fÚ dÜ V»ZⲀ䶃å¶~å¶á²…ج}à°ä³à³xà²vÞ°vÖ§uÕªxà¶~ã¶à°zݱ|ß²~â³|å·ã¶á°zá±xâ°sæ²tå³wá²rà°wà­wâ²yä¶yå·wèµtæ°sá«oݬl߯oæ°oæ®jߨhߪiä®pá®xß­kÞ«hÞ§mÜ©mݧjߣdݤ`Ü¥aÛ¢cÜ¡f× eÕ›ZÖ›[ÔŸcÖŸbÛœ^Øž\Õœ\Õ]ÖŸbל`Ô˜WÑ•VΕXΕVКZÖ fݤnÚ¦lÜ¥mÛhÓœfÒŸhÖdÕž^Ôš[Ò–RΔKÎ’SÌ’VËSÌOË“RÉ“ZÊ‘XÍ’TÍ“TÌ•YϘ`ÕŸfݪkÚ£cΑVÍ“_ΙbΘWÒž\Ó¢cÖ£dÖ¢jÖ oÛ¤vá²{á¶yÞ¯ⱅ䶀߲~ݯܬxØ«rÕ¨rÕ¨jجrÚ­tÛ²sß³}ßµzÞ²yÒ£uÌ hجrÞ³€à¶‰ß´…Þ­yà®wà°zÜ«|ÚªzÙ­rרqÚ®â¸{ä¸w㺃áµÞ¯{Ü­zØ©uÔ§vТsÑ£pݱ}䷅弋义ᴂ弆湈߲zÝ°xÚ°Þµâµ{Ý©wÞ°{黄ä´}á¶~罈ෂ۲~߸⸃ݰ€Ý³ீ߫và¯vÞ±Þ³yà³sß®uá¬oߪoÛ¬vÞ¬uܨkפeتlÞ«tß«vÞ«oÜ©oÛ§mØ¥gئhݪhà©kÝ¥jÚ¦cÜ¥fÛ§jÛ§iÜ¥kÚ£`Ö \Ó¡bÓžcÖ£eܤfÝe×¢bÙ¨^ܧ`Ö_Ó™^Ö£fÙ¤gÔŸ`ÒŸ\ÖœZÔ˜TÓ™\Õ›]Ô™VÔ˜VÒ”OΔKЖOБUÌŽUÉPË‹KȉAÆŠCÍNÎRÍŽSÉTÅŠHÆEÈQÍŽUňN¾‚JƈMňGÅŠGŇK¿„F¿ƒEÆCÇ?ÆLÆIˆB†FÁ„H¼A¹y=¼}>¿„E¿ƒJÀ„FÀ„F†NÀ†E¾…EÀ…Fº|>»}CÀ„C¾~9½AÆIÆŒGÉ‹DŇFÁŠIÄ‹ILJCLjEÄ‹MÅŒFÈFÇŒJŇELjEÆŠKÆŠIÆŠJÊ’TΖZËOË“V˘\ÄMÆ‘KË•RËŒQÌOË‘UÏ–[Ïœ[К\ÓžbÓž`Ó™[Ó˜XÑ—UÓ ZØ¥\Ù£`Ú¥cÕ¤cÑ ^Õ¨dÖ¨h×¥dÛ¨jݦmÛ¨dܪ`ܨgÚ©lÜ©hצeÛ®kà¬jݨoÞ¬rß°oÞ¯qÙªuÕ§rÔªsÕ¬zß±yâ²zÞ­xá­wà³x߶vß±xÜ°uÛ²qܯoÚ¯uݳ~Ý°yÖ«uÖªsÙ¯tÞ³vÛ±tÙ°vß·~ã¼|ß³}Û¬{ݱyÛ«zÖªzÚ°vÚ°rÙ±và¶{仅侊çÁ†èÃŒéÃ’é¿ŠâµzÞµzᾅ羆éÀ‹ëÄŒç‡⻃䷀⹄۴}×°v׬qתmÙ®tÛµ€ß¸‚㻀à´{ݬvÝ®}Û¬xتnدqÛ±xÙ­tÖ«kÕªjÖ§mØ¢mÖ¡kÓ lÒŸjÔ¦gÕ§fÚ¦lÞªmÜ«mÛ¨oÚ«pÙªsÕ¡jË—XÆPÇSË–ZΙTÊ–PÊ”UÍ“TËTË“WÊ—PÊ•QÉ”ZÊ•VÌ•SÍ”[З^ЗZÍ•XΖUЙUΘYИ[ÓœaÓ\ÓWÑšWЗ\Ñ“[Ï”TΗTÒš[Ó[јQΗRÓ™ZØš]Õœ]Ðœ[ÓšVÓXÑ [Ô¡`ÒžbÏ›ZÐœZ× [סYÚ¢aܦiݧlܦjÛ£`Û ]Ø\Øœ[ÙŸ\Ö¡\Ö¡\Ôž]מ]ØœaÖžeÕŸaÕœZØ¢`Õ¡`Òœ]ןgÛŸfØ¡hÚ¦hÛ¡^ØZמ_Øœ]Ûž\¶’\è¸}æ¶軃è»{ä³{Ý­tà¯pä³zâ¯yã®xà¯yÖ¦oÕ¥oâ³zä¶|ß³yàµ|â±wä¯uâ²yÞ¯tà«ká¨qà§sá©mÞ«kß«lãªpà«rà«lá«má­qâ®nß«mߣjá¥fÞ©jÞ¦fà¤dÜ¡bÛ¥iÞ©jߨaÛ¤dÚ¢kÝ£jÛ¢fݤeÛ¡^ØœXÔ^Ó™\טXÔ—TÔ˜XØ›\ØžZÚ dØ]ÔšVÔ˜YÕš]Ó_Óž]Ö`Ô›_Ôœ^ÕŸ^Õ cÞ¨rÞ¬yܪvܧqÚ¡gÙžiÖžkÙŸmÖjÓbÔœaЙYΗZЕ^Ñ•XЕVΑSË‘SÌ”YÌ“XΘ`Õ§lÜ«oÝ«yâ³~á°xÚ¦nÚ§tߪ}Þ­xà­yÞ¯zÙ«uÙ¦uܪwß°}àµ|á®xÞ®|ßµ{Ý®{Ù¬vÛ®tÚ­vÛ©vÚ¤wÙ¦sܬrÝ®rݯ€à²„䶀â³}بtبxÞ²xÜ®uØ­yÜ­rÞªuÞ¯Þ´Þ¯~á­}Ý«{Ú©ß²†ä¹„á³}Ý®à±à³„â·‰à·Ú²{Ò¦xΡpÙ­v㴂㹆⼀âµ᱀嶃䷂เä¼å»…㹊崇ⶀã¹çº~æ¹~繃渆á±~ß±zà·à´zá°sÞ±xݯzà²{á±v߯vá±xá°qÞ°rÞ­qÝ©iݪkÚ¨lئlÛ¨rÝ¥mÙ¦bצbÙ¥jݦnÙ¢hØ¡eÜ¢`ؤ_×¢aÙšbÖš_Õœ`Öž\Ø¢^Öž^Ò›XÔ›\ט[Ò•TÒ˜YÔœ\Ó›YИ]ÒœZЛWЖ]ÕžfÕ¢eÖœaØŸ^ÕŸZГTÐ’QÔšXÖž^Ö›YÓ—QÊ”QÊ–PΘRÌ•RÌ‘MÍŽHÊŽHËŽPÊ‘QÉ‘PËŠPƉKÃŒIÄ‹LÄ‹OÊQǃK¿€IÀˆIƒCÂHƒJ¿€CÀ‚?Ä…IÁ…H½‚D¿€@ÀƒB¿†L¿†G¾€>¸y<¶}>À…CÁƒCÀ‚C‚D¾G»~B¾‚E¾Nº{Fº}?»}Aº|?·|?»{AÀ‚CćKăHÄ…AĉD‰BÁ…BÁ„HÈHÆŠGŠH¿‡H„@ˆDÇHÇŠDÌ’MÏ•VÏPÈQÇUÉŠQÆŠOÅOÅQÇŠMÅŒMÊQÎRË”RÏ™RΔPÊPÏ“TÑ–VÑ–VÒ—WÓœX×¢YÔ¡dÒaÖž_ÔfÑž`Ö¤bØ£eÔ¢bØ¡bן`Ù¦bÙ¡fÕœfؤe×¢aÑŸhÖ¦kتeÛªkÚ©hÒ£_Ò¢jÖ¨rÜ®jß®mà°rß±sá±sá¯sÞ­tÝ®mÞ¬gÞ«oÝ®và´váµxÝ­sܦhÚªhÜ®rÞ°rÞ²mâ·t⺃ã¶~ã³vßµzݲrÛ©sݯ}ß³xÞ²v᷀⹅㸅湇繆湂市âµá·á¹„佇弅轉ê¾æ¹Šã¸†âº„á»߶|Ûµ}Ú¶€Ý²~Ú¯}ݸ‚áºܲvØ«xÜ®|Ú¯y׫oÙªqÛ«{Ü«uÖ¤nÔ¨pØ«qÚ¨tÙ©lÙ¬hبpÚ¦mÖ¤dÓ¤gÖ§hÙ¦hÖ¦kקhÓ¡bÌ–aÈ”YÆ‘NÅŒTÅ‘TÇŽKÇŒPÎ’WΕU̘UϘVË‘QÇOÈ”OË•TË“XÌ“XÌ”ZÌ’VËNÉS͘[ÐœYÏ—SÔ™VÖž\ÒšYΔVÍ—\Ï–WÍ“UΖXÑœ[ÒZÏ•VÏ“WÒ™TÔœWØš\Ö˜ZÔ\ÒœZÒ™XÕœWÒ›WИZÓœ[ן]Òœ^Õ¢dÜ¥aÚ¦aÚ­iÝ¥gÛŸ^×£^× _ÛŸ`Û¢bÙŸdÙœbÜ¡bÚ `× `Ö¡aÙ¡`Ú¢`ØŸ\ÝŸ]Þ£dÙ¢dÛ¤eÞ¦fܤbØŸ_Ö`Ö›\Ü£^¿’dä¯yå­uä²vâ­zâ¥uÜ¥jÚ©dá±há°sá«pá¬hÚ¨kÚ¥qÞ¨uà°qÞ¯tá­xã­qá¬nà©oÜ¥cÜ¢^Ý£hÖž`ÕœZÜ¢bÜ¥dà¨fà­hà¦bß ]ܦbܨiݤjݧaÚ¥^Ù¡]ÙžX×YÖ\Õ™[Ö–YÚ›YØŸcן^מZÖVØ[Ú¡^ÕTÓ—U×™\Ô™[Ñ™VÓ›VÕ˜WÓ™^ÕžbÖž_Ö dÔ¡hÖ£hØ¡eÔœeÕ mØ¥oÕ¥sÕ§tÙ©tÙ¬xÛ¬tÛ§yÖ£}Õ¡jÔeÕŸlÖ§oÕ kÑœeÓœ`ÒšcΟ_ÍœSΕZÍ‘XÊSË“YÍ”]Ñ•cÕmØ©yØ©vÚ«yⵄ㶃߲}ä¶缇仂â±zà¨sÞ¦pݪrß²€âµ‚âµzß±yß­xÛ«vѦoÏ¢rÑ¥rÙ§uáª|à«uÜ­uܯxß°yâ³ß¹á¹ƒä´ƒßªyÝ­vܯzÚ©~Ù«ܬܬzÜ°sÜ­xÛ¯~Þ³€ß³|ݵtâ¶vᶅⶆâ²|ݱ~Þ¶€ä¸„ⵄݶ‚Ö«xÌŸrͦvܳ€æ»…廀߱yÞ±}⻆溃滇乇ã·á¹á¸†ã¹…â¹€ã´zä¶zá¸}á²~ß«vÜ«rà°wâ³yá±v߬lÝ«mÞªnß©jܧnà©qà¨oÚ¤lÚ£hÜ¢cÚ¢fסcÕ¢`×¥bÙ b×™\Ó™bÓžaØ¥fØ¢gÔXØVÖ^Л]ÓšTÒ˜UÌ”SË“VÍ‘YΓVÏ™XÍ”XÎRΑKÍ’NÔ—VÓ”UÍUБ\Í’UË“V͘YΔUΓXÏ—[ЕUÎTÌŽUΖYК[Ô™UÑ–UÈOÈMËPÉOÈŽHÅŒGÆŒJÊŽGÊ‹KÇŠRňMƇKʼnIņHÈKÆMŇK½‚IÀƒD¿‚E¿ƒJÁ†GƒKƒGÀƒA¿€FÁFÁ‚HÀ„MÀ†O»M»€G»~=¸|=¼‚B¾ƒD½‚H½ƒL¼F¹>»‚Cº}>´x7·}@»|E·v>¶y=·y>»}B¿†E½…@‚KȇRÄ…FÀ‚E¾ƒE½…E†LÂ…F½ƒA¾€=ƒEćJƉGÊRËVņHƃ@ƉCˆGʼnMÄŒLÀŠF†DÄ…FÄ‹MÅJÂŒHÈ‘SÈQÆ‹LË“UÌ•VËOËTÎTÍ™[Ê—]ÉŽSÏ•VÌ”[Ê‘WÍ”ZΔZÏ”ZЛWÒŸTÖ ]Ó]Í•XÔœaמeÏš\Ñœ[ØžZÙ¤Zפ_Ö¡^Ù¦bÚ«lÙªhÛªdݪkÝ©kÚ§mÙ¦nݨjܨdצbÙ§cÚ©kÜ«lá­lÞ¬mÚ¥kÙ¤iܬkÝ°rß­q߬sÞ¯sÝ°tÞ´wÞµvÛ®sÛ®rÛ°uá±{ä³{ä´väµwâµ|涃湅㹃ä¶{à´yà´vä´xá³}á³}áµ{à¸zß³{ݯsÜ®sà°}ංߵ…㳇ߵ…ܱuÝ°pÚ±y×®uÙªlÖ¨rÓ©xÖ¨oשnÙ¬uتvتmÙ¬l׫q׫uÙ«nÕ¦oÕ¨tתkÕ¦jÔ§h×¥bÓ bÏŸcÒ›^Í™YÉ™YÆ‘UÃP½ˆP¶K»„IÁŽJÆFÊ”YϘcÓ˜^ΗZÉ”QÍ“UÏšbÑ`јeÒ—eЗ[Ë”WÇ’Wɘ]Ñ]Ó™VЖVÔš[ÖšRÍ–Tј]Ó™\ΖUЙYÑ`КYИNϘMЖTÑ—QÌ—NЖXÒ™]Ò˜SÑ–TÑ–XÒ–ZЙYЛ\Õ™aÕ™ZÖœZÞŸ`Ù¦dÙ§bÜ£`Ù¢dÖžiÙ¢hÞ§iÞ¥jÚ¡gÚŸgÞ¤iÛ¤e× cÝ£bÞ¨eÜ iÞ¡fÞ¦dÞ¤jÜ¥iÛ¥dܤfÚ¢hÝ¢cÚ]Ó˜_לg½eá§jÞ¤fݨfÞ¤kÝŸeÙ[ל\Þ¢cÜ¡eÛ£eߣ^Ü aÙ¡hÛ¤gߦeߧdÞ§jÞ¤jܤlÞ£oÝ¢gÚ¢dÛ¡fך\Ò“PØ™VÛ¢\ݨ_Ý£iÛ fÜ[Û¢bݤhÜŸaÙž[מ_Ø›dÔ˜XÓ™UÕ›[Õ–ZÕ’[ÖšWÖŸXÓZÕœX×]Ö›`Ù›cØœ`Õ•YÔ•XÖ™WÓ™RÒ•QÒ”XÕšaל_Ö—YÕfÖ¡iÓœaÑ›`Îœ_РcפrاzܭݬܨyÜ©wÛ¦uÙ£rØ£uצkÖ¨hؤrÕ™jΕbјeÓ™`Ö›^Õ™cÏ–cΖYΟ[Õ§hÚ§nÖ¨kÛ¦rÛ¤tاoܯxâ´}á´zᲀ澈êÁŠé·…â±}ݯtà­sà¯uá¶}â¶~ßµ}á³}à¯{ÚªsÓ¨pÓ rÖ£wÚ¯{à°}á¯}â°á°‚á°â²á´‚ä¹ä´}â¯ã°ݳ{ݳ}ᶀܶ~Ý°Û¯zÚ­vÞ°ⶅ䵄â¶ä¹„廋织清᳂߶~à±€à¯߶~ܱzÖ¥oÕªsܹƒä¾ä¸|à±ß´{â¸㴄ᲃⷀ巀áµ}ã´{â³yÞ­yÞ¬yß³{á´|ã°wÞªqݪkÞ©iܨmß­qÞ©kÙ¡cÛ£hÛ£fÛ¤dÛ¥`Ù¢ZÙ ^Öœ^Ó–WØ™_Ö™^Ó•Vמ\ÖœZÕ–WÕ˜YÓ–\Ó˜]ÏšWΔXÓ•^Ñ™`Ë“SÊŽLΑSÊNÇ‹LÌPÎQËRÍ‘MÏ‘OÊ‘SÈIÊ‘LÍ’TÊŽPÆOÅŒRÈ‹NÊNÆ‹KÆEË‘IÉLÈ‹KÉŠMňRÉMÄIÇŒJÄŠJÃOÄŠQÀ‚MÀ†KÀ‡GÁƒAňEĉDÃ…G¾‡L¼‡GÀ†EÁˆF¾€D¾ƒC¾†@¼„C½ƒB¹~;¹‚FÀ†M¿„H¿„J¾€H¸}@¸‚E¾…HˆPÁ‹U»…J¼ƒNÀ†UÀ„PÂ…NÁ‡KÁˆK‡Q¿‚K¸‚F·€J¹~C¶{;µ~D¶|F¸u>¶x=·|@»€E¼ƒD½‚?¼€;¿ƒD¿‡K¼‚G»B»H¿„J¿„C½ƒA½=¼IÁ†KćHćNLjMÃKÁ„LÀƒB¿BljI‰H¼„LÂ…GÁˆJÀ‰PˆK†JÁŠLÄŠNljKÄŽGÄNĈGĆCÅŠHÇ‘LÆ‘RĉLÉŒKËVÇUËSÍ‘VÏ‘TÒ—UИTИVË™VÊ“SÏ–XÒš]Ï•ZΕUЖXÓ™bÔœ[Ôž[Õ¢bÖ¡^Ù aÙ¢cסZÚ¢^× _Ô \Ö ^Öž[Õ¡]Ö¢^Ù£bØ¢bØ _Ù aØ£cÚ§dÙ¦fÚ¤jÙ¥eÙ§d×£f× fߨpß®nÖ©nרjÞªjÝ«sÞ¯xÝ°uÚ­pß®qã°uæµ|ã·}â´{ã²xá²yãµyä³vß³zá²{ã²wâ³vÞ°vÜ®uÜ®uÙ­vØ­vÜ®uÛ¯zÙ¯zÚ­tØ©uÙ§rקhÒ gÕ¢iÙ©mØ©mשn×­qÙ³uØ­qרnÜ­kجoÖªrÙ®oÚ­lÚ©jÙ©hØ©iצiÓ¥iРeΚcÏšfΙaÆ“Uº‰I³D¹D»†E¿†EljJÌ—XÒž_Ò bТdÒŸfÖ¡kÖ¨lؤfÙ hÕ¦mÓ£eÒ¡_ПfÒ£fÔ¡bÓbÓ_Ó™TÑ•WÒ™]ÓœZÔŸ]ÒcÕ™b×—]ИVÍ•TÍ‘TΓQÏ‘RÏ“XÔšZÕœZÓ™[Ô˜_Ôš]Ó›`Ó^Ø ^ן^ÚŸ]à¤gߦkÝ¢jÝ¡lÚ¤eÛ¥aݦiÞ©já©jà¦nÛ¢hÚ hÚ¢gÚ¢eÜ¥gÞ§gÞ hß¡là¨lÛ¦mØ¢gÚ¡aÙž_ÙŸbܤhØŸfÑ`Õ¡c¶‘bÜ¡[ܘZ×—`Ø•_Ù˜ZÔ˜ZЖUÒšXÕšYÔ–UÔ–TÚšZÙš^Õœ\Ù¡XÚ WÜœZÚ›^ÖšaÛžcÞš_Ô–\ÑšXÑ—SÏ’RÓ™RÓšP×›WÜ _ÙXÙ˜SؘUÕž[×^Ö™\ÔšZÓ™VÓ–T×™ZÕ—_Ó“ZÑ”TÓšSÕœZÑ•[Ñ™YÔ ZÕ^Ø aÙ£bÒšZЕRÏ‘RÌWÑ“VÔ–ZÑ–bДZÏ“UÍ“SΕUÌ‘TÈPÈX͘dÑœhÖ£lÚ®xܯzÝ­{á°|ୀܧ~Ú¥vÖ¥qئqÚ¨lסkלgÖ¡aÖ©dÜ«oÛ§sؤjÙ¨qݪvá°vâ³~å³á±yÛ¬vÛ«yÞ°~ᵂᲄ᱄ⴅ帇庆嶇ⵄ޲~Þ­wÝ®sàµ{ä´ƒå°à¬{Ü«xÛ«zÞ®}á³áµˆä¶„ã¶ß¶…ಂá°~á²ß¯ܳ~Ḅ㵄ง䷃á¯~ീã·à³|â³uá®|Þ¯…㸈纊滎缌巅繀羄á¹}à³zã´}åµ}ã¹ç·ƒâ®{ᰀ么á·zâ¸}ä·}á³|ీܰyÝ«sá­xâ´yâ­râ¨rÛ«nØ©lÞªtá®uá­rݪsݧrߦkÛ¤dÔŸ`Ô eמeן\ן]Ö`ן]Ô›[Ô—YÙ˜ZÓ™UÏ•RÒ–[Ï“WÉPÍVГUБOÏ”SÏPÎMËNÇQÊ’PÐNÌ‹LÊŒGÉKĈGÁƒCƉNƉPÈŠIÈŒIÆ‹MÈŒMljMdžFƉPÅ‹QÅŠMņMÁˆKÁŠO¿‡J†GLJEÉIËM†J¿…KÁ…KÅ„F†G»E¹}Eº}Jº}H»‚D»‚C¾‚@ÁƒD½…F¼F½‚Jº€H»H¿H¶yB³y?¶}D·|F·‚G·ƒ?¸~?¼JÂ…IÀ‰Q»†LºC¸HºJÀŒP¿S¹ƒO½‰UÓ]¿‘V¼ŠN»‡R»†T»…OÁŠVÂŽW¾M¹„E¸„J¾WÁ‰Mº}>µ}@·C¼‚E½‚I¹€B¸‚@º‚A½…>¾‚@¹}?º=½?ºƒ=¼€>º{>¸‚?ÀHˆH¾‚HÀ†M¾ˆL¾†F½‚B»‚DˆK¾‡F¸‚@½‚A†CÁ‡EÀƒJ¿„LÁƒIÂL‚JÁ‚LˆLÉFÀ…DÀ…CÅŠN‹K¼†DÀˆGŠGÅKÊ–UÉ–UËOÑ’MÏ’PÌ“XËQÈŒHÍ‘UÍ•XÌ•QË’NÈNÏ•SÓ”WÑ’YÑ“YÑ”\Ϙ^ÒœZÔŸXÑSΚQÍ•VÌ“VÍ•YÑšZÕžZÖž_Õ `Õž\ÒšZÒœaÔ`Ô™WÒš]Ôœ_Ó›[Ϙ\Ò˜]ÖŸ_ØŸ]Õž^Ô£dÕŸ`Øš\Ù¡cܧkÚ¦lÚ¦jܦgÚ¨nÞ¯pÞ­lÝ­lÝ°oÞ®oÝ°mÞ²oá³rã·rà´và²zâ´vÞ¬nÖ¡mÔ¡oÔ§qÔ¨qÔ¦qÖ«tÙ­sÕ«oÖ©lÕ¥lÔ§lÖ²rÛ´zÙ­wÙ®uÝ°vÛ«hݦpÛ¬~زwÚ¯vØ®xÙ±uØ«nÓ¨mÕ­oÚ­pÛ«sܬtÙ«mبgÕ¤cÑŸbÌžbÆ–YÂUÀ‹U¼‹O¾ŒTÉ“\Ò bÖ¨hÖ«jÕ§jÕ£lÓ¥kÖ¨lÚ¤nÚ¦kÛ©f×£gÓ dО^Ï›cÒŸdΟYË•TÌ“[Ì’[Ñ•]Ô›^Ðœ\Ñš]Ï™XÏ•TÑ—XÑ•WÐ’RÍ“NΔUÑœ\Ò›\Öœ_×¢]ןYÕšXÕœ\Ú _ÕŸZØ dܧgݬfߦkÚ¥d×¥bÙ¥gÞ¦bݤaܦbÞ§eÚ¤kÚ£gܦbÞ§fߥhÛ¢d×¢^Ú¢_ߥhÞ¦nÛ fÚž\מ\Ô›`ÛdÚ¡`×^ÜŸ_¹•`Ô“XÔ•RÑ”TÕ”Xו\Ò”[Ï“NÒ—RÑ–QÒKÒ“QÓ–XÖ™WÔœWÓ™]Ó–VÑ™TÔ™[Ö—ZÔ`ÑœfËYËŽKÏ—QÏ“QÐOÏ’TÒ˜ZÕ˜XÕ–QÕ—PÑ“RДWÕ›ZÓ›\Ж\Ó•ZÓ›[Ö \ÕœXÓ”YЖYјWÑ•UÒ–VÔ™VÒ˜VÏ”TÕšZÕš[Ñ•QÎ’MÈŠNɉMËŽOÌ‘OÍSÊNÈŠSË‹WΓYΑWËWΛ\ÏfÏœpÙ¦tÞ®yް߯€Ý­{Û¨vÛ§sÙ¦uÖ wØ uÖ§vÚ­yÛ°{Ý°xà±zãµ€å·ä´…ⵆ㶂ä¶~ã·㵄Ⳇ߲~Þ²xâ³~ä±…ß³€ß³„᱆ᰅ߲ƒß³€à²}â²{à®yÝ­{ãµå¸â·ƒã´å´~㶀á°{ⴂ彅廂ṅേݮݱ}ീ߲}Þ¯xÞ²嶈淌䵃ã°~á´à´~ã³~ä¹à¸„ܶ~Þ¶‡å¶è»ˆåº…ഀ᳀ä¹ã·ãµ~ã¹|ã¹~嶂å¸à²xß±zá´à±|á´€â¸ß³}à¯~Þ®xݨuߥráªoà«nܪoܨqܧmÙ¥hÛ¤iߢeÞ¢eÚ dÚŸ`Ø›`Ò•Xј\Ò^Θ]Ô”\Õ–`Ò–`Ñ—WΔWÎWÎPËŽPÍXÍSȈCÈŠIÇŒTÉŠLÍŒPÌVÊNÅ„HÄ…NÅ‹OÆ‹HʼnHĆE†FˆHÁ…J‡MÉFĈDÈFÂ…HÆK‡L†J¿†L½ƒFÀˆNÀŠLÁCÀ‚E½€D¿}DÀ‚EÀƒFÁ…L¿ƒHÀ|EÂCÄFÀ~K¼x?¹{>µE´z>·zC·~G¸ƒF¾„M¼ƒP¿†RÀ„M·|Dµ~Dº„F¹}B¸{C¸G·~G¼€D»~>º~GÀ‹WÊ’`Ì–iÆ•cÁŠW½†T»‡N½‹Q¹‡V·OÄZÌœnÄŽa´}L¯vJ®uB·€JÂ]Å”`Ê™hɘeÇ™e΢oÌšd¿‰U¾†RÀXÆ”`Æ]½ˆL¶€=´w5µ|9µ‚C»D¿}>¶}?³|Bµ|B²{C¸€C¾†K¿ƒG½€C½ƒIÁƒK‚I¾~D¾AÁˆF¾ƒF¼z?¼~A¾ƒB¾ƒCÁˆHÉMÁ‡IÀ‡KÁƒN¿JÁ†PÈOÁ‡AÁ„BÉRÁ‰L½„E½„F¿ƒIƆPÇŠUÆŒNÈŠKÇŠPÉLÌQÊUÆ‹MÍŽLÊ’QÅOÆŒHÈGÍ‘QΕTБPГVГ\Ñ’ZÑ–YÒ˜YÒšXЕSÉOÇ‘QË•YЙ_ÑžZÑ›XÔ•VÖ–TÕ˜TÓ–UÓ—ZÒšYÑ™YÖ–ZÕ–[ЗYÒ˜VÕ›[Ò™[Ò•[Óœ]Ô˜XÔ•SÖšXØaÕždÙŸc×cןeÛ§fܤhÚ¡lܨkÞ¨fÝ¥cÞªhÞ­kà«lâ°xã²yã¯vÞ±wÕ«kÕ¥fØ©kÖ¨mبmÙ¬sÙ¯yÙ°vÙ¯oÖ©mÓªoÕ«oÛ¯vׯuÔ©lÙ©oÖ©qÖ©sÜ­xÚ²{Û²wÞ²sÞ²uÜ­wÔ©rѧiÛ®nÞµuÛ°tܬtÜ­wÛ¬wÛ±qÞ±qÞ¬uÕ©mÏ¢dÉœgÆ™eÌœbÓ¢jÕ¦oÖ§l×¢iÔ£jצgÙ§hÙ¬sتpÛ¤lÙ¦iÔ£aΙ]Ì—_Ñ—]Ï“YΔQÏ—WΖ]Ò–ZÑ™WÒ™VÓ™YÓš^ÕšUÕœRÏšZ͘Z̘VЛXÔcÖŸbÖ ^× cÕ›aÖž_Ù¥]Ù¦bÚ¡eÝ¢fà¦iÞ¤kݤfà¦cÞ¤eÛ¢eÜ¡aÝ£cÞ©iß¡já máªtߧná¥há¦kÜždÖž^Ö£fÜ£hà iÜ¡eÜ£dØ _ÒŸbÙ¦nà¨pÝ¢hà¢gÀ“lΉQΈLÐŒFÐKÓ“VÑ•ZΓSÓ‘QÏMÉŽKÎPÐVÍTÌ‘SÏSÎPÍ’SÏQÍ“RÍ•UÒ’UÌ‹KÌJÏ–QÌ’OÊMËOÌJΑMÑXÑQÎKÎ’MÓ˜SИVÏ–\Ò”VΕT̘SÏ—NÑ–SÏ•VÑ“UÑ“NÍIÓNÏNÇ‹LÈŒMÉŽLΕTј[Í“VÏ’^ј_ЖWÏ”_ÐfØŸeÕ˜`ÑšeÖŸoצpÜ®qá«{ᮆೆ߲…à´…à²~ݪxݪxݬxÚ«yÚ¨yÚ¦{Ý«}߯ޱ€Ý±€Ý®}ݱ~Þ¶†ã¸‚ä¶}㰉⯊߳zß³wã°~߬‚Û®…Û¯‚Ý®‚Ú¯‚Ö²~×®xÛ§uÛ§và­zàµ|Ü´€Ý°€Þ²ƒâ¸Šä¼æ»‹â³€à´{ã¸~â³{帉二ഄඇݴ‚ݯ{à¯{ݱ~à±á±á¶…漈潆伆乃âµÞ³㴃渆â·Ü®yÜ­x䶄踆ä·â³~Ü°zݶzå¸uá³uà³€ã´~á²}à¯xܨnÚªsá¯wâ®vá°uã­qܧkÝ«pÞ©sÞ©pß­iÚ§cÛ¤eߦhݦkÛ¤d× ]Õ `ÙŸ]Ùœ\ÔœZÕšYÓ•ZÍ’RÏ•RÏ•VÌRÏTΓYÌXÌŽWÉŽQÆ‹MƆMȆIÊPÇPņGÆI†I„@LJIËŠNƉKÀ„LÂ…IĈFÇFÁ‡?¾‚>¿€E¾F¼€F¿„HÁ…G¿‚F½}@»~=¿„LÄŒQÀ‹O¿‚I¼}C¼ƒG»‡F¼‚A½‚C»ƒC¼~?º{:¹z<¹E¶E¹I¼J¶}B¶v@ºy?¾‚B¸~Fµ|D·B²x9¼†LÉ’ZÀ‡P¿‰W¼„M®u;²xEµ|G´zEº‚I»ƒJºKºƒL¸…QÀ“dͤqУoÎmȘhÈ™dÆ™aÁ“\¿“^¾\À‘^Ë¡pÍ£u¾Ža²zF´~J»‰R¾“WÄ—bÈšg̤sÔ¨zÔ«pÓ©pÊ¡lÆœgɘjÈ™hËeÈ–g·„V°x>¯x9²y?¶Bº„H¼†M¼ƒHº€F»ƒE½„B¼‚HÀ†NÇM½G½€JÀƒK½‚G¹}G¸}?º|>»|E¸}Cº>¹|@¸}G¿‚LÀ…M¿…EÁ‰H½ˆMºJ¼L¼ƒK½€B½ƒB†HÀƒI¾‚D¿‚G¾€HÀLÄ…KÄ…K‡QÄQÅŽMʼnLÆ„GƃBÅ‹FÇŒIÁ„FÀ‰DÃDÈMÍ”QÍ–RÏWÒ“ZΓUÌUΔVÏUÍNËLÍOÊNÉRÍ’XÑ“[ÐUÎ’QÏ‘RÑ‘RÑ–UΕ^ј`Ó•ZÑ”VÍ–SÏ”UДSÊ’NÌ’OÒ“QБOÏ”KΕLЙVÔ™VÔ–RÑ–RÓ™XØž^Øž^Ôš\Ôž^Ô¡`ÙŸ]Ù aÙŸaÚŸ]Þ¦bß©dݧhÜ«r߯lÝ©fÙ©pÚ¬nجoÛ­vß°vܯrÛ¬oÙ«nϤgÌŸdجnÛ°xÕ©uÖ¦nÓ¤jѦgÕªiتuÞ°tá¶uß´uß²wݲwݯt߬tÞ°tÜ­oÚ¨gÙ¨iÙ¬jݲláµzá¹|ݸmÙ¯jÕ¦jÉœaÆ•aÊgΠfÑ¥jÕ¤gÖŸhÕ¢nÖ¥hÖ¥kÖ§q׫mÚ«hÚ¨fÒŸ`Í—ZÏ–`Ϙ\Ï›ZÕŸ_ÕbÓš`×™XÖ™WÑšWÒ˜WÒ™^ЙbÓ˜ZјUÑ—WϘWÍœ^Ó›eØžYØŸ]×bÕœ^ÖŸ`Ü eÙ¡]Ù¥]Ý¥eÝ¢bÙŸ`ÜŸ`Ü `Ú fÙžiÛ¨lá®jߧjݧkà¨oݦmÞ¨jâ¦dÚ¢aןeÝ jÞ¤nݤkݤeà§eá¦aØbÙ£gà©hÛ£hã¦kÅ—pÎŒRÎŒLÏMÎQÌNËŽOÌPÍSÊŽJËEÌŒKËMÌJÐ’OÓ–XÓ–ZГVÍ‘YΓZÏ•UЖYÓ—`Öš]ÔšZÓ™TÖ˜QÒ‘RÎŽLÍMËŽPΓMÑ•TÏXБOÏLËLÍMÊIÌNΕRÏ‘QÑSБRÍMËŠIГMÏ‘LËŒOËUΖYÓŸhÙ§oܨpܧsÛ©tÛªsݬuß²tß²vܨtݬvá³~à³â´‚ãµá´zá±à²‚Þ³~᳂㲃à«{Þ¨xÜ®zÚ¬xß«yâ²{ß°}Ⰶ㵆ٰ|۱᷌᳇ã±~ãµâ¯Þ«}Þ°{à­zݪ}Þ¯â°}Þ¯Ù¬}بuÚ©}Û­{Ü­}ß±â·⸄丆㷆㸎æ¼èºƒâ²ƒÞ¶…㹆ⶂã¶â°|á®{Ⲁᵅ඄᳅幅湇â´å¼Žê¼Šç¶Šåºƒä¹|áµÞ¶~ä¹æ¹ä³à­Ü¯|ã·€ç¼|ä»v涃â®ß³€ã·‚ãµã¶~å²|ã±~ã±â®yà°qá¯oá¬m߬oÛ¦qÝ£mÞ§jݪkݪlÞ£fÙ aÙ¡aÙ¢hÛ jÜ£hÖ¡`לWÖ›XЙYÒ˜XÕ—[Ï•XÉŽMÍPÍŽUÈŠSË‹JÇ‹HÅ‹PȉNÇ…KÈ…QćMÇHʼnKÄ„H¿ƒD¿…GÇMÄ‹PÅTÉ’\Ç’YÊLÃ…MÃK¿‚E¼E¼D¿„HÁ…LÀ†J¿…D½ƒ>»zB¹y?¹€@ÀˆYÆ`‰Qº€H»|E½E½~H»}G¿ƒF¿„F¼€H¶xC²sB³w>³x5µw<·}EµzH´{D¶}?º{A·{D¶|Eµz=±{<ÉcÚªnÁ†M¹ƒGºƒC®q9®w=¯|@±H»ˆSÅŽVÆ‘YÆ”bÌœjÓ©wÔ­€Ð§uРlËkÌ¢mÕªqÕ­rÔªsÕ¥sÒ¬{Ó¯z̧pÅiÇ›eÌ£fÍ¥mÊŸiË¢oΩ|Ó«}Ö­yÖ«uϤqÉ oÍ£nТnΤpÊ¡hÆ™gÂŽ]¾ŠP¿ŠSÅYÈ—aÍšlΙh˘_É™ZÈ”ZÅ’[ÂŽZ¿‰R¿†I¹~B·|B½€E¹{?³}?·~FºyF¹}@¸}@¸|@·~<º‚C¿‚J»€J¹‚H¿„H¿ƒK¹F¹}C¸H¹€D¼}9½€?¾‚B¾†CÁŠOÆ‹RÆQÈWÊŒYÉ‘X˘[Í’VÈŽTˆJ‡FÊJ¿†G„BÄBÀ„IÇŒRË‘RÈPÊSÉ‘SÉ‘RΑVÏ‹WÎOË“RÈRÅŽOÅŠPÄŠKÇQÍ‘TÊŽOÊNÏ”VΑZÉUÉOÍ‘WИ]Ñ—YË’XÌŽWÉŒOÆŒHÊŽNÏ‘LΑMÏPÏ”UÎ’TÏ‘QÒ“TÏVΓQÓ›SÒ•VΑSÏ–XÕ˜\Ø`ÙŸ^Øœ\Õ™[ÕVןYÖ[Ö¢`ÛªiÙ©jתjÚ­kܪfÛ«kÛ«qÞ«pÝ©sÙ©pקgÔ£dÙ¨ná´{à²xÙ¨nТgΡcÏ£cÓ¤gÚªrܯ}Ý®|á¯xâ´~à²zà±sÞ¯uÙªrÙ¤kØ¢jפoÜ«rÞ³uÞ±|ß²{Ù²rЦeÌœaÌœdËžbËždÓªpÛ±uÖ©rСmѤiÒ§nÕ«tשoؤkУgОcÑbРdÖŸbÕ¡cÓ¥jÖŸcÔ™`Ô—`Ó–[Ò˜VЙ\ÌšZЙZÒ˜^И\Òœ_Ôœ\ÔŸ\Ú£^Ù¢]ÔŸbØžbÚŸdÙcØcÖŸeÚ£cÞ¦hÚ¡eלeÛ¢oܧiÚ¨eÝ©iá«mã­mà©hÞ¤hãªnæ¬næ©nã§nÚŸdÙŸdà¤qà¥nߧjà¦mä¦sã¥lÛ aÜ¡eÞ§gÜ¥lå¨mÁ›eÑ“\ÑŽ`ÍRÈŽKÍ‹OÍŠNɇJˇIË‹EÊŽEÉŒIÍ‹NÌŒJÊHÌ’RÓ™aÖžmØŸo×hЙcОbܧgà¥jÙœgÔš^Ô›`Ô™cЖ^ËYÆŒMÊ‘MÏ‘WÐYÎKÈ‹DÈŠJÈŒPÇ‹NË”QΘUÏ”\Ò’^Ñ’UΑPΓXÓ™`ÕœbÔ™iÒœrÖ¡pÚ¨vÚª~Þ«yÞ°xß®~Ⲃഃ߲ƒã³‚à²áµ‚ä¸{à±xÜ°Û²†Þ­ˆÝ±ƒÛ¯€à²áµƒâµ†ä³Ý­uÙªxÞ®ೀ㳂ⲅ߶ˆã¶„à°xß´{㶄ߴŠÜ°‹Ü±„Û°~Ù¬xÜ°zߴⳅ巅幈ⵃܱ{Û¯|Þ°…Û°…Ö¬~Ù¯|ݹ€â¹…â°Ý°}Ý´…ง久᷈᷆⸄۰€ß²„äµ~à¶|à¶ã´~㹄仈淈㹃⼀㻂⻂幂洅â²}ݳzá³嶀á¶á²ã³€Þ°~Þ¯€ã´|丂嶇å²zâ¯|䳂ä³{â°xä°wá±vá³xä­và«v߬sá«oà¯o߯mߦeÜ¥hÚ¥pÛ£jÖ¢cÕ]×™_Õšg× _ÖbÓ˜bÑ”\Ð’^Ï•XÑ“VÑOËKƈMȇIÆ‹L†IÀ‚BÀ„FŠMÇKÃHŃJÀ‚E½…H¾‡I¼ƒJ¾~I¹{@»‡OȘcÍšdÌœbÉšaÄ\‹P¾†I¼€DÁ…E‹UÃŒWÈ’WËUÄJ¸z>²v<µxD¹‚L½†J¾‚I·|HµzA¶}>´{?·z>ºE¼‚L¸€H¶|Aµy=®t<®t<°t9±u=´yB±y;²x=¶zE´wB±v9±y9²x@²|IÄ™eÓ§jÀ‹P¹ˆRÂ’Y¸„J·„J½ŒOÃŽ^ÉlϤpÕ¤tÕªxزzÙ´€Õ°~ШṳqϨsÔ°yܸƒà·…Ù²„Ù®€ÖªyÒªxÙ­zÛ¯}×±{Ú³|Ö¯€Ï§uѪpÕ°ƒÕ­„Õ­Ö­€Ò©vΦuÒ©zЬvÒ­uÒ©vΠtÏŸpΟoÓ¥oÕ©uÔ§vÕ¨wϦvÉŸnÈœhÆœfÅ—^¿T¹…Rµ€H²y<´x@µ~?µ}<µy?³}B·H¾†U½ŒQ¾ˆL¿ˆVÁŽZ‹W¾†P¼†P¾†T¾~M¹}H¹ƒF¼@½ƒE¼†Lº‚G¾…DňLÈ“ZÉ›ZÊš`ΠdϤbÌždÍ–_Ê’YÇRÊFÀˆIÁŠOÁ…G†EÇŠJÅŠMÄŠLÆŽLÈ’QÈŽRƉNÉŽVËVÉŒOÉŽLÇŽEŠDƉFÈFÄIÈRÉŽRÄ‹MÆŽPÉŽRÊŠWȉSÅŠOË‹TÍTÉUÇŽOÆŽHÆŒEÈŽGË’SÍVÒ‘XÓ–ZÏ•XЕZÔ—XÒ–TÏ•UЙVÓ—\Î’UÉQÍXÓ—\Ô™ZÖž`ØŸZÓ˜QÔ™TÕœUÒ˜WÓš[Ö _ÖŸeÖdÙ¢bؤbÖ b× eÚ¢gÙ£hبeØ«eÕ¦kÕ¤lܱsã·vá¯lשcÑ¡cÑfÔ¤jצdÙ¦cשnÕ«qÛ¬kÞ®oØ«rتpÙ­oÛ«vܪtתi׫pשvÙ­vá°yÞ­tÖ§hÑ£fѤjÑ¢kÔ mקqÖ¬qÕªjÕ¨eÖ¤kÔ§kÓ¥gÒŸfÏ›_É”`Ç“^Ì—]ÎdÒ¢dОaÍ•WË“UË’VË”Z͘\ΘVÑ—VÒ”UÓ–ZÔ™\Ó›]ÕŸfÙ¢bÙŸ[ÔbÕš`Ö™`× dÖ¤aÕ¢aÚ¢cݤaÙ£fØ¡dØŸ`מcÛ¡_Û§bܨlߦlä¨nä¨pߧkÝ¥fÞ¦iÞ¤iߨkâ¦gÞ¢cÜ£gà¤gã©gá¬jÛ¨lߧlâ¨jà§pà§lá¢há¥må¨h¿”dÒ‘TÑTБXÌ‹TÎMÐOÍUÊVÌQÏVÔ–_Õ•ZÏŽQËYÑ’^מbݨoà§sÛ¦xÔ¢nÒ¢fרuÞ¨zÛ¦pÙ¤qÙ¢sÙ¦jؤeÑ–[Í‘XÕ˜]Õ˜WÒ•PÍ“TÊ‘WÌ“\Í—^ј`Ò kÕ£jÕjןgל\Ò›`צsÝ­xÖ§mÒŸhКjΛiÑžmΟlÍhÏ¡jÙ®zᵃ೅߯ƒÝ®xܬzâ°~ã±~Þ­Ú°}Û­xݪ~ß®„ಂ޲ݲ€Ü²†á´Žâ¸ŠÝµ…ⴄ涇á´Ý²Šà´Šå¶Œã¶á¸Šäºá²‚Ý®€Û²{ܳ€Þ®‡ß¯ã·…è»è¼“蹎粄㯄ഈ⸑ⶊۭ}بz׫y׫tÙ¬uÝ°~ß°ƒß³†â¶ˆá³‡ß´‚ᶅްƒâ¹„ç„滂布ⶇ㸈洆äµáµ~á²…ß³‰Þ´‡ä²ã´~Ý´€à±ä³~á±xÜ°t߶zàµß®{Û°yß³{ä¶yå¸}ä´ß²yá­wá¯|á²|á®{á¬vß­wÞ¨vÞ§nÞ«jÞ¬oÞ«uݦqؤhÔdÒœaÖž`×`Ò˜`Ò—XÒ–NÍ’OΑVÍUÍŠTÌWÌUÏŽNÌNÈŒKÇŒHÆ‹JÈE¿ƒI»|J»E¾„JÁ†LÀ„H¾ƒH¾I»|I¹~K»N¾…D¼„HÅŒ`Ò¡kУkÍŸoФrТnÐnÏœhÌšhΟlΟfΙfΛiÈ“Y¿€FºzC¸~Hº€I¹Iµ}H´uDµx@»BÀ„J¾…I½…C¼‚F¹~I´|I²{?µ{:´x;´x<¸~F¼†P¿‡P¹K¶‚I¶€E¸H»…O½†O¾‹PÁ’UËžaÐ¥nɘbÈ–eÑ¥oÑ¢qÑ£tÖ«uÖªzÕ©uׯ{Ù°†Õ¬Ó«{Ó­€Ï¦vËœnÊŸsÑ«~Ù³‚Ü·†Ý¸ŠÙ³‚׬}Ú«}×±„ܶƒã·‚ໄܸ‚ܳÙ²Ô®|Õ«{×®€Ø®|د}Ô±wÑ­tÕ±{Úµ€Ú±{×®}Õ¯{ЫtЩvÕ°|Ö«yÔ¤wשÕ§yÍŸhË gËžnÉ›eÄ’_»†W·J¹ƒF»„L¾ŠSÃTÁŠSÀ‰UÇ’]ЛgË›k˘gΛfΞkÌšhÇ“_Ã[¿ŠVÀ‰RÃSÁQÁQÈ™WË™`Å’WÀ’Uǘ^Ó¦oÒ£sСqÓ¤vСqÍŸlʘeÁŠS¿†PÁ‰RÄŒPňPÄIˆIÆPÈ‹RƉQÅŒUÈ”YÌ”XΕcʘbÇ“YÊTÌ‘WÆ‹QÀ‡IÄMÇNÆŒMÈQÉŒSÊOÃMÍ‘P̉QʉLÈŒLȇMÊ…KËŠOÉ‹RÆŽRÇPËUΓ[ЕUÐRΔZÓœ^Ö^Öž^Õ™bÕ”ZÙaÚžeÔ–WÏ”QЕYÒšaÕž^Ö›ZÖšWÔ•ZÑ•WÑ•QÓ”TÑšUÒšZÓ•UÔ–SÔ˜YÓ™[ÖžZÖ\× a×£aס^Ö§gÖ§eÕŸbÚ¨já³là¬qÞ­qÖªgÓ§nÛ«qÞ­nÙªmÔ¥kפjÙ§nبmÕ©lÖªqÝ«pÝ«uÙªwØ©pÖ¨hÖ¨kݱvá¼}Ù°pÏœbÌœcÏŸeÕ¢iئmتkׯnܳqÛ¬qÚ­pܲpÕ§nÕ¥nÕ©hΠfÍ›iÑcÑcΠbÌ]ÄR¿ˆLÆ‹QÈ‘VÊ’QΓQÍ’WÑ”ZÕš_ןf×¢iÛ¦jÚ¥i×£cÖŸcÕ›aÕeØžhÙŸgסmÖ¢hÙ¥fÙ£gÓ¡g×¢aÚ¡fܤkà§gä§eÞ¨hà¬eä©eߦhܤcÕ¡]Ö ZÜ¢dߧpà«jߦfÞ£iä«lâ«jÝ¥aá¦fâ©qáªjæ«kâ¦mÛ¥jÝ¥^½‹WÏQÑšZЕcÑ]ГYÓ•YÕœ`ÒœhÓ˜hÖ¢jܨoÚŸlÔ™fÖœfÙ jÛ¤oÞ«zÞ«~Þª{Ú©vÖ§vت}Ûª{Û¥vݨtÝ©uÛ¨tÙ£mÔžlÖ¥qÚ©pÔ¡fСhÕ¢fןfקqÛ±uà²~à°ß¬{ܦuÔŸfÌ—\ÍœjÙ¬zÞ­{Óœm̘h˘fÊ–cÌ›gЖgÏ“hРrܯà´|Þ±vÞ«zÝ«zß«yÝ®‚ݯƒà­Ü­„ݯ~Ü°zÝ´~à³…Û¯…ݳ‚Ḇã¹æºŠç·…㴂ⶃⲂݭᵂ纃ᵄá·ä¶„á°‚ß³‚ᵄⳅ浂᱀à·é¾ä·†ã¹‹è¼’帋ã·æ¶‡çµŠà´Ü°ß®~Ý­uÚ±ußµ}ᵂใ⻊޳ˆá±„嵂à²zආ乊ä´à³‚ݲ‚ಂ㱄䲀â±}ã°~ä²}á³xݬxÛ¨xܪzÙ«y׬sÚ«mÞ°pà´wà³€á·}ã¶xä´‚â±Þ®vÞ¯nß®qß­uá­tâ¬tâ©oÞ¦lÝ«nܦoÚ£qÚ¦mÞ©kÞ¥jØ cÔ_Ñ™YÏ—UΖYЕ\Ζ[ЗRÏ‘LÌMÌ’NËMɉIˇKËŒSÈ‹UÆŠNĉMÉRÆNÄ„EÀG¼}F½€K¿ƒO¿J¼I¼Fº=¸~=¹‚M¿‡OÃWÊ–bÍ›eÏ¢rÑ£wÓ¦yÛ­}ß°~Þ±zÚ²Û°‚Ù«wÍjÈ–gÊ™bÆŽR½€A·~;»‚I¿‰O¼…I¶Fµ‚FÃO̘^ÍŸ^ÐYÍ•WÆŽRÄ‹TÁ†M¿ƒI¼Gº€D»†KÁ‘V˘cÊ”fÆ“YÆ“[È“^Ë›dЦhÔ¨kÓ¨rÕ­tÚ±zܲ~Õ­yÓ§zÔª}×°~ߵݳÖ«}ЦțtЦzΣuΡtÏuÌ™mΙlÌŸsׯxḀ᷄ܵڱ~߯|Þ±}Ù±}Û²‚ݸˆÜ¶ƒÞ·„Þ¶Ù°{Ò­yÕ­Ö¨€Ö«{Ø°{×­zÖ«|Ø°|س}×±×°|ÒªxÍ£rЧsÕ¬zѧvΧuÖ¬w׳wÕ°w׬zÔ­yÕ«oÕ¥qÍ vÇœjÈ›iË›jÍžgÔ©qÑ©hΤcÓ©nÔ§oÑ¢qÓ£pÔ¤oѦmÌŸcÆ“`Æ“bÈ—bÆ—dÇšfÌ›dΠgÖ«tتsÑ¥nϦqΦs×­z׫xÑ¥mÑ¡qÍšjË™aË–b¿‡Q¶‚D¼ˆKÂRÃUÁ‰NÀŠPÆŽYÈŽXÄ‹PÇ•UСeÓ¡mÓ jÌœhÇ’cÄŽ\ÄZÆWÃNŠQÉŽWЕ]Ì—[Ë‘YË\Ë–WÊ“WË‘YÊ•VÈ’VË’\ДZÍŽTÉ‹SÊPÍ”VÏ”ZÏ–\Ï—^ΓYЕXÑœcØžfךjÓ•hÔ”`Ô˜gÓiÓœ^Ó™`Ô™jÕŸjÕ›eÐ’^Ë’YÊ“PÈIËNÌOÈ”P͘TΗOÍ–LÏ’NÒ•QјTÒ™VÔŸ[Ô¡WÕZÔ ^Ö \Õœ[סeÛ£jÚ©cݪ`מ[Ѥa×°kÝ­pبcΟbΠjÕ¤eÖ¤eÕªkÙ¬jß­lÛ¨jÖ¥jÙ§kÛ¦rÚ©uàµuà³yΣeÁ’SÆ’[Ê–cÍŸgÚ«lß®sßµ}à»xÞ³lÝ­rßµvÞ±xÛ®xܶ{Ú±yÚ©vÚ©tÙ­nÙ­mÓ¥eÅ“\ÃŒPÄ“QÇWÈKÄIÅPÉ–LÐ[Û¢kÝ¥cܤ`Ú¥cÕŸ]ÖYÙž`ÖŸdסeÙ¢cÙ¡bÔ_Ô\Û¢dÞ¤fÛ¥eܦhÞ§má¨qá©hß©iݨmÞ©mߦmÙžiÔž]ן`Ù¢kÝ¥mà¦nߥmÜ¢oÞ¨pá«jݤhâ¥hä¬mߨnÞ¥jÙ¡dÒ—]Ò’R´…OØhØ¢oØ¡tÛŸoÙŸeÓœfÛ¥rà®Ý®‡ß¯†â°~߯Ú®á´æ¸ˆä±Œã­‡ß¯ƒÛ³à²€â²ä°€à©~Ù©~Ú¬{ߪxÞ¨xÚª}Ý­zÛ«vרsØ©rשxÚ«{߬xá¯}㷆缆â¹ß·€ß±~ÖŸfÇ”RÆ™]Ô¨xÝ©{ÓŸmÖ§qܪxÜ©|ᯀ㯃ް€Ý³„å´Žã±…Ý­{Þ²}ݯzÜ°}Ý´€Ý°â±…䵃á¯~Ý®‚Þ¶‡á¸‰â·‹â»‘滕专㺌ᵊݯ€àµ}幈ⳉ㶉嵈㱃᷈久à´}ݵ߲ˆß®†ß³€Ý°}Þ®ⵅᶃค羉罊漉绉鹇綄ⴅ㵃ᴄഅ㵃洇䱈嵆涃㲃㷇ⳃ୅Ⲉᴅᴂà±{ᲃ㴆䶄峄æ´縂æ±áªrÞ¬tá±xà±mݪiÞ©nÞ¯tß®zá°zã´|æ²}ä²â¬vߥlݪpá®sã©qߦkÞ¦iÛ¨nÚ¦lߧjÝ¥jלcÕš_Ù¡gÜ gÔ–ZÊ“VÊ—YΘVÏ’QΖYјZÏ“SÍŽNÊŠKÍ‘\Ò˜^Ï•OÌ•Wʘ`˘XË–XÌ“ZË—^Κ]Ñš\Ì•`Æ`È^Ä[ÅŒSÃ…J¼‚H¾‚MˆUÈ“\ÍšhÒ¥uد}Ö§rÒ£nÕªxÚ±~ܳƒÛ²„Û¬€ß®ƒÛ±~Õ§rÏšj̘gΠhÒ›cÈ‘[ÀŽSÅYË•dȘdÇ–dКfÑ£uѨ|Ù¬yÙ®{Õ«zÕ¦oÑŸkÈœhÉ™bÈ”[Å•_ȘeÏŸiÓ¦tΡpÌ¢nÖ¨sÝ­|ݸ‚ß»…Þµ…߶~ෆಈ޲…د†Ó§Ó¦~×®€Ù²~ױد€Ò©sÊ¡qÒ¥sÖ¦mÐ¥hÒ©rÕ¨qÔªtÛ°{Þ·zܹ‚ṊḈ඀޶Þ¶„Þ´~ܳxÛ¶…Ü´‰ß²†ÝµˆÜ´„Û°|Ú´~ݵ†ß­Ú°‚ض†Ö°ѨvÕ¬}ׯ}ЫqÓ§sÓ£wÐ¥uÖ°ƒ×­‚ѦuÖ¯zÚ³yܲxÜ´„Ü´‚ܵ‚Ù´ƒÜ³vÛ³vׯ}Ò¯{Ñ­zÙ­}Ù«vØ®vÚ±„Ù®~ÕªvÔ¨vÐ¥oÏŸpÊ›kÆœjÊžqÍŸmÍeÌœjË¡kÑ­rÞ¹ƒÞ³…Ùª{Ö«zÕ«{×­yÔ¬rÓªqÓ¦nÉšgÌšiÒ¡nÀŒZºŠQÇ™_ОjÏœi˘`È™`È—`Æ’ZÇ•XÏžeѤzШzÒŸoΓ`Å‹TÇQĈRÅ‹VÅŽ[Æ’XÌ™`ЛoÓ mÑŸjСiÔ¤hÑ™fÌ—bÍšbÏ–\Ï™\Ϙ]БWÍ‘TÍ[Ó™dÕœcÒ˜`Ó™aÑ–_ИaÒ hÒ¢nÓžmÔžkÖ¡nÕ¢oÔ¡eÓcÒ kÕ¦nئrÒžlÊ–bÏ“]Ë”YÅSÅ…QÁƒO‹IÊ–T͘\Í”YΗXÒ–]Ó“ZÏ—YÑ™ZЖXјSÓœYϘXΗWØ¡[×¢]Ô£`Ö¤eПaΛ\Ó¢fצh×£fÑaÍœ`Ò cÕ¤iݬkà°hÞ­nݬjØ©gÛªoß°sÞ³uá³vß°rÔ¤eË™ZÉ—\Ä–`Æ™aÕ§gܲpß²tá³oرqØ«qݱuݲxÜ°zÜ­yܪsÙªsÕ©nÓ¨nÙ§sÕ§kÌŸ`Ëš^ÌŸaÈ_Æ•]É—]ÉœbÈ—`Й`Ò`Ò`ÙždÝ¡hÛŸhסeØ¡dÛ¢dÛ¤hÚŸfÕš\Ó[Õ¢cݤdà¤eݤlܧmà¨jã¨iã¨iå¨ká§kà¨oã«qݧt×¥qÚ¥mÞ©mà©jÝ¥iÝ¥hÜ£gÛ£lÞ¨oÝ¢lߧnã«lÚ›dÏ•_Ï—ZΓWΔX²ŠYß®vÞ°~Ý®‚ߨ{Ù¦vÑ£rÚ®}㺃ᶀݭ~ᯂᲆ޴„佋缎ⴊ㲇á°جyÜ°}à±|ⴀ䷂ã´â²}ä±y᳀߶ᰅڪÕ§xÚ©}ܲ|ݯ}ߪ}Þ®|㶂㹆ⵃⰀⰀ߫tÑš`Æ—cÓ¨uÞ±~Ü®{á¯æ³ˆæ·„㻆终湋幎繇å´á°€à¯{ß®~Û­}Û³}ܳƒÝ®€Þ®‚ܯ†Û°„߶„ã»ä¾•åÀ’湒㲋ݲ€Ù¯×­~ß³}蹅㸇߳†â¯ƒàµ†àº‰â´†Û¬}Ù­߯ެ€Ü«Ú©٫ݲൄೊ㸆湆纋帆㷄淅涂ã´}ⵂ᳅Ⳁâ³{Û«vÛ±yâ¶|á±{à´}à°zÚªuÚ±zÞ´~Þ®yÞ­yá±{ä±yã±yä´}ãµyá´~ⲃ߲ã´}æ¶wá±uÛªz߬yâ®vÞ«vÞ«s߬rá«uâ¯uß«qÜ¥fݦdÞ©pÙ¦lÖcØdÛ¤eÙ£eÖ—bÓ“eÑ–eÓ”^Õ–UÑ–TÌVɈOÉŒOËŽLÉMÊ’XÉ’XÇŠLljMˆMÆŽWÔlÏœh˘aÐjÒžtÕžoÔŸlÕ¦vÖ«xפrÔžqÍ–lË–gÊ–bÈ‘\È‘]È’]È™aÐ¥jשvÕ«}س{ݲ}שxÒ¦rجxÙ«{Ô«|×­|Ü®ܳ…Ù±{Ô©rÒ¤vÖ©|Ú¯|Ú¯}Ù­uÙ®qتvÖ©uÖ¬vجyܱ}Û´zÖ­yÖ¨{Ù«|Ù¯zܳzÚ®nЦjΧrѦoѤnѤsÒ¦uÖ­zÕ«xÓ¬uÙ¶‚Þ·ŒÞ¶‚à¸}Ḉܵƒ×¬{רzÔ©yЫxѪrÒ©tÖ¯~Û´}ܲ~Û²‚زÚ®{Þ²}Þ´رzÚ²~Û¶€ÛµƒÝ¸„Þ·‚Ü´€ß¸‚ߺ‰Û¸‡à¶„ⶄໄܵ€Þ®~߳ܵ„߳߶ƒÛµƒÜ³~ß·ƒÝ¶Û³}Ù³Ö¬~ЪzÓ¬zÔ¥yÓ¤yÒ«yÓ«uÙ®xݵܳ}ÓªxЩuÖ¯|ܱ|Û²uÛ¶~ݶ„ܶ€Ù´×²~Ù²zÝ´€Ù±~Ô¬yׯ{Ù²Ú­}רvÕ¥qÓ¤n΢jËŸiËŸkÌŸoÍ›pÉq΢mÒ¤oÕ¥rÛ²{ຊܲÓ©lתrܯ|Ú²}Ù®|Ø«Ò¥zÉ–fÎkÔ©qÍŸcΤpر}Û²}زzÕ­xשvÕ«sѨq×¥tÙ«tÙ°tØ­rÔ£wÌ’eÊV¿ŠW¾‡QÀŒTÄ‘YÎœdÕ§nÔ§pÔªuÓ§oÒ£nÐœhÈ”]È‘]Ê^É’^É’\ÉŽWÆŒVÇUΓWÑ™]Д\Ì“]ЛdÓœeÒšdÓ£lÚ©yÚ®x×°vÙ­vÚ«rܬ{רuÒ§oØ«mÙ¨hÑ£hÕ¦nÙªoѤeÇ’RÁˆI¼ˆQÅbÒžgРaϘ[Ï–UΔYË“WÇ‘NËOËMÈ’JÍ”MÏ“QÑ”XÔ™\Òœ_РdÔ¥]Ø¢ZÑœ_Ò›]Ö `Ù©hצeÒœ]Ïž^Õ ]ݨeá­iÜ©fÙ«iÙ©gÕ¦fدgݳnݱtÞ³qÙªo΢jË¡eÆ—cÀ“]È™[Уe׫lÙ¨jÔŸeÍ¡bΣdÓ¢kÕ¥jפfÖ¢eÓ¢eÒ¢dÔ¦hÖ¥nÖ§pÓ©jУeТjÓ¦nΤkÍŸk΢jÈœ_Æ”VÁRÀVΕYÔ›]Ô¢hÙ¢mסbןbÜ¡hݦdØ bÕ›gÙ£bß©fà¦kÛ¦hÜ©iá©hߪhß©oä©nâªhá§lá¢nÞ¢jÞ¨mà«uä¬oã¬jÞ¦kߨhܤaÖœ_ÕžcÖ bØ¢bÚ£dÑšZÆ‘XÇ•_ʘaÑža·“]à±|à²|à±à¯Þ­|שyÛ¨߯ß²‚㱂ã·}ã¹ã·‡â¸‰ä´…ᶀ߶ƒà­Ü©uÕ§uÙ¬{ᵀ㽈羊ⶊೀݰ}Ø­yÙ©vÙ¨yÖ§xÙ­|ßµ„嶅᷇ڱ‚Ý«€á²†ã¶æ¶~緆趈䴀֬|Ú­ãµß·᷃丅ⷄ幄繄渄麉é¹ä·ˆã²€ã°Ý°zÙ«tÚ­{ß´‰ã³†â³~á³…à´‚ã¹…ç»è¸‹å·Žä·Œâµ‚à¯}Û«{تܮŠãµˆå¸€â´ƒã±†â¶„⼊嶈߯yÛ«{ୀ᳀߱€ß¯ಀ᳀â³{à±Þ³‰à´…亇äµ|à²xå¹…å´„á¬á°zâ²vã³ã³~Ú¬sܳyåµ|ã­|â´~ã¶|â®xÞ±{à°xà¬qÜ­pá°|ç²€â´|ã²yâ¯vã³xã±{á«z㬀á°{à³sà°oá«oä¯t߯vÞ¬tÝ©sÞªsá¬qß©nÛ jÙŸkÚ¦hÚ¢bÖcÖœ`ל\Ô™_ÏYÏWÕ—XÑ“XÍŽYʈQȇLËŠNɈMʼnHÇ‹LÆŒMĉIăH¿F»E¼ˆRÉ™^ΛeË›pΣvÔ©|Öª}תzÛ¬~Ü©Ú¨zÖ£pКnÏ–nÎhÍ¢mÒ£qÕ¨sÖ¬vݳzീ۲}Û³~Ú³‡Ö­‚Ö¬yÙ¬zØ­|ׯƒØ¯‚ܲ„ß³†Ú³Õ±Û­ƒà°‚Ý´ƒÛ¸â¼‡âº~߸Šà»‰à¸€à¸„â·…Þ°}Ù¥yÓ yЧ|Ù´ṇ߶ܱ}Ú±Û³{Û±zد|Ù°ƒÛ²Ú³€Þµ€à»†ßºŠÞµ‚Ú´Û·„Þµ‚ÖªuÎ¥oΟrÉ›kÌ hФrÓ­zܹ„߸ܷƒÞ³ƒß¶ƒá»‰à¹‡Þ¶€Þ¶Ý³„Ú°}Ú±}Ú·…۴رܵ…ß·Ú¹Þº†ãº…ංâ±~à²ßµ€á¶‚á¹Þ¶ݵ߹޶ƒÝ³ܳڬ€×¬wÕ­vÖ«wÕ®xØ®}Ü°{Þ³߶„Þµ„Ú³€Þ¶ß³Ø­~×°‡ÜµŠÝ¶Ù±yÛ°}ݱ}Ü´|Þ¼ˆßº‡Û°Û¯Ú³Ö¬xѨtШsΦlЦh΢kΡnÑ£rËžmÉžoÓ¥tØ©xÛ°}ൂ᳅ڮ~ÒªzÒ©{Ö®€Ø²Ö«|Ó¥vÍŸiÈšfÏ¥oزvÚ´{Û¶€Ú¼‚Û·ƒß´~ߺ~Þ·…Ý´„Ú³ƒÞ´‡à°}Ü­zÙ°…Ö¬x΢bËdÊ¡mÇhÈ•dÐnÛ«xÝ°{Û®y׫vѤoÍ›jÌ”`ÅŒQćMÁƒF»~E¾†O¿ŒL¼‰H‰JÈPÌŽTÉŒTÅŒSÈQË’W̘`Ï¡jÙ¬tÛ­wÛ¯|ß±€Ý®{Û²ݲݮzÜ´zÞ±{קvÛ²tåºwÞ¯tОfÍ›eУlÔ¨rÖ©oΠ_Ë•WÊYÈŒQÈŠHĈEÅŠMÍŒNËQÍ’UÒ•UЗUΗWјYÓš\Ó¡^Õ¦]Óž]ÖŸ`Ù¥^Ú¦bݪnÙ¦fÒ¡\ÍŸ]Ö¨aݪcØ¢aÜ­hÛ¯hÒ¢dÕ¦mÞ¯vß­sß³vÞ³vÙ¬jÕ¨mΟhÈ™]È`É fÓ£gÖ¤lÑj͘fÊeËœhÍžhÑ£hÕ¥lרnÛ¨vÜ©yÚ­sÛ±vرzÕ«vÖ«vÚ²~ݱ~Ö«rØ«kÓ¡fÇ‘a½…S¹‡HÁNÈ•UК^Ôœ`Ó˜]Õ›`Ù¢dܤcÜ bÚeÞ¢eÚ¤gØ£kÝ£gÛ¢lÚ¥nݨhà¬kä­nã¬eß­eÞ¬hߨnã­zç²zæ­tݦgÚ¢`ÚbÕ™bÔ cסbÒ˜`ÒžYÖžRÕ˜WÊ“YÇ•`ÐœeÛ¦k—mß®~Þ±â²}á±€Û°{Û©wݧ{ݯ~᷂ೈ㳈å¸~å»ã·Œâ²‹á²…㷈浄â³Ù«{Ò¦uÙ°ß´ŒÛ°‚Ûª|Ù©vÕ§pÒ¤rÒ¤sئqÝ­qÝ®w಄Ἆฆ߯€Ú±~ز}ܬ~á±à¶…ã¶å³€á²€Þ³ãµˆá²…à´}ä¹~ã´€ä¯å±ß´àµç´‚ß³ƒÞ°|à¬vݯ~Ù¬Þ¯ƒå¶Šã³Šãµ‰á¹Þ²}Ü°€á¶~å´Šâ°‚Ý°{Þ¬‚Û«Õ«{Ù¯{Ú³~Û²€ß³„ᶇ⸄渄滇ἅ߹‚à´~ã´~ã³{á¯}â³€ã²zà°ã²€à®yÞ«}Þ¬â°}ä°xá®z岂䯂à®~à²zܯuß±}䶃ݭyÜ©qâ¬{áª{Þ¯{â´yä³{â²t߯qܪtÞ©qß­vá­{ã®~á¬{Þ¨rÞ¬nã¯wâ­vÞ¨rÞ«xâ²{á«tÞ¨pá¬wâ¨vݦnÛ§rÛ©qÙ§lÝ£kÛfÕ—bÔeÖ¢eÙžeÖ™]Ô•[Ó”TÉNÈ•RÏWΔVÌŽPÊ’OÍ’TËŒUɉPȇGÅŠJÊOćIƒF½ƒB¸A¿†LÈZÈšfÎ¥rÒ«xÙ¬ܬ~Ø­}ׯÙ«xÙ¨x׬wÕ©vتuØ«rØ«yÛ®€Ù®{Û­~ݲƒÛ¶Üµß¯~Ù°~Ø´Þ·}à¶~ݶ‚ܵ‚Ù²~Ù³~Þµ€Ý±€Ö®|×°~á´à´…ß·„á¹ß¹†ßº…㸃á¸඄ೇܲ~Ú®yÖªvÖªxÞµƒÞº†Ý¸…Þ¸‡ß¹†ß»‡ß¹ŠÝµ‡Ý¶†à·‚ÞµƒÞºŠáÁ‡àº†Ý¯€Ø«{۲ݷ~Ø­}Õ©{ϦqÌ£kͦnϧrÕ¬vݶ€á¶‡á¶‰Ý¸ƒÜ¸ƒßºŒáºŠáµ‰Þ²‚Ú±y׬zÙ¯yÛµ}ܲ€Þ³à´†Ü±„Ù´‚໅㻊ẅ߷~Þ¶„ܶ…à´‚á·àºÞ³ßµ…Þ·‡Ù´‚Ü´Û³‚Ý´Ý·zÚ³{Û±{à´|Ü´‚Ü°„ೄ޶‚߸巃䷄۳۳€á¸ƒß¸‡Ø´}Ö±xÙ°€Þ²€Þ·‚߸†ß³€Ù°|Ú¬}Ú­~×°~Ô­zÒ¨uÖ§yצtѧqÑ©zÕªuÔ¦pÖª~޲㳃ܵˆÚ¶Ù²vÒ®yÓ¯~×­{ׯyÕªvОvËžqÍ¥nÕ«uܳ~ß·à³}ßµ}ൂ㷋ⶂߵ~ḈáµÝ°€Ý®~ß°yà²Ý¯€Ù¯{ܱzݲ{Ô°zͪqÒ«w޵ܰ{Õ£xÍ rÅ•cÅŒ]ÃU¿ŠPÀˆT»~F¸~FÄUÄ‘Y¿ŽUÅ[Å’]ÃWÆŽVÅ‘TÈ“YÈ—`ËœbÒ¢lשyÔ¦pÖ©yܱ‚Ù®xØ«~Û­ݲvá¸|ã¸à´{ᵀ溂å¸{à²yܱxÝ°rÞ¯vÙ­rÏ¡dÊ—`Ê”[ÅJÃŒAÆF„GʼnHÍŽKÓ•RÕ˜\Ö–WÒ•MÒ–PÕšYÕœ^Ó˜XЖTÒ›ZÕŸXÖ¢aܨgÛ¦gØ¡eÍ™YѤ\Û«aÔ^Ù§jà²rÖ§eÔ¢iݪxÙ§qÖ¦tÛ¬tÜ«lÝ­rß­wÙ¦m΢eÏ¢gÖ£nÙ«qÙ¬jÔ§nΦoΤh΢gÑ¥hÔ¦jÙ°v߶tÞµsÞµ}ß±yß°vÞ´|Þ²zß²uâ¹zä·~ß²vתoÏ¡kÈšbÆ•ZÄ—Y‘XÆŽRÉ“PÅ“NÇ“WјZÕœZÖ¢bÚ¢f×bÒdÖ¤hÛ¦dÞ¦aݨeÞ¨jߨkܧkÙ¥eݪe߬kÜ«jܪoß­oÛ¦^Ò•SÈŽYÆTÈ–WÒ¤^ÑœWÆWȘSË™QÈ’S̘\ПbÍžbקjÀ—rß´~Ü°€á²‡â¯‡á¬ßªzÞ´‚ṋⴅ಄ݯ߰‚ⵆⵊ߱‰ß®‹ãµ†æº„âµ…Þ°zÙ¨tÚ¬zܳשÖ£sÕ¥pÔ¡uÕ£rÖ¬tÛ¯yÞ¯~à°zá²}ݯ„Û®‡Þ¯‚Û¬z׫t×°xÝ°{ß­{â²á¶~áµæ¶ƒã¶‡á®„á³}à·{㳂æ³ä¶…äµã³ƒá²}ß²ƒà¯|Þ­y۲಄㲂崇ⵆⶅ㴈ᮆޮ|ß·}â³à­vß³vÞ°{Õ¤vÓ¨xÚ®{Û­wÝ°yá³}âµ}䵄縇ç¸ç¶ƒç²wå³u㳀߰ޯyá´yâµ~äµ|å²tâ¯và°}ã®yã²yß±{à²~ã³}à¯qá­oâªrܪoâ°zèµ~â±uâ±xä³yà®{à¬|á°wä¯vå«tߪuݪoÞªlߨnâ¦là­uݨrÜŸfÞ§pã¯yáªpÝ¥oÞªrá®s߬nÞ©má­qÞªlÝ¡hÞ¢jÛ¤nØ£pÛ¡kÙš`Ï’\ј\Ö]Õ›\Ó–YÏ‘YÍVÉŽVÉYÊOÇŒPÈ‹SÏ•]ÔaΗ\ÈŽPÊŒFÇFÁˆMÆ‹T‚K¿„IÈ‘WЛbÑ mÑŸyÖ¥zÙ¨xÜ«ƒÝ³†Ù´€Ù¯}Ù­zت~Û¯„Þ²ƒÞ²Þ´‡Û´Û°{Ù¬Ö¬‚Ý°ƒÜ²Ú°}Ý®{Ú®|Û³€à»…຃ൄᶇݱ{Ü°|à³…Þ°|שvج€Þ·ˆà¸…߶‰ß¶Šà¹€Þ´‚ܱ„ߵݴ~Ù°|Û²{Û¶Þ´~à´€Þ¶…ß¹‰à½ˆâ½ˆá·†áµ‚á¸}ߺ€à»ˆãº‰â¶Šà·ˆã¼„⻆㳀߯à³…â¶ÞµßµˆÞµ‡Ü·â¹Þµ~Ú±xÞº}Ễⷈ޷†ß±„ೆช߷‡Þ¸‚ݵ€Ú®ƒÛ²†á¶ƒã¶Šâ»‰ä¸ˆâµ‡ßµ€ã·…上⺆⺄ḇⶇâ¶ᵂ᷃à´|߶…ẈߵzÛ¶{Û¸€Þ¶‰àºŠÞ¹€Û´{Ü´~ß±„ᲇṇ㾋仆⹊侌ä»â¶â¸ˆà¸„ݳÚ³{×°yÛ²€ß´Ü±{×®yÖ­{ܱ{Þµ{߶}Þµ}Ú´~Û²~Ú´Ù¶~ص„ܵ…à·…à¶à¸}⻆޸Þ¶{ݱ€Ö¯€Ù­‡Ý¯„Û±{Ø°yÖ¬tÒ¨nÒ¨tØ°‚Þ¶„ß·„Þ·‡â¸„Þ¶„ݹ‰à»„ܶ{ݵ€á¶‚á·€Þ¶€Ý³€ß±|Þ¯}Ü°yß±€Ý±…Û¯{Ø©z٪ݯ}Õ¨tÈ›f“Z¿ŠQ¿ŠWÃX¼‡N¹ƒKÁPÑždÛ®uתrÔ¢mÔ£iÔ¢nÕ¤pÕ¥qÙªwجzÔ«~×­yÕ©pÒ¢jÏ›gÒ¢tÚ­~Ù¨uÛ¨sÞ«zبwÛ²~⹄涀è¶çµ„渂ãº|à¸~Þ¶zÞ´vÞ±yݬrÜ©fØ«mÔ¨lÑ_Í“TÃŒJ¿†DÅ‹JИWÖšZÓ•WÏ“UÑ“UÖ–UÕšTÑ–PΔUИ_Ô[Ó¡[×¥bÛ¢`Ø aÓ_ÖŸbݬm×¥gÖ¢iá®rß­kÚ©jÛ©rÖ¦rئwÛªoÚ®fÞ³qâ·yá³sݬvÚ­ußµvãºå»á¼€Þµ~Û¯zÓ«uͧlÓ©jݲvß·}ßµyá´zã´{á³yá¶}á¹}á¶}滄佂â¸~á³{ݳ{ܵvÚ­iÓ§fÈœWÁ‘MÀŒRÁ‹P¿‹MÄŽUË–\Óžg×¢gÒž_Õœ^ÖŸcÕ¨hݧlâ©oâ°oß­mÚ¨bÑŸWÏ›XÙ¢aÙ¤bÑ_Ð[Ï–WÆTÂŽTÃ’XǘbÌ¢eËŸYÇ•WȘ\Ç™VȘ\Ö¦tݯtÔ¡f×¢f¾˜hÞ°{Û­u߯€Þ®†Ý©Þ²}Ṃäµä²â±á¯ß®‚᱄䴆Ⰵ⯃᷃ംంߴzá±zⰃ߲…Û®|Ù§xܪv߯yⰃ᳉㻌踄à°yÞ±~ß«€ÚªÝ°…᳃ޱ}Ý­}ß³€ß¹‚Ḅ㷇䶇᷂ṃ庅ã¶{Ý®và²â¹ˆã¹†ã³ƒà¯ƒá±ãµæµ㴅ᵄ⺄滈ä¶äµ€é¶„亂⺃㴄ౄீ߮~߯€ä³}â¯uܪuÛ«yß®}á±á°å¯{å³zä·wâµ{à°{â°vä°vã®xÝ«xÛ¬rà¯qá²vá³yå°rã¯mã­sâ¯y߯vÜ®tà®yå¯tã¦mÞ¤sÞ©rݧmߪuã­uä°qâ®qß«rá«xá¨{àªxã®rá­qÜ©nݦlߦoÛ¦nÛ¦pߪvÝ£kמfÚ¦k߬nÙ¤gØ£kÚ©nÚ¢lÚgÛ¡dÙŸk×pןlÚbÙšbÙœiÔ_Ï•UÍVÊ’ZÍ”[ÐWÍ‘RË”PÈŒS†QÁ‰R†OÁ…OÈŽYÒœcÕ¤mÑ hΖ[Ì’ZÇWÆXÉ’aÅXÆ•[Ö«uߵܲ}ܲzÞ²}Ú­ƒÝ¯Ý°|Ö¨xÔ©vÕ¬xÒ¦yÓ¦yد{Ú°‚Þ°‚Ü®{Û¯~ܲxÞ³vÞ¶Ù¯{׫{Û°‡Ûµ…ݶ~Þ¸„ß·…Ḋṇ޵~à²{á²~ܯ{Ü®xÛ°~ܲƒÛ³~Ú³{Û³€Û±€Ü°{Þ°}Ú®~Ú®~Þ°~Û´‚߸…Ṇߵ…à³á·‡ã¸Œá²‚ݲ‚Û³{ݲwß²ݲÞ·ß¹~ݳƒÜ²‡ß¶ƒÞ³†à»Žäº…à²~ݶƒáº…㸆㼄彄㶄ಀᶀṀ޷޸‹ß¶‚Û°|ݲ€ß²}Ûµ‚ݸ‡ß´…ⵃຄ߻…⼅㻃㼆㸇߲ݵ{ß´}Þ³~Û´vÚ°uÚ³|ß·෇ඈീá¸ß¹Ü·~Þ¶}߶€â¹‡àµƒÓ®u×±uÜ´ƒßµ†äº†ã¹ˆã¶„䷄ⶆ㺄侂᷂߯ޱ޲ܶ~ݶ…Þ´„ܲ~Ø®}Ú°z߶|â¸áº{ݺ|Ý·„ݵà¶ß·…Û¸„Þ¸…ආ޶„Ú¶€Þµ€á¶‚຅ขܯ}ܱ‚Þ¶ˆÛ¹…ضձzÚ²v߲߱㻀⻅ฃá¶|Þ´€Ü¸‡à¶„Ü°€Ûµ|àµ}ß±yܱu×­}Ø­|תrÕ¡pÙªzÚ¯|Ü­{Û¯{Ü°yà²yØ®vΟiË™bÉœaË›\Ξ`Æ—\Ä–ZѦhÞ¹~ä¹…Þ²zØ­uݯ~ⴄ᷀⺂â»Þ¶yà²{Ù¯yÓ§uשuØ«oÙ«xݱƒÛ­}ݯzá°~Ý°{Ö®xÖ²yÝ´߯Û¯zÝ´}Þµ|ܵuݶyܲxܲoÞ´vݲzàµ~àµÜ­wØ©k΢^É—[Ê•YÈ•QÈ•LÈ“QÉŽPʼnMÈ“UÍ—QÍ—RϘ\Ò•ZÑ•TÏ™ZÔ›[ÒœUØž[ÝŸeÛ£iàªkà©mÛ¥lݧmÞ©kܨgÖ¤aÕ£aÙ¨gÝ«jÛ¨mÞ¬räµuà´vÞ´zܳxß²xã³}ä¹€ã¹⹀ܶÖ©tÖ¨pÖ©oÕªpÙ®qÞ²sàµzß´€â´zà¸vâ¸⹄⹂ංް~ß²uݱsÚ­qدtÚ¬vÕ£lÈœ_Æ™UÄ–ZÁ‘YÅSȘZÍŸaÑ¡eÏœ`ÒžcÓ¡aÖž\Ø¢fÜ©hÞ©dܨcÙ¥]Ê“T¿‹TÍœaÕ¤dÌœ[Ç–UÈ”aÊfÍ©eͤcÏ [ΡZÍŸ_Ò¡dÓ gПfÑ£lÛ­và¯sÖ£eÖ¦gºšj䱆୆߲ŠÞ¶Œß²…ⵃ嶉æ³æ¸å¸‡å¶æ³â°}ß°}߯€ß°‚ඊ᷈߭|Ý­zß²{ᵀ乆渉䲅㴄缌轒ëÁŽéŽ湌嵂縇渌湆縃鷂湂ߺˆâ¼‹ã¶ˆá³ˆá¶ˆã¶‡ä¸ˆä·…仉㼂à³ß²ƒá²~â³ä¹Œè»Œè·Œã¸é»æ·ƒã·‚躎溌嶆䶄淅㴅䳋越ã³{à±~â²ã°zã³uäµ{á¯{Þ®vã²{å´vå³xç³€â²{à°xä±wá­uÞ«sà¬tߪuߦuÞ¦sâ«så°vå¬tã¬mã°sä­xÞ¨tÙ¦lÚ§kݨoà§jÞ¤eݨeÞ¥fÜ¢nÜ©vߪqÞ¨oÞ¨kÜ¥nÞ¨xÜ«yÞ©rß«mÞ«rݤnÝ£gݨiÞ¦jÙ¢bÙ¡dÙžhØ¡h×£hÜ¥fÚ¢dÒœcÒ™_Ö›[Õ™TÖ”WÕ”]Ñ”WÑ”[Ó—cÓ˜aÔ•_Е\Í“ZÊWËUÊTÅŽLÆŒIÈOÈ‹U€N¾ƒLÁŽZË•^Ó¢lÛ¨xÞªxئsÖ¥lØ©kÕ¨oÕ¥sØ¥vÕ§wÖ¬tÞ³|à³…Û±‚Ú²|à°{ß°€Ý³€Ý®wÚ§yÙ«}Û¯wÙ­sØ«xد€Õ¯€×¬~ݳ„ß·†à·€à·àµ„Û°vÙ®tà´€àµݶ|Ú°}Öªyڳ⹄ݵ{ݸ„⸇àµyÞ´w٪ح{ܱuݲ|ⵆᵆ൅á²ܲ|ݳ‚à²~Ý´}á¶â¶€â·„᳄ݰܲشyׯuÖ®uÙ®{Ý­Þ²ආീ޴~ß´‡ß²‚àµ乇ç»äµ{Ý®zá³滂ä¹å¶ˆâ¶ƒÜ²zݱ€Ý±„᷃漄幅޲‚Þ¶…â·€àµà·…ᲈⳄâ·á´‡ã¹ˆã¸{ᵀḃà²|Þ²zÛ°wÚ®uÞ°yÞ®~ݳzÝ´}߳ᶅ㺅廄㴀ޯ}ß´}á³}Þ¯}Þ±vÙ¬uÖ¬uܶxค⽊庇à²Ý²‚Þ±„Þ³‰àµ…᳀ܴ}Ý´xàµwà¶ß¹‡á¶…Þµ„ܳ}Þ²}ᶇߵ‚Þ³zÛ³zݹ߸€ß¯€Ý­Þ­}ݲ~ܶÝ´ݳ{ßµ}á·ä¶€áµ„ݵ‡ßº…à»ß·†ß¶€Þ¸yà¸ḃ亀㺃⺇湆㸇ܶ…ߵ߶„س‚ڳḃ޲Ú«wÛ¬rÙ®xÚ°|Ù®zÛ±~ܯ{Ý°|඄ഄ⸆ὃ޶ƒÛ³Ù¯sÙ«uÛ¶}Ù¶~Õ®~ܶ€ß»„ܳ}Ó©qͤoÒ©xز‚ݸ…Ḁ仂⺀ޱyÖ©xÑ«uص€àº…ẃἅ㼃亃滃â¹zתyÓ¥xשpÛªuß®yâµ}ã¹€ã¶zä´zã²|ß«vá°yã³}á±v߶}à¶{à¬sÞ«rÛ«nÓ fË—\Í—^КcÎœbÍŸ\Ô£bÕžcÑœe×£lÕžeÒ˜\Ò˜[КSÐœRÓœXÖžYÙ¥ZݧhݤpÙ£bØ¡dÛ¨hÞ«hØ£cÑ£_جhݬoÛ­iݯjÝ­nܨkݧiÜ©lÙ¨rÜ­zܱ{Þ²yÝ´{ܲ{Û¬vÜ«uà±vÚ¯rØ­uá³|á¸zÞ·à¶~ݳ{ݴ᷆㶂߶}Ý°tÙ«lÕªnÖªmÙªlÙ¬rÖ¨vÓ¢qÐ¥jϤhОaÉœ^ÉšeÏmÒ¡gÏœ[Ñž_Ð[Ïž\פhØœfÔ™`Óš_Ò—WÉ’NÄŽUÏšcÕ¤gÓ¡gÒ¤bÏ£fÓªnÙ±rÙ³xدyÔ£kÕ£mÚ©qÙ©kÖ¦mצuÙªpܬnקqרmÀ•qÞ²†à®Šá°„ß´ƒá´ƒã²€á²„᳇ᴆⴄ䴃à­}Û¨|Ü©|Ü«zܱ~ݶ…â·ƒã°zاvÛ«w䰀䶉æÀ⽌߶‡å»Šç¿‹æ½Šç»Šæ¼ä¼‹å»ˆè¼ŠæÀ‡å¼„庈丈Ṇᶆ㰇ே߲…㵄帅嶈黋羉漉亄ݲ}Þµ„廈鹅弆佅丂á³ã³…嶌䴄á³|à´€â³}á±|à´€å¶ä²}á´väµzã¯y߬và±xã³zà¯zà­uä®sá²wß³vá°oÞ­nܪiÚ¦fݧkÞ¦qÜ¥qÞ©jß­hàªqà¦rß©pߧrߧqݪnÙ¥g×cÔœeÙ£kÝ¥gÜ¥eÝ£bÙŸ[Ö[Ù£aؤbÚŸ\Úœ^Ù_Ù£cÚ£iØŸmÕŸdמaÙœbÖœ_ÕšaØ›eÙ™dÖ™\Ö^Ù¡gÖŸiÖaЕZÍ’\ИbЗXÎ’OÑ”ZÒ–]Ð’[Ï”ZÏ–WÏ—YЕ\Ñ‘\Î’\Í’[Î’UÎRÈŒNÇ…NÊ…NLjKÁ‚HÀˆWÌ¡mرuܳzݳ~ܯƒÛ¬Û±~Ú¯~Ü®‚ß²~Þ²ᴀݵÚ°|Û¯{Ü®xÛ«{ß´…⹆ඈಉ߯‡Þ²ˆÜµ€Þ²xݱܳ€Ú¯€Ø³€à¶€ä³‚ܯ~Ù¯~ೂޱ{Ú¯~Þ²ˆÞ¬Üª‚ܯ~ÖªwØ­‚᳇ᶀข㹃á¶}Û­}Ú¦}⮄⸄à¶~ᵀᶀâ¶}à²}ݱwá²|ã³á³ƒâ¶‡âºâ´}â´…ß·‚ݱ~Û¯{Ù°zÛ¬{Ù«|Û²|à³{áµß¹~á·|ൂܴ‚Û²€ß±ß²~Û±zÝ®yã¶â¹Þ³{á³yà°|Ý®yÙ¯tÚ²~ฆ㻂渄ã³à²€Ý³Þ´€ß³ƒÜ±|ß²}â·ß·}⸀ෂà¹|á¶~ݯ}Ø°uÙ°rܬtÝ­uà³zÞ³tÞ±sà­zà¯xà´{âµ~ã³xâ²xß²xݳyá²wà®uÜ«oÛ­vâ·‚å»ã½{ã»~Þ´yÚ±uجzÙ«{ß´{߶~Ú²}ܶ|ܵ}ݵൄ޵€Ý¶}Þ´ƒß³€à¶€Þ¶Þ°}Ü®{ݱ|Þ°}ܳyá¹~ݶÛ´}⸃ẆṄâµàµã»…侀߶yⴂ㸌㹇ⶀߺ㼇亄ἆἊໂ⺆巇඄޷ˆàµƒß´€à¶…㶄ᵆᵇà¶~Þ¶}ߺ㼈ṇ۲€Ýµ~ᾄߺƒßº‡áÀ‘ß¼ŠÝ¸{à·~ᶃ㺈⻈ᶄ幇ḃ֫~ΟnÅ™\ÚhÊ¡rÓ¨uج~ܳ~á·€æ´á¯Ù¬‚Þ°‚⹆了㷅޴Šâ¶‡ê¾…å»}Ø«nÖ¬oܳ{ᲂá²|ß³uá´vâµyßµ{ß°yà­sß²uÞ·xݲyÞ­xÛ¬oÛ¬fÚ¬iØ°mÕ¬hѦcÔ§gÛ«oÛ­tجrÙ¬pצjÒ¦gÓ¦iÔeÕŸfÙ¥fÖ¡dК]Л_Ô`Ú›[ÕYÒ\Õœ\ÑŸ^Ó¢fÛ¦fÚ¦hÒžcÓgÚ¦kÙ§`ܧcÞ®mܯkÙªiÖ¦iÑaÒ eتnÙ©tÙ¬sܯsتmÖ©nÙ¯vÜ®mÙ¨pÙ¬vÚ­qÞ°rÞ²xÛ°wÜ°yßµ„ඃ޲zØ«uÓ©oÔªmÔ©mÔ«m׬vتtÖ¨qØ©u׫nÒ¤cËžbÈ]ʘ[É•^ÌœdÙ§fÒžXÎbÕ¥j˘_Ì—\ÎgÏŸbΠ`Ë£eѤfØ¥m׬kÙ±oÛ¨rÚ¦uݯvݯvÞ¯yÜ©tØ¥sÝ®rá°rÞ©rÙªtÖ­pׯmØ«jÛªo¾—r㲆㭄á±á³Šå´‰ä¶ƒç·æ·Žä±‰â±‡â´€â­}Ý¡zÖ¢{ÕªvÛ±vâ»~庂å´á¯ᵀ㺆纈缋嵅ã±Ⲁ߱~Ý°~à°ã³à¸á³ƒâ²}â²yá³ã´…ç²}ã°zݲß³~ß®~à°ƒá³᳂Ⰳⴂ湄뾆迋繂ᶃẉ淄äµ~⸄Ⲃà¯yß°}ß°Þ­{ݪuܲvà²xå±wåµ|ç³|æ­uâ«uâªwá©xà¨xߤsá¨vá©xÚ¢oܨnã­wá¨uÞ£mÜžj×™eÕœ_Ù¤hݦkÛ¦eÙ¤dÛ¥jÛ¦qܤlÞ¤kÚ£mÛ¤oÝ¡gÕœcÓdÔaئdܤdÔ™ZÒ–UÓ˜XÔš\Ö™a×–XÖ—SÔ˜VÓ–TÓ–YÕ•^Õ–^Òš]ЙXÒš^ÒšbϘWÑ•WÕ—]Ó™[Õ˜bÖŸfןaÒ›\Í–YÑ“\Ñ“_ÊŽXÊŽWÓœbØ£e×eÕgÕaÔš^Ó˜\Ó›`Ô›fÓ™eÓ˜dДZÉNȆDÃDÁ‡MÇMÇ“WΨsݱá²}ݲ}Û¯|Û­xÜ®|Ú­~Ú¯|áµ~á³}Þ³|Þ²yÚ¯yܱ€à±á²~Ḇ෇ߴ‹âµƒà²|à´„á³Ý®~Û­ƒÚ¯Ü²ß¸‡ä·å¶‡ß³Ü°€Þ¶†â·„âµàµ~à±}㳀ᵃà²â´ˆã¹‹ä¶†ãµâ¹ƒß±€Û«xܱ‚上鼃æ¸}ã´}Ⳃå³ä²Þ²|Þ²{à±ß³䷀渆丂㶄ⴅ޳|Þ³wáµyã·{â³}à²}ã¶zá´{à±yá¶và·zß°uà³zá¶á°rÞ«pÞ¯xäµ{âµyß±sá±và°zá­tà®xÞ´‚ßµ€â¸~ä¸xâµxà±à¯yà°xß²~ܳzàµvâ¸}á¸zåµsã®vß°vä°rà­qܯlܨlÛ¥oÞ¨rÞ­vÞ¯rÝ«iß©j߬mÜ«mÜ«qܬuݬuܪnÚ§nÙªsÛ°pܯoÞ®tá±zá¯zá²uã¶uã²vâ³zÞ¬yרsدyÞ³zá±tà²yß±€â¶€ßµ{ܱxáµzá´ã³~æ¹~巊峉à´Ü®€Ý¬‚à²ä·€â´ã·æ»ƒä·†å·å¶}ãµ~ã»{伄ᶊᶉ㹌ⵄâ¶}ä¹|ã»}ῃâ¾ã¹á¹€ã¼‚㼈㻃㽅伈漂亇߷ƒà´yâ³zß±~ß±}᷂佅彄޴{Ù°xÚ±~ܳ‚Þ¶€Þ¶~Ý·~Ú³ܳ߹ໄ㺅伆廅ä¸Þ±zЦqÈeÅ–aÅ–`ÉšdΞiÔ¤oשyޮ㹄渆䶅⺃㹃ã¹ß·ß·€å»‡è½€á±vÙ¬xá¸~å¹{á²t߯zݲ~Þ¶zâ±zà°à³ß°xß°tá±x׫tЦpÒ§sÒ¨kÓ§gÔ¥iТdÏ£kÔªxÛ¬yÞ­zÜ®vÚ§mØ¥fÕ§gÕ£gÖ¡bئfاfÔ¢bÕ¡hØ¢fÕž]Ô—^ך^ÖœZÓœVÕž\ؤb×£aÑœbÒa×¢aÚ¤cÙ¦dÝ«já¯rݱpÙ«cÔŸYÒž]Ù¨lÙªnØ©kÛ©pئhÖ§bÙ©fØ©kÖ¨kÕ«oÕ«lÒ¨hÕ¨n߬wà®|᳂Ḁ޴~Ú«sÖ¨mÛ«tÞ­tÛ°lܱmÜ­pÙªpÚ«lÙ§kÔ¢mÏ¡fÉ›[Ç•]È–^Ó¥eÛ¯iÎ¥`Ë¡bСfÏœ^Ñ¢dÔ¥lتrØ°uدtÝ°tÞ¯vÝ­xà°wß®wתsÙªsß«{á°~â²tÝ®tÞ¯yá°uÝ®xÚ®xÜ°xÝ°zÛ°oÜ­h¼šo䳆縈䳅ᰃ丈溄æ·â³~á³|á±y߯{ß°{Û«rÙ«yÝ«}á­w䳆崒㴇ⶄ᷈߸‡â¶„á±~Ü«~Ù¨yÙ§wئuÖ¨sÚ¬zß­wܯvÞ±}ÞªzÝ«|ݯâ¯{ä°€á¯~à¯{ß°}ß°{߯|á°€à³}ݵ}à´}á¬wá®z超簃â¯|ä´{ä±~ã­}â­sÞªyÞ©zÝ®rÞ­tÞ©uÚ¨uÝ«tÞ­rÞªpÞ«pÞ©tà¨tÛ¥nÖ¢hÚ iÝ lݤpÜ£rÚ£mÙ£eÛ¦hߨpÞ¢nÖeÒ™^Ζ[Ó™cÜždØœaÖše×™`Õš^ÖdÕfÖžhÙŸhØž_Ö _Ñ™`Ï“[ЛZÔŸ]Ö•`Ò’VÏ•VјbÒšaÓ—_Õ™]Ó•OΑNÍ”VÒ“YÒ“XÑ•WÒ”[Г[ΑWΓTË‘NÍMÒ–\Ò–`Ò“UÒ˜ZÑœcÒ›^͘[Ê—_ΓSÍLÍ–^צlܦnÙ¦rרqÖ¢jÕže× eÕŸeÏšaÉ’ZʉZȇUĉIÇIÉNÄQÈ“XÕ¥hܬtܬ{᳀ᵂܱ€ß±‚Þ­Û¨wÚª{Ú³~ݳ}ݬ}Û¯|Ø®zÛ±€ßµß²‚ⶉ幊丆㶄ไݷƒÜ®~Û¬vÛªxÙ¬{޵㸊ᲇᵂḈߴŠà´ˆä¹‹å¸‡ä¹ƒä¶„ãµãº„帀䴅ä·âµ€à±{à²ݯ|Ý­{á®ãµ„å¸è¸{ã´tâ´vã´{à³{à±uá®uß±rá²wä´}å¸yâ·{ß±߲߰y߬rݬlÝ°uÝ´zàµrâ±vã±và±rÞ®pÞ¬sÝ«uÞ­vÝ°sÚªjܧeÞ©eÞ¦gÞ¨g߬há«nß­pÝ«oÝ«rÝ­sÞ¯sà¯uÞ®wݬsÞ¬oÞ­nÞ¬nܬiݪhÞ­tã­wâ©qß«qܨkÚ¥hܪkÙ«gÖ¤d× dÙŸ`Ô c×£fØ¢bØ¡\Ù¦\ؤdÙ¢j×¢iÖ¤dÕ¦iÕŸfÕ¢`Õ¦aפhܤmÛ¤gØŸdØ hÙ¦aÜ©cݧkÞ«mÜ®qÓ£mÓ¤mÖ«uÖ©pݪo߬oܬnß°uá¯sÞ°pà¶zÞµ€â´„踈繂㹄߲~à±xã·€äµä²zâ´㺂â·xÝ°wß²~á¶~Ṃ仃乄ߵƒã¶{ã¸}ݵ~ß²tß±uá³}ã´{á´yà³|߶‚຅佀羃佅廃㹅߳€à³{ߺ}߶}Þ°yàµxã¼|âº~Ü°zÔ¦rϦrׯuà¶zÞ²€Þ²{Þ²zÚ±{Þ´xâ¶᳂ޱ‚ݶ~⹃හװyÕ¬tÓ«sѨoΧeÌ dÏžmÒ¥mÚ¯z滇éÁ‡å¾Šä¸‡à³zà³|ßµ{Û´xᵄã¶~ß³rÙ«oÙ©qܲu߶tà±vÞ®vÞ´vÞ·~á¶zâµrÞ°wÞ¯uá²pÚ­pÖ­rØ©kÒ¢gΤkÉ¡jËfΡgͤlÕ¤lÙªqÕ¬mÕ©pÙ¨vاrÙ¦vÖ¨xÖ¥nئlÖ¦iÕ¢iØ¥hÙ¥aÕ XÔYל^Õ™\Ôš[ÕŸaÕ ]ÕSÕ›UØž]Û]ÛŸiØ¥pÛ©nݬmÛ¬h×£[Õ¦`Ú­o߬mݬlÙ¯mÕ§gÕ¢fÚ©gÙ«fÖ¨eÙªj׬kТdÌœeاt湂廃ⵀ߲|Û¬vÙ­lܯrÝ­}Ý«vÜ­p׫nרnÙ¦kÑ¥eÓ¦fÕ«fѤdÌ f̨hÓ­t×­sÔªgÖ¨mÕªrÖ«nÙ¨oתxÞ°|á°{ß°~äµã¶à³zÞµwß²yÜ­uÛ¯oÚ²uÙ¯tܯvÝ­{Þ°xÞ®uÛªuÛ¯zÝ°yÞ±{à±|à±zºuã´~ä³~层䳂七縅峂á¬}ß®{à°vå°yఀ߱ƒä¶…á³€á²}湊崊â°{à´|à±Þ®Ⳇᰀ߭wß­vÙ¬xبyاvÚ°xÞ´ß±á¯{áªoâ®rã³~㵃ä³æ²uã¯xà°}à²ß®~à®}â´€ä¶|å³xáªqàªoå±|ä¬~á²{ã¹â±{àªxâ¬sá­rݨvÞ©â¯}â«uߧsß©nߤlÝŸkÙ¢kÙ¤mÜ¥oÛ¢jÙ dÙ¢gÜ£eà¤bÞ£gÛfÚœeÛ£jݤgØ›`Ñ™XјSÒ–ZÔdלaÕ—\Õ—YÕšZÓ—ZјaјbÑ•ZÒ”WÒ•[Ö™`ΓZÈŠPÏ[Ò™cÏ‘YÍWΔVÑ™[Öž`×^Ò™]Ñ–TÎSÏ”XÕ™YÖ™ZÖ˜^Ö–\Õ–TÒ“VÑ“\Ï“WÑ“ZÕ—^Ñ•YÍ‘VÎ’ZÏ—dÑœhÒ˜aÏ•[Ñ•[Î’VРkÚ¬|Þ«uߪyݨtØ£rÙ¤vפkИ[ÇŒOÄŠMÇQÇSÈU͘aÔ¤pÕ¦pß­w뾇繆ᮃ޵€ß¹ä¶ä²ä°á­~߭ೄ߲„Ú«yÚ©xß©}ಂáºᶀ߷ˆâ¶„åµ~ä·ä¸ᶃ۲„Ù¬|Ùª{Ú®wݲx߶|á¶}᳃巆嶅㳄Ⳁ߰t߯vâ±{â°{ä±zâ­yÞ°{ß´zÞ­tÞ¬rß³tß±q߯vã²{äµxä°oá©jÜ£gÞ¦kÝ«qÞ©tá¨uá«rÞªoݬtß°sâ­sÞ­uÜ«rà«oÛªpצhÙ§_Þªf߬lݬjâ¨kߤhؤhݧdÚ¤cÖ¡hÙ¤iÛ§gÚ§d× ZÖœ[Øž[Ù¡b×£kؤfÙ¡bÙ¡c×¥fÛ§iؤkקiÚ©gÚ¥jÙ¢g×¢_Ø¡\Ø¡^Öž_Ù cÙ¦hÙ¤kÚ¡eÕ ^ÖcÖ›^ΙXΖWÓ˜YÕ˜TÑ—NÒ˜RÓ˜SЖTјY×ZØž`ÓšcÓ›^ÕŸ`Ó¡`Ñ›[Óš[Õ£dØŸ_×›VÖž]Ô›^Õœ[Ù bÚ dئdÙ©dÖ¥dÖ£dÕ¦dÓ¤eÛ§iܨmݨgá©lݧpÚ©kÞ­kÝ®oܬo߯oÞ±vß­vÞªuܱtݳuݱoß±pã¯tâ°wá®tâªrã°|㶀ã¶{äµyß´}Þ±xá²qá¸sÞ±vÚªoÞ«oã¬râ­nâ°tâ°wã²z⸀á³åµ~ç»}亀ä¸â³~á±äµ~å¶{Þ²qâ·uæ»yå¶|㵂ܲxÕªwÚ°yà¸{ᶀä¶|á¶{Þ²|ß´á¹}渂嵂ܳzආ廋â¹㾃徆޴Ö±{Û²wÛ¯o×­uÚ¬}ß³~仃齅뾊嶀â²|ß´‚Ø­sÛ­uã´‚áµ}Þ²qÝ­pݬxá³{ä´{Þ±|ݳ|á³|âµ丅䶃èµ{ç¸~á´|Ý­wÞ­qÚªpÒ¦lÎ¥gÏ¢fËŸcÈ¡dѧpÙªt׬lÙ«qÝ«xܨuݨsÚ©tؤp×¥jÖ¨cפa×¢bÔ¡`Õš]Ô˜WÔœWÒœSϘNÑŸWÕž]ÕœZÕœZÖ›[Õš^Ô¢cÚ«lÞ«rÞ°oà®oÚ¦eÙ§eÛ«oÞ«pá¬m߬rÕ§mÑ¢eÙ§lÚ«kÙ¨hÞ¬rÜ­tÓ¥jÌœk×­s濄潊帀à³}Û´|Û²pÙ«rÚ­uÝ°tÜ®sÚ®rÙ®uÚ¬sØ©mÛªpܯsÕ«oÓ¨sÒ¨qØ®oÛ´rÙ°uÜ°~Ý°~Û®yÚ®qÙ­oß±yá³zß°vß±{à³wá²rá´~á¶{߶uݱvÙ«qÙ­mÜ­qÚ¬tÛ²}àµ|Þ°uß°~ⶂà³}Û²{߶vßqá²vá±yä«yå°yäµxå°vã­sâ­xâ­}á±~æ³è²~ä¶|ã¶ä³|à±}á²}粄㰄ä±~ã°…Þ±‡â±„æ¯{â±{Þ±€â±ã°€à¯{à°zã²zè·}è¸}ã²yä±|ä°}ã³{ã³yâ­|á°zà®qà¬rÞ®yâ¯|å¯~ç¶~è³yã¨ráªuâ°vç¯xä¯zà°rã¯tâ¯vß²sâ¯xÞ¨sÚªrÞ¬{Þ¨tÜ¥oÞ¨sߥnÜ¡iסfÓœb×¢hÝ©mØcÓš[Õœ\ÕœcÕcÕ›_×›bÖšaÔ™YÑ—TÍPÎSÏ“YÍ“VДUÓ–VÓ—YÒ•ZÔ”YÔ”ZÑ‘YÎQË‹KȈTÊOÆQĉVÌVÔ–XÏ”^Ê]Î’cÏ›dÓ¡dØ bÓ”ZÌŠRÊŽPÌ’RÍ‘PΓUГWÎ’TΓSÏ“UÒ“^Ò•VÓ˜TÕ˜YÐ’UÎTÏ”ZÓ™bÒ˜cÍ–\͘ZΔXÊ’[Ó¡mݳzÜ°{ÞªtݧmÚ¤jÙ¨pÙ¨oÓaÍ—[ÐgÕ¥vÓ¦tÒ¦mÛ¯zḅ㹃軋èÀŽä»…ß²ƒÞ³€Þ¸€à²‚à¯á¹ˆâ¹‡ã´ƒâ¶ƒá´Þ¯~Ý®}Þ±}à´{丂ⵆᴃ亅亇ฉ帆ᴅڰ€Þ®uÞªuÞ¬{á±|á°{á±|â²ä±}ã±|ß®yݧoØ£jÚ¦nÞ«pÞ©qÝ©nÚ¥gܤhß©lÚ¦d×¢dÞ§nÛªpÙ©oݧkܧiݤdÛ ^Õ›[Ôš^ÖbÖž\ØZÙŸdØ dסfÚ¥oÛ¢eÕ bÐdÒcÑšZÒ—VÕ˜[Ñš]Ð]Óœ^Ø]ÙbÖœ^Ò]ÑšYЙ[ÔŸf× b×›WÕ•RÑ•QЗTÑ›ZÒšZÑ–YÓš]×™YÕ˜ZΙYÌ•XΙaÐœ^Ó—[Õš]Ó—TÑ’NÏ—VÓœcÕ`Òž`Òœ^Õ™\Ö˜ZÓ˜YÎ’UÎNÌPÍ’RΖQË’UÌŽQÍ’MÍ‘PЗ[Ï bÑŸaÑ—^Ï–WÒš\Ó™]КRÓšWÓ•[ϘUÑšSИTЖRÓ˜RÓ›WÑ›WÕXÙŸ^Ô^ÒWÔYל\ݨkߪlÙ¤_Û¦aÜ£eÜ£hÚ¦l×¥hצgÙ¦jÞ¦kÝ£iÚ¢dÞ¨hÞ©hÜ¥iÜ©nܨlÜ¥kÛ§lÞ«iáªpà©pÞ§dÚ©jܳrÜ°oÚ©oÙ§lÙ¨jÞ§hà©hÞ­lß«màªpܪuÝ­nÞ²là°qá®sà³qã³oâ¯rÝ®là­päµ|Þ´|Þ­sã±yåµ€å³}溄á´Ú©qÙ¬tݶyàµzá°pÞ¯pÝ°yã³ä¶}å¸yçµ~á³vÞ²r⸀绅迄㼃ߴ€Þ³á¼ƒä¿à»Ý´zÝ­uÞ²|ὅ迎縋縅罃ܱvÛ­s弇绉跀ã¸|ß²zâ´{ä·}æ·xã¸vÞ³uܯsܯuÞ³yáµvä´zá²|Þ°xà±{ß±zÞ¨rܦoÕ¥eÑŸ^Ò¡e׫kÚ±qØ©nØ©hרfØ¥eÕ¨gÔ¦kÙ¤mØ¡fÑœbÑ_Й_Ë‘Tʼn=ĉHÊSÈIÈ’M͘^Ö cÜŸcØž]Ð]ϘZÕ¡WÙ¥cØ¢eØ¥eÙ¤hÜ¥dÝ«eÞ«oà®tá­xÞ§oÙ£c×¢cÙ§nÙ«pÛ«pÞ°xÞ³vÙªkÏž`Õ¨q་伊ã·ݲ{Þ²{ݲrÒ«nÒ¨tܨuÛªtÙ¬sܪmÛ©nÙ©sÙ¬uÛ®sÕ§kУiÓ§iÚ¬rݯsÞ²uà³~Þ±yݵqÞ±qÛ«mÞ°tà²wÝ°vÞ«uá¬zã±{ã³xá²{Þ³{à³vá´{Ú¯zجsܲyං縄å³~ß²}㷇崄ݮwܯtÁ™mß®xä¬tã¬}ß­{ã­yã­~å±}ç²~峀嵀æ²}泂æ·~ä²xã­}â®{á°uá±xá²{æ´|ä²}à°}ã´æ¶}äµ~浂淄ç¸æ¶|åµ~å³zåµ{åµæ²~ã´…à³…á¯yÞªqݧrá®uá¯wÞªvà«rã°vã±yæ³{å²tá«lÜ¥mܪxßµ|ä°vâªuã®xâ³zá²wã¬sß©q߬rà¬sá©tÞªvߧqߢfØ cØ¡g×bÔš[Úœ]Ö—WÎRÍ“UÉ’QÌVÑ‘]Î’YÍXÌŽZÈ‹XȉRÇŠKƆHŇFÆŽLÈVljKljMÎbÑ”bË‹PŃFÃHÀ…EÃŒLΓYÑœ^Ô¡kÖ£sÖ¡kÕžlÔ¥rÔ§pÔ¡rÔ¡tКlɈXÅYË—]Ì‘ZÇŒSÈ‘QÌ—ZИWÍ‘MÈSÌ‘WÌOȉKÈ‹LÉOÌ]Ñ›cјXÑ”aÔ jÒ›_Ñ–aاtಀ߫€Ø©rÕ¦mÕ¥tÝ«xÝ®}Ûªyß­yâ´㹂⹄᳆ᶀäº}ä·‚ã·ˆä¼æ¶Œâ²Šà¶ˆà·ˆà³ˆá²€ã¸„介嵆Ⳉ᳇ܮxÝ­{᳄㷂渃ã¶ã³å²…äµ€â´~â±Þ¬uÚ¨jÜ©oà®vâ±wã®vâ¬oÞ¬mߧqâªoÞªlØ£mÙ¢qØŸkÕ¢dÓ¡_Ö^ÙŸZÖž]Ö˜^Øœ^ÖŸ\ÕYØ¡[×¢^ÔcÓ™bÑšVÓšTÓ˜ZΓPÎOÎUËNÍ“OГSÌ”ZЖ]Ö™aÔ—_Ñ•UΕRË’ZÍTÍ•RÑ™[Ñ—WÒ—YÕ˜]Ó›^Ô˜\Ö˜^И[ÊŽTΑWÕ`Öœ_ϘXÍ’SБOΓNËQÊ’OÌ“QΗVÓ›WÒ™\Α[ÍTГSÏ™UÒ—WÑ”TÌOÊŒTÍZÑ–YÒ—YÒ•TÓ–XÒ–^Ñ–ZÍ”ZÍ‘VΕVÍ—WÏ•WÍ‘TÊ”UÏ–[Ô–ZÖœXÖžZÒ˜\З]ДVÍ”PÏ–WГ[ΔWЕWΑSË‘OË‘OË‘SÌ”TÑ•TјZјYÑ™XÓ^Ò›^ÒšaÓœaÖ¡bÛ¦jØ£hÓž`ÕYÖŸ]ÓŸ`ÕŸcÖŸbÕ¡[Ù¤_Ø£_Ù¡]Ù¡dܤgÚ¡bÙž\Ù¦aצbÚŸeÚ¥jÞ¨iݧjÚ¤jÙ¢jÙ£nÙ¦mÕ¥kÖ¤fÙ¤`Û¬fߨ`Ý¥^Ù©eÛ§eݧeÜ¥fÛ¨jÙ«oÜ­rܪoÛªgÞ­kÞ­nÝ«eÙªeÛ«kÝ«nݪnã°mæ¶rá±vá²{ä±zà«pÛ¨kÞªuä®uã¬ná©oáªrâ±xã´tæ³oã°oà±wâ´{å·å¸å¹€ä¹Ú¯yÖ«xײw×®ݱƒÚ²{׬vܳ|ß´|á¶}齈꽌罅å»à²|ᲂ溆較鹀ã³xáµvä¸|åµ|ã³|Þ±xתiÖ¨fÚ°táµ}ä¶{ß°uÞ®tß®rß±nà²qà°yݬuܨnÙªqݱuâ²pÙ§mÓ¨pׯsÙ²rÙ®hÕ¨f×¥tÖ¤lÍ^Ì—ZË—WÆ•TÁŒJÁŒOÃŽQ½…JÀŠQË—XÑdÑdÒœaÓ—^Ò™Yס]Û¢c×£aØ¢aÜ¡bÛ ]ؤdÙ©kÞ¬pã¯qá¬hÚ©hÚªqܪnÙ§gתjܱsà²vÚ«lÒ¨hÖ«rÞ°zÞ®~ܬvÛ­rØ°tÚ®tÖ«oÒ«hÙ­nÜ®qÛ¯rÙ®xÛ¯xÚ¯tתt׬tÖ®lЦkѨpÖ«mÛ­tàµxܶtÚ¶yݸ|à³rݯoܲqÞ²yÝ­}Û®uß±{ã´}ã¹{ä·}߶vÛ´uÞ´yݵvÙ®mÝ­pã·弄ã¸}â²xá²zã³à¯yá³o¾žfÝ¥lÞ¤lâ«s߬vß«sã¬vä°vä²vå®sæ­vã®yä³€æ¶å²zã±|å¯{â­zâ­tæ­qã²wß³tá³wå´}æ´vä²oä±rå²yæ²vê°tç±yâ«wâ¬yæ²ç¯‚æ¬yä®yÞ«uÚ¨pá¬uæ¯qã°qâ­uâ°vá°zß±tá°uã®yâ­sÚ¤oÔ§tݲtâ¯qß©qߪoߧrà§vÞ¨oߨná©sà§nß©hÞ¦jÜ£lÚ hÛœj×cÕžcÑ–`ΔVÏ‘QɉNƆFƆJÆ‹RÍ’UÌZÊ]Ì’YÉŠL„IÀ„K€HÂ}FŃNÂ…NÀˆIÈTјcÎ’ZÃ…J¿ƒEÀ„KƇQÌ‘YÖ¢oÚ¨xݬ|ⱂܫ|Ö¨yب~Û¦uÕ¡kÕ¦zפwÓ›lÓ¤oØ«vÑ¡oÉšeÍ›iÒ¤sÕ¤oÏ•_Í“aИfÌ—]ÅŽNÇKΔVÓž]Ó¤jÓ¥nÙ§t߬yܪsܨtà®}á¯~ܪyÕ¤qÕ¦nÙ©pÛ¨tÖ¨t׬€à­ƒá°~඄㶅㷄ⶅ䵃ⵂⳂã´~庅嵉ⷅ侉嶈ః߷ƒãºƒä¶Þ´yÞ¯sß­uà®|ä²~æ±zä±{ã±~ã­}â©yà©ná©oâ¤mÝ¥dÙ¤eØ bÛ¢dߤjÚ¤gÖaÔ™\ÒžfØŸhØš\Ó™^ÕœcÒ—\Ó™aÖšbÓ—ZÓ™\Ó•WÑ‘UÑ“XÏ”RДWÕ˜`Ñ”UÎOÍ“RÌ’RЕQÏJˉJËLÌŽN͉MËŒLÊ‹GÇŠJÇSËŽQÉRÈOÈ‹PËYΘaÒœbØŸc×dÕžeÕ¡eÕžaמcÔšbÌ’XÉŽMÊŽOÌ”YΙZÌ‘VËŽQÍOÈNÇOÊRÉTÌRБWÌ”ZÈ’SÆŽNÇ“\ϘcÒ•aÏ“[Í•TΕZÍ‘TËOÉWÈYÍ’PГPÍ–SÉ‘VËŽUϘVÕ_ÛbÖ¡bÔ¡eÖŸdÕŸbÕŸfÔbË’UÊUÌ’WÉ‘QÊ“PÍ•UÌŽOÌOÍSÉQÈ‹NÊQΓTЖ\Е]Ê‘TË‘VÏ–YК^К`ÓšaÕ˜dÓšdÏš\͘VИVÑœYÏš[Ï–XÔ™]Ôš^ΚWÐZÔ dÓeÕcÔœZÔ›\Û¢iܦiܤeÚ£dÙ£c×£aÒŸ_Ñ¡\Ô£dÓ›fЙ_ÑžZÕ¡cÚ§jÙ¢cן]Ö¡aלfÖœeÓ£d×£iܤlÚ¨i×£bÕbØ¢gܨhÜ£cÛ aÙ¤aØ¢dÙ¤fÜ®fß­jÞ­lÝ°oß°nÜ©oÚ¤mݦfâ§là§nܪhÛªkÞªlá¬nâ­oà«sà­oã°rã¯{â®qå­sàªuÖ¤hÍŸfÅ™^Ę[È™gÉœgÌ¥kÕ«uÔªr׫x䳂äµâ´{å¶}á´|á¯}ã³~åº}é·€ç·â¶wã²vå³|ã²|à®yÙ«oפjÙ§iݯpàµtà³pÞ±oÙ°qݯvá±yâ°zà®|Û©rÚ®sÞ²xݬjÕ£gÕ¢lÛ«mÜ­uÚ«yØ«wÙ°vÕªmСfÎbÑ¡eѤkÇžbÍŸdÌža¿‘Q¿‘WÈ›_Í]ÍœUΙPЛ[Ðœ]Ò›[ןbÖžbÓœ]Ø¡aÖ¤bÔ¢b×£jÚ¢fÚ£fÙ¤aÙ£_Ú¨jÚªoÖ¥jÒŸ`ؤfÞ¬sÙ«mÖ¨kÖ©rØ­xÕ«tÕ¥nئpÛ¯yÝ°xÛ¯pجjØ®pÛ³{ܲ}Ü°zݲyØ­uÒ§o׬qÝ°xÞ²x×®wÒ¦rÔ¦rÚ®~Þ²ݲyÚ¬p×­oجrÙ§nØ«nÙ±sݵzàº{ß¹xã¶{ä·{Þ±vÝ°{á³vß³qÝ®tß­tá°vã±yã³z߬wÞ¬sßµwÞ³vÛ¯q·kÙ fÛ¢hÞ¤gܤmÝ¥lÝ©lÞ°uà«tá§oâ¨máªpâ­uä­rå¯mä²sâ®vãªwÞ«xß©sá§sà©sä­uã®xà¬oá°oâ°tâ«sà«oà«oâªuâ«rß«sá®yã®tà¥qÛ¤oÛ¦oà§pã­uä¯sä­pã¯râ­tãªtâ®tá­wã¨sã©rÝ¢mןgÞ¨qߨnÚ¢gÜ¢jݤhÛ¤hÙ¦mÚ£mÛŸmÛ¡kÛ¢iÙ¡dל`ט`Е\ΕWÔ’[ÍXÈUËŽP‰HÁ‡KÆUÏšjÙ¢xÕŸqÒmÔŸhΗ`ÈŽ]Ë’[Ï•]КcÒ›eÒ—`ËšcÑ¥oÞ­}ÑœgÅSÊ’ZÒ™cÖœnܨx䷇䴆ްഅ߭}Ú¥uÚ¦tÝ©sÝ­yß±€ß°}ܬ~Û¯†Þ²…ݬvÖ¦sÙ¨và¯~Ý­{Ö¨uÛ¯|à°}Ú©zקrÖ©nÙ±và¸å¶…䵃湊滅ã¹~ⵅ᱃߱€Ü®ƒÝ«~ß°zß³‚Þ±€ØªqÓªuݳ‚ã´‚á´ä·€â±zà­~ೂⳂ߱‚áµ}罄꼇æ·}溃é½è¶†ç°å°€â±vã¯rä«oàªoÝ«sá¬xä¯uâ­qÜ©qÚ©pÜ©qÙ¦nØ¥jØaÕ˜^Ø\Ö—WÒ”VјTÓšWÔšVÒ–VÐ’VÓ•[Ï•RË“TÑ•YÏ”LЗQÕ˜\Ò‘ZΑVÍ’TÏ”[Ò˜bÒ‘UÎQÒ“ZÏ‘WÌ’QÌ‘WËVÏ’PÌ’OΑT×–ZÓ“WÌŒNËŽLÆŽNÅŠKÅŠNÇŽPÇŒMÉŠKÊSÌ–^Ô fÚ¦oÚ£s×¢pÖ¡lÕŸmÕ jÔžfË’VÇŠKÈOÈSÉŽSΙ[Î]Ì—^Ì“ZÍ‘SÎ’TÒ—WΓRÈŽOÈŽQÈŽPÇŒPÇ’WΠgÖ¨lÕ§fØ¥fפeÓ¥iÔ¤lÑœdÍ•[Ì–^ΖbϘ`Í™\Ì•ZÎbפkܪtݯtß«pÚ¨rÓkÏ•\Ò™^Г_Ã…TÄŠMÌ”RÈMÄQÊWÊ‘PÊ–YÑžaÒ]Ï™WЗWÍ•ZÏ–ZΔQÈ’NÆTËŽUÏ’RÌ’PËPË‘SÊ•W˘WÑšYϘY͘\Ñ”XÎS̘YÐœZÒ–\Í”ZËšZÎœZÏ–VΔVÔœ`Ù¦mÛ¨oÞ¨hÛ¦gÕcÑ–^Ζ^Λ^ÒdИ]Ϙ[Ó¡`Ö¦eÚ£mØ dÑ™XÑš]Ô¢_ÖžbØ›fÙ¤dÛ¨hÞ¦fןcÒdÙ§dÝ¥dÚ£bÚ¤fÜ¡lÚ£gÞªhá«oá©nݪmܪoÛ¤lÙ£dاhÙ©jÝ©nÞ¬qÞ¯nߨoÜ kÛ¤hß©pá§rá§ná¬lã¯jÞ­jÙ¦hÛ¢d× cÒ™[Ñ•WÏ—\Ì—Z̘ZÏžaÔ¥hÑ¢kÒ¢jÜ«uä°{ä¯uá­rà¯rà¬pÝ«sà³vå¹væ·xåµsä³væ´yæ´uá±yà¬uÞªqܬvß±zß±|ݱtà®qÝ«oÛ°pÝ­vÝ«yá²uÛ¬nÙ«mÞ²qÚ­mÕ£fÔ£kÙ§qÚ©rØ©oÖ¥pÙªtܱoÖªlÒ¤fÓ©kÓ«pФdЦkÕ§oËžbÇš[Íœ_Ñ›_ÒœaÒœeÕ£kÔ£kÒšaÖ `Ø¥cÒ bÖ¢bÒ `Í™\Óš^ؤ^Ô¤_Ò¡`Ö¤cÚ¨mÙ¦r×¥nÖ£eÔ¡_Û¦hÛ¨lÛ«nÛ¬qÚ©oÙ¥pÒ¡iΣ`Ö«mÞ¬zÞ­wÚ¬rÙªvݲtß²sà²zä¸~ãµ{ܯvݲy߶áµ}à´zÖªqÓ¦oÙ±uß´à¶Ý´oÛ­lÙ¯wÙ°yØ®vÚ±täµwè²xä±}ä²~ß³}Þ´~ᲂá¶~ã·}â³{Þ³sÝ°oÝ°zß±{Û«pÚ®rÞ¯rÙ¥sÞ­sÁœlÛžiÛ¡dܧjÛ¢lÜ hÞ¥mÝ£kÛ¢lÙ¡oÝ¡kܦmÞ¥má¥hà«oá­xã¯uá¯rß©qÜ£lÛ¢nÙ¢oÞ¤tߥnܤeá¨kß©jݤhß dÛ¢eݦlà£jÝ¥mß©vÞ§kÖ¡fÖ¡fÛ¢gÞ¢oÞ§rߧjÞ¦iÜ¥mߣjÞ¡cݤfÞ£eÛž\ÛŸ^Úš`Õ“`Ö™WמWÙ cÝŸ\ØœWÔ—ZÔšYÓœZÒ–_Ó“ZÑ–UÍ’WÏ‘XГ\ËUÊRËŽWÈŽSÈXÇ‘XˆOÄ\Ñ¢oܯyݱ€Ú®|Û«|Ý­}Þ©tاqÖ©zß±xà²wÞ®€Ý¯{تsצxÛªyÖ£pÑžjÙ¦v߮അᶊḋ෇áµ~Þ³yÝ­}ܫܬ~Þ¯€Þ°‚ß±Þ²€Ü²|ܲxß­|ݨyجvÚ­zà®}ß±‚ܵ€Þ¸~ßµÞ°{Ú¯|Ù±‚ݳ…ᵄⶅඅⴀã·~ṃà±߬wÛ­}Ü®€â²å¶†äµŒã¸„ݳxÛ°{⸆㻊弃ⵀް‚㶅纄七ᵂ㷃滈麋絇䶉絅ä²߯~à®xܪsÛ¨nÞ¦hÝ£dÜ cÛ¢gÝ¥mݤjÚ¢hÚ¢hÛ bÖ¡aÔŸ^Ô•RÒ“UÑ–\ÐTÎRÍ”VΘ[Ò™_Ô•ZÕ–RÔ–ZÎWÊNÌ“PÍ’PÏ‘WÑ”]ÎSÊŒIÈ‹RÍ“^Е\Ë‘WÉWÉŠWÌYÍ“VÍPÍŽSΔWÍSБPÏšXÊ”XÇŽOÅŽNÆŠKƈEćJĉPÇPÊ‘PË•VÑŸg×¥tÛªrÚ¥pÕœkÖ¡fÓŸhÐœiÏœcÆŒWĆPÊ‘WÌ“]Ì–_Ö£nÛ¨qÖ¦hÕ¤bÔ¡_ÒbÑ—`ÎŽWÌ‹OʉPËYÏŸ`Õ¬lÝ­}᱃߰Ý­{Ü®|Ü®~Þ²{Ý«vÙ¢nפhÔ¤jÔ¦mجjרiפuÜ­}Ú°yÚ­}Ú«{Ô¢iΘ^ÊšZР`ЖcÍ’dÑlÒžjΙ]Í™bÑœeÓœbÕ¤mׯyÛ®tÚªmÙ¥nÒeÒ›`ÔeÓ¢dК[ÍXÍ•^Í•ZΔWÑœ`Òœ^ÓŸ`Ù©iÙ¥eÒŸcОeÓžbئlئqÖŸhÔfÑ¡`П`Θ`Î^Ö«jÛªuئr×¥mÔŸgΚ^Ë”WÍTÎ\Ζ[Ò›YÒ bÕ¤fÚ¥hצoØ¥iÔœZИ\ÖŸfÛ¥jئlئnØ¥nÖ¨o×¢gјZÏ›WÔ aÔ¢cÕ¢cÚ¥kܨqÚ¦tÚ¦rÛ¨hÛªhݪuÞ¨rÝ©oߪpá®nÞªlߥnâ§oÞ¨lÙ¡eÙ\Û¢hÛ¦mÛ¦hߨoÞ©rÙ¥i×£^Û¦[Û¦bÔ dÒŸd×£e× ]Õ]ÕŸfÕ¤hÕ¡_ל^Û£dÙ¤hÚ£kÛ¤hØ£gÚ¥lÚ§jÚ§eݨgݬhß±iã²oá¯rá¯kâ®k߬rÞ¬u߬pß­kà°pà®rà«qÝ©pשkÙ¬j߯pá°yß°zÙ¯nÚ¯lܬnÖ¥fÔ§i׫nÙªoÙ§nÒ¢mÒ¤lÖªmÚ¨mÙ¦hÚ©lÚ¦lÕ¡dÕ§gÖ©lÖ¤iУfÏ¥`Ö§dÚ¥kØ£mØ«pØ©lØ¥fÕ©hÖ¨eÙ§dÖ©jÓ `Í•X˘ZЛ\Ó[Õ¡]ÕdÙ¢hÙ¤gØ¡jפoÙ¢lÙ£eÙ«aÝ«eݬsÚ¯qÙ§kÐmËŸmѦoÖ¨nÖªmרnרjÖ¯nÚ¬rݪpà°xâ®uà­oÛµyÞµ}á±zÚ°tÕ«pШuÕ«zܱá´{à²sÙ«rØ­uß²yß®}Ü®yÞ±xá°uâ¬tÞ¬vÞ°{à³zݳvܳw߶w߯xܨqÚ¬jß­pܪrÕ©pÖ±uÛµxÚ«và¯wÄoá oÞ¢gÞ¢jߢnÝŸiÛ¢nÝ¢mÛ_Ø¢bÚ¦kݦká§jâ¦là¦nà¥ná¥má¥ná¦nÝ¢f×¢fÛ£lß¡iÛ¡eݧhݦiסfØ¡aÛ¥gÝ¥eß [Ûž[ÝŸeß¡iÙ¢hØ¡fÛ£_ÜŸ`ÚšgÛ›^Ù›WÕ˜[Õ–XÙœWÙ›UÚ›YÜ^Ø™]Ô–XÕ–UÕ•QÒ“MÕ˜TלXÏ“PÊŽJÊMÊ‘JÌQÍŒUÍŒPÉŽIȉMˈTÍ]Ñ“bÎWÉŽPȉNÌ‘_ЗiË’bОmÜ­zà­~Þ­‚Ü©yß®y᳅ᯄ߯€Ý²…ⷈ䵈߰٬uÒ¥nÕ¦tÙ©xÚ¦qߪ|ß²…ീá¯ß®€á³æ¶~â·ß³‚᱃ᲀⶀ᳄߰„à¯Ý®zݱ{Ü°{ܬ}ß«zä­z嶂ḅãµ|ã±{ß³„߲߯~޳ᵂà²{ܲzà²}Þ²~Þ´ⴂᶄ䵂â­~߲ⴆ峃嵂浅嶃à¯zÞ°z漌罔縌åµáµ溋뽈蹂åµä´{ã¶yæ¶çµzä´zã²â±zà«nݦdÛ¥bÚ fÚždÖ^Ó™SÖ›Tל[לXÖ¡YÕ¡bÖš]Õ˜[ÔšYÎOÒUÕ—ZÑ”\Ô•`ך]ÕšeÖŸlÕaÑ•UÏ”[Í”XÌ’PÏ•YΗ]ΔZÏ“ZËRƇLÈŒSΗTÍ•PËPÊLȉLÌWÍ”]ÉZÊPÈ‘PÊŽVÎWÏ’QÊŠMȆHʇNɉRÇŒOʼnJʼnKÈPÊWÏ™bסnÙªxà®zߦuלhÓŸkÓŸqÔœlÏ›dÑ•\Õ™`פoÚ¦mØ¡mÚªyá²yÜ«vØ«mÖ¦cΖ`ÈZŠT†SȉVΖ`Ü°yâ»~àµ~Ⲃ߳€Ý¯‚Ý®~ß±{ಅ޵„à¶~Þ°}Ú¦vÚ§sÝ°|Ù®yÖªwÚ­zÕ¨rÒŸhÕ¢p×¢pÖ¤lØ©sÜ®tÜ­q×­vØ®tجxÙ«vÝ­rݯ€Ý³á´wá³~Þ²Þ±€Ü­~Ö¥rÓ¤jÖ¬rتwÖ¥uÖ«qÕ«pÚ©t߬xá¯xÞ²{ݲ}á´zß´{ß³~â´ß´~ܳ}ß²{Þ°sÞ®r߯wݯuÙ®vÕ¯wЫyÓ¢pÒ™]Í–^Δ`ГVИWКXИWÓš\Ö£cÚªnà«uߪxÞ¬}Û®|Ù¨vÚ§s߯rà²xÞ±yß­tÛ¨vئqסfÔ•WÓ–UÔ¡`ÕaØœ_Þ§qܧrפjÚ§pÝ©oÛ­pÝ©{à©{߯xà±â±zá®sߨsÝ¢qÙ¢lÖ fÕžbØ¡kÚ¤mܪnÞ«rݦjݨiݪqÜ«ràªlߥfÚ¢iؤgפcÚ¥dÛ¦fݤjߨjܤ_ÙžcÖ¡lפlÜ¢lÛ£iÞ¦ià©mÝ©jئcØ£aݦbߨbá¬h߬eÙ¦eÙ¢gÛ¥hÚ©h×¥fÙ¦eܨdݪeÝ«hÞ­kÞ°mݱsà³wáµvØ©qÙ¨o߯sÚªtÞ§nÝ®pØ°qÛªpÚ£jÑŸhОh×£kÜ«mÝ­lܨjÝ©má«uà¬tÞ­pܪqÙ¬sÞ¬qÝ©mשjÛ­rà°pݯhÜ«nݨiÙ¥dÛ¦mÙ§hÏžXÍ—WÍš\ÑœZ×›XÖŸ`ؤbÚ¤a×¢bפhפgÚ£fÙ¦hؤmÙ¨pݬqØ«oÔªfÒ£bÓ¤cÕ«fÕ¨fئdÙ¨hÔ¤hÕ¥iרpׯnÛ©lؤlجoܬpÙ®mÔ©pÔ¦rÕ¬q׫sÙ­qÞ´xß±vØ®rÛ°vâ²xá­rß­oÚ¬qØ­wÛ±qÖªfÑ¥hØ©mÚ«tبvÛ­qÛ¯lÕ§rÕ¥qצlרmÙ¨rÚ®vÞ°yß­r߬jº˜gÛ oÜ nÞ¢làŸhÝžeÝ¡fߣiÙbÖŸfܤjá¡gß¡gÛ¤cÚ¡aÞ \Þ¡`ÞžfÛ¤eÙŸ_ÖšaØ cסbÚ¢_Þ¥eÝŸj×›^Ö]Ø_Ú¢^Ü¡YÖ–XÕ˜YÙ\Õš[Ñ—^Ô˜eÕ•\Ò’WÏXÎTÒTÑ“VÑ‘XÔ–bÙŸeך^Ô–]ЖWДOΑQËRÉŽQÌUÉ‹LÇEÈ„JʉOÇŽQÄŠJĆJLjLLjFÇŠMΗ^ÔžfÓšjÑ™eЙcÒœkÕ¦qÖ©tÚªxÙ¦yצ{Ù§xת}Ú²€Þ­{߬xÜ®zØ©Þ®Þ²}Ù¦sÕŸwÓ¡zÚª~಄ܯzܲ{Þ³„Ü°|Ü­zÛ­}ܯ|ᲃⶂഀݰ᳀䳀ä²á°ƒà­„ᭂᲀ߲ß²‡á¶ˆá¶‡å¸‰â¸ˆá²ƒá²€Þ¯߯}å¶|å¸ã´‚ã³}߯|ܱ€Þ°ீಃߵ‚嶂ä²}ß°~ß²~â³|ã³á±à²}Þ±}ß°~軄êÀˆè¹ˆã°€à²‚浇䳀á²zâ®zã¯~Þ«xߪrâ®rá­uà¨pÞ¦iÛ¤jÚ¤dÚ¢^ÔšZÑ—XÔ—UÓ–QÓ”PÒ”VÓ“ZÏ“\Ñ—_Ô”ZÑ“YΔ]Ì“YÕœfÖ¦rÓ£oؤm×¥oÕ¤rÔ£pÑ¡gÓœ`Ï–^Ì™`ÓbÖžbÙdÖ›bΖXÍ‘QÌŽNË”[ЙbÍ•XÈ‘RË•Q͘WÑ”WΑTÌŽVÌŽV͘^ÎœeÑšcÑ›bÐœaΖXË’TÊ‘SÈQË‹TÉXÈWÈ’RÍ•[Ó˜`Ô¡iܯ{ß°y×£uÖŸrÙ¤oÚ©pØ©lÙ©lÞ­uᯀު~Ö¥vשtÞ©yÚ¦xÕ¤qÓŸnÊ—bÆŽYÅŠTÇ‘WΗ]ÔŸj߯}ã¶ß´ƒÜ²‚Þ²Þ°€á°€à²‚Þ³„ᴂⶂ޳ƒÛ¯|Ú«wÛ«zØ«vÖ¬rݳ{Ú­{Ô¥tÙªtÜ®wⲀ丅ⷂޱ޲}à¸~á¸å³€â°㺅㽋ᵅᶂᲂޱ~Û°yשtÕ£uÖ¤qצoÓ§sÖ®sÛ¯|Ü°Œâ¸Šäºáµ{䶃䵇޳‚à´㸃ṅݵ~Ù¯vÚ¯tß²{ⵀ⸀áµ{Ü«nÓŸeЛeΚ^Ëœ^ÑžfÖ¡jÖ§oרkקiÙ©qܯuÝ°sÞµÞ³~à±vá°|߬}ã¯}ä²â´á³~á´yÝ´uݯuÝ«qקpפtܬvجjÙ¨já²xÞ²{ܯxáµ{ᵂ߲ۮvרjרmÚ¨pß­oá²pÝ®oتmÚªpÚ¦nܦpà¯vá±yà¯yâ°zã¯vå²xæ¸yç¶té´yã°|à©wá«vÞ®tÝ­oÝ®rß±v߬qܧmܨoܪkÛªkß©qá«oß­rà¯{ß«sÛ§iÕŸ`ÕXÖš]לeÚ¡^ÜŸ]Ø]Øœ]Úœ^Ö›ZÖŸUÖ£[Õ£cÚ£aß©bÛ¥hÙ¥gà®rã±|Ùªjתká®uà­r׬nجrܯqÞ¬mÝ­nÓ©bÉœ\ÏfצnÞ­jß±nÞ¯pá³qß³uݨqÝ©kÝ®nÞ«tÞ¨pÝ«nÚ°sÛ©qÞ¨qÜ«rÚ©jÖ¦fÓ¢eÕ¤fÕ¥hÑ¡dÏ`ÑœaÖ cÙ fסjÖ¥e×¢_Õ\Ï›WÑŸZצdÛ¢hØŸ`Ö¥hØ©rØ«mÙ©gÖ¥fÖ¡dÙ£`Ù¦eØ£eÕ¢^Ô£aÕ¨kÔ¬mÓ«nÓ¨kÑ¥cϤcÒ¢eÏŸbΣhÕ«lÖ§oרuÞ³vݳ{Ý°}ݱuÝ°tß²uÞµqرqÙ®tÚ«qТjËhÕ¥sاwÕ¨uÛ°uÙ­oÕ¨mÙ©nÙ¥kÙ§oÝ°oß±hà­pܨkÔ¥Z²QÙ›eÕbÚŸ`ßždÜŸgÜ¡fÞcÙ˜ZØœ]ÜŸeÝŸaÝ ^Ü[Ù™ZؘV×—XÚ™_Ûš`Õœ`ÖŸbÙ˜bÔ˜c× c×_Ô—XÔ–[Ò˜^Ö›[Ùœ`Ô›bÔ›bÙœ`Ö˜]Ñ”VДVЖ\Ô–\Ò”WÍVÍ•[ÑbÕžjÖŸnܪy߬yןjÔœgØžkØ›lÑ–`ËŽQˇPȉOƉJÈ‹JÊLËUÈT¿ƒJ½„LÂVÉ•`ПjצtÛª{ܯ|ݯzݬyÞ®}೅᷆ೄఃۨ}פzÙ­}Þ³ƒÞ°ƒß³ƒâ³à­{â­â±‚á¯{à®zß²~ᶉⶉᲅ⯂à®à®„à¬Ý«{Ü«rß®wÞ²‡à´†å´ä·ƒã·‰ã³‹å³ã¶„ß³ˆã´†ä¶ˆà¶„㹃上ᴉ岂ം۰à±}㵆幌ç¼è¸Šæµâ±}㵄一á¯yß©yÞ¯€á±}ߪ{שڭzߵ廆纃跅ä²ã´„뼈è¹æ³{ä®vß­tà°qà«oݨpÝ«qàªvá¨pà§fÞ¥eݦkÚ fÖœ]×gןnÕš]Ñ’UÎ\ÐWÍ’YЕYÒ”TΓTÍQÌŽRÌTÍ[Ì’ZЖeߪã´à±{Þ­Û¥v× nÕžhÔŸkÖ¢mÖ¢mתuÝ­vÞªuÙªvÛªxܪhÔ¡_ÕhØ¢mÔ¢mÔœiÔžhÖ¥iÙ¥fÕŸfÒšdÔgÔ¢lÜ­tÞ²|Ý­uܬuܬtÛ¦nÙ¤jÔ¡bÒœdÓžhÒœfÔžjÑ¢hÑŸeÖ gÖ¥lÚ®{Þ­{ܪrÚ¬tØ®vÛ±uá´yà°}ß®ᯀݫrОfΞiÖ¨qרuÛ«uÞ­uؤtÕ£rÖ¨o׫sÚ®uÞ°~ⴄ㶅ⵄ޵àµ|à±{ܲyܳyܱ|ß´}㸂᳅ݲ~Ú´yز€×¯€×±€Ý¶„廇ݷƒÜ³zⷀẆà¸}â¶{á·Þ¶‚᱄䲆හ۲zݳ~㸇䳂ޱƒà´ƒáµ€Þµ{ß´z߯uÙ«pÛ®oÞ­rÝ­~Ú¯€Ü°~ᶇ޷†Ýµ~ß³yß³zá³yâ³yÞ¶€Þµ~ݱxÚ±xÛµzÚ±yß±z涄ã³yÜ©mܨoÛ§lØ«pÚ°yܱuÜ´tß³xà³yà°|Ý°yß²{ã°€â´~Ẅใà²{ᰀ㵂淃ä³â¶}â¹|à¶}ßµ|ംᴅ㻃⼇àµ~ß´wáµ~ᶃ⹅缉漇เ޳|Ý­qÙ©qÙ©qÝ«tà´ãº{幀㶂á¶{ä¶{äµ}á²vÞ²rà²vä²|ä¸yä»uæ»zè½|꽀긃縀â¸}ß±~à¬zÚ¨mبnÙ©pÛ¦lݨqÛ«uÞªuߧtÞ©uÞªtܨoÙ©nØ©iÑaÏ•ZΗTЗZÒaÕ¦fÛ¦gÙždÔ–ZÕš]×`ÝœcߢgÙ¡fÚaÚŸdØ¥lÞ¨mߧoÚªqÝ«tÝ¥iئfÙªnÕ¥nÖ¥mß­rß©mÔ›bÏš]ПcצiÞ«kÛ¬mÚ®nÝ­qÞ«rܬw߬uÛ§mܨrá¬oܬnÚ§qÚ¨oÙ®pݬmئdÏ¢cÔ¤iרlاqÙ¥pÓ£hÓ¦kܪqÛ§mÖ¦kÕ eЙ`͘aÒžeÚ¦oÕ£rÑ£iÕ iÔŸjÓ¤hÖ¢fØ¢iסdØ \פaצeØ¥eئaÕ¨dÕ©fØ©mØ­lÙ­fÖ¦jÔ¥mÒ¡cÍžcÕ¨rÜ®qÔ®tÙ¯zã´{Þº~߶~â²}Þ¶‚à·€ã¶{à¶yá´{Ù­pˤeÑ¥qÛ¬uÚ«rÙ¨pÒ¥mÖªs߯pÙ«lÛ±uàµuܯtÚ«pÕ¤^Ë•O°€F×™^Õ˜bÚž`Ù›`Ö™c×™\ט[Ö–\Öœ[Ø ]טVÑ“QÒ’TÓ“MÍ”KÑ”U×™`ל\Ö™[Ö\Ô–UÓ‘TÕ›SÔšSÏ‘LÍ‘QÏ–[ÕšZÖŸgØ¥oÚ£iØžkÓ›mЗ`Ñ•\Ζ^Ε^ЕhÏšgÕ¤oÛ¬zݬsÚªvÙ­{ÙªxÔ rÕ£vÜ©vÞ¤k×›bД_Ð\Ï‘WËYËŽYÍ“TÏ–[Ì’\ÇVÈ”XСkÚ­{Þ±|Þ²{ß°ƒâ´…⹂ⵅⲆⲆ㱄溅ëÀá¯}צvÚ¬yÜ°xං湊䳅á°|ⱃ㳃ä³ã¸€ã·†ä¶‰ã¹‚巉㵇ංⰂݫ}Õ©uÒ¨nÙªxᲂ㸂㶂丅⸆޴}á¶~巂䴀ᴄ᷅ⶅ乊㸈ൄᵄᴂ߱€à°‚Þ±€Ü¶€â¸…ç´…ã´à²䴃崄㲂á³~ß²ã³ß°~ت}Ý­|â³ã³‚ä¶~ã´‚á­{â®w綀ã¶~à²vß«oܨmݬqÙ¨iÖ¢gÙ¤mÞ¦kÜ¥iؤi× hÖ™\Í–QÌ—ZלgÙœbÒ—[ÎOÏ‘NÏXÊŒYÈ’WÍ“SÎSÍUÈŒQÇTÉXÌ–bÖ¥tß°ß³‚ß±~Ý«yÖ¥uÔ¢jÕ£nÙ©yÛ«sÜ­zß´„ݳ€Û­|Ü­€Ý°}Û«xצyצwÚ¨vÚ¨vݪxÛ«yÙ­yÚ­{Ø«zÞ«{á°ãµä¹†à¸†áµ€à·€Ü²}ß®và²xݯvÞ²uÞ³{Û¬yÚ«yß°zÛ¯{Ú­}Û­{Û¬|تyØ®yܲ{ܲ|Þ´~㷂Ⳅޭܭ{׫tÔ¦nÏ£lÐ¥nÕ¨uݯ乃äº{䶀ೂ޶|ⷆ事㻈äº}á¸~ൂá´}Ü°vÙ­xׯyÕ¯xÛ±}ã´Þ°|Þ±|á·ß·‚Þ³…᳇ṋ徎ⷀ۲}ܲ‚Þ²ݳ|ݱzÞ°tÜ°{Ü°~Ý°†Û±‚Ù®zØ«۲ݵ}Þ´|ߴൂߵ~߸‚㸅㵀ä¶ä·„㹂ܲ~Ù¬~ß´‡ß´ƒÞ°ß°|߯€á²ˆÞ°ƒÝ°á³}á³}ݲ{ݱ}Ü°Þ²ᶄ޶ݲ{á³áµ{ܲwṃᶅ߲„ⶄⵂޱxÚ±wß´€á±ఀᲇ䴆乊予ã¸{â·}ⵀ⺂㸃߳~ßµ{à²àµ„亇巉߲„á²}ä±~㲀㶅㶆áµß³~â³á´ß²{Þ¯xÞ±xà³~䷃繂æ¸~á´{ß²€à±€Þ±~Û­yØ©qÙ­rÜ®vÛ®{ܲyä¸~渃䷉了ã¸{à±yÞ¬{Ù¥sÔ¢nÖ dÕšeÒžjÒ£hÕŸnØŸnؤhÙ¦hÙ¡mÚ¨u߬vÚ§jÒ¡_ÑŸ]ΟbÓŸdß­màµoبfÑšXÑ™YÕœ^ל`Ó˜_ΕSЙQØœZÙŸYÙ§[Û¦bÙ¢aݨgÙ¦gÖ£kØ¥nÔ c×dÚ¦j׫kÓ¡`̘VǘXÍŸeØ¡bÔ\Ñ¡gÖ©pÙ¨kÝ«lÞ­mܧlÚ¦sÝ«sÞªhÚ¨fÚªqÜ«r߯oܱoÒ¥kÍŸiÖ¦iØ©jÕ¤dÕœbÔ¡lÙ¨mÛ¥cÖ¡eÔžeÑžaÐeÖ rÞªvܬiÖ£fÖ`ÓŸZÐœ^Óœ\Õ¦ZÖ£[ÕŸ[Õ¢aÖ¦hÚ¦fÜ¥dÖ¤bÑ¢jÛ¨v߯rÚ¬iשc׫fУeÌ¢eرsÞ´}Ý°uÞ³wà¶{â¹yà·yÞµ}ᵀ⹂ã¹}å¹xå¼€ã¹Û®nÕ¦lÓ¨tÙ®sÕ¨s΢pÔªtÜ®qبmÙ¦kÛ­kØ­o׬oÒ£aÉ”O¬K×›qÖžjÙŸc×™gØ™cÕ–]Ó”gטhÙ jןlÔ•ZÐ’VÑ•`Ñ•_Ò•Z×™\Ø›`Ó—ZÏ‘XÐ’[Ô•[Ñ–WÑ—VÓš[Ó›_Ó›fÔžnÖŸmئpÝ­yݪvÖ¤nÓ¡nÖžoÕŸkÕgØŸmݪwÜ«yÛ«|ß­|ß«~Þ©{Û¦vסuÕ¡oÛªoá­xÞ¦vÚ£nܦqܧqÜ¥qØŸlØœiÕ˜jÍ›mÑ›iÕœkÙ«zàºâ¹嵃崈ఆᰃ᳃᱀߯}ß°ƒà°ƒã¸†å·Šß©|Ûª~ß±…᷈俑æ¼å¸†å·†å´ˆâ²ƒß¬‚à­€à±á¶áµ‰âµ‚㼆庅丂á±zÖ©uÕ¯€Ý¶‰â¶‹ã¹Šáµ‰à³†Ý·Ý±ƒã³ˆè¹Œç¶Šâ²…ß³à´඄ൃ߳~ã·æµ„â±€â¶䶂â°~Ⲁ贂å²à°‚洄縄繇趄ã¶繈洅ޮuâ¯zä±ä®wâ­{߯w߬lߥoܦrÚ¥mÙ£hÙ¢gÞ¥lߧkØ›cÒš^Ù£dÛ¡eØœ_ИUÍ–WÑ™^Ï–[Ôœ`×¥i×¢e×£eÚ¡hÚœ`ÖšYÒœ^Ж]ΔZЙeÑiÐeÓŸkØžqÝ¢v߬ⳃⱀܫ}צ{Ó oÒ fÖ¥tà²á¸„ß´„à±~Ú¨sÙ§uݯ‚ⵆä´Ý®|Ü«vÛ­zܳ…ᶆå²|ఀݰ‚á²ã¶†ãº‡åº‰äµ„ⷄ丈嶄ⴂ߱}߯~ᵈ⷇᷄޵„â³€á´Û³ƒÛ´~ß³€Þ¯}Ú®zÛ¯Þ±‚ݲ|à¯{à±à³ƒá­{Ü«vÜ­y߭ݬ‚ت|Öªxܲx㷀済輈軀â²ഈ了㸄ṇߴ}Þµ}᳄ެ~Ú®}ܯ€Û°uÞ¶y帇ä¸ã¹ƒç¶ˆè¸Žç¼Œå·„ⴅ㹌ᵂޯzß²€á±|á¯~ݯ}Ù±xݲ~à°Ý­‚àµ~à´yÜ®yÚ²}ß´~á³{à´}á¶àµ{ã·{å½~㹀巅罉仉ᶄà³ß±‚Þ¸‡á¼…à·⸅絆ã³{Þ²wß²vãµyá´ƒâ³á´|ഃ久⹂߳à¶ß·{à²x幅ᶆá±}å·ƒã¸~ݲzÚ¯~Û±xÝ­sÛ®vീ幇庅廅㷅à¶}â¸æ¹‰ß¶Ü±}߸€â¿Šæ¼‹è¶ç·Šâ·Šà¸€àµ‚ᯀà±}ܱ{Û­xà­~ß²|à·}㹄帄á³ݯƒá´‚ã¸~嵃å°à³|ß³|ß²uÞ³{Û¯{ܯvÛ³u×±yÙ¬{á²|ãµä³†á¶…Û¶Þ´~á±xà­rÞ©sצpÕ¢jئmשlÙ¥oܬzß²|á¯vÛ«lß®tè·~á¶tÚ«mتoÔ§oÕ¨ná³tæ¶~á¬wÚ¢kÖ dÖ¢dÕ¡lÏša̘V͘[К^× ]ÙŸ^ÕŸaÖ¡cØ£bÚ£^×¢aÙ§eÛ¥fסhÕ¥fÙ¨gÛ¨kÖ¢bÏŸ`Íœ^ÑœX͘UËšYÑ£gקmݬmß­sÚ¬tÛ¯sá®oݬjتmÛ©l߯pá³vá¯sÞ¨nاqØ©sÙ«qÖ«oѤiÑ¢mÓ¨hÔ¨aÕ¤dСdÏ¢fبmß°vã´xݯoÖ¢gÔ `Ò ZÓœZÙ `Ö¤`Õ _Ö£b×¥cÙ¡cÚ£bÜ«bצeПeÖ¨fß­kܪnУgÉ¡`ÍžeΠjÕ®xßµ}Ü°tܬwß±{Þ³oÜ®kÞ±xàµ{ãµ€ä¹â³uã±z乂â¶}Ü«pÑ¢jÕ§vÞ­yÝ®sÙ°uܪrפjÓ©nÚ¬uà«rÞ­oÕ§iÎœe±Œ]Û§sØ£nÒ›mÓžs× nÔ™mÕžtÙªqÛ¨uÝ©zÛ¨oÙ£lÙ¥qÛ¦uܦvÚ¨vÛ¦yÙ¡tÕhÖ bÙ¥mÙ£nÖ¢qÙ¥vߧwÚ¨z×¥vÖ£sÖ¦xÛªxÜ©|Ú©€Ø¤xÙ¨yß±|ݳxÛ²|Þ°ܱ€à®€ã±…Þ°Ùªvרvا{Ûªt߯|ಅ߰vݬtÝ®uà±xⰀ߰{Ø¥nÑœbÏœbÒŸhÛ¦tÞ²Þ±€á¯ãµ}â²}ß«yÝ«vÝ­{Þ«}ß­zܲxÚ¯zÛ­zÚ«|Ùª}ܱƒá±Œä´Šæ¹Šå¶‡ä¹†å¶‚ⵂെఀޭ{Ü®‚á²Þ®vÞ±}ⶉ㳇䲂ã®{ÛªxÛ¯‚à´‡Þ³ˆÝ¯†Þ²Ý±}á¬沂麅쿈蹇䷆á³Þ¬vÞ«zÛ®wØ­vÞ´}ã¸á´ƒã²„ç³á²{à°}ã´wä²uá²}᳅䵆軅æ¶ä®}æ±€å±uá®qä¬xâ¬yÞ®wÞ«sÜ©nÞªjܤfÖ`Ôš]Ô—bÒœeÖ¢e×›aÑ\Ï•aЙ^Ð’ZБZÌRÌTÖšaÝ¥qà­{߯{ß±zà±{á±}ÞªuÙ¦oÚ¨nÕ¤hÔ¢pÙ¥~Ú¨}Ü­x߬{Þ«}á²}â²ß±Ü®Ó¥tÒ¤jÔ¤mÕmÚ§z᳋ⶃá³|᱃۱€Ù¯}ಃ㴈ᴂá´à±}à±z久⹂à¸â¶~àµ~ආᴉ߲ˆá´‚ⵇäµä·ˆã¸…㶉䴀å²x岀߯}á²|㴅ᶀäµ}àµÚ´~ܱ~ݳ~Þ´~à²ß«zܬyß´|á´vá®vá°~Ⰴ峅廈巃ޭ{Öª{Þ°ƒâ·„ⶈ踉ã¶ß°zⵂ䷂â¶á¹†ßµƒÞ³Þ³€Û¯yܯ}߲߲{ß´€áº‚á¹€á¸zå¹æ»Šâ»Šß·„à³â¶}á´yÞ±{ݳ€á°}ã³}à³~á­xå³zã¶~ßµ~à·á´‚ß³‚Þ®~ܱ€Þ·}ß³zⲃᲆೀⷀä¸丄續滋ⴂೀ޹€å¶‡è¶ˆåº€â¹‚Þ¸ƒâº€è¹âµ{ܱã³ç´„ⴀคߴƒÞ²vÜ´rܳ{á°~âµ~àµ~à±{Þµ|ܲ|ß±{à´}Þ²|à°zà±}޲โṃᶄ帆⹅â·嵃㶉á´Ý²wÞµ}å¿‹æÁ‹ã¸„丅㼆嶀å´â·ƒâ·á¶Ú«sØ©qÞ±}ß´ƒÜ²~Þ°|Þ°…Ù±ƒÝ±wⲀ帆å¹~ീà¶}ä¶~䵀㹅乆âµß²„Þ±‚⸃澅ã¸~á´€Þ¶zá³|ⶃâ´|âµá¶€á´vâ´}á³|á±uã³㸂ä¸á°zݲ|巃綀âµzà­z×¥tÓ¥oß®vå³|à²wÞ­uÛ«nݪgܨmÖ§mئdÕ¢_Ô£cÔŸeјaÓ™\Ô›ZÖŸaÙ¢_Ôœ\Ô¢`Ö¥aØž`ÙŸaÕ£eÕ¤fÚ¦dܦ`Ô›ZÏ–YË–Y˘aÔ¢gØ¥gÙ¥pÝ­oܬeÛ§dÚ«fÚ«dÚ§eÚ¨dÚ«fÚ¨jÚ©nÛ¬sÝ­sܬiÚ«lÛªs׬iئj×£nÕ§gשnСgÏ eÝ­rá³uÜ­pÚ¢`Õ›ZÔœ^ÕœZÖœ]ØžfסeÙ¡_Û¤dÚ¤dÙ¤bÚ£eÖ£eП_Ñ bئhÚ«jצfÐ^Æ–\Ç–`ÒlØ©qÛ®tÛ­uØ«lØ«lÕ«kÓ¨lÚªuÞ®uÝ­rÞ¯nÝ°nܳvß²{ã±zà°xÚ«zÚ«zÝ°z߯vß®pܯjÖ©jÕ§rÝ­nß²hÚ¬pÙªoߨi¹–gܧuÙ¥uÕ¤qצxÙ©{Ü­ᲅ嶉师â®|Û¨qݬuá«|⯄㳉ⲀޱxÝ­zß°|â´{â²~Þ­€Ü¯{ܱyØ­yרpÕ¥nÕ¤xÚ¥xبwÙ«~Ý«‚Ü«„ܯ€àµ‚Ⳃీá°á±‚ã¶å¶‚ß®zÛ«{Ý«}ܬzá­ä³†ã´†à±Ú­vÛ¬~â¯áµ}ßµ|Þ®uÕ¢rÕ¢tݪpÞ®wÞªuÖ iÙ«v߶ƒâ´~á¯zà¬}à­à¬{à«|à°yá¶}㵉䳅ᴀⷃ市輆帊᳆幊湃崃崇á¯xá¯wâ²€à°{Ý­rÞ­{ãµ…æ¶è´‚ê·‚æ²|á­ß±ƒÞ±~á°|á°â²ƒåµ‚綃불車㹀޳~ݬzÝ©rÞ«rà­vÝ­uݯuâ¯wâ­vâ¯yæ³zå´xâ²{ã³{â²uà¯rã³yåµ€ä²vä¯mâ¬pâ°uä­uà¥mà©nß©nÞ¦gݦdØ¢gÛ¢dÛ `Òš`ΕZÍ“[Ñ—aÔ˜cÓ”XÎTÊ[Ë“TÏ—WΙbÇWË•]Ú¬uã·{繀꺄âµß±‚à²Ü®wݪ}Û§~Ø¥zÚ¯yÞ´€à²‡á¶‚㳂⬃ܰ‚ß³‚á°€Þ°Û«yÛªuÝ°yÝ°uà¯wå´†á°~Þ±{á·Þ±~Ü°}à¹~仅廉䷀ä±}崃黊争ⶆ七â¹æ¸‰ã¸ƒÛ±{Ú¬€Ý°‚ೇ㷇滆㷃ഀ乆⻅޵}àµ}ⶃᶄã¹âµ€ß³{Þ¶‚ÞµƒÞ´zⵂీޱx䳀嵂ãµ~㸆漊翇鿄é½â·{ݲ|à¶|ä¶tä³y蹄ä¶}Ü­rß²€å·Œå¶„å¶}âµ}ß³€ß³{Þ´~á°~ä±ä·}å¸~ç·ä³yæ¶}æ¹à´€à®€â®€äµ€ä¶}á´vÞµxâ±yã±xá³{ß®vã²vä´zã³ã³~â³|ÞµƒÞ³‚ݬvÛ¬yß°zà²~à°~áªsâ¯tá°uá®zã³â¶}á³~߯{߯{嶄æ¹âµ€â³}â²xâ²|á·㻂޶}Û¯{âµ}ä¶zã±}㴀߰xÞ­sà²vÝ°}á±yã³xÞ²|á±{à²xß³zä¸zãºz߶yá¶ⶅàµ~ä¹~㹂á·~å¸zçº{ã¸æµ‚蹃ṇܲ…Þ³~巂鹅庄么纊湃æ´~ç¶躊湆ޮrÚ«rß°€à´†Ý´€Ý±}å¶èºã¶â¶ƒä¹†æ¶‡â·†äº‚æ¶~䶄å¾ë¼é¹Šç½‡èº†ë»‡ê½†ä¶â´€â¶ã¶„争廆巈帀ã·}á¹€ã¸Ü±~Û²yãµ}岆㶀â¶xß²uà²vä´{á¬zÕ¤nÔ§jݯpâ³wä²~à²}Ù®oÚ¬pã¯và«rÞ¨pÚ¡hÕ dÓœaÍ–XË•VÕœ\ÙžbÖ˜\ИVÒœZן]Õ `ØŸ\Ø›\Ø¡^Þ¨bÜ¥hÔž^Ô˜WЖ[Í›_Ö¥kÜ©pÚ¬nܱpÞ°rÚ©qÔ¨lÓ§kÕ¡jÒ¡`СbÓ eÕ¤jÙ«sÝ®rÞ¬uß°zܱuÛ­uܨpÙ¤jاiÙ¬mרj×£kשqרpИhÌ•`Ì™_Ñš[ÔœXÓY× \Ù¤eÙ¢dÚ¢eÖ¡fÖŸ^Ùž]Ù d×¥fÕ¡_Ú¥`Þ®hÖ¨dÖ¢dÐ\È™[Ô¥lݯoÞ­hà®iܯmרhÒ¢cÕ§iÛ¬uÛ©vÚ§rÙ¯oÙ±pÜ­tÞ­uÞ­qÞ¯pÙ¬tÜ®qã®pà©qÞ«và«uÚ©jÙ©dߪhÞ¯oÞ®uà¬rä²qÃrÚ¨xÙ«xÖ§}ÔŸtÚ¨z嶇庌å½æ·†Ü¥vÖ¢uÚ©|ܱ}ݵ€á³à±~Þ®~ß²ƒß´|á°{á¯Ü­}ܬyÚ«rÒ¢jÏiΟnÒ¢qÛ§x߬zÚ­|Þ´„à´‚Ü°ß³€äµ‚㳊㴌᳊Ⳋ䷅㲄᪆à¬|á¬wß²ƒá¸‡ä³„à­}Ö¨xÕ¬|Û´‚Þ²„á´…à¸Þµ€ß³ß·zßµ€Û¬yÓ¢i׫uⵆ帉幇崆Ⰺ߲Žß±ß±~⸎绒빋跄ä¶~ä´å·…æ·å³}㶆ã°{â±vä³y߬rÝ®xá¯{á®wâ°uà¯wà²xâ´~㳄ç¸ä´~ä³€å²ä­Þ°}Ü°vá°|幂ã´{Þ«{ᰀ߮zÜ©xÛ«vÞ­qß­oâ¬qá¨lߨmߢnߣná­pä«vã©oá«làªrݤjÚ¥fß«rá«rÜ¥mÛ mÛ¤jܦjܤgÕ `ן`ÙœbÔ`Ô`Òš]Ñ›]Õ˜_Ô–ZÏ”ZË—`ЙdÓ˜bÕžcØ fÔžfÓ¡dؤgÛ¨nÒŸjÓŸg߬uâ±yâ±yã²{Þ³xÛ®vÙ§sÕ§sרuÙ¨yÙªyޱᴅà³á°~Ý®xܯrÙªtÙ«{ß²~ä³~â²~á³ã¶ˆã¶…â´嶂Ⰲ٭{Ý°vÞ­vÙ­|Û²‚Þºˆâ·€Þ®{Û¯yá²yã´~á»â¹à´ං布äµ~ßµ}Ü´yݱuÞ²|ᵄⵂ߰zÚ«{㷉軆âµãµã¶}á·|帀趂å²å³ã¸⸃巅å³㳂á·á¶‚㶂ä¹}ä¶}䵂㸃ä¶ã´€Þ²z߯}â­€à­xãµ~á³~Ûªt߬s߯{ß±~㵃ⳀޯzÜ®vÞ®wà°wá²{ã²}å±zã²vß­uâ­{ä¯uܬqÜ©và«vß°tá¬t߬qÝ­qÝ©uà¬uà­pÛªmÞ«râªnÝ«mÚ­rÞ­rÞ­mÚ§rÖ¢oØ¢oÞªsÝ«nÙ¥kÙ§eÝ©nÝ©nܨkݨsܬsØ©pשtÛ­yÞ¯rݯmܪpÛ«pÜ«uÞ«|à°wܯvÚ­vܯxß°}á¯yá¯rÜ­qÕ§nÙ¨qß®tÜ«rß­tà°tá®xã±~Ý­wÞ­uã¹wãº}᳀ߵzÞµ{Ý°„߯ã´ä·á³wä³z㶀â²淂⺃à²}㳃幃㵅޳‚ⵄ亇á»}ä¶w嵂漌缈åµ|à´zḂ巇㷄㺀龉뿊çº|â¶xá³yã±uá±|á·|áº{á¶ã·缂繉ä¸å¼„缆纃䷀á¶á¹}çº麇廈åºä°~à­}à¶~áµá±{à²sÞ¯tÜ«uÜ«sÙ¨sÛ¦nÛ©rÛ«oÙ«hרjÚ¨lÝ­m߬uá¬yà²wÜ«pÚ¨lÙ©nÚ¥nÛ¨jÚ§iÙ¤gÖ¦`Ñ ^̘ZÏš\Õš]ј]Й\Õ›W×›XØœY×\Ø›]מ^Ø£_Ø¡`×^Õ]Öœ`Øœ`Ø£fÜ«jÛ®oÞ°oà­jÚ¨gÓ¢dÏžeÔŸcÒœ^Í—\Ì—\ΟbÕ£iÓ£lÖ©q߬sܯsÙ¬tÙ¥pÙ§kÙ«lÙ¦rÖ¦vدzÚ«vПhÉ—WË—YÍ—_Δ[Í‘RΕSÓ›^ÖŸ_צ`Õ£]ÕœVÕœYÕ \Ú¤XÛ¤^Û¢cÛ¥cÚ©aÙ¦`Ü©fؤcÌš]Ñ£gÙ¬nÜ­uß®vß­pÝ®hÖ¨^פjÞ®vÜ°rÜ­kß­mÞªnÙªnܯuà¬tݪhÚ­eØ­jݪhÛªcÚ©gܦkÚ©eÝ©fÜ«mݬsàªoá¬jå²rÄžoÞ¬„ݪܭzÜ©vÙ¨xà®~⭀߯‚ß©~Ö¡tÖ¦wتvÙ¬xà²~᳀ᴀâ³ß±‚Þ±}Þ°zݳ~á°{á­vÝ­yÚ¦vØ¢qؤtÚ§}Ý®„ß²†á°ƒß³á°}߯€ß´…今ç¿ê•è»æµ‡äµ…᳉ܴˆà´ƒã°€â²…䶅áµÞ²„Þ­…׫ذ†â¸ƒå»…廆廄á·ß¶}㶀ä¶á¬|ીഄà´{à´~Ḋ万嵂ᴆಃ䴄涅繃洀߮{á­zä¯|â¯{à¬zà«~Þ«zݬsá©mߧhß«oä°wæ°xà«vÜ«tà¯vÞ®vݯvà³|ݬuÞ®yã±áª}Ü£rÙ§nÞ­pâ¯uß­zß©sà¦rߥqß«sá¨xݨp߬ká©jâ­ná©mÚŸcÚŸbÜ£gןf× lÜ¥nܤdÙ`ÕŸfÖ¦fÖ¢bÓ˜_Ò–ZÕ˜bÕ˜eÓ™[Ò˜ZÒ•_Õ•`Ò™bÍš`ÓŸaÖ¤oÕ¥qÕ¢fÕ£lØ¢sÜ¡nÙ¨pݪvá«zÞ­xà²vã²{ä³€â°{Ý«zÜ°xܯuÞ­{à³Þ³{à¯yß­uÜ«uÝ°zßµ~à´~ⶀ嶄â²~Û´~Ú®~ܧuÙ¤vÙ§|â³}é¹|æ¶}嶀ⷅ඀à²~赆资ޮ|ß­uß­yà¯ä³{á´Ý°{Ù©oתtݯyá²}â³á³~à³äµ‚ᴂⳇ㯂à«vÞ®xá²}â±}á²á²|à¯z䶃æ¸{ä³zâµ~á³zâµã·…ã´ã³{â±yã®sâ°xâ²ã®~ß°~á´~㴃Ⲁ䲇㯅â®zä³yä³yà­zÞ©u߬sß®tܨtâ°xã¶uÜ«nܬrß­vÚ©sÝ®vß®u×¥oÙ«vÝ°{Þ­y߯oÞ¬oáªvݪtÙ¨mÞ¨pݧuÚ¥oÙ§mÖ¢pؤoÞªoß«rÝ«nݦcݧhÛ¦hØ _Ú¢dÙ¦d×£`Ö¦aئhÙ£iÖ cÕ^Õ¡eÛ©oܧmÙ¢eÞ£fÛ¢lØ¢lÛ¥lÖ¢jСeÑ¢dÔ£jÖ¡iÔŸeÑ^Ñž\× hܤlÙ¥hÖ£nÖ¢gÙ£bݧmÛ©rبlؤiÖ¢kÑžjÖ£oÞ¬pÞ©hß«kÝ­rá«qã®wݯ{Û¬rß³yâ¶á°zß°xß´zß®yá°xã°â±â²uãµsæµvä®yâ±{æµvâ´z㴄㸂áµyàµxáµ~ã³zâµxã³}åµ~ä¼}ã¹yä²wâµzæ·{ç¶ã¶å·躅仃ã³á²}ß²rÞ«oÞ«zå²æ¶á´ã³„嶈渇æ¸~æ¹|æ·}å·~ä¹ã±ã³€åºèºæ½}㻃ޭyà¯sß³vß²wá¶{á¶|à¬sÜ«oÙ«u×¢lÕ¥iקoÕ¤hÖ¤fÙ¦nÕ©tÙ®uá°và¬uÛ«tÞ¯uß±wÜ«uÚ§qÝ­sÞ°yá®vÚ«nС_Í—XË”WÌTÎ’TϘTÒœWÓš]מeÖœ`Ô™VÙ™ZØœ^Õž\×›]Ø]Ø£`Ù¤bÚ¦fÙªmÛ­nß«mߨhÛ¨eÖ£cÑ ]Ö§bÕ¤dÉ—VȘVÏŸgÕ¥hÔ¢\СbÖ§pÝ«tÛ¬qÜ­rÛ¬vÚ¨sÚ¦nÕ¦jÚ­vß´{Ö©mÑ iÓ£iÔ¡iј`Ë–WÈ•PË“LϘQÒœXÕœWÖ›YÖ`Ö¤_ؤeݧjÞ©cÛ¨cÙ¦bÕ bÚ¥rߨm×¢aÓ¤eجgÛ°kÞ¬sá®rà³uبmؤiÞ±oݲkß­qâ¯vÛ«jÙ¬há³sݳpÚªfÚ¦iÛªmÞ«kܨiÚ¨gݧfܦjÚ£hÝ£fݨmÛªnÚ©lß®n¾ j㳃߲{Þ«{ݨ~צzÖ¤yØ¥{ק{׫xÝ°ᮃݫ€ÝªyÝ«zß²~å¸æ´á¯|ݬwݯ}ಃ䴂㳅á´Þ¯vÙ¨{Ý­}Þ´~ᵈ㳇á±zà¯zà³}Þ±yܱ{ß¾ƒçÀƒæº†ä¶†á²ß±‚ⵄᴄà´ß´}Þ¶‡á³„ã³à²ˆÞ¯†Û¯{ްⵃã¶ä´ƒä³á¯ƒâ¬„㳂渀ä²zá±|à¯zÛ¤lÖ¨rٵ㶂ã±~á¯à°}ܬy߬vã¯~à±~ݪrݦpÞ©oÞ§iÚ¦kÙ©sܧsÚ¥qÚ¥kÝ¥eݧhÛ¨jÙ¦fÚ¢h× hÙ¢iÜ£hÖ¡kÚ¤qÛ¢uÚ¤yÞ¬tݤoÕœiÏ›kÖŸnÙ nÕœjמfØ¡jؤnÝ©nÛ¥lØjסhÙ¦oÚ§oÚ _Öœ[ÔždÕœdÔ–_Õ—^Ù™\מYÓŸ^Ò˜_ϘZÌ•YÌQÌ“VÑ™aÔždÕ›`Ø›`Öž`ÖœfÖ™eÕšeÝ¥s⮀ä³ãµzß®wÜ«xÛ­~ް㴂嵆乇庄á²}ß°yá³~à°rÜ«jØ«wÞ´ƒáº†à»…丌䳉ీâ³}䴈ⴋ丄巃嵀乇ᴄఀీá³躀æ¼ã´|ã²|à°}á°|â¸zå»zå´{â¯|á°và±xÞ°~ÚªuÛ®vâ¬pÜ¢fÒ nÙ¦qá®rݱzá±zã¯wá­zâ°xÞ²tß°sà«qÞªuÞ«uÞ«rß­sá¬rÞ¬uß°à®wÞ§mݨqߪxâ­|á³wÝ«tݪwß°rÝ«fݤgÜ¥rÚ§tÛ¨sÞ­wÝ«vÙ¨uÝ©sܨlݯlß²uߪrà§jݤhݨlà®pÞªmߧmÝ©pØ£iØ¢gܧoܤjÚ§mاkÖ dÙ£nÚ¦oÚ©kܧkÜ¢jÝ£kÛ¦kØ¢aÛ£fߦnØ¢fØŸ`ÚŸdÚ¢hÛ¦jÛ§qÚ£qÖœeÖ fÙ¢gØšfØŸlÕ¡hÔ›aÛ¡bÚ£fÔ›eÏ—_Îœ]Õ¢bÙ©lÖ§iÕ¡aÑ¡cÔ¢iÙ¡hÖŸeÑœdÐœcΚaÐœcÓœcЕ[Θ[Ó]Ô \Ö£[Ù¡`Ø dØ `ן^Ø aØ¢gÖ¡dÒ]Л]Ñžd×£hÛ©fܦeÛ¥mÚ¦oÚ§lÛ§mݨpÚ¨nÛªnà®rÜ®uÚ®wÛ«vÛªv߬vá®vá¯pã±oã°qá®lß­má¯oá­nߧnß«xâ±yà®qá«sä«uã«sâ¯sá°nä®tã¯|߯o߯pà°sàµzÞ´ã²yä¯sã°â°}á¬tã±wâ°r߬tâ°zâ±wÞ­{á±vã´{â¶â´yà²|ã²ã²}á±uá°uã±|â°yã°yá®xà®vã®yÞ­zÞ´|á´|ß±|ã±zã°{á²{á²uÝ­lܪhÞ¬jݯrØ­m׫iפgÑ¡cÔ¥hÚ¬sÙ©j×¢`Þ±sã¸{â±uݬvß°zã³}â²wÖ¦gË–_Κ_Ìš]Ë”YÏ•SÌ’XÊ‘[ΙZÔŸ`Ô^Õ™ZØ›]ןaÕŸ]ÕŸ[Õ ^Öž`ן`Õ¢aÖŸeÙ¦oݪoÞ§nÛ¦hÕ¢dÕ¡eÜ©jÙ¨eÊ™YÈ—[ѤhÜ«p×¢fÏgÖ¢qÛ«xÙ°tܬoÚ¦pÖ¥iÖ©iÒ¦pÛ­zãµxÞ±{Ý°Þ¶~ݳsתfТdÊš`Æ“RÈTÊTÍ”SÏ™YÔ]Ø¡]ÚŸ`Ý£fà§hÛ¢iØ¢dؤ`Ü¥jÞ¨iÙ¦c×¢b×£cÛ¥gߨoá­tà¬lÔ¥bÒ¤gܪmÛ«nݦqݨiÙ­mÞªpà®xÛ®xÛ©pÛ©nÞ«lÛ¨kاmߨoÞ§pÛ«nÛ­iÚ©jÛ¨fئaÖ£fÞ«p¾lⴃᰀޭyÛ¬~Ù¨~Ú¨wݬ|ݳ|á·{軉é¼æ³…ã³Þ°€Ý­~ã³}ä¶xã²xà«zà«wã²~䶆㷃à³zÞ©và©z߱ߴ~乂å¶~á³sá°vá±{á³{à°}ß³‚à´„â³zá±xã±}ⶀഃ⯄ୀޫvã­zá¯xÚ¯tÛ¯|ß²ˆß³„à±€ã²å³€ä²寀ã®á³|䵂岀á°vä±yå±wÛ«u×¥tÙª|Þ³ƒâ²{ã®sߪqÛ¦mÛ§mÝ«rݨqÚ¢jÙ gÚ£jØ¢nØkØ¢hÖ¢kלgÕœ]Ô›]Ö™a×™`ÛšbØšbÓ˜bÖ™dלbÕ`ÚŸi×—iÕjÙ£nÖ gÒž[ΕZÍ”aИaЕc͘_ÐœZÕŸhÖžgÔ™bÒ—]Ï›YÕœbלfÕœaØšaÕcÒš[Ó‘XБZÒ™bÔ›\ÑšWΘYÌ–^Í–\Ϙ_Ô¢oÝ­zÞ°zß°zà²zß®vܪxÝ«{߬xá³zã¶~æµç·‚ä°}á­ᲊ䴇纃湈㳊㶃ݭtצrà­~ç°zá­vୃᵌ廊趈貇崄ⶄã¹ä»…廆幃⺂䴂屈߳Šßµ‚纃꾅æºáµ€à±z߯{â²~ß°rÞ°sá±|â­{á¯~à±~à©tÛ¥kÖ¡mÞ¦uà¦oÚ kÖ aÚ¢dÞ¨rݬtÜ«rà¨nߨjÚ¨kݪnܧnÙ¢jÛ¤lܨlÞ¦hÞ¦hÝ©kݧmÞ¨mܨlØ¢lסnÛ¦rܧrÚ¦jÙ£dÛ¨qß©sÞ¡gÙždÙ¢fÜŸbÙ`Û¢fÜ¥lØ£oÚ£mاpḂ廄ܪpܧqÞ¦lÜ¢hݨkݦhÜ¡fÙ¢bØ¢eÝ hÝ¢eØ dÖŸiÖ eΘ^ÒeÛ¤lئsÚ©tݦnÛ¥pÚ£sÙŸgÕŸ^Ø¥`Ø¡dÒŸeÕ¢gØ¡oÖlןgל\ÌRÍ”YÓ^סeØ¡iј]Ï–^ÒžcÒŸbÕœ_Ö_Ò›_Õ hÚªuØ£q͘bʘ\ÑšbÔ cÕ¢fØ¡pؤlפd×¥jפkפfקlÚ¦mݧjÙ¢gןg×¥l×¥oÙ£gÙ¡dÕž`Óœ\Ò˜[Ò˜\Ôžaסa×¢fÖ aÙž`Û¡gÙ¤fݦkà§kÚ¤gÙ¡gߪoÞªmÖ¡hÖ¥mÕ§rبv߬vÞ¨kÝ¥fÛ¤dØ dÚ¢f߬hߪjÞ¥oݧpÞ§lÞ¤kÝ¥oÛ¥kÚ£cÞ§eߨfÞ§fá©jà¨kܪoß­rá®vߪxߪyá«ná«mߪrà¨sâ¬uà­vÞªuß«tß«uÞ«p߬oâ¬uà¬yÞ²sà±sá­wã®sâªrá¨tá¬pá­hÞªnß«rà¬sâ­sã¬qà­qà­uß®và´yá³|á±wã±uä®sá«qä´wæºzà±xà­wÝ«sТmÏ£iÖªrÕ¦tÒ¡mÖ§pݱvà³{à²{߯xÞ°xÙ­vÓŸeΛaÕ¦jÖ¢fÕ£iئgÔ`Òœ]Õ fÙ eÕ \Õ¡aÛ¤fÚ¨hÙ£hÙœ`ÖžYÕ YØ¡`ÕŸcÕaÛ£hÙ¦kÖ¤aÚ¤`ÙžaמdܨiÞªjÙ¤hÔ¡cÖ§gÜ«pÖ¥bÕ¥cÙ«rתrÙ§rÛ§rÚ¦iÙ¤bÖ§hÕ©qÙªuÜ®{Þ´€å¹~躅乆ݰvÖ§jÓ¢fÌ–ZŠOÅ’QʘSÌ•VЖVΖTÉ“SÑ–Zן`Ö£_ؤaܦgà©kÞ¨hܦjÜ¥l×£hÚ§dÜ©bÛ«eݬkÙ¢`Ö¢bß«tߧrÙ¨lݬmÛªkÙ¨qà­vâ®rܦrÙ¦nÝ«nÝ©pà§pãªqà©rà¬oâ®lÞ¨mݧhÙ¤dפjݬo›lÞ©vÞ¬xܬzß«uàªtà°|á»ã·䲂䷂à¶Þ²~ãµ~Þ®wØ©zÛ®Û«€Ýª{ݨvÛ­zᶂå¶â²xá±{ݲ}Ú­zÛ«xÚ¦xã±}ê¹}â¯uݯz߯zÝ«sݯwÞ¯uߪsà±vá²tä±tåµ{à°v߬qà«oÝ¥kà«nÞ®nÛ©kÛ¨rÞ°}ãµ泂峌ⱊâ®ã¯}ä±~ீ௃â®zݪqà«oä±uà«wØ¡jÕ hاrݧuà¤qÝ¥qÚ¤kÚ¢eÚ¤eÙ¡bלbÖŸaÓ¡cÒžfÕ›dÔeÓœ_Ϙ`Η\Ì“MÌ“YДcÓ–\Ô–YÏ’ZД^Òš]Ï™ZÒ˜^ÖžgÔgÒ—bÑ•bÏ“ZÌ’VΗ`ÒšcÏ—]Ñ”]Δ[É“[Ε`ÖœfÑ›`Í–[Ò•`ÓœcÖ gÚ¡hÖœ\Ñ—WΖYÍ‘ZÓ˜dÕœfÒ˜\З[Õ¢iÙ®vÝ­vÞ±Ḃ嶀ⴆ䲃á²{à¸z帇䵎áµ~á±y䲄軄äµ~ⲃ䷃㸂䵂Ⲃೃ䶃ã²yݨz⯃ç·æ´ã²…Þ±†à¶‡å¶†ç³ƒã±ß·€âº€å¶}䶃㶄á±}á°|á´{Þ°}⯀嵃嶆ã´{ß«qݧy߬zÞ¨qÙ¤kÛ¨jÞ§lߥrݪsÛ©lؤjסiÙ¢hÞ§mÛ£g×eÒœbÓŸ`Û£hܧj×¢eÙcÙŸdÕ hÖ¡gÖ fÓž`ÒžbÙ¤hÜ¥eØŸcÖžeÚ¡gÜ¡hÙgÓœaÔŸfÙ£gÙ¢eÔ bÐ^ئhݦsÜ fØž\Õž]Õœ_Ò™\×`ØžbÓhÕkÕ¢uḓ䷉סkÙ kÙ¥mןlÚŸkÜ¢gסdÔeØ›h×›fÖŸiÕfÓ˜^Ì•_É•\Ò›eÕ¡jÚªnß±zݬtÛ¥oܦtÙ¤nÕ fÓ¡fÓeÓ™_Óœ^ЙZΕYÌ–^Ì”[Í•ZÓ mØ©qÜ­nÛ¦lÏœcÊœeÐjÓœ`ؤfبoÑ lÔ¢qÞ¬zÚ¨sÏ _Ñ¡aÙ§oÛ­uÚªvקyÖ©yÖ§pÚ«oÜ®uÚ®{ß°|߯xÛ©oÚ¡lÙŸi×¥kܦoÚ gЛ[Í™]јbÔ›aÖ^ÖšQÒš[ÓžbÑ›ZÏ–\Óš_ÖcÚžkÜ¢fÖ¡_ÕŸ`Ù¢hÖ¡dÏ_Ñ^Ñ ^Õ¢^Ù bÔdÒ–]Ð’YÍ–VÔ ^Ü¥hܦ_Ù¦ZÚ¥dÚ¢gØŸd×£fÖ¦c×£bÛ fÜ aØ£Zؤ]Û¦]Ú§c×¢hÜ¢gÛ¤hݨpߪqÚ©gܨhߦjß©qݪpÝ£fÞ£oÞ¦rݧqݪoÞªià©jÜ¥pÚ£mݪiݪmݦqÞ£jÝ£mà¥pߢeÚ¡aÙ£iÚ©pÛ«kÙŸiÚ£nݨmݧqÚ¥rØ£jÛ§ká«tàªh߬eä±qâ°uÞ®sÝ®tÜ«pסuÒ¢sÒ¦pΟlÌŸfÓ£mØ©pݱrÞ¯pÛªtÛ«qפkÕ£mÝ­qÜ®mÜ­qÚ­rÕªmÕ¥qÕ¤qÖ¤g×£eØ¢jÛ¥mÛ¦mÖ¢bÑœZÑšVÕœ\Õ›cÒš[Ôš`ÖŸbÕ¢^Ô ^Ò¡aÓ£gاhÞ©hߥjܦhÙ¦hبdÖ§eÑ¡eÓ¦jÛ«qÙ§o×£o×¥mÙªtÛ¬qتiبoÓªxÖ°~ᶃ淈ⳃà³}Ù­pÐ¥fÓ¨fÏŸ`È–\È›^ÆŸ\ÇœYÅ“WÃVÂXŘZÍ›`ÕžbÕ£dÙ¦mÞ§kߨfß®jß®iÚ«gÛ¨hܨhÙªkÜ©lס^Õ¡`ߪrá©lÛ§iÚªmݨjܨnà¯zâ­zÞ¨nÚ©fÞ«kà§fÛ¥eß©pâ§má¨eáªfߨfß©jݤmÜ£nä©lÙpܬ„ీ㳃岈䰅㷊事沅䰂᳀ߪyß©}à­~à¬uÝ«vÕ¥uÓ¦vÕ«{׬zÝ´~ä¹€â¹}ä¸æ¸…幅超߱Õ©{Ý°xå±tܪoÛ®vã±}á°zå·~å´~â¯~çµ€æ³x⸀㸂á¯vá°{ä°€ä²xä¸væ´tà¨mÖ¤qÞ°xä²yâ´}ã³€à®wà­qå¯uä­wà«nÞ­qߨtÝ£qݪsß­rݦpÖ¢jÕŸcÔ˜bÔŸeÙ¥nÞ©vݦmÔœ^Ô—\Õ˜]Ò—WÏ•]Й_ϘZÏ•`Ñ•fΑZÍNÏ“WÍ\Ë‹YÏ’ZÓ˜_Ó›\ЕWΔ^ÓšaЗZÏ–aؤrÛ¤kÕŸeÔœjÓ˜cÓeקmÙ¨nמiÓ™cÍ•YÊUÐfÝ®xݧpÖ eÚ¥kÝ©qÚ©sÚªvß®nà«hÙ¢n×¢tÖ¥q×¥iÛ§jݨqá²€ä¹ã³z㵀ᲂá¯zä´崇資淊介å¸ß°{Ý©yáª{æ¶~䵃ⲅ㱃㵄ã¶}å±wå´緋蹉滄縅æ·⸄㸊à³~àµ~市ä±{ä¯vã²}â²}æ²{诃â°Þ­vߪwá­yÞ¥uÚ¦mÛ¬rß©rà©tß©jÚ¦dÚ¦oݧoÚ¢jÚ¢nÚ¤kÛ£fÚ£fÖ¢cÔ¢`Öžaןdاj×_Õ—ZјYÈUÈ’^ÒžcÖZÕœ_ÙcÖšeÔœ]Ô˜WΔWЙZÙ¢iÛ¡mÛŸeÛ aןcןcÚ¡aÕš`Ó›`ÖždÓšbÍ™^Л_Ø¢gÛ¤fÚžc×aמ\ÒšZÑ™_Õ›cÓ˜[ÐœbÒhÔ¤rÜ´…Ù¦tÑ—eÕ iØ£hÖ¡aØ g× jÕ¦]Ù¦_Ø¡_Õ[Ô›eÕœfÒ™`Ε[Ë•YÌ—`ÐœpØ®xà²yà«zÞ®y߯zÜ­uÖ¦mÐœjИkЖ`Óš\КdÌ“fÓ˜dÚ¢fÞ­sⰀ㱂ã²â³€Û«sÕ¤mÓ¨uÖ¨nÞ¨nà°zÛ°}ܳyá¸~á²{ß³yß³‚á´‚ã¶Þ³‚Û¬{ؤpÓ¢oØ­zá´á³á¯|à¬uÙ¨qÚ¦tØ©wÖ¨xÜ©{×£nË•bÌ—eÓ eÕ¦hÚ©iÚ¦gÛ¡jݤnÖŸhÏšaÒše×›kÖžkÓdÒ`ÕœdÚ hÖfÏ—ZÒ–YÓ˜`ÓœaØždÕ›bÌšWÍž\Ñž_ÕbÖ f× `Öš`ØaÙ¡aÙŸfÚžfÙ¥dÚ¢eÚ eاdצeÖ¡cØ¢d×£gØŸeØŸe×¢aÜ£iÜ¢pÝ¥oߣkߥdߨiÛªnØ¢eמdÙ¢fܤfÚ¢nÚ¥oÛ¦jØ¡fÖ¡hÚ¨kÛ¨hÚ¨iÜ¥eÜ¡fÚŸjÙ eÜ `Ü `Ü¡eØ¡cÔœ_×aÖ¢aØ¢c×aÑ›_Ó¢bÚ¤iÚ jÖ¡dܤpá¨vÞ°rÞ¯uà®tÛ¬oÖ©mѤoÒ pÑŸjÍždÎeبmÝ®rبsÙ¨qÚ«gÚªgÝ­qà­oá«p߬rܦrÛ¦oÙ©o×¥jاfÚªlئoÕžcË”XÈ’UΓTÏ”TÑšWÕ\Öž`Ñœ[Ðœ\× `Õœ[Ðœ]×¢bÝ¢hÞ¤gÜ£eÞ¢pà¨nÙ£dÑšaÕ¦gÞ¬p×¢fÒž^Õ¤eبjݬvÞ¯|Ù«uÖ©pØ®sݳá³ß²zÚ±vÕ­nÓ¢mÔ¡rЧgѤcÑ¡nϤjÏ¥iÑ¡oÍ›hÌ–^͘^Ðœe×£jÙ¦iبhÝ©eÞ§eߨkà¨qݪiÞ®eݬhÞªlã±kݪcÚ¢gâªnã°k߯mߪhߪeÛªmà­oâ±mà¬nߦoÝ«kÝ­eÞ«fà©já©dá§gâ¦là¨jܪhÝ©jݨfá­d¿œjâ±z㵅貆ç°}ä°u䵂湅ã²á°|㵃䯃ఀೃⱆ߱„ܬzÚ¬rß°tâ±xá²yà´zä´|ä³y市躈涂â³ß°tá¯tá¥xÖiتná°xâ²zã¶á±xÞ²wä¸|ä±vâ±våµ{â­{á¯|å±~屃ä³ã­vÝ£hÑŸgÖ¨pß«lß«mà®sà©rߤhߣjà£nܤhÛ¥oÙ¤mÛ¢bÚcמaÙž`× dÔž_Ë”[Ë•[ÒŸcÙ¦vÜ¢nؘ_Ö—eÓœiÑ™bÔ˜hÔšhΗ[È“UË–]Ì‘^ΕcÔœjÔ˜hÕœhÕ kÚ¥pܧmÕšcΖ^ЙdÕ˜hÖ£lÞ¬yá®y߯yܧyØ£qÙ«uÜ­}ÞªvÙ¢kÔœjÒœfÐœeÖ¢mݬyÞ¯€ß±‡Þ²…ß±|ß±{Ù­{Ý°|ß±Þ­}ß®{ݬxÜ°|ⳅ蹉껅Ⳃஂⴇ㳄ä³幉蹈䴆ã¶è¸Œë¸‰åµ†ß®zݬ}߯á²zã³|å´{䶀㳂æ³yèµy縃ê¸é¹~渂â­~ߪ{⯀á¯|ܯ|ݲ~ß«rÞ§lݨoÞ¨rá©xß®yÞ©tߦrܨrܧrÛ¡fÕœ^Ñž\Ñ¡]Õ¥lÛ eØ]ÕžeØŸh× eÖŸeÕžbÕžbÔ™dÒ–fÓ˜dÓ–[Ι\Ñ›\Ô™YÔ˜WÒ•T¹{G±|PÍhÕžhÖmÚŸiÔ›\ÕšbÕ•]ÏUÑœ\Ù¦iÛ£kÖŸ^מ^Ô˜^ЗXÑ™WÔ™WÒš`ÒfÔ—_Ñ]ϘaÕ¢eÔŸ`Ì–TË‘UÏ“ZÉ”XÑ›^Ü fÕŸfÓ nØ¢rØ£lצuÒ lÏŸgÖ£oÛ§nܧiÞ«p߯}Þ®xà°vÛ§rÕ eÕœcјeÑ—aÍ•]Æ“\Ê“`ÓžoÙ°zÛ³zß®|à³Þ³€á±yÜ©rÓŸq×¢nÖ¤gÚ¥gÜ¢dØ¥hâ³xèº}ä¸}å»}å·{᳃àµßµzÞ°€Ú«}Ø«~Þ±ƒá¸ßµà²ãµäµ…⻃âºå¶„㶆à¶à´~߯€ß®|â²~áµ~Þ²}ݳٲ‚تzÜ®|ßµ…Þ²Ú®{תtפlÙ©lÕ©nÕ©rݲyá°xß®yÞ´{Ù¯xØ«vÞ­tÛ«rÕ©pÖ¦pÖ¦rÕ¥iןbÒbÐeÔ jרiÝ«jÞ­tÛ®vÕ¥kÐœhÍšfÈ–XÊ”TË–Y͘[Òš[Òš^ÓœfÕcÕœ_ÖœdÚŸgÚ¤eÖŸ_ÑšWÓšYΕYÍ™]Ó›`ÓžbÖ¢fÙ¢kÛ r×¢oÖŸjÖšhК]Ñ™^Ö›cÖžbÖž`Õ›bןdÕ¡bÒšZÓ—_ØŸjØ¡gÜ¢hÚ¡kÖŸkמgןbØ¢fܤiÞ¥gÜ¡`Ö™^Öš^Ô^Ó›fÔš^КVÒ˜XÖœWל^Õš`Øœ`Ü£hÝ©kÜ©kÚªjÞ¬hàªkÙ¦iÖ¥eשmÕ«mΠcПkÚ©uÞªvà¨pÚ¦mÓ¤cСcÕ¢oáªuà¬sÞ¨vÝ©uÜ©sÚ§uÚ©tÚ¬sܪoØ¡cДTÏ“UÑšZÍšYÑœ\Õ `С^О\Ôž[Ö¡`П_͘SÔ™[Øœ`Ù \ÙŸ`Ù¡aܨhÚ¢hÑ™ZÕŸaÛ¨kפhÒ£cÔ¦c΢cÔ¦nÞ°tØ©pÒ¤mΦiÒ¨lÜ°sÙ¬qÓ§iשmÚ«qÕ¥iÖ¥kÙ¨lØ©eØ¥fרmÖ©hØ¥hפj×¢\Õ¢jØ©uÙ«jÖ£hÕ cÓ [ÕŸcÚ£cÙ§aÖ¨hÛ¥nÞ¦jà©hß©fܤcÞ¨jã°oá¯pá«jà©ià«mà°qá­sãªqã«tæ­xè­qå¬läªká§dÛŸfÝ¡dÝ£bÛ¤fߨfà¢gá¡e½˜då¯|䳄洅ߩwܨpã³|ç²~áªràªoã±vã²yâ²{â²xã®vã¯yß­zÞ¬xá±uä¯uä¯xà®wâ¬vá®oá°qã³yã¯ràªpá«tá«qÞ©mÛ¥kÞ¥mß©kÞ¬rß­yܦrÙ¢gÛ¦jÛ¥jܦfÚ«nÚ§nܧoܨoߨká§kÝ£kÙeÒš`Ö›eÝ hÚ¦hÚ¦jØŸj×—c×™^Õ bÕfÖšo×kÖŸfÖ™`Ó–ZÑšYÓœbÌ”\ÇŽTÈŽZΓeÚ¦v߬€Û¥zÔ¢tÒ¡rÕ¡tÖŸnÕždЖ]Í’]ÔžlÚ¨uÞ©yá®}Þ°xÛ­wØ°€à¶ƒß®wÕšjÒ”cИeÕ¥tݳ~㵄᳂à³ß­€Ý®€Ý®€Ý­wá­xáªÜ­~Û°{߯ß²ᲀ㰂ᲆ߳‚㳀䳈ᰂ߱~Þ²ీ⷇㸄à¯~â°…ã´‡â±~à´á¶Šç¸‹å¹ŒãµŠå·‹å¸‡â³…乇漅仅庄ã²}Ý«zÙ«xÜ°}åµâ±zá®å°}á¬xã¯zç²}ä¬{ã¬~ä°{à«rÛ£mÜ£mÜ¥lÝ¥rߪwÛ¤kÖŸjØ£nÙ¢lÚ¢mÛ¤nÛ£nÖ¥lÛ¥qÞ¢pÕ™^Ñ—`ЕdΓaÒŸjÖ nÔ—hÓ™h× mÙ¡kÖfÕ›`×›]ÕŸaЛeÏ–dЗ\Ë•]ΚeÕdÔšbÓšdÀ‰J¶†RÕ§tâ®tß©qà®vܧoØ£fØ£nÙ oÚ¥lܬnبiןhÖ˜eÕ•\Õ–_Ô˜fÑšZÔ \Ý©kݨpÙŸfÕœhÕgЕ[ÊWÍ‘ZÓœaÔ§lØ°uá±xà­|Ý«~߬€à­|ݪtÛ¨vÜ°{à²|à±€ã¶~市渂丆⺇â¶~Ø«{ئtÙ¨mبqÓ£oÑžbÕ¡`Ö£nÚ¬|ܯ€Þ±㸃ã¶~â³à´Û°~Û²‚à²{ä²}䵂ṃ幇鹆蹃ߴÚ±~á´åµƒã­€å®~á³~ݬyÜ«rÞ³xâ¶{ã³w㶂߶Šà¸‚㶀ᲅà²á·~â¶~ß²}Ü°€ã²æµ…峆á°Ý²„಄ᴀãºäº{Þ²~Ú¬…Þ²€â¶~Ù­v׫tÝ·‚ß·ˆáµ„ã¸zâµ}á³}Þ³{ܳ‚ß´ßµyÞµ~ß±zاmѦmתrÜ­xâµ蹅亇ฆޯ}اuÓ nÏ›eË›_ÏŸ]Ò eÒŸhÕ¡fÛ¨oÖ£kÒœeÒ™gÕžl×£hÕž`Ï™_Í™ZЙUÔŸgØŸlÕ›fÑšcÔŸdØœiÔ˜dÓœ`Ö fÕ¡dÔŸcÕœfÔ›bÖ¢eÚŸeÕ˜bÕœlÔžhÔš`ÕœcÓ¡b×¢gÚ¦kÚ¦iÛ¢nÚ¡lÙ gÛžjÜŸjÝž_ל[ÔšbÔš`Ôœ`ÕšaÕšYלVÙŸ_ØbÕ˜aÕ^Ø£gݪuܤoÚŸfÝ¥bÜ¥`Ü¢bÚ¢dݨkß®pÙªlÖ¤oÜ«tâ´vâµ|Ü­zÓ¡i̘`ÏdÙ©kÛ®qݬvá­u߯vÝ®yÞ±|Û®vÕ§mÏ£cÓ¡d×¢lØ¢jפnÖ¦pÔ¤eÐœbÑœbÕ¢bÚ¢jÖ hÏ›^ΖbÖš_Ú¡ZØ¡aÜ¢gܦd×¥\ÓžXÔždØ©kÚ®gÓ§dÑ¡aÑ¢aÕ¥lܨsܪpÕ§jÏŸjÏ£rØ­qÖ¥aÌ—bÓ¢lÞ­qß­qÛªnÙ¨oØ¥oÚ¦nß«nÛ¬mÞ¬nß«sÙ«oÖªkتnÛªnܧkØ¢gÕ eÓbÒž\ÓWÓ—]Ó›`Ô£cÛ¥eÙ¤hÙ¤gÖ cקeà°kä¯qä¯pã±pã°oâ®ná®qã±xé´}ê®yë¬xè¯yà©jÛ¢`Ú£eÞ¥lâªmã§oá¨jáª]¿’]ݤfÝ¥lߧkÙždØœaÞ¦mÞ¤lÞ¡bÙ¢cÖ¡eÚ£kܪkܧdߥhà¨mÞ¦gݤkÞ¥mÞ¦iݨoÛ§rܧtÝ¢gÕŸ`Ö¢lÜ¢jןcÙ¢fÚ£hÕœcÙŸdÙœ_Ö˜bØžgÚŸkØ™gÒ”ZÔ™YÙœa×–]ËŽNÇVØ¢hÝ£bÖšZ×]Ö›_И[Ι^ÔœiÙ£jئqמtÕžmÖ£jÚ¥sÙ¥pØ¡hÛ jסoؤmÝ bÓ›aÐgÔ›mÓ–dБ_Í’aÑžkÚ¯‚Ü®ƒÙ¨xئt×¥rקs×£sןrÖŸlÕ¢tÜ­‚Ý°‚Þ²z㵀ⰄޭݰÞ²ÛªzמmØ nÙ©zá²ã·ß¶|áµ|ᰀݭ‚Ý®ƒà¬}à¬z㳅㵈ఇᲄ丄䷅ṃ亇᳈߲㳃緋渉ⴅ൅᳂Ⳉⵉá±ß­}Þ°}Þ®}Þ¯€Þ´‰ä¶†å¶…ఉⰂಂް„æ¶è·„á°z䴃崄ޭˆÛ«„Û©{à­~â°tݦjÜ£jÛ§kݨsß­vݪpÞ©nà«mܦiÙ¢cØ _ןeÙ¦lÝ«oئeÔ aÓœfÓfÑœdÕže×¢bØ¡cÙ¢nןjÓbÒœ`ÖbÔiÑšoØiÙždÖžh×£nؤoØ¢mØžhÜ¢jÛ¬oÚ¦rלlמdÔœ_ПgÖ§mØ£qÙ£vÖ¢nÓ¢nܳ~ൂಀá´{ݲvÜ©vÜ©wÚ­uÙ«vÚ¤sÙ¡kÔ›iÏ—`Ò™`ÓŸfקfÞªnà¯wá¶zâ±yÞ¯uÞ²uݪtןkמhÙ©mݳvßµ{޵ᵃ䶀à°~߯~ᴄ᳃àµã¹ã¸ã¶€à¶€Þ¶~乇緉洇䵃à³}Ù¬}תxÞ°}Þ¯€Ú¨uÚ§sÛ¯~ß²…á°à´}á¶}á°y᳂⹀à¶|ã¹æ¸ƒè¸ˆå¹‰ß²ß²}ݯzØ«uØ«wݪz஀ഃⲃâ²á³}á°{ß®wà³{ⷆᶉ᳃㲉ḇ߶á¬á¬yß²|Þ°vܨyÚ¦zÞ¯}ⷈ㸆ߵܱ€á±}䶂âºæ·‡á³}Þ´‚áµß±„ÚªzÖªmÛ´|Þµ…ᵄᲃޯ}ß­}ß±ƒÞ²à±}ãµß¶…Þ²|Ù¨rÓ¤uتxà±v亀亇ᶇ㶋㶌᷃㷂߸„Ý´vÛ­rÕ«vÙ­tÞ¯xÚ¯{Ú°yÛ°vØ«oاsÕ£tÓ£hÔ eØ k×¥qקrÖ§rÕ¡nÕœlÔ¡jÖ©hØ­oÚ¬vß²zá¶|߯vÜ«uÛ­}ß°zÝ«pפnÙªtÜ®sÙ©qÖ¢lÓjצoà­xÞ§vÜ¥qÛ¥hØ£hÖ¥qÙ£pÜ lÙ¡jÕŸcÙŸdÚ¥hÙŸjÜŸdÝ¡bØ›cÕš`Õœ`ÖšbÙ hܧrÚ hÙbÚž\ØZÖbÛ›cÛŸeÜ«hÜ«jÕ£gÙ¨kã±{㯀à¬rÖ¥hПkΞlÏ¡lÔ§pÙ¨sÔ£qÕ¥lÛ©oÚ¯zÛ¯tÖ¢jÑžhÔ¨nÙ¬rÚ­nÙ¬jÞ§fÖŸdÊ™aΞdÚ£hÚ¤mÚ¥jÕ¢eÓ _Õ¡ZÓ¥`Ö¡gÚ i×£dÖŸ]Ù›\ÙŸ^Ù¤^Û§cÙ¥cÙ¥dܦeاhتkÝ­rÙªrÕ¥rÕ¨tÙ¬oÔ¦mÌœgÉœfÑ£oÛ¥pקmÓ¤nÖ¥gÙ­jÚ¬qÛ¦kئmÙ«oÚ©iØ¥dÔ¥hÓ¨mѦgÒ¥eÔ¤iΚ`È”RÄ•QÄ‘NÈ’QÊ›ZÍ _Ô cÑžbΚXΚXÔ ^ܧeá­sä®tå¯nä³rä±sè±që´qå­hÞ¥eߦjݦlÚ¥eݦdâ©lå®tå²qè²qç¨mÀfט\×™aÙ™aÔ•_Ó›[ÝŸbÚ˜bÔ”[×”^ØšcÙeÚœbÙœbÙŸeÚ¢gÙ¡h× gØdÚš\Ú™YÕš_Õ™_Ø™\Õ”WÕ’YÕ˜YÔ˜XÓ˜\Ó™bÑ“YГTГXБXÒšeÖžlÕœdÓ™`ÖžfÚŸmؘh¼€L·ˆNÛ¬tÞ¨mÑšd×™jÕšcÓ˜bÓškÕ¦tÞ­€ß®‰Ý©Û¬ݲƒà±€Þ®|Ý«uß­|Þ¬ƒÞ¬à­|Þ¥yÞ¦rߪwݧ{Û¨sÜ©q߭ᲃ߮|Þ¨{Þ«{ݨ}Ý¥zÜ©vÛ­yݱ|á³~â´‡Þ²…â°æ¯€àª‚ުݫzÕ¨zקtÚ¨rÛ°zàµ}䱄ంް|â±|à²߶㴂ä°~㵂丌嶇ᵂ㴅淅⺈⷇䲂ಇᵇ㶀幄跇å³ã³~â²{á³€ç³}ä³Ý¬€Þ¬yá°|Þ­|Þ°}䶂涄è´~èµ~äµ€á²}嶀åµ|á¬sߨtàªuߪrÚ¡mÚ¢iܧiÞ¥pÜ¡nÚšdØœeÙ eÙ¢cÕœfÙ¡jÜ¡iÙ›eØŸgÕ¡hÖŸfÞ¦qß«xÙ¦qئlÙ¥bÖ hÔ›oÖ iÕ¢gÖŸhØžhÓeÕ jݨqÞªqÙ¦sÙ¥vݨrݬsÝ£sØŸv×¥sݪrß®€ã²„ೂâ³ã²~á°}Ü°xݬvÞ¬zß°|á³zà³{ߵ丈Ⳇܭ|à®x߬zÚ¦yß«yá®z߬{Þ¥tØ¢oÖžlÒ™eÒ£jÞ°zâ²᷆廎æ¹ãµ…ã³ã³}á³Ý´€Þ´‚帋㵈á¶}㵀ⱃᶄඅàµã¶€âµ†âµŠã¶‹â»Šá¸‚ß²€Ø±|޶鹇䵅â²v߬tÚ¨uÖ¥rÙ§vÛ­~Ü°~ß°ಅâ´ä´|å³zã±wà°yá´‚äµâ®~à³~âºäµ€ß³ܳ|Ù­zТqÖ¢o߬wá±v㴀帉幄㻆⹈嵄幆心侈⹈嵄沂ã´{ß±|Ú¨rÚ¬qÞ²}ݯxÚ¬sשwÙ¯}ä¹å·á´Þ´{Þ´zßµ~ᶂᵂ߷à¶ß°|Þ²Û­|Ö¦nÚ±y߸€à´}ß°Þ²{ß´t߶|߶€ß³~ᲃߴàµ}Ý­vÕ«pÚ°}Ⳅâµàµß¶}Þ¸ƒã¸ë½Žé½†æº„溈㵅ݱzݳz㶃â·à¹ƒä¼‡æ»†ä»~Þ±xÞ¬yܲ}Ù°uÝ­x߯…Ý®{Û®sÙ¬wÖ¨xÛ®uá³zⴂ幅帅䶄湄湆඀ݰ{Ü­€Þ°}฀㹄ూ۫{Û­xà³}Þ¯}Þ¬zá®xÝ°zÞ±€à­~Þ¨rÛ©nÛ§rÛ¤rÝ©nߧrÛ¢pÚ¡gÛ¤lÙ¤oÖ£jסiÛ¡jÙ bÖ›Z×dÕžbÓ™\Õš^לZØœZÙ£cØ¥kÕ¢gئgݧtÝ­vݲqÛ¨jÙ¡iÕ¤mÔŸjÖ¤iÖªiÒ¡fÓ¡hÖ¡lÑžnÖ¤mؤiÕŸkئqÞ­jÜ«dÙ¨dÙ¦gÕ¢gÎœ`ÐœbÚ¦lݨnקkÖ¤bÖ¤]Ö£dؤcئa×£aؤ]Ü¡^Ûžd× eס[Û¡WÙ¡dצfÞ®gݬsÙ¨oÛ©jߪmܧjاkÜ®uà²tÕªhÈŸ^ËœcÓ hÔ¦nÔ¨lשjÚ«lÙ«mÙ¨qÜ©sÛ¬mÕ©iÓ¦kÒ¤iÕ¥fاgצlاkÓ¥eÊœ]È›VÉ›YÍš_Ï aТ^Õ¢cÕ¢hÒže̘`Ê•ZÓ›^ݦmãªpãªnߨnߨnà¤kÜ dÖžaÒ—^Ì—`ÔcÙ¡dÕ¡bÙ_à¢ià©pÞ§hÝ¥bº—cÑ’VÓ–]Е]ÐUÑ’VÓ“YÐ’VÒ’^ÖšhÕŸhÕžfØ hÙ›gÚœmÛ¦wÚ¦vÙŸo×fÕšcÑ‘ZÏ‘YÒšjÔ™mÔ˜dÕeÖœd×fÕœjÒ˜gЗdÒ˜bÔœbÔœfØŸnÙ¦vÙ¦xÚ¤yÚ¦vÛ©s×¢nÅŒ_Á•lÙ¯~רtÑpÙ£uØ£tÙ¡xܦyÞ®‚ేⲄâ°ᯅۭ߯€Ú­|Ü©à­~⯄ᬂâ±á³‚ݭୃ߰᱂峂賃屃à°ß±€ß®~á«á­€Ý¯Ý²ƒß³†á²ã³á´ã±äª~Þ¥yÞ¨{ݨvקqÙ¨vÜ©xà¯~㱄߬{Þ«yâ®᱂ⱃ᳀á¶~å³~ä±á´~߯}Þ©Þ®zÞ°yÝ«|Ý°zÞ²uÞ­tÞ®yá³~ç³~絆巉䳀á®yà¯tà²yä²xã³yà²à±}جsÛ­oå±vã²zá­vã«và­wá­ná¬qߦqà£hܤfÚ¦jÚ¢gÖgÖœeÓfؤkÞ¨gÛ¥jÛ¢pÜ£hÚ¤i×¢jØŸhØžkÕŸjÓŸlÕžlÕ¤iÛ«vã³~ܲ}Ú©{Ü©sئqÕ¡vסp× lÖ¤pÖ¦nÚ¤pÞª}â±â°}ݯ{ܯyÝ®yÞª€Ý¥Ø£uÛªy߯‚ఀ䰀à®|Û¯{ݯ€ä³ƒãµ„Þ´†á³„䴄嵉㵌紇涆ⶃ߮{Ú¨zØ©yÙªxÚ¬wÚ±{Ù«{اuئq×£mÔ£qÝ°伊ⶇá®ã­€á°Þ·}á·~䵇â´á³y䶆嵉ã²~àµ~䶂帀߷‚ßµ„å²~á¶ⶅ䲆âµá·|á²yá®~Ü«€Û­}㸆一à°sà¯wÞ­xÖ¦w׫|ܬ{Þ«€á°†á²~æ¶{ä´yÞ°pà²vä·€ã¶á´}à°tß°v߯|à±€â²|ãµyá²vÛ§sÜ©xß´}ߵ峆終渃㸂à¯zà±}⽌当廌㺆â¸~äµ}㲈â¯Ú«uÕ«{à´„â±{Ú¬qÚ¬vß²{â´{á¯vÞ­sÝ­rÜ«qÞ®zà³ß®|â¬xÞ±~ڳಀá²xØ©pبvÞ±}Ý´uÜ´vß±}Þ°{ß³€Þ°ƒÛ®|ܱᲂâ³|á²yÜ­uÙ¬zÜ°„ß´…㶀äµà¶‚ßµ„淋淌䳈㴃â·~á¯zÞ¯඀â¶~ßµ~à·幄㶃ܰ|Þ¶}ݶƒÖ«~Þ±}à·‚Þ³„ä·‚â¶×°€Ö­|Þ±~á³~᱃߰߰ం߱߱yÞ«Ý®‚Þ²~á²€ãºçº’ీ׬vÙ°~Þ±|Þ°xÝ°ƒß±ƒß³Ý­xاkܨrÛ¦tÕ¢kÕ¥l×¢nØ¡jÙ£eÖ¡gÙ¤jܧl×£bÏ—WËRÍQЕbÓ˜bÒ•UÓ–YÕœbØ£dÙ `ØcØ£cÙ¥eÜ£eܧgܪjÚ¦hØ£kÛ¨qÛ«mÙ©kبpÖ¦tØ©tاnÏ gÏ ^Ö¥aÕ¡eÕœgÙ¢lØ¥lÖ¢gÖ¦lÙ§pÖ¢gÓ¢h×¥o×£iÚ¤^Ù¤b× gÙ¢b×¢fÕ¢hÓ¡aÕŸ_Ø¢bÙ¡[ÕŸZÖŸ_Ö`Öž_Ö£`Ú¤hÙ jÕŸf×¢lÖ£gÔ¤eשiݬlß­rÖ©iËŸZɘZÍœ`Ó¤gاoÕ§hÕ©iݪrÝ©uÜ°vß°qبrצqÙ¤kÛ¥iÛ¨kÚ¬sÛ­yÛ«mÖ§dЦdË eÐœbÕ¦iÖ«oاnÙ©nÚ©uÕ¤hȘZ˘bÕŸeסhÖ¤jÓš`Ó–`Ñ™bÍ•`Ζ\Î\ΞjØ£kܧfÓŸdКaÒžcÑœhÏ™bסf¼˜jÑ”gÔ–hÖ”fÓ”_Ñ“^Ò˜cÑšlÚrߧwÛ¤vÚ¡pÛ¦vߧy߬|à²ß°}ß­zÛ¤vÕ™kЖdÖ¡oܬzÚ¤sÜ¡wܨyݧsݨxÛ©tÛ¨qݪsݪwܨ}Þ¨zÚ©tÚªtÞªyàª{ß©Ù¨}ؤuןtÕ£xÚ§z×£pÕ¡t٩ݱ}Ý°‚㮊㯅޲ˆÞ°ˆß¯á®€à¨Ü­ƒÛ²†Þ¯|à®uÝ­{Û¬‚Þ³…Þ²€ß¯ƒâ³†á³á³†äµŠæ´„㳃á´ãµ‚ᴂീ㵇㴅䳂â¯Ü«€Ü¬á¯€ä²ƒâ±‚á­|â­~â¬Þ¨yß°}â²äµ}ç¸}à¬}Úªvâ±sâ­u߬v߯wß­tݪnÜ©oÜ«rÙ¬lÙªoÞ«zà¬{á­qá­qÚ§sܧtݦxÚ£yá²}æ¶}ã­wâ®}â²vá«jÞ§lÞ§qߨlà¨oߦrØžeÚ¢iáªtáªnݦfØŸfןeÝ£eÛŸeÜžbÝžgÜŸfÙ¡`Õ\Ñ›]Ò¡hÚ¤ià§má¯xá®yߪuÞ©xÝ«xÙ¨u×¢tÓkÓœeÒžfÒ›kÛ¨}幊綇߭~ß«}à¬~á«wáªvß­sÜ­qà°€à²}à²}æµæ³ƒá²‚ä²zå±|ß°à«yß©yܪuâ²{ã¶}à³~ã­}ݨÝ®}ä³x淄滂ä¶|ä³å´ê¹ƒê¼Šéº‡å´}à²}ã¶|à³}ܱ{á±߯‚Û°Ý«wÜ¥sÚ¬{ݱ{â³y仇庈峂ޮتyÙ¨vá®y罄迈七à¶}áµäµƒæ¶ƒæ¸‰è»‰ç·‚ã¶㶉å´â¶ƒâ¹ä²ƒâ¯…᳄àµ|âµ~â³Þ±yᵀ湈绅繄ä¸Ḁ⸅â³~㳀ᴄݶ~ä¹~éµ{á¯yÞµ}⻀幇縆å¹zß³uÞ¯}à±~ßµ}ḅ淃å²{å²zâµⶇæ¹å¹z湃䷀ޫxÞªxâ±ä´‡å¸†è¶â°zÞ°~㲆䶃ä¶~à²zã´}æ¸|Ý°tÝ«pá´}ß²~Þ¬tÝ­oÛ«oݧpÞ«p߬x߬v߯vݬtÙ§oÜ­và®uؤlÙ¨oÝ®vÙªvÜ®xÞ²yÞ°}ß²zÛ°tݯ{à°~޵乆涃㸀àµ~Þ²ƒÞµ€â·€å¸ƒå¶€äµ€ã¹‚ä¹|ä³}ᶃขà´{à³~ãµãµß³zÞ±zá²Þ²{Û¯{ᲂ߯{Ú¨xܬ߱€Þ´‚᷇䷅ߵÚ±~Ú±‚Û°€Û­|Ü«}ß°…à´á·á³Û±}Û²vÞ¯vß²|ᶅ᷊᷃۲Þ°ƒâ¶…඄à³à¸ƒáµ„اrÑ£gÕ§kÕ¥nÔ¥nÔ¤kÕ¢gÚ¤g×£jÓ iÓŸjئmؤkÑ–]ÉOÆLÏ’ZؘcÖšbÑ™bÔ›eÛ hØ¢fÔ fÚ¡jÙ¡fסeÛ¢kÜ¡kÚŸfÙ¡bÛ§lß­xÙ©vؤsà«lÜ­oÛ°|Ö§lΞbÙ©rÕ¦g̘VÓšYК]ОcÕ¥dÕ¨kاpפjשlÕ£kÕ dئfפi×¢l×£jÖžcÔ›iØ iÙ¢hÚ¤fÙ¦eÙ¤h×£fÙ¢fÛ¡hÕŸ]Õž\Öž_Õ¡aÖ£aÔ¢bبgÞ®lÞ¬oݨqÓ¢lÊœaÊ `Ó¤bئdÖ¤iÙ¥iÚ«lÚ°qâ±tâ®vܪv߬xß°uݱuß±uÞ±oÜ°lÞ±qÜ­pÕ¢jÒ fÓ§jÕ¯tØ®zÚ°tß²rß²zÜ°rÒŸcΙgÒŸhÓ jØ¡mÕ¢bÒ¡eÔ¡jÒ hÔ¢oØ¥nÛ«oà«váªlÙ¨hÙ¨pاjÕ§j׫kÝ«k¿•oÚ lÙrØžsÙŸvÛŸtÞ¡vÞªyÞ®zÞ¬}á«ã©}Þ¬ƒß²á±ƒà¯ß­uÛ©zÚ¥yÕ¥sÔ¦qÜ­{ⲃఇݲŠß²…à¬{ß­zÝ­~Þ°{áµá²~߯{Þ®‚Ý©‚à°{ⱀߪ}Þ«vÜ­}߯€Þ©}Úª}ܬ€Ú©~שxÜ°{Ⳇ㳄ⵀ䴄㴆ã²á°|Þ°~á°}ⱀᶃà±ã®…Þ°ƒÚ¯~ᲂ߲„á°äµ„Ü´Û´€äºƒæ¹‚᳃⯄寀⯅߰ˆã¸„䶃ⲅୀޭ€ß´ƒä¶‚䲄ᰄᲄ㱃â²à´‚㰃㰃䵅紂â°và´xã·|Þ°wÞ­zà®{à¬vß­và¯qá³rß°zß°wáµyÞ­zÝ­vá¯oàªnà¬oߤiÜ¡eÞ©mß©mÜ¥gܤhܤnÛ¤kÜ¢hןhןcÚŸhÝŸmÕ›_Λ^Ö¡fÛfÔ—bÑš_Ô`Ô›jÙŸmÚ£mÜ£pÜ£iÚ£hÙžkÙŸjÛ«xà°}â¯zá³wà®tß©yß­|Ù©t×¢iÓžgÏžmÔ›l× lÖªrß±纊渃å²~à¯}Þ±}äµä¶ƒà±~Þ«}Þ¬}Ü®{Ü°~ᰀⰀ䴂æ·æ¸â³|Ü«{Ý«xß±vá´}ß®{ః㱄ݪvܯyÞ´}ⳃ嵄ൄ㶂æ·êºŒé¼‹ê¿‡èº‰á¶†ãº„ⶆ෈亅峆å¸ä¶„Þ­yà´}庂㹉廅è½ä¶}Ü®yتrبqÙ¬|ç¹ìÁŽå½ˆá¶‡áµᵀⶆ巊繇纅㹇㷂市縃ã³ಀä´ä¹ƒä»Šé¸Žç¶â²zß°à·‰æ¾è»Šã·…ã·ãµ}á³䶇綄䳆᳈ä´ã°|á²}ç½æ¿ˆä¸†è¸†è¶~߯{Ý«wß­|à´ƒá¸㸃䶃ä³|峀䳄â²~ã·蹃ãµÝ°~à®{ä³zã³~à®}ß«xà¯râ¯wಀàµ~à¯xâ²z㳀ݫpÖ©pß®|ãªvݬuà®tÞ¨mݧlà§oݤqÚ¥nÞ©tÜ©qÖ¨iÛ¨lÛ¥kØ¡jܧrÚ¨qÔ¥oÛ©mà¬pÞ®qܪoݪtܬzÚªrß®uâ²…â´†à°~Û©zÙ±}á¸Þ³Þ³z帄纉仃á·xÞ«qÜ©xß³~ᴈⳂâ¶{á¶}ޱݰ{Þ´~ⵄీà±zá±yܪwÚ¦xÚ©~Û­~߲ᴈ᳂޲~߰߯€Ü°}à³䵃滇æÁ‘㺅ݱtܳvÞ²xÞ²{Þ³„᳅ᵆ᳅ⱃⲅâ±}ã±w౅൉ݰwاtÚª{ܪvÜ­|Ù¯~Û°yà¬uÚ«oØ©pݨpÞ­sÜ°vØ«rÖ§nΠcÍ™]ÓždÔ eÒœdÕfÖ^ÖœZÖcÖœe×›aÔbÒžaÕ bÖ ]ÔœYØ¡bÙ¨kÓ£bÔ¡^Ù¢bÙ¦dשlÕ¥hÑdÖ£fÔ¤]Í™QÑ–ZÑœaÓ`Ô¡iÖ¦hÔ¢b×¢hݦrÙ¦pרrÙ§rÛ§qÛ§k×¥hÒžhÓ¡hÔ¥fÕ cÖ¡j×¢kØ£eÔ¢]Í™TÓ›XÑœ[Í›[Ï¡bÒŸjÕiÓŸbÖ¡cÜ¥mݪjÚ¬kÛ©nÚ§lÕ¦lÔ¤lקiÙ©jØ¥iÓ¡dѤk׫kרgÔ¢fÙ¦lß®rÚ®pÙ©qܨqÛ¨mØ©kÙ«eÛ§eÙ£pÚ¦wÛ«rܪoÞªwÛ®tÞ³tâ²wÛ¬l׫mÙ©vܧxÙªtÖ©nÙ«oÞ°yÞ°zà°rÞ¯uÜ®{à²sß®pØ«sÙ¬lߨkݨrܯyä´zÄ›tà¯wݬ|ߨxà¨sÞ©~ఃⶅ嶋泈岅Ᲊⱋ㯆߬{à®zã°~â­~ß®~ݨƒÛ¨‚߯}㵀ߴ߳ⵅ㴃á±ß­|ݲ|Þ¶‚᳊ொᮃà«ß¯€ã¸ƒä¶†ã³„⸅缋崉ᭃá®߯}Þ¬}á²ä´‚ಃಃ㸂䷄â±~à¯zâ°|䳀Ⳁà¸å¸…綆峄á°䵈䵊߱䲀㵆䷋赌峈㴄尃ᭀಃⷌ久äµ}㳃ã²à±ß²â²€ä³„嶉嶃å±æ¯„å²ã®{ß­yà²{å³æ±~å°yå¶{æ±{ã±}ã²}å­}沂涆â°à¬vå±yå¯zà§uݦxߪvÞ¦uÞ©uà«jߦkÞ¢jÛ¢_Ùž]לjÙ hØŸcÕjÙŸlןhÕŸfÙŸnÖžgÒ™[Ï•aÒ›hÔ¡kÔ¨zݬ{à«sÞ¬{Þ¬ݦoÚhÙŸtݦzâªç³Šçµ…௃ް~à®{Ý©~Ú©wÙ¦tÕ¤uØ¥uÙ¦vÙ«xÞ«zá®ⶃã´}ã°᳈ᲆ߳ᵂ㯂߬zÜ®vÛ­rÛ§uß«xà«o߯vã¶~峀㳆â³à¬xܬxÞ¯áµà²yᲃߵ‚Ý­vߨtÞ¯xᴃ䱃á°ß²…á°ƒâ²}ܳ€à¶†æ»ˆç¹Šç»…㹄帄清嵃軉車ä¸}äµ{賂궅鸄细湄߲{Û«}٨٦{䵂ëÂê¾ç¹‚æ·~䶀䶂嶃乌㸇â¹~â·€ä·ãº‡â¸ˆå¹†çº„涃幆羋湆㵀߱}Ú¯~Þ²‚â³~Ý°€Þ¯…Ü°Þ³€åº…渉泇巆ṃೂâ´~⻂廋滇跃汀á°{Þ¬zß®|á´á²}ä®{èµ~é³zã®|ä°yä¯vâ¯zá³yã±{á¬xß²qá³và¬vâ«râªtÞªtÝ­sÞ­wÞ°uß±yá­}à°uß±rß«wÞ«|߬vá®xá±{߯xÞ­vÛ¨nÖ¦lÖ£jÚ¥nß­yà®sܪlÙ¥mÙ¥jܪo߯vÞ¬uÞ®|ãµ€à²yܨnݨqÝ­sÙªjÙ¬ià¯oâ«vÞªuÔ¤jÕ¡kà¯}ݬ|Ö«uݲvá²uá²vß­qÛ¨iܪhÝ°râ³{äµ}ã³€á°}ݬ|ܯƒÞ±~à³}ä¸}ä·{áµÞ°z߯yá­}Þ¬xà³|ⲃá²㵂䱆à²Ý°}߯†ã¹‡è¾„鼅布߷€á·~ã¶}㷃䷆嶅䷃涃贃䶈ᵄâ±~屃㵂߳zݲwà´yà³{߶}ã»ä¹ƒä¶|߶{Ý°zà¯xá´wá³zä³}âµ{Ý°rÕ¨lѨjÙªpÜ«sשnצjئjÖ¢dÕ–\Ò˜\ÒbÕœcÖœbÓ]Ñ™[ÖhÜ«mÕ£aИ\Ñœ`Ñ›aÖœdÔ£fÓ£cݦgÙ¡cÒ›YÕŸ_ØŸeÛ£hÙ¨fÙ§eÔ aТ^׫eÙªnתqÜ°iÞ°kÞªrܦgÕŸaÕ¤mÖ¨hÓ e×¥mÓ£fÑ—^ЙYË’OËUË•XÏ•PИVÒš]Ô¡[Ô _ØŸeÛŸgØ¢fܨhà±mÞ­oݪnÙ©mÕ©iÛ­hÖ©jÍœ]Ï›^Ó¦kÔ§gÓ¤dÓ¥eÕ£hÔ gΠeСlΣnΣhϤhЧkÛ©pá¯wÞ®uÞ­tß°wÝ°yà´{ä´vá­m߯sÞ´|ݱxÜ®sÛ¬uá´}㷀Ⳅ㵀àµ{Þ³ƒà´ß³{ß³~ß®tÜ©nÚ«sà²xè¹{¿¡v⭆߬€Ü¨yá­~ã´ˆæ¸ê¹Žè´ˆã­†à¬…ᯀâ¯ßª~ß©}ß²‚᷆㳉Ⰵâ°~Þ¯~Ü´ˆâ³‰ä±‡â´‹ä¶‰ä³‡Ý°…Û¯ܭݱ„൅㲊䵇å·ã³‚෇⻇赈蹎æÀ‘乇á³à´|à±á°á±ƒá²ƒà²zà²~ೊⳆⲂà±}á¯{ಀݫvà«uáµ€ã·åµ~Ⳅⵄå´ä°€å±å²}岀岂æ²ã°}㰀ᯀ߰à±ã°~⮀â²zà¯rÞ¬y᱃䰄峂ã°}â¬|ä°yä°zå°‚â­yݪoÜ­uß²zã°~ã±}ã±vã²tä¯zâ®}ã¬táªràªwá¦tà§sà¨sÜ¥p× kÙžqÜ¡jÕžbÒ˜dÑšeÖ¡iצnÖ¢lÖžnÙ iÙ bÔŸfÔ¡kØŸn×nÔžjסlØ£uÕŸn×¢jß°yß°|ݬu߯zÝ«xÛ¦vÚ§zØ¡hÓŸaÖªtá±æµè¸…岃â­Þ«€Û«zÚ¦vܦwݪwܪ{Úª}Ü®xß°|âµ浂㲂á²ã±~ã³}â³ß²‚Þ³‚ޱݱ}Þ´|ã´yå°wã±~ீޯ€á´€ã²‚á²ã¸}à¸Þ´ƒä±‡â±Þ³~â´ƒâ´~߯xߦsÚ¬yݵÞ°}ܬ~Ü­Ö«yÔ¨sסrܧx߳ⵅ㳇⯃߰ᵀæ·嶅ᶄ㸀å·ãµæµ„賅嶈ã¶ä´xâµxÛ­qÙ«v⺄ä¼à´„㷆㷅ⶄ߶ං㸄᷅᳇߳†â¹„漇廇å¸å´á°€ß²㵅ⲉ㱄浃߱߬{ß³xß²xã±zà±~ß³„渂è¹å²ƒâ°~á³{à¯xà®wá´{ä´}ä³~ß´~Þ¯vß­vß«và«sà®tÞ«oÞ«lÞ«pÞªuâ­uã°vâ¨oÙ£kØ£nÙ¦qÙ¦pݧmݨqÙ¦tÛ¨rÛ¨oÚ¤rݦzÝ®{߯vâ±v᱀ᲂá³~㴄浂嵀ⶃްzÞ±{߶€ß³}Þ¯xÞ¯vÞ³yÞµ~Ü­|ÚªuÙ­vØ®vÜ®|äµã¶ൂá´Ý¯yݬtã­uß±pݯnß®uÝ­uÞ¬vݪwÔ¢gΠ^׫tÛªuØ¥kÙ©rשr×¥kØ¥lܪmܧlÛ¦oÞ©wÚ§wÛ©rÝ«oÙ©qÙ©rÚ§oÛªsâ¯xã¯rß®rݱwà²vá²}ß±xâ«pá¬xÞ®zà¯xà²wÞ´|ܱÜ°{á²~ä´ßµ|ß³{â´߸‚ᶀæ¶}å¹帄䴂᷄ṇ䷃㳀޳â´}ä´~ᶇ䳅ã³zá¶zä·ä¶ã³‚æ²á²zÝ®xà®vá°xã°㳇á±~Þ®uתqÒ¥hÓ¦mÙ­xݬqקkÓ©oÓ¥eÏ™XЖ[ÑžeÓ_Õ—\Õ˜^Óš[Ö hÙ¨jÒ¡^ΗZÔ—\Ô˜UÔšYÖœ^Óœ^× cÛ¢cÚ¡]ÖŸ^Ñ^Ô bÛ§mÜ©kÓŸaÏšcÙ£pÙ¨kÖ§eÙ§iÔ¤kÔ£lÖ£dÌš`ϤsÙ¬rÙ¥fÕ§mΞbÈ“XÇ’UÄŒVÊ’]Òž]Ó—\Д]И_Ñš]ÒŸa×£hÚ¤dÜ¢aÜ¢cÞ§gܬjØ©gÜ©hÙ«lتlØ«hУeÏ cרj׫mÖ­jÔ«kÌ¢bË£fÍ¡mÌhÍ¢kΤfΣhÕ§rÛ¯xá¸â·}Þ±rÛ¯rÛ¬qÞ°yã¯yá¨qÜ«rݱtÞ¯sÝ°tݳ|ⴄ⸃â¸äµ€ã±}ß±{ã²vä°{䶃â¸~Ý°zÜ«tݯxå´}ÁŸp㴌੄תzÚ³€Þ³‰âµˆã¸Šä³‰å²߯yÚ©{Ü«~à±â´~㴃ⴃà°ã±€æ¶æµã³â¶|ã²á²†â¹…䶄å°|à¯yá°层ã·áº‚㷇嶇嵄ⲃ淆車縊귆浃㳆䲃å²uä´sä²xâ±yá´yä³|ãµ~ã¸~ã´ãµ€ä¶}ã¯|ߨtß©qÝ«rß°yäµxã´uá²{á¯vÞ­rß°|à°{ݪxàª|áª|Þ©vÞ¬vÞ¬ràªvå©{á®zß®xà¬uÝ­vÞ«vá®xã®uà¨kâ¨lߦoÛ¨nà©râ«tݨjØ£fؤmݨuä®vá®tà®på±yã¬{Ü¥q×¢mÖ gÝ¡fà¦nÞªrܦnÙ b×¢_Ú¢kÚ›dÒ˜_ИeÕ›mܦtã®{à©vݪtÜ«pÚªnܧvߪ{Ûª~Û§wÛ¥mÜ©rß²|ã°wã°z溉鸃âª{ܧxݧpÛ¤nÙ¤pÛ£sÛ©vßµ嵂ä°ã°ß±~ß²|ã®xݪvתuÙ«sÛ­vÝ°xÜ°|âµ}繂渉纃湀嶃湃ç¸ä¶~乂嶇㵆Ṇ㶂丄廋万඀ᶆåºç¹ã¶ˆã¹…㷇嶃⸂᳂ᵂ㹌㶇á°{à¬xà«yß­xà³|ã³Þ¯{Ô§rÌ mϧrÜ®€äµ‚帆崃ä·~ව᷀组湈涋麆綌綌鼊纅æ´}峆巃庂ൃܯzá³~á±à±|âµ~ä´~â±|Þ²ƒÞ´…Ⳃ䵇乌㸃㺄漅羇躅å³ã±yß­wá°çµ…幂èº~ç²~á²~á²yá°zß²à¯}à±{á·~â¶zà¯và®|á¯~à­}â°}ã²yà«tàªrÛ«sܨlà§là¦vߧwà©pÞ§fá­pá±uá¯uâ±y߯~à«xÝ«rܪtÙ©vÙ«wÝ©xÞª}Û©sÛ¦oÝ«uÞ­tà²yà²{â²ãµ‡â¸†â·ƒå¶å¶‡ä³ˆãµ…᷄߯ß«„㳇䶃Ⳁ㶂仂ߴ|Ú«{ݬ~à®vá³yä»…è¼è·Œæ´â°yܯ}ܯ~ß²}á´|ã³}ãµ{á³zᲀᲅ׬{ЦpÙ«uÝ­oÙ©gئl×¢kÜ¥kÞ©mÞ²w߶zÝ«oÛ¤m×¢gÕ¢kÚ¦pÚ¥mÙ¦qÙ¦pؤiܨkÞ¨kÛ§lݧmÝ«mÞ¯rÞ¬tÛªsÞ­rÜ«rß«qå®rå°rä²wá±uܯoݱuݬyݬzâ´â¸á¸~丌幈縀帄⺃丆ⱅà´ܵ~ã®~ä³yßµ|æ³ã³|Þ´yå¶~ⶃᴀá²~Þ´wÜ°rÛ¨tÞ®xßµ|à´‚á´}Þ²qÚ¬pÕ¦sÓ¦lÙ­oÛªpÓ¡eѤfÕ¤gÒšcÓ™cÒ fÒ¡cÓ¢`Ñ\Ï•WÓ™^Ö¡bÓ _Ò›\Óž`П[јV×›^Ô¡\Ö¢\Ù¢fÙ¢hÖžhΞdÏžbØ¡dÜ¥hסdÑŸ^Ô¨lÕ¦nÑŸgؤlÕ£hПcÒbÍ•`Õ¢qݨnÛ£e×£jК`Ê“\É–[̘XÕ£dØ£eÕœ[Óœ[ÐYЛ]Ò˜`Ö[Ø¢bÙ¢`Ù£]ݨeÙ£dØ¢eÞªhܨfØ¥hÛ¨lרiÙ§eݬlÚ­oÛ«kÙªjÔ§gÒ¥iÑ¢kТgͤfÑ£mÕ¥pÔ¦pÙ«|áµ€â¶|à°|Ý­tܯrá°xá³{Þ¬uÛªpßµxâ¶zà´{à³{ä¸z滀緂è·å¶yä±{å²}ã³{å¶ç»|ã¶wä°và°u䶀Æ}㯃ݩ{ÙªyÚ®…Ý­ˆß¯à³…㲃峅涌㭆ܨÞ±€â³„䲆䯀㰂粈赅ã·~â³ä´‰à¯‚á­}ã³€âµ}â´|à±{à°{á³€ã´æ´‚᳂߳|à²{߯vß°uá®{æ¯yä°và­}â¯}ã´}à°~á­tâ°pÞ­uÞ­ã´„ä´ä±~å¯zå­tã­rá¯w߬uߨrã§nݨqܨqÝ¥oܪqÚ©mÚ¦lÚ¦kÙ¤fÛ¡jÚ¢nÜ¢hÚ¡gܦiÞ¨nÛ¤oߤhà¨hÞ¨qݦqÝ©tÞ©sÛ¦l×eÙ›_ݤgÞ£iÙžbÖ bÜ¥iÛ£jןfÛ¢fÛ§jܦlÝ fØŸaÛ£gÚ¢lÖ£dÖ£eÖœgÙfݤiÚ¥mÕ¡fÒžbÔœgØhÓžbÐbÔŸfÚ«sß°€á¯€ß²Û«zؤrÛ«wá´á³…Þ³Ú¯yÛ­tÞ°uä±~賄Ⳅ㵅ⵃݫwà©vÞªzÛ­xÞ±}à°‚á¯|㳀崃殂â¬}Þ°yâ²â³vתoÕ nÙ¤oÞ­|峊渉湆黊鹉崄布黉è»æ¹‡æ¶€æ´‡ä³Šà³‹å´ç¶äµˆä¹Šä¸„䱀㵉å¿è¿Œæ¹„㶀ⵆ㶉崊䳌᳆ⴈ䶋峆Ⰵ߳‹ß³ˆä´Šæ¹Šà³~Ö©uÒ¥oÕ¥Õ©‚Ú°}巅乄ãµ~ß³yÝ´}䵇踌躇鵇嶆乇纋渆æ¶~æ³†ê·‰í¾ˆê»ˆâ³~ݯ}Þ¬€â­€á¬~Þ­xà®rÝ®tá³}å´è¹~è»|á±và²tã´~ã²ã·ã·€á¯~ݦrÞªuã¯~ã¯}â°{à¯zä¯{ã°{ߨzÝ£uÙªuÚ¬xߪx߬vܬsÚ«uÜ«vâ¬vá¯zß°}Þ©rÚ¥lÛªpݨpà«o߯oá­tá­zá­zã³wá¸{ä´„ä³âµtá·wⷅᵊá³ä´€âµ†å·„è¹Þ³~Þ°~â´‚â·}Ⳁⲃâ¶ä¸ˆâ¹‡á·„ⱅⴇ庅㶃ޭá°yã´~âµäµ…ç·„å³uá®t߯tÝ®rܯ|ⶇ丌็ã·zâ²yá³zà¯zà®zÞ²zß´}à±…â°‚ãµ{ä¹|帀ݮ|Ó¨qÙ¬pݯtÙ©tÜ¥rÞ«xß±{à²}à²|á°vá­{ܬxاoتsÚ©qÜ¥kؤoØ¥nØ¥kÕ h× h×¢hÙ¡bÖŸ^Ö¤fÛ§nÜ£dÙ¤iÙ¨oÛ©jÚ¨fÞ§cá­sÞ¯wܪrÚªsÛ­rß­uá²|å´}äµ~ã·}äµãº„ãºâ°~á®{á¶}á¸Þ³~ݳ|Þ²}ß³‚ⳃݯvÚ¯uâ³|á³{Þ´{ᵄᶃݯnÙ¦jרqÙ­tß°xÞ°rÞ±qß²xÜ®tݦpÙªv×­uÔ¢hÔ§hÙ­q×¥nÓ£fѨfÓ§kÔ¡i˘ZÇIÉKΗYÓ[ÔšZÕœ`ÓŸ[ÐUÒ˜[КYÏœ`ÒœdÓžbÒžeЛaР]×¢aÙ¤lÖ¥kÔ¡hÕ¦nÖ¨pÖŸmÖ¥rÓ¦rÓ¡mÕ¤rÑ¥nרoÛ§hÖ¢fÓ¡lÏ›cО`Ö¨h×¥hÚ¦hÙ¢hÒšfÏ gÕ¤jÔŸgÒŸbÐœ_Ï›aОcÒ¡eÖ¡fÖŸ_Ò _Ö¡_ÙŸ\Ø¡eØ¥kÙ¦iÛªiÛªlݦmÞ«oݯmÛªjݤdÙ¢fئcÕ¢[Õ¤kÙ°vÙ²tÚ®và²zßµxß°{à¯yÞ­oß®rá³{ß±zÞ¯uà¶vá¶zâ²}㴂㵂ã²{㲀涆ê·{åµwâ¶}â·~ãµ}ä±zã°}á±{ݲvã·}Åtá®Ú«xݬ~Þ­…߬{ã©zà«yÞ¯wà­xä°{å°~Þª~ß©xã®râ¯sß®xß²zä±wá­vß­wߪvÞ§vÞ¥uߦrá©rá§rà¨sÞ©nܨqÞªvâ«qߪoÜ©rÞ¨mݧmؤlÚ¡dߤjß©oߨnà¦rá¨pá­rß«tÞ§nݧmܨpݧsÞ¨uߪuܪvÜ®yá®uà¨oà§mà«jÛ©kÛ¤eÝ¥bݦeÛŸfÛŸgÙžfÙœcØœ`ÕšbלeÙœb×™dטaÙ›aÛfÙŸcØŸ_ןaÕ dÛ¢fÚ¤kØ¡gÓ^Ï™YÒ›]Û nÜŸlØž`ÖbÕžfÖždØœaלcÕŸiלcÔ–]Ï’YÑ™`ÕždÖ¥kÛ«qÙ¡kÙŸlÜ¥wØ¢oÖšaÏšeÑŸjÙŸe× fØ¢nߨrã®|ݬÜ«yÜ©vÖ£tÔ¢qج}Þ±†à°á±~á²~ݬzݬzഀ䵇ᬀ٪xØ©xÛªxß­uá¬uâ®xä²{ä´}å¹}七綂ä³{á³~å¶zç²zá²}ݬwÚ¥wÞ¯}縃뺉ìÃìÅì‹껅㰃ᰇ䴊䶋㵇ã°~Ⰰⱇ஄ᲆ涉ä¹ç·„岊ⱂ㰆à´ß³„ಂޱƒß­ß«‚ⶅå¹~ⴅ帋庈ⶈⶇ㶇䵈渆뾄깂ᮀ۫~Ù«zÖ©wÙ¯~㹆ä¸á²{߯tÝ®vݯ€Ý¯„Ý­Þ«á®}ß­vÛ©qá®yá±xá°zç·€é»}æ¸|â³{߯zÙªyÙ«vݬsÞ©s߬tàªrá©uâ±|á²æ°|ä±xÜ«vÞ¨vá¯yà±xá¯vâ­tß©rÚ¤nݦmàªqà§wã­|å²}â®á©yà¨qܦlܨoÛ§tÛ¥pÞ¨rá®}ä³€â±à¯zã¯tß­zß­}ⱀⲀ㳂Ⳁ嵆漌滊终嵂ã°å¶…⹂㸂å»|å¹{縆軉湉淋ê¹çº€ã¸‰ã¶‡å¹„䷇ⶅ幃涀㹀㻂àµyáµ輌軋ã¶ãº}ãºßµ㶄繃蹄巃ޯ|Ü­zà°zá±ᲅ㱂à°}Þµ{á¶}à®{ß­~ೃá²à±ã¶~æ¸{æ¶~嵄ಅݭ{ß°wàµ{á³|ß²yß²zâ·â¸â²á±zà±wÞ­uÛ©uÛ§rÚ¨rÛªuÝ«oݨqؤrØ£pÚ¥r×¢oØ¢hÛ£fÚ¥hÚ¢hןeÓ¡aÓ¢^× ]Øž\Ø›[ÖŸc×¥hØ¥fÛ¨kß«{Û¬yÜ°táµ}ã¶|à²vß°vá²{á±{ß±{Þ±{ã²zä³zâ±~â²~á°và°và²uÚªoÙ¦vß±zà´uß±zⰇ㱇à´ݱyÝ­t׫q׫uà¯yã²xã´uá²tÛ¬tÚ«yÚ­|Õ¨rÛ«ná®tØ©sاpÞ«vÚ¬vרkÒž]ʘYȘ^Ζ`Ï`Ô¤bÕŸbÕœaÔš_Ò›^ј`ЖWИYÒœcÓcÕ›bÓ ]Õ¢\ןdاeÙ¦dÕ¢fÙ¨fÞ©jÜ©qÙ¬oÜ°oܱtÛ®oá¯vß­uÚ©lÕªjÍ£]Ï£cשoצjØ©iÙªmÙ¢mÔ jÓ¤gئfצfÔ¢gÓŸjÓ¢jÒ¥eРYЙVÒœZКWÑš[Õž^מaØ¡eܧiܨjצkÚ­ráµtâ°nÞ«nà«nà¯mÙªjÚ©oß²xÝ°wß®vá¯rá±sÞ±yݱuÜ­rÙ«rÛ­vÜ°táµrã·sß±rà°uâ²}á°xâ±yá³{â´{æµ}ç¶æº…æ¹€è·}çµ}ä²xã±}ä²{è·yÁ¢yߥmÝ£já©qâªxݦwÞ¢oÞ¤lÛ¤jߣjã¥rá¨sà«uà¦sß¡mà¡pÜ¢mÚ¦nÝ£kÙ¡hØ£nÝ¥oܤi×f×jÜ¡lÙ¡f×¢bÛ¡`ןaØžhØžjÖžhÖ¡eÜ£bÙ¢cÔœa×›`סa× cØ cØ¥hÙ¥oÜ¥qÜ£f×XÕZÔb× `ÙgÕ™fÕfÔ¡rÔŸnלiØ¡lÚ¤mÛ£nØ¡kÖŸoÙŸq×hÔ›cÖ˜gÔšfÖŸhÚ¡nÖŸpÔfÕœ_ÕœgÒ˜fÒ–aјcД]ГXД]Ô–_Ö˜dÒ—gÑ—^Óš`ÖždÖŸfÓœiÕ¤vÙ¥uÖŸgКcÏ•\Ï›^ÒšdÑbÍ‘^Ì•[Ï™eÓ£tÖ§vØ¥zÖ£sÕ©qܬ}à¨zÛ£pÓ¤lתtÞ«sÜ«tܬ}߯€à¯}ß«~ÞªzÙ¦tÛ¦vÞ©Ù­€Ùªzܨvݪ{ß«Ü¥vÙ¥tÛªuÞ­|Û¥yÒ iÔ¢nܦ|ß®}á±{䴈済å¶}ã²}ã¸â¹€á²z߯zß®}â±yà±vß«tâ­y溂꽉뻉꿄ëÀ†ë»Šè±†â­á°Šá³‰â¸†â¶‰ß°€ß²ß°}߬|஄ⵆ޳xÞ³yⵂ㳃ⰃܬاzÙ¥xÚ«€Þ¯Œà¬{ã¯x㸃丄峅ⴂà³㱅㴊㲂äµæ½…湆沂á°}Þ¯yá®uã³}ã·à´xݨtÖ£vÓ¦vÒ¢nÐhÏjÏ¡mÓ¦pРdÍš^Ò¢nÖ¨pÛ­pà²uá°wá«}à©{ß«}à«yߨtݧnÜ¥lÚ¦pß®uã­vÝ©qÙ¨oÝ©{ݧxÛ¤mؤlاoÚ¬tاoܨtâ²zÞ¬qÚ¦qÝ«vâ°yå±{ä²}ä³yã°yá¯{à­vá«và®xÞ­vá°{済帆á²~à¯}â¯ã²~㸀丄渇幇ⵅ渄漇⻇洂ä²}ä´x緃幌淊䳅ä²{äµ~亊ã¸Þ°}ßµ‚布庇仈涊溆çÀŒæºŒæ¹ƒä¸á±‚àª~à¯~䵋渌á´}ß°uà±}ß°{à²|䶃嶀ã³{à°xݬ{Ú«uÚªrÜ«zÜ­xÞ¬rÝ­oÝ­uÞ«vÝ«yݯ}Ý®tÞ¬xⲃⲀᯀã¯à¯}ß®xá³zã¶}ä±ᰀ޶ߵ€ã´ƒãµ€à³~ß²}à¬{ݪzß­xà­wܯzÚ­}Û©wÚ«pÚ«qÛ¦uØ¢tÖ¢mÚ¥lݨrÚªrØ£mÙjØ£kØ£jÔ^ΗSÏ–XÒœ^ÓœfלhØ£fØŸcÚ¡dÝ©jÛ«nܧnÜ«oÙ«rÞ¬vÞ°xܪrß®yá°â±}ãµ~á²vݯtÞ¯uÝ©jÚ©lÝ®tá­sâ¯}ೀ඀߷„ß³|â°uÞ®{Þ®{ã²wâ´vá¶uâ¶vâ±zã²wá¶wà²sà°uÜ°uÙªrܧuÜ«uÞ­tÞªnØ¢eÒ eÑ¡bɘZÈ”[ÒeÖ iÕ aÕžaÓœhЙ`Ò˜\ј]ЙaÒžbÔŸ^Ö`Òœ\П\ÒcÔc×¢aÙ¤dÜ£hߨpܨoÚ«qܬtÜ«ká±râ±yÝ«oÚªkÒ£fОkÒ¤lÎdÑ¢kÚ®zÚ­yÖ¦jÕ¥iØ®sجtÖ¨lܪlÚ§kÓŸ^Í—YÈVÏ—VКVÓVÖ ]מcØaןdÚ¥hÚ¦hÙ¢oÞ§nà¬jÞªn߬pâ²vÜ®oÛ¬kÞ°uØ­yÚ­xÞ°wÚ«xܪtÞ®rÙ¬pÕ§mÖ¬oÚ«lܪmܯpܱsà¯yä±yâµxà³wß²uß²tß²xäµ{é¶èµ…鹃鷀å·xâ¶zä²€í¸~âtÝ¡fÝ cØjÙ¥mÜ©uÞžkÛ gÛ¡pÜsÜ£rߨvà¨}Û£vןnÛ¡qÚœpØškÛŸoØžjØ hܧpÛ¥qÙ¡l× hןeÙŸbÙ¡eÝ¡jÚ›nÙ›dØbלbÕ›eÓžhÙŸcÚgÖœoØ¡nÚ¥oÙ¥pÙ¤lÛ¢pÜ¡kÖœbÖšbÕœdÔžd× bÙžfÕœhמiסnÒŸkÓždÚ¢pܧyÛ¦rÜ¥sÛ¢tÛ¢qØŸjÒ›aÔ¢hÚªuà®{á«{Þ«xÞ©xÞ©uÜ©kמbК`Ïœ`Ó—aÒ˜dÒ—cÔ“dÓ˜aÒ–eÓ˜nÖ¢nܧqÜ¥sÚ¡oÜ«{à°}á§uܤsÓnÖvܤvؤmÕ¢hÖ¥hÖ¨mרr×¥pÕ¢pѦsÙ°{⹅ⶈ䴃ãµáµ†ã¶‰â·ˆÞ³€Ü°€ß°…ä°…ã­|à¬{ß­zâ¯|Þ¯ܯzà²yà¯ß­€ßªsÕ¢uÖ¤s߬uݪyݨxá­€Þ°„ß³…㹇㷃ä¸{âµxà°}á±}á¯xÛ¦y×£rÛ§pÞ¨sÝ©tß°wæ¶v뻀뻇跂踀鶃컉뼃泀緈躆嶈鷈汀ޭƒá³„ã³â¯㳀ᵂᲅ嵃䶀ãµã´~Ý­~ݪ{à¬}á°|á±|ã±{â³|à²~ã®|â­{á¯zÞ®~ᵄ嶄ã²|ã°xä°zã²~ã³}ä³}èµ}è¶}ã°|Þ©uÖ jÌœeÉ_Ì_ÌœeÍžhÑ¥sÙ¬rצlÏŸkÕ£tÞ­|à´{â°vã®xá®vݨkÜ«pß°zä®{ã©qÞ¦sÞ­xã³wá°sÞ©oܧrݦoÚ£mÙ¦qݦsÞ¨uÞ°xÞ¬zÝ®†å¶ˆå²|Ü­yÝ­z⭀㳊㳂ä´|ⶀå±{ç´zà¹඄㳅ް~à¶~èº絀߰|Þ®}ⵆ⺅㶄渃溂ä²ä²縊踋溅溆涇繈溈争å¸ä°tá®tⵂà²~Ö¨sجvä¸ç¹Œç¹…溂幅超泃ã³~ä±{à­{Þ¬rä¬xã­ß±}Ý©wÛ£oÞ«oà©kÚ¥mÙ©rÜ«uß«uÛ«vÙªvÙ¨h×¢hÛ¤sߪpÞ¬lÞ¨oÞ¤lؤfØ¥lÚ©zÚ®yà­sã­yã¯zà«t߬vß­sß«mÜ«tà¯~ã®{߬uÝ«yᮂ岀å°㳂à¯}Ú§uØ­|ß²â²xá·}âµß¬zݯxÞ¯uÛªsܬyÞ°yÛ©tÙ¨tשuئmÚ¦tÚ¨xÙ¤s×kÓœ`Ñ›^Ò™eÔ›fÔšbÔšfÓšdÕ™eןgÑžbÏ›`Ö aØ¥jÙ©xÙªxØ«rÛ®wÝ°vâ³zçµ|è¶~æ·ä¹}ã±sÝ«tتxÙ©yÛ­{Þ­wÞ°zÜ®xجyà³{â³~à±}á´xá³|åµ}å´ã³~à²zà®}â²á¶€à°zܬuØ°uÛ±tÞ­zß±}Ý°xÙ«uרnÒœ^Í•WÑ™bÖ¡hÙ§nئnÓŸbÒ–WÑ–[Й[Ò–Zך^ןeÔšbÒš^Ò›`Õ–aИ^Ñ›XÕ™WÕ£\بfÙ hÙ¢fÚ¥eÙ¤fÜ«pã¯qâªsܪnئgÔ¥jÒ¢gΚdÔ¢mÝ®xÞ°xÜ®uÜ«tܯnÞ±mß«uÞ¬và­uÜ«oÑ£^Ì“WÍ–YÑ¡\ÔœaÔœ^×£bÛ¦dÚ¤`ܤgܧmÙ§kÙ¦jÛ¨lݪhܬhß®mà¦rܨuݯvÜ«wÞ®và¯rܪsÝ«tݬrܬsÛ­pרqÕ¥hÕ£dÙ¨oÞ°vß²xá°{à²uâ²sá°rÝ®sâ±|å¶{ä³våµtç¹zè¸|å²sâ±pá¸zë¼ËŸs×™gÔ™bØ cÜ¥qߧsÞ£kÛ¡mܤtÛ¦uئxÚ¬€Ü¯פuÔ¡pÖ¢rØ¡oÙ¢vÜ£}Þ¨}Ü©}Ú¥zܪ{Úª}Õ¢sÕ oÚ£sÙ§v×£oÙŸmÙ¢vÚ¦tÚ¡qÖ¡t×¥pݦmÞªzß«{à¦xÞ¨wÛ¦qÚ¡qÙŸqÕžnÖžiÖmÚ oÜ£rÛ£l× iØ¢pÜ¢rØŸpÙ¤sÝ©|Û©ݨzÞ§uÖ¦wÕ£pÖ mÔžpÓžiÙ¤wݯ„ß³}ã²à°~á­zß«yØ©tÕ£lÓ¢fÓ¥kÕ sÕœkÕŸkÖ¢nÖ£oÔ£zÑ£}Ù¦tÝ­zß³‚á´€Þ³~ೃ㲊᪄ۦ|ܪ{à®|Þ¯}ݪ€Ù©{Ñ¢qÔ¡rÛ¤wÙ¥vÕ¨xث෋้ߵƒâ²‚à³à¶‚ã´€Ú§|Úª{޲ߴƒãµ‡â´‡â±€â¯}ß±{߳㵅崄å´}å°yß©xÛª|Ⳃ峂â²}ä¸}ç´â¯á±ß²€Ú°€Û©{ؤuؤmÖŸfÏœdÎfÍœdÑdסjئpÛ«sÞ°vÞªvÚ¤rݪyß°€â¸…鹃綄鸇굄洅å³ã²~â°|á¯}ä³~峄䶆嵂ä°|ã±}೅⸆å¶â®ß²„à²}Þ®€ä²„谄⭀߭{áªà¬{Þ¨sÙ¤vÜ­wä±zä±á¯{Û¥nÝ©qá¯yã¯uä±yæ±{ã«rÛ¦jئiÔ¢kÑ nÔ¦pÓ¨kÔ¬qÚ²{ß´€Ü¬xبrÞ±|å¸ç¶„泃ã°{å¯vâ¬rÞ¬sä¸ç»…â³ä³|䲄ఋݭ}Ú¨rÝ«rݬrÛ§qÚ¦vݪtà±}㶅å²ä²„庅趂á®à­ß­}ß®x䯀㳆㵂â²á´}ᶃå¶ä¶‡Û¬}Ý­|ᴀᲀà¶ã»…布浄浈糉尃à®tß°qã²vå²tã¶|ã·æ²~䴀㷊峊à­yß©qÙ¦lÞ¬qá¯vÚ©rÙ«sà®zâ­á±æ²zâ®yܬnàªnß©yÞªvÞ¨mÞ¨oݨnÛ¨nÚ§t× hמfÛ¢jÙ¢bÖ^Ù›cÖš^ÖœcמgÕ¢gÔg×›bÚ¡dܤhØ hÓ›\ÒšXÕŸ^Ù¡gØ iØ¢hÙ¢hÙ¥lÛ¥hÛ¡fØ¡iØŸcÛŸgØ iפiÛ£mØ hסeÝ©rá¬x߯tݱtß®qܧnÙ¦kÚªvÞªzà­zß±ܭ᱃à±zÛ¬rܯxÜ­|Ú¥{×¢tÙ¡rÙ¡pפkÙ©rÚ«uئq×¥j×£hÕ¢p×£lÕ hÓlÓžgÒšcÓœd͘WÊ’VΕZΚVÑŸeÖ¢lÙ¢hÞ¥hà¨hà­pá­oã®pã´yâµxâ±vá®uÚ«qÖ§nÙ¦sÛ©sÛªnÞ¨uݬ}Ú±tÞ²tÞ³}á±yá¯vä°yåµ涀æ²{â¯zà°}Ý°zÞ¬rÛ«tÙ¬xÙ­uݱ|Þ´ƒÞµ}ß³|Þ°zÚ«sÑ nÍšfÏ`Ó¤gÖ¢nÔeИ]Ï–]Ïš`Й\Ñ—[Η`ΖZјUÔ™TДTÍ”YÒ•XÓ“TÓ•VÔž]Ö [Øœ^ÔeÕ¡gÛ§lÞ¬qâ«uÝ©pتpØ«sÓ£eÒŸcÙ§tâ¬vá«nܯrܬsߪkÞ«qÝ­x߬rà¬mÝ­pÚ©jÖžbÓ¡dשfؤ]Ñ›UÏœaÖ gמaÜ£gߥiÛ¤^×£^Ù¥dÚ¤dÚ¦_Þ¬gÝ«nÛ«iÞ°i߯oß­t߯tÞ±u߯rÞ­jà«hâ®nÞ¯oبjÕ¥mÓ¦oÚ­tß±sß®wß­{ß­pÞ«nܧrݨuà¯tà°oá­pâ±sã³rä­qߥmÙ§oçµwÈžrוnÜžxà©~à­zÞ®}ܪƒÚ©{߬w߯zÜ­~ß«Þ©{Ù£|Ú¥Ú¨~Ý«â±â²â­á¬€Ý¬Ý®à®€Ý«Ûª|ݪ{Û§vܦrÝ«vÞ­}߯{Þ«~Ý©€Û­vܱx᱂஀ݪ}Ü©zÙ¨rØ¥kÙ¢pؤsרuÜ©vܨyØ¢uÕ›oÑœnÖ¦tá¬xâ±}ã³å±|ã­}ÛªvØ¥kÖ¡lÓ£rÓ¡tÓŸqÕ¢qÜ©yÞ­„Û¬}ݨsÜ£sÙ¦wܪyÙ£sÖtØ pÕ¢mئvÚ©xÙª}Þ­Þ«~ܨ߫‚Ý°‚ß³ƒã¸†äµ‚ᲃ޳€à±Þ®~Û­|Û¬}Þ­ƒà±„Þ­{اqÑ£kÙ¬z洆㴂ۭ€Û¨{Ü°|ߵ߮zÛ¬}Ú°|߯yâ¬yߦvÞ¨zß®~᳂洃æ¸äºã±|ß°…ⶉ溇上乊趄å²~ḃ潊纆嶈㶂á´|ã²â±á­yܪtÖ¢oÒžgÉ™_Æ’ZÄ“YÄ“[Ä‘[Ä“VÊ™\ÏœeÓšdÒ™`Ñ—[Л^Ò¢lÕ¦tÞ­z䳀᱀帅䶄á­~ã±}åµyä±sâ°yá°|à¯wá±yä°ä¯}à¬vݬsà®uß©yÚ¦{Þ®{â°rà¨nß«uå®qáªsÛ©zݬz߬sÙ©qצrÚ¨tÞ¬wá«wß®vÞªnݦqÞ¨tߧtà§{à«xÞ¬mݨnܦnÚ¦iÖ¨oѦoÒ¨jØ®uØ°|Ü°€Ý©{Ü«pá¸xã·‚ç·éº„å¸å¶€æµ}âµ滇溈ⷀå¶|岂求á³{Þ´{á´á´‚â±}å±踇繊仇巃ä²á¶å³{æ²~â³|á°vá¯yæ²~鸅軇æ³}㳀㷉Ⰰ㲅߰‡ß°{â´浊渄⺀湄湄溅庅â²ä°tä±lâ¯lá¯xã²zä²zä³å³{è³~æ±~á¬oÞ­oÞ©oàªná³oà³q߬tÞ©pÛ©nÞ§sá¨sÞ¦pÚ¢eÛ£dݧkÛ¡dÕŸaÔ¡aÖ_Õ›^Õ™`טcו`Ö™ZÒ™ZÍš\ÒŸYÒ˜YДTÑ—YΕ]Ï–]Õœ`ØŸcØœ]Ò“VÌ‘WÏ–WÒ™]Ô˜^Öœ`ØŸgØœgÕ˜`Ñ•XÑ•YÒ–ZÑ•ZÕ˜YÖœ\Ø jמeЙUЖWÕ™\ÖŸbÖŸ]ÖXÕcÕŸjÕœfÖœd×¢hÙ¦nÞ¯uß³~ݲ{Ü­vܪxß­sà¯sÞ®xÝ«vÛ©qÚ¨nܪqÞ­vÝ°uÝ°uÞ­tÜ«qÜ­xܬxÖ¦nÙ§rܦyÖ£tÕ¢qÕŸfЙ`Í™_Ι]ÑœdÕ ^Óž[ÔœcÒ˜aÓŸbÖ¤jÖ¥nÛ¨kß©kߥoà­và®tÞ¨oÝ«pߧnáªzⳃä¶{â°vܨrߨp߯qÛ¯nà¯uâ´xâ¸vâ³w߯xà³}ß®zؤsÚ§vÝ´|ß´}Þ³{áµ{à±~۱߶~Þ¯vצoТfǘbʘbÑbÒ›]Òš_ÕœbÒ—_Í•YÈ“VÇRÊ‘SΕ\Ñš_Ñ—XЖVÒ›ZÒ™VÏ–YÕ›gÕžcÔ b×¢hÚ£gݤhܧlÛ¬mÞ­iÙ¨mÛ©tÖ¥jÓ¥eÚ±oÞ°oÝ©jÚªlÚ«sà°wà°wÞ¯vß®vݪrÝ«s߬tÛ§pÛ©uܯrÙ¯kÖ¦kÖ¢hÓ _Ζ[מaܦgÚ£eÜ¢eÚ¢aÙ¤`Û¨hÝ«pÞ¨sß©lÞ­là°rä®uã¯sã±qæ±tâ®qÞªsâ¬xã®tÞ«kâ°jÞ¬mÛ«ná°nà®tà±rå®mâ¬tÝ°qÞ±oâ®páªmâªtä­xå±oä±nàªuÝ£uå¯uÄ rפtá«~⯈㯇â­zà¨yަ߭â±߬zá¬{ã«{á­|à®~ß­ⵇ嶊ూݲ‚᱀ݭ~ݬ€â¬€ß¬|Þ«|ݨu×¥tÚ§pÛªqÛ«{Þ±㶆㶅ᵂޮ}Þ¯và®{Þ¨{ܪyÜ©wÙ§wÛªzݨ{Ø£v×¢uÙ¤yÙ£vÒqÑžt֬ᶈ崄߯|Þ­|߬}Úªx×£uÜ£zܦ}Ú¦xÛ§zÛ©|ᭀ⫅ߦ|Ý¥xÝ¥sܦrÜ©xܧu×¥vקpÙ¦tݧ{Þ¯|Þ²ƒä´‡á´‡Þ²‡â³‹æ³Œâ³ˆÛ¬~ÙªyÖª{Ô©|Ö¨vÙ¨vÙ¬}Ú­~Þ²€à´€Ü¬~Ó¡pÒ©vඅ꿉éÁ‡å²â§}ߪ}ÛªuÙ¨sÜ«~ݬ‚Ü®ƒß¯†á­ß®yÞ³{ä·‚â²ß±{ഇݳ…ܲ|Ý®ƒà¯ˆä±‰ç²†æ³„å°ä´„Ⲃ߬}ä²}ä²{â±á²ƒà®|á¬xܧ{ןsΖgËZ»†O»„KÀŠSÄ’XÅ”ZÈ›[Ñ¢eÔ£hÒ bÓ¡cÖ¥pר~ÓªÖ¬|اxܦxâ¯}ä¯{ߪsݨmߨsÞ¨~Þ¬~à¨uݦrݬqàªsâ©uÝ­rئnØ¢m×¥qÚ£qߪwá°|á«vâ©nÞ¨qÛ¤nÜ¢kݦrÛ£iØŸ^סdئoÞ¦oܤtÛ©{à¯wÝ­sÚ©sÝ­sà­wàªvÞ¨pݨqݪyÚ¨yÔ¢rÑ£mÒ¦tÖ¨xÖ¨rÔ©tÙ©rß°yáµ€â±yã³yå·~嵃峆峄ä³ä¶…㴀䲀á´~޶්䳈á±â²}ä°‚ß±‚㺄黄嶀äµä¶{á´ß°à¯zⳀ㳆汃ã®|á²|ãºåº…㳄ⱄ䶄߳ƒã¶Œä¹‹à·‡ä·…丈渇è¶è¹ˆè¶Šåºá¼yß²{â²~ä¸vä¶pä´{âµ|á±uã¯xå°vç³{å¯wá¬jã®næ®nâ¨jÜ©nܧhÝ¡_Ú¢]Ø£`Ú¢g×¢eÔž_Ò˜]ÒŸbןgÔ™eÓŸeÔ¢eЗ[ΕUΓYÑ—`ÑœeЕ`ÓšaÚ§hÛ§jјcΔcÍ•[ÈSÈYÊ“\ΓTЗVК`Ò™bÒšfÒ—fÓšgÕi× iÕœbÏŽWË‹RÌQÍVЖcÓœgÒ™cןhÖœcÏ”WÑ•VÑ–\Í’ZÊŽXÌ’SÍ•J͘TΚ[Ì•TÊ’VÏž_צeÛ¡eÛ£dצjØ¥nÛ¨jݬlß±vÞ´uà²sá®yÞ¬pݬmà­tÞ¬tÜ­pÝ®wீޭ~Ù«vÚ«xÙ¯}Ü­tÚ¨vÚ©vÛªmØ©oاnݪvÙ¦zÏ›c˘\Ì•\Ïš`ПgÑœeÔš]ÖšWÚ¡fÜ©jÚ¥hÙ£hÚªlÛ¨oߪkà°yã²yä±qâ«qà°rÞ±vØ©sØ©pÙ¨sÜ­uܵwÛ²vݱxß³yݬpÛ¬qÞ±yⰀ嵃â¶à²zÝ°tÜ©vÙ¨uÔ¤kÊ•YÀ‹WÅ’]ÍšbÐgÓ¡iÕŸc͘\ÈZÄŽXÑXË•\Ð^Íœ^Ê›YÒYÑ™VʘQÍ™YÒ™\Ò›]ÒœeÕœfÙžeÛ¤hÛ¨lÜ©rÝ«oÙ¨nÙ§rؤmÕ¤iÙ¬pÜ°uÝ©vÚ¥nÙ©jÝ®pß±r߯qà«kÚ¨fئkÛ¤hߧhà©oܬoݯoÞ®qÜ¥kÒ˜b̘]ÔdØ¢hÕ¡e×¢gÚ¥dؤaØ¢`Ú¢^Ù¡bÚ¤hܦdÞ§há°pß±kã­mä®là«gÞ¬mÞ²qß±uß®sã°kÝ®fÚ¬là¯qà°ná¬mâ­má±lÞ¯k߬mã­oàªoݬkâ¯kæ®pç®rã«pÛ¦oâ«vŸv߲ᰅ⬀á¬à©vÜ©sÞ«€ß®~߯€â¯‡â®€â°~Ⳇ㵇Ⳅ䲉䳌ܫج{ß²…ã°‚â¯}Þ¯~ܧyÞ¤zÞ¨€Û¨xÚ¦rÙ¤mÙ£pÞ¯„㵎巈Ⳃܪ{Û§z߬zà®wß®sܬyÜ®€à°~Ý©zÚ¤uÛ©vج{بwÞ­tÜ®}Ý®„淊嵆ܩxÙ¨wܨzÚ©yÚ§}ݬ…á°~à®ݯ‚ß°㶈漌㹇Ⲅⱂ㱈䰋ᮃ߭}Þ°|à°{á®ృ㶅㶅߱Šá²„ä·㷇ᲃڨwÔ£qÓ¢pÑ£vÙ­uâ±uⳇⳆà²}ಂެÓ¥vÒª|Ù­zܯƒå»Œç¹‹ä°‡â±Û«|ܫಂ岀å¯~ã²æ³ä²{ß³~ᵈᴄá²ß¯â®~á¯~à°~å±~汇沂æ¯zߪxã°}Ú¥sÊšjݨså¬xà¨zÞªzÞ«|à­uà­sݧrÒ›gÅŽY¿ŽY•`ÌŸjÕ¨tÓ¤rÓ¥sÔ¬tÒ«vÕ«uØ­vØ®~Ú«vØ¥mبvÚ­yÝ®wà«{à­yÝ«sÛ¦tÛ¦sÙ¦mÙ¦oÚ£nÙ¢iÛ§nÚ¦mפmݨqÛ¦jÖ¥iÜ©lݨoÝ­~ೆà²~ß®rݦlÛ¦nÝ©oá©oݨpØ¢oÛ¢pÞ­zá³~â³xã´w崂綀ã¯{Þ«{à°zä±~â°…â¯~å²|崀㱀ݮ}Û­{Þ­Þ«€Ü«á²~ä·~嵀約紇幆罃æ¶á°}â°}ä±~à³|᷃七䶂嶀ä²~⯀Ⰲä¯}å²y⺅淀å®}ß®ƒà³€á°{á­xà°yã³{ã³}â±xß®t߬zà²|ã·€á±{Þ°zೆ嶇溆湈綆㸅㶇緃æ¸|㺅彈䷂â´}Ý­sß«{湈è¹~è´vä®vá¨rߨuà©mâ©iá©qÛ¦oÜ¥jݦmØ¢nØŸcל`ÕœdØ hÙdÕšZÕ›`Ø¡hØ \Ñ bÑžjÖ¡jÞ¬xÞ¯zÙ¨lئiÚ¥iקoÔ¤rÔ¢oØ©tݳ}Þ±|×£oÏ jÏcÏ•XΘZÏša͘bÒ¢oÚ«yÚ«uÛ­zÚ«uÙ¨vÙ¦|Ö¢uИfÊŽWÇUÊ”_З`ÔœbÕžlÔ nÒ¢pÓžhИbД`Ñ”_Θ^Ε[Ï‘RË’OÊ‘QËLÈHÅŒKÊ’UјXÎ[Í‘\Ϙ\Ñ™cÔŸeØ¡kÛ¢kÙ¤cÙ¡hÛ¦oÙ¨kÕ£mܨqÝ­nÞ­nâ²pã¹vâ´{Þ«xÞ¯zÝ®{Þ®zÞ°~ܪzÞ¬}ß±‚߯~ⴇ㵉֧sÍiÎœlÎœhÓžfÑœdÌ–_И_×fÔœ`ОaÖ£jÙ dØŸeÞ£hÞ©hÞ®kâ­oä­tã´yå´vß©iÕ¥dÕ¥mÙ§qÛ®rÛ°xܱ}à³yä®{ß­~Þ¯yá®áµ}à¸xã´|à²tÛ¯oÜ©mÚ¢hЖbÉ•_ÑŸgÖ£lÖ£lبpÕ¨nÏžfÑœfОcÌaÍŸdÍ¡cË_ÉœbÑŸaÑœYΙZÏ›^Óœ`Ϙ`Í•XÏšSÑ cÕ¥gÖ£`ܦgß©fÖ£cØ¥jݪmÚ©mÛªiݯpà®và«wÝ­uÝ­uß°xàµyܲqÖ©iÔ£gÕ¢eצhÙ¨kÚ¨iÙ¨jÛªsߨvÖ¢kÑžbÖŸd× _ןgÚ£pÛ¦iÖ¢iמh× \Ø¡ZÛ¥aÚ¦aݤgß«kâ°hã®já¬há«lá«oÞ¬qà¬kà«há¨ná¨iܪgÞ«já®nà®nݨlà«là­oÞ¨qâ§mâ§nà©oâ­oå«tã¬pã®páªlæ°qÌ u䮇à©Þ¦yݦzÛ£zÛ¥{Þ®€á°€Ý¯€Þ¯€â±ƒã°†á®{à®zß«|Þ°~ݲ…Ùª|ÚªwÞ²„ãµá²Þ°à¯{ᰂⱇஅ߮|Þ¬wØ©vÚ®~ݯ„߯…䲄ã«à¬}Þ±}Þ­|Ý«{Û¨zÙ¨vÚ°{Ú­~Þ«€à±ß®Þ­~᱉߲„ܯ{ಇ䳇àª}Ý©xÙ¦nÙ¦sÞ­{à²|ூ߰‡âµ†å´‚㵀幇帉䶉ç¶å³…ä³~Ⳃ߮|á®~ೇౄீ߲~à³á¯Þ®}ß°‚ã°‡ã²ܬvݬxÚ¥yÚ¥}൅绊궆䵄ް}à²{á²Û¥~Ø¥tÓ¨rÔ¨{ݱ‡ãµŠä´Šâ²ƒÞ­zá­~䴂巊綅à´zÙ®{ܬ}á¯|à¯}à°yã¶ãµá±{á¯yâ­ã¯~ä²yá±zÜ«v×¥mݪqÔŸfÆ^×nÜ¥nÚ¥oߪsÞ­xÜ©xà¨sÜ¥pÙ hÑ›dÍlШvÕ¯}Ö­yÔªxÔ«€Ð¥wÉžkÉ¡jУlÓ¦rبv× oØ¢qÞ­vâ®uá¬wߨ{ݪrÞ¬tá«|Þ©uݨoߧmÜ©mÛ¦tØ¢mÕ¥mݪvݧyÚ¦vÛ¦qÞ§u尀ⵅà³Þ°xÜ®vß²zâ³tâ®sä«qá®oß°w䳀七浇汄帄幄à­xݬ{ã³è¹†è¿æ»‰ã¶„繄躉Ⲅޯ~ã¶|巄嵊蹅缅纈鸉蹌佊翊幋á±ß®„㶊仆师趋䶄ⵃ㴅á²}à¶七浄åµä¶ᲄޮ‚à®ã²~ä³}ã±uâ°rà±yà¯wáªtܪwß°uä²p߯wÞ¯wâ³så¶}ã±}ß²zà³}á±zâ±}å³ä²yâ²}ß²~Ý®{Þ­|ܪtÞªv沂æ¯{á¨qÞ¥h×¢i×¢oÖ iÕ¢nØ£qÖ¢mÕ£jסjÕœbÏšZÒ›\ј`Òœ^Óž_ÓžeÙ§oÙ¬uÙ§vÖ¢t×¥vீ䵇᳄á³}ä·~丅൅ݵ~Ü´|Û³{ߵ㴀߱|Ü®{שtÕ©rÙªyÜ«wܬxÞ²€Þµ}ݲwÞ¯{ݱ}Ù¬€Ù§~اxÕ¤oÓœeÑœeÓ kÕ¢nÖ¡qØ¢oÔ¢rСwÒŸoÓkÑœoÏoÓœjÒšhΘeÊ‘YÉUÉUÅ‹TƉTÍ“]ΗcÌŽYËRÍ”WДZЖ\Θ]Ï’WÌWÉQÏ’QÑ–\Ïœ\Ö¡aÛ£bÜ dߨoâµx߯rÙ¥g×¥lÚ¨nÙ«sÝ°pÜ«lÝ«tÞ­uÜ«xÝ°ƒÝ²ˆÔ¨}Ò¢xÑ¢qÌœlСpТmÊ—^Ë’\Ì”[Ë”WÐœdמlÒ–\ΘYןeÛ£mÛ£lÞ¦jܬj߬kå±lâ®lÚ¤lÕ£lÑ¡fÒ¡kبq߬pݬvÛªwàªsá±yⴄⲃ޳wß²qäµtà®z߬}â¯uߪnÜ©nÝ«wß«yà«vÛ¨tܧpÛ©hØ«iÜ©m×¥mÒ¡mПhÌšcʘ^ÏœbОgÏœbÓš`Òš]Ï•WÏ”ZΙ\ÑœbÖbÕ™XÕžbݦeן_Ô gߥhÞ¥hÚ¦jÝ«nà±tá±tÞ°qÝ­qá¬xâ²xß°uÛ¨qÖ¨oÕªuØ¥oÖ¡lÕ nØ¡pÚ£nÜ£kÔ bÔž\Õ ZÍž]ΞfÖ eסdÖ£dÖ¡gÕžeÕ¢]×¢^ØŸ^Ø¡^Ú¤eÝ¥mà¦nã§fâ¨eݨgâ¦hã¥jÜ£eܦdÛªiݦmà©pà«oá©ià©hàªpá§pà§hÞ¨jà¦jâ¦häªnå«såªqå©oã¨pç¯uÈvే߭Þ¬|áª|á©zÝ­…Þ°†Þ­‚Û©}Þ©xâ«{ã­{Ý®wÝ«|ܧ€Û­~ßµ泄ⱀݰ|ß°‚ᵈᶌ氉淈么䴄丄ᴅت|׬{ݰ಄ⶈ峆᱂ẅⳃߪڮ„ܱ€à¯ß­…ݯ€àµ‚ä²~â±}ⱄޮ‚Õ«|ݱƒä·ˆà²á±€à§€Ú¥{඀䷂߮€á°ˆã°†ã®ã±æ²é²‚涄涅鳇趂ã¶}᳅ⱂްzÞ³Þ®ƒÚ­}඄㵆â±ã²ƒå³‚䵆䲊岈㰈߰†ã²‚Ⰵಀ湂㶇޲‡ä±…簄局ܩzÖªܲƒâµŠä¶‰å²á°„ᲄ嶃çºåµ‹ÝªxÖ¥rÙ¦uÖ¤tÓ¤pÙ©tß°~᳂߮}ß©sÝ©rبlÚ©oݨsܨqÛ¥lؤjÓ bÌš]ÏŸcاkÚ¥pÛ¥tÞ«wß©uà¨sÞ¦tÙ£lפkÔ§uѧtÒ¤uÓ¡s΢mÉ¡pȘjÆ•_Æ™aΣlÛ«xâ°~á¬{á®絃糄äµ}å¶vä´|ä²{â²vâ­vã©vâ®vå°vâ©vÞ¨vß«tß«yݪuݬrÞ­{à®ã´ã·ß²‚â³{å´å±…ⴇ㷄消㷉㷉湌渊渋赌Ⰶ㴅㷇ᵅⶂ䵈踆ãµ~ᰀ崆䵃àµ}ß´~á³}äµ{㵂洉淃å»ã¾Šä¾Šé¾‹é¹‰å·‚ã¶{ß°}Ý°ƒá¶…溄渂䴂䵀䴃ä´ã¶鹉빉æ³ç±æµ†ä³‚ä°}ã³åµ}æ±{ç±è´âµ|Þ¯vá¬u߯xà¯vâ¯yâ±{ä³}á±{Ù¥lÚ§iá´tá²á¯{ã­pá¬rá­rÜ©nبtܨyÚ¥qÖ£mÞªtÞ«sÚ¤lÙ¡jݤpÞ¯vÚ¬nÚ¦pÚ¥rÖ¢nØ£lÙ¤nØ¢mؤlÙ©oؤnÖ¤mÚ¬qÞ®zୀ߭ƒÝ«{ܬ}ß®…ᲄ㺂庄漌低滌乇െⶄෆ߶ˆã¶ˆã¶†à¶ˆß¯‚ݯ~ഃ帆Ễฃⶇಃݯ~ܲݲܰyÚ¯yÛ²~ß²}Þ°{Ü°}Ú°~Ú¯x߯zÛ«~ÖªxØ­zÚ¬~Ú©|Ù©{اtÕ¢pÕ¡sÓœlΚbÒš`ИcÎœhפsØ¥oÒŸfΚeÒœeÓŸhÍ—cÌYÍQÌTËŒTņKȇJÌŽMÍ•ZϘbÕ™_Øž^Ö¢iΛiÊ•^Ñž`Ö¤cÙ«mÞ¯vÞªoÝ©nÞ¦uÙ§tרrÙ¥yÕ£tÕ¢kÒ¡hΞiÖqÙ¡rÒ¡iË–ZÈ‘[Ì“dØ£oÛ©gÒ™]Ó™fؤkÙ¨fÙ¥`ؤhÛ¡jÜ¡là©pã°sà­pÛªsÚ«qÕ£iÕ£oÙªvÚ¦rÚ§lÚ«oÚ­xß°}ã²zß±uÚ®}ãµ}ã³vá¯xä°{ã­vß­vß®vá²yã±zܬuÝ­sÞ¬rÞ­pÞ¯sÜ«qܨkÙ§cО\ÐœbÓœaÌ™]ΚaÒ›gÍš\Í—YÑ–^Ò`Ö¢eסdÕœ^ÙdÙ¦gÐœ\ÏšYÙ£]ܦcبfÚ«nÞ¯t߯rÞ¯mݪmߪuá®uß°pÝ­qÝ­rß°tÝ­nØ¥cÕ£hÔ¤o×£kÙ§hÓ§h΢aÏ¢[Í¢[Íœ`ÍžjצoÞ©nÜ«sß­pÙ¡`јVК[К^ÔcÙ gÛ¡]à§há¨pà¢gߣfߣhß¡lÞ¦kݪbݦeݨiß­fà¬fß«gà­nâ¬vã¨tá¬ráªpä©rè°xê³uè¯ré­sæ­né®nÇŸs㬂ީެ~â«~ᬆᬄâ¯}Þ­ß­‚á­ÞªÜ¨}ݦvß©yá®~ఃᰇ万ⱄܨƒÛ¬…á´…ã´‡ã°ã±ƒâ°‰á²…嶃㳃ୀޯ{ݲ~ß²…ಆᲅ߱…ᰇ䰅䱃㱀á°ⱄ߱…ܱ‚Ý­{Þ²zá´â¯€Ù©uÓ¦rÙ¯z㷂消帎᳇ެã°å´‚ⲃைà¬~Û©tÙ«}Þ°z߬uâ¯}䵂ç¶~é·~è¸|ç´}䰂ߨ᳄ⵀá°}嵈è·é¶å³…á±áµâ¶‚䶃帆ä´Ý«wСnÍ¡oÛ±~à³}Ý«}ß«~â±€ä´Þ­yÞ«yà«{Û¨uÝ®râµ}á²~á°xâ°uã°{â¯{Þ©uסpÖ¡oÒ™iКmÜ¥uá¥sÛ¢uØ¡o×¥bÔ£hÕŸjÙ¡f× iØžmÙ pÖžlÑžgÊ™bÉœeצtÞ¤zÞ¦zÛ©~Þª|á®xÛ©tÚ¢rÙ¦wÓ¤pÊ hŘfÁ”`“bÁ”gÁ–^Æ–\Ëiئoà¬xç³êµ„å´à´Ý³~âµ緈䷃á³~ݬzÝ«wà­wã¯zæ°zá®yÞ«yâ±}à®}ݨuá¬và°}á®ã±ß°yà¨z䭄嶊â·â´ˆã¶…å·Šâ³…Ý°ƒÞ°ß°€Þ³á³‚ß«~Ü®€â°â°ݯܲƒã¶†ã±}ݮ߰…ⵈ߰„ߪ|ݪ}Úª{ݬ|ã´‚æ³â²€Þ³‚à´ä¶}䵀䶇Ⳃڮ|צvÖ¤tݱ~å³ä°zá³yß°~â¬}æ°~浂å´{â²{ä±è²yäµá®{â­tà¯xß«và­tâ°yà°zߪuÝ¥qܧtÚ©rÜ©pÛ¦wÛ£yÝ¥rÓŸeÕŸhÞ«qÜ«lܦoß©qݧqÙ¦kצlÚ§pÚ¦nÔ¡dÒ`Ø£mÛ©yܨvß­z㶀繈幉ᶄ߲߯{à¯â°„ã´~â·~ãµá²⸄㶋᳊ൂà°{߯zÞ´‚㸂踂绉佈乂ീ޳„ÞµŠÛ°†Ý«ƒÞ­€Ý°ƒäµ‰æµ†Ý´„ܯƒÜ­€Ü°ƒà³…â·„Þ¹Šá´Šã¯ƒà­~ß³|à¶Þ±‡Ü°‚â³â³Šß¯‡à°Û°yܲ{ß³Þ²ƒÞ°„Ù¯Ú²‡Ý´ˆÛ³~Û­|Öª{Ö¨yؤvÓ¨tÓªt×¥vÙ¨xß®€ß®€Ú­{Õ¨oÓ£pÖ£tÑŸgÏ—gÏ–gÓgÑŸcÈ”TÆ‘PÅŒUË“\Í•UÉŽUȉRÅ„MÁ†QÅŽTÏšfÕŸnÙ£fÞ©iݨjÛ¨pܪvتoÖªpÚ©vܪ€Ù«{ئmÙ£pÛ¬xÞ¯|Þª{ئjÓ c× qߪ{Ù§wОkÔŸfÕ iÕeÓšaÔŸfÕŸe×™\ןbÛ¦mݨtÜ«qÞ®qÝ«lÛªnݬvÛ¨oÕªiÖ©nÖ¥mÖ¨hÛ­lÜ«sÛ«pÝ­mתmÚ­uáµzà²tá­rß°sß±uß®vÚ¨pÚ«nà±rà¯rà­mÞ¬qÚ¬pÛ©iÚ¦jÛ¨tÚ£kÑ`ÍcÑœdЛbÏš`Ñ™]Ñ™_ÔŸc×¢fÖœ_Ô™[ÕžaÑ\ΙWÏ—YÕ™_Ú¢gÚ§dÙ¥jÛ¨kÚ¬iÚªiݧkß«já³oà±rÝ«mÞ¯uÝ®tÙªlÕ¦dÒ¤iÖ¨uܨqÚ¥hÕ¥hÑ£gÏ¡gѦmÕ©oÚ¬wß°xÞ¯oݬmØ£bÒ˜]Ò›bÑš`Γ\ј\ÖšdÚ iÞ£gÚ c×¢eÙ¢iסgÚ¡jÚ£h×£e×¢bÙ£jݦmà§háªnä°rã®vâ©vâ©oç­sí³{íµxé³oáªmÝ¢jåªmÂpå¬ãª‚Þ®Û­{à®xã¯yá­ä²~â·à±‰â«ä­}â°{Þ±~ⱅ㯄ంⶅá²Ü¬}Ý­}á´á²„à®ß³uá²}䰃Ⲇá²â²xã°{ç²~ãµ{ã²x⮀ް„߶~âµ~岀䳅䳂æ´äµ„ᲃܯzÜ®zâ²á«ƒ×£vÒ¦rÙ¨yà¯æµ€ç´ˆá²Šß²‚á²᱀ᰃⰀެxبzÚ¨{Ü­vݯ{Þ±€á±~à¯{à°vá°zã³~ç±ã­~㳀䯀ã®㶀幃æ¸å²~᱂岅ã¬Ü«tß­uã±wâ®qÓžjÊ›oÙ«wà«tÛ¡pØŸeÔ£hÛªuá¬{ᲄâ¯}Ú¥qÚ©rá¯vÞ©{Ú¨vÛ¥mÖ pÙ§oݪfÙ¤lÚ¢sסiÕ¤v߯|Þ®oÛ¤là§kݤgØ nܧvߪsÛ¢r× qÖ¦rؤsÔ¡oÌ›aʘ^Ó¡kئnÙ¨sڪݩyÙ¤oÔ¢qÙ«vÞ¬rÔœbÆbÁbÀ“^ŘeÈ–fǘ^УgÚªrÞ¬r߯zâµ|ç·…æ´ˆÞ²~á¯}æ±àµ|Þ¯}ß­|Ü«vݪ{à²}à±|å²|å®~á¨zã³å¶„â­ంⶆഄ㴅㲃ݲ|Û°}à«}â®|⯅⮋ⴆá±ئuÖ§yÙ«zÙ§pݪsܪpݬ|᱃á«|Þ©yß³弋溆à±~ݯ}ᲈ䯄߬|Ü«{ئvÚ«uâ°yä³{à®rÚ§pܪ{ã¯}å¯â°{à°pß«xÛ¥tØŸkܨvÜ­yܨpݧmÙ¢kÝ¢nà§mÞ©mߧoߨnÞ®tâ¬và§sÛ¨qÛ¦nÙ£jÛ£nàªrâ®uß©qݨpסpØ nÞ¤oݧsÖ¨lÖ£hÞ¤jÞ§gÚ¨oÞ­xߪnÙ£jØ¥oÙ¢oÛ£sÝ«vß«sÛ¤qØ¥mÜ«sß³}Ⳁ᳃ෆ䷈輋辒ç¶èº‘껇涄繎鹋师ç»å¹Žè½ë¾Œç¶‡á¶†ß¹„Ḃä¸渂三淈渇㸇à²|ݱ{Þ³…Þ¯€Þ«~Þ®€Ýµ{ೃ᳌۱‚Ù¬zݳzà´á°ƒáµ†ã¹ˆà¶à¸乊ã·åºŠåºŠá¶„ഉ᳊㴅ᲈޯˆÞ²†Ý²Þ²Ü±ƒÙ©zÚ¬{Ûµ޵හ۳٭~Û°zÝ­xÛ¬yÙ¯wܯఇආݳܪxÙ¨xצzÕ£vÕ¥uÙ¦vÜ©{Ø«{Ô¦sÓ¢kТgÓ¥qÏœhÆO‰IÄŠ[É“cÒ£nÙ©uÖ bÕšXÙ¡cÖ£hסgݨrÝ­uÚ¨qÛªtã´{èºß´zÙ­x᳃ᵇݲܭ~Û«uÚ©uݬvÚ©nÓ kÓjјfÌ•^Î`ÖŸdלbÒ—]Ô™[Ú£hÛ¦gÝ£aߦnáªká¯ká­vÝ«tØ­qØ­pÛªoÙ¨gÕ¦fئiÙ¨kקgÖ¤eتkà°pâ­t߬uà­pâ¬wÞ§yÕ¢jÖ©qÝ°zÞ­oݪkÞ©nÞ¦gÚ¦gتtÝ­uÞ«oÛ¦j×¢gÓ£iÓ¡mÖdÓždÔ¤fØ£eÖhÓž^Ñ›[ј\ЖTÌ“UË‘TÏ•RÔ™^Ø¡eبeÖ¥bÙ£fÙ¤hݧfß­mà±oá¬kߪkÞ­jà®jß«kÚ¨gÕ§g×¥oÙ¨lÕ©fפjÖ¢mקnÜ©wà­xä³wá°|Ú«wÝ­uÙ«sÖ¦rÞ©vÞ¬nÒ¨hÑ¡gÔeÑfÛ¢gݦlÖ¨mÙ§pÙ¦sÖ¤mסcÕdÒŸh×£gÜ£gØ¢`Û¤eá¨mÞ§pá«ná­qáªpé®nç¬pߤmצpܪtä°rÅšq᱄á®~Ý®~Þ¬€à©~â«|á©vߨvá®{á°~â®á®}߬tá­vá±~Ý®}Þ®~â²xâ±tÞ¯vÛ­xÞ®~Þ¬|Ú©uݬ{á«~á®zß­{ß«rà²tà±yà¯zá²}à°ß²ƒÞ³€à°}â¯vá¬uÝ«zà­zã¬zà©tߨvÞ§€Þ©~à®~߬{Ö¦rÔ£p×¥rاvÞ«|ã±}á¯pÚ¨pÛ§uݨuݧvܨzܨuئnÖ¦nÕ¤iÑ¢lÓ¥qÓ¡nÑ¡iѧpÖ§t×¥rÜ«qà°uⰀ߯}Ú¨xܪ}ݯ€Ûª{Þ¨uÞªzÜ©zÛ¥lÕŸjÖ¢oÛ¨kÚªiÕ¢jÒŸjשqשuסnÔžlÑk×¢pÚ¨tÞªyâ°{Ú­rÛ¦kÞ¥tܧzÚ¦sÖ£mפqÛ¦uß«uÛªvØ©tÛ¬yÞ®‚á®~Þ°yÞ°|à¬vß©tߪ|ß®|à³Þ°|Ü©sܪtÝ«{ܨ€Ø¢oÔžjÖ qܤvÝ©}Ù«Þ©}Û¦wÚ¦sÞ°xß±}Ú¤qΛdĘeÁ–eÈoÒ qÓœj×¢sÞ«xà¬yà²yᵄ㴅䶃ⳇá´ß³~ݬ{߬tã«{à§Ü©zß°€ã°„â²ã²{â¯zä²…æ³…à®|ÛªvÜ°|Û²ƒÞ°ƒåµ„ãµß±|ß®yá¯|ã­€á¯Þ®€ßªvÝ©rاvÙ¦qÕ¢oÕ¥qÚ¨s׫rݱvã°xÝ®rÛ­yá±â³vá°uÝ«zÝ°wá­sߦwܧzÛ¥lÛ¦oØ¥t×¥nÙ¢kÖžmÙ¦qÜ©qÜ«uÞ­sÞ¥qܤs×¥kÚ§oÛ¨oЛ\Ï™]Ó˜eÒ•cÔ›hÔ¢fÓ£bÔ¢gÖ¡kÙ£kÚ¤lÛ¢lÚ¥kݧlà¨mß«oÞ¬tߪ|ß«}á²|à¯wÜ©uáªsâªvÞ«uÜ­uÝ®|â­{â­zÞ«~Ü©uàªtß«pÚ«nÝ®|à±â²…æ´…â¶|㹅龋绊䷆âµ~á·}å»~䶆â³ç»Šè»Šå¹‹æ¸Œæ¶Œä¹Šæ¸…æ·‡ä¼è¾’æ¹â¸†â¸‡â·‡ä¸ˆãºˆà¹‚㶃㵊㷄ã´|á®|â°|â´yß´Û±}Þ´}ß²„Þ°‚Þ³€Ü³€Þ³…䶄洂䶇㽃â¸á´€â¶ã¶~㴌ⷑ޴ƒß°}ⵅḊ㵉ⱂà¯zݱÞ±€Ý®}Ø«|Ú«}Ú®}ݳƒâ´…â´‰Þ·ŠÝ³…Þ°€Þ±|ݱß³ƒß±ˆÝ±†Ú°~Õ¬zÖ¬wÚ«zت{Ø«zÚ°ܱ…Û°‚Ø­|ج}د}Ú­}Õ¡rËšhÉŸkÐ¥rÕ©v׫}Ô£uÌ•dÉŽZЖZÑ•[Ï•ZÓ _Ú¤nÞ¢lݧnß°wß°xÛ¨wÙ«wÛ°Ý®€ß²zܯzÙ¨|Ù¬|Û°|Ù©zÚ¦vÙ¨oÕ¦kÒ¥kÖ¦kÚªrÜ©vØ¢mÓ dÓ¤eÑ¡eÓaסbØ¡dÜ£kݪuß­sâ¬oá®yã±zã®rÞ§nÚ©uÚ®uÕ¥fЙbÕ¡mÚ©qÚ¥lܨmÛ©qØ©mتeÒ£fÓ¢dÛ©kÙ¨tÕ nÕŸgØ¢jÙ¦hÛªkà­uà­tئjÓ¦fÖ¨g×¥kبmÙªjצmÙ£hØ¥hÕ¤hÕ¢jÚ¥oÚ©kÑŸ`ÌRÎ’TÓ˜[ØŸ`ܤlÙ i×cØ¢dܦcߨfÞªgئfÖ¦jÞ¬jâ¯qà¯pÜ©n×¥mئnפmØ¥hÝ­pÛ­sܱrß³wà®xã²xã³~á°{á³z߯uÞ©sß´uà·sݯwØ®uתnÕ¤gئtÞ«vÞ¬nÜ©pܨnÛªpئnÔ£iÔgÕšh×¢lÖ¡kØ¢kܦnÞ£nÜ¥lפhÛ¡hÝ¡kØžiÖŸjÜ«qâ±vç²tÄšmݧxݧxߪtߦoÝ¢lݨmܪmÞ£kܦnÚ§q߬yã¯|àªuà­vã¯vß©tܧoÛ¨lݦsá§zߥzÝ¥vÞ§oÛ§nÝ©rá¬sà«vߪ{Þ©yÞ©zá®â¯z߬xÞ«xܦtØ¡mÖ¡hئdÚ§hߪuà«vݦnÚ¥mÞ©qÞ¦pÚ£oܧtâªsÞ¨qÛ«tß­vÛ«vÚ¦xÝ©yá¬uâ¥mÚ¢lÙ¡pÚ¡lÚ¤mݧtÛ¢lÒšdÌ•\Ê’VÆ’\Ä‘^Æ‘]È”`ΘhÌšfË gÑ¡jÖ£lÙ¤qÚ£uÙ¤nÕ¢mÏŸpÑpמoÖ¢lÒ¡bÐœcÕ gÙŸdÔ¢fÒ bÑ›dÑ lÔ¡jÕ¥oÝ«|Þ«{ݬvß«}ߨyܬxÚª{Ü©uÞ©rÜ¥vئvݬyá²€à²wã±rã®zߪ}Ü°|ݳ€á±~ã°yⳃⴃ߱}ß³‚ß±‚á¯|ã¶xä³và±⯀䪄ީ|ݬw߯zß°zá®~â°zå·€çµå²}ç´‚è´‡ä°~ß«uÔ¢lÍœhÙ§nâ­oÜ«rÞ¯{ã³}ä´‚ã´‚á±ᲂߴá´}å´zã²xâ¬xâ¬uá²|ã³zä³wà±uÞ­vã°ⵂá²~㱀߲{ß­tߪtß«tÚ§oØ£pÙ¥vÛ©wݬtà¬wá²yã±|ä«~á«vÞ¨lÚ¦pÚ¥oÙ g× eÕ gØ¢mÛ¤qܨoÜ­rß«páªvâ©{áªyá­{ÞªvÙ¨oÚ¦kÚ¨nÜ®oà¨nÝ aלaךhÔšaÓ—bØkÔ¢iЛj×›hÙ¡a×£jÙ¢qÝ©qÞ§qןjÕŸhÖŸcÕ^Öžc×¢nÖ§iÙªjÛ©qÛªrÝ«nÚªnà®wä³|ã±~ä¯á¯{Þ°xà±}㱆á³ãº„ç¸zá°~à²ã³€à°‚㶄æ²â­}ీ䴂䷂⺈ᶄãµæ·è¹~麅꼊êÀŽëŽ鼊溇渉涌⸈三躑輌繅ãµä²ƒç·ˆè»‡ä¹Šß¶‰Ý²}ä²zåµ䵀汄Ⳅá¶~åµ|ã´âµá³uá±xã¶}á·~ಀ߱|߯yà¯}á´䶃ೀޱ€â´€ã·€â´|Þ±wÞ²಄ᯀ߯~ݯ}ܱ~ݲ‚Ü®ƒÜ¬‚߯‚à´~Ý´Þ°|ß°|Þ±}Þ±zß®}Þ«}Ý­zÛ°~ޯ㶈ฅߴ€á´„߶…àµ}âµ~ᵂ᳇ే߱}Ü­Ø«~Ù°€Ú°~Ù®~Ù¯€Û¬wÞ«vÚ­€Ö­~׬|ׯ{Ò­sΦrÎ¥wÍ¡sÉšm“eÁŒ`ÀŠ[ÁŽTÇTÇ‹TÈŒNÌQЖ_Ø¡gܧfܦoפoÓ hÓŸmاqÛªvÝ®zÞ°tÙ¨pÔ¦tÙ­᱂ã³ß°~Û°yÚµxÙ°xݱᶄà±}Ú©vÕ§oЦiРcÖ b×¥eפeÛ¦hà§oà¦tà«váµvâ³pá¯qà®sàªqÛ©jÓ§eÒ¥iÛ¬oÞ­rÚ¨qÙ©nÙ©kÛ©gÕ¢bÐb×¢k×¥mÕ¡f×£kÙ¦pÚ«oݯqá«oݪkÙ©jÚ©tÙ©tרoÛ©sܪsÙ¬qØ¥nÚ¤jÙ¦gÚ­oß´yà²|ܧoÔœ\Ï–RЖVÑžeÙ¦qÚ¡bÕžVסbÛ¡aÝ¢[Ý¢]Ù cÙ¦nß«pãªhâ±l߯lÛ§kܪt߬vÛ©qÛªnݬtݯxÞ¬vß­rá¯rä±vã³{ã±|ã³|á³yá³tá³vá­{ä°yã°vݬsß±vᴀᰀà¯vܬtÞ«oß­pÞ¯sÛ©eÔŸ_Ô£mÝ©sà­tÞªyÞ¬vÞ±mÚ©kÜ¥nÛ¨hרiÙ«uÞ¯rá«oãªpÀ˜gÛŸrà¡rÞ¡mØ jØŸkÚžlÙœdÕœ^Ù^Ù¢dܪz⮀â­xàªyÞ«vÞ§jÝhØ›nÚŸuÞ©yߪ|ߨv߬tÞ¬tà©yá«|à¬wߪzà©{à®à²ƒß¯xÙ¦m×£nÙ£sÖ nÒœgÖžnÙ¥vÛ«zÜ«xÝ©uܨwÚ¥tÚ¨nÞ¦pÞ¦tà­xã«~â¬}á²|á«ݨ}ݬ|ߪ}ß­zÞ¯xܪuÞ¨jݨlÜ©oÞ¥l×hÑšiÖ—gÒ—\Í™^ÐœcÒš]Ï’^È’bʘbÌœkÔ¤uÜ©vÛ¦sÙ kØ¢oÓ£pÒ kÕ¢jÔ£gÖž`×gסqÓŸhÑš`Ò™`Óžh×£rÚ¤oÝ­|௃ã®~䳂å´à®yÝ«~á«}ß«xܪyÙ§{Ý¥}ᮂáµà°~á®}â®}ߪ{ÚªuØ­~Ⳅ峂â°~â²ã°„㲃ᵀ᳀ä±æ±‚㰃ഄâ³ã­~ã°ã´|ã¯zâ²ä·…å´€ä´{ⳃ淋崅߲€á°{Þ£qÙŸsݬ~Ü®xÞ­zä¯ä°|ã²yå²}å¯â«zݪvÛ¥xݤrß«và­yäªvä©tà­uâ«xá¨rÞ«mÝ®uã®|äªvà¦rߤtÞ£tÞ©qÞ«sÙ£oÕ jÒœeОbÙ¤kÚ¥qܤiÚ£aØžaÙŸhÙ¦lÙ¦mØ¥lÚ§jÚ£iØ fצiÙ¥mÜ¥pߪpá©rà¦qܤmÛ¡oÚ¤mÙ¡kÚ nÛ¥rߨrá¬qá«mÞ¥eÞ¡qÞ¥vݦmÞ¨iݪsÓ dÌ—XÕjÚ§uݯqÞ®o߯᳂ߪtÛ¥uÞ­zß®uݬyݯß´~à´}ค㷅å±å°䶂äºâ¸…â²…áª}á¬zå·€å»å¸ä¹ˆå´ƒß®~ß°䴇೉á³ã´„䶊䷇市丅ⵈ上丅ä³åµ‰ä¹…躂èÀŒç½‰æ¸…巆䳅帊伈㸆æ»è¿‘繃ä¶â²|ä²}ä·~ä¸à®xئoܬwâ¯{Þ­rÜ­sà±{ä²{á¯{Þ°|Þ²wܬyÞ¬€à°{à±rà¯qÞ­vÞ°uá²uà²yâ±~߯{Þ°vâ±}à°€Þ°uݱuݳyݪsÚ§wÙ°yÚ®rÙ©rÙ¨rܪuܯzß®tÝ­tÜ«zÛª{Ú¯uÛ±xÞ°}Þ°{Û¯wÛ¬xܬ{Þ±ݶ€Ý²xà®{અૂܴ߳~Þ²zá´}á±à²xÞ²~ܯÝ´zà³€à³}ß²|Ù­}۬߮~Ú­{ٮٮ€Õ­{Õ¥rËšhÄ•aÂ_¿ZÀ_Ã_ÂVÅŽWȉTÈIÄDƉLϘ\Ô¥fÔ _ÒYÒ bÓ¡eפkÛ¨tÞ¬xÞ«rÕ¦mѦs×®w×°wÙ­~ß«~Þ­}Û­vÙ¬oÙ¯vá¯}á±zÙ±vÕ©rÖ£pÒ¦nÒ¤hÕ£dØ¥bÙ¤nÙ£kÜ¥mܧtÝ©s߬nâ­kâ®pÞ®oÝ«nÙ§lÖ¨qÚ«rÞ©mݬlÚ«jÚ¦iÙ¤hÕ¢`ÕŸ\Ö£cÕ¦h×£hÖ¥fÖ¨bÙªbÛ¨mÚ§mÚ¦lקlئoÚ«rÜ­oÝ­qÞªsܨsؤlÖ¡iÔ¤mبsܯsÚ±kרdÕ¡bЛ\Θ\Ó¡iÙ¤lÕš[Ó–UÖœ]Ö[Ö›ZÖ¡[ؤZÝ£bܧiÙ§hÞªhܪmاhÙ­hÚ®kØ©lÙ®oÚ°pجqØ£pÛªnÛ±kÝ©mà«tÞ®wÞ®tã±zßµ}ß´xä±|ç²yç³yä­ß«{Þ±yß±sß®wÞªtܧrà­|ã²yÜ«mبvبwÛ¯vⲀᰃà°á²}à®{á¯{à¯zß­yß³và´pÙ¦hÒžkµ“jÙ›hÕšeÔœaÖfÖ›jÓœkÕœdÖšeÖlÛ¨rÝ®‚ᯄä®}á¬}Þ©yߨrÛ¢q× uÚ¦yß«~á®â­⭀ಀ߰zâ¯{ᯂݬà­zୀݫƒÚ§|Ú¥pؤnÛ©v߯~Þ«{Ý«xÝ°€Þ±‚ß«}ߧ~à¨xÞ«qÙªvÞ¯z䵂䳇â¯尅䰆ᯄ߭€Ý«}à°à±}á¬zÞ©xÝ«sܪwÞ¨{áªoá«qà°€á³â°yá®xä°{ä¯{ߨ|Ú¦s×¥nÚ§wá°}䱇ᯂ߬vߨxÞ¦sݨuÞ­|ృߪuÙ£pÙ¦{Û£sÛŸmØžsÛ¤}â²€â³Ⲅ峆綇깇궆岂᱀à°~Þ®‚Ü­Þ±{ß·„㹇ä²|Þ«yÞ¬|à¬uݪkÚ¥hܪrâ·ƒå¸ã³‚âµâµ}ⴄ㺇绀å´yã³{ã±}ä´…äµá±xà¯vá«uá­wá®tà­zá¬{á«uá¬yä®zâ«nÞ¬u߬tÚ¢hÙ£kܨtÜ¥oà©oá«vã§rå«{峃ä±{ã¬rá¨nÚ£kاlà«rà¨mÜ©jÞ©nݦkÚ¥oÚ£oܧpÛ¦oÜ¥hÞ¬mݨmÛ¡fÛ£eبlئpÛ¢lÛ iÖ gÙ¢hߢeÛ¡hÛ¤qÝ¥hÙ¢bØŸhܧnÝ«xܧrߨpÞ¨uÙ§tÜ«xà¬yÝ®xá¬zá©~Ý«ݦvØŸhÕœhÙ¢mà­ná®wå²~è´{æ²ã¯ä²zá±zà¯{å³~ä°|Ú£pÓ¢mÛ¬t岀鸅帄ూⲄ洅ä²ä²ƒä±…㱈紆鴄㷃㹂湄幊å¹ç¶è¹Žå·ä´ƒá³ⵆ黊꼆漂續淊à³ß³„幆幉丈绅织䶋㷊帄䶆ⵊ嶆ã´㵀溄㸇⻈予㲂á²}à³|ã´èµåµ~ã·æ·‚æ´…æµ}ä´|ݯݮ|â´|à°vÙ©rÛ¬{Ý°~Ý®uàªsà­}ã´á­uÞªrâ¬qߧnÛ¨vÙ§tÝ«qÞ«sÝ«sÝ®sÜ®vÝ­rß©nݦqܨpß­rÞ®xÞ«tܪtܪtÙ¦qÙ¨sÙ¨y×¥uØ«sÙ©wÙ£uÛ­vß²wÝ°uÚªqÚ¢qÝ©uÝ®uݯyã³}߬tÚ§qÝ«vÞ°yà°wà¯sÞ²yÞ¯yÞ©wß®tܱoݯsß³yá´yä´zÞ²}Þ±{â²}Þ±}Þ±}à´ß³|ß²zÝ°zܯyÚ±Þ¯~߬xÙ«vÔ¦nÓ¤lÔ¥pФkÒ¢hÏšhÊ’hË“bÊ•[É”^É’[Ê’\ИdÒgÉ“_Í•ZÕŸfÔfן`Ú¢bÛ§kܨoÔ¥dÔ¨jÓ¥mÓ¥mØ«vÙ©uÙ©vܯ}Û«xØ©{ܱ€à²€à°ݳ}Ü°yß­sÚ©qÖ¦pÛªoÞ«qÚ©oפj×¥mÙ¦nØ¡gß«hâ³mà¬nä­sÞ¬uÚ¦rÞ©qß­oá©pá­rÞ¯oØ¥lÓ fÙ¤fÜ©lئfÔ¡eÒ¡eÓ¡`Ò£eÔ£mÔ£lÖ£mÙ¢qÙ¦sÛ¯sܯqÞªtܬuÙ«oרlѨlФoÓ£lÔ£iÓžhÒ hÕ¦iÔ eÓ cÖ¤gÖeÌ’WÇ‘SΔNÏ“RИ[ÔœYÖ\Ö¢bÜ£bÙžaÖž]Ù£aØ¥gܧhß©gÛ¬gÛ«mÝ«mÛ²pÚ¯pÙ­mÛ­mÜ«nÞ©pÝ©rÝ®uß´{Ý°|à¯~ã³}ãµxãµ{â±zß®tâ°yâ­xݪqÙªqß°rä´uá³zàµ|â³|ß±u߯t⬀â®{߯qÞ°y㰂貂ã²~ã³~æ³{á¯qÖ¦eÕ¢l½“oÖ kØl× jØ mÙœoÛŸrÙzÙŸxÞª{ß­‚ᯃ㭀á«zá«xÛ©xØ«z଀߫…௄߰ܰ~à°yÞ®{Þ¬xÞ­wÜ®}Þ¬yݪnÙ¦mئsÙ©tݨrÙ¦tØ«tá³~緉䵊᳅ಂெைஂݫ}Ù©{Ý«ೋ幌蹄丂ඉഉ᳈Ⲇூ߫‚Ü£~Ú£vÝ«xܯ}Þ°‚㱆Ⲃ层䵂áº滅縆絃䵀ᴅᲂ߳€à´†ä±ˆæ·‡æ¶‡ä²‚á¯}Þ­…ଇâ²~â´}߬yÛ¦tÛ¦wܧ{ܨ~ܱzã´~絇帇㴆㶀ãº~乃浊å±à­uà¬{à°|Þ­}Þª€â°ƒã²…á³€à¯uÛ¬sÜ­uݪuÞ¨pà®yà´|ã¶{ä²{ã±à²€à°|åµ~æµã®~ܪwÛ¦rÞ¨tß«xß©xÚ¥oÖŸiØŸnØ jÙ¥bÙ¦cÚ¢eÜ lÚ oÙ lÙ¡hמfÔ–aÕšbÛ¡jÚŸhÚ¡hÝ£kߧnä²yç²€ä­xß©oÛ¤jןjסrÛ¥qØžfÚkߨrÝ©pÛ£pØžkÚ¡lÙ¢hئmÞ«qÞ©hÜ£iÚ£oÙ¥hקiÛ¦rÞ¨qݬsà­xà«tà¬và¬xÞªqà¯xá¯~ß°|߯xá«zß°{á®xâ¬à³ß±߬}á²}㴇峈䱀á¨{Û¥zÞ±~嶄七㽅亅嵆鲅鶅㶃ⴃⷆ嶉ⱅް|ᰀ纈齋絈Ⳅá¶⸃ⵂã±~å¯㱂庄但丄䵅ᶈ⸄庆緌崊䴄ᶂá´䷃仇㹅躋껇七â³â°}帅滊䴆㶆䶉ã±á²{â°z߬{Þ²}â³}ã³ä·…å·ƒã²{ᲂ㶀á´y߯yÞ¬yá­tá¯uీⲊã±á²~à­ߨyß«vÞ¬uÙ©wÙ©zÙªuÚ¥mÖ«rÚ®vÛ¦nÙ¦qܯvÚ©pÚ£sÛ¥mØ¥fÖ§kפkÜ£oܦoÚ¦nݤnÙ¡hÖ¥iÙ¥nØ¢lÖ iÙŸeÖŸhÖ¤rÛ§rܤqÞ©pÛ©sÙ£qØ£mÜ©mÚ¨lצpÚ¢nÛ mݦoئoפjÚªnبl×£jÞ«uÜ©u×£oÙ£oܧsÞªuÛ¨rÚ«mÚ¬oܨsÛªvÝ«tß­xá³à­}ߨxß«zÝ°}Û¯{Ú¬yܨuÞ­yÞ²~à³}ݬ}ת}Ù³{ݳ{á²€ã·Ü¶yÚµ~à²~ÞªuÞ­{ß­wצoѤpÔ¤pÙ¤mסkÖŸlÖnÒ˜dË”ZΗ`לeÔ™bÍ–_Й\ÓŸ^Ôž`ÔžbÕ¡h×¢eؤiÙ«qÙ«mÚ§rÝ®wÞ®tß­vá²}ß²‚Þ²{ã´vá¯uܬoݪkÛ¦qÚ¦rÝ«lÛ®kצjÛ¤hÝ¥lÙ¥kÛªvà¯xâ¯sã«rß«oÖ¦eÚ§f߯râ¬tß«oܬkÛ¨gÓ¡gÔ¤n߯rÚ°pÕªhÒ¡cɘdΡcÕ§iÕ¢hÙ£gØ¢k×¢oÚ©qجtÙ«tÚ¬rÕ©nСfË›bÆ™bɘbÌ™dÏdÔŸhØ£hÕ¡eÒhÑœeÈ“ZŠXÇŒXÅ‹JŇEÌ”ZÌ™cΖ[ÕŸbÖ¡kÔš`ÒœZÕž[ØždÙ¢mÙ¥cÖ¡ZØ£^Ü©fߪh߯pà²tá­rÞ®pÞ±oÞ«qÚ¦qÝ©qݯvÝ°{ä°xã®væ¶|ç¹yã²tã³wã·rÞ°kÚ«i߬jâ­sâ®yà°}á´„ä¶ãµxà¯yÞ«xÛ¨sÞ«ná²sà²}à¯~ã²åµ€á¯~Ù«vÙ©j¼”fä¯ã­yã­uá«uܦyà«}á«{ݪzá±}æ±ã«zߪuß­|à¬Ý¨~Ú¬~Ü°ˆÝ¬‡ß«~ߪsÛ­s߯€â«Ý®xß­xá¥vÞ¤tݨwÛ©vÚ©oݪuß°}àªsܦoà³}äºã²{á¯à¯€á°‚ᲄޯ|ݬ|᱄ᴉ䶅终縉ä¶à¶ˆâµã¸†ä¸†å´‰Þ°zÚ­xܨ}ߪzá±|ã´ä³€ã¸„㺅á²|Ü­€ä²ˆé¶„â³á®‚⫂ୀᰀಂݯˆä´ŠçºŠãµŠà±„ä²~á°᱅峃â©~ݪ}á±⮃à±}ⶂä¶ç¶Šçµ„屈䳄嵄湀æ»è¸æ°~ä°zâ´vá¯{⮃æ²ç²|ä³}â±ß«wÚ«uÜ©uàªyá´{ã³má«lݧnÛ§pݧtݧoܦpÜ¢qÜ rÛ¢uØ mÛ¦mݨtÚ¥nÖŸbÑ–_ЗaϘbЖ^Ó•XÓ•[Ò˜aÕcÓbÒfÔœeØžjß©yå±yã¯uá®wã­xã°wà²⭇䮅ã­xߪtÞ¨yÝ¥sÝ©sÝ©xÚ¦uÞªtߨtÚ¦rݨwà¨vߪrà­}á²à¯vÛ¥tݬxá®yߨvß®y䳂ã°à°€ã¯€ä­}á±~â´䴂嵂嶀涀嶃嵇之漆æº~ã¶ãµ€åµ|ⶅ㸆㹀᷂㵄ංà³à²†äºè¿“éºå¹‡å·ˆé¶Œäµˆá¶„乄蹄㶂ߵỈæ¼å¶…ã²zå±|ä°ã²~ᲂ᱆䵄蹈車湆㴀氆峇㵀嵅䵄ã´}å±簂㰃崅緊乇㷀峃ãµ}áµå¶Œæ´ˆá­„á­{߬rÝ©zà«€Þ«zà¯{趂岀æ²~贀㱃â°{à¬{á®å±xâ«wà©zÞªy߬và®uÞ¬wܨyݨyß«vÙ§qÙ¨rÚ§oÒŸhÕ¤gÚ§kÙ¤pÙ¢nÙ¢lÚŸlÙ rÚ¤l×¢eÓžcÕŸeפlÔœpÒškÓ`Ó b×¢iÖžlÔ›l× eÖ cÕŸ`ÕŸWÖž\ÑcÒjÓiÑœdÙ¢jݦoÜ¥mÞ¥qܨvÙ¥oÕhÕ fפkØ£kÙ¡hØ¡hܦmצkÏ¡b×¢iÙ¢nÔ¡kØ¢mÚ§qÛ¥rÙ¤mÙ¦jܧlשoÖ«mÚªmܨpÝ©oݨnܧuÞ¨tÞ«mÛ¯rÛ®rÚ¬pÞªràªtÝ­xÜ®zÜ°uܶxáµ~ಀàµà²ß²‚âµ}ç¸踅黅㶀٬{Ùª{Ý®{Ü°{ܱyÚ­vУlË™^Í›bÑ¢qПkÍ•`ΑaÔ”bÑ“bΗ]К\Ñš^ÔŸ]Ù¦cÜ­qÛ©oÜ©rá°vá±tܲtß±zÞ®x߯rà©oÞ­rà²rà¬sÜ©tÚ®uÛ­uà©mÞ¨rÛ¥tÛ¨rÞ¨w߬xÞ¬oÙ¨jÙ¥dÔ›aÓ bÙ©cÝ©o߬rÞ­mܨj×¥gÛªtæ´zä²wÝ°tبhΞbÓ¤kܪrÒ£kÑ£fÕ¦kОoÖ¤nݬnØ«sÚ«oØ¥hИdË”^ɘd˘jÒ¢oܬrÚ§pצkÔ¤fÔ¢dÔ¤`Ìš[ȘeÍ fΛ]Å‘WÈš^ËšZÊ’MÓžY×£cÒ^Òž\Õ]Ö›a× gÕ¢aÒ›YÕž`Ú§bÛªkß­hÞ«gÜ«oß°nß°pÞªnÚ¦hܧlݨsàªwâ²uã³vç¶zè¹uå³oä¯lä°râ¯sܬlܪhܪqâ°~æµyà´{ãµæ´xá°wà¬uÚ¦oئoà¬rá­và­uà±wâ°uæ´qã±uÝ«t¼™kã±€ä¯æ°å°zÞ­sà²|â®{à¨xá«{à¬yÛ¬xÙ§vÞª{á°‚á¬|ܨ{Ú§|Þªsà­qß­{à¯yß°và­rß­oݬsÛ©nÛ¨jÞ«rá­sá¬mÞ«oÞ®oâ©jÞ¤hÝ­râ²zã°}á±}Þ­{Þ¬zᰀᯂã´å¸‰åµŠäµ„㲇⭆ޫ‚Þ­…ⳃᲂⰂ߲„ß²‡ä±„à­€Þ­€äµŠå³Šâ®ß®€à­…ߪ}Ø¥oØ¥wÞ­€Þ¯Ý«}߯{à±{Ü°€Þ­Þ®{ᵆ䵌߭Û©yß®zà©sÞ¨vᲂ㲂⯅᳊ീá¶㵆㶅涃䭀â¨zâ¯{ã³ã°ⲅ层ä¬yá­xâ°{â¯~ß©y߬vâ­{ߧx×¢n×¥mÚ¨lÛ¤mߣqÞ©lÙ£fלfØ¡iÙ¥iØ¢jÔšhÔœa×›fÕœmÔškØŸkÞ¨|Þ§‚Ø¢rÓœeÒ˜eЕbÍ“]Î’YЖXÔ–ZךcÙ¡cÚ¢fÙ¡nÛ¤sà¯{庅꾅é·~ç²}ç²{ã²~ᲃ߯†ß­‡â°ƒáµ~àµ}à±}á¯~áµß²{Ý«{Þ«|Þªzᰂ㵄ä±ã´‡ä¶†æ´‚岄㱄䳃峃䳃ä´ã°|â²{â³}㰀ⵉᵊ䴀æ·~蹈渄㴄帎淊洂嵀ᲅ㯇峆à±~Û°~ß´†á²„á³ã¹†á±à­w඄争渇å¶ã¶€å¶„嵃᳃嵄æµåµ~᱀߰‚㵉䶃ä°yã«vá®xá­{â­€á°|à±xᲆ岈â±}á«zã°Þ®}ܧtݪvܯxÜ©sÚ¥tÙ¨rݨtà®xß±vâ¯uÞ¬vÝ°yã°á°~â²yà­Û¦zܨuÝ©xÚ¤tܦkݧlÞ®và°zÞ­xß­vâ¯yß®xÛ©qØ¢nاqáªxà£tÚ lÜ¡kØŸnÙ¢kÚ¤oØŸlÔ gÓ bØaÛ¤eÒ¡gΗbÕŸ^Õ¤cÓœfÒš_Ó`Õœ`Ô™^Óš\Ñ”]Î’]Е`Ñ–cÍ“\Ë[Ï—\Ò™ZК_Óœ]Ó™\Δ`Ε\јWÑ–\ЗXϘWÏ•]ΗcИeÓ›dÕ c×aÖeלgÔšjΚgÓ™`ÖžcÔ¤hÕ¢fÒšdÓ jÖ¢hК_Ì›eÑ¡jÓŸfÑŸjÓ gÙŸcÚ¡iØŸgÙž^ÕŸbÕŸgÚ¡bÙ eÖŸiÕ¤kÛ¥jݨjݨjÜ¥rÛ©xݪrÝ«mݨnݤpÞªqß«sߪsß­vß­yà­và«wÞ«~ãµæºåºƒè½‡çÀˆá¸Ùª~צ€Ü­~Ý°€Ú¬ÓŸpÌ–^Ê—bΛlÔ™kÒ“]Í‘XË“YÊ‘WËTÍOÍ“HÍ–PÑ–^Û¡jÛ©jئfÛ¦hݨmÜ­pÛ«hݪfÞ®nÝ«lÞ«fá°mà«oÛ©qÚ¬nܨjÞ¨qÜ­tܪqÞ©oà«oà©pÚ¢iÓœeÓ¡dÕ¢hÓjÕ gÙ¤iÛ¨hÚ¨eÚªmÙ§iܧk߬tÞ­oã¯kç¯lߨgÜ©i׫lÊœ^ÌdѨkÑ¥cרkܯyÞ¬{Û¬qÕ¨jÓ¤hТfÔ£pبrبnÝ°uÚ°pÓ¢aÓ bÙ®qܯrتmÕ©sÙ¬vܬnÔ¡cËŸ\ƘTËWË”[ÏšWΗYÑšYÑ™SЙZÓ™\Ò˜XÔ˜WÓ™RÔŸYØ£fØ£f× d×¢fÜ¥ká¨mÝ©fÚ¥hݨmÝ«rß«tä°sä²sã®rãªnߧeÜ©gà«oâ©pÞ©nÜ­mß­là¯já³oã±vâµvá¶sâ°uߪmÞ§eÚ¦lÙ¥rÞ¦và®{á±{ß®€ã´…ä´‚à±x¾ næ¬zâª|ã°xã²yß­yâ¯yæ±xä¬rà«{á¬{à©uß©|ã±â²€á±~àªyà¨{æ°~ç°zä¯{å¯xå­sã¬xä¬wâ­oàªmá«pà­q߯oâ³qã±tá¯mà«lä¨qã¬vã¯tä«rá«rà¬xá¬zá­vä­vä´~ⵅ䱂å®|à«wÞªxá«{ß­à­}â­|â­}߲᳈䱈歄å±嵅氈ۭ߫~ᬄݩ€Ø¤wÖœuÖ¤qÝ°tá®zà«yà«uß«tÜ©tß­„ᰃ߬sÙ¨mÖ¥iܨpà«uß­tÞ¬uß«xá®yà­|ã­~à­‚Ü©xÝ©oà«|âªuߣhÛ sá©yâ­sà«sß©vÛ¦qÛ¨oܨsܦqݤsÝ¡pÛjÕ›hΛdÓ nݪ|ݪxÝ¥nÚŸiלhÙ£lÝ©sÞ¨vܦsØŸoÖ›pÕŸnÓ n×¥t߬}â¬|ߪxÛ¨rØ¡jמfÙ¢kÚ¥kÚ¡oÛ xÚ¦|ީ㮀áµ~â´€ä²á·ã¹‡ç·…嶀ⱃ䲆áµâ±}㯀ಇⲅã³â³zã¯xà³~ṅ涅â±à³…ß²ˆä²‡çµˆåµŠä¶ˆå´…渄㸀߰zà²}巋㶎䷇浇㴅㷃㴃㱂å²ã²äµ…躃湇㱇泃긇궃ã´{ß±{洀㲃୅߭‚Ü­~᱀䵊浊å²ß°|Þ³ƒç¶ˆå³‚Ý«~ß®}å´{å³å°á°{â¬zâ­~ÞªrÛ¤rܬvá­qá¨qÞ¨oÙ¡gÛ¡hÞ¦nÝ£pÛ£rÙ£qÜŸsÙŸnÔ¢fÖ¡m×¢kÖ aÓšeÓœgÓaÑšhÒŸiÕ¡eÖžgÕ¢jÜ£kÙ jÕ¡lݦrÞªvÙ§mÙ¢jסoÕ¢oÚ¤lØ£h× cÚ¢gÙ§pÙ¦lÙ¡hÚœnÛžkÚ¡jÖ jИbÑ—iØžn×iЛaÔš^Ó˜eÒ™cÓ™dÕ–eЕ`Í•^Ñ–`Ó™dЖ`Í‘`Ñ—cÒœeК]Í•ZÍ•]Ï•XЕWΑ[ÉXÊŒSÊSÊ”SÊSƉTljRÊŒQÉ‘XË•]Ë•ZÊWËŒXË‘WÊTÈŒWÈ“UÊ’TÌŽYÍ”VΓRÌ\Ê“WÌ“VÍ“Y˘SË”XËXΔ\јeΕ`Ì”UÏš\Ó™aЕ^Í—\КaÑšaÑšdÓšfÒ˜cÑ›bÑ›bΘaϘ^Ì—ZΙZÓaÓŸaÑ[ÑœbÕ¢jÖŸcÖšaÕŸh×¥hÚ¦hÚ£f×¢gÚ¥hÙ¤jÖ¦mÚªqܪqÛ«uÛ¬}Þ°~ß®~㯀å´ãºƒæÀ‹æ¹†ÚªqÖ§lݱvÙ°}Õ«~Ò¢rΘdÈ–]ÈœaÒ¥u×¢qÒaÒŸfÎœdÌ–ZΓUÌUÏ’ZÒœaÛ¤iÚ¡jÑŸdÔ¢fÛ§fÚ§hÚ¤mܧmÞ¬nÞ­dß«aÞ¦eÝ©oà®pß«mÙ§qØ¥iÛ¨jÞ«pÞ¯sß­xß«yÝ«uÜ¥kܦrß°zÚ©kÎœ`ÐœeÙ£lÙ¤gØ¢gܦlÞ¦kÛ¤hÚ¤hݪnæ²sæ°nâ­mÞªkÑŸbÏ hØ«kקoܪsä´xá­uÛ¦fתiÚ¬pߧkݬlÚ²sÙ­nÞ®jà°tÙ©nÓ¤gצpÞ«yß°vß­sß­zÝ­{Ù§mÓŸaÈ–W¾‹M¿TȘ]Ì”`Ì’bÌ•VÍ”SÍ•WÑ™_Ô–YÍ’MÈ’XÓ™eØ`Óœ`ÔžeÖŸfÖŸeÚ£bÚŸ`Ý¢cߪaÞ¥dà¦pá¬pâ¦gà¢eܤ`Ø£`Ú§hÞ¨bÝ£^Ý¥hÞ©nß«qá¬sà¬oà¯oà®ràªnå¬náªnÚ¨hÖ£hئpà±tå²vã°tâ³qæ³sé³xÈžtá§xà¨váªnà©lâ«må¬uäªvå«rã­vá¨yâ¨sâ¬qâ¯wã±~â¯}à«|ã¬}ã¬xã¬wæ®wâ©tߨoáªmä©qâ­tß«má©qá«zÞ§vߣsá¨pà¨kߥiÛ©lÝ©pÞ¦mݧiݨlÛ©má«rá¨vÛ¦sݦuÝ¥uÛ¦mÚ§kÚ¤mÚ¤qÞ©yݬxÙ¬uÞ¬zߪyݪxá­{ߪ{Ý©uÞ«vݬxݬuܧuߦpß«nÚ«xÚ§tÚ¥kÙ£wݦvÜ©mÛ¥qÚ¡oÙ¢hסrÙ¤yÚ¤rÞ£iØ fÓ oÙ§wÚ«wÛ¬sÙ¦vÙ¨vÚ¬sÚªuà¨{à§x×£yÙ¢tߨqÞ§wÝ£rá©uè²è¬}åª{Þ©vÖ£h×¢hÝ©xܬ€Û«zÛ«pÔ¡hÑšeÖ¡mݬ㲄å¯|â­xã°䱄䱋ⱇà°tà°vÞ«zÚ¨tÛªtÙ¨sتwݯuá­vß©tݧrߧxÞ©}ß°‚䵇àµà³~ã±ä´„涇粅ä¯~ß°yà±{ä±å´‡ãµ€ã²€å²ƒâµ}㳀組å¶ä³å³‹ä°ˆæµŠè¸Šæ·ˆé¹‰èºˆãº…巄巈久㴂䵃渃è·ã²Ü®€Ý°ƒã²ˆçµŠå´Šä³ˆã²…ä®…ã°}á´â²ß°}ã²éµ…巇㳂䶀ã¶zæ´yá°}â±~äµá²}ã²|æ²á­~ᮀ䶀á´â°‚ß®}Ý­wݬvÙ¨pØ sݤwà²uâ²wâªxà¥pߥkÞ¥mÜ jÖeÕžkÙ¢rÚ¤j×¢gÕ¡iØŸgØškØjØžhØ gÕ¢cÖŸcןcÕž`ÒžeÒœ`Ò˜VИ^Ò˜]Ñ™]Í™aÍ™fÖžqÛ¡pÚ¢dÓŸdКcÔœ`מ^Õ™cј]Ï–\Ò—`Ô]Òœ^Õ›cÕe× gÙ gÖfÓœkÕ¡j×£fÕšfÐ’aЕbÓhÕŸgÕiÓ™jÓ˜dÕžc×£mÕqÒ—hÑ”^Ε[Òš`ÕœaÑ™_Ñ—bÓgÓ›fÑ”bΕfÍ—eÑ™bЙbÍ—_Ì—YÌ‘^ÊZÆ‘TÆVÇŽYÈ”bË™\Ï™ZÔjÑ™eÊ‘ZÆŽ\ÆWÆ‘QÅ‘TÃUÂQljVʼnT‰NljQÈQÅSÇWÈŒVÆ‹TÉŽZËZÈTÇ‹RÈŒQÈUÈŽUÌVËQÈTË[Α[Í‘[Ì’TÌŽRËWËUÈŽVÈZÍ•\Ò–]ЕVΚVÔœ_Ô˜]Ϙ^Ò›`Õ›dמiÖjÕ›jÙŸdØ£gÖ¢h×£fÙ¥nØ£oاmÖ°xØ­yàªvá­}á«å´æ»ß®xÛ©qÛ¯yÖ¬€Õ¬tØ©nÖ£pÕ£lÖ£dÖ¨j׫uÙ§sÙ¨tÙªrÕ¤kÒŸfÕ¢eÖ¡fØ£iÛ¤fÓ˜]ËUЕTÙž]Û¢gÙ§eܦbÞ§fÞªjÞ¦jÞ¨hà«làªpÜ­hÚ«nÛ¨nÝ©lÝ©sÚ¬sÚ­qÝ®uá²uá°yܯ|ß°vÞ«tÕŸfÐœ`Ô¥gÙ§fØ bÙ hÚ§iÛ¨gÛ¢bÛ c߬rä²rã¬nß«o×¢cÑžbاjܨhÚ¨tá³|âµuÞ¬oܨjÝ©hÜ«mܲrà¬qÚ©nß²vâ±Ü¬{Õ¨vÖ©vݱvä³vä°sà²mß´rÞ«qÛ¨eΠ]Ã’Z”\ΟdÖ dÓžfÍ›eÌ’`Í“[Ï[ÏœaÄŠW»†UʘbÖ eÔœbÔœ]Ö]ØŸgÙ¡hÖž]Ö¢aܤcÛ¢`Ü£fã£cߥaÜ¢`ÛžZÖ›WÙœ^ß ^Û¡^Ø eÚŸfØ¡aÙ¢hÙ¦lÛ©dÝ¥eÞ¦dÞ©dÞ©eܨbÔ¢bÙ¦gÞ¯já±nã­oç¯nå±eç­lÅ™vá¥jã¥jߤnà¤nà¤gá¢gá¥gÞ©hß©ná§ká¦lÞ¢oݤjÞ¥jÞ¦hß©pá¦uá¤iÞ¦aÜ¡eÙ›aמ_Ùž^Úž`ÚždÙ bÙ¡dÛŸgØœfؘeÖ›cÓœ`ÖœcØhÙŸbÛŸ`ÛžjÙžmØ¡kÙ§rÙ¤pØžjÚ£gØ£bØbÙŸfÝ£hÞ¦mߧpÞ¡kÙœeÙ¡nÛ¤xؤnÖ kÕ›kÒšaÖŸgÛ¤uݦqݪqܦoÜ¢sܨyÚ¬tÝ«uÞªrרpÖ£oÖ¡lÒšeÔšfÕ¡n×¥vÚ¥vÙ¤r×£oÚ£rÙ§rÕ§sÖ¦zÚ¦{Ú§yÙ¥tÙ¨tÝ°uÞ¯{Ø©xר{ݬƒß²~Ⲁ崉絈ᯀު|à¨zÞ©vÞ®‚â·ä¹‘᳅߯vÞ§mÞ¦sá­ⴀᲂᮆⳄå¼è¿—幇ⴂ௃஀ᲄ㸂湀䵀á±}à®}㱄㴄à³èµ„빆湄之å¸ê¹‡é¹…丈ᲅ䴇㲅á¬ä±zè¸}è»çºŠä´ã³„å´„å±㷉滊繇嶆綉é·é¹ä¸á³ˆá²~ß®}à­~ä²æ´„絈蹈蹋繉âµ}â²v߯~㱇涉㲂߲ᶈ㴉䲂崅â°Ý®|Þ°„ⲇã²â±zà®vݨrÙ¦mÖ¤lÚ¬yá²~á°wâ³xå³~á­~߬zÞ°và¬uà¨tÚ¤sÛ£pÚ qÔ oРiÓ¦qÞ°{ä¯~á©zà©uÞªsÝ«qݨmÙŸmÙ jÜ«pÞ©rÞ§lÙªnÕ¥oØŸnÙ£pÜ©rÝ©vܪvß²}Ü®vÙ¢lÞ¡nÙ¥iÖ¤hÞ§qÛ©lÙ§oݧtÜ©wܬzà¬yÞ¯}Ú¨vØžj×™fלfÖ`Ôœ\Ðœ\ÒŸbÙ¢jÖŸiÖ¢mØ¥sÙ¤sÛ£tÚ¥qاqÙ©oÛ«kÙ¦jןg×¢lÛ©}Ü«„ݪyÙ¤pפnß®wḇᴊݦ}Ø rØ¢s×¢tÙ£lÞ¨kÚ¦tÚ¢tÚ¥uئwÙ¢xÙ¦zØ©vÙ¨qÛ¨pÚ©rÙ¢nÔlÏŸjÔ¡hÖ¥qÚ©|Ú©{ר{׬€Û­~ؤuÏžoÏ nÐœiË”gÇ•cÈ•]È”bÆ“dÇ•g͘fÍ•gË•gÉ’bÈŽ`Ë”[Ì—[Ê”\Ì”`Ë”^Ì“ZÌ”[Ç’ZÊ’SËOÈ‹UÊ[Ê’^É^Ê‘VÊRÈŽUÅŽVËRÈ‹OÆ‹RÅUË—PÊ‘MË’WÒ˜ZИ[͘aјeÓ—cЗ]ИZÕš^×›dÓ•aЙ_ÕœbØžfؤkÙ¥tÙ§uÙ¨qÚ§qÞ¨uã±væ¹~â±yܪpÛ®uÛ¬tݯxß·Þµ~á³}à²vÜ­oئpÙªzݯ~à¯à¬Þ«yÝ®{Ý­yÚ¦rÙ¡jÒœ`È’VÈ’VΘXÔ›\Ù¡`Ö¤bפgݨlݪl߬nß®rÚ¨tÚ©uß­rá±uâ°uܦrؤmܨqߨxÝ«uÞ®sß«sÜ«uß«yߥqÕ¡gÓ£kÙ¥oסhÖŸ^ÙŸ[Û¢cÝ¡f×›`Ú£eà©oݨnÚ«jÚ¦eÙ¡fÛ£fÙ£]Ø¡cÜ©rá¯vâ­tÞ¬rß²uá´uÞ°mÚ¬mÜ©sÞ¬vÞ®}ß°yÚªqÙ©wá³yâ³sà°và²yá±rá±mܲsØ«sÕ¨nѧfتnß­vÞ¬qÕ¦kÍ›`Ê™]ΞeÔ¡hΘaÆ“eÓ uÛ¨vÖ£iÓ¡\ÒžYÖžcÝ£cÙ¡cÙ eÛ¡\Ø¢cݦkߤgݤkÚ£oךbÖ—`ØšaÜž^Ü¢dÙ¢bØžXØœ]Ø eØŸfÙŸcÜ£^Ü£^Ù¡cÛ£bÚ¢aÙ¢fÛ¢bÝ¢bÞ£há§aà¨aà¦`ã§cÁ›hÞ™cÞfÛ—`Ù˜aØ–aÖ^Ó•]ÖœeØ¡jÛŸcÜ›gÖ—iÕ™\ל_×lØlלdÖ˜`ו^Ö“^Ô”bÕ˜bÕ—cÖ—cØœeמfÖšdؘdÖ—`ÓšhÕŸnÕŸkØ™kÜ›jÚ k×¢kÚ¤iÜ¥iÛ§pÙ¡pÖœkÔ›kÕŸrØ mÙ¡sÙ¦{à©uà£mÝ¡lÚŸlØ™hÖmÕ pÓmÔlØ¢lÔ›bÖ¡là¯{ᮀܨzݧlݧmÝ«{Ⰵ㲆ޫاrÙ¦oÛžrØŸvÓ¢tÕ¤tت{Ú©|Ý©zà°á¯ƒÞ§Ü«€Ýª€Þ¦~Ý¥vÛ¦sܪzౄⴈ௄ެ€à±„ⲇ䳇崊ᲄܭ}Ý«߯಄ݲ€Ü®}Ý®}ݯyÞ°|à³å¶äµ†à®„ݪܬyݯ|ß´ƒâ´†á®ˆÞ°‰ß³„á´äµ†èºŽê¿Žé»‹äµ†â´â¶Œå¹’㼌⺎ç¹æ¼Žã»‹ã¸‰äµ‰äµ„ã·‚á²å¯€ã¯ß­ƒß²„䲄涇ä¶~â²|岇㮅߮€áµ…丅浆粆岀Ⳃ岄á¯{Ú­vÖ¦pÑmÔ rÙ¨yà¯}급ìºç¶‡ç·æ³~â²{ä°沊䯈߬~Þ±y㴃㱄à±xå´vä±xá«tÞ§tÞ§rÞ«xÞ­xܧmÖœdÐœgСlÕ¤mÚªv߬yá­wߨwÙ£rÙ¨sÙ¤kÙžgÜ¡jØ¡eØ eÙŸkÚ£pØ¥mÚ¦qá²~ãµ}ã°{ä±€áµãµ…ã­ݨvÚ¨tàªzâ­{Ý«sÚ¨pÝ©qÞ«uá­}ᯀᰀåµ~帇಄ݩuá«yß«yÙ§yÚ¯{à´tã¯yã®}Þ¯|Þ±xà²wÞ°zà±}Þ«wܪqÙªpئnÚ¢jÙ£nÙªmÜ«mÚ¨oÙ¨mاmݧrà­vÞ«{ݬyà³tàµ{ß°xÝ«qÜ­tß³{à±yÞ¨uÛ¨tÝ­tÞ²à¶âµ~ܯu׬vܬ}Û«yÝ°zÞ±|Ú¬€Ýª‚Û«ƒÚ¬‚Þ­}Þ°}ܱ‚Þ°Ú«}Ü­‚ݲ}ÖªvÔ¨{ز†Þ¸Žãºˆß±‚Ü«†Þ²‰ä¸‰Ý±ƒÕªÖ§‚קÓ©zÓªyÓ¤xÒ¤vÖªxÙªzÖ¤yÕ¥xÔ¤uÓ¤pÔ¥pÔ£tÓ¦tÔ¨pÖ¢pÒ£qÒ¤nÑ kÍhÍœjȘbÊ”XЗaΛbÊšbÓ™eÖfÏšdÍ–cДgË”^ÅQÄŒQÆVÆUÆ‹OÈWÍ•YÏ‘[ΔaÑ•]Í[ËŽVÌMÍ’PÉŽTÈŒQË‘MÌ–TÏ—\Й]Ó¥l×¥pØŸnÚ¦qߪlÞ¨sܤuà§mã¬tá«{á¬uå®zâ´‚â¶á²xܧtÓ¡tÑ¥sÚ­rß±zݱ}Ý­|ஃޮ{Ø©sÛ«sÜ­qÕ lÒšhÒŸhÖ cÛ¤cÚ¤lÚ£kפgÖ¦iÚ§oÚ©mצjÛ©t߯yÞ¯sà¯qÞ¬qÖ¨lØ©kÛ¨pÙ¨sÚªvݨrÚ©qÞ¯vÞ®rÖ§d×¥eÖ£bÒ¢aÕ¥eÑœVΕWЗ[Ë–TΙZ×]ÚŸ^×¢gÒcÕœ_Û¢iÕaÐœ[Ù¨gß«qß«oÞ­sá²xä´uâ²yß®sÛ©kؤiÛ©jß°mبj×¢mÛ©wØ«tجtÚ­pØ©jÙ¨pÛ¨rÛ§rà®vá²x߯zß°Þ±zרoÑ£jÓ£kÔ¡nÖ§tÙ®}Û¯€ß±~à²~תsÓ dÔ›eÖœfÚ£kÖ¡cÑœ]ÑœbÕhØ eמa×eÖŸjÖ¡cÖž`מcÙŸaØ bןaÖœaÕ]Øš[Ö›bÖŸ^ן\ØŸbÙ›bÜ¡XÚ¦]Þ£aà¡WÚ›WÙ™YÞŸ\Ü¡^ך`à¡bÀ™`ÒŽXØWÖ•XÕ•b×”bÖ“^Ô–fÕ›mÛžoÚ pÜ¢oÝŸqÖ›kÙ™nÚŸpסkÓ˜gךdÙŸiØ£uÚ£vÝ£sÜ¥rݦrܧwبxÙ©uܨxߦ{â­‚á³â®zâ©yݨ~߬€â¯€Þ­~ݬ|ߨwÛ¢qÚžpØ¡oØ©uݬ㳂⹆㵋æ°á®yݪzÙ¦v×¥xÛ§|ܨxܨyÝ«{Ü©xܬ~á¶ãµß¯ܬ|à«xà®}Þ³ˆá²á©{ߨݨߧxá«zÞ©}ܧ}଄ᮄᰄ幇嶄á­~ݰ೉㰅ã¯á°~䳄ç·ä°Šâ­‰â¯‰â¬„ᯉä±æ³…à¯zÚ©xÜ®~ఆⰅުxاvÛ«€Þ«à¯~ä·ã´„ᴄⳂ߬€Þ«Þ°…಄߰ݬ€ß­‚ᴂ⸄䷎緒æ¸ç»ˆæ¹Šå´Œã´á·…ⶌް„Û¬~Û°െ᳄ᲇ㴊淇巅䰃á±}Þ±yÞ¬zá¬{Ý­xÚ©tܨ{ܪߪvã²z乄Ⳇâ®â°~㱂岄䲂ã­|Ý¥vØ¥nÔ¥qÕ¢v×¥vÙ©râ±{趈岀á®vâ±zã³{â²~ã°}á«tܨqà«tâ¬vá¨wâ©zà¬Þ©zÚ¢nÙ¡iÛ£hܦrÞ¬wÞ¦nÖœhÕ¦vÛ¯€Þ°~ß±‚ã³~à°uݬvܪqÞ¬oÜ¥t× qܨuÞ­|Þ«xâ¯yâ·|ⳀᰂⳂ崃䵅ᲄá³ã¶ƒå´å¶â³~ã°~å³|ݬtÛ¦t߬và¯zá¯}à¯{ã´~滂䴀á¯ß²à°yã°yá¯xá®uã°{á°xà«vß­yá±tä°oâ®qà­wá¯wß®uà°rà­qß©và¬xß«sà¬má¬iߪmݧt߬vá²{á«uá«sã³~㶀à±uá±xã²yà²mã¯mã­máªoã­sã·xàµ}ß°{à²wá­xᭀݱƒß³â²ƒß®~à¬|ଃޫÚ¯{Ú°}ß®‚᱊ްƒÞ¬Þ®|Ú­wÜ°à·Šá·…ß²…Þ±ŽáµŒä¹Žæ¼‘ⶆש|Ó§xÖ©yØ®‚ݱƒÛ®‚Û®ƒáµŒã¹‰áµßµÝ´…ܳ†àµ}á²|Ý­ƒÚ«ˆÝ¬„ܪ|Ù¥zרvÕ¨vÔ¥tÒ¢nÒ¢sÒ¦uרvܨ€Ú«ƒÙ«{×¥pÔ¢jÖ¦pÓ¨tÏ¥nРiÏ i΢mÍžeËŸoÍ¡wÐjΛcΗeÌ“gΘcК`Í•^É”VÊ’NÉTÊ“TΓXÍ“\Ï lÖ¥qמdÖ›jÕœkÕ˜eÕ›gצmÚ¬oÛ¬oܬnÙ©kÙ©pÞ­xÞ¬tݬzاwÒ¦lÕ©uצuÖ§mß®vã³~ß²|Û«{Ü­}ß°zÞ®vÝ­vÛ­rÛ¨lÜ¥lÜ©oݤkÛŸkÕŸdÖbÛ¡eÖ¡cØžeݦiÛ©fÙ¨nß­vÞ«qÝ®pà²uÞ¬oݪsܪyà±}ß´{Ü­rÚªpݬvá«oÞ«kÝ«jÖŸaË‘_ÈŒTÇ‹Oǘ`Ñ¡bÙ¢^Ü¢dÛ aÚ¡`Ù¥gؤcÑ `Ò£dÚ¦fÞ¨kݨoÙ¨pß±u絃ê¶å·rÜ®gجhÜ°lÙ©fÒ¢fÓ¤iÙ¥pÙ¨oÖªjÖ¨kÙ¨nÚ§nܬxã´xáµtà²vá²vÞ±uÙ¬rתoÖ©qÖ¨uÚ¯á»ç½‹ç¸‡ä²‚à°qרiÔ¤nÕ¤mؤjØ¢lÏ›eÐœ_Õ¢hÓ£kÖ£mפpÕ¤nÛ£tݦoסgÙ¡kÚ£fמbÓ™cÒ›cÕ›_Ô›aÔ dØ¡cÙŸfÔ—eÖ[Ø£^Ü¢dÝ£aÚ bÛž`Û£bß fÝšcá¢fÆ–eÔ”mØ—nÖfØ¡jÙ¡vÛ¥pß«vÞ¬ƒÝ©|ݪz٪٥yܧzݨ~Ü£wÙ¥xÙ¦wÚ¤sÞ©xఆ㱃ଃݯ€Ü­}Ý«}Û°}Ú®rÞ°xᲂᲃⴈ߱…â®å°ƒá³†ã´‡á­…ߨzÞ¨vÛ«Ü­zÜ®zݱ„᳉峈云弎ä´Þ´‚Ü´Šà²ã³ã´‡á¶†ß³‡ß²Ý­€Ü¬„ⲅ㱇ڧ{ئzÝ«Ý­zÞ®{߯…Þªƒâ­„â°ˆÞªƒß¬{Þ¯~ݪ†à¯‰áµ„ß´‚à°‡Þ¨„Ú¦|Ú¬€Þ±‡á³ƒÞ³…Ý°…ᴆ䷅â±á±‚ூޫ᳄ߵ‡à±ƒÜ­€Ô£v×¢yÛ©xÙ¥uÙŸsÝ©{ä²…ä°~ⴄ㷊ⵆⳈ߰ƒß¯}Ý®{ܯ~ß­‚Þ©€Ü¬|ß°௃ೇ䶉洊䶈ⴅá®|ܬ}Þ­€à±}Þ®~Ü£|Ö£vبtá¯|Þµ~Þ²|᳂߳‚ä±ã²ß²€ß¬€â°‚ã´Ü«}Ö§oÔ¡kØ£qß®{á·…ãµä¯u߯xÞªyá¬và¯{á°~á²yÚªtÚ¥uÙ¨nÒ¤nÎœiÌ dÕ©zà¬}Ý©pÖ¨uÙ«uÙ¨nÙ£nݧqÛ¥mܤgܨkÞ¨uߨpܦhÚ¢lןmÖœiמjاtß²|ã²zá¯zÞ­vܳ‚䷊涃ḃ仄䱀ޮà³ⱂá®}ä°z㴅ⵂⲀⶊ之溃è¶çµä¶綄é·æ¸ƒäµ…ç´}è·{ã¸ã²ä±~à­wݪvà­và°sܲvÞ®{⯂㴀á´yá°}á±à²xß°vä°zä²{á³}á²|Þ®vܪzà®våµmä²qâ°uà°wà²xà¶yßµwá²uà¯qݬnß®mà°pß³{å³yç³zå¸yâ±pà®tâ³sß­qߪyâ±xß´sß±wâ®yà­sà¯là®nß­{ß­{á´sà´zÞ®yÞ³~೅ⱄ泇㶄ݲ†à²ˆß²~Ü°yܳƒâ´Œà±…Ü´€á¶á²{Ù¯{س€Þ¶„ೃ߲€Þ·„ä·†äºâÀݵyÖ«{Ú¯|Þ³vÛ¶€ÜµŠÞ²ˆÛ´‡á»‹ä¹‹à¶á·‹à¸Þ¶Ý²„ݯ~ܯ€Ù²ˆÚ²‰×«~Ò©€Õ­{Ù­|Û«{Ó¢qΡvÕ«Û­€Ú°~Ù¯Õ§ƒÕ¨yØ¥rڧߵ„޺ݴƒÜ±€Ý³†Þ²ŒÝµ„Õ±wÒ£oÒŸkΡjУnÖ£tÓ rΘoΖjΘ_ј`јeЖ^Ï’ZÐjÓ£qÒ˜iГ_Í‘\Ê‘VÍ“VÓœbÔ¥iØ£gÙŸgÑœfÒ¡kקqÚªvÞ®yã­vܨzØ¥tÕ£lПnקtÞ²zß²á¬zÞªxݪ}à®zÙ©rПkÏ¡lשqß«uÞ§pØ¢kØŸjØhÛ¦iÝ¥lÕœaÖ¡^Ø¥mØ¢hØ¢fÙ§oÜ«pà®pÞ®oÞ¬sÞ«xÞ¯|à°~ݪpÛªkܬw߬xß°xß®rÛ©iÕ£cΘ\̘UÏŸaÓ¢kÕ¦fݪhä©jÞªlܨjÙ¤jÓ›eΖbÓŸdÚ£eÛ¦hÛªh߬hã±qå³zæ²zß®sØ©mÚ©uÛ¨pÕ¥hÕ¥hÙ§kÛ©sÝ©rÙªoÚ±qÝ®qܬpÚ¬nÜ«mÜ©kÛªjÛ®rÜ®uÝ­xݯzØ­vÙ³㺅ç¼æºŽá·„ܲ~ÖªqتuÜ©|Û©sÚªtצqÖ¤hبjܨpݦuܪvÕ¤p×¢kÛ§iÛ¥fÜ¥lÞ¦oݤoÙ¥kןbÒš\ÒœdÓœgÑœ_Ñœ^Ñ™]Ò˜ZÓ˜ZÙŸ`Ý¢_Ý¢dÞ¢lâ¤kâ«mã¦cæ¤fÄ–gؤ{Ú¥|Û¥x×¢{ئ{߯}㱀䱇䯂à°|ீ߬€Ýª‚ߧ…Û¨zÚ«{Ý®„ݮ㲉㵌ೊ䰊⯃ݮÞ­ƒÜ©‚Ú¨zÛ­{ெᰈ᳇ޯƒà±â´Œß²‰ãµ‹â²…Û¬v߯|á­}Ü«|Þ°‡ã³àµ€â·Œä²Œá±†ß­}Þ®€á²‰æµäµá²‡ß®Ý®‚ݲˆÜ«„Ú¨„ݬ‡Ü®„צwÓ¡rܪ{ᯃ߭Þ®Þ°€á²~ß°ˆÝ«…ݬ{Þ­}Þ²‡ß³Šà°†à±‡à®Þ©yܨxÙ©z׫|Ùª{Û¬~Þ¯ƒÝ®…ݱ‚à²}䳀䵂á²zã²~ä´â°…Þ©zÓ¢xÕ£tÛ¨rÕ¦lÖ¦nᰂ綉峂峄峈䳄㮄á«~Þ¯{à®~ã­{ã­xÞ­}Þ«~ݨyÜ©và±{䶃â¶à°|ß«vÞ¦{ݤ~ݪ{Þ«‚ߧ€Þ¦pÛ¨sß®~䵂㰄㭇屃â­zß©zܪ}Þ¬|à®}á²}ä´â°„à°Ú¨tÕ¡uÞ©|âµ~ß³sâ«rà¨{Û©zݪxà¨xâ©zâ«xÙ¦nÖŸlØžlÔ˜iÑ–jÓ¢oÞ³ƒå¸†á´}á²}à¯{Ü©pÕ¢mÒ¢h×£gÞ¦rÞ®yూâ­~Û¦sؤpÛ¤pݨqà­sã²乎纔綈䴂᳉㲊淅蹇峇ݰ‚ݲ†ãµ‡ãµ‹á´ˆä·„绕ã¹áµz争軒蹆清㸃ã¹çº„纈嵄â°á°yá®vá­yâ°zâ¯{ä­{ã®wà¯u߬vÞª}à®zá®zå®{á³zÞ°uâ«rß­xÝ°zá³|ᶄ᳀â°vß®wܬx߯xå²{ã°w߯{ã±}ã²wà°tà²wà®yà­uà±pà±tá¯vâ³{䴃㳄㵈å³ã³uá¯sà¯uá²vß®uß°{ã²}ä²á´}à´tà²oß²tã²xã²xß²}à³|ã¹{â¸~â¶~á´xß²{Þ±„ආᴃ߱…ß´„ഈᲄà³á¸‡ß³„Û®~ß³|âµ~à°~ß°~ೆආ޴‚Þ´‡Ü±~Ú®|ß³†Þµ‹Þµ…Þ¹„Þ»…⷇ⶋ᷆޸ˆß·‰á¸ˆÚ³ŠÖ­„ܯ‚Þ±ƒÞ²…೅ޱܰ}ܲ‚߲߰}Ô¡sÒ pÚ¯yÛ²€Ù®…Û­„Ú¨~Ù«|ܵ}Þ¸{à¸{áµ}㶉⻌ἄã¸áµ…Ú¬{Õ¥uͧxÓªzØ­{Ø­xפsÑ›sÌžpПmÒžkÎoÑ uÚ¤vݧxÔ¢jЙ\Ñ–[Î’XÐUБPÌ–WÏ™dΗbΙaК_Õ›aÙ¥lÛªrß«sã±qä±râ®zá­vÚ©oÖ¤rئtݯvà²}à°~á´}ß²{Ö¨sÒ¤mÓ¤mÙ¦mâ®uã°xà«uÝ©xÝ«vá±zä²~ܪsרeئlÙ¢lÖ `ןgÛ jÙ¤e׫iÝ®wÝ©wÛªrà¯pá¬lÙ©eÚ«h߯qá±uã°vã²tÞ³tÙ«nاfئkÔ£gÒ¢eÕ§lÛ­qÞªnÚ¨e×£a×£bÕ^Ó˜WÔZÔŸ_Õ¢cÛ¦oá®vã°rÞ©oߨnß«hÚ©kܬqÞ­lÛ¬pܱxá³vá®nÛ«rØ­sÜ°nÛ­rØ«oÖ¦fÓ¢cÓ¤kبqÙ­uݬyÞ­xدyد‚ᵇ㺅à»á¸ƒß²zÚ¬mÛ«zÞ°Þ±{Þ±vß°uÚ«qÙ©pÛ°pÞ®uà¬rÛ©fئoݬuß«vÛ¨yÛ«xÞ«xÚ©tÙ¦iÖ¢dÓžeÖžbÓž^Õ›aÒ–dÓ˜aלbÙžeݤiߥmá¦lå«jå«påªtçªoÁ—jݪƒÜ¦€×¢‚Õ¥xÙ«uÞ«}ߪƒá­á¬zી߫‚Û§}Ú§|Ù©xק{Ù¬ƒÞ°ƒá­ˆá²Œá²‡ß®†ß°‰á¯‚Þ¬‚Û«†Ü¨Û­~Û²ˆÛ±…Þ³ƒÞ­ƒÙ¥zÚ®}Ü«~ß®绅滅洉汃á­~ߪƒß°ƒà²ƒß®„ಆᲈߪ…Ú©€Ý¬‚Þ¯„Ü°€â¬€à¬€Û«~Ú®‚ܱ‚߯ƒß°‡á²‹à¬„צÓ¤yÚ«}Þ®…ߪ„Þ¬~Ý®y߬€Ý¯€Û®yÝ­~Þ­‚Ü«€Ü­„ݬ~Û©xÞª}ß«}ß«ݪ~Ûª}Ü­|Û®Þ¬{Þ¬zÙ©Ú§~ß®ఀ߯†á¯…䯂ᲅܰzاtÕ¨rÙªpئqÚ­q市鵅ä±}â°‚á¬~Þ­zÞ­xá¬tã¬zà«}Þ¬}ߪ€Ý§wܧvÛ£vÝ£rá«yà°}Þ«|Û¥xØ¥kÜ£mߪpß°oܬ{Ú©{جxÛ¬|ã°ƒã´á®yà±}à±{ߨxÞ¤xÚ§sݪsß«{à®{嶃ⰀܪvÚ©tÛ¨rØ©w۬ݯ‚ß«~䮃㳀â¯xá¬rá®và¯}Ý©xÙ¦vÚ¦uÛ«uß®{㸄èÂê¿êºŒéº’éºç·…ß°{Ö©uÚ«vå²{å¶æ¶ã´{߯|అⲇâ³â³~ೀ䵊㸌޹‚ค㴄ä°~ã±â²‡â¯Šá«Šá¯…⸄丄ã³~á²ⵄâ²ݱെ緆洆㲄ᰃ㱆ᴄâ±|ã«vÞ§uݨqܨqÙ«sÞ¬yá¬zâ°uã°vá¬xݪtݪoß©rߦtݪqݬpÛ¦q×¥qÛ¦nÚ¦qÚ¥pÛ¥kÞªtà¬~ܪvܬpܪtÞªsÞ¬oܤmÛ¤oÜ©tاtاqÛ¥rÛ¦zß­xâ­làªrà«x߬xÜ­vÝ«yà«yà¬uÞªpݪmݯuݬvߦtà§qß«lÞ¯nß°uÞ²vá·vßµrß®oà°xß´yá´}ൂâ·~Þ³zÚ®ಀݵ€Þµ‡á´…ܲ}޴㶂â¶~一á¶~Û±yÞµ}⸃ඃഄෆݵƒÛ²‚ݵ‡à¶‰Ý´†Ýµ„ßµ…ß³ˆß³ß¶ˆá·ä¶…ß¹ˆà»‹âºˆß¶á´ƒßµ„Þ·‰á»Œà¹†ßµà´ß°ƒà¶Šá¾‰ß´€Û¨v׬vÝ·„ⵈᴂߵ{ܳ|Û²|ܳ{ß³Û­vØ°|Ṋ㷌޳…ݱ}Ý­}Ö«‚Ö­~×­|תzݯ}Þ²‚ת{Ó¦uÔ¤rѤtѨwÕ¬x׫{ܯ…ܪ{×nÓ™lÒ™dÔbÕŸeК^ΗYЖ]Ë]Ì“aÑ•^ЖYÕ eØŸhÔœdÙ¢kߨsà®uâ±sâ²wÛ©oÒžjרxÞ´}Þ±zá±ã±{Û¬oÔ¤qÔ¨zÓ©tÕ¦nÜ«qà°xà«p߬lä³{á°~تtÓ¥hÔ¦dÔ£cÑš_Ô™YÕ¡_Õ_Ú eÙ¦jÓ¡`Ô£aÚ©oئtÖ¤rÙ¦rتpÙ¯pà¯tâ³vã²zߪtÚ­lÙ±nÕ§lТcÏ¡_ÕŸf×£kÕ¥kÔ h×¥iÙ¦jÔ›bК^ÓŸ[Ò›WÑ¡cÝ«vß«pئhÛªpܪoÙ¤gÙ¤cݪkݯmÛ±qÙ°tÜ®mÙ«mÖ«uÚ®xÝ®rتkÓ§hФhÑŸoÙ§tÝ­rÜ°wܯuÝ®xÚ´ƒÞ·‚Û¶€Û¶ƒàºß¹vݯuݯwÚ±oÝ®t߯{ݯzà±yÞ­uÚ¬tݲtß°sÙ©rÙ¦rÛªs߬pݨvÞ«|ß­{߬zÜ«tئkÙ¥jÖ¥gÑŸdÑžcÓcÔœgסnܤná¦mäªqä©nÜ£dØœbØœhÛ¢g»cߥ„Ý¥{ۧߩƒÝª~ޫଂ۫}ݧ}Û¨zÙ¦yܨ}Þ¬~Ü«}Ú¬ƒÜ°ˆà²Šâµç»‹äº‰Ü³Þ±}Ü°€Ý²à±}ß±„㵊㴊ఌ㲆à¯}Þ©଀ڨ{קzà³€åµä²‚ä¶~㶀䲂䱄౅ݯްß´|߯zß°á³Ý±~ݯె߯„Ý«~ß­‚ß±†à®ä³嵈䯆ޭzÕ¦tÙ©{ೄಂ߮~߬€àª}à«yݪ|Þ«|ã¬|âª~àªyߪuÝ«vÝ«{Þ®zà¯uà¯஄ެ„߯‚â«uܦsÙ¤tÛ¥uÚª{ß­{ß­yÝ©Þ©€Þ©vÛ¦oÙªoÛ¨oݦlÛªx߯嶀ä²~á«zâ¯yá°|ß­ã­~à¬yߨ}Þ§vÛªsÞ¦yÞ¥zשuؤtÚ¥rÝ­xß²|Ý®yÜ©yݨvà®wá±zã³~à±{߬tá©tÞ¬|ూå¯}ã®xß±‚ⱇⱂஃâ¬â¯â°„ç°沀䰀á¬yà¬v߬{ß­€â±ƒãµ…㶈嶋湈䷄䷇幇䶅ⱀⱀⲊ㳎ç¹æ½’轓뼓ê»ç¹‘ê»–í¾Žå¹†à²†ã´Œæ¹„æµ~Ⳇ䶅è³ä´‰çºŒç¸‹â¶ˆä¸„淆洉䳈涉湅跄浈嵅䰂á°á¶ƒá²‚ä±~ß²{Û­yÞ¯~á°xß«sß­~ã²~ã­tà«xß±|ß²xß©qߥkÛ¦mÛ¤nÜ¢jלhØ¢uà²à´yß®sà¨oÜ£oÙ¦uÚ«uÛ¨tÞ¤rÝ¥rÚ¥sÛ¤oݦjܨiÙ¨mØ¡fÖœbÛ¦qß­vÞ§pݦrÛ¥rØ¥lÑ¢eÑŸkÖ£rפqÖ¢lÕ£hÖ¤gÙ¥nؤtÚ¢oÜ£mÚ£mÚ¢iØŸhÖžjןiÙ kÖŸkצkÞ«pܨvÕ¥kÔ gÙ¢mܧjÜ©kߨná©sß«uߪrÞ¬qß­rà­zá°wä³uã²{â°}â²yà²và¯{ß±{ݵ}ංá²~Þ´yáµ}à³|߶}ä³}嶂Ẅᶀá´â³…᳆޷ƒà¸‡á³ˆá°|ã²yá²{á²|Ⲃ㸊帊䳅ᶄḌ⹎⺅⹆㶎㵊ãµä³‡ã³„Ý°}߸ƒåºˆå·„ߵݳzà·㸉湄仄ṃ߶‚޳ܮ}׫~׫ß·†â¹…ಂߵ„߶†ß´†à´„Û°~Ù®Þ³Œß¶‡Ý±‚ܯ…Ù­„Û¬yØ«wÒ¨wÔ¨tשxÖ£vÒ jÒ¤gÖ¥pئrÙ¥nÕkПdѤkÓœkÏ–aÍ“aЖ[ÕcÖœhÑaÔœZÙcÚ§qÝ«qà®tá¯vÙ¡iÕŸjÛ¬pà²pá¶|â¶~ä´yâ±qܨkÓ¡fÍŸbÓ¥mÝ­}Ý­xÛªqß«tݧsÖžnÔ jؤoÝ¢oÚ¢dÕŸaÕ›^ØZÚ¡aݦiן\Ñ—ZÙždÖ¢cÖ£mÖ¤oئhÞ¬oâ¯râ±pä²rå°uá¨mÞ©nÛ©kÓž_ÌšbÓ£fبcÕ£gÖ£lÛ«uݪvÛ¤lÔ¡gÖ¦cܦeÙ¢hÖ¥i×£fØ¡_Ö¤bÚ¤eÙ¡`Ó¡`Ó¤fÚ¨fܨlØ©tÙªnÜ©lÛ¬oݯmâ°uÞ®rÙªhÙ¤nÚ¥kÚªlܬvݲ޲„Þ±€Ü¸~Þ·ƒä¸†ä¼…æ¿‹éÁ‰à²vÝ®sÝ°wÛ¬mÙ§mتtÜ­uÝ­tܲráµtâµyܳsÖ§mשrÛ¯sÛ«rß«{Ý°{Ý­sݨsئnÛ¥pݨtÕ¥kÒŸiÖžlÙ gÙŸfÚ mÞ¤gÞ§eÜŸ]ÐPȉSÊYÑ™]¹Ž^Ý«yß­~ᰆ߮‰Þ¬‚ګ٨إsÚ¥rܤuÛ¥uß«}ⲃ߰~á°ä³†Þ´Šà²‹ä³ˆá²‡Ú¬€ÙªxÙª€Þª„Þ®†Þ±†ä·€å¶„ⱆⳆ㳌á±á±‰Þ¨„Ø£}بvÚ©uݪ{ݯà±~䳇åµá¯tá®{ెܭ„Úª~Ý®|á²ß°}á°{á²zݲyൃ㸇á²ß°‡á³Šçµ…ç´„à±zÜ«tÛª{ݬ}ß®yÞ­}Ü­€Úª~Ù¥tÙ¢nÛ¨wà®|ÞªzݨuÛ¨yÚ§}ÞªwÜ©vبuبsܧrÙ¥vÚ¦wÞªvÝ­vÙ¨zÔ£yؤsÚ¢mÙ¢sÙ¥tؤoמoÔœnÓŸqÙ£nÞ©wà°á¶„ⴄᭀߩ{Þ®~ᲇ䴊ޮ†à«€â¬~Ý©uß©vá¬xÞ¬xÞ¬}Þ«~ß«å±层ã¯ã³ã³€ä²}æ°zã°~Þ®}ß«{â®⮄䱄泀䯂㮅à®Þ¯᱃䵈綋洇䳂æ²綀嶀å°ã¬}߯{ృⶉ二嶊綇湋渋蹆䲀ಅ渊綊嵋师蹊귒繓ä¹éµŠèµ‡æºŽæºŽãµˆáµŠåµŠä³‚ᴀ涄赀ä¶㸊嶌㴅巄éºé´Šå°€ä³„峇䰄䴂äµ~á®yà°vá²zß«yÛ¬uÛ­rÝ©sÚªuפqÙ£nÛ¨uÞªvß©vÞ¤pÝ£jߨrÝ¥sÛ£rܦsÙ£mÖžgÒfÕ¦uÛ­€ÝªyÞ¦oܦmÜ£sܦsÚ«vÛ©qÜ£oÜ¥xݪqÞªqÞªtܨoܤoÛ£qÙ¥pÛªnÝ©kÚ¤lØ£pÚ¤nئlØ¥lןkÖ¤pÙª{Ù¨uÖ¢gÕ£eÕŸdÓ™aÑœgÕ£l×¢kÕžhÕžhÓžeÐœ\Ì–bЙfТeÕ¢gÙ¡bÖ]ÕœbÙ£oà§qÞ¦uÝ¥vÜ rÙ¢hئfÙ¥k×¥jÙ¤eÞ¤iÛ©jÝ­ià«oÞ«rܪuÝ©và¯à°{á±~᳂à°~â²~à°}Ü°{ß°|Þ°|߲ᴅ޲yà²{䳃ḇใ޴ܱ„ݱ~ݲ|ూá¯Þ´„้㴇߰ß³{ᵄ㵉ᲃ޳~Þ³ƒÜ¯á¶~á¶~ܬvܯzÞ³…â´ƒá¶~à´{Ý´|ß·„⹉ງḄᵇഀá³|Þ°yܱzßµƒà²†Ú±‚Ú¶€Ý¶ƒÞ·‚ß³ܯ~Ù³{Þ³|ã°}ీ߳€à³{ß±z׫uΞlËšmÏžlÐœjÍžlПcÌ™cÒ fÚ¤jÜ¢uÙ¨s׫pÚ¦sפmÓ¡hÖ lؤgÚ¤jÚ¤kÕbÕšbסj×¥nÖªpÞ­oÙ¦nÐdÔŸhÖ¨uÚ¯‚Ⲃ繀븆ç¯}Ù¤qÏœjÓ¢nÛ¬|Ü©qÕ¥eÕ¨s׫vÙ©qÚ¨t߬rß­oܬqÛªnݪkÛ©jß®nâ±yÖ¢lÑ™]Óž^Õž\Ö`Ó^Ó]Ù kݦvÞªqå¯oä°oߧeÝ¥c×£aÔ[Öžaܪi߬iÕŸbÒŸcÓ¨m×­sÞ¯rÚ¬rÕ§rß­rߪnÙ hÕ›bК`Õ eÕ¢mÑŸcÏœUÑ YÒ¡^Ñ cÕ¦jÛ¨lܧjà¬nã¯uâ²vá³oÙ«jÙ­nÚ®nجlÜ­sà²xáµ|à³|Ù±vݳ}ⶇ㵇翎ç‰âµrà²vá³{Ý­oÕ¦nÒ£oܨqà°vÞ²zá°xఀݯ{Ú«sÚ¬s׬nÕ¨mÚ¨rÛ¦qݧpܦsÖ£pØ¢mܦjØ£j×¢oÙ¢tÛ¢tÜ¡nןhÕhÙœaÓ“YÅ[”]Ç™]Ó¥h»–ká°~á³å¸æ³Žã­ˆÞ¬…Úª~اzÙ«vݯvୀ㱃涋Ⲍ䶅鸌䳎ް…Þ­zܯÛ­Ü­|Þ¯‚ݯ}Þ­vá±~Ⳉãµá³…á°ä´ˆä²†æ¶†á³„֦УyÓ¦tÕ©uÔ¨sÚªpà²uâ²å²å¶~ã±}ݬ{Û©wÜ®~ܳ‚Ý®|à®~ీݭuá²}弋ⶄá­wß°uß­vá¦vߨvܨwݨvܧuÙ£xÙ¥yÚ¥xצrÔ¡nÏœlÓ£rÙ¥{ئvÜ®xß­{Þ¨~Ý©|ݦvݦxئwÕ¦{Ý«‚Þ¬Ù¦yÚ«}Ü©~Ü¥xÞ§uݨuÛ¬yÝ«€Ü¦sÙ¡hÖžpؤvÜ«᲌渇䵀ృޯ‚ß®€à²‰áµá±†ã±†ä¸Œä¶‹Þ¬€ÜªxÞ°Þ®„â°‚ã®㭀屄⮂䱃嵋㶎ãµã±{ޮݫ€â­‚岋崄跊䵊ⱀᴃ᱇ᯈ㴉䵂嶇洊â®{ß­~㳈嶂â¯}à¯|ᵀ᳆᳊ä³à®…ూ涉趆淇䳆嶂黉鹎䶆ã±}â²㴅纎潌㶉䵄帄滈躆嶋湋趋沄ä³w䴀䶅赀洀ã²~ã±{ä³|æ±}ã®xá¬uã«{à®}ß«uáªwߪuݬtÜ­{Ü©vÜ©uÝ­yÞ©sÖ£pÔŸgÙ mÛ§vß­vã­{à©yݨsß«wÞ©{á­zã±{ÚªxÖªsÙ¬xÛª€ß®€Þ¯~ß«â­}á¬|á«xÞªxݨxÛ©qÞ­sä´~å´…á°Û«vÙªuß­}ã­{Þ¬zÜ©|ß«}ÞªzÞ«{â±â´‚Þ±}Ú±uÞ³{ܭئvÙ«vÚ©lÓbÒ¢nÙ¦rݦkÖ¡jÕ£tÙ¨qѤnË¡mÍ£oÍ jÒŸgÚ¤iÛ¤mئpÝ«rÝ©vÛ§pÙ§oؤvÚ£nÕ¡hמkÙšjÕœc×cÙcÕŸbÕ¡dפc×¢fÙ£pÙ¨uÙ¨pÞªlÞ«rÙ«vÚ­tÜ©vÙ¨qÚªsá¬{á¬|â¬xá®}Þ±áµå·„ã¶~à±zà°xᴀ߲…ݲ~Ý°{ß²~à´vá²xâ®}Ⳃ㴄䳂ä·{ã¶~㲄ݫvÝ«oá²yá²z߯yß°஀â²}åµ}ã³|᳃㴂浂幅㶂à²~ß·€á³‚à°‚á°á±Þµ‚ݲ…ß±„ݲ|Û°‚Þ²Šß³~ã²vâ·~ස൅ḃàµ~Ü°yØ®wÕ¦sÓ¦sÐ¥uТkÍŸ_Ę_ÉœhÓ¨pÙ¬zÞ¨Û§€Úª|Ý®yÛ¯{Þ²|ܯxÙ§tݪrÛªlצmÔ kÒhÕžlסgئcØ£dÔŸbÖ£eÙ¥lÝ­rå¶|æµåµ~ãµvݯtרpÚ¬ná°vÙ¦jÔ¥bݬsß®rÜ­mÞ²tß°tÞ°tÞ®tߪsá­yà±vÛ©h×£_Ö£cÖ£iÖ¡i× jÖ hÕ›bÔ[× ]Úžbܤ`Þ§bá¥jߦfݦ^×¢WÓŸ[Ú¦má±qÙ¦eΚ]Ξ`Ó¥kÛ­pÛ®mÒ¦n×­uâ³uá­rÚ¨oÖ¥bÖ¢dÙ§rÖ§pÏš]ΖWÔœ[ÒžaÖ¤hÞ¦fÛ¡hܧmá²rá³qà®iàªmß®pá¶uݱsÚ¦mܬu಄߮~רqÖ§wܬ‚Þ°„廇è½á´sá²xã²}Þ²v׬qקvÚªtà¯zã·ß·{Ý­{Þ°wß±tÙ¬rØ©oÛ¦vÚ©rÙ¨jÙ¦oÛ¦{Ú£yØ£mبqاuØ¥qÙ¦nØ£nÞ¥lÙ¦kÖœiØ–gÔœdÔ¡bÔ¡gÒŸkÚ§r¾šoâ®Ⲁ㶅æ¹æ±‘䬇⭂ޯ€à°â¯„ᯂã¯~䳃巋嶇䱆ᬆ߬…ಆ䳇ä°å³ƒâ±…Þ®á°}ã²~ã²~㳅ᯅ߰€Þ²{Ⲃ峉ಅڨ{Ó£oÒ¥pÖ§{Ö¥uÕ¢s×¢vܧtß®xá¯zâ¯xÞ©uݧu߬và®wݨtØ¥q×¢tÕ¤qÙªv岇䱃á©xàªzݦvÜ¢{à¥uÞ«pà­xáªvÛ rלsÕ¤tÖ¦tÕŸrÖ¢wܭެܫ|ూᮆ᫄ீ೅ⳇ᳀ూä¸ä´ŠÞ©xݬxß°‚᳂䵄嵅âµ|à°zá®xÞ­vܬ~Þ¯„߱ᶇ乎ⷆݳ~Þ³{áµ~ⶃⴄ㱋᳈仌ç¸ß­~Ü©{ߪƒß¯†á´†å´‚ä³ూே㭊᱂᳂௄ೄâ´~ݪ{Þ«~á¶á·„ä±…ä°ä¯€â°{åµæµŠæ¸‡æ¶†ä³ã´‹Þ¯Ø©{Û«ƒÞ²„ܯvܬyß°~ⱀ㳂߲ᯅⱃ㶉䵋䲆䵈湅ã³ã±‚ã²}á­å«†æ²ˆã¶†ã³zã²}㲂á¯|ã°}æ²~ã´|㳂å´{å¯tå­yã±yâ°|á¬}à«vã¯vߧnÞ§mÞ©sܦoÛ¦sÛ§sߪvÜ¥wÛ¡tÝ¢rÙ£nÛ¥rÙ£o×£mÝ¥rÝ£kÕ£kÖ§xÛ©zܲ‚ഈ㰆᱀ݯ~Þ¯à³ൂᲆ߬€à®|Þ­à­€á´~ෆ᷋ⶃᶂ㴅Ⲃ㵀㳄ᶆ巆沀á³~ݲ|ݯ{䲂岃ᲆ߲߱}㴇㶉⺀èÀˆæ¼ˆà°|â°}ᯂܫ|Ú¯‚இܨtÛ§sß«xÝ°uÛ­zޭൃܴ‚Ù¯€Ó§yÉŸoÌ£sÕ­vÙ­zÚ¬zÝ°|Û¬yÙ§oÙ¨tث٫}Ö§rÖ§qÖ¡nÖ™dÕœfÐ`И[Й^Ò›[ÖœaÖœhÖŸaÖŸcÙžjÕœfÓ›fÕ›bÖœ`×eÕŸb×£cݦcݨlÜ«tÙ©oÚ¦sá«{ß©wÛ£qܨoݨwܨvÛ¨vÛ¨yà®sá®qá¬qÞ¯qݬpÞªxâ°{â²}ⷂ溂ݬ{Ù¦uÞ®uà¯tá²yÞ°vÜ­nã³u渀ä¹~â²yã²{á³}á²|ã³vß±rá³yæ¸â¸|á´{á´}à·{à³{Ý°|Û¬uÝ­x峂ã·|à¹ⶃߵ}Þ´{ⵀ廄乆㳂߱ݱÝ´~ر~Ò¥rÆšcÅšgÏ£qÖ©xÙ±}Ù¬yÚªzÜ°zÛ±}á²€áµ~Þ´Þ³}Þ°v߯vÚ¥mÕ iÖ£oܨkݨmÛ¤n×¥fÓ£hØžpסnÜ«tá®vã¯z岃ã¶}Ý­uÙ§xß®{Ù¦lÔ gÙ§oÛªrÙ©rØ«sÜ«uÝ«qÜ©jÛ¥nÞ¨xß«tÚ©lצkݧtܪuÚ¨mاnפgÖž]Öž`מeÔ˜^Í–SÏ™YÚ¢fà«mÜ©fÔœZÑ™RØ ^ߤlÞ§pÖ¥gÍš^Í™\Ó¤jÛ©pÖ£gÕ¥lâ²|à³xØ«mܬm×¥gÓŸeÔœ`Ê’Q‹PÌ•_ÒŸcÑŸ`Öž[Ö ^Ö¤hÚ«lÜ°mÞ­mÞ¬gÞ®mß³yá®sÙ¥nÔ¥nØ©tÚªuСlÕ¦tà®uÞ¬y䶄å¹}à¯uݬpÜ­pá¯wß±tÙ«mÛ§qݬuÝ°xä²{à±xÞ¯xß®yÛ­tÜ«xâ¬yÞ±zÛ­xܪsܯqÛ¬qÔ§qÔ¨mÙ¦nÙžkÔœiÓ¡oÙ¥sܧoݨo߬zâ´á°xÞ«tÝ«wß­p½škߧxß©ᬆ毆貅糅終泂毀㰀ã¯}ã¬yá®~à±~ã¯zâ¬zÜ«zÞ«và¬{ß©}Þ¨}á­à¬}Û¦yà®~ä´|à«xܦzÞªváªrÞ§tá¬|ã¯á­{Þ©tܧqÝ©uÞªxà¥lÚ¡gÒŸiÙ¤lÞ¬vÜ­yÞ¬tà®pÝ«uâ¯}沃߬{Ù¨vئyÙ¥zݨ{å±€ã²á®}ä³~ä´€â°à±~â´|â±á¯|ݨvÙ¦zרxÙ¨xܨyÞ®㹑繊䳃㰈ⲋⱆ㲅㷆渋ç¹ä¶‰ã¶Šã¸á²Šá³‰ä¶‘㱎౅䴊ᴊ޲‰á²‡â³ä·â´á°ƒæ¶æ¹Šâµƒä¯†á«ƒÞ±â³†æ¶‹è¾Œå¶æ¶æ¶‡Þ¬}Ú¬zಂⵅ㹅涆㲃ãµxá°zá±…æ¸å¶‚ൄ㴅䲄à±{ᲂ崈㶂㵂å²{á°yೃ与æ¸âµˆá¶ã³‰åµŠá´‚Ú§|Ú¦~Û¬ܪ}ݪÞ­â¬Þ¬„Þµ‡æµ†æ¶åºˆæµŠäµãµ‚à°Þ­xà­å­ä¯{ä­~â¬}á«yá©rß­qÝ­uݤtߥ|ß«{Ù£oÖ¢vݨuà©oá©là«mß©tݧvÛ¦oݨoÙ¦pÖ¢rÙ¢xÚ¨pÝ«mà«uâ­zߧpÜ¥sß­Þ«zÚ¥uܧvÙ¤wÛ©rÞ¯rÞ¬{â¯ä´ä¸ˆç·Œã³‡à¶„ß²~߯上希㵂Ⳁీޮxಀåµå¶‡ä¶æ´á²à³}äµåµæ´äµ€æ¹…嶃ä³{á®|á«ä±„帅滈巅万二黋èºèºç»†á²~ᯄಇݮ~ß°}â²Þ±~ೀ㳄ᰊಈ㹈湎丌᳆٧zÏŸvΞzÖ¦~߯‚Þ­|Ü«€ÜªÛ¨zÞª{ß°ƒà±€á°…᱂à°vÛ¬nÛªrÛªnØ¡fÓ™eÖfØ¡nØŸoÕd×dמeÔ™`Ñ–\Í”ZÒ–ZϘ]Í”^Ó–_Õ›\Ô¢cÕŸgЗcÐœfؤoØ¡hÓž`Õ¢hÖ¥jئlפkÖ hÜ£oݦoÝ¥jܧeÚ§dÛ¦pÞ«{ܪ{Þ¯xâ·vÞ­qÛ¦oÜ«oß­s߯zß­{Ü©vÝ­uÞ­và­uà¯uà¯và®yà¬{ß­vÞ¬|Þ«à³€ã³~à¬zà±{ã´€æ´{â³wà°}ⱃ㶉㴀å³~㵃á¯vÞ«vÞ²€ç¿…뿇缊弊漅廅帆å´~ݬwÓ¦nÔ¦oÚ«xÛ¬|Ù¬}Ü«}Þ¬ݯÞ²ᵅⶄ㶄߸…Û²wÖ¥rبoÚ±rØ«pÖ¢lÕ¦pÙ¦nÙ£gØ£bÕaןhܪpà«rã­xä³ݬxÚªjä´xã°yئlØ«sÜ®uܪuܪvÛ§qÚ«uÛ«uÙ§mÜ«rà¬tÞªsÜ«zß°|ß°tݬmÛ°qÞ°rߪrÚ¨lÙ§jÕ¡fÒœZÓ™WÓŸ`ܨhݤfÕ™bϘ`Ï`Ø¢eܪfݨeÙš]Ñ›[УcÛ¨gÙªpÑ©vÞ²|ã¶zÞ²oà²tÞ²pبgÑšeɘXÈ–TÓ`Û¤dןbÕž^Ö¤ZÕ `Õ `ئ_ߨjÝ¥pÛ¥qà«qá¯tÞ¬pÚ¨nئsÛªlÕ£bÑ¥rÜ°|à­vá¶{ã·yá¯rÞ«sÞªo߯rݱxÚªoÙªoÚ®vݱ{ഀ߲{ß­xá°|â±yá±vá²vâ°vÝ®sÜ®pÞ®pÚªsÖ¨pÖ¤gÕ fÖžiÏ–cÏžfÛ®uà®yâ´{漃뻈鸀å³{ã±è´~Å›xá¤pܦpÝ¥nÜ£nÞ¥uã¨sâ¨pâ§oâ§tâ¦vá©vß©vÞ¦nÚ¤k×¥tܦwÜ£sÙ iÜ¡kߨuÞ©rÞ¦uÙ¦yÖ¥wݧyݦyݨvà«wá«â­}à¬yá´㲄á«{ܪwß«wå®yã¬}à¬uà«oÞªtÚ«uÚ«sݪzá«‚â®à¬ß­†à±„à­ᮂã·}à³zß°}à±Þ­à°å·ˆã»“ᶌᰈᭈߪ۩}Ù¨zܧÞ«}Ü°{â´Šç·åµŠå¶Šâ¶Þ³ƒäµŒä´Šâ±Šå´ˆâ¶ˆß²‡Þ¯ƒÜ¬ƒÜ­…ß±‚ᴆ嵇á²Þ°ƒã²ˆà´€Þ²|ß±…᱂߯á±€á±|䳆䴉ᲂᰀ߯xÝ®{ܯ€áµ~巅㳈߲ˆà±‰Þ­ƒÝ®€á¯€ß­{Ü®{ܯ~ݮ߰|à¬{Ⰵ䳉ᰀఀⴇ㲂à¯~ᲇ㴉ᴅⲂᯀ߭Þ°}㷀䶇ᮃⱈⴃá¯|à­Úª}ܪz߬~ܬ{Þ°{à°Þ°|ß²xá°zâ­wá¯tá­}ã¬ß«|Û©yܦpÙ¢kÜ¥x߬}߯uÞ¬pÜ«uÞ¨wÞ¦uÙ¤rÖ£rØžrÙ£mקoÔœlÖŸoݪzá¬}ã«zá¨uܦxÛ©{Þ¬zá¬|Þ¦{ܨyÛ§yÜ¥uä­xâ±~Þ¯zÞ­z߯㶆⸅ޱƒÝ¬}Ú¬xá°~綆䴄á°à³äµâ³‡ß²„â³à°{Ý°~㷌軇嵀㶄ⴂà­~ᴆ綂沃䴇äµzâ°{ß­~ã±á´‚Ⳅ糆ç´á¯~Þ®xà³u಄㴇繇溅嵂ä³踈æ»å¼ŠåµŠß¬ƒÛ§xà¬~å²á±yß°|â²á²|â´yã·€ã´å·|ã»ä¹†á³à³~ݲ٬|Ô«sÖ­{Þ°€á±wà±qß®zá°~岃涅ã¶â´…帉߶‡Ü®…Þ±…ᵆã±}Ù¦qÔ¢sØ£tÙ¥vÚ£wÙ¦vÙªyاxÕ¡kΘ]Ì•^Ì•^Ê’\Ζ\ÓœcÖœgÒ˜`Î’[јbÑœbÌ•[Ì™_ÎœcÍœaÓŸjÔšhÔ™]Öž`×›bÔ˜\ÕœfÖ¢mÔ¢fÓ¢kÖ£gØ dÖ¡hØ¢fÖ fÕ£jÖ¥oÖ¡kÖ pÖ¢jÕŸhÕ mئkݦmÞ§pÙ¥mÙ¨pÛªuà¬uÞ­tÝ­nÛ­tÚ®yâ¬yå­á­Þ®uÞ­vá®}ä²yâ¶zâ¶~䱂䯂ݰ}Û²€ä·Šè»†ç»伂弅êºæ·|å»å½…Þ¸ƒÚ­yÜ­zß±ܲ}߸zâ·|Ý°}جxÞ­|á±€à³ã³zܬsÖ©rÖ©vשsÖ¦lÓœnÔŸlÙ§mÝ£qØŸpÔ gÙ¢gÝ£mߧjâ­o߯tÞªnß©nâ±qá±sݬnܪkÞ¯uß´x߯rÝ©oÜ­qܪn×£iاmبoÜ£jÞ¥oß°qà°uÝ­uß®uß®xÞ±zà²xâ±rÚ¨mפgݪgÖ¡dÕbÙ¡eÖŸ]Ô \Ó \Ö¢`Ü¥h×`Õ˜\ÖaÖ¢bÖ¦eØ«lجpÚ«wä¯}ã±wâ´xä¹}ß®yÓ¤nУbÍ¥aÌ¥dТbÔeÖža×¢]ןaÕ eئkܨkݦjÙ¡i×£eÚ§dܨiÛªkÖ¬nØ°qÖ©oÓ¦rÚ±vÞ°oÞ±rå´tæ¯sã¶pÝ®lÚ¦kß­oá«qܪnÛ¬kÙ©pÙ¨|ß©|Ü«xÞ´wÞ¶uÛ¯xÛ¬uÚ­pÙ§oÙ¤mÚ¨nÚ­oÚªsÖ¤pÔ¤iÙ¨oÖ£lÎœlÖ¦qß­sá¯{ä³€ç¶çµãµ{äµ}ë´}ÄšuߣvߥtÝ¢pØ™kןkݦyá§xà¬uß­}à§~á¦yߤxÚ£u× tÖ pØ¡oÙ¢tØ¡qÚ¥gÞ¬là­váª}ß©ߨ}Û§rاo߯ã´ƒã±|â°à²„㵃巂ூá¬åµ~淆糊ã±}߬wÞ­Þ°ƒá¬zá®~ಉ屄á®Þ­„ೄߵ„᳂䵄㵌â²ä¯ƒà®‚Û¬„ß²‡å·Œå²Žã°…ß­}à«…ß«~Ý«vß²~㻉七䲄ᯉڬ‚Ü©‚ß«€á¯|㱅ಊ޴„ß²€à«|Þ©xݬ~ܬ~Û«xÝ°‚᱋ᭂޭÞ­…ä­ƒá¯}Ù¬xݬ{Ý«}Ù¥yÝ©yà¬|à°Þ¬€Û¨|Ý«à«}ß­yÚ¨|Ý¥vܨpÚ¨tÜ¥uÚ©xÚ©ݧ{ݨyפtÚ¡pÞ§vܬvÜ«tܨwÜ©xÞ«uÞ¬xÜ«ß­~à°~ß«à­yà¯~Þ©€Ý©uàªràª|Ü«zÛ«vÚ¨{Ú¨xÜ®uÞ°yÝ«yÝ«xÝ­xÝ«zÛ§uÛ§oÞ­{Þ°~Ù¬uÝ­uà­qà¨nÞ¨pÚ¦sÚ§uÙ§tÓŸmÒeÕ¡fاqÞ«zÞ¯Û¬tÛ¨sÞª~Þ©xà©uÞ­xܪuÝ«zÛ©yÚ¤oݱvä¸è¶‰çµ€å°|䰄沃䲄㳈ⲇᲈެ‚Þ­~á¶â¶ƒã³„㳀අâ¹â³‡ß¯ß´~à±}᱇⸌⷇㲀â¯vá°zß­}ß®~á²€àµ{â¹è»ˆæµƒâ±‚ã¯}â®|á®~á°}ೂᰂä³ã³~å°|ã°á²ƒâ±|á²~á±€á®zà­uâ«zீೀ㲃ᲃà³~ß­wÞ°xß·á´ƒã´}à±uÖ©tÕ¤tÛªzà­zá¬sâ®tâ°|Þ³zß³}â³~â´zâ³yà³zà³yà®rß®râ³{âµzÞ«uÜ®zßµ{ä´à®|߯~ç·€å´䷊ආڬÝ°€Þ³}Ø«{Ú«~岇㷈ܰ}Ú¨wÖ¨uتsÚ®{ܮ޲„ൃܰvÕ¦iÎœgЙ_ÓZÕ£fÚ¨tÙ¤oÔœgÒgÓ¡cÖ¢fÔ dÎdÏšcЙbÓ›fÔ–cÍ“\ΙeÔ lÖžcÕŸd×£o× nÔŸfÔ£nÖ¢sÓœhÓš`Ô]ÓŸa×eÕ˜_Е]Ï–fЕcÒž_Ö¤kܦpÚ¤lÕgÕœhÚŸoÚ¢kÚ¥mÛ¥q×£nצrݬtÝ«mÛ§mÛ¥lÛ¦pܪtÝ­sá¯yà­xá­xâ­}Þ©yÙ«~ß²†ä´…äµã³ä³|ã³|᱀跃輂â·{Ý®zݯ}á´}á´yâ³~å·ã¹yÜ®qÙ¬lܲrÞ±uà²wáµ{á³xÛ©rÔ¥kÖ£k×¥uÙ«wÛ­{à¯}Þ¬vÕ¡k×¢lÞ©mÞ§hÞ¨sß«rܦkâ©uä²|Ý«vÜ©mÙ¨kÛ§ná­vá­uÛ«mÛ¬lÙ§pÕžjÔ¡iÓ¡iÓ¢jÚ¨qàªtÞªuÛ«uÝ­tá­và¬zà¬~ã±|ÞªoÛ¦qá®uÛ¥cÕš^ܦhߨkÛ¤qÔ¢hÔž_Ú¢gÓ_Λ^ÓœbÖaÙ¡aÛ§mÛ§oÚ¦hà¬oÞ­uà±uç¶xâ²wÛ§nÕ¥pÓ¢oÒŸhÒ aÓ cÖ¡dؤbÖ cÖhئoÙ¨iÖ¡bÖ¡aØ¥eÙ¤bצe×¥f×¢hتmÙ«sÚ¬zÚ®tתlÛ¬lá®oã¯pâ³tÞ­pبmß«uå®uá°pÜ«oקpÙ§oÝ«nÝ©rݪuà°vݬrØ¥kÙ¦oÙ©qרnÚ©oÛªuڬݬuÛ®qݬ{Þ©qÕ£hÔ¦l߯pâ°xÞ°}à³}äµzã¶}á·å¹{À wâ¨xãªyä¦zß¡vצ~Ú­…᳂െޯ‡ä«~äªÞ¦Þ«ƒÝ­Ü¥}Ø¡vÖ iÕžhÙ¡rÜ©yᭀ䲃沂ä®~á¯|㰇峇ᴅ߳…ß²„ᲈâ¶ä²’嬇⯆Ⰶâ¯â²…â±à®~Ü­~à¯}ã°‚à²ß¶„Þ°‡Û¬Þ²ƒà±†à°ƒß²ß²‡ß³‰á³Šá³…à­Û©ƒÝªృೈᮆ߭„ß²†ß²ŒÞ²Œâºèº’߯…ܨ}ܧxÙ§xÛ¨}Þ­Þ°~Þ­~Þ«€ßª}ܪxÛ«wÝ«wß°{߯|Û«uÝ­|á®ß¬wÝ«vß­xÞ¬rئjסjØ¡pÚ§pÙ¥jןjÙ¤uÝ©wܦtܦvߥtÚ¦tØ£uÕ¢pÖ¤hÙŸgØ›kØkÓžjÔ¡nÛ¡oØ¥kÖ¡iÚ¢qÞ¬|á§vÜŸh×¢jÚ¦rÛ¤sÙ¢pØ¥rÙ©~Ú¦yØ¡kÛ kÜ¥sؤrÙ¤oݧmߥqܨuÚ¦uܤvÝ¥rÛ¦vݦrߢoÜ pÛ¦oܧq×£u×£lݤnÞ¦uÛ¡fÝ¥lÝ©{קuÙ¤mÙ¤hØ¥kÙ¥oÙ¤oÙ¤sÚ§tÞ®và®⫇â®à«{ᫀ߭{Þ³€äµˆà­ˆÝ¯‡ß²€Þ¬xà°|䷀䳂峂ç³峄嵊鵉赂涄å¶ã¯ŠÞ©~ܯ~Þ±„á±€Þ°}Þª⬄߭€à°}嶂ⵂ߲…äµä¶à´à²~à¯yà¯vâ®|ä¯á¯xã®vå°yà³yá¯xà«uá¬ráªpݪlݨkÞ¨rá­xã±{ã®xà­xߪpߪtÞ¯|Û¬uØ¥nפoÚ¥vߤtÝ£pØ¢pÙ§vÚ¤oØb× hÚ¢qÚ¦tתt×¢tÙoÒ¡jÓŸgÕ¢aפ`ܤnÙ¦rؤmÛ£nÛ¨iݧmÜ¥sÙ¨pÚ¨nÚ¦mÝ©tà­xÝ©vÛ¥oÚ¥nÞ©uá®uÞ©oÚ¥uß²zãµ~á±}ܯyتvÛ®xß°vØ©rÒ«zܲ~ã³~㵂Ḉޱ~Ù­|Þµ…ඃߴá¶Ý²Ûª~Õ¤uÕ¥pÙ¥sܨyܪzפtÓ£qÖ§qبvÙ¬yÙ­vÒ¦pÏ¡jÔ¤oÕ¤sÓžjÕžh×¥tÛ©rܪrÙªtÕ¬pÔ¨oÒŸqÔ£vتrצoÕŸiϘ`ЗaИ`Í–`Ι^Ïž\ÒdÖŸn×¥qØ¥oÕ¡lÏšeΙ_Ñœ_Öœ`ÖšdÒšdÓš`Õ›`ОjÖŸgÛ gØ eמgןsפpئkÙ¢oÙ¢mÚ¤lؤhÕ¢fܨrÞ¯{Þ±~á®yß­sÞ¬sÞ«yã°{ä³yß³{Ý©uÝ«{ß²ƒß±}߯y㳂ã´Ý°{Ú®~Û°{â²xã°xß´|滀æ³yÞ«pÙªpÙªsÚªyÞ­xà±x߯xרsØ¥nÙ fÑ fÔ£kÙ£nÙ¡lܨqã°tܪmÔ¥gÕ¢cÓ cÕ£fÙ¤jܦkܨhÓ bÍœ^×¢cÚ¨oÔ¨oΦqÕ§qÚ¥qÚ¨uß®rÝ«pئtÛ¬€ß±xß®jÛ«oÜ«nÚ©cÑ bÓ j×¢cÔŸ]Ì–^Ηb×¢mÖ¢kÖ¡cÔbÔšaØ hØ¢kØžcØž]Ù£bØ£hܨjݬkÞ«q߬pÛ«jÙ©kØ¥pקhÖ¦iÖ£nÖ¡cÒ™]ΘaÓžg×¢eÓž_КcÓšbÓ™[Ñž\Ó [Ö^ÓžgפmÜ©kÔ§iפhݦgؤgݪná«lÛ¥kפjצiÚ«nâ°tÞ­rÖ¥i×£hؤkØ¥vߥ{áªvݬmÙ§m×¥lצlبtØ«wÜ®vá°xá®uà­pß²{áµzܱnØ­qÞ²wâ³yã¯wà±uáµx㲀߰„âµy¾¡lá­}á¬|ä«}ä­ß¯„Ü«€ß±…㳉㯅ᯀᭂ⬄㮂ã­à§Ù }Õ sÒ¡oОnÑpÖ¦wݯà°ⲃ峊æ²å³å³‰â¯†æ²Šæ»æ¶ç³Žä´Šâ±‡á±‰ß³Šá²ˆá²ƒÞ²~Þ°|߯{á´ⶆá´ݱܯˆà±‰Ý°Ýªzà«}ೇⶊⷆെⲇ㲇ްݮ‚ᰀݯ€Þ®„Ⲉ᳃㳃ã»æ¼“專ૃܫ†Þ«zÞ¯yಈ߯ݩvݧxÞ©uݬxÙ¨tÙ¦lØ«tئvؤpÙ¬y߬xߦrݨrݦvÜ xØœqמlןmןpסnÔjÖrݦvÞ¨pÞ§rá¦vܦtצq×¥pÙ§vÛ©uݨsÛ§uÛªsÛ¨vÚ£qÙ£kܪpß²uã°yä©tÝ¥oܧuÜ«vܬrݧpÛ¡rܤxÙ¤vÖ¡qÙ¡tÙ¥{بvÙ¦oÚ¨tÚ«vÞ¬|Þ­}ܪsܦnÙ¤oئqÙ¦q×¥pÙ£qÞ¦và¬ߨ~Ý£vÞ¦yݦvÞ¨zᮂà¬|ݪuÞ«xÞ©zÚ¦xÛ¨vá±~縄踄洂ã³ä³ˆã´‡á±{Ý«|Û®ܯ€Ö¨zФqÓ¨xÖ¤tÔ¢mÕ¤p×£uÙª|á°~æ´|æ³~貂å²ß±~ݲ~Þ¬|ܧuצuܪ€ß®ƒÝ¬zá«tà«yߪ{ã­~㶀㲀â®}ß°và­vá²zÝ°vݪuÚ¨wÚªsÜ«rݧrá«qã¯uܦrݤjà«nÛ©nÚ¥mÚ¥kסhØ qÝ«{à®wá¦sÜ¡nÙ£jݧpÞ¨sÛ©mÛ§mÜ£cÙ gÙ¡mÕ^ÓžbÕ¢hÖžaÚ fÛ¤kןjÜ¢sÝ¡sÒžkÖ¡oÕŸkÓœ_Ö`ÕŸgÔžj×›gלbÕ¡eؤhØ¡`Ùž`Û g× dÔ gØ¥mÙ¨lÙ©kݤkÚ¢iÙ¥iݤhÚ¤hÚ£lÞ¥pܪtÞ©qÛ¦iקlÜ®t߯{Ú¬€Ó¨xÖ¨rÞ®yä³ã¶}Þ³€à²ƒâ³á±}嶂ⶃೀܰ{ѦuÒ§zÚ«}Þ¬€Ü¯}Ù¨sÙ©{Û±€à±~â±}Þ®€Ö©vÕ¥pܧyÞ­ݬ€à¬xÚ¯wݯyá®{Ü°‚Û±€Ü¬}Ù¨uÚªmÛ°xØ°}Õ¤mΘaΚdÔ¡jÖ¢pئrÙ¨lÖ£qÖ¢oؤtÖ¦uÓ¤oΡlÏjÑiÕ hÖœdÕœkÖ™jÕ™cÔšdÕœcÖœjןjÕŸiÓžk×`Ö›YÖžaÓhÓjÔŸhÓ›eÖšhÛ¢kݦkݦkÛ¦hÛ¥iܧkà«qå­uæ¯vä®vâ®{å³|ä³vß±sÞ®{Þ­xÞ¯{ß²}Þ³táµ}嵂ⶃ㹃è¸å´~ܯyÙ§sÛ¦tݪwß­|â³|á²{߯yÝ©jÖŸhÓ¡lÑŸkÏjÕ¤lß©rß«s×¥o×hØ¡gؤdסeפmÖ¦kÔŸ^Λ[Ó¢hÜ­oÖ§eÑŸeÕ¤jÖ¥iÕ¦qÛªzÛ«vÜ©qß­vá¶wã³uà¯xâ²tá®o×¥hÓ dÏdÉ›]È–\ΚjצnܪpÝ«xÝ¥gØUÔŸ^Ö eÓ™ZΙYÓ¡aÕœaÙŸdÛ§eÝ«mß«rÝ©lÜ¥lÛ¦oß­qá°tÞ®tÛ¬mצdÔŸdÑ iÓ§lÛ©nÛ§oÕ dÏ›\О\Òœ[Й\Ó›`Ø£rÜ­vÒ©hÏŸbÛ¡eÙŸ`Ó£dÛ«lÞ¢jÝ¢gÚ£`×£fÞ¬qà«mרmקlצhÖ¬qݯvÞ¯wÛ­mÙ©lÖ¦oÔ£cÓ¥hÚ«xß­uÝ­rݬvà°väµ{ã´â¯€ä®~ã°{â­vá¯xá®uæ²ã±}àªsà¬tÀ–gá­á­„㬃á¨ᬃᲀް߫†á®„à¯|á¬{â«~ß­~ã²~ä¯|à¨yØ¡uÏ™k̘hÌ™iΘiÕ¢rÞ¬{㰀洃崇䱈㳆ⴉⵇ䴊嶑湎߲„ß­„ä´Šà´~ᰄే߯஄à¯~à­~ంಆà±Þ­zß®߯ƒÞ¯~â±zãµ丆浅ä¶ä»†æ¸‡á°…Þ°€Ý¯€Û¬Ü°ಃ߮Û®zß±ᶉಃݫzݪyߧzà¥sߪuÜ©uÙ£vÙ¡qןhÙ lÚ£qÕ¡oÔ›jÓšhÓ¡pÚ©uÞ¤rÜ nÙ§sÚ¦xÜ¥qÛ£kÚ¢tÛ¦tÙ¤rÖ£rØžqÜ¥sÞ¯Ú®„ܯˆß¯‡Ú«Ü©}Ü©ƒÞ­†â³~â­~á¬ß±~ݬ{תuÚªyß°…ß´„ß®}á­~ݬzÚ§{Ý°}ᴄ⯃ܭ}ئvÜ vߤsݧwà¬{Ü«uÙ¨yà­ß©{ß®}᳆߮‚Ú«uÚ¦uÝ©tß­uÝ©xÛ«|㳄賈ᲀ޴yà±€à®}ã²|᱉߯€á®xß«ÚªƒÛ©Ý¯ƒá¶†ãµ†ß²ß±vß­zá°„å³}ß­vÜ©tÙ¤rÓŸq̘fÄ^Á`Ã^¾‹Y¾Ž^Ô`Ì™fÓœm×¢lÚªsÝ­sÛ©tÙ¥xÙ¦oÖ¤hÕ¤mÕ¦rÚ¨qß«uà«xß«zà­xà¨sߨuÞ«{ݧtܦoÚ¤kÖ¡pØ¥tÙ£jÕšgÏ–fÏŸjÖ§nݪsá±㲀ܤsמlÖ¤nÚ¨nà¨jߦgØ¥pÝ©tá®tá®xà©tÛ¤jݤsߧxÞªwݪ{Ü©~Û©|ܧpÛ¥jؤiؤkܨmÛªrÞ«xߪxÞ¬{ß­|Ù¦tפhܧnÛ¨qئjÖ¥m×£oؤhØ¢hÚ¥lÜ©pܦsÙ¥mÙ£hÙ§nئkÙ jÝ¡mݦlܧuÜ«uÙ§nÚ£nÛ¦oÛ«rݪqÛ¦lÛªtÙ©uÕŸjÓgؤmÜ©sݨqÕžjИaÔŸfÙ§tÛ¨sاqÝ©sá¯xஂá­~Þ¯yÛ±}Ú®zØ«xÛ°~ݲ‚ܱ€Ý²ܱ‚ܱ~ß³€ä¶†ç¹†ã¶‚Û­zݬzఀ߳߷ƒß²‡Þ¯Û²€Ü³€Ý®~ݯ{Û¬{Ý«|ᴂᵆᯀبtΡiΠmÙ¨vÝ®~ܱ‚Û«}Ý¥tÛ§oÖ©pØ©rÖ§uÖ¨uÕ£qÓ oÙ§xÝ©}Û¦vÚ¦oÜ£nÚ£jÔ¥k×£sݦqÙ¦mÙ¡mןlÒ›dј^Õ›gÔœjÒdÓ›`Ô™`ÕeÖiÖšhÖžcןfÙ¡nÚ£kÚ¢là¥pß©oÚ«tܬ{à¯wÝ­sÚ©vÚ©vÝ«wâ¬zÝ­zÞ®{å²㳃㳃â¶{Þ´wÝ°sÕªo×­xß²|ß³yÞ³vß´zå·€á¶~Û¯vبrÓ£iÏ¡kÔ§pبnÚ¦lÙ¦kÙ©mÙ©jÚ§mبmÖ§hÙ¦gןaЗZÔ dÛ©nÕ¡fÓŸdÖ£gÖ§eبgÙ¨nÙ«nÝ«qá«yá°~àµ}â¸}äµ{ä´á±sÙ¦eÏŸ_Ëš[É—^ÊžfÕ§kà®uà±uÚ¬jÔ¢fÔœ^Ñœ]ΙZЗYО`Л\Ò›XÕ¡\Ù£^Ù [Ø ]Ù aÕžcÙ£hÞ¨kß«lá­qà¯uÞ­qÖ¦mجqá´wäµxÚ­iÒ¤`Ô¤eÖ¡gÑŸdÑŸdÚ¥qá®v×£iΚ_Õ£hÚ¦nÖ¢cÙ¤cÛ¨iÝ«gÞ¨mÚ£oÙ§kÜ©kÝ©gܪj×£lÙ£nàªsàªsÞ§pݧhØ£aÕ¡gÕ¦mÛ§já¦qܧsÚ¦hÞ©nà°yá°xá°€á¯ã­wä¯yá¯|â±vä³}â±|Þ±vá°u—má¯yå«à¦~ݧ|Ⳋ縎毊⮄á¬á¨|߯yá¯{Þ¥}Þ«ƒáµ‡Þ­€Ø¦xÔ£xÑžxÍŸ{Ë¢yÓ¢rÚ§zÛ­zÞ®y߯‚᱅洊丅޴Þ²‰â´Œä³†à¯ß®†ã°ˆã´…â´ß°wà­z߯…Þ²…ீᰀâ±|߯zÞ­yß²Þ°ƒÜª}߬~Þ®ܪޫƒâ°ƒæ³‚䷆洅䯂߯~ܬtܪxà¬Þ©vÖ¢sÔ¤yÕ«zÖ¨tÙ¦vÙ©vÛ©qܨqÛ§rÚ¤oÛ¡qØŸsÖ™lÓœl×¥sØŸmÒ˜gÖ¢rܬÜ«~Þ¨zݨyÛ«zݧyÞ©|Û¯†Þ®‚Þ°Þ®‚ܪzبxÚ¬‚ⲉே޲ˆá°ŠÞ«‚ݬ{౅ⵋ᳄à­ß®Þ¬}Ü«Ø®yÛ«zÜ«ƒÚ«~Ü­~Ü­‚Þ«á®~â±á³ƒÝ°„Ý©€Þ«xÝ«tß®zâµ~à±~Þ¨zݬwÞ°}Þ«Ü®}á´å°ˆà¬ƒÜªyÚ«yݯ‚ߪ„Þ±‡àº‡ä³ƒà¯|á±zá¯}à®{ã³~䲃à¬zݬvܪ{Ù¦{Õ«wÖ¯xݧtסvОqÔžjØ¢r߬~ä®yݦsÙ oמjÔ™hÐ’YÆ‹OÂŒUÃP¼…J½…RÅYÈ—cÉ—eÈ–eОoÔ¤oצkܧpÚ¢oÙ¤oبtÚ©zà®}à°{Þ¯vß­u߬yß©sܨrÛ§tݦnݦlÙ¢mÜ¢qݦnܤoÙžhÔbÔ¡kשoà±x涃渀ã®zÙ£tÕ¦sÛ¬pÜ«qÞ§wãªzã³xà²zà­ݨv×¥tÛ¨yá­|à«|â¯wâ³|à«à¯{ß²vÞ°|ᵃᵃ߭€ß­~ܲâ¶ä¸ß±}Þ¯vß®uÞ®}á®zà¬rݪtÞ­xá­|àªÜ°~ݯyÛ¦qÙ¨lß²yã°yà®sß®sÝ«oÚ­wÛ®{ݪzÞ«zß®‚ఃⴀã±{ܧqؤrبqÒ¡jÓ jÙ¤kݪmÝ£lÒžfÒžfÙ jÔŸbÕ¢fܨqݪsÞ©yÞ«yÙªpÚ¦oÞ§qÝ«uÝ«|Ù®zÙ­tÝ«vß°vß°uã­yä°{àµä¶ˆæµ‚ß´ßµ‚á·{á¶~Þ²„ßµ€ß²~ß°|Ⲅಌâ¯ä¶€ç¾Šè½Œä¹‹Þ±~Õ§uÖ§tܯyá´€â¶|à²xá±|ݱyÜ®z߬{Ü«yÙ¬Õ¬{׫tÞ¯{à³…ß®€Ý¬yÞ®{ß­xÜ©rÚ§vÚ¨yÕ¦tÒ¤oÔ¢mТgÑ¥lبrئnÕ£nÔ¤lÖ¥nÖ¢tÔ¡oÔ iØ¢hØ eןcÓ¡dÑ¡gÖ£fÙ›dÕ˜dÓ_Õ£f×¥nÞ¤nÞ¤mÚ¦iÜ©nݨnÝ¥iÞ«pà¯vß©qÛ¬r߯uß©oצmÙ«sâ°tà¬mܪjÙªiÞ±nå´và±rÞªkÚ¤nÏžoÌ¡m΢kÑ¢oשuß®sÞ«pبoÖ¥nÚ¤kÚ¢mÛ rÛ¢kÛ¨kÞ«tÞ£rÚ¡fÛ©eקjÕ`ÔcÖ£sÝ©xß«tÝ«oã±vä±yã²tæ²uå²yâ±xÙ¦iÍš_Í™bКeÕ¦hß­sÞ­wÙ­oؤhÕ¥fתhÓ¡eÑfÚ¡fÔ™]Ì”XКTÑœXј_Ö›]ÕŸ\ÑŸ_ÓŸ`Öœ_Ù `Û¤hã¬rä²rÛ¨jÚ¨oâ¯uå´wà³v߯rÞ¯qܬqÚ¨oÙ©pÜ°{åµwܧhÐœdÖ¤mÚ¦lפiÙ¦gÚ¥dܤiÞ¦pݦnÜ©lÛ®lÚ©hÙ¦nÙ¨nݧnà§ràªkÞ¨cÞ¬hÜ­iÚ¨iئmܪmá®rÝ­qÚ¨oÞ¦sä«vä°|çµ~æ´{ã°yâ®uã®yå±å´~ä²zà°wã³u¿žqß©Þª{Þ¦v਀äµæµŒã­€ß­€á¬‚Ý¥€Ù§€Þ­€á­ã¯…㱇߭‡Þ®ƒÜ®€ÔªƒÐ§~Ï¥uЦuѧ{ЦƒÔ©~ß®yç®~â¯á±‚᱂߰„⯅ᯇܳ‡ß±„᳄ⵂá®Þ¬~Þ­xÞ­z߬}ⱂ᱄ޫ{Ú¨qÙ£oߨy߯{Þ¬zÚ¦{Õ¢sÕ£mئrÛ¦{Ý©zß®|à¬{à¨sÞ«xÚ©tÚ¦pÚ£vÖžqÒšiÒ™hÒpÕ vÚ§~Û¨~Û¨xÝ©tÛ¥oÖ£pÖ£sؤqÕ¡vÑ¡u׫xקtÓ¢pܲ„á¸ß´„ⳃⲊޭ…Ù«|Þ²€ã¸à¹àº‹ß³ˆ×§yÖ©xÝ°‚ܯ†Ü«}Ý­yÞ²~߯€ß¬஄߭…Þ­zá­|á«Þ¬vÜ®xଂâ«ݪuÛ­rÝ®{ܬ{ݯ|ܯ€Ü®{ÛªvÛ¥wÞ«~ݬ}Ý©w߬|Ûª{Ú¨tÝ¥uݧ{ܬxÛ©{ܪ~ݯ{Ü«}Ù§xÙ¥sÚ¨}ۮܫsÛ®xÚ­}ܤxÞ¦yÞ¨{Þ¦zܨxÝ©sÞ«uÞ¥pÜ eÜ¢kÚ¢oØ lÙ¡oÕžoÌ–gÈ–bÎœ_Õ£jÚ¬wàªuÝ oØ¢hÙ¤gÚ¡j×dÕ˜aΗ`Ç•\Å“TÇ•\Æ•iÄ“dÅ•cÉšjРjÖ¥nݨvà«xß®~Ý°~Þ­{â²€ç¸æµ€å´~å±xâ¯}á³}à±}ä±{à²uÙ§sÙ¤tÛ¨tÜ©sà­tß«kÚ¥kÚªx߰峄ç¶å¸€ä¸}ß­vبrÛ¬vÞ­{Þ¬€ä³‡å´€â±{ã³€à²Û­xß±xâµⵅ崋㱄ݯzÛ­{Ü­|Ø«|ß³„㶃á°~â«~à¬zá´å¹‡àµ€ß­|ß­ƒá´|á²tܧzܨ|Þ®|Þ²~ßµ{ßµ}á²{߬wܪ~ెçµä¶|ß³{Þ«uÝ­{ޯݭ}ß°}ß°€Þ®ß±ೀ߭ܯzݲyÜ«vÚ¨pÛ¬xÞ³ƒá²{߬oܨtÜ£nÚ§gÜ«rܪxÝ­oà°pá¬xÛ¤n×£oÚ¥vÜ£lÛ¤kÙ¤mÙ¢iÙ¢iܪk߬mÞ¬qݯuܪ{Þ­|Ü­yÙªzß°yã´xà±}Ü­~Þ®~â®yá«sà­xà³xâ´xä´€å·è¹‹ê½‰ãµ|Ô¦vשzⲆᶊහⴂà®~ß°vÝ°sÜ­{Þ°~ⶀ一à³}Û¬xÛ¬|Ý®~ܪ{߮߮‚Ý«|à±}ݱÖ«xקtצxצtاvÚ«vÚ­uجvÖ­pܬuÞ®}Ú­xÝ«zÞ«yÙ§sÛ©qÙ£pÕ¡sÖ¥nÕ¢jÖžmÑžjΡhÒ¡mÔ¢mÖ¦jפj× gÚ¤iݦmݧpܦqÚ§iÛ¨gà¬tã¯uݪmÚªoÛ©lÞ©iÜ¥kÓ eÛ¨fâ³tâ³tã²rß«sØ¢kÕ¤mÍ£jÌŸlÔ¥rÚ«qÞ¬mÜ©lܦnݧpß©pàªxߨwÞªtá¯sß­sاjÛ¦dÛ¤hÓœcЛ`РbÓ¨jÙªhÙ¥hݧsÜ©oئj߬på¶vâ¶zÛ¬rئgÕ¦eСfÕ¦lÞªnܪm׫lÏ£aΞaÚ¨mרlÔ¤jÙªnØ©mÔ£nÒ¡lУhТiПaÕžYÓœ]Ñ—[ΔUЖ\ÖŸhݦlÝ£dÖ bÕ¥eÛ§hß«sà®uàªràªqߪoÛ«lÚ¯v൅ä¸ß®pÕ¡hÔ¤jÖ¦n×£kØ¥mØ¢lÖ¡dÖ¥gÛ©mÜ­mܪnÚ¦oÙ¢oÛ¦pÜ«kÛ©kÛ¨jÚ¥kÛ£hÝ£cÝ¥eݨdÞ©fÞ©oݨnÞ¤hߨoà«vã­xç³zæ²yáªmÛ¦kÛ¦pÞ«uä°vè²zå³zéµ|¡yߨy߬}Þ®ƒà°‡æµ‡å¯ƒÞª~Ý­}á¨|á¦}ܨ{Þ«€ä²ˆåµˆæ·‚淅䳇ã¯ߪ{Ó¢uËnÊžjÈŸnÊŸoÏ¢oÙ­z଄ݦ€Þ±ß°…߮㱀à­zÜ­uܪyÞª{à­zߧxݦ|ß©|áªzã¨zä©}â¬{Û§u×£mÓŸrÙ¤rÞ¥tÙ¦xÙ£sÕžrÒžsÔ¢rÓ¦qТpÓ uÕ¤sÖ¦oÙ¥pئrØ£vÖ pÖ¢pØŸuÖ¢uÚ¬‚ᲊ㶌ᰇަܦzܦyÛ©vܯzÜ®~ܪuÚ¨|Û«€Ý§{ÚªƒÜ²Œß¯ˆß±†â³†â­„૆߮†ß­‹â±‡ÞµƒÜµˆÞ²„Û¬}ܪ€Þ¬‡Þ®‡Ý­Ý­„߮߭xá®zÞ«€Ü¬ƒÞ°{߬tá¬~᫃á¬|Þ¯zÛ«uÖ¤nפ{߬à«vÜ«tÜ©nÛ¤mןfÖœ\Ø dÚ¤lÚ¤jÚžkÕœpÑškÖœiݤsߪxݨuÛ¦lÛ¤iÖ¡jØ¡fÙhÑœnÕ¡iÕ¡gÑŸjÓœhÕžjÙ¢oÛ¢uÙ¡mØ jÙ¥oÙ¤pÚ¢jߤnߥrÛ¤jØ¡iÛ¢oÙ¥mÓ jÍšlУmÚ§tߨzÝ­xݪtߦwâ«uá­sÞ¬uÝ¥uÕ rÍ¡kÊ›hÆ”d¿’[Á_Ë–fТcجpà®à°~â±~㬆ஈⵊ缌滇㶅â³á«yã°崈ⱅä²ß­yÚ§uÞ«€Þ­yÞ«sâ¯zß«rà¬v㳄å´åµæ»†ç»…綄à°wÛ¬sÛªvÖ¨xÜ°‚嶊巇äµæµ‚ⷄ߶~à´{ฃᶆãµ~áµ{ß­~ߪ|Ú©{ܨyà¬|ᶂ㳃æ­ä´å³„䶇䶆ä¯|á°và²|ß²{Þ°zÞ¯}⯄ᮃá¯â´…ãµ}ã²uÞ®wݳuã³vá¬|Û¬zÚ¬{â¨åª{á°|á¯{á°và­yß­{Ú³~ᵈ긊䴇߲߰|Þ®~㲃崃ݲÚ¯~Ü®|Ú­~Ú¬‚à±~á³|â²|ß­zÛ¦uݦrݧoÖ£dÕ bÚ¥jܦhÛ¤nÚ«vݯyß°vá³vâ¯wâ«wÞ¨s×£iÕ¢oÝ«sÞ¬rÛ¨sݦvÛ¢uݧjܨiܪuß®x߯uⵀ嶃㷃ೃ۩xÚªvß°~â´…â³…á®߯}ß±{Þ­|ß®七澆龊å¶~Õ©kѨpÙ«vÛ¯|඄â¶àµ|ä³~â´~Þ°~ⲃä´Û®xÖ­yÚ¯‚ڬܭzÜ®}ر|Ü´à´~ßµ~Þ±~Ú¬vÚ±vá´}á¯}Ù«t×®xݲ‚Û¯Ô¥tÓ¡lÚ¨sܨyݨvÛ¬pÙ«wÞªuÛ©jÙ¥mÛ£kÙ£jÛ¦vá®zÞ­rܦlÞ©nÜ­mÚ«lÜ¥eà©cã°sä³{è¹~è¸xä³oá¯yÚ©xÒ¤mÒ¥iبkÛ¬rݯuݯtÝ­uݱsÛ²rÜ­pÞ¯uà±yá­sܧsÛªsß°pߨlÕžhÒ¢cÖ¤fÓ¢hÖŸfÙ¢jÔ¢jÖ£eÞªoâ®uá®nÞ«pݬoÜ­hÖ¤dÔ¤mߪrÞ©pܬpئfÏšaÓ gÙ«kÚ­jß®pß³wݲyÞ±wÙ­|Ö«uÔªgÕ¢kÏ™`È—VÉ—^Ì™^Ξ_Ñ¢aÕŸ`ÖŸ`× `Ö fؤkÛ¤hܨjÛ­yÝ©tܨmÛªsá¹ãÄ{à²mÙ¥kÙ©lܨoÙ¤kÚ§oÜ©jÕ¥bÖ¢d×£hÕ¥mئoÚ¦kÝ£rݧvݨpÜ£pܦoÙ§kؤgÚ¡jÛ fÚ¡dÜ£hÛ¥hÛ¢eÙ¡\Ù_Ü¡kà¨uä¨rå¨lߣkØžkÓ¡nÖ¥pÞªpå¯oá¯wêµwËžoܪzޫଅᭅંߧzà§}äª~â©}â©và«yà­„ç±…å±}â®yå²yâ²{áª|Ý£uË“bº„W³R¶†RÀ‘cÄ›jΠoÖ§}Ô¦zÛ©zà¬{ߧxà©yߦ{ÛŸs×rÛ¥}Þ«€ÛªyÜ¥oݤoݧxÛ§{Û¨{Ý©{ܤ{Ü¢tÚ¢nØ¢uØ¥tØ¥lסnÖ¢pÒ¤sТxÓ¡vРrТyÕ¤yשzתÖ¡uÙ¡rÛ¥wÖ¦rÓ¨oجwÞ³„á·á³†Þ¬xܪ}Ü«ܬwÞ®zà±{ݯvÚ®zÞ­ƒÝ«‚ݪ~Ü«€×ªÖ©ج~Û°€Ý®ß¯…ಇ߱„ೈᲇޱ…ß±‰Þ°‰à®„ᮃ߱„á²à­}ߪyߪ|Ý®€Û©wÛ©wÞ®yÛªp×¥pÜ¥rÛ¥rØ£nÔgΘeÔoÚ¥vÛ¤oÛ¤jÙ¢sØ›qÕ›fÒšjÒšoÖuКpÇ‘bË”`Ë•`Ç’dÕ rà¨vÞ¥sܤvئpÓžcÒ˜dÑœkÓeÕ›`ДcÌ’cКh×¥wܧzÞ¦tݦoÚ¨oÚ©qÛ¨qÝ«rÞ­yݪyÛ¦oؤuܨ{à¬zÚ«zئrܦqܬvÞ«|ã°{á´x߯vâ®}㭀߫{ß©x× oÔ[¿R½‡T¼Š[ȘeÓ¥rÙ­yᴆ崋à¯à¬yà­}Û®}ݮⶉ廈ᵀެ~Þ­ƒá³Šâ±‡â­Þ®}Þª{ᯀàµzÞ²vݯ}à´}ä²~岆繂鶅汉嶇æ¹å´Žà¬ßªvÝ«wß­{â°~ⴅ㸈䵃䶊è¶å³ˆâ³‚渂湀沂ã±}Ü°yÚ­|ß«zß­}ᴃ㵅ã³~áµväµ~崀ංޱ~à«tã³xãµ{ä±vá°|ޮ߫{Þ¯vÚ®qݬxâ°~à¯yÛªmÙ§hÚ©qܪrÜ©mÙ©rÚ­vÛ­sܨnÝ©nÞ®tݯvÙ©zÛ«{â²æ¶Šâ´„áµ|ݱyÙªxÜ®{Ý°~ß°‚ß­~Ú®uÛ¯xà®}á±€à±â´†å¸â³{à±á°~Þ«vݨuß®{Þ°{ݪyß°zà°}ીᰄâ¶}ä¸{äµ~ܨsØ¡lÖ§lÙ¨mݦrÛ¥nÜ¢kÜ£pاpÙ¦uØ£rÖ¦kß°wß­wÙ©pÚ«mÙ¦jÕžmÓ¢rÕ«rÚ¬vݪsÛ¨nݧtÛª|Þ¯|â²}ß±‚ß³„Þ±}Ò¨qÏ¥tÕ¦kÕ¨k׬yݱà²áµä¶‚ß³ƒÞ´†å¹ˆä·€Þ¯yÝ°}ݳ~ᲄá²Ü«|Û«~à³â¶€à²ƒÜ¯~Û¬uÛªt߯uÙªp×­vÞµƒÝ°Ø«uÖ¨rج|Þ°€â´€Ý®}Ú¨yÞ«yߦp× kÖ¡nÚ¡hÛ¢eÛ¥fܦeÜ¥iÚ¤mݪpÞ®sÛªoݪpà±væ³uå¯xå²{èµxâ¯sÞ¬oÙ¨nÔ¤oÕ¦sÞ¬q߯pÜ®tÚ­rÞ®vá°xß«sÞ­zâ­zß©r×¥eÙ§hß­uÞªnØŸ^ÒšaÕŸmÖ lÕdÔœgÕŸdÙ¤aܧiÞ¦j×¢aÓŸgÙ¢râ©mÜ©hÖ¨kܬt߬wÜ­vÛ«nÕ¦jÏ¢mÖ£mקgÙªpß­rÞ²uÞ±{à¬vÙªtѦrÓ¢mÑŸfÉ›]Ç–[Ç•\È•WΖ\ÑžgÓaÓ—TΙWÍšZÖœ^Û¡fÕ¡cÓ dÖ eÖ¡cØ°jÞ¹oݬuئnÚ©kß«pÝ©pÞ¬oá²sÞ®r×¥gОbÌšcÍ—aÔœa×£jÛªqتoÛ¥iÝ£mÛ¡sÚ¢qפiÖ¡fÜ£fÛ¢fÕžgÕcÑœ`ÒeØŸkÙ¤jÚ¥hÛ f×cÔ¡gاrÞªpà¨kܤoݧoå¯oÅ™jߪwáªyß©|ܨwÝŸxۦ㱂籃â­á¬{á«z屃ä±Þ¦tà¥yâ¨}àª{á¨sÜnLj_µ|P®|R®W·‹[¿ŒZÅ‘_ÑŸnצpÙ§mÙ¤tÙ£yÞ¦{ݤvØ¢rÛ¤vÞ®xâ¯~ߦ}Ù¤uܪxà«~ঀުીᩂݫ{Ù©yܨyÚªuצwÛ§xÜ«}ا}Õ¨~Ö«}שsتxܲƒâ³„ß®ƒÙ¦{Ú§vÛª{Ù¤yסnØ¥vÚ¦~Ù¨{Ù¨zצxØ«{à­|ݬxÚ®€Ü¬…Úª~Ú¬|ß±€á°‚ß­ß®~ݬ~ܬ}Ü°}Ý®}Ý°~á¯~á®㳈帋߲‚à®{á²ß°Þ¬{Þ«{â²~à®vݦvܧyÛ¨qÜ¥pÚ¤pÚ¥pÜ¥sÜ£oÚhØœbÔŸbצtÜ¥uÙžkÛ¡oܨpܨpÞ¨{Þ«}Ý©xݪxÙªrÚ¤mܧuÔ oÇ’^Ä–bÍ™hÈ\ΠpÞ°ß°€á­à§zÙ¤y×¥tÙ£nÚ£kÚ¦lÙ£kÖŸjצs߯yà¬yÞ«{ß­}߯‚ß­€Þ­€â±Þ¬xקuÓ§tÖªyÞ±}Þ±ܬܨxߪzã²á²‡ß²‰ä¹‡å»ˆâ²†ß©}à¨|à©{Ö¡pÉ’Z¾ŒUÄ–bÒ oÜ©wáµã¶‚㴅䴈ᮀ߮‚ß³‚Þ±zÜ®|Ü­†Þ¬‚Ý®yß®wß±|á´ã³zã²~ã±|â³uá³á°„â²三䳊䲃縆鶂è¶ä¶߯|â²|ä¯yá¬tã°uâ®zà±|ãµä±~ã­{â­zÞ®{ß°{á­xà«uâ­vâ«xà¨qߨqß©t߬qÞ®tÞ©vÞ«xá±xá°và©xÞ©uÝ«wÞ«vÞ¨nܦrÜ©{á®xá¯xà­xÛ«nפfØ¡iÙ¥nÛ¢lÜ¡hÛ¥kןj×™bÓœdÕŸfÙ¢gÕ¡bÒ¡`Ó¡eÔœb×›`Ø¢kÚ¥nÛ¡mÖ£pצqà«zß®}Ý°}Û¨vÐrÕ¦|߯߰{ß®yÞª}Ý®~ß±|ã­|ᲀ⺂潊渌䵈Ⳁà³Þ°…à­ß²€ß³ß³à±~á°~áµ争溋俇޲yÖ¤hÔ«lÙªrÚªsÚ¯tÚ¬vÞ­uܯuÚ¨pÚ¤kØ£jݬuß­sÖ¥hÙ¦jݪnÖ£kÕcÓ¡eÓ¢lÕ¤eÙ¨dÞªmܨoÚªlÙ¤lÔœjÒžgÖ¡fÕ¢hÒ¦mУpÑ¢oÕ©qÛ¬vß­|á¯|ä¯|á¬vݬy㵂溆亂á¹~Ý·‚㶄ä·~à³~ೆ㷃溇弊亃ް{Ö©r΢lУo׬xÞ°~Þ±Þ´{ݯyÜ°ß·†àµ‰Þ®߬uá¯}Þ¯}Ù§tܧvݨpÝ©rÚ¥u× fÙ¢gØ£hØ¥gÜ¥rܨsÛ©mß«rä±zà¯vܪvâ®{ç³yá°y߬xÝ«uÚ§nÛ¨sÞ«xà«vÞ«wÞ«tÞ¯pÞ¯qÛ©jܨgÙªiÒ¢hÔŸkÖ¢hפlÏœbÊ”ZÖžgÞ¨kØ¥gסfÛ¤nÞ§tÞ¬vܬpÓŸ`Í—VÏš]ئlÛ¨nØ£mÖ£rÞ­vå²vá²wß­zÚ¨rÔ§mÕ¥pÕ§oÕ¦lÖ©qÚ¬vÚ©uÚ¨mÚ«pÜ®rØ®jÍŸ^Å‘UÓVÊ•WЙ^Ö§fÕ¤dÑ”aÑ–ZÍ›WΖYÑ•ZÑ–ZÓ–_ј^ÓšaÙ¢jئdÔ£^פdצiÛ¨sÞ®qÝ®pà«rá²uß­qؤfТcË›_Ê–]ÑœcÔ¤iקkÛ¦oÞ¦kܨnÞ«uÞ®tÛ¬yÛªvÚ§sÚ§sÕ£lКcÓždÖ£jÕgÔœf×¢iÚ¥pÞ©vã°tä±oݦeÑ›aÓ eݦg½”cß rÞ hÚ mÛ›nÝ£tà¬|ã­~ã¨~Ý¢uÚ¤qÜ«xß«|ã¨vߦnÞ¦qá§xã§rà¢n×™kÊ‹cÀŠbÄ•jÈ—kÊšj˘k̘kÕ¤pÞª{٦ب}ܪ|ܧ}ݪ}Þ«}⪂届䱅á¨}Û¦‚Û¬…ޮݯޭ‚Þ°€ß²€à¯~ÛªyݧyÞ©zÙªvܪyÛ¬ƒÖ«Û¨{ݬܬ~ݬ|Þ¯}Þ¯€Ý¬{Ú©tÛ¬{Ý«‚Þª}Ù¤xÖ¢vئyÕ¡|ÏœsÑ nاtÝ­Þ¯„Þ®†Ý°ƒÞ­ß¯Ý±„௃ୂ߮„ᯂâ±~á¯{Þ¬rߪz᫃㯀䰀á¬{Ø©rÚªvݧzÚ¥o×£kÖŸyܤ{Þ¨qÙ£lÕ¡lØ¢rÛŸlØœ`ÖŸeÚ¤oݤq×¢rÕrÕ¡pÚ®zᲅ᫂߬}߯zß®{ä­â­„߯†à¯€ß¬|Þ¬|Þ±|ܨuÒœlÏŸw٢ϕfȘfÙªuá¬૆⬀଀଀àª~ß©yÞ¬yÜ«wÙ¦tÚ©tݬ}ݬzß­yß±€à´„ീܱàª|ߥsÙ©wצ{Ü©~á³{ß³~á´…á°~à¯{á²á³‡à±ˆå¶‚ê¸峂ެ~à±€ã¶~߯oÒŸdΠjÚ°y紅絈䴄ீ߯ã²~á³zß´á²zà©tܪ|ܲ~à³yá°uà®zâ²~æµzã²€Þ®€á°yå´á³ƒá±â°à®|Þ¯{Þ²{ß±~á¯~á³tá¯vݧuܧoà¨pÞ¨nݬqÝ«uߪvÛ§pØ¢mÚŸfÖ`מgÙŸkÝ¡fÜ¢eÚ¢dÛ¡hÚ¡iÙ£`Û¢bݤiÙ¢gÔše×gܤrÝ¢oÚ lÖ pÒeÔžcØ¢eØ aÓbÑŸfÕeÓœeÑœdÒœaÕcÔšfÔ›fÔhÏcÍ—_Й`Ô_Ó›cÒšfÔœhÓœgΞ`͘\Ó”dÖ™dÔš^Ó›aÐœeÏšfÒcÏcÓ˜hÔškÌšjÎœmפuÚ§rצmרpÛ¬sÞ©vߧvߪxூ߰Þ±zÞ°|Þ®|Ý«{Ý«{Þ°xà²wá±{䱂䱅ä²~䶇㶅äµ一à¯zÚ¨uÙ¯vÙ±|Ü­‚ܯyÞ¯wᮄஅޭ{Þ¨pÛ¬y᷈涆à­yÙ§qÙ§nݤoØ¢iפdÖ£dÒ¥dÚ­sá¯zá¯yݬuؤkÓ¢aΞ\Í—^Ì›dÊžhÇšiÆœdÌdΠkТlקvÜ­}Ø©uѤsÕ«{ܱ|Ü­tÜ®{Þ²‚ß³ä¶ä¶~ä´~踅滆庋꼋á·Ó¨vΠmÍ£mÖ«{ß±€Þ°|Þ±߯}Þ²‚ßµ᳃േ߶|ᴂ万ᶄܱ€Ü°{à¯}Û¬uÕ§kئkؤkÕ mÕ¢gסkØ£tÚ§qݦoÝ©oÛ¨mݨsÝ­vܯpÙ«pØ­qÙ«vߨzߪxÝ­tÞ­rÞ­mܪiÙ¨jÛ§hÛ¤hاnجrÕ©pÔ¥mÔ¡fДZÌŽVÖ gÞ­sÚªlÛªrà­|à±xÞ°t߬sØ©fÌœ^˘^О`ÕŸbÕ™cÐœhÕ¦nÞ®rà¬kß­rà³v߬qÙ¦jÓ¥lÒ£nÓ£jبqÚ¨oÛ­oß²tàµsÞ¯yاrÍaÈšaÏŸhÕ£nÚ¬pݯoاrÕ¢pÏjÊ›cÌZϘXИ_Ñš[Ï—VΚZÒZÕŸ[Öž`×›b×aÛ¥cÝ©hÙ¦mܦhÛªkÙ«jܬeÜ«dÕ£YÏžYÑ dÕ¦iÙªoÞ¯sà®tÞ¬{Þ¯~à°uà«uÞªzݬvÙ§eÔžcÔŸjקnפpØŸvÞ¨~à²}à³~ã²€ä®vÞ§oÖ¡jÔžeݧk¼™cß tÝœpÙžkÝ¢má©}à­†á«â¨|ߧ}Ü©tÞ©tÞ©{àª{à¨xݤuÝ©x߬vߦuÙ¡mÔžnÒ£{Ú¬„á­}Ý«{צ~Ö tàªy岇ೆᴀఀޯޭˆà«Œà±Šá¶Šâ°‡ß®}Ý®}ݬ~ݬ~Þ­~á°~߯ᮃᮂ٬}Ý®~ß®|ݪyá«{ܨyÚ¤pݪzÞ¬Þ­~Ý®ƒà«‚à©{Ý­{ݮް†Þ²†Þ¯~ܬ€Ú©€Ü­ܬÛ¦Ò¢xÒ£qÜ«z䱀᱇ᰃá¬{߲߬„á°zá«vÞ©vÞ©}á«~â®~á«yÞ¨nÙ£nÜ£nÞ«rÙ§pØ¡jÖ¡oÖ¡oÒžcÏ™cÔmÙ¤rØ£qÚ¢nÜuÚ wצrÑ¢rÖ¢tÝ©wß«}á«}ã­~á¬}Ý«{ß­‚⮅Ⲉâµâ²và²{ೄ㳇â²Þ¯yã²|ä±~Ý­zÚ¨yܧ‚à´„ÛªrÓnÙ¨x߯|â²}à²}Þ°á¯}߬xß®vã¬yߨ{Ú«yÛªvרtÙ¬|⮅Ⲇ㶆䱆߰à¯â¬zá¯zà®అೂá±}ã°á°~à³yã³䯄㱆㷄溂ã³~á¯|㴅繊æµà°z嶇é·èµŒé¸ëµ†æ±~ã²vå¶xä¶}㱀䲃ంޭyâ¯zå²â±zá©sáªvá¯yã¯và¬sÞªpà­xÝ­~Ý©wá«xߨuؤoÙ¥qÙ¡hÙ¥jÞ«rߨlÞ¢eÛŸeÜ¢fÙ¡f×eØ^ט^Ï’^ΖZÖžaØ jÖ gÙ bØŸeסgØ¡eÖŸcÚ bÛ¡eÙ¢gÞ¢fÙ¢hÑœe× gÛ¤kÙ¡bÚ¤mߨ~Ú¡tÔ›lØ¡oØ£oÓbÒ›`ÑgÓ›g×›eÕŸmØ£qØŸiÔjÕmÕžgÒ›aÑaÒ¢lÓ¡rסnØ iÓgÑœeÒžbÔiÕ lÓždÑœ`Ô aÓjÓjИbΗeÒšjÏ—eÆ•b˘fÒš`Ò˜_Òœ\ÕŸ\Ö eÖ¢mÚ¤jÛ¦kÚ§nÙ¥mÛ¥kÛ¥n× nÛ¦pܨtÚ§jÚ«kÞ«tâªxá¬{á¯~ß­}à®yá¯Þª}ݨqà°yá®ᮀ߱Þ¬uÝ«sà²zåµæ´‚ã²â¸‚缇粄ݫ~Õ§tÖªoÜ®wá²}à°yÜ­{Þ³ƒä³„泅ⵇಂް{Ö¦iÍš^ÑŸeÑžeË“bÈŽcÉ“`Ê`Ò¡i×¥qÚ¬yÜ®yÔªuÏ¡rÔ oÙ¦mÕ¤kÖ£fרjÚ®sß®oÞ­qá³|â³~ã³çµâ²xÞ°xÞ¬tקuÕ¬|Ü­~Þ¯|ßµ{áµ~ᵇᵀá³~䶅幅㹌ഈد|Ú¬}Ú­€Þ±{à¯rÚ©oÞ«xÜ«tÕ¦mØ¥tܧpܦkÛ¤sÚ¨uÙ¨mØ¡mÚ¦h߬nÝ¥jÕŸeÕ£oÕ©pØ«rݪpÞ©lá°sâ±vݪqÛ¯pà´uß©vÚ¨xݱá²y߯nÖ¥rÌ™c˘YÔ¤hܯrÞ­lܯvâ·€ä¶â´~á°váªuÙ¦lО`Ì™]Ñœ_ØdÓ`О^Ö¥gÛªpß«tá®pá±nÞ¬hÚ©hبlاkÙ©rÛ­yà²yäµ}淃帀å¶ß°zÕªuتqÙ¬sÛ¯wÞ¯mÝ­qÜ«tצpСeОaÒcÍš\Ë•^ЖbÕ›[ÕšYÑ™^ÓšZÓ›^ÔžbØžd× i× `Ø _Ú¤fÛ§hÞ«lã­iݦeÕŸh×¢iקkÙ¯nÛ±mà®tá°xá®zâ«tâ¬sà­~á²}á°uשkÕ¦jÙ«zÝ°zÛ«|á±èµ}å°|â®{â¬yâ­sß®uÞ«yä±yÅœkÚ¡pÛ¡{Ü£{Ú¦yݬ†ã²ˆä¯‚á¬~á¬{ߨ{Þ§Þ¦{Þ§}à¨Ú¨yÙ«vÞ®záª{Þ¥xá¯}义㴆㰄á²Ü«w×£và¯~᷀ಅ㳉᳃ృ۫‚Ù¨ƒÝ¬†Þ­…۫ݯ~ఀݮ|Ý®}Þ­…Þ®…ݲƒÝ­߬zܬ}Þ°„ã²~á¬|Þ¬ƒÞ­€à­{㱂湅䶅ᰃ߮}ß±}á²€â¯}á¯{à°z߯yÞ­Ý­…Ü­‡á¯ƒã±…Ù©sÓ¢lÛ©|寂䭀ޫvݨoߨrß©tÞ©qÛ¥rÕ›oÔœoØ£vÚ¤wÙ¥qØ¥rØ¢r×lÔ¡oÕ rÔœsÕpÕ›hÒ™gÕr×£uÙ£{Û£yݦvÚ¥tÙ o×£sÔ¨wÙ¬}à®~àªzà©|à¬~á¬xÞ©sÚ¦rݨvⲄ嵈Ⲅް‚ß³…㶉ⴂޱ{Þ°‚߬~߬yá¯~Ⰰ䴃â°Ü©vÜ­xß²€à³‰à²„䯂ⳅá±|â¬|á©}Û¨{Ú¨yÝ©|ݨ}ܬƒß³ˆâ´…á´ƒã³~ã°{á¯~ᯀ㱀Ⳃ峅㯄߯„㴅嶃âµâ°}局泅â¯á¯|ä²岃䱆䰄糃綅繉鶂ã¯zá±{ç²~ç¯{â®uâ¬uä«uä¬wä­|ã®xà©pÞ¥y߬}à®qà¨nÞ¥oÚ¥mÞ¥oà¡lÜkÜ¡kÛ¡fÚ¢hÞ¦vÚ¡nÔ™cÕœm×£oؤlÛ¥nÝ£mÝ¢kÞ¦rÞ«wÚ¢oÕžhÕžfÑ–WÌ‘JÓœ\ߨsß©yá«vߪrÛ§tÜ«zܪyÚ¦vܦxܦvÚ©vÞ«xÞ¨vÛ¨rÛ©uÝ­vÙªqÚ§uà­ß¬Ü¦xÞ¬wá°}Ú©|פtÚ¦oרrÖªvשvÚ©€Ý«}Ú©kÛ©pá¬xÞ©pÕ¦nÕ©wܬ}ß«|Ù¨sÕ¦rÚ¨yÚ«xרuØ¥wاsÕ¨sÖ§uØ¥pÙ§tØ¢lÖžjÙ¡oÕžgÈ–`Ç—bÓ`Ò›\Í—aÑ–aϘbÏ gÚ¢kÞ£nÖ oÔ˜mÕœbÕ_ÖœgךfÓ—\ј`ÓœmØ sÚ£rÙ¥mܤoØžnÖ¡lÛ¥pܦqÙ¦qÛªvÙ©sÖ§vÚªvÖ§nئnß«sá°vá°à®Ý®yâ³ç´Þ­zÔ¦qÔ§rÛ¯}á²á³‚Þ³…ܳ~à²äµä¶‹ãµ‡â·‰Ý±~Ô¢mÖ¢oÞ¬sÚ¦lÓœeКgÎkÏŸkÕ¢qÛ¨vÛ©}Ó£xΠmѤmÙªvÚ§rÔ¡iÒŸdÓ dצjÙ©qÚ©uÙ¦qØ¥pß®vâ±vß­tã¯{Þ­wÕ¥rÖ¦oØ«sÞ°„â²…ä°á³~Þ±|ృᴄ丄à®{Õ¤nÕ¨xØ®„ܳ€ß²{Ü«zÚ­z×­vØ«tÞ«tÛ©uÜ«yÞ­zÛªrÚ¤pÙ£mÖ¢gܨiÝ©nÔgÑ›fÕ i×£iÙ¦iÙ¦eÚ©oÞªrÞ¨s߬|ä³~ݯwÕ©qÞ±}ä¶|æµvÞ¬rÑ¢eÒ¤gѤqÕ§qÚ¬tÜ­xß³‚à·‡à³vÜ­qÜ­tÛ¬jÙ¥kÖ¡hÑŸ]Ó¢`Ø£`Óž_מ^Û¢`Û¦fÞ¦nܦnبmÙ§pÜ©nÛªnݬuß­yá±vã´{æ·‚æ¹€æ¸äµwÞ²lÚ­oÙªuÛªsݪrÞ®vß°{Ú®vÖªtÙªpÖ¦mÌžhÈ—YË•]ЛfÒšbÑ–\Ñ–ZÓ—[ÖœdÙ£jÚ¡hÛ eÙ¢cÕ ^ןaÚ¡`Ý©[Ú¦ZÖ bܦlàªtÚ¨vÛ©kߨdß«pß­tà­pß®pÝ®sà±yæ³}â¯rתjÚªsá©xߨrÝ«vã±tâ¬oÛ¦kÜ©l߯yäµ}ã²tê¹uÇ¡jÙ¢xÙ¥{Û¥{à¦xãªá¯‰á¯„á©}à©|â©á¨zߨxÞ§}ß©zÞ©uܨ{ß©‚ä­„â«{ᰂ縎淃䱂ᭇޫtߧt੆ᬉ㲃ᵀ߰ߪyÛ¥yÚª‡Ü¯„ß«|ܪzÚ¬{Ý®„ᲄ䲂ଇ߮‡ã±zá­uà¬}ୂⱄⱀá¬|ݪyܪà­å¸è¸‚è±ã³zá²|ß­}Ý«wÚªvÚ®~ß­~à­xᯀà©Û¢tÛ¨xᬅܦv×£mÞ¨zߨ}Ú¤vסmÕŸhÒŸkئnÛ§uÚ¢oÓhÑœmÕŸoÔ¢vÖ¤}ت€×­~Ö¦~Õ£}Ó¢vÖ¢nÖ oÔžpÕ¤rÛ­á²…Þ°~Ý­zݪvÚ§{Ù¦|ݨ{ݨ}Ý­‡à±ƒß«zÝ«}Ý©xØ¥pÚ¥nÛ¡sÛ¨v一껂å°}⯅崆湆嶊䰅䰂ޭ}Ú«uÜ­zã±å²„á²~Þ²|á²}泃䷄ã²ç±Žä³‰à®{á¬uÝ­xÛ«xß«uß«ீᵆⳇ䶀嶃Ⰰã¯}ä­}ã±{ä³|á´‚à²à¬}ᬃ峈캇èµâ¯{岄糅ã«|à¨u߬yᬀã®}á«rà¦pã±|è´|æ°wáªtÝ¥sà©uâ¬wà¨rݦpÝ£qߥqߤqÜ oÙŸjØ¢lÛ©tÞ¨tÛ¦oÚ¦pÚ¨yÞ©vß«qÞ©pܨoبoÙ§sÛ¦vÜ¢nÜ¢sبvÛ¬rß°|ݪuÛ¦qá¬~䮃ⷀݴ‚Û©wשmÙ¤lÛŸfܦlß®xୀ߯~á¯à«à®}ä³}ã³zã°xã¬{Þ¬~ܲ{ß±zà¯~á®ã°~Þ°{Ý«yá±xã´}㲂ã²~à²|Þ®zß®vீް‡Ý®‚à°‚â¶{ä·|ᰀ⯂涅㱄ޫâ±€âµà±~à­{ݱzܱzݬwà¬â­Þ°zÞ²zà¯zß°zà²vÜ«qܪyᰀܫvÓ¤nСpÖ¥r×¢qÓŸkÒ£kÕ¦qÛ§uÞ¨{Ù§xÕ¡sסnØ¡iÙ¡lÚ¡jÚš`Ö›cÕ£jÚ£mݦtÛ¨yÚ¢tסnÕ kךcÖgÖ£oÓeИ_Ó˜dÕlÛ¤pÖŸhÑžbØ¢hØ¥rÛªrߪrÚ¤qÙ¦mئmÙ¥uÛ¦sØ£lÖ¤kÖ¨jجpÛ¬wܬzá±}âµ{à®uá©sä³æ¹‡Þ¯zÕ¨pܱå´‚à®vÝ«rß­{Þ­|Þ©}Ù¨yÙ¨|Û§uÜ£oݧzÞ­z߬xݧw×£mÛ¨lÞªpبqÙ©sܨoÙªoÞ°{â±~ݬzà«{à¬vÛ¦r×£o×¥mÝ«tß«wÜ°yß³{â­{ß°vá¶~峇â²{Ü®xÞ«}â°zá³}á²ß¯yÜ­vÚ­zÛ¬yݪsܪvÛ­vÞ¯zà­{߯{Û¯tܪpÞ®wÛ°vרiÒŸYÔŸ_Ú£mØ¢lÖŸfסhצkÛ¥pá§uä²xß°uݧná¯wãµ|á°vÜ«sÔ¦jÓ¡bÑŸgÕ¥tÝ­uÜ­yÝ­tÞ®rÞ¨mÙ¥gØ¥bÛ¨eݬrÞ­vÚ¦hסbÕ¡fЙ\Òš\Ù¡hÞ£lÜ¥mÖ¡gÓž^ÖžiÜ¢oݨkÛ«nÝ­pà±tà°sá³yá¸å¹}ç¶{æ³yá®sÜ«uÜ©zß­{à³zß³xÜ­|ݨܭدxÕ©nÍšaÊ”^ÑžfÓ¢mÑmÔŸe×¢cצfÝ­làªjݦdÙ¢]Ó•[Е\ÔšYÙžWÖŸVÔ¡]Ú¦iݪoÙ©oܦfÚ£bÙ¦h߬hà¬eÜ©hÜ«eÜ©fß«pá®oÚªjÜ«ràªxݦuߦoá«sÛ©pÕ¢fÖ£há¬ræ°tã¯vë¶u›^á«yÞª~ܪ|à¬{⭄ᮄã²{á¯ß¬ƒá¬Þª|ܪ|Ü«~ݬ~ß«᭄㳈寂à¨~ޫ㵇ä²à²ആߩá¬}洆洉尃à®Þ°‚à®{ݪzÞ¯‚à±Üª‚Ý©€à¬â°‚æ³{ã²tâ²{á³á­{á©yà«wß­yà«‚ß©ݨzØ¢qПnÕ¨mÝ®yÞ¯á¯}â®|ݬuÚ§oÚ qÕŸmÚ¦lܨtÛ¦uÚ¦kÓkЗiÓœgÙ¤qפnÒ£mÙ¥vÞ¤yÜnÖeÔjÔjÖ¡uØ¡{ØqÙ£sÙ¨xÙ¤vÚ«|Ù°„ת€Õ¨yÔ«{Ö¥zפwÖ¦vÓ¢tÐ¥sѪݹ弋߰~á®{⭀ܬ€à°€á°†Þ°€Þ±~ß­}׫uÙ«rئnÏœeÌ›dÓ¡hܨrá²~泂ç²å¶‚⸂䴄粇æ¯á¯{Þ®{Ú¨yצvܪxÞ¬vÞ­~à­â­yä°}㲃ⲇ䰂߭|Ü«€Ý¯Þ°zàªzß©~Þ¨uÞ©wᯇ㲉㱃⮀à«uà¬và«}ݨzߪ{ß­}ß­zÝ©wܨoà«tä°~æ®zäªxߨwß©rߦlסjÕ£mÙ¥qÛ£qÚ¡l× nÝ¥tã¬tá®yá¬{ߧqݦqݪtß©mÝ£gØjØ›iØ¢gÙ¤gØŸiܦtߨxܦxÞ©vß­wà°yá³~à³ß°~à®zÜ®yÛ®zÝ­~ݳ{ß³yß°à¯~Þ¬€ßªyâ²|嵆岄á¶~ß´{߬zß«~ܯ{Û®yÝ«}Þ¬}ß°|äµ}å³á­|â¯|㶅䶄áµߴ䱊᳋ߴŠä³Šã¶‡â°ã°{á±zá°}ä¶~丂㵉ⴇᴅ㲂䰃Ⲅá°â±‚߶…ಃà®}ᲀ䴆ä²~ß®xÞ³à²vÛªqß«yß­vÝ­xß±}ã´ƒä±æµ}â´{à­}á°€Þ°|Ù«zÜ®xä´|ß±ƒØ®}Ø«vܨvܪsÜ°w߯{ß°zß´y߯|Ù¨wÚªxà­zÞ­xÚªuÛ©uÞ¬uà¯vß«vÝ©yÞ­à¯|ݬtÚ¨pÚªyÙ¨sØ¥hÖ¡lÑšfΔZÏ“^Ô›gؤmÖ¤kÖ¡gÙ¤lÖ¨uÞ¬xä«sÙ¦sØ«sÛ«rÖ¥nØ¥mÚ¢iÕœ`ÐœbÕŸeÙ¡jÜ¥sß«zà®sÞ¦jà§s岆淄ä´yÝ©yߪy渂㵅߮y߬}Þ­Þ±~Þ±{ã³{ⵂܰ{ÚªvÞ°~ܯ{߯uà¯uÚ¨yݪ}Ý«Þ¨vá«|߬Û®vß±ƒá²‚ß±|â­|å¯rÞ«rÕ¦tÕ¢lØ¢gÛ©hܨoÛ¥nÙ¨bÙ°nß²uá­rß°vâ³zã³|à°}Þ°|ß´~à³{à°{à±{ß®xß®}Ü­xÛ¯vá²}à´ß±Ý°{Û°{Ú«vÕ§lП^Ò™bØ¡kÙ¥hÕ¡iÔ iÔŸcÕ¡hÚ¨mÞ©mÛ§rؤqݤsà¦vܪtÚ©jØ¢dÕ¡hÓžfÕ cÙ©mÞ¯yÞ¬yß®uß±mÛ©hÛ¦kÙªmÝ«tá°vÙ«oÓ¢fÓŸ^É–RÈ“XК`Õ¡cÙ¡dÖ›`Ó—bÔcÙ¤cܦfÙ£bÙ¢dÚ¦oÖ¨uݨvâ²uà¶tã´|æ´|ä®xá«uÝ®sݳ䲄æ²}Þ¯tÖ«yÙ¯tܲtÚªoÕ¢^Ë™bΛjÔ£nÕ¡pÕ£nצhצnØ©rÚ¨mÙ¥hסbИ\Ì“VÍ“VΘZÓ_לa× ]Ö£_Ù¡eÚ¦dÕ¥aÔœ`Ù£eÚ¦h× gØ¢fØ¢gݤjÞ¦e×¢fݪjä­lߣjÚ¡dܧgߪpÞ¥mݨhá°kà®fß«cæ­b¼•Yá­zᭀୂ䲋将߭|ⲃ崅㳀â°zâ¯}â¯㮀ä­}å³x嶂粉䯂àªÝ¬Þ²}á¯|⯀崄ã­ä­~鷃鴆ã­}á«zà©vߨsß­sÞ±|ß«zÝ¥uÞª{å±å­â©}áª|ß©vܨyߨuá¦páªsß­vÞªsߦrܤtÕ sÖ£rקtÙ¨|ݨxݪvÞ¬|ݨvݤpØŸjÓ›eÖ¢nÚ£rÚ¢mØ¡oןxÒsÔ oÙ¢zÚ¢yØ©yݯá©zÞ§xÛ¥~Û§yÖ§vÖŸrØ¡n×®{Þ±~ß«rܪzÞ­…ß°€×«zÕ¨sØ©xר}بxܪxÛ¤rÕ tÛ«…ᶌ㳌ޭƒß²~᳆߲‰â³ˆå´…á²{Ú©vØ£{Ù§{Õ oÉ”bÄ‘YÁT”\Ì™dÔ hÞ­qå²yä«yÞ©vÛªqÜ©uÝ¥vÝ¢vÛ¤qÙ¥pÙ¤qÚ¥t×£vؤtÛ¦tݨwܧvݧrߪsÜ©sÛ¦nÞ¥sÙ¦xÙ§tݧsÛ¥oÕ£iÓ¢mÞ®{ã¶zã®vߧrÝ¢sߣuÞ£jߢhÜ¢kÙ£eÚ¥eÕŸfÐœjÕŸkÜ£mߧrÞ¢hÜ aÕœfÖšfלaÏeÒ¢qÙ§rÛ¨lÝ©qá¯}á®|氀粅á«vܪuܯzÞ®vÞ©uÞ¥mÙ¤nÙ«vß°{ß«xÞ¨và©xÞ®yݱ~ß²‚㲂汆䴄à°vߪpáªvߪ|Þ­€à°ƒâ³†ã´‚â³ⵃ᳀᱇嵋㲆ܯƒÜ¯{᱂Ⰲà®|ã®~â´á¶„䴉䲈à³Þ³à±{ã·æµ‰ã²ƒà´ƒá²‰ß²„à²}寂á´á²}㲄à³}à³~ᶃâ¹æ¹€äµ‚Þ°…௄â°~â±߯}Þ®|᳀嵂߱€ß±~â²{â±zá±}à²á¯vÞ¨qÞªtá­xÞ¨yݨ{߯߯}Ú¬|ܬxÞ«uÞ¬sÞ¯xÞ­vß®xß³‚ß°à°{Ý°yÜ°{೅ೃ߳{â¶|嵀Ⲇ۫ڪˆÝ¯ƒã±zã¬|Þª{á°|ã²zÞ­xÞ¯€á³€à±€ß®~Þ­}ݱ~Þ²~ݯ~ÛªvÙ¥jÕ fÙ£mÝ©oÚ§nÛ¦uÞªwݬvÞ±上䷈߰~ܯ}ܱ{Úª{Õ¡uÖ¡fסbÖŸeØŸgØŸhÙ¤jÚ¨rܨrÙ£hÚ¤má¯{Ý­zݬuà¬yܨuà¯zä±~ß«vÞ­yß°€à²}åµæ¶æ¾„輌߭Þ³xå¶}â±}à´}á³á±à²{á²yâ²|â­wá±{幊繇á¯~à¬}ã±€â°{Û©uÖ£sØ¥lÛ©mܪoÖ¤fÒži× nÜ¥nܪrݯqÞ²xÝ®xݪkߪnÞ©sÞªuá¯yàµyá±qà®sß±xÞ¬tß­qá±|á®}äªtݨmÖ§oÖªuÕ¤mÒjÙ¨oÜ­rÛ­oÚªpÖ¡nØžjÝ¥kÛ«nÖ¨jÏ]Ò^ܤnÚ¢jÚ¦eÛ¥cÚ¤bÙ¢aÙ¢gØ©mÛ°mà²oá³uã·{ß²uÛ§hÛ§hÛ­tÝ­|ݪsØ«iÚªnÒŸiÊŸ_Т^ÔYØ aÛ¤h×¢hݦpà©pÚ¤hÛ¨lݦgÙ cÕ¤kÚ¥iߨnÞ«tà­xä¶wã²pÞ®pß­rá­yå¸{ç¹yã¯pÚ«gÙ¬oÛ¯oÛ¯jÙ¨jÓ¢hÔ lןkПdÏ¢hקkÙ¦oÚ¦uÛ§mÛ«jݪoØ¡eÏœ^˘^Ì–[ÐœbÑ aÓœf×›bÓœ^ÒšfÕžgÕœ`Ôœ`Õ aØœ^Ù_Ù¡_Ø `מ[×^Ú¥hâ­mà¦hØŸ`Õ¡cשdÜ©aà¦hÝ£nÚŸfÛeÝœaºˆ]ݦ{à¦z⪄â¯~ߦxߤxã®xç­{欅ᬂâ¨zã«zâ¯vã¬vâ©yä«{ä­|ã­€àª{ݦrÛ¨vܧvâ©væ®}å­€ä¯~ã¯yà©{ܦvߥkâ¦oÜ£lÖ¡iÛ¦qÚ£oÔ¢xÚ«ƒà«ß¬zߨqÛŸmÖŸhÙ£jÜ¥sÙ¤tÛ§yÚ¨yצrÚ¦sÙ¥uب{Ú¯†Ü¬…ߨ|Û¨vÛ«yâ«áª‚Ü«€Ö¥tÖŸsØ¡uÖ¤tÙ¤yئ|Ø®‚ß´ˆà²Œà±„à«ܤß©~â°~á°á­„ß­~Ü«uÙ¤uئÞ³…ß²ƒÞ®{Þ­y߯߬zß­yß®€Û¨zئsרyÚ«yÙ¦sÖ¥yொ㰈ްƒÜ¯}ݬ}߯€ß¬€á¬߬yݪqÕ£mÊgÌŸdÆ’Zº†M»†O¿ŒVÅ^È’`Ę`ПmÙžiÕ˜`Е_ÓžfÚ¥tÚœoÖ™hÓškÒšgÕšgØžsסsÖ¢jØ¡pܨtÛ¨vÕ¢}ÖŸsÕ™jИdÓdןhÙ¢gØžgÓšjИdÏ™dÖ¥vâ­yá«uܪvÚ£mÛŸhÖ jÖŸeÚ^Ùž\Ó˜[ËŽZÈ“bÑžh×¥nÙ§o× iÑ›iÔœjÛ¥jÛ¤kØ¢lÞªqߪoÛ©kâ²{嵃峅䶊ⴃá­~à©}Ü«~߬„⮃߱}ß­y䯅崄å±yä¯yâ®vá«{Ý«Þ°}âµ~᳂à³}à³xâ¯{Þ¯~Ü°~ᰂⱄᯀᰃఊ㶈ᶂᰉå´á²‚Ý«zß­}ãµ|ÞµxÞ±}ã²ä¸ƒæº†æ´‚㴂浉岀á´á´‡á³„㳂ޱ€Ý±~߯à­Ý­~ß­~ߪ}Ý­ஂá®á±}à²~ß´{ß²uÝ®xØ­€Ü®‚Þ±…ܱ{Ý­và±âµ‚à¯à«zâ¯sß®yÛ­Þ¬zܪtÙ«qܬsÞ­vÛ©{Ý«wâ­xÞ©vקnÓ¦mÖ¨nÙ¨rÛ¨yÙ«uÛ­qà­}Þ«~Ú¨xÞ¨wݪyޯ㴃á¯yà­wß´~ã´xá®xÞ«z߬yീá±~Þ¬và´{൅à²á°~á¶ß´„Þ¬„Ý®ܯ|߯~㵇ⴊ߮߰{Þ®zÙ«€Ù­‚Ý°‚à°„àª|Ú©uܯ|à³Ý±}Ú«vÜ­}Û­{Õ¢j×¢jئk×¥iبlÛ¨lÛ¥rÛ«{Ú¬uÛªtÞªzܬzبrÕ¢jÙ§h×£hØ¢lÛ§sݧwߪuß«qÛ¨sÝ«wß­zã²æ·‡à³á²{ã³}ÛªzÚ©xá¯yá°zÞ°s߯sá°qá°qã³ëÃèÄŒàµ}߯rß±uÞ®zܬ}Ø©yÖ¦uÛ«yá®|ܦrÚŸnݦr߬rà­sÞ¬tØ¥rÖ¡gÖ£fبsÛ¨oÝ£gÚ¤kÞ¨oߦpئoÛ¥kÞ¦lÛ­pÙ­rÙ©qÛªqØ©xÛ¬wß±uÝ®sئqÚ§uܪsÛªsÚ©mÙ¦eÚ«nÜ­zÞ®vÞ©lÕŸbП`Ï›bÌ’]Ó›dØ£fÖŸb× eÓgÑœbÙ§kÛ©qÝ«pã±vá°vÛªpÖ¦mÙ¨nà­qܪs׫nà±rà¬nΧjШmÖ¡iÕ gÚ§pߪvÞªpÞ¨oÚ«tÚ­oݦfØ¢aÕ¥e×¢jÙŸfÕŸaÜ¢ká©qß«ká«pá­oá­iã²tãµ}ß®tݦoÜ©sاo×£lØ¥nبtÚ©tÙ­o΢h˘`ÑždÓ¢jÔ¥kÕ¥oÖ¨tÚ¨nÛ§fÕ£bÌš]Ç•VÊ™YÐœ`Õ dÕ¢iÒœkÒœjÖ¢aÕžaÑšcÓš^Øœ^Õš\ДXÔ–[Õ˜XÒ–WÓšZן`ל\Ô“VÓ’WךaؤiÚ¨iÝ¡iؘ_Ò•UÐQ´‚Rá©qà¥pà§uà§vݤrÜ¥tâ¤qã©vàªzß¡iÜŸbÞ¢lÞ¡oà¥rá¨sá¨oâ©vâ¨uߤkÜŸjܦrá­wä«wã­wá°€àªà¥â®ã±{ߦ{Þ¢vÜ¢oÙžtÖ¢vبvÚ­}Þ±‚ß±{ܪxݧxÞ¤tÜ¢uÚ¢vÙ¤vÚ©wß«zÝ¥zÖ¡uÖ§zܯ᳅㲄߰ݳÞ®|Ý«ݱ„ß²‚߯ڨ}×£wب~×£×vÙ¢uÞ«{ⵋ嵕ᴊ߲ƒÝ¬„߬‚ܯ€à²„㳅ః߬ܫܪ†Þ°‰Þ¯‚ݧÝ«‰ß´‰á³ƒá²ˆß«„ߥ€à¨€Û©Ü«…Þ«„Ùª€Þ±„ೇެޫ~Þ¬Û§|Ú§vØ¢qÙ¢p×¥pÌ™kÈ‘aÇXÀ†P»ƒQÂŽ`È™iËžmΟoÍkÌŸoË›eΔ\Ò—gÙ§vâ­~á¦xÛ§xÙ sÓšiÔŸfÙ¢vÜ¥|ߪrÜ«yß­à­}Û¦~Ø¡uÒœlÍ™gÓ™gÖ›gØžbÔ˜_Ñ•cÕœjÕžlÙ¤oÛ­|ݯ߯~ݬ€Û©vÜ«nÔ¦mÓŸhÜ kטdÎŽXјbÙ¤oݪt߬wà¨uÙ£rÑ¢xÛ¨vá«v߯wá²xÞ§|Ù¦䵉è¶ã´…㶃巈屄⭂â®~ß­|Û­|ß³{ã±à¬„Ⲉ七㵀岇㵆ܭ|Û¨vÛ¬}ܲƒâµƒã´‚ಀఀⱀᲃⱄ䱆ްˆß°~ç°~㱆᷄踈汄à±yá³uä·|᳆߭ƒá¬~᱃万縃嵂ೃà³~âµ{ã²ä³ä²߬{ܱ{à¯|àªvß©uß­yÝ®xÙ®vß²uà­xß©ݬyÜ®qá¬xâ­|á±vâ±zâ¯~Û§tÛ¦yá®ã²|à®uà¨tà¦tÚ¨tÚ¨xݦsܪpܬvݤoÙ¤nÙ¤tÚ¢pܨpݪnÙ¤eÓŸhÚ¥rÞ¢qפoÖ¦rÚ§và°}Þ¯Ù¨uÖ§oاqà­yä±|â­{à«}Þ­xá®wç¯{á²{Þ°|æ³à°zÚ­uà®{á³|Þµ{â­yß­{ß´Þ®{ߧvᯃà²ä³}ã¸àµzá±zà­Ú«{Ý«vß®zÞ²~Þ°~Ø©zÖªzܲ}ß±|à°uÞ²yÜ®~Û¦rÛ©nÛ©tÛ¦oÛ¦lÚ©rÜ©uÞ­xÜ«xØ¥sÚªsÞ®}Ù¨uÒœgÕ›jØ¢kÚ©hÚ¦iצqؤpÖŸiÙŸeÚ¥jÙ©sÝ©tà«tߨsß«tÝ­w×¢pÕ¢lÜ©vá­{Þ³uà°sã¯zã²ä´{èÁ‰êÆã¹}Ù¬sܯ}Ⳃ௄ݪƒÚ¬}Ý°|á²zÛ©nݪoá´vâ³wà±tÞ«qÖ¢oÔžhÙ£eؤoÖ¤tÛ£iÛ¡eÙ¤hÙ¦mÖ¦oÕ£mÙ¤hÙ¥iÔ¢dÓŸcÕ¢kÖ¤lß®vå³€â²xß­rÞ®vݬvÙ§mÖ¦oצtÛ¦sÛ©uÝ°|Þ³tÚ­pاrÏšbÈ“]ÏŸhÓŸ^Ô›XÔŸ_ÒžbÓ¢gÙ¨gÛ©kÙ¦iÝ©hÞªhצeÓ¡_סcÝ©lØ©lÖ©oà¯zä²xØ©mÒ¦sÙªtÕ¨h×¥fá®qâ´và°tÝ«uÚ«vÜ®qÜ«gÜ«mÜ«oÑ gЛfؤeÚ§iÛ¥gÝ¥eÚ¦lߨoâ¬mß±oÞ°rÛ©oÚ¦jÖ¤iؤpÖ¤sÓ¦qÚ­rß°yÜ®uÓ¢eÌ›^Í¡bÑ¢iÑ¡nПgТdÑ¡hÕ¢l×£hÍš`ǘbÎœkÓ¡qÖ£vØ¢sÕ kÕ¡rÕ mÒœeÔŸf×¢eÔœgÒœjÔ dΘ]Γ]Ó•^ÓšbÔ™]Ò•\Ñ™cÔžf× hÚ¦kÚ¢nÔœkÏšaΔT±ˆWÞ¡xÞžxÝ yާߥ~à¡uߢkÝ¢kÜžpØ™kØ›lÜœsÚžwݦuá¦qâ¥}ঃޥsÞ¤nÚ¢tÛ£tÝ­vß­ã©嬂ã«|â«ä°’Ⰸݩy×£uןpݤrݬv߯ఃޭ‚ܨ‚Û«|ݬvݦtÚ¨yÚ©~Ù©}Ø«yÛ¬yÙ§xØ£xÙ¦yÙ¬à³á²Þª€Ý¯€Ý±zß«€á¬ˆá®…Þ¬}Ú¤vסtÙ¨{Ý©}Õ¥tÓ¥rۮ䵎ã·â·‹ã³‰ß¬‚Ü©{Ü«zݲ…ᲃް߮‡â­€Ü­zÛ­{Ý©}Ù¦{ß«}ä°ß®ƒÜ¬€Þ©}à«Üª~Û¦yÙ¦zÙ¥vÚ¨yÚªÙ¥}Ù¥{Ù¦zÚ¨wÚ§qÚ¤rÚ£wܨxݨzÒoÉ”dÆ‘`Å_Ã’dÇ¡nÊ¡mÈ–jȘfÉžhÏ¡wÕ¦{Þ¬y㯀希ë»ç®„ä±ß±~×£rÙ§xܪ€à«ä±ß´~â·ƒæ¹ã·‡ÚªtÖ¡oסmÙ¢kܦjÚ¨lØ qØžsؤuÙ oÜœlߨy᱂ᰂᬆਂݨ|×£pÕ¡kÛ¨rÙ¡nÒ›eܪsⶂá³â¯€â­|à©Û¦|Ú§vÙ§xÚª~Þ­}Þ«uÞ«~䵈ⷀⳂ紋Ᲊ߱â³ß¯|Ù¨xÕ©{רxÚ¥vݦtÞ¬uà°粅鱂氃߫}Ù§xÙ¦xàª|㱂䰀â­~ã²{æ²â¯á¯zÞ¬|ß®zá°yä±å¶‰ã¶‚ç³}è±yä°|ä°~ᰃ߯€ß¬zÞ¬uß­uä°}ä°|ã³}á±~à¬zß®{à¯}á¯{á¬uß«xÞ®zà¯xÞ­~ܬ~á­yá­uÙ§pÚ¥iܨnܪrÜ©mÞªrÞ¬vß«uá®{á«{á¦rÛ£qÙ¥nߪpݦqÙ¡mÙ£pÖ mÕ¡iÙ¥iÖŸdÕhÙŸmÖšcÔ™`ÕœbØaØ¢fØ¢nÕ™gÒ—^Ù¤hÞ¥mÚ h× eØ¢hÛ«vئrÔŸhÓ¦hÕ¤nÛ¤tà¬và¬xݪvÛªtܦvà¬zä´xä³{â®yܨgÙ¥gݨrܱvà´|ߪ~Û¨€Þ±xá¯r߬xà¯xâ°yá°}á¯wÞ®yÞ¬{߬sÙ­vÜ°{ß±rÝ°vá°‚â°|Ú¨xÙª|Û¬}ݪxß­xà¯~à¬xÚ¨oÚ¥mÛŸiÕšbÑš^Ö¡iؤqÙ¤lפjÙ¦uà¯|ߪt× oÔ¡nÙ¦rÝ©xÛªtÛ¦qÙ§rÕ¢kÖœhןiÕ jÖ¡oÚ¥hסaלbÚ¥kקnÖ£mצjÖ©kÜ­râ­vá­vã´{ä³~ä³}æ¸~á¶~תuݯ{巃嵀޳ܱ߳‚߶~Ý°vݬwá®~߯wÞ­qÞ°xܪlÖ¤fצkÖ¦jÕ eÕhÙ¡kÙ¨oÛªuÙ¦lÖ¡fÚ£qÕ¢n̘bË•bΚhÒžfÛ¦hà«uß®v߯uß²{Þ®sاkÖ§iÖ§iÖ£mÖ¦tÙ®và¯pݪmÛ¯sÙ¬lПfÕ¥mפaÑœ^Ñœ_Ô¡aÖ£aÚ¥fקiÒ¤f×£gÚ£fÑe͘`ÐœiÔ›jÒšaÓhÚ§rß®pÚ«oÖ¨rÙ¬vÖ«qРjÙ¦qß°rÝ«oݨmÚ«rÚ±xß³vß­qÞ¬rצiÑŸbÏœcÎœZП]Õ¤gÙ£dÜ£cÞ¬hݨkÚ¢dÙ¥hئmÚ¥fÛ¤jØ£jÓ£hØ©oã³yà³vÒ¥gËždϤpÔ«rÓ¦jÑ¡kÖ¡jÑžbÓ£oÛªuÖ¤fÒ¡cÕ¦kÖªqתtÙªyÚ©xÙ¦rÔ¥pÕ¦qÙ¨sÜ­qØ«rاwܪuÖ£gÓœd×¢lÔ¡nÔ¤mצpÚ¥oÞ¤oÙ¤tݨ{á©zܪpÛ¨mݨh·•^á£rà¥qà¨{ã¨|á¢xá¡tÜ£sÙ¤qÝ mÙœhÙ£lÞª€â®„ä±ã­‡ã«…ᩀܡwà¤sß«tÚªuÛ©uàª{à­‚ß­€á­~将㲊߱…á¯}ݪyÛ¦zàªß­|à®à³…ݲۨ€Ù¥„Þ©€Þ«xܯ{ೄⳊಊ௄àªyÝ«zÞ­}߬yâ­à®ƒÜ¯~߬}à°|ݲ{۰ݮݫzØ«|Õ«yتzݯ…Þ­‚Þ°„㹋绌㸋ⴇᲂް|à«~â«}à¯zß®{Ü©xÝ©}ã«Ý¨xÙ¦xܤyÞ¨u䵄å´á«yÞª~ܧܨxÛ«tÚ¥uסoÓ¡oסsÕ¡qÓ¤yÚ¨Þ«€ß°ˆä°Œã°‰å·‹é¾æ¸Œà¯‡Ù§}פrÕ¤vÍ wÆ™i”_½‘^¿“_ÊŸjÚ¬€ã·Œè½Œë¼íÀšë¾”岌氎屆ޫà¬~䶆乎ᴎⴊ縑縙底ⳉެ†Ûª€Õ£uÓ£sÖ¥lÚ¦qÛ©xà«{â¨yÞ¢tÞ©‚᳆á³Þ°ƒÙª{Ù¦t×¢mØ¥tݬ{Ú§sÚ­väÀ†êÀŽç·Šåµ„æ²€ä°á³Þ®yÛ©yÙªxÝ®}ᭂ㯃峇᱃䲀汄߭€Þ©~á«~à°ÝªvÚ£rÖ¢vÓœjИfÐjÖ¤sà¬局㳀ު‚Û§}Û¬wà²{ᰂᮀä°{á¯xá¯{à¬~Þ©xÞ«uߪyã¬{洃洈ä²á­}ߪ}߬yÞ­yÞªxÞªqܪtܨ{Ý«uà­pÞ«tÛ«yݬyÞ«vÛ§vÙ¢wܤtÖ¦lצnبuצpÚ¤pÙ§rܦqÜ¡oØ¢lÛ kÙžgפjئoÛ¤pÙ¡pØ¡sÙ¥lÖ¢iÕžjÔšfÕ›gØ¡lÕ›cÔ”]Ó–ZЖTÒ–WД^Ï‘YÏ”]Ï•YÏ“TÍ”YÌ”VÌ‘[Ï“_ЕVЕRÍSÓ˜[ÔšcÍ’[Ò—\Ö cÕ£jÕžeÕ˜bÓ•`Ï—`ÓjÚ¡lÛ¥iÙ¦jÙ¥kØ¥kÛ¨qÞ¨sܨlצkÖžiÖ¡cפoÛ£zÞ¬xÞ¬oߧmߪvâ°}å¯{â­|ß°{à°zÞ­}Ú«{ݯvà¯yâ°|ä³~ã²€á¯â°å´á¯{Õ¢pÕ¤rÚ¬u߯uÞ¯sÚ¨tؤlÖ bÒ–^ȈL¿};ÃFΓVÔžbÕ£mÙ©xãµ€ä·ß®~ÙªxÙ©và¨}áªÞª|ܪsרmؤgߧm߬|ݬyݯuÚ«oÖ¡jÚ¦tÚ©vÙ¥kÙ¢bÙ¡m×£qÙ¥lߪmß®nâ¬qáªuà«vä®xݱzݳ~㶂㷂ߴ~ݱvá³}Þ²€Ü¯uà¯tÞ«xÛªqà¯uä·~å¸~Ü©uÕ¡hÖ£aÒŸhÓ¡pÚ©fܬqݪzÛ©mÚ¦pÛ¨oÖ£_јZÓ›cÔdÕ›eÙ¢hÖ¥fÙ¡cߣjà¬sß­nܨj×¥gÖ¦iÖ§mÒ§oÔ§vÙ«vÖ§tبyÞ°{Þ­yÞ±xß±xØ©lÓ¤aØ£kÖ¤nÖ¤lØ£gÖ¢dØ£jܧlØ¥eÏœ\Íœ^Ì™bÇ‘]È”ZÔ eÜ­qà²sà¬pÞ­qÞ¯qצlÖ£j×£lÒ¡jÔ¡iמhÙ§nݳxß®wß­sÚ®qÕ¢hÇXÂWÍ™eÛ¨oÛ¦gØ gÛ¢mÖŸbÕ¡aÖ£aÒœbÖŸgÞ¨tÞ©rÙ¦kÙ¦pâ²{éº~Þ«rÒ¡hÚªqâ¯vÞ®nÝ°ráµzاeÑœ^צjÖ¨jÖ¦nجpÛ®sÝ°{Þ³|à³|ಂୂު{Ùª|ܬ~á­ß®Þ¯zÚ¨xئvݬvܨqÚ¦oÞ®vã±zã­zà®và¬vá¯và±vÛªoàªjÁ“hÞ©tà¥yà¥yÝ«|à¤yߣwá©yâ§vݧrܤvߤá¬å±|ç³}Ⲃୄà¬~Ý©vÛ©tÛªvפvÔ£rب{Ý©‚ß«۱ݲ…ಈ߰Šà±Œã±„Þ¬~Ý©}Þ¦|Û¦zÝ«yÞ¯‚Þª…⬃᱅ެ⭇㲋㵆崈ెޯ€à¯~á²ᲃᮀàªx߬~ß³…ᵇ䶆䳃۪߮~Ú¨Ù­€Úªà«„á«Ýªᶄé½çµŠâ¯„㯀â®{ã°‚âª{Þ¤rÛ¦uئsÜ©oÞ¨uÛ¡vÙ¡q×£wÙ¤€ä³‹å¶ˆã°~䯃ᫀߨxÛ¦xܦxÙ¡uסsÛ¨}Ü©€Ú«~Þ²„ආ䴉鶓鼔êÀ“쿗繒淎崋⯇ᰂ֥tÇ`Á‹Z¾ZÅ–dת{㸇꼒뾘쿕îÖ뼑ç´ä³Žß³Šß²‰ä²ç¸è¹ˆè·„湉绎鸎趎㳌㶌ᮇМtÌœoРoÒ¡lØ¢s߬…㵆á­~Û©~߰㲇ޭÙ«rÚ«wݬ{Ý«wÞ«~צwÜ®}꾔꼎峉㱊㵉师䶅å¸â²|Ú¬yݲⶃ᳄ã¯᱀᳀ã±~ߪ{Ù¡qÞ©zÞ¬}ܧrܬuÕ¥tÍšiÍŸiÍŸoÒ¢tÛ¬}á¬~ã«|âª}ߦ~Þª{ã¬~ã§~Ý«{Þ°zà§sá¦vß«uÛ¨lئsÛ¦vá«xá°|á§xߣuܦqؤkÙžoÚžnÖ oןkÕžeÓŸeÖžkÙŸjÛŸhÚ kÙ l×iÕœkÓœnÕœlÕœeÓcÒšeÒ“`Г`Ñ—]ÓœdÔ˜eÕšcÒ™bЖaИeДcÑ”_Ô™]ΖZË”^ΔeÑ“]БWÍ”bÐœiК^Ì‘TÌ’YÏ—_Ϙ`И_Ï•`ÌZÊŽWË^ÊŠ]LjTÆŠPËUÏ•VÉUÆ„OËŒQј\Ì“`ÉWÏ’ZÏ’`Í“ZÎ’ZʉVÇ‹QΖYÒœ^ÔœbÔ•dÏ”^Ï”cÔ–fÓ–`Ñ•`Ñ—fјgÒ™hÔdÓ¢dÕ£jÙ kÖ¢lÙ£jÞ¥oܪtÛªtܦsÞ¨oÛ¨nÖ¤jÙ¤oݨvܪuÜ°t߯vß«uà«rä²xᯀڤqÖ hØ¡há­qà¬rÙ£hÖŸbÓ—WËN¾|:±g&¸u7ÇŠIЖVÕ hÚ©pà´y㶀á°xÜ­uß°y߯xÛ­}Ûª{ݨuß­xÝ®wà¯~ä³~â¶y㶀äµܯ|Ö§yØŸvסqÖ¢nÚŸkסcØ¡hÛ¢sÚ£rÚ¤jØ¡lØ£nÝ«rÞ­pÜ­rØ«rÚ§mÙ¥lÖ¥lÜ©oà«rÚ¨oØ¥mبnÚ¬kà¯|繆ì½è¶vÜ«tÛ©vÞ­vÜ®oÚ¥nÙ¨yß±{Þ«uÛ¨sÚªtÚ§jØ£gÛ¦pÞ«qÞ¦gÙ eØ¢iÚ¢lÛ¡kݦmÜ£mÙ¡lÓŸfÕ gפn×¢qÙ¢uצpÒ£hÖ§mÜ©rÛ­uÜ°tâ²p߯oÛ¦qÞ¥rܦp×£kÓŸkÕ¢nצlÛªpÚ­tÕ¢iÓ^Í¡ZȘUÃ’QÌ™ZؤlÚªtÜ«sÝ«vÞ¯qשnÒ¢rÕ¢mئgצhÒ hÔ fÛ©fÛªkÞ¬uÞ®v׬oПhÍ™bÒ£fÚ®zܬu×¢fÕŸdÓŸiØŸh×bÌ›^Î`ÓŸfÕ¢hÚ¨f×¥fצpä¶uá°rפoݬrá²y߯u߯qß²vÛ«oÓ¢iÏ kѦiÕ¦kÖ¡iÕ£pتxÝ®yீᰂà±zÞ²~ݯ{á¯xä²zã²|ß­sÙ¥jؤtß«~ݨpÖ¢hÞ§uå¯sá®vß®ã±}綀å±xÕ›hÓœe»’iâ«zߦ}Þ¥xä­~䭅ᩃä«æª~á«{Ûª{ݩᬃ䭀ä­ã°€á­~à¦zà¦{à¬Þ©ÙŸuØŸsݨ{Þ«ݦyݦuÞ®{ްݬ€ß®…á±~à«wݧ}ߪ|ߪ{߬‚ß±ˆá´å¶‹ã±ƒáªˆá®ŽÞ±„à±}á¯~Þ¬~à¯á±…ీ߭zÝ«|Þ­|䲇贆á³~⯇籆à®xÚ£tØ¢yצ{Û¨z屇⩂֚lÚ§~䲋àª~ݪޭzà¬{â®…à¬yÚ¥qÚ¤uÞ¨wÞ¨sݤtá©}ݬ{Û¬{ⱃ縅溊æ½è¹ç²Žä³‡â´ˆäµ†ã¯€Þ­~䲃䱈ⴈ緆æ·ä¶åµˆç·å´Žä®Šá¬…å±ã²€á±…Ⳉܫ}Ì™hÃYÇ–cÑ¢sÜ®崋躑꿓쾖ë¾ç¼å·Œä°‡à²Šß³ˆä¶‚蹆纊鹊鸉緈浊洊䳉å³á°‹ÏrÇ™gÍžlÑšjÒœgتu嶅å¯}ÞªwÞ«ᯅ߱€á¬€ã±‰ã³Šá­…ૂبwÕªxß·†è»‡ä³‡à²Šß³‡ãµ‰å¶Œã¶‰â±ß­{ß®|à±~ݯ€à®á¬|ܧ|Ü«yÔ¡p½Š`ŘkÙ¥vÙ lÛ§xÚ¨zÓ¢pΟpËœlÒžsݪ{ß­zܨuÞ¨uÞ©vݦtÜ¥tݨsܦvÙ¦rÝ£jÛŸlÖ oצzÙ¤vÒ—e×nÞ£pÚ eÛŸfÛiÕœhÔœjÑœbÒšbÖšeÓ—^ЛfÖ l× kÙ¤oÛ£mØ£nØ¥qÙ mÔlÓ¢oÖžhÔ™gЗfÒ•^Ñ–]ЗcÒšeÕœdÔžfЛfÒ˜_ÓšdÔœmÓ›hÓ›fלiØžgÕšeÓšiÏ™bЙ`Ö¤nØ¥pÓŸgÓ gÖ fÔ¥mÖªuØ jÔždÎc̘cјcЕbÊ–gÏŸm×£kÔ›cË•aË–cÓ i×fË‘XÈŽWË]Ì’[Ì–\ËSÊ‘MÏ™\Í•_É“ZÍ“aÍ”bË•_Í•cÑ”[Ñ•YΗ_ϘaÏ–`͘ZΗ]Ó“_Ò—`Ò™`Ô˜_ÓšgÖŸjÙ mÓœlÓ™hÑ•gЕbÔ™cÒ™hÔeØžeÕœhÕžnÙ oݦrÞ¨pØ£jןdÙaÚ¡nÜ£jÕ›ZÏšaÏ•`͉KÂy3³e!¶s$Ȉ=Ó”WÙ aß©oá®{Ú«}Þ©zå±{á´x߯zÞ¯}Ý®|à²záµzà³à²~áµ~㶃繈湆ݰ}Ö¨tÖ¤mÜ©pÞ­và¬tà©uݧvܨrݨrà¨qݦpÚ§iÚ¨oÛ«tÛ¦rÙ lÙ¡fÕ¢gÒc×¢iÞªqÚ¤gÕ¢oÛ©oà¬iç´~꼇纀ä·}çµ{å¶|à³}Þ®yÔ¨rÕ¦q߯wâ³zÞ°|ß°~à³{á²wß«mÜ«kà­mÞ¨pÛ§tÞªqÚ¬mÖ¢gК_ÐaÕžhסmÜ¥mÛ¦hØ©kÙ§hÓ eÒ¤pÙ©qà­tá¯tá­s߬xá°{ä³à¬}Ù§sÔ¥kÑ¡sÓ¢zÚ¨sß­rݪtÛ¬sÜ­tÖ£k͘]ɘZÍš[Ô eÙ¥qÙ£rÛ¦oÙ¦sÙ¨rÜ«iÜ«rà¯vÙªnУkÒ¦iÒ¤dקnß®yß±vÝ°vÙ®uÖ¬rÙ¯uÞ²yÛ¨kÒ_Θ\Ò™[Óš^ÏœbÍcÑžcÙ£fݨrÙ¥mÖ¡jÛ¤rÙ¥fÚ§h߬sܪlÙ¤^Ù£cÛ¦oÝ«rÛ¦nÑ fÕ¦kÙ¦nÒžfÐdСlÙªsß³zÞ³€á°€ß°Þ°{â®zà«|Þ­uÞ¬qÕœnÓžrÙ¬xß«và¦uà§vá«{㰀㯆䬇鴂è¶xÙ¤jÎd¶’eà¬{â©vä«{岃䮀㨂ä¦â¬⪄ঀà©yÞ¨€Ü¤„à¦~á«€à¬{áª~ᧀà¬ß«Û¢yÙ¤yஆߨˆÙ¤xÙ£qݦuà§wØ¡s×¢sÛ¥vÛ¥yÛ§yÛªzÚ¦ܤ{Ý«ܯ„Ú¨vÙ¢uݦ}ܧ{Ù¨zÚ¦yÚ¥{Ú¦xÜ©vÛ©z×£p×¢jÛ«{᳈汉æ¯~Þ¨vÚ¦vâ²xã®yÝ¢tסrןpÙ¦zᲇޣsÒ›eÔ¡uØ¥zÚ¨zݪߪ|ß°€á²…â¯Þª}â­|䯃ߨ‡Ú¤|ݪwßµ‡ã¹åµ‹ã´‰çµŠä±…ᰅ䴄嵄岈尉ⴆà³~Þ´ƒÞµƒà³~㳂ᲇàªá¨}ܬ‚Ú«ß«yß­x߬xß­zܲá´€Þ¨vЙkÏhÕ§oÚ«tâª{粅䵇áµáµâ²ƒå¯€â­~á­‡à¯Ü±{á°äµ乀嶀泂Ⲃ߱{à°{߯Þª~ݨ{×¢rÏmÑ¡kÕ¡kÑšgÓ¢pÞ­yߪyá¬à«{Þ¬xܨxبvÞ­{å°ƒâ¬yÞ¨vÚ¦uÖ¤yÙ©„ß²…ⵄá¯~ூ᳆ᲀݨ{Þ©xá®â­Þ«{Ü«{Ú¥{Ø uÑ pÚ§zÌ^‘[3£yPئnÔ›dÖiÛ£oÕ™kΚjȘfЕiܨyÛ¨uÕškÕlÖ¢qÕŸjÔŸjÓœsÑœvÖœnÙ™iÑ–eÈ“`Í›rפ}Óšh×dÛ¦hÔŸjØ tÝ¥yØ¢xÓ¡nÐhÓmÖŸkÕhØ£pبzÖ§uÚ¨nÛªtØ©wÚªyܧxסuÙ£zØ¥yÕ¡sןqÖ tÕžmÖœhרn׬mÙ¤mÙ¡mÚ¥nÙ©oÖªn×¥uÛ¦zÚ¬xÛ¬xÚ¥vÓ¢oÕ©uÜ­ƒß¯‚ݯ€Ú°…߯‡Þ«Û­|Û¯{Ù©yÖ¦vÕ¢kÕ jקvשwØ©yÚ­vݯyÚ«yÙ¦vÙª{Õ¬~Ô¨{Ò¢sЗdΓ`ÏkÕ£mÑŸhÐœjОmϘjÍ”dÊ™`ÏœhПkÏžlÒœjÔ hÔ hÐhЙkΖeÑš`לeÔ™dÍ™cΛeÖ¢lÖ¥pÓ¡oјfÎ’^Í’WÍ–YΘ_Í“aÍ•_Ó—^Ô˜aÓ™fÔ›g×eØžjÔ™cΘUΖXÍ]ÌŒÖIÍPÏŽSÍŒKÇ~;¸k0¼r2ȇAΔPÕž^Ù¡jÛ¢qÚ¢qܧuå²{ä¯{á¬ræµxã²{Þ­yá²€á¯Ü­xß±z㳃ⵅൂد{Ñ¥pÑ£jØ®uß±â«â®{ß²yÜ®vܬsà¯vߪoߦcܨjÚ©tÜ©uÛ¨mÛ¨kܧkÓ¡gÔžgÜ¥gÚ¥fØ¡hÛ¨lß±mà±tá®vÝ«n×¥jÚ©qã°vá¬tÞªrÛ¨mÚ¥má«ã¶á³{ⶅ么ⷀޭvÛ©uÞ«uÞ¬rÝ®sß®zÞ«tÙ¢eÕšbÓše× fݨiߪmÚ¢hÙ¢jØ¡iΞbÍž_ÕŸaܤiÙ§gÓ£`Ù¥fá¯qæ±xã±xÞ«rÙ¨mרiÖ£iÙ¦mÜ­yÞ¬zà¯vá³yÛ®vПhÇ’XÇWÉ’ZÏŸbÖ¢cÖœ]ØŸdÜ«uÜ«tÞ©qâ®uÜ©mÓžeКdÌ›eОgקiÚ¬kتpÖ¨tÒ§qÕ¥oÞ¯uà²sؤhÏžjÒžeÖ¡gТjОdÚ¥kÚ©nÙ¨hتeÕ¢gÚ¢hØ¥j× oÝ¥oÙ¦eО`ÐœcÕŸfÚ¨pجpÓ¥fצh׫nТfÍš`È™dÑ£nà¬mß°zÞ³}ܱwܯxÞ²wÙ«yݪ|á°yקrÔ¤pÚ«wß®qá®qà°zá®{ß®{à­{ã«å¯ã·yÝ­pØ¢p¶˜mä¬vä«|ã­{æ²{ç©}áœsà qá©wä«}ã¨ã¤{â¤{à¦zà¨và©{à©{áª~᪀ޥxà£yÞ¢{Þªƒæ´‹â©Ý¢yܤtܤuÛ£{ןzÖ¡yÜ¥}à«ßª}Ú¢vÜ£s⫃ã±â¬ˆÛ§}Ú§tß«ß«Šâ¯‹à¯‚ß«ã«{Þ«wݤqÙžcÖ¡mÝ®€æ¸Œé¼ã°‚à¦yà©~䲃䵄á¯~ߧxÛ¥uÚ¦yÞ¦yØ rÔžqÖ uÕ¤uÙ§yÜ®~ీ㱆᱅㱀ä´à²à®}Ý«~Ù¥}ܨ~么蹎ã°ß²‡ß«€Ý¥|Ú§zÚªyÞ¯â³~ã³ã¯€á°xà¯|ݪÜ«zÞ­w߯~Þ®Þ¨uݧsà¬}á¬{á¬yã¯~ã­yá¬}ã±€Þ©zÕžnÖ¤uÞ¬}ß«wߪtä°à­Û¥tß­xà®zݨuÝ®wÞ¬}ݨuÛ¡pÚ oܪvÞ¬xÞ¦rÝ¥tݨvÞ«tÞ©pÚ¤xÚ¦}Ý©{Ý¡uÚ¢uצtÕ jÔœhÕ£nݦsÞ§sݨuÛ¥zÚ¦Ú§p× hÜ tݧyØ¥vܦvÛ¥qÙ qÙ¡oܧtàª~ߪwà«uߧvݧtÞ©rÞ§yàª|ݨtÜ qÝ¡yÚ¦zÖžpИeܦrÓ‘bž_5¤xIÑžkÖ˜hÖ fØ¢mÓ–nÏ–eÊ—\ÏŸgÛ£uÛoÔšjÕžuÚ pØžmÓ¡sÖ¢qÙ mÕpÔšhÑ•cÅ^ËiÞ¬yܤnÙ¤pÞ«ܪyÚ¬{ݬ{Ú¨zÙ¦uÚ£tÖ£vÚ¦oÜ©vÞ¯Þ°uÛ¬tܬ~ߪ}ܪ}Þ«|Þ¬xܬyà®ݬ|Ú§tß©~ß©}ݧzݮݴ}ݯxÝ«yÝ°yâ¯yà¬vÜ®uÞ®~ᲂ޵ݱ۫٨xÙ«|Þ±ƒã³ƒá±‚᳇㱄۬zÙ®޲ݵƒàµ~ß°vجuÝ®{ß±Þ³‡â´‡à´‚Û±Þ°„ݱ…Õ«|Щ{Õ«}بqÓ¥oاuܨuרxÖ§xÖªxÕ¦sÖŸrר{Ù­yܪyÚ¨wÚ©vÛ¨zÙ¥vئsצrÕ£uÚ§{Þ®xÚ§pÕ£pÛ§tÞ«yÙ®xצuÒqКhÒ›hÔžmÔžkÑŸeÓ¡gØ¥mܨnܤkסiÖ¢g×¥nסjÔš^Ï”ẌHǃ<ȉEÌ‘SÍ“UГPÏKÄ:½|>ÈŒQÓ™^ÓfסoÙ¥vØ£qݤqä®}á°zÛ°wáµ~â²{Ü«sÛ¬rá¯yà®và²vâ²}á±{à³|߯vÚ¨sÖ¦xÙ­xÜ«tݪvÞ¯{ã²|ã²{à²yá°yÜ«uÝ©mß©và«~áªzß«wÞ­zß«uÙ£oÓŸoØ«pà­mݦdئgÞ©iá§mݧiÒ¡^Í™ZÕ¡fÛ¨lÚ¤gÞ§oà¬tà«rã²}溈淄崆渇巃ޭvÞ©tܨs׬tÜ°~Þ¯yÞ¬tÞ«rÙ©kÙ§kÝ©pá°yä²yâ«vܪrÚ§fÓŸ_Æ—QÆ™XÑždЗ\Ê“[Λ`Õ§hܯoݱoà¬sà«sÞ¬mÚ§nÞ©rá«uÝ«vÞ¯rà°uÞ®yÚ¦lÓž^КYÏ–ZÒhÚ§qÕŸkÖ¢hÝ®nÖ¤lÔfÙ¨nÚ©kÙ¥jÔ¦hΞgÎœiÍ¢eÏ gÓ¢nÕ§lΟgÊŸnÖ©yâ®yß®oÙ¬mئhÒ¢hÑ¡rؤrÜ®rÝ®vÝ«pÙ©lצpÜ©qÞ¨qÞ«tÛ­mÚ¨iØŸjÏš`ÍœdפoÖ«kѨiئkܬnÕ¥i̘cÈ”aΞlܨwá®yá±yá¯xÞ­yÞ°uÜ®oà³|渊ã¯á­}á±|á¯uåµtåµtâ°tâ±yä°zߨoÚªqâ¯wàªqÜ«sÀ™vã§sâ¥{á£á¦~ߟ~Ù–vÕ–nà£wã¬Ý©{ߧyá©{â§yߦzÙ£vÙ£w߬⯃â©á©€à°ƒç·‹ê¶Šæ®~áª~᪈專ç¶éµå²„㳌糎㮅ܨ|⬃ê½êÁŽç¶’貋é´鵌鷘꼔ê¼é¸Šã°„Û¬xÙ©sØ¡vÕ£tÛ­zä³ç³‡ã´†á±‚ᯆ㲉峅㰆ީyÛ¦oݧqÚªvÙ¨xסqÕ pÖ¢wÖ¦yØ«zÜ®à°ÜªÙ¨‚Ý°…Þ¬…Þ¦zÝ©{Û«€Þ®ƒä·æ¸‘ã°‰Û«|Ý«vÛ¦yؤzÚ©|Ú¬z߬xâ¬Ý®€Û­~ݪ€Ý¬}Û©vÜ©xà¯|à­uݪnÚ¥mÙ¥j߬xà«{Ü«yÝ©yá¨rá¬zà¬~Ú©uÞ¦rÞ©rÙ¤mÙ¤kݯyÞ®{Ù¢nØ£mÚ£oÙ¥kÞ¨iÞ¦iÙ¢jÔ™dИkÔ£rÕžiÖœoÖqÕ›nØ¡oÕŸoÔ¡gÙ¥hÖŸsÕžoÛ¢hØŸjÑœcÑ™fןqÖ£pÒ›jÕiÖ¡jÚ¡oØ¡jÕŸ_ÕnןuÚ¥mØ£pÕ jÕbÒ˜cןhÙ¢kÕkØrÖoÖeÖ hÜ¥rÞ¥tÚŸnÕ›eÔbÔŸrØ¢yÜ¥tß«{ܨuË“`Ë”cÖ£qÔ pÙ¦rÞ§sÙ£tפtÑ›lÒŸvÚ¤xÚ¢rÚ«{೅糇㲀ݫzÞ«„Þ°…ÖªzÖ§vÖ¦tПqÖ§zൂ߰uÚ¬y߶ƒá¶€á°†Ý¨}Ù¦sÛª|ݧzÚ¦tÕ©~×®Û¯{Ü«Þ­‰á±„à®xß°yßµ€Û³zÙ­{ß®…ೄ۰}ݱ|ᴀݯܰ€Þ±ƒÝ°ß°}à°}ä¯{â°}Ü°ß­ß±…Û¯ƒØ«xÚ«vÚªxÚ¬xÜ­~Ý°€Þ±ã°†ä®„Ý®€Ú®zÜ°{âµ~ⵂݰ{Ù­zÝ®|Þ­{ᰂಆ۬ݯ~Þ±|ݪ}Ö§uѪrدÞ¯{ÙªyÙ¯zÙ¯zÙ¨}Ù«xÛ¯zÛ«~Ù¬zÞ²tà°|à°~à°|Û­|Û®zÞªsÛ«sÙ²|Þ¯zà¯}â°„à®zÙ¨rاvÚ¯zܲ}Ü«}Ü­zתwÔ¦wתuÙªsרwÖ¨vÙ¬{ß²ƒÜ¯}Ù¬rÜ«wá¬ß­wبnÑœ`ΑNÍHÒ•YÔœfÑ™dÔ™aÐœ[Ë—WÇSËTÑ™dÕ lܨpÙ§pÒŸhÓŸhÛ¥mÙ¥oÔ¦hצjÛ¦o×£tÑŸjبpݪvݬuã°~â­„á­~ä®xá¬vã¯uâ³}Þ¯yÔ¥oÔ¤uà®{á²{Û¯|Û¯uÛ©sÚ«yܱ}ß°|ä¯yä®{ã®~â²á°wÞ§rß­}ä´‚á¬|á­xâ´xá³zß­u×¥lÍœhËŸ`Ò¢`ؤcקeÛ§dÞ¦fߦpá«uâ¯xá±xá´~â³}á­vÞ±vÜ­zÛ¨xÝ­zߪzÝ¥tݧuà«uÛ«uÛ¯uà±xà­tÞ¯sݲvÙ¯oÕ¤eÊ–[ʘZÖ bЛ]Å“SÊ–\ΞfСj×£kܧhÝ¢gÙ£hÖ¨hÛ¢jܦsÚ­tܪsÞ¨uݦmÝ¥jبkÕ¨fУe΢hÙ©oܪqÝ«rÞ¨rÕ¢hРcÔžhÚ¦pÝ­rݧgÞ¢d×¢kРgСgÕ¦mצoÕ£jÒ¤hØ©qâ­xâ°sà®pÔ¥kÑ jÙ¥oÚ¨sÝ®zß±tÛ«iפfØ£hÚªtá³{å³tà¬lÙ§l×¥lКfË•\̘[ЙaÓšaÔ eÙ¦eÖgЛfÉ›_Ê hÚ¬râ³uß°}ß­}Ü«rÚªuÝ­xೂå´ã²{㳄ä±~ã¬tç°€å°|à­tá±xå±wâ¦rÚ¥qÞ«oäªjâªrÄ›sá£vß vã¥|笈樀â¥yÞ¤|Þªƒä¯†æ¬…ᭅⲇ鷉괌䬀ä®y躌ëºì³Šì´“贋綇贅篅ê¸î»•í»—ðÄ›òÃœð¿œðÁ“ì¼ä¯ˆà¬ƒã²ë¹”鵎鮂곃䶉纉ì½ëºŒé´‚ݨvØ¥vܤvÛ sØ¢oÕ¡mÔ£rá°xç³å®ã°}á±yÞ®tß­zß­|Ý«uÞ«rà­zß©€Û¨zܪuߦvÞ¥yÛ¬Þ¬€ß«|Û¨uÙ¦sܪwÛ¨zݨzÞ«yÞ®}æ·ëÀœè»ç¶…ã°~á­~á®}Þ®xà­~⯀à°yâ¶~ⴂੀ߫€Ú¬xÚ§qݪyà­zà«yߦyߢtÛ¦yÞªxã©rÜ©wܧvߪtà®sá¬vݧuÖ jÐœ^Ó¡^Ú¨ná®å«á§xܦpÚ jÜ¥qÝ©vÜ¥oÙ eÑšbÎkÒžsјiÕžgØ lÑœiÖ¥rÙ¥v×¢qפuÑžjÎ^Ó¡iÖoјfÏžkÖ¦sØ¢oÖšfј`Ó¡gبlÙžkןmקtÚ§xܦvØ¢rÕœnÛ¢oÙ¢jÕ¢fןhÔšhÔžpןpØ¢g×£kÙ¦uݧrÜ¥t× rÖžoÖ¢qÚ§uÞ¬€Þ°†Ýµ†Ý±{Þ«ܬ„Ü«‚Ý®ƒÞ­zà«và¨xØ¥tÖ¨tÛ¤uÛ¥zÞ²Œä¹‘껑è´Þªà²ˆã¹ŒÜ²}Ý®‚á°€Þ¯{ܬƒã²Šå¸‡â·€ãº‹ä»‘ã´ˆäª|ß­xܲvß±wß²vتvÙ©zÝ®{ܯ߱ᴀᵃ㵄㳃Ⰳá³~㻄ᶌܫ~Ù«tß°€ß°„߮㱄㱂à²á³â²…ⶄಀᭇ߱‡Ú°~Û¨yÚ«uÝ®}à¬}ß©t߬wà¬|â¬}â²~Þ¯yÞ®~á°†â¯â¯vÜ®rÙ¬sÛ¬vß­yß³„ß´‚ߪvÞ«xÞ°{áªxܪtØ®u߱ంۭxجxÙ«xÚ®xܲ„á±à²xÞ±yÝ°~à³~à´‚Þ°€à²|ಂݭ}Þ¬x㬀ᭅݱ†Û³}ݯqÚ«pتlÞ®z㱄â±|ß²~Þ²€Öª}Ö¦sÜ­zܱ֩xÔ¨|Þ²‚â²Ý°~Þ°yß±|ß±~Ý©tÕ lÒ¡jÒ gÕŸfÕ¢o×¢oסlÖ¤lפiÖ¡bÔeÕžhÚ¦uܬ{ÙªpÕŸkÔkÕ¤nÔ¡oÔžgל^Ôœ^Ô›aÑ—aÕŸk×¢mÕŸmÛ¤vÛ¨oÚ¤nݦvà²vâ±zä¯â°yÖ¤jÏjשvà°yÛ¥nÔ¥oÙªpÛ©rÝ°xà²}ß°zã°uà²}ݲ|ã³vâ²€Þ¬}å¬zã°{ß±~å²~ç¸{ã³zÞ­zÛªpÔ§iÑ¥jרfקhØ¥kÛ¨jß©oÚ§rÙ¥qÞ©uß«rݪj×¥jÕ¦kÚ©kܬmá°rá«qܧmß©rߪvÝ«rà¬uä­{á°zݳ|Þ³zÝ°pÖ¦jÏ›fÏŸiÒ¨sÓ lË™bÌgФqСkÒždØ¡hÙœaÖcÖ£mØ¥nÛ¨pÙ¨oרlÜ©qؤoÕ¡hÕ¢fÓ¢iÒ¢jÔ¡mÛ¨mܲoÝ®oÙ£hÑ¡dÓ¤hÖ qצyܯ}à®zÞ¨oܨrܪvܧsÜ­yÚªpÙ¤hÛ¨oݬuä±xç´wá¯zÓ¢jÔ¡bà«pá®wß²vÝ°qÜ«oÛ¨uÙ¦uئvá±€ä´|ß°rÚ«rקrÕ£gÕ¡fÓfΚ^Ë™\Ϙ_ÓaÓŸdØ¢gÖ¡bÍžaÑ¢jÞ¬qß²|Þ¯yÛ§qÙ¤vÞ©|㯀尀ã®}ä°|æ³xã¯{ä®{á¯sá­tã±yà±yß«vâ®xã²xã®oä­j¾›hà¨}⫂粄촇뱉쳈칒쵕ð¿›î½”î¼™ð¼™ï¾’ñ¿–￘ïÀ췅调豆ޥ}Ù¤|àª|æ³ïÂïÁ”꺒ì–뼒궉츈ã«~ܨwÝ­ß®‚ᲀ㲄㬈߬‚Þ±ƒÝ¬à®ã³à¯|ݪsÖ¢mØ¢oØ¢gÓšeЙkËšfÈšjÑ¢oÝ­tã±}ã­zá«xß©xá­{ã°z߯xÝ­vÝ«qÞ¨vܪyܯyá­á¬ூߪ…Û¥|ݧvߧsÞ©xÙ¦zÙ¥wÚ¨yÛ°€äº“뻗빎踊峅ⲃⱂà­㯄ᮂàª}ä²â¯ƒÝ¦vݤvÞ¤€Ü¨{Þ®}á«{à«xß«ߦ€Þ£{ã¨xâ§qÝ£jÝ£kݦrÝ¥qÜ¡rÙœnÑ•bϘfÕ¡oß«uã³{á±ᮀà«zÜ«wß­|Ý«~ܧvÛ¦oÕ¢lѤoÕ¢tÕŸoئuÙ¦}Ö¡xÔ¦xÖ©{Ú«~Ú«€Ó¡{ÒœoסkÕ¤pÖ¡nØ¢qÚ©xÛ©pÖ¡jØŸiÚ§pÙ¨rÚ§oÝ«tÝ­zݬ}Ú©}Ô zסyÚ§qÛ¦mܦsÚ¦yÙ¨{Ý«yÜ©zÙ¨}Ö«xÚ®{Û­}×¥xצ€×ª{Ù©zܬ~ܪ|Ù«yÖ­zÛ­zá¬|à­Þ¨xà©tà°x߯€ß¬~Ù¦xÖ¤yݧxÛ§tÖªvÝ°㴊ⶋಂ߲ß²~ß­}ಇäµà±€Ü¬᱊綊洊㳌޲‡Ý°„ᶉ巇â®Ú®}Û¬}ݧzÛ§rÝ­và­{á¬㲂áµ~Þ®{Þ¬}ޮ߱yÜ´wØ­}Ö¦zסu۬ܫ}Ý¥yß­}Þ°{á«~â­}ß©xÞ«|Þ°yá¬zà«{ܨtÙ¤wÙ¨vÜ«tß©xߨzß«xÛ¯yÛ­zܧ{ݦwá©uß«yÝ©{ߧxÞ§pÜ¥tÙ§qÙ©kÜ«zÝ«{Û¦tÛ¦rÛ¨sÞ¨s߬pÞ¬rÛ¬zÙ¨yÕ¥uÖ¤qÖ¦rÙ©uÞ¬xÞ¯|Þ®wݬvݪxߪxᬀఃá²á²Û­à«zã±vßµ{Þ±Û­{جsצrÙ§tß­{â°€â±~å´{á­vÕ¤nרrÝ°߯~ݬrÙ«oß«€ß²€à²}⮀߱㱄à®~ܯxØ«tÒ nÒ fТlÓ£qÙªvܯ{Ú«xܬ{ß®}Ù§tÒ¡lПlÖ¢nÚ¥hÙ¨jݪrÙ¨rÎhÍšeПkÒœfÑš^Õ¡lÚ£oלbÓœcÙ gÖŸeÑ dצkÝ¥lܦmݨtÚ¥uÒžgΠeÕ¥kÖ¤lÏeÏ¡i׫tÞ±zá±{߬{߯ీܬzß°vÝ®tÛ§làªtß®‚ೂá±Þª{Ý­}à°}Þ¯~ߪsÝ©qتuÕ¦vÕ¢vÞ«sã°uÞªnÖ mÖŸqÞ«t߬tÔ£lПiРhÕ¡fܦmÝ«oݪmÞ­pÝ­pÛ¨sÞªxâ±{á¯tÞ®sݯuÝ­tاsÓŸkÒ¡iÔ§nÕ§kÏ¡hÏ¡pÓ¤qÍŸeË—]Ôž`ס\Öž\Û¢eÝ¥jØ¥iÕ¤aÓ£]Ø£`Ö¢bÍ›]Ì™_Ô¡jܪnبqبuÞªzÛ©tÖ hÕžiÖ©oשlÚ¨rܬpß°qá­sܨuÞ«uâ®|ã±{ݯoÖ¤hÙ¤jÚ¨mܨhà­jÞ¯mÒ£dÓŸeܧpݬtã±yà²qÖ¬nרqÚ¨kÙ¥jÜ©pà²rà­rÙ§sÚ§mÞ°oÜ®nاlÕ¥lΞ_Æ‘XÆZÈ•[Ï›bÜ£jןgÑfÚ§mÜ«sÜ©uÜ©rݦsà©xá°yã²yà­rå´qé¶tä«xâ­yæ±mã¬jݧpà§oãªrâ«oä«gߦbÝ¥a»–`㧄å¬~ç±ì³†í´†î¹Šó¼”ò½”ðÅ—óÅ›óÀ™ì¹‹æ°è¯î¶Šì¸Œç°ˆã§yä«vä«}ךpÔšpÛ¥qá¯{鶋괄䳉䷌ᵀ޲‚᪂ݡtØ¥y߬઀ܫ}Þ´ƒá´‡á¯á®}à¨{Þ¦zá©Þ«Ü©wÝ¥rÙ¢oΚiË–eÊ•eÊ–hÈ•hÃ’bСkÞ¯{߬|á«vâªuáª{â®ã°Þ«wÚ©{Ü©|á§rà«tÝ®yß­{á­ƒÞ­{Þ¬wÞ©zߪzੀܦvסjÓ¢nÖªyᵂãµã²æ±‡äª†Þ©zÝ­{ß®€â°|Ý©sݤrä§wÞ§yؤt×¢mÙ¥qÞªxá­á¬zà«ràª}ä¬ä«|ß«yݦmÜ¥gÝ£kÜ¡qÞ§xà§xÖœhÒšeÕ¥vÜ®€ã°~ã²~á°|ß®}Þ®€á°}ä²{à­yÞ©yÜ©zÙ¨vÙ£{Ù©zÚ®rÚ©sÙ«vÙ©zפz׫|Þ²€Þ¯|Ú¨yÙ§sÙ¨rר{Ø«vÙ§tÚ¦uÞ«wÞ¨vÚ¤uÞ¨vã®~ß°}ݯvß°}â°zÞ©xÛ¡uݦzÜ©~Ü©xÞ®zâ¬à¨„Þ¬„ß°€à­~ب€Ô¦uØ¥rÛ©vß«và«}Ý­Û¯yß­~Þ©|Ú¦uݦ}ÞªvܱvÛ¯|Þ«}á¯|ß±vܬvݪvÛ«vÝ«xÝ©|ݨ{Ú¦tتvÞ³‚㳄߱ݯ}Ý«{߫ᲇڱ‚ת~ݱ⸄ᲃ߭}Ö£qÓ¦wÞ¶Šä¸…á¬|Ú¨x׫uשsרtÛ­zÞ®{à¯|á®{ݨwܤmܦoÚ¨uÞ¥nÛ§lÙ­qÜ¥qÚ¢sÝ©{ݦxÛ£pÝ«oÚ«rݨqÛ¦lØ¡kØ¡n×£nݤqܤnÚ¥kÝ¥kÞ£kÙ¡rÕ£pÖ¢oÛ¡lØgÖŸnסjÕŸbÚ£jݦsÛ¤kÙ eÙhÓ™dИ^ÔšcÖ¡eØ¡iÙgÔ¡fÔŸkØŸlØ¥lÙ¥pÛ¤rÖ¡nÒ¡nÓ¦lÙ¨oÞ£nÙ£mÙ¨rÞ©nÛ¦rÚ¥nÚ«nܯvÞ«q߬yà²ß©zݨyÝ­và¨zá«{Þ­rÝ«vÞ®}ܬ}Þ«sß­nß®yä°àªvÖ¥kÜ«pã±|á°~á­{଀ⲆⲀà²~ಀà°xà°và±yâ±zÞ«yÖ¥sÕ¦oÒ£j̤jدvã³à±~߶€ãº€áµ}ÛªuÕ¤sئvÞ©vÛ­uÛ­yß«wؤoÑŸuÕ¡uÖ£lاqÜ­yݧpÖ hÔ¤l× gÒ™bÐcÖ¡aÙ§bئjÛ¤oݨrÙ¦rÔdÑŸdÓ¥kÑŸaÊ›dÏ¡pÛ¬wß°vß®vá¯áµݱzá²}Ý°tÖªnÞ°væ´xâ°wܪ~Ù§rÖ¦lתwÛ¬zÞ®sÞ³rÞ±xÛ©wØ¥rØ©yÝ®á®yÛ§rפpÛ¬{ä³~á¯oפaÒ˜_Ñ•aÕŸdÛ¥iÚ¨nÔ§mÖ¢gÝ£kݨmÞ®qà±uâ²wâ¯yß©tܧsØ£mÓ¤nÕ¥mܪqÝ®y×­sÕ­oÏ¢gÇ’SÍ•U× `סgÜ¥nà«pÚ¥kÖhÕ—\Ñ•\ÓœaÍ™XÈ’SËš[Ù¬mÞ®pתhÚ«jÝ«pÚ¨pاhרkÛ¢rÛ¡jקmÚ«sߪrÛ¥sÛ§qà°vã·~á°uÙ¥oÖ¡mן`ÓZÒžbÕ§_Ò¡\Ðœ`Ö¤fÖ¤lÝ°uä¹yà¬uÚ§tÙ¦lÖ¡eÖ¢kÛªtݬuß®zã´á·}Þ±tÛ§oÖ¢jÒ cÊ—ZÆŽVÈ‘ZΙ`Ù£kܦmÕžlØ£nܨmפiצkÚ¦qߧpá¬tâ¬uà¤jÝ¥hÞ£kÚšfÖ fܧiÞ¤kÝžgÜeל^Ò™VÔšZÔš`Ó™Z¹‹R \ No newline at end of file diff --git a/Sources/Imaging.Formats/Sample Images/PNM/im1.pgm b/Sources/Imaging.Formats/Sample Images/PNM/im1.pgm new file mode 100644 index 00000000..8e5d3850 --- /dev/null +++ b/Sources/Imaging.Formats/Sample Images/PNM/im1.pgm @@ -0,0 +1,5 @@ +P5 +# Created by Paint Shop Pro +284 216 +255 +œœ¡¡¤¡—“œ¤›q]blx‹¡´»²¡‡—¨´¼»´´²¨—‹u‡œ¬´¼»¤—›¬»¼ÁÁ»´´´¼»¼»´´´²¤—›¨²²´»¤¬»´´¼¼´»¼´²¼»¡—¬¼¼¬¨¬¨¬»¼¼²´»²¨´ÅÅ´œq‚‹—¤»Á¼´¤—“›¡¡¡œ—“¤²´ÁÙÁxbl¡¡œ›“œ¡¡¤¡œœ¡¨¬¨—u}œÁÓÁœ‹œ´¼ÊÅÊÊÓÅ“u›ÊÌÊÊÊÓÁÁÅÅÊż´¼ÊÊÊÌÌÕÕÓÓÙÙŨ¨ÅÓ»²»¬›‡‹¨ÅÓÌÓÕÕÙÙÕÕÓÓÓÕÕÓÙÌÁÁÁÊÓÕÓÅ´»ÌÓÕÙÕÅ»´¼´²´ÊÝáÝÌÁ¼¼²¡›ÊÓ²“—¡¤¬»¼¼»¼ÅÁ¼¼¡—“œ¬¬—‚xug]ggu—¬²œ“‚—¨´»ÁÅÁ¼²¡›‹‡}¨¼ÁÅ»»´¬¬¬²²´»»´»¼Á¼¼»²¨¤²»¨¬¼Á¼¼²—›»Á¼»´´²´Á¬¤»»¤—¤´´¬´»¼»ÁÁ¼´»²¡œ¤¬²´œu}}œ»ÊÓÓÌżÁ´››¤¡›œ¨²´ÅÓÝÊ‹bb‡œœœ›“¡¡¤¤œ›œ¡¨¨¤›u‡¨ÊÓʨ“œ»ÁÓÌÊÌÓÅ›u›ÊÓÊÌÌÓÁÁÁÊÊÁ¼»ÅÕÓÌÓÓÕÓÌÓÕÙ̲›²Å²¤¡‡‚›»ÓÕÓÕÓÕÙÓÌÓÓÌÓÕÓÌÌÁ¼ÁÊÓÓÓÓÌżÊÓÙÙÓÅ»¼Åż´¼ÙááÌ´²»´¨¡ÅÌ´“›¡¤²´»²»¼»´¼¤‡bx›œ—‡x}uuqqgSi“¤¡‹›¨»ÁÁ»¼»´¤“‹‹“œ²¼Á¼»¼Á»¬¨¬¨¤¬´»ÁÁÁż´¨œ›¨Å»´¼ÅÁ´¨“¬ÁÅÁ´¨¨¨»Å²¬´»¨œ¡¨¨¬´¼ÁÅÅÊÁÅÅ»¬¤¤¡¡¨¤‡‚‹œ²ÅÌÌÊÅÅÌÁ››¤¡œ¤»»¼ÓÓÓʤiOl“¡›œ¤¨¨—“œ¨¨¡‡—¨¨¼ÊÓÌ»—¬¼ÌÌÌÓÙ¼“‡¤ÌÓÊÊÕÓ´´´Åʼ´¬¼ÕÕÓÌÅÅ»ÁÅÌÓʬ—œœ‚q—›¤»ÊÓÕÕÕÓÓÙÓÌÓÓÓÓÕÓÁ¼¼ÅÊÓÓÕÓÓÌÁ»ÊÓÙÓÊÊÅÅÓÓŤ¡ÕÙÙÓÅÁÅÊʲ¡¼Å´¨¡¤¬´´¼¼Á¼»´»¡qx‹—››—‡ux‡‹}]q“——¡¬»¼¼»¬¤¤¡›—›¤¤¨²»´²´»¼´¨¨¬¨¡¨²¼ÅÅÅż´²¬¬»Ê¼´»¼¬›œ¤¼ÊÊʲœœ¡¼Ì¼´»¼»¬¬²²´´»ÁÅÅÁÁÅÅÊÁÁ»¬¨¬²´¬¨¨´¼ÅÁ¼´»Å¼¨¡¤¤¡¨»ÁÊÓÊÁÁ²}V]x‡—“‹—›¨¨—“œ¨¤}¨¼¼ÊÌÓÌ»—¨´ÁÅÊÓÙ¬}“»ÌÓÊÊÕÊ¡œ¨¼Å»¡›²ÌÌŲœœ“¤²»´¬¡—“uVO‡¨»ÅÌÓÓÕÕÓÌÓÓÌÊÌÓÓÓÓʲ¬ÁÊÌÓÓÓÓÓÅ»»ÊÌÓÅÁÊÊÅÓÙŤ—»ÓÕÕÌÅÌÕÓ²—¨¼¼´¤¤´¼¼ÁÌÓŲ¬²¬¤““—¡¨²¬œ‹œœ“‡‹œ¬¼¼¼´¬œ“‹‹œ´´»»»»»¨œ¨²´´¬²´´¬¨¬´¼Á¼»´»¼¼¼ÁÊÁ´²¬—u“ÅÅÊÊÊ»¨¨´ÊÌÁ»¼ÁÁ¼ÁÁÁ¼´»Á»¬²²¬´ÅÊÌÊ»²´»ÅÊÁ»´»»´²¤¬Á»´²²¬¨¬»ÅÌÓÊÁÅÁ¡xggiu‚}›œœ—“œ¬¨—“»ÓÌÌÓÌ̼¤œ¬²¬»ÊÓÙ¤}—ÁÓÓÊÌÕŇœ²¼´—“¬Å¼¤‡‡‚x“—››—›¤¡}bXx¤»ÊÓÓÓÕÓÊÁÌÓÌÌÌÌÌÓÓÁ¤¨ÅÌÌÌÌÓÕÓÅ»¼ÓÓ»²ÁżÁÓÕ̲‡›ÅÓÓÌÅÁÌʨ—¡²»´¨¤¬¼»¼ÓÕ¼¨¨¬¬¨¡¡¤¬»¼²¨¡¡¨¨¤œ‡‡“¨²¼»²¨œ““——œ¬»»¼Á¼¼´¨œ¤²´»¼ÅÅÅŲœ—¤¬¨¨¬´ÁÅÊÅÁ¼¬¡›“}“Áż´²¨¤²»ÊÊ»²»ÁÁÁÅÊÊÁ»»»¤œ¨—œ´ÁÁÁ»´´´ÁÌÊ»´»´²¨¤¬¼¼ÁÁ¼¼¼¼ÁÊÌÓÌÌÓÌ´›‹‡‚‚}l‡››œ—›¤¬¨œ¡ÁÙÓÓÓÓÓÊ»²²²¡¨ÁÓÙ²‹›¼ÕÕÌÌÕÅ—x¤²¨——¡¤œ‚u¡¡¨¤—›¨´ÁÁœ}Xi““¬ÊÕÕÕÓ»¤ÁÓÌÌÌÌÓÕÓÁ¬´ÌÓÓÊÊÌÕÓżÊÙÌœ¡Á¼»ÅÌÕÕ´}´ÊÊʼ»Á¼¤œœ¨»»¨œ¨Á»²ÅÁ¬¬»´—›œ¡¤¨²¨¡›¡¨¨œœ›‡‡¤²´¨›——“¤²´»²¨¬´»»´´²¨¬´ÁÁ¼¼¼ÁŲ“‹›œ¡¡¤¬´ÁÅÁ¼»¡‹‡—›“¨²¤‚x‹›¨´»¬‹‚¡»»´¼ÅÊÁ»»´œ“¨´¨¬»¼¼´´´»²´ÅÅ´²»»²¬²´ÁÁÁÊÕÕÕÌÊÌÓÊ»»»Á¼²¬²¬¤‹g‡““——›œœ››¨ÅÙÓÌÓÓÕÊ´¬²²¡¡»Óἡ›´ÕÓ´²Êʨ‹œ¡›“‡‚‚›¬ÁÅÊÁ»´¼ÌÓÕÅ—‡x—}“¼ÌÕÙ̲œÁÓÅÓÌÌÓÕÕÁ²ÁÓÓÓÅÅÊÌż¼ÅÓÅ—¨Å¼¼ÌÓÙÙ¬x“²ÅÊÁ´²»´¨¤œ¡Áʤ—¬¼´´¼²œ´Ê»‚‡“›œ¡¤œ‚¡¬¨—›—‚}}“œœ‹x}—“¡¨¬²¬¤¡¤¬²²²»´»¼Á»¨¤¬¬¬¤—‚x‡—›œ¡¨´»´»¬›xq‹¤œ¨²¤‚q‡œ¤´¤‹SS‹²¨¨¨¼ÅÁ»´´¬²»¼ÁÅż¬¨²»¼´¬¼¼¬²¼Á¼¼¼ÁÊÁ¼ÅÌÕÌÌÊÊÊÅ´¡¡´¼¼ÅÊʼ—u‹‚‹‹‡‹‡‹¨ÅÓż¼¼Å»œ—¡¨¡›¬ÓÝ̲œ¨´œx‡¼Ì»¬¤œœ—‹}‡“œ¼ÊÊÌÌÌÓÓÙÝÝÓ¡Xl¤¡¨¡›œ¨ÁÌÁ¬¡ÅÓÅÌÊÊÌÌÊ´¤»ÓÌÕ¼´Á¼´²´¼ÅÁ»ÅÅÅÌÓÕÙÕ¨x—»ÅÊÁ²²»»¬¬›¡ÌÓ¡—¬¼´¼¼¡œ¼Ê»‹“““›¡›}‡—œ——“‚qguxqlu‹““——œ¤¤œ¡¨¬²²»´´´´¬¤œ¨¨¤¤œ‹bg‹“›œ¡¡œ¡¤¨¨l}¤¬¼Á¼¤—œ¨¬»—}V]—»¤¤¨´ÊÅ»²²²´»¼ÅÊÅ´›—²¼Á»¨»²²»ÁÅÅÁÊÅÊʼ²²ÁÌÌÌÊÁÅÁ´¨¬»ÅÊÊŲ—““‚‚‹‡xqx}‡¡»»¨¡œœ¡¡“—œœ“œÁÙÊ´¤››—“¡ÊÌ»¬¬¤¬¡—›¤´¼ÊÌÅÊÊÊÌÓÕÕÓ»‚O‚²²´¼²—›²¼»¨¨ÊÕÊÌÊÊÓÓÁ¬¤¼ÓÓÙÁ²Áż²²ÁÊÊÊÊÅÅÌÓÓÓ¼“}¡ÅÊÁ»²»ÁÁ¼²œ¡Åʤœ¬´´¼´›¡Áż¡œ—““}blxxx‡““‚l]u‚“—œœœ›—›œ¤¨¨¤¨²²²²»»²¨¡¤¨¨¬¤¤¤œug‚—¡¡œœ›œ¤¨´¨‡q—´ÅÅÅÁ»´²²´—‡¡¼Ê»²²»Á¼´¨¡œœ¤¤²¼¼²“—´ÁÁ»¡¬¬²²²²´¼ÊÌÊ̼¬¨¼ÌÓÓʼÁÊÌ»¬»ÅÁ´¤“¨œ‡}}}x}‹‡œ—““—œ¡¨²¡“—¡}l‡¡´²“‚—²´¼ÓÊ¡“›¨²¨¡¬ÁÊÊÊÊÁÅÊÊÊż»²›uqœ»²²ÌŬ¨»¼¬œ¨ÊÓÊÌÌÌÓÕ̼²¼ÓÕÕÁ»ÊÕÓ»´ÅÓÓÓÌÅÊÓÕʬ›œ¤¬ÊÓ´¡´ÌÕÓÓŨ›¨´¤¡¬´»»¬œ›¼ÅÁ¨¨¤›—‚bS]iiq‚“›—‡}‚œ¤¨²¬²²¬¬²¬´¬¬¬²»´´»¼²œœ¤¨¬¨¤¬²œ›¤¨¤¤¨¡¨²»Á¼›lq¨¼»»¼¼²¬¬²¤¡¬»ÅÊ»¨¨»»²¬¡—““—¤¬´´¤¡»ÁÁ»¤¬²²²²²´¼ÊÊÊÌÊ´²»ÁÅÌÊ»¼ÅÓÁ¨²¼²—‡x“¬›‹}qq‡›››¡¬²¬´»´´´¤“¤‹ig}››li›¼»»ÌÁu‚œ¨¡¤»ÊÓÌÊÊÅÅÊÊÊ´¨¤œ‡“¬Á²²ÓÓÁÁÊʲœ¤ÅÓÊÓÕÕÙÙÓżÅÕÕÓÁÁÕÙ̼»ÅÓÓÊÊÌÓÙÕ¼¤¤»»´ÊÕ²“»ÓÙÕÙÓ¼¨œ¡œ¡²¼¼´¤œ—»ÌÁ¬²²¤›}]]u‡‹——›¡¨¤‹lx—œ¤²´¼ÁÁ¼¼²²¬¨¬²²²²²´²›‹—œ¡¤¤¨²»›œ¬´²¬¬¬¬»ÁÊÁ¨}g›»²²²¬¤—¡²¬²»ÁÅÅ´¡¬»´¨¤¤œ›—›¤²²¼Á²¤´ÁÌ´¨»»»»¼»¼ÁÅÅÊÌÌÅ´²¬´ÅÅ»´²¼²œœ¤›‡}“¡¬“‚‡›¡œ›—¡¨¬²²´´¤œ¤¤œ¤²¨›‡‡‡uSX²¤¨Å´uiq‹—“¡»ÅÊÌÊÊÊÊÌÌŬ¤¬¡—›¡¬Á´¬ÓÓÌÌÕÕŤ›ÁÕÌÕÙÙÙÓÌÅÊÓÕÌ»ÁÌÕÓÁ»»ÅÌÊÅÌÕÕÙÌ´²ÁÌÅ»ÊÙ´‹²ÓÓÊÅÓÕÅ‚‡¤¬¼Å¼´¡››¼Å¬¨²²¤“‡x‡›¤¨¨¡œ¤¬¤‚ix““—›¤´¼¼»¬¡œ›œ¡¬¬¬¤¨¨¨¡›——›œ¡¨¨¨‚¡¬´¼´´²´´»¼»¨—x›¼»²²¨¡—¡¬´¼¼¼Åʼ¬´¼´¨¨²´´´²»»¼ÁÁ¼¼ÁÊÊ»¬ÁÅÁÁÅÁÅÊÊÊÊÊÌÁ¬¡›œ¬»²¨›œœ“‹‡‹“œ¬»»“‡›¡¬¬¬¨¤¡¤¨¤¡¨¬¬›‡œ¬´»¼Á²œu]Xb‚››œ¼¨giu‡‹›»ÅÅÅÊÅÅÊÊÅ»¨²¼¬œœ›¡Á²¬ÓÕÌÌÓÙÕ´›´ÙÕÓÓÓʼ»ÁÌÕÓ´œÅÙÊÅ»»¼ÅÊÊÊÓÓÓÕ»¡´ÌÌÊÁÌÕ¼—²ÅÁ¼¼ÓÝÁxx¡²ÅÅ»¬¡¡¨Á¼›¡¤¡—‹¤¡¤¨¬²¨œ›œ¨¨‡x‹—›—‹›¬²¬¨››œ¡¤¨¬¨¤¤¨¬¬²¨¤¬¨¤¤¤¤“‡¡²»¼Á¼»²¨¡¡¤¡œ‡›»»»²¨¨¤œœ´ÁÁÁÁÊÅ´»¼»´´¼ÊÊż»´´»¼ÁÊÌÌÅ»²¼ÊÅÁ¼¼ÊÌÊÌż»²œ“›¡‹‚u“¡¡œ›œ¨»ÊÓÌœ‡¤¼ÅÁ»¼Á¼¼¼¬œ¨´»¨——¤²´»ÁÁ¼¨ug}‡‚¡´Á¨lq“¤¨—›»Êż»´²»»²¡¤´»¤œœ—¡´¨´ÓÓÌÌÌÕÙŤ¨ÊÌÅÅÁ²¨²¼ÊÌÁ¡—ÁÓÊÁ¼»¼ÊÌÓÕÕÅÁʤ“²ÌÌÊÊÌÓÊ´¨¡¬²»Ę̂}‚“¤»¼»¤œ²Á»¬‡—“}x‹¡»»»»¼´¬¨¡¤¨¬›—¡¤¨¬¬¡}‡¡´¬¬¡¡¨¬¤¡¤¡¨¬²»¼¼¼¼´²¬¬¨¡››¨´¼ÅÅÁ²¤¡››œ¤›—¨´´´²²´¡“¨ÁÅÅÅÌÁ¨œ¬¼¼¼ÅÌÌÅ»¨¡¤¬²»ÁÅÅ»´»ÁÅÊÁ´²ÁÌÊÕ´œ›——œ¡œ››‚‹—¬»¼¼´²¼ÅÓÙÝ›l¤ÊÓÁ»ÅÕÕÕÓ¼¨´ÌÓʼ¼»»»»»Á»¤‡‡´¨u}¬ÊÓ¬l´ÌÅ››¼ÌÁ¨—‹‹“›‚—²²—“¤²¤—“¬ÓÓÌÌÌÌÕÓ»œ¡¬œÁ»““¨»ÁÅÁ²¬ÁÊÓÌÅÁÅÌÕÕÕÓ»²´œ›¼ÓÌÌÌÌÓÓÊœ‡œ¬²´¬—“——œ¬»´¡œ´¼´¬‹“xbi‹›¤²´¼¼»´²¬¬²²¬¨¨¨¨¬¨¤‹‡—¤¤²¤¡¤¨¡›››¨¬»¼ÁÅÁ»²¬¬¨¤¡¡›œ¤´ÁÊÌÁ»»»¬¤¬²œ—¨´»²¤²¼¨—¤»ÁÁÅÊ»—‹¨ÁżÁÊʼ´¬¤¡¨¬¬´»»²»ÅÁ¼ÅŲ¤»ÓÌÊxSq“¤´´¬œ¤¡¨´»ÁÌÌÊÊÊÊÕÕÙ“g¤ÅÊ´¨»ÕÕÙÕÁ´»ÓÕÓÌÌÊÅÅÊÊÌ»—}œÓ²]g¤ÅÕ¬q¨¼ÕÌœ¡ÁŬœ››‡“œ—¤»Á¤—¬Á¨}‹²ÓÕÓÓÌÓÕÕÁi‚—̼“¡¬»ÌÓÌÁ¼ÅÌÙÕÌÊÅÓÙÕÕÓÁ²¤¡»ÓÓÌÓÓÓÕÓÅ¡“œ¡›—›¡¡¨´¡œ¬¬¤¨´»¼¼¤‚qqu}¡¬²´¼¼»¬¨¨²´²¬¤¤¨¨¬¤“‡‡—¨œ—“——““¡¬¬¤¡¬´´²¡››¡¤¨¨¨¬¬²´Áż¼Á¼´¬²¬——¬»´¤œ¬Å»¤¨´´¬´Á¼¬¨´¼»²¬²´¼¼¼´»»´²¬¬²»ÅÊÁ»¼ÅÁ´ÁÓÁ¬lX‡¬ÁÁ»¬¡²²²´´ÁÌÓÓÓÌÓÕ̼‹x¡»¼¬œ²ÌÌÓÓÁ´¼ÓÕÌÓÕÕÓÓÕÕÌ¡‡¨¼Õ»‡q‚¤Ó¬x¡²ÁÁ¡¡´²¡œ²»´¨²Á¼¼ÌÙ¼œ¨¼¨‡›ÅÕÕÓÓÌÓÓÕÊ¡‚œ´Õʬ´¬¬¼ÓÓÁÁÌÓÓÕÕÌÊÌÕÙÝÓÅ´¡»ÊÕÕÓÓÓÕÝÓ»»´›qx¡¼¬¼Õ´—¡¤¨²»»Êʲ—““‹‚‹¤¬²´¼»²¤œœ¨»»´´²´´´¬—‡}‹œ—‡}‡—¡¤²´¬›‡œ¡¨¡›—œ²´»¼Á»¨œ¡¤¬¬²²¨¨²¬—²»¬¤¡²Á»²²²¨¤¬¼»²²²²¨œ——¤¼ÁÅÊÌÌÅ»¨¬´ÁÌÓÊÁ»¼ÌÌÁ»¡‹›—¨ÅÕÓÅ´²¼»¬¬²¼ÅÊÌÌÓÓÕʨ‡‡œ²´¨¡´ÊÌÌÌÅ»ÅÓÓÌÊÌÓÓÌÌʬ¡ÅÊÕÊ¡‚x›Å²‚‹›¤¨œœ¨¤›¤ÁÓÌÊÌÕÌÓÕåÅœœ¼²“¨ÓÓÓÕÓÌÌÓÕÊ´¬ÁÊÙÌÅŬ›¨ÊÊ»´ÅÌÓÓÓÓÌÌÓÕÕʼ´´ÊÕÕÕÓÕÕÙÝÓ»¼Å¨—‚—¼Ê»ÅÝÊ›‹“œ¬´¼Ǫ́¤¬¬¤‡›¤¨²´²²¤œ¡²»´´´´´´´¨—‡‹¡œœœ““¤²»»²¡—‡}}¡¨¬¨¬»¼»¼ÊŬ‹}x“¡¨¤¡¡²¨›²»²¬»ÁÁ¼´²´¬¨´Å¬œ¤¨¡›“›¤»»»ÊÓÓÅ´¨²²¼ÊÓÌÁ»´¼Á¬›xx¨²»ÅÓÓÊÁÅÊÁ´²»ÁÁÁÅÊÓÓÕÌ¡‹“¡¨¤¤²ÁÊÊÌÌ»¼ÅÊÊÊÊÊÌÓ̼œ¤ÅÓÓÓÓŨ—¡¼´‚x‚‹——›œœ¡²ÊÌÊÌÕÕÓÕÙÝÊ›—»»œ²ÓÓÓÕÓÁÁÌʼ¼ÊÕÓÕÓÌÓ¼“›ÁÅ¡—²ÊÌÌÌÓÓÌÌÌÌÅ»´¼ÓÙÕÕÕÓÕÙÝÙÊÊÊÁ´›¡ÅÓÊÓÝÊ¡lb‡œ¡²ÌÓœ²»»´›}x‡““›¡¬²´´»´¨¨¬¬¬²¡—›²¬¨¤¡œœ¤´»»¨œ—“‡u‡œ¬»¼»»´´»¼Á»¨“‚‚—¤¡œ¡¬¤—¡´Á¼¼¼Á¼²²´´²²»Ê²œ¡¨œ“›¡¬´´¨¡»Ì̼¬¤¤›¡¨Á»¡›—›¡œ“‡“¬´´´»»»ÁÊÌÁÁÅÊÅ»»ÁÊÓÌÓÅ—““‹—¨¬¬²ÁÊÓÓ̼²¼ÁÅÊÌÌÌÕÓÁ¨»ÓÓÓÌÓÕÊ´´Å´‡u}‡———¡²»Á¼²ÁÊÌÌÙÕÙÊ¡—²¼¤²ÌÅÊÌÅ»¼Å¼»ÅÓÕÓÌÓÕÙÌ“—ÁÅ›²ÊÓÓÌÓÓÌÌÊÅÁ»´»ÕÙÓÓÕÓÓÕÕÓÌÓÌŲ‹œÊÕÓÕŲ̀‡q‡—¬ÅÊ“²²²¬¡}glxli‚¡´»»»²¨¤¨¨¤¨“‚œ¨»¬¤¤¤¡¡œ¡¬¬¨¨¤¤œœ¨´¼Á»´»»»ÁÁÅÁ²œ“—›››œ¤œ—¨»¼¼Áż¨¡¨¬¬¨¨»Ê»¨¨¨—¡»¼¼¼›‹¨Áż´²œx‡“¤¡“———¡¤¨¨¬²¬¬¬¤¡¬»ÅÁ²ÁÌÌÁ»»ÅÌÊÁ»¡l‚“‡²ÅÁÅÊÌÌÌ̼¬»ÅÊÌÓÓÕÕÌÁ²ÅÕÌÌÌÓÕÓÅÌÕ¼‹‡——œ—‹œ´´¬¤œ¤¬´ÅÙÕÝ̬¡²»¨¬¼»¼ÅÁ»¼Á¼ÁÌÓÓÓÓÓÙÝÌ—›Åʨ¨¼ÊÌÓÓÓÌÊÌÅÁÁ¼²²ÓÕÓÕÕÕÕÓÅÅÊÓʲ—¬ÊÓÕÙÕÌÁœ‚›¨¨²»¬‹²¬¨¨œ‡x}uq‹¡´»»´²¨¬¬¬¨“›¨¬»¨¡¡¡¤¤›—¤¤¬»¼»²¨²¼¼¼´¬´»»»¼ÁÁÅ»´¬¡“““““›¨´»»¼Á»¨¤¨¬¬¡œ´Ê¼²²¤‹¡´¬¬²œ‹“¨¬¬²²›l‹—›¤¨¬²²´»ÁÁ»´¬²´´¬²»¼´¤´¼¼»¼ÅÌÌÊÅ»¨‡‚—“´ÊÌÓÓÌÊÌÓÁ²¼ÌÌÌÓÕÓÌÁ²¨ÁÅÅÊÓÓÓÌÊÕÝÁ““›¤¤¤›‡—¨¤œ—‹‡‡œ´ÕÙÝÕ»¨»Á¨¤²²»ÅÅÁÅÌÓÓÕÓÌÌÓÓÝÙÁ“œÊÌ»´»»ÁÌÕÓÊÅÅżÁ¼²²ÌÌÓÕÕÙÕÊ»»Å̼““¡»ÊÓÕÕÓÓ̤q›»¼»»¡‚»´¬¤“‚‡“›¡—‚‚“¤²²»¬¤¡¤¤œ—œ¨¬¬¬¡›››¡¨¡›¤¬²»¼Á¼²²´¼»¬¤²»´»¼¼¼»¬»Á²›““‡‹—¬»»»¼´´´²²´´¬œ¨Å´›—“¡¨¡œœ¡œœœ›—œœxœ¤¤²ÁÅÊÊÅÅÅż²¨»ÅÊÅÊ̼²œ¤²¬²¼ÊÌÊÅÁÁ¼¤¤²œ›²ÅÌÌÌÌÊÌÓÊ»¼ÌÌÌÊÅ»¬¨¡¤²²´ÁÊÌÌÌÊÓÙÁ‹œ¨¨¨œ“œ›—‚}‚—²ÌÕÝÝŨ²¼¬¨ÁÅÁÌÓÓÓÕÕÕÕÓÌÌÓÕÝÌ´—¤ÅŬ¡œ¡´ÌÕÓÊÁÅÊÅÁ»²»ÊÊÌÓÕÕÓÁ¼ÅÅÁ¤“¤¼ÅÁÊÕÓÊÅʲu—»ÁÁ¼¨“»»¤x}œ¡¬¨œ“—œ¡¨—}lbuœ¡¤¬¨¤¨¡œ››œ¤¤¤¨¨¨¬´Á¼´¬¬²²¤œ²»´»»»»²¨´»´¬¡›“““¨´´»¼¬²´»»¼Á¼¨¡´¨iCX‡—œ¨¬¨¨¨¬¨¡}}‚“›¤²¬²´¼ÅÅÁÁÁÁ¼¬¬¼ÌÌÊÅÅż¬¬²´´»ÅÌÊÁÁÊÁ¬Áʬœ¨¼ÊÊÊÊÊÌÌÌÁ¼ÁÌÊ»¤—¤²´¤¡¨²ÅÌÌÌÌÓÕ»‡‚œ¤¡¡œœ—“›¡œ›¡¡—¡²¼ÅÓÁ¡¤´¤´ÙÕÓÓÙÕÓÕÓÓÕÓÓÕÓÕÙÁ¤›¡²²¡›¡¬²ÓÝÓÅÅÊÓ̼¬²¼ÌÊÊÊÌÌÅÊÓÕʨ“´ÊÕÌ»¼Ó̼¼Å´‹œ²¼ÁÁ´œ¨¨›“‡‡—¡¨²²²¤›‡u}“—‹]O¤¬²¬œœ¤¤¨¡››¡¡¡¤¡¡¨²Á»²¨¡¨¨¤¡¬»»»»¼´¤¨´¬¤¬¬¨œ¡¡œ¨¬¬²¼´¬´´´»Á¼¤œ²¬b)Ex“—œ¤¬¨¤¨¨¤›‹xx¡²¬²²²¤¤´¼´ÁÁ¼¼ÁÅÊÊÁÁÅÊÌÌÅÁ¼Á¼²´ÁÁÁÊÌ»œÊÙ¼¨¡²ÁÊÊÊÊÊÌÌÅÅÁ´¤——¡¨¼ÅÁÁ»»¼ÊÌÌÊÊÕÕ¨}›œœœ¡¤›“œ¤¤¤²¬›——¡²»²“›¨¤»ÙÕÓÕÙÕÓÓÓÓÕÕÓÓÕÕÕ²—¡¤´´¨²ÁÁ¼ÌÙÁ»ÅÊÓÊ´¨²¼ÌÊÊÅÅÅÅÌÕÓ»“›ÕÕÙʲ»ÅÁ´´Á´›¨²´»¼²›“‹œœœœ¤¬´²¬¬¬œ‹‹›¨¨}0V¬»»´œ›¡¬´¬œ›¤¡¡¨²²¬²»»²¤¡¤¨¨¨²¼»²´»»²²´¨¤¨²¬¡¨¤œ¤¨¤¬¼´¬¬¬¬²´²—‹²´‹gqœ¡¡œ¤œ“—œ¤œ““²¼»»Á¼¬¡¬»´ÅÊÁÁÊÊÅ»»¼ÅÊÌÌÓÊÊÊÁ¬¨»ÅÅÌÓ¨‡ÅÕÁ²œœ»ÌÊÊÊÌÅÓÓÓÊ‹bx¨ÊÕÌÓÓÌÊÌÌÌÌÓÌÌÕÕ¬‡“›¡›—›¡œ“œ¨¤¤¬¬¤œ¡¨¨œ›‹“œœ´ÕÕÕÙÕÌÌÕÓÓÓÕÕÓÓÌʨ“´¼ÊÁ¨´ÓʼÌÓ´¬ÊÌÁ»²²¼¼´ÅÓÊÊÌÌÓÕŤ—²ÙÕÝÌ»»¼¼´´Á»œ¬¬¬´»¡‹“‹“¬²²¬¬´»¨œ¤²´²²²»¼¤lx¬»»»¬¤¬¬´´¨›œ¤¤¨²´²²²²²¬¤¨¨¨¬´¼²¡œ¨²´²¬œ—¡¬¤“———¨¬²¼¬¨¨¬¬¬¨—q}¨»¤‚‚—¤¬¬¡œ—‹}‚“œ¡¨²»ÁÁÊÓÌÅ»²²»ÅÅÁÁÊÊÅ´´ÁÊÅÅÅÊÅÅÅÁ»»ÁÊÌÓÓq¼Å»´¨¤´ÊÊÊÊÌÊÌÓÕÓ—g‡»ÌÓÌÓÌÌÌÌÌÊÌÓÌÊÓÓ¬‹›¡——¤¡—œ¨¨¨¨¤¬¨¬´¨“‹‹“œ¡´ÓÕÌÓÊ»ÅÓÓÓÓÕÕÌÁ»¼¨œÅÕÕ¼¡¬ÌÌÁÊ̬²ÌÁ¤¨»ÊÊ»¬ÅÕÌÓÕÕÕÕŤœ¼ÝÙÙÕÅÁÁÅÁÁÊÁ¡¤¤¤²²›‡¤¤¬´»¼»´»¼¨›¡²»¼»»¼Á¼›“¨´»»´²²´Á¼¬œ¡¤¡¡¨´»¬¤¤¬²¬¨¤¨²»¼²¡œ¤¤¨œ›‹‡—¡x}}u‚œ²²»¤¤¬²»¬›‹lu²Á²‚q‡œ²´œœœ—‹¤ÁÁ¼¼ÁÁÁ¼´¨²»»»´»ÅÌʼ¼ÁÁÁ¼¼¼¼¼»¼ÅÌÌÓÓÓ¼lV¤²²´»´´¼ÊÅÊÊÊÌÓÓÓŬ¬¼ÌÊÅÊÌÊÊÌÊÊÌÓÌÌÓ̬“›¡“‡—¨¡“—¤¨¨¤œ¨¨¤²¨‡‡—¡¨»ÊÁ²»»¬ÁÓÕÓÓÌʼ»²»´´ÓÝÙ¼¡¬ÌÓÊÊÁ¬»Ó»¡²ÊÙÙÊÁÌÙÓÊÌÓÕÝÕ¼¤»ÝÙÌÌÕÓÌÌÊÁĘ̂—¡¤¤¡œœ´¼»»»»»´²´²¬¨²²»»»»¼¼œ¡²´´¬¬¬²»»¬¨¬¬¤¡¤²¼²¤¡¡¨¨¤—›¬²²²¬¨¡“‚qqx‚“—‡xuuil‹¤¡¨¡¨¬²´²¡¤›“´Å»lu—´»““œ¡¤¤œ}b‹¼Å̼ÁÅÁ¼»²²¬¬¨¬´ÅÌÌʼ»»»²´¼¼»²´ÁÌÕÕʼ¡“‡œ¡¨»ÊÁ²²ÅÊÊÊÌÌÌÌÓÙ̼¼ÊÊÊÊÊÊÊÊÊÊÌÓÌÌÕÓ¬—›¡—‚›¨œ“¡¤¨¤œœœœ¡¤‚‚“¡¨»Á¬¡¬¨¨ÁÓÓÓÅ»´´»»¼¼ÅÕÙÕÁ²¼ÓÕÓÊ´¤»Ê»²ÁÕááÙÓÕÕʼÅÌÝááÅ¡¨ÙÓ´ÅÕÕÓʼ¨¬¼¤‚—œ›—¤»¨²´´²²²´²´»»²¬¨´´´´²¬x“¤¬¨œ›¡¤¬¬¤¤²´¬¬²»ÁÁ¨¡œœ¡¡—›¡¡¡¨¬¤“‡xil}“————‹‚ib}›¡¬´²¬²´´´ÅÁ²¼ÅÁ¬‡œ»»“‹œ¤¨¬¬œ‚‚¨¼ÊÁÁÅÊÊÅÁ²¨²¨¬¼ÊÊÊÅ»²¬²¬¬»Á¼»»ÁÊÕ̤¨´Å´““¤»»²²¼ÊÊÊÓÓÌÌÓÓÊ´²ÁÊÌÌÊÅÅÊÊÌÌÌÓÌÕÓ¬››“‹‹›¨››¡¡¨¨œ—œ››¤—‹‚‡¡¼Å¼»»²¨¼ÊÊÁ¬¤¬»Åż¼ÅÕÙÌÅÁÊÓÕÕÌ´——ż¼ÅÌÓÕÓÊÅÅ»²»ÁÝáݬluÊÁ¨ÁÕÊÁʲ‹‚›}‹œ¡¡²Áœ¤²»´²²²´»¼´¬¤²²´²¤¡‡xœ¤¡››œ¡¤¨œœ¬¼»»¼ÁÅÅ´¬¤¡¡œ›—‡‚““““——“›¤¨¨¬²¨››‹}‚›¬¼ÅÁ´´»¼ÊÓ̼¼ÊÅÅ»¡œ²¬¨¡¨¬¬¨¬»´‡}¬²¬¨¬¼Êʼ´»Å¼»Áż»¼Á»¤¨´»¼ÅÁÁÁ¼¼¼¨‡›ÁÅ̼“‚“¨²²²´¼ÁÅÌÕÓÓÌÁ´¡œ´ÅÌÌÊÊÊÊÊÓÓÓÓÌÓÓ¬‹—“x}“œ¨œ›œ¡¡¡¤¡œ¡¡¡¤›—‡uu—¼ÓÓÌż¬¬¬¨¡œ¤²¼ÌŬ¨»ÓÕżÁÊÌÌÕÕ¼xqÅÅÅ»²²´¬¬²´¨¨¬»ÓÓ¼}=]¼¼¨¼Ó¼´Á´‚“‚‹¨²¬¬´‡¨¨²»»´²²´´´´²¬¬´»²¡—‹œ¨¬¨¤¡¡¤¨¤œ¨»´²´¼Á¼²¬¨œ—›œ“}}‹‡‹¡¤¨´¼ÁÅÅż´´»´œ‚}¤´Åż´´¼ÌÓÊÁÁÁÁ¼»¡œ¨´´¼¼²¨²ÁÊ¡q—¤›‹‡œ»¼²»ÊÕÌż´¤œ¬ÌÅ›—¼ÊÌÌÊÁ¼´¤‚g‹»Êż´¡›¡²»»¬¤¨¨²ÁÊÌÓÅ»¨›œ²ÁÊÌÊÌÌÌÊÌÌÓÌÌÓ̤x‚‚b‚œ¡¡¡œ¡¡¡¡¡¡¤¨¤œ¡—“}q}—²ÁÁÁ´¬¡—““›¬»»ÁÁ²“²Ó̼´»ÅÊÌÌ̲x‹ÌÓÌ»¤¡¡œ¡¬²¤¡œ¡²¬›gCq¼Á²»Ó»´Á»œ“¡¤—¼ÅÁ´¨‹¬¬´»»»´´»´´´´²²´»´¤œ—“›¤²¼¼´¨¤¤¨¬¨¤¨œ“›²¬›““—œ¤¤œ—›œ›—¡¨¬²´¼ÅÅÅż´»ÁÅ´œ‚‹¡»Á»²²»ÌÌÁ»ÁÁ»²¨“u‚“²¼ÌÌÁ´´ÅÓ»‡››‡q}œ¤¨»ÌÓÓÅ´¬¤œ²ÌÓ¤¡ÁÁÊÊÊÁ´´¤xiœÁÁÁ´»¼»»ÁÊÅ´¡œ››¨´Á¼´¬¨¨¬´¼ÅÌÅÅÌÓÌÊÌÓÌÊÓÊ—]gl‹œœœ—œ¤¤¤¡œ¡¤¨²¤¡¤‚‚}‚—“›‡““œ´ÊÌÓʲ›‹“»ÓÊ´²»ÁÊÌʬ‚—ÅÊÝÓÊÁ²¬´¼Á»¨›‹‡—œ¤x›»»¬¼Õ»»Á»œ›´´“ÁÌÕŨ‹¤¤¨¬²´»´»»»´¬²´»»»¬¨›œ¤²»Á¼»´¬¡œ¤¤œ“‡xuu—›—¨´´´´²¬¤¡¨»»»²²»ÁÁż´´»ÁÁ»œ}‡¨»´²´ÁÊÊÁ»»Á»²¬›uq‹¤»ÊÌż»Å̼œ—›¨¡‡}‡¡¬»»»¬¤´¼»¼Åż´´¼ÅÁ¼¬¡œ¡œœ¬´»ÁÁÊÌÊÊÌÓÓÊ´¤›››¡¨¡œ¡²´»¼ÁÁŲ²¼ÅÁÁÌÓÊÊÕÌOb}——››“—œ¡œ››œ¤¨¤¡œœ‚‹“‹““‡‡‚—¡»ÌÕÕÁ¡¡¬¨´ÌÌ»»¼ÅÓÕÁ—}²ÌÌÕÕÕʼ»ÊÙÓÅ»¤¡¡²¼ÌÅ´²´²¨ÁÙ»»Ê´—¼»‚‡´ÊÝÓ¼—œ›“—¡¬»´´´´²²´²²²´²¨—œ²»»¼´´ÁÁ²¤¤¨²¨›‡xx‹“›¡¬»ÁÁ´¨¡œ¡¤²»¼´¨¬´¼Å»´¬¬´ÁÁ´}œ´´´¼Åʼ²»ÁÁ»»´¨“‚“¡¨²´´²²¼Å¼¤œ¡´²œ“—›œ——›¡´»»´¤¤²²¨²¼»¬›‹—²Á²¤²ÁÊÌÌÊÊÌÓÓÓÊ´›¡¬¡œ›œ»Å¼ÁÊż¬—œ²¬¡¨ÁÓÌÅÓÌ‹Oi‡››››“———“‹œ¡œœœ—‡‡‹œ¨›œ¬»´¨——œ‡}¤²»¼²‹}¨Ì´´ÌÓÁÁÁÁÌŬœ²ÊÓÌÓÌÅ´´»ÊÕÕÓÁ»ÅÌÕÕÙÝÓ¼¨¤œ´Ó´´Ì²}“Á²}‚¤ÁÓÓʲ¬œ‹}‚—¡¨²´²¬²´¨¡¤²²¨“—¨»»»¬²ÁÅ»¬¨´¼»¬¡¡›}}—›œ¤¨»»¨››¡¤¡¬»Á²¡¡¨²»²¬¨¤¬´»¼¨““¡¨´Áʼ»¬»ÌÅ´»Á»œ“¡¤¡¡¤¨¬´Á»¤¡¨´²¤¡¡¡¨¤›‡u‚œ¨¡¡œ›œ›¤¤¤¡›—“œ»Ê²—¤»Á¼´´¼ÅÊÊÌÊ´œ¬ÊÅÁ»¼ÌÓÅÁÌÌÁ»¬´¼¬¡¤»ÊÊÊÓÅXx“›œ¡œ››—“›››››‹u‚“¨¬¡¬ÅÓÕÊ´²´“‚¬´´¬›xx¤ÓÁ¼ÌÌÅÁ´²»¨›¨ÊÓÌÅÊÌ´¨»ÅÊÌÌÓʼ¼ÅÌÓÓÌÊÁ´¡¤Å´²Á¡‡¡Á²“‡¡»ÅÓÓ»»²¨›‹‡—¡¨¨¤¡¬¬¡›¡´»¬‡‡œ²´´¬¬²´²¨¡¬´´¬¤œ››œœ———›²²¤¡¡¨¨¨¨´¼²¤œœ¤²¬¨¨¨¨¨¬»¼¨x‚›¬¼Å¬¨¨»ÌÅ»¼Ê¼——¬²¤¤¬²²»¼´¡¡¨»¼´²¬¬»»²¤}}“›œ¤¤›œ¡¡¡¡›œ¡¤¨²»Ę̂‡›²»´¨¡¬¼¼²¬´²¬´ÁÅÁ¼¼Åʼ»¼ÊÌÊÊÊÅż´»¼ÁÊÕÊ—i}“—›¡¤¤¡œœœœ¡œœ¡¡—‚}›²¨œ—¤ÅÕÙÕÌÓÓ´œ»Å¼»²¡—¤ÅÌÊÊÁ»²œ››‡‹¨ÅÓÊ´Áʲ²ÁÅÅÅÊÓ̼²²ÊÌÁ»»¼»¬œ—¤¨¡“‡¬ÅÅ´¡¡¡¨¼ÌÌ´¼»²¤“‹—›œœ››¡œ›¡¬¼Á»‡x¤¡²²¨¨¬¬¨¡¡¨¬¤›‹¤¬²¬¨¡—›²´´²´»»²²»¼»¬¨¤¡²»´´´²¨œ¨²¤qq—¬´´¤¤¤´ÊżÁ̼“‹¡´ÁÁÁ¼¼¼»´¨œ¤¨ÁÊÊÁ´²ÊÌʼ¡››¤²»¼¼¼Á¼»´¨²´´´»ÅÌÓ¨¡»´»´´»²›“¤¬¡œ¬´¨¤¨¼Á´¨²ÁÓÓÕÓÊÓÊÅÁ¼»¼ÕÌ›l‚‹“›¤¨¤¡¤¨¬¨¬¨¤¨¨‹}‹»Ì¬—‚—¼ÌÓÕÙÝÝÊ»ÊÌÅÌÕÌ»¨²ÊÌÁ»¡—‚x‡¤»ÅÁ¬»Ê²´ÅÁÁÁÅÌ̼¬²ÊÅ»²´»¼´¨œ——“‹›ÅÕÓ»¤¨¤œ²ÊÓ¬»»¬¤œ›œœœœœœ›““›¬ÁÅ»‚›¨œ¤¨¤œœ¨²œ—›œœ—¤¬²´´¬œ—¬´»¼¼ÁÁ»´»Á»¬¬²¬¬»¼ÁÁÁ»¨¬²²}›¬¬¤œ¡¡²Åż¼Á´‹‚¡²ÁÊÅÅÁ¼´¨¤¤¨¤²ÁÊÁ´²ÊÓÓ̼²¬»ÊÌÌÌÌÓÓÅÊÊÅÁ¼²¬²¼Áœ‹}›»¼ÅÁÅÊÁ²¬´»¤œ´¡›¨¼¼¬¡¨»ÅÌÓÊÅÌÌÌÌÊ»´ÌÓ›u}}—›¤¤¡¡¤¬¬¨¨¬¬¨œuq¼Ù¼œ‚“²ÁÌÓÕÙÕÓÅÓÓÅÓÙÝÓ´¨²´´²¤œ¡œ‹¡²´²¨œ²Ê²¨»¼ÅÌÊÅÅ»¨¬ÅÁ»²²¼ÅÁ¼¬›“¡²¼ÓÕÌ»¡¬»œ›Ą́¬²²¬¬¬¨¤¤¡¡¤¤›“¤»Á²“¤»¤¡¤¡›—¤²—‹“—œ¤¤¡››¤¬´´¬¬´»¼»´´²¬²»¼²¡¤»´¡¨²»ÁÁ¼»¼¼¼“u“²¬¤›œœ¬ÅÁ²¬²¤uu›¨»ÁÅÁÅż»´²²¤¨´Á¼´»ÊÌÊÌʼ»ÅÌÓÌÌÊÊÁ¼ÌÓÊÁ»¬¡›¡¤‹ix¡»ÅÅÊÊÌÊÅÁÊÁ¨‡›¼¬¨´ÁÁ´¬´»¼Áż¼ÊÊÌÕÕ¼²ÊÌœxqu——¡œœ¡¤¨¨¡¡¨¨œ‡Vg—´ÙŲ¤¡¡²ÊÌÌÓÓÓÕÙÓÊÌÕÝÙÌ»—‡¤´ÁÁż¤¬Áʼ¤¬Ê¬¡´¼ÌÓÊÁ¼´¬´Å¼»»²»ÅÊÅ»œ—´¼ÅÕÕ̲¡²Å¤¼Ì¬¨²²´»»²²²¨¤¤¨¬¬œ“¬¬¡¡²»²¬¨¤¡¡¤¡‡‹œ¨¬´´¬¡›œ¬´¼»¼¼¼»²¤¡›œ¬´´¨¤²Á¨‹‹—¡¤¬´¼ÅÅÅxV‚²²²¨¤—¤ÅÁ¨¡¨¡‡“¨¬»ÅÅÅÅÅÅÅÁ¼²¬²²´»´»ÅÊÅÊÌÁ¼ÅÌÓÌÊÁ¨¨ÁÅÌʼ¬¡¤¬¬²¤‚g—²¼ÅÊÌÌÌÊÅÁ»¨“¤ÊÁÁÅÊÊÁÁÅÅÁ¼¼²¼ÅÊÌÓÙÅ»ÅÊ¡uiu“›››œœœœ—“——‡lOi—¬Êż´¡›¤¼ÊÌÌÊÓÓÕÓÅÅÌÓÕÕÅ—q—»ÅÌÕÓ¨¬ÌÙÌ´“‡¬Á²²¼¼ÊÌÁ´´´²¼ÌÅÁÁ»²´ÁÊ»›œ¼ÁÁÅÌʬ¤»Ê¨—»Ì²¬¬²´»¼»»´²¨¨²²´¨‹q›¤¨²»»»´²¬¬¬¨‹‹œ´¼Á¼Á»²¬¨²´´»»»¼´¨œœ——¨²¨¤¨´¼´››¡›““¤´ÁżlEu²»ÁÁ»—»¼¨¨»´›¨²»¼ÁÅÁÅÊÊÁÁÁ²¤¬²¬¨´¼¼ÁÅÅʼ²¼ÊÌÌÊ»¡¡ÁÅÌÊÁ´²»ÁÊÌ»›}›¤¬»ÅÓÓÌÊÁ»´´¨´ÌÌÊÊÓÌÊÌÌÌÊż²»ÊÊÊÓÕÌÅÌÊœlbq‹——›‡—“xgbbE=b‚¤²ÁÊÊÁ›‚›ÁÊÓÌÅÁÅÓÕÅ´¼ÌÓÓŤ—¨¬¡»ÕÅœ¤ÅÓÓÊ´œ¤¡¬Å»²ÁÁ¬¬»»²ÁÓÊÅÁ²¨¨»Å´œ¬ÅÁ´´Åʨ¡¼Ó²›²Á´¬¬²´´´´´²¬¬¬²²´¬œœ¤²»¼¼¼»´¬¤œœ‡œ²»¼Á¼Á¼¼»´²´¬²²´´´²¬²´´²²¬¨²»ÁÁ»²¬¨¡œ¤¨¬´²xX}¬¼ÅÅ»—“¬»²²¼»›œ²²²»ÁÅÁÅÁ»¼Å´¤¨¨¤¡²¼¼»ÁÁÁ´¨¬²´»»»´»ÅÅÅÊÊÁ¼ÁÊÕÕ¬œ²´²››»Êż¼¼¼¼ÅÅÅÌÌÌÊÓÌÌÅÁÊÌÓÅ´»ÓÊÌÌÓÌÊÕÊ“gbg‹“››—xi‹ulgXVi‡¤Á»¼¼¼¼“uœÊÌÓÌÁ²»ÌÅÁ²²ÊÓʼ¬¨´œq¤Ó²¡¬ÁÌÊÅʼ¬›¤¼²¬¼»¤¬Á»¨¼ÊÁÁ²¤¨¬»¼²¨»Å»¨¨Áʲ¨ÁÌ»¤¤²²¬¤¬»´´²¬¬²²¨¬¬¬¬¨¬¨¤¨²¼¼¼´¨¡lu“¤´»»¼»¼¼¼»²¬¬¤¤¬¬²²´¼ÁÁÁ¼»²²»¼ÁÁ¼»²²»´²¤¡¤¡‚q´»¼¼²¬¤¬ÁÅÁ¼²‡‚¡¨¤¬´ÁÁ¼»´¼ÅÁ»»´²²»ÁÅÁ¼Áż¬¨¤¨¨¬²»ÁÊÅÅÅÊÊÅÁÊÕÊ›¡ÌÌÅ¡¤¬¡œ²¼ÁÅÓÓÓÌÊÓÌÌÌż»»ÅÊʲ¬ÓÓÌÓÌÊÊÙÅuEl}“››œœ‚}————›¤²¬ÁÙ»¬²²´œ‹¤ÅÊÊÊÁ¼¼»»Á´¼ÌÁ»¼¼»´¡‹¨Á²²²»ÁÅÊÓÕÊ´¤¡¬²ÊŬ²Á´¬´´´¬¤¨²´»»¨¡¬»´¡¤ÁÊÁ»¼ÁÁ»¡¡¨¤¡¤¬²²²²²²´²¬¬¤¡¡¨¤“—¬»¼¼´¨—}‹¡¬´´´»´»»»´¨¡¡œ›¤¨¬´»´»¼¼»²¨¤¬¬²´´²²»¼¼»´¬¤¤“‡¡¼²¬²»¼´»ÅÌÊÁ¤bxœ¨¬¨¬´´´´»ÁÊÊÊÊż¼ÅÌÌÊÅÊÅÁ»²¬¬¬²´¼ÅÅÊÅÅÅÅÅÅÁ»¡“²ÌÓÓ¼¤œ‹}¨²²´ÁÓÓÓÌÌÌÊÅÁ¼´´»»»¤¨ÌÊÊÓÌÁ»ÌÁuOu‹—œ›¡¤—‹››¡¬ÁÊÅ»ÊÕ¬œ²ÁŨ¡ÁżÁÅÊʬ¬ÅÁÊÊ´²¼ÁÁ¼¨—¡´¼»²´ÅÌÓÕÕÕʲ¤´»Ó̬²¼»»»¬¤¨¨²»¼»»¨—›´»¤¤ÅÌÁ´´¼Êʨ—›“—¡¬¨¬²²´´´»´²¤—›¡l]l‹—²Á¼²œ›¬´²´»´»´´»»´¨œœ¡¡›œ¨²²²²´´²¤››››¡¬²¬²»¼¼ÁÁ»´´¤›¡´¨—¨´¬²¼ÅÊÊÊ¡=u¤»Á¼´¨¡¬²²¼ÅÊÌÅ»²´¼ÅÁÁÁÁÅÁÁ»²²´»¼ÅÌÊÅÅÅÅÊÌÅ»›x“´»¼ÌÓŨ“¨´¬¨¬¼ÅÅÅÊÊÊÅÁÁÁ»¬¤¨¬¨²»¼´Å̲¡´´‹u‡“—œ—‡‡‡‡‚“´ÓÙÓÁÌÓ¬¤ÅÕ̬“œ»Á´´ÁÌ̲¬ÅÁÊÅ»¼ÅÌÊÅ»œœ»ÅÁÁÊÓÕÕÓÕÙÓ´¡ÁÅÕÁ¡¬ÊÌÌŬ²Á´»¼´»´¬¡¤¼Å¨¨ÅÁ´¬´ÁÓÓ´œ¤¡œœ¡¬²²²´´»»»»¬¤¨¤“‡‡“‡q›»´¨¡¤»¼´´´»´»´»´¨¨¬²²´¬¨¨²´´´´²²¨œ›œ››¨²´´»»»Á¼´²²¡“—¤¡“¡¡›¡»ÁÁÁÊœ:u¬ÁÌÌŲœ¨¨“›¬¼Ê»¨²¼»²¤¡œ¨»¼Åż»¼¼»ÁÊÅÊÊÊÊÌ̼¤—‡›¬²»ÊÌÓÅ»»¼Á¼»¼Á¼¼ÁÊÅÁÁÅÊÅÁ»´»»²»Á»´ÁŨ›´»‹u‹‡}x‡ug‚²ÊÕÕÌÓÓ»»ÓÌÊ´œ›¬»´²¼Êʲ¬ÁÅÌÅÁÅÌÓÓÊÁ¬¤´ÊÊÌÓÙÙÕÓÓÙÙ¼œ¼¼Ê¼¡ÊÓÓʲ¼Á´»»¬´»»´²»Á²¬Á¼´´ÁÊÓÓ´¨²¬¨¡œ¨²²²´´»»´»»´´²¬²´´¨œ›“›²»Á´²¬¬´»¼Á²œ¡²´»¼¼´²´¼»»¼´²²¬¬¨¤¡¬²´¼¼¼¼ÁÁ¼²¨u}¡¤¡œ›“›¬¼´´¼›V‡¬¼ÅÅÅÁ»»¨‚¨»¼¨¨»Á»¬œœ—œ»ÁÊÊÅÅÊÁ²²»»ÊÊÊÓÓŨ—¨¼´»¼ÁÅÊÓÓʼ»¬¨¼ÁÁ¼»ÅÅÁÁÊÌÌÊÅÁÅÊÊ»ÁÓÅÁÅÅ»´Ê»uVqu}}x}¡œ—‡u¬¼ÊÓÕÕÕÊÊÌÅÁ¼¬›œ¬´»ÅÊÁ¤¨ÁÌÓÊÅÁÊÕÕÊÅ»¨¨ÊÓÌÓÙÙÕÓÓÙÝÅ¡¬²Á¬x›ÅÌʼ¬¼Á²¼¼¬´ÊÓŨ¨»»¼ÌÊ»¼ÅÓÓÌ´¨²´´¨¤¬´²²²´»´¬¬¬¨¨¬´»Á¼»¬¡“}q‚¬¬¬¬¤¡¡²Å¼¼²¤¨»»»ÁÁ´²»¼¼¼Á»¬¬»»¨¡¨¨¤¨²´»¼ÁÁÅ»²l}¨´»¨¨¡œ¨»»²²›i¤¬¬¬´ÅÌÌÁ²²²¼¬¤¬ÁÅ»´²´²´ÁÅÅÁÁÅÊÁ¬¤¨¬ÁÅÁÅŬ“—´Å¼ÅÅÅÊÌÊÊÁ»¬—“²Åż¼ÁÁÁÅÌÌÌÌÊÁÅÌ̼¼ÌÌÌÌÊÌÓÙ»iJil}‡‡“¤¬¤œœ›¡¬´¼ÊÓÕÕÕÕÌÊÊÊ»œ›¨´¼Ìʼ¡¬ÅÓÓÊÅ´ÁÕÕÊż¤¤ÌÓÌÕÙÕÕÓÓÕÙŤ¡¬Áœq›ÁÅÅ»²ÅŲ¼Á´¼ÓÝŤœ»ÁÁÓÌÁÁÅÌÓÊ´´¨´´´´´»´´²»´¬››²¨´»¼¼¼¼¼´›xbi—›››——œ¬Á»»´´´¼¼¼Á¼²¬²»Á¼¼»¤¤»Á²¬¤¤¤œ¤¬´´»¼Á»´“q‡»»¼´»²¤¨»Å¼²›g‚›¡¡œ¤¼ÊÊÊÅÁ´´²¬´Åż»ÅÅÊÊÊż²¬´¼»¬œ¡¤²²¤¤œ‹“²»¬¤¨¬¨»Êʲ¨»Á¨œ¬¼Á¼»´¼ÅÅÊÌÓÌÌÁÁÊ̼´²ÁÌÌÓÕÕÙ´u]x‡—œ¡¤¤¨¡›¡¡¡¤¬´ÁÊÊÓÕÌÌÓÕÌ»¤¡¨²ÁÓÌÁ»ÁÅÓÓʼ²¼ÓÌÁÁ´œ¬ÓÌÊÌÓÓÓÓÓÕÌ»¬¨¬¼—‚¨ÅÌÊÅÁÌŬ»Ê¼¼ÌÕʲ¨¼ÅÁÌÊÅÅÅÊÌÊÊʤ¨¬²´²²´²²²²¤‚—²¬´»¼»»»¼»¨‹gg‹“›““œ¨¬´²²´»¼Á¼¼¼´¤››¡´»´²¤¤»Ê¼´¨œœ¡¨¬²¬²²´´¬q¼´´»¼´²´ÁÓÊ´¡u}—¬´¨¡¬²¬²»´¨¤¨¬´ÁÅ´²ÁÅÁÁÅÅ»¨œ¤»´¬²»¡œ¡››——¤¼´¤¡¤¨¡²ÁÁœ“»ÌÁ»¬²»¼´´¼¼¼ÅÊÌÌÌÊÁÅÊÁ²›¬ÊÌÓÓÕÙ»xl“›¨¨¨¨›œœ“›œ—›¬´´¼ÊÌÊÓÕÓÁ¬¡¤¤¨»ÌÊÁÌÌÊÕÓʼ´¼¼»»»¨œ´ÓÕÁ¼ÁÊÌÓÕÌ»²»¼»¨—œ»ÓÕÕÓÓÓŲ»ÓÊ»ÁÊʼ¼Å¼´ÌÌÅÊÊÊÅÅÌÓ¨¤¡¤¡¡¡¤¤“‡›œ‚q‹¤œœ¤²´²²»²¤ll¡¤¬¨¡¤¬¨¤¤¨¬²´´´´¬¤}x‚œ¤´´¨¤¬²´²œ›œ¨²²¤¡¡œ¤¨¡‹u‹²²´»»»´¼ÅÌÌÁ»¡›¨»Á´¬¨¡œ¡¬²¤œ¡¤²ÁŬ¤´²¨¬»¼»¨œ¡¤¨²»¼‡¡¤´´¬¬²»´¬¬¼´¬»´‹»ÓÌʲ¤¨²´´´´´¼Á¼ÁÊÌÊÅÁÅ»¨²ÅÅÊÓÕÙ²gX‹“¡¡¡¡—›“——‹}¤¨¤¬ÁÊÌÓÓÓ²—›¤¬¬»ÊÁ¼ÕÓÊÌÓÌÅ»´¨¨»»¡¡´ÕÙ¼²»ÁÁÌÓŲ²¼Ê¼œ›¤ÁÕÙÕÓÌÌÌÁÅÙÕ¼´¼ÁÁÅÅ»»ÌÓÊÊÌÁ´»ÊÓ²¬¤—‹›¡œ‹x—‡u‚›‹‚¡¨¤¨¬¨¨—uq¤¬´²¤¡›—“—››—“—¡›—‚ll‹¡¨¡››œ¨¨œœœ¨´´¤¡¡œ¡¡¡‹u‚œ¨¼ÁÁ»´»»¼ÁÅż¼¼»»»»´¬¬¬²»´¨¤¬»ÁÁ²¤²¤“›²¼»¨¡›‡‹¡¨¤›¤¨²Á¼´¬¬»Á´²Á¼´¼²‹“»ÊÌÊ´¤¤¬¬¬¬¬²²¬¨¬ÁÌÓÅ»ÁÁÁÁÅÅÊÌÌÕ²]El}“——“‹œ¡“—œ—“›¡¤¡¬ÅÌÓÓÓʨ“œ¬»ÁÓ̬¨ÌÌÅÊÓÓÁ¬´´¼ÓÁ——´ÓÕÅÁ¼»»Åʼ²²´Ì¼œ¨¡¬ÊÌÌżÅÓÕÓÝÝÁ¬¨²ÁÊÁ»ÁÓÓÌÌʼ²´ÁÌ»»»¨››œ¨¤œ›œ¡›‹›——¤¤œ›¡¤¬œ‚u¡¬¬¡—“‡‡‚qx—¡¤œ‡gq}‡‹‡‚‡¤¬——œ¨»»¨¬²²´²¤qq‹¤¼ÅÅ´²´´²´Á¼¼Á»¨¡¬¼¼»»¼ÁÁÊÁ»¼ÅÊʼ»´¤‹—´ÅÁ¼´¬¤›—‡}—¤¤²ÁÅÁ´´Áʼ»»ÁÅÊ»“—»ÅÁ¼¬²´´¬²²´²¨¡¡¬ÁÌÕÊÁÅÁ¼ÁÌÊÁ¼¼Ì¼xOVi‡‹““¤¡›œ›¡¤¤¤¨ÁÕÓÊÅÁ¬—¡¬»ÊǪ̃¤ÅÌÅżÅÅ´´ÊÕÙÁ“‹²ÊÌÌÊÊ»¬¼ÅÅÅÁ¼Ê»¡²¡œ»Á¼»»ÅÓÙÕÙÕ¼¡—¤ÁÓÊ»¼ÌÊÅÌÌÁ¼ÁÅÌ´»»²¤¤¨²¬¬¬²´¨œœ¨¬´´²²¨¡¤²´¬—‡¤¬¤}‚‹œ¡›—›—‹“œ¤²²¡›“—››“‹}uq“¤‹—¬ÁÁ²²¼ÅÊÁ´“lq‚›»Åż»¼¼´´»»¼»¬œ—¡´»»´»ÁÁÊÅ´²´ÁÅÁ»»²¬´ÅÌÌÌÊż´¡‡}››¤»¼¼²¬ÁÓÅÁ»ÅÌÓÅœ—´Å»²¬»ÌʼÅÌÌÁ¬¡¤²ÁÌÓÓÓÕÌÁÅÌÌÁ²»ÌÅ—llux}‹“›œœ‹œ¡¤¤œ¤ÅÓŨ¡´¼´››´ÊÕʬ¨ÁÊʼ¬»ÅÅÅÁÅÅÁ¤›²ÌÓÕÕÌ»²»ÁÓÝÕÌÁ¤¨Á¡›¼´¤´¼ÁÌÕÓÌŤ““¨ÊÙÌ»²»²¼ÌÓÊÅÊÓÌœ¤²¬¬¨¬¬¨¡œ¡¤¡““¤´ÁÁ¼¼»»»»»´¡›¡¨¡}‡œ¤¬¬¬¨¨¬¼´²¨¤¤¨¬´»»¬¡œ—x]u“‹x‚¡¼Å²¤¬»ÅÁ¼¤‡u¤¼Å»²¬»¼»´¼¼Á´¨¤¡¨´´´»¼»»ÁÁ¬‹‚¡»¡“¡²ÓÌż»ÁÓÌÌż²¨¨¨¤¨²´»²¬¼ÓÌÊÁÊÓÌŨ›»ÊÁ¼¼ÊÓÌÓÙÝÙÓÅ»¬¡¨¼ÊÌÕÙÕÓÓÕÓʼ¼ÕÊ›‚‹‚lu“¡¡¡‹“›¤¤œ›œ²ÅÊŬ¤»ÊÓœ‹¡»ÊŬ¬ÁÅÅÅ´¼ÊÓʼ¬²¼»¨²ÓÕÕÕÓ¼²´»ÌÝÓÁ»¬²Á¬¨»²¨´ÅÅÅÅÊÊÁ¡—›»ÌÕÓ¼¤œ¡ÁÅÊÊÅÊÓÊœ¤¤¨¨¤¡—‹}x}}ux—¤²»¼¼¼¼»´´´¬¨›‹“—¬²²²´¬œœÅÁ¨›œ¤¨´ÅÅÅ´¨¬²—iu—‡l‚²»¨—›¡¡¡¤¨¤—‹´Ìʤxu¤´»¼ÁÅ»¬²»¼ÁÁÁÁÁÁ¼ÁÅ´‡l›´“}“²Ê¼¬››²ÊÌÌÌÌÓÓÌż»´»¼¼¼ÁÊÊÊÅÓÝÊ´¬´ÊÕÊÅÊʼÁÊÊÅÊÊÌŬ¡¨¨¡¤ÅÓÓ¼¼Á¼´¤¤²¡uxœ‹Xq¡œ¬²œu¬¤œ¡¤¨²¼ÅÁÅżÅÓÕ¬‡i‚²¼¬²¼»»ÌÊÓÓÓÓ¼¬²Á¼¨¨ÊÓÓÓ̼´»»ÌÕÅ´»²¼ÊŲ²¬¬¼Å¼»´¼ÊÊ´¤¨»ÊÕÌ»¡œ¬¼²ÁÅÁ¼Á´—¡¤¤¡¡œ“‡‡‚}xx}}‚‹¡²²´²¬¨¨¨¬»²‹ql}—¡²»»»»²›—²´¬¡¤¬¬²¼¼»²¬´Á²œ¡¤¬¤}q—¬¤œ›œ—‹¡»¨x¨ÌʨuXg‚¤´»ÁÁ´¨´ÅÊÅÊÌÊÌÓÊÊÓ̤‡›»¬¡œ¨—xq‚—¨²´´´²¬ÁÙÙÁ¨¡¡¤¨¬¬¬²¨œ´ÕÅ¡œ´ÓŤ—››œ¤“—œ¤œ—²¤ii´¼—u‹“‹u]XbS=]—‡i“»²²¬qO“²œ‡“¬¼ÅÁÅÁÊÕÌÌÓÕÁœiq¤»²´»²´ÓÓÕÓÕÕÁ»»Á¼¤—»ÊÅÓÁ²»¼¼ÌÓÁ´´´ÁÓ̲¬²²»¼»²´ÁÓ̼»»¼ÁÊÅ´¨¬´´¡»Å»²´¬¨¬²¤›—“›¤¨¬¬¤›‹—¤¨¡‹“œ¤²¼¬‹x‡“œ¨´´´´´²¡›¨²¬¬´»´¬¬¬¨¨¬´¼Á¼¼¼ÅÁ¨‚xœ›œ¡œ›—¡²¤g“»»²“ubg“¤¡²´¡œ´»´¼Á¼´¼»¬²Á¨‚‡¤¤¤œS6Ou““››‡i‚ÊÊ¡iVVVguiux)Xœœ‚›¤u-&0EigJJSblXEu²²‚u¤‡6&6==600#C}‡‹¬ÙÕ´i-0‚¤‹l‡»ÌżÁÁÌÕÓÓÌÓÓ¼›‹œ¨¨²¼´»ÊÌÓÊÊÊÁ¼»´´¤¤¼ÁÊ»²¼ÁÅÌÓÅÁÁÁÌÙÓ¬¨´¬²´´´»ÊÓÓÓʼ´´ÁÁ²¬´»´¤¼Ì¼²²²²´»¬›‹‚‡œ¤´»»´¬¡œ››œ¡œ}u‚›¬´¬œ“œ¬²²²¬¬²¨¡¡¤›œ¤²»¼¼´¨œœ¡œ¡¨²²´»´¼ÊÁ¬¡¤¤““œ¡›“‹uJx—›¡¡›}g‚‡x‚uqiq‚‹}igl]uxJV—¨“xqii‚66XbXg}‡‡‚SXœ¡g0# 6bb}‹l0u}‹gX}‡bECJSl‚llgbiS)Vœ¬›‹‹V&)=EEX0:x›œ´èñÁ:6q›‚g‹Á̼´´¼ÊÕÓÓÌÓÙÙʨ——²Ê¼ÁÅÅÌÁ´¼ÁÅÁ¬¤—‚œ´¼Å»¼ÁÅÊÌÌÌÓÓÌÌÕÕ¨¡¬¨¬´´»»ÅÌÓÙÊ»¨¬ÁÁ²¨´»´¬ÁÌÁ²¬´²´»²¡——¬¬²´´»´´²¤››¨¨—‡‡—¡¨—“œ²¼Á´¬œ¤¬¨œ¡¨¤¡¤²»Á¼²¤œ¡¤¡›œ¨¬²´´¬»ÌÙÙÕ»}‚›“uO0&Vgu“¤¤›‡xbEJ-0E=C]V--XS=‹¨—xXSO‡‡C#-)#:b}›¤‚lg]-)J0J—œ“uSq‡‚}6)‹Å²“il‡‹—}qi]bX=Ji“¡‹xV&06Cg}VOx‚C:‡»»¼á÷Ì:=g‡qb›ÊÊ»²¨´ÊÕÌÅÓÓÕÝÝʤ‡‡²ÓÅÅÅÅÕ¼¨»ÅÓÓ²“‡‡¤¼ÊÌÅÊÅÊÊÅÅÓÕÌÅÁÊÕ¡‹¤¨»¼¼»²´ÁÅÓÊ»¤¨ÁÁ¬¨²´²¬ÅÌŲ¬»¬²´¬¤œœ¨»´²²´´´´»¬››¨²¬¡›xi¡²¼Á¼´²¨¬¬¬¨¬´´²¬¨´¼¼´²¬´´¨¡¡²´ÁÁ¼»¼ÌÝÝÕ¬x}‡‹‹g:Ju¡´´¤‹g:6=EVX0:VJOEJOO:S‹›‚gVXX}‡O)&)#:g“›‚]6#-OSJb‹‹‡}‹xX#-“Ì»—lxœ—}VXibXXSCS‹¤‹l6:CSqœœ¡¡‚6:—ÌÓÅÊÝÅJ)=]S=b¨Óʼ»¬¬ÅÕ¼´ÓÓÓÕÝÕÁ¡—´ÓÅÅÅÌÕÁ¤´ÌÝᲇ“¨¼ÌÓÓÌÊÊÓÅ´»ÌÓÊ´¤´Óœuœ²ÁÅż´²¼¼ÊÊÁ²²¼»¬²´²¬¬ÅÅÁ´²¼¬¬²²¬¤œ¤»´²²²²²´´²¨¡¡¨¬¬¨“gJ“¬»¼¼»´²´´²²²´Á¼¼²¡¨»¼´´»¼»²¨¤¤²»´²´¬¡“‡}‡‚}‚‚‡‹i#&Oxœ²´¤}]SO]]qub0#E]‹l]Sgqu‚uSESSOixJ0EC&#]lS0#06CSXgul}“‚q‡uOOqœœ‚liu—}JVlbXg]=S“¨œ›i)CJCJ‡´Ó¼q#6“ÓÝʤ¬²lEES-lÁÙÕÌÁ²²ÌÓ¬¬ÌÓÌÅÊÌʲ¡´ÊÅÁÁÊÌ»¤»ÌÝÝ»—œ»ÌÓÕÓÊÁÌÕÁ¤²ÊÓʲ›¨Ê¤x›´ÅÌÊÅÁÁÁÁÅÊÊ»²»´´»»²¨¨¬¬´»»Á¬¬²´´¨“‹¤¬´´²²²²´´´¬››œ¤²¬“u¡´´´´¬¤¨»´´´´´¼¼¼²¨¨´»´²´´²²¬¤—¡¬¤¤¨“bC=6lxu}}‡q0=:]‹¡›xO-&XblqlXCEOVi‡¨qJb‡œ—‚]0CX=&Xl=:VO-)6&)lX=))=CCCCSqq}—‹lxx]‡¬¤‡lgX]‡“gll]ixg=V›¤¡œOVV)O²èÊq#6ÊåÊ}‚¨‚SCO0‹ÅÝÝÕÌÅÌáÙ¼¼ÕÕ¼¨¤¼Ó»œ¤¼ÅÊÁ¼Á»¨²ÁÌÓ»¡¬ÅÕÙÕÓÅÁÓÕÁ¡¬ÊÓʼ²²¼´œ¤»ÅÊÊÓÌÊÊÅÅÊÊ»²´´²»Á²›—‹›´ÁÅÁ²²´´»¨‚b‡œ²»²²´²²´»²—‹›¤´»¡‡¨²²²¬¡œ¡²´²²»»»´²¬»¼²¬²²²¬¬²´²¤¤¤¨¨œuSO]S}qXl}‡‹qOXJJq—‡J-OXg]OSSg‡—›¤¨lVx—¬¡qEEiE)lxCEgV-:bquixb=--:JSECb‹‹“—u}ul¡¼¨‚lCC‡“u‡qVl‚iOb“œœ—=&]J&#J¨è¼q&6‚¼èÓ¤´}VES#:}¨¼ÊÌÌÌÕÕÕÌÊÕÓ»¨²ÊÙ´“¡¼ÊÕż¼´¬»Á¼Á¨œ´ÌÓÕÓÌÅÌÙÕŤ´ÓÌÅÁ¼´»²œ²ÁÅÁÅÌÌÌÌÊÊÊÌ´²²¬¤²´œx‡œÁÊÊÁ²´´´´¤uVq¤²²´´´²²»»œ““¡´»¤›¬²²²¬¬¤¤¬¬¨¤¨´»´²»¼´¨¨¨¨²²²´¼¼»²¡¤¨luœ¤——q6J}“‡xu‚CCx¡C)OgVJOl‚‹œ¨¤“xx“““—“‹‚]JbOO‚gOXS:El—¤lJOE=Slug]x—“—}}}}‹l]‹¡›——l)0}‚ul‹qOi}]Eb‹““‹VOV=EV}¼Ý¡S6‡ÅèÕ¬»»}JJS-0Ox›¬´»»²¨²´ÁÅÅÅÊÌÊÁ²œ¤ÁÌ̲¬¼´»ÌÓÁ´œ›²Á¼ÁÅÅÁÌÙÓŬ»ÌÌÁ¼»Áʬ—¼Ì»´¼ÊÓÌÌÌÊÓÕ¼¬¤œ—œœ}b‹¨²ÊÌÓʨ²¬¨¡—}‚“›¤¬¬´´´²¬²»²œ“—¤²¨¡²²²´»»´¬¡œ—“—¤´»»»»²¤¤¬¬»´²²´²²¨—“—ui‹²¤“¤—SJxœœ—‡‚)=}œ‹C&6b‚]OVx———›b6‹»¤‡bbuqXJOOl‹“‚S6:=E]x‡}E)S]bu›¤}]i}q]=Sqx}]Eg‚œ›b-C]XJJqgEXiE-V›‹q]XVl‹›œ´ÅC0“ÕÝÁ¬¼¤b=EJ6=]‡œ²´»²›‡“¡´ÅÊÕÓżÁ¼¤¡ÁÓ»œ¬Ê»»Óáʲ›œ¬´»»¼Å¼ÅÙÕÊÁÅÊÊżÁÊÓÁ¤¨Å´²ÁÌÌÌÌÊÌÕÕ¼¬¨¤›››‹‡œ²»ÊÌÓÌœ¡—‡‹›¨¬¬¤¡¨²²²²²´»¼¨—“———¨¬²´¼¼»¨¡¡œ—›¡²²¨¨¨¨¤¤¬¬´²¨¡œ—““‹‹‡lg‹¬—x¬´‹u‚—¡œl:l}uXC]l}“iOVq‡qXixV#x¤uXXi]OVOVq‚‡bC06====JbJCglx¨´u6=VE&:lxqSCbx¡œqOS6&&#CJ=EC6x¨¨‹]XOiœ¬¤—‹i:C}Åݼ¡¨¤—lC6J=Jl‹›²ÁÁ´œ›¨¼ÓÕÓÌÊÁÊÓ»¤²Å´¨¼ÓÁÁÙÙ¬“—›¡»ÅÅÊŬ²ÌÅÁÅÓÙÓÌÓÕÕÕÌ»›¬´¼ÌÓÓÓÓÕÝÓÊÁ´ÁÁ¼¼´¨¤¤¤´ÅÓÓÓ‹‡‹—œ¨»´´¬¤¨²²²²²´»¼²“‚}xux—¡¨´´´¬¤´»²¬¬¬²¬¤›—›œ¡¡›‹“—“‡‚›¤¡u‚œiœ¬‹u}—‹ub0guqqx“¡“‹]EXi]6:}iC]qlliiqqxg0S}lX0-CE=JXVXiXx›‹¡¤—S-SE6Jg}}qgq‚‚x‡“‚lg6#6)-CJO0O›´²uCE=lxx‚‡bJl¬ÙÓ¤—““uS6J&=l‚“²ÅÁ»²¨¤²ÊÓÌÁÁÌÊÕÝÓ¨¡»´²ÅÕÅÅÕÌxq—œ¨ÁÕÕÌÁ¤¬Ì¼´ÁÓÕÙÕÕÙÕÌÌÊ››´¼ÊÊÊÓÕÙÙÅ´ÁÁÅÌÌÌÁ»²¨¤¼ÅÅÌÌ—›¤²´²´´´²¨¡¤²´²²¬¬²¬}xuli“¤¬²´²¡œ´¼´²»»´²¬¤œ¡¨¤œ‚Xl‹—››œ²»ÁÁ²›““b:u‚}x‚‹‚‚q66Xqqq}œ¨‡gE:S]J&ExlbuuxiSSl‚‹VXuV=6XlbSb‚‡qXJ›Á¡“›‡X)Cull}‹xg‡¡‹bEES]qqE==0-JVO=:]‡œ¨‚J66OJ&:i‹œxb}²Ê¨ll‹——xX-EC}‹œ»ÅÁÁ»»²»ÌÌŲ»ÌÓÙÝÌ¡›´¼´ÅÕÅÅÓÅqx¨¬²ÊÙÓÁÁ¬²ÌÁ»Á¼ÅÌÌÊÌÊÅÌÌ‹x¬ÁÌÁ»ÅÓÕÅœœÌÌÌÓÊż´²¬´ÊʼÁʤœ¤²´´´´´²¨¡œ¡²´²¬¤œ¡œ‚}x}‚¤»´´»²¬¬²²¨¨´´¬¬»»»´¬¨›}i}œ¬²²¬»ÁÅʼ¨¡œX6bgx‡‡›œ¬›lC=]lgq—¨qJ6-CVSSi‚›‚—›u]JOlœœ}qq0#bœ¬}Sl¡—l--›Å‹g}b0&V‹‡}x‹ig“œqO=606S]CCEC=JSOEEJJg‡V6CO0:i“qq—¬‚Vl›¤—qV)6S—›¡»ÁÁ¼¼¼¼¼ÌÌÊ»»ÅÌÕÓ»“²»²ÅÕÅÅÕÁ“—´¼»ÅÌÁ´¼²²ÓÊÅÅ´»ÅÁ¼¼¼ÅÕÌ‹g¡¼ÊÁ»ÁÌʤxœÕÌÕÓż»²¬´¼ÌÌ»»Á¡¡¨¬²²²´´²¨¡œ¡²´²¬¤›———‚qq“¬»´»»»´´¬¤œœ¤¨›œ²¼Å¼¡‚‹¤²´»¼»¬¬¼ÁÁ²¨²²bCgl“›‹‹¤²Å»œV0Oggx—¤l]S=E]iiu‹œ“‡“‡uX:S¤¤‚‡x&‚ÁÕ—Oq¬—i6=¤»J0lb:0Cb‡‹}q‹xVg‡‚J-:=:CE=COJXiJEEEXO)-]}X-:S:#)X‚‚}‹“xu›´¡}gE#0:i¡¬¤¤¬´´¼ÁÁÅÌÓÓÌÁÁÁÊŬ‡‚¡¬²ÊÓÁÓÕŨ¡¬´²´»´´»¬²ÌÌÓʼ¼Å»²»ÁÓÙÓœ}—¬¼¼ÁÊ̬‚x¬ÌÓÓÌÁ»²¬²¼ÊǪ̃¤»““¡¬²²²²´´²¬¤¤²´´²¬¡œœ¡›‹qu—¬´»»¼¼¼»²¨¡œœœ—¤²´¤}Xl“¬Á´¤¬»²²´»»¬¨´¬bSi‚¨¨‹‹¤²Á»²qESiu——b]“}Xi‡‹xux}‡qiqx‚i:Eœœx}}-x´Ì¤l‡¬“‡ll¼¬-6xiCCOSq‡}}‹ib‚“‚C0CCCC=:Jbluq==-CxqC)El])-JEJ=66X‹—“‡‡›²¼ggEEg}¨¼¬“—¤¬»¼ÁÊÌÌÌÙÓÁ»¼¼¬—›¡²ÅÅÅÝÕ»¤›œ¤¨¨¨²¼´²»ÌÓÕÌÊÌÁ²²¼ÊÕÙÓ¬›¡´»ÅÊÁ¡‡—´ÊÓÅʼ»´¬¬¼ÓÕÓ¡œÁ‹‹¡²²²²´´´»´¨œ²»´´´¤›¡¨¤‹g}œ¬»»»¼¼¼¼´¬¨œ›—“—¤¤—‚]6‹¨»¼²¡¤²»´²¬¬¬¨¡‹uql´¬‹‹œ¤¤¤¡uVb}“—uO#O“œ‚‡—“‚“‡l‡ubbiuiEO‹qx}JV“²¨›œ¨“ui}¨›VJVJ0:OJEVSl‡Vlœ¤¨‚]J:6=CEXlxlV-&C‡]=CbbOVlxx}}‚“¬¨—‹}x‡““qgqX-gx‚¤¼»œ—œ¤¨¤²¼Å»ÁÙÓÁ»»¼´²¬¡›¤²¼ÅÙ¼¡›“¡¬¬¬¨²¼¼ÁÅÌÕÓ»Áʼ´¼ÅÌÕÕÓ´¤“¤¼´¼´¨¡¤²¼Ì̲¼ÁÁ»¬¬¼ÌÓÓ²¬Á—¨²²²»´´»»´¤—¨´¼»²œ›¡¬¬‹X‹¬´»»²²¬²´²¨›““›—‡uxx¤»»¼»²¬²¼¼´¬¬¬œ‚X}‹q“»²‡“›‹xSJx¡¡‚: u›—››xg“œlu‚xuqi]Xi‚qq—i#)i››“›¬›g=]‚›“g0#&6CC6&X}Xu—¡´œqO6-:ES]]bVE-J“iOObiu¡¡“œ¤¨²Á¬xbJCEV]l‡lCquxœ»Á¼¬¡—‡—¬»¨»ÓÊ»»»´²ÊÅ¡‹›´»»x¤²»¼Á¼²´¼ÊÌÅÅÕÌ›¡»ÁÅÁÊÓÕÕÌ´¨›´Ê»´›“¤»´ÁÌʤ²ÁÅÁ¬²¼ÊÓÓÊÅÁ—¡¨¬¬¬²²²´»²¤›¨»¼»»¬¡¨´²X´»»´¨œ—›“}q‡“‡xqx“¡¨²´»¼¼¼¼»´¼¼»´´²›lEiig‹´»›‡—xXCEx¨›q: X‹—¡¡xSlœ}lu}‚‚iXl‹‡iq¤´gO‹‹i‚²¨q=EJq¤“V0--06)S}}‹‡}‹x]VE::=JV:60---Ei—›u]gqq‡¤¤}bl‚‡›²¡‡i: #O]l‹uS]Vl“¨»Á¼²¡}²¼²¼Ê¼¬»Á»´ÅÁœ‚‡¡´œxÊÌÌÊÅÁ´²»ÊÌÁ»ÊÅ““¼ÅÁ¼ÁÊÓÓʲœ—´Å´²—“¨²²»Å¼œ¨ÅÌÁ´´»ÁÌÌÌʼ›¡¤¡œ›››œ¨²¬›“œ¨¬¨¨¤¡¨²¨i‡¨²¬¤—qu‚xqx}“¡—‡u}—¬»¼¼»»»»»»»²´´²´²“iOV=Ox¤´¨¡¨¨¤i&Sx‹}i6#Cx—“‹iOX‚‚]b}‚lb}—‚Xg¬Ìi)&J‡‹bx¤“]JC6C›¨‡J---) b“››}bOCCOVV]OSJ&&):Ox¤¡‚q}‡‡—¬“E-)Ci}V& O}]S›—i&V}œ¨¬´´²¡“œ¼ÊÅÅÅ´¨¼ÌÓÌÓ¼“‡œ²¬‹x¤ÅÙÙÌÊÅÁ¼»ÁÊÊÅÁ¼¼¤²ÓÌ»²»¼Åʼ¤‡x¤´¬¨—“¤¨¨²»¬—¨ÓÓż´¬²ÁÅÅÁ´—¡œ››œ‹u‚“——x‡“““——›œœ—‹q‚›œ“‡‚‡uux›››¨²²¤¤¡¡¨»»»»´²¤¡¤¨¨¤¡¡¬²—lXJE]x›¤¤¨¨¤—X&Vlg]]=)# ]‹‚‡‹]]bVq}lg‡›g)b´Ó‡q‡‡¤¬‹XCOC=Jiq‡¡œ‚lS0:x¤¬“O:&&-6Jq‹}ub-J]iqx‡““‚}‹“›¨´œb#0:q}uX:&6l‡C:¡Á²‹)Xu—¤¨¬¨¨¨œœ»Å»ÁÅ»¡»ÕÕÙÝÊ¡›¬¬¨›—´ÊÅÌʼ¼ÅÁÁÊÊÊÌÓ¼²¬ÁÙÊ»²²¼ÁÁ´¡q“´¨¤“¨¬¬´´¬—¬ÕÌÊ»¤“œ´ÁÁÊ»“¡¤¤œœulu‡“““—‹‹‹‹‡}uuix“‡ulu‹œ›—¤´¬œ¨²»»»´¤—¬»´´»²¡——›¡œ“—¤²²¡‚CC]gl}‹‹‚‹‹qgbiql]gb]E#S}xl}xC=ii]l}ui‡“XX»²‹‹¡¤¬»E&CJSX‚“x‡——›‚J#Cg“¬¬q##-0&6q“—¡‹Oq¤¤“bbXi}‚‡—¬ÁÁœVO=:J‚x}‡gX}x:=¤ÌÅ›Jil—¬¼»¤››¡»¼»»ÅÁ²›´ÓÓÕʲ¨²»¤“œ¬´²²¼Å¼²¼ÅÊÓÓÌÕÙÁ¤¬ÌÝÓ»²¼ÌÌŲ›“‹›Á¬¤—œ²»¼Á¼´¤¬¼²¬“xx¤¼ÌÓÌx“œ›“‹‹‹—œœ¡¡›‡‡}}ugX]g}“xgl‡›´¤›¨´´¬²»»»Á¼¤“¨´»´»»¬¤¨¤¤¤¤¤¬´»¤‚:0C6:S]V:Juu‚}qqulu‚OS}qbi}‹S-JVi}uq—›E 6—›:&‡²´¨‚OJXbgb}‹qu}‚—›uOOl‡›œ‚=&-6:0:Sbq›¤u=q¬¬¡iO:Sx‹‚qx¡¬²¬xgVCiœ¨“œ“‡‹qCJ—¼Ê¨]b}¡´ÅÁ¤‚‚¡ÁÅ»¼Ì¼¬¤»ÌÓŨ—¡»´—‚›´²¬²ÊÓ¼¬»ÅÓÕÓÓÙÓ»¬´ÊÙ̼´ÁÕÙ̬‹‡‡›´¨¡—œ¨¬´»»¼´¬¡‚}q‚—›œ²ÅÕÌCSi}}x‡“›——“‹‡}xuqlg]Xg}}x“¤¨´¨œœ¨¬²´»¼»¼¼¬œ¨´»»»»¼¼Á´¨²´²¬¡}V0JO=0-CCVix‚‡‚}‚‹‚}V:-=i‚uq}‚›x=:Olq]l¤¡OO‡‚-&—ÊʤbJiiul]x}iiil‚““}u‹›‚qJ-66=EE0)l¨›lx¤¬›xlS]‹›‚XS‹‹quXO=Ex“¤²›—›}OEuœ´Å¡:O‹²ÅÅÁ¤“œ²Á²¨¼¼´²ÁÓÊ´¡œ¤´²—‹›¬²¬ÁÙݼ¤»ÊÓÕÕÕÓʼ»ÌÓÁ¼´ÁÌÕÌ»—x}“œ¨¬´´²²¤›œ¨¬¤¡‚x¨²¨œ“¬ÅÁXOXqx}‡““‹‚xql}‡‚qligbiqlguu‚›²¼»´²¤——œ¤´»¼»»»¼²²´´²¬¬²²´¤—¤²²²›]&JVO=#0bq}‚}‚——“¡¬‡SXq‹—xgq‡¡‹llxqbg‹²¨]J›¡uCb¼ÙÊ“=0lqxqgqubVXix‡‹‡‡››V:)&&06:CJC)C“—}“¬›qi‚q‹¤gC6bgOJ6=)Cgq‹¨œ‹‹i:6l¨¬»} S¼Êż¬¤œ—¡»¬›¨ÅÁ»ÁÓÅ´»²¤²´œ“¡¬¤¤ÊÝÝÅœ¼ÕÕÕÕÓÌÁ¼ÅÝÕ»²´ÌÕÕ»“‚‡¬²´ÁÌÌż´¬¨¨¤¤¨¤¤»Ì¼¤¤¡—œ´Ê—‚uu‚‡‚‚‡‹}}‡—¤—uqiilqxuilbq“¨´²¨¬²¤›œ¡´¼»»»»¼¼´²²¬¡—“—¤œœ´ÁÁ»œ]-JSSVSJEX‹œ¡œqXl‡‡¡´¡J:xœ¤‹]=Cb}“‡}‚‡}ll¨œbg¤›xVu´Á¬x6-biqqxuq]O]u‡‡li‹¡& &066:::66=C-)]u‚—›V=ix‹¬´u:):EE=0:CCb—›—‹}V&E¡¬¨lV‹¼ÊÁÁ´¤››¬»¨›¨ÌÌÅÅÁ»¼Ì»œ¨»¤œ¨¤›œÊÕÓÁ¡ÁÕÌÊÊÊÁ´¼ÌåÙ»¼ÊÌÌ´››¤¤¨Á¼´¼ÅÅÊÌÌÅÁÁ¼¼ÊÌÁÌÓ¼¨»Ê»œ¤»²¡“‡‚}¡¨¨¬²»¼¨}}‚‚‡‹‡‡‡xbgu‚‹‹‚›¬²¬¨¬´¼»²²²²´´²²¨œ——›¤¨¨²ÁÊÁ›O=SVOSXilu¨»¤b&6XXXu¡¨l)V““bJSVCE=b‚‹‹‚x‡‡‚‚llqOSq‚‹uJ=VOJb‹qgbXl‹›bS‹¤‡& -66066-&-=C:6CJ]‚‹XSii‚¬Å¡S##&)CJJ==:)-Oix—¡x-:›¬¨uJx²ÅÅÊ»œ›¨¼¼¨œ²ÌÓÓʲ¡´Ì»¡¬´¤¨¬œ›¡ÅÅ»»¨¼ÊÁ»¼Á»²»ÓÝÙ¼ÅÌʬ‹²Á´´ÊÅ´»¼¼ÁÓÓÊÅÊÊÁÌÓÅÌÓ¼´ÅÕ̬¡¡´¬›——““¡²»»»¼¼»œ}‹“‡‡‡‚‹}lgb]VVX}œ¬¬´´»¼´¤›———œ¤¬¨¡¡¨´»²¡œœ¨²›X=:OOOV]b]X“»—X)SJ-:q‹q6:}‡g]ggX:E‡‡‡}‚‡x}“}ESiJ=O]}‡i]XJ#E‚gguq‹¡œqg‹¬‹&))-#)C6:OSE0:EJiqig}¤Ê̤}lS:EJE=C=-=VXSJS}²›VS“¤¡i&Vx¤ÁÊÌ´››²ÅÁ¨œ²ÊÌÓÊ¡‡¨Ê¼¬²¨¡¬´¬²´»¬œ¤¡¨²¨¤²¼²¡¡´Áż¬¬¨—“¤ÊÊ»²ÁÅÁÅÁÁÅÌÌ´¬»¼¼Á¼¼Ì̼¬¼ÓÓÅ»²²¬œ‹“——œ¤¬²´´»¼²—u‡“‹‚}‚‡‹‚uqlbVE=g‹œ¤¬²»»²¡‹‚‡œ¬²¬¬´¼Á´›‡x}——iC)COJEE=0b¤u=J‡‹b660:=b}‡uXVgC J‚‡‡ux“‡bg‡}JCXbg]g‚“‹}qg6Cuq‹‹‡›¤›—“}‚¤œ0)=VJSul:6]]OEO-i}qlq›ÊÝÓ¬“g:EC=CCC:SgbJ&J›¬u]x“—]:u}¤ÁÌ̲—›´ÊŬ¡¬ÁÁÅÁ¡}›Á»¬²¤œ²¼ÅÊÁ¨—‡““œ‹œ¬¤‚‡¡¤‹‡“›´ÅÕÓ¼´»ÁÊÊÁÅÊÌŨœ¨´´´²¼ÊÁ¨¨ÊÓÓÓʬ´¬——“‹‡“¤¬´´´´¬—i}‹‚‚‹““‹}}‡‚x]6Ou—¤¬´´¬¨¤—“—‹x“¤¬²»ÁÅÅ»¡uq‡g:&6JJC:6-C}b0&O‚“}O-&-Cb}‹}bO]O0]‚“›¤‚JS}}b=Jx‹qq‡—“‹‡ll‡¤¼›—“‹¨¼“l“¤iE-:l¡—“¤‡6#OJCXu:x‡‚lCuÁáÊ‚VS6C==CEEES]]J#6‡´—lOg‡]V‡‚¤¼ÅÅ´¤œ²Êʼ²¬´»ÅÅ´“—¬¤¤¨¡¡´´»»²›‚››œ‡œ¨¡—}uu‡“‚‚›´ÅÊÓÊ»´´´¼¼»ÁÁÊÅ´¨²´²¬¨Áʲ›uœÅÌÊÓʬ²²¬¬¡uXq¨¬´²¤›—}‚‹‚‚‹“›‡‚‡‹}OC]´¼´²¤¤¡“‡‡‹“›¤²»ÁÁ»¡“‚x‡}O&-CEEEC:-&:XXJ:6J]SES:-X‚‚bSVOOE6X‡œ²¼ÊÁ‡E]‚ui06u‡xu}‡}x‚‡}¡´Á—u‚“›¬»œuu‡xxbx“œ¨››¨‚-:Sbqq=:qx‚i6qÁݲO#:6===EEJEEEC0#6b›Á´}-6gXXi‡¨»²²¼´¨²ÁÊÊÁ»»¼ÌÓ¼œ¡—¡¡“œ¨œ‹›¡—¨²»¼¬¤¬´´²¡œœœœ¡œ²ÅÅÅż²´»¬²»´´²»ÁÁ¼¼¼¬¡¡»¼¬›xœ¼¼»ÅÁ¨¬²²»¨‚l}¨¬´¬›‚u‚‡‹‡}‚‡“‡‚}‡—uVSu¬´²¨œ“‹‚}‡‹““‹‡‡“œ¨¨¤—‹‚‡‡uC)-:::CEC-]ubE0-ESSV==l—‡O6CC==&J“²ÊÙáÕ›Xl‡XE]‚‡xqb]x}u}‡“xXq›œxgqxxq0X—›“]SVl—J-S‚xC6JCEOXb“ÊÅx)0=::==EJ:66=66l¤¼Ê¼‚#C=)6}¨²¨¨´´¬²ÁÅÁ¼¼ÁÁÅÊ»¨¬¨¤¤u‹›‚i‚¨´¡¤»¼ÊÌÅ´²»ÁÁ¼ÁÁ¼²´´¼¼»´¼´¬´»¬²¼¼´¡¬¼¼ÁÁ»¨œœ¬²²¡—¨´¬¨¼Å¨¬²¬²¨“}‚›¬²¤‡ig}‹‹‹‡‚‡‡‹‹‡}}‡—}XOlœ¤œ››‹xux‚‚—‚‚‚——“‡‚‡‡‡uVOE:6)&0==:Xl}}bVVSVX]qbX‚—uE=OCCO&Eœ»ÌÝåݨiq‚C:q‡l]OEx}VVg‚‹qq‡uOJgi}‚)¬¬“J)ixi‚¡¡bCg-Ex¡¼¡X#6C=:66CE6&:ggb›ÅÌ̼‚-)# q¬¨¨¬»¬¤¬¼¼»¬´Ê»œ²Á²¬ÁÁ²}Vq“¨Á»¬»»²¼ÊÊ´¡¨´ÁÌÌʼ¬ÁÅÅŲ¨´»´»»¬²ÁŲ¤¨´Á¼»¨¤¡œ¤²´²²´²¤¤»Ê²¬¬¨¬¬—uu—¡²œ}gbu‹‹‹‹‡‡‡‚uu‡qXbu‡‡q}‹‡}x}‚x}‹‡‹““‹‡‚‡‹‹‚ilqgC0))0-)g‡xbEJ]bVOl—‚lX6JbJE]6X¨¼ÊÝåݲuql-#EluqgS:EXlg}¬¡]l—‡gVbuq}‹VEÊ̇=Cx—œ¡¤‡C V}6)-:Ogx‡uE&:CE=66=SO:Vxuq¤ÌÓÓÅ›V600)u²²¤²¼²¡¨´»²›¡Å²‚œÊ¬¡ÁÁ¬qJl“œ¬»Å´¨¼´¬»¼¼¬——¨»ÊÊ´¤œÁÅÅÅÁ¼Á¼»»´²´ÁÁ²¬²´»´²¤¤¬´²´²²¼Á»¬¬»Å¬¬¬¬¬¬“qqœ¤²œ}ibl‹‹‹‹“‚‡‡uiq}‡“‹xliu‚lE]x‚‡‚‚‚uux‡‹‡—“xlu‚“—“‹qu‚‹}xxgJOgl}‚V)6SS:)lœuxœ‚E6VbC:SJq¬ÁÓáåݲuug)]O=EVg‚›‡C&X“x¼—Ju›“ubg}‡‚‚xqÁÊl)))&iœ¨œ}OC)Xu=ES0-i‹X)6EC:C60lx}‹bX‚»ÕÙÙÓ»}J)C)u²¼´´»»¤¤´¼²œ¤ÊŲ²»œ“¤¡‹‚}q}¤Á¼Å²¡´»´´´²œœ¨¬¬´´¡—›¬¬²¼ÅÊÊÁ´¤œ¨´ÁÁ¬¬´»´´´´»ÅÅ»¬¡¤ÁÊʼ´¼¼¨¨¬¬²¬qu¡¬²œ‡qlx‹‹‹‹‚qq}‡“‹‡‚x}‚iEb}‚‚‚‚‚uqq}‡‹‹qilx‹“—glx‚‹‡l}}u‹i:0OJ&#q‹]}¤‚JE]S--EVx²ÌÙåèÙ¬uxXV—›‹‹qb‡´´})V¬}‚¬‚b‹››XO‡—}bx‹‡:-]b0S‹“i:-iiJO=CS--l])-CJE=-Cuu¤VCÅÓÙáݼu0&=x»¼Á»²¨œ¡»Å¼²¼ÓÅ´¤¡‹x‚‡‹}]]‹¡¨»¬—¨¼¼²´¨›œ²²¤¤¡“—›œ¨¼ÁÅÊÊ»—‚—´ÅÁ¬¤²»´´ÅÊÊÊÊ»¤¬ÊÓÊÁÁÁ¡¨²¬²¬“uu—¡¤œxu‚‡‡‡‡‡‚‹‹‚uq}‹‹‡}xxi]u‚}}‚}}}xu‚“‚q‡‹‡‚}‚‹‚glqu}}‚‡‹“›xu—‹]O]V--}}b‚¡—lOCC-:Xi‚´ÊÌÕÙÕ¨b]Jb—²¬²‚Vx²»—0E´“‡›xx›—œœ]=‡¡g=}œO0=‡‡S#0b]-0‚›6&ECSECOgœ‚]Oiu=0JX=‚²‚x²ÓÕÙáåÊ}0:-lÁ¼¼´¡lX´¬¨¬¨¡“‹‚}—‚‡›“lXVXbx—“‡›²¨¬¤›œ²¬œ—œ›¡¡²¼¼ÁÅÌÁl‹¬´»¡¨¼»´»ÊÕÓÊÌŬ}q»ÌÊÅÁ¼“¨²¬¬²¡‹}‡——xuqqxxuqx‡‹‚uu‚‹‹‹‡xiglil‚‡}}‚‚‚‡‚}‡‹‹‡}u‹“‡‚}‚xilggq}}‚‹“x‹¤—qixq=-il}‹“¡‡:--=]u´»›‡›¬‡:6X=)i¤²¼‚Vx¡œ‹V]²²¡“x¤—›¨l6q“SC—¨O&Slb:-EE#0}¬SCll——}l‹œ—“›´¤‚gJ-u—x—ÌÙÓÕáèÌ‚=-)V»ÅÁ»›qqœ¨‹——‹“›œ¬²¡¡»¨—“‹‹“›¨¬¬¨¡¡²»»¨¡¬»²¬»»¼¼»¼ÁÅ»‹u“¤¤¨¤¼Ì¼»ÁÌÕÕÕÙÕÅœ‡´ÊÁ¼»´x¡²¬¬²¬¡—‹‡‡“œ—qqxuuxxux‚‚}ux‡‹‡‡‡xgbqll‚‹‡‡‡‚‡‹‹‚‚}uq‡‹‚}}xxuxqVSi‡‡‚}b¼²}gx“xC#6Ex“›‡=:0)=gu›¤}]l‚i66bJ=‡œœbX‡‹uxux¬Ê²lb“¤“œ²u-VlE]¡»‚:V‚}bSC-:‚¬ll‹“ÅÊŇOl““œ¨¬²ÁÅ}6E:OVV›Ó¬¡»Ì´X#)J06u´»´¬œ¤²ÁÁ²²»»¼ÁÊÊÌÌÌÁÊÕÌÅÊÊÁÁÁ»´»»¼¼Á¼¼ÊÊÌÊÊÊÌÓÊÅÌÌÅÁ¼ÁÁÁ¼¬¤¬²²´ÅÕÙÌÊÌÕÙÙÙÝáÙÅ»»ÅÌÊÅÁÁg“¤¨²¬´´¬—‡xulgx‚‡‡‡‹‡‡}xux‚‹‚‚‡‡}x‚ubu‡‡‡‚x‡‡—‚xqqx‡}x}xxuuqVSi‹—‡ug=¡ÝœSV‡œq&#Oqx“—}q‡u0))6g“œœ›}ilbE-)l}iSl“}Xb‚¡Ê»J6‚—‹œ´x0EbJl›²¤gEXg‚““uS=6:lœXu‚‡¼Á»œgl“x}“¨Á»SCOX]b—¬xx‹œœib}‚V]—¬²¬¬¨»ÅÓÌÌÓÓÌÓÓÓÓÌÊÊÅÊÊÅÅÊÅÅÊÊÅÁż¼¼Á¼ÁÅÁÁÁÅÅÅÁ¼¼¼»»»´´´»»´»»»´»ÅÊÌÅÁÁÁÅÁÁÁÅÅÁÁ¼Åż»»»g‡œœ¤¨¨¨¨›‡}xlgqux‚‡‡‹‹‡‹‡xux‚‹‡‚‚‚‚‡‹}Xgu‡‹‡}}x‡‚qbSi}‡‡‚‚xuulgCOgx‡‚xqSœ¼b6]“—l&-6&6J]‚œ“‡›¡xJ#6b¨´¨‹}“q# 6uxbb‡œi]‚›¡ÁÌg=uq‚¨‡ESl]q‡œ¡œ¨²²“‡“q6C‚¡»œ6Exu›²¡“¤¬œ›}J=Vq‹]#EbSE‚¤¡¬²¨¬´²»²‡V“¼²²²»»¼ÅÌÁ²¬¨¨¨¬´¬¤¤¨¡››—›—“›¡œ›¡¨¡¡¤¨¨¨¤‡‡›œ››—“““‹“›“—œ‚}“œ¡œ›——›¡¡¤l]i}‹—›œ¨¬¬‹gu—iq‡‹‹‹‹‡‡xuxxx}‚‚}uu}‚}‹‹‚x‚‡‡‡‡‚}}‚‡}]]q‚‹‹‚ulxxi]]]luu}}}uii‚‡b-:]lu‚“}xl#]“‹g0C:6JXOVqiVqœ¨}=]‚—œ›““œx=C=O‚‚l}›¬¨—q]‡¡¬Ì¨‡}‡quœ“]]lXSq}u¬´¤u}›q)Cœ»¬iJX‹¬Á—b›ÊÅœlVbXJblEE):O)q»¼ÁÊÊÓÕÕÌ¡]=¡ÅÁ¼²¼»»»¼¡qiuu}›“—›‚}‡‚‹‡‚‡‚ux‡‡‹›œ›œbi‡‡‡‚‚}}}uuxu‹‚XXx‹‡‡‚xu‚‹iE):Vbi}‹—¨¨¨]=l“q}‡‡}xx‡‹‹‚ux}‚‹‡‚‚uqquq‚‡‚}‡‹‡‡‡‚}}‚‹u]bx‹‚xubXblllxullqul]]¡l-:bu}œ¡xC# C}‚J=6:VV::VS-C‹²“-&Eq}quœ›qVuqbx}l‡¤²´²}-Ex}“¨¬qx—“—œ‚gV=&EO#Jœœxqœ}CCu}gSVV&‹´Å‚&uÅÕ¡E:}‡gq¡¤¡iS-xÁÁÅÓÙÝÕ»‹E#]›Êʨ¨›“œ¬OOqlg}——›œ›‚‹“‹‹—›—‹}‚‹‡—‹—}Xq‹‚‚‹‹‹‡}uqqxiiu‡‹‹‹“—“q]Vblu}‹—¡¼¬›ql—¬x‹“‹‚u}œ¤œ‹qlx}‹‚‚}x}xgiux‚‡‚‚}‚‡‡}‚‹‹‚ibu‡uggglxux}xuqx}uil¡uCSlx‹œ¤‡:#Cx}CO=0OS:-CO:E‚´¡J-gugq—¡‹O:u‹ll}li}—¡¡x-:igl}g‚¡—“uXSC-=C0‡‹l}››xXOO:0S‡u)x²²}&X²Ì—0-‚¤—›²ÁÊœg0]œÅÁÅÕÝݼ‚ClÊ̬—ul¤‡Xi‚gxœ¡¤¤›œ¡—œ¤¨œ“››——‹u}“u]‚“‡}‹“‹‹‚}ug]g‹œ››››¤¡œ¤¤œ›‚‚—›——›¡¬Áœ‚œ²»}‹xl‚¨´¨ibqx‹‡‚‚‚‚‡‹l]Xi}‚}}qquqlq‡‡‚qbq‚iOi}}xux‡‚‡‹““‡x}‡}gqxu}—¡S#S‡‚]CV==b]O66C=Jq²²V#Vuu‚—“b&0bql‡uJCg}xiE:——CEx—¨›}iJJu]CCE6-VXJxœ‡lll]:#]—‡]‡¤“u:S¤Ì—6#i¨Å¼¬“‡¡}6]œÁÌÊÓÙÝÓ¡V iÁÅ»¡‡x›¤‚g‚›q}—œ¡¤œ“¡¤¡››¤¨¡—›¤¨¡‹ilœxgœ“‚‚‚‚‚‡‡‡‚g]u‹›¡œœ¡¤¤¤¨¨¡}‹¨´²¡›¡¨¬´—}›¬²»}“‡qi}›¤¡‡igl}‡‚‚‚‚}‚‡xi]]iqxuillggiq‚‡qbl‹‹x]Jl‹‡xxx‹‹“—“‹}}‚“‡‚—œuVx¡C:J60]‡}gOV:J‚xg]XJ6Oq²¡0Ou‡‹xX:&Vlx]b‹‹S6EVXig=6¨gl‹—¤œ“xS]—xX0)00gq]‚›‚llui=&iœuqœ—i]6i»Ì›6#X—ÓÓ¨]0¡Vb¤ÅÓÕÝáÝŇ0#EX:l´¼ÁÁ²œ¬¤xgx›“xq‚›¤›‹¡¬¨¨¤¤¤œ—›¬²œqO‡¬¨‡g“¨¤—‚xxx‚‡“——‡‡x‚œ¡¡¤¤¤¤¨¨—‚‚“»ÊÁ¨—œ¬¬¨““¨´»»‚—“}qlu‚‹}llx‚‚}‚‚‚}u‚‚iVESilquuqqi]u‚qXb}xgS]u‚‚}}‚‹‹‡‡‹‡‚}}‚“}q‡—‚i‚›E&XiJ-CiiV=E0J‹‡x}‚b=]²‚&Su‡‚V-CEi}b:J¡}S--u›‹X ]‚q‹uu‹“›œœ‹lJEOi¨¨‚‡›‹bViiJS‹œ]l¬“V6)Õ»xJEVg¤´œV0›»ub»ÓÝÝÕÊ»u#&]´“‚²»ÌÌ´¨²¡}i}—xxx}—‹}œ¬¨¤¤¡¡›‹“¡¡‡lb›¬¬“]‹¨¤œ—‹——œ¨¤›qq—œœ¡¡¤¨¬¬—‡‹“»ÅÁ¨“›¬¬¡›´´¼¼“œ“}qiiqqqlilx}xxx}‚‚}‚‡}lbVOilqxxxxubl}iSSllXbluxxuux‹‚x}}uq}‹‹g6=bqx‹}-]‡}]EC=0##:i‚‹›“gEu¡“b#=bx‡}VJl]]ul:6xœ‹bE]œ²]0CJS‚uiux‚‹›—‹xVXu—Á²‡‚‡lbbgVi››]iœ]0=¡Ê—iqqO0Vu}qg¡´“‹¼ÕÙÁ››i&=—ÁáÓ»´ÅÙÁ¤œ¬œ}}‹“““——‹‚xbg“‹‹““‡‡‹ug‚—¡¨²œi‡¡¤¤¤¡¡¡¤¤¨¨¡œ¡}‹““—›¤¬¬¬œ““—¤¨¨››¨¨›‡›²¬´»œœ—}lg]]VJVbiqxqlilu}xxqgillgigquuuuuqlu]JSllluqiiligix‡}quui]}›“g6C]lx‚x0b“œ“g6# :=X}—‹V:q‹bO0:bx‚‚ubl‡qSl}C#]‡‹‹›¤¡—uVVSbXu‹‹}uuibu}‚‚gg‡—›‹u‡‡}‚q]g]g—›uquil]]ulXl‹u=&Cl‡lgq“¤¤ÁÓ¼‚CC]S#0‚ÅáÙÅÅÓ̲¡œ¬›xx‡‹—›¡œ—‚SSuullu}‡‹‚xqil‡›¡¨²¤lq›¡¨¨¤¤¨¨¤¤¤¡›¤¡‡‹‡‹—¡¨¨¤›—““—›—“›¤¤“xœ“œ¬¡¡—}lbXSC6CViquiXXbgiibJOXgiibXbiliil}qgSEVqquuibX]XVXb]b]]]XS}œœxbVXlx‚iO}—¡¡‚S0))=‚qliixu=&V]JSCVx}xxuux}q]guS-g““œ“‡‚xX#]¨‚bu‹}}lXg}‡‹‚‹‹}u‚}x}l]igb—‹xEJulV-Sxg:66=blJ—¨“œ¨x-#O¤Ê¬¨ÅÕÁ¤¤²¼›ux‚}‹———œ¨¡‡l‡“““‡}il‡“—¡¨¬¨xb‚œ¤¡¡¤¤¤¨¤¡œ—¡¨¤¡œœœ›››“‹‡‚‹“¡¨¬²²´´²›x‡}“¤¡œ‡ulbVJ:&=VbbigbbgggVOJOXXXiqg]glqqx‡}lXVixquulililuxxlilqx}}‹“œ¡“uVSiq}‚x‡“œ¡“q]Xi‚»œxE6iu6)SE6=bx‹‚ux}‹qbu‚‡V:q‹‚xV:b‡qJ lݼ}Jq‚iixx‡“‹xXiœ¡—uu‚xg]quu‹}iEJVE&=ibJSVJEC=)¨“JOX0###)&0}¨lq´¼»¤¨Á¼œ“›—‹“›‹œ¨¡—›œ¤¨¤œ‡uu‡œ¨¨œ“œœ¨¨œxu›¤¡¡¤¡¤¨¨¤——¨¨¨¬¬¨¡œ“‡u}‡“—¬¼ÁÅÊż¼¬}q¨¨¬»¡“‡}}ulliXbqx}‚‚‚‡‡‡}qlquxuu‚‡x‚——œ›œ›“—œœ¡¡œ¤¨¨¨¨¬²¨¤¨¨¬²²¤›œœ“xgbiiqqixœ¤¡—‹‡—¬Á¡q60lx:-V=)i‡‹}q}“qq‚‡}qu‹‚qX)SugCbÌÊ‹:i“‡qu‡—›‹‡i::¡Ê»uu“‹lgu‡“x]Xxl0 ClxXJVS0ClOO“O #=CC=6-)=il:Xœ¨²¤¬Åʤœ¬¨œ—›“—œ—‹‚‹›¨œ}‚—¡¨¬¬¬¤“‹¡¨²›‚—›‹œ¤¤¤¨œ—¡¡¡œœœœ›—‡‹¡¬›—œ¬¼ÅÁÁÊÊ»xg´¼¼Á¬¤¨¤¡¡¤¨¡œ¡¤¨¨¨¨¨¬¬¨¨¡¤¤¨¨¨¨¨¬¨¤¨¬²´´²´»²¬²´²´´´´´»»¼¼Á¼»»¼Á¼¼´¨¤œxibbgigVl‡œ¨¨¤›¡¬²›u:0VbE==-Xu—‡}‡‡uiq‹}Si“}J&#-JXO:&Ex‚SO}¤»²}b}‹xqO‡Ê¼‡œ¡xx‡—“lSx¡“XCECVx—V6JE)&J‡‚CO-)J--CEC==60C]]]‚›¡¨›¨Êʤ›œ¡œ›“‹‡“‡u}‡›œ—‹—œ¤¨¨¤¬¬¡“›¡¬¡‹‹il¡¡¤¤œ—¤¨œ““›²´¡›“—¨²»ÁÁÊÁœx¡´»Á»²»»´»¼¼¼´»»»¼¼»¼¼¼¼¼¼¼¼¼¼Á¼»¼»¼¼¼»»´¬¬²²´¬¡œœ››——œ¡¡¡œ¡²´´²¨¤¨¤¨¡lSOXX]]Obl‚‹‹‚u““‡qE)=X]bSC]}›œ“}iii}xVg‚xg--Obl]J6##0-g“¬ÓÝ:]}XE=& u¤¡‡‡›œ—“‡‚}ubq“œ›‡x‚—¡¡¤‚E6OXE:S}xEu“²œX-0C=CEC0)Jxœ´¼´—²ÌŤ›—“—“““—¤¡“¡¨¨¤œ›œœœ““›œœ‡}‡}‡—¡¨¨¤›‡“¨¨¤›“—œœœœ››¡¨²²¨—‹œ´ÁÅÊʼ¤q‹´»¬¨¤¨¨¤¨¨¬¨¬²²²¤¨²´´»»²¨¤¨¬´²¤¬´»´²¨¡“‡›¡¤¤œ‚xu}}x‚‹‚}x‡¡¬¬¡›‡‹x]OS]SOSJOSX]X]lq‹‹qqiC#6Xl}x]VXbl‚‹‚‹uJ::u‹‚xuub)0Xx“‡i0 :Vx›´Ùè›:X‚=CXC:X]VJXiu‡——‹u]Jx‹“‡‚‡¤¨}b=6Xq]Vlui‚ÁÊÅ‚E0006=C=#S—´ÌÓÅ—»Ì»“›œ—‹‚}“¡›“—œ——œ“‹›¤¨¡‡“————œ“ux—œ¤¬¬¤“x—¬¡¤¡œ¡¤¨¨¨››¡¼Å»œ‡œ´ÁÁÅÊÊ»ii¬´¡—““““““››œ¤¨—‚“œ¨¬²¬“‚x}—¤œ—¤²¡‹}‚q‚““œ¤¤œ‹ux‡‡‡‡‹‡xu}›¨¡}‹“uiug]gl]E==J=COJCSq‚“œ‡‚‚S):l‡‚}gbiV==SVb}x=#q‹‹uq‡x=#Ei‹—u&)q‚l‹´ÕÙ›Vq‡0Ou‡g- =xœ¨¬—b)b‹‹“‹‹‡¤¤]:0-6Sx‚}—“¨åÊ‚=0ug-0:- g¤¤²ÕÊ›¡¨»¨x‹›“}qu¡œ“‚—²¡—‚q‚›œœ¡›‚x‹“—œ¡¤¤qCu‹‹›¤¨¨—x—¡¡¨¡¤¬¨¤¨¡‡x—»Ì´›x›´¼¼ÁÁÊÅ‚bœ´œ‡“——““—›¨¨“q‹›¡¨¨¡‚uqq‹œ“¡¤¤“lg››œ—¡¬¬¨›‚‡“““—¡œ—‹œ¨œ‹}“›‚uubg}q=#-:OC=JO=6Ol—¤‹‹xx‡——‹qJJVC)-=0)OiE-C}‚V=]‹‹O#-CJg}b#b‚lOg›´²‹i}‡CClx-#J}—œ“i-Ci}}q‚“¨œb:0:Obqiu‹‡‡´Õ“0i¤‚-- V““u›ÌÁ¡‹‹¤¨“›¡—“›¡¡—xq—¨¨œ‚uœ¬¤œœ›‚‹›œ›¡¨¤lO}‹xx¤¨¤—‚“œ¤¤¤¬¨¤¤¨¡‡l‚—»Ì²‹uœ´»¼¼ÁÅÅ—b¬›‹¡¤œ—“—¡¬²›‚‡‹“““—“‹——‚‚‹—¤´¤œœ¡¨¨œ›‹œ²¬¨¨¡¨¨œ“—¡—‹‹‚]bxb&6EVJJSO0:‚›gix‡—œ›}X0EOC=EE6)=XVCS‡0#S‚‡S6SVCOxV E‹uOEbx‚‡ug}“iC&S‚i):bgO=:CE0)-:0C‚¤œO-EO]iS:JXJO›²X S¨¼‹)&Ox¡¨lO‚»»“u‹¤»»¼»´»ÁÅÁ´—qg‡››“—›œ¤¤¤¡¡¤›—›‡‹›¨‹¨¤‚gl¤¨¤—‹œ¨¨¨¤¨¤¤¨¨¡x}¡ÁÊ´“‹¡´¼¼¼ÅÊÅ¡i‹²‡q‡›¡œ—‹‹—¨²¤‡u}xlu—¤¬¤›“xi}‹›¡¨¬¼¤›››—““›œ›‡x‚—¬²²²²¬¤¡¡¬²}}iSg‡uE==C:COJC-=‡‹J]q‡›quxX6XbECECCSbg]OJ}‹VVu‹‡qiqX6S¡x XœlEb‚lbul]x—lC)C]C&6&:OEEO0#0---0x¡›:)EOOVOCES66x¡VqÁ»‡-))J»Ê¨iSx²¤‡¨»ÅÊÌÌÊÌÕÕÓʬx‡““—œ¡¡¤¡œ—œ¨¨———‡‚—¬¨²ÌÁx]i¨¨¡—“¨²¨¨¤¡¡¤¨¤œ—‹“¬ÅÊÁ¨œ²ÁÅÁÅÊÅœx—´qgu——›“‹‚‹—œ¨—lgbi}—œ¬´²›‚}u‡›¤¬²²¬´¡‚‚‡›¨¬¬›‹‚œ¬¬¨¬¨¤¤¬»»‹}}igx‹}XECJ::6)#&-Og‡}S]q‹—}gu‚]Elg=:C=CXul]]O]‚¡¡—›œ‡O&Vʤ#]¡xi‡‚SSqul‚—i:)) &x—´x=EXq‹‹b)066:6-0‡¨›66COO==EE00Sb-g¤‚}uql—ÅŬ›xu‡œ““¬ÅÁ¼ÅÊÅÁÁÅÅÅÊÊ»¡“‹—“›¤²»»²¡œœ¤¤¡œœ—›¨²´ÁÙÕ—gX‚¤¤¤›—¨¬¬¬¡¡œ¨¨›“›¡¨»ÅÊʤq“¨»ÁÁÁÊÁ‡x¨´lu‡›œ››œ¡›‹‚‹››qXVbq‚—²´¨u‡“¤´»»»²¬¬“‚qx¡¬´»»²¨¡œ›¤¡¡¤¤¨¬´»´‚u‡xqx‚l=)VuxibE:Egxx‡lE]l‚—‡luuXSq]-0C=:=EEOigS‡œ—¨²¤¡¤‹J#S²›Ji‡‡]:El‚xx‡bJO0-œÌå¤giii}}X6==:==6 0‹¤‹-)EVJ00CC--XOViu›‹ÁÕVix‚›“—¬´ÅÁ´¼Á´¨²´²²¼ÌÌ´œ‚—¡»ÅÌÌÊÁ¼´¨¡¡¤¤¡²»´ÁÌÕÓ´uCg›¡›“¡¨¬¬œœ¡¨¤‹‡¤»»ÁÅÊÅ¡u“¤¨¬»ÅÊ»}q²»i—¤¬¤‹u“œ¤—xluqlg]XVX“¬¡“‡‹¡¬´»¼»»²¡“‡‚‚‹›¨´»²²´´´¨œœ¡œœ¤²²»¼»iSlqqlui=)Sx‹‡‡uiu‡‚x‹lCVi‡—}il]CJqJ&660&-i}Vu‹“»¼¡››u::gbbu‚›¨X&)=X‡‹S&=g}gOÊÝÊ“xqC66066=:=:):‡‹S&=OE0:OC&JxbEX‚¤›}lbx¨¡J)=b“¬»Á¼¼Á»»¼´¨²¬¡œ¤²´²œ‚‚¡´ÅÌÌÌÊÊÊ´¡¡¨¤¡²»ÁÌÌÊÅ»‹OSl}‹‡“¡¤¤——¤¬¤¬ÅÅÅÅÅÅ»œ¡¨¤¡¬¼Å¼—}¤¼‚œ¨¨—uXx‹““‚ul]iuqgX]“¡‹‡“¡²´´´»´¬œ‚}‹“œ¡¡¨´²¤¨²¬¨œ——“—›¤²´»»²g=]i‚‚q]:)6EOSi}‡‹“‡‚“xSgu‹“}ibC6Eb:):CC:&]‡]Si—Á¬‹‚xS-0:OSi‚—²›=06-Eu‚S#Elxgʤ}l‚¡‚J0--:::::66&O‡lJ))6CSSJVgJCl‚u‡¨²ÅÅ‹ES]l]) 6xÁÓÌʼÅÁÁÅÁÁÁ²¡¡œ›œ¨¤“‹›¨ÁÅż´ÁÅ»¨¤¤œ›¬»ÌÌÅ»»Á¤}]V]iqx‚››——¡¬¨—›´ÅÅÊÅÅÓÊ´²²¨œ¡»Ê̲»œ¡¡¤œ“‚}‚—¡œ—‹q}‹‹‚x}‹‹‚¡²´»´¬¡›“‡q‹¡¤²²²²´¨›¡¨¬¤›—¡œ¡¡œ¤¬²²¤i)6g‹‡b:#&&&=ix}‹›}i‚‹‚iO6OVS=-=JXix}S#Sq}lb}‹‹}V:-0Xlbq}‡¡œ‹S=)ExxgV:CV‡‡Cb“O0Xq}uS:06::==:0=OgxibJES]gggqubi‡‹“¤»ÁÊÓ›JOJ=:& S»ÌÌÌÊÌÊÊÌÊÊÊÁ»»´¤¤¬²¬¬¤¨¨¼¼¼¬¡²¼»´²¨¨¨´ÁÌÊÅÁÁ̼œ‹}x}uq}““—›››¤¡—œ¼ÊÅÊÊÅÌÁ¡¡¨¬¡œ²ÊÓ¼¡‹¡¨¨¬¬¨¤›—¤¬²¬œ‡—››——“xq‡œ¬»»»¬œ‡}‡‹“¨¨´»»»´´¨“¡¬¬´´´»»¨}œœ—qJEl}J&:C=#6VVJSx››}‚—xqiJ6OqgVgl}‚xu}‚b&6i‹b-6u‹O#CXSCSgu‡xiE]uOC::OxxESiE)CECC66:6::==:0=ggg]bX]lxlgixug}›œ¨¬»ÊÌÕ¤O::0))-)6¤ÁÁÌÓÓÊÅÁ´»ÁÁÊÌʼ»´»ÅÌÅ»´´²²¤›²¼ÁÁÁÁÅÅÊÊÊÊÁ¼¼ÊÅ´¬²´²“lx‹‚‡“‹‹‡}‡¡ÁÅ´¬¤¡¨“x———‹—´Ê¼²—‡›œœœ›——››¤¨¤¡—‹¡¤œ—“‹xuœ¨²¬¤—‹‡‹œ¬¬²¤¤¬²²²¬¨›œ¬´´´²²¬¬¬‚i}—“‹i]Sg‡q:&EqX::CC:#]—“xœ‡S6-&=x}]Jq“—›‹l]]V=0gœ‚6 )u‹X=SV=& EgC-EiX6-00Ei]0CqS0OO6-)-:6::::00E]XECSbl}‚iVbl]]¨²²²ÅÕÕÊ›=&0-&)0)E—²ÅÌÓÓ»¨¤¡¡¨´¼ÁÁ»»»»¼Ìʬ¬»¬¤¡¡´¼ÁÅÊÓÓÌÌÊÊʼ²¤²¼¼ÁÅÌʤ‚}xl‡‡lbiq}›²¡‚ux‡‡‹—““‹qi‹¨¬¨‡q‹‡}u}‹››œœ—‚¨¤›‹‡}‚‚‡››}gu‡—¡¨¬¬¬›—œ¤¤¨¬¬²²²²¬¡››››œ‹ulu‚‹uuOJggC#J]:ECC=-=qxb‹›‚C=]ubE-JglxuibXS=Cb‚V&:lxJEqi66‚V& 0ib6)&)6bg=V‚gSxuO606::::66):JSE0=Vlx‚u]JOOCb›²Á²»ÕÙÓ¬u0-6)-CE-#O‡œÅÌÓÓ¨‚—¤¡¤²¼¼´¬¬»´²Á¼¡¡ÅÁ¼¼¼ÁÊż¼ÅÊÊÊÌÌż»¤œ¬ÁÌÓÌ»¡—œlxqgl}‚x‚‡‚›—¨²²»œ‚—}XSl‡‡VV‹‡uu}‹“—“‚x¡›‹‹‚}qu}‚qJEu‡‹“œœ›œœ¡¡¬²¬¬²¬¨œ—¡œ›—‚gVu“—iViqV-C‡]66:CSS=0=SS‡—‡E6bSC=6-# Ci}g0CilS:VquXJq¨“0-0Sl›X&EiXb›œX)#)0]gg}›q]‚xO66=JC66660COO=Eiuquu]E6:00g¤»Å¬¡¨¨›lVEC&6g‡u6&O‚ÁÊÌ̬›¬»»¼ÁÁ»²¬²¼´¤¼Á¨²ÌÊÊÌÌÌÓÌÁ²´ÅÌÌÌÊÁÁÊŤ¬ÁÁ¼¨‹›¤“ilgq‹‹‹—›¨´»»Á»²»œ‚—¡¡uqx]-V—›—‹‹‚‚‹‡qq‡‚x}‹‹‚qgXbq‚‚——“‡‡“›¡¤¡¤¨¬²²¬¬²¨œ›œ¨¨œ“——}gx›¤²‹u‡‹b06i]=)):O]V:=]›‡E#6E&&E:0&-qi& =‹¤lEO‚“VE‹Å¤E6gi‚‹6i¬¤¨²u:)0:X]x›¤]6SS6)-JbV60:=CS]VOi—“gVVJ6)00:l¬ÊÌ“SE=&-X0 V¤»:)O‡—´´ÁÅ´¼ÅÁÅÌÊ´‹“²¼Á»¨²²²²²²¬»ÅÊÌʼ¤¨ÅÌÌÓÌ´¬ÕÕ²²Å¼¤xg}—“‡xxi}›“—¡¤¤¤¡¡“‚x“¡¬´¼¼²—lOJb›¡œ››—“‡‡‡lV]iXXl‚‚‡uqil‡¤¡¨¬¨¨¡¡¤¨¨¬²¬¬²´´²²´´¡‹‹›¡¡›“¡¨—‚‹›¨²}‚O�JSE0#&6JE)6gœœl=66#EV6VbJJSqœ“E=ÊÙ“6x¡}Ju¼¡VV›—‚iJuÁ»‚quXCJ=Ebgxœ¤O:E:&)VqV0&:JVbxi]‡—}J6::00:C]—»ÓÌ}0& =#b´´q)0g‹›¬¨»¼¬´´²»¼¼¬‹“²ÁÁ»¤¤¬¤¡››¡¬¼ÁÅÅŲ¬¼ÊÅÊÊ»¨Áʬ¤²¤›‡‚“¡›}}—“œ¨¡œ—“—“‹—›—xg“¤²²²´»¡ubx›››œ¡¡¡œ›“‚]:Vqu}‹“—¡¡—lg}““œ¤¬´»´´´²¬¨¤¨¬²¬¤¨¬²›}}“———›¡¤—‡‹——‡}}‹i6&0-6:C0##0JJSq¡‡:=qqE:bV&bxbV]‚œi&=‚ÁåÓ“6u›‡CJ‹‚Vq²¡uC&i¡¤g0))CXCEiq‚œ¡X:OVO6-JXE)&6Vbbubb‚uO660)):CO}²ÁÅŲ—›‚S#V“¬u) Ex}“´»Å²—“—¡¤¬²¨¤¬¼Á´¤¨´²²´»»¼¼ÁÅÊÌÁ´¨¤¤»Å»¨››‹xx‚“œ¨»Á´—¨¼¼²´»»´»¬›œ²´´¨¡¬²²²²´´œx}¬¤›››œ¡¤¬¬œ“}]Sx‡“œ¡œ¡¬¨‡X]u}xxœ¬»»²¬œ“““—¡¨¤›œ¡¡—‹‹————››—‚‹—uSg‚—}VJV=)0:0)-Elq0b‚VV¬¼‹JC]&EX]J0X‹g&6x´ÅqCE}xO#&JVi‹¡›xV=-=b‡g)#=VCCl}‹“‹ibb]]SEOSJECCgiVXEJ]VOEE:6CSVg—²»´ÁÅÁ»»¬“‡}‹¡´¡J-gxq‹¼ÊÌ¡‹¡¬¨²»²¨²ÁÊÁ²¼Á¼¼ÅÊÌÅÁÅÅÊÌʲ—‡¡²¡›xx—“—œ²ÁÓÕÅ¡‚¤ÓÁ²¼ÊÊÊ̼¤¤ÁÊÊÅÁÅÁÁ¼ÅÅ»—q—ʨ“““›¡¨—}}‡—œ¡¡›‚¨œ}lu‡‹‚‹›¨¬¬¡‹“—œ¤¤››œ¡¡¡¡¡¤¡¡œ›—‡›}EJg‹¤¡‚bE::=0):]‡‹VEu‡VV´Å›bb}OO]bE)V“‚CE‹&6]xX=-):Vu‹}xqgV:))Oxg=0=JOCClu}‚bixgXiquuliqibllg]CO]lqiiX]}‹}‚œ²»ÅÓŤ}ÁÝÊÌÊÊż¤V:b‹¤¡u“ÌÊ̬¤²¬´¼»¼Á¼»¼Åʼ¨»ÅÁ¼»ÁÊÁÁÊÊÁ´¡—›——œ¡‡›¤²»»´´ÁÊÓÙÅ›u›Ì´—¨¼ÅÊÌÁ¤¨ÁÅÅÊÊÊÅÊÊ̼œ—¬Ì»qxx‚‹›¡}i‡œ¤¬¬¬¤œ‹‚“¨œ““—››¡¨}‡›¤¨¡›—›¡¤œœ¡œ¡¤¬²²´´²¬¨¤¡œ›“—¡}=0O}¨Á¡gOJ===COi—¡l0=‹qEi¤´œ›}:lxXE=g“‡VEgxqV]llVO]gSCEVVECJC6#=giSEVgibOCJOu}Si‚iJSbgililqligigVgx‡uiliq—xx¤¼ÁÕÙ²S:¬ÊÊÊÅÁ¼»¨‡‚›²¼¨¨ÓÊż¼ÁÁ»»´»¼¼¼ÁÅÅ´¡²ÁÁ¼²¬¼ÁÅʼœ‡}¤¨¤¡¨œ—´Á¼ÌÌÊÅÊÌÓÌ´“u—Å´¡»ÁÁÊÁ¬¬¼ÁÁÅÅÁÁÊÊÅ¡‚—´ÁÊÅ‹‹‹}liq¡¤¨¬²¬¨¡œœ¡¤¨¡œ¡œ¡¤›‡}‹›¡¤¨œœ¡œ—‹—¤¬²´´´´¬œœ›œ›—“›¡qOb}—¡œ‡VSVOJCECS‚œg0 )›‹Si—œ“œœ]&xqECCg}bEi‡lg‡“‹])Jx‹l:#)###00Ei]EOgxxuX- ‹‹]‚œuC0:06SOCg}ugC::Obi]VVS]}uVq´ÊÕÝÌ‚)6¡¼´»´´¼Á»²²´»¼œu¤ÌÅÊÅÊÌÁ²¤¤¨¨¬²¼Á»²²»ÁÁ¼¬›¬Áʼœib‹¨´²¤¤¬¬¤²²»ÊÌÊÊÊÊÌŨ‹›´²“¤»ÁÁÅÅ»²»¼¼Á¼ÁÁÅżœ“¬ÅÅÅÅ›¡¡œ‡gO]q‹—œ¤¬²²²²¤œœ¬¬¡œœœ›œ¡—‚}‡‹›¨“‹‹‹‡‚‹›¨¤¡¤¨¨¤œ‹‡‡—œœ¡¨²xb‡xO#::OSSOC)&Jb:—VOblx‚}X=ui-)CixE)SbJ=bulJ#O}q6##)g‡XESb]VSX]ilS))œg‡œqJJS=6E=:b‚uq60)&6EJSEX}gJ}¼ÊÝݲb6#›Á²»´¼ÁÅÁ¼¼¼¼¼‹JÓÁÊÅÌÌÁ²¤œ¤¨¤¨´´´´Áż»¼´¨´ÊÌ¡‡iu¨ÅÅ»¨¤²´¬¡¤¼ÅÅÊÅÊÌÓÅ¡““¤¤—¤²¼ÁÅÅ»²²»¼ÁÁÁÁÁÅÁ²²ÁÌÅÁÁœ¤¤xquqx‡œ¨²²²²¤—“œ¬¬¤¤¤¤¡¤¨›‚uxx—‚ux‹—œ¤¬¨¡‡“›—›“‡‹œ¬¨¨²¼¨‡‡‡]) 0OXXSE=0))0))=‹qE-&Cg]EOXlX)&JuxC-6-)0::06]}‹l00-&CœÌ²‹JCS]X6=XE-#=¤‡=i‡V=Vx‚S&=u‡lCC::O&):Sl}]OÊÌÝÕ›# lÁÁʼÅÊÌÊÅÅÅż‚:}Ì»Á¼Å¼¼¼»²´¼´²¬²´ÁÌÊÅ»»ÁÁÅÁ²‹›¤¼ÌÓÊ»´¼Á»¬´Á¼¼ÁÅÊÌÓ¼—‹—‹—¤¤¨²¼ÁÅÅ»²¬´ÁÁÁÅÅÊÊÁ»´ÁÊÅÁÁ“—}x“¤‹‹“œ²²´²¨›“¤¬²¬²²²²´¨—}}›“—‹‡›¨´»´œ}igu‹“¤¤¬¬¨¨²»Å´‹‡“x=Eq‡bE:06COXXVSbb6#ClV&CgXE)0Vxi6006-#Jq‚‡b--SJ&O¡´¡i##Jli:6XO0)Vœ}&6V0-Vx‹xSX“]##:SiV6#-=OXVC]¡ÌÕÝÊ}V¬ÅÓÅÌÓÓÌÊÌÌÊÅJ}Á»²¡¨²¼ÊÅÊÊÌÁ´²»ÁÅÌÌʼ´¼¼»›xx›²»¼ÅÊÊÅÅÊżÁÊÁ´²¼ÁÊÊʬ}}“‡‹¨¼»»ÁÁÅÁ¼´¬»ÁÁÁÅÊÊÁ¬¤¬²´»»¼‚‚‚‡—¨´¤›‡}‹œœ¡¡¡œ›¡²¨¤¤¤¨¨¨¨—‡‚‹œ¨¡¡››—›¨»´¨‡‡‚uq‹œ²´´²¬¬´´»—qu}i=X‡›S00#0Vq‹u]gg=#&S}]&OqS=)6buX0&::6)##-g}‡‡iJV}l-:gX0#Jq‡}gXgqS-E‹u6-:&&CSbl]]‡‡XOiiX]‚uCESE6-6‹¼ÕÙ»i&)q¨ÅÓÕÙÕÓÕÙÕÕÓ¬qx¤´¡l‹¬»ÁÁÊÌÊ»¬¬´´»Áż¨›—›œ‚u‚œ¬¬¨¨¤¬»Åż»ÁÌÁ´²¼ÁÅÁ¼¡x}“‡´ÅÊÁÁÁÅÅÁ»²´ÁÁÅÅ»¬œ››œœœ¨´¼}}‹›¨¬¬¨¡‚gguxx‡›¤¬²´¤œ›—››—“uq‡œ¨¬¡¤œœ¡›“—››¡¤¨œ—¬¬´´¬¬¬²´²œlXXS6&#i‹‚E-0#0]‚“iOqiC60)#S‡iEguJC-0gqV))6&-:&S“‹xx}xx‡g## Ju‹“—uliSO0#xlOquV:6:=CCX}uJV‹‚SV“‡XiuJ##l»ÓÝÁx0XEb¨ÌÙÝÙÕÙÝÙÙÝÁ}i‹¨¤}—´´¬´ÁÊʲ¨¬¤—›¬¬¡‚‚‡›œ¤¤¨¤¤¡œ›¡²¼¼²²¼¼²»ÁÅÅÅÁ¼²œ›¡›“´ÅÊÅÅÁÁÁż²²¼ÁŲ›}‚¤¬¤¡¡¨´¼‚‡—¤²¨¡œœ‚bVgqgi‡œ¬²´¨¨¤¡¤¤¡“}‡—¤¬¬—“›¡¡“‡‡—›¨²²¨œ¡²´²¬¨¨¬¬´²—ggX:)]u]=-00=]‚‹bX‹x]SJ0#O}iXqg06:EqlE&=66X]Cg¡‡gglx‡xS#:60Cg‚‚iq‹‹uiillE6lig‹—xS66)):b‹b)V“XJ‹‹qxxO#00l¼ÕåÙ“0bq“›—¬ÌÝÙÙÝÝááåÁxg‚¨´¬»ÊÁ¡¡¬ÁÁ²²´—x‚—“—›¡¡¤²»Å¼´¬¨¬´´»¼¼»¨¤²²¨´ÁÅÊÅÅÊÁ²²¼²“¤»ÅÅÁÁÁÁż´´´¬œ‡“¡¼ÅÁ¼¼¼Á¼‹—œ¨¬¨¡››‚ll‡“li‡¡¬´´´¨¨¬¨›‹—œ¡¤¨œ“‡‹—œœ›¡¤¨¬´´²¨¤¤¬´¡—¡¨²´¬—qlb=##)CVO6)0:CVu}l}lggbE0VuO=i]#Ci‹‡V))Obiu‹x]u—‚ib]ix‚lEE]]bx‹V):]bXlxllVCbVX}i=0--=g}J)X‹—XJ‡‚iliJ6VS#&}ÁÓåå¨0&Eq²¬]iÁÕÕÙÝááåèÁxl“²¼»¼Á¼›—¬²¬²¬‹u‡——¨¼ÊÅżÅʼ²¨¨»ÊÌÊÁÁ¼¬¤²²´´¼Åż¼Á¼²¼ÓÁ¡—›ÁÊÁÅÁÅÅÅÁÁ´}C}¬¼ÅÊÌÊÌÊÊÅÁ—¡¤¬¬¬²œuu‹›—›‡x‡“›¬¬œ‚uuq‚—¡¤¤¡œ—“‡‡“›œ¡¤¡¡¤¬²´²¤œ¤¨›œ¨²´¨“lliS6)-))6C0)0:6=Vqu‹‚biu‚bEgu6b‹O6qœ¤“li‡›—œœ‹‚‹}}}u]lœœlixu‚›l-&)6]lXlxX):iu‹—‚gE0-6CJ:=g‡“S)ibOXbSS}x]q¤ÁÌáåÅq-g»¡&=²ÕÙÝÝÝÝåè¼iX—´´¬¨¤¤œ——œ›——“‹¡¬¨²¼ÁÅÅ»¼Á»²¨²¼Åż¼ÁÁ¼»¼¼¼¼²»¼»¼Á²¡»Óʬ—²ÅÁÁÅÅÅÁÊʼ‚:xżÊÊÁÁÁÅÅÁÁ———›¤¬´ql}œœ¡¤¡“‚ux‡‚xg:&u¡¤¨œ“—›¡œ““›››››œ¡¨²´²¤—›¡›—¡¨²»¤‹giubC:=6&):0)-6-&6Og‡}u}gJl}6i“uVOg‡““œ¡““›‡q‡‚qx}xgiblx}‡‚S0)-)Juluq0q}—‚]=0--::EgquX:bXEVi]g‹‹¨ÁÊÌÙåÕœJlÁ—)—ÝáÝÓÓÕáè»XS“²²¡¨¡œ¤¬²œxq}—¤¨¬²¨¡¡»»²»»»»»Á¼»´¼ÁÅÅÅÅÅÁÁ´¨²¼ÁÌ̤‡¡Ì¼¬¨¤¬ÁÅÁÅÅÁÁÅÊÅ»¡›²¼ÁÅÁ¼¼ÁÅÁ¼“‹‹“œœ›ux‡›¡¤¨¤¡“xl}‹›‡J#x¬¨¬œ“—›¤¨œ——›››¡¨¤¨¬¬¬¤—œ¡¡¡¤¨²´œ‡bixiJEJC:-06-0:0#Ci‡‹x‚uXil0b‡“‹i&#=Xu‡‹‚‹¤u‡‹““lgigqqOVuix]O6-::6V‹}‡œO00q‹‚‡“}bS=COEEglqxuuibi}qx—‡´ÌÌÌÕáÕ¨Xq»¡V uáÕÁ—œÅÝè¼li“¨¤—¤¬¨¤¬²¤—‚x¨´²²´´¤›²²²¼Á¼¼Åʼ²²ÁÅÅÁÁ¼ÁÅÁ¼¼ÅÅÌÓÓ—b‡¼´²»´²»Á¼ÁÁÅÅÅÊÊÅÁ»¬Á¼¼ÁÁ¼¼ÁÁÁ¡¤¡›‹xx‹›¡¡œ¡¨¨œ—œ¡››œ¤²¤}]¬²¬¤¡œœ¨²¤›“—œ¡¬¬¤¡¤¤¤¡œœ¡¡¨²²¬—x]bigXX]]]VJX]XS=0#&E]iu}“ug]:6bq›—“g& &XqgVV‚œ‡‹›¤›lbllliXixlqX6#&:C:##X‡“¨¤‚XSugx‚ugSSVJSu}‡“‚x}}‹—x»ÌÌÌÓÝÕ»iV¤²g iÕ¼}0J¤ÕåÊ‹}›¤—‚—¡œ“œ¨¨¡¤»ÅÅÅÅż¬¨¬¼Åż»ÅÅ»²´¼Á¼»»¼»´²¼ÁÊÌÓÌ´‡bx¡¨´ÅŨ¤»¼ÊÅÅÅÊÊÅÊŲ¨»¼ÁÁÅÁ¼¼ÁÁ²¬¨œ““¡¨¬¬¨¬¬¤—“›¤¨²²²»»¡‡—¨²²¬¨¡œ²´¨œ““—›¤²¨››¡¤¤¡›—œ¤¬²¨›uOSXbqx}‚‡‡x‹›‚gE60)CXJVu‡—›‹lVSXbu¨¤bObgq—›g#Si]Vg›œ‚llibgll}“xiq]6):E=##S}‹¡²¬“}O:EVu}b]VJSbg}‹}}}iliu‡‹‹‡uSq¨ÁÊÊÌÙÝʇ))¼g VÁ¡J):xÅå¼}u¡¤›—›“}x}“¡¡¤¬»ÁÁÊÊÁ¼²¡¨»´²²´¼ÁÁ»´´´²²´¼»¬œ¬ÁÅÌ̬—¤¤›¡»Á¬›²¼ÅÊÅÊÊÅÁ¼²¡—¡»ÁÁÁÁÁ¼ÁÁ´¬¨¨¤¨²¬²¬¬¬¬¬¨¡››¡¨²²²´´¤‹‹œ¬¬¤œ››¬²¤œ›œœ›—¡²¬¡›››œ¡“—¡¡¤¨¡‚JESVix‚‹‹‚‡‹xgC0ESXibg‡“››“ugiqqq¬¤EEq““‡‚qE6=VEE—‹bblbXiuq}“lg‚E6JS=#&Six—¨¤}}xJ)=iuSCC6Ou¡—qXS:JOb}x‚i:X›²ÁÊÌÕáÕ¡J]Á‚ E“l=}uX¨è¬Vb¡¨¤¤¡¡¡“““‡‚x—¼ÁÁ»»»´²²¬¨¤œ—¡²»Áż²¤¡¨¨¡¬¼»²´»ÁÓ¨‚œÁÌʨxq¡¨²¬¡²´¼ÁÅÌÌÅ»¤¡²¼ÁÁÁÁÅÅŬ¡¡¨¬¬¨¬¬¬¬¨¨²²¨¤œ¡¨¬¬¬¬¬œ‚u‹¤¤—‹“œ¡œ›¡¨¬¨¤¨´²¨¡—‹—“‹‹“œ›‹VCJJEJXbgiSOX]XCC]lluuu‡}uxqiix}}“¬}#JlqC&COJSJE0=iS0:S]i}‡x‚bgœSEOJ-)Oigi‹›qx‚b0OxX=:-J}›—ubV=#VqVgu‡]#q¬²´ÁÌÕÙÊ›S#&¼›0J&:¨¬lœè¨Sq¤¤¨¨œ—œ¡¤¡—‹l‚´ÅÅÁ¼¼¼»¼»¨œ¤¡¤´ÅÊż´¨¤¬´²´ÊÅ»»´²¬‡¼Ìż¬“‚œ²´»›œœ¤»ÁÁÅÁ¬¤¡œ¨²¼¼»»¼ÁÁÁx}‚‡“—¤¨¨¨¬¬¬¬¬¨¤¡¤¨¬¬¨¡“}i‡œ›““—››—œ¨²²¬¬´´¬¡œ—““—“‹qi}‡‹uilbJCJC00)SSVbqugb‚‹xiOC=CEVil‚¬¬lCgb=)0=JOCEC0S:-Vl}‹‚‡‹Xgœ‚SEC6)Jx‚q‚œ›‹}‡¡»²SS‹bC:-J‡‹b:Xl=&‡´]Ji}b&6›Ê›‚¨ÌÓ»“xJ¬²JVÁ´q¡á´‡¤»¬´»¤‡“¨¬²²²›‹›´ÁÁÁÅÅÓ̼´´»»²´¼»¬²Á²›¤¼ÅÊÊÅÁ»²“ii“¼Å»´²²²¼ÊÅÁ¤¡›“““›—¡²¬´´´´¤¡¨¬¤¨V]]bl‚“¡¬¨¬¬¨¬¬¬¬¨¤¤¤¬¨¤—‡}‡—›œ¡œ››œ¤¡œ¤²¬¤¨´´¨œ—“‹‹‹}x‚‚}‡œ“ui]:#COJl“‡]Sx—x=#&&&=X}²¨‚lSSlqxuE6=C=-i]=S}}lqxquuXulC=6)6g‹xq—²¤›xq¬ÕÊ‚x—bEO=V‹}0]x=#‹¼lOVXX06‚—S:ÓÅ—q‹i0—ÊlCu‡¨u»èÁ¤´»¤¬´¤‹¨¨¡²Á¼œ‚“¨¬¤œ¬ÁÁ¬²ÁÊÌÁ»´¡“¤Á¼¡œ²ÁÅÅż´²›‚¡´¼¼¼ÁÅÌÓÓÌÌÁ²œ‚}‡‡}}“¨»»¼Á»²¡œ¤œ—œuqqil‹¡¤¬¬¬¬¨¬¬²¬¨¤¤¤²²¤—‡‹‹›¤¨¬¤›—›¤¡œ››—‹¨¤—‡}‚‹—““›œ¡›‹‡‚x‡xXOJ6#)CJJuœ‹]]}“l-&&)--O‚²‹u‹g:Jb‡E6CE6O‡}i‡]=JSCJJX‹}V0=0)6g‚l]‡¤œ“XS²Ê´x‹œqXbXl—‚6XxEq´bXO6CJJC)-“ÕŨ¡»¡xExʇS›Ì´C:“ÕîÕ´ÅÁxœ¨»»´»¤¡¼Ì»‹}—›}]i—¤¨´ÊÓÓŲ¬¨¤²Áż²²»¼¼»²¡œ¨²¬¬´¼ÁÅÁÅÌÊÌÓÓ¼¡—¤¬¨¤¨´¼Á»¼Á¼»´´´¬¨¤¨¨¬—‚“¨¤¬¬²¬¨¬¬´¬¤¡¤¨²²¨¡“‡“œ¬²¬¨¨¡¡—“‹‡}qXXluqx‹—¡¨²²²¨›———“bESO:)&))-)0JV]‡¤gl‡“q06:0-:l“¤JEuO-Ol}X=gxgXi‡œ““œ‚6-0#O›‚S&:6&#S‚lSl‹‚u=O¼¤uSx‹lbbi‹¡‡O:g}E g»VSE6=VS&=›ÌÁ¬¤¨“}V]œx}ÊèÕ=:‹»ÕŬÅÅ‹i“¬ÁÊÌÅ»²¼ÓÅœ“›“xq‡“œ¬¼¼¼´¤¬»¼»»»»²²´»´¨“‚l“²Á²›¨¼¼»¬¬¼ÁÁÅʼ¨¬¼Á¼ÁÁ¼ÁÁ´»¼ÁÅÅÅÁÅÁ»´´»¡‡———›¤¬¨¬²²¬¨¤¡¤¬¬¬¤››¤²¬¨¨¬²¬›‹“—›“‚x‚iXi‚“›¡¨²´´œ‡‡—›“]JXbJ))--06CSg¨]b‚‹}JCEC:-&O‚“‡-X6:Vq‡‚x—¤‚x¡¬¡“››x:&6660EœX#:C&=uugiuxlSuÕ—-:bSCCS]‚œ‹gixqC b¬lg=00===]qu‡œ¡œœl0VCE‡Ý÷ÝJ0l¤ÊÁ‡g}“»ÅÌÌÅ»»ÊÁ²¡›¨²¡“—›‚u›»´¬¤‹—¡¡›—¤»Á¤‚›´»´¬¨´»¬¨¨²¬¡¤²²¤¤¬»´¨œ¬¼ÁÊÅÁÅÊŬ²²¨œ›œ‡ll‹¡¤¤¬¬¬¨¨¨œ——¤¨—}“¨²²¬¨¨¬²¤œ¡¨¬¤›—›‡}‡‹‚}—œ¨¨›—¡œ‹]OOVE-&))))6=Eg“¤‡Xi“‹qggbbbbi‚xS)=&-Siu‚‡‚“œgb›¡qg}‚ibg]biCJ—‚C)EC&6iuqu}‚x}¨Õ›)&:6XO]‚}iqq]0g¨xiC&)#6‚œ‡q‚œ¬²xEO):¨åûÝ] =Á¼gu—¬´»»»²²¼»²¤¤¬²¤——›œ›“}gi‡¨œ““‚‚‹“—““›œ¤²¼ÊŤ}¨´»»´»»¨—›¨¤‡}¡¡‡‚œ¬¬œ‹œ²»Á¼¼ÁÅŤ¬¬¬¬¬¬œ“‚}‡—œ¡¡¡¡¡¡—““¤¬“l‹¤²²¨¤¤¤¨¨œ›¤¬¤œ›“‹“›—‹‡—¡¤¡œ¡¨¡‹J)6EC0))&)-6:E]‹—uX‚œ›—‹‹‡‚‡“‹‡i=6:Su}bXqu‚:-ll6-Vx‡‹““‚‹“xb}XCS=66Ogl}“›}x¤»]CiVOigEVi]6u´lb6]²¬uXl“œ›}x‹] )¨Ý÷ÝÅ»¨‹C=—ÁÁ¡‚‚›¤¡œ¤¤¨²»»²¨¡¨´²¬¨¬´»¬¡qx—¤¨¤¨²²²¬¤¤²²¬²»ÁÁ¤‚‡œ²¼Á»»¼´¨¨²²‡uœ¨“¨²²¨¡¬²²»²²»¼Áœ¤¤¬²²²¬¡—‹‡‡“›‹‡“‡œ¤¬²›x‚—›œ¤¤œ›¤¤——œ¡›“ui‹œ¡œœœ›¡¬¬¬²´¡x--]bJ0&&0CECJO]‚‹i]‹›——“››‚‚‡‡xiE:Og}‚]X}—“-CVC#0Xq‚‹—¡qxC&JO0Eiulx›¬¨œ“‚‚‹=00&Sug]lS0i‚SuÅEC-)6)6¼¤uOOgliq—¨‚=áîñ‡u²Êʤ}‹¬ÊÓ²‡›¬¬¤¬¬´»»²¬¡¡²ÁÅʼ´¼Åʼ²“›¨¼ÁÁÊÊÊÊÁ¼Á¼¼²¤¡¨²›qx›´Êż¼ÅÅÁÅÅÁ“x¤»´»¼Á¼»¼ÁÅ´¬¨¨´¼Á—¡¡¤¤¬¬¬œ“‹“‹‹‹‹‚‚›¬´²œ‚‚“““›œ›“—¡œ›“‹‹‡qq“›—›¤¤——œ¨¬²´»²‹E#V}O)##=VXSX]l‹‡gb‡““›¡¡‚VJi}‚—‡qXi}‚uix¡¬œu-SX&6]}}‡œ¨›xu]JC=)6]‚—œœ‹‡¤¬“J-‚b-VXJ]uuul6&g›bx¼OJOl“‚‹»ÊÁ´¡—›¡¡———qS‹ûÝ´J&Ex¬¼¼ÁÅÕÙ»—‡¡»¼Á¼»¼¼´¬¤¤¨²»Ì̼´¼ÅÓÊŲ¨²¼ÊÅÅÊÅÅÁÁÅÊÁ´¨¡›œ¨›lu“¬ÁÁ¼ÅÊÊÅÅÁ»œ‹¬ÁÁ¼ÁÅż¼ÅÊÁ¼²²¼ÁÁ›œ¡œ¡¤¬¬¤œ›››—“““““‹—¤²¬›‚¡¡›—“‹—œ—‡‚‡——›—“—¡¨¤¤¤¬¬¨¨¨›i&6}œ‚C###-SlbXi‡œ‹gb‚‹“›—‹b-#Jq‡›‡bJVbbOSu¡¨‹S:C-0JC&=gux¤ixlC0E-0}¤¡xOi¡œuCJ}V:qx]]iiuuO-6X‚O}¡EEi›¬œÁÌÓÓÅÁÅÌÊœV0]“¼îœl- #Sx¡´ÁÓÕ´‡}¡´»ÊÁ¼Á¼´¨¨¨¬¨¨¼Å»´¼ÅÌÊÓÅ»»ÁÅÅÁÁ´¬´¼ÅÊÁ¨¡¬¬¬»²‚‡›¬´»ÊÌż´²»»»ÁÅÅÁ¼¼Á¼²´ÁÊÌ´¬»ÅÁ“—›¡¤¡¡¨¨¨¨¤¡¡œ›—›œ›——“œ¤›‡›²¨¤œ—““¡¤‚u‚—¤¬´´¡›“—¤¬²²²²²¤›—‡g=]œx6#J‚lJi“¤“li—›—lbXJ0 &V‹œi=-JXC)=l—¡‡b‚‚C&0J:&):JVXb}ui‹b)#E=6]›²›‚›¬gO]b# g›‹g]gOCX]VSSXXg]CEg“¨¬}}¡¨¤¤¬¬¨´¬i#g¼Ó‹OliggC##:g›»Á¤quœ¨´ÅÁÁÁÁÁ´´²¬¬¬´¼»´»ÁÅÁÊÊ»´¼ÁÁÁ»¬¡¬¼ÁÅÁ²¬»ÁÅÓ¼››œ›—œ¬ÅÁ´´´´¼ÊÊÅÊÅÁÁ¼¼»¬¤²ÁŨ¤²¼¼““¡¨¤œ¤¨¬¬¬¨¤¡œœœ¡¤¡“‚‹—››¨²¬¬¨¡œœ¤¡}}›¨¬´´´¬¨œœ¨¬¬¨¬²¬¤œ——‹lgl}]&&#=qV0g—¡—‡‹›“‹l=606x¨qC#=O:Cu“œ“}‚}E#-SS=ESC0E]]Xg‚V60Ji‡¡²´¤œ¬œbObuq& }œ}]biVES]VSVg}‡CCS‹œ¤qV}‹}}‹‡}—¡bV»œ6]œ¡´´‚- C¨²œx‡œ²»ÅÁÁÁÊÊÁÁ¼²¬²²¬¬²»»¼¼ÅÅ´¬»Á¼¼»¬¨»ÁÁÁÅÁ¼¼ÅÓÌ´œ´Ì»›—¡—œ²´´ÁÊÅÁÅÅż»´²¨œ¡¤¡œ¨²¬œ——¡¨¤¡œ¤¬¬¬¨¤¤¡¡¤¤¨¨“‡‹“œ¨²²²²¬¡›—‡‚—¨²¬¬¨¬²²¬¨¤¡œ›¡¤¤¨¨²²¡‡O6E:#)-:CC V“—‹œœ}J0-ESE6)g¡›q)0=&J‚‚xxJ00bugbiE0‚xSSqVJq‚›¬²¬¬¨X6=Xqx‹bJ}}SEblbVVVJ=Ox‹‡E6J0=buq‚¡¤›—œ¤¤´Á›X&&X==“ÌÌÕÕ¬g-O›¬´¨—›¨»»ÅÅÁÁÅÅÁÁ¼²¨¨¨¡¤²»»»¼ÁÁ»¨¬´²²²²»ÁÁÅÁÁÅżÁÅ´¤¤¼Ó̼¨ui‚›¨¨¡´ÅÁÁÅÁ¼¼»´´¨—œ¡œ¡¬²¨¤¤¡¡¤¨¨¡¤¨¬¨¤¤¤¤¤¤¤¤¤›—œ¡œ¡¨¨²²¨œ—‡ql‚œ¬¬¬¬¬¬¬¬¬¨œ›—“›œ¡¨¬²¬›}E-=-)=O]SSx‹¤¡b&#-=XXJC=&E“¤œgSbS:V‚“‚lq›“]=0VXO]xl6-xœu=CJV}‡‹‚x‹“u=)Vlu‡xu‡q]X]XOCJVSCOq}}SEV=):g¡ÅÅ´²»ÅÓÙÙÅ‹0 X²ÝÝáÝÊœlOu¨¼Á²œœ¬´´¼ÁÁÁÁÁ´´¼´¬¬²¬¬¼ÅÁÁ¼Áż´²¨¡œ¨²¼ÅÅÁÅÁÅÅÅÁ²}‚¨»ÁÊÌʲ›“´»²²¨´´»Áż´»Á¼»´²¼Å´´Áż¨¨¤¡œ¤¨¡œ¤¤¤¡¡¤¤¤¤¤¡›—›¡œ‹u‹›¬²¬¨¡u}›¨¨¬¬¬¬¨²¬¨œ“‹‹‹“›œ¤¤›‡}XEE=-##:]‡´b&l—‹l‚¤¡b)6=COV=O¡‹‚—uq‚‡xql‚}XJ=-##Eu}O-]—‡O-)JV]VC)#JuuE:Oglg‡“uqxlJ:=O]]SVbl‡bJSJ&Oœ¼ÅÁ¼ÁÌÙáÝÓ¨lC}¼ÕÕÝÝÙʲ¡¨¼Åʲ“‡›¨¤¬»¼Á¼»²»ÁÁ¼¼Á»»ÁÅÅÅÁÁÁ¼¼»¨¡¨¬²ÁÅÁÅÅÁÅÊʼXx¡¤²ÁÅÊÊÁ´¼Å¼»»»»´¼¼¼»¼ÁÁÁ¼´Å̼´ÁÅÅœ¨¡›—›—“—œ¡¡¡¤¨¨¨¨¨œ““““‹gOl‹œ¨´´¤““¡¬¬¬¬¬¬¬¬²¬¡›—““——¡¤¡—}xxlqqgJ&O‡Á‡)q¡‹l‚œ] #&&0CO6#bu]i‚‚l]Xbig]luigV=)0]q]EOu‡iV6:=:=-)SX6#--6JVX}‡lq}q]VgigXOS]i“uVEC)J“¬ÁÁÁÅÓÙÝÝÕÁ²—ES¬ÁÓÌÕÙÝáÙÓÊÊÊʲ‚b‡¨¡¨²´²´²»ÅÅÊÊÁ»²´Á¼¼ÁÁ¼¼¼Á»¬¬²²´ÅÊÅÁÅÅÊÌŤ‡¤¬¬´´¼ÅÊÊÅ»²¨“¨Å¼¼¼Á¼»ÁÅÁÁż²»Á¼²¨¨´—œ—‹‹‹—›œ¤¨¨²²²¬¤¡œœ—‡‚‹u‡¤¬›‡¨¼²¬¤¨¨¬´²´¨“—œ¤¬¬¤œœ¬²²¨‚b‡›¡¡—xVCO]xXC‡¤xXx›qCCJ6&&-)00-#&}x)#6XgE&6SJ:EVSXb=)&0EVVJEb}}‡S=:::6)0COJ--:6060=XlbilV]u}xbOJVXb‡‚uVO6S›¬ÁÅÅÅÌÕÙÝÙÓÌÅœ›ÊÌÓÌÕÕÙááÝÕÊÊŬuJ}¼²»´²¡¤¬²»»ÁÅÁ¬¨´»²²²¬¬¼ÁÊÅ»¼¼²²»ÁÅÅÅÊÓÅ´—“ÅÁ»ÁÅÅÅÊż´´›lœÊÁ¼´´»»¼ÁÁÊÌÁ²´»¼²—“¡¤¤—‹—››“—œ¡¤¨¨¨¨¬¬²²¬¤œ›¡¨¤uu“‡‹¬´²¬¡›œ¤¬¨¬›‹“¡¤¬²²¤¡¬²²²¤ux‡‡‚xlgV-Ju}J6g‹qXq‹i6)----)6xl)#-XuO&-=:0-6-6C0&)0:==CXqig‚gSJS]XOXliS=06::0)=EV]]V:OggibSS]VO]q‚quV6#g¬¼ÁÅÅÁÅÌÕÝáÝÕÓÌÅÓÌÓÌÕÙÕÕÙáÕ¼¼Ê²iC‡ÊÅÓÅ´¡¨¨—¡´¼»²´Å¼¨¡¡œ¡ÁÊÊÌÊÌÌ»¨¤¨´ÁÅÅÁ¬“—¡²¨¡¨¨²¼Ê¼œ¡Å´¡¬²»¼´´´»´´ÁÊÅÁ¼»´»´¤¡¬¬¬¡—œ¬¬¤¤¡¤¨¨¨¤¨¬¨¡¡œ››œ¨¬²¬œœ›‹qbu——““‹—¤¬¨¡¡œ¡¨¬²²²¡œ¤¨´Å¼‹0=SXiquxxi]EJJ)O}xixœ“=&00-&#&0=J:&6JVO=EE0-0:JJSJ=:CE=)=q‚]EXgllq‚xbi}iJ=:6=EC:J=:CJE0:CE]gVOVVE=Oq‡“ubO}ÁÌÊÊÌÊÊÌÌÕÝÙÓÓÓÌÓÌÊÌÕÙÕÓÕÝ̤¤¼¬l]œÅÊÌÅż»²›‡œ»»¨¨¼ÊÁ´²²²»ÁÁÅÁ¼ÁÅ»¤›œ¨²²¤¤“}¤´¬›—¤¤¨´Á²—Êʼ´›¡´²²²¬¨¬»´²»ÁÁ´´´²´»¨¬¤œœ¨²¨¬¨¨¨¬¨¨¨¨¤—‹‹—œ¤¬¬²²¨²²›}bXx‹}}}‹›¤¬¨¡¤¨¬²´´²´œ—¡´Ê¼‹-0VXlu}——›]#V‹xbXl}=#00&-VgXS-&0=EECJO6&-Eg]iu]:=XV-6u}XEJl‚uuugOXgE-6:6:JO=C:))==606CSS=06EJ=Cb}‚x‚gÌÓÌÓÕÕÓÌÌÕÕÕÓÌÓÕÓÓÌÅÓÙÕÕÙåÁ“‹¨¤‚‚¨»»²´¼ÊÊż»»¼´¬´ÁÅÅÁÊÌÊÊÊż²¤¬»¼²»²›‹—œ¤¡¡²´»¬¤»¼¬¨¬¡¡ÊÌÅ»›œ¤¤¤¤¤¤¡¡¤¨²Áż»»´´»¨¨¡—“œ¤¡¨¤¤¨¬¤¡¤¤›‡‚‹œ¨¨¨²¬¨¨´²œ‡gX‚—“—¡¤¡¡¡¤¬²²¬¨¨¤‹qu‡¡²“]E]qilux‚“›S =}›qO=EJ0)-)&Cbu}‡}6#&6JOJObgJ)V‡bi}60XV-6qqV]lx}bgbE-OgS:)-00CE::-#)JJC:=JE-)6::O]SSXJV}b‹ÌÊÌÓÕÙÕÌÓÕÕÕÓÌÓÕÕÕÊÅÌÕÙÙáèÊ¡¡¬¬—}—²¬¤¤²ÅÊÅÅÅ»´´»ÅÊÊÁ¼ÁÅÁÅÊÅÁ¬œ²»»»Á´“‹¡¨»´¬¬¬Á¼¤´Á»²´¤¡ÊÊÁ»¡¨¨¨¤¤¨¨¡““¤²ÁÅÅÅÁ¼´»¨¨œ——›œœ¡››œ¡¡——}u‡›œ—›¤¤¡¤¬¨›‚ib¤¤¡››œ›““—œ¡›“““‹‚qgi‡‹]C]u}i]gilu‡V6=Ei›œi6-6)))##El}lbql#)C]]OSl‡uSq›bS‡VES=#6lu]u‡‚lViiX=Su‡g0#-)0:6-&)JxqJ=JE0-lxVXlVC):uX‡ÊÊÌÕÕÓÓÕÓÓÙÙÓÌÓÌÕÓÌÊÊÕÙÙáè̲¼Á´“i}´´´¨¨´²²²´¨¤¨¬´¼Å»¨´Á²¬´ÁÁ¨œ¡“›¤¤¡¤¨²´Åż´´ÅÅ»»ÁÅÊŬ‹—ÅÁ²¬¨»¼´´´»»¨›“—œ²»¼ÁÅÁ¼¼¤¨¡œ¡¡¡›—‡‡“œ›‡u‚‹}u‚‡}‹—›››¡¡›‡ql¨¨¡—‡}‚‚}}}}qq}‡“‡lbqlJCgxxbV]ggl}}lblqgx—“]6EJ==0Equ]JEVV-:]igS66Xuxl‚—]:bxqliJ0J}‡u}‡lSVilugObV#&)0=):xœ‹VVbS6-]œ¨‚b]E:&O}b“ÌÓÓÕÓÓÕÕÌÌÙÝÕÌÌÕÕÌÌÌÌÕÓÓÙáÌ»ÁÅ´›‚‚¬¼¼´¨¤¡¤¨¬²¨¡¡¬¼Á´¬²²¡—¨ÅÁ²¬¤›œ—‹¤¬¬´ÅÌÁ´»ÅÊż¼ÊÓÌ»——»¼²¬²¼Á¼ÁÁÅÁ¼´¤‡‚œ¡¤´ÁÁÅŤ¤¡¤¨¨¨œ—}xœ—‡}‡‹‡‹“‹‚››““›œ¡—}l¨œ‚}uq‡‹‡‚}ulu‹“¡¡“‚x}lJ=bqqliluqqqix‹“ggx}bVqxu]=&)]‚lOEOXXSixS:)0E]ii}‡S)J]bq‚iOb‹‚lxxE-=JXlqE6l“i0-=JC)=}›xVq‡iOX‚¬¤uJ===)#}V—ÕÓÕÕÙÙÙÕÓÌÕÙÝÙÝÝÝÕÓÓÕÕÌÅÓÙÓÅÅÁ»´¬“‹²ÁÅÅ»²²´´Á¼²²»ÁÅÁ´²¨¡›¬ÌÌÁÁ¼´¤“‚xx‚‹“¤²¨¡¨»Åż¼ÅÌÊ´¤¤»ÁÁ¼¼¼¼¼ÅÅÅÅÅż¡—¤œ“¡»ÅÊÊ¡¤¤¤¨¨¨¤œ“›¤¡œœ¡¡œ—‹—œœ¡¤¤œ›œ¡¨¡‹x“¨—‡uu}‡—œ›———“—¡œ¡œ“›œœ‡O0S]bq}‚‡‡‡xl}“—“XEVbiq‡››uSE:VlgVXgg]Vu—g::OX]]bq}q=)V]Xgub=S}lVgl:0SX]C)OqV6JbbXJC6SqœxOl‡uigq‹uE06OO6=E‹ÓÌÕÝááÝÙÕÓÙÝÝáÝáåÙÓÝÙÕÓÊÕáÕÊÁ¼¼Å¼›x›¼ÅÌÁż¼ÁÅʼ»»¼ÁÁ»¬¡¬´»ÅÊÊÊ´¨›—“‚ux‡“›¡¡¡¬´¼¼ÁÊÊ»¬¤¤²¼ÊÊÁ¼»ÁÊÅÅÅÅÊÅÁ¼Ê»““¬¼ÅÅ“›¡¡¤¡¡¡¤¡¤¤¤¤¤¡¡¤œ‹}“¤¨¬²²¬¨¨¬¬¨›—œ‹‡}‡“œ¤¤œœ›œ¨¬¤“““¤´²X:OC=Vx‚‚‹‹‚‹“—XECJgu}“›‚l]JJV]X]lg]Sl—g:C]x‚ql}xS&:ilibVC&:lgEOX=#&=iibSESV6-g‡‡q‹¡}‚»¨u]glgOO]VECCXlE=}‡]›ÅÁÌÝåáÝÝÝáåÕ²¨ÅÓáÓÌÙÙÌÌÌÙåÙÊ»¨¬»Á´›“²¼ÌÊ»ÁÊÅÊÊż»¼Á»¨¤²¨¡¤¤¬¬¤¤››²»¬¡œ¨²¬²´²²¬»¼ÁÁ¼¬¡¡¡¨»Åʼ¼»ÁÅÁÁÁÁÅÅÅÅÌʤ‹—›œ}‡“““œ¡¡œ¡œ›‡‚‡‹‚ul‡›¡¨²²²¬¬¨¤¤¡œ“xgx‡“œ¤¨¨¤¡œ¨œ‡‡“›¤²¬bJS:#=ilXXq‚‚‚}‹bVOObql}“‹iVJJVgggqxubi‹iJCEb‚‡}xqO-E]liXOC6V‚uOJbEEug]u‹‹‹“‚E6qœ—‡l‡›i}¤¤‹]EJC-:]ig]ECXE6l}lœ¼¼ÊÙáááèîèÝœ6)‚¡ÊÓ¼ÓÝÕÓÓÙáÙÌ´¡¤»Êʼœi‡¼¼Á´ÁÊÅÊÌʼ´»´¤—››‚‚—›¡œ¤¬¬¬ÁÊż¼ÅÊÁ²´»²¬²´´²²¤“—¡¤´Åż»¼ÁÅÁÁÁÁÁÁÅÁÅ´¨xgXSV‡}‹‡x}‹“›››——‚]uxuux}u}“œ¤¨¤œ›““›¤¤‚VSq‡—œ¨¬²¬¤“‹“¡œ—›¤¤¡¤¤‹]ESJ:Oqb-#CbgOO‚‹igggluiq—‡O=JOXu}lu‹‡xgbgX=0Cb}‡‹‚xlXCE]XJCJl—‡]X]Ol´u#g—œ¨»¡S6u›lOO=6]]blV--=J]llii]S)#Xl]²²ÅÝáÙÓÕ̲}6 g»ÊÁÊÙÙÕÓÙÝÙÊ»¬²»ÅÊÊ»—i¤—¤²¼´´´²¨¤¤›“—¡—‚‹œ¡¤¤¤¨¨²¼ÊÊżÅ̼¤¨²²¬¨¨¤¨»¤‡‹¤¨´Åż»¼¼¼ÁÁÁÁÁÁÅż¬¬¡‹}}œ›œ›“—œœ¡›““‹‚—œ››“‡uq‹›œ—‚‚‹—¡¬¡ul}‡“›¡¨¬¬¤¡œ““—œ¡¬²¨¡››‡gSJJ]XgV0)CVJ6}}]]q}‚}ll}]JEOXlqXS]l‹VCgqS:=O]u‡‚‚‡}O:biJ60SxuiiSOx´qi“¬—E=‹—qS0OJ) )iqu‡x]VXVg››qX]iœ¼¼ÅÓ̼¨¡‚O) SÅÊÊÓÕÝÝÙÙáÕÁ´¬¤¨´»´²¤lg‡‡—¡¨¤¤—‚u‚“œ¬²¤¤¤¤¤¨¨¨¡¤¬¼Êʼ²»Å¼¬¬´»²¤¤¤²Ê¬‚‹¬¼ÁÅÅÁ»´»»¼ÁÁÁÁÁÅÅÅÁÅÁÁ»»Á¨¨¨¬¨¬²²¨“‡uq‡›¤²²¨¤›œ—“——u]l‚¤¬¤u‡¬¨¤œ›œ¤¡““—“—œ¤¬¬¤›“‚u]C=gS-0=:=C&SlX:Oq‚xlbXV]lO=COib0)J‹V-g‚‚qE0CVuuu‚‹qVbiX6)OOOE&E}œqJux‚¡‡6=‹u=0=igJ&q“‡“¨›g=60]´¬=0ubE›ÕÕ²}“X-)-&:›¼ÝÕÕÕÙááå̬¨¬¤¤¬¬¬¬¨‚i‚‚u}—›—‡uu‡—¤¬´»»¼»¬¡¬´²¬¨¬»ÁÅ»¤¬¼´¬¼Åʼ¬»»ÁÌ´›¡»ÊÊÅÊÊÅ»´²»¼ÅÅÅÅÅÊÌÓ̼»ÁÅʨ¡¨¤¤¬¬¬¨›‡qq‹œ¤¨¨¨¨¨²œ—œ“ql‚›—‡}‡¡´¬¨›‹“¡œ““——›œœ¤¨¨¤›œ›‹uV6EVVE:-):E&bqO=g‡‚gJJE=OC=Ogb:&OxSEi}“—g-&Jlux}‚‚]SXXC:VbOOJ#q›iEXlœ¡xCV‡V)b‹›lq¤¡]]‡}]OE:V›qJSxOS²ÝÝ¡:=i=-:=6C‹ÓÕÓÓÕáåèʤ¤²²¨¤¨»¼»œ‚‡‚bu“—“‹œ¤¬²¬¨´ÁÁ¼´¨´»»¼²¬¬»Á»¨¬²¤¡¼ÊÅÁ»»ÁÅÌʬœ¬ÊÌÊÊÅÊ̲œ¬¼ÁÁÁÅÌż¤—¡¬ÁÅŤ¤¤¡¡¤¤¨¨¡—““œ¨¨¨¨¨¨¨¨¡—“›¡¤“‹“gSi“œ¬¨¨¬¤¡¡¡¡¤¡¡¤¨¡“—¨¨¤¨¬¨‹X==:)OlJ#EVSE}—xi}‹uO)&b}xg]ilEJxVEq}‡›¡xC=S]}}‚‹qVSESxxbg‚i#-CEXOOi‡iSugEC#i—²¼¼Ù²X&-CEOVEJ]E6JVbSg²Ùá›6-0)&)6=CC=0:“ÊÌÌÕÙåè̬¡¬²¨¤²»»»²“—›}›¬¨¡œ¨»»´´²¨´ÁÁ¼´²´²´»»´´»¼¼´²²¨¡²¼¼´²²´ÁÌ̲‚‡´ÅÁ»´»Ì»¤´¼¼»²»Å¼œl‚¡¨´»¼¤¤¤¡¡¤¤¤¨¡œœœ¤¬¬¬¨¨¨¨¨¤¡››œœ›—œbV}¡¤²¬¬¨¨¨¬¨¤¤¨¬¬¬¡“—¨¨¡¬¬¤u=0C#:lX:C]iiu››‡iibE0)J¬¤‹}xul]C6OuOJx‡‚¡“b:&-bixqg=#Cu—œqq—›g= #VXEb}q]i¡—xO=b—»Õá÷Áb&):CX]EEE)0S]gV]¬ÕÌ¡bS0&-:=CCC==-6¤ÓÌÙÕáèÓ²¤¨¨¤¬»¼²²´¡¤²¡²¼´²¬»Á¼»ÁÁ¼¼ÁÁ»´´²¨¬»ÁÁ¼´²²´²¬²¬¤²¼´¨œ¡´ÅÌ¡C)‡¨—“u¨´´ÁÁ»²¬¤œ›œ›´²¤¡¡¬¤¤¤¤¡¤¤¤¨¨¡——¡¨¨¨¨¨¨¨¨¨¡—¤¬‚u¤¨¬¤œ—¡¤¤¨¬²´¬¤¤œ¡¤œ›¨¬›i0&OJSq‹uXXibVb‚xVXib=)XÙ²}XVJSgbV]llg‚‚x}‚‚i:0JEEOS#-g“¬¡‚}“¤²¬—VJCJVgi60l‹“xE0Jx¤Ùáî‡-):J]ugE:06VlxlXl²Õ´}C=-&06:==C=C=# ‡ÁÌÙÕÙáÓ¼²¬²¬´¼Á²¨´¨¨²¡¬»²¬´»´´»ÅÅÅÅʼ¨¨»´¨¬»ÅÅÁ¬¤¨¬¬¬²¨œ¤»´¤¡›²ÅÅ›E&q‚‹œ‹—¤²¼¼´²¨—u‚²¼Ê¼´¬¨²¤¤¨¤¤¡¤¤¬¬¨ql‹¡¤¨¨¨¨¨¨¨¨—‚}¨²“‡—¤¤¡œ—‹—¡¡œ¡¤¨¨¤¤¤¨¨¡›“¡¨—])-Xu‚}‡bCJ]O-0buqXgub=) gÙ²O##)=]XSXx‡lqxuigl‚}igqi:CgVqœ¡}Vg‹›¤¨›u]:OJJS6Jx‚qlV))Cl—ÊÕÕ]CSXl}gEC:Ci‡}bS‚»Ó›=066======CC6X²ÌÕÕÕÕÓÁ´´»´´¼Á´´¼¬œœ›¡¤¤¬¼¼¬²¼ÁÅÅÅżœœ¼Á»´¼ÁÁ¼»´»»´´´²œ—¨¤²´²´´¨œ›““›»Á¼»¬‹‹¨²¬¨—‡‹›¼ÁÊż´²²¤¨¤¤¤¤¨¨¬¬¨‡XV‡›œ¤¨¨¤¨¨¬¨œ‡u‚¡¨›“œ¤¤¡¡¤œœœ›“‹—¡¤¨¬¬¤œ—“¡¬—]##b“X0�EE0:bqqgXJ=:) bÕ¬E6OXguqq}“}]gggiilu‚‹›—xu‹œ¤u=&#-EOSJ=E:)SVSgq‡—qS0=}œÅÓÙ}0Vllx}iSE:=Vqi=0‡´ÁœE#Jq]==CC===C==) )›ÌÊÓÓÓʼ²²´´´ÁÁ»¼Å¬“““———¨¼¼²´ÁÁÁÅÅÁ»¨¬ÁÅÁ¼»¼ÁÅÁÁ¼»¬¬´´¤›¡¬¼¼»²¤›¨ÁÁ¼¼ÊÌÊÌÅ“l¤¨“q‚¤¤´´Åż²¤¤¤¤¤¤¡¤¬¬¨¡“qbq—›¡¨¨¨¨¬¬¨¨›}x—œ››¡¤¤¨¬²¬¡—“‡xœ¡¤¤¡œ——“¤¬“V#&q“‡J)=CCJg}}gJ06C0 bÓ“Si‡xqqx‚‚‹lXlgillqx‡—“‹“››——“V#&&Obg‚›¡œ‡gJ-#C¤ÅÕå‡:bxux}lV=-6=SO#&x¬»¬‡q›»u60==:=====)}ÅÅÊÓÕÊ»¨¤¬²´ÁÁ¼ÁÁ¨“›—“‹‹—¨²²¼ÅÅÁÁÁ¼¼»¼ÅÊÊÁ²´¼Å¼´¬¤››¬´²¨¨´Á»²œ›²´´´²»ÁÅÌÌ»‹u‡“x]u¨¨¬²ÅÊ´¨œ›¤¤œ——›œ›“‹}x‡—œ››œ¡¨¨¨¨¨¨²¨“}‹‚‡“›¡¨¬¬¨œ››œ—‹—¤¡›“““““qVEX}uX=-:CCJXbux]CCOJ-0g¨]J}‡X0-6C:VSCbbilqxx}‚g=Sl‡‡iqxO#&-)066-&:VOSl}‹‡lVEC6)6}—´ÌÝq6guu}}lS:-:06-O›»´»¼ÌÓu&)====::=:&C‡ÊÓÌÙÝÓ¼¬¨¨¬»ÅÁÁÁ¼¨›¨¤œ››—“›¤²¼ÊÊÁ¼Á¼¼ÁÊÅÁ´¡¤²´²¬²´²¨¬²¬´¼¼Ê´œ‹œ¨¨¨¤¡²ÁÅÁÅÁ¬“—‡lu¤²ÁÅÊŲ¡›—¨¡xx‡‚ll}‹œ¤¨¨¡››œ¡¨¤¤¨¨¬¬›‡xugi}›¤¨¤››œ¤¨¡›¡¨œ—‹‹“——xlbgq‚‚b6-&CVOCJXbb]SJXbJ#=xx-J‚i) SV&:]luui]VJ)&V}bl}V6:=6=SbV=S}ig‡lVJ:)):E:##Sq›´ÁqOgbi}xbO:6=0)# E¡»»¼ÊÙ݇)#:CC=:=:0&l¬ÕÝÙÝáÕÁ´²¬´ÁÁÁÅÁ´¨œ²²¨¬²¨xiu‹¨¼ÅÅÁ¼¼ÅÁż¬“‚‡›²ÅÌÅ´¬¤¨¬´´Áœ‡“¡²»»´´´Áż¬¨´´´´´²¡“—²ÌÌÁœ›¡œ—¨¡—‡‹}i}—¡¨¨¨¬¡——›¡¤¤¤¡¡¤œ“}ii]b}“œ¤¨¤——¡¨¤œœ¨¤œœ¡¡œ››—qg}‚qlxi6&-SbV=:ViXJJVluV#b»Áu&XuJ=XXi—‹&)i‹g:--&J‡xxuSEJE:CXgXJSg]xœx:##=EJVSOOSVbu‚gXXJi‚qSC66:666)6‡¼ÅŨ‹²Õ¬X&-=CC==6&&S»Óʼ¼¼´´²´´»¼´²¼Á²œ¡»²¤¬¬¬lgx›»ÅÁ¼ÁÁÅ´²´¨›‡x‚“¤¼ÌÌŬ¡—“œ¤œ¤‚}¡»ÁÅÁÁÁÅÊÁ»œ›´»ÁÊÊż¤‹—»´¤‚—²¨¡¡¡¡¨¬¤›—œ¬¬¨¤¤¨¡—“œ¤¤¤›—‹‡u]giu“¤¤¤¤¤¤¡¤œ—“¡¤——œ¨²¨œ}u}¤—XC]gE&:XbV=6]}bVXgxxS#Xż}0X]00‚²»ÌÓœ&J‡¨›J#&& O‡‚}]EOJ=CO]bXOCJ]‡›O :gS=g‚‡—x]C=EJJCO}g:-6660=SOqÁÌÓÓ›6g²»‹=#6=CC:-=}‹œ¡‹u}}‚—¨´¼¼´œ“¬¼¨—œ´²¨¬²²²²´²¬´ÁÁ¼¼¼¤‹“¤¨²²¡œ¨´´´²²¤›—¬¤“—‚‚¡¬´»´²²»Ê¼²¡¬¼ÁÁÊż²¨“x‡‹‡¬Á´¬¡¡¨²¬œ—¡¬¨¨¨¨¨¨œ›““œ¤¤¨›“‡‡‹‡ql]u›¨¤¨¤¨¨¬¤›“——‹—¡¨¡‹gVx—²œgJSO:-#=S]gSJqqqqgg]C:}iE0O:J¡ÓÝݼq)q‚›}0#)-)&6X‡‚JCJ:0EXbiV=JX‚‚i#VxO&b“›¨‡iE:EC66X‹]6-6:600:6i¼²Á»:Cu‹u=&::==00=b“‹‚ui‹“—¡¨²¼Á¬œ›»Á¡—¬²¬¬¼ÅÁÁÌÓÊ»´»¬¬²¬¡œœ¨»¼Å¼»»»´œ“›¤¤œ¨»²¤¨—‚—¤¬²²¬¨²Å¼²´¼ÁÁÅÅÁ»²²¡x]q}œ´¼´¬¤¨¨²¤“‹›œ¤¨¨¤¨¨¤¨›—œ¤¤¨¨¡‹—“‡}bq—¤¤¨¨¬²¬¡œ›“‹‹‡‹“›—‡gE:“¨¬œ‚i]J0-#-:bxiXu‹‹V--)# )E#&b¬ÙáÊ}:=iS]S-#&&--06:‡xECC-0S]buO0l‚‹g0Cqx=X“—“]S=COC60OquX=:==60&C—x—‚qxbSJ=--:::0=—¤¼´´ÅÅÅÓÝÕʤœ´¼´´´ÁÅ¡—´¬¤¬´´»¼ÅÌÅ»²¨œ¡¬¬²»´¼ÅÊÌÌÊÁ»´¨¡¤²»»´´»´¼¨}¨´´´´²²»»»¬²»¼ÅÊÅÅÁ´›}x——œ¤¤¤¡¡¨¬¬—‚}›¡¤¨¨¨¨¨¬œ—›¤¤¨¬›‚‡—œ‹gb‚œ¨¨¨¤¬²²¤¡¡—‚}‚‚}iXVu¨´¬}]XXE::##0O]SEg‡‚“S##0E&#X¡ÓÝÊx&)=0=EJC-##-EV6b]CJC6EXVg}O:l}lgS=]b]u}V&#V}}]0)00::00=VibE:=:6:0J‡q›‚Vq“]-&0::=) C¬ÌÌÓÕÝáÝáåáÌ¡“¨»²²´¼¼¤›¬¨¡œ›¡¨´ÁÅÁ¼´¨œ¡¬²´»»¼Á¼Åż»²²´´´´´´¡œ²´¼´¡¬²²¬¤—¡´¼——¬´¼ÁÁÁÁ¤}‹²²¬œ›—“‹¤¨“}x‡›¤¡¨¬¬¨¨¬¨¡““œ¨¬¬¡‡‡›¤“ll¨²¬¤œ››››—‡lXq‚giliu“—¡²»œV)0E:0:0-)###-X‚q‚‹O##Jli-E—ÅÝݲO=buuxg=&]iCE‹‡C-VSS]]Vu‚OEXSJ‹¬¡¨¬¤—i):OVS0#))&-:60EglC):=CV]OS²¬ÊÁl0l“g0-::=:& =¬ÌÕÓÕÝÙÌÓÝÙÌ´¨¬¬¤¨´¼Å²›œ¤¨¨¬¬²´¼»»¼»¤—œ¬¬²¨²²¬¬¬²´¬¨´»´¨¤¡œœ²»ÅŲ¡››œ¡›}i—´´œ›¬´»²¡››}¤¼¼»¨¡¤¨¤u¡¡li}“¤¬œ¤¨¨¤¨¨¨›““œ¬²¬¤—›¤¨—}i‹¬¬¤œ‡x}‚qbglxqggq¤¤¨²¬‡E)CS6#000::=:6Squ‚J)=C-&#)q¡‹&=“ÁÌÙ¼Xq›—‹‡uS6)-OE6l—g:6Xgiugb‡‚JS=)X—»¬¨´´¡V:bbXE:&&0)#0C-&6S]:&-6Olqb}²ÊÅÙÊ‚-S6)06::6#J¬ÅÝÓÕÙÕÊÊÕÕʼ¬¨¡œ¤²»Ê»œ‹—»¼ÅÁÁ»²²»Á»œ¨²²¬¤¤¨›“¤´¼²¨²»´²¤¤¬²¼ÁÊÌÌÁ¬›››‹gg¨»´´²´²¬›lXq¤´´ÁÁ´¬²»´i›Xg}“œœ“—›—““œ¡“‹‹“›œœ›—›¡œ‚l‚œœ“‹ulgiqux}‹›¤“‹—¡¨¤²¬‚E-EX6#=]]XX]XVi‹‡}‚“—}V& 0g‹‹C&:}›¡¼¼]“²‡iuxibVJCCO““0)-EVgqiu—‚VV#E¡“¡œ—¤¼²XCu‚‚lbSC06JXS:0066:=:6CO:-‚´Á¼ÊÓ“6# O»ÅÕÓÌÓÓÓÌÓÊÁ¼¬œ¡²²²´¼¼›Ox»ÁÓÅÅ´²²´¼»¤“›´»²¬¬¬¬›‹¤¼Å¼´»Á¼»´»Á¼ÁÁÁÅÊÁ¼´²¨“qx¨¬¨¨¡—“‚OJ‡œ¡¬¨´Á´¬´²¤g‡qJg}‹“‹‹}qq‹‡‚}‚‚‚‡‹‹‚qlx‡uqlqxu}—“œ¬œœœ›—›¡¨²²‡C#0C)6XlV=Eguil‡›¡¡¤¬¤q-:=0VVE)O]l›¤qC“¡bJ]lx‚xqu}‚“x0#&&6O]}œ‹gJ)u²“œ¨œ¡¼´]:lxxlxxV=Eg‡g00CC66C=66)#x²»¬ÁÓʤ‚V60# b¼ÁÅÊÊÅÓÕÌÓʼ´´¨¨»¼»¼ÁÁ¨Xi´»Á»´²¬¬¨²²¡“—²²¨¬²»´¨œ²¼Á¼»¼Å¼´´¼Á´¬²¬¬¬¬²²²¬›xu‡‡—›“li}uVb“—‡—¡¤¨¨¬¼´¡]gS=]u‹“‡qbg‚‡‚‚‚‚}}x}‚}xi]]ix‡q]]q‡—‹‹œ¤¡—œ¨¨¨¨œ‹œ¬²¬‚=#-0CSq‚b=--Egbq›—‚Xlœ¨‡ggxb#quC -Vibi}xJ6Ol‚—‹}}uX-06))#CxœiEE“´“›´œ—¬—E6]u}iu‡i==b}&&CJC==00JJ&:›»»²»ÕÝÕÅ»¨E=l‡‚²ÌʼÁÁÅÌÁ¼Ìʬ¤¬¬²´»¼ÁÊ̼‹u›²²¤¤¤¨¤¤¤¨—xq—¤¤¬¬´²¬²»¼¼»»»¼¼¬¨²»¨¡¡œ›œœ›“‚‡‹qiu‡“¡›‡œ¨}“¨¤›—œœœ›¡²¬¤S60:Ogx‡‹‹‹xux}‹—““—‹‡uuuqgVJSl}‡q]i‹›¤—“œ¨¡œ¤¨¨¬¨¡“œ¨²¬}C&CSlu‚]-#&6=Ei‚iJE‚‹ul}“}EEX0#6VXSbu}i&&Jglx‡xVC:-#-:0-#6JOV}‚SJu“¡‡xulxq6)C]lVVb]C:O‡‡=-:===:00JX=E¤´¼»»ÌÌÕÕÓ̼‡l‹¨ÁÅÅÓÙÓÊÅÅÓÓ²—¨´¤¡¨²¬¨¨¬¼ÁÁÁ¡}qœ¬¨¬¬¬¬¨¤¡›}l‡›¤¨¨²¤¨»ÁÁÁ¼Á¼»»´¨¤²¬¬²¬¨¨›‹g]‚›‹“›—“——²Ê»›“¡¬¨¨¨¬‹}›››X==SSSVguuul}‹—‹‹‡‚xigg]XVVVix}ux¡¤¤›““—›œ¤¨¨¬¬¨¡œ¡¤²¡u=&Cgu}‚œ‚S)&-66=gq0#:SSS]lx}uq‚OObu‡}]XgO:&CJEESE)-JJ6#&))=VJ:CJ:V—‚qVOJ:E:-)&#-:CJJEE:6‚‹O=06:::66=E--lœÊ»´»¼ÊÌÓÌż»¼ÊÕÌÁÊÌÅÊÙÙÝÅu=J‚—¨´²›‚x‹¨´¡¡¨X‹¬²¼¼¼¼²¤¤¤¡—‚¨²´´´»ÁÅÁ»¼Á¼¼ÁÁ´¨²»ÁÊÁ²¨›—›¨»¼¨œ›—›œ¡»Á²¡¡¨²²²²²›“¡¡¤¤œqVX‡xiVOXuux}‚‚ugXbgq‚x]bVV]gggbggx—¨¬¤œœ—‹‹“œ¡¨¨¨¨¬¬¨¤¡¨›g:)El}}}›‡O-&0JSSgl:-6=:=VlgXg‚qxlEXq}}S::&#CEC0&--&CqlO0#&6CECC=:]“qO&ggSJJOOOb‚‹‚V6##l‚O--::::6660 )‡Ê¼´´»ÁÅÊÊÅÅÊÊÓʤ‡—¡—´Ùż“:-=l›´¼²›‚}¨¼¡—¤—u—²¼ÊÊÊÊÁ´²²´¬‹‡´¼ÅÊÊÌÊʼ¨¤´¼ÅÊÊÅÁÁ¼Å´²“}œ²ÁÌÓÊ»œu“´¨²»´¤¬¼ÅÅÁ´²²²´¼¼¼¼¬lbu—“xbXlxxulg]]bl}“›‹qbXgilli]VXq‹—“›œ—“—œ¤¨¤¡œ¡¡¡¡¡¨—X0&6ObbXu‚bC0=]lg]gbE=C:6OliJO}}xlVX]bib=EilbJ&-))Ox‡—V)0CS]VCO‡xO&6uq0=q‚‹—²ÓÓ¬——l:-:JSJ6-::::::6-#‡Å¼»¼¼ÁÊÓÌÊÊÌÕÝ»l6=E6q¤xE0=u“²ÅÁ²¨¨¬²¼Ê´œ——¡¨»ÊÊÌÌÌʼ»»¼¼¬œ´ÁÁÅÁ¼Áż¬¤²¼ÁÅÊÊÊŲ¡—‚‡²ÅÊÓÌÁ¬›‚—¤¡¬´¤—¤»ÁÁ»¤œ¡¬´¼¼Á¼»il}‹›¤œ‡}}‡xqx‹—››¡¤¨¡qx}xux}uxlVXgigiqœ¡¡¤¤¨¬œ—‹‹‹“›¨—J)#)6CC6=q‚bJSq‚uXg}E-6-#0VgE=x‚}uX:CX]J# &:Xq}gJ-#)&#u¨Ó‡#JlqbECu‚b6J‚i6l‚“¤¼áÙ}:OO6JqubSE-:=:::6:6):g—¼»Á»¼ÊÌÙÕÓÓÕÙáÁl&& C]0O›²Åʼ¬¬»ÅÌÌ̼›‡œÅ´ÁÌÊÅÊÅÁ¼¼ÁÊÌÊÁ»´¬¬¨¤²ÁÁ»²»Á¼»»»´¬“‡›²²¼ÅÅÊʼ¡—¤´b}“—‚x‹—œ¤¤œ‡l¤²¼´¬¬}}x}—¨¤—‡‚‹‡‡›¨¬¨¬²¬¡u‚‡‚xuxx}ubXVOOVOq“—›¤¬¬¤œ—‚‚}‚‡“¨›S=-)6CJ0b›}]Xu‚X]uJ60#)EVC6q‹‚‡V&Eqlb=#:XqiiXE:---#b¨î—&##)]}xl]=:]VCX‡l00-V}œÓÁJ&#J¡¨—bO-)-00==6]¤¬»»¼¼ÁÊÌÙÝÙÙÙÙáÙ¤b=)XS# EXu¤¼ÊÅ´¤¨´ÅÌÊÁ¨—œ»Õ¼¼ÊÁ´´²²»ÁÊÌÓÌʼ²¤¨¨¬»ÊÅ»»Åʼ²¨¨›“¬¼ÌÊÅÌÌ̼œ“œ´Ê‡-ix}xu}}‚—¬²b“¨»Å¬œœ—‚u¡¤œ“‚‹‹‹‹“¡¨¨¨²¬¡‡i}‡uqqu}}qgllgSE-Sx›¡¨¤¡œ—‹‹‡}}¬¡uS6&0SgEX“‡iSb‚xSObiiO&)=OO=:bu‡“X0XxgXSJSl‚]bl]J6)=E0Cœè¤)&-6JuxggV0=SVi‹uC-Eu‚›ÌÁV&V¨¬›lE#&-6-S²»´»¼ÁÁÊÊÓÙÙÙÙÙááÅ“OE‹x-x—›¨²¼»²¬¬²ÁÌÁ¨—¡ÅÌÓÁ»Å¼¨¤¨²¼ÅÊÊÊÁ¼¼¼´»²´ÁÊÊÊÊÌÓŨ““¡²¼ÊÌÌÌÌʬ—‹—´Á¼›i‚ii}“›“‹›´¼¨¤²»»—‡—¤›‡l}œ¤¡—‹‡}x‚—¡¤¤¨¤—xbx‡ulqx}}xllxulX0:l¡¬¤››œ}‚}xx‡›“iO-#:bubCEilVEEV]OJq›¡i)6S]]J::Ex““gEX]:6b‚iu‚Vi‡]6)CXOX¬è²--CCX‡“qXiqOSilqqb6#0Eg‡¨ÓÕ›bE0i¤gOC=OiqV:&& =¨Á¼»´ÅÁÊÊÌÕÕÕÕÝáÓ›])Jœ—C&œ›—¬»´»»»ÅÌ»—œ»ÁÅÊ»¬²»´´´¼ÁÁÊÊÁ»¼ÁÁ¼¼´¬¤¨¼ÌÓÌŲ—‡‹›»ÁÁÁÊÓÌÁ´“‡—¨Å̼´œibu›²²¡œ¨´¬¨¬¬¬—iq›¤›}gu›¤¤œ››‹qi}›¡¤¤œxllx}xqux}}xuquxxqV:V‹¡¨¡‹‹qqux}‚‚xiE=00Jlxig:&=:66=SJC‡¬¨]:bllV0i‹—gJVCl²}qqXuœœi:)6JS‹Ìñ¨=SJX‡—qXqubl‚ugJ:&&6=X‹¤»ÌÁ‹O=#b¬))V—´Áœi-#--O¡ÁÊ»¬¼¼ÊÊÌÕÓÓÕáÝ´b Sœ‹J0‡œ—lgœ´»¼¼»¼Å¬¬Á¬²»¤—›¬¼ÅÁÁÁÅÊÁ´»ÅÅÅÌÌ̲x—¬´²¤›œ¤¤¨ÁÅÅÁʼ¤œ›—œ¨´ÅÊÁ¼¡‹‡xu²Å»¨¤¡¡¤¬´¬‹l}œ¡—uVuœ¡¡¤¤¡—ui}›¡¨œ‹qgl}‚‚xqux}}}uqu}‚x]E:xœ¡—‡ubglqu}‡‡lVVC=SbluqE##&&&CXJ:q‡uCJgg]XEx‚xSEO:&6u´“uigx—›g=)&&:›Õèœ JXV]‡“l]qul}lO#-==:X‹lulE#=JV“&Juœ¤²¬‹:Jqx‚œ»Ì¼´´»ÅÊÓÓÌÊÌÝÙ²l::=q›V=Vx“¡qS´»¼»¬²¼²¡¨²¨¤¬¡——´¼»»¼Á¼´²¼ÅÅÊÊÊÕŬ›œ¨¬¬¬²»Á´²ÁÌ̼²¤—œ¡¨¬²²¼¼»´¤—¡œ‡¨Ì̼²œ¡¨´Ì»¤¤¬²¡qSx¡œ¡¤¡¤›‡qx“œ¨“qbbq‡‚}xux}xxxqlu‚‚ubVOu‡‚}xxqilququ}‹}]XE66CVq‚X0#0EOOCC00OVO:=iq&‡q=6C--Vu‚¨¡}glluqJ6)&‚²Ó›JV]i}}bVix‚‹b0E]S:V‹V)JqCS:Vx‚}‹œ‚6=‡¨¨œ—²Óʼ»»ÁÅÓÓÌÅÅÙÙ´‡l‡›¡)#x}‹¤O‚»ÁÅÁ²´¼Å¼œ“‹‡¤²»¤›¨²²¼Å»¨¨´ÁÁ´´´¼ÌÁ¼»´²²´ÁÊÊÁ¼´ÅÌ´¨¡¨´»´´´´²¨¤¨´¼»¼¼¨“¨ÌÓÁ¼²²²ÁÓ¼´»¼Á¡‹iV‚››œ¡œ¡œ‹il‡›¡‡i]]l}xx}‚}xxxqggu}}ui]]uugXbuuquuqigq‚uJ0)#CiuS-)OgbVViuX6-VO)C‡‹J&bE-=6:}œœ´²x]iXS:#)&Eq¡‹066J]qu]Ob}‹‹uJ#0SgXEb‹¤¡qJ:6]l&-b=Cl‚›]Ju¨»¬“´ÓÓÅ»¼»»ÊÓÓÊÊÝÙ¡gXx—¡}E0u“²}C‡»ÁÅÅÁÁÅÌʲ}g}¬ÅÌÁ²¨²²»Á»¤¤»Å¼¨¡¤¬¼»´»´¨¤¬ÁÊÅÁ¼²´´—œ¨ÁÓÅ»¼Á¼²›—¤»ÓÓÕÓ»œ²ÌÓÅÁ¼¼´¬¬¡¤»¼Á¡iX‚—›œœœ¡œ‚]i‹œœ‡l]Xiuu}‚}}xxxqbgq}}xuggulXS]uuqqqibbiui6#) &Vlb:)l›uCSœ¨“u:0OS:)S“¤u=-SV=:ÅÅÕ¼}CX]=)0))ibC0&Cq‚iXg‚‹uS0:OJbq}‹“²ÙÙÁ¡qi]##‹Oi‹œ¡]0gœ¬´¡}x¬ÌÕÕÁ¼´´ÁÓÓÊÌåÕ‚-6VqlS=u¡´xV‹¨´ÁÅÊż¼¼²“‚¨ÊÊÅż´»²¬»´¡¬ÊÌÁ¨››¬¨¡¬¨›‡‡¤¼Á¼¬—‚x‹¡²ÁÊ»²´»»²¡¤»ÅÕÓ̼¡¡»ÌÅ´´¼Á¬›‡‚“¬¼Á¤—lVx“›¡œœ¤œ‚luœ¡“xigqxu}}xxxx}ugglx}}xliqi]]lxqlqqiliqxi)&-:iiO6S“œœl0S¨²“‹S6EO=Cb›²‚E)qiOxÊÓáÁ‚0biE#&)-)&)6XJOX=&-i‚qiq‚}]6]b=b‹‡‚“»åîÓ´qX&‹²iSbb-&]}‡uSEu¨ÅÝÅÁ²»ÅÌÓÊÊåÕE0qV=x}œ²‡g‡¤²¼Åż²¬¬¬œ‹¬ÓÁ´´´¼¼²»¼¬›¬ÅÁ¼¨œ›¡¬¨¤¬œ‹uq“´´¨¤—xi¤¬¬¤œœ›œ¨»»ÁÊÌÌÁ²}q›´»¬œ›¨²´¡“›²ÁÁ¤œ‚bl‹›¡¡œ¡¡‹qq‡—¡“‚qiqxuuuquxx}qgiqx}}xlbigbgu}qlquxuux‚g))&6]}b0J‚²¤gCCu²¬‡}i=COOg‡¤¬u: )}‡l&#}ÁÊáʇ&VqbgbO)&006=EV}}b66SbblxqV=6‚u-JuJ0}¼ÙÅ›“‹gJ& ]›¼‡ )OXE:C6--0=‹ÌÁŲ»ÊÌÌÊÊÝÓœ]6 6x‹b:l‹¤‡X»¼ÁÅż´´¼»¬›œ²¤¡¤¬»²¨²´¨¤²»¬¨¬´»¼Å¼»¬¤œ“‚“œ—œ²´¤›¨²´œ‡‡‚‹¡»´¼¼ÁÌ»¨x}œ¤¤¤—œ¡¡²¨¡¤¬¼Á»¤¡—}xq‹œ¤¡œ¡—‚xx}‡‡xliiiqibiqxxlbluxxxubSgigiu‚ullu}xu}‚b&6]}‡])O—²›E&O¨“quqSSilu‡¡¬u&xl)6‡»ÊÝÅ‚Jxi‡b6-::0)Ci‡“g0:ECJ]gS=-#Ou&-V)V›´›qxlOSElÁ¬E#V‚‡gOOO]uq6V´¼Á¼ÁÊÕÕÓÌÕÕ´‚C -uJ)q“bC“¼ÁÅÅÁ¼»ÁÁ»´¡“}xœ¬¬²¨›œ¤¨´»´¤¡´ÁÁÁÁÁ»¤¬»²›‹‹“¤ÅÓÌÊÓÌʬ“““—¤¬¨¨¬»ÌÅ»»´¤›œ¤¬´¼´¬¨¤´¼Á´œ¡¡œ“‚]q¡¡œ›œ—‹}uu}‹xb]biiqqquuugblquuxuiXilgglxuilqqqu}}V)Jg‚‡]=]‚‹x:)]‚qVSblq}‡xX]¬}6Jxi6-}²ÊÕ´q:VVl“œ}J6:CJ=J‡“‚J6Vx}uJ##&&-Ouxg6JqS#J“¨›g#=‚bOÕÓV6u››““‡q‡¨œC“¼¼ÅÊÓÕÝÕÓÕÝá¡= -}E ::›ÁÅÅÅÅÁ¼Á¼²²´¨“u—¬¨¤¤¡¤¬»ÅÌŨ¤¼¼¡¬¬››¨´»²››²¼ÓÙÕÙÙÙÓ¼¨¬´¬¤¨²¬¡¡»ÌÅÁÅ´¤¡¨²ÁÊÊÅ»´¬»ÅÁ¤“œœ›“‚]]}“››œœ¡›}xul]bgiquu}}xuqiglxxxqqllqugXXiuqlqllu}uO=JOixiVgg]iOJlqO6:J]x—“‚bb¤‡J#gxO-#l¬ÊÕ¨b#:Jg‡“]:6=ECX‹›V-C]‹“‹X)#6XquSS0=xl6CœÁ¤bE—b6ÓÅV#u“}‚“}]g‡q:]œ´ÅÅÌÓÕÙÙÕÙáåÅ‹J=‹¬}J›¼ÁÁÅÅżÁÁ»»ÁÁ²›—¡›œ¤¬²»ÁÊÓÊ´´Å»—¡¡u‹¼Á¤œ¡¨¼ÌÓÓÓÕÕÕÌÁ¼´ÁÌż¼»´´¼Å¼ÁÁ»´´¼ÅÊÊÊÌÓÓÅ»¼Å´¡¡—“‡ubbq‡“““———}qqb]ilqqlu}xxxuqlquxuqqqlxxl]SXu}uqiilqiE):)#Oulbiggqgg}qO:0:Cq›‡‚‚‡›¤“qXulEC:0i¨ÌÙ—J&V‚‹‹iO::::JluE6=Oq}‚])#:Xuub)0-0COJ=i¬²‹i]lx:]‹Å¬S#guESl]:&&Juœ¼ÁÌÊÊÓÌÓÓÓÓÕÙÕʨ‡²ÓÊœ—“uE]—»»»¼¼¼¼ÅÊÊÁ»¼»²¬—‡œ¬´»»´´´¼Å¼¬—¤¡“¨ÓÁ“œ»¼ÁÊÌÓÌÊÅÁ¼Á»²ÁÕÕÓÌÁ´»ÊżÁ¼²²¼ÊÓÕÌÌÓÌÌÅ»ÁÁ¨¡²‹}uqibgx‡‚}}‚‚}qqlblquulbgliiu}uluxxuquqiqxugSSqxxxig]XSC)-:Oui]gqxxii‚xV==6-l“uu‡—œ¡œ“‹‹gESO=b›Åʇ:0&Elqi]VXVSJEJOEE0:XggE):Xlq]E):&-JXS]‚uXgqiV#l¤²²SEC#J}‚iJO}¤ÁÊÊÓÌÓÌÌÊÊÊÊÌÕÝÝÙÅÁÌÝáÙÙÝÁœ“¡²²´»´²²´ÁÅ»¬¬¤¨Á¡x}›¬²´¬œ—¡»Å¤›“¡´ÁÊ̬‹¡ÊÁ²¼ÌÕ̲¡¨´ÓŬ¼ÓÕÓż»´ÊÌÊÁ»»´´ÁÌÕÌÊʼ¤²´Á»¤¤»“‡xx}q]i}}uiix}xuliixxxulbgig]glllxxuqllllqlqgSOixxqg]XVVJ-6E&SqbOXluugbxxXEE6X‚ulu‹—‡‚“‚bbbSVu——x]bb::::0-Jq‚}iECJSJ:==60CVbquX=))0--SlV=00:JXX:q¤¡²V-V:=}“‹‚‹¡´ÊÌÌÓÓÓÓÌÅÁÅÅÌÙåèèåÙÕÝåáååÝÓÊ´¡¤²´¨—“¡²²²²—‹²Áœ‡›¨´Á»œ“œ¨¬œœ›¡¼Å¼´¡“—¨´¬»ÌÓʤ—²ÅÓÓÅÅÊÅÁ¼¼¼´ÁÊż¼¼»»»¼¼¼»»²‚“¨´²¡¨¼ \ No newline at end of file diff --git a/Sources/Imaging.Formats/Sample Images/PNM/im8.ppm b/Sources/Imaging.Formats/Sample Images/PNM/im8.ppm new file mode 100644 index 00000000..65cf3990 Binary files /dev/null and b/Sources/Imaging.Formats/Sample Images/PNM/im8.ppm differ diff --git a/Sources/Imaging.Formats/Sample Images/PNM/rays2.pnm b/Sources/Imaging.Formats/Sample Images/PNM/rays2.pnm new file mode 100644 index 00000000..c07b78a8 Binary files /dev/null and b/Sources/Imaging.Formats/Sample Images/PNM/rays2.pnm differ diff --git a/Sources/Imaging.Formats/Sample Images/PNM/yaleB01_P00A+000E+00.pgm b/Sources/Imaging.Formats/Sample Images/PNM/yaleB01_P00A+000E+00.pgm new file mode 100644 index 00000000..36d1aba3 Binary files /dev/null and b/Sources/Imaging.Formats/Sample Images/PNM/yaleB01_P00A+000E+00.pgm differ diff --git a/Sources/Imaging.Formats/Tools.cs b/Sources/Imaging.Formats/Tools.cs new file mode 100644 index 00000000..08d8e038 --- /dev/null +++ b/Sources/Imaging.Formats/Tools.cs @@ -0,0 +1,87 @@ +// AForge Image Formats Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2005-2008 +// andrew.kirillov@gmail.com +// + +namespace AForge.Imaging.Formats +{ + using System; + using System.Drawing; + using System.Drawing.Imaging; + using System.IO; + + ///

+ /// Set of tools used internally in AForge.Imaging.Formats library. + /// + internal class Tools + { + /// + /// Create and initialize new grayscale image. + /// + /// + /// Image width. + /// Image height. + /// + /// Returns new created grayscale image. + /// + /// AForge.Imaging.Image.CreateGrayscaleImage() function + /// could be used instead, which does the some. But it was not used to get + /// rid of dependency on AForge.Imaing library. + /// + public static Bitmap CreateGrayscaleImage( int width, int height ) + { + // create new image + Bitmap image = new Bitmap( width, height, PixelFormat.Format8bppIndexed ); + // get palette + ColorPalette cp = image.Palette; + // init palette with grayscale colors + for ( int i = 0; i < 256; i++ ) + { + cp.Entries[i] = Color.FromArgb( i, i, i ); + } + // set palette back + image.Palette = cp; + // return new image + return image; + } + + /// + /// Read specified amount of bytes from the specified stream. + /// + /// + /// Source sream to read data from. + /// Buffer to read data into. + /// Offset in buffer to put data into. + /// Number of bytes to read. + /// + /// Returns total number of bytes read. It may be smaller than requested amount only + /// in the case if end of stream was reached. + /// + /// This tool function guarantees that requested number of bytes + /// was read from the source stream (.NET streams don't guarantee this and may return less bytes + /// than it was requested). Only in the case if end of stream was reached, the function + /// may return with less bytes read. + /// + /// + public static int ReadStream( Stream stream, byte[] buffer, int offset, int count ) + { + int totalBytesRead = 0, bytesRead = 0; + + while ( totalBytesRead != count ) + { + bytesRead = stream.Read( buffer, offset + totalBytesRead, count - totalBytesRead ); + + if ( bytesRead == 0 ) + { + break; + } + + totalBytesRead += bytesRead; + } + + return totalBytesRead; + } + } +} diff --git a/Sources/Imaging/AForge.Imaging.snk b/Sources/Imaging/AForge.Imaging.snk new file mode 100644 index 00000000..6fc60d07 Binary files /dev/null and b/Sources/Imaging/AForge.Imaging.snk differ diff --git a/Sources/Imaging/Blob.cs b/Sources/Imaging/Blob.cs new file mode 100644 index 00000000..9abdc06f --- /dev/null +++ b/Sources/Imaging/Blob.cs @@ -0,0 +1,210 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2012 +// contacts@aforgenet.com +// + +namespace AForge.Imaging +{ + using System; + using System.Drawing; + using System.Drawing.Imaging; + using System.ComponentModel; + using AForge; + + /// + /// Image's blob. + /// + /// + /// The class represents a blob - part of another images. The + /// class encapsulates the blob itself and information about its position + /// in parent image. + /// + /// The class is not responsible for blob's image disposing, so it should be + /// done manually when it is required. + /// + /// + public class Blob + { + // blob's image + private UnmanagedImage image; + // blob's image size - as original image or not + private bool originalSize = false; + + // blob's rectangle in the original image + private Rectangle rect; + // blob's ID in the original image + private int id; + // area of the blob + private int area; + // center of gravity + private AForge.Point cog; + // fullness of the blob ( area / ( width * height ) ) + private double fullness; + // mean color of the blob + private Color colorMean = Color.Black; + // color's standard deviation of the blob + private Color colorStdDev = Color.Black; + + /// + /// Blob's image. + /// + /// + /// The property keeps blob's image. In the case if it equals to null, + /// the image may be extracted using + /// or method. + /// + [Browsable( false )] + public UnmanagedImage Image + { + get { return image; } + internal set { image = value; } + } + + /// + /// Blob's image size. + /// + /// + /// The property specifies size of the blob's image. + /// If the property is set to , the blob's image size equals to the + /// size of original image. If the property is set to , the blob's + /// image size equals to size of actual blob. + /// + [Browsable( false )] + public bool OriginalSize + { + get { return originalSize; } + internal set { originalSize = value; } + } + + /// + /// Blob's rectangle in the original image. + /// + /// + /// The property specifies position of the blob in the original image + /// and its size. + /// + public Rectangle Rectangle + { + get { return rect; } + } + + /// + /// Blob's ID in the original image. + /// + [Browsable( false )] + public int ID + { + get { return id; } + internal set { id = value; } + } + + /// + /// Blob's area. + /// + /// + /// The property equals to blob's area measured in number of pixels + /// contained by the blob. + /// + public int Area + { + get { return area; } + internal set { area = value; } + } + + /// + /// Blob's fullness, [0, 1]. + /// + /// + /// The property equals to blob's fullness, which is calculated + /// as Area / ( Width * Height ). If it equals to 1, then + /// it means that entire blob's rectangle is filled by blob's pixel (no + /// blank areas), which is true only for rectangles. If it equals to 0.5, + /// for example, then it means that only half of the bounding rectangle is filled + /// by blob's pixels. + /// + public double Fullness + { + get { return fullness; } + internal set { fullness = value; } + } + + /// + /// Blob's center of gravity point. + /// + /// + /// The property keeps center of gravity point, which is calculated as + /// mean value of X and Y coordinates of blob's points. + /// + public AForge.Point CenterOfGravity + { + get { return cog; } + internal set { cog = value; } + } + + /// + /// Blob's mean color. + /// + /// + /// The property keeps mean color of pixels comprising the blob. + /// + public Color ColorMean + { + get { return colorMean; } + internal set { colorMean = value; } + } + + /// + /// Blob color's standard deviation. + /// + /// + /// The property keeps standard deviation of pixels' colors comprising the blob. + /// + public Color ColorStdDev + { + get { return colorStdDev; } + internal set { colorStdDev = value; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Blob's ID in the original image. + /// Blob's rectangle in the original image. + /// + /// This constructor leaves property not initialized. The blob's + /// image may be extracted later using + /// or method. + /// + public Blob( int id, Rectangle rect ) + { + this.id = id; + this.rect = rect; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Source blob to copy. + /// + /// This copy constructor leaves property not initialized. The blob's + /// image may be extracted later using + /// or method. + /// + public Blob( Blob source ) + { + // copy everything except image + id = source.id; + rect = source.rect; + cog = source.cog; + area = source.area; + fullness = source.fullness; + colorMean = source.colorMean; + colorStdDev = source.colorStdDev; + } + } +} diff --git a/Sources/Imaging/BlobCounter.cs b/Sources/Imaging/BlobCounter.cs new file mode 100644 index 00000000..9b8b2aea --- /dev/null +++ b/Sources/Imaging/BlobCounter.cs @@ -0,0 +1,582 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2012 +// contacts@aforgenet.com +// + +namespace AForge.Imaging +{ + using System; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Blob counter - counts objects in image, which are separated by black background. + /// + /// + /// The class counts and extracts stand alone objects in + /// images using connected components labeling algorithm. + /// + /// The algorithm treats all pixels with values less or equal to + /// as background, but pixels with higher values are treated as objects' pixels. + /// + /// For blobs' searching the class supports 8 bpp indexed grayscale images and + /// 24/32 bpp color images that are at least two pixels wide. Images that are one + /// pixel wide can be processed if they are rotated first, or they can be processed + /// with . + /// See documentation about for information about which + /// pixel formats are supported for extraction of blobs. + /// + /// Sample usage: + /// + /// // create an instance of blob counter algorithm + /// BlobCounter bc = new BlobCounter( ); + /// // process binary image + /// bc.ProcessImage( image ); + /// Rectangle[] rects = bc.GetObjectsRectangles( ); + /// // process blobs + /// foreach ( Rectangle rect in rects ) + /// { + /// // ... + /// } + /// + /// + /// + public class BlobCounter : BlobCounterBase + { + private byte backgroundThresholdR = 0; + private byte backgroundThresholdG = 0; + private byte backgroundThresholdB = 0; + + /// + /// Background threshold's value. + /// + /// + /// The property sets threshold value for distinguishing between background + /// pixel and objects' pixels. All pixel with values less or equal to this property are + /// treated as background, but pixels with higher values are treated as objects' pixels. + /// + /// In the case of colour images a pixel is treated as objects' pixel if any of its + /// RGB values are higher than corresponding values of this threshold. + /// + /// For processing grayscale image, set the property with all RGB components eqaul. + /// + /// Default value is set to (0, 0, 0) - black colour. + /// + public Color BackgroundThreshold + { + get { return Color.FromArgb( backgroundThresholdR, backgroundThresholdG, backgroundThresholdB ); } + set + { + backgroundThresholdR = value.R; + backgroundThresholdG = value.G; + backgroundThresholdB = value.B; + } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Creates new instance of the class with + /// an empty objects map. Before using methods, which provide information about blobs + /// or extract them, the , + /// or + /// method should be called to collect objects map. + /// + public BlobCounter( ) { } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Image to look for objects in. + /// + public BlobCounter( Bitmap image ) : base( image ) { } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Image data to look for objects in. + /// + public BlobCounter( BitmapData imageData ) : base( imageData ) { } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Unmanaged image to look for objects in. + /// + public BlobCounter( UnmanagedImage image ) : base( image ) { } + + /// + /// Actual objects map building. + /// + /// + /// Unmanaged image to process. + /// + /// The method supports 8 bpp indexed grayscale images and 24/32 bpp color images. + /// + /// Unsupported pixel format of the source image. + /// Cannot process images that are one pixel wide. Rotate the image + /// or use . + /// + protected override void BuildObjectsMap( UnmanagedImage image ) + { + int stride = image.Stride; + + // check pixel format + if ( ( image.PixelFormat != PixelFormat.Format8bppIndexed ) && + ( image.PixelFormat != PixelFormat.Format24bppRgb ) && + ( image.PixelFormat != PixelFormat.Format32bppRgb ) && + ( image.PixelFormat != PixelFormat.Format32bppArgb ) && + ( image.PixelFormat != PixelFormat.Format32bppPArgb ) ) + { + throw new UnsupportedImageFormatException( "Unsupported pixel format of the source image." ); + } + + // we don't want one pixel width images + if ( imageWidth == 1 ) + { + throw new InvalidImagePropertiesException( "BlobCounter cannot process images that are one pixel wide. Rotate the image or use RecursiveBlobCounter." ); + } + + int imageWidthM1 = imageWidth - 1; + + // allocate labels array + objectLabels = new int[imageWidth * imageHeight]; + // initial labels count + int labelsCount = 0; + + // create map + int maxObjects = ( ( imageWidth / 2 ) + 1 ) * ( ( imageHeight / 2 ) + 1 ) + 1; + int[] map = new int[maxObjects]; + + // initially map all labels to themself + for ( int i = 0; i < maxObjects; i++ ) + { + map[i] = i; + } + + // do the job + unsafe + { + byte* src = (byte*) image.ImageData.ToPointer( ); + int p = 0; + + if ( image.PixelFormat == PixelFormat.Format8bppIndexed ) + { + int offset = stride - imageWidth; + + // 1 - for pixels of the first row + if ( *src > backgroundThresholdG ) + { + objectLabels[p] = ++labelsCount; + } + ++src; + ++p; + + // process the rest of the first row + for ( int x = 1; x < imageWidth; x++, src++, p++ ) + { + // check if we need to label current pixel + if ( *src > backgroundThresholdG ) + { + // check if the previous pixel already was labeled + if ( src[-1] > backgroundThresholdG ) + { + // label current pixel, as the previous + objectLabels[p] = objectLabels[p - 1]; + } + else + { + // create new label + objectLabels[p] = ++labelsCount; + } + } + } + src += offset; + + // 2 - for other rows + // for each row + for ( int y = 1; y < imageHeight; y++ ) + { + // for the first pixel of the row, we need to check + // only upper and upper-right pixels + if ( *src > backgroundThresholdG ) + { + // check surrounding pixels + if ( src[-stride] > backgroundThresholdG ) + { + // label current pixel, as the above + objectLabels[p] = objectLabels[p - imageWidth]; + } + else if ( src[1 - stride] > backgroundThresholdG ) + { + // label current pixel, as the above right + objectLabels[p] = objectLabels[p + 1 - imageWidth]; + } + else + { + // create new label + objectLabels[p] = ++labelsCount; + } + } + ++src; + ++p; + + // check left pixel and three upper pixels for the rest of pixels + for ( int x = 1; x < imageWidthM1; x++, src++, p++ ) + { + if ( *src > backgroundThresholdG ) + { + // check surrounding pixels + if ( src[-1] > backgroundThresholdG ) + { + // label current pixel, as the left + objectLabels[p] = objectLabels[p - 1]; + } + else if ( src[-1 - stride] > backgroundThresholdG ) + { + // label current pixel, as the above left + objectLabels[p] = objectLabels[p - 1 - imageWidth]; + } + else if ( src[-stride] > backgroundThresholdG ) + { + // label current pixel, as the above + objectLabels[p] = objectLabels[p - imageWidth]; + } + + if ( src[1 - stride] > backgroundThresholdG ) + { + if ( objectLabels[p] == 0 ) + { + // label current pixel, as the above right + objectLabels[p] = objectLabels[p + 1 - imageWidth]; + } + else + { + int l1 = objectLabels[p]; + int l2 = objectLabels[p + 1 - imageWidth]; + + if ( ( l1 != l2 ) && ( map[l1] != map[l2] ) ) + { + // merge + if ( map[l1] == l1 ) + { + // map left value to the right + map[l1] = map[l2]; + } + else if ( map[l2] == l2 ) + { + // map right value to the left + map[l2] = map[l1]; + } + else + { + // both values already mapped + map[map[l1]] = map[l2]; + map[l1] = map[l2]; + } + + // reindex + for ( int i = 1; i <= labelsCount; i++ ) + { + if ( map[i] != i ) + { + // reindex + int j = map[i]; + while ( j != map[j] ) + { + j = map[j]; + } + map[i] = j; + } + } + } + } + } + + // label the object if it is not yet + if ( objectLabels[p] == 0 ) + { + // create new label + objectLabels[p] = ++labelsCount; + } + } + } + + // for the last pixel of the row, we need to check + // only upper and upper-left pixels + if ( *src > backgroundThresholdG ) + { + // check surrounding pixels + if ( src[-1] > backgroundThresholdG ) + { + // label current pixel, as the left + objectLabels[p] = objectLabels[p - 1]; + } + else if ( src[-1 - stride] > backgroundThresholdG ) + { + // label current pixel, as the above left + objectLabels[p] = objectLabels[p - 1 - imageWidth]; + } + else if ( src[-stride] > backgroundThresholdG ) + { + // label current pixel, as the above + objectLabels[p] = objectLabels[p - imageWidth]; + } + else + { + // create new label + objectLabels[p] = ++labelsCount; + } + } + ++src; + ++p; + + src += offset; + } + } + else + { + // color images + int pixelSize = Bitmap.GetPixelFormatSize( image.PixelFormat ) / 8; + int offset = stride - imageWidth * pixelSize; + + int strideM1 = stride - pixelSize; + int strideP1 = stride + pixelSize; + + // 1 - for pixels of the first row + if ( ( src[RGB.R] | src[RGB.G] | src[RGB.B] ) != 0 ) + { + objectLabels[p] = ++labelsCount; + } + src += pixelSize; + ++p; + + // process the rest of the first row + for ( int x = 1; x < imageWidth; x++, src += pixelSize, p++ ) + { + // check if we need to label current pixel + if ( ( src[RGB.R] > backgroundThresholdR ) || + ( src[RGB.G] > backgroundThresholdG ) || + ( src[RGB.B] > backgroundThresholdB ) ) + { + // check if the previous pixel already was labeled + if ( ( src[RGB.R - pixelSize] > backgroundThresholdR ) || + ( src[RGB.G - pixelSize] > backgroundThresholdG ) || + ( src[RGB.B - pixelSize] > backgroundThresholdB ) ) + { + // label current pixel, as the previous + objectLabels[p] = objectLabels[p - 1]; + } + else + { + // create new label + objectLabels[p] = ++labelsCount; + } + } + } + src += offset; + + // 2 - for other rows + // for each row + for ( int y = 1; y < imageHeight; y++ ) + { + // for the first pixel of the row, we need to check + // only upper and upper-right pixels + if ( ( src[RGB.R] > backgroundThresholdR ) || + ( src[RGB.G] > backgroundThresholdG ) || + ( src[RGB.B] > backgroundThresholdB ) ) + { + // check surrounding pixels + if ( ( src[RGB.R - stride] > backgroundThresholdR ) || + ( src[RGB.G - stride] > backgroundThresholdG ) || + ( src[RGB.B - stride] > backgroundThresholdB ) ) + { + // label current pixel, as the above + objectLabels[p] = objectLabels[p - imageWidth]; + } + else if ( ( src[RGB.R - strideM1] > backgroundThresholdR ) || + ( src[RGB.G - strideM1] > backgroundThresholdG ) || + ( src[RGB.B - strideM1] > backgroundThresholdB ) ) + { + // label current pixel, as the above right + objectLabels[p] = objectLabels[p + 1 - imageWidth]; + } + else + { + // create new label + objectLabels[p] = ++labelsCount; + } + } + src += pixelSize; + ++p; + + // check left pixel and three upper pixels for the rest of pixels + for ( int x = 1; x < imageWidth - 1; x++, src += pixelSize, p++ ) + { + if ( ( src[RGB.R] > backgroundThresholdR ) || + ( src[RGB.G] > backgroundThresholdG ) || + ( src[RGB.B] > backgroundThresholdB ) ) + { + // check surrounding pixels + if ( ( src[RGB.R - pixelSize] > backgroundThresholdR ) || + ( src[RGB.G - pixelSize] > backgroundThresholdG ) || + ( src[RGB.B - pixelSize] > backgroundThresholdB ) ) + { + // label current pixel, as the left + objectLabels[p] = objectLabels[p - 1]; + } + else if ( ( src[RGB.R - strideP1] > backgroundThresholdR ) || + ( src[RGB.G - strideP1] > backgroundThresholdG ) || + ( src[RGB.B - strideP1] > backgroundThresholdB ) ) + { + // label current pixel, as the above left + objectLabels[p] = objectLabels[p - 1 - imageWidth]; + } + else if ( ( src[RGB.R - stride] > backgroundThresholdR ) || + ( src[RGB.G - stride] > backgroundThresholdG ) || + ( src[RGB.B - stride] > backgroundThresholdB ) ) + { + // label current pixel, as the above + objectLabels[p] = objectLabels[p - imageWidth]; + } + + if ( ( src[RGB.R - strideM1] > backgroundThresholdR ) || + ( src[RGB.G - strideM1] > backgroundThresholdG ) || + ( src[RGB.B - strideM1] > backgroundThresholdB ) ) + { + if ( objectLabels[p] == 0 ) + { + // label current pixel, as the above right + objectLabels[p] = objectLabels[p + 1 - imageWidth]; + } + else + { + int l1 = objectLabels[p]; + int l2 = objectLabels[p + 1 - imageWidth]; + + if ( ( l1 != l2 ) && ( map[l1] != map[l2] ) ) + { + // merge + if ( map[l1] == l1 ) + { + // map left value to the right + map[l1] = map[l2]; + } + else if ( map[l2] == l2 ) + { + // map right value to the left + map[l2] = map[l1]; + } + else + { + // both values already mapped + map[map[l1]] = map[l2]; + map[l1] = map[l2]; + } + + // reindex + for ( int i = 1; i <= labelsCount; i++ ) + { + if ( map[i] != i ) + { + // reindex + int j = map[i]; + while ( j != map[j] ) + { + j = map[j]; + } + map[i] = j; + } + } + } + } + } + + // label the object if it is not yet + if ( objectLabels[p] == 0 ) + { + // create new label + objectLabels[p] = ++labelsCount; + } + } + } + + // for the last pixel of the row, we need to check + // only upper and upper-left pixels + if ( ( src[RGB.R] > backgroundThresholdR ) || + ( src[RGB.G] > backgroundThresholdG ) || + ( src[RGB.B] > backgroundThresholdB ) ) + { + // check surrounding pixels + if ( ( src[RGB.R - pixelSize] > backgroundThresholdR ) || + ( src[RGB.G - pixelSize] > backgroundThresholdG ) || + ( src[RGB.B - pixelSize] > backgroundThresholdB ) ) + { + // label current pixel, as the left + objectLabels[p] = objectLabels[p - 1]; + } + else if ( ( src[RGB.R - strideP1] > backgroundThresholdR ) || + ( src[RGB.G - strideP1] > backgroundThresholdG ) || + ( src[RGB.B - strideP1] > backgroundThresholdB ) ) + { + // label current pixel, as the above left + objectLabels[p] = objectLabels[p - 1 - imageWidth]; + } + else if ( ( src[RGB.R - stride] > backgroundThresholdR ) || + ( src[RGB.G - stride] > backgroundThresholdG ) || + ( src[RGB.B - stride] > backgroundThresholdB ) ) + { + // label current pixel, as the above + objectLabels[p] = objectLabels[p - imageWidth]; + } + else + { + // create new label + objectLabels[p] = ++labelsCount; + } + } + src += pixelSize; + ++p; + + src += offset; + } + } + } + + // allocate remapping array + int[] reMap = new int[map.Length]; + + // count objects and prepare remapping array + objectsCount = 0; + for ( int i = 1; i <= labelsCount; i++ ) + { + if ( map[i] == i ) + { + // increase objects count + reMap[i] = ++objectsCount; + } + } + // second pass to complete remapping + for ( int i = 1; i <= labelsCount; i++ ) + { + if ( map[i] != i ) + { + reMap[i] = reMap[map[i]]; + } + } + + // repair object labels + for ( int i = 0, n = objectLabels.Length; i < n; i++ ) + { + objectLabels[i] = reMap[objectLabels[i]]; + } + } + } +} diff --git a/Sources/Imaging/BlobCounterBase.cs b/Sources/Imaging/BlobCounterBase.cs new file mode 100644 index 00000000..7e9bfdc4 --- /dev/null +++ b/Sources/Imaging/BlobCounterBase.cs @@ -0,0 +1,1372 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2012 +// contacts@aforgenet.com +// + +namespace AForge.Imaging +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + using AForge; + + /// + /// Possible object orders. + /// + /// + /// The enumeration defines possible sorting orders of objects, found by blob + /// counting classes. + /// + public enum ObjectsOrder + { + /// + /// Unsorted order (as it is collected by algorithm). + /// + None, + + /// + /// Objects are sorted by size in descending order (bigger objects go first). + /// Size is calculated as Width * Height. + /// + Size, + + /// + /// Objects are sorted by area in descending order (bigger objects go first). + /// + Area, + + /// + /// Objects are sorted by Y coordinate, then by X coordinate in ascending order + /// (smaller coordinates go first). + /// + YX, + + /// + /// Objects are sorted by X coordinate, then by Y coordinate in ascending order + /// (smaller coordinates go first). + /// + XY + } + + /// + /// Base class for different blob counting algorithms. + /// + /// + /// The class is abstract and serves as a base for different blob counting algorithms. + /// Classes, which inherit from this base class, require to implement + /// method, which does actual building of object's label's map. + /// + /// For blobs' searcing usually all inherited classes accept binary images, which are actually + /// grayscale thresholded images. But the exact supported format should be checked in particular class, + /// inheriting from the base class. For blobs' extraction the class supports grayscale (8 bpp indexed) + /// and color images (24 and 32 bpp). + /// + /// Sample usage: + /// + /// // create an instance of blob counter algorithm + /// BlobCounterBase bc = new ... + /// // set filtering options + /// bc.FilterBlobs = true; + /// bc.MinWidth = 5; + /// bc.MinHeight = 5; + /// // process binary image + /// bc.ProcessImage( image ); + /// Blob[] blobs = bc.GetObjects( image, false ); + /// // process blobs + /// foreach ( Blob blob in blobs ) + /// { + /// // ... + /// // blob.Rectangle - blob's rectangle + /// // blob.Image - blob's image + /// } + /// + /// + /// + public abstract class BlobCounterBase + { + // found blobs + List blobs = new List( ); + + // objects' sort order + private ObjectsOrder objectsOrder = ObjectsOrder.None; + + // filtering by size is required or not + private bool filterBlobs = false; + private IBlobsFilter filter = null; + + // coupled size filtering or not + private bool coupledSizeFiltering = false; + + // blobs' minimal and maximal size + private int minWidth = 1; + private int minHeight = 1; + private int maxWidth = int.MaxValue; + private int maxHeight = int.MaxValue; + + /// + /// Objects count. + /// + protected int objectsCount; + + /// + /// Objects' labels. + /// + protected int[] objectLabels; + + /// + /// Width of processed image. + /// + protected int imageWidth; + + /// + /// Height of processed image. + /// + protected int imageHeight; + + /// + /// Objects count. + /// + /// + /// Number of objects (blobs) found by method. + /// + /// + public int ObjectsCount + { + get { return objectsCount; } + } + + /// + /// Objects' labels. + /// + /// + /// The array of width * height size, which holds + /// labels for all objects. Background is represented with 0 value, + /// but objects are represented with labels starting from 1. + /// + public int[] ObjectLabels + { + get { return objectLabels; } + } + + /// + /// Objects sort order. + /// + /// + /// The property specifies objects' sort order, which are provided + /// by , , etc. + /// + /// + public ObjectsOrder ObjectsOrder + { + get { return objectsOrder; } + set { objectsOrder = value; } + } + + /// + /// Specifies if blobs should be filtered. + /// + /// + /// If the property is equal to false, then there is no any additional + /// post processing after image was processed. If the property is set to true, then + /// blobs filtering is done right after image processing routine. If + /// is set, then custom blobs' filtering is done, which is implemented by user. Otherwise + /// blobs are filtered according to dimensions specified in , + /// , and properties. + /// + /// Default value is set to . + /// + public bool FilterBlobs + { + get { return filterBlobs; } + set { filterBlobs = value; } + } + + /// + /// Specifies if size filetering should be coupled or not. + /// + /// + /// In uncoupled filtering mode, objects are filtered out in the case if + /// their width is smaller than or height is smaller than + /// . But in coupled filtering mode, objects are filtered out in + /// the case if their width is smaller than and height is + /// smaller than . In both modes the idea with filtering by objects' + /// maximum size is the same as filtering by objects' minimum size. + /// + /// Default value is set to , what means uncoupled filtering by size. + /// + /// + public bool CoupledSizeFiltering + { + get { return coupledSizeFiltering; } + set { coupledSizeFiltering = value; } + } + + /// + /// Minimum allowed width of blob. + /// + /// + /// The property specifies minimum object's width acceptable by blob counting + /// routine and has power only when property is set to + /// and custom blobs' filter is + /// set to . + /// + /// See documentation to for additional information. + /// + /// + public int MinWidth + { + get { return minWidth; } + set { minWidth = value; } + } + + /// + /// Minimum allowed height of blob. + /// + /// + /// The property specifies minimum object's height acceptable by blob counting + /// routine and has power only when property is set to + /// and custom blobs' filter is + /// set to . + /// + /// See documentation to for additional information. + /// + /// + public int MinHeight + { + get { return minHeight; } + set { minHeight = value; } + } + + /// + /// Maximum allowed width of blob. + /// + /// + /// The property specifies maximum object's width acceptable by blob counting + /// routine and has power only when property is set to + /// and custom blobs' filter is + /// set to . + /// + /// See documentation to for additional information. + /// + /// + public int MaxWidth + { + get { return maxWidth; } + set { maxWidth = value; } + } + + /// + /// Maximum allowed height of blob. + /// + /// + /// The property specifies maximum object's height acceptable by blob counting + /// routine and has power only when property is set to + /// and custom blobs' filter is + /// set to . + /// + /// See documentation to for additional information. + /// + /// + public int MaxHeight + { + get { return maxHeight; } + set { maxHeight = value; } + } + + /// + /// Custom blobs' filter to use. + /// + /// + /// The property specifies custom blobs' filtering routine to use. It has + /// effect only in the case if property is set to . + /// + /// When custom blobs' filtering routine is set, it has priority over default filtering done + /// with , , and . + /// + /// + public IBlobsFilter BlobsFilter + { + get { return filter; } + set { filter = value; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Creates new instance of the class with + /// an empty objects map. Before using methods, which provide information about blobs + /// or extract them, the , + /// or + /// method should be called to collect objects map. + /// + public BlobCounterBase( ) { } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Binary image to look for objects in. + /// + /// Creates new instance of the class with + /// initialized objects map built by calling method. + /// + public BlobCounterBase( Bitmap image ) + { + ProcessImage( image ); + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Binary image data to look for objects in. + /// + /// Creates new instance of the class with + /// initialized objects map built by calling method. + /// + public BlobCounterBase( BitmapData imageData ) + { + ProcessImage( imageData ); + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Unmanaged binary image to look for objects in. + /// + /// Creates new instance of the class with + /// initialized objects map built by calling method. + /// + public BlobCounterBase( UnmanagedImage image ) + { + ProcessImage( image ); + } + + /// + /// Build objects map. + /// + /// + /// Source binary image. + /// + /// Processes the image and builds objects map, which is used later to extracts blobs. + /// + /// Unsupported pixel format of the source image. + /// + public void ProcessImage( Bitmap image ) + { + // lock source bitmap data + BitmapData imageData = image.LockBits( + new Rectangle( 0, 0, image.Width, image.Height ), + ImageLockMode.ReadOnly, image.PixelFormat ); + + try + { + // process image + ProcessImage( imageData ); + } + finally + { + // unlock source image + image.UnlockBits( imageData ); + } + } + + /// + /// Build objects map. + /// + /// + /// Source binary image data. + /// + /// Processes the image and builds objects map, which is used later to extracts blobs. + /// + /// Unsupported pixel format of the source image. + /// + public void ProcessImage( BitmapData imageData ) + { + // do actual objects map building + ProcessImage( new UnmanagedImage( imageData ) ); + } + + /// + /// Build object map from raw image data. + /// + /// + /// Source unmanaged binary image data. + /// + /// Processes the image and builds objects map, which is used later to extracts blobs. + /// + /// Unsupported pixel format of the source image. + /// Thrown by some inherited classes if some image property other + /// than the pixel format is not supported. See that class's documentation or the exception message for details. + /// + public void ProcessImage( UnmanagedImage image ) + { + imageWidth = image.Width; + imageHeight = image.Height; + + // do actual objects map building + BuildObjectsMap( image ); + + // collect information about blobs + CollectObjectsInfo( image ); + + // filter blobs by size if required + if ( filterBlobs ) + { + // labels remapping array + int[] labelsMap = new int[objectsCount + 1]; + for ( int i = 1; i <= objectsCount; i++ ) + { + labelsMap[i] = i; + } + + // check dimension of all objects and filter them + int objectsToRemove = 0; + + if ( filter == null ) + { + for ( int i = objectsCount - 1; i >= 0; i-- ) + { + int blobWidth = blobs[i].Rectangle.Width; + int blobHeight = blobs[i].Rectangle.Height; + + if ( coupledSizeFiltering == false ) + { + // uncoupled filtering + if ( + ( blobWidth < minWidth ) || ( blobHeight < minHeight ) || + ( blobWidth > maxWidth ) || ( blobHeight > maxHeight ) ) + { + labelsMap[i + 1] = 0; + objectsToRemove++; + blobs.RemoveAt( i ); + } + } + else + { + // coupled filtering + if ( + ( ( blobWidth < minWidth ) && ( blobHeight < minHeight ) ) || + ( ( blobWidth > maxWidth ) && ( blobHeight > maxHeight ) ) ) + { + labelsMap[i + 1] = 0; + objectsToRemove++; + blobs.RemoveAt( i ); + } + } + } + } + else + { + for ( int i = objectsCount - 1; i >= 0; i-- ) + { + if ( !filter.Check( blobs[i] ) ) + { + labelsMap[i + 1] = 0; + objectsToRemove++; + blobs.RemoveAt( i ); + } + } + } + + // update labels remapping array + int label = 0; + for ( int i = 1; i <= objectsCount; i++ ) + { + if ( labelsMap[i] != 0 ) + { + label++; + // update remapping array + labelsMap[i] = label; + } + } + + // repair object labels + for ( int i = 0, n = objectLabels.Length; i < n; i++ ) + { + objectLabels[i] = labelsMap[objectLabels[i]]; + } + + objectsCount -= objectsToRemove; + + // repair IDs + for ( int i = 0, n = blobs.Count; i < n; i++ ) + { + blobs[i].ID = i + 1; + } + } + + // do we need to sort the list? + if ( objectsOrder != ObjectsOrder.None ) + { + blobs.Sort( new BlobsSorter( objectsOrder ) ); + } + } + + /// + /// Get objects' rectangles. + /// + /// + /// Returns array of objects' rectangles. + /// + /// The method returns array of objects rectangles. Before calling the + /// method, the , + /// or method should be called, which will + /// build objects map. + /// + /// No image was processed before, so objects' rectangles + /// can not be collected. + /// + public Rectangle[] GetObjectsRectangles( ) + { + // check if objects map was collected + if ( objectLabels == null ) + throw new ApplicationException( "Image should be processed before to collect objects map." ); + + Rectangle[] rects = new Rectangle[objectsCount]; + + for ( int i = 0; i < objectsCount; i++ ) + { + rects[i] = blobs[i].Rectangle; + } + + return rects; + } + + /// + /// Get objects' information. + /// + /// + /// Returns array of partially initialized blobs (without property initialized). + /// + /// By the amount of provided information, the method is between and + /// methods. The method provides array of blobs without initialized their image. + /// Blob's image may be extracted later using + /// or method. + /// + /// + /// + /// + /// // create blob counter and process image + /// BlobCounter bc = new BlobCounter( sourceImage ); + /// // specify sort order + /// bc.ObjectsOrder = ObjectsOrder.Size; + /// // get objects' information (blobs without image) + /// Blob[] blobs = bc.GetObjectInformation( ); + /// // process blobs + /// foreach ( Blob blob in blobs ) + /// { + /// // check blob's properties + /// if ( blob.Rectangle.Width > 50 ) + /// { + /// // the blob looks interesting, let's extract it + /// bc.ExtractBlobsImage( sourceImage, blob ); + /// } + /// } + /// + /// + /// + /// No image was processed before, so objects' information + /// can not be collected. + /// + public Blob[] GetObjectsInformation( ) + { + // check if objects map was collected + if ( objectLabels == null ) + throw new ApplicationException( "Image should be processed before to collect objects map." ); + + Blob[] blobsToReturn = new Blob[objectsCount]; + + // create each blob + for ( int k = 0; k < objectsCount; k++ ) + { + blobsToReturn[k] = new Blob( blobs[k] ); + } + + return blobsToReturn; + } + + /// + /// Get blobs. + /// + /// + /// Source image to extract objects from. + /// + /// Returns array of blobs. + /// Specifies size of blobs' image to extract. + /// If set to each blobs' image will have the same size as + /// the specified image. If set to each blobs' image will + /// have the size of its blob. + /// + /// The method returns array of blobs. Before calling the + /// method, the , + /// or method should be called, which will build + /// objects map. + /// + /// The method supports 24/32 bpp color and 8 bpp indexed grayscale images. + /// + /// + /// Unsupported pixel format of the provided image. + /// No image was processed before, so objects + /// can not be collected. + /// + public Blob[] GetObjects( Bitmap image, bool extractInOriginalSize ) + { + Blob[] blobs = null; + // lock source bitmap data + BitmapData imageData = image.LockBits( + new Rectangle( 0, 0, image.Width, image.Height ), + ImageLockMode.ReadOnly, image.PixelFormat ); + + try + { + // process image + blobs = GetObjects( new UnmanagedImage( imageData ), extractInOriginalSize ); + } + finally + { + // unlock source images + image.UnlockBits( imageData ); + } + return blobs; + } + + /// + /// Get blobs. + /// + /// + /// Source unmanaged image to extract objects from. + /// Specifies size of blobs' image to extract. + /// If set to each blobs' image will have the same size as + /// the specified image. If set to each blobs' image will + /// have the size of its blob. + /// + /// Returns array of blobs. + /// + /// The method returns array of blobs. Before calling the + /// method, the , + /// or method should be called, which will build + /// objects map. + /// + /// The method supports 24/32 bpp color and 8 bpp indexed grayscale images. + /// + /// + /// Unsupported pixel format of the provided image. + /// No image was processed before, so objects + /// can not be collected. + /// + public Blob[] GetObjects( UnmanagedImage image, bool extractInOriginalSize ) + { + // check if objects map was collected + if ( objectLabels == null ) + throw new ApplicationException( "Image should be processed before to collect objects map." ); + + if ( + ( image.PixelFormat != PixelFormat.Format24bppRgb ) && + ( image.PixelFormat != PixelFormat.Format8bppIndexed ) && + ( image.PixelFormat != PixelFormat.Format32bppRgb ) && + ( image.PixelFormat != PixelFormat.Format32bppArgb ) && + ( image.PixelFormat != PixelFormat.Format32bppRgb ) && + ( image.PixelFormat != PixelFormat.Format32bppPArgb ) + ) + throw new UnsupportedImageFormatException( "Unsupported pixel format of the provided image." ); + + // image size + int width = image.Width; + int height = image.Height; + int srcStride = image.Stride; + int pixelSize = Bitmap.GetPixelFormatSize( image.PixelFormat ) / 8; + + Blob[] objects = new Blob[objectsCount]; + + // create each image + for ( int k = 0; k < objectsCount; k++ ) + { + int objectWidth = blobs[k].Rectangle.Width; + int objectHeight = blobs[k].Rectangle.Height; + + int blobImageWidth = ( extractInOriginalSize ) ? width : objectWidth; + int blobImageHeight = ( extractInOriginalSize ) ? height : objectHeight; + + int xmin = blobs[k].Rectangle.X; + int xmax = xmin + objectWidth - 1; + int ymin = blobs[k].Rectangle.Y; + int ymax = ymin + objectHeight - 1; + + int label = blobs[k].ID; + + // create new image + UnmanagedImage dstImage = UnmanagedImage.Create( blobImageWidth, blobImageHeight, image.PixelFormat ); + + // copy image + unsafe + { + byte* src = (byte*) image.ImageData.ToPointer( ) + ymin * srcStride + xmin * pixelSize; + byte* dst = (byte*) dstImage.ImageData.ToPointer( ); + int p = ymin * width + xmin; + + if ( extractInOriginalSize ) + { + // allign destination pointer also + dst += ymin * dstImage.Stride + xmin * pixelSize; + } + + int srcOffset = srcStride - objectWidth * pixelSize; + int dstOffset = dstImage.Stride - objectWidth * pixelSize; + int labelsOffset = width - objectWidth; + + // for each line + for ( int y = ymin; y <= ymax; y++ ) + { + // copy each pixel + for ( int x = xmin; x <= xmax; x++, p++, dst += pixelSize, src += pixelSize ) + { + if ( objectLabels[p] == label ) + { + // copy pixel + *dst = *src; + + if ( pixelSize > 1 ) + { + dst[1] = src[1]; + dst[2] = src[2]; + + if ( pixelSize > 3 ) + { + dst[3] = src[3]; + } + } + } + } + src += srcOffset; + dst += dstOffset; + p += labelsOffset; + } + } + + objects[k] = new Blob( blobs[k] ); + objects[k].Image = dstImage; + objects[k].OriginalSize = extractInOriginalSize; + } + + return objects; + } + + /// + /// Extract blob's image. + /// + /// + /// Source image to extract blob's image from. + /// Blob which is required to be extracted. + /// Specifies size of blobs' image to extract. + /// If set to each blobs' image will have the same size as + /// the specified image. If set to each blobs' image will + /// have the size of its blob. + /// + /// The method is used to extract image of partially initialized blob, which + /// was provided by method. Before calling the + /// method, the , + /// or method should be called, which will build + /// objects map. + /// + /// The method supports 24/32 bpp color and 8 bpp indexed grayscale images. + /// + /// + /// Unsupported pixel format of the provided image. + /// No image was processed before, so blob + /// can not be extracted. + /// + public void ExtractBlobsImage( Bitmap image, Blob blob, bool extractInOriginalSize ) + { + // lock source bitmap data + BitmapData imageData = image.LockBits( + new Rectangle( 0, 0, image.Width, image.Height ), + ImageLockMode.ReadOnly, image.PixelFormat ); + + try + { + // process image + ExtractBlobsImage( new UnmanagedImage( imageData ), blob, extractInOriginalSize ); + } + finally + { + // unlock source images + image.UnlockBits( imageData ); + } + } + + /// + /// Extract blob's image. + /// + /// + /// Source unmanaged image to extract blob's image from. + /// Blob which is required to be extracted. + /// Specifies size of blobs' image to extract. + /// If set to each blobs' image will have the same size as + /// the specified image. If set to each blobs' image will + /// have the size of its blob. + /// + /// The method is used to extract image of partially initialized blob, which + /// was provided by method. Before calling the + /// method, the , + /// or method should be called, which will build + /// objects map. + /// + /// The method supports 24/32 bpp color and 8 bpp indexed grayscale images. + /// + /// + /// Unsupported pixel format of the provided image. + /// No image was processed before, so blob + /// can not be extracted. + /// + public void ExtractBlobsImage( UnmanagedImage image, Blob blob, bool extractInOriginalSize ) + { + // check if objects map was collected + if ( objectLabels == null ) + throw new ApplicationException( "Image should be processed before to collect objects map." ); + + if ( + ( image.PixelFormat != PixelFormat.Format24bppRgb ) && + ( image.PixelFormat != PixelFormat.Format8bppIndexed ) && + ( image.PixelFormat != PixelFormat.Format32bppRgb ) && + ( image.PixelFormat != PixelFormat.Format32bppArgb ) && + ( image.PixelFormat != PixelFormat.Format32bppRgb ) && + ( image.PixelFormat != PixelFormat.Format32bppPArgb ) + ) + throw new UnsupportedImageFormatException( "Unsupported pixel format of the provided image." ); + + // image size + int width = image.Width; + int height = image.Height; + int srcStride = image.Stride; + int pixelSize = Bitmap.GetPixelFormatSize( image.PixelFormat ) / 8; + + int objectWidth = blob.Rectangle.Width; + int objectHeight = blob.Rectangle.Height; + + int blobImageWidth = ( extractInOriginalSize ) ? width : objectWidth; + int blobImageHeight = ( extractInOriginalSize ) ? height : objectHeight; + + int xmin = blob.Rectangle.Left; + int xmax = xmin + objectWidth - 1; + int ymin = blob.Rectangle.Top; + int ymax = ymin + objectHeight - 1; + + int label = blob.ID; + + // create new image + blob.Image = UnmanagedImage.Create( blobImageWidth, blobImageHeight, image.PixelFormat ); + blob.OriginalSize = extractInOriginalSize; + + // copy image + unsafe + { + byte* src = (byte*) image.ImageData.ToPointer( ) + ymin * srcStride + xmin * pixelSize; + byte* dst = (byte*) blob.Image.ImageData.ToPointer( ); + int p = ymin * width + xmin; + + if ( extractInOriginalSize ) + { + // allign destination pointer also + dst += ymin * blob.Image.Stride + xmin * pixelSize; + } + + int srcOffset = srcStride - objectWidth * pixelSize; + int dstOffset = blob.Image.Stride - objectWidth * pixelSize; + int labelsOffset = width - objectWidth; + + // for each line + for ( int y = ymin; y <= ymax; y++ ) + { + // copy each pixel + for ( int x = xmin; x <= xmax; x++, p++, dst += pixelSize, src += pixelSize ) + { + if ( objectLabels[p] == label ) + { + // copy pixel + *dst = *src; + + if ( pixelSize > 1 ) + { + dst[1] = src[1]; + dst[2] = src[2]; + + if ( pixelSize > 3 ) + { + dst[3] = src[3]; + } + } + } + } + src += srcOffset; + dst += dstOffset; + p += labelsOffset; + } + } + } + + /// + /// Get list of points on the left and right edges of the blob. + /// + /// + /// Blob to collect edge points for. + /// List of points on the left edge of the blob. + /// List of points on the right edge of the blob. + /// + /// The method scans each line of the blob and finds the most left and the + /// most right points for it adding them to appropriate lists. The method may be very + /// useful in conjunction with different routines from , + /// which allow finding convex hull or quadrilateral's corners. + /// + /// Both lists of points are sorted by Y coordinate - points with smaller Y + /// value go first. + /// + /// + /// No image was processed before, so blob + /// can not be extracted. + /// + public void GetBlobsLeftAndRightEdges( Blob blob, out List leftEdge, out List rightEdge ) + { + // check if objects map was collected + if ( objectLabels == null ) + throw new ApplicationException( "Image should be processed before to collect objects map." ); + + leftEdge = new List( ); + rightEdge = new List( ); + + int xmin = blob.Rectangle.Left; + int xmax = xmin + blob.Rectangle.Width - 1; + int ymin = blob.Rectangle.Top; + int ymax = ymin + blob.Rectangle.Height - 1; + + int label = blob.ID; + + // for each line + for ( int y = ymin; y <= ymax; y++ ) + { + // scan from left to right + int p = y * imageWidth + xmin; + for ( int x = xmin; x <= xmax; x++, p++ ) + { + if ( objectLabels[p] == label ) + { + leftEdge.Add( new IntPoint( x, y ) ); + break; + } + } + + // scan from right to left + p = y * imageWidth + xmax; + for ( int x = xmax; x >= xmin; x--, p-- ) + { + if ( objectLabels[p] == label ) + { + rightEdge.Add( new IntPoint( x, y ) ); + break; + } + } + } + } + + /// + /// Get list of points on the top and bottom edges of the blob. + /// + /// + /// Blob to collect edge points for. + /// List of points on the top edge of the blob. + /// List of points on the bottom edge of the blob. + /// + /// The method scans each column of the blob and finds the most top and the + /// most bottom points for it adding them to appropriate lists. The method may be very + /// useful in conjunction with different routines from , + /// which allow finding convex hull or quadrilateral's corners. + /// + /// Both lists of points are sorted by X coordinate - points with smaller X + /// value go first. + /// + /// + /// No image was processed before, so blob + /// can not be extracted. + /// + public void GetBlobsTopAndBottomEdges( Blob blob, out List topEdge, out List bottomEdge ) + { + // check if objects map was collected + if ( objectLabels == null ) + throw new ApplicationException( "Image should be processed before to collect objects map." ); + + topEdge = new List( ); + bottomEdge = new List( ); + + int xmin = blob.Rectangle.Left; + int xmax = xmin + blob.Rectangle.Width - 1; + int ymin = blob.Rectangle.Top; + int ymax = ymin + blob.Rectangle.Height - 1; + + int label = blob.ID; + + // for each column + for ( int x = xmin; x <= xmax; x++ ) + { + // scan from top to bottom + int p = ymin * imageWidth + x; + for ( int y = ymin; y <= ymax; y++, p += imageWidth ) + { + if ( objectLabels[p] == label ) + { + topEdge.Add( new IntPoint( x, y ) ); + break; + } + } + + // scan from bottom to top + p = ymax * imageWidth + x; + for ( int y = ymax; y >= ymin; y--, p -= imageWidth ) + { + if ( objectLabels[p] == label ) + { + bottomEdge.Add( new IntPoint( x, y ) ); + break; + } + } + } + } + + /// + /// Get list of object's edge points. + /// + /// + /// Blob to collect edge points for. + /// + /// Returns unsorted list of blob's edge points. + /// + /// The method scans each row and column of the blob and finds the + /// most top/bottom/left/right points. The method returns similar result as if results of + /// both and + /// methods were combined, but each edge point occurs only once in the list. + /// + /// Edge points in the returned list are not ordered. This makes the list unusable + /// for visualization with methods, which draw polygon or poly-line. But the returned list + /// can be used with such algorithms, like convex hull search, shape analyzer, etc. + /// + /// + /// No image was processed before, so blob + /// can not be extracted. + /// + public List GetBlobsEdgePoints( Blob blob ) + { + // check if objects map was collected + if ( objectLabels == null ) + throw new ApplicationException( "Image should be processed before to collect objects map." ); + + List edgePoints = new List( ); + + int xmin = blob.Rectangle.Left; + int xmax = xmin + blob.Rectangle.Width - 1; + int ymin = blob.Rectangle.Top; + int ymax = ymin + blob.Rectangle.Height - 1; + + int label = blob.ID; + + // array of already processed points on left/right edges + // (index in these arrays represent Y coordinate, but value - X coordinate) + int[] leftProcessedPoints = new int[blob.Rectangle.Height]; + int[] rightProcessedPoints = new int[blob.Rectangle.Height]; + + // for each line + for ( int y = ymin; y <= ymax; y++ ) + { + // scan from left to right + int p = y * imageWidth + xmin; + for ( int x = xmin; x <= xmax; x++, p++ ) + { + if ( objectLabels[p] == label ) + { + edgePoints.Add( new IntPoint( x, y ) ); + leftProcessedPoints[y - ymin] = x; + break; + } + } + + // scan from right to left + p = y * imageWidth + xmax; + for ( int x = xmax; x >= xmin; x--, p-- ) + { + if ( objectLabels[p] == label ) + { + // avoid adding the point we already have + if ( leftProcessedPoints[y - ymin] != x ) + { + edgePoints.Add( new IntPoint( x, y ) ); + } + rightProcessedPoints[y - ymin] = x; + break; + } + } + } + + // for each column + for ( int x = xmin; x <= xmax; x++ ) + { + // scan from top to bottom + int p = ymin * imageWidth + x; + for ( int y = ymin, y0 = 0; y <= ymax; y++, y0++, p += imageWidth ) + { + if ( objectLabels[p] == label ) + { + // avoid adding the point we already have + if ( ( leftProcessedPoints[y0] != x ) && + ( rightProcessedPoints[y0] != x ) ) + { + edgePoints.Add( new IntPoint( x, y ) ); + } + break; + } + } + + // scan from bottom to top + p = ymax * imageWidth + x; + for ( int y = ymax, y0 = ymax - ymin; y >= ymin; y--, y0--, p -= imageWidth ) + { + if ( objectLabels[p] == label ) + { + // avoid adding the point we already have + if ( ( leftProcessedPoints[y0] != x ) && + ( rightProcessedPoints[y0] != x ) ) + { + edgePoints.Add( new IntPoint( x, y ) ); + } + break; + } + } + } + + return edgePoints; + } + + /// + /// Actual objects map building. + /// + /// + /// Unmanaged image to process. + /// + /// By the time this method is called bitmap's pixel format is not + /// yet checked, so this should be done by the class inheriting from the base class. + /// and members are initialized + /// before the method is called, so these members may be used safely. + /// + protected abstract void BuildObjectsMap( UnmanagedImage image ); + + + #region Private Methods - Collecting objects' rectangles + + // Collect objects' rectangles + private unsafe void CollectObjectsInfo( UnmanagedImage image ) + { + int i = 0, label; + + // create object coordinates arrays + int[] x1 = new int[objectsCount + 1]; + int[] y1 = new int[objectsCount + 1]; + int[] x2 = new int[objectsCount + 1]; + int[] y2 = new int[objectsCount + 1]; + + int[] area = new int[objectsCount + 1]; + long[] xc = new long[objectsCount + 1]; + long[] yc = new long[objectsCount + 1]; + + long[] meanR = new long[objectsCount + 1]; + long[] meanG = new long[objectsCount + 1]; + long[] meanB = new long[objectsCount + 1]; + + long[] stdDevR = new long[objectsCount + 1]; + long[] stdDevG = new long[objectsCount + 1]; + long[] stdDevB = new long[objectsCount + 1]; + + for ( int j = 1; j <= objectsCount; j++ ) + { + x1[j] = imageWidth; + y1[j] = imageHeight; + } + + byte* src = (byte*) image.ImageData.ToPointer( ); + + if ( image.PixelFormat == PixelFormat.Format8bppIndexed ) + { + int offset = image.Stride - imageWidth; + byte g; // pixel's grey value + + // walk through labels array + for ( int y = 0; y < imageHeight; y++ ) + { + for ( int x = 0; x < imageWidth; x++, i++, src++ ) + { + // get current label + label = objectLabels[i]; + + // skip unlabeled pixels + if ( label == 0 ) + continue; + + // check and update all coordinates + + if ( x < x1[label] ) + { + x1[label] = x; + } + if ( x > x2[label] ) + { + x2[label] = x; + } + if ( y < y1[label] ) + { + y1[label] = y; + } + if ( y > y2[label] ) + { + y2[label] = y; + } + + area[label]++; + xc[label] += x; + yc[label] += y; + + g = *src; + meanG[label] += g; + stdDevG[label] += g * g; + } + + src += offset; + } + + for ( int j = 1; j <= objectsCount; j++ ) + { + meanR[j] = meanB[j] = meanG[j]; + stdDevR[j] = stdDevB[j] = stdDevG[j]; + } + } + else + { + // color images + int pixelSize = Bitmap.GetPixelFormatSize( image.PixelFormat ) / 8; + int offset = image.Stride - imageWidth * pixelSize; + byte r, g, b; // RGB value + + // walk through labels array + for ( int y = 0; y < imageHeight; y++ ) + { + for ( int x = 0; x < imageWidth; x++, i++, src += pixelSize ) + { + // get current label + label = objectLabels[i]; + + // skip unlabeled pixels + if ( label == 0 ) + continue; + + // check and update all coordinates + + if ( x < x1[label] ) + { + x1[label] = x; + } + if ( x > x2[label] ) + { + x2[label] = x; + } + if ( y < y1[label] ) + { + y1[label] = y; + } + if ( y > y2[label] ) + { + y2[label] = y; + } + + area[label]++; + xc[label] += x; + yc[label] += y; + + r = src[RGB.R]; + g = src[RGB.G]; + b = src[RGB.B]; + + meanR[label] += r; + meanG[label] += g; + meanB[label] += b; + + stdDevR[label] += r * r; + stdDevG[label] += g * g; + stdDevB[label] += b * b; + } + + src += offset; + } + } + + // create blobs + blobs.Clear( ); + + for ( int j = 1; j <= objectsCount; j++ ) + { + int blobArea = area[j]; + + Blob blob = new Blob( j, new Rectangle( x1[j], y1[j], x2[j] - x1[j] + 1, y2[j] - y1[j] + 1 ) ); + blob.Area = blobArea; + blob.Fullness = (double) blobArea / ( ( x2[j] - x1[j] + 1 ) * ( y2[j] - y1[j] + 1 ) ); + blob.CenterOfGravity = new AForge.Point( (float) xc[j] / blobArea, (float) yc[j] / blobArea ); + blob.ColorMean = Color.FromArgb( (byte) ( meanR[j] / blobArea ), (byte) ( meanG[j] / blobArea ), (byte) ( meanB[j] / blobArea ) ); + blob.ColorStdDev = Color.FromArgb( + (byte) ( Math.Sqrt( stdDevR[j] / blobArea - blob.ColorMean.R * blob.ColorMean.R ) ), + (byte) ( Math.Sqrt( stdDevG[j] / blobArea - blob.ColorMean.G * blob.ColorMean.G ) ), + (byte) ( Math.Sqrt( stdDevB[j] / blobArea - blob.ColorMean.B * blob.ColorMean.B ) ) ); + + blobs.Add( blob ); + } + } + + // Rectangles' and blobs' sorter + private class BlobsSorter : System.Collections.Generic.IComparer + { + private ObjectsOrder order; + + public BlobsSorter( ObjectsOrder order ) + { + this.order = order; + } + + public int Compare( Blob a, Blob b ) + { + Rectangle aRect = a.Rectangle; + Rectangle bRect = b.Rectangle; + + switch ( order ) + { + case ObjectsOrder.Size: // sort by size + + // the order is changed to descending + return ( bRect.Width * bRect.Height - aRect.Width * aRect.Height ); + + case ObjectsOrder.Area: // sort by area + return b.Area - a.Area; + + case ObjectsOrder.YX: // YX order + + return ( ( aRect.Y * 100000 + aRect.X ) - ( bRect.Y * 100000 + bRect.X ) ); + + case ObjectsOrder.XY: // XY order + + return ( ( aRect.X * 100000 + aRect.Y ) - ( bRect.X * 100000 + bRect.Y ) ); + } + return 0; + } + } + + #endregion + } +} diff --git a/Sources/Imaging/BlockMatch.cs b/Sources/Imaging/BlockMatch.cs new file mode 100644 index 00000000..506aa731 --- /dev/null +++ b/Sources/Imaging/BlockMatch.cs @@ -0,0 +1,65 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2005-2009 +// andrew.kirillov@aforgenet.com +// + +namespace AForge.Imaging +{ + using System; + using System.Drawing; + + /// + /// Block match class keeps information about found block match. The class is + /// used with block matching algorithms implementing + /// interface. + /// + /// + public class BlockMatch + { + private IntPoint sourcePoint; + private IntPoint matchPoint; + private float similarity; + + /// + /// Reference point in source image. + /// + public IntPoint SourcePoint + { + get { return sourcePoint; } + } + + /// + /// Match point in search image (point of a found match). + /// + public IntPoint MatchPoint + { + get { return matchPoint; } + } + + /// + /// Similarity between blocks in source and search images, [0..1]. + /// + public float Similarity + { + get { return similarity; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Reference point in source image. + /// Match point in search image (point of a found match). + /// Similarity between blocks in source and search images, [0..1]. + /// + public BlockMatch( IntPoint sourcePoint, IntPoint matchPoint, float similarity ) + { + this.sourcePoint = sourcePoint; + this.matchPoint = matchPoint; + this.similarity = similarity; + } + } +} diff --git a/Sources/Imaging/Color Reduction/BurkesColorDithering.cs b/Sources/Imaging/Color Reduction/BurkesColorDithering.cs new file mode 100644 index 00000000..a5372555 --- /dev/null +++ b/Sources/Imaging/Color Reduction/BurkesColorDithering.cs @@ -0,0 +1,71 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2010 +// contacts@aforgenet.com +// + +namespace AForge.Imaging.ColorReduction +{ + using System; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Color dithering using Burkes error diffusion. + /// + /// + /// The image processing routine represents color dithering algorithm, which is based on + /// error diffusion dithering with Burkes coefficients. Error is diffused + /// on 7 neighbor pixels with next coefficients: + /// + /// | * | 8 | 4 | + /// | 2 | 4 | 8 | 4 | 2 | + /// + /// / 32 + /// + /// + /// The image processing routine accepts 24/32 bpp color images for processing. As a result this routine + /// produces 4 bpp or 8 bpp indexed image, which depends on size of the specified + /// color table - 4 bpp result for + /// color tables with 16 colors or less; 8 bpp result for larger color tables. + /// + /// Sample usage: + /// + /// // create color image quantization routine + /// ColorImageQuantizer ciq = new ColorImageQuantizer( new MedianCutQuantizer( ) ); + /// // create 8 colors table + /// Color[] colorTable = ciq.CalculatePalette( image, 8 ); + /// // create dithering routine + /// BurkesColorDithering dithering = new BurkesColorDithering( ); + /// dithering.ColorTable = colorTable; + /// // apply the dithering routine + /// Bitmap newImage = dithering.Apply( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + /// + /// + /// + /// + /// + public sealed class BurkesColorDithering : ColorErrorDiffusionToAdjacentNeighbors + { + /// + /// Initializes a new instance of the class. + /// + /// + public BurkesColorDithering( ) + : base( new int[2][] { + new int[2] { 8, 4 }, + new int[5] { 2, 4, 8, 4, 2 } } ) + { + } + } +} diff --git a/Sources/Imaging/Color Reduction/ColorErrorDiffusionToAdjacentNeighbors.cs b/Sources/Imaging/Color Reduction/ColorErrorDiffusionToAdjacentNeighbors.cs new file mode 100644 index 00000000..2706070c --- /dev/null +++ b/Sources/Imaging/Color Reduction/ColorErrorDiffusionToAdjacentNeighbors.cs @@ -0,0 +1,194 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2010 +// contacts@aforgenet.com +// + +namespace AForge.Imaging.ColorReduction +{ + using System; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Base class for error diffusion color dithering, where error is diffused to + /// adjacent neighbor pixels. + /// + /// + /// The class does error diffusion to adjacent neighbor pixels + /// using specified set of coefficients. These coefficients are represented by + /// 2 dimensional jugged array, where first array of coefficients is for + /// right-standing pixels, but the rest of arrays are for bottom-standing pixels. + /// All arrays except the first one should have odd number of coefficients. + /// + /// Suppose that error diffusion coefficients are represented by the next + /// jugged array: + /// + /// + /// int[][] coefficients = new int[2][] { + /// new int[1] { 7 }, + /// new int[3] { 3, 5, 1 } + /// }; + /// + /// + /// The above coefficients are used to diffuse error over the next neighbor + /// pixels (* marks current pixel, coefficients are placed to corresponding + /// neighbor pixels): + /// + /// | * | 7 | + /// | 3 | 5 | 1 | + /// + /// / 16 + /// + /// + /// The image processing routine accepts 24/32 bpp color images for processing. + /// + /// Sample usage: + /// + /// // create dithering routine + /// ColorErrorDiffusionToAdjacentNeighbors dithering = new ColorErrorDiffusionToAdjacentNeighbors( + /// new int[3][] { + /// new int[2] { 5, 3 }, + /// new int[5] { 2, 4, 5, 4, 2 }, + /// new int[3] { 2, 3, 2 } + /// } ); + /// // apply the dithering routine + /// Bitmap newImage = dithering.Apply( image ); + /// + /// + /// + public class ColorErrorDiffusionToAdjacentNeighbors : ErrorDiffusionColorDithering + { + // diffusion coefficients + private int[][] coefficients; + // sum of all coefficients + private int coefficientsSum; + + /// + /// Diffusion coefficients. + /// + /// + /// Set of coefficients, which are used for error diffusion to + /// pixel's neighbors. + /// + public int[][] Coefficients + { + get { return coefficients; } + set + { + coefficients = value; + CalculateCoefficientsSum( ); + } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Diffusion coefficients (see + /// for more information). + /// + public ColorErrorDiffusionToAdjacentNeighbors( int[][] coefficients ) + { + this.coefficients = coefficients; + CalculateCoefficientsSum( ); + } + + /// + /// Do error diffusion. + /// + /// + /// Error value of red component. + /// Error value of green component. + /// Error value of blue component. + /// Pointer to current processing pixel. + /// + /// All parameters of the image and current processing pixel's coordinates + /// are initialized by base class. + /// + protected override unsafe void Diffuse( int rError, int gError, int bError, byte* ptr ) + { + int edR; // error diffusion + int edG; // error diffusion + int edB; // error diffusion + + // do error diffusion to right-standing neighbors + int[] coefficientsRow = coefficients[0]; + + for ( int jI = 1, jP = pixelSize, jC = 0, k = coefficientsRow.Length; jC < k; jI++, jC++, jP += pixelSize ) + { + if ( x + jI >= width ) + break; + + edR = ptr[jP + RGB.R] + ( rError * coefficientsRow[jC] ) / coefficientsSum; + edR = ( edR < 0 ) ? 0 : ( ( edR > 255 ) ? 255 : edR ); + ptr[jP + RGB.R] = (byte) edR; + + edG = ptr[jP + RGB.G] + ( gError * coefficientsRow[jC] ) / coefficientsSum; + edG = ( edG < 0 ) ? 0 : ( ( edG > 255 ) ? 255 : edG ); + ptr[jP + RGB.G] = (byte) edG; + + edB = ptr[jP + RGB.B] + ( bError * coefficientsRow[jC] ) / coefficientsSum; + edB = ( edB < 0 ) ? 0 : ( ( edB > 255 ) ? 255 : edB ); + ptr[jP + RGB.B] = (byte) edB; + } + + // do error diffusion to bottom neigbors + for ( int i = 1, n = coefficients.Length; i < n; i++ ) + { + if ( y + i >= height ) + break; + + // move pointer to next image line + ptr += stride; + + // get coefficients of the row + coefficientsRow = coefficients[i]; + + // process the row + for ( int jC = 0, k = coefficientsRow.Length, jI = -( k >> 1 ), jP = -( k >> 1 ) * pixelSize; jC < k; jI++, jC++, jP += pixelSize ) + { + if ( x + jI >= width ) + break; + if ( x + jI < 0 ) + continue; + + edR = ptr[jP + RGB.R] + ( rError * coefficientsRow[jC] ) / coefficientsSum; + edR = ( edR < 0 ) ? 0 : ( ( edR > 255 ) ? 255 : edR ); + ptr[jP + RGB.R] = (byte) edR; + + edG = ptr[jP + RGB.G] + ( gError * coefficientsRow[jC] ) / coefficientsSum; + edG = ( edG < 0 ) ? 0 : ( ( edG > 255 ) ? 255 : edG ); + ptr[jP + RGB.G] = (byte) edG; + + edB = ptr[jP + RGB.B] + ( bError * coefficientsRow[jC] ) / coefficientsSum; + edB = ( edB < 0 ) ? 0 : ( ( edB > 255 ) ? 255 : edB ); + ptr[jP + RGB.B] = (byte) edB; + + } + } + } + + #region Private Members + + // Calculate coefficients' sum + private void CalculateCoefficientsSum( ) + { + coefficientsSum = 0; + + for ( int i = 0, n = coefficients.Length; i < n; i++ ) + { + int[] coefficientsRow = coefficients[i]; + + for ( int j = 0, k = coefficientsRow.Length; j < k; j++ ) + { + coefficientsSum += coefficientsRow[j]; + } + } + } + + #endregion + } +} diff --git a/Sources/Imaging/Color Reduction/ColorImageQuantizer.cs b/Sources/Imaging/Color Reduction/ColorImageQuantizer.cs new file mode 100644 index 00000000..a6069b28 --- /dev/null +++ b/Sources/Imaging/Color Reduction/ColorImageQuantizer.cs @@ -0,0 +1,412 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +namespace AForge.Imaging.ColorReduction +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + using AForge.Imaging; + + /// + /// Color quantization tools. + /// + /// + /// The class contains methods aimed to simplify work with color quantization + /// algorithms implementing interface. Using its methods it is possible + /// to calculate reduced color palette for the specified image or reduce colors to the specified number. + /// + /// Sample usage: + /// + /// // instantiate the images' color quantization class + /// ColorImageQuantizer ciq = new ColorImageQuantizer( new MedianCutQuantizer( ) ); + /// // get 16 color palette for a given image + /// Color[] colorTable = ciq.CalculatePalette( image, 16 ); + /// + /// // ... or just reduce colors in the specified image + /// Bitmap newImage = ciq.ReduceColors( image, 16 ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + public class ColorImageQuantizer + { + private IColorQuantizer quantizer; + private bool useCaching = false; + + /// + /// Color quantization algorithm used by this class to build color palettes for the specified images. + /// + /// + public IColorQuantizer Quantizer + { + get { return quantizer; } + set { quantizer = value; } + } + + /// + /// Use color caching during color reduction or not. + /// + /// + /// The property has effect only for methods like and + /// specifies if internal cache of already processed colors should be used or not. For each pixel in the original + /// image the color reduction routine does search in target color palette to find the best matching color. + /// To avoid doing the search again and again for already processed colors, the class may use internal dictionary + /// which maps colors of original image to indexes in target color palette. + /// + /// + /// The property provides a trade off. On one hand it may speedup color reduction routine, but on another + /// hand it increases memory usage. Also cache usage may not be efficient for very small target color tables. + /// + /// Default value is set to . + /// + /// + public bool UseCaching + { + get { return useCaching; } + set { useCaching = value; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Color quantization algorithm to use for processing images. + /// + public ColorImageQuantizer( IColorQuantizer quantizer ) + { + this.quantizer = quantizer; + } + + /// + /// Calculate reduced color palette for the specified image. + /// + /// + /// Image to calculate palette for. + /// Palette size to calculate. + /// + /// Return reduced color palette for the specified image. + /// + /// See for details. + /// + public Color[] CalculatePalette( Bitmap image, int paletteSize ) + { + BitmapData data = image.LockBits( new Rectangle( 0, 0, image.Width, image.Height ), + ImageLockMode.ReadOnly, image.PixelFormat ); + + try + { + return CalculatePalette( new UnmanagedImage( data ), paletteSize ); + } + finally + { + image.UnlockBits( data ); + } + } + + /// + /// Calculate reduced color palette for the specified image. + /// + /// + /// Image to calculate palette for. + /// Palette size to calculate. + /// + /// Return reduced color palette for the specified image. + /// + /// The method processes the specified image and feeds color value of each pixel + /// to the specified color quantization algorithm. Finally it returns color palette built by + /// that algorithm. + /// + /// Unsupported format of the source image - it must 24 or 32 bpp color image. + /// + public Color[] CalculatePalette( UnmanagedImage image, int paletteSize ) + { + if ( ( image.PixelFormat != PixelFormat.Format24bppRgb ) && + ( image.PixelFormat != PixelFormat.Format32bppRgb ) && + ( image.PixelFormat != PixelFormat.Format32bppArgb ) && + ( image.PixelFormat != PixelFormat.Format32bppPArgb ) ) + { + throw new UnsupportedImageFormatException( "Unsupported format of the source image." ); + } + + quantizer.Clear( ); + + int width = image.Width; + int height = image.Height; + + int pixelSize = Bitmap.GetPixelFormatSize( image.PixelFormat ) / 8; + + unsafe + { + byte* ptr = (byte*) image.ImageData.ToPointer( ); + int offset = image.Stride - width * pixelSize; + + for ( int y = 0; y < height; y++ ) + { + for ( int x = 0; x < width; x++, ptr += pixelSize ) + { + quantizer.AddColor( Color.FromArgb( ptr[RGB.R], ptr[RGB.G], ptr[RGB.B] ) ); + } + + ptr += offset; + } + } + + return quantizer.GetPalette( paletteSize ); + } + + /// + /// Create an image with reduced number of colors. + /// + /// + /// Source image to process. + /// Number of colors to get in the output image, [2, 256]. + /// + /// Returns image with reduced number of colors. + /// + /// See for details. + /// + public Bitmap ReduceColors( Bitmap image, int paletteSize ) + { + BitmapData data = image.LockBits( new Rectangle( 0, 0, image.Width, image.Height ), + ImageLockMode.ReadOnly, image.PixelFormat ); + + try + { + Bitmap result = ReduceColors( new UnmanagedImage( data ), paletteSize ); + if ( ( image.HorizontalResolution > 0 ) && ( image.VerticalResolution > 0 ) ) + { + result.SetResolution( image.HorizontalResolution, image.VerticalResolution ); + } + return result; + } + finally + { + image.UnlockBits( data ); + } + } + + /// + /// Create an image with reduced number of colors. + /// + /// + /// Source image to process. + /// Number of colors to get in the output image, [2, 256]. + /// + /// Returns image with reduced number of colors. + /// + /// The method creates an image, which looks similar to the specified image, but contains + /// reduced number of colors. First, target color palette is calculated using + /// method and then a new image is created, where pixels from the given source image are substituted by + /// best matching colors from calculated color table. + /// + /// The output image has 4 bpp or 8 bpp indexed pixel format depending on the target palette size - + /// 4 bpp for palette size 16 or less; 8 bpp otherwise. + /// + /// + /// Unsupported format of the source image - it must 24 or 32 bpp color image. + /// Invalid size of the target color palette. + /// + public Bitmap ReduceColors( UnmanagedImage image, int paletteSize ) + { + if ( ( paletteSize < 2 ) || ( paletteSize > 256 ) ) + { + throw new ArgumentException( "Invalid size of the target color palette." ); + } + + return ReduceColors( image, CalculatePalette( image, paletteSize ) ); + } + + /// + /// Create an image with reduced number of colors using the specified palette. + /// + /// + /// Source image to process. + /// Target color palette. Must contatin 2-256 colors. + /// + /// Returns image with reduced number of colors. + /// + /// See for details. + /// + public Bitmap ReduceColors( Bitmap image, Color[] palette ) + { + BitmapData data = image.LockBits( new Rectangle( 0, 0, image.Width, image.Height ), + ImageLockMode.ReadOnly, image.PixelFormat ); + + try + { + Bitmap result = ReduceColors( new UnmanagedImage( data ), palette ); + if ( ( image.HorizontalResolution > 0 ) && ( image.VerticalResolution > 0 ) ) + { + result.SetResolution( image.HorizontalResolution, image.VerticalResolution ); + } + return result; + } + finally + { + image.UnlockBits( data ); + } + } + + /// + /// Create an image with reduced number of colors using the specified palette. + /// + /// + /// Source image to process. + /// Target color palette. Must contatin 2-256 colors. + /// + /// Returns image with reduced number of colors. + /// + /// The method creates an image, which looks similar to the specified image, but contains + /// reduced number of colors. Is substitutes every pixel of the source image with the closest matching color + /// in the specified paletter. + /// + /// The output image has 4 bpp or 8 bpp indexed pixel format depending on the target palette size - + /// 4 bpp for palette size 16 or less; 8 bpp otherwise. + /// + /// + /// Unsupported format of the source image - it must 24 or 32 bpp color image. + /// Invalid size of the target color palette. + /// + public Bitmap ReduceColors( UnmanagedImage image, Color[] palette ) + { + if ( ( image.PixelFormat != PixelFormat.Format24bppRgb ) && + ( image.PixelFormat != PixelFormat.Format32bppRgb ) && + ( image.PixelFormat != PixelFormat.Format32bppArgb ) && + ( image.PixelFormat != PixelFormat.Format32bppPArgb ) ) + { + throw new UnsupportedImageFormatException( "Unsupported format of the source image." ); + } + + if ( ( palette.Length < 2 ) || ( palette.Length > 256 ) ) + { + throw new ArgumentException( "Invalid size of the target color palette." ); + } + + paletteToUse = palette; + cache.Clear( ); + + // get image size + int width = image.Width; + int height = image.Height; + int stride = image.Stride; + int pixelSize = Bitmap.GetPixelFormatSize( image.PixelFormat ) / 8; + + int offset = stride - width * pixelSize; + + // create destination image + Bitmap destImage = new Bitmap( width, height, ( palette.Length > 16 ) ? + PixelFormat.Format8bppIndexed : PixelFormat.Format4bppIndexed ); + // and init its palette + ColorPalette cp = destImage.Palette; + for ( int i = 0, n = palette.Length; i < n; i++ ) + { + cp.Entries[i] = palette[i]; + } + destImage.Palette = cp; + + // lock destination image + BitmapData destData = destImage.LockBits( new Rectangle( 0, 0, width, height ), + ImageLockMode.ReadWrite, destImage.PixelFormat ); + + // do the job + unsafe + { + byte* ptr = (byte*) image.ImageData.ToPointer( ); + byte* dstBase = (byte*) destData.Scan0.ToPointer( ); + + bool is8bpp = ( palette.Length > 16 ); + + // for each line + for ( int y = 0; y < height; y++ ) + { + byte* dst = dstBase + y * destData.Stride; + + // for each pixels + for ( int x = 0; x < width; x++, ptr += pixelSize ) + { + // get color from palette, which is the closest to current pixel's value + byte colorIndex = (byte) GetClosestColor( ptr[RGB.R], ptr[RGB.G], ptr[RGB.B] ); + + // write color index as pixel's value to destination image + if ( is8bpp ) + { + *dst = colorIndex; + dst++; + } + else + { + if ( x % 2 == 0 ) + { + *dst |= (byte) ( colorIndex << 4 ); + } + else + { + *dst |= ( colorIndex ); + dst++; + } + } + } + ptr += offset; + } + } + + destImage.UnlockBits( destData ); + + return destImage; + } + + #region Helper methods + [NonSerialized] + private Color[] paletteToUse; + [NonSerialized] + private Dictionary cache = new Dictionary( ); + + // Get closest color from palette to specified color + private int GetClosestColor( int red, int green, int blue ) + { + Color color = Color.FromArgb( red, green, blue ); + + if ( ( useCaching ) && ( cache.ContainsKey( color ) ) ) + { + return cache[color]; + } + + int colorIndex = 0; + int minError = int.MaxValue; + + for ( int i = 0, n = paletteToUse.Length; i < n; i++ ) + { + int dr = red - paletteToUse[i].R; + int dg = green - paletteToUse[i].G; + int db = blue - paletteToUse[i].B; + + int error = dr * dr + dg * dg + db * db; + + if ( error < minError ) + { + minError = error; + colorIndex = (byte) i; + } + } + + if ( useCaching ) + { + cache.Add( color, colorIndex ); + } + + return colorIndex; + } + #endregion + } +} diff --git a/Sources/Imaging/Color Reduction/ErrorDiffusionColorDithering.cs b/Sources/Imaging/Color Reduction/ErrorDiffusionColorDithering.cs new file mode 100644 index 00000000..ca07ebb1 --- /dev/null +++ b/Sources/Imaging/Color Reduction/ErrorDiffusionColorDithering.cs @@ -0,0 +1,330 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +namespace AForge.Imaging.ColorReduction +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + using AForge.Imaging; + + /// + /// Base class for error diffusion color dithering. + /// + /// + /// The class is the base class for color dithering algorithms based on + ///
error diffusion. + /// + /// Color dithering with error diffusion is based on the idea that each pixel from the specified source + /// image is substituted with a best matching color (or better say with color's index) from the specified color + /// table. However, the error (difference between color value in the source image and the best matching color) + /// is diffused to neighbor pixels of the source image, which affects the way those pixels are substituted by colors + /// from the specified table. + /// + /// The image processing routine accepts 24/32 bpp color images for processing. As a result this routine + /// produces 4 bpp or 8 bpp indexed image, which depends on size of the specified color table - 4 bpp result for + /// color tables with 16 colors or less; 8 bpp result for larger color tables. + /// + /// + public abstract class ErrorDiffusionColorDithering + { + private bool useCaching = false; + + /// + /// Current processing X coordinate. + /// + protected int x; + + /// + /// Current processing Y coordinate. + /// + protected int y; + + /// + /// Processing image's width. + /// + protected int width; + + /// + /// Processing image's height. + /// + protected int height; + + /// + /// Processing image's stride (line size). + /// + protected int stride; + + /// + /// Processing image's pixel size in bytes. + /// + protected int pixelSize; + + private Color[] colorTable = new Color[16] + { + Color.Black, Color.DarkBlue, Color.DarkGreen, Color.DarkCyan, + Color.DarkRed, Color.DarkMagenta, Color.DarkKhaki, Color.LightGray, + Color.Gray, Color.Blue, Color.Green, Color.Cyan, + Color.Red, Color.Magenta, Color.Yellow, Color.White + }; + + /// + /// Color table to use for image dithering. Must contain 2-256 colors. + /// + /// + /// Color table size determines format of the resulting image produced by this + /// image processing routine. If color table contains 16 color or less, then result image will have + /// 4 bpp indexed pixel format. If color table contains more than 16 colors, then result image will + /// have 8 bpp indexed pixel format. + /// + /// By default the property is initialized with default 16 colors, which are: + /// Black, Dark Blue, Dark Green, Dark Cyan, Dark Red, Dark Magenta, Dark Khaki, Light Gray, + /// Gray, Blue, Green, Cyan, Red, Magenta, Yellow and White. + /// + /// + /// Color table length must be in the [2, 256] range. + /// + public Color[] ColorTable + { + get { return colorTable; } + set + { + if ( ( colorTable.Length < 2 ) || ( colorTable.Length > 256 ) ) + throw new ArgumentException( "Color table length must be in the [2, 256] range." ); + + colorTable = value; + } + } + + /// + /// Use color caching during color dithering or not. + /// + /// + /// The property specifies if internal cache of already processed colors should be used or not. + /// For each pixel in the original image the color dithering routine does search in target color palette to find + /// the best matching color. To avoid doing the search again and again for already processed colors, the class may + /// use internal dictionary which maps colors of original image to indexes in target color palette. + /// + /// + /// The property provides a trade off. On one hand it may speedup color dithering routine, but on another + /// hand it increases memory usage. Also cache usage may not be efficient for very small target color tables. + /// + /// Default value is set to . + /// + /// + public bool UseCaching + { + get { return useCaching; } + set { useCaching = value; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + protected ErrorDiffusionColorDithering( ) + { + } + + /// + /// Do error diffusion. + /// + /// + /// Error value of red component. + /// Error value of green component. + /// Error value of blue component. + /// Pointer to current processing pixel. + /// + /// All parameters of the image and current processing pixel's coordinates + /// are initialized in protected members. + /// + protected abstract unsafe void Diffuse( int rError, int gError, int bError, byte* ptr ); + + + /// + /// Perform color dithering for the specified image. + /// + /// + /// Source image to do color dithering for. + /// + /// Returns color dithered image. See for information about format of + /// the result image. + /// + /// Unsupported pixel format of the source image. It must 24 or 32 bpp color image. + /// + public Bitmap Apply( Bitmap sourceImage ) + { + BitmapData data = sourceImage.LockBits( new Rectangle( 0, 0, sourceImage.Width, sourceImage.Height ), + ImageLockMode.ReadOnly, sourceImage.PixelFormat ); + + Bitmap result = null; + + try + { + result = Apply( new UnmanagedImage( data ) ); + if ( ( sourceImage.HorizontalResolution > 0 ) && ( sourceImage.VerticalResolution > 0 ) ) + { + result.SetResolution( sourceImage.HorizontalResolution, sourceImage.VerticalResolution ); + } + } + finally + { + sourceImage.UnlockBits( data ); + } + + return result; + } + + /// + /// Perform color dithering for the specified image. + /// + /// + /// Source image to do color dithering for. + /// + /// Returns color dithered image. See for information about format of + /// the result image. + /// + /// Unsupported pixel format of the source image. It must 24 or 32 bpp color image. + /// + public unsafe Bitmap Apply( UnmanagedImage sourceImage ) + { + if ( ( sourceImage.PixelFormat != PixelFormat.Format24bppRgb ) && + ( sourceImage.PixelFormat != PixelFormat.Format32bppRgb ) && + ( sourceImage.PixelFormat != PixelFormat.Format32bppArgb ) && + ( sourceImage.PixelFormat != PixelFormat.Format32bppPArgb ) ) + { + throw new UnsupportedImageFormatException( "Unsupported pixel format of the source image." ); + } + + cache.Clear( ); + + // make a copy of the original image + UnmanagedImage source = sourceImage.Clone( ); + + // get image size + width = sourceImage.Width; + height = sourceImage.Height; + stride = sourceImage.Stride; + pixelSize = Bitmap.GetPixelFormatSize( sourceImage.PixelFormat ) / 8; + + int offset = stride - width * pixelSize; + + // create destination image + Bitmap destImage = new Bitmap( width, height, ( colorTable.Length > 16 ) ? + PixelFormat.Format8bppIndexed : PixelFormat.Format4bppIndexed ); + // and init its palette + ColorPalette cp = destImage.Palette; + for ( int i = 0, n = colorTable.Length; i < n; i++ ) + { + cp.Entries[i] = colorTable[i]; + } + destImage.Palette = cp; + + // lock destination image + BitmapData destData = destImage.LockBits( new Rectangle( 0, 0, width, height ), + ImageLockMode.ReadWrite, destImage.PixelFormat ); + + // pixel values + int r, g, b; + + // do the job + byte* ptr = (byte*) source.ImageData.ToPointer( ); + byte* dstBase = (byte*) destData.Scan0.ToPointer( ); + byte colorIndex; + + bool is8bpp = ( colorTable.Length > 16 ); + + // for each line + for ( y = 0; y < height; y++ ) + { + byte* dst = dstBase + y * destData.Stride; + + // for each pixels + for ( x = 0; x < width; x++, ptr += pixelSize ) + { + r = ptr[RGB.R]; + g = ptr[RGB.G]; + b = ptr[RGB.B]; + + // get color from palette, which is the closest to current pixel's value + Color closestColor = GetClosestColor( r, g, b, out colorIndex ); + + // do error diffusion + Diffuse( r - closestColor.R, g - closestColor.G, b - closestColor.B, ptr ); + + // write color index as pixel's value to destination image + if ( is8bpp ) + { + *dst = colorIndex; + dst++; + } + else + { + if ( x % 2 == 0 ) + { + *dst |= (byte) ( colorIndex << 4 ); + } + else + { + *dst |= ( colorIndex ); + dst++; + } + } + } + ptr += offset; + } + + destImage.UnlockBits( destData ); + source.Dispose( ); + + return destImage; + } + + [NonSerialized] + private Dictionary cache = new Dictionary( ); + + // Get closest color from palette to the specified color + private Color GetClosestColor( int red, int green, int blue, out byte colorIndex ) + { + Color color = Color.FromArgb( red, green, blue ); + + if ( ( useCaching ) && ( cache.ContainsKey( color ) ) ) + { + colorIndex = cache[color]; + } + else + { + colorIndex = 0; + int minError = int.MaxValue; + + for ( int i = 0, n = colorTable.Length; i < n; i++ ) + { + int dr = red - colorTable[i].R; + int dg = green - colorTable[i].G; + int db = blue - colorTable[i].B; + + int error = dr * dr + dg * dg + db * db; + + if ( error < minError ) + { + minError = error; + colorIndex = (byte) i; + } + } + + if ( useCaching ) + { + cache.Add( color, colorIndex ); + } + } + + return colorTable[colorIndex]; + } + } +} diff --git a/Sources/Imaging/Color Reduction/FloydSteinbergColorDithering.cs b/Sources/Imaging/Color Reduction/FloydSteinbergColorDithering.cs new file mode 100644 index 00000000..d9988579 --- /dev/null +++ b/Sources/Imaging/Color Reduction/FloydSteinbergColorDithering.cs @@ -0,0 +1,72 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2010 +// contacts@aforgenet.com +// + +namespace AForge.Imaging.ColorReduction +{ + using System; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Color dithering using Floyd-Steinberg error diffusion. + /// + /// + /// The image processing routine represents color dithering algorithm, which is based on + /// error diffusion dithering with Floyd-Steinberg + /// coefficients. Error is diffused on 4 neighbor pixels with the next coefficients: + /// + /// + /// | * | 7 | + /// | 3 | 5 | 1 | + /// + /// / 16 + /// + /// + /// The image processing routine accepts 24/32 bpp color images for processing. As a result this routine + /// produces 4 bpp or 8 bpp indexed image, which depends on size of the specified + /// color table - 4 bpp result for + /// color tables with 16 colors or less; 8 bpp result for larger color tables. + /// + /// Sample usage: + /// + /// // create color image quantization routine + /// ColorImageQuantizer ciq = new ColorImageQuantizer( new MedianCutQuantizer( ) ); + /// // create 16 colors table + /// Color[] colorTable = ciq.CalculatePalette( image, 16 ); + /// // create dithering routine + /// FloydSteinbergColorDithering dithering = new FloydSteinbergColorDithering( ); + /// dithering.ColorTable = colorTable; + /// // apply the dithering routine + /// Bitmap newImage = dithering.Apply( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + /// + /// + /// + /// + /// + public sealed class FloydSteinbergColorDithering : ColorErrorDiffusionToAdjacentNeighbors + { + /// + /// Initializes a new instance of the class. + /// + /// + public FloydSteinbergColorDithering( ) + : base( new int[2][] { + new int[1] { 7 }, + new int[3] { 3, 5, 1 } } ) + { + } + } +} diff --git a/Sources/Imaging/Color Reduction/IColorQuantizer.cs b/Sources/Imaging/Color Reduction/IColorQuantizer.cs new file mode 100644 index 00000000..1cb895ad --- /dev/null +++ b/Sources/Imaging/Color Reduction/IColorQuantizer.cs @@ -0,0 +1,63 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2010 +// contacts@aforgenet.com +// + +namespace AForge.Imaging.ColorReduction +{ + using System; + using System.Drawing; + using AForge.Imaging; + + /// + /// Interface which is implemented by different color quantization algorithms. + /// + /// + /// The interface defines set of methods, which are to be implemented by different + /// color quantization algorithms - algorithms which are aimed to provide reduced color table/palette + /// for a color image. + /// + /// See documentation to particular implementation of the interface for additional information + /// about the algorithm. + /// + /// + public interface IColorQuantizer + { + /// + /// Process color by a color quantization algorithm. + /// + /// + /// Color to process. + /// + /// Depending on particular implementation of interface, + /// this method may simply process the specified color or store it in internal list for + /// later color palette calculation. + /// + void AddColor( Color color ); + + /// + /// Get palette of the specified size. + /// + /// + /// Palette size to return. + /// + /// Returns reduced color palette for the accumulated/processed colors. + /// + /// The method must be called after continuously calling method and + /// returns reduced color palette for colors accumulated/processed so far. + /// + Color[] GetPalette( int colorCount ); + + /// + /// Clear internals of the algorithm, like accumulated color table, etc. + /// + /// + /// The methods resets internal state of a color quantization algorithm returning + /// it to initial state. + /// + void Clear( ); + } +} diff --git a/Sources/Imaging/Color Reduction/JarvisJudiceNinkeColorDithering.cs b/Sources/Imaging/Color Reduction/JarvisJudiceNinkeColorDithering.cs new file mode 100644 index 00000000..96f602ab --- /dev/null +++ b/Sources/Imaging/Color Reduction/JarvisJudiceNinkeColorDithering.cs @@ -0,0 +1,73 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2010 +// contacts@aforgenet.com +// + +namespace AForge.Imaging.ColorReduction +{ + using System; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Color dithering using Jarvis, Judice and Ninke error diffusion. + /// + /// + /// The image processing routine represents color dithering algorithm, which is based on + /// error diffusion dithering with Jarvis-Judice-Ninke coefficients. Error is diffused + /// on 12 neighbor pixels with next coefficients: + /// + /// | * | 7 | 5 | + /// | 3 | 5 | 7 | 5 | 3 | + /// | 1 | 3 | 5 | 3 | 1 | + /// + /// / 48 + /// + /// + /// The image processing routine accepts 24/32 bpp color images for processing. As a result this routine + /// produces 4 bpp or 8 bpp indexed image, which depends on size of the specified + /// color table - 4 bpp result for + /// color tables with 16 colors or less; 8 bpp result for larger color tables. + /// + /// Sample usage: + /// + /// // create color image quantization routine + /// ColorImageQuantizer ciq = new ColorImageQuantizer( new MedianCutQuantizer( ) ); + /// // create 32 colors table + /// Color[] colorTable = ciq.CalculatePalette( image, 32 ); + /// // create dithering routine + /// JarvisJudiceNinkeColorDithering dithering = new JarvisJudiceNinkeColorDithering( ); + /// dithering.ColorTable = colorTable; + /// // apply the dithering routine + /// Bitmap newImage = dithering.Apply( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + /// + /// + /// + /// + /// + public sealed class JarvisJudiceNinkeColorDithering : ColorErrorDiffusionToAdjacentNeighbors + { + /// + /// Initializes a new instance of the class. + /// + /// + public JarvisJudiceNinkeColorDithering( ) + : base( new int[3][] { + new int[2] { 7, 5 }, + new int[5] { 3, 5, 7, 5, 3 }, + new int[5] { 1, 3, 5, 3, 1 } } ) + { + } + } +} diff --git a/Sources/Imaging/Color Reduction/MedianCutCube.cs b/Sources/Imaging/Color Reduction/MedianCutCube.cs new file mode 100644 index 00000000..d32e2472 --- /dev/null +++ b/Sources/Imaging/Color Reduction/MedianCutCube.cs @@ -0,0 +1,152 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2010 +// contacts@aforgenet.com +// + +namespace AForge.Imaging.ColorReduction +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using AForge.Imaging; + + // Color cube used by Median Cut color quantization algorithm + internal class MedianCutCube + { + private List colors; + + private readonly byte minR, maxR; + private readonly byte minG, maxG; + private readonly byte minB, maxB; + + private Color? cubeColor = null; + + // Length of the "red side" of the cube + public int RedSize + { + get { return maxR - minR; } + } + + // Length of the "green size" of the cube + public int GreenSize + { + get { return maxG - minG; } + } + + // Length of the "blue size" of the cube + public int BlueSize + { + get { return maxB - minB; } + } + + // Mean cube's color + public Color Color + { + get + { + if ( cubeColor == null ) + { + int red = 0, green = 0, blue = 0; + + foreach ( Color color in colors ) + { + red += color.R; + green += color.G; + blue += color.B; + } + + int colorsCount = colors.Count; + + if ( colorsCount != 0 ) + { + red /= colorsCount; + green /= colorsCount; + blue /= colorsCount; + } + + cubeColor = Color.FromArgb( red, green, blue ); + } + + return cubeColor.Value; + } + } + + public MedianCutCube( List colors ) + { + this.colors = colors; + + // get min/max values for each RGB component of specified colors + minR = minG = minB = 255; + maxR = maxG = maxB = 0; + + foreach ( Color color in colors ) + { + if ( color.R < minR ) + minR = color.R; + if ( color.R > maxR ) + maxR = color.R; + + if ( color.G < minG ) + minG = color.G; + if ( color.G > maxG ) + maxG = color.G; + + if ( color.B < minB ) + minB = color.B; + if ( color.B > maxB ) + maxB = color.B; + } + } + + // Split the cube into 2 smaller cubes using the specified color side for splitting + public void SplitAtMedian( int rgbComponent, out MedianCutCube cube1, out MedianCutCube cube2 ) + { + switch ( rgbComponent ) + { + case RGB.R: + colors.Sort( new RedComparer( ) ); + break; + case RGB.G: + colors.Sort( new GreenComparer( ) ); + break; + case RGB.B: + colors.Sort( new BlueComparer( ) ); + break; + } + + int median = colors.Count / 2; + + cube1 = new MedianCutCube( colors.GetRange( 0, median ) ); + cube2 = new MedianCutCube( colors.GetRange( median, colors.Count - median ) ); + } + + #region Different comparers used for sorting colors by different components + private class RedComparer : IComparer + { + public int Compare( Color c1, Color c2 ) + { + return c1.R.CompareTo( c2.R ); + } + } + + private class GreenComparer : IComparer + { + public int Compare( Color c1, Color c2 ) + { + return c1.G.CompareTo( c2.G ); + } + } + + private class BlueComparer : IComparer + { + public int Compare( Color c1, Color c2 ) + { + return c1.B.CompareTo( c2.B ); + } + } + #endregion + } +} diff --git a/Sources/Imaging/Color Reduction/MedianCutQuantizer.cs b/Sources/Imaging/Color Reduction/MedianCutQuantizer.cs new file mode 100644 index 00000000..fe237377 --- /dev/null +++ b/Sources/Imaging/Color Reduction/MedianCutQuantizer.cs @@ -0,0 +1,137 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2010 +// contacts@aforgenet.com +// + +namespace AForge.Imaging.ColorReduction +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using AForge.Imaging; + + /// + /// Median cut color quantization algorithm. + /// + /// + /// The class implements median cut + /// color quantization algorithm. + /// + /// See also class, which may simplify processing of images. + /// + /// Sample usage: + /// + /// // create the color quantization algorithm + /// IColorQuantizer quantizer = new MedianCutQuantizer( ); + /// // process colors (taken from image for example) + /// for ( int i = 0; i < pixelsToProcess; i++ ) + /// { + /// quantizer.AddColor( /* pixel color */ ); + /// } + /// // get palette reduced to 16 colors + /// Color[] palette = quantizer.GetPalette( 16 ); + /// + /// + /// + /// + /// + public class MedianCutQuantizer : IColorQuantizer + { + private List colors = new List( ); + + /// + /// Add color to the list of processed colors. + /// + /// + /// Color to add to the internal list. + /// + /// The method adds the specified color into internal list of processed colors. The list + /// is used later by method to build reduced color table of the specified size. + /// + /// + public void AddColor( Color color ) + { + colors.Add( color ); + } + + /// + /// Get paletter of the specified size. + /// + /// + /// Palette size to get. + /// + /// Returns reduced palette of the specified size, which covers colors processed so far. + /// + /// The method must be called after continuously calling method and + /// returns reduced color palette for colors accumulated/processed so far. + /// + public Color[] GetPalette( int colorCount ) + { + List cubes = new List( ); + cubes.Add( new MedianCutCube( colors ) ); + + // split the cube until we get required amount of colors + SplitCubes( cubes, colorCount ); + + // get the final palette + Color[] palette = new Color[colorCount]; + + for ( int i = 0; i < colorCount; i++ ) + { + palette[i] = cubes[i].Color; + } + + return palette; + } + + /// + /// Clear internal state of the color quantization algorithm by clearing the list of colors + /// so far processed. + /// + /// + public void Clear( ) + { + colors.Clear( ); + } + + // Split specified list of cubes into smaller cubes until the list gets the specified size + private void SplitCubes( List cubes, int count ) + { + int cubeIndexToSplit = cubes.Count - 1; + + while ( cubes.Count < count ) + { + MedianCutCube cubeToSplit = cubes[cubeIndexToSplit]; + MedianCutCube cube1, cube2; + + // find the longest color size to use for splitting + if ( ( cubeToSplit.RedSize >= cubeToSplit.GreenSize ) && ( cubeToSplit.RedSize >= cubeToSplit.BlueSize ) ) + { + cubeToSplit.SplitAtMedian( RGB.R, out cube1, out cube2 ); + } + else if ( cubeToSplit.GreenSize >= cubeToSplit.BlueSize ) + { + cubeToSplit.SplitAtMedian( RGB.G, out cube1, out cube2 ); + } + else + { + cubeToSplit.SplitAtMedian( RGB.B, out cube1, out cube2 ); + } + + // remove the old "big" cube + cubes.RemoveAt( cubeIndexToSplit ); + // add two smaller cubes instead + cubes.Insert( cubeIndexToSplit, cube1 ); + cubes.Insert( cubeIndexToSplit, cube2 ); + + if ( --cubeIndexToSplit < 0 ) + { + cubeIndexToSplit = cubes.Count - 1; + } + } + } + } +} diff --git a/Sources/Imaging/Color Reduction/OrderedColorDithering.cs b/Sources/Imaging/Color Reduction/OrderedColorDithering.cs new file mode 100644 index 00000000..0eb3ebec --- /dev/null +++ b/Sources/Imaging/Color Reduction/OrderedColorDithering.cs @@ -0,0 +1,354 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +namespace AForge.Imaging.ColorReduction +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Color dithering with a thresold matrix (ordered dithering). + /// + /// + /// The class implements ordered color dithering as described on + /// Wikipedia. + /// The algorithm achieves dithering by applying a threshold map on + /// the pixels displayed, causing some of the pixels to be rendered at a different color, depending on + /// how far in between the color is of available color entries. + /// + /// The image processing routine accepts 24/32 bpp color images for processing. As a result this routine + /// produces 4 bpp or 8 bpp indexed image, which depends on size of the specified + /// color table - 4 bpp result for + /// color tables with 16 colors or less; 8 bpp result for larger color tables. + /// + /// Sample usage: + /// + /// // create color image quantization routine + /// ColorImageQuantizer ciq = new ColorImageQuantizer( new MedianCutQuantizer( ) ); + /// // create 256 colors table + /// Color[] colorTable = ciq.CalculatePalette( image, 256 ); + /// // create dithering routine + /// OrderedColorDithering dithering = new OrderedColorDithering( ); + /// dithering.ColorTable = colorTable; + /// // apply the dithering routine + /// Bitmap newImage = dithering.Apply( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + public class OrderedColorDithering + { + private bool useCaching = false; + + private Color[] colorTable = new Color[16] + { + Color.Black, Color.DarkBlue, Color.DarkGreen, Color.DarkCyan, + Color.DarkRed, Color.DarkMagenta, Color.DarkKhaki, Color.LightGray, + Color.Gray, Color.Blue, Color.Green, Color.Cyan, + Color.Red, Color.Magenta, Color.Yellow, Color.White + }; + + private byte[,] matrix = new byte[4, 4] + { + { 2, 18, 6, 22 }, + { 26, 10, 30, 14 }, + { 8, 24, 4, 20 }, + { 32, 16, 28, 12 } + }; + + /// + /// Threshold matrix - values to add source image's values. + /// + /// + /// The property keeps a threshold matrix, which is applied to values of a source image + /// to dither. By adding these values to the source image the algorithm produces the effect when pixels + /// of the same color in source image may have different color in the result image (which depends on pixel's + /// position). This threshold map is also known as an index matrix or Bayer matrix. + /// + /// By default the property is inialized with the below matrix: + /// + /// 2 18 6 22 + /// 26 10 30 14 + /// 8 24 4 20 + /// 32 16 28 12 + /// + /// + /// + /// + public byte[,] ThresholdMatrix + { + get { return (byte[,]) matrix.Clone( ); } + set + { + if ( value == null ) + { + throw new NullReferenceException( "Threshold matrix cannot be set to null." ); + } + matrix = value; + } + } + + /// + /// Color table to use for image dithering. Must contain 2-256 colors. + /// + /// + /// Color table size determines format of the resulting image produced by this + /// image processing routine. If color table contains 16 color or less, then result image will have + /// 4 bpp indexed pixel format. If color table contains more than 16 colors, then result image will + /// have 8 bpp indexed pixel format. + /// + /// By default the property is initialized with default 16 colors, which are: + /// Black, Dark Blue, Dark Green, Dark Cyan, Dark Red, Dark Magenta, Dark Khaki, Light Gray, + /// Gray, Blue, Green, Cyan, Red, Magenta, Yellow and White. + /// + /// + /// Color table length must be in the [2, 256] range. + /// + public Color[] ColorTable + { + get { return colorTable; } + set + { + if ( ( colorTable.Length < 2 ) || ( colorTable.Length > 256 ) ) + throw new ArgumentException( "Color table length must be in the [2, 256] range." ); + + colorTable = value; + } + } + + /// + /// Use color caching during color dithering or not. + /// + /// + /// The property specifies if internal cache of already processed colors should be used or not. + /// For each pixel in the original image the color dithering routine does search in target color palette to find + /// the best matching color. To avoid doing the search again and again for already processed colors, the class may + /// use internal dictionary which maps colors of original image to indexes in target color palette. + /// + /// + /// The property provides a trade off. On one hand it may speedup color dithering routine, but on another + /// hand it increases memory usage. Also cache usage may not be efficient for very small target color tables. + /// + /// Default value is set to . + /// + /// + public bool UseCaching + { + get { return useCaching; } + set { useCaching = value; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public OrderedColorDithering( ) + { + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Threshold matrix (see property). + /// + public OrderedColorDithering( byte[,] matrix ) + { + ThresholdMatrix = matrix; + } + + /// + /// Perform color dithering for the specified image. + /// + /// + /// Source image to do color dithering for. + /// + /// Returns color dithered image. See for information about format of + /// the result image. + /// + /// Unsupported pixel format of the source image. It must 24 or 32 bpp color image. + /// + public Bitmap Apply( Bitmap sourceImage ) + { + BitmapData data = sourceImage.LockBits( new Rectangle( 0, 0, sourceImage.Width, sourceImage.Height ), + ImageLockMode.ReadOnly, sourceImage.PixelFormat ); + + Bitmap result = null; + + try + { + result = Apply( new UnmanagedImage( data ) ); + if ( ( sourceImage.HorizontalResolution > 0 ) && ( sourceImage.VerticalResolution > 0 ) ) + { + result.SetResolution( sourceImage.HorizontalResolution, sourceImage.VerticalResolution ); + } + } + finally + { + sourceImage.UnlockBits( data ); + } + + return result; + } + + /// + /// Perform color dithering for the specified image. + /// + /// + /// Source image to do color dithering for. + /// + /// Returns color dithered image. See for information about format of + /// the result image. + /// + /// Unsupported pixel format of the source image. It must 24 or 32 bpp color image. + /// + public unsafe Bitmap Apply( UnmanagedImage sourceImage ) + { + if ( ( sourceImage.PixelFormat != PixelFormat.Format24bppRgb ) && + ( sourceImage.PixelFormat != PixelFormat.Format32bppRgb ) && + ( sourceImage.PixelFormat != PixelFormat.Format32bppArgb ) && + ( sourceImage.PixelFormat != PixelFormat.Format32bppPArgb ) ) + { + throw new UnsupportedImageFormatException( "Unsupported pixel format of the source image." ); + } + + cache.Clear( ); + + // get image size + int width = sourceImage.Width; + int height = sourceImage.Height; + int stride = sourceImage.Stride; + int pixelSize = Bitmap.GetPixelFormatSize( sourceImage.PixelFormat ) / 8; + + int offset = stride - width * pixelSize; + + // create destination image + Bitmap destImage = new Bitmap( width, height, ( colorTable.Length > 16 ) ? + PixelFormat.Format8bppIndexed : PixelFormat.Format4bppIndexed ); + // and init its palette + ColorPalette cp = destImage.Palette; + for ( int i = 0, n = colorTable.Length; i < n; i++ ) + { + cp.Entries[i] = colorTable[i]; + } + destImage.Palette = cp; + + // lock destination image + BitmapData destData = destImage.LockBits( new Rectangle( 0, 0, width, height ), + ImageLockMode.ReadWrite, destImage.PixelFormat ); + + // pixel values + int r, g, b, toAdd; + int rows = matrix.GetLength( 0 ); + int cols = matrix.GetLength( 1 ); + + + // do the job + byte* ptr = (byte*) sourceImage.ImageData.ToPointer( ); + byte* dstBase = (byte*) destData.Scan0.ToPointer( ); + byte colorIndex; + + bool is8bpp = ( colorTable.Length > 16 ); + + // for each line + for ( int y = 0; y < height; y++ ) + { + byte* dst = dstBase + y * destData.Stride; + + // for each pixels + for ( int x = 0; x < width; x++, ptr += pixelSize ) + { + toAdd = matrix[( y % rows ), ( x % cols )]; + r = ptr[RGB.R] + toAdd; + g = ptr[RGB.G] + toAdd; + b = ptr[RGB.B] + toAdd; + + if ( r > 255 ) + r = 255; + if ( g > 255 ) + g = 255; + if ( b > 255 ) + b = 255; + + // get color from palette, which is the closest to current pixel's value + Color closestColor = GetClosestColor( r, g, b, out colorIndex ); + + // write color index as pixel's value to destination image + if ( is8bpp ) + { + *dst = colorIndex; + dst++; + } + else + { + if ( x % 2 == 0 ) + { + *dst |= (byte) ( colorIndex << 4 ); + } + else + { + *dst |= ( colorIndex ); + dst++; + } + } + } + } + + destImage.UnlockBits( destData ); + + return destImage; + } + + [NonSerialized] + private Dictionary cache = new Dictionary( ); + + // Get closest color from palette to the specified color + private Color GetClosestColor( int red, int green, int blue, out byte colorIndex ) + { + Color color = Color.FromArgb( red, green, blue ); + + if ( ( useCaching ) && ( cache.ContainsKey( color ) ) ) + { + colorIndex = cache[color]; + } + else + { + colorIndex = 0; + int minError = int.MaxValue; + + for ( int i = 0, n = colorTable.Length; i < n; i++ ) + { + int dr = red - colorTable[i].R; + int dg = green - colorTable[i].G; + int db = blue - colorTable[i].B; + + int error = dr * dr + dg * dg + db * db; + + if ( error < minError ) + { + minError = error; + colorIndex = (byte) i; + } + } + + if ( useCaching ) + { + cache.Add( color, colorIndex ); + } + } + + return colorTable[colorIndex]; + } + } +} diff --git a/Sources/Imaging/Color Reduction/SierraColorDithering.cs b/Sources/Imaging/Color Reduction/SierraColorDithering.cs new file mode 100644 index 00000000..51830595 --- /dev/null +++ b/Sources/Imaging/Color Reduction/SierraColorDithering.cs @@ -0,0 +1,68 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2010 +// contacts@aforgenet.com +// + +namespace AForge.Imaging.ColorReduction +{ + using System; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Color dithering using Sierra error diffusion. + /// + /// + /// The image processing routine represents color dithering algorithm, which is based on + /// error diffusion dithering with Sierra coefficients. Error is diffused + /// on 10 neighbor pixels with next coefficients: + /// + /// | * | 5 | 3 | + /// | 2 | 4 | 5 | 4 | 2 | + /// | 2 | 3 | 2 | + /// + /// / 32 + /// + /// + /// The image processing routine accepts 24/32 bpp color images for processing. As a result this routine + /// produces 4 bpp or 8 bpp indexed image, which depends on size of the specified + /// color table - 4 bpp result for + /// color tables with 16 colors or less; 8 bpp result for larger color tables. + /// + /// Sample usage: + /// + /// // create dithering routine (use default color table) + /// SierraColorDithering dithering = new SierraColorDithering( ); + /// // apply the dithering routine + /// Bitmap newImage = dithering.Apply( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + /// + /// + /// + /// + /// + public sealed class SierraColorDithering : ColorErrorDiffusionToAdjacentNeighbors + { + /// + /// Initializes a new instance of the class. + /// + /// + public SierraColorDithering( ) + : base( new int[3][] { + new int[2] { 5, 3 }, + new int[5] { 2, 4, 5, 4, 2 }, + new int[3] { 2, 3, 2 } } ) + { + } + } +} diff --git a/Sources/Imaging/Color Reduction/StuckiColorDithering.cs b/Sources/Imaging/Color Reduction/StuckiColorDithering.cs new file mode 100644 index 00000000..ecb0581b --- /dev/null +++ b/Sources/Imaging/Color Reduction/StuckiColorDithering.cs @@ -0,0 +1,73 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2010 +// contacts@aforgenet.com +// + +namespace AForge.Imaging.ColorReduction +{ + using System; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Color dithering using Stucki error diffusion. + /// + /// + /// The image processing routine represents color dithering algorithm, which is based on + /// error diffusion dithering with Stucki coefficients. Error is diffused + /// on 12 neighbor pixels with next coefficients: + /// + /// | * | 8 | 4 | + /// | 2 | 4 | 8 | 4 | 2 | + /// | 1 | 2 | 4 | 2 | 1 | + /// + /// / 42 + /// + /// + /// The image processing routine accepts 24/32 bpp color images for processing. As a result this routine + /// produces 4 bpp or 8 bpp indexed image, which depends on size of the specified + /// color table - 4 bpp result for + /// color tables with 16 colors or less; 8 bpp result for larger color tables. + /// + /// Sample usage: + /// + /// // create color image quantization routine + /// ColorImageQuantizer ciq = new ColorImageQuantizer( new MedianCutQuantizer( ) ); + /// // create 64 colors table + /// Color[] colorTable = ciq.CalculatePalette( image, 64 ); + /// // create dithering routine + /// StuckiColorDithering dithering = new StuckiColorDithering( ); + /// dithering.ColorTable = colorTable; + /// // apply the dithering routine + /// Bitmap newImage = dithering.Apply( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + /// + /// + /// + /// + /// + public sealed class StuckiColorDithering : ColorErrorDiffusionToAdjacentNeighbors + { + /// + /// Initializes a new instance of the class. + /// + /// + public StuckiColorDithering( ) + : base( new int[3][] { + new int[2] { 8, 4 }, + new int[5] { 2, 4, 8, 4, 2 }, + new int[5] { 1, 2, 4, 2, 1 } } ) + { + } + } +} diff --git a/Sources/Imaging/ColorConverter.cs b/Sources/Imaging/ColorConverter.cs new file mode 100644 index 00000000..27e66708 --- /dev/null +++ b/Sources/Imaging/ColorConverter.cs @@ -0,0 +1,452 @@ +// AForge Image Processing Library +// AForge.NET framework +// +// Copyright © AForge.NET, 2007-2011 +// contacts@aforgenet.com +// + +namespace AForge.Imaging +{ + using System; + using System.Drawing; + + /// + /// RGB components. + /// + /// + /// The class encapsulates RGB color components. + /// PixelFormat.Format24bppRgb + /// actually means BGR format. + /// + /// + public class RGB + { + /// + /// Index of red component. + /// + public const short R = 2; + + /// + /// Index of green component. + /// + public const short G = 1; + + /// + /// Index of blue component. + /// + public const short B = 0; + + /// + /// Index of alpha component for ARGB images. + /// + public const short A = 3; + + /// + /// Red component. + /// + public byte Red; + + /// + /// Green component. + /// + public byte Green; + + /// + /// Blue component. + /// + public byte Blue; + + /// + /// Alpha component. + /// + public byte Alpha; + + /// + /// Color value of the class. + /// + public System.Drawing.Color Color + { + get { return Color.FromArgb( Alpha, Red, Green, Blue ); } + set + { + Red = value.R; + Green = value.G; + Blue = value.B; + Alpha = value.A; + } + } + + /// + /// Initializes a new instance of the class. + /// + public RGB( ) + { + Red = 0; + Green = 0; + Blue = 0; + Alpha = 255; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Red component. + /// Green component. + /// Blue component. + /// + public RGB( byte red, byte green, byte blue ) + { + this.Red = red; + this.Green = green; + this.Blue = blue; + this.Alpha = 255; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Red component. + /// Green component. + /// Blue component. + /// Alpha component. + /// + public RGB( byte red, byte green, byte blue, byte alpha ) + { + this.Red = red; + this.Green = green; + this.Blue = blue; + this.Alpha = alpha; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Initialize from specified color. + /// + public RGB( System.Drawing.Color color ) + { + this.Red = color.R; + this.Green = color.G; + this.Blue = color.B; + this.Alpha = color.A; + } + } + + /// + /// HSL components. + /// + /// + /// The class encapsulates HSL color components. + /// + public class HSL + { + /// + /// Hue component. + /// + /// + /// Hue is measured in the range of [0, 359]. + /// + public int Hue; + + /// + /// Saturation component. + /// + /// + /// Saturation is measured in the range of [0, 1]. + /// + public float Saturation; + + /// + /// Luminance value. + /// + /// + /// Luminance is measured in the range of [0, 1]. + /// + public float Luminance; + + /// + /// Initializes a new instance of the class. + /// + public HSL( ) { } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Hue component. + /// Saturation component. + /// Luminance component. + /// + public HSL( int hue, float saturation, float luminance ) + { + this.Hue = hue; + this.Saturation = saturation; + this.Luminance = luminance; + } + + /// + /// Convert from RGB to HSL color space. + /// + /// + /// Source color in RGB color space. + /// Destination color in HSL color space. + /// + /// See HSL and HSV Wiki + /// for information about the algorithm to convert from RGB to HSL. + /// + public static void FromRGB( RGB rgb, HSL hsl ) + { + float r = ( rgb.Red / 255.0f ); + float g = ( rgb.Green / 255.0f ); + float b = ( rgb.Blue / 255.0f ); + + float min = Math.Min( Math.Min( r, g ), b ); + float max = Math.Max( Math.Max( r, g ), b ); + float delta = max - min; + + // get luminance value + hsl.Luminance = ( max + min ) / 2; + + if ( delta == 0 ) + { + // gray color + hsl.Hue = 0; + hsl.Saturation = 0.0f; + } + else + { + // get saturation value + hsl.Saturation = ( hsl.Luminance <= 0.5 ) ? ( delta / ( max + min ) ) : ( delta / ( 2 - max - min ) ); + + // get hue value + float hue; + + if ( r == max ) + { + hue = ( ( g - b ) / 6 ) / delta; + } + else if ( g == max ) + { + hue = ( 1.0f / 3 ) + ( ( b - r ) / 6 ) / delta; + } + else + { + hue = ( 2.0f / 3 ) + ( ( r - g ) / 6 ) / delta; + } + + // correct hue if needed + if ( hue < 0 ) + hue += 1; + if ( hue > 1 ) + hue -= 1; + + hsl.Hue = (int) ( hue * 360 ); + } + } + + /// + /// Convert from RGB to HSL color space. + /// + /// + /// Source color in RGB color space. + /// + /// Returns instance, which represents converted color value. + /// + public static HSL FromRGB( RGB rgb ) + { + HSL hsl = new HSL( ); + FromRGB( rgb, hsl ); + return hsl; + } + + /// + /// Convert from HSL to RGB color space. + /// + /// + /// Source color in HSL color space. + /// Destination color in RGB color space. + /// + public static void ToRGB( HSL hsl, RGB rgb ) + { + if ( hsl.Saturation == 0 ) + { + // gray values + rgb.Red = rgb.Green = rgb.Blue = (byte) ( hsl.Luminance * 255 ); + } + else + { + float v1, v2; + float hue = (float) hsl.Hue / 360; + + v2 = ( hsl.Luminance < 0.5 ) ? + ( hsl.Luminance * ( 1 + hsl.Saturation ) ) : + ( ( hsl.Luminance + hsl.Saturation ) - ( hsl.Luminance * hsl.Saturation ) ); + v1 = 2 * hsl.Luminance - v2; + + rgb.Red = (byte) ( 255 * Hue_2_RGB( v1, v2, hue + ( 1.0f / 3 ) ) ); + rgb.Green = (byte) ( 255 * Hue_2_RGB( v1, v2, hue ) ); + rgb.Blue = (byte) ( 255 * Hue_2_RGB( v1, v2, hue - ( 1.0f / 3 ) ) ); + } + rgb.Alpha = 255; + } + + /// + /// Convert the color to RGB color space. + /// + /// + /// Returns instance, which represents converted color value. + /// + public RGB ToRGB( ) + { + RGB rgb = new RGB( ); + ToRGB( this, rgb ); + return rgb; + } + + #region Private members + // HSL to RGB helper routine + private static float Hue_2_RGB( float v1, float v2, float vH ) + { + if ( vH < 0 ) + vH += 1; + if ( vH > 1 ) + vH -= 1; + if ( ( 6 * vH ) < 1 ) + return ( v1 + ( v2 - v1 ) * 6 * vH ); + if ( ( 2 * vH ) < 1 ) + return v2; + if ( ( 3 * vH ) < 2 ) + return ( v1 + ( v2 - v1 ) * ( ( 2.0f / 3 ) - vH ) * 6 ); + return v1; + } + #endregion + } + + /// + /// YCbCr components. + /// + /// + /// The class encapsulates YCbCr color components. + /// + public class YCbCr + { + /// + /// Index of Y component. + /// + public const short YIndex = 0; + + /// + /// Index of Cb component. + /// + public const short CbIndex = 1; + + /// + /// Index of Cr component. + /// + public const short CrIndex = 2; + + /// + /// Y component. + /// + public float Y; + + /// + /// Cb component. + /// + public float Cb; + + /// + /// Cr component. + /// + public float Cr; + + /// + /// Initializes a new instance of the class. + /// + public YCbCr( ) { } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Y component. + /// Cb component. + /// Cr component. + /// + public YCbCr( float y, float cb, float cr ) + { + this.Y = Math.Max( 0.0f, Math.Min( 1.0f, y ) ); + this.Cb = Math.Max( -0.5f, Math.Min( 0.5f, cb ) ); + this.Cr = Math.Max( -0.5f, Math.Min( 0.5f, cr ) ); + } + + /// + /// Convert from RGB to YCbCr color space (Rec 601-1 specification). + /// + /// + /// Source color in RGB color space. + /// Destination color in YCbCr color space. + /// + public static void FromRGB( RGB rgb, YCbCr ycbcr ) + { + float r = (float) rgb.Red / 255; + float g = (float) rgb.Green / 255; + float b = (float) rgb.Blue / 255; + + ycbcr.Y = (float) ( 0.2989 * r + 0.5866 * g + 0.1145 * b ); + ycbcr.Cb = (float) ( -0.1687 * r - 0.3313 * g + 0.5000 * b ); + ycbcr.Cr = (float) ( 0.5000 * r - 0.4184 * g - 0.0816 * b ); + } + + /// + /// Convert from RGB to YCbCr color space (Rec 601-1 specification). + /// + /// + /// Source color in RGB color space. + /// + /// Returns instance, which represents converted color value. + /// + public static YCbCr FromRGB( RGB rgb ) + { + YCbCr ycbcr = new YCbCr( ); + FromRGB( rgb, ycbcr ); + return ycbcr; + } + + /// + /// Convert from YCbCr to RGB color space. + /// + /// + /// Source color in YCbCr color space. + /// Destination color in RGB color spacs. + /// + public static void ToRGB( YCbCr ycbcr, RGB rgb ) + { + // don't warry about zeros. compiler will remove them + float r = Math.Max( 0.0f, Math.Min( 1.0f, (float) ( ycbcr.Y + 0.0000 * ycbcr.Cb + 1.4022 * ycbcr.Cr ) ) ); + float g = Math.Max( 0.0f, Math.Min( 1.0f, (float) ( ycbcr.Y - 0.3456 * ycbcr.Cb - 0.7145 * ycbcr.Cr ) ) ); + float b = Math.Max( 0.0f, Math.Min( 1.0f, (float) ( ycbcr.Y + 1.7710 * ycbcr.Cb + 0.0000 * ycbcr.Cr ) ) ); + + rgb.Red = (byte) ( r * 255 ); + rgb.Green = (byte) ( g * 255 ); + rgb.Blue = (byte) ( b * 255 ); + rgb.Alpha = 255; + } + + /// + /// Convert the color to RGB color space. + /// + /// + /// Returns instance, which represents converted color value. + /// + public RGB ToRGB( ) + { + RGB rgb = new RGB( ); + ToRGB( this, rgb ); + return rgb; + } + } +} diff --git a/Sources/Imaging/Complex Filters/FrequencyFilter.cs b/Sources/Imaging/Complex Filters/FrequencyFilter.cs new file mode 100644 index 00000000..39069bb7 --- /dev/null +++ b/Sources/Imaging/Complex Filters/FrequencyFilter.cs @@ -0,0 +1,131 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2005-2009 +// andrew.kirillov@aforgenet.com +// + +namespace AForge.Imaging.ComplexFilters +{ + using System; + using AForge; + using AForge.Math; + + /// + /// Filtering of frequencies outside of specified range in complex Fourier + /// transformed image. + /// + /// + /// The filer keeps only specified range of frequencies in complex + /// Fourier transformed image. The rest of frequencies are zeroed. + /// + /// Sample usage: + /// + /// // create complex image + /// ComplexImage complexImage = ComplexImage.FromBitmap( image ); + /// // do forward Fourier transformation + /// complexImage.ForwardFourierTransform( ); + /// // create filter + /// FrequencyFilter filter = new FrequencyFilter( new IntRange( 20, 128 ) ); + /// // apply filter + /// filter.Apply( complexImage ); + /// // do backward Fourier transformation + /// complexImage.BackwardFourierTransform( ); + /// // get complex image as bitmat + /// Bitmap fourierImage = complexImage.ToBitmap( ); + /// + /// + /// Initial image: + /// + /// Fourier image: + /// + /// + /// + public class FrequencyFilter : IComplexFilter + { + private IntRange frequencyRange = new IntRange( 0, 1024 ); + + /// + /// Range of frequencies to keep. + /// + /// + /// The range specifies the range of frequencies to keep. Values is frequencies + /// outside of this range are zeroed. + /// + /// Default value is set to [0, 1024]. + /// + public IntRange FrequencyRange + { + get { return frequencyRange; } + set { frequencyRange = value; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public FrequencyFilter( ) { } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Range of frequencies to keep. + /// + public FrequencyFilter( IntRange frequencyRange ) + { + this.frequencyRange = frequencyRange; + } + + /// + /// Apply filter to complex image. + /// + /// + /// Complex image to apply filter to. + /// + /// The source complex image should be Fourier transformed. + /// + public void Apply( ComplexImage complexImage ) + { + if ( !complexImage.FourierTransformed ) + { + throw new ArgumentException( "The source complex image should be Fourier transformed." ); + } + + // get image dimenstion + int width = complexImage.Width; + int height = complexImage.Height; + + // half of dimensions + int hw = width >> 1; + int hh = height >> 1; + + // min and max frequencies + int min = frequencyRange.Min; + int max = frequencyRange.Max; + + // complex data to process + Complex[,] data = complexImage.Data; + + // process all data + for ( int i = 0; i < height; i++ ) + { + int y = i - hh; + + for ( int j = 0; j < width; j++ ) + { + int x = j - hw; + int d = (int) Math.Sqrt( x * x + y * y ); + + // filter values outside the range + if ( ( d > max ) || ( d < min ) ) + { + data[i, j].Re = 0; + data[i, j].Im = 0; + } + } + } + } + } +} diff --git a/Sources/Imaging/Complex Filters/IComplexFilter.cs b/Sources/Imaging/Complex Filters/IComplexFilter.cs new file mode 100644 index 00000000..020803a5 --- /dev/null +++ b/Sources/Imaging/Complex Filters/IComplexFilter.cs @@ -0,0 +1,34 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2005-2009 +// andrew.kirillov@aforgenet.com +// + +namespace AForge.Imaging.ComplexFilters +{ + using System; + using AForge; + using AForge.Math; + + /// + /// Image processing filter, which operates with Fourier transformed + /// complex image. + /// + /// + /// The interface defines the set of methods, which should be + /// provided by all image processing filter, which operate with Fourier + /// transformed complex image. + /// + public interface IComplexFilter + { + /// + /// Apply filter to complex image. + /// + /// + /// Complex image to apply filter to. + /// + void Apply( ComplexImage complexImage ); + } +} diff --git a/Sources/Imaging/ComplexImage.cs b/Sources/Imaging/ComplexImage.cs new file mode 100644 index 00000000..c9867c44 --- /dev/null +++ b/Sources/Imaging/ComplexImage.cs @@ -0,0 +1,316 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2005-2009 +// andrew.kirillov@aforgenet.com +// + +namespace AForge.Imaging +{ + using System; + using System.Drawing; + using System.Drawing.Imaging; + using AForge; + using AForge.Math; + + /// + /// Complex image. + /// + /// + /// The class is used to keep image represented in complex numbers sutable for Fourier + /// transformations. + /// + /// Sample usage: + /// + /// // create complex image + /// ComplexImage complexImage = ComplexImage.FromBitmap( image ); + /// // do forward Fourier transformation + /// complexImage.ForwardFourierTransform( ); + /// // get complex image as bitmat + /// Bitmap fourierImage = complexImage.ToBitmap( ); + /// + /// + /// Initial image: + /// + /// Fourier image: + /// + /// + /// + public class ComplexImage : ICloneable + { + // image complex data + private Complex[,] data; + // image dimension + private int width; + private int height; + // current state of the image (transformed with Fourier ot not) + private bool fourierTransformed = false; + + /// + /// Image width. + /// + /// + public int Width + { + get { return width; } + } + + /// + /// Image height. + /// + /// + public int Height + { + get { return height; } + } + + /// + /// Status of the image - Fourier transformed or not. + /// + /// + public bool FourierTransformed + { + get { return fourierTransformed; } + } + + /// + /// Complex image's data. + /// + /// + /// Return's 2D array of [height, width] size, which keeps image's + /// complex data. + /// + public Complex[,] Data + { + get { return data; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Image width. + /// Image height. + /// + /// The constractor is protected, what makes it imposible to instantiate this + /// class directly. To create an instance of this class or + /// method should be used. + /// + protected ComplexImage( int width, int height ) + { + this.width = width; + this.height = height; + this.data = new Complex[height, width]; + this.fourierTransformed = false; + } + + /// + /// Clone the complex image. + /// + /// + /// Returns copy of the complex image. + /// + public object Clone( ) + { + // create new complex image + ComplexImage dstImage = new ComplexImage( width, height ); + Complex[,] data = dstImage.data; + + for ( int i = 0; i < height; i++ ) + { + for ( int j = 0; j < width; j++ ) + { + data[i, j] = this.data[i, j]; + } + } + + // clone mode as well + dstImage.fourierTransformed = fourierTransformed; + + return dstImage; + } + + /// + /// Create complex image from grayscale bitmap. + /// + /// + /// Source grayscale bitmap (8 bpp indexed). + /// + /// Returns an instance of complex image. + /// + /// The source image has incorrect pixel format. + /// Image width and height should be power of 2. + /// + public static ComplexImage FromBitmap( Bitmap image ) + { + // check image format + if ( image.PixelFormat != PixelFormat.Format8bppIndexed ) + { + throw new UnsupportedImageFormatException( "Source image can be graysclae (8bpp indexed) image only." ); + } + + // lock source bitmap data + BitmapData imageData = image.LockBits( + new Rectangle( 0, 0, image.Width, image.Height ), + ImageLockMode.ReadOnly, PixelFormat.Format8bppIndexed ); + + ComplexImage complexImage; + + try + { + complexImage = FromBitmap( imageData ); + } + finally + { + // unlock source images + image.UnlockBits( imageData ); + } + + return complexImage; + } + + /// + /// Create complex image from grayscale bitmap. + /// + /// + /// Source image data (8 bpp indexed). + /// + /// Returns an instance of complex image. + /// + /// The source image has incorrect pixel format. + /// Image width and height should be power of 2. + /// + public static ComplexImage FromBitmap( BitmapData imageData ) + { + // check image format + if ( imageData.PixelFormat != PixelFormat.Format8bppIndexed ) + { + throw new UnsupportedImageFormatException( "Source image can be graysclae (8bpp indexed) image only." ); + } + + // get source image size + int width = imageData.Width; + int height = imageData.Height; + int offset = imageData.Stride - width; + + // check image size + if ( ( !Tools.IsPowerOf2( width ) ) || ( !Tools.IsPowerOf2( height ) ) ) + { + throw new InvalidImagePropertiesException( "Image width and height should be power of 2." ); + } + + // create new complex image + ComplexImage complexImage = new ComplexImage( width, height ); + Complex[,] data = complexImage.data; + + // do the job + unsafe + { + byte* src = (byte*) imageData.Scan0.ToPointer( ); + + // for each line + for ( int y = 0; y < height; y++ ) + { + // for each pixel + for ( int x = 0; x < width; x++, src++ ) + { + data[y, x].Re = (float) *src / 255; + } + src += offset; + } + } + + return complexImage; + } + + /// + /// Convert complex image to bitmap. + /// + /// + /// Returns grayscale bitmap. + /// + public Bitmap ToBitmap( ) + { + // create new image + Bitmap dstImage = AForge.Imaging.Image.CreateGrayscaleImage( width, height ); + + // lock destination bitmap data + BitmapData dstData = dstImage.LockBits( + new Rectangle( 0, 0, width, height ), + ImageLockMode.ReadWrite, PixelFormat.Format8bppIndexed ); + + int offset = dstData.Stride - width; + double scale = ( fourierTransformed ) ? Math.Sqrt( width * height ) : 1; + + // do the job + unsafe + { + byte* dst = (byte*) dstData.Scan0.ToPointer( ); + + for ( int y = 0; y < height; y++ ) + { + for ( int x = 0; x < width; x++, dst++ ) + { + *dst = (byte) System.Math.Max( 0, System.Math.Min( 255, data[y, x].Magnitude * scale * 255 ) ); + } + dst += offset; + } + } + // unlock destination images + dstImage.UnlockBits( dstData ); + + return dstImage; + } + + /// + /// Applies forward fast Fourier transformation to the complex image. + /// + /// + public void ForwardFourierTransform( ) + { + if ( !fourierTransformed ) + { + for ( int y = 0; y < height; y++ ) + { + for ( int x = 0; x < width; x++ ) + { + if ( ( ( x + y ) & 0x1 ) != 0 ) + { + data[y, x].Re *= -1; + data[y, x].Im *= -1; + } + } + } + + FourierTransform.FFT2( data, FourierTransform.Direction.Forward ); + fourierTransformed = true; + } + } + + /// + /// Applies backward fast Fourier transformation to the complex image. + /// + /// + public void BackwardFourierTransform( ) + { + if ( fourierTransformed ) + { + FourierTransform.FFT2( data, FourierTransform.Direction.Backward ); + fourierTransformed = false; + + for ( int y = 0; y < height; y++ ) + { + for ( int x = 0; x < width; x++ ) + { + if ( ( ( x + y ) & 0x1 ) != 0 ) + { + data[y, x].Re *= -1; + data[y, x].Im *= -1; + } + } + } + } + } + } +} diff --git a/Sources/Imaging/DocumentSkewChecker.cs b/Sources/Imaging/DocumentSkewChecker.cs new file mode 100644 index 00000000..2cde8af3 --- /dev/null +++ b/Sources/Imaging/DocumentSkewChecker.cs @@ -0,0 +1,502 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2005-2010 +// andrew.kirillov@aforgenet.com +// +// Alejandro Pirola, 2008 +// alejamp@gmail.com +// + +namespace AForge.Imaging +{ + using System; + using System.Collections; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Skew angle checker for scanned documents. + /// + /// + /// The class implements document's skew checking algorithm, which is based + /// on Hough line transformation. The algorithm + /// is based on searching for text base lines - black line of text bottoms' followed + /// by white line below. + /// + /// The routine supposes that a white-background document is provided + /// with black letters. The algorithm is not supposed for any type of objects, but for + /// document images with text. + /// + /// The range of angles to detect is controlled by property. + /// + /// The filter accepts 8 bpp grayscale images for processing. + /// + /// Sample usage: + /// + /// // create instance of skew checker + /// DocumentSkewChecker skewChecker = new DocumentSkewChecker( ); + /// // get documents skew angle + /// double angle = skewChecker.GetSkewAngle( documentImage ); + /// // create rotation filter + /// RotateBilinear rotationFilter = new RotateBilinear( -angle ); + /// rotationFilter.FillColor = Color.White; + /// // rotate image applying the filter + /// Bitmap rotatedImage = rotationFilter.Apply( documentImage ); + /// + /// + /// Initial image: + /// + /// Deskewed image: + /// + /// + /// + /// + /// + public class DocumentSkewChecker + { + // Hough transformation: quality settings + private int stepsPerDegree; + private int houghHeight; + private double thetaStep; + private double maxSkewToDetect; + + // Hough transformation: precalculated Sine and Cosine values + private double[] sinMap; + private double[] cosMap; + private bool needToInitialize = true; + + // Hough transformation: Hough map + private short[,] houghMap; + private short maxMapIntensity = 0; + + private int localPeakRadius = 4; + private ArrayList lines = new ArrayList( ); + + /// + /// Steps per degree, [1, 10]. + /// + /// + /// The value defines quality of Hough transform and its ability to detect + /// line slope precisely. + /// + /// Default value is set to 1. + /// + /// + public int StepsPerDegree + { + get { return stepsPerDegree; } + set + { + stepsPerDegree = Math.Max( 1, Math.Min( 10, value ) ); + needToInitialize = true; + } + } + + /// + /// Maximum skew angle to detect, [0, 45] degrees. + /// + /// + /// The value sets maximum document's skew angle to detect. + /// Document's skew angle can be as positive (rotated counter clockwise), as negative + /// (rotated clockwise). So setting this value to 25, for example, will lead to + /// [-25, 25] degrees detection range. + /// + /// Scanned documents usually have skew in the [-20, 20] degrees range. + /// + /// Default value is set to 30. + /// + /// + public double MaxSkewToDetect + { + get { return maxSkewToDetect; } + set + { + maxSkewToDetect = Math.Max( 0, Math.Min( 45, value ) ); + needToInitialize = true; + } + } + + /// + /// Minimum angle to detect skew in degrees. + /// + /// + /// The property is deprecated and setting it has not any effect. + /// Use property instead. + /// + [Obsolete( "The property is deprecated and setting it has not any effect. Use MaxSkewToDetect property instead." )] + public double MinBeta + { + get { return ( -maxSkewToDetect ); } + set { } + } + + /// + /// Maximum angle to detect skew in degrees. + /// + /// + /// The property is deprecated and setting it has not any effect. + /// Use property instead. + /// + [Obsolete( "The property is deprecated and setting it has not any effect. Use MaxSkewToDetect property instead." )] + public double MaxBeta + { + get { return ( maxSkewToDetect ); } + set { } + } + + /// + /// Radius for searching local peak value, [1, 10]. + /// + /// + /// The value determines radius around a map's value, which is analyzed to determine + /// if the map's value is a local maximum in specified area. + /// + /// Default value is set to 4. + /// + public int LocalPeakRadius + { + get { return localPeakRadius; } + set { localPeakRadius = Math.Max( 1, Math.Min( 10, value ) ); } + } + + /// + /// Initializes a new instance of the class. + /// + public DocumentSkewChecker( ) + { + StepsPerDegree = 10; + MaxSkewToDetect = 30; + } + + /// + /// Get skew angle of the provided document image. + /// + /// + /// Document's image to get skew angle of. + /// + /// Returns document's skew angle. If the returned angle equals to -90, + /// then document skew detection has failed. + /// + /// Unsupported pixel format of the source image. + /// + public double GetSkewAngle( Bitmap image ) + { + return GetSkewAngle( image, new Rectangle( 0, 0, image.Width, image.Height ) ); + } + + /// + /// Get skew angle of the provided document image. + /// + /// + /// Document's image to get skew angle of. + /// Image's rectangle to process (used to exclude processing of + /// regions, which are not relevant to skew detection). + /// + /// Returns document's skew angle. If the returned angle equals to -90, + /// then document skew detection has failed. + /// + /// Unsupported pixel format of the source image. + /// + public double GetSkewAngle( Bitmap image, Rectangle rect ) + { + // check image format + if ( image.PixelFormat != PixelFormat.Format8bppIndexed ) + { + throw new UnsupportedImageFormatException( "Unsupported pixel format of the source image." ); + } + + // lock source image + BitmapData imageData = image.LockBits( + new Rectangle( 0, 0, image.Width, image.Height ), + ImageLockMode.ReadOnly, PixelFormat.Format8bppIndexed ); + + double skewAngle; + + try + { + // process the image + skewAngle = GetSkewAngle( new UnmanagedImage( imageData ), rect ); + } + finally + { + // unlock image + image.UnlockBits( imageData ); + } + + return skewAngle; + } + + /// + /// Get skew angle of the provided document image. + /// + /// + /// Document's image data to get skew angle of. + /// + /// Returns document's skew angle. If the returned angle equals to -90, + /// then document skew detection has failed. + /// + /// Unsupported pixel format of the source image. + /// + public double GetSkewAngle( BitmapData imageData ) + { + return GetSkewAngle( new UnmanagedImage( imageData ), + new Rectangle( 0, 0, imageData.Width, imageData.Height ) ); + } + + /// + /// Get skew angle of the provided document image. + /// + /// + /// Document's image data to get skew angle of. + /// Image's rectangle to process (used to exclude processing of + /// regions, which are not relevant to skew detection). + /// + /// Returns document's skew angle. If the returned angle equals to -90, + /// then document skew detection has failed. + /// + /// Unsupported pixel format of the source image. + /// + public double GetSkewAngle( BitmapData imageData, Rectangle rect ) + { + return GetSkewAngle( new UnmanagedImage( imageData ), rect ); + } + + /// + /// Get skew angle of the provided document image. + /// + /// + /// Document's unmanaged image to get skew angle of. + /// + /// Returns document's skew angle. If the returned angle equals to -90, + /// then document skew detection has failed. + /// + /// Unsupported pixel format of the source image. + /// + public double GetSkewAngle( UnmanagedImage image ) + { + return GetSkewAngle( image, new Rectangle( 0, 0, image.Width, image.Height ) ); + } + + /// + /// Get skew angle of the provided document image. + /// + /// + /// Document's unmanaged image to get skew angle of. + /// Image's rectangle to process (used to exclude processing of + /// regions, which are not relevant to skew detection). + /// + /// Returns document's skew angle. If the returned angle equals to -90, + /// then document skew detection has failed. + /// + /// Unsupported pixel format of the source image. + /// + public double GetSkewAngle( UnmanagedImage image, Rectangle rect ) + { + if ( image.PixelFormat != PixelFormat.Format8bppIndexed ) + { + throw new UnsupportedImageFormatException( "Unsupported pixel format of the source image." ); + } + + // init hough transformation settings + InitHoughMap( ); + + // get source image size + int width = image.Width; + int height = image.Height; + int halfWidth = width / 2; + int halfHeight = height / 2; + + // make sure the specified rectangle recides with the source image + rect.Intersect( new Rectangle( 0, 0, width, height ) ); + + int startX = -halfWidth + rect.Left; + int startY = -halfHeight + rect.Top; + int stopX = width - halfWidth - ( width - rect.Right ); + int stopY = height - halfHeight - ( height - rect.Bottom ) - 1; + + int offset = image.Stride - rect.Width; + + // calculate Hough map's width + int halfHoughWidth = (int) Math.Sqrt( halfWidth * halfWidth + halfHeight * halfHeight ); + int houghWidth = halfHoughWidth * 2; + + houghMap = new short[houghHeight, houghWidth]; + + // do the job + unsafe + { + byte* src = (byte*) image.ImageData.ToPointer( ) + + rect.Top * image.Stride + rect.Left; + byte* srcBelow = src + image.Stride; + + // for each row + for ( int y = startY; y < stopY; y++ ) + { + // for each pixel + for ( int x = startX; x < stopX; x++, src++, srcBelow++ ) + { + // if current pixel is more black + // and pixel below is more white + if ( ( *src < 128 ) && ( *srcBelow >= 128 ) ) + { + // for each Theta value + for ( int theta = 0; theta < houghHeight; theta++ ) + { + int radius = (int) ( cosMap[theta] * x - sinMap[theta] * y ) + halfHoughWidth; + + if ( ( radius < 0 ) || ( radius >= houghWidth ) ) + continue; + + houghMap[theta, radius]++; + } + } + } + src += offset; + srcBelow += offset; + } + } + + // find max value in Hough map + maxMapIntensity = 0; + for ( int i = 0; i < houghHeight; i++ ) + { + for ( int j = 0; j < houghWidth; j++ ) + { + if ( houghMap[i, j] > maxMapIntensity ) + { + maxMapIntensity = houghMap[i, j]; + } + } + } + + CollectLines( (short) ( width / 10 ) ); + + // get skew angle + HoughLine[] hls = this.GetMostIntensiveLines( 5 ); + + double skewAngle = 0; + double sumIntensity = 0; + + foreach ( HoughLine hl in hls ) + { + if ( hl.RelativeIntensity > 0.5 ) + { + skewAngle += ( hl.Theta * hl.RelativeIntensity ); + sumIntensity += hl.RelativeIntensity; + } + } + if ( hls.Length > 0 ) skewAngle = skewAngle / sumIntensity; + + return skewAngle - 90.0; + } + + // Get specified amount of lines with highest intensity + private HoughLine[] GetMostIntensiveLines( int count ) + { + // lines count + int n = Math.Min( count, lines.Count ); + + // result array + HoughLine[] dst = new HoughLine[n]; + lines.CopyTo( 0, dst, 0, n ); + + return dst; + } + + // Collect lines with intesities greater or equal then specified + private void CollectLines( short minLineIntensity ) + { + int maxTheta = houghMap.GetLength( 0 ); + int maxRadius = houghMap.GetLength( 1 ); + + short intensity; + bool foundGreater; + + int halfHoughWidth = maxRadius >> 1; + + // clean lines collection + lines.Clear( ); + + // for each Theta value + for ( int theta = 0; theta < maxTheta; theta++ ) + { + // for each Radius value + for ( int radius = 0; radius < maxRadius; radius++ ) + { + // get current value + intensity = houghMap[theta, radius]; + + if ( intensity < minLineIntensity ) + continue; + + foundGreater = false; + + // check neighboors + for ( int tt = theta - localPeakRadius, ttMax = theta + localPeakRadius; tt < ttMax; tt++ ) + { + // skip out of map values + if ( tt < 0 ) + continue; + if ( tt >= maxTheta ) + break; + + // break if it is not local maximum + if ( foundGreater == true ) + break; + + for ( int tr = radius - localPeakRadius, trMax = radius + localPeakRadius; tr < trMax; tr++ ) + { + // skip out of map values + if ( tr < 0 ) + continue; + if ( tr >= maxRadius ) + break; + + // compare the neighboor with current value + if ( houghMap[tt, tr] > intensity ) + { + foundGreater = true; + break; + } + } + } + + // was it local maximum ? + if ( !foundGreater ) + { + // we have local maximum + lines.Add( new HoughLine( 90.0 - maxSkewToDetect + (double) theta / stepsPerDegree, (short) ( radius - halfHoughWidth ), intensity, (double) intensity / maxMapIntensity ) ); + } + } + } + + lines.Sort( ); + } + + // Init Hough settings and map + private void InitHoughMap( ) + { + if ( needToInitialize ) + { + needToInitialize = false; + + houghHeight = (int) ( 2 * maxSkewToDetect * stepsPerDegree ); + thetaStep = ( 2 * maxSkewToDetect * Math.PI / 180 ) / houghHeight; + + // precalculate Sine and Cosine values + sinMap = new double[houghHeight]; + cosMap = new double[houghHeight]; + + double minTheta = 90.0 - maxSkewToDetect; + + for ( int i = 0; i < houghHeight; i++ ) + { + sinMap[i] = Math.Sin( ( minTheta * Math.PI / 180 ) + ( i * thetaStep ) ); + cosMap[i] = Math.Cos( ( minTheta * Math.PI / 180 ) + ( i * thetaStep ) ); + } + } + } + } +} diff --git a/Sources/Imaging/Drawing.cs b/Sources/Imaging/Drawing.cs new file mode 100644 index 00000000..318d4313 --- /dev/null +++ b/Sources/Imaging/Drawing.cs @@ -0,0 +1,613 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +namespace AForge.Imaging +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Drawing primitives. + /// + /// + /// The class allows to do drawing of some primitives directly on + /// locked image data or unmanaged image. + /// + /// All methods of this class support drawing only on color 24/32 bpp images and + /// on grayscale 8 bpp indexed images. + /// + /// When it comes to alpha blending for 24/32 bpp images, all calculations are done + /// as described on Wikipeadia + /// (see "over" operator). + /// + /// + public static class Drawing + { + /// + /// Fill rectangle on the specified image. + /// + /// + /// Source image data to draw on. + /// Rectangle's coordinates to fill. + /// Rectangle's color. + /// + /// The source image has incorrect pixel format. + /// + public static unsafe void FillRectangle( BitmapData imageData, Rectangle rectangle, Color color ) + { + FillRectangle( new UnmanagedImage( imageData ), rectangle, color ); + } + + /// + /// Fill rectangle on the specified image. + /// + /// + /// Source image to draw on. + /// Rectangle's coordinates to fill. + /// Rectangle's color. + /// + /// The source image has incorrect pixel format. + /// + public static unsafe void FillRectangle( UnmanagedImage image, Rectangle rectangle, Color color ) + { + CheckPixelFormat( image.PixelFormat ); + + int pixelSize = System.Drawing.Image.GetPixelFormatSize( image.PixelFormat ) / 8; + + // image dimension + int imageWidth = image.Width; + int imageHeight = image.Height; + int stride = image.Stride; + + // rectangle dimension and position + int rectX1 = rectangle.X; + int rectY1 = rectangle.Y; + int rectX2 = rectangle.X + rectangle.Width - 1; + int rectY2 = rectangle.Y + rectangle.Height - 1; + + // check if rectangle is in the image + if ( ( rectX1 >= imageWidth ) || ( rectY1 >= imageHeight ) || ( rectX2 < 0 ) || ( rectY2 < 0 ) ) + { + // nothing to draw + return; + } + + int startX = Math.Max( 0, rectX1 ); + int stopX = Math.Min( imageWidth - 1, rectX2 ); + int startY = Math.Max( 0, rectY1 ); + int stopY = Math.Min( imageHeight - 1, rectY2 ); + + // do the job + byte* ptr = (byte*) image.ImageData.ToPointer( ) + startY * stride + startX * pixelSize; + + if ( image.PixelFormat == PixelFormat.Format8bppIndexed ) + { + // grayscale image + byte gray = (byte) ( 0.2125 * color.R + 0.7154 * color.G + 0.0721 * color.B ); + + int fillWidth = stopX - startX + 1; + + for ( int y = startY; y <= stopY; y++ ) + { + AForge.SystemTools.SetUnmanagedMemory( ptr, gray, fillWidth ); + ptr += stride; + } + } + else if ( image.PixelFormat == PixelFormat.Format32bppArgb ) + { + // color 32 bpp ARGB image + double fillAlpha = color.A / 255.0; + double fillNegAlpha = 1.0 - fillAlpha; + + double fillRedPart = fillAlpha * color.R; + double fillGreenPart = fillAlpha * color.G; + double fillBluePart = fillAlpha * color.B; + + int offset = stride - ( stopX - startX + 1 ) * 4; + + for ( int y = startY; y <= stopY; y++ ) + { + for ( int x = startX; x <= stopX; x++, ptr += 4 ) + { + double srcAlphaPart = ( ptr[RGB.A] / 255.0 ) * fillNegAlpha; + + ptr[RGB.R] = (byte) ( ( fillRedPart + srcAlphaPart * ptr[RGB.R] ) ); + ptr[RGB.G] = (byte) ( ( fillGreenPart + srcAlphaPart * ptr[RGB.G] ) ); + ptr[RGB.B] = (byte) ( ( fillBluePart + srcAlphaPart * ptr[RGB.B] ) ); + + ptr[RGB.A] = (byte) ( 255 * ( fillAlpha + srcAlphaPart ) ); + } + ptr += offset; + } + } + else + { + // color 24/32 RGB image + byte red = color.R; + byte green = color.G; + byte blue = color.B; + + int offset = stride - ( stopX - startX + 1 ) * pixelSize; + + if ( color.A == 255 ) + { + // just copy fill color if it is not transparent + for ( int y = startY; y <= stopY; y++ ) + { + for ( int x = startX; x <= stopX; x++, ptr += pixelSize ) + { + ptr[RGB.R] = red; + ptr[RGB.G] = green; + ptr[RGB.B] = blue; + } + ptr += offset; + } + } + else + { + // do alpha blending for transparent colors + int fillAlpha = color.A; + int fillNegAlpha = 255 - fillAlpha; + + int fillRedPart = fillAlpha * color.R; + int fillGreenPart = fillAlpha * color.G; + int fillBluePart = fillAlpha * color.B; + + for ( int y = startY; y <= stopY; y++ ) + { + for ( int x = startX; x <= stopX; x++, ptr += pixelSize ) + { + ptr[RGB.R] = (byte) ( ( fillRedPart + fillNegAlpha * ptr[RGB.R] ) / 255 ); + ptr[RGB.G] = (byte) ( ( fillGreenPart + fillNegAlpha * ptr[RGB.G] ) / 255 ); + ptr[RGB.B] = (byte) ( ( fillBluePart + fillNegAlpha * ptr[RGB.B] ) / 255 ); + } + ptr += offset; + } + } + } + } + + /// + /// Draw rectangle on the specified image. + /// + /// + /// Source image data to draw on. + /// Rectangle's coordinates to draw. + /// Rectangle's color. + /// + /// The source image has incorrect pixel format. + /// + public static unsafe void Rectangle( BitmapData imageData, Rectangle rectangle, Color color ) + { + Rectangle( new UnmanagedImage( imageData ), rectangle, color ); + } + + /// + /// Draw rectangle on the specified image. + /// + /// + /// Source image to draw on. + /// Rectangle's coordinates to draw. + /// Rectangle's color. + /// + /// The source image has incorrect pixel format. + /// + public static unsafe void Rectangle( UnmanagedImage image, Rectangle rectangle, Color color ) + { + CheckPixelFormat( image.PixelFormat ); + + int pixelSize = System.Drawing.Image.GetPixelFormatSize( image.PixelFormat ) / 8; + + // image dimension + int imageWidth = image.Width; + int imageHeight = image.Height; + int stride = image.Stride; + + // rectangle dimension and position + int rectX1 = rectangle.X; + int rectY1 = rectangle.Y; + int rectX2 = rectangle.X + rectangle.Width - 1; + int rectY2 = rectangle.Y + rectangle.Height - 1; + + // check if rectangle is in the image + if ( ( rectX1 >= imageWidth ) || ( rectY1 >= imageHeight ) || ( rectX2 < 0 ) || ( rectY2 < 0 ) ) + { + // nothing to draw + return; + } + + // obviously vertical/horizontal lines can be drawn faster, but at least we simplify the code + Line( image, new IntPoint( rectX1, rectY1 ), new IntPoint( rectX2, rectY1 ), color ); + Line( image, new IntPoint( rectX2, rectY2 ), new IntPoint( rectX1, rectY2 ), color ); + + Line( image, new IntPoint( rectX2, rectY1 + 1 ), new IntPoint( rectX2, rectY2 - 1 ), color ); + Line( image, new IntPoint( rectX1, rectY2 - 1 ), new IntPoint( rectX1, rectY1 + 1 ), color ); + } + + /// + /// Draw a line on the specified image. + /// + /// + /// Source image data to draw on. + /// The first point to connect. + /// The second point to connect. + /// Line's color. + /// + /// The source image has incorrect pixel format. + /// + public static unsafe void Line( BitmapData imageData, IntPoint point1, IntPoint point2, Color color ) + { + Line( new UnmanagedImage( imageData ), point1, point2, color ); + } + + /// + /// Draw a line on the specified image. + /// + /// + /// Source image to draw on. + /// The first point to connect. + /// The second point to connect. + /// Line's color. + /// + /// The source image has incorrect pixel format. + /// + public static unsafe void Line( UnmanagedImage image, IntPoint point1, IntPoint point2, Color color ) + { + // TODO: faster line drawing algorithm may be implemented with integer math + + CheckPixelFormat( image.PixelFormat ); + + int pixelSize = System.Drawing.Image.GetPixelFormatSize( image.PixelFormat ) / 8; + + // image dimension + int imageWidth = image.Width; + int imageHeight = image.Height; + int stride = image.Stride; + + // check if there is something to draw + if ( + ( ( point1.X < 0 ) && ( point2.X < 0 ) ) || + ( ( point1.Y < 0 ) && ( point2.Y < 0 ) ) || + ( ( point1.X >= imageWidth ) && ( point2.X >= imageWidth ) ) || + ( ( point1.Y >= imageHeight ) && ( point2.Y >= imageHeight ) ) ) + { + // nothing to draw + return; + } + + CheckEndPoint( imageWidth, imageHeight, point1, ref point2 ); + CheckEndPoint( imageWidth, imageHeight, point2, ref point1 ); + + // check again if there is something to draw + if ( + ( ( point1.X < 0 ) && ( point2.X < 0 ) ) || + ( ( point1.Y < 0 ) && ( point2.Y < 0 ) ) || + ( ( point1.X >= imageWidth ) && ( point2.X >= imageWidth ) ) || + ( ( point1.Y >= imageHeight ) && ( point2.Y >= imageHeight ) ) ) + { + // nothing to draw + return; + } + + int startX = point1.X; + int startY = point1.Y; + int stopX = point2.X; + int stopY = point2.Y; + + // compute pixel for grayscale image + byte gray = 0; + if ( image.PixelFormat == PixelFormat.Format8bppIndexed ) + { + gray = (byte) ( 0.2125 * color.R + 0.7154 * color.G + 0.0721 * color.B ); + } + + // pre-compute some values for 32 bit color blending + double fillAlpha = color.A / 255.0; + double fillNegAlpha = 1.0 - fillAlpha; + + double fillRedPart = fillAlpha * color.R; + double fillGreenPart = fillAlpha * color.G; + double fillBluePart = fillAlpha * color.B; + + int fillNegAlphaInt = 255 - color.A; + + int fillRedPartInt = color.A * color.R; + int fillGreenPartInt = color.A * color.G; + int fillBluePartInt = color.A * color.B; + + // draw the line + int dx = stopX - startX; + int dy = stopY - startY; + + if ( Math.Abs( dx ) >= Math.Abs( dy ) ) + { + // the line is more horizontal, we'll plot along the X axis + float slope = ( dx != 0 ) ? (float) dy / dx : 0; + int step = ( dx > 0 ) ? 1 : -1; + + // correct dx so last point is included as well + dx += step; + + if ( image.PixelFormat == PixelFormat.Format8bppIndexed ) + { + // grayscale image + for ( int x = 0; x != dx; x += step ) + { + int px = startX + x; + int py = (int) ( (float) startY + ( slope * (float) x ) ); + + byte* ptr = (byte*) image.ImageData.ToPointer( ) + py * stride + px; + *ptr = gray; + } + } + else if ( image.PixelFormat == PixelFormat.Format32bppArgb ) + { + // color 32 ARGB image image + for ( int x = 0; x != dx; x += step ) + { + int px = startX + x; + int py = (int) ( (float) startY + ( slope * (float) x ) ); + + byte* ptr = (byte*) image.ImageData.ToPointer( ) + py * stride + px * 4; + + double srcAlphaPart = ( ptr[RGB.A] / 255.0 ) * fillNegAlpha; + + ptr[RGB.R] = (byte) ( ( fillRedPart + srcAlphaPart * ptr[RGB.R] ) ); + ptr[RGB.G] = (byte) ( ( fillGreenPart + srcAlphaPart * ptr[RGB.G] ) ); + ptr[RGB.B] = (byte) ( ( fillBluePart + srcAlphaPart * ptr[RGB.B] ) ); + + ptr[RGB.A] = (byte) ( 255 * ( fillAlpha + srcAlphaPart ) ); + } + } + else + { + // color 24/32 bpp RGB image + if ( color.A == 255 ) + { + // just copy color for none transparent colors + for ( int x = 0; x != dx; x += step ) + { + int px = startX + x; + int py = (int) ( (float) startY + ( slope * (float) x ) ); + + byte* ptr = (byte*) image.ImageData.ToPointer( ) + py * stride + px * pixelSize; + + ptr[RGB.R] = color.R; + ptr[RGB.G] = color.G; + ptr[RGB.B] = color.B; + } + } + else + { + // do alpha blending for transparent colors + for ( int x = 0; x != dx; x += step ) + { + int px = startX + x; + int py = (int) ( (float) startY + ( slope * (float) x ) ); + + byte* ptr = (byte*) image.ImageData.ToPointer( ) + py * stride + px * pixelSize; + + ptr[RGB.R] = (byte) ( ( fillRedPartInt + fillNegAlphaInt * ptr[RGB.R] ) / 255 ); + ptr[RGB.G] = (byte) ( ( fillGreenPartInt + fillNegAlphaInt * ptr[RGB.G] ) / 255 ); + ptr[RGB.B] = (byte) ( ( fillBluePartInt + fillNegAlphaInt * ptr[RGB.B] ) / 255 ); + } + } + } + } + else + { + // the line is more vertical, we'll plot along the y axis. + float slope = ( dy != 0 ) ? (float) dx / dy : 0; + int step = ( dy > 0 ) ? 1 : -1; + + // correct dy so last point is included as well + dy += step; + + if ( image.PixelFormat == PixelFormat.Format8bppIndexed ) + { + // grayscale image + for ( int y = 0; y != dy; y += step ) + { + int px = (int) ( (float) startX + ( slope * (float) y ) ); + int py = startY + y; + + byte* ptr = (byte*) image.ImageData.ToPointer( ) + py * stride + px; + *ptr = gray; + } + } + else if ( image.PixelFormat == PixelFormat.Format32bppArgb ) + { + // color 32 bpp ARGB image + for ( int y = 0; y != dy; y += step ) + { + int px = (int) ( (float) startX + ( slope * (float) y ) ); + int py = startY + y; + + byte* ptr = (byte*) image.ImageData.ToPointer( ) + py * stride + px * 4; + + double srcAlphaPart = ( ptr[RGB.A] / 255.0 ) * fillNegAlpha; + + ptr[RGB.R] = (byte) ( ( fillRedPart + srcAlphaPart * ptr[RGB.R] ) ); + ptr[RGB.G] = (byte) ( ( fillGreenPart + srcAlphaPart * ptr[RGB.G] ) ); + ptr[RGB.B] = (byte) ( ( fillBluePart + srcAlphaPart * ptr[RGB.B] ) ); + + ptr[RGB.A] = (byte) ( 255 * ( fillAlpha + srcAlphaPart ) ); + } + } + else + { + // color 24/32 bpp RGB image + if ( color.A == 255 ) + { + // just copy color for none transparent colors + for ( int y = 0; y != dy; y += step ) + { + int px = (int) ( (float) startX + ( slope * (float) y ) ); + int py = startY + y; + + byte* ptr = (byte*) image.ImageData.ToPointer( ) + py * stride + px * pixelSize; + + ptr[RGB.R] = color.R; + ptr[RGB.G] = color.G; + ptr[RGB.B] = color.B; + } + } + else + { + // do alpha blending for transparent colors + for ( int y = 0; y != dy; y += step ) + { + int px = (int) ( (float) startX + ( slope * (float) y ) ); + int py = startY + y; + + byte* ptr = (byte*) image.ImageData.ToPointer( ) + py * stride + px * pixelSize; + + ptr[RGB.R] = (byte) ( ( fillRedPartInt + fillNegAlphaInt * ptr[RGB.R] ) / 255 ); + ptr[RGB.G] = (byte) ( ( fillGreenPartInt + fillNegAlphaInt * ptr[RGB.G] ) / 255 ); + ptr[RGB.B] = (byte) ( ( fillBluePartInt + fillNegAlphaInt * ptr[RGB.B] ) / 255 ); + } + } + } + } + } + + /// + /// Draw a polygon on the specified image. + /// + /// + /// Source image data to draw on. + /// Points of the polygon to draw. + /// Polygon's color. + /// + /// The method draws a polygon by connecting all points from the + /// first one to the last one and then connecting the last point with the first one. + /// + /// + public static void Polygon( BitmapData imageData, List points, Color color ) + { + Polygon( new UnmanagedImage( imageData ), points, color ); + } + + /// + /// Draw a polygon on the specified image. + /// + /// + /// Source image to draw on. + /// Points of the polygon to draw. + /// Polygon's color. + /// + /// The method draws a polygon by connecting all points from the + /// first one to the last one and then connecting the last point with the first one. + /// + /// + public static void Polygon( UnmanagedImage image, List points, Color color ) + { + for ( int i = 1, n = points.Count; i < n; i++ ) + { + Line( image, points[i - 1], points[i], color ); + } + Line( image, points[points.Count - 1], points[0], color ); + } + + /// + /// Draw a polyline on the specified image. + /// + /// + /// Source image data to draw on. + /// Points of the polyline to draw. + /// polyline's color. + /// + /// The method draws a polyline by connecting all points from the + /// first one to the last one. Unlike + /// method, this method does not connect the last point with the first one. + /// + /// + public static void Polyline( BitmapData imageData, List points, Color color ) + { + Polyline( new UnmanagedImage( imageData ), points, color ); + } + + /// + /// Draw a polyline on the specified image. + /// + /// + /// Source image to draw on. + /// Points of the polyline to draw. + /// polyline's color. + /// + /// The method draws a polyline by connecting all points from the + /// first one to the last one. Unlike + /// method, this method does not connect the last point with the first one. + /// + /// + public static void Polyline( UnmanagedImage image, List points, Color color ) + { + for ( int i = 1, n = points.Count; i < n; i++ ) + { + Line( image, points[i - 1], points[i], color ); + } + } + + // Check for supported pixel format + private static void CheckPixelFormat( PixelFormat format ) + { + // check pixel format + if ( + ( format != PixelFormat.Format24bppRgb ) && + ( format != PixelFormat.Format8bppIndexed ) && + ( format != PixelFormat.Format32bppArgb ) && + ( format != PixelFormat.Format32bppRgb ) + ) + { + throw new UnsupportedImageFormatException( "Unsupported pixel format of the source image." ); + } + } + + // Check end point and make sure it is in the image + private static void CheckEndPoint( int width, int height, IntPoint start, ref IntPoint end ) + { + if ( end.X >= width ) + { + int newEndX = width - 1; + + double c = (double) ( newEndX - start.X ) / ( end.X - start.X ); + + end.Y = (int) ( start.Y + c * ( end.Y - start.Y ) ); + end.X = newEndX; + } + + if ( end.Y >= height ) + { + int newEndY = height - 1; + + double c = (double) ( newEndY - start.Y ) / ( end.Y - start.Y ); + + end.X = (int) ( start.X + c * ( end.X - start.X ) ); + end.Y = newEndY; + } + + if ( end.X < 0 ) + { + double c = (double) ( 0 - start.X ) / ( end.X - start.X ); + + end.Y = (int) ( start.Y + c * ( end.Y - start.Y ) ); + end.X = 0; + } + + if ( end.Y < 0 ) + { + double c = (double) ( 0 - start.Y ) / ( end.Y - start.Y ); + + end.X = (int) ( start.X + c * ( end.X - start.X ) ); + end.Y = 0; + } + } + } +} diff --git a/Sources/Imaging/Exceptions.cs b/Sources/Imaging/Exceptions.cs new file mode 100644 index 00000000..b8ba50da --- /dev/null +++ b/Sources/Imaging/Exceptions.cs @@ -0,0 +1,94 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +namespace AForge.Imaging +{ + using System; + + /// + /// Unsupported image format exception. + /// + /// + /// The unsupported image format exception is thrown in the case when + /// user passes an image of certain format to an image processing routine, which does + /// not support the format. Check documentation of the image processing routine + /// to discover which formats are supported by the routine. + /// + /// + public class UnsupportedImageFormatException : ArgumentException + { + /// + /// Initializes a new instance of the class. + /// + public UnsupportedImageFormatException( ) { } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Message providing some additional information. + /// + public UnsupportedImageFormatException( string message ) : + base( message ) { } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Message providing some additional information. + /// Name of the invalid parameter. + /// + public UnsupportedImageFormatException( string message, string paramName ) : + base( message, paramName ) { } + } + + /// + /// Invalid image properties exception. + /// + /// + /// The invalid image properties exception is thrown in the case when + /// user provides an image with certain properties, which are treated as invalid by + /// particular image processing routine. Another case when this exception is + /// thrown is the case when user tries to access some properties of an image (or + /// of a recently processed image by some routine), which are not valid for that image. + /// + /// + public class InvalidImagePropertiesException : ArgumentException + { + /// + /// Initializes a new instance of the class. + /// + public InvalidImagePropertiesException( ) { } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Message providing some additional information. + /// + public InvalidImagePropertiesException( string message ) : + base( message ) { } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Message providing some additional information. + /// Name of the invalid parameter. + /// + public InvalidImagePropertiesException( string message, string paramName ) : + base( message, paramName ) { } + } + + // Some common exception messages + internal static class ExceptionMessage + { + public const string ColorHistogramException = "Cannot access color histogram since the last processed image was grayscale."; + public const string GrayHistogramException = "Cannot access gray histogram since the last processed image was color."; + } +} \ No newline at end of file diff --git a/Sources/Imaging/ExhaustiveBlockMatching.cs b/Sources/Imaging/ExhaustiveBlockMatching.cs new file mode 100644 index 00000000..9b89a4af --- /dev/null +++ b/Sources/Imaging/ExhaustiveBlockMatching.cs @@ -0,0 +1,397 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2005-2009 +// andrew.kirillov@aforgenet.com +// +// Copyright © Joan Charmant, 2008 +// joan.charmant@gmail.com +// +namespace AForge.Imaging +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Block matching implementation with the exhaustive search algorithm. + /// + /// + /// The class implements exhaustive search block matching algorithm + /// (see documentation for for information about + /// block matching algorithms). Exhaustive search algorithm tests each possible + /// location of block within search window trying to find a match with minimal + /// difference. + /// + /// Because of the exhaustive nature of the algorithm, high performance + /// should not be expected in the case if big number of reference points is provided + /// or big block size and search radius are specified. Minimizing theses values increases + /// performance. But too small block size and search radius may affect quality. + /// + /// The class processes only grayscale (8 bpp indexed) and color (24 bpp) images. + /// + /// Sample usage: + /// + /// // collect reference points using corners detector (for example) + /// SusanCornersDetector scd = new SusanCornersDetector( 30, 18 ); + /// List<IntPoint> points = scd.ProcessImage( sourceImage ); + /// + /// // create block matching algorithm's instance + /// ExhaustiveBlockMatching bm = new ExhaustiveBlockMatching( 8, 12 ); + /// // process images searching for block matchings + /// List<BlockMatch> matches = bm.ProcessImage( sourceImage, points, searchImage ); + /// + /// // draw displacement vectors + /// BitmapData data = sourceImage.LockBits( + /// new Rectangle( 0, 0, sourceImage.Width, sourceImage.Height ), + /// ImageLockMode.ReadWrite, sourceImage.PixelFormat ); + /// + /// foreach ( BlockMatch match in matches ) + /// { + /// // highlight the original point in source image + /// Drawing.FillRectangle( data, + /// new Rectangle( match.SourcePoint.X - 1, match.SourcePoint.Y - 1, 3, 3 ), + /// Color.Yellow ); + /// // draw line to the point in search image + /// Drawing.Line( data, match.SourcePoint, match.MatchPoint, Color.Red ); + /// + /// // check similarity + /// if ( match.Similarity > 0.98f ) + /// { + /// // process block with high similarity somehow special + /// } + /// } + /// + /// sourceImage.UnlockBits( data ); + /// + /// + /// Test image 1 (source): + /// + /// Test image 2 (search): + /// + /// Result image: + /// + /// + /// + public class ExhaustiveBlockMatching : IBlockMatching + { + // block size to search for + private int blockSize = 16; + // search radius (maximum shift from base position, in all 4 directions) + private int searchRadius = 12; + // blocks' similarity threshold + private float similarityThreshold = 0.9f; + + /// + /// Search radius. + /// + /// + /// The value specifies the shift from reference point in all + /// four directions, used to search for the best matching block. + /// + /// Default value is set to 12. + /// + /// + public int SearchRadius + { + get { return searchRadius; } + set { searchRadius = value; } + } + + /// + /// Block size to search for. + /// + /// + /// The value specifies block size to search for. For each provided + /// reference pointer, a square block of this size is taken from the source image + /// (reference point becomes the coordinate of block's center) and the best match + /// is searched in second image within specified search + /// radius. + /// + /// Default value is set to 16. + /// + /// + public int BlockSize + { + get { return blockSize; } + set { blockSize = value; } + } + + /// + /// Similarity threshold, [0..1]. + /// + /// + /// The property sets the minimal acceptable similarity between blocks + /// in source and search images. If similarity is lower than this value, + /// then the candidate block in search image is not treated as a match for the block + /// in source image. + /// + /// + /// Default value is set to 0.9. + /// + /// + public float SimilarityThreshold + { + get { return similarityThreshold; } + set { similarityThreshold = Math.Min( 1, Math.Max( 0, value ) ); } + } + + /// + /// Initializes a new instance of the class. + /// + public ExhaustiveBlockMatching( ) { } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Block size to search for. + /// Search radius. + /// + public ExhaustiveBlockMatching( int blockSize, int searchRadius ) + { + this.blockSize = blockSize; + this.searchRadius = searchRadius; + } + + /// + /// Process images matching blocks between hem. + /// + /// + /// Source image with reference points. + /// List of reference points to be matched. + /// Image in which the reference points will be looked for. + /// + /// Returns list of found block matches. The list is sorted by similarity + /// of found matches in descending order. + /// + /// Source and search images sizes must match. + /// Source images can be grayscale (8 bpp indexed) or color (24 bpp) image only. + /// Source and search images must have same pixel format. + /// + public List ProcessImage( Bitmap sourceImage, List coordinates, Bitmap searchImage ) + { + // lock source image + BitmapData sourceImageData = sourceImage.LockBits( + new Rectangle( 0, 0, sourceImage.Width, sourceImage.Height ), + ImageLockMode.ReadOnly, sourceImage.PixelFormat ); + + BitmapData searchImageData = searchImage.LockBits( + new Rectangle( 0, 0, searchImage.Width, searchImage.Height ), + ImageLockMode.ReadOnly, searchImage.PixelFormat ); + + List matchings; + + try + { + // process the image + matchings = ProcessImage( new UnmanagedImage( sourceImageData ), + coordinates, new UnmanagedImage( searchImageData ) ); + } + finally + { + // unlock image + sourceImage.UnlockBits( sourceImageData ); + searchImage.UnlockBits( searchImageData ); + } + + return matchings; + } + + /// + /// Process images matching blocks between them. + /// + /// + /// Source image with reference points. + /// List of reference points to be matched. + /// Image in which the reference points will be looked for. + /// + /// Returns list of found block matches. The list is sorted by similarity + /// of found matches in descending order. + /// + /// Source and search images sizes must match. + /// Source images can be grayscale (8 bpp indexed) or color (24 bpp) image only. + /// Source and search images must have same pixel format. + /// + public List ProcessImage( BitmapData sourceImageData, List coordinates, BitmapData searchImageData ) + { + return ProcessImage( new UnmanagedImage( sourceImageData ), coordinates, new UnmanagedImage( searchImageData ) ); + } + + /// + /// Process images matching blocks between them. + /// + /// + /// Source unmanaged image with reference points. + /// List of reference points to be matched. + /// Unmanaged image in which the reference points will be looked for. + /// + /// Returns list of found block matches. The list is sorted by similarity + /// of found matches in descending order. + /// + /// Source and search images sizes must match. + /// Source images can be grayscale (8 bpp indexed) or color (24 bpp) image only. + /// Source and search images must have same pixel format. + /// + public List ProcessImage( UnmanagedImage sourceImage, List coordinates, UnmanagedImage searchImage ) + { + // source images sizes must match. + if ( ( sourceImage.Width != searchImage.Width ) || ( sourceImage.Height != searchImage.Height ) ) + throw new InvalidImagePropertiesException( "Source and search images sizes must match" ); + + // sources images must be graysclae or color. + if ( ( sourceImage.PixelFormat != PixelFormat.Format8bppIndexed ) && ( sourceImage.PixelFormat != PixelFormat.Format24bppRgb ) ) + throw new UnsupportedImageFormatException( "Source images can be graysclae (8 bpp indexed) or color (24 bpp) image only" ); + + // source images must have the same pixel format. + if ( sourceImage.PixelFormat != searchImage.PixelFormat ) + throw new InvalidImagePropertiesException( "Source and search images must have same pixel format" ); + + int pointsCount = coordinates.Count; + + // found matches + List matchingsList = new List( ); + + // get source image size + int width = sourceImage.Width; + int height = sourceImage.Height; + int stride = sourceImage.Stride; + int pixelSize = ( sourceImage.PixelFormat == PixelFormat.Format8bppIndexed ) ? 1 : 3; + + // pre-compute some values to avoid doing it in the loops. + int blockRadius = blockSize / 2; + int searchWindowSize = 2 * searchRadius; + int blockLineSize = blockSize * pixelSize; + int blockOffset = stride - ( blockSize * pixelSize ); + + // maximum possible difference of blocks + int maxDiff = blockSize * blockSize * pixelSize * 255; + + // integer similarity threshold + int threshold = (int) ( similarityThreshold * maxDiff ); + + // do the job + unsafe + { + byte* ptrSource = (byte*) sourceImage.ImageData.ToPointer( ); + byte* ptrSearch = (byte*) searchImage.ImageData.ToPointer( ); + + // for each point fed + for ( int iPoint = 0; iPoint < pointsCount; iPoint++ ) + { + int refPointX = coordinates[iPoint].X; + int refPointY = coordinates[iPoint].Y; + + // make sure the source block is inside the image + if ( + ( ( refPointX - blockRadius < 0 ) || ( refPointX + blockRadius >= width ) ) || + ( ( refPointY - blockRadius < 0 ) || ( refPointY + blockRadius >= height ) ) + ) + { + // skip point + continue; + } + + // startting seatch point + int searchStartX = refPointX - blockRadius - searchRadius; + int searchStartY = refPointY - blockRadius - searchRadius; + + // output match + int bestMatchX = refPointX; + int bestMatchY = refPointY; + + // Exhaustive Search Algorithm - we test each location within the search window + int minError = int.MaxValue; + + // for each search window's row + for ( int searchWindowRow = 0; searchWindowRow < searchWindowSize; searchWindowRow++ ) + { + if ( ( searchStartY + searchWindowRow < 0 ) || ( searchStartY + searchWindowRow + blockSize >= height ) ) + { + // skip row + continue; + } + + // for each search window's column + for ( int searchWindowCol = 0; searchWindowCol < searchWindowSize; searchWindowCol++ ) + { + // tested block location in search image + int blockSearchX = searchStartX + searchWindowCol; + int blockSearchY = searchStartY + searchWindowRow; + + if ( ( blockSearchX < 0 ) || ( blockSearchY + blockSize >= width ) ) + { + // skip column + continue; + } + + // get memory location of the block's upper left point in source and search images + byte* ptrSourceBlock = ptrSource + ( ( refPointY - blockRadius ) * stride ) + ( ( refPointX - blockRadius ) * pixelSize ); + byte* ptrSearchBlock = ptrSearch + ( blockSearchY * stride ) + ( blockSearchX * pixelSize ); + + // navigate this block, accumulating the error + int error = 0; + for ( int blockRow = 0; blockRow < blockSize; blockRow++ ) + { + for ( int blockCol = 0; blockCol < blockLineSize; blockCol++, ptrSourceBlock++, ptrSearchBlock++ ) + { + int diff = *ptrSourceBlock - *ptrSearchBlock; + if ( diff > 0 ) + { + error += diff; + } + else + { + error -= diff; + } + } + + // move to the next row + ptrSourceBlock += blockOffset; + ptrSearchBlock += blockOffset; + } + + // check if the sum of error is mimimal + if ( error < minError ) + { + minError = error; + + // keep best match so far + bestMatchX = blockSearchX + blockRadius; + bestMatchY = blockSearchY + blockRadius; + } + } + } + + // calculate blocks' similarity and compare it with threshold + int blockSimilarity = maxDiff - minError; + + if ( blockSimilarity >= threshold ) + { + matchingsList.Add( new BlockMatch( + new IntPoint( refPointX, refPointY ), new IntPoint( bestMatchX, bestMatchY ), + (float) blockSimilarity / maxDiff ) ); + } + } + } + + // sort in descending order + matchingsList.Sort( new MatchingsSorter( ) ); + + return matchingsList; + } + + // Sorter of found matchings + private class MatchingsSorter : System.Collections.Generic.IComparer + { + public int Compare( BlockMatch x, BlockMatch y ) + { + float diff = y.Similarity - x.Similarity; + + return ( diff > 0 ) ? 1 : ( diff < 0 ) ? -1 : 0; + } + } + } +} diff --git a/Sources/Imaging/ExhaustiveTemplateMatching.cs b/Sources/Imaging/ExhaustiveTemplateMatching.cs new file mode 100644 index 00000000..92fafb2b --- /dev/null +++ b/Sources/Imaging/ExhaustiveTemplateMatching.cs @@ -0,0 +1,401 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2005-2009 +// andrew.kirillov@aforgenet.com +// + +namespace AForge.Imaging +{ + using System; + using System.Drawing; + using System.Drawing.Imaging; + using System.Collections.Generic; + + /// + /// Exhaustive template matching. + /// + /// + /// The class implements exhaustive template matching algorithm, + /// which performs complete scan of source image, comparing each pixel with corresponding + /// pixel of template. + /// + /// The class processes only grayscale 8 bpp and color 24 bpp images. + /// + /// Sample usage: + /// + /// // create template matching algorithm's instance + /// ExhaustiveTemplateMatching tm = new ExhaustiveTemplateMatching( 0.9f ); + /// // find all matchings with specified above similarity + /// TemplateMatch[] matchings = tm.ProcessImage( sourceImage, templateImage ); + /// // highlight found matchings + /// BitmapData data = sourceImage.LockBits( + /// new Rectangle( 0, 0, sourceImage.Width, sourceImage.Height ), + /// ImageLockMode.ReadWrite, sourceImage.PixelFormat ); + /// foreach ( TemplateMatch m in matchings ) + /// { + /// Drawing.Rectangle( data, m.Rectangle, Color.White ); + /// // do something else with matching + /// } + /// sourceImage.UnlockBits( data ); + /// + /// + /// The class also can be used to get similarity level between two image of the same + /// size, which can be useful to get information about how different/similar are images: + /// + /// // create template matching algorithm's instance + /// // use zero similarity to make sure algorithm will provide anything + /// ExhaustiveTemplateMatching tm = new ExhaustiveTemplateMatching( 0 ); + /// // compare two images + /// TemplateMatch[] matchings = tm.ProcessImage( image1, image2 ); + /// // check similarity level + /// if ( matchings[0].Similarity > 0.95f ) + /// { + /// // do something with quite similar images + /// } + /// + /// + /// + /// + public class ExhaustiveTemplateMatching : ITemplateMatching + { + private float similarityThreshold = 0.9f; + + /// + /// Similarity threshold, [0..1]. + /// + /// + /// The property sets the minimal acceptable similarity between template + /// and potential found candidate. If similarity is lower than this value, + /// then object is not treated as matching with template. + /// + /// + /// Default value is set to 0.9. + /// + /// + public float SimilarityThreshold + { + get { return similarityThreshold; } + set { similarityThreshold = Math.Min( 1, Math.Max( 0, value ) ); } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public ExhaustiveTemplateMatching( ) { } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Similarity threshold. + /// + public ExhaustiveTemplateMatching( float similarityThreshold ) + { + this.similarityThreshold = similarityThreshold; + } + + /// + /// Process image looking for matchings with specified template. + /// + /// + /// Source image to process. + /// Template image to search for. + /// + /// Returns array of found template matches. The array is sorted by similarity + /// of found matches in descending order. + /// + /// The source image has incorrect pixel format. + /// Template image is bigger than source image. + /// + public TemplateMatch[] ProcessImage( Bitmap image, Bitmap template ) + { + return ProcessImage( image, template, new Rectangle( 0, 0, image.Width, image.Height ) ); + } + + /// + /// Process image looking for matchings with specified template. + /// + /// + /// Source image to process. + /// Template image to search for. + /// Rectangle in source image to search template for. + /// + /// Returns array of found template matches. The array is sorted by similarity + /// of found matches in descending order. + /// + /// The source image has incorrect pixel format. + /// Template image is bigger than source image. + /// + public TemplateMatch[] ProcessImage( Bitmap image, Bitmap template, Rectangle searchZone ) + { + // check image format + if ( + ( ( image.PixelFormat != PixelFormat.Format8bppIndexed ) && + ( image.PixelFormat != PixelFormat.Format24bppRgb ) ) || + ( image.PixelFormat != template.PixelFormat ) ) + { + throw new UnsupportedImageFormatException( "Unsupported pixel format of the source or template image." ); + } + + // check template's size + if ( ( template.Width > image.Width ) || ( template.Height > image.Height ) ) + { + throw new InvalidImagePropertiesException( "Template's size should be smaller or equal to source image's size." ); + } + + // lock source and template images + BitmapData imageData = image.LockBits( + new Rectangle( 0, 0, image.Width, image.Height ), + ImageLockMode.ReadOnly, image.PixelFormat ); + BitmapData templateData = template.LockBits( + new Rectangle( 0, 0, template.Width, template.Height ), + ImageLockMode.ReadOnly, template.PixelFormat ); + + TemplateMatch[] matchings; + + try + { + // process the image + matchings = ProcessImage( + new UnmanagedImage( imageData ), + new UnmanagedImage( templateData ), + searchZone ); + } + finally + { + // unlock images + image.UnlockBits( imageData ); + template.UnlockBits( templateData ); + } + + return matchings; + } + + /// + /// Process image looking for matchings with specified template. + /// + /// + /// Source image data to process. + /// Template image to search for. + /// + /// Returns array of found template matches. The array is sorted by similarity + /// of found matches in descending order. + /// + /// The source image has incorrect pixel format. + /// Template image is bigger than source image. + /// + public TemplateMatch[] ProcessImage( BitmapData imageData, BitmapData templateData ) + { + return ProcessImage( new UnmanagedImage( imageData ), new UnmanagedImage( templateData ), + new Rectangle( 0, 0, imageData.Width, imageData.Height ) ); + } + + /// + /// Process image looking for matchings with specified template. + /// + /// + /// Source image data to process. + /// Template image to search for. + /// Rectangle in source image to search template for. + /// + /// Returns array of found template matches. The array is sorted by similarity + /// of found matches in descending order. + /// + /// The source image has incorrect pixel format. + /// Template image is bigger than source image. + /// + public TemplateMatch[] ProcessImage( BitmapData imageData, BitmapData templateData, Rectangle searchZone ) + { + return ProcessImage( new UnmanagedImage( imageData ), new UnmanagedImage( templateData ), searchZone ); + } + + /// + /// Process image looking for matchings with specified template. + /// + /// + /// Unmanaged source image to process. + /// Unmanaged template image to search for. + /// + /// Returns array of found template matches. The array is sorted by similarity + /// of found matches in descending order. + /// + /// The source image has incorrect pixel format. + /// Template image is bigger than source image. + /// + public TemplateMatch[] ProcessImage( UnmanagedImage image, UnmanagedImage template ) + { + return ProcessImage( image, template, new Rectangle( 0, 0, image.Width, image.Height ) ); + } + + /// + /// Process image looking for matchings with specified template. + /// + /// + /// Unmanaged source image to process. + /// Unmanaged template image to search for. + /// Rectangle in source image to search template for. + /// + /// Returns array of found template matches. The array is sorted by similarity + /// of found matches in descending order. + /// + /// The source image has incorrect pixel format. + /// Template image is bigger than search zone. + /// + public TemplateMatch[] ProcessImage( UnmanagedImage image, UnmanagedImage template, Rectangle searchZone ) + { + // check image format + if ( + ( ( image.PixelFormat != PixelFormat.Format8bppIndexed ) && + ( image.PixelFormat != PixelFormat.Format24bppRgb ) ) || + ( image.PixelFormat != template.PixelFormat ) ) + { + throw new UnsupportedImageFormatException( "Unsupported pixel format of the source or template image." ); + } + + // clip search zone + Rectangle zone = searchZone; + zone.Intersect( new Rectangle( 0, 0, image.Width, image.Height ) ); + + // search zone's starting point + int startX = zone.X; + int startY = zone.Y; + + // get source and template image size + int sourceWidth = zone.Width; + int sourceHeight = zone.Height; + int templateWidth = template.Width; + int templateHeight = template.Height; + + // check template's size + if ( ( templateWidth > sourceWidth ) || ( templateHeight > sourceHeight ) ) + { + throw new InvalidImagePropertiesException( "Template's size should be smaller or equal to search zone." ); + } + + int pixelSize = ( image.PixelFormat == PixelFormat.Format8bppIndexed ) ? 1 : 3; + int sourceStride = image.Stride; + + // similarity map. its size is increased by 4 from each side to increase + // performance of non-maximum suppresion + int mapWidth = sourceWidth - templateWidth + 1; + int mapHeight = sourceHeight - templateHeight + 1; + int[,] map = new int[mapHeight + 4, mapWidth + 4]; + + // maximum possible difference with template + int maxDiff = templateWidth * templateHeight * pixelSize * 255; + + // integer similarity threshold + int threshold = (int) ( similarityThreshold * maxDiff ); + + // width of template in bytes + int templateWidthInBytes = templateWidth * pixelSize; + + // do the job + unsafe + { + byte* baseSrc = (byte*) image.ImageData.ToPointer( ); + byte* baseTpl = (byte*) template.ImageData.ToPointer( ); + + int sourceOffset = image.Stride - templateWidth * pixelSize; + int templateOffset = template.Stride - templateWidth * pixelSize; + + // for each row of the source image + for ( int y = 0; y < mapHeight; y++ ) + { + // for each pixel of the source image + for ( int x = 0; x < mapWidth; x++ ) + { + byte* src = baseSrc + sourceStride * ( y + startY ) + pixelSize * ( x + startX ); + byte* tpl = baseTpl; + + // compare template with source image starting from current X,Y + int dif = 0; + + // for each row of the template + for ( int i = 0; i < templateHeight; i++ ) + { + // for each pixel of the template + for ( int j = 0; j < templateWidthInBytes; j++, src++, tpl++ ) + { + int d = *src - *tpl; + if ( d > 0 ) + { + dif += d; + } + else + { + dif -= d; + } + } + src += sourceOffset; + tpl += templateOffset; + } + + // templates similarity + int sim = maxDiff - dif; + + if ( sim >= threshold ) + map[y + 2, x + 2] = sim; + } + } + } + + // collect interesting points - only those points, which are local maximums + List matchingsList = new List( ); + + // for each row + for ( int y = 2, maxY = mapHeight + 2; y < maxY; y++ ) + { + // for each pixel + for ( int x = 2, maxX = mapWidth + 2; x < maxX; x++ ) + { + int currentValue = map[y, x]; + + // for each windows' row + for ( int i = -2; ( currentValue != 0 ) && ( i <= 2 ); i++ ) + { + // for each windows' pixel + for ( int j = -2; j <= 2; j++ ) + { + if ( map[y + i, x + j] > currentValue ) + { + currentValue = 0; + break; + } + } + } + + // check if this point is really interesting + if ( currentValue != 0 ) + { + matchingsList.Add( new TemplateMatch( + new Rectangle( x - 2 + startX, y - 2 + startY, templateWidth, templateHeight ), + (float) currentValue / maxDiff ) ); + } + } + } + + // convert list to array + TemplateMatch[] matchings = new TemplateMatch[matchingsList.Count]; + matchingsList.CopyTo( matchings ); + // sort in descending order + Array.Sort( matchings, new MatchingsSorter( ) ); + + return matchings; + } + + // Sorter of found matchings + private class MatchingsSorter : System.Collections.IComparer + { + public int Compare( Object x, Object y ) + { + float diff = ( (TemplateMatch) y ).Similarity - ( (TemplateMatch) x ).Similarity; + + return ( diff > 0 ) ? 1 : ( diff < 0 ) ? -1 : 0; + } + } + } +} diff --git a/Sources/Imaging/Filters/2 Source filters/Add.cs b/Sources/Imaging/Filters/2 Source filters/Add.cs new file mode 100644 index 00000000..f5f6bfe0 --- /dev/null +++ b/Sources/Imaging/Filters/2 Source filters/Add.cs @@ -0,0 +1,184 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Add fillter - add pixel values of two images. + /// + /// + /// The add filter takes two images (source and overlay images) + /// of the same size and pixel format and produces an image, where each pixel equals + /// to the sum value of corresponding pixels from provided images (if sum is greater + /// than maximum allowed value, 255 or 65535, then it is truncated to that maximum). + /// + /// The filter accepts 8 and 16 bpp grayscale images and 24, 32, 48 and 64 bpp + /// color images for processing. + /// + /// Sample usage: + /// + /// // create filter + /// Add filter = new Add( overlayImage ); + /// // apply the filter + /// Bitmap resultImage = filter.Apply( sourceImage ); + /// + /// + /// Source image: + /// + /// Overlay image: + /// + /// Result image: + /// + /// + /// + /// + /// + /// + /// + /// + public sealed class Add : BaseInPlaceFilter2 + { + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Initializes a new instance of the class. + /// + public Add( ) + { + InitFormatTranslations( ); + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Overlay image. + /// + public Add( Bitmap overlayImage ) + : base( overlayImage ) + { + InitFormatTranslations( ); + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Unmanaged overlay image. + /// + public Add( UnmanagedImage unmanagedOverlayImage ) + : base( unmanagedOverlayImage ) + { + InitFormatTranslations( ); + } + + // Initialize format translation dictionary + private void InitFormatTranslations( ) + { + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format8bppIndexed; + formatTranslations[PixelFormat.Format24bppRgb] = PixelFormat.Format24bppRgb; + formatTranslations[PixelFormat.Format32bppRgb] = PixelFormat.Format32bppRgb; + formatTranslations[PixelFormat.Format32bppArgb] = PixelFormat.Format32bppArgb; + formatTranslations[PixelFormat.Format16bppGrayScale] = PixelFormat.Format16bppGrayScale; + formatTranslations[PixelFormat.Format48bppRgb] = PixelFormat.Format48bppRgb; + formatTranslations[PixelFormat.Format64bppArgb] = PixelFormat.Format64bppArgb; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Overlay image data. + /// + protected override unsafe void ProcessFilter( UnmanagedImage image, UnmanagedImage overlay ) + { + PixelFormat pixelFormat = image.PixelFormat; + // get image dimension + int width = image.Width; + int height = image.Height; + + if ( + ( pixelFormat == PixelFormat.Format8bppIndexed ) || + ( pixelFormat == PixelFormat.Format24bppRgb ) || + ( pixelFormat == PixelFormat.Format32bppRgb ) || + ( pixelFormat == PixelFormat.Format32bppArgb ) ) + { + + // initialize other variables + int pixelSize = ( pixelFormat == PixelFormat.Format8bppIndexed ) ? 1 : + ( pixelFormat == PixelFormat.Format24bppRgb ) ? 3 : 4; + int lineSize = width * pixelSize; + int srcOffset = image.Stride - lineSize; + int ovrOffset = overlay.Stride - lineSize; + // new pixel value + int v; + + // do the job + byte * ptr = (byte*) image.ImageData.ToPointer( ); + byte * ovr = (byte*) overlay.ImageData.ToPointer( ); + + // for each line + for ( int y = 0; y < height; y++ ) + { + // for each pixel + for ( int x = 0; x < lineSize; x++, ptr++, ovr++ ) + { + v = (int) *ptr + (int) *ovr; + *ptr = ( v > 255 ) ? (byte) 255 : (byte) v; + } + ptr += srcOffset; + ovr += ovrOffset; + } + } + else + { + // initialize other variables + int pixelSize = ( pixelFormat == PixelFormat.Format16bppGrayScale ) ? 1 : + ( pixelFormat == PixelFormat.Format48bppRgb ) ? 3 : 4; + int lineSize = width * pixelSize; + int srcStride = image.Stride; + int ovrStride = overlay.Stride; + // new pixel value + int v; + + // do the job + byte* basePtr = (byte*) image.ImageData.ToPointer( ); + byte* baseOvr = (byte*) overlay.ImageData.ToPointer( ); + + // for each line + for ( int y = 0; y < height; y++ ) + { + ushort * ptr = (ushort*) ( basePtr + y * srcStride ); + ushort * ovr = (ushort*) ( baseOvr + y * ovrStride ); + + // for each pixel + for ( int x = 0; x < lineSize; x++, ptr++, ovr++ ) + { + v = (int) *ptr + (int) *ovr; + *ptr = ( v > 65535 ) ? (ushort) 65535 : (ushort) v; + } + } + } + } + } +} diff --git a/Sources/Imaging/Filters/2 Source filters/Difference.cs b/Sources/Imaging/Filters/2 Source filters/Difference.cs new file mode 100644 index 00000000..62e79167 --- /dev/null +++ b/Sources/Imaging/Filters/2 Source filters/Difference.cs @@ -0,0 +1,190 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Difference filter - get the difference between overlay and source images. + /// + /// + /// The difference filter takes two images (source and + /// overlay images) + /// of the same size and pixel format and produces an image, where each pixel equals + /// to absolute difference between corresponding pixels from provided images. + /// + /// The filter accepts 8 and 16 bpp grayscale images and 24, 32, 48 and 64 bpp + /// color images for processing. + /// + /// In the case if images with alpha channel are used (32 or 64 bpp), visualization + /// of the result image may seem a bit unexpected - most probably nothing will be seen + /// (in the case if image is displayed according to its alpha channel). This may be + /// caused by the fact that after differencing the entire alpha channel will be zeroed + /// (zero difference between alpha channels), what means that the resulting image will be + /// 100% transparent. + /// + /// Sample usage: + /// + /// // create filter + /// Difference filter = new Difference( overlayImage ); + /// // apply the filter + /// Bitmap resultImage = filter.Apply( sourceImage ); + /// + /// + /// Source image: + /// + /// Overlay image: + /// + /// Result image: + /// + /// + /// + /// + /// + /// + /// + /// + public sealed class Difference : BaseInPlaceFilter2 + { + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Initializes a new instance of the class. + /// + public Difference( ) + { + InitFormatTranslations( ); + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Overlay image. + /// + public Difference( Bitmap overlayImage ) + : base( overlayImage ) + { + InitFormatTranslations( ); + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Unmanaged overlay image. + /// + public Difference( UnmanagedImage unmanagedOverlayImage ) + : base( unmanagedOverlayImage ) + { + InitFormatTranslations( ); + } + + // Initialize format translation dictionary + private void InitFormatTranslations( ) + { + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format8bppIndexed; + formatTranslations[PixelFormat.Format24bppRgb] = PixelFormat.Format24bppRgb; + formatTranslations[PixelFormat.Format32bppRgb] = PixelFormat.Format32bppRgb; + formatTranslations[PixelFormat.Format32bppArgb] = PixelFormat.Format32bppArgb; + formatTranslations[PixelFormat.Format16bppGrayScale] = PixelFormat.Format16bppGrayScale; + formatTranslations[PixelFormat.Format48bppRgb] = PixelFormat.Format48bppRgb; + formatTranslations[PixelFormat.Format64bppArgb] = PixelFormat.Format64bppArgb; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Overlay image data. + /// + protected override unsafe void ProcessFilter( UnmanagedImage image, UnmanagedImage overlay ) + { + PixelFormat pixelFormat = image.PixelFormat; + // get image dimension + int width = image.Width; + int height = image.Height; + // pixel value + int v; + + if ( + ( pixelFormat == PixelFormat.Format8bppIndexed ) || + ( pixelFormat == PixelFormat.Format24bppRgb ) || + ( pixelFormat == PixelFormat.Format32bppRgb ) || + ( pixelFormat == PixelFormat.Format32bppArgb ) ) + { + // initialize other variables + int pixelSize = ( pixelFormat == PixelFormat.Format8bppIndexed ) ? 1 : + ( pixelFormat == PixelFormat.Format24bppRgb ) ? 3 : 4; + int lineSize = width * pixelSize; + int srcOffset = image.Stride - lineSize; + int ovrOffset = overlay.Stride - lineSize; + + // do the job + byte * ptr = (byte*) image.ImageData.ToPointer( ); + byte * ovr = (byte*) overlay.ImageData.ToPointer( ); + + // for each line + for ( int y = 0; y < height; y++ ) + { + // for each pixel + for ( int x = 0; x < lineSize; x++, ptr++, ovr++ ) + { + // abs(sub) + v = (int) *ptr - (int) *ovr; + *ptr = ( v < 0 ) ? (byte) -v : (byte) v; + } + ptr += srcOffset; + ovr += ovrOffset; + } + } + else + { + // initialize other variables + int pixelSize = ( pixelFormat == PixelFormat.Format16bppGrayScale ) ? 1 : + ( pixelFormat == PixelFormat.Format48bppRgb ) ? 3 : 4; + int lineSize = width * pixelSize; + int srcStride = image.Stride; + int ovrStride = overlay.Stride; + + // do the job + byte* basePtr = (byte*) image.ImageData.ToPointer( ); + byte* baseOvr = (byte*) overlay.ImageData.ToPointer( ); + + // for each line + for ( int y = 0; y < height; y++ ) + { + ushort * ptr = (ushort*) ( basePtr + y * srcStride ); + ushort * ovr = (ushort*) ( baseOvr + y * ovrStride ); + + // for each pixel + for ( int x = 0; x < lineSize; x++, ptr++, ovr++ ) + { + // abs(sub) + v = (int) *ptr - (int) *ovr; + *ptr = ( v < 0 ) ? (ushort) -v : (ushort) v; + } + } + } + } + } +} diff --git a/Sources/Imaging/Filters/2 Source filters/Intersect.cs b/Sources/Imaging/Filters/2 Source filters/Intersect.cs new file mode 100644 index 00000000..f8b3ae18 --- /dev/null +++ b/Sources/Imaging/Filters/2 Source filters/Intersect.cs @@ -0,0 +1,178 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Intersect filter - get MIN of pixels in two images. + /// + /// + /// The intersect filter takes two images (source and overlay images) + /// of the same size and pixel format and produces an image, where each pixel equals + /// to the minimum value of corresponding pixels from provided images. + /// + /// The filter accepts 8 and 16 bpp grayscale images and 24, 32, 48 and 64 bpp + /// color images for processing. + /// + /// Sample usage: + /// + /// // create filter + /// Intersect filter = new Intersect( overlayImage ); + /// // apply the filter + /// Bitmap resultImage = filter.Apply( sourceImage ); + /// + /// + /// Source image: + /// + /// Overlay image: + /// + /// Result image: + /// + /// + /// + /// + /// + /// + /// + /// + public sealed class Intersect : BaseInPlaceFilter2 + { + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Initializes a new instance of the class. + /// + public Intersect( ) + { + InitFormatTranslations( ); + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Overlay image. + /// + public Intersect( Bitmap overlayImage ) + : base( overlayImage ) + { + InitFormatTranslations( ); + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Unmanaged overlay image. + /// + public Intersect( UnmanagedImage unmanagedOverlayImage ) + : base( unmanagedOverlayImage ) + { + InitFormatTranslations( ); + } + + // Initialize format translation dictionary + private void InitFormatTranslations( ) + { + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format8bppIndexed; + formatTranslations[PixelFormat.Format24bppRgb] = PixelFormat.Format24bppRgb; + formatTranslations[PixelFormat.Format32bppRgb] = PixelFormat.Format32bppRgb; + formatTranslations[PixelFormat.Format32bppArgb] = PixelFormat.Format32bppArgb; + formatTranslations[PixelFormat.Format16bppGrayScale] = PixelFormat.Format16bppGrayScale; + formatTranslations[PixelFormat.Format48bppRgb] = PixelFormat.Format48bppRgb; + formatTranslations[PixelFormat.Format64bppArgb] = PixelFormat.Format64bppArgb; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Overlay image data. + /// + protected override unsafe void ProcessFilter( UnmanagedImage image, UnmanagedImage overlay ) + { + PixelFormat pixelFormat = image.PixelFormat; + // get image dimension + int width = image.Width; + int height = image.Height; + + if ( + ( pixelFormat == PixelFormat.Format8bppIndexed ) || + ( pixelFormat == PixelFormat.Format24bppRgb ) || + ( pixelFormat == PixelFormat.Format32bppRgb ) || + ( pixelFormat == PixelFormat.Format32bppArgb ) ) + { + // initialize other variables + int pixelSize = ( pixelFormat == PixelFormat.Format8bppIndexed ) ? 1 : + ( pixelFormat == PixelFormat.Format24bppRgb ) ? 3 : 4; + int lineSize = width * pixelSize; + int srcOffset = image.Stride - lineSize; + int ovrOffset = overlay.Stride - lineSize; + + // do the job + byte * ptr = (byte*) image.ImageData.ToPointer( ); + byte * ovr = (byte*) overlay.ImageData.ToPointer( ); + + // for each line + for ( int y = 0; y < height; y++ ) + { + // for each pixel + for ( int x = 0; x < lineSize; x++, ptr++, ovr++ ) + { + if ( *ovr < *ptr ) + *ptr = *ovr; + } + ptr += srcOffset; + ovr += ovrOffset; + } + } + else + { + // initialize other variables + int pixelSize = ( pixelFormat == PixelFormat.Format16bppGrayScale ) ? 1 : + ( pixelFormat == PixelFormat.Format48bppRgb ) ? 3 : 4; + int lineSize = width * pixelSize; + int srcStride = image.Stride; + int ovrStride = overlay.Stride; + + // do the job + byte* basePtr = (byte*) image.ImageData.ToPointer( ); + byte* baseOvr = (byte*) overlay.ImageData.ToPointer( ); + + // for each line + for ( int y = 0; y < height; y++ ) + { + ushort * ptr = (ushort*) ( basePtr + y * srcStride ); + ushort * ovr = (ushort*) ( baseOvr + y * ovrStride ); + + // for each pixel + for ( int x = 0; x < lineSize; x++, ptr++, ovr++ ) + { + if ( *ovr < *ptr ) + *ptr = *ovr; + } + } + } + } + } +} diff --git a/Sources/Imaging/Filters/2 Source filters/Merge.cs b/Sources/Imaging/Filters/2 Source filters/Merge.cs new file mode 100644 index 00000000..ba6a7f88 --- /dev/null +++ b/Sources/Imaging/Filters/2 Source filters/Merge.cs @@ -0,0 +1,178 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Merge filter - get MAX of pixels in two images. + /// + /// + /// The merge filter takes two images (source and overlay images) + /// of the same size and pixel format and produces an image, where each pixel equals + /// to the maximum value of corresponding pixels from provided images. + /// + /// The filter accepts 8 and 16 bpp grayscale images and 24, 32, 48 and 64 bpp + /// color images for processing. + /// + /// Sample usage: + /// + /// // create filter + /// Merge filter = new Merge( overlayImage ); + /// // apply the filter + /// Bitmap resultImage = filter.Apply( sourceImage ); + /// + /// + /// Source image: + /// + /// Overlay image: + /// + /// Result image: + /// + /// + /// + /// + /// + /// + /// + /// + public sealed class Merge : BaseInPlaceFilter2 + { + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Initializes a new instance of the class + /// + public Merge( ) + { + InitFormatTranslations( ); + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Overlay image. + /// + public Merge( Bitmap overlayImage ) + : base( overlayImage ) + { + InitFormatTranslations( ); + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Unmanaged overlay image. + /// + public Merge( UnmanagedImage unmanagedOverlayImage ) + : base( unmanagedOverlayImage ) + { + InitFormatTranslations( ); + } + + // Initialize format translation dictionary + private void InitFormatTranslations( ) + { + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format8bppIndexed; + formatTranslations[PixelFormat.Format24bppRgb] = PixelFormat.Format24bppRgb; + formatTranslations[PixelFormat.Format32bppRgb] = PixelFormat.Format32bppRgb; + formatTranslations[PixelFormat.Format32bppArgb] = PixelFormat.Format32bppArgb; + formatTranslations[PixelFormat.Format16bppGrayScale] = PixelFormat.Format16bppGrayScale; + formatTranslations[PixelFormat.Format48bppRgb] = PixelFormat.Format48bppRgb; + formatTranslations[PixelFormat.Format64bppArgb] = PixelFormat.Format64bppArgb; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Overlay image data. + /// + protected override unsafe void ProcessFilter( UnmanagedImage image, UnmanagedImage overlay ) + { + PixelFormat pixelFormat = image.PixelFormat; + // get image dimension + int width = image.Width; + int height = image.Height; + + if ( + ( pixelFormat == PixelFormat.Format8bppIndexed ) || + ( pixelFormat == PixelFormat.Format24bppRgb ) || + ( pixelFormat == PixelFormat.Format32bppRgb ) || + ( pixelFormat == PixelFormat.Format32bppArgb ) ) + { + // initialize other variables + int pixelSize = ( pixelFormat == PixelFormat.Format8bppIndexed ) ? 1 : + ( pixelFormat == PixelFormat.Format24bppRgb ) ? 3 : 4; + int lineSize = width * pixelSize; + int srcOffset = image.Stride - lineSize; + int ovrOffset = overlay.Stride - lineSize; + + // do the job + byte * ptr = (byte*) image.ImageData.ToPointer( ); + byte * ovr = (byte*) overlay.ImageData.ToPointer( ); + + // for each line + for ( int y = 0; y < height; y++ ) + { + // for each pixel + for ( int x = 0; x < lineSize; x++, ptr++, ovr++ ) + { + if ( *ovr > *ptr ) + *ptr = *ovr; + } + ptr += srcOffset; + ovr += ovrOffset; + } + } + else + { + // initialize other variables + int pixelSize = ( pixelFormat == PixelFormat.Format16bppGrayScale ) ? 1 : + ( pixelFormat == PixelFormat.Format48bppRgb ) ? 3 : 4; + int lineSize = width * pixelSize; + int srcStride = image.Stride; + int ovrStride = overlay.Stride; + + // do the job + byte* basePtr = (byte*) image.ImageData.ToPointer( ); + byte* baseOvr = (byte*) overlay.ImageData.ToPointer( ); + + // for each line + for ( int y = 0; y < height; y++ ) + { + ushort * ptr = (ushort*) ( basePtr + y * srcStride ); + ushort * ovr = (ushort*) ( baseOvr + y * ovrStride ); + + // for each pixel + for ( int x = 0; x < lineSize; x++, ptr++, ovr++ ) + { + if ( *ovr > *ptr ) + *ptr = *ovr; + } + } + } + } + } +} diff --git a/Sources/Imaging/Filters/2 Source filters/Morph.cs b/Sources/Imaging/Filters/2 Source filters/Morph.cs new file mode 100644 index 00000000..514c95fe --- /dev/null +++ b/Sources/Imaging/Filters/2 Source filters/Morph.cs @@ -0,0 +1,151 @@ +// AForge Image Processing Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2005-2009 +// andrew.kirillov@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Morph filter. + /// + /// + /// The filter combines two images by taking + /// specified percent of pixels' intensities from source + /// image and the rest from overlay image. For example, if the + /// source percent value is set to 0.8, then each pixel + /// of the result image equals to 0.8 * source + 0.2 * overlay, where source + /// and overlay are corresponding pixels' values in source and overlay images. + /// + /// The filter accepts 8 bpp grayscale and 24 bpp color images for processing. + /// + /// Sample usage: + /// + /// // create filter + /// Morph filter = new Morph( overlayImage ); + /// filter.SourcePercent = 0.75; + /// // apply the filter + /// Bitmap resultImage = filter.Apply( sourceImage ); + /// + /// + /// Source image: + /// + /// Overlay image: + /// + /// Result image: + /// + /// + /// + public class Morph : BaseInPlaceFilter2 + { + private double sourcePercent = 0.50; + + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Percent of source image to keep, [0, 1]. + /// + /// + /// The property specifies the percentage of source pixels' to take. The + /// rest is taken from an overlay image. + /// + public double SourcePercent + { + get { return sourcePercent; } + set { sourcePercent = Math.Max( 0.0, Math.Min( 1.0, value ) ); } + } + + + /// + /// Initializes a new instance of the class. + /// + public Morph( ) + { + InitFormatTranslations( ); + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Overlay image. + /// + public Morph( Bitmap overlayImage ) + : base( overlayImage ) + { + InitFormatTranslations( ); + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Unmanaged overlay image. + /// + public Morph( UnmanagedImage unmanagedOverlayImage ) + : base( unmanagedOverlayImage ) + { + InitFormatTranslations( ); + } + + // Initialize format translation dictionary + private void InitFormatTranslations( ) + { + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format8bppIndexed; + formatTranslations[PixelFormat.Format24bppRgb] = PixelFormat.Format24bppRgb; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Overlay image data. + /// + protected override unsafe void ProcessFilter( UnmanagedImage image, UnmanagedImage overlay ) + { + // get image dimension + int width = image.Width; + int height = image.Height; + + // initialize other variables + int pixelSize = ( image.PixelFormat == PixelFormat.Format8bppIndexed ) ? 1 : 3; + int lineSize = width * pixelSize; + int offset = image.Stride - lineSize; + int ovrOffset = overlay.Stride - lineSize; + // percentage of overlay image + double q = 1.0 - sourcePercent; + + // do the job + byte * ptr = (byte*) image.ImageData.ToPointer( ); + byte * ovr = (byte*) overlay.ImageData.ToPointer( ); + + // for each line + for ( int y = 0; y < height; y++ ) + { + // for each pixel + for ( int x = 0; x < lineSize; x++, ptr++, ovr++ ) + { + *ptr = (byte) ( ( sourcePercent * ( *ptr ) ) + ( q * ( *ovr ) ) ); + } + ptr += offset; + ovr += ovrOffset; + } + } + } +} diff --git a/Sources/Imaging/Filters/2 Source filters/MoveTowards.cs b/Sources/Imaging/Filters/2 Source filters/MoveTowards.cs new file mode 100644 index 00000000..e0b2bbe4 --- /dev/null +++ b/Sources/Imaging/Filters/2 Source filters/MoveTowards.cs @@ -0,0 +1,247 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Move towards filter. + /// + /// + /// The result of this filter is an image, which is based on source image, + /// but updated in the way to decrease diffirence with overlay image - source image is + /// moved towards overlay image. The update equation is defined in the next way: + /// res = src + Min( Abs( ovr - src ), step ) * Sign( ovr - src ). + /// + /// The bigger is step size value the more resulting + /// image will look like overlay image. For example, in the case if step size is equal + /// to 255 (or 65535 for images with 16 bits per channel), the resulting image will be + /// equal to overlay image regardless of source image's pixel values. In the case if step + /// size is set to 1, the resulting image will very little differ from the source image. + /// But, in the case if the filter is applied repeatedly to the resulting image again and + /// again, it will become equal to overlay image in maximum 255 (65535 for images with 16 + /// bits per channel) iterations. + /// + /// The filter accepts 8 and 16 bpp grayscale images and 24, 32, 48 and 64 bpp + /// color images for processing. + /// + /// Sample usage: + /// + /// // create filter + /// MoveTowards filter = new MoveTowards( overlayImage, 20 ); + /// // apply the filter + /// Bitmap resultImage = filter.Apply( sourceImage ); + /// + /// + /// Source image: + /// + /// Overlay image: + /// + /// Result image: + /// + /// + /// + public class MoveTowards : BaseInPlaceFilter2 + { + private int stepSize = 1; + + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Step size, [0, 65535]. + /// + /// + /// + /// The property defines the maximum amount of changes per pixel in the source image. + /// + /// Default value is set to 1. + /// + /// + public int StepSize + { + get { return stepSize; } + set { stepSize = Math.Max( 1, Math.Min( 65535, value ) ); } + } + + /// + /// Initializes a new instance of the class + /// + public MoveTowards( ) + { + InitFormatTranslations( ); + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Overlay image. + /// + public MoveTowards( Bitmap overlayImage ) + : base( overlayImage ) + { + InitFormatTranslations( ); + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Overlay image. + /// Step size. + /// + public MoveTowards( Bitmap overlayImage, int stepSize ) + : base( overlayImage ) + { + InitFormatTranslations( ); + StepSize = stepSize; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Unmanaged overlay image. + /// + public MoveTowards( UnmanagedImage unmanagedOverlayImage ) + : base( unmanagedOverlayImage ) + { + InitFormatTranslations( ); + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Unmanaged overlay image. + /// Step size. + /// + public MoveTowards( UnmanagedImage unmanagedOverlayImage, int stepSize ) + : base( unmanagedOverlayImage ) + { + InitFormatTranslations( ); + StepSize = stepSize; + } + + // Initialize format translation dictionary + private void InitFormatTranslations( ) + { + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format8bppIndexed; + formatTranslations[PixelFormat.Format24bppRgb] = PixelFormat.Format24bppRgb; + formatTranslations[PixelFormat.Format32bppRgb] = PixelFormat.Format32bppRgb; + formatTranslations[PixelFormat.Format32bppArgb] = PixelFormat.Format32bppArgb; + formatTranslations[PixelFormat.Format16bppGrayScale] = PixelFormat.Format16bppGrayScale; + formatTranslations[PixelFormat.Format48bppRgb] = PixelFormat.Format48bppRgb; + formatTranslations[PixelFormat.Format64bppArgb] = PixelFormat.Format64bppArgb; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Overlay image data. + /// + protected override unsafe void ProcessFilter( UnmanagedImage image, UnmanagedImage overlay ) + { + PixelFormat pixelFormat = image.PixelFormat; + // get image dimension + int width = image.Width; + int height = image.Height; + // pixel value + int v; + + if ( + ( pixelFormat == PixelFormat.Format8bppIndexed ) || + ( pixelFormat == PixelFormat.Format24bppRgb ) || + ( pixelFormat == PixelFormat.Format32bppRgb ) || + ( pixelFormat == PixelFormat.Format32bppArgb ) ) + { + // initialize other variables + int pixelSize = ( pixelFormat == PixelFormat.Format8bppIndexed ) ? 1 : + ( pixelFormat == PixelFormat.Format24bppRgb ) ? 3 : 4; + int lineSize = width * pixelSize; + int srcOffset = image.Stride - lineSize; + int ovrOffset = overlay.Stride - lineSize; + + // do the job + byte * ptr = (byte*) image.ImageData.ToPointer( ); + byte * ovr = (byte*) overlay.ImageData.ToPointer( ); + + // for each line + for ( int y = 0; y < height; y++ ) + { + // for each pixel + for ( int x = 0; x < lineSize; x++, ptr++, ovr++ ) + { + v = (int) *ovr - *ptr; + if ( v > 0 ) + { + *ptr += (byte) ( ( stepSize < v ) ? stepSize : v ); + } + else if ( v < 0 ) + { + v = -v; + *ptr -= (byte) ( ( stepSize < v ) ? stepSize : v ); + } + } + ptr += srcOffset; + ovr += ovrOffset; + } + } + else + { + // initialize other variables + int pixelSize = ( pixelFormat == PixelFormat.Format16bppGrayScale ) ? 1 : + ( pixelFormat == PixelFormat.Format48bppRgb ) ? 3 : 4; + int lineSize = width * pixelSize; + int srcStride = image.Stride; + int ovrStride = overlay.Stride; + + // do the job + byte* basePtr = (byte*) image.ImageData.ToPointer( ); + byte* baseOvr = (byte*) overlay.ImageData.ToPointer( ); + + // for each line + for ( int y = 0; y < height; y++ ) + { + ushort * ptr = (ushort*) ( basePtr + y * srcStride ); + ushort * ovr = (ushort*) ( baseOvr + y * ovrStride ); + + // for each pixel + for ( int x = 0; x < lineSize; x++, ptr++, ovr++ ) + { + v = (int) *ovr - *ptr; + if ( v > 0 ) + { + *ptr += (ushort) ( ( stepSize < v ) ? stepSize : v ); + } + else if ( v < 0 ) + { + v = -v; + *ptr -= (ushort) ( ( stepSize < v ) ? stepSize : v ); + } + } + } + } + } + } +} diff --git a/Sources/Imaging/Filters/2 Source filters/StereoAnaglyph.cs b/Sources/Imaging/Filters/2 Source filters/StereoAnaglyph.cs new file mode 100644 index 00000000..df2d9e65 --- /dev/null +++ b/Sources/Imaging/Filters/2 Source filters/StereoAnaglyph.cs @@ -0,0 +1,267 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2005-2009 +// andrew.kirillov@aforgenet.com + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Stereo anaglyph filter. + /// + /// + /// The image processing filter produces stereo anaglyph images which are + /// aimed to be viewed through anaglyph glasses with red filter over the left eye and + /// cyan over the right. + /// + /// + /// + /// The stereo image is produced by combining two images of the same scene taken + /// from a bit different points. The right image must be provided to the filter using + /// property, but the left image must be provided to + /// method, which creates the anaglyph image. + /// + /// The filter accepts 24 bpp color images for processing. + /// + /// See enumeration for the list of supported anaglyph algorithms. + /// + /// Sample usage: + /// + /// // create filter + /// StereoAnaglyph filter = new StereoAnaglyph( ); + /// // set right image as overlay + /// filter.Overlay = rightImage + /// // apply the filter (providing left image) + /// Bitmap resultImage = filter.Apply( leftImage ); + /// + /// + /// Source image (left): + /// + /// Overlay image (right): + /// + /// Result image: + /// + /// + /// + /// + public class StereoAnaglyph : BaseInPlaceFilter2 + { + /// + /// Enumeration of algorithms for creating anaglyph images. + /// + /// + /// See anaglyph methods comparison for + /// descipton of different algorithms. + /// + /// + public enum Algorithm + { + /// + /// Creates anaglyph image using the below calculations: + /// + /// Ra=0.299*Rl+0.587*Gl+0.114*Bl; + /// Ga=0; + /// Ba=0.299*Rr+0.587*Gr+0.114*Br. + /// + /// + TrueAnaglyph, + + /// + /// Creates anaglyph image using the below calculations: + /// + /// Ra=0.299*Rl+0.587*Gl+0.114*Bl; + /// Ga=0.299*Rr+0.587*Gr+0.114*Br; + /// Ba=0.299*Rr+0.587*Gr+0.114*Br. + /// + /// + GrayAnaglyph, + + /// + /// Creates anaglyph image using the below calculations: + /// + /// Ra=Rl; + /// Ga=Gr; + /// Ba=Br. + /// + /// + ColorAnaglyph, + + /// + /// Creates anaglyph image using the below calculations: + /// + /// Ra=0.299*Rl+0.587*Gl+0.114*Bl; + /// Ga=Gr; + /// Ba=Br. + /// + /// + HalfColorAnaglyph, + + /// + /// Creates anaglyph image using the below calculations: + /// + /// Ra=0.7*Gl+0.3*Bl; + /// Ga=Gr; + /// Ba=Br. + /// + /// + OptimizedAnaglyph + } + + private Algorithm anaglyphAlgorithm = Algorithm.GrayAnaglyph; + + /// + /// Algorithm to use for creating anaglyph images. + /// + /// + /// Default value is set to . + /// + public Algorithm AnaglyphAlgorithm + { + get { return anaglyphAlgorithm; } + set { anaglyphAlgorithm = value; } + } + + + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Initializes a new instance of the class. + /// + public StereoAnaglyph( ) + { + formatTranslations[PixelFormat.Format24bppRgb] = PixelFormat.Format24bppRgb; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Algorithm to use for creating anaglyph images. + /// + public StereoAnaglyph( Algorithm anaglyphAlgorithm ) + : this( ) + { + this.anaglyphAlgorithm = anaglyphAlgorithm; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data (left image). + /// Overlay image data (right image). + /// + protected override unsafe void ProcessFilter( UnmanagedImage image, UnmanagedImage overlay ) + { + // get image dimension + int width = image.Width; + int height = image.Height; + + // initialize other variables + int offset = image.Stride - width * 3; + int ovrOffset = overlay.Stride - width * 3; + + // do the job + byte * ptr = (byte*) image.ImageData.ToPointer( ); + byte * ovr = (byte*) overlay.ImageData.ToPointer( ); + + switch ( anaglyphAlgorithm ) + { + case Algorithm.TrueAnaglyph: + // for each line + for ( int y = 0; y < height; y++ ) + { + // for each pixel + for ( int x = 0; x < width; x++, ptr += 3, ovr += 3 ) + { + ptr[RGB.R] = (byte) ( ptr[RGB.R] * 0.299 + ptr[RGB.G] * 0.587 + ptr[RGB.B] * 0.114 ); + ptr[RGB.G] = 0; + ptr[RGB.B] = (byte) ( ovr[RGB.R] * 0.299 + ovr[RGB.G] * 0.587 + ovr[RGB.B] * 0.114 ); + } + ptr += offset; + ovr += ovrOffset; + } + break; + + case Algorithm.GrayAnaglyph: + // for each line + for ( int y = 0; y < height; y++ ) + { + // for each pixel + for ( int x = 0; x < width; x++, ptr += 3, ovr += 3 ) + { + ptr[RGB.R] = (byte) ( ptr[RGB.R] * 0.299 + ptr[RGB.G] * 0.587 + ptr[RGB.B] * 0.114 ); + ptr[RGB.G] = (byte) ( ovr[RGB.R] * 0.299 + ovr[RGB.G] * 0.587 + ovr[RGB.B] * 0.114 ); + ptr[RGB.B] = ptr[RGB.G]; + } + ptr += offset; + ovr += ovrOffset; + } + break; + + case Algorithm.ColorAnaglyph: + // for each line + for ( int y = 0; y < height; y++ ) + { + // for each pixel + for ( int x = 0; x < width; x++, ptr += 3, ovr += 3 ) + { + // keep Red as it is and take only Green and Blue from the second image + ptr[RGB.G] = ovr[RGB.G]; + ptr[RGB.B] = ovr[RGB.B]; + } + ptr += offset; + ovr += ovrOffset; + } + break; + + case Algorithm.HalfColorAnaglyph: + // for each line + for ( int y = 0; y < height; y++ ) + { + // for each pixel + for ( int x = 0; x < width; x++, ptr += 3, ovr += 3 ) + { + ptr[RGB.R] = (byte) ( ptr[RGB.R] * 0.299 + ptr[RGB.G] * 0.587 + ptr[RGB.B] * 0.114 ); + ptr[RGB.G] = ovr[RGB.G]; + ptr[RGB.B] = ovr[RGB.B]; + } + ptr += offset; + ovr += ovrOffset; + } + break; + + case Algorithm.OptimizedAnaglyph: + // for each line + for ( int y = 0; y < height; y++ ) + { + // for each pixel + for ( int x = 0; x < width; x++, ptr += 3, ovr += 3 ) + { + ptr[RGB.R] = (byte) ( ptr[RGB.G] * 0.7 + ptr[RGB.B] * 0.3 ); + ptr[RGB.G] = ovr[RGB.G]; + ptr[RGB.B] = ovr[RGB.B]; + } + ptr += offset; + ovr += ovrOffset; + } + break; + } + } + } +} diff --git a/Sources/Imaging/Filters/2 Source filters/Subtract.cs b/Sources/Imaging/Filters/2 Source filters/Subtract.cs new file mode 100644 index 00000000..d54c1f6c --- /dev/null +++ b/Sources/Imaging/Filters/2 Source filters/Subtract.cs @@ -0,0 +1,184 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Subtract filter - subtract pixel values of two images. + /// + /// + /// The subtract filter takes two images (source and overlay images) + /// of the same size and pixel format and produces an image, where each pixel equals + /// to the difference value of corresponding pixels from provided images (if difference is less + /// than minimum allowed value, 0, then it is truncated to that minimum value). + /// + /// The filter accepts 8 and 16 bpp grayscale images and 24, 32, 48 and 64 bpp + /// color images for processing. + /// + /// Sample usage: + /// + /// // create filter + /// Subtract filter = new Subtract( overlayImage ); + /// // apply the filter + /// Bitmap resultImage = filter.Apply( sourceImage ); + /// + /// + /// Source image: + /// + /// Overlay image: + /// + /// Result image: + /// + /// + /// + /// + /// + /// + /// + /// + public sealed class Subtract : BaseInPlaceFilter2 + { + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Initializes a new instance of the class. + /// + public Subtract( ) + { + InitFormatTranslations( ); + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Overlay image + /// + public Subtract( Bitmap overlayImage ) + : base( overlayImage ) + { + InitFormatTranslations( ); + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Unmanaged overlay image. + /// + public Subtract( UnmanagedImage unmanagedOverlayImage ) + : base( unmanagedOverlayImage ) + { + InitFormatTranslations( ); + } + + // Initialize format translation dictionary + private void InitFormatTranslations( ) + { + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format8bppIndexed; + formatTranslations[PixelFormat.Format24bppRgb] = PixelFormat.Format24bppRgb; + formatTranslations[PixelFormat.Format32bppRgb] = PixelFormat.Format32bppRgb; + formatTranslations[PixelFormat.Format32bppArgb] = PixelFormat.Format32bppArgb; + formatTranslations[PixelFormat.Format16bppGrayScale] = PixelFormat.Format16bppGrayScale; + formatTranslations[PixelFormat.Format48bppRgb] = PixelFormat.Format48bppRgb; + formatTranslations[PixelFormat.Format64bppArgb] = PixelFormat.Format64bppArgb; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Overlay image data. + /// + protected override unsafe void ProcessFilter( UnmanagedImage image, UnmanagedImage overlay ) + { + PixelFormat pixelFormat = image.PixelFormat; + // get image dimension + int width = image.Width; + int height = image.Height; + + if ( + ( pixelFormat == PixelFormat.Format8bppIndexed ) || + ( pixelFormat == PixelFormat.Format24bppRgb ) || + ( pixelFormat == PixelFormat.Format32bppRgb ) || + ( pixelFormat == PixelFormat.Format32bppArgb ) ) + { + + // initialize other variables + int pixelSize = ( pixelFormat == PixelFormat.Format8bppIndexed ) ? 1 : + ( pixelFormat == PixelFormat.Format24bppRgb ) ? 3 : 4; + int lineSize = width * pixelSize; + int srcOffset = image.Stride - lineSize; + int ovrOffset = overlay.Stride - lineSize; + // new pixel value + int v; + + // do the job + byte * ptr = (byte*) image.ImageData.ToPointer( ); + byte * ovr = (byte*) overlay.ImageData.ToPointer( ); + + // for each line + for ( int y = 0; y < height; y++ ) + { + // for each pixel + for ( int x = 0; x < lineSize; x++, ptr++, ovr++ ) + { + v = (int) *ptr - (int) *ovr; + *ptr = ( v < 0 ) ? (byte) 0 : (byte) v; + } + ptr += srcOffset; + ovr += ovrOffset; + } + } + else + { + // initialize other variables + int pixelSize = ( pixelFormat == PixelFormat.Format16bppGrayScale ) ? 1 : + ( pixelFormat == PixelFormat.Format48bppRgb ) ? 3 : 4; + int lineSize = width * pixelSize; + int srcStride = image.Stride; + int ovrStride = overlay.Stride; + // new pixel value + int v; + + // do the job + byte* basePtr = (byte*) image.ImageData.ToPointer( ); + byte* baseOvr = (byte*) overlay.ImageData.ToPointer( ); + + // for each line + for ( int y = 0; y < height; y++ ) + { + ushort * ptr = (ushort*) ( basePtr + y * srcStride ); + ushort * ovr = (ushort*) ( baseOvr + y * ovrStride ); + + // for each pixel + for ( int x = 0; x < lineSize; x++, ptr++, ovr++ ) + { + v = (int) *ptr - (int) *ovr; + *ptr = ( v < 0 ) ? (ushort) 0 : (ushort) v; + } + } + } + } + } +} diff --git a/Sources/Imaging/Filters/2 Source filters/ThresholdedDifference.cs b/Sources/Imaging/Filters/2 Source filters/ThresholdedDifference.cs new file mode 100644 index 00000000..9d1aef98 --- /dev/null +++ b/Sources/Imaging/Filters/2 Source filters/ThresholdedDifference.cs @@ -0,0 +1,218 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2010 +// contacts@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Calculate difference between two images and threshold it. + /// + /// + /// The filter produces similar result as applying filter and + /// then filter - thresholded difference between two images. Result of this + /// image processing routine may be useful in motion detection applications or finding areas of significant + /// difference. + /// + /// The filter accepts 8 and 24/32color images for processing. + /// In the case of color images, the image processing routine differences sum over 3 RGB channels (Manhattan distance), i.e. + /// |diffR| + |diffG| + |diffB|. + /// + /// + /// Sample usage: + /// + /// // create filter + /// ThresholdedDifference filter = new ThresholdedDifference( 60 ); + /// // apply the filter + /// filter.OverlayImage = backgroundImage; + /// Bitmap resultImage = filter.Apply( sourceImage ); + /// + /// + /// Source image: + /// + /// Background image: + /// + /// Result image: + /// + /// + /// + /// + /// + public class ThresholdedDifference : BaseFilter2 + { + // format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + private int threshold = 15; + + /// + /// Difference threshold. + /// + /// + /// The property specifies difference threshold. If difference between pixels of processing image + /// and overlay image is greater than this value, then corresponding pixel of result image is set to white; otherwise + /// black. + /// + /// + /// Default value is set to 15. + /// + public int Threshold + { + get { return threshold; } + set { threshold = value; } + } + + private int whitePixelsCount = 0; + + /// + /// Number of pixels which were set to white in destination image during last image processing call. + /// + /// + /// The property may be useful to determine amount of difference between two images which, + /// for example, may be treated as amount of motion in motion detection applications, etc. + /// + public int WhitePixelsCount + { + get { return whitePixelsCount; } + } + + /// + /// Format translations dictionary. + /// + /// + /// See for more information. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public ThresholdedDifference( ) + { + // initialize format translation dictionary + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format8bppIndexed; + formatTranslations[PixelFormat.Format24bppRgb] = PixelFormat.Format8bppIndexed; + formatTranslations[PixelFormat.Format32bppRgb] = PixelFormat.Format8bppIndexed; + formatTranslations[PixelFormat.Format32bppArgb] = PixelFormat.Format8bppIndexed; + formatTranslations[PixelFormat.Format32bppPArgb] = PixelFormat.Format8bppIndexed; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Difference threshold (see ). + /// + public ThresholdedDifference( int threshold ) : this( ) + { + this.threshold = threshold; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Overlay image data. + /// Destination image data + /// + protected override unsafe void ProcessFilter( UnmanagedImage sourceData, UnmanagedImage overlay, UnmanagedImage destinationData ) + { + whitePixelsCount = 0; + + // get source image size + int width = sourceData.Width; + int height = sourceData.Height; + int pixelSize = Bitmap.GetPixelFormatSize( sourceData.PixelFormat ) / 8; + + byte* src = (byte*) sourceData.ImageData.ToPointer( ); + byte* ovr = (byte*) overlay.ImageData.ToPointer( ); + byte* dst = (byte*) destinationData.ImageData.ToPointer( ); + + if ( pixelSize == 1 ) + { + // grayscale image + int srcOffset = sourceData.Stride - width; + int ovrOffset = overlay.Stride - width; + int dstOffset = destinationData.Stride - width; + + // for each line + for ( int y = 0; y < height; y++ ) + { + // for each pixel + for ( int x = 0; x < width; x++, src++, ovr++, dst++ ) + { + int diff = *src - *ovr; + + if ( diff < 0 ) + diff = -diff; + + if ( diff > threshold ) + { + *dst = (byte) 255; + whitePixelsCount++; + } + else + { + *dst = 0; + } + } + src += srcOffset; + ovr += ovrOffset; + dst += dstOffset; + } + } + else + { + // color image + int srcOffset = sourceData.Stride - pixelSize * width; + int ovrOffset = overlay.Stride - pixelSize * width; + int dstOffset = destinationData.Stride - width; + + // for each line + for ( int y = 0; y < height; y++ ) + { + // for each pixel + for ( int x = 0; x < width; x++, src += pixelSize, ovr += pixelSize, dst++ ) + { + int diffR = src[RGB.R] - ovr[RGB.R]; + int diffG = src[RGB.G] - ovr[RGB.G]; + int diffB = src[RGB.B] - ovr[RGB.B]; + + if ( diffR < 0 ) + diffR = -diffR; + if ( diffG < 0 ) + diffG = -diffG; + if ( diffB < 0 ) + diffB = -diffB; + + if ( diffR + diffG + diffB > threshold ) + { + *dst = (byte) 255; + whitePixelsCount++; + } + else + { + *dst = 0; + } + } + src += srcOffset; + ovr += ovrOffset; + dst += dstOffset; + } + } + } + } +} diff --git a/Sources/Imaging/Filters/2 Source filters/ThresholdedEuclideanDifference.cs b/Sources/Imaging/Filters/2 Source filters/ThresholdedEuclideanDifference.cs new file mode 100644 index 00000000..32ddd182 --- /dev/null +++ b/Sources/Imaging/Filters/2 Source filters/ThresholdedEuclideanDifference.cs @@ -0,0 +1,210 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2010 +// contacts@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Calculate Euclidean difference between two images and threshold it. + /// + /// + /// The filter produces similar to , however it uses + /// Euclidean distance for finding difference between pixel values instead of Manhattan distance. Result of this + /// image processing routine may be useful in motion detection applications or finding areas of significant + /// difference. + /// + /// The filter accepts 8 and 24/32color images for processing. + /// + /// Sample usage: + /// + /// // create filter + /// ThresholdedEuclideanDifference filter = new ThresholdedEuclideanDifference( 60 ); + /// // apply the filter + /// filter.OverlayImage = backgroundImage; + /// Bitmap resultImage = filter.Apply( sourceImage ); + /// + /// + /// Source image: + /// + /// Background image: + /// + /// Result image: + /// + /// + /// + /// + /// + public class ThresholdedEuclideanDifference : BaseFilter2 + { + // format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + private int threshold = 15; + + /// + /// Difference threshold. + /// + /// + /// The property specifies difference threshold. If difference between pixels of processing image + /// and overlay image is greater than this value, then corresponding pixel of result image is set to white; otherwise + /// black. + /// + /// + /// Default value is set to 15. + /// + public int Threshold + { + get { return threshold; } + set { threshold = value; } + } + + private int whitePixelsCount = 0; + + /// + /// Number of pixels which were set to white in destination image during last image processing call. + /// + /// + /// The property may be useful to determine amount of difference between two images which, + /// for example, may be treated as amount of motion in motion detection applications, etc. + /// + public int WhitePixelsCount + { + get { return whitePixelsCount; } + } + + /// + /// Format translations dictionary. + /// + /// + /// See for more information. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public ThresholdedEuclideanDifference( ) + { + // initialize format translation dictionary + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format8bppIndexed; + formatTranslations[PixelFormat.Format24bppRgb] = PixelFormat.Format8bppIndexed; + formatTranslations[PixelFormat.Format32bppRgb] = PixelFormat.Format8bppIndexed; + formatTranslations[PixelFormat.Format32bppArgb] = PixelFormat.Format8bppIndexed; + formatTranslations[PixelFormat.Format32bppPArgb] = PixelFormat.Format8bppIndexed; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Difference threshold (see ). + /// + public ThresholdedEuclideanDifference( int threshold ) : this( ) + { + this.threshold = threshold; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Overlay image data. + /// Destination image data + /// + protected override unsafe void ProcessFilter( UnmanagedImage sourceData, UnmanagedImage overlay, UnmanagedImage destinationData ) + { + whitePixelsCount = 0; + + // get source image size + int width = sourceData.Width; + int height = sourceData.Height; + int pixelSize = Bitmap.GetPixelFormatSize( sourceData.PixelFormat ) / 8; + + byte* src = (byte*) sourceData.ImageData.ToPointer( ); + byte* ovr = (byte*) overlay.ImageData.ToPointer( ); + byte* dst = (byte*) destinationData.ImageData.ToPointer( ); + + if ( pixelSize == 1 ) + { + // grayscale image + int srcOffset = sourceData.Stride - width; + int ovrOffset = overlay.Stride - width; + int dstOffset = destinationData.Stride - width; + + // for each line + for ( int y = 0; y < height; y++ ) + { + // for each pixel + for ( int x = 0; x < width; x++, src++, ovr++, dst++ ) + { + int diff = *src - *ovr; + + if ( diff < 0 ) + diff = -diff; + + if ( diff > threshold ) + { + *dst = (byte) 255; + whitePixelsCount++; + } + else + { + *dst = 0; + } + } + src += srcOffset; + ovr += ovrOffset; + dst += dstOffset; + } + } + else + { + // color image + int srcOffset = sourceData.Stride - pixelSize * width; + int ovrOffset = overlay.Stride - pixelSize * width; + int dstOffset = destinationData.Stride - width; + + int squaredThreshold = threshold * threshold; + + // for each line + for ( int y = 0; y < height; y++ ) + { + // for each pixel + for ( int x = 0; x < width; x++, src += pixelSize, ovr += pixelSize, dst++ ) + { + int diffR = src[RGB.R] - ovr[RGB.R]; + int diffG = src[RGB.G] - ovr[RGB.G]; + int diffB = src[RGB.B] - ovr[RGB.B]; + + if ( diffR * diffR + diffG * diffG + diffB * diffB > squaredThreshold ) + { + *dst = (byte) 255; + whitePixelsCount++; + } + else + { + *dst = 0; + } + } + src += srcOffset; + ovr += ovrOffset; + dst += dstOffset; + } + } + } + } +} diff --git a/Sources/Imaging/Filters/Adaptive Binarization/BradleyLocalThresholding.cs b/Sources/Imaging/Filters/Adaptive Binarization/BradleyLocalThresholding.cs new file mode 100644 index 00000000..014c2cc3 --- /dev/null +++ b/Sources/Imaging/Filters/Adaptive Binarization/BradleyLocalThresholding.cs @@ -0,0 +1,159 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2010 +// contacts@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Adaptive thresholding using the internal image. + /// + /// + /// The image processing routine implements local thresholding technique described + /// by Derek Bradley and Gerhard Roth in the "Adaptive Thresholding Using the Integral Image" paper. + /// + /// + /// The brief idea of the algorithm is that every image's pixel is set to black if its brightness + /// is t percent lower (see ) than the average brightness + /// of surrounding pixels in the window of the specified size (see ), othwerwise it is set + /// to white. + /// + /// Sample usage: + /// + /// // create the filter + /// BradleyLocalThresholding filter = new BradleyLocalThresholding( ); + /// // apply the filter + /// filter.ApplyInPlace( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + public class BradleyLocalThresholding : BaseInPlaceFilter + { + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + private int windowSize = 41; + private float pixelBrightnessDifferenceLimit = 0.15f; + + /// + /// Window size to calculate average value of pixels for. + /// + /// + /// The property specifies window size around processing pixel, which determines number of + /// neighbor pixels to use for calculating their average brightness. + /// + /// Default value is set to 41. + /// + /// The value should be odd. + /// + /// + public int WindowSize + { + get { return windowSize; } + set { windowSize = Math.Max( 3, value | 1 ); } + } + + /// + /// Brightness difference limit between processing pixel and average value across neighbors. + /// + /// + /// The property specifies what is the allowed difference percent between processing pixel + /// and average brightness of neighbor pixels in order to be set white. If the value of the + /// current pixel is t percent (this property value) lower than the average then it is set + /// to black, otherwise it is set to white. + /// + /// Default value is set to 0.15. + /// + /// + public float PixelBrightnessDifferenceLimit + { + get { return pixelBrightnessDifferenceLimit; } + set { pixelBrightnessDifferenceLimit = Math.Max( 0.0f, Math.Min( 1.0f, value ) ); } + } + + /// + /// Format translations dictionary. + /// + /// + /// See for more information. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public BradleyLocalThresholding( ) + { + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format8bppIndexed; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// + protected override unsafe void ProcessFilter( UnmanagedImage image ) + { + // create integral image + IntegralImage im = IntegralImage.FromBitmap( image ); + + int width = image.Width; + int height = image.Height; + int widthM1 = width - 1; + int heightM1 = height - 1; + + int offset = image.Stride - width; + int radius = windowSize / 2; + + float avgBrightnessPart = 1.0f - pixelBrightnessDifferenceLimit; + + byte* ptr = (byte*) image.ImageData.ToPointer( ); + + for ( int y = 0; y < height; y++ ) + { + // rectangle's Y coordinates + int y1 = y - radius; + int y2 = y + radius; + + if ( y1 < 0 ) + y1 = 0; + if ( y2 > heightM1 ) + y2 = heightM1; + + for ( int x = 0; x < width; x++, ptr++ ) + { + // rectangle's X coordinates + int x1 = x - radius; + int x2 = x + radius; + + if ( x1 < 0 ) + x1 = 0; + if ( x2 > widthM1 ) + x2 = widthM1; + + *ptr = (byte) ( ( *ptr < (int) ( im.GetRectangleMeanUnsafe( x1, y1, x2, y2 ) * avgBrightnessPart ) ) ? 0 : 255 ); + } + + ptr += offset; + } + } + } +} diff --git a/Sources/Imaging/Filters/Adaptive Binarization/IterativeThreshold.cs b/Sources/Imaging/Filters/Adaptive Binarization/IterativeThreshold.cs new file mode 100644 index 00000000..3e2c4d84 --- /dev/null +++ b/Sources/Imaging/Filters/Adaptive Binarization/IterativeThreshold.cs @@ -0,0 +1,311 @@ +// AForge Image Processing Library +// AForge.NET framework +// +// Copyright © Markus Falkensteiner, 2007 +// mfalkensteiner@gmx.at +// +// Copyright © Andrew Kirillov, 2007-2009 +// andrew.kirillov@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Iterative threshold search and binarization. + /// + /// + /// + /// The algorithm works in the following way: + /// + /// select any start threshold; + /// compute average value of Background (µB) and Object (µO) values: + /// 1) all pixels with a value that is below threshold, belong to the Background values; + /// 2) all pixels greater or equal threshold, belong to the Object values. + /// + /// calculate new thresghold: (µB + µO) / 2; + /// if |oldThreshold - newThreshold| is less than a given manimum allowed error, then stop iteration process + /// and create the binary image with the new threshold. + /// + /// + /// + /// For additional information see Digital Image Processing, Gonzalez/Woods. Ch.10 page:599. + /// + /// The filter accepts 8 and 16 bpp grayscale images for processing. + /// + /// Since the filter can be applied as to 8 bpp and to 16 bpp images, + /// the initial value of property should be set appropriately to the + /// pixel format. In the case of 8 bpp images the threshold value is in the [0, 255] range, but + /// in the case of 16 bpp images the threshold value is in the [0, 65535] range. + /// + /// Sample usage: + /// + /// // create filter + /// IterativeThreshold filter = new IterativeThreshold( 2, 128 ); + /// // apply the filter + /// Bitmap newImage = filter.Apply( image ); + /// + /// + /// Initial image: + /// + /// Result image (calculated threshold is 102): + /// + /// + /// + /// + /// + /// + public class IterativeThreshold : Threshold + { + private int minError = 0; + + /// + /// Minimum error, value when iterative threshold search is stopped. + /// + /// + /// Default value is set to 0. + /// + public int MinimumError + { + get { return minError; } + set { minError = value; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public IterativeThreshold( ) + { + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Minimum allowed error, that ends the iteration process. + /// + public IterativeThreshold( int minError ) + { + this.minError = minError; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Minimum allowed error, that ends the iteration process. + /// Initial threshold value. + /// + public IterativeThreshold( int minError, int threshold ) + { + this.minError = minError; + this.threshold = threshold; + } + + /// + /// Calculate binarization threshold for the given image. + /// + /// + /// Image to calculate binarization threshold for. + /// Rectangle to calculate binarization threshold for. + /// + /// Returns binarization threshold. + /// + /// The method is used to calculate binarization threshold only. The threshold + /// later may be applied to the image using image processing filter. + /// + /// Source pixel format is not supported by the routine. It should + /// 8 bpp grayscale (indexed) or 16 bpp grayscale image. + /// + public int CalculateThreshold( Bitmap image, Rectangle rect ) + { + int calculatedThreshold = 0; + + // lock source bitmap data + BitmapData data = image.LockBits( + new Rectangle( 0, 0, image.Width, image.Height ), + ImageLockMode.ReadOnly, image.PixelFormat ); + + try + { + calculatedThreshold = CalculateThreshold( data, rect ); + } + finally + { + // unlock image + image.UnlockBits( data ); + } + + return calculatedThreshold; + } + + /// + /// Calculate binarization threshold for the given image. + /// + /// + /// Image to calculate binarization threshold for. + /// Rectangle to calculate binarization threshold for. + /// + /// Returns binarization threshold. + /// + /// The method is used to calculate binarization threshold only. The threshold + /// later may be applied to the image using image processing filter. + /// + /// Source pixel format is not supported by the routine. It should + /// 8 bpp grayscale (indexed) or 16 bpp grayscale image. + /// + public int CalculateThreshold( BitmapData image, Rectangle rect ) + { + return CalculateThreshold( new UnmanagedImage( image ), rect ); + } + + /// + /// Calculate binarization threshold for the given image. + /// + /// + /// Image to calculate binarization threshold for. + /// Rectangle to calculate binarization threshold for. + /// + /// Returns binarization threshold. + /// + /// The method is used to calculate binarization threshold only. The threshold + /// later may be applied to the image using image processing filter. + /// + /// Source pixel format is not supported by the routine. It should + /// 8 bpp grayscale (indexed) or 16 bpp grayscale image. + /// + public int CalculateThreshold( UnmanagedImage image, Rectangle rect ) + { + if ( ( image.PixelFormat != PixelFormat.Format8bppIndexed ) && + ( image.PixelFormat != PixelFormat.Format16bppGrayScale ) ) + throw new UnsupportedImageFormatException( "Source pixel format is not supported by the routine." ); + + int calculatedThreshold = threshold; + + // get start and stop X-Y coordinates + int startX = rect.Left; + int startY = rect.Top; + int stopX = startX + rect.Width; + int stopY = startY + rect.Height; + + // histogram array + int[] integerHistogram = null; + int maxThreshold = 0; + + unsafe + { + if ( image.PixelFormat == PixelFormat.Format8bppIndexed ) + { + integerHistogram = new int[256]; + maxThreshold = 256; + + // collect histogram first + byte* ptr = (byte*) image.ImageData.ToPointer( ); + int offset = image.Stride - rect.Width; + + // allign pointer to the first pixel to process + ptr += ( startY * image.Stride + startX ); + + // for each line + for ( int y = startY; y < stopY; y++ ) + { + // for each pixel + for ( int x = startX; x < stopX; x++, ptr++ ) + { + integerHistogram[*ptr]++; + } + ptr += offset; + } + } + else + { + integerHistogram = new int[65536]; + maxThreshold = 65536; + + // collect histogram first + byte* basePtr = (byte*) image.ImageData.ToPointer( ) + startX * 2; + int stride = image.Stride; + + // for each line + for ( int y = startY; y < stopY; y++ ) + { + ushort* ptr = (ushort*) ( basePtr + y * stride ); + + // for each pixel + for ( int x = startX; x < stopX; x++, ptr++ ) + { + integerHistogram[*ptr]++; + } + } + } + } + + // old threshold value + int oldThreshold = 0; + + do + { + oldThreshold = calculatedThreshold; + + // object's mean and amount of object's pixels + double meanObject = 0; + int objectPixels = 0; + + // background's mean and amount of background's pixels + double meanBackground = 0; + int backgroundPixels = 0; + + for ( int t = 0; t < calculatedThreshold; t++ ) + { + meanBackground += (double) t * integerHistogram[t]; + backgroundPixels += integerHistogram[t]; + } + // calculate object pixels + for ( int t = calculatedThreshold; t < maxThreshold; t++ ) + { + meanObject += (double) t * integerHistogram[t]; + objectPixels += integerHistogram[t]; + } + meanBackground /= backgroundPixels; + meanObject /= objectPixels; + + // calculate new threshold value + if ( backgroundPixels == 0 ) + { + calculatedThreshold = (int) meanObject; + } + else if ( objectPixels == 0 ) + { + calculatedThreshold = (int) meanBackground; + } + else + { + calculatedThreshold = (int) ( ( meanBackground + meanObject ) / 2 ); + } + } + while ( Math.Abs( oldThreshold - calculatedThreshold ) > minError ); + + return calculatedThreshold; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Image rectangle for processing by the filter. + /// + protected override unsafe void ProcessFilter( UnmanagedImage image, Rectangle rect ) + { + // calculate threshold for the given image + threshold = CalculateThreshold( image, rect ); + + // process image data using base filter + base.ProcessFilter( image, rect ); + } + } +} diff --git a/Sources/Imaging/Filters/Adaptive Binarization/OtsuThreshold.cs b/Sources/Imaging/Filters/Adaptive Binarization/OtsuThreshold.cs new file mode 100644 index 00000000..a981e789 --- /dev/null +++ b/Sources/Imaging/Filters/Adaptive Binarization/OtsuThreshold.cs @@ -0,0 +1,266 @@ +// AForge Image Processing Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2005-2008 +// andrew.kirillov@gmail.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Otsu thresholding. + /// + /// + /// The class implements Otsu thresholding, which is described in + /// N. Otsu, "A threshold selection method from gray-level histograms", IEEE Trans. Systems, + /// Man and Cybernetics 9(1), pp. 62–66, 1979. + /// + /// This implementation instead of minimizing the weighted within-class variance + /// does maximization of between-class variance, what gives the same result. The approach is + /// described in this presentation. + /// + /// The filter accepts 8 bpp grayscale images for processing. + /// + /// Sample usage: + /// + /// // create filter + /// OtsuThreshold filter = new OtsuThreshold( ); + /// // apply the filter + /// filter.ApplyInPlace( image ); + /// // check threshold value + /// byte t = filter.ThresholdValue; + /// // ... + /// + /// + /// Initial image: + /// + /// Result image (calculated threshold is 97): + /// + /// + /// + /// + /// + /// + public class OtsuThreshold : BaseInPlacePartialFilter + { + private Threshold thresholdFilter = new Threshold( ); + + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Threshold value. + /// + /// + /// The property is read only and represents the value, which + /// was automaticaly calculated using Otsu algorithm. + /// + public int ThresholdValue + { + get { return thresholdFilter.ThresholdValue; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public OtsuThreshold( ) + { + // initialize format translation dictionary + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format8bppIndexed; + } + + /// + /// Calculate binarization threshold for the given image. + /// + /// + /// Image to calculate binarization threshold for. + /// Rectangle to calculate binarization threshold for. + /// + /// Returns binarization threshold. + /// + /// The method is used to calculate binarization threshold only. The threshold + /// later may be applied to the image using image processing filter. + /// + /// Source pixel format is not supported by the routine. It should be + /// 8 bpp grayscale (indexed) image. + /// + public int CalculateThreshold( Bitmap image, Rectangle rect ) + { + int calculatedThreshold = 0; + + // lock source bitmap data + BitmapData data = image.LockBits( + new Rectangle( 0, 0, image.Width, image.Height ), + ImageLockMode.ReadOnly, image.PixelFormat ); + + try + { + calculatedThreshold = CalculateThreshold( data, rect ); + } + finally + { + // unlock image + image.UnlockBits( data ); + } + + return calculatedThreshold; + } + + /// + /// Calculate binarization threshold for the given image. + /// + /// + /// Image to calculate binarization threshold for. + /// Rectangle to calculate binarization threshold for. + /// + /// Returns binarization threshold. + /// + /// The method is used to calculate binarization threshold only. The threshold + /// later may be applied to the image using image processing filter. + /// + /// Source pixel format is not supported by the routine. It should be + /// 8 bpp grayscale (indexed) image. + /// + public int CalculateThreshold( BitmapData image, Rectangle rect ) + { + return CalculateThreshold( new UnmanagedImage( image ), rect ); + } + + /// + /// Calculate binarization threshold for the given image. + /// + /// + /// Image to calculate binarization threshold for. + /// Rectangle to calculate binarization threshold for. + /// + /// Returns binarization threshold. + /// + /// The method is used to calculate binarization threshold only. The threshold + /// later may be applied to the image using image processing filter. + /// + /// Source pixel format is not supported by the routine. It should be + /// 8 bpp grayscale (indexed) image. + /// + public int CalculateThreshold( UnmanagedImage image, Rectangle rect ) + { + if ( image.PixelFormat != PixelFormat.Format8bppIndexed ) + throw new UnsupportedImageFormatException( "Source pixel format is not supported by the routine." ); + + int calculatedThreshold = 0; + + // get start and stop X-Y coordinates + int startX = rect.Left; + int startY = rect.Top; + int stopX = startX + rect.Width; + int stopY = startY + rect.Height; + int offset = image.Stride - rect.Width; + + // histogram array + int[] integerHistogram = new int[256]; + double[] histogram = new double[256]; + + unsafe + { + // collect histogram first + byte* ptr = (byte*) image.ImageData.ToPointer( ); + + // allign pointer to the first pixel to process + ptr += ( startY * image.Stride + startX ); + + // for each line + for ( int y = startY; y < stopY; y++ ) + { + // for each pixel + for ( int x = startX; x < stopX; x++, ptr++ ) + { + integerHistogram[*ptr]++; + } + ptr += offset; + } + + // pixels count in the processing region + int pixelCount = ( stopX - startX ) * ( stopY - startY ); + // mean value of the processing region + double imageMean = 0; + + for ( int i = 0; i < 256; i++ ) + { + histogram[i] = (double) integerHistogram[i] / pixelCount; + imageMean += histogram[i] * i; + } + + double max = double.MinValue; + + // initial class probabilities + double class1Probability = 0; + double class2Probability = 1; + + // initial class 1 mean value + double class1MeanInit = 0; + + // check all thresholds + for ( int t = 0; ( t < 256 ) && ( class2Probability > 0 ); t++ ) + { + // calculate class means for the given threshold + double class1Mean = class1MeanInit; + double class2Mean = ( imageMean - ( class1Mean * class1Probability ) ) / class2Probability; + + // calculate between class variance + double betweenClassVariance = ( class1Probability ) * ( 1.0 - class1Probability ) * Math.Pow( class1Mean - class2Mean, 2 ); + + // check if we found new threshold candidate + if ( betweenClassVariance > max ) + { + max = betweenClassVariance; + calculatedThreshold = t; + } + + // update initial probabilities and mean value + class1MeanInit *= class1Probability; + + class1Probability += histogram[t]; + class2Probability -= histogram[t]; + + class1MeanInit += (double) t * (double) histogram[t]; + + if ( class1Probability != 0 ) + { + class1MeanInit /= class1Probability; + } + } + } + + return calculatedThreshold; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Image rectangle for processing by the filter. + /// + protected override unsafe void ProcessFilter( UnmanagedImage image, Rectangle rect ) + { + // calculate threshold for the given image + thresholdFilter.ThresholdValue = CalculateThreshold( image, rect ); + + // thresholding + thresholdFilter.ApplyInPlace( image, rect ); + } + } +} diff --git a/Sources/Imaging/Filters/Adaptive Binarization/SISThreshold.cs b/Sources/Imaging/Filters/Adaptive Binarization/SISThreshold.cs new file mode 100644 index 00000000..8767a83e --- /dev/null +++ b/Sources/Imaging/Filters/Adaptive Binarization/SISThreshold.cs @@ -0,0 +1,230 @@ +// AForge Image Processing Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2005-2009 +// andrew.kirillov@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Threshold using Simple Image Statistics (SIS). + /// + /// + /// The filter performs image thresholding calculating threshold automatically + /// using simple image statistics method. For each pixel: + /// + /// two gradients are calculated - ex = |I(x + 1, y) - I(x - 1, y)| and + /// |I(x, y + 1) - I(x, y - 1)|; + /// weight is calculated as maximum of two gradients; + /// sum of weights is updated (weightTotal += weight); + /// sum of weighted pixel values is updated (total += weight * I(x, y)). + /// + /// The result threshold is calculated as sum of weighted pixel values divided by sum of weight. + /// + /// The filter accepts 8 bpp grayscale images for processing. + /// + /// Sample usage: + /// + /// // create filter + /// SISThreshold filter = new SISThreshold( ); + /// // apply the filter + /// filter.ApplyInPlace( image ); + /// + /// + /// Initial image: + /// + /// Result image (calculated threshold is 127): + /// + /// + /// + /// + /// + /// + public class SISThreshold : BaseInPlacePartialFilter + { + private Threshold thresholdFilter = new Threshold( ); + + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Threshold value. + /// + /// + /// The property is read only and represents the value, which + /// was automaticaly calculated using image statistics. + /// + public int ThresholdValue + { + get { return thresholdFilter.ThresholdValue; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public SISThreshold( ) + { + // initialize format translation dictionary + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format8bppIndexed; + } + + /// + /// Calculate binarization threshold for the given image. + /// + /// + /// Image to calculate binarization threshold for. + /// Rectangle to calculate binarization threshold for. + /// + /// Returns binarization threshold. + /// + /// The method is used to calculate binarization threshold only. The threshold + /// later may be applied to the image using image processing filter. + /// + /// Source pixel format is not supported by the routine. It should be + /// 8 bpp grayscale (indexed) image. + /// + public int CalculateThreshold( Bitmap image, Rectangle rect ) + { + int calculatedThreshold = 0; + + // lock source bitmap data + BitmapData data = image.LockBits( + new Rectangle( 0, 0, image.Width, image.Height ), + ImageLockMode.ReadOnly, image.PixelFormat ); + + try + { + calculatedThreshold = CalculateThreshold( data, rect ); + } + finally + { + // unlock image + image.UnlockBits( data ); + } + + return calculatedThreshold; + } + + /// + /// Calculate binarization threshold for the given image. + /// + /// + /// Image to calculate binarization threshold for. + /// Rectangle to calculate binarization threshold for. + /// + /// Returns binarization threshold. + /// + /// The method is used to calculate binarization threshold only. The threshold + /// later may be applied to the image using image processing filter. + /// + /// Source pixel format is not supported by the routine. It should be + /// 8 bpp grayscale (indexed) image. + /// + public int CalculateThreshold( BitmapData image, Rectangle rect ) + { + return CalculateThreshold( new UnmanagedImage( image ), rect ); + } + + /// + /// Calculate binarization threshold for the given image. + /// + /// + /// Image to calculate binarization threshold for. + /// Rectangle to calculate binarization threshold for. + /// + /// Returns binarization threshold. + /// + /// The method is used to calculate binarization threshold only. The threshold + /// later may be applied to the image using image processing filter. + /// + /// Source pixel format is not supported by the routine. It should be + /// 8 bpp grayscale (indexed) image. + /// + public int CalculateThreshold( UnmanagedImage image, Rectangle rect ) + { + if ( image.PixelFormat != PixelFormat.Format8bppIndexed ) + throw new UnsupportedImageFormatException( "Source pixel format is not supported by the routine." ); + + int startX = rect.Left; + int startY = rect.Top; + int stopX = startX + rect.Width; + int stopY = startY + rect.Height; + int stopXM1 = stopX - 1; + int stopYM1 = stopY - 1; + int stride = image.Stride; + int offset = stride - rect.Width; + + // differences and weights + double ex, ey, weight, weightTotal = 0, total = 0; + + unsafe + { + // do the job + byte* ptr = (byte*) image.ImageData.ToPointer( ); + + // allign pointer to the first pixel to process + ptr += ( startY * image.Stride + startX ); + + // skip the first line for the first pass + ptr += stride; + + // for each line + for ( int y = startY + 1; y < stopYM1; y++ ) + { + ptr++; + // for each pixels + for ( int x = startX + 1; x < stopXM1; x++, ptr++ ) + { + // the equations are: + // ex = | I(x + 1, y) - I(x - 1, y) | + // ey = | I(x, y + 1) - I(x, y - 1) | + // weight = max(ex, ey) + // weightTotal += weight + // total += weight * I(x, y) + + ex = Math.Abs( ptr[1] - ptr[-1] ); + ey = Math.Abs( ptr[stride] - ptr[-stride] ); + weight = ( ex > ey ) ? ex : ey; + weightTotal += weight; + total += weight * ( *ptr ); + } + ptr += offset + 1; + } + } + + // calculate threshold + return ( weightTotal == 0 ) ? (byte) 0 : (byte) ( total / weightTotal ); + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Image rectangle for processing by the filter. + /// + protected override unsafe void ProcessFilter( UnmanagedImage image, Rectangle rect ) + { + // calculate threshold + thresholdFilter.ThresholdValue = CalculateThreshold( image, rect ); + + // thresholding + thresholdFilter.ApplyInPlace( image, rect ); + } + } +} diff --git a/Sources/Imaging/Filters/Base classes/BaseFilter.cs b/Sources/Imaging/Filters/Base classes/BaseFilter.cs new file mode 100644 index 00000000..7915afbd --- /dev/null +++ b/Sources/Imaging/Filters/Base classes/BaseFilter.cs @@ -0,0 +1,223 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Base class for filters, which produce new image of the same size as a + /// result of image processing. + /// + /// + /// The abstract class is the base class for all filters, which + /// do image processing creating new image with the same size as source. + /// Filters based on this class cannot be applied directly to the source + /// image, which is kept unchanged. + /// + /// The base class itself does not define supported pixel formats of source + /// image and resulting pixel formats of destination image. Filters inheriting from + /// this base class, should specify supported pixel formats and their transformations + /// overriding abstract property. + /// + /// + public abstract class BaseFilter : IFilter, IFilterInformation + { + /// + /// Format translations dictionary. + /// + /// + /// The dictionary defines, which pixel formats are supported for + /// source images and which pixel format will be used for resulting image. + /// + /// + /// See for more information. + /// + /// + public abstract Dictionary FormatTranslations { get; } + + /// + /// Apply filter to an image. + /// + /// + /// Source image to apply filter to. + /// + /// Returns filter's result obtained by applying the filter to + /// the source image. + /// + /// The method keeps the source image unchanged and returns + /// the result of image processing filter as new image. + /// + /// Unsupported pixel format of the source image. + /// + public Bitmap Apply( Bitmap image ) + { + // lock source bitmap data + BitmapData srcData = image.LockBits( + new Rectangle( 0, 0, image.Width, image.Height ), + ImageLockMode.ReadOnly, image.PixelFormat ); + + Bitmap dstImage = null; + + try + { + // apply the filter + dstImage = Apply( srcData ); + if ( ( image.HorizontalResolution > 0 ) && ( image.VerticalResolution > 0 ) ) + { + dstImage.SetResolution( image.HorizontalResolution, image.VerticalResolution ); + } + } + finally + { + // unlock source image + image.UnlockBits( srcData ); + } + + return dstImage; + } + + /// + /// Apply filter to an image. + /// + /// + /// Source image to apply filter to. + /// + /// Returns filter's result obtained by applying the filter to + /// the source image. + /// + /// The filter accepts bitmap data as input and returns the result + /// of image processing filter as new image. The source image data are kept + /// unchanged. + /// + /// Unsupported pixel format of the source image. + /// + public Bitmap Apply( BitmapData imageData ) + { + // check pixel format of the source image + CheckSourceFormat( imageData.PixelFormat ); + + // get width and height + int width = imageData.Width; + int height = imageData.Height; + + // destination image format + PixelFormat dstPixelFormat = FormatTranslations[imageData.PixelFormat]; + + // create new image of required format + Bitmap dstImage = ( dstPixelFormat == PixelFormat.Format8bppIndexed ) ? + AForge.Imaging.Image.CreateGrayscaleImage( width, height ) : + new Bitmap( width, height, dstPixelFormat ); + + // lock destination bitmap data + BitmapData dstData = dstImage.LockBits( + new Rectangle( 0, 0, width, height ), + ImageLockMode.ReadWrite, dstPixelFormat ); + + try + { + // process the filter + ProcessFilter( new UnmanagedImage( imageData ), new UnmanagedImage( dstData ) ); + } + finally + { + // unlock destination images + dstImage.UnlockBits( dstData ); + } + + return dstImage; + } + + /// + /// Apply filter to an image in unmanaged memory. + /// + /// + /// Source image in unmanaged memory to apply filter to. + /// + /// Returns filter's result obtained by applying the filter to + /// the source image. + /// + /// The method keeps the source image unchanged and returns + /// the result of image processing filter as new image. + /// + /// Unsupported pixel format of the source image. + /// + public UnmanagedImage Apply( UnmanagedImage image ) + { + // check pixel format of the source image + CheckSourceFormat( image.PixelFormat ); + + // create new destination image + UnmanagedImage dstImage = UnmanagedImage.Create( image.Width, image.Height, FormatTranslations[image.PixelFormat] ); + + // process the filter + ProcessFilter( image, dstImage ); + + return dstImage; + } + + /// + /// Apply filter to an image in unmanaged memory. + /// + /// + /// Source image in unmanaged memory to apply filter to. + /// Destination image in unmanaged memory to put result into. + /// + /// The method keeps the source image unchanged and puts result of image processing + /// into destination image. + /// + /// The destination image must have the same width and height as source image. Also + /// destination image must have pixel format, which is expected by particular filter (see + /// property for information about pixel format conversions). + /// + /// + /// Unsupported pixel format of the source image. + /// Incorrect destination pixel format. + /// Destination image has wrong width and/or height. + /// + public void Apply( UnmanagedImage sourceImage, UnmanagedImage destinationImage ) + { + // check pixel format of the source and destination images + CheckSourceFormat( sourceImage.PixelFormat ); + + // ensure destination image has correct format + if ( destinationImage.PixelFormat != FormatTranslations[sourceImage.PixelFormat] ) + { + throw new InvalidImagePropertiesException( "Destination pixel format is specified incorrectly." ); + } + + // ensure destination image has correct size + if ( ( destinationImage.Width != sourceImage.Width ) || ( destinationImage.Height != sourceImage.Height ) ) + { + throw new InvalidImagePropertiesException( "Destination image must have the same width and height as source image." ); + } + + // process the filter + ProcessFilter( sourceImage, destinationImage ); + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Destination image data. + /// + protected abstract unsafe void ProcessFilter( UnmanagedImage sourceData, UnmanagedImage destinationData ); + + // Check pixel format of the source image + private void CheckSourceFormat( PixelFormat pixelFormat ) + { + if ( !FormatTranslations.ContainsKey( pixelFormat ) ) + throw new UnsupportedImageFormatException( "Source pixel format is not supported by the filter." ); + } + } +} diff --git a/Sources/Imaging/Filters/Base classes/BaseFilter2.cs b/Sources/Imaging/Filters/Base classes/BaseFilter2.cs new file mode 100644 index 00000000..aad0789f --- /dev/null +++ b/Sources/Imaging/Filters/Base classes/BaseFilter2.cs @@ -0,0 +1,194 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2010 +// contacts@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Base class for filters, which operate with two images of the same size and format and + /// produce new image as a result. + /// + /// + /// The abstract class is the base class for all filters, which can + /// be applied to an image producing new image as a result of image processing. + /// + /// The base class is aimed for such type of filters, which require additional image + /// to process the source image. The additional image is set by + /// or property and must have the same size and pixel format + /// as source image. See documentation of particular inherited class for information + /// about overlay image purpose. + /// + /// + /// + public abstract class BaseFilter2 : BaseFilter + { + private Bitmap overlayImage; + private UnmanagedImage unmanagedOverlayImage; + + /// + /// Overlay image. + /// + /// + /// + /// The property sets an overlay image, which will be used as the second image required + /// to process source image. See documentation of particular inherited class for information + /// about overlay image purpose. + /// + /// + /// Overlay image must have the same size and pixel format as source image. + /// Otherwise exception will be generated when filter is applied to source image. + /// + /// Setting this property will clear the property - + /// only one overlay image is allowed: managed or unmanaged. + /// + /// + public Bitmap OverlayImage + { + get { return overlayImage; } + set + { + overlayImage = value; + + if ( value != null ) + unmanagedOverlayImage = null; + } + } + + /// + /// Unmanaged overlay image. + /// + /// + /// + /// The property sets an overlay image, which will be used as the second image required + /// to process source image. See documentation of particular inherited class for information + /// about overlay image purpose. + /// + /// + /// Overlay image must have the same size and pixel format as source image. + /// Otherwise exception will be generated when filter is applied to source image. + /// + /// Setting this property will clear the property - + /// only one overlay image is allowed: managed or unmanaged. + /// + /// + public UnmanagedImage UnmanagedOverlayImage + { + get { return unmanagedOverlayImage; } + set + { + unmanagedOverlayImage = value; + + if ( value != null ) + overlayImage = null; + } + } + + /// + /// Initializes a new instance of the class. + /// + /// + protected BaseFilter2( ) { } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Overlay image. + /// + protected BaseFilter2( Bitmap overlayImage ) + { + this.overlayImage = overlayImage; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Unmanaged overlay image. + /// + protected BaseFilter2( UnmanagedImage unmanagedOverlayImage ) + { + this.unmanagedOverlayImage = unmanagedOverlayImage; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Destination image data. + /// + protected override unsafe void ProcessFilter( UnmanagedImage sourceData, UnmanagedImage destinationData ) + { + PixelFormat pixelFormat = sourceData.PixelFormat; + // get image dimension + int width = sourceData.Width; + int height = sourceData.Height; + + // check overlay type + if ( overlayImage != null ) + { + // source image and overlay must have same pixel format + if ( pixelFormat != overlayImage.PixelFormat ) + throw new InvalidImagePropertiesException( "Source and overlay images must have same pixel format." ); + + // check overlay image size + if ( ( width != overlayImage.Width ) || ( height != overlayImage.Height ) ) + throw new InvalidImagePropertiesException( "Overlay image size must be equal to source image size." ); + + // lock overlay image + BitmapData ovrData = overlayImage.LockBits( + new Rectangle( 0, 0, width, height ), + ImageLockMode.ReadOnly, pixelFormat ); + + try + { + ProcessFilter( sourceData, new UnmanagedImage( ovrData ), destinationData ); + } + finally + { + // unlock overlay image + overlayImage.UnlockBits( ovrData ); + } + } + else if ( unmanagedOverlayImage != null ) + { + // source image and overlay must have same pixel format + if ( pixelFormat != unmanagedOverlayImage.PixelFormat ) + throw new InvalidImagePropertiesException( "Source and overlay images must have same pixel format." ); + + // check overlay image size + if ( ( width != unmanagedOverlayImage.Width ) || ( height != unmanagedOverlayImage.Height ) ) + throw new InvalidImagePropertiesException( "Overlay image size must be equal to source image size." ); + + ProcessFilter( sourceData, unmanagedOverlayImage, destinationData ); + } + else + { + throw new NullReferenceException( "Overlay image is not set." ); + } + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Overlay image data. + /// Destination image data + /// + /// Overlay image size and pixel format is checked by this base class, before + /// passing execution to inherited class. + /// + protected abstract unsafe void ProcessFilter( UnmanagedImage sourceData, UnmanagedImage overlay, UnmanagedImage destinationData ); + } +} diff --git a/Sources/Imaging/Filters/Base classes/BaseInPlaceFilter.cs b/Sources/Imaging/Filters/Base classes/BaseInPlaceFilter.cs new file mode 100644 index 00000000..30787cd8 --- /dev/null +++ b/Sources/Imaging/Filters/Base classes/BaseInPlaceFilter.cs @@ -0,0 +1,307 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Base class for filters, which may be applied directly to the source image. + /// + /// + /// The abstract class is the base class for all filters, which can + /// be applied to an image producing new image as a result of image processing or + /// applied directly to the source image without changing its size and pixel format. + /// + /// + public abstract class BaseInPlaceFilter : IFilter, IInPlaceFilter, IFilterInformation + { + /// + /// Format translations dictionary. + /// + /// + /// The dictionary defines, which pixel formats are supported for + /// source images and which pixel format will be used for resulting image. + /// + /// + /// See for more information. + /// + /// + public abstract Dictionary FormatTranslations { get; } + + /// + /// Apply filter to an image. + /// + /// + /// Source image to apply filter to. + /// + /// Returns filter's result obtained by applying the filter to + /// the source image. + /// + /// The method keeps the source image unchanged and returns + /// the result of image processing filter as new image. + /// + /// Unsupported pixel format of the source image. + /// + public Bitmap Apply( Bitmap image ) + { + // lock source bitmap data + BitmapData srcData = image.LockBits( + new Rectangle( 0, 0, image.Width, image.Height ), + ImageLockMode.ReadOnly, image.PixelFormat ); + + Bitmap dstImage = null; + + try + { + // apply the filter + dstImage = Apply( srcData ); + if ( ( image.HorizontalResolution > 0 ) && ( image.VerticalResolution > 0 ) ) + { + dstImage.SetResolution( image.HorizontalResolution, image.VerticalResolution ); + } + } + finally + { + // unlock source image + image.UnlockBits( srcData ); + } + + return dstImage; + } + + /// + /// Apply filter to an image. + /// + /// + /// Source image to apply filter to. + /// + /// Returns filter's result obtained by applying the filter to + /// the source image. + /// + /// The filter accepts bitmap data as input and returns the result + /// of image processing filter as new image. The source image data are kept + /// unchanged. + /// + /// Unsupported pixel format of the source image. + /// + public Bitmap Apply( BitmapData imageData ) + { + // destination image format + PixelFormat dstPixelFormat = imageData.PixelFormat; + + // check pixel format of the source image + CheckSourceFormat( dstPixelFormat ); + + // get image dimension + int width = imageData.Width; + int height = imageData.Height; + + // create new image of required format + Bitmap dstImage = ( dstPixelFormat == PixelFormat.Format8bppIndexed ) ? + AForge.Imaging.Image.CreateGrayscaleImage( width, height ) : + new Bitmap( width, height, dstPixelFormat ); + + // lock destination bitmap data + BitmapData dstData = dstImage.LockBits( + new Rectangle( 0, 0, width, height ), + ImageLockMode.ReadWrite, dstPixelFormat ); + + // copy image + AForge.SystemTools.CopyUnmanagedMemory( dstData.Scan0, imageData.Scan0, imageData.Stride * height ); + + try + { + // process the filter + ProcessFilter( new UnmanagedImage( dstData ) ); + } + finally + { + // unlock destination images + dstImage.UnlockBits( dstData ); + } + + return dstImage; + } + + /// + /// Apply filter to an image in unmanaged memory. + /// + /// + /// Source image in unmanaged memory to apply filter to. + /// + /// Returns filter's result obtained by applying the filter to + /// the source image. + /// + /// The method keeps the source image unchanged and returns + /// the result of image processing filter as new image. + /// + /// Unsupported pixel format of the source image. + /// + public UnmanagedImage Apply( UnmanagedImage image ) + { + // check pixel format of the source image + CheckSourceFormat( image.PixelFormat ); + + // create new destination image + UnmanagedImage dstImage = UnmanagedImage.Create( image.Width, image.Height, image.PixelFormat ); + + Apply( image, dstImage ); + + return dstImage; + } + + /// + /// Apply filter to an image in unmanaged memory. + /// + /// + /// Source image in unmanaged memory to apply filter to. + /// Destination image in unmanaged memory to put result into. + /// + /// The method keeps the source image unchanged and puts result of image processing + /// into destination image. + /// + /// The destination image must have the same width and height as source image. Also + /// destination image must have pixel format, which is expected by particular filter (see + /// property for information about pixel format conversions). + /// + /// + /// Unsupported pixel format of the source image. + /// Incorrect destination pixel format. + /// Destination image has wrong width and/or height. + /// + public void Apply( UnmanagedImage sourceImage, UnmanagedImage destinationImage ) + { + // check pixel format of the source image + CheckSourceFormat( sourceImage.PixelFormat ); + + // ensure destination image has correct format + if ( destinationImage.PixelFormat != sourceImage.PixelFormat ) + { + throw new InvalidImagePropertiesException( "Destination pixel format must be the same as pixel format of source image." ); + } + + // ensure destination image has correct size + if ( ( destinationImage.Width != sourceImage.Width ) || ( destinationImage.Height != sourceImage.Height ) ) + { + throw new InvalidImagePropertiesException( "Destination image must have the same width and height as source image." ); + } + + // usually stride will be the same for 2 images of the size size/format, + // but since this a public a method and users may provide any evil, we need to check it + int dstStride = destinationImage.Stride; + int srcStride = sourceImage.Stride; + int lineSize = Math.Min( srcStride, dstStride ); + + unsafe + { + byte* dst = (byte*) destinationImage.ImageData.ToPointer( ); + byte* src = (byte*) sourceImage.ImageData.ToPointer( ); + + // copy image + for ( int y = 0, height = sourceImage.Height; y < height; y++ ) + { + AForge.SystemTools.CopyUnmanagedMemory( dst, src, lineSize ); + dst += dstStride; + src += srcStride; + } + } + + // process the filter + ProcessFilter( destinationImage ); + } + + /// + /// Apply filter to an image. + /// + /// + /// Image to apply filter to. + /// + /// The method applies the filter directly to the provided source image. + /// + /// Unsupported pixel format of the source image. + /// + public void ApplyInPlace( Bitmap image ) + { + // check pixel format of the source image + CheckSourceFormat( image.PixelFormat ); + + // lock source bitmap data + BitmapData data = image.LockBits( + new Rectangle( 0, 0, image.Width, image.Height ), + ImageLockMode.ReadWrite, image.PixelFormat ); + + try + { + // process the filter + ProcessFilter( new UnmanagedImage( data ) ); + } + finally + { + // unlock image + image.UnlockBits( data ); + } + } + + /// + /// Apply filter to an image. + /// + /// + /// Image data to apply filter to. + /// + /// The method applies the filter directly to the provided source image. + /// + /// Unsupported pixel format of the source image. + /// + public void ApplyInPlace( BitmapData imageData ) + { + // check pixel format of the source image + CheckSourceFormat( imageData.PixelFormat ); + + // process the filter + ProcessFilter( new UnmanagedImage( imageData ) ); + } + + /// + /// Apply filter to an unmanaged image. + /// + /// + /// Unmanaged image to apply filter to. + /// + /// The method applies the filter directly to the provided source unmanaged image. + /// + /// Unsupported pixel format of the source image. + /// + public void ApplyInPlace( UnmanagedImage image ) + { + // check pixel format of the source image + CheckSourceFormat( image.PixelFormat ); + + // process the filter + ProcessFilter( image ); + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// + protected abstract unsafe void ProcessFilter( UnmanagedImage image ); + + // Check pixel format of the source image + private void CheckSourceFormat( PixelFormat pixelFormat ) + { + if ( !FormatTranslations.ContainsKey( pixelFormat ) ) + throw new UnsupportedImageFormatException( "Source pixel format is not supported by the filter." ); + } + } +} diff --git a/Sources/Imaging/Filters/Base classes/BaseInPlaceFilter2.cs b/Sources/Imaging/Filters/Base classes/BaseInPlaceFilter2.cs new file mode 100644 index 00000000..3fca3e71 --- /dev/null +++ b/Sources/Imaging/Filters/Base classes/BaseInPlaceFilter2.cs @@ -0,0 +1,196 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2005-2009 +// andrew.kirillov@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Base class for filters, which operate with two images of the same size and format and + /// may be applied directly to the source image. + /// + /// + /// The abstract class is the base class for all filters, which can + /// be applied to an image producing new image as a result of image processing or + /// applied directly to the source image without changing its size and pixel format. + /// + /// The base class is aimed for such type of filters, which require additional image + /// to process the source image. The additional image is set by + /// or property and must have the same size and pixel format + /// as source image. See documentation of particular inherited class for information + /// about overlay image purpose. + /// + /// + /// + public abstract class BaseInPlaceFilter2 : BaseInPlaceFilter + { + private Bitmap overlayImage; + private UnmanagedImage unmanagedOverlayImage; + + /// + /// Overlay image. + /// + /// + /// + /// The property sets an overlay image, which will be used as the second image required + /// to process source image. See documentation of particular inherited class for information + /// about overlay image purpose. + /// + /// + /// Overlay image must have the same size and pixel format as source image. + /// Otherwise exception will be generated when filter is applied to source image. + /// + /// Setting this property will clear the property - + /// only one overlay image is allowed: managed or unmanaged. + /// + /// + public Bitmap OverlayImage + { + get { return overlayImage; } + set + { + overlayImage = value; + + if ( value != null ) + unmanagedOverlayImage = null; + } + } + + /// + /// Unmanaged overlay image. + /// + /// + /// + /// The property sets an overlay image, which will be used as the second image required + /// to process source image. See documentation of particular inherited class for information + /// about overlay image purpose. + /// + /// + /// Overlay image must have the same size and pixel format as source image. + /// Otherwise exception will be generated when filter is applied to source image. + /// + /// Setting this property will clear the property - + /// only one overlay image is allowed: managed or unmanaged. + /// + /// + public UnmanagedImage UnmanagedOverlayImage + { + get { return unmanagedOverlayImage; } + set + { + unmanagedOverlayImage = value; + + if ( value != null ) + overlayImage = null; + } + } + + /// + /// Initializes a new instance of the class. + /// + /// + protected BaseInPlaceFilter2( ) { } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Overlay image. + /// + protected BaseInPlaceFilter2( Bitmap overlayImage ) + { + this.overlayImage = overlayImage; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Unmanaged overlay image. + /// + protected BaseInPlaceFilter2( UnmanagedImage unmanagedOverlayImage ) + { + this.unmanagedOverlayImage = unmanagedOverlayImage; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// + /// Source and overlay images have different pixel formats and/or size. + /// Overlay image is not set. + /// + protected override unsafe void ProcessFilter( UnmanagedImage image ) + { + PixelFormat pixelFormat = image.PixelFormat; + // get image dimension + int width = image.Width; + int height = image.Height; + + // check overlay type + if ( overlayImage != null ) + { + // source image and overlay must have same pixel format + if ( pixelFormat != overlayImage.PixelFormat ) + throw new InvalidImagePropertiesException( "Source and overlay images must have same pixel format." ); + + // check overlay image size + if ( ( width != overlayImage.Width ) || ( height != overlayImage.Height ) ) + throw new InvalidImagePropertiesException( "Overlay image size must be equal to source image size." ); + + // lock overlay image + BitmapData ovrData = overlayImage.LockBits( + new Rectangle( 0, 0, width, height ), + ImageLockMode.ReadOnly, pixelFormat ); + + try + { + ProcessFilter( image, new UnmanagedImage( ovrData ) ); + } + finally + { + // unlock overlay image + overlayImage.UnlockBits( ovrData ); + } + } + else if ( unmanagedOverlayImage != null ) + { + // source image and overlay must have same pixel format + if ( pixelFormat != unmanagedOverlayImage.PixelFormat ) + throw new InvalidImagePropertiesException( "Source and overlay images must have same pixel format." ); + + // check overlay image size + if ( ( width != unmanagedOverlayImage.Width ) || ( height != unmanagedOverlayImage.Height ) ) + throw new InvalidImagePropertiesException( "Overlay image size must be equal to source image size." ); + + ProcessFilter( image, unmanagedOverlayImage ); + } + else + { + throw new NullReferenceException( "Overlay image is not set." ); + } + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Overlay image data. + /// + /// Overlay image size and pixel format is checked by this base class, before + /// passing execution to inherited class. + /// + protected abstract unsafe void ProcessFilter( UnmanagedImage image, UnmanagedImage overlay ); + } +} diff --git a/Sources/Imaging/Filters/Base classes/BaseInPlacePartialFilter.cs b/Sources/Imaging/Filters/Base classes/BaseInPlacePartialFilter.cs new file mode 100644 index 00000000..dea6bcd4 --- /dev/null +++ b/Sources/Imaging/Filters/Base classes/BaseInPlacePartialFilter.cs @@ -0,0 +1,364 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Base class for filters, which may be applied directly to the source image or its part. + /// + /// + /// The abstract class is the base class for all filters, which can + /// be applied to an image producing new image as a result of image processing or + /// applied directly to the source image (or its part) without changing its size and + /// pixel format. + /// + /// + public abstract class BaseInPlacePartialFilter : IFilter, IInPlaceFilter, IInPlacePartialFilter, IFilterInformation + { + /// + /// Format translations dictionary. + /// + /// + /// The dictionary defines, which pixel formats are supported for + /// source images and which pixel format will be used for resulting image. + /// + /// + /// See for more information. + /// + /// + public abstract Dictionary FormatTranslations { get; } + + /// + /// Apply filter to an image. + /// + /// + /// Source image to apply filter to. + /// + /// Returns filter's result obtained by applying the filter to + /// the source image. + /// + /// The method keeps the source image unchanged and returns + /// the result of image processing filter as new image. + /// + /// Unsupported pixel format of the source image. + /// + public Bitmap Apply( Bitmap image ) + { + // lock source bitmap data + BitmapData srcData = image.LockBits( + new Rectangle( 0, 0, image.Width, image.Height ), + ImageLockMode.ReadOnly, image.PixelFormat ); + + Bitmap dstImage = null; + + try + { + // apply the filter + dstImage = Apply( srcData ); + if ( ( image.HorizontalResolution > 0 ) && ( image.VerticalResolution > 0 ) ) + { + dstImage.SetResolution( image.HorizontalResolution, image.VerticalResolution ); + } + } + finally + { + // unlock source image + image.UnlockBits( srcData ); + } + + return dstImage; + } + + /// + /// Apply filter to an image. + /// + /// + /// Source image to apply filter to. + /// + /// Returns filter's result obtained by applying the filter to + /// the source image. + /// + /// The filter accepts bitmap data as input and returns the result + /// of image processing filter as new image. The source image data are kept + /// unchanged. + /// + /// Unsupported pixel format of the source image. + /// + public Bitmap Apply( BitmapData imageData ) + { + // destination image format + PixelFormat dstPixelFormat = imageData.PixelFormat; + + // check pixel format of the source image + CheckSourceFormat( dstPixelFormat ); + + // get image dimension + int width = imageData.Width; + int height = imageData.Height; + + // create new image of required format + Bitmap dstImage = ( dstPixelFormat == PixelFormat.Format8bppIndexed ) ? + AForge.Imaging.Image.CreateGrayscaleImage( width, height ) : + new Bitmap( width, height, dstPixelFormat ); + + // lock destination bitmap data + BitmapData dstData = dstImage.LockBits( + new Rectangle( 0, 0, width, height ), + ImageLockMode.ReadWrite, dstPixelFormat ); + + // copy image + AForge.SystemTools.CopyUnmanagedMemory( dstData.Scan0, imageData.Scan0, imageData.Stride * height ); + + try + { + // process the filter + ProcessFilter( new UnmanagedImage( dstData ), new Rectangle( 0, 0, width, height ) ); + } + finally + { + // unlock destination images + dstImage.UnlockBits( dstData ); + } + + return dstImage; + } + + /// + /// Apply filter to an image in unmanaged memory. + /// + /// + /// Source image in unmanaged memory to apply filter to. + /// + /// Returns filter's result obtained by applying the filter to + /// the source image. + /// + /// The method keeps the source image unchanged and returns + /// the result of image processing filter as new image. + /// + /// Unsupported pixel format of the source image. + /// + public UnmanagedImage Apply( UnmanagedImage image ) + { + // check pixel format of the source image + CheckSourceFormat( image.PixelFormat ); + + // create new destination image + UnmanagedImage dstImage = UnmanagedImage.Create( image.Width, image.Height, image.PixelFormat ); + + Apply( image, dstImage ); + + return dstImage; + } + + /// + /// Apply filter to an image in unmanaged memory. + /// + /// + /// Source image in unmanaged memory to apply filter to. + /// Destination image in unmanaged memory to put result into. + /// + /// The method keeps the source image unchanged and puts result of image processing + /// into destination image. + /// + /// The destination image must have the same width and height as source image. Also + /// destination image must have pixel format, which is expected by particular filter (see + /// property for information about pixel format conversions). + /// + /// + /// Unsupported pixel format of the source image. + /// Incorrect destination pixel format. + /// Destination image has wrong width and/or height. + /// + public void Apply( UnmanagedImage sourceImage, UnmanagedImage destinationImage ) + { + // check pixel format of the source image + CheckSourceFormat( sourceImage.PixelFormat ); + + // ensure destination image has correct format + if ( destinationImage.PixelFormat != sourceImage.PixelFormat ) + { + throw new InvalidImagePropertiesException( "Destination pixel format must be the same as pixel format of source image." ); + } + + // ensure destination image has correct size + if ( ( destinationImage.Width != sourceImage.Width ) || ( destinationImage.Height != sourceImage.Height ) ) + { + throw new InvalidImagePropertiesException( "Destination image must have the same width and height as source image." ); + } + + // usually stride will be the same for 2 images of the size size/format, + // but since this a public a method and users may provide any evil, we to need check it + int dstStride = destinationImage.Stride; + int srcStride = sourceImage.Stride; + int lineSize = Math.Min( srcStride, dstStride ); + + unsafe + { + byte* dst = (byte*) destinationImage.ImageData.ToPointer( ); + byte* src = (byte*) sourceImage.ImageData.ToPointer( ); + + // copy image + for ( int y = 0, height = sourceImage.Height; y < height; y++ ) + { + AForge.SystemTools.CopyUnmanagedMemory( dst, src, lineSize ); + dst += dstStride; + src += srcStride; + } + } + + // process the filter + ProcessFilter( destinationImage, new Rectangle( 0, 0, destinationImage.Width, destinationImage.Height ) ); + } + + /// + /// Apply filter to an image. + /// + /// + /// Image to apply filter to. + /// + /// The method applies the filter directly to the provided source image. + /// + /// Unsupported pixel format of the source image. + /// + public void ApplyInPlace( Bitmap image ) + { + // apply the filter + ApplyInPlace( image, new Rectangle( 0, 0, image.Width, image.Height ) ); + } + + /// + /// Apply filter to an image. + /// + /// + /// Image data to apply filter to. + /// + /// The method applies the filter directly to the provided source image. + /// + /// Unsupported pixel format of the source image. + /// + public void ApplyInPlace( BitmapData imageData ) + { + // check pixel format of the source image + CheckSourceFormat( imageData.PixelFormat ); + + // apply the filter + ProcessFilter( new UnmanagedImage( imageData ), new Rectangle( 0, 0, imageData.Width, imageData.Height ) ); + } + + /// + /// Apply filter to an unmanaged image. + /// + /// + /// Unmanaged image to apply filter to. + /// + /// The method applies the filter directly to the provided source unmanaged image. + /// + /// Unsupported pixel format of the source image. + /// + public void ApplyInPlace( UnmanagedImage image ) + { + // check pixel format of the source image + CheckSourceFormat( image.PixelFormat ); + + // process the filter + ProcessFilter( image, new Rectangle( 0, 0, image.Width, image.Height ) ); + } + + /// + /// Apply filter to an image or its part. + /// + /// + /// Image to apply filter to. + /// Image rectangle for processing by the filter. + /// + /// The method applies the filter directly to the provided source image. + /// + /// Unsupported pixel format of the source image. + /// + public void ApplyInPlace( Bitmap image, Rectangle rect ) + { + // lock source bitmap data + BitmapData data = image.LockBits( + new Rectangle( 0, 0, image.Width, image.Height ), + ImageLockMode.ReadWrite, image.PixelFormat ); + + try + { + // apply the filter + ApplyInPlace( new UnmanagedImage( data ), rect ); + } + finally + { + // unlock image + image.UnlockBits( data ); + } + } + + /// + /// Apply filter to an image or its part. + /// + /// + /// Image data to apply filter to. + /// Image rectangle for processing by the filter. + /// + /// The method applies the filter directly to the provided source image. + /// + /// Unsupported pixel format of the source image. + /// + public void ApplyInPlace( BitmapData imageData, Rectangle rect ) + { + // apply the filter + ApplyInPlace( new UnmanagedImage( imageData ), rect ); + } + + /// + /// Apply filter to an unmanaged image or its part. + /// + /// + /// Unmanaged image to apply filter to. + /// Image rectangle for processing by the filter. + /// + /// The method applies the filter directly to the provided source image. + /// + /// Unsupported pixel format of the source image. + /// + public void ApplyInPlace( UnmanagedImage image, Rectangle rect ) + { + // check pixel format of the source image + CheckSourceFormat( image.PixelFormat ); + + // validate rectangle + rect.Intersect( new Rectangle( 0, 0, image.Width, image.Height ) ); + + // process the filter if rectangle is not empty + if ( ( rect.Width | rect.Height ) != 0 ) + ProcessFilter( image, rect ); + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Image rectangle for processing by the filter. + /// + protected abstract unsafe void ProcessFilter( UnmanagedImage image, Rectangle rect ); + + // Check pixel format of the source image + private void CheckSourceFormat( PixelFormat pixelFormat ) + { + if ( !FormatTranslations.ContainsKey( pixelFormat ) ) + throw new UnsupportedImageFormatException( "Source pixel format is not supported by the filter." ); + } + } +} diff --git a/Sources/Imaging/Filters/Base classes/BaseResizeFilter.cs b/Sources/Imaging/Filters/Base classes/BaseResizeFilter.cs new file mode 100644 index 00000000..4c25c2e7 --- /dev/null +++ b/Sources/Imaging/Filters/Base classes/BaseResizeFilter.cs @@ -0,0 +1,80 @@ +// AForge Image Processing Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2005-2008 +// andrew.kirillov@gmail.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Base class for image resizing filters. + /// + /// + /// The abstract class is the base class for all filters, + /// which implement image rotation algorithms. + /// + /// + public abstract class BaseResizeFilter : BaseTransformationFilter + { + /// + /// New image width. + /// + protected int newWidth; + + /// + /// New image height. + /// + protected int newHeight; + + /// + /// Width of the new resized image. + /// + /// + public int NewWidth + { + get { return newWidth; } + set { newWidth = Math.Max( 1, value ); } + } + + /// + /// Height of the new resized image. + /// + /// + public int NewHeight + { + get { return newHeight; } + set { newHeight = Math.Max( 1, value ); } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Width of the new resized image. + /// Height of the new resize image. + /// + protected BaseResizeFilter( int newWidth, int newHeight ) + { + this.newWidth = newWidth; + this.newHeight = newHeight; + } + + /// + /// Calculates new image size. + /// + /// + /// Source image data. + /// + /// New image size - size of the destination image. + /// + protected override System.Drawing.Size CalculateNewImageSize( UnmanagedImage sourceData ) + { + return new Size( newWidth, newHeight ); + } + } +} diff --git a/Sources/Imaging/Filters/Base classes/BaseRotateFilter.cs b/Sources/Imaging/Filters/Base classes/BaseRotateFilter.cs new file mode 100644 index 00000000..16fd21bc --- /dev/null +++ b/Sources/Imaging/Filters/Base classes/BaseRotateFilter.cs @@ -0,0 +1,147 @@ +// AForge Image Processing Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2005-2008 +// andrew.kirillov@gmail.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Base class for image rotation filters. + /// + /// + /// The abstract class is the base class for all filters, + /// which implement rotating algorithms. + /// + public abstract class BaseRotateFilter : BaseTransformationFilter + { + /// + /// Rotation angle. + /// + protected double angle; + + /// + /// Keep image size or not. + /// + protected bool keepSize = false; + + /// + /// Fill color. + /// + protected Color fillColor = Color.FromArgb( 0, 0, 0 ); + + /// + /// Rotation angle, [0, 360]. + /// + public double Angle + { + get { return angle; } + set { angle = value % 360; } + } + + /// + /// Keep image size or not. + /// + /// + /// The property determines if source image's size will be kept + /// as it is or not. If the value is set to false, then the new image will have + /// new dimension according to rotation angle. If the valus is set to + /// true, then the new image will have the same size, which means that some parts + /// of the image may be clipped because of rotation. + /// + /// + public bool KeepSize + { + get { return keepSize; } + set { keepSize = value; } + } + + /// + /// Fill color. + /// + /// + /// The fill color is used to fill areas of destination image, + /// which don't have corresponsing pixels in source image. + /// + public Color FillColor + { + get { return fillColor; } + set { fillColor = value; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Rotation angle. + /// + /// This constructor sets property to false. + /// + /// + public BaseRotateFilter( double angle ) + { + this.angle = angle; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Rotation angle. + /// Keep image size or not. + /// + public BaseRotateFilter( double angle, bool keepSize ) + { + this.angle = angle; + this.keepSize = keepSize; + } + + /// + /// Calculates new image size. + /// + /// + /// Source image data. + /// + /// New image size - size of the destination image. + /// + protected override System.Drawing.Size CalculateNewImageSize( UnmanagedImage sourceData ) + { + // return same size if original image size should be kept + if ( keepSize ) + return new Size( sourceData.Width, sourceData.Height ); + + // angle's sine and cosine + double angleRad = -angle * Math.PI / 180; + double angleCos = Math.Cos( angleRad ); + double angleSin = Math.Sin( angleRad ); + + // calculate half size + double halfWidth = (double) sourceData.Width / 2; + double halfHeight = (double) sourceData.Height / 2; + + // rotate corners + double cx1 = halfWidth * angleCos; + double cy1 = halfWidth * angleSin; + + double cx2 = halfWidth * angleCos - halfHeight * angleSin; + double cy2 = halfWidth * angleSin + halfHeight * angleCos; + + double cx3 = -halfHeight * angleSin; + double cy3 = halfHeight * angleCos; + + double cx4 = 0; + double cy4 = 0; + + // recalculate image size + halfWidth = Math.Max( Math.Max( cx1, cx2 ), Math.Max( cx3, cx4 ) ) - Math.Min( Math.Min( cx1, cx2 ), Math.Min( cx3, cx4 ) ); + halfHeight = Math.Max( Math.Max( cy1, cy2 ), Math.Max( cy3, cy4 ) ) - Math.Min( Math.Min( cy1, cy2 ), Math.Min( cy3, cy4 ) ); + + return new Size( (int) ( halfWidth * 2 + 0.5 ), (int) ( halfHeight * 2 + 0.5 ) ); + } + } +} diff --git a/Sources/Imaging/Filters/Base classes/BaseTransformationFilter.cs b/Sources/Imaging/Filters/Base classes/BaseTransformationFilter.cs new file mode 100644 index 00000000..3591e6cd --- /dev/null +++ b/Sources/Imaging/Filters/Base classes/BaseTransformationFilter.cs @@ -0,0 +1,238 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Base class for filters, which may produce new image of different size as a + /// result of image processing. + /// + /// + /// The abstract class is the base class for all filters, which + /// do image processing creating new image of the size, which may differ from the + /// size of source image. Filters based on this class cannot be applied directly + /// to the source image, which is kept unchanged. + /// + /// The base class itself does not define supported pixel formats of source + /// image and resulting pixel formats of destination image. Filters inheriting from + /// this base class, should specify supported pixel formats and their transformations + /// overriding abstract property. + /// + /// + public abstract class BaseTransformationFilter : IFilter, IFilterInformation + { + /// + /// Format translations dictionary. + /// + /// + /// The dictionary defines, which pixel formats are supported for + /// source images and which pixel format will be used for resulting image. + /// + /// + /// See for more information. + /// + /// + public abstract Dictionary FormatTranslations { get; } + + /// + /// Apply filter to an image. + /// + /// + /// Source image to apply filter to. + /// + /// Returns filter's result obtained by applying the filter to + /// the source image. + /// + /// The method keeps the source image unchanged and returns + /// the result of image processing filter as new image. + /// + /// Unsupported pixel format of the source image. + /// + public Bitmap Apply( Bitmap image ) + { + // lock source bitmap data + BitmapData srcData = image.LockBits( + new Rectangle( 0, 0, image.Width, image.Height ), + ImageLockMode.ReadOnly, image.PixelFormat ); + + Bitmap dstImage = null; + + try + { + // apply the filter + dstImage = Apply( srcData ); + if ( ( image.HorizontalResolution > 0 ) && ( image.VerticalResolution > 0 ) ) + { + dstImage.SetResolution( image.HorizontalResolution, image.VerticalResolution ); + } + } + finally + { + // unlock source image + image.UnlockBits( srcData ); + } + + return dstImage; + } + + /// + /// Apply filter to an image. + /// + /// + /// Source image to apply filter to. + /// + /// Returns filter's result obtained by applying the filter to + /// the source image. + /// + /// The filter accepts bitmap data as input and returns the result + /// of image processing filter as new image. The source image data are kept + /// unchanged. + /// + /// Unsupported pixel format of the source image. + /// + public Bitmap Apply( BitmapData imageData ) + { + // check pixel format of the source image + CheckSourceFormat( imageData.PixelFormat ); + + // destination image format + PixelFormat dstPixelFormat = FormatTranslations[imageData.PixelFormat]; + + // get new image size + Size newSize = CalculateNewImageSize( new UnmanagedImage( imageData ) ); + + // create new image of required format + Bitmap dstImage = ( dstPixelFormat == PixelFormat.Format8bppIndexed ) ? + AForge.Imaging.Image.CreateGrayscaleImage( newSize.Width, newSize.Height ) : + new Bitmap( newSize.Width, newSize.Height, dstPixelFormat ); + + // lock destination bitmap data + BitmapData dstData = dstImage.LockBits( + new Rectangle( 0, 0, newSize.Width, newSize.Height ), + ImageLockMode.ReadWrite, dstPixelFormat ); + + try + { + // process the filter + ProcessFilter( new UnmanagedImage( imageData ), new UnmanagedImage( dstData ) ); + } + finally + { + // unlock destination images + dstImage.UnlockBits( dstData ); + } + + return dstImage; + } + + /// + /// Apply filter to an image in unmanaged memory. + /// + /// + /// Source image in unmanaged memory to apply filter to. + /// + /// Returns filter's result obtained by applying the filter to + /// the source image. + /// + /// The method keeps the source image unchanged and returns + /// the result of image processing filter as new image. + /// + /// Unsupported pixel format of the source image. + /// + public UnmanagedImage Apply( UnmanagedImage image ) + { + // check pixel format of the source image + CheckSourceFormat( image.PixelFormat ); + + // get new image size + Size newSize = CalculateNewImageSize( image ); + + // create new destination image + UnmanagedImage dstImage = UnmanagedImage.Create( newSize.Width, newSize.Height, FormatTranslations[image.PixelFormat] ); + + // process the filter + ProcessFilter( image, dstImage ); + + return dstImage; + } + + /// + /// Apply filter to an image in unmanaged memory. + /// + /// + /// Source image in unmanaged memory to apply filter to. + /// Destination image in unmanaged memory to put result into. + /// + /// The method keeps the source image unchanged and puts result of image processing + /// into destination image. + /// + /// The destination image must have the same width and height as source image. Also + /// destination image must have pixel format, which is expected by particular filter (see + /// property for information about pixel format conversions). + /// + /// + /// Unsupported pixel format of the source image. + /// Incorrect destination pixel format. + /// Destination image has wrong width and/or height. + /// + public void Apply( UnmanagedImage sourceImage, UnmanagedImage destinationImage ) + { + // check pixel format of the source and destination images + CheckSourceFormat( sourceImage.PixelFormat ); + + // ensure destination image has correct format + if ( destinationImage.PixelFormat != FormatTranslations[sourceImage.PixelFormat] ) + { + throw new InvalidImagePropertiesException( "Destination pixel format is specified incorrectly." ); + } + + // get new image size + Size newSize = CalculateNewImageSize( sourceImage ); + + // ensure destination image has correct size + if ( ( destinationImage.Width != newSize.Width ) || ( destinationImage.Height != newSize.Height ) ) + { + throw new InvalidImagePropertiesException( "Destination image must have the size expected by the filter." ); + } + + // process the filter + ProcessFilter( sourceImage, destinationImage ); + } + + /// + /// Calculates new image size. + /// + /// + /// Source image data. + /// + /// New image size - size of the destination image. + /// + protected abstract System.Drawing.Size CalculateNewImageSize( UnmanagedImage sourceData ); + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Destination image data. + /// + protected abstract unsafe void ProcessFilter( UnmanagedImage sourceData, UnmanagedImage destinationData ); + + // Check pixel format of the source image + private void CheckSourceFormat( PixelFormat pixelFormat ) + { + if ( !FormatTranslations.ContainsKey( pixelFormat ) ) + throw new UnsupportedImageFormatException( "Source pixel format is not supported by the filter." ); + } + } +} diff --git a/Sources/Imaging/Filters/Base classes/BaseUsingCopyPartialFilter.cs b/Sources/Imaging/Filters/Base classes/BaseUsingCopyPartialFilter.cs new file mode 100644 index 00000000..01808cca --- /dev/null +++ b/Sources/Imaging/Filters/Base classes/BaseUsingCopyPartialFilter.cs @@ -0,0 +1,359 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Base class for filters, which require source image backup to make them applicable to + /// source image (or its part) directly. + /// + /// + /// The base class is used for filters, which can not do + /// direct manipulations with source image. To make effect of in-place filtering, + /// these filters create a background copy of the original image (done by this + /// base class) and then do manipulations with it putting result back to the original + /// source image. + /// + /// The background copy of the source image is created only in the case of in-place + /// filtering. Otherwise background copy is not created - source image is processed and result is + /// put to destination image. + /// + /// The base class is for those filters, which support as filtering entire image, as + /// partial filtering of specified rectangle only. + /// + /// + public abstract class BaseUsingCopyPartialFilter : IFilter, IInPlaceFilter, IInPlacePartialFilter, IFilterInformation + { + /// + /// Format translations dictionary. + /// + /// + /// The dictionary defines, which pixel formats are supported for + /// source images and which pixel format will be used for resulting image. + /// + /// + /// See for more information. + /// + /// + public abstract Dictionary FormatTranslations { get; } + + /// + /// Apply filter to an image. + /// + /// + /// Source image to apply filter to. + /// + /// Returns filter's result obtained by applying the filter to + /// the source image. + /// + /// The method keeps the source image unchanged and returns + /// the result of image processing filter as new image. + /// + /// Unsupported pixel format of the source image. + /// + public Bitmap Apply( Bitmap image ) + { + // lock source bitmap data + BitmapData srcData = image.LockBits( + new Rectangle( 0, 0, image.Width, image.Height ), + ImageLockMode.ReadOnly, image.PixelFormat ); + + Bitmap dstImage = null; + + try + { + // apply the filter + dstImage = Apply( srcData ); + if ( ( image.HorizontalResolution > 0 ) && ( image.VerticalResolution > 0 ) ) + { + dstImage.SetResolution( image.HorizontalResolution, image.VerticalResolution ); + } + } + finally + { + // unlock source image + image.UnlockBits( srcData ); + } + + return dstImage; + } + + /// + /// Apply filter to an image. + /// + /// + /// Source image to apply filter to. + /// + /// Returns filter's result obtained by applying the filter to + /// the source image. + /// + /// The filter accepts bitmap data as input and returns the result + /// of image processing filter as new image. The source image data are kept + /// unchanged. + /// + /// Unsupported pixel format of the source image. + /// + public Bitmap Apply( BitmapData imageData ) + { + // check pixel format of the source image + CheckSourceFormat( imageData.PixelFormat ); + + // get width and height + int width = imageData.Width; + int height = imageData.Height; + + // destination image format + PixelFormat dstPixelFormat = FormatTranslations[imageData.PixelFormat]; + + // create new image of required format + Bitmap dstImage = ( dstPixelFormat == PixelFormat.Format8bppIndexed ) ? + AForge.Imaging.Image.CreateGrayscaleImage( width, height ) : + new Bitmap( width, height, dstPixelFormat ); + + // lock destination bitmap data + BitmapData dstData = dstImage.LockBits( + new Rectangle( 0, 0, width, height ), + ImageLockMode.ReadWrite, dstPixelFormat ); + + try + { + // process the filter + ProcessFilter( new UnmanagedImage( imageData ), new UnmanagedImage( dstData ), new Rectangle( 0, 0, width, height ) ); + } + finally + { + // unlock destination images + dstImage.UnlockBits( dstData ); + } + + return dstImage; + } + + /// + /// Apply filter to an image in unmanaged memory. + /// + /// + /// Source image in unmanaged memory to apply filter to. + /// + /// Returns filter's result obtained by applying the filter to + /// the source image. + /// + /// The method keeps the source image unchanged and returns + /// the result of image processing filter as new image. + /// + /// Unsupported pixel format of the source image. + /// + public UnmanagedImage Apply( UnmanagedImage image ) + { + // check pixel format of the source image + CheckSourceFormat( image.PixelFormat ); + + // create new destination image + UnmanagedImage dstImage = UnmanagedImage.Create( image.Width, image.Height, FormatTranslations[image.PixelFormat] ); + + // process the filter + ProcessFilter( image, dstImage, new Rectangle( 0, 0, image.Width, image.Height ) ); + + return dstImage; + } + + /// + /// Apply filter to an image in unmanaged memory. + /// + /// + /// Source image in unmanaged memory to apply filter to. + /// Destination image in unmanaged memory to put result into. + /// + /// The method keeps the source image unchanged and puts result of image processing + /// into destination image. + /// + /// The destination image must have the same width and height as source image. Also + /// destination image must have pixel format, which is expected by particular filter (see + /// property for information about pixel format conversions). + /// + /// + /// Unsupported pixel format of the source image. + /// Incorrect destination pixel format. + /// Destination image has wrong width and/or height. + /// + public void Apply( UnmanagedImage sourceImage, UnmanagedImage destinationImage ) + { + // check pixel format of the source and destination images + CheckSourceFormat( sourceImage.PixelFormat ); + + // ensure destination image has correct format + if ( destinationImage.PixelFormat != FormatTranslations[sourceImage.PixelFormat] ) + { + throw new InvalidImagePropertiesException( "Destination pixel format is specified incorrectly." ); + } + + // ensure destination image has correct size + if ( ( destinationImage.Width != sourceImage.Width ) || ( destinationImage.Height != sourceImage.Height ) ) + { + throw new InvalidImagePropertiesException( "Destination image must have the same width and height as source image." ); + } + + // process the filter + ProcessFilter( sourceImage, destinationImage, new Rectangle( 0, 0, sourceImage.Width, sourceImage.Height ) ); + } + + /// + /// Apply filter to an image. + /// + /// + /// Image to apply filter to. + /// + /// The method applies the filter directly to the provided source image. + /// + /// Unsupported pixel format of the source image. + /// + public void ApplyInPlace( Bitmap image ) + { + // apply the filter + ApplyInPlace( image, new Rectangle( 0, 0, image.Width, image.Height ) ); + } + + /// + /// Apply filter to an image. + /// + /// + /// Image data to apply filter to. + /// + /// The method applies the filter directly to the provided source image. + /// + /// Unsupported pixel format of the source image. + /// + public void ApplyInPlace( BitmapData imageData ) + { + // apply the filter + ApplyInPlace( new UnmanagedImage( imageData ), new Rectangle( 0, 0, imageData.Width, imageData.Height ) ); + } + + /// + /// Apply filter to an unmanaged image. + /// + /// + /// Unmanaged image to apply filter to. + /// + /// The method applies the filter directly to the provided source unmanaged image. + /// + /// Unsupported pixel format of the source image. + /// + public void ApplyInPlace( UnmanagedImage image ) + { + // apply the filter + ApplyInPlace( image, new Rectangle( 0, 0, image.Width, image.Height ) ); + } + + /// + /// Apply filter to an image or its part. + /// + /// + /// Image to apply filter to. + /// Image rectangle for processing by the filter. + /// + /// The method applies the filter directly to the provided source image. + /// + /// Unsupported pixel format of the source image. + /// + public void ApplyInPlace( Bitmap image, Rectangle rect ) + { + // lock source bitmap data + BitmapData data = image.LockBits( + new Rectangle( 0, 0, image.Width, image.Height ), + ImageLockMode.ReadWrite, image.PixelFormat ); + + try + { + // apply the filter + ApplyInPlace( new UnmanagedImage( data ), rect ); + } + finally + { + // unlock image + image.UnlockBits( data ); + } + } + + /// + /// Apply filter to an image or its part. + /// + /// + /// Image data to apply filter to. + /// Image rectangle for processing by the filter. + /// + /// The method applies the filter directly to the provided source image. + /// + /// Unsupported pixel format of the source image. + /// + public void ApplyInPlace( BitmapData imageData, Rectangle rect ) + { + // apply the filter + ApplyInPlace( new UnmanagedImage( imageData ), rect ); + } + + /// + /// Apply filter to an unmanaged image or its part. + /// + /// + /// Unmanaged image to apply filter to. + /// Image rectangle for processing by the filter. + /// + /// The method applies the filter directly to the provided source image. + /// + /// Unsupported pixel format of the source image. + /// + public void ApplyInPlace( UnmanagedImage image, Rectangle rect ) + { + // check pixel format of the source image + CheckSourceFormat( image.PixelFormat ); + + // validate rectangle + rect.Intersect( new Rectangle( 0, 0, image.Width, image.Height ) ); + + // process the filter if rectangle is not empty + if ( ( rect.Width | rect.Height ) != 0 ) + { + // create a copy of the source image + int size = image.Stride * image.Height; + + IntPtr imageCopy = MemoryManager.Alloc( size ); + AForge.SystemTools.CopyUnmanagedMemory( imageCopy, image.ImageData, size ); + + // process the filter + ProcessFilter( + new UnmanagedImage( imageCopy, image.Width, image.Height, image.Stride, image.PixelFormat ), + image, rect ); + + MemoryManager.Free( imageCopy ); + } + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Destination image data. + /// Image rectangle for processing by the filter. + /// + protected abstract unsafe void ProcessFilter( UnmanagedImage sourceData, UnmanagedImage destinationData, Rectangle rect ); + + // Check pixel format of the source image + private void CheckSourceFormat( PixelFormat pixelFormat ) + { + if ( !FormatTranslations.ContainsKey( pixelFormat ) ) + throw new UnsupportedImageFormatException( "Source pixel format is not supported by the filter." ); + } + } +} diff --git a/Sources/Imaging/Filters/Binarization/BayerDithering.cs b/Sources/Imaging/Filters/Binarization/BayerDithering.cs new file mode 100644 index 00000000..fdfb0b57 --- /dev/null +++ b/Sources/Imaging/Filters/Binarization/BayerDithering.cs @@ -0,0 +1,58 @@ +// AForge Image Processing Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2005-2008 +// andrew.kirillov@gmail.com +// + +namespace AForge.Imaging.Filters +{ + using System; + + /// + /// Ordered dithering using Bayer matrix. + /// + /// + /// The filter represents filter initialized + /// with the next threshold matrix: + /// + /// byte[,] matrix = new byte[4, 4] + /// { + /// { 0, 192, 48, 240 }, + /// { 128, 64, 176, 112 }, + /// { 32, 224, 16, 208 }, + /// { 160, 96, 144, 80 } + /// }; + /// + /// + /// The filter accepts 8 bpp grayscale images for processing. + /// + /// Sample usage: + /// + /// // create filter + /// BayerDithering filter = new BayerDithering( ); + /// // apply the filter + /// filter.ApplyInPlace( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + public sealed class BayerDithering : OrderedDithering + { + /// + /// Initializes a new instance of the class. + /// + /// + public BayerDithering( ) : base( new byte[,] { + { 0, 192, 48, 240 }, + { 128, 64, 176, 112 }, + { 32, 224, 16, 208 }, + { 160, 96, 144, 80 } } ) + { + } + } +} diff --git a/Sources/Imaging/Filters/Binarization/BurkesDithering.cs b/Sources/Imaging/Filters/Binarization/BurkesDithering.cs new file mode 100644 index 00000000..ae7f43e2 --- /dev/null +++ b/Sources/Imaging/Filters/Binarization/BurkesDithering.cs @@ -0,0 +1,64 @@ +// AForge Image Processing Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2005-2008 +// andrew.kirillov@gmail.com +// +// Original idea from CxImage +// http://www.codeproject.com/bitmap/cximage.asp +// +namespace AForge.Imaging.Filters +{ + using System; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Dithering using Burkes error diffusion. + /// + /// + /// The filter represents binarization filter, which is based on + /// error diffusion dithering with Burkes coefficients. Error is diffused + /// on 7 neighbor pixels with next coefficients: + /// + /// | * | 8 | 4 | + /// | 2 | 4 | 8 | 4 | 2 | + /// + /// / 32 + /// + /// + /// The filter accepts 8 bpp grayscale images for processing. + /// + /// Sample usage: + /// + /// // create filter + /// BurkesDithering filter = new BurkesDithering( ); + /// // apply the filter + /// filter.ApplyInPlace( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + /// + /// + /// + /// + /// + public sealed class BurkesDithering : ErrorDiffusionToAdjacentNeighbors + { + /// + /// Initializes a new instance of the class. + /// + /// + public BurkesDithering( ) : base( new int[2][] { + new int[2] { 8, 4 }, + new int[5] { 2, 4, 8, 4, 2 } + } ) + { + } + } +} diff --git a/Sources/Imaging/Filters/Binarization/ErrorDiffusionDithering.cs b/Sources/Imaging/Filters/Binarization/ErrorDiffusionDithering.cs new file mode 100644 index 00000000..d747f8bf --- /dev/null +++ b/Sources/Imaging/Filters/Binarization/ErrorDiffusionDithering.cs @@ -0,0 +1,173 @@ +// AForge Image Processing Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2005-2008 +// andrew.kirillov@gmail.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + using AForge; + + /// + /// Base class for error diffusion dithering. + /// + /// + /// The class is the base class for binarization algorithms based on + /// error diffusion. + /// + /// Binarization with error diffusion in its idea is similar to binarization based on thresholding + /// of pixels' cumulative value (see ). Each pixel is binarized based not only + /// on its own value, but on values of some surrounding pixels. During pixel's binarization, its binarization + /// error is distributed (diffused) to some neighbor pixels with some coefficients. This error diffusion + /// updates neighbor pixels changing their values, what affects their upcoming binarization. Error diffuses + /// only on unprocessed yet neighbor pixels, which are right and bottom pixels usually (in the case if image + /// processing is done from upper left corner to bottom right corner). Binarization error equals + /// to processing pixel value, if it is below threshold value, or pixel value minus 255 otherwise. + /// + /// The filter accepts 8 bpp grayscale images for processing. + /// + /// + public abstract class ErrorDiffusionDithering : BaseInPlacePartialFilter + { + private byte threshold = 128; + + /// + /// Threshold value. + /// + /// + /// Default value is 128. + /// + public byte ThresholdValue + { + get { return threshold; } + set { threshold = value; } + } + + /// + /// Current processing X coordinate. + /// + protected int x; + + /// + /// Current processing Y coordinate. + /// + protected int y; + + /// + /// Processing X start position. + /// + protected int startX; + + /// + /// Processing Y start position. + /// + protected int startY; + + /// + /// Processing X stop position. + /// + protected int stopX; + + /// + /// Processing Y stop position. + /// + protected int stopY; + + /// + /// Processing image's stride (line size). + /// + protected int stride; + + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + protected ErrorDiffusionDithering( ) + { + // initialize format translation dictionary + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format8bppIndexed; + } + + /// + /// Do error diffusion. + /// + /// + /// Current error value. + /// Pointer to current processing pixel. + /// + /// All parameters of the image and current processing pixel's coordinates + /// are initialized in protected members. + /// + protected abstract unsafe void Diffuse( int error, byte* ptr ); + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Image rectangle for processing by the filter. + /// + protected override unsafe void ProcessFilter( UnmanagedImage image, Rectangle rect ) + { + // processing start and stop X,Y positions + startX = rect.Left; + startY = rect.Top; + stopX = startX + rect.Width; + stopY = startY + rect.Height; + stride = image.Stride; + + int offset = stride - rect.Width; + + // pixel value and error value + int v, error; + + // do the job + byte* ptr = (byte*) image.ImageData.ToPointer( ); + + // allign pointer to the first pixel to process + ptr += ( startY * stride + startX ); + + // for each line + for ( y = startY; y < stopY; y++ ) + { + // for each pixels + for ( x = startX; x < stopX; x++, ptr++ ) + { + v = *ptr; + + // fill the next destination pixel + if ( v >= threshold ) + { + *ptr = 255; + error = v - 255; + } + else + { + *ptr = 0; + error = v; + } + + // do error diffusion + Diffuse( error, ptr ); + } + ptr += offset; + } + } + } +} diff --git a/Sources/Imaging/Filters/Binarization/ErrorDiffusionToAdjacentNeighbors.cs b/Sources/Imaging/Filters/Binarization/ErrorDiffusionToAdjacentNeighbors.cs new file mode 100644 index 00000000..bd2d65bf --- /dev/null +++ b/Sources/Imaging/Filters/Binarization/ErrorDiffusionToAdjacentNeighbors.cs @@ -0,0 +1,171 @@ +// AForge Image Processing Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2005-2008 +// andrew.kirillov@gmail.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Base class for error diffusion dithering, where error is diffused to + /// adjacent neighbor pixels. + /// + /// + /// The class does error diffusion to adjacent neighbor pixels + /// using specified set of coefficients. These coefficients are represented by + /// 2 dimensional jugged array, where first array of coefficients is for + /// right-standing pixels, but the rest of arrays are for bottom-standing pixels. + /// All arrays except the first one should have odd number of coefficients. + /// + /// Suppose that error diffusion coefficients are represented by the next + /// jugged array: + /// + /// + /// int[][] coefficients = new int[2][] { + /// new int[1] { 7 }, + /// new int[3] { 3, 5, 1 } + /// }; + /// + /// + /// The above coefficients are used to diffuse error over the next neighbor + /// pixels (* marks current pixel, coefficients are placed to corresponding + /// neighbor pixels): + /// + /// | * | 7 | + /// | 3 | 5 | 1 | + /// + /// / 16 + /// + /// + /// The filter accepts 8 bpp grayscale images for processing. + /// + /// Sample usage: + /// + /// // create filter + /// ErrorDiffusionToAdjacentNeighbors filter = new ErrorDiffusionToAdjacentNeighbors( + /// new int[3][] { + /// new int[2] { 5, 3 }, + /// new int[5] { 2, 4, 5, 4, 2 }, + /// new int[3] { 2, 3, 2 } + /// } ); + /// // apply the filter + /// filter.ApplyInPlace( image ); + /// + /// + /// + public class ErrorDiffusionToAdjacentNeighbors : ErrorDiffusionDithering + { + // diffusion coefficients + private int[][] coefficients; + // sum of all coefficients + private int coefficientsSum; + + /// + /// Diffusion coefficients. + /// + /// + /// Set of coefficients, which are used for error diffusion to + /// pixel's neighbors. + /// + public int[][] Coefficients + { + get { return coefficients; } + set + { + coefficients = value; + CalculateCoefficientsSum( ); + } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Diffusion coefficients. + /// + public ErrorDiffusionToAdjacentNeighbors( int[][] coefficients ) + { + this.coefficients = coefficients; + CalculateCoefficientsSum( ); + } + + /// + /// Do error diffusion. + /// + /// + /// Current error value. + /// Pointer to current processing pixel. + /// + /// All parameters of the image and current processing pixel's coordinates + /// are initialized by base class. + /// + protected override unsafe void Diffuse( int error, byte* ptr ) + { + int ed; // error diffusion + + // do error diffusion to right-standing neighbors + int[] coefficientsRow = coefficients[0]; + + for ( int jI = 1, jC = 0, k = coefficientsRow.Length; jC < k; jI++, jC++ ) + { + if ( x + jI >= stopX ) + break; + + ed = ptr[jI] + ( error * coefficientsRow[jC] ) / coefficientsSum; + ed = ( ed < 0 ) ? 0 : ( ( ed > 255 ) ? 255 : ed ); + ptr[jI] = (byte) ed; + } + + // do error diffusion to bottom neigbors + for ( int i = 1, n = coefficients.Length; i < n; i++ ) + { + if ( y + i >= stopY ) + break; + + // move pointer to next image line + ptr += stride; + + // get coefficients of the row + coefficientsRow = coefficients[i]; + + // process the row + for ( int jC = 0, k = coefficientsRow.Length, jI = -( k >> 1 ); jC < k; jI++, jC++ ) + { + if ( x + jI >= stopX ) + break; + if ( x + jI < startX ) + continue; + + ed = ptr[jI] + ( error * coefficientsRow[jC] ) / coefficientsSum; + ed = ( ed < 0 ) ? 0 : ( ( ed > 255 ) ? 255 : ed ); + ptr[jI] = (byte) ed; + } + } + } + + #region Private Members + + // Calculate coefficients' sum + private void CalculateCoefficientsSum( ) + { + coefficientsSum = 0; + + for ( int i = 0, n = coefficients.Length; i < n; i++ ) + { + int[] coefficientsRow = coefficients[i]; + + for ( int j = 0, k = coefficientsRow.Length; j < k; j++ ) + { + coefficientsSum += coefficientsRow[j]; + } + } + } + + #endregion + } +} diff --git a/Sources/Imaging/Filters/Binarization/FloydSteinbergDithering.cs b/Sources/Imaging/Filters/Binarization/FloydSteinbergDithering.cs new file mode 100644 index 00000000..776277ae --- /dev/null +++ b/Sources/Imaging/Filters/Binarization/FloydSteinbergDithering.cs @@ -0,0 +1,64 @@ +// AForge Image Processing Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2005-2008 +// andrew.kirillov@gmail.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Dithering using Floyd-Steinberg error diffusion. + /// + /// + /// The filter represents binarization filter, which is based on + /// error diffusion dithering with Floyd-Steinberg + /// coefficients. Error is diffused on 4 neighbor pixels with next coefficients: + /// + /// + /// | * | 7 | + /// | 3 | 5 | 1 | + /// + /// / 16 + /// + /// + /// The filter accepts 8 bpp grayscale images for processing. + /// + /// Sample usage: + /// + /// // create filter + /// FloydSteinbergDithering filter = new FloydSteinbergDithering( ); + /// // apply the filter + /// filter.ApplyInPlace( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + /// + /// + /// + /// + /// + public sealed class FloydSteinbergDithering : ErrorDiffusionToAdjacentNeighbors + { + /// + /// Initializes a new instance of the class. + /// + /// + public FloydSteinbergDithering( ) + : base( new int[2][] { + new int[1] { 7 }, + new int[3] { 3, 5, 1 } + } ) + { + } + } +} diff --git a/Sources/Imaging/Filters/Binarization/JarvisJudiceNinkeDithering.cs b/Sources/Imaging/Filters/Binarization/JarvisJudiceNinkeDithering.cs new file mode 100644 index 00000000..7ff99cd9 --- /dev/null +++ b/Sources/Imaging/Filters/Binarization/JarvisJudiceNinkeDithering.cs @@ -0,0 +1,66 @@ +// AForge Image Processing Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2005-2008 +// andrew.kirillov@gmail.com +// +// Original idea from CxImage +// http://www.codeproject.com/bitmap/cximage.asp +// +namespace AForge.Imaging.Filters +{ + using System; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Dithering using Jarvis, Judice and Ninke error diffusion. + /// + /// + /// The filter represents binarization filter, which is based on + /// error diffusion dithering with Jarvis-Judice-Ninke coefficients. Error is diffused + /// on 12 neighbor pixels with next coefficients: + /// + /// | * | 7 | 5 | + /// | 3 | 5 | 7 | 5 | 3 | + /// | 1 | 3 | 5 | 3 | 1 | + /// + /// / 48 + /// + /// + /// The filter accepts 8 bpp grayscale images for processing. + /// + /// Sample usage: + /// + /// // create filter + /// JarvisJudiceNinkeDithering filter = new JarvisJudiceNinkeDithering( ); + /// // apply the filter + /// filter.ApplyInPlace( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + /// + /// + /// + /// + /// + public sealed class JarvisJudiceNinkeDithering : ErrorDiffusionToAdjacentNeighbors + { + /// + /// Initializes a new instance of the class. + /// + /// + public JarvisJudiceNinkeDithering( ) : base( new int[3][] { + new int[2] { 7, 5 }, + new int[5] { 3, 5, 7, 5, 3 }, + new int[5] { 1, 3, 5, 3, 1 } + } ) + { + } + } +} diff --git a/Sources/Imaging/Filters/Binarization/OrderedDithering.cs b/Sources/Imaging/Filters/Binarization/OrderedDithering.cs new file mode 100644 index 00000000..cc04aa24 --- /dev/null +++ b/Sources/Imaging/Filters/Binarization/OrderedDithering.cs @@ -0,0 +1,134 @@ +// AForge Image Processing Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2005-2008 +// andrew.kirillov@gmail.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Binarization with thresholds matrix. + /// + /// + /// Idea of the filter is the same as idea of filter - + /// change pixel value to white, if its intensity is equal or higher than threshold value, or + /// to black otherwise. But instead of using single threshold value for all pixel, the filter + /// uses matrix of threshold values. Processing image is divided to adjacent windows of matrix + /// size each. For pixels binarization inside of each window, corresponding threshold values are + /// used from specified threshold matrix. + /// + /// The filter accepts 8 bpp grayscale images for processing. + /// + /// Sample usage: + /// + /// // create binarization matrix + /// byte[,] matrix = new byte[4, 4] + /// { + /// { 95, 233, 127, 255 }, + /// { 159, 31, 191, 63 }, + /// { 111, 239, 79, 207 }, + /// { 175, 47, 143, 15 } + /// }; + /// // create filter + /// OrderedDithering filter = new OrderedDithering( matrix ); + /// // apply the filter + /// filter.ApplyInPlace( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + /// + /// + public class OrderedDithering : BaseInPlacePartialFilter + { + private int rows = 4; + private int cols = 4; + + private byte[,] matrix = new byte[4, 4] + { + { 15, 143, 47, 175 }, + { 207, 79, 239, 111 }, + { 63, 191, 31, 159 }, + { 255, 127, 223, 95 } + }; + + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public OrderedDithering( ) + { + // initialize format translation dictionary + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format8bppIndexed; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Thresholds matrix. + /// + public OrderedDithering( byte[,] matrix ) + : this( ) + { + rows = matrix.GetLength( 0 ); + cols = matrix.GetLength( 1 ); + + this.matrix = matrix; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Image rectangle for processing by the filter. + /// + protected override unsafe void ProcessFilter( UnmanagedImage image, Rectangle rect ) + { + int startX = rect.Left; + int startY = rect.Top; + int stopX = startX + rect.Width; + int stopY = startY + rect.Height; + int offset = image.Stride - rect.Width; + + // do the job + byte* ptr = (byte*) image.ImageData.ToPointer( ); + + // allign pointer to the first pixel to process + ptr += ( startY * image.Stride + startX ); + + // for each line + for ( int y = startY; y < stopY; y++ ) + { + // for each pixel + for ( int x = startX; x < stopX; x++, ptr++ ) + { + *ptr = (byte) ( ( *ptr <= matrix[( y % rows ), ( x % cols )] ) ? 0 : 255 ); + } + ptr += offset; + } + } + } +} diff --git a/Sources/Imaging/Filters/Binarization/SierraDithering.cs b/Sources/Imaging/Filters/Binarization/SierraDithering.cs new file mode 100644 index 00000000..7a0270fc --- /dev/null +++ b/Sources/Imaging/Filters/Binarization/SierraDithering.cs @@ -0,0 +1,66 @@ +// AForge Image Processing Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2005-2008 +// andrew.kirillov@gmail.com +// +// Original idea from CxImage +// http://www.codeproject.com/bitmap/cximage.asp +// +namespace AForge.Imaging.Filters +{ + using System; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Dithering using Sierra error diffusion. + /// + /// + /// The filter represents binarization filter, which is based on + /// error diffusion dithering with Sierra coefficients. Error is diffused + /// on 10 neighbor pixels with next coefficients: + /// + /// | * | 5 | 3 | + /// | 2 | 4 | 5 | 4 | 2 | + /// | 2 | 3 | 2 | + /// + /// / 32 + /// + /// + /// The filter accepts 8 bpp grayscale images for processing. + /// + /// Sample usage: + /// + /// // create filter + /// SierraDithering filter = new SierraDithering( ); + /// // apply the filter + /// filter.ApplyInPlace( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + /// + /// + /// + /// + /// + public sealed class SierraDithering : ErrorDiffusionToAdjacentNeighbors + { + /// + /// Initializes a new instance of the class. + /// + /// + public SierraDithering( ) : base( new int[3][] { + new int[2] { 5, 3 }, + new int[5] { 2, 4, 5, 4, 2 }, + new int[3] { 2, 3, 2 } + } ) + { + } + } +} diff --git a/Sources/Imaging/Filters/Binarization/StuckiDithering.cs b/Sources/Imaging/Filters/Binarization/StuckiDithering.cs new file mode 100644 index 00000000..3ac858d9 --- /dev/null +++ b/Sources/Imaging/Filters/Binarization/StuckiDithering.cs @@ -0,0 +1,66 @@ +// AForge Image Processing Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2005-2008 +// andrew.kirillov@gmail.com +// +// Original idea from CxImage +// http://www.codeproject.com/bitmap/cximage.asp +// +namespace AForge.Imaging.Filters +{ + using System; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Dithering using Stucki error diffusion. + /// + /// + /// The filter represents binarization filter, which is based on + /// error diffusion dithering with Stucki coefficients. Error is diffused + /// on 12 neighbor pixels with next coefficients: + /// + /// | * | 8 | 4 | + /// | 2 | 4 | 8 | 4 | 2 | + /// | 1 | 2 | 4 | 2 | 1 | + /// + /// / 42 + /// + /// + /// The filter accepts 8 bpp grayscale images for processing. + /// + /// Sample usage: + /// + /// // create filter + /// StuckiDithering filter = new StuckiDithering( ); + /// // apply the filter + /// filter.ApplyInPlace( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + /// + /// + /// + /// + /// + public sealed class StuckiDithering : ErrorDiffusionToAdjacentNeighbors + { + /// + /// Initializes a new instance of the class. + /// + /// + public StuckiDithering( ) : base( new int[3][] { + new int[2] { 8, 4 }, + new int[5] { 2, 4, 8, 4, 2 }, + new int[5] { 1, 2, 4, 2, 1 } + } ) + { + } + } +} diff --git a/Sources/Imaging/Filters/Binarization/Threshold.cs b/Sources/Imaging/Filters/Binarization/Threshold.cs new file mode 100644 index 00000000..35c109d6 --- /dev/null +++ b/Sources/Imaging/Filters/Binarization/Threshold.cs @@ -0,0 +1,151 @@ +// AForge Image Processing Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2005-2009 +// andrew.kirillov@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Threshold binarization. + /// + /// + /// The filter does image binarization using specified threshold value. All pixels + /// with intensities equal or higher than threshold value are converted to white pixels. All other + /// pixels with intensities below threshold value are converted to black pixels. + /// + /// The filter accepts 8 and 16 bpp grayscale images for processing. + /// + /// Since the filter can be applied as to 8 bpp and to 16 bpp images, + /// the value should be set appropriately to the pixel format. + /// In the case of 8 bpp images the threshold value is in the [0, 255] range, but in the case + /// of 16 bpp images the threshold value is in the [0, 65535] range. + /// + /// Sample usage: + /// + /// // create filter + /// Threshold filter = new Threshold( 100 ); + /// // apply the filter + /// filter.ApplyInPlace( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + public class Threshold : BaseInPlacePartialFilter + { + /// + /// Threshold value. + /// + protected int threshold = 128; + + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Threshold value. + /// + /// + /// Default value is set to 128. + /// + public int ThresholdValue + { + get { return threshold; } + set { threshold = value; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public Threshold( ) + { + // initialize format translation dictionary + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format8bppIndexed; + formatTranslations[PixelFormat.Format16bppGrayScale] = PixelFormat.Format16bppGrayScale; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Threshold value. + /// + public Threshold( int threshold ) + : this( ) + { + this.threshold = threshold; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Image rectangle for processing by the filter. + /// + protected override unsafe void ProcessFilter( UnmanagedImage image, Rectangle rect ) + { + int startX = rect.Left; + int startY = rect.Top; + int stopX = startX + rect.Width; + int stopY = startY + rect.Height; + + if ( image.PixelFormat == PixelFormat.Format8bppIndexed ) + { + int offset = image.Stride - rect.Width; + + // do the job + byte* ptr = (byte*) image.ImageData.ToPointer( ); + + // allign pointer to the first pixel to process + ptr += ( startY * image.Stride + startX ); + + // for each line + for ( int y = startY; y < stopY; y++ ) + { + // for each pixel + for ( int x = startX; x < stopX; x++, ptr++ ) + { + *ptr = (byte) ( ( *ptr >= threshold ) ? 255 : 0 ); + } + ptr += offset; + } + } + else + { + byte* basePtr = (byte*) image.ImageData.ToPointer( ) + startX * 2; + int stride = image.Stride; + + // for each line + for ( int y = startY; y < stopY; y++ ) + { + ushort* ptr = (ushort*) ( basePtr + stride * y ); + + // for each pixel + for ( int x = startX; x < stopX; x++, ptr++ ) + { + *ptr = (ushort) ( ( *ptr >= threshold ) ? 65535 : 0 ); + } + } + } + } + } +} diff --git a/Sources/Imaging/Filters/Binarization/ThresholdWithCarry.cs b/Sources/Imaging/Filters/Binarization/ThresholdWithCarry.cs new file mode 100644 index 00000000..494695f7 --- /dev/null +++ b/Sources/Imaging/Filters/Binarization/ThresholdWithCarry.cs @@ -0,0 +1,141 @@ +// AForge Image Processing Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2005-2008 +// andrew.kirillov@gmail.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Threshold binarization with error carry. + /// + /// + /// The filter is similar to filter in the way, + /// that it also uses threshold value for image binarization. Unlike regular threshold + /// filter, this filter uses cumulative pixel value in comparing with threshold value. + /// If cumulative pixel value is below threshold value, then image pixel becomes black. + /// If cumulative pixel value is equal or higher than threshold value, then image pixel + /// becomes white and cumulative pixel value is decreased by 255. In the beginning of each + /// image line the cumulative value is reset to 0. + /// + /// + /// The filter accepts 8 bpp grayscale images for processing. + /// + /// Sample usage: + /// + /// // create filter + /// Threshold filter = new Threshold( 100 ); + /// // apply the filter + /// filter.ApplyInPlace( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + public class ThresholdWithCarry : BaseInPlacePartialFilter + { + private byte threshold = 128; + + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Threshold value. + /// + /// + /// Default value is 128. + /// + public byte ThresholdValue + { + get { return threshold; } + set { threshold = value; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public ThresholdWithCarry( ) + { + // initialize format translation dictionary + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format8bppIndexed; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Threshold value. + /// + public ThresholdWithCarry( byte threshold ) + : this( ) + { + this.threshold = threshold; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Image rectangle for processing by the filter. + /// + protected override unsafe void ProcessFilter( UnmanagedImage image, Rectangle rect ) + { + int startX = rect.Left; + int startY = rect.Top; + int stopX = startX + rect.Width; + int stopY = startY + rect.Height; + int offset = image.Stride - rect.Width; + + // value which is caried from pixel to pixel + short carry = 0; + + // do the job + byte* ptr = (byte*) image.ImageData.ToPointer( ); + + // allign pointer to the first pixel to process + ptr += ( startY * image.Stride + startX ); + + // for each line + for ( int y = startY; y < stopY; y++ ) + { + carry = 0; + + // for each pixel + for ( int x = startX; x < stopX; x++, ptr++ ) + { + carry += *ptr; + + if ( carry >= threshold ) + { + *ptr = (byte) 255; + carry -= 255; + } + else + { + *ptr = (byte) 0; + } + } + ptr += offset; + } + } + } +} diff --git a/Sources/Imaging/Filters/Color Filters/BayerFilter.cs b/Sources/Imaging/Filters/Color Filters/BayerFilter.cs new file mode 100644 index 00000000..2a5efe6d --- /dev/null +++ b/Sources/Imaging/Filters/Color Filters/BayerFilter.cs @@ -0,0 +1,260 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Generic Bayer fileter image processing routine. + /// + /// + /// The class implements Bayer filter + /// routine, which creates color image out of grayscale image produced by image sensor built with + /// Bayer color matrix. + /// + /// This Bayer filter implementation is made generic by allowing user to specify used + /// Bayer pattern. This makes it slower. For optimized version + /// of the Bayer filter see class, which implements Bayer filter + /// specifically optimized for some well known patterns. + /// + /// The filter accepts 8 bpp grayscale images and produces 24 bpp RGB image. + /// + /// Sample usage: + /// + /// // create filter + /// BayerFilter filter = new BayerFilter( ); + /// // apply the filter + /// Bitmap rgbImage = filter.Apply( image ); + /// + /// + /// Source image: + /// + /// Result image: + /// + /// + /// + /// + /// + public class BayerFilter : BaseFilter + { + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + private bool performDemosaicing = true; + private int[,] bayerPattern = new int[2, 2] { { RGB.G, RGB.R }, { RGB.B, RGB.G } }; + + /// + /// Specifies if demosaicing must be done or not. + /// + /// + /// The property specifies if color demosaicing must be done or not. + /// If the property is set to , then pixels of the result color image + /// are colored according to the Bayer pattern used, i.e. every pixel + /// of the source grayscale image is copied to corresponding color plane of the result image. + /// If the property is set to , then pixels of the result image + /// are set to color, which is obtained by averaging color components from the 3x3 window - pixel + /// itself plus 8 surrounding neighbors. + /// + /// Default value is set to . + /// + /// + public bool PerformDemosaicing + { + get { return performDemosaicing; } + set { performDemosaicing = value; } + } + + /// + /// Specifies Bayer pattern used for decoding color image. + /// + /// + /// The property specifies 2x2 array of RGB color indexes, which set the + /// Bayer patter used for decoding color image. + /// + /// By default the property is set to: + /// + /// new int[2, 2] { { RGB.G, RGB.R }, { RGB.B, RGB.G } } + /// , + /// which corresponds to + /// + /// G R + /// B G + /// + /// pattern. + /// + /// + /// + public int[,] BayerPattern + { + get { return bayerPattern; } + set + { + bayerPattern = value; + } + } + + /// + /// Format translations dictionary. + /// + /// + /// See + /// documentation for additional information. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public BayerFilter( ) + { + // initialize format translation dictionary + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format24bppRgb; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Destination image data. + /// + protected override unsafe void ProcessFilter( UnmanagedImage sourceData, UnmanagedImage destinationData ) + { + // get width and height + int width = sourceData.Width; + int height = sourceData.Height; + + int widthM1 = width - 1; + int heightM1 = height - 1; + + int srcStride = sourceData.Stride; + + int srcOffset = srcStride - width; + int dstOffset = destinationData.Stride - width * 3; + + // do the job + byte * src = (byte*) sourceData.ImageData.ToPointer( ); + byte * dst = (byte*) destinationData.ImageData.ToPointer( ); + + int[] rgbValues = new int[3]; + int[] rgbCounters = new int[3]; + + if ( !performDemosaicing ) + { + // for each line + for ( int y = 0; y < height; y++ ) + { + // for each pixel + for ( int x = 0; x < width; x++, src++, dst += 3 ) + { + dst[RGB.R] = dst[RGB.G] = dst[RGB.B] = 0; + dst[bayerPattern[y & 1, x & 1]] = *src; + } + src += srcOffset; + dst += dstOffset; + } + } + else + { + // for each line + for ( int y = 0; y < height; y++ ) + { + // for each pixel + for ( int x = 0; x < width; x++, src++, dst += 3 ) + { + rgbValues[0] = rgbValues[1] = rgbValues[2] = 0; + rgbCounters[0] = rgbCounters[1] = rgbCounters[2] = 0; + + int bayerIndex = bayerPattern[y & 1, x & 1]; + + rgbValues[bayerIndex] += *src; + rgbCounters[bayerIndex]++; + + if ( x != 0 ) + { + bayerIndex = bayerPattern[y & 1, ( x - 1 ) & 1]; + + rgbValues[bayerIndex] += src[-1]; + rgbCounters[bayerIndex]++; + } + + if ( x != widthM1 ) + { + bayerIndex = bayerPattern[y & 1, ( x + 1 ) & 1]; + + rgbValues[bayerIndex] += src[1]; + rgbCounters[bayerIndex]++; + } + + if ( y != 0 ) + { + bayerIndex = bayerPattern[( y - 1 ) & 1, x & 1]; + + rgbValues[bayerIndex] += src[-srcStride]; + rgbCounters[bayerIndex]++; + + if ( x != 0 ) + { + bayerIndex = bayerPattern[( y - 1 ) & 1, ( x - 1 ) & 1]; + + rgbValues[bayerIndex] += src[-srcStride - 1]; + rgbCounters[bayerIndex]++; + } + + if ( x != widthM1 ) + { + bayerIndex = bayerPattern[( y - 1 ) & 1, ( x + 1 ) & 1]; + + rgbValues[bayerIndex] += src[-srcStride + 1]; + rgbCounters[bayerIndex]++; + } + } + + if ( y != heightM1 ) + { + bayerIndex = bayerPattern[( y + 1 ) & 1, x & 1]; + + rgbValues[bayerIndex] += src[srcStride]; + rgbCounters[bayerIndex]++; + + if ( x != 0 ) + { + bayerIndex = bayerPattern[( y + 1 ) & 1, ( x - 1 ) & 1]; + + rgbValues[bayerIndex] += src[srcStride - 1]; + rgbCounters[bayerIndex]++; + } + + if ( x != widthM1 ) + { + bayerIndex = bayerPattern[( y + 1 ) & 1, ( x + 1 ) & 1]; + + rgbValues[bayerIndex] += src[srcStride + 1]; + rgbCounters[bayerIndex]++; + } + } + + dst[RGB.R] = (byte) ( rgbValues[RGB.R] / rgbCounters[RGB.R] ); + dst[RGB.G] = (byte) ( rgbValues[RGB.G] / rgbCounters[RGB.G] ); + dst[RGB.B] = (byte) ( rgbValues[RGB.B] / rgbCounters[RGB.B] ); + } + src += srcOffset; + dst += dstOffset; + } + } + } + } +} diff --git a/Sources/Imaging/Filters/Color Filters/BayerFilterOptimized.cs b/Sources/Imaging/Filters/Color Filters/BayerFilterOptimized.cs new file mode 100644 index 00000000..2e4de12e --- /dev/null +++ b/Sources/Imaging/Filters/Color Filters/BayerFilterOptimized.cs @@ -0,0 +1,568 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Set of Bayer patterns supported by . + /// + public enum BayerPattern + { + /// + /// Pattern:

+ /// G R
+ /// B G + ///
+ GRBG, + + /// + /// Pattern:

+ /// B G
+ /// G R + ///
+ BGGR + } + + /// + /// Optimized Bayer fileter image processing routine. + /// + /// + /// The class implements Bayer filter + /// routine, which creates color image out of grayscale image produced by image sensor built with + /// Bayer color matrix. + /// + /// This class does all the same as class. However this version is + /// optimized for some well known patterns defined in enumeration. + /// Also this class processes images with even width and height only. Image size must be at least 2x2 pixels. + /// + /// + /// The filter accepts 8 bpp grayscale images and produces 24 bpp RGB image. + /// + /// Sample usage: + /// + /// // create filter + /// BayerFilter filter = new BayerFilter( ); + /// // apply the filter + /// Bitmap rgbImage = filter.Apply( image ); + /// + /// + /// + /// + /// + public class BayerFilterOptimized : BaseFilter + { + private BayerPattern bayerPattern = BayerPattern.GRBG; + + /// + /// Bayer pattern of source images to decode. + /// + /// + /// The property specifies Bayer pattern of source images to be + /// decoded into color images. + /// + /// Default value is set to . + /// + /// + public BayerPattern Pattern + { + get { return bayerPattern; } + set { bayerPattern = value; } + } + + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + /// + /// See + /// documentation for additional information. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public BayerFilterOptimized( ) + { + // initialize format translation dictionary + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format24bppRgb; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Destination image data. + /// + protected override void ProcessFilter( UnmanagedImage sourceData, UnmanagedImage destinationData ) + { + // get width and height + int width = sourceData.Width; + int height = sourceData.Height; + + if ( ( ( width & 1 ) == 1 ) || ( ( height & 1 ) == 1 ) || + ( width < 2 ) || ( height < 2 ) ) + { + throw new InvalidImagePropertiesException( "Source image must have even width and height. Width and height can not be smaller than 2." ); + } + + switch ( bayerPattern ) + { + case BayerPattern.GRBG: + ApplyGRBG( sourceData, destinationData ); + break; + + case BayerPattern.BGGR: + ApplyBGGR( sourceData, destinationData ); + break; + } + } + + #region GRBG pattern + private unsafe void ApplyGRBG( UnmanagedImage sourceData, UnmanagedImage destinationData ) + { + int width = sourceData.Width; + int height = sourceData.Height; + + int widthM1 = width - 1; + int heightM1 = height - 1; + + int srcStride = sourceData.Stride; + int dstStride = destinationData.Stride; + + int srcStrideP1 = srcStride + 1; + int srcStrideM1 = srcStride - 1; + int srcMStride = -srcStride; + int srcMStrideP1 = srcMStride + 1; + int srcMStrideM1 = srcMStride - 1; + + int srcOffset = srcStride - width; + int dstOffset = dstStride - width * 3; + + // do the job + byte * src = (byte*) sourceData.ImageData.ToPointer( ); + byte * dst = (byte*) destinationData.ImageData.ToPointer( ); + + // --- process the first line + + // . . . + // . G R + // . B G + dst[RGB.R] = src[1]; + dst[RGB.G] = (byte) ( ( *src + src[srcStrideP1] ) >> 1 ); + dst[RGB.B] = src[srcStride]; + + src++; + dst += 3; + + for ( int x = 1; x < widthM1; x += 2 ) + { + // . . . + // G R G + // B G B + dst[RGB.R] = *src; + dst[RGB.G] = (byte) ( ( src[srcStride] + src[-1] + src[1] ) / 3 ); + dst[RGB.B] = (byte) ( ( src[srcStrideM1] + src[srcStrideP1] ) >> 1 ); + + src++; + dst += 3; + + // . . . + // R G R + // G B G + dst[RGB.R] = (byte) ( ( src[-1] + src[1] ) >> 1 ); + dst[RGB.G] = (byte) ( ( *src + src[srcStrideM1] + src[srcStrideP1] ) / 3 ); + dst[RGB.B] = src[srcStride]; + + src++; + dst += 3; + } + + // . . . + // G R . + // B G . + dst[RGB.R] = *src; + dst[RGB.G] = (byte) ( ( src[-1] + src[srcStride] ) >> 1 ); + dst[RGB.B] = src[srcStrideM1]; + + + // allign to the next line + src += srcOffset + 1; + dst += dstOffset + 3; + + // --- process all lines except the first one and the last one + for ( int y = 1; y < heightM1; y += 2 ) + { + // . G R + // . B G + // . G R + dst[RGB.R] = (byte) ( ( src[srcMStrideP1] + src[srcStrideP1] ) >> 1 ); + dst[RGB.G] = (byte) ( ( src[srcMStride] + src[srcStride] + src[1] ) / 3 ); + dst[RGB.B] = *src; + + dst += dstStride; + src += srcStride; + + // ( y+1 pixel ) + // . B G + // . G R + // . B G + dst[RGB.R] = src[1]; + dst[RGB.G] = (byte) ( ( *src + src[srcMStrideP1] + src[srcStrideP1] ) / 3 ); + dst[RGB.B] = (byte) ( ( src[srcMStride] + src[srcStride] ) >> 1 ); + + dst -= dstStride; + src -= srcStride; + + src++; + dst += 3; + + for ( int x = 1; x < widthM1; x += 2 ) + { + // G R G + // B G B + // G R G + dst[RGB.R] = (byte) ( ( src[srcMStride] + src[srcStride] ) >> 1 ); + dst[RGB.G] = (byte) ( ( *src + src[srcMStrideM1] + src[srcMStrideP1] + + src[srcStrideM1] + src[srcStrideP1] ) / 5 ); + dst[RGB.B] = (byte) ( ( src[-1] + src[1] ) >> 1 ); + + // ( y+1 pixel ) + // B G B + // G R G + // B G B + dst += dstStride; + src += srcStride; + + dst[RGB.R] = *src; + dst[RGB.G] = (byte) ( ( src[srcMStride] + src[srcStride] + + src[-1] + src[1] ) >> 2 ); + dst[RGB.B] = (byte) ( ( src[srcMStrideM1] + src[srcMStrideP1] + + src[srcStrideM1] + src[srcStrideP1] ) >> 2 ); + + // ( y+1 x+1 pixel ) + // G B G + // R G R + // G B G + dst += 3; + src++; + + dst[RGB.R] = (byte) ( ( src[-1] + src[1] ) >> 1 ); + dst[RGB.G] = (byte) ( ( *src + src[srcMStrideM1] + src[srcMStrideP1] + + src[srcStrideM1] + src[srcStrideP1] ) / 5 ); + dst[RGB.B] = (byte) ( ( src[srcMStride] + src[srcStride] ) >> 1 ); + + // ( x+1 pixel ) + // R G R + // G B G + // R G R + dst -= dstStride; + src -= srcStride; + + dst[RGB.R] = (byte) ( ( src[srcMStrideM1] + src[srcMStrideP1] + + src[srcStrideM1] + src[srcStrideP1] ) >> 2 ); + dst[RGB.G] = (byte) ( ( src[srcMStride] + src[srcStride] + + src[-1] + src[1] ) >> 2 ); + dst[RGB.B] = *src; + + dst += 3; + src++; + } + + // G R . + // B G . + // G R . + dst[RGB.R] = (byte) ( ( src[srcMStride] + src[srcStride] ) >> 1 ); + dst[RGB.G] = (byte) ( ( *src + src[srcMStrideM1] + src[srcStrideM1] ) / 3 ); + dst[RGB.B] = (byte) src[-1]; + + src += srcStride; + dst += dstStride; + + // ( y+1 pixel ) + // B G . + // G R . + // B G . + dst[RGB.R] = *src; + dst[RGB.G] = (byte) ( ( src[srcMStride] + src[srcStride] + src[-1] ) / 3 ); + dst[RGB.B] = (byte) ( ( src[srcMStrideM1] + src[srcStrideM1] ) >> 1 ); + + + // allign to the next line + src += srcOffset + 1; + dst += dstOffset + 3; + } + + // --- process the first line + + // . G R + // . B G + // . . . + dst[RGB.R] = src[srcMStrideP1]; + dst[RGB.G] = (byte) ( ( src[srcMStride] + src[1] ) >> 1 ); + dst[RGB.B] = *src; + + src++; + dst += 3; + + for ( int x = 1; x < widthM1; x += 2 ) + { + // G R G + // B G B + // . . . + dst[RGB.R] = src[srcMStride]; + dst[RGB.G] = (byte) ( ( src[srcMStrideM1] + src[srcMStrideP1] + *src ) / 3 ); + dst[RGB.B] = (byte) ( ( src[-1] + src[1] ) >> 1 ); + + src++; + dst += 3; + + // R G R + // G B G + // . . . + dst[RGB.R] = (byte) ( ( src[srcMStrideM1] + src[srcMStrideP1] ) >> 1 ); + dst[RGB.G] = (byte) ( ( src[srcMStride] + src[-1] + src[1] ) / 3 ); + dst[RGB.B] = *src; + + src++; + dst += 3; + } + + // G R . + // B G . + // . . . + dst[RGB.R] = src[srcMStride]; + dst[RGB.G] = (byte) ( ( *src + src[srcMStrideM1] ) >> 1 ); + dst[RGB.B] = src[-1]; + } + #endregion + + #region BGGR pattern + private unsafe void ApplyBGGR( UnmanagedImage sourceData, UnmanagedImage destinationData ) + { + int width = sourceData.Width; + int height = sourceData.Height; + + int widthM1 = width - 1; + int heightM1 = height - 1; + + int srcStride = sourceData.Stride; + int dstStride = destinationData.Stride; + + int srcStrideP1 = srcStride + 1; + int srcStrideM1 = srcStride - 1; + int srcMStride = -srcStride; + int srcMStrideP1 = srcMStride + 1; + int srcMStrideM1 = srcMStride - 1; + + int srcOffset = srcStride - width; + int dstOffset = dstStride - width * 3; + + // do the job + byte * src = (byte*) sourceData.ImageData.ToPointer( ); + byte * dst = (byte*) destinationData.ImageData.ToPointer( ); + + // --- process the first line + + // . . . + // . B G + // . G R + dst[RGB.R] = src[srcStrideP1]; + dst[RGB.G] = (byte) ( ( src[1] + src[srcStride] ) >> 1 ); + dst[RGB.B] = *src; + + src++; + dst += 3; + + for ( int x = 1; x < widthM1; x += 2 ) + { + // . . . + // B G B + // G R G + dst[RGB.R] = src[srcStride]; + dst[RGB.G] = (byte) ( ( *src + src[srcStrideM1] + src[srcStrideP1] ) / 3 ); + dst[RGB.B] = (byte) ( ( src[-1] + src[1] ) >> 1 ); + + src++; + dst += 3; + + // . . . + // G B G + // R G R + dst[RGB.R] = (byte) ( ( src[srcStrideM1] + src[srcStrideP1] ) >> 1 ); + dst[RGB.G] = (byte) ( ( src[-1] + src[srcStride] + src[1] ) / 3 ); + dst[RGB.B] = *src; + + src++; + dst += 3; + } + + // . . . + // B G . + // G R . + dst[RGB.R] = src[srcStride]; + dst[RGB.G] = (byte) ( ( *src + src[srcStrideM1] ) >> 1 ); + dst[RGB.B] = src[-1]; + + + // allign to the next line + src += srcOffset + 1; + dst += dstOffset + 3; + + // --- process all lines except the first one and the last one + for ( int y = 1; y < heightM1; y += 2 ) + { + // . B G + // . G R + // . B G + dst[RGB.R] = src[1]; + dst[RGB.G] = (byte) ( ( src[srcMStrideP1] + src[srcStrideP1] + *src ) / 3 ); + dst[RGB.B] = (byte) ( ( src[srcMStride] + src[srcStride] ) >> 1 ); + + dst += dstStride; + src += srcStride; + + // ( y+1 pixel ) + // . G R + // . B G + // . G R + dst[RGB.R] = (byte) ( ( src[srcMStrideP1] + src[srcStrideP1] ) >> 1 ); + dst[RGB.G] = (byte) ( ( src[1] + src[srcMStride] + src[srcStride] ) / 3 ); + dst[RGB.B] = *src; + + dst -= dstStride; + src -= srcStride; + + src++; + dst += 3; + + for ( int x = 1; x < widthM1; x += 2 ) + { + // B G B + // G R G + // B G B + dst[RGB.R] = *src; + dst[RGB.G] = (byte) ( ( src[srcMStride] + src[srcStride] + src[-1] + src[1] ) >> 2 ); + dst[RGB.B] = (byte) ( ( src[srcMStrideM1] + src[srcMStrideP1] + src[srcStrideM1] + src[srcStrideP1] ) >> 2 ); + + // ( y+1 pixel ) + // G R G + // B G B + // G R G + dst += dstStride; + src += srcStride; + + dst[RGB.R] = (byte) ( ( src[srcMStride] + src[srcStride] ) >> 1 ); + dst[RGB.G] = (byte) ( ( *src + src[srcMStrideM1] + src[srcMStrideP1] + src[srcStrideM1] + src[srcStrideP1] ) / 5 ); + dst[RGB.B] = (byte) ( ( src[-1] + src[1] ) >> 1 ); + + // ( y+1 x+1 pixel ) + // R G R + // G B G + // R G R + dst += 3; + src++; + + dst[RGB.R] = (byte) ( ( src[srcMStrideM1] + src[srcMStrideP1] + src[srcStrideM1] + src[srcStrideP1] ) >> 2 ); + dst[RGB.G] = (byte) ( ( src[srcMStride] + src[srcStride] + src[-1] + src[1] ) >> 2 ); + dst[RGB.B] = *src; + + // ( x+1 pixel ) + // G B G + // R G R + // G B G + dst -= dstStride; + src -= srcStride; + + dst[RGB.R] = (byte) ( ( src[-1] + src[1] ) >> 1 ); + dst[RGB.G] = (byte) ( ( src[srcMStrideM1] + src[srcMStrideP1] + src[srcStrideM1] + src[srcStrideP1] + *src ) / 5 ); + dst[RGB.B] = (byte) ( ( src[srcMStride] + src[srcStride] ) >> 1 ); + + dst += 3; + src++; + } + + // B G . + // G R . + // B G . + dst[RGB.R] = *src; + dst[RGB.G] = (byte) ( ( src[srcMStride] + src[srcStride] + src[-1] ) / 3 ); + dst[RGB.B] = (byte) ( ( src[srcMStrideM1] + src[srcStrideM1] ) >> 1 ); + src += srcStride; + dst += dstStride; + + // ( y+1 pixel ) + // G R . + // B G . + // G R . + dst[RGB.R] = (byte) ( ( src[srcMStride] + src[srcStride] ) >> 1 ); + dst[RGB.G] = (byte) ( ( src[srcMStrideM1] + src[srcStrideM1] + *src ) / 3 ); + dst[RGB.B] = src[-1]; + + // align to the next line + src += srcOffset + 1; + dst += dstOffset + 3; + } + + // --- process the first line + + // . B G + // . G R + // . . . + dst[RGB.R] = src[1]; + dst[RGB.G] = (byte) ( ( src[srcMStrideP1] + *src ) >> 1 ); + dst[RGB.B] = src[srcMStride]; + + src++; + dst += 3; + + for ( int x = 1; x < widthM1; x += 2 ) + { + // B G B + // G R G + // . . . + dst[RGB.R] = *src; + dst[RGB.G] = (byte) ( ( src[-1] + src[1] + src[srcMStride] ) / 3 ); + dst[RGB.B] = (byte) ( ( src[srcMStrideM1] + src[srcMStrideP1] ) >> 1 ); + + src++; + dst += 3; + + // G B G + // R G R + // . . . + dst[RGB.R] = (byte) ( ( src[-1] + src[1] ) >> 1 ); + dst[RGB.G] = (byte) ( ( *src + src[srcMStrideM1] + src[srcMStrideP1] ) / 3 ); + dst[RGB.B] = src[srcMStride]; + + src++; + dst += 3; + } + + // B G . + // G R . + // . . . + dst[RGB.R] = *src; + dst[RGB.G] = (byte) ( ( src[srcMStride] + src[-1] ) >> 1 ); + dst[RGB.B] = src[srcMStrideM1]; + } + #endregion + } +} diff --git a/Sources/Imaging/Filters/Color Filters/BrightnessCorrection.cs b/Sources/Imaging/Filters/Color Filters/BrightnessCorrection.cs new file mode 100644 index 00000000..52cbde76 --- /dev/null +++ b/Sources/Imaging/Filters/Color Filters/BrightnessCorrection.cs @@ -0,0 +1,130 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2012 +// contacts@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + using AForge; + + /// + /// Brightness adjusting in RGB color space. + /// + /// + /// The filter operates in RGB color space and adjusts + /// pixels' brightness by increasing every pixel's RGB values by the specified + /// adjust value. The filter is based on + /// filter and simply sets all input ranges to (0, 255-) and + /// all output range to (, 255) in the case if the adjust value is positive. + /// If the adjust value is negative, then all input ranges are set to + /// (-, 255 ) and all output ranges are set to + /// ( 0, 255+). + /// + /// See documentation for more information about the base filter. + /// + /// The filter accepts 8 bpp grayscale and 24/32 bpp color images for processing. + /// + /// Sample usage: + /// + /// // create filter + /// BrightnessCorrection filter = new BrightnessCorrection( -50 ); + /// // apply the filter + /// filter.ApplyInPlace( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + /// + /// + public class BrightnessCorrection : BaseInPlacePartialFilter + { + private LevelsLinear baseFilter = new LevelsLinear( ); + private int adjustValue; + + /// + /// Brightness adjust value, [-255, 255]. + /// + /// + /// Default value is set to 10, which corresponds to increasing + /// RGB values of each pixel by 10. + /// + public int AdjustValue + { + get { return adjustValue; } + set + { + adjustValue = Math.Max( -255, Math.Min( 255, value ) ); + + if ( adjustValue > 0 ) + { + baseFilter.InRed = baseFilter.InGreen = baseFilter.InBlue = baseFilter.InGray = + new IntRange( 0, 255 - adjustValue ); + baseFilter.OutRed = baseFilter.OutGreen = baseFilter.OutBlue = baseFilter.OutGray = + new IntRange( adjustValue, 255 ); + } + else + { + baseFilter.InRed = baseFilter.InGreen = baseFilter.InBlue = baseFilter.InGray = + new IntRange( -adjustValue, 255 ); + baseFilter.OutRed = baseFilter.OutGreen = baseFilter.OutBlue = baseFilter.OutGray = + new IntRange( 0, 255 + adjustValue ); + } + } + } + + /// + /// Format translations dictionary. + /// + /// + /// See + /// documentation for additional information. + /// + public override Dictionary FormatTranslations + { + get { return baseFilter.FormatTranslations; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public BrightnessCorrection( ) + { + AdjustValue = 10; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Brightness adjust value. + /// + public BrightnessCorrection( int adjustValue ) + { + AdjustValue = adjustValue; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Image rectangle for processing by the filter. + /// + protected override unsafe void ProcessFilter( UnmanagedImage image, Rectangle rect ) + { + baseFilter.ApplyInPlace( image, rect ); + } + } +} diff --git a/Sources/Imaging/Filters/Color Filters/ChannelFiltering.cs b/Sources/Imaging/Filters/Color Filters/ChannelFiltering.cs new file mode 100644 index 00000000..cf6bfb07 --- /dev/null +++ b/Sources/Imaging/Filters/Color Filters/ChannelFiltering.cs @@ -0,0 +1,305 @@ +// AForge Image Processing Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2005-2008 +// andrew.kirillov@gmail.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + using AForge; + + /// + /// Channels filters. + /// + /// + /// The filter does color channels' filtering by clearing (filling with + /// specified values) values, which are inside/outside of the specified value's + /// range. The filter allows to fill certain ranges of RGB color channels with specified + /// value. + /// + /// The filter is similar to , but operates with not + /// entire pixels, but with their RGB values individually. This means that pixel itself may + /// not be filtered (will be kept), but one of its RGB values may be filtered if they are + /// inside/outside of specified range. + /// + /// The filter accepts 24 and 32 bpp color images for processing. + /// + /// Sample usage: + /// + /// // create filter + /// ChannelFiltering filter = new ChannelFiltering( ); + /// // set channels' ranges to keep + /// filter.Red = new IntRange( 0, 255 ); + /// filter.Green = new IntRange( 100, 255 ); + /// filter.Blue = new IntRange( 100, 255 ); + /// // apply the filter + /// filter.ApplyInPlace( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + /// + /// + public class ChannelFiltering : BaseInPlacePartialFilter + { + private IntRange red = new IntRange( 0, 255 ); + private IntRange green = new IntRange( 0, 255 ); + private IntRange blue = new IntRange( 0, 255 ); + + private byte fillR = 0; + private byte fillG = 0; + private byte fillB = 0; + + private bool redFillOutsideRange = true; + private bool greenFillOutsideRange = true; + private bool blueFillOutsideRange = true; + + private byte[] mapRed = new byte[256]; + private byte[] mapGreen = new byte[256]; + private byte[] mapBlue = new byte[256]; + + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + #region Public properties + + /// + /// Red channel's range. + /// + public IntRange Red + { + get { return red; } + set + { + red = value; + CalculateMap( red, fillR, redFillOutsideRange, mapRed ); + } + } + + /// + /// Red fill value. + /// + public byte FillRed + { + get { return fillR; } + set + { + fillR = value; + CalculateMap( red, fillR, redFillOutsideRange, mapRed ); + } + } + + /// + /// Green channel's range. + /// + public IntRange Green + { + get { return green; } + set + { + green = value; + CalculateMap( green, fillG, greenFillOutsideRange, mapGreen ); + } + } + + /// + /// Green fill value. + /// + public byte FillGreen + { + get { return fillG; } + set + { + fillG = value; + CalculateMap( green, fillG, greenFillOutsideRange, mapGreen ); + } + } + + /// + /// Blue channel's range. + /// + public IntRange Blue + { + get { return blue; } + set + { + blue = value; + CalculateMap( blue, fillB, blueFillOutsideRange, mapBlue ); + } + } + + /// + /// Blue fill value. + /// + public byte FillBlue + { + get { return fillB; } + set + { + fillB = value; + CalculateMap( blue, fillB, blueFillOutsideRange, mapBlue ); + } + } + + /// + /// Determines, if red channel should be filled inside or outside filtering range. + /// + /// + /// Default value is set to . + /// + public bool RedFillOutsideRange + { + get { return redFillOutsideRange; } + set + { + redFillOutsideRange = value; + CalculateMap( red, fillR, redFillOutsideRange, mapRed ); + } + } + + /// + /// Determines, if green channel should be filled inside or outside filtering range. + /// + /// + /// Default value is set to . + /// + public bool GreenFillOutsideRange + { + get { return greenFillOutsideRange; } + set + { + greenFillOutsideRange = value; + CalculateMap( green, fillG, greenFillOutsideRange, mapGreen ); + } + } + + /// + /// Determines, if blue channel should be filled inside or outside filtering range. + /// + /// + /// Default value is set to . + /// + public bool BlueFillOutsideRange + { + get { return blueFillOutsideRange; } + set + { + blueFillOutsideRange = value; + CalculateMap( blue, fillB, blueFillOutsideRange, mapBlue ); + } + } + + #endregion + + + /// + /// Initializes a new instance of the class. + /// + /// + public ChannelFiltering( ) + : this( new IntRange( 0, 255 ), new IntRange( 0, 255 ), new IntRange( 0, 255 ) ) + { + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Red channel's filtering range. + /// Green channel's filtering range. + /// Blue channel's filtering range. + /// + public ChannelFiltering( IntRange red, IntRange green, IntRange blue ) + { + Red = red; + Green = green; + Blue = blue; + + formatTranslations[PixelFormat.Format24bppRgb] = PixelFormat.Format24bppRgb; + formatTranslations[PixelFormat.Format32bppRgb] = PixelFormat.Format32bppRgb; + formatTranslations[PixelFormat.Format32bppArgb] = PixelFormat.Format32bppArgb; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Image rectangle for processing by the filter. + /// + protected override unsafe void ProcessFilter( UnmanagedImage image, Rectangle rect ) + { + // get pixel size + int pixelSize = ( image.PixelFormat == PixelFormat.Format24bppRgb ) ? 3 : 4; + + int startX = rect.Left; + int startY = rect.Top; + int stopX = startX + rect.Width; + int stopY = startY + rect.Height; + int offset = image.Stride - rect.Width * pixelSize; + + // do the job + byte* ptr = (byte*) image.ImageData.ToPointer( ); + + // allign pointer to the first pixel to process + ptr += ( startY * image.Stride + startX * pixelSize ); + + // for each row + for ( int y = startY; y < stopY; y++ ) + { + // for each pixel + for ( int x = startX; x < stopX; x++, ptr += pixelSize ) + { + // red + ptr[RGB.R] = mapRed[ptr[RGB.R]]; + // green + ptr[RGB.G] = mapGreen[ptr[RGB.G]]; + // blue + ptr[RGB.B] = mapBlue[ptr[RGB.B]]; + } + ptr += offset; + } + } + + /// + /// Calculate filtering map. + /// + /// + /// Filtering range. + /// Fillter value. + /// Fill outside or inside the range. + /// Filtering map. + /// + private void CalculateMap( IntRange range, byte fill, bool fillOutsideRange, byte[] map ) + { + for ( int i = 0; i < 256; i++ ) + { + if ( ( i >= range.Min ) && ( i <= range.Max ) ) + { + map[i] = ( fillOutsideRange ) ? (byte) i : fill; + } + else + { + map[i] = ( fillOutsideRange ) ? fill : (byte) i; + } + } + } + } +} diff --git a/Sources/Imaging/Filters/Color Filters/ColorFiltering.cs b/Sources/Imaging/Filters/Color Filters/ColorFiltering.cs new file mode 100644 index 00000000..38a01fbf --- /dev/null +++ b/Sources/Imaging/Filters/Color Filters/ColorFiltering.cs @@ -0,0 +1,220 @@ +// AForge Image Processing Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2005-2008 +// andrew.kirillov@gmail.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + using AForge; + + /// + /// Color filtering. + /// + /// + /// The filter filters pixels inside/outside of specified RGB color range - + /// it keeps pixels with colors inside/outside of specified range and fills the rest with + /// specified color. + /// + /// The filter accepts 24 and 32 bpp color images for processing. + /// + /// Sample usage: + /// + /// // create filter + /// ColorFiltering filter = new ColorFiltering( ); + /// // set color ranges to keep + /// filter.Red = new IntRange( 100, 255 ); + /// filter.Green = new IntRange( 0, 75 ); + /// filter.Blue = new IntRange( 0, 75 ); + /// // apply the filter + /// filter.ApplyInPlace( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + /// + /// + /// + /// + /// + public class ColorFiltering : BaseInPlacePartialFilter + { + private IntRange red = new IntRange( 0, 255 ); + private IntRange green = new IntRange( 0, 255 ); + private IntRange blue = new IntRange( 0, 255 ); + + private byte fillR = 0; + private byte fillG = 0; + private byte fillB = 0; + private bool fillOutsideRange = true; + + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + #region Public properties + + /// + /// Range of red color component. + /// + public IntRange Red + { + get { return red; } + set { red = value; } + } + + /// + /// Range of green color component. + /// + public IntRange Green + { + get { return green; } + set { green = value; } + } + + /// + /// Range of blue color component. + /// + public IntRange Blue + { + get { return blue; } + set { blue = value; } + } + + /// + /// Fill color used to fill filtered pixels. + /// + public RGB FillColor + { + get { return new RGB( fillR, fillG, fillB ); } + set + { + fillR = value.Red; + fillG = value.Green; + fillB = value.Blue; + } + } + + /// + /// Determines, if pixels should be filled inside or outside of specified + /// color ranges. + /// + /// + /// Default value is set to , which means + /// the filter removes colors outside of the specified range. + /// + public bool FillOutsideRange + { + get { return fillOutsideRange; } + set { fillOutsideRange = value; } + } + + #endregion + + /// + /// Initializes a new instance of the class. + /// + /// + public ColorFiltering( ) + { + formatTranslations[PixelFormat.Format24bppRgb] = PixelFormat.Format24bppRgb; + formatTranslations[PixelFormat.Format32bppRgb] = PixelFormat.Format32bppRgb; + formatTranslations[PixelFormat.Format32bppArgb] = PixelFormat.Format32bppArgb; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Red components filtering range. + /// Green components filtering range. + /// Blue components filtering range. + /// + public ColorFiltering( IntRange red, IntRange green, IntRange blue ) : + this( ) + { + this.red = red; + this.green = green; + this.blue = blue; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Image rectangle for processing by the filter. + /// + protected override unsafe void ProcessFilter( UnmanagedImage image, Rectangle rect ) + { + // get pixel size + int pixelSize = ( image.PixelFormat == PixelFormat.Format24bppRgb ) ? 3 : 4; + + int startX = rect.Left; + int startY = rect.Top; + int stopX = startX + rect.Width; + int stopY = startY + rect.Height; + int offset = image.Stride - rect.Width * pixelSize; + + // do the job + byte* ptr = (byte*) image.ImageData.ToPointer( ); + byte r, g, b; + + // allign pointer to the first pixel to process + ptr += ( startY * image.Stride + startX * pixelSize ); + + // for each row + for ( int y = startY; y < stopY; y++ ) + { + // for each pixel + for ( int x = startX; x < stopX; x++, ptr += pixelSize ) + { + r = ptr[RGB.R]; + g = ptr[RGB.G]; + b = ptr[RGB.B]; + + // check pixel + if ( + ( r >= red.Min ) && ( r <= red.Max ) && + ( g >= green.Min ) && ( g <= green.Max ) && + ( b >= blue.Min ) && ( b <= blue.Max ) + ) + { + if ( !fillOutsideRange ) + { + ptr[RGB.R] = fillR; + ptr[RGB.G] = fillG; + ptr[RGB.B] = fillB; + } + } + else + { + if ( fillOutsideRange ) + { + ptr[RGB.R] = fillR; + ptr[RGB.G] = fillG; + ptr[RGB.B] = fillB; + } + } + } + ptr += offset; + } + } + } +} diff --git a/Sources/Imaging/Filters/Color Filters/ColorRemapping.cs b/Sources/Imaging/Filters/Color Filters/ColorRemapping.cs new file mode 100644 index 00000000..2a2db513 --- /dev/null +++ b/Sources/Imaging/Filters/Color Filters/ColorRemapping.cs @@ -0,0 +1,267 @@ +// AForge Image Processing Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2005-2009 +// andrew.kirillov@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + using AForge; + + /// + /// Color remapping. + /// + /// + /// The filter allows to remap colors of the image. Unlike filter + /// the filter allow to do non-linear remapping. For each pixel of specified image the filter changes + /// its values (value of each color plane) to values, which are stored in remapping arrays by corresponding + /// indexes. For example, if pixel's RGB value equals to (32, 96, 128), the filter will change it to + /// ([32], [96], [128]). + /// + /// The filter accepts 8 bpp grayscale and 24/32 bpp color images for processing. + /// + /// Sample usage: + /// + /// // create map + /// byte[] map = new byte[256]; + /// for ( int i = 0; i < 256; i++ ) + /// { + /// map[i] = (byte) Math.Min( 255, Math.Pow( 2, (double) i / 32 ) ); + /// } + /// // create filter + /// ColorRemapping filter = new ColorRemapping( map, map, map ); + /// // apply the filter + /// filter.ApplyInPlace( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + public class ColorRemapping : BaseInPlacePartialFilter + { + // color maps + private byte[] redMap; + private byte[] greenMap; + private byte[] blueMap; + private byte[] grayMap; + + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Remapping array for red color plane. + /// + /// + /// The remapping array should contain 256 remapping values. The remapping occurs + /// by changing pixel's red value r to [r]. + /// + /// A map should be array with 256 value. + /// + public byte[] RedMap + { + get { return redMap; } + set + { + // check the map + if ( ( value == null ) || ( value.Length != 256 ) ) + throw new ArgumentException( "A map should be array with 256 value." ); + + redMap = value; + } + } + + /// + /// Remapping array for green color plane. + /// + /// + /// The remapping array should contain 256 remapping values. The remapping occurs + /// by changing pixel's green value g to [g]. + /// + /// A map should be array with 256 value. + /// + public byte[] GreenMap + { + get { return greenMap; } + set + { + // check the map + if ( ( value == null ) || ( value.Length != 256 ) ) + throw new ArgumentException( "A map should be array with 256 value." ); + + greenMap = value; + } + } + + /// + /// Remapping array for blue color plane. + /// + /// + /// The remapping array should contain 256 remapping values. The remapping occurs + /// by changing pixel's blue value b to [b]. + /// + /// A map should be array with 256 value. + /// + public byte[] BlueMap + { + get { return blueMap; } + set + { + // check the map + if ( ( value == null ) || ( value.Length != 256 ) ) + throw new ArgumentException( "A map should be array with 256 value." ); + + blueMap = value; + } + } + + /// + /// Remapping array for gray color. + /// + /// + /// The remapping array should contain 256 remapping values. The remapping occurs + /// by changing pixel's value g to [g]. + /// + /// The gray map is for grayscale images only. + /// + /// A map should be array with 256 value. + /// + public byte[] GrayMap + { + get { return grayMap; } + set + { + // check the map + if ( ( value == null ) || ( value.Length != 256 ) ) + throw new ArgumentException( "A map should be array with 256 value." ); + + grayMap = value; + } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Initializes the filter without any remapping. All + /// pixel values are mapped to the same values. + /// + public ColorRemapping( ) + { + redMap = new byte[256]; + greenMap = new byte[256]; + blueMap = new byte[256]; + grayMap = new byte[256]; + + // fill the maps + for ( int i = 0; i < 256; i++ ) + { + redMap[i] = greenMap[i] = blueMap[i] = grayMap[i] = (byte) i; + } + + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format8bppIndexed; + formatTranslations[PixelFormat.Format24bppRgb] = PixelFormat.Format24bppRgb; + formatTranslations[PixelFormat.Format32bppRgb] = PixelFormat.Format32bppRgb; + formatTranslations[PixelFormat.Format32bppArgb] = PixelFormat.Format32bppArgb; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Red map. + /// Green map. + /// Blue map. + /// + public ColorRemapping( byte[] redMap, byte[] greenMap, byte[] blueMap ) : this( ) + { + RedMap = redMap; + GreenMap = greenMap; + BlueMap = blueMap; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Gray map. + /// + /// This constructor is supposed for grayscale images. + /// + public ColorRemapping( byte[] grayMap ) : this( ) + { + GrayMap = grayMap; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Image rectangle for processing by the filter. + /// + protected override unsafe void ProcessFilter( UnmanagedImage image, Rectangle rect ) + { + int pixelSize = Image.GetPixelFormatSize( image.PixelFormat ) / 8; + + // processing start and stop X,Y positions + int startX = rect.Left; + int startY = rect.Top; + int stopX = startX + rect.Width; + int stopY = startY + rect.Height; + int offset = image.Stride - rect.Width * pixelSize; + + // do the job + byte* ptr = (byte*) image.ImageData.ToPointer( ); + + // allign pointer to the first pixel to process + ptr += ( startY * image.Stride + startX * pixelSize ); + + if ( image.PixelFormat == PixelFormat.Format8bppIndexed ) + { + // grayscale image + for ( int y = startY; y < stopY; y++ ) + { + for ( int x = startX; x < stopX; x++, ptr++ ) + { + // gray + *ptr = grayMap[*ptr]; + } + ptr += offset; + } + } + else + { + // RGB image + for ( int y = startY; y < stopY; y++ ) + { + for ( int x = startX; x < stopX; x++, ptr += pixelSize ) + { + // red + ptr[RGB.R] = redMap[ptr[RGB.R]]; + // green + ptr[RGB.G] = greenMap[ptr[RGB.G]]; + // blue + ptr[RGB.B] = blueMap[ptr[RGB.B]]; + } + ptr += offset; + } + } + } + } +} diff --git a/Sources/Imaging/Filters/Color Filters/ContrastCorrection.cs b/Sources/Imaging/Filters/Color Filters/ContrastCorrection.cs new file mode 100644 index 00000000..69853bb1 --- /dev/null +++ b/Sources/Imaging/Filters/Color Filters/ContrastCorrection.cs @@ -0,0 +1,137 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2012 +// contacts@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + using AForge; + + /// + /// Contrast adjusting in RGB color space. + /// + /// + /// The filter operates in RGB color space and adjusts + /// pixels' contrast value by increasing RGB values of bright pixel and decreasing + /// RGB values of dark pixels (or vise versa if contrast needs to be decreased). + /// The filter is based on + /// filter and simply sets all input ranges to (, 255-) and + /// all output range to (0, 255) in the case if the factor value is positive. + /// If the factor value is negative, then all input ranges are set to + /// (0, 255 ) and all output ranges are set to + /// (-, 255_). + /// + /// See documentation forr more information about the base filter. + /// + /// The filter accepts 8 bpp grayscale and 24/32 bpp color images for processing. + /// + /// Sample usage: + /// + /// // create filter + /// ContrastCorrection filter = new ContrastCorrection( 15 ); + /// // apply the filter + /// filter.ApplyInPlace( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + /// + /// + public class ContrastCorrection : BaseInPlacePartialFilter + { + private LevelsLinear baseFilter = new LevelsLinear( ); + private int factor; + + /// + /// Contrast adjusting factor, [-127, 127]. + /// + /// + /// Factor which is used to adjust contrast. Factor values greater than + /// 0 increase contrast making light areas lighter and dark areas darker. Factor values + /// less than 0 decrease contrast - decreasing variety of contrast. + /// + /// Default value is set to 10. + /// + public int Factor + { + get { return factor; } + set + { + factor = Math.Max( -127, Math.Min( 127, value ) ); + + + if ( factor > 0 ) + { + baseFilter.InRed = baseFilter.InGreen = baseFilter.InBlue = baseFilter.InGray = + new IntRange( factor, 255 - factor ); + + baseFilter.OutRed = baseFilter.OutGreen = baseFilter.OutBlue = baseFilter.OutGray = + new IntRange( 0, 255 ); + } + else + { + baseFilter.OutRed = baseFilter.OutGreen = baseFilter.OutBlue = baseFilter.OutGray = + new IntRange( -factor, 255 + factor ); + + baseFilter.InRed = baseFilter.InGreen = baseFilter.InBlue = baseFilter.InGray = + new IntRange( 0, 255 ); + } + } + } + + /// + /// Format translations dictionary. + /// + /// + /// See + /// documentation for additional information. + /// + public override Dictionary FormatTranslations + { + get { return baseFilter.FormatTranslations; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public ContrastCorrection( ) + { + Factor = 10; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Contrast adjusting factor. + /// + public ContrastCorrection( int factor ) + { + Factor = factor; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Image rectangle for processing by the filter. + /// + protected override unsafe void ProcessFilter( UnmanagedImage image, Rectangle rect ) + { + baseFilter.ApplyInPlace( image, rect ); + } + } +} diff --git a/Sources/Imaging/Filters/Color Filters/ContrastStretch.cs b/Sources/Imaging/Filters/Color Filters/ContrastStretch.cs new file mode 100644 index 00000000..db1512a8 --- /dev/null +++ b/Sources/Imaging/Filters/Color Filters/ContrastStretch.cs @@ -0,0 +1,171 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2010 +// contacts@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Contrast stretching filter. + /// + /// + /// Contrast stretching (or as it is often called normalization) is a simple image enhancement + /// technique that attempts to improve the contrast in an image by 'stretching' the range of intensity values + /// it contains to span a desired range of values, e.g. the full range of pixel values that the image type + /// concerned allows. It differs from the more sophisticated histogram equalization + /// in that it can only apply a linear scaling function to the image pixel values. + /// + /// The result of this filter may be achieved by using class, which allows to + /// get pixels' intensities histogram, and filter, which does linear correction + /// of pixel's intensities. + /// + /// The filter accepts 8 bpp grayscale and 24 bpp color images. + /// + /// Sample usage: + /// + /// // create filter + /// ContrastStretch filter = new ContrastStretch( ); + /// // process image + /// filter.ApplyInPlace( sourceImage ); + /// + /// + /// Source image: + /// + /// Result image: + /// + /// + /// + public class ContrastStretch : BaseInPlacePartialFilter + { + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Initializes a new instance of the class. + /// + public ContrastStretch( ) + { + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format8bppIndexed; + formatTranslations[PixelFormat.Format24bppRgb] = PixelFormat.Format24bppRgb; + formatTranslations[PixelFormat.Format32bppRgb] = PixelFormat.Format32bppRgb; + formatTranslations[PixelFormat.Format32bppArgb] = PixelFormat.Format32bppArgb; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Image rectangle for processing by the filter. + /// + protected override unsafe void ProcessFilter( UnmanagedImage image, Rectangle rect ) + { + int pixelSize = Image.GetPixelFormatSize( image.PixelFormat ) / 8; + + int startX = rect.Left; + int startY = rect.Top; + int stopX = startX + rect.Width; + int stopY = startY + rect.Height; + int stride = image.Stride; + int offset = stride - rect.Width * pixelSize; + + // levels linear correction filter is going to be used on STEP 2 + LevelsLinear levelsLinear = new LevelsLinear( ); + + // STEP 1 - search for min and max pixel values + byte* ptr = (byte*) image.ImageData.ToPointer( ); + + // check image format + if ( image.PixelFormat == PixelFormat.Format8bppIndexed ) + { + // allign pointer to the first pixel to process + ptr += ( startY * stride + startX ); + + byte min = 255; + byte max = 0; + + for ( int y = startY; y < stopY; y++ ) + { + for ( int x = startX; x < stopX; x++, ptr++ ) + { + byte value = *ptr; + + if ( value < min ) + min = value; + + if ( value > max ) + max = value; + } + ptr += offset; + } + + levelsLinear.InGray = new IntRange( min, max ); + } + else + { + // allign pointer to the first pixel to process + ptr += ( startY * stride + startX * pixelSize ); + + byte minR = 255, minG = 255, minB = 255; + byte maxR = 0, maxG = 0, maxB = 0; + + for ( int y = startY; y < stopY; y++ ) + { + for ( int x = startX; x < stopX; x++, ptr += pixelSize ) + { + // red + byte value = ptr[RGB.R]; + + if ( value < minR ) + minR = value; + + if ( value > maxR ) + maxR = value; + + // green + value = ptr[RGB.G]; + + if ( value < minG ) + minG = value; + + if ( value > maxG ) + maxG = value; + + // blue + value = ptr[RGB.B]; + + if ( value < minB ) + minB = value; + + if ( value > maxB ) + maxB = value; + } + ptr += offset; + } + + levelsLinear.InRed = new IntRange( minR, maxR ); + levelsLinear.InGreen = new IntRange( minG, maxG ); + levelsLinear.InBlue = new IntRange( minB, maxB ); + } + + // STEP 2 - run levels linear correction + levelsLinear.ApplyInPlace( image, rect ); + } + } +} diff --git a/Sources/Imaging/Filters/Color Filters/EuclideanColorFiltering.cs b/Sources/Imaging/Filters/Color Filters/EuclideanColorFiltering.cs new file mode 100644 index 00000000..e7a728d3 --- /dev/null +++ b/Sources/Imaging/Filters/Color Filters/EuclideanColorFiltering.cs @@ -0,0 +1,211 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2005-2010 +// andrew.kirillov@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Euclidean color filtering. + /// + /// + /// The filter filters pixels, which color is inside/outside + /// of RGB sphere with specified center and radius - it keeps pixels with + /// colors inside/outside of the specified sphere and fills the rest with + /// specified color. + /// + /// The filter accepts 24 and 32 bpp color images for processing. + /// + /// Sample usage: + /// + /// // create filter + /// EuclideanColorFiltering filter = new EuclideanColorFiltering( ); + /// // set center colol and radius + /// filter.CenterColor = new RGB( 215, 30, 30 ); + /// filter.Radius = 100; + /// // apply the filter + /// filter.ApplyInPlace( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + /// + /// + public class EuclideanColorFiltering : BaseInPlacePartialFilter + { + private short radius = 100; + private RGB center = new RGB( 255, 255, 255 ); + private RGB fill = new RGB( 0, 0, 0 ); + private bool fillOutside = true; + + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// RGB sphere's radius, [0, 450]. + /// + /// + /// Default value is 100. + /// + public short Radius + { + get { return radius; } + set + { + radius = System.Math.Max( (short) 0, System.Math.Min( (short) 450, value ) ); + } + } + + /// + /// RGB sphere's center. + /// + /// + /// Default value is (255, 255, 255) - white color. + /// + public RGB CenterColor + { + get { return center; } + set { center = value; } + } + + /// + /// Fill color used to fill filtered pixels. + /// + public RGB FillColor + { + get { return fill; } + set { fill = value; } + } + + /// + /// Determines, if pixels should be filled inside or outside specified + /// RGB sphere. + /// + /// + /// Default value is set to , which means + /// the filter removes colors outside of the specified range. + /// + public bool FillOutside + { + get { return fillOutside; } + set { fillOutside = value; } + } + + + /// + /// Initializes a new instance of the class. + /// + /// + public EuclideanColorFiltering() + { + formatTranslations[PixelFormat.Format24bppRgb] = PixelFormat.Format24bppRgb; + formatTranslations[PixelFormat.Format32bppRgb] = PixelFormat.Format32bppRgb; + formatTranslations[PixelFormat.Format32bppArgb] = PixelFormat.Format32bppArgb; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// RGB sphere's center. + /// RGB sphere's radius. + /// + public EuclideanColorFiltering( RGB center, short radius ) : + this( ) + { + this.center = center; + this.radius = radius; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Image rectangle for processing by the filter. + /// + protected override unsafe void ProcessFilter( UnmanagedImage image, Rectangle rect ) + { + // get pixel size + int pixelSize = ( image.PixelFormat == PixelFormat.Format24bppRgb ) ? 3 : 4; + + int startX = rect.Left; + int startY = rect.Top; + int stopX = startX + rect.Width; + int stopY = startY + rect.Height; + int offset = image.Stride - rect.Width * pixelSize; + int radius2 = radius * radius; + + int dr, dg, db; + // sphere's center + int cR = center.Red; + int cG = center.Green; + int cB = center.Blue; + // fill color + byte fR = fill.Red; + byte fG = fill.Green; + byte fB = fill.Blue; + + // do the job + byte* ptr = (byte*) image.ImageData.ToPointer( ); + + // allign pointer to the first pixel to process + ptr += ( startY * image.Stride + startX * pixelSize ); + + // for each row + for ( int y = startY; y < stopY; y++ ) + { + // for each pixel + for ( int x = startX; x < stopX; x++, ptr += pixelSize ) + { + dr = cR - ptr[RGB.R]; + dg = cG - ptr[RGB.G]; + db = cB - ptr[RGB.B]; + + // calculate the distance + if ( dr * dr + dg * dg + db * db <= radius2 ) + { + // inside sphere + if ( !fillOutside ) + { + ptr[RGB.R] = fR; + ptr[RGB.G] = fG; + ptr[RGB.B] = fB; + } + } + else + { + // outside sphere + if ( fillOutside ) + { + ptr[RGB.R] = fR; + ptr[RGB.G] = fG; + ptr[RGB.B] = fB; + } + } + } + ptr += offset; + } + } + } +} diff --git a/Sources/Imaging/Filters/Color Filters/ExtractChannel.cs b/Sources/Imaging/Filters/Color Filters/ExtractChannel.cs new file mode 100644 index 00000000..e823b028 --- /dev/null +++ b/Sources/Imaging/Filters/Color Filters/ExtractChannel.cs @@ -0,0 +1,181 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Extract RGB channel from image. + /// + /// + /// Extracts specified channel of color image and returns + /// it as grayscale image. + /// + /// The filter accepts 24, 32, 48 and 64 bpp color images and produces + /// 8 (if source is 24 or 32 bpp image) or 16 (if source is 48 or 64 bpp image) + /// bpp grayscale image. + /// + /// Sample usage: + /// + /// // create filter + /// ExtractChannel filter = new ExtractChannel( RGB.G ); + /// // apply the filter + /// Bitmap channelImage = filter.Apply( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + /// + /// + /// + public class ExtractChannel : BaseFilter + { + private short channel = RGB.R; + + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// ARGB channel to extract. + /// + /// + /// Default value is set to . + /// + /// Invalid channel is specified. + /// + public short Channel + { + get { return channel; } + set + { + if ( + ( value != RGB.R ) && ( value != RGB.G ) && + ( value != RGB.B ) && ( value != RGB.A ) + ) + { + throw new ArgumentException( "Invalid channel is specified." ); + } + channel = value; + } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public ExtractChannel( ) + { + // initialize format translation dictionary + formatTranslations[PixelFormat.Format24bppRgb] = PixelFormat.Format8bppIndexed; + formatTranslations[PixelFormat.Format32bppRgb] = PixelFormat.Format8bppIndexed; + formatTranslations[PixelFormat.Format32bppArgb] = PixelFormat.Format8bppIndexed; + formatTranslations[PixelFormat.Format48bppRgb] = PixelFormat.Format16bppGrayScale; + formatTranslations[PixelFormat.Format64bppArgb] = PixelFormat.Format16bppGrayScale; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// ARGB channel to extract. + /// + public ExtractChannel( short channel ) : this( ) + { + this.Channel = channel; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Destination image data. + /// + /// Can not extract alpha channel from none ARGB image. The + /// exception is throw, when alpha channel is requested from RGB image. + /// + protected override unsafe void ProcessFilter( UnmanagedImage sourceData, UnmanagedImage destinationData ) + { + // get width and height + int width = sourceData.Width; + int height = sourceData.Height; + + int pixelSize = Image.GetPixelFormatSize( sourceData.PixelFormat ) / 8; + + if ( ( channel == RGB.A ) && ( pixelSize != 4 ) && ( pixelSize != 8 ) ) + { + throw new InvalidImagePropertiesException( "Can not extract alpha channel from none ARGB image." ); + } + + if ( pixelSize <= 4 ) + { + int srcOffset = sourceData.Stride - width * pixelSize; + int dstOffset = destinationData.Stride - width; + + // do the job + byte * src = (byte*) sourceData.ImageData.ToPointer( ); + byte * dst = (byte*) destinationData.ImageData.ToPointer( ); + + // allign source pointer to the required channel + src += channel; + + for ( int y = 0; y < height; y++ ) + { + for ( int x = 0; x < width; x++, src += pixelSize, dst++ ) + { + *dst = *src; + } + src += srcOffset; + dst += dstOffset; + } + } + else + { + pixelSize /= 2; + + byte* srcBase = (byte*) sourceData.ImageData.ToPointer( ); + byte* dstBase = (byte*) destinationData.ImageData.ToPointer( ); + int srcStride = sourceData.Stride; + int dstStride = destinationData.Stride; + + // for each line + for ( int y = 0; y < height; y++ ) + { + ushort* src = (ushort*) ( srcBase + y * srcStride ); + ushort* dst = (ushort*) ( dstBase + y * dstStride ); + + // allign source pointer to the required channel + src += channel; + + // for each pixel + for ( int x = 0; x < width; x++, src += pixelSize, dst++ ) + { + *dst = *src; + } + } + + } + } + } +} diff --git a/Sources/Imaging/Filters/Color Filters/GammaCorrection.cs b/Sources/Imaging/Filters/Color Filters/GammaCorrection.cs new file mode 100644 index 00000000..1e2d55e9 --- /dev/null +++ b/Sources/Imaging/Filters/Color Filters/GammaCorrection.cs @@ -0,0 +1,137 @@ +// AForge Image Processing Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2005-2009 +// andrew.kirillov@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Gamma correction filter. + /// + /// + /// The filter performs gamma correction + /// of specified image in RGB color space. Each pixels' value is converted using the Vout=Ving + /// equation, where g is gamma value. + /// + /// The filter accepts 8 bpp grayscale and 24 bpp color images for processing. + /// + /// Sample usage: + /// + /// // create filter + /// GammaCorrection filter = new GammaCorrection( 0.5 ); + /// // apply the filter + /// filter.ApplyInPlace( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + public class GammaCorrection : BaseInPlacePartialFilter + { + private double gamma; + private byte[] table = new byte[256]; + + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Gamma value, [0.1, 5.0]. + /// + /// + /// Default value is set to 2.2. + /// + public double Gamma + { + get { return gamma; } + set + { + // get gamma value + gamma = Math.Max( 0.1, Math.Min( 5.0, value ) ); + + // calculate tranformation table + double g = 1 / gamma; + for ( int i = 0; i < 256; i++ ) + { + table[i] = (byte) Math.Min( 255, (int) ( Math.Pow( i / 255.0, g ) * 255 + 0.5 ) ); + } + } + } + + + /// + /// Initializes a new instance of the class. + /// + public GammaCorrection( ) : this ( 2.2 ) + { + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Gamma value. + /// + public GammaCorrection( double gamma ) + { + Gamma = gamma; + + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format8bppIndexed; + formatTranslations[PixelFormat.Format24bppRgb] = PixelFormat.Format24bppRgb; + } + + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Image rectangle for processing by the filter. + /// + protected override unsafe void ProcessFilter( UnmanagedImage image, Rectangle rect ) + { + int pixelSize = ( image.PixelFormat == PixelFormat.Format8bppIndexed ) ? 1 : 3; + + // processing start and stop X,Y positions + int startX = rect.Left * pixelSize; + int startY = rect.Top; + int stopX = startX + rect.Width * pixelSize; + int stopY = startY + rect.Height; + int offset = image.Stride - rect.Width * pixelSize; + + // do the job + byte* ptr = (byte*) image.ImageData.ToPointer( ); + + // allign pointer to the first pixel to process + ptr += ( startY * image.Stride + startX ); + + // gamma correction + for ( int y = startY; y < stopY; y++ ) + { + for ( int x = startX; x < stopX; x++, ptr++ ) + { + // process each pixel + *ptr = table[*ptr]; + } + ptr += offset; + } + } + } +} diff --git a/Sources/Imaging/Filters/Color Filters/Grayscale.cs b/Sources/Imaging/Filters/Color Filters/Grayscale.cs new file mode 100644 index 00000000..9c046f99 --- /dev/null +++ b/Sources/Imaging/Filters/Color Filters/Grayscale.cs @@ -0,0 +1,238 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Base class for image grayscaling. + /// + /// + /// This class is the base class for image grayscaling. Other + /// classes should inherit from this class and specify RGB + /// coefficients used for color image conversion to grayscale. + /// + /// The filter accepts 24, 32, 48 and 64 bpp color images and produces + /// 8 (if source is 24 or 32 bpp image) or 16 (if source is 48 or 64 bpp image) + /// bpp grayscale image. + /// + /// Sample usage: + /// + /// // create grayscale filter (BT709) + /// Grayscale filter = new Grayscale( 0.2125, 0.7154, 0.0721 ); + /// // apply the filter + /// Bitmap grayImage = filter.Apply( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + /// + /// + /// + /// + public class Grayscale : BaseFilter + { + /// + /// Set of predefined common grayscaling algorithms, which have aldready initialized + /// grayscaling coefficients. + /// + public static class CommonAlgorithms + { + /// + /// Grayscale image using BT709 algorithm. + /// + /// + /// The instance uses BT709 algorithm to convert color image + /// to grayscale. The conversion coefficients are: + /// + /// Red: 0.2125; + /// Green: 0.7154; + /// Blue: 0.0721. + /// + /// + /// Sample usage: + /// + /// // apply the filter + /// Bitmap grayImage = Grayscale.CommonAlgorithms.BT709.Apply( image ); + /// + /// + /// + public static readonly Grayscale BT709 = new Grayscale( 0.2125, 0.7154, 0.0721 ); + + /// + /// Grayscale image using R-Y algorithm. + /// + /// + /// The instance uses R-Y algorithm to convert color image + /// to grayscale. The conversion coefficients are: + /// + /// Red: 0.5; + /// Green: 0.419; + /// Blue: 0.081. + /// + /// + /// Sample usage: + /// + /// // apply the filter + /// Bitmap grayImage = Grayscale.CommonAlgorithms.RMY.Apply( image ); + /// + /// + /// + public static readonly Grayscale RMY = new Grayscale( 0.5000, 0.4190, 0.0810 ); + + /// + /// Grayscale image using Y algorithm. + /// + /// + /// The instance uses Y algorithm to convert color image + /// to grayscale. The conversion coefficients are: + /// + /// Red: 0.299; + /// Green: 0.587; + /// Blue: 0.114. + /// + /// + /// Sample usage: + /// + /// // apply the filter + /// Bitmap grayImage = Grayscale.CommonAlgorithms.Y.Apply( image ); + /// + /// + /// + public static readonly Grayscale Y = new Grayscale( 0.2990, 0.5870, 0.1140 ); + } + + // RGB coefficients for grayscale transformation + + /// + /// Portion of red channel's value to use during conversion from RGB to grayscale. + /// + public readonly double RedCoefficient; + /// + /// Portion of green channel's value to use during conversion from RGB to grayscale. + /// + public readonly double GreenCoefficient; + /// + /// Portion of blue channel's value to use during conversion from RGB to grayscale. + /// + public readonly double BlueCoefficient; + + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Red coefficient. + /// Green coefficient. + /// Blue coefficient. + /// + public Grayscale( double cr, double cg, double cb ) + { + RedCoefficient = cr; + GreenCoefficient = cg; + BlueCoefficient = cb; + + // initialize format translation dictionary + formatTranslations[PixelFormat.Format24bppRgb] = PixelFormat.Format8bppIndexed; + formatTranslations[PixelFormat.Format32bppRgb] = PixelFormat.Format8bppIndexed; + formatTranslations[PixelFormat.Format32bppArgb] = PixelFormat.Format8bppIndexed; + formatTranslations[PixelFormat.Format48bppRgb] = PixelFormat.Format16bppGrayScale; + formatTranslations[PixelFormat.Format64bppArgb] = PixelFormat.Format16bppGrayScale; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Destination image data. + /// + protected override unsafe void ProcessFilter( UnmanagedImage sourceData, UnmanagedImage destinationData ) + { + // get width and height + int width = sourceData.Width; + int height = sourceData.Height; + PixelFormat srcPixelFormat = sourceData.PixelFormat; + + if ( + ( srcPixelFormat == PixelFormat.Format24bppRgb ) || + ( srcPixelFormat == PixelFormat.Format32bppRgb ) || + ( srcPixelFormat == PixelFormat.Format32bppArgb ) ) + { + int pixelSize = ( srcPixelFormat == PixelFormat.Format24bppRgb ) ? 3 : 4; + int srcOffset = sourceData.Stride - width * pixelSize; + int dstOffset = destinationData.Stride - width; + + int rc = (int) ( 0x10000 * RedCoefficient ); + int gc = (int) ( 0x10000 * GreenCoefficient ); + int bc = (int) ( 0x10000 * BlueCoefficient ); + + // make sure sum of coefficients equals to 0x10000 + while ( rc + gc + bc < 0x10000 ) + { + bc++; + } + + // do the job + byte* src = (byte*) sourceData.ImageData.ToPointer( ); + byte* dst = (byte*) destinationData.ImageData.ToPointer( ); + + // for each line + for ( int y = 0; y < height; y++ ) + { + // for each pixel + for ( int x = 0; x < width; x++, src += pixelSize, dst++ ) + { + *dst = (byte) ( ( rc * src[RGB.R] + gc * src[RGB.G] + bc * src[RGB.B] ) >> 16 ); + } + src += srcOffset; + dst += dstOffset; + } + } + else + { + int pixelSize = ( srcPixelFormat == PixelFormat.Format48bppRgb ) ? 3 : 4; + byte* srcBase = (byte*) sourceData.ImageData.ToPointer( ); + byte* dstBase = (byte*) destinationData.ImageData.ToPointer( ); + int srcStride = sourceData.Stride; + int dstStride = destinationData.Stride; + + // for each line + for ( int y = 0; y < height; y++ ) + { + ushort* src = (ushort*) ( srcBase + y * srcStride ); + ushort* dst = (ushort*) ( dstBase + y * dstStride ); + + // for each pixel + for ( int x = 0; x < width; x++, src += pixelSize, dst++ ) + { + *dst = (ushort) ( RedCoefficient * src[RGB.R] + GreenCoefficient * src[RGB.G] + BlueCoefficient * src[RGB.B] ); + } + } + } + } + } +} diff --git a/Sources/Imaging/Filters/Color Filters/GrayscaleBT709.cs b/Sources/Imaging/Filters/Color Filters/GrayscaleBT709.cs new file mode 100644 index 00000000..34ea7e9e --- /dev/null +++ b/Sources/Imaging/Filters/Color Filters/GrayscaleBT709.cs @@ -0,0 +1,39 @@ +// AForge Image Processing Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2005-2008 +// andrew.kirillov@gmail.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Grayscale image using BT709 algorithm. + /// + /// + /// The class uses BT709 algorithm to convert color image + /// to grayscale. The conversion coefficients are: + /// + /// Red: 0.2125; + /// Green: 0.7154; + /// Blue: 0.0721. + /// + /// + /// + /// + /// + /// + /// + [Obsolete( "Use Grayscale.CommonAlgorithms.BT709 object instead" )] + public sealed class GrayscaleBT709 : Grayscale + { + /// + /// Initializes a new instance of the class. + /// + public GrayscaleBT709( ) : base( 0.2125, 0.7154, 0.0721 ) { } + } +} diff --git a/Sources/Imaging/Filters/Color Filters/GrayscaleRMY.cs b/Sources/Imaging/Filters/Color Filters/GrayscaleRMY.cs new file mode 100644 index 00000000..471dd003 --- /dev/null +++ b/Sources/Imaging/Filters/Color Filters/GrayscaleRMY.cs @@ -0,0 +1,39 @@ +// AForge Image Processing Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2005-2008 +// andrew.kirillov@gmail.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Grayscale image using R-Y algorithm. + /// + /// + /// The class uses R-Y algorithm to convert color image + /// to grayscale. The conversion coefficients are: + /// + /// Red: 0.5; + /// Green: 0.419; + /// Blue: 0.081. + /// + /// + /// + /// + /// + /// + /// + [Obsolete( "Use Grayscale.CommonAlgorithms.RMY object instead" )] + public sealed class GrayscaleRMY : Grayscale + { + /// + /// Initializes a new instance of the class. + /// + public GrayscaleRMY( ) : base( 0.5, 0.419, 0.081 ) { } + } +} diff --git a/Sources/Imaging/Filters/Color Filters/GrayscaleToRGB.cs b/Sources/Imaging/Filters/Color Filters/GrayscaleToRGB.cs new file mode 100644 index 00000000..1203573b --- /dev/null +++ b/Sources/Imaging/Filters/Color Filters/GrayscaleToRGB.cs @@ -0,0 +1,91 @@ +// AForge Image Processing Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2005-2009 +// andrew.kirillov@aforgenet.comm +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Convert grayscale image to RGB. + /// + /// + /// The filter creates color image from specified grayscale image + /// initializing all RGB channels to the same value - pixel's intensity of grayscale image. + /// + /// The filter accepts 8 bpp grayscale images and produces + /// 24 bpp RGB image. + /// + /// Sample usage: + /// + /// // create filter + /// GrayscaleToRGB filter = new GrayscaleToRGB( ); + /// // apply the filter + /// Bitmap rgbImage = filter.Apply( image ); + /// + /// + /// + /// + public sealed class GrayscaleToRGB : BaseFilter + { + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public GrayscaleToRGB( ) + { + // initialize format translation dictionary + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format24bppRgb; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Destination image data. + /// + protected override unsafe void ProcessFilter( UnmanagedImage sourceData, UnmanagedImage destinationData ) + { + // get width and height + int width = sourceData.Width; + int height = sourceData.Height; + + int srcOffset = sourceData.Stride - width; + int dstOffset = destinationData.Stride - width * 3; + + // do the job + byte * src = (byte*) sourceData.ImageData.ToPointer( ); + byte * dst = (byte*) destinationData.ImageData.ToPointer( ); + + // for each line + for ( int y = 0; y < height; y++ ) + { + // for each pixel + for ( int x = 0; x < width; x++, src++, dst += 3 ) + { + dst[RGB.R] = dst[RGB.G] = dst[RGB.B] = *src; + } + src += srcOffset; + dst += dstOffset; + } + } + } +} diff --git a/Sources/Imaging/Filters/Color Filters/GrayscaleY.cs b/Sources/Imaging/Filters/Color Filters/GrayscaleY.cs new file mode 100644 index 00000000..77d8c853 --- /dev/null +++ b/Sources/Imaging/Filters/Color Filters/GrayscaleY.cs @@ -0,0 +1,39 @@ +// AForge Image Processing Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2005-2008 +// andrew.kirillov@gmail.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Grayscale image using Y algorithm. + /// + /// + /// The class uses Y algorithm to convert color image + /// to grayscale. The conversion coefficients are: + /// + /// Red: 0.299; + /// Green: 0.587; + /// Blue: 0.114. + /// + /// + /// + /// + /// + /// + /// + [Obsolete( "Use Grayscale.CommonAlgorithms.Y object instead" )] + public sealed class GrayscaleY : Grayscale + { + /// + /// Initializes a new instance of the class. + /// + public GrayscaleY( ) : base( 0.299, 0.587, 0.114 ) { } + } +} diff --git a/Sources/Imaging/Filters/Color Filters/HistogramEqualization.cs b/Sources/Imaging/Filters/Color Filters/HistogramEqualization.cs new file mode 100644 index 00000000..a707fd88 --- /dev/null +++ b/Sources/Imaging/Filters/Color Filters/HistogramEqualization.cs @@ -0,0 +1,194 @@ +// AForge Image Processing Library +// AForge.NET framework +// +// Copyright © +// Andrew Kirillov (andrew.kirillov@gmail.com), +// Mladen Prajdic (spirit1_fe@yahoo.com) +// 2005-2008 +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Histogram equalization filter. + /// + /// + /// The filter does histogram equalization increasing local contrast in images. The effect + /// of histogram equalization can be better seen on images, where pixel values have close contrast values. + /// Through this adjustment, pixels intensities can be better distributed on the histogram. This allows for + /// areas of lower local contrast to gain a higher contrast without affecting the global contrast. + /// + /// + /// The filter accepts 8 bpp grayscale images and 24/32 bpp + /// color images for processing. + /// + /// For color images the histogram equalization is applied to each color plane separately. + /// + /// Sample usage: + /// + /// // create filter + /// HistogramEqualization filter = new HistogramEqualization( ); + /// // process image + /// filter.ApplyInPlace( sourceImage ); + /// + /// + /// Source image: + /// + /// Result image: + /// + /// + /// + public class HistogramEqualization : BaseInPlacePartialFilter + { + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Initializes a new instance of the class. + /// + public HistogramEqualization( ) + { + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format8bppIndexed; + formatTranslations[PixelFormat.Format24bppRgb] = PixelFormat.Format24bppRgb; + formatTranslations[PixelFormat.Format32bppRgb] = PixelFormat.Format32bppRgb; + formatTranslations[PixelFormat.Format32bppArgb] = PixelFormat.Format32bppArgb; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Image rectangle for processing by the filter. + /// + protected override unsafe void ProcessFilter( UnmanagedImage image, Rectangle rect ) + { + int pixelSize = ( image.PixelFormat == PixelFormat.Format8bppIndexed ) ? 1 : + ( image.PixelFormat == PixelFormat.Format24bppRgb ) ? 3 : 4; + + int startX = rect.Left; + int startY = rect.Top; + int stopX = startX + rect.Width; + int stopY = startY + rect.Height; + int stride = image.Stride; + int offset = stride - rect.Width * pixelSize; + + int numberOfPixels = ( stopX - startX ) * ( stopY - startY ); + + // check image format + if ( image.PixelFormat == PixelFormat.Format8bppIndexed ) + { + // grayscale image + byte* ptr = (byte*) image.ImageData.ToPointer( ); + // allign pointer to the first pixel to process + ptr += ( startY * stride + startX ); + + // calculate histogram + int[] histogram = new int[256]; + for ( int y = startY; y < stopY; y++ ) + { + for ( int x = startX; x < stopX; x++, ptr++ ) + { + histogram[*ptr]++; + } + ptr += offset; + } + + // calculate new intensity levels + byte[] equalizedHistogram = Equalize( histogram, numberOfPixels ); + + // update pixels' intensities + ptr = (byte*) image.ImageData.ToPointer( ); + // allign pointer to the first pixel to process + ptr += ( startY * stride + startX ); + + for ( int y = startY; y < stopY; y++ ) + { + for ( int x = startX; x < stopX; x++, ptr++ ) + { + *ptr = equalizedHistogram[*ptr]; + } + ptr += offset; + } + } + else + { + // color image + byte* ptr = (byte*) image.ImageData.ToPointer( ); + // allign pointer to the first pixel to process + ptr += ( startY * stride + startX * pixelSize ); + + // calculate histogram + int[] histogramR = new int[256]; + int[] histogramG = new int[256]; + int[] histogramB = new int[256]; + + for ( int y = startY; y < stopY; y++ ) + { + for ( int x = startX; x < stopX; x++, ptr += pixelSize ) + { + histogramR[ptr[RGB.R]]++; + histogramG[ptr[RGB.G]]++; + histogramB[ptr[RGB.B]]++; + } + ptr += offset; + } + + // calculate new intensity levels + byte[] equalizedHistogramR = Equalize( histogramR, numberOfPixels ); + byte[] equalizedHistogramG = Equalize( histogramG, numberOfPixels ); + byte[] equalizedHistogramB = Equalize( histogramB, numberOfPixels ); + + // update pixels' intensities + ptr = (byte*) image.ImageData.ToPointer( ); + // allign pointer to the first pixel to process + ptr += ( startY * stride + startX * pixelSize ); + + for ( int y = startY; y < stopY; y++ ) + { + for ( int x = startX; x < stopX; x++, ptr += pixelSize ) + { + ptr[RGB.R] = equalizedHistogramR[ptr[RGB.R]]; + ptr[RGB.G] = equalizedHistogramG[ptr[RGB.G]]; + ptr[RGB.B] = equalizedHistogramB[ptr[RGB.B]]; + } + ptr += offset; + } + } + } + + + // Histogram + private byte[] Equalize( int[] histogram, long numPixel ) + { + byte[] equalizedHistogram = new byte[256]; + float coef = 255.0f / numPixel; + + // calculate the first value + float prev = histogram[0] * coef; + equalizedHistogram[0] = (byte) prev; + + // calcualte the rest of values + for ( int i = 1; i < 256; i++ ) + { + prev += histogram[i] * coef; + equalizedHistogram[i] = (byte) prev; + } + + return equalizedHistogram; + } + } +} diff --git a/Sources/Imaging/Filters/Color Filters/Invert.cs b/Sources/Imaging/Filters/Color Filters/Invert.cs new file mode 100644 index 00000000..fa477cbe --- /dev/null +++ b/Sources/Imaging/Filters/Color Filters/Invert.cs @@ -0,0 +1,123 @@ +// AForge Image Processing Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2005-2008 +// andrew.kirillov@gmail.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Invert image. + /// + /// + /// The filter inverts colored and grayscale images. + /// + /// The filter accepts 8, 16 bpp grayscale and 24, 48 bpp color images for processing. + /// + /// Sample usage: + /// + /// // create filter + /// Invert filter = new Invert( ); + /// // apply the filter + /// filter.ApplyInPlace( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + public sealed class Invert : BaseInPlacePartialFilter + { + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Initializes a new instance of the class. + /// + public Invert( ) + { + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format8bppIndexed; + formatTranslations[PixelFormat.Format24bppRgb] = PixelFormat.Format24bppRgb; + formatTranslations[PixelFormat.Format16bppGrayScale] = PixelFormat.Format16bppGrayScale; + formatTranslations[PixelFormat.Format48bppRgb] = PixelFormat.Format48bppRgb; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Image rectangle for processing by the filter. + /// + protected override unsafe void ProcessFilter( UnmanagedImage image, Rectangle rect ) + { + int pixelSize = ( ( image.PixelFormat == PixelFormat.Format8bppIndexed ) || + ( image.PixelFormat == PixelFormat.Format16bppGrayScale ) ) ? 1 : 3; + + int startY = rect.Top; + int stopY = startY + rect.Height; + + int startX = rect.Left * pixelSize; + int stopX = startX + rect.Width * pixelSize; + + byte* basePtr = (byte*) image.ImageData.ToPointer( ); + + if ( + ( image.PixelFormat == PixelFormat.Format8bppIndexed ) || + ( image.PixelFormat == PixelFormat.Format24bppRgb ) ) + { + int offset = image.Stride - ( stopX - startX ); + + // allign pointer to the first pixel to process + byte* ptr = basePtr + ( startY * image.Stride + rect.Left * pixelSize ); + + // invert + for ( int y = startY; y < stopY; y++ ) + { + for ( int x = startX; x < stopX; x++, ptr++ ) + { + // ivert each pixel + *ptr = (byte) ( 255 - *ptr ); + } + ptr += offset; + } + } + else + { + int stride = image.Stride; + + // allign pointer to the first pixel to process + basePtr += ( startY * image.Stride + rect.Left * pixelSize * 2 ); + + // invert + for ( int y = startY; y < stopY; y++ ) + { + ushort* ptr = (ushort*) ( basePtr ); + + for ( int x = startX; x < stopX; x++, ptr++ ) + { + // ivert each pixel + *ptr = (ushort) ( 65535 - *ptr ); + } + basePtr += stride; + } + } + } + } +} diff --git a/Sources/Imaging/Filters/Color Filters/LevelsLinear.cs b/Sources/Imaging/Filters/Color Filters/LevelsLinear.cs new file mode 100644 index 00000000..ebb68bce --- /dev/null +++ b/Sources/Imaging/Filters/Color Filters/LevelsLinear.cs @@ -0,0 +1,321 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2005-2010 +// andrew.kirillov@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + using AForge; + + /// + /// Linear correction of RGB channels. + /// + /// + /// The filter performs linear correction of RGB channels by mapping specified + /// channels' input ranges to output ranges. It is similar to the + /// , but the remapping is linear. + /// + /// The filter accepts 8 bpp grayscale and 24/32 bpp color images for processing. + /// + /// Sample usage: + /// + /// // create filter + /// LevelsLinear filter = new LevelsLinear( ); + /// // set ranges + /// filter.InRed = new IntRange( 30, 230 ); + /// filter.InGreen = new IntRange( 50, 240 ); + /// filter.InBlue = new IntRange( 10, 210 ); + /// // apply the filter + /// filter.ApplyInPlace( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + /// + /// + /// + public class LevelsLinear : BaseInPlacePartialFilter + { + private IntRange inRed = new IntRange( 0, 255 ); + private IntRange inGreen = new IntRange( 0, 255 ); + private IntRange inBlue = new IntRange( 0, 255 ); + + private IntRange outRed = new IntRange( 0, 255 ); + private IntRange outGreen = new IntRange( 0, 255 ); + private IntRange outBlue = new IntRange( 0, 255 ); + + private byte[] mapRed = new byte[256]; + private byte[] mapGreen = new byte[256]; + private byte[] mapBlue = new byte[256]; + + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + #region Public Propertis + + /// + /// Red component's input range. + /// + public IntRange InRed + { + get { return inRed; } + set + { + inRed = value; + CalculateMap( inRed, outRed, mapRed ); + } + } + + /// + /// Green component's input range. + /// + public IntRange InGreen + { + get { return inGreen; } + set + { + inGreen = value; + CalculateMap( inGreen, outGreen, mapGreen ); + } + } + + /// + /// Blue component's input range. + /// + public IntRange InBlue + { + get { return inBlue; } + set + { + inBlue = value; + CalculateMap( inBlue, outBlue, mapBlue ); + } + } + + /// + /// Gray component's input range. + /// + public IntRange InGray + { + get { return inGreen; } + set + { + inGreen = value; + CalculateMap( inGreen, outGreen, mapGreen ); + } + } + + /// + /// Input range for RGB components. + /// + /// + /// The property allows to set red, green and blue input ranges to the same value. + /// + public IntRange Input + { + set + { + inRed = inGreen = inBlue = value; + CalculateMap( inRed, outRed, mapRed ); + CalculateMap( inGreen, outGreen, mapGreen ); + CalculateMap( inBlue, outBlue, mapBlue ); + } + } + + /// + /// Red component's output range. + /// + public IntRange OutRed + { + get { return outRed; } + set + { + outRed = value; + CalculateMap( inRed, outRed, mapRed ); + } + } + + /// + /// Green component's output range. + /// + public IntRange OutGreen + { + get { return outGreen; } + set + { + outGreen = value; + CalculateMap( inGreen, outGreen, mapGreen ); + } + } + + /// + /// Blue component's output range. + /// + public IntRange OutBlue + { + get { return outBlue; } + set + { + outBlue = value; + CalculateMap( inBlue, outBlue, mapBlue ); + } + } + + /// + /// Gray component's output range. + /// + public IntRange OutGray + { + get { return outGreen; } + set + { + outGreen = value; + CalculateMap( inGreen, outGreen, mapGreen ); + } + } + + /// + /// Output range for RGB components. + /// + /// + /// The property allows to set red, green and blue output ranges to the same value. + /// + public IntRange Output + { + set + { + outRed = outGreen = outBlue = value; + CalculateMap( inRed, outRed, mapRed ); + CalculateMap( inGreen, outGreen, mapGreen ); + CalculateMap( inBlue, outBlue, mapBlue ); + } + } + + #endregion + + + /// + /// Initializes a new instance of the class. + /// + public LevelsLinear( ) + { + CalculateMap( inRed, outRed, mapRed ); + CalculateMap( inGreen, outGreen, mapGreen ); + CalculateMap( inBlue, outBlue, mapBlue ); + + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format8bppIndexed; + formatTranslations[PixelFormat.Format24bppRgb] = PixelFormat.Format24bppRgb; + formatTranslations[PixelFormat.Format32bppRgb] = PixelFormat.Format32bppRgb; + formatTranslations[PixelFormat.Format32bppArgb] = PixelFormat.Format32bppArgb; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Image rectangle for processing by the filter. + /// + protected override unsafe void ProcessFilter( UnmanagedImage image, Rectangle rect ) + { + int pixelSize = Image.GetPixelFormatSize( image.PixelFormat ) / 8; + + // processing start and stop X,Y positions + int startX = rect.Left; + int startY = rect.Top; + int stopX = startX + rect.Width; + int stopY = startY + rect.Height; + int offset = image.Stride - rect.Width * pixelSize; + + // do the job + byte* ptr = (byte*) image.ImageData.ToPointer( ); + + // allign pointer to the first pixel to process + ptr += ( startY * image.Stride + startX * pixelSize ); + + if ( image.PixelFormat == PixelFormat.Format8bppIndexed ) + { + // grayscale image + for ( int y = startY; y < stopY; y++ ) + { + for ( int x = startX; x < stopX; x++, ptr++ ) + { + // gray + *ptr = mapGreen[*ptr]; + } + ptr += offset; + } + } + else + { + // RGB image + for ( int y = startY; y < stopY; y++ ) + { + for ( int x = startX; x < stopX; x++, ptr += pixelSize ) + { + // red + ptr[RGB.R] = mapRed[ptr[RGB.R]]; + // green + ptr[RGB.G] = mapGreen[ptr[RGB.G]]; + // blue + ptr[RGB.B] = mapBlue[ptr[RGB.B]]; + } + ptr += offset; + } + } + } + + + /// + /// Calculate conversion map. + /// + /// + /// Input range. + /// Output range. + /// Conversion map. + /// + private void CalculateMap( IntRange inRange, IntRange outRange, byte[] map ) + { + double k = 0, b = 0; + + if ( inRange.Max != inRange.Min ) + { + k = (double) ( outRange.Max - outRange.Min ) / (double) ( inRange.Max - inRange.Min ); + b = (double) ( outRange.Min ) - k * inRange.Min; + } + + for ( int i = 0; i < 256; i++ ) + { + byte v = (byte) i; + + if ( v >= inRange.Max ) + v = (byte) outRange.Max; + else if ( v <= inRange.Min ) + v = (byte) outRange.Min; + else + v = (byte) ( k * v + b ); + + map[i] = v; + } + } + } +} diff --git a/Sources/Imaging/Filters/Color Filters/LevelsLinear16bpp.cs b/Sources/Imaging/Filters/Color Filters/LevelsLinear16bpp.cs new file mode 100644 index 00000000..1a0c9274 --- /dev/null +++ b/Sources/Imaging/Filters/Color Filters/LevelsLinear16bpp.cs @@ -0,0 +1,314 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2005-2010 +// andrew.kirillov@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + using AForge; + + /// + /// Linear correction of RGB channels for images, which have 16 bpp planes (16 bit gray images or 48/64 bit colour images). + /// + /// + /// The filter performs linear correction of RGB channels by mapping specified + /// channels' input ranges to output ranges. This version of the filter processes only images + /// with 16 bpp colour planes. See for 8 bpp version. + /// + /// The filter accepts 16 bpp grayscale and 48/64 bpp colour images for processing. + /// + /// Sample usage: + /// + /// // create filter + /// LevelsLinear16bpp filter = new LevelsLinear16bpp( ); + /// // set ranges + /// filter.InRed = new IntRange( 3000, 42000 ); + /// filter.InGreen = new IntRange( 5000, 37500 ); + /// filter.InBlue = new IntRange( 1000, 60000 ); + /// // apply the filter + /// filter.ApplyInPlace( image ); + /// + /// + /// + /// + /// + public class LevelsLinear16bpp : BaseInPlacePartialFilter + { + private IntRange inRed = new IntRange( 0, 65535 ); + private IntRange inGreen = new IntRange( 0, 65535 ); + private IntRange inBlue = new IntRange( 0, 65535 ); + + private IntRange outRed = new IntRange( 0, 65535 ); + private IntRange outGreen = new IntRange( 0, 65535 ); + private IntRange outBlue = new IntRange( 0, 65535 ); + + private ushort[] mapRed = new ushort[65536]; + private ushort[] mapGreen = new ushort[65536]; + private ushort[] mapBlue = new ushort[65536]; + + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + #region Public Propertis + + /// + /// Red component's input range. + /// + public IntRange InRed + { + get { return inRed; } + set + { + inRed = value; + CalculateMap( inRed, outRed, mapRed ); + } + } + + /// + /// Green component's input range. + /// + public IntRange InGreen + { + get { return inGreen; } + set + { + inGreen = value; + CalculateMap( inGreen, outGreen, mapGreen ); + } + } + + /// + /// Blue component's input range. + /// + public IntRange InBlue + { + get { return inBlue; } + set + { + inBlue = value; + CalculateMap( inBlue, outBlue, mapBlue ); + } + } + + /// + /// Gray component's input range. + /// + public IntRange InGray + { + get { return inGreen; } + set + { + inGreen = value; + CalculateMap( inGreen, outGreen, mapGreen ); + } + } + + /// + /// Input range for RGB components. + /// + /// + /// The property allows to set red, green and blue input ranges to the same value. + /// + public IntRange Input + { + set + { + inRed = inGreen = inBlue = value; + CalculateMap( inRed, outRed, mapRed ); + CalculateMap( inGreen, outGreen, mapGreen ); + CalculateMap( inBlue, outBlue, mapBlue ); + } + } + + /// + /// Red component's output range. + /// + public IntRange OutRed + { + get { return outRed; } + set + { + outRed = value; + CalculateMap( inRed, outRed, mapRed ); + } + } + + /// + /// Green component's output range. + /// + public IntRange OutGreen + { + get { return outGreen; } + set + { + outGreen = value; + CalculateMap( inGreen, outGreen, mapGreen ); + } + } + + /// + /// Blue component's output range. + /// + public IntRange OutBlue + { + get { return outBlue; } + set + { + outBlue = value; + CalculateMap( inBlue, outBlue, mapBlue ); + } + } + + /// + /// Gray component's output range. + /// + public IntRange OutGray + { + get { return outGreen; } + set + { + outGreen = value; + CalculateMap( inGreen, outGreen, mapGreen ); + } + } + + /// + /// Output range for RGB components. + /// + /// + /// The property allows to set red, green and blue output ranges to the same value. + /// + public IntRange Output + { + set + { + outRed = outGreen = outBlue = value; + CalculateMap( inRed, outRed, mapRed ); + CalculateMap( inGreen, outGreen, mapGreen ); + CalculateMap( inBlue, outBlue, mapBlue ); + } + } + + #endregion + + + /// + /// Initializes a new instance of the class. + /// + public LevelsLinear16bpp( ) + { + CalculateMap( inRed, outRed, mapRed ); + CalculateMap( inGreen, outGreen, mapGreen ); + CalculateMap( inBlue, outBlue, mapBlue ); + + formatTranslations[PixelFormat.Format16bppGrayScale] = PixelFormat.Format16bppGrayScale; + formatTranslations[PixelFormat.Format48bppRgb] = PixelFormat.Format48bppRgb; + formatTranslations[PixelFormat.Format64bppArgb] = PixelFormat.Format64bppArgb; + formatTranslations[PixelFormat.Format64bppPArgb] = PixelFormat.Format64bppPArgb; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Image rectangle for processing by the filter. + /// + protected override unsafe void ProcessFilter( UnmanagedImage image, Rectangle rect ) + { + int pixelSize = Image.GetPixelFormatSize( image.PixelFormat ) / 16; + + // processing start and stop X,Y positions + int startX = rect.Left; + int startY = rect.Top; + int stopX = startX + rect.Width; + int stopY = startY + rect.Height; + int offset = image.Stride - rect.Width * pixelSize; + + // do the job + byte* basePtr =(byte*) image.ImageData.ToPointer( ); + + if ( image.PixelFormat == PixelFormat.Format16bppGrayScale ) + { + // grayscale image + for ( int y = startY; y < stopY; y++ ) + { + ushort* ptr = (ushort*) ( basePtr + y * image.Stride ) + startX; + + for ( int x = startX; x < stopX; x++, ptr++ ) + { + // gray + *ptr = mapGreen[*ptr]; + } + } + } + else + { + // RGB image + for ( int y = startY; y < stopY; y++ ) + { + ushort* ptr = (ushort*) ( basePtr + y * image.Stride ) + startX * pixelSize; + + for ( int x = startX; x < stopX; x++, ptr += pixelSize ) + { + // red + ptr[RGB.R] = mapRed[ptr[RGB.R]]; + // green + ptr[RGB.G] = mapGreen[ptr[RGB.G]]; + // blue + ptr[RGB.B] = mapBlue[ptr[RGB.B]]; + } + } + } + } + + + /// + /// Calculate conversion map. + /// + /// + /// Input range. + /// Output range. + /// Conversion map. + /// + private void CalculateMap( IntRange inRange, IntRange outRange, ushort[] map ) + { + double k = 0, b = 0; + + if ( inRange.Max != inRange.Min ) + { + k = (double) ( outRange.Max - outRange.Min ) / (double) ( inRange.Max - inRange.Min ); + b = (double) ( outRange.Min ) - k * inRange.Min; + } + + for ( int i = 0; i < 65536; i++ ) + { + ushort v = (ushort) i; + + if ( v >= inRange.Max ) + v = (ushort) outRange.Max; + else if ( v <= inRange.Min ) + v = (ushort) outRange.Min; + else + v = (ushort) ( k * v + b ); + + map[i] = v; + } + } + } +} diff --git a/Sources/Imaging/Filters/Color Filters/ReplaceChannel.cs b/Sources/Imaging/Filters/Color Filters/ReplaceChannel.cs new file mode 100644 index 00000000..a50e5e4f --- /dev/null +++ b/Sources/Imaging/Filters/Color Filters/ReplaceChannel.cs @@ -0,0 +1,335 @@ +// AForge Image Processing Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2005-2009 +// andrew.kirillov@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Replace RGB channel of color imgae. + /// + /// + /// Replaces specified RGB channel of color image with + /// specified grayscale image. + /// + /// The filter is quite useful in conjunction with filter + /// (however may be used alone in some cases). Using the filter + /// it is possible to extract one of RGB channel, perform some image processing with it and then + /// put it back into the original color image. + /// + /// The filter accepts 24, 32, 48 and 64 bpp color images for processing. + /// + /// Sample usage: + /// + /// // extract red channel + /// ExtractChannel extractFilter = new ExtractChannel( RGB.R ); + /// Bitmap channel = extractFilter.Apply( image ); + /// // threshold channel + /// Threshold thresholdFilter = new Threshold( 230 ); + /// thresholdFilter.ApplyInPlace( channel ); + /// // put the channel back + /// ReplaceChannel replaceFilter = new ReplaceChannel( RGB.R, channel ); + /// replaceFilter.ApplyInPlace( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + /// + /// + /// + public class ReplaceChannel : BaseInPlacePartialFilter + { + private short channel = RGB.R; + private Bitmap channelImage; + private UnmanagedImage unmanagedChannelImage; + + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// ARGB channel to replace. + /// + /// + /// Default value is set to . + /// + /// Invalid channel is specified. + /// + public short Channel + { + get { return channel; } + set + { + if ( + ( value != RGB.R ) && ( value != RGB.G ) && + ( value != RGB.B ) && ( value != RGB.A ) + ) + { + throw new ArgumentException( "Invalid channel is specified." ); + } + channel = value; + } + } + + /// + /// Grayscale image to use for channel replacement. + /// + /// + /// + /// Setting this property will clear the property - + /// only one channel image is allowed: managed or unmanaged. + /// + /// + /// Channel image should be 8 bpp indexed or 16 bpp grayscale image. + /// + public Bitmap ChannelImage + { + get { return channelImage; } + set + { + if ( value != null ) + { + // check for valid format + if ( ( value.PixelFormat != PixelFormat.Format8bppIndexed ) && + ( value.PixelFormat != PixelFormat.Format16bppGrayScale ) ) + throw new InvalidImagePropertiesException( "Channel image should be 8 bpp indexed or 16 bpp grayscale image." ); + } + + channelImage = value; + unmanagedChannelImage = null; + } + } + + /// + /// Unmanaged grayscale image to use for channel replacement. + /// + /// + /// + /// Setting this property will clear the property - + /// only one channel image is allowed: managed or unmanaged. + /// + /// + /// Channel image should be 8 bpp indexed or 16 bpp grayscale image. + /// + public UnmanagedImage UnmanagedChannelImage + { + get { return unmanagedChannelImage; } + set + { + if ( value != null ) + { + // check for valid format + if ( ( value.PixelFormat != PixelFormat.Format8bppIndexed ) && + ( value.PixelFormat != PixelFormat.Format16bppGrayScale ) ) + throw new InvalidImagePropertiesException( "Channel image should be 8 bpp indexed or 16 bpp grayscale image." ); + } + + channelImage = null; + unmanagedChannelImage = value; + } + } + + // private constructor + private ReplaceChannel( ) + { + // initialize format translation dictionary + formatTranslations[PixelFormat.Format24bppRgb] = PixelFormat.Format24bppRgb; + formatTranslations[PixelFormat.Format32bppRgb] = PixelFormat.Format32bppRgb; + formatTranslations[PixelFormat.Format32bppArgb] = PixelFormat.Format32bppArgb; + formatTranslations[PixelFormat.Format48bppRgb] = PixelFormat.Format16bppGrayScale; + formatTranslations[PixelFormat.Format64bppArgb] = PixelFormat.Format16bppGrayScale; + } + + + /// + /// Initializes a new instance of the class. + /// + /// + /// ARGB channel to replace. + /// + public ReplaceChannel( short channel ) : this( ) + { + this.Channel = channel; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// ARGB channel to replace. + /// Channel image to use for replacement. + /// + public ReplaceChannel( short channel, Bitmap channelImage ) : this( ) + { + this.Channel = channel; + this.ChannelImage = channelImage; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// RGB channel to replace. + /// Unmanaged channel image to use for replacement. + /// + public ReplaceChannel( short channel, UnmanagedImage channelImage ) + : this( ) + { + this.Channel = channel; + this.UnmanagedChannelImage = channelImage; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Image rectangle for processing by the filter. + /// + /// Channel image was not specified. + /// Channel image size does not match source + /// image size. + /// Channel image's format does not correspond to format of the source image. + /// + /// Can not replace alpha channel of none ARGB image. The + /// exception is throw, when alpha channel is requested to be replaced in RGB image. + /// + protected override unsafe void ProcessFilter( UnmanagedImage image, Rectangle rect ) + { + if ( ( channelImage == null ) && ( unmanagedChannelImage == null ) ) + { + throw new NullReferenceException( "Channel image was not specified." ); + } + + int pixelSize = Image.GetPixelFormatSize( image.PixelFormat ) / 8; + + if ( ( channel == RGB.A ) && ( pixelSize != 4 ) && ( pixelSize != 8 ) ) + { + throw new InvalidImagePropertiesException( "Can not replace alpha channel of none ARGB image." ); + } + + int width = image.Width; + int height = image.Height; + int startX = rect.Left; + int startY = rect.Top; + int stopX = startX + rect.Width; + int stopY = startY + rect.Height; + int offset = image.Stride - rect.Width * pixelSize; + + BitmapData chData = null; + // pointer to channel's data + byte* ch; + // channel's image stride + int chStride = 0; + PixelFormat chFormat = PixelFormat.Format16bppGrayScale; + + // check channel's image type + if ( channelImage != null ) + { + // check channel's image dimension + if ( ( width != channelImage.Width ) || ( height != channelImage.Height ) ) + throw new InvalidImagePropertiesException( "Channel image size does not match source image size." ); + + // lock channel image + chData = channelImage.LockBits( + new Rectangle( 0, 0, width, height ), + ImageLockMode.ReadOnly, channelImage.PixelFormat ); + + ch = (byte*) chData.Scan0.ToPointer( ); + chStride = chData.Stride; + chFormat = chData.PixelFormat; + } + else + { + // check channel's image dimension + if ( ( width != unmanagedChannelImage.Width ) || ( height != unmanagedChannelImage.Height ) ) + throw new InvalidImagePropertiesException( "Channel image size does not match source image size." ); + + ch = (byte*) unmanagedChannelImage.ImageData; + chStride = unmanagedChannelImage.Stride; + chFormat = unmanagedChannelImage.PixelFormat; + } + + if ( pixelSize <= 4 ) + { + // check channel image's format + if ( chFormat != PixelFormat.Format8bppIndexed ) + throw new InvalidImagePropertiesException( "Channel image's format does not correspond to format of the source image." ); + + int offsetCh = chData.Stride - rect.Width; + + // do the job + byte* dst = (byte*) image.ImageData.ToPointer( ); + + // allign pointers to the first pixel to process + dst += ( startY * image.Stride + startX * pixelSize ); + ch += ( startY * chStride + startX ); + + // for each line + for ( int y = startY; y < stopY; y++ ) + { + // for each pixel + for ( int x = startX; x < stopX; x++, dst += pixelSize, ch++ ) + { + dst[channel] = *ch; + } + dst += offset; + ch += offsetCh; + } + } + else + { + // check channel image's format + if ( chFormat != PixelFormat.Format16bppGrayScale ) + throw new InvalidImagePropertiesException( "Channel image's format does not correspond to format of the source image." ); + + int stride = image.Stride; + + // do the job + byte* baseDst = (byte*) image.ImageData.ToPointer( ); + // allign pointers for X coordinate + baseDst += startX * pixelSize; + ch += startX * 2; + + pixelSize /= 2; + + // for each line + for ( int y = startY; y < stopY; y++ ) + { + ushort* dst = (ushort*) ( baseDst + y * stride ); + ushort* chPtr = (ushort*) ( ch + y * chStride ); + + // for each pixel + for ( int x = startX; x < stopX; x++, dst += pixelSize, chPtr++ ) + { + dst[channel] = *chPtr; + } + } + } + + if ( chData != null ) + { + // unlock + channelImage.UnlockBits( chData ); + } + } + } +} diff --git a/Sources/Imaging/Filters/Color Filters/RotateChannels.cs b/Sources/Imaging/Filters/Color Filters/RotateChannels.cs new file mode 100644 index 00000000..effce17a --- /dev/null +++ b/Sources/Imaging/Filters/Color Filters/RotateChannels.cs @@ -0,0 +1,101 @@ +// AForge Image Processing Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2005-2008 +// andrew.kirillov@gmail.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Rotate RGB channels. + /// + /// + /// The filter rotates RGB channels: red channel is replaced with green, + /// green channel is replaced with blue, blue channel is replaced with red. + /// + /// The filter accepts 24/32 bpp color images for processing. + /// + /// Sample usage: + /// + /// // create filter + /// RotateChannels filter = new RotateChannels( ); + /// // apply the filter + /// filter.ApplyInPlace( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + public sealed class RotateChannels : BaseInPlacePartialFilter + { + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Initializes a new instance of the class. + /// + public RotateChannels( ) + { + formatTranslations[PixelFormat.Format24bppRgb] = PixelFormat.Format24bppRgb; + formatTranslations[PixelFormat.Format32bppRgb] = PixelFormat.Format32bppRgb; + formatTranslations[PixelFormat.Format32bppArgb] = PixelFormat.Format32bppArgb; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Image rectangle for processing by the filter. + /// + protected override unsafe void ProcessFilter( UnmanagedImage image, Rectangle rect ) + { + int pixelSize = ( image.PixelFormat == PixelFormat.Format24bppRgb ) ? 3 : 4; + + int startX = rect.Left; + int startY = rect.Top; + int stopX = startX + rect.Width; + int stopY = startY + rect.Height; + int offset = image.Stride - rect.Width * pixelSize; + + // do the job + byte* ptr = (byte*) image.ImageData.ToPointer( ); + byte t; + + // allign pointer to the first pixel to process + ptr += ( startY * image.Stride + startX * pixelSize ); + + // for each line + for ( int y = startY; y < stopY; y++ ) + { + // for each pixel + for ( int x = startX; x < stopX; x++, ptr += pixelSize ) + { + // rotate colors of each pixel + t = ptr[RGB.R]; + ptr[RGB.R] = ptr[RGB.G]; + ptr[RGB.G] = ptr[RGB.B]; + ptr[RGB.B] = t; + } + ptr += offset; + } + } + } +} diff --git a/Sources/Imaging/Filters/Color Filters/Sepia.cs b/Sources/Imaging/Filters/Color Filters/Sepia.cs new file mode 100644 index 00000000..781f5048 --- /dev/null +++ b/Sources/Imaging/Filters/Color Filters/Sepia.cs @@ -0,0 +1,135 @@ +// AForge Image Processing Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2005-2008 +// andrew.kirillov@gmail.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Sepia filter - old brown photo. + /// + /// + /// The filter makes an image look like an old brown photo. The main + /// idea of the algorithm: + /// + /// transform to YIQ color space; + /// modify it; + /// transform back to RGB. + /// + /// + /// + /// 1) RGB -> YIQ: + /// + /// Y = 0.299 * R + 0.587 * G + 0.114 * B + /// I = 0.596 * R - 0.274 * G - 0.322 * B + /// Q = 0.212 * R - 0.523 * G + 0.311 * B + /// + /// + /// + /// + /// 2) update: + /// + /// I = 51 + /// Q = 0 + /// + /// + /// + /// + /// 3) YIQ -> RGB: + /// + /// R = 1.0 * Y + 0.956 * I + 0.621 * Q + /// G = 1.0 * Y - 0.272 * I - 0.647 * Q + /// B = 1.0 * Y - 1.105 * I + 1.702 * Q + /// + /// + /// + /// The filter accepts 24/32 bpp color images for processing. + /// + /// Sample usage: + /// + /// // create filter + /// Sepia filter = new Sepia( ); + /// // apply the filter + /// filter.ApplyInPlace( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + public sealed class Sepia : BaseInPlacePartialFilter + { + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Initializes a new instance of the class. + /// + public Sepia( ) + { + formatTranslations[PixelFormat.Format24bppRgb] = PixelFormat.Format24bppRgb; + formatTranslations[PixelFormat.Format32bppRgb] = PixelFormat.Format32bppRgb; + formatTranslations[PixelFormat.Format32bppArgb] = PixelFormat.Format32bppArgb; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Image rectangle for processing by the filter. + /// + protected override unsafe void ProcessFilter( UnmanagedImage image, Rectangle rect ) + { + int pixelSize = ( image.PixelFormat == PixelFormat.Format24bppRgb ) ? 3 : 4; + + int startX = rect.Left; + int startY = rect.Top; + int stopX = startX + rect.Width; + int stopY = startY + rect.Height; + int offset = image.Stride - rect.Width * pixelSize; + + // do the job + byte* ptr = (byte*) image.ImageData.ToPointer( ); + byte t; + + // allign pointer to the first pixel to process + ptr += ( startY * image.Stride + startX * pixelSize ); + + // for each line + for ( int y = startY; y < stopY; y++ ) + { + // for each pixel + for ( int x = startX; x < stopX; x++, ptr += pixelSize ) + { + t = (byte) ( 0.299 * ptr[RGB.R] + 0.587 * ptr[RGB.G] + 0.114 * ptr[RGB.B] ); + + // red + ptr[RGB.R] = (byte) ( ( t > 206 ) ? 255 : t + 49 ); + // green + ptr[RGB.G] = (byte) ( ( t < 14 ) ? 0 : t - 14 ); + // blue + ptr[RGB.B] = (byte) ( ( t < 56 ) ? 0 : t - 56 ); + } + ptr += offset; + } + } + } +} diff --git a/Sources/Imaging/Filters/Color Segmentation/SimplePosterization.cs b/Sources/Imaging/Filters/Color Segmentation/SimplePosterization.cs new file mode 100644 index 00000000..befbf28c --- /dev/null +++ b/Sources/Imaging/Filters/Color Segmentation/SimplePosterization.cs @@ -0,0 +1,214 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2005-2009 +// andrew.kirillov@aforgenet.com +// +// Copyright © Frank Nagl, 2008-2009 +// admin@franknagl.de +// www.franknagl.de +// +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Simple posterization of an image. + /// + /// + /// The class implements simple posterization of an image by splitting + /// each color plane into adjacent areas of the specified size. After the process + /// is done, each color plane will contain maximum of 256/PosterizationInterval levels. + /// For example, if grayscale image is posterized with posterization interval equal to 64, + /// then result image will contain maximum of 4 tones. If color image is posterized with the + /// same posterization interval, then it will contain maximum of 43=64 colors. + /// See property to get information about the way how to control + /// color used to fill posterization areas. + /// + /// Posterization is a process in photograph development which converts normal photographs + /// into an image consisting of distinct, but flat, areas of different tones or colors. + /// + /// The filter accepts 8 bpp grayscale and 24/32 bpp color images. + /// + /// Sample usage: + /// + /// // create filter + /// SimplePosterization filter = new SimplePosterization( ); + /// // process image + /// filter.ApplyInPlace( sourceImage ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + public class SimplePosterization : BaseInPlacePartialFilter + { + /// + /// Enumeration of possible types of filling posterized areas. + /// + public enum PosterizationFillingType + { + /// + /// Fill area with minimum color's value. + /// + Min, + /// + /// Fill area with maximum color's value. + /// + Max, + /// + /// Fill area with average color's value. + /// + Average + } + + byte posterizationInterval = 64; + PosterizationFillingType fillingType = PosterizationFillingType.Average; + + /// + /// Posterization interval, which specifies size of posterization areas. + /// + /// + /// The property specifies size of adjacent posterization areas + /// for each color plane. The value has direct effect on the amount of colors + /// in the result image. For example, if grayscale image is posterized with posterization + /// interval equal to 64, then result image will contain maximum of 4 tones. If color + /// image is posterized with same posterization interval, then it will contain maximum + /// of 43=64 colors. + /// + /// Default value is set to 64. + /// + /// + public byte PosterizationInterval + { + get { return posterizationInterval; } + set { posterizationInterval = value; } + } + + /// + /// Posterization filling type. + /// + /// + /// The property controls the color, which is used to substitute + /// colors within the same posterization interval - minimum, maximum or average value. + /// + /// + /// Default value is set to . + /// + /// + public PosterizationFillingType FillingType + { + get { return fillingType; } + set { fillingType = value; } + } + + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Initializes a new instance of the class. + /// + public SimplePosterization( ) + { + // initialize format translation dictionary + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format8bppIndexed; + formatTranslations[PixelFormat.Format24bppRgb] = PixelFormat.Format8bppIndexed; + formatTranslations[PixelFormat.Format32bppRgb] = PixelFormat.Format8bppIndexed; + formatTranslations[PixelFormat.Format32bppArgb] = PixelFormat.Format8bppIndexed; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Specifies filling type of posterization areas. + /// + public SimplePosterization( PosterizationFillingType fillingType ) : this ( ) + { + this.fillingType = fillingType; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Image rectangle for processing by the filter. + /// + protected override unsafe void ProcessFilter( UnmanagedImage image, Rectangle rect ) + { + // get pixel size + int pixelSize = Image.GetPixelFormatSize( image.PixelFormat ) / 8; + + int startX = rect.Left; + int startY = rect.Top; + int stopX = startX + rect.Width; + int stopY = startY + rect.Height; + int offset = image.Stride - rect.Width * pixelSize; + + // calculate posterization offset + int posterizationOffset = ( fillingType == PosterizationFillingType.Min ) ? + 0 : ( ( fillingType == PosterizationFillingType.Max ) ? + posterizationInterval - 1 : posterizationInterval / 2 ); + + // calculate mapping array + byte[] map = new byte[256]; + + for ( int i = 0; i < 256; i++ ) + { + map[i] = (byte) Math.Min( 255, ( i / posterizationInterval ) * posterizationInterval + posterizationOffset ); + } + + // do the job + byte* ptr = (byte*) image.ImageData.ToPointer( ); + + // allign pointer to the first pixel to process + ptr += ( startY * image.Stride + startX * pixelSize ); + + // check image format + if ( image.PixelFormat == PixelFormat.Format8bppIndexed ) + { + // for each line + for ( int y = startY; y < stopY; y++ ) + { + // for each pixel in line + for ( int x = startX; x < stopX; x++, ptr++ ) + { + *ptr = map[*ptr]; + } + ptr += offset; + } + } + else + { + // for each line + for ( int y = startY; y < stopY; y++ ) + { + // for each pixel in line + for ( int x = startX; x < stopX; x++, ptr += pixelSize ) + { + ptr[RGB.R] = map[ptr[RGB.R]]; + ptr[RGB.G] = map[ptr[RGB.G]]; + ptr[RGB.B] = map[ptr[RGB.B]]; + } + ptr += offset; + } + } + } + } +} diff --git a/Sources/Imaging/Filters/Convolution/Blur.cs b/Sources/Imaging/Filters/Convolution/Blur.cs new file mode 100644 index 00000000..522620d5 --- /dev/null +++ b/Sources/Imaging/Filters/Convolution/Blur.cs @@ -0,0 +1,64 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + /// + /// Blur filter. + /// + /// + /// The filter performs convolution filter using + /// the blur kernel: + /// + /// + /// 1 2 3 2 1 + /// 2 4 5 4 2 + /// 3 5 6 5 3 + /// 2 4 5 4 2 + /// 1 2 3 2 1 + /// + /// + /// For the list of supported pixel formats, see the documentation to + /// filter. + /// + /// By default this filter sets property to + /// , so the alpha channel of 32 bpp and 64 bpp images is blurred as well. + /// + /// + /// Sample usage: + /// + /// // create filter + /// Blur filter = new Blur( ); + /// // apply the filter + /// filter.ApplyInPlace( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + /// + /// + public sealed class Blur : Convolution + { + /// + /// Initializes a new instance of the class. + /// + public Blur( ) : base( new int[,] { + { 1, 2, 3, 2, 1 }, + { 2, 4, 5, 4, 2 }, + { 3, 5, 6, 5, 3 }, + { 2, 4, 5, 4, 2 }, + { 1, 2, 3, 2, 1 } } ) + { + base.ProcessAlpha = true; + } + } +} diff --git a/Sources/Imaging/Filters/Convolution/Convolution.cs b/Sources/Imaging/Filters/Convolution/Convolution.cs new file mode 100644 index 00000000..120feedf --- /dev/null +++ b/Sources/Imaging/Filters/Convolution/Convolution.cs @@ -0,0 +1,940 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Convolution filter. + /// + /// + /// The filter implements convolution operator, which calculates each pixel + /// of the result image as weighted sum of the correspond pixel and its neighbors in the source + /// image. The weights are set by convolution kernel. The weighted + /// sum is divided by before putting it into result image and also + /// may be thresholded using value. + /// + /// Convolution is a simple mathematical operation which is fundamental to many common + /// image processing filters. Depending on the type of provided kernel, the filter may produce + /// different results, like blur image, sharpen it, find edges, etc. + /// + /// The filter accepts 8 and 16 bpp grayscale images and 24, 32, 48 and 64 bpp + /// color images for processing. Note: depending on the value of + /// property, the alpha channel is either copied as is or processed with the kernel. + /// + /// Sample usage: + /// + /// // define emboss kernel + /// int[,] kernel = { + /// { -2, -1, 0 }, + /// { -1, 1, 1 }, + /// { 0, 1, 2 } }; + /// // create filter + /// Convolution filter = new Convolution( kernel ); + /// // apply the filter + /// filter.ApplyInPlace( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + public class Convolution : BaseUsingCopyPartialFilter + { + // convolution kernel + private int[,] kernel; + // division factor + private int divisor = 1; + // threshold to add to weighted sum + private int threshold = 0; + // kernel size + private int size; + // use dynamic divisor for edges + private bool dynamicDivisorForEdges = true; + // specifies if alpha channel must be processed or just copied + private bool processAlpha = false; + + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Convolution kernel. + /// + /// + /// + /// Convolution kernel must be square and its width/height + /// should be odd and should be in the [3, 99] range. + /// + /// Setting convolution kernel through this property does not + /// affect - it is not recalculated automatically. + /// + /// + /// Invalid kernel size is specified. + /// + public int[,] Kernel + { + get { return kernel; } + set + { + int s = value.GetLength( 0 ); + + // check kernel size + if ( ( s != value.GetLength( 1 ) ) || ( s < 3 ) || ( s > 99 ) || ( s % 2 == 0 ) ) + throw new ArgumentException( "Invalid kernel size." ); + + this.kernel = value; + this.size = s; + } + } + + /// + /// Division factor. + /// + /// + /// The value is used to divide convolution - weighted sum + /// of pixels is divided by this value. + /// + /// The value may be calculated automatically in the case if constructor + /// with one parameter is used (). + /// + /// + /// Divisor can not be equal to zero. + /// + public int Divisor + { + get { return divisor; } + set + { + if ( value == 0 ) + throw new ArgumentException( "Divisor can not be equal to zero." ); + divisor = value; + } + } + + /// + /// Threshold to add to weighted sum. + /// + /// + /// The property specifies threshold value, which is added to each weighted + /// sum of pixels. The value is added right after division was done by + /// value. + /// + /// Default value is set to 0. + /// + /// + public int Threshold + { + get { return threshold; } + set { threshold = value; } + } + + /// + /// Use dynamic divisor for edges or not. + /// + /// + /// The property specifies how to handle edges. If it is set to + /// , then the same divisor (which is specified by + /// property or calculated automatically) will be applied both for non-edge regions + /// and for edge regions. If the value is set to , then dynamically + /// calculated divisor will be used for edge regions, which is sum of those kernel + /// elements, which are taken into account for particular processed pixel + /// (elements, which are not outside image). + /// + /// Default value is set to . + /// + /// + public bool DynamicDivisorForEdges + { + get { return dynamicDivisorForEdges; } + set { dynamicDivisorForEdges = value; } + } + + /// + /// Specifies if alpha channel must be processed or just copied. + /// + /// + /// The property specifies the way how alpha channel is handled for 32 bpp + /// and 64 bpp images. If the property is set to , then alpha + /// channel's values are just copied as is. If the property is set to + /// then alpha channel is convolved using the specified kernel same way as RGB channels. + /// + /// Default value is set to . + /// + /// + public bool ProcessAlpha + { + get { return processAlpha; } + set { processAlpha = value; } + } + + /// + /// Initializes a new instance of the class. + /// + protected Convolution( ) + { + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format8bppIndexed; + formatTranslations[PixelFormat.Format16bppGrayScale] = PixelFormat.Format16bppGrayScale; + formatTranslations[PixelFormat.Format24bppRgb] = PixelFormat.Format24bppRgb; + formatTranslations[PixelFormat.Format32bppRgb] = PixelFormat.Format32bppRgb; + formatTranslations[PixelFormat.Format32bppArgb] = PixelFormat.Format32bppArgb; + formatTranslations[PixelFormat.Format48bppRgb] = PixelFormat.Format48bppRgb; + formatTranslations[PixelFormat.Format64bppArgb] = PixelFormat.Format64bppArgb; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Convolution kernel. + /// + /// Using this constructor (specifying only convolution kernel), + /// division factor will be calculated automatically + /// summing all kernel values. In the case if kernel's sum equals to zero, + /// division factor will be assigned to 1. + /// + /// Invalid kernel size is specified. Kernel must be + /// square, its width/height should be odd and should be in the [3, 25] range. + /// + public Convolution( int[,] kernel ) : this( ) + { + Kernel = kernel; + + divisor = 0; + + // calculate divisor + for ( int i = 0, n = kernel.GetLength( 0 ); i < n; i++ ) + { + for ( int j = 0, k = kernel.GetLength( 1 ); j < k; j++ ) + { + divisor += kernel[i, j]; + } + } + if ( divisor == 0 ) + divisor = 1; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Convolution kernel. + /// Divisor, used used to divide weighted sum. + /// + /// Invalid kernel size is specified. Kernel must be + /// square, its width/height should be odd and should be in the [3, 25] range. + /// Divisor can not be equal to zero. + /// + public Convolution( int[,] kernel, int divisor ) : this( ) + { + Kernel = kernel; + Divisor = divisor; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Destination image data. + /// Image rectangle for processing by the filter. + /// + protected override unsafe void ProcessFilter( UnmanagedImage source, UnmanagedImage destination, Rectangle rect ) + { + int pixelSize = Image.GetPixelFormatSize( source.PixelFormat ) / 8; + + // processing start and stop X,Y positions + int startX = rect.Left; + int startY = rect.Top; + int stopX = startX + rect.Width; + int stopY = startY + rect.Height; + + // check pixel size to find if we deal with 8 or 16 bpp channels + if ( ( pixelSize <= 4 ) && ( pixelSize != 2 ) ) + { + int srcStride = source.Stride; + int dstStride = destination.Stride; + + int srcOffset = srcStride - rect.Width * pixelSize; + int dstOffset = dstStride - rect.Width * pixelSize; + + byte* src = (byte*) source.ImageData.ToPointer( ); + byte* dst = (byte*) destination.ImageData.ToPointer( ); + + // allign pointers to the first pixel to process + src += ( startY * srcStride + startX * pixelSize ); + dst += ( startY * dstStride + startX * pixelSize ); + + // do the processing job + if ( destination.PixelFormat == PixelFormat.Format8bppIndexed ) + { + // grayscale image + Process8bppImage( src, dst, srcStride, dstStride, srcOffset, dstOffset, startX, startY, stopX, stopY ); + } + else + { + // RGB image + if ( ( pixelSize == 3 ) || ( !processAlpha ) ) + { + Process24bppImage( src, dst, srcStride, dstStride, srcOffset, dstOffset, startX, startY, stopX, stopY, pixelSize ); + } + else + { + Process32bppImage( src, dst, srcStride, dstStride, srcOffset, dstOffset, startX, startY, stopX, stopY ); + } + } + } + else + { + pixelSize /= 2; + + int dstStride = destination.Stride / 2; + int srcStride = source.Stride / 2; + + // base pointers + ushort* baseSrc = (ushort*) source.ImageData.ToPointer( ); + ushort* baseDst = (ushort*) destination.ImageData.ToPointer( ); + + // allign pointers by X + baseSrc += ( startX * pixelSize ); + baseDst += ( startX * pixelSize ); + + if ( source.PixelFormat == PixelFormat.Format16bppGrayScale ) + { + // 16 bpp grayscale image + Process16bppImage( baseSrc, baseDst, srcStride, dstStride, startX, startY, stopX, stopY ); + } + else + { + // RGB image + if ( ( pixelSize == 3 ) || ( !processAlpha ) ) + { + Process48bppImage( baseSrc, baseDst, srcStride, dstStride, startX, startY, stopX, stopY, pixelSize ); + } + else + { + Process64bppImage( baseSrc, baseDst, srcStride, dstStride, startX, startY, stopX, stopY ); + } + } + } + } + + // Process 8 bpp grayscale images + private unsafe void Process8bppImage( byte* src, byte* dst, + int srcStride, int dstStride, int srcOffset, int dstOffset, + int startX, int startY, int stopX, int stopY ) + { + // loop and array indexes + int i, j, t, k, ir, jr; + // kernel's radius + int radius = size >> 1; + // color sums + long g, div; + + // kernel size + int kernelSize = size * size; + // number of kernel elements taken into account + int processedKernelSize; + + // for each line + for ( int y = startY; y < stopY; y++ ) + { + // for each pixel + for ( int x = startX; x < stopX; x++, src++, dst++ ) + { + g = div = processedKernelSize = 0; + + // for each kernel row + for ( i = 0; i < size; i++ ) + { + ir = i - radius; + t = y + ir; + + // skip row + if ( t < startY ) + continue; + // break + if ( t >= stopY ) + break; + + // for each kernel column + for ( j = 0; j < size; j++ ) + { + jr = j - radius; + t = x + jr; + + // skip column + if ( t < startX ) + continue; + + if ( t < stopX ) + { + k = kernel[i, j]; + + div += k; + g += k * src[ir * srcStride + jr]; + processedKernelSize++; + } + } + } + + // check if all kernel elements were processed + if ( processedKernelSize == kernelSize ) + { + // all kernel elements are processed - we are not on the edge + div = divisor; + } + else + { + // we are on edge. do we need to use dynamic divisor or not? + if ( !dynamicDivisorForEdges ) + { + // do + div = divisor; + } + } + + // check divider + if ( div != 0 ) + { + g /= div; + } + g += threshold; + *dst = (byte) ( ( g > 255 ) ? 255 : ( ( g < 0 ) ? 0 : g ) ); + } + src += srcOffset; + dst += dstOffset; + } + } + + // Process 24 bpp images or 32 bpp images with copying alpha channel + private unsafe void Process24bppImage( byte* src, byte* dst, + int srcStride, int dstStride, int srcOffset, int dstOffset, + int startX, int startY, int stopX, int stopY, int pixelSize ) + { + // loop and array indexes + int i, j, t, k, ir, jr; + // kernel's radius + int radius = size >> 1; + // color sums + long r, g, b, div; + + // kernel size + int kernelSize = size * size; + // number of kernel elements taken into account + int processedKernelSize; + + byte* p; + + // for each line + for ( int y = startY; y < stopY; y++ ) + { + // for each pixel + for ( int x = startX; x < stopX; x++, src += pixelSize, dst += pixelSize ) + { + r = g = b = div = processedKernelSize = 0; + + // for each kernel row + for ( i = 0; i < size; i++ ) + { + ir = i - radius; + t = y + ir; + + // skip row + if ( t < startY ) + continue; + // break + if ( t >= stopY ) + break; + + // for each kernel column + for ( j = 0; j < size; j++ ) + { + jr = j - radius; + t = x + jr; + + // skip column + if ( t < startX ) + continue; + + if ( t < stopX ) + { + k = kernel[i, j]; + p = &src[ir * srcStride + jr * pixelSize]; + + div += k; + + r += k * p[RGB.R]; + g += k * p[RGB.G]; + b += k * p[RGB.B]; + + processedKernelSize++; + } + } + } + + // check if all kernel elements were processed + if ( processedKernelSize == kernelSize ) + { + // all kernel elements are processed - we are not on the edge + div = divisor; + } + else + { + // we are on edge. do we need to use dynamic divisor or not? + if ( !dynamicDivisorForEdges ) + { + // do + div = divisor; + } + } + + // check divider + if ( div != 0 ) + { + r /= div; + g /= div; + b /= div; + } + r += threshold; + g += threshold; + b += threshold; + + dst[RGB.R] = (byte) ( ( r > 255 ) ? 255 : ( ( r < 0 ) ? 0 : r ) ); + dst[RGB.G] = (byte) ( ( g > 255 ) ? 255 : ( ( g < 0 ) ? 0 : g ) ); + dst[RGB.B] = (byte) ( ( b > 255 ) ? 255 : ( ( b < 0 ) ? 0 : b ) ); + + // take care of alpha channel + if ( pixelSize == 4 ) + dst[RGB.A] = src[RGB.A]; + } + src += srcOffset; + dst += dstOffset; + } + } + + // Process 32 bpp images including alpha channel + private unsafe void Process32bppImage( byte* src, byte* dst, + int srcStride, int dstStride, int srcOffset, int dstOffset, + int startX, int startY, int stopX, int stopY ) + { + // loop and array indexes + int i, j, t, k, ir, jr; + // kernel's radius + int radius = size >> 1; + // color sums + long r, g, b, a, div; + + // kernel size + int kernelSize = size * size; + // number of kernel elements taken into account + int processedKernelSize; + + byte* p; + + // for each line + for ( int y = startY; y < stopY; y++ ) + { + // for each pixel + for ( int x = startX; x < stopX; x++, src += 4, dst += 4 ) + { + r = g = b = a = div = processedKernelSize = 0; + + // for each kernel row + for ( i = 0; i < size; i++ ) + { + ir = i - radius; + t = y + ir; + + // skip row + if ( t < startY ) + continue; + // break + if ( t >= stopY ) + break; + + // for each kernel column + for ( j = 0; j < size; j++ ) + { + jr = j - radius; + t = x + jr; + + // skip column + if ( t < startX ) + continue; + + if ( t < stopX ) + { + k = kernel[i, j]; + p = &src[ir * srcStride + jr * 4]; + + div += k; + + r += k * p[RGB.R]; + g += k * p[RGB.G]; + b += k * p[RGB.B]; + a += k * p[RGB.A]; + + processedKernelSize++; + } + } + } + + // check if all kernel elements were processed + if ( processedKernelSize == kernelSize ) + { + // all kernel elements are processed - we are not on the edge + div = divisor; + } + else + { + // we are on edge. do we need to use dynamic divisor or not? + if ( !dynamicDivisorForEdges ) + { + // do + div = divisor; + } + } + + // check divider + if ( div != 0 ) + { + r /= div; + g /= div; + b /= div; + a /= div; + } + r += threshold; + g += threshold; + b += threshold; + a += threshold; + + dst[RGB.R] = (byte) ( ( r > 255 ) ? 255 : ( ( r < 0 ) ? 0 : r ) ); + dst[RGB.G] = (byte) ( ( g > 255 ) ? 255 : ( ( g < 0 ) ? 0 : g ) ); + dst[RGB.B] = (byte) ( ( b > 255 ) ? 255 : ( ( b < 0 ) ? 0 : b ) ); + dst[RGB.A] = (byte) ( ( a > 255 ) ? 255 : ( ( a < 0 ) ? 0 : a ) ); + } + src += srcOffset; + dst += dstOffset; + } + } + + // Process 16 bpp grayscale images + private unsafe void Process16bppImage( ushort* baseSrc, ushort* baseDst, int srcStride, int dstStride, + int startX, int startY, int stopX, int stopY ) + { + // loop and array indexes + int i, j, t, k, ir, jr; + // kernel's radius + int radius = size >> 1; + // color sums + long g, div; + + // kernel size + int kernelSize = size * size; + // number of kernel elements taken into account + int processedKernelSize; + + // for each line + for ( int y = startY; y < stopY; y++ ) + { + ushort* src = baseSrc + y * srcStride; + ushort* dst = baseDst + y * dstStride; + + // for each pixel + for ( int x = startX; x < stopX; x++, src++, dst++ ) + { + g = div = processedKernelSize = 0; + + // for each kernel row + for ( i = 0; i < size; i++ ) + { + ir = i - radius; + t = y + ir; + + // skip row + if ( t < startY ) + continue; + // break + if ( t >= stopY ) + break; + + // for each kernel column + for ( j = 0; j < size; j++ ) + { + jr = j - radius; + t = x + jr; + + // skip column + if ( t < startX ) + continue; + + if ( t < stopX ) + { + k = kernel[i, j]; + + div += k; + g += k * src[ir * srcStride + jr]; + processedKernelSize++; + } + } + } + + // check if all kernel elements were processed + if ( processedKernelSize == kernelSize ) + { + // all kernel elements are processed - we are not on the edge + div = divisor; + } + else + { + // we are on edge. do we need to use dynamic divisor or not? + if ( !dynamicDivisorForEdges ) + { + // do + div = divisor; + } + } + + // check divider + if ( div != 0 ) + { + g /= div; + } + g += threshold; + *dst = (ushort) ( ( g > 65535 ) ? 65535 : ( ( g < 0 ) ? 0 : g ) ); + } + } + } + + // Process 48 bpp images or 64 bpp images with copying alpha channel + private unsafe void Process48bppImage( ushort* baseSrc, ushort* baseDst, int srcStride, int dstStride, + int startX, int startY, int stopX, int stopY, int pixelSize ) + { + // loop and array indexes + int i, j, t, k, ir, jr; + // kernel's radius + int radius = size >> 1; + // color sums + long r, g, b, div; + + // kernel size + int kernelSize = size * size; + // number of kernel elements taken into account + int processedKernelSize; + + ushort* p; + + // for each line + for ( int y = startY; y < stopY; y++ ) + { + ushort* src = baseSrc + y * srcStride; + ushort* dst = baseDst + y * dstStride; + + // for each pixel + for ( int x = startX; x < stopX; x++, src += pixelSize, dst += pixelSize ) + { + r = g = b = div = processedKernelSize = 0; + + // for each kernel row + for ( i = 0; i < size; i++ ) + { + ir = i - radius; + t = y + ir; + + // skip row + if ( t < startY ) + continue; + // break + if ( t >= stopY ) + break; + + // for each kernel column + for ( j = 0; j < size; j++ ) + { + jr = j - radius; + t = x + jr; + + // skip column + if ( t < startX ) + continue; + + if ( t < stopX ) + { + k = kernel[i, j]; + p = &src[ir * srcStride + jr * pixelSize]; + + div += k; + + r += k * p[RGB.R]; + g += k * p[RGB.G]; + b += k * p[RGB.B]; + + processedKernelSize++; + } + } + } + + // check if all kernel elements were processed + if ( processedKernelSize == kernelSize ) + { + // all kernel elements are processed - we are not on the edge + div = divisor; + } + else + { + // we are on edge. do we need to use dynamic divisor or not? + if ( !dynamicDivisorForEdges ) + { + // do + div = divisor; + } + } + + // check divider + if ( div != 0 ) + { + r /= div; + g /= div; + b /= div; + } + r += threshold; + g += threshold; + b += threshold; + + dst[RGB.R] = (ushort) ( ( r > 65535 ) ? 65535 : ( ( r < 0 ) ? 0 : r ) ); + dst[RGB.G] = (ushort) ( ( g > 65535 ) ? 65535 : ( ( g < 0 ) ? 0 : g ) ); + dst[RGB.B] = (ushort) ( ( b > 65535 ) ? 65535 : ( ( b < 0 ) ? 0 : b ) ); + + // take care of alpha channel + if ( pixelSize == 4 ) + dst[RGB.A] = src[RGB.A]; + } + } + } + + // Process 64 bpp images including alpha channel + private unsafe void Process64bppImage( ushort* baseSrc, ushort* baseDst, int srcStride, int dstStride, + int startX, int startY, int stopX, int stopY ) + { + // loop and array indexes + int i, j, t, k, ir, jr; + // kernel's radius + int radius = size >> 1; + // color sums + long r, g, b, a, div; + + // kernel size + int kernelSize = size * size; + // number of kernel elements taken into account + int processedKernelSize; + + ushort* p; + + // for each line + for ( int y = startY; y < stopY; y++ ) + { + ushort* src = baseSrc + y * srcStride; + ushort* dst = baseDst + y * dstStride; + + // for each pixel + for ( int x = startX; x < stopX; x++, src += 4, dst += 4 ) + { + r = g = b = a = div = processedKernelSize = 0; + + // for each kernel row + for ( i = 0; i < size; i++ ) + { + ir = i - radius; + t = y + ir; + + // skip row + if ( t < startY ) + continue; + // break + if ( t >= stopY ) + break; + + // for each kernel column + for ( j = 0; j < size; j++ ) + { + jr = j - radius; + t = x + jr; + + // skip column + if ( t < startX ) + continue; + + if ( t < stopX ) + { + k = kernel[i, j]; + p = &src[ir * srcStride + jr * 4]; + + div += k; + + r += k * p[RGB.R]; + g += k * p[RGB.G]; + b += k * p[RGB.B]; + a += k * p[RGB.A]; + + processedKernelSize++; + } + } + } + + // check if all kernel elements were processed + if ( processedKernelSize == kernelSize ) + { + // all kernel elements are processed - we are not on the edge + div = divisor; + } + else + { + // we are on edge. do we need to use dynamic divisor or not? + if ( !dynamicDivisorForEdges ) + { + // do + div = divisor; + } + } + + // check divider + if ( div != 0 ) + { + r /= div; + g /= div; + b /= div; + a /= div; + } + r += threshold; + g += threshold; + b += threshold; + a += threshold; + + dst[RGB.R] = (ushort) ( ( r > 65535 ) ? 65535 : ( ( r < 0 ) ? 0 : r ) ); + dst[RGB.G] = (ushort) ( ( g > 65535 ) ? 65535 : ( ( g < 0 ) ? 0 : g ) ); + dst[RGB.B] = (ushort) ( ( b > 65535 ) ? 65535 : ( ( b < 0 ) ? 0 : b ) ); + dst[RGB.A] = (ushort) ( ( a > 65535 ) ? 65535 : ( ( a < 0 ) ? 0 : a ) ); + } + } + } + } +} diff --git a/Sources/Imaging/Filters/Convolution/Edges.cs b/Sources/Imaging/Filters/Convolution/Edges.cs new file mode 100644 index 00000000..2c51dd44 --- /dev/null +++ b/Sources/Imaging/Filters/Convolution/Edges.cs @@ -0,0 +1,54 @@ +// AForge Image Processing Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2005-2008 +// andrew.kirillov@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + /// + /// Simple edge detector. + /// + /// + /// The filter performs convolution filter using + /// the edges kernel: + /// + /// + /// 0 -1 0 + /// -1 4 -1 + /// 0 -1 0 + /// + /// + /// For the list of supported pixel formats, see the documentation to + /// filter. + /// + /// Sample usage: + /// + /// // create filter + /// Edges filter = new Edges( ); + /// // apply the filter + /// filter.ApplyInPlace( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + /// + /// + public sealed class Edges : Convolution + { + /// + /// Initializes a new instance of the class. + /// + public Edges( ) : base( new int[,] { + { 0, -1, 0 }, + { -1, 4, -1 }, + { 0, -1, 0 } } ) + { + } + } +} diff --git a/Sources/Imaging/Filters/Convolution/GaussianBlur.cs b/Sources/Imaging/Filters/Convolution/GaussianBlur.cs new file mode 100644 index 00000000..3392e7a4 --- /dev/null +++ b/Sources/Imaging/Filters/Convolution/GaussianBlur.cs @@ -0,0 +1,171 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Gaussian blur filter. + /// + /// + /// The filter performs convolution filter using + /// the kernel, which is calculate with the help of + /// method and then converted to integer kernel by dividing all elements by the element with the + /// smallest value. Using the kernel the convolution filter is known as Gaussian blur. + /// + /// Using property it is possible to configure + /// sigma value of Gaussian function. + /// + /// For the list of supported pixel formats, see the documentation to + /// filter. + /// + /// By default this filter sets property to + /// , so the alpha channel of 32 bpp and 64 bpp images is blurred as well. + /// + /// + /// Sample usage: + /// + /// // create filter with kernel size equal to 11 + /// // and Gaussia sigma value equal to 4.0 + /// GaussianBlur filter = new GaussianBlur( 4, 11 ); + /// // apply the filter + /// filter.ApplyInPlace( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + /// + /// + public sealed class GaussianBlur : Convolution + { + private double sigma = 1.4; + private int size = 5; + + /// + /// Gaussian sigma value, [0.5, 5.0]. + /// + /// + /// Sigma value for Gaussian function used to calculate + /// the kernel. + /// + /// Default value is set to 1.4. + /// + /// + public double Sigma + { + get { return sigma; } + set + { + // get new sigma value + sigma = Math.Max( 0.5, Math.Min( 5.0, value ) ); + // create filter + CreateFilter( ); + } + } + + /// + /// Kernel size, [3, 21]. + /// + /// + /// Size of Gaussian kernel. + /// + /// Default value is set to 5. + /// + /// + public int Size + { + get { return size; } + set + { + size = Math.Max( 3, Math.Min( 21, value | 1 ) ); + CreateFilter( ); + } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public GaussianBlur( ) + { + CreateFilter( ); + base.ProcessAlpha = true; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Gaussian sigma value. + /// + public GaussianBlur( double sigma ) + { + Sigma = sigma; + base.ProcessAlpha = true; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Gaussian sigma value. + /// Kernel size. + /// + public GaussianBlur( double sigma, int size ) + { + Sigma = sigma; + Size = size; + base.ProcessAlpha = true; + } + + // Private members + #region Private Members + + // Create Gaussian filter + private void CreateFilter( ) + { + // create Gaussian function + AForge.Math.Gaussian gaus = new AForge.Math.Gaussian( sigma ); + // create kernel + double[,] kernel = gaus.Kernel2D( size ); + double min = kernel[0, 0]; + // integer kernel + int[,] intKernel = new int[size, size]; + int divisor = 0; + + for ( int i = 0; i < size; i++ ) + { + for ( int j = 0; j < size; j++ ) + { + double v = kernel[i, j] / min; + + if ( v > ushort.MaxValue ) + { + v = ushort.MaxValue; + } + intKernel[i, j] = (int) v; + + // collect divisor + divisor += intKernel[i, j]; + } + } + + // update filter + this.Kernel = intKernel; + this.Divisor = divisor; + } + #endregion + } +} diff --git a/Sources/Imaging/Filters/Convolution/Mean.cs b/Sources/Imaging/Filters/Convolution/Mean.cs new file mode 100644 index 00000000..653b13c9 --- /dev/null +++ b/Sources/Imaging/Filters/Convolution/Mean.cs @@ -0,0 +1,63 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + /// + /// Mean filter. + /// + /// + /// The filter performs each pixel value's averaging with its 8 neighbors, which is + /// convolution filter using the mean kernel: + /// + /// + /// 1 1 1 + /// 1 1 1 + /// 1 1 1 + /// + /// + /// For the list of supported pixel formats, see the documentation to + /// filter. + /// + /// With the above kernel the convolution filter is just calculates each pixel's value + /// in result image as average of 9 corresponding pixels in the source image. + /// + /// By default this filter sets property to + /// , so the alpha channel of 32 bpp and 64 bpp images is blurred as well. + /// + /// + /// Sample usage: + /// + /// // create filter + /// Mean filter = new Mean( ); + /// // apply the filter + /// filter.ApplyInPlace( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + /// + /// + public sealed class Mean : Convolution + { + /// + /// Initializes a new instance of the class. + /// + public Mean( ) : base( new int[,] { + { 1, 1, 1 }, + { 1, 1, 1 }, + { 1, 1, 1 } } ) + { + base.ProcessAlpha = true; + } + } +} diff --git a/Sources/Imaging/Filters/Convolution/Sharpen.cs b/Sources/Imaging/Filters/Convolution/Sharpen.cs new file mode 100644 index 00000000..2911911e --- /dev/null +++ b/Sources/Imaging/Filters/Convolution/Sharpen.cs @@ -0,0 +1,54 @@ +// AForge Image Processing Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2005-2008 +// andrew.kirillov@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + /// + /// Sharpen filter + /// + /// + /// The filter performs convolution filter using + /// the sharpen kernel: + /// + /// + /// 0 -1 0 + /// -1 5 -1 + /// 0 -1 0 + /// + /// + /// For the list of supported pixel formats, see the documentation to + /// filter. + /// + /// Sample usage: + /// + /// // create filter + /// Sharpen filter = new Sharpen( ); + /// // apply the filter + /// filter.ApplyInPlace( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + /// + /// + public sealed class Sharpen : Convolution + { + /// + /// Initializes a new instance of the class. + /// + public Sharpen( ) : base( new int[,] { + { 0, -1, 0 }, + { -1, 5, -1 }, + { 0, -1, 0 } } ) + { + } + } +} diff --git a/Sources/Imaging/Filters/Convolution/SharpenEx.cs b/Sources/Imaging/Filters/Convolution/SharpenEx.cs new file mode 100644 index 00000000..dd33ec92 --- /dev/null +++ b/Sources/Imaging/Filters/Convolution/SharpenEx.cs @@ -0,0 +1,191 @@ +// AForge Image Processing Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2005-2008 +// andrew.kirillov@aforgenet.com +// +// Original idea of the SharpenEx found in Paint.NET project +// http://www.eecs.wsu.edu/paint.net/ +// +namespace AForge.Imaging.Filters +{ + using System; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Gaussian sharpen filter. + /// + /// + /// The filter performs convolution filter using + /// the kernel, which is calculate with the help of + /// method and then converted to integer sharpening kernel. First of all the integer kernel + /// is calculated from by dividing all elements by + /// the element with the smallest value. Then the integer kernel is converted to sharpen kernel by + /// negating all kernel's elements (multiplying with -1), but the central kernel's element + /// is calculated as 2 * sum - centralElement, where sum is the sum off elements + /// in the integer kernel before negating. + /// + /// For the list of supported pixel formats, see the documentation to + /// filter. + /// + /// Sample usage: + /// + /// // create filter with kernel size equal to 11 + /// // and Gaussia sigma value equal to 4.0 + /// GaussianSharpen filter = new GaussianSharpen( 4, 11 ); + /// // apply the filter + /// filter.ApplyInPlace( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + /// + /// + public class GaussianSharpen : Convolution + { + private double sigma = 1.4; + private int size = 5; + + /// + /// Gaussian sigma value, [0.5, 5.0]. + /// + /// + /// Sigma value for Gaussian function used to calculate + /// the kernel. + /// + /// Default value is set to 1.4. + /// + /// + public double Sigma + { + get { return sigma; } + set + { + // get new sigma value + sigma = Math.Max( 0.5, Math.Min( 5.0, value ) ); + // create filter + CreateFilter( ); + } + } + + /// + /// Kernel size, [3, 5]. + /// + /// + /// Size of Gaussian kernel. + /// + /// Default value is set to 5. + /// + /// + public int Size + { + get { return size; } + set + { + size = Math.Max( 3, Math.Min( 21, value | 1 ) ); + CreateFilter( ); + } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public GaussianSharpen( ) + { + CreateFilter( ); + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Gaussian sigma value. + /// + public GaussianSharpen( double sigma ) + { + Sigma = sigma; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Gaussian sigma value. + /// Kernel size. + /// + public GaussianSharpen( double sigma, int size ) + { + Sigma = sigma; + Size = size; + } + + // Private members + #region Private Members + + // Create Gaussian filter + private void CreateFilter( ) + { + // create Gaussian function + AForge.Math.Gaussian gaus = new AForge.Math.Gaussian( sigma ); + // create kernel + double[,] kernel = gaus.Kernel2D( size ); + double min = kernel[0, 0]; + // integer kernel + int[,] intKernel = new int[size, size]; + int sum = 0; + int divisor = 0; + + // calculate integer kernel + for ( int i = 0; i < size; i++ ) + { + for ( int j = 0; j < size; j++ ) + { + double v = kernel[i, j] / min; + + if ( v > ushort.MaxValue ) + { + v = ushort.MaxValue; + } + intKernel[i, j] = (int) v; + + // collect sum + sum += intKernel[i, j]; + } + } + + // recalc kernel + int c = size >> 1; + + for ( int i = 0; i < size; i++ ) + { + for ( int j = 0; j < size; j++ ) + { + if ( ( i == c ) && ( j == c ) ) + { + // calculate central value + intKernel[i, j] = 2 * sum - intKernel[i, j]; + } + else + { + // invert value + intKernel[i, j] = -intKernel[i, j]; + } + + // collect divisor + divisor += intKernel[i, j]; + } + } + + // update filter + this.Kernel = intKernel; + this.Divisor = divisor; + } + #endregion + } +} diff --git a/Sources/Imaging/Filters/Edge Detectors/CannyEdgeDetector.cs b/Sources/Imaging/Filters/Edge Detectors/CannyEdgeDetector.cs new file mode 100644 index 00000000..b6ec7404 --- /dev/null +++ b/Sources/Imaging/Filters/Edge Detectors/CannyEdgeDetector.cs @@ -0,0 +1,365 @@ +// AForge Image Processing Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2005-2008 +// andrew.kirillov@aforgenet.com +// +// Article by Bill Green was used as the reference +// http://www.pages.drexel.edu/~weg22/can_tut.html +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Canny edge detector. + /// + /// + /// The filter searches for objects' edges by applying Canny edge detector. + /// The implementation follows + /// Bill Green's Canny edge detection tutorial. + /// + /// The implemented canny edge detector has one difference with the above linked algorithm. + /// The difference is in hysteresis step, which is a bit simplified (getting faster as a result). On the + /// hysteresis step each pixel is compared with two threshold values: and + /// . If pixel's value is greater or equal to , then + /// it is kept as edge pixel. If pixel's value is greater or equal to , then + /// it is kept as edge pixel only if there is at least one neighbouring pixel (8 neighbours are checked) which + /// has value greater or equal to ; otherwise it is none edge pixel. In the case + /// if pixel's value is less than , then it is marked as none edge immediately. + /// + /// + /// The filter accepts 8 bpp grayscale images for processing. + /// + /// Sample usage: + /// + /// // create filter + /// CannyEdgeDetector filter = new CannyEdgeDetector( ); + /// // apply the filter + /// filter.ApplyInPlace( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + public class CannyEdgeDetector : BaseUsingCopyPartialFilter + { + private GaussianBlur gaussianFilter = new GaussianBlur( ); + private byte lowThreshold = 20; + private byte highThreshold = 100; + + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Low threshold. + /// + /// + /// Low threshold value used for hysteresis + /// (see tutorial + /// for more information). + /// + /// Default value is set to 20. + /// + /// + public byte LowThreshold + { + get { return lowThreshold; } + set { lowThreshold = value; } + } + + /// + /// High threshold. + /// + /// + /// High threshold value used for hysteresis + /// (see tutorial + /// for more information). + /// + /// Default value is set to 100. + /// + /// + public byte HighThreshold + { + get { return highThreshold; } + set { highThreshold = value; } + } + + /// + /// Gaussian sigma. + /// + /// + /// Sigma value for Gaussian bluring. + /// + public double GaussianSigma + { + get { return gaussianFilter.Sigma; } + set { gaussianFilter.Sigma = value; } + } + + /// + /// Gaussian size. + /// + /// + /// Size of Gaussian kernel. + /// + public int GaussianSize + { + get { return gaussianFilter.Size; } + set { gaussianFilter.Size = value; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public CannyEdgeDetector( ) + { + // initialize format translation dictionary + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format8bppIndexed; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Low threshold. + /// High threshold. + /// + public CannyEdgeDetector( byte lowThreshold, byte highThreshold ) : this( ) + { + this.lowThreshold = lowThreshold; + this.highThreshold = highThreshold; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Low threshold. + /// High threshold. + /// Gaussian sigma. + /// + public CannyEdgeDetector( byte lowThreshold, byte highThreshold, double sigma ) + : this( ) + { + this.lowThreshold = lowThreshold; + this.highThreshold = highThreshold; + gaussianFilter.Sigma = sigma; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Destination image data. + /// Image rectangle for processing by the filter. + /// + protected override unsafe void ProcessFilter( UnmanagedImage source, UnmanagedImage destination, Rectangle rect ) + { + // processing start and stop X,Y positions + int startX = rect.Left + 1; + int startY = rect.Top + 1; + int stopX = startX + rect.Width - 2; + int stopY = startY + rect.Height - 2; + + int width = rect.Width - 2; + int height = rect.Height - 2; + + int dstStride = destination.Stride; + int srcStride = source.Stride; + + int dstOffset = dstStride - rect.Width + 2; + int srcOffset = srcStride - rect.Width + 2; + + // pixel's value and gradients + int gx, gy; + // + double orientation, toAngle = 180.0 / System.Math.PI; + float leftPixel = 0, rightPixel = 0; + + // STEP 1 - blur image + UnmanagedImage blurredImage = gaussianFilter.Apply( source ); + + // orientation array + byte[] orients = new byte[width * height]; + // gradients array + float[,] gradients = new float[source.Width, source.Height]; + float maxGradient = float.NegativeInfinity; + + // do the job + byte* src = (byte*) blurredImage.ImageData.ToPointer( ); + // allign pointer + src += srcStride * startY + startX; + + // STEP 2 - calculate magnitude and edge orientation + int p = 0; + + // for each line + for ( int y = startY; y < stopY; y++ ) + { + // for each pixel + for ( int x = startX; x < stopX; x++, src++, p++ ) + { + gx = src[-srcStride + 1] + src[srcStride + 1] + - src[-srcStride - 1] - src[srcStride - 1] + + 2 * ( src[1] - src[-1] ); + + gy = src[-srcStride - 1] + src[-srcStride + 1] + - src[srcStride - 1] - src[srcStride + 1] + + 2 * ( src[-srcStride] - src[srcStride] ); + + // get gradient value + gradients[x, y] = (float) Math.Sqrt( gx * gx + gy * gy ); + if ( gradients[x, y] > maxGradient ) + maxGradient = gradients[x, y]; + + // --- get orientation + if ( gx == 0 ) + { + // can not divide by zero + orientation = ( gy == 0 ) ? 0 : 90; + } + else + { + double div = (double) gy / gx; + + // handle angles of the 2nd and 4th quads + if ( div < 0 ) + { + orientation = 180 - System.Math.Atan( -div ) * toAngle; + } + // handle angles of the 1st and 3rd quads + else + { + orientation = System.Math.Atan( div ) * toAngle; + } + + // get closest angle from 0, 45, 90, 135 set + if ( orientation < 22.5 ) + orientation = 0; + else if ( orientation < 67.5 ) + orientation = 45; + else if ( orientation < 112.5 ) + orientation = 90; + else if ( orientation < 157.5 ) + orientation = 135; + else orientation = 0; + } + + // save orientation + orients[p] = (byte) orientation; + } + src += srcOffset; + } + + // STEP 3 - suppres non maximums + byte* dst = (byte*) destination.ImageData.ToPointer( ); + // allign pointer + dst += dstStride * startY + startX; + + p = 0; + + // for each line + for ( int y = startY; y < stopY; y++ ) + { + // for each pixel + for ( int x = startX; x < stopX; x++, dst++, p++ ) + { + // get two adjacent pixels + switch ( orients[p] ) + { + case 0: + leftPixel = gradients[x - 1, y]; + rightPixel = gradients[x + 1, y]; + break; + case 45: + leftPixel = gradients[x - 1, y + 1]; + rightPixel = gradients[x + 1, y - 1]; + break; + case 90: + leftPixel = gradients[x, y + 1]; + rightPixel = gradients[x, y - 1]; + break; + case 135: + leftPixel = gradients[x + 1, y + 1]; + rightPixel = gradients[x - 1, y - 1]; + break; + } + // compare current pixels value with adjacent pixels + if ( ( gradients[x, y] < leftPixel ) || ( gradients[x, y] < rightPixel ) ) + { + *dst = 0; + } + else + { + *dst = (byte) ( gradients[x, y] / maxGradient * 255 ); + } + } + dst += dstOffset; + } + + // STEP 4 - hysteresis + dst = (byte*) destination.ImageData.ToPointer( ); + // allign pointer + dst += dstStride * startY + startX; + + // for each line + for ( int y = startY; y < stopY; y++ ) + { + // for each pixel + for ( int x = startX; x < stopX; x++, dst++ ) + { + if ( *dst < highThreshold ) + { + if ( *dst < lowThreshold ) + { + // non edge + *dst = 0; + } + else + { + // check 8 neighboring pixels + if ( ( dst[-1] < highThreshold ) && + ( dst[1] < highThreshold ) && + ( dst[-dstStride - 1] < highThreshold ) && + ( dst[-dstStride] < highThreshold ) && + ( dst[-dstStride + 1] < highThreshold ) && + ( dst[dstStride - 1] < highThreshold ) && + ( dst[dstStride] < highThreshold ) && + ( dst[dstStride + 1] < highThreshold ) ) + { + *dst = 0; + } + } + } + } + dst += dstOffset; + } + + // STEP 5 - draw black rectangle to remove those pixels, which were not processed + // (this needs to be done for those cases, when filter is applied "in place" - + // source image is modified instead of creating new copy) + Drawing.Rectangle( destination, rect, Color.Black ); + + // release blurred image + blurredImage.Dispose( ); + } + } +} diff --git a/Sources/Imaging/Filters/Edge Detectors/DifferenceEdgeDetector.cs b/Sources/Imaging/Filters/Edge Detectors/DifferenceEdgeDetector.cs new file mode 100644 index 00000000..3dc35dcc --- /dev/null +++ b/Sources/Imaging/Filters/Edge Detectors/DifferenceEdgeDetector.cs @@ -0,0 +1,151 @@ +// AForge Image Processing Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2005-2008 +// andrew.kirillov@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Difference edge detector. + /// + /// + /// The filter finds objects' edges by calculating maximum difference + /// between pixels in 4 directions around the processing pixel. + /// + /// Suppose 3x3 square element of the source image (x - is currently processed + /// pixel): + /// + /// P1 P2 P3 + /// P8 x P4 + /// P7 P6 P5 + /// + /// The corresponding pixel of the result image equals to: + /// + /// max( |P1-P5|, |P2-P6|, |P3-P7|, |P4-P8| ) + /// + /// + /// + /// The filter accepts 8 bpp grayscale images for processing. + /// + /// Sample usage: + /// + /// // create filter + /// DifferenceEdgeDetector filter = new DifferenceEdgeDetector( ); + /// // apply the filter + /// filter.ApplyInPlace( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + /// + /// + /// + public class DifferenceEdgeDetector : BaseUsingCopyPartialFilter + { + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public DifferenceEdgeDetector( ) + { + // initialize format translation dictionary + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format8bppIndexed; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Destination image data. + /// Image rectangle for processing by the filter. + /// + protected override unsafe void ProcessFilter( UnmanagedImage source, UnmanagedImage destination, Rectangle rect ) + { + // processing start and stop X,Y positions + int startX = rect.Left + 1; + int startY = rect.Top + 1; + int stopX = startX + rect.Width - 2; + int stopY = startY + rect.Height - 2; + + int dstStride = destination.Stride; + int srcStride = source.Stride; + + int dstOffset = dstStride - rect.Width + 2; + int srcOffset = srcStride - rect.Width + 2; + + int d, max; + + // data pointers + byte* src = (byte*) source.ImageData.ToPointer( ); + byte* dst = (byte*) destination.ImageData.ToPointer( ); + + // allign pointers + src += srcStride * startY + startX; + dst += dstStride * startY + startX; + + // for each line + for ( int y = startY; y < stopY; y++ ) + { + // for each pixel + for ( int x = startX; x < stopX; x++, src++, dst++ ) + { + // left diagonal + max = (int) src[-srcStride - 1] - src[srcStride + 1]; + if ( max < 0 ) + max = -max; + + // right diagonal + d = (int) src[-srcStride + 1] - src[srcStride - 1]; + if ( d < 0 ) + d = -d; + if ( d > max ) + max = d; + // vertical + d = (int) src[-srcStride] - src[srcStride]; + if ( d < 0 ) + d = -d; + if ( d > max ) + max = d; + // horizontal + d = (int) src[-1] - src[1]; + if ( d < 0 ) + d = -d; + if ( d > max ) + max = d; + + *dst = (byte) max; + } + src += srcOffset; + dst += dstOffset; + } + + // draw black rectangle to remove those pixels, which were not processed + // (this needs to be done for those cases, when filter is applied "in place" - + // source image is modified instead of creating new copy) + Drawing.Rectangle( destination, rect, Color.Black ); + } + } +} diff --git a/Sources/Imaging/Filters/Edge Detectors/HomogenityEdgeDetector.cs b/Sources/Imaging/Filters/Edge Detectors/HomogenityEdgeDetector.cs new file mode 100644 index 00000000..ffbef830 --- /dev/null +++ b/Sources/Imaging/Filters/Edge Detectors/HomogenityEdgeDetector.cs @@ -0,0 +1,180 @@ +// AForge Image Processing Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2005-2008 +// andrew.kirillov@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Homogenity edge detector. + /// + /// + /// The filter finds objects' edges by calculating maximum difference + /// of processing pixel with neighboring pixels in 8 direction. + /// + /// Suppose 3x3 square element of the source image (x - is currently processed + /// pixel): + /// + /// P1 P2 P3 + /// P8 x P4 + /// P7 P6 P5 + /// + /// The corresponding pixel of the result image equals to: + /// + /// max( |x-P1|, |x-P2|, |x-P3|, |x-P4|, + /// |x-P5|, |x-P6|, |x-P7|, |x-P8| ) + /// + /// + /// + /// The filter accepts 8 bpp grayscale images for processing. + /// + /// Sample usage: + /// + /// // create filter + /// HomogenityEdgeDetector filter = new HomogenityEdgeDetector( ); + /// // apply the filter + /// filter.ApplyInPlace( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + /// + /// + /// + public class HomogenityEdgeDetector : BaseUsingCopyPartialFilter + { + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public HomogenityEdgeDetector( ) + { + // initialize format translation dictionary + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format8bppIndexed; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Destination image data. + /// Image rectangle for processing by the filter. + /// + protected override unsafe void ProcessFilter( UnmanagedImage source, UnmanagedImage destination, Rectangle rect ) + { + // processing start and stop X,Y positions + int startX = rect.Left + 1; + int startY = rect.Top + 1; + int stopX = startX + rect.Width - 2; + int stopY = startY + rect.Height - 2; + + int dstStride = destination.Stride; + int srcStride = source.Stride; + + int dstOffset = dstStride - rect.Width + 2; + int srcOffset = srcStride - rect.Width + 2; + + int d, max, v; + + // data pointers + byte* src = (byte*) source.ImageData.ToPointer( ); + byte* dst = (byte*) destination.ImageData.ToPointer( ); + + // allign pointers + src += srcStride * startY + startX; + dst += dstStride * startY + startX; + + // for each line + for ( int y = startY; y < stopY; y++ ) + { + // for each pixel + for ( int x = startX; x < stopX; x++, src++, dst++ ) + { + max = 0; + v = *src; + + // top-left + d = v - src[-srcStride - 1]; + if ( d < 0 ) + d = -d; + if ( d > max ) + max = d; + // top + d = v - src[-srcStride]; + if ( d < 0 ) + d = -d; + if ( d > max ) + max = d; + // top-right + d = v - src[-srcStride + 1]; + if ( d < 0 ) + d = -d; + if ( d > max ) + max = d; + // left + d = v - src[-1]; + if ( d < 0 ) + d = -d; + if ( d > max ) + max = d; + // right + d = v - src[1]; + if ( d < 0 ) + d = -d; + if ( d > max ) + max = d; + // bottom-left + d = v - src[srcStride - 1]; + if ( d < 0 ) + d = -d; + if ( d > max ) + max = d; + // bottom + d = v - src[srcStride]; + if ( d < 0 ) + d = -d; + if ( d > max ) + max = d; + // bottom-right + d = v - src[srcStride + 1]; + if ( d < 0 ) + d = -d; + if ( d > max ) + max = d; + + *dst = (byte) max; + } + src += srcOffset; + dst += dstOffset; + } + + // draw black rectangle to remove those pixels, which were not processed + // (this needs to be done for those cases, when filter is applied "in place" - + // source image is modified instead of creating new copy) + Drawing.Rectangle( destination, rect, Color.Black ); + } + } +} diff --git a/Sources/Imaging/Filters/Edge Detectors/SobelEdgeDetector.cs b/Sources/Imaging/Filters/Edge Detectors/SobelEdgeDetector.cs new file mode 100644 index 00000000..9a0bde26 --- /dev/null +++ b/Sources/Imaging/Filters/Edge Detectors/SobelEdgeDetector.cs @@ -0,0 +1,188 @@ +// AForge Image Processing Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2005-2008 +// andrew.kirillov@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Sobel edge detector. + /// + /// + /// The filter searches for objects' edges by applying Sobel operator. + /// + /// Each pixel of the result image is calculated as approximated absolute gradient + /// magnitude for corresponding pixel of the source image: + /// + /// |G| = |Gx| + |Gy] , + /// + /// where Gx and Gy are calculate utilizing Sobel convolution kernels: + /// + /// Gx Gy + /// -1 0 +1 +1 +2 +1 + /// -2 0 +2 0 0 0 + /// -1 0 +1 -1 -2 -1 + /// + /// Using the above kernel the approximated magnitude for pixel x is calculate using + /// the next equation: + /// + /// P1 P2 P3 + /// P8 x P4 + /// P7 P6 P5 + /// + /// |G| = |P1 + 2P2 + P3 - P7 - 2P6 - P5| + + /// |P3 + 2P4 + P5 - P1 - 2P8 - P7| + /// + /// + /// + /// The filter accepts 8 bpp grayscale images for processing. + /// + /// Sample usage: + /// + /// // create filter + /// SobelEdgeDetector filter = new SobelEdgeDetector( ); + /// // apply the filter + /// filter.ApplyInPlace( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + /// + /// + /// + public class SobelEdgeDetector : BaseUsingCopyPartialFilter + { + private bool scaleIntensity = true; + + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Scale intensity or not. + /// + /// + /// The property determines if edges' pixels intensities of the result image + /// should be scaled in the range of the lowest and the highest possible intensity + /// values. + /// + /// Default value is set to . + /// + /// + public bool ScaleIntensity + { + get { return scaleIntensity; } + set { scaleIntensity = value; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public SobelEdgeDetector( ) + { + // initialize format translation dictionary + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format8bppIndexed; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Destination image data. + /// Image rectangle for processing by the filter. + /// + protected override unsafe void ProcessFilter( UnmanagedImage source, UnmanagedImage destination, Rectangle rect ) + { + // processing start and stop X,Y positions + int startX = rect.Left + 1; + int startY = rect.Top + 1; + int stopX = startX + rect.Width - 2; + int stopY = startY + rect.Height - 2; + + int dstStride = destination.Stride; + int srcStride = source.Stride; + + int dstOffset = dstStride - rect.Width + 2; + int srcOffset = srcStride - rect.Width + 2; + + // data pointers + byte* src = (byte*) source.ImageData.ToPointer( ); + byte* dst = (byte*) destination.ImageData.ToPointer( ); + + // allign pointers + src += srcStride * startY + startX; + dst += dstStride * startY + startX; + + // variables for gradient calculation + double g, max = 0; + + // for each line + for ( int y = startY; y < stopY; y++ ) + { + // for each pixel + for ( int x = startX; x < stopX; x++, src++, dst++ ) + { + g = Math.Min( 255, + Math.Abs( src[-srcStride - 1] + src[-srcStride + 1] + - src[ srcStride - 1] - src[ srcStride + 1] + + 2 * ( src[-srcStride] - src[srcStride] ) ) + + Math.Abs( src[-srcStride + 1] + src[srcStride + 1] + - src[-srcStride - 1] - src[srcStride - 1] + + 2 * ( src[1] - src[-1] ) ) ); + + if ( g > max ) + max = g; + *dst = (byte) g; + } + src += srcOffset; + dst += dstOffset; + } + + + // do we need scaling + if ( ( scaleIntensity ) && ( max != 255 ) ) + { + // make the second pass for intensity scaling + double factor = 255.0 / (double) max; + dst = (byte*) destination.ImageData.ToPointer( ); + dst += dstStride * startY + startX; + + // for each line + for ( int y = startY; y < stopY; y++ ) + { + // for each pixel + for ( int x = startX; x < stopX; x++, dst++ ) + { + *dst = (byte) ( factor * ( *dst ) ); + } + dst += dstOffset; + } + } + + // draw black rectangle to remove those pixels, which were not processed + // (this needs to be done for those cases, when filter is applied "in place" - + // source image is modified instead of creating new copy) + Drawing.Rectangle( destination, rect, Color.Black ); + } + } +} diff --git a/Sources/Imaging/Filters/FilterIterator.cs b/Sources/Imaging/Filters/FilterIterator.cs new file mode 100644 index 00000000..284e00e7 --- /dev/null +++ b/Sources/Imaging/Filters/FilterIterator.cs @@ -0,0 +1,276 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2010 +// contacts@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Filter iterator. + /// + /// + /// Filter iterator performs specified amount of filter's iterations. + /// The filter take the specified base filter and applies it + /// to source image specified amount of times. + /// + /// The filter itself does not have any restrictions to pixel format of source + /// image. This is set by base filter. + /// + /// The filter does image processing using only + /// interface of the specified base filter. This means + /// that this filter may not utilize all potential features of the base filter, like + /// in-place processing (see ) and region based processing + /// (see ). To utilize those features, it is required to + /// do filter's iteration manually. + /// + /// Sample usage (morphological thinning): + /// + /// // create filter sequence + /// FiltersSequence filterSequence = new FiltersSequence( ); + /// // add 8 thinning filters with different structuring elements + /// filterSequence.Add( new HitAndMiss( + /// new short [,] { { 0, 0, 0 }, { -1, 1, -1 }, { 1, 1, 1 } }, + /// HitAndMiss.Modes.Thinning ) ); + /// filterSequence.Add( new HitAndMiss( + /// new short [,] { { -1, 0, 0 }, { 1, 1, 0 }, { -1, 1, -1 } }, + /// HitAndMiss.Modes.Thinning ) ); + /// filterSequence.Add( new HitAndMiss( + /// new short [,] { { 1, -1, 0 }, { 1, 1, 0 }, { 1, -1, 0 } }, + /// HitAndMiss.Modes.Thinning ) ); + /// filterSequence.Add( new HitAndMiss( + /// new short [,] { { -1, 1, -1 }, { 1, 1, 0 }, { -1, 0, 0 } }, + /// HitAndMiss.Modes.Thinning ) ); + /// filterSequence.Add( new HitAndMiss( + /// new short [,] { { 1, 1, 1 }, { -1, 1, -1 }, { 0, 0, 0 } }, + /// HitAndMiss.Modes.Thinning ) ); + /// filterSequence.Add( new HitAndMiss( + /// new short [,] { { -1, 1, -1 }, { 0, 1, 1 }, { 0, 0, -1 } }, + /// HitAndMiss.Modes.Thinning ) ); + /// filterSequence.Add( new HitAndMiss( + /// new short [,] { { 0, -1, 1 }, { 0, 1, 1 }, { 0, -1, 1 } }, + /// HitAndMiss.Modes.Thinning ) ); + /// filterSequence.Add( new HitAndMiss( + /// new short [,] { { 0, 0, -1 }, { 0, 1, 1 }, { -1, 1, -1 } }, + /// HitAndMiss.Modes.Thinning ) ); + /// // create filter iterator for 10 iterations + /// FilterIterator filter = new FilterIterator( filterSequence, 10 ); + /// // apply the filter + /// Bitmap newImage = filter.Apply( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + public class FilterIterator : IFilter, IFilterInformation + { + private IFilter baseFilter; + private int iterations = 1; + + /// + /// Format translations dictionary. + /// + /// + /// See + /// documentation for additional information. + /// + /// The filter provides format translation dictionary taken from + /// filter. + /// + /// + public Dictionary FormatTranslations + { + get { return ( (IFilterInformation) baseFilter).FormatTranslations; } + } + + /// + /// Base filter. + /// + /// + /// The base filter is the filter to be applied specified amount of iterations to + /// a specified image. + /// + public IFilter BaseFilter + { + get { return baseFilter; } + set { baseFilter = value; } + } + + /// + /// Iterations amount, [1, 255]. + /// + /// + /// The amount of times to apply specified filter to a specified image. + /// + /// Default value is set to 1. + /// + /// + public int Iterations + { + get { return iterations; } + set { iterations = Math.Max( 1, Math.Min( 255, value ) ); } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Filter to iterate. + /// + public FilterIterator( IFilter baseFilter ) + { + this.baseFilter = baseFilter; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Filter to iterate. + /// Iterations amount. + /// + public FilterIterator( IFilter baseFilter, int iterations ) + { + this.baseFilter = baseFilter; + this.iterations = iterations; + } + + /// + /// Apply filter to an image. + /// + /// + /// Source image to apply filter to. + /// + /// Returns filter's result obtained by applying the filter to + /// the source image. + /// + /// The method keeps the source image unchanged and returns + /// the result of image processing filter as new image. + /// + public Bitmap Apply( Bitmap image ) + { + // lock source bitmap data + BitmapData imageData = image.LockBits( + new Rectangle( 0, 0, image.Width, image.Height ), + ImageLockMode.ReadOnly, image.PixelFormat ); + + // apply the filter + Bitmap dstImage = Apply( imageData ); + + // unlock source image + image.UnlockBits( imageData ); + + return dstImage; + } + + /// + /// Apply filter to an image. + /// + /// + /// Source image to apply filter to. + /// + /// Returns filter's result obtained by applying the filter to + /// the source image. + /// + /// The filter accepts bitmap data as input and returns the result + /// of image processing filter as new image. The source image data are kept + /// unchanged. + /// + public Bitmap Apply( BitmapData imageData ) + { + // initial iteration + Bitmap dstImg = baseFilter.Apply( imageData ); + Bitmap tmpImg; + + // continue to iterate + for ( int i = 1; i < iterations; i++ ) + { + tmpImg = dstImg; + dstImg = baseFilter.Apply( tmpImg ); + tmpImg.Dispose( ); + } + + return dstImg; + } + + /// + /// Apply filter to an image in unmanaged memory. + /// + /// + /// Source image in unmanaged memory to apply filter to. + /// + /// Returns filter's result obtained by applying the filter to + /// the source image. + /// + /// The method keeps the source image unchanged and returns + /// the result of image processing filter as new image. + /// + public UnmanagedImage Apply( UnmanagedImage image ) + { + // initial iteration + UnmanagedImage dstImg = baseFilter.Apply( image ); + UnmanagedImage tmpImg; + + // continue to iterate + for ( int i = 1; i < iterations; i++ ) + { + tmpImg = dstImg; + dstImg = baseFilter.Apply( tmpImg ); + tmpImg.Dispose( ); + } + + return dstImg; + } + + /// + /// Apply filter to an image in unmanaged memory. + /// + /// + /// Source image in unmanaged memory to apply filter to. + /// Destination image in unmanaged memory to put result into. + /// + /// The method keeps the source image unchanged and puts result of image processing + /// into destination image. + /// + /// The destination image must have the same width and height as source image. Also + /// destination image must have pixel format, which is expected by particular filter (see + /// property for information about pixel format conversions). + /// + /// + public void Apply( UnmanagedImage sourceImage, UnmanagedImage destinationImage ) + { + if ( iterations == 1 ) + { + baseFilter.Apply( sourceImage, destinationImage ); + } + else + { + // initial iteration + UnmanagedImage dstImg = baseFilter.Apply( sourceImage ); + UnmanagedImage tmpImg; + + iterations--; + // continue to iterate + for ( int i = 1; i < iterations; i++ ) + { + tmpImg = dstImg; + dstImg = baseFilter.Apply( tmpImg ); + tmpImg.Dispose( ); + } + + // put result of last iteration into the specified destination + baseFilter.Apply( dstImg, destinationImage ); + } + } + } +} diff --git a/Sources/Imaging/Filters/FiltersSequence.cs b/Sources/Imaging/Filters/FiltersSequence.cs new file mode 100644 index 00000000..8a311918 --- /dev/null +++ b/Sources/Imaging/Filters/FiltersSequence.cs @@ -0,0 +1,238 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2010 +// contacts@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Drawing; + using System.Drawing.Imaging; + using System.Collections; + + /// + /// Filters' collection to apply to an image in sequence. + /// + /// + /// The class represents collection of filters, which need to be applied + /// to an image in sequence. Using the class user may specify set of filters, which will + /// be applied to source image one by one in the order user defines them. + /// + /// The class itself does not define which pixel formats are accepted for the source + /// image and which pixel formats may be produced by the filter. Format of acceptable source + /// and possible output is defined by filters, which added to the sequence. + /// + /// Sample usage: + /// + /// // create filter, which is binarization sequence + /// FiltersSequence filter = new FiltersSequence( + /// new GrayscaleBT709( ), + /// new Threshold( ) + /// ); + /// // apply the filter + /// Bitmap newImage = filter.Apply( image ); + /// + /// + /// + public class FiltersSequence : CollectionBase, IFilter + { + /// + /// Initializes a new instance of the class. + /// + /// + public FiltersSequence( ) { } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Sequence of filters to apply. + /// + public FiltersSequence( params IFilter[] filters ) + { + InnerList.AddRange( filters ); + } + + /// + /// Get filter at the specified index. + /// + /// + /// Index of filter to get. + /// + /// Returns filter at specified index. + /// + public IFilter this[int index] + { + get { return ((IFilter) InnerList[index]); } + } + + /// + /// Add new filter to the sequence. + /// + /// + /// Filter to add to the sequence. + /// + public void Add( IFilter filter ) + { + InnerList.Add( filter ); + } + + /// + /// Apply filter to an image. + /// + /// + /// Source image to apply filter to. + /// + /// Returns filter's result obtained by applying the filter to + /// the source image. + /// + /// The method keeps the source image unchanged and returns + /// the result of image processing filter as new image. + /// + /// No filters were added into the filters' sequence. + /// + public Bitmap Apply( Bitmap image ) + { + Bitmap dstImage = null; + // lock source bitmap data + BitmapData imageData = image.LockBits( + new Rectangle( 0, 0, image.Width, image.Height ), + ImageLockMode.ReadOnly, image.PixelFormat ); + + try + { + // apply the filter + dstImage = Apply( imageData ); + } + finally + { + // unlock source image + image.UnlockBits( imageData ); + } + + return dstImage; + } + + /// + /// Apply filter to an image. + /// + /// + /// Source image to apply filter to. + /// + /// Returns filter's result obtained by applying the filter to + /// the source image. + /// + /// The filter accepts bitmap data as input and returns the result + /// of image processing filter as new image. The source image data are kept + /// unchanged. + /// + /// No filters were added into the filters' sequence. + /// + public Bitmap Apply( BitmapData imageData ) + { + // to increase performance the method passes execution to the method, which + // operates with unmanaged images - this saves time, because redundant managed + // locks/unlocks are eliminated + + // get result as an unmanaged image + UnmanagedImage dstUnmanagedImage = Apply( new UnmanagedImage( imageData ) ); + // convert unmanaged image to managed + Bitmap dstImage = dstUnmanagedImage.ToManagedImage( ); + // dispose unmanaged mage + dstUnmanagedImage.Dispose( ); + + return dstImage; + } + + /// + /// Apply filter to an image in unmanaged memory. + /// + /// + /// Source image in unmanaged memory to apply filter to. + /// + /// Returns filter's result obtained by applying the filter to + /// the source image. + /// + /// The method keeps the source image unchanged and returns + /// the result of image processing filter as new image. + /// + /// No filters were added into the filters' sequence. + /// + public UnmanagedImage Apply( UnmanagedImage image ) + { + int n = InnerList.Count; + + // check for empty sequence + if ( n == 0 ) + throw new ApplicationException( "No filters in the sequence." ); + + UnmanagedImage dstImg = null; + UnmanagedImage tmpImg = null; + + // apply the first filter + dstImg = ( (IFilter) InnerList[0] ).Apply( image ); + + // apply other filters + for ( int i = 1; i < n; i++ ) + { + tmpImg = dstImg; + dstImg = ( (IFilter) InnerList[i] ).Apply( tmpImg ); + tmpImg.Dispose( ); + } + + return dstImg; + } + + /// + /// Apply filter to an image in unmanaged memory. + /// + /// + /// Source image in unmanaged memory to apply filter to. + /// Destination image in unmanaged memory to put result into. + /// + /// The method keeps the source image unchanged and puts result of image processing + /// into destination image. + /// + /// The destination image must have width, height and pixel format as it is expected by + /// the final filter in the sequence. + /// + /// + /// No filters were added into the filters' sequence. + /// + public void Apply( UnmanagedImage sourceImage, UnmanagedImage destinationImage ) + { + int n = InnerList.Count; + + // check for empty sequence + if ( n == 0 ) + throw new ApplicationException( "No filters in the sequence." ); + + if ( n == 1 ) + { + ( (IFilter) InnerList[0] ).Apply( sourceImage, destinationImage ); + } + else + { + UnmanagedImage tmpImg1 = null; + UnmanagedImage tmpImg2 = null; + + // apply the first filter + tmpImg1 = ( (IFilter) InnerList[0] ).Apply( sourceImage ); + + // apply other filters, except the last one + n--; + for ( int i = 1; i < n; i++ ) + { + tmpImg2 = tmpImg1; + tmpImg1 = ( (IFilter) InnerList[i] ).Apply( tmpImg2 ); + tmpImg2.Dispose( ); + } + + ( (IFilter) InnerList[n] ).Apply( tmpImg1, destinationImage ); + } + } + } +} diff --git a/Sources/Imaging/Filters/Flood Fillers/PointedColorFloodFill.cs b/Sources/Imaging/Filters/Flood Fillers/PointedColorFloodFill.cs new file mode 100644 index 00000000..5161f4d5 --- /dev/null +++ b/Sources/Imaging/Filters/Flood Fillers/PointedColorFloodFill.cs @@ -0,0 +1,449 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2010 +// contacts@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Flood filling with specified color starting from specified point. + /// + /// + /// The filter performs image's area filling (4 directional) starting + /// from the specified point. It fills + /// the area of the pointed color, but also fills other colors, which + /// are similar to the pointed within specified tolerance. + /// The area is filled using specified fill color. + /// + /// + /// The filter accepts 8 bpp grayscale images and 24 bpp + /// color images for processing. + /// + /// Sample usage: + /// + /// // create filter + /// PointedColorFloodFill filter = new PointedColorFloodFill( ); + /// // configure the filter + /// filter.Tolerance = Color.FromArgb( 150, 92, 92 ); + /// filter.FillColor = Color.FromArgb( 255, 255, 255 ); + /// filter.StartingPoint = new IntPoint( 150, 100 ); + /// // apply the filter + /// filter.ApplyInPlace( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + /// + /// + public unsafe class PointedColorFloodFill : BaseInPlacePartialFilter + { + // map of pixels, which are already checked by the flood fill algorithm + private bool[,] checkedPixels; + + // set of variables (which describe image property and min/max color) to avoid passing them + // recursively as parameters + byte* scan0; // pointer to first image line + int stride; // size of image's line + int startX; // X1 of bounding rectangle + int stopX; // Y1 of bounding rectangle + int startY; // X2 of bounding rectangle (including) + int stopY; // Y2 of bounding rectangle (including) + + // min/max colors + byte minR, maxR; // min/max Red + byte minG, maxG; // min/max Green (Gray) color + byte minB, maxB; // min/max Blue + + // fill color + byte fillR, fillG, fillB; + + // starting point to fill from + private IntPoint startingPoint = new IntPoint( 0, 0 ); + // filling tolerance + private Color tolerance = Color.FromArgb( 0, 0, 0 ); + + // format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Flood fill tolerance. + /// + /// + /// The tolerance value determines which colors to fill. If the + /// value is set to 0, then only color of the pointed pixel + /// is filled. If the value is not 0, then other colors may be filled as well, + /// which are similar to the color of the pointed pixel within the specified + /// tolerance. + /// + /// The tolerance value is specified as , + /// where each component (R, G and B) represents tolerance for the corresponding + /// component of color. This allows to set different tolerances for red, green + /// and blue components. + /// + /// + public Color Tolerance + { + get { return tolerance; } + set { tolerance = value; } + } + + /// + /// Fill color. + /// + /// + /// The fill color is used to fill image's area starting from the + /// specified point. + /// + /// For grayscale images the color needs to be specified with all three + /// RGB values set to the same value, (128, 128, 128) for example. + /// + /// Default value is set to black. + /// + /// + public Color FillColor + { + get { return Color.FromArgb( fillR, fillG, fillB ); } + set + { + fillR = value.R; + fillG = value.G; + fillB = value.B; + } + } + + /// + /// Point to start filling from. + /// + /// + /// The property allows to set the starting point, where filling is + /// started from. + /// + /// Default value is set to (0, 0). + /// + /// + public IntPoint StartingPoint + { + get { return startingPoint; } + set { startingPoint = value; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public PointedColorFloodFill( ) + { + // initialize format translation dictionary + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format8bppIndexed; + formatTranslations[PixelFormat.Format24bppRgb] = PixelFormat.Format24bppRgb; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Fill color. + /// + public PointedColorFloodFill( Color fillColor ) + : this( ) + { + FillColor = fillColor; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Image rectangle for processing by the filter. + /// + protected override unsafe void ProcessFilter( UnmanagedImage image, Rectangle rect ) + { + // skip, if there is nothing to fill + if ( !rect.Contains( startingPoint.X, startingPoint.Y ) ) + return; + + // save bounding rectangle + startX = rect.Left; + startY = rect.Top; + stopX = rect.Right - 1; + stopY = rect.Bottom - 1; + + // save image properties + scan0 = (byte*) image.ImageData.ToPointer( ); + stride = image.Stride; + + // create map visited pixels + checkedPixels = new bool[image.Height, image.Width]; + + if ( image.PixelFormat == PixelFormat.Format8bppIndexed ) + { + byte startColor = *( (byte*) CoordsToPointerGray( startingPoint.X, startingPoint.Y ) ); + minG = (byte) ( Math.Max( 0, startColor - tolerance.G ) ); + maxG = (byte) ( Math.Min( 255, startColor + tolerance.G ) ); + + LinearFloodFill4Gray( startingPoint ); + } + else + { + byte* startColor = (byte*) CoordsToPointerRGB( startingPoint.X, startingPoint.Y ); + + minR = (byte) ( Math.Max( 0, startColor[RGB.R] - tolerance.R ) ); + maxR = (byte) ( Math.Min( 255, startColor[RGB.R] + tolerance.R ) ); + minG = (byte) ( Math.Max( 0, startColor[RGB.G] - tolerance.G ) ); + maxG = (byte) ( Math.Min( 255, startColor[RGB.G] + tolerance.G ) ); + minB = (byte) ( Math.Max( 0, startColor[RGB.B] - tolerance.B ) ); + maxB = (byte) ( Math.Min( 255, startColor[RGB.B] + tolerance.B ) ); + + LinearFloodFill4RGB( startingPoint ); + } + } + + // Liner flood fill in 4 directions for grayscale images + private unsafe void LinearFloodFill4Gray( IntPoint startingPoint ) + { + Queue points = new Queue( ); + points.Enqueue( startingPoint ); + + while ( points.Count > 0 ) + { + IntPoint point = points.Dequeue( ); + + int x = point.X; + int y = point.Y; + + // get image pointer for current (X, Y) + byte* p = (byte*) CoordsToPointerGray( x, y ); + + // find left end of line to fill + int leftLineEdge = x; + byte* ptr = p; + + while ( true ) + { + // fill current pixel + *ptr = fillG; + // mark the pixel as checked + checkedPixels[y, leftLineEdge] = true; + + leftLineEdge--; + ptr -= 1; + + // check if we need to stop on the edge of image or color area + if ( ( leftLineEdge < startX ) || ( checkedPixels[y, leftLineEdge] ) || ( !CheckGrayPixel( *ptr ) ) ) + break; + + } + leftLineEdge++; + + // find right end of line to fill + int rightLineEdge = x; + ptr = p; + + while ( true ) + { + // fill current pixel + *ptr = fillG; + // mark the pixel as checked + checkedPixels[y, rightLineEdge] = true; + + rightLineEdge++; + ptr += 1; + + // check if we need to stop on the edge of image or color area + if ( rightLineEdge > stopX || ( checkedPixels[y, rightLineEdge] ) || ( !CheckGrayPixel( *ptr ) ) ) + break; + } + rightLineEdge--; + + + // loop to go up and down + ptr = (byte*) CoordsToPointerGray( leftLineEdge, y ); + + bool upperPointIsQueued = false; + bool lowerPointIsQueued = false; + int upperY = y - 1; + int lowerY = y + 1; + + for ( int i = leftLineEdge; i <= rightLineEdge; i++, ptr++ ) + { + // go up + if ( ( y > startY ) && ( !checkedPixels[y - 1, i] ) && ( CheckGrayPixel( *( ptr - stride ) ) ) ) + { + if ( !upperPointIsQueued ) + { + points.Enqueue( new IntPoint( i, upperY ) ); + upperPointIsQueued = true; + } + } + else + { + upperPointIsQueued = false; + } + + // go down + if ( ( y < stopY ) && ( !checkedPixels[y + 1, i] ) && ( CheckGrayPixel( *( ptr + stride ) ) ) ) + { + if ( !lowerPointIsQueued ) + { + points.Enqueue( new IntPoint( i, lowerY ) ); + lowerPointIsQueued = true; + } + } + else + { + lowerPointIsQueued = false; + } + } + } + } + + // Liner flood fill in 4 directions for RGB + private unsafe void LinearFloodFill4RGB( IntPoint startPoint ) + { + Queue points = new Queue( ); + points.Enqueue( startingPoint ); + + while ( points.Count > 0 ) + { + IntPoint point = points.Dequeue( ); + + int x = point.X; + int y = point.Y; + + // get image pointer for current (X, Y) + byte* p = (byte*) CoordsToPointerRGB( x, y ); + + // find left end of line to fill + int leftLineEdge = x; + byte* ptr = p; + + while ( true ) + { + // fill current pixel + ptr[RGB.R] = fillR; + ptr[RGB.G] = fillG; + ptr[RGB.B] = fillB; + // mark the pixel as checked + checkedPixels[y, leftLineEdge] = true; + + leftLineEdge--; + ptr -= 3; + + // check if we need to stop on the edge of image or color area + if ( ( leftLineEdge < startX ) || ( checkedPixels[y, leftLineEdge] ) || ( !CheckRGBPixel( ptr ) ) ) + break; + + } + leftLineEdge++; + + // find right end of line to fill + int rightLineEdge = x; + ptr = p; + + while ( true ) + { + // fill current pixel + ptr[RGB.R] = fillR; + ptr[RGB.G] = fillG; + ptr[RGB.B] = fillB; + // mark the pixel as checked + checkedPixels[y, rightLineEdge] = true; + + rightLineEdge++; + ptr += 3; + + // check if we need to stop on the edge of image or color area + if ( rightLineEdge > stopX || ( checkedPixels[y, rightLineEdge] ) || ( !CheckRGBPixel( ptr ) ) ) + break; + } + rightLineEdge--; + + // loop to go up and down + ptr = (byte*) CoordsToPointerRGB( leftLineEdge, y ); + + bool upperPointIsQueued = false; + bool lowerPointIsQueued = false; + int upperY = y - 1; + int lowerY = y + 1; + + for ( int i = leftLineEdge; i <= rightLineEdge; i++, ptr += 3 ) + { + // go up + if ( ( y > startY ) && ( !checkedPixels[upperY, i] ) && ( CheckRGBPixel( ptr - stride ) ) ) + { + if ( !upperPointIsQueued ) + { + points.Enqueue( new IntPoint( i, upperY ) ); + upperPointIsQueued = true; + } + } + else + { + upperPointIsQueued = false; + } + + // go down + if ( ( y < stopY ) && ( !checkedPixels[lowerY, i] ) && ( CheckRGBPixel( ptr + stride ) ) ) + { + if ( !lowerPointIsQueued ) + { + points.Enqueue( new IntPoint( i, lowerY ) ); + lowerPointIsQueued = true; + } + } + else + { + lowerPointIsQueued = false; + } + } + } + } + + // Check if pixel equals to the starting color within required tolerance + private unsafe bool CheckGrayPixel( byte pixel ) + { + return ( pixel >= minG ) && ( pixel <= maxG ); + } + + // Check if pixel equals to the starting color within required tolerance + private unsafe bool CheckRGBPixel( byte* pixel ) + { + return ( pixel[RGB.R] >= minR ) && ( pixel[RGB.R] <= maxR ) && + ( pixel[RGB.G] >= minG ) && ( pixel[RGB.G] <= maxG ) && + ( pixel[RGB.B] >= minB ) && ( pixel[RGB.B] <= maxB ); + } + + // Convert image coordinate to pointer for Grayscale images + private byte* CoordsToPointerGray( int x, int y ) + { + return scan0 + ( stride * y ) + x; + } + + // Convert image coordinate to pointer for RGB images + private byte* CoordsToPointerRGB( int x, int y ) + { + return scan0 + ( stride * y ) + x * 3; + } + } +} diff --git a/Sources/Imaging/Filters/Flood Fillers/PointedMeanFloodFill.cs b/Sources/Imaging/Filters/Flood Fillers/PointedMeanFloodFill.cs new file mode 100644 index 00000000..84ed02bb --- /dev/null +++ b/Sources/Imaging/Filters/Flood Fillers/PointedMeanFloodFill.cs @@ -0,0 +1,407 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2005-2009 +// andrew.kirillov@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Flood filling with mean color starting from specified point. + /// + /// + /// The filter performs image's area filling (4 directional) starting + /// from the specified point. It fills + /// the area of the pointed color, but also fills other colors, which + /// are similar to the pointed within specified tolerance. + /// The area is filled using its mean color. + /// + /// + /// The filter is similar to filter, but instead + /// of filling the are with specified color, it fills the area with its mean color. This means + /// that this is a two pass filter - first pass is to calculate the mean value and the second pass is to + /// fill the area. Unlike to filter, this filter has nothing + /// to do in the case if zero tolerance is specified. + /// + /// The filter accepts 8 bpp grayscale images and 24 bpp + /// color images for processing. + /// + /// Sample usage: + /// + /// // create filter + /// PointedMeanFloodFill filter = new PointedMeanFloodFill( ); + /// // configre the filter + /// filter.Tolerance = Color.FromArgb( 150, 92, 92 ); + /// filter.StartingPoint = new IntPoint( 150, 100 ); + /// // apply the filter + /// filter.ApplyInPlace( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + /// + /// + public unsafe class PointedMeanFloodFill : BaseInPlacePartialFilter + { + // map of pixels, which are already checked by the flood fill algorithm + private bool[,] checkedPixels; + + // set of variables (which describe image property and min/max color) to avoid passing them + // recursively as parameters + byte* scan0; // pointer to first image line + int stride; // size of image's line + int startX; // X1 of bounding rectangle + int stopX; // Y1 of bounding rectangle + int startY; // X2 of bounding rectangle (including) + int stopY; // Y2 of bounding rectangle (including) + + // min/max colors + byte minR, maxR; // min/max Red + byte minG, maxG; // min/max Green (Gray) color + byte minB, maxB; // min/max Blue + + // mean color + int meanR, meanG, meanB; + int pixelsCount = 0; + + // starting point to fill from + private IntPoint startingPoint = new IntPoint( 0, 0 ); + // filling tolerance + private Color tolerance = Color.FromArgb( 16, 16, 16 ); + + // format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + /// + /// See + /// documentation for additional information. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Flood fill tolerance. + /// + /// + /// The tolerance value determines the level of similarity between + /// colors to fill and the pointed color. If the value is set to zero, then the + /// filter does nothing, since the filling area contains only one color and its + /// filling with mean is meaningless. + /// + /// The tolerance value is specified as , + /// where each component (R, G and B) represents tolerance for the corresponding + /// component of color. This allows to set different tolerances for red, green + /// and blue components. + /// + /// Default value is set to (16, 16, 16). + /// + /// + public Color Tolerance + { + get { return tolerance; } + set { tolerance = value; } + } + + /// + /// Point to start filling from. + /// + /// + /// The property allows to set the starting point, where filling is + /// started from. + /// + /// Default value is set to (0, 0). + /// + /// + public IntPoint StartingPoint + { + get { return startingPoint; } + set { startingPoint = value; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public PointedMeanFloodFill( ) + { + // initialize format translation dictionary + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format8bppIndexed; + formatTranslations[PixelFormat.Format24bppRgb] = PixelFormat.Format24bppRgb; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Image rectangle for processing by the filter. + /// + protected override unsafe void ProcessFilter( UnmanagedImage image, Rectangle rect ) + { + // skip, if there is nothing to fill + if ( !rect.Contains( startingPoint.X, startingPoint.Y ) || ( tolerance == Color.Black ) ) + return; + + // save bounding rectangle + startX = rect.Left; + startY = rect.Top; + stopX = rect.Right - 1; + stopY = rect.Bottom - 1; + + // save image properties + scan0 = (byte*) image.ImageData.ToPointer( ); + stride = image.Stride; + + // create map of visited pixels + checkedPixels = new bool[image.Height, image.Width]; + + pixelsCount = meanR = meanG = meanB = 0; + + if ( image.PixelFormat == PixelFormat.Format8bppIndexed ) + { + byte startColor= *( (byte*) CoordsToPointerGray( startingPoint.X, startingPoint.Y ) ); + minG = (byte) ( Math.Max( 0, startColor - tolerance.G ) ); + maxG = (byte) ( Math.Min( 255, startColor + tolerance.G ) ); + + LinearFloodFill4Gray( startingPoint.X, startingPoint.Y ); + + // calculate mean value + meanG /= pixelsCount; + byte fillG = (byte) meanG; + + // do fill with the mean + byte* src = (byte*) image.ImageData.ToPointer( ); + // allign pointer to the first pixel to process + src += ( startY * stride + startX ); + + int offset = stride - rect.Width; + + // for each line + for ( int y = startY; y <= stopY; y++ ) + { + // for each pixel + for ( int x = startX; x <= stopX; x++, src++ ) + { + if ( checkedPixels[y, x] ) + { + *src = fillG; + } + } + src += offset; + } + } + else + { + byte* startColor= (byte*) CoordsToPointerRGB( startingPoint.X, startingPoint.Y ); + + minR = (byte) ( Math.Max( 0, startColor[RGB.R] - tolerance.R ) ); + maxR = (byte) ( Math.Min( 255, startColor[RGB.R] + tolerance.R ) ); + minG = (byte) ( Math.Max( 0, startColor[RGB.G] - tolerance.G ) ); + maxG = (byte) ( Math.Min( 255, startColor[RGB.G] + tolerance.G ) ); + minB = (byte) ( Math.Max( 0, startColor[RGB.B] - tolerance.B ) ); + maxB = (byte) ( Math.Min( 255, startColor[RGB.B] + tolerance.B ) ); + + LinearFloodFill4RGB( startingPoint.X, startingPoint.Y ); + + // calculate mean value + meanR /= pixelsCount; + meanG /= pixelsCount; + meanB /= pixelsCount; + + byte fillR = (byte) meanR; + byte fillG = (byte) meanG; + byte fillB = (byte) meanB; + + // do fill with the mean + byte* src = (byte*) image.ImageData.ToPointer( ); + // allign pointer to the first pixel to process + src += ( startY * stride + startX * 3); + + int offset = stride - rect.Width * 3; + + // for each line + for ( int y = startY; y <= stopY; y++ ) + { + // for each pixel + for ( int x = startX; x <= stopX; x++, src += 3 ) + { + if ( checkedPixels[y, x] ) + { + src[RGB.R] = fillR; + src[RGB.G] = fillG; + src[RGB.B] = fillB; + } + } + src += offset; + } + } + } + + // Liner flood fill in 4 directions for grayscale images + private unsafe void LinearFloodFill4Gray( int x, int y ) + { + // get image pointer for current (X, Y) + byte* p = (byte*) CoordsToPointerGray( x, y ); + + // find left end of line to fill + int leftLineEdge = x; + byte* ptr = p; + + while ( true ) + { + // sum value of the current pixel + meanG += *ptr; + pixelsCount++; + // mark the pixel as checked + checkedPixels[y, leftLineEdge] = true; + + leftLineEdge--; + ptr -= 1; + + // check if we need to stop on the edge of image or color area + if ( ( leftLineEdge < startX ) || ( checkedPixels[y, leftLineEdge] ) || ( !CheckGrayPixel( *ptr ) ) ) + break; + + } + leftLineEdge++; + + // find right end of line to fill + int rightLineEdge = x + 1; + ptr = p + 1; + + // while we don't need to stop on the edge of image or color area + while ( !( rightLineEdge > stopX || ( checkedPixels[y, rightLineEdge] ) || ( !CheckGrayPixel( *ptr ) ) ) ) + { + // sum value of the current pixel + meanG += *ptr; + pixelsCount++; + // mark the pixel as checked + checkedPixels[y, rightLineEdge] = true; + + rightLineEdge++; + ptr += 1; + + } + rightLineEdge--; + + + // loop to go up and down + ptr = (byte*) CoordsToPointerGray( leftLineEdge, y ); + for ( int i = leftLineEdge; i <= rightLineEdge; i++, ptr++ ) + { + // go up + if ( ( y > startY ) && ( !checkedPixels[y - 1, i] ) && ( CheckGrayPixel( *( ptr - stride ) ) ) ) + LinearFloodFill4Gray( i, y - 1 ); + // go down + if ( ( y < stopY ) && ( !checkedPixels[y + 1, i] ) && ( CheckGrayPixel( *( ptr + stride ) ) ) ) + LinearFloodFill4Gray( i, y + 1 ); + } + } + + // Liner flood fill in 4 directions for RGB + private unsafe void LinearFloodFill4RGB( int x, int y ) + { + // get image pointer for current (X, Y) + byte* p = (byte*) CoordsToPointerRGB( x, y ); + + // find left end of line to fill + int leftLineEdge = x; + byte* ptr = p; + + while ( true ) + { + // sum value of the current pixel + meanR += ptr[RGB.R]; + meanG += ptr[RGB.G]; + meanB += ptr[RGB.B]; + pixelsCount++; + // mark the pixel as checked + checkedPixels[y, leftLineEdge] = true; + + leftLineEdge--; + ptr -= 3; + + // check if we need to stop on the edge of image or color area + if ( ( leftLineEdge < startX ) || ( checkedPixels[y, leftLineEdge] ) || ( !CheckRGBPixel( ptr ) ) ) + break; + + } + leftLineEdge++; + + // find right end of line to fill + int rightLineEdge = x + 1; + ptr = p + 3; + + // while we don't need to stop on the edge of image or color area + while ( !( rightLineEdge > stopX || ( checkedPixels[y, rightLineEdge] ) || ( !CheckRGBPixel( ptr ) ) ) ) + { + // sum value of the current pixel + meanR += ptr[RGB.R]; + meanG += ptr[RGB.G]; + meanB += ptr[RGB.B]; + pixelsCount++; + // mark the pixel as checked + checkedPixels[y, rightLineEdge] = true; + + rightLineEdge++; + ptr += 3; + } + rightLineEdge--; + + + // loop to go up and down + ptr = (byte*) CoordsToPointerRGB( leftLineEdge, y ); + for ( int i = leftLineEdge; i <= rightLineEdge; i++, ptr += 3 ) + { + // go up + if ( ( y > startY ) && ( !checkedPixels[y - 1, i] ) && ( CheckRGBPixel( ptr - stride ) ) ) + LinearFloodFill4RGB( i, y - 1 ); + // go down + if ( ( y < stopY ) && ( !checkedPixels[y + 1, i] ) && ( CheckRGBPixel( ptr + stride ) ) ) + LinearFloodFill4RGB( i, y + 1 ); + } + } + + // Check if pixel equals to the starting color within required tolerance + private unsafe bool CheckGrayPixel( byte pixel ) + { + return ( pixel >= minG ) && ( pixel <= maxG ); + } + + // Check if pixel equals to the starting color within required tolerance + private unsafe bool CheckRGBPixel( byte* pixel ) + { + return ( pixel[RGB.R] >= minR ) && ( pixel[RGB.R] <= maxR ) && + ( pixel[RGB.G] >= minG ) && ( pixel[RGB.G] <= maxG ) && + ( pixel[RGB.B] >= minB ) && ( pixel[RGB.B] <= maxB ); + } + + // Convert image coordinate to pointer for Grayscale images + private byte* CoordsToPointerGray( int x, int y ) + { + return scan0 + ( stride * y ) + x; + } + + // Convert image coordinate to pointer for RGB images + private byte* CoordsToPointerRGB( int x, int y ) + { + return scan0 + ( stride * y ) + x * 3; + } + } +} diff --git a/Sources/Imaging/Filters/HSL Filters/HSLFiltering.cs b/Sources/Imaging/Filters/HSL Filters/HSLFiltering.cs new file mode 100644 index 00000000..d913fcea --- /dev/null +++ b/Sources/Imaging/Filters/HSL Filters/HSLFiltering.cs @@ -0,0 +1,312 @@ +// AForge Image Processing Library +// AForge.NET framework +// +// Copyright © AForge.NET, 2007-2011 +// contacts@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + using AForge; + + /// + /// Color filtering in HSL color space. + /// + /// + /// The filter operates in HSL color space and filters + /// pixels, which color is inside/outside of the specified HSL range - + /// it keeps pixels with colors inside/outside of the specified range and fills the + /// rest with specified color. + /// + /// The filter accepts 24 and 32 bpp color images for processing. + /// + /// Sample usage: + /// + /// // create filter + /// HSLFiltering filter = new HSLFiltering( ); + /// // set color ranges to keep + /// filter.Hue = new IntRange( 335, 0 ); + /// filter.Saturation = new Range( 0.6f, 1 ); + /// filter.Luminance = new Range( 0.1f, 1 ); + /// // apply the filter + /// filter.ApplyInPlace( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// Sample usage with saturation update only: + /// + /// // create filter + /// HSLFiltering filter = new HSLFiltering( ); + /// // configure the filter + /// filter.Hue = new IntRange( 340, 20 ); + /// filter.UpdateLuminance = false; + /// filter.UpdateHue = false; + /// // apply the filter + /// filter.ApplyInPlace( image ); + /// + /// + /// Result image: + /// + /// + /// + /// + /// + /// + public class HSLFiltering : BaseInPlacePartialFilter + { + private IntRange hue = new IntRange( 0, 359 ); + private Range saturation = new Range( 0.0f, 1.0f ); + private Range luminance = new Range( 0.0f, 1.0f ); + + private int fillH = 0; + private float fillS = 0.0f; + private float fillL = 0.0f; + private bool fillOutsideRange = true; + + private bool updateH = true; + private bool updateS = true; + private bool updateL = true; + + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + #region Public properties + + /// + /// Range of hue component, [0, 359]. + /// + /// + /// Because of hue values are cycled, the minimum value of the hue + /// range may have bigger integer value than the maximum value, for example [330, 30]. + /// + public IntRange Hue + { + get { return hue; } + set { hue = value; } + } + + /// + /// Range of saturation component, [0, 1]. + /// + public Range Saturation + { + get { return saturation; } + set { saturation = value; } + } + + /// + /// Range of luminance component, [0, 1]. + /// + public Range Luminance + { + get { return luminance; } + set { luminance = value; } + } + + /// + /// Fill color used to fill filtered pixels. + /// + public HSL FillColor + { + get { return new HSL( fillH, fillS, fillL ); } + set + { + fillH = value.Hue; + fillS = value.Saturation; + fillL = value.Luminance; + } + } + + /// + /// Determines, if pixels should be filled inside or outside specified + /// color range. + /// + /// + /// Default value is set to , which means + /// the filter removes colors outside of the specified range. + /// + public bool FillOutsideRange + { + get { return fillOutsideRange; } + set { fillOutsideRange = value; } + } + + /// + /// Determines, if hue value of filtered pixels should be updated. + /// + /// + /// The property specifies if hue of filtered pixels should be + /// updated with value from fill color or not. + /// + /// Default value is set to . + /// + public bool UpdateHue + { + get { return updateH; } + set { updateH = value; } + } + + /// + /// Determines, if saturation value of filtered pixels should be updated. + /// + /// + /// The property specifies if saturation of filtered pixels should be + /// updated with value from fill color or not. + /// + /// Default value is set to . + /// + public bool UpdateSaturation + { + get { return updateS; } + set { updateS = value; } + } + + /// + /// Determines, if luminance value of filtered pixels should be updated. + /// + /// + /// The property specifies if luminance of filtered pixels should be + /// updated with value from fill color or not. + /// + /// Default value is set to . + /// + public bool UpdateLuminance + { + get { return updateL; } + set { updateL = value; } + } + + #endregion + + + /// + /// Initializes a new instance of the class. + /// + public HSLFiltering( ) + { + formatTranslations[PixelFormat.Format24bppRgb] = PixelFormat.Format24bppRgb; + formatTranslations[PixelFormat.Format32bppRgb] = PixelFormat.Format32bppRgb; + formatTranslations[PixelFormat.Format32bppArgb] = PixelFormat.Format32bppArgb; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Range of hue component. + /// Range of saturation component. + /// Range of luminance component. + /// + public HSLFiltering( IntRange hue, Range saturation, Range luminance ) : + this( ) + { + this.hue = hue; + this.saturation = saturation; + this.luminance = luminance; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Image rectangle for processing by the filter. + /// + protected override unsafe void ProcessFilter( UnmanagedImage image, Rectangle rect ) + { + // get pixel size + int pixelSize = ( image.PixelFormat == PixelFormat.Format24bppRgb ) ? 3 : 4; + + int startX = rect.Left; + int startY = rect.Top; + int stopX = startX + rect.Width; + int stopY = startY + rect.Height; + int offset = image.Stride - rect.Width * pixelSize; + + RGB rgb = new RGB( ); + HSL hsl = new HSL( ); + + bool updated; + + // do the job + byte* ptr = (byte*) image.ImageData.ToPointer( ); + + // allign pointer to the first pixel to process + ptr += ( startY * image.Stride + startX * pixelSize ); + + // for each row + for ( int y = startY; y < stopY; y++ ) + { + // for each pixel + for ( int x = startX; x < stopX; x++, ptr += pixelSize ) + { + updated = false; + rgb.Red = ptr[RGB.R]; + rgb.Green = ptr[RGB.G]; + rgb.Blue = ptr[RGB.B]; + + // convert to HSL + AForge.Imaging.HSL.FromRGB( rgb, hsl ); + + // check HSL values + if ( + ( hsl.Saturation >= saturation.Min ) && ( hsl.Saturation <= saturation.Max ) && + ( hsl.Luminance >= luminance.Min ) && ( hsl.Luminance <= luminance.Max ) && + ( + ( ( hue.Min < hue.Max ) && ( hsl.Hue >= hue.Min ) && ( hsl.Hue <= hue.Max ) ) || + ( ( hue.Min > hue.Max ) && ( ( hsl.Hue >= hue.Min ) || ( hsl.Hue <= hue.Max ) ) ) + ) + ) + { + if ( !fillOutsideRange ) + { + if ( updateH ) hsl.Hue = fillH; + if ( updateS ) hsl.Saturation = fillS; + if ( updateL ) hsl.Luminance = fillL; + + updated = true; + } + } + else + { + if ( fillOutsideRange ) + { + if ( updateH ) hsl.Hue = fillH; + if ( updateS ) hsl.Saturation = fillS; + if ( updateL ) hsl.Luminance = fillL; + + updated = true; + } + } + + if ( updated ) + { + // convert back to RGB + AForge.Imaging.HSL.ToRGB( hsl, rgb ); + + ptr[RGB.R] = rgb.Red; + ptr[RGB.G] = rgb.Green; + ptr[RGB.B] = rgb.Blue; + } + } + ptr += offset; + } + } + } +} diff --git a/Sources/Imaging/Filters/HSL Filters/HSLLinear.cs b/Sources/Imaging/Filters/HSL Filters/HSLLinear.cs new file mode 100644 index 00000000..36c513af --- /dev/null +++ b/Sources/Imaging/Filters/HSL Filters/HSLLinear.cs @@ -0,0 +1,209 @@ +// AForge Image Processing Library +// AForge.NET framework +// +// Copyright © AForge.NET, 2007-2011 +// contacts@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + using AForge; + + /// + /// Luminance and saturation linear correction. + /// + /// + /// The filter operates in HSL color space and provides + /// with the facility of luminance and saturation linear correction - mapping specified channels' + /// input ranges to specified output ranges. + /// + /// The filter accepts 24 and 32 bpp color images for processing. + /// + /// Sample usage: + /// + /// // create filter + /// HSLLinear filter = new HSLLinear( ); + /// // configure the filter + /// filter.InLuminance = new Range( 0, 0.85f ); + /// filter.OutSaturation = new Range( 0.25f, 1 ); + /// // apply the filter + /// filter.ApplyInPlace( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + /// + /// + /// + public class HSLLinear : BaseInPlacePartialFilter + { + private Range inLuminance = new Range( 0.0f, 1.0f ); + private Range inSaturation = new Range( 0.0f, 1.0f ); + private Range outLuminance = new Range( 0.0f, 1.0f ); + private Range outSaturation = new Range( 0.0f, 1.0f ); + + #region Public Propertis + + /// + /// Luminance input range. + /// + /// + /// Luminance component is measured in the range of [0, 1]. + /// + public Range InLuminance + { + get { return inLuminance; } + set { inLuminance = value; } + } + + /// + /// Luminance output range. + /// + /// + /// Luminance component is measured in the range of [0, 1]. + /// + public Range OutLuminance + { + get { return outLuminance; } + set { outLuminance = value; } + } + + /// + /// Saturation input range. + /// + /// + /// Saturation component is measured in the range of [0, 1]. + /// + public Range InSaturation + { + get { return inSaturation; } + set { inSaturation = value; } + } + + /// + /// Saturation output range. + /// + /// + /// Saturation component is measured in the range of [0, 1]. + /// + public Range OutSaturation + { + get { return outSaturation; } + set { outSaturation = value; } + } + + #endregion + + // format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public HSLLinear( ) + { + formatTranslations[PixelFormat.Format24bppRgb] = PixelFormat.Format24bppRgb; + formatTranslations[PixelFormat.Format32bppRgb] = PixelFormat.Format32bppRgb; + formatTranslations[PixelFormat.Format32bppArgb] = PixelFormat.Format32bppArgb; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Image rectangle for processing by the filter. + /// + protected override unsafe void ProcessFilter( UnmanagedImage image, Rectangle rect ) + { + int pixelSize = Image.GetPixelFormatSize( image.PixelFormat ) / 8; + + int startX = rect.Left; + int startY = rect.Top; + int stopX = startX + rect.Width; + int stopY = startY + rect.Height; + int offset = image.Stride - rect.Width * pixelSize; + + RGB rgb = new RGB( ); + HSL hsl = new HSL( ); + + float kl = 0, bl = 0; + float ks = 0, bs = 0; + + // luminance line parameters + if ( inLuminance.Max != inLuminance.Min ) + { + kl = ( outLuminance.Max - outLuminance.Min ) / ( inLuminance.Max - inLuminance.Min ); + bl = outLuminance.Min - kl * inLuminance.Min; + } + // saturation line parameters + if ( inSaturation.Max != inSaturation.Min ) + { + ks = ( outSaturation.Max - outSaturation.Min ) / ( inSaturation.Max - inSaturation.Min ); + bs = outSaturation.Min - ks * inSaturation.Min; + } + + // do the job + byte* ptr = (byte*) image.ImageData.ToPointer( ); + + // allign pointer to the first pixel to process + ptr += ( startY * image.Stride + startX * pixelSize ); + + // for each row + for ( int y = startY; y < stopY; y++ ) + { + // for each pixel + for ( int x = startX; x < stopX; x++, ptr += pixelSize ) + { + rgb.Red = ptr[RGB.R]; + rgb.Green = ptr[RGB.G]; + rgb.Blue = ptr[RGB.B]; + + // convert to HSL + AForge.Imaging.HSL.FromRGB( rgb, hsl ); + + // do luminance correction + if ( hsl.Luminance >= inLuminance.Max ) + hsl.Luminance = outLuminance.Max; + else if ( hsl.Luminance <= inLuminance.Min ) + hsl.Luminance = outLuminance.Min; + else + hsl.Luminance = kl * hsl.Luminance + bl; + + // do saturation correct correction + if ( hsl.Saturation >= inSaturation.Max ) + hsl.Saturation = outSaturation.Max; + else if ( hsl.Saturation <= inSaturation.Min ) + hsl.Saturation = outSaturation.Min; + else + hsl.Saturation = ks * hsl.Saturation + bs; + + // convert back to RGB + AForge.Imaging.HSL.ToRGB( hsl, rgb ); + + ptr[RGB.R] = rgb.Red; + ptr[RGB.G] = rgb.Green; + ptr[RGB.B] = rgb.Blue; + } + ptr += offset; + } + } + } +} diff --git a/Sources/Imaging/Filters/HSL Filters/HueModifier.cs b/Sources/Imaging/Filters/HSL Filters/HueModifier.cs new file mode 100644 index 00000000..ebc05ea7 --- /dev/null +++ b/Sources/Imaging/Filters/HSL Filters/HueModifier.cs @@ -0,0 +1,143 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Hue modifier. + /// + /// + /// The filter operates in HSL color space and updates + /// pixels' hue values setting it to the specified value (luminance and + /// saturation are kept unchanged). The result of the filter looks like the image + /// is observed through a glass of the given color. + /// + /// The filter accepts 24 and 32 bpp color images for processing. + /// Sample usage: + /// + /// // create filter + /// HueModifier filter = new HueModifier( 180 ); + /// // apply the filter + /// filter.ApplyInPlace( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + public class HueModifier : BaseInPlacePartialFilter + { + private int hue = 0; + + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Hue value to set, [0, 359]. + /// + /// + /// Default value is set to 0. + /// + public int Hue + { + get { return hue; } + set { hue = Math.Max( 0, Math.Min( 359, value ) ); } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public HueModifier( ) + { + formatTranslations[PixelFormat.Format24bppRgb] = PixelFormat.Format24bppRgb; + formatTranslations[PixelFormat.Format32bppRgb] = PixelFormat.Format32bppRgb; + formatTranslations[PixelFormat.Format32bppArgb] = PixelFormat.Format32bppArgb; + formatTranslations[PixelFormat.Format32bppPArgb] = PixelFormat.Format32bppPArgb; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Hue value to set. + /// + public HueModifier( int hue ) : this( ) + { + this.hue = hue; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Image rectangle for processing by the filter. + /// + protected override unsafe void ProcessFilter( UnmanagedImage image, Rectangle rect ) + { + int pixelSize = Bitmap.GetPixelFormatSize( image.PixelFormat ) / 8; + + int startX = rect.Left; + int startY = rect.Top; + int stopX = startX + rect.Width; + int stopY = startY + rect.Height; + int offset = image.Stride - rect.Width * pixelSize; + + RGB rgb = new RGB( ); + HSL hsl = new HSL( ); + + // do the job + byte* ptr = (byte*) image.ImageData.ToPointer( ); + + // allign pointer to the first pixel to process + ptr += ( startY * image.Stride + startX * pixelSize ); + + // for each row + for ( int y = startY; y < stopY; y++ ) + { + // for each pixel + for ( int x = startX; x < stopX; x++, ptr += pixelSize ) + { + rgb.Red = ptr[RGB.R]; + rgb.Green = ptr[RGB.G]; + rgb.Blue = ptr[RGB.B]; + + // convert to HSL + AForge.Imaging.HSL.FromRGB( rgb, hsl ); + + // modify hue value + hsl.Hue = hue; + + // convert back to RGB + AForge.Imaging.HSL.ToRGB( hsl, rgb ); + + ptr[RGB.R] = rgb.Red; + ptr[RGB.G] = rgb.Green; + ptr[RGB.B] = rgb.Blue; + } + ptr += offset; + } + } + } +} diff --git a/Sources/Imaging/Filters/HSL Filters/SaturationCorrection.cs b/Sources/Imaging/Filters/HSL Filters/SaturationCorrection.cs new file mode 100644 index 00000000..b08567c5 --- /dev/null +++ b/Sources/Imaging/Filters/HSL Filters/SaturationCorrection.cs @@ -0,0 +1,155 @@ +// AForge Image Processing Library +// AForge.NET framework +// +// Copyright © AForge.NET, 2007-2014 +// aforge.net@gmail.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + using AForge; + + /// + /// Saturation adjusting in HSL color space. + /// + /// + /// The filter operates in HSL color space and adjusts + /// pixels' saturation value, increasing it or decreasing by specified percentage. + /// The filters is based on filter, passing work to it after + /// recalculating saturation adjust value to input/output + /// ranges of the filter. + /// + /// The filter accepts 24 and 32 bpp color images for processing. + /// + /// Sample usage: + /// + /// // create filter + /// SaturationCorrection filter = new SaturationCorrection( -0.5f ); + /// // apply the filter + /// filter.ApplyInPlace( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + public class SaturationCorrection : BaseInPlacePartialFilter + { + private float adjustValue; // [-1, 1] + + /// + /// Saturation adjust value, [-1, 1]. + /// + /// + /// Default value is set to 0.1, which corresponds to increasing + /// saturation by 10%. + /// + public float AdjustValue + { + get { return adjustValue; } + set { adjustValue = Math.Max( -1.0f, Math.Min( 1.0f, value ) ); } + } + + // format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public SaturationCorrection( ) : this( 0.1f ) + { + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Saturation adjust value. + /// + public SaturationCorrection( float adjustValue ) + { + AdjustValue = adjustValue; + + formatTranslations[PixelFormat.Format24bppRgb] = PixelFormat.Format24bppRgb; + formatTranslations[PixelFormat.Format32bppRgb] = PixelFormat.Format32bppRgb; + formatTranslations[PixelFormat.Format32bppArgb] = PixelFormat.Format32bppArgb; + formatTranslations[PixelFormat.Format32bppPArgb] = PixelFormat.Format32bppPArgb; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Image rectangle for processing by the filter. + /// + protected override unsafe void ProcessFilter( UnmanagedImage image, Rectangle rect ) + { + int pixelSize = Bitmap.GetPixelFormatSize( image.PixelFormat ) / 8; + + int startX = rect.Left; + int startY = rect.Top; + int stopX = startX + rect.Width; + int stopY = startY + rect.Height; + int offset = image.Stride - rect.Width * pixelSize; + + RGB rgb = new RGB( ); + HSL hsl = new HSL( ); + + float desaturationChangeFactor = 1.0f + adjustValue; + + // do the job + byte* ptr = (byte*) image.ImageData.ToPointer( ); + + // allign pointer to the first pixel to process + ptr += ( startY * image.Stride + startX * pixelSize ); + + // for each row + for ( int y = startY; y < stopY; y++ ) + { + // for each pixel + for ( int x = startX; x < stopX; x++, ptr += pixelSize ) + { + rgb.Red = ptr[RGB.R]; + rgb.Green = ptr[RGB.G]; + rgb.Blue = ptr[RGB.B]; + + // convert to HSL + AForge.Imaging.HSL.FromRGB( rgb, hsl ); + + if ( adjustValue > 0 ) + { + hsl.Saturation += ( 1.0f - hsl.Saturation ) * adjustValue * hsl.Saturation; + } + else if ( adjustValue < 0 ) + { + hsl.Saturation *= desaturationChangeFactor; + } + + // convert back to RGB + AForge.Imaging.HSL.ToRGB( hsl, rgb ); + + ptr[RGB.R] = rgb.Red; + ptr[RGB.G] = rgb.Green; + ptr[RGB.B] = rgb.Blue; + } + ptr += offset; + } + } + } +} diff --git a/Sources/Imaging/Filters/IFilter.cs b/Sources/Imaging/Filters/IFilter.cs new file mode 100644 index 00000000..f39e6545 --- /dev/null +++ b/Sources/Imaging/Filters/IFilter.cs @@ -0,0 +1,91 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2010 +// contacts@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Image processing filter interface. + /// + /// + /// The interface defines the set of methods, which should be + /// provided by all image processing filters. Methods of this interface + /// keep the source image unchanged and returt the result of image processing + /// filter as new image. + /// + /// + /// + /// + public interface IFilter + { + /// + /// Apply filter to an image. + /// + /// + /// Source image to apply filter to. + /// + /// Returns filter's result obtained by applying the filter to + /// the source image. + /// + /// The method keeps the source image unchanged and returns + /// the result of image processing filter as new image. + /// + Bitmap Apply( Bitmap image ); + + /// + /// Apply filter to an image. + /// + /// + /// Source image to apply filter to. + /// + /// Returns filter's result obtained by applying the filter to + /// the source image. + /// + /// The filter accepts bitmap data as input and returns the result + /// of image processing filter as new image. The source image data are kept + /// unchanged. + /// + Bitmap Apply( BitmapData imageData ); + + /// + /// Apply filter to an image. + /// + /// + /// Image in unmanaged memory. + /// + /// Returns filter's result obtained by applying the filter to + /// the source image. + /// + /// The method keeps the source image unchanged and returns + /// the result of image processing filter as new image. + /// + UnmanagedImage Apply( UnmanagedImage image ); + + /// + /// Apply filter to an image. + /// + /// + /// Source image to be processed. + /// Destination image to store filter's result. + /// + /// The method keeps the source image unchanged and puts the + /// the result of image processing filter into destination image. + /// + /// The destination image must have the size, which is expected by + /// the filter. + /// + /// + /// In the case if destination image has incorrect + /// size. + /// + void Apply( UnmanagedImage sourceImage, UnmanagedImage destinationImage ); + } +} diff --git a/Sources/Imaging/Filters/IFilterInformation.cs b/Sources/Imaging/Filters/IFilterInformation.cs new file mode 100644 index 00000000..b55808d3 --- /dev/null +++ b/Sources/Imaging/Filters/IFilterInformation.cs @@ -0,0 +1,62 @@ +// AForge Image Processing Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2005-2008 +// andrew.kirillov@gmail.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Interface which provides information about image processing filter. + /// + /// + /// The interface defines set of properties, which provide different type + /// of information about image processing filters implementing interface + /// or another filter's interface. + /// + public interface IFilterInformation + { + /// + /// Format translations dictionary. + /// + /// + /// The dictionary defines, which pixel formats are supported for + /// source images and which pixel format will be used for resulting image. + /// + /// + /// Keys of this dictionary defines all pixel formats which are supported for source + /// images, but corresponding values define what will be resulting pixel format. For + /// example, if value Format16bppGrayScale + /// is put into the dictionary with the + /// Format48bppRgb key, then it means + /// that the filter accepts color 48 bpp image and produces 16 bpp grayscale image as a result + /// of image processing. + /// + /// The information provided by this property is mostly actual for filters, which can not + /// be applied directly to the source image, but provide new image a result. Since usually all + /// filters implement interface, the information provided by this property + /// (if filter also implements interface) may be useful to + /// user to resolve filter's capabilities. + /// + /// Sample usage: + /// + /// // get filter's IFilterInformation interface + /// IFilterInformation info = (IFilterInformation) filter; + /// // check if the filter supports our image's format + /// if ( info.FormatTranslations.ContainsKey( image.PixelFormat ) + /// { + /// // format is supported, check what will be result of image processing + /// PixelFormat resultingFormat = info.FormatTranslations[image.PixelFormat]; + /// } + /// /// + /// + /// + Dictionary FormatTranslations { get; } + } +} diff --git a/Sources/Imaging/Filters/IInPlaceFilter.cs b/Sources/Imaging/Filters/IInPlaceFilter.cs new file mode 100644 index 00000000..a9ac5096 --- /dev/null +++ b/Sources/Imaging/Filters/IInPlaceFilter.cs @@ -0,0 +1,61 @@ +// AForge Image Processing Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2005-2008 +// andrew.kirillov@gmail.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// In-place filter interface. + /// + /// + /// The interface defines the set of methods, which should be + /// implemented by filters, which are capable to do image processing + /// directly on the source image. Not all image processing filters + /// can be applied directly to the source image - only filters, which do not + /// change image's dimension and pixel format, can be applied directly to the + /// source image. + /// + /// + /// + /// + public interface IInPlaceFilter + { + /// + /// Apply filter to an image. + /// + /// + /// Image to apply filter to. + /// + /// The method applies filter directly to the provided image data. + /// + void ApplyInPlace( Bitmap image ); + + /// + /// Apply filter to an image. + /// + /// + /// Image to apply filter to. + /// + /// The method applies filter directly to the provided image data. + /// + void ApplyInPlace( BitmapData imageData ); + + /// + /// Apply filter to an image in unmanaged memory. + /// + /// + /// Image in unmanaged memory. + /// + /// The method applies filter directly to the provided image data. + /// + void ApplyInPlace( UnmanagedImage image ); + } +} + diff --git a/Sources/Imaging/Filters/IInPlacePartialFilter.cs b/Sources/Imaging/Filters/IInPlacePartialFilter.cs new file mode 100644 index 00000000..1d46f2f7 --- /dev/null +++ b/Sources/Imaging/Filters/IInPlacePartialFilter.cs @@ -0,0 +1,67 @@ +// AForge Image Processing Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2005-2008 +// andrew.kirillov@gmail.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// In-place partial filter interface. + /// + /// + /// The interface defines the set of methods, which should be + /// implemented by filters, which are capable to do image processing + /// directly on the source image. Not all image processing filters + /// can be applied directly to the source image - only filters, which do not + /// change image dimension and pixel format, can be applied directly to the + /// source image. + /// + /// The interface also supports partial image filtering, allowing to specify + /// image rectangle, which should be filtered. + /// + /// + /// + /// + /// + public interface IInPlacePartialFilter + { + /// + /// Apply filter to an image or its part. + /// + /// + /// Image to apply filter to. + /// Image rectangle for processing by filter. + /// + /// The method applies filter directly to the provided image data. + /// + void ApplyInPlace( Bitmap image, Rectangle rect ); + + /// + /// Apply filter to an image or its part. + /// + /// + /// Image to apply filter to. + /// Image rectangle for processing by filter. + /// + /// The method applies filter directly to the provided image data. + /// + void ApplyInPlace( BitmapData imageData, Rectangle rect ); + + /// + /// Apply filter to an image in unmanaged memory. + /// + /// + /// Image in unmanaged memory. + /// Image rectangle for processing by filter. + /// + /// The method applies filter directly to the provided image. + /// + void ApplyInPlace( UnmanagedImage image, Rectangle rect ); + } +} diff --git a/Sources/Imaging/Filters/IlluminationCorrection/FlatFieldCorrection.cs b/Sources/Imaging/Filters/IlluminationCorrection/FlatFieldCorrection.cs new file mode 100644 index 00000000..82a63f24 --- /dev/null +++ b/Sources/Imaging/Filters/IlluminationCorrection/FlatFieldCorrection.cs @@ -0,0 +1,283 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © +// Mladen Prajdic (spirit1_fe@yahoo.com), +// Andrew Kirillov (andrew.kirillov@aforgenet.com) +// 2005-2009 +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Flat field correction filter. + /// + /// + /// The goal of flat-field correction is to remove artifacts from 2-D images that + /// are caused by variations in the pixel-to-pixel sensitivity of the detector and/or by distortions + /// in the optical path. The filter requires two images for the input - source image, which represents + /// acquisition of some objects (using microscope, for example), and background image, which is taken + /// without any objects presented. The source image is corrected using the formula: src = bgMean * src / bg, + /// where src - source image's pixel value, bg - background image's pixel value, bgMean - mean + /// value of background image. + /// + /// If background image is not provided, then it will be automatically generated on each filter run + /// from source image. The automatically generated background image is produced running Gaussian Blur on the + /// original image with (sigma value is set to 5, kernel size is set to 21). Before blurring the original image + /// is resized to 1/3 of its original size and then the result of blurring is resized back to the original size. + /// + /// + /// The class processes only grayscale (8 bpp indexed) and color (24 bpp) images. + /// + /// Sample usage: + /// + /// // create filter + /// FlatFieldCorrection filter = new FlatFieldCorrection( bgImage ); + /// // process image + /// filter.ApplyInPlace( sourceImage ); + /// + /// + /// Source image: + /// + /// Background image: + /// + /// Result image: + /// + /// + /// + public class FlatFieldCorrection : BaseInPlaceFilter + { + Bitmap backgroundImage = null; + UnmanagedImage unmanagedBackgroundImage = null; + + /// + /// Background image used for flat field correction. + /// + /// + /// The property sets the background image (without any objects), which will be used + /// for illumination correction of an image passed to the filter. + /// + /// The background image must have the same size and pixel format as source image. + /// Otherwise exception will be generated when filter is applied to source image. + /// + /// Setting this property will clear the property - + /// only one background image is allowed: managed or unmanaged. + /// + /// + public Bitmap BackgoundImage + { + get { return backgroundImage; } + set + { + backgroundImage = value; + + if ( value != null ) + unmanagedBackgroundImage = null; + } + } + + /// + /// Background image used for flat field correction. + /// + /// + /// The property sets the background image (without any objects), which will be used + /// for illumination correction of an image passed to the filter. + /// + /// The background image must have the same size and pixel format as source image. + /// Otherwise exception will be generated when filter is applied to source image. + /// + /// Setting this property will clear the property - + /// only one background image is allowed: managed or unmanaged. + /// + /// + public UnmanagedImage UnmanagedBackgoundImage + { + get { return unmanagedBackgroundImage; } + set + { + unmanagedBackgroundImage = value; + + if ( value != null ) + backgroundImage = null; + } + } + + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + /// + /// See for more information. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// This constructor does not set background image, which means that background + /// image will be generated on the fly on each filter run. The automatically generated background + /// image is produced running Gaussian Blur on the original image with (sigma value is set to 5, + /// kernel size is set to 21). Before blurring the original image is resized to 1/3 of its original size + /// and then the result of blurring is resized back to the original size. + /// + public FlatFieldCorrection( ) + { + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format8bppIndexed; + formatTranslations[PixelFormat.Format24bppRgb] = PixelFormat.Format24bppRgb; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Background image used for flat field correction. + /// + public FlatFieldCorrection( Bitmap backgroundImage ) : this( ) + { + this.backgroundImage = backgroundImage; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// + protected override unsafe void ProcessFilter( UnmanagedImage image ) + { + UnmanagedImage bgImage = null; + BitmapData bgLockedData = null; + + // get image size + int width = image.Width; + int height = image.Height; + int offset = image.Stride - ( ( image.PixelFormat == PixelFormat.Format8bppIndexed ) ? width : width * 3 ); + + // check if we have provided background + if ( ( backgroundImage == null ) && ( unmanagedBackgroundImage == null ) ) + { + // resize image to 1/3 of its original size to make bluring faster + ResizeBicubic resizeFilter = new ResizeBicubic( (int) width / 3, (int) height / 3 ); + UnmanagedImage tempImage = resizeFilter.Apply( image ); + + // create background image from the input image blurring it with Gaussian 5 times + GaussianBlur blur = new GaussianBlur( 5, 21 ); + + blur.ApplyInPlace( tempImage ); + blur.ApplyInPlace( tempImage ); + blur.ApplyInPlace( tempImage ); + blur.ApplyInPlace( tempImage ); + blur.ApplyInPlace( tempImage ); + + // resize the blurred image back to original size + resizeFilter.NewWidth = width; + resizeFilter.NewHeight = height; + bgImage = resizeFilter.Apply( tempImage ); + + tempImage.Dispose( ); + } + else + { + if ( backgroundImage != null ) + { + // check background image + if ( ( width != backgroundImage.Width ) || ( height != backgroundImage.Height ) || ( image.PixelFormat != backgroundImage.PixelFormat ) ) + { + throw new InvalidImagePropertiesException( "Source image and background images must have the same size and pixel format" ); + } + + // lock background image + bgLockedData = backgroundImage.LockBits( + new Rectangle( 0, 0, width, height ), + ImageLockMode.ReadOnly, backgroundImage.PixelFormat ); + + bgImage = new UnmanagedImage( bgLockedData ); + } + else + { + bgImage = unmanagedBackgroundImage; + } + } + + // get background image's statistics (mean value is used as correction factor) + ImageStatistics bgStatistics = new ImageStatistics( bgImage ); + + byte* src = (byte*) image.ImageData.ToPointer( ); + byte* bg = (byte*) bgImage.ImageData.ToPointer( ); + + // do the job + if ( image.PixelFormat == PixelFormat.Format8bppIndexed ) + { + // grayscale image + double mean = bgStatistics.Gray.Mean; + + for ( int y = 0; y < height; y++ ) + { + for ( int x = 0; x < width; x++, src++, bg++ ) + { + if ( *bg != 0 ) + { + *src = (byte) Math.Min( mean * *src / *bg, 255 ); + } + } + src += offset; + bg += offset; + } + } + else + { + // color image + double meanR = bgStatistics.Red.Mean; + double meanG = bgStatistics.Green.Mean; + double meanB = bgStatistics.Blue.Mean; + + for ( int y = 0; y < height; y++ ) + { + for ( int x = 0; x < width; x++, src += 3, bg += 3 ) + { + // red + if ( bg[RGB.R] != 0 ) + { + src[RGB.R] = (byte) Math.Min( meanR * src[RGB.R] / bg[RGB.R], 255 ); + } + // green + if ( bg[RGB.G] != 0 ) + { + src[RGB.G] = (byte) Math.Min( meanG * src[RGB.G] / bg[RGB.G], 255 ); + } + // blue + if ( bg[RGB.B] != 0 ) + { + src[RGB.B] = (byte) Math.Min( meanB * src[RGB.B] / bg[RGB.B], 255 ); + } + } + src += offset; + bg += offset; + } + } + + if ( backgroundImage != null ) + { + backgroundImage.UnlockBits( bgLockedData ); + } + + // dispose background image if it was not set manually + if ( ( backgroundImage == null ) && ( unmanagedBackgroundImage == null ) ) + { + bgImage.Dispose( ); + } + } + } +} diff --git a/Sources/Imaging/Filters/Morphology/BottomHat.cs b/Sources/Imaging/Filters/Morphology/BottomHat.cs new file mode 100644 index 00000000..1d46b098 --- /dev/null +++ b/Sources/Imaging/Filters/Morphology/BottomHat.cs @@ -0,0 +1,105 @@ +// AForge Image Processing Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2005-2009 +// andrew.kirillov@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Bottop-hat operator from Mathematical Morphology. + /// + /// + /// Bottom-hat morphological operator subtracts + /// input image from the result of morphological closing on the + /// the input image. + /// + /// Applied to binary image, the filter allows to get all object parts, which were + /// added by closing filter, but were not removed after that due + /// to formed connections/fillings. + /// + /// The filter accepts 8 and 16 bpp grayscale images and 24 and 48 bpp + /// color images for processing. + /// + /// Sample usage: + /// + /// // create filter + /// BottomHat filter = new BottomHat( ); + /// // apply the filter + /// filter.Apply( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + /// + /// + public class BottomHat : BaseInPlaceFilter + { + private Closing closing = new Closing( ); + private Subtract subtract = new Subtract( ); + + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public BottomHat( ) + { + // initialize format translation dictionary + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format8bppIndexed; + formatTranslations[PixelFormat.Format24bppRgb] = PixelFormat.Format24bppRgb; + formatTranslations[PixelFormat.Format16bppGrayScale] = PixelFormat.Format16bppGrayScale; + formatTranslations[PixelFormat.Format48bppRgb] = PixelFormat.Format48bppRgb; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Structuring element to pass to operator. + /// + public BottomHat( short[,] se ) : this( ) + { + closing = new Closing( se ); + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// + protected override unsafe void ProcessFilter( UnmanagedImage image ) + { + // copy source image + UnmanagedImage sourceImage = image.Clone( ); + // perform closing on the source image + closing.ApplyInPlace( image ); + // subtract source image from the closed image + subtract.UnmanagedOverlayImage = sourceImage; + subtract.ApplyInPlace( image ); + + sourceImage.Dispose( ); + } + } +} diff --git a/Sources/Imaging/Filters/Morphology/Closing.cs b/Sources/Imaging/Filters/Morphology/Closing.cs new file mode 100644 index 00000000..c222b8e8 --- /dev/null +++ b/Sources/Imaging/Filters/Morphology/Closing.cs @@ -0,0 +1,280 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2010 +// contacts@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Closing operator from Mathematical Morphology. + /// + /// + /// Closing morphology operator equals to dilatation followed + /// by erosion. + /// + /// Applied to binary image, the filter may be used connect or fill objects. Since dilatation is used + /// first, it may connect/fill object areas. Then erosion restores objects. But since dilatation may connect + /// something before, erosion may not remove after that because of the formed connection. + /// + /// See documentation to and classes for more + /// information and list of supported pixel formats. + /// + /// Sample usage: + /// + /// // create filter + /// Closing filter = new Closing( ); + /// // apply the filter + /// filter.Apply( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + /// + /// + /// + /// + public class Closing : IFilter, IInPlaceFilter, IInPlacePartialFilter, IFilterInformation + { + private Erosion errosion = new Erosion( ); + private Dilatation dilatation = new Dilatation( ); + + /// + /// Format translations dictionary. + /// + public Dictionary FormatTranslations + { + get { return errosion.FormatTranslations; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Initializes new instance of the class using + /// default structuring element for both and + /// classes - 3x3 structuring element with all elements equal to 1. + /// + /// + public Closing( ) { } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Structuring element. + /// + /// See documentation to and + /// classes for information about structuring element constraints. + /// + public Closing( short[,] se ) + { + errosion = new Erosion( se ); + dilatation = new Dilatation(se); + } + + /// + /// Apply filter to an image. + /// + /// + /// Source image to apply filter to. + /// + /// Returns filter's result obtained by applying the filter to + /// the source image. + /// + /// The method keeps the source image unchanged and returns + /// the result of image processing filter as new image. + /// + /// Unsupported pixel format of the source image. + /// + public Bitmap Apply( Bitmap image ) + { + Bitmap tempImage = dilatation.Apply( image ); + Bitmap destImage = errosion.Apply( tempImage ); + + tempImage.Dispose( ); + + return destImage; + } + + /// + /// Apply filter to an image. + /// + /// + /// Source image to apply filter to. + /// + /// Returns filter's result obtained by applying the filter to + /// the source image. + /// + /// The filter accepts bitmap data as input and returns the result + /// of image processing filter as new image. The source image data are kept + /// unchanged. + /// + public Bitmap Apply( BitmapData imageData ) + { + Bitmap tempImage = dilatation.Apply( imageData ); + Bitmap destImage = errosion.Apply( tempImage ); + + tempImage.Dispose( ); + + return destImage; + } + + /// + /// Apply filter to an image in unmanaged memory. + /// + /// + /// Source image in unmanaged memory to apply filter to. + /// + /// Returns filter's result obtained by applying the filter to + /// the source image. + /// + /// The method keeps the source image unchanged and returns + /// the result of image processing filter as new image. + /// + /// Unsupported pixel format of the source image. + /// + public UnmanagedImage Apply( UnmanagedImage image ) + { + UnmanagedImage destImage = dilatation.Apply( image ); + errosion.ApplyInPlace( destImage ); + + return destImage; + } + + /// + /// Apply filter to an image in unmanaged memory. + /// + /// + /// Source image in unmanaged memory to apply filter to. + /// Destination image in unmanaged memory to put result into. + /// + /// The method keeps the source image unchanged and puts result of image processing + /// into destination image. + /// + /// The destination image must have the same width and height as source image. Also + /// destination image must have pixel format, which is expected by particular filter (see + /// property for information about pixel format conversions). + /// + /// + /// Unsupported pixel format of the source image. + /// Incorrect destination pixel format. + /// Destination image has wrong width and/or height. + /// + public void Apply( UnmanagedImage sourceImage, UnmanagedImage destinationImage ) + { + dilatation.Apply( sourceImage, destinationImage ); + errosion.ApplyInPlace( destinationImage ); + } + + /// + /// Apply filter to an image. + /// + /// + /// Image to apply filter to. + /// + /// The method applies the filter directly to the provided source image. + /// + /// Unsupported pixel format of the source image. + /// + public void ApplyInPlace( Bitmap image ) + { + dilatation.ApplyInPlace( image ); + errosion.ApplyInPlace( image ); + } + + /// + /// Apply filter to an image. + /// + /// + /// Image data to apply filter to. + /// + /// The method applies the filter directly to the provided source image. + /// + /// Unsupported pixel format of the source image. + /// + public void ApplyInPlace( BitmapData imageData ) + { + dilatation.ApplyInPlace( imageData ); + errosion.ApplyInPlace( imageData ); + } + + /// + /// Apply filter to an unmanaged image. + /// + /// + /// Unmanaged image to apply filter to. + /// + /// The method applies the filter directly to the provided source unmanaged image. + /// + /// Unsupported pixel format of the source image. + /// + public void ApplyInPlace( UnmanagedImage image ) + { + dilatation.ApplyInPlace( image ); + errosion.ApplyInPlace( image ); + } + + /// + /// Apply filter to an image or its part. + /// + /// + /// Image to apply filter to. + /// Image rectangle for processing by the filter. + /// + /// The method applies the filter directly to the provided source image. + /// + /// Unsupported pixel format of the source image. + /// + public void ApplyInPlace( Bitmap image, Rectangle rect ) + { + dilatation.ApplyInPlace( image, rect ); + errosion.ApplyInPlace( image, rect ); + } + + /// + /// Apply filter to an image or its part. + /// + /// + /// Image data to apply filter to. + /// Image rectangle for processing by the filter. + /// + /// The method applies the filter directly to the provided source image. + /// + /// Unsupported pixel format of the source image. + /// + public void ApplyInPlace( BitmapData imageData, Rectangle rect ) + { + dilatation.ApplyInPlace( imageData, rect ); + errosion.ApplyInPlace( imageData, rect ); + } + + /// + /// Apply filter to an unmanaged image or its part. + /// + /// + /// Unmanaged image to apply filter to. + /// Image rectangle for processing by the filter. + /// + /// The method applies the filter directly to the provided source image. + /// + /// Unsupported pixel format of the source image. + /// + public void ApplyInPlace( UnmanagedImage image, Rectangle rect ) + { + dilatation.ApplyInPlace( image, rect ); + errosion.ApplyInPlace( image, rect ); + } + } +} diff --git a/Sources/Imaging/Filters/Morphology/Dilatation.cs b/Sources/Imaging/Filters/Morphology/Dilatation.cs new file mode 100644 index 00000000..d7341547 --- /dev/null +++ b/Sources/Imaging/Filters/Morphology/Dilatation.cs @@ -0,0 +1,463 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2005-2014 +// aforge.net@gmail.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Dilatation operator from Mathematical Morphology. + /// + /// + /// The filter assigns maximum value of surrounding pixels to each pixel of + /// the result image. Surrounding pixels, which should be processed, are specified by + /// structuring element: 1 - to process the neighbor, -1 - to skip it. + /// + /// The filter especially useful for binary image processing, where it allows to grow + /// separate objects or join objects. + /// + /// For processing image with 3x3 structuring element, there are different optimizations + /// available, like and . + /// + /// The filter accepts 8 and 16 bpp grayscale images and 24 and 48 bpp + /// color images for processing. + /// + /// Sample usage: + /// + /// // create filter + /// Dilatation filter = new Dilatation( ); + /// // apply the filter + /// filter.Apply( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + /// + /// + /// + /// + /// + /// + public class Dilatation : BaseUsingCopyPartialFilter + { + // structuring element + private short[,] se = new short[3, 3] { { 1, 1, 1 }, { 1, 1, 1 }, { 1, 1, 1 } }; + private int size = 3; + + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Initializes new instance of the class using + /// default structuring element - 3x3 structuring element with all elements equal to 1. + /// + /// + public Dilatation( ) + { + // initialize format translation dictionary + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format8bppIndexed; + formatTranslations[PixelFormat.Format24bppRgb] = PixelFormat.Format24bppRgb; + formatTranslations[PixelFormat.Format16bppGrayScale] = PixelFormat.Format16bppGrayScale; + formatTranslations[PixelFormat.Format48bppRgb] = PixelFormat.Format48bppRgb; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Structuring element. + /// + /// Structuring elemement for the dilatation morphological operator + /// must be square matrix with odd size in the range of [3, 99]. + /// + /// Invalid size of structuring element. + /// + public Dilatation( short[,] se ) + : this( ) + { + int s = se.GetLength( 0 ); + + // check structuring element size + if ( ( s != se.GetLength( 1 ) ) || ( s < 3 ) || ( s > 99 ) || ( s % 2 == 0 ) ) + throw new ArgumentException( "Invalid size of structuring element." ); + + this.se = se; + this.size = s; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Destination image data. + /// Image rectangle for processing by the filter. + /// + protected override unsafe void ProcessFilter( UnmanagedImage sourceData, UnmanagedImage destinationData, Rectangle rect ) + { + PixelFormat pixelFormat = sourceData.PixelFormat; + + // processing start and stop X,Y positions + int startX = rect.Left; + int startY = rect.Top; + int stopX = startX + rect.Width; + int stopY = startY + rect.Height; + + // structuring element's radius + int r = size >> 1; + + // flag to indicate if at least one pixel for the given structuring element was found + bool foundSomething; + + if ( ( pixelFormat == PixelFormat.Format8bppIndexed ) || ( pixelFormat == PixelFormat.Format24bppRgb ) ) + { + int pixelSize = ( pixelFormat == PixelFormat.Format8bppIndexed ) ? 1 : 3; + + int dstStride = destinationData.Stride; + int srcStride = sourceData.Stride; + + // base pointers + byte* baseSrc = (byte*) sourceData.ImageData.ToPointer( ); + byte* baseDst = (byte*) destinationData.ImageData.ToPointer( ); + + // allign pointers by X + baseSrc += ( startX * pixelSize ); + baseDst += ( startX * pixelSize ); + + if ( pixelFormat == PixelFormat.Format8bppIndexed ) + { + // grayscale image + + // compute each line + for ( int y = startY; y < stopY; y++ ) + { + byte* src = baseSrc + y * srcStride; + byte* dst = baseDst + y * dstStride; + + byte max, v; + + // loop and array indexes + int t, ir, jr, i, j; + + // for each pixel + for ( int x = startX; x < stopX; x++, src++, dst++ ) + { + max = 0; + foundSomething = false; + + // for each structuring element's row + for ( i = 0; i < size; i++ ) + { + ir = i - r; + t = y + ir; + + // skip row + if ( t < startY ) + continue; + // break + if ( t >= stopY ) + break; + + // for each structuring slement's column + for ( j = 0; j < size; j++ ) + { + jr = j - r; + t = x + jr; + + // skip column + if ( t < startX ) + continue; + if ( t < stopX ) + { + if ( se[i, j] == 1 ) + { + foundSomething = true; + // get new MAX value + v = src[ir * srcStride + jr]; + if ( v > max ) + max = v; + } + } + } + } + // result pixel + *dst = ( foundSomething ) ? max : *src; + } + } + } + else + { + // 24 bpp color image + + // compute each line + for ( int y = startY; y < stopY; y++ ) + { + byte* src = baseSrc + y * srcStride; + byte* dst = baseDst + y * dstStride; + + byte maxR, maxG, maxB, v; + byte* p; + + // loop and array indexes + int t, ir, jr, i, j; + + // for each pixel + for ( int x = startX; x < stopX; x++, src += 3, dst += 3 ) + { + maxR = maxG = maxB = 0; + foundSomething = false; + + // for each structuring element's row + for ( i = 0; i < size; i++ ) + { + ir = i - r; + t = y + ir; + + // skip row + if ( t < startY ) + continue; + // break + if ( t >= stopY ) + break; + + // for each structuring element's column + for ( j = 0; j < size; j++ ) + { + jr = j - r; + t = x + jr; + + // skip column + if ( t < startX ) + continue; + if ( t < stopX ) + { + if ( se[i, j] == 1 ) + { + foundSomething = true; + // get new MAX values + p = &src[ir * srcStride + jr * 3]; + + // red + v = p[RGB.R]; + if ( v > maxR ) + maxR = v; + + // green + v = p[RGB.G]; + if ( v > maxG ) + maxG = v; + + // blue + v = p[RGB.B]; + if ( v > maxB ) + maxB = v; + } + } + } + } + // result pixel + if ( foundSomething ) + { + dst[RGB.R] = maxR; + dst[RGB.G] = maxG; + dst[RGB.B] = maxB; + } + else + { + dst[RGB.R] = src[RGB.R]; + dst[RGB.G] = src[RGB.G]; + dst[RGB.B] = src[RGB.B]; + } + } + } + } + } + else + { + int pixelSize = ( pixelFormat == PixelFormat.Format16bppGrayScale ) ? 1 : 3; + + int dstStride = destinationData.Stride / 2; + int srcStride = sourceData.Stride / 2; + + // base pointers + ushort* baseSrc = (ushort*) sourceData.ImageData.ToPointer( ); + ushort* baseDst = (ushort*) destinationData.ImageData.ToPointer( ); + + // allign pointers by X + baseSrc += ( startX * pixelSize ); + baseDst += ( startX * pixelSize ); + + if ( pixelFormat == PixelFormat.Format16bppGrayScale ) + { + // 16 bpp grayscale image + + // compute each line + for( int y = startY; y < stopY; y++ ) + { + ushort* src = baseSrc + y * srcStride; + ushort* dst = baseDst + y * dstStride; + + ushort max, v; + + // loop and array indexes + int t, ir, jr, i, j; + + // for each pixel + for ( int x = startX; x < stopX; x++, src++, dst++ ) + { + max = 0; + foundSomething = false; + + // for each structuring element's row + for ( i = 0; i < size; i++ ) + { + ir = i - r; + t = y + ir; + + // skip row + if ( t < startY ) + continue; + // break + if ( t >= stopY ) + break; + + // for each structuring slement's column + for ( j = 0; j < size; j++ ) + { + jr = j - r; + t = x + jr; + + // skip column + if ( t < startX ) + continue; + if ( t < stopX ) + { + if ( se[i, j] == 1 ) + { + foundSomething = true; + // get new MAX value + v = src[ir * srcStride + jr]; + if ( v > max ) + max = v; + } + } + } + } + // result pixel + *dst = ( foundSomething ) ? max : *src; + } + } + } + else + { + // 48 bpp color image + + // compute each line + for( int y = startY; y < stopY; y++ ) + { + ushort* src = baseSrc + y * srcStride; + ushort* dst = baseDst + y * dstStride; + + ushort maxR, maxG, maxB, v; + ushort* p; + + // loop and array indexes + int t, ir, jr, i, j; + + // for each pixel + for ( int x = startX; x < stopX; x++, src += 3, dst += 3 ) + { + maxR = maxG = maxB = 0; + foundSomething = false; + + // for each structuring element's row + for ( i = 0; i < size; i++ ) + { + ir = i - r; + t = y + ir; + + // skip row + if ( t < startY ) + continue; + // break + if ( t >= stopY ) + break; + + // for each structuring element's column + for ( j = 0; j < size; j++ ) + { + jr = j - r; + t = x + jr; + + // skip column + if ( t < startX ) + continue; + if ( t < stopX ) + { + if ( se[i, j] == 1 ) + { + foundSomething = true; + // get new MAX values + p = &src[ir * srcStride + jr * 3]; + + // red + v = p[RGB.R]; + if ( v > maxR ) + maxR = v; + + // green + v = p[RGB.G]; + if ( v > maxG ) + maxG = v; + + // blue + v = p[RGB.B]; + if ( v > maxB ) + maxB = v; + } + } + } + } + // result pixel + if ( foundSomething ) + { + dst[RGB.R] = maxR; + dst[RGB.G] = maxG; + dst[RGB.B] = maxB; + } + else + { + dst[RGB.R] = src[RGB.R]; + dst[RGB.G] = src[RGB.G]; + dst[RGB.B] = src[RGB.B]; + } + } + } + } + } + } + } +} diff --git a/Sources/Imaging/Filters/Morphology/Erosion.cs b/Sources/Imaging/Filters/Morphology/Erosion.cs new file mode 100644 index 00000000..26bf3dae --- /dev/null +++ b/Sources/Imaging/Filters/Morphology/Erosion.cs @@ -0,0 +1,465 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2005-2014 +// aforge.net@gmail.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Erosion operator from Mathematical Morphology. + /// + /// + /// The filter assigns minimum value of surrounding pixels to each pixel of + /// the result image. Surrounding pixels, which should be processed, are specified by + /// structuring element: 1 - to process the neighbor, -1 - to skip it. + /// + /// The filter especially useful for binary image processing, where it removes pixels, which + /// are not surrounded by specified amount of neighbors. It gives ability to remove noisy pixels + /// (stand-alone pixels) or shrink objects. + /// + /// For processing image with 3x3 structuring element, there are different optimizations + /// available, like and . + /// + /// The filter accepts 8 and 16 bpp grayscale images and 24 and 48 bpp + /// color images for processing. + /// + /// Sample usage: + /// + /// // create filter + /// Erosion filter = new Erosion( ); + /// // apply the filter + /// filter.Apply( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + /// + /// + /// + /// + /// + /// + public class Erosion : BaseUsingCopyPartialFilter + { + // structuring element + private short[,] se = new short[3, 3] { { 1, 1, 1 }, { 1, 1, 1 }, { 1, 1, 1 } }; + private int size = 3; + + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Initializes new instance of the class using + /// default structuring element - 3x3 structuring element with all elements equal to 1. + /// + /// + public Erosion( ) + { + // initialize format translation dictionary + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format8bppIndexed; + formatTranslations[PixelFormat.Format24bppRgb] = PixelFormat.Format24bppRgb; + formatTranslations[PixelFormat.Format16bppGrayScale] = PixelFormat.Format16bppGrayScale; + formatTranslations[PixelFormat.Format48bppRgb] = PixelFormat.Format48bppRgb; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Structuring element. + /// + /// Structuring elemement for the erosion morphological operator + /// must be square matrix with odd size in the range of [3, 99]. + /// + /// Invalid size of structuring element. + /// + public Erosion( short[,] se ) + : this( ) + { + int s = se.GetLength( 0 ); + + // check structuring element size + if ( ( s != se.GetLength( 1 ) ) || ( s < 3 ) || ( s > 99 ) || ( s % 2 == 0 ) ) + throw new ArgumentException( "Invalid size of structuring element." ); + + this.se = se; + this.size = s; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Destination image data. + /// Image rectangle for processing by the filter. + /// + protected override unsafe void ProcessFilter( UnmanagedImage sourceData, UnmanagedImage destinationData, Rectangle rect ) + { + PixelFormat pixelFormat = sourceData.PixelFormat; + + // processing start and stop X,Y positions + int startX = rect.Left; + int startY = rect.Top; + int stopX = startX + rect.Width; + int stopY = startY + rect.Height; + + // structuring element's radius + int r = size >> 1; + + // flag to indicate if at least one pixel for the given structuring element was found + bool foundSomething; + + if ( ( pixelFormat == PixelFormat.Format8bppIndexed ) || ( pixelFormat == PixelFormat.Format24bppRgb ) ) + { + int pixelSize = ( pixelFormat == PixelFormat.Format8bppIndexed ) ? 1 : 3; + + int dstStride = destinationData.Stride; + int srcStride = sourceData.Stride; + + // base pointers + byte* baseSrc = (byte*) sourceData.ImageData.ToPointer( ); + byte* baseDst = (byte*) destinationData.ImageData.ToPointer( ); + + // allign pointers by X + baseSrc += ( startX * pixelSize ); + baseDst += ( startX * pixelSize ); + + if ( pixelFormat == PixelFormat.Format8bppIndexed ) + { + // grayscale image + + // compute each line + for ( int y = startY; y < stopY; y++ ) + { + byte* src = baseSrc + y * srcStride; + byte* dst = baseDst + y * dstStride; + + byte min, v; + + // loop and array indexes + int t, ir, jr, i, j; + + // for each pixel + for ( int x = startX; x < stopX; x++, src++, dst++ ) + { + min = 255; + foundSomething = false; + + // for each structuring element's row + for ( i = 0; i < size; i++ ) + { + ir = i - r; + t = y + ir; + + // skip row + if ( t < startY ) + continue; + // break + if ( t >= stopY ) + break; + + // for each structuring element's column + for ( j = 0; j < size; j++ ) + { + jr = j - r; + t = x + jr; + + // skip column + if ( t < startX ) + continue; + if ( t < stopX ) + { + if ( se[i, j] == 1 ) + { + foundSomething = true; + // get new MIN value + v = src[ir * srcStride + jr]; + if ( v < min ) + min = v; + } + } + } + } + // result pixel + *dst = ( foundSomething ) ? min : *src; + } + } + } + else + { + // 24 bpp color image + + // compute each line + for ( int y = startY; y < stopY; y++ ) + { + byte* src = baseSrc + y * srcStride; + byte* dst = baseDst + y * dstStride; + + byte minR, minG, minB, v; + byte* p; + + // loop and array indexes + int t, ir, jr, i, j; + + // for each pixel + for ( int x = startX; x < stopX; x++, src += 3, dst += 3 ) + { + minR = minG = minB = 255; + foundSomething = false; + + // for each structuring element's row + for ( i = 0; i < size; i++ ) + { + ir = i - r; + t = y + ir; + + // skip row + if ( t < startY ) + continue; + // break + if ( t >= stopY ) + break; + + // for each structuring element's column + for ( j = 0; j < size; j++ ) + { + jr = j - r; + t = x + jr; + + // skip column + if ( t < startX ) + continue; + if ( t < stopX ) + { + if ( se[i, j] == 1 ) + { + foundSomething = true; + // get new MIN values + p = &src[ir * srcStride + jr * 3]; + + // red + v = p[RGB.R]; + if ( v < minR ) + minR = v; + + // green + v = p[RGB.G]; + if ( v < minG ) + minG = v; + + // blue + v = p[RGB.B]; + if ( v < minB ) + minB = v; + } + } + } + } + // result pixel + if ( foundSomething ) + { + dst[RGB.R] = minR; + dst[RGB.G] = minG; + dst[RGB.B] = minB; + } + else + { + dst[RGB.R] = src[RGB.R]; + dst[RGB.G] = src[RGB.G]; + dst[RGB.B] = src[RGB.B]; + } + } + } + } + } + else + { + int pixelSize = ( pixelFormat == PixelFormat.Format16bppGrayScale ) ? 1 : 3; + + int dstStride = destinationData.Stride / 2; + int srcStride = sourceData.Stride / 2; + + // base pointers + ushort* baseSrc = (ushort*) sourceData.ImageData.ToPointer( ); + ushort* baseDst = (ushort*) destinationData.ImageData.ToPointer( ); + + // allign pointers by X + baseSrc += ( startX * pixelSize ); + baseDst += ( startX * pixelSize ); + + if ( pixelFormat == PixelFormat.Format16bppGrayScale ) + { + // 16 bpp grayscale image + + // compute each line + for ( int y = startY; y < stopY; y++ ) + { + ushort* src = baseSrc + y * srcStride; + ushort* dst = baseDst + y * dstStride; + + ushort min, v; + + // loop and array indexes + int t, ir, jr, i, j; + + // for each pixel + for ( int x = startX; x < stopX; x++, src++, dst++ ) + { + min = 65535; + foundSomething = false; + + // for each structuring element's row + for ( i = 0; i < size; i++ ) + { + ir = i - r; + t = y + ir; + + // skip row + if ( t < startY ) + continue; + // break + if ( t >= stopY ) + break; + + // for each structuring element's column + for ( j = 0; j < size; j++ ) + { + jr = j - r; + t = x + jr; + + // skip column + if ( t < startX ) + continue; + if ( t < stopX ) + { + if ( se[i, j] == 1 ) + { + foundSomething = true; + // get new MIN value + v = src[ir * srcStride + jr]; + if ( v < min ) + min = v; + } + } + } + } + // result pixel + *dst = ( foundSomething ) ? min : *src; + + } + } + } + else + { + // 48 bpp color image + + // compute each line + for ( int y = startY; y < stopY; y++ ) + { + ushort* src = baseSrc + y * srcStride; + ushort* dst = baseDst + y * dstStride; + + ushort minR, minG, minB, v; + ushort* p; + + // loop and array indexes + int t, ir, jr, i, j; + + // for each pixel + for ( int x = startX; x < stopX; x++, src += 3, dst += 3 ) + { + minR = minG = minB = 65535; + foundSomething = false; + + // for each structuring element's row + for ( i = 0; i < size; i++ ) + { + ir = i - r; + t = y + ir; + + // skip row + if ( t < startY ) + continue; + // break + if ( t >= stopY ) + break; + + // for each structuring element's column + for ( j = 0; j < size; j++ ) + { + jr = j - r; + t = x + jr; + + // skip column + if ( t < startX ) + continue; + if ( t < stopX ) + { + if ( se[i, j] == 1 ) + { + foundSomething = true; + // get new MIN values + p = &src[ir * srcStride + jr * 3]; + + // red + v = p[RGB.R]; + if ( v < minR ) + minR = v; + + // green + v = p[RGB.G]; + if ( v < minG ) + minG = v; + + // blue + v = p[RGB.B]; + if ( v < minB ) + minB = v; + } + } + } + } + // result pixel + if ( foundSomething ) + { + dst[RGB.R] = minR; + dst[RGB.G] = minG; + dst[RGB.B] = minB; + } + else + { + dst[RGB.R] = src[RGB.R]; + dst[RGB.G] = src[RGB.G]; + dst[RGB.B] = src[RGB.B]; + } + } + } + } + } + } + } +} \ No newline at end of file diff --git a/Sources/Imaging/Filters/Morphology/HitAndMiss.cs b/Sources/Imaging/Filters/Morphology/HitAndMiss.cs new file mode 100644 index 00000000..4ce75694 --- /dev/null +++ b/Sources/Imaging/Filters/Morphology/HitAndMiss.cs @@ -0,0 +1,268 @@ +// AForge Image Processing Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2005-2008 +// andrew.kirillov@aaforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Hit-And-Miss operator from Mathematical Morphology. + /// + /// + /// The hit-and-miss filter represents generalization of + /// and filters by extending flexibility of structuring element and + /// providing different modes of its work. Structuring element may contain: + /// + /// 1 - foreground; + /// 0 - background; + /// -1 - don't care. + /// + /// + /// + /// Filter's mode is set by property. The list of modes and its + /// documentation may be found in enumeration. + /// + /// The filter accepts 8 bpp grayscale images for processing. Note: grayscale images are treated + /// as binary with 0 value equals to black and 255 value equals to white. + /// + /// Sample usage: + /// + /// // define kernel to remove pixels on the right side of objects + /// // (pixel is removed, if there is white pixel on the left and + /// // black pixel on the right) + /// short[,] se = new short[,] { + /// { -1, -1, -1 }, + /// { 1, 1, 0 }, + /// { -1, -1, -1 } + /// }; + /// // create filter + /// HitAndMiss filter = new HitAndMiss( se, HitAndMiss.Modes.Thinning ); + /// // apply the filter + /// filter.ApplyInPlace( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + public class HitAndMiss : BaseUsingCopyPartialFilter + { + /// + /// Hit and Miss modes. + /// + /// + /// Bellow is a list of modes meaning depending on pixel's correspondence + /// to specified structuring element: + /// + /// - on match pixel is set to white, otherwise to black; + /// - on match pixel is set to black, otherwise not changed. + /// - on match pixel is set to white, otherwise not changed. + /// + /// + /// + public enum Modes + { + /// + /// Hit and miss mode. + /// + HitAndMiss = 0, + + /// + /// Thinning mode. + /// + Thinning = 1, + + /// + /// Thickening mode. + /// + Thickening = 2 + } + + // structuring element + private short[,] se; + private int size; + + // operation mode + private Modes mode = Modes.HitAndMiss; + + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Operation mode. + /// + /// + /// Mode to use for the filter. See enumeration + /// for the list of available modes and their documentation. + /// + /// Default mode is set to . + /// + public Modes Mode + { + get { return mode; } + set { mode = value; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Structuring element. + /// + /// Structuring elemement for the hit-and-miss morphological operator + /// must be square matrix with odd size in the range of [3, 99]. + /// + /// Invalid size of structuring element. + /// + public HitAndMiss( short[,] se ) + { + int s = se.GetLength( 0 ); + + // check structuring element size + if ( ( s != se.GetLength( 1 ) ) || ( s < 3 ) || ( s > 99 ) || ( s % 2 == 0 ) ) + throw new ArgumentException( ); + + this.se = se; + this.size = s; + + // initialize format translation dictionary + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format8bppIndexed; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Structuring element. + /// Operation mode. + /// + public HitAndMiss( short[,] se, Modes mode ) + : this( se ) + { + this.mode = mode; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Destination image data. + /// Image rectangle for processing by the filter. + /// + protected override unsafe void ProcessFilter( UnmanagedImage sourceData, UnmanagedImage destinationData, Rectangle rect ) + { + // processing start and stop X,Y positions + int startX = rect.Left; + int startY = rect.Top; + int stopX = startX + rect.Width; + int stopY = startY + rect.Height; + + int srcStride = sourceData.Stride; + int dstStride = destinationData.Stride; + int srcOffset = srcStride - rect.Width; + int dstOffset = dstStride - rect.Width; + + // loop and array indexes + int ir, jr, i, j; + // structuring element's radius + int r = size >> 1; + // pixel value + byte dstValue, v; + // structuring element's value + short sv; + + // mode values + byte[] hitValue = new byte[3] { 255, 0, 255 }; + byte[] missValue = new byte[3] { 0, 0, 0 }; + int modeIndex = (int) mode; + + // do the job + byte* src = (byte*) sourceData.ImageData.ToPointer( ); + byte* dst = (byte*) destinationData.ImageData.ToPointer( ); + + // allign pointers to the first pixel to process + src += ( startY * srcStride + startX ); + dst += ( startY * dstStride + startX ); + + // for each line + for ( int y = startY; y < stopY; y++ ) + { + // for each pixel + for ( int x = startX; x < stopX; x++, src++, dst++ ) + { + missValue[1] = missValue[2] = *src; + dstValue = 255; + + // for each structuring element's row + for ( i = 0; i < size; i++ ) + { + ir = i - r; + + // for each structuring element's column + for ( j = 0; j < size; j++ ) + { + jr = j - r; + + // get structuring element's value + sv = se[i, j]; + + // skip "don't care" values + if ( sv == -1 ) + continue; + + // check, if we outside + if ( + ( y + ir < startY ) || ( y + ir >= stopY ) || + ( x + jr < startX ) || ( x + jr >= stopX ) + ) + { + // if it so, the result is zero, + // because it was required pixel + dstValue = 0; + break; + } + + // get source image value + v = src[ir * srcStride + jr]; + + if ( + ( ( sv != 0 ) || ( v != 0 ) ) && + ( ( sv != 1 ) || ( v != 255 ) ) + ) + { + // failed structuring element mutch + dstValue = 0; + break; + } + } + + if ( dstValue == 0 ) + break; + } + // result pixel + *dst = ( dstValue == 255 ) ? hitValue[modeIndex] : missValue[modeIndex]; + } + src += srcOffset; + dst += dstOffset; + } + } + } +} diff --git a/Sources/Imaging/Filters/Morphology/Opening.cs b/Sources/Imaging/Filters/Morphology/Opening.cs new file mode 100644 index 00000000..ed0284fb --- /dev/null +++ b/Sources/Imaging/Filters/Morphology/Opening.cs @@ -0,0 +1,280 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2010 +// contacts@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Opening operator from Mathematical Morphology. + /// + /// + /// Opening morphology operator equals to erosion followed + /// by dilatation. + /// + /// Applied to binary image, the filter may be used for removing small object keeping big objects + /// unchanged. Since erosion is used first, it removes all small objects. Then dilatation restores big + /// objects, which were not removed by erosion. + /// + /// See documentation to and classes for more + /// information and list of supported pixel formats. + /// + /// Sample usage: + /// + /// // create filter + /// Opening filter = new Opening( ); + /// // apply the filter + /// filter.Apply( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + /// + /// + /// + /// + public class Opening : IFilter, IInPlaceFilter, IInPlacePartialFilter, IFilterInformation + { + private Erosion errosion = new Erosion( ); + private Dilatation dilatation = new Dilatation( ); + + /// + /// Format translations dictionary. + /// + public Dictionary FormatTranslations + { + get { return errosion.FormatTranslations; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Initializes new instance of the class using + /// default structuring element for both and + /// classes - 3x3 structuring element with all elements equal to 1. + /// + /// + public Opening( ) { } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Structuring element. + /// + /// See documentation to and + /// classes for information about structuring element constraints. + /// + public Opening( short[,] se ) + { + errosion = new Erosion( se ); + dilatation = new Dilatation( se ); + } + + /// + /// Apply filter to an image. + /// + /// + /// Source image to apply filter to. + /// + /// Returns filter's result obtained by applying the filter to + /// the source image. + /// + /// The method keeps the source image unchanged and returns + /// the result of image processing filter as new image. + /// + /// Unsupported pixel format of the source image. + /// + public Bitmap Apply( Bitmap image ) + { + Bitmap tempImage = errosion.Apply( image ); + Bitmap destImage = dilatation.Apply( tempImage ); + + tempImage.Dispose( ); + + return destImage; + } + + /// + /// Apply filter to an image. + /// + /// + /// Source image to apply filter to. + /// + /// Returns filter's result obtained by applying the filter to + /// the source image. + /// + /// The filter accepts bitmap data as input and returns the result + /// of image processing filter as new image. The source image data are kept + /// unchanged. + /// + public Bitmap Apply( BitmapData imageData ) + { + Bitmap tempImage = errosion.Apply( imageData ); + Bitmap destImage = dilatation.Apply( tempImage ); + + tempImage.Dispose( ); + + return destImage; + } + + /// + /// Apply filter to an image in unmanaged memory. + /// + /// + /// Source image in unmanaged memory to apply filter to. + /// + /// Returns filter's result obtained by applying the filter to + /// the source image. + /// + /// The method keeps the source image unchanged and returns + /// the result of image processing filter as new image. + /// + /// Unsupported pixel format of the source image. + /// + public UnmanagedImage Apply( UnmanagedImage image ) + { + UnmanagedImage destImage = errosion.Apply( image ); + dilatation.ApplyInPlace( destImage ); + + return destImage; + } + + /// + /// Apply filter to an image in unmanaged memory. + /// + /// + /// Source image in unmanaged memory to apply filter to. + /// Destination image in unmanaged memory to put result into. + /// + /// The method keeps the source image unchanged and puts result of image processing + /// into destination image. + /// + /// The destination image must have the same width and height as source image. Also + /// destination image must have pixel format, which is expected by particular filter (see + /// property for information about pixel format conversions). + /// + /// + /// Unsupported pixel format of the source image. + /// Incorrect destination pixel format. + /// Destination image has wrong width and/or height. + /// + public void Apply( UnmanagedImage sourceImage, UnmanagedImage destinationImage ) + { + errosion.Apply( sourceImage, destinationImage ); + dilatation.ApplyInPlace( destinationImage ); + } + + /// + /// Apply filter to an image. + /// + /// + /// Image to apply filter to. + /// + /// The method applies the filter directly to the provided source image. + /// + /// Unsupported pixel format of the source image. + /// + public void ApplyInPlace( Bitmap image ) + { + errosion.ApplyInPlace( image ); + dilatation.ApplyInPlace( image ); + } + + /// + /// Apply filter to an image. + /// + /// + /// Image data to apply filter to. + /// + /// The method applies the filter directly to the provided source image. + /// + /// Unsupported pixel format of the source image. + /// + public void ApplyInPlace( BitmapData imageData ) + { + errosion.ApplyInPlace( imageData ); + dilatation.ApplyInPlace( imageData ); + } + + /// + /// Apply filter to an unmanaged image. + /// + /// + /// Unmanaged image to apply filter to. + /// + /// The method applies the filter directly to the provided source unmanaged image. + /// + /// Unsupported pixel format of the source image. + /// + public void ApplyInPlace( UnmanagedImage image ) + { + errosion.ApplyInPlace( image ); + dilatation.ApplyInPlace( image ); + } + + /// + /// Apply filter to an image or its part. + /// + /// + /// Image to apply filter to. + /// Image rectangle for processing by the filter. + /// + /// The method applies the filter directly to the provided source image. + /// + /// Unsupported pixel format of the source image. + /// + public void ApplyInPlace( Bitmap image, Rectangle rect ) + { + errosion.ApplyInPlace( image, rect ); + dilatation.ApplyInPlace( image, rect ); + } + + /// + /// Apply filter to an image or its part. + /// + /// + /// Image data to apply filter to. + /// Image rectangle for processing by the filter. + /// + /// The method applies the filter directly to the provided source image. + /// + /// Unsupported pixel format of the source image. + /// + public void ApplyInPlace( BitmapData imageData, Rectangle rect ) + { + errosion.ApplyInPlace( imageData, rect ); + dilatation.ApplyInPlace( imageData, rect ); + } + + /// + /// Apply filter to an unmanaged image or its part. + /// + /// + /// Unmanaged image to apply filter to. + /// Image rectangle for processing by the filter. + /// + /// The method applies the filter directly to the provided source image. + /// + /// Unsupported pixel format of the source image. + /// + public void ApplyInPlace( UnmanagedImage image, Rectangle rect ) + { + errosion.ApplyInPlace( image, rect ); + dilatation.ApplyInPlace( image, rect ); + } + } +} diff --git a/Sources/Imaging/Filters/Morphology/Specific Optimizations/BinaryDilatation3x3.cs b/Sources/Imaging/Filters/Morphology/Specific Optimizations/BinaryDilatation3x3.cs new file mode 100644 index 00000000..819cb696 --- /dev/null +++ b/Sources/Imaging/Filters/Morphology/Specific Optimizations/BinaryDilatation3x3.cs @@ -0,0 +1,155 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2005-2009 +// andrew.kirillov@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Binary dilatation operator from Mathematical Morphology with 3x3 structuring element. + /// + /// + /// The filter represents an optimized version of + /// filter, which is aimed for binary images (containing black and white pixels) processed + /// with 3x3 structuring element. This makes this filter ideal for growing objects in binary + /// images – it puts white pixel to the destination image in the case if there is at least + /// one white neighbouring pixel in the source image. + /// + /// See filter, which represents generic version of + /// dilatation filter supporting custom structuring elements and wider range of image formats. + /// + /// The filter accepts 8 bpp grayscale (binary) images for processing. + /// + /// + /// + /// + /// + public class BinaryDilatation3x3 : BaseUsingCopyPartialFilter + { + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public BinaryDilatation3x3( ) + { + // initialize format translation dictionary + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format8bppIndexed; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Destination image data. + /// Image rectangle for processing by the filter. + /// + /// Processing rectangle mast be at least 3x3 in size. + /// + protected override unsafe void ProcessFilter( UnmanagedImage sourceData, UnmanagedImage destinationData, Rectangle rect ) + { + if ( ( rect.Width < 3 ) || ( rect.Height < 3 ) ) + { + throw new InvalidImagePropertiesException( "Processing rectangle mast be at least 3x3 in size." ); + } + + // processing start and stop X,Y positions + int startX = rect.Left + 1; + int startY = rect.Top + 1; + int stopX = rect.Right - 1; + int stopY = rect.Bottom - 1; + + int dstStride = destinationData.Stride; + int srcStride = sourceData.Stride; + + int dstOffset = dstStride - rect.Width + 1; + int srcOffset = srcStride - rect.Width + 1; + + // image pointers + byte* src = (byte*) sourceData.ImageData.ToPointer( ); + byte* dst = (byte*) destinationData.ImageData.ToPointer( ); + + // allign pointers by X and Y + src += ( startX - 1 ) + ( startY - 1 ) * srcStride; + dst += ( startX - 1 ) + ( startY - 1 ) * dstStride; + + // --- process the first line + *dst = (byte) ( *src | src[1] | src[srcStride] | src[srcStride + 1] ); + + src++; + dst++; + + // for each pixel + for ( int x = startX; x < stopX; x++, src++, dst++ ) + { + *dst = (byte) ( *src | src[-1] | src[1] | + src[srcStride] | src[srcStride - 1] | src[srcStride + 1] ); + } + + *dst = (byte) ( *src | src[-1] | src[srcStride] | src[srcStride - 1] ); + + src += srcOffset; + dst += dstOffset; + + // --- process all lines except the last one + for ( int y = startY; y < stopY; y++ ) + { + *dst = (byte) ( *src | src[1] | + src[-srcStride] | src[-srcStride + 1] | + src[srcStride] | src[srcStride + 1] ); + + src++; + dst++; + + // for each pixel + for ( int x = startX; x < stopX; x++, src++, dst++ ) + { + *dst = (byte) ( *src | src[-1] | src[1] | + src[-srcStride] | src[-srcStride - 1] | src[-srcStride + 1] | + src[ srcStride] | src[ srcStride - 1] | src[ srcStride + 1] ); + } + + *dst = (byte) ( *src | src[-1] | + src[-srcStride] | src[-srcStride - 1] | + src[srcStride] | src[srcStride - 1] ); + + src += srcOffset; + dst += dstOffset; + } + + // --- process the last line + *dst = (byte) ( *src | src[1] | src[-srcStride] | src[-srcStride + 1] ); + + src++; + dst++; + + // for each pixel + for ( int x = startX; x < stopX; x++, src++, dst++ ) + { + *dst = (byte) ( *src | src[-1] | src[1] | + src[-srcStride] | src[-srcStride - 1] | src[-srcStride + 1] ); + } + + *dst = (byte) ( *src | src[-1] | src[-srcStride] | src[-srcStride - 1] ); + } + } +} diff --git a/Sources/Imaging/Filters/Morphology/Specific Optimizations/BinaryErosion3x3.cs b/Sources/Imaging/Filters/Morphology/Specific Optimizations/BinaryErosion3x3.cs new file mode 100644 index 00000000..9c343867 --- /dev/null +++ b/Sources/Imaging/Filters/Morphology/Specific Optimizations/BinaryErosion3x3.cs @@ -0,0 +1,138 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2005-2009 +// andrew.kirillov@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Binary erosion operator from Mathematical Morphology with 3x3 structuring element. + /// + /// + /// The filter represents an optimized version of + /// filter, which is aimed for binary images (containing black and white pixels) processed + /// with 3x3 structuring element. This makes this filter ideal for removing noise in binary + /// images – it removes all white pixels, which are neighbouring with at least one blank pixel. + /// + /// + /// See filter, which represents generic version of + /// erosion filter supporting custom structuring elements and wider range of image formats. + /// + /// The filter accepts 8 bpp grayscale (binary) images for processing. + /// + /// + /// + /// + public class BinaryErosion3x3 : BaseUsingCopyPartialFilter + { + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public BinaryErosion3x3( ) + { + // initialize format translation dictionary + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format8bppIndexed; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Destination image data. + /// Image rectangle for processing by the filter. + /// + /// Processing rectangle mast be at least 3x3 in size. + /// + protected override unsafe void ProcessFilter( UnmanagedImage sourceData, UnmanagedImage destinationData, Rectangle rect ) + { + if ( ( rect.Width < 3 ) || ( rect.Height < 3 ) ) + { + throw new InvalidImagePropertiesException( "Processing rectangle mast be at least 3x3 in size." ); + } + + // processing start and stop X,Y positions + int startX = rect.Left + 1; + int startY = rect.Top + 1; + int stopX = rect.Right - 1; + int stopY = rect.Bottom - 1; + + int dstStride = destinationData.Stride; + int srcStride = sourceData.Stride; + + int dstOffset = dstStride - rect.Width + 1; + int srcOffset = srcStride - rect.Width + 1; + + // image pointers + byte* src = (byte*) sourceData.ImageData.ToPointer( ); + byte* dst = (byte*) destinationData.ImageData.ToPointer( ); + + // allign pointers by X and Y + src += ( startX - 1 ) + ( startY - 1 ) * srcStride; + dst += ( startX - 1 ) + ( startY - 1 ) * dstStride; + + // --- process the first line setting all to black + for ( int x = startX - 1; x < stopX; x++, src++, dst++ ) + { + *dst = 0; + } + *dst = 0; + + src += srcOffset; + dst += dstOffset; + + // --- process all lines except the last one + for ( int y = startY; y < stopY; y++ ) + { + // set edge pixel to black + *dst = 0; + + src++; + dst++; + + // for each pixel + for ( int x = startX; x < stopX; x++, src++, dst++ ) + { + *dst = (byte) ( *src & src[-1] & src[1] & + src[-srcStride] & src[-srcStride - 1] & src[-srcStride + 1] & + src[srcStride] & src[srcStride - 1] & src[srcStride + 1] ); + } + + // set edge pixel to black + *dst = 0; + + src += srcOffset; + dst += dstOffset; + } + + // --- process the last line setting all to black + + // for each pixel + for ( int x = startX - 1; x < stopX; x++, src++, dst++ ) + { + *dst = 0; + } + *dst = 0; + } + } +} \ No newline at end of file diff --git a/Sources/Imaging/Filters/Morphology/Specific Optimizations/Dilatation3x3.cs b/Sources/Imaging/Filters/Morphology/Specific Optimizations/Dilatation3x3.cs new file mode 100644 index 00000000..51dc32b4 --- /dev/null +++ b/Sources/Imaging/Filters/Morphology/Specific Optimizations/Dilatation3x3.cs @@ -0,0 +1,255 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2005-2009 +// andrew.kirillov@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Dilatation operator from Mathematical Morphology with 3x3 structuring element. + /// + /// + /// The filter represents an optimized version of + /// filter, which is aimed for grayscale image processing with 3x3 structuring element. + /// + /// See filter, which represents generic version of + /// dilatation filter supporting custom structuring elements and wider range of image formats. + /// + /// The filter accepts 8 bpp grayscale images for processing. + /// + /// + /// + /// + /// + public class Dilatation3x3 : BaseUsingCopyPartialFilter + { + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public Dilatation3x3( ) + { + // initialize format translation dictionary + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format8bppIndexed; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Destination image data. + /// Image rectangle for processing by the filter. + /// + /// Processing rectangle mast be at least 3x3 in size. + /// + protected override unsafe void ProcessFilter( UnmanagedImage sourceData, UnmanagedImage destinationData, Rectangle rect ) + { + if ( ( rect.Width < 3 ) || ( rect.Height < 3 ) ) + { + throw new InvalidImagePropertiesException( "Processing rectangle mast be at least 3x3 in size." ); + } + + // processing start and stop X,Y positions + int startX = rect.Left + 1; + int startY = rect.Top + 1; + int stopX = rect.Right - 1; + int stopY = rect.Bottom - 1; + + int dstStride = destinationData.Stride; + int srcStride = sourceData.Stride; + + int dstOffset = dstStride - rect.Width + 1; + int srcOffset = srcStride - rect.Width + 1; + + // image pointers + byte* src = (byte*) sourceData.ImageData.ToPointer( ); + byte* dst = (byte*) destinationData.ImageData.ToPointer( ); + + byte max; + + // allign pointers by X and Y + src += ( startX - 1 ) + ( startY - 1 ) * srcStride; + dst += ( startX - 1 ) + ( startY - 1 ) * dstStride; + + // --- process the first line + max = *src; + + if ( src[1] > max ) + max = src[1]; + if ( src[srcStride] > max ) + max = src[srcStride]; + if ( src[srcStride + 1] > max ) + max = src[srcStride + 1]; + + *dst = max; + + src++; + dst++; + + // for each pixel + for ( int x = startX; x < stopX; x++, src++, dst++ ) + { + max = *src; + + if ( src[-1] > max ) + max = src[-1]; + if ( src[1] > max ) + max = src[1]; + if ( src[srcStride - 1] > max ) + max = src[srcStride - 1]; + if ( src[srcStride] > max ) + max = src[srcStride]; + if ( src[srcStride + 1] > max ) + max = src[srcStride + 1]; + + *dst = max; + } + + max = *src; + + if ( src[-1] > max ) + max = src[-1]; + if ( src[srcStride - 1] > max ) + max = src[srcStride - 1]; + if ( src[srcStride] > max ) + max = src[srcStride]; + + *dst = max; + + src += srcOffset; + dst += dstOffset; + + // --- process all lines except the last one + for ( int y = startY; y < stopY; y++ ) + { + max = *src; + + if ( src[1] > max ) + max = src[1]; + if ( src[-srcStride] > max ) + max = src[-srcStride]; + if ( src[-srcStride + 1] > max ) + max = src[-srcStride + 1]; + if ( src[srcStride] > max ) + max = src[srcStride]; + if ( src[srcStride + 1] > max ) + max = src[srcStride + 1]; + + *dst = max; + + src++; + dst++; + + // for each pixel + for ( int x = startX; x < stopX; x++, src++, dst++ ) + { + max = *src; + + if ( src[-1] > max ) + max = src[-1]; + if ( src[1] > max ) + max = src[1]; + if ( src[-srcStride - 1] > max ) + max = src[-srcStride - 1]; + if ( src[-srcStride] > max ) + max = src[-srcStride]; + if ( src[-srcStride + 1] > max ) + max = src[-srcStride + 1]; + if ( src[srcStride - 1] > max ) + max = src[srcStride - 1]; + if ( src[srcStride] > max ) + max = src[srcStride]; + if ( src[srcStride + 1] > max ) + max = src[srcStride + 1]; + + *dst = max; + } + + max = *src; + + if ( src[-1] > max ) + max = src[-1]; + if ( src[-srcStride - 1] > max ) + max = src[-srcStride - 1]; + if ( src[-srcStride] > max ) + max = src[-srcStride]; + if ( src[srcStride - 1] > max ) + max = src[srcStride - 1]; + if ( src[srcStride] > max ) + max = src[srcStride]; + + *dst = max; + + src += srcOffset; + dst += dstOffset; + } + + // --- process the last line + *dst = (byte) ( *src | src[1] | src[-srcStride] | src[-srcStride + 1] ); + + max = *src; + + if ( src[1] > max ) + max = src[1]; + if ( src[-srcStride] > max ) + max = src[-srcStride]; + if ( src[-srcStride + 1] > max ) + max = src[-srcStride + 1]; + + *dst = max; + + src++; + dst++; + + // for each pixel + for ( int x = startX; x < stopX; x++, src++, dst++ ) + { + max = *src; + + if ( src[-1] > max ) + max = src[-1]; + if ( src[1] > max ) + max = src[1]; + if ( src[-srcStride - 1] > max ) + max = src[-srcStride - 1]; + if ( src[-srcStride] > max ) + max = src[-srcStride]; + if ( src[-srcStride + 1] > max ) + max = src[-srcStride + 1]; + + *dst = max; + } + + max = *src; + + if ( src[-1] > max ) + max = src[-1]; + if ( src[-srcStride - 1] > max ) + max = src[-srcStride - 1]; + if ( src[-srcStride] > max ) + max = src[-srcStride]; + + *dst = max; + } + } +} diff --git a/Sources/Imaging/Filters/Morphology/Specific Optimizations/Erosion3.x3.cs b/Sources/Imaging/Filters/Morphology/Specific Optimizations/Erosion3.x3.cs new file mode 100644 index 00000000..c2108685 --- /dev/null +++ b/Sources/Imaging/Filters/Morphology/Specific Optimizations/Erosion3.x3.cs @@ -0,0 +1,255 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2005-2009 +// andrew.kirillov@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Erosion operator from Mathematical Morphology with 3x3 structuring element. + /// + /// + /// The filter represents an optimized version of + /// filter, which is aimed for grayscale image processing with 3x3 structuring element. + /// + /// See filter, which represents generic version of + /// erosion filter supporting custom structuring elements and wider range of image formats. + /// + /// The filter accepts 8 bpp grayscale images for processing. + /// + /// + /// + /// + /// + public class Erosion3x3 : BaseUsingCopyPartialFilter + { + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public Erosion3x3( ) + { + // initialize format translation dictionary + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format8bppIndexed; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Destination image data. + /// Image rectangle for processing by the filter. + /// + /// Processing rectangle mast be at least 3x3 in size. + /// + protected override unsafe void ProcessFilter( UnmanagedImage sourceData, UnmanagedImage destinationData, Rectangle rect ) + { + if ( ( rect.Width < 3 ) || ( rect.Height < 3 ) ) + { + throw new InvalidImagePropertiesException( "Processing rectangle mast be at least 3x3 in size." ); + } + + // processing start and stop X,Y positions + int startX = rect.Left + 1; + int startY = rect.Top + 1; + int stopX = rect.Right - 1; + int stopY = rect.Bottom - 1; + + int dstStride = destinationData.Stride; + int srcStride = sourceData.Stride; + + int dstOffset = dstStride - rect.Width + 1; + int srcOffset = srcStride - rect.Width + 1; + + // image pointers + byte* src = (byte*) sourceData.ImageData.ToPointer( ); + byte* dst = (byte*) destinationData.ImageData.ToPointer( ); + + byte min; + + // allign pointers by X and Y + src += ( startX - 1 ) + ( startY - 1 ) * srcStride; + dst += ( startX - 1 ) + ( startY - 1 ) * dstStride; + + // --- process the first line + min = *src; + + if ( src[1] < min ) + min = src[1]; + if ( src[srcStride] < min ) + min = src[srcStride]; + if ( src[srcStride + 1] < min ) + min = src[srcStride + 1]; + + *dst = min; + + src++; + dst++; + + // for each pixel + for ( int x = startX; x < stopX; x++, src++, dst++ ) + { + min = *src; + + if ( src[-1] < min ) + min = src[-1]; + if ( src[1] < min ) + min = src[1]; + if ( src[srcStride - 1] < min ) + min = src[srcStride - 1]; + if ( src[srcStride] < min ) + min = src[srcStride]; + if ( src[srcStride + 1] < min ) + min = src[srcStride + 1]; + + *dst = min; + } + + min = *src; + + if ( src[-1] < min ) + min = src[-1]; + if ( src[srcStride - 1] < min ) + min = src[srcStride - 1]; + if ( src[srcStride] < min ) + min = src[srcStride]; + + *dst = min; + + src += srcOffset; + dst += dstOffset; + + // --- process all lines except the last one + for ( int y = startY; y < stopY; y++ ) + { + min = *src; + + if ( src[1] < min ) + min = src[1]; + if ( src[-srcStride] < min ) + min = src[-srcStride]; + if ( src[-srcStride + 1] < min ) + min = src[-srcStride + 1]; + if ( src[srcStride] < min ) + min = src[srcStride]; + if ( src[srcStride + 1] < min ) + min = src[srcStride + 1]; + + *dst = min; + + src++; + dst++; + + // for each pixel + for ( int x = startX; x < stopX; x++, src++, dst++ ) + { + min = *src; + + if ( src[-1] < min ) + min = src[-1]; + if ( src[1] < min ) + min = src[1]; + if ( src[-srcStride - 1] < min ) + min = src[-srcStride - 1]; + if ( src[-srcStride] < min ) + min = src[-srcStride]; + if ( src[-srcStride + 1] < min ) + min = src[-srcStride + 1]; + if ( src[srcStride - 1] < min ) + min = src[srcStride - 1]; + if ( src[srcStride] < min ) + min = src[srcStride]; + if ( src[srcStride + 1] < min ) + min = src[srcStride + 1]; + + *dst = min; + } + + min = *src; + + if ( src[-1] < min ) + min = src[-1]; + if ( src[-srcStride - 1] < min ) + min = src[-srcStride - 1]; + if ( src[-srcStride] < min ) + min = src[-srcStride]; + if ( src[srcStride - 1] < min ) + min = src[srcStride - 1]; + if ( src[srcStride] < min ) + min = src[srcStride]; + + *dst = min; + + src += srcOffset; + dst += dstOffset; + } + + // --- process the last line + *dst = (byte) ( *src | src[1] | src[-srcStride] | src[-srcStride + 1] ); + + min = *src; + + if ( src[1] < min ) + min = src[1]; + if ( src[-srcStride] < min ) + min = src[-srcStride]; + if ( src[-srcStride + 1] < min ) + min = src[-srcStride + 1]; + + *dst = min; + + src++; + dst++; + + // for each pixel + for ( int x = startX; x < stopX; x++, src++, dst++ ) + { + min = *src; + + if ( src[-1] < min ) + min = src[-1]; + if ( src[1] < min ) + min = src[1]; + if ( src[-srcStride - 1] < min ) + min = src[-srcStride - 1]; + if ( src[-srcStride] < min ) + min = src[-srcStride]; + if ( src[-srcStride + 1] < min ) + min = src[-srcStride + 1]; + + *dst = min; + } + + min = *src; + + if ( src[-1] < min ) + min = src[-1]; + if ( src[-srcStride - 1] < min ) + min = src[-srcStride - 1]; + if ( src[-srcStride] < min ) + min = src[-srcStride]; + + *dst = min; + } + } +} diff --git a/Sources/Imaging/Filters/Morphology/TopHat.cs b/Sources/Imaging/Filters/Morphology/TopHat.cs new file mode 100644 index 00000000..18a194e6 --- /dev/null +++ b/Sources/Imaging/Filters/Morphology/TopHat.cs @@ -0,0 +1,103 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2010 +// contacts@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Top-hat operator from Mathematical Morphology. + /// + /// + /// Top-hat morphological operator subtracts + /// result of morphological opening on the input image + /// from the input image itself. + /// + /// Applied to binary image, the filter allows to get all those object (their parts) + /// which were removed by opening filter, but never restored. + /// + /// The filter accepts 8 and 16 bpp grayscale images and 24 and 48 bpp + /// color images for processing. + /// + /// Sample usage: + /// + /// // create filter + /// TopHat filter = new TopHat( ); + /// // apply the filter + /// filter.Apply( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + /// + /// + public class TopHat : BaseInPlaceFilter + { + private Opening opening = new Opening( ); + private Subtract subtract = new Subtract( ); + + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public TopHat( ) + { + // initialize format translation dictionary + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format8bppIndexed; + formatTranslations[PixelFormat.Format24bppRgb] = PixelFormat.Format24bppRgb; + formatTranslations[PixelFormat.Format16bppGrayScale] = PixelFormat.Format16bppGrayScale; + formatTranslations[PixelFormat.Format48bppRgb] = PixelFormat.Format48bppRgb; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Structuring element to pass to operator. + /// + public TopHat( short[,] se ) : this( ) + { + opening = new Opening( se ); + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// + protected override unsafe void ProcessFilter( UnmanagedImage image ) + { + // perform opening on the source image + UnmanagedImage openedImage = opening.Apply( image ); + // subtract opened image from source image + subtract.UnmanagedOverlayImage = openedImage; + subtract.ApplyInPlace( image ); + + openedImage.Dispose( ); + } + } +} diff --git a/Sources/Imaging/Filters/Noise generation/AdditiveNoise.cs b/Sources/Imaging/Filters/Noise generation/AdditiveNoise.cs new file mode 100644 index 00000000..6369d275 --- /dev/null +++ b/Sources/Imaging/Filters/Noise generation/AdditiveNoise.cs @@ -0,0 +1,130 @@ +// AForge Image Processing Library +// AForge.NET framework +// +// Copyright © AForge.NET, 2007-2011 +// contacts@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + using AForge.Math.Random; + + /// + /// Additive noise filter. + /// + /// + /// The filter adds random value to each pixel of the source image. + /// The distribution of random values can be specified by random generator. + /// + /// + /// The filter accepts 8 bpp grayscale images and 24 bpp + /// color images for processing. + /// + /// Sample usage: + /// + /// // create random generator + /// IRandomNumberGenerator generator = new UniformGenerator( new Range( -50, 50 ) ); + /// // create filter + /// AdditiveNoise filter = new AdditiveNoise( generator ); + /// // apply the filter + /// filter.ApplyInPlace( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + public class AdditiveNoise : BaseInPlacePartialFilter + { + // random number generator to add noise + IRandomNumberGenerator generator = new UniformGenerator( new Range( -10, 10 ) ); + + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Random number genertor used to add noise. + /// + /// + /// Default generator is uniform generator in the range of (-10, 10). + /// + public IRandomNumberGenerator Generator + { + get { return generator; } + set { generator = value; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public AdditiveNoise( ) + { + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format8bppIndexed; + formatTranslations[PixelFormat.Format24bppRgb] = PixelFormat.Format24bppRgb; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Random number genertor used to add noise. + /// + public AdditiveNoise( IRandomNumberGenerator generator ) + : this( ) + { + this.generator = generator; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Image rectangle for processing by the filter. + /// + protected override unsafe void ProcessFilter( UnmanagedImage image, Rectangle rect ) + { + int pixelSize = ( image.PixelFormat == PixelFormat.Format8bppIndexed ) ? 1 : 3; + + int startY = rect.Top; + int stopY = startY + rect.Height; + + int startX = rect.Left * pixelSize; + int stopX = startX + rect.Width * pixelSize; + + int offset = image.Stride - ( stopX - startX ); + + // do the job + byte* ptr = (byte*) image.ImageData.ToPointer( ); + + // allign pointer to the first pixel to process + ptr += ( startY * image.Stride + rect.Left * pixelSize ); + + // for each line + for ( int y = startY; y < stopY; y++ ) + { + // for each pixel + for ( int x = startX; x < stopX; x++, ptr++ ) + { + *ptr = (byte) Math.Max( 0, Math.Min( 255, *ptr + generator.Next( ) ) ); + } + ptr += offset; + } + } + } +} diff --git a/Sources/Imaging/Filters/Noise generation/SaltAndPepperNoise.cs b/Sources/Imaging/Filters/Noise generation/SaltAndPepperNoise.cs new file mode 100644 index 00000000..f996663b --- /dev/null +++ b/Sources/Imaging/Filters/Noise generation/SaltAndPepperNoise.cs @@ -0,0 +1,142 @@ +// AForge Image Processing Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2005-2008 +// andrew.kirillov@gmail.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Salt and pepper noise. + /// + /// + /// The filter adds random salt and pepper noise - sets + /// maximum or minimum values to randomly selected pixels. + /// + /// The filter accepts 8 bpp grayscale images and 24/32 bpp + /// color images for processing. + /// + /// Sample usage: + /// + /// // create filter + /// SaltAndPepperNoise filter = new SaltAndPepperNoise( 10 ); + /// // apply the filter + /// filter.ApplyInPlace( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + public class SaltAndPepperNoise : BaseInPlacePartialFilter + { + // noise amount in percents + private double noiseAmount = 10; + + // random number generator + private Random rand = new Random( ); + + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Amount of noise to generate in percents, [0, 100]. + /// + /// + public double NoiseAmount + { + get { return noiseAmount; } + set { noiseAmount = Math.Max( 0, Math.Min( 100, value ) ); } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public SaltAndPepperNoise( ) + { + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format8bppIndexed; + formatTranslations[PixelFormat.Format24bppRgb] = PixelFormat.Format24bppRgb; + formatTranslations[PixelFormat.Format32bppRgb] = PixelFormat.Format32bppRgb; + formatTranslations[PixelFormat.Format32bppArgb] = PixelFormat.Format32bppArgb; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Amount of noise to generate in percents, [0, 100]. + /// + public SaltAndPepperNoise( double noiseAmount ) + : this( ) + { + this.noiseAmount = noiseAmount; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Image rectangle for processing by the filter. + /// + protected override unsafe void ProcessFilter( UnmanagedImage image, Rectangle rect ) + { + int startX = rect.Left; + int startY = rect.Top; + int width = rect.Width; + int height = rect.Height; + int stride = image.Stride; + + int noisyPixels = (int) ( ( width * height * noiseAmount ) / 100 ); + + // values to set + byte[] values = new byte[2] { 0, 255 }; + + // do the job + byte* ptr = (byte*) image.ImageData.ToPointer( ); + + if ( image.PixelFormat == PixelFormat.Format8bppIndexed ) + { + // grayscale image + for ( int i = 0; i < noisyPixels; i++ ) + { + int x = startX + rand.Next( width ); + int y = startY + rand.Next( height ); + + ptr[y * stride + x] = values[rand.Next( 2 )]; + } + } + else + { + int pixelSize = ( image.PixelFormat == PixelFormat.Format24bppRgb ) ? 3 : 4; + + // color image + for ( int i = 0; i < noisyPixels; i++ ) + { + int x = startX + rand.Next( width ); + int y = startY + rand.Next( height ); + int colorPlane = rand.Next( 3 ); + + ptr[y * stride + x * pixelSize + colorPlane] = values[rand.Next( 2 )]; + } + } + } + } +} diff --git a/Sources/Imaging/Filters/Normalized RGB/ExtractNormalizedRGBChannel.cs b/Sources/Imaging/Filters/Normalized RGB/ExtractNormalizedRGBChannel.cs new file mode 100644 index 00000000..d3962796 --- /dev/null +++ b/Sources/Imaging/Filters/Normalized RGB/ExtractNormalizedRGBChannel.cs @@ -0,0 +1,174 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Extract normalized RGB channel from color image. + /// + /// + /// Extracts specified normalized RGB channel of color image and returns + /// it as grayscale image. + /// + /// Normalized RGB color space is defined as: + /// + /// r = R / (R + G + B ), + /// g = G / (R + G + B ), + /// b = B / (R + G + B ), + /// + /// where R, G and B are components of RGB color space and + /// r, g and b are components of normalized RGB color space. + /// + /// + /// The filter accepts 24, 32, 48 and 64 bpp color images and produces + /// 8 (if source is 24 or 32 bpp image) or 16 (if source is 48 or 64 bpp image) + /// bpp grayscale image. + /// + /// Sample usage: + /// + /// // create filter + /// ExtractNormalizedRGBChannel filter = new ExtractNormalizedRGBChannel( RGB.G ); + /// // apply the filter + /// Bitmap channelImage = filter.Apply( image ); + /// + /// + /// + /// + /// + /// + public class ExtractNormalizedRGBChannel : BaseFilter + { + private short channel = RGB.R; + + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Normalized RGB channel to extract. + /// + /// + /// Default value is set to . + /// + /// Invalid channel is specified. + /// + public short Channel + { + get { return channel; } + set + { + if ( ( value != RGB.R ) && ( value != RGB.G ) && ( value != RGB.B ) ) + { + throw new ArgumentException( "Invalid channel is specified." ); + } + channel = value; + } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public ExtractNormalizedRGBChannel( ) + { + // initialize format translation dictionary + formatTranslations[PixelFormat.Format24bppRgb] = PixelFormat.Format8bppIndexed; + formatTranslations[PixelFormat.Format32bppRgb] = PixelFormat.Format8bppIndexed; + formatTranslations[PixelFormat.Format32bppArgb] = PixelFormat.Format8bppIndexed; + formatTranslations[PixelFormat.Format48bppRgb] = PixelFormat.Format16bppGrayScale; + formatTranslations[PixelFormat.Format64bppArgb] = PixelFormat.Format16bppGrayScale; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Normalized RGB channel to extract. + /// + public ExtractNormalizedRGBChannel( short channel ) + : this( ) + { + this.Channel = channel; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Destination image data. + /// + protected override unsafe void ProcessFilter( UnmanagedImage sourceData, UnmanagedImage destinationData ) + { + // get width and height + int width = sourceData.Width; + int height = sourceData.Height; + + int pixelSize = Image.GetPixelFormatSize( sourceData.PixelFormat ) / 8; + int sum; + + if ( pixelSize <= 4 ) + { + int srcOffset = sourceData.Stride - width * pixelSize; + int dstOffset = destinationData.Stride - width; + + // do the job + byte * src = (byte*) sourceData.ImageData.ToPointer( ); + byte * dst = (byte*) destinationData.ImageData.ToPointer( ); + + for ( int y = 0; y < height; y++ ) + { + for ( int x = 0; x < width; x++, src += pixelSize, dst++ ) + { + sum = ( src[RGB.R] + src[RGB.G] + src[RGB.B] ); + + *dst = ( sum != 0 ) ? (byte) ( 255 * src[channel] / sum ) : (byte) 0; + } + src += srcOffset; + dst += dstOffset; + } + } + else + { + pixelSize /= 2; + + byte* srcBase = (byte*) sourceData.ImageData.ToPointer( ); + byte* dstBase = (byte*) destinationData.ImageData.ToPointer( ); + int srcStride = sourceData.Stride; + int dstStride = destinationData.Stride; + + // for each line + for ( int y = 0; y < height; y++ ) + { + ushort* src = (ushort*) ( srcBase + y * srcStride ); + ushort* dst = (ushort*) ( dstBase + y * dstStride ); + + // for each pixel + for ( int x = 0; x < width; x++, src += pixelSize, dst++ ) + { + sum = ( src[RGB.R] + src[RGB.G] + src[RGB.B] ); + + *dst = ( sum != 0 ) ? (ushort) ( 65535 * src[channel] / sum ) : (ushort) 0; + } + } + } + } + } +} diff --git a/Sources/Imaging/Filters/Other/ApplyMask.cs b/Sources/Imaging/Filters/Other/ApplyMask.cs new file mode 100644 index 00000000..80df0197 --- /dev/null +++ b/Sources/Imaging/Filters/Other/ApplyMask.cs @@ -0,0 +1,397 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Apply mask to the specified image. + /// + /// + /// The filter applies mask to the specified image - keeps all pixels + /// in the image if corresponding pixels/values of the mask are not equal to 0. For all + /// 0 pixels/values in mask, corresponding pixels in the source image are set to 0. + /// + /// Mask can be specified as .NET's managed Bitmap, as + /// UnmanagedImage or as byte array. + /// In the case if mask is specified as image, it must be 8 bpp grayscale image. In all case + /// mask size must be the same as size of the image to process. + /// + /// The filter accepts 8/16 bpp grayscale and 24/32/48/64 bpp color images for processing. + /// + /// + public class ApplyMask : BaseInPlacePartialFilter + { + private Bitmap maskImage; + private UnmanagedImage unmanagedMaskImage; + private byte[,] mask; + + /// + /// Mask image to apply. + /// + /// + /// The property specifies mask image to use. The image must be grayscale + /// (8 bpp format) and have the same size as the source image to process. + /// + /// When the property is set, both and + /// properties are set to . + /// + /// + /// The mask image must be 8 bpp grayscale image. + /// + public Bitmap MaskImage + { + get { return maskImage; } + set + { + if ( ( maskImage != null ) && ( maskImage.PixelFormat != PixelFormat.Format8bppIndexed ) ) + { + throw new ArgumentException( "The mask image must be 8 bpp grayscale image." ); + } + + maskImage = value; + unmanagedMaskImage = null; + mask = null; + } + } + + /// + /// Unmanaged mask image to apply. + /// + /// + /// The property specifies unmanaged mask image to use. The image must be grayscale + /// (8 bpp format) and have the same size as the source image to process. + /// + /// When the property is set, both and + /// properties are set to . + /// + /// + /// The mask image must be 8 bpp grayscale image. + /// + public UnmanagedImage UnmanagedMaskImage + { + get { return unmanagedMaskImage; } + set + { + if ( ( unmanagedMaskImage != null ) && ( unmanagedMaskImage.PixelFormat != PixelFormat.Format8bppIndexed ) ) + { + throw new ArgumentException( "The mask image must be 8 bpp grayscale image." ); + } + + unmanagedMaskImage = value; + maskImage = null; + mask = null; + } + } + + /// + /// Mask to apply. + /// + /// + /// The property specifies mask array to use. Size of the array must + /// be the same size as the size of the source image to process - its 0th dimension + /// must be equal to image's height and its 1st dimension must be equal to width. For + /// example, for 640x480 image, the mask array must be defined as: + /// + /// byte[,] mask = new byte[480, 640]; + /// + /// + /// + public byte[,] Mask + { + get { return mask; } + set + { + mask = value; + maskImage = null; + unmanagedMaskImage = null; + } + } + + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + /// + /// See + /// documentation for additional information. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + private ApplyMask( ) + { + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format8bppIndexed; + formatTranslations[PixelFormat.Format24bppRgb] = PixelFormat.Format24bppRgb; + formatTranslations[PixelFormat.Format32bppArgb] = PixelFormat.Format32bppArgb; + formatTranslations[PixelFormat.Format32bppRgb] = PixelFormat.Format32bppRgb; + formatTranslations[PixelFormat.Format32bppPArgb] = PixelFormat.Format32bppPArgb; + formatTranslations[PixelFormat.Format16bppGrayScale] = PixelFormat.Format16bppGrayScale; + formatTranslations[PixelFormat.Format48bppRgb] = PixelFormat.Format48bppRgb; + formatTranslations[PixelFormat.Format64bppArgb] = PixelFormat.Format64bppArgb; + formatTranslations[PixelFormat.Format64bppPArgb] = PixelFormat.Format64bppPArgb; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Mask image to use. + /// + public ApplyMask( Bitmap maskImage ) : this( ) + { + MaskImage = maskImage; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Unmanaged mask image to use. + /// + public ApplyMask( UnmanagedImage unmanagedMaskImage ) : this( ) + { + UnmanagedMaskImage = unmanagedMaskImage; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// to use. + /// + public ApplyMask( byte[,] mask ) : this( ) + { + Mask = mask; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Image rectangle for processing by the filter. + /// + /// None of the possible mask properties were set. Need to provide mask before applying the filter. + /// Invalid size of provided mask. Its size must be the same as the size of the image to mask. + /// + protected override unsafe void ProcessFilter( UnmanagedImage image, Rectangle rect ) + { + if ( mask != null ) + { + if ( ( image.Width != mask.GetLength( 1 ) ) || + ( image.Height != mask.GetLength( 0 ) ) ) + { + throw new ArgumentException( "Invalid size of mask array. Its size must be the same as the size of the image to mask." ); + } + + fixed ( byte* maskPtr = mask ) + { + ProcessImage( image, rect, maskPtr, mask.GetLength( 1 ) ); + } + } + else if ( unmanagedMaskImage != null ) + { + if ( ( image.Width != unmanagedMaskImage.Width ) || + ( image.Height != unmanagedMaskImage.Height ) ) + { + throw new ArgumentException( "Invalid size of unmanaged mask image. Its size must be the same as the size of the image to mask." ); + } + + ProcessImage( image, rect, (byte*) unmanagedMaskImage.ImageData.ToPointer( ), + unmanagedMaskImage.Stride ); + } + else if ( maskImage != null ) + { + if ( ( image.Width != maskImage.Width ) || + ( image.Height != maskImage.Height ) ) + { + throw new ArgumentException( "Invalid size of mask image. Its size must be the same as the size of the image to mask." ); + } + + BitmapData maskData = maskImage.LockBits( new Rectangle( 0, 0, image.Width, image.Height ), + ImageLockMode.ReadOnly, PixelFormat.Format8bppIndexed ); + + try + { + ProcessImage( image, rect, (byte*) maskData.Scan0.ToPointer( ), + maskData.Stride ); + } + finally + { + maskImage.UnlockBits( maskData ); + } + } + else + { + throw new NullReferenceException( "None of the possible mask properties were set. Need to provide mask before applying the filter." ); + } + } + + private unsafe void ProcessImage( UnmanagedImage image, Rectangle rect, byte* mask, int maskLineSize ) + { + int pixelSize = Bitmap.GetPixelFormatSize( image.PixelFormat ) / 8; + + int startY = rect.Top; + int stopY = startY + rect.Height; + + int startX = rect.Left; + int stopX = startX + rect.Width; + + int stride = image.Stride; + int maskOffset = maskLineSize - rect.Width; + + // allign mask to the first pixel + mask += maskLineSize * startY + startX; + + if ( ( pixelSize <= 4 ) && ( pixelSize != 2 ) ) + { + // 8 bits per channel + byte* imagePtr = (byte*) image.ImageData.ToPointer( ) + + stride * startY + pixelSize * startX; + int offset = stride - rect.Width * pixelSize; + + #region 8 bit cases + switch ( pixelSize ) + { + case 1: + // 8 bpp grayscale + for ( int y = startY; y < stopY; y++ ) + { + for ( int x = startX; x < stopX; x++, imagePtr++, mask++ ) + { + if ( *mask == 0 ) + { + *imagePtr = 0; + } + } + imagePtr += offset; + mask += maskOffset; + } + break; + + case 3: + // 24 bpp color + for ( int y = startY; y < stopY; y++ ) + { + for ( int x = startX; x < stopX; x++, imagePtr += 3, mask++ ) + { + if ( *mask == 0 ) + { + imagePtr[RGB.R] = 0; + imagePtr[RGB.G] = 0; + imagePtr[RGB.B] = 0; + } + } + imagePtr += offset; + mask += maskOffset; + } + break; + + case 4: + // 32 bpp color + for ( int y = startY; y < stopY; y++ ) + { + for ( int x = startX; x < stopX; x++, imagePtr += 4, mask++ ) + { + if ( *mask == 0 ) + { + imagePtr[RGB.R] = 0; + imagePtr[RGB.G] = 0; + imagePtr[RGB.B] = 0; + imagePtr[RGB.A] = 0; + } + } + imagePtr += offset; + mask += maskOffset; + } + break; + } + #endregion + } + else + { + // 16 bits per channel + byte* imagePtrBase = (byte*) image.ImageData.ToPointer( ) + + stride * startY + pixelSize * startX; + + #region 16 bit cases + switch ( pixelSize ) + { + case 2: + // 16 bpp grayscale + for ( int y = startY; y < stopY; y++ ) + { + ushort* imagePtr = (ushort*) imagePtrBase; + + for ( int x = startX; x < stopX; x++, imagePtr++, mask++ ) + { + if ( *mask == 0 ) + { + *imagePtr = 0; + } + } + imagePtrBase += stride; + mask += maskOffset; + } + break; + + case 6: + // 16 bpp grayscale + for ( int y = startY; y < stopY; y++ ) + { + ushort* imagePtr = (ushort*) imagePtrBase; + + for ( int x = startX; x < stopX; x++, imagePtr += 3, mask++ ) + { + if ( *mask == 0 ) + { + imagePtr[RGB.R] = 0; + imagePtr[RGB.G] = 0; + imagePtr[RGB.B] = 0; + } + } + imagePtrBase += stride; + mask += maskOffset; + } + break; + + case 8: + // 16 bpp grayscale + for ( int y = startY; y < stopY; y++ ) + { + ushort* imagePtr = (ushort*) imagePtrBase; + + for ( int x = startX; x < stopX; x++, imagePtr += 4, mask++ ) + { + if ( *mask == 0 ) + { + imagePtr[RGB.R] = 0; + imagePtr[RGB.G] = 0; + imagePtr[RGB.B] = 0; + imagePtr[RGB.A] = 0; + } + } + imagePtrBase += stride; + mask += maskOffset; + } + break; + } + #endregion + } + } + } +} diff --git a/Sources/Imaging/Filters/Other/BlobsFiltering.cs b/Sources/Imaging/Filters/Other/BlobsFiltering.cs new file mode 100644 index 00000000..f3b2b24f --- /dev/null +++ b/Sources/Imaging/Filters/Other/BlobsFiltering.cs @@ -0,0 +1,255 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2005-2009 +// andrew.kirillov@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Blobs filtering by size. + /// + /// + /// The filter performs filtering of blobs by their size in the specified + /// source image - all blobs, which are smaller or bigger then specified limits, are + /// removed from the image. + /// + /// The image processing filter treats all none black pixels as objects' + /// pixels and all black pixel as background. + /// + /// The filter accepts 8 bpp grayscale images and 24/32 + /// color images for processing. + /// + /// Sample usage: + /// + /// // create filter + /// BlobsFiltering filter = new BlobsFiltering( ); + /// // configure filter + /// filter.CoupledSizeFiltering = true; + /// filter.MinWidth = 70; + /// filter.MinHeight = 70; + /// // apply the filter + /// filter.ApplyInPlace( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + /// + /// + /// + public class BlobsFiltering : BaseInPlaceFilter + { + private BlobCounter blobCounter = new BlobCounter( ); + + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Specifies if size filetering should be coupled or not. + /// + /// + /// See documentation for property + /// of class for more information. + /// + public bool CoupledSizeFiltering + { + get { return blobCounter.CoupledSizeFiltering; } + set { blobCounter.CoupledSizeFiltering = value; } + } + + /// + /// Minimum allowed width of blob. + /// + /// + public int MinWidth + { + get { return blobCounter.MinWidth; } + set { blobCounter.MinWidth = value; } + } + + /// + /// Minimum allowed height of blob. + /// + /// + public int MinHeight + { + get { return blobCounter.MinHeight; } + set { blobCounter.MinHeight = value; } + } + + /// + /// Maximum allowed width of blob. + /// + /// + public int MaxWidth + { + get { return blobCounter.MaxWidth; } + set { blobCounter.MaxWidth = value; } + } + + /// + /// Maximum allowed height of blob. + /// + /// + public int MaxHeight + { + get { return blobCounter.MaxHeight; } + set { blobCounter.MaxHeight = value; } + } + + /// + /// Custom blobs' filter to use. + /// + /// + /// See for information + /// about custom blobs' filtering routine. + /// + public IBlobsFilter BlobsFilter + { + get { return blobCounter.BlobsFilter; } + set { blobCounter.BlobsFilter = value; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public BlobsFiltering( ) + { + blobCounter.FilterBlobs = true; + blobCounter.MinWidth = 1; + blobCounter.MinHeight = 1; + blobCounter.MaxWidth = int.MaxValue; + blobCounter.MaxHeight = int.MaxValue; + + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format8bppIndexed; + formatTranslations[PixelFormat.Format24bppRgb] = PixelFormat.Format24bppRgb; + formatTranslations[PixelFormat.Format32bppArgb] = PixelFormat.Format32bppArgb; + formatTranslations[PixelFormat.Format32bppPArgb] = PixelFormat.Format32bppPArgb; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Minimum allowed width of blob. + /// Minimum allowed height of blob. + /// Maximum allowed width of blob. + /// Maximum allowed height of blob. + /// + /// This constructor creates an instance of class + /// with property set to false. + /// + public BlobsFiltering( int minWidth, int minHeight, int maxWidth, int maxHeight ) + : this( minWidth, minHeight, maxWidth, maxHeight, false ) { } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Minimum allowed width of blob. + /// Minimum allowed height of blob. + /// Maximum allowed width of blob. + /// Maximum allowed height of blob. + /// Specifies if size filetering should be coupled or not. + /// + /// For information about coupled filtering mode see documentation for + /// property of + /// class. + /// + public BlobsFiltering( int minWidth, int minHeight, int maxWidth, int maxHeight, bool coupledSizeFiltering ) + : this( ) + { + blobCounter.MinWidth = minWidth; + blobCounter.MinHeight = minHeight; + blobCounter.MaxWidth = maxWidth; + blobCounter.MaxHeight = maxHeight; + blobCounter.CoupledSizeFiltering = coupledSizeFiltering; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Custom blobs' filtering routine to use + /// (see ). + /// + public BlobsFiltering( IBlobsFilter blobsFilter ) : this( ) + { + blobCounter.BlobsFilter = blobsFilter; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// + protected override unsafe void ProcessFilter( UnmanagedImage image ) + { + // use blob counter to build objects map and filter them + blobCounter.ProcessImage( image ); + int[] objectsMap = blobCounter.ObjectLabels; + + // get image width and height + int width = image.Width; + int height = image.Height; + + // do the job + byte* ptr = (byte*) image.ImageData.ToPointer( ); + + if ( image.PixelFormat == PixelFormat.Format8bppIndexed ) + { + int offset = image.Stride - width; + + for ( int y = 0, p = 0; y < height; y++ ) + { + for ( int x = 0; x < width; x++, ptr++, p++ ) + { + if ( objectsMap[p] == 0 ) + { + *ptr = 0; + } + } + ptr += offset; + } + } + else + { + int pixelSize = Bitmap.GetPixelFormatSize( image.PixelFormat ) / 8; + int offset = image.Stride - width * pixelSize; + + for ( int y = 0, p = 0; y < height; y++ ) + { + for ( int x = 0; x < width; x++, ptr += pixelSize, p++ ) + { + if ( objectsMap[p] == 0 ) + { + ptr[RGB.R] = ptr[RGB.G] = ptr[RGB.B] = 0; + } + } + ptr += offset; + } + } + } + } +} diff --git a/Sources/Imaging/Filters/Other/CanvasCrop.cs b/Sources/Imaging/Filters/Other/CanvasCrop.cs new file mode 100644 index 00000000..7fde9ce9 --- /dev/null +++ b/Sources/Imaging/Filters/Other/CanvasCrop.cs @@ -0,0 +1,239 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Volodymyr Goncharov, 2007 +// volodymyr.goncharov@gmail.com +// +// Copyright © Andrew Kirillov, 2007-2009 +// andrew.kirillov@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System.Drawing; + using System.Collections.Generic; + using System.Drawing.Imaging; + + /// + /// Fill areas outiside of specified region. + /// + /// + /// + /// The filter fills areas outside of specified region using the specified color. + /// + /// The filter accepts 8bpp grayscale and 24/32 bpp color images for processing. + /// + /// Sample usage: + /// + /// // create filter + /// CanvasCrop filter = new CanvasCrop( new Rectangle( + /// 5, 5, image.Width - 10, image.Height - 10 ), Color.Red ); + /// // apply the filter + /// filter.ApplyInPlace( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + /// + /// + public class CanvasCrop : BaseInPlaceFilter + { + // RGB fill color + private byte fillRed = 255; + private byte fillGreen = 255; + private byte fillBlue = 255; + // gray fill color + private byte fillGray = 255; + // region to keep + private Rectangle region; + + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + /// + /// See + /// documentation for additional information. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// RGB fill color. + /// + /// + /// The color is used to fill areas out of specified region in color images. + /// + /// Default value is set to white - RGB(255, 255, 255). + /// + public Color FillColorRGB + { + get { return Color.FromArgb( fillRed, fillGreen, fillBlue ); } + set + { + fillRed = value.R; + fillGreen = value.G; + fillBlue = value.B; + } + } + + /// + /// Gray fill color. + /// + /// + /// The color is used to fill areas out of specified region in grayscale images. + /// + /// Default value is set to white - 255. + /// + public byte FillColorGray + { + get { return fillGray; } + set { fillGray = value; } + } + + /// + /// Region to keep. + /// + /// + /// Pixels inside of the specified region will keep their values, but + /// pixels outside of the region will be filled with specified color. + /// + public Rectangle Region + { + get { return region; } + set { region = value; } + } + + // Private constructor to do common initialization + private CanvasCrop( ) + { + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format8bppIndexed; + formatTranslations[PixelFormat.Format24bppRgb] = PixelFormat.Format24bppRgb; + formatTranslations[PixelFormat.Format32bppArgb] = PixelFormat.Format32bppArgb; + formatTranslations[PixelFormat.Format32bppRgb] = PixelFormat.Format32bppRgb; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Region to keep. + /// + public CanvasCrop( Rectangle region ) : this( ) + { + this.region = region; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Region to keep. + /// RGB color to use for filling areas outside of specified region in color images. + /// + public CanvasCrop( Rectangle region, Color fillColorRGB ) + : this( ) + { + this.region = region; + this.fillRed = fillColorRGB.R; + this.fillGreen = fillColorRGB.G; + this.fillBlue = fillColorRGB.B; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Region to keep. + /// Gray color to use for filling areas outside of specified region in grayscale images. + /// + public CanvasCrop( Rectangle region, byte fillColorGray ) + : this( ) + { + this.region = region; + this.fillGray = fillColorGray; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Region to keep. + /// RGB color to use for filling areas outside of specified region in color images. + /// Gray color to use for filling areas outside of specified region in grayscale images. + /// + public CanvasCrop( Rectangle region, Color fillColorRGB, byte fillColorGray ) + : this( ) + { + this.region = region; + this.fillRed = fillColorRGB.R; + this.fillGreen = fillColorRGB.G; + this.fillBlue = fillColorRGB.B; + this.fillGray = fillColorGray; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// + protected override unsafe void ProcessFilter( UnmanagedImage image ) + { + int pixelSize = Image.GetPixelFormatSize( image.PixelFormat ) / 8; + + // get image width and height + int width = image.Width; + int height = image.Height; + int offset = image.Stride - width * pixelSize; + + // do the job + byte * ptr = (byte*) image.ImageData.ToPointer( ); + + if ( image.PixelFormat == PixelFormat.Format8bppIndexed ) + { + // grayscale image + for ( int y = 0; y < height; y++ ) + { + for ( int x = 0; x < width; x++, ptr++ ) + { + if ( !region.Contains( x, y ) ) + { + *ptr = fillGray; + } + } + ptr += offset; + } + } + else + { + // color image + for ( int y = 0; y < height; y++ ) + { + for ( int x = 0; x < width; x++, ptr += pixelSize ) + { + if ( !region.Contains( x, y ) ) + { + // red + ptr[RGB.R] = fillRed; + // green + ptr[RGB.G] = fillGreen; + // blue + ptr[RGB.B] = fillBlue; + } + } + ptr += offset; + } + } + } + } +} \ No newline at end of file diff --git a/Sources/Imaging/Filters/Other/CanvasFill.cs b/Sources/Imaging/Filters/Other/CanvasFill.cs new file mode 100644 index 00000000..ed919a50 --- /dev/null +++ b/Sources/Imaging/Filters/Other/CanvasFill.cs @@ -0,0 +1,242 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2007-2009 +// andrew.kirillov@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Fill areas iniside of the specified region. + /// + /// + /// + /// The filter fills areas inside of specified region using the specified color. + /// + /// The filter accepts 8bpp grayscale and 24/32 bpp color images for processing. + /// + /// Sample usage: + /// + /// // create filter + /// CanvasFill filter = new CanvasFill( new Rectangle( + /// 5, 5, image.Width - 10, image.Height - 10 ), Color.Red ); + /// // apply the filter + /// filter.ApplyInPlace( image ); + /// + /// + /// + /// + /// + public class CanvasFill : BaseInPlaceFilter + { + // RGB fill color + private byte fillRed = 255; + private byte fillGreen = 255; + private byte fillBlue = 255; + // gray fill color + private byte fillGray = 255; + // region to keep + private Rectangle region; + + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + /// + /// See + /// documentation for additional information. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + + /// + /// RGB fill color. + /// + /// + /// The color is used to fill areas out of specified region in color images. + /// + /// Default value is set to white - RGB(255, 255, 255). + /// + public Color FillColorRGB + { + get { return Color.FromArgb( fillRed, fillGreen, fillBlue ); } + set + { + fillRed = value.R; + fillGreen = value.G; + fillBlue = value.B; + } + } + + /// + /// Gray fill color. + /// + /// + /// The color is used to fill areas out of specified region in grayscale images. + /// + /// Default value is set to white - 255. + /// + public byte FillColorGray + { + get { return fillGray; } + set { fillGray = value; } + } + + /// + /// Region to fill. + /// + /// + /// Pixels inside of the specified region will be filled with specified color. + /// + public Rectangle Region + { + get { return region; } + set { region = value; } + } + + // Private constructor to do common initialization + private CanvasFill( ) + { + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format8bppIndexed; + formatTranslations[PixelFormat.Format24bppRgb] = PixelFormat.Format24bppRgb; + formatTranslations[PixelFormat.Format32bppArgb] = PixelFormat.Format32bppArgb; + formatTranslations[PixelFormat.Format32bppRgb] = PixelFormat.Format32bppRgb; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Region to fill. + /// + public CanvasFill( Rectangle region ) + : this( ) + { + this.region = region; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Region to fill. + /// RGB color to use for filling areas inside of specified region in color images. + /// + public CanvasFill( Rectangle region, Color fillColorRGB ) + : this( ) + { + this.region = region; + this.fillRed = fillColorRGB.R; + this.fillGreen = fillColorRGB.G; + this.fillBlue = fillColorRGB.B; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Region to fill. + /// Gray color to use for filling areas inside of specified region in grayscale images. + /// + public CanvasFill( Rectangle region, byte fillColorGray ) + : this( ) + { + this.region = region; + this.fillGray = fillColorGray; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Region to fill. + /// RGB color to use for filling areas inside of specified region in color images. + /// Gray color to use for filling areas inside of specified region in grayscale images. + /// + public CanvasFill( Rectangle region, Color fillColorRGB, byte fillColorGray ) + : this( ) + { + this.region = region; + this.fillRed = fillColorRGB.R; + this.fillGreen = fillColorRGB.G; + this.fillBlue = fillColorRGB.B; + this.fillGray = fillColorGray; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// + protected override unsafe void ProcessFilter( UnmanagedImage image ) + { + int pixelSize = Image.GetPixelFormatSize( image.PixelFormat ) / 8; + + // get image width and height + int width = image.Width; + int height = image.Height; + + // start (X, Y) point of filling region + int startX = Math.Max( 0, region.X ); + int startY = Math.Max( 0, region.Y ); + + // check if there is nothing to do + if ( ( startX >= width ) || ( startY >= height ) ) + return; + + // stop (X, Y) point of filling region + int stopX = Math.Min( width, region.Right ); + int stopY = Math.Min( height, region.Bottom ); + + // check if there is nothing to do + if ( ( stopX <= startX ) || ( stopY <= startY ) ) + return; + + int stride = image.Stride; + + // do the job + byte * ptr = (byte*) image.ImageData.ToPointer( ) + startY * stride + startX * pixelSize; + + if ( image.PixelFormat == PixelFormat.Format8bppIndexed ) + { + // grayscale image + int fillWidth = stopX - startX; + + for ( int y = startY; y < stopY; y++ ) + { + AForge.SystemTools.SetUnmanagedMemory( ptr, fillGray, fillWidth ); + ptr += stride; + } + } + else + { + // color image + int offset = stride - ( stopX - startX ) * pixelSize; + + for ( int y = startY; y < stopY; y++ ) + { + for ( int x = startX; x < stopX; x++, ptr += pixelSize ) + { + ptr[RGB.R] = fillRed; + ptr[RGB.G] = fillGreen; + ptr[RGB.B] = fillBlue; + } + ptr += offset; + } + } + } + } +} diff --git a/Sources/Imaging/Filters/Other/CanvasMove.cs b/Sources/Imaging/Filters/Other/CanvasMove.cs new file mode 100644 index 00000000..61b9c7c6 --- /dev/null +++ b/Sources/Imaging/Filters/Other/CanvasMove.cs @@ -0,0 +1,426 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System.Drawing; + using System.Collections.Generic; + using System.Drawing.Imaging; + + /// + /// Move canvas to the specified point. + /// + /// + /// + /// The filter moves canvas to the specified area filling unused empty areas with specified color. + /// + /// The filter accepts 8/16 bpp grayscale images and 24/32/48/64 bpp color image + /// for processing. + /// + /// Sample usage: + /// + /// // create filter + /// CanvasMove filter = new CanvasMove( new IntPoint( -50, -50 ), Color.Green ); + /// // apply the filter + /// filter.ApplyInPlace( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + public class CanvasMove : BaseInPlaceFilter + { + // RGB fill color + private byte fillRed = 255; + private byte fillGreen = 255; + private byte fillBlue = 255; + private byte fillAlpha = 255; + // gray fill color + private byte fillGray = 255; + // point to move to + private IntPoint movePoint; + + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + /// + /// See + /// documentation for additional information. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// RGB fill color. + /// + /// + /// The color is used to fill empty areas in color images. + /// + /// Default value is set to white - ARGB(255, 255, 255, 255). + /// + public Color FillColorRGB + { + get { return Color.FromArgb( fillAlpha, fillRed, fillGreen, fillBlue ); } + set + { + fillRed = value.R; + fillGreen = value.G; + fillBlue = value.B; + fillAlpha = value.A; + } + } + + /// + /// Gray fill color. + /// + /// + /// The color is used to fill empty areas in grayscale images. + /// + /// Default value is set to white - 255. + /// + public byte FillColorGray + { + get { return fillGray; } + set { fillGray = value; } + } + + /// + /// Point to move the canvas to. + /// + /// + public IntPoint MovePoint + { + get { return movePoint; } + set { movePoint = value; } + } + + // Private constructor to do common initialization + private CanvasMove( ) + { + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format8bppIndexed; + formatTranslations[PixelFormat.Format16bppGrayScale] = PixelFormat.Format16bppGrayScale; + formatTranslations[PixelFormat.Format24bppRgb] = PixelFormat.Format24bppRgb; + formatTranslations[PixelFormat.Format32bppArgb] = PixelFormat.Format32bppArgb; + formatTranslations[PixelFormat.Format32bppRgb] = PixelFormat.Format32bppRgb; + formatTranslations[PixelFormat.Format48bppRgb] = PixelFormat.Format48bppRgb; + formatTranslations[PixelFormat.Format64bppArgb] = PixelFormat.Format64bppArgb; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Point to move the canvas to. + /// + public CanvasMove( IntPoint movePoint ) + : this( ) + { + this.movePoint = movePoint; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Point to move the canvas. + /// RGB color to use for filling areas empty areas in color images. + /// + public CanvasMove( IntPoint movePoint, Color fillColorRGB ) + : this( ) + { + this.movePoint = movePoint; + this.fillRed = fillColorRGB.R; + this.fillGreen = fillColorRGB.G; + this.fillBlue = fillColorRGB.B; + this.fillAlpha = fillColorRGB.A; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Point to move the canvas. + /// Gray color to use for filling empty areas in grayscale images. + /// + public CanvasMove( IntPoint movePoint, byte fillColorGray ) + : this( ) + { + this.movePoint = movePoint; + this.fillGray = fillColorGray; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Point to move the canvas. + /// RGB color to use for filling areas empty areas in color images. + /// Gray color to use for filling empty areas in grayscale images. + /// + public CanvasMove( IntPoint movePoint, Color fillColorRGB, byte fillColorGray ) + : this( ) + { + this.movePoint = movePoint; + this.fillRed = fillColorRGB.R; + this.fillGreen = fillColorRGB.G; + this.fillBlue = fillColorRGB.B; + this.fillAlpha = fillColorRGB.A; + this.fillGray = fillColorGray; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// + protected override void ProcessFilter( UnmanagedImage image ) + { + int pixelSize = Image.GetPixelFormatSize( image.PixelFormat ) / 8; + + switch ( pixelSize ) + { + case 1: + case 3: + case 4: + ProcessFilter8bpc( image ); + break; + case 2: + case 6: + case 8: + ProcessFilter16bpc( image ); + break; + } + } + + // Process the filter on the image with 8 bits per color channel + private unsafe void ProcessFilter8bpc( UnmanagedImage image ) + { + int pixelSize = Image.GetPixelFormatSize( image.PixelFormat ) / 8; + bool is32bpp = ( pixelSize == 4 ); + + // get image width and height + int width = image.Width; + int height = image.Height; + int stride = image.Stride; + + int movePointX = movePoint.X; + int movePointY = movePoint.Y; + + // intersection rectangle + Rectangle intersect = Rectangle.Intersect( + new Rectangle( 0, 0, width, height ), + new Rectangle( movePointX, movePointY, width, height ) ); + + // start, stop and step for X adn Y + int yStart = 0; + int yStop = height; + int yStep = 1; + int xStart = 0; + int xStop = width; + int xStep = 1; + + if ( movePointY > 0 ) + { + yStart = height - 1; + yStop = -1; + yStep = -1; + } + if ( movePointX > 0 ) + { + xStart = width - 1; + xStop = -1; + xStep = -1; + } + + // do the job + byte* src = (byte*) image.ImageData.ToPointer( ); + byte* pixel, moved; + + if ( image.PixelFormat == PixelFormat.Format8bppIndexed ) + { + // grayscale image + for ( int y = yStart; y != yStop; y += yStep ) + { + for ( int x = xStart; x != xStop; x += xStep ) + { + // current pixel + pixel = src + y * stride + x; + + if ( intersect.Contains( x, y ) ) + { + moved = src + ( y - movePointY ) * stride + ( x - movePointX ); + + *pixel = *moved; + } + else + { + *pixel = fillGray; + } + } + } + } + else + { + // color image + for ( int y = yStart; y != yStop; y += yStep ) + { + for ( int x = xStart; x != xStop; x += xStep ) + { + // current pixel + pixel = src + y * stride + x * pixelSize; + + if ( intersect.Contains( x, y ) ) + { + moved = src + ( y - movePointY ) * stride + ( x - movePointX ) * pixelSize; + + pixel[RGB.R] = moved[RGB.R]; + pixel[RGB.G] = moved[RGB.G]; + pixel[RGB.B] = moved[RGB.B]; + + if ( is32bpp ) + { + pixel[RGB.A] = moved[RGB.A]; + } + } + else + { + pixel[RGB.R] = fillRed; + pixel[RGB.G] = fillGreen; + pixel[RGB.B] = fillBlue; + + if ( is32bpp ) + { + pixel[RGB.A] = fillAlpha; + } + } + } + } + } + } + + // Process the filter on the image with 16 bits per color channel + private unsafe void ProcessFilter16bpc( UnmanagedImage image ) + { + int pixelSize = Image.GetPixelFormatSize( image.PixelFormat ) / 8; + bool is64bpp = ( pixelSize == 8 ); + + // pad fill colours to 16-bits + ushort fillRed = (ushort) ( this.fillRed << 8 ); + ushort fillGreen = (ushort) ( this.fillGreen << 8 ); + ushort fillBlue = (ushort) ( this.fillBlue << 8 ); + ushort fillAlpha = (ushort) ( this.fillAlpha << 8 ); + + // get image width and height + int width = image.Width; + int height = image.Height; + int stride = image.Stride; + + int movePointX = movePoint.X; + int movePointY = movePoint.Y; + + // intersection rectangle + Rectangle intersect = Rectangle.Intersect( + new Rectangle( 0, 0, width, height ), + new Rectangle( movePointX, movePointY, width, height ) ); + + // start, stop and step for X and Y + int yStart = 0; + int yStop = height; + int yStep = 1; + int xStart = 0; + int xStop = width; + int xStep = 1; + + if ( movePointY > 0 ) + { + yStart = height - 1; + yStop = -1; + yStep = -1; + } + if ( movePointX > 0 ) + { + xStart = width - 1; + xStop = -1; + xStep = -1; + } + + // do the job + byte* src = (byte*) image.ImageData.ToPointer( ); + ushort* pixel, moved; + + if ( image.PixelFormat == PixelFormat.Format16bppGrayScale ) + { + // grayscale image + for ( int y = yStart; y != yStop; y += yStep ) + { + for ( int x = xStart; x != xStop; x += xStep ) + { + // current pixel + pixel = (ushort*) ( src + y * stride + x * 2 ); + + if ( intersect.Contains( x, y ) ) + { + moved = (ushort*) ( src + ( y - movePointY ) * stride + ( x - movePointX ) * 2 ); + *pixel = *moved; + } + else + { + *pixel = fillGray; + } + } + } + } + else + { + // color image + for ( int y = yStart; y != yStop; y += yStep ) + { + for ( int x = xStart; x != xStop; x += xStep ) + { + // current pixel + pixel = (ushort*) ( src + y * stride + x * pixelSize ); + + if ( intersect.Contains( x, y ) ) + { + moved = (ushort*) ( src + ( y - movePointY ) * stride + ( x - movePointX ) * pixelSize ); + + pixel[RGB.R] = moved[RGB.R]; + pixel[RGB.G] = moved[RGB.G]; + pixel[RGB.B] = moved[RGB.B]; + + if ( is64bpp ) + { + pixel[RGB.A] = moved[RGB.A]; + } + } + else + { + pixel[RGB.R] = fillRed; + pixel[RGB.G] = fillGreen; + pixel[RGB.B] = fillBlue; + + if ( is64bpp ) + { + pixel[RGB.A] = fillAlpha; + } + } + } + } + } + } + } +} \ No newline at end of file diff --git a/Sources/Imaging/Filters/Other/ConnectedComponentsLabeling.cs b/Sources/Imaging/Filters/Other/ConnectedComponentsLabeling.cs new file mode 100644 index 00000000..aaaabdc0 --- /dev/null +++ b/Sources/Imaging/Filters/Other/ConnectedComponentsLabeling.cs @@ -0,0 +1,233 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2005-2009 +// andrew.kirillov@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Connected components labeling. + /// + /// + /// The filter performs labeling of objects in the source image. It colors + /// each separate object using different color. The image processing filter treats all none + /// black pixels as objects' pixels and all black pixel as background. + /// + /// The filter accepts 8 bpp grayscale images and 24/32 bpp color images and produces + /// 24 bpp RGB image. + /// + /// Sample usage: + /// + /// // create filter + /// ConnectedComponentsLabeling filter = new ConnectedComponentsLabeling( ); + /// // apply the filter + /// Bitmap newImage = filter.Apply( image ); + /// // check objects count + /// int objectCount = filter.ObjectCount; + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + public class ConnectedComponentsLabeling : BaseFilter + { + // Color table for coloring objects + private static Color[] colorTable = new Color[] + { + Color.Red, Color.Green, Color.Blue, Color.Yellow, + Color.Violet, Color.Brown, Color.Olive, Color.Cyan, + + Color.Magenta, Color.Gold, Color.Indigo, Color.Ivory, + Color.HotPink, Color.DarkRed, Color.DarkGreen, Color.DarkBlue, + + Color.DarkSeaGreen, Color.Gray, Color.DarkKhaki, Color.DarkGray, + Color.LimeGreen, Color.Tomato, Color.SteelBlue, Color.SkyBlue, + + Color.Silver, Color.Salmon, Color.SaddleBrown, Color.RosyBrown, + Color.PowderBlue, Color.Plum, Color.PapayaWhip, Color.Orange + }; + + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + // blob counter + private BlobCounterBase blobCounter = new BlobCounter( ); + + /// + /// Blob counter used to locate separate blobs. + /// + /// + /// The property allows to set blob counter to use for blobs' localization. + /// + /// Default value is set to . + /// + /// + public BlobCounterBase BlobCounter + { + get { return blobCounter; } + set { blobCounter = value; } + } + + /// + /// Colors used to color the binary image. + /// + public static Color[] ColorTable + { + get { return colorTable; } + set { colorTable = value; } + } + + /// + /// Specifies if blobs should be filtered. + /// + /// + /// See documentation for property + /// of class for more information. + /// + public bool FilterBlobs + { + get { return blobCounter.FilterBlobs; } + set { blobCounter.FilterBlobs = value; } + } + + /// + /// Specifies if size filetering should be coupled or not. + /// + /// + /// See documentation for property + /// of class for more information. + /// + public bool CoupledSizeFiltering + { + get { return blobCounter.CoupledSizeFiltering; } + set { blobCounter.CoupledSizeFiltering = value; } + } + + /// + /// Minimum allowed width of blob. + /// + /// + public int MinWidth + { + get { return blobCounter.MinWidth; } + set { blobCounter.MinWidth = value; } + } + + /// + /// Minimum allowed height of blob. + /// + /// + public int MinHeight + { + get { return blobCounter.MinHeight; } + set { blobCounter.MinHeight = value; } + } + + /// + /// Maximum allowed width of blob. + /// + /// + public int MaxWidth + { + get { return blobCounter.MaxWidth; } + set { blobCounter.MaxWidth = value; } + } + + /// + /// Maximum allowed height of blob. + /// + /// + public int MaxHeight + { + get { return blobCounter.MaxHeight; } + set { blobCounter.MaxHeight = value; } + } + + /// + /// Objects count. + /// + /// + /// The amount of objects found in the last processed image. + /// + public int ObjectCount + { + get { return blobCounter.ObjectsCount; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public ConnectedComponentsLabeling( ) + { + // initialize format translation dictionary + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format24bppRgb; + formatTranslations[PixelFormat.Format24bppRgb] = PixelFormat.Format24bppRgb; + formatTranslations[PixelFormat.Format32bppArgb] = PixelFormat.Format24bppRgb; + formatTranslations[PixelFormat.Format32bppPArgb] = PixelFormat.Format24bppRgb; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Destination image data. + /// + protected override unsafe void ProcessFilter( UnmanagedImage sourceData, UnmanagedImage destinationData ) + { + // process the image + blobCounter.ProcessImage( sourceData ); + + // get object labels + int[] labels = blobCounter.ObjectLabels; + + // get width and height + int width = sourceData.Width; + int height = sourceData.Height; + + int dstOffset = destinationData.Stride - width * 3; + + // do the job + byte* dst = (byte*) destinationData.ImageData.ToPointer( ); + int p = 0; + + // for each row + for ( int y = 0; y < height; y++ ) + { + // for each pixel + for ( int x = 0; x < width; x++, dst += 3, p++ ) + { + if ( labels[p] != 0 ) + { + Color c = colorTable[( labels[p] - 1 ) % colorTable.Length]; + + dst[RGB.R] = c.R; + dst[RGB.G] = c.G; + dst[RGB.B] = c.B; + } + } + dst += dstOffset; + } + } + } +} diff --git a/Sources/Imaging/Filters/Other/CornersMarker.cs b/Sources/Imaging/Filters/Other/CornersMarker.cs new file mode 100644 index 00000000..f52f7c69 --- /dev/null +++ b/Sources/Imaging/Filters/Other/CornersMarker.cs @@ -0,0 +1,123 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2005-2009 +// andrew.kirillov@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Filter to mark (highlight) corners of objects. + /// + /// + /// + /// The filter highlights corners of objects on the image using provided corners + /// detection algorithm. + /// + /// The filter accepts 8 bpp grayscale and 24/32 color images for processing. + /// + /// Sample usage: + /// + /// // create corner detector's instance + /// SusanCornersDetector scd = new SusanCornersDetector( ); + /// // create corner maker filter + /// CornersMarker filter = new CornersMarker( scd, Color.Red ); + /// // apply the filter + /// filter.ApplyInPlace( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + public class CornersMarker : BaseInPlaceFilter + { + // color used to mark corners + private Color markerColor = Color.White; + // algorithm used to detect corners + private ICornersDetector detector = null; + + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Color used to mark corners. + /// + public Color MarkerColor + { + get { return markerColor; } + set { markerColor = value; } + } + + /// + /// Interface of corners' detection algorithm used to detect corners. + /// + public ICornersDetector Detector + { + get { return detector; } + set { detector = value; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Interface of corners' detection algorithm. + /// + public CornersMarker( ICornersDetector detector ) : this( detector, Color.White ) + { + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Interface of corners' detection algorithm. + /// Marker's color used to mark corner. + /// + public CornersMarker( ICornersDetector detector, Color markerColor ) + { + this.detector = detector; + this.markerColor = markerColor; + + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format8bppIndexed; + formatTranslations[PixelFormat.Format24bppRgb] = PixelFormat.Format24bppRgb; + formatTranslations[PixelFormat.Format32bppRgb] = PixelFormat.Format32bppRgb; + formatTranslations[PixelFormat.Format32bppArgb] = PixelFormat.Format32bppArgb; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// + protected override unsafe void ProcessFilter( UnmanagedImage image ) + { + // get collection of corners + List corners = detector.ProcessImage( image ); + // mark all corners + foreach ( IntPoint corner in corners ) + { + Drawing.FillRectangle( image, new Rectangle( corner.X - 1, corner.Y - 1, 3, 3 ), markerColor ); + } + } + } +} diff --git a/Sources/Imaging/Filters/Other/ExtractBiggestBlob.cs b/Sources/Imaging/Filters/Other/ExtractBiggestBlob.cs new file mode 100644 index 00000000..6e50ef1a --- /dev/null +++ b/Sources/Imaging/Filters/Other/ExtractBiggestBlob.cs @@ -0,0 +1,260 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Extract the biggest blob from image. + /// + /// + /// The filter locates the biggest blob in the source image and extracts it. + /// The filter also can use the source image for the biggest blob's location only, but extract it from + /// another image, which is set using property. The original image + /// usually is the source of the processed image. + /// + /// The filter accepts 8 bpp grayscale images and 24/32 color images for processing as source image passed to + /// method and also for the . + /// + /// Sample usage: + /// + /// // create filter + /// ExtractBiggestBlob filter = new ExtractBiggestBlob( ); + /// // apply the filter + /// Bitmap biggestBlobsImage = filter.Apply( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + public class ExtractBiggestBlob : IFilter, IFilterInformation + { + private Bitmap originalImage = null; + private IntPoint blobPosition; + + /// + /// Position of the extracted blob. + /// + /// + /// After applying the filter this property keeps position of the extracted + /// blob in the source image. + /// + public IntPoint BlobPosition + { + get { return blobPosition; } + } + + /// + /// Format translations dictionary. + /// + /// + /// The dictionary defines, which pixel formats are supported for + /// source images and which pixel format will be used for resulting image. + /// + /// + /// See for more information. + /// + /// + public Dictionary FormatTranslations + { + get + { + Dictionary formatTranslations = new Dictionary( ); + + // initialize format translation dictionary + if ( originalImage == null ) + { + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format8bppIndexed; + formatTranslations[PixelFormat.Format24bppRgb] = PixelFormat.Format24bppRgb; + formatTranslations[PixelFormat.Format32bppArgb] = PixelFormat.Format32bppArgb; + formatTranslations[PixelFormat.Format32bppRgb] = PixelFormat.Format32bppRgb; + formatTranslations[PixelFormat.Format32bppPArgb] = PixelFormat.Format32bppPArgb; + } + else + { + formatTranslations[PixelFormat.Format8bppIndexed] = originalImage.PixelFormat; + formatTranslations[PixelFormat.Format24bppRgb] = originalImage.PixelFormat; + formatTranslations[PixelFormat.Format32bppArgb] = originalImage.PixelFormat; + formatTranslations[PixelFormat.Format32bppRgb] = originalImage.PixelFormat; + formatTranslations[PixelFormat.Format32bppPArgb] = originalImage.PixelFormat; + } + + return formatTranslations; + } + } + + /// + /// Original image, which is the source of the processed image where the biggest blob is searched for. + /// + /// + /// The property may be set to . In this case the biggest blob + /// is extracted from the image, which is passed to image. + /// + /// + public Bitmap OriginalImage + { + get { return originalImage; } + set { originalImage = value; } + } + + /// + /// Apply filter to an image. + /// + /// + /// Source image to get biggest blob from. + /// + /// Returns image of the biggest blob. + /// + /// Unsupported pixel format of the source image. + /// Unsupported pixel format of the original image. + /// Source and original images must have the same size. + /// The source image does not contain any blobs. + /// + public Bitmap Apply( Bitmap image ) + { + // lock source bitmap data + BitmapData srcData = image.LockBits( + new Rectangle( 0, 0, image.Width, image.Height ), + ImageLockMode.ReadOnly, image.PixelFormat ); + + Bitmap dstImage = null; + + try + { + // apply the filter + dstImage = Apply( srcData ); + } + finally + { + // unlock source image + image.UnlockBits( srcData ); + } + + return dstImage; + } + + /// + /// Apply filter to an image. + /// + /// + /// Source image to get biggest blob from. + /// + /// Returns image of the biggest blob. + /// + /// Unsupported pixel format of the source image. + /// Unsupported pixel format of the original image. + /// Source and original images must have the same size. + /// The source image does not contain any blobs. + /// + public Bitmap Apply( BitmapData imageData ) + { + // check pixel format of the source image + if ( !FormatTranslations.ContainsKey( imageData.PixelFormat ) ) + throw new UnsupportedImageFormatException( "Source pixel format is not supported by the filter." ); + + // locate blobs in the source image + BlobCounter blobCounter = new BlobCounter( imageData ); + // get information about blobs + Blob[] blobs = blobCounter.GetObjectsInformation( ); + // find the biggest blob + int maxSize = 0; + Blob biggestBlob = null; + + for ( int i = 0, n = blobs.Length; i < n; i++ ) + { + int size = blobs[i].Rectangle.Width * blobs[i].Rectangle.Height; + + if ( size > maxSize ) + { + maxSize = size; + biggestBlob = blobs[i]; + } + } + + // check if any blob was found + if ( biggestBlob == null ) + { + throw new ArgumentException( "The source image does not contain any blobs." ); + } + + blobPosition = new IntPoint( biggestBlob.Rectangle.Left, biggestBlob.Rectangle.Top ); + + // extract biggest blob's image + if ( originalImage == null ) + { + blobCounter.ExtractBlobsImage( new UnmanagedImage( imageData ), biggestBlob, false ); + } + else + { + // check original image's format + if ( + ( originalImage.PixelFormat != PixelFormat.Format24bppRgb ) && + ( originalImage.PixelFormat != PixelFormat.Format32bppArgb ) && + ( originalImage.PixelFormat != PixelFormat.Format32bppRgb ) && + ( originalImage.PixelFormat != PixelFormat.Format32bppPArgb ) && + ( originalImage.PixelFormat != PixelFormat.Format8bppIndexed ) + ) + { + throw new UnsupportedImageFormatException( "Original image may be grayscale (8bpp indexed) or color (24/32bpp) image only." ); + } + + // check its size + if ( ( originalImage.Width != imageData.Width ) || ( originalImage.Height != imageData.Height ) ) + { + throw new InvalidImagePropertiesException( "Original image must have the same size as passed source image." ); + } + + blobCounter.ExtractBlobsImage( originalImage, biggestBlob, false ); + } + + Bitmap managedImage = biggestBlob.Image.ToManagedImage( ); + + // dispose unmanaged image of the biggest blob + biggestBlob.Image.Dispose( ); + + return managedImage; + } + + /// + /// Apply filter to an image (not implemented). + /// + /// + /// Image in unmanaged memory. + /// + /// Returns filter's result obtained by applying the filter to + /// the source image. + /// + /// The method is not implemented. + /// + public UnmanagedImage Apply( UnmanagedImage image ) + { + throw new NotImplementedException( "The method is not implemented for the filter." ); + } + + /// + /// Apply filter to an image (not implemented). + /// + /// + /// Source image to be processed. + /// Destination image to store filter's result. + /// + /// The method is not implemented. + /// + public void Apply( UnmanagedImage sourceImage, UnmanagedImage destinationImage ) + { + throw new NotImplementedException( "The method is not implemented filter." ); + } + } +} diff --git a/Sources/Imaging/Filters/Other/FillHoles.cs b/Sources/Imaging/Filters/Other/FillHoles.cs new file mode 100644 index 00000000..d490c3c8 --- /dev/null +++ b/Sources/Imaging/Filters/Other/FillHoles.cs @@ -0,0 +1,180 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2010 +// contacts@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Fill holes in objects in binary image. + /// + /// + /// The filter allows to fill black holes in white object in a binary image. + /// It is possible to specify maximum holes' size to fill using + /// and properties. + /// + /// The filter accepts binary image only, which are represented as 8 bpp images. + /// + /// Sample usage: + /// + /// // create and configure the filter + /// FillHoles filter = new FillHoles( ); + /// filter.MaxHoleHeight = 20; + /// filter.MaxHoleWidth = 20; + /// filter.CoupledSizeFiltering = false; + /// // apply the filter + /// Bitmap result = filter.Apply( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + public class FillHoles : BaseInPlaceFilter + { + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + // coupled size filtering or not + private bool coupledSizeFiltering = true; + // maximum hole size to fill + private int maxHoleWidth = int.MaxValue; + private int maxHoleHeight = int.MaxValue; + + /// + /// Specifies if size filetering should be coupled or not. + /// + /// + /// In uncoupled filtering mode, holes are filled in the case if + /// their width is smaller than or equal to or height is smaller than + /// or equal to . But in coupled filtering mode, holes are filled only in + /// the case if both width and height are smaller or equal to the corresponding value. + /// + /// Default value is set to , what means coupled filtering by size. + /// + /// + public bool CoupledSizeFiltering + { + get { return coupledSizeFiltering; } + set { coupledSizeFiltering = value; } + } + + /// + /// Maximum width of a hole to fill. + /// + /// + /// All holes, which have width greater than this value, are kept unfilled. + /// See for additional information. + /// + /// Default value is set to . + /// + public int MaxHoleWidth + { + get { return maxHoleWidth; } + set { maxHoleWidth = Math.Max( value, 0 ); } + } + + /// + /// Maximum height of a hole to fill. + /// + /// + /// All holes, which have height greater than this value, are kept unfilled. + /// See for additional information. + /// + /// Default value is set to . + /// + public int MaxHoleHeight + { + get { return maxHoleHeight; } + set { maxHoleHeight = Math.Max( value, 0 ); } + } + + /// + /// Format translations dictionary. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Initializes a new instance of the class. + /// + public FillHoles( ) + { + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format8bppIndexed; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// + protected override unsafe void ProcessFilter( UnmanagedImage image ) + { + int width = image.Width; + int height = image.Height; + + // 1 - invert the source image + Invert invertFilter = new Invert( ); + UnmanagedImage invertedImage = invertFilter.Apply( image ); + + // 2 - use blob counter to find holes (they are white objects now on the inverted image) + BlobCounter blobCounter = new BlobCounter( ); + blobCounter.ProcessImage( invertedImage ); + Blob[] blobs = blobCounter.GetObjectsInformation( ); + + // 3 - check all blobs and determine which should be filtered + byte[] newObjectColors = new byte[blobs.Length + 1]; + newObjectColors[0] = 255; // don't touch the objects, which have 0 ID + + for ( int i = 0, n = blobs.Length; i < n; i++ ) + { + Blob blob = blobs[i]; + + if ( ( blob.Rectangle.Left == 0 ) || ( blob.Rectangle.Top == 0 ) || + ( blob.Rectangle.Right == width ) || ( blob.Rectangle.Bottom == height ) ) + { + newObjectColors[blob.ID] = 0; + } + else + { + if ( ( ( coupledSizeFiltering ) && ( blob.Rectangle.Width <= maxHoleWidth ) && ( blob.Rectangle.Height <= maxHoleHeight ) ) | + ( ( !coupledSizeFiltering ) && ( ( blob.Rectangle.Width <= maxHoleWidth ) || ( blob.Rectangle.Height <= maxHoleHeight ) ) ) ) + { + newObjectColors[blob.ID] = 255; + } + else + { + newObjectColors[blob.ID] = 0; + } + } + } + + // 4 - process the source image image and fill holes + byte* ptr = (byte*) image.ImageData.ToPointer( ); + int offset = image.Stride - width; + + int[] objectLabels = blobCounter.ObjectLabels; + + for ( int y = 0, i = 0; y < height; y++ ) + { + for ( int x = 0; x < width; x++, i++, ptr++ ) + { + *ptr = newObjectColors[objectLabels[i]]; + } + ptr += offset; + } + } + } +} diff --git a/Sources/Imaging/Filters/Other/HorizontalRunLengthSmoothing.cs b/Sources/Imaging/Filters/Other/HorizontalRunLengthSmoothing.cs new file mode 100644 index 00000000..5671fb27 --- /dev/null +++ b/Sources/Imaging/Filters/Other/HorizontalRunLengthSmoothing.cs @@ -0,0 +1,179 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Horizontal run length smoothing algorithm. + /// + /// + /// The class implements horizontal run length smoothing algorithm, which + /// is described in: K.Y. Wong, R.G. Casey and F.M. Wahl, "Document analysis system," + /// IBM J. Res. Devel., Vol. 26, NO. 6,111). 647-656, 1982. + /// + /// Unlike the original description of this algorithm, this implementation must be applied + /// to inverted binary images containing document, i.e. white text on black background. So this + /// implementation fills horizontal black gaps between white pixels. + /// + /// This algorithm is usually used together with , + /// and then further analysis of white blobs. + /// + /// The filter accepts 8 bpp grayscale images, which are supposed to be binary inverted documents. + /// + /// Sample usage: + /// + /// // create filter + /// HorizontalRunLengthSmoothing hrls = new HorizontalRunLengthSmoothing( 32 ); + /// // apply the filter + /// hrls.ApplyInPlace( image ); + /// + /// + /// Source image: + /// + /// Result image: + /// + /// + /// + /// + /// + public class HorizontalRunLengthSmoothing : BaseInPlacePartialFilter + { + private int maxGapSize = 10; + private bool processGapsWithImageBorders = false; + + /// + /// Maximum gap size to fill (in pixels). + /// + /// + /// The property specifies maximum horizontal gap between white pixels to fill. + /// If number of black pixels between some white pixels is bigger than this value, then those + /// black pixels are left as is; otherwise the gap is filled with white pixels. + /// + /// + /// Default value is set to 10. Minimum value is 1. Maximum value is 1000. + /// + public int MaxGapSize + { + get { return maxGapSize; } + set { maxGapSize = Math.Max( 1, Math.Min( 1000, value ) ); } + } + + /// + /// Process gaps between objects and image borders or not. + /// + /// + /// The property sets if gaps between image borders and objects must be treated as + /// gaps between objects and also filled. + /// + /// Default value is set to . + /// + /// + public bool ProcessGapsWithImageBorders + { + get { return processGapsWithImageBorders; } + set { processGapsWithImageBorders = value; } + } + + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + /// + /// See + /// documentation for additional information. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public HorizontalRunLengthSmoothing( ) + { + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format8bppIndexed; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Maximum gap size to fill (see ). + /// + public HorizontalRunLengthSmoothing( int maxGapSize ) : this( ) + { + MaxGapSize = maxGapSize; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Image rectangle for processing by the filter. + /// + protected override unsafe void ProcessFilter( UnmanagedImage image, Rectangle rect ) + { + int startY = rect.Top; + int stopY = startY + rect.Height; + int width = rect.Width; + int offset = image.Stride - rect.Width; + + byte* ptr = (byte*) image.ImageData.ToPointer( ) + startY * image.Stride + rect.Left; + + for ( int y = startY; y < stopY; y++ ) + { + byte* lineStart = ptr; + byte* lineEndPtr = ptr + width; + + // fill gaps between white pixels + while ( ptr < lineEndPtr ) + { + byte* gapStart = ptr; + + // look for non black pixel + while ( ( ptr < lineEndPtr ) && ( *ptr == 0 ) ) + { + ptr++; + } + + // fill the gap between white areas + if ( ptr - gapStart <= maxGapSize ) + { + if ( ( processGapsWithImageBorders ) || + ( ( gapStart != lineStart ) && ( ptr != lineEndPtr ) ) ) + { + while ( gapStart < ptr ) + { + *gapStart = 255; + gapStart++; + } + } + } + + // skip all non black pixels + while ( ( ptr < lineEndPtr ) && ( *ptr != 0 ) ) + { + ptr++; + } + } + + ptr += offset; + } + } + } +} diff --git a/Sources/Imaging/Filters/Other/ImageWarp.cs b/Sources/Imaging/Filters/Other/ImageWarp.cs new file mode 100644 index 00000000..f0ce0a75 --- /dev/null +++ b/Sources/Imaging/Filters/Other/ImageWarp.cs @@ -0,0 +1,206 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2005-2010 +// andrew.kirillov@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Image warp effect filter. + /// + /// + /// The image processing filter implements a warping filter, which + /// sets pixels in destination image to values from source image taken with specified offset + /// (see ). + /// + /// + /// The filter accepts 8 bpp grayscale images and 24/32 + /// color images for processing. + /// + /// Sample usage: + /// + /// // build warp map + /// int width = image.Width; + /// int height = image.Height; + /// + /// IntPoint[,] warpMap = new IntPoint[height, width]; + /// + /// int size = 8; + /// int maxOffset = -size + 1; + /// + /// for ( int y = 0; y < height; y++ ) + /// { + /// for ( int x = 0; x < width; x++ ) + /// { + /// int dx = ( x / size ) * size - x; + /// int dy = ( y / size ) * size - y; + /// + /// if ( dx + dy <= maxOffset ) + /// { + /// dx = ( x / size + 1 ) * size - 1 - x; + /// } + /// + /// warpMap[y, x] = new IntPoint( dx, dy ); + /// } + /// } + /// // create filter + /// ImageWarp filter = new ImageWarp( warpMap ); + /// // apply the filter + /// Bitmap newImage = filter.Apply( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + public class ImageWarp : BaseFilter + { + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + private IntPoint[,] warpMap = null; + + /// + /// Map used for warping images. + /// + /// + /// The property sets displacement map used for warping images. + /// The map sets offsets of pixels in source image, which are used to set values in destination + /// image. In other words, each pixel in destination image is set to the same value + /// as pixel in source image with corresponding offset (coordinates of pixel in source image + /// are calculated as sum of destination coordinate and corresponding value from warp map). + /// + /// + /// The map array is accessed using [y, x] indexing, i.e. + /// first dimension in the map array corresponds to Y axis of image. + /// + /// If the map is smaller or bigger than the image to process, then only minimum + /// overlapping area of the image is processed. This allows to prepare single big map and reuse + /// it for a set of images for creating similar effects. + /// + /// + public IntPoint[,] WarpMap + { + get { return warpMap; } + set + { + if ( value == null ) + throw new NullReferenceException( "Warp map can not be set to null." ); + + warpMap = value; + } + } + + /// + /// Format translations dictionary. + /// + /// + /// See + /// documentation for additional information. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Map used for warping images (see ). + /// + public ImageWarp( IntPoint[,] warpMap ) + { + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format8bppIndexed; + formatTranslations[PixelFormat.Format24bppRgb] = PixelFormat.Format24bppRgb; + formatTranslations[PixelFormat.Format32bppRgb] = PixelFormat.Format32bppRgb; + formatTranslations[PixelFormat.Format32bppArgb] = PixelFormat.Format32bppArgb; + + WarpMap = warpMap; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Destination image data. + /// + protected override unsafe void ProcessFilter( UnmanagedImage source, UnmanagedImage destination ) + { + int pixelSize = Image.GetPixelFormatSize( source.PixelFormat ) / 8; + + // image width and height + int width = source.Width; + int height = source.Height; + + int widthToProcess = Math.Min( width, warpMap.GetLength( 1 ) ); + int heightToProcess = Math.Min( height, warpMap.GetLength( 0 ) ); + + int srcStride = source.Stride; + int dstStride = destination.Stride; + int dstOffset = dstStride - widthToProcess * pixelSize; + + // new pixel's position + int ox, oy; + + byte* src = (byte*) source.ImageData.ToPointer( ); + byte* dst = (byte*) destination.ImageData.ToPointer( ); + byte* p; + + // for each line + for ( int y = 0; y < heightToProcess; y++ ) + { + // for each pixel + for ( int x = 0; x < widthToProcess; x++ ) + { + // get original pixel's coordinates + ox = x + warpMap[y, x].X; + oy = y + warpMap[y, x].Y; + + // check if the random pixel is inside of image + if ( ( ox >= 0 ) && ( oy >= 0 ) && ( ox < width ) && ( oy < height ) ) + { + p = src + oy * srcStride + ox * pixelSize; + + for ( int i = 0; i < pixelSize; i++, dst++, p++ ) + { + *dst = *p; + } + } + else + { + for ( int i = 0; i < pixelSize; i++, dst++ ) + { + *dst = 0; + } + } + } + + // copy remaining pixel in the row + if ( width != widthToProcess ) + { + AForge.SystemTools.CopyUnmanagedMemory( dst, src + y * srcStride + widthToProcess * pixelSize, ( width - widthToProcess ) * pixelSize ); + } + + dst += dstOffset; + } + + // copy remaining rows of pixels + for ( int y = heightToProcess; y < height; y++, dst += dstStride ) + { + AForge.SystemTools.CopyUnmanagedMemory( dst, src + y * srcStride, width * pixelSize ); + } + } + } +} diff --git a/Sources/Imaging/Filters/Other/Jitter.cs b/Sources/Imaging/Filters/Other/Jitter.cs new file mode 100644 index 00000000..20c8dc85 --- /dev/null +++ b/Sources/Imaging/Filters/Other/Jitter.cs @@ -0,0 +1,186 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2005-2009 +// andrew.kirillov@aforgenet.com +// +// Original idea from CxImage +// http://www.codeproject.com/bitmap/cximage.asp +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Jitter filter. + /// + /// + /// The filter moves each pixel of a source image in + /// random direction within a window of specified radius. + /// + /// The filter accepts 8 bpp grayscale images and 24/32 + /// color images for processing. + /// + /// Sample usage: + /// + /// // create filter + /// Jitter filter = new Jitter( 4 ); + /// // apply the filter + /// filter.ApplyInPlace( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + public class Jitter : BaseUsingCopyPartialFilter + { + private int radius = 2; + + // random number generator + private Random rand = new Random( ); + + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + /// + /// See + /// documentation for additional information. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Jittering radius, [1, 10] + /// + /// + /// Determines radius in which pixels can move. + /// + /// Default value is set to 2. + /// + /// + public int Radius + { + get { return radius; } + set { radius = Math.Max( 1, Math.Min( 10, value ) ); } + } + + /// + /// Initializes a new instance of the class. + /// + public Jitter( ) + { + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format8bppIndexed; + formatTranslations[PixelFormat.Format24bppRgb] = PixelFormat.Format24bppRgb; + formatTranslations[PixelFormat.Format32bppRgb] = PixelFormat.Format32bppRgb; + formatTranslations[PixelFormat.Format32bppArgb] = PixelFormat.Format32bppArgb; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Jittering radius. + /// + public Jitter( int radius ) : this( ) + { + Radius = radius; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Destination image data. + /// Image rectangle for processing by the filter. + /// + protected override unsafe void ProcessFilter( UnmanagedImage source, UnmanagedImage destination, Rectangle rect ) + { + int pixelSize = Image.GetPixelFormatSize( source.PixelFormat ) / 8; + + // processing start and stop X,Y positions + int startX = rect.Left; + int startY = rect.Top; + int stopX = startX + rect.Width; + int stopY = startY + rect.Height; + + int srcStride = source.Stride; + int dstStride = destination.Stride; + int dstOffset = dstStride - rect.Width * pixelSize; + + // new pixel's position + int ox, oy; + + // maximum value for random number generator + int max = radius * 2 + 1; + + byte* src = (byte*) source.ImageData.ToPointer( ); + byte* dst = (byte*) destination.ImageData.ToPointer( ); + byte* p; + + // copy source to destination before + if ( srcStride == dstStride ) + { + AForge.SystemTools.CopyUnmanagedMemory( dst, src, srcStride * source.Height ); + } + else + { + int len = source.Width * pixelSize; + + for ( int y = 0, heigh = source.Height; y < heigh; y++ ) + { + AForge.SystemTools.CopyUnmanagedMemory( + dst + dstStride * y, src + srcStride * y, len ); + } + } + + // allign pointer to the first pixel to process + dst += ( startY * dstStride + startX * pixelSize ); + + // Note: + // It is possible to speed-up this filter creating separate + // loops for RGB and grayscale images. + + // for each line + for ( int y = startY; y < stopY; y++ ) + { + // for each pixel + for ( int x = startX; x < stopX; x++ ) + { + // generate radnom pixel's position + ox = x + rand.Next( max ) - radius; + oy = y + rand.Next( max ) - radius; + + // check if the random pixel is inside our image + if ( ( ox >= startX ) && ( oy >= startY ) && ( ox < stopX ) && ( oy < stopY ) ) + { + p = src + oy * srcStride + ox * pixelSize; + + for ( int i = 0; i < pixelSize; i++, dst++, p++ ) + { + *dst = *p; + } + } + else + { + dst += pixelSize; + } + } + dst += dstOffset; + } + } + } +} diff --git a/Sources/Imaging/Filters/Other/MaskedFilter.cs b/Sources/Imaging/Filters/Other/MaskedFilter.cs new file mode 100644 index 00000000..56d0b3c1 --- /dev/null +++ b/Sources/Imaging/Filters/Other/MaskedFilter.cs @@ -0,0 +1,486 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Apply filter according to the specified mask. + /// + /// + /// The image processing routine applies the specified to + /// a source image according to the specified mask - if a pixel/value in the specified mask image/array + /// is set to 0, then the original pixel's value is kept; otherwise the pixel is filtered using the + /// specified base filter. + /// + /// Mask can be specified as .NET's managed Bitmap, as + /// UnmanagedImage or as byte array. + /// In the case if mask is specified as image, it must be 8 bpp grayscale image. In all case + /// mask size must be the same as size of the image to process. + /// + /// Pixel formats accepted by this filter are specified by the . + /// + /// Sample usage: + /// + /// // create the filter + /// MaskedFilter maskedFilter = new MaskedFilter( new Sepia( ), maskImage ); + /// // apply the filter + /// maskedFilter.ApplyInPlace( image ); + /// + /// + /// Initial image: + /// + /// Mask image: + /// + /// Result image: + /// + /// + /// + public class MaskedFilter : BaseInPlacePartialFilter + { + private IFilter baseFilter = null; + + // masks (one of them must be set) + private Bitmap maskImage; + private UnmanagedImage unmanagedMaskImage; + private byte[,] mask; + + /// + /// Base filter to apply to the source image. + /// + /// + /// The property specifies base filter which is applied to the specified source + /// image (to all pixels which have corresponding none 0 value in mask image/array). + /// + /// The base filter must implement interface. + /// + /// The base filter must never change image's pixel format. For example, if source + /// image's pixel format is 24 bpp color image, then it must stay the same after the base + /// filter is applied. + /// + /// The base filter must never change size of the source image. + /// + /// + /// Base filter can not be set to null. + /// The specified base filter must implement IFilterInformation interface. + /// The specified filter must never change pixel format. + /// + public IFilter BaseFilter + { + get { return baseFilter; } + private set + { + if ( value == null ) + { + throw new NullReferenceException( "Base filter can not be set to null." ); + } + + if ( !( value is IFilterInformation ) ) + { + throw new ArgumentException( "The specified base filter must implement IFilterInformation interface." ); + } + + // check that the base filter does not change pixel format of image + Dictionary baseFormatTranslations = + ( (IFilterInformation) value ).FormatTranslations; + + foreach ( KeyValuePair translation in baseFormatTranslations ) + { + if ( translation.Key != translation.Value ) + { + throw new ArgumentException( "The specified filter must never change pixel format." ); + } + } + + baseFilter = value; + } + } + + /// + /// Mask image to apply. + /// + /// + /// The property specifies mask image to use. The image must be grayscale + /// (8 bpp format) and have the same size as the source image to process. + /// + /// When the property is set, both and + /// properties are set to . + /// + /// + /// The mask image must be 8 bpp grayscale image. + /// + public Bitmap MaskImage + { + get { return maskImage; } + set + { + if ( ( maskImage != null ) && ( maskImage.PixelFormat != PixelFormat.Format8bppIndexed ) ) + { + throw new ArgumentException( "The mask image must be 8 bpp grayscale image." ); + } + + maskImage = value; + unmanagedMaskImage = null; + mask = null; + } + } + + /// + /// Unmanaged mask image to apply. + /// + /// + /// The property specifies unmanaged mask image to use. The image must be grayscale + /// (8 bpp format) and have the same size as the source image to process. + /// + /// When the property is set, both and + /// properties are set to . + /// + /// + /// The mask image must be 8 bpp grayscale image. + /// + public UnmanagedImage UnmanagedMaskImage + { + get { return unmanagedMaskImage; } + set + { + if ( ( unmanagedMaskImage != null ) && ( unmanagedMaskImage.PixelFormat != PixelFormat.Format8bppIndexed ) ) + { + throw new ArgumentException( "The mask image must be 8 bpp grayscale image." ); + } + + unmanagedMaskImage = value; + maskImage = null; + mask = null; + } + } + + /// + /// Mask to apply. + /// + /// + /// The property specifies mask array to use. Size of the array must + /// be the same size as the size of the source image to process - its 0th dimension + /// must be equal to image's height and its 1st dimension must be equal to width. For + /// example, for 640x480 image, the mask array must be defined as: + /// + /// byte[,] mask = new byte[480, 640]; + /// + /// + /// + public byte[,] Mask + { + get { return mask; } + set + { + mask = value; + maskImage = null; + unmanagedMaskImage = null; + } + } + + /// + /// Format translations dictionary. + /// + /// + /// See + /// documentation for additional information. + /// + /// The property returns format translation table from the + /// . + /// + /// + public override Dictionary FormatTranslations + { + get { return ( (IFilterInformation) baseFilter).FormatTranslations; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Base filter to apply to the specified source image. + /// Mask image to use. + /// + public MaskedFilter( IFilter baseFiler, Bitmap maskImage ) + { + BaseFilter = baseFiler; + MaskImage = maskImage; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Base filter to apply to the specified source image. + /// Unmanaged mask image to use. + /// + public MaskedFilter( IFilter baseFiler, UnmanagedImage unmanagedMaskImage ) + { + BaseFilter = baseFiler; + UnmanagedMaskImage = unmanagedMaskImage; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Base filter to apply to the specified source image. + /// to use. + /// + public MaskedFilter( IFilter baseFiler, byte[,] mask ) + { + BaseFilter = baseFiler; + Mask = mask; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Image rectangle for processing by the filter. + /// + /// None of the possible mask properties were set. Need to provide mask before applying the filter. + /// Invalid size of provided mask. Its size must be the same as the size of the image to mask. + /// + protected override unsafe void ProcessFilter( UnmanagedImage image, Rectangle rect ) + { + if ( mask != null ) + { + if ( ( image.Width != mask.GetLength( 1 ) ) || + ( image.Height != mask.GetLength( 0 ) ) ) + { + throw new ArgumentException( "Invalid size of mask array. Its size must be the same as the size of the image to mask." ); + } + + fixed ( byte* maskPtr = mask ) + { + ProcessImage( image, rect, maskPtr, mask.GetLength( 1 ) ); + } + } + else if ( unmanagedMaskImage != null ) + { + if ( ( image.Width != unmanagedMaskImage.Width ) || + ( image.Height != unmanagedMaskImage.Height ) ) + { + throw new ArgumentException( "Invalid size of unmanaged mask image. Its size must be the same as the size of the image to mask." ); + } + + ProcessImage( image, rect, (byte*) unmanagedMaskImage.ImageData.ToPointer( ), + unmanagedMaskImage.Stride ); + } + else if ( maskImage != null ) + { + if ( ( image.Width != maskImage.Width ) || + ( image.Height != maskImage.Height ) ) + { + throw new ArgumentException( "Invalid size of mask image. Its size must be the same as the size of the image to mask." ); + } + + BitmapData maskData = maskImage.LockBits( new Rectangle( 0, 0, image.Width, image.Height ), + ImageLockMode.ReadOnly, PixelFormat.Format8bppIndexed ); + + try + { + ProcessImage( image, rect, (byte*) maskData.Scan0.ToPointer( ), + maskData.Stride ); + } + finally + { + maskImage.UnlockBits( maskData ); + } + } + else + { + throw new NullReferenceException( "None of the possible mask properties were set. Need to provide mask before applying the filter." ); + } + } + + private unsafe void ProcessImage( UnmanagedImage image, Rectangle rect, byte* mask, int maskLineSize ) + { + // apply base filter to the specified image + UnmanagedImage filteredImage = baseFilter.Apply( image ); + + if ( ( image.Width != filteredImage.Width ) || + ( image.Height != filteredImage.Height ) ) + { + throw new ArgumentException( "Base filter must not change image size." ); + } + + int pixelSize = Bitmap.GetPixelFormatSize( image.PixelFormat ) / 8; + + int startY = rect.Top; + int stopY = startY + rect.Height; + + int startX = rect.Left; + int stopX = startX + rect.Width; + + int srcStride = image.Stride; + int filteredStride = filteredImage.Stride; + int maskOffset = maskLineSize - rect.Width; + + // allign mask to the first pixel + mask += maskLineSize * startY + startX; + + if ( ( pixelSize <= 4 ) && ( pixelSize != 2 ) ) + { + // 8 bits per channel + byte* imagePtr = (byte*) image.ImageData.ToPointer( ) + + srcStride * startY + pixelSize * startX; + int srcOffset = srcStride - rect.Width * pixelSize; + + byte* filteredPtr = (byte*) filteredImage.ImageData.ToPointer( ) + + filteredStride * startY + pixelSize * startX; + int filteredOffset = filteredStride - rect.Width * pixelSize; + + #region 8 bit cases + switch ( pixelSize ) + { + case 1: + // 8 bpp grayscale + for ( int y = startY; y < stopY; y++ ) + { + for ( int x = startX; x < stopX; x++, imagePtr++, filteredPtr++, mask++ ) + { + if ( *mask != 0 ) + { + *imagePtr = *filteredPtr; + } + } + imagePtr += srcOffset; + filteredPtr += filteredOffset; + mask += maskOffset; + } + break; + + case 3: + // 24 bpp color + for ( int y = startY; y < stopY; y++ ) + { + for ( int x = startX; x < stopX; x++, imagePtr += 3, filteredPtr += 3, mask++ ) + { + if ( *mask != 0 ) + { + imagePtr[RGB.R] = filteredPtr[RGB.R]; + imagePtr[RGB.G] = filteredPtr[RGB.G]; + imagePtr[RGB.B] = filteredPtr[RGB.B]; + } + } + imagePtr += srcOffset; + filteredPtr += filteredOffset; + mask += maskOffset; + } + break; + + case 4: + // 32 bpp color + for ( int y = startY; y < stopY; y++ ) + { + for ( int x = startX; x < stopX; x++, imagePtr += 4, filteredPtr += 4, mask++ ) + { + if ( *mask != 0 ) + { + imagePtr[RGB.R] = filteredPtr[RGB.R]; + imagePtr[RGB.G] = filteredPtr[RGB.G]; + imagePtr[RGB.B] = filteredPtr[RGB.B]; + imagePtr[RGB.A] = filteredPtr[RGB.A]; + } + } + imagePtr += srcOffset; + filteredPtr += filteredOffset; + mask += maskOffset; + } + break; + } + #endregion + } + else + { + // 16 bits per channel + byte* imagePtrBase = (byte*) image.ImageData.ToPointer( ) + + srcStride * startY + pixelSize * startX; + byte* filteredPtrBase = (byte*) filteredImage.ImageData.ToPointer( ) + + filteredStride * startY + pixelSize * startX; + + #region 16 bit cases + switch ( pixelSize ) + { + case 2: + // 16 bpp grayscale + for ( int y = startY; y < stopY; y++ ) + { + ushort* imagePtr = (ushort*) imagePtrBase; + ushort* filteredPtr = (ushort*) filteredPtrBase; + + for ( int x = startX; x < stopX; x++, imagePtr++, filteredPtr++, mask++ ) + { + if ( *mask != 0 ) + { + *imagePtr = *filteredPtr; + } + } + imagePtrBase += srcStride; + filteredPtrBase += filteredStride; + mask += maskOffset; + } + break; + + case 6: + // 16 bpp grayscale + for ( int y = startY; y < stopY; y++ ) + { + ushort* imagePtr = (ushort*) imagePtrBase; + ushort* filteredPtr = (ushort*) filteredPtrBase; + + for ( int x = startX; x < stopX; x++, imagePtr += 3, filteredPtr += 3, mask++ ) + { + if ( *mask != 0 ) + { + imagePtr[RGB.R] = filteredPtr[RGB.R]; + imagePtr[RGB.G] = filteredPtr[RGB.G]; + imagePtr[RGB.B] = filteredPtr[RGB.B]; + } + } + imagePtrBase += srcStride; + filteredPtrBase += filteredStride; + mask += maskOffset; + } + break; + + case 8: + // 16 bpp grayscale + for ( int y = startY; y < stopY; y++ ) + { + ushort* imagePtr = (ushort*) imagePtrBase; + ushort* filteredPtr = (ushort*) filteredPtrBase; + + for ( int x = startX; x < stopX; x++, imagePtr += 4, filteredPtr += 4, mask++ ) + { + if ( *mask != 0 ) + { + imagePtr[RGB.R] = filteredPtr[RGB.R]; + imagePtr[RGB.G] = filteredPtr[RGB.G]; + imagePtr[RGB.B] = filteredPtr[RGB.B]; + imagePtr[RGB.A] = filteredPtr[RGB.A]; + } + } + imagePtrBase += srcStride; + filteredPtrBase += filteredStride; + mask += maskOffset; + } + break; + } + #endregion + } + } + } +} diff --git a/Sources/Imaging/Filters/Other/Mirror.cs b/Sources/Imaging/Filters/Other/Mirror.cs new file mode 100644 index 00000000..a3771162 --- /dev/null +++ b/Sources/Imaging/Filters/Other/Mirror.cs @@ -0,0 +1,215 @@ +// AForge Image Processing Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2005-2008 +// andrew.kirillov@gmail.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Mirroring filter. + /// + /// + /// The filter mirrors image around X and/or Y axis (horizontal and vertical + /// mirroring). + /// + /// The filter accepts 8 bpp grayscale images and 24 bpp + /// color images for processing. + /// + /// Sample usage: + /// + /// // create filter + /// Mirror filter = new Mirror( false, true ); + /// // apply the filter + /// filter.ApplyInPlace( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + public class Mirror : BaseInPlacePartialFilter + { + private bool mirrorX = false; + private bool mirrorY = false; + + // format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Specifies if mirroring should be done for X axis (horizontal mirroring). + /// + /// + public bool MirrorX + { + get { return mirrorX; } + set { mirrorX = value; } + } + + /// + /// Specifies if mirroring should be done for Y axis (vertical mirroring). + /// + /// + public bool MirrorY + { + get { return mirrorY; } + set { mirrorY = value; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Specifies if mirroring should be done for X axis. + /// Specifies if mirroring should be done for Y axis + /// + public Mirror( bool mirrorX, bool mirrorY ) + { + this.mirrorX = mirrorX; + this.MirrorY = mirrorY; + + // initialize format translation dictionary + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format8bppIndexed; + formatTranslations[PixelFormat.Format24bppRgb] = PixelFormat.Format24bppRgb; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Image rectangle for processing by the filter. + /// + protected override unsafe void ProcessFilter( UnmanagedImage image, Rectangle rect ) + { + int pixelSize = ( image.PixelFormat == PixelFormat.Format8bppIndexed ) ? 1 : 3; + + int width = rect.Width; + int height = rect.Height; + + // processing start and stop X,Y positions + int startY = rect.Top; + int stopY = startY + height; + int startX = rect.Left; + int stopX = startX + width; + int startXInBytes = startX * pixelSize; + int stopXInBytes = stopX * pixelSize; + + int stride = image.Stride; + + // perform Y mirroring + if ( mirrorY ) + { + // first pointer - points to the first pixel in line + byte* ptr1 = (byte*) image.ImageData.ToPointer( ); + ptr1 += ( startY * stride + startX * pixelSize ); + // second pointer - points to the last pixel in line + byte* ptr2 = (byte*) image.ImageData.ToPointer( ); + ptr2 += ( startY * stride + ( stopX - 1 ) * pixelSize ); + + // offsets + int offset1 = stride - ( width >> 1 ) * pixelSize; + int offset2 = stride + ( width >> 1 ) * pixelSize; + + // temporary value for swapping + byte v; + + if ( image.PixelFormat == PixelFormat.Format8bppIndexed ) + { + // grayscale mirroring + + // for each line + for ( int y = startY; y < stopY; y++ ) + { + // for each pixel + for ( int x = startX, halfStopX = startX + ( width >> 1 ); x < halfStopX; x++, ptr1++, ptr2-- ) + { + // swap values + v = *ptr1; + *ptr1 = *ptr2; + *ptr2 = v; + } + ptr1 += offset1; + ptr2 += offset2; + } + } + else + { + // color mirroring + + // for each line + for ( int y = startY; y < stopY; y++ ) + { + // for each pixel + for ( int x = startX, halfStopX = startX + ( width >> 1 ); x < halfStopX; x++, ptr1 += 3, ptr2 -= 3 ) + { + // swap Red + v = ptr1[RGB.R]; + ptr1[RGB.R] = ptr2[RGB.R]; + ptr2[RGB.R] = v; + + // swap Green + v = ptr1[RGB.G]; + ptr1[RGB.G] = ptr2[RGB.G]; + ptr2[RGB.G] = v; + + // swap Blue + v = ptr1[RGB.B]; + ptr1[RGB.B] = ptr2[RGB.B]; + ptr2[RGB.B] = v; + } + ptr1 += offset1; + ptr2 += offset2; + } + } + } + + // perform X mirroring + if ( mirrorX ) + { + int offset = stride - rect.Width * pixelSize; + + // first pointer - points to the first line + byte* ptr1 = (byte*) image.ImageData.ToPointer( ); + ptr1 += ( startY * stride + startX * pixelSize ); + // second pointer - points to the last line + byte* ptr2 = (byte*) image.ImageData.ToPointer( ); + ptr2 += ( ( stopY - 1 ) * stride + startX * pixelSize ); + + // temporary value for swapping + byte v; + + // for each line + for ( int y = startY, halfStopY = startY + ( height >> 1 ); y < halfStopY; y++ ) + { + // for each pixel + for ( int x = startXInBytes; x < stopXInBytes; x++, ptr1++, ptr2++ ) + { + // swap values + v = *ptr1; + *ptr1 = *ptr2; + *ptr2 = v; + } + ptr1 += offset; + ptr2 += offset - stride - stride; + } + } + } + } +} diff --git a/Sources/Imaging/Filters/Other/OilPainting.cs b/Sources/Imaging/Filters/Other/OilPainting.cs new file mode 100644 index 00000000..04729297 --- /dev/null +++ b/Sources/Imaging/Filters/Other/OilPainting.cs @@ -0,0 +1,286 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2005-2009 +// andrew.kirillov@aforgenet.com +// +// Original idea found in Paint.NET project +// http://www.eecs.wsu.edu/paint.net/ +// +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Oil painting filter. + /// + /// + /// Processing source image the filter changes each pixels' value + /// to the value of pixel with the most frequent intensity within window of the + /// specified size. Going through the window the filters + /// finds which intensity of pixels is the most frequent. Then it updates value + /// of the pixel in the center of the window to the value with the most frequent + /// intensity. The update procedure creates the effect of oil painting. + /// + /// The filter accepts 8 bpp grayscale images and 24/32 + /// color images for processing. + /// + /// Sample usage: + /// + /// // create filter + /// OilPainting filter = new OilPainting( 15 ); + /// // apply the filter + /// filter.ApplyInPlace( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + public class OilPainting : BaseUsingCopyPartialFilter + { + private int brushSize = 5; + + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + /// + /// See + /// documentation for additional information. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Brush size, [3, 21]. + /// + /// + /// Window size to search for most frequent pixels' intensity. + /// + /// Default value is set to 5. + /// + public int BrushSize + { + get { return brushSize; } + set { brushSize = Math.Max( 3, Math.Min( 21, value | 1 ) ); } + } + + /// + /// Initializes a new instance of the class. + /// + public OilPainting( ) + { + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format8bppIndexed; + formatTranslations[PixelFormat.Format24bppRgb] = PixelFormat.Format24bppRgb; + formatTranslations[PixelFormat.Format32bppRgb] = PixelFormat.Format32bppRgb; + formatTranslations[PixelFormat.Format32bppArgb] = PixelFormat.Format32bppArgb; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Brush size. + /// + public OilPainting( int brushSize ) : this( ) + { + BrushSize = brushSize; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Destination image data. + /// Image rectangle for processing by the filter. + /// + protected override unsafe void ProcessFilter( UnmanagedImage source, UnmanagedImage destination, Rectangle rect ) + { + int pixelSize = Image.GetPixelFormatSize( source.PixelFormat ) / 8; + + // processing start and stop X,Y positions + int startX = rect.Left; + int startY = rect.Top; + int stopX = startX + rect.Width; + int stopY = startY + rect.Height; + + int srcStride = source.Stride; + int dstStride = destination.Stride; + int srcOffset = srcStride - rect.Width * pixelSize; + int dstOffset = srcStride - rect.Width * pixelSize; + + // loop and array indexes + int i, j, t; + // brush radius + int radius = brushSize >> 1; + + // intensity values + byte intensity, maxIntensity; + int[] intensities = new int[256]; + + byte* src = (byte*) source.ImageData.ToPointer( ); + byte* dst = (byte*) destination.ImageData.ToPointer( ); + byte* p; + + // allign pointers to the first pixel to process + src += ( startY * srcStride + startX * pixelSize ); + dst += ( startY * dstStride + startX * pixelSize ); + + if ( destination.PixelFormat == PixelFormat.Format8bppIndexed ) + { + // Grayscale image + + // for each line + for ( int y = startY; y < stopY; y++ ) + { + // for each pixel + for ( int x = startX; x < stopX; x++, src++, dst++ ) + { + // clear arrays + Array.Clear( intensities, 0, 256 ); + + // for each kernel row + for ( i = -radius; i <= radius; i++ ) + { + t = y + i; + + // skip row + if ( t < startY ) + continue; + // break + if ( t >= stopY ) + break; + + // for each kernel column + for ( j = -radius; j <= radius; j++ ) + { + t = x + j; + + // skip column + if ( t < startX ) + continue; + + if ( t < stopX ) + { + intensity = src[i * srcStride + j]; + intensities[intensity]++; + } + } + } + + // get most frequent intesity + maxIntensity = 0; + j = 0; + + for ( i = 0; i < 256; i++ ) + { + if ( intensities[i] > j ) + { + maxIntensity = (byte) i; + j = intensities[i]; + } + } + + // set destination pixel + *dst = maxIntensity; + } + src += srcOffset; + dst += dstOffset; + } + } + else + { + // RGB image + int[] red = new int[256]; + int[] green = new int[256]; + int[] blue = new int[256]; + + // for each line + for ( int y = startY; y < stopY; y++ ) + { + // for each pixel + for ( int x = startX; x < stopX; x++, src += pixelSize, dst += pixelSize ) + { + // clear arrays + Array.Clear( intensities, 0, 256 ); + Array.Clear( red, 0, 256 ); + Array.Clear( green, 0, 256 ); + Array.Clear( blue, 0, 256 ); + + // for each kernel row + for ( i = -radius; i <= radius; i++ ) + { + t = y + i; + + // skip row + if ( t < startY ) + continue; + // break + if ( t >= stopY ) + break; + + // for each kernel column + for ( j = -radius; j <= radius; j++ ) + { + t = x + j; + + // skip column + if ( t < startX ) + continue; + + if ( t < stopX ) + { + p = &src[i * srcStride + j * pixelSize]; + + // grayscale value using BT709 + intensity = (byte) ( 0.2125 * p[RGB.R] + 0.7154 * p[RGB.G] + 0.0721 * p[RGB.B] ); + + // + intensities[intensity]++; + // red + red[intensity] += p[RGB.R]; + // green + green[intensity] += p[RGB.G]; + // blue + blue[intensity] += p[RGB.B]; + } + } + } + + // get most frequent intesity + maxIntensity = 0; + j = 0; + + for ( i = 0; i < 256; i++ ) + { + if ( intensities[i] > j ) + { + maxIntensity = (byte) i; + j = intensities[i]; + } + } + + // set destination pixel + dst[RGB.R] = (byte) ( red[maxIntensity] / intensities[maxIntensity] ); + dst[RGB.G] = (byte) ( green[maxIntensity] / intensities[maxIntensity] ); + dst[RGB.B] = (byte) ( blue[maxIntensity] / intensities[maxIntensity] ); + } + src += srcOffset; + dst += dstOffset; + } + } + } + } +} diff --git a/Sources/Imaging/Filters/Other/Pixellate.cs b/Sources/Imaging/Filters/Other/Pixellate.cs new file mode 100644 index 00000000..45a91bd1 --- /dev/null +++ b/Sources/Imaging/Filters/Other/Pixellate.cs @@ -0,0 +1,264 @@ +// AForge Image Processing Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2005-2008 +// andrew.kirillov@gmail.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Pixellate filter. + /// + /// + /// The filter processes an image creating the effect of an image with larger + /// pixels - pixellated image. The effect is achieved by filling image's rectangles of the + /// specified size by the color, which is mean color value for the corresponding rectangle. + /// The size of rectangles to process is set by and + /// properties. + /// + /// The filter accepts 8 bpp grayscale images and 24 bpp + /// color images for processing. + /// + /// Sample usage: + /// + /// // create filter + /// Pixellate filter = new Pixellate( ); + /// // apply the filter + /// filter.ApplyInPlace( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + public class Pixellate : BaseInPlacePartialFilter + { + private int pixelWidth = 8; + private int pixelHeight = 8; + + // format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Pixel width, [2, 32]. + /// + /// + /// Default value is set to 8. + /// + /// + /// + /// + public int PixelWidth + { + get { return pixelWidth; } + set { pixelWidth = Math.Max( 2, Math.Min( 32, value ) ); } + } + + /// + /// Pixel height, [2, 32]. + /// + /// + /// Default value is set to 8. + /// + /// + /// + /// + public int PixelHeight + { + get { return pixelHeight; } + set { pixelHeight = Math.Max( 2, Math.Min( 32, value ) ); } + } + + /// + /// Pixel size, [2, 32]. + /// + /// + /// The property is used to set both and + /// simultaneously. + /// + public int PixelSize + { + set { pixelWidth = pixelHeight = Math.Max( 2, Math.Min( 32, value ) ); } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public Pixellate( ) + { + // initialize format translation dictionary + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format8bppIndexed; + formatTranslations[PixelFormat.Format24bppRgb] = PixelFormat.Format24bppRgb; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Pixel size. + /// + public Pixellate( int pixelSize ) : this( ) + { + PixelSize = pixelSize; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Pixel width. + /// Pixel height. + /// + public Pixellate( int pixelWidth, int pixelHeight ) + : this( ) + { + PixelWidth = pixelWidth; + PixelHeight = pixelHeight; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Image rectangle for processing by the filter. + /// + protected override unsafe void ProcessFilter( UnmanagedImage image, Rectangle rect ) + { + int pixelSize = ( image.PixelFormat == PixelFormat.Format8bppIndexed ) ? 1 : 3; + + // processing start and stop Y positions + int startY = rect.Top; + int stopY = startY + rect.Height; + // processing width and offset + int width = rect.Width; + int offset = image.Stride - width * pixelSize; + + // loop indexes and temp vars + int i, j, k, x, t1, t2; + // line length to process + int len = (int) ( ( width - 1 ) / pixelWidth ) + 1; + // reminder + int rem = ( ( width - 1 ) % pixelWidth ) + 1; + + // do the job + byte* src = (byte*) image.ImageData.ToPointer( ); + // allign pointer to the first pixel to process + src += ( startY * image.Stride + rect.Left * pixelSize ); + + byte* dst = src; + + if ( image.PixelFormat == PixelFormat.Format8bppIndexed ) + { + // Grayscale image + int[] tmp = new int[len]; + + for ( int y1 = startY, y2 = startY; y1 < stopY; ) + { + // collect pixels + Array.Clear( tmp, 0, len ); + + // calculate + for ( i = 0; ( i < pixelHeight ) && ( y1 < stopY ); i++, y1++ ) + { + // for each pixel + for ( x = 0; x < width; x++, src++ ) + { + tmp[(int) ( x / pixelWidth )] += (int) *src; + } + src += offset; + } + + // get average values + t1 = i * pixelWidth; + t2 = i * rem; + + for ( j = 0; j < len - 1; j++ ) + tmp[j] /= t1; + tmp[j] /= t2; + + // save average value to destination image + for ( i = 0; ( i < pixelHeight ) && ( y2 < stopY ); i++, y2++ ) + { + // for each pixel + for ( x = 0; x < width; x++, dst++ ) + { + *dst = (byte) tmp[(int) ( x / pixelWidth )]; + } + dst += offset; + } + } + } + else + { + // RGB image + int[] tmp = new int[len * 3]; + + for ( int y1 = startY, y2 = startY; y1 < stopY; ) + { + // collect pixels + Array.Clear( tmp, 0, len * 3 ); + + // calculate + for ( i = 0; ( i < pixelHeight ) && ( y1 < stopY ); i++, y1++ ) + { + // for each pixel + for ( x = 0; x < width; x++, src += 3 ) + { + k = ( x / pixelWidth ) * 3; + tmp[k] += src[RGB.R]; + tmp[k + 1] += src[RGB.G]; + tmp[k + 2] += src[RGB.B]; + } + src += offset; + } + + // get average values + t1 = i * pixelWidth; + t2 = i * rem; + + for ( j = 0, k = 0; j < len - 1; j++, k += 3 ) + { + tmp[k] /= t1; + tmp[k + 1] /= t1; + tmp[k + 2] /= t1; + } + tmp[k] /= t2; + tmp[k + 1] /= t2; + tmp[k + 2] /= t2; + + // save average value to destination image + for ( i = 0; ( i < pixelHeight ) && ( y2 < stopY ); i++, y2++ ) + { + // for each pixel + for ( x = 0; x < width; x++, dst += 3 ) + { + k = ( x / pixelWidth ) * 3; + dst[RGB.R] = (byte) tmp[k]; + dst[RGB.G] = (byte) tmp[k + 1]; + dst[RGB.B] = (byte) tmp[k + 2]; + } + dst += offset; + } + } + } + } + } +} diff --git a/Sources/Imaging/Filters/Other/SimpleSkeletonization.cs b/Sources/Imaging/Filters/Other/SimpleSkeletonization.cs new file mode 100644 index 00000000..ebc4cde9 --- /dev/null +++ b/Sources/Imaging/Filters/Other/SimpleSkeletonization.cs @@ -0,0 +1,214 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2005-2009 +// andrew.kirillov@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Simple skeletonization filter. + /// + /// + /// The filter build simple objects' skeletons by thinning them until + /// they have one pixel wide "bones" horizontally and vertically. The filter uses + /// and colors to distinguish + /// between object and background. + /// + /// The filter accepts 8 bpp grayscale images for processing. + /// + /// Sample usage: + /// + /// // create filter + /// SimpleSkeletonization filter = new SimpleSkeletonization( ); + /// // apply the filter + /// filter.ApplyInPlace( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + public class SimpleSkeletonization : BaseUsingCopyPartialFilter + { + private byte bg = 0; + private byte fg = 255; + + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + /// + /// See + /// documentation for additional information. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Background pixel color. + /// + /// + /// The property sets background (none object) color to look for. + /// + /// Default value is set to 0 - black. + /// + public byte Background + { + get { return bg; } + set { bg = value; } + } + + /// + /// Foreground pixel color. + /// + /// + /// The property sets objects' (none background) color to look for. + /// + /// Default value is set to 255 - white. + /// + public byte Foreground + { + get { return fg; } + set { fg = value; } + } + + /// + /// Initializes a new instance of the class. + /// + public SimpleSkeletonization( ) + { + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format8bppIndexed; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Background pixel color. + /// Foreground pixel color. + /// + public SimpleSkeletonization( byte bg, byte fg ) : this( ) + { + this.bg = bg; + this.fg = fg; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Destination image data. + /// Image rectangle for processing by the filter. + /// + protected override unsafe void ProcessFilter( UnmanagedImage source, UnmanagedImage destination, Rectangle rect ) + { + // processing start and stop X,Y positions + int startX = rect.Left; + int startY = rect.Top; + int stopX = startX + rect.Width; + int stopY = startY + rect.Height; + + int srcStride = source.Stride; + int dstStride = destination.Stride; + int srcOffset = srcStride - rect.Width; + + int start; + + // do the job + byte* src0 = (byte*) source.ImageData.ToPointer( ); + byte* dst0 = (byte*) destination.ImageData.ToPointer( ); + byte* src = src0; + byte* dst = dst0; + + // horizontal pass + + // allign pointers to the first pixel to process + src += ( startY * srcStride + startX ); + dst += ( startY * dstStride ); + + // for each line + for ( int y = startY; y < stopY; y++ ) + { + // make destination image filled with background color + AForge.SystemTools.SetUnmanagedMemory( dst + startX, bg, stopX - startX ); + + start = -1; + // for each pixel + for ( int x = startX; x < stopX; x++, src++ ) + { + // looking for foreground pixel + if ( start == -1 ) + { + if ( *src == fg ) + start = x; + continue; + } + + // looking for non foreground pixel + if ( *src != fg ) + { + dst[start + ( ( x - start ) >> 1 )] = (byte) fg; + start = -1; + } + } + if ( start != -1 ) + { + dst[start + ( ( stopX - start ) >> 1 )] = (byte) fg; + } + src += srcOffset; + dst += dstStride; + } + + // vertical pass + + // allign pointer to the first line to process + src0 += ( startY * srcStride ); + + // for each column + for ( int x = startX; x < stopX; x++ ) + { + src = src0 + x; + dst = dst0 + x; + + start = -1; + // for each row + for ( int y = startY; y < stopY; y++, src += srcStride ) + { + // looking for foreground pixel + if ( start == -1 ) + { + if ( *src == fg ) + start = y; + continue; + } + + // looking for non foreground pixel + if ( *src != fg ) + { + dst[dstStride * ( start + ( ( y - start ) >> 1 ) )] = (byte) fg; + start = -1; + } + } + if ( start != -1 ) + { + dst[dstStride * ( start + ( ( stopY - start ) >> 1 ) )] = (byte) fg; + } + } + } + } +} diff --git a/Sources/Imaging/Filters/Other/TexturedFilter.cs b/Sources/Imaging/Filters/Other/TexturedFilter.cs new file mode 100644 index 00000000..e5124e34 --- /dev/null +++ b/Sources/Imaging/Filters/Other/TexturedFilter.cs @@ -0,0 +1,451 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2005-2009 +// andrew.kirillov@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + using AForge.Imaging.Textures; + + /// + /// Textured filter - filter an image using texture. + /// + /// + /// The filter is similar to filter in its + /// nature, but instead of working with source image and overly, it uses provided + /// filters to create images to merge (see and + /// properties). In addition, it uses a bit more complex formula for calculation + /// of destination pixel's value, which gives greater amount of flexibility:
+ /// dst = * ( src1 * textureValue + src2 * ( 1.0 - textureValue ) ) + * src2, + /// where src1 is value of pixel from the image produced by , + /// src2 is value of pixel from the image produced by , + /// dst is value of pixel in a destination image and textureValue is corresponding value + /// from provided texture (see or ).
+ /// + /// It is possible to set to . In this case + /// original source image will be used instead of result produced by the second filter. + /// + /// The filter 24 bpp color images for processing. + /// + /// Sample usage #1: + /// + /// // create filter + /// TexturedFilter filter = new TexturedFilter( new CloudsTexture( ), + /// new HueModifier( 50 ) ); + /// // apply the filter + /// Bitmap newImage = filter.Apply( image ); + /// + /// + /// Sample usage #2: + /// + /// // create filter + /// TexturedFilter filter = new TexturedFilter( new CloudsTexture( ), + /// new GrayscaleBT709( ), new Sepia( ) ); + /// // apply the filter + /// Bitmap newImage = filter.Apply( image ); + /// + /// + /// Initial image: + /// + /// Result image #1: + /// + /// Result image #2: + /// + ///
+ /// + public class TexturedFilter : BaseFilter + { + // texture generator + private ITextureGenerator textureGenerator; + // generated texture + private float[,] texture = null; + // two filters + private IFilter filter1 = null; + private IFilter filter2 = null; + + // filtering factor + private double filterLevel = 1.0; + // preservation factor + private double preserveLevel = 0.0; + + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + /// + /// See for more information. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Filter level value, [0, 1]. + /// + /// + /// Filtering factor determines portion of the destionation image, which is formed + /// as a result of merging source images using specified texture. + /// + /// Default value is set to 1.0. + /// + /// See class description for more details. + /// + /// + public double FilterLevel + { + get { return filterLevel; } + set { filterLevel = Math.Max( 0.0, Math.Min( 1.0, value ) ); } + } + + /// + /// Preserve level value + /// + /// + /// Preserving factor determines portion taken from the image produced + /// by (or from original source) without applying textured + /// merge to it. + /// + /// Default value is set to 0.0. + /// + /// See class description for more details. + /// + /// + public double PreserveLevel + { + get { return preserveLevel; } + set { preserveLevel = Math.Max( 0.0, Math.Min( 1.0, value ) ); } + } + + /// + /// Generated texture. + /// + /// + /// Two dimensional array of texture intensities. + /// + /// Size of the provided texture should be the same as size of images, which will + /// be passed to the filter. + /// + /// The property has priority over this property - if + /// generator is specified than the static generated texture is not used. + /// + /// + public float[,] Texture + { + get { return texture; } + set { texture = value; } + } + + /// + /// Texture generator. + /// + /// + /// Generator used to generate texture. + /// + /// The property has priority over the property. + /// + /// + public ITextureGenerator TextureGenerator + { + get { return textureGenerator; } + set { textureGenerator = value; } + } + + /// + /// First filter. + /// + /// + /// Filter, which is used to produce first image for the merge. The filter + /// needs to implement interface, so it could be possible + /// to get information about the filter. The filter must be able to process color 24 bpp + /// images and produce color 24 bpp or grayscale 8 bppp images as result. + /// + /// + /// The specified filter does not support 24 bpp color images. + /// The specified filter does not produce image of supported format. + /// The specified filter does not implement IFilterInformation interface. + /// + public IFilter Filter1 + { + get { return filter1; } + set + { + if ( value is IFilterInformation ) + { + IFilterInformation info = (IFilterInformation) value; + if ( !info.FormatTranslations.ContainsKey( PixelFormat.Format24bppRgb ) ) + throw new UnsupportedImageFormatException( "The specified filter does not support 24 bpp color images." ); + if ( + ( info.FormatTranslations[PixelFormat.Format24bppRgb] != PixelFormat.Format24bppRgb ) && + ( info.FormatTranslations[PixelFormat.Format24bppRgb] != PixelFormat.Format8bppIndexed ) ) + throw new UnsupportedImageFormatException( "The specified filter does not produce image of supported format." ); + } + else + { + throw new ArgumentException( "The specified filter does not implement IFilterInformation interface." ); + } + + filter1 = value; + } + } + + /// + /// Second filter + /// + /// + /// Filter, which is used to produce second image for the merge. The filter + /// needs to implement interface, so it could be possible + /// to get information about the filter. The filter must be able to process color 24 bpp + /// images and produce color 24 bpp or grayscale 8 bppp images as result. + /// + /// The filter may be set to . In this case original source image + /// is used as a second image for the merge. + /// + /// + /// The specified filter does not support 24 bpp color images. + /// The specified filter does not produce image of supported format. + /// The specified filter does not implement IFilterInformation interface. + /// + public IFilter Filter2 + { + get { return filter2; } + set + { + if ( value is IFilterInformation ) + { + IFilterInformation info = (IFilterInformation) value; + if ( !info.FormatTranslations.ContainsKey( PixelFormat.Format24bppRgb ) ) + throw new UnsupportedImageFormatException( "The specified filter does not support 24 bpp color images." ); + if ( + ( info.FormatTranslations[PixelFormat.Format24bppRgb] != PixelFormat.Format24bppRgb ) && + ( info.FormatTranslations[PixelFormat.Format24bppRgb] != PixelFormat.Format8bppIndexed ) ) + throw new UnsupportedImageFormatException( "The specified filter does not produce image of supported format." ); + } + else + { + throw new ArgumentException( "The specified filter does not implement IFilterInformation interface." ); + } + + filter2 = value; + } + } + + // Private constructor to + private TexturedFilter( ) + { + formatTranslations[PixelFormat.Format24bppRgb] = PixelFormat.Format24bppRgb; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Generated texture. + /// First filter. + /// + public TexturedFilter( float[,] texture, IFilter filter1 ) : this( ) + { + this.texture = texture; + this.filter1 = filter1; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Generated texture. + /// First filter. + /// Second filter. + /// + public TexturedFilter( float[,] texture, IFilter filter1, IFilter filter2 ) : this( ) + { + this.texture = texture; + this.filter1 = filter1; + this.filter2 = filter2; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Texture generator. + /// First filter. + /// + public TexturedFilter( ITextureGenerator generator, IFilter filter1 ) : this( ) + { + this.textureGenerator = generator; + this.filter1 = filter1; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Texture generator. + /// First filter. + /// Second filter. + /// + public TexturedFilter( ITextureGenerator generator, IFilter filter1, IFilter filter2 ) : this( ) + { + this.textureGenerator = generator; + this.filter1 = filter1; + this.filter2 = filter2; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Destination image data. + /// + /// Texture size does not match image size. + /// Filters should not change image dimension. + /// + protected override unsafe void ProcessFilter( UnmanagedImage sourceData, UnmanagedImage destinationData ) + { + // get source image dimension + int width = sourceData.Width; + int height = sourceData.Height; + + // if generator was specified, then generate a texture + // otherwise use provided texture + if ( textureGenerator != null ) + { + texture = textureGenerator.Generate( width, height ); + } + else + { + // check existing texture + if ( ( texture.GetLength( 0 ) != height ) || ( texture.GetLength( 1 ) != width ) ) + { + // sorry, but source image must have the same dimension as texture + throw new InvalidImagePropertiesException( "Texture size does not match image size." ); + } + } + + // apply first filter + UnmanagedImage filteredImage1 = filter1.Apply( sourceData ); + + // check size of the result image + if ( ( width != filteredImage1.Width ) || ( height != filteredImage1.Height ) ) + { + filteredImage1.Dispose( ); + throw new ApplicationException( "Filters should not change image dimension." ); + } + + // convert 1st image to RGB if required + if ( filteredImage1.PixelFormat == PixelFormat.Format8bppIndexed ) + { + GrayscaleToRGB coloringFilter = new GrayscaleToRGB( ); + UnmanagedImage temp = coloringFilter.Apply( filteredImage1 ); + filteredImage1.Dispose( ); + filteredImage1 = temp; + } + + UnmanagedImage filteredImage2 = null; + // apply second filter, if it was specified + if ( filter2 != null ) + { + filteredImage2 = filter2.Apply( sourceData ); + // check size of the result image + if ( ( width != filteredImage2.Width ) || ( height != filteredImage2.Height ) ) + { + filteredImage1.Dispose( ); + filteredImage2.Dispose( ); + // we are not handling such situations yet + throw new ApplicationException( "Filters should not change image dimension." ); + } + + // convert 2nd image to RGB if required + if ( filteredImage2.PixelFormat == PixelFormat.Format8bppIndexed ) + { + GrayscaleToRGB coloringFilter = new GrayscaleToRGB( ); + UnmanagedImage temp = coloringFilter.Apply( filteredImage2 ); + filteredImage2.Dispose( ); + filteredImage2 = temp; + } + } + + // use source image as a second image, if second filter is not set + if ( filteredImage2 == null ) + { + filteredImage2 = sourceData; + } + + // do the job + unsafe + { + byte* dst = (byte*) destinationData.ImageData.ToPointer( ); + byte* src1 = (byte*) filteredImage1.ImageData.ToPointer( ); + byte* src2 = (byte*) filteredImage2.ImageData.ToPointer( ); + + int dstOffset = destinationData.Stride - 3 * width; + int src1Offset = filteredImage1.Stride - 3 * width; + int src2Offset = filteredImage2.Stride - 3 * width; + + if ( preserveLevel != 0.0 ) + { + // for each line + for ( int y = 0; y < height; y++ ) + { + // for each pixel + for ( int x = 0; x < width; x++ ) + { + double t1 = texture[y, x]; + double t2 = 1 - t1; + + for ( int i = 0; i < 3; i++, src1++, src2++, dst++ ) + { + *dst = (byte) Math.Min( 255.0f, + filterLevel * ( t1 * ( *src1 ) + t2 * ( *src2 ) ) + + preserveLevel * ( *src2 ) ); + } + } + src1 += src1Offset; + src2 += src2Offset; + dst += dstOffset; + } + } + else + { + // for each line + for ( int y = 0; y < height; y++ ) + { + // for each pixel + for ( int x = 0; x < width; x++ ) + { + double t1 = texture[y, x]; + double t2 = 1 - t1; + + for ( int i = 0; i < 3; i++, src1++, src2++, dst++ ) + { + *dst = (byte) Math.Min( 255.0f, t1 * *src1 + t2 * *src2 ); + } + } + src1 += src1Offset; + src2 += src2Offset; + dst += dstOffset; + } + } + } + + // dispose temp images + filteredImage1.Dispose( ); + if ( filteredImage2 != sourceData ) + { + filteredImage2.Dispose( ); + } + } + } +} diff --git a/Sources/Imaging/Filters/Other/TexturedMerge.cs b/Sources/Imaging/Filters/Other/TexturedMerge.cs new file mode 100644 index 00000000..db769a41 --- /dev/null +++ b/Sources/Imaging/Filters/Other/TexturedMerge.cs @@ -0,0 +1,210 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2005-2009 +// andrew.kirillov@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Merge two images using factors from texture. + /// + /// + /// The filter is similar to filter in its idea, but + /// instead of using single value for balancing amount of source's and overlay's image + /// values (see ), the filter uses texture, which determines + /// the amount to take from source image and overlay image. + /// + /// The filter uses specified texture to adjust values using the next formula:
+ /// dst = src * textureValue + ovr * ( 1.0 - textureValue ),
+ /// where src is value of pixel in a source image, ovr is value of pixel in + /// overlay image, dst is value of pixel in a destination image and + /// textureValue is corresponding value from provided texture (see or + /// ).
+ /// + /// The filter accepts 8 bpp grayscale and 24 bpp color images for processing. + /// + /// Sample usage #1: + /// + /// // create filter + /// TexturedMerge filter = new TexturedMerge( new TextileTexture( ) ); + /// // create an overlay image to merge with + /// filter.OverlayImage = new Bitmap( image.Width, image.Height, + /// PixelFormat.Format24bppRgb ); + /// // fill the overlay image with solid color + /// PointedColorFloodFill fillFilter = new PointedColorFloodFill( Color.DarkKhaki ); + /// fillFilter.ApplyInPlace( filter.OverlayImage ); + /// // apply the merge filter + /// filter.ApplyInPlace( image ); + /// + /// + /// Sample usage #2: + /// + /// // create filter + /// TexturedMerge filter = new TexturedMerge( new CloudsTexture( ) ); + /// // create 2 images with modified Hue + /// HueModifier hm1 = new HueModifier( 50 ); + /// HueModifier hm2 = new HueModifier( 200 ); + /// filter.OverlayImage = hm2.Apply( image ); + /// hm1.ApplyInPlace( image ); + /// // apply the merge filter + /// filter.ApplyInPlace( image ); + /// + /// + /// Initial image: + /// + /// Result image #1: + /// + /// Result image #2: + /// + ///
+ /// + public class TexturedMerge : BaseInPlaceFilter2 + { + // texture generator + private AForge.Imaging.Textures.ITextureGenerator textureGenerator; + // generated texture + private float[,] texture = null; + + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + /// + /// See for more information. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Generated texture. + /// + /// + /// Two dimensional array of texture intensities. + /// + /// In the case if image passed to the filter is smaller or + /// larger than the specified texture, than image's region is processed, which equals to the + /// minimum overlapping area. + /// + /// The property has priority over this property - if + /// generator is specified than the static generated texture is not used. + /// + /// + public float[,] Texture + { + get { return texture; } + set { texture = value; } + } + + /// + /// Texture generator. + /// + /// + /// Generator used to generate texture. + /// + /// The property has priority over the property. + /// + /// + public AForge.Imaging.Textures.ITextureGenerator TextureGenerator + { + get { return textureGenerator; } + set { textureGenerator = value; } + } + + // Private constructor to do common initialization + private TexturedMerge( ) + { + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format8bppIndexed; + formatTranslations[PixelFormat.Format24bppRgb] = PixelFormat.Format24bppRgb; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Generated texture. + /// + public TexturedMerge( float[,] texture ) : this( ) + { + this.texture = texture; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Texture generator. + /// + public TexturedMerge( AForge.Imaging.Textures.ITextureGenerator generator ) : this( ) + { + this.textureGenerator = generator; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Overlay image data. + /// + protected override unsafe void ProcessFilter( UnmanagedImage image, UnmanagedImage overlay ) + { + // get image dimension + int width = image.Width; + int height = image.Height; + + // width and height to process + int widthToProcess = width; + int heightToProcess = height; + + // if generator was specified, then generate a texture + // otherwise use provided texture + if ( textureGenerator != null ) + { + texture = textureGenerator.Generate( width, height ); + } + else + { + widthToProcess = Math.Min( width, texture.GetLength( 1 ) ); + heightToProcess = Math.Min( height, texture.GetLength( 0 ) ); + } + + int pixelSize = Image.GetPixelFormatSize( image.PixelFormat ) / 8; + int srcOffset = image.Stride - widthToProcess * pixelSize; + int ovrOffset = overlay.Stride - widthToProcess * pixelSize; + + // do the job + byte* ptr = (byte*) image.ImageData.ToPointer( ); + byte* ovr = (byte*) overlay.ImageData.ToPointer( ); + + // for each line + for ( int y = 0; y < heightToProcess; y++ ) + { + // for each pixel + for ( int x = 0; x < widthToProcess; x++ ) + { + double t1 = texture[y, x]; + double t2 = 1 - t1; + + for ( int i = 0; i < pixelSize; i++, ptr++, ovr++ ) + { + *ptr = (byte) Math.Min( 255.0f, *ptr * t1 + *ovr * t2 ); + } + } + ptr += srcOffset; + ovr += ovrOffset; + } + } + } +} diff --git a/Sources/Imaging/Filters/Other/Texturer.cs b/Sources/Imaging/Filters/Other/Texturer.cs new file mode 100644 index 00000000..eada66a4 --- /dev/null +++ b/Sources/Imaging/Filters/Other/Texturer.cs @@ -0,0 +1,262 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2005-2009 +// andrew.kirillov@aforgenet.com +// +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Texturer filter. + /// + /// + /// Adjust pixels’ color values using factors from the given texture. In conjunction with different type + /// of texture generators, the filter may produce different type of interesting effects. + /// + /// The filter uses specified texture to adjust values using the next formula:
+ /// dst = src * + src * * textureValue,
+ /// where src is value of pixel in a source image, dst is value of pixel in a destination image and + /// textureValue is corresponding value from provided texture (see or + /// ). Using and values it is possible + /// to control the portion of source data affected by texture. + ///
+ /// + /// In most cases the and properties are set in such + /// way, that + = 1. But there is no limitations actually + /// for those values, so their sum may be as greater, as lower than 1 in order create different type of + /// effects. + /// + /// The filter accepts 8 bpp grayscale and 24 bpp color images for processing. + /// + /// Sample usage: + /// + /// // create filter + /// Texturer filter = new Texturer( new TextileTexture( ), 0.3, 0.7 ); + /// // apply the filter + /// filter.ApplyInPlace( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + ///
+ /// + public class Texturer : BaseInPlacePartialFilter + { + // texture generator + private AForge.Imaging.Textures.ITextureGenerator textureGenerator; + // generated texture + private float[,] texture = null; + + // filtering factor + private double filterLevel = 0.5; + // preservation factor + private double preserveLevel = 0.5; + + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + /// + /// See for more information. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Filter level value. + /// + /// + /// Filtering factor determines image fraction to filter - to multiply + /// by values from the provided texture. + /// + /// Default value is set to 0.5. + /// + /// See class description for more details. + /// + /// + public double FilterLevel + { + get { return filterLevel; } + set { filterLevel = Math.Max( 0.0, Math.Min( 1.0, value ) ); } + } + + /// + /// Preserve level value. + /// + /// + /// Preserving factor determines image fraction to keep from filtering. + /// + /// Default value is set to 0.5. + /// + /// See class description for more details. + /// + /// + public double PreserveLevel + { + get { return preserveLevel; } + set { preserveLevel = Math.Max( 0.0, Math.Min( 1.0, value ) ); } + } + + /// + /// Generated texture. + /// + /// + /// Two dimensional array of texture intensities. + /// + /// In the case if image passed to the filter is smaller or + /// larger than the specified texture, than image's region is processed, which equals to the + /// minimum overlapping area. + /// + /// The property has priority over this property - if + /// generator is specified than the static generated texture is not used. + /// + /// + public float[,] Texture + { + get { return texture; } + set { texture = value; } + } + + /// + /// Texture generator. + /// + /// + /// Generator used to generate texture. + /// + /// The property has priority over the property. + /// + /// + public AForge.Imaging.Textures.ITextureGenerator TextureGenerator + { + get { return textureGenerator; } + set { textureGenerator = value; } + } + + // Private constructor to do common initialization + private Texturer( ) + { + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format8bppIndexed; + formatTranslations[PixelFormat.Format24bppRgb] = PixelFormat.Format24bppRgb; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Generated texture. + /// + public Texturer( float[,] texture ) : this( ) + { + this.texture = texture; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Generated texture. + /// Filter level value (see property). + /// Preserve level value (see property). + /// + public Texturer( float[,] texture, double filterLevel, double preserveLevel ) : this( ) + { + this.texture = texture; + this.filterLevel = filterLevel; + this.preserveLevel = preserveLevel; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Texture generator. + /// + public Texturer( AForge.Imaging.Textures.ITextureGenerator generator ) : this( ) + { + this.textureGenerator = generator; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Texture generator. + /// Filter level value (see property). + /// Preserve level value (see property). + /// + public Texturer( AForge.Imaging.Textures.ITextureGenerator generator, double filterLevel, double preserveLevel ) + : this( ) + { + this.textureGenerator = generator; + this.filterLevel = filterLevel; + this.preserveLevel = preserveLevel; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Image rectangle for processing by the filter. + /// + protected override unsafe void ProcessFilter( UnmanagedImage image, Rectangle rect ) + { + int pixelSize = Image.GetPixelFormatSize( image.PixelFormat ) / 8; + + // processing width and height + int width = rect.Width; + int height = rect.Height; + + // processing region's dimension + int widthToProcess = width; + int heightToProcess = height; + + // if generator was specified, then generate a texture + // otherwise use provided texture + if ( textureGenerator != null ) + { + texture = textureGenerator.Generate( width, height ); + } + else + { + widthToProcess = Math.Min( width, texture.GetLength( 1 ) ); + heightToProcess = Math.Min( height, texture.GetLength( 0 ) ); + } + + int offset = image.Stride - widthToProcess * pixelSize; + + // do the job + byte* ptr = (byte*) image.ImageData.ToPointer( ); + + // allign pointer to the first pixel to process + ptr += ( rect.Top * image.Stride + rect.Left * pixelSize ); + + // texture + for ( int y = 0; y < heightToProcess; y++ ) + { + for ( int x = 0; x < widthToProcess; x++ ) + { + double t = texture[y, x]; + // process each pixel + for ( int i = 0; i < pixelSize; i++, ptr++ ) + { + *ptr = (byte) Math.Min( 255.0f, ( preserveLevel * ( *ptr ) ) + ( filterLevel * ( *ptr ) ) * t ); + } + } + ptr += offset; + } + } + } +} diff --git a/Sources/Imaging/Filters/Other/VerticalRunLengthSmoothing.cs b/Sources/Imaging/Filters/Other/VerticalRunLengthSmoothing.cs new file mode 100644 index 00000000..0112508f --- /dev/null +++ b/Sources/Imaging/Filters/Other/VerticalRunLengthSmoothing.cs @@ -0,0 +1,185 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Vertical run length smoothing algorithm. + /// + /// + /// The class implements vertical run length smoothing algorithm, which + /// is described in: K.Y. Wong, R.G. Casey and F.M. Wahl, "Document analysis system," + /// IBM J. Res. Devel., Vol. 26, NO. 6,111). 647-656, 1982. + /// + /// Unlike the original description of this algorithm, this implementation must be applied + /// to inverted binary images containing document, i.e. white text on black background. So this + /// implementation fills vertical black gaps between white pixels. + /// + /// This algorithm is usually used together with , + /// and then further analysis of white blobs. + /// + /// The filter accepts 8 bpp grayscale images, which are supposed to be binary inverted documents. + /// + /// Sample usage: + /// + /// // create filter + /// VerticalRunLengthSmoothing vrls = new VerticalRunLengthSmoothing( 32 ); + /// // apply the filter + /// vrls.ApplyInPlace( image ); + /// + /// + /// Source image: + /// + /// Result image: + /// + /// + /// + /// + /// + public class VerticalRunLengthSmoothing : BaseInPlacePartialFilter + { + private int maxGapSize = 10; + private bool processGapsWithImageBorders = false; + + /// + /// Maximum gap size to fill (in pixels). + /// + /// + /// The property specifies maximum vertical gap between white pixels to fill. + /// If number of black pixels between some white pixels is bigger than this value, then those + /// black pixels are left as is; otherwise the gap is filled with white pixels. + /// + /// + /// Default value is set to 10. Minimum value is 1. Maximum value is 1000. + /// + public int MaxGapSize + { + get { return maxGapSize; } + set { maxGapSize = Math.Max( 1, Math.Min( 1000, value ) ); } + } + + /// + /// Process gaps between objects and image borders or not. + /// + /// + /// The property sets if gaps between image borders and objects must be treated as + /// gaps between objects and also filled. + /// + /// Default value is set to . + /// + /// + public bool ProcessGapsWithImageBorders + { + get { return processGapsWithImageBorders; } + set { processGapsWithImageBorders = value; } + } + + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + /// + /// See + /// documentation for additional information. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public VerticalRunLengthSmoothing( ) + { + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format8bppIndexed; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Maximum gap size to fill (see ). + /// + public VerticalRunLengthSmoothing( int maxGapSize ) + : this( ) + { + MaxGapSize = maxGapSize; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Image rectangle for processing by the filter. + /// + protected override unsafe void ProcessFilter( UnmanagedImage image, Rectangle rect ) + { + int startX = rect.Left; + int stopX = startX + rect.Width; + + int height = rect.Height; + + int stride = image.Stride; + + byte* basePtr = (byte*) image.ImageData.ToPointer( ) + rect.Top * stride + startX; + + for ( int x = startX; x < stopX; x++ ) + { + byte* ptr = basePtr; + byte* columnStartPtr = ptr; + byte* columnEndPtr = ptr + stride * height; + + // fill gaps between white pixels + while ( ptr < columnEndPtr ) + { + byte* gapStart = ptr; + int gapSize = 0; + + // look for non black pixel + while ( ( ptr < columnEndPtr ) && ( *ptr == 0 ) ) + { + ptr += stride; + gapSize++; + } + + // fill the gap between white areas + if ( gapSize <= maxGapSize ) + { + if ( ( processGapsWithImageBorders ) || + ( ( gapStart != columnStartPtr ) && ( ptr != columnEndPtr ) ) ) + { + while ( gapStart < ptr ) + { + *gapStart = 255; + gapStart += stride; + } + } + } + + // skip all non black pixels + while ( ( ptr < columnEndPtr ) && ( *ptr != 0 ) ) + { + ptr += stride; + } + } + + basePtr++; + } + } + } +} diff --git a/Sources/Imaging/Filters/Other/WaterWave.cs b/Sources/Imaging/Filters/Other/WaterWave.cs new file mode 100644 index 00000000..b4f1ed22 --- /dev/null +++ b/Sources/Imaging/Filters/Other/WaterWave.cs @@ -0,0 +1,213 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2005-2010 +// andrew.kirillov@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Simple water wave effect filter. + /// + /// + /// The image processing filter implements simple water wave effect. Using + /// properties of the class, it is possible to set number of vertical/horizontal waves, + /// as well as their amplitude. + /// + /// Bilinear interpolation is used to create smooth effect. + /// + /// The filter accepts 8 bpp grayscale images and 24/32 + /// color images for processing. + /// + /// Sample usage: + /// + /// // create filter + /// WaterWave filter = new WaterWave( ); + /// filter.HorizontalWavesCount = 10; + /// filter.HorizontalWavesAmplitude = 5; + /// filter.VerticalWavesCount = 3; + /// filter.VerticalWavesAmplitude = 15; + /// // apply the filter + /// Bitmap newImage = filter.Apply( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + public class WaterWave : BaseFilter + { + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + private int xWavesCount = 5; + private int yWavesCount = 5; + private int xWavesAmplitude = 10; + private int yWavesAmplitude = 10; + + /// + /// Number of horizontal waves, [1, 10000]. + /// + /// + /// Default value is set to 5. + /// + public int HorizontalWavesCount + { + get { return xWavesCount; } + set { xWavesCount = Math.Max( 1, Math.Min( 10000, value ) ); } + } + + /// + /// Number of vertical waves, [1, 10000]. + /// + /// + /// Default value is set to 5. + /// + public int VerticalWavesCount + { + get { return yWavesCount; } + set { yWavesCount = Math.Max( 1, Math.Min( 10000, value ) ); } + } + + /// + /// Amplitude of horizontal waves measured in pixels, [0, 10000]. + /// + /// + /// Default value is set to 10. + /// + public int HorizontalWavesAmplitude + { + get { return xWavesAmplitude; } + set { xWavesAmplitude = Math.Max( 0, Math.Min( 10000, value ) ); } + } + + /// + /// Amplitude of vertical waves measured in pixels, [0, 10000]. + /// + /// + /// Default value is set to 10. + /// + public int VerticalWavesAmplitude + { + get { return yWavesAmplitude; } + set { yWavesAmplitude = Math.Max( 0, Math.Min( 10000, value ) ); } + } + + /// + /// Format translations dictionary. + /// + /// + /// See + /// documentation for additional information. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + + /// + /// Initializes a new instance of the class. + /// + public WaterWave( ) + { + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format8bppIndexed; + formatTranslations[PixelFormat.Format24bppRgb] = PixelFormat.Format24bppRgb; + formatTranslations[PixelFormat.Format32bppRgb] = PixelFormat.Format32bppRgb; + formatTranslations[PixelFormat.Format32bppArgb] = PixelFormat.Format32bppArgb; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Destination image data. + /// + protected override unsafe void ProcessFilter( UnmanagedImage source, UnmanagedImage destination ) + { + int pixelSize = Image.GetPixelFormatSize( source.PixelFormat ) / 8; + + // processing start and stop X,Y positions + int width = source.Width; + int height = source.Height; + + int srcStride = source.Stride; + int dstStride = destination.Stride; + int dstOffset = dstStride - width * pixelSize; + + // coordinates of source points + double ox, oy, dx1, dy1, dx2, dy2; + int ox1, oy1, ox2, oy2; + + // width and height decreased by 1 + int ymax = height - 1; + int xmax = width - 1; + + byte* src = (byte*) source.ImageData.ToPointer( ); + byte* dst = (byte*) destination.ImageData.ToPointer( ); + byte* p1, p2, p3, p4; + + double xFactor = 2 * Math.PI * xWavesCount / width; + double yFactor = 2 * Math.PI * yWavesCount / height; + + // for each line + for ( int y = 0; y < height; y++ ) + { + double yPart = Math.Sin( yFactor * y ) * yWavesAmplitude; + + // for each pixel + for ( int x = 0; x < width; x++ ) + { + ox = x + yPart; + oy = y + Math.Cos( xFactor * x ) * xWavesAmplitude; + + // check if the source pixel is inside of image + if ( ( ox >= 0 ) && ( oy >= 0 ) && ( ox < width ) && ( oy < height ) ) + { + // perform bilinear interpolation + oy1 = (int) oy; + oy2 = ( oy1 == ymax ) ? oy1 : oy1 + 1; + dy1 = oy - (double) oy1; + dy2 = 1.0 - dy1; + + ox1 = (int) ox; + ox2 = ( ox1 == xmax ) ? ox1 : ox1 + 1; + dx1 = ox - (double) ox1; + dx2 = 1.0 - dx1; + + p1 = src + oy1 * srcStride + ox1 * pixelSize; + p2 = src + oy1 * srcStride + ox2 * pixelSize; + p3 = src + oy2 * srcStride + ox1 * pixelSize; + p4 = src + oy2 * srcStride + ox2 * pixelSize; + + for ( int i = 0; i < pixelSize; i++, dst++, p1++, p2++, p3++, p4++ ) + { + *dst = (byte) ( + dy2 * ( dx2 * ( *p1 ) + dx1 * ( *p2 ) ) + + dy1 * ( dx2 * ( *p3 ) + dx1 * ( *p4 ) ) ); + } + } + else + { + for ( int i = 0; i < pixelSize; i++, dst++ ) + { + *dst = 0; + } + } + } + dst += dstOffset; + } + } + } +} + diff --git a/Sources/Imaging/Filters/Smooting/AdaptiveSmooth.cs b/Sources/Imaging/Filters/Smooting/AdaptiveSmooth.cs new file mode 100644 index 00000000..bfca200d --- /dev/null +++ b/Sources/Imaging/Filters/Smooting/AdaptiveSmooth.cs @@ -0,0 +1,249 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2005-2009 +// andrew.kirillov@aforgenet.com +// +// Found description in +// "An Edge Detection Technique Using the Facet +// Model and Parameterized Relaxation Labeling" +// by Ioannis Matalas, Student Member, IEEE, Ralph Benjamin, and Richard Kitney +// +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Adaptive Smoothing - noise removal with edges preserving. + /// + /// + /// The filter is aimed to perform image smoothing, but keeping sharp edges. + /// This makes it applicable to additive noise removal and smoothing objects' interiors, but + /// not applicable for spikes (salt and pepper noise) removal. + /// + /// The next calculations are done for each pixel: + /// + /// weights are calculate for 9 pixels - pixel itself and 8 neighbors: + /// + /// w(x, y) = exp( -1 * (Gx^2 + Gy^2) / (2 * factor^2) ) + /// Gx(x, y) = (I(x + 1, y) - I(x - 1, y)) / 2 + /// Gy(x, y) = (I(x, y + 1) - I(x, y - 1)) / 2 + /// , + /// where factor is a configurable value determining smoothing's quality. + /// sum of 9 weights is calclated (weightTotal); + /// sum of 9 weighted pixel values is calculatd (total); + /// destination pixel is calculated as total / weightTotal. + /// + /// + /// Description of the filter was found in "An Edge Detection Technique Using + /// the Facet Model and Parameterized Relaxation Labeling" by Ioannis Matalas, Student Member, + /// IEEE, Ralph Benjamin, and Richard Kitney. + /// + /// The filter accepts 8 bpp grayscale images and 24 bpp + /// color images for processing. + /// + /// Sample usage: + /// + /// // create filter + /// AdaptiveSmoothing filter = new AdaptiveSmoothing( ); + /// // apply the filter + /// filter.ApplyInPlace( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + public class AdaptiveSmoothing : BaseUsingCopyPartialFilter + { + private double factor = 3.0; + + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Factor value. + /// + /// + /// Factor determining smoothing quality (see + /// documentation). + /// + /// Default value is set to 3. + /// + /// + public double Factor + { + get { return factor; } + set { factor = value; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public AdaptiveSmoothing( ) + { + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format8bppIndexed; + formatTranslations[PixelFormat.Format24bppRgb] = PixelFormat.Format24bppRgb; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Factor value. + /// + public AdaptiveSmoothing( double factor ) + : this( ) + { + this.factor = factor; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Destination image data. + /// Image rectangle for processing by the filter. + /// + protected override unsafe void ProcessFilter( UnmanagedImage source, UnmanagedImage destination, Rectangle rect ) + { + int pixelSize = Image.GetPixelFormatSize( source.PixelFormat ) / 8; + int pixelSize2 = pixelSize * 2; + + // processing start and stop X,Y positions + int startX = rect.Left; + int startY = rect.Top; + int stopX = startX + rect.Width; + int stopY = startY + rect.Height; + + int startXP2 = startX + 2; + int startYP2 = startY + 2; + int stopXM2 = stopX - 2; + int stopYM2 = stopY - 2; + + int srcStride = source.Stride; + int dstStride = destination.Stride; + int srcOffset = srcStride - rect.Width * pixelSize; + int dstOffset = dstStride - rect.Width * pixelSize; + + // gradient and weights + double gx, gy, weight, weightTotal, total; + // precalculated factor value + double f = -8 * factor * factor; + + // do the job + byte* src = (byte*) source.ImageData.ToPointer( ) + srcStride * 2; + byte* dst = (byte*) destination.ImageData.ToPointer( ) + dstStride * 2; + + // allign pointers to the first pixel to process + src += ( startY * srcStride + startX * pixelSize ); + dst += ( startY * dstStride + startX * pixelSize ); + + for ( int y = startYP2; y < stopYM2; y++ ) + { + src += pixelSize2; + dst += pixelSize2; + + for ( int x = startXP2; x < stopXM2; x++ ) + { + for ( int i = 0; i < pixelSize; i++, src++, dst++ ) + { + weightTotal = 0; + total = 0; + + // original formulas for weight calculation: + // w(x, y) = exp( -1 * (Gx^2 + Gy^2) / (2 * factor^2) ) + // Gx(x, y) = (I(x + 1, y) - I(x - 1, y)) / 2 + // Gy(x, y) = (I(x, y + 1) - I(x, y - 1)) / 2 + // + // here is a little bit optimized version + + // x - 1, y - 1 + gx = src[-srcStride] - src[-pixelSize2 - srcStride]; + gy = src[-pixelSize] - src[-pixelSize - 2 * srcStride]; + weight = System.Math.Exp( ( gx * gx + gy * gy ) / f ); + total += weight * src[-pixelSize - srcStride]; + weightTotal += weight; + + // x, y - 1 + gx = src[pixelSize - srcStride] - src[-pixelSize - srcStride]; + gy = *src - src[-2 * srcStride]; + weight = System.Math.Exp( ( gx * gx + gy * gy ) / f ); + total += weight * src[-srcStride]; + weightTotal += weight; + + // x + 1, y - 1 + gx = src[pixelSize2 - srcStride] - src[-srcStride]; + gy = src[pixelSize] - src[pixelSize - 2 * srcStride]; + weight = System.Math.Exp( ( gx * gx + gy * gy ) / f ); + total += weight * src[pixelSize - srcStride]; + weightTotal += weight; + + // x - 1, y + gx = *src - src[-pixelSize2]; + gy = src[-pixelSize + srcStride] - src[-pixelSize - srcStride]; + weight = System.Math.Exp( ( gx * gx + gy * gy ) / f ); + total += weight * src[-pixelSize]; + weightTotal += weight; + + // x, y + gx = src[pixelSize] - src[-pixelSize]; + gy = src[srcStride] - src[-srcStride]; + weight = System.Math.Exp( ( gx * gx + gy * gy ) / f ); + total += weight * ( *src ); + weightTotal += weight; + + // x + 1, y + gx = src[pixelSize2] - *src; + gy = src[pixelSize + srcStride] - src[pixelSize - srcStride]; + weight = System.Math.Exp( ( gx * gx + gy * gy ) / f ); + total += weight * src[pixelSize]; + weightTotal += weight; + + // x - 1, y + 1 + gx = src[srcStride] - src[-pixelSize2 + srcStride]; + gy = src[-pixelSize + 2 * srcStride] - src[-pixelSize]; + weight = System.Math.Exp( ( gx * gx + gy * gy ) / f ); + total += weight * src[-pixelSize + srcStride]; + weightTotal += weight; + + // x, y + 1 + gx = src[pixelSize + srcStride] - src[-pixelSize + srcStride]; + gy = src[2 * srcStride] - *src; + weight = System.Math.Exp( ( gx * gx + gy * gy ) / f ); + total += weight * src[srcStride]; + weightTotal += weight; + + // x + 1, y + 1 + gx = src[pixelSize2 + srcStride] - src[srcStride]; + gy = src[pixelSize + 2 * srcStride] - src[pixelSize]; + weight = System.Math.Exp( ( gx * gx + gy * gy ) / f ); + total += weight * src[pixelSize + srcStride]; + weightTotal += weight; + + // save destination value + *dst = ( weightTotal == 0.0 ) ? *src : (byte) System.Math.Min( total / weightTotal, 255.0 ); + } + } + src += srcOffset + pixelSize2; + dst += dstOffset + pixelSize2; + } + } + } +} diff --git a/Sources/Imaging/Filters/Smooting/BilateralSmoothing.cs b/Sources/Imaging/Filters/Smooting/BilateralSmoothing.cs new file mode 100644 index 00000000..63057318 --- /dev/null +++ b/Sources/Imaging/Filters/Smooting/BilateralSmoothing.cs @@ -0,0 +1,864 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2012 +// contacts@aforgenet.com +// +// Original implementation by Maxim Saplin, 2012 +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + using M = System.Math; + + /// + /// Bilateral filter implementation - edge preserving smoothing and noise reduction that uses chromatic and spatial factors. + /// + /// + /// + /// Bilateral filter conducts "selective" Gaussian smoothing of areas of same color (domains) which removes noise and contrast artifacts + /// while preserving sharp edges. + /// + /// Two major parameters and define the result of the filter. + /// By changing these parameters you may achieve either only noise reduction with little change to the + /// image or get nice looking effect to the entire image. + /// + /// Although the filter can use parallel processing large values + /// (greater than 25) on high resolution images may decrease speed of processing. Also on high + /// resolution images small values (less than 9) may not provide noticeable + /// results. + /// + /// More details on the algorithm can be found by following this + /// link. + /// + /// The filter accepts 8 bpp grayscale images and 24/32 bpp color images for processing. + /// + /// Sample usage: + /// + /// // create filter + /// BilateralSmoothing filter = new BilateralSmoothing( ); + /// filter.KernelSize = 7; + /// filter.SpatialFactor = 10; + /// filter.ColorFactor = 60; + /// filter.ColorPower = 0.5; + /// // apply the filter + /// filter.ApplyInPlace( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + public class BilateralSmoothing : BaseUsingCopyPartialFilter + { + private Dictionary formatTranslations = new Dictionary( ); + + private const int maxKernelSize = 255; + private const int colorsCount = 256; + + private int kernelSize = 9; + private double spatialFactor = 10; + private double spatialPower = 2; + private double colorFactor = 50; + private double colorPower = 2; + + private bool spatialPropertiesChanged = true; + private bool colorPropertiesChanged = true; + + private bool limitKernelSize = true; + private bool enableParallelProcessing = false; + + /// + /// Specifies if exception must be thrown in the case a large + /// kernel size is used which may lead + /// to significant performance issues. + /// + /// + /// + /// Default value is set to . + /// + /// + public bool LimitKernelSize + { + get { return limitKernelSize; } + set { limitKernelSize = value; } + } + + /// + /// Enable or not parallel processing on multi-core CPUs. + /// + /// + /// If the property is set to , then this image processing + /// routine will run in parallel on the systems with multiple core/CPUs. The + /// is used to make it parallel. + /// + /// Default value is set to . + /// + /// + public bool EnableParallelProcessing + { + get { return enableParallelProcessing; } + set { enableParallelProcessing = value; } + } + + /// + /// Size of a square for limiting surrounding pixels that take part in calculations, [3, 255]. + /// + /// + /// The greater the value the more is the general power of the filter. Small values + /// (less than 9) on high resolution images (3000 pixels wide) do not give significant results. + /// Large values increase the number of calculations and degrade performance. + /// + /// The value of this property must be an odd integer in the [3, 255] range if + /// is set to or in the [3, 25] range + /// otherwise. + /// + /// Default value is set to 9. + /// + /// + /// The specified value is out of range (see + /// eception message for details). + /// The value of this must be an odd integer. + /// + public int KernelSize + { + get + { + return kernelSize; + } + set + { + if ( value > maxKernelSize ) + { + throw new ArgumentOutOfRangeException( "Maximum allowed value of KernelSize property is " + maxKernelSize.ToString( ) ); + } + if ( ( limitKernelSize ) && ( value > 25 ) ) + { + throw new ArgumentOutOfRangeException( "KernerlSize is larger then 25. Time for applying is significant and may lead to application freezing. In order to use any KernelSize value set property 'LimitKernelSize' to false." ); + } + if ( value < 3 ) + { + throw new ArgumentOutOfRangeException( "KernelSize must be greater than 3" ); + } + if ( value % 2 == 0 ) + { + throw new ArgumentException( "KernerlSize must be an odd integer." ); + } + + kernelSize = value; + } + } + + /// + /// Determines smoothing power within a color domain (neighbor pixels of similar color), >= 1. + /// + /// + /// + /// Default value is set to 10. + /// + /// + public double SpatialFactor + { + get + { + return spatialFactor; + } + set + { + spatialFactor = Math.Max( 1, value ); + spatialPropertiesChanged = true; + } + } + + /// + /// Exponent power, used in Spatial function calculation, >= 1. + /// + /// + /// + /// Default value is set to 2. + /// + /// + public double SpatialPower + { + get + { + return spatialPower; + } + set + { + spatialPower = Math.Max( 1, value ); + spatialPropertiesChanged = true; + } + } + + /// + /// Determines the variance of color for a color domain, >= 1. + /// + /// + /// + /// Default value is set to 50. + /// + /// + public double ColorFactor + { + get + { + return colorFactor; + } + set + { + colorFactor = Math.Max( 1, value ); + colorPropertiesChanged = true; + } + } + + /// + /// Exponent power, used in Color function calculation, >= 1. + /// + /// + /// + /// Default value is set to 2. + /// + /// + public double ColorPower + { + get + { + return colorPower; + } + set + { + colorPower = Math.Max( 1, value ); + colorPropertiesChanged = true; + } + } + + /// + /// Format translations dictionary. + /// + /// + /// See + /// documentation for additional information. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public BilateralSmoothing( ) + { + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format8bppIndexed; + formatTranslations[PixelFormat.Format24bppRgb] = PixelFormat.Format24bppRgb; + formatTranslations[PixelFormat.Format32bppRgb] = PixelFormat.Format32bppRgb; + formatTranslations[PixelFormat.Format32bppArgb] = PixelFormat.Format32bppArgb; + } + + private double[,] spatialFunc; + private double[,] colorFunc; + + // For performance improvements Color and Spatial functions are recalculated prior to filter execution and put into 2 dimensional arrays + private void InitSpatialFunc( ) + { + if ( ( spatialFunc == null ) || ( spatialFunc.Length != kernelSize * kernelSize ) || + ( spatialPropertiesChanged ) ) + { + if ( ( spatialFunc == null ) || ( spatialFunc.Length != kernelSize * kernelSize ) ) + { + spatialFunc = new double[kernelSize, kernelSize]; + } + + int kernelRadius = kernelSize / 2; + + for ( int i = 0; i < kernelSize; i++ ) + { + int ti = i - kernelRadius; + int ti2 = ti * ti; + + for ( int k = 0; k < kernelSize; k++ ) + { + int tk = k - kernelRadius; + int tk2 = tk * tk; + + spatialFunc[i, k] = M.Exp( -0.5 * M.Pow( M.Sqrt( ( ti2 + tk2 ) / spatialFactor ), spatialPower ) ); + } + } + + spatialPropertiesChanged = false; + } + } + + // For performance improvements Color and Spatial functions are recalculated prior to filter execution and put into 2 dimensional arrays + private void InitColorFunc( ) + { + if ( ( colorFunc == null ) || ( colorPropertiesChanged ) ) + { + if ( colorFunc == null ) + { + colorFunc = new double[colorsCount, colorsCount]; + } + + for ( int i = 0; i < colorsCount; i++ ) + { + for ( int k = 0; k < colorsCount; k++ ) + { + colorFunc[i, k] = M.Exp( -0.5 * ( M.Pow( M.Abs( i - k ) / colorFactor, colorPower ) ) ); + } + } + + colorPropertiesChanged = false; + } + } + + private void InitFilter( ) + { + InitSpatialFunc( ); + InitColorFunc( ); + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Destination image data. + /// Image rectangle for processing by the filter. + /// + protected override unsafe void ProcessFilter( UnmanagedImage source, UnmanagedImage destination, Rectangle rect ) + { + int kernelHalf = kernelSize / 2; + + InitFilter( ); + + if ( ( rect.Width <= kernelSize ) || ( rect.Height <= kernelSize ) ) + { + ProcessWithEdgeChecks( source, destination, rect ); + } + else + { + Rectangle safeArea = rect; + safeArea.Inflate( -kernelHalf, -kernelHalf ); + + if ( ( Environment.ProcessorCount > 1 ) && ( enableParallelProcessing ) ) + { + ProcessWithoutChecksParallel( source, destination, safeArea ); + } + else + { + ProcessWithoutChecks( source, destination, safeArea ); + } + + // top + ProcessWithEdgeChecks( source, destination, + new Rectangle( rect.Left, rect.Top, rect.Width, kernelHalf ) ); + // bottom + ProcessWithEdgeChecks( source, destination, + new Rectangle( rect.Left, rect.Bottom - kernelHalf, rect.Width, kernelHalf ) ); + // left + ProcessWithEdgeChecks( source, destination, + new Rectangle( rect.Left, rect.Top + kernelHalf, kernelHalf, rect.Height - kernelHalf * 2 ) ); + // right + ProcessWithEdgeChecks( source, destination, + new Rectangle( rect.Right - kernelHalf, rect.Top + kernelHalf, kernelHalf, rect.Height - kernelHalf * 2 ) ); + } + } + + // Perform parallel image processing without checking pixels' coordinates to make sure those are in bounds + private unsafe void ProcessWithoutChecksParallel( UnmanagedImage source, UnmanagedImage destination, Rectangle rect ) + { + int startX = rect.Left; + int startY = rect.Top; + int stopX = rect.Right; + int stopY = rect.Bottom; + + int pixelSize = System.Drawing.Image.GetPixelFormatSize( source.PixelFormat ) / 8; + int kernelHalf = kernelSize / 2; + int bytesInKernelRow = kernelSize * pixelSize; + + int srcStride = source.Stride; + int dstStride = destination.Stride; + + int srcOffset = srcStride - rect.Width * pixelSize; + int dstOffset = dstStride - rect.Width * pixelSize; + + // offset of the first kernel's pixel + int srcKernelFistPixelOffset = kernelHalf * ( srcStride + pixelSize ); + // offset to move to the next kernel's pixel after processing one kernel's row + int srcKernelOffset = srcStride - bytesInKernelRow; + + byte* srcBase = (byte*) source.ImageData.ToPointer( ); + byte* dstBase = (byte*) destination.ImageData.ToPointer( ); + + // allign pointers to the left most pixel in the first row + srcBase += startX * pixelSize; + dstBase += startX * pixelSize; + + if ( pixelSize > 1 ) + { + Parallel.For( startY, stopY, delegate( int y ) + { + byte* src = srcBase + y * srcStride; + byte* dst = dstBase + y * dstStride; + + byte srcR, srcG, srcB; + byte srcR0, srcG0, srcB0; + byte* srcPixel; + + int tx, ty; + + double sCoefR, sCoefG, sCoefB, sMembR, sMembG, sMembB, coefR, coefG, coefB; + + for ( int x = startX; x < stopX; x++, src += pixelSize, dst += pixelSize ) + { + // lower right corner - to start processing from that point + srcPixel = src + srcKernelFistPixelOffset; + + sCoefR = 0; + sCoefG = 0; + sCoefB = 0; + sMembR = 0; + sMembG = 0; + sMembB = 0; + + srcR0 = src[RGB.R]; + srcG0 = src[RGB.G]; + srcB0 = src[RGB.B]; + + // move from lower right to upper left corner + ty = kernelSize; + while ( ty != 0 ) + { + ty--; + + tx = kernelSize; + while ( tx != 0 ) + { + tx--; + + srcR = srcPixel[RGB.R]; + srcG = srcPixel[RGB.G]; + srcB = srcPixel[RGB.B]; + + coefR = spatialFunc[tx, ty] * colorFunc[srcR, srcR0]; + coefG = spatialFunc[tx, ty] * colorFunc[srcG, srcG0]; + coefB = spatialFunc[tx, ty] * colorFunc[srcB, srcB0]; + + sCoefR += coefR; + sCoefG += coefG; + sCoefB += coefB; + + sMembR += coefR * srcR; + sMembG += coefG * srcG; + sMembB += coefB * srcB; + + srcPixel -= pixelSize; + } + + srcPixel -= srcKernelOffset; + } + + dst[RGB.R] = (byte) ( sMembR / sCoefR ); + dst[RGB.G] = (byte) ( sMembG / sCoefG ); + dst[RGB.B] = (byte) ( sMembB / sCoefB ); + } + } ); + } + else + { + // 8bpp grayscale images + Parallel.For( startY, stopY, delegate( int y ) + { + byte* src = srcBase + y * srcStride; + byte* dst = dstBase + y * dstStride; + + byte srcC; + byte srcC0; + byte* srcPixel; + double sCoefC, sMembC, coefC; + + int tx, ty; + + for ( int x = startX; x < stopX; x++, src++, dst++ ) + { + // lower right corner - to start processing from that point + srcPixel = src + srcKernelFistPixelOffset; + + sCoefC = 0; + sMembC = 0; + + srcC0 = *src; + + // move from lower right to upper left corner + ty = kernelSize; + while ( ty != 0 ) + { + ty--; + + tx = kernelSize; + while ( tx != 0 ) + { + tx--; + + srcC = *( srcPixel ); + coefC = spatialFunc[tx, ty] * colorFunc[srcC, srcC0]; + + sCoefC += coefC; + sMembC += coefC * srcC; + + srcPixel -= pixelSize; + } + + srcPixel -= srcKernelOffset; + } + + *dst = (byte) ( sMembC / sCoefC ); + } + } ); + } + } + + // Perform image processing without checking pixels' coordinates to make sure those are in bounds + private unsafe void ProcessWithoutChecks( UnmanagedImage source, UnmanagedImage destination, Rectangle rect ) + { + int startX = rect.Left; + int startY = rect.Top; + int stopX = rect.Right; + int stopY = rect.Bottom; + + int pixelSize = System.Drawing.Image.GetPixelFormatSize( source.PixelFormat ) / 8; + int kernelHalf = kernelSize / 2; + int bytesInKernelRow = kernelSize * pixelSize; + + int srcStride = source.Stride; + int dstStride = destination.Stride; + + int srcOffset = srcStride - rect.Width * pixelSize; + int dstOffset = dstStride - rect.Width * pixelSize; + + // offset of the first kernel's pixel + int srcKernelFistPixelOffset = kernelHalf * ( srcStride + pixelSize ); + // offset to move to the next kernel's pixel after processing one kernel's row + int srcKernelOffset = srcStride - bytesInKernelRow; + + int tx, ty; + + byte* src = (byte*) source.ImageData.ToPointer( ); + byte* dst = (byte*) destination.ImageData.ToPointer( ); + + // allign pointers to the first pixel to process + src += startY * srcStride + startX * pixelSize; + dst += startY * dstStride + startX * pixelSize; + + if ( pixelSize > 1 ) + { + byte srcR, srcG, srcB; + byte srcR0, srcG0, srcB0; + byte* srcPixel; + + double sCoefR, sCoefG, sCoefB, sMembR, sMembG, sMembB, coefR, coefG, coefB; + + for ( int y = startY; y < stopY; y++ ) + { + for ( int x = startX; x < stopX; x++, src += pixelSize, dst += pixelSize ) + { + // lower right corner - to start processing from that point + srcPixel = src + srcKernelFistPixelOffset; + + sCoefR = 0; + sCoefG = 0; + sCoefB = 0; + sMembR = 0; + sMembG = 0; + sMembB = 0; + + srcR0 = src[RGB.R]; + srcG0 = src[RGB.G]; + srcB0 = src[RGB.B]; + + // move from lower right to upper left corner + ty = kernelSize; + while ( ty != 0 ) + { + ty--; + + tx = kernelSize; + while ( tx != 0 ) + { + tx--; + + srcR = srcPixel[RGB.R]; + srcG = srcPixel[RGB.G]; + srcB = srcPixel[RGB.B]; + + coefR = spatialFunc[tx, ty] * colorFunc[srcR, srcR0]; + coefG = spatialFunc[tx, ty] * colorFunc[srcG, srcG0]; + coefB = spatialFunc[tx, ty] * colorFunc[srcB, srcB0]; + + sCoefR += coefR; + sCoefG += coefG; + sCoefB += coefB; + + sMembR += coefR * srcR; + sMembG += coefG * srcG; + sMembB += coefB * srcB; + + srcPixel -= pixelSize; + } + + srcPixel -= srcKernelOffset; + } + + dst[RGB.R] = (byte) ( sMembR / sCoefR ); + dst[RGB.G] = (byte) ( sMembG / sCoefG ); + dst[RGB.B] = (byte) ( sMembB / sCoefB ); + } + src += srcOffset; + dst += dstOffset; + } + } + else + { + // 8bpp grayscale images + byte srcC; + byte srcC0; + byte* srcPixel; + double sCoefC, sMembC, coefC; + + for ( int y = startY; y < stopY; y++ ) + { + for ( int x = startX; x < stopX; x++, src++, dst++ ) + { + // lower right corner - to start processing from that point + srcPixel = src + srcKernelFistPixelOffset; + + sCoefC = 0; + sMembC = 0; + + srcC0 = *src; + + // move from lower right to upper left corner + ty = kernelSize; + while ( ty != 0 ) + { + ty--; + + tx = kernelSize; + while ( tx != 0 ) + { + tx--; + + srcC = *( srcPixel ); + coefC = spatialFunc[tx, ty] * colorFunc[srcC, srcC0]; + + sCoefC += coefC; + sMembC += coefC * srcC; + + srcPixel -= pixelSize; + } + + srcPixel -= srcKernelOffset; + } + + *dst = (byte) ( sMembC / sCoefC ); + } + src += srcOffset; + dst += dstOffset; + } + } + } + + // Perform image processing with checking pixels' coordinates to make sure those are in bounds + private unsafe void ProcessWithEdgeChecks( UnmanagedImage source, UnmanagedImage destination, Rectangle rect ) + { + int width = source.Width; + int height = source.Height; + + int startX = rect.Left; + int startY = rect.Top; + int stopX = rect.Right; + int stopY = rect.Bottom; + + int pixelSize = System.Drawing.Image.GetPixelFormatSize( source.PixelFormat ) / 8; + int kernelHalf = kernelSize / 2; + int bytesInKernelRow = kernelSize * pixelSize; + + int srcStride = source.Stride; + int dstStride = destination.Stride; + + int srcOffset = srcStride - rect.Width * pixelSize; + int dstOffset = dstStride - rect.Width * pixelSize; + + // offset of the first kernel's pixel + int srcKernelFistPixelOffset = kernelHalf * ( srcStride + pixelSize ); + // offset to move to the next kernel's pixel after processing one kernel's row + int srcKernelOffset = srcStride - bytesInKernelRow; + + int rx, ry; + int tx, ty; + + byte* src = (byte*) source.ImageData.ToPointer( ); + byte* dst = (byte*) destination.ImageData.ToPointer( ); + + // allign pointers to the first pixel to process + src += startY * srcStride + startX * pixelSize; + dst += startY * dstStride + startX * pixelSize; + + if ( pixelSize > 1 ) + { + // color images + byte srcR, srcG, srcB; + byte srcR0, srcG0, srcB0; + byte* srcPixel; + + double sCoefR, sCoefG, sCoefB, sMembR, sMembG, sMembB, coefR, coefG, coefB; + + for ( int y = startY; y < stopY; y++ ) + { + for ( int x = startX; x < stopX; x++, src += pixelSize, dst += pixelSize ) + { + // lower right corner - to start processing from that point + srcPixel = src + srcKernelFistPixelOffset; + + sCoefR = 0; + sCoefG = 0; + sCoefB = 0; + sMembR = 0; + sMembG = 0; + sMembB = 0; + + srcR0 = src[RGB.R]; + srcG0 = src[RGB.G]; + srcB0 = src[RGB.B]; + + // move from lower right to upper left corner + ty = kernelSize; + while ( ty != 0 ) + { + ty--; + ry = ty - kernelHalf; + + if ( ( ry + y >= height ) || ( ry + y < 0 ) ) // bounds check + { + srcPixel -= srcStride; + continue; + } + + tx = kernelSize; + while ( tx != 0 ) + { + tx--; + rx = tx - kernelHalf; + + if ( ( rx + x >= width ) || ( rx + x < 0 ) ) // bounds check + { + srcPixel -= pixelSize; + continue; + } + + srcR = srcPixel[RGB.R]; + srcG = srcPixel[RGB.G]; + srcB = srcPixel[RGB.B]; + + coefR = spatialFunc[tx, ty] * colorFunc[srcR, srcR0]; + coefG = spatialFunc[tx, ty] * colorFunc[srcG, srcG0]; + coefB = spatialFunc[tx, ty] * colorFunc[srcB, srcB0]; + + sCoefR += coefR; + sCoefG += coefG; + sCoefB += coefB; + + sMembR += coefR * srcR; + sMembG += coefG * srcG; + sMembB += coefB * srcB; + + srcPixel -= pixelSize; + } + + srcPixel -= srcKernelOffset; + } + + dst[RGB.R] = (byte) ( sMembR / sCoefR ); + dst[RGB.G] = (byte) ( sMembG / sCoefG ); + dst[RGB.B] = (byte) ( sMembB / sCoefB ); + } + + src += srcOffset; + dst += dstOffset; + } + } + else + { + // 8bpp grayscale images + byte srcC; + byte srcC0; + byte* srcPixel; + double sCoefC, sMembC, coefC; + + for ( int y = startY; y < stopY; y++ ) + { + for ( int x = startX; x < stopX; x++, src++, dst++ ) + { + // lower right corner - to start processing from that point + srcPixel = src + srcKernelFistPixelOffset; + + sCoefC = 0; + sMembC = 0; + + srcC0 = *src; + + // move from lower right to upper left corner + ty = kernelSize; + while ( ty != 0 ) + { + ty--; + ry = (int) ( ty - kernelHalf ); + + if ( ( ry + y >= height ) || ( ry + y < 0 ) ) // bounds check + { + srcPixel -= srcStride; + continue; + } + + tx = kernelSize; + while ( tx != 0 ) + { + tx--; + rx = (int) ( tx - kernelHalf ); + + if ( ( rx + x >= source.Width ) || ( rx + x < 0 ) ) // bounds check + { + srcPixel -= pixelSize; + continue; + } + + srcC = *( srcPixel ); + coefC = spatialFunc[tx, ty] * colorFunc[srcC, srcC0]; + + sCoefC += coefC; + sMembC += coefC * srcC; + + srcPixel -= pixelSize; + } + + srcPixel -= srcKernelOffset; + } + + *dst = (byte) ( sMembC / sCoefC ); + } + src += srcOffset; + dst += dstOffset; + } + } + } + } +} diff --git a/Sources/Imaging/Filters/Smooting/ConservativeSmoothing.cs b/Sources/Imaging/Filters/Smooting/ConservativeSmoothing.cs new file mode 100644 index 00000000..edeaa516 --- /dev/null +++ b/Sources/Imaging/Filters/Smooting/ConservativeSmoothing.cs @@ -0,0 +1,282 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2005-2009 +// andrew.kirillov@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Conservative smoothing. + /// + /// + /// The filter implements conservative smoothing, which is a noise reduction + /// technique that derives its name from the fact that it employs a simple, fast filtering + /// algorithm that sacrifices noise suppression power in order to preserve the high spatial + /// frequency detail (e.g. sharp edges) in an image. It is explicitly designed to remove noise + /// spikes - isolated pixels of exceptionally low or high pixel intensity + /// (salt and pepper noise). + /// + /// If the filter finds a pixel which has minimum/maximum value compared to its surrounding + /// pixel, then its value is replaced by minimum/maximum value of those surrounding pixel. + /// For example, lets suppose the filter uses kernel size of 3x3, + /// which means each pixel has 8 surrounding pixel. If pixel's value is smaller than any value + /// of surrounding pixels, then the value of the pixel is replaced by minimum value of those surrounding + /// pixels. + /// + /// The filter accepts 8 bpp grayscale images and 24/32 bpp + /// color images for processing. + /// + /// Sample usage: + /// + /// // create filter + /// ConservativeSmoothing filter = new ConservativeSmoothing( ); + /// // apply the filter + /// filter.ApplyInPlace( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + public class ConservativeSmoothing : BaseUsingCopyPartialFilter + { + private int size = 3; + + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Kernel size, [3, 25]. + /// + /// + /// Determines the size of pixel's square used for smoothing. + /// + /// Default value is set to 3. + /// + /// The value should be odd. + /// + /// + public int KernelSize + { + get { return size; } + set { size = Math.Max( 3, Math.Min( 25, value | 1 ) ); } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public ConservativeSmoothing( ) + { + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format8bppIndexed; + formatTranslations[PixelFormat.Format24bppRgb] = PixelFormat.Format24bppRgb; + formatTranslations[PixelFormat.Format32bppRgb] = PixelFormat.Format32bppRgb; + formatTranslations[PixelFormat.Format32bppArgb] = PixelFormat.Format32bppArgb; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Kernel size. + /// + public ConservativeSmoothing( int size ) : this( ) + { + KernelSize = size; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Destination image data. + /// Image rectangle for processing by the filter. + /// + protected override unsafe void ProcessFilter( UnmanagedImage source, UnmanagedImage destination, Rectangle rect ) + { + int pixelSize = Image.GetPixelFormatSize( source.PixelFormat ) / 8; + + // processing start and stop X,Y positions + int startX = rect.Left; + int startY = rect.Top; + int stopX = startX + rect.Width; + int stopY = startY + rect.Height; + + int srcStride = source.Stride; + int dstStride = destination.Stride; + int srcOffset = srcStride - rect.Width * pixelSize; + int dstOffset = dstStride - rect.Width * pixelSize; + + // loop and array indexes + int i, j, t; + // kernel's radius + int radius = size >> 1; + // pixel value (min and max) + byte minR, maxR, minG, maxG, minB, maxB, v; + + byte* src = (byte*) source.ImageData.ToPointer( ); + byte* dst = (byte*) destination.ImageData.ToPointer( ); + byte* p; + + // allign pointers to the first pixel to process + src += ( startY * srcStride + startX * pixelSize ); + dst += ( startY * dstStride + startX * pixelSize ); + + if ( destination.PixelFormat == PixelFormat.Format8bppIndexed ) + { + // Grayscale image + + // for each line + for ( int y = startY; y < stopY; y++ ) + { + // for each pixel + for ( int x = startX; x < stopX; x++, src++, dst++ ) + { + minG = 255; + maxG = 0; + + // for each kernel row + for ( i = -radius; i <= radius; i++ ) + { + t = y + i; + + // skip row + if ( t < startY ) + continue; + // break + if ( t >= stopY ) + break; + + // for each kernel column + for ( j = -radius; j <= radius; j++ ) + { + t = x + j; + + // skip column + if ( t < startX ) + continue; + + if ( ( i != j ) && ( t < stopX ) ) + { + // find MIN and MAX values + v = src[i * srcStride + j]; + + if ( v < minG ) + minG = v; + if ( v > maxG ) + maxG = v; + } + } + } + // set destination pixel + v = *src; + *dst = ( v > maxG ) ? maxG : ( ( v < minG ) ? minG : v ); + } + src += srcOffset; + dst += dstOffset; + } + } + else + { + // RGB image + + // for each line + for ( int y = startY; y < stopY; y++ ) + { + // for each pixel + for ( int x = startX; x < stopX; x++, src += pixelSize, dst += pixelSize ) + { + minR = minG = minB = 255; + maxR = maxG = maxB = 0; + + // for each kernel row + for ( i = -radius; i <= radius; i++ ) + { + t = y + i; + + // skip row + if ( t < startY ) + continue; + // break + if ( t >= stopY ) + break; + + // for each kernel column + for ( j = -radius; j <= radius; j++ ) + { + t = x + j; + + // skip column + if ( t < startX ) + continue; + + if ( ( i != j ) && ( t < stopX ) ) + { + p = &src[i * srcStride + j * pixelSize]; + + // find MIN and MAX values + + // red + v = p[RGB.R]; + + if ( v < minR ) + minR = v; + if ( v > maxR ) + maxR = v; + + // green + v = p[RGB.G]; + + if ( v < minG ) + minG = v; + if ( v > maxG ) + maxG = v; + + // blue + v = p[RGB.B]; + + if ( v < minB ) + minB = v; + if ( v > maxB ) + maxB = v; + } + } + } + // set destination pixel + + // red + v = src[RGB.R]; + dst[RGB.R] = ( v > maxR ) ? maxR : ( ( v < minR ) ? minR : v ); + // green + v = src[RGB.G]; + dst[RGB.G] = ( v > maxG ) ? maxG : ( ( v < minG ) ? minG : v ); + // blue + v = src[RGB.B]; + dst[RGB.B] = ( v > maxB ) ? maxB : ( ( v < minB ) ? minB : v ); + } + src += srcOffset; + dst += dstOffset; + } + } + } + } +} diff --git a/Sources/Imaging/Filters/Smooting/Median.cs b/Sources/Imaging/Filters/Smooting/Median.cs new file mode 100644 index 00000000..84ce835f --- /dev/null +++ b/Sources/Imaging/Filters/Smooting/Median.cs @@ -0,0 +1,251 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2005-2009 +// andrew.kirillov@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Median filter. + /// + /// + /// The median filter is normally used to reduce noise in an image, somewhat like + /// the mean filter. However, it often does a better job than the mean + /// filter of preserving useful detail in the image. + /// + /// Each pixel of the original source image is replaced with the median of neighboring pixel + /// values. The median is calculated by first sorting all the pixel values from the surrounding + /// neighborhood into numerical order and then replacing the pixel being considered with the + /// middle pixel value. + /// + /// The filter accepts 8 bpp grayscale images and 24/32 bpp + /// color images for processing. + /// + /// Sample usage: + /// + /// // create filter + /// Median filter = new Median( ); + /// // apply the filter + /// filter.ApplyInPlace( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + public class Median : BaseUsingCopyPartialFilter + { + private int size = 3; + + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Processing square size for the median filter, [3, 25]. + /// + /// + /// Default value is set to 3. + /// + /// The value should be odd. + /// + /// + public int Size + { + get { return size; } + set { size = Math.Max( 3, Math.Min( 25, value | 1 ) ); } + } + + /// + /// Initializes a new instance of the class. + /// + public Median( ) + { + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format8bppIndexed; + formatTranslations[PixelFormat.Format24bppRgb] = PixelFormat.Format24bppRgb; + formatTranslations[PixelFormat.Format32bppRgb] = PixelFormat.Format32bppRgb; + formatTranslations[PixelFormat.Format32bppArgb] = PixelFormat.Format32bppArgb; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Processing square size. + /// + public Median( int size ) : this( ) + { + Size = size; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Destination image data. + /// Image rectangle for processing by the filter. + /// + protected override unsafe void ProcessFilter( UnmanagedImage source, UnmanagedImage destination, Rectangle rect ) + { + int pixelSize = Image.GetPixelFormatSize( source.PixelFormat ) / 8; + + // processing start and stop X,Y positions + int startX = rect.Left; + int startY = rect.Top; + int stopX = startX + rect.Width; + int stopY = startY + rect.Height; + + int srcStride = source.Stride; + int dstStride = destination.Stride; + int srcOffset = srcStride - rect.Width * pixelSize; + int dstOffset = dstStride - rect.Width * pixelSize; + + // loop and array indexes + int i, j, t; + // processing square's radius + int radius = size >> 1; + // number of elements + int c; + + // array to hold pixel values (R, G, B) + byte[] r = new byte[size * size]; + byte[] g = new byte[size * size]; + byte[] b = new byte[size * size]; + + byte* src = (byte*) source.ImageData.ToPointer( ); + byte* dst = (byte*) destination.ImageData.ToPointer( ); + byte* p; + + // allign pointers to the first pixel to process + src += ( startY * srcStride + startX * pixelSize ); + dst += ( startY * dstStride + startX * pixelSize ); + + // do the processing job + if ( destination.PixelFormat == PixelFormat.Format8bppIndexed ) + { + // grayscale image + + // for each line + for ( int y = startY; y < stopY; y++ ) + { + // for each pixel + for ( int x = startX; x < stopX; x++, src++, dst++ ) + { + c = 0; + + // for each kernel row + for ( i = -radius; i <= radius; i++ ) + { + t = y + i; + + // skip row + if ( t < startY ) + continue; + // break + if ( t >= stopY ) + break; + + // for each kernel column + for ( j = -radius; j <= radius; j++ ) + { + t = x + j; + + // skip column + if ( t < startX ) + continue; + + if ( t < stopX ) + { + g[c++] = src[i * srcStride + j]; + } + } + } + // sort elements + Array.Sort( g, 0, c ); + // get the median + *dst = g[c >> 1]; + } + src += srcOffset; + dst += dstOffset; + } + } + else + { + // RGB image + + // for each line + for ( int y = startY; y < stopY; y++ ) + { + // for each pixel + for ( int x = startX; x < stopX; x++, src += pixelSize, dst += pixelSize ) + { + c = 0; + + // for each kernel row + for ( i = -radius; i <= radius; i++ ) + { + t = y + i; + + // skip row + if ( t < startY ) + continue; + // break + if ( t >= stopY ) + break; + + // for each kernel column + for ( j = -radius; j <= radius; j++ ) + { + t = x + j; + + // skip column + if ( t < startX ) + continue; + + if ( t < stopX ) + { + p = &src[i * srcStride + j * pixelSize]; + + r[c] = p[RGB.R]; + g[c] = p[RGB.G]; + b[c] = p[RGB.B]; + c++; + } + } + } + + // sort elements + Array.Sort( r, 0, c ); + Array.Sort( g, 0, c ); + Array.Sort( b, 0, c ); + // get the median + t = c >> 1; + dst[RGB.R] = r[t]; + dst[RGB.G] = g[t]; + dst[RGB.B] = b[t]; + } + src += srcOffset; + dst += dstOffset; + } + } + } + } +} diff --git a/Sources/Imaging/Filters/Transform/BackwardQuadrilateralTransformation.cs b/Sources/Imaging/Filters/Transform/BackwardQuadrilateralTransformation.cs new file mode 100644 index 00000000..12290799 --- /dev/null +++ b/Sources/Imaging/Filters/Transform/BackwardQuadrilateralTransformation.cs @@ -0,0 +1,430 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2007-2010 +// andrew.kirillov@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + using AForge; + using AForge.Math.Geometry; + + /// + /// Performs backward quadrilateral transformation into an area in destination image. + /// + /// + /// The class implements backward quadrilateral transformation algorithm, + /// which allows to transform any rectangular image into any quadrilateral area + /// in a given destination image. The idea of the algorithm is based on homogeneous + /// transformation and its math is described by Paul Heckbert in his + /// "Projective Mappings for Image Warping" paper. + /// + /// + /// The image processing routines implements similar math to , + /// but performs it in backward direction. + /// + /// The image processing filter accepts 8 grayscale images and 24/32 bpp + /// color images for processing. + /// + /// Sample usage: + /// + /// // define quadrilateral's corners + /// List<IntPoint> corners = new List<IntPoint>( ); + /// corners.Add( new IntPoint( 99, 99 ) ); + /// corners.Add( new IntPoint( 156, 79 ) ); + /// corners.Add( new IntPoint( 184, 126 ) ); + /// corners.Add( new IntPoint( 122, 150 ) ); + /// // create filter + /// BackwardQuadrilateralTransformation filter = + /// new BackwardQuadrilateralTransformation( sourceImage, corners ); + /// // apply the filter + /// Bitmap newImage = filter.Apply( image ); + /// + /// + /// Source image: + /// + /// Destination image: + /// + /// Result image: + /// + /// + /// + /// + /// + public class BackwardQuadrilateralTransformation : BaseInPlaceFilter + { + private Bitmap sourceImage = null; + private UnmanagedImage sourceUnmanagedImage = null; + private List destinationQuadrilateral = null; + + private bool useInterpolation = true; + + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + /// + /// See + /// documentation for additional information. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Source image to be transformed into specified quadrilateral. + /// + /// + /// The property sets the source image, which will be transformed + /// to the specified quadrilateral and put into destination image the filter is applied to. + /// + /// The source image must have the same pixel format as a destination image the filter + /// is applied to. Otherwise exception will be generated when filter is applied. + /// + /// Setting this property will clear the property - + /// only one source image is allowed: managed or unmanaged. + /// + /// + public Bitmap SourceImage + { + get { return sourceImage; } + set + { + sourceImage = value; + + if ( value != null ) + sourceUnmanagedImage = null; + } + } + + /// + /// Source unmanaged image to be transformed into specified quadrilateral. + /// + /// + /// The property sets the source image, which will be transformed + /// to the specified quadrilateral and put into destination image the filter is applied to. + /// + /// The source image must have the same pixel format as a destination image the filter + /// is applied to. Otherwise exception will be generated when filter is applied. + /// + /// Setting this property will clear the property - + /// only one source image is allowed: managed or unmanaged. + /// + /// + public UnmanagedImage SourceUnmanagedImage + { + get { return sourceUnmanagedImage; } + set + { + sourceUnmanagedImage = value; + + if ( value != null ) + sourceImage = null; + } + } + + /// + /// Quadrilateral in destination image to transform into. + /// + /// + /// The property specifies 4 corners of a quadrilateral area + /// in destination image where the source image will be transformed into. + /// + /// + public List DestinationQuadrilateral + { + get { return destinationQuadrilateral; } + set { destinationQuadrilateral = value; } + } + + /// + /// Specifies if bilinear interpolation should be used or not. + /// + /// + /// Default value is set to - interpolation + /// is used. + /// + /// + public bool UseInterpolation + { + get { return useInterpolation; } + set { useInterpolation = value; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public BackwardQuadrilateralTransformation( ) + { + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format8bppIndexed; + formatTranslations[PixelFormat.Format24bppRgb] = PixelFormat.Format24bppRgb; + formatTranslations[PixelFormat.Format32bppRgb] = PixelFormat.Format32bppRgb; + formatTranslations[PixelFormat.Format32bppArgb] = PixelFormat.Format32bppArgb; + formatTranslations[PixelFormat.Format32bppPArgb] = PixelFormat.Format32bppPArgb; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Source image to be transformed into specified quadrilateral + /// (see ). + /// + public BackwardQuadrilateralTransformation( Bitmap sourceImage ) + : this( ) + { + this.sourceImage = sourceImage; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Source unmanaged image to be transformed into specified quadrilateral + /// (see ). + /// + public BackwardQuadrilateralTransformation( UnmanagedImage sourceUnmanagedImage ) + : this( ) + { + this.sourceUnmanagedImage = sourceUnmanagedImage; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Source image to be transformed into specified quadrilateral + /// (see ). + /// Quadrilateral in destination image to transform into. + /// + public BackwardQuadrilateralTransformation( Bitmap sourceImage, List destinationQuadrilateral ) + : this( ) + { + this.sourceImage = sourceImage; + this.destinationQuadrilateral = destinationQuadrilateral; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Source unmanaged image to be transformed into specified quadrilateral + /// (see ). + /// Quadrilateral in destination image to transform into. + /// + public BackwardQuadrilateralTransformation( UnmanagedImage sourceUnmanagedImage, List destinationQuadrilateral ) + : this( ) + { + this.sourceUnmanagedImage = sourceUnmanagedImage; + this.destinationQuadrilateral = destinationQuadrilateral; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Image data to process by the filter. + /// + /// Destination quadrilateral was not set. + /// + protected override unsafe void ProcessFilter( UnmanagedImage image ) + { + if ( destinationQuadrilateral == null ) + throw new NullReferenceException( "Destination quadrilateral was not set." ); + + // check overlay type + if ( sourceImage != null ) + { + // source and destination images must have same pixel format + if ( image.PixelFormat != sourceImage.PixelFormat ) + throw new InvalidImagePropertiesException( "Source and destination images must have same pixel format." ); + + // lock source image + BitmapData srcData = sourceImage.LockBits( + new Rectangle( 0, 0, sourceImage.Width, sourceImage.Height ), + ImageLockMode.ReadOnly, sourceImage.PixelFormat ); + + try + { + ProcessFilter( image, new UnmanagedImage( srcData ) ); + } + finally + { + // unlock source image + sourceImage.UnlockBits( srcData ); + } + } + else if ( sourceUnmanagedImage != null ) + { + // source and destination images must have same pixel format + if ( image.PixelFormat != sourceUnmanagedImage.PixelFormat ) + throw new InvalidImagePropertiesException( "Source and destination images must have same pixel format." ); + + ProcessFilter( image, sourceUnmanagedImage ); + } + else + { + throw new NullReferenceException( "Source image is not set." ); + } + } + + // Process both images transforming source image into quadrilateral in destination image + private unsafe void ProcessFilter( UnmanagedImage dstImage, UnmanagedImage srcImage ) + { + // get source and destination images size + int srcWidth = srcImage.Width; + int srcHeight = srcImage.Height; + int dstWidth = dstImage.Width; + int dstHeight = dstImage.Height; + + int pixelSize = Image.GetPixelFormatSize( srcImage.PixelFormat ) / 8; + int srcStride = srcImage.Stride; + int dstStride = dstImage.Stride; + + // get bounding rectangle of the quadrilateral + IntPoint minXY, maxXY; + PointsCloud.GetBoundingRectangle( destinationQuadrilateral, out minXY, out maxXY ); + + // make sure the rectangle is inside of destination image + if ( ( maxXY.X < 0 ) || ( maxXY.Y < 0 ) || ( minXY.X >= dstWidth ) || ( minXY.Y >= dstHeight ) ) + return; // nothing to do, since quadrilateral is completely outside + + // correct rectangle if required + if ( minXY.X < 0 ) + minXY.X = 0; + if ( minXY.Y < 0 ) + minXY.Y = 0; + if ( maxXY.X >= dstWidth ) + maxXY.X = dstWidth - 1; + if ( maxXY.Y >= dstHeight ) + maxXY.Y = dstHeight - 1; + + int startX = minXY.X; + int startY = minXY.Y; + int stopX = maxXY.X + 1; + int stopY = maxXY.Y + 1; + int offset = dstStride - ( stopX - startX ) * pixelSize; + + // calculate tranformation matrix + List srcRect = new List( ); + srcRect.Add( new IntPoint( 0, 0 ) ); + srcRect.Add( new IntPoint( srcWidth - 1, 0 ) ); + srcRect.Add( new IntPoint( srcWidth - 1, srcHeight - 1 ) ); + srcRect.Add( new IntPoint( 0, srcHeight - 1 ) ); + + double[,] matrix = QuadTransformationCalcs.MapQuadToQuad( destinationQuadrilateral, srcRect ); + + // do the job + byte* ptr = (byte*) dstImage.ImageData.ToPointer( ); + byte* baseSrc = (byte*) srcImage.ImageData.ToPointer( ); + + // allign pointer to the first pixel to process + ptr += ( startY * dstStride + startX * pixelSize ); + + if ( !useInterpolation ) + { + byte* p; + + // for each row + for ( int y = startY; y < stopY; y++ ) + { + // for each pixel + for ( int x = startX; x < stopX; x++ ) + { + double factor = matrix[2, 0] * x + matrix[2, 1] * y + matrix[2, 2]; + double srcX = ( matrix[0, 0] * x + matrix[0, 1] * y + matrix[0, 2] ) / factor; + double srcY = ( matrix[1, 0] * x + matrix[1, 1] * y + matrix[1, 2] ) / factor; + + if ( ( srcX >= 0 ) && ( srcY >= 0 ) && ( srcX < srcWidth ) && ( srcY < srcHeight ) ) + { + // get pointer to the pixel in the source image + p = baseSrc + (int) srcY * srcStride + (int) srcX * pixelSize; + // copy pixel's values + for ( int i = 0; i < pixelSize; i++, ptr++, p++ ) + { + *ptr = *p; + } + } + else + { + // skip the pixel + ptr += pixelSize; + } + } + ptr += offset; + } + } + else + { + int srcWidthM1 = srcWidth - 1; + int srcHeightM1 = srcHeight - 1; + + // coordinates of source points + double dx1, dy1, dx2, dy2; + int sx1, sy1, sx2, sy2; + + // temporary pointers + byte* p1, p2, p3, p4; + + // for each row + for ( int y = startY; y < stopY; y++ ) + { + // for each pixel + for ( int x = startX; x < stopX; x++ ) + { + double factor = matrix[2, 0] * x + matrix[2, 1] * y + matrix[2, 2]; + double srcX = ( matrix[0, 0] * x + matrix[0, 1] * y + matrix[0, 2] ) / factor; + double srcY = ( matrix[1, 0] * x + matrix[1, 1] * y + matrix[1, 2] ) / factor; + + if ( ( srcX >= 0 ) && ( srcY >= 0 ) && ( srcX < srcWidth ) && ( srcY < srcHeight ) ) + { + sx1 = (int) srcX; + sx2 = ( sx1 == srcWidthM1 ) ? sx1 : sx1 + 1; + dx1 = srcX - sx1; + dx2 = 1.0 - dx1; + + sy1 = (int) srcY; + sy2 = ( sy1 == srcHeightM1 ) ? sy1 : sy1 + 1; + dy1 = srcY - sy1; + dy2 = 1.0 - dy1; + + // get four points + p1 = p2 = baseSrc + sy1 * srcStride; + p1 += sx1 * pixelSize; + p2 += sx2 * pixelSize; + + p3 = p4 = baseSrc + sy2 * srcStride; + p3 += sx1 * pixelSize; + p4 += sx2 * pixelSize; + + // interpolate using 4 points + for ( int i = 0; i < pixelSize; i++, ptr++, p1++, p2++, p3++, p4++ ) + { + *ptr = (byte) ( + dy2 * ( dx2 * ( *p1 ) + dx1 * ( *p2 ) ) + + dy1 * ( dx2 * ( *p3 ) + dx1 * ( *p4 ) ) ); + } + } + else + { + // skip the pixel + ptr += pixelSize; + } + } + ptr += offset; + } + } + } + } +} \ No newline at end of file diff --git a/Sources/Imaging/Filters/Transform/Crop.cs b/Sources/Imaging/Filters/Transform/Crop.cs new file mode 100644 index 00000000..2afafb0d --- /dev/null +++ b/Sources/Imaging/Filters/Transform/Crop.cs @@ -0,0 +1,141 @@ +// AForge Image Processing Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2005-2008 +// andrew.kirillov@gmail.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Crop an image. + /// + /// + /// + /// The filter crops an image providing a new image, which contains only the specified + /// rectangle of the original image. + /// + /// The filter accepts 8 and 16 bpp grayscale images and 24, 32, 48 and 64 bpp + /// color images for processing. + /// + /// Sample usage: + /// + /// // create filter + /// Crop filter = new Crop( new Rectangle( 75, 75, 320, 240 ) ); + /// // apply the filter + /// Bitmap newImage = filter.Apply( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + public class Crop : BaseTransformationFilter + { + private Rectangle rect; + + // format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Rectangle to crop. + /// + public Rectangle Rectangle + { + get { return rect; } + set { rect = value; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Rectangle to crop. + /// + public Crop( Rectangle rect ) + { + this.rect = rect; + + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format8bppIndexed; + formatTranslations[PixelFormat.Format24bppRgb] = PixelFormat.Format24bppRgb; + formatTranslations[PixelFormat.Format32bppRgb] = PixelFormat.Format32bppRgb; + formatTranslations[PixelFormat.Format32bppArgb] = PixelFormat.Format32bppArgb; + formatTranslations[PixelFormat.Format16bppGrayScale] = PixelFormat.Format16bppGrayScale; + formatTranslations[PixelFormat.Format48bppRgb] = PixelFormat.Format48bppRgb; + formatTranslations[PixelFormat.Format64bppArgb] = PixelFormat.Format64bppArgb; + } + + /// + /// Calculates new image size. + /// + /// + /// Source image data. + /// + /// New image size - size of the destination image. + /// + protected override System.Drawing.Size CalculateNewImageSize( UnmanagedImage sourceData ) + { + return new Size( rect.Width, rect.Height ); + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Destination image data. + /// + protected override unsafe void ProcessFilter( UnmanagedImage sourceData, UnmanagedImage destinationData ) + { + // validate rectangle + Rectangle srcRect = rect; + srcRect.Intersect( new Rectangle( 0, 0, sourceData.Width, sourceData.Height ) ); + + int xmin = srcRect.Left; + int ymin = srcRect.Top; + int ymax = srcRect.Bottom - 1; + int copyWidth = srcRect.Width; + + int srcStride = sourceData.Stride; + int dstStride = destinationData.Stride; + int pixelSize = Image.GetPixelFormatSize( sourceData.PixelFormat ) / 8; + int copySize = copyWidth * pixelSize; + + // do the job + byte* src = (byte*) sourceData.ImageData.ToPointer( ) + ymin * srcStride + xmin * pixelSize; + byte* dst = (byte*) destinationData.ImageData.ToPointer( ); + + if ( rect.Top < 0 ) + { + dst -= dstStride * rect.Top; + } + if ( rect.Left < 0 ) + { + dst -= pixelSize * rect.Left; + } + + // for each line + for ( int y = ymin; y <= ymax; y++ ) + { + AForge.SystemTools.CopyUnmanagedMemory( dst, src, copySize ); + src += srcStride; + dst += dstStride; + } + } + } +} diff --git a/Sources/Imaging/Filters/Transform/Quad.cs b/Sources/Imaging/Filters/Transform/Quad.cs new file mode 100644 index 00000000..347804ab --- /dev/null +++ b/Sources/Imaging/Filters/Transform/Quad.cs @@ -0,0 +1,129 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2007-2010 +// andrew.kirillov@aforgenet.com +// + +using System; +using System.Collections.Generic; +using AForge; + +namespace AForge.Imaging.Filters +{ + // The code is based on the code from the below link, which shows + // the idea of mapping any quadrilateral to any other quadrilateral + // http://threeblindmiceandamonkey.com/?p=16 + + internal static class QuadTransformationCalcs + { + private const double TOLERANCE = 1e-13; + + // Caclculates determinant of a 2x2 matrix + private static double Det2( double a, double b, double c, double d ) + { + return ( a * d - b * c ); + } + + // Multiply two 3x3 matrices + private static double[,] MultiplyMatrix( double[,] a, double[,] b ) + { + double[,] c = new double[3, 3]; + + c[0, 0] = a[0, 0] * b[0, 0] + a[0, 1] * b[1, 0] + a[0, 2] * b[2, 0]; + c[0, 1] = a[0, 0] * b[0, 1] + a[0, 1] * b[1, 1] + a[0, 2] * b[2, 1]; + c[0, 2] = a[0, 0] * b[0, 2] + a[0, 1] * b[1, 2] + a[0, 2] * b[2, 2]; + c[1, 0] = a[1, 0] * b[0, 0] + a[1, 1] * b[1, 0] + a[1, 2] * b[2, 0]; + c[1, 1] = a[1, 0] * b[0, 1] + a[1, 1] * b[1, 1] + a[1, 2] * b[2, 1]; + c[1, 2] = a[1, 0] * b[0, 2] + a[1, 1] * b[1, 2] + a[1, 2] * b[2, 2]; + c[2, 0] = a[2, 0] * b[0, 0] + a[2, 1] * b[1, 0] + a[2, 2] * b[2, 0]; + c[2, 1] = a[2, 0] * b[0, 1] + a[2, 1] * b[1, 1] + a[2, 2] * b[2, 1]; + c[2, 2] = a[2, 0] * b[0, 2] + a[2, 1] * b[1, 2] + a[2, 2] * b[2, 2]; + + return c; + } + + // Calculates adjugate 3x3 matrix + private static double[,] AdjugateMatrix( double[,] a ) + { + double[,] b = new double[3, 3]; + b[0, 0] = Det2( a[1, 1], a[1, 2], a[2, 1], a[2, 2] ); + b[1, 0] = Det2( a[1, 2], a[1, 0], a[2, 2], a[2, 0] ); + b[2, 0] = Det2( a[1, 0], a[1, 1], a[2, 0], a[2, 1] ); + b[0, 1] = Det2( a[2, 1], a[2, 2], a[0, 1], a[0, 2] ); + b[1, 1] = Det2( a[2, 2], a[2, 0], a[0, 2], a[0, 0] ); + b[2, 1] = Det2( a[2, 0], a[2, 1], a[0, 0], a[0, 1] ); + b[0, 2] = Det2( a[0, 1], a[0, 2], a[1, 1], a[1, 2] ); + b[1, 2] = Det2( a[0, 2], a[0, 0], a[1, 2], a[1, 0] ); + b[2, 2] = Det2( a[0, 0], a[0, 1], a[1, 0], a[1, 1] ); + + return b; + } + + // Calculate matrix for unit square to quad mapping + private static double[,] MapSquareToQuad( List quad ) + { + double[,] sq = new double[3, 3]; + double px, py; + + px = quad[0].X - quad[1].X + quad[2].X - quad[3].X; + py = quad[0].Y - quad[1].Y + quad[2].Y - quad[3].Y; + + if ( ( px < TOLERANCE ) && ( px > -TOLERANCE ) && + ( py < TOLERANCE ) && ( py > -TOLERANCE ) ) + { + sq[0, 0] = quad[1].X - quad[0].X; + sq[0, 1] = quad[2].X - quad[1].X; + sq[0, 2] = quad[0].X; + + sq[1, 0] = quad[1].Y - quad[0].Y; + sq[1, 1] = quad[2].Y - quad[1].Y; + sq[1, 2] = quad[0].Y; + + sq[2, 0] = 0.0; + sq[2, 1] = 0.0; + sq[2, 2] = 1.0; + } + else + { + double dx1, dx2, dy1, dy2, del; + + dx1 = quad[1].X - quad[2].X; + dx2 = quad[3].X - quad[2].X; + dy1 = quad[1].Y - quad[2].Y; + dy2 = quad[3].Y - quad[2].Y; + + del = Det2( dx1, dx2, dy1, dy2 ); + + if ( del == 0.0 ) + return null; + + sq[2, 0] = Det2( px, dx2, py, dy2 ) / del; + sq[2, 1] = Det2( dx1, px, dy1, py ) / del; + sq[2, 2] = 1.0; + + sq[0, 0] = quad[1].X - quad[0].X + sq[2, 0] * quad[1].X; + sq[0, 1] = quad[3].X - quad[0].X + sq[2, 1] * quad[3].X; + sq[0, 2] = quad[0].X; + + sq[1, 0] = quad[1].Y - quad[0].Y + sq[2, 0] * quad[1].Y; + sq[1, 1] = quad[3].Y - quad[0].Y + sq[2, 1] * quad[3].Y; + sq[1, 2] = quad[0].Y; + } + return sq; + } + + // Calculate matrix for general quad to quad mapping + public static double[,] MapQuadToQuad( List input, List output ) + { + double[,] squareToInpit = MapSquareToQuad( input ); + double[,] squareToOutput = MapSquareToQuad( output ); + + if ( squareToOutput == null ) + return null; + + return MultiplyMatrix( squareToOutput, AdjugateMatrix( squareToInpit ) ); + } + } +} diff --git a/Sources/Imaging/Filters/Transform/QuadrilateralTransformation.cs b/Sources/Imaging/Filters/Transform/QuadrilateralTransformation.cs new file mode 100644 index 00000000..8a332b8f --- /dev/null +++ b/Sources/Imaging/Filters/Transform/QuadrilateralTransformation.cs @@ -0,0 +1,410 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2007-2010 +// andrew.kirillov@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + using AForge; + + /// + /// Performs quadrilateral transformation of an area in a given source image. + /// + /// + /// The class implements quadrilateral transformation algorithm, + /// which allows to transform any quadrilateral from a given source image + /// to a rectangular image. The idea of the algorithm is based on homogeneous + /// transformation and its math is described by Paul Heckbert in his + /// "Projective Mappings for Image Warping" paper. + /// + /// + /// The image processing filter accepts 8 grayscale images and 24/32 bpp + /// color images for processing. + /// + /// Sample usage: + /// + /// // define quadrilateral's corners + /// List<IntPoint> corners = new List<IntPoint>( ); + /// corners.Add( new IntPoint( 99, 99 ) ); + /// corners.Add( new IntPoint( 156, 79 ) ); + /// corners.Add( new IntPoint( 184, 126 ) ); + /// corners.Add( new IntPoint( 122, 150 ) ); + /// // create filter + /// QuadrilateralTransformation filter = + /// new QuadrilateralTransformation( corners, 200, 200 ); + /// // apply the filter + /// Bitmap newImage = filter.Apply( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + /// + /// + /// + public class QuadrilateralTransformation : BaseTransformationFilter + { + private bool automaticSizeCalculaton = true; + private bool useInterpolation = true; + + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + /// + /// See + /// documentation for additional information. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// New image width. + /// + protected int newWidth; + + /// + /// New image height. + /// + protected int newHeight; + + /// + /// Automatic calculation of destination image or not. + /// + /// + /// The property specifies how to calculate size of destination (transformed) + /// image. If the property is set to , then + /// and properties have effect and destination image's size is + /// specified by user. If the property is set to , then setting the above + /// mentioned properties does not have any effect, but destionation image's size is + /// automatically calculated from property - width and height + /// come from length of longest edges. + /// + /// + /// Default value is set to . + /// + /// + public bool AutomaticSizeCalculaton + { + get { return automaticSizeCalculaton; } + set + { + automaticSizeCalculaton = value; + if ( value ) + { + CalculateDestinationSize( ); + } + } + } + + // Quadrilateral's corners in source image. + private List sourceQuadrilateral; + + /// + /// Quadrilateral's corners in source image. + /// + /// + /// The property specifies four corners of the quadrilateral area + /// in the source image to be transformed. + /// + /// + public List SourceQuadrilateral + { + get { return sourceQuadrilateral; } + set + { + sourceQuadrilateral = value; + if ( automaticSizeCalculaton ) + { + CalculateDestinationSize( ); + } + } + } + + /// + /// Width of the new transformed image. + /// + /// + /// The property defines width of the destination image, which gets + /// transformed quadrilateral image. + /// + /// Setting the property does not have any effect, if + /// property is set to . In this case destination image's width + /// is calculated automatically based on property. + /// + /// + public int NewWidth + { + get { return newWidth; } + set + { + if ( !automaticSizeCalculaton ) + { + newWidth = Math.Max( 1, value ); + } + } + } + + /// + /// Height of the new transformed image. + /// + /// + /// The property defines height of the destination image, which gets + /// transformed quadrilateral image. + /// + /// Setting the property does not have any effect, if + /// property is set to . In this case destination image's height + /// is calculated automatically based on property. + /// + /// + public int NewHeight + { + get { return newHeight; } + set + { + if ( !automaticSizeCalculaton ) + { + newHeight = Math.Max( 1, value ); + } + } + } + + /// + /// Specifies if bilinear interpolation should be used or not. + /// + /// + /// Default value is set to - interpolation + /// is used. + /// + /// + public bool UseInterpolation + { + get { return useInterpolation; } + set { useInterpolation = value; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public QuadrilateralTransformation( ) + { + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format8bppIndexed; + formatTranslations[PixelFormat.Format24bppRgb] = PixelFormat.Format24bppRgb; + formatTranslations[PixelFormat.Format32bppRgb] = PixelFormat.Format32bppRgb; + formatTranslations[PixelFormat.Format32bppArgb] = PixelFormat.Format32bppArgb; + formatTranslations[PixelFormat.Format32bppPArgb] = PixelFormat.Format32bppPArgb; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Corners of the source quadrilateral area. + /// Width of the new transformed image. + /// Height of the new transformed image. + /// + /// This constructor sets to + /// , which means that destination image will have width and + /// height as specified by user. + /// + public QuadrilateralTransformation( List sourceQuadrilateral, int newWidth, int newHeight ) + : this( ) + { + this.automaticSizeCalculaton = false; + this.sourceQuadrilateral = sourceQuadrilateral; + this.newWidth = newWidth; + this.newHeight = newHeight; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Corners of the source quadrilateral area. + /// + /// This constructor sets to + /// , which means that destination image will have width and + /// height automatically calculated based on property. + /// + public QuadrilateralTransformation( List sourceQuadrilateral ) + : this( ) + { + this.automaticSizeCalculaton = true; + this.sourceQuadrilateral = sourceQuadrilateral; + CalculateDestinationSize( ); + } + + /// + /// Calculates new image size. + /// + /// + /// Source image data. + /// + /// New image size - size of the destination image. + /// + /// Source quadrilateral was not set. + /// + protected override System.Drawing.Size CalculateNewImageSize( UnmanagedImage sourceData ) + { + if ( sourceQuadrilateral == null ) + throw new NullReferenceException( "Source quadrilateral was not set." ); + + return new Size( newWidth, newHeight ); + } + + // Calculates size of destination image + private void CalculateDestinationSize( ) + { + if ( sourceQuadrilateral == null ) + throw new NullReferenceException( "Source quadrilateral was not set." ); + + newWidth = (int) Math.Max( sourceQuadrilateral[0].DistanceTo( sourceQuadrilateral[1] ), + sourceQuadrilateral[2].DistanceTo( sourceQuadrilateral[3] ) ); + newHeight = (int) Math.Max( sourceQuadrilateral[1].DistanceTo( sourceQuadrilateral[2] ), + sourceQuadrilateral[3].DistanceTo( sourceQuadrilateral[0] ) ); + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Destination image data. + /// + protected override unsafe void ProcessFilter( UnmanagedImage sourceData, UnmanagedImage destinationData ) + { + // get source and destination images size + int srcWidth = sourceData.Width; + int srcHeight = sourceData.Height; + int dstWidth = destinationData.Width; + int dstHeight = destinationData.Height; + + int pixelSize = Image.GetPixelFormatSize( sourceData.PixelFormat ) / 8; + int srcStride = sourceData.Stride; + int dstStride = destinationData.Stride; + int offset = dstStride - dstWidth * pixelSize; + + // calculate tranformation matrix + List dstRect = new List( ); + dstRect.Add( new IntPoint( 0, 0 ) ); + dstRect.Add( new IntPoint( dstWidth - 1, 0 ) ); + dstRect.Add( new IntPoint( dstWidth - 1, dstHeight - 1 ) ); + dstRect.Add( new IntPoint( 0, dstHeight - 1 ) ); + + // calculate tranformation matrix + double[,] matrix = QuadTransformationCalcs.MapQuadToQuad( dstRect, sourceQuadrilateral ); + + // do the job + byte* ptr = (byte*) destinationData.ImageData.ToPointer( ); + byte* baseSrc = (byte*) sourceData.ImageData.ToPointer( ); + + if ( !useInterpolation ) + { + byte* p; + + // for each row + for ( int y = 0; y < dstHeight; y++ ) + { + // for each pixel + for ( int x = 0; x < dstWidth; x++ ) + { + double factor = matrix[2, 0] * x + matrix[2, 1] * y + matrix[2, 2]; + double srcX = ( matrix[0, 0] * x + matrix[0, 1] * y + matrix[0, 2] ) / factor; + double srcY = ( matrix[1, 0] * x + matrix[1, 1] * y + matrix[1, 2] ) / factor; + + if ( ( srcX >= 0 ) && ( srcY >= 0 ) && ( srcX < srcWidth ) && ( srcY < srcHeight ) ) + { + // get pointer to the pixel in the source image + p = baseSrc + (int) srcY * srcStride + (int) srcX * pixelSize; + // copy pixel's values + for ( int i = 0; i < pixelSize; i++, ptr++, p++ ) + { + *ptr = *p; + } + } + else + { + ptr += pixelSize; + } + } + ptr += offset; + } + } + else + { + int srcWidthM1 = srcWidth - 1; + int srcHeightM1 = srcHeight - 1; + + // coordinates of source points + double dx1, dy1, dx2, dy2; + int sx1, sy1, sx2, sy2; + + // temporary pointers + byte* p1, p2, p3, p4; + + // for each row + for ( int y = 0; y < dstHeight; y++ ) + { + // for each pixel + for ( int x = 0; x < dstWidth; x++ ) + { + double factor = matrix[2, 0] * x + matrix[2, 1] * y + matrix[2, 2]; + double srcX = ( matrix[0, 0] * x + matrix[0, 1] * y + matrix[0, 2] ) / factor; + double srcY = ( matrix[1, 0] * x + matrix[1, 1] * y + matrix[1, 2] ) / factor; + + if ( ( srcX >= 0 ) && ( srcY >= 0 ) && ( srcX < srcWidth ) && ( srcY < srcHeight ) ) + { + sx1 = (int) srcX; + sx2 = ( sx1 == srcWidthM1 ) ? sx1 : sx1 + 1; + dx1 = srcX - sx1; + dx2 = 1.0 - dx1; + + sy1 = (int) srcY; + sy2 = ( sy1 == srcHeightM1 ) ? sy1 : sy1 + 1; + dy1 = srcY - sy1; + dy2 = 1.0 - dy1; + + // get four points + p1 = p2 = baseSrc + sy1 * srcStride; + p1 += sx1 * pixelSize; + p2 += sx2 * pixelSize; + + p3 = p4 = baseSrc + sy2 * srcStride; + p3 += sx1 * pixelSize; + p4 += sx2 * pixelSize; + + // interpolate using 4 points + for ( int i = 0; i < pixelSize; i++, ptr++, p1++, p2++, p3++, p4++ ) + { + *ptr = (byte) ( + dy2 * ( dx2 * ( *p1 ) + dx1 * ( *p2 ) ) + + dy1 * ( dx2 * ( *p3 ) + dx1 * ( *p4 ) ) ); + } + } + else + { + ptr += pixelSize; + } + } + ptr += offset; + } + } + } + } +} diff --git a/Sources/Imaging/Filters/Transform/QuadrilateralTransformationBilinear.cs b/Sources/Imaging/Filters/Transform/QuadrilateralTransformationBilinear.cs new file mode 100644 index 00000000..b5047cfc --- /dev/null +++ b/Sources/Imaging/Filters/Transform/QuadrilateralTransformationBilinear.cs @@ -0,0 +1,182 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2007-2010 +// andrew.kirillov@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + using AForge; + + /// + /// Performs quadrilateral transformation using bilinear algorithm for interpolation. + /// + /// + /// The class is deprecated and should be used instead. + /// + /// + /// + /// + [Obsolete( "The class is deprecated and SimpleQuadrilateralTransformation should be used instead" )] + public class QuadrilateralTransformationBilinear : BaseTransformationFilter + { + private SimpleQuadrilateralTransformation baseFilter = null; + + /// + /// Format translations dictionary. + /// + public override Dictionary FormatTranslations + { + get { return baseFilter.FormatTranslations; } + } + + /// + /// Automatic calculation of destination image or not. + /// + /// + /// The property specifies how to calculate size of destination (transformed) + /// image. If the property is set to , then + /// and properties have effect and destination image's size is + /// specified by user. If the property is set to , then setting the above + /// mentioned properties does not have any effect, but destionation image's size is + /// automatically calculated from property - width and height + /// come from length of longest edges. + /// + /// + public bool AutomaticSizeCalculaton + { + get { return baseFilter.AutomaticSizeCalculaton; } + set { baseFilter.AutomaticSizeCalculaton = value; } + } + + /// + /// Quadrilateral's corners in source image. + /// + /// + /// The property specifies four corners of the quadrilateral area + /// in the source image to be transformed. + /// + /// + public List SourceCorners + { + get { return baseFilter.SourceQuadrilateral; } + set { baseFilter.SourceQuadrilateral = value; } + } + + /// + /// Width of the new transformed image. + /// + /// + /// The property defines width of the destination image, which gets + /// transformed quadrilateral image. + /// + /// Setting the property does not have any effect, if + /// property is set to . In this case destination image's width + /// is calculated automatically based on property. + /// + /// + public int NewWidth + { + get { return baseFilter.NewWidth; } + set { baseFilter.NewWidth = value; } + } + + /// + /// Height of the new transformed image. + /// + /// + /// The property defines height of the destination image, which gets + /// transformed quadrilateral image. + /// + /// Setting the property does not have any effect, if + /// property is set to . In this case destination image's height + /// is calculated automatically based on property. + /// + /// + public int NewHeight + { + get { return baseFilter.NewHeight; } + set { baseFilter.NewHeight = value; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Corners of the source quadrilateral area. + /// Width of the new transformed image. + /// Height of the new transformed image. + /// + /// This constructor sets to + /// , which means that destination image will have width and + /// height as specified by user. + /// + public QuadrilateralTransformationBilinear( List sourceCorners, int newWidth, int newHeight ) + { + baseFilter = new SimpleQuadrilateralTransformation( sourceCorners, newWidth, newHeight ); + baseFilter.UseInterpolation = true; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Corners of the source quadrilateral area. + /// + /// This constructor sets to + /// , which means that destination image will have width and + /// height automatically calculated based on property. + /// + public QuadrilateralTransformationBilinear( List sourceCorners ) + { + baseFilter = new SimpleQuadrilateralTransformation( sourceCorners ); + baseFilter.UseInterpolation = true; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Destination image data. + /// + protected override unsafe void ProcessFilter( UnmanagedImage sourceData, UnmanagedImage destinationData ) + { + baseFilter.Apply( sourceData, destinationData ); + } + + /// + /// Calculates new image size. + /// + /// + /// Source image data. + /// + /// New image size - size of the destination image. + /// + /// The specified quadrilateral's corners are outside of the given image. + /// + protected override System.Drawing.Size CalculateNewImageSize( UnmanagedImage sourceData ) + { + // perform checking of source corners - they must feet into the image + foreach ( IntPoint point in baseFilter.SourceQuadrilateral ) + { + if ( ( point.X < 0 ) || + ( point.Y < 0 ) || + ( point.X >= sourceData.Width ) || + ( point.Y >= sourceData.Height ) ) + { + throw new ArgumentException( "The specified quadrilateral's corners are outside of the given image." ); + } + } + + return new Size( baseFilter.NewWidth, baseFilter.NewHeight ); + } + } +} diff --git a/Sources/Imaging/Filters/Transform/QuadrilateralTransformationNearestNeighbor.cs b/Sources/Imaging/Filters/Transform/QuadrilateralTransformationNearestNeighbor.cs new file mode 100644 index 00000000..fa7a4b14 --- /dev/null +++ b/Sources/Imaging/Filters/Transform/QuadrilateralTransformationNearestNeighbor.cs @@ -0,0 +1,182 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2007-2010 +// andrew.kirillov@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + using AForge; + + /// + /// Performs quadrilateral transformation using nearest neighbor algorithm for interpolation. + /// + /// + /// The class is deprecated and should be used instead. + /// + /// + /// + /// + [Obsolete( "The class is deprecated and SimpleQuadrilateralTransformation should be used instead" )] + public class QuadrilateralTransformationNearestNeighbor : BaseTransformationFilter + { + private SimpleQuadrilateralTransformation baseFilter = null; + + /// + /// Format translations dictionary. + /// + public override Dictionary FormatTranslations + { + get { return baseFilter.FormatTranslations; } + } + + /// + /// Automatic calculation of destination image or not. + /// + /// + /// The property specifies how to calculate size of destination (transformed) + /// image. If the property is set to , then + /// and properties have effect and destination image's size is + /// specified by user. If the property is set to , then setting the above + /// mentioned properties does not have any effect, but destionation image's size is + /// automatically calculated from property - width and height + /// come from length of longest edges. + /// + /// + public bool AutomaticSizeCalculaton + { + get { return baseFilter.AutomaticSizeCalculaton; } + set { baseFilter.AutomaticSizeCalculaton = value; } + } + + /// + /// Quadrilateral's corners in source image. + /// + /// + /// The property specifies four corners of the quadrilateral area + /// in the source image to be transformed. + /// + /// + public List SourceCorners + { + get { return baseFilter.SourceQuadrilateral; } + set { baseFilter.SourceQuadrilateral = value; } + } + + /// + /// Width of the new transformed image. + /// + /// + /// The property defines width of the destination image, which gets + /// transformed quadrilateral image. + /// + /// Setting the property does not have any effect, if + /// property is set to . In this case destination image's width + /// is calculated automatically based on property. + /// + /// + public int NewWidth + { + get { return baseFilter.NewWidth; } + set { baseFilter.NewWidth = value; } + } + + /// + /// Height of the new transformed image. + /// + /// + /// The property defines height of the destination image, which gets + /// transformed quadrilateral image. + /// + /// Setting the property does not have any effect, if + /// property is set to . In this case destination image's height + /// is calculated automatically based on property. + /// + /// + public int NewHeight + { + get { return baseFilter.NewHeight; } + set { baseFilter.NewHeight = value; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Corners of the source quadrilateral area. + /// Width of the new transformed image. + /// Height of the new transformed image. + /// + /// This constructor sets to + /// , which means that destination image will have width and + /// height as specified by user. + /// + public QuadrilateralTransformationNearestNeighbor( List sourceCorners, int newWidth, int newHeight ) + { + baseFilter = new SimpleQuadrilateralTransformation( sourceCorners, newWidth, newHeight ); + baseFilter.UseInterpolation = false; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Corners of the source quadrilateral area. + /// + /// This constructor sets to + /// , which means that destination image will have width and + /// height automatically calculated based on property. + /// + public QuadrilateralTransformationNearestNeighbor( List sourceCorners ) + { + baseFilter = new SimpleQuadrilateralTransformation( sourceCorners ); + baseFilter.UseInterpolation = false; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Destination image data. + /// + protected override unsafe void ProcessFilter( UnmanagedImage sourceData, UnmanagedImage destinationData ) + { + baseFilter.Apply( sourceData, destinationData ); + } + + /// + /// Calculates new image size. + /// + /// + /// Source image data. + /// + /// New image size - size of the destination image. + /// + /// The specified quadrilateral's corners are outside of the given image. + /// + protected override System.Drawing.Size CalculateNewImageSize( UnmanagedImage sourceData ) + { + // perform checking of source corners - they must feet into the image + foreach ( IntPoint point in baseFilter.SourceQuadrilateral ) + { + if ( ( point.X < 0 ) || + ( point.Y < 0 ) || + ( point.X >= sourceData.Width ) || + ( point.Y >= sourceData.Height ) ) + { + throw new ArgumentException( "The specified quadrilateral's corners are outside of the given image." ); + } + } + + return new Size( baseFilter.NewWidth, baseFilter.NewHeight ); + } + } +} diff --git a/Sources/Imaging/Filters/Transform/ResizeBicubic.cs b/Sources/Imaging/Filters/Transform/ResizeBicubic.cs new file mode 100644 index 00000000..8fc30727 --- /dev/null +++ b/Sources/Imaging/Filters/Transform/ResizeBicubic.cs @@ -0,0 +1,217 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Resize image using bicubic interpolation algorithm. + /// + /// + /// The class implements image resizing filter using bicubic + /// interpolation algorithm. It uses bicubic kernel W(x) as described on + /// Wikipedia + /// (coefficient a is set to -0.5). + /// + /// The filter accepts 8 grayscale images and 24 bpp + /// color images for processing. + /// + /// Sample usage: + /// + /// // create filter + /// ResizeBicubic filter = new ResizeBicubic( 400, 300 ); + /// // apply the filter + /// Bitmap newImage = filter.Apply( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + /// + /// + /// + public class ResizeBicubic : BaseResizeFilter + { + // format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Width of new image. + /// Height of new image. + /// + public ResizeBicubic( int newWidth, int newHeight ) : + base( newWidth, newHeight ) + { + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format8bppIndexed; + formatTranslations[PixelFormat.Format24bppRgb] = PixelFormat.Format24bppRgb; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Destination image data. + /// + protected override unsafe void ProcessFilter( UnmanagedImage sourceData, UnmanagedImage destinationData ) + { + // get source image size + int width = sourceData.Width; + int height = sourceData.Height; + + int pixelSize = ( sourceData.PixelFormat == PixelFormat.Format8bppIndexed ) ? 1 : 3; + int srcStride = sourceData.Stride; + int dstOffset = destinationData.Stride - pixelSize * newWidth; + double xFactor = (double) width / newWidth; + double yFactor = (double) height / newHeight; + + // do the job + byte* src = (byte*) sourceData.ImageData.ToPointer( ); + byte* dst = (byte*) destinationData.ImageData.ToPointer( ); + + // coordinates of source points and cooefficiens + double ox, oy, dx, dy, k1, k2; + int ox1, oy1, ox2, oy2; + // destination pixel values + double r, g, b; + // width and height decreased by 1 + int ymax = height - 1; + int xmax = width - 1; + // temporary pointer + byte* p; + + // check pixel format + if ( destinationData.PixelFormat == PixelFormat.Format8bppIndexed ) + { + // grayscale + for ( int y = 0; y < newHeight; y++ ) + { + // Y coordinates + oy = (double) y * yFactor - 0.5; + oy1 = (int) oy; + dy = oy - (double) oy1; + + for ( int x = 0; x < newWidth; x++, dst++ ) + { + // X coordinates + ox = (double) x * xFactor - 0.5f; + ox1 = (int) ox; + dx = ox - (double) ox1; + + // initial pixel value + g = 0; + + for ( int n = -1; n < 3; n++ ) + { + // get Y cooefficient + k1 = Interpolation.BiCubicKernel( dy - (double) n ); + + oy2 = oy1 + n; + if ( oy2 < 0 ) + oy2 = 0; + if ( oy2 > ymax ) + oy2 = ymax; + + for ( int m = -1; m < 3; m++ ) + { + // get X cooefficient + k2 = k1 * Interpolation.BiCubicKernel( (double) m - dx ); + + ox2 = ox1 + m; + if ( ox2 < 0 ) + ox2 = 0; + if ( ox2 > xmax ) + ox2 = xmax; + + g += k2 * src[oy2 * srcStride + ox2]; + } + } + *dst = (byte) Math.Max( 0, Math.Min( 255, g ) ); + } + dst += dstOffset; + } + } + else + { + // RGB + for ( int y = 0; y < newHeight; y++ ) + { + // Y coordinates + oy = (double) y * yFactor - 0.5f; + oy1 = (int) oy; + dy = oy - (double) oy1; + + for ( int x = 0; x < newWidth; x++, dst += 3 ) + { + // X coordinates + ox = (double) x * xFactor - 0.5f; + ox1 = (int) ox; + dx = ox - (double) ox1; + + // initial pixel value + r = g = b = 0; + + for ( int n = -1; n < 3; n++ ) + { + // get Y cooefficient + k1 = Interpolation.BiCubicKernel( dy - (double) n ); + + oy2 = oy1 + n; + if ( oy2 < 0 ) + oy2 = 0; + if ( oy2 > ymax ) + oy2 = ymax; + + for ( int m = -1; m < 3; m++ ) + { + // get X cooefficient + k2 = k1 * Interpolation.BiCubicKernel( (double) m - dx ); + + ox2 = ox1 + m; + if ( ox2 < 0 ) + ox2 = 0; + if ( ox2 > xmax ) + ox2 = xmax; + + // get pixel of original image + p = src + oy2 * srcStride + ox2 * 3; + + r += k2 * p[RGB.R]; + g += k2 * p[RGB.G]; + b += k2 * p[RGB.B]; + } + } + + dst[RGB.R] = (byte) Math.Max( 0, Math.Min( 255, r ) ); + dst[RGB.G] = (byte) Math.Max( 0, Math.Min( 255, g ) ); + dst[RGB.B] = (byte) Math.Max( 0, Math.Min( 255, b ) ); + } + dst += dstOffset; + } + } + } + } +} diff --git a/Sources/Imaging/Filters/Transform/ResizeBilinear.cs b/Sources/Imaging/Filters/Transform/ResizeBilinear.cs new file mode 100644 index 00000000..615a9120 --- /dev/null +++ b/Sources/Imaging/Filters/Transform/ResizeBilinear.cs @@ -0,0 +1,146 @@ +// AForge Image Processing Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2005-2008 +// andrew.kirillov@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Resize image using bilinear interpolation algorithm. + /// + /// + /// The class implements image resizing filter using bilinear + /// interpolation algorithm. + /// + /// The filter accepts 8 grayscale images and 24/32 bpp + /// color images for processing. + /// + /// Sample usage: + /// + /// // create filter + /// ResizeBilinear filter = new ResizeBilinear( 400, 300 ); + /// // apply the filter + /// Bitmap newImage = filter.Apply( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + /// + /// + /// + public class ResizeBilinear : BaseResizeFilter + { + // format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Width of the new image. + /// Height of the new image. + /// + public ResizeBilinear( int newWidth, int newHeight ) : + base( newWidth, newHeight ) + { + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format8bppIndexed; + formatTranslations[PixelFormat.Format24bppRgb] = PixelFormat.Format24bppRgb; + formatTranslations[PixelFormat.Format32bppRgb] = PixelFormat.Format32bppRgb; + formatTranslations[PixelFormat.Format32bppArgb] = PixelFormat.Format32bppArgb; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Destination image data. + /// + protected override unsafe void ProcessFilter( UnmanagedImage sourceData, UnmanagedImage destinationData ) + { + // get source image size + int width = sourceData.Width; + int height = sourceData.Height; + + int pixelSize = Image.GetPixelFormatSize( sourceData.PixelFormat ) / 8; + int srcStride = sourceData.Stride; + int dstOffset = destinationData.Stride - pixelSize * newWidth; + double xFactor = (double) width / newWidth; + double yFactor = (double) height / newHeight; + + // do the job + byte* src = (byte*) sourceData.ImageData.ToPointer( ); + byte* dst = (byte*) destinationData.ImageData.ToPointer( ); + + // coordinates of source points + double ox, oy, dx1, dy1, dx2, dy2; + int ox1, oy1, ox2, oy2; + // width and height decreased by 1 + int ymax = height - 1; + int xmax = width - 1; + // temporary pointers + byte* tp1, tp2; + byte* p1, p2, p3, p4; + + // for each line + for ( int y = 0; y < newHeight; y++ ) + { + // Y coordinates + oy = (double) y * yFactor; + oy1 = (int) oy; + oy2 = ( oy1 == ymax ) ? oy1 : oy1 + 1; + dy1 = oy - (double) oy1; + dy2 = 1.0 - dy1; + + // get temp pointers + tp1 = src + oy1 * srcStride; + tp2 = src + oy2 * srcStride; + + // for each pixel + for ( int x = 0; x < newWidth; x++ ) + { + // X coordinates + ox = (double) x * xFactor; + ox1 = (int) ox; + ox2 = ( ox1 == xmax ) ? ox1 : ox1 + 1; + dx1 = ox - (double) ox1; + dx2 = 1.0 - dx1; + + // get four points + p1 = tp1 + ox1 * pixelSize; + p2 = tp1 + ox2 * pixelSize; + p3 = tp2 + ox1 * pixelSize; + p4 = tp2 + ox2 * pixelSize; + + // interpolate using 4 points + for ( int i = 0; i < pixelSize; i++, dst++, p1++, p2++, p3++, p4++ ) + { + *dst = (byte) ( + dy2 * ( dx2 * ( *p1 ) + dx1 * ( *p2 ) ) + + dy1 * ( dx2 * ( *p3 ) + dx1 * ( *p4 ) ) ); + } + } + dst += dstOffset; + } + } + } +} diff --git a/Sources/Imaging/Filters/Transform/ResizeNearestNeighbor.cs b/Sources/Imaging/Filters/Transform/ResizeNearestNeighbor.cs new file mode 100644 index 00000000..e5edf982 --- /dev/null +++ b/Sources/Imaging/Filters/Transform/ResizeNearestNeighbor.cs @@ -0,0 +1,117 @@ +// AForge Image Processing Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2005-2008 +// andrew.kirillov@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Resize image using nearest neighbor algorithm. + /// + /// + /// The class implements image resizing filter using nearest + /// neighbor algorithm, which does not assume any interpolation. + /// + /// The filter accepts 8 and 16 bpp grayscale images and 24, 32, 48 and 64 bpp + /// color images for processing. + /// + /// Sample usage: + /// + /// // create filter + /// ResizeNearestNeighbor filter = new ResizeNearestNeighbor( 400, 300 ); + /// // apply the filter + /// Bitmap newImage = filter.Apply( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + /// + /// + /// + public class ResizeNearestNeighbor : BaseResizeFilter + { + // format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Width of the new image. + /// Height of the new image. + /// + public ResizeNearestNeighbor( int newWidth, int newHeight ) : + base( newWidth, newHeight ) + { + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format8bppIndexed; + formatTranslations[PixelFormat.Format24bppRgb] = PixelFormat.Format24bppRgb; + formatTranslations[PixelFormat.Format32bppRgb] = PixelFormat.Format32bppRgb; + formatTranslations[PixelFormat.Format32bppArgb] = PixelFormat.Format32bppArgb; + formatTranslations[PixelFormat.Format16bppGrayScale] = PixelFormat.Format16bppGrayScale; + formatTranslations[PixelFormat.Format48bppRgb] = PixelFormat.Format48bppRgb; + formatTranslations[PixelFormat.Format64bppArgb] = PixelFormat.Format64bppArgb; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Destination image data. + /// + protected override unsafe void ProcessFilter( UnmanagedImage sourceData, UnmanagedImage destinationData ) + { + // get source image size + int width = sourceData.Width; + int height = sourceData.Height; + + int pixelSize = Image.GetPixelFormatSize( sourceData.PixelFormat ) / 8; + int srcStride = sourceData.Stride; + int dstStride = destinationData.Stride; + double xFactor = (double) width / newWidth; + double yFactor = (double) height / newHeight; + + // do the job + byte* baseSrc = (byte*) sourceData.ImageData.ToPointer( ); + byte* baseDst = (byte*) destinationData.ImageData.ToPointer( ); + + // for each line + for ( int y = 0; y < newHeight; y++ ) + { + byte* dst = baseDst + dstStride * y; + byte* src = baseSrc + srcStride * ( (int) ( y * yFactor ) ); + byte* p; + + // for each pixel + for ( int x = 0; x < newWidth; x++ ) + { + p = src + pixelSize * ( (int) ( x * xFactor ) ); + + for ( int i = 0; i < pixelSize; i++, dst++, p++ ) + { + *dst = *p; + } + } + } + } + } +} diff --git a/Sources/Imaging/Filters/Transform/RotateBicubic.cs b/Sources/Imaging/Filters/Transform/RotateBicubic.cs new file mode 100644 index 00000000..e0675bd5 --- /dev/null +++ b/Sources/Imaging/Filters/Transform/RotateBicubic.cs @@ -0,0 +1,278 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Rotate image using bicubic interpolation. + /// + /// + /// The class implements image rotation filter using bicubic + /// interpolation algorithm. It uses bicubic kernel W(x) as described on + /// Wikipedia + /// (coefficient a is set to -0.5). + /// + /// Rotation is performed in counterclockwise direction. + /// + /// The filter accepts 8 bpp grayscale images and 24 bpp + /// color images for processing. + /// + /// Sample usage: + /// + /// // create filter - rotate for 30 degrees keeping original image size + /// RotateBicubic filter = new RotateBicubic( 30, true ); + /// // apply the filter + /// Bitmap newImage = filter.Apply( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + /// + /// + /// + public class RotateBicubic : BaseRotateFilter + { + // format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Rotation angle. + /// + /// This constructor sets property + /// to . + /// + /// + public RotateBicubic( double angle ) : + this( angle, false ) + { + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Rotation angle. + /// Keep image size or not. + /// + public RotateBicubic( double angle, bool keepSize ) : + base( angle, keepSize ) + { + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format8bppIndexed; + formatTranslations[PixelFormat.Format24bppRgb] = PixelFormat.Format24bppRgb; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Destination image data. + /// + protected override unsafe void ProcessFilter( UnmanagedImage sourceData, UnmanagedImage destinationData ) + { + // get source image size + int width = sourceData.Width; + int height = sourceData.Height; + double oldXradius = (double) ( width - 1 ) / 2; + double oldYradius = (double) ( height - 1 ) / 2; + + // get destination image size + int newWidth = destinationData.Width; + int newHeight = destinationData.Height; + double newXradius = (double) ( newWidth - 1 ) / 2; + double newYradius = (double) ( newHeight - 1 ) / 2; + + // angle's sine and cosine + double angleRad = -angle * Math.PI / 180; + double angleCos = Math.Cos( angleRad ); + double angleSin = Math.Sin( angleRad ); + + int srcStride = sourceData.Stride; + int dstOffset = destinationData.Stride - + ( ( destinationData.PixelFormat == PixelFormat.Format8bppIndexed ) ? newWidth : newWidth * 3 ); + + // fill values + byte fillR = fillColor.R; + byte fillG = fillColor.G; + byte fillB = fillColor.B; + + // do the job + byte* src = (byte*) sourceData.ImageData.ToPointer( ); + byte* dst = (byte*) destinationData.ImageData.ToPointer( ); + + // destination pixel's coordinate relative to image center + double cx, cy; + // coordinates of source points and cooefficiens + double ox, oy, dx, dy, k1, k2; + int ox1, oy1, ox2, oy2; + // destination pixel values + double r, g, b; + // width and height decreased by 1 + int ymax = height - 1; + int xmax = width - 1; + // temporary pointer + byte* p; + + if ( destinationData.PixelFormat == PixelFormat.Format8bppIndexed ) + { + // grayscale + cy = -newYradius; + for ( int y = 0; y < newHeight; y++ ) + { + cx = -newXradius; + for ( int x = 0; x < newWidth; x++, dst++ ) + { + // coordinates of source point + ox = angleCos * cx + angleSin * cy + oldXradius; + oy = -angleSin * cx + angleCos * cy + oldYradius; + + ox1 = (int) ox; + oy1 = (int) oy; + + // validate source pixel's coordinates + if ( ( ox1 < 0 ) || ( oy1 < 0 ) || ( ox1 >= width ) || ( oy1 >= height ) ) + { + // fill destination image with filler + *dst = fillG; + } + else + { + dx = ox - (double) ox1; + dy = oy - (double) oy1; + + // initial pixel value + g = 0; + + for ( int n = -1; n < 3; n++ ) + { + // get Y cooefficient + k1 = Interpolation.BiCubicKernel( dy - (double) n ); + + oy2 = oy1 + n; + if ( oy2 < 0 ) + oy2 = 0; + if ( oy2 > ymax ) + oy2 = ymax; + + for ( int m = -1; m < 3; m++ ) + { + // get X cooefficient + k2 = k1 * Interpolation.BiCubicKernel( (double) m - dx ); + + ox2 = ox1 + m; + if ( ox2 < 0 ) + ox2 = 0; + if ( ox2 > xmax ) + ox2 = xmax; + + g += k2 * src[oy2 * srcStride + ox2]; + } + } + *dst = (byte) Math.Max( 0, Math.Min( 255, g ) ); + } + cx++; + } + cy++; + dst += dstOffset; + } + } + else + { + // RGB + cy = -newYradius; + for ( int y = 0; y < newHeight; y++ ) + { + cx = -newXradius; + for ( int x = 0; x < newWidth; x++, dst += 3 ) + { + // coordinates of source point + ox = angleCos * cx + angleSin * cy + oldXradius; + oy = -angleSin * cx + angleCos * cy + oldYradius; + + ox1 = (int) ox; + oy1 = (int) oy; + + // validate source pixel's coordinates + if ( ( ox1 < 0 ) || ( oy1 < 0 ) || ( ox1 >= width ) || ( oy1 >= height ) ) + { + // fill destination image with filler + dst[RGB.R] = fillR; + dst[RGB.G] = fillG; + dst[RGB.B] = fillB; + } + else + { + dx = ox - (float) ox1; + dy = oy - (float) oy1; + + // initial pixel value + r = g = b = 0; + + for ( int n = -1; n < 3; n++ ) + { + // get Y cooefficient + k1 = Interpolation.BiCubicKernel( dy - (float) n ); + + oy2 = oy1 + n; + if ( oy2 < 0 ) + oy2 = 0; + if ( oy2 > ymax ) + oy2 = ymax; + + for ( int m = -1; m < 3; m++ ) + { + // get X cooefficient + k2 = k1 * Interpolation.BiCubicKernel( (float) m - dx ); + + ox2 = ox1 + m; + if ( ox2 < 0 ) + ox2 = 0; + if ( ox2 > xmax ) + ox2 = xmax; + + // get pixel of original image + p = src + oy2 * srcStride + ox2 * 3; + + r += k2 * p[RGB.R]; + g += k2 * p[RGB.G]; + b += k2 * p[RGB.B]; + } + } + dst[RGB.R] = (byte) Math.Max( 0, Math.Min( 255, r ) ); + dst[RGB.G] = (byte) Math.Max( 0, Math.Min( 255, g ) ); + dst[RGB.B] = (byte) Math.Max( 0, Math.Min( 255, b ) ); + } + cx++; + } + cy++; + dst += dstOffset; + } + } + } + } +} diff --git a/Sources/Imaging/Filters/Transform/RotateBilinear.cs b/Sources/Imaging/Filters/Transform/RotateBilinear.cs new file mode 100644 index 00000000..5fb010d5 --- /dev/null +++ b/Sources/Imaging/Filters/Transform/RotateBilinear.cs @@ -0,0 +1,274 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Rotate image using bilinear interpolation. + /// + /// + /// Rotation is performed in counterclockwise direction. + /// + /// The class implements image rotation filter using bilinear + /// interpolation algorithm. + /// + /// The filter accepts 8 bpp grayscale images and 24 bpp + /// color images for processing. + /// + /// Sample usage: + /// + /// // create filter - rotate for 30 degrees keeping original image size + /// RotateBilinear filter = new RotateBilinear( 30, true ); + /// // apply the filter + /// Bitmap newImage = filter.Apply( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + /// + /// + /// + public class RotateBilinear : BaseRotateFilter + { + // format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Rotation angle. + /// + /// This constructor sets property + /// to . + /// + /// + public RotateBilinear( double angle ) : + this( angle, false ) + { + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Rotation angle. + /// Keep image size or not. + /// + public RotateBilinear( double angle, bool keepSize ) : + base( angle, keepSize ) + { + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format8bppIndexed; + formatTranslations[PixelFormat.Format24bppRgb] = PixelFormat.Format24bppRgb; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Destination image data. + /// + protected override unsafe void ProcessFilter( UnmanagedImage sourceData, UnmanagedImage destinationData ) + { + // get source image size + int width = sourceData.Width; + int height = sourceData.Height; + double oldXradius = (double) ( width - 1 ) / 2; + double oldYradius = (double) ( height - 1 ) / 2; + + // get destination image size + int newWidth = destinationData.Width; + int newHeight = destinationData.Height; + double newXradius = (double) ( newWidth - 1 ) / 2; + double newYradius = (double) ( newHeight - 1 ) / 2; + + // angle's sine and cosine + double angleRad = -angle * Math.PI / 180; + double angleCos = Math.Cos( angleRad ); + double angleSin = Math.Sin( angleRad ); + + int srcStride = sourceData.Stride; + int dstOffset = destinationData.Stride - + ( ( destinationData.PixelFormat == PixelFormat.Format8bppIndexed ) ? newWidth : newWidth * 3 ); + + // fill values + byte fillR = fillColor.R; + byte fillG = fillColor.G; + byte fillB = fillColor.B; + + // do the job + byte* src = (byte*) sourceData.ImageData.ToPointer( ); + byte* dst = (byte*) destinationData.ImageData.ToPointer( ); + + // destination pixel's coordinate relative to image center + double cx, cy; + // coordinates of source points + double ox, oy, tx, ty, dx1, dy1, dx2, dy2; + int ox1, oy1, ox2, oy2; + // width and height decreased by 1 + int ymax = height - 1; + int xmax = width - 1; + // temporary pointers + byte* p1, p2, p3, p4; + + // check pixel format + if ( destinationData.PixelFormat == PixelFormat.Format8bppIndexed ) + { + // grayscale + cy = -newYradius; + for ( int y = 0; y < newHeight; y++ ) + { + // do some pre-calculations of source points' coordinates + // (calculate the part which depends on y-loop, but does not + // depend on x-loop) + tx = angleSin * cy + oldXradius; + ty = angleCos * cy + oldYradius; + + cx = -newXradius; + for ( int x = 0; x < newWidth; x++, dst++ ) + { + // coordinates of source point + ox = tx + angleCos * cx; + oy = ty - angleSin * cx; + + // top-left coordinate + ox1 = (int) ox; + oy1 = (int) oy; + + // validate source pixel's coordinates + if ( ( ox1 < 0 ) || ( oy1 < 0 ) || ( ox1 >= width ) || ( oy1 >= height ) ) + { + // fill destination image with filler + *dst = fillG; + } + else + { + // bottom-right coordinate + ox2 = ( ox1 == xmax ) ? ox1 : ox1 + 1; + oy2 = ( oy1 == ymax ) ? oy1 : oy1 + 1; + + if ( ( dx1 = ox - (double) ox1 ) < 0 ) + dx1 = 0; + dx2 = 1.0 - dx1; + + if ( ( dy1 = oy - (double) oy1 ) < 0 ) + dy1 = 0; + dy2 = 1.0 - dy1; + + p1 = src + oy1 * srcStride; + p2 = src + oy2 * srcStride; + + // interpolate using 4 points + *dst = (byte) ( + dy2 * ( dx2 * p1[ox1] + dx1 * p1[ox2] ) + + dy1 * ( dx2 * p2[ox1] + dx1 * p2[ox2] ) ); + } + cx++; + } + cy++; + dst += dstOffset; + } + } + else + { + // RGB + cy = -newYradius; + for ( int y = 0; y < newHeight; y++ ) + { + // do some pre-calculations of source points' coordinates + // (calculate the part which depends on y-loop, but does not + // depend on x-loop) + tx = angleSin * cy + oldXradius; + ty = angleCos * cy + oldYradius; + + cx = -newXradius; + for ( int x = 0; x < newWidth; x++, dst += 3 ) + { + // coordinates of source point + ox = tx + angleCos * cx; + oy = ty - angleSin * cx; + + // top-left coordinate + ox1 = (int) ox; + oy1 = (int) oy; + + // validate source pixel's coordinates + if ( ( ox1 < 0 ) || ( oy1 < 0 ) || ( ox1 >= width ) || ( oy1 >= height ) ) + { + // fill destination image with filler + dst[RGB.R] = fillR; + dst[RGB.G] = fillG; + dst[RGB.B] = fillB; + } + else + { + // bottom-right coordinate + ox2 = ( ox1 == xmax ) ? ox1 : ox1 + 1; + oy2 = ( oy1 == ymax ) ? oy1 : oy1 + 1; + + if ( ( dx1 = ox - (float) ox1 ) < 0 ) + dx1 = 0; + dx2 = 1.0f - dx1; + + if ( ( dy1 = oy - (float) oy1 ) < 0 ) + dy1 = 0; + dy2 = 1.0f - dy1; + + // get four points + p1 = p2 = src + oy1 * srcStride; + p1 += ox1 * 3; + p2 += ox2 * 3; + + p3 = p4 = src + oy2 * srcStride; + p3 += ox1 * 3; + p4 += ox2 * 3; + + // interpolate using 4 points + + // red + dst[RGB.R] = (byte) ( + dy2 * ( dx2 * p1[RGB.R] + dx1 * p2[RGB.R] ) + + dy1 * ( dx2 * p3[RGB.R] + dx1 * p4[RGB.R] ) ); + + // green + dst[RGB.G] = (byte) ( + dy2 * ( dx2 * p1[RGB.G] + dx1 * p2[RGB.G] ) + + dy1 * ( dx2 * p3[RGB.G] + dx1 * p4[RGB.G] ) ); + + // blue + dst[RGB.B] = (byte) ( + dy2 * ( dx2 * p1[RGB.B] + dx1 * p2[RGB.B] ) + + dy1 * ( dx2 * p3[RGB.B] + dx1 * p4[RGB.B] ) ); + } + cx++; + } + cy++; + dst += dstOffset; + } + } + } + } +} diff --git a/Sources/Imaging/Filters/Transform/RotateNearestNeighbor.cs b/Sources/Imaging/Filters/Transform/RotateNearestNeighbor.cs new file mode 100644 index 00000000..c2ab9e83 --- /dev/null +++ b/Sources/Imaging/Filters/Transform/RotateNearestNeighbor.cs @@ -0,0 +1,333 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Rotate image using nearest neighbor algorithm. + /// + /// + /// The class implements image rotation filter using nearest + /// neighbor algorithm, which does not assume any interpolation. + /// + /// Rotation is performed in counterclockwise direction. + /// + /// The filter accepts 8/16 bpp grayscale images and 24/48 bpp color image + /// for processing. + /// + /// Sample usage: + /// + /// // create filter - rotate for 30 degrees keeping original image size + /// RotateNearestNeighbor filter = new RotateNearestNeighbor( 30, true ); + /// // apply the filter + /// Bitmap newImage = filter.Apply( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + /// + /// + /// + public class RotateNearestNeighbor : BaseRotateFilter + { + // format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Rotation angle. + /// + /// This constructor sets property to + /// . + /// + /// + public RotateNearestNeighbor( double angle ) : + this( angle, false ) + { + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Rotation angle. + /// Keep image size or not. + /// + public RotateNearestNeighbor( double angle, bool keepSize ) : + base( angle, keepSize ) + { + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format8bppIndexed; + formatTranslations[PixelFormat.Format24bppRgb] = PixelFormat.Format24bppRgb; + formatTranslations[PixelFormat.Format16bppGrayScale] = PixelFormat.Format16bppGrayScale; + formatTranslations[PixelFormat.Format48bppRgb] = PixelFormat.Format48bppRgb; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Destination image data. + /// + protected override void ProcessFilter( UnmanagedImage sourceData, UnmanagedImage destinationData ) + { + int pixelSize = Bitmap.GetPixelFormatSize( sourceData.PixelFormat ) / 8; + + switch ( pixelSize ) + { + case 1: + case 3: + ProcessFilter8bpc( sourceData, destinationData ); + break; + case 2: + case 6: + ProcessFilter16bpc( sourceData, destinationData ); + break; + } + } + + // Process the filter on the image with 8 bits per color channel + private unsafe void ProcessFilter8bpc( UnmanagedImage sourceData, UnmanagedImage destinationData ) + { + // get source image size + int width = sourceData.Width; + int height = sourceData.Height; + double oldXradius = (double) ( width - 1 ) / 2; + double oldYradius = (double) ( height - 1 ) / 2; + + // get destination image size + int newWidth = destinationData.Width; + int newHeight = destinationData.Height; + double newXradius = (double) ( newWidth - 1 ) / 2; + double newYradius = (double) ( newHeight - 1 ) / 2; + + // angle's sine and cosine + double angleRad = -angle * Math.PI / 180; + double angleCos = Math.Cos( angleRad ); + double angleSin = Math.Sin( angleRad ); + + int srcStride = sourceData.Stride; + int dstOffset = destinationData.Stride - + ( ( destinationData.PixelFormat == PixelFormat.Format8bppIndexed ) ? newWidth : newWidth * 3 ); + + // fill values + byte fillR = fillColor.R; + byte fillG = fillColor.G; + byte fillB = fillColor.B; + + // do the job + byte* src = (byte*) sourceData.ImageData.ToPointer( ); + byte* dst = (byte*) destinationData.ImageData.ToPointer( ); + + // destination pixel's coordinate relative to image center + double cx, cy; + // source pixel's coordinates + int ox, oy; + // temporary pointer + byte* p; + + // check pixel format + if ( destinationData.PixelFormat == PixelFormat.Format8bppIndexed ) + { + // grayscale + cy = -newYradius; + for ( int y = 0; y < newHeight; y++ ) + { + cx = -newXradius; + for ( int x = 0; x < newWidth; x++, dst++ ) + { + // coordinate of the nearest point + ox = (int) ( angleCos * cx + angleSin * cy + oldXradius ); + oy = (int) ( -angleSin * cx + angleCos * cy + oldYradius ); + + // validate source pixel's coordinates + if ( ( ox < 0 ) || ( oy < 0 ) || ( ox >= width ) || ( oy >= height ) ) + { + // fill destination image with filler + *dst = fillG; + } + else + { + // fill destination image with pixel from source image + *dst = src[oy * srcStride + ox]; + } + cx++; + } + cy++; + dst += dstOffset; + } + } + else + { + // RGB + cy = -newYradius; + for ( int y = 0; y < newHeight; y++ ) + { + cx = -newXradius; + for ( int x = 0; x < newWidth; x++, dst += 3 ) + { + // coordinate of the nearest point + ox = (int) ( angleCos * cx + angleSin * cy + oldXradius ); + oy = (int) ( -angleSin * cx + angleCos * cy + oldYradius ); + + // validate source pixel's coordinates + if ( ( ox < 0 ) || ( oy < 0 ) || ( ox >= width ) || ( oy >= height ) ) + { + // fill destination image with filler + dst[RGB.R] = fillR; + dst[RGB.G] = fillG; + dst[RGB.B] = fillB; + } + else + { + // fill destination image with pixel from source image + p = src + oy * srcStride + ox * 3; + + dst[RGB.R] = p[RGB.R]; + dst[RGB.G] = p[RGB.G]; + dst[RGB.B] = p[RGB.B]; + } + cx++; + } + cy++; + dst += dstOffset; + } + } + } + + // Process the filter on the image with 16 bits per color channel. + private unsafe void ProcessFilter16bpc( UnmanagedImage sourceData, UnmanagedImage destinationData ) + { + // get source image size + int width = sourceData.Width; + int height = sourceData.Height; + double halfWidth = (double) width / 2; + double halfHeight = (double) height / 2; + + // get destination image size + int newWidth = destinationData.Width; + int newHeight = destinationData.Height; + double halfNewWidth = (double) newWidth / 2; + double halfNewHeight = (double) newHeight / 2; + + // angle's sine and cosine + double angleRad = -angle * Math.PI / 180; + double angleCos = Math.Cos( angleRad ); + double angleSin = Math.Sin( angleRad ); + + int srcStride = sourceData.Stride; + int dstStride = destinationData.Stride; + + // fill values + ushort fillR = (ushort) ( fillColor.R << 8 ); + ushort fillG = (ushort) ( fillColor.G << 8 ); + ushort fillB = (ushort) ( fillColor.B << 8 ); + + // do the job + byte* src = (byte*) sourceData.ImageData.ToPointer( ); + byte* dstBase = (byte*) destinationData.ImageData.ToPointer( ); + + // destination pixel's coordinate relative to image center + double cx, cy; + // source pixel's coordinates + int ox, oy; + // temporary pointer + ushort* p; + + // check pixel format + if ( destinationData.PixelFormat == PixelFormat.Format16bppGrayScale ) + { + // grayscale + cy = -halfNewHeight; + for ( int y = 0; y < newHeight; y++ ) + { + ushort* dst = (ushort*) ( dstBase + y * dstStride ); + + cx = -halfNewWidth; + for ( int x = 0; x < newWidth; x++, dst++ ) + { + // coordinate of the nearest point + ox = (int) ( angleCos * cx + angleSin * cy + halfWidth ); + oy = (int) ( -angleSin * cx + angleCos * cy + halfHeight ); + + // validate source pixel's coordinates + if ( ( ox < 0 ) || ( oy < 0 ) || ( ox >= width ) || ( oy >= height ) ) + { + // fill destination image with filler + *dst = fillG; + } + else + { + // fill destination image with pixel from source image + p = (ushort*) ( src + oy * srcStride + ox * 2 ); + *dst = *p; + } + cx++; + } + cy++; + } + } + else + { + // RGB + cy = -halfNewHeight; + for ( int y = 0; y < newHeight; y++ ) + { + ushort* dst = (ushort*) ( dstBase + y * dstStride ); + + cx = -halfNewWidth; + for ( int x = 0; x < newWidth; x++, dst += 3 ) + { + // coordinate of the nearest point + ox = (int) ( angleCos * cx + angleSin * cy + halfWidth ); + oy = (int) ( -angleSin * cx + angleCos * cy + halfHeight ); + + // validate source pixel's coordinates + if ( ( ox < 0 ) || ( oy < 0 ) || ( ox >= width ) || ( oy >= height ) ) + { + // fill destination image with filler + dst[RGB.R] = fillR; + dst[RGB.G] = fillG; + dst[RGB.B] = fillB; + } + else + { + // fill destination image with pixel from source image + p = (ushort*) ( src + oy * srcStride + ox * 6 ); + + dst[RGB.R] = p[RGB.R]; + dst[RGB.G] = p[RGB.G]; + dst[RGB.B] = p[RGB.B]; + } + cx++; + } + cy++; + } + } + } + } +} diff --git a/Sources/Imaging/Filters/Transform/Shrink.cs b/Sources/Imaging/Filters/Transform/Shrink.cs new file mode 100644 index 00000000..245566fb --- /dev/null +++ b/Sources/Imaging/Filters/Transform/Shrink.cs @@ -0,0 +1,217 @@ +// AForge Image Processing Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2005-2008 +// andrew.kirillov@gmail.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Shrink an image by removing specified color from its boundaries. + /// + /// + /// Removes pixels with specified color from image boundaries making + /// the image smaller in size. + /// + /// The filter accepts 8 bpp grayscale and 24 bpp color images for processing. + /// + /// Sample usage: + /// + /// // create filter + /// Shrink filter = new Shrink( Color.Black ); + /// // apply the filter + /// Bitmap newImage = filter.Apply( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + public class Shrink : BaseTransformationFilter + { + private Color colorToRemove = Color.FromArgb( 0, 0, 0 ); + // top-left coordinates of the object (calculated by CalculateNewImageSize()) + private int minX, minY; + + // format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Color to remove from boundaries. + /// + /// + public Color ColorToRemove + { + get { return colorToRemove; } + set { colorToRemove = value; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public Shrink( ) + { + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format8bppIndexed; + formatTranslations[PixelFormat.Format24bppRgb] = PixelFormat.Format24bppRgb; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Color to remove from boundaries. + /// + public Shrink( Color colorToRemove ) : this( ) + { + this.colorToRemove = colorToRemove; + } + + /// + /// Calculates new image size. + /// + /// + /// Source image data. + /// + /// New image size - size of the destination image. + /// + protected override System.Drawing.Size CalculateNewImageSize( UnmanagedImage sourceData ) + { + // get source image size + int width = sourceData.Width; + int height = sourceData.Height; + int offset = sourceData.Stride - + ( ( sourceData.PixelFormat == PixelFormat.Format8bppIndexed ) ? width : width * 3 ); + + // color to remove + byte r = colorToRemove.R; + byte g = colorToRemove.G; + byte b = colorToRemove.B; + + minX = width; + minY = height; + int maxX = 0; + int maxY = 0; + + // find rectangle which contains something except color to remove + unsafe + { + byte* src = (byte*) sourceData.ImageData.ToPointer( ); + + if ( sourceData.PixelFormat == PixelFormat.Format8bppIndexed ) + { + // grayscale + for ( int y = 0; y < height; y++ ) + { + for ( int x = 0; x < width; x++, src++ ) + { + if ( *src != g ) + { + if ( x < minX ) + minX = x; + if ( x > maxX ) + maxX = x; + if ( y < minY ) + minY = y; + if ( y > maxY ) + maxY = y; + } + } + src += offset; + } + } + else + { + // RGB + for ( int y = 0; y < height; y++ ) + { + for ( int x = 0; x < width; x++, src += 3 ) + { + if ( + ( src[RGB.R] != r ) || + ( src[RGB.G] != g ) || + ( src[RGB.B] != b ) ) + { + if ( x < minX ) + minX = x; + if ( x > maxX ) + maxX = x; + if ( y < minY ) + minY = y; + if ( y > maxY ) + maxY = y; + } + } + src += offset; + } + } + } + + // check + if ( ( minX == width ) && ( minY == height ) && ( maxX == 0 ) && ( maxY == 0 ) ) + { + minX = minY = 0; + } + + return new Size( maxX - minX + 1, maxY - minY + 1 ); + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Destination image data. + /// + protected override unsafe void ProcessFilter( UnmanagedImage sourceData, UnmanagedImage destinationData ) + { + // get destination image size + int newWidth = destinationData.Width; + int newHeight = destinationData.Height; + + int srcStride = sourceData.Stride; + int dstStride = destinationData.Stride; + int copySize = newWidth; + + // do the job + byte* src = (byte*) sourceData.ImageData.ToPointer( ); + byte* dst = (byte*) destinationData.ImageData.ToPointer( ); + + src += ( minY * srcStride ); + + if ( destinationData.PixelFormat == PixelFormat.Format8bppIndexed ) + { + src += minX; + } + else + { + src += minX * 3; + copySize *= 3; + } + + // copy image + for ( int y = 0; y < newHeight; y++ ) + { + AForge.SystemTools.CopyUnmanagedMemory( dst, src, copySize ); + dst += dstStride; + src += srcStride; + } + } + } +} diff --git a/Sources/Imaging/Filters/Transform/SimpleQuadrilateralTransformation.cs b/Sources/Imaging/Filters/Transform/SimpleQuadrilateralTransformation.cs new file mode 100644 index 00000000..50a2aa4e --- /dev/null +++ b/Sources/Imaging/Filters/Transform/SimpleQuadrilateralTransformation.cs @@ -0,0 +1,498 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2007-2010 +// andrew.kirillov@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + using AForge; + + /// + /// Performs quadrilateral transformation of an area in the source image. + /// + /// + /// The class implements simple algorithm described by + /// Olivier Thill + /// for transforming quadrilateral area from a source image into rectangular image. + /// The idea of the algorithm is based on finding for each line of destination + /// rectangular image a corresponding line connecting "left" and "right" sides of + /// quadrilateral in a source image. Then the line is linearly transformed into the + /// line in destination image. + /// + /// Due to simplicity of the algorithm it does not do any correction for perspective. + /// + /// + /// To make sure the algorithm works correctly, it is preferred if the + /// "left-top" corner of the quadrilateral (screen coordinates system) is + /// specified first in the list of quadrilateral's corners. At least + /// user need to make sure that the "left" side (side connecting first and the last + /// corner) and the "right" side (side connecting second and third corners) are + /// not horizontal. + /// + /// Use to avoid the above mentioned limitations, + /// which is a more advanced quadrilateral transformation algorithms (although a bit more + /// computationally expensive). + /// + /// The image processing filter accepts 8 grayscale images and 24/32 bpp + /// color images for processing. + /// + /// Sample usage: + /// + /// // define quadrilateral's corners + /// List<IntPoint> corners = new List<IntPoint>( ); + /// corners.Add( new IntPoint( 99, 99 ) ); + /// corners.Add( new IntPoint( 156, 79 ) ); + /// corners.Add( new IntPoint( 184, 126 ) ); + /// corners.Add( new IntPoint( 122, 150 ) ); + /// // create filter + /// SimpleQuadrilateralTransformation filter = + /// new SimpleQuadrilateralTransformation( corners, 200, 200 ); + /// // apply the filter + /// Bitmap newImage = filter.Apply( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + /// + /// + public class SimpleQuadrilateralTransformation : BaseTransformationFilter + { + private bool automaticSizeCalculaton = true; + private bool useInterpolation = true; + + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + /// + /// See + /// documentation for additional information. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// New image width. + /// + protected int newWidth; + + /// + /// New image height. + /// + protected int newHeight; + + /// + /// Automatic calculation of destination image or not. + /// + /// + /// The property specifies how to calculate size of destination (transformed) + /// image. If the property is set to , then + /// and properties have effect and destination image's size is + /// specified by user. If the property is set to , then setting the above + /// mentioned properties does not have any effect, but destionation image's size is + /// automatically calculated from property - width and height + /// come from length of longest edges. + /// + /// + /// Default value is set to . + /// + /// + public bool AutomaticSizeCalculaton + { + get { return automaticSizeCalculaton; } + set + { + automaticSizeCalculaton = value; + if ( value ) + { + CalculateDestinationSize( ); + } + } + } + + // Quadrilateral's corners in source image. + private List sourceQuadrilateral; + + /// + /// Quadrilateral's corners in source image. + /// + /// + /// The property specifies four corners of the quadrilateral area + /// in the source image to be transformed. + /// + /// See documentation to the + /// class itself for additional information. + /// + /// + public List SourceQuadrilateral + { + get { return sourceQuadrilateral; } + set + { + sourceQuadrilateral = value; + if ( automaticSizeCalculaton ) + { + CalculateDestinationSize( ); + } + } + } + + /// + /// Width of the new transformed image. + /// + /// + /// The property defines width of the destination image, which gets + /// transformed quadrilateral image. + /// + /// Setting the property does not have any effect, if + /// property is set to . In this case destination image's width + /// is calculated automatically based on property. + /// + /// + public int NewWidth + { + get { return newWidth; } + set + { + if ( !automaticSizeCalculaton ) + { + newWidth = Math.Max( 1, value ); + } + } + } + + /// + /// Height of the new transformed image. + /// + /// + /// The property defines height of the destination image, which gets + /// transformed quadrilateral image. + /// + /// Setting the property does not have any effect, if + /// property is set to . In this case destination image's height + /// is calculated automatically based on property. + /// + /// + public int NewHeight + { + get { return newHeight; } + set + { + if ( !automaticSizeCalculaton ) + { + newHeight = Math.Max( 1, value ); + } + } + } + + /// + /// Specifies if bilinear interpolation should be used or not. + /// + /// + /// Default value is set to - interpolation + /// is used. + /// + /// + public bool UseInterpolation + { + get { return useInterpolation; } + set { useInterpolation = value; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public SimpleQuadrilateralTransformation( ) + { + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format8bppIndexed; + formatTranslations[PixelFormat.Format24bppRgb] = PixelFormat.Format24bppRgb; + formatTranslations[PixelFormat.Format32bppRgb] = PixelFormat.Format32bppRgb; + formatTranslations[PixelFormat.Format32bppArgb] = PixelFormat.Format32bppArgb; + formatTranslations[PixelFormat.Format32bppPArgb] = PixelFormat.Format32bppPArgb; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Corners of the source quadrilateral area. + /// Width of the new transformed image. + /// Height of the new transformed image. + /// + /// This constructor sets to + /// , which means that destination image will have width and + /// height as specified by user. + /// + public SimpleQuadrilateralTransformation( List sourceQuadrilateral, int newWidth, int newHeight ) + : this( ) + { + this.automaticSizeCalculaton = false; + this.sourceQuadrilateral = sourceQuadrilateral; + this.newWidth = newWidth; + this.newHeight = newHeight; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Corners of the source quadrilateral area. + /// + /// This constructor sets to + /// , which means that destination image will have width and + /// height automatically calculated based on property. + /// + public SimpleQuadrilateralTransformation( List sourceQuadrilateral ) + : this( ) + { + this.automaticSizeCalculaton = true; + this.sourceQuadrilateral = sourceQuadrilateral; + CalculateDestinationSize( ); + } + + /// + /// Calculates new image size. + /// + /// + /// Source image data. + /// + /// New image size - size of the destination image. + /// + /// Source quadrilateral was not set. + /// + protected override System.Drawing.Size CalculateNewImageSize( UnmanagedImage sourceData ) + { + if ( sourceQuadrilateral == null ) + throw new NullReferenceException( "Source quadrilateral was not set." ); + + return new Size( newWidth, newHeight ); + } + + // Calculates size of destination image + private void CalculateDestinationSize( ) + { + if ( sourceQuadrilateral == null ) + throw new NullReferenceException( "Source quadrilateral was not set." ); + + newWidth = (int) Math.Max( sourceQuadrilateral[0].DistanceTo( sourceQuadrilateral[1] ), + sourceQuadrilateral[2].DistanceTo( sourceQuadrilateral[3] ) ); + newHeight = (int) Math.Max( sourceQuadrilateral[1].DistanceTo( sourceQuadrilateral[2] ), + sourceQuadrilateral[3].DistanceTo( sourceQuadrilateral[0] ) ); + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Destination image data. + /// + protected override unsafe void ProcessFilter( UnmanagedImage sourceData, UnmanagedImage destinationData ) + { + // get source and destination images size + int srcWidth = sourceData.Width; + int srcHeight = sourceData.Height; + int dstWidth = destinationData.Width; + int dstHeight = destinationData.Height; + + int pixelSize = Image.GetPixelFormatSize( sourceData.PixelFormat ) / 8; + int srcStride = sourceData.Stride; + int dstStride = destinationData.Stride; + + // find equations of four quadrilateral's edges ( f(x) = k*x + b ) + double kTop, bTop; + double kBottom, bBottom; + double kLeft, bLeft; + double kRight, bRight; + + // top edge + if ( sourceQuadrilateral[1].X == sourceQuadrilateral[0].X ) + { + kTop = 0; + bTop = sourceQuadrilateral[1].X; + } + else + { + kTop = (double) ( sourceQuadrilateral[1].Y - sourceQuadrilateral[0].Y ) / + ( sourceQuadrilateral[1].X - sourceQuadrilateral[0].X ); + bTop = (double) sourceQuadrilateral[0].Y - kTop * sourceQuadrilateral[0].X; + } + + // bottom edge + if ( sourceQuadrilateral[2].X == sourceQuadrilateral[3].X ) + { + kBottom = 0; + bBottom = sourceQuadrilateral[2].X; + } + else + { + kBottom = (double) ( sourceQuadrilateral[2].Y - sourceQuadrilateral[3].Y ) / + ( sourceQuadrilateral[2].X - sourceQuadrilateral[3].X ); + bBottom = (double) sourceQuadrilateral[3].Y - kBottom * sourceQuadrilateral[3].X; + } + + // left edge + if ( sourceQuadrilateral[3].X == sourceQuadrilateral[0].X ) + { + kLeft = 0; + bLeft = sourceQuadrilateral[3].X; + } + else + { + kLeft = (double) ( sourceQuadrilateral[3].Y - sourceQuadrilateral[0].Y ) / + ( sourceQuadrilateral[3].X - sourceQuadrilateral[0].X ); + bLeft = (double) sourceQuadrilateral[0].Y - kLeft * sourceQuadrilateral[0].X; + } + + // right edge + if ( sourceQuadrilateral[2].X == sourceQuadrilateral[1].X ) + { + kRight = 0; + bRight = sourceQuadrilateral[2].X; + } + else + { + kRight = (double) ( sourceQuadrilateral[2].Y - sourceQuadrilateral[1].Y ) / + ( sourceQuadrilateral[2].X - sourceQuadrilateral[1].X ); + bRight = (double) sourceQuadrilateral[1].Y - kRight * sourceQuadrilateral[1].X; + } + + // some precalculated values + double leftFactor = (double) ( sourceQuadrilateral[3].Y - sourceQuadrilateral[0].Y ) / dstHeight; + double rightFactor = (double) ( sourceQuadrilateral[2].Y - sourceQuadrilateral[1].Y ) / dstHeight; + + int srcY0 = sourceQuadrilateral[0].Y; + int srcY1 = sourceQuadrilateral[1].Y; + + // do the job + byte* baseSrc = (byte*) sourceData.ImageData.ToPointer( ); + byte* baseDst = (byte*) destinationData.ImageData.ToPointer( ); + + // source width and height decreased by 1 + int ymax = srcHeight - 1; + int xmax = srcWidth - 1; + + // coordinates of source points + double dx1, dy1, dx2, dy2; + int sx1, sy1, sx2, sy2; + + // temporary pointers + byte* p1, p2, p3, p4, p; + + // for each line + for ( int y = 0; y < dstHeight; y++ ) + { + byte* dst = baseDst + dstStride * y; + + // find corresponding Y on the left edge of the quadrilateral + double yHorizLeft = leftFactor * y + srcY0; + // find corresponding X on the left edge of the quadrilateral + double xHorizLeft = ( kLeft == 0 ) ? bLeft : ( yHorizLeft - bLeft ) / kLeft; + + // find corresponding Y on the right edge of the quadrilateral + double yHorizRight = rightFactor * y + srcY1; + // find corresponding X on the left edge of the quadrilateral + double xHorizRight = ( kRight == 0 ) ? bRight : ( yHorizRight - bRight ) / kRight; + + // find equation of the line joining points on the left and right edges + double kHoriz, bHoriz; + + if ( xHorizLeft == xHorizRight ) + { + kHoriz = 0; + bHoriz = xHorizRight; + } + else + { + kHoriz = ( yHorizRight - yHorizLeft ) / ( xHorizRight - xHorizLeft ); + bHoriz = yHorizLeft - kHoriz * xHorizLeft; + } + + double horizFactor = ( xHorizRight - xHorizLeft ) / dstWidth; + + if ( !useInterpolation ) + { + for ( int x = 0; x < dstWidth; x++ ) + { + double xs = horizFactor * x + xHorizLeft; + double ys = kHoriz * xs + bHoriz; + + if ( ( xs >= 0 ) && ( ys >= 0 ) && ( xs < srcWidth ) && ( ys < srcHeight ) ) + { + // get pointer to the pixel in the source image + p = baseSrc + ( (int) ys * srcStride + (int) xs * pixelSize ); + // copy pixel's values + for ( int i = 0; i < pixelSize; i++, dst++, p++ ) + { + *dst = *p; + } + } + else + { + dst += pixelSize; + } + } + } + else + { + for ( int x = 0; x < dstWidth; x++ ) + { + double xs = horizFactor * x + xHorizLeft; + double ys = kHoriz * xs + bHoriz; + + if ( ( xs >= 0 ) && ( ys >= 0 ) && ( xs < srcWidth ) && ( ys < srcHeight ) ) + { + sx1 = (int) xs; + sx2 = ( sx1 == xmax ) ? sx1 : sx1 + 1; + dx1 = xs - sx1; + dx2 = 1.0 - dx1; + + sy1 = (int) ys; + sy2 = ( sy1 == ymax ) ? sy1 : sy1 + 1; + dy1 = ys - sy1; + dy2 = 1.0 - dy1; + + // get four points + p1 = p2 = baseSrc + sy1 * srcStride; + p1 += sx1 * pixelSize; + p2 += sx2 * pixelSize; + + p3 = p4 = baseSrc + sy2 * srcStride; + p3 += sx1 * pixelSize; + p4 += sx2 * pixelSize; + + // interpolate using 4 points + for ( int i = 0; i < pixelSize; i++, dst++, p1++, p2++, p3++, p4++ ) + { + *dst = (byte) ( + dy2 * ( dx2 * ( *p1 ) + dx1 * ( *p2 ) ) + + dy1 * ( dx2 * ( *p3 ) + dx1 * ( *p4 ) ) ); + } + } + else + { + dst += pixelSize; + } + } + } + } + } + } +} diff --git a/Sources/Imaging/Filters/Transform/TransformFromPolar.cs b/Sources/Imaging/Filters/Transform/TransformFromPolar.cs new file mode 100644 index 00000000..2b2ba0f6 --- /dev/null +++ b/Sources/Imaging/Filters/Transform/TransformFromPolar.cs @@ -0,0 +1,346 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2010 +// contacts@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Transform polar image into rectangle. + /// + /// + /// The image processing routine is oposite transformation to the one done by + /// routine, i.e. transformation from polar image into rectangle. The produced effect is similar to GIMP's + /// "Polar Coordinates" distortion filter (or its equivalent in Photoshop). + /// + /// The filter accepts 8 bpp grayscale and 24/32 bpp color images for processing. + /// + /// Sample usage: + /// + /// // create filter + /// TransformFromPolar filter = new TransformFromPolar( ); + /// filter.OffsetAngle = 0; + /// filter.CirlceDepth = 1; + /// filter.UseOriginalImageSize = false; + /// filter.NewSize = new Size( 360, 120 ); + /// // apply the filter + /// Bitmap newImage = filter.Apply( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + /// + /// + public class TransformFromPolar : BaseTransformationFilter + { + private const double Pi2 = Math.PI * 2; + private const double PiHalf = Math.PI / 2; + + private double circleDepth = 1.0; + + /// + /// Circularity coefficient of the mapping, [0, 1]. + /// + /// + /// The property specifies circularity coefficient of the mapping to be done. + /// If the coefficient is set to 1, then destination image will be produced by mapping + /// ideal circle from the source image, which is placed in source image's centre and its + /// radius equals to the minimum distance from centre to the image’s edge. If the coefficient + /// is set to 0, then the mapping will use entire area of the source image (circle will + /// be extended into direction of edges). Changing the property from 0 to 1 user may balance + /// circularity of the produced output. + /// + /// Default value is set to 1. + /// + /// + public double CirlceDepth + { + get { return circleDepth; } + set { circleDepth = Math.Max( 0, Math.Min( 1, value ) ); } + } + + + private double offsetAngle = 0; + + /// + /// Offset angle used to shift mapping, [-360, 360] degrees. + /// + /// + /// The property specifies offset angle, which can be used to shift + /// mapping in clockwise direction. For example, if user sets this property to 30, then + /// start of polar mapping is shifted by 30 degrees in clockwise direction. + /// + /// Default value is set to 0. + /// + /// + public double OffsetAngle + { + get { return offsetAngle; } + set { offsetAngle = Math.Max( -360, Math.Min( 360, value ) ); } + } + + private bool mapBackwards = false; + + /// + /// Specifies direction of mapping. + /// + /// + /// The property specifies direction of mapping source image. If the + /// property is set to , the image is mapped in clockwise direction; + /// otherwise in counter clockwise direction. + /// + /// Default value is set to . + /// + /// + public bool MapBackwards + { + get { return mapBackwards; } + set { mapBackwards = value; } + } + + private bool mapFromTop = true; + + /// + /// Specifies if centre of the source image should to top or bottom of the result image. + /// + /// + /// The property specifies position of the source image's centre in the destination image. + /// If the property is set to , then it goes to the top of the result image; + /// otherwise it goes to the bottom. + /// + /// Default value is set to . + /// + /// + public bool MapFromTop + { + get { return mapFromTop; } + set { mapFromTop = value; } + } + + private Size newSize = new Size( 200, 200 ); + private bool useOriginalImageSize = true; + + /// + /// Size of destination image. + /// + /// + /// The property specifies size of result image produced by this image + /// processing routine in the case if property + /// is set to . + /// + /// Both width and height must be in the [1, 10000] range. + /// + /// Default value is set to 200 x 200. + /// + /// + public Size NewSize + { + get { return newSize; } + set + { + newSize = new Size( + Math.Max( 1, Math.Min( 10000, value.Width ) ), + Math.Max( 1, Math.Min( 10000, value.Height ) ) ); + } + } + + /// + /// Use source image size for destination or not. + /// + /// + /// The property specifies if the image processing routine should create destination + /// image of the same size as original image or of the size specified by + /// property. + /// + /// Default value is set to . + /// + /// + public bool UseOriginalImageSize + { + get { return useOriginalImageSize; } + set { useOriginalImageSize = value; } + } + + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + /// + /// See + /// documentation for additional information. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public TransformFromPolar( ) + { + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format8bppIndexed; + formatTranslations[PixelFormat.Format24bppRgb] = PixelFormat.Format24bppRgb; + formatTranslations[PixelFormat.Format32bppRgb] = PixelFormat.Format32bppRgb; + formatTranslations[PixelFormat.Format32bppArgb] = PixelFormat.Format32bppArgb; + formatTranslations[PixelFormat.Format32bppPArgb] = PixelFormat.Format32bppPArgb; + } + + /// + /// Calculates new image size. + /// + /// + /// Source image data. + /// + /// New image size - size of the destination image. + /// + protected override System.Drawing.Size CalculateNewImageSize( UnmanagedImage sourceData ) + { + return ( useOriginalImageSize ) ? new Size( sourceData.Width, sourceData.Height ) : newSize; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Destination image data. + /// + protected override unsafe void ProcessFilter( UnmanagedImage sourceData, UnmanagedImage destinationData ) + { + int pixelSize = Bitmap.GetPixelFormatSize( destinationData.PixelFormat ) / 8; + + // get source image size + int width = sourceData.Width; + int height = sourceData.Height; + int widthM1 = width - 1; + int heightM1 = height - 1; + + // get destination image size + int newWidth = destinationData.Width; + int newHeight = destinationData.Height; + int newWidthM1 = newWidth - 1; + int newHeightM1 = newHeight - 1; + + // invert cirlce depth + double circleDisform = 1 - circleDepth; + + // get position of center pixel + double cx = (double) widthM1 / 2; + double cy = (double) heightM1 / 2; + double radius = ( cx < cy ) ? cx : cy; + radius -= radius * circleDisform; + + // angle of the diagonal + double diagonalAngle = Math.Atan2( cy, cx ); + + // offset angle in radians + double offsetAngleR = ( ( mapBackwards ) ? offsetAngle : -offsetAngle ) / 180 * Math.PI + PiHalf; + + // do the job + byte* baseSrc = (byte*) sourceData.ImageData.ToPointer( ); + byte* dst = (byte*) destinationData.ImageData.ToPointer( ); + + int srcStride = sourceData.Stride; + int dstOffset = destinationData.Stride - newWidth * pixelSize; + + // coordinates of source points + int sx1, sy1, sx2, sy2; + double dx1, dy1, dx2, dy2; + + // temporary pointers + byte* p1, p2, p3, p4; + + // precalculate Sin/Cos values and distances from center to edge in the source image + double[] angleCos = new double[newWidth]; + double[] angleSin = new double[newWidth]; + double[] maxDistance = new double[newWidth]; + + for ( int x = 0; x < newWidth; x++ ) + { + double angle = -Pi2 * x / newWidth + offsetAngleR; + + angleCos[x] = Math.Cos( angle ); + angleSin[x] = Math.Sin( angle ); + + // calculate minimum angle between X axis and the + // line with the above calculated angle + double oxAngle = ( ( angle > 0 ) ? angle : -angle ) % Math.PI; + if ( oxAngle > PiHalf ) + { + oxAngle = Math.PI - oxAngle; + } + + // calculate maximm distance from center for this angle - distance to image's edge + maxDistance[x] = circleDisform * ( ( oxAngle > diagonalAngle ) ? ( cy / Math.Sin( oxAngle ) ) : ( cx / Math.Cos( oxAngle ) ) ); + } + + for ( int y = 0; y < newHeight; y++ ) + { + double yPart = (double) y / newHeightM1; + + if ( !mapFromTop ) + { + yPart = 1 - yPart; + } + + for ( int x = 0; x < newWidth; x++ ) + { + // calculate maximum allowed distance within wich we need to map Y axis of the destination image + double maxAllowedDistance = radius + maxDistance[x]; + + // source pixel's distance from the center of the source image + double distance = yPart * maxAllowedDistance; + + // calculate pixel coordinates in the source image + double sx = cx + distance * ( ( mapBackwards ) ? -angleCos[x] : angleCos[x] ); + double sy = cy - distance * angleSin[x]; + + sx1 = (int) sx; + sy1 = (int) sy; + + sx2 = ( sx1 == widthM1 ) ? sx1 : sx1 + 1; + dx1 = sx - sx1; + dx2 = 1.0 - dx1; + + sy2 = ( sy1 == heightM1 ) ? sy1 : sy1 + 1; + dy1 = sy - sy1; + dy2 = 1.0 - dy1; + + // get four points + p1 = p2 = baseSrc + sy1 * srcStride; + p1 += sx1 * pixelSize; + p2 += sx2 * pixelSize; + + p3 = p4 = baseSrc + sy2 * srcStride; + p3 += sx1 * pixelSize; + p4 += sx2 * pixelSize; + + // interpolate using 4 points + for ( int i = 0; i < pixelSize; i++, dst++, p1++, p2++, p3++, p4++ ) + { + *dst = (byte) ( + dy2 * ( dx2 * ( *p1 ) + dx1 * ( *p2 ) ) + + dy1 * ( dx2 * ( *p3 ) + dx1 * ( *p4 ) ) ); + } + } + dst += dstOffset; + } + } + } +} diff --git a/Sources/Imaging/Filters/Transform/TransformToPolar.cs b/Sources/Imaging/Filters/Transform/TransformToPolar.cs new file mode 100644 index 00000000..eec290e8 --- /dev/null +++ b/Sources/Imaging/Filters/Transform/TransformToPolar.cs @@ -0,0 +1,406 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2010 +// contacts@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Transform rectangle image into circle (to polar coordinates). + /// + /// + /// The image processing routine does transformation of the source image into + /// circle (polar transformation). The produced effect is similar to GIMP's "Polar Coordinates" + /// distortion filter (or its equivalent in Photoshop). + /// + /// + /// The filter accepts 8 bpp grayscale and 24/32 bpp color images for processing. + /// + /// Sample usage: + /// + /// // create filter + /// TransformToPolar filter = new TransformToPolar( ); + /// filter.OffsetAngle = 0; + /// filter.CirlceDepth = 1; + /// filter.UseOriginalImageSize = false; + /// filter.NewSize = new Size( 200, 200 ); + /// // apply the filter + /// Bitmap newImage = filter.Apply( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + /// + /// + public class TransformToPolar : BaseTransformationFilter + { + private const double Pi2 = Math.PI * 2; + private const double PiHalf = Math.PI / 2; + + private double circleDepth = 1.0; + + /// + /// Circularity coefficient of the mapping, [0, 1]. + /// + /// + /// The property specifies circularity coefficient of the mapping to be done. + /// If the coefficient is set to 1, then the mapping will produce ideal circle. If the coefficient + /// is set to 0, then the mapping will occupy entire area of the destination image (circle will + /// be extended into direction of edges). Changing the property from 0 to 1 user may balance + /// circularity of the produced output. + /// + /// + /// Default value is set to 1. + /// + /// + public double CirlceDepth + { + get { return circleDepth; } + set { circleDepth = Math.Max( 0, Math.Min( 1, value ) ); } + } + + private double offsetAngle = 0; + + /// + /// Offset angle used to shift mapping, [-360, 360] degrees. + /// + /// + /// The property specifies offset angle, which can be used to shift + /// mapping in counter clockwise direction. For example, if user sets this property to 30, then + /// start of polar mapping is shifted by 30 degrees in counter clockwise direction. + /// + /// Default value is set to 0. + /// + /// + public double OffsetAngle + { + get { return offsetAngle; } + set { offsetAngle = Math.Max( -360, Math.Min( 360, value ) ); } + } + + private bool mapBackwards = false; + + /// + /// Specifies direction of mapping. + /// + /// + /// The property specifies direction of mapping source image's X axis. If the + /// property is set to , the image is mapped in clockwise direction; + /// otherwise in counter clockwise direction. + /// + /// Default value is set to . + /// + /// + public bool MapBackwards + { + get { return mapBackwards; } + set { mapBackwards = value; } + } + + private bool mapFromTop = true; + + /// + /// Specifies if top of the source image should go to center or edge of the result image. + /// + /// + /// The property specifies position of the source image's top line in the destination + /// image. If the property is set to , then it goes to the center of the result image; + /// otherwise it goes to the edge. + /// + /// Default value is set to . + /// + /// + public bool MapFromTop + { + get { return mapFromTop; } + set { mapFromTop = value; } + } + + private Color fillColor = Color.White; + + /// + /// Fill color to use for unprocessed areas. + /// + /// + /// The property specifies fill color, which is used to fill unprocessed areas. + /// In the case if is greater than 0, then there will be some areas on + /// the image's edge, which are not filled by the produced "circular" image, but are filled by + /// the specified color. + /// + /// + /// Default value is set to . + /// + /// + public Color FillColor + { + get { return fillColor; } + set { fillColor = value; } + } + + private Size newSize = new Size( 200, 200 ); + private bool useOriginalImageSize = true; + + /// + /// Size of destination image. + /// + /// + /// The property specifies size of result image produced by this image + /// processing routine in the case if property + /// is set to . + /// + /// Both width and height must be in the [1, 10000] range. + /// + /// Default value is set to 200 x 200. + /// + /// + public Size NewSize + { + get { return newSize; } + set + { + newSize = new Size( + Math.Max( 1, Math.Min( 10000, value.Width ) ), + Math.Max( 1, Math.Min( 10000, value.Height ) ) ); + } + } + + /// + /// Use source image size for destination or not. + /// + /// + /// The property specifies if the image processing routine should create destination + /// image of the same size as original image or of the size specified by + /// property. + /// + /// Default value is set to . + /// + /// + public bool UseOriginalImageSize + { + get { return useOriginalImageSize; } + set { useOriginalImageSize = value; } + } + + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + /// + /// See + /// documentation for additional information. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public TransformToPolar( ) + { + formatTranslations[PixelFormat.Format8bppIndexed] = PixelFormat.Format8bppIndexed; + formatTranslations[PixelFormat.Format24bppRgb] = PixelFormat.Format24bppRgb; + formatTranslations[PixelFormat.Format32bppRgb] = PixelFormat.Format32bppRgb; + formatTranslations[PixelFormat.Format32bppArgb] = PixelFormat.Format32bppArgb; + formatTranslations[PixelFormat.Format32bppPArgb] = PixelFormat.Format32bppPArgb; + } + + /// + /// Calculates new image size. + /// + /// + /// Source image data. + /// + /// New image size - size of the destination image. + /// + protected override System.Drawing.Size CalculateNewImageSize( UnmanagedImage sourceData ) + { + return ( useOriginalImageSize ) ? new Size( sourceData.Width, sourceData.Height ) : newSize; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Destination image data. + /// + protected override unsafe void ProcessFilter( UnmanagedImage sourceData, UnmanagedImage destinationData ) + { + int pixelSize = Bitmap.GetPixelFormatSize( destinationData.PixelFormat ) / 8; + + // get source image size + int width = sourceData.Width; + int height = sourceData.Height; + int widthM1 = width - 1; + int heightM1 = height - 1; + + // get destination image size + int newWidth = destinationData.Width; + int newHeight = destinationData.Height; + + // invert cirlce depth + double circleDisform = 1 - circleDepth; + + // get position of center pixel + double cx = (double) ( newWidth - 1 ) / 2; + double cy = (double) ( newHeight - 1 ) / 2; + double radius = ( cx < cy ) ? cx : cy; + radius -= radius * circleDisform; + + // angle of the diagonal + double diagonalAngle = Math.Atan2( cy, cx ); + + // offset angle in radians + double offsetAngleR = offsetAngle / 180 * Math.PI; + if ( offsetAngleR < 0 ) + { + offsetAngleR = Pi2 - offsetAngleR; + } + // add extra offset to make sure rotation starts from Y axis and Pi*2 to + // make sure any negative angle will get positive + offsetAngleR += PiHalf + Pi2; + + // do the job + byte* baseSrc = (byte*) sourceData.ImageData.ToPointer( ); + byte* dst = (byte*) destinationData.ImageData.ToPointer( ); + + int srcStride = sourceData.Stride; + int dstOffset = destinationData.Stride - newWidth * pixelSize; + + // coordinates of source points + int sx1, sy1, sx2, sy2; + double dx1, dy1, dx2, dy2; + + // temporary pointers + byte* p1, p2, p3, p4; + + byte fillR = fillColor.R; + byte fillB = fillColor.B; + byte fillG = fillColor.G; + byte fillA = fillColor.A; + byte fillGrey = (byte) ( 0.2125 * fillR + 0.7154 * fillG + 0.0721 * fillB ); + + for ( int y = 0; y < newHeight; y++ ) + { + double dy = y - cy; + double dydy = dy * dy; + + for ( int x = 0; x < newWidth; x++ ) + { + double dx = x - cx; + // distance from the center + double distance = Math.Sqrt( dx * dx + dydy ); + // angle of the line connecting center and the current pixel + double angle = Math.Atan2( dy, dx ); + + // calculate minimum angle between X axis and the + // line connecting center and the current pixel + double oxAngle = ( angle > 0 ) ? angle : -angle; + if ( oxAngle > PiHalf ) + { + oxAngle = Math.PI - oxAngle; + } + + // calculate maximm distance from center for this angle - distance to image's edge + double maxDistance = ( oxAngle > diagonalAngle ) ? ( cy / Math.Sin( oxAngle ) ) : ( cx / Math.Cos( oxAngle ) ); + + // calculate maximum allowed distance within wich we need to map Y axis of the source image + double maxAllowedDistance = radius + maxDistance * circleDisform; + + if ( distance < maxAllowedDistance + 1 ) + { + // add angle offset and make sure it is in the [0, 2PI) range + angle += offsetAngleR; + angle = angle % Pi2; + + // calculate pixel coordinates in the source image + double sy = ( distance / maxAllowedDistance ) * heightM1; + + if ( sy > heightM1 ) + { + sy = heightM1; + } + + if ( !mapFromTop ) + { + sy = heightM1 - sy; + } + + double sx = ( angle / Pi2 ) * widthM1; + + if ( mapBackwards ) + { + sx = widthM1 - sx; + } + + sx1 = (int) sx; + sx2 = ( sx1 == widthM1 ) ? sx1 : sx1 + 1; + dx1 = sx - sx1; + dx2 = 1.0 - dx1; + + sy1 = (int) sy; + sy2 = ( sy1 == heightM1 ) ? sy1 : sy1 + 1; + dy1 = sy - sy1; + dy2 = 1.0 - dy1; + + // get four points + p1 = p2 = baseSrc + sy1 * srcStride; + p1 += sx1 * pixelSize; + p2 += sx2 * pixelSize; + + p3 = p4 = baseSrc + sy2 * srcStride; + p3 += sx1 * pixelSize; + p4 += sx2 * pixelSize; + + // interpolate using 4 points + for ( int i = 0; i < pixelSize; i++, dst++, p1++, p2++, p3++, p4++ ) + { + *dst = (byte) ( + dy2 * ( dx2 * ( *p1 ) + dx1 * ( *p2 ) ) + + dy1 * ( dx2 * ( *p3 ) + dx1 * ( *p4 ) ) ); + } + } + else + { + // fill unprocessed pixel with default color + if ( pixelSize == 1 ) + { + *dst = fillGrey; + } + else + { + dst[RGB.R] = fillR; + dst[RGB.G] = fillG; + dst[RGB.B] = fillB; + + if ( pixelSize > 3 ) + { + dst[RGB.A] = fillA; + } + } + + dst += pixelSize; + } + } + dst += dstOffset; + } + } + } +} diff --git a/Sources/Imaging/Filters/YCbCr Filters/YCbCrExtractChannel.cs b/Sources/Imaging/Filters/YCbCr Filters/YCbCrExtractChannel.cs new file mode 100644 index 00000000..6db53148 --- /dev/null +++ b/Sources/Imaging/Filters/YCbCr Filters/YCbCrExtractChannel.cs @@ -0,0 +1,159 @@ +// AForge Image Processing Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2005-2009 +// andrew.kirillov@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Extract YCbCr channel from image. + /// + /// + /// The filter extracts specified YCbCr channel of color image and returns + /// it in the form of grayscale image. + /// + /// The filter accepts 24 and 32 bpp color images and produces + /// 8 bpp grayscale images. + /// + /// Sample usage: + /// + /// // create filter + /// YCbCrExtractChannel filter = new YCbCrExtractChannel( YCbCr.CrIndex ); + /// // apply the filter + /// Bitmap crChannel = filter.Apply( image ); + /// + /// + /// + /// + /// + public class YCbCrExtractChannel : BaseFilter + { + private short channel = YCbCr.YIndex; + + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// YCbCr channel to extract. + /// + /// + /// Default value is set to (Y channel). + /// + /// Invalid channel was specified. + /// + public short Channel + { + get { return channel; } + set + { + if ( + ( value != YCbCr.YIndex ) && + ( value != YCbCr.CbIndex ) && + ( value != YCbCr.CrIndex ) + ) + { + throw new ArgumentException( "Invalid channel was specified." ); + } + channel = value; + } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public YCbCrExtractChannel( ) + { + // initialize format translation dictionary + formatTranslations[PixelFormat.Format24bppRgb] = PixelFormat.Format8bppIndexed; + formatTranslations[PixelFormat.Format32bppRgb] = PixelFormat.Format8bppIndexed; + formatTranslations[PixelFormat.Format32bppArgb] = PixelFormat.Format8bppIndexed; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// YCbCr channel to extract. + /// + public YCbCrExtractChannel( short channel ) : this( ) + { + this.Channel = channel; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Destination image data. + /// + protected override unsafe void ProcessFilter( UnmanagedImage sourceData, UnmanagedImage destinationData ) + { + int pixelSize = Image.GetPixelFormatSize( sourceData.PixelFormat ) / 8; + + // get width and height + int width = sourceData.Width; + int height = sourceData.Height; + + int srcOffset = sourceData.Stride - width * pixelSize; + int dstOffset = destinationData.Stride - width; + RGB rgb = new RGB( ); + YCbCr ycbcr = new YCbCr( ); + + // do the job + byte * src = (byte *) sourceData.ImageData.ToPointer( ); + byte * dst = (byte *) destinationData.ImageData.ToPointer( ); + byte v = 0; + + // for each row + for ( int y = 0; y < height; y++ ) + { + // for each pixel + for ( int x = 0; x < width; x++, src += pixelSize, dst++ ) + { + rgb.Red = src[RGB.R]; + rgb.Green = src[RGB.G]; + rgb.Blue = src[RGB.B]; + + // convert to YCbCr + AForge.Imaging.YCbCr.FromRGB( rgb, ycbcr ); + + switch ( channel ) + { + case YCbCr.YIndex: + v = (byte) ( ycbcr.Y * 255 ); + break; + + case YCbCr.CbIndex: + v = (byte) ( ( ycbcr.Cb + 0.5 ) * 255 ); + break; + + case YCbCr.CrIndex: + v = (byte) ( ( ycbcr.Cr + 0.5 ) * 255 ); + break; + } + + *dst = v; + } + src += srcOffset; + dst += dstOffset; + } + } + } +} diff --git a/Sources/Imaging/Filters/YCbCr Filters/YCbCrFiltering.cs b/Sources/Imaging/Filters/YCbCr Filters/YCbCrFiltering.cs new file mode 100644 index 00000000..014f26f0 --- /dev/null +++ b/Sources/Imaging/Filters/YCbCr Filters/YCbCrFiltering.cs @@ -0,0 +1,292 @@ +// AForge Image Processing Library +// AForge.NET framework +// +// Copyright © AForge.NET, 2007-2011 +// contacts@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + using AForge; + + /// + /// Color filtering in YCbCr color space. + /// + /// + /// The filter operates in YCbCr color space and filters + /// pixels, which color is inside/outside of the specified YCbCr range - + /// it keeps pixels with colors inside/outside of the specified range and fills the + /// rest with specified color. + /// + /// The filter accepts 24 and 32 bpp color images for processing. + /// + /// Sample usage: + /// + /// // create filter + /// YCbCrFiltering filter = new YCbCrFiltering( ); + /// // set color ranges to keep + /// filter.Cb = new Range( -0.2f, 0.0f ); + /// filter.Cr = new Range( 0.26f, 0.5f ); + /// // apply the filter + /// filter.ApplyInPlace( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + /// + /// + /// + public class YCbCrFiltering : BaseInPlacePartialFilter + { + private Range yRange = new Range( 0.0f, 1.0f ); + private Range cbRange = new Range( -0.5f, 0.5f ); + private Range crRange = new Range( -0.5f, 0.5f ); + + private float fillY = 0.0f; + private float fillCb = 0.0f; + private float fillCr = 0.0f; + private bool fillOutsideRange = true; + + private bool updateY = true; + private bool updateCb = true; + private bool updateCr = true; + + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + #region Public properties + + /// + /// Range of Y component, [0, 1]. + /// + /// + public Range Y + { + get { return yRange; } + set { yRange = value; } + } + + /// + /// Range of Cb component, [-0.5, 0.5]. + /// + /// + public Range Cb + { + get { return cbRange; } + set { cbRange = value; } + } + + /// + /// Range of Cr component, [-0.5, 0.5]. + /// + /// + public Range Cr + { + get { return crRange; } + set { crRange = value; } + } + + /// + /// Fill color used to fill filtered pixels. + /// + public YCbCr FillColor + { + get { return new YCbCr( fillY, fillCb, fillCr ); } + set + { + fillY = value.Y; + fillCb = value.Cb; + fillCr = value.Cr; + } + } + + /// + /// Determines, if pixels should be filled inside or outside specified + /// color range. + /// + /// + /// Default value is set to , which means + /// the filter removes colors outside of the specified range. + /// + public bool FillOutsideRange + { + get { return fillOutsideRange; } + set { fillOutsideRange = value; } + } + + /// + /// Determines, if Y value of filtered pixels should be updated. + /// + /// + /// The property specifies if Y channel of filtered pixels should be + /// updated with value from fill color or not. + /// + /// Default value is set to . + /// + public bool UpdateY + { + get { return updateY; } + set { updateY = value; } + } + + /// + /// Determines, if Cb value of filtered pixels should be updated. + /// + /// + /// The property specifies if Cb channel of filtered pixels should be + /// updated with value from fill color or not. + /// + /// Default value is set to . + /// + public bool UpdateCb + { + get { return updateCb; } + set { updateCb = value; } + } + + /// + /// Determines, if Cr value of filtered pixels should be updated. + /// + /// + /// The property specifies if Cr channel of filtered pixels should be + /// updated with value from fill color or not. + /// + /// Default value is set to . + /// + public bool UpdateCr + { + get { return updateCr; } + set { updateCr = value; } + } + + #endregion + + + /// + /// Initializes a new instance of the class. + /// + public YCbCrFiltering( ) + { + formatTranslations[PixelFormat.Format24bppRgb] = PixelFormat.Format24bppRgb; + formatTranslations[PixelFormat.Format32bppRgb] = PixelFormat.Format32bppRgb; + formatTranslations[PixelFormat.Format32bppArgb] = PixelFormat.Format32bppArgb; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Range of Y component. + /// Range of Cb component. + /// Range of Cr component. + /// + public YCbCrFiltering( Range yRange, Range cbRange, Range crRange ) : + this( ) + { + this.yRange = yRange; + this.cbRange = cbRange; + this.crRange = crRange; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Image rectangle for processing by the filter. + /// + protected override unsafe void ProcessFilter( UnmanagedImage image, Rectangle rect ) + { + // get pixel size + int pixelSize = ( image.PixelFormat == PixelFormat.Format24bppRgb ) ? 3 : 4; + + int startX = rect.Left; + int startY = rect.Top; + int stopX = startX + rect.Width; + int stopY = startY + rect.Height; + int offset = image.Stride - rect.Width * pixelSize; + + RGB rgb = new RGB( ); + YCbCr ycbcr = new YCbCr( ); + + bool updated; + + // do the job + byte* ptr = (byte*) image.ImageData.ToPointer( ); + + // allign pointer to the first pixel to process + ptr += ( startY * image.Stride + startX * pixelSize ); + + // for each row + for ( int y = startY; y < stopY; y++ ) + { + // for each pixel + for ( int x = startX; x < stopX; x++, ptr += pixelSize ) + { + updated = false; + rgb.Red = ptr[RGB.R]; + rgb.Green = ptr[RGB.G]; + rgb.Blue = ptr[RGB.B]; + + // convert to YCbCr + AForge.Imaging.YCbCr.FromRGB( rgb, ycbcr ); + + // check YCbCr values + if ( + ( ycbcr.Y >= yRange.Min ) && ( ycbcr.Y <= yRange.Max ) && + ( ycbcr.Cb >= cbRange.Min ) && ( ycbcr.Cb <= cbRange.Max ) && + ( ycbcr.Cr >= crRange.Min ) && ( ycbcr.Cr <= crRange.Max ) + ) + { + if ( !fillOutsideRange ) + { + if ( updateY ) ycbcr.Y = fillY; + if ( updateCb ) ycbcr.Cb = fillCb; + if ( updateCr ) ycbcr.Cr = fillCr; + + updated = true; + } + } + else + { + if ( fillOutsideRange ) + { + if ( updateY ) ycbcr.Y = fillY; + if ( updateCb ) ycbcr.Cb = fillCb; + if ( updateCr ) ycbcr.Cr = fillCr; + + updated = true; + } + } + + if ( updated ) + { + // convert back to RGB + AForge.Imaging.YCbCr.ToRGB( ycbcr, rgb ); + + ptr[RGB.R] = rgb.Red; + ptr[RGB.G] = rgb.Green; + ptr[RGB.B] = rgb.Blue; + } + } + ptr += offset; + } + } + } +} diff --git a/Sources/Imaging/Filters/YCbCr Filters/YCbCrLinear.cs b/Sources/Imaging/Filters/YCbCr Filters/YCbCrLinear.cs new file mode 100644 index 00000000..facd4af1 --- /dev/null +++ b/Sources/Imaging/Filters/YCbCr Filters/YCbCrLinear.cs @@ -0,0 +1,251 @@ +// AForge Image Processing Library +// AForge.NET framework +// +// Copyright © AForge.NET, 2007-2011 +// contacts@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + using AForge; + + /// + /// Linear correction of YCbCr channels. + /// + /// + /// The filter operates in YCbCr color space and provides + /// with the facility of linear correction of its channels - mapping specified channels' + /// input ranges to specified output ranges. + /// + /// The filter accepts 24 and 32 bpp color images for processing. + /// + /// Sample usage: + /// + /// // create filter + /// YCbCrLinear filter = new YCbCrLinear( ); + /// // configure the filter + /// filter.InCb = new Range( -0.276f, 0.163f ); + /// filter.InCr = new Range( -0.202f, 0.500f ); + /// // apply the filter + /// filter.ApplyInPlace( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + /// + /// + /// + public class YCbCrLinear : BaseInPlacePartialFilter + { + private Range inY = new Range( 0.0f, 1.0f ); + private Range inCb = new Range( -0.5f, 0.5f ); + private Range inCr = new Range( -0.5f, 0.5f ); + + private Range outY = new Range( 0.0f, 1.0f ); + private Range outCb = new Range( -0.5f, 0.5f ); + private Range outCr = new Range( -0.5f, 0.5f ); + + #region Public Propertis + + /// + /// Y component's input range. + /// + /// + /// Y component is measured in the range of [0, 1]. + /// + public Range InY + { + get { return inY; } + set { inY = value; } + } + + /// + /// Cb component's input range. + /// + /// + /// Cb component is measured in the range of [-0.5, 0.5]. + /// + public Range InCb + { + get { return inCb; } + set { inCb = value; } + } + + /// + /// Cr component's input range. + /// + /// + /// Cr component is measured in the range of [-0.5, 0.5]. + /// + public Range InCr + { + get { return inCr; } + set { inCr = value; } + } + + /// + /// Y component's output range. + /// + /// + /// Y component is measured in the range of [0, 1]. + /// + public Range OutY + { + get { return outY; } + set { outY = value; } + } + + /// + /// Cb component's output range. + /// + /// + /// Cb component is measured in the range of [-0.5, 0.5]. + /// + public Range OutCb + { + get { return outCb; } + set { outCb = value; } + } + + /// + /// Cr component's output range. + /// + /// + /// Cr component is measured in the range of [-0.5, 0.5]. + /// + public Range OutCr + { + get { return outCr; } + set { outCr = value; } + } + + #endregion + + // format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public YCbCrLinear( ) + { + formatTranslations[PixelFormat.Format24bppRgb] = PixelFormat.Format24bppRgb; + formatTranslations[PixelFormat.Format32bppRgb] = PixelFormat.Format32bppRgb; + formatTranslations[PixelFormat.Format32bppArgb] = PixelFormat.Format32bppArgb; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Image rectangle for processing by the filter. + /// + protected override unsafe void ProcessFilter( UnmanagedImage image, Rectangle rect ) + { + int pixelSize = Image.GetPixelFormatSize( image.PixelFormat ) / 8; + + int startX = rect.Left; + int startY = rect.Top; + int stopX = startX + rect.Width; + int stopY = startY + rect.Height; + int offset = image.Stride - rect.Width * pixelSize; + + RGB rgb = new RGB( ); + YCbCr ycbcr = new YCbCr( ); + + float ky = 0, by = 0; + float kcb = 0, bcb = 0; + float kcr = 0, bcr = 0; + + // Y line parameters + if ( inY.Max != inY.Min ) + { + ky = ( outY.Max - outY.Min ) / ( inY.Max - inY.Min ); + by = outY.Min - ky * inY.Min; + } + // Cb line parameters + if ( inCb.Max != inCb.Min ) + { + kcb = ( outCb.Max - outCb.Min ) / ( inCb.Max - inCb.Min ); + bcb = outCb.Min - kcb * inCb.Min; + } + // Cr line parameters + if ( inCr.Max != inCr.Min ) + { + kcr = ( outCr.Max - outCr.Min ) / ( inCr.Max - inCr.Min ); + bcr = outCr.Min - kcr * inCr.Min; + } + + // do the job + byte* ptr = (byte*) image.ImageData.ToPointer( ); + + // allign pointer to the first pixel to process + ptr += ( startY * image.Stride + startX * pixelSize ); + + // for each row + for ( int y = startY; y < stopY; y++ ) + { + // for each pixel + for ( int x = startX; x < stopX; x++, ptr += pixelSize ) + { + rgb.Red = ptr[RGB.R]; + rgb.Green = ptr[RGB.G]; + rgb.Blue = ptr[RGB.B]; + + // convert to YCbCr + AForge.Imaging.YCbCr.FromRGB( rgb, ycbcr ); + + // correct Y + if ( ycbcr.Y >= inY.Max ) + ycbcr.Y = outY.Max; + else if ( ycbcr.Y <= inY.Min ) + ycbcr.Y = outY.Min; + else + ycbcr.Y = ky * ycbcr.Y + by; + + // correct Cb + if ( ycbcr.Cb >= inCb.Max ) + ycbcr.Cb = outCb.Max; + else if ( ycbcr.Cb <= inCb.Min ) + ycbcr.Cb = outCb.Min; + else + ycbcr.Cb = kcb * ycbcr.Cb + bcb; + + // correct Cr + if ( ycbcr.Cr >= inCr.Max ) + ycbcr.Cr = outCr.Max; + else if ( ycbcr.Cr <= inCr.Min ) + ycbcr.Cr = outCr.Min; + else + ycbcr.Cr = kcr * ycbcr.Cr + bcr; + + // convert back to RGB + AForge.Imaging.YCbCr.ToRGB( ycbcr, rgb ); + + ptr[RGB.R] = rgb.Red; + ptr[RGB.G] = rgb.Green; + ptr[RGB.B] = rgb.Blue; + } + ptr += offset; + } + } + } +} diff --git a/Sources/Imaging/Filters/YCbCr Filters/YCbCrReplaceChannel.cs b/Sources/Imaging/Filters/YCbCr Filters/YCbCrReplaceChannel.cs new file mode 100644 index 00000000..dbbf652e --- /dev/null +++ b/Sources/Imaging/Filters/YCbCr Filters/YCbCrReplaceChannel.cs @@ -0,0 +1,313 @@ +// AForge Image Processing Library +// AForge.NET framework +// +// Copyright © AForge.NET, 2007-2011 +// contacts@aforgenet.com +// + +namespace AForge.Imaging.Filters +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Replace channel of YCbCr color space. + /// + /// + /// Replaces specified YCbCr channel of color image with + /// specified grayscale imge. + /// + /// The filter is quite useful in conjunction with filter + /// (however may be used alone in some cases). Using the filter + /// it is possible to extract one of YCbCr channel, perform some image processing with it and then + /// put it back into the original color image. + /// + /// The filter accepts 24 and 32 bpp color images for processing. + /// + /// Sample usage: + /// + /// // create YCbCrExtractChannel filter for channel extracting + /// YCbCrExtractChannel extractFilter = new YCbCrExtractChannel( + /// YCbCr.CbIndex ); + /// // extract Cb channel + /// Bitmap cbChannel = extractFilter.Apply( image ); + /// // invert the channel + /// Invert invertFilter = new Invert( ); + /// invertFilter.ApplyInPlace( cbChannel ); + /// // put the channel back into the source image + /// YCbCrReplaceChannel replaceFilter = new YCbCrReplaceChannel( + /// YCbCr.CbIndex, cbChannel ); + /// replaceFilter.ApplyInPlace( image ); + /// + /// + /// Initial image: + /// + /// Result image: + /// + /// + /// + /// + /// + public class YCbCrReplaceChannel : BaseInPlacePartialFilter + { + private short channel = YCbCr.YIndex; + private Bitmap channelImage; + private UnmanagedImage unmanagedChannelImage; + + // private format translation dictionary + private Dictionary formatTranslations = new Dictionary( ); + + /// + /// Format translations dictionary. + /// + public override Dictionary FormatTranslations + { + get { return formatTranslations; } + } + + /// + /// YCbCr channel to replace. + /// + /// + /// Default value is set to (Y channel). + /// + /// Invalid channel was specified. + /// + public short Channel + { + get { return channel; } + set + { + if ( + ( value != YCbCr.YIndex ) && + ( value != YCbCr.CbIndex ) && + ( value != YCbCr.CrIndex ) + ) + { + throw new ArgumentException( "Invalid YCbCr channel was specified." ); + } + channel = value; + } + } + + /// + /// Grayscale image to use for channel replacement. + /// + /// + /// + /// Setting this property will clear the property - + /// only one channel image is allowed: managed or unmanaged. + /// + /// + /// Channel image should be 8bpp indexed image (grayscale). + /// + public Bitmap ChannelImage + { + get { return channelImage; } + set + { + if ( value != null ) + { + // check for valid format + if ( value.PixelFormat != PixelFormat.Format8bppIndexed ) + throw new InvalidImagePropertiesException( "Channel image should be 8bpp indexed image (grayscale)." ); + } + + channelImage = value; + unmanagedChannelImage = null; + } + } + + /// + /// Unmanaged grayscale image to use for channel replacement. + /// + /// + /// + /// Setting this property will clear the property - + /// only one channel image is allowed: managed or unmanaged. + /// + /// + /// Channel image should be 8bpp indexed image (grayscale). + /// + public UnmanagedImage UnmanagedChannelImage + { + get { return unmanagedChannelImage; } + set + { + if ( value != null ) + { + // check for valid format + if ( value.PixelFormat != PixelFormat.Format8bppIndexed ) + throw new InvalidImagePropertiesException( "Channel image should be 8bpp indexed image (grayscale)." ); + } + + channelImage = null; + unmanagedChannelImage = value; + } + } + + // private constructor + private YCbCrReplaceChannel( ) + { + // initialize format translation dictionary + formatTranslations[PixelFormat.Format24bppRgb] = PixelFormat.Format24bppRgb; + formatTranslations[PixelFormat.Format32bppRgb] = PixelFormat.Format32bppRgb; + formatTranslations[PixelFormat.Format32bppArgb] = PixelFormat.Format32bppArgb; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// YCbCr channel to replace. + /// + public YCbCrReplaceChannel( short channel ) : this( ) + { + this.Channel = channel; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// YCbCr channel to replace. + /// Channel image to use for replacement. + /// + public YCbCrReplaceChannel( short channel, Bitmap channelImage ) : this( ) + { + this.Channel = channel; + this.ChannelImage = channelImage; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// YCbCr channel to replace. + /// Unmanaged channel image to use for replacement. + /// + public YCbCrReplaceChannel( short channel, UnmanagedImage channelImage ) : this( ) + { + this.Channel = channel; + this.UnmanagedChannelImage = channelImage; + } + + /// + /// Process the filter on the specified image. + /// + /// + /// Source image data. + /// Image rectangle for processing by the filter. + /// + /// Channel image was not specified. + /// Channel image size does not match source + /// image size. + /// + protected override unsafe void ProcessFilter( UnmanagedImage image, Rectangle rect ) + { + if ( ( channelImage == null ) && ( unmanagedChannelImage == null ) ) + { + throw new NullReferenceException( "Channel image was not specified." ); + } + + int pixelSize = Image.GetPixelFormatSize( image.PixelFormat ) / 8; + + int width = image.Width; + int height = image.Height; + int startX = rect.Left; + int startY = rect.Top; + int stopX = startX + rect.Width; + int stopY = startY + rect.Height; + int offset = image.Stride - rect.Width * pixelSize; + + BitmapData chData = null; + // pointer to channel's data + byte* ch; + // channel's image stride + int chStride = 0; + + // check channel's image type + if ( channelImage != null ) + { + // check channel's image dimension + if ( ( width != channelImage.Width ) || ( height != channelImage.Height ) ) + throw new InvalidImagePropertiesException( "Channel image size does not match source image size." ); + + // lock channel image + chData = channelImage.LockBits( + new Rectangle( 0, 0, width, height ), + ImageLockMode.ReadOnly, PixelFormat.Format8bppIndexed ); + + ch = (byte*) chData.Scan0.ToPointer( ); + chStride = chData.Stride; + } + else + { + // check channel's image dimension + if ( ( width != unmanagedChannelImage.Width ) || ( height != unmanagedChannelImage.Height ) ) + throw new InvalidImagePropertiesException( "Channel image size does not match source image size." ); + + ch = (byte*) unmanagedChannelImage.ImageData; + chStride = unmanagedChannelImage.Stride; + } + + int offsetCh = chStride - rect.Width; + RGB rgb = new RGB( ); + YCbCr ycbcr = new YCbCr( ); + + // do the job + byte* dst = (byte*) image.ImageData.ToPointer( ); + + // allign pointer to the first pixel to process + dst += ( startY * image.Stride + startX * pixelSize ); + ch += ( startY * chStride + startX ); + + // for each line + for ( int y = startY; y < stopY; y++ ) + { + // for each pixel + for ( int x = startX; x < stopX; x++, dst += pixelSize, ch++ ) + { + rgb.Red = dst[RGB.R]; + rgb.Green = dst[RGB.G]; + rgb.Blue = dst[RGB.B]; + + // convert to YCbCr + AForge.Imaging.YCbCr.FromRGB( rgb, ycbcr ); + + switch ( channel ) + { + case YCbCr.YIndex: + ycbcr.Y = (float) *ch / 255; + break; + + case YCbCr.CbIndex: + ycbcr.Cb = (float) *ch / 255 - 0.5f; + break; + + case YCbCr.CrIndex: + ycbcr.Cr = (float) *ch / 255 - 0.5f; + break; + } + + // convert back to RGB + AForge.Imaging.YCbCr.ToRGB( ycbcr, rgb ); + + dst[RGB.R] = rgb.Red; + dst[RGB.G] = rgb.Green; + dst[RGB.B] = rgb.Blue; + } + dst += offset; + ch += offsetCh; + } + + if ( chData != null ) + { + // unlock + channelImage.UnlockBits( chData ); + } + } + } +} diff --git a/Sources/Imaging/HorizontalIntensityStatistics.cs b/Sources/Imaging/HorizontalIntensityStatistics.cs new file mode 100644 index 00000000..7bf1a4cb --- /dev/null +++ b/Sources/Imaging/HorizontalIntensityStatistics.cs @@ -0,0 +1,351 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +namespace AForge.Imaging +{ + using System; + using System.Drawing; + using System.Drawing.Imaging; + using AForge.Math; + + /// + /// Horizontal intensity statistics. + /// + /// + /// The class provides information about horizontal distribution + /// of pixel intensities, which may be used to locate objects, their centers, etc. + /// + /// + /// The class accepts grayscale (8 bpp indexed and 16 bpp) and color (24, 32, 48 and 64 bpp) images. + /// In the case of 32 and 64 bpp color images, the alpha channel is not processed - statistics is not + /// gathered for this channel. + /// + /// Sample usage: + /// + /// // collect statistics + /// HorizontalIntensityStatistics his = new HorizontalIntensityStatistics( sourceImage ); + /// // get gray histogram (for grayscale image) + /// Histogram histogram = his.Gray; + /// // output some histogram's information + /// System.Diagnostics.Debug.WriteLine( "Mean = " + histogram.Mean ); + /// System.Diagnostics.Debug.WriteLine( "Min = " + histogram.Min ); + /// System.Diagnostics.Debug.WriteLine( "Max = " + histogram.Max ); + /// + /// + /// Sample grayscale image with its horizontal intensity histogram: + /// + /// + /// + /// + /// + public class HorizontalIntensityStatistics + { + // histograms for RGB channgels + private Histogram red = null; + private Histogram green = null; + private Histogram blue = null; + // grayscale histogram + private Histogram gray = null; + + /// + /// Histogram for red channel. + /// + /// + public Histogram Red + { + get + { + if ( red == null ) + { + throw new InvalidImagePropertiesException( ExceptionMessage.ColorHistogramException ); + } + return red; + } + } + + /// + /// Histogram for green channel. + /// + /// + public Histogram Green + { + get + { + if ( green == null ) + { + throw new InvalidImagePropertiesException( ExceptionMessage.ColorHistogramException ); + } + return green; + } + } + + /// + /// Histogram for blue channel. + /// + /// + public Histogram Blue + { + get + { + if ( blue == null ) + { + throw new InvalidImagePropertiesException( ExceptionMessage.ColorHistogramException ); + } + return blue; + } + } + + /// + /// Histogram for gray channel (intensities). + /// + /// + public Histogram Gray + { + get + { + if ( gray == null ) + { + throw new InvalidImagePropertiesException( ExceptionMessage.GrayHistogramException ); + } + return gray; + } + } + + /// + /// Value wich specifies if the processed image was color or grayscale. + /// + /// + /// If the property equals to true, then the + /// property should be used to retrieve histogram for the processed grayscale image. + /// Otherwise , and property + /// should be used to retrieve histogram for particular RGB channel of the processed + /// color image. + /// + public bool IsGrayscale + { + get { return ( gray != null ); } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Source image. + /// + /// Unsupported pixel format of the source image. + /// + public HorizontalIntensityStatistics( Bitmap image ) + { + // check image format + if ( + ( image.PixelFormat != PixelFormat.Format8bppIndexed ) && + ( image.PixelFormat != PixelFormat.Format16bppGrayScale ) && + ( image.PixelFormat != PixelFormat.Format24bppRgb ) && + ( image.PixelFormat != PixelFormat.Format32bppRgb ) && + ( image.PixelFormat != PixelFormat.Format32bppArgb ) && + ( image.PixelFormat != PixelFormat.Format48bppRgb ) && + ( image.PixelFormat != PixelFormat.Format64bppArgb ) + ) + { + throw new UnsupportedImageFormatException( "Unsupported pixel format of the source image." ); + } + + // lock bitmap data + BitmapData imageData = image.LockBits( + new Rectangle( 0, 0, image.Width, image.Height ), + ImageLockMode.ReadOnly, image.PixelFormat ); + + try + { + // gather statistics + ProcessImage( new UnmanagedImage( imageData ) ); + } + finally + { + // unlock image + image.UnlockBits( imageData ); + } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Source image data. + /// + /// Unsupported pixel format of the source image. + /// + public HorizontalIntensityStatistics( BitmapData imageData ) + : this( new UnmanagedImage( imageData ) ) + { + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Source unmanaged image. + /// + /// Unsupported pixel format of the source image. + /// + public HorizontalIntensityStatistics( UnmanagedImage image ) + { + // check image format + if ( + ( image.PixelFormat != PixelFormat.Format8bppIndexed ) && + ( image.PixelFormat != PixelFormat.Format16bppGrayScale ) && + ( image.PixelFormat != PixelFormat.Format24bppRgb ) && + ( image.PixelFormat != PixelFormat.Format32bppRgb ) && + ( image.PixelFormat != PixelFormat.Format32bppArgb ) && + ( image.PixelFormat != PixelFormat.Format48bppRgb ) && + ( image.PixelFormat != PixelFormat.Format64bppArgb ) + ) + { + throw new UnsupportedImageFormatException( "Unsupported pixel format of the source image." ); + } + + // gather statistics + ProcessImage( image ); + } + + /// + /// Gather horizontal intensity statistics for specified image. + /// + /// + /// Source image. + /// + private void ProcessImage( UnmanagedImage image ) + { + PixelFormat pixelFormat = image.PixelFormat; + // get image dimension + int width = image.Width; + int height = image.Height; + + red = green = blue = gray = null; + + // do the job + unsafe + { + // check pixel format + if ( pixelFormat == PixelFormat.Format8bppIndexed ) + { + // 8 bpp grayscale image + byte* p = (byte*) image.ImageData.ToPointer( ); + int offset = image.Stride - width; + + // histogram array + int[] g = new int[width]; + + // for each pixel + for ( int y = 0; y < height; y++ ) + { + // for each pixel + for ( int x = 0; x < width; x++, p++ ) + { + g[x] += *p; + } + p += offset; + } + + // create historgram for gray level + gray = new Histogram( g ); + } + else if ( pixelFormat == PixelFormat.Format16bppGrayScale ) + { + // 16 bpp grayscale image + byte* basePtr = (byte*) image.ImageData.ToPointer( ); + int stride = image.Stride; + + // histogram array + int[] g = new int[width]; + + // for each pixel + for ( int y = 0; y < height; y++ ) + { + ushort* p = (ushort*) ( basePtr + stride * y ); + + // for each pixel + for ( int x = 0; x < width; x++, p++ ) + { + g[x] += *p; + } + } + + // create historgram for gray level + gray = new Histogram( g ); + } + else if ( + ( pixelFormat == PixelFormat.Format24bppRgb ) || + ( pixelFormat == PixelFormat.Format32bppRgb ) || + ( pixelFormat == PixelFormat.Format32bppArgb ) ) + { + // 24/32 bpp color image + byte* p = (byte*) image.ImageData.ToPointer( ); + int pixelSize = ( pixelFormat == PixelFormat.Format24bppRgb ) ? 3 : 4; + int offset = image.Stride - width * pixelSize; + + // histogram arrays + int[] r = new int[width]; + int[] g = new int[width]; + int[] b = new int[width]; + + // for each line + for ( int y = 0; y < height; y++ ) + { + // for each pixel + for ( int x = 0; x < width; x++, p += pixelSize ) + { + r[x] += p[RGB.R]; + g[x] += p[RGB.G]; + b[x] += p[RGB.B]; + } + p += offset; + } + + // create histograms + red = new Histogram( r ); + green = new Histogram( g ); + blue = new Histogram( b ); + } + else if ( + ( pixelFormat == PixelFormat.Format48bppRgb ) || + ( pixelFormat == PixelFormat.Format64bppArgb ) ) + { + // 48/64 bpp color image + byte* basePtr = (byte*) image.ImageData.ToPointer( ); + int stride = image.Stride; + int pixelSize = ( pixelFormat == PixelFormat.Format48bppRgb ) ? 3 : 4; + + // histogram arrays + int[] r = new int[width]; + int[] g = new int[width]; + int[] b = new int[width]; + + // for each line + for ( int y = 0; y < height; y++ ) + { + ushort* p = (ushort*) ( basePtr + stride * y ); + + // for each pixel + for ( int x = 0; x < width; x++, p += pixelSize ) + { + r[x] += p[RGB.R]; + g[x] += p[RGB.G]; + b[x] += p[RGB.B]; + } + } + + // create histograms + red = new Histogram( r ); + green = new Histogram( g ); + blue = new Histogram( b ); + } + } + } + } +} diff --git a/Sources/Imaging/HoughCircleTransformation.cs b/Sources/Imaging/HoughCircleTransformation.cs new file mode 100644 index 00000000..0f9358e0 --- /dev/null +++ b/Sources/Imaging/HoughCircleTransformation.cs @@ -0,0 +1,536 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2005-2010 +// andrew.kirillov@aforgenet.com +// + +namespace AForge.Imaging +{ + using System; + using System.Collections; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Hough circle. + /// + /// + /// Represents circle of Hough transform. + /// + /// + /// + public class HoughCircle : IComparable + { + /// + /// Circle center's X coordinate. + /// + public readonly int X; + + /// + /// Circle center's Y coordinate. + /// + public readonly int Y; + + /// + /// Circle's radius. + /// + public readonly int Radius; + + /// + /// Line's absolute intensity. + /// + public readonly short Intensity; + + /// + /// Line's relative intensity. + /// + public readonly double RelativeIntensity; + + /// + /// Initializes a new instance of the class. + /// + /// + /// Circle's X coordinate. + /// Circle's Y coordinate. + /// Circle's radius. + /// Circle's absolute intensity. + /// Circle's relative intensity. + /// + public HoughCircle( int x, int y, int radius, short intensity, double relativeIntensity ) + { + X = x; + Y = y; + Radius = radius; + Intensity = intensity; + RelativeIntensity = relativeIntensity; + } + + /// + /// Compare the object with another instance of this class. + /// + /// + /// Object to compare with. + /// + /// A signed number indicating the relative values of this instance and value: 1) greater than zero - + /// this instance is greater than value; 2) zero - this instance is equal to value; + /// 3) greater than zero - this instance is less than value. + /// + /// The sort order is descending. + /// + /// + /// Object are compared using their intensity value. + /// + /// + public int CompareTo( object value ) + { + return ( -Intensity.CompareTo( ( (HoughCircle) value ).Intensity ) ); + } + } + + /// + /// Hough circle transformation. + /// + /// + /// The class implements Hough circle transformation, which allows to detect + /// circles of specified radius in an image. + /// + /// The class accepts binary images for processing, which are represented by 8 bpp grayscale images. + /// All black pixels (0 pixel's value) are treated as background, but pixels with different value are + /// treated as circles' pixels. + /// + /// Sample usage: + /// + /// HoughCircleTransformation circleTransform = new HoughCircleTransformation( 35 ); + /// // apply Hough circle transform + /// circleTransform.ProcessImage( sourceImage ); + /// Bitmap houghCirlceImage = circleTransform.ToBitmap( ); + /// // get circles using relative intensity + /// HoughCircle[] circles = circleTransform.GetCirclesByRelativeIntensity( 0.5 ); + /// + /// foreach ( HoughCircle circle in circles ) + /// { + /// // ... + /// } + /// + /// + /// Initial image: + /// + /// Hough circle transformation image: + /// + /// + /// + /// + /// + public class HoughCircleTransformation + { + // circle radius to detect + private int radiusToDetect; + + // Hough map + private short[,] houghMap; + private short maxMapIntensity = 0; + + // Hough map's width and height + private int width; + private int height; + + private int localPeakRadius = 4; + private short minCircleIntensity = 10; + private ArrayList circles = new ArrayList( ); + + /// + /// Minimum circle's intensity in Hough map to recognize a circle. + /// + /// + /// The value sets minimum intensity level for a circle. If a value in Hough + /// map has lower intensity, then it is not treated as a circle. + /// + /// Default value is set to 10. + /// + public short MinCircleIntensity + { + get { return minCircleIntensity; } + set { minCircleIntensity = value; } + } + + /// + /// Radius for searching local peak value. + /// + /// + /// The value determines radius around a map's value, which is analyzed to determine + /// if the map's value is a local maximum in specified area. + /// + /// Default value is set to 4. Minimum value is 1. Maximum value is 10. + /// + public int LocalPeakRadius + { + get { return localPeakRadius; } + set { localPeakRadius = Math.Max( 1, Math.Min( 10, value ) ); } + } + + /// + /// Maximum found intensity in Hough map. + /// + /// + /// The property provides maximum found circle's intensity. + /// + public short MaxIntensity + { + get { return maxMapIntensity; } + } + + /// + /// Found circles count. + /// + /// + /// The property provides total number of found circles, which intensity is higher (or equal to), + /// than the requested minimum intensity. + /// + public int CirclesCount + { + get { return circles.Count; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Circles' radius to detect. + /// + public HoughCircleTransformation( int radiusToDetect ) + { + this.radiusToDetect = radiusToDetect; + } + + /// + /// Process an image building Hough map. + /// + /// + /// Source image to process. + /// + /// Unsupported pixel format of the source image. + /// + public void ProcessImage( Bitmap image ) + { + // check image format + if ( image.PixelFormat != PixelFormat.Format8bppIndexed ) + { + throw new UnsupportedImageFormatException( "Unsupported pixel format of the source image." ); + } + + // lock source image + BitmapData imageData = image.LockBits( + new Rectangle( 0, 0, image.Width, image.Height ), + ImageLockMode.ReadOnly, PixelFormat.Format8bppIndexed ); + + try + { + // process the image + ProcessImage( new UnmanagedImage( imageData ) ); + } + finally + { + // unlock image + image.UnlockBits( imageData ); + } + } + + /// + /// Process an image building Hough map. + /// + /// + /// Source image data to process. + /// + /// Unsupported pixel format of the source image. + /// + public void ProcessImage( BitmapData imageData ) + { + ProcessImage( new UnmanagedImage( imageData ) ); + } + + /// + /// Process an image building Hough map. + /// + /// + /// Source unmanaged image to process. + /// + /// Unsupported pixel format of the source image. + /// + public void ProcessImage( UnmanagedImage image ) + { + if ( image.PixelFormat != PixelFormat.Format8bppIndexed ) + { + throw new UnsupportedImageFormatException( "Unsupported pixel format of the source image." ); + } + + // get source image size + width = image.Width; + height = image.Height; + + int srcOffset = image.Stride - width; + + // allocate Hough map of the same size like image + houghMap = new short[height, width]; + + // do the job + unsafe + { + byte* src = (byte*) image.ImageData.ToPointer( ); + + // for each row + for ( int y = 0; y < height; y++ ) + { + // for each pixel + for ( int x = 0; x < width; x++, src++ ) + { + if ( *src != 0 ) + { + DrawHoughCircle( x, y ); + } + } + src += srcOffset; + } + } + + // find max value in Hough map + maxMapIntensity = 0; + for ( int i = 0; i < height; i++ ) + { + for ( int j = 0; j < width; j++ ) + { + if ( houghMap[i, j] > maxMapIntensity ) + { + maxMapIntensity = houghMap[i, j]; + } + } + } + + CollectCircles( ); + } + + /// + /// Ñonvert Hough map to bitmap. + /// + /// + /// Returns 8 bppp grayscale bitmap, which shows Hough map. + /// + /// Hough transformation was not yet done by calling + /// ProcessImage() method. + /// + public Bitmap ToBitmap( ) + { + // check if Hough transformation was made already + if ( houghMap == null ) + { + throw new ApplicationException( "Hough transformation was not done yet." ); + } + + int width = houghMap.GetLength( 1 ); + int height = houghMap.GetLength( 0 ); + + // create new image + Bitmap image = AForge.Imaging.Image.CreateGrayscaleImage( width, height ); + + // lock destination bitmap data + BitmapData imageData = image.LockBits( + new Rectangle( 0, 0, width, height ), + ImageLockMode.ReadWrite, PixelFormat.Format8bppIndexed ); + + int offset = imageData.Stride - width; + float scale = 255.0f / maxMapIntensity; + + // do the job + unsafe + { + byte* dst = (byte*) imageData.Scan0.ToPointer( ); + + for ( int y = 0; y < height; y++ ) + { + for ( int x = 0; x < width; x++, dst++ ) + { + *dst = (byte) System.Math.Min( 255, (int) ( scale * houghMap[y, x] ) ); + } + dst += offset; + } + } + + // unlock destination images + image.UnlockBits( imageData ); + + return image; + } + + /// + /// Get specified amount of circles with highest intensity. + /// + /// + /// Amount of circles to get. + /// + /// Returns arrary of most intesive circles. If there are no circles detected, + /// the returned array has zero length. + /// + public HoughCircle[] GetMostIntensiveCircles( int count ) + { + // lines count + int n = Math.Min( count, circles.Count ); + + // result array + HoughCircle[] dst = new HoughCircle[n]; + circles.CopyTo( 0, dst, 0, n ); + + return dst; + } + + /// + /// Get circles with relative intensity higher then specified value. + /// + /// + /// Minimum relative intesity of circles. + /// + /// Returns arrary of most intesive circles. If there are no circles detected, + /// the returned array has zero length. + /// + public HoughCircle[] GetCirclesByRelativeIntensity( double minRelativeIntensity ) + { + int count = 0, n = circles.Count; + + while ( ( count < n ) && ( ( (HoughCircle) circles[count] ).RelativeIntensity >= minRelativeIntensity ) ) + count++; + + return GetMostIntensiveCircles( count ); + } + + + // Collect circles with intesities greater or equal then specified + private void CollectCircles( ) + { + short intensity; + bool foundGreater; + + // clean circles collection + circles.Clear( ); + + // for each Y coordinate + for ( int y = 0; y < height; y++ ) + { + // for each X coordinate + for ( int x = 0; x < width; x++ ) + { + // get current value + intensity = houghMap[y, x]; + + if ( intensity < minCircleIntensity ) + continue; + + foundGreater = false; + + // check neighboors + for ( int ty = y - localPeakRadius, tyMax = y + localPeakRadius; ty < tyMax; ty++ ) + { + // continue if the coordinate is out of map + if ( ty < 0 ) + continue; + // break if it is not local maximum or coordinate is out of map + if ( ( foundGreater == true ) || ( ty >= height ) ) + break; + + for ( int tx = x - localPeakRadius, txMax = x + localPeakRadius; tx < txMax; tx++ ) + { + // continue or break if the coordinate is out of map + if ( tx < 0 ) + continue; + if ( tx >= width ) + break; + + // compare the neighboor with current value + if ( houghMap[ty, tx] > intensity ) + { + foundGreater = true; + break; + } + } + } + + // was it local maximum ? + if ( !foundGreater ) + { + // we have local maximum + circles.Add( new HoughCircle( x, y, radiusToDetect, intensity, (double) intensity / maxMapIntensity ) ); + } + } + } + + circles.Sort( ); + } + + // Draw Hough circle: + // http://www.cs.unc.edu/~mcmillan/comp136/Lecture7/circle.html + // + // TODO: more optimizations of circle drawing could be done. + // + private void DrawHoughCircle( int xCenter, int yCenter ) + { + int x = 0; + int y = radiusToDetect; + int p = ( 5 - radiusToDetect * 4 ) / 4; + + SetHoughCirclePoints( xCenter, yCenter, x, y ); + + while ( x < y ) + { + x++; + if ( p < 0 ) + { + p += 2 * x + 1; + } + else + { + y--; + p += 2 * ( x - y ) + 1; + } + SetHoughCirclePoints( xCenter, yCenter, x, y ); + } + } + + // Set circle points + private void SetHoughCirclePoints( int cx, int cy, int x, int y ) + { + if ( x == 0 ) + { + SetHoughPoint( cx, cy + y ); + SetHoughPoint( cx, cy - y ); + SetHoughPoint( cx + y, cy ); + SetHoughPoint( cx - y, cy ); + } + else if ( x == y ) + { + SetHoughPoint( cx + x, cy + y ); + SetHoughPoint( cx - x, cy + y ); + SetHoughPoint( cx + x, cy - y ); + SetHoughPoint( cx - x, cy - y ); + } + else if ( x < y ) + { + SetHoughPoint( cx + x, cy + y ); + SetHoughPoint( cx - x, cy + y ); + SetHoughPoint( cx + x, cy - y ); + SetHoughPoint( cx - x, cy - y ); + SetHoughPoint( cx + y, cy + x ); + SetHoughPoint( cx - y, cy + x ); + SetHoughPoint( cx + y, cy - x ); + SetHoughPoint( cx - y, cy - x ); + } + } + + // Set point + private void SetHoughPoint( int x, int y ) + { + if ( ( x >= 0 ) && ( y >= 0 ) && ( x < width ) && ( y < height ) ) + { + houghMap[y, x]++; + } + } + } +} diff --git a/Sources/Imaging/HoughLineTransformation.cs b/Sources/Imaging/HoughLineTransformation.cs new file mode 100644 index 00000000..bc2e12c7 --- /dev/null +++ b/Sources/Imaging/HoughLineTransformation.cs @@ -0,0 +1,704 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2005-2009 +// andrew.kirillov@aforgenet.com +// + +namespace AForge.Imaging +{ + using System; + using System.Collections; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Hough line. + /// + /// + /// Represents line of Hough Line transformation using + /// polar coordinates. + /// See Wikipedia + /// for information on how to convert polar coordinates to Cartesian coordinates. + /// + /// + /// Hough Line transformation does not provide + /// information about lines start and end points, only slope and distance from image's center. Using + /// only provided information it is not possible to draw the detected line as it exactly appears on + /// the source image. But it is possible to draw a line through the entire image, which contains the + /// source line (see sample code below). + /// + /// + /// Sample code to draw detected Hough lines: + /// + /// HoughLineTransformation lineTransform = new HoughLineTransformation( ); + /// // apply Hough line transofrm + /// lineTransform.ProcessImage( sourceImage ); + /// Bitmap houghLineImage = lineTransform.ToBitmap( ); + /// // get lines using relative intensity + /// HoughLine[] lines = lineTransform.GetLinesByRelativeIntensity( 0.5 ); + /// + /// foreach ( HoughLine line in lines ) + /// { + /// // get line's radius and theta values + /// int r = line.Radius; + /// double t = line.Theta; + /// + /// // check if line is in lower part of the image + /// if ( r < 0 ) + /// { + /// t += 180; + /// r = -r; + /// } + /// + /// // convert degrees to radians + /// t = ( t / 180 ) * Math.PI; + /// + /// // get image centers (all coordinate are measured relative + /// // to center) + /// int w2 = image.Width /2; + /// int h2 = image.Height / 2; + /// + /// double x0 = 0, x1 = 0, y0 = 0, y1 = 0; + /// + /// if ( line.Theta != 0 ) + /// { + /// // none-vertical line + /// x0 = -w2; // most left point + /// x1 = w2; // most right point + /// + /// // calculate corresponding y values + /// y0 = ( -Math.Cos( t ) * x0 + r ) / Math.Sin( t ); + /// y1 = ( -Math.Cos( t ) * x1 + r ) / Math.Sin( t ); + /// } + /// else + /// { + /// // vertical line + /// x0 = line.Radius; + /// x1 = line.Radius; + /// + /// y0 = h2; + /// y1 = -h2; + /// } + /// + /// // draw line on the image + /// Drawing.Line( sourceData, + /// new IntPoint( (int) x0 + w2, h2 - (int) y0 ), + /// new IntPoint( (int) x1 + w2, h2 - (int) y1 ), + /// Color.Red ); + /// } + /// + /// + /// To clarify meaning of and values + /// of detected Hough lines, let's take a look at the below sample image and + /// corresponding values of radius and theta for the lines on the image: + /// + /// + /// + /// + /// Detected radius and theta values (color in corresponding colors): + /// + /// Theta = 90, R = 125, I = 249; + /// Theta = 0, R = -170, I = 187 (converts to Theta = 180, R = 170); + /// Theta = 90, R = -58, I = 163 (converts to Theta = 270, R = 58); + /// Theta = 101, R = -101, I = 130 (converts to Theta = 281, R = 101); + /// Theta = 0, R = 43, I = 112; + /// Theta = 45, R = 127, I = 82. + /// + /// + /// + /// + /// + /// + /// + public class HoughLine : IComparable + { + /// + /// Line's slope - angle between polar axis and line's radius (normal going + /// from pole to the line). Measured in degrees, [0, 180). + /// + public readonly double Theta; + + /// + /// Line's distance from image center, (−∞, +∞). + /// + /// + /// Negative line's radius means, that the line resides in lower + /// part of the polar coordinates system. This means that value + /// should be increased by 180 degrees and radius should be made positive. + /// + /// + public readonly short Radius; + + /// + /// Line's absolute intensity, (0, +∞). + /// + /// + /// Line's absolute intensity is a measure, which equals + /// to number of pixels detected on the line. This value is bigger for longer + /// lines. + /// + /// The value may not be 100% reliable to measure exact number of pixels + /// on the line. Although these value correlate a lot (which means they are very close + /// in most cases), the intensity value may slightly vary. + /// + /// + public readonly short Intensity; + + /// + /// Line's relative intensity, (0, 1]. + /// + /// + /// Line's relative intensity is relation of line's + /// value to maximum found intensity. For the longest line (line with highest intesity) the + /// relative intensity is set to 1. If line's relative is set 0.5, for example, this means + /// its intensity is half of maximum found intensity. + /// + /// + public readonly double RelativeIntensity; + + /// + /// Initializes a new instance of the class. + /// + /// + /// Line's slope. + /// Line's distance from image center. + /// Line's absolute intensity. + /// Line's relative intensity. + /// + public HoughLine( double theta, short radius, short intensity, double relativeIntensity ) + { + Theta = theta; + Radius = radius; + Intensity = intensity; + RelativeIntensity = relativeIntensity; + } + + /// + /// Compare the object with another instance of this class. + /// + /// + /// Object to compare with. + /// + /// A signed number indicating the relative values of this instance and value: 1) greater than zero - + /// this instance is greater than value; 2) zero - this instance is equal to value; + /// 3) greater than zero - this instance is less than value. + /// + /// The sort order is descending. + /// + /// + /// Object are compared using their intensity value. + /// + /// + public int CompareTo( object value ) + { + return ( -Intensity.CompareTo( ( (HoughLine) value ).Intensity ) ); + } + } + + /// + /// Hough line transformation. + /// + /// + /// The class implements Hough line transformation, which allows to detect + /// straight lines in an image. Lines, which are found by the class, are provided in + /// polar coordinates system - + /// lines' distances from image's center and lines' slopes are provided. + /// The pole of polar coordinates system is put into processing image's center and the polar + /// axis is directed to the right from the pole. Lines' slope is measured in degrees and + /// is actually represented by angle between polar axis and line's radius (normal going + /// from pole to the line), which is measured in counter-clockwise direction. + /// + /// + /// Found lines may have negative radius. + /// This means, that the line resides in lower part of the polar coordinates system + /// and its value should be increased by 180 degrees and + /// radius should be made positive. + /// + /// + /// The class accepts binary images for processing, which are represented by 8 bpp grayscale images. + /// All black pixels (0 pixel's value) are treated as background, but pixels with different value are + /// treated as lines' pixels. + /// + /// See also documentation to class for additional information + /// about Hough Lines. + /// + /// Sample usage: + /// + /// HoughLineTransformation lineTransform = new HoughLineTransformation( ); + /// // apply Hough line transofrm + /// lineTransform.ProcessImage( sourceImage ); + /// Bitmap houghLineImage = lineTransform.ToBitmap( ); + /// // get lines using relative intensity + /// HoughLine[] lines = lineTransform.GetLinesByRelativeIntensity( 0.5 ); + /// + /// foreach ( HoughLine line in lines ) + /// { + /// // ... + /// } + /// + /// + /// Initial image: + /// + /// Hough line transformation image: + /// + /// + /// + /// + /// + public class HoughLineTransformation + { + // Hough transformation quality settings + private int stepsPerDegree; + private int houghHeight; + private double thetaStep; + + // precalculated Sine and Cosine values + private double[] sinMap; + private double[] cosMap; + // Hough map + private short[,] houghMap; + private short maxMapIntensity = 0; + + private int localPeakRadius = 4; + private short minLineIntensity = 10; + private ArrayList lines = new ArrayList( ); + + /// + /// Steps per degree. + /// + /// + /// The value defines quality of Hough line transformation and its ability to detect + /// lines' slope precisely. + /// + /// Default value is set to 1. Minimum value is 1. Maximum value is 10. + /// + public int StepsPerDegree + { + get { return stepsPerDegree; } + set + { + stepsPerDegree = Math.Max( 1, Math.Min( 10, value ) ); + houghHeight = 180 * stepsPerDegree; + thetaStep = Math.PI / houghHeight; + + // precalculate Sine and Cosine values + sinMap = new double[houghHeight]; + cosMap = new double[houghHeight]; + + for ( int i = 0; i < houghHeight; i++ ) + { + sinMap[i] = Math.Sin( i * thetaStep ); + cosMap[i] = Math.Cos( i * thetaStep ); + } + } + } + + /// + /// Minimum line's intensity in Hough map to recognize a line. + /// + /// + /// The value sets minimum intensity level for a line. If a value in Hough + /// map has lower intensity, then it is not treated as a line. + /// + /// Default value is set to 10. + /// + public short MinLineIntensity + { + get { return minLineIntensity; } + set { minLineIntensity = value; } + } + + /// + /// Radius for searching local peak value. + /// + /// + /// The value determines radius around a map's value, which is analyzed to determine + /// if the map's value is a local maximum in specified area. + /// + /// Default value is set to 4. Minimum value is 1. Maximum value is 10. + /// + public int LocalPeakRadius + { + get { return localPeakRadius; } + set { localPeakRadius = Math.Max( 1, Math.Min( 10, value ) ); } + } + + /// + /// Maximum found intensity in Hough map. + /// + /// + /// The property provides maximum found line's intensity. + /// + public short MaxIntensity + { + get { return maxMapIntensity; } + } + + /// + /// Found lines count. + /// + /// + /// The property provides total number of found lines, which intensity is higher (or equal to), + /// than the requested minimum intensity. + /// + public int LinesCount + { + get { return lines.Count; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public HoughLineTransformation( ) + { + StepsPerDegree = 1; + } + + /// + /// Process an image building Hough map. + /// + /// + /// Source image to process. + /// + /// Unsupported pixel format of the source image. + /// + public void ProcessImage( Bitmap image ) + { + ProcessImage( image, new Rectangle( 0, 0, image.Width, image.Height ) ); + } + + /// + /// Process an image building Hough map. + /// + /// + /// Source image to process. + /// Image's rectangle to process. + /// + /// Unsupported pixel format of the source image. + /// + public void ProcessImage( Bitmap image, Rectangle rect ) + { + // check image format + if ( image.PixelFormat != PixelFormat.Format8bppIndexed ) + { + throw new UnsupportedImageFormatException( "Unsupported pixel format of the source image." ); + } + + // lock source image + BitmapData imageData = image.LockBits( + new Rectangle( 0, 0, image.Width, image.Height ), + ImageLockMode.ReadOnly, PixelFormat.Format8bppIndexed ); + + try + { + // process the image + ProcessImage( new UnmanagedImage( imageData ), rect ); + } + finally + { + // unlock image + image.UnlockBits( imageData ); + } + } + + /// + /// Process an image building Hough map. + /// + /// + /// Source image data to process. + /// + /// Unsupported pixel format of the source image. + /// + public void ProcessImage( BitmapData imageData ) + { + ProcessImage( new UnmanagedImage( imageData ), + new Rectangle( 0, 0, imageData.Width, imageData.Height ) ); + } + + /// + /// Process an image building Hough map. + /// + /// + /// Source image data to process. + /// Image's rectangle to process. + /// + /// Unsupported pixel format of the source image. + /// + public void ProcessImage( BitmapData imageData, Rectangle rect ) + { + ProcessImage( new UnmanagedImage( imageData ), rect ); + } + + /// + /// Process an image building Hough map. + /// + /// + /// Source unmanaged image to process. + /// + /// Unsupported pixel format of the source image. + /// + public void ProcessImage( UnmanagedImage image ) + { + ProcessImage( image, new Rectangle( 0, 0, image.Width, image.Height ) ); + } + + /// + /// Process an image building Hough map. + /// + /// + /// Source unmanaged image to process. + /// Image's rectangle to process. + /// + /// Unsupported pixel format of the source image. + /// + public void ProcessImage( UnmanagedImage image, Rectangle rect ) + { + if ( image.PixelFormat != PixelFormat.Format8bppIndexed ) + { + throw new UnsupportedImageFormatException( "Unsupported pixel format of the source image." ); + } + + // get source image size + int width = image.Width; + int height = image.Height; + int halfWidth = width / 2; + int halfHeight = height / 2; + + // make sure the specified rectangle recides with the source image + rect.Intersect( new Rectangle( 0, 0, width, height ) ); + + int startX = -halfWidth + rect.Left; + int startY = -halfHeight + rect.Top; + int stopX = width - halfWidth - ( width - rect.Right ); + int stopY = height - halfHeight - ( height - rect.Bottom ); + + int offset = image.Stride - rect.Width; + + // calculate Hough map's width + int halfHoughWidth = (int) Math.Sqrt( halfWidth * halfWidth + halfHeight * halfHeight ); + int houghWidth = halfHoughWidth * 2; + + houghMap = new short[houghHeight, houghWidth]; + + // do the job + unsafe + { + byte* src = (byte*) image.ImageData.ToPointer( ) + + rect.Top * image.Stride + rect.Left; + + // for each row + for ( int y = startY; y < stopY; y++ ) + { + // for each pixel + for ( int x = startX; x < stopX; x++, src++ ) + { + if ( *src != 0 ) + { + // for each Theta value + for ( int theta = 0; theta < houghHeight; theta++ ) + { + int radius = (int) Math.Round( cosMap[theta] * x - sinMap[theta] * y ) + halfHoughWidth; + + if ( ( radius < 0 ) || ( radius >= houghWidth ) ) + continue; + + houghMap[theta, radius]++; + } + } + } + src += offset; + } + } + + // find max value in Hough map + maxMapIntensity = 0; + for ( int i = 0; i < houghHeight; i++ ) + { + for ( int j = 0; j < houghWidth; j++ ) + { + if ( houghMap[i, j] > maxMapIntensity ) + { + maxMapIntensity = houghMap[i, j]; + } + } + } + + CollectLines( ); + } + + /// + /// Convert Hough map to bitmap. + /// + /// + /// Returns 8 bppp grayscale bitmap, which shows Hough map. + /// + /// Hough transformation was not yet done by calling + /// ProcessImage() method. + /// + public Bitmap ToBitmap( ) + { + // check if Hough transformation was made already + if ( houghMap == null ) + { + throw new ApplicationException( "Hough transformation was not done yet." ); + } + + int width = houghMap.GetLength( 1 ); + int height = houghMap.GetLength( 0 ); + + // create new image + Bitmap image = AForge.Imaging.Image.CreateGrayscaleImage( width, height ); + + // lock destination bitmap data + BitmapData imageData = image.LockBits( + new Rectangle( 0, 0, width, height ), + ImageLockMode.ReadWrite, PixelFormat.Format8bppIndexed ); + + int offset = imageData.Stride - width; + float scale = 255.0f / maxMapIntensity; + + // do the job + unsafe + { + byte * dst = (byte*) imageData.Scan0.ToPointer( ); + + for ( int y = 0; y < height; y++ ) + { + for ( int x = 0; x < width; x++, dst++ ) + { + *dst = (byte) System.Math.Min( 255, (int) ( scale * houghMap[y, x] ) ); + } + dst += offset; + } + } + + // unlock destination images + image.UnlockBits( imageData ); + + return image; + } + + /// + /// Get specified amount of lines with highest intensity. + /// + /// + /// Amount of lines to get. + /// + /// Returns array of most intesive lines. If there are no lines detected, + /// the returned array has zero length. + /// + public HoughLine[] GetMostIntensiveLines( int count ) + { + // lines count + int n = Math.Min( count, lines.Count ); + + // result array + HoughLine[] dst = new HoughLine[n]; + lines.CopyTo( 0, dst, 0, n ); + + return dst; + } + + /// + /// Get lines with relative intensity higher then specified value. + /// + /// + /// Minimum relative intesity of lines. + /// + /// Returns array of lines. If there are no lines detected, + /// the returned array has zero length. + /// + public HoughLine[] GetLinesByRelativeIntensity( double minRelativeIntensity ) + { + int count = 0, n = lines.Count; + + while ( ( count < n ) && ( ( (HoughLine) lines[count] ).RelativeIntensity >= minRelativeIntensity ) ) + count++; + + return GetMostIntensiveLines( count ); + } + + + // Collect lines with intesities greater or equal then specified + private void CollectLines( ) + { + int maxTheta = houghMap.GetLength( 0 ); + int maxRadius = houghMap.GetLength( 1 ); + + short intensity; + bool foundGreater; + + int halfHoughWidth = maxRadius >> 1; + + // clean lines collection + lines.Clear( ); + + // for each Theta value + for ( int theta = 0; theta < maxTheta; theta++ ) + { + // for each Radius value + for ( int radius = 0; radius < maxRadius; radius++ ) + { + // get current value + intensity = houghMap[theta, radius]; + + if ( intensity < minLineIntensity ) + continue; + + foundGreater = false; + + // check neighboors + for ( int tt = theta - localPeakRadius, ttMax = theta + localPeakRadius; tt < ttMax; tt++ ) + { + // break if it is not local maximum + if ( foundGreater == true ) + break; + + int cycledTheta = tt; + int cycledRadius = radius; + + // check limits + if ( cycledTheta < 0 ) + { + cycledTheta = maxTheta + cycledTheta; + cycledRadius = maxRadius - cycledRadius; + } + if ( cycledTheta >= maxTheta ) + { + cycledTheta -= maxTheta; + cycledRadius = maxRadius - cycledRadius; + } + + for ( int tr = cycledRadius - localPeakRadius, trMax = cycledRadius + localPeakRadius; tr < trMax; tr++ ) + { + // skip out of map values + if ( tr < 0 ) + continue; + if ( tr >= maxRadius ) + break; + + // compare the neighboor with current value + if ( houghMap[cycledTheta, tr] > intensity ) + { + foundGreater = true; + break; + } + } + } + + // was it local maximum ? + if ( !foundGreater ) + { + // we have local maximum + lines.Add( new HoughLine( (double) theta / stepsPerDegree, (short) ( radius - halfHoughWidth ), intensity, (double) intensity / maxMapIntensity ) ); + } + } + } + + lines.Sort( ); + } + } +} diff --git a/Sources/Imaging/IBlobsFilter.cs b/Sources/Imaging/IBlobsFilter.cs new file mode 100644 index 00000000..f5e6de80 --- /dev/null +++ b/Sources/Imaging/IBlobsFilter.cs @@ -0,0 +1,34 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2005-2010 +// andrew.kirillov@aforgenet.com + +namespace AForge.Imaging +{ + /// + /// Interface for custom blobs' filters used for filtering blobs after + /// blob counting. + /// + /// + /// The interface should be implemented by classes, which perform + /// custom blobs' filtering different from default filtering implemented in + /// . See + /// for additional information. + /// + /// + public interface IBlobsFilter + { + /// + /// Check specified blob and decide if should be kept or not. + /// + /// + /// Blob to check. + /// + /// Return if the blob should be kept or + /// if it should be removed. + /// + bool Check( Blob blob ); + } +} diff --git a/Sources/Imaging/IBlockMatching.cs b/Sources/Imaging/IBlockMatching.cs new file mode 100644 index 00000000..3e5620cc --- /dev/null +++ b/Sources/Imaging/IBlockMatching.cs @@ -0,0 +1,72 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2005-2009 +// andrew.kirillov@aforgenet.com +// +// Copyright © Joan Charmant, 2008 +// joan.charmant@gmail.com +// +namespace AForge.Imaging +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Block matching interface. + /// + /// + /// The interface specifies set of methods, which should be implemented by different + /// block matching algorithms. + /// + /// Block matching algorithms work with two images - source and search image - and + /// a set of reference points. For each provided reference point, the algorithm takes + /// a block from source image (reference point is a coordinate of block's center) and finds + /// the best match for it in search image providing its coordinate (search is done within + /// search window of specified size). In other words, block matching algorithm tries to + /// find new coordinates in search image of specified reference points in source image. + /// + /// + /// + public interface IBlockMatching + { + /// + /// Process images matching blocks between them. + /// + /// + /// Source image with reference points. + /// List of reference points to be matched. + /// Image in which the reference points will be looked for. + /// + /// Returns list of found block matches. + /// + List ProcessImage( Bitmap sourceImage, List coordinates, Bitmap searchImage ); + + /// + /// Process images matching blocks between them. + /// + /// + /// Source image with reference points. + /// List of reference points to be matched. + /// Image in which the reference points will be looked for. + /// + /// Returns list of found block matches. + /// + List ProcessImage( BitmapData sourceImageData, List coordinates, BitmapData searchImageData ); + + /// + /// Process images matching blocks between them. + /// + /// + /// Source unmanaged image with reference points. + /// List of reference points to be matched. + /// Unmanaged image in which the reference points will be looked for. + /// + /// Returns list of found block matches. + /// + List ProcessImage( UnmanagedImage sourceImage, List coordinates, UnmanagedImage searchImage ); + } +} diff --git a/Sources/Imaging/ICornersDetector.cs b/Sources/Imaging/ICornersDetector.cs new file mode 100644 index 00000000..4f0e06c7 --- /dev/null +++ b/Sources/Imaging/ICornersDetector.cs @@ -0,0 +1,56 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2005-2009 +// andrew.kirillov@aforgenet.com +// + +namespace AForge.Imaging +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + using AForge; + + /// + /// Corners detector's interface. + /// + /// + /// The interface specifies set of methods, which should be implemented by different + /// corners detection algorithms. + /// + public interface ICornersDetector + { + /// + /// Process image looking for corners. + /// + /// + /// Source image to process. + /// + /// Returns list of found corners (X-Y coordinates). + /// + List ProcessImage( Bitmap image ); + + /// + /// Process image looking for corners. + /// + /// + /// Source image data to process. + /// + /// Returns list of found corners (X-Y coordinates). + /// + List ProcessImage( BitmapData imageData ); + + /// + /// Process image looking for corners. + /// + /// + /// Unmanaged source image to process. + /// + /// Returns list of found corners (X-Y coordinates). + /// + List ProcessImage( UnmanagedImage image ); + } +} diff --git a/Sources/Imaging/ITemplateMatching.cs b/Sources/Imaging/ITemplateMatching.cs new file mode 100644 index 00000000..cf1b9ed8 --- /dev/null +++ b/Sources/Imaging/ITemplateMatching.cs @@ -0,0 +1,61 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2005-2009 +// andrew.kirillov@aforgenet.com +// + +namespace AForge.Imaging +{ + using System; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Template matching algorithm's interface. + /// + /// + /// The interface specifies set of methods, which should be implemented by different + /// template matching algorithms - algorithms, which search for the given template in specified + /// image. + /// + public interface ITemplateMatching + { + /// + /// Process image looking for matchings with specified template. + /// + /// + /// Source image to process. + /// Template image to search for. + /// Rectangle in source image to search template for. + /// + /// Returns array of found matchings. + /// + TemplateMatch[] ProcessImage( Bitmap image, Bitmap template, Rectangle searchZone ); + + /// + /// Process image looking for matchings with specified template. + /// + /// + /// Source image data to process. + /// Template image to search for. + /// Rectangle in source image to search template for. + /// + /// Returns array of found matchings. + /// + TemplateMatch[] ProcessImage( BitmapData imageData, BitmapData templateData, Rectangle searchZone ); + + /// + /// Process image looking for matchings with specified template. + /// + /// + /// Unmanaged source image to process. + /// Unmanaged template image to search for. + /// Rectangle in source image to search template for. + /// + /// Returns array of found matchings. + /// + TemplateMatch[] ProcessImage( UnmanagedImage image, UnmanagedImage template, Rectangle searchZone ); + } +} diff --git a/Sources/Imaging/Image.cs b/Sources/Imaging/Image.cs new file mode 100644 index 00000000..4bf52389 --- /dev/null +++ b/Sources/Imaging/Image.cs @@ -0,0 +1,523 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +namespace AForge.Imaging +{ + using System; + using System.IO; + using System.Drawing; + using System.Drawing.Imaging; + using AForge; + + /// + /// Core image relatad methods. + /// + /// + /// All methods of this class are static and represent general routines + /// used by different image processing classes. + /// + public static class Image + { + /// + /// Check if specified 8 bpp image is grayscale. + /// + /// + /// Image to check. + /// + /// Returns true if the image is grayscale or false otherwise. + /// + /// The methods checks if the image is a grayscale image of 256 gradients. + /// The method first examines if the image's pixel format is + /// Format8bppIndexed + /// and then it examines its palette to check if the image is grayscale or not. + /// + public static bool IsGrayscale( Bitmap image ) + { + bool ret = false; + + // check pixel format + if ( image.PixelFormat == PixelFormat.Format8bppIndexed ) + { + ret = true; + // check palette + ColorPalette cp = image.Palette; + Color c; + // init palette + for ( int i = 0; i < 256; i++ ) + { + c = cp.Entries[i]; + if ( ( c.R != i ) || ( c.G != i ) || ( c.B != i ) ) + { + ret = false; + break; + } + } + } + return ret; + } + + /// + /// Create and initialize new 8 bpp grayscale image. + /// + /// + /// Image width. + /// Image height. + /// + /// Returns the created grayscale image. + /// + /// The method creates new 8 bpp grayscale image and initializes its palette. + /// Grayscale image is represented as + /// Format8bppIndexed + /// image with palette initialized to 256 gradients of gray color. + /// + public static Bitmap CreateGrayscaleImage( int width, int height ) + { + // create new image + Bitmap image = new Bitmap( width, height, PixelFormat.Format8bppIndexed ); + // set palette to grayscale + SetGrayscalePalette( image ); + // return new image + return image; + } + + /// + /// Set pallete of the 8 bpp indexed image to grayscale. + /// + /// + /// Image to initialize. + /// + /// The method initializes palette of + /// Format8bppIndexed + /// image with 256 gradients of gray color. + /// + /// Provided image is not 8 bpp indexed image. + /// + public static void SetGrayscalePalette( Bitmap image ) + { + // check pixel format + if ( image.PixelFormat != PixelFormat.Format8bppIndexed ) + throw new UnsupportedImageFormatException( "Source image is not 8 bpp image." ); + + // get palette + ColorPalette cp = image.Palette; + // init palette + for ( int i = 0; i < 256; i++ ) + { + cp.Entries[i] = Color.FromArgb( i, i, i ); + } + // set palette back + image.Palette = cp; + } + + /// + /// Clone image. + /// + /// + /// Source image. + /// Pixel format of result image. + /// + /// Returns clone of the source image with specified pixel format. + /// + /// The original Bitmap.Clone() + /// does not produce the desired result - it does not create a clone with specified pixel format. + /// More of it, the original method does not create an actual clone - it does not create a copy + /// of the image. That is why this method was implemented to provide the functionality. + /// + public static Bitmap Clone( Bitmap source, PixelFormat format ) + { + // copy image if pixel format is the same + if ( source.PixelFormat == format ) + return Clone( source ); + + int width = source.Width; + int height = source.Height; + + // create new image with desired pixel format + Bitmap bitmap = new Bitmap( width, height, format ); + + // draw source image on the new one using Graphics + Graphics g = Graphics.FromImage( bitmap ); + g.DrawImage( source, 0, 0, width, height ); + g.Dispose( ); + + return bitmap; + } + + /// + /// Clone image. + /// + /// + /// Source image. + /// + /// Return clone of the source image. + /// + /// The original Bitmap.Clone() + /// does not produce the desired result - it does not create an actual clone (it does not create a copy + /// of the image). That is why this method was implemented to provide the functionality. + /// + public static Bitmap Clone( Bitmap source ) + { + // lock source bitmap data + BitmapData sourceData = source.LockBits( + new Rectangle( 0, 0, source.Width, source.Height ), + ImageLockMode.ReadOnly, source.PixelFormat ); + + // create new image + Bitmap destination = Clone( sourceData ); + + // unlock source image + source.UnlockBits( sourceData ); + + // + if ( + ( source.PixelFormat == PixelFormat.Format1bppIndexed ) || + ( source.PixelFormat == PixelFormat.Format4bppIndexed ) || + ( source.PixelFormat == PixelFormat.Format8bppIndexed ) || + ( source.PixelFormat == PixelFormat.Indexed ) ) + { + ColorPalette srcPalette = source.Palette; + ColorPalette dstPalette = destination.Palette; + + int n = srcPalette.Entries.Length; + + // copy pallete + for ( int i = 0; i < n; i++ ) + { + dstPalette.Entries[i] = srcPalette.Entries[i]; + } + + destination.Palette = dstPalette; + } + + return destination; + } + + /// + /// Clone image. + /// + /// + /// Source image data. + /// + /// Clones image from source image data. The message does not clone pallete in the + /// case if the source image has indexed pixel format. + /// + public static Bitmap Clone( BitmapData sourceData ) + { + // get source image size + int width = sourceData.Width; + int height = sourceData.Height; + + // create new image + Bitmap destination = new Bitmap( width, height, sourceData.PixelFormat ); + + // lock destination bitmap data + BitmapData destinationData = destination.LockBits( + new Rectangle( 0, 0, width, height ), + ImageLockMode.ReadWrite, destination.PixelFormat ); + + AForge.SystemTools.CopyUnmanagedMemory( destinationData.Scan0, sourceData.Scan0, height * sourceData.Stride ); + + // unlock destination image + destination.UnlockBits( destinationData ); + + return destination; + } + + /// + /// Format an image. + /// + /// + /// Source image to format. + /// + /// Formats the image to one of the formats, which are supported + /// by the AForge.Imaging library. The image is left untouched in the + /// case if it is already of + /// Format24bppRgb or + /// Format32bppRgb or + /// Format32bppArgb or + /// Format48bppRgb or + /// Format64bppArgb + /// format or it is grayscale, otherwise the image + /// is converted to Format24bppRgb + /// format. + /// + /// The method is deprecated and method should + /// be used instead with specifying desired pixel format. + /// + /// + [Obsolete( "Use Clone(Bitmap, PixelFormat) method instead and specify desired pixel format" )] + public static void FormatImage( ref Bitmap image ) + { + if ( + ( image.PixelFormat != PixelFormat.Format24bppRgb ) && + ( image.PixelFormat != PixelFormat.Format32bppRgb ) && + ( image.PixelFormat != PixelFormat.Format32bppArgb ) && + ( image.PixelFormat != PixelFormat.Format48bppRgb ) && + ( image.PixelFormat != PixelFormat.Format64bppArgb ) && + ( image.PixelFormat != PixelFormat.Format16bppGrayScale ) && + ( IsGrayscale( image ) == false ) + ) + { + Bitmap tmp = image; + // convert to 24 bits per pixel + image = Clone( tmp, PixelFormat.Format24bppRgb ); + // delete old image + tmp.Dispose( ); + } + } + + /// + /// Load bitmap from file. + /// + /// + /// File name to load bitmap from. + /// + /// Returns loaded bitmap. + /// + /// The method is provided as an alternative of + /// method to solve the issues of locked file. The standard .NET's method locks the source file until + /// image's object is disposed, so the file can not be deleted or overwritten. This method workarounds the issue and + /// does not lock the source file. + /// + /// Sample usage: + /// + /// Bitmap image = AForge.Imaging.Image.FromFile( "test.jpg" ); + /// + /// + /// + public static System.Drawing.Bitmap FromFile( string fileName ) + { + Bitmap loadedImage = null; + FileStream stream = null; + + try + { + // read image to temporary memory stream + stream = File.OpenRead( fileName ); + MemoryStream memoryStream = new MemoryStream( ); + + byte[] buffer = new byte[10000]; + while ( true ) + { + int read = stream.Read( buffer, 0, 10000 ); + + if ( read == 0 ) + break; + + memoryStream.Write( buffer, 0, read ); + } + + loadedImage = (Bitmap) Bitmap.FromStream( memoryStream ); + } + finally + { + if ( stream != null ) + { + stream.Close( ); + stream.Dispose( ); + } + } + + return loadedImage; + } + + /// + /// Convert bitmap with 16 bits per plane to a bitmap with 8 bits per plane. + /// + /// + /// Source image to convert. + /// + /// Returns new image which is a copy of the source image but with 8 bits per plane. + /// + /// The routine does the next pixel format conversions: + /// + /// Format16bppGrayScale to + /// Format8bppIndexed with grayscale palette; + /// Format48bppRgb to + /// Format24bppRgb; + /// Format64bppArgb to + /// Format32bppArgb; + /// Format64bppPArgb to + /// Format32bppPArgb. + /// + /// + /// + /// Invalid pixel format of the source image. + /// + public static Bitmap Convert16bppTo8bpp( Bitmap bimap ) + { + Bitmap newImage = null; + int layers = 0; + + // get image size + int width = bimap.Width; + int height = bimap.Height; + + // create new image depending on source image format + switch ( bimap.PixelFormat ) + { + case PixelFormat.Format16bppGrayScale: + // create new grayscale image + newImage = CreateGrayscaleImage( width, height ); + layers = 1; + break; + + case PixelFormat.Format48bppRgb: + // create new color 24 bpp image + newImage = new Bitmap( width, height, PixelFormat.Format24bppRgb ); + layers = 3; + break; + + case PixelFormat.Format64bppArgb: + // create new color 32 bpp image + newImage = new Bitmap( width, height, PixelFormat.Format32bppArgb ); + layers = 4; + break; + + case PixelFormat.Format64bppPArgb: + // create new color 32 bpp image + newImage = new Bitmap( width, height, PixelFormat.Format32bppPArgb ); + layers = 4; + break; + + default: + throw new UnsupportedImageFormatException( "Invalid pixel format of the source image." ); + } + + // lock both images + BitmapData sourceData = bimap.LockBits( new Rectangle( 0, 0, width, height ), + ImageLockMode.ReadOnly, bimap.PixelFormat ); + BitmapData newData = newImage.LockBits( new Rectangle( 0, 0, width, height ), + ImageLockMode.ReadWrite, newImage.PixelFormat ); + + unsafe + { + // base pointers + byte* sourceBasePtr = (byte*) sourceData.Scan0.ToPointer( ); + byte* newBasePtr = (byte*) newData.Scan0.ToPointer( ); + // image strides + int sourceStride = sourceData.Stride; + int newStride = newData.Stride; + + for ( int y = 0; y < height; y++ ) + { + ushort* sourcePtr = (ushort*) ( sourceBasePtr + y * sourceStride ); + byte* newPtr = (byte*) ( newBasePtr + y * newStride ); + + for ( int x = 0, lineSize = width * layers; x < lineSize; x++, sourcePtr++, newPtr++ ) + { + *newPtr = (byte) ( *sourcePtr >> 8 ); + } + } + } + + // unlock both image + bimap.UnlockBits( sourceData ); + newImage.UnlockBits( newData ); + + return newImage; + } + + /// + /// Convert bitmap with 8 bits per plane to a bitmap with 16 bits per plane. + /// + /// + /// Source image to convert. + /// + /// Returns new image which is a copy of the source image but with 16 bits per plane. + /// + /// The routine does the next pixel format conversions: + /// + /// Format8bppIndexed (grayscale palette assumed) to + /// Format16bppGrayScale; + /// Format24bppRgb to + /// Format48bppRgb; + /// Format32bppArgb to + /// Format64bppArgb; + /// Format32bppPArgb to + /// Format64bppPArgb. + /// + /// + /// + /// Invalid pixel format of the source image. + /// + public static Bitmap Convert8bppTo16bpp( Bitmap bimap ) + { + Bitmap newImage = null; + int layers = 0; + + // get image size + int width = bimap.Width; + int height = bimap.Height; + + // create new image depending on source image format + switch ( bimap.PixelFormat ) + { + case PixelFormat.Format8bppIndexed: + // create new grayscale image + newImage = new Bitmap( width, height, PixelFormat.Format16bppGrayScale ); + layers = 1; + break; + + case PixelFormat.Format24bppRgb: + // create new color 48 bpp image + newImage = new Bitmap( width, height, PixelFormat.Format48bppRgb ); + layers = 3; + break; + + case PixelFormat.Format32bppArgb: + // create new color 64 bpp image + newImage = new Bitmap( width, height, PixelFormat.Format64bppArgb ); + layers = 4; + break; + + case PixelFormat.Format32bppPArgb: + // create new color 64 bpp image + newImage = new Bitmap( width, height, PixelFormat.Format64bppPArgb ); + layers = 4; + break; + + default: + throw new UnsupportedImageFormatException( "Invalid pixel format of the source image." ); + } + + // lock both images + BitmapData sourceData = bimap.LockBits( new Rectangle( 0, 0, width, height ), + ImageLockMode.ReadOnly, bimap.PixelFormat ); + BitmapData newData = newImage.LockBits( new Rectangle( 0, 0, width, height ), + ImageLockMode.ReadWrite, newImage.PixelFormat ); + + unsafe + { + // base pointers + byte* sourceBasePtr = (byte*) sourceData.Scan0.ToPointer( ); + byte* newBasePtr = (byte*) newData.Scan0.ToPointer( ); + // image strides + int sourceStride = sourceData.Stride; + int newStride = newData.Stride; + + for ( int y = 0; y < height; y++ ) + { + byte* sourcePtr = (byte*) ( sourceBasePtr + y * sourceStride ); + ushort* newPtr = (ushort*) ( newBasePtr + y * newStride ); + + for ( int x = 0, lineSize = width * layers; x < lineSize; x++, sourcePtr++, newPtr++ ) + { + *newPtr = (ushort) ( *sourcePtr << 8 ); + } + } + } + + // unlock both image + bimap.UnlockBits( sourceData ); + newImage.UnlockBits( newData ); + + return newImage; + } + } +} diff --git a/Sources/Imaging/ImageStatistics.cs b/Sources/Imaging/ImageStatistics.cs new file mode 100644 index 00000000..41eb3573 --- /dev/null +++ b/Sources/Imaging/ImageStatistics.cs @@ -0,0 +1,649 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +namespace AForge.Imaging +{ + using System; + using System.Drawing; + using System.Drawing.Imaging; + using AForge.Math; + + /// + /// Gather statistics about image in RGB color space. + /// + /// + /// The class is used to accumulate statistical values about images, + /// like histogram, mean, standard deviation, etc. for each color channel in RGB color + /// space. + /// + /// The class accepts 8 bpp grayscale and 24/32 bpp color images for processing. + /// + /// Sample usage: + /// + /// // gather statistics + /// ImageStatistics stat = new ImageStatistics( image ); + /// // get red channel's histogram + /// Histogram red = stat.Red; + /// // check mean value of red channel + /// if ( red.Mean > 128 ) + /// { + /// // do further processing + /// } + /// + /// + /// + /// + /// + public class ImageStatistics + { + private Histogram red; + private Histogram green; + private Histogram blue; + private Histogram gray; + + private Histogram redWithoutBlack; + private Histogram greenWithoutBlack; + private Histogram blueWithoutBlack; + private Histogram grayWithoutBlack; + + private int pixels; + private int pixelsWithoutBlack; + + /// + /// Histogram of red channel. + /// + /// + /// The property is valid only for color images + /// (see property). + /// + public Histogram Red + { + get + { + if ( red == null ) + { + throw new InvalidImagePropertiesException( ExceptionMessage.ColorHistogramException ); + } + return red; + } + } + + /// + /// Histogram of green channel. + /// + /// + /// The property is valid only for color images + /// (see property). + /// + public Histogram Green + { + get + { + if ( green == null ) + { + throw new InvalidImagePropertiesException( ExceptionMessage.ColorHistogramException ); + } + return green; + } + } + + /// + /// Histogram of blue channel. + /// + /// + /// The property is valid only for color images + /// (see property). + /// + public Histogram Blue + { + get + { + if ( blue == null ) + { + throw new InvalidImagePropertiesException( ExceptionMessage.ColorHistogramException ); + } + return blue; + } + } + + /// + /// Histogram of gray channel. + /// + /// + /// The property is valid only for grayscale images + /// (see property). + /// + public Histogram Gray + { + get + { + if ( gray == null ) + { + throw new InvalidImagePropertiesException( ExceptionMessage.GrayHistogramException ); + } + return gray; + } + } + + /// + /// Histogram of red channel excluding black pixels. + /// + /// + /// The property keeps statistics about red channel, which + /// excludes all black pixels, what affects mean, standard deviation, etc. + /// + /// The property is valid only for color images + /// (see property). + /// + public Histogram RedWithoutBlack + { + get + { + if ( redWithoutBlack == null ) + { + throw new InvalidImagePropertiesException( ExceptionMessage.ColorHistogramException ); + } + return redWithoutBlack; + } + } + + /// + /// Histogram of green channel excluding black pixels. + /// + /// + /// The property keeps statistics about green channel, which + /// excludes all black pixels, what affects mean, standard deviation, etc. + /// + /// The property is valid only for color images + /// (see property). + /// + public Histogram GreenWithoutBlack + { + get + { + if ( greenWithoutBlack == null ) + { + throw new InvalidImagePropertiesException( ExceptionMessage.ColorHistogramException ); + } + return greenWithoutBlack; + } + } + + /// + /// Histogram of blue channel excluding black pixels + /// + /// + /// The property keeps statistics about blue channel, which + /// excludes all black pixels, what affects mean, standard deviation, etc. + /// + /// The property is valid only for color images + /// (see property). + /// + public Histogram BlueWithoutBlack + { + get + { + if ( blueWithoutBlack == null ) + { + throw new InvalidImagePropertiesException( ExceptionMessage.ColorHistogramException ); + } + return blueWithoutBlack; + } + } + + /// + /// Histogram of gray channel channel excluding black pixels. + /// + /// + /// The property keeps statistics about gray channel, which + /// excludes all black pixels, what affects mean, standard deviation, etc. + /// + /// The property is valid only for grayscale images + /// (see property). + /// + public Histogram GrayWithoutBlack + { + get + { + if ( grayWithoutBlack == null ) + { + throw new InvalidImagePropertiesException( ExceptionMessage.GrayHistogramException ); + } + return grayWithoutBlack; + } + } + + /// + /// Total pixels count in the processed image. + /// + /// + public int PixelsCount + { + get { return pixels; } + } + + /// + /// Total pixels count in the processed image excluding black pixels. + /// + /// + public int PixelsCountWithoutBlack + { + get { return pixelsWithoutBlack; } + } + + /// + /// Value wich specifies if the processed image was color or grayscale. + /// + /// + /// If the value is set to then + /// property should be used to get statistics information about image. Otherwise + /// , and properties should be used + /// for color images. + /// + public bool IsGrayscale + { + get { return ( gray != null ); } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Image to gather statistics about. + /// + /// Source pixel format is not supported. + /// + public ImageStatistics( Bitmap image ) + { + CheckSourceFormat( image.PixelFormat ); + + // lock bitmap data + BitmapData imageData = image.LockBits( + new Rectangle( 0, 0, image.Width, image.Height ), + ImageLockMode.ReadOnly, image.PixelFormat ); + + try + { + // gather statistics + unsafe + { + + ProcessImage( new UnmanagedImage( imageData ), null, 0 ); + } + } + finally + { + // unlock image + image.UnlockBits( imageData ); + } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Image to gather statistics about. + /// Mask image which specifies areas to collect statistics for. + /// + /// The mask image must be a grayscale/binary (8bpp) image of the same size as the + /// specified source image, where black pixels (value 0) correspond to areas which should be excluded + /// from processing. So statistics is calculated only for pixels, which are none black in the mask image. + /// + /// + /// Source pixel format is not supported. + /// Mask image must be 8 bpp grayscale image. + /// Mask must have the same size as the source image to get statistics for. + /// + public ImageStatistics( Bitmap image, Bitmap mask ) + { + CheckSourceFormat( image.PixelFormat ); + CheckMaskProperties( mask.PixelFormat, new Size( mask.Width, mask.Height ), new Size( image.Width, image.Height ) ); + + // lock bitmap and mask data + BitmapData imageData = image.LockBits( + new Rectangle( 0, 0, image.Width, image.Height ), + ImageLockMode.ReadOnly, image.PixelFormat ); + BitmapData maskData = mask.LockBits( + new Rectangle( 0, 0, mask.Width, mask.Height ), + ImageLockMode.ReadOnly, mask.PixelFormat ); + + try + { + // gather statistics + unsafe + { + ProcessImage( new UnmanagedImage( imageData ), (byte*) maskData.Scan0.ToPointer( ), maskData.Stride ); + } + } + finally + { + // unlock images + image.UnlockBits( imageData ); + mask.UnlockBits( maskData ); + } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Image to gather statistics about. + /// Mask array which specifies areas to collect statistics for. + /// + /// The mask array must be of the same size as the specified source image, where 0 values + /// correspond to areas which should be excluded from processing. So statistics is calculated only for pixels, + /// which have none zero corresponding value in the mask. + /// + /// + /// Source pixel format is not supported. + /// Mask must have the same size as the source image to get statistics for. + /// + public ImageStatistics( Bitmap image, byte[,] mask ) + { + CheckSourceFormat( image.PixelFormat ); + CheckMaskProperties( PixelFormat.Format8bppIndexed, + new Size( mask.GetLength( 1 ), mask.GetLength( 0 ) ), new Size( image.Width, image.Height ) ); + + // lock bitmap data + BitmapData imageData = image.LockBits( + new Rectangle( 0, 0, image.Width, image.Height ), + ImageLockMode.ReadOnly, image.PixelFormat ); + + try + { + // gather statistics + unsafe + { + fixed ( byte* maskPtr = mask ) + { + ProcessImage( new UnmanagedImage( imageData ), maskPtr, mask.GetLength( 1 ) ); + } + } + } + finally + { + // unlock image + image.UnlockBits( imageData ); + } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Unmanaged image to gather statistics about. + /// + /// Source pixel format is not supported. + /// + public ImageStatistics( UnmanagedImage image ) + { + CheckSourceFormat( image.PixelFormat ); + unsafe + { + ProcessImage( image, null, 0 ); + } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Image to gather statistics about. + /// Mask image which specifies areas to collect statistics for. + /// + /// The mask image must be a grayscale/binary (8bpp) image of the same size as the + /// specified source image, where black pixels (value 0) correspond to areas which should be excluded + /// from processing. So statistics is calculated only for pixels, which are none black in the mask image. + /// + /// + /// Source pixel format is not supported. + /// Mask image must be 8 bpp grayscale image. + /// Mask must have the same size as the source image to get statistics for. + /// + public ImageStatistics( UnmanagedImage image, UnmanagedImage mask ) + { + CheckSourceFormat( image.PixelFormat ); + CheckMaskProperties( mask.PixelFormat, new Size( mask.Width, mask.Height ), new Size( image.Width, image.Height ) ); + + unsafe + { + ProcessImage( image, (byte*) mask.ImageData.ToPointer( ), mask.Stride ); + } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Image to gather statistics about. + /// Mask array which specifies areas to collect statistics for. + /// + /// The mask array must be of the same size as the specified source image, where 0 values + /// correspond to areas which should be excluded from processing. So statistics is calculated only for pixels, + /// which have none zero corresponding value in the mask. + /// + /// + /// Source pixel format is not supported. + /// Mask must have the same size as the source image to get statistics for. + /// + public ImageStatistics( UnmanagedImage image, byte[,] mask ) + { + CheckSourceFormat( image.PixelFormat ); + CheckMaskProperties( PixelFormat.Format8bppIndexed, + new Size( mask.GetLength( 1 ), mask.GetLength( 0 ) ), new Size( image.Width, image.Height ) ); + + unsafe + { + fixed ( byte* maskPtr = mask ) + { + ProcessImage( image, maskPtr, mask.GetLength( 1 ) ); + } + } + } + + // Gather statistics for the specified image + private unsafe void ProcessImage( UnmanagedImage image, byte* mask, int maskLineSize ) + { + // get image dimension + int width = image.Width; + int height = image.Height; + + pixels = pixelsWithoutBlack = 0; + + red = green = blue = gray = null; + redWithoutBlack = greenWithoutBlack = blueWithoutBlack = grayWithoutBlack = null; + + int maskOffset = maskLineSize - width; + + // check pixel format + if ( image.PixelFormat == PixelFormat.Format8bppIndexed ) + { + // alloc arrays + int[] g = new int[256]; + int[] gwb = new int[256]; + + byte value; + int offset = image.Stride - width; + + // do the job + byte * p = (byte*) image.ImageData.ToPointer( ); + + if ( mask == null ) + { + // for each pixel + for ( int y = 0; y < height; y++ ) + { + // for each pixel + for ( int x = 0; x < width; x++, p++ ) + { + // get pixel value + value = *p; + + g[value]++; + pixels++; + + if ( value != 0 ) + { + gwb[value]++; + pixelsWithoutBlack++; + } + } + p += offset; + } + } + else + { + // for each pixel + for ( int y = 0; y < height; y++ ) + { + // for each pixel + for ( int x = 0; x < width; x++, p++, mask++ ) + { + if ( *mask == 0 ) + continue; + + // get pixel value + value = *p; + + g[value]++; + pixels++; + + if ( value != 0 ) + { + gwb[value]++; + pixelsWithoutBlack++; + } + } + p += offset; + mask += maskOffset; + } + } + + // create historgram for gray level + gray = new Histogram( g ); + grayWithoutBlack = new Histogram( gwb ); + } + else + { + // alloc arrays + int[] r = new int[256]; + int[] g = new int[256]; + int[] b = new int[256]; + + int[] rwb = new int[256]; + int[] gwb = new int[256]; + int[] bwb = new int[256]; + + byte rValue, gValue, bValue; + int pixelSize = ( image.PixelFormat == PixelFormat.Format24bppRgb ) ? 3 : 4; + int offset = image.Stride - width * pixelSize; + + // do the job + byte * p = (byte*) image.ImageData.ToPointer( ); + + if ( mask == null ) + { + // for each line + for ( int y = 0; y < height; y++ ) + { + // for each pixel + for ( int x = 0; x < width; x++, p += pixelSize ) + { + // get pixel values + rValue = p[RGB.R]; + gValue = p[RGB.G]; + bValue = p[RGB.B]; + + r[rValue]++; + g[gValue]++; + b[bValue]++; + pixels++; + + if ( ( rValue != 0 ) || ( gValue != 0 ) || ( bValue != 0 ) ) + { + rwb[rValue]++; + gwb[gValue]++; + bwb[bValue]++; + pixelsWithoutBlack++; + } + } + p += offset; + } + } + else + { + // for each line + for ( int y = 0; y < height; y++ ) + { + // for each pixel + for ( int x = 0; x < width; x++, p += pixelSize, mask++ ) + { + if ( *mask == 0 ) + continue; + + // get pixel values + rValue = p[RGB.R]; + gValue = p[RGB.G]; + bValue = p[RGB.B]; + + r[rValue]++; + g[gValue]++; + b[bValue]++; + pixels++; + + if ( ( rValue != 0 ) || ( gValue != 0 ) || ( bValue != 0 ) ) + { + rwb[rValue]++; + gwb[gValue]++; + bwb[bValue]++; + pixelsWithoutBlack++; + } + } + p += offset; + mask += maskOffset; + } + } + + // create histograms + red = new Histogram( r ); + green = new Histogram( g ); + blue = new Histogram( b ); + + redWithoutBlack = new Histogram( rwb ); + greenWithoutBlack = new Histogram( gwb ); + blueWithoutBlack = new Histogram( bwb ); + } + } + + // Check pixel format of the source image + private void CheckSourceFormat( PixelFormat pixelFormat ) + { + if ( + ( pixelFormat != PixelFormat.Format8bppIndexed ) && + ( pixelFormat != PixelFormat.Format24bppRgb ) && + ( pixelFormat != PixelFormat.Format32bppRgb ) && + ( pixelFormat != PixelFormat.Format32bppArgb ) ) + { + throw new UnsupportedImageFormatException( "Source pixel format is not supported." ); + } + } + + private void CheckMaskProperties( PixelFormat maskFormat, Size maskSize, Size sourceImageSize ) + { + if ( maskFormat != PixelFormat.Format8bppIndexed ) + { + throw new ArgumentException( "Mask image must be 8 bpp grayscale image." ); + } + + if ( ( maskSize.Width != sourceImageSize.Width ) || ( maskSize.Height != sourceImageSize.Height ) ) + { + throw new ArgumentException( "Mask must have the same size as the source image to get statistics for." ); + } + } + } +} diff --git a/Sources/Imaging/ImageStatisticsHSL.cs b/Sources/Imaging/ImageStatisticsHSL.cs new file mode 100644 index 00000000..e1bbaefc --- /dev/null +++ b/Sources/Imaging/ImageStatisticsHSL.cs @@ -0,0 +1,429 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2011 +// contacts@aforgenet.com +// + +namespace AForge.Imaging +{ + using System; + using System.Drawing; + using System.Drawing.Imaging; + using AForge; + using AForge.Math; + + /// + /// Gather statistics about image in HSL color space. + /// + /// + /// The class is used to accumulate statistical values about images, + /// like histogram, mean, standard deviation, etc. for each HSL color channel. + /// + /// The class accepts 24 and 32 bpp color images for processing. + /// + /// Sample usage: + /// + /// // gather statistics + /// ImageStatisticsHSL stat = new ImageStatisticsHSL( image ); + /// // get saturation channel's histogram + /// ContinuousHistogram saturation = stat.Saturation; + /// // check mean value of saturation channel + /// if ( saturation.Mean > 0.5 ) + /// { + /// // do further processing + /// } + /// + /// + /// + /// + /// + public class ImageStatisticsHSL + { + private ContinuousHistogram luminance; + private ContinuousHistogram saturation; + + private ContinuousHistogram luminanceWithoutBlack; + private ContinuousHistogram saturationWithoutBlack; + + private int pixels; + private int pixelsWithoutBlack; + + /// + /// Histogram of saturation channel. + /// + /// + public ContinuousHistogram Saturation + { + get { return saturation; } + } + + /// + /// Histogram of luminance channel. + /// + /// + public ContinuousHistogram Luminance + { + get { return luminance; } + } + + /// + /// Histogram of saturation channel excluding black pixels. + /// + /// + /// The property keeps statistics about saturation channel, which + /// excludes all black pixels, what affects mean, standard deviation, etc. + /// + /// + public ContinuousHistogram SaturationWithoutBlack + { + get { return saturationWithoutBlack; } + } + + /// + /// Histogram of luminance channel excluding black pixels. + /// + /// + /// The property keeps statistics about luminance channel, which + /// excludes all black pixels, what affects mean, standard deviation, etc. + /// + /// + public ContinuousHistogram LuminanceWithoutBlack + { + get { return luminanceWithoutBlack; } + } + + /// + /// Total pixels count in the processed image. + /// + /// + public int PixelsCount + { + get { return pixels; } + } + + /// + /// Total pixels count in the processed image excluding black pixels. + /// + /// + public int PixelsCountWithoutBlack + { + get { return pixelsWithoutBlack; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Image to gather statistics about. + /// + /// Source pixel format is not supported. + /// + public ImageStatisticsHSL( Bitmap image ) + { + CheckSourceFormat( image.PixelFormat ); + + // lock bitmap data + BitmapData imageData = image.LockBits( + new Rectangle( 0, 0, image.Width, image.Height ), + ImageLockMode.ReadOnly, PixelFormat.Format24bppRgb ); + + try + { + // gather statistics + unsafe + { + ProcessImage( new UnmanagedImage( imageData ), null, 0 ); + } + } + finally + { + // unlock image + image.UnlockBits( imageData ); + } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Image to gather statistics about. + /// Mask image which specifies areas to collect statistics for. + /// + /// The mask image must be a grayscale/binary (8bpp) image of the same size as the + /// specified source image, where black pixels (value 0) correspond to areas which should be excluded + /// from processing. So statistics is calculated only for pixels, which are none black in the mask image. + /// + /// + /// Source pixel format is not supported. + /// Mask image must be 8 bpp grayscale image. + /// Mask must have the same size as the source image to get statistics for. + /// + public ImageStatisticsHSL( Bitmap image, Bitmap mask ) + { + CheckSourceFormat( image.PixelFormat ); + CheckMaskProperties( mask.PixelFormat, new Size( mask.Width, mask.Height ), new Size( image.Width, image.Height ) ); + + // lock bitmap and mask data + BitmapData imageData = image.LockBits( + new Rectangle( 0, 0, image.Width, image.Height ), + ImageLockMode.ReadOnly, image.PixelFormat ); + BitmapData maskData = mask.LockBits( + new Rectangle( 0, 0, mask.Width, mask.Height ), + ImageLockMode.ReadOnly, mask.PixelFormat ); + + try + { + // gather statistics + unsafe + { + ProcessImage( new UnmanagedImage( imageData ), (byte*) maskData.Scan0.ToPointer( ), maskData.Stride ); + } + } + finally + { + // unlock images + image.UnlockBits( imageData ); + mask.UnlockBits( maskData ); + } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Image to gather statistics about. + /// Mask array which specifies areas to collect statistics for. + /// + /// The mask array must be of the same size as the specified source image, where 0 values + /// correspond to areas which should be excluded from processing. So statistics is calculated only for pixels, + /// which have none zero corresponding value in the mask. + /// + /// + /// Source pixel format is not supported. + /// Mask must have the same size as the source image to get statistics for. + /// + public ImageStatisticsHSL( Bitmap image, byte[,] mask ) + { + CheckSourceFormat( image.PixelFormat ); + CheckMaskProperties( PixelFormat.Format8bppIndexed, + new Size( mask.GetLength( 1 ), mask.GetLength( 0 ) ), new Size( image.Width, image.Height ) ); + + // lock bitmap data + BitmapData imageData = image.LockBits( + new Rectangle( 0, 0, image.Width, image.Height ), + ImageLockMode.ReadOnly, image.PixelFormat ); + + try + { + // gather statistics + unsafe + { + fixed ( byte* maskPtr = mask ) + { + ProcessImage( new UnmanagedImage( imageData ), maskPtr, mask.GetLength( 1 ) ); + } + } + } + finally + { + // unlock image + image.UnlockBits( imageData ); + } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Unmanaged image to gather statistics about. + /// + /// Source pixel format is not supported. + /// + public ImageStatisticsHSL( UnmanagedImage image ) + { + CheckSourceFormat( image.PixelFormat ); + unsafe + { + ProcessImage( image, null, 0 ); + } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Image to gather statistics about. + /// Mask image which specifies areas to collect statistics for. + /// + /// The mask image must be a grayscale/binary (8bpp) image of the same size as the + /// specified source image, where black pixels (value 0) correspond to areas which should be excluded + /// from processing. So statistics is calculated only for pixels, which are none black in the mask image. + /// + /// + /// Source pixel format is not supported. + /// Mask image must be 8 bpp grayscale image. + /// Mask must have the same size as the source image to get statistics for. + /// + public ImageStatisticsHSL( UnmanagedImage image, UnmanagedImage mask ) + { + CheckSourceFormat( image.PixelFormat ); + CheckMaskProperties( mask.PixelFormat, new Size( mask.Width, mask.Height ), new Size( image.Width, image.Height ) ); + + unsafe + { + ProcessImage( image, (byte*) mask.ImageData.ToPointer( ), mask.Stride ); + } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Image to gather statistics about. + /// Mask array which specifies areas to collect statistics for. + /// + /// The mask array must be of the same size as the specified source image, where 0 values + /// correspond to areas which should be excluded from processing. So statistics is calculated only for pixels, + /// which have none zero corresponding value in the mask. + /// + /// + /// Source pixel format is not supported. + /// Mask must have the same size as the source image to get statistics for. + /// + public ImageStatisticsHSL( UnmanagedImage image, byte[,] mask ) + { + CheckSourceFormat( image.PixelFormat ); + CheckMaskProperties( PixelFormat.Format8bppIndexed, + new Size( mask.GetLength( 1 ), mask.GetLength( 0 ) ), new Size( image.Width, image.Height ) ); + + unsafe + { + fixed ( byte* maskPtr = mask ) + { + ProcessImage( image, maskPtr, mask.GetLength( 1 ) ); + } + } + } + + // Gather statistics for the specified image + private unsafe void ProcessImage( UnmanagedImage image, byte* mask, int maskLineSize ) + { + // get image dimension + int width = image.Width; + int height = image.Height; + + pixels = pixelsWithoutBlack = 0; + + int[] s = new int[256]; + int[] l = new int[256]; + int[] swb = new int[256]; + int[] lwb = new int[256]; + RGB rgb = new RGB( ); + HSL hsl = new HSL( ); + + int pixelSize = ( image.PixelFormat == PixelFormat.Format24bppRgb ) ? 3 : 4; + int offset = image.Stride - width * pixelSize; + int maskOffset = maskLineSize - width; + + // do the job + byte * p = (byte*) image.ImageData.ToPointer( ); + + if ( mask == null ) + { + // for each line + for ( int y = 0; y < height; y++ ) + { + // for each pixel + for ( int x = 0; x < width; x++, p += pixelSize ) + { + rgb.Red = p[RGB.R]; + rgb.Green = p[RGB.G]; + rgb.Blue = p[RGB.B]; + + // convert to HSL color space + AForge.Imaging.HSL.FromRGB( rgb, hsl ); + + s[(int) ( hsl.Saturation * 255 )]++; + l[(int) ( hsl.Luminance * 255 )]++; + pixels++; + + if ( hsl.Luminance != 0.0 ) + { + swb[(int) ( hsl.Saturation * 255 )]++; + lwb[(int) ( hsl.Luminance * 255 )]++; + pixelsWithoutBlack++; + } + } + p += offset; + } + } + else + { + // for each line + for ( int y = 0; y < height; y++ ) + { + // for each pixel + for ( int x = 0; x < width; x++, p += pixelSize, mask++ ) + { + if ( *mask == 0 ) + continue; + + rgb.Red = p[RGB.R]; + rgb.Green = p[RGB.G]; + rgb.Blue = p[RGB.B]; + + // convert to HSL color space + AForge.Imaging.HSL.FromRGB( rgb, hsl ); + + s[(int) ( hsl.Saturation * 255 )]++; + l[(int) ( hsl.Luminance * 255 )]++; + pixels++; + + if ( hsl.Luminance != 0.0 ) + { + swb[(int) ( hsl.Saturation * 255 )]++; + lwb[(int) ( hsl.Luminance * 255 )]++; + pixelsWithoutBlack++; + } + } + p += offset; + mask += maskOffset; + } + } + + // create histograms + saturation = new ContinuousHistogram( s, new Range( 0, 1 ) ); + luminance = new ContinuousHistogram( l, new Range( 0, 1 ) ); + + saturationWithoutBlack = new ContinuousHistogram( swb, new Range( 0, 1 ) ); + luminanceWithoutBlack = new ContinuousHistogram( lwb, new Range( 0, 1 ) ); + } + + // Check pixel format of the source image + private void CheckSourceFormat( PixelFormat pixelFormat ) + { + if ( + ( pixelFormat != PixelFormat.Format24bppRgb ) && + ( pixelFormat != PixelFormat.Format32bppRgb ) && + ( pixelFormat != PixelFormat.Format32bppArgb ) ) + { + throw new UnsupportedImageFormatException( "Source pixel format is not supported." ); + } + } + + private void CheckMaskProperties( PixelFormat maskFormat, Size maskSize, Size sourceImageSize ) + { + if ( maskFormat != PixelFormat.Format8bppIndexed ) + { + throw new ArgumentException( "Mask image must be 8 bpp grayscale image." ); + } + + if ( ( maskSize.Width != sourceImageSize.Width ) || ( maskSize.Height != sourceImageSize.Height ) ) + { + throw new ArgumentException( "Mask must have the same size as the source image to get statistics for." ); + } + } + } +} diff --git a/Sources/Imaging/ImageStatisticsYCbCr.cs b/Sources/Imaging/ImageStatisticsYCbCr.cs new file mode 100644 index 00000000..65025dfa --- /dev/null +++ b/Sources/Imaging/ImageStatisticsYCbCr.cs @@ -0,0 +1,467 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2011 +// contacts@aforgenet.com +// + +namespace AForge.Imaging +{ + using System; + using System.Drawing; + using System.Drawing.Imaging; + using AForge; + using AForge.Math; + + /// + /// Gather statistics about image in YCbCr color space. + /// + /// + /// The class is used to accumulate statistical values about images, + /// like histogram, mean, standard deviation, etc. for each YCbCr color channel. + /// + /// The class accepts 24 and 32 bpp color images for processing. + /// + /// Sample usage: + /// + /// // gather statistics + /// ImageStatisticsYCbCr stat = new ImageStatisticsYCbCr( image ); + /// // get Y channel's histogram + /// ContinuousHistogram y = stat.Y; + /// // check mean value of Y channel + /// if ( y.Mean > 0.5 ) + /// { + /// // do further processing + /// } + /// + /// + /// + /// + /// + public class ImageStatisticsYCbCr + { + private ContinuousHistogram yHistogram; + private ContinuousHistogram cbHistogram; + private ContinuousHistogram crHistogram; + + private ContinuousHistogram yHistogramWithoutBlack; + private ContinuousHistogram cbHistogramWithoutBlack; + private ContinuousHistogram crHistogramWithoutBlack; + + private int pixels; + private int pixelsWithoutBlack; + + /// + /// Histogram of Y channel. + /// + /// + public ContinuousHistogram Y + { + get { return yHistogram; } + } + + /// + /// Histogram of Cb channel. + /// + /// + public ContinuousHistogram Cb + { + get { return cbHistogram; } + } + + /// + /// Histogram of Cr channel. + /// + /// + public ContinuousHistogram Cr + { + get { return crHistogram; } + } + + /// + /// Histogram of Y channel excluding black pixels. + /// + /// + /// The property keeps statistics about Y channel, which + /// excludes all black pixels, what affects mean, standard deviation, etc. + /// + /// + public ContinuousHistogram YWithoutBlack + { + get { return yHistogramWithoutBlack; } + } + + /// + /// Histogram of Cb channel excluding black pixels + /// + /// + /// The property keeps statistics about Cb channel, which + /// excludes all black pixels, what affects mean, standard deviation, etc. + /// + /// + public ContinuousHistogram CbWithoutBlack + { + get { return cbHistogramWithoutBlack; } + } + + /// + /// Histogram of Cr channel excluding black pixels + /// + /// + /// The property keeps statistics about Cr channel, which + /// excludes all black pixels, what affects mean, standard deviation, etc. + /// + /// + public ContinuousHistogram CrWithoutBlack + { + get { return crHistogramWithoutBlack; } + } + + /// + /// Total pixels count in the processed image. + /// + /// + public int PixelsCount + { + get { return pixels; } + } + + /// + /// Total pixels count in the processed image excluding black pixels. + /// + /// + public int PixelsCountWithoutBlack + { + get { return pixelsWithoutBlack; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Image to gather statistics about. + /// + /// Source pixel format is not supported. + /// + public ImageStatisticsYCbCr( Bitmap image ) + { + CheckSourceFormat( image.PixelFormat ); + + // lock bitmap data + BitmapData imageData = image.LockBits( + new Rectangle( 0, 0, image.Width, image.Height ), + ImageLockMode.ReadOnly, PixelFormat.Format24bppRgb ); + + try + { + // gather statistics + unsafe + { + ProcessImage( new UnmanagedImage( imageData ), null, 0 ); + } + } + finally + { + // unlock image + image.UnlockBits( imageData ); + } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Image to gather statistics about. + /// Mask image which specifies areas to collect statistics for. + /// + /// The mask image must be a grayscale/binary (8bpp) image of the same size as the + /// specified source image, where black pixels (value 0) correspond to areas which should be excluded + /// from processing. So statistics is calculated only for pixels, which are none black in the mask image. + /// + /// + /// Source pixel format is not supported. + /// Mask image must be 8 bpp grayscale image. + /// Mask must have the same size as the source image to get statistics for. + /// + public ImageStatisticsYCbCr( Bitmap image, Bitmap mask ) + { + CheckSourceFormat( image.PixelFormat ); + CheckMaskProperties( mask.PixelFormat, new Size( mask.Width, mask.Height ), new Size( image.Width, image.Height ) ); + + // lock bitmap and mask data + BitmapData imageData = image.LockBits( + new Rectangle( 0, 0, image.Width, image.Height ), + ImageLockMode.ReadOnly, image.PixelFormat ); + BitmapData maskData = mask.LockBits( + new Rectangle( 0, 0, mask.Width, mask.Height ), + ImageLockMode.ReadOnly, mask.PixelFormat ); + + try + { + // gather statistics + unsafe + { + ProcessImage( new UnmanagedImage( imageData ), (byte*) maskData.Scan0.ToPointer( ), maskData.Stride ); + } + } + finally + { + // unlock images + image.UnlockBits( imageData ); + mask.UnlockBits( maskData ); + } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Image to gather statistics about. + /// Mask array which specifies areas to collect statistics for. + /// + /// The mask array must be of the same size as the specified source image, where 0 values + /// correspond to areas which should be excluded from processing. So statistics is calculated only for pixels, + /// which have none zero corresponding value in the mask. + /// + /// + /// Source pixel format is not supported. + /// Mask must have the same size as the source image to get statistics for. + /// + public ImageStatisticsYCbCr( Bitmap image, byte[,] mask ) + { + CheckSourceFormat( image.PixelFormat ); + CheckMaskProperties( PixelFormat.Format8bppIndexed, + new Size( mask.GetLength( 1 ), mask.GetLength( 0 ) ), new Size( image.Width, image.Height ) ); + + // lock bitmap data + BitmapData imageData = image.LockBits( + new Rectangle( 0, 0, image.Width, image.Height ), + ImageLockMode.ReadOnly, image.PixelFormat ); + + try + { + // gather statistics + unsafe + { + fixed ( byte* maskPtr = mask ) + { + ProcessImage( new UnmanagedImage( imageData ), maskPtr, mask.GetLength( 1 ) ); + } + } + } + finally + { + // unlock image + image.UnlockBits( imageData ); + } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Unmanaged image to gather statistics about. + /// + /// Source pixel format is not supported. + /// + public ImageStatisticsYCbCr( UnmanagedImage image ) + { + CheckSourceFormat( image.PixelFormat ); + unsafe + { + ProcessImage( image, null, 0 ); + } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Image to gather statistics about. + /// Mask image which specifies areas to collect statistics for. + /// + /// The mask image must be a grayscale/binary (8bpp) image of the same size as the + /// specified source image, where black pixels (value 0) correspond to areas which should be excluded + /// from processing. So statistics is calculated only for pixels, which are none black in the mask image. + /// + /// + /// Source pixel format is not supported. + /// Mask image must be 8 bpp grayscale image. + /// Mask must have the same size as the source image to get statistics for. + /// + public ImageStatisticsYCbCr( UnmanagedImage image, UnmanagedImage mask ) + { + CheckSourceFormat( image.PixelFormat ); + CheckMaskProperties( mask.PixelFormat, new Size( mask.Width, mask.Height ), new Size( image.Width, image.Height ) ); + + unsafe + { + ProcessImage( image, (byte*) mask.ImageData.ToPointer( ), mask.Stride ); + } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Image to gather statistics about. + /// Mask array which specifies areas to collect statistics for. + /// + /// The mask array must be of the same size as the specified source image, where 0 values + /// correspond to areas which should be excluded from processing. So statistics is calculated only for pixels, + /// which have none zero corresponding value in the mask. + /// + /// + /// Source pixel format is not supported. + /// Mask must have the same size as the source image to get statistics for. + /// + public ImageStatisticsYCbCr( UnmanagedImage image, byte[,] mask ) + { + CheckSourceFormat( image.PixelFormat ); + CheckMaskProperties( PixelFormat.Format8bppIndexed, + new Size( mask.GetLength( 1 ), mask.GetLength( 0 ) ), new Size( image.Width, image.Height ) ); + + unsafe + { + fixed ( byte* maskPtr = mask ) + { + ProcessImage( image, maskPtr, mask.GetLength( 1 ) ); + } + } + } + + // Gather statistics for the specified image + private unsafe void ProcessImage( UnmanagedImage image, byte* mask, int maskLineSize ) + { + // get image dimension + int width = image.Width; + int height = image.Height; + + pixels = pixelsWithoutBlack = 0; + + int[] yhisto = new int[256]; + int[] cbhisto = new int[256]; + int[] crhisto = new int[256]; + + int[] yhistoWB = new int[256]; + int[] cbhistoWB = new int[256]; + int[] crhistoWB = new int[256]; + + RGB rgb = new RGB( ); + YCbCr ycbcr = new YCbCr( ); + + int pixelSize = ( image.PixelFormat == PixelFormat.Format24bppRgb ) ? 3 : 4; + int offset = image.Stride - width * pixelSize; + int maskOffset = maskLineSize - width; + + // do the job + byte * p = (byte*) image.ImageData.ToPointer( ); + + if ( mask == null ) + { + // for each line + for ( int y = 0; y < height; y++ ) + { + // for each pixel + for ( int x = 0; x < width; x++, p += pixelSize ) + { + rgb.Red = p[RGB.R]; + rgb.Green = p[RGB.G]; + rgb.Blue = p[RGB.B]; + + // convert to YCbCr color space + AForge.Imaging.YCbCr.FromRGB( rgb, ycbcr ); + + yhisto[(int) ( ycbcr.Y * 255 )]++; + cbhisto[(int) ( ( ycbcr.Cb + 0.5 ) * 255 )]++; + crhisto[(int) ( ( ycbcr.Cr + 0.5 ) * 255 )]++; + + pixels++; + + if ( ( ycbcr.Y != 0.0 ) || ( ycbcr.Cb != 0.0 ) || ( ycbcr.Cr != 0.0 ) ) + { + yhistoWB[(int) ( ycbcr.Y * 255 )]++; + cbhistoWB[(int) ( ( ycbcr.Cb + 0.5 ) * 255 )]++; + crhistoWB[(int) ( ( ycbcr.Cr + 0.5 ) * 255 )]++; + + pixelsWithoutBlack++; + } + } + p += offset; + } + } + else + { + // for each line + for ( int y = 0; y < height; y++ ) + { + // for each pixel + for ( int x = 0; x < width; x++, p += pixelSize, mask++ ) + { + if ( *mask == 0 ) + continue; + + rgb.Red = p[RGB.R]; + rgb.Green = p[RGB.G]; + rgb.Blue = p[RGB.B]; + + // convert to YCbCr color space + AForge.Imaging.YCbCr.FromRGB( rgb, ycbcr ); + + yhisto[(int) ( ycbcr.Y * 255 )]++; + cbhisto[(int) ( ( ycbcr.Cb + 0.5 ) * 255 )]++; + crhisto[(int) ( ( ycbcr.Cr + 0.5 ) * 255 )]++; + + pixels++; + + if ( ( ycbcr.Y != 0.0 ) || ( ycbcr.Cb != 0.0 ) || ( ycbcr.Cr != 0.0 ) ) + { + yhistoWB[(int) ( ycbcr.Y * 255 )]++; + cbhistoWB[(int) ( ( ycbcr.Cb + 0.5 ) * 255 )]++; + crhistoWB[(int) ( ( ycbcr.Cr + 0.5 ) * 255 )]++; + + pixelsWithoutBlack++; + } + } + p += offset; + mask += maskOffset; + } + } + + // create histograms + yHistogram = new ContinuousHistogram( yhisto, new Range( 0.0f, 1.0f ) ); + cbHistogram = new ContinuousHistogram( cbhisto, new Range( -0.5f, 0.5f ) ); + crHistogram = new ContinuousHistogram( crhisto, new Range( -0.5f, 0.5f ) ); + + yHistogramWithoutBlack = new ContinuousHistogram( yhistoWB, new Range( 0.0f, 1.0f ) ); + cbHistogramWithoutBlack = new ContinuousHistogram( cbhistoWB, new Range( -0.5f, 0.5f ) ); + crHistogramWithoutBlack = new ContinuousHistogram( crhistoWB, new Range( -0.5f, 0.5f ) ); + } + + // Check pixel format of the source image + private void CheckSourceFormat( PixelFormat pixelFormat ) + { + if ( + ( pixelFormat != PixelFormat.Format24bppRgb ) && + ( pixelFormat != PixelFormat.Format32bppRgb ) && + ( pixelFormat != PixelFormat.Format32bppArgb ) ) + { + throw new UnsupportedImageFormatException( "Source pixel format is not supported." ); + } + } + + private void CheckMaskProperties( PixelFormat maskFormat, Size maskSize, Size sourceImageSize ) + { + if ( maskFormat != PixelFormat.Format8bppIndexed ) + { + throw new ArgumentException( "Mask image must be 8 bpp grayscale image." ); + } + + if ( ( maskSize.Width != sourceImageSize.Width ) || ( maskSize.Height != sourceImageSize.Height ) ) + { + throw new ArgumentException( "Mask must have the same size as the source image to get statistics for." ); + } + } + } +} diff --git a/Sources/Imaging/Images/adaptive_smooth.png b/Sources/Imaging/Images/adaptive_smooth.png new file mode 100644 index 00000000..aae83e0a Binary files /dev/null and b/Sources/Imaging/Images/adaptive_smooth.png differ diff --git a/Sources/Imaging/Images/add.png b/Sources/Imaging/Images/add.png new file mode 100644 index 00000000..167d851b Binary files /dev/null and b/Sources/Imaging/Images/add.png differ diff --git a/Sources/Imaging/Images/additive_noise.jpg b/Sources/Imaging/Images/additive_noise.jpg new file mode 100644 index 00000000..013a9cc8 Binary files /dev/null and b/Sources/Imaging/Images/additive_noise.jpg differ diff --git a/Sources/Imaging/Images/anaglyph.png b/Sources/Imaging/Images/anaglyph.png new file mode 100644 index 00000000..5fef26bd Binary files /dev/null and b/Sources/Imaging/Images/anaglyph.png differ diff --git a/Sources/Imaging/Images/anaglyph_glasses.png b/Sources/Imaging/Images/anaglyph_glasses.png new file mode 100644 index 00000000..1c97f6a0 Binary files /dev/null and b/Sources/Imaging/Images/anaglyph_glasses.png differ diff --git a/Sources/Imaging/Images/background.jpg b/Sources/Imaging/Images/background.jpg new file mode 100644 index 00000000..854058eb Binary files /dev/null and b/Sources/Imaging/Images/background.jpg differ diff --git a/Sources/Imaging/Images/backward_quadrilateral.jpg b/Sources/Imaging/Images/backward_quadrilateral.jpg new file mode 100644 index 00000000..d4ac6786 Binary files /dev/null and b/Sources/Imaging/Images/backward_quadrilateral.jpg differ diff --git a/Sources/Imaging/Images/bayer_dithering.jpg b/Sources/Imaging/Images/bayer_dithering.jpg new file mode 100644 index 00000000..75810023 Binary files /dev/null and b/Sources/Imaging/Images/bayer_dithering.jpg differ diff --git a/Sources/Imaging/Images/bayer_filter.jpg b/Sources/Imaging/Images/bayer_filter.jpg new file mode 100644 index 00000000..846005b6 Binary files /dev/null and b/Sources/Imaging/Images/bayer_filter.jpg differ diff --git a/Sources/Imaging/Images/bg.jpg b/Sources/Imaging/Images/bg.jpg new file mode 100644 index 00000000..4f93a171 Binary files /dev/null and b/Sources/Imaging/Images/bg.jpg differ diff --git a/Sources/Imaging/Images/biggest_blob.jpg b/Sources/Imaging/Images/biggest_blob.jpg new file mode 100644 index 00000000..fccc65be Binary files /dev/null and b/Sources/Imaging/Images/biggest_blob.jpg differ diff --git a/Sources/Imaging/Images/bilateral.jpg b/Sources/Imaging/Images/bilateral.jpg new file mode 100644 index 00000000..c88803d9 Binary files /dev/null and b/Sources/Imaging/Images/bilateral.jpg differ diff --git a/Sources/Imaging/Images/blobs_filtering.jpg b/Sources/Imaging/Images/blobs_filtering.jpg new file mode 100644 index 00000000..f550f080 Binary files /dev/null and b/Sources/Imaging/Images/blobs_filtering.jpg differ diff --git a/Sources/Imaging/Images/blur.jpg b/Sources/Imaging/Images/blur.jpg new file mode 100644 index 00000000..8468f0da Binary files /dev/null and b/Sources/Imaging/Images/blur.jpg differ diff --git a/Sources/Imaging/Images/bottomhat.png b/Sources/Imaging/Images/bottomhat.png new file mode 100644 index 00000000..372c0102 Binary files /dev/null and b/Sources/Imaging/Images/bottomhat.png differ diff --git a/Sources/Imaging/Images/bradley_local_thresholding.png b/Sources/Imaging/Images/bradley_local_thresholding.png new file mode 100644 index 00000000..8f58c246 Binary files /dev/null and b/Sources/Imaging/Images/bradley_local_thresholding.png differ diff --git a/Sources/Imaging/Images/brightness_correction.jpg b/Sources/Imaging/Images/brightness_correction.jpg new file mode 100644 index 00000000..3e836eaa Binary files /dev/null and b/Sources/Imaging/Images/brightness_correction.jpg differ diff --git a/Sources/Imaging/Images/burkes.jpg b/Sources/Imaging/Images/burkes.jpg new file mode 100644 index 00000000..66c3d3da Binary files /dev/null and b/Sources/Imaging/Images/burkes.jpg differ diff --git a/Sources/Imaging/Images/canny_edges.png b/Sources/Imaging/Images/canny_edges.png new file mode 100644 index 00000000..3005c511 Binary files /dev/null and b/Sources/Imaging/Images/canny_edges.png differ diff --git a/Sources/Imaging/Images/canvas_crop.jpg b/Sources/Imaging/Images/canvas_crop.jpg new file mode 100644 index 00000000..a8e16f9d Binary files /dev/null and b/Sources/Imaging/Images/canvas_crop.jpg differ diff --git a/Sources/Imaging/Images/canvas_move.jpg b/Sources/Imaging/Images/canvas_move.jpg new file mode 100644 index 00000000..0afd1739 Binary files /dev/null and b/Sources/Imaging/Images/canvas_move.jpg differ diff --git a/Sources/Imaging/Images/channel_filtering.jpg b/Sources/Imaging/Images/channel_filtering.jpg new file mode 100644 index 00000000..0bfa5aa6 Binary files /dev/null and b/Sources/Imaging/Images/channel_filtering.jpg differ diff --git a/Sources/Imaging/Images/closing.png b/Sources/Imaging/Images/closing.png new file mode 100644 index 00000000..819c5a68 Binary files /dev/null and b/Sources/Imaging/Images/closing.png differ diff --git a/Sources/Imaging/Images/clouds_texture.jpg b/Sources/Imaging/Images/clouds_texture.jpg new file mode 100644 index 00000000..9fad06fe Binary files /dev/null and b/Sources/Imaging/Images/clouds_texture.jpg differ diff --git a/Sources/Imaging/Images/color_burkes.png b/Sources/Imaging/Images/color_burkes.png new file mode 100644 index 00000000..5c089999 Binary files /dev/null and b/Sources/Imaging/Images/color_burkes.png differ diff --git a/Sources/Imaging/Images/color_filtering.jpg b/Sources/Imaging/Images/color_filtering.jpg new file mode 100644 index 00000000..906bd6bd Binary files /dev/null and b/Sources/Imaging/Images/color_filtering.jpg differ diff --git a/Sources/Imaging/Images/color_floyd_steinberg.png b/Sources/Imaging/Images/color_floyd_steinberg.png new file mode 100644 index 00000000..0b836129 Binary files /dev/null and b/Sources/Imaging/Images/color_floyd_steinberg.png differ diff --git a/Sources/Imaging/Images/color_jarvis_judice_ninke.png b/Sources/Imaging/Images/color_jarvis_judice_ninke.png new file mode 100644 index 00000000..184023f5 Binary files /dev/null and b/Sources/Imaging/Images/color_jarvis_judice_ninke.png differ diff --git a/Sources/Imaging/Images/color_remapping.jpg b/Sources/Imaging/Images/color_remapping.jpg new file mode 100644 index 00000000..754386d8 Binary files /dev/null and b/Sources/Imaging/Images/color_remapping.jpg differ diff --git a/Sources/Imaging/Images/color_sierra.png b/Sources/Imaging/Images/color_sierra.png new file mode 100644 index 00000000..cbed5e77 Binary files /dev/null and b/Sources/Imaging/Images/color_sierra.png differ diff --git a/Sources/Imaging/Images/color_stucki.png b/Sources/Imaging/Images/color_stucki.png new file mode 100644 index 00000000..ff5a4bc7 Binary files /dev/null and b/Sources/Imaging/Images/color_stucki.png differ diff --git a/Sources/Imaging/Images/conservative_smoothing.png b/Sources/Imaging/Images/conservative_smoothing.png new file mode 100644 index 00000000..3bd6964e Binary files /dev/null and b/Sources/Imaging/Images/conservative_smoothing.png differ diff --git a/Sources/Imaging/Images/contrast_correction.jpg b/Sources/Imaging/Images/contrast_correction.jpg new file mode 100644 index 00000000..6d5c3227 Binary files /dev/null and b/Sources/Imaging/Images/contrast_correction.jpg differ diff --git a/Sources/Imaging/Images/contrast_stretch.jpg b/Sources/Imaging/Images/contrast_stretch.jpg new file mode 100644 index 00000000..41414a1a Binary files /dev/null and b/Sources/Imaging/Images/contrast_stretch.jpg differ diff --git a/Sources/Imaging/Images/crop.jpg b/Sources/Imaging/Images/crop.jpg new file mode 100644 index 00000000..629d85f0 Binary files /dev/null and b/Sources/Imaging/Images/crop.jpg differ diff --git a/Sources/Imaging/Images/deskew.png b/Sources/Imaging/Images/deskew.png new file mode 100644 index 00000000..b33da336 Binary files /dev/null and b/Sources/Imaging/Images/deskew.png differ diff --git a/Sources/Imaging/Images/difference.png b/Sources/Imaging/Images/difference.png new file mode 100644 index 00000000..02b8bb02 Binary files /dev/null and b/Sources/Imaging/Images/difference.png differ diff --git a/Sources/Imaging/Images/difference_edges.png b/Sources/Imaging/Images/difference_edges.png new file mode 100644 index 00000000..83e09a37 Binary files /dev/null and b/Sources/Imaging/Images/difference_edges.png differ diff --git a/Sources/Imaging/Images/dilatation.png b/Sources/Imaging/Images/dilatation.png new file mode 100644 index 00000000..929fa1df Binary files /dev/null and b/Sources/Imaging/Images/dilatation.png differ diff --git a/Sources/Imaging/Images/ebm_result.png b/Sources/Imaging/Images/ebm_result.png new file mode 100644 index 00000000..9d7a987c Binary files /dev/null and b/Sources/Imaging/Images/ebm_result.png differ diff --git a/Sources/Imaging/Images/ebm_sample1.png b/Sources/Imaging/Images/ebm_sample1.png new file mode 100644 index 00000000..3a27d210 Binary files /dev/null and b/Sources/Imaging/Images/ebm_sample1.png differ diff --git a/Sources/Imaging/Images/ebm_sample2.png b/Sources/Imaging/Images/ebm_sample2.png new file mode 100644 index 00000000..1913c397 Binary files /dev/null and b/Sources/Imaging/Images/ebm_sample2.png differ diff --git a/Sources/Imaging/Images/edges.png b/Sources/Imaging/Images/edges.png new file mode 100644 index 00000000..31366fb8 Binary files /dev/null and b/Sources/Imaging/Images/edges.png differ diff --git a/Sources/Imaging/Images/emboss.jpg b/Sources/Imaging/Images/emboss.jpg new file mode 100644 index 00000000..57e6e36a Binary files /dev/null and b/Sources/Imaging/Images/emboss.jpg differ diff --git a/Sources/Imaging/Images/equalized.jpg b/Sources/Imaging/Images/equalized.jpg new file mode 100644 index 00000000..384042c2 Binary files /dev/null and b/Sources/Imaging/Images/equalized.jpg differ diff --git a/Sources/Imaging/Images/erosion.png b/Sources/Imaging/Images/erosion.png new file mode 100644 index 00000000..2140fcfd Binary files /dev/null and b/Sources/Imaging/Images/erosion.png differ diff --git a/Sources/Imaging/Images/euclidean_filtering.jpg b/Sources/Imaging/Images/euclidean_filtering.jpg new file mode 100644 index 00000000..bbf2e90a Binary files /dev/null and b/Sources/Imaging/Images/euclidean_filtering.jpg differ diff --git a/Sources/Imaging/Images/extract_channel.jpg b/Sources/Imaging/Images/extract_channel.jpg new file mode 100644 index 00000000..629aacb2 Binary files /dev/null and b/Sources/Imaging/Images/extract_channel.jpg differ diff --git a/Sources/Imaging/Images/filled_holes.png b/Sources/Imaging/Images/filled_holes.png new file mode 100644 index 00000000..958d62be Binary files /dev/null and b/Sources/Imaging/Images/filled_holes.png differ diff --git a/Sources/Imaging/Images/flat_field.jpg b/Sources/Imaging/Images/flat_field.jpg new file mode 100644 index 00000000..fe15b20b Binary files /dev/null and b/Sources/Imaging/Images/flat_field.jpg differ diff --git a/Sources/Imaging/Images/floyd_steinberg.jpg b/Sources/Imaging/Images/floyd_steinberg.jpg new file mode 100644 index 00000000..51f6e873 Binary files /dev/null and b/Sources/Imaging/Images/floyd_steinberg.jpg differ diff --git a/Sources/Imaging/Images/fourier.jpg b/Sources/Imaging/Images/fourier.jpg new file mode 100644 index 00000000..4fc45582 Binary files /dev/null and b/Sources/Imaging/Images/fourier.jpg differ diff --git a/Sources/Imaging/Images/frequency_filter.jpg b/Sources/Imaging/Images/frequency_filter.jpg new file mode 100644 index 00000000..fa316df2 Binary files /dev/null and b/Sources/Imaging/Images/frequency_filter.jpg differ diff --git a/Sources/Imaging/Images/from_polar.png b/Sources/Imaging/Images/from_polar.png new file mode 100644 index 00000000..23bdaf2f Binary files /dev/null and b/Sources/Imaging/Images/from_polar.png differ diff --git a/Sources/Imaging/Images/gamma.jpg b/Sources/Imaging/Images/gamma.jpg new file mode 100644 index 00000000..ffeae15b Binary files /dev/null and b/Sources/Imaging/Images/gamma.jpg differ diff --git a/Sources/Imaging/Images/gaussian_blur.jpg b/Sources/Imaging/Images/gaussian_blur.jpg new file mode 100644 index 00000000..88d24e3d Binary files /dev/null and b/Sources/Imaging/Images/gaussian_blur.jpg differ diff --git a/Sources/Imaging/Images/gaussian_sharpen.jpg b/Sources/Imaging/Images/gaussian_sharpen.jpg new file mode 100644 index 00000000..1914b402 Binary files /dev/null and b/Sources/Imaging/Images/gaussian_sharpen.jpg differ diff --git a/Sources/Imaging/Images/grayscale.jpg b/Sources/Imaging/Images/grayscale.jpg new file mode 100644 index 00000000..b9e45e73 Binary files /dev/null and b/Sources/Imaging/Images/grayscale.jpg differ diff --git a/Sources/Imaging/Images/hit-and-miss.png b/Sources/Imaging/Images/hit-and-miss.png new file mode 100644 index 00000000..cd4107ad Binary files /dev/null and b/Sources/Imaging/Images/hit-and-miss.png differ diff --git a/Sources/Imaging/Images/homogenity_edges.png b/Sources/Imaging/Images/homogenity_edges.png new file mode 100644 index 00000000..8c2041fd Binary files /dev/null and b/Sources/Imaging/Images/homogenity_edges.png differ diff --git a/Sources/Imaging/Images/hor_histogram.jpg b/Sources/Imaging/Images/hor_histogram.jpg new file mode 100644 index 00000000..f6feefac Binary files /dev/null and b/Sources/Imaging/Images/hor_histogram.jpg differ diff --git a/Sources/Imaging/Images/hough_circles.jpg b/Sources/Imaging/Images/hough_circles.jpg new file mode 100644 index 00000000..b44706f2 Binary files /dev/null and b/Sources/Imaging/Images/hough_circles.jpg differ diff --git a/Sources/Imaging/Images/hough_lines.jpg b/Sources/Imaging/Images/hough_lines.jpg new file mode 100644 index 00000000..3e28c7f7 Binary files /dev/null and b/Sources/Imaging/Images/hough_lines.jpg differ diff --git a/Sources/Imaging/Images/hrls.png b/Sources/Imaging/Images/hrls.png new file mode 100644 index 00000000..8329d8ae Binary files /dev/null and b/Sources/Imaging/Images/hrls.png differ diff --git a/Sources/Imaging/Images/hsl_filtering.jpg b/Sources/Imaging/Images/hsl_filtering.jpg new file mode 100644 index 00000000..a73ee9d4 Binary files /dev/null and b/Sources/Imaging/Images/hsl_filtering.jpg differ diff --git a/Sources/Imaging/Images/hsl_filtering2.jpg b/Sources/Imaging/Images/hsl_filtering2.jpg new file mode 100644 index 00000000..60003abe Binary files /dev/null and b/Sources/Imaging/Images/hsl_filtering2.jpg differ diff --git a/Sources/Imaging/Images/hsl_linear.jpg b/Sources/Imaging/Images/hsl_linear.jpg new file mode 100644 index 00000000..d785e8a8 Binary files /dev/null and b/Sources/Imaging/Images/hsl_linear.jpg differ diff --git a/Sources/Imaging/Images/hue_modifier.jpg b/Sources/Imaging/Images/hue_modifier.jpg new file mode 100644 index 00000000..6932a085 Binary files /dev/null and b/Sources/Imaging/Images/hue_modifier.jpg differ diff --git a/Sources/Imaging/Images/icon.png b/Sources/Imaging/Images/icon.png new file mode 100644 index 00000000..58dde97b Binary files /dev/null and b/Sources/Imaging/Images/icon.png differ diff --git a/Sources/Imaging/Images/image_warp.png b/Sources/Imaging/Images/image_warp.png new file mode 100644 index 00000000..0dde51ad Binary files /dev/null and b/Sources/Imaging/Images/image_warp.png differ diff --git a/Sources/Imaging/Images/intersect.png b/Sources/Imaging/Images/intersect.png new file mode 100644 index 00000000..89d25758 Binary files /dev/null and b/Sources/Imaging/Images/intersect.png differ diff --git a/Sources/Imaging/Images/invert.jpg b/Sources/Imaging/Images/invert.jpg new file mode 100644 index 00000000..780a944c Binary files /dev/null and b/Sources/Imaging/Images/invert.jpg differ diff --git a/Sources/Imaging/Images/iterative_threshold.png b/Sources/Imaging/Images/iterative_threshold.png new file mode 100644 index 00000000..509574e2 Binary files /dev/null and b/Sources/Imaging/Images/iterative_threshold.png differ diff --git a/Sources/Imaging/Images/jarvis_judice_ninke.jpg b/Sources/Imaging/Images/jarvis_judice_ninke.jpg new file mode 100644 index 00000000..9745cf54 Binary files /dev/null and b/Sources/Imaging/Images/jarvis_judice_ninke.jpg differ diff --git a/Sources/Imaging/Images/jitter.jpg b/Sources/Imaging/Images/jitter.jpg new file mode 100644 index 00000000..966ef1a7 Binary files /dev/null and b/Sources/Imaging/Images/jitter.jpg differ diff --git a/Sources/Imaging/Images/labeling.jpg b/Sources/Imaging/Images/labeling.jpg new file mode 100644 index 00000000..f2cddb94 Binary files /dev/null and b/Sources/Imaging/Images/labeling.jpg differ diff --git a/Sources/Imaging/Images/labyrinth_texture.jpg b/Sources/Imaging/Images/labyrinth_texture.jpg new file mode 100644 index 00000000..9249b67f Binary files /dev/null and b/Sources/Imaging/Images/labyrinth_texture.jpg differ diff --git a/Sources/Imaging/Images/levels_linear.jpg b/Sources/Imaging/Images/levels_linear.jpg new file mode 100644 index 00000000..67337aac Binary files /dev/null and b/Sources/Imaging/Images/levels_linear.jpg differ diff --git a/Sources/Imaging/Images/marble_texture.jpg b/Sources/Imaging/Images/marble_texture.jpg new file mode 100644 index 00000000..46e13076 Binary files /dev/null and b/Sources/Imaging/Images/marble_texture.jpg differ diff --git a/Sources/Imaging/Images/mask.png b/Sources/Imaging/Images/mask.png new file mode 100644 index 00000000..6b132134 Binary files /dev/null and b/Sources/Imaging/Images/mask.png differ diff --git a/Sources/Imaging/Images/masked_image.jpg b/Sources/Imaging/Images/masked_image.jpg new file mode 100644 index 00000000..673432aa Binary files /dev/null and b/Sources/Imaging/Images/masked_image.jpg differ diff --git a/Sources/Imaging/Images/mean.png b/Sources/Imaging/Images/mean.png new file mode 100644 index 00000000..6e44cd16 Binary files /dev/null and b/Sources/Imaging/Images/mean.png differ diff --git a/Sources/Imaging/Images/median.png b/Sources/Imaging/Images/median.png new file mode 100644 index 00000000..aaceed41 Binary files /dev/null and b/Sources/Imaging/Images/median.png differ diff --git a/Sources/Imaging/Images/merge.png b/Sources/Imaging/Images/merge.png new file mode 100644 index 00000000..cde7bdcb Binary files /dev/null and b/Sources/Imaging/Images/merge.png differ diff --git a/Sources/Imaging/Images/mirror.jpg b/Sources/Imaging/Images/mirror.jpg new file mode 100644 index 00000000..229d3227 Binary files /dev/null and b/Sources/Imaging/Images/mirror.jpg differ diff --git a/Sources/Imaging/Images/morph.png b/Sources/Imaging/Images/morph.png new file mode 100644 index 00000000..34f786a0 Binary files /dev/null and b/Sources/Imaging/Images/morph.png differ diff --git a/Sources/Imaging/Images/move_towards.png b/Sources/Imaging/Images/move_towards.png new file mode 100644 index 00000000..e1906c50 Binary files /dev/null and b/Sources/Imaging/Images/move_towards.png differ diff --git a/Sources/Imaging/Images/object.jpg b/Sources/Imaging/Images/object.jpg new file mode 100644 index 00000000..1154e334 Binary files /dev/null and b/Sources/Imaging/Images/object.jpg differ diff --git a/Sources/Imaging/Images/oil_painting.jpg b/Sources/Imaging/Images/oil_painting.jpg new file mode 100644 index 00000000..399c88f7 Binary files /dev/null and b/Sources/Imaging/Images/oil_painting.jpg differ diff --git a/Sources/Imaging/Images/opening.png b/Sources/Imaging/Images/opening.png new file mode 100644 index 00000000..fa991fa9 Binary files /dev/null and b/Sources/Imaging/Images/opening.png differ diff --git a/Sources/Imaging/Images/ordered_color_dithering.png b/Sources/Imaging/Images/ordered_color_dithering.png new file mode 100644 index 00000000..4d3f902c Binary files /dev/null and b/Sources/Imaging/Images/ordered_color_dithering.png differ diff --git a/Sources/Imaging/Images/ordered_dithering.jpg b/Sources/Imaging/Images/ordered_dithering.jpg new file mode 100644 index 00000000..8a4c3bb9 Binary files /dev/null and b/Sources/Imaging/Images/ordered_dithering.jpg differ diff --git a/Sources/Imaging/Images/otsu_threshold.png b/Sources/Imaging/Images/otsu_threshold.png new file mode 100644 index 00000000..394fbbf7 Binary files /dev/null and b/Sources/Imaging/Images/otsu_threshold.png differ diff --git a/Sources/Imaging/Images/pixellate.jpg b/Sources/Imaging/Images/pixellate.jpg new file mode 100644 index 00000000..d77e459a Binary files /dev/null and b/Sources/Imaging/Images/pixellate.jpg differ diff --git a/Sources/Imaging/Images/pointed_color_fill.jpg b/Sources/Imaging/Images/pointed_color_fill.jpg new file mode 100644 index 00000000..8014ecb4 Binary files /dev/null and b/Sources/Imaging/Images/pointed_color_fill.jpg differ diff --git a/Sources/Imaging/Images/pointed_mean_fill.jpg b/Sources/Imaging/Images/pointed_mean_fill.jpg new file mode 100644 index 00000000..053d5e88 Binary files /dev/null and b/Sources/Imaging/Images/pointed_mean_fill.jpg differ diff --git a/Sources/Imaging/Images/polar.png b/Sources/Imaging/Images/polar.png new file mode 100644 index 00000000..d6217e8f Binary files /dev/null and b/Sources/Imaging/Images/polar.png differ diff --git a/Sources/Imaging/Images/posterization.png b/Sources/Imaging/Images/posterization.png new file mode 100644 index 00000000..87e0f71f Binary files /dev/null and b/Sources/Imaging/Images/posterization.png differ diff --git a/Sources/Imaging/Images/quadrilateral_bilinear.png b/Sources/Imaging/Images/quadrilateral_bilinear.png new file mode 100644 index 00000000..34c98fac Binary files /dev/null and b/Sources/Imaging/Images/quadrilateral_bilinear.png differ diff --git a/Sources/Imaging/Images/quadrilateral_ex_bilinear.png b/Sources/Imaging/Images/quadrilateral_ex_bilinear.png new file mode 100644 index 00000000..e582c018 Binary files /dev/null and b/Sources/Imaging/Images/quadrilateral_ex_bilinear.png differ diff --git a/Sources/Imaging/Images/quadrilateral_finder.png b/Sources/Imaging/Images/quadrilateral_finder.png new file mode 100644 index 00000000..9392825b Binary files /dev/null and b/Sources/Imaging/Images/quadrilateral_finder.png differ diff --git a/Sources/Imaging/Images/quadrilateral_nearest.png b/Sources/Imaging/Images/quadrilateral_nearest.png new file mode 100644 index 00000000..fe929876 Binary files /dev/null and b/Sources/Imaging/Images/quadrilateral_nearest.png differ diff --git a/Sources/Imaging/Images/reduced_colors.png b/Sources/Imaging/Images/reduced_colors.png new file mode 100644 index 00000000..ce76c251 Binary files /dev/null and b/Sources/Imaging/Images/reduced_colors.png differ diff --git a/Sources/Imaging/Images/replace_channel.jpg b/Sources/Imaging/Images/replace_channel.jpg new file mode 100644 index 00000000..21dc4fa9 Binary files /dev/null and b/Sources/Imaging/Images/replace_channel.jpg differ diff --git a/Sources/Imaging/Images/resize_bicubic.png b/Sources/Imaging/Images/resize_bicubic.png new file mode 100644 index 00000000..3b6be16d Binary files /dev/null and b/Sources/Imaging/Images/resize_bicubic.png differ diff --git a/Sources/Imaging/Images/resize_bilinear.png b/Sources/Imaging/Images/resize_bilinear.png new file mode 100644 index 00000000..0395178d Binary files /dev/null and b/Sources/Imaging/Images/resize_bilinear.png differ diff --git a/Sources/Imaging/Images/resize_nearest.png b/Sources/Imaging/Images/resize_nearest.png new file mode 100644 index 00000000..a7748c9f Binary files /dev/null and b/Sources/Imaging/Images/resize_nearest.png differ diff --git a/Sources/Imaging/Images/rotate_bicubic.png b/Sources/Imaging/Images/rotate_bicubic.png new file mode 100644 index 00000000..6a8bc928 Binary files /dev/null and b/Sources/Imaging/Images/rotate_bicubic.png differ diff --git a/Sources/Imaging/Images/rotate_bilinear.png b/Sources/Imaging/Images/rotate_bilinear.png new file mode 100644 index 00000000..de9189bd Binary files /dev/null and b/Sources/Imaging/Images/rotate_bilinear.png differ diff --git a/Sources/Imaging/Images/rotate_channels.jpg b/Sources/Imaging/Images/rotate_channels.jpg new file mode 100644 index 00000000..d5c8aae2 Binary files /dev/null and b/Sources/Imaging/Images/rotate_channels.jpg differ diff --git a/Sources/Imaging/Images/rotate_nearest.png b/Sources/Imaging/Images/rotate_nearest.png new file mode 100644 index 00000000..9f9c99fe Binary files /dev/null and b/Sources/Imaging/Images/rotate_nearest.png differ diff --git a/Sources/Imaging/Images/salt_noise.jpg b/Sources/Imaging/Images/salt_noise.jpg new file mode 100644 index 00000000..14b1d51c Binary files /dev/null and b/Sources/Imaging/Images/salt_noise.jpg differ diff --git a/Sources/Imaging/Images/sample1.jpg b/Sources/Imaging/Images/sample1.jpg new file mode 100644 index 00000000..909fa4fc Binary files /dev/null and b/Sources/Imaging/Images/sample1.jpg differ diff --git a/Sources/Imaging/Images/sample10.png b/Sources/Imaging/Images/sample10.png new file mode 100644 index 00000000..68f3b0d9 Binary files /dev/null and b/Sources/Imaging/Images/sample10.png differ diff --git a/Sources/Imaging/Images/sample11.png b/Sources/Imaging/Images/sample11.png new file mode 100644 index 00000000..8c336f95 Binary files /dev/null and b/Sources/Imaging/Images/sample11.png differ diff --git a/Sources/Imaging/Images/sample12.png b/Sources/Imaging/Images/sample12.png new file mode 100644 index 00000000..a84612ed Binary files /dev/null and b/Sources/Imaging/Images/sample12.png differ diff --git a/Sources/Imaging/Images/sample13.png b/Sources/Imaging/Images/sample13.png new file mode 100644 index 00000000..f35fdf72 Binary files /dev/null and b/Sources/Imaging/Images/sample13.png differ diff --git a/Sources/Imaging/Images/sample14.png b/Sources/Imaging/Images/sample14.png new file mode 100644 index 00000000..a7f5ad9f Binary files /dev/null and b/Sources/Imaging/Images/sample14.png differ diff --git a/Sources/Imaging/Images/sample15.png b/Sources/Imaging/Images/sample15.png new file mode 100644 index 00000000..d11df275 Binary files /dev/null and b/Sources/Imaging/Images/sample15.png differ diff --git a/Sources/Imaging/Images/sample16_left.png b/Sources/Imaging/Images/sample16_left.png new file mode 100644 index 00000000..1b47a277 Binary files /dev/null and b/Sources/Imaging/Images/sample16_left.png differ diff --git a/Sources/Imaging/Images/sample16_right.png b/Sources/Imaging/Images/sample16_right.png new file mode 100644 index 00000000..8b4d4846 Binary files /dev/null and b/Sources/Imaging/Images/sample16_right.png differ diff --git a/Sources/Imaging/Images/sample17.png b/Sources/Imaging/Images/sample17.png new file mode 100644 index 00000000..9e5f881c Binary files /dev/null and b/Sources/Imaging/Images/sample17.png differ diff --git a/Sources/Imaging/Images/sample18.jpg b/Sources/Imaging/Images/sample18.jpg new file mode 100644 index 00000000..c124f8f2 Binary files /dev/null and b/Sources/Imaging/Images/sample18.jpg differ diff --git a/Sources/Imaging/Images/sample19.png b/Sources/Imaging/Images/sample19.png new file mode 100644 index 00000000..1d021488 Binary files /dev/null and b/Sources/Imaging/Images/sample19.png differ diff --git a/Sources/Imaging/Images/sample2.jpg b/Sources/Imaging/Images/sample2.jpg new file mode 100644 index 00000000..623daed9 Binary files /dev/null and b/Sources/Imaging/Images/sample2.jpg differ diff --git a/Sources/Imaging/Images/sample20.png b/Sources/Imaging/Images/sample20.png new file mode 100644 index 00000000..8aea767a Binary files /dev/null and b/Sources/Imaging/Images/sample20.png differ diff --git a/Sources/Imaging/Images/sample21.png b/Sources/Imaging/Images/sample21.png new file mode 100644 index 00000000..d42df7d8 Binary files /dev/null and b/Sources/Imaging/Images/sample21.png differ diff --git a/Sources/Imaging/Images/sample22.png b/Sources/Imaging/Images/sample22.png new file mode 100644 index 00000000..f7871b4c Binary files /dev/null and b/Sources/Imaging/Images/sample22.png differ diff --git a/Sources/Imaging/Images/sample23.png b/Sources/Imaging/Images/sample23.png new file mode 100644 index 00000000..88fdc690 Binary files /dev/null and b/Sources/Imaging/Images/sample23.png differ diff --git a/Sources/Imaging/Images/sample24.png b/Sources/Imaging/Images/sample24.png new file mode 100644 index 00000000..b3cc13f7 Binary files /dev/null and b/Sources/Imaging/Images/sample24.png differ diff --git a/Sources/Imaging/Images/sample3.jpg b/Sources/Imaging/Images/sample3.jpg new file mode 100644 index 00000000..576b0f28 Binary files /dev/null and b/Sources/Imaging/Images/sample3.jpg differ diff --git a/Sources/Imaging/Images/sample4.jpg b/Sources/Imaging/Images/sample4.jpg new file mode 100644 index 00000000..06f62768 Binary files /dev/null and b/Sources/Imaging/Images/sample4.jpg differ diff --git a/Sources/Imaging/Images/sample5.jpg b/Sources/Imaging/Images/sample5.jpg new file mode 100644 index 00000000..7b4be68c Binary files /dev/null and b/Sources/Imaging/Images/sample5.jpg differ diff --git a/Sources/Imaging/Images/sample6.png b/Sources/Imaging/Images/sample6.png new file mode 100644 index 00000000..11977912 Binary files /dev/null and b/Sources/Imaging/Images/sample6.png differ diff --git a/Sources/Imaging/Images/sample7.png b/Sources/Imaging/Images/sample7.png new file mode 100644 index 00000000..eb49967c Binary files /dev/null and b/Sources/Imaging/Images/sample7.png differ diff --git a/Sources/Imaging/Images/sample8.jpg b/Sources/Imaging/Images/sample8.jpg new file mode 100644 index 00000000..564b5b6b Binary files /dev/null and b/Sources/Imaging/Images/sample8.jpg differ diff --git a/Sources/Imaging/Images/sample9.png b/Sources/Imaging/Images/sample9.png new file mode 100644 index 00000000..8cdb3e87 Binary files /dev/null and b/Sources/Imaging/Images/sample9.png differ diff --git a/Sources/Imaging/Images/saturation_correction.jpg b/Sources/Imaging/Images/saturation_correction.jpg new file mode 100644 index 00000000..654e6505 Binary files /dev/null and b/Sources/Imaging/Images/saturation_correction.jpg differ diff --git a/Sources/Imaging/Images/sepia.jpg b/Sources/Imaging/Images/sepia.jpg new file mode 100644 index 00000000..549333bb Binary files /dev/null and b/Sources/Imaging/Images/sepia.jpg differ diff --git a/Sources/Imaging/Images/sharpen.jpg b/Sources/Imaging/Images/sharpen.jpg new file mode 100644 index 00000000..5b1d8c0a Binary files /dev/null and b/Sources/Imaging/Images/sharpen.jpg differ diff --git a/Sources/Imaging/Images/shrink.jpg b/Sources/Imaging/Images/shrink.jpg new file mode 100644 index 00000000..284220b1 Binary files /dev/null and b/Sources/Imaging/Images/shrink.jpg differ diff --git a/Sources/Imaging/Images/sierra.jpg b/Sources/Imaging/Images/sierra.jpg new file mode 100644 index 00000000..05a8d7c8 Binary files /dev/null and b/Sources/Imaging/Images/sierra.jpg differ diff --git a/Sources/Imaging/Images/simple_skeletonization.png b/Sources/Imaging/Images/simple_skeletonization.png new file mode 100644 index 00000000..4cde20ff Binary files /dev/null and b/Sources/Imaging/Images/simple_skeletonization.png differ diff --git a/Sources/Imaging/Images/sis_threshold.png b/Sources/Imaging/Images/sis_threshold.png new file mode 100644 index 00000000..2478efd1 Binary files /dev/null and b/Sources/Imaging/Images/sis_threshold.png differ diff --git a/Sources/Imaging/Images/sobel_edges.png b/Sources/Imaging/Images/sobel_edges.png new file mode 100644 index 00000000..8a8e1346 Binary files /dev/null and b/Sources/Imaging/Images/sobel_edges.png differ diff --git a/Sources/Imaging/Images/stucki.jpg b/Sources/Imaging/Images/stucki.jpg new file mode 100644 index 00000000..fcbd456b Binary files /dev/null and b/Sources/Imaging/Images/stucki.jpg differ diff --git a/Sources/Imaging/Images/subtract.png b/Sources/Imaging/Images/subtract.png new file mode 100644 index 00000000..98909340 Binary files /dev/null and b/Sources/Imaging/Images/subtract.png differ diff --git a/Sources/Imaging/Images/susan_corners.png b/Sources/Imaging/Images/susan_corners.png new file mode 100644 index 00000000..df6afa97 Binary files /dev/null and b/Sources/Imaging/Images/susan_corners.png differ diff --git a/Sources/Imaging/Images/textile_texture.jpg b/Sources/Imaging/Images/textile_texture.jpg new file mode 100644 index 00000000..d2a8cba9 Binary files /dev/null and b/Sources/Imaging/Images/textile_texture.jpg differ diff --git a/Sources/Imaging/Images/textured_filter1.jpg b/Sources/Imaging/Images/textured_filter1.jpg new file mode 100644 index 00000000..ceda6495 Binary files /dev/null and b/Sources/Imaging/Images/textured_filter1.jpg differ diff --git a/Sources/Imaging/Images/textured_filter2.jpg b/Sources/Imaging/Images/textured_filter2.jpg new file mode 100644 index 00000000..e24417fe Binary files /dev/null and b/Sources/Imaging/Images/textured_filter2.jpg differ diff --git a/Sources/Imaging/Images/textured_merge1.jpg b/Sources/Imaging/Images/textured_merge1.jpg new file mode 100644 index 00000000..e47ec45d Binary files /dev/null and b/Sources/Imaging/Images/textured_merge1.jpg differ diff --git a/Sources/Imaging/Images/textured_merge2.jpg b/Sources/Imaging/Images/textured_merge2.jpg new file mode 100644 index 00000000..552cdade Binary files /dev/null and b/Sources/Imaging/Images/textured_merge2.jpg differ diff --git a/Sources/Imaging/Images/texturer.jpg b/Sources/Imaging/Images/texturer.jpg new file mode 100644 index 00000000..f52b4667 Binary files /dev/null and b/Sources/Imaging/Images/texturer.jpg differ diff --git a/Sources/Imaging/Images/thinning.png b/Sources/Imaging/Images/thinning.png new file mode 100644 index 00000000..6af5d81b Binary files /dev/null and b/Sources/Imaging/Images/thinning.png differ diff --git a/Sources/Imaging/Images/threshold.jpg b/Sources/Imaging/Images/threshold.jpg new file mode 100644 index 00000000..86185d6e Binary files /dev/null and b/Sources/Imaging/Images/threshold.jpg differ diff --git a/Sources/Imaging/Images/threshold_carry.jpg b/Sources/Imaging/Images/threshold_carry.jpg new file mode 100644 index 00000000..029a8902 Binary files /dev/null and b/Sources/Imaging/Images/threshold_carry.jpg differ diff --git a/Sources/Imaging/Images/thresholded_difference.png b/Sources/Imaging/Images/thresholded_difference.png new file mode 100644 index 00000000..81d9c04e Binary files /dev/null and b/Sources/Imaging/Images/thresholded_difference.png differ diff --git a/Sources/Imaging/Images/thresholded_euclidean_difference.png b/Sources/Imaging/Images/thresholded_euclidean_difference.png new file mode 100644 index 00000000..d732f0a4 Binary files /dev/null and b/Sources/Imaging/Images/thresholded_euclidean_difference.png differ diff --git a/Sources/Imaging/Images/tophat.png b/Sources/Imaging/Images/tophat.png new file mode 100644 index 00000000..1aaea370 Binary files /dev/null and b/Sources/Imaging/Images/tophat.png differ diff --git a/Sources/Imaging/Images/ver_histogram.jpg b/Sources/Imaging/Images/ver_histogram.jpg new file mode 100644 index 00000000..d8d33ad9 Binary files /dev/null and b/Sources/Imaging/Images/ver_histogram.jpg differ diff --git a/Sources/Imaging/Images/vrls.png b/Sources/Imaging/Images/vrls.png new file mode 100644 index 00000000..986f3914 Binary files /dev/null and b/Sources/Imaging/Images/vrls.png differ diff --git a/Sources/Imaging/Images/water_wave.jpg b/Sources/Imaging/Images/water_wave.jpg new file mode 100644 index 00000000..eb38f4e1 Binary files /dev/null and b/Sources/Imaging/Images/water_wave.jpg differ diff --git a/Sources/Imaging/Images/wood_texture.jpg b/Sources/Imaging/Images/wood_texture.jpg new file mode 100644 index 00000000..97570bbc Binary files /dev/null and b/Sources/Imaging/Images/wood_texture.jpg differ diff --git a/Sources/Imaging/Images/ycbcr_filtering.jpg b/Sources/Imaging/Images/ycbcr_filtering.jpg new file mode 100644 index 00000000..4602ef80 Binary files /dev/null and b/Sources/Imaging/Images/ycbcr_filtering.jpg differ diff --git a/Sources/Imaging/Images/ycbcr_linear.jpg b/Sources/Imaging/Images/ycbcr_linear.jpg new file mode 100644 index 00000000..94783825 Binary files /dev/null and b/Sources/Imaging/Images/ycbcr_linear.jpg differ diff --git a/Sources/Imaging/Images/ycbcr_replace_channel.jpg b/Sources/Imaging/Images/ycbcr_replace_channel.jpg new file mode 100644 index 00000000..702534d0 Binary files /dev/null and b/Sources/Imaging/Images/ycbcr_replace_channel.jpg differ diff --git a/Sources/Imaging/Imaging (mono).csproj b/Sources/Imaging/Imaging (mono).csproj new file mode 100644 index 00000000..5f5c8fff --- /dev/null +++ b/Sources/Imaging/Imaging (mono).csproj @@ -0,0 +1,260 @@ + + + + Debug + AnyCPU + 9.0.21022 + 2.0 + {0E6DFEB9-E4C4-46DB-BB5F-424F7275D114} + Library + AForge.Imaging + v2.0 + + + true + full + false + bin\Debug + DEBUG,MONO + prompt + 3 + false + true + + + none + false + ..\..\Release\Mono + prompt + 3 + false + true + AForge.Imaging.snk + true + MONO + + + + + False + ..\..\Release\Mono\AForge.dll + + + False + ..\..\Release\Mono\AForge.Math.dll + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Sources/Imaging/Imaging (mono).sln b/Sources/Imaging/Imaging (mono).sln new file mode 100644 index 00000000..48d73f4f --- /dev/null +++ b/Sources/Imaging/Imaging (mono).sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Imaging (mono)", "Imaging (mono).csproj", "{0E6DFEB9-E4C4-46DB-BB5F-424F7275D114}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {0E6DFEB9-E4C4-46DB-BB5F-424F7275D114}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0E6DFEB9-E4C4-46DB-BB5F-424F7275D114}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0E6DFEB9-E4C4-46DB-BB5F-424F7275D114}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0E6DFEB9-E4C4-46DB-BB5F-424F7275D114}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(MonoDevelopProperties) = preSolution + StartupItem = Imaging (mono).csproj + EndGlobalSection +EndGlobal diff --git a/Sources/Imaging/Imaging.csproj b/Sources/Imaging/Imaging.csproj new file mode 100644 index 00000000..a657e82f --- /dev/null +++ b/Sources/Imaging/Imaging.csproj @@ -0,0 +1,304 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {C6A8B9AE-0749-41C7-8FF9-02C156696F45} + Library + Properties + AForge.Imaging + AForge.Imaging + v2.0 + 512 + true + AForge.Imaging.snk + + + 3.5 + + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + true + full + false + ..\..\Release\ + DEBUG;TRACE + prompt + 4 + true + AForge.Imaging.xml + + + pdbonly + true + ..\..\Release\ + TRACE + prompt + 4 + true + AForge.Imaging.xml + + + + False + ..\..\Release\AForge.dll + + + False + ..\..\Release\AForge.Math.dll + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + False + Microsoft .NET Framework 4 %28x86 and x64%29 + true + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 3.1 + true + + + + + \ No newline at end of file diff --git a/Sources/Imaging/Imaging.sln b/Sources/Imaging/Imaging.sln new file mode 100644 index 00000000..53327d0c --- /dev/null +++ b/Sources/Imaging/Imaging.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual C# Express 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Imaging", "Imaging.csproj", "{C6A8B9AE-0749-41C7-8FF9-02C156696F45}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {C6A8B9AE-0749-41C7-8FF9-02C156696F45}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C6A8B9AE-0749-41C7-8FF9-02C156696F45}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C6A8B9AE-0749-41C7-8FF9-02C156696F45}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C6A8B9AE-0749-41C7-8FF9-02C156696F45}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Sources/Imaging/IntegralImage.cs b/Sources/Imaging/IntegralImage.cs new file mode 100644 index 00000000..c6013567 --- /dev/null +++ b/Sources/Imaging/IntegralImage.cs @@ -0,0 +1,455 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2010 +// contacts@aforgenet.com +// + +namespace AForge.Imaging +{ + using System; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Integral image. + /// + /// + /// The class implements integral image concept, which is described by + /// Viola and Jones in: P. Viola and M. J. Jones, "Robust real-time face detection", + /// Int. Journal of Computer Vision 57(2), pp. 137–154, 2004. + /// + /// "An integral image I of an input image G is defined as the image in which the + /// intensity at a pixel position is equal to the sum of the intensities of all the pixels + /// above and to the left of that position in the original image." + /// + /// The intensity at position (x, y) can be written as: + /// + /// x y + /// I(x,y) = SUM( SUM( G(i,j) ) ) + /// i=0 j=0 + /// + /// + /// The class uses 32-bit integers to represent integral image. + /// + /// The class processes only grayscale (8 bpp indexed) images. + /// + /// This class contains two versions of each method: safe and unsafe. Safe methods do + /// checks of provided coordinates and ensure that these coordinates belong to the image, what makes + /// these methods slower. Unsafe methods do not do coordinates' checks and rely that these + /// coordinates belong to the image, what makes these methods faster. + /// + /// Sample usage: + /// + /// // create integral image + /// IntegralImage im = IntegralImage.FromBitmap( image ); + /// // get pixels' mean value in the specified rectangle + /// float mean = im.GetRectangleMean( 10, 10, 20, 30 ) + /// + /// + /// + public class IntegralImage + { + /// + /// Intergral image's array. + /// + /// + /// See remarks to property. + /// + protected uint[,] integralImage = null; + + // image's width and height + private int width; + private int height; + + /// + /// Width of the source image the integral image was constructed for. + /// + public int Width + { + get { return width; } + } + + /// + /// Height of the source image the integral image was constructed for. + /// + public int Height + { + get { return height; } + } + + /// + /// Provides access to internal array keeping integral image data. + /// + /// + /// + /// The array should be accessed by [y, x] indexing. + /// + /// The array's size is [+1, +1]. The first + /// row and column are filled with zeros, what is done for more efficient calculation of + /// rectangles' sums. + /// + /// + public uint[,] InternalData + { + get { return integralImage; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Image width. + /// Image height. + /// + /// The constractor is protected, what makes it imposible to instantiate this + /// class directly. To create an instance of this class or + /// method should be used. + /// + protected IntegralImage( int width, int height ) + { + this.width = width; + this.height = height; + integralImage = new uint[height + 1, width + 1]; + } + + /// + /// Construct integral image from source grayscale image. + /// + /// + /// Source grayscale image. + /// + /// Returns integral image. + /// + /// The source image has incorrect pixel format. + /// + public static IntegralImage FromBitmap( Bitmap image ) + { + // check image format + if ( image.PixelFormat != PixelFormat.Format8bppIndexed ) + { + throw new UnsupportedImageFormatException( "Source image can be graysclae (8 bpp indexed) image only." ); + } + + // lock source image + BitmapData imageData = image.LockBits( + new Rectangle( 0, 0, image.Width, image.Height ), + ImageLockMode.ReadOnly, PixelFormat.Format8bppIndexed ); + + // process the image + IntegralImage im = FromBitmap( imageData ); + + // unlock image + image.UnlockBits( imageData ); + + return im; + } + + /// + /// Construct integral image from source grayscale image. + /// + /// + /// Source image data. + /// + /// Returns integral image. + /// + /// The source image has incorrect pixel format. + /// + public static IntegralImage FromBitmap( BitmapData imageData ) + { + return FromBitmap( new UnmanagedImage( imageData ) ); + } + + /// + /// Construct integral image from source grayscale image. + /// + /// + /// Source unmanaged image. + /// + /// Returns integral image. + /// + /// The source image has incorrect pixel format. + /// + public static IntegralImage FromBitmap( UnmanagedImage image ) + { + // check image format + if ( image.PixelFormat != PixelFormat.Format8bppIndexed ) + { + throw new ArgumentException( "Source image can be graysclae (8 bpp indexed) image only." ); + } + + // get source image size + int width = image.Width; + int height = image.Height; + int offset = image.Stride - width; + + // create integral image + IntegralImage im = new IntegralImage( width, height ); + uint[,] integralImage = im.integralImage; + + // do the job + unsafe + { + byte* src = (byte*) image.ImageData.ToPointer( ); + + // for each line + for ( int y = 1; y <= height; y++ ) + { + uint rowSum = 0; + + // for each pixel + for ( int x = 1; x <= width; x++, src++ ) + { + rowSum += *src; + + integralImage[y, x] = rowSum + integralImage[y - 1, x]; + } + src += offset; + } + } + + return im; + } + + /// + /// Calculate sum of pixels in the specified rectangle. + /// + /// + /// X coordinate of left-top rectangle's corner. + /// Y coordinate of left-top rectangle's corner. + /// X coordinate of right-bottom rectangle's corner. + /// Y coordinate of right-bottom rectangle's corner. + /// + /// Returns sum of pixels in the specified rectangle. + /// + /// Both specified points are included into the calculation rectangle. + /// + public uint GetRectangleSum( int x1, int y1, int x2, int y2 ) + { + // check if requested rectangle is out of the image + if ( ( x2 < 0 ) || ( y2 < 0 ) || ( x1 >= width ) || ( y1 >= height ) ) + return 0; + + if ( x1 < 0 ) x1 = 0; + if ( y1 < 0 ) y1 = 0; + + x2++; + y2++; + + if ( x2 > width ) x2 = width; + if ( y2 > height ) y2 = height; + + return integralImage[y2, x2] + integralImage[y1, x1] - integralImage[y2, x1] - integralImage[y1, x2]; + } + + /// + /// Calculate horizontal (X) haar wavelet at the specified point. + /// + /// + /// X coordinate of the point to calculate wavelet at. + /// Y coordinate of the point to calculate wavelet at. + /// Wavelet size to calculate. + /// + /// Returns value of the horizontal wavelet at the specified point. + /// + /// The method calculates horizontal wavelet, which is a difference + /// of two horizontally adjacent boxes' sums, i.e. A-B. A is the sum of rectangle with coordinates + /// (x, y-radius, x+radius-1, y+radius-1). B is the sum of rectangle with coordinates + /// (x-radius, y-radius, x-1, y+radiys-1). + /// + public int GetHaarXWavelet( int x, int y, int radius ) + { + int y1 = y - radius; + int y2 = y + radius - 1; + + uint a = GetRectangleSum( x, y1, x + radius - 1, y2 ); + uint b = GetRectangleSum( x - radius, y1, x - 1, y2 ); + + return (int) ( a - b ); + } + + /// + /// Calculate vertical (Y) haar wavelet at the specified point. + /// + /// + /// X coordinate of the point to calculate wavelet at. + /// Y coordinate of the point to calculate wavelet at. + /// Wavelet size to calculate. + /// + /// Returns value of the vertical wavelet at the specified point. + /// + /// The method calculates vertical wavelet, which is a difference + /// of two vertical adjacent boxes' sums, i.e. A-B. A is the sum of rectangle with coordinates + /// (x-radius, y, x+radius-1, y+radius-1). B is the sum of rectangle with coordinates + /// (x-radius, y-radius, x+radius-1, y-1). + /// + public int GetHaarYWavelet( int x, int y, int radius ) + { + int x1 = x - radius; + int x2 = x + radius - 1; + + float a = GetRectangleSum( x1, y, x2, y + radius - 1 ); + float b = GetRectangleSum( x1, y - radius, x2, y - 1 ); + + return (int) ( a - b ); + } + + /// + /// Calculate sum of pixels in the specified rectangle without checking it's coordinates. + /// + /// + /// X coordinate of left-top rectangle's corner. + /// Y coordinate of left-top rectangle's corner. + /// X coordinate of right-bottom rectangle's corner. + /// Y coordinate of right-bottom rectangle's corner. + /// + /// Returns sum of pixels in the specified rectangle. + /// + /// Both specified points are included into the calculation rectangle. + /// + public uint GetRectangleSumUnsafe( int x1, int y1, int x2, int y2 ) + { + x2++; + y2++; + + return integralImage[y2, x2] + integralImage[y1, x1] - integralImage[y2, x1] - integralImage[y1, x2]; + } + + /// + /// Calculate sum of pixels in the specified rectangle. + /// + /// + /// X coordinate of central point of the rectangle. + /// Y coordinate of central point of the rectangle. + /// Radius of the rectangle. + /// + /// Returns sum of pixels in the specified rectangle. + /// + /// The method calculates sum of pixels in square rectangle with + /// odd width and height. In the case if it is required to calculate sum of + /// 3x3 rectangle, then it is required to specify its center and radius equal to 1. + /// + /// + public uint GetRectangleSum( int x, int y, int radius ) + { + return GetRectangleSum( x - radius, y - radius, x + radius, y + radius ); + } + + /// + /// Calculate sum of pixels in the specified rectangle without checking it's coordinates. + /// + /// + /// X coordinate of central point of the rectangle. + /// Y coordinate of central point of the rectangle. + /// Radius of the rectangle. + /// + /// Returns sum of pixels in the specified rectangle. + /// + /// The method calculates sum of pixels in square rectangle with + /// odd width and height. In the case if it is required to calculate sum of + /// 3x3 rectangle, then it is required to specify its center and radius equal to 1. + /// + /// + public uint GetRectangleSumUnsafe( int x, int y, int radius ) + { + return GetRectangleSumUnsafe( x - radius, y - radius, x + radius, y + radius ); + } + + /// + /// Calculate mean value of pixels in the specified rectangle. + /// + /// + /// X coordinate of left-top rectangle's corner. + /// Y coordinate of left-top rectangle's corner. + /// X coordinate of right-bottom rectangle's corner. + /// Y coordinate of right-bottom rectangle's corner. + /// + /// Returns mean value of pixels in the specified rectangle. + /// + /// Both specified points are included into the calculation rectangle. + /// + public float GetRectangleMean( int x1, int y1, int x2, int y2 ) + { + // check if requested rectangle is out of the image + if ( ( x2 < 0 ) || ( y2 < 0 ) || ( x1 >= width ) || ( y1 >= height ) ) + return 0; + + if ( x1 < 0 ) x1 = 0; + if ( y1 < 0 ) y1 = 0; + + x2++; + y2++; + + if ( x2 > width ) x2 = width; + if ( y2 > height ) y2 = height; + + // return sum divided by actual rectangles size + return (float) ( (double) ( integralImage[y2, x2] + integralImage[y1, x1] - integralImage[y2, x1] - integralImage[y1, x2] ) / + (double) ( ( x2 - x1 ) * ( y2 - y1 ) ) ); + } + + /// + /// Calculate mean value of pixels in the specified rectangle without checking it's coordinates. + /// + /// + /// X coordinate of left-top rectangle's corner. + /// Y coordinate of left-top rectangle's corner. + /// X coordinate of right-bottom rectangle's corner. + /// Y coordinate of right-bottom rectangle's corner. + /// + /// Returns mean value of pixels in the specified rectangle. + /// + /// Both specified points are included into the calculation rectangle. + /// + public float GetRectangleMeanUnsafe( int x1, int y1, int x2, int y2 ) + { + x2++; + y2++; + + // return sum divided by actual rectangles size + return (float) ( (double) ( integralImage[y2, x2] + integralImage[y1, x1] - integralImage[y2, x1] - integralImage[y1, x2] ) / + (double) ( ( x2 - x1 ) * ( y2 - y1 ) ) ); + } + + /// + /// Calculate mean value of pixels in the specified rectangle. + /// + /// + /// X coordinate of central point of the rectangle. + /// Y coordinate of central point of the rectangle. + /// Radius of the rectangle. + /// + /// Returns mean value of pixels in the specified rectangle. + /// + /// The method calculates mean value of pixels in square rectangle with + /// odd width and height. In the case if it is required to calculate mean value of + /// 3x3 rectangle, then it is required to specify its center and radius equal to 1. + /// + /// + public float GetRectangleMean( int x, int y, int radius ) + { + return GetRectangleMean( x - radius, y - radius, x + radius, y + radius ); + } + + /// + /// Calculate mean value of pixels in the specified rectangle without checking it's coordinates. + /// + /// + /// X coordinate of central point of the rectangle. + /// Y coordinate of central point of the rectangle. + /// Radius of the rectangle. + /// + /// Returns mean value of pixels in the specified rectangle. + /// + /// The method calculates mean value of pixels in square rectangle with + /// odd width and height. In the case if it is required to calculate mean value of + /// 3x3 rectangle, then it is required to specify its center and radius equal to 1. + /// + /// + public float GetRectangleMeanUnsafe( int x, int y, int radius ) + { + return GetRectangleMeanUnsafe( x - radius, y - radius, x + radius, y + radius ); + } + } +} diff --git a/Sources/Imaging/Interpolation.cs b/Sources/Imaging/Interpolation.cs new file mode 100644 index 00000000..cd3cb5d1 --- /dev/null +++ b/Sources/Imaging/Interpolation.cs @@ -0,0 +1,52 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +namespace AForge.Imaging +{ + using System; + + /// + /// Interpolation routines. + /// + /// + internal static class Interpolation + { + /// + /// Bicubic kernel. + /// + /// + /// X value. + /// + /// Bicubic cooefficient. + /// + /// The function implements bicubic kernel W(x) as described on + /// Wikipedia + /// (coefficient a is set to -0.5). + /// + public static double BiCubicKernel( double x ) + { + if ( x < 0 ) + { + x = -x; + } + + double biCoef = 0; + + if ( x <= 1 ) + { + biCoef = ( 1.5 * x - 2.5 ) * x * x + 1; + } + else if ( x < 2 ) + { + biCoef = ( ( -0.5 * x + 2.5 ) * x - 4 ) * x + 2; + } + + return biCoef; + } + } +} diff --git a/Sources/Imaging/MemoryManager.cs b/Sources/Imaging/MemoryManager.cs new file mode 100644 index 00000000..cebc39a2 --- /dev/null +++ b/Sources/Imaging/MemoryManager.cs @@ -0,0 +1,305 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2005-2009 +// andrew.kirillov@aforgenet.com +// + +namespace AForge.Imaging +{ + using System; + using System.Collections.Generic; + using System.Runtime.InteropServices; + + /// + /// Internal memory manager used by image processing routines. + /// + /// + /// The memory manager supports memory allocation/deallocation + /// caching. Caching means that memory blocks may be not freed on request, but + /// kept for later reuse. + /// + public static class MemoryManager + { + // maximum memory blocks to cache + private static int maximumCacheSize = 3; + // current cache size + private static int currentCacheSize = 0; + // busy blocks in cache + private static int busyBlocks = 0; + // amount of cached memory + private static int cachedMemory = 0; + + // maximum block size to cache + private static int maxSizeToCache = 20 * 1024 * 1024; + // minimum block size to cache + private static int minSizeToCache = 10 * 1024; + + // cache structure + private class CacheBlock + { + public IntPtr MemoryBlock; + public int Size; + public bool Free; + + public CacheBlock( IntPtr memoryBlock, int size ) + { + this.MemoryBlock = memoryBlock; + this.Size = size; + this.Free = false; + } + } + + private static List memoryBlocks = new List( ); + + /// + /// Maximum amount of memory blocks to keep in cache. + /// + /// + /// The value specifies the amount of memory blocks, which could be + /// cached by the memory manager. + /// + /// Default value is set to 3. Maximum value is 10. + /// + /// + public static int MaximumCacheSize + { + get + { + lock ( memoryBlocks ) + { + return maximumCacheSize; + } + } + set + { + lock ( memoryBlocks ) + { + maximumCacheSize = Math.Max( 0, Math.Min( 10, value ) ); + } + } + } + + /// + /// Current amount of memory blocks in cache. + /// + /// + public static int CurrentCacheSize + { + get + { + lock ( memoryBlocks ) + { + return currentCacheSize; + } + } + } + + /// + /// Amount of busy memory blocks in cache (which were not freed yet by user). + /// + /// + public static int BusyMemoryBlocks + { + get + { + lock ( memoryBlocks ) + { + return busyBlocks; + } + } + } + + /// + /// Amount of free memory blocks in cache (which are not busy by users). + /// + /// + public static int FreeMemoryBlocks + { + get + { + lock ( memoryBlocks ) + { + return currentCacheSize - busyBlocks; + } + } + } + + /// + /// Amount of cached memory in bytes. + /// + /// + public static int CachedMemory + { + get + { + lock ( memoryBlocks ) + { + return cachedMemory; + } + } + } + + /// + /// Maximum memory block's size in bytes, which could be cached. + /// + /// + /// Memory blocks, which size is greater than this value, are not cached. + /// + public static int MaxSizeToCache + { + get { return maxSizeToCache; } + set { maxSizeToCache = value; } + } + + /// + /// Minimum memory block's size in bytes, which could be cached. + /// + /// + /// Memory blocks, which size is less than this value, are not cached. + /// + public static int MinSizeToCache + { + get { return minSizeToCache; } + set { minSizeToCache = value; } + } + + /// + /// Allocate unmanaged memory. + /// + /// + /// Memory size to allocate. + /// + /// Return's pointer to the allocated memory buffer. + /// + /// The method allocates requested amount of memory and returns pointer to it. It may avoid allocation + /// in the case some caching scheme is uses and there is already enough allocated memory available. + /// + /// There is insufficient memory to satisfy the request. + /// + public static IntPtr Alloc( int size ) + { + lock ( memoryBlocks ) + { + // allocate memory block without caching if cache is not available + if ( ( busyBlocks >= maximumCacheSize ) || ( size > maxSizeToCache ) || ( size < minSizeToCache ) ) + return Marshal.AllocHGlobal( size ); + + // if all cached blocks are busy, create new cache block + if ( currentCacheSize == busyBlocks ) + { + IntPtr memoryBlock = Marshal.AllocHGlobal( size ); + memoryBlocks.Add( new CacheBlock( memoryBlock, size ) ); + + busyBlocks++; + currentCacheSize++; + cachedMemory += size; + + return memoryBlock; + } + + // find free memory block with enough memory + for ( int i = 0; i < currentCacheSize; i++ ) + { + CacheBlock block = memoryBlocks[i]; + + if ( ( block.Free == true ) && ( block.Size >= size ) ) + { + block.Free = false; + busyBlocks++; + return block.MemoryBlock; + } + } + + // finaly find first free memory block and resize it + for ( int i = 0; i < currentCacheSize; i++ ) + { + CacheBlock block = memoryBlocks[i]; + + if ( block.Free == true ) + { + // remove this block cache + Marshal.FreeHGlobal( block.MemoryBlock ); + memoryBlocks.RemoveAt( i ); + currentCacheSize--; + cachedMemory -= block.Size; + + // add new one + IntPtr memoryBlock = Marshal.AllocHGlobal( size ); + memoryBlocks.Add( new CacheBlock( memoryBlock, size ) ); + + busyBlocks++; + currentCacheSize++; + cachedMemory += size; + + return memoryBlock; + } + } + + return IntPtr.Zero; + } + } + + /// + /// Free unmanaged memory. + /// + /// + /// Pointer to memory buffer to free. + /// + /// This method may skip actual deallocation of memory and keep it for future requests, + /// if some caching scheme is used. + /// + public static void Free( IntPtr pointer ) + { + lock ( memoryBlocks ) + { + // find the memory block in cache + for ( int i = 0; i < currentCacheSize; i++ ) + { + if ( memoryBlocks[i].MemoryBlock == pointer ) + { + // mark the block as free + memoryBlocks[i].Free = true; + busyBlocks--; + return; + } + } + + // the block was not cached, so lets just free it + Marshal.FreeHGlobal( pointer ); + } + } + + /// + /// Force freeing unused memory. + /// + /// + /// Frees and removes from cache memory blocks, which are not used by users. + /// + /// Returns number of freed memory blocks. + /// + public static int FreeUnusedMemory( ) + { + lock ( memoryBlocks ) + { + int freedBlocks = 0; + + // free all unused memory + for ( int i = currentCacheSize - 1; i >= 0; i-- ) + { + if ( memoryBlocks[i].Free ) + { + Marshal.FreeHGlobal( memoryBlocks[i].MemoryBlock ); + cachedMemory -= memoryBlocks[i].Size; + memoryBlocks.RemoveAt( i ); + freedBlocks++; + } + } + currentCacheSize -= freedBlocks; + + return freedBlocks; + } + } + } +} diff --git a/Sources/Imaging/MoravecCornersDetector.cs b/Sources/Imaging/MoravecCornersDetector.cs new file mode 100644 index 00000000..03853b70 --- /dev/null +++ b/Sources/Imaging/MoravecCornersDetector.cs @@ -0,0 +1,322 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2005-2009 +// andrew.kirillov@aforgenet.com +// + +namespace AForge.Imaging +{ + using System; + using System.Drawing; + using System.Drawing.Imaging; + using System.Collections.Generic; + + /// + /// Moravec corners detector. + /// + /// + /// The class implements Moravec corners detector. For information about algorithm's + /// details its description + /// should be studied. + /// + /// Due to limitations of Moravec corners detector (anisotropic response, etc.) its usage is limited + /// to certain cases only. + /// + /// The class processes only grayscale 8 bpp and color 24/32 bpp images. + /// + /// Sample usage: + /// + /// // create corner detector's instance + /// MoravecCornersDetector mcd = new MoravecCornersDetector( ); + /// // process image searching for corners + /// List<IntPoint> corners = scd.ProcessImage( image ); + /// // process points + /// foreach ( IntPoint corner in corners ) + /// { + /// // ... + /// } + /// + /// + /// + /// + /// + public class MoravecCornersDetector : ICornersDetector + { + // window size + private int windowSize = 3; + // threshold which is used to filter interest points + private int threshold = 500; + + /// + /// Window size used to determine if point is interesting, [3, 15]. + /// + /// + /// The value specifies window size, which is used for initial searching of + /// corners candidates and then for searching local maximums. + /// + /// Default value is set to 3. + /// + /// + /// Setting value is not odd. + /// + public int WindowSize + { + get { return windowSize; } + set + { + // check if value is odd + if ( ( value & 1 ) == 0 ) + throw new ArgumentException( "The value shoule be odd." ); + + windowSize = Math.Max( 3, Math.Min( 15, value ) ); + } + } + + /// + /// Threshold value, which is used to filter out uninteresting points. + /// + /// + /// The value is used to filter uninteresting points - points which have value below + /// specified threshold value are treated as not corners candidates. Increasing this value decreases + /// the amount of detected point. + /// + /// Default value is set to 500. + /// + /// + public int Threshold + { + get { return threshold; } + set { threshold = value; } + } + + private static int[] xDelta = new int[8] { -1, 0, 1, 1, 1, 0, -1, -1 }; + private static int[] yDelta = new int[8] { -1, -1, -1, 0, 1, 1, 1, 0 }; + + /// + /// Initializes a new instance of the class. + /// + public MoravecCornersDetector( ) { } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Threshold value, which is used to filter out uninteresting points. + /// + public MoravecCornersDetector( int threshold ) : + this( threshold, 3 ) { } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Threshold value, which is used to filter out uninteresting points. + /// Window size used to determine if point is interesting. + /// + public MoravecCornersDetector( int threshold, int windowSize ) + { + this.Threshold = threshold; + this.WindowSize = windowSize; + } + + /// + /// Process image looking for corners. + /// + /// + /// Source image to process. + /// + /// Returns array of found corners (X-Y coordinates). + /// + /// The source image has incorrect pixel format. + /// + public List ProcessImage( Bitmap image ) + { + // check image format + if ( + ( image.PixelFormat != PixelFormat.Format8bppIndexed ) && + ( image.PixelFormat != PixelFormat.Format24bppRgb ) && + ( image.PixelFormat != PixelFormat.Format32bppRgb ) && + ( image.PixelFormat != PixelFormat.Format32bppArgb ) + ) + { + throw new UnsupportedImageFormatException( "Unsupported pixel format of the source image." ); + } + + // lock source image + BitmapData imageData = image.LockBits( + new Rectangle( 0, 0, image.Width, image.Height ), + ImageLockMode.ReadOnly, image.PixelFormat ); + + List corners; + + try + { + // process the image + corners = ProcessImage( new UnmanagedImage( imageData ) ); + } + finally + { + // unlock image + image.UnlockBits( imageData ); + } + + return corners; + } + + /// + /// Process image looking for corners. + /// + /// + /// Source image data to process. + /// + /// Returns array of found corners (X-Y coordinates). + /// + /// The source image has incorrect pixel format. + /// + public List ProcessImage( BitmapData imageData ) + { + return ProcessImage( new UnmanagedImage( imageData ) ); + } + + /// + /// Process image looking for corners. + /// + /// + /// Unmanaged source image to process. + /// + /// Returns array of found corners (X-Y coordinates). + /// + /// The source image has incorrect pixel format. + /// + public List ProcessImage( UnmanagedImage image ) + { + // check image format + if ( + ( image.PixelFormat != PixelFormat.Format8bppIndexed ) && + ( image.PixelFormat != PixelFormat.Format24bppRgb ) && + ( image.PixelFormat != PixelFormat.Format32bppRgb ) && + ( image.PixelFormat != PixelFormat.Format32bppArgb ) + ) + { + throw new UnsupportedImageFormatException( "Unsupported pixel format of the source image." ); + } + + // get source image size + int width = image.Width; + int height = image.Height; + int stride = image.Stride; + int pixelSize = Bitmap.GetPixelFormatSize( image.PixelFormat ) / 8; + // window radius + int windowRadius = windowSize / 2; + + // offset + int offset = stride - windowSize * pixelSize; + + // create moravec cornerness map + int[,] moravecMap = new int[height, width]; + + // do the job + unsafe + { + byte* ptr = (byte*) image.ImageData.ToPointer( ); + + // for each row + for ( int y = windowRadius, maxY = height - windowRadius; y < maxY; y++ ) + { + // for each pixel + for ( int x = windowRadius, maxX = width - windowRadius; x < maxX; x++ ) + { + int minSum = int.MaxValue; + + // go through 8 possible shifting directions + for ( int k = 0; k < 8; k++ ) + { + // calculate center of shifted window + int sy = y + yDelta[k]; + int sx = x + xDelta[k]; + + // check if shifted window is within the image + if ( + ( sy < windowRadius ) || ( sy >= maxY ) || + ( sx < windowRadius ) || ( sx >= maxX ) + ) + { + // skip this shifted window + continue; + } + + int sum = 0; + + byte* ptr1 = ptr + ( y - windowRadius ) * stride + ( x - windowRadius ) * pixelSize; + byte* ptr2 = ptr + ( sy - windowRadius ) * stride + ( sx - windowRadius ) * pixelSize; + + // for each windows' rows + for ( int i = 0; i < windowSize; i++ ) + { + // for each windows' pixels + for ( int j = 0, maxJ = windowSize * pixelSize; j < maxJ; j++, ptr1++, ptr2++ ) + { + int dif = *ptr1 - *ptr2; + sum += dif * dif; + } + ptr1 += offset; + ptr2 += offset; + } + + // check if the sum is mimimal + if ( sum < minSum ) + { + minSum = sum; + } + } + + // threshold the minimum sum + if ( minSum < threshold ) + { + minSum = 0; + } + + moravecMap[y, x] = minSum; + } + } + } + + // collect interesting points - only those points, which are local maximums + List cornersList = new List( ); + + // for each row + for ( int y = windowRadius, maxY = height - windowRadius; y < maxY; y++ ) + { + // for each pixel + for ( int x = windowRadius, maxX = width - windowRadius; x < maxX; x++ ) + { + int currentValue = moravecMap[y, x]; + + // for each windows' rows + for ( int i = -windowRadius; ( currentValue != 0 ) && ( i <= windowRadius ); i++ ) + { + // for each windows' pixels + for ( int j = -windowRadius; j <= windowRadius; j++ ) + { + if ( moravecMap[y + i, x + j] > currentValue ) + { + currentValue = 0; + break; + } + } + } + + // check if this point is really interesting + if ( currentValue != 0 ) + { + cornersList.Add( new IntPoint( x, y ) ); + } + } + } + + return cornersList; + } + } +} diff --git a/Sources/Imaging/Properties/AssemblyInfo.cs b/Sources/Imaging/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..2daa4ceb --- /dev/null +++ b/Sources/Imaging/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle( "AForge.Imaging" )] +[assembly: AssemblyDescription( "" )] +[assembly: AssemblyConfiguration( "" )] +[assembly: AssemblyCompany( "AForge" )] +[assembly: AssemblyProduct( "AForge.NET" )] +[assembly: AssemblyCopyright( "AForge © 2012" )] +[assembly: AssemblyTrademark( "" )] +[assembly: AssemblyCulture( "" )] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible( false )] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid( "0c6c72f4-7281-4822-9414-cc0758a88abc" )] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion( "2.2.5.0" )] +[assembly: AssemblyFileVersion( "2.2.5.0" )] diff --git a/Sources/Imaging/QuadrilateralFinder.cs b/Sources/Imaging/QuadrilateralFinder.cs new file mode 100644 index 00000000..613a1ae5 --- /dev/null +++ b/Sources/Imaging/QuadrilateralFinder.cs @@ -0,0 +1,241 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2007-2009 +// andrew.kirillov@aforgenet.com +// + + +namespace AForge.Imaging +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + + using AForge; + using AForge.Math.Geometry; + + /// + /// Searching of quadrilateral/triangle corners. + /// + /// + /// The class searches for quadrilateral's/triangle's corners on the specified image. + /// It first collects edge points of the object and then uses + /// to find corners + /// the quadrilateral/triangle. + /// + /// The class treats all black pixels as background (none-object) and + /// all none-black pixels as object. + /// + /// The class processes grayscale 8 bpp and color 24/32 bpp images. + /// + /// Sample usage: + /// + /// // get corners of the quadrilateral + /// QuadrilateralFinder qf = new QuadrilateralFinder( ); + /// List<IntPoint> corners = qf.ProcessImage( image ); + /// + /// // lock image to draw on it with AForge.NET's methods + /// // (or draw directly on image without locking if it is unmanaged image) + /// BitmapData data = image.LockBits( new Rectangle( 0, 0, image.Width, image.Height ), + /// ImageLockMode.ReadWrite, image.PixelFormat ); + /// + /// Drawing.Polygon( data, corners, Color.Red ); + /// for ( int i = 0; i < corners.Count; i++ ) + /// { + /// Drawing.FillRectangle( data, + /// new Rectangle( corners[i].X - 2, corners[i].Y - 2, 5, 5 ), + /// Color.FromArgb( i * 32 + 127 + 32, i * 64, i * 64 ) ); + /// } + /// + /// image.UnlockBits( data ); + /// + /// + /// Source image: + /// + /// Result image: + /// + /// + /// + public class QuadrilateralFinder + { + /// + /// Find corners of quadrilateral/triangular area in the specified image. + /// + /// + /// Source image to search quadrilateral for. + /// + /// Returns a list of points, which are corners of the quadrilateral/triangular area found + /// in the specified image. The first point in the list is the point with lowest + /// X coordinate (and with lowest Y if there are several points with the same X value). + /// Points are in clockwise order (screen coordinates system). + /// + /// Unsupported pixel format of the source image. + /// + public List ProcessImage( Bitmap image ) + { + CheckPixelFormat( image.PixelFormat ); + + // lock source image + BitmapData imageData = image.LockBits( + new Rectangle( 0, 0, image.Width, image.Height ), + ImageLockMode.ReadOnly, image.PixelFormat ); + + List corners = null; + + try + { + // process the image + corners = ProcessImage( new UnmanagedImage( imageData ) ); + } + finally + { + // unlock image + image.UnlockBits( imageData ); + } + + return corners; + } + + /// + /// Find corners of quadrilateral/triangular area in the specified image. + /// + /// + /// Source image data to search quadrilateral for. + /// + /// Returns a list of points, which are corners of the quadrilateral/triangular area found + /// in the specified image. The first point in the list is the point with lowest + /// X coordinate (and with lowest Y if there are several points with the same X value). + /// Points are in clockwise order (screen coordinates system). + /// + /// Unsupported pixel format of the source image. + /// + public List ProcessImage( BitmapData imageData ) + { + return ProcessImage( new UnmanagedImage( imageData ) ); + } + + /// + /// Find corners of quadrilateral/triangular area in the specified image. + /// + /// + /// Source image to search quadrilateral for. + /// + /// Returns a list of points, which are corners of the quadrilateral/triangular area found + /// in the specified image. The first point in the list is the point with lowest + /// X coordinate (and with lowest Y if there are several points with the same X value). + /// Points are in clockwise order (screen coordinates system). + /// + /// Unsupported pixel format of the source image. + /// + public List ProcessImage( UnmanagedImage image ) + { + CheckPixelFormat( image.PixelFormat ); + + // get source image size + int width = image.Width; + int height = image.Height; + + // collection of points + List points = new List( ); + + // collect edge points + unsafe + { + byte* src = (byte*) image.ImageData.ToPointer( ); + int stride = image.Stride; + + bool lineIsEmpty; + + if ( image.PixelFormat == PixelFormat.Format8bppIndexed ) + { + // for each row + for ( int y = 0; y < height; y++ ) + { + lineIsEmpty = true; + + // scan from left to right + for ( int x = 0; x < width; x++ ) + { + if ( src[x] != 0 ) + { + points.Add( new IntPoint( x, y ) ); + lineIsEmpty = false; + break; + } + } + if ( !lineIsEmpty ) + { + // scan from right to left + for ( int x = width - 1; x >= 0; x-- ) + { + if ( src[x] != 0 ) + { + points.Add( new IntPoint( x, y ) ); + break; + } + } + } + src += stride; + } + } + else + { + // 24 or 32 bpp color image + int pixelSize = System.Drawing.Image.GetPixelFormatSize( image.PixelFormat ) / 8; + + byte* ptr = null; + + // for each row + for ( int y = 0; y < height; y++ ) + { + lineIsEmpty = true; + // scan from left to right + ptr = src; + for ( int x = 0; x < width; x++, ptr += pixelSize ) + { + if ( ( ptr[RGB.R] != 0 ) || ( ptr[RGB.G] != 0 ) || ( ptr[RGB.B] != 0 ) ) + { + points.Add( new IntPoint( x, y ) ); + lineIsEmpty = false; + break; + } + } + if ( !lineIsEmpty ) + { + // scan from right to left + ptr = src + width * pixelSize - pixelSize; + for ( int x = width - 1; x >= 0; x--, ptr -= pixelSize ) + { + if ( ( ptr[RGB.R] != 0 ) || ( ptr[RGB.G] != 0 ) || ( ptr[RGB.B] != 0 ) ) + { + points.Add( new IntPoint( x, y ) ); + break; + } + } + } + src += stride; + } + } + } + + return PointsCloud.FindQuadrilateralCorners( points ); + } + + private void CheckPixelFormat( PixelFormat format ) + { + // check image format + if ( + ( format != PixelFormat.Format8bppIndexed ) && + ( format != PixelFormat.Format24bppRgb ) && + ( format != PixelFormat.Format32bppArgb ) && + ( format != PixelFormat.Format32bppPArgb ) + ) + { + throw new UnsupportedImageFormatException( "Unsupported pixel format of the source image." ); + } + } + } +} diff --git a/Sources/Imaging/RecursiveBlobCounter.cs b/Sources/Imaging/RecursiveBlobCounter.cs new file mode 100644 index 00000000..906d17c3 --- /dev/null +++ b/Sources/Imaging/RecursiveBlobCounter.cs @@ -0,0 +1,269 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2012 +// contacts@aforgenet.com +// + +namespace AForge.Imaging +{ + using System; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Blob counter based on recursion. + /// + /// + /// The class counts and extracts stand alone objects in + /// images using recursive version of connected components labeling + /// algorithm. + /// + /// The algorithm treats all pixels with values less or equal to + /// as background, but pixels with higher values are treated as objects' pixels. + /// + /// Since this algorithm is based on recursion, it is + /// required to be careful with its application to big images with big blobs, + /// because in this case recursion will require big stack size and may lead + /// to stack overflow. The recursive version may be applied (and may be even + /// faster than ) to an image with small blobs - + /// "star sky" image (or small cells, for example, etc). + /// + /// For blobs' searching the class supports 8 bpp indexed grayscale images and + /// 24/32 bpp color images. + /// See documentation about for information about which + /// pixel formats are supported for extraction of blobs. + /// + /// Sample usage: + /// + /// // create an instance of blob counter algorithm + /// RecursiveBlobCounter bc = new RecursiveBlobCounter( ); + /// // process binary image + /// bc.ProcessImage( image ); + /// Rectangle[] rects = bc.GetObjectsRectangles( ); + /// // process blobs + /// foreach ( Rectangle rect in rects ) + /// { + /// // ... + /// } + /// + /// + /// + public class RecursiveBlobCounter : BlobCounterBase + { + // temporary variable + private int[] tempLabels; + private int stride; + private int pixelSize; + + private byte backgroundThresholdR = 0; + private byte backgroundThresholdG = 0; + private byte backgroundThresholdB = 0; + + /// + /// Background threshold's value. + /// + /// + /// The property sets threshold value for distinguishing between background + /// pixel and objects' pixels. All pixel with values less or equal to this property are + /// treated as background, but pixels with higher values are treated as objects' pixels. + /// + /// In the case of colour images a pixel is treated as objects' pixel if any of its + /// RGB values are higher than corresponding values of this threshold. + /// + /// For processing grayscale image, set the property with all RGB components eqaul. + /// + /// Default value is set to (0, 0, 0) - black colour. + /// + public Color BackgroundThreshold + { + get { return Color.FromArgb( backgroundThresholdR, backgroundThresholdG, backgroundThresholdB ); } + set + { + backgroundThresholdR = value.R; + backgroundThresholdG = value.G; + backgroundThresholdB = value.B; + } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Creates new instance of the class with + /// an empty objects map. Before using methods, which provide information about blobs + /// or extract them, the , + /// or + /// method should be called to collect objects map. + /// + public RecursiveBlobCounter( ) { } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Image to look for objects in. + /// + public RecursiveBlobCounter( Bitmap image ) : base( image ) { } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Image data to look for objects in. + /// + public RecursiveBlobCounter( BitmapData imageData ) : base( imageData ) { } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Unmanaged image to look for objects in. + /// + public RecursiveBlobCounter( UnmanagedImage image ) : base( image ) { } + + /// + /// Actual objects map building. + /// + /// + /// Unmanaged image to process. + /// + /// The method supports 8 bpp indexed grayscale images and 24/32 bpp color images. + /// + /// Unsupported pixel format of the source image. + /// + protected override void BuildObjectsMap( UnmanagedImage image ) + { + this.stride = image.Stride; + + // check pixel format + if ( ( image.PixelFormat != PixelFormat.Format8bppIndexed ) && + ( image.PixelFormat != PixelFormat.Format24bppRgb ) && + ( image.PixelFormat != PixelFormat.Format32bppRgb ) && + ( image.PixelFormat != PixelFormat.Format32bppArgb ) && + ( image.PixelFormat != PixelFormat.Format32bppPArgb ) ) + { + throw new UnsupportedImageFormatException( "Unsupported pixel format of the source image." ); + } + + // allocate temporary labels array + tempLabels = new int[( imageWidth + 2 ) * ( imageHeight + 2 )]; + // fill boundaries with reserved value + for ( int x = 0, mx = imageWidth + 2; x < mx; x++ ) + { + tempLabels[x] = -1; + tempLabels[x + ( imageHeight + 1 ) * ( imageWidth + 2 )] = -1; + } + for ( int y = 0, my = imageHeight + 2; y < my; y++ ) + { + tempLabels[y * ( imageWidth + 2 )] = -1; + tempLabels[y * ( imageWidth + 2 ) + imageWidth + 1] = -1; + } + + // initial objects count + objectsCount = 0; + + // do the job + unsafe + { + byte* src = (byte*) image.ImageData.ToPointer( ); + int p = imageWidth + 2 + 1; + + if ( image.PixelFormat == PixelFormat.Format8bppIndexed ) + { + int offset = stride - imageWidth; + + // for each line + for ( int y = 0; y < imageHeight; y++ ) + { + // for each pixel + for ( int x = 0; x < imageWidth; x++, src++, p++ ) + { + // check for non-labeled pixel + if ( ( *src > backgroundThresholdG ) && ( tempLabels[p] == 0 ) ) + { + objectsCount++; + LabelPixel( src, p ); + } + } + src += offset; + p += 2; + } + } + else + { + pixelSize = Bitmap.GetPixelFormatSize( image.PixelFormat ) / 8; + int offset = stride - imageWidth * pixelSize; + + // for each line + for ( int y = 0; y < imageHeight; y++ ) + { + // for each pixel + for ( int x = 0; x < imageWidth; x++, src += pixelSize, p++ ) + { + // check for non-labeled pixel + if ( ( + ( src[RGB.R] > backgroundThresholdR ) || + ( src[RGB.G] > backgroundThresholdG ) || + ( src[RGB.B] > backgroundThresholdB ) + ) && + ( tempLabels[p] == 0 ) ) + { + objectsCount++; + LabelColorPixel( src, p ); + } + } + src += offset; + p += 2; + } + } + } + + // allocate labels array + objectLabels = new int[imageWidth * imageHeight]; + + for ( int y = 0; y < imageHeight; y++ ) + { + Array.Copy( tempLabels, ( y + 1 ) * ( imageWidth + 2 ) + 1, objectLabels, y * imageWidth, imageWidth ); + } + } + + private unsafe void LabelPixel( byte* pixel, int labelPointer ) + { + if ( ( tempLabels[labelPointer] == 0 ) && ( *pixel > backgroundThresholdG ) ) + { + tempLabels[labelPointer] = objectsCount; + + LabelPixel( pixel + 1, labelPointer + 1 ); // x + 1, y + LabelPixel( pixel + 1 + stride, labelPointer + 1 + 2 + imageWidth ); // x + 1, y + 1 + LabelPixel( pixel + stride, labelPointer + 2 + imageWidth ); // x , y + 1 + LabelPixel( pixel - 1 + stride, labelPointer - 1 + 2 + imageWidth ); // x - 1, y + 1 + LabelPixel( pixel - 1, labelPointer - 1 ); // x - 1, y + LabelPixel( pixel - 1 - stride, labelPointer - 1 - 2 - imageWidth ); // x - 1, y - 1 + LabelPixel( pixel - stride, labelPointer - 2 - imageWidth ); // x , y - 1 + LabelPixel( pixel + 1 - stride, labelPointer + 1 - 2 - imageWidth ); // x + 1, y - 1 + } + } + + private unsafe void LabelColorPixel( byte* pixel, int labelPointer ) + { + if ( ( tempLabels[labelPointer] == 0 ) && ( + ( pixel[RGB.R] > backgroundThresholdR ) || + ( pixel[RGB.G] > backgroundThresholdG ) || + ( pixel[RGB.B] > backgroundThresholdB ) ) ) + { + tempLabels[labelPointer] = objectsCount; + + LabelColorPixel( pixel + pixelSize, labelPointer + 1 ); // x + 1, y + LabelColorPixel( pixel + pixelSize + stride, labelPointer + 1 + 2 + imageWidth ); // x + 1, y + 1 + LabelColorPixel( pixel + stride, labelPointer + 2 + imageWidth ); // x , y + 1 + LabelColorPixel( pixel - pixelSize + stride, labelPointer - 1 + 2 + imageWidth ); // x - 1, y + 1 + LabelColorPixel( pixel - pixelSize, labelPointer - 1 ); // x - 1, y + LabelColorPixel( pixel - pixelSize - stride, labelPointer - 1 - 2 - imageWidth ); // x - 1, y - 1 + LabelColorPixel( pixel - stride, labelPointer - 2 - imageWidth ); // x , y - 1 + LabelColorPixel( pixel + pixelSize - stride, labelPointer + 1 - 2 - imageWidth ); // x + 1, y - 1 + } + } + } +} diff --git a/Sources/Imaging/SusanCornersDetector.cs b/Sources/Imaging/SusanCornersDetector.cs new file mode 100644 index 00000000..84c79347 --- /dev/null +++ b/Sources/Imaging/SusanCornersDetector.cs @@ -0,0 +1,352 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2005-2009 +// andrew.kirillov@aforgenet.com +// +// Copyright © Frank Nagl, 2007 +// admin@franknagl.de +// +namespace AForge.Imaging +{ + using System; + using System.Drawing; + using System.Drawing.Imaging; + using System.Collections.Generic; + using AForge.Imaging.Filters; + + /// + /// Susan corners detector. + /// + /// + /// The class implements Susan corners detector, which is described by + /// S.M. Smith in: S.M. Smith, "SUSAN - a new approach to low level image processing", + /// Internal Technical Report TR95SMS1, Defense Research Agency, Chobham Lane, Chertsey, + /// Surrey, UK, 1995. + /// + /// Some implementation notes: + /// + /// Analyzing each pixel and searching for its USAN area, the 7x7 mask is used, + /// which is comprised of 37 pixels. The mask has circle shape: + /// + /// xxx + /// xxxxx + /// xxxxxxx + /// xxxxxxx + /// xxxxxxx + /// xxxxx + /// xxx + /// + /// + /// In the case if USAN's center of mass has the same coordinates as nucleus + /// (central point), the pixel is not a corner. + /// For noise suppression the 5x5 square window is used. + /// + /// The class processes only grayscale 8 bpp and color 24/32 bpp images. + /// In the case of color image, it is converted to grayscale internally using + /// filter. + /// + /// Sample usage: + /// + /// // create corners detector's instance + /// SusanCornersDetector scd = new SusanCornersDetector( ); + /// // process image searching for corners + /// List<IntPoint> corners = scd.ProcessImage( image ); + /// // process points + /// foreach ( IntPoint corner in corners ) + /// { + /// // ... + /// } + /// + /// + /// + /// + /// + public class SusanCornersDetector : ICornersDetector + { + // brightness difference threshold + private int differenceThreshold = 25; + // geometrical threshold + private int geometricalThreshold = 18; + + /// + /// Brightness difference threshold. + /// + /// + /// The brightness difference threshold controls the amount + /// of pixels, which become part of USAN area. If difference between central + /// pixel (nucleus) and surrounding pixel is not higher than difference threshold, + /// then that pixel becomes part of USAN. + /// + /// Increasing this value decreases the amount of detected corners. + /// + /// Default value is set to 25. + /// + /// + public int DifferenceThreshold + { + get { return differenceThreshold; } + set { differenceThreshold = value; } + } + + /// + /// Geometrical threshold. + /// + /// + /// The geometrical threshold sets the maximum number of pixels + /// in USAN area around corner. If potential corner has USAN with more pixels, than + /// it is not a corner. + /// + /// Decreasing this value decreases the amount of detected corners - only sharp corners + /// are detected. Increasing this value increases the amount of detected corners, but + /// also increases amount of flat corners, which may be not corners at all. + /// + /// Default value is set to 18, which is half of maximum amount of pixels in USAN. + /// + /// + public int GeometricalThreshold + { + get { return geometricalThreshold; } + set { geometricalThreshold = value; } + } + + private static int[] rowRadius = new int[7] { 1, 2, 3, 3, 3, 2, 1 }; + + /// + /// Initializes a new instance of the class. + /// + public SusanCornersDetector( ) + { + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Brightness difference threshold. + /// Geometrical threshold. + /// + public SusanCornersDetector( int differenceThreshold, int geometricalThreshold ) + { + this.differenceThreshold = differenceThreshold; + this.geometricalThreshold = geometricalThreshold; + } + + /// + /// Process image looking for corners. + /// + /// + /// Source image to process. + /// + /// Returns list of found corners (X-Y coordinates). + /// + /// The source image has incorrect pixel format. + /// + public List ProcessImage( Bitmap image ) + { + // check image format + if ( + ( image.PixelFormat != PixelFormat.Format8bppIndexed ) && + ( image.PixelFormat != PixelFormat.Format24bppRgb ) && + ( image.PixelFormat != PixelFormat.Format32bppRgb ) && + ( image.PixelFormat != PixelFormat.Format32bppArgb ) + ) + { + throw new UnsupportedImageFormatException( "Unsupported pixel format of the source image." ); + } + + // lock source image + BitmapData imageData = image.LockBits( + new Rectangle( 0, 0, image.Width, image.Height ), + ImageLockMode.ReadOnly, image.PixelFormat ); + + List corners; + + try + { + // process the image + corners = ProcessImage( new UnmanagedImage( imageData ) ); + } + finally + { + // unlock image + image.UnlockBits( imageData ); + } + + return corners; + } + + /// + /// Process image looking for corners. + /// + /// + /// Source image data to process. + /// + /// Returns list of found corners (X-Y coordinates). + /// + /// The source image has incorrect pixel format. + /// + public List ProcessImage( BitmapData imageData ) + { + return ProcessImage( new UnmanagedImage( imageData ) ); + } + + /// + /// Process image looking for corners. + /// + /// + /// Unmanaged source image to process. + /// + /// Returns array of found corners (X-Y coordinates). + /// + /// The source image has incorrect pixel format. + /// + public List ProcessImage( UnmanagedImage image ) + { + // check image format + if ( + ( image.PixelFormat != PixelFormat.Format8bppIndexed ) && + ( image.PixelFormat != PixelFormat.Format24bppRgb ) && + ( image.PixelFormat != PixelFormat.Format32bppRgb ) && + ( image.PixelFormat != PixelFormat.Format32bppArgb ) + ) + { + throw new UnsupportedImageFormatException( "Unsupported pixel format of the source image." ); + } + + // get source image size + int width = image.Width; + int height = image.Height; + + // make sure we have grayscale image + UnmanagedImage grayImage = null; + + if ( image.PixelFormat == PixelFormat.Format8bppIndexed ) + { + grayImage = image; + } + else + { + // create temporary grayscale image + grayImage = Grayscale.CommonAlgorithms.BT709.Apply( image ); + } + + int[,] susanMap = new int[height, width]; + + // do the job + unsafe + { + int stride = grayImage.Stride; + int offset = stride - width; + + byte* src = (byte*) grayImage.ImageData.ToPointer( ) + stride * 3 + 3; + + // for each row + for ( int y = 3, maxY = height - 3; y < maxY; y++ ) + { + // for each pixel + for ( int x = 3, maxX = width - 3; x < maxX; x++, src++ ) + { + // get value of the nucleus + byte nucleusValue = *src; + // usan - number of pixels with similar brightness + int usan = 0; + // center of gravity + int cx = 0, cy = 0; + + // for each row of the mask + for ( int i = -3; i <= 3; i++ ) + { + // determine row's radius + int r = rowRadius[i + 3]; + + // get pointer to the central pixel of the row + byte* ptr = src + stride * i; + + // for each element of the mask's row + for ( int j = -r; j <= r; j++ ) + { + // differenceThreshold + if ( System.Math.Abs( nucleusValue - ptr[j] ) <= differenceThreshold ) + { + usan++; + + cx += x + j; + cy += y + i; + } + } + } + + // check usan size + if ( usan < geometricalThreshold ) + { + cx /= usan; + cy /= usan; + + if ( ( x != cx ) || ( y != cy ) ) + { + // cornersList.Add( new Point( x, y ) ); + usan = ( geometricalThreshold - usan ); + } + else + { + usan = 0; + } + } + else + { + usan = 0; + } + + // usan = ( usan < geometricalThreshold ) ? ( geometricalThreshold - usan ) : 0; + susanMap[y, x] = usan; + } + + src += 6 + offset; + } + } + + if ( image.PixelFormat != PixelFormat.Format8bppIndexed ) + { + // free grayscale image + grayImage.Dispose( ); + } + + // collect interesting points - only those points, which are local maximums + List cornersList = new List( ); + + // for each row + for ( int y = 2, maxY = height - 2; y < maxY; y++ ) + { + // for each pixel + for ( int x = 2, maxX = width - 2; x < maxX; x++ ) + { + int currentValue = susanMap[y, x]; + + // for each windows' row + for ( int i = -2; ( currentValue != 0 ) && ( i <= 2 ); i++ ) + { + // for each windows' pixel + for ( int j = -2; j <= 2; j++ ) + { + if ( susanMap[y + i, x + j] > currentValue ) + { + currentValue = 0; + break; + } + } + } + + // check if this point is really interesting + if ( currentValue != 0 ) + { + cornersList.Add( new IntPoint( x, y ) ); + } + } + } + + return cornersList; + } + } +} diff --git a/Sources/Imaging/TemplateMatch.cs b/Sources/Imaging/TemplateMatch.cs new file mode 100644 index 00000000..c6be6396 --- /dev/null +++ b/Sources/Imaging/TemplateMatch.cs @@ -0,0 +1,53 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2005-2009 +// andrew.kirillov@aforgenet.com +// + +namespace AForge.Imaging +{ + using System; + using System.Drawing; + + /// + /// Template match class keeps information about found template match. The class is + /// used with template matching algorithms implementing + /// interface. + /// + public class TemplateMatch + { + private Rectangle rect; + private float similarity; + + /// + /// Rectangle of the matching area. + /// + public Rectangle Rectangle + { + get { return rect; } + } + + /// + /// Similarity between template and found matching, [0..1]. + /// + public float Similarity + { + get { return similarity; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Rectangle of the matching area. + /// Similarity between template and found matching, [0..1]. + /// + public TemplateMatch( Rectangle rect, float similarity ) + { + this.rect = rect; + this.similarity = similarity; + } + } +} diff --git a/Sources/Imaging/Textures/CloudsTexture.cs b/Sources/Imaging/Textures/CloudsTexture.cs new file mode 100644 index 00000000..ae7df036 --- /dev/null +++ b/Sources/Imaging/Textures/CloudsTexture.cs @@ -0,0 +1,93 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2005-2010 +// andrew.kirillov@aforgenet.com +// + +namespace AForge.Imaging.Textures +{ + using System; + + /// + /// Clouds texture. + /// + /// + /// The texture generator creates textures with effect of clouds. + /// + /// The generator is based on the Perlin noise function. + /// + /// Sample usage: + /// + /// // create texture generator + /// CloudsTexture textureGenerator = new CloudsTexture( ); + /// // generate new texture + /// float[,] texture = textureGenerator.Generate( 320, 240 ); + /// // convert it to image to visualize + /// Bitmap textureImage = TextureTools.ToBitmap( texture ); + /// + /// + /// Result image: + /// + /// + /// + public class CloudsTexture : ITextureGenerator + { + // Perlin noise function used for texture generation + private AForge.Math.PerlinNoise noise = new AForge.Math.PerlinNoise( 8, 0.5, 1.0 / 32, 1.0 ); + + // randmom number generator + private Random rand = new Random( ); + private int r; + + /// + /// Initializes a new instance of the class. + /// + /// + public CloudsTexture( ) + { + Reset( ); + } + + /// + /// Generate texture. + /// + /// + /// Texture's width. + /// Texture's height. + /// + /// Two dimensional array of intensities. + /// + /// Generates new texture of the specified size. + /// + public float[,] Generate( int width, int height ) + { + float[,] texture = new float[height, width]; + + for ( int y = 0; y < height; y++ ) + { + for ( int x = 0; x < width; x++ ) + { + texture[y, x] = + Math.Max( 0.0f, Math.Min( 1.0f, + (float) noise.Function2D( x + r, y + r ) * 0.5f + 0.5f + ) ); + + } + } + return texture; + } + + /// + /// Reset generator. + /// + /// + /// Regenerates internal random numbers. + /// + public void Reset( ) + { + r = rand.Next( 5000 ); + } + } +} diff --git a/Sources/Imaging/Textures/ITextureGenerator.cs b/Sources/Imaging/Textures/ITextureGenerator.cs new file mode 100644 index 00000000..d75907cd --- /dev/null +++ b/Sources/Imaging/Textures/ITextureGenerator.cs @@ -0,0 +1,45 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2005-2009 +// andrew.kirillov@aforgenet.com +// + +namespace AForge.Imaging.Textures +{ + using System; + + /// + /// Texture generator interface. + /// + /// + /// Each texture generator generates a 2-D texture of the specified size and returns + /// it as two dimensional array of intensities in the range of [0, 1] - texture's values. + /// + /// + public interface ITextureGenerator + { + /// + /// Generate texture. + /// + /// + /// Texture's width. + /// Texture's height. + /// + /// Two dimensional array of texture's intensities. + /// + /// Generates new texture of the specified size. + /// + float[,] Generate( int width, int height ); + + /// + /// Reset generator. + /// + /// + /// Resets the generator - resets all internal variables, regenerates + /// internal random numbers, etc. + /// + void Reset( ); + } +} diff --git a/Sources/Imaging/Textures/LabyrinthTexture.cs b/Sources/Imaging/Textures/LabyrinthTexture.cs new file mode 100644 index 00000000..f6ac348b --- /dev/null +++ b/Sources/Imaging/Textures/LabyrinthTexture.cs @@ -0,0 +1,93 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2005-2009 +// andrew.kirillov@aforgenet.com +// + +namespace AForge.Imaging.Textures +{ + using System; + + /// + /// Labirinth texture. + /// + /// + /// The texture generator creates textures with effect of labyrinth. + /// + /// The generator is based on the Perlin noise function. + /// + /// Sample usage: + /// + /// // create texture generator + /// LabyrinthTexture textureGenerator = new LabyrinthTexture( ); + /// // generate new texture + /// float[,] texture = textureGenerator.Generate( 320, 240 ); + /// // convert it to image to visualize + /// Bitmap textureImage = TextureTools.ToBitmap( texture ); + /// + /// + /// Result image: + /// + /// + /// + public class LabyrinthTexture : ITextureGenerator + { + // Perlin noise function used for texture generation + private AForge.Math.PerlinNoise noise = new AForge.Math.PerlinNoise( 1, 0.65, 1.0 / 16, 1.0 ); + + // randmom number generator + private Random rand = new Random( ); + private int r; + + /// + /// Initializes a new instance of the class. + /// + /// + public LabyrinthTexture( ) + { + Reset( ); + } + + /// + /// Generate texture. + /// + /// + /// Texture's width. + /// Texture's height. + /// + /// Two dimensional array of intensities. + /// + /// Generates new texture of the specified size. + /// + public float[,] Generate( int width, int height ) + { + float[,] texture = new float[height, width]; + + for ( int y = 0; y < height; y++ ) + { + for ( int x = 0; x < width; x++ ) + { + texture[y, x] = + Math.Min( 1.0f, + (float) Math.Abs( noise.Function2D( x + r, y + r ) ) + ); + + } + } + return texture; + } + + /// + /// Reset generator. + /// + /// + /// Regenerates internal random numbers. + /// + public void Reset( ) + { + r = rand.Next( 5000 ); + } + } +} diff --git a/Sources/Imaging/Textures/MarbleTexture.cs b/Sources/Imaging/Textures/MarbleTexture.cs new file mode 100644 index 00000000..364c31ff Binary files /dev/null and b/Sources/Imaging/Textures/MarbleTexture.cs differ diff --git a/Sources/Imaging/Textures/TextileTexture.cs b/Sources/Imaging/Textures/TextileTexture.cs new file mode 100644 index 00000000..4a32d355 --- /dev/null +++ b/Sources/Imaging/Textures/TextileTexture.cs @@ -0,0 +1,96 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2005-2010 +// andrew.kirillov@aforgenet.com +// + +namespace AForge.Imaging.Textures +{ + using System; + + /// + /// Textile texture. + /// + /// + /// The texture generator creates textures with effect of textile. + /// + /// The generator is based on the Perlin noise function. + /// + /// Sample usage: + /// + /// // create texture generator + /// TextileTexture textureGenerator = new TextileTexture( ); + /// // generate new texture + /// float[,] texture = textureGenerator.Generate( 320, 240 ); + /// // convert it to image to visualize + /// Bitmap textureImage = TextureTools.ToBitmap( texture ); + /// + /// + /// Result image: + /// + /// + /// + public class TextileTexture : ITextureGenerator + { + // Perlin noise function used for texture generation + private AForge.Math.PerlinNoise noise = new AForge.Math.PerlinNoise( 3, 0.65, 1.0 / 8, 1.0 ); + + // randmom number generator + private Random rand = new Random( ); + private int r; + + /// + /// Initializes a new instance of the class. + /// + /// + public TextileTexture( ) + { + Reset( ); + } + + /// + /// Generate texture. + /// + /// + /// Texture's width. + /// Texture's height. + /// + /// Two dimensional array of intensities. + /// + /// Generates new texture of the specified size. + /// + public float[,] Generate( int width, int height ) + { + float[,] texture = new float[height, width]; + + for ( int y = 0; y < height; y++ ) + { + for ( int x = 0; x < width; x++ ) + { + texture[y, x] = + Math.Max( 0.0f, Math.Min( 1.0f, + ( + (float) Math.Sin( x + noise.Function2D( x + r, y + r ) ) + + (float) Math.Sin( y + noise.Function2D( x + r, y + r ) ) + ) * 0.25f + 0.5f + ) ); + + } + } + return texture; + } + + /// + /// Reset generator. + /// + /// + /// Regenerates internal random numbers. + /// + public void Reset( ) + { + r = rand.Next( 5000 ); + } + } +} diff --git a/Sources/Imaging/Textures/Texture.cs b/Sources/Imaging/Textures/Texture.cs new file mode 100644 index 00000000..a63878c4 --- /dev/null +++ b/Sources/Imaging/Textures/Texture.cs @@ -0,0 +1,169 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2005-2010 +// andrew.kirillov@aforgenet.com +// + +namespace AForge.Imaging.Textures +{ + using System; + using System.Drawing; + using System.Drawing.Imaging; + + /// + /// Texture tools. + /// + /// + /// The class represents collection of different texture tools, like + /// converting a texture to/from grayscale image. + /// + /// Sample usage: + /// + /// // create texture generator + /// WoodTexture textureGenerator = new WoodTexture( ); + /// // generate new texture + /// float[,] texture = textureGenerator.Generate( 320, 240 ); + /// // convert it to image to visualize + /// Bitmap textureImage = TextureTools.ToBitmap( texture ); + /// + /// + /// + public class TextureTools + { + // Avoid class instantiation + private TextureTools( ) { } + + /// + /// Convert texture to grayscale bitmap. + /// + /// + /// Texture to convert to bitmap. + /// + /// Returns bitmap of the texture. + /// + public static Bitmap ToBitmap( float[,] texture ) + { + // get texture dimension + int width = texture.GetLength( 1 ); + int height = texture.GetLength( 0 ); + + // create new grawscale image + Bitmap dstImage = AForge.Imaging.Image.CreateGrayscaleImage( width, height ); + + // lock destination bitmap data + BitmapData dstData = dstImage.LockBits( + new Rectangle( 0, 0, width, height ), + ImageLockMode.ReadWrite, PixelFormat.Format8bppIndexed ); + + // do the job + unsafe + { + byte* dst = (byte*) dstData.Scan0.ToPointer( ); + int offset = dstData.Stride - width; + + // for each line + for ( int y = 0; y < height; y++ ) + { + // for each pixel + for ( int x = 0; x < width; x++, dst++ ) + { + *dst = (byte) ( texture[y, x] * 255.0f ); + } + dst += offset; + } + } + + // unlock destination images + dstImage.UnlockBits( dstData ); + + return dstImage; + } + + /// + /// Convert grayscale bitmap to texture. + /// + /// + /// Image to convert to texture. + /// + /// Returns texture as 2D float array. + /// + /// Only grayscale (8 bpp indexed images) are supported. + /// + public static float[,] FromBitmap( Bitmap image ) + { + // lock source bitmap data + BitmapData imageData = image.LockBits( + new Rectangle( 0, 0, image.Width, image.Height ), + ImageLockMode.ReadOnly, image.PixelFormat ); + + // process the image + float[,] texture = FromBitmap( imageData ); + + // unlock source image + image.UnlockBits( imageData ); + + return texture; + } + + /// + /// Convert grayscale bitmap to texture + /// + /// + /// Image data to convert to texture + /// + /// Returns texture as 2D float array. + /// + /// Only grayscale (8 bpp indexed images) are supported. + /// + public static float[,] FromBitmap( BitmapData imageData ) + { + return FromBitmap( new UnmanagedImage( imageData ) ); + } + + /// + /// Convert grayscale bitmap to texture. + /// + /// + /// Image data to convert to texture. + /// + /// Returns texture as 2D float array. + /// + /// Only grayscale (8 bpp indexed images) are supported. + /// + public static float[,] FromBitmap( UnmanagedImage image ) + { + // check source image + if ( image.PixelFormat != PixelFormat.Format8bppIndexed ) + throw new UnsupportedImageFormatException( "Only grayscale (8 bpp indexed images) are supported." ); + + // get source image dimension + int width = image.Width; + int height = image.Height; + + // create texture array + float[,] texture = new float[height, width]; + + // do the job + unsafe + { + byte* src = (byte*) image.ImageData.ToPointer( ); + int offset = image.Stride - width; + + // for each line + for ( int y = 0; y < height; y++ ) + { + // for each pixel + for ( int x = 0; x < width; x++, src++ ) + { + texture[y, x] = (float) *src / 255.0f; + } + src += offset; + } + } + + return texture; + } + } +} \ No newline at end of file diff --git a/Sources/Imaging/Textures/WoodTexture.cs b/Sources/Imaging/Textures/WoodTexture.cs new file mode 100644 index 00000000..b17199f7 Binary files /dev/null and b/Sources/Imaging/Textures/WoodTexture.cs differ diff --git a/Sources/Imaging/UnmanagedImage.cs b/Sources/Imaging/UnmanagedImage.cs new file mode 100644 index 00000000..19ae4bdf --- /dev/null +++ b/Sources/Imaging/UnmanagedImage.cs @@ -0,0 +1,1106 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2012 +// contacts@aforgenet.com +// + +namespace AForge.Imaging +{ + using System; + using System.Drawing; + using System.Drawing.Imaging; + using System.Collections.Generic; + + /// + /// Image in unmanaged memory. + /// + /// + /// + /// The class represents wrapper of an image in unmanaged memory. Using this class + /// it is possible as to allocate new image in unmanaged memory, as to just wrap provided + /// pointer to unmanaged memory, where an image is stored. + /// + /// Usage of unmanaged images is mostly beneficial when it is required to apply multiple + /// image processing routines to a single image. In such scenario usage of .NET managed images + /// usually leads to worse performance, because each routine needs to lock managed image + /// before image processing is done and then unlock it after image processing is done. Without + /// these lock/unlock there is no way to get direct access to managed image's data, which means + /// there is no way to do fast image processing. So, usage of managed images lead to overhead, which + /// is caused by locks/unlock. Unmanaged images are represented internally using unmanaged memory + /// buffer. This means that it is not required to do any locks/unlocks in order to get access to image + /// data (no overhead). + /// + /// Sample usage: + /// + /// // sample 1 - wrapping .NET image into unmanaged without + /// // making extra copy of image in memory + /// BitmapData imageData = image.LockBits( + /// new Rectangle( 0, 0, image.Width, image.Height ), + /// ImageLockMode.ReadWrite, image.PixelFormat ); + /// + /// try + /// { + /// UnmanagedImage unmanagedImage = new UnmanagedImage( imageData ) ); + /// // apply several routines to the unmanaged image + /// } + /// finally + /// { + /// image.UnlockBits( imageData ); + /// } + /// + /// + /// // sample 2 - converting .NET image into unmanaged + /// UnmanagedImage unmanagedImage = UnmanagedImage.FromManagedImage( image ); + /// // apply several routines to the unmanaged image + /// ... + /// // conver to managed image if it is required to display it at some point of time + /// Bitmap managedImage = unmanagedImage.ToManagedImage( ); + /// + /// + /// + public class UnmanagedImage : IDisposable + { + // pointer to image data in unmanaged memory + private IntPtr imageData; + // image size + private int width, height; + // image stride (line size) + private int stride; + // image pixel format + private PixelFormat pixelFormat; + // flag which indicates if the image should be disposed or not + private bool mustBeDisposed = false; + + /// + /// Pointer to image data in unmanaged memory. + /// + public IntPtr ImageData + { + get { return imageData; } + } + + /// + /// Image width in pixels. + /// + public int Width + { + get { return width; } + } + + /// + /// Image height in pixels. + /// + public int Height + { + get { return height; } + } + + /// + /// Image stride (line size in bytes). + /// + public int Stride + { + get { return stride; } + } + + /// + /// Image pixel format. + /// + public PixelFormat PixelFormat + { + get { return pixelFormat; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Pointer to image data in unmanaged memory. + /// Image width in pixels. + /// Image height in pixels. + /// Image stride (line size in bytes). + /// Image pixel format. + /// + /// Using this constructor, make sure all specified image attributes are correct + /// and correspond to unmanaged memory buffer. If some attributes are specified incorrectly, + /// this may lead to exceptions working with the unmanaged memory. + /// + public UnmanagedImage( IntPtr imageData, int width, int height, int stride, PixelFormat pixelFormat ) + { + this.imageData = imageData; + this.width = width; + this.height = height; + this.stride = stride; + this.pixelFormat = pixelFormat; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Locked bitmap data. + /// + /// Unlike method, this constructor does not make + /// copy of managed image. This means that managed image must stay locked for the time of using the instance + /// of unamanged image. + /// + public UnmanagedImage( BitmapData bitmapData ) + { + this.imageData = bitmapData.Scan0; + this.width = bitmapData.Width; + this.height = bitmapData.Height; + this.stride = bitmapData.Stride; + this.pixelFormat = bitmapData.PixelFormat; + } + + /// + /// Destroys the instance of the class. + /// + /// + ~UnmanagedImage( ) + { + Dispose( false ); + } + + /// + /// Dispose the object. + /// + /// + /// Frees unmanaged resources used by the object. The object becomes unusable + /// after that. + /// + /// The method needs to be called only in the case if unmanaged image was allocated + /// using method. In the case if the class instance was created using constructor, + /// this method does not free unmanaged memory. + /// + /// + public void Dispose( ) + { + Dispose( true ); + // remove me from the Finalization queue + GC.SuppressFinalize( this ); + } + + /// + /// Dispose the object. + /// + /// + /// Indicates if disposing was initiated manually. + /// + protected virtual void Dispose( bool disposing ) + { + if ( disposing ) + { + // dispose managed resources + } + // free image memory if the image was allocated using this class + if ( ( mustBeDisposed ) && ( imageData != IntPtr.Zero ) ) + { + System.Runtime.InteropServices.Marshal.FreeHGlobal( imageData ); + System.GC.RemoveMemoryPressure( stride * height ); + imageData = IntPtr.Zero; + } + } + + /// + /// Clone the unmanaged images. + /// + /// + /// Returns clone of the unmanaged image. + /// + /// The method does complete cloning of the object. + /// + public UnmanagedImage Clone( ) + { + // allocate memory for the image + IntPtr newImageData = System.Runtime.InteropServices.Marshal.AllocHGlobal( stride * height ); + System.GC.AddMemoryPressure( stride * height ); + + UnmanagedImage newImage = new UnmanagedImage( newImageData, width, height, stride, pixelFormat ); + newImage.mustBeDisposed = true; + + AForge.SystemTools.CopyUnmanagedMemory( newImageData, imageData, stride * height ); + + return newImage; + } + + /// + /// Copy unmanaged image. + /// + /// + /// Destination image to copy this image to. + /// + /// The method copies current unmanaged image to the specified image. + /// Size and pixel format of the destination image must be exactly the same. + /// + /// Destination image has different size or pixel format. + /// + public void Copy( UnmanagedImage destImage ) + { + if ( + ( width != destImage.width ) || ( height != destImage.height ) || + ( pixelFormat != destImage.pixelFormat ) ) + { + throw new InvalidImagePropertiesException( "Destination image has different size or pixel format." ); + } + + if ( stride == destImage.stride ) + { + // copy entire image + AForge.SystemTools.CopyUnmanagedMemory( destImage.imageData, imageData, stride * height ); + } + else + { + unsafe + { + int dstStride = destImage.stride; + int copyLength = ( stride < dstStride ) ? stride : dstStride; + + byte* src = (byte*) imageData.ToPointer( ); + byte* dst = (byte*) destImage.imageData.ToPointer( ); + + // copy line by line + for ( int i = 0; i < height; i++ ) + { + AForge.SystemTools.CopyUnmanagedMemory( dst, src, copyLength ); + + dst += dstStride; + src += stride; + } + } + } + } + + /// + /// Allocate new image in unmanaged memory. + /// + /// + /// Image width. + /// Image height. + /// Image pixel format. + /// + /// Return image allocated in unmanaged memory. + /// + /// Allocate new image with specified attributes in unmanaged memory. + /// + /// The method supports only + /// Format8bppIndexed, + /// Format16bppGrayScale, + /// Format24bppRgb, + /// Format32bppRgb, + /// Format32bppArgb, + /// Format32bppPArgb, + /// Format48bppRgb, + /// Format64bppArgb and + /// Format64bppPArgb pixel formats. + /// In the case if Format8bppIndexed + /// format is specified, pallete is not not created for the image (supposed that it is + /// 8 bpp grayscale image). + /// + /// + /// + /// Unsupported pixel format was specified. + /// Invalid image size was specified. + /// + public static UnmanagedImage Create( int width, int height, PixelFormat pixelFormat ) + { + int bytesPerPixel = 0 ; + + // calculate bytes per pixel + switch ( pixelFormat ) + { + case PixelFormat.Format8bppIndexed: + bytesPerPixel = 1; + break; + case PixelFormat.Format16bppGrayScale: + bytesPerPixel = 2; + break; + case PixelFormat.Format24bppRgb: + bytesPerPixel = 3; + break; + case PixelFormat.Format32bppRgb: + case PixelFormat.Format32bppArgb: + case PixelFormat.Format32bppPArgb: + bytesPerPixel = 4; + break; + case PixelFormat.Format48bppRgb: + bytesPerPixel = 6; + break; + case PixelFormat.Format64bppArgb: + case PixelFormat.Format64bppPArgb: + bytesPerPixel = 8; + break; + default: + throw new UnsupportedImageFormatException( "Can not create image with specified pixel format." ); + } + + // check image size + if ( ( width <= 0 ) || ( height <= 0 ) ) + { + throw new InvalidImagePropertiesException( "Invalid image size specified." ); + } + + // calculate stride + int stride = width * bytesPerPixel; + + if ( stride % 4 != 0 ) + { + stride += ( 4 - ( stride % 4 ) ); + } + + // allocate memory for the image + IntPtr imageData = System.Runtime.InteropServices.Marshal.AllocHGlobal( stride * height ); + AForge.SystemTools.SetUnmanagedMemory( imageData, 0, stride * height ); + System.GC.AddMemoryPressure( stride * height ); + + UnmanagedImage image = new UnmanagedImage( imageData, width, height, stride, pixelFormat ); + image.mustBeDisposed = true; + + return image; + } + + /// + /// Create managed image from the unmanaged. + /// + /// + /// Returns managed copy of the unmanaged image. + /// + /// The method creates a managed copy of the unmanaged image with the + /// same size and pixel format (it calls specifying + /// for the makeCopy parameter). + /// + public Bitmap ToManagedImage( ) + { + return ToManagedImage( true ); + } + + /// + /// Create managed image from the unmanaged. + /// + /// + /// Make a copy of the unmanaged image or not. + /// + /// Returns managed copy of the unmanaged image. + /// + /// If the is set to , then the method + /// creates a managed copy of the unmanaged image, so the managed image stays valid even when the unmanaged + /// image gets disposed. However, setting this parameter to creates a managed image which is + /// just a wrapper around the unmanaged image. So if unmanaged image is disposed, the + /// managed image becomes no longer valid and accessing it will generate an exception. + /// + /// The unmanaged image has some invalid properties, which results + /// in failure of converting it to managed image. This may happen if user used the + /// constructor specifying some + /// invalid parameters. + /// + public Bitmap ToManagedImage( bool makeCopy ) + { + Bitmap dstImage = null; + + try + { + if ( !makeCopy ) + { + dstImage = new Bitmap( width, height, stride, pixelFormat, imageData ); + if ( pixelFormat == PixelFormat.Format8bppIndexed ) + { + Image.SetGrayscalePalette( dstImage ); + } + } + else + { + // create new image of required format + dstImage = ( pixelFormat == PixelFormat.Format8bppIndexed ) ? + AForge.Imaging.Image.CreateGrayscaleImage( width, height ) : + new Bitmap( width, height, pixelFormat ); + + // lock destination bitmap data + BitmapData dstData = dstImage.LockBits( + new Rectangle( 0, 0, width, height ), + ImageLockMode.ReadWrite, pixelFormat ); + + int dstStride = dstData.Stride; + int lineSize = Math.Min( stride, dstStride ); + + unsafe + { + byte* dst = (byte*) dstData.Scan0.ToPointer( ); + byte* src = (byte*) imageData.ToPointer( ); + + if ( stride != dstStride ) + { + // copy image + for ( int y = 0; y < height; y++ ) + { + AForge.SystemTools.CopyUnmanagedMemory( dst, src, lineSize ); + dst += dstStride; + src += stride; + } + } + else + { + AForge.SystemTools.CopyUnmanagedMemory( dst, src, stride * height ); + } + } + + // unlock destination images + dstImage.UnlockBits( dstData ); + } + + return dstImage; + } + catch ( Exception ) + { + if ( dstImage != null ) + { + dstImage.Dispose( ); + } + + throw new InvalidImagePropertiesException( "The unmanaged image has some invalid properties, which results in failure of converting it to managed image." ); + } + } + + /// + /// Create unmanaged image from the specified managed image. + /// + /// + /// Source managed image. + /// + /// Returns new unmanaged image, which is a copy of source managed image. + /// + /// The method creates an exact copy of specified managed image, but allocated + /// in unmanaged memory. + /// + /// Unsupported pixel format of source image. + /// + public static UnmanagedImage FromManagedImage( Bitmap image ) + { + UnmanagedImage dstImage = null; + + BitmapData sourceData = image.LockBits( new Rectangle( 0, 0, image.Width, image.Height ), + ImageLockMode.ReadOnly, image.PixelFormat ); + + try + { + dstImage = FromManagedImage( sourceData ); + } + finally + { + image.UnlockBits( sourceData ); + } + + return dstImage; + } + + /// + /// Create unmanaged image from the specified managed image. + /// + /// + /// Source locked image data. + /// + /// Returns new unmanaged image, which is a copy of source managed image. + /// + /// The method creates an exact copy of specified managed image, but allocated + /// in unmanaged memory. This means that managed image may be unlocked right after call to this + /// method. + /// + /// Unsupported pixel format of source image. + /// + public static UnmanagedImage FromManagedImage( BitmapData imageData ) + { + PixelFormat pixelFormat = imageData.PixelFormat; + + // check source pixel format + if ( + ( pixelFormat != PixelFormat.Format8bppIndexed ) && + ( pixelFormat != PixelFormat.Format16bppGrayScale ) && + ( pixelFormat != PixelFormat.Format24bppRgb ) && + ( pixelFormat != PixelFormat.Format32bppRgb ) && + ( pixelFormat != PixelFormat.Format32bppArgb ) && + ( pixelFormat != PixelFormat.Format32bppPArgb ) && + ( pixelFormat != PixelFormat.Format48bppRgb ) && + ( pixelFormat != PixelFormat.Format64bppArgb ) && + ( pixelFormat != PixelFormat.Format64bppPArgb ) ) + { + throw new UnsupportedImageFormatException( "Unsupported pixel format of the source image." ); + } + + // allocate memory for the image + IntPtr dstImageData = System.Runtime.InteropServices.Marshal.AllocHGlobal( imageData.Stride * imageData.Height ); + System.GC.AddMemoryPressure( imageData.Stride * imageData.Height ); + + UnmanagedImage image = new UnmanagedImage( dstImageData, imageData.Width, imageData.Height, imageData.Stride, pixelFormat ); + AForge.SystemTools.CopyUnmanagedMemory( dstImageData, imageData.Scan0, imageData.Stride * imageData.Height ); + image.mustBeDisposed = true; + + return image; + } + + /// + /// Collect pixel values from the specified list of coordinates. + /// + /// + /// List of coordinates to collect pixels' value from. + /// + /// Returns array of pixels' values from the specified coordinates. + /// + /// The method goes through the specified list of points and for each point retrievs + /// corresponding pixel's value from the unmanaged image. + /// + /// For grayscale image the output array has the same length as number of points in the + /// specified list of points. For color image the output array has triple length, containing pixels' + /// values in RGB order. + /// + /// The method does not make any checks for valid coordinates and leaves this up to user. + /// If specified coordinates are out of image's bounds, the result is not predictable (crash in most cases). + /// + /// + /// This method is supposed for images with 8 bpp channels only (8 bpp grayscale image and + /// 24/32 bpp color images). + /// + /// + /// Unsupported pixel format of the source image. Use Collect16bppPixelValues() method for + /// images with 16 bpp channels. + /// + public byte[] Collect8bppPixelValues( List points ) + { + int pixelSize = Bitmap.GetPixelFormatSize( pixelFormat ) / 8; + + if ( ( pixelFormat == PixelFormat.Format16bppGrayScale ) || ( pixelSize > 4 ) ) + { + throw new UnsupportedImageFormatException( "Unsupported pixel format of the source image. Use Collect16bppPixelValues() method for it." ); + } + + byte[] pixelValues = new byte[points.Count * ( ( pixelFormat == PixelFormat.Format8bppIndexed ) ? 1 : 3 )]; + + unsafe + { + byte* basePtr = (byte*) imageData.ToPointer( ); + byte* ptr; + + if ( pixelFormat == PixelFormat.Format8bppIndexed ) + { + int i = 0; + + foreach ( IntPoint point in points ) + { + ptr = basePtr + stride * point.Y + point.X; + pixelValues[i++] = *ptr; + } + } + else + { + int i = 0; + + foreach ( IntPoint point in points ) + { + ptr = basePtr + stride * point.Y + point.X * pixelSize; + pixelValues[i++] = ptr[RGB.R]; + pixelValues[i++] = ptr[RGB.G]; + pixelValues[i++] = ptr[RGB.B]; + } + } + } + + return pixelValues; + } + + /// + /// Collect coordinates of none black pixels in the image. + /// + /// + /// Returns list of points, which have other than black color. + /// + public List CollectActivePixels( ) + { + return CollectActivePixels( new Rectangle( 0, 0, width, height ) ); + } + + /// + /// Collect coordinates of none black pixels within specified rectangle of the image. + /// + /// + /// Image's rectangle to process. + /// + /// Returns list of points, which have other than black color. + /// + public List CollectActivePixels( Rectangle rect ) + { + List pixels = new List( ); + + int pixelSize = Bitmap.GetPixelFormatSize( pixelFormat ) / 8; + + // correct rectangle + rect.Intersect( new Rectangle( 0, 0, width, height ) ); + + int startX = rect.X; + int startY = rect.Y; + int stopX = rect.Right; + int stopY = rect.Bottom; + + unsafe + { + byte* basePtr = (byte*) imageData.ToPointer( ); + + if ( ( pixelFormat == PixelFormat.Format16bppGrayScale ) || ( pixelSize > 4 ) ) + { + int pixelWords = pixelSize >> 1; + + for ( int y = startY; y < stopY; y++ ) + { + ushort* ptr = (ushort*) ( basePtr + y * stride + startX * pixelSize ); + + if ( pixelWords == 1 ) + { + // grayscale images + for ( int x = startX; x < stopX; x++, ptr++ ) + { + if ( *ptr != 0 ) + { + pixels.Add( new IntPoint( x, y ) ); + } + } + } + else + { + // color images + for ( int x = startX; x < stopX; x++, ptr += pixelWords ) + { + if ( ( ptr[RGB.R] != 0 ) || ( ptr[RGB.G] != 0 ) || ( ptr[RGB.B] != 0 ) ) + { + pixels.Add( new IntPoint( x, y ) ); + } + } + } + } + } + else + { + for ( int y = startY; y < stopY; y++ ) + { + byte* ptr = basePtr + y * stride + startX * pixelSize; + + if ( pixelSize == 1 ) + { + // grayscale images + for ( int x = startX; x < stopX; x++, ptr++ ) + { + if ( *ptr != 0 ) + { + pixels.Add( new IntPoint( x, y ) ); + } + } + } + else + { + // color images + for ( int x = startX; x < stopX; x++, ptr += pixelSize ) + { + if ( ( ptr[RGB.R] != 0 ) || ( ptr[RGB.G] != 0 ) || ( ptr[RGB.B] != 0 ) ) + { + pixels.Add( new IntPoint( x, y ) ); + } + } + } + } + } + } + + return pixels; + } + + /// + /// Set pixels with the specified coordinates to the specified color. + /// + /// + /// List of points to set color for. + /// Color to set for the specified points. + /// + /// For images having 16 bpp per color plane, the method extends the specified color + /// value to 16 bit by multiplying it by 256. + /// + public void SetPixels( List coordinates, Color color ) + { + unsafe + { + int pixelSize = Bitmap.GetPixelFormatSize( pixelFormat ) / 8; + byte* basePtr = (byte*) imageData.ToPointer( ); + + byte red = color.R; + byte green = color.G; + byte blue = color.B; + byte alpha = color.A; + + switch ( pixelFormat ) + { + case PixelFormat.Format8bppIndexed: + { + byte grayValue = (byte) ( 0.2125 * red + 0.7154 * green + 0.0721 * blue ); + + foreach ( IntPoint point in coordinates ) + { + if ( ( point.X >= 0 ) && ( point.Y >= 0 ) && ( point.X < width ) && ( point.Y < height ) ) + { + byte* ptr = basePtr + point.Y * stride + point.X; + *ptr = grayValue; + } + } + } + break; + + case PixelFormat.Format24bppRgb: + case PixelFormat.Format32bppRgb: + { + + + foreach ( IntPoint point in coordinates ) + { + if ( ( point.X >= 0 ) && ( point.Y >= 0 ) && ( point.X < width ) && ( point.Y < height ) ) + { + byte* ptr = basePtr + point.Y * stride + point.X * pixelSize; + ptr[RGB.R] = red; + ptr[RGB.G] = green; + ptr[RGB.B] = blue; + } + } + } + break; + + case PixelFormat.Format32bppArgb: + { + foreach ( IntPoint point in coordinates ) + { + if ( ( point.X >= 0 ) && ( point.Y >= 0 ) && ( point.X < width ) && ( point.Y < height ) ) + { + byte* ptr = basePtr + point.Y * stride + point.X * pixelSize; + ptr[RGB.R] = red; + ptr[RGB.G] = green; + ptr[RGB.B] = blue; + ptr[RGB.A] = alpha; + } + } + } + break; + + case PixelFormat.Format16bppGrayScale: + { + ushort grayValue = (ushort) ( (ushort) ( 0.2125 * red + 0.7154 * green + 0.0721 * blue ) << 8 ); + + foreach ( IntPoint point in coordinates ) + { + if ( ( point.X >= 0 ) && ( point.Y >= 0 ) && ( point.X < width ) && ( point.Y < height ) ) + { + ushort* ptr = (ushort*) ( basePtr + point.Y * stride ) + point.X; + *ptr = grayValue; + } + } + } + break; + + case PixelFormat.Format48bppRgb: + { + ushort red16 = (ushort) ( red << 8 ); + ushort green16 = (ushort) ( green << 8 ); + ushort blue16 = (ushort) ( blue << 8 ); + + foreach ( IntPoint point in coordinates ) + { + if ( ( point.X >= 0 ) && ( point.Y >= 0 ) && ( point.X < width ) && ( point.Y < height ) ) + { + ushort* ptr = (ushort*) ( basePtr + point.Y * stride + point.X * pixelSize ); + ptr[RGB.R] = red16; + ptr[RGB.G] = green16; + ptr[RGB.B] = blue16; + } + } + } + break; + + case PixelFormat.Format64bppArgb: + { + ushort red16 = (ushort) ( red << 8 ); + ushort green16 = (ushort) ( green << 8 ); + ushort blue16 = (ushort) ( blue << 8 ); + ushort alpha16 = (ushort) ( alpha << 8 ); + + foreach ( IntPoint point in coordinates ) + { + if ( ( point.X >= 0 ) && ( point.Y >= 0 ) && ( point.X < width ) && ( point.Y < height ) ) + { + ushort* ptr = (ushort*) ( basePtr + point.Y * stride + point.X * pixelSize ); + ptr[RGB.R] = red16; + ptr[RGB.G] = green16; + ptr[RGB.B] = blue16; + ptr[RGB.A] = alpha16; + } + } + } + break; + + default: + throw new UnsupportedImageFormatException( "The pixel format is not supported: " + pixelFormat ); + } + } + } + + /// + /// Set pixel with the specified coordinates to the specified color. + /// + /// + /// Point's coordiates to set color for. + /// Color to set for the pixel. + /// + /// See for more information. + /// + public void SetPixel( IntPoint point, Color color ) + { + SetPixel( point.X, point.Y, color ); + } + + /// + /// Set pixel with the specified coordinates to the specified color. + /// + /// + /// X coordinate of the pixel to set. + /// Y coordinate of the pixel to set. + /// Color to set for the pixel. + /// + /// For images having 16 bpp per color plane, the method extends the specified color + /// value to 16 bit by multiplying it by 256. + /// + /// For grayscale images this method will calculate intensity value based on the below formula: + /// + /// 0.2125 * Red + 0.7154 * Green + 0.0721 * Blue + /// + /// + /// + /// + public void SetPixel( int x, int y, Color color ) + { + SetPixel( x, y, color.R, color.G, color.B, color.A ); + } + + /// + /// Set pixel with the specified coordinates to the specified value. + /// + /// + /// X coordinate of the pixel to set. + /// Y coordinate of the pixel to set. + /// Pixel value to set. + /// + /// The method sets all color components of the pixel to the specified value. + /// If it is a grayscale image, then pixel's intensity is set to the specified value. + /// If it is a color image, then pixel's R/G/B components are set to the same specified value + /// (if an image has alpha channel, then it is set to maximum value - 255 or 65535). + /// + /// For images having 16 bpp per color plane, the method extends the specified color + /// value to 16 bit by multiplying it by 256. + /// + /// + public void SetPixel( int x, int y, byte value ) + { + SetPixel( x, y, value, value, value, 255 ); + } + + private void SetPixel( int x, int y, byte r, byte g, byte b, byte a ) + { + if ( ( x >= 0 ) && ( y >= 0 ) && ( x < width ) && ( y < height ) ) + { + unsafe + { + int pixelSize = Bitmap.GetPixelFormatSize( pixelFormat ) / 8; + byte* ptr = (byte*) imageData.ToPointer( ) + y * stride + x * pixelSize; + ushort* ptr2 = (ushort*) ptr; + + switch ( pixelFormat ) + { + case PixelFormat.Format8bppIndexed: + *ptr = (byte) ( 0.2125 * r + 0.7154 * g + 0.0721 * b ); + break; + + case PixelFormat.Format24bppRgb: + case PixelFormat.Format32bppRgb: + ptr[RGB.R] = r; + ptr[RGB.G] = g; + ptr[RGB.B] = b; + break; + + case PixelFormat.Format32bppArgb: + ptr[RGB.R] = r; + ptr[RGB.G] = g; + ptr[RGB.B] = b; + ptr[RGB.A] = a; + break; + + case PixelFormat.Format16bppGrayScale: + *ptr2 = (ushort) ( (ushort) ( 0.2125 * r + 0.7154 * g + 0.0721 * b ) << 8 ); + break; + + case PixelFormat.Format48bppRgb: + ptr2[RGB.R] = (ushort) ( r << 8 ); + ptr2[RGB.G] = (ushort) ( g << 8 ); + ptr2[RGB.B] = (ushort) ( b << 8 ); + break; + + case PixelFormat.Format64bppArgb: + ptr2[RGB.R] = (ushort) ( r << 8 ); + ptr2[RGB.G] = (ushort) ( g << 8 ); + ptr2[RGB.B] = (ushort) ( b << 8 ); + ptr2[RGB.A] = (ushort) ( a << 8 ); + break; + + default: + throw new UnsupportedImageFormatException( "The pixel format is not supported: " + pixelFormat ); + } + } + } + } + + /// + /// Get color of the pixel with the specified coordinates. + /// + /// + /// Point's coordiates to get color of. + /// + /// Return pixel's color at the specified coordinates. + /// + /// See for more information. + /// + public Color GetPixel( IntPoint point ) + { + return GetPixel( point.X, point.Y ); + } + + /// + /// Get color of the pixel with the specified coordinates. + /// + /// + /// X coordinate of the pixel to get. + /// Y coordinate of the pixel to get. + /// + /// Return pixel's color at the specified coordinates. + /// + /// + /// In the case if the image has 8 bpp grayscale format, the method will return a color with + /// all R/G/B components set to same value, which is grayscale intensity. + /// + /// The method supports only 8 bpp grayscale images and 24/32 bpp color images so far. + /// + /// + /// The specified pixel coordinate is out of image's bounds. + /// Pixel format of this image is not supported by the method. + /// + public Color GetPixel( int x, int y ) + { + if ( ( x < 0 ) || ( y < 0 ) ) + { + throw new ArgumentOutOfRangeException( "x", "The specified pixel coordinate is out of image's bounds." ); + } + + if ( ( x >= width ) || ( y >= height ) ) + { + throw new ArgumentOutOfRangeException( "y", "The specified pixel coordinate is out of image's bounds." ); + } + + Color color = new Color( ); + + unsafe + { + int pixelSize = Bitmap.GetPixelFormatSize( pixelFormat ) / 8; + byte* ptr = (byte*) imageData.ToPointer( ) + y * stride + x * pixelSize; + + switch ( pixelFormat ) + { + case PixelFormat.Format8bppIndexed: + color = Color.FromArgb( *ptr, *ptr, *ptr ); + break; + + case PixelFormat.Format24bppRgb: + case PixelFormat.Format32bppRgb: + color = Color.FromArgb( ptr[RGB.R], ptr[RGB.G], ptr[RGB.B] ); + break; + + case PixelFormat.Format32bppArgb: + color = Color.FromArgb( ptr[RGB.A], ptr[RGB.R], ptr[RGB.G], ptr[RGB.B] ); + break; + + default: + throw new UnsupportedImageFormatException( "The pixel format is not supported: " + pixelFormat ); + } + } + + return color; + } + + /// + /// Collect pixel values from the specified list of coordinates. + /// + /// + /// List of coordinates to collect pixels' value from. + /// + /// Returns array of pixels' values from the specified coordinates. + /// + /// The method goes through the specified list of points and for each point retrievs + /// corresponding pixel's value from the unmanaged image. + /// + /// For grayscale image the output array has the same length as number of points in the + /// specified list of points. For color image the output array has triple length, containing pixels' + /// values in RGB order. + /// + /// The method does not make any checks for valid coordinates and leaves this up to user. + /// If specified coordinates are out of image's bounds, the result is not predictable (crash in most cases). + /// + /// + /// This method is supposed for images with 16 bpp channels only (16 bpp grayscale image and + /// 48/64 bpp color images). + /// + /// + /// Unsupported pixel format of the source image. Use Collect8bppPixelValues() method for + /// images with 8 bpp channels. + /// + public ushort[] Collect16bppPixelValues( List points ) + { + int pixelSize = Bitmap.GetPixelFormatSize( pixelFormat ) / 8; + + if ( ( pixelFormat == PixelFormat.Format8bppIndexed ) || ( pixelSize == 3 ) || ( pixelSize == 4 ) ) + { + throw new UnsupportedImageFormatException( "Unsupported pixel format of the source image. Use Collect8bppPixelValues() method for it." ); + } + + ushort[] pixelValues = new ushort[points.Count * ( ( pixelFormat == PixelFormat.Format16bppGrayScale ) ? 1 : 3 )]; + + unsafe + { + byte* basePtr = (byte*) imageData.ToPointer( ); + ushort* ptr; + + if ( pixelFormat == PixelFormat.Format16bppGrayScale ) + { + int i = 0; + + foreach ( IntPoint point in points ) + { + ptr = (ushort*) ( basePtr + stride * point.Y + point.X * pixelSize ); + pixelValues[i++] = *ptr; + } + } + else + { + int i = 0; + + foreach ( IntPoint point in points ) + { + ptr = (ushort*) ( basePtr + stride * point.Y + point.X * pixelSize ); + pixelValues[i++] = ptr[RGB.R]; + pixelValues[i++] = ptr[RGB.G]; + pixelValues[i++] = ptr[RGB.B]; + } + } + } + + return pixelValues; + } + } +} diff --git a/Sources/Imaging/VerticalIntensityStatistics.cs b/Sources/Imaging/VerticalIntensityStatistics.cs new file mode 100644 index 00000000..e260fb7f --- /dev/null +++ b/Sources/Imaging/VerticalIntensityStatistics.cs @@ -0,0 +1,372 @@ +// AForge Image Processing Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +namespace AForge.Imaging +{ + using System; + using System.Drawing; + using System.Drawing.Imaging; + using AForge.Math; + + /// + /// Vertical intensity statistics. + /// + /// + /// The class provides information about vertical distribution + /// of pixel intensities, which may be used to locate objects, their centers, etc. + /// + /// + /// The class accepts grayscale (8 bpp indexed and 16 bpp) and color (24, 32, 48 and 64 bpp) images. + /// In the case of 32 and 64 bpp color images, the alpha channel is not processed - statistics is not + /// gathered for this channel. + /// + /// Sample usage: + /// + /// // collect statistics + /// VerticalIntensityStatistics vis = new VerticalIntensityStatistics( sourceImage ); + /// // get gray histogram (for grayscale image) + /// Histogram histogram = vis.Gray; + /// // output some histogram's information + /// System.Diagnostics.Debug.WriteLine( "Mean = " + histogram.Mean ); + /// System.Diagnostics.Debug.WriteLine( "Min = " + histogram.Min ); + /// System.Diagnostics.Debug.WriteLine( "Max = " + histogram.Max ); + /// + /// + /// Sample grayscale image with its vertical intensity histogram: + /// + /// + /// + /// + /// + public class VerticalIntensityStatistics + { + // histograms for RGB channgels + private Histogram red = null; + private Histogram green = null; + private Histogram blue = null; + // grayscale histogram + private Histogram gray = null; + + /// + /// Histogram for red channel. + /// + /// + public Histogram Red + { + get + { + if ( red == null ) + { + throw new InvalidImagePropertiesException( ExceptionMessage.ColorHistogramException ); + } + return red; + } + } + + /// + /// Histogram for green channel. + /// + /// + public Histogram Green + { + get + { + if ( green == null ) + { + throw new InvalidImagePropertiesException( ExceptionMessage.ColorHistogramException ); + } + return green; + } + } + + /// + /// Histogram for blue channel. + /// + /// + public Histogram Blue + { + get + { + if ( blue == null ) + { + throw new InvalidImagePropertiesException( ExceptionMessage.ColorHistogramException ); + } + return blue; + } + } + + /// + /// Histogram for gray channel (intensities). + /// + /// + public Histogram Gray + { + get + { + if ( gray == null ) + { + throw new InvalidImagePropertiesException( ExceptionMessage.GrayHistogramException ); + } + return gray; + } + } + + /// + /// Value wich specifies if the processed image was color or grayscale. + /// + /// + /// If the property equals to true, then the + /// property should be used to retrieve histogram for the processed grayscale image. + /// Otherwise , and property + /// should be used to retrieve histogram for particular RGB channel of the processed + /// color image. + /// + public bool IsGrayscale + { + get { return ( gray != null ); } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Source image. + /// + /// Unsupported pixel format of the source image. + /// + public VerticalIntensityStatistics( Bitmap image ) + { + // check image format + if ( + ( image.PixelFormat != PixelFormat.Format8bppIndexed ) && + ( image.PixelFormat != PixelFormat.Format16bppGrayScale ) && + ( image.PixelFormat != PixelFormat.Format24bppRgb ) && + ( image.PixelFormat != PixelFormat.Format32bppRgb ) && + ( image.PixelFormat != PixelFormat.Format32bppArgb ) && + ( image.PixelFormat != PixelFormat.Format48bppRgb ) && + ( image.PixelFormat != PixelFormat.Format64bppArgb ) + ) + { + throw new UnsupportedImageFormatException( "Unsupported pixel format of the source image." ); + } + + // lock bitmap data + BitmapData imageData = image.LockBits( + new Rectangle( 0, 0, image.Width, image.Height ), + ImageLockMode.ReadOnly, image.PixelFormat ); + + try + { + // gather statistics + ProcessImage( new UnmanagedImage( imageData ) ); + } + finally + { + // unlock image + image.UnlockBits( imageData ); + } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Source image data. + /// + /// Unsupported pixel format of the source image. + /// + public VerticalIntensityStatistics( BitmapData imageData ) + : this( new UnmanagedImage( imageData ) ) + { + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Source unmanaged image. + /// + /// Unsupported pixel format of the source image. + /// + public VerticalIntensityStatistics( UnmanagedImage image ) + { + // check image format + if ( + ( image.PixelFormat != PixelFormat.Format8bppIndexed ) && + ( image.PixelFormat != PixelFormat.Format16bppGrayScale ) && + ( image.PixelFormat != PixelFormat.Format24bppRgb ) && + ( image.PixelFormat != PixelFormat.Format32bppRgb ) && + ( image.PixelFormat != PixelFormat.Format32bppArgb ) && + ( image.PixelFormat != PixelFormat.Format48bppRgb ) && + ( image.PixelFormat != PixelFormat.Format64bppArgb ) + ) + { + throw new UnsupportedImageFormatException( "Unsupported pixel format of the source image." ); + } + + // gather statistics + ProcessImage( image ); + } + + /// + /// Gather vertical intensity statistics for specified image. + /// + /// + /// Source image. + /// + private void ProcessImage( UnmanagedImage image ) + { + PixelFormat pixelFormat = image.PixelFormat; + // get image dimension + int width = image.Width; + int height = image.Height; + + red = green = blue = gray = null; + + // do the job + unsafe + { + // check pixel format + if ( pixelFormat == PixelFormat.Format8bppIndexed ) + { + // 8 bpp grayscale image + byte* p = (byte*) image.ImageData.ToPointer( ); + int offset = image.Stride - width; + + // histogram array + int[] g = new int[height]; + + // for each pixel + for ( int y = 0; y < height; y++ ) + { + int lineSum = 0; + + // for each pixel + for ( int x = 0; x < width; x++, p++ ) + { + lineSum += *p; + } + g[y] = lineSum; + + p += offset; + } + + // create historgram for gray level + gray = new Histogram( g ); + } + else if ( pixelFormat == PixelFormat.Format16bppGrayScale ) + { + // 16 bpp grayscale image + byte* basePtr = (byte*) image.ImageData.ToPointer( ); + int stride = image.Stride; + + // histogram array + int[] g = new int[height]; + + // for each pixel + for ( int y = 0; y < height; y++ ) + { + ushort* p = (ushort*) ( basePtr + stride * y ); + int lineSum = 0; + + // for each pixel + for ( int x = 0; x < width; x++, p++ ) + { + lineSum += *p; + } + g[y] = lineSum; + } + + // create historgram for gray level + gray = new Histogram( g ); + } + else if ( + ( pixelFormat == PixelFormat.Format24bppRgb ) || + ( pixelFormat == PixelFormat.Format32bppRgb ) || + ( pixelFormat == PixelFormat.Format32bppArgb ) ) + { + // 24/32 bpp color image + byte* p = (byte*) image.ImageData.ToPointer( ); + int pixelSize = ( pixelFormat == PixelFormat.Format24bppRgb ) ? 3 : 4; + int offset = image.Stride - width * pixelSize; + + // histogram arrays + int[] r = new int[height]; + int[] g = new int[height]; + int[] b = new int[height]; + + // for each line + for ( int y = 0; y < height; y++ ) + { + int lineRSum = 0; + int lineGSum = 0; + int lineBSum = 0; + + // for each pixel + for ( int x = 0; x < width; x++, p += pixelSize ) + { + lineRSum += p[RGB.R]; + lineGSum += p[RGB.G]; + lineBSum += p[RGB.B]; + } + r[y] = lineRSum; + g[y] = lineGSum; + b[y] = lineBSum; + + p += offset; + } + + // create histograms + red = new Histogram( r ); + green = new Histogram( g ); + blue = new Histogram( b ); + } + else if ( + ( pixelFormat == PixelFormat.Format48bppRgb ) || + ( pixelFormat == PixelFormat.Format64bppArgb ) ) + { + // 48/64 bpp color image + byte* basePtr = (byte*) image.ImageData.ToPointer( ); + int stride = image.Stride; + int pixelSize = ( pixelFormat == PixelFormat.Format48bppRgb ) ? 3 : 4; + + // histogram arrays + int[] r = new int[height]; + int[] g = new int[height]; + int[] b = new int[height]; + + // for each line + for ( int y = 0; y < height; y++ ) + { + ushort* p = (ushort*) ( basePtr + stride * y ); + + int lineRSum = 0; + int lineGSum = 0; + int lineBSum = 0; + + // for each pixel + for ( int x = 0; x < width; x++, p += pixelSize ) + { + lineRSum += p[RGB.R]; + lineGSum += p[RGB.G]; + lineBSum += p[RGB.B]; + } + r[y] = lineRSum; + g[y] = lineGSum; + b[y] = lineBSum; + } + + // create histograms + red = new Histogram( r ); + green = new Histogram( g ); + blue = new Histogram( b ); + } + } + } + } +} diff --git a/Sources/MachineLearning/AForge.MachineLearning.snk b/Sources/MachineLearning/AForge.MachineLearning.snk new file mode 100644 index 00000000..7d8522cd Binary files /dev/null and b/Sources/MachineLearning/AForge.MachineLearning.snk differ diff --git a/Sources/MachineLearning/Exploration Policy/BoltzmannExploration.cs b/Sources/MachineLearning/Exploration Policy/BoltzmannExploration.cs new file mode 100644 index 00000000..47970ad7 --- /dev/null +++ b/Sources/MachineLearning/Exploration Policy/BoltzmannExploration.cs @@ -0,0 +1,123 @@ +// AForge Machine Learning Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2007-2008 +// andrew.kirillov@gmail.com +// + +namespace AForge.MachineLearning +{ + using System; + + /// + /// Boltzmann distribution exploration policy. + /// + /// + /// The class implements exploration policy base on Boltzmann distribution. + /// Acording to the policy, action a at state s is selected with the next probability: + /// + /// exp( Q( s, a ) / t ) + /// p( s, a ) = ----------------------------- + /// SUM( exp( Q( s, b ) / t ) ) + /// b + /// + /// where Q(s, a) is action's a estimation (usefulness) at state s and + /// t is . + /// + /// + /// + /// + /// + /// + public class BoltzmannExploration : IExplorationPolicy + { + // termperature parameter of Boltzmann distribution + private double temperature; + + // random number generator + private Random rand = new Random( ); + + /// + /// Termperature parameter of Boltzmann distribution, >0. + /// + /// + /// The property sets the balance between exploration and greedy actions. + /// If temperature is low, then the policy tends to be more greedy. + /// + public double Temperature + { + get { return temperature; } + set { temperature = Math.Max( 0, value ); } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Termperature parameter of Boltzmann distribution. + /// + public BoltzmannExploration( double temperature ) + { + Temperature = temperature; + } + + /// + /// Choose an action. + /// + /// + /// Action estimates. + /// + /// Returns selected action. + /// + /// The method chooses an action depending on the provided estimates. The + /// estimates can be any sort of estimate, which values usefulness of the action + /// (expected summary reward, discounted reward, etc). + /// + public int ChooseAction( double[] actionEstimates ) + { + // actions count + int actionsCount = actionEstimates.Length; + // action probabilities + double[] actionProbabilities = new double[actionsCount]; + // actions sum + double sum = 0, probabilitiesSum = 0; + + for ( int i = 0; i < actionsCount; i++ ) + { + double actionProbability = Math.Exp( actionEstimates[i] / temperature ); + + actionProbabilities[i] = actionProbability; + probabilitiesSum += actionProbability; + } + + if ( ( double.IsInfinity( probabilitiesSum ) ) || ( probabilitiesSum == 0 ) ) + { + // do greedy selection in the case of infinity or zero + double maxReward = actionEstimates[0]; + int greedyAction = 0; + + for ( int i = 1; i < actionsCount; i++ ) + { + if ( actionEstimates[i] > maxReward ) + { + maxReward = actionEstimates[i]; + greedyAction = i; + } + } + return greedyAction; + } + + // get random number, which determines which action to choose + double actionRandomNumber = rand.NextDouble( ); + + for ( int i = 0; i < actionsCount; i++ ) + { + sum += actionProbabilities[i] / probabilitiesSum; + if ( actionRandomNumber <= sum ) + return i; + } + + return actionsCount - 1; + } + } +} diff --git a/Sources/MachineLearning/Exploration Policy/EpsilonGreedyExploration.cs b/Sources/MachineLearning/Exploration Policy/EpsilonGreedyExploration.cs new file mode 100644 index 00000000..4982e50c --- /dev/null +++ b/Sources/MachineLearning/Exploration Policy/EpsilonGreedyExploration.cs @@ -0,0 +1,107 @@ +// AForge Machine Learning Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2007-2008 +// andrew.kirillov@gmail.com +// + +namespace AForge.MachineLearning +{ + using System; + + /// + /// Epsilon greedy exploration policy. + /// + /// + /// The class implements epsilon greedy exploration policy. Acording to the policy, + /// the best action is chosen with probability 1-epsilon. Otherwise, + /// with probability epsilon, any other action, except the best one, is + /// chosen randomly. + /// + /// According to the policy, the epsilon value is known also as exploration rate. + /// + /// + /// + /// + /// + /// + public class EpsilonGreedyExploration : IExplorationPolicy + { + // exploration rate + private double epsilon; + + // random number generator + private Random rand = new Random( ); + + /// + /// Epsilon value (exploration rate), [0, 1]. + /// + /// + /// The value determines the amount of exploration driven by the policy. + /// If the value is high, then the policy drives more to exploration - choosing random + /// action, which excludes the best one. If the value is low, then the policy is more + /// greedy - choosing the beat so far action. + /// + /// + public double Epsilon + { + get { return epsilon; } + set { epsilon = Math.Max( 0.0, Math.Min( 1.0, value ) ); } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Epsilon value (exploration rate). + /// + public EpsilonGreedyExploration( double epsilon ) + { + Epsilon = epsilon; + } + + /// + /// Choose an action. + /// + /// + /// Action estimates. + /// + /// Returns selected action. + /// + /// The method chooses an action depending on the provided estimates. The + /// estimates can be any sort of estimate, which values usefulness of the action + /// (expected summary reward, discounted reward, etc). + /// + public int ChooseAction( double[] actionEstimates ) + { + // actions count + int actionsCount = actionEstimates.Length; + + // find the best action (greedy) + double maxReward = actionEstimates[0]; + int greedyAction = 0; + + for ( int i = 1; i < actionsCount; i++ ) + { + if ( actionEstimates[i] > maxReward ) + { + maxReward = actionEstimates[i]; + greedyAction = i; + } + } + + // try to do exploration + if ( rand.NextDouble( ) < epsilon ) + { + int randomAction = rand.Next( actionsCount - 1 ); + + if ( randomAction >= greedyAction ) + randomAction++; + + return randomAction; + } + + return greedyAction; + } + } +} diff --git a/Sources/MachineLearning/Exploration Policy/IExplorationPolicy.cs b/Sources/MachineLearning/Exploration Policy/IExplorationPolicy.cs new file mode 100644 index 00000000..7e1903b6 --- /dev/null +++ b/Sources/MachineLearning/Exploration Policy/IExplorationPolicy.cs @@ -0,0 +1,35 @@ +// AForge Machine Learning Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2007-2008 +// andrew.kirillov@gmail.com +// + +namespace AForge.MachineLearning +{ + using System; + + /// + /// Exploration policy interface. + /// + /// + /// The interface describes exploration policies, which are used in Reinforcement + /// Learning to explore state space. + /// + public interface IExplorationPolicy + { + /// + /// Choose an action. + /// + /// + /// Action estimates. + /// + /// Returns selected action. + /// + /// The method chooses an action depending on the provided estimates. The + /// estimates can be any sort of estimate, which values usefulness of the action + /// (expected summary reward, discounted reward, etc). + /// + int ChooseAction( double[] actionEstimates ); + } +} diff --git a/Sources/MachineLearning/Exploration Policy/RouletteWheelExploration.cs b/Sources/MachineLearning/Exploration Policy/RouletteWheelExploration.cs new file mode 100644 index 00000000..026ff7ec --- /dev/null +++ b/Sources/MachineLearning/Exploration Policy/RouletteWheelExploration.cs @@ -0,0 +1,82 @@ +// AForge Machine Learning Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2007-2008 +// andrew.kirillov@gmail.com +// + +namespace AForge.MachineLearning +{ + using System; + + /// + /// Roulette wheel exploration policy. + /// + /// + /// The class implements roulette whell exploration policy. Acording to the policy, + /// action a at state s is selected with the next probability: + /// + /// Q( s, a ) + /// p( s, a ) = ------------------ + /// SUM( Q( s, b ) ) + /// b + /// + /// where Q(s, a) is action's a estimation (usefulness) at state s. + /// + /// The exploration policy may be applied only in cases, when action estimates (usefulness) + /// are represented with positive value greater then 0. + /// + /// + /// + /// + /// + /// + public class RouletteWheelExploration : IExplorationPolicy + { + // random number generator + private Random rand = new Random( ); + + /// + /// Initializes a new instance of the class. + /// + /// + public RouletteWheelExploration( ) { } + + /// + /// Choose an action. + /// + /// + /// Action estimates. + /// + /// Returns selected action. + /// + /// The method chooses an action depending on the provided estimates. The + /// estimates can be any sort of estimate, which values usefulness of the action + /// (expected summary reward, discounted reward, etc). + /// + public int ChooseAction( double[] actionEstimates ) + { + // actions count + int actionsCount = actionEstimates.Length; + // actions sum + double sum = 0, estimateSum = 0; + + for ( int i = 0; i < actionsCount; i++ ) + { + estimateSum += actionEstimates[i]; + } + + // get random number, which determines which action to choose + double actionRandomNumber = rand.NextDouble( ); + + for ( int i = 0; i < actionsCount; i++ ) + { + sum += actionEstimates[i] / estimateSum; + if ( actionRandomNumber <= sum ) + return i; + } + + return actionsCount - 1; + } + } +} diff --git a/Sources/MachineLearning/Exploration Policy/TabuSearchExploration.cs b/Sources/MachineLearning/Exploration Policy/TabuSearchExploration.cs new file mode 100644 index 00000000..9984fb7b --- /dev/null +++ b/Sources/MachineLearning/Exploration Policy/TabuSearchExploration.cs @@ -0,0 +1,134 @@ +// AForge Machine Learning Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2007-2008 +// andrew.kirillov@gmail.com +// + +namespace AForge.MachineLearning +{ + using System; + + /// + /// Tabu search exploration policy. + /// + /// + /// The class implements simple tabu search exploration policy, + /// allowing to set certain actions as tabu for a specified amount of + /// iterations. The actual exploration and choosing from non-tabu actions + /// is done by base exploration policy. + /// + /// + /// + /// + /// + public class TabuSearchExploration : IExplorationPolicy + { + // total actions count + private int actions; + // list of tabu actions + private int[] tabuActions = null; + // base exploration policy + private IExplorationPolicy basePolicy; + + /// + /// Base exploration policy. + /// + /// + /// Base exploration policy is the policy, which is used + /// to choose from non-tabu actions. + /// + public IExplorationPolicy BasePolicy + { + get { return basePolicy; } + set { basePolicy = value; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Total actions count. + /// Base exploration policy. + /// + public TabuSearchExploration( int actions, IExplorationPolicy basePolicy ) + { + this.actions = actions; + this.basePolicy = basePolicy; + + // create tabu list + tabuActions = new int[actions]; + } + + /// + /// Choose an action. + /// + /// + /// Action estimates. + /// + /// Returns selected action. + /// + /// The method chooses an action depending on the provided estimates. The + /// estimates can be any sort of estimate, which values usefulness of the action + /// (expected summary reward, discounted reward, etc). The action is choosed from + /// non-tabu actions only. + /// + public int ChooseAction( double[] actionEstimates ) + { + // get amount of non-tabu actions + int nonTabuActions = actions; + for ( int i = 0; i < actions; i++ ) + { + if ( tabuActions[i] != 0 ) + { + nonTabuActions--; + } + } + + // allowed actions + double[] allowedActionEstimates = new double[nonTabuActions]; + int[] allowedActionMap = new int[nonTabuActions]; + + for ( int i = 0, j = 0; i < actions; i++ ) + { + if ( tabuActions[i] == 0 ) + { + // allowed action + allowedActionEstimates[j] = actionEstimates[i]; + allowedActionMap[j] = i; + j++; + } + else + { + // decrease tabu time of tabu action + tabuActions[i]--; + } + } + + return allowedActionMap[basePolicy.ChooseAction( allowedActionEstimates )]; ; + } + + /// + /// Reset tabu list. + /// + /// + /// Clears tabu list making all actions allowed. + /// + public void ResetTabuList( ) + { + Array.Clear( tabuActions, 0, actions ); + } + + /// + /// Set tabu action. + /// + /// + /// Action to set tabu for. + /// Tabu time in iterations. + /// + public void SetTabuAction( int action, int tabuTime ) + { + tabuActions[action] = tabuTime; + } + } +} diff --git a/Sources/MachineLearning/MachineLearning (mono).csproj b/Sources/MachineLearning/MachineLearning (mono).csproj new file mode 100644 index 00000000..914b1bf8 --- /dev/null +++ b/Sources/MachineLearning/MachineLearning (mono).csproj @@ -0,0 +1,52 @@ + + + + Debug + AnyCPU + 9.0.21022 + 2.0 + {F5A910B0-8AE9-4067-A0BB-05A6404A17B7} + Library + AForge.MachineLearning + v2.0 + AForge.MachineLearning + + + true + full + false + bin\Debug + DEBUG,MONO + prompt + 3 + false + + + none + false + ..\..\Release\Mono + prompt + 3 + false + true + AForge.MachineLearning.snk + MONO + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Sources/MachineLearning/MachineLearning (mono).sln b/Sources/MachineLearning/MachineLearning (mono).sln new file mode 100644 index 00000000..83df8bda --- /dev/null +++ b/Sources/MachineLearning/MachineLearning (mono).sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MachineLearning (mono)", "MachineLearning (mono).csproj", "{F5A910B0-8AE9-4067-A0BB-05A6404A17B7}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {F5A910B0-8AE9-4067-A0BB-05A6404A17B7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F5A910B0-8AE9-4067-A0BB-05A6404A17B7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F5A910B0-8AE9-4067-A0BB-05A6404A17B7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F5A910B0-8AE9-4067-A0BB-05A6404A17B7}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(MonoDevelopProperties) = preSolution + StartupItem = MachineLearning (mono).csproj + EndGlobalSection +EndGlobal diff --git a/Sources/MachineLearning/MachineLearning.csproj b/Sources/MachineLearning/MachineLearning.csproj new file mode 100644 index 00000000..5dd52f19 --- /dev/null +++ b/Sources/MachineLearning/MachineLearning.csproj @@ -0,0 +1,104 @@ + + + + Debug + AnyCPU + 9.0.21022 + 2.0 + {D42A814D-E178-48D0-9125-ED20151B2E45} + Library + Properties + AForge.MachineLearning + AForge.MachineLearning + v2.0 + 512 + true + AForge.MachineLearning.snk + + + 3.5 + + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + true + full + false + ..\..\Release\ + DEBUG;TRACE + prompt + 4 + AForge.MachineLearning.xml + + + pdbonly + true + ..\..\Release\ + TRACE + prompt + 4 + AForge.MachineLearning.xml + + + + + + + + + + + + + + + + + + + + + False + Microsoft .NET Framework 4 %28x86 and x64%29 + true + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 3.1 + true + + + + + \ No newline at end of file diff --git a/Sources/MachineLearning/MachineLearning.sln b/Sources/MachineLearning/MachineLearning.sln new file mode 100644 index 00000000..b6f024fd --- /dev/null +++ b/Sources/MachineLearning/MachineLearning.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual C# Express 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MachineLearning", "MachineLearning.csproj", "{D42A814D-E178-48D0-9125-ED20151B2E45}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {D42A814D-E178-48D0-9125-ED20151B2E45}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D42A814D-E178-48D0-9125-ED20151B2E45}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D42A814D-E178-48D0-9125-ED20151B2E45}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D42A814D-E178-48D0-9125-ED20151B2E45}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Sources/MachineLearning/Properties/AssemblyInfo.cs b/Sources/MachineLearning/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..517ff2b5 --- /dev/null +++ b/Sources/MachineLearning/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle( "AForge.MachineLearning" )] +[assembly: AssemblyDescription( "" )] +[assembly: AssemblyConfiguration( "" )] +[assembly: AssemblyCompany( "AForge" )] +[assembly: AssemblyProduct( "AForge.NET" )] +[assembly: AssemblyCopyright( "AForge © 2012" )] +[assembly: AssemblyTrademark( "" )] +[assembly: AssemblyCulture( "" )] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible( false )] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid( "c34a76aa-6d54-47c5-9a64-de9a13b611f8" )] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion( "2.2.4.0" )] +[assembly: AssemblyFileVersion( "2.2.4.0" )] diff --git a/Sources/MachineLearning/QLearning.cs b/Sources/MachineLearning/QLearning.cs new file mode 100644 index 00000000..8d42f130 --- /dev/null +++ b/Sources/MachineLearning/QLearning.cs @@ -0,0 +1,199 @@ +// AForge Machine Learning Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2007-2008 +// andrew.kirillov@gmail.com +// + +namespace AForge.MachineLearning +{ + using System; + + /// + /// QLearning learning algorithm. + /// + /// + /// The class provides implementation of Q-Learning algorithm, known as + /// off-policy Temporal Difference control. + /// + /// + /// + public class QLearning + { + // amount of possible states + private int states; + // amount of possible actions + private int actions; + // q-values + private double[][] qvalues; + // exploration policy + private IExplorationPolicy explorationPolicy; + + // discount factor + private double discountFactor = 0.95; + // learning rate + private double learningRate = 0.25; + + /// + /// Amount of possible states. + /// + /// + public int StatesCount + { + get { return states; } + } + + /// + /// Amount of possible actions. + /// + /// + public int ActionsCount + { + get { return actions; } + } + + /// + /// Exploration policy. + /// + /// + /// Policy, which is used to select actions. + /// + public IExplorationPolicy ExplorationPolicy + { + get { return explorationPolicy; } + set { explorationPolicy = value; } + } + + /// + /// Learning rate, [0, 1]. + /// + /// + /// The value determines the amount of updates Q-function receives + /// during learning. The greater the value, the more updates the function receives. + /// The lower the value, the less updates it receives. + /// + public double LearningRate + { + get { return learningRate; } + set { learningRate = Math.Max( 0.0, Math.Min( 1.0, value ) ); } + } + + /// + /// Discount factor, [0, 1]. + /// + /// + /// Discount factor for the expected summary reward. The value serves as + /// multiplier for the expected reward. So if the value is set to 1, + /// then the expected summary reward is not discounted. If the value is getting + /// smaller, then smaller amount of the expected reward is used for actions' + /// estimates update. + /// + public double DiscountFactor + { + get { return discountFactor; } + set { discountFactor = Math.Max( 0.0, Math.Min( 1.0, value ) ); } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Amount of possible states. + /// Amount of possible actions. + /// Exploration policy. + /// + /// Action estimates are randomized in the case of this constructor + /// is used. + /// + public QLearning( int states, int actions, IExplorationPolicy explorationPolicy ) : + this( states, actions, explorationPolicy, true ) + { + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Amount of possible states. + /// Amount of possible actions. + /// Exploration policy. + /// Randomize action estimates or not. + /// + /// The randomize parameter specifies if initial action estimates should be randomized + /// with small values or not. Randomization of action values may be useful, when greedy exploration + /// policies are used. In this case randomization ensures that actions of the same type are not chosen always. + /// + public QLearning( int states, int actions, IExplorationPolicy explorationPolicy, bool randomize ) + { + this.states = states; + this.actions = actions; + this.explorationPolicy = explorationPolicy; + + // create Q-array + qvalues = new double[states][]; + for ( int i = 0; i < states; i++ ) + { + qvalues[i] = new double[actions]; + } + + // do randomization + if ( randomize ) + { + Random rand = new Random( ); + + for ( int i = 0; i < states; i++ ) + { + for ( int j = 0; j < actions; j++ ) + { + qvalues[i][j] = rand.NextDouble( ) / 10; + } + } + } + } + + /// + /// Get next action from the specified state. + /// + /// + /// Current state to get an action for. + /// + /// Returns the action for the state. + /// + /// The method returns an action according to current + /// exploration policy. + /// + public int GetAction( int state ) + { + return explorationPolicy.ChooseAction( qvalues[state] ); + } + + /// + /// Update Q-function's value for the previous state-action pair. + /// + /// + /// Previous state. + /// Action, which leads from previous to the next state. + /// Reward value, received by taking specified action from previous state. + /// Next state. + /// + public void UpdateState( int previousState, int action, double reward, int nextState ) + { + // next state's action estimations + double[] nextActionEstimations = qvalues[nextState]; + // find maximum expected summary reward from the next state + double maxNextExpectedReward = nextActionEstimations[0]; + + for ( int i = 1; i < actions; i++ ) + { + if ( nextActionEstimations[i] > maxNextExpectedReward ) + maxNextExpectedReward = nextActionEstimations[i]; + } + + // previous state's action estimations + double[] previousActionEstimations = qvalues[previousState]; + // update expexted summary reward of the previous state + previousActionEstimations[action] *= ( 1.0 - learningRate ); + previousActionEstimations[action] += ( learningRate * ( reward + discountFactor * maxNextExpectedReward ) ); + } + } +} \ No newline at end of file diff --git a/Sources/MachineLearning/Sarsa.cs b/Sources/MachineLearning/Sarsa.cs new file mode 100644 index 00000000..0a3bd1b0 --- /dev/null +++ b/Sources/MachineLearning/Sarsa.cs @@ -0,0 +1,214 @@ +// AForge Machine Learning Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2007-2008 +// andrew.kirillov@gmail.com +// + +namespace AForge.MachineLearning +{ + using System; + + /// + /// Sarsa learning algorithm. + /// + /// + /// The class provides implementation of Sarse algorithm, known as + /// on-policy Temporal Difference control. + /// + /// + /// + public class Sarsa + { + // amount of possible states + private int states; + // amount of possible actions + private int actions; + // q-values + private double[][] qvalues; + // exploration policy + private IExplorationPolicy explorationPolicy; + + // discount factor + private double discountFactor = 0.95; + // learning rate + private double learningRate = 0.25; + + /// + /// Amount of possible states. + /// + /// + public int StatesCount + { + get { return states; } + } + + /// + /// Amount of possible actions. + /// + /// + public int ActionsCount + { + get { return actions; } + } + + /// + /// Exploration policy. + /// + /// + /// Policy, which is used to select actions. + /// + public IExplorationPolicy ExplorationPolicy + { + get { return explorationPolicy; } + set { explorationPolicy = value; } + } + + /// + /// Learning rate, [0, 1]. + /// + /// + /// The value determines the amount of updates Q-function receives + /// during learning. The greater the value, the more updates the function receives. + /// The lower the value, the less updates it receives. + /// + public double LearningRate + { + get { return learningRate; } + set { learningRate = Math.Max( 0.0, Math.Min( 1.0, value ) ); } + } + + /// + /// Discount factor, [0, 1]. + /// + /// + /// Discount factor for the expected summary reward. The value serves as + /// multiplier for the expected reward. So if the value is set to 1, + /// then the expected summary reward is not discounted. If the value is getting + /// smaller, then smaller amount of the expected reward is used for actions' + /// estimates update. + /// + public double DiscountFactor + { + get { return discountFactor; } + set { discountFactor = Math.Max( 0.0, Math.Min( 1.0, value ) ); } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Amount of possible states. + /// Amount of possible actions. + /// Exploration policy. + /// + /// Action estimates are randomized in the case of this constructor + /// is used. + /// + public Sarsa( int states, int actions, IExplorationPolicy explorationPolicy ) : + this( states, actions, explorationPolicy, true ) + { + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Amount of possible states. + /// Amount of possible actions. + /// Exploration policy. + /// Randomize action estimates or not. + /// + /// The randomize parameter specifies if initial action estimates should be randomized + /// with small values or not. Randomization of action values may be useful, when greedy exploration + /// policies are used. In this case randomization ensures that actions of the same type are not chosen always. + /// + public Sarsa( int states, int actions, IExplorationPolicy explorationPolicy, bool randomize ) + { + this.states = states; + this.actions = actions; + this.explorationPolicy = explorationPolicy; + + // create Q-array + qvalues = new double[states][]; + for ( int i = 0; i < states; i++ ) + { + qvalues[i] = new double[actions]; + } + + // do randomization + if ( randomize ) + { + Random rand = new Random( ); + + for ( int i = 0; i < states; i++ ) + { + for ( int j = 0; j < actions; j++ ) + { + qvalues[i][j] = rand.NextDouble( ) / 10; + } + } + } + } + + /// + /// Get next action from the specified state. + /// + /// + /// Current state to get an action for. + /// + /// Returns the action for the state. + /// + /// The method returns an action according to current + /// exploration policy. + /// + public int GetAction( int state ) + { + return explorationPolicy.ChooseAction( qvalues[state] ); + } + + /// + /// Update Q-function's value for the previous state-action pair. + /// + /// + /// Curren state. + /// Action, which lead from previous to the next state. + /// Reward value, received by taking specified action from previous state. + /// Next state. + /// Next action. + /// + /// Updates Q-function's value for the previous state-action pair in + /// the case if the next state is non terminal. + /// + public void UpdateState( int previousState, int previousAction, double reward, int nextState, int nextAction ) + { + // previous state's action estimations + double[] previousActionEstimations = qvalues[previousState]; + // update expexted summary reward of the previous state + previousActionEstimations[previousAction] *= ( 1.0 - learningRate ); + previousActionEstimations[previousAction] += ( learningRate * ( reward + discountFactor * + qvalues[nextState][nextAction] ) ); + + } + + /// + /// Update Q-function's value for the previous state-action pair. + /// + /// + /// Curren state. + /// Action, which lead from previous to the next state. + /// Reward value, received by taking specified action from previous state. + /// + /// Updates Q-function's value for the previous state-action pair in + /// the case if the next state is terminal. + /// + public void UpdateState( int previousState, int previousAction, double reward ) + { + // previous state's action estimations + double[] previousActionEstimations = qvalues[previousState]; + // update expexted summary reward of the previous state + previousActionEstimations[previousAction] *= ( 1.0 - learningRate ); + previousActionEstimations[previousAction] += ( learningRate * reward ); + } + } +} diff --git a/Sources/Math/AForge.Math.snk b/Sources/Math/AForge.Math.snk new file mode 100644 index 00000000..e57acea5 Binary files /dev/null and b/Sources/Math/AForge.Math.snk differ diff --git a/Sources/Math/Complex.cs b/Sources/Math/Complex.cs new file mode 100644 index 00000000..3efa37e0 --- /dev/null +++ b/Sources/Math/Complex.cs @@ -0,0 +1,1084 @@ +// AForge Math Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2005-2009 +// andrew.kirillov@aforgenet.com +// +// Copyright © Israel Lot, 2008 +// israel.lot@gmail.com +// + +namespace AForge.Math +{ + using System; + using System.Text.RegularExpressions; + using System.Runtime.Serialization; + + /// + /// Complex number wrapper class. + /// + /// + /// The class encapsulates complex number and provides + /// set of different operators to manipulate it, lake adding, subtractio, + /// multiplication, etc. + /// + /// Sample usage: + /// + /// // define two complex numbers + /// Complex c1 = new Complex( 3, 9 ); + /// Complex c2 = new Complex( 8, 3 ); + /// // sum + /// Complex s1 = Complex.Add( c1, c2 ); + /// Complex s2 = c1 + c2; + /// Complex s3 = c1 + 5; + /// // difference + /// Complex d1 = Complex.Subtract( c1, c2 ); + /// Complex d2 = c1 - c2; + /// Complex d3 = c1 - 2; + /// + /// + /// + public struct Complex : ICloneable, ISerializable + { + /// + /// Real part of the complex number. + /// + public double Re; + + /// + /// Imaginary part of the complex number. + /// + public double Im; + + /// + /// A double-precision complex number that represents zero. + /// + public static readonly Complex Zero = new Complex( 0, 0 ); + + /// + /// A double-precision complex number that represents one. + /// + public static readonly Complex One = new Complex( 1, 0 ); + + /// + /// A double-precision complex number that represents the squere root of (-1). + /// + public static readonly Complex I = new Complex( 0, 1 ); + + /// + /// Magnitude value of the complex number. + /// + /// + /// Magnitude of the complex number, which equals to Sqrt( Re * Re + Im * Im ). + /// + public double Magnitude + { + get { return System.Math.Sqrt( Re * Re + Im * Im ); } + } + + /// + /// Phase value of the complex number. + /// + /// + /// Phase of the complex number, which equals to Atan( Im / Re ). + /// + public double Phase + { + get { return System.Math.Atan2( Im, Re ); } + } + + /// + /// Squared magnitude value of the complex number. + /// + public double SquaredMagnitude + { + get { return ( Re * Re + Im * Im ); } + } + + + /// + /// Initializes a new instance of the class. + /// + /// + /// Real part. + /// Imaginary part. + /// + public Complex( double re, double im ) + { + this.Re = re; + this.Im = im; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Source complex number. + /// + public Complex( Complex c ) + { + this.Re = c.Re; + this.Im = c.Im; + } + + /// + /// Adds two complex numbers. + /// + /// + /// A instance. + /// A instance. + /// + /// Returns new instance containing the sum of specified + /// complex numbers. + /// + public static Complex Add( Complex a, Complex b ) + { + return new Complex( a.Re + b.Re, a.Im + b.Im ); + } + + /// + /// Adds scalar value to a complex number. + /// + /// + /// A instance. + /// A scalar value. + /// + /// Returns new instance containing the sum of specified + /// complex number and scalar value. + /// + public static Complex Add( Complex a, double s ) + { + return new Complex( a.Re + s, a.Im ); + } + + /// + /// Adds two complex numbers and puts the result into the third complex number. + /// + /// + /// A instance. + /// A instance. + /// A instance to hold the result. + /// + public static void Add( Complex a, Complex b, ref Complex result ) + { + result.Re = a.Re + b.Re; + result.Im = a.Im + b.Im; + } + + /// + /// Adds scalar value to a complex number and puts the result into another complex number. + /// + /// + /// A instance. + /// A scalar value. + /// A instance to hold the result. + /// + public static void Add( Complex a, double s, ref Complex result ) + { + result.Re = a.Re + s; + result.Im = a.Im; + } + + /// + /// Subtracts one complex number from another. + /// + /// + /// A instance to subtract from. + /// A instance to be subtracted. + /// + /// Returns new instance containing the subtraction result (a - b). + /// + public static Complex Subtract( Complex a, Complex b ) + { + return new Complex( a.Re - b.Re, a.Im - b.Im ); + } + + /// + /// Subtracts a scalar from a complex number. + /// + /// + /// A instance to subtract from. + /// A scalar value to be subtracted. + /// + /// Returns new instance containing the subtraction result (a - s). + /// + public static Complex Subtract( Complex a, double s ) + { + return new Complex( a.Re - s, a.Im ); + } + + /// + /// Subtracts a complex number from a scalar value. + /// + /// + /// A scalar value to subtract from. + /// A instance to be subtracted. + /// + /// Returns new instance containing the subtraction result (s - a). + /// + public static Complex Subtract( double s, Complex a ) + { + return new Complex( s - a.Re, a.Im ); + } + + /// + /// Subtracts one complex number from another and puts the result in the third complex number. + /// + /// + /// A instance to subtract from. + /// A instance to be subtracted. + /// A instance to hold the result. + /// + public static void Subtract( Complex a, Complex b, ref Complex result ) + { + result.Re = a.Re - b.Re; + result.Im = a.Im - b.Im; + } + + /// + /// Subtracts a scalar value from a complex number and puts the result into another complex number. + /// + /// + /// A instance to subtract from. + /// A scalar value to be subtracted. + /// A instance to hold the result. + /// + public static void Subtract( Complex a, double s, ref Complex result ) + { + result.Re = a.Re - s; + result.Im = a.Im; + } + + /// + /// Subtracts a complex number from a scalar value and puts the result into another complex number. + /// + /// + /// A scalar value to subtract from. + /// A instance to be subtracted. + /// A instance to hold the result. + /// + public static void Subtract( double s, Complex a, ref Complex result ) + { + result.Re = s - a.Re; + result.Im = a.Im; + } + + /// + /// Multiplies two complex numbers. + /// + /// + /// A instance. + /// A instance. + /// + /// Returns new instance containing the result of multiplication. + /// + public static Complex Multiply( Complex a, Complex b ) + { + // (x + yi)(u + vi) = (xu – yv) + (xv + yu)i. + double aRe = a.Re, aIm = a.Im; + double bRe = b.Re, bIm = b.Im; + + return new Complex( aRe * bRe - aIm * bIm, aRe * bIm + aIm * bRe ); + } + + /// + /// Multiplies a complex number by a scalar value. + /// + /// + /// A instance. + /// A scalar value. + /// + /// Returns new instance containing the result of multiplication. + /// + public static Complex Multiply( Complex a, double s ) + { + return new Complex( a.Re * s, a.Im * s ); + } + + /// + /// Multiplies two complex numbers and puts the result in a third complex number. + /// + /// + /// A instance. + /// A instance. + /// A instance to hold the result. + /// + public static void Multiply( Complex a, Complex b, ref Complex result ) + { + // (x + yi)(u + vi) = (xu – yv) + (xv + yu)i. + double aRe = a.Re, aIm = a.Im; + double bRe = b.Re, bIm = b.Im; + + result.Re = aRe * bRe - aIm * bIm; + result.Im = aRe * bIm + aIm * bRe; + } + + /// + /// Multiplies a complex number by a scalar value and puts the result into another complex number. + /// + /// + /// A instance. + /// A scalar value. + /// A instance to hold the result. + /// + public static void Multiply( Complex a, double s, ref Complex result ) + { + result.Re = a.Re * s; + result.Im = a.Im * s; + } + + /// + /// Divides one complex number by another complex number. + /// + /// + /// A instance. + /// A instance. + /// + /// Returns new instance containing the result. + /// + /// Can not divide by zero. + /// + public static Complex Divide( Complex a, Complex b ) + { + double aRe = a.Re, aIm = a.Im; + double bRe = b.Re, bIm = b.Im; + double modulusSquared = bRe * bRe + bIm * bIm; + + if ( modulusSquared == 0 ) + { + throw new DivideByZeroException( "Can not divide by zero." ); + } + + double invModulusSquared = 1 / modulusSquared; + + return new Complex( + ( aRe * bRe + aIm * bIm ) * invModulusSquared, + ( aIm * bRe - aRe * bIm ) * invModulusSquared ); + } + + /// + /// Divides a complex number by a scalar value. + /// + /// + /// A instance. + /// A scalar value. + /// + /// Returns new instance containing the result. + /// + /// Can not divide by zero. + /// + public static Complex Divide( Complex a, double s ) + { + if ( s == 0 ) + { + throw new DivideByZeroException( "Can not divide by zero." ); + } + + return new Complex( a.Re / s, a.Im / s ); + } + + /// + /// Divides a scalar value by a complex number. + /// + /// + /// A scalar value. + /// A instance. + /// + /// Returns new instance containing the result. + /// + /// Can not divide by zero. + /// + public static Complex Divide( double s, Complex a ) + { + if ( ( a.Re == 0 ) || ( a.Im == 0 ) ) + { + throw new DivideByZeroException( "Can not divide by zero." ); + } + return new Complex( s / a.Re, s / a.Im ); + } + + /// + /// Divides one complex number by another complex number and puts the result in a third complex number. + /// + /// + /// A instance. + /// A instance. + /// A instance to hold the result. + /// + /// Can not divide by zero. + /// + public static void Divide( Complex a, Complex b, ref Complex result ) + { + double aRe = a.Re, aIm = a.Im; + double bRe = b.Re, bIm = b.Im; + double modulusSquared = bRe * bRe + bIm * bIm; + + if ( modulusSquared == 0 ) + { + throw new DivideByZeroException( "Can not divide by zero." ); + } + + double invModulusSquared = 1 / modulusSquared; + + result.Re = ( aRe * bRe + aIm * bIm ) * invModulusSquared; + result.Im = ( aIm * bRe - aRe * bIm ) * invModulusSquared; + } + + /// + /// Divides a complex number by a scalar value and puts the result into another complex number. + /// + /// + /// A instance. + /// A scalar value. + /// A instance to hold the result. + /// + /// Can not divide by zero. + /// + public static void Divide( Complex a, double s, ref Complex result ) + { + if ( s == 0 ) + { + throw new DivideByZeroException( "Can not divide by zero." ); + } + + result.Re = a.Re / s; + result.Im = a.Im / s; + } + + /// + /// Divides a scalar value by a complex number and puts the result into another complex number. + /// + /// + /// A instance. + /// A scalar value. + /// A instance to hold the result. + /// + /// Can not divide by zero. + /// + public static void Divide( double s, Complex a, ref Complex result ) + { + if ( ( a.Re == 0 ) || ( a.Im == 0 ) ) + { + throw new DivideByZeroException( "Can not divide by zero." ); + } + + result.Re = s / a.Re; + result.Im = s / a.Im; + } + + /// + /// Negates a complex number. + /// + /// + /// A instance. + /// + /// Returns new instance containing the negated values. + /// + public static Complex Negate( Complex a ) + { + return new Complex( -a.Re, -a.Im ); + } + + /// + /// Tests whether two complex numbers are approximately equal using default tolerance value. + /// + /// + /// A instance. + /// A instance. + /// + /// Return if the two vectors are approximately equal or otherwise. + /// + /// The default tolerance value, which is used for the test, equals to 8.8817841970012523233891E-16. + /// + public static bool ApproxEqual( Complex a, Complex b ) + { + return ApproxEqual( a, b, 8.8817841970012523233891E-16 ); + } + + + /// + /// Tests whether two complex numbers are approximately equal given a tolerance value. + /// + /// + /// A instance. + /// A instance. + /// The tolerance value used to test approximate equality. + /// + /// The default tolerance value, which is used for the test, equals to 8.8817841970012523233891E-16. + /// + public static bool ApproxEqual( Complex a, Complex b, double tolerance ) + { + return + ( + ( System.Math.Abs( a.Re - b.Re ) <= tolerance ) && + ( System.Math.Abs( a.Im - b.Im ) <= tolerance ) + ); + } + + #region Public Static Parse Methods + /// + /// Converts the specified string to its equivalent. + /// + /// + /// A string representation of a complex number. + /// + /// Returns new instance that represents the complex number + /// specified by the parameter. + /// + /// String representation of the complex number is not correctly formatted. + /// + public static Complex Parse( string s ) + { + Regex r = new Regex( @"\((?.*),(?.*)\)", RegexOptions.None ); + Match m = r.Match( s ); + + if ( m.Success ) + { + return new Complex( + double.Parse( m.Result( "${real}" ) ), + double.Parse( m.Result( "${imaginary}" ) ) + ); + } + else + { + throw new FormatException( "String representation of the complex number is not correctly formatted." ); + } + } + + /// + /// Try to convert the specified string to its equivalent. + /// + /// + /// A string representation of a complex number. + /// + /// instance to output the result to. + /// + /// Returns boolean value that indicates if the parse was successful or not. + /// + public static bool TryParse( string s, out Complex result ) + { + try + { + Complex newComplex = Complex.Parse( s ); + result = newComplex; + return true; + + } + catch ( FormatException ) + { + + result = new Complex( ); + return false; + } + } + + #endregion + + #region Public Static Complex Special Functions + + /// + /// Calculates square root of a complex number. + /// + /// + /// A instance. + /// + /// Returns new instance containing the square root of the specified + /// complex number. + /// + public static Complex Sqrt( Complex a ) + { + Complex result = Complex.Zero; + + if ( ( a.Re == 0.0 ) && ( a.Im == 0.0 ) ) + { + return result; + } + else if ( a.Im == 0.0 ) + { + result.Re = ( a.Re > 0 ) ? System.Math.Sqrt( a.Re ) : System.Math.Sqrt( -a.Re ); + result.Im = 0.0; + } + else + { + double modulus = a.Magnitude; + + result.Re = System.Math.Sqrt( 0.5 * ( modulus + a.Re ) ); + result.Im = System.Math.Sqrt( 0.5 * ( modulus - a.Re ) ); + if ( a.Im < 0.0 ) + result.Im = -result.Im; + } + + return result; + } + + /// + /// Calculates natural (base e) logarithm of a complex number. + /// + /// + /// A instance. + /// + /// Returns new instance containing the natural logarithm of the specified + /// complex number. + /// + public static Complex Log( Complex a ) + { + Complex result = Complex.Zero; + + if ( ( a.Re > 0.0 ) && ( a.Im == 0.0 ) ) + { + result.Re = System.Math.Log( a.Re ); + result.Im = 0.0; + } + else if ( a.Re == 0.0 ) + { + if ( a.Im > 0.0 ) + { + result.Re = System.Math.Log( a.Im ); + result.Im = System.Math.PI / 2.0; + } + else + { + result.Re = System.Math.Log( -( a.Im ) ); + result.Im = -System.Math.PI / 2.0; + } + } + else + { + result.Re = System.Math.Log( a.Magnitude ); + result.Im = System.Math.Atan2( a.Im, a.Re ); + } + + return result; + } + + /// + /// Calculates exponent (e raised to the specified power) of a complex number. + /// + /// + /// A instance. + /// + /// Returns new instance containing the exponent of the specified + /// complex number. + /// + public static Complex Exp( Complex a ) + { + Complex result = Complex.Zero; + double r = System.Math.Exp( a.Re ); + result.Re = r * System.Math.Cos( a.Im ); + result.Im = r * System.Math.Sin( a.Im ); + + return result; + } + #endregion + + #region Public Static Complex Trigonometry + + /// + /// Calculates Sine value of the complex number. + /// + /// + /// A instance. + /// + /// Returns new instance containing the Sine value of the specified + /// complex number. + /// + public static Complex Sin( Complex a ) + { + Complex result = Complex.Zero; + + if ( a.Im == 0.0 ) + { + result.Re = System.Math.Sin( a.Re ); + result.Im = 0.0; + } + else + { + result.Re = System.Math.Sin( a.Re ) * System.Math.Cosh( a.Im ); + result.Im = System.Math.Cos( a.Re ) * System.Math.Sinh( a.Im ); + } + + return result; + } + + /// + /// Calculates Cosine value of the complex number. + /// + /// + /// A instance. + /// + /// Returns new instance containing the Cosine value of the specified + /// complex number. + /// + public static Complex Cos( Complex a ) + { + Complex result = Complex.Zero; + + if ( a.Im == 0.0 ) + { + result.Re = System.Math.Cos( a.Re ); + result.Im = 0.0; + } + else + { + result.Re = System.Math.Cos( a.Re ) * System.Math.Cosh( a.Im ); + result.Im = -System.Math.Sin( a.Re ) * System.Math.Sinh( a.Im ); + } + + return result; + } + + /// + /// Calculates Tangent value of the complex number. + /// + /// + /// A instance. + /// + /// Returns new instance containing the Tangent value of the specified + /// complex number. + /// + public static Complex Tan( Complex a ) + { + Complex result = Complex.Zero; + + if ( a.Im == 0.0 ) + { + result.Re = System.Math.Tan( a.Re ); + result.Im = 0.0; + } + else + { + double real2 = 2 * a.Re; + double imag2 = 2 * a.Im; + double denom = System.Math.Cos( real2 ) + System.Math.Cosh( real2 ); + + result.Re = System.Math.Sin( real2 ) / denom; + result.Im = System.Math.Sinh( imag2 ) / denom; + } + + return result; + } + #endregion + + #region Overrides + /// + /// Returns the hashcode for this instance. + /// + /// + /// A 32-bit signed integer hash code. + public override int GetHashCode( ) + { + return Re.GetHashCode( ) ^ Im.GetHashCode( ); + } + + /// + /// Returns a value indicating whether this instance is equal to the specified object. + /// + /// + /// An object to compare to this instance. + /// + /// Returns if is a and has the same values as this instance or otherwise. + /// + public override bool Equals( object obj ) + { + return ( obj is Complex ) ? ( this == (Complex) obj ) : false; + } + + /// + /// Returns a string representation of this object. + /// + /// + /// A string representation of this object. + /// + public override string ToString( ) + { + return string.Format( "({0}, {1})", Re, Im ); + } + #endregion + + #region Comparison Operators + /// + /// Tests whether two specified complex numbers are equal. + /// + /// + /// The left-hand complex number. + /// The right-hand complex number. + /// + /// Returns if the two complex numbers are equal or otherwise. + /// + public static bool operator ==( Complex u, Complex v ) + { + return ( ( u.Re == v.Re ) && ( u.Im == v.Im ) ); + } + + /// + /// Tests whether two specified complex numbers are not equal. + /// + /// + /// The left-hand complex number. + /// The right-hand complex number. + /// + /// Returns if the two complex numbers are not equal or otherwise. + /// + public static bool operator !=( Complex u, Complex v ) + { + return !( u == v ); + } + #endregion + + #region Unary Operators + /// + /// Negates the complex number. + /// + /// + /// A instance. + /// + /// Returns new instance containing the negated values. + /// + public static Complex operator -( Complex a ) + { + return Complex.Negate( a ); + } + #endregion + + #region Binary Operators + /// + /// Adds two complex numbers. + /// + /// + /// A instance. + /// A instance. + /// + /// Returns new instance containing the sum. + /// + public static Complex operator +( Complex a, Complex b ) + { + return Complex.Add( a, b ); + } + + /// + /// Adds a complex number and a scalar value. + /// + /// + /// A instance. + /// A scalar value. + /// + /// Returns new instance containing the sum. + /// + public static Complex operator +( Complex a, double s ) + { + return Complex.Add( a, s ); + } + + /// + /// Adds a complex number and a scalar value. + /// + /// + /// A instance. + /// A scalar value. + /// + /// Returns new instance containing the sum. + /// + public static Complex operator +( double s, Complex a ) + { + return Complex.Add( a, s ); + } + + /// + /// Subtracts one complex number from another complex number. + /// + /// + /// A instance. + /// A instance. + /// + /// Returns new instance containing the difference. + /// + public static Complex operator -( Complex a, Complex b ) + { + return Complex.Subtract( a, b ); + } + + /// + /// Subtracts a scalar value from a complex number. + /// + /// + /// A instance. + /// A scalar value. + /// + /// Returns new instance containing the difference. + /// + public static Complex operator -( Complex a, double s ) + { + return Complex.Subtract( a, s ); + } + + /// + /// Subtracts a complex number from a scalar value. + /// + /// + /// A scalar value. + /// A instance. + /// + /// Returns new instance containing the difference. + /// + public static Complex operator -( double s, Complex a ) + { + return Complex.Subtract( s, a ); + } + + /// + /// Multiplies two complex numbers. + /// + /// + /// A instance. + /// A instance. + /// + /// Returns new instance containing the result of multiplication. + /// + public static Complex operator *( Complex a, Complex b ) + { + return Complex.Multiply( a, b ); + } + + /// + /// Multiplies a complex number by a scalar value. + /// + /// + /// A scalar value. + /// A instance. + /// + /// Returns new instance containing the result of multiplication. + /// + public static Complex operator *( double s, Complex a ) + { + return Complex.Multiply( a, s ); + } + + /// + /// Multiplies a complex number by a scalar value. + /// + /// + /// A instance. + /// A scalar value. + /// + /// Returns new instance containing the result of multiplication. + /// + public static Complex operator *( Complex a, double s ) + { + return Complex.Multiply( a, s ); + } + + /// + /// Divides one complex number by another complex number. + /// + /// + /// A instance. + /// A instance. + /// + /// A new Complex instance containing the result. + /// Returns new instance containing the result of division. + /// + public static Complex operator /( Complex a, Complex b ) + { + return Complex.Divide( a, b ); + } + + /// + /// Divides a complex number by a scalar value. + /// + /// + /// A instance. + /// A scalar value. + /// + /// Returns new instance containing the result of division. + /// + public static Complex operator /( Complex a, double s ) + { + return Complex.Divide( a, s ); + } + + /// + /// Divides a scalar value by a complex number. + /// + /// + /// A instance. + /// A scalar value. + /// + /// Returns new instance containing the result of division. + /// + public static Complex operator /( double s, Complex a ) + { + return Complex.Divide( s, a ); + } + #endregion + + #region Conversion Operators + /// + /// Converts from a single-precision real number to a complex number. + /// + /// + /// Single-precision real number to convert to complex number. + /// + /// Returns new instance containing complex number with + /// real part initialized to the specified value. + /// + public static explicit operator Complex( float value ) + { + return new Complex( (double) value, 0 ); + } + + /// + /// Converts from a double-precision real number to a complex number. + /// + /// + /// Double-precision real number to convert to complex number. + /// + /// Returns new instance containing complex number with + /// real part initialized to the specified value. + /// + public static explicit operator Complex( double value ) + { + return new Complex( value, 0 ); + } + #endregion + + #region ICloneable Members + /// + /// Creates an exact copy of this object. + /// + /// + /// Returns clone of the complex number. + /// + object ICloneable.Clone( ) + { + return new Complex( this ); + } + + /// + /// Creates an exact copy of this object. + /// + /// + /// Returns clone of the complex number. + /// + public Complex Clone( ) + { + return new Complex( this ); + } + #endregion + + #region ISerializable Members + /// + /// Populates a with the data needed to serialize the target object. + /// + /// + /// The to populate with data. + /// The destination (see ) for this serialization. + /// + public void GetObjectData( SerializationInfo info, StreamingContext context ) + { + info.AddValue( "Real", this.Re ); + info.AddValue( "Imaginary", this.Im ); + } + #endregion + } +} \ No newline at end of file diff --git a/Sources/Math/ContinuousHistogram.cs b/Sources/Math/ContinuousHistogram.cs new file mode 100644 index 00000000..eba999f9 --- /dev/null +++ b/Sources/Math/ContinuousHistogram.cs @@ -0,0 +1,334 @@ +// AForge Math Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2011 +// contacts@aforgenet.com +// + +namespace AForge.Math +{ + using System; + + /// + /// Histogram for continuous random values. + /// + /// + /// The class wraps histogram for continuous stochastic function, which is represented + /// by integer array and range of the function. Values of the integer array are treated + /// as total amount of hits on the corresponding subranges, which are calculated by splitting the + /// specified range into required amount of consequent ranges. + /// + /// For example, if the integer array is equal to { 1, 2, 4, 8, 16 } and the range is set + /// to [0, 1], then the histogram consists of next subranges: + /// + /// [0.0, 0.2] - 1 hit; + /// [0.2, 0.4] - 2 hits; + /// [0.4, 0.6] - 4 hits; + /// [0.6, 0.8] - 8 hits; + /// [0.8, 1.0] - 16 hits. + /// + /// + /// + /// Sample usage: + /// + /// // create histogram + /// ContinuousHistogram histogram = new ContinuousHistogram( + /// new int[] { 0, 0, 8, 4, 2, 4, 7, 1, 0 }, new Range( 0.0f, 1.0f ) ); + /// // get mean and standard deviation values + /// Console.WriteLine( "mean = " + histogram.Mean + ", std.dev = " + histogram.StdDev ); + /// + /// + /// + [Serializable] + public class ContinuousHistogram + { + private int[] values; + private Range range; + + private float mean; + private float stdDev; + private float median; + private float min; + private float max; + private int total; + + /// + /// Values of the histogram. + /// + /// + public int[] Values + { + get { return values; } + } + + /// + /// Range of random values. + /// + /// + public Range Range + { + get { return range; } + } + + /// + /// Mean value. + /// + /// + /// The property allows to retrieve mean value of the histogram. + /// + /// Sample usage: + /// + /// // create histogram + /// ContinuousHistogram histogram = new ContinuousHistogram( + /// new int[] { 0, 0, 8, 4, 2, 4, 7, 1, 0 }, new Range( 0.0f, 1.0f ) ); + /// // get mean value (= 0.505 ) + /// Console.WriteLine( "mean = " + histogram.Mean.ToString( "F3" ) ); + /// + /// + /// + public float Mean + { + get { return mean; } + } + + /// + /// Standard deviation. + /// + /// + /// The property allows to retrieve standard deviation value of the histogram. + /// + /// Sample usage: + /// + /// // create histogram + /// ContinuousHistogram histogram = new ContinuousHistogram( + /// new int[] { 0, 0, 8, 4, 2, 4, 7, 1, 0 }, new Range( 0.0f, 1.0f ) ); + /// // get std.dev. value (= 0.215) + /// Console.WriteLine( "std.dev. = " + histogram.StdDev.ToString( "F3" ) ); + /// + /// + /// + public float StdDev + { + get { return stdDev; } + } + + /// + /// Median value. + /// + /// + /// The property allows to retrieve median value of the histogram. + /// + /// Sample usage: + /// + /// // create histogram + /// ContinuousHistogram histogram = new ContinuousHistogram( + /// new int[] { 0, 0, 8, 4, 2, 4, 7, 1, 0 }, new Range( 0.0f, 1.0f ) ); + /// // get median value (= 0.500) + /// Console.WriteLine( "median = " + histogram.Median.ToString( "F3" ) ); + /// + /// + /// + public float Median + { + get { return median; } + } + + /// + /// Minimum value. + /// + /// + /// The property allows to retrieve minimum value of the histogram with non zero + /// hits count. + /// + /// Sample usage: + /// + /// // create histogram + /// ContinuousHistogram histogram = new ContinuousHistogram( + /// new int[] { 0, 0, 8, 4, 2, 4, 7, 1, 0 }, new Range( 0.0f, 1.0f ) ); + /// // get min value (= 0.250) + /// Console.WriteLine( "min = " + histogram.Min.ToString( "F3" ) ); + /// + /// + public float Min + { + get { return min; } + } + + /// + /// Maximum value. + /// + /// + /// The property allows to retrieve maximum value of the histogram with non zero + /// hits count. + /// + /// Sample usage: + /// + /// // create histogram + /// ContinuousHistogram histogram = new ContinuousHistogram( + /// new int[] { 0, 0, 8, 4, 2, 4, 7, 1, 0 }, new Range( 0.0f, 1.0f ) ); + /// // get max value (= 0.875) + /// Console.WriteLine( "max = " + histogram.Max.ToString( "F3" ) ); + /// + /// + /// + public float Max + { + get { return max; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Values of the histogram. + /// Range of random values. + /// + /// Values of the integer array are treated as total amount of hits on the + /// corresponding subranges, which are calculated by splitting the specified range into + /// required amount of consequent ranges (see class + /// description for more information). + /// + /// + public ContinuousHistogram( int[] values, Range range ) + { + this.values = values; + this.range = range; + + Update( ); + } + + /// + /// Get range around median containing specified percentage of values. + /// + /// + /// Values percentage around median. + /// + /// Returns the range which containes specifies percentage of values. + /// + /// The method calculates range of stochastic variable, which summary probability + /// comprises the specified percentage of histogram's hits. + /// + /// Sample usage: + /// + /// // create histogram + /// ContinuousHistogram histogram = new ContinuousHistogram( + /// new int[] { 0, 0, 8, 4, 2, 4, 7, 1, 0 }, new Range( 0.0f, 1.0f ) ); + /// // get 50% range + /// Range range = histogram.GetRange( 0.5f ); + /// // show the range ([0.25, 0.75]) + /// Console.WriteLine( "50% range = [" + range.Min + ", " + range.Max + "]" ); + /// + /// + /// + public Range GetRange( float percent ) + { + int min, max, hits; + int h = (int) ( total * ( percent + ( 1 - percent ) / 2 ) ); + int n = values.Length; + int nM1 = n - 1; + + // skip left portion + for ( min = 0, hits = total; min < n; min++ ) + { + hits -= values[min]; + if ( hits < h ) + break; + } + // skip right portion + for ( max = nM1, hits = total; max >= 0; max-- ) + { + hits -= values[max]; + if ( hits < h ) + break; + } + // return range between left and right boundaries + return new Range( + ( (float) min / nM1 ) * range.Length + range.Min, + ( (float) max / nM1 ) * range.Length + range.Min ); + } + + /// + /// Update statistical value of the histogram. + /// + /// + /// The method recalculates statistical values of the histogram, like mean, + /// standard deviation, etc. The method should be called only in the case if histogram + /// values were retrieved through property and updated after that. + /// + /// + public void Update( ) + { + int hits; + int i, n = values.Length; + int nM1 = n - 1; + + float rangeLength = range.Length; + float rangeMin = range.Min; + + max = 0; + min = n; + mean = 0; + stdDev = 0; + total = 0; + + double sum = 0; + + // calculate mean, min, max + for ( i = 0; i < n; i++ ) + { + hits = values[i]; + + if ( hits != 0 ) + { + // max + if ( i > max ) + max = i; + // min + if ( i < min ) + min = i; + } + + // accumulate total value + total += hits; + // accumulate mean value + sum += ( ( (double) i / nM1 ) * rangeLength + rangeMin ) * hits; + } + + if ( total != 0 ) + { + mean = (float) ( sum / total ); + } + + min = ( min / nM1 ) * rangeLength + rangeMin; + max = ( max / nM1 ) * rangeLength + rangeMin; + + // calculate stadard deviation + sum = 0; + double diff; + + for ( i = 0; i < n; i++ ) + { + hits = values[i]; + diff = ( ( (double) i / nM1 ) * rangeLength + rangeMin ) - mean; + sum += diff * diff * hits; + } + + if ( total != 0 ) + { + stdDev = (float) Math.Sqrt( sum / total ); + } + + // calculate median + int m, halfTotal = total / 2; + + for ( m = 0, hits = 0; m < n; m++ ) + { + hits += values[m]; + if ( hits >= halfTotal ) + break; + } + median = ( (float) m / nM1 ) * rangeLength + rangeMin; + } + } +} diff --git a/Sources/Math/FourierTransform.cs b/Sources/Math/FourierTransform.cs new file mode 100644 index 00000000..596291c1 --- /dev/null +++ b/Sources/Math/FourierTransform.cs @@ -0,0 +1,405 @@ +// AForge Math Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2005-2009 +// andrew.kirillov@aforgenet.com +// +// FFT idea from Exocortex.DSP library +// http://www.exocortex.org/dsp/ +// + +namespace AForge.Math +{ + using System; + + /// + /// Fourier transformation. + /// + /// + /// The class implements one dimensional and two dimensional + /// Discrete and Fast Fourier Transformation. + /// + public static class FourierTransform + { + /// + /// Fourier transformation direction. + /// + public enum Direction + { + /// + /// Forward direction of Fourier transformation. + /// + Forward = 1, + + /// + /// Backward direction of Fourier transformation. + /// + Backward = -1 + }; + + /// + /// One dimensional Discrete Fourier Transform. + /// + /// + /// Data to transform. + /// Transformation direction. + /// + public static void DFT( Complex[] data, Direction direction ) + { + int n = data.Length; + double arg, cos, sin; + Complex[] dst = new Complex[n]; + + // for each destination element + for ( int i = 0; i < n; i++ ) + { + dst[i] = Complex.Zero; + + arg = - (int) direction * 2.0 * System.Math.PI * (double) i / (double) n; + + // sum source elements + for ( int j = 0; j < n; j++ ) + { + cos = System.Math.Cos( j * arg ); + sin = System.Math.Sin( j * arg ); + + dst[i].Re += ( data[j].Re * cos - data[j].Im * sin ); + dst[i].Im += ( data[j].Re * sin + data[j].Im * cos ); + } + } + + // copy elements + if ( direction == Direction.Forward ) + { + // devide also for forward transform + for ( int i = 0; i < n; i++ ) + { + data[i].Re = dst[i].Re / n; + data[i].Im = dst[i].Im / n; + } + } + else + { + for ( int i = 0; i < n; i++ ) + { + data[i].Re = dst[i].Re; + data[i].Im = dst[i].Im; + } + } + } + + /// + /// Two dimensional Discrete Fourier Transform. + /// + /// + /// Data to transform. + /// Transformation direction. + /// + public static void DFT2( Complex[,] data, Direction direction ) + { + int n = data.GetLength( 0 ); // rows + int m = data.GetLength( 1 ); // columns + double arg, cos, sin; + Complex[] dst = new Complex[System.Math.Max( n, m )]; + + // process rows + for ( int i = 0; i < n; i++ ) + { + for ( int j = 0; j < m; j++ ) + { + dst[j] = Complex.Zero; + + arg = - (int) direction * 2.0 * System.Math.PI * (double) j / (double) m; + + // sum source elements + for ( int k = 0; k < m; k++ ) + { + cos = System.Math.Cos( k * arg ); + sin = System.Math.Sin( k * arg ); + + dst[j].Re += ( data[i, k].Re * cos - data[i, k].Im * sin ); + dst[j].Im += ( data[i, k].Re * sin + data[i, k].Im * cos ); + } + } + + // copy elements + if ( direction == Direction.Forward ) + { + // devide also for forward transform + for ( int j = 0; j < m; j++ ) + { + data[i, j].Re = dst[j].Re / m; + data[i, j].Im = dst[j].Im / m; + } + } + else + { + for ( int j = 0; j < m; j++ ) + { + data[i, j].Re = dst[j].Re; + data[i, j].Im = dst[j].Im; + } + } + } + + // process columns + for ( int j = 0; j < m; j++ ) + { + for ( int i = 0; i < n; i++ ) + { + dst[i] = Complex.Zero; + + arg = - (int) direction * 2.0 * System.Math.PI * (double) i / (double) n; + + // sum source elements + for ( int k = 0; k < n; k++ ) + { + cos = System.Math.Cos( k * arg ); + sin = System.Math.Sin( k * arg ); + + dst[i].Re += ( data[k, j].Re * cos - data[k, j].Im * sin ); + dst[i].Im += ( data[k, j].Re * sin + data[k, j].Im * cos ); + } + } + + // copy elements + if ( direction == Direction.Forward ) + { + // devide also for forward transform + for ( int i = 0; i < n; i++ ) + { + data[i, j].Re = dst[i].Re / n; + data[i, j].Im = dst[i].Im / n; + } + } + else + { + for ( int i = 0; i < n; i++ ) + { + data[i, j].Re = dst[i].Re; + data[i, j].Im = dst[i].Im; + } + } + } + } + + + /// + /// One dimensional Fast Fourier Transform. + /// + /// + /// Data to transform. + /// Transformation direction. + /// + /// The method accepts array of 2n size + /// only, where n may vary in the [1, 14] range. + /// + /// Incorrect data length. + /// + public static void FFT( Complex[] data, Direction direction ) + { + int n = data.Length; + int m = Tools.Log2( n ); + + // reorder data first + ReorderData( data ); + + // compute FFT + int tn = 1, tm; + + for ( int k = 1; k <= m; k++ ) + { + Complex[] rotation = FourierTransform.GetComplexRotation( k, direction ); + + tm = tn; + tn <<= 1; + + for ( int i = 0; i < tm; i++ ) + { + Complex t = rotation[i]; + + for ( int even = i; even < n; even += tn ) + { + int odd = even + tm; + Complex ce = data[even]; + Complex co = data[odd]; + + double tr = co.Re * t.Re - co.Im * t.Im; + double ti = co.Re * t.Im + co.Im * t.Re; + + data[even].Re += tr; + data[even].Im += ti; + + data[odd].Re = ce.Re - tr; + data[odd].Im = ce.Im - ti; + } + } + } + + if ( direction == Direction.Forward ) + { + for (int i = 0; i < n; i++) + { + data[i].Re /= (double) n; + data[i].Im /= (double) n; + } + } + } + + /// + /// Two dimensional Fast Fourier Transform. + /// + /// + /// Data to transform. + /// Transformation direction. + /// + /// The method accepts array of 2n size + /// only in each dimension, where n may vary in the [1, 14] range. For example, 16x16 array + /// is valid, but 15x15 is not. + /// + /// Incorrect data length. + /// + public static void FFT2( Complex[,] data, Direction direction ) + { + int k = data.GetLength( 0 ); + int n = data.GetLength( 1 ); + + // check data size + if ( + ( !Tools.IsPowerOf2( k ) ) || + ( !Tools.IsPowerOf2( n ) ) || + ( k < minLength ) || ( k > maxLength ) || + ( n < minLength ) || ( n > maxLength ) + ) + { + throw new ArgumentException( "Incorrect data length." ); + } + + // process rows + Complex[] row = new Complex[n]; + + for ( int i = 0; i < k; i++ ) + { + // copy row + for ( int j = 0; j < n; j++ ) + row[j] = data[i, j]; + // transform it + FourierTransform.FFT( row, direction ); + // copy back + for ( int j = 0; j < n; j++ ) + data[i, j] = row[j]; + } + + // process columns + Complex[] col = new Complex[k]; + + for ( int j = 0; j < n; j++ ) + { + // copy column + for ( int i = 0; i < k; i++ ) + col[i] = data[i, j]; + // transform it + FourierTransform.FFT( col, direction ); + // copy back + for ( int i = 0; i < k; i++ ) + data[i, j] = col[i]; + } + } + + #region Private Region + + private const int minLength = 2; + private const int maxLength = 16384; + private const int minBits = 1; + private const int maxBits = 14; + private static int[][] reversedBits = new int[maxBits][]; + private static Complex[,][] complexRotation = new Complex[maxBits, 2][]; + + // Get array, indicating which data members should be swapped before FFT + private static int[] GetReversedBits( int numberOfBits ) + { + if ( ( numberOfBits < minBits ) || ( numberOfBits > maxBits ) ) + throw new ArgumentOutOfRangeException( ); + + // check if the array is already calculated + if ( reversedBits[numberOfBits - 1] == null ) + { + int n = Tools.Pow2( numberOfBits ); + int[] rBits = new int[n]; + + // calculate the array + for ( int i = 0; i < n; i++ ) + { + int oldBits = i; + int newBits = 0; + + for ( int j = 0; j < numberOfBits; j++ ) + { + newBits = ( newBits << 1 ) | ( oldBits & 1 ); + oldBits = ( oldBits >> 1 ); + } + rBits[i] = newBits; + } + reversedBits[numberOfBits - 1] = rBits; + } + return reversedBits[numberOfBits - 1]; + } + + // Get rotation of complex number + private static Complex[] GetComplexRotation( int numberOfBits, Direction direction ) + { + int directionIndex = ( direction == Direction.Forward ) ? 0 : 1; + + // check if the array is already calculated + if ( complexRotation[numberOfBits - 1, directionIndex] == null ) + { + int n = 1 << ( numberOfBits - 1 ); + double uR = 1.0; + double uI = 0.0; + double angle = System.Math.PI / n * (int) direction; + double wR = System.Math.Cos( angle ); + double wI = System.Math.Sin( angle ); + double t; + Complex[] rotation = new Complex[n]; + + for ( int i = 0; i < n; i++ ) + { + rotation[i] = new Complex( uR, uI ); + t = uR * wI + uI * wR; + uR = uR * wR - uI * wI; + uI = t; + } + + complexRotation[numberOfBits - 1, directionIndex] = rotation; + } + return complexRotation[numberOfBits - 1, directionIndex]; + } + + // Reorder data for FFT using + private static void ReorderData( Complex[] data ) + { + int len = data.Length; + + // check data length + if ( ( len < minLength ) || ( len > maxLength ) || ( !Tools.IsPowerOf2( len ) ) ) + throw new ArgumentException( "Incorrect data length." ); + + int[] rBits = GetReversedBits( Tools.Log2( len ) ); + + for ( int i = 0; i < len; i++ ) + { + int s = rBits[i]; + + if ( s > i ) + { + Complex t = data[i]; + data[i] = data[s]; + data[s] = t; + } + } + } + + #endregion + } +} diff --git a/Sources/Math/Gaussian.cs b/Sources/Math/Gaussian.cs new file mode 100644 index 00000000..cd717f39 --- /dev/null +++ b/Sources/Math/Gaussian.cs @@ -0,0 +1,189 @@ +// AForge Math Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2005-2009 +// andrew.kirillov@aforgenet.com +// + +namespace AForge.Math +{ + using System; + + /// + /// Gaussian function. + /// + /// + /// The class is used to calculate 1D and 2D Gaussian functions for + /// specified (s) value: + /// + /// + /// 1-D: f(x) = exp( x * x / ( -2 * s * s ) ) / ( s * sqrt( 2 * PI ) ) + /// + /// 2-D: f(x, y) = exp( x * x + y * y / ( -2 * s * s ) ) / ( s * s * 2 * PI ) + /// + /// + /// + /// + public class Gaussian + { + // sigma value + private double sigma = 1.0; + // squared sigma + private double sqrSigma = 1.0; + + /// + /// Sigma value. + /// + /// + /// Sigma property of Gaussian function. + /// + /// Default value is set to 1. Minimum allowed value is 0.00000001. + /// + /// + public double Sigma + { + get { return sigma; } + set + { + sigma = Math.Max( 0.00000001, value ); + sqrSigma = sigma * sigma; + } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public Gaussian( ) { } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Sigma value. + /// + public Gaussian( double sigma ) + { + Sigma = sigma; + } + + /// + /// 1-D Gaussian function. + /// + /// + /// x value. + /// + /// Returns function's value at point . + /// + /// The function calculates 1-D Gaussian function: + /// + /// + /// f(x) = exp( x * x / ( -2 * s * s ) ) / ( s * sqrt( 2 * PI ) ) + /// + /// + /// + public double Function( double x ) + { + return Math.Exp( x * x / ( -2 * sqrSigma ) ) / ( Math.Sqrt( 2 * Math.PI ) * sigma ); + } + + /// + /// 2-D Gaussian function. + /// + /// + /// x value. + /// y value. + /// + /// Returns function's value at point (, ). + /// + /// The function calculates 2-D Gaussian function: + /// + /// + /// f(x, y) = exp( x * x + y * y / ( -2 * s * s ) ) / ( s * s * 2 * PI ) + /// + /// + /// + public double Function2D( double x, double y ) + { + return Math.Exp( ( x * x + y * y ) / ( -2 * sqrSigma ) ) / ( 2 * Math.PI * sqrSigma ); + } + + /// + /// 1-D Gaussian kernel. + /// + /// + /// Kernel size (should be odd), [3, 101]. + /// + /// Returns 1-D Gaussian kernel of the specified size. + /// + /// The function calculates 1-D Gaussian kernel, which is array + /// of Gaussian function's values in the [-r, r] range of x value, where + /// r=floor(/2). + /// + /// + /// Wrong kernel size. + /// + public double[] Kernel( int size ) + { + // check for evem size and for out of range + if ( ( ( size % 2 ) == 0 ) || ( size < 3 ) || ( size > 101 ) ) + { + throw new ArgumentException( "Wrong kernal size." ); + } + + // raduis + int r = size / 2; + // kernel + double[] kernel = new double[size]; + + // compute kernel + for ( int x = -r, i = 0; i < size; x++, i++ ) + { + kernel[i] = Function( x ); + } + + return kernel; + } + + /// + /// 2-D Gaussian kernel. + /// + /// + /// Kernel size (should be odd), [3, 101]. + /// + /// Returns 2-D Gaussian kernel of specified size. + /// + /// The function calculates 2-D Gaussian kernel, which is array + /// of Gaussian function's values in the [-r, r] range of x,y values, where + /// r=floor(/2). + /// + /// + /// Wrong kernel size. + /// + public double[,] Kernel2D( int size ) + { + // check for evem size and for out of range + if ( ( ( size % 2 ) == 0 ) || ( size < 3 ) || ( size > 101 ) ) + { + throw new ArgumentException( "Wrong kernal size." ); + } + + // raduis + int r = size / 2; + // kernel + double[,] kernel = new double[size, size]; + + // compute kernel + for ( int y = -r, i = 0; i < size; y++, i++ ) + { + for ( int x = -r, j = 0; j < size; x++, j++ ) + { + kernel[i, j] = Function2D( x, y ); + } + } + + return kernel; + } + } +} diff --git a/Sources/Math/Geometry/ClosePointsMergingOptimizer.cs b/Sources/Math/Geometry/ClosePointsMergingOptimizer.cs new file mode 100644 index 00000000..f8137bd9 --- /dev/null +++ b/Sources/Math/Geometry/ClosePointsMergingOptimizer.cs @@ -0,0 +1,137 @@ +// AForge Math Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2011 +// contacts@aforgenet.com +// + +namespace AForge.Math.Geometry +{ + using System; + using System.Collections.Generic; + using AForge; + + /// + /// Shape optimizer, which merges points within close distance to each other. + /// + /// + /// This shape optimizing algorithm checks all points of a shape + /// and merges any two points which are within specified distance + /// to each other. Two close points are replaced by a single point, which has + /// mean coordinates of the removed points. + /// + /// Because of the fact that the algorithm performs points merging + /// while it goes through a shape, it may merge several points (more than 2) into a + /// single point, where distance between extreme points may be bigger + /// than the specified limit. For example, suppose + /// a case with 3 points, where 1st and 2nd points are close enough to be merged, but the + /// 3rd point is a little bit further. During merging of 1st and 2nd points, it may + /// happen that the new point with mean coordinates will get closer to the 3rd point, + /// so they will be merged also on next iteration of the algorithm. + /// + /// + /// For example, the below circle shape comprised of 65 points, can be optimized to 8 points + /// by setting to 28.
+ /// + ///
+ ///
+ /// + public class ClosePointsMergingOptimizer : IShapeOptimizer + { + private float maxDistanceToMerge = 10; + + /// + /// Maximum allowed distance between points, which are merged during optimization, [0, ∞). + /// + /// + /// The property sets maximum allowed distance between two points of + /// a shape, which are replaced by single point with mean coordinates. + /// + /// Default value is set to 10. + /// + public float MaxDistanceToMerge + { + get { return maxDistanceToMerge; } + set { maxDistanceToMerge = Math.Max( 0, value ); } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public ClosePointsMergingOptimizer( ) { } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Maximum allowed distance between points, which are + /// merged during optimization (see ). + /// + public ClosePointsMergingOptimizer( float maxDistanceToMerge ) + { + this.maxDistanceToMerge = maxDistanceToMerge; + } + + /// + /// Optimize specified shape. + /// + /// + /// Shape to be optimized. + /// + /// Returns final optimized shape, which may have reduced amount of points. + /// + public List OptimizeShape( List shape ) + { + // optimized shape + List optimizedShape = new List( ); + + if ( shape.Count <= 3 ) + { + // do nothing if shape has 3 points or less + optimizedShape.AddRange( shape ); + } + else + { + float distance = 0; + + // add first point to the new shape + optimizedShape.Add( shape[0] ); + int pointsInOptimizedHull = 1; + + for ( int i = 1, n = shape.Count; i < n; i++ ) + { + distance = optimizedShape[pointsInOptimizedHull - 1].DistanceTo( shape[i] ); + + if ( ( distance <= maxDistanceToMerge ) && + ( pointsInOptimizedHull + ( n - i ) > 3 ) ) + { + // merge + optimizedShape[pointsInOptimizedHull - 1] = ( optimizedShape[pointsInOptimizedHull - 1] + shape[i] ) / 2; + } + else + { + optimizedShape.Add( shape[i] ); + pointsInOptimizedHull++; + } + } + + if ( pointsInOptimizedHull > 3 ) + { + // check the last and first points + distance = optimizedShape[pointsInOptimizedHull - 1].DistanceTo( optimizedShape[0] ); + + if ( distance <= maxDistanceToMerge ) + { + // merge + optimizedShape[0] = ( optimizedShape[pointsInOptimizedHull - 1] + optimizedShape[0] ) / 2; + optimizedShape.RemoveAt( pointsInOptimizedHull - 1 ); + } + } + } + + return optimizedShape; + } + } +} diff --git a/Sources/Math/Geometry/CoplanarPosit.cs b/Sources/Math/Geometry/CoplanarPosit.cs new file mode 100644 index 00000000..ec45f3d5 --- /dev/null +++ b/Sources/Math/Geometry/CoplanarPosit.cs @@ -0,0 +1,505 @@ +// AForge Math Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2011 +// contacts@aforgenet.com +// + +namespace AForge.Math.Geometry +{ + using System; + using AForge; + using AForge.Math; + + /// + /// 3D pose estimation algorithm (coplanar case). + /// + /// + /// The class implements an algorithm for 3D object's pose estimation from it's + /// 2D coordinates obtained by perspective projection, when the object is described coplanar points. + /// The idea of the implemented math and algorithm is described in "Iterative Pose Estimation using + /// Coplanar Feature Points" paper written by Oberkampf, Daniel DeMenthon and Larry Davis + /// (the implementation of the algorithm is very close translation of the pseudo code given by the + /// paper, so should be easy to follow). + /// + /// At this point the implementation works only with models described by 4 points, which is + /// the minimum number of points enough for 3D pose estimation. + /// + /// The 4 model's point are supposed to be coplanar, i.e. supposed to reside all within + /// same planer. See for none coplanar case. + /// + /// Read 3D Pose Estimation article for + /// additional information and samples. + /// + /// Sample usage: + /// + /// // points of real object - model + /// Vector3[] copositObject = new Vector3[4] + /// { + /// new Vector3( -56.5f, 0, 56.5f ), + /// new Vector3( 56.5f, 0, 56.5f ), + /// new Vector3( 56.5f, 0, -56.5f ), + /// new Vector3( -56.5f, 0, -56.5f ), + /// }; + /// // focal length of camera used to capture the object + /// float focalLength = 640; // depends on your camera or projection system + /// // initialize CoPOSIT object + /// CoplanarPosit coposit = new CoplanarPosit( copositObject, focalLength ); + /// + /// // 2D points of te object - projection + /// AForge.Point[] projectedPoints = new AForge.Point[4] + /// { + /// new AForge.Point( -77, 48 ), + /// new AForge.Point( 44, 66 ), + /// new AForge.Point( 75, -36 ), + /// new AForge.Point( -61, -58 ), + /// }; + /// // estimate pose + /// Matrix3x3 rotationMatrix; + /// Vector3 translationVector; + /// coposit.EstimatePose( projectedPoints, + /// out rotationMatrix, out translationVector ); + /// + /// + /// + /// + /// + public class CoplanarPosit + { + // camera's focal length + private float focalLength; + + // points of the model to estimate position for + private Vector3[] modelPoints; + // 3 vectors of the model kept as a matrix + private Matrix3x3 modelVectors; + // pseudoinverse of the model vectors matrix + private Matrix3x3 modelPseudoInverse; + // unit normal to the model + private Vector3 modelNormal; + + private Matrix3x3 alternateRotation = new Matrix3x3( ); + private Vector3 alternateTranslation = new Vector3( ); + private float alternatePoseError = 0; + + private Matrix3x3 bestRotation = new Matrix3x3( ); + private Vector3 bestTranslation = new Vector3( ); + private float bestPoseError = 0; + + /// + /// Best estimated pose recently found. + /// + /// + /// The property keeps best estimated pose found by the latest call to . + /// The same estimated pose is provided by that method also and can be accessed through this property + /// for convenience. + /// + /// See also and . + /// + /// + public Matrix3x3 BestEstimatedRotation + { + get { return bestRotation; } + } + + /// + /// Best estimated translation recently found. + /// + /// + /// The property keeps best estimated translation found by the latest call to . + /// The same estimated translation is provided by that method also and can be accessed through this property + /// for convenience. + /// + /// See also and . + /// + /// + public Vector3 BestEstimatedTranslation + { + get { return bestTranslation; } + } + + /// + /// Error of the best pose estimation. + /// + /// + /// The property keeps error of the best pose estimation, which is calculated as average + /// error between real angles of the specified quadrilateral and angles of the quadrilateral which + /// is a projection of the best pose estimation. The error is measured degrees in (angle). + /// + /// + public float BestEstimationError + { + get { return bestPoseError; } + } + + /// + /// Alternate estimated pose recently found. + /// + /// + /// The property keeps alternate estimated pose found by the latest call to . + /// + /// See also and . + /// + /// + public Matrix3x3 AlternateEstimatedRotation + { + get { return alternateRotation; } + } + + /// + /// Alternated estimated translation recently found. + /// + /// + /// The property keeps alternate estimated translation found by the latest call to . + /// + /// See also and . + /// + /// + public Vector3 AlternateEstimatedTranslation + { + get { return alternateTranslation; } + } + + /// + /// Error of the alternate pose estimation. + /// + /// + /// The property keeps error of the alternate pose estimation, which is calculated as average + /// error between real angles of the specified quadrilateral and angles of the quadrilateral which + /// is a projection of the alternate pose estimation. The error is measured in degrees (angle). + /// + /// + public float AlternateEstimationError + { + get { return alternatePoseError; } + } + + /// + /// Coordinates of the model points which pose should be estimated. + /// + public Vector3[] Model + { + get { return (Vector3[]) modelPoints.Clone( ); } + } + + /// + /// Effective focal length of the camera used to capture the model. + /// + public float FocalLength + { + get { return focalLength; } + set { focalLength = value; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Array of vectors containing coordinates of four real model's point. + /// Effective focal length of the camera used to capture the model. + /// + /// The model must have 4 points. + /// + public CoplanarPosit( Vector3[] model, float focalLength ) + { + if ( model.Length != 4 ) + { + throw new ArgumentException( "The model must have 4 points." ); + } + + this.focalLength = focalLength; + modelPoints = (Vector3[]) model.Clone( ); + + // compute model vectors + modelVectors = Matrix3x3.CreateFromRows( + model[1] - model[0], + model[2] - model[0], + model[3] - model[0] ); + + // compute pseudo inverse of the model matrix + Matrix3x3 u, v; + Vector3 e; + + modelVectors.SVD( out u, out e, out v ); + modelPseudoInverse = v * Matrix3x3.CreateDiagonal( e.Inverse( ) ) * u.Transpose( ); + + // computer unit vector normal to the model + modelNormal = v.GetColumn( e.MinIndex ); + } + + /// + /// Estimate pose of a model from it's projected 2D coordinates. + /// + /// + /// 4 2D points of the model's projection. + /// Gets best estimation of object's rotation. + /// Gets best estimation of object's translation. + /// + /// 4 points must be be given for pose estimation. + /// + /// Because of the Coplanar POSIT algorithm's nature, it provides two pose estimations, + /// which are valid from the algorithm's math point of view. For each pose an error is calculated, + /// which specifies how good estimation fits to the specified real 2D coordinated. The method + /// provides the best estimation through its output parameters and + /// . This may be enough for many of the pose estimation application. + /// For those, who require checking the alternate pose estimation, it can be obtained using + /// and properties. + /// The calculated error is provided for both estimations through and + /// properties. + /// + /// + public void EstimatePose( Point[] points, out Matrix3x3 rotation, out Vector3 translation ) + { + if ( points.Length != 4 ) + { + throw new ArgumentException( "4 points must be be given for pose estimation." ); + } + + Matrix3x3 rotation1, rotation2; + Vector3 translation1, translation2; + + // find initial rotation + POS( points, new Vector3( 1 ), out rotation1, out rotation2, out translation1, out translation2 ); + + // iterate further and fine tune the solution + float error1 = Iterate( points, ref rotation1, ref translation1 ); + float error2 = Iterate( points, ref rotation2, ref translation2 ); + + // take the best found pose + if ( error1 < error2 ) + { + bestRotation = rotation1; + bestTranslation = translation1; + bestPoseError = error1; + + alternateRotation = rotation2; + alternateTranslation = translation2; + alternatePoseError = error2; + } + else + { + bestRotation = rotation2; + bestTranslation = translation2; + bestPoseError = error2; + + alternateRotation = rotation1; + alternateTranslation = translation1; + alternatePoseError = error1; + } + + rotation = bestRotation; + translation = bestTranslation; + } + + private const float ErrorLimit = 2; + + // Iterate POS algorithm starting from the specified rotation and translation and fine tune it + private float Iterate( Point[] points, ref Matrix3x3 rotation, ref Vector3 translation ) + { + float prevError = float.MaxValue; + float error = 0; + + // run maximum 100 iterations (seems to be overkill, since typicaly it requires around 1-2 iterations) + for ( int count = 0; count < 100; count++ ) + { + Matrix3x3 rotation1, rotation2; + Vector3 translation1, translation2; + + // calculates new epsilon values + Vector3 eps = ( modelVectors * rotation.GetRow( 2 ) ) / translation.Z + 1; + // and new pose + POS( points, eps, out rotation1, out rotation2, out translation1, out translation2 ); + + // calculate error for both new poses + float error1 = GetError( points, rotation1, translation1 ); + float error2 = GetError( points, rotation2, translation2 ); + + // select the pose which gives smaller error + if ( error1 < error2 ) + { + rotation = rotation1; + translation = translation1; + error = error1; + } + else + { + rotation = rotation2; + translation = translation2; + error = error2; + } + + // stop if error is small enough or started to grow + if ( ( error <= ErrorLimit ) || ( error > prevError ) ) + break; + + prevError = error; + } + + return error; + } + + // Perform single iteration of POS (pos estimations) algorithm to find possible rotations and translation vectors + private void POS( Point[] imagePoints, Vector3 eps, out Matrix3x3 rotation1, out Matrix3x3 rotation2, out Vector3 translation1, out Vector3 translation2 ) + { + // create vectors keeping all X and Y coordinates for the 1st, 2nd and 3rd points + Vector3 XI = new Vector3( imagePoints[1].X, imagePoints[2].X, imagePoints[3].X ); + Vector3 YI = new Vector3( imagePoints[1].Y, imagePoints[2].Y, imagePoints[3].Y ); + + // calculate scale orthographic projection (SOP) + Vector3 imageXs = XI * eps - imagePoints[0].X; + Vector3 imageYs = YI * eps - imagePoints[0].Y; + + // calculate I0 and J0 vectors + Vector3 I0Vector = modelPseudoInverse * imageXs; + Vector3 J0Vector = modelPseudoInverse * imageYs; + + Vector3 iVector = new Vector3( ); + Vector3 jVector = new Vector3( ); + Vector3 kVector = new Vector3( ); + + // find roots of complex number C^2 + float j2i2dif = J0Vector.Square - I0Vector.Square; + float ij = Vector3.Dot( I0Vector, J0Vector ); + + float r = 0, theta = 0; + + if ( j2i2dif == 0 ) + { + theta = (float) ( ( -System.Math.PI / 2 ) * System.Math.Sign( ij ) ); + r = (float) System.Math.Sqrt( System.Math.Abs( 2 * ij ) ); + } + else + { + r = (float) System.Math.Sqrt( System.Math.Sqrt( j2i2dif * j2i2dif + 4 * ij * ij ) ); + theta = (float) System.Math.Atan( -2 * ij / j2i2dif ); + + if ( j2i2dif < 0 ) + theta += (float) System.Math.PI; + + theta /= 2; + } + + float lambda = (float) ( r * System.Math.Cos( theta ) ); + float mu = (float) ( r * System.Math.Sin( theta ) ); + + // first possible rotation + iVector = I0Vector + ( modelNormal * lambda ); + jVector = J0Vector + ( modelNormal * mu ); + + float iNorm = iVector.Normalize( ); + float jNorm = jVector.Normalize( ); + kVector = Vector3.Cross( iVector, jVector ); + + rotation1 = Matrix3x3.CreateFromRows( iVector, jVector, kVector ); + + // calculate translation vector + float scale = ( iNorm + jNorm ) / 2; + + Vector3 temp = rotation1 * modelPoints[0]; + translation1 = new Vector3( imagePoints[0].X / scale - temp.X, imagePoints[0].Y / scale - temp.Y, focalLength / scale ); + + // second possible rotation + iVector = I0Vector - ( modelNormal * lambda ); + jVector = J0Vector - ( modelNormal * mu ); + + iNorm = iVector.Normalize( ); + jNorm = jVector.Normalize( ); + kVector = Vector3.Cross( iVector, jVector ); + + rotation2 = Matrix3x3.CreateFromRows( iVector, jVector, kVector ); + + scale = ( iNorm + jNorm ) / 2; + + temp = rotation2 * modelPoints[0]; + translation2 = new Vector3( imagePoints[0].X / scale - temp.X, imagePoints[0].Y / scale - temp.Y, focalLength / scale ); + } + + // Calculate average error between real angles of the specified quadrilateral and angles of the + // quadrilateral which is the projection of currently estimated pose + private float GetError( Point[] imagePoints, Matrix3x3 rotation, Vector3 translation ) + { + Vector3 v1 = rotation * modelPoints[0] + translation; + v1.X = v1.X * focalLength / v1.Z; + v1.Y = v1.Y * focalLength / v1.Z; + + Vector3 v2 = rotation * modelPoints[1] + translation; + v2.X = v2.X * focalLength / v2.Z; + v2.Y = v2.Y * focalLength / v2.Z; + + Vector3 v3 = rotation * modelPoints[2] + translation; + v3.X = v3.X * focalLength / v3.Z; + v3.Y = v3.Y * focalLength / v3.Z; + + Vector3 v4 = rotation * modelPoints[3] + translation; + v4.X = v4.X * focalLength / v4.Z; + v4.Y = v4.Y * focalLength / v4.Z; + + Point[] modeledPoints = new Point[4] + { + new Point( v1.X, v1.Y ), + new Point( v2.X, v2.Y ), + new Point( v3.X, v3.Y ), + new Point( v4.X, v4.Y ), + }; + + float ia1 = GeometryTools.GetAngleBetweenVectors( imagePoints[0], imagePoints[1], imagePoints[3] ); + float ia2 = GeometryTools.GetAngleBetweenVectors( imagePoints[1], imagePoints[2], imagePoints[0] ); + float ia3 = GeometryTools.GetAngleBetweenVectors( imagePoints[2], imagePoints[3], imagePoints[1] ); + float ia4 = GeometryTools.GetAngleBetweenVectors( imagePoints[3], imagePoints[0], imagePoints[2] ); + + float ma1 = GeometryTools.GetAngleBetweenVectors( modeledPoints[0], modeledPoints[1], modeledPoints[3] ); + float ma2 = GeometryTools.GetAngleBetweenVectors( modeledPoints[1], modeledPoints[2], modeledPoints[0] ); + float ma3 = GeometryTools.GetAngleBetweenVectors( modeledPoints[2], modeledPoints[3], modeledPoints[1] ); + float ma4 = GeometryTools.GetAngleBetweenVectors( modeledPoints[3], modeledPoints[0], modeledPoints[2] ); + + return ( + System.Math.Abs( ia1 - ma1 ) + + System.Math.Abs( ia2 - ma2 ) + + System.Math.Abs( ia3 - ma3 ) + + System.Math.Abs( ia4 - ma4 ) + ) / 4; + } + + // This function calculates error value as it is mentioned in theory - average distance + // between image points and projected model's points. However, if translation is not + // calculated very precisely (because of inaccurate focal length, for example), this function + // may return big error value for both estimated poses. So the above function uses + // angles between objects' side instead of corners' coordinates. + /* + private float _GetError( Point[] imagePoints, Matrix3x3 rotation, Vector3 translation ) + { + Vector3 v1 = rotation * modelPoints[0] + translation; + v1.X = v1.X * focalLength / v1.Z; + v1.Y = v1.Y * focalLength / v1.Z; + + Vector3 v2 = rotation * modelPoints[1] + translation; + v2.X = v2.X * focalLength / v2.Z; + v2.Y = v2.Y * focalLength / v2.Z; + + Vector3 v3 = rotation * modelPoints[2] + translation; + v3.X = v3.X * focalLength / v3.Z; + v3.Y = v3.Y * focalLength / v3.Z; + + Vector3 v4 = rotation * modelPoints[3] + translation; + v4.X = v4.X * focalLength / v4.Z; + v4.Y = v4.Y * focalLength / v4.Z; + + Point[] modeledPoints = new Point[4] + { + new Point( v1.X, v1.Y ), + new Point( v2.X, v2.Y ), + new Point( v3.X, v3.Y ), + new Point( v4.X, v4.Y ), + }; + + return ( + imagePoints[0].DistanceTo( modeledPoints[0] ) + + imagePoints[1].DistanceTo( modeledPoints[1] ) + + imagePoints[2].DistanceTo( modeledPoints[2] ) + + imagePoints[3].DistanceTo( modeledPoints[3] ) + ) / 4; + } + */ + } +} diff --git a/Sources/Math/Geometry/FlatAnglesOptimizer.cs b/Sources/Math/Geometry/FlatAnglesOptimizer.cs new file mode 100644 index 00000000..c040046f --- /dev/null +++ b/Sources/Math/Geometry/FlatAnglesOptimizer.cs @@ -0,0 +1,146 @@ +// AForge Math Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2011 +// contacts@aforgenet.com +// + +namespace AForge.Math.Geometry +{ + using System; + using System.Collections.Generic; + using AForge; + + /// + /// Shape optimizer, which removes obtuse angles (close to flat) from a shape. + /// + /// + /// This shape optimizing algorithm checks all adjacent edges of a shape + /// and substitutes any 2 edges with a single edge if angle between them is greater than + /// . The algorithm makes sure there are not obtuse angles in + /// a shape, which are very close to flat line. + /// + /// The shape optimizer does not optimize shapes to less than 3 points, so optimized + /// shape always will have at least 3 points. + /// + /// + /// For example, the below circle shape comprised of 65 points, can be optimized to 10 points + /// by setting to 160.
+ /// + ///
+ ///
+ /// + public class FlatAnglesOptimizer : IShapeOptimizer + { + private float maxAngleToKeep = 160; + + /// + /// Maximum angle between adjacent edges to keep in a shape, [140, 180]. + /// + /// + /// The property sets maximum angle between adjacent edges, which is kept + /// during optimization. All edges, which have a greater angle between them, are substituted + /// by a single edge. + /// + /// Default value is set to 160. + /// + public float MaxAngleToKeep + { + get { return maxAngleToKeep; } + set { maxAngleToKeep = Math.Min( 180, Math.Max( 140, value ) ); } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public FlatAnglesOptimizer( ) { } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Maximum acceptable angle between two edges of a shape (see ). + /// + public FlatAnglesOptimizer( float maxAngleToKeep ) + { + this.maxAngleToKeep = maxAngleToKeep; + } + + /// + /// Optimize specified shape. + /// + /// + /// Shape to be optimized. + /// + /// Returns final optimized shape, which may have reduced amount of points. + /// + public List OptimizeShape( List shape ) + { + // optimized shape + List optimizedShape = new List( ); + + if ( shape.Count <= 3 ) + { + // do nothing if shape has 3 points or less + optimizedShape.AddRange( shape ); + } + else + { + float angle = 0; + + // add first 2 points to the new shape + optimizedShape.Add( shape[0] ); + optimizedShape.Add( shape[1] ); + int pointsInOptimizedHull = 2; + + for ( int i = 2, n = shape.Count; i < n; i++ ) + { + // add new point + optimizedShape.Add( shape[i] ); + pointsInOptimizedHull++; + + // get angle between 2 vectors, which start from the next to last point + angle = GeometryTools.GetAngleBetweenVectors( optimizedShape[pointsInOptimizedHull - 2], + optimizedShape[pointsInOptimizedHull - 3], optimizedShape[pointsInOptimizedHull - 1] ); + + if ( ( angle > maxAngleToKeep ) && + ( ( pointsInOptimizedHull > 3 ) || ( i < n - 1 ) ) ) + { + // remove the next to last point + optimizedShape.RemoveAt( pointsInOptimizedHull - 2 ); + pointsInOptimizedHull--; + } + } + + if ( pointsInOptimizedHull > 3 ) + { + // check the last point + angle = GeometryTools.GetAngleBetweenVectors( optimizedShape[pointsInOptimizedHull - 1], + optimizedShape[pointsInOptimizedHull - 2], optimizedShape[0] ); + + if ( angle > maxAngleToKeep ) + { + optimizedShape.RemoveAt( pointsInOptimizedHull - 1 ); + pointsInOptimizedHull--; + } + + if ( pointsInOptimizedHull > 3 ) + { + // check the first point + angle = GeometryTools.GetAngleBetweenVectors( optimizedShape[0], + optimizedShape[pointsInOptimizedHull - 1], optimizedShape[1] ); + + if ( angle > maxAngleToKeep ) + { + optimizedShape.RemoveAt( 0 ); + } + } + } + } + + return optimizedShape; + } + } +} diff --git a/Sources/Math/Geometry/GeometryTools.cs b/Sources/Math/Geometry/GeometryTools.cs new file mode 100644 index 00000000..97acfa20 --- /dev/null +++ b/Sources/Math/Geometry/GeometryTools.cs @@ -0,0 +1,63 @@ +// AForge Math Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2011 +// contacts@aforgenet.com +// + +namespace AForge.Math.Geometry +{ + using System; + + /// + /// Collection of some gemetry tool methods. + /// + /// + public static class GeometryTools + { + /// + /// Calculate angle between to vectors measured in [0, 180] degrees range. + /// + /// + /// Starting point of both vectors. + /// Ending point of the first vector. + /// Ending point of the second vector. + /// + /// Returns angle between specified vectors measured in degrees. + /// + public static float GetAngleBetweenVectors( Point startPoint, Point vector1end, Point vector2end ) + { + float x1 = vector1end.X - startPoint.X; + float y1 = vector1end.Y - startPoint.Y; + + float x2 = vector2end.X - startPoint.X; + float y2 = vector2end.Y - startPoint.Y; + + return (float) ( Math.Acos( ( x1 * x2 + y1 * y2 ) / ( Math.Sqrt( x1 * x1 + y1 * y1 ) * Math.Sqrt( x2 * x2 + y2 * y2 ) ) ) * 180.0 / Math.PI ); + } + + /// + /// Calculate minimum angle between two lines measured in [0, 90] degrees range. + /// + /// + /// A point on the first line. + /// Another point on the first line. + /// A point on the second line. + /// Another point on the second line. + /// + /// Returns minimum angle between two lines. + /// + /// It is preferred to use if it is required to calculate angle + /// multiple times for one of the lines. + /// + /// and are the same, + /// -OR- and are the same. + /// + public static float GetAngleBetweenLines( Point a1, Point a2, Point b1, Point b2 ) + { + Line line1 = Line.FromPoints( a1, a2 ); + return line1.GetAngleBetweenLines( Line.FromPoints( b1, b2 ) ); + } + } +} diff --git a/Sources/Math/Geometry/GrahamConvexHull.cs b/Sources/Math/Geometry/GrahamConvexHull.cs new file mode 100644 index 00000000..0cb341b8 --- /dev/null +++ b/Sources/Math/Geometry/GrahamConvexHull.cs @@ -0,0 +1,190 @@ +// AForge Math Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2011 +// contacts@aforgenet.com +// + +namespace AForge.Math.Geometry +{ + using System; + using System.Collections.Generic; + + /// + /// Graham scan algorithm for finding convex hull. + /// + /// + /// The class implements + /// Graham scan algorithm for finding convex hull + /// of a given set of points. + /// + /// Sample usage: + /// + /// // generate some random points + /// Random rand = new Random( ); + /// List<IntPoint> points = new List<IntPoint>( ); + /// + /// for ( int i = 0; i < 10; i++ ) + /// { + /// points.Add( new IntPoint( + /// rand.Next( 200 ) - 100, + /// rand.Next( 200 ) - 100 ) ); + /// } + /// + /// // find the convex hull + /// IConvexHullAlgorithm hullFinder = new GrahamConvexHull( ); + /// List<IntPoint> hull = hullFinder.FindHull( points ); + /// + /// + /// + public class GrahamConvexHull : IConvexHullAlgorithm + { + /// + /// Find convex hull for the given set of points. + /// + /// + /// Set of points to search convex hull for. + /// + /// Returns set of points, which form a convex hull for the given . + /// The first point in the list is the point with lowest X coordinate (and with lowest Y if there are + /// several points with the same X value). Points are provided in counter clockwise order + /// (Cartesian + /// coordinate system). + /// + public List FindHull( List points ) + { + // do nothing if there 3 points or less + if ( points.Count <= 3 ) + { + return new List( points ); + } + + List pointsToProcess = new List( ); + + // convert input points to points we can process + foreach ( IntPoint point in points ) + { + pointsToProcess.Add( new PointToProcess( point ) ); + } + + // find a point, with lowest X and lowest Y + int firstCornerIndex = 0; + PointToProcess firstCorner = pointsToProcess[0]; + + for ( int i = 1, n = pointsToProcess.Count; i < n; i++ ) + { + if ( ( pointsToProcess[i].X < firstCorner.X ) || + ( ( pointsToProcess[i].X == firstCorner.X ) && ( pointsToProcess[i].Y < firstCorner.Y ) ) ) + { + firstCorner = pointsToProcess[i]; + firstCornerIndex = i; + } + } + + // remove the just found point + pointsToProcess.RemoveAt( firstCornerIndex ); + + // find K (tangent of line's angle) and distance to the first corner + for ( int i = 0, n = pointsToProcess.Count; i < n; i++ ) + { + int dx = pointsToProcess[i].X - firstCorner.X; + int dy = pointsToProcess[i].Y - firstCorner.Y; + + // don't need square root, since it is not important in our case + pointsToProcess[i].Distance = dx * dx + dy * dy; + // tangent of lines angle + pointsToProcess[i].K = ( dx == 0 ) ? float.PositiveInfinity : (float) dy / dx; + } + + // sort points by angle and distance + pointsToProcess.Sort( ); + + List convexHullTemp = new List( ); + + // add first corner, which is always on the hull + convexHullTemp.Add( firstCorner ); + // add another point, which forms a line with lowest slope + convexHullTemp.Add( pointsToProcess[0] ); + pointsToProcess.RemoveAt( 0 ); + + PointToProcess lastPoint = convexHullTemp[1]; + PointToProcess prevPoint = convexHullTemp[0]; + + while ( pointsToProcess.Count != 0 ) + { + PointToProcess newPoint = pointsToProcess[0]; + + // skip any point, which has the same slope as the last one or + // has 0 distance to the first point + if ( ( newPoint.K == lastPoint.K ) || ( newPoint.Distance == 0 ) ) + { + pointsToProcess.RemoveAt( 0 ); + continue; + } + + // check if current point is on the left side from two last points + if ( ( newPoint.X - prevPoint.X ) * ( lastPoint.Y - newPoint.Y ) - ( lastPoint.X - newPoint.X ) * ( newPoint.Y - prevPoint.Y ) < 0 ) + { + // add the point to the hull + convexHullTemp.Add( newPoint ); + // and remove it from the list of points to process + pointsToProcess.RemoveAt( 0 ); + + prevPoint = lastPoint; + lastPoint = newPoint; + } + else + { + // remove the last point from the hull + convexHullTemp.RemoveAt( convexHullTemp.Count - 1 ); + + lastPoint = prevPoint; + prevPoint = convexHullTemp[convexHullTemp.Count - 2]; + } + } + + // convert points back + List convexHull = new List( ); + + foreach ( PointToProcess pt in convexHullTemp ) + { + convexHull.Add( pt.ToPoint( ) ); + } + + return convexHull; + } + + // Internal comparer for sorting points + private class PointToProcess : IComparable + { + public int X; + public int Y; + public float K; + public float Distance; + + public PointToProcess( IntPoint point ) + { + X = point.X; + Y = point.Y; + + K = 0; + Distance = 0; + } + + public int CompareTo( object obj ) + { + PointToProcess another = (PointToProcess) obj; + + return ( K < another.K ) ? -1 : ( K > another.K ) ? 1 : + ( ( Distance > another.Distance ) ? -1 : ( Distance < another.Distance ) ? 1 : 0 ); + } + + public IntPoint ToPoint( ) + { + return new IntPoint( X, Y ); + } + } + + } +} diff --git a/Sources/Math/Geometry/IConvexHullAlgorithm.cs b/Sources/Math/Geometry/IConvexHullAlgorithm.cs new file mode 100644 index 00000000..7f5c5dcc --- /dev/null +++ b/Sources/Math/Geometry/IConvexHullAlgorithm.cs @@ -0,0 +1,46 @@ +// AForge Math Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2011 +// contacts@aforgenet.com +// + +namespace AForge.Math.Geometry +{ + using System; + using System.Collections.Generic; + + using AForge; + + /// + /// Interface defining methods for algorithms, which search for convex hull of the specified points' set. + /// + /// + /// The interface defines a method, which should be implemented by different classes + /// performing convex hull search for specified set of points. + /// + /// All algorithms, implementing this interface, should follow two rules for the found convex hull: + /// + /// the first point in the returned list is the point with lowest X coordinate (and with lowest Y if + /// there are several points with the same X value); + /// points in the returned list are given in counter clockwise order + /// (Cartesian + /// coordinate system). + /// + /// + /// + /// + public interface IConvexHullAlgorithm + { + /// + /// Find convex hull for the given set of points. + /// + /// + /// Set of points to search convex hull for. + /// + /// Returns set of points, which form a convex hull for the given . + /// + List FindHull( List points ); + } +} diff --git a/Sources/Math/Geometry/IShapeOptimizer.cs b/Sources/Math/Geometry/IShapeOptimizer.cs new file mode 100644 index 00000000..2be3621b --- /dev/null +++ b/Sources/Math/Geometry/IShapeOptimizer.cs @@ -0,0 +1,44 @@ +// AForge Math Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2011 +// contacts@aforgenet.com +// + +namespace AForge.Math.Geometry +{ + using System; + using System.Collections.Generic; + using AForge; + + /// + /// Interface for shape optimizing algorithms. + /// + /// + /// The interface defines set of methods, which should be implemented + /// by shape optimizing algorithms. These algorithms take input shape, which is defined + /// by a set of points (corners of convex hull, etc.), and remove some insignificant points from it, + /// which has little influence on the final shape's look. + /// + /// The shape optimizing algorithms can be useful in conjunction with such algorithms + /// like convex hull searching, which usually may provide many hull points, where some + /// of them are insignificant and could be removed. + /// + /// For additional details about shape optimizing algorithms, documentation of + /// particular algorithm should be studied. + /// + /// + public interface IShapeOptimizer + { + /// + /// Optimize specified shape. + /// + /// + /// Shape to be optimized. + /// + /// Returns final optimized shape, which may have reduced amount of points. + /// + List OptimizeShape( List shape ); + } +} diff --git a/Sources/Math/Geometry/Line.cs b/Sources/Math/Geometry/Line.cs new file mode 100644 index 00000000..f7ee1586 --- /dev/null +++ b/Sources/Math/Geometry/Line.cs @@ -0,0 +1,447 @@ +// AForge Math Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2011 +// contacts@aforgenet.com +// + +namespace AForge.Math.Geometry +{ + using System; + using AForge; + + /// + /// The class encapsulates 2D line and provides some tool methods related to lines. + /// + /// + /// The class provides some methods which are related to lines: + /// angle between lines, distance to point, finding intersection point, etc. + /// + /// + /// Generally, the equation of the line is y = * x + + /// . However, when is an Infinity, + /// would normally be meaningless, and it would be + /// impossible to distinguish the line x = 5 from the line x = -5. Therefore, + /// if is or + /// , the line's equation is instead + /// x = . + /// + /// Sample usage: + /// + /// // create a line + /// Line line = Line.FromPoints( new Point( 0, 0 ), new Point( 3, 4 ) ); + /// // check if it is vertical or horizontal + /// if ( line.IsVertical || line.IsHorizontal ) + /// { + /// // ... + /// } + /// + /// // get intersection point with another line + /// Point intersection = line.GetIntersectionWith( + /// Line.FromPoints( new Point( 3, 0 ), new Point( 0, 4 ) ) ); + /// + /// + /// + public sealed class Line + { + // line's parameters from its equation: y = k * x + b; + // If k is an Infinity, the equation is x = b. + private readonly float k; // line's slope + private readonly float b; // Y-coordinate where line intersects Y-axis + + /// + /// Checks if the line vertical or not. + /// + /// + public bool IsVertical + { + get { return float.IsInfinity( k ); } + } + + /// + /// Checks if the line horizontal or not. + /// + public bool IsHorizontal + { + get { return ( k == 0 ); } + } + + /// + /// Gets the slope of the line. + /// + public float Slope { get { return k; } } + + /// + /// If not , gets the Line's Y-intercept. + /// If gets the line's X-intercept. + /// + public float Intercept { get { return b; } } + + /// + /// Creates a that goes through the two specified points. + /// + /// + /// One point on the line. + /// Another point on the line. + /// + /// Returns a representing the line between + /// and . + /// + /// Thrown if the two points are the same. + /// + public static Line FromPoints( Point point1, Point point2 ) + { + return new Line( point1, point2 ); + } + + /// + /// Creates a with the specified slope and intercept. + /// + /// + /// The slope of the line + /// The Y-intercept of the line, unless the slope is an + /// infinity, in which case the line's equation is "x = intercept" instead. + /// + /// Returns a representing the specified line. + /// + /// The construction here follows the same rules as for the rest of this class. + /// Most lines are expressed as y = slope * x + intercept. Vertical lines, however, are + /// x = intercept. This is indicated by being true or by + /// returning or + /// . + /// + public static Line FromSlopeIntercept( float slope, float intercept ) + { + return new Line( slope, intercept ); + } + + /// + /// Constructs a from a radius and an angle (in degrees). + /// + /// + /// The minimum distance from the line to the origin. + /// The angle of the vector from the origin to the line. + /// + /// Returns a representing the specified line. + /// + /// is the minimum distance from the origin + /// to the line, and is the counterclockwise rotation from + /// the positive X axis to the vector through the origin and normal to the line. + /// This means that if is in [0,180), the point on the line + /// closest to the origin is on the positive X or Y axes, or in quadrants I or II. Likewise, + /// if is in [180,360), the point on the line closest to the + /// origin is on the negative X or Y axes, or in quadrants III or IV. + /// + /// Thrown if radius is negative. + /// + public static Line FromRTheta( float radius, float theta ) + { + return new Line( radius, theta, false ); + } + + /// + /// Constructs a from a point and an angle (in degrees). + /// + /// + /// The minimum distance from the line to the origin. + /// The angle of the normal vector from the origin to the line. + /// + /// is the counterclockwise rotation from + /// the positive X axis to the vector through the origin and normal to the line. + /// This means that if is in [0,180), the point on the line + /// closest to the origin is on the positive X or Y axes, or in quadrants I or II. Likewise, + /// if is in [180,360), the point on the line closest to the + /// origin is on the negative X or Y axes, or in quadrants III or IV. + /// + /// Returns a representing the specified line. + /// + public static Line FromPointTheta( Point point, float theta ) + { + return new Line( point, theta ); + } + + #region Private Constructors + private Line( Point start, Point end ) + { + if ( start == end ) + { + throw new ArgumentException( "Start point of the line cannot be the same as its end point." ); + } + + k = ( end.Y - start.Y ) / ( end.X - start.X ); + b = float.IsInfinity( k ) ? start.X : start.Y - k * start.X; + } + + private Line( float slope, float intercept ) + { + k = slope; + b = intercept; + } + + private Line( float radius, float theta, bool unused ) + { + if ( radius < 0 ) + { + throw new ArgumentOutOfRangeException( "radius", radius, "Must be non-negative" ); + } + + theta *= (float) ( Math.PI / 180 ); + + float sine = (float) Math.Sin( theta ), cosine = (float) Math.Cos( theta ); + Point pt1 = new Point( radius * cosine, radius * sine ); + + // -1/tan, to get the slope of the line, and not the slope of the normal + k = -cosine / sine; + + if ( !float.IsInfinity( k ) ) + { + b = pt1.Y - k * pt1.X; + } + else + { + b = Math.Abs( radius ); + } + } + + private Line( Point point, float theta ) + { + theta *= (float) ( Math.PI / 180 ); + + k = (float) ( -1.0f / Math.Tan( theta ) ); + + if ( !float.IsInfinity( k ) ) + { + b = point.Y - k * point.X; + } + else + { + b = point.X; + } + } + #endregion + + /// + /// Calculate minimum angle between this line and the specified line measured in [0, 90] degrees range. + /// + /// + /// The line to find angle between. + /// + /// Returns minimum angle between lines. + /// + public float GetAngleBetweenLines( Line secondLine ) + { + float k2 = secondLine.k; + + bool isVertical1 = IsVertical; + bool isVertical2 = secondLine.IsVertical; + + // check if lines are parallel + if ( ( k == k2 ) || ( isVertical1 && isVertical2 ) ) + return 0; + + float angle = 0; + + if ( ( !isVertical1 ) && ( !isVertical2 ) ) + { + float tanPhi = ( ( k2 > k ) ? ( k2 - k ) : ( k - k2 ) ) / ( 1 + k * k2 ); + angle = (float) Math.Atan( tanPhi ); + } + else + { + // one of the lines is parallel to Y axis + + if ( isVertical1 ) + { + angle = (float) ( Math.PI / 2 - Math.Atan( k2 ) * Math.Sign( k2 ) ); + } + else + { + angle = (float) ( Math.PI / 2 - Math.Atan( k ) * Math.Sign( k ) ); + } + } + + // convert radians to degrees + angle *= (float) ( 180.0 / Math.PI ); + + if ( angle < 0 ) + { + angle = -angle; + } + + return angle; + } + + /// + /// Finds intersection point with the specified line. + /// + /// + /// Line to find intersection with. + /// + /// Returns intersection point with the specified line, or + /// if the lines are parallel and distinct. + /// + /// Thrown if the specified line is the same line as this line. + /// + public Point? GetIntersectionWith( Line secondLine ) + { + float k2 = secondLine.k; + float b2 = secondLine.b; + + bool isVertical1 = IsVertical; + bool isVertical2 = secondLine.IsVertical; + + Point? intersection = null; + + if ( ( k == k2 ) || ( isVertical1 && isVertical2 ) ) + { + if ( b == b2 ) + { + throw new InvalidOperationException( "Identical lines do not have an intersection point." ); + } + } + else + { + if ( isVertical1 ) + { + intersection = new Point( b, k2 * b + b2 ); + } + else if ( isVertical2 ) + { + intersection = new Point( b2, k * b2 + b ); + } + else + { + // the intersection is at x=(b2-b1)/(k1-k2), and y=k1*x+b1 + float x = ( b2 - b ) / ( k - k2 ); + intersection = new Point( x, k * x + b ); + } + } + + return intersection; + } + + /// + /// Finds, provided it exists, the intersection point with the specified . + /// + /// + /// to find intersection with. + /// + /// Returns intersection point with the specified , or , + /// if this line does not intersect with the segment. + /// + /// If the line and segment do not intersect, the method returns . + /// If the line and segment share multiple points, the method throws an . + /// + /// + /// Thrown if is a portion + /// of this line. + /// + public Point? GetIntersectionWith( LineSegment other ) + { + return other.GetIntersectionWith( this ); + } + + /// + /// Calculate Euclidean distance between a point and a line. + /// + /// + /// The point to calculate distance to. + /// + /// Returns the Euclidean distance between this line and the specified point. Unlike + /// , this returns the distance from the infinite line. (0,0) is 0 units + /// from the line defined by (0,5) and (0,8), but is 5 units from the segment with those endpoints. + /// + public float DistanceToPoint( Point point ) + { + float distance; + + if ( !IsVertical ) + { + float div = (float) Math.Sqrt( k * k + 1 ); + distance = Math.Abs( ( k * point.X + b - point.Y ) / div ); + } + else + { + distance = Math.Abs( b - point.X ); + } + + return distance; + } + + /// + /// Equality operator - checks if two lines have equal parameters. + /// + /// + /// First line to check. + /// Second line to check. + /// + /// Returns if parameters of specified + /// lines are equal. + /// + public static bool operator ==( Line line1, Line line2 ) + { + if ( System.Object.ReferenceEquals( line1, line2 ) ) + { + return true; + } + + if ( ( (object) line1 == null ) || ( (object) line2 == null ) ) + { + return false; + } + + return ( ( line1.k == line2.k ) && ( line1.b == line2.b ) ); + } + + /// + /// Inequality operator - checks if two lines have different parameters. + /// + /// + /// First line to check. + /// Second line to check. + /// + /// Returns if parameters of specified + /// lines are not equal. + /// + public static bool operator !=( Line line1, Line line2 ) + { + return !( line1 == line2 ); + } + + /// + /// Check if this instance of equals to the specified one. + /// + /// + /// Another line to check equalty to. + /// + /// Return if objects are equal. + /// + public override bool Equals( object obj ) + { + return ( obj is Line ) ? ( this == (Line) obj ) : false; + } + + /// + /// Get hash code for this instance. + /// + /// + /// Returns the hash code for this instance. + /// + public override int GetHashCode( ) + { + return k.GetHashCode( ) + b.GetHashCode( ); + } + + /// + /// Get string representation of the class. + /// + /// + /// Returns string, which contains values of the like in readable form. + /// + public override string ToString( ) + { + return string.Format( System.Globalization.CultureInfo.InvariantCulture, "k = {0}, b = {1}", k, b ); + } + } +} diff --git a/Sources/Math/Geometry/LineSegment.cs b/Sources/Math/Geometry/LineSegment.cs new file mode 100644 index 00000000..ed7ddc95 --- /dev/null +++ b/Sources/Math/Geometry/LineSegment.cs @@ -0,0 +1,372 @@ +// AForge Math Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2011 +// contacts@aforgenet.com +// + +namespace AForge.Math.Geometry +{ + using System; + + /// + /// The class encapsulates 2D line segment and provides some tool methods related to lines. + /// + /// + /// The class provides some methods which are related to line segments: + /// distance to point, finding intersection point, etc. + /// + /// + /// A line segment may be converted to a . + /// + /// Sample usage: + /// + /// // create a segment + /// LineSegment segment = new LineSegment( new Point( 0, 0 ), new Point( 3, 4 ) ); + /// // get segment's length + /// float length = segment.Length; + /// + /// // get intersection point with a line + /// Point? intersection = segment.GetIntersectionWith( + /// new Line( new Point( -3, 8 ), new Point( 0, 4 ) ) ); + /// + /// + /// + public sealed class LineSegment + { + // segment's start/end point + private readonly Point start; + private readonly Point end; + + private readonly Line line; + + /// + /// Start point of the line segment. + /// + public Point Start + { + get { return start; } + } + + /// + /// End point of the line segment. + /// + public Point End + { + get { return end; } + } + + /// + /// Get segment's length - Euclidean distance between its and points. + /// + public float Length + { + get { return start.DistanceTo( end ); } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Segment's start point. + /// Segment's end point. + /// + /// Thrown if the two points are the same. + /// + public LineSegment( Point start, Point end ) + { + line = Line.FromPoints( start, end ); + this.start = start; + this.end = end; + } + + /// + /// Converts this to a by discarding + /// its endpoints and extending it infinitely in both directions. + /// + /// + /// The segment to convert to a . + /// + /// Returns a that contains this . + /// + public static explicit operator Line( LineSegment segment ) + { + return segment.line; + } + + /// + /// Calculate Euclidean distance between a point and a finite line segment. + /// + /// + /// The point to calculate the distance to. + /// + /// Returns the Euclidean distance between this line segment and the specified point. Unlike + /// , this returns the distance from the finite segment. (0,0) is 5 units + /// from the segment (0,5)-(0,8), but is 0 units from the line through those points. + /// + public float DistanceToPoint( Point point ) + { + float segmentDistance; + + switch ( LocateProjection( point ) ) + { + case ProjectionLocation.RayA: + segmentDistance = point.DistanceTo( start ); + break; + case ProjectionLocation.RayB: + segmentDistance = point.DistanceTo( end ); + break; + default: + segmentDistance = line.DistanceToPoint( point ); + break; + }; + + return segmentDistance; + } + + /// + /// Finds, provided it exists, the intersection point with the specified . + /// + /// + /// to find intersection with. + /// + /// Returns intersection point with the specified , or , if + /// the two segments do not intersect. + /// + /// If the two segments do not intersect, the method returns . If the two + /// segments share multiple points, this throws an . + /// + /// + /// Thrown if the segments overlap - if they have + /// multiple points in common. + /// + public Point? GetIntersectionWith( LineSegment other ) + { + Point? result = null; + + if ( ( line.Slope == other.line.Slope ) || ( line.IsVertical && other.line.IsVertical ) ) + { + if ( line.Intercept == other.line.Intercept ) + { + // Collinear segments. Inspect and handle. + // Consider this segment AB and other as CD. (start/end in both cases) + // There are three cases: + // 0 shared points: C and D both project onto the same ray of AB + // 1 shared point: One of A or B equals one of C or D, and the other of C/D + // projects on the correct ray. + // Many shared points. + + ProjectionLocation projC = LocateProjection( other.start ), projD = LocateProjection( other.end ); + + if ( ( projC != ProjectionLocation.SegmentAB ) && ( projC == projD ) ) + { + // no shared points + result = null; + } + else if ( ( ( start == other.start ) && ( projD == ProjectionLocation.RayA ) ) || + ( ( start == other.end ) && ( projC == ProjectionLocation.RayA ) ) ) + { + // shared start point + result = start; + } + else if ( ( ( end == other.start ) && ( projD == ProjectionLocation.RayB ) ) || + ( ( end == other.end ) && ( projC == ProjectionLocation.RayB ) ) ) + { + // shared end point + result = end; + } + else + { + // overlapping + throw new InvalidOperationException( "Overlapping segments do not have a single intersection point." ); + } + } + } + else + { + result = GetIntersectionWith( other.line ); + + if ( ( result.HasValue ) && ( other.LocateProjection( result.Value ) != ProjectionLocation.SegmentAB ) ) + { + // the intersection is on the extended line of this segment + result = null; + } + } + + return result; + } + + /// + /// Finds, provided it exists, the intersection point with the specified . + /// + /// + /// to find intersection with. + /// + /// Returns intersection point with the specified , or , if + /// the line does not intersect with this segment. + /// + /// If the line and the segment do not intersect, the method returns . If the line + /// and the segment share multiple points, the method throws an . + /// + /// + /// Thrown if this segment is a portion of + /// line. + /// + public Point? GetIntersectionWith( Line other ) + { + Point? result; + + if ( ( line.Slope == other.Slope ) || ( line.IsVertical && other.IsVertical ) ) + { + if ( line.Intercept == other.Intercept ) throw new InvalidOperationException( "Segment is a portion of the specified line." ); + + // unlike Line.GetIntersectionWith(Line), this does not throw on parallel distinct lines + result = null; + } + else + { + result = line.GetIntersectionWith( other ); + } + + if ( ( result.HasValue ) && ( LocateProjection( result.Value ) != ProjectionLocation.SegmentAB ) ) + { + // the intersection is on this segment's extended line, but not on the segment itself + result = null; + } + + return result; + } + + // Represents the location of a projection of a point on the line that contains this segment. + // If the point projects to A,B, or anything between them, it is SegmentAB. + // If it projects beyond A, it's RayA; if it projects beyond B, it's RayB. + private enum ProjectionLocation { RayA, SegmentAB, RayB } + + // Get type of point's projections to this line segment + private ProjectionLocation LocateProjection( Point point ) + { + // Modified from http://www.codeguru.com/forum/showthread.php?t=194400 + + /* How do I find the distance from a point to a line segment? + + Let the point be C (Cx,Cy) and the line be AB (Ax,Ay) to (Bx,By). + Let P be the point of perpendicular projection of C on AB. The parameter + r, which indicates P's position along AB, is computed by the dot product + of AC and AB divided by the square of the length of AB: + + (1) AC dot AB + r = --------- + ||AB||^2 + + r has the following meaning: + + r=0 P = A + r=1 P = B + r<0 P is on the backward extension of AB (and distance C-AB is distance C-A) + r>1 P is on the forward extension of AB (and distance C-AB is distance C-B) + 0 denomenator ) ? ProjectionLocation.RayB : ProjectionLocation.SegmentAB; + + return result; + } + + /// + /// Equality operator - checks if two line segments have equal parameters. + /// + /// + /// First line segment to check. + /// Second line segment to check. + /// + /// Returns if parameters of specified + /// line segments are equal. + /// + public static bool operator ==( LineSegment line1, LineSegment line2 ) + { + if ( System.Object.ReferenceEquals( line1, line2 ) ) + { + return true; + } + + if ( ( (object) line1 == null ) || ( (object) line2 == null ) ) + { + return false; + } + + return ( ( line1.start == line2.start ) && ( line1.end == line2.end ) ); + } + + /// + /// Inequality operator - checks if two lines have different parameters. + /// + /// + /// First line segment to check. + /// Second line segment to check. + /// + /// Returns if parameters of specified + /// line segments are not equal. + /// + public static bool operator !=( LineSegment line1, LineSegment line2 ) + { + return !( line1 == line2 ); + } + + /// + /// Check if this instance of equals to the specified one. + /// + /// + /// Another line segment to check equalty to. + /// + /// Return if objects are equal. + /// + public override bool Equals( object obj ) + { + return ( obj is LineSegment ) ? ( this == (LineSegment) obj ) : false; + } + + /// + /// Get hash code for this instance. + /// + /// + /// Returns the hash code for this instance. + /// + public override int GetHashCode( ) + { + return start.GetHashCode( ) + end.GetHashCode( ); + } + + /// + /// Get string representation of the class. + /// + /// + /// Returns string, which contains values of the like in readable form. + /// + public override string ToString( ) + { + return string.Format( System.Globalization.CultureInfo.InvariantCulture, "({0}) -> ({1})", start, end ); + } + } +} diff --git a/Sources/Math/Geometry/LineStraighteningOptimizer.cs b/Sources/Math/Geometry/LineStraighteningOptimizer.cs new file mode 100644 index 00000000..16790709 --- /dev/null +++ b/Sources/Math/Geometry/LineStraighteningOptimizer.cs @@ -0,0 +1,173 @@ +// AForge Math Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2011 +// contacts@aforgenet.com +// + +namespace AForge.Math.Geometry +{ + using System; + using System.Collections.Generic; + using AForge; + + /// + /// Shape optimizer, which removes points within close range to shapes' body. + /// + /// + /// This shape optimizing algorithm checks all points of the shape and + /// removes those of them, which are in a certain distance to a line connecting previous and + /// the next points. In other words, it goes through all adjacent edges of a shape and checks + /// what is the distance between the corner formed by these two edges and a possible edge, which + /// could be used as substitution of these edges. If the distance is equal or smaller than + /// the specified value, then the point is removed, + /// so the two edges are substituted by a single one. When optimization process is done, + /// the new shape has reduced amount of points and none of the removed points are further away + /// from the new shape than the specified limit. + /// + /// The shape optimizer does not optimize shapes to less than 3 points, so optimized + /// shape always will have at least 3 points. + /// + /// + /// For example, the below circle shape comprised of 65 points, can be optimized to 8 points + /// by setting to 10.
+ /// + ///
+ ///
+ /// + public class LineStraighteningOptimizer : IShapeOptimizer + { + private float maxDistanceToRemove = 5; + + /// + /// Maximum allowed distance between removed points and optimized shape, [0, ∞). + /// + /// + /// The property sets maximum allowed distance between points removed from original + /// shape and optimized shape - none of the removed points are further away + /// from the new shape than the specified limit. + /// + /// + /// Default value is set to 5. + /// + public float MaxDistanceToRemove + { + get { return maxDistanceToRemove; } + set { maxDistanceToRemove = Math.Max( 0, value ); } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public LineStraighteningOptimizer( ) { } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Maximum allowed distance between removed points + /// and optimized shape (see ). + /// + public LineStraighteningOptimizer( float maxDistanceToRemove ) + { + this.maxDistanceToRemove = maxDistanceToRemove; + } + + /// + /// Optimize specified shape. + /// + /// + /// Shape to be optimized. + /// + /// Returns final optimized shape, which may have reduced amount of points. + /// + public List OptimizeShape( List shape ) + { + // optimized shape + List optimizedShape = new List( ); + // list of recently removed points + List recentlyRemovedPoints = new List( ); + + if ( shape.Count <= 3 ) + { + // do nothing if shape has 3 points or less + optimizedShape.AddRange( shape ); + } + else + { + float distance = 0; + + // add first 2 points to the new shape + optimizedShape.Add( shape[0] ); + optimizedShape.Add( shape[1] ); + int pointsInOptimizedHull = 2; + + for ( int i = 2, n = shape.Count; i < n; i++ ) + { + // add new point + optimizedShape.Add( shape[i] ); + pointsInOptimizedHull++; + + // add new candidate for removing to the list + recentlyRemovedPoints.Add( optimizedShape[pointsInOptimizedHull - 2] ); + + // calculate maximum distance between new candidate line and recently removed point + PointsCloud.GetFurthestPointFromLine( recentlyRemovedPoints, + optimizedShape[pointsInOptimizedHull - 3], optimizedShape[pointsInOptimizedHull - 1], + out distance ); + + if ( ( distance <= maxDistanceToRemove ) && + ( ( pointsInOptimizedHull > 3 ) || ( i < n - 1 ) ) ) + { + optimizedShape.RemoveAt( pointsInOptimizedHull - 2 ); + pointsInOptimizedHull--; + } + else + { + // don't need to remove the last candidate point + recentlyRemovedPoints.Clear( ); + } + } + + if ( pointsInOptimizedHull > 3 ) + { + // check the last point + recentlyRemovedPoints.Add( optimizedShape[pointsInOptimizedHull - 1] ); + + PointsCloud.GetFurthestPointFromLine( recentlyRemovedPoints, + optimizedShape[pointsInOptimizedHull - 2], optimizedShape[0], + out distance ); + + if ( distance <= maxDistanceToRemove ) + { + optimizedShape.RemoveAt( pointsInOptimizedHull - 1 ); + pointsInOptimizedHull--; + } + else + { + recentlyRemovedPoints.Clear( ); + } + + if ( pointsInOptimizedHull > 3 ) + { + // check the first point + recentlyRemovedPoints.Add( optimizedShape[0] ); + + PointsCloud.GetFurthestPointFromLine( recentlyRemovedPoints, + optimizedShape[pointsInOptimizedHull - 1], optimizedShape[1], + out distance ); + + if ( distance <= maxDistanceToRemove ) + { + optimizedShape.RemoveAt( 0 ); + } + } + } + } + + return optimizedShape; + } + } +} diff --git a/Sources/Math/Geometry/POSIT.cs b/Sources/Math/Geometry/POSIT.cs new file mode 100644 index 00000000..5b35816d --- /dev/null +++ b/Sources/Math/Geometry/POSIT.cs @@ -0,0 +1,203 @@ +// AForge Math Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2011 +// contacts@aforgenet.com +// + +namespace AForge.Math.Geometry +{ + using System; + using AForge; + using AForge.Math; + + /// + /// 3D pose estimation algorithm. + /// + /// + /// The class implements an algorithm for 3D object's pose estimation from it's + /// 2D coordinates obtained by perspective projection, when the object is described none coplanar points. + /// The idea of the implemented math and algorithm is described in "Model-Based Object Pose in 25 + /// Lines of Code" paper written by Daniel F. DeMenthon and Larry S. Davis (the implementation of + /// the algorithm is almost 1 to 1 translation of the pseudo code given by the paper, so should + /// be easy to follow). + /// + /// At this point the implementation works only with models described by 4 points, which is + /// the minimum number of points enough for 3D pose estimation. + /// + /// The 4 model's point must not be coplanar, i.e. must not reside all within + /// same planer. See for coplanar case. + /// + /// Read 3D Pose Estimation article for + /// additional information and samples. + /// + /// Sample usage: + /// + /// // points of real object - model + /// Vector3[] positObject = new Vector3[4] + /// { + /// new Vector3( 28, 28, -28 ), + /// new Vector3( -28, 28, -28 ), + /// new Vector3( 28, -28, -28 ), + /// new Vector3( 28, 28, 28 ), + /// }; + /// // focal length of camera used to capture the object + /// float focalLength = 640; // depends on your camera or projection system + /// // initialize POSIT object + /// Posit posit = new Posit( positObject, focalLength ); + /// + /// // 2D points of te object - projection + /// AForge.Point[] projectedPoints = new AForge.Point[4] + /// { + /// new AForge.Point( -4, 29 ), + /// new AForge.Point( -180, 86 ), + /// new AForge.Point( -5, -102 ), + /// new AForge.Point( 76, 137 ), + /// }; + /// // estimate pose + /// Matrix3x3 rotationMatrix; + /// Vector3 translationVector; + /// posit.EstimatePose( projectedPoints, + /// out rotationMatrix, out translationVector ); + /// + /// + /// + /// + /// + public class Posit + { + // camera's focal length + private float focalLength; + + // points of the model to estimate position for + private Vector3[] modelPoints; + // 3 vectors of the model kept as a matrix + private Matrix3x3 modelVectors; + // pseudoinverse of the model vectors matrix + private Matrix3x3 modelPseudoInverse; + + /// + /// Coordinates of the model points which pose should be estimated. + /// + public Vector3[] Model + { + get { return (Vector3[]) modelPoints.Clone( ); } + } + + /// + /// Effective focal length of the camera used to capture the model. + /// + public float FocalLength + { + get { return focalLength; } + set { focalLength = value; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Array of vectors containing coordinates of four real model's point (points + /// must not be on the same plane). + /// Effective focal length of the camera used to capture the model. + /// + /// The model must have 4 points. + /// + public Posit( Vector3[] model, float focalLength ) + { + if ( model.Length != 4 ) + { + throw new ArgumentException( "The model must have 4 points." ); + } + + this.focalLength = focalLength; + modelPoints = (Vector3[]) model.Clone( ); + + // compute model vectors + modelVectors = Matrix3x3.CreateFromRows( + model[1] - model[0], + model[2] - model[0], + model[3] - model[0] ); + + // compute pseudo inverse matrix + modelPseudoInverse = modelVectors.PseudoInverse( ); + } + + private const float stop_epsilon = 1.0e-4f; + + /// + /// Estimate pose of a model from it's projected 2D coordinates. + /// + /// + /// 4 2D points of the model's projection. + /// Gets object's rotation. + /// Gets object's translation. + /// + /// 4 points must be be given for pose estimation. + /// + public void EstimatePose( Point[] points, out Matrix3x3 rotation, out Vector3 translation ) + { + if ( points.Length != 4 ) + { + throw new ArgumentException( "4 points must be be given for pose estimation." ); + } + + float Z0 = 0, scale = 1; + + Vector3 X0 = new Vector3( points[0].X ); + Vector3 Y0 = new Vector3( points[0].Y ); + + Vector3 XI = new Vector3( points[1].X, points[2].X, points[3].X ); + Vector3 YI = new Vector3( points[1].Y, points[2].Y, points[3].Y ); + + int count = 0; + + Vector3 iVector = new Vector3( ); + Vector3 jVector = new Vector3( ); + Vector3 kVector = new Vector3( ); + Vector3 imageXs = new Vector3( ); + Vector3 imageYs = new Vector3( ); + + Vector3 eps = new Vector3( 1 ); + + for ( ; count < 100; count++ ) + { + // calculate new scale orthographic projection (SOP) + imageXs = XI * eps - X0; + imageYs = YI * eps - Y0; + + // calculate I and J vectors + iVector = modelPseudoInverse * imageXs; + jVector = modelPseudoInverse * imageYs; + // convert them to unit vectors i and j + float iNorm = iVector.Normalize( ); + float jNorm = jVector.Normalize( ); + // scale of projection + scale = ( iNorm + jNorm ) / 2; + // calculate n vector k + kVector = Vector3.Cross( iVector, jVector ); + // z-coordinate Z0 of the translation vector + Z0 = focalLength / scale; + + // calculate new epsilon values + Vector3 oldEps = eps; + eps = ( modelVectors * kVector ) / Z0 + 1; + + // check if it is time to stop + if ( ( eps - oldEps ).Abs( ).Max < stop_epsilon ) + break; + } + + // create rotation matrix + rotation = Matrix3x3.CreateFromRows( iVector, jVector, kVector ); + + // create translation vector + Vector3 temp = rotation * modelPoints[0]; + translation = new Vector3( + points[0].X / scale - temp.X, + points[0].Y / scale - temp.Y, + focalLength / scale ); + } + } +} diff --git a/Sources/Math/Geometry/PointsCloud.cs b/Sources/Math/Geometry/PointsCloud.cs new file mode 100644 index 00000000..37611b1a --- /dev/null +++ b/Sources/Math/Geometry/PointsCloud.cs @@ -0,0 +1,608 @@ +// AForge Math Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2011 +// contacts@aforgenet.com +// + +namespace AForge.Math.Geometry +{ + using System; + using System.Collections.Generic; + using AForge; + + /// + /// Set of tools for processing collection of points in 2D space. + /// + /// + /// The static class contains set of routines, which provide different + /// operations with collection of points in 2D space. For example, finding the + /// furthest point from a specified point or line. + /// + /// Sample usage: + /// + /// // create points' list + /// List<IntPoint> points = new List<IntPoint>( ); + /// points.Add( new IntPoint( 10, 10 ) ); + /// points.Add( new IntPoint( 20, 15 ) ); + /// points.Add( new IntPoint( 15, 30 ) ); + /// points.Add( new IntPoint( 40, 12 ) ); + /// points.Add( new IntPoint( 30, 20 ) ); + /// // get furthest point from the specified point + /// IntPoint p1 = PointsCloud.GetFurthestPoint( points, new IntPoint( 15, 15 ) ); + /// Console.WriteLine( p1.X + ", " + p1.Y ); + /// // get furthest point from line + /// IntPoint p2 = PointsCloud.GetFurthestPointFromLine( points, + /// new IntPoint( 50, 0 ), new IntPoint( 0, 50 ) ); + /// Console.WriteLine( p2.X + ", " + p2.Y ); + /// + /// + /// + public static class PointsCloud + { + /// + /// Shift cloud by adding specified value to all points in the collection. + /// + /// + /// Collection of points to shift their coordinates. + /// Point to shift by. + /// + public static void Shift( IList cloud, IntPoint shift ) + { + for ( int i = 0, n = cloud.Count; i < n; i++ ) + { + cloud[i] = cloud[i] + shift; + } + } + + /// + /// Get bounding rectangle of the specified list of points. + /// + /// + /// Collection of points to get bounding rectangle for. + /// Point comprised of smallest X and Y coordinates. + /// Point comprised of biggest X and Y coordinates. + /// + public static void GetBoundingRectangle( IEnumerable cloud, out IntPoint minXY, out IntPoint maxXY ) + { + int minX = int.MaxValue; + int maxX = int.MinValue; + int minY = int.MaxValue; + int maxY = int.MinValue; + + foreach ( IntPoint pt in cloud ) + { + int x = pt.X; + int y = pt.Y; + + // check X coordinate + if ( x < minX ) + minX = x; + if ( x > maxX ) + maxX = x; + + // check Y coordinate + if ( y < minY ) + minY = y; + if ( y > maxY ) + maxY = y; + } + + if ( minX > maxX ) // if no point appeared to set either minX or maxX + throw new ArgumentException( "List of points can not be empty." ); + + minXY = new IntPoint( minX, minY ); + maxXY = new IntPoint( maxX, maxY ); + } + + /// + /// Get center of gravity for the specified list of points. + /// + /// + /// List of points to calculate center of gravity for. + /// + /// Returns center of gravity (mean X-Y values) for the specified list of points. + /// + public static Point GetCenterOfGravity( IEnumerable cloud ) + { + int numberOfPoints = 0; + float xSum = 0, ySum = 0; + + foreach ( IntPoint pt in cloud ) + { + xSum += pt.X; + ySum += pt.Y; + numberOfPoints++; + } + + xSum /= numberOfPoints; + ySum /= numberOfPoints; + + return new Point( xSum, ySum ); + } + + /// + /// Find furthest point from the specified point. + /// + /// + /// Collection of points to search furthest point in. + /// The point to search furthest point from. + /// + /// Returns a point, which is the furthest away from the . + /// + public static IntPoint GetFurthestPoint( IEnumerable cloud, IntPoint referencePoint ) + { + IntPoint furthestPoint = referencePoint; + float maxDistance = -1; + + int rx = referencePoint.X; + int ry = referencePoint.Y; + + foreach ( IntPoint point in cloud ) + { + int dx = rx - point.X; + int dy = ry - point.Y; + // we are not calculating square root for finding "real" distance, + // since it is really not important for finding furthest point + float distance = dx * dx + dy * dy; + + if ( distance > maxDistance ) + { + maxDistance = distance; + furthestPoint = point; + } + } + + return furthestPoint; + } + + /// + /// Find two furthest points from the specified line. + /// + /// + /// Collection of points to search furthest points in. + /// First point forming the line. + /// Second point forming the line. + /// First found furthest point. + /// Second found furthest point (which is on the + /// opposite side from the line compared to the ); + /// + /// The method finds two furthest points from the specified line, + /// where one point is on one side from the line and the second point is on + /// another side from the line. + /// + public static void GetFurthestPointsFromLine( IEnumerable cloud, IntPoint linePoint1, IntPoint linePoint2, + out IntPoint furthestPoint1, out IntPoint furthestPoint2 ) + { + float d1, d2; + + GetFurthestPointsFromLine( cloud, linePoint1, linePoint2, + out furthestPoint1, out d1, out furthestPoint2, out d2 ); + } + + /// + /// Find two furthest points from the specified line. + /// + /// + /// Collection of points to search furthest points in. + /// First point forming the line. + /// Second point forming the line. + /// First found furthest point. + /// Distance between the first found point and the given line. + /// Second found furthest point (which is on the + /// opposite side from the line compared to the ); + /// Distance between the second found point and the given line. + /// + /// The method finds two furthest points from the specified line, + /// where one point is on one side from the line and the second point is on + /// another side from the line. + /// + public static void GetFurthestPointsFromLine( IEnumerable cloud, IntPoint linePoint1, IntPoint linePoint2, + out IntPoint furthestPoint1, out float distance1, out IntPoint furthestPoint2, out float distance2 ) + { + furthestPoint1 = linePoint1; + distance1 = 0; + + furthestPoint2 = linePoint2; + distance2 = 0; + + if ( linePoint2.X != linePoint1.X ) + { + // line's equation y(x) = k * x + b + float k = (float) ( linePoint2.Y - linePoint1.Y ) / ( linePoint2.X - linePoint1.X ); + float b = linePoint1.Y - k * linePoint1.X; + + float div = (float) Math.Sqrt( k * k + 1 ); + float distance = 0; + + foreach ( IntPoint point in cloud ) + { + distance = ( k * point.X + b - point.Y ) / div; + + if ( distance > distance1 ) + { + distance1 = distance; + furthestPoint1 = point; + } + if ( distance < distance2 ) + { + distance2 = distance; + furthestPoint2 = point; + } + } + } + else + { + int lineX = linePoint1.X; + float distance = 0; + + foreach ( IntPoint point in cloud ) + { + distance = lineX - point.X; + + if ( distance > distance1 ) + { + distance1 = distance; + furthestPoint1 = point; + } + if ( distance < distance2 ) + { + distance2 = distance; + furthestPoint2 = point; + } + } + } + + distance2 = -distance2; + } + + /// + /// Find the furthest point from the specified line. + /// + /// + /// Collection of points to search furthest point in. + /// First point forming the line. + /// Second point forming the line. + /// + /// Returns a point, which is the furthest away from the + /// specified line. + /// + /// The method finds the furthest point from the specified line. + /// Unlike the + /// method, this method find only one point, which is the furthest away from the line + /// regardless of side from the line. + /// + public static IntPoint GetFurthestPointFromLine( IEnumerable cloud, IntPoint linePoint1, IntPoint linePoint2 ) + { + float d; + + return GetFurthestPointFromLine( cloud, linePoint1, linePoint2, out d ); + } + + /// + /// Find the furthest point from the specified line. + /// + /// + /// Collection of points to search furthest points in. + /// First point forming the line. + /// Second point forming the line. + /// Distance between the furthest found point and the given line. + /// + /// Returns a point, which is the furthest away from the + /// specified line. + /// + /// The method finds the furthest point from the specified line. + /// Unlike the + /// method, this method find only one point, which is the furthest away from the line + /// regardless of side from the line. + /// + public static IntPoint GetFurthestPointFromLine( IEnumerable cloud, IntPoint linePoint1, IntPoint linePoint2, out float distance ) + { + IntPoint furthestPoint = linePoint1; + distance = 0; + + if ( linePoint2.X != linePoint1.X ) + { + // line's equation y(x) = k * x + b + float k = (float) ( linePoint2.Y - linePoint1.Y ) / ( linePoint2.X - linePoint1.X ); + float b = linePoint1.Y - k * linePoint1.X; + + float div = (float) Math.Sqrt( k * k + 1 ); + float pointDistance = 0; + + foreach ( IntPoint point in cloud ) + { + pointDistance = Math.Abs( ( k * point.X + b - point.Y ) / div ); + + if ( pointDistance > distance ) + { + distance = pointDistance; + furthestPoint = point; + } + } + } + else + { + int lineX = linePoint1.X; + float pointDistance = 0; + + foreach ( IntPoint point in cloud ) + { + distance = Math.Abs( lineX - point.X ); + + if ( pointDistance > distance ) + { + distance = pointDistance; + furthestPoint = point; + } + } + } + + return furthestPoint; + } + + /// + /// Relative distortion limit allowed for quadrilaterals, [0.0, 0.25]. + /// + /// + /// The value of this property is used to calculate distortion limit used by + /// , when processing potential corners and making decision + /// if the provided points form a quadrilateral or a triangle. The distortion limit is + /// calculated as: + /// + /// distrtionLimit = RelativeDistortionLimit * ( W * H ) / 2, + /// + /// where W and H are width and height of the "points cloud" passed to the + /// . + /// + /// + /// To explain the idea behind distortion limit, let’s suppose that quadrilateral finder routine found + /// the next candidates for corners:
+ ///
+ /// As we can see on the above picture, the shape there potentially can be a triangle, but not quadrilateral + /// (suppose that points list comes from a hand drawn picture or acquired from camera, so some + /// inaccuracy may exist). It may happen that the D point is just a distortion (noise, etc). + /// So the check what is the distance between a potential corner + /// (D in this case) and a line connecting two adjacent points (AB in this case). If the distance is smaller + /// then the distortion limit, then the point may be rejected, so the shape turns into triangle. + ///
+ /// + /// An exception is the case when both C and D points are very close to the AB line, + /// so both their distances are less than distortion limit. In this case both points will be accepted as corners - + /// the shape is just a flat quadrilateral. + /// + /// Default value is set to 0.1. + ///
+ /// + public static float QuadrilateralRelativeDistortionLimit + { + get { return quadrilateralRelativeDistortionLimit; } + set { quadrilateralRelativeDistortionLimit = Math.Max( 0.0f, Math.Min( 0.25f, value ) ); } + } + private static float quadrilateralRelativeDistortionLimit = 0.1f; + + /// + /// Find corners of quadrilateral or triangular area, which contains the specified collection of points. + /// + /// + /// Collection of points to search quadrilateral for. + /// + /// Returns a list of 3 or 4 points, which are corners of the quadrilateral or + /// triangular area filled by specified collection of point. The first point in the list + /// is the point with lowest X coordinate (and with lowest Y if there are several points + /// with the same X value). The corners are provided in counter clockwise order + /// (Cartesian + /// coordinate system). + /// + /// The method makes an assumption that the specified collection of points + /// form some sort of quadrilateral/triangular area. With this assumption it tries to find corners + /// of the area. + /// + /// The method does not search for bounding quadrilateral/triangular area, + /// where all specified points are inside of the found quadrilateral/triangle. Some of the + /// specified points potentially may be outside of the found quadrilateral/triangle, since the + /// method takes corners only from the specified collection of points, but does not calculate such + /// to form true bounding quadrilateral/triangle. + /// + /// See property for additional information. + /// + /// + public static List FindQuadrilateralCorners( IEnumerable cloud ) + { + // quadrilateral's corners + List corners = new List( ); + + // get bounding rectangle of the points list + IntPoint minXY, maxXY; + PointsCloud.GetBoundingRectangle( cloud, out minXY, out maxXY ); + // get cloud's size + IntPoint cloudSize = maxXY - minXY; + // calculate center point + IntPoint center = minXY + cloudSize / 2; + // acceptable deviation limit + float distortionLimit = quadrilateralRelativeDistortionLimit * ( cloudSize.X + cloudSize.Y ) / 2; + + // get the furthest point from (0,0) + IntPoint point1 = PointsCloud.GetFurthestPoint( cloud, center ); + // get the furthest point from the first point + IntPoint point2 = PointsCloud.GetFurthestPoint( cloud, point1 ); + + corners.Add( point1 ); + corners.Add( point2 ); + + // get two furthest points from line + IntPoint point3, point4; + float distance3, distance4; + + PointsCloud.GetFurthestPointsFromLine( cloud, point1, point2, + out point3, out distance3, out point4, out distance4 ); + + // ideally points 1 and 2 form a diagonal of the + // quadrilateral area, and points 3 and 4 form another diagonal + + // but if one of the points (3 or 4) is very close to the line + // connecting points 1 and 2, then it is one the same line ... + // which means corner was not found. + // in this case we deal with a trapezoid or triangle, where + // (1-2) line is one of it sides. + + // another interesting case is when both points (3) and (4) are + // very close the (1-2) line. in this case we may have just a flat + // quadrilateral. + + if ( + ( ( distance3 >= distortionLimit ) && ( distance4 >= distortionLimit ) ) || + + ( ( distance3 < distortionLimit ) && ( distance3 != 0 ) && + ( distance4 < distortionLimit ) && ( distance4 != 0 ) ) ) + { + // don't add one of the corners, if the point is already in the corners list + // (this may happen when both #3 and #4 points are very close to the line + // connecting #1 and #2) + if ( !corners.Contains( point3 ) ) + { + corners.Add( point3 ); + } + if ( !corners.Contains( point4 ) ) + { + corners.Add( point4 ); + } + } + else + { + // it seems that we deal with kind of trapezoid, + // where point 1 and 2 are on the same edge + + IntPoint tempPoint = ( distance3 > distance4 ) ? point3 : point4; + + // try to find 3rd point + PointsCloud.GetFurthestPointsFromLine( cloud, point1, tempPoint, + out point3, out distance3, out point4, out distance4 ); + + bool thirdPointIsFound = false; + + if ( ( distance3 >= distortionLimit ) && ( distance4 >= distortionLimit ) ) + { + if ( point4.DistanceTo( point2 ) > point3.DistanceTo( point2 ) ) + point3 = point4; + + thirdPointIsFound = true; + } + else + { + PointsCloud.GetFurthestPointsFromLine( cloud, point2, tempPoint, + out point3, out distance3, out point4, out distance4 ); + + if ( ( distance3 >= distortionLimit ) && ( distance4 >= distortionLimit ) ) + { + if ( point4.DistanceTo( point1 ) > point3.DistanceTo( point1 ) ) + point3 = point4; + + thirdPointIsFound = true; + } + } + + if ( !thirdPointIsFound ) + { + // failed to find 3rd edge point, which is away enough from the temp point. + // this means that the clound looks more like triangle + corners.Add( tempPoint ); + } + else + { + corners.Add( point3 ); + + // try to find 4th point + float tempDistance; + + PointsCloud.GetFurthestPointsFromLine( cloud, point1, point3, + out tempPoint, out tempDistance, out point4, out distance4 ); + + if ( ( distance4 >= distortionLimit ) && ( tempDistance >= distortionLimit ) ) + { + if ( tempPoint.DistanceTo( point2 ) > point4.DistanceTo( point2 ) ) + point4 = tempPoint; + } + else + { + PointsCloud.GetFurthestPointsFromLine( cloud, point2, point3, + out tempPoint, out tempDistance, out point4, out distance4 ); + + if ( ( tempPoint.DistanceTo( point1 ) > point4.DistanceTo( point1 ) ) && + ( tempPoint != point2 ) && ( tempPoint != point3 ) ) + { + point4 = tempPoint; + } + } + + if ( ( point4 != point1 ) && ( point4 != point2 ) && ( point4 != point3 ) ) + corners.Add( point4 ); + } + } + + // put the point with lowest X as the first + for ( int i = 1, n = corners.Count; i < n; i++ ) + { + if ( ( corners[i].X < corners[0].X ) || + ( ( corners[i].X == corners[0].X ) && ( corners[i].Y < corners[0].Y ) ) ) + { + IntPoint temp = corners[i]; + corners[i] = corners[0]; + corners[0] = temp; + } + } + + + // sort other points in counter clockwise order + float k1 = ( corners[1].X != corners[0].X ) ? + ( (float) ( corners[1].Y - corners[0].Y ) / ( corners[1].X - corners[0].X ) ) : + ( ( corners[1].Y > corners[0].Y ) ? float.PositiveInfinity : float.NegativeInfinity ); + + float k2 = ( corners[2].X != corners[0].X ) ? + ( (float) ( corners[2].Y - corners[0].Y ) / ( corners[2].X - corners[0].X ) ) : + ( ( corners[2].Y > corners[0].Y ) ? float.PositiveInfinity : float.NegativeInfinity ); + + if ( k2 < k1 ) + { + IntPoint temp = corners[1]; + corners[1] = corners[2]; + corners[2] = temp; + + float tk = k1; + k1 = k2; + k2 = tk; + } + + if ( corners.Count == 4 ) + { + float k3 = ( corners[3].X != corners[0].X ) ? + ( (float) ( corners[3].Y - corners[0].Y ) / ( corners[3].X - corners[0].X ) ) : + ( ( corners[3].Y > corners[0].Y ) ? float.PositiveInfinity : float.NegativeInfinity ); + + if ( k3 < k1 ) + { + IntPoint temp = corners[1]; + corners[1] = corners[3]; + corners[3] = temp; + + float tk = k1; + k1 = k3; + k3 = tk; + } + if ( k3 < k2 ) + { + IntPoint temp = corners[2]; + corners[2] = corners[3]; + corners[3] = temp; + + float tk = k2; + k2 = k3; + k3 = tk; + } + } + + return corners; + } + } +} diff --git a/Sources/Math/Geometry/ShapeType.cs b/Sources/Math/Geometry/ShapeType.cs new file mode 100644 index 00000000..c08131e3 --- /dev/null +++ b/Sources/Math/Geometry/ShapeType.cs @@ -0,0 +1,95 @@ +// AForge Math Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2011 +// contacts@aforgenet.com +// + +namespace AForge.Math.Geometry +{ + using System; + + /// + /// Enumeration of some basic shape types. + /// + public enum ShapeType + { + /// + /// Unknown shape type. + /// + Unknown, + + /// + /// Circle shape. + /// + Circle, + + /// + /// Triangle shape. + /// + Triangle, + + /// + /// Quadrilateral shape. + /// + Quadrilateral, + } + + /// + /// Some common sub types of some basic shapes. + /// + public enum PolygonSubType + { + /// + /// Unrecognized sub type of a shape (generic shape which does not have + /// any specific sub type). + /// + Unknown, + + /// + /// Quadrilateral with one pair of parallel sides. + /// + Trapezoid, + + /// + /// Quadrilateral with two pairs of parallel sides. + /// + Parallelogram, + + /// + /// Parallelogram with perpendicular adjacent sides. + /// + Rectangle, + + /// + /// Parallelogram with all sides equal. + /// + Rhombus, + + /// + /// Rectangle with all sides equal. + /// + Square, + + /// + /// Triangle with all sides/angles equal. + /// + EquilateralTriangle, + + /// + /// Triangle with two sides/angles equal. + /// + IsoscelesTriangle, + + /// + /// Triangle with a 90 degrees angle. + /// + RectangledTriangle, + + /// + /// Triangle with a 90 degrees angle and other two angles are equal. + /// + RectangledIsoscelesTriangle + } +} diff --git a/Sources/Math/Geometry/SimpleShapeChecker.cs b/Sources/Math/Geometry/SimpleShapeChecker.cs new file mode 100644 index 00000000..010e51f8 --- /dev/null +++ b/Sources/Math/Geometry/SimpleShapeChecker.cs @@ -0,0 +1,559 @@ +// AForge Math Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2011 +// contacts@aforgenet.com +// + +namespace AForge.Math.Geometry +{ + using System; + using System.Collections.Generic; + using AForge; + + /// + /// A class for checking simple geometrical shapes. + /// + /// + /// The class performs checking/detection of some simple geometrical + /// shapes for provided set of points (shape's edge points). During the check + /// the class goes through the list of all provided points and checks how accurately + /// they fit into assumed shape. + /// + /// All the shape checks allow some deviation of + /// points from the shape with assumed parameters. In other words it is allowed + /// that specified set of points may form a little bit distorted shape, which may be + /// still recognized. The allowed amount of distortion is controlled by two + /// properties ( and ), + /// which allow higher distortion level for bigger shapes and smaller amount of + /// distortion for smaller shapes. Checking specified set of points, the class + /// calculates mean distance between specified set of points and edge of the assumed + /// shape. If the mean distance is equal to or less than maximum allowed distance, + /// then a shape is recognized. The maximum allowed distance is calculated as: + /// + /// maxDistance = max( minAcceptableDistortion, relativeDistortionLimit * ( width + height ) / 2 ) + /// + /// , where width and height is the size of bounding rectangle for the + /// specified points. + /// + /// + /// See also and properties, + /// which set acceptable errors for polygon sub type checking done by + /// method. + /// + /// See the next article for details about the implemented algorithms: + /// Detecting some simple shapes in images. + /// + /// + /// Sample usage: + /// + /// private List<IntPoint> idealCicle = new List<IntPoint>( ); + /// private List<IntPoint> distorredCircle = new List<IntPoint>( ); + /// System.Random rand = new System.Random( ); + /// + /// // generate sample circles + /// float radius = 100; + /// + /// for ( int i = 0; i < 360; i += 10 ) + /// { + /// float angle = (float) ( (float) i / 180 * System.Math.PI ); + /// + /// // add point to ideal circle + /// idealCicle.Add( new IntPoint( + /// (int) ( radius * System.Math.Cos( angle ) ), + /// (int) ( radius * System.Math.Sin( angle ) ) ) ); + /// + /// // add a bit distortion for distorred cirlce + /// float distorredRadius = radius + rand.Next( 7 ) - 3; + /// + /// distorredCircle.Add( new IntPoint( + /// (int) ( distorredRadius * System.Math.Cos( angle ) ), + /// (int) ( distorredRadius * System.Math.Sin( angle ) ) ) ); + /// } + /// + /// // check shape + /// SimpleShapeChecker shapeChecker = new SimpleShapeChecker( ); + /// + /// if ( shapeChecker.IsCircle( idealCicle ) ) + /// { + /// // ... + /// } + /// + /// if ( shapeChecker.CheckShapeType( distorredCircle ) == ShapeType.Circle ) + /// { + /// // ... + /// } + /// + /// + /// + public class SimpleShapeChecker + { + private FlatAnglesOptimizer shapeOptimizer = new FlatAnglesOptimizer( 160 ); + + private float minAcceptableDistortion = 0.5f; + private float relativeDistortionLimit = 0.03f; + + private float angleError = 7; + private float lengthError = 0.1f; + + /// + /// Minimum value of allowed shapes' distortion. + /// + /// + /// The property sets minimum value for allowed shapes' + /// distortion (in pixels). See documentation to + /// class for more details about this property. + /// + /// Default value is set to 0.5. + /// + /// + public float MinAcceptableDistortion + { + get { return minAcceptableDistortion; } + set { minAcceptableDistortion = Math.Max( 0, value ); } + } + + /// + /// Maximum value of allowed shapes' distortion, [0, 1]. + /// + /// + /// The property sets maximum value for allowed shapes' + /// distortion. The value is measured in [0, 1] range, which corresponds + /// to [0%, 100%] range, which means that maximum allowed shapes' + /// distortion is calculated relatively to shape's size. This results to + /// higher allowed distortion level for bigger shapes and smaller allowed + /// distortion for smaller shapers. See documentation to + /// class for more details about this property. + /// + /// Default value is set to 0.03 (3%). + /// + /// + public float RelativeDistortionLimit + { + get { return relativeDistortionLimit; } + set { relativeDistortionLimit = Math.Max( 0, Math.Min( 1, value ) ); } + } + + /// + /// Maximum allowed angle error in degrees, [0, 20]. + /// + /// + /// The value sets maximum allowed difference between two angles to + /// treat them as equal. It is used by method to + /// check for parallel lines and angles of triangles and quadrilaterals. + /// For example, if angle between two lines equals 5 degrees and this properties value + /// is set to 7, then two compared lines are treated as parallel. + /// + /// Default value is set to 7. + /// + /// + public float AngleError + { + get { return angleError; } + set { angleError = Math.Max( 0, Math.Min( 20, value ) ); } + } + + /// + /// Maximum allowed difference in sides' length (relative to shapes' size), [0, 1]. + /// + /// + /// The values sets maximum allowed difference between two sides' length + /// to treat them as equal. The error value is set relative to shapes size and measured + /// in [0, 1] range, which corresponds to [0%, 100%] range. Absolute length error in pixels + /// is calculated as: + /// + /// LengthError * ( width + height ) / 2 + /// + /// , where width and height is the size of bounding rectangle for the + /// specified shape. + /// + /// + /// Default value is set to 0.1 (10%). + /// + /// + public float LengthError + { + get { return lengthError; } + set { lengthError = Math.Max( 0, Math.Min( 1, value ) ); } + } + + /// + /// Check type of the shape formed by specified points. + /// + /// + /// Shape's points to check. + /// + /// Returns type of the detected shape. + /// + public ShapeType CheckShapeType( List edgePoints ) + { + if ( IsCircle( edgePoints ) ) + { + return ShapeType.Circle; + } + + // check for convex polygon + List corners; + + if ( IsConvexPolygon( edgePoints, out corners ) ) + { + return ( corners.Count == 4 ) ? ShapeType.Quadrilateral : ShapeType.Triangle; + } + + return ShapeType.Unknown; + } + + /// + /// Check if the specified set of points form a circle shape. + /// + /// + /// Shape's points to check. + /// + /// Returns if the specified set of points form a + /// circle shape or otherwise. + /// + /// Circle shape must contain at least 8 points to be recognized. + /// The method returns always, of number of points in the specified + /// shape is less than 8. + /// + public bool IsCircle( List edgePoints ) + { + Point center; + float radius; + + return IsCircle( edgePoints, out center, out radius ); + } + + /// + /// Check if the specified set of points form a circle shape. + /// + /// + /// Shape's points to check. + /// Receives circle's center on successful return. + /// Receives circle's radius on successful return. + /// + /// Returns if the specified set of points form a + /// circle shape or otherwise. + /// + /// Circle shape must contain at least 8 points to be recognized. + /// The method returns always, of number of points in the specified + /// shape is less than 8. + /// + public bool IsCircle( List edgePoints, out Point center, out float radius ) + { + // make sure we have at least 8 points for curcle shape + if ( edgePoints.Count < 8 ) + { + center = new Point( 0, 0 ); + radius = 0; + return false; + } + + // get bounding rectangle of the points list + IntPoint minXY, maxXY; + PointsCloud.GetBoundingRectangle( edgePoints, out minXY, out maxXY ); + // get cloud's size + IntPoint cloudSize = maxXY - minXY; + // calculate center point + center = minXY + (Point) cloudSize / 2; + + radius = ( (float) cloudSize.X + cloudSize.Y ) / 4; + + // calculate mean distance between provided edge points and estimated circle’s edge + float meanDistance = 0; + + for ( int i = 0, n = edgePoints.Count; i < n; i++ ) + { + meanDistance += (float) Math.Abs( center.DistanceTo( edgePoints[i] ) - radius ); + } + meanDistance /= edgePoints.Count; + + float maxDitance = Math.Max( minAcceptableDistortion, + ( (float) cloudSize.X + cloudSize.Y ) / 2 * relativeDistortionLimit ); + + return ( meanDistance <= maxDitance ); + } + + /// + /// Check if the specified set of points form a quadrilateral shape. + /// + /// + /// Shape's points to check. + /// + /// Returns if the specified set of points form a + /// quadrilateral shape or otherwise. + /// + public bool IsQuadrilateral( List edgePoints ) + { + List corners; + return IsQuadrilateral( edgePoints, out corners ); + } + + /// + /// Check if the specified set of points form a quadrilateral shape. + /// + /// + /// Shape's points to check. + /// List of quadrilateral corners on successful return. + /// + /// Returns if the specified set of points form a + /// quadrilateral shape or otherwise. + /// + public bool IsQuadrilateral( List edgePoints, out List corners ) + { + corners = GetShapeCorners( edgePoints ); + + if ( corners.Count != 4 ) + return false; + + return CheckIfPointsFitShape( edgePoints, corners ); + } + + /// + /// Check if the specified set of points form a triangle shape. + /// + /// + /// Shape's points to check. + /// + /// Returns if the specified set of points form a + /// triangle shape or otherwise. + /// + public bool IsTriangle( List edgePoints ) + { + List corners; + return IsTriangle( edgePoints, out corners ); + } + + /// + /// Check if the specified set of points form a triangle shape. + /// + /// + /// Shape's points to check. + /// List of triangle corners on successful return. + /// + /// Returns if the specified set of points form a + /// triangle shape or otherwise. + /// + public bool IsTriangle( List edgePoints, out List corners ) + { + corners = GetShapeCorners( edgePoints ); + + if ( corners.Count != 3 ) + return false; + + return CheckIfPointsFitShape( edgePoints, corners ); + } + + /// + /// Check if the specified set of points form a convex polygon shape. + /// + /// + /// Shape's points to check. + /// List of polygon corners on successful return. + /// + /// Returns if the specified set of points form a + /// convex polygon shape or otherwise. + /// + /// The method is able to detect only triangles and quadrilaterals + /// for now. Check number of detected corners to resolve type of the detected polygon. + /// + /// + public bool IsConvexPolygon( List edgePoints, out List corners ) + { + corners = GetShapeCorners( edgePoints ); + return CheckIfPointsFitShape( edgePoints, corners ); + } + + /// + /// Check sub type of a convex polygon. + /// + /// + /// Corners of the convex polygon to check. + /// + /// Return detected sub type of the specified shape. + /// + /// The method check corners of a convex polygon detecting + /// its subtype. Polygon's corners are usually retrieved using + /// method, but can be any list of 3-4 points (only sub types of triangles and + /// quadrilateral are checked). + /// + /// See and properties, + /// which set acceptable errors for polygon sub type checking. + /// + /// + public PolygonSubType CheckPolygonSubType( List corners ) + { + PolygonSubType subType = PolygonSubType.Unknown; + + // get bounding rectangle of the points list + IntPoint minXY, maxXY; + PointsCloud.GetBoundingRectangle( corners, out minXY, out maxXY ); + // get cloud's size + IntPoint cloudSize = maxXY - minXY; + + float maxLengthDiff = lengthError * ( cloudSize.X + cloudSize.Y ) / 2; + + if ( corners.Count == 3 ) + { + // get angles of the triangle + float angle1 = GeometryTools.GetAngleBetweenVectors( corners[0], corners[1], corners[2] ); + float angle2 = GeometryTools.GetAngleBetweenVectors( corners[1], corners[2], corners[0] ); + float angle3 = GeometryTools.GetAngleBetweenVectors( corners[2], corners[0], corners[1] ); + + // check for equilateral triangle + if ( ( Math.Abs( angle1 - 60 ) <= angleError ) && + ( Math.Abs( angle2 - 60 ) <= angleError ) && + ( Math.Abs( angle3 - 60 ) <= angleError ) ) + { + subType = PolygonSubType.EquilateralTriangle; + } + else + { + // check for isosceles triangle + if ( ( Math.Abs( angle1 - angle2 ) <= angleError ) || + ( Math.Abs( angle2 - angle3 ) <= angleError ) || + ( Math.Abs( angle3 - angle1 ) <= angleError ) ) + { + subType = PolygonSubType.IsoscelesTriangle; + } + + // check for rectangled triangle + if ( ( Math.Abs( angle1 - 90 ) <= angleError ) || + ( Math.Abs( angle2 - 90 ) <= angleError ) || + ( Math.Abs( angle3 - 90 ) <= angleError ) ) + { + subType = ( subType == PolygonSubType.IsoscelesTriangle ) ? + PolygonSubType.RectangledIsoscelesTriangle : PolygonSubType.RectangledTriangle; + } + } + } + else if ( corners.Count == 4 ) + { + // get angles between 2 pairs of opposite sides + float angleBetween1stPair = GeometryTools.GetAngleBetweenLines( corners[0], corners[1], corners[2], corners[3] ); + float angleBetween2ndPair = GeometryTools.GetAngleBetweenLines( corners[1], corners[2], corners[3], corners[0] ); + + // check 1st pair for parallelism + if ( angleBetween1stPair <= angleError ) + { + subType = PolygonSubType.Trapezoid; + + // check 2nd pair for parallelism + if ( angleBetween2ndPair <= angleError ) + { + subType = PolygonSubType.Parallelogram; + + // check angle between adjacent sides + if ( Math.Abs( GeometryTools.GetAngleBetweenVectors( corners[1], corners[0], corners[2] ) - 90 ) <= angleError ) + { + subType = PolygonSubType.Rectangle; + } + + // get length of 2 adjacent sides + float side1Length = (float) corners[0].DistanceTo( corners[1] ); + float side2Length = (float) corners[0].DistanceTo( corners[3] ); + + if ( Math.Abs( side1Length - side2Length ) <= maxLengthDiff ) + { + subType = ( subType == PolygonSubType.Parallelogram ) ? + PolygonSubType.Rhombus : PolygonSubType.Square; + } + } + } + else + { + // check 2nd pair for parallelism - last chence to detect trapezoid + if ( angleBetween2ndPair <= angleError ) + { + subType = PolygonSubType.Trapezoid; + } + } + } + + return subType; + } + + /// + /// Check if a shape specified by the set of points fits a convex polygon + /// specified by the set of corners. + /// + /// + /// Shape's points to check. + /// Corners of convex polygon to check fitting into. + /// + /// Returns if the specified shape fits + /// the specified convex polygon or otherwise. + /// + /// The method checks if the set of specified points form the same shape + /// as the set of provided corners. + /// + public bool CheckIfPointsFitShape( List edgePoints, List corners ) + { + int cornersCount = corners.Count; + + // lines coefficients (for representation as y(x)=k*x+b) + float[] k = new float[cornersCount]; + float[] b = new float[cornersCount]; + float[] div = new float[cornersCount]; // precalculated divisor + bool[] isVert = new bool[cornersCount]; + + for ( int i = 0; i < cornersCount; i++ ) + { + IntPoint currentPoint = corners[i]; + IntPoint nextPoint = ( i + 1 == cornersCount ) ? corners[0] : corners[i + 1]; + + if ( !( isVert[i] = nextPoint.X == currentPoint.X ) ) + { + k[i] = (float) ( nextPoint.Y - currentPoint.Y ) / ( nextPoint.X - currentPoint.X ); + b[i] = currentPoint.Y - k[i] * currentPoint.X; + div[i] = (float) Math.Sqrt( k[i] * k[i] + 1 ); + } + } + + // calculate distances between edge points and polygon sides + float meanDistance = 0; + + for ( int i = 0, n = edgePoints.Count; i < n; i++ ) + { + float minDistance = float.MaxValue; + + for ( int j = 0; j < cornersCount; j++ ) + { + float distance = 0; + + if ( !isVert[j] ) + { + distance = (float) Math.Abs( ( k[j] * edgePoints[i].X + b[j] - edgePoints[i].Y ) / div[j] ); + } + else + { + distance = Math.Abs( edgePoints[i].X - corners[j].X ); + } + + if ( distance < minDistance ) + minDistance = distance; + } + + meanDistance += minDistance; + } + meanDistance /= edgePoints.Count; + + // get bounding rectangle of the corners list + IntPoint minXY, maxXY; + PointsCloud.GetBoundingRectangle( corners, out minXY, out maxXY ); + IntPoint rectSize = maxXY - minXY; + + float maxDitance = Math.Max( minAcceptableDistortion, + ( (float) rectSize.X + rectSize.Y ) / 2 * relativeDistortionLimit ); + + return ( meanDistance <= maxDitance ); + } + + // Get optimized quadrilateral area + private List GetShapeCorners( List edgePoints ) + { + return shapeOptimizer.OptimizeShape( PointsCloud.FindQuadrilateralCorners( edgePoints ) ); + } + } +} diff --git a/Sources/Math/Histogram.cs b/Sources/Math/Histogram.cs new file mode 100644 index 00000000..f28ad148 --- /dev/null +++ b/Sources/Math/Histogram.cs @@ -0,0 +1,260 @@ +// AForge Math Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +namespace AForge.Math +{ + using System; + + /// + /// Histogram for discrete random values. + /// + /// + /// The class wraps histogram for discrete stochastic function, which is represented + /// by integer array, where indexes of the array are treated as values of the stochastic function, + /// but array values are treated as "probabilities" (total amount of hits). + /// + /// + /// Sample usage: + /// + /// // create histogram + /// Histogram histogram = new Histogram( new int[10] { 0, 0, 1, 3, 6, 8, 11, 0, 0, 0 } ); + /// // get mean and standard deviation values + /// Console.WriteLine( "mean = " + histogram.Mean + ", std.dev = " + histogram.StdDev ); + /// + /// + /// + [Serializable] + public class Histogram + { + private int[] values; + private double mean = 0; + private double stdDev = 0; + private int median = 0; + private int min; + private int max; + private long total; + + /// + /// Values of the histogram. + /// + /// + /// Indexes of this array are treated as values of stochastic function, + /// but array values are treated as "probabilities" (total amount of hits). + /// + /// + public int[] Values + { + get { return values; } + } + + /// + /// Mean value. + /// + /// + /// The property allows to retrieve mean value of the histogram. + /// + /// Sample usage: + /// + /// // create histogram + /// Histogram histogram = new Histogram( new int[10] { 0, 0, 1, 3, 6, 8, 11, 0, 0, 0 } ); + /// // get mean value (= 4.862) + /// Console.WriteLine( "mean = " + histogram.Mean.ToString( "F3" ) ); + /// + /// + /// + public double Mean + { + get { return mean; } + } + + /// + /// Standard deviation. + /// + /// + /// The property allows to retrieve standard deviation value of the histogram. + /// + /// Sample usage: + /// + /// // create histogram + /// Histogram histogram = new Histogram( new int[10] { 0, 0, 1, 3, 6, 8, 11, 0, 0, 0 } ); + /// // get std.dev. value (= 1.136) + /// Console.WriteLine( "std.dev. = " + histogram.StdDev.ToString( "F3" ) ); + /// + /// + /// + public double StdDev + { + get { return stdDev; } + } + + /// + /// Median value. + /// + /// + /// The property allows to retrieve median value of the histogram. + /// + /// Sample usage: + /// + /// // create histogram + /// Histogram histogram = new Histogram( new int[10] { 0, 0, 1, 3, 6, 8, 11, 0, 0, 0 } ); + /// // get median value (= 5) + /// Console.WriteLine( "median = " + histogram.Median ); + /// + /// + /// + public int Median + { + get { return median; } + } + + /// + /// Minimum value. + /// + /// + /// The property allows to retrieve minimum value of the histogram with non zero + /// hits count. + /// + /// Sample usage: + /// + /// // create histogram + /// Histogram histogram = new Histogram( new int[10] { 0, 0, 1, 3, 6, 8, 11, 0, 0, 0 } ); + /// // get min value (= 2) + /// Console.WriteLine( "min = " + histogram.Min ); + /// + /// + /// + public int Min + { + get { return min; } + } + + /// + /// Maximum value. + /// + /// + /// The property allows to retrieve maximum value of the histogram with non zero + /// hits count. + /// + /// Sample usage: + /// + /// // create histogram + /// Histogram histogram = new Histogram( new int[10] { 0, 0, 1, 3, 6, 8, 11, 0, 0, 0 } ); + /// // get max value (= 6) + /// Console.WriteLine( "max = " + histogram.Max ); + /// + /// + /// + public int Max + { + get { return max; } + } + + /// + /// Total count of values. + /// + /// + /// The property represents total count of values contributed to the histogram, which is + /// essentially sum of the array. + /// + /// Sample usage: + /// + /// // create histogram + /// Histogram histogram = new Histogram( new int[10] { 0, 0, 1, 3, 6, 8, 11, 0, 0, 0 } ); + /// // get total value (= 29) + /// Console.WriteLine( "total = " + histogram.TotalCount ); + /// + /// + /// + public long TotalCount + { + get { return total; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Values of the histogram. + /// + /// Indexes of the input array are treated as values of stochastic function, + /// but array values are treated as "probabilities" (total amount of hits). + /// + /// + public Histogram( int[] values ) + { + this.values = values; + Update( ); + } + + /// + /// Get range around median containing specified percentage of values. + /// + /// + /// Values percentage around median. + /// + /// Returns the range which containes specifies percentage of values. + /// + /// The method calculates range of stochastic variable, which summary probability + /// comprises the specified percentage of histogram's hits. + /// + /// Sample usage: + /// + /// // create histogram + /// Histogram histogram = new Histogram( new int[10] { 0, 0, 1, 3, 6, 8, 11, 0, 0, 0 } ); + /// // get 50% range + /// IntRange range = histogram.GetRange( 0.5 ); + /// // show the range ([4, 6]) + /// Console.WriteLine( "50% range = [" + range.Min + ", " + range.Max + "]" ); + /// + /// + /// + public IntRange GetRange( double percent ) + { + return Statistics.GetRange( values, percent ); + } + + /// + /// Update statistical value of the histogram. + /// + /// + /// The method recalculates statistical values of the histogram, like mean, + /// standard deviation, etc., in the case if histogram's values were changed directly. + /// The method should be called only in the case if histogram's values were retrieved + /// through property and updated after that. + /// + /// + public void Update( ) + { + int i, n = values.Length; + + max = 0; + min = n; + total = 0; + + // calculate min and max + for ( i = 0; i < n; i++ ) + { + if ( values[i] != 0 ) + { + // max + if ( i > max ) + max = i; + // min + if ( i < min ) + min = i; + + total += values[i]; + } + } + + mean = Statistics.Mean( values ); + stdDev = Statistics.StdDev( values, mean ); + median = Statistics.Median( values ); + } + } +} diff --git a/Sources/Math/Images/close_points_merging_optimizer.png b/Sources/Math/Images/close_points_merging_optimizer.png new file mode 100644 index 00000000..ee853fc5 Binary files /dev/null and b/Sources/Math/Images/close_points_merging_optimizer.png differ diff --git a/Sources/Math/Images/flat_angles_optimizer.png b/Sources/Math/Images/flat_angles_optimizer.png new file mode 100644 index 00000000..8279972e Binary files /dev/null and b/Sources/Math/Images/flat_angles_optimizer.png differ diff --git a/Sources/Math/Images/line_straightening_optimizer.png b/Sources/Math/Images/line_straightening_optimizer.png new file mode 100644 index 00000000..83acae46 Binary files /dev/null and b/Sources/Math/Images/line_straightening_optimizer.png differ diff --git a/Sources/Math/Images/potential_corners.png b/Sources/Math/Images/potential_corners.png new file mode 100644 index 00000000..1ca2a116 Binary files /dev/null and b/Sources/Math/Images/potential_corners.png differ diff --git a/Sources/Math/Math (mono).csproj b/Sources/Math/Math (mono).csproj new file mode 100644 index 00000000..1e087126 --- /dev/null +++ b/Sources/Math/Math (mono).csproj @@ -0,0 +1,91 @@ + + + + Debug + AnyCPU + 9.0.21022 + 2.0 + {1E7E3A00-57A6-48C4-A19E-926BADC501B6} + Library + AForge.Math + v2.0 + + + true + full + false + bin\Debug + DEBUG,MONO + prompt + 3 + false + + + none + false + ..\..\Release\Mono + prompt + 3 + false + true + AForge.Math.snk + MONO + + + + + False + ..\..\Release\Mono\AForge.dll + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Sources/Math/Math (mono).sln b/Sources/Math/Math (mono).sln new file mode 100644 index 00000000..fcbc0f4b --- /dev/null +++ b/Sources/Math/Math (mono).sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Math (mono)", "Math (mono).csproj", "{1E7E3A00-57A6-48C4-A19E-926BADC501B6}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {1E7E3A00-57A6-48C4-A19E-926BADC501B6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1E7E3A00-57A6-48C4-A19E-926BADC501B6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1E7E3A00-57A6-48C4-A19E-926BADC501B6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1E7E3A00-57A6-48C4-A19E-926BADC501B6}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(MonoDevelopProperties) = preSolution + StartupItem = Math (mono).csproj + EndGlobalSection +EndGlobal diff --git a/Sources/Math/Math.csproj b/Sources/Math/Math.csproj new file mode 100644 index 00000000..3187988f --- /dev/null +++ b/Sources/Math/Math.csproj @@ -0,0 +1,143 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {C0FAF524-72E4-46F7-8C1B-A6B74DEC5EBE} + Library + Properties + AForge.Math + AForge.Math + v2.0 + 512 + true + AForge.Math.snk + + + 3.5 + + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + true + full + false + ..\..\Release\ + DEBUG;TRACE + prompt + 4 + AForge.Math.xml + + + pdbonly + true + ..\..\Release\ + TRACE + prompt + 4 + AForge.Math.xml + + + + False + ..\..\Release\AForge.dll + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + False + Microsoft .NET Framework 4 %28x86 and x64%29 + true + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 3.1 + true + + + + + \ No newline at end of file diff --git a/Sources/Math/Math.sln b/Sources/Math/Math.sln new file mode 100644 index 00000000..fdafcff2 --- /dev/null +++ b/Sources/Math/Math.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual C# Express 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Math", "Math.csproj", "{C0FAF524-72E4-46F7-8C1B-A6B74DEC5EBE}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {C0FAF524-72E4-46F7-8C1B-A6B74DEC5EBE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C0FAF524-72E4-46F7-8C1B-A6B74DEC5EBE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C0FAF524-72E4-46F7-8C1B-A6B74DEC5EBE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C0FAF524-72E4-46F7-8C1B-A6B74DEC5EBE}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Sources/Math/Matrix3x3.cs b/Sources/Math/Matrix3x3.cs new file mode 100644 index 00000000..c5220f82 --- /dev/null +++ b/Sources/Math/Matrix3x3.cs @@ -0,0 +1,901 @@ +// AForge Math Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2011 +// contacts@aforgenet.com +// + +namespace AForge.Math +{ + using System; + + /// + /// A structure representing 3x3 matrix. + /// + /// + /// The structure incapsulates elements of a 3x3 matrix and + /// provides some operations with it. + /// + [Serializable] + public struct Matrix3x3 + { + /// + /// Row 0 column 0 element of the matrix. + /// + public float V00; + /// + /// Row 0 column 1 element of the matrix. + /// + public float V01; + /// + /// Row 0 column 2 element of the matrix. + /// + public float V02; + + /// + /// Row 1 column 0 element of the matrix. + /// + public float V10; + /// + /// Row 1 column 1 element of the matrix. + /// + public float V11; + /// + /// Row 1 column 2 element of the matrix. + /// + public float V12; + + /// + /// Row 2 column 0 element of the matrix. + /// + public float V20; + /// + /// Row 2 column 1 element of the matrix. + /// + public float V21; + /// + /// Row 2 column 2 element of the matrix. + /// + public float V22; + + /// + /// Provides an identity matrix with all diagonal elements set to 1. + /// + public static Matrix3x3 Identity + { + get + { + Matrix3x3 m = new Matrix3x3( ); + m.V00 = m.V11 = m.V22 = 1; + return m; + } + } + + /// + /// Calculates determinant of the matrix. + /// + public float Determinant + { + get + { + return + V00 * V11 * V22 + V01 * V12 * V20 + V02 * V10 * V21 - + V00 * V12 * V21 - V01 * V10 * V22 - V02 * V11 * V20; + } + } + + /// + /// Returns array representation of the matrix. + /// + /// + /// Returns array which contains all elements of the matrix in the row-major order. + /// + public float[] ToArray( ) + { + return new float[] + { + V00, V01, V02, V10, V11, V12, V20, V21, V22 + }; + } + + /// + /// Creates rotation matrix around Y axis. + /// + /// + /// Rotation angle around Y axis in radians. + /// + /// Returns rotation matrix to rotate an object around Y axis. + /// + public static Matrix3x3 CreateRotationY( float radians ) + { + Matrix3x3 m = new Matrix3x3( ); + + float cos = (float) System.Math.Cos( radians ); + float sin = (float) System.Math.Sin( radians ); + + m.V00 = m.V22 = cos; + m.V02 = sin; + m.V20 = -sin; + m.V11 = 1; + + return m; + } + + /// + /// Creates rotation matrix around X axis. + /// + /// + /// Rotation angle around X axis in radians. + /// + /// Returns rotation matrix to rotate an object around X axis. + /// + public static Matrix3x3 CreateRotationX( float radians ) + { + Matrix3x3 m = new Matrix3x3( ); + + float cos = (float) System.Math.Cos( radians ); + float sin = (float) System.Math.Sin( radians ); + + m.V11 = m.V22 = cos; + m.V12 = -sin; + m.V21 = sin; + m.V00 = 1; + + return m; + } + + /// + /// Creates rotation matrix around Z axis. + /// + /// + /// Rotation angle around Z axis in radians. + /// + /// Returns rotation matrix to rotate an object around Z axis. + /// + public static Matrix3x3 CreateRotationZ( float radians ) + { + Matrix3x3 m = new Matrix3x3( ); + + float cos = (float) System.Math.Cos( radians ); + float sin = (float) System.Math.Sin( radians ); + + m.V00 = m.V11 = cos; + m.V01 = -sin; + m.V10 = sin; + m.V22 = 1; + + return m; + } + + /// + /// Creates rotation matrix to rotate an object around X, Y and Z axes. + /// + /// + /// Rotation angle around Y axis in radians. + /// Rotation angle around X axis in radians. + /// Rotation angle around Z axis in radians. + /// + /// Returns rotation matrix to rotate an object around all 3 axes. + /// + /// + /// The routine assumes roll-pitch-yaw rotation order, when creating rotation + /// matrix, i.e. an object is first rotated around Z axis, then around X axis and finally around + /// Y axis. + /// + /// + public static Matrix3x3 CreateFromYawPitchRoll( float yaw, float pitch, float roll ) + { + return ( CreateRotationY( yaw ) * CreateRotationX( pitch ) ) * CreateRotationZ( roll ); + } + + /// + /// Extract rotation angles from the rotation matrix. + /// + /// + /// Extracted rotation angle around Y axis in radians. + /// Extracted rotation angle around X axis in radians. + /// Extracted rotation angle around Z axis in radians. + /// + /// The routine assumes roll-pitch-yaw rotation order when extracting rotation angle. + /// Using extracted angles with the should provide same rotation matrix. + /// + /// + /// The method assumes the provided matrix represent valid rotation matrix. + /// + /// Sample usage: + /// + /// // assume we have a rotation matrix created like this + /// float yaw = 10.0f / 180 * Math.PI; + /// float pitch = 30.0f / 180 * Math.PI; + /// float roll = 45.0f / 180 * Math.PI; + /// + /// Matrix3x3 rotationMatrix = Matrix3x3.CreateFromYawPitchRoll( yaw, pitch, roll ); + /// // ... + /// + /// // now somewhere in the code you may want to get rotation + /// // angles back from a matrix assuming same rotation order + /// float extractedYaw; + /// float extractedPitch; + /// float extractedRoll; + /// + /// rotation.ExtractYawPitchRoll( out extractedYaw, out extractedPitch, out extractedRoll ); + /// + /// + /// + public void ExtractYawPitchRoll( out float yaw, out float pitch, out float roll ) + { + yaw = (float) Math.Atan2( V02, V22 ); + pitch = (float) Math.Asin( -V12 ); + roll = (float) Math.Atan2( V10, V11 ); + } + + /// + /// Creates a matrix from 3 rows specified as vectors. + /// + /// + /// First row of the matrix to create. + /// Second row of the matrix to create. + /// Third row of the matrix to create. + /// + /// Returns a matrix from specified rows. + /// + public static Matrix3x3 CreateFromRows( Vector3 row0, Vector3 row1, Vector3 row2 ) + { + Matrix3x3 m = new Matrix3x3( ); + + m.V00 = row0.X; + m.V01 = row0.Y; + m.V02 = row0.Z; + + m.V10 = row1.X; + m.V11 = row1.Y; + m.V12 = row1.Z; + + m.V20 = row2.X; + m.V21 = row2.Y; + m.V22 = row2.Z; + + return m; + } + + /// + /// Creates a matrix from 3 columns specified as vectors. + /// + /// + /// First column of the matrix to create. + /// Second column of the matrix to create. + /// Third column of the matrix to create. + /// + /// Returns a matrix from specified columns. + /// + public static Matrix3x3 CreateFromColumns( Vector3 column0, Vector3 column1, Vector3 column2 ) + { + Matrix3x3 m = new Matrix3x3( ); + + m.V00 = column0.X; + m.V10 = column0.Y; + m.V20 = column0.Z; + + m.V01 = column1.X; + m.V11 = column1.Y; + m.V21 = column1.Z; + + m.V02 = column2.X; + m.V12 = column2.Y; + m.V22 = column2.Z; + + return m; + } + + /// + /// Creates a diagonal matrix using the specified vector as diagonal elements. + /// + /// + /// Vector to use for diagonal elements of the matrix. + /// + /// Returns a diagonal matrix. + /// + public static Matrix3x3 CreateDiagonal( Vector3 vector ) + { + Matrix3x3 m = new Matrix3x3( ); + + m.V00 = vector.X; + m.V11 = vector.Y; + m.V22 = vector.Z; + + return m; + } + + /// + /// Get row of the matrix. + /// + /// + /// Row index to get, [0, 2]. + /// + /// Returns specified row of the matrix as a vector. + /// + /// Invalid row index was specified. + /// + public Vector3 GetRow( int index ) + { + if ( ( index < 0 ) || ( index > 2 ) ) + throw new ArgumentException( "Invalid row index was specified.", "index" ); + + return ( index == 0 ) ? new Vector3( V00, V01, V02 ) : + ( index == 1 ) ? new Vector3( V10, V11, V12 ) : new Vector3( V20, V21, V22 ); + } + + /// + /// Get column of the matrix. + /// + /// + /// Column index to get, [0, 2]. + /// + /// Returns specified column of the matrix as a vector. + /// + /// Invalid column index was specified. + /// + public Vector3 GetColumn( int index ) + { + if ( ( index < 0 ) || ( index > 2 ) ) + throw new ArgumentException( "Invalid column index was specified.", "index" ); + + return ( index == 0 ) ? new Vector3( V00, V10, V20 ) : + ( index == 1 ) ? new Vector3( V01, V11, V21 ) : new Vector3( V02, V12, V22 ); + } + + /// + /// Multiplies two specified matrices. + /// + /// + /// Matrix to multiply. + /// Matrix to multiply by. + /// + /// Return new matrix, which the result of multiplication of the two specified matrices. + /// + public static Matrix3x3 operator *( Matrix3x3 matrix1, Matrix3x3 matrix2 ) + { + Matrix3x3 m = new Matrix3x3( ); + + m.V00 = matrix1.V00 * matrix2.V00 + matrix1.V01 * matrix2.V10 + matrix1.V02 * matrix2.V20; + m.V01 = matrix1.V00 * matrix2.V01 + matrix1.V01 * matrix2.V11 + matrix1.V02 * matrix2.V21; + m.V02 = matrix1.V00 * matrix2.V02 + matrix1.V01 * matrix2.V12 + matrix1.V02 * matrix2.V22; + + m.V10 = matrix1.V10 * matrix2.V00 + matrix1.V11 * matrix2.V10 + matrix1.V12 * matrix2.V20; + m.V11 = matrix1.V10 * matrix2.V01 + matrix1.V11 * matrix2.V11 + matrix1.V12 * matrix2.V21; + m.V12 = matrix1.V10 * matrix2.V02 + matrix1.V11 * matrix2.V12 + matrix1.V12 * matrix2.V22; + + m.V20 = matrix1.V20 * matrix2.V00 + matrix1.V21 * matrix2.V10 + matrix1.V22 * matrix2.V20; + m.V21 = matrix1.V20 * matrix2.V01 + matrix1.V21 * matrix2.V11 + matrix1.V22 * matrix2.V21; + m.V22 = matrix1.V20 * matrix2.V02 + matrix1.V21 * matrix2.V12 + matrix1.V22 * matrix2.V22; + + return m; + } + + /// + /// Multiplies two specified matrices. + /// + /// + /// Matrix to multiply. + /// Matrix to multiply by. + /// + /// Return new matrix, which the result of multiplication of the two specified matrices. + /// + public static Matrix3x3 Multiply( Matrix3x3 matrix1, Matrix3x3 matrix2 ) + { + return matrix1 * matrix2; + } + + /// + /// Adds corresponding components of two matrices. + /// + /// + /// The matrix to add to. + /// The matrix to add to the first matrix. + /// + /// Returns a matrix which components are equal to sum of corresponding + /// components of the two specified matrices. + /// + public static Matrix3x3 operator +( Matrix3x3 matrix1, Matrix3x3 matrix2 ) + { + Matrix3x3 m = new Matrix3x3( ); + + m.V00 = matrix1.V00 + matrix2.V00; + m.V01 = matrix1.V01 + matrix2.V01; + m.V02 = matrix1.V02 + matrix2.V02; + + m.V10 = matrix1.V10 + matrix2.V10; + m.V11 = matrix1.V11 + matrix2.V11; + m.V12 = matrix1.V12 + matrix2.V12; + + m.V20 = matrix1.V20 + matrix2.V20; + m.V21 = matrix1.V21 + matrix2.V21; + m.V22 = matrix1.V22 + matrix2.V22; + + return m; + } + + /// + /// Adds corresponding components of two matrices. + /// + /// + /// The matrix to add to. + /// The matrix to add to the first matrix. + /// + /// Returns a matrix which components are equal to sum of corresponding + /// components of the two specified matrices. + /// + public static Matrix3x3 Add( Matrix3x3 matrix1, Matrix3x3 matrix2 ) + { + return matrix1 + matrix2; + } + + /// + /// Subtracts corresponding components of two matrices. + /// + /// + /// The matrix to subtract from. + /// The matrix to subtract from the first matrix. + /// + /// Returns a matrix which components are equal to difference of corresponding + /// components of the two specified matrices. + /// + public static Matrix3x3 operator -( Matrix3x3 matrix1, Matrix3x3 matrix2 ) + { + Matrix3x3 m = new Matrix3x3( ); + + m.V00 = matrix1.V00 - matrix2.V00; + m.V01 = matrix1.V01 - matrix2.V01; + m.V02 = matrix1.V02 - matrix2.V02; + + m.V10 = matrix1.V10 - matrix2.V10; + m.V11 = matrix1.V11 - matrix2.V11; + m.V12 = matrix1.V12 - matrix2.V12; + + m.V20 = matrix1.V20 - matrix2.V20; + m.V21 = matrix1.V21 - matrix2.V21; + m.V22 = matrix1.V22 - matrix2.V22; + + return m; + } + + /// + /// Subtracts corresponding components of two matrices. + /// + /// + /// The matrix to subtract from. + /// The matrix to subtract from the first matrix. + /// + /// Returns a matrix which components are equal to difference of corresponding + /// components of the two specified matrices. + /// + public static Matrix3x3 Subtract( Matrix3x3 matrix1, Matrix3x3 matrix2 ) + { + return matrix1 - matrix2; + } + + /// + /// Multiplies specified matrix by the specified vector. + /// + /// + /// Matrix to multiply by vector. + /// Vector to multiply matrix by. + /// + /// Returns new vector which is the result of multiplication of the specified matrix + /// by the specified vector. + /// + public static Vector3 operator *( Matrix3x3 matrix, Vector3 vector ) + { + return new Vector3( + matrix.V00 * vector.X + matrix.V01 * vector.Y + matrix.V02 * vector.Z, + matrix.V10 * vector.X + matrix.V11 * vector.Y + matrix.V12 * vector.Z, + matrix.V20 * vector.X + matrix.V21 * vector.Y + matrix.V22 * vector.Z ); + } + + /// + /// Multiplies specified matrix by the specified vector. + /// + /// + /// Matrix to multiply by vector. + /// Vector to multiply matrix by. + /// + /// Returns new vector which is the result of multiplication of the specified matrix + /// by the specified vector. + /// + public static Vector3 Multiply( Matrix3x3 matrix, Vector3 vector ) + { + return matrix * vector; + } + + /// + /// Multiplies matrix by the specified factor. + /// + /// + /// Matrix to multiply. + /// Factor to multiple the specified matrix by. + /// + /// Returns new matrix with all components equal to corresponding components of the + /// specified matrix multiples by the specified factor. + /// + public static Matrix3x3 operator *( Matrix3x3 matrix, float factor ) + { + Matrix3x3 m = new Matrix3x3( ); + + m.V00 = matrix.V00 * factor; + m.V01 = matrix.V01 * factor; + m.V02 = matrix.V02 * factor; + + m.V10 = matrix.V10 * factor; + m.V11 = matrix.V11 * factor; + m.V12 = matrix.V12 * factor; + + m.V20 = matrix.V20 * factor; + m.V21 = matrix.V21 * factor; + m.V22 = matrix.V22 * factor; + + return m; + } + + /// + /// Multiplies matrix by the specified factor. + /// + /// + /// Matrix to multiply. + /// Factor to multiple the specified matrix by. + /// + /// Returns new matrix with all components equal to corresponding components of the + /// specified matrix multiples by the specified factor. + /// + public static Matrix3x3 Multiply( Matrix3x3 matrix, float factor ) + { + return matrix * factor; + } + + /// + /// Adds specified value to all components of the specified matrix. + /// + /// + /// Matrix to add value to. + /// Value to add to all components of the specified matrix. + /// + /// Returns new matrix with all components equal to corresponding components of the + /// specified matrix increased by the specified value. + /// + public static Matrix3x3 operator +( Matrix3x3 matrix, float value ) + { + Matrix3x3 m = new Matrix3x3( ); + + m.V00 = matrix.V00 + value; + m.V01 = matrix.V01 + value; + m.V02 = matrix.V02 + value; + + m.V10 = matrix.V10 + value; + m.V11 = matrix.V11 + value; + m.V12 = matrix.V12 + value; + + m.V20 = matrix.V20 + value; + m.V21 = matrix.V21 + value; + m.V22 = matrix.V22 + value; + + return m; + } + + /// + /// Adds specified value to all components of the specified matrix. + /// + /// + /// Matrix to add value to. + /// Value to add to all components of the specified matrix. + /// + /// Returns new matrix with all components equal to corresponding components of the + /// specified matrix increased by the specified value. + /// + public static Matrix3x3 Add( Matrix3x3 matrix, float value ) + { + return matrix + value; + } + + /// + /// Tests whether two specified matrices are equal. + /// + /// + /// The left-hand matrix. + /// The right-hand matrix. + /// + /// Returns if the two matrices are equal or otherwise. + /// + public static bool operator ==( Matrix3x3 matrix1, Matrix3x3 matrix2 ) + { + return ( + ( matrix1.V00 == matrix2.V00 ) && + ( matrix1.V01 == matrix2.V01 ) && + ( matrix1.V02 == matrix2.V02 ) && + + ( matrix1.V10 == matrix2.V10 ) && + ( matrix1.V11 == matrix2.V11 ) && + ( matrix1.V12 == matrix2.V12 ) && + + ( matrix1.V20 == matrix2.V20 ) && + ( matrix1.V21 == matrix2.V21 ) && + ( matrix1.V22 == matrix2.V22 ) + ); + } + + /// + /// Tests whether two specified matrices are not equal. + /// + /// + /// The left-hand matrix. + /// The right-hand matrix. + /// + /// Returns if the two matrices are not equal or otherwise. + /// + public static bool operator !=( Matrix3x3 matrix1, Matrix3x3 matrix2 ) + { + return ( + ( matrix1.V00 != matrix2.V00 ) || + ( matrix1.V01 != matrix2.V01 ) || + ( matrix1.V02 != matrix2.V02 ) || + + ( matrix1.V10 != matrix2.V10 ) || + ( matrix1.V11 != matrix2.V11 ) || + ( matrix1.V12 != matrix2.V12 ) || + + ( matrix1.V20 != matrix2.V20 ) || + ( matrix1.V21 != matrix2.V21 ) || + ( matrix1.V22 != matrix2.V22 ) + ); + } + + /// + /// Tests whether the matrix equals to the specified one. + /// + /// + /// The matrix to test equality with. + /// + /// Returns if the two matrices are equal or otherwise. + /// + public bool Equals( Matrix3x3 matrix ) + { + return ( this == matrix ); + } + + /// + /// Tests whether the matrix equals to the specified object. + /// + /// + /// The object to test equality with. + /// + /// Returns if the matrix equals to the specified object or otherwise. + /// + public override bool Equals( Object obj ) + { + if ( obj is Matrix3x3 ) + { + return Equals( (Matrix3x3) obj ); + } + return false; + } + + /// + /// Returns the hashcode for this instance. + /// + /// + /// A 32-bit signed integer hash code. + /// + public override int GetHashCode( ) + { + return + V00.GetHashCode( ) + V01.GetHashCode( ) + V02.GetHashCode( ) + + V10.GetHashCode( ) + V11.GetHashCode( ) + V12.GetHashCode( ) + + V20.GetHashCode( ) + V21.GetHashCode( ) + V22.GetHashCode( ); + } + + /// + /// Transpose the matrix, AT. + /// + /// + /// Return a matrix which equals to transposition of this matrix. + /// + public Matrix3x3 Transpose( ) + { + Matrix3x3 m = new Matrix3x3( ); + + m.V00 = V00; + m.V01 = V10; + m.V02 = V20; + + m.V10 = V01; + m.V11 = V11; + m.V12 = V21; + + m.V20 = V02; + m.V21 = V12; + m.V22 = V22; + + return m; + } + + /// + /// Multiply the matrix by its transposition, A*AT. + /// + /// + /// Returns a matrix which is the result of multiplying this matrix by its transposition. + /// + public Matrix3x3 MultiplySelfByTranspose( ) + { + Matrix3x3 m = new Matrix3x3( ); + + m.V00 = V00 * V00 + V01 * V01 + V02 * V02; + m.V10 = m.V01 = V00 * V10 + V01 * V11 + V02 * V12; + m.V20 = m.V02 = V00 * V20 + V01 * V21 + V02 * V22; + + m.V11 = V10 * V10 + V11 * V11 + V12 * V12; + m.V21 = m.V12 = V10 * V20 + V11 * V21 + V12 * V22; + + m.V22 = V20 * V20 + V21 * V21 + V22 * V22; + + return m; + } + + /// + /// Multiply transposition of this matrix by itself, AT*A. + /// + /// + /// Returns a matrix which is the result of multiplying this matrix's transposition by itself. + /// + public Matrix3x3 MultiplyTransposeBySelf( ) + { + Matrix3x3 m = new Matrix3x3( ); + + m.V00 = V00 * V00 + V10 * V10 + V20 * V20; + m.V10 = m.V01 = V00 * V01 + V10 * V11 + V20 * V21; + m.V20 = m.V02 = V00 * V02 + V10 * V12 + V20 * V22; + + m.V11 = V01 * V01 + V11 * V11 + V21 * V21; + m.V21 = m.V12 = V01 * V02 + V11 * V12 + V21 * V22; + + m.V22 = V02 * V02 + V12 * V12 + V22 * V22; + + return m; + } + + /// + /// Calculate adjugate of the matrix, adj(A). + /// + /// + /// Returns adjugate of the matrix. + /// + public Matrix3x3 Adjugate( ) + { + Matrix3x3 m = new Matrix3x3( ); + + m.V00 = V11 * V22 - V12 * V21; + m.V01 = -( V01 * V22 - V02 * V21 ); + m.V02 = V01 * V12 - V02 * V11; + + m.V10 = -( V10 * V22 - V12 * V20 ); + m.V11 = V00 * V22 - V02 * V20; + m.V12 = -( V00 * V12 - V02 * V10 ); + + m.V20 = V10 * V21 - V11 * V20; + m.V21 = -( V00 * V21 - V01 * V20 ); + m.V22 = V00 * V11 - V01 * V10; + + return m; + } + + /// + /// Calculate inverse of the matrix, A-1. + /// + /// + /// Returns inverse of the matrix. + /// + /// Cannot calculate inverse of the matrix since it is singular. + /// + public Matrix3x3 Inverse( ) + { + float det = Determinant; + + if ( det == 0 ) + { + throw new ArgumentException( "Cannot calculate inverse of the matrix since it is singular." ); + } + + float detInv = 1 / det; + Matrix3x3 m = Adjugate( ); + + m.V00 *= detInv; + m.V01 *= detInv; + m.V02 *= detInv; + + m.V10 *= detInv; + m.V11 *= detInv; + m.V12 *= detInv; + + m.V20 *= detInv; + m.V21 *= detInv; + m.V22 *= detInv; + + return m; + } + + /// + /// Calculate pseudo inverse of the matrix, A+. + /// + /// + /// Returns pseudo inverse of the matrix. + /// + /// The pseudo inverse of the matrix is calculate through its + /// as V*E+*UT. + /// + public Matrix3x3 PseudoInverse( ) + { + Matrix3x3 u, v; + Vector3 e; + + SVD( out u, out e, out v ); + + return v * CreateDiagonal( e.Inverse( ) ) * u.Transpose( ); + } + + /// + /// Calculate Singular Value Decomposition (SVD) of the matrix, such as A=U*E*VT. + /// + /// + /// Output parameter which gets 3x3 U matrix. + /// Output parameter which gets diagonal elements of the E matrix. + /// Output parameter which gets 3x3 V matrix. + /// + /// Having components U, E and V the source matrix can be reproduced using below code: + /// + /// Matrix3x3 source = u * Matrix3x3.Diagonal( e ) * v.Transpose( ); + /// + /// + /// + public void SVD( out Matrix3x3 u, out Vector3 e, out Matrix3x3 v ) + { + double[,] uArray = new double[3, 3] + { + { V00, V01, V02 }, + { V10, V11, V12 }, + { V20, V21, V22 } + }; + double[,] vArray; + double[] eArray; + + svd.svdcmp( uArray, out eArray, out vArray ); + + // build U matrix + u = new Matrix3x3( ); + u.V00 = (float) uArray[0, 0]; + u.V01 = (float) uArray[0, 1]; + u.V02 = (float) uArray[0, 2]; + u.V10 = (float) uArray[1, 0]; + u.V11 = (float) uArray[1, 1]; + u.V12 = (float) uArray[1, 2]; + u.V20 = (float) uArray[2, 0]; + u.V21 = (float) uArray[2, 1]; + u.V22 = (float) uArray[2, 2]; + + // build V matrix + v = new Matrix3x3( ); + v.V00 = (float) vArray[0, 0]; + v.V01 = (float) vArray[0, 1]; + v.V02 = (float) vArray[0, 2]; + v.V10 = (float) vArray[1, 0]; + v.V11 = (float) vArray[1, 1]; + v.V12 = (float) vArray[1, 2]; + v.V20 = (float) vArray[2, 0]; + v.V21 = (float) vArray[2, 1]; + v.V22 = (float) vArray[2, 2]; + + // build E Vector3 + e = new Vector3( ); + e.X = (float) eArray[0]; + e.Y = (float) eArray[1]; + e.Z = (float) eArray[2]; + } + } +} diff --git a/Sources/Math/Matrix4x4.cs b/Sources/Math/Matrix4x4.cs new file mode 100644 index 00000000..ea2033f6 --- /dev/null +++ b/Sources/Math/Matrix4x4.cs @@ -0,0 +1,818 @@ +// AForge Math Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2011 +// contacts@aforgenet.com +// + +namespace AForge.Math +{ + using System; + + /// + /// A structure representing 4x4 matrix. + /// + /// + /// The structure incapsulates elements of a 4x4 matrix and + /// provides some operations with it. + /// + [Serializable] + public struct Matrix4x4 + { + /// + /// Row 0 column 0 element of the matrix. + /// + public float V00; + /// + /// Row 0 column 1 element of the matrix. + /// + public float V01; + /// + /// Row 0 column 2 element of the matrix. + /// + public float V02; + /// + /// Row 0 column 3 element of the matrix. + /// + public float V03; + + /// + /// Row 1 column 0 element of the matrix. + /// + public float V10; + /// + /// Row 1 column 1 element of the matrix. + /// + public float V11; + /// + /// Row 1 column 2 element of the matrix. + /// + public float V12; + /// + /// Row 1 column 3 element of the matrix. + /// + public float V13; + + /// + /// Row 2 column 0 element of the matrix. + /// + public float V20; + /// + /// Row 2 column 1 element of the matrix. + /// + public float V21; + /// + /// Row 2 column 2 element of the matrix. + /// + public float V22; + /// + /// Row 2 column 3 element of the matrix. + /// + public float V23; + + /// + /// Row 3 column 0 element of the matrix. + /// + public float V30; + /// + /// Row 3 column 1 element of the matrix. + /// + public float V31; + /// + /// Row 3 column 2 element of the matrix. + /// + public float V32; + /// + /// Row 3 column 3 element of the matrix. + /// + public float V33; + + /// + /// Provides an identity matrix with all diagonal elements set to 1. + /// + public static Matrix4x4 Identity + { + get + { + Matrix4x4 m = new Matrix4x4( ); + m.V00 = m.V11 = m.V22 = m.V33 = 1; + return m; + } + } + + /// + /// Returns array representation of the matrix. + /// + /// + /// Returns array which contains all elements of the matrix in the row-major order. + /// + public float[] ToArray( ) + { + return new float[] + { + V00, V01, V02, V03, V10, V11, V12, V13, V20, V21, V22, V23, V30, V31, V32, V33 + }; + } + + /// + /// Creates rotation matrix around Y axis. + /// + /// + /// Rotation angle around Y axis in radians. + /// + /// Returns rotation matrix to rotate an object around Y axis. + /// + public static Matrix4x4 CreateRotationY( float radians ) + { + Matrix4x4 m = Matrix4x4.Identity; + + float cos = (float) System.Math.Cos( radians ); + float sin = (float) System.Math.Sin( radians ); + + m.V00 = m.V22 = cos; + m.V02 = sin; + m.V20 = -sin; + + return m; + } + + /// + /// Creates rotation matrix around X axis. + /// + /// + /// Rotation angle around X axis in radians. + /// + /// Returns rotation matrix to rotate an object around X axis. + /// + public static Matrix4x4 CreateRotationX( float radians ) + { + Matrix4x4 m = Matrix4x4.Identity; + + float cos = (float) System.Math.Cos( radians ); + float sin = (float) System.Math.Sin( radians ); + + m.V11 = m.V22 = cos; + m.V12 = -sin; + m.V21 = sin; + + return m; + } + + /// + /// Creates rotation matrix around Z axis. + /// + /// + /// Rotation angle around Z axis in radians. + /// + /// Returns rotation matrix to rotate an object around Z axis. + /// + public static Matrix4x4 CreateRotationZ( float radians ) + { + Matrix4x4 m = Matrix4x4.Identity; + + float cos = (float) System.Math.Cos( radians ); + float sin = (float) System.Math.Sin( radians ); + + m.V00 = m.V11 = cos; + m.V01 = -sin; + m.V10 = sin; + + return m; + } + + /// + /// Creates rotation matrix to rotate an object around X, Y and Z axes. + /// + /// + /// Rotation angle around Y axis in radians. + /// Rotation angle around X axis in radians. + /// Rotation angle around Z axis in radians. + /// + /// Returns rotation matrix to rotate an object around all 3 axes. + /// + /// + /// The routine assumes roll-pitch-yaw rotation order, when creating rotation + /// matrix, i.e. an object is first rotated around Z axis, then around X axis and finally around + /// Y axis. + /// + /// + public static Matrix4x4 CreateFromYawPitchRoll( float yaw, float pitch, float roll ) + { + return ( CreateRotationY( yaw ) * CreateRotationX( pitch ) ) * CreateRotationZ( roll ); + } + + /// + /// Extract rotation angles from the rotation matrix. + /// + /// + /// Extracted rotation angle around Y axis in radians. + /// Extracted rotation angle around X axis in radians. + /// Extracted rotation angle around Z axis in radians. + /// + /// The routine assumes roll-pitch-yaw rotation order when extracting rotation angle. + /// Using extracted angles with the should provide same rotation matrix. + /// + /// + /// The method assumes the provided matrix represent valid rotation matrix. + /// + /// Sample usage: + /// + /// // assume we have a rotation matrix created like this + /// float yaw = 10.0f / 180 * Math.PI; + /// float pitch = 30.0f / 180 * Math.PI; + /// float roll = 45.0f / 180 * Math.PI; + /// + /// Matrix4x4 rotationMatrix = Matrix3x3.CreateFromYawPitchRoll( yaw, pitch, roll ); + /// // ... + /// + /// // now somewhere in the code you may want to get rotation + /// // angles back from a matrix assuming same rotation order + /// float extractedYaw; + /// float extractedPitch; + /// float extractedRoll; + /// + /// rotation.ExtractYawPitchRoll( out extractedYaw, out extractedPitch, out extractedRoll ); + /// + /// + /// + public void ExtractYawPitchRoll( out float yaw, out float pitch, out float roll ) + { + yaw = (float) Math.Atan2( V02, V22 ); + pitch = (float) Math.Asin( -V12 ); + roll = (float) Math.Atan2( V10, V11 ); + } + + /// + /// Creates 4x4 tranformation matrix from 3x3 rotation matrix. + /// + /// + /// Source 3x3 rotation matrix. + /// + /// Returns 4x4 rotation matrix. + /// + /// The source 3x3 rotation matrix is copied into the top left corner of the result 4x4 matrix, + /// i.e. it represents 0th, 1st and 2nd row/column. The element is set to 1 and the rest + /// elements of 3rd row and 3rd column are set to zeros. + /// + public static Matrix4x4 CreateFromRotation( Matrix3x3 rotationMatrix ) + { + Matrix4x4 m = Matrix4x4.Identity; + + m.V00 = rotationMatrix.V00; + m.V01 = rotationMatrix.V01; + m.V02 = rotationMatrix.V02; + + m.V10 = rotationMatrix.V10; + m.V11 = rotationMatrix.V11; + m.V12 = rotationMatrix.V12; + + m.V20 = rotationMatrix.V20; + m.V21 = rotationMatrix.V21; + m.V22 = rotationMatrix.V22; + + return m; + } + + /// + /// Creates translation matrix for the specified movement amount. + /// + /// + /// Vector which set direction and amount of movement. + /// + /// Returns translation matrix. + /// + /// The specified vector is copied to the 3rd column of the result matrix. + /// All diagonal elements are set to 1. The rest of matrix is initialized with zeros. + /// + public static Matrix4x4 CreateTranslation( Vector3 position ) + { + Matrix4x4 m = Matrix4x4.Identity; + + m.V03 = position.X; + m.V13 = position.Y; + m.V23 = position.Z; + + return m; + } + + /// + /// Creates a view matrix for the specified camera position and target point. + /// + /// + /// Position of camera. + /// Target point towards which camera is pointing. + /// + /// Returns a view matrix. + /// + /// Camera's "up" vector is supposed to be (0, 1, 0). + /// + public static Matrix4x4 CreateLookAt( Vector3 cameraPosition, Vector3 cameraTarget ) + { + Matrix4x4 m = new Matrix4x4( ); + + Vector3 vector = cameraPosition - cameraTarget; + vector.Normalize( ); + + Vector3 vector2 = Vector3.Cross( new Vector3( 0, 1, 0 ), vector ); + vector2.Normalize( ); + + Vector3 vector3 = Vector3.Cross( vector, vector2 ); + + m.V00 = vector2.X; + m.V01 = vector2.Y; + m.V02 = vector2.Z; + + m.V10 = vector3.X; + m.V11 = vector3.Y; + m.V12 = vector3.Z; + + m.V20 = vector.X; + m.V21 = vector.Y; + m.V22 = vector.Z; + + m.V03 = -Vector3.Dot( cameraPosition, vector2 ); + m.V13 = -Vector3.Dot( cameraPosition, vector3 ); + m.V23 = -Vector3.Dot( cameraPosition, vector ); + m.V33 = 1; + + return m; + } + + /// + /// Creates a perspective projection matrix. + /// + /// + /// Width of the view volume at the near view plane. + /// Height of the view volume at the near view plane. + /// Distance to the near view plane. + /// Distance to the far view plane. + /// + /// Return a perspective projection matrix. + /// + /// Both near and far view planes' distances must be greater than zero. + /// Near plane must be closer than the far plane. + /// + public static Matrix4x4 CreatePerspective( float width, float height, float nearPlaneDistance, float farPlaneDistance ) + { + if ( ( nearPlaneDistance <= 0 ) || ( farPlaneDistance <= 0 ) ) + { + throw new ArgumentOutOfRangeException( "Both near and far view planes' distances must be greater than zero." ); + } + + if ( nearPlaneDistance >= farPlaneDistance ) + { + throw new ArgumentException( "Near plane must be closer than the far plane." ); + } + + Matrix4x4 m = new Matrix4x4( ); + + m.V00 = 2.0f * nearPlaneDistance / width; + m.V11 = 2.0f * nearPlaneDistance / height; + m.V22 = farPlaneDistance / ( nearPlaneDistance - farPlaneDistance ); + + m.V32 = -1; + m.V23 = ( nearPlaneDistance * farPlaneDistance ) / ( nearPlaneDistance - farPlaneDistance ); + + return m; + } + + /// + /// Creates a matrix from 4 rows specified as vectors. + /// + /// + /// First row of the matrix to create. + /// Second row of the matrix to create. + /// Third row of the matrix to create. + /// Fourth row of the matrix to create. + /// + /// Returns a matrix from specified rows. + /// + public static Matrix4x4 CreateFromRows( Vector4 row0, Vector4 row1, Vector4 row2, Vector4 row3 ) + { + Matrix4x4 m = new Matrix4x4( ); + + m.V00 = row0.X; + m.V01 = row0.Y; + m.V02 = row0.Z; + m.V03 = row0.W; + + m.V10 = row1.X; + m.V11 = row1.Y; + m.V12 = row1.Z; + m.V13 = row1.W; + + m.V20 = row2.X; + m.V21 = row2.Y; + m.V22 = row2.Z; + m.V23 = row2.W; + + m.V30 = row3.X; + m.V31 = row3.Y; + m.V32 = row3.Z; + m.V33 = row3.W; + + return m; + } + + /// + /// Creates a matrix from 4 columns specified as vectors. + /// + /// + /// First column of the matrix to create. + /// Second column of the matrix to create. + /// Third column of the matrix to create. + /// Fourth column of the matrix to create. + /// + /// Returns a matrix from specified columns. + /// + public static Matrix4x4 CreateFromColumns( Vector4 column0, Vector4 column1, Vector4 column2, Vector4 column3 ) + { + Matrix4x4 m = new Matrix4x4( ); + + m.V00 = column0.X; + m.V10 = column0.Y; + m.V20 = column0.Z; + m.V30 = column0.W; + + m.V01 = column1.X; + m.V11 = column1.Y; + m.V21 = column1.Z; + m.V31 = column1.W; + + m.V02 = column2.X; + m.V12 = column2.Y; + m.V22 = column2.Z; + m.V32 = column2.W; + + m.V03 = column3.X; + m.V13 = column3.Y; + m.V23 = column3.Z; + m.V33 = column3.W; + + return m; + } + + /// + /// Creates a diagonal matrix using the specified vector as diagonal elements. + /// + /// + /// Vector to use for diagonal elements of the matrix. + /// + /// Returns a diagonal matrix. + /// + public static Matrix4x4 CreateDiagonal( Vector4 vector ) + { + Matrix4x4 m = new Matrix4x4( ); + + m.V00 = vector.X; + m.V11 = vector.Y; + m.V22 = vector.Z; + m.V33 = vector.W; + + return m; + } + + /// + /// Get row of the matrix. + /// + /// + /// Row index to get, [0, 3]. + /// + /// Returns specified row of the matrix as a vector. + /// + /// Invalid row index was specified. + /// + public Vector4 GetRow( int index ) + { + if ( ( index < 0 ) || ( index > 3 ) ) + throw new ArgumentException( "Invalid row index was specified.", "index" ); + + return ( index == 0 ) ? new Vector4( V00, V01, V02, V03 ) : + ( index == 1 ) ? new Vector4( V10, V11, V12, V13 ) : + ( index == 2 ) ? new Vector4( V20, V21, V22, V23 ) : new Vector4( V30, V31, V32, V33 ); + } + + /// + /// Get column of the matrix. + /// + /// + /// Column index to get, [0, 3]. + /// + /// Returns specified column of the matrix as a vector. + /// + /// Invalid column index was specified. + /// + public Vector4 GetColumn( int index ) + { + if ( ( index < 0 ) || ( index > 3 ) ) + throw new ArgumentException( "Invalid column index was specified.", "index" ); + + return ( index == 0 ) ? new Vector4( V00, V10, V20, V30 ) : + ( index == 1 ) ? new Vector4( V01, V11, V21, V31 ) : + ( index == 2 ) ? new Vector4( V02, V12, V22, V32 ) : new Vector4( V03, V13, V23, V33 ); + } + + /// + /// Multiplies two specified matrices. + /// + /// + /// Matrix to multiply. + /// Matrix to multiply by. + /// + /// Return new matrix, which the result of multiplication of the two specified matrices. + /// + public static Matrix4x4 operator *( Matrix4x4 matrix1, Matrix4x4 matrix2 ) + { + Matrix4x4 m = new Matrix4x4( ); + + m.V00 = matrix1.V00 * matrix2.V00 + matrix1.V01 * matrix2.V10 + matrix1.V02 * matrix2.V20 + matrix1.V03 * matrix2.V30; + m.V01 = matrix1.V00 * matrix2.V01 + matrix1.V01 * matrix2.V11 + matrix1.V02 * matrix2.V21 + matrix1.V03 * matrix2.V31; + m.V02 = matrix1.V00 * matrix2.V02 + matrix1.V01 * matrix2.V12 + matrix1.V02 * matrix2.V22 + matrix1.V03 * matrix2.V32; + m.V03 = matrix1.V00 * matrix2.V03 + matrix1.V01 * matrix2.V13 + matrix1.V02 * matrix2.V23 + matrix1.V03 * matrix2.V33; + + m.V10 = matrix1.V10 * matrix2.V00 + matrix1.V11 * matrix2.V10 + matrix1.V12 * matrix2.V20 + matrix1.V13 * matrix2.V30; + m.V11 = matrix1.V10 * matrix2.V01 + matrix1.V11 * matrix2.V11 + matrix1.V12 * matrix2.V21 + matrix1.V13 * matrix2.V31; + m.V12 = matrix1.V10 * matrix2.V02 + matrix1.V11 * matrix2.V12 + matrix1.V12 * matrix2.V22 + matrix1.V13 * matrix2.V32; + m.V13 = matrix1.V10 * matrix2.V03 + matrix1.V11 * matrix2.V13 + matrix1.V12 * matrix2.V23 + matrix1.V13 * matrix2.V33; + + m.V20 = matrix1.V20 * matrix2.V00 + matrix1.V21 * matrix2.V10 + matrix1.V22 * matrix2.V20 + matrix1.V23 * matrix2.V30; + m.V21 = matrix1.V20 * matrix2.V01 + matrix1.V21 * matrix2.V11 + matrix1.V22 * matrix2.V21 + matrix1.V23 * matrix2.V31; + m.V22 = matrix1.V20 * matrix2.V02 + matrix1.V21 * matrix2.V12 + matrix1.V22 * matrix2.V22 + matrix1.V23 * matrix2.V32; + m.V23 = matrix1.V20 * matrix2.V03 + matrix1.V21 * matrix2.V13 + matrix1.V22 * matrix2.V23 + matrix1.V23 * matrix2.V33; + + m.V30 = matrix1.V30 * matrix2.V00 + matrix1.V31 * matrix2.V10 + matrix1.V32 * matrix2.V20 + matrix1.V33 * matrix2.V30; + m.V31 = matrix1.V30 * matrix2.V01 + matrix1.V31 * matrix2.V11 + matrix1.V32 * matrix2.V21 + matrix1.V33 * matrix2.V31; + m.V32 = matrix1.V30 * matrix2.V02 + matrix1.V31 * matrix2.V12 + matrix1.V32 * matrix2.V22 + matrix1.V33 * matrix2.V32; + m.V33 = matrix1.V30 * matrix2.V03 + matrix1.V31 * matrix2.V13 + matrix1.V32 * matrix2.V23 + matrix1.V33 * matrix2.V33; + + return m; + } + + /// + /// Multiplies two specified matrices. + /// + /// + /// Matrix to multiply. + /// Matrix to multiply by. + /// + /// Return new matrix, which the result of multiplication of the two specified matrices. + /// + public static Matrix4x4 Multiply( Matrix4x4 matrix1, Matrix4x4 matrix2 ) + { + return matrix1 * matrix2; + } + + /// + /// Adds corresponding components of two matrices. + /// + /// + /// The matrix to add to. + /// The matrix to add to the first matrix. + /// + /// Returns a matrix which components are equal to sum of corresponding + /// components of the two specified matrices. + /// + public static Matrix4x4 operator +( Matrix4x4 matrix1, Matrix4x4 matrix2 ) + { + Matrix4x4 m = new Matrix4x4( ); + + m.V00 = matrix1.V00 + matrix2.V00; + m.V01 = matrix1.V01 + matrix2.V01; + m.V02 = matrix1.V02 + matrix2.V02; + m.V03 = matrix1.V03 + matrix2.V03; + + m.V10 = matrix1.V10 + matrix2.V10; + m.V11 = matrix1.V11 + matrix2.V11; + m.V12 = matrix1.V12 + matrix2.V12; + m.V13 = matrix1.V13 + matrix2.V13; + + m.V20 = matrix1.V20 + matrix2.V20; + m.V21 = matrix1.V21 + matrix2.V21; + m.V22 = matrix1.V22 + matrix2.V22; + m.V23 = matrix1.V23 + matrix2.V23; + + m.V30 = matrix1.V30 + matrix2.V30; + m.V31 = matrix1.V31 + matrix2.V31; + m.V32 = matrix1.V32 + matrix2.V32; + m.V33 = matrix1.V33 + matrix2.V33; + + return m; + } + + /// + /// Adds corresponding components of two matrices. + /// + /// + /// The matrix to add to. + /// The matrix to add to the first matrix. + /// + /// Returns a matrix which components are equal to sum of corresponding + /// components of the two specified matrices. + /// + public static Matrix4x4 Add( Matrix4x4 matrix1, Matrix4x4 matrix2 ) + { + return matrix1 + matrix2; + } + + /// + /// Subtracts corresponding components of two matrices. + /// + /// + /// The matrix to subtract from. + /// The matrix to subtract from the first matrix. + /// + /// Returns a matrix which components are equal to difference of corresponding + /// components of the two specified matrices. + /// + public static Matrix4x4 operator -( Matrix4x4 matrix1, Matrix4x4 matrix2 ) + { + Matrix4x4 m = new Matrix4x4( ); + + m.V00 = matrix1.V00 - matrix2.V00; + m.V01 = matrix1.V01 - matrix2.V01; + m.V02 = matrix1.V02 - matrix2.V02; + m.V03 = matrix1.V03 - matrix2.V03; + + m.V10 = matrix1.V10 - matrix2.V10; + m.V11 = matrix1.V11 - matrix2.V11; + m.V12 = matrix1.V12 - matrix2.V12; + m.V13 = matrix1.V13 - matrix2.V13; + + m.V20 = matrix1.V20 - matrix2.V20; + m.V21 = matrix1.V21 - matrix2.V21; + m.V22 = matrix1.V22 - matrix2.V22; + m.V23 = matrix1.V23 - matrix2.V23; + + m.V30 = matrix1.V30 - matrix2.V30; + m.V31 = matrix1.V31 - matrix2.V31; + m.V32 = matrix1.V32 - matrix2.V32; + m.V33 = matrix1.V33 - matrix2.V33; + + return m; + } + + /// + /// Subtracts corresponding components of two matrices. + /// + /// + /// The matrix to subtract from. + /// The matrix to subtract from the first matrix. + /// + /// Returns a matrix which components are equal to difference of corresponding + /// components of the two specified matrices. + /// + public static Matrix4x4 Subtract( Matrix4x4 matrix1, Matrix4x4 matrix2 ) + { + return matrix1 - matrix2; + } + + /// + /// Multiplies specified matrix by the specified vector. + /// + /// + /// Matrix to multiply by vector. + /// Vector to multiply matrix by. + /// + /// Returns new vector which is the result of multiplication of the specified matrix + /// by the specified vector. + /// + public static Vector4 operator *( Matrix4x4 matrix, Vector4 vector ) + { + return new Vector4( + matrix.V00 * vector.X + matrix.V01 * vector.Y + matrix.V02 * vector.Z + matrix.V03 * vector.W, + matrix.V10 * vector.X + matrix.V11 * vector.Y + matrix.V12 * vector.Z + matrix.V13 * vector.W, + matrix.V20 * vector.X + matrix.V21 * vector.Y + matrix.V22 * vector.Z + matrix.V23 * vector.W, + matrix.V30 * vector.X + matrix.V31 * vector.Y + matrix.V32 * vector.Z + matrix.V33 * vector.W + ); + } + + /// + /// Multiplies specified matrix by the specified vector. + /// + /// + /// Matrix to multiply by vector. + /// Vector to multiply matrix by. + /// + /// Returns new vector which is the result of multiplication of the specified matrix + /// by the specified vector. + /// + public static Vector4 Multiply( Matrix4x4 matrix, Vector4 vector ) + { + return matrix * vector; + } + + /// + /// Tests whether two specified matrices are equal. + /// + /// + /// The left-hand matrix. + /// The right-hand matrix. + /// + /// Returns if the two matrices are equal or otherwise. + /// + public static bool operator ==( Matrix4x4 matrix1, Matrix4x4 matrix2 ) + { + return ( + ( matrix1.V00 == matrix2.V00 ) && + ( matrix1.V01 == matrix2.V01 ) && + ( matrix1.V02 == matrix2.V02 ) && + ( matrix1.V03 == matrix2.V03 ) && + + ( matrix1.V10 == matrix2.V10 ) && + ( matrix1.V11 == matrix2.V11 ) && + ( matrix1.V12 == matrix2.V12 ) && + ( matrix1.V13 == matrix2.V13 ) && + + ( matrix1.V20 == matrix2.V20 ) && + ( matrix1.V21 == matrix2.V21 ) && + ( matrix1.V22 == matrix2.V22 ) && + ( matrix1.V23 == matrix2.V23 ) && + + ( matrix1.V30 == matrix2.V30 ) && + ( matrix1.V31 == matrix2.V31 ) && + ( matrix1.V32 == matrix2.V32 ) && + ( matrix1.V33 == matrix2.V33 ) + ); + } + + /// + /// Tests whether two specified matrices are not equal. + /// + /// + /// The left-hand matrix. + /// The right-hand matrix. + /// + /// Returns if the two matrices are not equal or otherwise. + /// + public static bool operator !=( Matrix4x4 matrix1, Matrix4x4 matrix2 ) + { + return ( + ( matrix1.V00 != matrix2.V00 ) || + ( matrix1.V01 != matrix2.V01 ) || + ( matrix1.V02 != matrix2.V02 ) || + ( matrix1.V03 != matrix2.V03 ) || + + ( matrix1.V10 != matrix2.V10 ) || + ( matrix1.V11 != matrix2.V11 ) || + ( matrix1.V12 != matrix2.V12 ) || + ( matrix1.V13 != matrix2.V13 ) || + + ( matrix1.V20 != matrix2.V20 ) || + ( matrix1.V21 != matrix2.V21 ) || + ( matrix1.V22 != matrix2.V22 ) || + ( matrix1.V23 != matrix2.V23 ) || + + ( matrix1.V30 != matrix2.V30 ) || + ( matrix1.V31 != matrix2.V31 ) || + ( matrix1.V32 != matrix2.V32 ) || + ( matrix1.V33 != matrix2.V33 ) + ); + } + + /// + /// Tests whether the matrix equals to the specified one. + /// + /// + /// The matrix to test equality with. + /// + /// Returns if the two matrices are equal or otherwise. + /// + public bool Equals( Matrix4x4 matrix ) + { + return ( this == matrix ); + } + + /// + /// Tests whether the matrix equals to the specified object. + /// + /// + /// The object to test equality with. + /// + /// Returns if the matrix equals to the specified object or otherwise. + /// + public override bool Equals( Object obj ) + { + if ( obj is Matrix4x4 ) + { + return Equals( (Matrix4x4) obj ); + } + return false; + } + + /// + /// Returns the hashcode for this instance. + /// + /// + /// A 32-bit signed integer hash code. + /// + public override int GetHashCode( ) + { + return + V00.GetHashCode( ) + V01.GetHashCode( ) + V02.GetHashCode( ) + V03.GetHashCode( ) + + V10.GetHashCode( ) + V11.GetHashCode( ) + V12.GetHashCode( ) + V13.GetHashCode( ) + + V20.GetHashCode( ) + V21.GetHashCode( ) + V22.GetHashCode( ) + V23.GetHashCode( ) + + V30.GetHashCode( ) + V31.GetHashCode( ) + V32.GetHashCode( ) + V33.GetHashCode( ); + } + } +} diff --git a/Sources/Math/Metrics/CosineDistance.cs b/Sources/Math/Metrics/CosineDistance.cs new file mode 100644 index 00000000..ba61dc06 --- /dev/null +++ b/Sources/Math/Metrics/CosineDistance.cs @@ -0,0 +1,57 @@ +// AForge Math Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2010 +// contacts@aforgenet.com +// + +namespace AForge.Math.Metrics +{ + using System; + + /// + /// Cosine distance metric. + /// + /// + /// This class represents the cosine distance metric (1 - cosine similarity) + /// . + /// + /// + /// Sample usage: + /// + /// // instantiate new distance class + /// CosineDistance dist = new CosineDistance(); + /// // create two vectors for inputs + /// double[] p = new double[] { 2.5, 3.5, 3.0, 3.5, 2.5, 3.0 }; + /// double[] q = new double[] { 3.0, 3.5, 1.5, 5.0, 3.5, 3.0 }; + /// // get distance between the two vectors + /// double distance = dist.GetDistance( p, q ); + /// + /// + /// + public sealed class CosineDistance : IDistance + { + /// + /// Returns distance between two N-dimensional double vectors. + /// + /// + /// 1st point vector. + /// 2nd point vector. + /// + /// Returns Cosine distance between two supplied vectors. + /// + /// Thrown if the two vectors are of different dimensions (if specified + /// array have different length). + /// + public double GetDistance( double[] p, double[] q ) + { + double distance; + + CosineSimilarity dist = new CosineSimilarity( ); + distance = (double) 1 - dist.GetSimilarityScore( p, q ); + + return distance; + } + } +} diff --git a/Sources/Math/Metrics/CosineSimilarity.cs b/Sources/Math/Metrics/CosineSimilarity.cs new file mode 100644 index 00000000..9c39b493 --- /dev/null +++ b/Sources/Math/Metrics/CosineSimilarity.cs @@ -0,0 +1,69 @@ +// AForge Math Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2010 +// contacts@aforgenet.com +// + +namespace AForge.Math.Metrics +{ + using System; + + /// + /// Cosine similarity metric. + /// + /// + /// This class represents the + /// Cosine Similarity metric. + /// + /// Sample usage: + /// + /// // instantiate new similarity class + /// CosineSimilarity sim = new CosineSimilarity( ); + /// // create two vectors for inputs + /// double[] p = new double[] { 2.5, 3.5, 3.0, 3.5, 2.5, 3.0 }; + /// double[] q = new double[] { 3.0, 3.5, 1.5, 5.0, 3.5, 3.0 }; + /// // get similarity between the two vectors + /// double similarityScore = sim.GetSimilarityScore( p, q ); + /// + /// + /// + public sealed class CosineSimilarity : ISimilarity + { + /// + /// Returns similarity score for two N-dimensional double vectors. + /// + /// + /// 1st point vector. + /// 2nd point vector. + /// + /// Returns Cosine similarity between two supplied vectors. + /// + /// Thrown if the two vectors are of different dimensions (if specified + /// array have different length). + /// + public double GetSimilarityScore( double[] p, double[] q ) + { + double denominator = 0, numerator = 0, pSumSq = 0, qSumSq = 0; + double pValue, qValue; + + if ( p.Length != q.Length ) + throw new ArgumentException( "Input vectors must be of the same dimension." ); + + for ( int x = 0, len = p.Length; x < len; x++ ) + { + pValue = p[x]; + qValue = q[x]; + + numerator += pValue * qValue; + pSumSq += pValue * pValue; + qSumSq += qValue * qValue; + } + + denominator = Math.Sqrt( pSumSq ) * Math.Sqrt( qSumSq ); + + return ( denominator == 0 ) ? 0 : numerator / denominator; + } + } +} diff --git a/Sources/Math/Metrics/EuclideanDistance.cs b/Sources/Math/Metrics/EuclideanDistance.cs new file mode 100644 index 00000000..934c4a18 --- /dev/null +++ b/Sources/Math/Metrics/EuclideanDistance.cs @@ -0,0 +1,63 @@ +// AForge Math Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2010 +// contacts@aforgenet.com +// + +namespace AForge.Math.Metrics +{ + using System; + + /// + /// Euclidean distance metric. + /// + /// + /// This class represents the + /// Euclidean distance metric. + /// + /// Sample usage: + /// + /// // instantiate new distance class + /// EuclideanDistance dist = new EuclideanDistance( ); + /// // create two vectors for inputs + /// double[] p = new double[] { 2.5, 3.5, 3.0, 3.5, 2.5, 3.0 }; + /// double[] q = new double[] { 3.0, 3.5, 1.5, 5.0, 3.5, 3.0 }; + /// // get distance between the two vectors + /// double distance = dist.GetDistance( p, q ); + /// + /// + /// + public sealed class EuclideanDistance : IDistance + { + /// + /// Returns distance between two N-dimensional double vectors. + /// + /// + /// 1st point vector. + /// 2nd point vector. + /// + /// Returns Euclidean distance between two supplied vectors. + /// + /// Thrown if the two vectors are of different dimensions (if specified + /// array have different length). + /// + public double GetDistance( double[] p, double[] q ) + { + double distance = 0; + double diff = 0; + + if ( p.Length != q.Length ) + throw new ArgumentException( "Input vectors must be of the same dimension." ); + + for ( int x = 0, len = p.Length; x < len; x++ ) + { + diff = p[x] - q[x]; + distance += diff * diff; + } + + return Math.Sqrt( distance ); + } + } +} diff --git a/Sources/Math/Metrics/EuclideanSimilarity.cs b/Sources/Math/Metrics/EuclideanSimilarity.cs new file mode 100644 index 00000000..ede99d3a --- /dev/null +++ b/Sources/Math/Metrics/EuclideanSimilarity.cs @@ -0,0 +1,57 @@ +// AForge Math Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2010 +// contacts@aforgenet.com +// + +namespace AForge.Math.Metrics +{ + using System; + + /// + /// Euclidean similarity metric. + /// + /// + /// This class represents the + /// Euclidean Similarity metric, + /// which is calculated as 1.0 / ( 1.0 + EuclideanDistance ). + /// + /// Sample usage: + /// + /// // instantiate new similarity class + /// EuclideanSimilarity sim = new EuclideanSimilarity( ); + /// // create two vectors for inputs + /// double[] p = new double[] { 2.5, 3.5, 3.0, 3.5, 2.5, 3.0 }; + /// double[] q = new double[] { 3.0, 3.5, 1.5, 5.0, 3.5, 3.0 }; + /// // get simirarity between the two vectors + /// double similarityScore = sim.GetSimilarityScore( p, q ); + /// + /// + /// + public sealed class EuclideanSimilarity : ISimilarity + { + /// + /// Returns similarity score for two N-dimensional double vectors. + /// + /// + /// 1st point vector. + /// 2nd point vector. + /// + /// Returns Euclidean similarity between two supplied vectors. + /// + /// Thrown if the two vectors are of different dimensions (if specified + /// array have different length). + /// + public double GetSimilarityScore( double[] p, double[] q ) + { + double distance = 0; + + EuclideanDistance dist = new EuclideanDistance( ); + distance = 1.0 / ( 1.0 + dist.GetDistance( p, q ) ); + + return distance; + } + } +} diff --git a/Sources/Math/Metrics/HammingDistance.cs b/Sources/Math/Metrics/HammingDistance.cs new file mode 100644 index 00000000..d169256c --- /dev/null +++ b/Sources/Math/Metrics/HammingDistance.cs @@ -0,0 +1,62 @@ +// AForge Math Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2010 +// contacts@aforgenet.com +// + +namespace AForge.Math.Metrics +{ + using System; + + /// + /// Hamming distance metric. + /// + /// + /// This class represents the + /// Hamming distance metric. + /// + /// Sample usage: + /// + /// // instantiate new distance class + /// HammingDistance dist = new HammingDistance( ); + /// // create two vectors for inputs + /// double[] p = new double[] { 2.5, 3.5, 3.0, 3.5, 2.5, 3.0 }; + /// double[] q = new double[] { 3.0, 3.5, 1.5, 5.0, 3.5, 3.0 }; + /// // get distance between the two vectors + /// double distance = dist.GetDistance( p, q ); + /// + /// + /// + public sealed class HammingDistance : IDistance + { + /// + /// Returns distance between two N-dimensional double vectors. + /// + /// + /// 1st point vector. + /// 2nd point vector. + /// + /// Returns Hamming distance between two supplied vectors. + /// + /// Thrown if the two vectors are of different dimensions (if specified + /// array have different length). + /// + public double GetDistance( double[] p, double[] q ) + { + double distance = 0; + + if ( p.Length != q.Length ) + throw new ArgumentException( "Input vectors must be of the same dimension." ); + + for ( int x = 0, len = p.Length; x < len; x++ ) + { + if ( p[x] != q[x] ) + distance++; + } + + return distance; + } + } +} diff --git a/Sources/Math/Metrics/IDistance.cs b/Sources/Math/Metrics/IDistance.cs new file mode 100644 index 00000000..08dd444d --- /dev/null +++ b/Sources/Math/Metrics/IDistance.cs @@ -0,0 +1,41 @@ +// AForge Math Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2010 +// contacts@aforgenet.com +// + +namespace AForge.Math.Metrics +{ + using System; + + /// + /// Interface for distance metric algorithms. + /// + /// + /// The interface defines a set of methods implemented + /// by distance metric algorithms. These algorithms typically take a set of points and return a + /// distance measure of the x and y coordinates. In this case, the points are represented by two vectors. + /// + /// Distance metric algorithms are used in many machine learning algorithms e.g K-nearest neighbor + /// and K-means clustering. + /// + /// For additional details about distance metrics, documentation of the + /// particular algorithms should be studied. + /// + /// + public interface IDistance + { + /// + /// Returns distance between two N-dimensional double vectors. + /// + /// + /// 1st point vector. + /// 2nd point vector. + /// + /// Returns distance measurement determined by the given algorithm. + /// + double GetDistance( double[] p, double[] q ); + } +} diff --git a/Sources/Math/Metrics/ISimilarity.cs b/Sources/Math/Metrics/ISimilarity.cs new file mode 100644 index 00000000..cdd015b9 --- /dev/null +++ b/Sources/Math/Metrics/ISimilarity.cs @@ -0,0 +1,41 @@ +// AForge Math Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2010 +// contacts@aforgenet.com +// + +namespace AForge.Math.Metrics +{ + using System; + + /// + /// Interface for similarity algorithms. + /// + /// + /// The interface defines a set of methods implemented + /// by similarity and correlation algorithms. These algorithms typically take a set of points and return a + /// similarity score for the two vectors. + /// + /// Similarity and correlation algorithms are used in many machine learning and collaborative + /// filtering algorithms. + /// + /// For additional details about similarity metrics, documentation of the + /// particular algorithms should be studied. + /// + /// + public interface ISimilarity + { + /// + /// Returns similarity score for two N-dimensional double vectors. + /// + /// + /// 1st point vector. + /// 2nd point vector. + /// + /// Returns similarity score determined by the given algorithm. + /// + double GetSimilarityScore( double[] p, double[] q ); + } +} diff --git a/Sources/Math/Metrics/JaccardDistance.cs b/Sources/Math/Metrics/JaccardDistance.cs new file mode 100644 index 00000000..ca197eb5 --- /dev/null +++ b/Sources/Math/Metrics/JaccardDistance.cs @@ -0,0 +1,75 @@ +// AForge Math Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2010 +// contacts@aforgenet.com +// + +namespace AForge.Math.Metrics +{ + using System; + + /// + /// Jaccard distance metric. + /// + /// + /// This class represents the + /// Jaccard distance metric. + /// + /// Sample usage: + /// + /// // instantiate new distance class + /// JaccardDistance dist = new JaccardDistance( ); + /// // create two vectors for inputs + /// double[] p = new double[] { 2.5, 3.5, 3.0, 3.5, 2.5, 3.0 }; + /// double[] q = new double[] { 3.0, 3.5, 1.5, 5.0, 3.5, 3.0 }; + /// // get distance between the two vectors + /// double distance = dist.GetDistance( p, q ); + /// + /// + /// + public sealed class JaccardDistance : IDistance + { + /// + /// Returns distance between two N-dimensional double vectors. + /// + /// + /// 1st point vector. + /// 2nd point vector. + /// + /// Returns Jaccard distance between two supplied vectors. + /// + /// Thrown if the two vectors are of different dimensions (if specified + /// array have different length). + /// + public double GetDistance( double[] p, double[] q ) + { + double distance = 0; + int intersection = 0, union = 0; + + if ( p.Length != q.Length ) + throw new ArgumentException( "Input vectors must be of the same dimension." ); + + for ( int x = 0, len = p.Length; x < len; x++ ) + { + if ( ( p[x] != 0 ) || ( q[x] != 0 ) ) + { + if ( p[x] == q[x] ) + { + intersection++; + } + + union++; + } + } + + if ( union != 0 ) + distance = 1.0 - ( (double) intersection / (double) union ); + else + distance = 0; + + return distance; + } + } +} diff --git a/Sources/Math/Metrics/ManhattanDistance.cs b/Sources/Math/Metrics/ManhattanDistance.cs new file mode 100644 index 00000000..ac15cd07 --- /dev/null +++ b/Sources/Math/Metrics/ManhattanDistance.cs @@ -0,0 +1,62 @@ +// AForge Math Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2010 +// contacts@aforgenet.com +// + +namespace AForge.Math.Metrics +{ + using System; + + /// + /// Manhattan distance metric. + /// + /// + /// This class represents the + /// Manhattan distance metric + /// (aka City Block and Taxi Cab distance). + /// + /// Sample usage: + /// + /// // instantiate new distance class + /// ManhattanDistance dist = new ManhattanDistance( ); + /// // create two vectors for inputs + /// double[] p = new double[] { 2.5, 3.5, 3.0, 3.5, 2.5, 3.0 }; + /// double[] q = new double[] { 3.0, 3.5, 1.5, 5.0, 3.5, 3.0 }; + /// // get distance between the two vectors + /// double distance = dist.GetDistance( p, q ); + /// + /// + /// + public sealed class ManhattanDistance : IDistance + { + /// + /// Returns distance between two N-dimensional double vectors. + /// + /// + /// 1st point vector. + /// 2nd point vector. + /// + /// Returns Manhattan distance between two supplied vectors. + /// + /// Thrown if the two vectors are of different dimensions (if specified + /// array have different length). + /// + public double GetDistance( double[] p, double[] q ) + { + double distance = 0; + + if ( p.Length != q.Length ) + throw new ArgumentException( "Input vectors must be of the same dimension." ); + + for ( int x = 0, len = p.Length; x < len; x++ ) + { + distance += Math.Abs( p[x] - q[x] ); + } + + return distance; + } + } +} diff --git a/Sources/Math/Metrics/PearsonCorrelation.cs b/Sources/Math/Metrics/PearsonCorrelation.cs new file mode 100644 index 00000000..f452f386 --- /dev/null +++ b/Sources/Math/Metrics/PearsonCorrelation.cs @@ -0,0 +1,73 @@ +// AForge Math Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2010 +// contacts@aforgenet.com +// + +namespace AForge.Math.Metrics +{ + using System; + + /// + /// Pearson correlation metric. + /// + /// + /// This class represents the + /// Pearson correlation metric. + /// + /// Sample usage: + /// + /// // instantiate new pearson correlation class + /// PearsonCorrelation cor = new PearsonCorrelation( ); + /// // create two vectors for inputs + /// double[] p = new double[] { 2.5, 3.5, 3.0, 3.5, 2.5, 3.0 }; + /// double[] q = new double[] { 3.0, 3.5, 1.5, 5.0, 3.5, 3.0 }; + /// // get correlation between the two vectors + /// double correlation = cor.GetSimilarityScore( p, q ); + /// + /// + /// + public sealed class PearsonCorrelation : ISimilarity + { + /// + /// Returns the pearson correlation for two N-dimensional double vectors. + /// + /// + /// 1st point vector. + /// 2nd point vector. + /// + /// Returns Pearson correlation between two supplied vectors. + /// + /// Thrown if the two vectors are of different dimensions (if specified + /// array have different length). + /// + public double GetSimilarityScore( double[] p, double[] q ) + { + double pSum = 0, qSum = 0, pSumSq = 0, qSumSq = 0, productSum = 0; + double pValue, qValue; + int n = p.Length; + + if ( n != q.Length ) + throw new ArgumentException( "Input vectors must be of the same dimension." ); + + for ( int x = 0; x < n; x++ ) + { + pValue = p[x]; + qValue = q[x]; + + pSum += pValue; + qSum += qValue; + pSumSq += pValue * pValue; + qSumSq += qValue * qValue; + productSum += pValue * qValue; + } + + double numerator = productSum - ( ( pSum * qSum ) / (double) n ); + double denominator = Math.Sqrt( ( pSumSq - ( pSum * pSum ) / (double) n ) * ( qSumSq - ( qSum * qSum ) / (double) n ) ); + + return ( denominator == 0 ) ? 0 : numerator / denominator; + } + } +} diff --git a/Sources/Math/PerlinNoise.cs b/Sources/Math/PerlinNoise.cs new file mode 100644 index 00000000..a6e18f92 --- /dev/null +++ b/Sources/Math/PerlinNoise.cs @@ -0,0 +1,271 @@ +// AForge Math Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2005-2009 +// andrew.kirillov@aforgenet.com +// + +namespace AForge.Math +{ + using System; + + /// + /// Perlin noise function. + /// + /// + /// The class implements 1-D and 2-D Perlin noise functions, which represent + /// sum of several smooth noise functions with different frequency and amplitude. The description + /// of Perlin noise function and its calculation may be found on + /// Hugo Elias's page. + /// + /// + /// The number of noise functions, which comprise the resulting Perlin noise function, is + /// set by property. Amplitude and frequency values for each octave + /// start from values, which are set by and + /// properties. + /// + /// Sample usage (clouds effect): + /// + /// // create Perlin noise function + /// PerlinNoise noise = new PerlinNoise( 8, 0.5, 1.0 / 32 ); + /// // generate clouds effect + /// float[,] texture = new float[height, width]; + /// + /// for ( int y = 0; y < height; y++ ) + /// { + /// for ( int x = 0; x < width; x++ ) + /// { + /// texture[y, x] = + /// Math.Max( 0.0f, Math.Min( 1.0f, + /// (float) noise.Function2D( x, y ) * 0.5f + 0.5f + /// ) ); + /// } + /// } + /// + /// + /// + public class PerlinNoise + { + private double initFrequency = 1.0; + private double initAmplitude = 1.0; + private double persistence = 0.65; + private int octaves = 4; + + /// + /// Initial frequency. + /// + /// + /// The property sets initial frequency of the first octave. Frequencies for + /// next octaves are calculated using the next equation:
+ /// frequencyi = * 2i, + /// where i = [0, ). + ///
+ /// + /// Default value is set to 1. + ///
+ /// + public double InitFrequency + { + get { return initFrequency; } + set { initFrequency = value; } + } + + /// + /// Initial amplitude. + /// + /// + /// The property sets initial amplitude of the first octave. Amplitudes for + /// next octaves are calculated using the next equation:
+ /// amplitudei = * i, + /// where i = [0, ). + ///
+ /// + /// Default value is set to 1. + ///
+ /// + public double InitAmplitude + { + get { return initAmplitude; } + set { initAmplitude = value; } + } + + /// + /// Persistence value. + /// + /// + /// The property sets so called persistence value, which controls the way + /// how amplitude is calculated for each octave comprising + /// the Perlin noise function. + /// + /// Default value is set to 0.65. + /// + /// + public double Persistence + { + get { return persistence; } + set { persistence = value; } + } + + /// + /// Number of octaves, [1, 32]. + /// + /// + /// The property sets the number of noise functions, which sum up the resulting + /// Perlin noise function. + /// + /// Default value is set to 4. + /// + /// + public int Octaves + { + get { return octaves; } + set { octaves = System.Math.Max( 1, System.Math.Min( 32, value ) ); } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public PerlinNoise( ) { } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Number of octaves (see property). + /// Persistence value (see property). + /// + public PerlinNoise( int octaves, double persistence ) + { + this.octaves = octaves; + this.persistence = persistence; + } + /// + /// Initializes a new instance of the class. + /// + /// + /// Number of octaves (see property). + /// Persistence value (see property). + /// Initial frequency (see property). + /// Initial amplitude (see property). + /// + public PerlinNoise( int octaves, double persistence, double initFrequency, double initAmplitude ) + { + this.octaves = octaves; + this.persistence = persistence; + this.initFrequency = initFrequency; + this.initAmplitude = initAmplitude; + } + + /// + /// 1-D Perlin noise function. + /// + /// + /// x value. + /// + /// Returns function's value at point . + /// + public double Function( double x ) + { + double frequency = initFrequency; + double amplitude = initAmplitude; + double sum = 0; + + // octaves + for ( int i = 0; i < octaves; i++ ) + { + sum += SmoothedNoise( x * frequency ) * amplitude; + + frequency *= 2; + amplitude *= persistence; + } + return sum; + } + + /// + /// 2-D Perlin noise function. + /// + /// + /// x value. + /// y value. + /// + /// Returns function's value at point (, ). + /// + public double Function2D( double x, double y ) + { + double frequency = initFrequency; + double amplitude = initAmplitude; + double sum = 0; + + // octaves + for ( int i = 0; i < octaves; i++ ) + { + sum += SmoothedNoise( x * frequency, y * frequency ) * amplitude; + + frequency *= 2; + amplitude *= persistence; + } + return sum; + } + + + /// + /// Ordinary noise function + /// + private double Noise( int x ) + { + int n = ( x << 13 ) ^ x; + + return ( 1.0 - ( ( n * ( n * n * 15731 + 789221 ) + 1376312589 ) & 0x7fffffff ) / 1073741824.0 ); + } + private double Noise( int x, int y ) + { + int n = x + y * 57; + n = ( n << 13 ) ^ n; + + return ( 1.0 - ( ( n * ( n * n * 15731 + 789221 ) + 1376312589 ) & 0x7fffffff ) / 1073741824.0 ); + } + + + /// + /// Smoothed noise. + /// + private double SmoothedNoise( double x ) + { + int xInt = (int) x; + double xFrac = x - xInt; + + return CosineInterpolate( Noise( xInt ), Noise( xInt + 1 ), xFrac ); + } + private double SmoothedNoise( double x, double y ) + { + int xInt = (int) x; + int yInt = (int) y; + double xFrac = x - xInt; + double yFrac = y - yInt; + + // get four noise values + double x0y0 = Noise( xInt, yInt ); + double x1y0 = Noise( xInt + 1, yInt ); + double x0y1 = Noise( xInt, yInt + 1 ); + double x1y1 = Noise( xInt + 1, yInt + 1 ); + + // x interpolation + double v1 = CosineInterpolate( x0y0, x1y0, xFrac ); + double v2 = CosineInterpolate( x0y1, x1y1, xFrac ); + // y interpolation + return CosineInterpolate( v1, v2, yFrac ); + } + + /// + /// Cosine interpolation. + /// + private double CosineInterpolate( double x1, double x2, double a ) + { + double f = ( 1 - Math.Cos( a * Math.PI ) ) * 0.5; + + return x1 * ( 1 - f ) + x2 * f; + } + } +} diff --git a/Sources/Math/Properties/AssemblyInfo.cs b/Sources/Math/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..0e259496 --- /dev/null +++ b/Sources/Math/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle( "AForge.Math" )] +[assembly: AssemblyDescription( "" )] +[assembly: AssemblyConfiguration( "" )] +[assembly: AssemblyCompany( "AForge" )] +[assembly: AssemblyProduct( "AForge.NET" )] +[assembly: AssemblyCopyright( "AForge © 2012" )] +[assembly: AssemblyTrademark( "" )] +[assembly: AssemblyCulture( "" )] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible( false )] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid( "34dc1605-0542-49e2-b72b-89363706b71a" )] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion( "2.2.5.0" )] +[assembly: AssemblyFileVersion( "2.2.5.0" )] diff --git a/Sources/Math/Random/ExponentialGenerator.cs b/Sources/Math/Random/ExponentialGenerator.cs new file mode 100644 index 00000000..af9034d4 --- /dev/null +++ b/Sources/Math/Random/ExponentialGenerator.cs @@ -0,0 +1,124 @@ +// AForge Math Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2011 +// contacts@aforgenet.com +// + +namespace AForge.Math.Random +{ + using System; + + /// + /// Exponential random numbers generator. + /// + /// + /// The random number generator generates exponential + /// random numbers with specified rate value (lambda). + /// + /// The generator uses generator as a base + /// to generate random numbers. + /// + /// Sample usage: + /// + /// // create instance of random generator + /// IRandomNumberGenerator generator = new ExponentialGenerator( 5 ); + /// // generate random number + /// float randomNumber = generator.Next( ); + /// + /// + /// + public class ExponentialGenerator : IRandomNumberGenerator + { + private UniformOneGenerator rand = null; + + private float rate = 0; + + /// + /// Rate value (inverse mean). + /// + /// + /// The rate value should be positive and non zero. + /// + public float Rate + { + get { return rate; } + } + + /// + /// Mean value of the generator. + /// + /// + public float Mean + { + get { return 1.0f / rate; } + } + + /// + /// Variance value of the generator. + /// + /// + public float Variance + { + get { return 1f / ( rate * rate ); } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Rate value. + /// + /// Rate value should be greater than zero. + /// + public ExponentialGenerator( float rate ) : + this( rate, 0 ) + { + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Rate value (inverse mean). + /// Seed value to initialize random numbers generator. + /// + /// Rate value should be greater than zero. + /// + public ExponentialGenerator( float rate, int seed ) + { + // check rate value + if ( rate <= 0 ) + throw new ArgumentException( "Rate value should be greater than zero." ); + + this.rand = new UniformOneGenerator( seed ); + this.rate = rate; + } + + /// + /// Generate next random number + /// + /// + /// Returns next random number. + /// + public float Next( ) + { + return - (float) Math.Log( rand.Next( ) ) / rate; + } + + /// + /// Set seed of the random numbers generator. + /// + /// + /// Seed value. + /// + /// Resets random numbers generator initializing it with + /// specified seed value. + /// + public void SetSeed( int seed ) + { + rand = new UniformOneGenerator( seed ); + } + } +} diff --git a/Sources/Math/Random/GaussianGenerator.cs b/Sources/Math/Random/GaussianGenerator.cs new file mode 100644 index 00000000..29a6fc94 --- /dev/null +++ b/Sources/Math/Random/GaussianGenerator.cs @@ -0,0 +1,121 @@ +// AForge Math Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2011 +// contacts@aforgenet.com +// + +namespace AForge.Math.Random +{ + using System; + + /// + /// Gaussian random numbers generator. + /// + /// + /// The random number generator generates gaussian + /// random numbers with specified mean and standard deviation values. + /// + /// The generator uses generator as base + /// to generate random numbers. + /// + /// Sample usage: + /// + /// // create instance of random generator + /// IRandomNumberGenerator generator = new GaussianGenerator( 5.0, 1.5 ); + /// // generate random number + /// float randomNumber = generator.Next( ); + /// + /// + /// + public class GaussianGenerator : IRandomNumberGenerator + { + // standard numbers generator + private StandardGenerator rand = null; + // mean value + private float mean; + // standard deviation value + private float stdDev; + + /// + /// Mean value of the generator. + /// + /// + public float Mean + { + get { return mean; } + } + + /// + /// Variance value of the generator. + /// + /// + public float Variance + { + get { return stdDev * stdDev; } + } + + /// + /// Standard deviation value. + /// + /// + public float StdDev + { + get { return stdDev; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Mean value. + /// Standard deviation value. + /// + public GaussianGenerator( float mean, float stdDev ) : + this( mean, stdDev, 0 ) + { + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Mean value. + /// Standard deviation value. + /// Seed value to initialize random numbers generator. + /// + public GaussianGenerator( float mean, float stdDev, int seed ) + { + this.mean = mean; + this.stdDev = stdDev; + + rand = new StandardGenerator( seed ); + } + + /// + /// Generate next random number. + /// + /// + /// Returns next random number. + /// + public float Next( ) + { + return (float) rand.Next( ) * stdDev + mean; + } + + /// + /// Set seed of the random numbers generator. + /// + /// + /// Seed value. + /// + /// Resets random numbers generator initializing it with + /// specified seed value. + /// + public void SetSeed( int seed ) + { + rand = new StandardGenerator( seed ); + } + } +} diff --git a/Sources/Math/Random/IRandomNumberGenerator.cs b/Sources/Math/Random/IRandomNumberGenerator.cs new file mode 100644 index 00000000..0bd25343 --- /dev/null +++ b/Sources/Math/Random/IRandomNumberGenerator.cs @@ -0,0 +1,51 @@ +// AForge Math Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2011 +// contacts@aforgenet.com +// + +namespace AForge.Math.Random +{ + using System; + + /// + /// Interface for random numbers generators. + /// + /// + /// The interface defines set of methods and properties, which should + /// be implemented by different algorithms for random numbers generatation. + /// + /// + public interface IRandomNumberGenerator + { + /// + /// Mean value of generator. + /// + /// + float Mean { get; } + + /// + /// Variance value of generator. + /// + /// + float Variance { get; } + + /// + /// Generate next random number. + /// + /// + /// Returns next random number. + /// + float Next( ); + + /// + /// Set seed of the random numbers generator. + /// + /// + /// Seed value. + /// + void SetSeed( int seed ); + } +} diff --git a/Sources/Math/Random/StandardGenerator.cs b/Sources/Math/Random/StandardGenerator.cs new file mode 100644 index 00000000..f9b0130f --- /dev/null +++ b/Sources/Math/Random/StandardGenerator.cs @@ -0,0 +1,132 @@ +// AForge Math Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2011 +// contacts@aforgenet.com +// + +namespace AForge.Math.Random +{ + using System; + + /// + /// Standard random numbers generator. + /// + /// + /// The random number generator generates gaussian + /// random numbers with zero mean and standard deviation of one. The generator + /// implements polar form of the Box-Muller transformation. + /// + /// The generator uses generator as a base + /// to generate random numbers. + /// + /// Sample usage: + /// + /// // create instance of random generator + /// IRandomNumberGenerator generator = new StandardGenerator( ); + /// // generate random number + /// float randomNumber = generator.Next( ); + /// + /// + /// + public class StandardGenerator : IRandomNumberGenerator + { + private UniformOneGenerator rand = null; + + private float secondValue; + private bool useSecond = false; + + /// + /// Mean value of the generator. + /// + /// + public float Mean + { + get { return 0; } + } + + /// + /// Variance value of the generator. + /// + /// + public float Variance + { + get { return 1; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public StandardGenerator( ) + { + rand = new UniformOneGenerator( ); + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Seed value to initialize random numbers generator. + /// + public StandardGenerator( int seed ) + { + rand = new UniformOneGenerator( seed ); + } + + /// + /// Generate next random number. + /// + /// + /// Returns next random number. + /// + public float Next( ) + { + // check if we can use second value + if ( useSecond ) + { + // return the second number + useSecond = false; + return secondValue; + } + + float x1, x2, w, firstValue; + + // generate new numbers + do + { + x1 = (float) rand.Next( ) * 2.0f - 1.0f; + x2 = (float) rand.Next( ) * 2.0f - 1.0f; + w = x1 * x1 + x2 * x2; + } + while ( w >= 1.0f ); + + w = (float) Math.Sqrt( ( -2.0f * Math.Log( w ) ) / w ); + + // get two standard random numbers + firstValue = x1 * w; + secondValue = x2 * w; + + useSecond = true; + + // return the first number + return firstValue; + } + + /// + /// Set seed of the random numbers generator. + /// + /// + /// Seed value. + /// + /// Resets random numbers generator initializing it with + /// specified seed value. + /// + public void SetSeed( int seed ) + { + rand = new UniformOneGenerator( seed ); + useSecond = false; + } + } +} diff --git a/Sources/Math/Random/UniformGenerator.cs b/Sources/Math/Random/UniformGenerator.cs new file mode 100644 index 00000000..fcda9235 --- /dev/null +++ b/Sources/Math/Random/UniformGenerator.cs @@ -0,0 +1,128 @@ +// AForge Math Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2011 +// contacts@aforgenet.com +// + +namespace AForge.Math.Random +{ + using System; + using AForge; + + /// + /// Uniform random numbers generator. + /// + /// + /// The random numbers generator generates uniformly + /// distributed numbers in the specified range - values + /// are greater or equal to minimum range's value and less than maximum range's + /// value. + /// + /// The generator uses generator + /// to generate random numbers. + /// + /// Sample usage: + /// + /// // create instance of random generator + /// IRandomNumberGenerator generator = new UniformGenerator( new Range( 50, 100 ) ); + /// // generate random number + /// float randomNumber = generator.Next( ); + /// + /// + /// + public class UniformGenerator : IRandomNumberGenerator + { + private UniformOneGenerator rand = null; + + // generator's range + private float min; + private float length; + + /// + /// Mean value of the generator. + /// + /// + public float Mean + { + get { return ( min + min + length ) / 2; } + } + + /// + /// Variance value of the generator. + /// + /// + public float Variance + { + get { return length * length / 12; } + } + + /// + /// Random numbers range. + /// + /// + /// Range of random numbers to generate. Generated numbers are + /// greater or equal to minimum range's value and less than maximum range's + /// value. + /// + /// + public Range Range + { + get { return new Range( min, min + length ); } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Random numbers range. + /// + /// Initializes random numbers generator with zero seed. + /// + public UniformGenerator( Range range ) : + this( range, 0 ) + { + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Random numbers range. + /// Seed value to initialize random numbers generator. + /// + public UniformGenerator( Range range, int seed ) + { + rand = new UniformOneGenerator( seed ); + + min = range.Min; + length = range.Length; + } + + /// + /// Generate next random number. + /// + /// + /// Returns next random number. + /// + public float Next( ) + { + return (float) rand.Next( ) * length + min; + } + + /// + /// Set seed of the random numbers generator. + /// + /// + /// Seed value. + /// + /// Resets random numbers generator initializing it with + /// specified seed value. + /// + public void SetSeed( int seed ) + { + rand = new UniformOneGenerator( seed ); + } + } +} diff --git a/Sources/Math/Random/UniformOneGenerator.cs b/Sources/Math/Random/UniformOneGenerator.cs new file mode 100644 index 00000000..bf34c708 --- /dev/null +++ b/Sources/Math/Random/UniformOneGenerator.cs @@ -0,0 +1,105 @@ +// AForge Math Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2011 +// contacts@aforgenet.com +// + +namespace AForge.Math.Random +{ + using System; + using AForge; + + /// + /// Uniform random numbers generator in the range of [0, 1). + /// + /// + /// The random number generator generates uniformly + /// distributed numbers in the range of [0, 1) - greater or equal to 0.0 + /// and less than 1.0. + /// + /// At this point the generator is based on the + /// internal .NET generator, but may be rewritten to + /// use faster generation algorithm. + /// + /// Sample usage: + /// + /// // create instance of random generator + /// IRandomNumberGenerator generator = new UniformOneGenerator( ); + /// // generate random number + /// float randomNumber = generator.Next( ); + /// + /// + /// + public class UniformOneGenerator : IRandomNumberGenerator + { + // .NET random generator as a base + private ThreadSafeRandom rand = null; + + /// + /// Mean value of the generator. + /// + /// + public float Mean + { + get { return 0.5f; } + } + + /// + /// Variance value of the generator. + /// + /// + public float Variance + { + get { return 1f / 12; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Initializes random numbers generator with zero seed. + /// + public UniformOneGenerator( ) + { + rand = new ThreadSafeRandom( 0 ); + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Seed value to initialize random numbers generator. + /// + public UniformOneGenerator( int seed ) + { + rand = new ThreadSafeRandom( seed ); + } + + /// + /// Generate next random number. + /// + /// + /// Returns next random number. + /// + public float Next( ) + { + return (float) rand.NextDouble( ); + } + + /// + /// Set seed of the random numbers generator. + /// + /// + /// Seed value. + /// + /// Resets random numbers generator initializing it with + /// specified seed value. + /// + public void SetSeed( int seed ) + { + rand = new ThreadSafeRandom( seed ); + } + } +} diff --git a/Sources/Math/SVD.cs b/Sources/Math/SVD.cs new file mode 100644 index 00000000..29c4539a --- /dev/null +++ b/Sources/Math/SVD.cs @@ -0,0 +1,397 @@ +// AForge Math Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2014 +// aforge.net@gmail.com +// + +namespace AForge.Math +{ + using System; + + // Just a copy-paste of SVD algorithm from Numerical Recipes but updated for C# + // (as authors state, the code is aimed to be machine readable, so blame them + // for all those c/f/g/h/s variable) + internal class svd + { + public static void svdcmp( double[,] a, out double[] w, out double[,] v ) + { + // number of rows in A + int m = a.GetLength( 0 ); + // number of columns in A + int n = a.GetLength( 1 ); + + if ( m < n ) + { + throw new ArgumentException( "Number of rows in A must be greater or equal to number of columns" ); + } + + w = new double[n]; + v = new double[n, n]; + + + int flag, i, its, j, jj, k, l = 0, nm = 0; + double anorm, c, f, g, h, s, scale, x, y, z; + + double[] rv1 = new double[n]; + + // householder reduction to bidiagonal form + g = scale = anorm = 0.0; + + for ( i = 0; i < n; i++ ) + { + l = i + 1; + rv1[i] = scale * g; + g = s = scale = 0; + + if ( i < m ) + { + for ( k = i; k < m; k++ ) + { + scale += System.Math.Abs( a[k, i] ); + } + + if ( scale != 0.0 ) + { + for ( k = i; k < m; k++ ) + { + a[k, i] /= scale; + s += a[k, i] * a[k, i]; + } + + f = a[i, i]; + g = -Sign( System.Math.Sqrt( s ), f ); + h = f * g - s; + a[i, i] = f - g; + + if ( i != n - 1 ) + { + for ( j = l; j < n; j++ ) + { + for ( s = 0.0, k = i; k < m; k++ ) + { + s += a[k, i] * a[k, j]; + } + + f = s / h; + + for ( k = i; k < m; k++ ) + { + a[k, j] += f * a[k, i]; + } + } + } + + for ( k = i; k < m; k++ ) + { + a[k, i] *= scale; + } + } + } + + w[i] = scale * g; + g = s = scale = 0.0; + + if ( ( i < m ) && ( i != n - 1 ) ) + { + for ( k = l; k < n; k++ ) + { + scale += System.Math.Abs( a[i, k] ); + } + + if ( scale != 0.0 ) + { + for ( k = l; k < n; k++ ) + { + a[i, k] /= scale; + s += a[i, k] * a[i, k]; + } + + f = a[i, l]; + g = -Sign( System.Math.Sqrt( s ), f ); + h = f * g - s; + a[i, l] = f - g; + + for ( k = l; k < n; k++ ) + { + rv1[k] = a[i, k] / h; + } + + if ( i != m - 1 ) + { + for ( j = l; j < m; j++ ) + { + for ( s = 0.0, k = l; k < n; k++ ) + { + s += a[j, k] * a[i, k]; + } + for ( k = l; k < n; k++ ) + { + a[j, k] += s * rv1[k]; + } + } + } + + for ( k = l; k < n; k++ ) + { + a[i, k] *= scale; + } + } + } + anorm = System.Math.Max( anorm, ( System.Math.Abs( w[i] ) + System.Math.Abs( rv1[i] ) ) ); + } + + // accumulation of right-hand transformations + for ( i = n - 1; i >= 0; i-- ) + { + if ( i < n - 1 ) + { + if ( g != 0.0 ) + { + for ( j = l; j < n; j++ ) + { + v[j, i] = ( a[i, j] / a[i, l] ) / g; + } + + for ( j = l; j < n; j++ ) + { + for ( s = 0, k = l; k < n; k++ ) + { + s += a[i, k] * v[k, j]; + } + for ( k = l; k < n; k++ ) + { + v[k, j] += s * v[k, i]; + } + } + } + for ( j = l; j < n; j++ ) + { + v[i, j] = v[j, i] = 0; + } + } + v[i, i] = 1; + g = rv1[i]; + l = i; + } + + // accumulation of left-hand transformations + for ( i = n - 1; i >= 0; i-- ) + { + l = i + 1; + g = w[i]; + + if ( i < n - 1 ) + { + for ( j = l; j < n; j++ ) + { + a[i, j] = 0.0; + } + } + + if ( g != 0 ) + { + g = 1.0 / g; + + if ( i != n - 1 ) + { + for ( j = l; j < n; j++ ) + { + for ( s = 0, k = l; k < m; k++ ) + { + s += a[k, i] * a[k, j]; + } + + f = ( s / a[i, i] ) * g; + + for ( k = i; k < m; k++ ) + { + a[k, j] += f * a[k, i]; + } + } + } + + for ( j = i; j < m; j++ ) + { + a[j, i] *= g; + } + } + else + { + for ( j = i; j < m; j++ ) + { + a[j, i] = 0; + } + } + ++a[i, i]; + } + + // diagonalization of the bidiagonal form: Loop over singular values + // and over allowed iterations + for ( k = n - 1; k >= 0; k-- ) + { + for ( its = 1; its <= 30; its++ ) + { + flag = 1; + + for ( l = k; l >= 0; l-- ) + { + // test for splitting + nm = l - 1; + + if ( System.Math.Abs( rv1[l] ) + anorm == anorm ) + { + flag = 0; + break; + } + + if ( System.Math.Abs( w[nm] ) + anorm == anorm ) + break; + } + + if ( flag != 0 ) + { + c = 0.0; + s = 1.0; + for ( i = l; i <= k; i++ ) + { + f = s * rv1[i]; + + if ( System.Math.Abs( f ) + anorm != anorm ) + { + g = w[i]; + h = Pythag( f, g ); + w[i] = h; + h = 1.0 / h; + c = g * h; + s = -f * h; + + for ( j = 0; j < m; j++ ) + { + y = a[j, nm]; + z = a[j, i]; + a[j, nm] = y * c + z * s; + a[j, i] = z * c - y * s; + } + } + } + } + + z = w[k]; + + if ( l == k ) + { + // convergence + if ( z < 0.0 ) + { + // singular value is made nonnegative + w[k] = -z; + + for ( j = 0; j < n; j++ ) + { + v[j, k] = -v[j, k]; + } + } + break; + } + + if ( its == 30 ) + { + throw new ApplicationException( "No convergence in 30 svdcmp iterations" ); + } + + // shift from bottom 2-by-2 minor + x = w[l]; + nm = k - 1; + y = w[nm]; + g = rv1[nm]; + h = rv1[k]; + f = ( ( y - z ) * ( y + z ) + ( g - h ) * ( g + h ) ) / ( 2.0 * h * y ); + g = Pythag( f, 1.0 ); + f = ( ( x - z ) * ( x + z ) + h * ( ( y / ( f + Sign( g, f ) ) ) - h ) ) / x; + + // next QR transformation + c = s = 1.0; + + for ( j = l; j <= nm; j++ ) + { + i = j + 1; + g = rv1[i]; + y = w[i]; + h = s * g; + g = c * g; + z = Pythag( f, h ); + rv1[j] = z; + c = f / z; + s = h / z; + f = x * c + g * s; + g = g * c - x * s; + h = y * s; + y *= c; + + for ( jj = 0; jj < n; jj++ ) + { + x = v[jj, j]; + z = v[jj, i]; + v[jj, j] = x * c + z * s; + v[jj, i] = z * c - x * s; + } + + z = Pythag( f, h ); + w[j] = z; + + if ( z != 0 ) + { + z = 1.0 / z; + c = f * z; + s = h * z; + } + + f = c * g + s * y; + x = c * y - s * g; + + for ( jj = 0; jj < m; jj++ ) + { + y = a[jj, j]; + z = a[jj, i]; + a[jj, j] = y * c + z * s; + a[jj, i] = z * c - y * s; + } + } + + rv1[l] = 0.0; + rv1[k] = f; + w[k] = x; + } + } + } + + private static double Sign( double a, double b ) + { + return ( b >= 0.0 ) ? System.Math.Abs( a ) : -System.Math.Abs( a ); + } + + private static double Pythag( double a, double b ) + { + double at = System.Math.Abs( a ), bt = System.Math.Abs( b ), ct, result; + + if ( at > bt ) + { + ct = bt / at; + result = at * System.Math.Sqrt( 1.0 + ct * ct ); + } + else if ( bt > 0.0 ) + { + ct = at / bt; + result = bt * System.Math.Sqrt( 1.0 + ct * ct ); + } + else + { + result = 0.0; + } + + return result; + } + } +} diff --git a/Sources/Math/Statistics.cs b/Sources/Math/Statistics.cs new file mode 100644 index 00000000..4daa8201 --- /dev/null +++ b/Sources/Math/Statistics.cs @@ -0,0 +1,358 @@ +// AForge Math Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +namespace AForge.Math +{ + using System; + using AForge; + + /// + /// Set of statistics functions. + /// + /// + /// The class represents collection of simple functions used + /// in statistics. + /// + public static class Statistics + { + /// + /// Calculate mean value. + /// + /// + /// Histogram array. + /// + /// Returns mean value. + /// + /// The input array is treated as histogram, i.e. its + /// indexes are treated as values of stochastic function, but + /// array values are treated as "probabilities" (total amount of + /// hits). + /// + /// Sample usage: + /// + /// // create histogram array + /// int[] histogram = new int[] { 1, 1, 2, 3, 6, 8, 11, 12, 7, 3 }; + /// // calculate mean value + /// double mean = Statistics.Mean( histogram ); + /// // output it (5.759) + /// Console.WriteLine( "mean = " + mean.ToString( "F3" ) ); + /// + /// + /// + public static double Mean( int[] values ) + { + int hits; + double total = 0; + double mean = 0; + + // for all values + for ( int i = 0, n = values.Length; i < n; i++ ) + { + hits = values[i]; + // accumulate mean + mean += (double) i * hits; + // accumalate total + total += hits; + } + return ( total == 0 ) ? 0 : mean / total; + } + + /// + /// Calculate standard deviation. + /// + /// + /// Histogram array. + /// + /// Returns value of standard deviation. + /// + /// The input array is treated as histogram, i.e. its + /// indexes are treated as values of stochastic function, but + /// array values are treated as "probabilities" (total amount of + /// hits). + /// + /// Sample usage: + /// + /// // create histogram array + /// int[] histogram = new int[] { 1, 1, 2, 3, 6, 8, 11, 12, 7, 3 }; + /// // calculate standard deviation value + /// double stdDev = Statistics.StdDev( histogram ); + /// // output it (1.999) + /// Console.WriteLine( "std.dev. = " + stdDev.ToString( "F3" ) ); + /// + /// + /// + public static double StdDev( int[] values ) + { + return StdDev( values, Mean( values ) ); + } + + /// + /// Calculate standard deviation. + /// + /// + /// Histogram array. + /// Mean value of the histogram. + /// + /// Returns value of standard deviation. + /// + /// The input array is treated as histogram, i.e. its + /// indexes are treated as values of stochastic function, but + /// array values are treated as "probabilities" (total amount of + /// hits). + /// + /// The method is an equevalent to the method, + /// but it relieas on the passed mean value, which is previously calculated + /// using method. + /// + /// + public static double StdDev( int[] values, double mean ) + { + double stddev = 0; + double diff; + int hits; + int total = 0; + + // for all values + for ( int i = 0, n = values.Length; i < n; i++ ) + { + hits = values[i]; + diff = (double) i - mean; + // accumulate std.dev. + stddev += diff * diff * hits; + // accumalate total + total += hits; + } + + return ( total == 0 ) ? 0 : Math.Sqrt( stddev / total ); + } + + /// + /// Calculate median value. + /// + /// + /// Histogram array. + /// + /// Returns value of median. + /// + /// + /// The input array is treated as histogram, i.e. its + /// indexes are treated as values of stochastic function, but + /// array values are treated as "probabilities" (total amount of + /// hits). + /// + /// The median value is calculated accumulating histogram's + /// values starting from the left point until the sum reaches 50% of + /// histogram's sum. + /// + /// Sample usage: + /// + /// // create histogram array + /// int[] histogram = new int[] { 1, 1, 2, 3, 6, 8, 11, 12, 7, 3 }; + /// // calculate median value + /// int median = Statistics.Median( histogram ); + /// // output it (6) + /// Console.WriteLine( "median = " + median ); + /// + /// + /// + public static int Median( int[] values ) + { + int total = 0, n = values.Length; + + // for all values + for ( int i = 0; i < n; i++ ) + { + // accumalate total + total += values[i]; + } + + int halfTotal = total / 2; + int median = 0, v = 0; + + // find median value + for ( ; median < n; median++ ) + { + v += values[median]; + if ( v >= halfTotal ) + break; + } + + return median; + } + + /// + /// Get range around median containing specified percentage of values. + /// + /// + /// Histogram array. + /// Values percentage around median. + /// + /// Returns the range which containes specifies percentage + /// of values. + /// + /// + /// The input array is treated as histogram, i.e. its + /// indexes are treated as values of stochastic function, but + /// array values are treated as "probabilities" (total amount of + /// hits). + /// + /// The method calculates range of stochastic variable, which summary probability + /// comprises the specified percentage of histogram's hits. + /// + /// Sample usage: + /// + /// // create histogram array + /// int[] histogram = new int[] { 1, 1, 2, 3, 6, 8, 11, 12, 7, 3 }; + /// // get 75% range around median + /// IntRange range = Statistics.GetRange( histogram, 0.75 ); + /// // output it ([4, 8]) + /// Console.WriteLine( "range = [" + range.Min + ", " + range.Max + "]" ); + /// + /// + /// + public static IntRange GetRange( int[] values, double percent ) + { + int total = 0, n = values.Length; + + // for all values + for ( int i = 0; i < n; i++ ) + { + // accumalate total + total += values[i]; + } + + int min, max, hits; + int h = (int) ( total * ( percent + ( 1 - percent ) / 2 ) ); + + // get range min value + for ( min = 0, hits = total; min < n; min++ ) + { + hits -= values[min]; + if ( hits < h ) + break; + } + // get range max value + for ( max = n - 1, hits = total; max >= 0; max-- ) + { + hits -= values[max]; + if ( hits < h ) + break; + } + return new IntRange( min, max ); + } + + /// + /// Calculate entropy value. + /// + /// + /// Histogram array. + /// + /// Returns entropy value of the specified histagram array. + /// + /// The input array is treated as histogram, i.e. its + /// indexes are treated as values of stochastic function, but + /// array values are treated as "probabilities" (total amount of + /// hits). + /// + /// Sample usage: + /// + /// // create histogram array with 2 values of equal probabilities + /// int[] histogram1 = new int[2] { 3, 3 }; + /// // calculate entropy + /// double entropy1 = Statistics.Entropy( histogram1 ); + /// // output it (1.000) + /// Console.WriteLine( "entropy1 = " + entropy1.ToString( "F3" ) ); + /// + /// // create histogram array with 4 values of equal probabilities + /// int[] histogram2 = new int[4] { 1, 1, 1, 1 }; + /// // calculate entropy + /// double entropy2 = Statistics.Entropy( histogram2 ); + /// // output it (2.000) + /// Console.WriteLine( "entropy2 = " + entropy2.ToString( "F3" ) ); + /// + /// // create histogram array with 4 values of different probabilities + /// int[] histogram3 = new int[4] { 1, 2, 3, 4 }; + /// // calculate entropy + /// double entropy3 = Statistics.Entropy( histogram3 ); + /// // output it (1.846) + /// Console.WriteLine( "entropy3 = " + entropy3.ToString( "F3" ) ); + /// + /// + /// + public static double Entropy( int[] values ) + { + int n = values.Length; + int total = 0; + double entropy = 0; + double p; + + // calculate total amount of hits + for ( int i = 0; i < n; i++ ) + { + total += values[i]; + } + + if ( total != 0 ) + { + // for all values + for ( int i = 0; i < n; i++ ) + { + // get item's probability + p = (double) values[i] / total; + // calculate entropy + if ( p != 0 ) + entropy += ( -p * Math.Log( p, 2 ) ); + } + } + return entropy; + } + + /// + /// Calculate mode value. + /// + /// + /// Histogram array. + /// + /// Returns mode value of the histogram array. + /// + /// + /// The input array is treated as histogram, i.e. its + /// indexes are treated as values of stochastic function, but + /// array values are treated as "probabilities" (total amount of + /// hits). + /// + /// Returns the minimum mode value if the specified histogram is multimodal. + /// + /// Sample usage: + /// + /// // create array + /// int[] values = new int[] { 1, 1, 2, 3, 6, 8, 11, 12, 7, 3 }; + /// // calculate mode value + /// int mode = Statistics.Mode( values ); + /// // output it (7) + /// Console.WriteLine( "mode = " + mode ); + /// + /// + /// + public static int Mode( int[] values ) + { + int mode = 0, curMax = 0; + + for ( int i = 0, length = values.Length; i < length; i++ ) + { + if ( values[i] > curMax ) + { + curMax = values[i]; + mode = i; + } + } + + return mode; + } + } +} diff --git a/Sources/Math/Tools.cs b/Sources/Math/Tools.cs new file mode 100644 index 00000000..77c3cd36 --- /dev/null +++ b/Sources/Math/Tools.cs @@ -0,0 +1,157 @@ +// AForge Math Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2005-2009 +// andrew.kirillov@aforgenet.com +// + +namespace AForge.Math +{ + using System; + + /// + /// Set of tool functions. + /// + /// + /// The class contains different utility functions. + /// + public static class Tools + { + /// + /// Calculates power of 2. + /// + /// + /// Power to raise in. + /// + /// Returns specified power of 2 in the case if power is in the range of + /// [0, 30]. Otherwise returns 0. + /// + public static int Pow2( int power ) + { + return ( ( power >= 0 ) && ( power <= 30 ) ) ? ( 1 << power ) : 0; + } + + /// + /// Checks if the specified integer is power of 2. + /// + /// + /// Integer number to check. + /// + /// Returns true if the specified number is power of 2. + /// Otherwise returns false. + /// + public static bool IsPowerOf2( int x ) + { + return ( x > 0 ) ? ( ( x & ( x - 1 ) ) == 0 ) : false; + } + + /// + /// Get base of binary logarithm. + /// + /// + /// Source integer number. + /// + /// Power of the number (base of binary logarithm). + /// + public static int Log2( int x ) + { + if ( x <= 65536 ) + { + if ( x <= 256 ) + { + if ( x <= 16 ) + { + if ( x <= 4 ) + { + if ( x <= 2 ) + { + if ( x <= 1 ) + return 0; + return 1; + } + return 2; + } + if ( x <= 8 ) + return 3; + return 4; + } + if ( x <= 64 ) + { + if ( x <= 32 ) + return 5; + return 6; + } + if ( x <= 128 ) + return 7; + return 8; + } + if ( x <= 4096 ) + { + if ( x <= 1024 ) + { + if ( x <= 512 ) + return 9; + return 10; + } + if ( x <= 2048 ) + return 11; + return 12; + } + if ( x <= 16384 ) + { + if ( x <= 8192 ) + return 13; + return 14; + } + if ( x <= 32768 ) + return 15; + return 16; + } + + if ( x <= 16777216 ) + { + if ( x <= 1048576 ) + { + if ( x <= 262144 ) + { + if ( x <= 131072 ) + return 17; + return 18; + } + if ( x <= 524288 ) + return 19; + return 20; + } + if ( x <= 4194304 ) + { + if ( x <= 2097152 ) + return 21; + return 22; + } + if ( x <= 8388608 ) + return 23; + return 24; + } + if ( x <= 268435456 ) + { + if ( x <= 67108864 ) + { + if ( x <= 33554432 ) + return 25; + return 26; + } + if ( x <= 134217728 ) + return 27; + return 28; + } + if ( x <= 1073741824 ) + { + if ( x <= 536870912 ) + return 29; + return 30; + } + return 31; + } + } +} diff --git a/Sources/Math/Vector3.cs b/Sources/Math/Vector3.cs new file mode 100644 index 00000000..6586fdbf --- /dev/null +++ b/Sources/Math/Vector3.cs @@ -0,0 +1,568 @@ +// AForge Math Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2011 +// contacts@aforgenet.com +// + +namespace AForge.Math +{ + using System; + + /// + /// 3D Vector structure with X, Y and Z coordinates. + /// + /// + /// The structure incapsulates X, Y and Z coordinates of a 3D vector and + /// provides some operations with it. + /// + [Serializable] + public struct Vector3 + { + /// + /// X coordinate of the vector. + /// + public float X; + /// + /// Y coordinate of the vector. + /// + public float Y; + /// + /// Z coordinate of the vector. + /// + public float Z; + + /// + /// Returns maximum value of the vector. + /// + /// + /// Returns maximum value of all 3 vector's coordinates. + /// + public float Max + { + get + { + return ( X > Y ) ? ( ( X > Z ) ? X : Z ) : ( ( Y > Z ) ? Y : Z ); + } + } + + /// + /// Returns minimum value of the vector. + /// + /// + /// Returns minimum value of all 3 vector's coordinates. + /// + public float Min + { + get + { + return ( X < Y ) ? ( ( X < Z ) ? X : Z ) : ( ( Y < Z ) ? Y : Z ); + } + } + + /// + /// Returns index of the coordinate with maximum value. + /// + /// + /// Returns index of the coordinate, which has the maximum value - 0 for X, + /// 1 for Y or 2 for Z. + /// + /// If there are multiple coordinates which have the same maximum value, the + /// property returns smallest index. + /// + /// + public int MaxIndex + { + get + { + return ( X >= Y ) ? ( ( X >= Z ) ? 0 : 2 ) : ( ( Y >= Z ) ? 1 : 2 ); + } + } + + /// + /// Returns index of the coordinate with minimum value. + /// + /// + /// Returns index of the coordinate, which has the minimum value - 0 for X, + /// 1 for Y or 2 for Z. + /// + /// If there are multiple coordinates which have the same minimum value, the + /// property returns smallest index. + /// + /// + public int MinIndex + { + get + { + return ( X <= Y ) ? ( ( X <= Z ) ? 0 : 2 ) : ( ( Y <= Z ) ? 1 : 2 ); + } + } + + /// + /// Returns vector's norm. + /// + /// + /// Returns Euclidean norm of the vector, which is a + /// square root of the sum: X2+Y2+Z2. + /// + /// + public float Norm + { + get { return (float) System.Math.Sqrt( X * X + Y * Y + Z * Z ); } + } + + /// + /// Returns square of the vector's norm. + /// + /// + /// Return X2+Y2+Z2, which is + /// a square of vector's norm or a dot product of this vector + /// with itself. + /// + public float Square + { + get { return X * X + Y * Y + Z * Z; } + } + + /// + /// Initializes a new instance of the structure. + /// + /// + /// X coordinate of the vector. + /// Y coordinate of the vector. + /// Z coordinate of the vector. + /// + public Vector3( float x, float y, float z ) + { + X = x; + Y = y; + Z = z; + } + + /// + /// Initializes a new instance of the structure. + /// + /// + /// Value, which is set to all 3 coordinates of the vector. + /// + public Vector3( float value ) + { + X = Y = Z = value; + } + + /// + /// Returns a string representation of this object. + /// + /// + /// A string representation of this object. + /// + public override string ToString( ) + { + return string.Format( System.Globalization.CultureInfo.InvariantCulture, + "{0}, {1}, {2}", X, Y, Z ); + } + + /// + /// Returns array representation of the vector. + /// + /// + /// Array with 3 values containing X/Y/Z coordinates. + /// + public float[] ToArray( ) + { + return new float[3] { X, Y, Z }; + } + + /// + /// Adds corresponding coordinates of two vectors. + /// + /// + /// The vector to add to. + /// The vector to add to the first vector. + /// + /// Returns a vector which coordinates are equal to sum of corresponding + /// coordinates of the two specified vectors. + /// + public static Vector3 operator +( Vector3 vector1, Vector3 vector2 ) + { + return new Vector3( vector1.X + vector2.X, vector1.Y + vector2.Y, vector1.Z + vector2.Z ); + } + + /// + /// Adds corresponding coordinates of two vectors. + /// + /// + /// The vector to add to. + /// The vector to add to the first vector. + /// + /// Returns a vector which coordinates are equal to sum of corresponding + /// coordinates of the two specified vectors. + /// + public static Vector3 Add( Vector3 vector1, Vector3 vector2 ) + { + return vector1 + vector2; + } + + /// + /// Adds a value to all coordinates of the specified vector. + /// + /// + /// Vector to add the specified value to. + /// Value to add to all coordinates of the vector. + /// + /// Returns new vector with all coordinates increased by the specified value. + /// + public static Vector3 operator +( Vector3 vector, float value ) + { + return new Vector3( vector.X + value, vector.Y + value, vector.Z + value ); + } + + /// + /// Adds a value to all coordinates of the specified vector. + /// + /// + /// Vector to add the specified value to. + /// Value to add to all coordinates of the vector. + /// + /// Returns new vector with all coordinates increased by the specified value. + /// + public static Vector3 Add( Vector3 vector, float value ) + { + return vector + value; + } + + /// + /// Subtracts corresponding coordinates of two vectors. + /// + /// + /// The vector to subtract from. + /// The vector to subtract from the first vector. + /// + /// Returns a vector which coordinates are equal to difference of corresponding + /// coordinates of the two specified vectors. + /// + public static Vector3 operator -( Vector3 vector1, Vector3 vector2 ) + { + return new Vector3( vector1.X - vector2.X, vector1.Y - vector2.Y, vector1.Z - vector2.Z ); + } + + /// + /// Subtracts corresponding coordinates of two vectors. + /// + /// + /// The vector to subtract from. + /// The vector to subtract from the first vector. + /// + /// Returns a vector which coordinates are equal to difference of corresponding + /// coordinates of the two specified vectors. + /// + public static Vector3 Subtract( Vector3 vector1, Vector3 vector2 ) + { + return vector1 - vector2; + } + + /// + /// Subtracts a value from all coordinates of the specified vector. + /// + /// + /// Vector to subtract the specified value from. + /// Value to subtract from all coordinates of the vector. + /// + /// Returns new vector with all coordinates decreased by the specified value. + /// + public static Vector3 operator -( Vector3 vector, float value ) + { + return new Vector3( vector.X - value, vector.Y - value, vector.Z - value ); + } + + /// + /// Subtracts a value from all coordinates of the specified vector. + /// + /// + /// Vector to subtract the specified value from. + /// Value to subtract from all coordinates of the vector. + /// + /// Returns new vector with all coordinates decreased by the specified value. + /// + public static Vector3 Subtract( Vector3 vector, float value ) + { + return vector - value; + } + + /// + /// Multiplies corresponding coordinates of two vectors. + /// + /// + /// The first vector to multiply. + /// The second vector to multiply. + /// + /// Returns a vector which coordinates are equal to multiplication of corresponding + /// coordinates of the two specified vectors. + /// + public static Vector3 operator *( Vector3 vector1, Vector3 vector2 ) + { + return new Vector3( vector1.X * vector2.X, vector1.Y * vector2.Y, vector1.Z * vector2.Z ); + } + + /// + /// Multiplies corresponding coordinates of two vectors. + /// + /// + /// The first vector to multiply. + /// The second vector to multiply. + /// + /// Returns a vector which coordinates are equal to multiplication of corresponding + /// coordinates of the two specified vectors. + /// + public static Vector3 Multiply( Vector3 vector1, Vector3 vector2 ) + { + return vector1 * vector2; + } + + /// + /// Multiplies coordinates of the specified vector by the specified factor. + /// + /// + /// Vector to multiply coordinates of. + /// Factor to multiple coordinates of the specified vector by. + /// + /// Returns new vector with all coordinates multiplied by the specified factor. + /// + public static Vector3 operator *( Vector3 vector, float factor ) + { + return new Vector3( vector.X * factor, vector.Y * factor, vector.Z * factor ); + } + + /// + /// Multiplies coordinates of the specified vector by the specified factor. + /// + /// + /// Vector to multiply coordinates of. + /// Factor to multiple coordinates of the specified vector by. + /// + /// Returns new vector with all coordinates multiplied by the specified factor. + /// + public static Vector3 Multiply( Vector3 vector, float factor ) + { + return vector * factor; + } + + /// + /// Divides corresponding coordinates of two vectors. + /// + /// + /// The first vector to divide. + /// The second vector to devide. + /// + /// Returns a vector which coordinates are equal to coordinates of the first vector divided by + /// corresponding coordinates of the second vector. + /// + public static Vector3 operator /( Vector3 vector1, Vector3 vector2 ) + { + return new Vector3( vector1.X / vector2.X, vector1.Y / vector2.Y, vector1.Z / vector2.Z ); + } + + /// + /// Divides corresponding coordinates of two vectors. + /// + /// + /// The first vector to divide. + /// The second vector to devide. + /// + /// Returns a vector which coordinates are equal to coordinates of the first vector divided by + /// corresponding coordinates of the second vector. + /// + public static Vector3 Divide( Vector3 vector1, Vector3 vector2 ) + { + return vector1 / vector2; + } + + /// + /// Divides coordinates of the specified vector by the specified factor. + /// + /// + /// Vector to divide coordinates of. + /// Factor to divide coordinates of the specified vector by. + /// + /// Returns new vector with all coordinates divided by the specified factor. + /// + public static Vector3 operator /( Vector3 vector, float factor ) + { + return new Vector3( vector.X / factor, vector.Y / factor, vector.Z / factor ); + } + + /// + /// Divides coordinates of the specified vector by the specified factor. + /// + /// + /// Vector to divide coordinates of. + /// Factor to divide coordinates of the specified vector by. + /// + /// Returns new vector with all coordinates divided by the specified factor. + /// + public static Vector3 Divide( Vector3 vector, float factor ) + { + return vector / factor; + } + + /// + /// Tests whether two specified vectors are equal. + /// + /// + /// The left-hand vector. + /// The right-hand vector. + /// + /// Returns if the two vectors are equal or otherwise. + /// + public static bool operator ==( Vector3 vector1, Vector3 vector2 ) + { + return ( ( vector1.X == vector2.X ) && ( vector1.Y == vector2.Y ) && ( vector1.Z == vector2.Z ) ); + } + + /// + /// Tests whether two specified vectors are not equal. + /// + /// + /// The left-hand vector. + /// The right-hand vector. + /// + /// Returns if the two vectors are not equal or otherwise. + /// + public static bool operator !=( Vector3 vector1, Vector3 vector2 ) + { + return ( ( vector1.X != vector2.X ) || ( vector1.Y != vector2.Y ) || ( vector1.Z != vector2.Z ) ); + } + + /// + /// Tests whether the vector equals to the specified one. + /// + /// + /// The vector to test equality with. + /// + /// Returns if the two vectors are equal or otherwise. + /// + public bool Equals( Vector3 vector ) + { + return ( ( vector.X == X ) && ( vector.Y == Y ) && ( vector.Z == Z ) ); + } + + /// + /// Tests whether the vector equals to the specified object. + /// + /// + /// The object to test equality with. + /// + /// Returns if the vector equals to the specified object or otherwise. + /// + public override bool Equals( Object obj ) + { + if ( obj is Vector3 ) + { + return Equals( (Vector3) obj ); + } + return false; + } + + /// + /// Returns the hashcode for this instance. + /// + /// + /// A 32-bit signed integer hash code. + /// + public override int GetHashCode( ) + { + return X.GetHashCode( ) + Y.GetHashCode( ) + Z.GetHashCode( ); + } + + /// + /// Normalizes the vector by dividing it’s all coordinates with the vector's norm. + /// + /// + /// Returns the value of vectors’ norm before normalization. + /// + public float Normalize( ) + { + float norm = (float) System.Math.Sqrt( X * X + Y * Y + Z * Z ); + float invNorm = 1.0f / norm; + + X *= invNorm; + Y *= invNorm; + Z *= invNorm; + + return norm; + } + + /// + /// Inverse the vector. + /// + /// + /// Returns a vector with all coordinates equal to 1.0 divided by the value of corresponding coordinate + /// in this vector (or equal to 0.0 if this vector has corresponding coordinate also set to 0.0). + /// + public Vector3 Inverse( ) + { + return new Vector3( + ( X == 0 ) ? 0 : 1.0f / X, + ( Y == 0 ) ? 0 : 1.0f / Y, + ( Z == 0 ) ? 0 : 1.0f / Z ); + } + + /// + /// Calculate absolute values of the vector. + /// + /// + /// Returns a vector with all coordinates equal to absolute values of this vector's coordinates. + /// + public Vector3 Abs( ) + { + return new Vector3( System.Math.Abs( X ), System.Math.Abs( Y ), System.Math.Abs( Z ) ); + } + + /// + /// Calculates cross product of two vectors. + /// + /// + /// First vector to use for cross product calculation. + /// Second vector to use for cross product calculation. + /// + /// Returns cross product of the two specified vectors. + /// + public static Vector3 Cross( Vector3 vector1, Vector3 vector2 ) + { + return new Vector3( + vector1.Y * vector2.Z - vector1.Z * vector2.Y, + vector1.Z * vector2.X - vector1.X * vector2.Z, + vector1.X * vector2.Y - vector1.Y * vector2.X ); + } + + /// + /// Calculates dot product of two vectors. + /// + /// + /// First vector to use for dot product calculation. + /// Second vector to use for dot product calculation. + /// + /// Returns dot product of the two specified vectors. + /// + public static float Dot( Vector3 vector1, Vector3 vector2 ) + { + return vector1.X * vector2.X + vector1.Y * vector2.Y + vector1.Z * vector2.Z; + } + + /// + /// Converts the vector to a 4D vector. + /// + /// + /// Returns 4D vector which is an extension of the 3D vector. + /// + /// The method returns a 4D vector which has X, Y and Z coordinates equal to the + /// coordinates of this 3D vector and W coordinate set to 1.0. + /// + /// + public Vector4 ToVector4( ) + { + return new Vector4( X, Y, Z, 1 ); + } + } +} diff --git a/Sources/Math/Vector4.cs b/Sources/Math/Vector4.cs new file mode 100644 index 00000000..ee97924e --- /dev/null +++ b/Sources/Math/Vector4.cs @@ -0,0 +1,623 @@ +// AForge Math Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2011 +// contacts@aforgenet.com +// + +namespace AForge.Math +{ + using System; + + /// + /// 4D Vector structure with X, Y, Z and W coordinates. + /// + /// + /// The structure incapsulates X, Y, Z and W coordinates of a 4D vector and + /// provides some operations with it. + /// + [Serializable] + public struct Vector4 + { + /// + /// X coordinate of the vector. + /// + public float X; + /// + /// Y coordinate of the vector. + /// + public float Y; + /// + /// Z coordinate of the vector. + /// + public float Z; + /// + /// W coordinate of the vector. + /// + public float W; + + /// + /// Returns maximum value of the vector. + /// + /// + /// Returns maximum value of all 4 vector's coordinates. + /// + public float Max + { + get + { + float v1 = ( X > Y ) ? X : Y; + float v2 = ( Z > W ) ? Z : W; + + return ( v1 > v2 ) ? v1 : v2; + } + } + + /// + /// Returns minimum value of the vector. + /// + /// + /// Returns minimum value of all 4 vector's coordinates. + /// + public float Min + { + get + { + float v1 = ( X < Y ) ? X : Y; + float v2 = ( Z < W ) ? Z : W; + + return ( v1 < v2 ) ? v1 : v2; + } + } + + /// + /// Returns index of the coordinate with maximum value. + /// + /// + /// Returns index of the coordinate, which has the maximum value - 0 for X, + /// 1 for Y, 2 for Z or 3 for W. + /// + /// If there are multiple coordinates which have the same maximum value, the + /// property returns smallest index. + /// + /// + public int MaxIndex + { + get + { + float v1 = 0; + float v2 = 0; + int i1 = 0; + int i2 = 0; + + if ( X >= Y ) + { + v1 = X; + i1 = 0; + } + else + { + v1 = Y; + i1 = 1; + } + + if ( Z >= W ) + { + v2 = Z; + i2 = 2; + } + else + { + v2 = W; + i2 = 3; + } + + return ( v1 >= v2 ) ? i1 : i2; + } + } + + /// + /// Returns index of the coordinate with minimum value. + /// + /// + /// Returns index of the coordinate, which has the minimum value - 0 for X, + /// 1 for Y, 2 for Z or 3 for W. + /// + /// If there are multiple coordinates which have the same minimum value, the + /// property returns smallest index. + /// + /// + public int MinIndex + { + get + { + float v1 = 0; + float v2 = 0; + int i1 = 0; + int i2 = 0; + + if ( X <= Y ) + { + v1 = X; + i1 = 0; + } + else + { + v1 = Y; + i1 = 1; + } + + if ( Z <= W ) + { + v2 = Z; + i2 = 2; + } + else + { + v2 = W; + i2 = 3; + } + + return ( v1 <= v2 ) ? i1 : i2; + } + } + + /// + /// Returns vector's norm. + /// + /// + /// Returns Euclidean norm of the vector, which is a + /// square root of the sum: X2+Y2+Z2+W2. + /// + /// + public float Norm + { + get { return (float) System.Math.Sqrt( X * X + Y * Y + Z * Z + W * W ); } + } + + /// + /// Returns square of the vector's norm. + /// + /// + /// Return X2+Y2+Z2+W2, which is + /// a square of vector's norm or a dot product of this vector + /// with itself. + /// + public float Square + { + get { return X * X + Y * Y + Z * Z + W * W; } + } + + /// + /// Initializes a new instance of the structure. + /// + /// + /// X coordinate of the vector. + /// Y coordinate of the vector. + /// Z coordinate of the vector. + /// W coordinate of the vector. + /// + public Vector4( float x, float y, float z, float w ) + { + X = x; + Y = y; + Z = z; + W = w; + } + + /// + /// Initializes a new instance of the structure. + /// + /// + /// Value, which is set to all 4 coordinates of the vector. + /// + public Vector4( float value ) + { + X = Y = Z = W = value; + } + + /// + /// Returns a string representation of this object. + /// + /// + /// A string representation of this object. + /// + public override string ToString( ) + { + return string.Format( System.Globalization.CultureInfo.InvariantCulture, + "{0}, {1}, {2}, {3}", X, Y, Z, W ); + } + + /// + /// Returns array representation of the vector. + /// + /// + /// Array with 4 values containing X/Y/Z/W coordinates. + /// + public float[] ToArray( ) + { + return new float[4] { X, Y, Z, W }; + } + + /// + /// Adds corresponding coordinates of two vectors. + /// + /// + /// The vector to add to. + /// The vector to add to the first vector. + /// + /// Returns a vector which coordinates are equal to sum of corresponding + /// coordinates of the two specified vectors. + /// + public static Vector4 operator +( Vector4 vector1, Vector4 vector2 ) + { + return new Vector4( vector1.X + vector2.X, vector1.Y + vector2.Y, + vector1.Z + vector2.Z, vector1.W + vector2.W ); + } + + /// + /// Adds corresponding coordinates of two vectors. + /// + /// + /// The vector to add to. + /// The vector to add to the first vector. + /// + /// Returns a vector which coordinates are equal to sum of corresponding + /// coordinates of the two specified vectors. + /// + public static Vector4 Add( Vector4 vector1, Vector4 vector2 ) + { + return vector1 + vector2; + } + + /// + /// Adds a value to all coordinates of the specified vector. + /// + /// + /// Vector to add the specified value to. + /// Value to add to all coordinates of the vector. + /// + /// Returns new vector with all coordinates increased by the specified value. + /// + public static Vector4 operator +( Vector4 vector, float value ) + { + return new Vector4( vector.X + value, vector.Y + value, vector.Z + value, vector.W + value ); + } + + /// + /// Adds a value to all coordinates of the specified vector. + /// + /// + /// Vector to add the specified value to. + /// Value to add to all coordinates of the vector. + /// + /// Returns new vector with all coordinates increased by the specified value. + /// + public static Vector4 Add( Vector4 vector, float value ) + { + return vector + value; + } + + /// + /// Subtracts corresponding coordinates of two vectors. + /// + /// + /// The vector to subtract from. + /// The vector to subtract from the first vector. + /// + /// Returns a vector which coordinates are equal to difference of corresponding + /// coordinates of the two specified vectors. + /// + public static Vector4 operator -( Vector4 vector1, Vector4 vector2 ) + { + return new Vector4( vector1.X - vector2.X, vector1.Y - vector2.Y, + vector1.Z - vector2.Z, vector1.W - vector2.W ); + } + + /// + /// Subtracts corresponding coordinates of two vectors. + /// + /// + /// The vector to subtract from. + /// The vector to subtract from the first vector. + /// + /// Returns a vector which coordinates are equal to difference of corresponding + /// coordinates of the two specified vectors. + /// + public static Vector4 Subtract( Vector4 vector1, Vector4 vector2 ) + { + return vector1 - vector2; + } + + /// + /// Subtracts a value from all coordinates of the specified vector. + /// + /// + /// Vector to subtract the specified value from. + /// Value to subtract from all coordinates of the vector. + /// + /// Returns new vector with all coordinates decreased by the specified value. + /// + public static Vector4 operator -( Vector4 vector, float value ) + { + return new Vector4( vector.X - value, vector.Y - value, vector.Z - value, vector.W - value ); + } + + /// + /// Subtracts a value from all coordinates of the specified vector. + /// + /// + /// Vector to subtract the specified value from. + /// Value to subtract from all coordinates of the vector. + /// + /// Returns new vector with all coordinates decreased by the specified value. + /// + public static Vector4 Subtract( Vector4 vector, float value ) + { + return vector - value; + } + + /// + /// Multiplies corresponding coordinates of two vectors. + /// + /// + /// The first vector to multiply. + /// The second vector to multiply. + /// + /// Returns a vector which coordinates are equal to multiplication of corresponding + /// coordinates of the two specified vectors. + /// + public static Vector4 operator *( Vector4 vector1, Vector4 vector2 ) + { + return new Vector4( vector1.X * vector2.X, vector1.Y * vector2.Y, + vector1.Z * vector2.Z, vector1.W * vector2.W ); + } + + /// + /// Multiplies corresponding coordinates of two vectors. + /// + /// + /// The first vector to multiply. + /// The second vector to multiply. + /// + /// Returns a vector which coordinates are equal to multiplication of corresponding + /// coordinates of the two specified vectors. + /// + public static Vector4 Multiply( Vector4 vector1, Vector4 vector2 ) + { + return vector1 * vector2; + } + + /// + /// Multiplies coordinates of the specified vector by the specified factor. + /// + /// + /// Vector to multiply coordinates of. + /// Factor to multiple coordinates of the specified vector by. + /// + /// Returns new vector with all coordinates multiplied by the specified factor. + /// + public static Vector4 operator *( Vector4 vector, float factor ) + { + return new Vector4( vector.X * factor, vector.Y * factor, vector.Z * factor, vector.W * factor ); + } + + /// + /// Multiplies coordinates of the specified vector by the specified factor. + /// + /// + /// Vector to multiply coordinates of. + /// Factor to multiple coordinates of the specified vector by. + /// + /// Returns new vector with all coordinates multiplied by the specified factor. + /// + public static Vector4 Multiply( Vector4 vector, float factor ) + { + return vector * factor; + } + + /// + /// Divides corresponding coordinates of two vectors. + /// + /// + /// The first vector to divide. + /// The second vector to devide. + /// + /// Returns a vector which coordinates are equal to coordinates of the first vector divided by + /// corresponding coordinates of the second vector. + /// + public static Vector4 operator /( Vector4 vector1, Vector4 vector2 ) + { + return new Vector4( vector1.X / vector2.X, vector1.Y / vector2.Y, + vector1.Z / vector2.Z, vector1.W / vector2.W ); + } + + /// + /// Divides corresponding coordinates of two vectors. + /// + /// + /// The first vector to divide. + /// The second vector to devide. + /// + /// Returns a vector which coordinates are equal to coordinates of the first vector divided by + /// corresponding coordinates of the second vector. + /// + public static Vector4 Divide( Vector4 vector1, Vector4 vector2 ) + { + return vector1 / vector2; + } + + /// + /// Divides coordinates of the specified vector by the specified factor. + /// + /// + /// Vector to divide coordinates of. + /// Factor to divide coordinates of the specified vector by. + /// + /// Returns new vector with all coordinates divided by the specified factor. + /// + public static Vector4 operator /( Vector4 vector, float factor ) + { + return new Vector4( vector.X / factor, vector.Y / factor, vector.Z / factor, vector.W / factor ); + } + + /// + /// Divides coordinates of the specified vector by the specified factor. + /// + /// + /// Vector to divide coordinates of. + /// Factor to divide coordinates of the specified vector by. + /// + /// Returns new vector with all coordinates divided by the specified factor. + /// + public static Vector4 Divide( Vector4 vector, float factor ) + { + return vector / factor; + } + + /// + /// Tests whether two specified vectors are equal. + /// + /// + /// The left-hand vector. + /// The right-hand vector. + /// + /// Returns if the two vectors are equal or otherwise. + /// + public static bool operator ==( Vector4 vector1, Vector4 vector2 ) + { + return ( ( vector1.X == vector2.X ) && ( vector1.Y == vector2.Y ) && + ( vector1.Z == vector2.Z ) && ( vector1.W == vector2.W ) ); + } + + /// + /// Tests whether two specified vectors are not equal. + /// + /// + /// The left-hand vector. + /// The right-hand vector. + /// + /// Returns if the two vectors are not equal or otherwise. + /// + public static bool operator !=( Vector4 vector1, Vector4 vector2 ) + { + return ( ( vector1.X != vector2.X ) || ( vector1.Y != vector2.Y ) || + ( vector1.Z != vector2.Z ) || ( vector1.W != vector2.W ) ); + } + + /// + /// Tests whether the vector equals to the specified one. + /// + /// + /// The vector to test equality with. + /// + /// Returns if the two vectors are equal or otherwise. + /// + public bool Equals( Vector4 vector ) + { + return ( ( vector.X == X ) && ( vector.Y == Y ) && ( vector.Z == Z ) && ( vector.W == W ) ); + } + + /// + /// Tests whether the vector equals to the specified object. + /// + /// + /// The object to test equality with. + /// + /// Returns if the vector equals to the specified object or otherwise. + /// + public override bool Equals( Object obj ) + { + if ( obj is Vector4 ) + { + return Equals( (Vector4) obj ); + } + return false; + } + + /// + /// Returns the hashcode for this instance. + /// + /// + /// A 32-bit signed integer hash code. + /// + public override int GetHashCode( ) + { + return X.GetHashCode( ) + Y.GetHashCode( ) + Z.GetHashCode( ) + W.GetHashCode( ); + } + + /// + /// Normalizes the vector by dividing it’s all coordinates with the vector's norm. + /// + /// + /// Returns the value of vectors’ norm before normalization. + /// + public float Normalize( ) + { + float norm = (float) System.Math.Sqrt( X * X + Y * Y + Z * Z + W * W ); + float invNorm = 1.0f / norm; + + X *= invNorm; + Y *= invNorm; + Z *= invNorm; + W *= invNorm; + + return norm; + } + + /// + /// Inverse the vector. + /// + /// + /// Returns a vector with all coordinates equal to 1.0 divided by the value of corresponding coordinate + /// in this vector (or equal to 0.0 if this vector has corresponding coordinate also set to 0.0). + /// + public Vector4 Inverse( ) + { + return new Vector4( + ( X == 0 ) ? 0 : 1.0f / X, + ( Y == 0 ) ? 0 : 1.0f / Y, + ( Z == 0 ) ? 0 : 1.0f / Z, + ( W == 0 ) ? 0 : 1.0f / W ); + } + + /// + /// Calculate absolute values of the vector. + /// + /// + /// Returns a vector with all coordinates equal to absolute values of this vector's coordinates. + /// + public Vector4 Abs( ) + { + return new Vector4( System.Math.Abs( X ), System.Math.Abs( Y ), System.Math.Abs( Z ), System.Math.Abs( W ) ); + } + + /// + /// Calculates dot product of two vectors. + /// + /// + /// First vector to use for dot product calculation. + /// Second vector to use for dot product calculation. + /// + /// Returns dot product of the two specified vectors. + /// + public static float Dot( Vector4 vector1, Vector4 vector2 ) + { + return vector1.X * vector2.X + vector1.Y * vector2.Y + + vector1.Z * vector2.Z + vector1.W * vector2.W; + } + + /// + /// Converts the vector to a 3D vector. + /// + /// + /// Returns 3D vector which has X/Y/Z coordinates equal to X/Y/Z coordinates + /// of this vector divided by . + /// + public Vector3 ToVector3( ) + { + return new Vector3( X / W, Y / W, Z / W ); + } + } +} diff --git a/Sources/Neuro/AForge.Neuro.snk b/Sources/Neuro/AForge.Neuro.snk new file mode 100644 index 00000000..c2206224 Binary files /dev/null and b/Sources/Neuro/AForge.Neuro.snk differ diff --git a/Sources/Neuro/Activation Functions/BipolarSigmoidFunction.cs b/Sources/Neuro/Activation Functions/BipolarSigmoidFunction.cs new file mode 100644 index 00000000..58d913bc --- /dev/null +++ b/Sources/Neuro/Activation Functions/BipolarSigmoidFunction.cs @@ -0,0 +1,144 @@ +// AForge Neural Net Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2012 +// contacts@aforgenet.com +// + +namespace AForge.Neuro +{ + using System; + + /// + /// Bipolar sigmoid activation function. + /// + /// + /// The class represents bipolar sigmoid activation function with + /// the next expression: + /// + /// 2 + /// f(x) = ------------------ - 1 + /// 1 + exp(-alpha * x) + /// + /// 2 * alpha * exp(-alpha * x ) + /// f'(x) = -------------------------------- = alpha * (1 - f(x)^2) / 2 + /// (1 + exp(-alpha * x))^2 + /// + /// + /// + /// Output range of the function: [-1, 1]. + /// + /// Functions graph: + /// + /// + /// + [Serializable] + public class BipolarSigmoidFunction : IActivationFunction, ICloneable + { + // sigmoid's alpha value + private double alpha = 2; + + /// + /// Sigmoid's alpha value. + /// + /// + /// The value determines steepness of the function. Increasing value of + /// this property changes sigmoid to look more like a threshold function. Decreasing + /// value of this property makes sigmoid to be very smooth (slowly growing from its + /// minimum value to its maximum value). + /// + /// Default value is set to 2. + /// + /// + public double Alpha + { + get { return alpha; } + set { alpha = value; } + } + + /// + /// Initializes a new instance of the class. + /// + public BipolarSigmoidFunction( ) { } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Sigmoid's alpha value. + /// + public BipolarSigmoidFunction( double alpha ) + { + this.alpha = alpha; + } + + /// + /// Calculates function value. + /// + /// + /// Function input value. + /// + /// Function output value, f(x). + /// + /// The method calculates function value at point . + /// + public double Function( double x ) + { + return ( ( 2 / ( 1 + Math.Exp( -alpha * x ) ) ) - 1 ); + } + + /// + /// Calculates function derivative. + /// + /// + /// Function input value. + /// + /// Function derivative, f'(x). + /// + /// The method calculates function derivative at point . + /// + public double Derivative( double x ) + { + double y = Function( x ); + + return ( alpha * ( 1 - y * y ) / 2 ); + } + + /// + /// Calculates function derivative. + /// + /// + /// Function output value - the value, which was obtained + /// with the help of method. + /// + /// Function derivative, f'(x). + /// + /// The method calculates the same derivative value as the + /// method, but it takes not the input x value + /// itself, but the function value, which was calculated previously with + /// the help of method. + /// + /// Some applications require as function value, as derivative value, + /// so they can save the amount of calculations using this method to calculate derivative. + /// + /// + public double Derivative2( double y ) + { + return ( alpha * ( 1 - y * y ) / 2 ); + } + + /// + /// Creates a new object that is a copy of the current instance. + /// + /// + /// + /// A new object that is a copy of this instance. + /// + /// + public object Clone( ) + { + return new BipolarSigmoidFunction( alpha ); + } + } +} diff --git a/Sources/Neuro/Activation Functions/IActivationFunction.cs b/Sources/Neuro/Activation Functions/IActivationFunction.cs new file mode 100644 index 00000000..c64ee862 --- /dev/null +++ b/Sources/Neuro/Activation Functions/IActivationFunction.cs @@ -0,0 +1,67 @@ +// AForge Neural Net Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2005-2008 +// andrew.kirillov@gmail.com +// + +namespace AForge.Neuro +{ + using System; + + /// + /// Activation function interface. + /// + /// + /// All activation functions, which are supposed to be used with + /// neurons, which calculate their output as a function of weighted sum of + /// their inputs, should implement this interfaces. + /// + /// + public interface IActivationFunction + { + /// + /// Calculates function value. + /// + /// + /// Function input value. + /// + /// Function output value, f(x). + /// + /// The method calculates function value at point . + /// + double Function( double x ); + + /// + /// Calculates function derivative. + /// + /// + /// Function input value. + /// + /// Function derivative, f'(x). + /// + /// The method calculates function derivative at point . + /// + double Derivative( double x ); + + /// + /// Calculates function derivative. + /// + /// + /// Function output value - the value, which was obtained + /// with the help of method. + /// + /// Function derivative, f'(x). + /// + /// The method calculates the same derivative value as the + /// method, but it takes not the input x value + /// itself, but the function value, which was calculated previously with + /// the help of method. + /// + /// Some applications require as function value, as derivative value, + /// so they can save the amount of calculations using this method to calculate derivative. + /// + /// + double Derivative2( double y ); + } +} diff --git a/Sources/Neuro/Activation Functions/SigmoidFunction.cs b/Sources/Neuro/Activation Functions/SigmoidFunction.cs new file mode 100644 index 00000000..80a62436 --- /dev/null +++ b/Sources/Neuro/Activation Functions/SigmoidFunction.cs @@ -0,0 +1,145 @@ +// AForge Neural Net Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2012 +// contacts@aforgenet.com +// + +namespace AForge.Neuro +{ + using System; + + /// + /// Sigmoid activation function. + /// + /// + /// The class represents sigmoid activation function with + /// the next expression: + /// + /// 1 + /// f(x) = ------------------ + /// 1 + exp(-alpha * x) + /// + /// alpha * exp(-alpha * x ) + /// f'(x) = ---------------------------- = alpha * f(x) * (1 - f(x)) + /// (1 + exp(-alpha * x))^2 + /// + /// + /// + /// Output range of the function: [0, 1]. + /// + /// Functions graph: + /// + /// + /// + [Serializable] + public class SigmoidFunction : IActivationFunction, ICloneable + { + // sigmoid's alpha value + private double alpha = 2; + + /// + /// Sigmoid's alpha value. + /// + /// + /// The value determines steepness of the function. Increasing value of + /// this property changes sigmoid to look more like a threshold function. Decreasing + /// value of this property makes sigmoid to be very smooth (slowly growing from its + /// minimum value to its maximum value). + /// + /// Default value is set to 2. + /// + /// + public double Alpha + { + get { return alpha; } + set { alpha = value; } + } + + /// + /// Initializes a new instance of the class. + /// + public SigmoidFunction( ) { } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Sigmoid's alpha value. + /// + public SigmoidFunction( double alpha ) + { + this.alpha = alpha; + } + + + /// + /// Calculates function value. + /// + /// + /// Function input value. + /// + /// Function output value, f(x). + /// + /// The method calculates function value at point . + /// + public double Function( double x ) + { + return ( 1 / ( 1 + Math.Exp( -alpha * x ) ) ); + } + + /// + /// Calculates function derivative. + /// + /// + /// Function input value. + /// + /// Function derivative, f'(x). + /// + /// The method calculates function derivative at point . + /// + public double Derivative( double x ) + { + double y = Function( x ); + + return ( alpha * y * ( 1 - y ) ); + } + + /// + /// Calculates function derivative. + /// + /// + /// Function output value - the value, which was obtained + /// with the help of method. + /// + /// Function derivative, f'(x). + /// + /// The method calculates the same derivative value as the + /// method, but it takes not the input x value + /// itself, but the function value, which was calculated previously with + /// the help of method. + /// + /// Some applications require as function value, as derivative value, + /// so they can save the amount of calculations using this method to calculate derivative. + /// + /// + public double Derivative2( double y ) + { + return ( alpha * y * ( 1 - y ) ); + } + + /// + /// Creates a new object that is a copy of the current instance. + /// + /// + /// + /// A new object that is a copy of this instance. + /// + /// + public object Clone( ) + { + return new SigmoidFunction( alpha ); + } + } +} diff --git a/Sources/Neuro/Activation Functions/ThresholdFunction.cs b/Sources/Neuro/Activation Functions/ThresholdFunction.cs new file mode 100644 index 00000000..3aaaa9e7 --- /dev/null +++ b/Sources/Neuro/Activation Functions/ThresholdFunction.cs @@ -0,0 +1,98 @@ +// AForge Neural Net Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2012 +// contacts@aforgenet.com +// + +namespace AForge.Neuro +{ + using System; + + /// + /// Threshold activation function. + /// + /// + /// The class represents threshold activation function with + /// the next expression: + /// + /// f(x) = 1, if x >= 0, otherwise 0 + /// + /// + /// + /// Output range of the function: [0, 1]. + /// + /// Functions graph: + /// + /// + /// + [Serializable] + public class ThresholdFunction : IActivationFunction, ICloneable + { + /// + /// Initializes a new instance of the class. + /// + public ThresholdFunction( ) { } + + /// + /// Calculates function value. + /// + /// + /// Function input value. + /// + /// Function output value, f(x). + /// + /// The method calculates function value at point . + /// + public double Function( double x ) + { + return ( x >= 0 ) ? 1 : 0; + } + + /// + /// Calculates function derivative (not supported). + /// + /// + /// Input value. + /// + /// Always returns 0. + /// + /// The method is not supported, because it is not possible to + /// calculate derivative of the function. + /// + public double Derivative( double x ) + { + return 0; + } + + /// + /// Calculates function derivative (not supported). + /// + /// + /// Input value. + /// + /// Always returns 0. + /// + /// The method is not supported, because it is not possible to + /// calculate derivative of the function. + /// + public double Derivative2( double y ) + { + return 0; + } + + /// + /// Creates a new object that is a copy of the current instance. + /// + /// + /// + /// A new object that is a copy of this instance. + /// + /// + public object Clone( ) + { + return new ThresholdFunction( ); + } + } +} diff --git a/Sources/Neuro/Images/sigmoid.bmp b/Sources/Neuro/Images/sigmoid.bmp new file mode 100644 index 00000000..930daf05 Binary files /dev/null and b/Sources/Neuro/Images/sigmoid.bmp differ diff --git a/Sources/Neuro/Images/sigmoid_bipolar.bmp b/Sources/Neuro/Images/sigmoid_bipolar.bmp new file mode 100644 index 00000000..9f5dfe1c Binary files /dev/null and b/Sources/Neuro/Images/sigmoid_bipolar.bmp differ diff --git a/Sources/Neuro/Images/threshold.bmp b/Sources/Neuro/Images/threshold.bmp new file mode 100644 index 00000000..5da4e66c Binary files /dev/null and b/Sources/Neuro/Images/threshold.bmp differ diff --git a/Sources/Neuro/Layers/ActivationLayer.cs b/Sources/Neuro/Layers/ActivationLayer.cs new file mode 100644 index 00000000..f93135ca --- /dev/null +++ b/Sources/Neuro/Layers/ActivationLayer.cs @@ -0,0 +1,60 @@ +// AForge Neural Net Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2012 +// contacts@aforgenet.com +// + +namespace AForge.Neuro +{ + using System; + + /// + /// Activation layer. + /// + /// + /// Activation layer is a layer of activation neurons. + /// The layer is usually used in multi-layer neural networks. + /// + [Serializable] + public class ActivationLayer : Layer + { + + /// + /// Initializes a new instance of the class. + /// + /// + /// Layer's neurons count. + /// Layer's inputs count. + /// Activation function of neurons of the layer. + /// + /// The new layer is randomized (see + /// method) after it is created. + /// + public ActivationLayer( int neuronsCount, int inputsCount, IActivationFunction function ) + : base( neuronsCount, inputsCount ) + { + // create each neuron + for ( int i = 0; i < neurons.Length; i++ ) + neurons[i] = new ActivationNeuron( inputsCount, function ); + } + + /// + /// Set new activation function for all neurons of the layer. + /// + /// + /// Activation function to set. + /// + /// The methods sets new activation function for each neuron by setting + /// their property. + /// + public void SetActivationFunction( IActivationFunction function ) + { + for ( int i = 0; i < neurons.Length; i++ ) + { + ( (ActivationNeuron) neurons[i] ).ActivationFunction = function; + } + } + } +} diff --git a/Sources/Neuro/Layers/DistanceLayer.cs b/Sources/Neuro/Layers/DistanceLayer.cs new file mode 100644 index 00000000..2cfb9666 --- /dev/null +++ b/Sources/Neuro/Layers/DistanceLayer.cs @@ -0,0 +1,43 @@ +// AForge Neural Net Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2012 +// contacts@aforgenet.com +// + +namespace AForge.Neuro +{ + using System; + + /// + /// Distance layer. + /// + /// + /// Distance layer is a layer of distance neurons. + /// The layer is usually a single layer of such networks as Kohonen Self + /// Organizing Map, Elastic Net, Hamming Memory Net. + /// + [Serializable] + public class DistanceLayer : Layer + { + + /// + /// Initializes a new instance of the class. + /// + /// + /// Layer's neurons count. + /// Layer's inputs count. + /// + /// The new layet is randomized (see + /// method) after it is created. + /// + public DistanceLayer( int neuronsCount, int inputsCount ) + : base( neuronsCount, inputsCount ) + { + // create each neuron + for ( int i = 0; i < neuronsCount; i++ ) + neurons[i] = new DistanceNeuron( inputsCount ); + } + } +} diff --git a/Sources/Neuro/Layers/Layer.cs b/Sources/Neuro/Layers/Layer.cs new file mode 100644 index 00000000..6cb6ca6e --- /dev/null +++ b/Sources/Neuro/Layers/Layer.cs @@ -0,0 +1,143 @@ +// AForge Neural Net Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2012 +// contacts@aforgenet.com +// + +namespace AForge.Neuro +{ + using System; + + /// + /// Base neural layer class. + /// + /// + /// This is a base neural layer class, which represents + /// collection of neurons. + /// + [Serializable] + public abstract class Layer + { + /// + /// Layer's inputs count. + /// + protected int inputsCount = 0; + + /// + /// Layer's neurons count. + /// + protected int neuronsCount = 0; + + /// + /// Layer's neurons. + /// + protected Neuron[] neurons; + + /// + /// Layer's output vector. + /// + protected double[] output; + + /// + /// Layer's inputs count. + /// + public int InputsCount + { + get { return inputsCount; } + } + + /// + /// Layer's neurons. + /// + /// + public Neuron[] Neurons + { + get { return neurons; } + } + + /// + /// Layer's output vector. + /// + /// + /// The calculation way of layer's output vector is determined by neurons, + /// which comprise the layer. + /// + /// The property is not initialized (equals to ) until + /// method is called. + /// + /// + public double[] Output + { + get { return output; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Layer's neurons count. + /// Layer's inputs count. + /// + /// Protected contructor, which initializes , + /// and members. + /// + protected Layer( int neuronsCount, int inputsCount ) + { + this.inputsCount = Math.Max( 1, inputsCount ); + this.neuronsCount = Math.Max( 1, neuronsCount ); + // create collection of neurons + neurons = new Neuron[this.neuronsCount]; + } + + /// + /// Compute output vector of the layer. + /// + /// + /// Input vector. + /// + /// Returns layer's output vector. + /// + /// The actual layer's output vector is determined by neurons, + /// which comprise the layer - consists of output values of layer's neurons. + /// The output vector is also stored in property. + /// + /// The method may be called safely from multiple threads to compute layer's + /// output value for the specified input values. However, the value of + /// property in multi-threaded environment is not predictable, + /// since it may hold layer's output computed from any of the caller threads. Multi-threaded + /// access to the method is useful in those cases when it is required to improve performance + /// by utilizing several threads and the computation is based on the immediate return value + /// of the method, but not on layer's output property. + /// + /// + public virtual double[] Compute( double[] input ) + { + // local variable to avoid mutlithread conflicts + double[] output = new double[neuronsCount]; + + // compute each neuron + for ( int i = 0; i < neurons.Length; i++ ) + output[i] = neurons[i].Compute( input ); + + // assign output property as well (works correctly for single threaded usage) + this.output = output; + + return output; + } + + /// + /// Randomize neurons of the layer. + /// + /// + /// Randomizes layer's neurons by calling method + /// of each neuron. + /// + public virtual void Randomize( ) + { + foreach ( Neuron neuron in neurons ) + neuron.Randomize( ); + } + } +} diff --git a/Sources/Neuro/Learning/BackPropagationLearning.cs b/Sources/Neuro/Learning/BackPropagationLearning.cs new file mode 100644 index 00000000..54b1b863 --- /dev/null +++ b/Sources/Neuro/Learning/BackPropagationLearning.cs @@ -0,0 +1,392 @@ +// AForge Neural Net Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2012 +// contacts@aforgenet.com +// +// Copyright © Cezary Wagner, 2008 +// changes optimizing algorithm performance +// Cezary.Wagner@gmail.com +// + +namespace AForge.Neuro.Learning +{ + using System; + + /// + /// Back propagation learning algorithm. + /// + /// + /// The class implements back propagation learning algorithm, + /// which is widely used for training multi-layer neural networks with + /// continuous activation functions. + /// + /// Sample usage (training network to calculate XOR function): + /// + /// // initialize input and output values + /// double[][] input = new double[4][] { + /// new double[] {0, 0}, new double[] {0, 1}, + /// new double[] {1, 0}, new double[] {1, 1} + /// }; + /// double[][] output = new double[4][] { + /// new double[] {0}, new double[] {1}, + /// new double[] {1}, new double[] {0} + /// }; + /// // create neural network + /// ActivationNetwork network = new ActivationNetwork( + /// SigmoidFunction( 2 ), + /// 2, // two inputs in the network + /// 2, // two neurons in the first layer + /// 1 ); // one neuron in the second layer + /// // create teacher + /// BackPropagationLearning teacher = new BackPropagationLearning( network ); + /// // loop + /// while ( !needToStop ) + /// { + /// // run epoch of learning procedure + /// double error = teacher.RunEpoch( input, output ); + /// // check error value to see if we need to stop + /// // ... + /// } + /// + /// + /// + /// + /// + public class BackPropagationLearning : ISupervisedLearning + { + // network to teach + private ActivationNetwork network; + // learning rate + private double learningRate = 0.1; + // momentum + private double momentum = 0.0; + + // neuron's errors + private double[][] neuronErrors = null; + // weight's updates + private double[][][] weightsUpdates = null; + // threshold's updates + private double[][] thresholdsUpdates = null; + + /// + /// Learning rate, [0, 1]. + /// + /// + /// The value determines speed of learning. + /// + /// Default value equals to 0.1. + /// + /// + public double LearningRate + { + get { return learningRate; } + set + { + learningRate = Math.Max( 0.0, Math.Min( 1.0, value ) ); + } + } + + /// + /// Momentum, [0, 1]. + /// + /// + /// The value determines the portion of previous weight's update + /// to use on current iteration. Weight's update values are calculated on + /// each iteration depending on neuron's error. The momentum specifies the amount + /// of update to use from previous iteration and the amount of update + /// to use from current iteration. If the value is equal to 0.1, for example, + /// then 0.1 portion of previous update and 0.9 portion of current update are used + /// to update weight's value. + /// + /// Default value equals to 0.0. + /// + /// + public double Momentum + { + get { return momentum; } + set + { + momentum = Math.Max( 0.0, Math.Min( 1.0, value ) ); + } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Network to teach. + /// + public BackPropagationLearning( ActivationNetwork network ) + { + this.network = network; + + // create error and deltas arrays + neuronErrors = new double[network.Layers.Length][]; + weightsUpdates = new double[network.Layers.Length][][]; + thresholdsUpdates = new double[network.Layers.Length][]; + + // initialize errors and deltas arrays for each layer + for ( int i = 0; i < network.Layers.Length; i++ ) + { + Layer layer = network.Layers[i]; + + neuronErrors[i] = new double[layer.Neurons.Length]; + weightsUpdates[i] = new double[layer.Neurons.Length][]; + thresholdsUpdates[i] = new double[layer.Neurons.Length]; + + // for each neuron + for ( int j = 0; j < weightsUpdates[i].Length; j++ ) + { + weightsUpdates[i][j] = new double[layer.InputsCount]; + } + } + } + + /// + /// Runs learning iteration. + /// + /// + /// Input vector. + /// Desired output vector. + /// + /// Returns squared error (difference between current network's output and + /// desired output) divided by 2. + /// + /// Runs one learning iteration and updates neuron's + /// weights. + /// + public double Run( double[] input, double[] output ) + { + // compute the network's output + network.Compute( input ); + + // calculate network error + double error = CalculateError( output ); + + // calculate weights updates + CalculateUpdates( input ); + + // update the network + UpdateNetwork( ); + + return error; + } + + /// + /// Runs learning epoch. + /// + /// + /// Array of input vectors. + /// Array of output vectors. + /// + /// Returns summary learning error for the epoch. See + /// method for details about learning error calculation. + /// + /// The method runs one learning epoch, by calling method + /// for each vector provided in the array. + /// + public double RunEpoch( double[][] input, double[][] output ) + { + double error = 0.0; + + // run learning procedure for all samples + for ( int i = 0; i < input.Length; i++ ) + { + error += Run( input[i], output[i] ); + } + + // return summary error + return error; + } + + + /// + /// Calculates error values for all neurons of the network. + /// + /// + /// Desired output vector. + /// + /// Returns summary squared error of the last layer divided by 2. + /// + private double CalculateError( double[] desiredOutput ) + { + // current and the next layers + Layer layer, layerNext; + // current and the next errors arrays + double[] errors, errorsNext; + // error values + double error = 0, e, sum; + // neuron's output value + double output; + // layers count + int layersCount = network.Layers.Length; + + // assume, that all neurons of the network have the same activation function + IActivationFunction function = ( network.Layers[0].Neurons[0] as ActivationNeuron ).ActivationFunction; + + // calculate error values for the last layer first + layer = network.Layers[layersCount - 1]; + errors = neuronErrors[layersCount - 1]; + + for ( int i = 0; i < layer.Neurons.Length; i++ ) + { + output = layer.Neurons[i].Output; + // error of the neuron + e = desiredOutput[i] - output; + // error multiplied with activation function's derivative + errors[i] = e * function.Derivative2( output ); + // squre the error and sum it + error += ( e * e ); + } + + // calculate error values for other layers + for ( int j = layersCount - 2; j >= 0; j-- ) + { + layer = network.Layers[j]; + layerNext = network.Layers[j + 1]; + errors = neuronErrors[j]; + errorsNext = neuronErrors[j + 1]; + + // for all neurons of the layer + for ( int i = 0; i < layer.Neurons.Length; i++ ) + { + sum = 0.0; + // for all neurons of the next layer + for ( int k = 0; k < layerNext.Neurons.Length; k++ ) + { + sum += errorsNext[k] * layerNext.Neurons[k].Weights[i]; + } + errors[i] = sum * function.Derivative2( layer.Neurons[i].Output ); + } + } + + // return squared error of the last layer divided by 2 + return error / 2.0; + } + + /// + /// Calculate weights updates. + /// + /// + /// Network's input vector. + /// + private void CalculateUpdates( double[] input ) + { + // current neuron + Neuron neuron; + // current and previous layers + Layer layer, layerPrev; + // layer's weights updates + double[][] layerWeightsUpdates; + // layer's thresholds updates + double[] layerThresholdUpdates; + // layer's error + double[] errors; + // neuron's weights updates + double[] neuronWeightUpdates; + // error value + // double error; + + // 1 - calculate updates for the first layer + layer = network.Layers[0]; + errors = neuronErrors[0]; + layerWeightsUpdates = weightsUpdates[0]; + layerThresholdUpdates = thresholdsUpdates[0]; + + // cache for frequently used values + double cachedMomentum = learningRate * momentum; + double cached1mMomentum = learningRate * ( 1 - momentum ); + double cachedError; + + // for each neuron of the layer + for ( int i = 0; i < layer.Neurons.Length; i++ ) + { + neuron = layer.Neurons[i]; + cachedError = errors[i] * cached1mMomentum; + neuronWeightUpdates = layerWeightsUpdates[i]; + + // for each weight of the neuron + for ( int j = 0; j < neuronWeightUpdates.Length; j++ ) + { + // calculate weight update + neuronWeightUpdates[j] = cachedMomentum * neuronWeightUpdates[j] + cachedError * input[j]; + } + + // calculate treshold update + layerThresholdUpdates[i] = cachedMomentum * layerThresholdUpdates[i] + cachedError; + } + + // 2 - for all other layers + for ( int k = 1; k < network.Layers.Length; k++ ) + { + layerPrev = network.Layers[k - 1]; + layer = network.Layers[k]; + errors = neuronErrors[k]; + layerWeightsUpdates = weightsUpdates[k]; + layerThresholdUpdates = thresholdsUpdates[k]; + + // for each neuron of the layer + for ( int i = 0; i < layer.Neurons.Length; i++ ) + { + neuron = layer.Neurons[i]; + cachedError = errors[i] * cached1mMomentum; + neuronWeightUpdates = layerWeightsUpdates[i]; + + // for each synapse of the neuron + for ( int j = 0; j < neuronWeightUpdates.Length; j++ ) + { + // calculate weight update + neuronWeightUpdates[j] = cachedMomentum * neuronWeightUpdates[j] + cachedError * layerPrev.Neurons[j].Output; + } + + // calculate treshold update + layerThresholdUpdates[i] = cachedMomentum * layerThresholdUpdates[i] + cachedError; + } + } + } + + /// + /// Update network'sweights. + /// + /// + private void UpdateNetwork( ) + { + // current neuron + ActivationNeuron neuron; + // current layer + Layer layer; + // layer's weights updates + double[][] layerWeightsUpdates; + // layer's thresholds updates + double[] layerThresholdUpdates; + // neuron's weights updates + double[] neuronWeightUpdates; + + // for each layer of the network + for ( int i = 0; i < network.Layers.Length; i++ ) + { + layer = network.Layers[i]; + layerWeightsUpdates = weightsUpdates[i]; + layerThresholdUpdates = thresholdsUpdates[i]; + + // for each neuron of the layer + for ( int j = 0; j < layer.Neurons.Length; j++ ) + { + neuron = layer.Neurons[j] as ActivationNeuron; + neuronWeightUpdates = layerWeightsUpdates[j]; + + // for each weight of the neuron + for ( int k = 0; k < neuron.Weights.Length; k++ ) + { + // update weight + neuron.Weights[k] += neuronWeightUpdates[k]; + } + // update treshold + neuron.Threshold += layerThresholdUpdates[j]; + } + } + } + } +} diff --git a/Sources/Neuro/Learning/DeltaRuleLearning.cs b/Sources/Neuro/Learning/DeltaRuleLearning.cs new file mode 100644 index 00000000..51b79377 --- /dev/null +++ b/Sources/Neuro/Learning/DeltaRuleLearning.cs @@ -0,0 +1,149 @@ +// AForge Neural Net Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2012 +// contacts@aforgenet.com +// + +namespace AForge.Neuro.Learning +{ + using System; + + /// + /// Delta rule learning algorithm. + /// + /// + /// This learning algorithm is used to train one layer neural + /// network of Activation Neurons + /// with continuous activation function, see + /// for example. + /// + /// See information about delta rule + /// learning algorithm. + /// + /// + public class DeltaRuleLearning : ISupervisedLearning + { + // network to teach + private ActivationNetwork network; + // learning rate + private double learningRate = 0.1; + + /// + /// Learning rate, [0, 1]. + /// + /// + /// The value determines speed of learning. + /// + /// Default value equals to 0.1. + /// + /// + public double LearningRate + { + get { return learningRate; } + set + { + learningRate = Math.Max( 0.0, Math.Min( 1.0, value ) ); + } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Network to teach. + /// + /// Invalid nuaral network. It should have one layer only. + /// + public DeltaRuleLearning( ActivationNetwork network ) + { + // check layers count + if ( network.Layers.Length != 1 ) + { + throw new ArgumentException( "Invalid nuaral network. It should have one layer only." ); + } + + this.network = network; + } + + /// + /// Runs learning iteration. + /// + /// + /// Input vector. + /// Desired output vector. + /// + /// Returns squared error (difference between current network's output and + /// desired output) divided by 2. + /// + /// Runs one learning iteration and updates neuron's + /// weights. + /// + public double Run( double[] input, double[] output ) + { + // compute output of network + double[] networkOutput = network.Compute( input ); + + // get the only layer of the network + Layer layer = network.Layers[0]; + // get activation function of the layer + IActivationFunction activationFunction = ( layer.Neurons[0] as ActivationNeuron ).ActivationFunction; + + // summary network absolute error + double error = 0.0; + + // update weights of each neuron + for ( int j = 0; j < layer.Neurons.Length; j++ ) + { + // get neuron of the layer + ActivationNeuron neuron = layer.Neurons[j] as ActivationNeuron; + // calculate neuron's error + double e = output[j] - networkOutput[j]; + // get activation function's derivative + double functionDerivative = activationFunction.Derivative2( networkOutput[j] ); + + // update weights + for ( int i = 0; i < neuron.Weights.Length; i++ ) + { + neuron.Weights[i] += learningRate * e * functionDerivative * input[i]; + } + + // update threshold value + neuron.Threshold += learningRate * e * functionDerivative; + + // sum error + error += ( e * e ); + } + + return error / 2; + } + + /// + /// Runs learning epoch. + /// + /// + /// Array of input vectors. + /// Array of output vectors. + /// + /// Returns summary learning error for the epoch. See + /// method for details about learning error calculation. + /// + /// The method runs one learning epoch, by calling method + /// for each vector provided in the array. + /// + public double RunEpoch( double[][] input, double[][] output ) + { + double error = 0.0; + + // run learning procedure for all samples + for ( int i = 0, n = input.Length; i < n; i++ ) + { + error += Run( input[i], output[i] ); + } + + // return summary error + return error; + } + } +} diff --git a/Sources/Neuro/Learning/ElasticNetworkLearning.cs b/Sources/Neuro/Learning/ElasticNetworkLearning.cs new file mode 100644 index 00000000..f90a3663 --- /dev/null +++ b/Sources/Neuro/Learning/ElasticNetworkLearning.cs @@ -0,0 +1,180 @@ +// AForge Neural Net Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2012 +// contacts@aforgenet.com +// + +namespace AForge.Neuro.Learning +{ + using System; + + /// + /// Elastic network learning algorithm. + /// + /// + /// This class implements elastic network's learning algorithm and + /// allows to train Distance Networks. + /// + /// + public class ElasticNetworkLearning : IUnsupervisedLearning + { + // neural network to train + private DistanceNetwork network; + + // array of distances between neurons + private double[] distance; + + // learning rate + private double learningRate = 0.1; + // learning radius + private double learningRadius = 0.5; + + // squared learning radius multiplied by 2 (precalculated value to speed up computations) + private double squaredRadius2 = 2 * 0.5 * 0.5; + + /// + /// Learning rate, [0, 1]. + /// + /// + /// Determines speed of learning. + /// + /// Default value equals to 0.1. + /// + /// + public double LearningRate + { + get { return learningRate; } + set + { + learningRate = Math.Max( 0.0, Math.Min( 1.0, value ) ); + } + } + + /// + /// Learning radius, [0, 1]. + /// + /// + /// Determines the amount of neurons to be updated around + /// winner neuron. Neurons, which are in the circle of specified radius, + /// are updated during the learning procedure. Neurons, which are closer + /// to the winner neuron, get more update. + /// + /// Default value equals to 0.5. + /// + /// + public double LearningRadius + { + get { return learningRadius; } + set + { + learningRadius = Math.Max( 0, Math.Min( 1.0, value ) ); + squaredRadius2 = 2 * learningRadius * learningRadius; + } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Neural network to train. + /// + public ElasticNetworkLearning( DistanceNetwork network ) + { + this.network = network; + + // precalculate distances array + int neurons = network.Layers[0].Neurons.Length; + double deltaAlpha = Math.PI * 2.0 / neurons; + double alpha = deltaAlpha; + + distance = new double[neurons]; + distance[0] = 0.0; + + // calculate all distance values + for ( int i = 1; i < neurons; i++ ) + { + double dx = 0.5 * Math.Cos( alpha ) - 0.5; + double dy = 0.5 * Math.Sin( alpha ); + + distance[i] = dx * dx + dy * dy; + + alpha += deltaAlpha; + } + } + + /// + /// Runs learning iteration. + /// + /// + /// Input vector. + /// + /// Returns learning error - summary absolute difference between neurons' + /// weights and appropriate inputs. The difference is measured according to the neurons + /// distance to the winner neuron. + /// + /// The method runs one learning iterations - finds winner neuron (the neuron + /// which has weights with values closest to the specified input vector) and updates its weight + /// (as well as weights of neighbor neurons) in the way to decrease difference with the specified + /// input vector. + /// + public double Run( double[] input ) + { + double error = 0.0; + + // compute the network + network.Compute( input ); + int winner = network.GetWinner( ); + + // get layer of the network + Layer layer = network.Layers[0]; + + // walk through all neurons of the layer + for ( int j = 0; j < layer.Neurons.Length; j++ ) + { + Neuron neuron = layer.Neurons[j]; + + // update factor + double factor = Math.Exp( -distance[Math.Abs( j - winner )] / squaredRadius2 ); + + // update weights of the neuron + for ( int i = 0; i < neuron.Weights.Length; i++ ) + { + // calculate the error + double e = ( input[i] - neuron.Weights[i] ) * factor; + error += Math.Abs( e ); + // update weight + neuron.Weights[i] += e * learningRate; + } + } + return error; + } + + /// + /// Runs learning epoch. + /// + /// + /// Array of input vectors. + /// + /// Returns summary learning error for the epoch. See + /// method for details about learning error calculation. + /// + /// The method runs one learning epoch, by calling method + /// for each vector provided in the array. + /// + public double RunEpoch( double[][] input ) + { + double error = 0.0; + + // walk through all training samples + foreach ( double[] sample in input ) + { + error += Run( sample ); + } + + // return summary error + return error; + } + } +} diff --git a/Sources/Neuro/Learning/EvolutionaryFitness.cs b/Sources/Neuro/Learning/EvolutionaryFitness.cs new file mode 100644 index 00000000..8ed7627d --- /dev/null +++ b/Sources/Neuro/Learning/EvolutionaryFitness.cs @@ -0,0 +1,121 @@ +// AForge Neural Net Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2012 +// contacts@aforgenet.com +// +// Copyright © Cezary Wagner, 2008 +// Initial implementation of evolutionary learning algorithm +// Cezary.Wagner@gmail.com +// + +namespace AForge.Neuro.Learning +{ + using System; + using System.Diagnostics; + using AForge.Genetic; + + /// + /// Fitness function used for chromosomes representing collection of neural network's weights. + /// + /// + internal class EvolutionaryFitness : IFitnessFunction + { + // neural network for which fitness will be calculated + private ActivationNetwork network; + + // input data samples for neural network + private double[][] input; + + // output data samples for neural network (desired output) + private double[][] output; + + /// + /// Initializes a new instance of the class. + /// + /// + /// Neural network for which fitness will be calculated. + /// Input data samples for neural network. + /// Output data sampels for neural network (desired output). + /// + /// Length of inputs and outputs arrays must be equal and greater than 0. + /// Length of each input vector must be equal to neural network's inputs count. + /// + public EvolutionaryFitness( ActivationNetwork network, double[][] input, double[][] output ) + { + if ( ( input.Length == 0 ) || ( input.Length != output.Length ) ) + { + throw new ArgumentException( "Length of inputs and outputs arrays must be equal and greater than 0." ); + } + + if ( network.InputsCount != input[0].Length ) + { + throw new ArgumentException( "Length of each input vector must be equal to neural network's inputs count." ); + } + + this.network = network; + this.input = input; + this.output = output; + } + + /// + /// Evaluates chromosome. + /// + /// + /// Chromosome to evaluate. + /// + /// Returns chromosome's fitness value. + /// + /// The method calculates fitness value of the specified + /// chromosome. + /// + public double Evaluate( IChromosome chromosome ) + { + DoubleArrayChromosome daChromosome = (DoubleArrayChromosome) chromosome; + double[] chromosomeGenes = daChromosome.Value; + // total number of weight in neural network + int totalNumberOfWeights = 0; + + // asign new weights and thresholds to network from the given chromosome + for ( int i = 0, layersCount = network.Layers.Length; i < layersCount; i++ ) + { + Layer layer = network.Layers[i]; + + for ( int j = 0; j < layer.Neurons.Length; j++ ) + { + ActivationNeuron neuron = layer.Neurons[j] as ActivationNeuron; + + for ( int k = 0; k < neuron.Weights.Length; k++ ) + { + neuron.Weights[k] = chromosomeGenes[totalNumberOfWeights++]; + } + neuron.Threshold = chromosomeGenes[totalNumberOfWeights++]; + } + } + + // post check if all values are processed and lenght of chromosome + // is equal to network size + Debug.Assert( totalNumberOfWeights == daChromosome.Length ); + + double totalError = 0; + + for ( int i = 0, inputVectorsAmount = input.Length; i < inputVectorsAmount; i++ ) + { + double[] computedOutput = network.Compute( input[i] ); + + for ( int j = 0, outputLength = output[0].Length; j < outputLength; j++ ) + { + double error = output[i][j] - computedOutput[j]; + totalError += error * error; + } + } + + if ( totalError > 0 ) + return 1.0 / totalError; + + // zero error means the best fitness + return double.MaxValue; + } + } +} diff --git a/Sources/Neuro/Learning/EvolutionaryLearning.cs b/Sources/Neuro/Learning/EvolutionaryLearning.cs new file mode 100644 index 00000000..0ca1fa2e --- /dev/null +++ b/Sources/Neuro/Learning/EvolutionaryLearning.cs @@ -0,0 +1,303 @@ +// AForge Neural Net Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2012 +// contacts@aforgenet.com +// + +namespace AForge.Neuro.Learning +{ + using System; + using System.Diagnostics; + using AForge.Genetic; + using AForge.Math.Random; + + /// + /// Neural networks' evolutionary learning algorithm, which is based on Genetic Algorithms. + /// + /// + /// The class implements supervised neural network's learning algorithm, + /// which is based on Genetic Algorithms. For the given neural network, it create a population + /// of chromosomes, which represent neural network's + /// weights. Then, during the learning process, the genetic population evolves and weights, which + /// are represented by the best chromosome, are set to the source neural network. + /// + /// See class for additional information about genetic population + /// and evolutionary based search. + /// + /// Sample usage (training network to calculate XOR function): + /// + /// // initialize input and output values + /// double[][] input = new double[4][] { + /// new double[] {-1, 1}, new double[] {-1, 1}, + /// new double[] { 1, -1}, new double[] { 1, 1} + /// }; + /// double[][] output = new double[4][] { + /// new double[] {-1}, new double[] { 1}, + /// new double[] { 1}, new double[] {-1} + /// }; + /// // create neural network + /// ActivationNetwork network = new ActivationNetwork( + /// BipolarSigmoidFunction( 2 ), + /// 2, // two inputs in the network + /// 2, // two neurons in the first layer + /// 1 ); // one neuron in the second layer + /// // create teacher + /// EvolutionaryLearning teacher = new EvolutionaryLearning( network, + /// 100 ); // number of chromosomes in genetic population + /// // loop + /// while ( !needToStop ) + /// { + /// // run epoch of learning procedure + /// double error = teacher.RunEpoch( input, output ); + /// // check error value to see if we need to stop + /// // ... + /// } + /// + /// + /// + /// + /// + /// + public class EvolutionaryLearning : ISupervisedLearning + { + // designed network for training which have to matach inputs and outputs + private ActivationNetwork network; + // number of weight in the network to train + private int numberOfNetworksWeights; + + // genetic population + private Population population; + // size of population + private int populationSize; + + // generator for newly generated neurons + private IRandomNumberGenerator chromosomeGenerator; + // mutation generators + private IRandomNumberGenerator mutationMultiplierGenerator; + private IRandomNumberGenerator mutationAdditionGenerator; + + // selection method for chromosomes in population + private ISelectionMethod selectionMethod; + + // crossover probability in genetic population + private double crossOverRate; + // mutation probability in genetic population + private double mutationRate; + // probability to add newly generated chromosome to population + private double randomSelectionRate; + + /// + /// Initializes a new instance of the class. + /// + /// + /// Activation network to be trained. + /// Size of genetic population. + /// Random numbers generator used for initialization of genetic + /// population representing neural network's weights and thresholds (see ). + /// Random numbers generator used to generate random + /// factors for multiplication of network's weights and thresholds during genetic mutation + /// (ses .) + /// Random numbers generator used to generate random + /// values added to neural network's weights and thresholds during genetic mutation + /// (see ). + /// Method of selection best chromosomes in genetic population. + /// Crossover rate in genetic population (see + /// ). + /// Mutation rate in genetic population (see + /// ). + /// Rate of injection of random chromosomes during selection + /// in genetic population (see ). + /// + public EvolutionaryLearning( ActivationNetwork activationNetwork, int populationSize, + IRandomNumberGenerator chromosomeGenerator, + IRandomNumberGenerator mutationMultiplierGenerator, + IRandomNumberGenerator mutationAdditionGenerator, + ISelectionMethod selectionMethod, + double crossOverRate, double mutationRate, double randomSelectionRate ) + { + // Check of assumptions during debugging only + Debug.Assert( activationNetwork != null ); + Debug.Assert( populationSize > 0 ); + Debug.Assert( chromosomeGenerator != null ); + Debug.Assert( mutationMultiplierGenerator != null ); + Debug.Assert( mutationAdditionGenerator != null ); + Debug.Assert( selectionMethod != null ); + Debug.Assert( crossOverRate >= 0.0 && crossOverRate <= 1.0 ); + Debug.Assert( mutationRate >= 0.0 && crossOverRate <= 1.0 ); + Debug.Assert( randomSelectionRate >= 0.0 && randomSelectionRate <= 1.0 ); + + // networks's parameters + this.network = activationNetwork; + this.numberOfNetworksWeights = CalculateNetworkSize( activationNetwork ); + + // population parameters + this.populationSize = populationSize; + this.chromosomeGenerator = chromosomeGenerator; + this.mutationMultiplierGenerator = mutationMultiplierGenerator; + this.mutationAdditionGenerator = mutationAdditionGenerator; + this.selectionMethod = selectionMethod; + this.crossOverRate = crossOverRate; + this.mutationRate = mutationRate; + this.randomSelectionRate = randomSelectionRate; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Activation network to be trained. + /// Size of genetic population. + /// + /// This version of constructor is used to create genetic population + /// for searching optimal neural network's weight using default set of parameters, which are: + /// + /// Selection method - elite; + /// Crossover rate - 0.75; + /// Mutation rate - 0.25; + /// Rate of injection of random chromosomes during selection - 0.20; + /// Random numbers generator for initializing new chromosome - + /// UniformGenerator( new Range( -1, 1 ) ); + /// Random numbers generator used during mutation for genes' multiplication - + /// ExponentialGenerator( 1 ); + /// Random numbers generator used during mutation for adding random value to genes - + /// UniformGenerator( new Range( -0.5f, 0.5f ) ). + /// + /// + /// In order to have full control over the above default parameters, it is possible to + /// used extended version of constructor, which allows to specify all of the parameters. + /// + /// + public EvolutionaryLearning( ActivationNetwork activationNetwork, int populationSize ) + { + // Check of assumptions during debugging only + Debug.Assert( activationNetwork != null ); + Debug.Assert( populationSize > 0 ); + + // networks's parameters + this.network = activationNetwork; + this.numberOfNetworksWeights = CalculateNetworkSize( activationNetwork ); + + // population parameters + this.populationSize = populationSize; + this.chromosomeGenerator = new UniformGenerator( new Range( -1, 1 ) ); + this.mutationMultiplierGenerator = new ExponentialGenerator( 1 ); + this.mutationAdditionGenerator = new UniformGenerator( new Range( -0.5f, 0.5f ) ); + this.selectionMethod = new EliteSelection( ); + this.crossOverRate = 0.75; + this.mutationRate = 0.25; + this.randomSelectionRate = 0.2; + } + + // Create and initialize genetic population + private int CalculateNetworkSize( ActivationNetwork activationNetwork ) + { + // caclculate total amount of weight in neural network + int networkSize = 0; + + for ( int i = 0; i < network.Layers.Length; i++ ) + { + Layer layer = network.Layers[i]; + + for ( int j = 0; j < layer.Neurons.Length; j++ ) + { + // sum all weights and threshold + networkSize += layer.Neurons[j].Weights.Length + 1; + } + } + + return networkSize; + } + + /// + /// Runs learning iteration. + /// + /// + /// Input vector. + /// Desired output vector. + /// + /// Returns learning error. + /// + /// The method is not implemented, since evolutionary learning algorithm is global + /// and requires all inputs/outputs in order to run its one epoch. Use + /// method instead. + /// + /// The method is not implemented by design. + /// + public double Run( double[] input, double[] output ) + { + throw new NotImplementedException( "The method is not implemented by design." ); + } + + /// + /// Runs learning epoch. + /// + /// + /// Array of input vectors. + /// Array of output vectors. + /// + /// Returns summary squared learning error for the entire epoch. + /// + /// While running the neural network's learning process, it is required to + /// pass the same and values for each + /// epoch. On the very first run of the method it will initialize evolutionary fitness + /// function with the given input/output. So, changing input/output in middle of the learning + /// process, will break it. + /// + public double RunEpoch( double[][] input, double[][] output ) + { + Debug.Assert( input.Length > 0 ); + Debug.Assert( output.Length > 0 ); + Debug.Assert( input.Length == output.Length ); + Debug.Assert( network.InputsCount == input.Length ); + + // check if it is a first run and create population if so + if ( population == null ) + { + // sample chromosome + DoubleArrayChromosome chromosomeExample = new DoubleArrayChromosome( + chromosomeGenerator, mutationMultiplierGenerator, mutationAdditionGenerator, + numberOfNetworksWeights ); + + // create population ... + population = new Population( populationSize, chromosomeExample, + new EvolutionaryFitness( network, input, output ), selectionMethod ); + // ... and configure it + population.CrossoverRate = crossOverRate; + population.MutationRate = mutationRate; + population.RandomSelectionPortion = randomSelectionRate; + } + + // run genetic epoch + population.RunEpoch( ); + + // get best chromosome of the population + DoubleArrayChromosome chromosome = (DoubleArrayChromosome) population.BestChromosome; + double[] chromosomeGenes = chromosome.Value; + + // put best chromosome's value into neural network's weights + int v = 0; + + for ( int i = 0; i < network.Layers.Length; i++ ) + { + Layer layer = network.Layers[i]; + + for ( int j = 0; j < layer.Neurons.Length; j++ ) + { + ActivationNeuron neuron = layer.Neurons[j] as ActivationNeuron; + + for ( int k = 0; k < neuron.Weights.Length; k++ ) + { + neuron.Weights[k] = chromosomeGenes[v++]; + } + neuron.Threshold = chromosomeGenes[v++]; + } + } + + Debug.Assert( v == numberOfNetworksWeights ); + + return 1.0 / chromosome.Fitness; + } + } +} diff --git a/Sources/Neuro/Learning/ISupervisedLearning.cs b/Sources/Neuro/Learning/ISupervisedLearning.cs new file mode 100644 index 00000000..f0394ee8 --- /dev/null +++ b/Sources/Neuro/Learning/ISupervisedLearning.cs @@ -0,0 +1,48 @@ +// AForge Neural Net Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2012 +// contacts@aforgenet.com +// + +namespace AForge.Neuro.Learning +{ + using System; + + /// + /// Supervised learning interface. + /// + /// + /// The interface describes methods, which should be implemented + /// by all supervised learning algorithms. Supervised learning is such + /// type of learning algorithms, where system's desired output is known on + /// the learning stage. So, given sample input values and desired outputs, + /// system should adopt its internals to produce correct (or close to correct) + /// result after the learning step is complete. + /// + public interface ISupervisedLearning + { + /// + /// Runs learning iteration. + /// + /// + /// Input vector. + /// Desired output vector. + /// + /// Returns learning error. + /// + double Run( double[] input, double[] output ); + + /// + /// Runs learning epoch. + /// + /// + /// Array of input vectors. + /// Array of output vectors. + /// + /// Returns sum of learning errors. + /// + double RunEpoch( double[][] input, double[][] output ); + } +} diff --git a/Sources/Neuro/Learning/IUnsupervisedLearning.cs b/Sources/Neuro/Learning/IUnsupervisedLearning.cs new file mode 100644 index 00000000..54e7462c --- /dev/null +++ b/Sources/Neuro/Learning/IUnsupervisedLearning.cs @@ -0,0 +1,46 @@ +// AForge Neural Net Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2012 +// contacts@aforgenet.com +// + +namespace AForge.Neuro.Learning +{ + using System; + + /// + /// Unsupervised learning interface. + /// + /// + /// The interface describes methods, which should be implemented + /// by all unsupervised learning algorithms. Unsupervised learning is such + /// type of learning algorithms, where system's desired output is not known on + /// the learning stage. Given sample input values, it is expected, that + /// system will organize itself in the way to find similarities betweed provided + /// samples. + /// + public interface IUnsupervisedLearning + { + /// + /// Runs learning iteration. + /// + /// + /// Input vector. + /// + /// Returns learning error. + /// + double Run( double[] input ); + + /// + /// Runs learning epoch. + /// + /// + /// Array of input vectors. + /// + /// Returns sum of learning errors. + /// + double RunEpoch( double[][] input ); + } +} diff --git a/Sources/Neuro/Learning/PerceptronLearning.cs b/Sources/Neuro/Learning/PerceptronLearning.cs new file mode 100644 index 00000000..6ce9e2db --- /dev/null +++ b/Sources/Neuro/Learning/PerceptronLearning.cs @@ -0,0 +1,148 @@ +// AForge Neural Net Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2012 +// contacts@aforgenet.com +// + +namespace AForge.Neuro.Learning +{ + using System; + + /// + /// Perceptron learning algorithm. + /// + /// + /// This learning algorithm is used to train one layer neural + /// network of Activation Neurons + /// with the Threshold + /// activation function. + /// + /// See information about Perceptron + /// and its learning algorithm. + /// + /// + public class PerceptronLearning : ISupervisedLearning + { + // network to teach + private ActivationNetwork network; + // learning rate + private double learningRate = 0.1; + + /// + /// Learning rate, [0, 1]. + /// + /// + /// The value determines speed of learning. + /// + /// Default value equals to 0.1. + /// + /// + public double LearningRate + { + get { return learningRate; } + set + { + learningRate = Math.Max( 0.0, Math.Min( 1.0, value ) ); + } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Network to teach. + /// + /// Invalid nuaral network. It should have one layer only. + /// + public PerceptronLearning( ActivationNetwork network ) + { + // check layers count + if ( network.Layers.Length != 1 ) + { + throw new ArgumentException( "Invalid nuaral network. It should have one layer only." ); + } + + this.network = network; + } + + /// + /// Runs learning iteration. + /// + /// + /// Input vector. + /// Desired output vector. + /// + /// Returns absolute error - difference between current network's output and + /// desired output. + /// + /// Runs one learning iteration and updates neuron's + /// weights in the case if neuron's output is not equal to the + /// desired output. + /// + public double Run( double[] input, double[] output ) + { + // compute output of network + double[] networkOutput = network.Compute( input ); + + // get the only layer of the network + Layer layer = network.Layers[0]; + + // summary network absolute error + double error = 0.0; + + // check output of each neuron and update weights + for ( int j = 0; j < layer.Neurons.Length; j++ ) + { + double e = output[j] - networkOutput[j]; + + if ( e != 0 ) + { + ActivationNeuron perceptron = layer.Neurons[j] as ActivationNeuron; + + // update weights + for ( int i = 0; i < perceptron.Weights.Length; i++ ) + { + perceptron.Weights[i] += learningRate * e * input[i]; + } + + // update threshold value + perceptron.Threshold += learningRate * e; + + // make error to be absolute + error += Math.Abs( e ); + } + } + + return error; + } + + /// + /// Runs learning epoch. + /// + /// + /// Array of input vectors. + /// Array of output vectors. + /// + /// Returns summary learning error for the epoch. See + /// method for details about learning error calculation. + /// + /// The method runs one learning epoch, by calling method + /// for each vector provided in the array. + /// + public double RunEpoch( double[][] input, double[][] output ) + { + double error = 0.0; + + // run learning procedure for all samples + for ( int i = 0, n = input.Length; i < n; i++ ) + { + error += Run( input[i], output[i] ); + } + + // return summary error + return error; + } + } +} diff --git a/Sources/Neuro/Learning/ResilientBackPropagationLearning.cs b/Sources/Neuro/Learning/ResilientBackPropagationLearning.cs new file mode 100644 index 00000000..1b96254d --- /dev/null +++ b/Sources/Neuro/Learning/ResilientBackPropagationLearning.cs @@ -0,0 +1,484 @@ +// AForge Neural Net Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © César Souza, 2009-2012 +// cesarsouza at gmail.com +// +// Copyright © AForge.NET, 2005-2012 +// contacts@aforgenet.com +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// This library 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 +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +// + +namespace AForge.Neuro.Learning +{ + using System; + + /// + /// Resilient Backpropagation learning algorithm. + /// + /// + /// This class implements the resilient backpropagation (RProp) + /// learning algorithm. The RProp learning algorithm is one of the fastest learning + /// algorithms for feed-forward learning networks which use only first-order + /// information. + /// + /// Sample usage (training network to calculate XOR function): + /// + /// // initialize input and output values + /// double[][] input = new double[4][] { + /// new double[] {0, 0}, new double[] {0, 1}, + /// new double[] {1, 0}, new double[] {1, 1} + /// }; + /// double[][] output = new double[4][] { + /// new double[] {0}, new double[] {1}, + /// new double[] {1}, new double[] {0} + /// }; + /// // create neural network + /// ActivationNetwork network = new ActivationNetwork( + /// SigmoidFunction( 2 ), + /// 2, // two inputs in the network + /// 2, // two neurons in the first layer + /// 1 ); // one neuron in the second layer + /// // create teacher + /// ResilientBackpropagationLearning teacher = new ResilientBackpropagationLearning( network ); + /// // loop + /// while ( !needToStop ) + /// { + /// // run epoch of learning procedure + /// double error = teacher.RunEpoch( input, output ); + /// // check error value to see if we need to stop + /// // ... + /// } + /// + /// + /// + public class ResilientBackpropagationLearning : ISupervisedLearning + { + private ActivationNetwork network; + + private double learningRate = 0.0125; + private double deltaMax = 50.0; + private double deltaMin = 1e-6; + + private const double etaMinus = 0.5; + private double etaPlus = 1.2; + + private double[][] neuronErrors = null; + + // update values, also known as deltas + private double[][][] weightsUpdates = null; + private double[][] thresholdsUpdates = null; + + // current and previous gradient values + private double[][][] weightsDerivatives = null; + private double[][] thresholdsDerivatives = null; + + private double[][][] weightsPreviousDerivatives = null; + private double[][] thresholdsPreviousDerivatives = null; + + + /// + /// Learning rate. + /// + /// + /// The value determines speed of learning. + /// + /// Default value equals to 0.0125. + /// + /// + public double LearningRate + { + get { return learningRate; } + set + { + learningRate = value; + ResetUpdates( learningRate ); + } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Network to teach. + /// + public ResilientBackpropagationLearning( ActivationNetwork network ) + { + this.network = network; + + int layersCount = network.Layers.Length; + + neuronErrors = new double[layersCount][]; + + weightsDerivatives = new double[layersCount][][]; + thresholdsDerivatives = new double[layersCount][]; + + weightsPreviousDerivatives = new double[layersCount][][]; + thresholdsPreviousDerivatives = new double[layersCount][]; + + weightsUpdates = new double[layersCount][][]; + thresholdsUpdates = new double[layersCount][]; + + // initialize errors, derivatives and steps + for ( int i = 0; i < network.Layers.Length; i++ ) + { + Layer layer = network.Layers[i]; + int neuronsCount = layer.Neurons.Length; + + neuronErrors[i] = new double[neuronsCount]; + + weightsDerivatives[i] = new double[neuronsCount][]; + weightsPreviousDerivatives[i] = new double[neuronsCount][]; + weightsUpdates[i] = new double[neuronsCount][]; + + thresholdsDerivatives[i] = new double[neuronsCount]; + thresholdsPreviousDerivatives[i] = new double[neuronsCount]; + thresholdsUpdates[i] = new double[neuronsCount]; + + // for each neuron + for ( int j = 0; j < layer.Neurons.Length; j++ ) + { + weightsDerivatives[i][j] = new double[layer.InputsCount]; + weightsPreviousDerivatives[i][j] = new double[layer.InputsCount]; + weightsUpdates[i][j] = new double[layer.InputsCount]; + } + } + + // intialize steps + ResetUpdates( learningRate ); + } + + /// + /// Runs learning iteration. + /// + /// + /// Input vector. + /// Desired output vector. + /// + /// Returns squared error (difference between current network's output and + /// desired output) divided by 2. + /// + /// Runs one learning iteration and updates neuron's + /// weights. + /// + public double Run( double[] input, double[] output ) + { + // zero gradient + ResetGradient( ); + + // compute the network's output + network.Compute( input ); + + // calculate network error + double error = CalculateError( output ); + + // calculate weights updates + CalculateGradient( input ); + + // update the network + UpdateNetwork( ); + + // return summary error + return error; + } + + /// + /// Runs learning epoch. + /// + /// + /// Array of input vectors. + /// Array of output vectors. + /// + /// Returns summary learning error for the epoch. See + /// method for details about learning error calculation. + /// + /// The method runs one learning epoch, by calling method + /// for each vector provided in the array. + /// + public double RunEpoch( double[][] input, double[][] output ) + { + // zero gradient + ResetGradient( ); + + double error = 0.0; + + // run learning procedure for all samples + for ( int i = 0; i < input.Length; i++ ) + { + // compute the network's output + network.Compute( input[i] ); + + // calculate network error + error += CalculateError( output[i] ); + + // calculate weights updates + CalculateGradient( input[i] ); + } + + // update the network + UpdateNetwork( ); + + // return summary error + return error; + } + + /// + /// Resets current weight and threshold derivatives. + /// + /// + private void ResetGradient( ) + { + for ( int i = 0; i < weightsDerivatives.Length; i++ ) + { + for ( int j = 0; j < weightsDerivatives[i].Length; j++ ) + { + Array.Clear( weightsDerivatives[i][j], 0, weightsDerivatives[i][j].Length ); + } + } + + for ( int i = 0; i < thresholdsDerivatives.Length; i++ ) + { + Array.Clear( thresholdsDerivatives[i], 0, thresholdsDerivatives[i].Length ); + } + } + + /// + /// Resets the current update steps using the given learning rate. + /// + /// + private void ResetUpdates( double rate ) + { + for ( int i = 0; i < weightsUpdates.Length; i++ ) + { + for ( int j = 0; j < weightsUpdates[i].Length; j++ ) + { + for ( int k = 0; k < weightsUpdates[i][j].Length; k++ ) + { + weightsUpdates[i][j][k] = rate; + } + } + } + + for ( int i = 0; i < thresholdsUpdates.Length; i++ ) + { + for ( int j = 0; j < thresholdsUpdates[i].Length; j++ ) + { + thresholdsUpdates[i][j] = rate; + } + } + } + + /// + /// Update network's weights. + /// + /// + private void UpdateNetwork( ) + { + double[][] layerWeightsUpdates; + double[] layerThresholdUpdates; + double[] neuronWeightUpdates; + + double[][] layerWeightsDerivatives; + double[] layerThresholdDerivatives; + double[] neuronWeightDerivatives; + + double[][] layerPreviousWeightsDerivatives; + double[] layerPreviousThresholdDerivatives; + double[] neuronPreviousWeightDerivatives; + + // for each layer of the network + for ( int i = 0; i < network.Layers.Length; i++ ) + { + ActivationLayer layer = network.Layers[i] as ActivationLayer; + + layerWeightsUpdates = weightsUpdates[i]; + layerThresholdUpdates = thresholdsUpdates[i]; + + layerWeightsDerivatives = weightsDerivatives[i]; + layerThresholdDerivatives = thresholdsDerivatives[i]; + + layerPreviousWeightsDerivatives = weightsPreviousDerivatives[i]; + layerPreviousThresholdDerivatives = thresholdsPreviousDerivatives[i]; + + // for each neuron of the layer + for ( int j = 0; j < layer.Neurons.Length; j++ ) + { + ActivationNeuron neuron = layer.Neurons[j] as ActivationNeuron; + + neuronWeightUpdates = layerWeightsUpdates[j]; + neuronWeightDerivatives = layerWeightsDerivatives[j]; + neuronPreviousWeightDerivatives = layerPreviousWeightsDerivatives[j]; + + double S = 0; + + // for each weight of the neuron + for ( int k = 0; k < neuron.InputsCount; k++ ) + { + S = neuronPreviousWeightDerivatives[k] * neuronWeightDerivatives[k]; + + if ( S > 0 ) + { + neuronWeightUpdates[k] = Math.Min( neuronWeightUpdates[k] * etaPlus, deltaMax ); + neuron.Weights[k] -= Math.Sign( neuronWeightDerivatives[k] ) * neuronWeightUpdates[k]; + neuronPreviousWeightDerivatives[k] = neuronWeightDerivatives[k]; + } + else if ( S < 0 ) + { + neuronWeightUpdates[k] = Math.Max( neuronWeightUpdates[k] * etaMinus, deltaMin ); + neuronPreviousWeightDerivatives[k] = 0; + } + else + { + neuron.Weights[k] -= Math.Sign( neuronWeightDerivatives[k] ) * neuronWeightUpdates[k]; + neuronPreviousWeightDerivatives[k] = neuronWeightDerivatives[k]; + } + } + + // update treshold + S = layerPreviousThresholdDerivatives[j] * layerThresholdDerivatives[j]; + + if ( S > 0 ) + { + layerThresholdUpdates[j] = Math.Min( layerThresholdUpdates[j] * etaPlus, deltaMax ); + neuron.Threshold -= Math.Sign( layerThresholdDerivatives[j] ) * layerThresholdUpdates[j]; + layerPreviousThresholdDerivatives[j] = layerThresholdDerivatives[j]; + } + else if ( S < 0 ) + { + layerThresholdUpdates[j] = Math.Max( layerThresholdUpdates[j] * etaMinus, deltaMin ); + layerThresholdDerivatives[j] = 0; + } + else + { + neuron.Threshold -= Math.Sign( layerThresholdDerivatives[j] ) * layerThresholdUpdates[j]; + layerPreviousThresholdDerivatives[j] = layerThresholdDerivatives[j]; + } + } + } + } + + /// + /// Calculates error values for all neurons of the network. + /// + /// + /// Desired output vector. + /// + /// Returns summary squared error of the last layer divided by 2. + /// + private double CalculateError( double[] desiredOutput ) + { + double error = 0; + int layersCount = network.Layers.Length; + + // assume, that all neurons of the network have the same activation function + IActivationFunction function = ( network.Layers[0].Neurons[0] as ActivationNeuron ).ActivationFunction; + + // calculate error values for the last layer first + ActivationLayer layer = network.Layers[layersCount - 1] as ActivationLayer; + double[] layerDerivatives = neuronErrors[layersCount - 1]; + + for ( int i = 0; i < layer.Neurons.Length; i++ ) + { + double output = layer.Neurons[i].Output; + + double e = output - desiredOutput[i]; + layerDerivatives[i] = e * function.Derivative2( output ); + error += ( e * e ); + } + + // calculate error values for other layers + for ( int j = layersCount - 2; j >= 0; j-- ) + { + layer = network.Layers[j] as ActivationLayer; + layerDerivatives = neuronErrors[j]; + + ActivationLayer layerNext = network.Layers[j + 1] as ActivationLayer; + double[] nextDerivatives = neuronErrors[j + 1]; + + // for all neurons of the layer + for ( int i = 0, n = layer.Neurons.Length; i < n; i++ ) + { + double sum = 0.0; + + for ( int k = 0; k < layerNext.Neurons.Length; k++ ) + { + sum += nextDerivatives[k] * layerNext.Neurons[k].Weights[i]; + } + + layerDerivatives[i] = sum * function.Derivative2( layer.Neurons[i].Output ); + } + } + + // return squared error of the last layer divided by 2 + return error / 2.0; + } + + /// + /// Calculate weights updates + /// + /// + /// Network's input vector. + /// + private void CalculateGradient( double[] input ) + { + // 1. calculate updates for the first layer + ActivationLayer layer = network.Layers[0] as ActivationLayer; + double[] weightErrors = neuronErrors[0]; + double[][] layerWeightsDerivatives = weightsDerivatives[0]; + double[] layerThresholdDerivatives = thresholdsDerivatives[0]; + + // So, for each neuron of the first layer: + for ( int i = 0; i < layer.Neurons.Length; i++ ) + { + ActivationNeuron neuron = layer.Neurons[i] as ActivationNeuron; + double[] neuronWeightDerivatives = layerWeightsDerivatives[i]; + + // for each weight of the neuron: + for ( int j = 0; j < neuron.InputsCount; j++ ) + { + neuronWeightDerivatives[j] += weightErrors[i] * input[j]; + } + layerThresholdDerivatives[i] += weightErrors[i]; + } + + // 2. for all other layers + for ( int k = 1; k < network.Layers.Length; k++ ) + { + layer = network.Layers[k] as ActivationLayer; + weightErrors = neuronErrors[k]; + layerWeightsDerivatives = weightsDerivatives[k]; + layerThresholdDerivatives = thresholdsDerivatives[k]; + + ActivationLayer layerPrev = network.Layers[k - 1] as ActivationLayer; + + // for each neuron of the layer + for ( int i = 0; i < layer.Neurons.Length; i++ ) + { + ActivationNeuron neuron = layer.Neurons[i] as ActivationNeuron; + double[] neuronWeightDerivatives = layerWeightsDerivatives[i]; + + // for each weight of the neuron + for ( int j = 0; j < layerPrev.Neurons.Length; j++ ) + { + neuronWeightDerivatives[j] += weightErrors[i] * layerPrev.Neurons[j].Output; + } + layerThresholdDerivatives[i] += weightErrors[i]; + } + } + } + } +} \ No newline at end of file diff --git a/Sources/Neuro/Learning/SOMLearning.cs b/Sources/Neuro/Learning/SOMLearning.cs new file mode 100644 index 00000000..38b6de13 --- /dev/null +++ b/Sources/Neuro/Learning/SOMLearning.cs @@ -0,0 +1,263 @@ +// AForge Neural Net Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2012 +// contacts@aforgenet.com +// + +namespace AForge.Neuro.Learning +{ + using System; + + /// + /// Kohonen Self Organizing Map (SOM) learning algorithm. + /// + /// + /// This class implements Kohonen's SOM learning algorithm and + /// is widely used in clusterization tasks. The class allows to train + /// Distance Networks. + /// + /// Sample usage (clustering RGB colors): + /// + /// // set range for randomization neurons' weights + /// Neuron.RandRange = new Range( 0, 255 ); + /// // create network + /// DistanceNetwork network = new DistanceNetwork( + /// 3, // thress inputs in the network + /// 100 * 100 ); // 10000 neurons + /// // create learning algorithm + /// SOMLearning trainer = new SOMLearning( network ); + /// // network's input + /// double[] input = new double[3]; + /// // loop + /// while ( !needToStop ) + /// { + /// input[0] = rand.Next( 256 ); + /// input[1] = rand.Next( 256 ); + /// input[2] = rand.Next( 256 ); + /// + /// trainer.Run( input ); + /// + /// // ... + /// // update learning rate and radius continuously, + /// // so networks may come steady state + /// } + /// + /// + /// + public class SOMLearning : IUnsupervisedLearning + { + // neural network to train + private DistanceNetwork network; + // network's dimension + private int width; + private int height; + + // learning rate + private double learningRate = 0.1; + // learning radius + private double learningRadius = 7; + + // squared learning radius multiplied by 2 (precalculated value to speed up computations) + private double squaredRadius2 = 2 * 7 * 7; + + /// + /// Learning rate, [0, 1]. + /// + /// + /// Determines speed of learning. + /// + /// Default value equals to 0.1. + /// + /// + public double LearningRate + { + get { return learningRate; } + set + { + learningRate = Math.Max( 0.0, Math.Min( 1.0, value ) ); + } + } + + /// + /// Learning radius. + /// + /// + /// Determines the amount of neurons to be updated around + /// winner neuron. Neurons, which are in the circle of specified radius, + /// are updated during the learning procedure. Neurons, which are closer + /// to the winner neuron, get more update. + /// + /// In the case if learning rate is set to 0, then only winner + /// neuron's weights are updated. + /// + /// Default value equals to 7. + /// + /// + public double LearningRadius + { + get { return learningRadius; } + set + { + learningRadius = Math.Max( 0, value ); + squaredRadius2 = 2 * learningRadius * learningRadius; + } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Neural network to train. + /// + /// This constructor supposes that a square network will be passed for training - + /// it should be possible to get square root of network's neurons amount. + /// + /// Invalid network size - square network is expected. + /// + public SOMLearning( DistanceNetwork network ) + { + // network's dimension was not specified, let's try to guess + int neuronsCount = network.Layers[0].Neurons.Length; + int width = (int) Math.Sqrt( neuronsCount ); + + if ( width * width != neuronsCount ) + { + throw new ArgumentException( "Invalid network size." ); + } + + // ok, we got it + this.network = network; + this.width = width; + this.height = width; + } + + + /// + /// Initializes a new instance of the class. + /// + /// + /// Neural network to train. + /// Neural network's width. + /// Neural network's height. + /// + /// The constructor allows to pass network of arbitrary rectangular shape. + /// The amount of neurons in the network should be equal to width * height. + /// + /// + /// Invalid network size - network size does not correspond + /// to specified width and height. + /// + public SOMLearning( DistanceNetwork network, int width, int height ) + { + // check network size + if ( network.Layers[0].Neurons.Length != width * height ) + { + throw new ArgumentException( "Invalid network size." ); + } + + this.network = network; + this.width = width; + this.height = height; + } + + /// + /// Runs learning iteration. + /// + /// + /// Input vector. + /// + /// Returns learning error - summary absolute difference between neurons' weights + /// and appropriate inputs. The difference is measured according to the neurons + /// distance to the winner neuron. + /// + /// The method runs one learning iterations - finds winner neuron (the neuron + /// which has weights with values closest to the specified input vector) and updates its weight + /// (as well as weights of neighbor neurons) in the way to decrease difference with the specified + /// input vector. + /// + public double Run( double[] input ) + { + double error = 0.0; + + // compute the network + network.Compute( input ); + int winner = network.GetWinner( ); + + // get layer of the network + Layer layer = network.Layers[0]; + + // check learning radius + if ( learningRadius == 0 ) + { + Neuron neuron = layer.Neurons[winner]; + + // update weight of the winner only + for ( int i = 0; i < neuron.Weights.Length; i++ ) + { + // calculate the error + double e = input[i] - neuron.Weights[i]; + error += Math.Abs( e ); + // update weights + neuron.Weights[i] += e * learningRate; + } + } + else + { + // winner's X and Y + int wx = winner % width; + int wy = winner / width; + + // walk through all neurons of the layer + for ( int j = 0; j < layer.Neurons.Length; j++ ) + { + Neuron neuron = layer.Neurons[j]; + + int dx = ( j % width ) - wx; + int dy = ( j / width ) - wy; + + // update factor ( Gaussian based ) + double factor = Math.Exp( -(double) ( dx * dx + dy * dy ) / squaredRadius2 ); + + // update weight of the neuron + for ( int i = 0; i < neuron.Weights.Length; i++ ) + { + // calculate the error + double e = ( input[i] - neuron.Weights[i] ) * factor; + error += Math.Abs( e ); + // update weight + neuron.Weights[i] += e * learningRate; + } + } + } + return error; + } + + /// + /// Runs learning epoch. + /// + /// + /// Array of input vectors. + /// + /// Returns summary learning error for the epoch. See + /// method for details about learning error calculation. + /// + /// The method runs one learning epoch, by calling method + /// for each vector provided in the array. + /// + public double RunEpoch( double[][] input ) + { + double error = 0.0; + + // walk through all training samples + foreach ( double[] sample in input ) + { + error += Run( sample ); + } + + // return summary error + return error; + } + } +} diff --git a/Sources/Neuro/Networks/ActivationNetwork.cs b/Sources/Neuro/Networks/ActivationNetwork.cs new file mode 100644 index 00000000..52ec9f3e --- /dev/null +++ b/Sources/Neuro/Networks/ActivationNetwork.cs @@ -0,0 +1,83 @@ +// AForge Neural Net Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2012 +// contacts@aforgenet.com +// + +namespace AForge.Neuro +{ + using System; + + /// + /// Activation network. + /// + /// + /// Activation network is a base for multi-layer neural network + /// with activation functions. It consists of activation + /// layers. + /// + /// Sample usage: + /// + /// // create activation network + /// ActivationNetwork network = new ActivationNetwork( + /// new SigmoidFunction( ), // sigmoid activation function + /// 3, // 3 inputs + /// 4, 1 ); // 2 layers: + /// // 4 neurons in the firs layer + /// // 1 neuron in the second layer + /// + /// + /// + [Serializable] + public class ActivationNetwork : Network + { + + + /// + /// Initializes a new instance of the class. + /// + /// + /// Activation function of neurons of the network. + /// Network's inputs count. + /// Array, which specifies the amount of neurons in + /// each layer of the neural network. + /// + /// The new network is randomized (see + /// method) after it is created. + /// + public ActivationNetwork( IActivationFunction function, int inputsCount, params int[] neuronsCount ) + : base( inputsCount, neuronsCount.Length ) + { + // create each layer + for ( int i = 0; i < layers.Length; i++ ) + { + layers[i] = new ActivationLayer( + // neurons count in the layer + neuronsCount[i], + // inputs count of the layer + ( i == 0 ) ? inputsCount : neuronsCount[i - 1], + // activation function of the layer + function ); + } + } + + /// + /// Set new activation function for all neurons of the network. + /// + /// + /// Activation function to set. + /// + /// The method sets new activation function for all neurons by calling + /// method for each layer of the network. + /// + public void SetActivationFunction( IActivationFunction function ) + { + for ( int i = 0; i < layers.Length; i++ ) + { + ( (ActivationLayer) layers[i] ).SetActivationFunction( function ); + } + } + } +} diff --git a/Sources/Neuro/Networks/DistanceNetwork.cs b/Sources/Neuro/Networks/DistanceNetwork.cs new file mode 100644 index 00000000..f8c75baa --- /dev/null +++ b/Sources/Neuro/Networks/DistanceNetwork.cs @@ -0,0 +1,71 @@ +// AForge Neural Net Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2012 +// contacts@aforgenet.com +// + +namespace AForge.Neuro +{ + using System; + + /// + /// Distance network. + /// + /// + /// Distance network is a neural network of only one distance + /// layer. The network is a base for such neural networks as SOM, Elastic net, etc. + /// + /// + [Serializable] + public class DistanceNetwork : Network + { + + + /// + /// Initializes a new instance of the class. + /// + /// + /// Network's inputs count. + /// Network's neurons count. + /// + /// The new network is randomized (see + /// method) after it is created. + /// + public DistanceNetwork( int inputsCount, int neuronsCount ) + : base( inputsCount, 1 ) + { + // create layer + layers[0] = new DistanceLayer( neuronsCount, inputsCount ); + } + + /// + /// Get winner neuron. + /// + /// + /// Index of the winner neuron. + /// + /// The method returns index of the neuron, which weights have + /// the minimum distance from network's input. + /// + public int GetWinner( ) + { + // find the MIN value + double min = output[0]; + int minIndex = 0; + + for ( int i = 1; i < output.Length; i++ ) + { + if ( output[i] < min ) + { + // found new MIN value + min = output[i]; + minIndex = i; + } + } + + return minIndex; + } + } +} diff --git a/Sources/Neuro/Networks/Network.cs b/Sources/Neuro/Networks/Network.cs new file mode 100644 index 00000000..1a0a3b94 --- /dev/null +++ b/Sources/Neuro/Networks/Network.cs @@ -0,0 +1,216 @@ +// AForge Neural Net Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2012 +// contacts@aforgenet.com +// + +namespace AForge.Neuro +{ + using System; + using System.IO; + using System.Runtime.Serialization; + using System.Runtime.Serialization.Formatters.Binary; + + /// + /// Base neural network class. + /// + /// + /// This is a base neural netwok class, which represents + /// collection of neuron's layers. + /// + [Serializable] + public abstract class Network + { + /// + /// Network's inputs count. + /// + protected int inputsCount; + + /// + /// Network's layers count. + /// + protected int layersCount; + + /// + /// Network's layers. + /// + protected Layer[] layers; + + /// + /// Network's output vector. + /// + protected double[] output; + + /// + /// Network's inputs count. + /// + public int InputsCount + { + get { return inputsCount; } + } + + /// + /// Network's layers. + /// + public Layer[] Layers + { + get { return layers; } + } + + /// + /// Network's output vector. + /// + /// + /// The calculation way of network's output vector is determined by + /// layers, which comprise the network. + /// + /// The property is not initialized (equals to ) until + /// method is called. + /// + /// + public double[] Output + { + get { return output; } + } + + + + /// + /// Initializes a new instance of the class. + /// + /// + /// Network's inputs count. + /// Network's layers count. + /// + /// Protected constructor, which initializes , + /// and members. + /// + protected Network( int inputsCount, int layersCount ) + { + this.inputsCount = Math.Max( 1, inputsCount ); + this.layersCount = Math.Max( 1, layersCount ); + // create collection of layers + this.layers = new Layer[this.layersCount]; + } + + /// + /// Compute output vector of the network. + /// + /// + /// Input vector. + /// + /// Returns network's output vector. + /// + /// The actual network's output vecor is determined by layers, + /// which comprise the layer - represents an output vector of the last layer + /// of the network. The output vector is also stored in property. + /// + /// The method may be called safely from multiple threads to compute network's + /// output value for the specified input values. However, the value of + /// property in multi-threaded environment is not predictable, + /// since it may hold network's output computed from any of the caller threads. Multi-threaded + /// access to the method is useful in those cases when it is required to improve performance + /// by utilizing several threads and the computation is based on the immediate return value + /// of the method, but not on network's output property. + /// + /// + public virtual double[] Compute( double[] input ) + { + // local variable to avoid mutlithread conflicts + double[] output = input; + + // compute each layer + for ( int i = 0; i < layers.Length; i++ ) + { + output = layers[i].Compute( output ); + } + + // assign output property as well (works correctly for single threaded usage) + this.output = output; + + return output; + } + + /// + /// Randomize layers of the network. + /// + /// + /// Randomizes network's layers by calling method + /// of each layer. + /// + public virtual void Randomize( ) + { + foreach ( Layer layer in layers ) + { + layer.Randomize( ); + } + } + + /// + /// Save network to specified file. + /// + /// + /// File name to save network into. + /// + /// The neural network is saved using .NET serialization (binary formatter is used). + /// + public void Save( string fileName ) + { + FileStream stream = new FileStream( fileName, FileMode.Create, FileAccess.Write, FileShare.None ); + Save( stream ); + stream.Close( ); + } + + /// + /// Save network to specified file. + /// + /// + /// Stream to save network into. + /// + /// The neural network is saved using .NET serialization (binary formatter is used). + /// + public void Save( Stream stream ) + { + IFormatter formatter = new BinaryFormatter( ); + formatter.Serialize( stream, this ); + } + + /// + /// Load network from specified file. + /// + /// + /// File name to load network from. + /// + /// Returns instance of class with all properties initialized from file. + /// + /// Neural network is loaded from file using .NET serialization (binary formater is used). + /// + public static Network Load( string fileName ) + { + FileStream stream = new FileStream( fileName, FileMode.Open, FileAccess.Read, FileShare.Read ); + Network network = Load( stream ); + stream.Close( ); + + return network; + } + + /// + /// Load network from specified file. + /// + /// + /// Stream to load network from. + /// + /// Returns instance of class with all properties initialized from file. + /// + /// Neural network is loaded from file using .NET serialization (binary formater is used). + /// + public static Network Load( Stream stream ) + { + IFormatter formatter = new BinaryFormatter( ); + Network network = (Network) formatter.Deserialize( stream ); + return network; + } + } +} diff --git a/Sources/Neuro/Neuro (mono).csproj b/Sources/Neuro/Neuro (mono).csproj new file mode 100644 index 00000000..e807eb2a --- /dev/null +++ b/Sources/Neuro/Neuro (mono).csproj @@ -0,0 +1,80 @@ + + + + Debug + AnyCPU + 9.0.21022 + 2.0 + {81CCAD97-7643-4995-AB8C-84F731631E78} + Library + AForge.Neuro + v2.0 + AForge.Neuro + + + true + full + false + bin\Debug + DEBUG,MONO + prompt + 3 + false + + + none + false + ..\..\Release\Mono + prompt + 3 + false + true + AForge.Neuro.snk + MONO + + + + + False + ..\..\Release\Mono\AForge.Genetic.dll + + + False + ..\..\Release\Mono\AForge.Math.dll + + + False + ..\..\Release\Mono\AForge.dll + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Sources/Neuro/Neuro (mono).sln b/Sources/Neuro/Neuro (mono).sln new file mode 100644 index 00000000..5a702337 --- /dev/null +++ b/Sources/Neuro/Neuro (mono).sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Neuro (mono)", "Neuro (mono).csproj", "{81CCAD97-7643-4995-AB8C-84F731631E78}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {81CCAD97-7643-4995-AB8C-84F731631E78}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {81CCAD97-7643-4995-AB8C-84F731631E78}.Debug|Any CPU.Build.0 = Debug|Any CPU + {81CCAD97-7643-4995-AB8C-84F731631E78}.Release|Any CPU.ActiveCfg = Release|Any CPU + {81CCAD97-7643-4995-AB8C-84F731631E78}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(MonoDevelopProperties) = preSolution + StartupItem = Neuro (mono).csproj + EndGlobalSection +EndGlobal diff --git a/Sources/Neuro/Neuro.csproj b/Sources/Neuro/Neuro.csproj new file mode 100644 index 00000000..8ef23557 --- /dev/null +++ b/Sources/Neuro/Neuro.csproj @@ -0,0 +1,131 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {02B5E453-2085-4E41-86D9-C8E8A03FB1B9} + Library + Properties + AForge.Neuro + AForge.Neuro + v2.0 + 512 + true + AForge.Neuro.snk + + + 3.5 + + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + true + full + false + ..\..\Release\ + DEBUG;TRACE + prompt + 4 + AForge.Neuro.xml + + + pdbonly + true + ..\..\Release\ + TRACE + prompt + 4 + AForge.Neuro.xml + + + + False + ..\..\Release\AForge.dll + + + False + ..\..\Release\AForge.Genetic.dll + + + False + ..\..\Release\AForge.Math.dll + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + False + Microsoft .NET Framework 4 %28x86 and x64%29 + true + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 3.1 + true + + + + + \ No newline at end of file diff --git a/Sources/Neuro/Neuro.sln b/Sources/Neuro/Neuro.sln new file mode 100644 index 00000000..5ea32a6a --- /dev/null +++ b/Sources/Neuro/Neuro.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual C# Express 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Neuro", "Neuro.csproj", "{02B5E453-2085-4E41-86D9-C8E8A03FB1B9}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {02B5E453-2085-4E41-86D9-C8E8A03FB1B9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {02B5E453-2085-4E41-86D9-C8E8A03FB1B9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {02B5E453-2085-4E41-86D9-C8E8A03FB1B9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {02B5E453-2085-4E41-86D9-C8E8A03FB1B9}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Sources/Neuro/Neurons/ActivationNeuron.cs b/Sources/Neuro/Neurons/ActivationNeuron.cs new file mode 100644 index 00000000..3e319e9d --- /dev/null +++ b/Sources/Neuro/Neurons/ActivationNeuron.cs @@ -0,0 +1,144 @@ +// AForge Neural Net Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2012 +// contacts@aforgenet.com +// + +namespace AForge.Neuro +{ + using System; + + /// + /// Activation neuron. + /// + /// + /// Activation neuron computes weighted sum of its inputs, adds + /// threshold value and then applies activation function. + /// The neuron isusually used in multi-layer neural networks. + /// + /// + /// + [Serializable] + public class ActivationNeuron : Neuron + { + /// + /// Threshold value. + /// + /// + /// The value is added to inputs weighted sum before it is passed to activation + /// function. + /// + protected double threshold = 0.0; + + /// + /// Activation function. + /// + /// + /// The function is applied to inputs weighted sum plus + /// threshold value. + /// + protected IActivationFunction function = null; + + /// + /// Threshold value. + /// + /// + /// The value is added to inputs weighted sum before it is passed to activation + /// function. + /// + public double Threshold + { + get { return threshold; } + set { threshold = value; } + } + + /// + /// Neuron's activation function. + /// + /// + public IActivationFunction ActivationFunction + { + get { return function; } + set { function = value; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Neuron's inputs count. + /// Neuron's activation function. + /// + public ActivationNeuron( int inputs, IActivationFunction function ) + : base( inputs ) + { + this.function = function; + } + + /// + /// Randomize neuron. + /// + /// + /// Calls base class Randomize method + /// to randomize neuron's weights and then randomizes threshold's value. + /// + public override void Randomize( ) + { + // randomize weights + base.Randomize( ); + // randomize threshold + threshold = rand.NextDouble( ) * ( randRange.Length ) + randRange.Min; + } + + /// + /// Computes output value of neuron. + /// + /// + /// Input vector. + /// + /// Returns neuron's output value. + /// + /// The output value of activation neuron is equal to value + /// of nueron's activation function, which parameter is weighted sum + /// of its inputs plus threshold value. The output value is also stored + /// in Output property. + /// + /// The method may be called safely from multiple threads to compute neuron's + /// output value for the specified input values. However, the value of + /// property in multi-threaded environment is not predictable, + /// since it may hold neuron's output computed from any of the caller threads. Multi-threaded + /// access to the method is useful in those cases when it is required to improve performance + /// by utilizing several threads and the computation is based on the immediate return value + /// of the method, but not on neuron's output property. + /// + /// + /// Wrong length of the input vector, which is not + /// equal to the expected value. + /// + public override double Compute( double[] input ) + { + // check for corrent input vector + if ( input.Length != inputsCount ) + throw new ArgumentException( "Wrong length of the input vector." ); + + // initial sum value + double sum = 0.0; + + // compute weighted sum of inputs + for ( int i = 0; i < weights.Length; i++ ) + { + sum += weights[i] * input[i]; + } + sum += threshold; + + // local variable to avoid mutlithreaded conflicts + double output = function.Function( sum ); + // assign output property as well (works correctly for single threaded usage) + this.output = output; + + return output; + } + } +} diff --git a/Sources/Neuro/Neurons/DistanceNeuron.cs b/Sources/Neuro/Neurons/DistanceNeuron.cs new file mode 100644 index 00000000..73c5720b --- /dev/null +++ b/Sources/Neuro/Neurons/DistanceNeuron.cs @@ -0,0 +1,79 @@ +// AForge Neural Net Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2012 +// contacts@aforgenet.com +// + +namespace AForge.Neuro +{ + using System; + + /// + /// Distance neuron. + /// + /// + /// Distance neuron computes its output as distance between + /// its weights and inputs - sum of absolute differences between weights' + /// values and corresponding inputs' values. The neuron is usually used in Kohonen + /// Self Organizing Map. + /// + [Serializable] + public class DistanceNeuron : Neuron + { + /// + /// Initializes a new instance of the class. + /// + /// + /// Neuron's inputs count. + /// + public DistanceNeuron( int inputs ) : base( inputs ) { } + + /// + /// Computes output value of neuron. + /// + /// + /// Input vector. + /// + /// Returns neuron's output value. + /// + /// The output value of distance neuron is equal to the distance + /// between its weights and inputs - sum of absolute differences. + /// The output value is also stored in Output + /// property. + /// + /// The method may be called safely from multiple threads to compute neuron's + /// output value for the specified input values. However, the value of + /// property in multi-threaded environment is not predictable, + /// since it may hold neuron's output computed from any of the caller threads. Multi-threaded + /// access to the method is useful in those cases when it is required to improve performance + /// by utilizing several threads and the computation is based on the immediate return value + /// of the method, but not on neuron's output property. + /// + /// + /// Wrong length of the input vector, which is not + /// equal to the expected value. + /// + public override double Compute( double[] input ) + { + // check for corrent input vector + if ( input.Length != inputsCount ) + throw new ArgumentException( "Wrong length of the input vector." ); + + // difference value + double dif = 0.0; + + // compute distance between inputs and weights + for ( int i = 0; i < inputsCount; i++ ) + { + dif += Math.Abs( weights[i] - input[i] ); + } + + // assign output property as well (works correctly for single threaded usage) + this.output = dif; + + return dif; + } + } +} diff --git a/Sources/Neuro/Neurons/Neuron.cs b/Sources/Neuro/Neurons/Neuron.cs new file mode 100644 index 00000000..af18a16c --- /dev/null +++ b/Sources/Neuro/Neurons/Neuron.cs @@ -0,0 +1,163 @@ +// AForge Neural Net Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2012 +// contacts@aforgenet.com +// + +namespace AForge.Neuro +{ + using System; + using AForge; + + /// + /// Base neuron class. + /// + /// + /// This is a base neuron class, which encapsulates such + /// common properties, like neuron's input, output and weights. + /// + [Serializable] + public abstract class Neuron + { + /// + /// Neuron's inputs count. + /// + protected int inputsCount = 0; + + /// + /// Nouron's wieghts. + /// + protected double[] weights = null; + + /// + /// Neuron's output value. + /// + protected double output = 0; + + /// + /// Random number generator. + /// + /// + /// The generator is used for neuron's weights randomization. + /// + protected static ThreadSafeRandom rand = new ThreadSafeRandom( ); + + /// + /// Random generator range. + /// + /// + /// Sets the range of random generator. Affects initial values of neuron's weight. + /// Default value is [0, 1]. + /// + protected static Range randRange = new Range( 0.0f, 1.0f ); + + /// + /// Random number generator. + /// + /// + /// The property allows to initialize random generator with a custom seed. The generator is + /// used for neuron's weights randomization. + /// + public static ThreadSafeRandom RandGenerator + { + get { return rand; } + set + { + if ( value != null ) + { + rand = value; + } + } + } + + /// + /// Random generator range. + /// + /// + /// Sets the range of random generator. Affects initial values of neuron's weight. + /// Default value is [0, 1]. + /// + public static Range RandRange + { + get { return randRange; } + set { randRange = value; } + } + + /// + /// Neuron's inputs count. + /// + public int InputsCount + { + get { return inputsCount; } + } + + /// + /// Neuron's output value. + /// + /// + /// The calculation way of neuron's output value is determined by inherited class. + /// + public double Output + { + get { return output; } + } + + + /// + /// Neuron's weights. + /// + public double[] Weights + { + get { return weights; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Neuron's inputs count. + /// + /// The new neuron will be randomized (see method) + /// after it is created. + /// + protected Neuron( int inputs ) + { + // allocate weights + inputsCount = Math.Max( 1, inputs ); + weights = new double[inputsCount]; + // randomize the neuron + Randomize( ); + } + + /// + /// Randomize neuron. + /// + /// + /// Initialize neuron's weights with random values within the range specified + /// by . + /// + public virtual void Randomize( ) + { + double d = randRange.Length; + + // randomize weights + for ( int i = 0; i < inputsCount; i++ ) + weights[i] = rand.NextDouble( ) * d + randRange.Min; + } + + /// + /// Computes output value of neuron. + /// + /// + /// Input vector. + /// + /// Returns neuron's output value. + /// + /// The actual neuron's output value is determined by inherited class. + /// The output value is also stored in property. + /// + public abstract double Compute( double[] input ); + } +} diff --git a/Sources/Neuro/Properties/AssemblyInfo.cs b/Sources/Neuro/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..184b5e1d --- /dev/null +++ b/Sources/Neuro/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle( "AForge.Neuro" )] +[assembly: AssemblyDescription( "" )] +[assembly: AssemblyConfiguration( "" )] +[assembly: AssemblyCompany( "AForge" )] +[assembly: AssemblyProduct( "AForge.NET" )] +[assembly: AssemblyCopyright( "AForge © 2012" )] +[assembly: AssemblyTrademark( "" )] +[assembly: AssemblyCulture( "" )] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible( false )] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid( "1aa1ed6e-d90e-457e-a3de-d08ef1d3bbed" )] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion( "2.2.5.0" )] +[assembly: AssemblyFileVersion( "2.2.5.0" )] diff --git a/Sources/Robotics.Lego/AForge.Robotics.Lego.snk b/Sources/Robotics.Lego/AForge.Robotics.Lego.snk new file mode 100644 index 00000000..6c7d5a08 Binary files /dev/null and b/Sources/Robotics.Lego/AForge.Robotics.Lego.snk differ diff --git a/Sources/Robotics.Lego/Images/nxt.jpg b/Sources/Robotics.Lego/Images/nxt.jpg new file mode 100644 index 00000000..2f775f34 Binary files /dev/null and b/Sources/Robotics.Lego/Images/nxt.jpg differ diff --git a/Sources/Robotics.Lego/Images/rcx.jpg b/Sources/Robotics.Lego/Images/rcx.jpg new file mode 100644 index 00000000..c619a387 Binary files /dev/null and b/Sources/Robotics.Lego/Images/rcx.jpg differ diff --git a/Sources/Robotics.Lego/Internals/GhostAPI.cs b/Sources/Robotics.Lego/Internals/GhostAPI.cs new file mode 100644 index 00000000..4d7ee7ef --- /dev/null +++ b/Sources/Robotics.Lego/Internals/GhostAPI.cs @@ -0,0 +1,281 @@ +// AForge Lego Robotics Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2007-2008 +// andrew.kirillov@gmail.com +// + +namespace AForge.Robotics.Lego.Internals +{ + using System; + using System.Text; + using System.Runtime.InteropServices; + + /// + /// GhostAPI wrapper class. + /// + /// + /// GhostAPI is a library provided by Lego, to communicate with its + /// RCX robotics kit. + /// + internal static class GhostAPI + { + /// + /// Creates Ghost communication stack. + /// + /// + /// Port implementation required. + /// Protocol implementation required. + /// Session implementation required. + /// Stack handle created by this function. + /// + /// GhostAPI error code. + /// + [DllImport( "GhostAPI.dll" )] + public extern static uint GhCreateStack( + string port, + string protocol, + string session, + out IntPtr stack ); + + /// + /// Finds and selects the first available device. + /// + /// + /// Stack handle. + /// Buffer, which will be filled with the name of the selected port device. + /// Size of the specified buffer. + /// + /// GhostAPI error code. + /// + [DllImport( "GhostAPI.dll" )] + public extern static uint GhSelectFirstDevice( + IntPtr stack, + [In, MarshalAs( UnmanagedType.LPStr )] StringBuilder deviceName, + int bufferSize + ); + + /// + /// Opens the currently selected device. + /// + /// + /// Handle of the stack to be opened. + /// + /// GhostAPI error code. + /// + [DllImport( "GhostAPI.dll" )] + public extern static uint GhOpen( IntPtr stack ); + + /// + /// Closes the currently selected device. + /// + /// + /// Handle of the stack to be closed. + /// + /// GhostAPI error code. + /// + [DllImport( "GhostAPI.dll" )] + public extern static uint GhClose( IntPtr stack ); + + /// + /// Sets the current command interleave between the execute and download queue. + /// + /// + /// Stack handle. + /// Number of immediate command blocks. + /// Number of download slices. + /// + /// GhostAPI error code. + /// + [DllImport( "GhostAPI.dll" )] + public extern static uint GhSetInterleave( + IntPtr stack, + int interleaveExecute, + int interleaveDownload + ); + + /// + /// Set the current notification mode to WAIT. + /// + /// + /// Stack handle. + /// Must be IntPtr.Zero - no callback function. + /// + /// GhostAPI error code. + /// + [DllImport( "GhostAPI.dll" )] + public extern static uint GhSetWaitMode( + IntPtr stack, + IntPtr notify + ); + + /// + /// Creates a command queue (containing one command to start with) and return handle. + /// + /// + /// Queue handle created by this function. + /// + /// GhostAPI error code. + /// + [DllImport( "GhostAPI.dll" )] + public extern static uint GhCreateCommandQueue( out IntPtr queue ); + + /// + /// Releases a command queue. + /// + /// + /// Queue handle. + /// + /// GhostAPI error code. + /// + [DllImport( "GhostAPI.dll" )] + public extern static uint GhDestroyCommandQueue( IntPtr queue ); + + /// + /// Appends a command to the given command queue. + /// + /// + /// Queue handle. + /// Command buffer (command + parameters). + /// Length of the command buffer. + /// Length of the expected reply to this command. + /// + /// GhostAPI error code. + /// + [DllImport( "GhostAPI.dll" )] + public extern static uint GhAppendCommand( + IntPtr queue, + byte[] commandData, + int commandLen, + int expectedReplyLen + ); + + /// + /// Submits a command queue on the EXECUTE queue. + /// + /// + /// Stack handle. + /// Queue handle. + /// + /// GhostAPI error code. + /// + [DllImport( "GhostAPI.dll" )] + public extern static uint GhExecute( IntPtr stack, IntPtr queue ); + + /// + /// Gets the first command in the queue. + /// + /// Queue handle. + /// Retrieved command handle. + /// + /// GhostAPI error code. + /// + [DllImport( "GhostAPI.dll" )] + public extern static uint GhGetFirstCommand( IntPtr queue, out IntPtr command ); + + /// + /// Gets command reply length. + /// + /// + /// Command handle. + /// Reply length. + /// + /// GhostAPI error code. + /// + [DllImport( "GhostAPI.dll" )] + public extern static uint GhGetCommandReplyLen( IntPtr command, out uint replyLen ); + + /// + /// Gets command reply. + /// + /// + /// Command handle. + /// Buffer for reply data. + /// Buffer size. + /// + /// GhostAPI error code. + /// + [DllImport( "GhostAPI.dll" )] + public extern static uint GhGetCommandReply( + IntPtr command, + byte[] replyData, + uint bufSize ); + + + /// + /// Mask of severity bits. + /// + const uint PBKERR_SEVERITYBITS = 0xC0000000; + + /// + /// Success severity. + /// + const uint PBKERR_SEVERITY_SUCCESS = 0x00000000; + + /// + /// Informational severity. + /// + const uint PBKERR_SEVERITY_INFORMATIONAL = 0x40000000; + + /// + /// Warning severity. + /// + const uint PBKERR_SEVERITY_WARNING = 0x80000000; + + /// + /// Error severity. + /// + const uint PBKERR_SEVERITY_ERROR = 0xC0000000; + + /// + /// Checks if return value has success severity. + /// + /// + /// Error return value. + /// + /// True if the return value has success severity. + /// + public static bool PBK_IS_SUCCESS( uint e ) { return ( ( e & PBKERR_SEVERITYBITS ) == PBKERR_SEVERITY_SUCCESS ); } + + /// + /// Checks if return value has info severity. + /// + /// + /// Error return value. + /// + /// True if the return value has info severity. + /// + public static bool PBK_IS_INFO( uint e ) { return ( ( e & PBKERR_SEVERITYBITS ) == PBKERR_SEVERITY_INFORMATIONAL ); } + + /// + /// Checks if return value has warning severity. + /// + /// + /// Error return value. + /// + /// True if the return value has warning severity. + /// + public static bool PBK_IS_WARNING( uint e ) { return ( ( e & PBKERR_SEVERITYBITS ) == PBKERR_SEVERITY_WARNING ); } + + /// + /// Checks if return value has error severity. + /// + /// + /// Error return value. + /// + /// True if the return value has error severity. + /// + public static bool PBK_IS_ERROR( uint e ) { return ( ( e & PBKERR_SEVERITYBITS ) == PBKERR_SEVERITY_ERROR ); } + + /// + /// Checks for successful return code, which has success or info severity. + /// + /// + /// Error return value. + /// + /// True if return value is successful. + /// + public static bool PBK_SUCCEEDED( uint e ) { return ( PBK_IS_SUCCESS( e ) || PBK_IS_INFO( e ) ); } + + } +} diff --git a/Sources/Robotics.Lego/Internals/INXTCommunicationInterface.cs b/Sources/Robotics.Lego/Internals/INXTCommunicationInterface.cs new file mode 100644 index 00000000..baa9c8eb --- /dev/null +++ b/Sources/Robotics.Lego/Internals/INXTCommunicationInterface.cs @@ -0,0 +1,106 @@ +// AForge Lego Robotics Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2007-2008 +// andrew.kirillov@gmail.com +// + +namespace AForge.Robotics.Lego.Internals +{ + using System; + + /// + /// Interface, which wraps communication functions with Lego Mindstorms NXT brick. + /// + /// + internal interface INXTCommunicationInterface + { + /// + /// Get connection status. + /// + /// + bool IsConnected { get; } + + /// + /// Connect to NXT brick. + /// + /// + /// Returns true if connection was established successfully or false + /// otherwise. + /// + bool Connect( ); + + /// + /// Disconnect from NXT brick. + /// + /// + void Disconnect( ); + + /// + /// Send message to NXT brick over the communication interface. + /// + /// + /// Buffer containing the message to send. + /// + /// Returns true if message was sent successfully or false + /// otherwise. + /// + /// This method assumes that message starts from the start of the + /// specified buffer and occupies entire buffer. + /// + bool SendMessage( byte[] message ); + + /// + /// Send message to NXT brick over the communication interface. + /// + /// + /// Buffer containing the message to send. + /// Length of the message to send. + /// + /// Returns true if message was sent successfully or false + /// otherwise. + /// + /// This method assumes that message starts from the start of the + /// specified buffer. + /// + bool SendMessage( byte[] message, int length ); + + /// + /// Send message to NXT brick over the communication interface. + /// + /// + /// Buffer containing the message to send. + /// Offset of the message in the buffer. + /// Length of the message to send. + /// + /// Returns true if message was sent successfully or false + /// otherwise. + /// + bool SendMessage( byte[] message, int offset, int length ); + + /// + /// Read message from NXT brick over the communication interface. + /// + /// + /// Buffer to use for message reading. + /// On successful return the variable keeps message length. + /// + /// Returns true if message was read successfully or false + /// otherwise. + /// + bool ReadMessage( byte[] buffer, out int length ); + + /// + /// Read message from NXT brick over the communication interface. + /// + /// + /// Buffer to use for message reading. + /// Offset in the buffer for message. + /// On successful return the variable keeps message length. + /// + /// Returns true if message was read successfully or false + /// otherwise. + /// + bool ReadMessage( byte[] buffer, int offset, out int length ); + } +} diff --git a/Sources/Robotics.Lego/Internals/NXTCommands.cs b/Sources/Robotics.Lego/Internals/NXTCommands.cs new file mode 100644 index 00000000..46331910 --- /dev/null +++ b/Sources/Robotics.Lego/Internals/NXTCommands.cs @@ -0,0 +1,132 @@ +// AForge Lego Robotics Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2007-2008 +// andrew.kirillov@gmail.com +// + +namespace AForge.Robotics.Lego.Internals +{ + using System; + + /// + /// Enumeration of command types supported by Lego Mindstorms NXT brick. + /// + /// + internal enum NXTCommandType + { + /// + /// Direct command, which requires reply. + /// + DirectCommand = 0x00, + + /// + /// System command, which requires reply. + /// + SystemCommand = 0x01, + + /// + /// Reply command received from NXT brick. + /// + ReplyCommand = 0x02, + + /// + /// Direct command, which does not require reply. + /// + DirectCommandWithoutReply = 0x80, + + /// + /// System command, which does not require reply. + /// + SystemCommandWithoutReply = 0x81 + } + + /// + /// Enumeration of system commands supported by Lego Mindstorms NXT brick. + /// + /// + internal enum NXTSystemCommand + { + /// + /// Get firmware version of NXT brick. + /// + GetFirmwareVersion = 0x88, + + /// + /// Set NXT brick name. + /// + SetBrickName = 0x98, + + /// + /// Get device information. + /// + GetDeviceInfo = 0x9B + } + + /// + /// Enumeration of direct commands supported by Lego Mindstorms NXT brick. + /// + /// + internal enum NXTDirectCommand + { + /// + /// Keep NXT brick alive. + /// + KeepAlive = 0x0D, + + /// + /// Play tone of specified frequency. + /// + PlayTone = 0x03, + + /// + /// Get battery level. + /// + GetBatteryLevel = 0x0B, + + /// + /// Set output state. + /// + SetOutputState = 0x04, + + /// + /// Get output state. + /// + GetOutputState = 0x06, + + /// + /// Reset motor position. + /// + ResetMotorPosition = 0x0A, + + /// + /// Set input mode. + /// + SetInputMode = 0x05, + + /// + /// Get input values. + /// + GetInputValues = 0x07, + + /// + /// Get status of the Low Speed bus. + /// + LsGetStatus = 0x0E, + + /// + /// Write to the Low Speed bus. + /// + LsWrite = 0x0F, + + /// + /// Read from the Low Speed bus. + /// + LsRead = 0x10, + + /// + /// Reset input scaled value. + /// + ResetInputScaledValue = 0x08 + } +} diff --git a/Sources/Robotics.Lego/Internals/RCXCommands.cs b/Sources/Robotics.Lego/Internals/RCXCommands.cs new file mode 100644 index 00000000..c0e01f22 --- /dev/null +++ b/Sources/Robotics.Lego/Internals/RCXCommands.cs @@ -0,0 +1,92 @@ +// AForge Lego Robotics Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2007-2008 +// andrew.kirillov@gmail.com +// + +namespace AForge.Robotics.Lego.Internals +{ + using System; + + /// + /// Enumeration of commands supported by Lego Mindstorms RXT brick. + /// + internal enum RCXCommand + { + /// + /// Check whether or not the RCX is alive. + /// + IsAlive = 0x10, + + /// + /// Play one of defined sounds. + /// + PlaySound = 0x51, + + /// + /// Play tone of specified frequency. + /// + PlayTone = 0x23, + + /// + /// Get ROM and firmware versions. + /// + GetVersions = 0x15, + + /// + /// Get battery power. + /// + GetBatteryPower = 0x30, + + /// + /// Set time displayed on RCX brick. + /// + SetTime = 0x22, + + /// + /// Turm off RCX brick. + /// + PowerOff = 0x60, + + /// + /// Get value. + /// + GetValue = 0x12, + + /// + /// Set sensor type. + /// + SetSensorType = 0x32, + + /// + /// Set sensor mode. + /// + SetSensorMore = 0x42, + + /// + /// Clear sensor value. + /// + ClearSensorValue = 0xD1, + + /// + /// Set IR transmiter's range. + /// + SetTransmitterRange = 0x31, + + /// + /// Turn on/off motor. + /// + SetMotorOnOff = 0x21, + + /// + /// Set motor's power. + /// + SetMotorPower = 0x13, + + /// + /// Set motor's direction + /// + SetMotorDirection = 0xE1, + } +} diff --git a/Sources/Robotics.Lego/Internals/SerialCommunication.cs b/Sources/Robotics.Lego/Internals/SerialCommunication.cs new file mode 100644 index 00000000..b56b061b --- /dev/null +++ b/Sources/Robotics.Lego/Internals/SerialCommunication.cs @@ -0,0 +1,272 @@ +// AForge Lego Robotics Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2007-2008 +// andrew.kirillov@gmail.com +// + +namespace AForge.Robotics.Lego.Internals +{ + using System; + using System.IO; + using System.IO.Ports; + + /// + /// Implementation of serial communication interface with LEGO Mindstorm NXT brick. + /// + /// + internal class SerialCommunication : INXTCommunicationInterface + { + // serial port for communication with NXT brick + SerialPort port = null; + + /// + /// Maximum message size, which can be sent over this communication interface to NXT + /// brick. + /// + /// + public const int MaxMessageSize = 64; + + /// + /// Serial port name used for communication. + /// + /// + public string PortName + { + get { return port.PortName; } + } + + /// + /// Get connection status. + /// + /// + public bool IsConnected + { + get { return port.IsOpen; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Serial port name to use for communication. + /// + /// This constructor initializes serial port with default write and read + /// timeout values, which are 1000 milliseconds. + /// + public SerialCommunication( string portName ) : + this( portName, 1000, 1000 ) + { + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Serial port name to use for communication. + /// Timeout value used for write operations. + /// Timeout value used for read operations. + /// + public SerialCommunication( string portName, int writeTimeout, int readTimeout ) + { + this.port = new SerialPort( portName ); + + this.port.WriteTimeout = writeTimeout; + this.port.ReadTimeout = readTimeout; + + this.port.BaudRate = 115200; + this.port.DataBits = 8; + this.port.StopBits = StopBits.One; + this.port.Parity = Parity.None; + this.port.RtsEnable = true; + this.port.DtrEnable = true; + } + + /// + /// Connect to NXT brick. + /// + /// + /// Returns true if connection was established successfully or false + /// otherwise. + /// + /// If communication interface was connected before the call, existing connection will be reused. + /// If it is required to force reconnection, then method should be called before. + /// + /// + public bool Connect( ) + { + if ( !port.IsOpen ) + { + // try to connect + try + { + port.Open( ); + } + catch + { + return false; + } + } + return true; + } + + /// + /// Disconnect from NXT brick. + /// + public void Disconnect( ) + { + if ( port.IsOpen ) + { + port.Close( ); + } + } + + /// + /// Send message to NXT brick over the communication interface. + /// + /// + /// Buffer containing the message to send. + /// + /// Returns true if message was sent successfully or false + /// otherwise. + /// + /// This method assumes that message starts from the start of the + /// specified buffer and occupies entire buffer. + /// + public bool SendMessage( byte[] message ) + { + return SendMessage( message, 0, message.Length ); + } + + /// + /// Send message to NXT brick over the communication interface. + /// + /// + /// Buffer containing the message to send. + /// Length of the message to send. + /// + /// Returns true if message was sent successfully or false + /// otherwise. + /// + /// This method assumes that message starts from the start of the + /// specified buffer. + /// + public bool SendMessage( byte[] message, int length ) + { + return SendMessage( message, 0, length ); + } + + /// + /// Send message to NXT brick over the communication interface. + /// + /// + /// Buffer containing the message to send. + /// Offset of the message in the buffer. + /// Length of the message to send. + /// + /// Returns true if message was sent successfully or false + /// otherwise. + /// + public bool SendMessage( byte[] message, int offset, int length ) + { + // check connection status + if ( !port.IsOpen ) + { + throw new NullReferenceException( "Serial port is not opened" ); + } + + // check message size + if ( length > MaxMessageSize ) + { + throw new ArgumentException( "Too large message" ); + } + + try + { + // prepare request buffer + byte[] requestBuffer = new byte[length + 2]; + requestBuffer[0] = (byte) ( length & 0xFF ); + requestBuffer[1] = (byte) ( ( length & 0xFF00 ) >> 8 ); + Array.Copy( message, offset, requestBuffer, 2, length ); + // send actual request + port.Write( requestBuffer, 0, requestBuffer.Length ); + } + catch + { + return false; + } + + return true; + } + + /// + /// Read message from NXT brick over the communication interface. + /// + /// + /// Buffer to use for message reading. + /// On successful return the variable keeps message length. + /// + /// Returns true if message was read successfully or false + /// otherwise. + /// + public bool ReadMessage( byte[] buffer, out int length ) + { + return ReadMessage( buffer, 0, out length ); + } + + /// + /// Read message from NXT brick over the communication interface. + /// + /// + /// Buffer to use for message reading. + /// Offset in the buffer for message. + /// On successful return the variable keeps message length. + /// + /// Returns true if message was read successfully or false + /// otherwise. + /// + public bool ReadMessage( byte[] buffer, int offset, out int length ) + { + // check connection status + if ( !port.IsOpen ) + { + throw new NullReferenceException( "Serial port is not opened" ); + } + + length = 0; + + try + { + // read 2 bytes of message length + int lsb = port.ReadByte( ); + int msb = port.ReadByte( ); + int toRead = ( msb << 8 ) + lsb; + // check buffer size + if ( toRead > buffer.Length - offset ) + { + // remove incomming message from the port + while ( toRead != 0 ) + { + port.ReadByte( ); + toRead--; + } + throw new ArgumentException( "Reply buffer is too small" ); + } + // read the message + length = port.Read( buffer, offset, toRead ); + + while ( length < toRead ) + { + buffer[offset + length] = (byte) port.ReadByte( ); + length++; + } + } + catch + { + return false; + } + + return true; + } + } +} diff --git a/Sources/Robotics.Lego/Lego.csproj b/Sources/Robotics.Lego/Lego.csproj new file mode 100644 index 00000000..924f5430 --- /dev/null +++ b/Sources/Robotics.Lego/Lego.csproj @@ -0,0 +1,120 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {F56FE364-ABAE-44B3-A939-900EB994FB9B} + Library + Properties + AForge.Robotics.Lego + AForge.Robotics.Lego + true + AForge.Robotics.Lego.snk + + + 3.5 + v2.0 + + + false + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + true + + + true + full + false + ..\..\Release\ + DEBUG;TRACE + prompt + 4 + AForge.Robotics.Lego.xml + + + pdbonly + true + ..\..\Release\ + TRACE + prompt + 4 + AForge.Robotics.Lego.xml + + + + False + ..\..\Release\AForge.dll + + + + + + + + + + + + Code + + + + + + + + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 2.0 %28x86%29 + false + + + False + .NET Framework 3.0 %28x86%29 + false + + + False + .NET Framework 3.5 + true + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 3.1 + true + + + + + \ No newline at end of file diff --git a/Sources/Robotics.Lego/Lego.sln b/Sources/Robotics.Lego/Lego.sln new file mode 100644 index 00000000..3afcb9b2 --- /dev/null +++ b/Sources/Robotics.Lego/Lego.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual C# Express 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lego", "Lego.csproj", "{F56FE364-ABAE-44B3-A939-900EB994FB9B}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {F56FE364-ABAE-44B3-A939-900EB994FB9B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F56FE364-ABAE-44B3-A939-900EB994FB9B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F56FE364-ABAE-44B3-A939-900EB994FB9B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F56FE364-ABAE-44B3-A939-900EB994FB9B}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Sources/Robotics.Lego/NXTBrick.cs b/Sources/Robotics.Lego/NXTBrick.cs new file mode 100644 index 00000000..738cb34d --- /dev/null +++ b/Sources/Robotics.Lego/NXTBrick.cs @@ -0,0 +1,1500 @@ +// AForge Lego Robotics Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2011 +// contacts@aforgenet.com +// + +namespace AForge.Robotics.Lego +{ + using System; + using AForge; + using AForge.Robotics.Lego.Internals; + + /// + /// Manipulation of Lego Mindstorms NXT device. + /// + /// + /// + /// The class allows to manipulate with Lego Mindstorms NXT device, + /// setting/getting its motors' state, getting information about sensors' + /// values and retrieving generic information about the NXT brick. + /// + /// + /// Only communication through Bluetooth (virtual serial port) is supported at this point. + /// + /// Sample usage: + /// + /// // create an instance of NXT brick + /// NXTBrick nxt = new NXTBrick( ); + /// // connect to the device + /// if ( nxt.Connect( "COM8" ) ) + /// { + /// // run motor A + /// NXTBrick.MotorState motorState = new NXTBrick.MotorState( ); + /// + /// motorState.Power = 70; + /// motorState.TurnRatio = 50; + /// motorState.Mode = NXTBrick.MotorMode.On; + /// motorState.Regulation = NXTBrick.MotorRegulationMode.Idle; + /// motorState.RunState = NXTBrick.MotorRunState.Running; + /// motorState.TachoLimit = 1000; + /// + /// nxt.SetMotorState( NXTBrick.Motor.A, motorState ); + /// + /// // get input value from the first sensor + /// NXTBrick.SensorValues sensorValues; + /// + /// if ( nxt.GetSensorValue( NXTBrick.Sensor.First, out sensorValues ) ) + /// { + /// // ... + /// } + /// // ... + /// } + /// + /// + /// + public partial class NXTBrick + { + #region Embedded types + + /// + /// Enumeration of NXT brick sensor ports. + /// + public enum Sensor + { + /// + /// First sensor. + /// + First, + /// + /// Second sensor. + /// + Second, + /// + /// Third sensor. + /// + Third, + /// + /// Fourth sensor. + /// + Fourth + } + + /// + /// Enumeration of NXT brick sensor types. + /// + /// + public enum SensorType + { + /// + /// No sensor. + /// + NoSensor = 0x00, + /// + /// NXT or Legacy touch sensor. + /// + Switch = 0x01, + /// + /// Legacy temperature sensor. + /// + Temperature = 0x02, + /// + /// Legacy light sensor. + /// + Reflection = 0x03, + /// + /// Legacy rotation sensor. + /// + Angle = 0x04, + /// + /// NXT light sensor with floodlight enabled. + /// + LightActive = 0x05, + /// + /// NXT light sensor with floodlight disabled. + /// + LightInactive = 0x06, + /// + /// NXT sound sensor (dB scaling). + /// + SoundDB = 0x07, + /// + /// NXT sound sensor (dBA scaling). + /// + SoundDBA = 0x08, + /// + /// Unused + /// + Custom = 0x09, + /// + /// I2C digital sensor. + /// + Lowspeed = 0x0A, + /// + /// I2C digital sensor (9V power). + /// + Lowspeed9V = 0x0B, + /// + /// Unused. + /// + Highspeed = 0x0C, + /// + /// NXT 2.0 color sensor in color detector mode. + /// + ColorFull = 0x0D, + /// + /// NXT 2.0 color sensor in light sensor mode with red light on. + /// + ColorRed = 0x0E, + /// + /// NXT 2.0 color sensor in light sensor mode with green light on. + /// + ColorGreen = 0x0F, + /// + /// NXT 2.0 color sensor in light sensor mode with blue light on. + /// + ColorBlue = 0x10, + /// + /// NXT 2.0 color sensor in light sensor mode without light. + /// + ColorNone = 0x11, + /// + /// NXT 2.0 color sensor internal state (no functionality known yet). + /// + ColorExit = 0x12 + } + + /// + /// Enumeration of NXT brick sensor modes. + /// + /// + public enum SensorMode + { + /// + /// Raw mode. + /// + Raw = 0x00, + /// + /// Boolean mode. Report scaled value as 1 (TRUE) or 0 (FALSE). The firmware uses + /// inverse Boolean logic to match the physical characteristics of NXT sensors. Readings + /// are FALSE if raw value exceeds 55% of total range; reading are TRUE if raw value + /// is less than 45% of total range. + /// + Boolean = 0x20, + /// + /// Report scaled value as number of transition between TRUE and FALSE. + /// + TransitionCounter = 0x40, + /// + /// Report scaled value as number of transitions from FALSE to TRUE, then back to FALSE. + /// + PeriodicCounter = 0x60, + /// + /// Report scaled value as percentage of full scale reading for configured sensor type. + /// + PCTFullScale = 0x80, + /// + /// Scale terperature reading to degrees Celsius. + /// + Celsius = 0xA0, + /// + /// Scale terperature reading to degrees Fahrenheit. + /// + Fahrenheit = 0xC0, + /// + /// Report scaled value as count of ticks on RCX-style rotation sensor. + /// + AngleSteps = 0xE0 + } + + /// + /// Class describing sensor's values received from NXT brick's sensor port. + /// + /// + public class SensorValues + { + /// + /// Specifies if data value should be treated as valid data. + /// + public bool IsValid + { + get { return isValid; } + internal set { isValid = value; } + } + private bool isValid; + + /// + /// Specifies if calibration file was found and used for + /// field calculation. + /// + public bool IsCalibrated + { + get { return isCalibrated; } + internal set { isCalibrated = value; } + } + private bool isCalibrated; + + /// + /// Sensor type. + /// + public SensorType SensorType + { + get { return sensorType; } + internal set { sensorType = value; } + } + private SensorType sensorType; + + /// + /// Sensor mode. + /// + public SensorMode SensorMode + { + get { return sensorMode; } + internal set { sensorMode = value; } + } + private SensorMode sensorMode; + + /// + /// Raw A/D value (device dependent). + /// + public ushort Raw + { + get { return raw; } + internal set { raw = value; } + } + private ushort raw; + + /// + /// Normalized A/D value (sensor type dependent), [0, 1023]. + /// + public ushort Normalized + { + get { return normalized; } + internal set { normalized = value; } + } + private ushort normalized; + + /// + /// Scaled value (sensor mode dependent). + /// + public short Scaled + { + get { return scaled; } + internal set { scaled = value; } + } + private short scaled; + + /// + /// Value scaled according to calibration. + /// + /// + /// According to Lego notes the value is currently unused. + /// + public short Calibrated + { + get { return calibrated; } + internal set { calibrated = value; } + } + private short calibrated; + } + + /// + /// Enumeration of NXT brick motor ports. + /// + /// + public enum Motor + { + /// + /// Motor A. + /// + A = 0x00, + /// + /// Motor B. + /// + B = 0x01, + /// + /// Motor C. + /// + C = 0x02, + /// + /// All motors (A, B and C). + /// + All = 0xFF + } + + /// + /// Enumeration of supported motor modes. + /// + /// + /// Motor mode is a bit field, so several modes can be combined. + /// + [FlagsAttribute] + public enum MotorMode + { + /// + /// Mode is not set. + /// + None = 0x00, + /// + /// Turn on the motor. + /// + On = 0x01, + /// + /// Brake. + /// + Brake = 0x02, + /// + /// Turn on regulated mode. + /// + Regulated = 0x04 + } + + /// + /// Enumeration of motor regulation modes. + /// + /// + public enum MotorRegulationMode + { + /// + /// No regulation will be enabled. + /// + Idle = 0x00, + /// + /// Power control will be enabled on specified motor. + /// + Speed = 0x01, + /// + /// Synchronization will be enabled. + /// + /// + /// Synchronization need to be enabled on two motors. + /// + Sync = 0x02 + } + + /// + /// Enumeration of motor run states. + /// + /// + public enum MotorRunState + { + /// + /// Motor will be idle. + /// + Idle = 0x00, + /// + /// Motor will ramp-up. + /// + RampUp = 0x10, + /// + /// Motor will be running. + /// + Running = 0x20, + /// + /// Motor will ramp-down. + /// + RampDown = 0x40 + } + + /// + /// Class describing motor's state. + /// + /// + public class MotorState + { + /// + /// Power, [-100, 100]. + /// + public int Power + { + get { return power; } + set { power = Math.Min( Math.Max( -100, value ), 100 ); } + } + private int power; + + /// + /// Turn ratio, [-100, 100]. + /// + public int TurnRatio + { + get { return turnRatio; } + set { turnRatio = Math.Min( Math.Max( -100, value ), 100 ); } + } + private int turnRatio; + + /// + /// Mode (bit field). + /// + public MotorMode Mode + { + get { return mode; } + set { mode = value; } + } + private MotorMode mode = MotorMode.None; + + /// + /// Regulation mode. + /// + public MotorRegulationMode Regulation + { + get { return regulation; } + set { regulation = value; } + } + private MotorRegulationMode regulation = MotorRegulationMode.Idle; + + /// + /// Run state. + /// + public MotorRunState RunState + { + get { return runState; } + set { runState = value; } + } + private MotorRunState runState = MotorRunState.Idle; + + /// + /// Tacho limit (0 - run forever). + /// + /// + /// The value determines motor's run limit. + public int TachoLimit + { + get { return tachoLimit; } + set { tachoLimit = Math.Max( 0, value ); } + } + private int tachoLimit; + + /// + /// Number of counts since last reset of motor counter. + /// + /// + /// The value is ignored when motor's state is set. The value is + /// provided when motor's state is retrieved. + public int TachoCount + { + get { return tachoCount; } + internal set { tachoCount = value; } + } + private int tachoCount; + + /// + /// Current position relative to last programmed movement. + /// + /// + /// The value is ignored when motor's state is set. The value is + /// provided when motor's state is retrieved. + public int BlockTachoCount + { + get { return blockTachoCount; } + internal set { blockTachoCount = value; } + } + private int blockTachoCount; + + /// + /// Current position relative to last reset of motor's rotation sensor. + /// + /// + /// The value is ignored when motor's state is set. The value is + /// provided when motor's state is retrieved. + public int RotationCount + { + get { return rotationCount; } + internal set { rotationCount = value; } + } + private int rotationCount; + + /// + /// Initializes a new instance of the class. + /// + public MotorState( ) { } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Power, [-100, 100]. + /// Turn ratio, [-100, 100]. + /// Mode (bit field). + /// Regulation mode. + /// Run state. + /// The value determines motor's run limit. + /// + public MotorState( int power, int turnRatio, MotorMode mode, + MotorRegulationMode regulation, MotorRunState runState, int tachoLimit ) + { + Power = power; + TurnRatio = turnRatio; + Mode = mode; + Regulation = regulation; + RunState = runState; + TachoLimit = tachoLimit; + + TachoCount = 0; + BlockTachoCount = 0; + RotationCount = 0; + } + } + + #endregion + + // communication interfaced used for communication with NXT brick + private INXTCommunicationInterface communicationInterface; + + // dummy object to lock for synchronization + private object sync = new object( ); + + /// + /// Check if connection to NXT brick is established. + /// + /// + public bool IsConnected + { + get + { + lock ( sync ) + { + return ( communicationInterface != null ); + } + } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public NXTBrick( ) + { + } + + /// + /// Destroys the instance of the class. + /// + /// + ~NXTBrick( ) + { + Disconnect( ); + } + + /// + /// Connect to NXT brick. + /// + /// + /// Serial port name to use for communication, for example COM1. + /// + /// Returns true on successful connection or false + /// otherwise. + /// + /// If connection to NXT brick was established before the call, existing connection will be reused. + /// If it is required to force reconnection, then method should be called before. + /// + /// + public bool Connect( string portName ) + { + lock ( sync ) + { + if ( communicationInterface != null ) + return true; + + // create communication interface, + communicationInterface = new SerialCommunication( portName ); + // connect and check if NXT is alive + if ( ( communicationInterface.Connect( ) ) && ( IsAlive( ) ) ) + return true; + + Disconnect( ); + } + return false; + } + + /// + /// Disconnect from Lego NXT brick. + /// + /// + public void Disconnect( ) + { + lock ( sync ) + { + if ( communicationInterface != null ) + { + communicationInterface.Disconnect( ); + communicationInterface = null; + } + } + } + + /// + /// Check if the NXT brick is alive and responds to messages. + /// + /// + /// Returns true if device is alive or false otherwise. + /// + /// The command also keeps NXT brick alive preventing it from sleep. + /// + public bool IsAlive( ) + { + return SendCommand( new byte[] { (byte) NXTCommandType.DirectCommand, + (byte) NXTDirectCommand.KeepAlive }, new byte[7] ); + } + + /// + /// Play tone of specified frequency. + /// + /// + /// Tone frequency in Hz. + /// Tone duration in milliseconds. + /// + /// Returns true if device is alive or false otherwise. + /// + public bool PlayTone( short frequency, short duration ) + { + return PlayTone( frequency, duration, true ); + } + + /// + /// Play tone of specified frequency. + /// + /// + /// Tone frequency in Hz. + /// Tone duration in milliseconds. + /// Wait reply from NXT (safer option) or not (faster option). + /// + /// Returns true if device is alive or false otherwise. + /// + public bool PlayTone( short frequency, short duration, bool waitReply ) + { + byte[] command = new byte[6]; + + // prepare command + command[0] = (byte) ( ( waitReply ) ? NXTCommandType.DirectCommand : NXTCommandType.DirectCommandWithoutReply ); + command[1] = (byte) NXTDirectCommand.PlayTone; + command[2] = (byte) ( frequency & 0xFF ); + command[3] = (byte) ( frequency >> 8 ); + command[4] = (byte) ( duration & 0xFF ); + command[5] = (byte) ( duration >> 8 ); + + // execute command + return SendCommand( command, new byte[3] ); + } + + /// + /// Get firmware version of NXT brick. + /// + /// + /// Protocol version number. + /// Firmware version number. + /// + /// Returns true if command was executed successfully or false otherwise. + /// + public bool GetVersion( out string protocolVersion, out string firmwareVersion ) + { + byte[] reply = new byte[7]; + + if ( SendCommand( new byte[] { (byte) NXTCommandType.SystemCommand, + (byte) NXTSystemCommand.GetFirmwareVersion }, reply ) ) + { + protocolVersion = string.Format( "{0}.{1}", reply[4], reply[3] ); + firmwareVersion = string.Format( "{0}.{1}", reply[6], reply[5] ); + return true; + } + + protocolVersion = null; + firmwareVersion = null; + + return false; + } + + /// + /// Get information about NXT device. + /// + /// + /// Device name. + /// Bluetooth address. + /// Bluetooth signal strength. + /// Free user Flash. + /// + /// Returns true if command was executed successfully or false otherwise. + /// + public bool GetDeviceInformation( out string deviceName, out byte[] btAddress, out int btSignalStrength, out int freeUserFlash ) + { + byte[] reply = new byte[33]; + + if ( SendCommand( new byte[] { (byte) NXTCommandType.SystemCommand, + (byte) NXTSystemCommand.GetDeviceInfo }, reply ) ) + { + // devince name + deviceName = System.Text.ASCIIEncoding.ASCII.GetString( reply, 3, 15 ); + // Bluetooth address + btAddress = new byte[7]; + Array.Copy( reply, 18, btAddress, 0, 7 ); + // Bluetooth signal strength + btSignalStrength = reply[25] | ( reply[26] << 8 ) | + ( reply[27] << 16 ) | ( reply[28] << 24 ); + // free user Flash + freeUserFlash = reply[29] | ( reply[30] << 8 ) | + ( reply[31] << 16 ) | ( reply[32] << 24 ); + + return true; + } + + deviceName = null; + btAddress = null; + btSignalStrength = 0; + freeUserFlash = 0; + + return false; + } + + /// + /// Get battery power of NXT brick. + /// + /// + /// NXT brick's battery power in millivolts. + /// + /// Returns true if command was executed successfully or false otherwise. + /// + public bool GetBatteryPower( out int power ) + { + byte[] reply = new byte[5]; + + if ( SendCommand( new byte[] { (byte) NXTCommandType.DirectCommand, + (byte) NXTDirectCommand.GetBatteryLevel }, reply ) ) + { + power = reply[3] | ( reply[4] << 8 ); + return true; + } + + power = 0; + + return false; + } + + /// + /// Set name of NXT device. + /// + /// + /// Device name to set for the brick. + /// + /// Returns true if command was executed successfully or false otherwise. + /// + public bool SetBrickName( string deviceName ) + { + byte[] command = new byte[18]; + + // prepare message + command[0] = (byte) NXTCommandType.SystemCommand; + command[1] = (byte) NXTSystemCommand.SetBrickName; + // convert string to bytes + System.Text.ASCIIEncoding.ASCII.GetBytes( deviceName, 0, Math.Min( deviceName.Length, 14 ), command, 2 ); + + return SendCommand( command, new byte[3] ); + } + + /// + /// Reset motor's position. + /// + /// + /// Motor to reset. + /// Specifies if relative (to last movement) or absolute motor's + /// position should reset. + /// + /// Returns true if command was executed successfully or false otherwise. + /// + public bool ResetMotorPosition( Motor motor, bool relative ) + { + return ResetMotorPosition( motor, relative, true ); + } + + /// + /// Reset motor's position. + /// + /// + /// Motor to reset. + /// Specifies if relative (to last movement) or absolute motor's + /// position should reset. + /// Wait reply from NXT (safer option) or not (faster option). + /// + /// Returns true if command was executed successfully or false otherwise. + /// + public bool ResetMotorPosition( Motor motor, bool relative, bool waitReply ) + { + byte[] command = new byte[4]; + + // prepare message + command[0] = (byte) ( ( waitReply ) ? NXTCommandType.DirectCommand : NXTCommandType.DirectCommandWithoutReply ); + command[1] = (byte) NXTDirectCommand.ResetMotorPosition; + command[2] = (byte) motor; + command[3] = (byte) ( ( relative ) ? 0xFF : 0x00 ); // reset relative or absolute position + + return SendCommand( command, new byte[3] ); + } + + /// + /// Set motor state. + /// + /// + /// Motor to set state for. + /// Motor's state to set. + /// + /// Returns true if command was executed successfully or false otherwise. + /// + public bool SetMotorState( Motor motor, MotorState state ) + { + return SetMotorState( motor, state, true ); + } + + /// + /// Set motor state. + /// + /// + /// Motor to set state for. + /// Motor's state to set. + /// Wait reply from NXT (safer option) or not (faster option). + /// + /// Returns true if command was executed successfully or false otherwise. + /// + public bool SetMotorState( Motor motor, MotorState state, bool waitReply ) + { + byte[] command = new byte[12]; + + // prepare message + command[0] = (byte) ( ( waitReply ) ? NXTCommandType.DirectCommand : NXTCommandType.DirectCommandWithoutReply ); + command[1] = (byte) NXTDirectCommand.SetOutputState; + command[2] = (byte) motor; + command[3] = (byte) state.Power; + command[4] = (byte) state.Mode; + command[5] = (byte) state.Regulation; + command[6] = (byte) state.TurnRatio; + command[7] = (byte) state.RunState; + // tacho limit + command[8] = (byte) ( state.TachoLimit & 0xFF ); + command[9] = (byte) ( ( state.TachoLimit >> 8 ) & 0xFF ); + command[10] = (byte) ( ( state.TachoLimit >> 16 ) & 0xFF ); + command[11] = (byte) ( ( state.TachoLimit >> 24 ) & 0xFF ); + + return SendCommand( command, new byte[3] ); + } + + /// + /// Get motor state. + /// + /// + /// Motor to get state for. + /// Motor's state. + /// + /// Returns true if command was executed successfully or false otherwise. + /// + public bool GetMotorState( Motor motor, out MotorState state ) + { + state = new MotorState( ); + + // check motor port + if ( motor == Motor.All ) + { + throw new ArgumentException( "Motor state can be retrieved for one motor only" ); + } + + byte[] command = new byte[3]; + byte[] reply = new byte[25]; + + // prepare message + command[0] = (byte) NXTCommandType.DirectCommand; + command[1] = (byte) NXTDirectCommand.GetOutputState; + command[2] = (byte) motor; + + if ( SendCommand( command, reply ) ) + { + state.Power = (sbyte) reply[4]; + state.Mode = (MotorMode) reply[5]; + state.Regulation = (MotorRegulationMode) reply[6]; + state.TurnRatio = (sbyte) reply[7]; + state.RunState = (MotorRunState) reply[8]; + + // tacho limit + state.TachoLimit = reply[9] | ( reply[10] << 8 ) | + ( reply[11] << 16 ) | ( reply[12] << 24 ); + // tacho count + state.TachoCount = reply[13] | ( reply[14] << 8 ) | + ( reply[15] << 16 ) | ( reply[16] << 24 ); + // block tacho count + state.BlockTachoCount = reply[17] | ( reply[18] << 8 ) | + ( reply[19] << 16 ) | ( reply[20] << 24 ); + // rotation count + state.RotationCount = reply[21] | ( reply[22] << 8 ) | + ( reply[23] << 16 ) | ( reply[24] << 24 ); + + return true; + } + + return false; + } + + /// + /// Set sensor's type and mode. + /// + /// + /// Sensor to set type of. + /// Sensor's type. + /// Sensor's mode. + /// + /// Returns true if command was executed successfully or false otherwise. + /// + public bool SetSensorMode( Sensor sensor, SensorType type, SensorMode mode ) + { + return SetSensorMode( sensor, type, mode, true ); + } + + /// + /// Set sensor's type and mode. + /// + /// + /// Sensor to set type of. + /// Sensor's type. + /// Sensor's mode. + /// Wait reply from NXT (safer option) or not (faster option). + /// + /// Returns true if command was executed successfully or false otherwise. + /// + public bool SetSensorMode( Sensor sensor, SensorType type, SensorMode mode, bool waitReply ) + { + byte[] command = new byte[5]; + + // prepare message + command[0] = (byte) ( ( waitReply ) ? NXTCommandType.DirectCommand : NXTCommandType.DirectCommandWithoutReply ); + command[1] = (byte) NXTDirectCommand.SetInputMode; + command[2] = (byte) sensor; + command[3] = (byte) type; + command[4] = (byte) mode; + + return SendCommand( command, new byte[3] ); + } + + /// + /// Get sensor's values. + /// + /// + /// Sensor to get values of. + /// etrieved sensor's values. + /// + /// Returns true if command was executed successfully or false otherwise. + /// + public bool GetSensorValue( Sensor sensor, out SensorValues sensorValues ) + { + byte[] command = new byte[3]; + byte[] reply = new byte[16]; + + sensorValues = new SensorValues( ); + + // prepare message + command[0] = (byte) NXTCommandType.DirectCommand; + command[1] = (byte) NXTDirectCommand.GetInputValues; + command[2] = (byte) sensor; + + if ( SendCommand( command, reply ) ) + { + sensorValues.IsValid = ( reply[4] != 0 ); + sensorValues.IsCalibrated = ( reply[5] != 0 ); + sensorValues.SensorType = (SensorType) reply[6]; + sensorValues.SensorMode = (SensorMode) reply[7]; + sensorValues.Raw = (ushort) ( reply[8] | ( reply[9] << 8 ) ); + sensorValues.Normalized = (ushort) ( reply[10] | ( reply[11] << 8 ) ); + sensorValues.Scaled = (short) ( reply[12] | ( reply[13] << 8 ) ); + sensorValues.Calibrated = (short) ( reply[14] | ( reply[15] << 8 ) ); + + return true; + } + + return false; + } + + /// + /// Clear sensor's scaled value. + /// + /// + /// Sensor to clear value of. + /// + /// Returns true if command was executed successfully or false otherwise. + /// + public bool ClearSensor( Sensor sensor ) + { + return ClearSensor( sensor, true ); + } + + /// + /// Clear sensor's scaled value. + /// + /// + /// Sensor to clear value of. + /// Wait reply from NXT (safer option) or not (faster option). + /// + /// Returns true if command was executed successfully or false otherwise. + /// + public bool ClearSensor( Sensor sensor, bool waitReply ) + { + byte[] command = new byte[3]; + + // prepare message + command[0] = (byte) ( ( waitReply ) ? NXTCommandType.DirectCommand : NXTCommandType.DirectCommandWithoutReply ); + command[1] = (byte) NXTDirectCommand.ResetInputScaledValue; + command[2] = (byte) sensor; + + return SendCommand( command, new byte[3] ); + } + + /// + /// Get status of Low Speed bus. + /// + /// + /// Sensor to get the status from. + /// Number of bytes that are ready to be read from the bus. + /// + /// Returns true if command was executed successfully or false otherwise. + /// + public bool LsGetStatus( Sensor sensor, out int readyBytes ) + { + byte[] command = new byte[3]; + byte[] reply = new byte[4]; + + // prepare message + command[0] = (byte) NXTCommandType.DirectCommand; + command[1] = (byte) NXTDirectCommand.LsGetStatus; + command[2] = (byte) sensor; + + if ( SendCommand( command, reply ) ) + { + readyBytes = reply[3]; + return true; + } + + readyBytes = -1; + return false; + } + + /// + /// Write to Low Speed bus. + /// + /// + /// Sensor to write to. + /// Data to send to the I2C device. + /// Number of bytes expected from device on reply, [0..16]. + /// Can be set to zero if I2C command does not suppose any reply. + /// + /// Returns true if command was executed successfully or false otherwise. + /// + /// Data length must be in the [1..16] range. + /// + public bool LsWrite( Sensor sensor, byte[] data, int expectedBytes ) + { + return LsWrite( sensor, data, expectedBytes, true ); + } + + /// + /// Write to Low Speed bus. + /// + /// + /// Sensor to write to. + /// Data to send to the I2C device. + /// Number of bytes expected from device on reply, [0..16]. + /// Can be set to zero if I2C command does not suppose any reply. + /// Wait reply from NXT (safer option) or not (faster option). + /// + /// Returns true if command was executed successfully or false otherwise. + /// + /// Data length must be in the [1..16] range. + /// + public bool LsWrite( Sensor sensor, byte[] data, int expectedBytes, bool waitReply ) + { + if ( ( data.Length == 0 ) || ( data.Length > 16 ) ) + { + throw new ArgumentException( "Data length must be in the [1..16] range.", "data" ); + } + + byte[] command = new byte[5 + data.Length]; + byte[] reply = new byte[3]; + + // prepare message + command[0] = (byte) ( ( waitReply ) ? NXTCommandType.DirectCommand : NXTCommandType.DirectCommandWithoutReply ); + command[1] = (byte) NXTDirectCommand.LsWrite; + command[2] = (byte) sensor; + + command[3] = (byte) data.Length; + command[4] = (byte) expectedBytes; + + Array.Copy( data, 0, command, 5, data.Length ); + + return ( SendCommand( command, reply ) ); + } + + /// + /// Read data from Low Speed bus. + /// + /// + /// Sensor to read data from. + /// Array to read data to. + /// Bytes actually read from I2C device. + /// + /// Returns true if command was executed successfully or false otherwise. + /// + public bool LsRead( Sensor sensor, byte[] readValues, out int bytesRead ) + { + byte[] command = new byte[3]; + byte[] reply = new byte[20]; + + // prepare message + command[0] = (byte) NXTCommandType.DirectCommand; + command[1] = (byte) NXTDirectCommand.LsRead; + command[2] = (byte) sensor; + + if ( SendCommand( command, reply ) ) + { + bytesRead = reply[3]; + Array.Copy( reply, 4, readValues, 0, Math.Min( readValues.Length, bytesRead ) ); + return true; + } + + bytesRead = -1; + return false; + } + + /// + /// Read value of ultrasonic distance sensor. + /// + /// + /// Sensor to read value from. + /// Distance value obtained from ultrasonic sensor, [0..255] cm. + /// + /// Returns true if command was executed successfully or false otherwise. + /// + /// The method retrieves value of ultrasonic distance sensor by + /// communicating with I2C device (writing to and reading from low speed bus). + /// The method first sends { 0x02, 0x42 } command to the specified device using + /// method. Then it waits until there is something available + /// to read using method. Finally it reads sensor's value + /// using device. See + /// this page + /// for details. + /// + /// Before using this method it is required to use + /// method to set sensor's type to + /// mode. It should be done + /// once after NXT brick is powered on. If sensor's type is not set properly, + /// the method will generate an exception. Also after setting sensor's + /// type application may need to wait a bit to give device some time + /// to initialize. + /// + /// + public bool GetUltrasonicSensorsValue( Sensor sensor, out int value ) + { + value = -1; + + // request distance value + if ( !LsWrite( sensor, new byte[] { 0x02, 0x42 }, 1 ) ) + return false; + + int readyBytes = -1; + + for ( int i = 0; i < 10; i++ ) + { + if ( !LsGetStatus( sensor, out readyBytes ) ) + return false; + + if ( readyBytes >= 1 ) + { + // read from I2C device + byte[] readValues = new byte[1]; + int bytesRead; + + if ( !LsRead( sensor, readValues, out bytesRead ) ) + return false; + + value = readValues[0]; + + return true; + } + } + return false; + } + + /// + /// The event is raised every time a command is sent successfully. + /// + /// + public event MessageTransferHandler MessageSent; + + /// + /// The event is raised every time a command is read successfully. + /// + /// + public event MessageTransferHandler MessageRead; + + /// + /// Send command to Lego NXT brick and read reply. + /// + /// + /// Command to send. + /// Buffer to receive reply into. + /// + /// Returns true if the command was sent successfully and reply was + /// received, otherwise false. + /// + /// Communication can not be performed, because connection with + /// NXT brick was not established yet. + /// Reply buffer size is smaller than the reply data size. + /// Reply does not correspond to command (second byte of reply should + /// be equal to second byte of command). + /// Error occurred on NXT brick side. + /// + public bool SendCommand( byte[] command, byte[] reply ) + { + bool result = false; + + lock ( sync ) + { + // check connection + if ( communicationInterface == null ) + { + throw new NullReferenceException( "Not connected to NXT brick" ); + } + + // send message to NXT brick + if ( communicationInterface.SendMessage( command, command.Length ) ) + { + // notifies clients if any + if ( MessageSent != null ) + { + MessageSent( this, new CommunicationBufferEventArgs( command ) ); + } + + if ( ( command[0] == (byte) NXTCommandType.DirectCommandWithoutReply ) || + ( command[1] == (byte) NXTCommandType.SystemCommandWithoutReply ) ) + { + result = true; + } + else + { + int bytesRead; + + // read message + if ( communicationInterface.ReadMessage( reply, out bytesRead ) ) + { + // notifies clients if any + if ( MessageRead != null ) + { + MessageRead( this, new CommunicationBufferEventArgs( reply, 0, bytesRead ) ); + } + + // check that reply corresponds to command + if ( reply[1] != command[1] ) + throw new ApplicationException( "Reply does not correspond to command" ); + + // check for errors + if ( reply[2] != 0 ) + { + if ( reply[2] == 221 ) + { + throw new ApplicationException( "It seems that a wrong sensor type is connected to the corresponding port" ); + } + else + { + throw new ApplicationException( "Error occurred in NXT brick. Error code: " + reply[2].ToString( ) ); + } + } + + result = true; + } + } + } + } + + return result; + } + + /// + /// Read data from HiTechnic color sensor (also color sensor v2). + /// + /// + /// Sensor to read from. + /// Found color number. + /// Found red value. + /// Found green value. + /// Found blue value. + /// + /// Returns true if the command was sent successfully and reply was + /// received, otherwise false. + /// + /// The method retrieves the color valuse of a HiTechnic color sensor + /// by communicating with I2C device (writing to and reading from low speed bus). + /// The method first sends { 0x02, 0x42 } command to the specified device using + /// method. Then it waits until there is something available + /// to read using method. Finally it reads sensor's value + /// using device. See + /// this page + /// for details. + /// + /// Before using this method it is required to use + /// method to set sensor's type to + /// mode. It should be done + /// once after NXT brick is powered on. If sensor's type is not set properly, + /// the method will generate an exception. Also after setting sensor's + /// type application may need to wait a bit to give device some time + /// to initialize. + /// + /// NXT Firmware version 1.24 must be loaded in the NXT for the HiTechnic color sensor to operate correctly. + /// You can check the firmware version using the method. + /// + /// The color sensor V2 must be configured to match the mains electricity frequency for your + /// country. Details on how to configure the Color Sensor V2 can be found at + /// + /// + /// + public bool ReadHiTechnicColorSensor( NXTBrick.Sensor sensor, ref int colorNumber, ref int redValue, ref int greenValue, ref int blueValue ) + { + byte[] command = { 0x02, 0x42 }; + byte[] readBuffer = new byte[4]; + + int bytesReady; + int bytesRead; + + LsWrite( sensor, command, readBuffer.Length ); + LsGetStatus( sensor, out bytesReady ); + LsRead( sensor, readBuffer, out bytesRead ); + + if ( bytesRead == readBuffer.Length ) + { + colorNumber = readBuffer[0]; + redValue = readBuffer[1]; + greenValue = readBuffer[2]; + blueValue = readBuffer[3]; + return true; + } + + return false; + } + + /// + /// Read data from HiTechnic compass sensor. + /// + /// + /// Sensor to read from. + /// The magnetic heading, [0, 359] degrees. + /// + /// Returns true if the command was sent successfully and reply was + /// received, otherwise false. + /// + /// The method retrieves the angle of a + /// HiTechnic compass sensor by + /// communicating with I2C device (writing to and reading from low speed bus). + /// The method first sends { 0x02, 0x42 } command to the specified device using + /// method. Then it waits until there is something available + /// to read using method. Finally it reads sensor's value + /// using device. See + /// this page + /// for details. + /// + /// Before using this method it is required to use + /// method to set sensor's type to + /// mode. It should be done + /// once after NXT brick is powered on. If sensor's type is not set properly, + /// the method will generate an exception. Also after setting sensor's + /// type application may need to wait a bit to give device some time + /// to initialize. + /// + /// The HiTechnic compass sensor will only operate correctly in a horizontal plane so you must keep the compass + /// level for it to read correctly. This is very important so remember this when you build it into your robot. + /// It is highly desirable to mount the compass at least 6 inches (15cm) away from the motors and 4 inches (10cm) away from the NXT brick + /// itself. Try to make sure it is firmly mounted, if it bounces around, the readings may bounce around too. + /// + /// + /// NXT Firmware version 1.03 must be loaded in the NXT for the compass to operate correctly. You can check the firmware version + /// using the method. + /// + /// + public bool ReadHiTechnicCompassSensor( NXTBrick.Sensor sensor, ref int angle ) + { + byte[] command = { 0x02, 0x42 }; + byte[] readBuffer = new byte[2]; + + int bytesReady; + int bytesRead; + + LsWrite( sensor, command, readBuffer.Length ); + LsGetStatus( sensor, out bytesReady ); + LsRead( sensor, readBuffer, out bytesRead ); + + if ( bytesRead == readBuffer.Length ) + { + angle = ( readBuffer[0] * 2 ) + readBuffer[1]; + return true; + } + + return false; + } + + /// + /// Read data from HiTechnic acceleration/tilt sensor. The HiTechnic accelerometer/tilt sensor measures acceleration in + /// three axes. It measures also tilt along each axis. Using the sensor, you can measure the acceleration of your robot in the range + /// of -2g to 2g. + /// + /// + /// Sensor to read from. + /// Acceleration in X direction, with a scaling of approximately 200 counts per g. + /// Acceleration in Y direction, with a scaling of approximately 200 counts per g. + /// Acceleration in Z direction, with a scaling of approximately 200 counts per g. + /// + /// Returns true if the command was sent successfully and reply was + /// received, otherwise false. + /// + /// The method retrieves the acceleration in three directions of a + /// HiTechnic acceleration/tilt sensor by + /// communicating with I2C device (writing to and reading from low speed bus). + /// The method first sends { 0x02, 0x42 } command to the specified device using + /// method. Then it waits until there is something available + /// to read using method. Finally it reads sensor's value + /// using device. See + /// this page + /// for details. + /// + /// Before using this method it is required to use + /// method to set sensor's type to + /// mode. It should be done + /// once after NXT brick is powered onq If sensor's type is not set properly, + /// the method will generate an exception. Also after setting sensor's + /// type application may need to wait a bit to give device some time + /// to initialize. + /// + /// The acceleration sensor can also be used to measure tilt in three axes This is possible because gravity is perceived + /// as acceleration. When the sensor is stationary and in the normal horizontal position, the x and y axis will be near + /// zero, because they are horizontal, while the z axis will be near 200, which represents g. If you tilt the sensor then + /// gravity will also be detected on the other axis and the value for the z axis will go down. Since gravity is distributed + /// among the three component vectors, the tilt of the sensor can be determined. + /// + /// NXT Firmware version 1.05 or later must be loaded in the NXT for the acceleration/tilt sensor and other digital I2C + /// sensors to operate correctly. You can check the firmware version using the method. + /// + /// + public bool ReadHiTechnicAccelerationTiltSensor( NXTBrick.Sensor sensor, ref int xAceeleration, ref int yAceeleration, ref int zAceeleration ) + { + byte[] command = { 0x02, 0x42 }; + byte[] readBuffer = new byte[6]; + + int intReady; + int bytesRead; + + LsWrite( sensor, command, readBuffer.Length ); + LsGetStatus( sensor, out intReady ); + LsRead( sensor, readBuffer, out bytesRead ); + + if ( bytesRead == readBuffer.Length ) + { + xAceeleration = readBuffer[0] > 127 ? ( readBuffer[0] - 256 ) * 4 + readBuffer[3] : readBuffer[0] * 4 + readBuffer[3]; + yAceeleration = readBuffer[1] > 127 ? ( readBuffer[1] - 256 ) * 4 + readBuffer[4] : readBuffer[1] * 4 + readBuffer[4]; + zAceeleration = readBuffer[2] > 127 ? ( readBuffer[2] - 256 ) * 4 + readBuffer[5] : readBuffer[2] * 4 + readBuffer[5]; + + return true; + } + + return false; + } + } +} diff --git a/Sources/Robotics.Lego/Properties/AssemblyInfo.cs b/Sources/Robotics.Lego/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..f1b30245 --- /dev/null +++ b/Sources/Robotics.Lego/Properties/AssemblyInfo.cs @@ -0,0 +1,35 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle( "AForge.Robotics.Lego" )] +[assembly: AssemblyDescription( "" )] +[assembly: AssemblyConfiguration( "" )] +[assembly: AssemblyCompany( "AForge" )] +[assembly: AssemblyProduct( "AForge.NET" )] +[assembly: AssemblyCopyright( "AForge © 2012" )] +[assembly: AssemblyTrademark( "" )] +[assembly: AssemblyCulture( "" )] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible( false )] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid( "fd4dcc67-ea3f-4b8a-8d00-cbc925181d7c" )] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion( "2.2.5.0" )] +[assembly: AssemblyFileVersion( "2.2.5.0" )] diff --git a/Sources/Robotics.Lego/RCXBrick.cs b/Sources/Robotics.Lego/RCXBrick.cs new file mode 100644 index 00000000..c83dac0b --- /dev/null +++ b/Sources/Robotics.Lego/RCXBrick.cs @@ -0,0 +1,690 @@ +// AForge Lego Robotics Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2011 +// contacts@aforgenet.com +// + +namespace AForge.Robotics.Lego +{ + using System; + using System.Text; + using AForge.Robotics.Lego.Internals; + + /// + /// Manipulation of Lego Mindstorms RCX device. + /// + /// + /// + /// The class allows to manipulate with Lego Mindstorms RCX device, + /// setting its motors' state, getting information about sensors' + /// values and performing some other manipulations. + /// + /// + /// The class supports both types of IR towers - USB and serial (see + /// ). + /// + /// The class uses GhostAPI to communicate with Lego RCX device, so its + /// libraries (GhostAPI.dll, PbkComm32.dll and PbkUsbPort.dll) should be placed into applications folder. + /// + /// The class is deprecated. + /// + /// Sample usage: + /// + /// // create an instance of RCX brick + /// RCXBrick rcx = new RCXBrick( ); + /// // connect to the device + /// if ( rcx.Connect( RCXBrick.IRTowerType.USB ) ) + /// { + /// // set forward direction of motor A + /// rcx.SetMotorDirection( RCXBrick.Motor.A, true ); + /// // set power of motor + /// rcx.SetMotorPower( RCXBrick.Motor.A, 1 ); + /// // turm motor on + /// rcx.SetMotorOn( RCXBrick.Motor.A, true ); + /// // ... + /// // turn off motors A, B and C + /// rcx.SetMotorOn( RCXBrick.Motor.ABC, false ); + /// + /// // get first sensor's value + /// short value; + /// + /// if ( rcx.GetSensorValue( RCXBrick.Sensor.First, out value ) ) + /// { + /// // ... + /// } + /// // ... + /// } + /// + /// + /// + /// + [Obsolete( "The class is deprecated." )] + public class RCXBrick + { + #region Embedded types + + /// + /// Type of IR tower used for communication with RCX. + /// + public enum IRTowerType + { + /// + /// USB IR tower. + /// + USB, + /// + /// RS232 IR tower. + /// + Serial + } + + /// + /// Enumeration of sound type playable by Lego RCX brick. + /// + public enum SoundType + { + /// + /// Blip sound. + /// + Blip, + /// + /// Double beep spund. + /// + BeepBeep, + /// + /// Downward tones sound. + /// + DownwardTones, + /// + /// Upward tones sound. + /// + UpwardTones, + /// + /// Low buzz sound. + /// + LowBuzz, + /// + /// Fast upward tones sound. + /// + FastUpwardTones, + } + + /// + /// Enumeration of RCX brick sensor ports. + /// + public enum Sensor + { + /// + /// First sensor. + /// + First, + /// + /// Second sensor. + /// + Second, + /// + /// Third sensor. + /// + Third + } + + /// + /// Enumeration of RCX brick sensor types. + /// + /// + /// Use method to set RCX sensor's type. + /// + public enum SensorType + { + /// + /// Raw sensor. + /// + Raw, + /// + /// Touch sensor (default mode is boolean). + /// + Touch, + /// + /// Temperature sensor (default mode is temperature in °C). + /// + Temperatur, + /// + /// Light sensor (default mode is percentage). + /// + Light, + /// + /// Rotation sensor (default mode is angle). + /// + Rotation + } + + /// + /// Enumeration of RCX brick sensor modes. + /// + /// + /// Use method to set RCX sensor's mode. + /// + public enum SensorMode + { + /// + /// Raw mode - value in [0, 1023]. + /// + Raw, + /// + /// Boolean - either 0 or 1. + /// + Boolean, + /// + /// Number of boolean transitions. + /// + EdgeCount, + /// + /// Number of boolean transitions divided by two. + /// + PulseCount, + /// + /// Raw value scaled to [0, 100]. + /// + Percentage, + /// + /// Temperature in °C - 1/10ths of a degree, [-19.8, 69.5]. + /// + TemperatureC, + /// + /// Temperature in °F - 1/10ths of a degree, [-3.6, 157.1]. + /// + TemperatureF, + /// + /// Angle - 1/16ths of a rotation, represented as a signed short. + /// + Angle + } + + /// + /// Enumeration of RCX brick motor ports. + /// + [Flags] + public enum Motor + { + /// + /// Motor A. + /// + A = 1, + /// + /// Motor B. + /// + B = 2, + /// + /// Motor C. + /// + C = 4, + /// + /// Motors A and B. + /// + AB = 3, + /// + /// Motors A and C. + /// + AC = 5, + /// + /// Motors B and C. + /// + BC = 6, + /// + /// Motors A, B and C. + /// + ABC = 7, + /// + /// All motors (A, B and C). + /// + All = 7 + } + + #endregion + + // Ghost communication stack + private IntPtr stack; + + // dummy object to lock for synchronization + private object sync = new object( ); + + /// + /// Check if connection to RCX brick is established. + /// + /// + public bool IsConnected + { + get + { + lock ( sync ) + { + return ( stack != IntPtr.Zero ); + } + } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public RCXBrick( ) + { + } + + /// + /// Destroys the instance of the class. + /// + /// + ~RCXBrick( ) + { + Disconnect( ); + } + + /// + /// Connect to Lego RCX brick. + /// + /// + /// Type of IR tower to use for communication with RCX brick. + /// + /// Returns true on successful connection or false + /// otherwise. + /// + /// If connection to RCX brick was established before the call, existing connection will be reused. + /// If it is required to force reconnection, then method should be called before. + /// + /// + public bool Connect( IRTowerType towerType ) + { + lock ( sync ) + { + // check if we are already connected + if ( stack != IntPtr.Zero ) + return true; + + uint status; + + // create stack + status = GhostAPI.GhCreateStack( + ( towerType == IRTowerType.USB ) ? "LEGO.Pbk.CommStack.Port.USB" : "LEGO.Pbk.CommStack.Port.RS232", + "LEGO.Pbk.CommStack.Protocol.IR", + "LEGO.Pbk.CommStack.Session", + out stack ); + + if ( !GhostAPI.PBK_SUCCEEDED( status ) ) + return false; + + // select first available device + StringBuilder sb = new StringBuilder( 200 ); + status = GhostAPI.GhSelectFirstDevice( stack, sb, sb.Length ); + + if ( !GhostAPI.PBK_SUCCEEDED( status ) ) + { + Disconnect( ); + return false; + } + + // open stack, set interleave, set wait mode and check if the brick is alive + if ( + !GhostAPI.PBK_SUCCEEDED( GhostAPI.GhOpen( stack ) ) || + !GhostAPI.PBK_SUCCEEDED( GhostAPI.GhSetWaitMode( stack, IntPtr.Zero ) ) || + !GhostAPI.PBK_SUCCEEDED( GhostAPI.GhSetInterleave( stack, 1, 0 ) ) || + !IsAlive( ) + ) + { + Disconnect( ); + return false; + } + } + + return true; + } + + /// + /// Disconnnect from Lego RCX brick. + /// + /// + public void Disconnect( ) + { + lock ( sync ) + { + if ( stack != IntPtr.Zero ) + { + Internals.GhostAPI.GhClose( stack ); + stack = IntPtr.Zero; + } + } + } + + /// + /// Check if the RCX brick is alive and responds to messages. + /// + /// + /// Returns true if device is alive or false otherwise. + /// + public bool IsAlive( ) + { + return SendCommand( new byte[] { (byte) RCXCommand.IsAlive }, new byte[1], 1 ); + } + + /// + /// Play one of supported sounds. + /// + /// + /// Sound type to play. + /// + /// Returns true if command was executed successfully or false otherwise. + /// + public bool PlaySound( SoundType type ) + { + return SendCommand( new byte[] { (byte) RCXCommand.PlaySound, (byte) type }, new byte[1], 1 ); ; + } + + /// + /// Play tone of specified frequency. + /// + /// + /// Tone frequency in Hz. + /// Tone duration in 1/100ths of a second. + /// + /// Returns true if command was executed successfully or false otherwise. + /// + public bool PlayTone( short frequency, byte duration ) + { + return SendCommand( new byte[] { (byte) RCXCommand.PlayTone, + (byte) ( frequency & 0xFF ), + (byte) ( frequency >> 16 ), + duration }, + new byte[1], 1 ); ; + } + + /// + /// Get version information of RCX brick. + /// + /// + /// ROM version number. + /// Firmware version number. + /// + /// Returns true if command was executed successfully or false otherwise. + /// + public bool GetVersion( out string romVersion, out string firmwareVersion ) + { + byte[] reply = new byte[9]; + + if ( SendCommand( new byte[] { (byte) RCXCommand.GetVersions, 1, 3, 5, 7, 11 }, reply, 9 ) ) + { + romVersion = string.Format( "{0}.{1}", + reply[2] | ( reply[1] << 8 ), + reply[4] | ( reply[3] << 8 ) ); + firmwareVersion = string.Format( "{0}.{1}", + reply[6] | ( reply[5] << 8 ), + reply[8] | ( reply[7] << 8 ) ); + return true; + } + + romVersion = null; + firmwareVersion = null; + + return false; + } + + /// + /// Get battery power of RCX brick. + /// + /// + /// RCX brick's battery power in millivolts. + /// + /// Returns true if command was executed successfully or false otherwise. + /// + public bool GetBatteryPower( out int power ) + { + byte[] reply = new byte[3]; + + if ( SendCommand( new byte[] { (byte) RCXCommand.GetBatteryPower }, reply, 3 ) ) + { + power = reply[1] | ( reply[2] << 8 ); + return true; + } + + power = 0; + + return false; + } + + /// + /// Set current time for the RCX brick. + /// + /// + /// Hours, [0..23]. + /// Minutes, [0..59]. + /// + /// Returns true if command was executed successfully or false otherwise. + /// + public bool SetTime( byte hours, byte minutes ) + { + return SendCommand( new byte[] { (byte) RCXCommand.SetTime, hours, minutes }, new byte[1], 1 ); + } + + /// + /// Turn off the RCX brick. + /// + /// + /// Returns true if command was executed successfully or false otherwise. + /// + public bool PowerOff( ) + { + return SendCommand( new byte[] { (byte) RCXCommand.PowerOff }, new byte[1], 1 ); + } + + /// + /// Get sensor's value. + /// + /// + /// Sensor to get value of. + /// Retrieved sensor's value (units depend on current + /// sensor's type and mode). + /// + /// Returns true if command was executed successfully or false otherwise. + /// + public bool GetSensorValue( Sensor sensor, out short value ) + { + byte[] reply = new byte[3]; + + if ( SendCommand( new byte[] { (byte) RCXCommand.GetValue, 9, (byte) sensor }, reply, 3 ) ) + { + value = (short) ( reply[1] | ( reply[2] << 8 ) ); + return true; + } + + value = 0; + + return false; + } + + /// + /// Set sensor's type. + /// + /// + /// Sensor to set type of. + /// Sensor type to set. + /// + /// Returns true if command was executed successfully or false otherwise. + /// + public bool SetSensorType( Sensor sensor, SensorType type ) + { + return SendCommand( new byte[] { (byte) RCXCommand.SetSensorType, + (byte) sensor, (byte) type }, new byte[1], 1 ); + } + + /// + /// Set sensor's mode. + /// + /// + /// Sensor to set mode of. + /// Sensor mode to set. + /// + /// Returns true if command was executed successfully or false otherwise. + /// + public bool SetSensorMode( Sensor sensor, SensorMode mode ) + { + return SendCommand( new byte[] { (byte) RCXCommand.SetSensorMore, + (byte) sensor, (byte) ( (byte) mode << 5 ) }, new byte[1], 1 ); + } + + /// + /// Clear the counter associated with the specified sensor by setting it to a value of zero. + /// + /// + /// Sensor to clear value of. + /// + /// Returns true if command was executed successfully or false otherwise. + /// + public bool ClearSensor( Sensor sensor ) + { + return SendCommand( new byte[] { (byte) RCXCommand.ClearSensorValue, + (byte) sensor }, new byte[1], 1 ); + } + + /// + /// Turn on/off specified motors. + /// + /// + /// Motors to turn on/off. + /// True to turn motors on, otherwise false. + /// + /// Returns true if command was executed successfully or false otherwise. + /// + public bool SetMotorOn( Motor motors, bool on ) + { + return SendCommand( new byte[] { (byte) RCXCommand.SetMotorOnOff, + (byte) ( (byte) motors | ( on ? 0x80 : 0x40 ) ) }, new byte[1], 1 ); + } + + /// + /// Set power of specified motors. + /// + /// + /// Motors to set power of. + /// Power level to set, [0..7]. + /// + /// Returns true if command was executed successfully or false otherwise. + /// + public bool SetMotorPower( Motor motors, byte power ) + { + return SendCommand( new byte[] { (byte) RCXCommand.SetMotorPower, + (byte) motors, 2, Math.Min( power, (byte) 7 ) }, new byte[1], 1 ); + } + + /// + /// Set direction of specified motors. + /// + /// + /// Motors to set direction of. + /// True to set forward direction, false to set backward. + /// + /// Returns true if command was executed successfully or false otherwise. + /// + public bool SetMotorDirection( Motor motors, bool isForward ) + { + return SendCommand( new byte[] { (byte) RCXCommand.SetMotorDirection, + (byte) ( (byte) motors | ( isForward ? 0x80 : 0 ) ) }, new byte[1], 1 ); + } + + /// + /// Set IR transmitter's range. + /// + /// + /// True if long range should be set, otherwise false. + /// + /// Returns true if command was executed successfully or false otherwise. + /// + public bool SetTransmitterRange( bool isLongRange ) + { + return SendCommand( new byte[] { (byte) RCXCommand.SetTransmitterRange, + (byte) ( ( isLongRange) ? 1 : 0 ) }, new byte[1], 1 ); + } + + /// + /// Send command to Lego RCX brick and read reply. + /// + /// + /// Command to send. + /// Buffer to receive reply into. + /// Expected reply length. + /// + /// Returns true if the command was sent successfully and reply was + /// received, otherwise false. + /// + /// Communication can not be performed, because connection with + /// RCX brick was not established yet. + /// Reply buffer size is smaller than the reply data size. + /// Reply does not correspond to command (first byte of reply + /// should be complement (bitwise NOT) to the first byte of command orred with 0x08). + /// + protected bool SendCommand( byte[] command, byte[] reply, int expectedReplyLen ) + { + bool result = false; + uint status; + IntPtr queue; + + lock ( sync ) + { + // check if GhostAPI stack was created (if device is connected) + if ( stack == IntPtr.Zero ) + { + throw new NullReferenceException( "Not connected to RCX brick" ); + } + + // create command queue + status = GhostAPI.GhCreateCommandQueue( out queue ); + + if ( !GhostAPI.PBK_SUCCEEDED( status ) ) + return false; + + // append command to the queue + status = GhostAPI.GhAppendCommand( queue, command, command.Length, expectedReplyLen ); + + if ( GhostAPI.PBK_SUCCEEDED( status ) ) + { + // execute command + status = GhostAPI.GhExecute( stack, queue ); + + if ( GhostAPI.PBK_SUCCEEDED( status ) ) + { + IntPtr commandHandle; + uint replyLen; + + // get first command and its reply data lenght + if ( + ( GhostAPI.PBK_SUCCEEDED( GhostAPI.GhGetFirstCommand( queue, out commandHandle ) ) ) && + ( GhostAPI.PBK_SUCCEEDED( GhostAPI.GhGetCommandReplyLen( commandHandle, out replyLen ) ) ) + ) + { + // check provided reply buffer size + if ( reply.Length < replyLen ) + throw new ArgumentException( "Reply buffer is too small" ); + + // get reply data + status = GhostAPI.GhGetCommandReply( commandHandle, reply, replyLen ); + + if ( GhostAPI.PBK_SUCCEEDED( status ) ) + { + // check that reply corresponds to command + if ( ( command[0] | 0x08 ) != (byte) ~reply[0] ) + throw new ApplicationException( "Reply does not correspond to command" ); + + result = true; + } + } + } + } + + // destroy command queue + GhostAPI.GhDestroyCommandQueue( queue ); + } + + return result; + } + } +} diff --git a/Sources/Robotics.Surveyor/AForge.Robotics.Surveyor.snk b/Sources/Robotics.Surveyor/AForge.Robotics.Surveyor.snk new file mode 100644 index 00000000..0fee1543 Binary files /dev/null and b/Sources/Robotics.Surveyor/AForge.Robotics.Surveyor.snk differ diff --git a/Sources/Robotics.Surveyor/Images/srv1-robot.jpg b/Sources/Robotics.Surveyor/Images/srv1-robot.jpg new file mode 100644 index 00000000..5c50f633 Binary files /dev/null and b/Sources/Robotics.Surveyor/Images/srv1-robot.jpg differ diff --git a/Sources/Robotics.Surveyor/Images/svs.jpg b/Sources/Robotics.Surveyor/Images/svs.jpg new file mode 100644 index 00000000..22bed62f Binary files /dev/null and b/Sources/Robotics.Surveyor/Images/svs.jpg differ diff --git a/Sources/Robotics.Surveyor/Properties/AssemblyInfo.cs b/Sources/Robotics.Surveyor/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..77e0c913 --- /dev/null +++ b/Sources/Robotics.Surveyor/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle( "AForge.Robotics.Surveyor" )] +[assembly: AssemblyDescription( "" )] +[assembly: AssemblyConfiguration( "" )] +[assembly: AssemblyCompany( "AForge" )] +[assembly: AssemblyProduct( "AForge.NET" )] +[assembly: AssemblyCopyright( "AForge © 2012" )] +[assembly: AssemblyTrademark( "" )] +[assembly: AssemblyCulture( "" )] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible( false )] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid( "0baa4870-09b7-4920-bc4f-51d79cf29524" )] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion( "2.2.4.0" )] +[assembly: AssemblyFileVersion( "2.2.4.0" )] diff --git a/Sources/Robotics.Surveyor/Robotics.Surveyor.csproj b/Sources/Robotics.Surveyor/Robotics.Surveyor.csproj new file mode 100644 index 00000000..596f0488 --- /dev/null +++ b/Sources/Robotics.Surveyor/Robotics.Surveyor.csproj @@ -0,0 +1,110 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {3D9EFCF7-61CD-49DD-9300-9F9C993FB37B} + Library + Properties + AForge.Robotics.Surveyor + AForge.Robotics.Surveyor + v2.0 + 512 + true + AForge.Robotics.Surveyor.snk + + + 3.5 + + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + true + full + false + ..\..\Release\ + DEBUG;TRACE + prompt + 4 + AForge.Robotics.Surveyor.xml + + + pdbonly + true + ..\..\Release\ + TRACE + prompt + 4 + AForge.Robotics.Surveyor.xml + + + + False + ..\..\Release\AForge.dll + + + False + ..\..\Release\AForge.Video.dll + + + + + + + + + + + + + + + + + + False + Microsoft .NET Framework 4 %28x86 and x64%29 + true + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 3.1 + true + + + + + \ No newline at end of file diff --git a/Sources/Robotics.Surveyor/Robotics.Surveyor.sln b/Sources/Robotics.Surveyor/Robotics.Surveyor.sln new file mode 100644 index 00000000..98b923d6 --- /dev/null +++ b/Sources/Robotics.Surveyor/Robotics.Surveyor.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual C# Express 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Robotics.Surveyor", "Robotics.Surveyor.csproj", "{3D9EFCF7-61CD-49DD-9300-9F9C993FB37B}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {3D9EFCF7-61CD-49DD-9300-9F9C993FB37B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3D9EFCF7-61CD-49DD-9300-9F9C993FB37B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3D9EFCF7-61CD-49DD-9300-9F9C993FB37B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3D9EFCF7-61CD-49DD-9300-9F9C993FB37B}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Sources/Robotics.Surveyor/SRV1.cs b/Sources/Robotics.Surveyor/SRV1.cs new file mode 100644 index 00000000..00a4d564 --- /dev/null +++ b/Sources/Robotics.Surveyor/SRV1.cs @@ -0,0 +1,1243 @@ +// AForge Surveyor Robotics Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +namespace AForge.Robotics.Surveyor +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.IO; + using System.Net; + using System.Net.Sockets; + using System.Text; + using System.Threading; + using AForge; + + /// + /// Manipulation of Surveyor SRV-1 Blackfin robot/camera. + /// + /// + /// + /// The class allows to manipulate with Surveyor SRV-1 Blackfin Robot + /// - getting video from its camera, manipulating motors and servos, + /// reading ultrasonic modules' values, sending direct commands, etc. + /// + /// + /// + /// Sample usage: + /// + /// SRV1 srv = new SRV1( ); + /// // connect to SRV-1 robot + /// srv.Connect( "169.254.0.10", 10001 ); + /// // stop motors + /// srv.StopMotors( ); + /// // set video resolution and quality + /// srv.SetQuality( 7 ); + /// srv.SetResolution( SRV1.VideoResolution.Small ); + /// // get version string + /// string version = srv.GetVersion( ); + /// + /// // get robot's camera + /// SRV1Camera camera = srv.GetCamera( ); + /// + /// // set NewFrame event handler + /// camera.NewFrame += new NewFrameEventHandler( video_NewFrame ); + /// // start the video source + /// camera.Start( ); + /// // ... + /// + /// private void video_NewFrame( object sender, NewFrameEventArgs eventArgs ) + /// { + /// // get new frame + /// Bitmap bitmap = eventArgs.Frame; + /// // process the frame + /// } + /// + /// + /// + /// + /// + public class SRV1 + { + // dummy object to lock for synchronization + private object sync = new object( ); + + /// + /// Enumeration of predefined motors' commands. + /// + /// + /// This enumeration defines set of motors' commands, which can + /// be executed using method. + /// + /// Controlling SRV-1 motors with these commands is only possible + /// after at least one direct motor command is sent, which is done using or + /// methods. + /// + /// The IncreaseSpeed and DecreaseSpeed commands do not have any effect + /// unless another driving command is sent. In other words, these do not increase/decrease speed of + /// current operation, but affect speed of all following commands. + /// + /// The RotateLeft and RotateRight commands may be useful only for the original + /// Surveyor SRV-1 Blackfin Robot. + /// For most of other robots, which may have different motors and moving base, these commands + /// will not be accurate – will not rotate for 20 degrees. + /// + /// + /// + public enum MotorCommand + { + /// + /// Robot drive forward. + /// + DriveForward = '8', + /// + /// Robot drive back. + /// + DriveBack = '2', + /// + /// Robot drive left. + /// + DriveLeft = '4', + /// + /// Robot drive right. + /// + DriveRight = '6', + /// + /// Robot drift left. + /// + DriftLeft = '7', + /// + /// Robot drift right. + /// + DriftRight = '9', + /// + /// Robot stop. + /// + Stop = '5', + /// + /// Robot drive back and right. + /// + DriveBackRight = '3', + /// + /// Robot drive back and left. + /// + DriveBackLeft = '1', + + /// + /// Robot rotate left 20 degrees. + /// + /// + RotateLeft = '0', + + /// + /// Robot rotate right 20 degrees. + /// + /// + RotateRight = '.', + + /// + /// Increase motors' speed. + /// + /// + IncreaseSpeed = '+', + + /// + /// Decrease motors' speed. + /// + /// + DecreaseSpeed = '-', + } + + /// + /// Enumeration of Surveyor SRV-1 Blackfin cameras resolutions. + /// + public enum VideoResolution + { + /// + /// 160x120 + /// + Tiny = 'a', + /// + /// 320x240 + /// + Small = 'b', + /// + /// 640x480 + /// + Medium = 'c', + /// + /// 1280x1024 + /// + Large = 'd' + } + + private IPEndPoint endPoint = null; + + // Connecton end-point + internal IPEndPoint EndPoint + { + get { return endPoint; } + } + + // socket used for communication with SVS + Socket socket = null; + // background communicaton thread + private Thread thread = null; + // event signaling thread to exit + private ManualResetEvent stopEvent = null; + // event signaling about available request in communication queue + private AutoResetEvent requestIsAvailable; + // event sugnaling about available response + private AutoResetEvent replyIsAvailable; + + // last processed request which requires reply + private CommunicationRequest lastRequestWithReply; + + // communication request + private class CommunicationRequest + { + public byte[] Request; + public byte[] ResponseBuffer; + public int BytesRead; // -1 on error + + public CommunicationRequest( byte[] request ) + { + this.Request = request; + } + public CommunicationRequest( byte[] request, byte[] responseBuffer ) + { + this.Request = request; + this.ResponseBuffer = responseBuffer; + } + } + + // communication queue + Queue communicationQueue = new Queue( ); + + // SRV-1 camera + private SRV1Camera camera; + + /// + /// SRV-1 host address. + /// + /// + /// The property keeps SRV-1 IP address if the class is connected + /// to SRV-1 Blackfin robot/camera, otherwise it equals to . + /// + public string HostAddress + { + get { return ( endPoint == null ) ? null : endPoint.Address.ToString( ); } + } + + /// + /// SRV-1 port number. + /// + /// + /// The property keeps SRV-1 port number if the class is connected + /// to SRV-1 Blackfin robot/camera, otherwise it equals to 0. + /// + public int Port + { + get { return ( endPoint == null ) ? 0 : endPoint.Port; } + } + + /// + /// Connection state. + /// + /// + /// The property equals to if the class is connected + /// to SRV-1 Blackfin robot/camera, otherwise it equals to . + /// + /// The property is not updated by the class, when connection was lost or + /// communication failure was detected (which results into + /// exception). The property only shows status of method. + /// + /// + public bool IsConnected + { + get { return ( endPoint != null ); } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public SRV1( ) + { + } + + /// + /// Connect to SRV-1 Blackfin robot/camera. + /// + /// + /// IP address of SRV-1 robot. + /// Port number to connect to. + /// + /// The method establishes connection to SRV-1 Blackfin robot/camera. + /// If it succeeds then other methods can be used to manipulate the robot. + /// + /// The method calls before making any connection + /// attempts to make sure previous connection is closed. + /// + /// + /// Failed connecting to SRV-1. + /// + public void Connect( string ip, int port ) + { + Disconnect( ); + + lock ( sync ) + { + try + { + // make sure communication queue is empty + communicationQueue.Clear( ); + + endPoint = new IPEndPoint( IPAddress.Parse( ip ), Convert.ToInt16( port ) ); + // create TCP/IP socket and set timeouts + socket = new Socket( AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp ); + socket.ReceiveTimeout = 5000; + socket.SendTimeout = 1000; + + // connect to SVS + socket.Connect( endPoint ); + + // create events + stopEvent = new ManualResetEvent( false ); + + requestIsAvailable = new AutoResetEvent( false ); + replyIsAvailable = new AutoResetEvent( false ); + + // create and start new thread + thread = new Thread( new ThreadStart( CommunicationThread ) ); + thread.Start( ); + } + catch ( SocketException ) + { + socket.Close( ); + socket = null; + endPoint = null; + + throw new ConnectionFailedException( "Failed connecting to SRV-1." ); + } + } + } + + /// + /// Disconnect from SRV-1 Blackfin robot. + /// + /// + /// The method disconnects from SRV-1 robot making all other methods + /// unavailable (except method). In the case if user + /// obtained instance of camera using method, the video will + /// be stopped automatically (and those instances should be discarded). + /// + /// + public void Disconnect( ) + { + lock ( sync ) + { + if ( thread != null ) + { + // signal camera to stop + if ( camera != null ) + { + camera.SignalToStop( ); + } + + // signal worker thread to stop + stopEvent.Set( ); + requestIsAvailable.Set( ); + replyIsAvailable.Set( ); + + // finilze the camera + if ( camera != null ) + { + // wait for aroung 250 ms + for ( int i = 0; ( i < 5 ) && ( camera.IsRunning ); i++ ) + { + System.Threading.Thread.Sleep( 50 ); + } + // abort camera if it can not be stopped + if ( camera.IsRunning ) + { + camera.Stop( ); + } + camera = null; + } + + // wait for aroung 1 s + for ( int i = 0; ( i < 20 ) && ( thread.Join( 0 ) == false ); i++ ) + { + System.Threading.Thread.Sleep( 50 ); + } + // abort thread if it can not be stopped + if ( thread.Join( 0 ) == false ) + { + thread.Abort( ); + } + + thread = null; + + // release events + stopEvent.Close( ); + stopEvent = null; + + requestIsAvailable.Close( ); + requestIsAvailable = null; + + replyIsAvailable.Close( ); + replyIsAvailable = null; + } + + if ( socket != null ) + { + if ( socket.Connected ) + { + socket.Disconnect( false ); + } + socket.Close( ); + socket = null; + endPoint = null; + } + } + } + + // Try to reconnect to SVS + private void Reconnect( ) + { + if ( socket != null ) + { + if ( socket.Connected ) + { + socket.Disconnect( false ); + } + socket.Close( ); + + // create TCP/IP socket and set timeouts + socket = new Socket( AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp ); + socket.ReceiveTimeout = 5000; + socket.SendTimeout = 1000; + + // connect to SVS + socket.Connect( endPoint ); + } + } + + /// + /// Get camera object for the SRV-1 Blackfin robot/camera. + /// + /// + /// Returns object, which is connected to SRV1 Blackfin camera. + /// Use method to start the camera and start receiving video + /// frames it. + /// + /// The method provides an instance of , which can be used + /// for receiving continuous video frames from the SRV-1 Blackfin camera. + /// In the case if only one image is required, the method can be used. + /// + /// Sample usage: + /// + /// // get SRV-1 camera + /// SRV1Camera camera = srv.GetCamera( ); + /// // set NewFrame event handler + /// camera.NewFrame += new NewFrameEventHandler( video_NewFrame ); + /// // start the video source + /// camera.Start( ); + /// // ... + /// + /// private void video_NewFrame( object sender, NewFrameEventArgs eventArgs ) + /// { + /// // get new frame + /// Bitmap bitmap = eventArgs.Frame; + /// // process the frame + /// } + /// + /// + /// + /// Not connected to SRV-1. Connect to SRV-1 robot/camera + /// before using this method. + /// + public SRV1Camera GetCamera( ) + { + lock ( sync ) + { + if ( socket == null ) + { + // handle error + throw new NotConnectedException( "Not connected to SRV-1." ); + } + + if ( camera == null ) + { + camera = new SRV1Camera( this ); + } + return camera; + } + } + + /// + /// Enqueue communication request. + /// + /// + /// Array of bytes (command) to send to SRV-1 Blackfin robot/camera. + /// + /// The method puts specified command into communication queue and leaves + /// immediately. Once internal communication thread becomes free from sending/receiving previous + /// commands/replies, it will send the queued command. + /// + /// The method is useful for those SRV-1 commands, which does not assume any response data + /// in the command's reply. + /// + /// Since the method only queues a communication request, it does not provide any status + /// of request's delivery and it does not generate any exceptions on failure. + /// + /// + public void Send( byte[] request ) + { + lock ( communicationQueue ) + { + communicationQueue.Enqueue( new CommunicationRequest( request ) ); + } + if ( requestIsAvailable != null ) + { + requestIsAvailable.Set( ); + } + } + + /// + /// Enqueue communication request and wait for reply. + /// + /// + /// Array of bytes (command) to send to SRV-1 Blackfin robot/camera. + /// Buffer to read response into. + /// + /// Returns total bytes read into the response buffer. + /// + /// The method puts specified command into communication queue and waits until + /// the command is sent to SRV-1 Blackfin robot and reply is received. + /// + /// If SRV-1 responds with more data than response buffer can fit, then + /// the response buffer will take all the data it can store, but the rest of response + /// will be discarded. The only exception is image request - if response buffer is too + /// small to fit image response, then exception + /// is thrown. It is user's responsibility to provide response buffer of the correct + /// size. Check definition of the SRV-1 + /// Control Protocol for information about supported commands and responses. + /// + /// + /// Not connected to SRV-1. + /// Connection lost or communicaton failure. + /// Response buffer is too small. + /// + public int SendAndReceive( byte[] request, byte[] responseBuffer ) + { + lock ( sync ) + { + if ( socket == null ) + { + // handle error + throw new NotConnectedException( "Not connected to SRV-1." ); + } + + lock ( communicationQueue ) + { + communicationQueue.Enqueue( new CommunicationRequest( request, responseBuffer ) ); + } + requestIsAvailable.Set( ); + + // waiting for reply + replyIsAvailable.WaitOne( ); + + // no reply since we got disconnect request from user - background thread is exiting + if ( lastRequestWithReply == null ) + return 0; + + // get number of bytes read + int bytesRead = lastRequestWithReply.BytesRead; + + // clean the last reply + lastRequestWithReply = null; + + if ( bytesRead == -1 ) + { + // handle error + throw new ConnectionLostException( "Connection lost or communicaton failure." ); + } + if ( bytesRead == -2 ) + { + // handle error + throw new IndexOutOfRangeException( "Response buffer is too small." ); + } + return bytesRead; + } + } + + /// + /// Get single image from the SRV-1 Blackfin camera. + /// + /// + /// Returns image received from the SRV-1 Blackfin camera or + /// if failed decoding provided response. + /// + /// The method provides single video frame retrieved from the SRV-1 Blackfin + /// camera. However in many cases it is required to receive video frames one after another, so + /// the method is more preferred for continuous video frames. + /// + /// Not connected to SRV-1. Connect to SRV-1 before using + /// this method. + /// Connection lost or communicaton failure. Try to reconnect. + /// + public Bitmap GetImage( ) + { + Bitmap image = null; + + // buffer to read image into + byte[] buffer = new byte[768 * 1024]; + // request image + int bytesRead = SendAndReceive( new byte[] { (byte) 'I' }, buffer ); + + if ( bytesRead > 10 ) + { + // check for image reply signature + if ( + ( buffer[0] == (byte) '#' ) && + ( buffer[1] == (byte) '#' ) && + ( buffer[2] == (byte) 'I' ) && + ( buffer[3] == (byte) 'M' ) && + ( buffer[4] == (byte) 'J' ) ) + { + // extract image size + int imageSize = System.BitConverter.ToInt32( buffer, 6 ); + + try + { + // decode image from memory stream + image = (Bitmap) Bitmap.FromStream( new MemoryStream( buffer, 10, imageSize ) ); + } + catch + { + image = null; + } + } + } + + return image; + } + + /// + /// Get SRV-1 firmware version string. + /// + /// + /// Returns SRV-1 version string. + /// + /// Not connected to SRV-1. Connect to SRV-1 before using + /// this method. + /// Connection lost or communicaton failure. Try to reconnect. + /// + public string GetVersion( ) + { + byte[] response = new byte[100]; + + int read = SendAndReceive( new byte[] { (byte) 'V' }, response ); + + string str = System.Text.ASCIIEncoding.ASCII.GetString( response, 0, read ); + + str = str.Replace( "##Version -", "" ); + str = str.Trim( ); + + return str; + } + + /// + /// Get SRV-1 running time. + /// + /// + /// Returns SRV-1 running time in milliseconds. + /// + /// Not connected to SRV-1. Connect to SRV-1 before using + /// this method. + /// Connection lost or communicaton failure. Try to reconnect. + /// Failed parsing response from SRV-1. + /// + public long GetRunningTime( ) + { + byte[] response = new byte[100]; + + int read = SendAndReceive( new byte[] { (byte) 't' }, response ); + + string str = System.Text.ASCIIEncoding.ASCII.GetString( response, 0, read ); + + str = str.Replace( "##time - millisecs:", "" ); + str = str.Trim( ); + + try + { + return long.Parse( str ); + } + catch + { + throw new ApplicationException( "Failed parsing response from SRV-1." ); + } + } + + /// + /// Run motors connected to SRV-1 robot. + /// + /// + /// Left motor's speed, [-127, 127]. + /// Right motor's speed, [-127, 127]. + /// Time duration to run motors measured in number + /// of 10 milliseconds (0 for infinity), [0, 255]. + /// + /// The method provides direct access to motors setting specified, + /// speed to both motors connected to the SRV-1 robot. The maximum absolute speed + /// equals to 127, but the sign specifies direction of motor's rotation (forward or backward). + /// + /// + /// The method sends 'Mabc' SRV-1 command (see SRV-1 + /// Control Protocol), which uses 2nd and 3rd timers for + /// controlling motors/servos. + /// + /// + public void RunMotors( int leftSpeed, int rightSpeed, int duration ) + { + // check limits + if ( leftSpeed == -128 ) + leftSpeed = -127; + if ( rightSpeed == -128 ) + rightSpeed = -127; + if ( duration > 255 ) + duration = 255; + + Send( new byte[] { (byte) 'M', (byte) leftSpeed, (byte) rightSpeed, (byte) duration } ); + } + + /// + /// Stop both motors. + /// + /// + /// The method stops both motors connected to the SRV-1 robot by calling + /// method specifying 0 for motors' speed. + /// + public void StopMotors( ) + { + RunMotors( 0, 0, 0 ); + } + + /// + /// Enables fail safe mode - setting motors' speed after timeout. + /// + /// + /// Left motor's speed, [-127, 127]. + /// Right motor's speed, [-127, 127]. + /// + /// In the case if fail safe mode is enabled and no commands are received + /// by SRV-1 robot withing 2 seconds, motors' speed will be set to the specified values. The command + /// is very useful to instruct robot to stop if no other commands were sent + /// within 2 last seconds (probably lost connection). + /// + public void EnableFailsafeMode( int leftSpeed, int rightSpeed ) + { + // check limits + if ( leftSpeed == -128 ) + leftSpeed = -127; + if ( rightSpeed == -128 ) + rightSpeed = -127; + + Send( new byte[] { (byte) 'F', (byte) leftSpeed, (byte) rightSpeed } ); + } + + /// + /// Disable fail safe mode. + /// + /// + /// The method disable fail safe mode, which was set using + /// method. + /// + public void DisableFailsafeMode( ) + { + Send( new byte[] { (byte) 'f' } ); + } + + /// + /// Direct servos control of SRV-1 robot. + /// + /// + /// Left servo setting, [0, 100]. + /// Right servo setting, [0, 100]. + /// + /// Servo settings represent timing pulse widths ranging + /// from 1ms to 2ms. 0 corresponds to a 1ms pulse, 100 corresponds to a 2ms pulse, + /// and 50 is midrange with a 1.5ms pulse. + /// + /// The method sends 'sab' SRV-1 command (see SRV-1 + /// Control Protocol), which controls 2nd bank of servos + /// using 6th and 7th timers. + /// + /// + public void ControlServos( int leftServo, int rightServo ) + { + // check limts + if ( leftServo > 100 ) + leftServo = 100; + if ( rightServo > 100 ) + rightServo = 100; + + Send( new byte[] { (byte) 's', (byte) leftServo, (byte) rightServo } ); + } + + /// + /// Control SRV-1 robot's motors using predefined commands. + /// + /// + /// Motor command to send to the SRV-1 Blackfin robot. + /// + /// Controlling SRV-1 motors with this method is only available + /// after at least one direct motor command is sent, which is done using or + /// methods. + /// + public void ControlMotors( MotorCommand command ) + { + Send( new byte[] { (byte) command } ); + } + + /// + /// Set video quality. + /// + /// + /// Video quality to set, [1, 8]. + /// + /// The method sets video quality, which is specified in [1, 8] range - 1 is + /// the highest quality level, 8 is the lowest quality level. + /// + /// Setting higher quality level and resolution + /// may increase delays for other requests sent to SRV-1. So if + /// robot is used not only for video, but also for controlling servos/motors, and higher + /// response level is required, then do not set very high quality and resolution. + /// + /// + /// + /// Invalid quality level was specified. + /// + public void SetQuality( int quality ) + { + if ( ( quality < 1 ) || ( quality > 8 ) ) + throw new ArgumentOutOfRangeException( "Invalid quality level was specified." ); + + Send( new byte[] { (byte) 'q', (byte) ( quality + (byte) '0' ) } ); + } + + /// + /// Set video resolution. + /// + /// + /// Video resolution to set. + /// + /// + /// Setting higher quality level and resolution + /// may increase delays for other requests sent to SRV-1. So if + /// robot is used not only for video, but also for controlling servos/motors, and higher + /// response level is required, then do not set very high quality and resolution. + /// + /// + /// + /// Invalid resolution was specified. + /// + public void SetResolution( VideoResolution resolution ) + { + if ( !Enum.IsDefined( typeof( VideoResolution ), resolution ) ) + { + throw new ArgumentException( "Invalid resolution was specified." ); + } + + Send( new byte[] { (byte) resolution } ); + } + + /// + /// Flip video capture or not (for use with upside-down camera). + /// + /// + /// Specifies if video should be flipped (), + /// or not (). + /// + public void FlipVideo( bool isFlipped ) + { + Send( new byte[] { (byte) ( ( isFlipped ) ? 'y' : 'Y' ) } ); + } + + /// + /// Ping ultrasonic ranging modules. + /// + /// + /// Returns array of ranges (distances) obtained from ultrasonic sensors. The ranges + /// are measured in inches. + /// + /// The method sends 'p' SRV-1 command (see SRV-1 + /// Control Protocol), which gets values from ultrasonic ranging modules attached to + /// pins 27, 28, 29, 30 with trigger on pin 18. Supports Maxbotics EZ0 and EZ1 ultrasonic modules. + /// + /// + /// Not connected to SRV-1. Connect to SRV-1 before using + /// this method. + /// Connection lost or communicaton failure. Try to reconnect. + /// Failed parsing response from SRV-1. + /// + public float[] UltrasonicPing( ) + { + byte[] response = new byte[100]; + + int read = SendAndReceive( new byte[] { (byte) 'p' }, response ); + string str = System.Text.ASCIIEncoding.ASCII.GetString( response, 0, read ); + + str = str.Replace( "##ping ", "" ); + str = str.Trim( ); + + // split string into separate values + string[] strs = str.Split( ' ' ); + + try + { + float[] distance = new float[4]; + + for ( int i = 0; i < 4; i++ ) + { + distance[i] = (float) int.Parse( strs[i] ) / 100f; + } + + return distance; + } + catch + { + throw new ApplicationException( "Failed parsing response from SRV-1." ); + } + } + + /// + /// Read byte from I2C device. + /// + /// + /// I2C device ID (7 bit notation). + /// I2C device register to read. + /// + /// Returns byte read from the specified register of the specified I2C device. + /// + /// The IC2 device ID should be specified in 7 bit notation. This means that low bit of the ID + /// is not used for specifying read/write mode as in 8 bit notation. For example, if I2C device IDs are 0x44 for reading + /// and 0x45 for writing in 8 bit notation, then it equals to 0x22 device ID in 7 bit notation. + /// + /// + /// Not connected to SRV-1. Connect to SRV-1 before using + /// this method. + /// Connection lost or communicaton failure. Try to reconnect. + /// Failed parsing response from SRV-1. + /// + public byte I2CReadByte( byte deviceID, byte register ) + { + byte[] response = new byte[100]; + + int read = SendAndReceive( new byte[] { (byte) 'i', (byte) 'r', deviceID, register }, response ); + string str = System.Text.ASCIIEncoding.ASCII.GetString( response, 0, read ); + + try + { + str = str.Trim( ); + // split string into separate values + string[] strs = str.Split( ' ' ); + + return byte.Parse( strs[1] ); + } + catch + { + throw new ApplicationException( "Failed parsing response from SRV-1." ); + } + } + + /// + /// Read word from I2C device. + /// + /// + /// I2C device ID (7 bit notation). + /// I2C device register to read. + /// + /// Returns word read from the specified register of the specified I2C device. + /// + /// The IC2 device ID should be specified in 7 bit notation. This means that low bit of the ID + /// is not used for specifying read/write mode as in 8 bit notation. For example, if I2C device IDs are 0x44 for reading + /// and 0x45 for writing in 8 bit notation, then it equals to 0x22 device ID in 7 bit notation. + /// + /// + /// Not connected to SRV-1. Connect to SRV-1 before using + /// this method. + /// Connection lost or communicaton failure. Try to reconnect. + /// Failed parsing response from SRV-1. + /// + public ushort I2CReadWord( byte deviceID, byte register ) + { + byte[] response = new byte[100]; + + int read = SendAndReceive( new byte[] { (byte) 'i', (byte) 'R', deviceID, register }, response ); + string str = System.Text.ASCIIEncoding.ASCII.GetString( response, 0, read ); + + try + { + str = str.Trim( ); + // split string into separate values + string[] strs = str.Split( ' ' ); + + return ushort.Parse( strs[1] ); + } + catch + { + throw new ApplicationException( "Failed parsing response from SRV-1." ); + } + } + + /// + /// Write byte to I2C device. + /// + /// + /// I2C device ID (7 bit notation). + /// I2C device register to write to. + /// Byte to write to the specified register of the specified device. + /// + /// The IC2 device ID should be specified in 7 bit notation. This means that low bit of the ID + /// is not used for specifying read/write mode as in 8 bit notation. For example, if I2C device IDs are 0x44 for reading + /// and 0x45 for writing in 8 bit notation, then it equals to 0x22 device ID in 7 bit notation. + /// + /// + /// Not connected to SRV-1. Connect to SRV-1 before using + /// this method. + /// Connection lost or communicaton failure. Try to reconnect. + /// + public void I2CWriteByte( byte deviceID, byte register, byte byteToWrite ) + { + byte[] response = new byte[100]; + + // use SendAndReceive() to make sure the command was executed successfully + int read = SendAndReceive( new byte[] { (byte) 'i', (byte) 'W', deviceID, register, byteToWrite }, response ); + } + + /// + /// Write two bytes to I2C device. + /// + /// + /// I2C device ID (7 bit notation). + /// I2C device register to write to. + /// First byte to write to the specified register of the specified device. + /// Second byte to write to the specified register of the specified device. + /// + /// The IC2 device ID should be specified in 7 bit notation. This means that low bit of the ID + /// is not used for specifying read/write mode as in 8 bit notation. For example, if I2C device IDs are 0x44 for reading + /// and 0x45 for writing in 8 bit notation, then it equals to 0x22 device ID in 7 bit notation. + /// + /// + /// Not connected to SRV-1. Connect to SRV-1 before using + /// this method. + /// Connection lost or communicaton failure. Try to reconnect. + /// + public void I2CWriteWord( byte deviceID, byte register, byte firstByteToWrite, byte secondByteToWrite ) + { + byte[] response = new byte[100]; + + // use SendAndReceive() to make sure the command was executed successfully + int read = SendAndReceive( new byte[] { (byte) 'i', (byte) 'W', deviceID, register, + firstByteToWrite, secondByteToWrite }, response ); + } + + // portion size to read at once + private const int readSize = 1024; + + // Communication thread + private void CommunicationThread( ) + { + bool lastRequestFailed = false; + + while ( !stopEvent.WaitOne( 0, false ) ) + { + // wait for any request + requestIsAvailable.WaitOne( ); + + while ( !stopEvent.WaitOne( 0, false ) ) + { + // get next communication request from queue + CommunicationRequest cr = null; + + lock ( communicationQueue ) + { + if ( communicationQueue.Count == 0 ) + break; + cr = communicationQueue.Dequeue( ); + } + + try + { + // try to reconnect if we had communication issues on the last request + if ( lastRequestFailed ) + { + Reconnect( ); + lastRequestFailed = false; + } + + if ( cr.Request[0] != (byte) 'I' ) + { + // System.Diagnostics.Debug.WriteLine( ">> " + + // System.Text.ASCIIEncoding.ASCII.GetString( cr.Request ) ); + } + + // send request + socket.Send( cr.Request ); + + // read response + if ( cr.ResponseBuffer != null ) + { + int bytesToRead = Math.Min( readSize, cr.ResponseBuffer.Length ); + + // receive first portion + cr.BytesRead = socket.Receive( cr.ResponseBuffer, 0, bytesToRead, SocketFlags.None ); + + // check if response contains image + if ( ( cr.BytesRead > 10 ) && + ( cr.ResponseBuffer[0] == (byte) '#' ) && + ( cr.ResponseBuffer[1] == (byte) '#' ) && + ( cr.ResponseBuffer[2] == (byte) 'I' ) && + ( cr.ResponseBuffer[3] == (byte) 'M' ) && + ( cr.ResponseBuffer[4] == (byte) 'J' ) ) + { + // extract image size + int imageSize = System.BitConverter.ToInt32( cr.ResponseBuffer, 6 ); + + bytesToRead = imageSize + 10 - cr.BytesRead; + + if ( bytesToRead > cr.ResponseBuffer.Length - cr.BytesRead ) + { + // response buffer is too small + throw new IndexOutOfRangeException( ); + } + + // read the rest + while ( !stopEvent.WaitOne( 0, false ) ) + { + int read = socket.Receive( cr.ResponseBuffer, cr.BytesRead, + Math.Min( readSize, bytesToRead ), SocketFlags.None ); + + cr.BytesRead += read; + bytesToRead -= read; + + if ( bytesToRead == 0 ) + break; + } + } + else + { + // commenting check for new line presence, because not all replies + // which start with '##' have new line in the end. + // this SRV-1 text based protocol drives me crazy. + + /* + if ( ( cr.BytesRead >= 2 ) && + ( cr.ResponseBuffer[0] == (byte) '#' ) && + ( cr.ResponseBuffer[1] == (byte) '#' ) ) + { + int bytesChecked = 2; + + while ( cr.BytesRead != cr.ResponseBuffer.Length ) + { + // ensure we got end of line for variable length replies + bool endLineWasFound = false; + + for ( int n = cr.BytesRead - 1; bytesChecked < n; bytesChecked++ ) + { + if ( ( ( cr.ResponseBuffer[bytesChecked] == '\n' ) && + ( cr.ResponseBuffer[bytesChecked + 1] == '\r' ) ) || + ( ( cr.ResponseBuffer[bytesChecked] == '\r' ) && + ( cr.ResponseBuffer[bytesChecked + 1] == '\n' ) ) ) + { + endLineWasFound = true; + break; + } + } + + if ( ( endLineWasFound ) || stopEvent.WaitOne( 0, false ) ) + break; + + // read more + bytesToRead = Math.Min( readSize, cr.ResponseBuffer.Length - cr.BytesRead ); + + cr.BytesRead += socket.Receive( cr.ResponseBuffer, cr.BytesRead, + bytesToRead, SocketFlags.None ); + } + } + */ + } + + // check if there is still something to read + // because of small buffer given by user + if ( socket.Available != 0 ) + { + DiscardIncomingData( socket, stopEvent ); + } + + + // System.Diagnostics.Debug.WriteLine( "<< (" + cr.BytesRead + ") " + + // System.Text.ASCIIEncoding.ASCII.GetString( cr.ResponseBuffer, 0, Math.Min( 5, cr.BytesRead ) ) ); + } + else + { + // read reply and throw it away, since nobody wants it + DiscardIncomingData( socket, stopEvent ); + } + } + + catch ( IndexOutOfRangeException ) + { + cr.BytesRead = -2; // too small buffer + } + catch + { + if ( lastRequestFailed ) + { + // wait a bit if we have 2 consequent failures + Thread.Sleep( 500 ); + } + + lastRequestFailed = true; + cr.BytesRead = -1; // communication failure + } + finally + { + // signal about available response to the waiting caller + if ( ( stopEvent != null ) && ( !stopEvent.WaitOne( 0, false ) ) && ( cr.ResponseBuffer != null ) ) + { + lastRequestWithReply = cr; + replyIsAvailable.Set( ); + } + } + } + } + } + + private void DiscardIncomingData( Socket socket, ManualResetEvent stopEvent ) + { + byte[] buffer = new byte[100]; + + while ( !stopEvent.WaitOne( 0, false ) ) + { + int read = socket.Receive( buffer, 0, 100, SocketFlags.None ); + + if ( socket.Available == 0 ) + { + // System.Diagnostics.Debug.WriteLine( "<< (" + read + ") " + + // System.Text.ASCIIEncoding.ASCII.GetString( buffer, 0, Math.Min( 100, read ) ) ); + + break; + } + } + } + } +} diff --git a/Sources/Robotics.Surveyor/SRV1Camera.cs b/Sources/Robotics.Surveyor/SRV1Camera.cs new file mode 100644 index 00000000..1c70738b --- /dev/null +++ b/Sources/Robotics.Surveyor/SRV1Camera.cs @@ -0,0 +1,450 @@ +// AForge Surveyor Robotics Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +namespace AForge.Robotics.Surveyor +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.IO; + using System.Net; + using System.Net.Sockets; + using System.Threading; + using AForge.Video; + + /// + /// Provides access to video stream from Surveyor SRV-1 Blackfin camera. + /// + /// + /// The class allows to continuously receive video frames from + /// Surveyor SRV-1 Blackfin camera. It creates a background thread and periodically requests + /// new video frames from SRV-1 robot/camera, which are provided to user through + /// event. The video frame rate can be configured using + /// property, which sets time interval between frames. + /// + /// In order to get instance of this class, use + /// or methods. + /// + /// Sample usage: + /// + /// // get SRV-1 camera + /// SRV1Camera camera = srv.GetCamera( ); + /// // in the case you work with Surveyor SVS board + /// // the next line can be use + /// // SRV1Camera camera = svs.GetCamera( SVS.Camera.Left ); + /// + /// // set NewFrame event handler + /// camera.NewFrame += new NewFrameEventHandler( video_NewFrame ); + /// // start the video source + /// camera.Start( ); + /// // ... + /// + /// private void video_NewFrame( object sender, NewFrameEventArgs eventArgs ) + /// { + /// // get new frame + /// Bitmap bitmap = eventArgs.Frame; + /// // process the frame + /// } + /// + /// + /// + public class SRV1Camera : IVideoSource + { + private SRV1 communicator; + + // received frames count + private int framesReceived; + // recieved bytes count + private long bytesReceived; + // frame interval in milliseconds + private int frameInterval = 0; + + private Thread thread = null; + private ManualResetEvent stopEvent = null; + + // buffer size used to download JPEG image + private const int bufferSize = 768 * 1024; + + /// + /// New frame event. + /// + /// + /// Notifies clients about new available frame from video source. + /// + /// Since video source may have multiple clients, each client is responsible for + /// making a copy (cloning) of the passed video frame, because the video source disposes its + /// own original copy after notifying of clients. + /// + /// + public event NewFrameEventHandler NewFrame; + + /// + /// Video source error event. + /// + /// + /// This event is used to notify clients about any type of errors occurred in + /// video source object, for example internal exceptions. + /// + public event VideoSourceErrorEventHandler VideoSourceError; + + /// + /// Video playing finished event. + /// + /// + /// This event is used to notify clients that the video playing has finished. + /// + /// + public event PlayingFinishedEventHandler PlayingFinished; + + /// + /// Frame interval. + /// + /// + /// The property sets the interval in milliseconds betwen frames. If the property is + /// set to 100, then the desired frame rate will be 10 frames per second. + /// + /// Default value is set to 0 - get new frames as fast as possible. + /// + /// + public int FrameInterval + { + get { return frameInterval; } + set { frameInterval = value; } + } + + /// + /// Video source string. + /// + /// + /// + /// The property keeps connection string, which was used to connect to SRV-1 Blackfin camera. + /// + /// + public string Source + { + get { return ( ( communicator != null ) && ( communicator.EndPoint != null ) ) ? + communicator.EndPoint.ToString( ) : "unknown" ; } + } + + /// + /// Received frames count. + /// + /// + /// Number of frames the video source provided from the moment of the last + /// access to the property. + /// + /// + public int FramesReceived + { + get + { + int frames = framesReceived; + framesReceived = 0; + return frames; + } + } + + /// + /// Received bytes count. + /// + /// + /// Number of bytes the video source provided from the moment of the last + /// access to the property. + /// + /// + public long BytesReceived + { + get + { + long bytes = bytesReceived; + bytesReceived = 0; + return bytes; + } + } + + /// + /// State of the video source. + /// + /// + /// Current state of video source object - running or not. + /// + public bool IsRunning + { + get + { + if ( thread != null ) + { + // check thread status + if ( thread.Join( 0 ) == false ) + return true; + + // the thread is not running, free resources + Free( ); + } + return false; + } + } + + // The class may be instantiate using SVS or SRV1 objects only + internal SRV1Camera( SRV1 communicator ) + { + this.communicator = communicator; + } + + /// + /// Start video source. + /// + /// + /// Starts video source and return execution to caller. Video source + /// object creates background thread and notifies about new frames with the + /// help of event. + /// + /// Not connected to SRV-1. Connection to SRV-1 + /// was closed using method. New + /// instance must be obtained using or + /// methods. + /// + /// + public void Start( ) + { + if ( thread == null ) + { + if ( ( communicator == null ) || ( communicator.EndPoint == null ) ) + { + throw new NotConnectedException( "Not connected to SRV-1." ); + } + + framesReceived = 0; + bytesReceived = 0; + + // create events + stopEvent = new ManualResetEvent( false ); + + // create and start new thread + thread = new Thread( new ThreadStart( WorkerThread ) ); + thread.Name = Source; // mainly for debugging + thread.Start( ); + } + } + + /// + /// Signal video source to stop its work. + /// + /// + /// Signals video source to stop its background thread, stop to + /// provide new frames and free resources. + /// + public void SignalToStop( ) + { + // stop thread + if ( thread != null ) + { + // signal to stop + stopEvent.Set( ); + } + } + + /// + /// Wait for video source has stopped. + /// + /// + /// Waits for video source stopping after it was signalled to stop using + /// method. + /// + public void WaitForStop( ) + { + if ( thread != null ) + { + // wait for thread stop + thread.Join( ); + + Free( ); + } + } + + /// + /// Stop video source. + /// + /// + /// Stops video source aborting its thread. + /// + /// Since the method aborts background thread, its usage is highly not preferred + /// and should be done only if there are no other options. The correct way of stopping camera + /// is signaling it to stop and then + /// waiting for background thread's completion. + /// + /// + public void Stop( ) + { + if ( this.IsRunning ) + { + thread.Abort( ); + WaitForStop( ); + } + } + + /// + /// Free resource. + /// + /// + private void Free( ) + { + thread = null; + + // release events + stopEvent.Close( ); + stopEvent = null; + } + + /// + /// Set video quality. + /// + /// + /// Video quality to set, [1, 8]. + /// + /// The method sets video quality, which is specified in [1, 8] range - 1 is + /// the highest quality level, 8 is the lowest quality level. + /// + /// Setting higher quality level and resolution + /// may increase delays for other requests processed by class. So if + /// robot is used not only for video, but also for controlling servos/motors, and higher + /// response level is required, then do not set very high quality and resolution. + /// + /// + /// + /// Invalid quality level was specified. + /// + public void SetQuality( int quality ) + { + communicator.SetQuality( quality ); + } + + /// + /// Set video resolution. + /// + /// + /// Video resolution to set. + /// + /// + /// Setting higher quality level and resolution + /// may increase delays for other requests processed by class. So if + /// robot is used not only for video, but also for controlling servos/motors, and higher + /// response level is required, then do not set very high quality and resolution. + /// + /// + /// + public void SetResolution( SRV1.VideoResolution resolution ) + { + communicator.SetResolution( resolution ); + } + + /// + /// Flip video capture or not (for use with upside-down camera). + /// + /// + /// Specifies if video should be flipped (), + /// or not (). + /// + public void FlipVideo( bool isFlipped ) + { + communicator.FlipVideo( isFlipped ); + } + + /// + /// Worker thread. + /// + /// + private void WorkerThread( ) + { + System.Diagnostics.Stopwatch stopWatch = new System.Diagnostics.Stopwatch( ); + + // buffer to read stream into + byte[] buffer = new byte[bufferSize]; + + while ( !stopEvent.WaitOne( 0, false ) ) + { + try + { + stopWatch.Reset( ); + stopWatch.Start( ); + + int bytesRead = communicator.SendAndReceive( new byte[] { (byte) 'I' }, buffer ); + + bytesReceived += bytesRead; + + if ( bytesRead > 10 ) + { + // check for image reply signature + if ( + ( buffer[0] == (byte) '#' ) && + ( buffer[1] == (byte) '#' ) && + ( buffer[2] == (byte) 'I' ) && + ( buffer[3] == (byte) 'M' ) && + ( buffer[4] == (byte) 'J' ) ) + { + // extract image size + int imageSize = System.BitConverter.ToInt32( buffer, 6 ); + + if ( !stopEvent.WaitOne( 0, false ) ) + { + try + { + // decode image from memory stream + Bitmap bitmap = (Bitmap) Bitmap.FromStream( new MemoryStream( buffer, 10, imageSize ) ); + framesReceived++; + + // let subscribers know if there are any + if ( NewFrame != null ) + { + NewFrame( this, new NewFrameEventArgs( bitmap ) ); + } + + bitmap.Dispose( ); + } + catch + { + } + + // wait for a while ? + if ( frameInterval > 0 ) + { + // get download duration + stopWatch.Stop( ); + + // miliseconds to sleep + int msec = frameInterval - (int) stopWatch.ElapsedMilliseconds; + + while ( ( msec > 0 ) && ( stopEvent.WaitOne( 0, false ) == false ) ) + { + // sleeping ... + Thread.Sleep( ( msec < 100 ) ? msec : 100 ); + msec -= 100; + } + } + } + } + } + } + catch + { + if ( VideoSourceError != null ) + { + VideoSourceError( this, new VideoSourceErrorEventArgs( "Failed receiving video frame from SRV-1." ) ); + } + } + } + + stopWatch.Stop( ); + + if ( PlayingFinished != null ) + { + PlayingFinished( this, ReasonToFinishPlaying.StoppedByUser ); + } + } + } +} diff --git a/Sources/Robotics.Surveyor/SVS.cs b/Sources/Robotics.Surveyor/SVS.cs new file mode 100644 index 00000000..37b3a682 --- /dev/null +++ b/Sources/Robotics.Surveyor/SVS.cs @@ -0,0 +1,780 @@ +// AForge Surveyor Robotics Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2007-2009 +// andrew.kirillov@aforgenet.com +// + +namespace AForge.Robotics.Surveyor +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.IO; + using System.Net; + using System.Net.Sockets; + + /// + /// Manipulation of Surveyor SVS (Stereo Vision System) board. + /// + /// + /// + /// The class allows to manipulate with Surveyor SVS + /// board (stereo vision system) - getting video from both cameras, manipulating motors and servos, + /// reading ultrasonic modules' values, sending direct commands, etc. + /// + /// + /// + /// This class essentially creates to instances of class to communicate + /// with both SVS's cameras (ports 10001 and 10002 are used) and directs all calls through them. + /// + /// Sample usage: + /// + /// SVS svs = new SVS( ); + /// // connect to SVS board + /// svs.Connect( "169.254.0.10" ); + /// // stop motors + /// svs.StopMotors( ); + /// // set video resolution and quality + /// svs.SetQuality( 7 ); + /// svs.SetResolution( SRV1.VideoResolution.Small ); + /// // get version string + /// string version = svs.GetVersion( ); + /// + /// // get left camera + /// SRV1Camera camera = svs.GetCamera( SVS.Camera.Left ); + /// + /// // set NewFrame event handler + /// camera.NewFrame += new NewFrameEventHandler( video_NewFrame ); + /// // start the video source + /// camera.Start( ); + /// // ... + /// + /// private void video_NewFrame( object sender, NewFrameEventArgs eventArgs ) + /// { + /// // get new frame + /// Bitmap bitmap = eventArgs.Frame; + /// // process the frame + /// } + /// + /// + /// + /// + /// + /// + public partial class SVS + { + /// + /// Enumeration of SVS's Blackfin cameras. + /// + /// + /// Since SVS board consists of two SRV-1 Blackfin cameras, the enumeration + /// is used by different methods to specify which one to access. + /// + public enum Camera + { + /// + /// Left camera (default port number is 10000). + /// + Left, + /// + /// Right camera (default port number is 10001). + /// + Right + } + + /// + /// Enumeration of SVS's servos' banks. + /// + public enum ServosBank + { + /// + /// First bank of the first () SRV-1 Blackfin camera, + /// timers 2 and 3 (marked as TMR2-1 and TMR3-1 on the SVS board). Note: these + /// timers on SVS board are supposed for controlling motors by default + /// (see and ), so use 0th + /// servos bank only when you've done proper configuration changes on SVS side. + /// + Bank0, + + /// + /// Second bank of the first () SRV-1 Blackfin camera, + /// timers 6 and 7 (marked as TMR6-1 and TMR7-1 on the SVS board). + /// + Bank1, + + /// + /// First bank of the second () SRV-1 Blackfin camera, + /// timers 2 and 3 (marked as TMR2-2 and TMR3-2 on the SVS board). + /// + Bank2, + + /// + /// Second bank of the second () SRV-1 Blackfin camera, + /// timers 6 and 7 (marked as TMR6-2 and TMR7-2 on the SVS board). + /// + Bank3 + } + + // host address if connection was established + private string hostAddress; + // communicators used for communication with SVS + private SRV1 communicator1 = null; + private SRV1 communicator2 = null; + // SVS cameras + private SRV1Camera leftCamera; + private SRV1Camera rightCamera; + + private string sync1 = "1"; + private string sync2 = "1"; + + /// + /// SVS's host address. + /// + /// + /// The property keeps SVS's IP address if the class is connected + /// to SVS board, otherwise it equals to . + /// + public string HostAddress + { + get { return hostAddress; } + } + + /// + /// Connection state. + /// + /// + /// The property equals to if the class is connected + /// to SVS board, otherwise it equals to . + /// + /// The property is not updated by the class, when connection was lost or + /// communication failure was detected (which results into + /// exception). The property only shows status of method. + /// + /// + public bool IsConnected + { + get { return ( hostAddress != null ); } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public SVS( ) + { + } + + /// + /// Connect to SVS board. + /// + /// + /// IP address of SVS board. + /// + /// The method establishes connection to SVS board. If it succeeds then + /// other methods can be used to manipulate the board. + /// + /// The method calls before making any connection + /// attempts to make sure previous connection is closed. + /// + /// + /// Failed connecting to SVS. + /// + public void Connect( string ipAddress ) + { + // close previous connection + Disconnect( ); + + lock ( sync1 ) + { + lock ( sync2 ) + { + try + { + communicator1 = new SRV1( ); + communicator2 = new SRV1( ); + + communicator1.Connect( ipAddress, 10001 ); + communicator2.Connect( ipAddress, 10002 ); + + hostAddress = ipAddress; + } + catch + { + Disconnect( ); + + throw new ConnectionFailedException( "Failed connecting to SVS." ); + } + } + } + } + + /// + /// Disconnect from SVS device. + /// + /// + /// The method disconnects from SVS board making all other methods + /// unavailable (except method). In the case if user + /// obtained instance of left or right camera using + /// method, the video will be stopped automatically (and those + /// instances should be discarded). + /// + /// + public void Disconnect( ) + { + lock ( sync1 ) + { + lock ( sync2 ) + { + hostAddress = null; + + // signal cameras to stop + if ( leftCamera != null ) + { + leftCamera.SignalToStop( ); + } + if ( rightCamera != null ) + { + rightCamera.SignalToStop( ); + } + + // wait until cameras stop or abort them + if ( leftCamera != null ) + { + // wait for aroung 250 ms + for ( int i = 0; ( i < 5 ) && ( leftCamera.IsRunning ); i++ ) + { + System.Threading.Thread.Sleep( 50 ); + } + // abort camera if it can not be stopped + if ( leftCamera.IsRunning ) + { + leftCamera.Stop( ); + } + leftCamera = null; + } + if ( rightCamera != null ) + { + // wait for aroung 250 ms + for ( int i = 0; ( i < 5 ) && ( rightCamera.IsRunning ); i++ ) + { + System.Threading.Thread.Sleep( 50 ); + } + // abort camera if it can not be stopped + if ( rightCamera.IsRunning ) + { + rightCamera.Stop( ); + } + rightCamera = null; + } + + if ( communicator1 != null ) + { + communicator1.Disconnect( ); + communicator1 = null; + } + if ( communicator2 != null ) + { + communicator2.Disconnect( ); + communicator2 = null; + } + } + } + } + + /// + /// Get SVS's camera. + /// + /// + /// SVS camera to get. + /// + /// Returns object, which is connected to SVS's Blackfin camera. + /// Use method to start the camera and start receiving video + /// frames from it. + /// + /// The method provides an instance of , which can be used + /// for receiving continuous video frames from the SVS board. + /// In the case if only one image is required, the method can be used. + /// + /// Sample usage: + /// + /// // get SRV-1 camera + /// SRV1Camera camera = svs.GetCamera( SVS.Camera.Left ); + /// // set NewFrame event handler + /// camera.NewFrame += new NewFrameEventHandler( video_NewFrame ); + /// // start the video source + /// camera.Start( ); + /// // ... + /// + /// private void video_NewFrame( object sender, NewFrameEventArgs eventArgs ) + /// { + /// // get new frame + /// Bitmap bitmap = eventArgs.Frame; + /// // process the frame + /// } + /// + /// + /// + /// Not connected to SVS. Connect to SVS board before using + /// this method. + /// + public SRV1Camera GetCamera( Camera camera ) + { + if ( camera == Camera.Left ) + { + if ( leftCamera == null ) + { + leftCamera = SafeGetCommunicator1( ).GetCamera( ); + } + return leftCamera; + } + + if ( rightCamera == null ) + { + rightCamera = SafeGetCommunicator2( ).GetCamera( ); + } + return rightCamera; + } + + /// + /// Get single image from the SVS board. + /// + /// + /// Camera to get image from. + /// + /// Returns image received from the specified camera of the SVS board or + /// if failed decoding provided response. + /// + /// The method provides single video frame retrieved from the specified SVS's + /// camera. However in many cases it is required to receive video frames one after another, so + /// the method is more preferred for continuous video frames. + /// + /// Not connected to SRV-1. Connect to SRV-1 before using + /// this method. + /// Connection lost or communicaton failure. Try to reconnect. + /// + public Bitmap GetImage( Camera camera ) + { + return ( camera == Camera.Left ) ? + SafeGetCommunicator1( ).GetImage( ) : SafeGetCommunicator2( ).GetImage( ); + } + + /// + /// Get direct access to one of the SVS's SRV-1 Blackfin cameras. + /// + /// + /// SRV-1 Blackfin to get direct access to. + /// + /// Returns object connected to the requested + /// SRV-1 Blackfin camera. + /// + /// The method provides direct access to one of the SVS's SRV-1 + /// Blackfin cameras, so it could be possible to send some direct commands to it + /// using and methods. + /// + /// Not connected to SVS. Connect to SVS board before using + /// this method. + /// + public SRV1 GetDirectAccessToSRV1( Camera camera ) + { + return ( camera == Camera.Left ) ? SafeGetCommunicator1( ) : SafeGetCommunicator2( ); + } + + /// + /// Get SVS board's firmware version string. + /// + /// + /// Returns SVS's version string. + /// + /// Not connected to SVS. Connect to SVS board before using + /// this method. + /// Connection lost or communicaton failure. Try to reconnect. + /// + public string GetVersion( ) + { + string str = SafeGetCommunicator1( ).GetVersion( ); + + str = str.Replace( "##Version -", "" ); + str = str.Trim( ); + + // remove "(stereo master)" or (stereo slave)" string + int specificInfoPos = str.IndexOf( " (stereo " ); + if ( specificInfoPos != -1 ) + { + str = str.Substring( 0, specificInfoPos ); + } + + return str; + } + + /// + /// Get SVS's board's running time. + /// + /// + /// Returns SVS boards running time in milliseconds. + /// + /// Not connected to SVS. Connect to SVS board before using + /// this method. + /// Connection lost or communicaton failure. Try to reconnect. + /// Failed parsing response from SVS. + /// + public long GetRunningTime( ) + { + return SafeGetCommunicator1( ).GetRunningTime( ); + } + + /// + /// Run motors connected to the SVS board. + /// + /// + /// Left motor's speed, [-127, 127]. + /// Right motor's speed, [-127, 127]. + /// Time duration to run motors measured in number + /// of 10 milliseconds (0 for infinity), [0, 255]. + /// + /// The method sets specified speed to both motors connected to + /// the SVS board. The maximum absolute speed equals to 127, but the sign specifies + /// direction of motor's rotation (forward or backward). + /// + /// + /// Not connected to SVS. Connect to SVS board before using + /// this method. + /// + public void RunMotors( int leftSpeed, int rightSpeed, int duration ) + { + SafeGetCommunicator1( ).RunMotors( leftSpeed, rightSpeed, duration ); + } + + /// + /// Stop both motors. + /// + /// + /// The method stops both motors connected to the SVS board by calling + /// method specifying 0 for motors' speed. + /// + /// Not connected to SVS. Connect to SVS board before using + /// this method. + /// + public void StopMotors( ) + { + RunMotors( 0, 0, 0 ); + } + + /// + /// Enables fail safe mode - setting motors' speed after timeout. + /// + /// + /// Left motor's speed, [-127, 127]. + /// Right motor's speed, [-127, 127]. + /// + /// In the case if fail safe mode is enabled and no commands are received + /// by SVS robot withing 2 seconds, motors' speed will be set to the specified values. The command + /// is very useful to instruct robot to stop if no other commands were sent + /// within 2 last seconds (probably lost connection). + /// + /// Not connected to SVS. Connect to SVS board before using + /// this method. + /// + public void EnableFailsafeMode( int leftSpeed, int rightSpeed ) + { + SafeGetCommunicator1( ).EnableFailsafeMode( leftSpeed, rightSpeed ); + } + + /// + /// Disable fail safe mode. + /// + /// + /// The method disable fail safe mode, which was set using + /// method. + /// + /// Not connected to SVS. Connect to SVS board before using + /// this method. + /// + public void DisableFailsafeMode( ) + { + SafeGetCommunicator1( ).DisableFailsafeMode( ); + } + + /// + /// Control motors connected to SVS board using predefined commands. + /// + /// + /// Motor command to send to the SVS board. + /// + /// Controlling SVS motors with this method is only available + /// after at least one direct motor command is sent, which is done using or + /// methods. + /// + /// Not connected to SVS. Connect to SVS board before using + /// this method. + /// + public void ControlMotors( SRV1.MotorCommand command ) + { + SafeGetCommunicator1( ).ControlMotors( command ); + } + + /// + /// Direct servos control of the SVS board. + /// + /// + /// SVS's servo bank to control. + /// Left servo setting, [0, 100]. + /// Right servo setting, [0, 100]. + /// + /// The method performs servos control of the SVS board. + /// For and + /// banks it calls method for the corresponding + /// SRV-1 Blackfin camera. In the case of or , + /// the method sends 'Sab' SRV-1 command (see SRV-1 + /// Control Protocol) to the appropriate SRV-1 Blackfin camera. + /// + /// + /// Not connected to SVS. Connect to SVS board before using + /// this method. + /// + public void ControlServos( ServosBank servosBank, int leftServo, int rightServo ) + { + switch ( servosBank ) + { + case ServosBank.Bank0: + // check limts + if ( leftServo > 100 ) + leftServo = 100; + if ( rightServo > 100 ) + rightServo = 100; + + SafeGetCommunicator1( ).Send( new byte[] { (byte) 'S', (byte) leftServo, (byte) rightServo } ); + break; + + case ServosBank.Bank1: + SafeGetCommunicator1( ).ControlServos( leftServo, rightServo ); + break; + + case ServosBank.Bank2: + // check limts + if ( leftServo > 100 ) + leftServo = 100; + if ( rightServo > 100 ) + rightServo = 100; + + SafeGetCommunicator2( ).Send( new byte[] { (byte) 'S', (byte) leftServo, (byte) rightServo } ); + break; + + case ServosBank.Bank3: + SafeGetCommunicator2( ).ControlServos( leftServo, rightServo ); + break; + } + } + + /// + /// Ping ultrasonic ranging modules. + /// + /// + /// SRV-1 Blackfin camera to check ultrasonic modules values. + /// + /// Returns array of ranges (distances) obtained from ultrasonic sensors. The ranges + /// are measured in inches. + /// + /// The method calls for the specified + /// SRV-1 Blackfin camera. + /// + /// Not connected to SVS. Connect to SVS board before using + /// this method. + /// Connection lost or communicaton failure. Try to reconnect. + /// Failed parsing response from SVS. + /// + public float[] UltrasonicPing( Camera camera ) + { + return GetDirectAccessToSRV1( camera ).UltrasonicPing( ); + } + + /// + /// Read byte from I2C device. + /// + /// + /// SRV-1 Blackfin camera to access I2C device on. + /// I2C device ID (7 bit notation). + /// I2C device register to read. + /// + /// Returns byte read from the specified register of the specified I2C device. + /// + /// The IC2 device ID should be specified in 7 bit notation. This means that low bit of the ID + /// is not used for specifying read/write mode as in 8 bit notation. For example, if I2C device IDs are 0x44 for reading + /// and 0x45 for writing in 8 bit notation, then it equals to 0x22 device ID in 7 bit notation. + /// + /// + /// Not connected to SVS. Connect to SVS board before using + /// this method. + /// Connection lost or communicaton failure. Try to reconnect. + /// Failed parsing response from SRV-1. + /// + public byte I2CReadByte( Camera camera, byte deviceID, byte register ) + { + return GetDirectAccessToSRV1( camera ).I2CReadByte( deviceID, register ); + } + + /// + /// Read word from I2C device. + /// + /// + /// SRV-1 Blackfin camera to access I2C device on. + /// I2C device ID (7 bit notation). + /// I2C device register to read. + /// + /// Returns word read from the specified register of the specified I2C device. + /// + /// The IC2 device ID should be specified in 7 bit notation. This means that low bit of the ID + /// is not used for specifying read/write mode as in 8 bit notation. For example, if I2C device IDs are 0x44 for reading + /// and 0x45 for writing in 8 bit notation, then it equals to 0x22 device ID in 7 bit notation. + /// + /// + /// Not connected to SVS. Connect to SVS board before using + /// this method. + /// Connection lost or communicaton failure. Try to reconnect. + /// Failed parsing response from SRV-1. + /// + public ushort I2CReadWord( Camera camera, byte deviceID, byte register ) + { + return GetDirectAccessToSRV1( camera ).I2CReadWord( deviceID, register ); + } + + /// + /// Write byte to I2C device. + /// + /// + /// SRV-1 Blackfin camera to access I2C device on. + /// I2C device ID (7 bit notation). + /// I2C device register to write to. + /// Byte to write to the specified register of the specified device. + /// + /// The IC2 device ID should be specified in 7 bit notation. This means that low bit of the ID + /// is not used for specifying read/write mode as in 8 bit notation. For example, if I2C device IDs are 0x44 for reading + /// and 0x45 for writing in 8 bit notation, then it equals to 0x22 device ID in 7 bit notation. + /// + /// + /// Not connected to SVS. Connect to SVS board before using + /// this method. + /// Connection lost or communicaton failure. Try to reconnect. + /// + public void I2CWriteByte( Camera camera, byte deviceID, byte register, byte byteToWrite ) + { + GetDirectAccessToSRV1( camera ).I2CWriteByte( deviceID, register, byteToWrite ); + } + + /// + /// Write two bytes to I2C device. + /// + /// + /// SRV-1 Blackfin camera to access I2C device on. + /// I2C device ID (7 bit notation). + /// I2C device register to write to. + /// First byte to write to the specified register of the specified device. + /// Second byte to write to the specified register of the specified device. + /// + /// The IC2 device ID should be specified in 7 bit notation. This means that low bit of the ID + /// is not used for specifying read/write mode as in 8 bit notation. For example, if I2C device IDs are 0x44 for reading + /// and 0x45 for writing in 8 bit notation, then it equals to 0x22 device ID in 7 bit notation. + /// + /// + /// Not connected to SVS. Connect to SVS board before using + /// this method. + /// Connection lost or communicaton failure. Try to reconnect. + /// + public void I2CWriteWord( Camera camera, byte deviceID, byte register, byte firstByteToWrite, byte secondByteToWrite ) + { + GetDirectAccessToSRV1( camera ).I2CWriteWord( deviceID, register, firstByteToWrite, secondByteToWrite ); + } + + /// + /// Set video quality for both cameras. + /// + /// + /// Video quality to set, [1, 8]. + /// + /// The method sets video quality for both SVS cameras, which is specified in [1, 8] range - 1 is + /// the highest quality level, 8 is the lowest quality level. + /// + /// Setting higher quality level and resolution + /// may increase delays for other requests sent to SVS. So if + /// robot is used not only for video, but also for controlling servos/motors, and higher + /// response level is required, then do not set very high quality and resolution. + /// + /// + /// + /// Not connected to SVS. Connect to SVS board before using + /// this method. + /// Invalid quality level was specified. + /// + public void SetQuality( int quality ) + { + SafeGetCommunicator1( ).SetQuality( quality ); + SafeGetCommunicator2( ).SetQuality( quality ); + } + + /// + /// Set video resolution for both cameras. + /// + /// + /// Video resolution to set. + /// + /// + /// Setting higher quality level and resolution + /// may increase delays for other requests sent to SVS. So if + /// robot is used not only for video, but also for controlling servos/motors, and higher + /// response level is required, then do not set very high quality and resolution. + /// + /// + /// + /// Not connected to SVS. Connect to SVS board before using + /// this method. + /// + public void SetResolution( SRV1.VideoResolution resolution ) + { + SafeGetCommunicator1( ).SetResolution( resolution ); + SafeGetCommunicator2( ).SetResolution( resolution ); + } + + /// + /// Flip video capture for both cameras or not (for use with upside-down camera). + /// + /// + /// Specifies if video should be flipped (), + /// or not (). + /// + /// Not connected to SVS. Connect to SVS board before using + /// this method. + /// + public void FlipVideo( bool isFlipped ) + { + SafeGetCommunicator1( ).FlipVideo( isFlipped ); + SafeGetCommunicator2( ).FlipVideo( isFlipped ); + } + + // Get first communicator safely + private SRV1 SafeGetCommunicator1( ) + { + lock ( sync1 ) + { + if ( communicator1 == null ) + { + throw new NotConnectedException( "Not connected to SVS." ); + } + return communicator1; + } + } + + // Get second communicator safely + private SRV1 SafeGetCommunicator2( ) + { + lock ( sync2 ) + { + if ( communicator2 == null ) + { + throw new NotConnectedException( "Not connected to SVS." ); + } + return communicator2; + } + } + } +} diff --git a/Sources/Robotics.TeRK/AForge.Robotics.TeRK.snk b/Sources/Robotics.TeRK/AForge.Robotics.TeRK.snk new file mode 100644 index 00000000..041b2cfb Binary files /dev/null and b/Sources/Robotics.TeRK/AForge.Robotics.TeRK.snk differ diff --git a/Sources/Robotics.TeRK/Exceptions.cs b/Sources/Robotics.TeRK/Exceptions.cs new file mode 100644 index 00000000..bceeb911 --- /dev/null +++ b/Sources/Robotics.TeRK/Exceptions.cs @@ -0,0 +1,32 @@ +// AForge TeRK Robotics Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2007-2009 +// andrew.kirillov@aforgenet.com +// + +namespace AForge.Robotics.TeRK +{ + using System; + + /// + /// Service access failed exception. + /// + /// + /// The excetion is thrown in the case if the requested service can not + /// be accessed or does not exist on the Qwerk's board. + /// + /// + public class ServiceAccessFailedException : Exception + { + /// + /// Initializes a new instance of the class. + /// + /// + /// Exception's message. + /// + public ServiceAccessFailedException( string message ) : + base( message ) { } + } +} diff --git a/Sources/Robotics.TeRK/Images/qwerk_board.jpg b/Sources/Robotics.TeRK/Images/qwerk_board.jpg new file mode 100644 index 00000000..69105134 Binary files /dev/null and b/Sources/Robotics.TeRK/Images/qwerk_board.jpg differ diff --git a/Sources/Robotics.TeRK/Properties/AssemblyInfo.cs b/Sources/Robotics.TeRK/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..0936757c --- /dev/null +++ b/Sources/Robotics.TeRK/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle( "AForge.Robotics.TeRK" )] +[assembly: AssemblyDescription( "" )] +[assembly: AssemblyConfiguration( "" )] +[assembly: AssemblyCompany( "AForge" )] +[assembly: AssemblyProduct( "AForge.NET" )] +[assembly: AssemblyCopyright( "AForge © 2012" )] +[assembly: AssemblyTrademark( "" )] +[assembly: AssemblyCulture( "" )] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible( false )] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid( "925ee14e-bea2-4312-923f-bf11d2ea76b6" )] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion( "2.2.5.0" )] +[assembly: AssemblyFileVersion( "2.2.5.0" )] diff --git a/Sources/Robotics.TeRK/Qwerk.AnalogIn.cs b/Sources/Robotics.TeRK/Qwerk.AnalogIn.cs new file mode 100644 index 00000000..9994d5b2 --- /dev/null +++ b/Sources/Robotics.TeRK/Qwerk.AnalogIn.cs @@ -0,0 +1,141 @@ +// AForge TeRK Robotics Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2007-2009 +// andrew.kirillov@aforgenet.com +// + +using TeRKIceLib = TeRK; + +namespace AForge.Robotics.TeRK +{ + using System; + using AForge; + + public partial class Qwerk + { + /// + /// Provides access to Qwerk's analog inputs. + /// + /// + /// The class allows to retrieve state of Qwerk's analog inputs. The total + /// number of available analog inputs equals to . + /// + /// The class is deprecated. + /// + /// Sample usage: + /// + /// // get Qwerk's analog inputs service + /// Qwerk.AnalogIn analogIns = qwerk.GetAnalogInService( ); + /// // get state of 0th input + /// short input0 = analogIns.GetInput( 0 ); + /// // get state of all inputs + /// short[] inputs = analogIns.GetInputs( ); + /// + /// + /// + [Obsolete( "The class is deprecated." )] + public class AnalogIn + { + // Qwerk's analog in controller + private TeRKIceLib.AnalogInControllerPrx analogInController = null; + + /// + /// Number of available analog inputs, 8. + /// + public const int Count = 8; + + /// + /// Initializes a new instance of the class. + /// + /// + /// Reference to object, which is connected to Qwerk board. + /// + /// The passed reference to object is not connected to + /// Qwerk board. + /// Failed connecting to the requested service. + /// Failed accessing to the requested service. + /// + public AnalogIn( Qwerk qwerk ) + { + string hostAddress = qwerk.HostAddress; + + // check if connection was established + if ( hostAddress != null ) + { + try + { + Ice.ObjectPrx obj = qwerk.iceCommunicator.stringToProxy( "'::TeRK::AnalogInController':tcp -h " + hostAddress + " -p 10101" ); + obj = obj.ice_timeout( Qwerk.TimeOut ); + analogInController = TeRKIceLib.AnalogInControllerPrxHelper.checkedCast( obj ); + } + catch ( Ice.ObjectNotExistException ) + { + // the object does not exist on the host + throw new ServiceAccessFailedException( "Failed accessing to the requested service." ); + } + catch + { + throw new ConnectionFailedException( "Failed connecting to the requested service." ); + } + + if ( analogInController == null ) + { + throw new ServiceAccessFailedException( "Failed accessing to the requested cervice." ); + } + } + else + { + throw new NotConnectedException( "Qwerk object is not connected to a board." ); + } + } + + /// + /// Get state of the specified analog input. + /// + /// + /// Analog input to get state of, [0, ). + /// + /// Returns state of the requested input measured in milli volts. + /// + /// In the case if multiply inputs should be queried, it is much + /// preferred to use method, which retrieves state of all + /// inputs at once. + /// + /// Invalid input is specified. + /// Connestion to Qwerk is lost. + /// + public short GetInput( int input ) + { + if ( ( input < 0 ) || ( input >= Count ) ) + { + throw new ArgumentOutOfRangeException( "Invalid input is specified." ); + } + + return GetInputs( )[input]; + } + + /// + /// Get state of all available analog inputs. + /// + /// + /// Returns state of all analog inputs measured in milli volts. + /// + /// Connestion to Qwerk is lost. + /// + public short[] GetInputs( ) + { + try + { + TeRKIceLib.AnalogInState state = analogInController.getState( ); + return state.analogInValues; + } + catch + { + throw new ConnectionLostException( "Connection is lost." ); + } + } + } + } +} diff --git a/Sources/Robotics.TeRK/Qwerk.DigitalIn.cs b/Sources/Robotics.TeRK/Qwerk.DigitalIn.cs new file mode 100644 index 00000000..3e1e559d --- /dev/null +++ b/Sources/Robotics.TeRK/Qwerk.DigitalIn.cs @@ -0,0 +1,141 @@ +// AForge TeRK Robotics Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2007-2009 +// andrew.kirillov@aforgenet.com +// + +using TeRKIceLib = TeRK; + +namespace AForge.Robotics.TeRK +{ + using System; + using AForge; + + public partial class Qwerk + { + /// + /// Provides access to Qwerk's digital inputs. + /// + /// + /// The class allows to retrieve state of Qwerk's digital inputs. The total + /// number of available digital inputs equals to . + /// + /// The class is deprecated. + /// + /// Sample usage: + /// + /// // get Qwerk's digital inputs service + /// Qwerk.DigitalIn digitalIns = qwerk.GetDigitalInService( ); + /// // get state of 0th input + /// bool input0 = digitalIns.GetInput( 0 ); + /// // get state of all inputs + /// bool[] inputs = digitalIns.GetInputs( ); + /// + /// + /// + [Obsolete( "The class is deprecated." )] + public class DigitalIn + { + // Qwerk's digital in controller + private TeRKIceLib.DigitalInControllerPrx digitalInController = null; + + /// + /// Number of available digital inputs, 4. + /// + public const int Count = 4; + + /// + /// Initializes a new instance of the class. + /// + /// + /// Reference to object, which is connected to Qwerk board. + /// + /// The passed reference to object is not connected to + /// Qwerk board. + /// Failed connecting to the requested service. + /// Failed accessing to the requested service. + /// + public DigitalIn( Qwerk qwerk ) + { + string hostAddress = qwerk.HostAddress; + + // check if connection was established + if ( hostAddress != null ) + { + try + { + Ice.ObjectPrx obj = qwerk.iceCommunicator.stringToProxy( "'::TeRK::DigitalInController':tcp -h " + hostAddress + " -p 10101" ); + obj = obj.ice_timeout( Qwerk.TimeOut ); + digitalInController = TeRKIceLib.DigitalInControllerPrxHelper.checkedCast( obj ); + } + catch ( Ice.ObjectNotExistException ) + { + // the object does not exist on the host + throw new ServiceAccessFailedException( "Failed accessing to the requested service." ); + } + catch + { + throw new ConnectionFailedException( "Failed connecting to the requested service." ); + } + + if ( digitalInController == null ) + { + throw new ServiceAccessFailedException( "Failed accessing to the requested cervice." ); + } + } + else + { + throw new NotConnectedException( "Qwerk object is not connected to a board." ); + } + } + + /// + /// Get state of the specified digital input. + /// + /// + /// Digital input to get state of, [0, ). + /// + /// Returns state of the requested input as boolean values - active/inactive. + /// + /// In the case if multiply inputs should be queried, it is much + /// preferred to use method, which retrieves state of all + /// inputs at once. + /// + /// Invalid input is specified. + /// Connestion to Qwerk is lost. + /// + public bool GetInput( int input ) + { + if ( ( input < 0 ) || ( input >= Count ) ) + { + throw new ArgumentOutOfRangeException( "Invalid input is specified." ); + } + + return GetInputs( )[input]; + } + + /// + /// Get state of all available digital inputs. + /// + /// + /// Returns state of all digital inputs as boolean values - active/inactive. + /// + /// Connestion to Qwerk is lost. + /// + public bool[] GetInputs( ) + { + try + { + TeRKIceLib.DigitalInState state = digitalInController.getState( ); + return state.digitalInStates; + } + catch + { + throw new ConnectionLostException( "Connection is lost." ); + } + } + } + } +} diff --git a/Sources/Robotics.TeRK/Qwerk.DigitalOut.cs b/Sources/Robotics.TeRK/Qwerk.DigitalOut.cs new file mode 100644 index 00000000..1710ca6d --- /dev/null +++ b/Sources/Robotics.TeRK/Qwerk.DigitalOut.cs @@ -0,0 +1,196 @@ +// AForge TeRK Robotics Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2007-2009 +// andrew.kirillov@aforgenet.com +// + +using TeRKIceLib = TeRK; + +namespace AForge.Robotics.TeRK +{ + using System; + using AForge; + + public partial class Qwerk + { + /// + /// Provides access to Qwerk's digital outputs. + /// + /// + /// The class allows to manipulate Qwerk's digital outputs. The total number + /// of available digital outputs equals to . + /// + /// The class is deprecated. + /// + /// Sample usage: + /// + /// // get Qwerk's digital outs service + /// Qwerk.DigitalOut digitalOuts = qwerk.GetDigitalOutService( ); + /// // disbale all outputs + /// digitalOuts.SetOutputs( false ); + /// // enable zero output + /// digitalOuts.SetOutput( 0, true ); + /// // enable 2nd and 3rd outputs + /// bool[] mask = new bool[4] { false, false, true, true }; + /// bool[] states = new bool[4] { false, false, true, true }; + /// digitalOuts.SetOutputs( mask, states ); + /// + /// + /// + [Obsolete( "The class is deprecated." )] + public class DigitalOut + { + // Qwerk's digital out controller + private TeRKIceLib.DigitalOutControllerPrx digitalOutController = null; + + /// + /// Number of available digital outputs, 4. + /// + public const int Count = 4; + + /// + /// Initializes a new instance of the class. + /// + /// + /// Reference to object, which is connected to Qwerk board. + /// + /// The passed reference to object is not connected to + /// Qwerk board. + /// Failed connecting to the requested service. + /// Failed accessing to the requested service. + /// + public DigitalOut( Qwerk qwerk ) + { + string hostAddress = qwerk.HostAddress; + + // check if connection was established + if ( hostAddress != null ) + { + try + { + Ice.ObjectPrx obj = qwerk.iceCommunicator.stringToProxy( "'::TeRK::DigitalOutController':tcp -h " + hostAddress + " -p 10101" ); + obj = obj.ice_timeout( Qwerk.TimeOut ); + digitalOutController = TeRKIceLib.DigitalOutControllerPrxHelper.checkedCast( obj ); + } + catch ( Ice.ObjectNotExistException ) + { + // the object does not exist on the host + throw new ServiceAccessFailedException( "Failed accessing to the requested service." ); + } + catch + { + throw new ConnectionFailedException( "Failed connecting to the requested service." ); + } + + if ( digitalOutController == null ) + { + throw new ServiceAccessFailedException( "Failed accessing to the requested cervice." ); + } + } + else + { + throw new NotConnectedException( "Qwerk object is not connected to a board." ); + } + } + + /// + /// Set state of specified digital output. + /// + /// + /// Digital output to state for, [0, ). + /// Digital output's state to set. + /// + /// The method sets state of one of Qwerk's digital outputs, which index is + /// specified. The output is either enabled (state is set to or + /// disabled otherwise. + /// + /// Invalid output is specified. + /// No connection to Qwerk or its service. + /// Connestion to Qwerk is lost. + /// + public void SetOutput( int output, bool state ) + { + if ( ( output < 0 ) || ( output >= Count ) ) + { + throw new ArgumentOutOfRangeException( "Invalid output is specified." ); + } + + bool[] outputsMask = new bool[Count]; + bool[] states = new bool[Count]; + + outputsMask[output] = true; + states[output] = state; + + SetOutputs( outputsMask, states ); + } + + /// + /// Set state of all digital outputs. + /// + /// + /// State, which will be set to all digital outputs. + /// + /// The method sets the same state to all Qwerk's digital outputs. + /// + /// No connection to Qwerk or its service. + /// Connestion to Qwerk is lost. + /// + public void SetOutputs( bool state ) + { + bool[] outputsMask = new bool[Count]; + bool[] states = new bool[Count]; + + for ( int i = 0; i < Count; i++ ) + { + outputsMask[i] = true; + states[i] = state; + } + + SetOutputs( outputsMask, states ); + } + + /// + /// Set state of all digital outputs. + /// + /// + /// Mask array specifying which output's state need to be set. + /// Array of outputs' states. + /// + /// The and arrays specify + /// which Qwerk's digital output's state should be updated. If value of the + /// array is set to , then corresponding output's state is changed to the state, + /// which is specified in array. + /// + /// + /// Incorrect length of outputs' masks or states array. + /// No connection to Qwerk or its service. + /// Connestion to Qwerk is lost. + /// + public void SetOutputs( bool[] outpusMask, bool[] states ) + { + if ( ( outpusMask.Length != Count ) || ( states.Length != Count ) ) + { + throw new ArgumentException( "Incorrect length of output' masks or states array." ); + } + + // check controller + if ( digitalOutController == null ) + { + throw new NotConnectedException( "Qwerk's service is not connected." ); + } + + try + { + // execute leds' command + digitalOutController.execute( new TeRKIceLib.DigitalOutCommand( outpusMask, states ) ); + } + catch + { + throw new ConnectionLostException( "Connection is lost." ); + } + } + } + } +} diff --git a/Sources/Robotics.TeRK/Qwerk.Leds.cs b/Sources/Robotics.TeRK/Qwerk.Leds.cs new file mode 100644 index 00000000..295bf30b --- /dev/null +++ b/Sources/Robotics.TeRK/Qwerk.Leds.cs @@ -0,0 +1,229 @@ +// AForge TeRK Robotics Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2007-2009 +// andrew.kirillov@aforgenet.com +// + +using TeRKIceLib = TeRK; + +namespace AForge.Robotics.TeRK +{ + using System; + using AForge; + + public partial class Qwerk + { + /// + /// Enumeration of Qwerk's LEDs' states. + /// + public enum LedState + { + /// + /// LED is off. + /// + Off, + /// + /// LED is on. + /// + On, + /// + /// LES is on and blinking. + /// + Blinking + } + + /// + /// Provides access to Qwerk's on-board LEDs. + /// + /// + /// The class allows to manipulate Qwerk's on-boar LED's. The total number + /// of available on-board LEDs equals to . + /// + /// The class is deprecated. + /// + /// Sample usage: + /// + /// // get Qwerk's LEDs service + /// Qwerk.Leds leds = qwerk.GetLedsService( ); + /// // turn off all LEDs + /// leds.SetLedsState( Qwerk.LedState.Off ); + /// // set zero LED to blinking state + /// leds.SetLedState( 0, Qwerk.LedState.Blinking ); + /// // turn on 4th and 5th LEDs + /// bool[] mask = new bool[10] { + /// false, false, false, false, true, + /// true, false, false, false, false }; + /// Qwerk.LedState[] states = new Qwerk.LedState[10] { + /// Qwerk.LedState.Off, Qwerk.LedState.Off, Qwerk.LedState.Off, + /// Qwerk.LedState.Off, Qwerk.LedState.On, Qwerk.LedState.On, + /// Qwerk.LedState.Off, Qwerk.LedState.Off, Qwerk.LedState.Off, + /// Qwerk.LedState.Off }; + /// leds.SetLedsState( mask, states ); + /// + /// + /// + [Obsolete( "The class is deprecated." )] + public class Leds + { + // Qwerk's LED controller + private TeRKIceLib.LEDControllerPrx ledController = null; + // mapping array to map LedState enumeration to TeRKIceLib.LEDMode enumeration + private TeRKIceLib.LEDMode[] modesMapping = new TeRKIceLib.LEDMode[] + { TeRKIceLib.LEDMode.LEDOff, TeRKIceLib.LEDMode.LEDOn, TeRKIceLib.LEDMode.LEDBlinking }; + + /// + /// Number of available on-board LEDs, 10. + /// + public const int Count = 10; + + /// + /// Initializes a new instance of the class. + /// + /// + /// Reference to object, which is connected to Qwerk board. + /// + /// The passed reference to object is not connected to + /// Qwerk board. + /// Failed connecting to the requested service. + /// Failed accessing to the requested service. + /// + public Leds( Qwerk qwerk ) + { + string hostAddress = qwerk.HostAddress; + + // check if connection was established + if ( hostAddress != null ) + { + try + { + Ice.ObjectPrx obj = qwerk.iceCommunicator.stringToProxy( "'::TeRK::LEDController':tcp -h " + hostAddress + " -p 10101" ); + obj = obj.ice_timeout( Qwerk.TimeOut ); + ledController = TeRKIceLib.LEDControllerPrxHelper.checkedCast( obj ); + } + catch ( Ice.ObjectNotExistException ) + { + // the object does not exist on the host + throw new ServiceAccessFailedException( "Failed accessing to the requested service." ); + } + catch + { + throw new ConnectionFailedException( "Failed connecting to the requested service." ); + } + + if ( ledController == null ) + { + throw new ServiceAccessFailedException( "Failed accessing to the requested cervice." ); + } + } + else + { + throw new NotConnectedException( "Qwerk object is not connected to a board." ); + } + } + + /// + /// Set state of specified LED. + /// + /// + /// LED to set state for, [0, ). + /// LED's state to set. + /// + /// The method sets state of one of Qwerk's LEDs, which index is specified. + /// + /// Invalid LED is specified. + /// No connection to Qwerk or its service. + /// Connestion to Qwerk is lost. + /// + public void SetLedState( int led, LedState state ) + { + if ( ( led < 0 ) || ( led >= Count ) ) + { + throw new ArgumentOutOfRangeException( "Invalid LED is specified." ); + } + + bool[] ledsMask = new bool[Count]; + LedState[] states = new LedState[Count]; + + ledsMask[led] = true; + states[led] = state; + + SetLedsState( ledsMask, states ); + } + + /// + /// Set state of all LEDs. + /// + /// + /// State, which will be set to all LEDs. + /// + /// The method sets the same state to all Qwerk's on-board LEDs. + /// + /// No connection to Qwerk or its service. + /// Connestion to Qwerk is lost. + /// + public void SetLedsState( LedState state ) + { + bool[] ledsMask = new bool[Count]; + LedState[] states = new LedState[Count]; + + for ( int i = 0; i < Count; i++ ) + { + ledsMask[i] = true; + states[i] = state; + } + + SetLedsState( ledsMask, states ); + } + + /// + /// Set state of all LEDs. + /// + /// + /// Mask array specifying which LED's state need to be set. + /// Array of LEDs' states. + /// + /// The and arrays specify + /// which Qwerk's on-board LED's state should be updated. If value of the + /// array is set to , then corresponding LED's state is changed to the state, + /// which is specified in array. + /// + /// + /// Incorrect length of LEDs' masks or states array. + /// No connection to Qwerk or its service. + /// Connestion to Qwerk is lost. + /// + public void SetLedsState( bool[] ledsMask, LedState[] states ) + { + if ( ( ledsMask.Length != Count ) || ( states.Length != Count ) ) + { + throw new ArgumentException( "Incorrect length of leds' masks or states array." ); + } + + TeRKIceLib.LEDMode[] modes = new TeRKIceLib.LEDMode[Count]; + + for ( int i = 0; i < Count; i++ ) + { + modes[i] = modesMapping[(int) states[i]]; + } + + // check controller + if ( ledController == null ) + { + throw new NotConnectedException( "Qwerk's service is not connected." ); + } + + try + { + // execute leds' command + ledController.execute( new TeRKIceLib.LEDCommand( ledsMask, modes ) ); + } + catch + { + throw new ConnectionLostException( "Connection is lost." ); + } + } + } + } +} diff --git a/Sources/Robotics.TeRK/Qwerk.Motors.cs b/Sources/Robotics.TeRK/Qwerk.Motors.cs new file mode 100644 index 00000000..067494f0 --- /dev/null +++ b/Sources/Robotics.TeRK/Qwerk.Motors.cs @@ -0,0 +1,213 @@ +// AForge TeRK Robotics Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2007-2009 +// andrew.kirillov@aforgenet.com +// + +using TeRKIceLib = TeRK; + +namespace AForge.Robotics.TeRK +{ + using System; + using AForge; + + public partial class Qwerk + { + /// + /// Provides access to Qwerk's motors' controllers. + /// + /// + /// The class allows to manipulate Qwerk's motors. The total number + /// of available motors equals to . + /// + /// The class is deprecated. + /// + /// Sample usage: + /// + /// // get Qwerk's motors service + /// Qwerk.Motors motors = qwerk.GetMotorsService( ); + /// // stop all motors + /// motors.StopMotors( ); + /// // run first motor + /// motors.SetMotorVelocity( 0, 10000 ); + /// + /// + /// + [Obsolete( "The class is deprecated." )] + public class Motors + { + // Qwerk's motor controller + private TeRKIceLib.MotorControllerPrx motorController = null; + + /// + /// Number of available motors' controllers, 4. + /// + public const int Count = 4; + + // default motors' acceleration + private const int DefaultAcceleration = 16000; + + /// + /// Initializes a new instance of the class. + /// + /// + /// Reference to object, which is connected to Qwerk board. + /// + /// The passed reference to object is not connected to + /// Qwerk board. + /// Failed connecting to the requested service. + /// Failed accessing to the requested service. + /// + public Motors( Qwerk qwerk ) + { + string hostAddress = qwerk.HostAddress; + + // check if connection was established + if ( hostAddress != null ) + { + try + { + Ice.ObjectPrx obj = qwerk.iceCommunicator.stringToProxy( "'::TeRK::MotorController':tcp -h " + hostAddress + " -p 10101" ); + obj = obj.ice_timeout( Qwerk.TimeOut ); + motorController = TeRKIceLib.MotorControllerPrxHelper.checkedCast( obj ); + } + catch ( Ice.ObjectNotExistException ) + { + // the object does not exist on the host + throw new ServiceAccessFailedException( "Failed accessing to the requested service." ); + } + catch + { + throw new ConnectionFailedException( "Failed connecting to the requested service." ); + } + + if ( motorController == null ) + { + throw new ServiceAccessFailedException( "Failed accessing to the requested cervice." ); + } + } + else + { + throw new NotConnectedException( "Qwerk object is not connected to a board." ); + } + } + + /// + /// Stop specified motor. + /// + /// + /// Motor to stop, [0, ). + /// + /// Invalid motor is specified. + /// No connection to Qwerk or its service. + /// Connestion to Qwerk is lost. + /// + public void StopMotor( int motor ) + { + if ( ( motor < 0 ) || ( motor >= Count ) ) + { + throw new ArgumentOutOfRangeException( "Invalid motor is specified." ); + } + + // prepare command + TeRKIceLib.MotorCommand command = CreateCommand( ); + + command.motorMask[motor] = true; + command.motorModes[motor] = TeRKIceLib.MotorMode.MotorOff; + + ExecuteCommand( command ); + } + + /// + /// Stop all motors. + /// + /// + /// No connection to Qwerk or its service. + /// Connestion to Qwerk is lost. + /// + public void StopMotors( ) + { + // prepare command + TeRKIceLib.MotorCommand command = CreateCommand( ); + + for ( int i = 0; i < Count; i++ ) + { + command.motorMask[i] = true; + command.motorModes[i] = TeRKIceLib.MotorMode.MotorOff; + } + + ExecuteCommand( command ); + } + + + /// + /// Set velocity of specified motor. + /// + /// + /// Motor to set velocity for, [0, ). + /// Velocity to set. + /// + /// The method sets specified motor's velocity, which is measured in + /// ticks per second. "Ticks" is a made-up term, which does not depend on specific motor, + /// but is an unknown in distance and rotation (see Qwerk documentation for details). + /// + /// Invalid motor is specified. + /// No connection to Qwerk or its service. + /// Connestion to Qwerk is lost. + /// + public void SetMotorVelocity( int motor, int velocity ) + { + if ( ( motor < 0 ) || ( motor >= Count ) ) + { + throw new ArgumentOutOfRangeException( "Invalid motor is specified." ); + } + + // prepare command + TeRKIceLib.MotorCommand command = CreateCommand( ); + + command.motorMask[motor] = true; + command.motorModes[motor] = TeRKIceLib.MotorMode.MotorSpeedControl; + command.motorVelocities[motor] = velocity; + command.motorAccelerations[motor] = DefaultAcceleration; + + ExecuteCommand( command ); + } + + // Create motors' command + private TeRKIceLib.MotorCommand CreateCommand( ) + { + TeRKIceLib.MotorCommand command = new TeRKIceLib.MotorCommand( ); + + command.motorMask = new bool[Count]; + command.motorModes = new TeRKIceLib.MotorMode[Count]; + command.motorPositions = new int[Count]; + command.motorVelocities = new int[Count]; + command.motorAccelerations = new int[Count]; + + return command; + } + + // Execute motors' command + private void ExecuteCommand( TeRKIceLib.MotorCommand command ) + { + // check controller + if ( motorController == null ) + { + throw new NotConnectedException( "Qwerk's service is not connected." ); + } + + try + { + // execute motors' command + motorController.execute( command ); + } + catch + { + throw new ConnectionLostException( "Connection is lost." ); + } + } + } + } +} diff --git a/Sources/Robotics.TeRK/Qwerk.Servos.cs b/Sources/Robotics.TeRK/Qwerk.Servos.cs new file mode 100644 index 00000000..02ed71f0 --- /dev/null +++ b/Sources/Robotics.TeRK/Qwerk.Servos.cs @@ -0,0 +1,487 @@ +// AForge TeRK Robotics Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2007-2009 +// andrew.kirillov@aforgenet.com +// + +using TeRKIceLib = TeRK; + +namespace AForge.Robotics.TeRK +{ + using System; + using AForge; + + public partial class Qwerk + { + /// + /// Provides access to Qwerk's servos' controllers. + /// + /// + /// The class allows to manipulate Qwerk's servos. The total number + /// of available servos equals to . + /// + /// Each servo has logical and physical positions, which may or may not be equal. + /// Both positions may vary in the [0, 255] range. Physical and logical positions are + /// equal, when servo's physical moving bound (range) is set to [0, 255] (see ). + /// In this case setting servo's logical position with method results + /// in servo's physical moving in the [0, 255] range. However, of physical bound is set + /// to [10, 20], for example, then physically the servo will move only in this range. But logical + /// position is still may be set in [0, 255] range, which is mapped to physical range. + /// + /// The class is deprecated. + /// + /// Sample usage: + /// + /// // get Qwerk's servos service + /// Qwerk.Servos servos = qwerk.GetServosService( ); + /// // stop all servos + /// servos.StopServos( ); + /// // set 0th servo's bounds + /// servos.SetBound( 0, new IntRange( 10, 100 ) ); + /// // set servo's position + /// servos.SetPosition( 0, 50 ); + /// // ... + /// + /// // get 0th servo's position + /// int currentPosition = servos.GetPosition( 0 ); + /// + /// + /// + [Obsolete( "The class is deprecated." )] + public class Servos + { + // Qwerk's servo controller + private TeRKIceLib.ServoControllerPrx servoController = null; + + /// + /// Number of available servos' controllers, 16. + /// + public const int Count = 16; + + // default servos' speed + private const int DefaultSpeed = 1000; + + /// + /// Initializes a new instance of the class. + /// + /// + /// Reference to object, which is connected to Qwerk board. + /// + /// The passed reference to object is not connected to + /// Qwerk board. + /// Failed connecting to the requested service. + /// Failed accessing to the requested service. + /// + public Servos( Qwerk qwerk ) + { + string hostAddress = qwerk.HostAddress; + + // check if connection was established + if ( hostAddress != null ) + { + try + { + Ice.ObjectPrx obj = qwerk.iceCommunicator.stringToProxy( "'::TeRK::ServoController':tcp -h " + hostAddress + " -p 10101" ); + obj = obj.ice_timeout( Qwerk.TimeOut ); + servoController = TeRKIceLib.ServoControllerPrxHelper.checkedCast( obj ); + } + catch ( Ice.ObjectNotExistException ) + { + // the object does not exist on the host + throw new ServiceAccessFailedException( "Failed accessing to the requested service." ); + } + catch + { + throw new ConnectionFailedException( "Failed connecting to the requested service." ); + } + + if ( servoController == null ) + { + throw new ServiceAccessFailedException( "Failed accessing to the requested cervice." ); + } + } + else + { + throw new NotConnectedException( "Qwerk object is not connected to a board." ); + } + } + + /// + /// Stop specified servo. + /// + /// + /// Servo to stop, [0, ). + /// + /// Returns current position of the specified servo. + /// + /// Invalid servo is specified. + /// No connection to Qwerk or its service. + /// Connestion to Qwerk is lost. + /// + public int StopServo( int servo ) + { + if ( ( servo < 0 ) || ( servo >= Count ) ) + { + throw new ArgumentOutOfRangeException( "Invalid servo is specified." ); + } + + bool[] mask = new bool[Count]; + mask[servo] = true; + + return StopServos( mask )[servo]; + } + + /// + /// Stop all servos. + /// + /// + /// Returns array of current servos' positions. + /// + /// No connection to Qwerk or its service. + /// Connestion to Qwerk is lost. + /// + public int[] StopServos( ) + { + bool[] mask = new bool[Count]; + + for ( int i = 0; i < Count; i++ ) + { + mask[i] = true; + } + + return StopServos( mask ); + } + + /// + /// Stop specified servos. + /// + /// + /// Mask array specifying which servos need to stop. + /// + /// Returns array of current servos' positions. + /// + /// The array specifies + /// which Qwerk's servo need to be stopped. If value of the + /// array is set to , then corresponding servo is stopped. + /// + /// + /// Incorrect length of array. + /// No connection to Qwerk or its service. + /// Connestion to Qwerk is lost. + /// + public int[] StopServos( bool[] mask ) + { + if ( mask.Length != Count ) + { + throw new ArgumentException( "Incorrect length of mask array." ); + } + + // check controller + if ( servoController == null ) + { + throw new NotConnectedException( "Qwerk's service is not connected." ); + } + + try + { + TeRKIceLib.ServoCommand command = CreateCommand( ); + + for ( int i = 0; i < Count; i++ ) + { + command.servoMask[i] = mask[i]; + command.servoModes[i] = TeRKIceLib.ServoMode.ServoOff; + command.servoPositions[i] = 0; + command.servoSpeeds[i] = 0; + } + + // execute servos' command + TeRKIceLib.ServoState state = servoController.execute( command ); + return state.servoPositions; + } + catch + { + throw new ConnectionLostException( "Connection is lost." ); + } + } + + /// + /// Set position of a single servo. + /// + /// + /// Servo to set position for, [0, ). + /// Position to set for the specified servo, [0, 255]. + /// + /// Returns current position of the specified servo. + /// + /// The method sets position of single Qwerk's servo, which index is + /// specified. It is preferred to use for setting positions + /// of multiple servos, which does it at once. + /// + /// Invalid servo is specified. + /// No connection to Qwerk or its service. + /// Connestion to Qwerk is lost. + /// + public int SetPosition( int servo, int position ) + { + if ( ( servo < 0 ) || ( servo >= Count ) ) + { + throw new ArgumentOutOfRangeException( "Invalid servo is specified." ); + } + + bool[] mask = new bool[Count]; + int[] positions = new int[Count]; + + mask[servo] = true; + positions[servo] = position; + + return SetPositions( mask, positions )[servo]; + } + + /// + /// Set positions of specified servos. + /// + /// + /// Mask array specifying which servos need to be set. + /// Array of servos' positions to set. Each position is in [0, 255] range. + /// + /// Returns array of current servos' positions. + /// + /// The and arrays specify + /// which Qwerk's servo's state should be updated. If value of the + /// array is set to , then corresponding servo's state is changed to the state, + /// which is specified in array. + /// + /// + /// Incorrect length of or + /// array. + /// No connection to Qwerk or its service. + /// Connestion to Qwerk is lost. + /// + public int[] SetPositions( bool[] mask, int[] positions ) + { + if ( ( mask.Length != Count ) || ( positions.Length != Count ) ) + { + throw new ArgumentException( "Incorrect length of mask or positions array." ); + } + + // check controller + if ( servoController == null ) + { + throw new NotConnectedException( "Qwerk's service is not connected." ); + } + + try + { + TeRKIceLib.ServoCommand command = CreateCommand( ); + + for ( int i = 0; i < Count; i++ ) + { + command.servoMask[i] = mask[i]; + command.servoModes[i] = TeRKIceLib.ServoMode.ServoMotorPositionControl; + command.servoPositions[i] = positions[i]; + command.servoSpeeds[i] = DefaultSpeed; + } + + // execute servos' command + TeRKIceLib.ServoState state = servoController.execute( command ); + return state.servoPositions; + } + catch + { + throw new ConnectionLostException( "Connection is lost." ); + } + } + + /// + /// Get current position of a single servo. + /// + /// + /// Servo to get position for, [0, ). + /// + /// Returns current position of the specified servo. + /// + /// Invalid servo is specified. + /// No connection to Qwerk or its service. + /// Connestion to Qwerk is lost. + /// + public int GetPosition( int servo ) + { + if ( ( servo < 0 ) || ( servo >= Count ) ) + { + throw new ArgumentOutOfRangeException( "Invalid servo is specified." ); + } + + return GetPositions( )[servo]; + } + + /// + /// Get current positions of all servos. + /// + /// + /// Returns array of current servos' positions. + /// + /// No connection to Qwerk or its service. + /// Connestion to Qwerk is lost. + /// + public int[] GetPositions( ) + { + return SetPositions( new bool[Count], new int[Count] ); + } + + /// + /// Set bounds for the specified servo. + /// + /// + /// Servo to set bounds for, [0, ). + /// Bounds to set for the specified servo. + /// + /// The method sets servo's physical bounds in which it may move. + /// See documentation to for clarification. + /// + /// Invalid servo is specified. + /// No connection to Qwerk or its service. + /// Connestion to Qwerk is lost. + /// + public void SetBound( int servo, IntRange bound ) + { + if ( ( servo < 0 ) || ( servo >= Count ) ) + { + throw new ArgumentOutOfRangeException( "Invalid servo is specified." ); + } + + bool[] mask = new bool[Count]; + IntRange[] bounds = new IntRange[Count]; + + mask[servo] = true; + bounds[servo] = bound; + + SetBounds( mask, bounds ); + } + + /// + /// Set bounds for specified servos. + /// + /// + /// Mask array specifying which servos need to be set. + /// Array of servos' bounds. Each bound may be in [0, 255] range. + /// + /// The method sets servos' physical bounds in which they may move. + /// See documentation to for clarification. + /// + /// Incorrect length of , + /// or array. + /// No connection to Qwerk or its service. + /// Connestion to Qwerk is lost. + /// + public void SetBounds( bool[] mask, IntRange[] bounds ) + { + if ( ( mask.Length != Count ) || ( bounds.Length != Count ) ) + { + throw new ArgumentException( "Incorrect length of mask or positions array." ); + } + + // check controller + if ( servoController == null ) + { + throw new NotConnectedException( "Qwerk's service is not connected." ); + } + + try + { + TeRKIceLib.Bounds[] nativeBounds = new TeRKIceLib.Bounds[Count]; + + for ( int i = 0; i < Count; i++ ) + { + if ( mask[i] ) + { + nativeBounds[i].min = bounds[i].Min; + nativeBounds[i].max = bounds[i].Max; + } + } + + // set servos' bounds + servoController.setBounds( mask, nativeBounds ); + } + catch + { + throw new ConnectionLostException( "Connection is lost." ); + } + } + + /// + /// Get bounds for the specified servo. + /// + /// + /// Servo to get bounds for, [0, ). + /// + /// Returns configured bounds of the specified servo. + /// + /// Invalid servo is specified. + /// No connection to Qwerk or its service. + /// Connestion to Qwerk is lost. + /// + public IntRange GetBound( int servo ) + { + if ( ( servo < 0 ) || ( servo >= Count ) ) + { + throw new ArgumentOutOfRangeException( "Invalid servo is specified." ); + } + + return GetBounds( )[servo]; + } + + /// + /// Get bounds of all servos. + /// + /// + /// Returns array of configured servos' bounds. + /// + /// No connection to Qwerk or its service. + /// Connestion to Qwerk is lost. + /// + public IntRange[] GetBounds( ) + { + // check controller + if ( servoController == null ) + { + throw new NotConnectedException( "Qwerk's service is not connected." ); + } + + try + { + // get servos' bounds + TeRKIceLib.Bounds[] nativeBounds = servoController.getBounds( ); + + IntRange[] bounds = new IntRange[Count]; + + for ( int i = 0; i < Count; i++ ) + { + bounds[i] = new IntRange( nativeBounds[i].min, nativeBounds[i].max ); + } + + return bounds; + } + catch + { + throw new ConnectionLostException( "Connection is lost." ); + } + } + + + // Create servos' command + private TeRKIceLib.ServoCommand CreateCommand( ) + { + TeRKIceLib.ServoCommand command = new TeRKIceLib.ServoCommand( ); + + command.servoMask = new bool[Count]; + command.servoModes = new TeRKIceLib.ServoMode[Count]; + command.servoPositions = new int[Count]; + command.servoSpeeds = new int[Count]; + + return command; + } + } + } +} diff --git a/Sources/Robotics.TeRK/Qwerk.Video.cs b/Sources/Robotics.TeRK/Qwerk.Video.cs new file mode 100644 index 00000000..ab283f2a --- /dev/null +++ b/Sources/Robotics.TeRK/Qwerk.Video.cs @@ -0,0 +1,425 @@ +// AForge TeRK Robotics Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +using TeRKIceLib = TeRK; + +namespace AForge.Robotics.TeRK +{ + using System; + using System.Drawing; + using System.IO; + using System.Threading; + using AForge; + using AForge.Video; + + public partial class Qwerk + { + /// + /// Provides access to web camera connected to Qwerk. + /// + /// + /// The class allows to start Qwerk's camera and continuously receive + /// frames from it. The class creates background thread to poll Qwerk's camera and provides + /// them through event. The video frame rate can be configured + /// using property, which sets time interval between frames. + /// + /// The class is deprecated. + /// + /// Sample usage: + /// + /// // get Qwerk's video service + /// Qwerk.Video video = qwerk.GetVideoService( ); + /// // set NewFrame event handler + /// video.NewFrame += new NewFrameEventHandler( video_NewFrame ); + /// // start the video source + /// video.Start( ); + /// // ... + /// // signal to stop + /// video.SignalToStop( ); + /// // ... + /// + /// private void video_NewFrame( object sender, NewFrameEventArgs eventArgs ) + /// { + /// // get new frame + /// Bitmap bitmap = eventArgs.Frame; + /// // process the frame + /// } + /// + /// + /// + [Obsolete( "The class is deprecated." )] + public class Video : IVideoSource + { + // Qwerk's video streamer + private TeRKIceLib.VideoStreamerServerPrx videoStreamer = null; + // video source string (informational only to implment IVideoSource interface only) + private string source; + // received frames count + private int framesReceived; + // recieved byte count + private long bytesReceived; + // frame interval in milliseconds + private int frameInterval = 0; + + private Thread thread = null; + private ManualResetEvent stopEvent = null; + + /// + /// New frame event. + /// + /// + /// Notifies clients about new available frame from video source. + /// + /// Since video source may have multiple clients, each client is responsible for + /// making a copy (cloning) of the passed video frame, because the video source disposes its + /// own original copy after notifying of clients. + /// + /// + public event NewFrameEventHandler NewFrame; + + /// + /// Video source error event. + /// + /// + /// This event is used to notify clients about any type of errors occurred in + /// video source object, for example internal exceptions. + /// + public event VideoSourceErrorEventHandler VideoSourceError; + + /// + /// Video playing finished event. + /// + /// + /// This event is used to notify clients that the video playing has finished. + /// + /// + public event PlayingFinishedEventHandler PlayingFinished; + + /// + /// Frame interval. + /// + /// + /// The property sets the interval in milliseconds betwen frames. If the property is + /// set to 100, then the desired frame rate will be 10 frames per second. + /// + /// Default value is set to 0 - get new frames as fast as possible. + /// + /// + public int FrameInterval + { + get { return frameInterval; } + set { frameInterval = value; } + } + + /// + /// Video source string. + /// + /// + /// + /// The property keeps connection string, which is used to connect to TeRK's video + /// streaming service. + /// + /// + public string Source + { + get { return source; } + } + + /// + /// Received frames count. + /// + /// + /// Number of frames the video source provided from the moment of the last + /// access to the property. + /// + /// + public int FramesReceived + { + get + { + int frames = framesReceived; + framesReceived = 0; + return frames; + } + } + + /// + /// Received bytes count. + /// + /// + /// Number of bytes the video source provided from the moment of the last + /// access to the property. + /// + /// + public long BytesReceived + { + get + { + long bytes = bytesReceived; + bytesReceived = 0; + return bytes; + } + } + + /// + /// State of the video source. + /// + /// + /// Current state of video source object - running or not. + /// + public bool IsRunning + { + get + { + if ( thread != null ) + { + // check thread status + if ( thread.Join( 0 ) == false ) + return true; + + // the thread is not running, free resources + Free( ); + } + return false; + } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Reference to object, which is connected to Qwerk board. + /// + /// The passed reference to object is not connected to + /// Qwerk board. + /// Failed connecting to the requested service. + /// Failed accessing to the requested service. + /// + public Video( Qwerk qwerk ) + { + string hostAddress = qwerk.HostAddress; + + // check if connection was established + if ( hostAddress != null ) + { + try + { + // prepare video source string + source = "'::TeRK::VideoStreamerServer':tcp -h " + hostAddress + " -p 10101"; + + Ice.ObjectPrx obj = qwerk.iceCommunicator.stringToProxy( source ); + obj = obj.ice_timeout( Qwerk.TimeOut ); + videoStreamer = TeRKIceLib.VideoStreamerServerPrxHelper.checkedCast( obj ); + } + catch ( Ice.ObjectNotExistException ) + { + // the object does not exist on the host + throw new ServiceAccessFailedException( "Failed accessing to the requested service." ); + } + catch + { + throw new ConnectionFailedException( "Failed connecting to the requested service." ); + } + + if ( videoStreamer == null ) + { + throw new ServiceAccessFailedException( "Failed accessing to the requested cervice." ); + } + } + else + { + throw new NotConnectedException( "Qwerk object is not connected to a board." ); + } + } + + /// + /// Start video source. + /// + /// + /// Starts video source and return execution to caller. Video source + /// object creates background thread and notifies about new frames with the + /// help of event. + /// + public void Start( ) + { + if ( thread == null ) + { + framesReceived = 0; + bytesReceived = 0; + + // create events + stopEvent = new ManualResetEvent( false ); + + // create and start new thread + thread = new Thread( new ThreadStart( WorkerThread ) ); + thread.Name = source; // mainly for debugging + thread.Start( ); + } + } + + /// + /// Signal video source to stop its work. + /// + /// + /// Signals video source to stop its background thread, stop to + /// provide new frames and free resources. + /// + public void SignalToStop( ) + { + // stop thread + if ( thread != null ) + { + // signal to stop + stopEvent.Set( ); + } + } + + /// + /// Wait for video source has stopped. + /// + /// + /// Waits for video source stopping after it was signalled to stop using + /// method. + /// + public void WaitForStop( ) + { + if ( thread != null ) + { + // wait for thread stop + thread.Join( ); + + Free( ); + } + } + + /// + /// Stop video source. + /// + /// + /// Stops video source aborting its thread. + /// + /// Since the method aborts background thread, its usage is highly not preferred + /// and should be done only if there are no other options. The correct way of stopping camera + /// is signaling it stop and then + /// waiting for background thread's completion. + /// + /// + public void Stop( ) + { + if ( this.IsRunning ) + { + thread.Abort( ); + WaitForStop( ); + } + } + + /// + /// Free resource. + /// + /// + private void Free( ) + { + thread = null; + + // release events + stopEvent.Close( ); + stopEvent = null; + } + + /// + /// Worker thread. + /// + /// + private void WorkerThread( ) + { + // download start time and duration + DateTime start; + TimeSpan span; + + while ( !stopEvent.WaitOne( 0, false ) ) + { + try + { + // start Qwerk's camera + videoStreamer.startCamera( ); + + while ( !stopEvent.WaitOne( 0, false ) ) + { + // get download start time + start = DateTime.Now; + + TeRKIceLib.Image qwerkImage = videoStreamer.getFrame( 0 ); + + // increase frames' and bytes' counters + framesReceived++; + bytesReceived += qwerkImage.data.Length; + + if ( qwerkImage.format == TeRKIceLib.ImageFormat.ImageJPEG ) + { + Bitmap image = (Bitmap) Image.FromStream( new MemoryStream( qwerkImage.data ) ); + + // notify clients + if ( NewFrame != null ) + { + NewFrame( this, new NewFrameEventArgs( image ) ); + } + + image.Dispose( ); + } + else + { + if ( VideoSourceError != null ) + { + VideoSourceError( this, new VideoSourceErrorEventArgs( "Video frame has unsupported format: " + qwerkImage.format ) ); + } + } + + // wait for a while ? + if ( frameInterval > 0 ) + { + // get download duration + span = DateTime.Now.Subtract( start ); + // miliseconds to sleep + int msec = frameInterval - (int) span.TotalMilliseconds; + + while ( ( msec > 0 ) && ( stopEvent.WaitOne( 0, false ) == false ) ) + { + // sleeping ... + Thread.Sleep( ( msec < 100 ) ? msec : 100 ); + msec -= 100; + } + } + } + + // stop Qwerk's camera + videoStreamer.stopCamera( ); + } + catch ( Ice.SocketException ) + { + if ( VideoSourceError != null ) + { + VideoSourceError( this, new VideoSourceErrorEventArgs( "Connection lost to Qwerk's video service." ) ); + } + } + catch + { + if ( VideoSourceError != null ) + { + VideoSourceError( this, new VideoSourceErrorEventArgs( "Failed getting video frame from Qwerk." ) ); + } + } + } + + if ( PlayingFinished != null ) + { + PlayingFinished( this, ReasonToFinishPlaying.StoppedByUser ); + } + } + } + } +} diff --git a/Sources/Robotics.TeRK/Qwerk.cs b/Sources/Robotics.TeRK/Qwerk.cs new file mode 100644 index 00000000..1689a9a2 --- /dev/null +++ b/Sources/Robotics.TeRK/Qwerk.cs @@ -0,0 +1,350 @@ +// AForge TeRK Robotics Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2007-2009 +// andrew.kirillov@aforgenet.com +// + +using TeRKIceLib = TeRK; + +namespace AForge.Robotics.TeRK +{ + using System; + using AForge; + + /// + /// Manipulation of Qwerk robotics board. + /// + /// + /// + /// The class allows to manipulate with Qwerk robotics board developed by + /// Charmed Labs and supported by + /// TeRK project. Using this class it is + /// possible to get access to different Qwerk's services, like digital inputs and outputs, + /// motors and servos, analog inputs, on-board LEDs, video camera, etc. + /// + /// + /// + /// Since TeRK project, which is the software core of Qwerk board, is + /// based on Internet Communication Engine (ICE), + /// the ICE runtime should be installed in order to use Qwerk classes. + /// + /// The class is deprecated. + /// + /// Sample usage: + /// + /// Qwerk qwerk = new Qwerk( ); + /// // connect to Qwerk + /// qwerk.Connect( "192.168.0.5" ); + /// // turn off all on-board LEDs + /// qwerk.GetLedsService( ).SetLedsState( Qwerk.LedState.Off ); + /// // get digital output service + /// Qwerk.DigitalOut outputs = qwerk.GetDigitalOutService( ); + /// // set all digital outputs to disabled state + /// outputs.SetOutputs( false ); + /// // enable zero output + /// outputs.SetOutput( 0, true ); + /// // get state of all analog inputs + /// short[] inputs = qwerk.GetAnalogInService( ).GetInputs( ); + /// // get state of all digital inputs + /// bool[] inputs = qwerk.GetDigitalInService( ).GetInputs( ); + /// + /// + /// + [Obsolete( "The class is deprecated." )] + public partial class Qwerk + { + private Ice.Communicator iceCommunicator = null; + private TeRKIceLib.QwerkPrx qwerk = null; + + // host address if connection was established + private string hostAddress; + + // connection timeout + internal const int TimeOut = 2500; + + /// + /// Qwerk's host address. + /// + /// + /// The property keeps Qwerk's host address if the class is connected + /// to Qwerk board, otherwise it equals to . + /// + public string HostAddress + { + get { return hostAddress; } + } + + /// + /// Connection state. + /// + /// + /// The property equals to if the class is connected + /// to Qwerk board, otherwise it equals to . + /// + public bool IsConnected + { + get { return ( hostAddress != null ); } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public Qwerk( ) + { + } + + /// + /// Connect to Qwerk. + /// + /// + /// Qwerk's address or host name to connect to. + /// + /// Failed connecting to Qwerk. + /// Failed accessing to the requested service, + /// which may be due to the fact that something is wrong with Qwerk device or connection + /// was initiated not with Qwerk. + /// + public void Connect( string hostAddress ) + { + // close previous connection + Disconnect( ); + + try + { + // initialize ICE communication + iceCommunicator = Ice.Util.initialize( ); + + + // get Qwerk object + Ice.ObjectPrx obj = iceCommunicator.stringToProxy( "'::TeRK::TerkUser':tcp -h " + hostAddress + " -p 10101" ); + obj = obj.ice_timeout( TimeOut ); + qwerk = TeRKIceLib.QwerkPrxHelper.checkedCast( obj ); + + } + catch + { + Disconnect( ); + + throw new ConnectionFailedException( "Failed connecting to the requested service." ); + } + + // check if qwerk's object was obtained successfully + if ( qwerk == null ) + { + Disconnect( ); + + throw new ServiceAccessFailedException( "Failed accessing to the requested service." ); + } + else + { + // save host address + this.hostAddress = hostAddress; + } + } + + /// + /// Disconnect from Qwerk device. + /// + /// + public void Disconnect( ) + { + hostAddress = null; + + if ( video != null ) + { + video.SignalToStop( ); + // wait for aroung 250 ms + for ( int i = 0; ( i < 5 ) && ( video.IsRunning ); i++ ) + { + System.Threading.Thread.Sleep( 50 ); + } + // abort camera if it can not be stopped + if ( video.IsRunning ) + { + video.Stop( ); + } + } + + leds = null; + digitalOuts = null; + digitalIns = null; + analogIns = null; + video = null; + motors = null; + servos = null; + + // destroy ICE communicator + if ( iceCommunicator != null ) + { + iceCommunicator.destroy( ); + iceCommunicator = null; + } + } + + private Qwerk.Leds leds; + + /// + /// Get Qwerk's LEDs service. + /// + /// + /// Returns Qwerk's LEDs service. + /// + /// For the list of possible exceptions, see documentation to + /// . + /// + public Qwerk.Leds GetLedsService( ) + { + if ( leds == null ) + { + leds = new Leds( this ); + } + return leds; + } + + private Qwerk.DigitalOut digitalOuts; + + /// + /// Get Qwerk's digital outputs service. + /// + /// + /// Returns Qwerk's digital outputs service. + /// + /// For the list of possible exceptions, see documentation to + /// . + /// + public Qwerk.DigitalOut GetDigitalOutService( ) + { + if ( digitalOuts == null ) + { + digitalOuts = new DigitalOut( this ); + } + return digitalOuts; + } + + private Qwerk.DigitalIn digitalIns; + + /// + /// Get Qwerk's digital inputs service. + /// + /// + /// Returns Qwerk's digital inputs service. + /// + /// For the list of possible exceptions, see documentation to + /// . + /// + public Qwerk.DigitalIn GetDigitalInService( ) + { + if ( digitalIns == null ) + { + digitalIns = new DigitalIn( this ); + } + return digitalIns; + } + + private Qwerk.AnalogIn analogIns; + + /// + /// Get Qwerk's analog inputs service. + /// + /// + /// Returns Qwerk's analog inputs service. + /// + /// For the list of possible exceptions, see documentation to + /// . + /// + public Qwerk.AnalogIn GetAnalogInService( ) + { + if ( analogIns == null ) + { + analogIns = new AnalogIn( this ); + } + return analogIns; + } + + private Qwerk.Video video; + + /// + /// Get Qwerk's video service. + /// + /// + /// Returns Qwerk's video service. + /// + /// For the list of possible exceptions, see documentation to + /// . + /// + public Qwerk.Video GetVideoService( ) + { + if ( video == null ) + { + video = new Video( this ); + } + return video; + } + + private Qwerk.Motors motors; + + /// + /// Get Qwerk's motors service. + /// + /// + /// Returns Qwerk's motors service. + /// + /// For the list of possible exceptions, see documentation to + /// . + /// + public Qwerk.Motors GetMotorsService( ) + { + if ( motors == null ) + { + motors = new Motors( this ); + } + return motors; + } + + private Qwerk.Servos servos; + + /// + /// Get Qwerk's servos service. + /// + /// + /// Returns Qwerk's servos service. + /// + /// For the list of possible exceptions, see documentation to + /// . + /// + public Qwerk.Servos GetServosService( ) + { + if ( servos == null ) + { + servos = new Servos( this ); + } + return servos; + } + + /// + /// Get Qwerk's power level. + /// + /// + /// Returns Qwerk's power level in millivolts. + /// + /// Connestion to Qwerk is lost. + /// + public int GetPower( ) + { + int power = 0; + try + { + TeRKIceLib.QwerkState state = qwerk.getState( ); + power = state.battery.batteryVoltage; + } + catch + { + throw new ConnectionLostException( "Connection is lost." ); + } + return power; + } + } +} diff --git a/Sources/Robotics.TeRK/Robotics.TeRK.csproj b/Sources/Robotics.TeRK/Robotics.TeRK.csproj new file mode 100644 index 00000000..57584ede --- /dev/null +++ b/Sources/Robotics.TeRK/Robotics.TeRK.csproj @@ -0,0 +1,119 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {CB9BB289-ACC9-4A05-8403-98D453F23728} + Library + Properties + AForge.Robotics.TeRK + AForge.Robotics.TeRK + v2.0 + 512 + true + AForge.Robotics.TeRK.snk + + + 3.5 + + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + true + full + false + ..\..\Release\ + DEBUG;TRACE + prompt + 4 + AForge.Robotics.TeRK.xml + + + pdbonly + true + ..\..\Release\ + TRACE + prompt + 4 + AForge.Robotics.TeRK.xml + + + + False + + + False + + + + + + + + False + ..\..\Externals\TeRK\TeRK.dll + + + + + + + + + + + + + + + + + + + + False + Microsoft .NET Framework 4 %28x86 and x64%29 + true + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 3.1 + true + + + + + \ No newline at end of file diff --git a/Sources/Robotics.TeRK/Robotics.TeRK.sln b/Sources/Robotics.TeRK/Robotics.TeRK.sln new file mode 100644 index 00000000..0ed3694e --- /dev/null +++ b/Sources/Robotics.TeRK/Robotics.TeRK.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual C# Express 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Robotics.TeRK", "Robotics.TeRK.csproj", "{CB9BB289-ACC9-4A05-8403-98D453F23728}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {CB9BB289-ACC9-4A05-8403-98D453F23728}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CB9BB289-ACC9-4A05-8403-98D453F23728}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CB9BB289-ACC9-4A05-8403-98D453F23728}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CB9BB289-ACC9-4A05-8403-98D453F23728}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Sources/Video.DirectShow/AForge.Video.DirectShow.snk b/Sources/Video.DirectShow/AForge.Video.DirectShow.snk new file mode 100644 index 00000000..9d8a6924 Binary files /dev/null and b/Sources/Video.DirectShow/AForge.Video.DirectShow.snk differ diff --git a/Sources/Video.DirectShow/CameraControlProperty.cs b/Sources/Video.DirectShow/CameraControlProperty.cs new file mode 100644 index 00000000..8ab1f6cc --- /dev/null +++ b/Sources/Video.DirectShow/CameraControlProperty.cs @@ -0,0 +1,67 @@ +// AForge Direct Show Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2009-2013 +// contacts@aforgenet.com +// + +namespace AForge.Video.DirectShow +{ + using System; + + /// + /// The enumeration specifies a setting on a camera. + /// + public enum CameraControlProperty + { + /// + /// Pan control. + /// + Pan = 0, + /// + /// Tilt control. + /// + Tilt, + /// + /// Roll control. + /// + Roll, + /// + /// Zoom control. + /// + Zoom, + /// + /// Exposure control. + /// + Exposure, + /// + /// Iris control. + /// + Iris, + /// + /// Focus control. + /// + Focus + } + + /// + /// The enumeration defines whether a camera setting is controlled manually or automatically. + /// + [Flags] + public enum CameraControlFlags + { + /// + /// No control flag. + /// + None = 0x0, + /// + /// Auto control Flag. + /// + Auto = 0x0001, + /// + /// Manual control Flag. + /// + Manual = 0x0002 + } +} diff --git a/Sources/Video.DirectShow/FileVideoSource.cs b/Sources/Video.DirectShow/FileVideoSource.cs new file mode 100644 index 00000000..d3754674 --- /dev/null +++ b/Sources/Video.DirectShow/FileVideoSource.cs @@ -0,0 +1,621 @@ +// AForge Direct Show Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2009-2011 +// contacts@aforgenet.com +// + +namespace AForge.Video.DirectShow +{ + using System; + using System.Drawing; + using System.Drawing.Imaging; + using System.Threading; + using System.Runtime.InteropServices; + + using AForge.Video; + using AForge.Video.DirectShow.Internals; + + /// + /// Video source for video files. + /// + /// + /// The video source provides access to video files. DirectShow is used to access video + /// files. + /// + /// Sample usage: + /// + /// // create video source + /// FileVideoSource videoSource = new FileVideoSource( fileName ); + /// // set NewFrame event handler + /// videoSource.NewFrame += new NewFrameEventHandler( video_NewFrame ); + /// // start the video source + /// videoSource.Start( ); + /// // ... + /// // signal to stop + /// videoSource.SignalToStop( ); + /// // ... + /// + /// // New frame event handler, which is invoked on each new available video frame + /// private void video_NewFrame( object sender, NewFrameEventArgs eventArgs ) + /// { + /// // get new frame + /// Bitmap bitmap = eventArgs.Frame; + /// // process the frame + /// } + /// + /// + /// + public class FileVideoSource : IVideoSource + { + // video file name + private string fileName; + // received frames count + private int framesReceived; + // recieved byte count + private long bytesReceived; + // prevent freezing + private bool preventFreezing = false; + // reference clock for the graph - when disabled, graph processes frames ASAP + private bool referenceClockEnabled = true; + + private Thread thread = null; + private ManualResetEvent stopEvent = null; + + /// + /// New frame event. + /// + /// + /// Notifies clients about new available frame from video source. + /// + /// Since video source may have multiple clients, each client is responsible for + /// making a copy (cloning) of the passed video frame, because the video source disposes its + /// own original copy after notifying of clients. + /// + /// + public event NewFrameEventHandler NewFrame; + + /// + /// Video source error event. + /// + /// + /// This event is used to notify clients about any type of errors occurred in + /// video source object, for example internal exceptions. + /// + public event VideoSourceErrorEventHandler VideoSourceError; + + /// + /// Video playing finished event. + /// + /// + /// This event is used to notify clients that the video playing has finished. + /// + /// + public event PlayingFinishedEventHandler PlayingFinished; + + /// + /// Video source. + /// + /// + /// Video source is represented by video file name. + /// + public virtual string Source + { + get { return fileName; } + set { fileName = value; } + } + + /// + /// Received frames count. + /// + /// + /// Number of frames the video source provided from the moment of the last + /// access to the property. + /// + /// + public int FramesReceived + { + get + { + int frames = framesReceived; + framesReceived = 0; + return frames; + } + } + + /// + /// Received bytes count. + /// + /// + /// Number of bytes the video source provided from the moment of the last + /// access to the property. + /// + /// + public long BytesReceived + { + get + { + long bytes = bytesReceived; + bytesReceived = 0; + return bytes; + } + } + + /// + /// State of the video source. + /// + /// + /// Current state of video source object - running or not. + /// + public bool IsRunning + { + get + { + if ( thread != null ) + { + // check thread status + if ( thread.Join( 0 ) == false ) + return true; + + // the thread is not running, free resources + Free( ); + } + return false; + } + } + + /// + /// Prevent video freezing after screen saver and workstation lock or not. + /// + /// + /// + /// The value specifies if the class should prevent video freezing during and + /// after screen saver or workstation lock. To prevent freezing the DirectShow graph + /// should not contain Renderer filter, which is added by Render() method + /// of graph. However, in some cases it may be required to call Render() method of graph, since + /// it may add some more filters, which may be required for playing video. So, the property is + /// a trade off - it is possible to prevent video freezing skipping adding renderer filter or + /// it is possible to keep renderer filter, but video may freeze during screen saver. + /// + /// The property may become obsolete in the future when approach to disable freezing + /// and adding all required filters is found. + /// + /// The property should be set before calling method + /// of the class to have effect. + /// + /// Default value of this property is set to false. + /// + /// + /// + public bool PreventFreezing + { + get { return preventFreezing; } + set { preventFreezing = value; } + } + + /// + /// Enables/disables reference clock on the graph. + /// + /// + /// Disabling reference clocks causes DirectShow graph to run as fast as + /// it can process data. When enabled, it will process frames according to presentation + /// time of a video file. + /// + /// The property should be set before calling method + /// of the class to have effect. + /// + /// Default value of this property is set to true. + /// + /// + public bool ReferenceClockEnabled + { + get { return referenceClockEnabled; } + set { referenceClockEnabled = value;} + } + + /// + /// Initializes a new instance of the class. + /// + /// + public FileVideoSource( ) { } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Video file name. + /// + public FileVideoSource( string fileName ) + { + this.fileName = fileName; + } + + /// + /// Start video source. + /// + /// + /// Starts video source and return execution to caller. Video source + /// object creates background thread and notifies about new frames with the + /// help of event. + /// + public void Start( ) + { + if ( !IsRunning ) + { + // check source + if ( ( fileName == null ) || ( fileName == string.Empty ) ) + throw new ArgumentException( "Video source is not specified" ); + + framesReceived = 0; + bytesReceived = 0; + + // create events + stopEvent = new ManualResetEvent( false ); + + // create and start new thread + thread = new Thread( new ThreadStart( WorkerThread ) ); + thread.Name = fileName; // mainly for debugging + thread.Start( ); + } + } + + /// + /// Signal video source to stop its work. + /// + /// + /// Signals video source to stop its background thread, stop to + /// provide new frames and free resources. + /// + public void SignalToStop( ) + { + // stop thread + if ( thread != null ) + { + // signal to stop + stopEvent.Set( ); + } + } + + /// + /// Wait for video source has stopped. + /// + /// + /// Waits for source stopping after it was signalled to stop using + /// method. + /// + public void WaitForStop( ) + { + if ( thread != null ) + { + // wait for thread stop + thread.Join( ); + + Free( ); + } + } + + /// + /// Stop video source. + /// + /// + /// Stops video source aborting its thread. + /// + /// Since the method aborts background thread, its usage is highly not preferred + /// and should be done only if there are no other options. The correct way of stopping camera + /// is signaling it stop and then + /// waiting for background thread's completion. + /// + /// + public void Stop( ) + { + if ( this.IsRunning ) + { + thread.Abort( ); + WaitForStop( ); + } + } + + /// + /// Free resource. + /// + /// + private void Free( ) + { + thread = null; + + // release events + stopEvent.Close( ); + stopEvent = null; + } + + /// + /// Worker thread. + /// + /// + private void WorkerThread( ) + { + ReasonToFinishPlaying reasonToStop = ReasonToFinishPlaying.StoppedByUser; + + // grabber + Grabber grabber = new Grabber( this ); + + // objects + object graphObject = null; + object grabberObject = null; + + // interfaces + IGraphBuilder graph = null; + IBaseFilter sourceBase = null; + IBaseFilter grabberBase = null; + ISampleGrabber sampleGrabber = null; + IMediaControl mediaControl = null; + + IMediaEventEx mediaEvent = null; + + try + { + // get type for filter graph + Type type = Type.GetTypeFromCLSID( Clsid.FilterGraph ); + if ( type == null ) + throw new ApplicationException( "Failed creating filter graph" ); + + // create filter graph + graphObject = Activator.CreateInstance( type ); + graph = (IGraphBuilder) graphObject; + + // create source device's object + graph.AddSourceFilter( fileName, "source", out sourceBase ); + if ( sourceBase == null ) + throw new ApplicationException( "Failed creating source filter" ); + + // get type for sample grabber + type = Type.GetTypeFromCLSID( Clsid.SampleGrabber ); + if ( type == null ) + throw new ApplicationException( "Failed creating sample grabber" ); + + // create sample grabber + grabberObject = Activator.CreateInstance( type ); + sampleGrabber = (ISampleGrabber) grabberObject; + grabberBase = (IBaseFilter) grabberObject; + + // add grabber filters to graph + graph.AddFilter( grabberBase, "grabber" ); + + // set media type + AMMediaType mediaType = new AMMediaType( ); + mediaType.MajorType = MediaType.Video; + mediaType.SubType = MediaSubType.RGB24; + sampleGrabber.SetMediaType( mediaType ); + + // connect pins + int pinToTry = 0; + + IPin inPin = Tools.GetInPin( grabberBase, 0 ); + IPin outPin = null; + + // find output pin acceptable by sample grabber + while ( true ) + { + outPin = Tools.GetOutPin( sourceBase, pinToTry ); + + if ( outPin == null ) + { + Marshal.ReleaseComObject( inPin ); + throw new ApplicationException( "Did not find acceptable output video pin in the given source" ); + } + + if ( graph.Connect( outPin, inPin ) < 0 ) + { + Marshal.ReleaseComObject( outPin ); + outPin = null; + pinToTry++; + } + else + { + break; + } + } + + Marshal.ReleaseComObject( outPin ); + Marshal.ReleaseComObject( inPin ); + + // get media type + if ( sampleGrabber.GetConnectedMediaType( mediaType ) == 0 ) + { + VideoInfoHeader vih = (VideoInfoHeader) Marshal.PtrToStructure( mediaType.FormatPtr, typeof( VideoInfoHeader ) ); + + grabber.Width = vih.BmiHeader.Width; + grabber.Height = vih.BmiHeader.Height; + mediaType.Dispose( ); + } + + // let's do rendering, if we don't need to prevent freezing + if ( !preventFreezing ) + { + // render pin + graph.Render( Tools.GetOutPin( grabberBase, 0 ) ); + + // configure video window + IVideoWindow window = (IVideoWindow) graphObject; + window.put_AutoShow( false ); + window = null; + } + + // configure sample grabber + sampleGrabber.SetBufferSamples( false ); + sampleGrabber.SetOneShot( false ); + sampleGrabber.SetCallback( grabber, 1 ); + + // disable clock, if someone requested it + if ( !referenceClockEnabled ) + { + IMediaFilter mediaFilter = (IMediaFilter) graphObject; + mediaFilter.SetSyncSource( null ); + } + + // get media control + mediaControl = (IMediaControl) graphObject; + + // get media events' interface + mediaEvent = (IMediaEventEx) graphObject; + IntPtr p1, p2; + DsEvCode code; + + // run + mediaControl.Run( ); + + do + { + if ( mediaEvent != null ) + { + if ( mediaEvent.GetEvent( out code, out p1, out p2, 0 ) >= 0 ) + { + mediaEvent.FreeEventParams( code, p1, p2 ); + + if ( code == DsEvCode.Complete ) + { + reasonToStop = ReasonToFinishPlaying.EndOfStreamReached; + break; + } + } + } + } + while ( !stopEvent.WaitOne( 100, false ) ); + + mediaControl.Stop( ); + } + catch ( Exception exception ) + { + // provide information to clients + if ( VideoSourceError != null ) + { + VideoSourceError( this, new VideoSourceErrorEventArgs( exception.Message ) ); + } + } + finally + { + // release all objects + graph = null; + grabberBase = null; + sampleGrabber = null; + mediaControl = null; + mediaEvent = null; + + if ( graphObject != null ) + { + Marshal.ReleaseComObject( graphObject ); + graphObject = null; + } + if ( sourceBase != null ) + { + Marshal.ReleaseComObject( sourceBase ); + sourceBase = null; + } + if ( grabberObject != null ) + { + Marshal.ReleaseComObject( grabberObject ); + grabberObject = null; + } + } + + if ( PlayingFinished != null ) + { + PlayingFinished( this, reasonToStop ); + } + } + + /// + /// Notifies client about new frame. + /// + /// + /// New frame's image. + /// + protected void OnNewFrame( Bitmap image ) + { + framesReceived++; + bytesReceived += image.Width * image.Height * ( Bitmap.GetPixelFormatSize( image.PixelFormat ) >> 3 ); + + if ( ( !stopEvent.WaitOne( 0, false ) ) && ( NewFrame != null ) ) + NewFrame( this, new NewFrameEventArgs( image ) ); + } + + // + // Video grabber + // + private class Grabber : ISampleGrabberCB + { + private FileVideoSource parent; + private int width, height; + + // Width property + public int Width + { + get { return width; } + set { width = value; } + } + // Height property + public int Height + { + get { return height; } + set { height = value; } + } + + // Constructor + public Grabber( FileVideoSource parent ) + { + this.parent = parent; + } + + // Callback to receive samples + public int SampleCB( double sampleTime, IntPtr sample ) + { + return 0; + } + + // Callback method that receives a pointer to the sample buffer + public int BufferCB( double sampleTime, IntPtr buffer, int bufferLen ) + { + if ( parent.NewFrame != null ) + { + // create new image + System.Drawing.Bitmap image = new Bitmap( width, height, PixelFormat.Format24bppRgb ); + + // lock bitmap data + BitmapData imageData = image.LockBits( + new Rectangle( 0, 0, width, height ), + ImageLockMode.ReadWrite, + PixelFormat.Format24bppRgb ); + + // copy image data + int srcStride = imageData.Stride; + int dstStride = imageData.Stride; + + unsafe + { + byte* dst = (byte*) imageData.Scan0.ToPointer( ) + dstStride * ( height - 1 ); + byte* src = (byte*) buffer.ToPointer( ); + + for ( int y = 0; y < height; y++ ) + { + Win32.memcpy( dst, src, srcStride ); + dst -= dstStride; + src += srcStride; + } + } + + // unlock bitmap data + image.UnlockBits( imageData ); + + // notify parent + parent.OnNewFrame( image ); + + // release the image + image.Dispose( ); + } + + return 0; + } + } + } +} diff --git a/Sources/Video.DirectShow/FilterInfo.cs b/Sources/Video.DirectShow/FilterInfo.cs new file mode 100644 index 00000000..c70e9665 --- /dev/null +++ b/Sources/Video.DirectShow/FilterInfo.cs @@ -0,0 +1,193 @@ +// AForge Direct Show Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2008 +// andrew.kirillov@gmail.com +// + +namespace AForge.Video.DirectShow +{ + using System; + using System.Runtime.InteropServices; + using System.Runtime.InteropServices.ComTypes; + using AForge.Video.DirectShow.Internals; + + /// + /// DirectShow filter information. + /// + /// + public class FilterInfo : IComparable + { + /// + /// Filter name. + /// + public string Name { get; private set; } + + /// + /// Filters's moniker string. + /// + /// + public string MonikerString { get; private set; } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Filters's moniker string. + /// + public FilterInfo( string monikerString ) + { + MonikerString = monikerString; + Name = GetName( monikerString ); + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Filter's moniker object. + /// + internal FilterInfo( IMoniker moniker ) + { + MonikerString = GetMonikerString( moniker ); + Name = GetName( moniker ); + } + + /// + /// Compare the object with another instance of this class. + /// + /// + /// Object to compare with. + /// + /// A signed number indicating the relative values of this instance and value. + /// + public int CompareTo( object value ) + { + FilterInfo f = (FilterInfo) value; + + if ( f == null ) + return 1; + + return ( this.Name.CompareTo( f.Name ) ); + } + + /// + /// Create an instance of the filter. + /// + /// + /// Filter's moniker string. + /// + /// Returns filter's object, which implements IBaseFilter interface. + /// + /// The returned filter's object should be released using Marshal.ReleaseComObject(). + /// + public static object CreateFilter( string filterMoniker ) + { + // filter's object + object filterObject = null; + // bind context and moniker objects + IBindCtx bindCtx = null; + IMoniker moniker = null; + + int n = 0; + + // create bind context + if ( Win32.CreateBindCtx( 0, out bindCtx ) == 0 ) + { + // convert moniker`s string to a moniker + if ( Win32.MkParseDisplayName( bindCtx, filterMoniker, ref n, out moniker ) == 0 ) + { + // get device base filter + Guid filterId = typeof( IBaseFilter ).GUID; + moniker.BindToObject( null, null, ref filterId, out filterObject ); + + Marshal.ReleaseComObject( moniker ); + } + Marshal.ReleaseComObject( bindCtx ); + } + return filterObject; + } + + // + // Get moniker string of the moniker + // + private string GetMonikerString( IMoniker moniker ) + { + string str; + moniker.GetDisplayName( null, null, out str ); + return str; + } + + // + // Get filter name represented by the moniker + // + private string GetName( IMoniker moniker ) + { + Object bagObj = null; + IPropertyBag bag = null; + + try + { + Guid bagId = typeof( IPropertyBag ).GUID; + // get property bag of the moniker + moniker.BindToStorage( null, null, ref bagId, out bagObj ); + bag = (IPropertyBag) bagObj; + + // read FriendlyName + object val = ""; + int hr = bag.Read( "FriendlyName", ref val, IntPtr.Zero ); + if ( hr != 0 ) + Marshal.ThrowExceptionForHR( hr ); + + // get it as string + string ret = (string) val; + if ( ( ret == null ) || ( ret.Length < 1 ) ) + throw new ApplicationException( ); + + return ret; + } + catch ( Exception ) + { + return ""; + } + finally + { + // release all COM objects + bag = null; + if ( bagObj != null ) + { + Marshal.ReleaseComObject( bagObj ); + bagObj = null; + } + } + } + + // + // Get filter name represented by the moniker string + // + private string GetName( string monikerString ) + { + IBindCtx bindCtx = null; + IMoniker moniker = null; + String name = ""; + int n = 0; + + // create bind context + if ( Win32.CreateBindCtx( 0, out bindCtx ) == 0 ) + { + // convert moniker`s string to a moniker + if ( Win32.MkParseDisplayName( bindCtx, monikerString, ref n, out moniker ) == 0 ) + { + // get device name + name = GetName( moniker ); + + Marshal.ReleaseComObject( moniker ); + moniker = null; + } + Marshal.ReleaseComObject( bindCtx ); + bindCtx = null; + } + return name; + } + } +} diff --git a/Sources/Video.DirectShow/FilterInfoCollection.cs b/Sources/Video.DirectShow/FilterInfoCollection.cs new file mode 100644 index 00000000..dabd30d5 --- /dev/null +++ b/Sources/Video.DirectShow/FilterInfoCollection.cs @@ -0,0 +1,138 @@ +// AForge Direct Show Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2008 +// andrew.kirillov@gmail.com +// + +namespace AForge.Video.DirectShow +{ + using System; + using System.Collections; + using System.Runtime.InteropServices; + using System.Runtime.InteropServices.ComTypes; + using AForge.Video.DirectShow.Internals; + + /// + /// Collection of filters' information objects. + /// + /// + /// The class allows to enumerate DirectShow filters of specified category. For + /// a list of categories see . + /// + /// Sample usage: + /// + /// // enumerate video devices + /// videoDevices = new FilterInfoCollection( FilterCategory.VideoInputDevice ); + /// // list devices + /// foreach ( FilterInfo device in videoDevices ) + /// { + /// // ... + /// } + /// + /// + /// + public class FilterInfoCollection : CollectionBase + { + /// + /// Initializes a new instance of the class. + /// + /// + /// Guid of DirectShow filter category. See . + /// + /// Build collection of filters' information objects for the + /// specified filter category. + /// + public FilterInfoCollection( Guid category ) + { + CollectFilters( category ); + } + + /// + /// Get filter information object. + /// + /// + /// Index of filter information object to retrieve. + /// + /// Filter information object. + /// + public FilterInfo this[int index] + { + get + { + return ( (FilterInfo) InnerList[index] ); + } + } + + // Collect filters of specified category + private void CollectFilters( Guid category ) + { + object comObj = null; + ICreateDevEnum enumDev = null; + IEnumMoniker enumMon = null; + IMoniker[] devMon = new IMoniker[1]; + int hr; + + try + { + // Get the system device enumerator + Type srvType = Type.GetTypeFromCLSID( Clsid.SystemDeviceEnum ); + if ( srvType == null ) + throw new ApplicationException( "Failed creating device enumerator" ); + + // create device enumerator + comObj = Activator.CreateInstance( srvType ); + enumDev = (ICreateDevEnum) comObj; + + // Create an enumerator to find filters of specified category + hr = enumDev.CreateClassEnumerator( ref category, out enumMon, 0 ); + if ( hr != 0 ) + throw new ApplicationException( "No devices of the category" ); + + // Collect all filters + IntPtr n = IntPtr.Zero; + while ( true ) + { + // Get next filter + hr = enumMon.Next( 1, devMon, n ); + if ( ( hr != 0 ) || ( devMon[0] == null ) ) + break; + + // Add the filter + FilterInfo filter = new FilterInfo( devMon[0] ); + InnerList.Add( filter ); + + // Release COM object + Marshal.ReleaseComObject( devMon[0] ); + devMon[0] = null; + } + + // Sort the collection + InnerList.Sort( ); + } + catch + { + } + finally + { + // release all COM objects + enumDev = null; + if ( comObj != null ) + { + Marshal.ReleaseComObject( comObj ); + comObj = null; + } + if ( enumMon != null ) + { + Marshal.ReleaseComObject( enumMon ); + enumMon = null; + } + if ( devMon[0] != null ) + { + Marshal.ReleaseComObject( devMon[0] ); + devMon[0] = null; + } + } + } + } +} diff --git a/Sources/Video.DirectShow/Icons/camera.png b/Sources/Video.DirectShow/Icons/camera.png new file mode 100644 index 00000000..d16b2bb0 Binary files /dev/null and b/Sources/Video.DirectShow/Icons/camera.png differ diff --git a/Sources/Video.DirectShow/Images/VideoCaptureDeviceForm.png b/Sources/Video.DirectShow/Images/VideoCaptureDeviceForm.png new file mode 100644 index 00000000..5de50a2a Binary files /dev/null and b/Sources/Video.DirectShow/Images/VideoCaptureDeviceForm.png differ diff --git a/Sources/Video.DirectShow/Internals/IAMCameraControl.cs b/Sources/Video.DirectShow/Internals/IAMCameraControl.cs new file mode 100644 index 00000000..c207797f --- /dev/null +++ b/Sources/Video.DirectShow/Internals/IAMCameraControl.cs @@ -0,0 +1,81 @@ +// AForge Direct Show Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2009-2013 +// contacts@aforgenet.com +// + +namespace AForge.Video.DirectShow.Internals +{ + using System; + using System.Runtime.InteropServices; + + /// + /// The IAMCameraControl interface controls camera settings such as zoom, pan, aperture adjustment, + /// or shutter speed. To obtain this interface, query the filter that controls the camera. + /// + [ComImport, + Guid( "C6E13370-30AC-11d0-A18C-00A0C9118956" ), + InterfaceType( ComInterfaceType.InterfaceIsIUnknown )] + internal interface IAMCameraControl + { + /// + /// Gets the range and default value of a specified camera property. + /// + /// + /// Specifies the property to query. + /// Receives the minimum value of the property. + /// Receives the maximum value of the property. + /// Receives the step size for the property. + /// Receives the default value of the property. + /// Receives a member of the CameraControlFlags enumeration, indicating whether the property is controlled automatically or manually. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int GetRange( + [In] CameraControlProperty Property, + [Out] out int pMin, + [Out] out int pMax, + [Out] out int pSteppingDelta, + [Out] out int pDefault, + [Out] out CameraControlFlags pCapsFlags + ); + + /// + /// Sets a specified property on the camera. + /// + /// + /// Specifies the property to set. + /// Specifies the new value of the property. + /// Specifies the desired control setting, as a member of the CameraControlFlags enumeration. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int Set( + [In] CameraControlProperty Property, + [In] int lValue, + [In] CameraControlFlags Flags + ); + + /// + /// Gets the current setting of a camera property. + /// + /// + /// Specifies the property to retrieve. + /// Receives the value of the property. + /// Receives a member of the CameraControlFlags enumeration. + /// The returned value indicates whether the setting is controlled manually or automatically. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int Get( + [In] CameraControlProperty Property, + [Out] out int lValue, + [Out] out CameraControlFlags Flags + ); + } +} diff --git a/Sources/Video.DirectShow/Internals/IAMCrossbar.cs b/Sources/Video.DirectShow/Internals/IAMCrossbar.cs new file mode 100644 index 00000000..b67fc091 --- /dev/null +++ b/Sources/Video.DirectShow/Internals/IAMCrossbar.cs @@ -0,0 +1,88 @@ +// AForge Direct Show Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2009-2012 +// contacts@aforgenet.com +// + +using System; +using System.Runtime.InteropServices; + +namespace AForge.Video.DirectShow.Internals +{ + /// + /// The IAMCrossbar interface routes signals from an analog or digital source to a video capture filter. + /// + [ComImport, System.Security.SuppressUnmanagedCodeSecurity, + Guid( "C6E13380-30AC-11D0-A18C-00A0C9118956" ), + InterfaceType( ComInterfaceType.InterfaceIsIUnknown )] + internal interface IAMCrossbar + { + /// + /// Retrieves the number of input and output pins on the crossbar filter. + /// + /// + /// Variable that receives the number of output pins. + /// Variable that receives the number of input pins. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int get_PinCounts( [Out] out int outputPinCount, [Out] out int inputPinCount ); + + /// + /// Queries whether a specified input pin can be routed to a specified output pin. + /// + /// + /// Specifies the index of the output pin. + /// Specifies the index of input pin. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int CanRoute( [In] int outputPinIndex, [In] int inputPinIndex ); + + /// + /// Routes an input pin to an output pin. + /// + /// + /// Specifies the index of the output pin. + /// Specifies the index of the input pin. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int Route( [In] int outputPinIndex, [In] int inputPinIndex ); + + /// + /// Retrieves the input pin that is currently routed to the specified output pin. + /// + /// + /// Specifies the index of the output pin. + /// Variable that receives the index of the input pin, or -1 if no input pin is routed to this output pin. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int get_IsRoutedTo( [In] int outputPinIndex, [Out] out int inputPinIndex ); + + /// + /// Retrieves information about a specified pin. + /// + /// + /// Specifies the direction of the pin. Use one of the following values. + /// Specifies the index of the pin. + /// Variable that receives the index of the related pin, or –1 if no pin is related to this pin. + /// Variable that receives a member of the PhysicalConnectorType enumeration, indicating the pin's physical type. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int get_CrossbarPinInfo( + [In, MarshalAs( UnmanagedType.Bool )] bool isInputPin, + [In] int pinIndex, + [Out] out int pinIndexRelated, + [Out] out PhysicalConnectorType physicalType ); + } +} diff --git a/Sources/Video.DirectShow/Internals/IAMStreamConfig.cs b/Sources/Video.DirectShow/Internals/IAMStreamConfig.cs new file mode 100644 index 00000000..e72f06e1 --- /dev/null +++ b/Sources/Video.DirectShow/Internals/IAMStreamConfig.cs @@ -0,0 +1,74 @@ +// AForge Direct Show Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2008 +// andrew.kirillov@gmail.com +// + +namespace AForge.Video.DirectShow.Internals +{ + using System; + using System.Runtime.InteropServices; + + /// + /// This interface sets the output format on certain capture and compression filters, + /// for both audio and video. + /// + /// + [ComImport, + Guid( "C6E13340-30AC-11d0-A18C-00A0C9118956" ), + InterfaceType( ComInterfaceType.InterfaceIsIUnknown )] + internal interface IAMStreamConfig + { + /// + /// Set the output format on the pin. + /// + /// + /// Media type to set. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int SetFormat( [In, MarshalAs( UnmanagedType.LPStruct )] AMMediaType mediaType ); + + /// + /// Retrieves the audio or video stream's format. + /// + /// + /// Retrieved media type. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int GetFormat( [Out, MarshalAs( UnmanagedType.LPStruct )] out AMMediaType mediaType ); + + /// + /// Retrieve the number of format capabilities that this pin supports. + /// + /// + /// Variable that receives the number of format capabilities. + /// Variable that receives the size of the configuration structure in bytes. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int GetNumberOfCapabilities( out int count, out int size ); + + /// + /// Retrieve a set of format capabilities. + /// + /// + /// Specifies the format capability to retrieve, indexed from zero. + /// Retrieved media type. + /// Byte array, which receives information about capabilities. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int GetStreamCaps( + [In] int index, + [Out, MarshalAs( UnmanagedType.LPStruct )] out AMMediaType mediaType, + [In, MarshalAs( UnmanagedType.LPStruct )] VideoStreamConfigCaps streamConfigCaps + ); + } +} diff --git a/Sources/Video.DirectShow/Internals/IAMVideoControl.cs b/Sources/Video.DirectShow/Internals/IAMVideoControl.cs new file mode 100644 index 00000000..cb57dfe7 --- /dev/null +++ b/Sources/Video.DirectShow/Internals/IAMVideoControl.cs @@ -0,0 +1,112 @@ +// AForge Direct Show Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2009-2011 +// contacts@aforgenet.com +// + +namespace AForge.Video.DirectShow.Internals +{ + using System; + using System.Runtime.InteropServices; + + /// + /// The interface controls certain video capture operations such as enumerating available + /// frame rates and image orientation. + /// + /// + [ComImport, + Guid( "6A2E0670-28E4-11D0-A18c-00A0C9118956" ), + InterfaceType( ComInterfaceType.InterfaceIsIUnknown )] + internal interface IAMVideoControl + { + /// + /// Retrieves the capabilities of the underlying hardware. + /// + /// + /// Pin to query capabilities from. + /// Get capabilities of the specified pin. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int GetCaps( [In] IPin pin, [Out, MarshalAs( UnmanagedType.I4 )] out VideoControlFlags flags ); + + /// + /// Sets the video control mode of operation. + /// + /// + /// The pin to set the video control mode on. + /// Value specifying a combination of the flags to set the video control mode. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int SetMode( [In] IPin pin, [In, MarshalAs( UnmanagedType.I4 )] VideoControlFlags mode ); + + /// + /// Retrieves the video control mode of operation. + /// + /// + /// The pin to retrieve the video control mode from. + /// Gets combination of flags, which specify the video control mode. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int GetMode( [In] IPin pin, [Out, MarshalAs( UnmanagedType.I4 )] out VideoControlFlags mode ); + + /// + /// The method retrieves the actual frame rate, expressed as a frame duration in 100-nanosecond units. + /// USB (Universal Serial Bus) and IEEE 1394 cameras may provide lower frame rates than requested + /// because of bandwidth availability. This is only available during video streaming. + /// + /// + /// The pin to retrieve the frame rate from. + /// Gets frame rate in frame duration in 100-nanosecond units. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int GetCurrentActualFrameRate( [In] IPin pin, [Out, MarshalAs( UnmanagedType.I8 )] out long actualFrameRate ); + + /// + /// Retrieves the maximum frame rate currently available based on bus bandwidth usage for connections + /// such as USB and IEEE 1394 camera devices where the maximum frame rate can be limited by bandwidth + /// availability. + /// + /// + /// The pin to retrieve the maximum frame rate from. + /// Index of the format to query for maximum frame rate. This index corresponds + /// to the order in which formats are enumerated by . + /// Frame image size (width and height) in pixels. + /// Gets maximum available frame rate. The frame rate is expressed as frame duration in 100-nanosecond units. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int GetMaxAvailableFrameRate( [In] IPin pin, [In] int index, + [In] System.Drawing.Size dimensions, + [Out] out long maxAvailableFrameRate ); + + /// + /// Retrieves a list of available frame rates. + /// + /// + /// The pin to retrieve the maximum frame rate from. + /// Index of the format to query for maximum frame rate. This index corresponds + /// to the order in which formats are enumerated by . + /// Frame image size (width and height) in pixels. + /// Number of elements in the list of frame rates. + /// Array of frame rates in 100-nanosecond units. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int GetFrameRateList( [In] IPin pin, [In] int index, + [In] System.Drawing.Size dimensions, + [Out] out int listSize, + [Out] out IntPtr frameRate ); + } +} diff --git a/Sources/Video.DirectShow/Internals/IBaseFilter.cs b/Sources/Video.DirectShow/Internals/IBaseFilter.cs new file mode 100644 index 00000000..3c03a316 --- /dev/null +++ b/Sources/Video.DirectShow/Internals/IBaseFilter.cs @@ -0,0 +1,161 @@ +// AForge Direct Show Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2007 +// andrew.kirillov@gmail.com +// + +namespace AForge.Video.DirectShow.Internals +{ + using System; + using System.Runtime.InteropServices; + + /// + /// The IBaseFilter interface provides methods for controlling a filter. + /// All DirectShow filters expose this interface + /// + /// + [ComImport, + Guid( "56A86895-0AD4-11CE-B03A-0020AF0BA770" ), + InterfaceType( ComInterfaceType.InterfaceIsIUnknown )] + internal interface IBaseFilter + { + // --- IPersist Methods + + /// + /// Returns the class identifier (CLSID) for the component object. + /// + /// + /// Points to the location of the CLSID on return. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int GetClassID( [Out] out Guid ClassID ); + + // --- IMediaFilter Methods + + /// + /// Stops the filter. + /// + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int Stop( ); + + /// + /// Pauses the filter. + /// + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int Pause( ); + + /// + /// Runs the filter. + /// + /// + /// Reference time corresponding to stream time 0. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int Run( long start ); + + /// + /// Retrieves the state of the filter (running, stopped, or paused). + /// + /// + /// Time-out interval, in milliseconds. + /// Pointer to a variable that receives filter's state. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int GetState( int milliSecsTimeout, [Out] out int filterState ); + + /// + /// Sets the reference clock for the filter or the filter graph. + /// + /// + /// Pointer to the clock's IReferenceClock interface, or NULL. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int SetSyncSource( [In] IntPtr clock ); + + /// + /// Retrieves the current reference clock. + /// + /// + /// Address of a variable that receives a pointer to the clock's IReferenceClock interface. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int GetSyncSource( [Out] out IntPtr clock ); + + // --- IBaseFilter Methods + + /// + /// Enumerates the pins on this filter. + /// + /// + /// Address of a variable that receives a pointer to the IEnumPins interface. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int EnumPins( [Out] out IEnumPins enumPins ); + + /// + /// Retrieves the pin with the specified identifier. + /// + /// + /// Pointer to a constant wide-character string that identifies the pin. + /// Address of a variable that receives a pointer to the pin's IPin interface. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int FindPin( [In, MarshalAs( UnmanagedType.LPWStr )] string id, [Out] out IPin pin ); + + /// + /// Retrieves information about the filter. + /// + /// + /// Pointer to FilterInfo structure. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int QueryFilterInfo( [Out] out FilterInfo filterInfo ); + + /// + /// Notifies the filter that it has joined or left the filter graph. + /// + /// + /// Pointer to the Filter Graph Manager's IFilterGraph interface, or NULL + /// if the filter is leaving the graph. + /// String that specifies a name for the filter. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int JoinFilterGraph( [In] IFilterGraph graph, [In, MarshalAs( UnmanagedType.LPWStr )] string name ); + + /// + /// Retrieves a string containing vendor information. + /// + /// + /// Receives a string containing the vendor information. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int QueryVendorInfo( [Out, MarshalAs( UnmanagedType.LPWStr )] out string vendorInfo ); + } +} diff --git a/Sources/Video.DirectShow/Internals/ICaptureGraphBuilder2.cs b/Sources/Video.DirectShow/Internals/ICaptureGraphBuilder2.cs new file mode 100644 index 00000000..4ef802a3 --- /dev/null +++ b/Sources/Video.DirectShow/Internals/ICaptureGraphBuilder2.cs @@ -0,0 +1,192 @@ +// AForge Direct Show Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2008 +// andrew.kirillov@gmail.com +// + +namespace AForge.Video.DirectShow.Internals +{ + using System; + using System.Runtime.InteropServices; + + /// + /// This interface builds capture graphs and other custom filter graphs. + /// + /// + [ComImport, + Guid( "93E5A4E0-2D50-11d2-ABFA-00A0C9C6E38D" ), + InterfaceType( ComInterfaceType.InterfaceIsIUnknown )] + internal interface ICaptureGraphBuilder2 + { + /// + /// Specify filter graph for the capture graph builder to use. + /// + /// + /// Filter graph's interface. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int SetFiltergraph( [In] IGraphBuilder graphBuilder ); + + /// + /// Retrieve the filter graph that the builder is using. + /// + /// + /// Filter graph's interface. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int GetFiltergraph( [Out] out IGraphBuilder graphBuilder ); + + /// + /// Create file writing section of the filter graph. + /// + /// + /// GUID that represents either the media subtype of the output or the + /// class identifier (CLSID) of a multiplexer filter or file writer filter. + /// Output file name. + /// Receives the multiplexer's interface. + /// Receives the file writer's IFileSinkFilter interface. Can be NULL. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int SetOutputFileName( + [In, MarshalAs( UnmanagedType.LPStruct )] Guid type, + [In, MarshalAs( UnmanagedType.LPWStr )] string fileName, + [Out] out IBaseFilter baseFilter, + [Out] out IntPtr fileSinkFilter + ); + + /// + /// Searche the graph for a specified interface, starting from a specified filter. + /// + /// + /// GUID that specifies the search criteria. + /// GUID that specifies the major media type of an output pin, or NULL. + /// interface of the filter. The method begins searching from this filter. + /// Interface identifier (IID) of the interface to locate. + /// Receives found interface. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int FindInterface( + [In, MarshalAs( UnmanagedType.LPStruct )] Guid category, + [In, MarshalAs( UnmanagedType.LPStruct )] Guid type, + [In] IBaseFilter baseFilter, + [In, MarshalAs( UnmanagedType.LPStruct )] Guid interfaceID , + [Out, MarshalAs( UnmanagedType.IUnknown )] out object retInterface + ); + + /// + /// Connect an output pin on a source filter to a rendering filter, optionally through a compression filter. + /// + /// + /// Pin category. + /// Major-type GUID that specifies the media type of the output pin. + /// Starting filter for the connection. + /// Interface of an intermediate filter, such as a compression filter. Can be NULL. + /// Sink filter, such as a renderer or mux filter. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int RenderStream( + [In, MarshalAs( UnmanagedType.LPStruct )] Guid category, + [In, MarshalAs( UnmanagedType.LPStruct )] Guid mediaType, + [In, MarshalAs( UnmanagedType.IUnknown )] object source, + [In] IBaseFilter compressor, + [In] IBaseFilter renderer + ); + + /// + /// Set the start and stop times for one or more streams of captured data. + /// + /// + /// Pin category. + /// Major-type GUID that specifies the media type. + /// interface that specifies which filter to control. + /// Start time. + /// Stop time. + /// Value that is sent as the second parameter of the + /// EC_STREAM_CONTROL_STARTED event notification. + /// Value that is sent as the second parameter of the + /// EC_STREAM_CONTROL_STOPPED event notification. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int ControlStream( + [In, MarshalAs( UnmanagedType.LPStruct )] Guid category, + [In, MarshalAs( UnmanagedType.LPStruct )] Guid mediaType, + [In, MarshalAs( UnmanagedType.Interface )] IBaseFilter filter, + [In] long start, + [In] long stop, + [In] short startCookie, + [In] short stopCookie + ); + + /// + /// Preallocate a capture file to a specified size. + /// + /// + /// File name to create or resize. + /// Size of the file to allocate, in bytes. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int AllocCapFile( + [In, MarshalAs( UnmanagedType.LPWStr )] string fileName, + [In] long size + ); + + /// + /// Copy the valid media data from a capture file. + /// + /// + /// Old file name. + /// New file name. + /// Boolean value that specifies whether pressing the ESC key cancels the copy operation. + /// IAMCopyCaptureFileProgress interface to display progress information, or NULL. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int CopyCaptureFile( + [In, MarshalAs( UnmanagedType.LPWStr )] string oldFileName, + [In, MarshalAs( UnmanagedType.LPWStr )] string newFileName, + [In, MarshalAs( UnmanagedType.Bool )] bool allowEscAbort, + [In] IntPtr callback + ); + + /// + /// + /// + /// + /// Interface on a filter, or to an interface on a pin. + /// Pin direction (input or output). + /// Pin category. + /// Media type. + /// Boolean value that specifies whether the pin must be unconnected. + /// Zero-based index of the pin to retrieve, from the set of matching pins. + /// Interface of the matching pin. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int FindPin( + [In, MarshalAs( UnmanagedType.IUnknown )] object source, + [In] PinDirection pinDirection, + [In, MarshalAs( UnmanagedType.LPStruct )] Guid category, + [In, MarshalAs( UnmanagedType.LPStruct )] Guid mediaType, + [In, MarshalAs( UnmanagedType.Bool )] bool unconnected, + [In] int index, + [Out, MarshalAs( UnmanagedType.Interface )] out IPin pin + ); + } +} diff --git a/Sources/Video.DirectShow/Internals/ICreateDevEnum.cs b/Sources/Video.DirectShow/Internals/ICreateDevEnum.cs new file mode 100644 index 00000000..81e4b59f --- /dev/null +++ b/Sources/Video.DirectShow/Internals/ICreateDevEnum.cs @@ -0,0 +1,37 @@ +// AForge Direct Show Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2007 +// andrew.kirillov@gmail.com +// + +namespace AForge.Video.DirectShow.Internals +{ + using System; + using System.Runtime.InteropServices; + using System.Runtime.InteropServices.ComTypes; + + /// + /// The ICreateDevEnum interface creates an enumerator for devices within a particular category, + /// such as video capture devices, audio capture devices, video compressors, and so forth. + /// + /// + [ComImport, + Guid( "29840822-5B84-11D0-BD3B-00A0C911CE86" ), + InterfaceType( ComInterfaceType.InterfaceIsIUnknown )] + internal interface ICreateDevEnum + { + /// + /// Creates a class enumerator for a specified device category. + /// + /// + /// Specifies the class identifier of the device category. + /// Address of a variable that receives an IEnumMoniker interface pointer + /// Bitwise combination of zero or more flags. If zero, the method enumerates every filter in the category. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int CreateClassEnumerator( [In] ref Guid type, [Out] out IEnumMoniker enumMoniker, [In] int flags ); + } +} diff --git a/Sources/Video.DirectShow/Internals/IEnumFilters.cs b/Sources/Video.DirectShow/Internals/IEnumFilters.cs new file mode 100644 index 00000000..a4c8eb93 --- /dev/null +++ b/Sources/Video.DirectShow/Internals/IEnumFilters.cs @@ -0,0 +1,71 @@ +// AForge Direct Show Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2007-2008 +// andrew.kirillov@gmail.com +// + +namespace AForge.Video.DirectShow.Internals +{ + using System; + using System.Runtime.InteropServices; + + /// + /// This interface is used by applications or other filters to determine + /// what filters exist in the filter graph. + /// + /// + [ComImport, + Guid( "56A86893-0AD4-11CE-B03A-0020AF0BA770" ), + InterfaceType( ComInterfaceType.InterfaceIsIUnknown )] + internal interface IEnumFilters + { + /// + /// Retrieves the specified number of filters in the enumeration sequence. + /// + /// + /// Number of filters to retrieve. + /// Array in which to place interfaces. + /// Actual number of filters placed in the array. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int Next( [In] int cFilters, + [Out, MarshalAs( UnmanagedType.LPArray, SizeParamIndex = 0 )] IBaseFilter[] filters, + [Out] out int filtersFetched ); + + /// + /// Skips a specified number of filters in the enumeration sequence. + /// + /// + /// Number of filters to skip. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int Skip( [In] int cFilters ); + + /// + /// Resets the enumeration sequence to the beginning. + /// + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int Reset( ); + + /// + /// Makes a copy of the enumerator with the same enumeration state. + /// + /// + /// Duplicate of the enumerator. + /// + /// + /// Return's HRESULT error code. + /// + /// + [PreserveSig] + int Clone( [Out] out IEnumFilters enumFilters ); + } +} diff --git a/Sources/Video.DirectShow/Internals/IEnumPins.cs b/Sources/Video.DirectShow/Internals/IEnumPins.cs new file mode 100644 index 00000000..41e1f740 --- /dev/null +++ b/Sources/Video.DirectShow/Internals/IEnumPins.cs @@ -0,0 +1,68 @@ +// AForge Direct Show Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2007 +// andrew.kirillov@gmail.com +// + +namespace AForge.Video.DirectShow.Internals +{ + using System; + using System.Runtime.InteropServices; + + /// + /// Enumerates pins on a filter. + /// + /// + [ComImport, + Guid( "56A86892-0AD4-11CE-B03A-0020AF0BA770" ), + InterfaceType( ComInterfaceType.InterfaceIsIUnknown )] + internal interface IEnumPins + { + /// + /// Retrieves a specified number of pins. + /// + /// + /// Number of pins to retrieve. + /// Array of size cPins that is filled with IPin pointers. + /// Receives the number of pins retrieved. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int Next( [In] int cPins, + [Out, MarshalAs( UnmanagedType.LPArray, SizeParamIndex = 0 )] IPin[] pins, + [Out] out int pinsFetched ); + + /// + /// Skips a specified number of pins in the enumeration sequence. + /// + /// + /// Number of pins to skip. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int Skip( [In] int cPins ); + + /// + /// Resets the enumeration sequence to the beginning. + /// + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int Reset( ); + + /// + /// Makes a copy of the enumerator with the same enumeration state. + /// + /// + /// Duplicate of the enumerator. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int Clone( [Out] out IEnumPins enumPins ); + } +} diff --git a/Sources/Video.DirectShow/Internals/IFileSourceFilter.cs b/Sources/Video.DirectShow/Internals/IFileSourceFilter.cs new file mode 100644 index 00000000..a362e47a --- /dev/null +++ b/Sources/Video.DirectShow/Internals/IFileSourceFilter.cs @@ -0,0 +1,48 @@ +// AForge Direct Show Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2007 +// andrew.kirillov@gmail.com +// + +namespace AForge.Video.DirectShow.Internals +{ + using System; + using System.Runtime.InteropServices; + + /// + /// The interface is exposed by source filters to set the file name and media type of the media file that they are to render. + /// + /// + [ComImport, + Guid( "56A868A6-0Ad4-11CE-B03A-0020AF0BA770" ), + InterfaceType( ComInterfaceType.InterfaceIsIUnknown )] + internal interface IFileSourceFilter + { + /// + /// Loads the source filter with the file. + /// + /// + /// The name of the file to open. + /// Media type of the file. This can be null. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int Load( [In, MarshalAs( UnmanagedType.LPWStr )] string fileName, + [In, MarshalAs( UnmanagedType.LPStruct )] AMMediaType mediaType ); + + /// + /// Retrieves the current file. + /// + /// + /// Name of media file. + /// Receives media type. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int GetCurFile([Out, MarshalAs( UnmanagedType.LPWStr )] out string fileName, + [Out, MarshalAs( UnmanagedType.LPStruct )] AMMediaType mediaType ); + } +} diff --git a/Sources/Video.DirectShow/Internals/IFilterGraph.cs b/Sources/Video.DirectShow/Internals/IFilterGraph.cs new file mode 100644 index 00000000..7d21c5f1 --- /dev/null +++ b/Sources/Video.DirectShow/Internals/IFilterGraph.cs @@ -0,0 +1,113 @@ +// AForge Direct Show Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2007 +// andrew.kirillov@gmail.com +// + +namespace AForge.Video.DirectShow.Internals +{ + using System; + using System.Runtime.InteropServices; + + /// + /// The interface provides methods for building a filter graph. An application can use it to add filters to + /// the graph, connect or disconnect filters, remove filters, and perform other basic operations. + /// + /// + [ComImport, + Guid( "56A8689F-0AD4-11CE-B03A-0020AF0BA770" ), + InterfaceType( ComInterfaceType.InterfaceIsIUnknown )] + internal interface IFilterGraph + { + /// + /// Adds a filter to the graph and gives it a name. + /// + /// + /// Filter to add to the graph. + /// Name of the filter. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int AddFilter( [In] IBaseFilter filter, [In, MarshalAs( UnmanagedType.LPWStr )] string name ); + + /// + /// Removes a filter from the graph. + /// + /// + /// Filter to be removed from the graph. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int RemoveFilter( [In] IBaseFilter filter ); + + /// + /// Provides an enumerator for all filters in the graph. + /// + /// + /// Filter enumerator. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int EnumFilters( [Out] out IntPtr enumerator ); + + /// + /// Finds a filter that was added with a specified name. + /// + /// + /// Name of filter to search for. + /// Interface of found filter. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int FindFilterByName( [In, MarshalAs( UnmanagedType.LPWStr )] string name, [Out] out IBaseFilter filter ); + + /// + /// Connects two pins directly (without intervening filters). + /// + /// + /// Output pin. + /// Input pin. + /// Media type to use for the connection. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int ConnectDirect( [In] IPin pinOut, [In] IPin pinIn, [In, MarshalAs( UnmanagedType.LPStruct )] AMMediaType mediaType ); + + /// + /// Breaks the existing pin connection and reconnects it to the same pin. + /// + /// + /// Pin to disconnect and reconnect. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int Reconnect( [In] IPin pin ); + + /// + /// Disconnects a specified pin. + /// + /// + /// Pin to disconnect. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int Disconnect( [In] IPin pin ); + + /// + /// Sets the reference clock to the default clock. + /// + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int SetDefaultSyncSource( ); + } +} diff --git a/Sources/Video.DirectShow/Internals/IFilterGraph2.cs b/Sources/Video.DirectShow/Internals/IFilterGraph2.cs new file mode 100644 index 00000000..b4dbf4c0 --- /dev/null +++ b/Sources/Video.DirectShow/Internals/IFilterGraph2.cs @@ -0,0 +1,257 @@ +// AForge Direct Show Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2008 +// andrew.kirillov@gmail.com +// + +namespace AForge.Video.DirectShow.Internals +{ + using System; + using System.Runtime.InteropServices; + using System.Runtime.InteropServices.ComTypes; + + /// + /// This interface extends the and + /// interfaces, which contain methods for building filter graphs. + /// + /// + [ComImport, + Guid("36B73882-C2C8-11CF-8B46-00805F6CEF60"), + InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] + internal interface IFilterGraph2 + { + // --- IFilterGraph Methods + + /// + /// Adds a filter to the graph and gives it a name. + /// + /// + /// Filter to add to the graph. + /// Name of the filter. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int AddFilter( [In] IBaseFilter filter, [In, MarshalAs( UnmanagedType.LPWStr )] string name ); + + /// + /// Removes a filter from the graph. + /// + /// + /// Filter to be removed from the graph. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int RemoveFilter( [In] IBaseFilter filter ); + + /// + /// Provides an enumerator for all filters in the graph. + /// + /// + /// Filter enumerator. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int EnumFilters( [Out] out IEnumFilters enumerator ); + + /// + /// Finds a filter that was added with a specified name. + /// + /// + /// Name of filter to search for. + /// Interface of found filter. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int FindFilterByName( [In, MarshalAs( UnmanagedType.LPWStr )] string name, [Out] out IBaseFilter filter ); + + /// + /// Connects two pins directly (without intervening filters). + /// + /// + /// Output pin. + /// Input pin. + /// Media type to use for the connection. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int ConnectDirect( [In] IPin pinOut, [In] IPin pinIn, [In, MarshalAs( UnmanagedType.LPStruct )] AMMediaType mediaType ); + + /// + /// Breaks the existing pin connection and reconnects it to the same pin. + /// + /// + /// Pin to disconnect and reconnect. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int Reconnect( [In] IPin pin ); + + /// + /// Disconnects a specified pin. + /// + /// + /// Pin to disconnect. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int Disconnect( [In] IPin pin ); + + /// + /// Sets the reference clock to the default clock. + /// + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int SetDefaultSyncSource( ); + + // --- IGraphBuilder methods + + /// + /// Connects two pins. If they will not connect directly, this method connects them with intervening transforms. + /// + /// + /// Output pin. + /// Input pin. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int Connect( [In] IPin pinOut, [In] IPin pinIn ); + + /// + /// Adds a chain of filters to a specified output pin to render it. + /// + /// + /// Output pin. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int Render( [In] IPin pinOut ); + + /// + /// Builds a filter graph that renders the specified file. + /// + /// + /// Specifies a string that contains file name or device moniker. + /// Reserved. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int RenderFile( + [In, MarshalAs( UnmanagedType.LPWStr )] string file, + [In, MarshalAs( UnmanagedType.LPWStr )] string playList ); + + /// + /// Adds a source filter to the filter graph for a specific file. + /// + /// + /// Specifies the name of the file to load. + /// Specifies a name for the source filter. + /// Variable that receives the interface of the source filter. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int AddSourceFilter( + [In, MarshalAs( UnmanagedType.LPWStr )] string fileName, + [In, MarshalAs( UnmanagedType.LPWStr )] string filterName, + [Out] out IBaseFilter filter ); + + /// + /// Sets the file for logging actions taken when attempting to perform an operation. + /// + /// + /// Handle to the log file. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int SetLogFile( IntPtr hFile ); + + /// + /// Requests that the graph builder return as soon as possible from its current task. + /// + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int Abort( ); + + /// + /// Queries whether the current operation should continue. + /// + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int ShouldOperationContinue( ); + + + // --- IFilterGraph2 methods + + /// + /// + /// + /// + /// Moniker interface. + /// Bind context interface. + /// Name for the filter. + /// Receives source filter's IBaseFilter interface. + /// The caller must release the interface. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int AddSourceFilterForMoniker( + [In] IMoniker moniker, + [In] IBindCtx bindContext, + [In, MarshalAs( UnmanagedType.LPWStr )] string filterName, + [Out] out IBaseFilter filter + ); + + /// + /// Breaks the existing pin connection and reconnects it to the same pin, + /// using a specified media type. + /// + /// + /// Pin to disconnect and reconnect. + /// Media type to reconnect with. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int ReconnectEx( + [In] IPin pin, + [In, MarshalAs( UnmanagedType.LPStruct )] AMMediaType mediaType + ); + + /// + /// Render an output pin, with an option to use existing renderers only. + /// + /// + /// Interface of the output pin. + /// Flag that specifies how to render the pin. + /// Reserved. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int RenderEx( + [In] IPin outputPin, + [In] int flags, + [In] IntPtr context + ); + + } +} diff --git a/Sources/Video.DirectShow/Internals/IGraphBuilder.cs b/Sources/Video.DirectShow/Internals/IGraphBuilder.cs new file mode 100644 index 00000000..8f3fc4ee --- /dev/null +++ b/Sources/Video.DirectShow/Internals/IGraphBuilder.cs @@ -0,0 +1,198 @@ +// AForge Direct Show Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2007 +// andrew.kirillov@gmail.com +// + +namespace AForge.Video.DirectShow.Internals +{ + using System; + using System.Runtime.InteropServices; + + /// + /// This interface provides methods that enable an application to build a filter graph. + /// + /// + [ComImport, + Guid( "56A868A9-0AD4-11CE-B03A-0020AF0BA770" ), + InterfaceType( ComInterfaceType.InterfaceIsIUnknown )] + internal interface IGraphBuilder + { + // --- IFilterGraph Methods + + /// + /// Adds a filter to the graph and gives it a name. + /// + /// + /// Filter to add to the graph. + /// Name of the filter. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int AddFilter( [In] IBaseFilter filter, [In, MarshalAs( UnmanagedType.LPWStr )] string name ); + + /// + /// Removes a filter from the graph. + /// + /// + /// Filter to be removed from the graph. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int RemoveFilter( [In] IBaseFilter filter ); + + /// + /// Provides an enumerator for all filters in the graph. + /// + /// + /// Filter enumerator. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int EnumFilters( [Out] out IEnumFilters enumerator ); + + /// + /// Finds a filter that was added with a specified name. + /// + /// + /// Name of filter to search for. + /// Interface of found filter. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int FindFilterByName( [In, MarshalAs( UnmanagedType.LPWStr )] string name, [Out] out IBaseFilter filter ); + + /// + /// Connects two pins directly (without intervening filters). + /// + /// + /// Output pin. + /// Input pin. + /// Media type to use for the connection. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int ConnectDirect( [In] IPin pinOut, [In] IPin pinIn, [In, MarshalAs( UnmanagedType.LPStruct )] AMMediaType mediaType ); + + /// + /// Breaks the existing pin connection and reconnects it to the same pin. + /// + /// + /// Pin to disconnect and reconnect. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int Reconnect( [In] IPin pin ); + + /// + /// Disconnects a specified pin. + /// + /// + /// Pin to disconnect. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int Disconnect( [In] IPin pin ); + + /// + /// Sets the reference clock to the default clock. + /// + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int SetDefaultSyncSource( ); + + // --- IGraphBuilder methods + + /// + /// Connects two pins. If they will not connect directly, this method connects them with intervening transforms. + /// + /// + /// Output pin. + /// Input pin. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int Connect( [In] IPin pinOut, [In] IPin pinIn ); + + /// + /// Adds a chain of filters to a specified output pin to render it. + /// + /// + /// Output pin. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int Render( [In] IPin pinOut ); + + /// + /// Builds a filter graph that renders the specified file. + /// + /// + /// Specifies a string that contains file name or device moniker. + /// Reserved. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int RenderFile( + [In, MarshalAs( UnmanagedType.LPWStr )] string file, + [In, MarshalAs( UnmanagedType.LPWStr )] string playList); + + /// + /// Adds a source filter to the filter graph for a specific file. + /// + /// + /// Specifies the name of the file to load. + /// Specifies a name for the source filter. + /// Variable that receives the interface of the source filter. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int AddSourceFilter( + [In, MarshalAs( UnmanagedType.LPWStr )] string fileName, + [In, MarshalAs( UnmanagedType.LPWStr )] string filterName, + [Out] out IBaseFilter filter ); + + /// + /// Sets the file for logging actions taken when attempting to perform an operation. + /// + /// + /// Handle to the log file. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int SetLogFile( IntPtr hFile ); + + /// + /// Requests that the graph builder return as soon as possible from its current task. + /// + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int Abort( ); + + /// + /// Queries whether the current operation should continue. + /// + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int ShouldOperationContinue( ); + } +} diff --git a/Sources/Video.DirectShow/Internals/IMediaControl.cs b/Sources/Video.DirectShow/Internals/IMediaControl.cs new file mode 100644 index 00000000..c6ba3576 --- /dev/null +++ b/Sources/Video.DirectShow/Internals/IMediaControl.cs @@ -0,0 +1,118 @@ +// AForge Direct Show Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2007 +// andrew.kirillov@gmail.com +// + +namespace AForge.Video.DirectShow.Internals +{ + using System; + using System.Runtime.InteropServices; + + /// + /// The interface provides methods for controlling the flow of data through the filter graph. + /// It includes methods for running, pausing, and stopping the graph. + /// + /// + [ComImport, + Guid( "56A868B1-0AD4-11CE-B03A-0020AF0BA770" ), + InterfaceType( ComInterfaceType.InterfaceIsDual )] + internal interface IMediaControl + { + /// + /// Runs all the filters in the filter graph. + /// + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int Run( ); + + /// + /// Pauses all filters in the filter graph. + /// + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int Pause( ); + + /// + /// Stops all the filters in the filter graph. + /// + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int Stop( ); + + /// + /// Retrieves the state of the filter graph. + /// + /// + /// Duration of the time-out, in milliseconds, or INFINITE to specify an infinite time-out. + /// Ìariable that receives a member of the FILTER_STATE enumeration. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int GetState( int timeout, out int filterState ); + + /// + /// Builds a filter graph that renders the specified file. + /// + /// + /// Name of the file to render + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int RenderFile( string fileName ); + + /// + /// Adds a source filter to the filter graph, for a specified file. + /// + /// + /// Name of the file containing the source video. + /// Receives interface of filter information object. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int AddSourceFilter( [In] string fileName, [Out, MarshalAs( UnmanagedType.IDispatch )] out object filterInfo ); + + /// + /// Retrieves a collection of the filters in the filter graph. + /// + /// + /// Receives the IAMCollection interface. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int get_FilterCollection( + [Out, MarshalAs( UnmanagedType.IDispatch )] out object collection ); + + /// + /// Retrieves a collection of all the filters listed in the registry. + /// + /// + /// Receives the IDispatch interface of IAMCollection object. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int get_RegFilterCollection( + [Out, MarshalAs( UnmanagedType.IDispatch )] out object collection ); + + /// + /// Pauses the filter graph, allowing filters to queue data, and then stops the filter graph. + /// + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int StopWhenReady( ); + } +} diff --git a/Sources/Video.DirectShow/Internals/IMediaEventEx.cs b/Sources/Video.DirectShow/Internals/IMediaEventEx.cs new file mode 100644 index 00000000..d01bee8c --- /dev/null +++ b/Sources/Video.DirectShow/Internals/IMediaEventEx.cs @@ -0,0 +1,126 @@ +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2009-2011 +// contacts@aforgenet.com +// + +namespace AForge.Video.DirectShow.Internals +{ + using System; + using System.Runtime.InteropServices; + + /// + /// The interface inherits contains methods for retrieving event notifications and for overriding the + /// filter graph's default handling of events. + /// + [ComVisible( true ), ComImport, + Guid( "56a868c0-0ad4-11ce-b03a-0020af0ba770" ), + InterfaceType( ComInterfaceType.InterfaceIsDual )] + internal interface IMediaEventEx + { + /// + /// Retrieves a handle to a manual-reset event that remains signaled while the queue contains event notifications. + /// + /// Pointer to a variable that receives the event handle. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int GetEventHandle( out IntPtr hEvent ); + + /// + /// Retrieves the next event notification from the event queue. + /// + /// + /// Variable that receives the event code. + /// Pointer to a variable that receives the first event parameter. + /// Pointer to a variable that receives the second event parameter. + /// Time-out interval, in milliseconds. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int GetEvent( [Out, MarshalAs( UnmanagedType.I4 )] out DsEvCode lEventCode, [Out] out IntPtr lParam1, [Out] out IntPtr lParam2, int msTimeout ); + + /// + /// Waits for the filter graph to render all available data. + /// + /// + /// Time-out interval, in milliseconds. Pass zero to return immediately. + /// Pointer to a variable that receives an event code. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int WaitForCompletion( int msTimeout, [Out] out int pEvCode ); + + /// + /// Cancels the Filter Graph Manager's default handling for a specified event. + /// + /// + /// Event code for which to cancel default handling. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int CancelDefaultHandling( int lEvCode ); + + /// + /// Restores the Filter Graph Manager's default handling for a specified event. + /// + /// Event code for which to restore default handling. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int RestoreDefaultHandling( int lEvCode ); + + /// + /// Frees resources associated with the parameters of an event. + /// + /// Event code. + /// First event parameter. + /// Second event parameter. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int FreeEventParams( [In, MarshalAs( UnmanagedType.I4 )] DsEvCode lEvCode, IntPtr lParam1, IntPtr lParam2 ); + + /// + /// Registers a window to process event notifications. + /// + /// + /// Handle to the window, or to stop receiving event messages. + /// Window message to be passed as the notification. + /// Value to be passed as the lParam parameter for the lMsg message. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int SetNotifyWindow( IntPtr hwnd, int lMsg, IntPtr lInstanceData ); + + /// + /// Enables or disables event notifications. + /// + /// + /// Value indicating whether to enable or disable event notifications. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int SetNotifyFlags( int lNoNotifyFlags ); + + /// + /// Determines whether event notifications are enabled. + /// + /// + /// Variable that receives current notification status. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int GetNotifyFlags( out int lplNoNotifyFlags ); + } +} diff --git a/Sources/Video.DirectShow/Internals/IMediaFilter.cs b/Sources/Video.DirectShow/Internals/IMediaFilter.cs new file mode 100644 index 00000000..e4ca82ec --- /dev/null +++ b/Sources/Video.DirectShow/Internals/IMediaFilter.cs @@ -0,0 +1,102 @@ +// AForge Direct Show Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2010 +// andrew.kirillov@gmail.com +// +// Written by Jeremy Noring +// kidjan@gmail.com +// + +namespace AForge.Video.DirectShow.Internals +{ + using System; + using System.Runtime.InteropServices; + + /// + /// The interface provides methods for controlling the flow of data through the filter graph. + /// It includes methods for running, pausing, and stopping the graph. + /// + /// + [ComImport, System.Security.SuppressUnmanagedCodeSecurity, + Guid( "56a86899-0ad4-11ce-b03a-0020af0ba770" ), + InterfaceType( ComInterfaceType.InterfaceIsIUnknown )] + internal interface IMediaFilter : IPersist + { + #region IPersist Methods + + [PreserveSig] + new int GetClassID( + [Out] out Guid pClassID ); + + #endregion + + /// + /// This method informs the filter to transition to the new state. + /// + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int Stop( ); + + /// + /// This method informs the filter to transition to the new state. + /// + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int Pause( ); + + /// + /// This method informs the filter to transition to the new (running) state. Passes a time value to synchronize independent streams. + /// + /// + /// Time value of the reference clock. The amount to be added to the IMediaSample time stamp to determine the time at which that sample should be rendered according to the reference clock. That is, it is the reference time at which a sample with a stream time of zero should be rendered. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int Run( [In] long tStart ); + + /// + /// This method determines the filter's state. + /// + /// + /// Duration of the time-out, in milliseconds. To block indefinitely, pass INFINITE. + /// Returned state of the filter. States include stopped, paused, running, or intermediate (in the process of changing). + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int GetState( + [In] int dwMilliSecsTimeout, + [Out] out FilterState filtState ); + + /// + /// This method identifies the reference clock to which the filter should synchronize activity. + /// + /// + /// Pointer to the IReferenceClock interface. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int SetSyncSource( [In] IReferenceClock pClock ); + + /// + /// This method retrieves the current reference clock in use by this filter. + /// + /// + /// Pointer to a reference clock; it will be set to the IReferenceClock interface. + /// + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int GetSyncSource( [Out] out IReferenceClock pClock ); + } +} + diff --git a/Sources/Video.DirectShow/Internals/IPersist.cs b/Sources/Video.DirectShow/Internals/IPersist.cs new file mode 100644 index 00000000..4bf1d91f --- /dev/null +++ b/Sources/Video.DirectShow/Internals/IPersist.cs @@ -0,0 +1,32 @@ +// AForge Direct Show Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2010 +// andrew.kirillov@gmail.com +// +// Written by Jeremy Noring +// kidjan@gmail.com + +namespace AForge.Video.DirectShow.Internals +{ + using System; + using System.Runtime.InteropServices; + + /// + /// Provides the CLSID of an object that can be stored persistently in the system. Allows the object to specify which object + /// handler to use in the client process, as it is used in the default implementation of marshaling. + /// + [ComImport, + Guid("0000010c-0000-0000-C000-000000000046"), + InterfaceType(ComInterfaceType.InterfaceIsDual)] + internal interface IPersist + { + /// + /// Retrieves the class identifier (CLSID) of the object. + /// + /// + /// + [PreserveSig] + int GetClassID([Out] out Guid pClassID); + } +} diff --git a/Sources/Video.DirectShow/Internals/IPin.cs b/Sources/Video.DirectShow/Internals/IPin.cs new file mode 100644 index 00000000..ceed73f2 --- /dev/null +++ b/Sources/Video.DirectShow/Internals/IPin.cs @@ -0,0 +1,191 @@ +// AForge Direct Show Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2007 +// andrew.kirillov@gmail.com +// + +namespace AForge.Video.DirectShow.Internals +{ + using System; + using System.Runtime.InteropServices; + + /// + /// This interface is exposed by all input and output pins of DirectShow filters. + /// + /// + [ComImport, + Guid( "56A86891-0AD4-11CE-B03A-0020AF0BA770" ), + InterfaceType( ComInterfaceType.InterfaceIsIUnknown )] + internal interface IPin + { + /// + /// Connects the pin to another pin. + /// + /// + /// Other pin to connect to. + /// Type to use for the connections (optional). + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int Connect( [In] IPin receivePin, [In, MarshalAs( UnmanagedType.LPStruct )] AMMediaType mediaType ); + + /// + /// Makes a connection to this pin and is called by a connecting pin. + /// + /// + /// Connecting pin. + /// Media type of the samples to be streamed. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int ReceiveConnection( [In] IPin receivePin, [In, MarshalAs( UnmanagedType.LPStruct )] AMMediaType mediaType ); + + /// + /// Breaks the current pin connection. + /// + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int Disconnect( ); + + /// + /// Returns a pointer to the connecting pin. + /// + /// + /// Receives IPin interface of connected pin (if any). + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int ConnectedTo( [Out] out IPin pin ); + + /// + /// Returns the media type of this pin's connection. + /// + /// + /// Pointer to an structure. If the pin is connected, + /// the media type is returned. Otherwise, the structure is initialized to a default state in which + /// all elements are 0, with the exception of lSampleSize, which is set to 1, and + /// FixedSizeSamples, which is set to true. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int ConnectionMediaType( [Out, MarshalAs( UnmanagedType.LPStruct )] AMMediaType mediaType ); + + /// + /// Retrieves information about this pin (for example, the name, owning filter, and direction). + /// + /// + /// structure that receives the pin information. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int QueryPinInfo( [Out] out PinInfo pinInfo ); + + /// + /// Retrieves the direction for this pin. + /// + /// + /// Receives direction of the pin. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int QueryDirection( out PinDirection pinDirection ); + + /// + /// Retrieves an identifier for the pin. + /// + /// + /// Pin identifier. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int QueryId( [Out, MarshalAs( UnmanagedType.LPWStr )] out string id ); + + /// + /// Queries whether a given media type is acceptable by the pin. + /// + /// + /// structure that specifies the media type. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int QueryAccept( [In, MarshalAs( UnmanagedType.LPStruct )] AMMediaType mediaType ); + + /// + /// Provides an enumerator for this pin's preferred media types. + /// + /// + /// Address of a variable that receives a pointer to the IEnumMediaTypes interface. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int EnumMediaTypes( IntPtr enumerator ); + + /// + /// Provides an array of the pins to which this pin internally connects. + /// + /// + /// Address of an array of IPin pointers. + /// On input, specifies the size of the array. When the method returns, + /// the value is set to the number of pointers returned in the array. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int QueryInternalConnections( IntPtr apPin, [In, Out] ref int nPin ); + + /// + /// Notifies the pin that no additional data is expected. + /// + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int EndOfStream( ); + + /// + /// Begins a flush operation. + /// + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int BeginFlush( ); + + /// + /// Ends a flush operation. + /// + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int EndFlush( ); + + /// + /// Specifies that samples following this call are grouped as a segment with a given start time, stop time, and rate. + /// + /// + /// Start time of the segment, relative to the original source, in 100-nanosecond units. + /// End time of the segment, relative to the original source, in 100-nanosecond units. + /// Rate at which this segment should be processed, as a percentage of the original rate. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int NewSegment( + long start, + long stop, + double rate ); + } +} diff --git a/Sources/Video.DirectShow/Internals/IPropertyBag.cs b/Sources/Video.DirectShow/Internals/IPropertyBag.cs new file mode 100644 index 00000000..faea69d5 --- /dev/null +++ b/Sources/Video.DirectShow/Internals/IPropertyBag.cs @@ -0,0 +1,53 @@ +// AForge Direct Show Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2007 +// andrew.kirillov@gmail.com +// + +namespace AForge.Video.DirectShow.Internals +{ + using System; + using System.Runtime.InteropServices; + + /// + /// The IPropertyBag interface provides an object with a property bag in + /// which the object can persistently save its properties. + /// + /// + [ComImport, + Guid( "55272A00-42CB-11CE-8135-00AA004BB851" ), + InterfaceType( ComInterfaceType.InterfaceIsIUnknown )] + internal interface IPropertyBag + { + /// + /// Read a property from property bag. + /// + /// + /// Property name to read. + /// Property value. + /// Caller's error log. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int Read( + [In, MarshalAs( UnmanagedType.LPWStr )] string propertyName, + [In, Out, MarshalAs( UnmanagedType.Struct )] ref object pVar, + [In] IntPtr pErrorLog ); + + /// + /// Write property to property bag. + /// + /// + /// Property name to read. + /// Property value. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int Write( + [In, MarshalAs( UnmanagedType.LPWStr )] string propertyName, + [In, MarshalAs( UnmanagedType.Struct )] ref object pVar ); + } +} diff --git a/Sources/Video.DirectShow/Internals/IReferenceClock.cs b/Sources/Video.DirectShow/Internals/IReferenceClock.cs new file mode 100644 index 00000000..cb0328fa --- /dev/null +++ b/Sources/Video.DirectShow/Internals/IReferenceClock.cs @@ -0,0 +1,87 @@ +// AForge Direct Show Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2010 +// andrew.kirillov@gmail.com +// +// Written by Jeremy Noring +// kidjan@gmail.com +// + +namespace AForge.Video.DirectShow.Internals +{ + using System; + using System.Runtime.InteropServices; + + /// + /// The IReferenceClock interface provides the reference time for the filter graph. + /// + /// Filters that can act as a reference clock can expose this interface. It is also exposed by the System Reference Clock. + /// The filter graph manager uses this interface to synchronize the filter graph. Applications can use this interface to + /// retrieve the current reference time, or to request notification of an elapsed time. + /// + [ComImport, System.Security.SuppressUnmanagedCodeSecurity, + Guid( "56a86897-0ad4-11ce-b03a-0020af0ba770" ), + InterfaceType( ComInterfaceType.InterfaceIsIUnknown )] + internal interface IReferenceClock + { + /// + /// The GetTime method retrieves the current reference time. + /// + /// + /// Pointer to a variable that receives the current time, in 100-nanosecond units. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int GetTime( [Out] out long pTime ); + + /// + /// The AdviseTime method creates a one-shot advise request. + /// + /// + /// Base reference time, in 100-nanosecond units. See Remarks. + /// Stream offset time, in 100-nanosecond units. See Remarks. + /// Handle to an event, created by the caller. + /// Pointer to a variable that receives an identifier for the advise request. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int AdviseTime( + [In] long baseTime, + [In] long streamTime, + [In] IntPtr hEvent, + [Out] out int pdwAdviseCookie ); + + /// + /// The AdvisePeriodic method creates a periodic advise request. + /// + /// + /// Time of the first notification, in 100-nanosecond units. Must be greater than zero and less than MAX_TIME. + /// Time between notifications, in 100-nanosecond units. Must be greater than zero. + /// Handle to a semaphore, created by the caller. + /// Pointer to a variable that receives an identifier for the advise request. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int AdvisePeriodic( + [In] long startTime, + [In] long periodTime, + [In] IntPtr hSemaphore, + [Out] out int pdwAdviseCookie ); + + /// + /// The Unadvise method removes a pending advise request. + /// + /// + /// Identifier of the request to remove. Use the value returned by IReferenceClock::AdviseTime or IReferenceClock::AdvisePeriodic in the pdwAdviseToken parameter. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int Unadvise( [In] int dwAdviseCookie ); + } +} diff --git a/Sources/Video.DirectShow/Internals/ISampleGrabber.cs b/Sources/Video.DirectShow/Internals/ISampleGrabber.cs new file mode 100644 index 00000000..07854ac6 --- /dev/null +++ b/Sources/Video.DirectShow/Internals/ISampleGrabber.cs @@ -0,0 +1,103 @@ +// AForge Direct Show Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2007 +// andrew.kirillov@gmail.com +// + +namespace AForge.Video.DirectShow.Internals +{ + using System; + using System.Runtime.InteropServices; + + /// + /// The interface is exposed by the Sample Grabber Filter. It enables an application to retrieve + /// individual media samples as they move through the filter graph. + /// + /// + [ComImport, + Guid("6B652FFF-11FE-4FCE-92AD-0266B5D7C78F"), + InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] + internal interface ISampleGrabber + { + /// + /// Specifies whether the filter should stop the graph after receiving one sample. + /// + /// + /// Boolean value specifying whether the filter should stop the graph after receiving one sample. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int SetOneShot( [In, MarshalAs( UnmanagedType.Bool )] bool oneShot ); + + /// + /// Specifies the media type for the connection on the Sample Grabber's input pin. + /// + /// + /// Specifies the required media type. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int SetMediaType( [In, MarshalAs( UnmanagedType.LPStruct )] AMMediaType mediaType ); + + /// + /// Retrieves the media type for the connection on the Sample Grabber's input pin. + /// + /// + /// structure, which receives media type. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int GetConnectedMediaType( [Out, MarshalAs( UnmanagedType.LPStruct )] AMMediaType mediaType ); + + /// + /// Specifies whether to copy sample data into a buffer as it goes through the filter. + /// + /// + /// Boolean value specifying whether to buffer sample data. + /// If true, the filter copies sample data into an internal buffer. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int SetBufferSamples( [In, MarshalAs( UnmanagedType.Bool )] bool bufferThem ); + + /// + /// Retrieves a copy of the sample that the filter received most recently. + /// + /// + /// Pointer to the size of the buffer. If pBuffer is NULL, this parameter receives the required size. + /// Pointer to a buffer to receive a copy of the sample, or NULL. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int GetCurrentBuffer( ref int bufferSize, IntPtr buffer ); + + /// + /// Not currently implemented. + /// + /// + /// + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int GetCurrentSample( IntPtr sample ); + + /// + /// Specifies a callback method to call on incoming samples. + /// + /// + /// interface containing the callback method, or NULL to cancel the callback. + /// Index specifying the callback method. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int SetCallback( ISampleGrabberCB callback, int whichMethodToCallback ); + } +} diff --git a/Sources/Video.DirectShow/Internals/ISampleGrabberCB.cs b/Sources/Video.DirectShow/Internals/ISampleGrabberCB.cs new file mode 100644 index 00000000..4dc73401 --- /dev/null +++ b/Sources/Video.DirectShow/Internals/ISampleGrabberCB.cs @@ -0,0 +1,47 @@ +// AForge Direct Show Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2007 +// andrew.kirillov@gmail.com +// + +namespace AForge.Video.DirectShow.Internals +{ + using System; + using System.Runtime.InteropServices; + + /// + /// The interface provides callback methods for the method. + /// + /// + [ComImport, + Guid("0579154A-2B53-4994-B0D0-E773148EFF85"), + InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] + internal interface ISampleGrabberCB + { + /// + /// Callback method that receives a pointer to the media sample. + /// + /// + /// Starting time of the sample, in seconds. + /// Pointer to the sample's IMediaSample interface. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int SampleCB( double sampleTime, IntPtr sample ); + + /// + /// Callback method that receives a pointer to the sample bufferþ + /// + /// + /// Starting time of the sample, in seconds. + /// Pointer to a buffer that contains the sample data. + /// Length of the buffer pointed to by buffer, in bytes + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int BufferCB( double sampleTime, IntPtr buffer, int bufferLen ); + } +} diff --git a/Sources/Video.DirectShow/Internals/ISpecifyPropertyPages.cs b/Sources/Video.DirectShow/Internals/ISpecifyPropertyPages.cs new file mode 100644 index 00000000..ecb07392 --- /dev/null +++ b/Sources/Video.DirectShow/Internals/ISpecifyPropertyPages.cs @@ -0,0 +1,36 @@ +// AForge Direct Show Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2008 +// andrew.kirillov@gmail.com +// + +namespace AForge.Video.DirectShow.Internals +{ + using System; + using System.Runtime.InteropServices; + + /// + /// The interface indicates that an object supports property pages. + /// + /// + [ComImport, + Guid( "B196B28B-BAB4-101A-B69C-00AA00341D07" ), + InterfaceType( ComInterfaceType.InterfaceIsIUnknown )] + internal interface ISpecifyPropertyPages + { + /// + /// Fills a counted array of GUID values where each GUID specifies the + /// CLSID of each property page that can be displayed in the property + /// sheet for this object. + /// + /// + /// Pointer to a CAUUID structure that must be initialized + /// and filled before returning. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int GetPages( out CAUUID pPages ); + } +} diff --git a/Sources/Video.DirectShow/Internals/IVideoWindow.cs b/Sources/Video.DirectShow/Internals/IVideoWindow.cs new file mode 100644 index 00000000..25f3bfa1 --- /dev/null +++ b/Sources/Video.DirectShow/Internals/IVideoWindow.cs @@ -0,0 +1,466 @@ +// AForge Direct Show Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2007 +// andrew.kirillov@gmail.com +// + +namespace AForge.Video.DirectShow.Internals +{ + using System; + using System.Runtime.InteropServices; + + /// + /// The interface sets properties on the video window. + /// + /// + [ComImport, + Guid("56A868B4-0AD4-11CE-B03A-0020AF0BA770"), + InterfaceType(ComInterfaceType.InterfaceIsDual)] + internal interface IVideoWindow + { + /// + /// Sets the video window caption. + /// + /// + /// Caption. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int put_Caption( string caption ); + + /// + /// Retrieves the video window caption. + /// + /// + /// Caption. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int get_Caption( [Out] out string caption ); + + /// + /// Sets the window style on the video window. + /// + /// + /// Window style flags. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int put_WindowStyle( int windowStyle ); + + /// + /// Retrieves the window style on the video window. + /// + /// + /// Window style flags. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int get_WindowStyle( out int windowStyle ); + + /// + /// Sets the extended window style on the video window. + /// + /// + /// Window extended style flags. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int put_WindowStyleEx( int windowStyleEx ); + + /// + /// Retrieves the extended window style on the video window. + /// + /// + /// Window extended style flags. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int get_WindowStyleEx( out int windowStyleEx ); + + /// + /// Specifies whether the video renderer automatically shows the video window when it receives video data. + /// + /// + /// Specifies whether the video renderer automatically shows the video window. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int put_AutoShow( [In, MarshalAs( UnmanagedType.Bool )] bool autoShow ); + + /// + /// Queries whether the video renderer automatically shows the video window when it receives video data. + /// + /// + /// REceives window auto show flag. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int get_AutoShow( [Out, MarshalAs( UnmanagedType.Bool )] out bool autoShow ); + + /// + /// Shows, hides, minimizes, or maximizes the video window. + /// + /// + /// Window state. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int put_WindowState( int windowState ); + + /// + /// Queries whether the video window is visible, hidden, minimized, or maximized. + /// + /// + /// Window state. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int get_WindowState( out int windowState ); + + /// + /// Specifies whether the video window realizes its palette in the background. + /// + /// + /// Value that specifies whether the video renderer realizes it palette in the background. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int put_BackgroundPalette( [In, MarshalAs( UnmanagedType.Bool )] bool backgroundPalette ); + + /// + /// Queries whether the video window realizes its palette in the background. + /// + /// + /// Receives state of background palette flag. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int get_BackgroundPalette( [Out, MarshalAs( UnmanagedType.Bool )] out bool backgroundPalette ); + + /// + /// Shows or hides the video window. + /// + /// + /// Value that specifies whether to show or hide the window. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int put_Visible( [In, MarshalAs( UnmanagedType.Bool )] bool visible ); + + /// + /// Queries whether the video window is visible. + /// + /// + /// Visibility flag. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int get_Visible( [Out, MarshalAs( UnmanagedType.Bool )] out bool visible ); + + /// + /// Sets the video window's x-coordinate. + /// + /// + /// Specifies the x-coordinate, in pixels. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int put_Left( int left ); + + /// + /// Retrieves the video window's x-coordinate. + /// + /// + /// x-coordinate, in pixels. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int get_Left( out int left ); + + /// + /// Sets the width of the video window. + /// + /// + /// Specifies the width, in pixels. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int put_Width( int width ); + + /// + /// Retrieves the width of the video window. + /// + /// + /// Width, in pixels. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int get_Width( out int width ); + + /// + /// Sets the video window's y-coordinate. + /// + /// + /// Specifies the y-coordinate, in pixels. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int put_Top( int top ); + + /// + /// Retrieves the video window's y-coordinate. + /// + /// + /// y-coordinate, in pixels. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int get_Top( out int top ); + + /// + /// Sets the height of the video window. + /// + /// + /// Specifies the height, in pixels. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int put_Height( int height ); + + /// + /// Retrieves the height of the video window. + /// + /// + /// Height, in pixels. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int get_Height( out int height ); + + /// + /// Specifies a parent window for the video windowþ + /// + /// + /// Specifies a handle to the parent window. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int put_Owner( IntPtr owner ); + + /// + /// Retrieves the video window's parent window, if anyþ + /// + /// + /// Parent window's handle. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int get_Owner( out IntPtr owner ); + + /// + /// Specifies a window to receive mouse and keyboard messages from the video window. + /// + /// + /// Specifies a handle to the window. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int put_MessageDrain( IntPtr drain ); + + /// + /// Retrieves the window that receives mouse and keyboard messages from the video window, if any. + /// + /// + /// Window's handle. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int get_MessageDrain( out IntPtr drain ); + + /// + /// Retrieves the color that appears around the edges of the destination rectangle. + /// + /// + /// Border's color. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int get_BorderColor( out int color ); + + /// + /// Sets the color that appears around the edges of the destination rectangle. + /// + /// + /// Specifies the border color. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int put_BorderColor( int color ); + + /// + /// Queries whether the video renderer is in full-screen mode. + /// + /// + /// Full-screen mode. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int get_FullScreenMode( + [Out, MarshalAs( UnmanagedType.Bool )] out bool fullScreenMode ); + + /// + /// Enables or disables full-screen mode. + /// + /// + /// Boolean value that specifies whether to enable or disable full-screen mode. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int put_FullScreenMode( [In, MarshalAs( UnmanagedType.Bool )] bool fullScreenMode ); + + /// + /// Places the video window at the top of the Z order. + /// + /// + /// Value that specifies whether to give the window focus. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int SetWindowForeground( int focus ); + + /// + /// Forwards a message to the video window. + /// + /// + /// Handle to the window. + /// Specifies the message. + /// Message parameter. + /// Message parameter. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int NotifyOwnerMessage( IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam ); + + /// + /// Sets the position of the video windowþ + /// + /// + /// Specifies the x-coordinate, in pixels. + /// Specifies the y-coordinate, in pixels. + /// Specifies the width, in pixels. + /// Specifies the height, in pixels. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int SetWindowPosition( int left, int top, int width, int height ); + + /// + /// Retrieves the position of the video window. + /// + /// + /// x-coordinate, in pixels. + /// y-coordinate, in pixels. + /// Width, in pixels. + /// Height, in pixels. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int GetWindowPosition( out int left, out int top, out int width, out int height ); + + /// + /// Retrieves the minimum ideal size for the video image. + /// + /// + /// Receives the minimum ideal width, in pixels. + /// Receives the minimum ideal height, in pixels. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int GetMinIdealImageSize( out int width, out int height ); + + /// + /// Retrieves the maximum ideal size for the video image. + /// + /// + /// Receives the maximum ideal width, in pixels. + /// Receives the maximum ideal height, in pixels. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int GetMaxIdealImageSize( out int width, out int height ); + + /// + /// Retrieves the restored window position. + /// + /// + /// x-coordinate, in pixels. + /// y-coordinate, in pixels. + /// Width, in pixels. + /// Height, in pixels. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int GetRestorePosition( out int left, out int top, out int width, out int height ); + + /// + /// Hides the cursor. + /// + /// + /// Specifies whether to hide or display the cursor. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int HideCursor( [In, MarshalAs( UnmanagedType.Bool )] bool hideCursor ); + + /// + /// Queries whether the cursor is hidden. + /// + /// + /// Specifies if cursor is hidden or not. + /// + /// Return's HRESULT error code. + /// + [PreserveSig] + int IsCursorHidden( [Out, MarshalAs( UnmanagedType.Bool )] out bool hideCursor ); + } +} diff --git a/Sources/Video.DirectShow/Internals/Structures.cs b/Sources/Video.DirectShow/Internals/Structures.cs new file mode 100644 index 00000000..530283c3 --- /dev/null +++ b/Sources/Video.DirectShow/Internals/Structures.cs @@ -0,0 +1,518 @@ +// AForge Direct Show Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2009-2013 +// contacts@aforgenet.com +// + +namespace AForge.Video.DirectShow.Internals +{ + using System; + using System.Runtime.InteropServices; + using System.Drawing; + + // PIN_DIRECTION + + /// + /// This enumeration indicates a pin's direction. + /// + /// + [ComVisible( false )] + internal enum PinDirection + { + /// + /// Input pin. + /// + Input, + + /// + /// Output pin. + /// + Output + } + + // AM_MEDIA_TYPE + + /// + /// The structure describes the format of a media sample. + /// + /// + [ComVisible( false ), + StructLayout( LayoutKind.Sequential )] + internal class AMMediaType : IDisposable + { + /// + /// Globally unique identifier (GUID) that specifies the major type of the media sample. + /// + public Guid MajorType; + + /// + /// GUID that specifies the subtype of the media sample. + /// + public Guid SubType; + + /// + /// If true, samples are of a fixed size. + /// + [MarshalAs( UnmanagedType.Bool )] + public bool FixedSizeSamples = true; + + /// + /// If true, samples are compressed using temporal (interframe) compression. + /// + [MarshalAs( UnmanagedType.Bool )] + public bool TemporalCompression; + + /// + /// Size of the sample in bytes. For compressed data, the value can be zero. + /// + public int SampleSize = 1; + + /// + /// GUID that specifies the structure used for the format block. + /// + public Guid FormatType; + + /// + /// Not used. + /// + public IntPtr unkPtr; + + /// + /// Size of the format block, in bytes. + /// + public int FormatSize; + + /// + /// Pointer to the format block. + /// + public IntPtr FormatPtr; + + /// + /// Destroys the instance of the class. + /// + /// + ~AMMediaType( ) + { + Dispose( false ); + } + + /// + /// Dispose the object. + /// + /// + public void Dispose( ) + { + Dispose( true ); + // remove me from the Finalization queue + GC.SuppressFinalize( this ); + } + + /// + /// Dispose the object + /// + /// + /// Indicates if disposing was initiated manually. + /// + protected virtual void Dispose( bool disposing ) + { + if ( ( FormatSize != 0 ) && ( FormatPtr != IntPtr.Zero ) ) + { + Marshal.FreeCoTaskMem( FormatPtr ); + FormatSize = 0; + } + + if ( unkPtr != IntPtr.Zero ) + { + Marshal.Release( unkPtr ); + unkPtr = IntPtr.Zero; + } + } + } + + + // PIN_INFO + + /// + /// The structure contains information about a pin. + /// + /// + [ComVisible( false ), + StructLayout( LayoutKind.Sequential, Pack = 1, CharSet = CharSet.Unicode )] + internal struct PinInfo + { + /// + /// Owning filter. + /// + public IBaseFilter Filter; + + /// + /// Direction of the pin. + /// + public PinDirection Direction; + + /// + /// Name of the pin. + /// + [MarshalAs( UnmanagedType.ByValTStr, SizeConst = 128 )] + public string Name; + } + + // FILTER_INFO + [ComVisible( false ), + StructLayout( LayoutKind.Sequential, Pack = 1, CharSet = CharSet.Unicode )] + internal struct FilterInfo + { + /// + /// Filter's name. + /// + [MarshalAs( UnmanagedType.ByValTStr, SizeConst = 128 )] + public string Name; + + /// + /// Owning graph. + /// + public IFilterGraph FilterGraph; + } + + // VIDEOINFOHEADER + + /// + /// The structure describes the bitmap and color information for a video image. + /// + /// + [ComVisible( false ), + StructLayout( LayoutKind.Sequential )] + internal struct VideoInfoHeader + { + /// + /// structure that specifies the source video window. + /// + public RECT SrcRect; + + /// + /// structure that specifies the destination video window. + /// + public RECT TargetRect; + + /// + /// Approximate data rate of the video stream, in bits per second. + /// + public int BitRate; + + /// + /// Data error rate, in bit errors per second. + /// + public int BitErrorRate; + + /// + /// The desired average display time of the video frames, in 100-nanosecond units. + /// + public long AverageTimePerFrame; + + /// + /// structure that contains color and dimension information for the video image bitmap. + /// + public BitmapInfoHeader BmiHeader; + } + + // VIDEOINFOHEADER2 + + /// + /// The structure describes the bitmap and color information for a video image (v2). + /// + /// + [ComVisible( false ), + StructLayout( LayoutKind.Sequential )] + internal struct VideoInfoHeader2 + { + /// + /// structure that specifies the source video window. + /// + public RECT SrcRect; + + /// + /// structure that specifies the destination video window. + /// + public RECT TargetRect; + + /// + /// Approximate data rate of the video stream, in bits per second. + /// + public int BitRate; + + /// + /// Data error rate, in bit errors per second. + /// + public int BitErrorRate; + + /// + /// The desired average display time of the video frames, in 100-nanosecond units. + /// + public long AverageTimePerFrame; + + /// + /// Flags that specify how the video is interlaced. + /// + public int InterlaceFlags; + + /// + /// Flag set to indicate that the duplication of the stream should be restricted. + /// + public int CopyProtectFlags; + + /// + /// The X dimension of picture aspect ratio. + /// + public int PictAspectRatioX; + + /// + /// The Y dimension of picture aspect ratio. + /// + public int PictAspectRatioY; + + /// + /// Reserved for future use. + /// + public int Reserved1; + + /// + /// Reserved for future use. + /// + public int Reserved2; + + /// + /// structure that contains color and dimension information for the video image bitmap. + /// + public BitmapInfoHeader BmiHeader; + } + + /// + /// The structure contains information about the dimensions and color format of a device-independent bitmap (DIB). + /// + /// + [ComVisible( false ), + StructLayout( LayoutKind.Sequential, Pack = 2 )] + internal struct BitmapInfoHeader + { + /// + /// Specifies the number of bytes required by the structure. + /// + public int Size; + + /// + /// Specifies the width of the bitmap. + /// + public int Width; + + /// + /// Specifies the height of the bitmap, in pixels. + /// + public int Height; + + /// + /// Specifies the number of planes for the target device. This value must be set to 1. + /// + public short Planes; + + /// + /// Specifies the number of bits per pixel. + /// + public short BitCount; + + /// + /// If the bitmap is compressed, this member is a FOURCC the specifies the compression. + /// + public int Compression; + + /// + /// Specifies the size, in bytes, of the image. + /// + public int ImageSize; + + /// + /// Specifies the horizontal resolution, in pixels per meter, of the target device for the bitmap. + /// + public int XPelsPerMeter; + + /// + /// Specifies the vertical resolution, in pixels per meter, of the target device for the bitmap. + /// + public int YPelsPerMeter; + + /// + /// Specifies the number of color indices in the color table that are actually used by the bitmap. + /// + public int ColorsUsed; + + /// + /// Specifies the number of color indices that are considered important for displaying the bitmap. + /// + public int ColorsImportant; + } + + // RECT + + /// + /// The structure defines the coordinates of the upper-left and lower-right corners of a rectangle. + /// + /// + [ComVisible( false ), + StructLayout( LayoutKind.Sequential )] + internal struct RECT + { + /// + /// Specifies the x-coordinate of the upper-left corner of the rectangle. + /// + public int Left; + + /// + /// Specifies the y-coordinate of the upper-left corner of the rectangle. + /// + public int Top; + + /// + /// Specifies the x-coordinate of the lower-right corner of the rectangle. + /// + public int Right; + + /// + /// Specifies the y-coordinate of the lower-right corner of the rectangle. + /// + public int Bottom; + } + + // CAUUID + + /// + /// The CAUUID structure is a Counted Array of UUID or GUID types. + /// + /// + [ComVisible( false ), + StructLayout( LayoutKind.Sequential )] + internal struct CAUUID + { + /// + /// Size of the array pointed to by pElems. + /// + public int cElems; + + /// + /// Pointer to an array of UUID values, each of which specifies UUID. + /// + public IntPtr pElems; + + /// + /// Performs manual marshaling of pElems to retrieve an array of Guid objects. + /// + /// + /// A managed representation of pElems. + /// + public Guid[] ToGuidArray( ) + { + Guid[] retval = new Guid[cElems]; + + for ( int i = 0; i < cElems; i++ ) + { + IntPtr ptr = new IntPtr( pElems.ToInt64( ) + i * Marshal.SizeOf( typeof( Guid ) ) ); + retval[i] = (Guid) Marshal.PtrToStructure( ptr, typeof( Guid ) ); + } + + return retval; + } + } + + /// + /// Enumeration of DirectShow event codes. + /// + internal enum DsEvCode + { + None, + Complete = 0x01, // EC_COMPLETE + DeviceLost = 0x1F, // EC_DEVICE_LOST + //(...) not yet interested in other events + } + + [Flags, ComVisible( false )] + internal enum AnalogVideoStandard + { + None = 0x00000000, // This is a digital sensor + NTSC_M = 0x00000001, // 75 IRE Setup + NTSC_M_J = 0x00000002, // Japan, 0 IRE Setup + NTSC_433 = 0x00000004, + PAL_B = 0x00000010, + PAL_D = 0x00000020, + PAL_G = 0x00000040, + PAL_H = 0x00000080, + PAL_I = 0x00000100, + PAL_M = 0x00000200, + PAL_N = 0x00000400, + PAL_60 = 0x00000800, + SECAM_B = 0x00001000, + SECAM_D = 0x00002000, + SECAM_G = 0x00004000, + SECAM_H = 0x00008000, + SECAM_K = 0x00010000, + SECAM_K1 = 0x00020000, + SECAM_L = 0x00040000, + SECAM_L1 = 0x00080000, + PAL_N_COMBO = 0x00100000 // Argentina + } + + [Flags, ComVisible( false )] + internal enum VideoControlFlags + { + FlipHorizontal = 0x0001, + FlipVertical = 0x0002, + ExternalTriggerEnable = 0x0004, + Trigger = 0x0008 + } + + [StructLayout( LayoutKind.Sequential ), ComVisible( false )] + internal class VideoStreamConfigCaps // VIDEO_STREAM_CONFIG_CAPS + { + public Guid Guid; + public AnalogVideoStandard VideoStandard; + public Size InputSize; + public Size MinCroppingSize; + public Size MaxCroppingSize; + public int CropGranularityX; + public int CropGranularityY; + public int CropAlignX; + public int CropAlignY; + public Size MinOutputSize; + public Size MaxOutputSize; + public int OutputGranularityX; + public int OutputGranularityY; + public int StretchTapsX; + public int StretchTapsY; + public int ShrinkTapsX; + public int ShrinkTapsY; + public long MinFrameInterval; + public long MaxFrameInterval; + public int MinBitsPerSecond; + public int MaxBitsPerSecond; + } + + /// + /// Specifies a filter's state or the state of the filter graph. + /// + internal enum FilterState + { + /// + /// Stopped. The filter is not processing data. + /// + State_Stopped, + + /// + /// Paused. The filter is processing data, but not rendering it. + /// + State_Paused, + + /// + /// Running. The filter is processing and rendering data. + /// + State_Running + } +} diff --git a/Sources/Video.DirectShow/Internals/Tools.cs b/Sources/Video.DirectShow/Internals/Tools.cs new file mode 100644 index 00000000..0c9cc84a --- /dev/null +++ b/Sources/Video.DirectShow/Internals/Tools.cs @@ -0,0 +1,95 @@ +// AForge Direct Show Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2007 +// andrew.kirillov@gmail.com +// + +namespace AForge.Video.DirectShow.Internals +{ + using System; + using System.Runtime.InteropServices; + + /// + /// Some miscellaneous functions. + /// + /// + internal static class Tools + { + /// + /// Get filter's pin. + /// + /// + /// Filter to get pin of. + /// Pin's direction. + /// Pin's number. + /// + /// Returns filter's pin. + /// + public static IPin GetPin( IBaseFilter filter, PinDirection dir, int num ) + { + IPin[] pin = new IPin[1]; + IEnumPins pinsEnum = null; + + // enum filter pins + if ( filter.EnumPins( out pinsEnum ) == 0 ) + { + PinDirection pinDir; + int n; + + try + { + // get next pin + while ( pinsEnum.Next( 1, pin, out n ) == 0 ) + { + // query pin`s direction + pin[0].QueryDirection( out pinDir ); + + if ( pinDir == dir ) + { + if ( num == 0 ) + return pin[0]; + num--; + } + + Marshal.ReleaseComObject( pin[0] ); + pin[0] = null; + } + } + finally + { + Marshal.ReleaseComObject( pinsEnum ); + } + } + return null; + } + + /// + /// Get filter's input pin. + /// + /// + /// Filter to get pin of. + /// Pin's number. + /// + /// Returns filter's pin. + /// + public static IPin GetInPin( IBaseFilter filter, int num ) + { + return GetPin( filter, PinDirection.Input, num ); + } + + /// + /// Get filter's output pin. + /// + /// + /// Filter to get pin of. + /// Pin's number. + /// + /// Returns filter's pin. + /// + public static IPin GetOutPin( IBaseFilter filter, int num ) + { + return GetPin( filter, PinDirection.Output, num ); + } + } +} diff --git a/Sources/Video.DirectShow/Internals/Uuids.cs b/Sources/Video.DirectShow/Internals/Uuids.cs new file mode 100644 index 00000000..8dc18745 --- /dev/null +++ b/Sources/Video.DirectShow/Internals/Uuids.cs @@ -0,0 +1,299 @@ +// AForge Direct Show Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2009-2013 +// contacts@aforgenet.com +// + +namespace AForge.Video.DirectShow.Internals +{ + using System; + using System.Runtime.InteropServices; + + /// + /// DirectShow class IDs. + /// + [ComVisible( false )] + static internal class Clsid + { + /// + /// System device enumerator. + /// + /// + /// Equals to CLSID_SystemDeviceEnum. + /// + public static readonly Guid SystemDeviceEnum = + new Guid( 0x62BE5D10, 0x60EB, 0x11D0, 0xBD, 0x3B, 0x00, 0xA0, 0xC9, 0x11, 0xCE, 0x86 ); + + /// + /// Filter graph. + /// + /// + /// Equals to CLSID_FilterGraph. + /// + public static readonly Guid FilterGraph = + new Guid( 0xE436EBB3, 0x524F, 0x11CE, 0x9F, 0x53, 0x00, 0x20, 0xAF, 0x0B, 0xA7, 0x70 ); + + /// + /// Sample grabber. + /// + /// + /// Equals to CLSID_SampleGrabber. + /// + public static readonly Guid SampleGrabber = + new Guid( 0xC1F400A0, 0x3F08, 0x11D3, 0x9F, 0x0B, 0x00, 0x60, 0x08, 0x03, 0x9E, 0x37 ); + + /// + /// Capture graph builder. + /// + /// + /// Equals to CLSID_CaptureGraphBuilder2. + /// + public static readonly Guid CaptureGraphBuilder2 = + new Guid( 0xBF87B6E1, 0x8C27, 0x11D0, 0xB3, 0xF0, 0x00, 0xAA, 0x00, 0x37, 0x61, 0xC5 ); + + /// + /// Async reader. + /// + /// + /// Equals to CLSID_AsyncReader. + /// + public static readonly Guid AsyncReader = + new Guid( 0xE436EBB5, 0x524F, 0x11CE, 0x9F, 0x53, 0x00, 0x20, 0xAF, 0x0B, 0xA7, 0x70 ); + } + + /// + /// DirectShow format types. + /// + /// + [ComVisible( false )] + static internal class FormatType + { + /// + /// VideoInfo. + /// + /// + /// Equals to FORMAT_VideoInfo. + /// + public static readonly Guid VideoInfo = + new Guid( 0x05589F80, 0xC356, 0x11CE, 0xBF, 0x01, 0x00, 0xAA, 0x00, 0x55, 0x59, 0x5A ); + + /// + /// VideoInfo2. + /// + /// + /// Equals to FORMAT_VideoInfo2. + /// + public static readonly Guid VideoInfo2 = + new Guid( 0xf72A76A0, 0xEB0A, 0x11D0, 0xAC, 0xE4, 0x00, 0x00, 0xC0, 0xCC, 0x16, 0xBA ); + } + + /// + /// DirectShow media types. + /// + /// + [ComVisible( false )] + static internal class MediaType + { + /// + /// Video. + /// + /// + /// Equals to MEDIATYPE_Video. + /// + public static readonly Guid Video = + new Guid( 0x73646976, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71 ); + + /// + /// Interleaved. Used by Digital Video (DV). + /// + /// + /// Equals to MEDIATYPE_Interleaved. + /// + public static readonly Guid Interleaved = + new Guid( 0x73766169, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71 ); + + /// + /// Audio. + /// + /// + /// Equals to MEDIATYPE_Audio. + /// + public static readonly Guid Audio = + new Guid( 0x73647561, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71 ); + + /// + /// Text. + /// + /// + /// Equals to MEDIATYPE_Text. + /// + public static readonly Guid Text = + new Guid( 0x73747874, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71 ); + + /// + /// Byte stream with no time stamps. + /// + /// + /// Equals to MEDIATYPE_Stream. + /// + public static readonly Guid Stream = + new Guid( 0xE436EB83, 0x524F, 0x11CE, 0x9F, 0x53, 0x00, 0x20, 0xAF, 0x0B, 0xA7, 0x70 ); + } + + /// + /// DirectShow media subtypes. + /// + /// + [ComVisible( false )] + static internal class MediaSubType + { + /// + /// YUY2 (packed 4:2:2). + /// + /// + /// Equals to MEDIASUBTYPE_YUYV. + /// + public static readonly Guid YUYV = + new Guid( 0x56595559, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71 ); + + /// + /// IYUV. + /// + /// + /// Equals to MEDIASUBTYPE_IYUV. + /// + public static readonly Guid IYUV = + new Guid( 0x56555949, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71 ); + + /// + /// A DV encoding format. (FOURCC 'DVSD') + /// + /// + /// Equals to MEDIASUBTYPE_DVSD. + /// + public static readonly Guid DVSD = + new Guid( 0x44535644, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xAA, 0x00, 0x38, 0x9B, 0x71 ); + + /// + /// RGB, 1 bit per pixel (bpp), palettized. + /// + /// + /// Equals to MEDIASUBTYPE_RGB1. + /// + public static readonly Guid RGB1 = + new Guid( 0xE436EB78, 0x524F, 0x11CE, 0x9F, 0x53, 0x00, 0x20, 0xAF, 0x0B, 0xA7, 0x70 ); + + /// + /// RGB, 4 bpp, palettized. + /// + /// + /// Equals to MEDIASUBTYPE_RGB4. + /// + public static readonly Guid RGB4 = + new Guid( 0xE436EB79, 0x524F, 0x11CE, 0x9F, 0x53, 0x00, 0x20, 0xAF, 0x0B, 0xA7, 0x70 ); + + /// + /// RGB, 8 bpp. + /// + /// + /// Equals to MEDIASUBTYPE_RGB8. + /// + public static readonly Guid RGB8 = + new Guid( 0xE436EB7A, 0x524F, 0x11CE, 0x9F, 0x53, 0x00, 0x20, 0xAF, 0x0B, 0xA7, 0x70 ); + + /// + /// RGB 565, 16 bpp. + /// + /// + /// Equals to MEDIASUBTYPE_RGB565. + /// + public static readonly Guid RGB565 = + new Guid( 0xE436EB7B, 0x524F, 0x11CE, 0x9F, 0x53, 0x00, 0x20, 0xAF, 0x0B, 0xA7, 0x70 ); + + /// + /// RGB 555, 16 bpp. + /// + /// + /// Equals to MEDIASUBTYPE_RGB555. + /// + public static readonly Guid RGB555 = + new Guid( 0xE436EB7C, 0x524F, 0x11CE, 0x9F, 0x53, 0x00, 0x20, 0xAF, 0x0B, 0xA7, 0x70 ); + + /// + /// RGB, 24 bpp. + /// + /// + /// Equals to MEDIASUBTYPE_RGB24. + /// + public static readonly Guid RGB24 = + new Guid( 0xE436Eb7D, 0x524F, 0x11CE, 0x9F, 0x53, 0x00, 0x20, 0xAF, 0x0B, 0xA7, 0x70 ); + + /// + /// RGB, 32 bpp, no alpha channel. + /// + /// + /// Equals to MEDIASUBTYPE_RGB32. + /// + public static readonly Guid RGB32 = + new Guid( 0xE436EB7E, 0x524F, 0x11CE, 0x9F, 0x53, 0x00, 0x20, 0xAF, 0x0B, 0xA7, 0x70 ); + + /// + /// Data from AVI file. + /// + /// + /// Equals to MEDIASUBTYPE_Avi. + /// + public static readonly Guid Avi = + new Guid( 0xE436EB88, 0x524F, 0x11CE, 0x9F, 0x53, 0x00, 0x20, 0xAF, 0x0B, 0xA7, 0x70 ); + + /// + /// Advanced Streaming Format (ASF). + /// + /// + /// Equals to MEDIASUBTYPE_Asf. + /// + public static readonly Guid Asf = + new Guid( 0x3DB80F90, 0x9412, 0x11D1, 0xAD, 0xED, 0x00, 0x00, 0xF8, 0x75, 0x4B, 0x99 ); + } + + /// + /// DirectShow pin categories. + /// + /// + [ComVisible( false )] + static internal class PinCategory + { + /// + /// Capture pin. + /// + /// + /// Equals to PIN_CATEGORY_CAPTURE. + /// + public static readonly Guid Capture = + new Guid( 0xFB6C4281, 0x0353, 0x11D1, 0x90, 0x5F, 0x00, 0x00, 0xC0, 0xCC, 0x16, 0xBA ); + + /// + /// Still image pin. + /// + /// + /// Equals to PIN_CATEGORY_STILL. + /// + public static readonly Guid StillImage = + new Guid( 0xFB6C428A, 0x0353, 0x11D1, 0x90, 0x5F, 0x00, 0x00, 0xC0, 0xCC, 0x16, 0xBA ); + } + + // Below GUIDs are used by ICaptureGraphBuilder::FindInterface(). + [ComVisible( false )] + static internal class FindDirection + { + /// Equals to LOOK_UPSTREAM_ONLY. + public static readonly Guid UpstreamOnly = + new Guid( 0xAC798BE0, 0x98E3, 0x11D1, 0xB3, 0xF1, 0x00, 0xAA, 0x00, 0x37, 0x61, 0xC5 ); + + /// Equals to LOOK_DOWNSTREAM_ONLY. + public static readonly Guid DownstreamOnly = + new Guid( 0xAC798BE1, 0x98E3, 0x11D1, 0xB3, 0xF1, 0x00, 0xAA, 0x00, 0x37, 0x61, 0xC5 ); + } +} diff --git a/Sources/Video.DirectShow/Internals/Win32.cs b/Sources/Video.DirectShow/Internals/Win32.cs new file mode 100644 index 00000000..73d2e909 --- /dev/null +++ b/Sources/Video.DirectShow/Internals/Win32.cs @@ -0,0 +1,102 @@ +// AForge Video for Windows Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2011 +// contacts@aforgenet.com +// + +namespace AForge.Video.DirectShow.Internals +{ + using System; + using System.Runtime.InteropServices; + using System.Runtime.InteropServices.ComTypes; + + /// + /// Some Win32 API used internally. + /// + /// + internal static class Win32 + { + /// + /// Supplies a pointer to an implementation of IBindCtx (a bind context object). + /// This object stores information about a particular moniker-binding operation. + /// + /// + /// Reserved for future use; must be zero. + /// Address of IBindCtx* pointer variable that receives the + /// interface pointer to the new bind context object. + /// + /// Returns S_OK on success. + /// + [DllImport( "ole32.dll" )] + public static extern + int CreateBindCtx( int reserved, out IBindCtx ppbc ); + + /// + /// Converts a string into a moniker that identifies the object named by the string. + /// + /// + /// Pointer to the IBindCtx interface on the bind context object to be used in this binding operation. + /// Pointer to a zero-terminated wide character string containing the display name to be parsed. + /// Pointer to the number of characters of szUserName that were consumed. + /// Address of IMoniker* pointer variable that receives the interface pointer + /// to the moniker that was built from szUserName. + /// + /// Returns S_OK on success. + /// + [DllImport( "ole32.dll", CharSet = CharSet.Unicode )] + public static extern + int MkParseDisplayName( IBindCtx pbc, string szUserName, + ref int pchEaten, out IMoniker ppmk ); + + /// + /// Copy a block of memory. + /// + /// + /// Destination pointer. + /// Source pointer. + /// Memory block's length to copy. + /// + /// Return's the value of dst - pointer to destination. + /// + [DllImport( "ntdll.dll", CallingConvention = CallingConvention.Cdecl )] + public static unsafe extern int memcpy( + byte* dst, + byte* src, + int count ); + + /// + /// Invokes a new property frame, that is, a property sheet dialog box. + /// + /// + /// Parent window of property sheet dialog box. + /// Horizontal position for dialog box. + /// Vertical position for dialog box. + /// Dialog box caption. + /// Number of object pointers in ppUnk. + /// Pointer to the objects for property sheet. + /// Number of property pages in lpPageClsID. + /// Array of CLSIDs for each property page. + /// Locale identifier for property sheet locale. + /// Reserved. + /// Reserved. + /// + /// Returns S_OK on success. + /// + [DllImport( "oleaut32.dll" )] + public static extern int OleCreatePropertyFrame( + IntPtr hwndOwner, + int x, + int y, + [MarshalAs( UnmanagedType.LPWStr )] string caption, + int cObjects, + [MarshalAs( UnmanagedType.Interface, ArraySubType = UnmanagedType.IUnknown )] + ref object ppUnk, + int cPages, + IntPtr lpPageClsID, + int lcid, + int dwReserved, + IntPtr lpvReserved ); + } +} diff --git a/Sources/Video.DirectShow/PhysicalConnectorType.cs b/Sources/Video.DirectShow/PhysicalConnectorType.cs new file mode 100644 index 00000000..365a7c3c --- /dev/null +++ b/Sources/Video.DirectShow/PhysicalConnectorType.cs @@ -0,0 +1,123 @@ +// AForge Direct Show Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2009-2012 +// contacts@aforgenet.com +// + +namespace AForge.Video.DirectShow +{ + /// + /// Specifies the physical type of pin (audio or video). + /// + public enum PhysicalConnectorType + { + /// + /// Default value of connection type. Physically it does not exist, but just either to specify that + /// connection type should not be changed (input) or was not determined (output). + /// + Default = 0, + /// + /// Specifies a tuner pin for video. + /// + VideoTuner = 1, + /// + /// Specifies a composite pin for video. + /// + VideoComposite, + /// + /// Specifies an S-Video (Y/C video) pin. + /// + VideoSVideo, + /// + /// Specifies an RGB pin for video. + /// + VideoRGB, + /// + /// Specifies a YRYBY (Y, R–Y, B–Y) pin for video. + /// + VideoYRYBY, + /// + /// Specifies a serial digital pin for video. + /// + VideoSerialDigital, + /// + /// Specifies a parallel digital pin for video. + /// + VideoParallelDigital, + /// + /// Specifies a SCSI (Small Computer System Interface) pin for video. + /// + VideoSCSI, + /// + /// Specifies an AUX (auxiliary) pin for video. + /// + VideoAUX, + /// + /// Specifies an IEEE 1394 pin for video. + /// + Video1394, + /// + /// Specifies a USB (Universal Serial Bus) pin for video. + /// + VideoUSB, + /// + /// Specifies a video decoder pin. + /// + VideoDecoder, + /// + /// Specifies a video encoder pin. + /// + VideoEncoder, + /// + /// Specifies a SCART (Peritel) pin for video. + /// + VideoSCART, + /// + /// Not used. + /// + VideoBlack, + + /// + /// Specifies a tuner pin for audio. + /// + AudioTuner = 4096, + /// + /// Specifies a line pin for audio. + /// + AudioLine, + /// + /// Specifies a microphone pin. + /// + AudioMic, + /// + /// Specifies an AES/EBU (Audio Engineering Society/European Broadcast Union) digital pin for audio. + /// + AudioAESDigital, + /// + /// Specifies an S/PDIF (Sony/Philips Digital Interface Format) digital pin for audio. + /// + AudioSPDIFDigital, + /// + /// Specifies a SCSI pin for audio. + /// + AudioSCSI, + /// + /// Specifies an AUX pin for audio. + /// + AudioAUX, + /// + /// Specifies an IEEE 1394 pin for audio. + /// + Audio1394, + /// + /// Specifies a USB pin for audio. + /// + AudioUSB, + /// + /// Specifies an audio decoder pin. + /// + AudioDecoder + } +} diff --git a/Sources/Video.DirectShow/Properties/AssemblyInfo.cs b/Sources/Video.DirectShow/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..31db55d7 --- /dev/null +++ b/Sources/Video.DirectShow/Properties/AssemblyInfo.cs @@ -0,0 +1,35 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle( "AForge.Video.DirectShow" )] +[assembly: AssemblyDescription( "" )] +[assembly: AssemblyConfiguration( "" )] +[assembly: AssemblyCompany( "AForge" )] +[assembly: AssemblyProduct( "AForge.NET" )] +[assembly: AssemblyCopyright( "AForge © 2012" )] +[assembly: AssemblyTrademark( "" )] +[assembly: AssemblyCulture( "" )] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible( false )] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid( "0b92679b-69da-4c6c-935c-7df7ae8bec84" )] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion( "2.2.5.0" )] +[assembly: AssemblyFileVersion( "2.2.5.0" )] diff --git a/Sources/Video.DirectShow/Properties/Resources.Designer.cs b/Sources/Video.DirectShow/Properties/Resources.Designer.cs new file mode 100644 index 00000000..21c49ecb --- /dev/null +++ b/Sources/Video.DirectShow/Properties/Resources.Designer.cs @@ -0,0 +1,70 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.4214 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace AForge.Video.DirectShow.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("AForge.Video.DirectShow.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + internal static System.Drawing.Bitmap camera { + get { + object obj = ResourceManager.GetObject("camera", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/Sources/Video.DirectShow/Properties/Resources.resx b/Sources/Video.DirectShow/Properties/Resources.resx new file mode 100644 index 00000000..24fdc6b6 --- /dev/null +++ b/Sources/Video.DirectShow/Properties/Resources.resx @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + ..\Icons\camera.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/Sources/Video.DirectShow/Uuids.cs b/Sources/Video.DirectShow/Uuids.cs new file mode 100644 index 00000000..3256fedc --- /dev/null +++ b/Sources/Video.DirectShow/Uuids.cs @@ -0,0 +1,55 @@ +// AForge Direct Show Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2008 +// andrew.kirillov@gmail.com +// + +namespace AForge.Video.DirectShow +{ + using System; + using System.Runtime.InteropServices; + + /// + /// DirectShow filter categories. + /// + [ComVisible( false )] + public static class FilterCategory + { + /// + /// Audio input device category. + /// + /// + /// Equals to CLSID_AudioInputDeviceCategory. + /// + public static readonly Guid AudioInputDevice = + new Guid( 0x33D9A762, 0x90C8, 0x11D0, 0xBD, 0x43, 0x00, 0xA0, 0xC9, 0x11, 0xCE, 0x86 ); + + /// + /// Video input device category. + /// + /// + /// Equals to CLSID_VideoInputDeviceCategory. + /// + public static readonly Guid VideoInputDevice = + new Guid( 0x860BB310, 0x5D01, 0x11D0, 0xBD, 0x3B, 0x00, 0xA0, 0xC9, 0x11, 0xCE, 0x86 ); + + /// + /// Video compressor category. + /// + /// + /// Equals to CLSID_VideoCompressorCategory. + /// + public static readonly Guid VideoCompressorCategory = + new Guid( 0x33D9A760, 0x90C8, 0x11D0, 0xBD, 0x43, 0x00, 0xA0, 0xC9, 0x11, 0xCE, 0x86 ); + + /// + /// Audio compressor category + /// + /// + /// Equals to CLSID_AudioCompressorCategory. + /// + public static readonly Guid AudioCompressorCategory = + new Guid( 0x33D9A761, 0x90C8, 0x11D0, 0xBD, 0x43, 0x00, 0xA0, 0xC9, 0x11, 0xCE, 0x86 ); + } +} diff --git a/Sources/Video.DirectShow/Video.DirectShow.csproj b/Sources/Video.DirectShow/Video.DirectShow.csproj new file mode 100644 index 00000000..cfebb5e7 --- /dev/null +++ b/Sources/Video.DirectShow/Video.DirectShow.csproj @@ -0,0 +1,174 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {26CD2CE7-FF63-4669-83B0-7D9C8F3408EE} + Library + Properties + AForge.Video.DirectShow + AForge.Video.DirectShow + true + AForge.Video.DirectShow.snk + + + 3.5 + v2.0 + + + false + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + true + + + true + full + false + ..\..\Release\ + DEBUG;TRACE + prompt + 4 + AForge.Video.DirectShow.xml + true + + + pdbonly + true + ..\..\Release\ + TRACE + prompt + 4 + AForge.Video.DirectShow.xml + true + + + + False + ..\..\Release\AForge.Video.dll + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + True + True + Resources.resx + + + + + + Form + + + VideoCaptureDeviceForm.cs + + + + + + + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 2.0 %28x86%29 + false + + + False + .NET Framework 3.0 %28x86%29 + false + + + False + .NET Framework 3.5 + true + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 3.1 + true + + + + + ResXFileCodeGenerator + Resources.Designer.cs + + + VideoCaptureDeviceForm.cs + + + + + + + + \ No newline at end of file diff --git a/Sources/Video.DirectShow/Video.DirectShow.sln b/Sources/Video.DirectShow/Video.DirectShow.sln new file mode 100644 index 00000000..b10be22d --- /dev/null +++ b/Sources/Video.DirectShow/Video.DirectShow.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual C# Express 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Video.DirectShow", "Video.DirectShow.csproj", "{26CD2CE7-FF63-4669-83B0-7D9C8F3408EE}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {26CD2CE7-FF63-4669-83B0-7D9C8F3408EE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {26CD2CE7-FF63-4669-83B0-7D9C8F3408EE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {26CD2CE7-FF63-4669-83B0-7D9C8F3408EE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {26CD2CE7-FF63-4669-83B0-7D9C8F3408EE}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Sources/Video.DirectShow/VideoCapabilities.cs b/Sources/Video.DirectShow/VideoCapabilities.cs new file mode 100644 index 00000000..a7c8dd41 --- /dev/null +++ b/Sources/Video.DirectShow/VideoCapabilities.cs @@ -0,0 +1,245 @@ +// AForge Direct Show Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2009-2013 +// contacts@aforgenet.com +// + +namespace AForge.Video.DirectShow +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Runtime.InteropServices; + + using AForge.Video; + using AForge.Video.DirectShow.Internals; + + /// + /// Capabilities of video device such as frame size and frame rate. + /// + public class VideoCapabilities + { + /// + /// Frame size supported by video device. + /// + public readonly Size FrameSize; + + /// + /// Frame rate supported by video device for corresponding frame size. + /// + /// + /// This field is depricated - should not be used. + /// Its value equals to . + /// + /// + [Obsolete( "No longer supported. Use AverageFrameRate instead." )] + public int FrameRate + { + get { return AverageFrameRate; } + } + + /// + /// Average frame rate of video device for corresponding frame size. + /// + public readonly int AverageFrameRate; + + /// + /// Maximum frame rate of video device for corresponding frame size. + /// + public readonly int MaximumFrameRate; + + /// + /// Number of bits per pixel provided by the camera. + /// + public readonly int BitCount; + + internal VideoCapabilities( ) { } + + // Retrieve capabilities of a video device + static internal VideoCapabilities[] FromStreamConfig( IAMStreamConfig videoStreamConfig ) + { + if ( videoStreamConfig == null ) + throw new ArgumentNullException( "videoStreamConfig" ); + + // ensure this device reports capabilities + int count, size; + int hr = videoStreamConfig.GetNumberOfCapabilities( out count, out size ); + + if ( hr != 0 ) + Marshal.ThrowExceptionForHR( hr ); + + if ( count <= 0 ) + throw new NotSupportedException( "This video device does not report capabilities." ); + + if ( size > Marshal.SizeOf( typeof( VideoStreamConfigCaps ) ) ) + throw new NotSupportedException( "Unable to retrieve video device capabilities. This video device requires a larger VideoStreamConfigCaps structure." ); + + // group capabilities with similar parameters + Dictionary videocapsList = new Dictionary( ); + + for ( int i = 0; i < count; i++ ) + { + try + { + VideoCapabilities vc = new VideoCapabilities( videoStreamConfig, i ); + + uint key = ( ( (uint) vc.FrameSize.Height ) << 32 ) | + ( ( (uint) vc.FrameSize.Width ) << 16 ); + + if ( !videocapsList.ContainsKey( key ) ) + { + videocapsList.Add( key, vc ); + } + else + { + if ( vc.BitCount > videocapsList[key].BitCount ) + { + videocapsList[key] = vc; + } + } + } + catch + { + } + } + + VideoCapabilities[] videocaps = new VideoCapabilities[videocapsList.Count]; + videocapsList.Values.CopyTo( videocaps, 0 ); + + return videocaps; + } + + // Retrieve capabilities of a video device + internal VideoCapabilities( IAMStreamConfig videoStreamConfig, int index ) + { + AMMediaType mediaType = null; + VideoStreamConfigCaps caps = new VideoStreamConfigCaps( ); + + try + { + // retrieve capabilities struct at the specified index + int hr = videoStreamConfig.GetStreamCaps( index, out mediaType, caps ); + + if ( hr != 0 ) + Marshal.ThrowExceptionForHR( hr ); + + if ( mediaType.FormatType == FormatType.VideoInfo ) + { + VideoInfoHeader videoInfo = (VideoInfoHeader) Marshal.PtrToStructure( mediaType.FormatPtr, typeof( VideoInfoHeader ) ); + + FrameSize = new Size( videoInfo.BmiHeader.Width, videoInfo.BmiHeader.Height ); + BitCount = videoInfo.BmiHeader.BitCount; + AverageFrameRate = (int) ( 10000000 / videoInfo.AverageTimePerFrame ); + MaximumFrameRate = (int) ( 10000000 / caps.MinFrameInterval ); + } + else if ( mediaType.FormatType == FormatType.VideoInfo2 ) + { + VideoInfoHeader2 videoInfo = (VideoInfoHeader2) Marshal.PtrToStructure( mediaType.FormatPtr, typeof( VideoInfoHeader2 ) ); + + FrameSize = new Size( videoInfo.BmiHeader.Width, videoInfo.BmiHeader.Height ); + BitCount = videoInfo.BmiHeader.BitCount; + AverageFrameRate = (int) ( 10000000 / videoInfo.AverageTimePerFrame ); + MaximumFrameRate = (int) ( 10000000 / caps.MinFrameInterval ); + } + else + { + throw new ApplicationException( "Unsupported format found." ); + } + + // ignore 12 bpp formats for now, since it was noticed they cause issues on Windows 8 + // TODO: proper fix needs to be done so ICaptureGraphBuilder2::RenderStream() does not fail + // on such formats + if ( BitCount <= 12 ) + { + throw new ApplicationException( "Unsupported format found." ); + } + } + finally + { + if ( mediaType != null ) + mediaType.Dispose( ); + } + } + + /// + /// Check if the video capability equals to the specified object. + /// + /// + /// Object to compare with. + /// + /// Returns true if both are equal are equal or false otherwise. + /// + public override bool Equals( object obj ) + { + return Equals( obj as VideoCapabilities ); + } + + /// + /// Check if two video capabilities are equal. + /// + /// + /// Second video capability to compare with. + /// + /// Returns true if both video capabilities are equal or false otherwise. + /// + public bool Equals( VideoCapabilities vc2 ) + { + if ( (object) vc2 == null ) + { + return false; + } + + return ( ( FrameSize == vc2.FrameSize ) && ( BitCount == vc2.BitCount ) ); + } + + /// + /// Get hash code of the object. + /// + /// + /// Returns hash code ot the object + public override int GetHashCode( ) + { + return FrameSize.GetHashCode( ) ^ BitCount; + } + + /// + /// Equality operator. + /// + /// + /// First object to check. + /// Seconds object to check. + /// + /// Return true if both objects are equal or false otherwise. + public static bool operator ==( VideoCapabilities a, VideoCapabilities b ) + { + // if both are null, or both are same instance, return true. + if ( object.ReferenceEquals( a, b ) ) + { + return true; + } + + // if one is null, but not both, return false. + if ( ( (object) a == null ) || ( (object) b == null ) ) + { + return false; + } + + return a.Equals( b ); + } + + /// + /// Inequality operator. + /// + /// + /// First object to check. + /// Seconds object to check. + /// + /// Return true if both objects are not equal or false otherwise. + public static bool operator !=( VideoCapabilities a, VideoCapabilities b ) + { + return !( a == b ); + } + } +} diff --git a/Sources/Video.DirectShow/VideoCaptureDevice.cs b/Sources/Video.DirectShow/VideoCaptureDevice.cs new file mode 100644 index 00000000..8b76c5a3 --- /dev/null +++ b/Sources/Video.DirectShow/VideoCaptureDevice.cs @@ -0,0 +1,1698 @@ +// AForge Direct Show Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2009-2013 +// contacts@aforgenet.com +// + +namespace AForge.Video.DirectShow +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + using System.Threading; + using System.Runtime.InteropServices; + + using AForge.Video; + using AForge.Video.DirectShow.Internals; + + /// + /// Video source for local video capture device (for example USB webcam). + /// + /// + /// This video source class captures video data from local video capture device, + /// like USB web camera (or internal), frame grabber, capture board - anything which + /// supports DirectShow interface. For devices which has a shutter button or + /// support external software triggering, the class also allows to do snapshots. Both + /// video size and snapshot size can be configured. + /// + /// Sample usage: + /// + /// // enumerate video devices + /// videoDevices = new FilterInfoCollection( FilterCategory.VideoInputDevice ); + /// // create video source + /// VideoCaptureDevice videoSource = new VideoCaptureDevice( videoDevices[0].MonikerString ); + /// // set NewFrame event handler + /// videoSource.NewFrame += new NewFrameEventHandler( video_NewFrame ); + /// // start the video source + /// videoSource.Start( ); + /// // ... + /// // signal to stop when you no longer need capturing + /// videoSource.SignalToStop( ); + /// // ... + /// + /// private void video_NewFrame( object sender, NewFrameEventArgs eventArgs ) + /// { + /// // get new frame + /// Bitmap bitmap = eventArgs.Frame; + /// // process the frame + /// } + /// + /// + /// + public class VideoCaptureDevice : IVideoSource + { + // moniker string of video capture device + private string deviceMoniker; + // received frames count + private int framesReceived; + // recieved byte count + private long bytesReceived; + + // video and snapshot resolutions to set + private VideoCapabilities videoResolution = null; + private VideoCapabilities snapshotResolution = null; + + // provide snapshots or not + private bool provideSnapshots = false; + + private Thread thread = null; + private ManualResetEvent stopEvent = null; + + private VideoCapabilities[] videoCapabilities; + private VideoCapabilities[] snapshotCapabilities; + + private bool needToSetVideoInput = false; + private bool needToSimulateTrigger = false; + private bool needToDisplayPropertyPage = false; + private bool needToDisplayCrossBarPropertyPage = false; + private IntPtr parentWindowForPropertyPage = IntPtr.Zero; + + // video capture source object + private object sourceObject = null; + + // time of starting the DirectX graph + private DateTime startTime = new DateTime( ); + + // dummy object to lock for synchronization + private object sync = new object( ); + + // flag specifying if IAMCrossbar interface is supported by the running graph/source object + private bool? isCrossbarAvailable = null; + + private VideoInput[] crossbarVideoInputs = null; + private VideoInput crossbarVideoInput = VideoInput.Default; + + // cache for video/snapshot capabilities and video inputs + private static Dictionary cacheVideoCapabilities = new Dictionary( ); + private static Dictionary cacheSnapshotCapabilities = new Dictionary( ); + private static Dictionary cacheCrossbarVideoInputs = new Dictionary( ); + + /// + /// Current video input of capture card. + /// + /// + /// The property specifies video input to use for video devices like capture cards + /// (those which provide crossbar configuration). List of available video inputs can be obtained + /// from property. + /// + /// To check if the video device supports crossbar configuration, the + /// method can be used. + /// + /// This property can be set as before running video device, as while running it. + /// + /// By default this property is set to , which means video input + /// will not be set when running video device, but currently configured will be used. After video device + /// is started this property will be updated anyway to tell current video input. + /// + /// + public VideoInput CrossbarVideoInput + { + get { return crossbarVideoInput; } + set + { + needToSetVideoInput = true; + crossbarVideoInput = value; + } + } + + /// + /// Available inputs of the video capture card. + /// + /// + /// The property provides list of video inputs for devices like video capture cards. + /// Such devices usually provide several video inputs, which can be selected using crossbar. + /// If video device represented by the object of this class supports crossbar, then this property + /// will list all video inputs. However if it is a regular USB camera, for example, which does not + /// provide crossbar configuration, the property will provide zero length array. + /// + /// Video input to be used can be selected using . See also + /// method, which provides crossbar configuration dialog. + /// + /// It is recomended not to call this property immediately after method, since + /// device may not start yet and provide its information. It is better to call the property + /// before starting device or a bit after (but not immediately after). + /// + /// + public VideoInput[] AvailableCrossbarVideoInputs + { + get + { + if ( crossbarVideoInputs == null ) + { + lock ( cacheCrossbarVideoInputs ) + { + if ( ( !string.IsNullOrEmpty( deviceMoniker ) ) && ( cacheCrossbarVideoInputs.ContainsKey( deviceMoniker ) ) ) + { + crossbarVideoInputs = cacheCrossbarVideoInputs[deviceMoniker]; + } + } + + if ( crossbarVideoInputs == null ) + { + if ( !IsRunning ) + { + // create graph without playing to collect available inputs + WorkerThread( false ); + } + else + { + for ( int i = 0; ( i < 500 ) && ( crossbarVideoInputs == null ); i++ ) + { + Thread.Sleep( 10 ); + } + } + } + } + // don't return null even if capabilities are not provided for some reason + return ( crossbarVideoInputs != null ) ? crossbarVideoInputs : new VideoInput[0]; + } + } + + /// + /// Specifies if snapshots should be provided or not. + /// + /// + /// Some USB cameras/devices may have a shutter button, which may result into snapshot if it + /// is pressed. So the property specifies if the video source will try providing snapshots or not - it will + /// check if the camera supports providing still image snapshots. If camera supports snapshots and the property + /// is set to , then snapshots will be provided through + /// event. + /// + /// Check supported sizes of snapshots using property and set the + /// desired size using property. + /// + /// The property must be set before running the video source to take effect. + /// + /// Default value of the property is set to . + /// + /// + public bool ProvideSnapshots + { + get { return provideSnapshots; } + set { provideSnapshots = value; } + } + + /// + /// New frame event. + /// + /// + /// Notifies clients about new available frame from video source. + /// + /// Since video source may have multiple clients, each client is responsible for + /// making a copy (cloning) of the passed video frame, because the video source disposes its + /// own original copy after notifying of clients. + /// + /// + public event NewFrameEventHandler NewFrame; + + /// + /// Snapshot frame event. + /// + /// + /// Notifies clients about new available snapshot frame - the one which comes when + /// camera's snapshot/shutter button is pressed. + /// + /// See documentation to for additional information. + /// + /// Since video source may have multiple clients, each client is responsible for + /// making a copy (cloning) of the passed snapshot frame, because the video source disposes its + /// own original copy after notifying of clients. + /// + /// + /// + /// + public event NewFrameEventHandler SnapshotFrame; + + /// + /// Video source error event. + /// + /// + /// This event is used to notify clients about any type of errors occurred in + /// video source object, for example internal exceptions. + /// + public event VideoSourceErrorEventHandler VideoSourceError; + + /// + /// Video playing finished event. + /// + /// + /// This event is used to notify clients that the video playing has finished. + /// + /// + public event PlayingFinishedEventHandler PlayingFinished; + + /// + /// Video source. + /// + /// + /// Video source is represented by moniker string of video capture device. + /// + public virtual string Source + { + get { return deviceMoniker; } + set + { + deviceMoniker = value; + + videoCapabilities = null; + snapshotCapabilities = null; + crossbarVideoInputs = null; + isCrossbarAvailable = null; + } + } + + /// + /// Received frames count. + /// + /// + /// Number of frames the video source provided from the moment of the last + /// access to the property. + /// + /// + public int FramesReceived + { + get + { + int frames = framesReceived; + framesReceived = 0; + return frames; + } + } + + /// + /// Received bytes count. + /// + /// + /// Number of bytes the video source provided from the moment of the last + /// access to the property. + /// + /// + public long BytesReceived + { + get + { + long bytes = bytesReceived; + bytesReceived = 0; + return bytes; + } + } + + /// + /// State of the video source. + /// + /// + /// Current state of video source object - running or not. + /// + public bool IsRunning + { + get + { + if ( thread != null ) + { + // check thread status + if ( thread.Join( 0 ) == false ) + return true; + + // the thread is not running, free resources + Free( ); + } + return false; + } + } + + /// + /// Obsolete - no longer in use + /// + /// + /// The property is obsolete. Use property instead. + /// Setting this property does not have any effect. + /// + [Obsolete] + public Size DesiredFrameSize + { + get { return Size.Empty; } + set { } + } + + /// + /// Obsolete - no longer in use + /// + /// + /// The property is obsolete. Use property instead. + /// Setting this property does not have any effect. + /// + [Obsolete] + public Size DesiredSnapshotSize + { + get { return Size.Empty; } + set { } + } + + /// + /// Obsolete - no longer in use. + /// + /// + /// The property is obsolete. Setting this property does not have any effect. + /// + [Obsolete] + public int DesiredFrameRate + { + get { return 0; } + set { } + } + + /// + /// Video resolution to set. + /// + /// + /// The property allows to set one of the video resolutions supported by the camera. + /// Use property to get the list of supported video resolutions. + /// + /// The property must be set before camera is started to make any effect. + /// + /// Default value of the property is set to , which means default video + /// resolution is used. + /// + /// + public VideoCapabilities VideoResolution + { + get { return videoResolution; } + set { videoResolution = value; } + } + + /// + /// Snapshot resolution to set. + /// + /// + /// The property allows to set one of the snapshot resolutions supported by the camera. + /// Use property to get the list of supported snapshot resolutions. + /// + /// The property must be set before camera is started to make any effect. + /// + /// Default value of the property is set to , which means default snapshot + /// resolution is used. + /// + /// + public VideoCapabilities SnapshotResolution + { + get { return snapshotResolution; } + set { snapshotResolution = value; } + } + + /// + /// Video capabilities of the device. + /// + /// + /// The property provides list of device's video capabilities. + /// + /// It is recomended not to call this property immediately after method, since + /// device may not start yet and provide its information. It is better to call the property + /// before starting device or a bit after (but not immediately after). + /// + /// + public VideoCapabilities[] VideoCapabilities + { + get + { + if ( videoCapabilities == null ) + { + lock ( cacheVideoCapabilities ) + { + if ( ( !string.IsNullOrEmpty( deviceMoniker ) ) && ( cacheVideoCapabilities.ContainsKey( deviceMoniker ) ) ) + { + videoCapabilities = cacheVideoCapabilities[deviceMoniker]; + } + } + + if ( videoCapabilities == null ) + { + if ( !IsRunning ) + { + // create graph without playing to get the video/snapshot capabilities only. + // not very clean but it works + WorkerThread( false ); + } + else + { + for ( int i = 0; ( i < 500 ) && ( videoCapabilities == null ); i++ ) + { + Thread.Sleep( 10 ); + } + } + } + } + // don't return null even capabilities are not provided for some reason + return ( videoCapabilities != null ) ? videoCapabilities : new VideoCapabilities[0]; + } + } + + /// + /// Snapshot capabilities of the device. + /// + /// + /// The property provides list of device's snapshot capabilities. + /// + /// If the array has zero length, then it means that this device does not support making + /// snapshots. + /// + /// See documentation to for additional information. + /// + /// It is recomended not to call this property immediately after method, since + /// device may not start yet and provide its information. It is better to call the property + /// before starting device or a bit after (but not immediately after). + /// + /// + /// + /// + public VideoCapabilities[] SnapshotCapabilities + { + get + { + if ( snapshotCapabilities == null ) + { + lock ( cacheSnapshotCapabilities ) + { + if ( ( !string.IsNullOrEmpty( deviceMoniker ) ) && ( cacheSnapshotCapabilities.ContainsKey( deviceMoniker ) ) ) + { + snapshotCapabilities = cacheSnapshotCapabilities[deviceMoniker]; + } + } + + if ( snapshotCapabilities == null ) + { + if ( !IsRunning ) + { + // create graph without playing to get the video/snapshot capabilities only. + // not very clean but it works + WorkerThread( false ); + } + else + { + for ( int i = 0; ( i < 500 ) && ( snapshotCapabilities == null ); i++ ) + { + Thread.Sleep( 10 ); + } + } + } + } + // don't return null even capabilities are not provided for some reason + return ( snapshotCapabilities != null ) ? snapshotCapabilities : new VideoCapabilities[0]; + } + } + + /// + /// Source COM object of camera capture device. + /// + /// + /// The source COM object of camera capture device is exposed for the + /// case when user may need get direct access to the object for making some custom + /// configuration of camera through DirectShow interface, for example. + /// + /// + /// If camera is not running, the property is set to . + /// + /// + public object SourceObject + { + get { return sourceObject; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public VideoCaptureDevice( ) { } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Moniker string of video capture device. + /// + public VideoCaptureDevice( string deviceMoniker ) + { + this.deviceMoniker = deviceMoniker; + } + + /// + /// Start video source. + /// + /// + /// Starts video source and return execution to caller. Video source + /// object creates background thread and notifies about new frames with the + /// help of event. + /// + public void Start( ) + { + if ( !IsRunning ) + { + // check source + if ( string.IsNullOrEmpty( deviceMoniker ) ) + throw new ArgumentException( "Video source is not specified." ); + + framesReceived = 0; + bytesReceived = 0; + isCrossbarAvailable = null; + needToSetVideoInput = true; + + // create events + stopEvent = new ManualResetEvent( false ); + + lock ( sync ) + { + // create and start new thread + thread = new Thread( new ThreadStart( WorkerThread ) ); + thread.Name = deviceMoniker; // mainly for debugging + thread.Start( ); + } + } + } + + /// + /// Signal video source to stop its work. + /// + /// + /// Signals video source to stop its background thread, stop to + /// provide new frames and free resources. + /// + public void SignalToStop( ) + { + // stop thread + if ( thread != null ) + { + // signal to stop + stopEvent.Set( ); + } + } + + /// + /// Wait for video source has stopped. + /// + /// + /// Waits for source stopping after it was signalled to stop using + /// method. + /// + public void WaitForStop( ) + { + if ( thread != null ) + { + // wait for thread stop + thread.Join( ); + + Free( ); + } + } + + /// + /// Stop video source. + /// + /// + /// Stops video source aborting its thread. + /// + /// Since the method aborts background thread, its usage is highly not preferred + /// and should be done only if there are no other options. The correct way of stopping camera + /// is signaling it stop and then + /// waiting for background thread's completion. + /// + /// + public void Stop( ) + { + if ( this.IsRunning ) + { + thread.Abort( ); + WaitForStop( ); + } + } + + /// + /// Free resource. + /// + /// + private void Free( ) + { + thread = null; + + // release events + stopEvent.Close( ); + stopEvent = null; + } + + /// + /// Display property window for the video capture device providing its configuration + /// capabilities. + /// + /// + /// Handle of parent window. + /// + /// If you pass parent window's handle to this method, then the + /// displayed property page will become modal window and none of the controls from the + /// parent window will be accessible. In order to make it modeless it is required + /// to pass as parent window's handle. + /// + /// + /// + /// The video source does not support configuration property page. + /// + public void DisplayPropertyPage( IntPtr parentWindow ) + { + // check source + if ( ( deviceMoniker == null ) || ( deviceMoniker == string.Empty ) ) + throw new ArgumentException( "Video source is not specified." ); + + lock ( sync ) + { + if ( IsRunning ) + { + // pass the request to backgroud thread if video source is running + parentWindowForPropertyPage = parentWindow; + needToDisplayPropertyPage = true; + return; + } + + object tempSourceObject = null; + + // create source device's object + try + { + tempSourceObject = FilterInfo.CreateFilter( deviceMoniker ); + } + catch + { + throw new ApplicationException( "Failed creating device object for moniker." ); + } + + if ( !( tempSourceObject is ISpecifyPropertyPages ) ) + { + throw new NotSupportedException( "The video source does not support configuration property page." ); + } + + DisplayPropertyPage( parentWindow, tempSourceObject ); + + Marshal.ReleaseComObject( tempSourceObject ); + } + } + + /// + /// Display property page of video crossbar (Analog Video Crossbar filter). + /// + /// + /// Handle of parent window. + /// + /// The Analog Video Crossbar filter is modeled after a general switching matrix, + /// with n inputs and m outputs. For example, a video card might have two external connectors: + /// a coaxial connector for TV, and an S-video input. These would be represented as input pins on + /// the filter. The displayed property page allows to configure the crossbar by selecting input + /// of a video card to use. + /// + /// This method can be invoked only when video source is running ( is + /// ). Otherwise it generates exception. + /// + /// Use method to check if running video source provides + /// crossbar configuration. + /// + /// + /// The video source must be running in order to display crossbar property page. + /// Crossbar configuration is not supported by currently running video source. + /// + public void DisplayCrossbarPropertyPage( IntPtr parentWindow ) + { + lock ( sync ) + { + // wait max 5 seconds till the flag gets initialized + for ( int i = 0; ( i < 500 ) && ( !isCrossbarAvailable.HasValue ) && ( IsRunning ); i++ ) + { + Thread.Sleep( 10 ); + } + + if ( ( !IsRunning ) || ( !isCrossbarAvailable.HasValue ) ) + { + throw new ApplicationException( "The video source must be running in order to display crossbar property page." ); + } + + if ( !isCrossbarAvailable.Value ) + { + throw new NotSupportedException( "Crossbar configuration is not supported by currently running video source." ); + } + + // pass the request to background thread if video source is running + parentWindowForPropertyPage = parentWindow; + needToDisplayCrossBarPropertyPage = true; + } + } + + /// + /// Check if running video source provides crossbar for configuration. + /// + /// + /// Returns if crossbar configuration is available or + /// otherwise. + /// + /// The method reports if the video source provides crossbar configuration + /// using . + /// + /// + public bool CheckIfCrossbarAvailable( ) + { + lock ( sync ) + { + if ( !isCrossbarAvailable.HasValue ) + { + if ( !IsRunning ) + { + // create graph without playing to collect available inputs + WorkerThread( false ); + } + else + { + for ( int i = 0; ( i < 500 ) && ( !isCrossbarAvailable.HasValue ); i++ ) + { + Thread.Sleep( 10 ); + } + } + } + + return ( !isCrossbarAvailable.HasValue ) ? false : isCrossbarAvailable.Value; + } + } + + + /// + /// Simulates an external trigger. + /// + /// + /// The method simulates external trigger for video cameras, which support + /// providing still image snapshots. The effect is equivalent as pressing camera's shutter + /// button - a snapshot will be provided through event. + /// + /// The property must be set to + /// to enable receiving snapshots. + /// + /// + public void SimulateTrigger( ) + { + needToSimulateTrigger = true; + } + + /// + /// Sets a specified property on the camera. + /// + /// + /// Specifies the property to set. + /// Specifies the new value of the property. + /// Specifies the desired control setting. + /// + /// Returns true on sucee or false otherwise. + /// + /// Video source is not specified - device moniker is not set. + /// Failed creating device object for moniker. + /// The video source does not support camera control. + /// + public bool SetCameraProperty( CameraControlProperty property, int value, CameraControlFlags controlFlags ) + { + bool ret = true; + + // check if source was set + if ( ( deviceMoniker == null ) || ( string.IsNullOrEmpty( deviceMoniker ) ) ) + { + throw new ArgumentException( "Video source is not specified." ); + } + + lock ( sync ) + { + object tempSourceObject = null; + + // create source device's object + try + { + tempSourceObject = FilterInfo.CreateFilter( deviceMoniker ); + } + catch + { + throw new ApplicationException( "Failed creating device object for moniker." ); + } + + if ( !( tempSourceObject is IAMCameraControl ) ) + { + throw new NotSupportedException( "The video source does not support camera control." ); + } + + IAMCameraControl pCamControl = (IAMCameraControl) tempSourceObject; + int hr = pCamControl.Set( property, value, controlFlags ); + + ret = ( hr >= 0 ); + + Marshal.ReleaseComObject( tempSourceObject ); + } + + return ret; + } + + /// + /// Gets the current setting of a camera property. + /// + /// + /// Specifies the property to retrieve. + /// Receives the value of the property. + /// Receives the value indicating whether the setting is controlled manually or automatically + /// + /// Returns true on sucee or false otherwise. + /// + /// Video source is not specified - device moniker is not set. + /// Failed creating device object for moniker. + /// The video source does not support camera control. + /// + public bool GetCameraProperty( CameraControlProperty property, out int value, out CameraControlFlags controlFlags ) + { + bool ret = true; + + // check if source was set + if ( ( deviceMoniker == null ) || ( string.IsNullOrEmpty( deviceMoniker ) ) ) + { + throw new ArgumentException( "Video source is not specified." ); + } + + lock ( sync ) + { + object tempSourceObject = null; + + // create source device's object + try + { + tempSourceObject = FilterInfo.CreateFilter( deviceMoniker ); + } + catch + { + throw new ApplicationException( "Failed creating device object for moniker." ); + } + + if ( !( tempSourceObject is IAMCameraControl ) ) + { + throw new NotSupportedException( "The video source does not support camera control." ); + } + + IAMCameraControl pCamControl = (IAMCameraControl) tempSourceObject; + int hr = pCamControl.Get( property, out value, out controlFlags ); + + ret = ( hr >= 0 ); + + Marshal.ReleaseComObject( tempSourceObject ); + } + + return ret; + } + + /// + /// Gets the range and default value of a specified camera property. + /// + /// + /// Specifies the property to query. + /// Receives the minimum value of the property. + /// Receives the maximum value of the property. + /// Receives the step size for the property. + /// Receives the default value of the property. + /// Receives a member of the enumeration, indicating whether the property is controlled automatically or manually. + /// + /// Returns true on sucee or false otherwise. + /// + /// Video source is not specified - device moniker is not set. + /// Failed creating device object for moniker. + /// The video source does not support camera control. + /// + public bool GetCameraPropertyRange( CameraControlProperty property, out int minValue, out int maxValue, out int stepSize, out int defaultValue, out CameraControlFlags controlFlags ) + { + bool ret = true; + + // check if source was set + if ( ( deviceMoniker == null ) || ( string.IsNullOrEmpty( deviceMoniker ) ) ) + { + throw new ArgumentException( "Video source is not specified." ); + } + + lock ( sync ) + { + object tempSourceObject = null; + + // create source device's object + try + { + tempSourceObject = FilterInfo.CreateFilter( deviceMoniker ); + } + catch + { + throw new ApplicationException( "Failed creating device object for moniker." ); + } + + if ( !( tempSourceObject is IAMCameraControl ) ) + { + throw new NotSupportedException( "The video source does not support camera control." ); + } + + IAMCameraControl pCamControl = (IAMCameraControl) tempSourceObject; + int hr = pCamControl.GetRange( property, out minValue, out maxValue, out stepSize, out defaultValue, out controlFlags ); + + ret = ( hr >= 0 ); + + Marshal.ReleaseComObject( tempSourceObject ); + } + + return ret; + } + + /// + /// Worker thread. + /// + /// + private void WorkerThread( ) + { + WorkerThread( true ); + } + + private void WorkerThread( bool runGraph ) + { + ReasonToFinishPlaying reasonToStop = ReasonToFinishPlaying.StoppedByUser; + bool isSapshotSupported = false; + + // grabber + Grabber videoGrabber = new Grabber( this, false ); + Grabber snapshotGrabber = new Grabber( this, true ); + + // objects + object captureGraphObject = null; + object graphObject = null; + object videoGrabberObject = null; + object snapshotGrabberObject = null; + object crossbarObject = null; + + // interfaces + ICaptureGraphBuilder2 captureGraph = null; + IFilterGraph2 graph = null; + IBaseFilter sourceBase = null; + IBaseFilter videoGrabberBase = null; + IBaseFilter snapshotGrabberBase = null; + ISampleGrabber videoSampleGrabber = null; + ISampleGrabber snapshotSampleGrabber = null; + IMediaControl mediaControl = null; + IAMVideoControl videoControl = null; + IMediaEventEx mediaEvent = null; + IPin pinStillImage = null; + IAMCrossbar crossbar = null; + + try + { + // get type of capture graph builder + Type type = Type.GetTypeFromCLSID( Clsid.CaptureGraphBuilder2 ); + if ( type == null ) + throw new ApplicationException( "Failed creating capture graph builder" ); + + // create capture graph builder + captureGraphObject = Activator.CreateInstance( type ); + captureGraph = (ICaptureGraphBuilder2) captureGraphObject; + + // get type of filter graph + type = Type.GetTypeFromCLSID( Clsid.FilterGraph ); + if ( type == null ) + throw new ApplicationException( "Failed creating filter graph" ); + + // create filter graph + graphObject = Activator.CreateInstance( type ); + graph = (IFilterGraph2) graphObject; + + // set filter graph to the capture graph builder + captureGraph.SetFiltergraph( (IGraphBuilder) graph ); + + // create source device's object + sourceObject = FilterInfo.CreateFilter( deviceMoniker ); + if ( sourceObject == null ) + throw new ApplicationException( "Failed creating device object for moniker" ); + + // get base filter interface of source device + sourceBase = (IBaseFilter) sourceObject; + + // get video control interface of the device + try + { + videoControl = (IAMVideoControl) sourceObject; + } + catch + { + // some camera drivers may not support IAMVideoControl interface + } + + // get type of sample grabber + type = Type.GetTypeFromCLSID( Clsid.SampleGrabber ); + if ( type == null ) + throw new ApplicationException( "Failed creating sample grabber" ); + + // create sample grabber used for video capture + videoGrabberObject = Activator.CreateInstance( type ); + videoSampleGrabber = (ISampleGrabber) videoGrabberObject; + videoGrabberBase = (IBaseFilter) videoGrabberObject; + // create sample grabber used for snapshot capture + snapshotGrabberObject = Activator.CreateInstance( type ); + snapshotSampleGrabber = (ISampleGrabber) snapshotGrabberObject; + snapshotGrabberBase = (IBaseFilter) snapshotGrabberObject; + + // add source and grabber filters to graph + graph.AddFilter( sourceBase, "source" ); + graph.AddFilter( videoGrabberBase, "grabber_video" ); + graph.AddFilter( snapshotGrabberBase, "grabber_snapshot" ); + + // set media type + AMMediaType mediaType = new AMMediaType( ); + mediaType.MajorType = MediaType.Video; + mediaType.SubType = MediaSubType.RGB24; + + videoSampleGrabber.SetMediaType( mediaType ); + snapshotSampleGrabber.SetMediaType( mediaType ); + + // get crossbar object to to allows configuring pins of capture card + captureGraph.FindInterface( FindDirection.UpstreamOnly, Guid.Empty, sourceBase, typeof( IAMCrossbar ).GUID, out crossbarObject ); + if ( crossbarObject != null ) + { + crossbar = (IAMCrossbar) crossbarObject; + } + isCrossbarAvailable = ( crossbar != null ); + crossbarVideoInputs = ColletCrossbarVideoInputs( crossbar ); + + if ( videoControl != null ) + { + // find Still Image output pin of the vedio device + captureGraph.FindPin( sourceObject, PinDirection.Output, + PinCategory.StillImage, MediaType.Video, false, 0, out pinStillImage ); + // check if it support trigger mode + if ( pinStillImage != null ) + { + VideoControlFlags caps; + videoControl.GetCaps( pinStillImage, out caps ); + isSapshotSupported = ( ( caps & VideoControlFlags.ExternalTriggerEnable ) != 0 ); + } + } + + // configure video sample grabber + videoSampleGrabber.SetBufferSamples( false ); + videoSampleGrabber.SetOneShot( false ); + videoSampleGrabber.SetCallback( videoGrabber, 1 ); + + // configure snapshot sample grabber + snapshotSampleGrabber.SetBufferSamples( true ); + snapshotSampleGrabber.SetOneShot( false ); + snapshotSampleGrabber.SetCallback( snapshotGrabber, 1 ); + + // configure pins + GetPinCapabilitiesAndConfigureSizeAndRate( captureGraph, sourceBase, + PinCategory.Capture, videoResolution, ref videoCapabilities ); + if ( isSapshotSupported ) + { + GetPinCapabilitiesAndConfigureSizeAndRate( captureGraph, sourceBase, + PinCategory.StillImage, snapshotResolution, ref snapshotCapabilities ); + } + else + { + snapshotCapabilities = new VideoCapabilities[0]; + } + + // put video/snapshot capabilities into cache + lock ( cacheVideoCapabilities ) + { + if ( ( videoCapabilities != null ) && ( !cacheVideoCapabilities.ContainsKey( deviceMoniker ) ) ) + { + cacheVideoCapabilities.Add( deviceMoniker, videoCapabilities ); + } + } + lock ( cacheSnapshotCapabilities ) + { + if ( ( snapshotCapabilities != null ) && ( !cacheSnapshotCapabilities.ContainsKey( deviceMoniker ) ) ) + { + cacheSnapshotCapabilities.Add( deviceMoniker, snapshotCapabilities ); + } + } + + if ( runGraph ) + { + // render capture pin + captureGraph.RenderStream( PinCategory.Capture, MediaType.Video, sourceBase, null, videoGrabberBase ); + + if ( videoSampleGrabber.GetConnectedMediaType( mediaType ) == 0 ) + { + VideoInfoHeader vih = (VideoInfoHeader) Marshal.PtrToStructure( mediaType.FormatPtr, typeof( VideoInfoHeader ) ); + + videoGrabber.Width = vih.BmiHeader.Width; + videoGrabber.Height = vih.BmiHeader.Height; + + mediaType.Dispose( ); + } + + if ( ( isSapshotSupported ) && ( provideSnapshots ) ) + { + // render snapshot pin + captureGraph.RenderStream( PinCategory.StillImage, MediaType.Video, sourceBase, null, snapshotGrabberBase ); + + if ( snapshotSampleGrabber.GetConnectedMediaType( mediaType ) == 0 ) + { + VideoInfoHeader vih = (VideoInfoHeader) Marshal.PtrToStructure( mediaType.FormatPtr, typeof( VideoInfoHeader ) ); + + snapshotGrabber.Width = vih.BmiHeader.Width; + snapshotGrabber.Height = vih.BmiHeader.Height; + + mediaType.Dispose( ); + } + } + + // get media control + mediaControl = (IMediaControl) graphObject; + + // get media events' interface + mediaEvent = (IMediaEventEx) graphObject; + IntPtr p1, p2; + DsEvCode code; + + // run + mediaControl.Run( ); + + if ( ( isSapshotSupported ) && ( provideSnapshots ) ) + { + startTime = DateTime.Now; + videoControl.SetMode( pinStillImage, VideoControlFlags.ExternalTriggerEnable ); + } + + do + { + if ( mediaEvent != null ) + { + if ( mediaEvent.GetEvent( out code, out p1, out p2, 0 ) >= 0 ) + { + mediaEvent.FreeEventParams( code, p1, p2 ); + + if ( code == DsEvCode.DeviceLost ) + { + reasonToStop = ReasonToFinishPlaying.DeviceLost; + break; + } + } + } + + if ( needToSetVideoInput ) + { + needToSetVideoInput = false; + // set/check current input type of a video card (frame grabber) + if ( isCrossbarAvailable.Value ) + { + SetCurrentCrossbarInput( crossbar, crossbarVideoInput ); + crossbarVideoInput = GetCurrentCrossbarInput( crossbar ); + } + } + + if ( needToSimulateTrigger ) + { + needToSimulateTrigger = false; + + if ( ( isSapshotSupported ) && ( provideSnapshots ) ) + { + videoControl.SetMode( pinStillImage, VideoControlFlags.Trigger ); + } + } + + if ( needToDisplayPropertyPage ) + { + needToDisplayPropertyPage = false; + DisplayPropertyPage( parentWindowForPropertyPage, sourceObject ); + + if ( crossbar != null ) + { + crossbarVideoInput = GetCurrentCrossbarInput( crossbar ); + } + } + + if ( needToDisplayCrossBarPropertyPage ) + { + needToDisplayCrossBarPropertyPage = false; + + if ( crossbar != null ) + { + DisplayPropertyPage( parentWindowForPropertyPage, crossbar ); + crossbarVideoInput = GetCurrentCrossbarInput( crossbar ); + } + } + } + while ( !stopEvent.WaitOne( 100, false ) ); + + mediaControl.Stop( ); + } + } + catch ( Exception exception ) + { + // provide information to clients + if ( VideoSourceError != null ) + { + VideoSourceError( this, new VideoSourceErrorEventArgs( exception.Message ) ); + } + } + finally + { + // release all objects + captureGraph = null; + graph = null; + sourceBase = null; + mediaControl = null; + videoControl = null; + mediaEvent = null; + pinStillImage = null; + crossbar = null; + + videoGrabberBase = null; + snapshotGrabberBase = null; + videoSampleGrabber = null; + snapshotSampleGrabber = null; + + if ( graphObject != null ) + { + Marshal.ReleaseComObject( graphObject ); + graphObject = null; + } + if ( sourceObject != null ) + { + Marshal.ReleaseComObject( sourceObject ); + sourceObject = null; + } + if ( videoGrabberObject != null ) + { + Marshal.ReleaseComObject( videoGrabberObject ); + videoGrabberObject = null; + } + if ( snapshotGrabberObject != null ) + { + Marshal.ReleaseComObject( snapshotGrabberObject ); + snapshotGrabberObject = null; + } + if ( captureGraphObject != null ) + { + Marshal.ReleaseComObject( captureGraphObject ); + captureGraphObject = null; + } + if ( crossbarObject != null ) + { + Marshal.ReleaseComObject( crossbarObject ); + crossbarObject = null; + } + } + + if ( PlayingFinished != null ) + { + PlayingFinished( this, reasonToStop ); + } + } + + // Set resolution for the specified stream configuration + private void SetResolution( IAMStreamConfig streamConfig, VideoCapabilities resolution ) + { + if ( resolution == null ) + { + return; + } + + // iterate through device's capabilities to find mediaType for desired resolution + int capabilitiesCount = 0, capabilitySize = 0; + AMMediaType newMediaType = null; + VideoStreamConfigCaps caps = new VideoStreamConfigCaps( ); + + streamConfig.GetNumberOfCapabilities( out capabilitiesCount, out capabilitySize ); + + for ( int i = 0; i < capabilitiesCount; i++ ) + { + try + { + VideoCapabilities vc = new VideoCapabilities( streamConfig, i ); + + if ( resolution == vc ) + { + if ( streamConfig.GetStreamCaps( i, out newMediaType, caps ) == 0 ) + { + break; + } + } + } + catch + { + } + } + + // set the new format + if ( newMediaType != null ) + { + streamConfig.SetFormat( newMediaType ); + newMediaType.Dispose( ); + } + } + + // Configure specified pin and collect its capabilities if required + private void GetPinCapabilitiesAndConfigureSizeAndRate( ICaptureGraphBuilder2 graphBuilder, IBaseFilter baseFilter, + Guid pinCategory, VideoCapabilities resolutionToSet, ref VideoCapabilities[] capabilities ) + { + object streamConfigObject; + graphBuilder.FindInterface( pinCategory, MediaType.Video, baseFilter, typeof( IAMStreamConfig ).GUID, out streamConfigObject ); + + if ( streamConfigObject != null ) + { + IAMStreamConfig streamConfig = null; + + try + { + streamConfig = (IAMStreamConfig) streamConfigObject; + } + catch ( InvalidCastException ) + { + } + + if ( streamConfig != null ) + { + if ( capabilities == null ) + { + try + { + // get all video capabilities + capabilities = AForge.Video.DirectShow.VideoCapabilities.FromStreamConfig( streamConfig ); + } + catch + { + } + } + + // check if it is required to change capture settings + if ( resolutionToSet != null ) + { + SetResolution( streamConfig, resolutionToSet ); + } + } + } + + // if failed resolving capabilities, then just create empty capabilities array, + // so we don't try again + if ( capabilities == null ) + { + capabilities = new VideoCapabilities[0]; + } + } + + // Display property page for the specified object + private void DisplayPropertyPage( IntPtr parentWindow, object sourceObject ) + { + try + { + // retrieve ISpecifyPropertyPages interface of the device + ISpecifyPropertyPages pPropPages = (ISpecifyPropertyPages) sourceObject; + + // get property pages from the property bag + CAUUID caGUID; + pPropPages.GetPages( out caGUID ); + + // get filter info + FilterInfo filterInfo = new FilterInfo( deviceMoniker ); + + // create and display the OlePropertyFrame + Win32.OleCreatePropertyFrame( parentWindow, 0, 0, filterInfo.Name, 1, ref sourceObject, caGUID.cElems, caGUID.pElems, 0, 0, IntPtr.Zero ); + + // release COM objects + Marshal.FreeCoTaskMem( caGUID.pElems ); + } + catch + { + } + } + + // Collect all video inputs of the specified crossbar + private VideoInput[] ColletCrossbarVideoInputs( IAMCrossbar crossbar ) + { + lock ( cacheCrossbarVideoInputs ) + { + if ( cacheCrossbarVideoInputs.ContainsKey( deviceMoniker ) ) + { + return cacheCrossbarVideoInputs[deviceMoniker]; + } + + List videoInputsList = new List( ); + + if ( crossbar != null ) + { + int inPinsCount, outPinsCount; + + // gen number of pins in the crossbar + if ( crossbar.get_PinCounts( out outPinsCount, out inPinsCount ) == 0 ) + { + // collect all video inputs + for ( int i = 0; i < inPinsCount; i++ ) + { + int pinIndexRelated; + PhysicalConnectorType type; + + if ( crossbar.get_CrossbarPinInfo( true, i, out pinIndexRelated, out type ) != 0 ) + continue; + + if ( type < PhysicalConnectorType.AudioTuner ) + { + videoInputsList.Add( new VideoInput( i, type ) ); + } + } + } + } + + VideoInput[] videoInputs = new VideoInput[videoInputsList.Count]; + videoInputsList.CopyTo( videoInputs ); + + cacheCrossbarVideoInputs.Add( deviceMoniker, videoInputs ); + + return videoInputs; + } + } + + // Get type of input connected to video output of the crossbar + private VideoInput GetCurrentCrossbarInput( IAMCrossbar crossbar ) + { + VideoInput videoInput = VideoInput.Default; + + int inPinsCount, outPinsCount; + + // gen number of pins in the crossbar + if ( crossbar.get_PinCounts( out outPinsCount, out inPinsCount ) == 0 ) + { + int videoOutputPinIndex = -1; + int pinIndexRelated; + PhysicalConnectorType type; + + // find index of the video output pin + for ( int i = 0; i < outPinsCount; i++ ) + { + if ( crossbar.get_CrossbarPinInfo( false, i, out pinIndexRelated, out type ) != 0 ) + continue; + + if ( type == PhysicalConnectorType.VideoDecoder ) + { + videoOutputPinIndex = i; + break; + } + } + + if ( videoOutputPinIndex != -1 ) + { + int videoInputPinIndex; + + // get index of the input pin connected to the output + if ( crossbar.get_IsRoutedTo( videoOutputPinIndex, out videoInputPinIndex ) == 0 ) + { + PhysicalConnectorType inputType; + + crossbar.get_CrossbarPinInfo( true, videoInputPinIndex, out pinIndexRelated, out inputType ); + + videoInput = new VideoInput( videoInputPinIndex, inputType ); + } + } + } + + return videoInput; + } + + // Set type of input connected to video output of the crossbar + private void SetCurrentCrossbarInput( IAMCrossbar crossbar, VideoInput videoInput ) + { + if ( videoInput.Type != PhysicalConnectorType.Default ) + { + int inPinsCount, outPinsCount; + + // gen number of pins in the crossbar + if ( crossbar.get_PinCounts( out outPinsCount, out inPinsCount ) == 0 ) + { + int videoOutputPinIndex = -1; + int videoInputPinIndex = -1; + int pinIndexRelated; + PhysicalConnectorType type; + + // find index of the video output pin + for ( int i = 0; i < outPinsCount; i++ ) + { + if ( crossbar.get_CrossbarPinInfo( false, i, out pinIndexRelated, out type ) != 0 ) + continue; + + if ( type == PhysicalConnectorType.VideoDecoder ) + { + videoOutputPinIndex = i; + break; + } + } + + // find index of the required input pin + for ( int i = 0; i < inPinsCount; i++ ) + { + if ( crossbar.get_CrossbarPinInfo( true, i, out pinIndexRelated, out type ) != 0 ) + continue; + + if ( ( type == videoInput.Type ) && ( i == videoInput.Index ) ) + { + videoInputPinIndex = i; + break; + } + } + + // try connecting pins + if ( ( videoInputPinIndex != -1 ) && ( videoOutputPinIndex != -1 ) && + ( crossbar.CanRoute( videoOutputPinIndex, videoInputPinIndex ) == 0 ) ) + { + crossbar.Route( videoOutputPinIndex, videoInputPinIndex ); + } + } + } + } + + /// + /// Notifies clients about new frame. + /// + /// + /// New frame's image. + /// + private void OnNewFrame( Bitmap image ) + { + framesReceived++; + bytesReceived += image.Width * image.Height * ( Bitmap.GetPixelFormatSize( image.PixelFormat ) >> 3 ); + + if ( ( !stopEvent.WaitOne( 0, false ) ) && ( NewFrame != null ) ) + NewFrame( this, new NewFrameEventArgs( image ) ); + } + + /// + /// Notifies clients about new snapshot frame. + /// + /// + /// New snapshot's image. + /// + private void OnSnapshotFrame( Bitmap image ) + { + TimeSpan timeSinceStarted = DateTime.Now - startTime; + + // TODO: need to find better way to ignore the first snapshot, which is sent + // automatically (or better disable it) + if ( timeSinceStarted.TotalSeconds >= 4 ) + { + if ( ( !stopEvent.WaitOne( 0, false ) ) && ( SnapshotFrame != null ) ) + SnapshotFrame( this, new NewFrameEventArgs( image ) ); + } + } + + // + // Video grabber + // + private class Grabber : ISampleGrabberCB + { + private VideoCaptureDevice parent; + private bool snapshotMode; + private int width, height; + + // Width property + public int Width + { + get { return width; } + set { width = value; } + } + // Height property + public int Height + { + get { return height; } + set { height = value; } + } + + // Constructor + public Grabber( VideoCaptureDevice parent, bool snapshotMode ) + { + this.parent = parent; + this.snapshotMode = snapshotMode; + } + + // Callback to receive samples + public int SampleCB( double sampleTime, IntPtr sample ) + { + return 0; + } + + // Callback method that receives a pointer to the sample buffer + public int BufferCB( double sampleTime, IntPtr buffer, int bufferLen ) + { + if ( parent.NewFrame != null ) + { + // create new image + System.Drawing.Bitmap image = new Bitmap( width, height, PixelFormat.Format24bppRgb ); + + // lock bitmap data + BitmapData imageData = image.LockBits( + new Rectangle( 0, 0, width, height ), + ImageLockMode.ReadWrite, + PixelFormat.Format24bppRgb ); + + // copy image data + int srcStride = imageData.Stride; + int dstStride = imageData.Stride; + + unsafe + { + byte* dst = (byte*) imageData.Scan0.ToPointer( ) + dstStride * ( height - 1 ); + byte* src = (byte*) buffer.ToPointer( ); + + for ( int y = 0; y < height; y++ ) + { + Win32.memcpy( dst, src, srcStride ); + dst -= dstStride; + src += srcStride; + } + } + + // unlock bitmap data + image.UnlockBits( imageData ); + + // notify parent + if ( snapshotMode ) + { + parent.OnSnapshotFrame( image ); + } + else + { + parent.OnNewFrame( image ); + } + + // release the image + image.Dispose( ); + } + + return 0; + } + } + } +} diff --git a/Sources/Video.DirectShow/VideoCaptureDeviceForm.Designer.cs b/Sources/Video.DirectShow/VideoCaptureDeviceForm.Designer.cs new file mode 100644 index 00000000..c300a4f8 --- /dev/null +++ b/Sources/Video.DirectShow/VideoCaptureDeviceForm.Designer.cs @@ -0,0 +1,205 @@ +namespace AForge.Video.DirectShow +{ + partial class VideoCaptureDeviceForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose( bool disposing ) + { + if ( disposing && ( components != null ) ) + { + components.Dispose( ); + } + base.Dispose( disposing ); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent( ) + { + this.cancelButton = new System.Windows.Forms.Button( ); + this.okButton = new System.Windows.Forms.Button( ); + this.devicesCombo = new System.Windows.Forms.ComboBox( ); + this.groupBox1 = new System.Windows.Forms.GroupBox( ); + this.videoInputsCombo = new System.Windows.Forms.ComboBox( ); + this.label3 = new System.Windows.Forms.Label( ); + this.snapshotsLabel = new System.Windows.Forms.Label( ); + this.snapshotResolutionsCombo = new System.Windows.Forms.ComboBox( ); + this.videoResolutionsCombo = new System.Windows.Forms.ComboBox( ); + this.label2 = new System.Windows.Forms.Label( ); + this.label1 = new System.Windows.Forms.Label( ); + this.pictureBox = new System.Windows.Forms.PictureBox( ); + this.groupBox1.SuspendLayout( ); + ( (System.ComponentModel.ISupportInitialize) ( this.pictureBox ) ).BeginInit( ); + this.SuspendLayout( ); + // + // cancelButton + // + this.cancelButton.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.cancelButton.FlatStyle = System.Windows.Forms.FlatStyle.System; + this.cancelButton.Location = new System.Drawing.Point( 239, 190 ); + this.cancelButton.Name = "cancelButton"; + this.cancelButton.Size = new System.Drawing.Size( 75, 23 ); + this.cancelButton.TabIndex = 11; + this.cancelButton.Text = "Cancel"; + // + // okButton + // + this.okButton.DialogResult = System.Windows.Forms.DialogResult.OK; + this.okButton.FlatStyle = System.Windows.Forms.FlatStyle.System; + this.okButton.Location = new System.Drawing.Point( 149, 190 ); + this.okButton.Name = "okButton"; + this.okButton.Size = new System.Drawing.Size( 75, 23 ); + this.okButton.TabIndex = 10; + this.okButton.Text = "OK"; + this.okButton.Click += new System.EventHandler( this.okButton_Click ); + // + // devicesCombo + // + this.devicesCombo.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.devicesCombo.FormattingEnabled = true; + this.devicesCombo.Location = new System.Drawing.Point( 100, 40 ); + this.devicesCombo.Name = "devicesCombo"; + this.devicesCombo.Size = new System.Drawing.Size( 325, 21 ); + this.devicesCombo.TabIndex = 9; + this.devicesCombo.SelectedIndexChanged += new System.EventHandler( this.devicesCombo_SelectedIndexChanged ); + // + // groupBox1 + // + this.groupBox1.Controls.Add( this.videoInputsCombo ); + this.groupBox1.Controls.Add( this.label3 ); + this.groupBox1.Controls.Add( this.snapshotsLabel ); + this.groupBox1.Controls.Add( this.snapshotResolutionsCombo ); + this.groupBox1.Controls.Add( this.videoResolutionsCombo ); + this.groupBox1.Controls.Add( this.label2 ); + this.groupBox1.Controls.Add( this.label1 ); + this.groupBox1.Controls.Add( this.pictureBox ); + this.groupBox1.Controls.Add( this.devicesCombo ); + this.groupBox1.Location = new System.Drawing.Point( 10, 10 ); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size( 440, 165 ); + this.groupBox1.TabIndex = 12; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "Video capture device settings"; + // + // videoInputsCombo + // + this.videoInputsCombo.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.videoInputsCombo.FormattingEnabled = true; + this.videoInputsCombo.Location = new System.Drawing.Point( 100, 130 ); + this.videoInputsCombo.Name = "videoInputsCombo"; + this.videoInputsCombo.Size = new System.Drawing.Size( 150, 21 ); + this.videoInputsCombo.TabIndex = 17; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point( 100, 115 ); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size( 63, 13 ); + this.label3.TabIndex = 16; + this.label3.Text = "Video input:"; + // + // snapshotsLabel + // + this.snapshotsLabel.AutoSize = true; + this.snapshotsLabel.Location = new System.Drawing.Point( 275, 70 ); + this.snapshotsLabel.Name = "snapshotsLabel"; + this.snapshotsLabel.Size = new System.Drawing.Size( 101, 13 ); + this.snapshotsLabel.TabIndex = 15; + this.snapshotsLabel.Text = "Snapshot resoluton:"; + // + // snapshotResolutionsCombo + // + this.snapshotResolutionsCombo.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.snapshotResolutionsCombo.FormattingEnabled = true; + this.snapshotResolutionsCombo.Location = new System.Drawing.Point( 275, 85 ); + this.snapshotResolutionsCombo.Name = "snapshotResolutionsCombo"; + this.snapshotResolutionsCombo.Size = new System.Drawing.Size( 150, 21 ); + this.snapshotResolutionsCombo.TabIndex = 14; + // + // videoResolutionsCombo + // + this.videoResolutionsCombo.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.videoResolutionsCombo.FormattingEnabled = true; + this.videoResolutionsCombo.Location = new System.Drawing.Point( 100, 85 ); + this.videoResolutionsCombo.Name = "videoResolutionsCombo"; + this.videoResolutionsCombo.Size = new System.Drawing.Size( 150, 21 ); + this.videoResolutionsCombo.TabIndex = 13; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point( 100, 70 ); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size( 83, 13 ); + this.label2.TabIndex = 12; + this.label2.Text = "Video resoluton:"; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point( 100, 25 ); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size( 72, 13 ); + this.label1.TabIndex = 11; + this.label1.Text = "Video device:"; + // + // pictureBox + // + this.pictureBox.Image = global::AForge.Video.DirectShow.Properties.Resources.camera; + this.pictureBox.Location = new System.Drawing.Point( 20, 28 ); + this.pictureBox.Name = "pictureBox"; + this.pictureBox.Size = new System.Drawing.Size( 64, 64 ); + this.pictureBox.TabIndex = 10; + this.pictureBox.TabStop = false; + // + // VideoCaptureDeviceForm + // + this.AcceptButton = this.okButton; + this.AutoScaleDimensions = new System.Drawing.SizeF( 6F, 13F ); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.CancelButton = this.cancelButton; + this.ClientSize = new System.Drawing.Size( 462, 221 ); + this.Controls.Add( this.groupBox1 ); + this.Controls.Add( this.cancelButton ); + this.Controls.Add( this.okButton ); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow; + this.Name = "VideoCaptureDeviceForm"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Open local video capture device"; + this.Load += new System.EventHandler( this.VideoCaptureDeviceForm_Load ); + this.groupBox1.ResumeLayout( false ); + this.groupBox1.PerformLayout( ); + ( (System.ComponentModel.ISupportInitialize) ( this.pictureBox ) ).EndInit( ); + this.ResumeLayout( false ); + + } + + #endregion + + private System.Windows.Forms.Button cancelButton; + private System.Windows.Forms.Button okButton; + private System.Windows.Forms.ComboBox devicesCombo; + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.PictureBox pictureBox; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label snapshotsLabel; + private System.Windows.Forms.ComboBox snapshotResolutionsCombo; + private System.Windows.Forms.ComboBox videoResolutionsCombo; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.ComboBox videoInputsCombo; + private System.Windows.Forms.Label label3; + } +} \ No newline at end of file diff --git a/Sources/Video.DirectShow/VideoCaptureDeviceForm.cs b/Sources/Video.DirectShow/VideoCaptureDeviceForm.cs new file mode 100644 index 00000000..027b4014 --- /dev/null +++ b/Sources/Video.DirectShow/VideoCaptureDeviceForm.cs @@ -0,0 +1,354 @@ +// AForge Direct Show Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2009-2013 +// contacts@aforgenet.com +// + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.Text; +using System.Windows.Forms; + +using AForge.Video.DirectShow; + +namespace AForge.Video.DirectShow +{ + /// + /// Local video device selection form. + /// + /// + /// The form provides a standard way of selecting local video + /// device (USB web camera, capture board, etc. - anything supporting DirectShow + /// interface), which can be reused across applications. It allows selecting video + /// device, video size and snapshots size (if device supports snapshots and + /// user needs them). + /// + /// + /// + /// + public partial class VideoCaptureDeviceForm : Form + { + // collection of available video devices + private FilterInfoCollection videoDevices; + // selected video device + private VideoCaptureDevice videoDevice; + + // supported capabilities of video and snapshots + private Dictionary videoCapabilitiesDictionary = new Dictionary( ); + private Dictionary snapshotCapabilitiesDictionary = new Dictionary( ); + + // available video inputs + private VideoInput[] availableVideoInputs = null; + + // flag telling if user wants to configure snapshots as well + private bool configureSnapshots = false; + + /// + /// Specifies if snapshot configuration should be done or not. + /// + /// + /// The property specifies if the dialog form should + /// allow configuration of snapshot sizes (if selected video source supports + /// snapshots). If the property is set to , then + /// the form will provide additional combo box enumerating supported + /// snapshot sizes. Otherwise the combo boxes will be hidden. + /// + /// + /// If the property is set to and selected + /// device supports snapshots, then + /// property of the configured device is set to + /// . + /// + /// Default value of the property is set to . + /// + /// + public bool ConfigureSnapshots + { + get { return configureSnapshots; } + set + { + configureSnapshots = value; + snapshotsLabel.Visible = value; + snapshotResolutionsCombo.Visible = value; + } + } + + /// + /// Provides configured video device. + /// + /// + /// The property provides configured video device if user confirmed + /// the dialog using "OK" button. If user canceled the dialog, the property is + /// set to . + /// + public VideoCaptureDevice VideoDevice + { + get { return videoDevice; } + } + + private string videoDeviceMoniker = string.Empty; + private Size captureSize = new Size( 0, 0 ); + private Size snapshotSize = new Size( 0, 0 ); + private VideoInput videoInput = VideoInput.Default; + + /// + /// Moniker string of the selected video device. + /// + /// + /// The property allows to get moniker string of the selected device + /// on form completion or set video device which should be selected by default on + /// form loading. + /// + public string VideoDeviceMoniker + { + get { return videoDeviceMoniker; } + set { videoDeviceMoniker = value; } + } + + /// + /// Video frame size of the selected device. + /// + /// + /// The property allows to get video size of the selected device + /// on form completion or set the size to be selected by default on form loading. + /// + /// + public Size CaptureSize + { + get { return captureSize; } + set { captureSize = value; } + } + + /// + /// Snapshot frame size of the selected device. + /// + /// + /// The property allows to get snapshot size of the selected device + /// on form completion or set the size to be selected by default on form loading + /// (if property is set ). + /// + public Size SnapshotSize + { + get { return snapshotSize; } + set { snapshotSize = value; } + } + + /// + /// Video input to use with video capture card. + /// + /// + /// The property allows to get video input of the selected device + /// on form completion or set it to be selected by default on form loading. + /// + public VideoInput VideoInput + { + get { return videoInput; } + set { videoInput = value; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public VideoCaptureDeviceForm( ) + { + InitializeComponent( ); + ConfigureSnapshots = false; + + // show device list + try + { + // enumerate video devices + videoDevices = new FilterInfoCollection( FilterCategory.VideoInputDevice ); + + if ( videoDevices.Count == 0 ) + throw new ApplicationException( ); + + // add all devices to combo + foreach ( FilterInfo device in videoDevices ) + { + devicesCombo.Items.Add( device.Name ); + } + } + catch ( ApplicationException ) + { + devicesCombo.Items.Add( "No local capture devices" ); + devicesCombo.Enabled = false; + okButton.Enabled = false; + } + } + + // On form loaded + private void VideoCaptureDeviceForm_Load( object sender, EventArgs e ) + { + int selectedCameraIndex = 0; + + for ( int i = 0; i < videoDevices.Count; i++ ) + { + if ( videoDeviceMoniker == videoDevices[i].MonikerString ) + { + selectedCameraIndex = i; + break; + } + } + + devicesCombo.SelectedIndex = selectedCameraIndex; + } + + // Ok button clicked + private void okButton_Click( object sender, EventArgs e ) + { + videoDeviceMoniker = videoDevice.Source; + + // set video size + if ( videoCapabilitiesDictionary.Count != 0 ) + { + VideoCapabilities caps = videoCapabilitiesDictionary[(string) videoResolutionsCombo.SelectedItem]; + + videoDevice.VideoResolution = caps; + captureSize = caps.FrameSize; + } + + if ( configureSnapshots ) + { + // set snapshots size + if ( snapshotCapabilitiesDictionary.Count != 0 ) + { + VideoCapabilities caps = snapshotCapabilitiesDictionary[(string) snapshotResolutionsCombo.SelectedItem]; + + videoDevice.ProvideSnapshots = true; + videoDevice.SnapshotResolution = caps; + + snapshotSize = caps.FrameSize; + } + } + + if ( availableVideoInputs.Length != 0 ) + { + videoInput = availableVideoInputs[videoInputsCombo.SelectedIndex]; + videoDevice.CrossbarVideoInput = videoInput; + } + } + + // New video device is selected + private void devicesCombo_SelectedIndexChanged( object sender, EventArgs e ) + { + if ( videoDevices.Count != 0 ) + { + videoDevice = new VideoCaptureDevice( videoDevices[devicesCombo.SelectedIndex].MonikerString ); + EnumeratedSupportedFrameSizes( videoDevice ); + } + } + + // Collect supported video and snapshot sizes + private void EnumeratedSupportedFrameSizes( VideoCaptureDevice videoDevice ) + { + this.Cursor = Cursors.WaitCursor; + + videoResolutionsCombo.Items.Clear( ); + snapshotResolutionsCombo.Items.Clear( ); + videoInputsCombo.Items.Clear( ); + + videoCapabilitiesDictionary.Clear( ); + snapshotCapabilitiesDictionary.Clear( ); + + try + { + // collect video capabilities + VideoCapabilities[] videoCapabilities = videoDevice.VideoCapabilities; + int videoResolutionIndex = 0; + + foreach ( VideoCapabilities capabilty in videoCapabilities ) + { + string item = string.Format( + "{0} x {1}", capabilty.FrameSize.Width, capabilty.FrameSize.Height ); + + if ( !videoResolutionsCombo.Items.Contains( item ) ) + { + if ( captureSize == capabilty.FrameSize ) + { + videoResolutionIndex = videoResolutionsCombo.Items.Count; + } + + videoResolutionsCombo.Items.Add( item ); + } + + if ( !videoCapabilitiesDictionary.ContainsKey( item ) ) + { + videoCapabilitiesDictionary.Add( item, capabilty ); + } + } + + if ( videoCapabilities.Length == 0 ) + { + videoResolutionsCombo.Items.Add( "Not supported" ); + } + + videoResolutionsCombo.SelectedIndex = videoResolutionIndex; + + + if ( configureSnapshots ) + { + // collect snapshot capabilities + VideoCapabilities[] snapshotCapabilities = videoDevice.SnapshotCapabilities; + int snapshotResolutionIndex = 0; + + foreach ( VideoCapabilities capabilty in snapshotCapabilities ) + { + string item = string.Format( + "{0} x {1}", capabilty.FrameSize.Width, capabilty.FrameSize.Height ); + + if ( !snapshotResolutionsCombo.Items.Contains( item ) ) + { + if ( snapshotSize == capabilty.FrameSize ) + { + snapshotResolutionIndex = snapshotResolutionsCombo.Items.Count; + } + + snapshotResolutionsCombo.Items.Add( item ); + snapshotCapabilitiesDictionary.Add( item, capabilty ); + } + } + + if ( snapshotCapabilities.Length == 0 ) + { + snapshotResolutionsCombo.Items.Add( "Not supported" ); + } + + snapshotResolutionsCombo.SelectedIndex = snapshotResolutionIndex; + } + + // get video inputs + availableVideoInputs = videoDevice.AvailableCrossbarVideoInputs; + int videoInputIndex = 0; + + foreach ( VideoInput input in availableVideoInputs ) + { + string item = string.Format( "{0}: {1}", input.Index, input.Type ); + + if ( ( input.Index == videoInput.Index ) && ( input.Type == videoInput.Type ) ) + { + videoInputIndex = videoInputsCombo.Items.Count; + } + + videoInputsCombo.Items.Add( item ); + } + + if ( availableVideoInputs.Length == 0 ) + { + videoInputsCombo.Items.Add( "Not supported" ); + } + + videoInputsCombo.SelectedIndex = videoInputIndex; + } + finally + { + this.Cursor = Cursors.Default; + } + } + } +} diff --git a/Sources/Video.DirectShow/VideoCaptureDeviceForm.resx b/Sources/Video.DirectShow/VideoCaptureDeviceForm.resx new file mode 100644 index 00000000..19dc0dd8 --- /dev/null +++ b/Sources/Video.DirectShow/VideoCaptureDeviceForm.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Sources/Video.DirectShow/VideoInput.cs b/Sources/Video.DirectShow/VideoInput.cs new file mode 100644 index 00000000..d88b64d3 --- /dev/null +++ b/Sources/Video.DirectShow/VideoInput.cs @@ -0,0 +1,47 @@ +// AForge Direct Show Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2009-2012 +// contacts@aforgenet.com +// + +namespace AForge.Video.DirectShow +{ + using System; + + /// + /// Video input of a capture board. + /// + /// + /// The class is used to describe video input of devices like video capture boards, + /// which usually provide several inputs. + /// + /// + public class VideoInput + { + /// + /// Index of the video input. + /// + public readonly int Index; + + /// + /// Type of the video input. + /// + public readonly PhysicalConnectorType Type; + + internal VideoInput( int index, PhysicalConnectorType type ) + { + Index = index; + Type = type; + } + + /// + /// Default video input. Used to specify that it should not be changed. + /// + public static VideoInput Default + { + get { return new VideoInput( -1, PhysicalConnectorType.Default ); } + } + } +} diff --git a/Sources/Video.FFMPEG/AForge.Video.FFMPEG.snk b/Sources/Video.FFMPEG/AForge.Video.FFMPEG.snk new file mode 100644 index 00000000..31b7a57c Binary files /dev/null and b/Sources/Video.FFMPEG/AForge.Video.FFMPEG.snk differ diff --git a/Sources/Video.FFMPEG/AssemblyInfo.cpp b/Sources/Video.FFMPEG/AssemblyInfo.cpp new file mode 100644 index 00000000..a7956298 --- /dev/null +++ b/Sources/Video.FFMPEG/AssemblyInfo.cpp @@ -0,0 +1,41 @@ +#include "stdafx.h" + +using namespace System; +using namespace System::Reflection; +using namespace System::Runtime::CompilerServices; +using namespace System::Runtime::InteropServices; +using namespace System::Security::Permissions; + +// +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +// +[assembly:AssemblyTitleAttribute("AForge.Video.FFMPEG")]; +[assembly:AssemblyDescriptionAttribute("")]; +[assembly:AssemblyConfigurationAttribute("")]; +[assembly:AssemblyCompanyAttribute("AForge")]; +[assembly:AssemblyProductAttribute("AForge.NET")]; +[assembly:AssemblyCopyrightAttribute("AForge © 2012")]; +[assembly:AssemblyTrademarkAttribute("")]; +[assembly:AssemblyCultureAttribute("")]; + +// +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the value or you can default the Revision and Build Numbers +// by using the '*' as shown below: + +[assembly:AssemblyVersionAttribute("2.2.5.0")]; +[assembly:AssemblyFileVersionAttribute("2.2.5.0")] + +[assembly:ComVisible(false)]; + +[assembly:CLSCompliantAttribute(true)]; + +[assembly:SecurityPermission(SecurityAction::RequestMinimum, UnmanagedCode = true)]; diff --git a/Sources/Video.FFMPEG/Stdafx.cpp b/Sources/Video.FFMPEG/Stdafx.cpp new file mode 100644 index 00000000..c338e3fc --- /dev/null +++ b/Sources/Video.FFMPEG/Stdafx.cpp @@ -0,0 +1,5 @@ +// stdafx.cpp : source file that includes just the standard includes +// Video.FFMPEG.pch will be the pre-compiled header +// stdafx.obj will contain the pre-compiled type information + +#include "stdafx.h" diff --git a/Sources/Video.FFMPEG/Stdafx.h b/Sources/Video.FFMPEG/Stdafx.h new file mode 100644 index 00000000..7da7ddf4 --- /dev/null +++ b/Sources/Video.FFMPEG/Stdafx.h @@ -0,0 +1,7 @@ +// stdafx.h : include file for standard system include files, +// or project specific include files that are used frequently, +// but are changed infrequently + +#pragma once + +#include \ No newline at end of file diff --git a/Sources/Video.FFMPEG/Video.FFMPEG.sln b/Sources/Video.FFMPEG/Video.FFMPEG.sln new file mode 100644 index 00000000..0905bb36 --- /dev/null +++ b/Sources/Video.FFMPEG/Video.FFMPEG.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual C++ Express 2010 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Video.FFMPEG", "Video.FFMPEG.vcxproj", "{FF31DD24-127D-4EB1-929C-F5738147E886}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {FF31DD24-127D-4EB1-929C-F5738147E886}.Debug|Win32.ActiveCfg = Debug|Win32 + {FF31DD24-127D-4EB1-929C-F5738147E886}.Debug|Win32.Build.0 = Debug|Win32 + {FF31DD24-127D-4EB1-929C-F5738147E886}.Release|Win32.ActiveCfg = Release|Win32 + {FF31DD24-127D-4EB1-929C-F5738147E886}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Sources/Video.FFMPEG/Video.FFMPEG.vcxproj b/Sources/Video.FFMPEG/Video.FFMPEG.vcxproj new file mode 100644 index 00000000..c072b226 --- /dev/null +++ b/Sources/Video.FFMPEG/Video.FFMPEG.vcxproj @@ -0,0 +1,142 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {FF31DD24-127D-4EB1-929C-F5738147E886} + VideoFFMPEG + ManagedCProj + v2.0 + + + + DynamicLibrary + Unicode + true + true + + + DynamicLibrary + Unicode + true + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + ..\..\Release\ + $(Configuration)\ + true + ..\..\Release\ + $(Configuration)\ + false + AForge.Video.FFMPEG + AForge.Video.FFMPEG + + + + Disabled + ..\..\Externals\ffmpeg\include;..\..\Externals\msinttypes;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;__STDC_CONSTANT_MACROS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + Use + true + Level3 + ProgramDatabase + + + avformat.lib;avcodec.lib;avutil.lib;swscale.lib + $(OutDir)$(TargetName).dll + ..\..\Externals\ffmpeg\lib;%(AdditionalLibraryDirectories) + true + true + MachineX86 + + + false + + + + + ..\..\Externals\ffmpeg\include;..\..\Externals\msinttypes;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;__STDC_CONSTANT_MACROS;%(PreprocessorDefinitions) + MultiThreadedDLL + Use + true + Level3 + ProgramDatabase + + + avformat.lib;avcodec.lib;avutil.lib;swscale.lib + $(OutDir)$(TargetName).dll + ..\..\Externals\ffmpeg\lib;%(AdditionalLibraryDirectories) + true + MachineX86 + AForge.Video.FFMPEG.snk + true + + + false + + + sn -Ra "$(TargetPath)" "$(ProjectDir)AForge.Video.FFMPEG.snk" + + + + + ..\..\Release\AForge.Video.dll + + + ..\..\Release\AForge.Video.dll + + + true + true + + + true + true + + + true + true + + + + + + Create + Create + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Sources/Video.FFMPEG/Video.FFMPEG.vcxproj.filters b/Sources/Video.FFMPEG/Video.FFMPEG.vcxproj.filters new file mode 100644 index 00000000..990910ce --- /dev/null +++ b/Sources/Video.FFMPEG/Video.FFMPEG.vcxproj.filters @@ -0,0 +1,50 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + \ No newline at end of file diff --git a/Sources/Video.FFMPEG/VideoCodec.cpp b/Sources/Video.FFMPEG/VideoCodec.cpp new file mode 100644 index 00000000..734a85d8 --- /dev/null +++ b/Sources/Video.FFMPEG/VideoCodec.cpp @@ -0,0 +1,48 @@ +// AForge FFMPEG Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2009-2011 +// contacts@aforgenet.com +// + +#include "StdAfx.h" +#include "VideoCodec.h" + +namespace libffmpeg +{ + extern "C" + { + #pragma warning(disable:4635) + #pragma warning(disable:4244) + #include "libavcodec\avcodec.h" + } +} + +int video_codecs[] = +{ + libffmpeg::CODEC_ID_MPEG4, + libffmpeg::CODEC_ID_WMV1, + libffmpeg::CODEC_ID_WMV2, + libffmpeg::CODEC_ID_MSMPEG4V2, + libffmpeg::CODEC_ID_MSMPEG4V3, + libffmpeg::CODEC_ID_H263P, + libffmpeg::CODEC_ID_FLV1, + libffmpeg::CODEC_ID_MPEG2VIDEO, + libffmpeg::CODEC_ID_RAWVIDEO +}; + +int pixel_formats[] = +{ + libffmpeg::PIX_FMT_YUV420P, + libffmpeg::PIX_FMT_YUV420P, + libffmpeg::PIX_FMT_YUV420P, + libffmpeg::PIX_FMT_YUV420P, + libffmpeg::PIX_FMT_YUV420P, + libffmpeg::PIX_FMT_YUV420P, + libffmpeg::PIX_FMT_YUV420P, + libffmpeg::PIX_FMT_YUV420P, + libffmpeg::PIX_FMT_BGR24, +}; + +int CODECS_COUNT ( sizeof( video_codecs ) / sizeof( libffmpeg::CodecID ) ); \ No newline at end of file diff --git a/Sources/Video.FFMPEG/VideoCodec.h b/Sources/Video.FFMPEG/VideoCodec.h new file mode 100644 index 00000000..c26502cd --- /dev/null +++ b/Sources/Video.FFMPEG/VideoCodec.h @@ -0,0 +1,67 @@ +// AForge FFMPEG Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2009-2011 +// contacts@aforgenet.com +// + +#pragma once + +using namespace System; + +extern int video_codecs[]; +extern int pixel_formats[]; + +extern int CODECS_COUNT; + +namespace AForge { namespace Video { namespace FFMPEG +{ + /// + /// Enumeration of some video codecs from FFmpeg library, which are available for writing video files. + /// + public enum class VideoCodec + { + /// + /// Default video codec, which FFmpeg library selects for the specified file format. + /// + Default = -1, + /// + /// MPEG-4 part 2. + /// + MPEG4 = 0, + /// + /// Windows Media Video 7. + /// + WMV1, + /// + /// Windows Media Video 8. + /// + WMV2, + /// + /// MPEG-4 part 2 Microsoft variant version 2. + /// + MSMPEG4v2, + /// + /// MPEG-4 part 2 Microsoft variant version 3. + /// + MSMPEG4v3, + /// + /// H.263+ / H.263-1998 / H.263 version 2. + /// + H263P, + /// + /// Flash Video (FLV) / Sorenson Spark / Sorenson H.263. + /// + FLV1, + /// + /// MPEG-2 part 2. + /// + MPEG2, + /// + /// Raw (uncompressed) video. + /// + Raw, + }; + +} } } \ No newline at end of file diff --git a/Sources/Video.FFMPEG/VideoFileReader.cpp b/Sources/Video.FFMPEG/VideoFileReader.cpp new file mode 100644 index 00000000..eb17cc59 --- /dev/null +++ b/Sources/Video.FFMPEG/VideoFileReader.cpp @@ -0,0 +1,321 @@ +// AForge FFMPEG Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2009-2012 +// contacts@aforgenet.com +// + +#include "StdAfx.h" +#include "VideoFileReader.h" + +namespace libffmpeg +{ + extern "C" + { + // disable warnings about badly formed documentation from FFmpeg, which we don't need at all + #pragma warning(disable:4635) + // disable warning about conversion int64 to int32 + #pragma warning(disable:4244) + + #include "libavformat\avformat.h" + #include "libavformat\avio.h" + #include "libavcodec\avcodec.h" + #include "libswscale\swscale.h" + } +} + +namespace AForge { namespace Video { namespace FFMPEG +{ +#pragma region Some private FFmpeg related stuff hidden out of header file + +// A structure to encapsulate all FFMPEG related private variable +ref struct ReaderPrivateData +{ +public: + libffmpeg::AVFormatContext* FormatContext; + libffmpeg::AVStream* VideoStream; + libffmpeg::AVCodecContext* CodecContext; + libffmpeg::AVFrame* VideoFrame; + struct libffmpeg::SwsContext* ConvertContext; + + libffmpeg::AVPacket* Packet; + int BytesRemaining; + + ReaderPrivateData( ) + { + FormatContext = NULL; + VideoStream = NULL; + CodecContext = NULL; + VideoFrame = NULL; + ConvertContext = NULL; + + Packet = NULL; + BytesRemaining = 0; + } +}; +#pragma endregion + +// Class constructor +VideoFileReader::VideoFileReader( void ) : + data( nullptr ), disposed( false ) +{ + libffmpeg::av_register_all( ); +} + +#pragma managed(push, off) +static libffmpeg::AVFormatContext* open_file( char* fileName ) +{ + libffmpeg::AVFormatContext* formatContext; + + if ( libffmpeg::av_open_input_file( &formatContext, fileName, NULL, 0, NULL ) !=0 ) + { + return NULL; + } + return formatContext; +} +#pragma managed(pop) + +// Opens the specified video file +void VideoFileReader::Open( String^ fileName ) +{ + CheckIfDisposed( ); + + // close previous file if any was open + Close( ); + + data = gcnew ReaderPrivateData( ); + data->Packet = new libffmpeg::AVPacket( ); + data->Packet->data = NULL; + + bool success = false; + + // convert specified managed String to UTF8 unmanaged string + IntPtr ptr = System::Runtime::InteropServices::Marshal::StringToHGlobalUni( fileName ); + wchar_t* nativeFileNameUnicode = (wchar_t*) ptr.ToPointer( ); + int utf8StringSize = WideCharToMultiByte( CP_UTF8, 0, nativeFileNameUnicode, -1, NULL, 0, NULL, NULL ); + char* nativeFileName = new char[utf8StringSize]; + WideCharToMultiByte( CP_UTF8, 0, nativeFileNameUnicode, -1, nativeFileName, utf8StringSize, NULL, NULL ); + + try + { + // open the specified video file + data->FormatContext = open_file( nativeFileName ); + if ( data->FormatContext == NULL ) + { + throw gcnew System::IO::IOException( "Cannot open the video file." ); + } + + // retrieve stream information + if ( libffmpeg::av_find_stream_info( data->FormatContext ) < 0 ) + { + throw gcnew VideoException( "Cannot find stream information." ); + } + + // search for the first video stream + for ( unsigned int i = 0; i < data->FormatContext->nb_streams; i++ ) + { + if( data->FormatContext->streams[i]->codec->codec_type == libffmpeg::AVMEDIA_TYPE_VIDEO ) + { + // get the pointer to the codec context for the video stream + data->CodecContext = data->FormatContext->streams[i]->codec; + data->VideoStream = data->FormatContext->streams[i]; + break; + } + } + if ( data->VideoStream == NULL ) + { + throw gcnew VideoException( "Cannot find video stream in the specified file." ); + } + + // find decoder for the video stream + libffmpeg::AVCodec* codec = libffmpeg::avcodec_find_decoder( data->CodecContext->codec_id ); + if ( codec == NULL ) + { + throw gcnew VideoException( "Cannot find codec to decode the video stream." ); + } + + // open the codec + if ( libffmpeg::avcodec_open( data->CodecContext, codec ) < 0 ) + { + throw gcnew VideoException( "Cannot open video codec." ); + } + + // allocate video frame + data->VideoFrame = libffmpeg::avcodec_alloc_frame( ); + + // prepare scaling context to convert RGB image to video format + data->ConvertContext = libffmpeg::sws_getContext( data->CodecContext->width, data->CodecContext->height, data->CodecContext->pix_fmt, + data->CodecContext->width, data->CodecContext->height, libffmpeg::PIX_FMT_BGR24, + SWS_BICUBIC, NULL, NULL, NULL ); + + if ( data->ConvertContext == NULL ) + { + throw gcnew VideoException( "Cannot initialize frames conversion context." ); + } + + // get some properties of the video file + m_width = data->CodecContext->width; + m_height = data->CodecContext->height; + m_frameRate = data->VideoStream->r_frame_rate.num / data->VideoStream->r_frame_rate.den; + m_codecName = gcnew String( data->CodecContext->codec->name ); + m_framesCount = data->VideoStream->nb_frames; + + success = true; + } + finally + { + System::Runtime::InteropServices::Marshal::FreeHGlobal( ptr ); + delete [] nativeFileName; + + if ( !success ) + { + Close( ); + } + } +} + +// Close current video file +void VideoFileReader::Close( ) +{ + if ( data != nullptr ) + { + if ( data->VideoFrame != NULL ) + { + libffmpeg::av_free( data->VideoFrame ); + } + + if ( data->CodecContext != NULL ) + { + libffmpeg::avcodec_close( data->CodecContext ); + } + + if ( data->FormatContext != NULL ) + { + libffmpeg::av_close_input_file( data->FormatContext ); + } + + if ( data->ConvertContext != NULL ) + { + libffmpeg::sws_freeContext( data->ConvertContext ); + } + + if ( data->Packet->data != NULL ) + { + libffmpeg::av_free_packet( data->Packet ); + } + + data = nullptr; + } +} + +// Read next video frame of the current video file +Bitmap^ VideoFileReader::ReadVideoFrame( ) +{ + CheckIfDisposed( ); + + if ( data == nullptr ) + { + throw gcnew System::IO::IOException( "Cannot read video frames since video file is not open." ); + } + + int frameFinished; + Bitmap^ bitmap = nullptr; + + int bytesDecoded; + bool exit = false; + + while ( true ) + { + // work on the current packet until we have decoded all of it + while ( data->BytesRemaining > 0 ) + { + // decode the next chunk of data + bytesDecoded = libffmpeg::avcodec_decode_video2( data->CodecContext, data->VideoFrame, &frameFinished, data->Packet ); + + // was there an error? + if ( bytesDecoded < 0 ) + { + throw gcnew VideoException( "Error while decoding frame." ); + } + + data->BytesRemaining -= bytesDecoded; + + // did we finish the current frame? Then we can return + if ( frameFinished ) + { + return DecodeVideoFrame( ); + } + } + + // read the next packet, skipping all packets that aren't + // for this stream + do + { + // free old packet if any + if ( data->Packet->data != NULL ) + { + libffmpeg::av_free_packet( data->Packet ); + data->Packet->data = NULL; + } + + // read new packet + if ( libffmpeg::av_read_frame( data->FormatContext, data->Packet ) < 0) + { + exit = true; + break; + } + } + while ( data->Packet->stream_index != data->VideoStream->index ); + + // exit ? + if ( exit ) + break; + + data->BytesRemaining = data->Packet->size; + } + + // decode the rest of the last frame + bytesDecoded = libffmpeg::avcodec_decode_video2( + data->CodecContext, data->VideoFrame, &frameFinished, data->Packet ); + + // free last packet + if ( data->Packet->data != NULL ) + { + libffmpeg::av_free_packet( data->Packet ); + data->Packet->data = NULL; + } + + // is there a frame + if ( frameFinished ) + { + bitmap = DecodeVideoFrame( ); + } + + return bitmap; +} + +// Decodes video frame into managed Bitmap +Bitmap^ VideoFileReader::DecodeVideoFrame( ) +{ + Bitmap^ bitmap = gcnew Bitmap( data->CodecContext->width, data->CodecContext->height, PixelFormat::Format24bppRgb ); + + // lock the bitmap + BitmapData^ bitmapData = bitmap->LockBits( System::Drawing::Rectangle( 0, 0, data->CodecContext->width, data->CodecContext->height ), + ImageLockMode::ReadOnly, PixelFormat::Format24bppRgb ); + + libffmpeg::uint8_t* ptr = reinterpret_cast( static_cast( bitmapData->Scan0 ) ); + + libffmpeg::uint8_t* srcData[4] = { ptr, NULL, NULL, NULL }; + int srcLinesize[4] = { bitmapData->Stride, 0, 0, 0 }; + + // convert video frame to the RGB bitmap + libffmpeg::sws_scale( data->ConvertContext, data->VideoFrame->data, data->VideoFrame->linesize, 0, + data->CodecContext->height, srcData, srcLinesize ); + + bitmap->UnlockBits( bitmapData ); + + return bitmap; +} + +} } } \ No newline at end of file diff --git a/Sources/Video.FFMPEG/VideoFileReader.h b/Sources/Video.FFMPEG/VideoFileReader.h new file mode 100644 index 00000000..b1b7d5f7 --- /dev/null +++ b/Sources/Video.FFMPEG/VideoFileReader.h @@ -0,0 +1,242 @@ +// AForge FFMPEG Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2009-2011 +// contacts@aforgenet.com +// + +#pragma once + +using namespace System; +using namespace System::Drawing; +using namespace System::Drawing::Imaging; +using namespace AForge::Video; + +namespace AForge { namespace Video { namespace FFMPEG +{ + ref struct ReaderPrivateData; + + /// + /// Class for reading video files utilizing FFmpeg library. + /// + /// + /// The class allows to read video files using FFmpeg library. + /// + /// Make sure you have FFmpeg binaries (DLLs) in the output folder of your application in order + /// to use this class successfully. FFmpeg binaries can be found in Externals folder provided with AForge.NET + /// framework's distribution. + /// + /// Sample usage: + /// + /// // create instance of video reader + /// VideoFileReader reader = new VideoFileReader( ); + /// // open video file + /// reader.Open( "test.avi" ); + /// // check some of its attributes + /// Console.WriteLine( "width: " + reader.Width ); + /// Console.WriteLine( "height: " + reader.Height ); + /// Console.WriteLine( "fps: " + reader.FrameRate ); + /// Console.WriteLine( "codec: " + reader.CodecName ); + /// // read 100 video frames out of it + /// for ( int i = 0; i < 100; i++ ) + /// { + /// Bitmap videoFrame = reader.ReadVideoFrame( ); + /// // process the frame somehow + /// // ... + /// + /// // dispose the frame when it is no longer required + /// videoFrame.Dispose( ); + /// } + /// reader.Close( ); + /// + /// + /// + public ref class VideoFileReader : IDisposable + { + public: + + /// + /// Frame width of the opened video file. + /// + /// + /// Thrown if no video file was open. + /// + property int Width + { + int get( ) + { + CheckIfVideoFileIsOpen( ); + return m_width; + } + } + + /// + /// Frame height of the opened video file. + /// + /// + /// Thrown if no video file was open. + /// + property int Height + { + int get( ) + { + CheckIfVideoFileIsOpen( ); + return m_height; + } + } + + /// + /// Frame rate of the opened video file. + /// + /// + /// Thrown if no video file was open. + /// + property int FrameRate + { + int get( ) + { + CheckIfVideoFileIsOpen( ); + return m_frameRate; + } + } + + /// + /// Number of video frames in the opened video file. + /// + /// + /// Warning: some video file formats may report different value + /// from the actual number of video frames in the file (subject to fix/investigate). + /// + /// + /// Thrown if no video file was open. + /// + property Int64 FrameCount + { + Int64 get( ) + { + CheckIfVideoFileIsOpen( ); + return m_framesCount; + } + } + + /// + /// Name of codec used for encoding the opened video file. + /// + /// + /// Thrown if no video file was open. + /// + property String^ CodecName + { + String^ get( ) + { + CheckIfVideoFileIsOpen( ); + return m_codecName; + } + } + + /// + /// The property specifies if a video file is opened or not by this instance of the class. + /// + property bool IsOpen + { + bool get ( ) + { + return ( data != nullptr ); + } + } + + protected: + + /// + /// Object's finalizer. + /// + /// + !VideoFileReader( ) + { + Close( ); + } + + public: + + /// + /// Initializes a new instance of the class. + /// + /// + VideoFileReader( void ); + + /// + /// Disposes the object and frees its resources. + /// + /// + ~VideoFileReader( ) + { + this->!VideoFileReader( ); + disposed = true; + } + + /// + /// Open video file with the specified name. + /// + /// + /// Video file name to open. + /// + /// Cannot open video file with the specified name. + /// A error occurred while opening the video file. See exception message. + /// + void Open( String^ fileName ); + + /// + /// Read next video frame of the currently opened video file. + /// + /// + /// Returns next video frame of the opened file or if end of + /// file was reached. The returned video frame has 24 bpp color format. + /// + /// Thrown if no video file was open. + /// A error occurred while reading next video frame. See exception message. + /// + Bitmap^ ReadVideoFrame( ); + + /// + /// Close currently opened video file if any. + /// + /// + void Close( ); + + private: + + int m_width; + int m_height; + int m_frameRate; + String^ m_codecName; + Int64 m_framesCount; + + private: + Bitmap^ DecodeVideoFrame( ); + + // Checks if video file was opened + void CheckIfVideoFileIsOpen( ) + { + if ( data == nullptr ) + { + throw gcnew System::IO::IOException( "Video file is not open, so can not access its properties." ); + } + } + + // Check if the object was already disposed + void CheckIfDisposed( ) + { + if ( disposed ) + { + throw gcnew System::ObjectDisposedException( "The object was already disposed." ); + } + } + + private: + // private data of the class + ReaderPrivateData^ data; + bool disposed; + }; + +} } } diff --git a/Sources/Video.FFMPEG/VideoFileSource.cpp b/Sources/Video.FFMPEG/VideoFileSource.cpp new file mode 100644 index 00000000..c76af0aa --- /dev/null +++ b/Sources/Video.FFMPEG/VideoFileSource.cpp @@ -0,0 +1,148 @@ +// AForge FFMPEG Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2009-2011 +// contacts@aforgenet.com +// + +#include "StdAfx.h" +#include "VideoFileSource.h" +#include "VideoFileReader.h" + +namespace AForge { namespace Video { namespace FFMPEG +{ + +VideoFileSource::VideoFileSource( String^ fileName ) +{ + m_fileName = fileName; + m_workerThread = nullptr; + m_needToStop = nullptr; + + m_frameIntervalFromSource = true; + m_frameInterval = 0; +} + +void VideoFileSource::Start( ) +{ + if ( !IsRunning ) + { + // check source + if ( String::IsNullOrEmpty( m_fileName ) ) + { + throw gcnew ArgumentException( "Video file name is not specified." ); + } + + m_framesReceived = 0; + m_bytesReceived = 0; + + // create events + m_needToStop = gcnew ManualResetEvent( false ); + + // create and start new thread + m_workerThread = gcnew Thread( gcnew ThreadStart( this, &VideoFileSource::WorkerThreadHandler ) ); + m_workerThread->Name = m_fileName; // just for debugging + m_workerThread->Start( ); + } +} + +void VideoFileSource::SignalToStop( ) +{ + if ( m_workerThread != nullptr ) + { + // signal to stop + m_needToStop->Set( ); + } +} + +void VideoFileSource::WaitForStop( ) +{ + if ( m_workerThread != nullptr ) + { + // wait for thread stop + m_workerThread->Join( ); + + Free( ); + } +} + +void VideoFileSource::Stop( ) +{ + if ( IsRunning ) + { + m_workerThread->Abort( ); + WaitForStop( ); + } +} + +void VideoFileSource::Free( ) +{ + m_workerThread = nullptr; + + // release events + m_needToStop->Close( ); + m_needToStop = nullptr; +} + +void VideoFileSource::WorkerThreadHandler( ) +{ + ReasonToFinishPlaying reasonToStop = ReasonToFinishPlaying::StoppedByUser; + VideoFileReader^ videoReader = gcnew VideoFileReader( ); + + try + { + videoReader->Open( m_fileName ); + + // frame interval + int interval = ( m_frameIntervalFromSource ) ? + (int) ( 1000 / ( ( videoReader->FrameRate == 0 ) ? 25 : videoReader->FrameRate ) ) : + m_frameInterval; + + while ( !m_needToStop->WaitOne( 0, false ) ) + { + // start time + DateTime start = DateTime::Now; + + // get next video frame + Bitmap^ bitmap = videoReader->ReadVideoFrame( ); + + if ( bitmap == nullptr ) + { + reasonToStop = ReasonToFinishPlaying::EndOfStreamReached; + break; + } + + m_framesReceived++; + m_bytesReceived += bitmap->Width * bitmap->Height * + ( Bitmap::GetPixelFormatSize( bitmap->PixelFormat ) >> 3 ); + + // notify clients about the new video frame + NewFrame( this, gcnew NewFrameEventArgs( bitmap ) ); + + // dispose the frame since we no longer need it + delete bitmap; + + // wait for a while ? + if ( interval > 0 ) + { + // get frame extract duration + TimeSpan^ span = DateTime::Now.Subtract( start ); + + // miliseconds to sleep + int msec = interval - (int) span->TotalMilliseconds; + + if ( ( msec > 0 ) && ( m_needToStop->WaitOne( msec, false ) == true ) ) + break; + } + } + } + catch ( Exception^ exception ) + { + VideoSourceError( this, gcnew VideoSourceErrorEventArgs( exception->Message ) ); + } + + videoReader->Close( ); + PlayingFinished( this, reasonToStop ); +} + +} } } \ No newline at end of file diff --git a/Sources/Video.FFMPEG/VideoFileSource.h b/Sources/Video.FFMPEG/VideoFileSource.h new file mode 100644 index 00000000..a5358f12 --- /dev/null +++ b/Sources/Video.FFMPEG/VideoFileSource.h @@ -0,0 +1,285 @@ +// AForge FFMPEG Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2009-2011 +// contacts@aforgenet.com +// + +#pragma once + +using namespace System; +using namespace System::Drawing; +using namespace System::Drawing::Imaging; +using namespace System::Threading; +using namespace AForge::Video; + +namespace AForge { namespace Video { namespace FFMPEG +{ + /// + /// Video source for video files. + /// + /// + /// The video source provides access to video files using FFmpeg library. + /// + /// The class provides video only. Sound is not supported. + /// + /// The class ignores presentation time of video frames while retrieving them from + /// video file. Instead it provides video frames according to the FPS rate of the video file + /// or the configured . + /// + /// Make sure you have FFmpeg binaries (DLLs) in the output folder of your application in order + /// to use this class successfully. FFmpeg binaries can be found in Externals folder provided with AForge.NET + /// framework's distribution. + /// + /// Sample usage: + /// + /// // create video source + /// VideoFileSource videoSource = new VideoFileSource( fileName ); + /// // set NewFrame event handler + /// videoSource.NewFrame += new NewFrameEventHandler( video_NewFrame ); + /// // start the video source + /// videoSource.Start( ); + /// // ... + /// + /// // New frame event handler, which is invoked on each new available video frame + /// private void video_NewFrame( object sender, NewFrameEventArgs eventArgs ) + /// { + /// // get new frame + /// Bitmap bitmap = eventArgs.Frame; + /// // process the frame + /// } + /// + /// + /// + public ref class VideoFileSource : IVideoSource + { + public: + + /// + /// New frame event. + /// + /// + /// Notifies clients about new available frame from video source. + /// + /// Since video source may have multiple clients, each client is responsible for + /// making a copy (cloning) of the passed video frame, because the video source disposes its + /// own original copy after notifying of clients. + /// + /// + virtual event NewFrameEventHandler^ NewFrame; + + /// + /// Video source error event. + /// + /// + /// This event is used to notify clients about any type of errors occurred in + /// video source object, for example internal exceptions. + /// + virtual event VideoSourceErrorEventHandler^ VideoSourceError; + + /// + /// Video playing finished event. + /// + /// + /// This event is used to notify clients that the video playing has finished. + /// + /// + virtual event PlayingFinishedEventHandler^ PlayingFinished; + + /// + /// Video source. + /// + /// + /// Video file name to play. + /// + property String^ Source + { + virtual String^ get( ) + { + return m_fileName; + } + void set( String^ fileName ) + { + m_fileName = fileName; + } + } + + /// + /// Received frames count. + /// + /// + /// Number of frames the video source provided from the moment of the last + /// access to the property. + /// + /// + property int FramesReceived + { + virtual int get( ) + { + int frames = m_framesReceived; + m_framesReceived = 0; + return frames; + } + } + + /// + /// Received bytes count. + /// + /// + /// Number of bytes the video source provided from the moment of the last + /// access to the property. + /// + /// + property long long BytesReceived + { + virtual long long get( ) + { + return 0; + } + } + + /// + /// State of the video source. + /// + /// + /// Current state of video source object - running or not. + /// + property bool IsRunning + { + virtual bool get( ) + { + if ( m_workerThread != nullptr ) + { + // check if the thread is still running + if ( m_workerThread->Join( 0 ) == false ) + return true; + + Free( ); + } + return false; + } + } + + /// + /// Frame interval. + /// + /// + /// The property sets the interval in milliseconds between frames. If the property is + /// set to 100, then the desired frame rate will be 10 frames per second. + /// + /// Setting this property to 0 leads to no delay between video frames - frames + /// are read as fast as possible. + /// + /// Setting this property has effect only when + /// is set to . + /// + /// Default value is set to 0. + /// + /// + property int FrameInterval + { + int get( ) + { + return m_frameInterval; + } + void set( int frameInterval ) + { + m_frameInterval = frameInterval; + } + } + + /// + /// Get frame interval from source or use manually specified. + /// + /// + /// The property specifies which frame rate to use for video playing. + /// If the property is set to , then video is played + /// with original frame rate, which is set in source video file. If the property is + /// set to , then custom frame rate is used, which is + /// calculated based on the manually specified frame interval. + /// + /// Default value is set to . + /// + /// + property bool FrameIntervalFromSource + { + bool get( ) + { + return m_frameIntervalFromSource; + } + void set( bool fpsFromSource ) + { + m_frameIntervalFromSource = fpsFromSource; + } + } + + public: + + /// + /// Initializes a new instance of the class. + /// + /// + VideoFileSource( String^ fileName ); + + /// + /// Start video source. + /// + /// + /// Starts video source and return execution to caller. Video source + /// object creates background thread and notifies about new frames with the + /// help of event. + /// + /// Video source is not specified. + /// + virtual void Start( ); + + /// + /// Signal video source to stop its work. + /// + /// + /// Signals video source to stop its background thread, stop to + /// provide new frames and free resources. + /// + virtual void SignalToStop( ); + + /// + /// Wait for video source has stopped. + /// + /// + /// Waits for source stopping after it was signalled to stop using + /// method. + /// + virtual void WaitForStop( ); + + /// + /// Stop video source. + /// + /// + /// Stops video source aborting its thread. + /// + /// Since the method aborts background thread, its usage is highly not preferred + /// and should be done only if there are no other options. The correct way of stopping camera + /// is signaling it stop and then + /// waiting for background thread's completion. + /// + /// + virtual void Stop( ); + + private: + String^ m_fileName; + Thread^ m_workerThread; + ManualResetEvent^ m_needToStop; + + int m_framesReceived; + int m_bytesReceived; + bool m_frameIntervalFromSource; + int m_frameInterval; + + + private: + void Free( ); + void WorkerThreadHandler( ); + }; + +} } } diff --git a/Sources/Video.FFMPEG/VideoFileWriter.cpp b/Sources/Video.FFMPEG/VideoFileWriter.cpp new file mode 100644 index 00000000..afcefada --- /dev/null +++ b/Sources/Video.FFMPEG/VideoFileWriter.cpp @@ -0,0 +1,479 @@ +// AForge FFMPEG Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2009-2012 +// contacts@aforgenet.com +// + +#include "StdAfx.h" +#include "VideoFileWriter.h" + +namespace libffmpeg +{ + extern "C" + { + // disable warnings about badly formed documentation from FFmpeg, which don't need at all + #pragma warning(disable:4635) + // disable warning about conversion int64 to int32 + #pragma warning(disable:4244) + + #include "libavformat\avformat.h" + #include "libavformat\avio.h" + #include "libavcodec\avcodec.h" + #include "libswscale\swscale.h" + } +} + +namespace AForge { namespace Video { namespace FFMPEG +{ +#pragma region Some private FFmpeg related stuff hidden out of header file + +static void write_video_frame( WriterPrivateData^ data ); +static void open_video( WriterPrivateData^ data ); +static void add_video_stream( WriterPrivateData^ data, int width, int height, int frameRate, int bitRate, + enum libffmpeg::CodecID codec_id, enum libffmpeg::PixelFormat pixelFormat ); + +// A structure to encapsulate all FFMPEG related private variable +ref struct WriterPrivateData +{ +public: + libffmpeg::AVFormatContext* FormatContext; + libffmpeg::AVStream* VideoStream; + libffmpeg::AVFrame* VideoFrame; + struct libffmpeg::SwsContext* ConvertContext; + struct libffmpeg::SwsContext* ConvertContextGrayscale; + + libffmpeg::uint8_t* VideoOutputBuffer; + int VideoOutputBufferSize; + + WriterPrivateData( ) + { + FormatContext = NULL; + VideoStream = NULL; + VideoFrame = NULL; + ConvertContext = NULL; + ConvertContextGrayscale = NULL; + VideoOutputBuffer = NULL; + } +}; +#pragma endregion + +// Class constructor +VideoFileWriter::VideoFileWriter( void ) : + data( nullptr ), disposed( false ) +{ + libffmpeg::av_register_all( ); +} + +void VideoFileWriter::Open( String^ fileName, int width, int height ) +{ + Open( fileName, width, height, 25 ); +} + +void VideoFileWriter::Open( String^ fileName, int width, int height, int frameRate ) +{ + Open( fileName, width, height, frameRate, VideoCodec::Default ); +} + +void VideoFileWriter::Open( String^ fileName, int width, int height, int frameRate, VideoCodec codec ) +{ + Open( fileName, width, height, frameRate, codec, 400000 ); +} + +// Creates a video file with the specified name and properties +void VideoFileWriter::Open( String^ fileName, int width, int height, int frameRate, VideoCodec codec, int bitRate ) +{ + CheckIfDisposed( ); + + // close previous file if any open + Close( ); + + data = gcnew WriterPrivateData( ); + bool success = false; + + // check width and height + if ( ( ( width & 1 ) != 0 ) || ( ( height & 1 ) != 0 ) ) + { + throw gcnew ArgumentException( "Video file resolution must be a multiple of two." ); + } + + // check video codec + if ( ( (int) codec < -1 ) || ( (int) codec >= CODECS_COUNT ) ) + { + throw gcnew ArgumentException( "Invalid video codec is specified." ); + } + + m_width = width; + m_height = height; + m_codec = codec; + m_frameRate = frameRate; + m_bitRate = bitRate; + + // convert specified managed String to unmanaged string + IntPtr ptr = System::Runtime::InteropServices::Marshal::StringToHGlobalUni( fileName ); + wchar_t* nativeFileNameUnicode = (wchar_t*) ptr.ToPointer( ); + int utf8StringSize = WideCharToMultiByte( CP_UTF8, 0, nativeFileNameUnicode, -1, NULL, 0, NULL, NULL ); + char* nativeFileName = new char[utf8StringSize]; + WideCharToMultiByte( CP_UTF8, 0, nativeFileNameUnicode, -1, nativeFileName, utf8StringSize, NULL, NULL ); + + try + { + // gues about destination file format from its file name + libffmpeg::AVOutputFormat* outputFormat = libffmpeg::av_guess_format( NULL, nativeFileName, NULL ); + + if ( !outputFormat ) + { + // gues about destination file format from its short name + outputFormat = libffmpeg::av_guess_format( "mpeg", NULL, NULL ); + + if ( !outputFormat ) + { + throw gcnew VideoException( "Cannot find suitable output format." ); + } + } + + // prepare format context + data->FormatContext = libffmpeg::avformat_alloc_context( ); + + if ( !data->FormatContext ) + { + throw gcnew VideoException( "Cannot allocate format context." ); + } + data->FormatContext->oformat = outputFormat; + + // add video stream using the specified video codec + add_video_stream( data, width, height, frameRate, bitRate, + ( codec == VideoCodec::Default ) ? outputFormat->video_codec : (libffmpeg::CodecID) video_codecs[(int) codec], + ( codec == VideoCodec::Default ) ? libffmpeg::PIX_FMT_YUV420P : (libffmpeg::PixelFormat) pixel_formats[(int) codec] ); + + // set the output parameters (must be done even if no parameters) + if ( libffmpeg::av_set_parameters( data->FormatContext, NULL ) < 0 ) + { + throw gcnew VideoException( "Failed configuring format context." ); + } + + open_video( data ); + + // open output file + if ( !( outputFormat->flags & AVFMT_NOFILE ) ) + { + if ( libffmpeg::avio_open( &data->FormatContext->pb, nativeFileName, AVIO_FLAG_WRITE ) < 0 ) + { + throw gcnew System::IO::IOException( "Cannot open the video file." ); + } + } + + libffmpeg::av_write_header( data->FormatContext ); + + success = true; + } + finally + { + System::Runtime::InteropServices::Marshal::FreeHGlobal( ptr ); + delete [] nativeFileName; + + if ( !success ) + { + Close( ); + } + } +} + +// Close current video file +void VideoFileWriter::Close( ) +{ + if ( data != nullptr ) + { + if ( data->FormatContext ) + { + if ( data->FormatContext->pb != NULL ) + { + libffmpeg::av_write_trailer( data->FormatContext ); + } + + if ( data->VideoStream ) + { + libffmpeg::avcodec_close( data->VideoStream->codec ); + } + + if ( data->VideoFrame ) + { + libffmpeg::av_free( data->VideoFrame->data[0] ); + libffmpeg::av_free( data->VideoFrame ); + } + + if ( data->VideoOutputBuffer ) + { + libffmpeg::av_free( data->VideoOutputBuffer ); + } + + for ( unsigned int i = 0; i < data->FormatContext->nb_streams; i++ ) + { + libffmpeg::av_freep( &data->FormatContext->streams[i]->codec ); + libffmpeg::av_freep( &data->FormatContext->streams[i] ); + } + + if ( data->FormatContext->pb != NULL ) + { + libffmpeg::avio_close( data->FormatContext->pb ); + } + + libffmpeg::av_free( data->FormatContext ); + } + + if ( data->ConvertContext != NULL ) + { + libffmpeg::sws_freeContext( data->ConvertContext ); + } + + if ( data->ConvertContextGrayscale != NULL ) + { + libffmpeg::sws_freeContext( data->ConvertContextGrayscale ); + } + + data = nullptr; + } + + m_width = 0; + m_height = 0; +} + +// Writes new video frame to the opened video file +void VideoFileWriter::WriteVideoFrame( Bitmap^ frame ) +{ + WriteVideoFrame( frame, TimeSpan::MinValue ); +} + +// Writes new video frame to the opened video file +void VideoFileWriter::WriteVideoFrame( Bitmap^ frame, TimeSpan timestamp ) +{ + CheckIfDisposed( ); + + if ( data == nullptr ) + { + throw gcnew System::IO::IOException( "A video file was not opened yet." ); + } + + if ( ( frame->PixelFormat != PixelFormat::Format24bppRgb ) && + ( frame->PixelFormat != PixelFormat::Format32bppArgb ) && + ( frame->PixelFormat != PixelFormat::Format32bppPArgb ) && + ( frame->PixelFormat != PixelFormat::Format32bppRgb ) && + ( frame->PixelFormat != PixelFormat::Format8bppIndexed ) ) + { + throw gcnew ArgumentException( "The provided bitmap must be 24 or 32 bpp color image or 8 bpp grayscale image." ); + } + + if ( ( frame->Width != m_width ) || ( frame->Height != m_height ) ) + { + throw gcnew ArgumentException( "Bitmap size must be of the same as video size, which was specified on opening video file." ); + } + + // lock the bitmap + BitmapData^ bitmapData = frame->LockBits( System::Drawing::Rectangle( 0, 0, m_width, m_height ), + ImageLockMode::ReadOnly, + ( frame->PixelFormat == PixelFormat::Format8bppIndexed ) ? PixelFormat::Format8bppIndexed : PixelFormat::Format24bppRgb ); + + libffmpeg::uint8_t* ptr = reinterpret_cast( static_cast( bitmapData->Scan0 ) ); + + libffmpeg::uint8_t* srcData[4] = { ptr, NULL, NULL, NULL }; + int srcLinesize[4] = { bitmapData->Stride, 0, 0, 0 }; + + // convert source image to the format of the video file + if ( frame->PixelFormat == PixelFormat::Format8bppIndexed ) + { + libffmpeg::sws_scale( data->ConvertContextGrayscale, srcData, srcLinesize, 0, m_height, data->VideoFrame->data, data->VideoFrame->linesize ); + } + else + { + libffmpeg::sws_scale( data->ConvertContext, srcData, srcLinesize, 0, m_height, data->VideoFrame->data, data->VideoFrame->linesize ); + } + + frame->UnlockBits( bitmapData ); + + if ( timestamp.Ticks >= 0 ) + { + const double frameNumber = timestamp.TotalSeconds * m_frameRate; + data->VideoFrame->pts = static_cast( frameNumber ); + } + + // write the converted frame to the video file + write_video_frame( data ); +} + +#pragma region Private methods +// Writes video frame to opened video file +void write_video_frame( WriterPrivateData^ data ) +{ + libffmpeg::AVCodecContext* codecContext = data->VideoStream->codec; + int out_size, ret = 0; + + if ( data->FormatContext->oformat->flags & AVFMT_RAWPICTURE ) + { + Console::WriteLine( "raw picture must be written" ); + } + else + { + // encode the image + out_size = libffmpeg::avcodec_encode_video( codecContext, data->VideoOutputBuffer, + data->VideoOutputBufferSize, data->VideoFrame ); + + // if zero size, it means the image was buffered + if ( out_size > 0 ) + { + libffmpeg::AVPacket packet; + libffmpeg::av_init_packet( &packet ); + + if ( codecContext->coded_frame->pts != AV_NOPTS_VALUE ) + { + packet.pts = libffmpeg::av_rescale_q( codecContext->coded_frame->pts, codecContext->time_base, data->VideoStream->time_base ); + } + + if ( codecContext->coded_frame->key_frame ) + { + packet.flags |= AV_PKT_FLAG_KEY; + } + + packet.stream_index = data->VideoStream->index; + packet.data = data->VideoOutputBuffer; + packet.size = out_size; + + // write the compressed frame to the media file + ret = libffmpeg::av_interleaved_write_frame( data->FormatContext, &packet ); + } + else + { + // image was buffered + } + } + + if ( ret != 0 ) + { + throw gcnew VideoException( "Error while writing video frame." ); + } +} + +// Allocate picture of the specified format and size +static libffmpeg::AVFrame* alloc_picture( enum libffmpeg::PixelFormat pix_fmt, int width, int height ) +{ + libffmpeg::AVFrame* picture; + void* picture_buf; + int size; + + picture = libffmpeg::avcodec_alloc_frame( ); + if ( !picture ) + { + return NULL; + } + + size = libffmpeg::avpicture_get_size( pix_fmt, width, height ); + picture_buf = libffmpeg::av_malloc( size ); + if ( !picture_buf ) + { + libffmpeg::av_free( picture ); + return NULL; + } + + libffmpeg::avpicture_fill( (libffmpeg::AVPicture *) picture, (libffmpeg::uint8_t *) picture_buf, pix_fmt, width, height ); + + return picture; +} + +// Create new video stream and configure it +void add_video_stream( WriterPrivateData^ data, int width, int height, int frameRate, int bitRate, + enum libffmpeg::CodecID codecId, enum libffmpeg::PixelFormat pixelFormat ) +{ + libffmpeg::AVCodecContext* codecContex; + + // create new stream + data->VideoStream = libffmpeg::av_new_stream( data->FormatContext, 0 ); + if ( !data->VideoStream ) + { + throw gcnew VideoException( "Failed creating new video stream." ); + } + + codecContex = data->VideoStream->codec; + codecContex->codec_id = codecId; + codecContex->codec_type = libffmpeg::AVMEDIA_TYPE_VIDEO; + + // put sample parameters + codecContex->bit_rate = bitRate; + codecContex->width = width; + codecContex->height = height; + + // time base: this is the fundamental unit of time (in seconds) in terms + // of which frame timestamps are represented. for fixed-fps content, + // timebase should be 1/framerate and timestamp increments should be + // identically 1. + codecContex->time_base.den = frameRate; + codecContex->time_base.num = 1; + + codecContex->gop_size = 12; // emit one intra frame every twelve frames at most + codecContex->pix_fmt = pixelFormat; + + if ( codecContex->codec_id == libffmpeg::CODEC_ID_MPEG1VIDEO ) + { + // Needed to avoid using macroblocks in which some coeffs overflow. + // This does not happen with normal video, it just happens here as + // the motion of the chroma plane does not match the luma plane. + codecContex->mb_decision = 2; + } + + // some formats want stream headers to be separate + if( data->FormatContext->oformat->flags & AVFMT_GLOBALHEADER ) + { + codecContex->flags |= CODEC_FLAG_GLOBAL_HEADER; + } +} + +// Open video codec and prepare out buffer and picture +void open_video( WriterPrivateData^ data ) +{ + libffmpeg::AVCodecContext* codecContext = data->VideoStream->codec; + libffmpeg::AVCodec* codec = avcodec_find_encoder( codecContext->codec_id ); + + if ( !codec ) + { + throw gcnew VideoException( "Cannot find video codec." ); + } + + // open the codec + if ( avcodec_open( codecContext, codec ) < 0 ) + { + throw gcnew VideoException( "Cannot open video codec." ); + } + + data->VideoOutputBuffer = NULL; + if ( !( data->FormatContext->oformat->flags & AVFMT_RAWPICTURE ) ) + { + // allocate output buffer + data->VideoOutputBufferSize = 6 * codecContext->width * codecContext->height; // more than enough even for raw video + data->VideoOutputBuffer = (libffmpeg::uint8_t*) libffmpeg::av_malloc( data->VideoOutputBufferSize ); + } + + // allocate the encoded raw picture + data->VideoFrame = alloc_picture( codecContext->pix_fmt, codecContext->width, codecContext->height ); + + if ( !data->VideoFrame ) + { + throw gcnew VideoException( "Cannot allocate video picture." ); + } + + // prepare scaling context to convert RGB image to video format + data->ConvertContext = libffmpeg::sws_getContext( codecContext->width, codecContext->height, libffmpeg::PIX_FMT_BGR24, + codecContext->width, codecContext->height, codecContext->pix_fmt, + SWS_BICUBIC, NULL, NULL, NULL ); + // prepare scaling context to convert grayscale image to video format + data->ConvertContextGrayscale = libffmpeg::sws_getContext( codecContext->width, codecContext->height, libffmpeg::PIX_FMT_GRAY8, + codecContext->width, codecContext->height, codecContext->pix_fmt, + SWS_BICUBIC, NULL, NULL, NULL ); + + if ( ( data->ConvertContext == NULL ) || ( data->ConvertContextGrayscale == NULL ) ) + { + throw gcnew VideoException( "Cannot initialize frames conversion context." ); + } +} +#pragma endregion + +} } } + diff --git a/Sources/Video.FFMPEG/VideoFileWriter.h b/Sources/Video.FFMPEG/VideoFileWriter.h new file mode 100644 index 00000000..43b221ce --- /dev/null +++ b/Sources/Video.FFMPEG/VideoFileWriter.h @@ -0,0 +1,336 @@ +// AForge FFMPEG Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2009-2011 +// contacts@aforgenet.com +// + +#pragma once + +using namespace System; +using namespace System::Drawing; +using namespace System::Drawing::Imaging; +using namespace AForge::Video; + +#include "VideoCodec.h" + +namespace AForge { namespace Video { namespace FFMPEG +{ + ref struct WriterPrivateData; + + /// + /// Class for writing video files utilizing FFmpeg library. + /// + /// + /// The class allows to write video files using FFmpeg library. + /// + /// Make sure you have FFmpeg binaries (DLLs) in the output folder of your application in order + /// to use this class successfully. FFmpeg binaries can be found in Externals folder provided with AForge.NET + /// framework's distribution. + /// + /// Sample usage: + /// + /// int width = 320; + /// int height = 240; + /// + /// // create instance of video writer + /// VideoFileWriter writer = new VideoFileWriter( ); + /// // create new video file + /// writer.Open( "test.avi", width, height, 25, VideoCodec.MPEG4 ); + /// // create a bitmap to save into the video file + /// Bitmap image = new Bitmap( width, height, PixelFormat.Format24bppRgb ); + /// // write 1000 video frames + /// for ( int i = 0; i < 1000; i++ ) + /// { + /// image.SetPixel( i % width, i % height, Color.Red ); + /// writer.WriteVideoFrame( image ); + /// } + /// writer.Close( ); + /// + /// + /// + public ref class VideoFileWriter : IDisposable + { + public: + + /// + /// Frame width of the opened video file. + /// + /// + /// Thrown if no video file was open. + /// + property int Width + { + int get( ) + { + CheckIfVideoFileIsOpen( ); + return m_width; + } + } + + /// + /// Frame height of the opened video file. + /// + /// + /// Thrown if no video file was open. + /// + property int Height + { + int get( ) + { + CheckIfVideoFileIsOpen( ); + return m_height; + } + } + + /// + /// Frame rate of the opened video file. + /// + /// + /// Thrown if no video file was open. + /// + property int FrameRate + { + int get( ) + { + CheckIfVideoFileIsOpen( ); + return m_frameRate; + } + } + + /// + /// Bit rate of the video stream. + /// + /// + /// Thrown if no video file was open. + /// + property int BitRate + { + int get( ) + { + CheckIfVideoFileIsOpen( ); + return m_bitRate; + } + } + + /// + /// Codec to use for the video file. + /// + /// + /// Thrown if no video file was open. + /// + property VideoCodec Codec + { + VideoCodec get( ) + { + CheckIfVideoFileIsOpen( ); + return m_codec; + } + } + + /// + /// The property specifies if a video file is opened or not by this instance of the class. + /// + property bool IsOpen + { + bool get ( ) + { + return ( data != nullptr ); + } + } + + protected: + + /// + /// Object's finalizer. + /// + /// + !VideoFileWriter( ) + { + Close( ); + } + + public: + + /// + /// Initializes a new instance of the class. + /// + /// + VideoFileWriter( void ); + + /// + /// Disposes the object and frees its resources. + /// + /// + ~VideoFileWriter( ) + { + this->!VideoFileWriter( ); + disposed = true; + } + + /// + /// Create video file with the specified name and attributes. + /// + /// + /// Video file name to create. + /// Frame width of the video file. + /// Frame height of the video file. + /// + /// See documentation to the + /// for more information and the list of possible exceptions. + /// + /// The method opens the video file using + /// codec and 25 fps frame rate. + /// + /// + void Open( String^ fileName, int width, int height ); + + /// + /// Create video file with the specified name and attributes. + /// + /// + /// Video file name to create. + /// Frame width of the video file. + /// Frame height of the video file. + /// Frame rate of the video file. + /// + /// See documentation to the + /// for more information and the list of possible exceptions. + /// + /// The method opens the video file using + /// codec. + /// + /// + void Open( String^ fileName, int width, int height, int frameRate ); + + /// + /// Create video file with the specified name and attributes. + /// + /// + /// Video file name to create. + /// Frame width of the video file. + /// Frame height of the video file. + /// Frame rate of the video file. + /// Video codec to use for compression. + /// + /// The methods creates new video file with the specified name. + /// If a file with such name already exists in the file system, it will be overwritten. + /// + /// When adding new video frames using method, + /// the video frame must have width and height as specified during file opening. + /// + /// + /// Video file resolution must be a multiple of two. + /// Invalid video codec is specified. + /// A error occurred while creating new video file. See exception message. + /// Cannot open video file with the specified name. + /// + void Open( String^ fileName, int width, int height, int frameRate, VideoCodec codec ); + + /// + /// Create video file with the specified name and attributes. + /// + /// + /// Video file name to create. + /// Frame width of the video file. + /// Frame height of the video file. + /// Frame rate of the video file. + /// Video codec to use for compression. + /// Bit rate of the video stream. + /// + /// The methods creates new video file with the specified name. + /// If a file with such name already exists in the file system, it will be overwritten. + /// + /// When adding new video frames using method, + /// the video frame must have width and height as specified during file opening. + /// + /// The bit rate parameter represents a trade-off value between video quality + /// and video file size. Higher bit rate value increase video quality and result in larger + /// file size. Smaller values result in opposite – worse quality and small video files. + /// + /// + /// Video file resolution must be a multiple of two. + /// Invalid video codec is specified. + /// A error occurred while creating new video file. See exception message. + /// Cannot open video file with the specified name. + /// + void Open( String^ fileName, int width, int height, int frameRate, VideoCodec codec, int bitRate ); + + /// + /// Write new video frame into currently opened video file. + /// + /// + /// Bitmap to add as a new video frame. + /// + /// The specified bitmap must be either color 24 or 32 bpp image or grayscale 8 bpp (indexed) image. + /// + /// + /// Thrown if no video file was open. + /// The provided bitmap must be 24 or 32 bpp color image or 8 bpp grayscale image. + /// Bitmap size must be of the same as video size, which was specified on opening video file. + /// A error occurred while writing new video frame. See exception message. + /// + void WriteVideoFrame( Bitmap^ frame ); + + /// + /// Write new video frame with a specific timestamp into currently opened video file. + /// + /// + /// Bitmap to add as a new video frame. + /// Frame timestamp, total time since recording started. + /// + /// The specified bitmap must be either color 24 or 32 bpp image or grayscale 8 bpp (indexed) image. + /// + /// The parameter allows user to specify presentation + /// time of the frame being saved. However, it is user's responsibility to make sure the value is increasing + /// over time. + /// + /// + /// Thrown if no video file was open. + /// The provided bitmap must be 24 or 32 bpp color image or 8 bpp grayscale image. + /// Bitmap size must be of the same as video size, which was specified on opening video file. + /// A error occurred while writing new video frame. See exception message. + /// + void WriteVideoFrame( Bitmap^ frame, TimeSpan timestamp ); + + /// + /// Close currently opened video file if any. + /// + /// + void Close( ); + + private: + + int m_width; + int m_height; + int m_frameRate; + int m_bitRate; + VideoCodec m_codec; + + private: + // Checks if video file was opened + void CheckIfVideoFileIsOpen( ) + { + if ( data == nullptr ) + { + throw gcnew System::IO::IOException( "Video file is not open, so can not access its properties." ); + } + } + + // Check if the object was already disposed + void CheckIfDisposed( ) + { + if ( disposed ) + { + throw gcnew System::ObjectDisposedException( "The object was already disposed." ); + } + } + + private: + // private data of the class + WriterPrivateData^ data; + bool disposed; + }; + +} } } diff --git a/Sources/Video.Kinect/AForge.Video.Kinect.snk b/Sources/Video.Kinect/AForge.Video.Kinect.snk new file mode 100644 index 00000000..f2fa6c35 Binary files /dev/null and b/Sources/Video.Kinect/AForge.Video.Kinect.snk differ diff --git a/Sources/Video.Kinect/Images/kinect.jpg b/Sources/Video.Kinect/Images/kinect.jpg new file mode 100644 index 00000000..e95b9ebd Binary files /dev/null and b/Sources/Video.Kinect/Images/kinect.jpg differ diff --git a/Sources/Video.Kinect/Kinect.cs b/Sources/Video.Kinect/Kinect.cs new file mode 100644 index 00000000..d9cae468 --- /dev/null +++ b/Sources/Video.Kinect/Kinect.cs @@ -0,0 +1,450 @@ +// AForge Kinect Video Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +namespace AForge.Video.Kinect +{ + using System; + using System.Collections.Generic; + using System.Threading; + using AForge; + + /// + /// The class provides access to Microsoft's Xbox Kinect + /// controller. + /// + /// + /// The class allows to manipulate Kinec device by changing its LED color, setting motor's + /// tilt value and accessing its camera. See and + /// classes, which provide access to actual video. + /// + /// + /// + /// In order to run correctly the class requires freenect.dll library + /// to be put into solution's output folder. This can be found within the AForge.NET framework's + /// distribution in Externals folder. + /// + /// Sample usage: + /// + /// // get Kinect device + /// Kinect kinectDevice = Kinect.GetDevice( 0 ); + /// // change LED color + /// kinectDevice.LedColor = LedColorOption.Yellow; + /// // set motor tilt angle to -10 degrees + /// kinectDevice.SetMotorTilt( -10 ); + /// // get video camera + /// KinectVideoCamera videoCamera = kinectDevice.GetVideoCamera( ); + /// + /// // see example for video camera also + /// + /// + /// + public class Kinect : IDisposable + { + internal delegate void DeviceFailureHandler( ); + + private class DeviceContext + { + public IntPtr Device; + public int ReferenceCounter; + public bool DeviceFailed; + public KinectNative.TiltState TiltState; + + private object sync = new object( ); + private List failureHanlders = new List( ); + + public DeviceContext( IntPtr device ) + { + Device = device; + ReferenceCounter = 0; + DeviceFailed = false; + } + + public void AddFailureHandler( DeviceFailureHandler handler ) + { + lock ( sync ) + { + failureHanlders.Add( handler ); + } + } + + public void FireFailureHandlers( ) + { + lock ( sync ) + { + foreach ( DeviceFailureHandler handler in failureHanlders ) + { + handler( ); + } + failureHanlders.Clear( ); + } + } + } + + // dictionary of all opened devices + private static Dictionary openDevices = new Dictionary( ); + + // thread for Kinect status updates and an event for stopping it + private static Thread updateStatusThread; + //private static Thread watchDogThread; + private static ManualResetEvent stopEvent; + + // pointer to the freekinect's opened device + private IntPtr rawDevice; + // ID of the opened device + private readonly int deviceID; + + // dummy object to lock for synchronization + private object sync = new object( ); + + /// + /// ID of the opened Kinect device. + /// + /// + public int DeviceID + { + get { return deviceID; } + } + + internal IntPtr RawDevice + { + get { return rawDevice; } + } + + /// + /// Number of Kinect devices available in the system. + /// + public static int DeviceCount + { + get { return KinectNative.freenect_num_devices( KinectNative.Context ); } + } + + /// + /// Get initialized instance of the Kinect device. + /// + /// + /// ID of the Kinect device to get instance of, [0, ), + /// + /// Returns initialized Kinect device. Use method + /// when the device is no longer required. + /// + /// There is no Kinect device with specified ID connected to the system. + /// Failed connecting to the Kinect device specified ID. + /// + public static Kinect GetDevice( int deviceID ) + { + if ( ( deviceID < 0 ) || ( deviceID >= DeviceCount ) ) + { + throw new ArgumentException( "There is no Kinect device with specified ID connected to the system." ); + } + + bool needToStartStatusThread = false; + Kinect kinect = null; + + lock ( openDevices ) + { + needToStartStatusThread = ( openDevices.Count == 0 ); + + // check if the device is open already + if ( !openDevices.ContainsKey( deviceID ) ) + { + IntPtr devicePointer = IntPtr.Zero; + + // connect to Kinect device witht the specified ID + if ( KinectNative.freenect_open_device( KinectNative.Context, ref devicePointer, deviceID ) != 0 ) + { + throw new ConnectionFailedException( "Failed connecting to the Kinect device with ID: " + deviceID ); + } + + openDevices.Add( deviceID, new DeviceContext( devicePointer ) ); + } + + openDevices[deviceID].ReferenceCounter++; + kinect = new Kinect( openDevices[deviceID].Device, deviceID ); + } + + if ( needToStartStatusThread ) + { + StartStatusThread( ); + } + + return kinect; + } + + // Private constructor to make sure class instance can be obtained through GetDevice() only + private Kinect( IntPtr rawDevice, int deviceID ) + { + this.rawDevice = rawDevice; + this.deviceID = deviceID; + KinectNative.OnError += new KinectNative.ErrorHandler( Kinect_OnError ); + } + + /// + /// Object finalizer/destructor makes sure unmanaged resource are freed if user did not call . + /// + ~Kinect( ) + { + Dispose( false ); + } + + /// + /// Dispose device freeing all associated unmanaged resources. + /// + public void Dispose( ) + { + lock ( sync ) + { + if ( rawDevice == IntPtr.Zero ) + return; + + Dispose( true ); + } + KinectNative.OnError -= new KinectNative.ErrorHandler( Kinect_OnError ); + GC.SuppressFinalize( this ); + } + + private void Dispose( bool disposing ) + { + bool needToStopStatusThread = false; + + lock ( openDevices ) + { + // decrease reference counter and check if we need to close the device + if ( --openDevices[deviceID].ReferenceCounter == 0 ) + { + if ( !openDevices[deviceID].DeviceFailed ) + { + KinectNative.freenect_close_device( rawDevice ); + } + openDevices.Remove( deviceID ); + } + + needToStopStatusThread = ( openDevices.Count == 0 ); + } + + rawDevice = IntPtr.Zero; + + if ( needToStopStatusThread ) + { + StopStatusThread( ); + } + } + + // Check if the device was disposed or not + private void CheckDevice( ) + { + if ( rawDevice == IntPtr.Zero ) + { + throw new ObjectDisposedException( "Cannot access already disposed object." ); + } + } + + /// + /// Set color of Kinect's LED. + /// + /// + /// LED color to set. + /// + /// Some error occurred with the device. Check error message. + /// + public void SetLedColor( LedColorOption ledColor ) + { + lock ( sync ) + { + CheckDevice( ); + + int result = KinectNative.freenect_set_led( rawDevice, ledColor ); + + if ( result != 0 ) + { + throw new DeviceErrorException( "Failed setting LED color to " + ledColor + ". Error code: " + result ); + } + } + } + + /// + /// Set motor's tilt value. + /// + /// + /// Tilt value to set, [-31, 30] degrees. + /// + /// Motor tilt has to be in the [-31, 31] range. + /// Some error occurred with the device. Check error message. + /// + public void SetMotorTilt( int angle ) + { + lock ( sync ) + { + CheckDevice( ); + + // check if value is in valid range + if ( ( angle < -31 ) || ( angle > 31 ) ) + { + throw new ArgumentOutOfRangeException( "angle", "Motor tilt has to be in the [-31, 31] range." ); + } + + int result = KinectNative.freenect_set_tilt_degs( rawDevice, angle ); + if ( result != 0 ) + { + throw new DeviceErrorException( "Failed setting motor tilt. Error code: " + result ); + } + } + } + + private const double CountsPerGravity = 819.0; + private const double Gravity = 9.80665; + + /// + /// Get accelerometer values for 3 axes. + /// + /// + /// X axis value on the accelerometer. + /// Y axis value on the accelerometer. + /// Z axis value on the accelerometer. + /// + /// Units of all 3 values are m/s2. The g value used + /// for calculations is taken as 9.80665 m/s2. + /// + public void GetAccelerometerValues( out double x, out double y, out double z ) + { + KinectNative.TiltState tiltState = new KinectNative.TiltState( ); + + lock ( sync ) + { + CheckDevice( ); + tiltState = openDevices[deviceID].TiltState; + } + + x = (double) tiltState.AccelerometerX / CountsPerGravity * Gravity; + y = (double) tiltState.AccelerometerY / CountsPerGravity * Gravity; + z = (double) tiltState.AccelerometerZ / CountsPerGravity * Gravity; + } + + /// + /// Get Kinect's video camera. + /// + /// + /// Returns Kinect's video camera. + /// + /// The method simply creates instance of the class + /// by calling its appropriate constructor. Use method + /// to start the video then. + /// + public KinectVideoCamera GetVideoCamera( ) + { + return new KinectVideoCamera( deviceID ); + } + + /// + /// Get Kinect's depth camera. + /// + /// + /// Returns Kinect's depth camera. + /// + /// The method simply creates instance of the class + /// by calling its appropriate constructor. Use method + /// to start the video then. + /// + public KinectDepthCamera GetDepthCamera( ) + { + return new KinectDepthCamera( deviceID ); + } + + #region Kinect Status Thread + + private static object statusThreadSync = new object( ); + + // Start status thread to handle freenect's events + private static void StartStatusThread( ) + { + lock ( statusThreadSync ) + { + stopEvent = new ManualResetEvent( false ); + updateStatusThread = new Thread( KinectStatusThread ); + updateStatusThread.IsBackground = true; + updateStatusThread.Start( ); + } + } + + // Stop the status thread + private static void StopStatusThread( ) + { + lock ( statusThreadSync ) + { + stopEvent.Set( ); + if ( !updateStatusThread.Join( 2000 ) ) + { + updateStatusThread.Abort( ); + } + + stopEvent.Close( ); + updateStatusThread = null; + stopEvent = null; + } + } + + // Kinect's status thread to process freenect's events + private static void KinectStatusThread( ) + { + while ( !stopEvent.WaitOne( 100, false ) ) + { + lock ( openDevices ) + { + if ( openDevices.Count != 0 ) + { + // update the status for each open device + foreach ( DeviceContext deviceContext in openDevices.Values ) + { + if ( deviceContext.DeviceFailed ) + { + continue; + } + + if ( KinectNative.freenect_update_tilt_state( deviceContext.Device ) < 0 ) + { + deviceContext.DeviceFailed = true; + deviceContext.FireFailureHandlers( ); + } + else + { + // get updated device status + IntPtr ptr = KinectNative.freenect_get_tilt_state( deviceContext.Device ); + deviceContext.TiltState = (KinectNative.TiltState) + System.Runtime.InteropServices.Marshal.PtrToStructure( ptr, typeof( KinectNative.TiltState ) ); + } + } + } + } + + // let the kinect library handle any pending stuff on the usb stream + KinectNative.freenect_process_events_timeout0( KinectNative.Context ); + } + } + + private void Kinect_OnError( IntPtr device ) + { + if ( device == rawDevice ) + { + Console.WriteLine( "Error is detected in device : " + deviceID ); + } + } + + internal bool IsDeviceFailed( int deviceID ) + { + return ( ( openDevices.ContainsKey( deviceID ) ) && ( openDevices[deviceID].DeviceFailed ) ); + } + + internal void AddFailureHandler( int deviceID, DeviceFailureHandler handler ) + { + if ( openDevices.ContainsKey( deviceID ) ) + { + openDevices[deviceID].AddFailureHandler( handler ); + } + } + #endregion + } +} diff --git a/Sources/Video.Kinect/KinectDepthCamera.cs b/Sources/Video.Kinect/KinectDepthCamera.cs new file mode 100644 index 00000000..649fa957 --- /dev/null +++ b/Sources/Video.Kinect/KinectDepthCamera.cs @@ -0,0 +1,543 @@ +// AForge Kinect Video Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +namespace AForge.Video.Kinect +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + using System.Runtime.InteropServices; + + using AForge; + using AForge.Video; + + /// + /// Video source for Microsoft Kinect's depth sensor. + /// + /// + /// The video source captures depth data from Microsoft Kinect + /// depth sensor, which is aimed originally as a gaming device for XBox 360 platform. + /// + /// Prior to using the class, make sure you've installed Kinect's drivers + /// as described on Open Kinect + /// project's page. + /// + /// In order to run correctly the class requires freenect.dll library + /// to be put into solution's output folder. This can be found within the AForge.NET framework's + /// distribution in Externals folder. + /// + /// Sample usage: + /// + /// // create video source + /// KinectDepthCamera videoSource = new KinectDepthCamera( 0 ); + /// // set NewFrame event handler + /// videoSource.NewFrame += new NewFrameEventHandler( video_NewFrame ); + /// // start the video source + /// videoSource.Start( ); + /// // ... + /// + /// private void video_NewFrame( object sender, NewFrameEventArgs eventArgs ) + /// { + /// // get new frame + /// Bitmap bitmap = eventArgs.Frame; + /// // process the frame + /// } + /// + /// + /// + public class KinectDepthCamera : IVideoSource + { + // Kinect's device ID + private int deviceID; + // received frames count + private int framesReceived; + // recieved byte count + private long bytesReceived; + // specifies of original 11 bit depth images (as 16 bit) should be provided and 24 bit color image + private bool provideOriginalDepthImage = false; + private ushort[] gamma = new ushort[2048]; + // camera resolution to set + private CameraResolution resolution = CameraResolution.Medium; + // list of currently running cameras + private static List runningCameras = new List( ); + + // dummy object to lock for synchronization + private object sync = new object( ); + + /// + /// New frame event. + /// + /// + /// Notifies clients about new available frames from the video source. + /// + /// Since video source may have multiple clients, each client is responsible for + /// making a copy (cloning) of the passed video frame, because the video source disposes its + /// own original copy after notifying of clients. + /// + /// + public event NewFrameEventHandler NewFrame; + + /// + /// Video source error event. + /// + /// + /// This event is used to notify clients about any type of errors occurred in + /// video source object, for example internal exceptions. + /// + public event VideoSourceErrorEventHandler VideoSourceError; + + /// + /// Video playing finished event. + /// + /// + /// This event is used to notify clients that the video playing has finished. + /// + /// + public event PlayingFinishedEventHandler PlayingFinished; + + /// + /// Provide original depth image or colored depth map. + /// + /// + /// The property specifies if the video source should provide original data + /// provided by Kinect's depth sensor or provide colored depth map. If the property is set to + /// , then the video source will provide 16 bpp grayscale images, where + /// 11 least significant bits represent data provided by the sensor. If the property is + /// set to , then the video source will provide 24 bpp color images, + /// which represents depth map. In this case depth is encoded by color gradient: + /// white->red->yellow->green->cyan->blue->black. So colors which are closer to white represent + /// objects which are closer to the Kinect sensor, but colors which are closer to black represent + /// objects which are further away from Kinect. + /// + /// The property must be set before running the video source to take effect. + /// + /// Default value is set to . + /// + /// + private bool ProvideOriginalDepthImage + { + get { return provideOriginalDepthImage; } + set { provideOriginalDepthImage = value; } + } + + /// + /// Resolution of depth sensor to set. + /// + /// + /// The property must be set before running the video source to take effect. + /// + /// Default value of the property is set to . + /// + /// + public CameraResolution Resolution + { + get { return resolution; } + set { resolution = value; } + } + + /// + /// A string identifying the video source. + /// + /// + public virtual string Source + { + get { return "Kinect:DepthCamera:" + deviceID; } + } + + /// + /// State of the video source. + /// + /// + /// Current state of video source object - running or not. + /// + public bool IsRunning + { + get + { + lock ( sync ) + { + return ( device != null ); + } + } + } + + /// + /// Received bytes count. + /// + /// + /// Number of bytes the video source provided from the moment of the last + /// access to the property. + /// + /// + public long BytesReceived + { + get + { + long bytes = bytesReceived; + bytesReceived = 0; + return bytes; + } + } + + /// + /// Received frames count. + /// + /// + /// Number of frames the video source provided from the moment of the last + /// access to the property. + /// + /// + public int FramesReceived + { + get + { + int frames = framesReceived; + framesReceived = 0; + return frames; + } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Kinect's device ID (index) to connect to. + /// + public KinectDepthCamera( int deviceID ) : this( deviceID, CameraResolution.Medium, false ) { } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Kinect's device ID (index) to connect to. + /// Resolution of depth sensor to set. + /// + public KinectDepthCamera( int deviceID, CameraResolution resolution ) : this( deviceID, resolution, false ) { } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Kinect's device ID (index) to connect to. + /// Resolution of depth sensor to set. + /// Provide original depth image or colored depth map + /// (see property). + /// + public KinectDepthCamera( int deviceID, CameraResolution resolution, bool provideOriginalDepthImage ) + { + this.deviceID = deviceID; + this.resolution = resolution; + this.provideOriginalDepthImage = provideOriginalDepthImage; + + // initialize gamma values (as shown in the original Kinect samples) + for ( int i = 0; i < 2048; i++ ) + { + double value = i / 2048.0; + value = Math.Pow( value, 3.0 ); + gamma[i] = (ushort) ( value * 36.0 * 256.0 ); + } + } + + private Kinect device = null; + private IntPtr imageBuffer = IntPtr.Zero; + private KinectNative.BitmapInfoHeader depthModeInfo; + + /// + /// Start video source. + /// + /// + /// Starts video source and returns execution to caller. Video camera will be started + /// and will provide new video frames through the event. + /// + /// The specified resolution is not supported for the selected + /// mode of the Kinect depth sensor. + /// Could not connect to Kinect's depth sensor. + /// Another connection to the specified depth sensor is already running. + /// + public void Start( ) + { + lock ( sync ) + { + lock ( runningCameras ) + { + if ( device == null ) + { + bool success = false; + + try + { + if ( runningCameras.Contains( deviceID ) ) + { + throw new DeviceBusyException( "Another connection to the specified depth camera is already running." ); + } + + device = Kinect.GetDevice( deviceID ); + + // find depth format parameters + depthModeInfo = KinectNative.freenect_find_depth_mode( resolution, KinectNative.DepthCameraFormat.Format11Bit ); + + if ( depthModeInfo.IsValid == 0 ) + { + throw new ArgumentException( "The specified resolution is not supported for the selected mode of the Kinect depth camera." ); + } + + // set depth format + if ( KinectNative.freenect_set_depth_mode( device.RawDevice, depthModeInfo ) != 0 ) + { + throw new VideoException( "Could not switch to the specified depth format." ); + } + + // allocate video buffer and provide it freenect + imageBuffer = Marshal.AllocHGlobal( (int) depthModeInfo.Bytes ); + KinectNative.freenect_set_depth_buffer( device.RawDevice, imageBuffer ); + + // set video callback + videoCallback = new KinectNative.FreenectDepthDataCallback( HandleDataReceived ); + KinectNative.freenect_set_depth_callback( device.RawDevice, videoCallback ); + + // start the camera + if ( KinectNative.freenect_start_depth( device.RawDevice ) != 0 ) + { + throw new ConnectionFailedException( "Could not start depth stream." ); + } + + success = true; + runningCameras.Add( deviceID ); + + device.AddFailureHandler( deviceID, Stop ); + } + finally + { + if ( !success ) + { + if ( device != null ) + { + device.Dispose( ); + device = null; + } + + if ( imageBuffer != IntPtr.Zero ) + { + Marshal.FreeHGlobal( imageBuffer ); + imageBuffer = IntPtr.Zero; + } + } + } + } + } + } + } + + /// + /// Signal video source to stop its work. + /// + /// + /// Calling this method is equivalent to calling + /// for Kinect video camera. + /// + public void SignalToStop( ) + { + Stop( ); + } + + /// + /// Wait for video source has stopped. + /// + /// + /// Calling this method is equivalent to calling + /// for Kinect video camera. + /// + public void WaitForStop( ) + { + Stop( ); + } + + /// + /// Stop video source. + /// + /// + /// The method stop the video source, so it no longer provides new video frames + /// and does not consume any resources. + /// + /// + public void Stop( ) + { + lock ( sync ) + { + lock ( runningCameras ) + { + if ( device != null ) + { + bool deviceFailed = device.IsDeviceFailed( deviceID ); + + if ( !deviceFailed ) + { + KinectNative.freenect_stop_depth( device.RawDevice ); + } + + device.Dispose( ); + device = null; + runningCameras.Remove( deviceID ); + + if ( PlayingFinished != null ) + { + PlayingFinished( this, ( !deviceFailed ) ? + ReasonToFinishPlaying.StoppedByUser : ReasonToFinishPlaying.DeviceLost ); + } + } + + if ( imageBuffer != IntPtr.Zero ) + { + Marshal.FreeHGlobal( imageBuffer ); + imageBuffer = IntPtr.Zero; + } + + videoCallback = null; + } + } + } + + // New video data event handler + private KinectNative.FreenectDepthDataCallback videoCallback = null; + + private void HandleDataReceived( IntPtr device, IntPtr depthData, UInt32 timestamp ) + { + int width = depthModeInfo.Width; + int height = depthModeInfo.Height; + + Bitmap image = null; + BitmapData data = null; + + try + { + image = new Bitmap( width, height, ( !provideOriginalDepthImage ) ? + PixelFormat.Format24bppRgb : PixelFormat.Format16bppGrayScale ); + + data = image.LockBits( new Rectangle( 0, 0, width, height ), + ImageLockMode.ReadWrite, image.PixelFormat ); + + unsafe + { + ushort* src = (ushort*) imageBuffer.ToPointer( ); + + if ( !provideOriginalDepthImage ) + { + // color the depth image into white->red->yellow->green->cyan->blue->black gradient + byte* dst = (byte*) data.Scan0.ToPointer( ); + int offset = data.Stride - width * 3; + byte red, green, blue; + + for ( int y = 0; y < height; y++ ) + { + for ( int x = 0; x < width; x++, src++, dst += 3 ) + { + ushort pval = gamma[*src]; + ushort lb = (ushort) ( pval & 0xff ); + + switch ( pval >> 8 ) + { + case 0: // white to red + red = 255; + green = (byte) ( 255 - lb ); + blue = (byte) ( 255 - lb ); + break; + case 1: // red to yellow + red = 255; + green = (byte) lb; + blue = 0; + break; + case 2: // yellow to green + red = (byte) ( 255 - lb ); + green = 255; + blue = 0; + break; + case 3: // green to cyan + red = 0; + green = 255; + blue = (byte) lb; + break; + case 4: // cyan to blue + red = 0; + green = (byte) ( 255 - lb ); + blue = 255; + break; + case 5: // blue to black + red = 0; + green = 0; + blue = (byte) ( 255 - lb ); + break; + default: + red = green = blue = 0; + break; + } + + dst[2] = red; + dst[1] = green; + dst[0] = blue; + } + dst += offset; + } + } + else + { + // copy original depth image + ushort* dst = (ushort*) data.Scan0.ToPointer( ); + int offset = ( data.Stride >> 1 ) - width; + + if ( offset == 0 ) + { + SystemTools.CopyUnmanagedMemory( (byte*) dst, (byte*) src, height * width * 2 ); + } + else + { + for ( int y = 0; y < height; y++ ) + { + SystemTools.CopyUnmanagedMemory( (byte*) dst, (byte*) src, width * 2 ); + + dst += width; + src += width; + dst += offset; + } + } + } + } + + image.UnlockBits( data ); + framesReceived++; + bytesReceived += (int) depthModeInfo.Bytes; + } + catch ( Exception ex ) + { + if ( VideoSourceError != null ) + { + VideoSourceError( this, new VideoSourceErrorEventArgs( ex.Message ) ); + } + + if ( image != null ) + { + if ( data != null ) + { + image.UnlockBits( data ); + } + image.Dispose( ); + image = null; + } + } + + if ( image != null ) + { + if ( NewFrame != null ) + { + NewFrame( this, new NewFrameEventArgs( image ) ); + } + image.Dispose( ); + } + } + } +} diff --git a/Sources/Video.Kinect/KinectNative.cs b/Sources/Video.Kinect/KinectNative.cs new file mode 100644 index 00000000..a2df1019 --- /dev/null +++ b/Sources/Video.Kinect/KinectNative.cs @@ -0,0 +1,364 @@ +// AForge Kinect Video Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +namespace AForge.Video.Kinect +{ + using System; + using System.Runtime.InteropServices; + + /// + /// Kinect's LED color options. + /// + public enum LedColorOption + { + /// + /// The LED is off. + /// + Off = 0, + /// + /// The LED is on and has green color. + /// + Green = 1, + /// + /// The LED is on and has red color. + /// + Red = 2, + /// + /// The LED is on and has yellow color. + /// + Yellow = 3, + /// + /// The LED is blinking with green color. + /// + BlinkGreen = 4, + /// + /// The LED is blinking from red to yellow color. + /// + BlinkRedYellow = 6 + } + + /// + /// Kinect's resolutions of video and depth cameras. + /// + public enum CameraResolution + { + /// + /// Low resolution. + /// + Low, + /// + /// Medium resolution. + /// + Medium, + /// + /// Hight resolution. + /// + High, + } + + internal static class KinectNative + { + // dummy object for synchronization + // Note: it was noticed that if freenect_stop_depth() is called together with freenect_process_events() + // in different threads, then the call may hang sometimes for about 30 seconds or more making impression + // of dead lock or so. Putting lock around those calls seems to help. + private static object sync = new object( ); + + // Logging levels + public enum LogLevelOptions + { + Fatal = 0, + Error, + Warning, + Notice, + Info, + Debug, + Spew, + Flood, + } + + // Video camera data formats + public enum VideoCameraFormat + { + RGB = 0, + Bayer = 1, + IR8Bit = 2, + IR10Bit = 3, + IR10BitPacked = 4 + } + + // Depth camera data formats + public enum DepthCameraFormat + { + Format11Bit = 0, + Format10Bit = 1, + FormatPacked11Bit = 2, + FormatPacked10Bit = 3 + } + + // Different states the tilt motor can be in operation + public enum TiltStatusOption + { + Stopped = 0x00, + AtLimit = 0x01, + Moving = 0x04 + } + + // Device tilt state values. This holds stuff like accelerometer and tilt status. + public struct TiltState + { + public Int16 AccelerometerX; + public Int16 AccelerometerY; + public Int16 AccelerometerZ; + public SByte TiltAngle; + public TiltStatusOption TiltStatus; + + public TiltState( Int16 x, Int16 y, Int16 z ) + { + AccelerometerX = x; + AccelerometerY = y; + AccelerometerZ = z; + TiltAngle = 0; + TiltStatus = TiltStatusOption.Stopped; + } + } + + // Information about certain picture format + [StructLayout( LayoutKind.Sequential )] + public struct BitmapInfoHeader + { + public uint Reserved; + public uint Resolution; + public uint Format; + // Total buffer size in bytes to hold a single frame of data + public uint Bytes; + // Width of the frame, in pixels + public short Width; + // Height of the frame, in pixels + public short Height; + // Number of bits of information needed for each pixel + public byte DataBitsPerPixel; + // Number of bits of padding for alignment used for each pixel + public byte PaddingBitsPerPixel; + // Approximate expected frame rate + public byte Framerate; + // If 0, this structure is invalid and does not describe a supported mode. Otherwise, it is valid. + public byte IsValid; + } + + // BSD like time value + [StructLayout( LayoutKind.Sequential )] + internal class timeval + { + public int sec; + public int usec; + } + + // Native callback for freenect library logging + [UnmanagedFunctionPointer( CallingConvention.Cdecl )] + public delegate void FreenectLogCallback( IntPtr device, LogLevelOptions logLevel, string message ); + + // Native callback for depth data + [UnmanagedFunctionPointer( CallingConvention.Cdecl )] + public delegate void FreenectDepthDataCallback( IntPtr device, IntPtr depthData, UInt32 timestamp ); + + // Native callback for video image data + [UnmanagedFunctionPointer( CallingConvention.Cdecl )] + public delegate void FreenectVideoDataCallback( IntPtr device, IntPtr imageData, UInt32 timestamp ); + + [DllImport( "freenect", CallingConvention = CallingConvention.Cdecl )] + public static extern int freenect_init( ref IntPtr context, IntPtr freenectUSBContext ); + + [DllImport( "freenect", EntryPoint = "freenect_process_events", CallingConvention = CallingConvention.Cdecl )] + private static extern int native_freenect_process_events( IntPtr context ); + + public static int freenect_process_events( IntPtr context ) + { + lock ( sync ) + { + return native_freenect_process_events( context ); + } + } + + [DllImport( "freenect", EntryPoint = "freenect_process_events_timeout", CallingConvention = CallingConvention.Cdecl )] + private static extern int native_freenect_process_events_timeout( IntPtr context, [In] IntPtr timeout ); + + public static int freenect_process_events_timeout0( IntPtr context ) + { + lock ( sync ) + { + return native_freenect_process_events_timeout( context, IntPtr.Zero ); + } + } + + [DllImport( "freenect", CallingConvention = CallingConvention.Cdecl )] + public static extern void freenect_set_log_level( IntPtr context, LogLevelOptions level ); + + [DllImport( "freenect", CallingConvention = CallingConvention.Cdecl )] + public static extern void freenect_set_log_callback( IntPtr context, FreenectLogCallback callback ); + + [DllImport( "freenect", CallingConvention = CallingConvention.Cdecl )] + public static extern int freenect_shutdown( IntPtr context ); + + [DllImport( "freenect", CallingConvention = CallingConvention.Cdecl )] + public static extern int freenect_num_devices( IntPtr context ); + + [DllImport( "freenect", CallingConvention = CallingConvention.Cdecl )] + public static extern int freenect_open_device( IntPtr context, ref IntPtr device, int index ); + + [DllImport( "freenect", CallingConvention = CallingConvention.Cdecl )] + public static extern int freenect_close_device( IntPtr device ); + + [DllImport( "freenect", CallingConvention = CallingConvention.Cdecl )] + [return: MarshalAs( UnmanagedType.Struct )] + public static extern BitmapInfoHeader freenect_find_video_mode( CameraResolution resolution, VideoCameraFormat videoFormat ); + + [DllImport( "freenect", CallingConvention = CallingConvention.Cdecl )] + public static extern int freenect_set_video_mode( IntPtr device, [In, MarshalAs( UnmanagedType.Struct )] BitmapInfoHeader infoHeader ); + + [DllImport( "freenect", CallingConvention = CallingConvention.Cdecl )] + public static extern int freenect_set_video_buffer( IntPtr device, IntPtr buffer ); + + [DllImport( "freenect", CallingConvention = CallingConvention.Cdecl )] + public static extern void freenect_set_video_callback( IntPtr device, FreenectVideoDataCallback callback ); + + [DllImport( "freenect", EntryPoint = "freenect_start_video", CallingConvention = CallingConvention.Cdecl )] + private static extern int native_freenect_start_video( IntPtr device ); + + public static int freenect_start_video( IntPtr device ) + { + lock ( sync ) + { + return native_freenect_start_video( device ); + } + } + + [DllImport( "freenect", EntryPoint = "freenect_stop_video", CallingConvention = CallingConvention.Cdecl )] + private static extern int native_freenect_stop_video( IntPtr device ); + + public static int freenect_stop_video( IntPtr device ) + { + lock ( sync ) + { + return native_freenect_stop_video( device ); + } + } + + [DllImport( "freenect", CallingConvention = CallingConvention.Cdecl )] + [return: MarshalAs( UnmanagedType.Struct )] + public static extern BitmapInfoHeader freenect_find_depth_mode( CameraResolution resolution, DepthCameraFormat depthFormat ); + + [DllImport( "freenect", CallingConvention = CallingConvention.Cdecl )] + public static extern int freenect_set_depth_mode( IntPtr device, BitmapInfoHeader infoHeader ); + + [DllImport( "freenect", CallingConvention = CallingConvention.Cdecl )] + public static extern int freenect_set_depth_buffer( IntPtr device, IntPtr buffer ); + + [DllImport( "freenect", CallingConvention = CallingConvention.Cdecl )] + public static extern void freenect_set_depth_callback( IntPtr device, FreenectDepthDataCallback callback ); + + [DllImport( "freenect", EntryPoint = "freenect_start_depth", CallingConvention = CallingConvention.Cdecl )] + private static extern int native_freenect_start_depth( IntPtr device ); + + public static int freenect_start_depth( IntPtr device ) + { + lock ( sync ) + { + return native_freenect_start_depth( device ); + } + } + + [DllImport( "freenect", EntryPoint = "freenect_stop_depth", CallingConvention = CallingConvention.Cdecl )] + private static extern int native_freenect_stop_depth( IntPtr device ); + + public static int freenect_stop_depth( IntPtr device ) + { + lock ( sync ) + { + return native_freenect_stop_depth( device ); + } + } + + [DllImport( "freenect", CallingConvention = CallingConvention.Cdecl )] + public static extern int freenect_set_led( IntPtr device, LedColorOption option ); + + [DllImport( "freenect", CallingConvention = CallingConvention.Cdecl )] + public static extern int freenect_update_tilt_state( IntPtr device ); + + [DllImport( "freenect", CallingConvention = CallingConvention.Cdecl )] + public static extern IntPtr freenect_get_tilt_state( IntPtr device ); + + [DllImport( "freenect", CallingConvention = CallingConvention.Cdecl )] + public static extern int freenect_set_tilt_degs( IntPtr device, double angle ); + + // feenect context + private static IntPtr freenectContext = IntPtr.Zero; + // logging calback + private static FreenectLogCallback logCallback = new FreenectLogCallback( LogCallback ); + + // Gets a freenect context to work with. + public static IntPtr Context + { + get + { + if ( freenectContext == IntPtr.Zero ) + { + KinectNative.InitializeContext( ); + } + + return freenectContext; + } + } + + // Initializes the freenect context + private static void InitializeContext( ) + { + int result = freenect_init( ref KinectNative.freenectContext, IntPtr.Zero ); + + if ( result != 0 ) + { + throw new ApplicationException( "Could not initialize freenect context. Error Code:" + result ); + } + + // set callback for logging + KinectNative.freenect_set_log_level( freenectContext, LogLevelOptions.Error ); + KinectNative.freenect_set_log_callback( freenectContext, logCallback ); + } + + // Shuts down the context and closes any open devices + public static void ShutdownContext( ) + { + if ( freenectContext != IntPtr.Zero ) + { + // shutdown context + int result = KinectNative.freenect_shutdown( freenectContext ); + if ( result != 0 ) + { + throw new ApplicationException( "Could not shutdown freenect context. Error Code:" + result ); + } + + // Dispose pointer + KinectNative.freenectContext = IntPtr.Zero; + } + } + + // Logging callback + internal static void LogCallback( IntPtr device, LogLevelOptions logLevel, string message ) + { + Console.WriteLine( string.Format( "[{0}] : {1}", logLevel, message ) ); + + if ( OnError != null ) + { + OnError( device ); + } + } + + public delegate void ErrorHandler( IntPtr device ); + public static event ErrorHandler OnError; + } +} diff --git a/Sources/Video.Kinect/KinectVideoCamera.cs b/Sources/Video.Kinect/KinectVideoCamera.cs new file mode 100644 index 00000000..7d7c482b --- /dev/null +++ b/Sources/Video.Kinect/KinectVideoCamera.cs @@ -0,0 +1,523 @@ +// AForge Kinect Video Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +namespace AForge.Video.Kinect +{ + using System; + using System.Collections.Generic; + using System.Drawing; + using System.Drawing.Imaging; + using System.Runtime.InteropServices; + + using AForge; + using AForge.Imaging; + using AForge.Video; + + /// + /// Enumeration of video camera modes for the . + /// + public enum VideoCameraMode + { + /// + /// 24 bit per pixel RGB mode. + /// + Color, + + /// + /// 8 bit per pixel Bayer mode. + /// + Bayer, + + /// + /// 8 bit per pixel Infra Red mode. + /// + InfraRed + } + + /// + /// Video source for Microsoft Kinect's video camera. + /// + /// + /// The video source captures video data from Microsoft Kinect + /// video camera, which is aimed originally as a gaming device for XBox 360 platform. + /// + /// Prior to using the class, make sure you've installed Kinect's drivers + /// as described on Open Kinect + /// project's page. + /// + /// In order to run correctly the class requires freenect.dll library + /// to be put into solution's output folder. This can be found within the AForge.NET framework's + /// distribution in Externals folder. + /// + /// Sample usage: + /// + /// // create video source + /// KinectVideoCamera videoSource = new KinectVideoCamera( 0 ); + /// // set NewFrame event handler + /// videoSource.NewFrame += new NewFrameEventHandler( video_NewFrame ); + /// // start the video source + /// videoSource.Start( ); + /// // ... + /// + /// private void video_NewFrame( object sender, NewFrameEventArgs eventArgs ) + /// { + /// // get new frame + /// Bitmap bitmap = eventArgs.Frame; + /// // process the frame + /// } + /// + /// + /// + public class KinectVideoCamera : IVideoSource + { + // Kinect's device ID + private int deviceID; + // received frames count + private int framesReceived; + // recieved byte count + private long bytesReceived; + // camera mode + private VideoCameraMode cameraMode = VideoCameraMode.Color; + // camera resolution to set + private CameraResolution resolution = CameraResolution.Medium; + // list of currently running cameras + private static List runningCameras = new List( ); + + // dummy object to lock for synchronization + private object sync = new object( ); + + /// + /// New frame event. + /// + /// + /// Notifies clients about new available frames from the video source. + /// + /// Since video source may have multiple clients, each client is responsible for + /// making a copy (cloning) of the passed video frame, because the video source disposes its + /// own original copy after notifying of clients. + /// + /// + public event NewFrameEventHandler NewFrame; + + /// + /// Video source error event. + /// + /// + /// This event is used to notify clients about any type of errors occurred in + /// video source object, for example internal exceptions. + /// + public event VideoSourceErrorEventHandler VideoSourceError; + + /// + /// Video playing finished event. + /// + /// + /// This event is used to notify clients that the video playing has finished. + /// + /// + public event PlayingFinishedEventHandler PlayingFinished; + + /// + /// Specifies video mode for the camera. + /// + /// + /// + /// The property must be set before running the video source to take effect. + /// + /// Default value of the property is set to . + /// + /// + public VideoCameraMode CameraMode + { + get { return cameraMode; } + set { cameraMode = value; } + } + + /// + /// Resolution of video camera to set. + /// + /// + /// The property must be set before running the video source to take effect. + /// + /// Default value of the property is set to . + /// + /// + public CameraResolution Resolution + { + get { return resolution; } + set { resolution = value; } + } + + /// + /// A string identifying the video source. + /// + /// + public virtual string Source + { + get { return "Kinect:VideoCamera:" + deviceID; } + } + + /// + /// State of the video source. + /// + /// + /// Current state of video source object - running or not. + /// + public bool IsRunning + { + get + { + lock ( sync ) + { + return ( device != null ); + } + } + } + + /// + /// Received bytes count. + /// + /// + /// Number of bytes the video source provided from the moment of the last + /// access to the property. + /// + /// + public long BytesReceived + { + get + { + long bytes = bytesReceived; + bytesReceived = 0; + return bytes; + } + } + + /// + /// Received frames count. + /// + /// + /// Number of frames the video source provided from the moment of the last + /// access to the property. + /// + /// + public int FramesReceived + { + get + { + int frames = framesReceived; + framesReceived = 0; + return frames; + } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Kinect's device ID (index) to connect to. + /// + public KinectVideoCamera( int deviceID ) + { + this.deviceID = deviceID; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Kinect's device ID (index) to connect to. + /// Resolution of video camera to set. + /// + public KinectVideoCamera( int deviceID, CameraResolution resolution ) + { + this.deviceID = deviceID; + this.resolution = resolution; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Kinect's device ID (index) to connect to. + /// Resolution of video camera to set. + /// Sets video camera mode. + /// + public KinectVideoCamera( int deviceID, CameraResolution resolution, VideoCameraMode cameraMode ) + { + this.deviceID = deviceID; + this.resolution = resolution; + this.cameraMode = cameraMode; + } + + private Kinect device = null; + private IntPtr imageBuffer = IntPtr.Zero; + private KinectNative.BitmapInfoHeader videoModeInfo; + + /// + /// Start video source. + /// + /// + /// Starts video source and returns execution to caller. Video camera will be started + /// and will provide new video frames through the event. + /// + /// The specified resolution is not supported for the selected + /// mode of the Kinect video camera. + /// Could not connect to Kinect's video camera. + /// Another connection to the specified video camera is already running. + /// + public void Start( ) + { + lock ( sync ) + { + lock ( runningCameras ) + { + if ( device == null ) + { + bool success = false; + + try + { + if ( runningCameras.Contains( deviceID ) ) + { + throw new DeviceBusyException( "Another connection to the specified video camera is already running." ); + } + + // get Kinect device + device = Kinect.GetDevice( deviceID ); + + KinectNative.VideoCameraFormat dataFormat = KinectNative.VideoCameraFormat.RGB; + + if ( cameraMode == VideoCameraMode.Bayer ) + { + dataFormat = KinectNative.VideoCameraFormat.Bayer; + } + else if ( cameraMode == VideoCameraMode.InfraRed ) + { + dataFormat = KinectNative.VideoCameraFormat.IR8Bit; + } + + // find video format parameters + videoModeInfo = KinectNative.freenect_find_video_mode( resolution, dataFormat ); + + if ( videoModeInfo.IsValid == 0 ) + { + throw new ArgumentException( "The specified resolution is not supported for the selected mode of the Kinect video camera." ); + } + + // set video format + if ( KinectNative.freenect_set_video_mode( device.RawDevice, videoModeInfo ) != 0 ) + { + throw new VideoException( "Could not switch to the specified video format." ); + } + + // allocate video buffer and provide it freenect + imageBuffer = Marshal.AllocHGlobal( (int) videoModeInfo.Bytes ); + KinectNative.freenect_set_video_buffer( device.RawDevice, imageBuffer ); + + // set video callback + videoCallback = new KinectNative.FreenectVideoDataCallback( HandleDataReceived ); + KinectNative.freenect_set_video_callback( device.RawDevice, videoCallback ); + + // start the camera + if ( KinectNative.freenect_start_video( device.RawDevice ) != 0 ) + { + throw new ConnectionFailedException( "Could not start video stream." ); + } + + success = true; + runningCameras.Add( deviceID ); + + device.AddFailureHandler( deviceID, Stop ); + } + finally + { + if ( !success ) + { + if ( device != null ) + { + device.Dispose( ); + device = null; + } + + if ( imageBuffer != IntPtr.Zero ) + { + Marshal.FreeHGlobal( imageBuffer ); + imageBuffer = IntPtr.Zero; + } + } + } + } + } + } + } + + /// + /// Signal video source to stop its work. + /// + /// + /// Calling this method is equivalent to calling + /// for Kinect video camera. + /// + public void SignalToStop( ) + { + Stop( ); + } + + /// + /// Wait for video source has stopped. + /// + /// + /// Calling this method is equivalent to calling + /// for Kinect video camera. + /// + public void WaitForStop( ) + { + Stop( ); + } + + /// + /// Stop video source. + /// + /// + /// The method stops the video source, so it no longer provides new video frames + /// and does not consume any resources. + /// + /// + public void Stop( ) + { + lock ( sync ) + { + lock ( runningCameras ) + { + if ( device != null ) + { + bool deviceFailed = device.IsDeviceFailed( deviceID ); + + if ( !deviceFailed ) + { + KinectNative.freenect_stop_video( device.RawDevice ); + } + + device.Dispose( ); + device = null; + runningCameras.Remove( deviceID ); + + if ( PlayingFinished != null ) + { + PlayingFinished( this, ( !deviceFailed ) ? + ReasonToFinishPlaying.StoppedByUser : ReasonToFinishPlaying.DeviceLost ); + } + } + + if ( imageBuffer != IntPtr.Zero ) + { + Marshal.FreeHGlobal( imageBuffer ); + imageBuffer = IntPtr.Zero; + } + + videoCallback = null; + } + } + } + + // New video data event handler + private KinectNative.FreenectVideoDataCallback videoCallback = null; + + private void HandleDataReceived( IntPtr device, IntPtr imageData, UInt32 timeStamp ) + { + int width = videoModeInfo.Width; + int height = videoModeInfo.Height; + + Bitmap image = null; + BitmapData data = null; + + try + { + image = ( cameraMode == VideoCameraMode.Color ) ? + new Bitmap( width, height, PixelFormat.Format24bppRgb ) : + AForge.Imaging.Image.CreateGrayscaleImage( width, height ); + + data = image.LockBits( new Rectangle( 0, 0, width, height ), + ImageLockMode.ReadWrite, image.PixelFormat ); + + unsafe + { + byte* dst = (byte*) data.Scan0.ToPointer( ); + byte* src = (byte*) imageBuffer.ToPointer( ); + + if ( cameraMode == VideoCameraMode.Color ) + { + // color RGB 24 mode + int offset = data.Stride - width * 3; + + for ( int y = 0; y < height; y++ ) + { + for ( int x = 0; x < width; x++, src += 3, dst += 3 ) + { + dst[0] = src[2]; + dst[1] = src[1]; + dst[2] = src[0]; + } + dst += offset; + } + } + else + { + // infra red mode - grayscale output + int stride = data.Stride; + + if ( stride != width ) + { + for ( int y = 0; y < height; y++ ) + { + SystemTools.CopyUnmanagedMemory( dst, src, width ); + dst += stride; + src += width; + } + } + else + { + SystemTools.CopyUnmanagedMemory( dst, src, width * height ); + } + } + } + image.UnlockBits( data ); + + framesReceived++; + bytesReceived += width * height; + } + catch ( Exception ex ) + { + if ( VideoSourceError != null ) + { + VideoSourceError( this, new VideoSourceErrorEventArgs( ex.Message ) ); + } + + if ( image != null ) + { + if ( data != null ) + { + image.UnlockBits( data ); + } + image.Dispose( ); + image = null; + } + } + + if ( image != null ) + { + if ( NewFrame != null ) + { + NewFrame( this, new NewFrameEventArgs( image ) ); + } + + image.Dispose( ); + } + } + } +} diff --git a/Sources/Video.Kinect/Properties/AssemblyInfo.cs b/Sources/Video.Kinect/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..9311e171 --- /dev/null +++ b/Sources/Video.Kinect/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle( "AForge.Video.Kinect" )] +[assembly: AssemblyDescription( "" )] +[assembly: AssemblyConfiguration( "" )] +[assembly: AssemblyCompany( "AForge" )] +[assembly: AssemblyProduct( "AForge.NET" )] +[assembly: AssemblyCopyright( "AForge © 2012" )] +[assembly: AssemblyTrademark( "" )] +[assembly: AssemblyCulture( "" )] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible( false )] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid( "e8238ae5-62b6-49e1-ac18-86521e625539" )] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion( "2.2.4.0" )] +[assembly: AssemblyFileVersion( "2.2.4.0" )] diff --git a/Sources/Video.Kinect/Video.Kinect.csproj b/Sources/Video.Kinect/Video.Kinect.csproj new file mode 100644 index 00000000..9fd2f6df --- /dev/null +++ b/Sources/Video.Kinect/Video.Kinect.csproj @@ -0,0 +1,117 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {9DA8E727-4038-4E6B-90BD-853730FDFA49} + Library + Properties + AForge.Video.Kinect + AForge.Video.Kinect + v2.0 + 512 + true + AForge.Video.Kinect.snk + + + 3.5 + + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + true + full + false + ..\..\Release\ + DEBUG;TRACE + prompt + 4 + true + AForge.Video.Kinect.xml + + + pdbonly + true + ..\..\Release\ + TRACE + prompt + 4 + true + AForge.Video.Kinect.xml + + + + False + ..\..\Release\AForge.dll + + + False + ..\..\Release\AForge.Imaging.dll + + + False + ..\..\Release\AForge.Video.dll + + + + + + + + + + + + + + + + + + + False + Microsoft .NET Framework 4 %28x86 and x64%29 + true + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 3.1 + true + + + + + \ No newline at end of file diff --git a/Sources/Video.Kinect/Video.Kinect.sln b/Sources/Video.Kinect/Video.Kinect.sln new file mode 100644 index 00000000..c70040b4 --- /dev/null +++ b/Sources/Video.Kinect/Video.Kinect.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual C# Express 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Video.Kinect", "Video.Kinect.csproj", "{9DA8E727-4038-4E6B-90BD-853730FDFA49}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {9DA8E727-4038-4E6B-90BD-853730FDFA49}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9DA8E727-4038-4E6B-90BD-853730FDFA49}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9DA8E727-4038-4E6B-90BD-853730FDFA49}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9DA8E727-4038-4E6B-90BD-853730FDFA49}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Sources/Video.VFW/AForge.Video.VFW.snk b/Sources/Video.VFW/AForge.Video.VFW.snk new file mode 100644 index 00000000..8f47b4e1 Binary files /dev/null and b/Sources/Video.VFW/AForge.Video.VFW.snk differ diff --git a/Sources/Video.VFW/AVIFileVideoSource.cs b/Sources/Video.VFW/AVIFileVideoSource.cs new file mode 100644 index 00000000..f3f2ac3f --- /dev/null +++ b/Sources/Video.VFW/AVIFileVideoSource.cs @@ -0,0 +1,398 @@ +// AForge Video for Windows Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +namespace AForge.Video.VFW +{ + using System; + using System.Drawing; + using System.Drawing.Imaging; + using System.IO; + using System.Threading; + + using AForge.Video; + + /// + /// AVI file video source. + /// + /// + /// The video source reads AVI files using Video for Windows. + /// + /// Sample usage: + /// + /// // create AVI file video source + /// AVIFileVideoSource source = new AVIFileVideoSource( "some file" ); + /// // set event handlers + /// source.NewFrame += new NewFrameEventHandler( video_NewFrame ); + /// // start the video source + /// source.Start( ); + /// // ... + /// // signal to stop + /// source.SignalToStop( ); + /// + /// // New frame event handler, which is invoked on each new available video frame + /// private void video_NewFrame( object sender, NewFrameEventArgs eventArgs ) + /// { + /// // get new frame + /// Bitmap bitmap = eventArgs.Frame; + /// // process the frame + /// } + /// + /// + /// + public class AVIFileVideoSource : IVideoSource + { + // video file name + private string source; + // received frames count + private int framesReceived; + // recieved byte count + private long bytesReceived; + // frame interval in milliseconds + private int frameInterval = 0; + // get frame interval from source or use manually specified + private bool frameIntervalFromSource = true; + + private Thread thread = null; + private ManualResetEvent stopEvent = null; + + /// + /// New frame event. + /// + /// + /// Notifies clients about new available frame from video source. + /// + /// Since video source may have multiple clients, each client is responsible for + /// making a copy (cloning) of the passed video frame, because the video source disposes its + /// own original copy after notifying of clients. + /// + /// + public event NewFrameEventHandler NewFrame; + + /// + /// Video source error event. + /// + /// + /// This event is used to notify clients about any type of errors occurred in + /// video source object, for example internal exceptions. + /// + public event VideoSourceErrorEventHandler VideoSourceError; + + /// + /// Video playing finished event. + /// + /// + /// This event is used to notify clients that the video playing has finished. + /// + /// + public event PlayingFinishedEventHandler PlayingFinished; + + /// + /// Frame interval. + /// + /// + /// The property sets the interval in milliseconds between frames. If the property is + /// set to 100, then the desired frame rate will be 10 frames per second. + /// + /// Setting this property to 0 leads to no delay between video frames - frames + /// are read as fast as possible. + /// + /// Default value is set to 0. + /// + /// + public int FrameInterval + { + get { return frameInterval; } + set { frameInterval = value; } + } + + /// + /// Get frame interval from source or use manually specified. + /// + /// + /// The property specifies which frame rate to use for video playing. + /// If the property is set to , then video is played + /// with original frame rate, which is set in source AVI file. If the property is + /// set to , then custom frame rate is used, which is + /// calculated based on the manually specified frame interval. + /// + /// Default value is set to . + /// + /// + public bool FrameIntervalFromSource + { + get { return frameIntervalFromSource; } + set { frameIntervalFromSource = value; } + } + + /// + /// Video source. + /// + /// + /// Video file name to play. + /// + public virtual string Source + { + get { return source; } + set { source = value; } + } + + /// + /// Received frames count. + /// + /// + /// Number of frames the video source provided from the moment of the last + /// access to the property. + /// + /// + public int FramesReceived + { + get + { + int frames = framesReceived; + framesReceived = 0; + return frames; + } + } + + /// + /// Received bytes count. + /// + /// + /// Number of bytes the video source provided from the moment of the last + /// access to the property. + /// + /// + public long BytesReceived + { + get + { + long bytes = bytesReceived; + bytesReceived = 0; + return bytes; + } + } + + /// + /// State of the video source. + /// + /// + /// Current state of video source object - running or not. + /// + public bool IsRunning + { + get + { + if ( thread != null ) + { + // check thread status + if ( thread.Join( 0 ) == false ) + return true; + + // the thread is not running, so free resources + Free( ); + } + return false; + } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public AVIFileVideoSource( ) { } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Video file name. + /// + public AVIFileVideoSource( string source ) + { + this.source = source; + } + + /// + /// Start video source. + /// + /// + /// Starts video source and return execution to caller. Video source + /// object creates background thread and notifies about new frames with the + /// help of event. + /// + /// Video source is not specified. + /// + public void Start( ) + { + if ( !IsRunning ) + { + // check source + if ( string.IsNullOrEmpty( source ) ) + throw new ArgumentException( "Video source is not specified." ); + + framesReceived = 0; + bytesReceived = 0; + + // create events + stopEvent = new ManualResetEvent( false ); + + // create and start new thread + thread = new Thread( new ThreadStart( WorkerThread ) ); + thread.Name = source; + thread.Start( ); + } + } + + /// + /// Signal video source to stop its work. + /// + /// + /// Signals video source to stop its background thread, stop to + /// provide new frames and free resources. + /// + public void SignalToStop( ) + { + // stop thread + if ( thread != null ) + { + // signal to stop + stopEvent.Set( ); + } + } + + /// + /// Wait for video source has stopped. + /// + /// + /// Waits for source stopping after it was signalled to stop using + /// method. + /// + public void WaitForStop( ) + { + if ( thread != null ) + { + // wait for thread stop + thread.Join( ); + + Free( ); + } + } + + /// + /// Stop video source. + /// + /// + /// Stops video source aborting its thread. + /// + /// Since the method aborts background thread, its usage is highly not preferred + /// and should be done only if there are no other options. The correct way of stopping camera + /// is signaling it stop and then + /// waiting for background thread's completion. + /// + /// + public void Stop( ) + { + if ( this.IsRunning ) + { + thread.Abort( ); + WaitForStop( ); + } + } + + /// + /// Free resource. + /// + /// + private void Free( ) + { + thread = null; + + // release events + stopEvent.Close( ); + stopEvent = null; + } + + /// + /// Worker thread. + /// + /// + private void WorkerThread( ) + { + ReasonToFinishPlaying reasonToStop = ReasonToFinishPlaying.StoppedByUser; + // AVI reader + AVIReader aviReader = new AVIReader( ); + + try + { + // open file + aviReader.Open( source ); + + // stop positions + int stopPosition = aviReader.Start + aviReader.Length; + + // frame interval + int interval = ( frameIntervalFromSource ) ? (int) ( 1000 / aviReader.FrameRate ) : frameInterval; + + while ( !stopEvent.WaitOne( 0, false ) ) + { + // start time + DateTime start = DateTime.Now; + + // get next frame + Bitmap bitmap = aviReader.GetNextFrame( ); + + framesReceived++; + bytesReceived += bitmap.Width * bitmap.Height * + ( Bitmap.GetPixelFormatSize( bitmap.PixelFormat ) >> 3 ); + + if ( NewFrame != null ) + NewFrame( this, new NewFrameEventArgs( bitmap ) ); + + // free image + bitmap.Dispose( ); + + // check current position + if ( aviReader.Position >= stopPosition ) + { + reasonToStop = ReasonToFinishPlaying.EndOfStreamReached; + break; + } + + // wait for a while ? + if ( interval > 0 ) + { + // get frame extract duration + TimeSpan span = DateTime.Now.Subtract( start ); + + // miliseconds to sleep + int msec = interval - (int) span.TotalMilliseconds; + + if ( ( msec > 0 ) && ( stopEvent.WaitOne( msec, false ) ) ) + break; + } + } + } + catch ( Exception exception ) + { + // provide information to clients + if ( VideoSourceError != null ) + { + VideoSourceError( this, new VideoSourceErrorEventArgs( exception.Message ) ); + } + } + + aviReader.Dispose( ); + aviReader = null; + + if ( PlayingFinished != null ) + { + PlayingFinished( this, reasonToStop ); + } + } + } +} diff --git a/Sources/Video.VFW/AVIReader.cs b/Sources/Video.VFW/AVIReader.cs new file mode 100644 index 00000000..476c3755 --- /dev/null +++ b/Sources/Video.VFW/AVIReader.cs @@ -0,0 +1,381 @@ +// AForge Video for Windows Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +namespace AForge.Video.VFW +{ + using System; + using System.Drawing; + using System.Drawing.Imaging; + using System.Runtime.InteropServices; + using AForge; + + /// + /// AVI files reading using Video for Windows. + /// + /// + /// The class allows to read AVI files using Video for Windows API. + /// + /// Sample usage: + /// + /// // instantiate AVI reader + /// AVIReader reader = new AVIReader( ); + /// // open video file + /// reader.Open( "test.avi" ); + /// // read the video file + /// while ( reader.Position - reader.Start < reader.Length ) + /// { + /// // get next frame + /// Bitmap image = reader.GetNextFrame( ); + /// // .. process the frame somehow or display it + /// } + /// reader.Close( ); + /// + /// + /// + public class AVIReader : IDisposable + { + // AVI file + private IntPtr file; + // video stream + private IntPtr stream; + // get frame object + private IntPtr getFrame; + + // width of video frames + private int width; + // height of vide frames + private int height; + // current position in video stream + private int position; + // starting position in video stream + private int start; + // length of video stream + private int length; + // frame rate + private float rate; + // codec used for video compression + private string codec; + + // dummy object to lock for synchronization + private object sync = new object( ); + + /// + /// Width of video frames. + /// + /// + /// The property specifies the width of video frames within the opened video + /// file. + /// + public int Width + { + get { return width; } + } + + /// + /// Height of video frames. + /// + /// + /// The property specifies the height of video frames within the opened video + /// file. + /// + public int Height + { + get { return height; } + } + + /// + /// Current position in video stream. + /// + /// + /// Setting position outside of video range, will lead to reseting position to the start. + /// + public int Position + { + get { return position; } + set { position = ( ( value < start ) || ( value >= start + length ) ) ? start : value; } + } + + /// + /// Starting position of video stream. + /// + /// + public int Start + { + get { return start; } + } + + /// + /// Video stream length. + /// + /// + public int Length + { + get { return length; } + } + + /// + /// Desired playing frame rate. + /// + /// + /// The property specifies the frame rate, which should be used to play the opened video + /// file. + /// + public float FrameRate + { + get { return rate; } + } + + /// + /// Codec used for video compression. + /// + /// + /// The property tells about which codec was used to encode the opened video file. + /// + public string Codec + { + get { return codec; } + } + + + /// + /// Initializes a new instance of the class. + /// + /// + /// Initializes Video for Windows library. + /// + public AVIReader( ) + { + Win32.AVIFileInit( ); + } + + /// + /// Destroys the instance of the class. + /// + /// + ~AVIReader( ) + { + Dispose( false ); + } + + /// + /// Dispose the object. + /// + /// + /// Frees unmanaged resources used by the object. The object becomes unusable + /// after that. + /// + public void Dispose( ) + { + Dispose( true ); + // remove me from the Finalization queue + GC.SuppressFinalize( this ); + } + + /// + /// Dispose the object. + /// + /// + /// Indicates if disposing was initiated manually. + /// + protected virtual void Dispose( bool disposing ) + { + if ( disposing ) + { + // dispose managed resources + } + // close current AVI file if any opened and uninitialize AVI library + Close( ); + Win32.AVIFileExit( ); + } + + /// + /// Open AVI file. + /// + /// + /// AVI file name to open. + /// + /// The method opens a video file and prepares the stream and decoder for + /// reading video frames with the help of method. + /// + /// + /// Failed opening the specified file. + /// A error occurred while opening the video file. See exception message. + /// + /// + public void Open( string fileName ) + { + // close previous file + Close( ); + + bool success = false; + + try + { + lock ( sync ) + { + // open AVI file + if ( Win32.AVIFileOpen( out file, fileName, Win32.OpenFileMode.ShareDenyWrite, IntPtr.Zero ) != 0 ) + throw new System.IO.IOException( "Failed opening the specified AVI file." ); + + // get first video stream + if ( Win32.AVIFileGetStream( file, out stream, Win32.mmioFOURCC( "vids" ), 0 ) != 0 ) + throw new VideoException( "Failed getting video stream." ); + + // get stream info + Win32.AVISTREAMINFO info = new Win32.AVISTREAMINFO( ); + Win32.AVIStreamInfo( stream, ref info, Marshal.SizeOf( info ) ); + + width = info.rectFrame.right; + height = info.rectFrame.bottom; + position = info.start; + start = info.start; + length = info.length; + rate = (float) info.rate / (float) info.scale; + codec = Win32.decode_mmioFOURCC( info.handler ); + + // prepare decompressor + Win32.BITMAPINFOHEADER bitmapInfoHeader = new Win32.BITMAPINFOHEADER( ); + + bitmapInfoHeader.size = Marshal.SizeOf( bitmapInfoHeader.GetType( ) ); + bitmapInfoHeader.width = width; + bitmapInfoHeader.height = height; + bitmapInfoHeader.planes = 1; + bitmapInfoHeader.bitCount = 24; + bitmapInfoHeader.compression = 0; // BI_RGB + + // get frame object + if ( ( getFrame = Win32.AVIStreamGetFrameOpen( stream, ref bitmapInfoHeader ) ) == IntPtr.Zero ) + { + bitmapInfoHeader.height = -height; + + if ( ( getFrame = Win32.AVIStreamGetFrameOpen( stream, ref bitmapInfoHeader ) ) == IntPtr.Zero ) + throw new VideoException( "Failed initializing decompressor." ); + } + + success = true; + } + } + finally + { + if ( !success ) + { + Close( ); + } + } + } + + /// + /// Close video file. + /// + /// + public void Close( ) + { + lock ( sync ) + { + // release get frame object + if ( getFrame != IntPtr.Zero ) + { + Win32.AVIStreamGetFrameClose( getFrame ); + getFrame = IntPtr.Zero; + } + + // release stream + if ( stream != IntPtr.Zero ) + { + Win32.AVIStreamRelease( stream ); + stream = IntPtr.Zero; + } + + // release file + if ( file != IntPtr.Zero ) + { + Win32.AVIFileRelease( file ); + file = IntPtr.Zero; + } + } + } + + /// + /// Get next frame of opened video stream. + /// + /// + /// Returns next frame as a bitmap. + /// + /// The method reads and returns the next video frame in the opened video stream + /// at the position, which is set in property. + /// + /// Thrown if no video file was open. + /// A error occurred while reading next video frame. See exception message. + /// + public Bitmap GetNextFrame( ) + { + lock ( sync ) + { + if ( file == IntPtr.Zero ) + { + throw new System.IO.IOException( "Cannot read video frames since video file is not open." ); + } + + // get frame at specified position + IntPtr DIB = Win32.AVIStreamGetFrame( getFrame, position ); + if ( DIB == IntPtr.Zero ) + throw new VideoException( "Failed getting frame." ); + + Win32.BITMAPINFOHEADER bitmapInfoHeader; + + // copy BITMAPINFOHEADER from unmanaged memory + bitmapInfoHeader = (Win32.BITMAPINFOHEADER) Marshal.PtrToStructure( DIB, typeof( Win32.BITMAPINFOHEADER ) ); + + // create new bitmap + Bitmap image = new Bitmap( width, height, PixelFormat.Format24bppRgb ); + + // lock bitmap data + BitmapData imageData = image.LockBits( + new Rectangle( 0, 0, width, height ), + ImageLockMode.ReadWrite, + PixelFormat.Format24bppRgb ); + + // copy image data + int srcStride = imageData.Stride; + int dstStride = imageData.Stride; + + // check image direction + if ( bitmapInfoHeader.height > 0 ) + { + // it`s a bottom-top image + int dst = imageData.Scan0.ToInt32( ) + dstStride * ( height - 1 ); + int src = DIB.ToInt32( ) + Marshal.SizeOf( typeof( Win32.BITMAPINFOHEADER ) ); + + for ( int y = 0; y < height; y++ ) + { + Win32.memcpy( dst, src, srcStride ); + dst -= dstStride; + src += srcStride; + } + } + else + { + // it`s a top bootom image + int dst = imageData.Scan0.ToInt32( ); + int src = DIB.ToInt32( ) + Marshal.SizeOf( typeof( Win32.BITMAPINFOHEADER ) ); + + // copy the whole image + Win32.memcpy( dst, src, srcStride * height ); + } + + // unlock bitmap data + image.UnlockBits( imageData ); + + // move position to the next frame + position++; + + return image; + } + } + } +} diff --git a/Sources/Video.VFW/AVIWriter.cs b/Sources/Video.VFW/AVIWriter.cs new file mode 100644 index 00000000..cee6dd65 --- /dev/null +++ b/Sources/Video.VFW/AVIWriter.cs @@ -0,0 +1,427 @@ +// AForge Video for Windows Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +namespace AForge.Video.VFW +{ + using System; + using System.Drawing; + using System.Drawing.Imaging; + using System.Runtime.InteropServices; + using AForge; + + /// + /// AVI files writing using Video for Windows interface. + /// + /// + /// The class allows to write AVI files using Video for Windows API. + /// + /// Sample usage: + /// + /// // instantiate AVI writer, use WMV3 codec + /// AVIWriter writer = new AVIWriter( "wmv3" ); + /// // create new AVI file and open it + /// writer.Open( "test.avi", 320, 240 ); + /// // create frame image + /// Bitmap image = new Bitmap( 320, 240 ); + /// + /// for ( int i = 0; i < 240; i++ ) + /// { + /// // update image + /// image.SetPixel( i, i, Color.Red ); + /// // add the image as a new frame of video file + /// writer.AddFrame( image ); + /// } + /// writer.Close( ); + /// + /// + /// + public class AVIWriter : IDisposable + { + // AVI file + private IntPtr file; + // video stream + private IntPtr stream; + // compressed stream + private IntPtr streamCompressed; + // buffer + private IntPtr buffer = IntPtr.Zero; + + // width of video frames + private int width; + // height of vide frames + private int height; + // length of one line + private int stride; + // quality + private int quality = -1; + // frame rate + private int rate = 25; + // current position + private int position; + // codec used for video compression + private string codec = "DIB "; + + // dummy object to lock for synchronization + private object sync = new object( ); + + /// + /// Width of video frames. + /// + /// + /// The property specifies the width of video frames, which are acceptable + /// by method for saving, which is set in + /// method. + /// + public int Width + { + get { return ( buffer != IntPtr.Zero ) ? width : 0; } + } + + /// + /// Height of video frames. + /// + /// + /// The property specifies the height of video frames, which are acceptable + /// by method for saving, which is set in + /// method. + /// + public int Height + { + get { return ( buffer != IntPtr.Zero ) ? height : 0; } + } + + /// + /// Current position in video stream. + /// + /// + /// The property tell current position in video stream, which actually equals + /// to the amount of frames added using method. + /// + public int Position + { + get { return position; } + } + + /// + /// Desired playing frame rate. + /// + /// + /// The property sets the video frame rate, which should be use during playing + /// of the video to be saved. + /// + /// The property should be set befor opening new file to take effect. + /// + /// Default frame rate is set to 25. + /// + public int FrameRate + { + get { return rate; } + set { rate = value; } + } + + /// + /// Codec used for video compression. + /// + /// + /// The property sets the FOURCC code of video compression codec, which needs to + /// be used for video encoding. + /// + /// The property should be set befor opening new file to take effect. + /// + /// Default video codec is set "DIB ", which means no compression. + /// + public string Codec + { + get { return codec; } + set { codec = value; } + } + + /// + /// Compression video quality. + /// + /// + /// The property sets video quality used by codec in order to balance compression rate + /// and image quality. The quality is measured usually in the [0, 100] range. + /// + /// The property should be set befor opening new file to take effect. + /// + /// Default value is set to -1 - default compression quality of the codec. + /// + public int Quality + { + get { return quality; } + set { quality = value; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Initializes Video for Windows library. + /// + public AVIWriter( ) + { + Win32.AVIFileInit( ); + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Codec to use for compression. + /// + /// Initializes Video for Windows library. + /// + public AVIWriter( string codec ) : this( ) + { + this.codec = codec; + } + + /// + /// Destroys the instance of the class. + /// + /// + ~AVIWriter( ) + { + Dispose( false ); + } + + /// + /// Dispose the object. + /// + /// + /// Frees unmanaged resources used by the object. The object becomes unusable + /// after that. + /// + public void Dispose( ) + { + Dispose( true ); + // remove me from the Finalization queue + GC.SuppressFinalize( this ); + } + + /// + /// Dispose the object. + /// + /// + /// Indicates if disposing was initiated manually. + /// + protected virtual void Dispose( bool disposing ) + { + if ( disposing ) + { + // dispose managed resources + } + // close current AVI file if any opened and uninitialize AVI library + Close( ); + Win32.AVIFileExit( ); + } + + /// + /// Create new AVI file and open it for writing. + /// + /// + /// AVI file name to create. + /// Video width. + /// Video height. + /// + /// The method opens (creates) a video files, configure video codec and prepares + /// the stream for saving video frames with a help of method. + /// + /// Failed opening the specified file. + /// A error occurred while creating new video file. See exception message. + /// Insufficient memory for internal buffer. + /// Video file resolution must be a multiple of two. + /// + public void Open( string fileName, int width, int height ) + { + // close previous file + Close( ); + + // check width and height + if ( ( ( width & 1 ) != 0 ) || ( ( height & 1 ) != 0 ) ) + { + throw new ArgumentException( "Video file resolution must be a multiple of two." ); + } + + bool success = false; + + try + { + lock ( sync ) + { + // calculate stride + stride = width * 3; + if ( ( stride % 4 ) != 0 ) + stride += ( 4 - stride % 4 ); + + // create new file + if ( Win32.AVIFileOpen( out file, fileName, Win32.OpenFileMode.Create | Win32.OpenFileMode.Write, IntPtr.Zero ) != 0 ) + throw new System.IO.IOException( "Failed opening the specified file." ); + + this.width = width; + this.height = height; + + // describe new stream + Win32.AVISTREAMINFO info = new Win32.AVISTREAMINFO( ); + + info.type = Win32.mmioFOURCC( "vids" ); + info.handler = Win32.mmioFOURCC( codec ); + info.scale = 1; + info.rate = rate; + info.suggestedBufferSize = stride * height; + + // create stream + if ( Win32.AVIFileCreateStream( file, out stream, ref info ) != 0 ) + throw new VideoException( "Failed creating stream." ); + + // describe compression options + Win32.AVICOMPRESSOPTIONS options = new Win32.AVICOMPRESSOPTIONS( ); + + options.handler = Win32.mmioFOURCC( codec ); + options.quality = quality; + + // uncomment if video settings dialog is required to show + // Win32.AVISaveOptions( stream, ref options ); + + // create compressed stream + if ( Win32.AVIMakeCompressedStream( out streamCompressed, stream, ref options, IntPtr.Zero ) != 0 ) + throw new VideoException( "Failed creating compressed stream." ); + + // describe frame format + Win32.BITMAPINFOHEADER bitmapInfoHeader = new Win32.BITMAPINFOHEADER( ); + + bitmapInfoHeader.size = Marshal.SizeOf( bitmapInfoHeader.GetType( ) ); + bitmapInfoHeader.width = width; + bitmapInfoHeader.height = height; + bitmapInfoHeader.planes = 1; + bitmapInfoHeader.bitCount = 24; + bitmapInfoHeader.sizeImage = 0; + bitmapInfoHeader.compression = 0; // BI_RGB + + // set frame format + if ( Win32.AVIStreamSetFormat( streamCompressed, 0, ref bitmapInfoHeader, Marshal.SizeOf( bitmapInfoHeader.GetType( ) ) ) != 0 ) + throw new VideoException( "Failed setting format of the compressed stream." ); + + // alloc unmanaged memory for frame + buffer = Marshal.AllocHGlobal( stride * height ); + + if ( buffer == IntPtr.Zero ) + { + throw new OutOfMemoryException( "Insufficient memory for internal buffer." ); + } + + position = 0; + success = true; + } + } + finally + { + if ( !success ) + { + Close( ); + } + } + } + + /// + /// Close video file. + /// + /// + public void Close( ) + { + lock ( sync ) + { + // free unmanaged memory + if ( buffer != IntPtr.Zero ) + { + Marshal.FreeHGlobal( buffer ); + buffer = IntPtr.Zero; + } + + // release compressed stream + if ( streamCompressed != IntPtr.Zero ) + { + Win32.AVIStreamRelease( streamCompressed ); + streamCompressed = IntPtr.Zero; + } + + // release stream + if ( stream != IntPtr.Zero ) + { + Win32.AVIStreamRelease( stream ); + stream = IntPtr.Zero; + } + + // release file + if ( file != IntPtr.Zero ) + { + Win32.AVIFileRelease( file ); + file = IntPtr.Zero; + } + } + } + + /// + /// Add new frame to the AVI file. + /// + /// + /// New frame image. + /// + /// The method adds new video frame to an opened video file. The width and heights + /// of the frame should be the same as it was specified in method + /// (see and properties). + /// + /// Thrown if no video file was open. + /// Bitmap size must be of the same as video size, which was specified on opening video file. + /// A error occurred while writing new video frame. See exception message. + /// + public void AddFrame( Bitmap frameImage ) + { + lock ( sync ) + { + // check if AVI file was properly opened + if ( buffer == IntPtr.Zero ) + throw new System.IO.IOException( "AVI file should be successfully opened before writing." ); + + // check image dimension + if ( ( frameImage.Width != width ) || ( frameImage.Height != height ) ) + throw new ArgumentException( "Bitmap size must be of the same as video size, which was specified on opening video file." ); + + // lock bitmap data + BitmapData imageData = frameImage.LockBits( + new Rectangle( 0, 0, width, height ), + ImageLockMode.ReadOnly, PixelFormat.Format24bppRgb ); + + // copy image data + int srcStride = imageData.Stride; + int dstStride = stride; + + int src = imageData.Scan0.ToInt32( ) + srcStride * ( height - 1 ); + int dst = buffer.ToInt32( ); + + for ( int y = 0; y < height; y++ ) + { + Win32.memcpy( dst, src, dstStride ); + dst += dstStride; + src -= srcStride; + } + + // unlock bitmap data + frameImage.UnlockBits( imageData ); + + // write to stream + if ( Win32.AVIStreamWrite( streamCompressed, position, 1, buffer, + stride * height, 0, IntPtr.Zero, IntPtr.Zero ) != 0 ) + throw new VideoException( "Failed adding frame." ); + + position++; + } + } + } +} diff --git a/Sources/Video.VFW/Properties/AssemblyInfo.cs b/Sources/Video.VFW/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..ba017d6b --- /dev/null +++ b/Sources/Video.VFW/Properties/AssemblyInfo.cs @@ -0,0 +1,35 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle( "AForge.Video.VFW" )] +[assembly: AssemblyDescription( "" )] +[assembly: AssemblyConfiguration( "" )] +[assembly: AssemblyCompany( "AForge" )] +[assembly: AssemblyProduct( "AForge.NET" )] +[assembly: AssemblyCopyright( "AForge © 2012" )] +[assembly: AssemblyTrademark( "" )] +[assembly: AssemblyCulture( "" )] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible( false )] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid( "cf141ece-8e71-4d2c-885d-8451b032a618" )] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion( "2.2.4.0" )] +[assembly: AssemblyFileVersion( "2.2.4.0" )] diff --git a/Sources/Video.VFW/Video.VFW.csproj b/Sources/Video.VFW/Video.VFW.csproj new file mode 100644 index 00000000..414b3617 --- /dev/null +++ b/Sources/Video.VFW/Video.VFW.csproj @@ -0,0 +1,121 @@ + + + + Debug + AnyCPU + 9.0.21022 + 2.0 + {22E852C0-17FF-4106-9DF6-41EABB8C0613} + Library + Properties + AForge.Video.VFW + AForge.Video.VFW + true + AForge.Video.VFW.snk + + + 3.5 + v2.0 + + + false + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + true + + + true + full + false + ..\..\Release\ + DEBUG;TRACE + prompt + 4 + AForge.Video.VFW.xml + + + pdbonly + true + ..\..\Release\ + TRACE + prompt + 4 + AForge.Video.VFW.xml + + + + False + ..\..\Release\AForge.dll + + + False + ..\..\Release\AForge.Video.dll + + + + + + + + + + + + + + + + + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 2.0 %28x86%29 + false + + + False + .NET Framework 3.0 %28x86%29 + false + + + False + .NET Framework 3.5 + true + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 3.1 + true + + + + + \ No newline at end of file diff --git a/Sources/Video.VFW/Video.VFW.sln b/Sources/Video.VFW/Video.VFW.sln new file mode 100644 index 00000000..23ce07c8 --- /dev/null +++ b/Sources/Video.VFW/Video.VFW.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual C# Express 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Video.VFW", "Video.VFW.csproj", "{22E852C0-17FF-4106-9DF6-41EABB8C0613}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {22E852C0-17FF-4106-9DF6-41EABB8C0613}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {22E852C0-17FF-4106-9DF6-41EABB8C0613}.Debug|Any CPU.Build.0 = Debug|Any CPU + {22E852C0-17FF-4106-9DF6-41EABB8C0613}.Release|Any CPU.ActiveCfg = Release|Any CPU + {22E852C0-17FF-4106-9DF6-41EABB8C0613}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Sources/Video.VFW/Win32.cs b/Sources/Video.VFW/Win32.cs new file mode 100644 index 00000000..18d6455f --- /dev/null +++ b/Sources/Video.VFW/Win32.cs @@ -0,0 +1,784 @@ +// AForge Video for Windows Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2007-2011 +// contacts@aforgenet.com + +// +namespace AForge.Video.VFW +{ + using System; + using System.Runtime.InteropServices; + + /// + /// Windows API functions and structures. + /// + /// + /// The class provides Video for Windows and some other Win32 functions and structurs. + /// + internal static class Win32 + { + /// + /// Copy a block of memory. + /// + /// + /// Destination pointer. + /// Source pointer. + /// Memory block's length to copy. + /// + /// Return's the value of dst - pointer to destination. + /// + [DllImport( "ntdll.dll", CallingConvention = CallingConvention.Cdecl )] + public static extern int memcpy( + int dst, + int src, + int count ); + + + // --- Video for Windows Functions + + /// + /// Initialize the AVIFile library. + /// + /// + [DllImport( "avifil32.dll" )] + public static extern void AVIFileInit( ); + + /// + /// Exit the AVIFile library. + /// + [DllImport( "avifil32.dll" )] + public static extern void AVIFileExit( ); + + /// + /// Open an AVI file. + /// + /// + /// Opened AVI file interface. + /// AVI file name. + /// Opening mode (see ). + /// Handler to use (null to use default). + /// + /// Returns zero on success or error code otherwise. + /// + [DllImport( "avifil32.dll", CharSet = CharSet.Unicode )] + public static extern int AVIFileOpen( + out IntPtr aviHandler, + String fileName, + OpenFileMode mode, + IntPtr handler ); + + /// + /// Release an open AVI stream. + /// + /// + /// Open AVI file interface. + /// + /// Returns the reference count of the file. + /// + [DllImport( "avifil32.dll" )] + public static extern int AVIFileRelease( + IntPtr aviHandler ); + + /// + /// Get stream interface that is associated with a specified AVI file + /// + /// + /// Handler to an open AVI file. + /// Stream interface. + /// Stream type to open. + /// Count of the stream type. Identifies which occurrence of the specified stream type to access. + /// + /// + /// + [DllImport( "avifil32.dll" )] + public static extern int AVIFileGetStream( + IntPtr aviHandler, + out IntPtr streamHandler, + int streamType, + int streamNumner ); + + /// + /// Create a new stream in an existing file and creates an interface to the new stream. + /// + /// + /// Handler to an open AVI file. + /// Stream interface. + /// Pointer to a structure containing information about the new stream. + /// + /// Returns zero if successful or an error otherwise. + /// + [DllImport( "avifil32.dll" )] + public static extern int AVIFileCreateStream( + IntPtr aviHandler, + out IntPtr streamHandler, + ref AVISTREAMINFO streamInfo ); + + /// + /// Release an open AVI stream. + /// + /// + /// Handle to an open stream. + /// + /// Returns the current reference count of the stream. + /// + [DllImport( "avifil32.dll" )] + public static extern int AVIStreamRelease( + IntPtr streamHandler ); + + /// + /// Set the format of a stream at the specified position. + /// + /// + /// Handle to an open stream. + /// Position in the stream to receive the format. + /// Pointer to a structure containing the new format. + /// Size, in bytes, of the block of memory referenced by format. + /// + /// Returns zero if successful or an error otherwise. + /// + [DllImport( "avifil32.dll" )] + public static extern int AVIStreamSetFormat( + IntPtr streamHandler, + int position, + ref BITMAPINFOHEADER format, + int formatSize ); + + /// + /// Get the starting sample number for the stream. + /// + /// + /// Handle to an open stream. + /// + /// Returns the number if successful or – 1 otherwise. + /// + [DllImport( "avifil32.dll" )] + public static extern int AVIStreamStart( + IntPtr streamHandler ); + + /// + /// Get the length of the stream. + /// + /// + /// Handle to an open stream. + /// + /// Returns the stream's length, in samples, if successful or -1 otherwise. + /// + [DllImport( "avifil32.dll" )] + public static extern int AVIStreamLength( + IntPtr streamHandler ); + + /// + /// Obtain stream header information. + /// + /// + /// Handle to an open stream. + /// Pointer to a structure to contain the stream information. + /// Size, in bytes, of the structure used for streamInfo. + /// + /// Returns zero if successful or an error otherwise. + /// + [DllImport( "avifil32.dll", CharSet = CharSet.Unicode )] + public static extern int AVIStreamInfo( + IntPtr streamHandler, + ref AVISTREAMINFO streamInfo, + int infoSize ); + + /// + /// Prepare to decompress video frames from the specified video stream + /// + /// + /// Pointer to the video stream used as the video source. + /// Pointer to a structure that defines the desired video format. Specify NULL to use a default format. + /// + /// Returns an object that can be used with the function. + /// + [DllImport( "avifil32.dll" )] + public static extern IntPtr AVIStreamGetFrameOpen( + IntPtr streamHandler, + ref BITMAPINFOHEADER wantedFormat ); + + /// + /// Prepare to decompress video frames from the specified video stream. + /// + /// + /// Pointer to the video stream used as the video source. + /// Pointer to a structure that defines the desired video format. Specify NULL to use a default format. + /// + /// Returns a GetFrame object that can be used with the function. + /// + [DllImport( "avifil32.dll" )] + public static extern IntPtr AVIStreamGetFrameOpen( + IntPtr streamHandler, + int wantedFormat ); + + /// + /// Releases resources used to decompress video frames. + /// + /// + /// Handle returned from the function. + /// + /// Returns zero if successful or an error otherwise. + /// + [DllImport( "avifil32.dll" )] + public static extern int AVIStreamGetFrameClose( + IntPtr getFrameObject ); + + /// + /// Return the address of a decompressed video frame. + /// + /// + /// Pointer to a GetFrame object. + /// Position, in samples, within the stream of the desired frame. + /// + /// Returns a pointer to the frame data if successful or NULL otherwise. + /// + [DllImport( "avifil32.dll" )] + public static extern IntPtr AVIStreamGetFrame( + IntPtr getFrameObject, + int position ); + + /// + /// Write data to a stream. + /// + /// + /// Handle to an open stream. + /// First sample to write. + /// Number of samples to write. + /// Pointer to a buffer containing the data to write. + /// Size of the buffer referenced by buffer. + /// Flag associated with this data. + /// Pointer to a buffer that receives the number of samples written. This can be set to NULL. + /// Pointer to a buffer that receives the number of bytes written. This can be set to NULL. + /// + /// Returns zero if successful or an error otherwise. + /// + [DllImport( "avifil32.dll" )] + public static extern int AVIStreamWrite( + IntPtr streamHandler, + int start, + int samples, + IntPtr buffer, + int bufferSize, + int flags, + IntPtr samplesWritten, + IntPtr bytesWritten ); + + /// + /// Retrieve the save options for a file and returns them in a buffer. + /// + /// + /// Handle to the parent window for the Compression Options dialog box. + /// Flags for displaying the Compression Options dialog box. + /// Number of streams that have their options set by the dialog box. + /// Pointer to an array of stream interface pointers. + /// Pointer to an array of pointers to AVICOMPRESSOPTIONS structures. + /// + /// Returns TRUE if the user pressed OK, FALSE for CANCEL, or an error otherwise. + /// + [DllImport( "avifil32.dll" )] + public static extern int AVISaveOptions( + IntPtr window, + int flags, + int streams, + [In, MarshalAs( UnmanagedType.LPArray, SizeParamIndex = 0 )] IntPtr[] streamInterfaces, + [In, MarshalAs( UnmanagedType.LPArray, SizeParamIndex = 0 )] IntPtr[] options ); + + /// + /// Free the resources allocated by the AVISaveOptions function. + /// + /// + /// Count of the AVICOMPRESSOPTIONS structures referenced in options. + /// Pointer to an array of pointers to AVICOMPRESSOPTIONS structures. + /// + /// Returns 0. + /// + [DllImport( "avifil32.dll" )] + public static extern int AVISaveOptionsFree( + int streams, + [In, MarshalAs( UnmanagedType.LPArray, SizeParamIndex = 0 )] IntPtr[] options ); + + /// + /// Create a compressed stream from an uncompressed stream and a + /// compression filter, and returns the address of a pointer to + /// the compressed stream. + /// + /// + /// Pointer to a buffer that receives the compressed stream pointer. + /// Pointer to the stream to be compressed. + /// Pointer to a structure that identifies the type of compression to use and the options to apply. + /// Pointer to a class identifier used to create the stream. + /// + /// Returns 0 if successful or an error otherwise. + /// + [DllImport( "avifil32.dll" )] + public static extern int AVIMakeCompressedStream( + out IntPtr compressedStream, + IntPtr sourceStream, + ref AVICOMPRESSOPTIONS options, + IntPtr clsidHandler ); + + // --- structures + + /// + /// Structure to define the coordinates of the upper-left and + /// lower-right corners of a rectangle. + /// + /// + [StructLayout( LayoutKind.Sequential, Pack = 1 )] + public struct RECT + { + /// + /// x-coordinate of the upper-left corner of the rectangle. + /// + /// + [MarshalAs( UnmanagedType.I4 )] + public int left; + + /// + /// y-coordinate of the upper-left corner of the rectangle. + /// + /// + [MarshalAs( UnmanagedType.I4 )] + public int top; + + /// + /// x-coordinate of the bottom-right corner of the rectangle. + /// + /// + [MarshalAs( UnmanagedType.I4 )] + public int right; + + /// + /// y-coordinate of the bottom-right corner of the rectangle. + /// + /// + [MarshalAs( UnmanagedType.I4 )] + public int bottom; + } + + /// + /// Structure, which contains information for a single stream . + /// + /// + [StructLayout( LayoutKind.Sequential, CharSet = CharSet.Unicode, Pack = 1 )] + public struct AVISTREAMINFO + { + /// + /// Four-character code indicating the stream type. + /// + /// + [MarshalAs( UnmanagedType.I4 )] + public int type; + + /// + /// Four-character code of the compressor handler that will compress this video stream when it is saved. + /// + /// + [MarshalAs( UnmanagedType.I4 )] + public int handler; + + /// + /// Applicable flags for the stream. + /// + /// + [MarshalAs( UnmanagedType.I4 )] + public int flags; + + /// + /// Capability flags; currently unused. + /// + /// + [MarshalAs( UnmanagedType.I4 )] + public int Capabilities; + + /// + /// Priority of the stream. + /// + /// + [MarshalAs( UnmanagedType.I2 )] + public short priority; + + /// + /// Language of the stream. + /// + /// + [MarshalAs( UnmanagedType.I2 )] + public short language; + + /// + /// Time scale applicable for the stream. + /// + /// + /// Dividing rate by scale gives the playback rate in number of samples per second. + /// + [MarshalAs( UnmanagedType.I4 )] + public int scale; + + /// + /// Rate in an integer format. + /// + /// + [MarshalAs( UnmanagedType.I4 )] + public int rate; + + /// + /// Sample number of the first frame of the AVI file. + /// + /// + [MarshalAs( UnmanagedType.I4 )] + public int start; + + /// + /// Length of this stream. + /// + /// + /// The units are defined by rate and scale. + /// + [MarshalAs( UnmanagedType.I4 )] + public int length; + + /// + /// Audio skew. This member specifies how much to skew the audio data ahead of the video frames in interleaved files. + /// + /// + [MarshalAs( UnmanagedType.I4 )] + public int initialFrames; + + /// + /// Recommended buffer size, in bytes, for the stream. + /// + /// + [MarshalAs( UnmanagedType.I4 )] + public int suggestedBufferSize; + + /// + /// Quality indicator of the video data in the stream. + /// + /// + /// Quality is represented as a number between 0 and 10,000. + /// + [MarshalAs( UnmanagedType.I4 )] + public int quality; + + /// + /// Size, in bytes, of a single data sample. + /// + /// + [MarshalAs( UnmanagedType.I4 )] + public int sampleSize; + + /// + /// Dimensions of the video destination rectangle. + /// + /// + [MarshalAs( UnmanagedType.Struct, SizeConst = 16 )] + public RECT rectFrame; + + /// + /// Number of times the stream has been edited. + /// + /// + [MarshalAs( UnmanagedType.I4 )] + public int editCount; + + /// + /// Number of times the stream format has changed. + /// + /// + [MarshalAs( UnmanagedType.I4 )] + public int formatChangeCount; + + /// + /// Description of the stream. + /// + /// + [MarshalAs( UnmanagedType.ByValTStr, SizeConst = 64 )] + public string name; + } + + /// + /// Structure, which contains information about the dimensions and color format of a DIB. + /// + /// + [StructLayout( LayoutKind.Sequential, Pack = 1 )] + public struct BITMAPINFOHEADER + { + /// + /// Specifies the number of bytes required by the structure. + /// + /// + [MarshalAs( UnmanagedType.I4 )] + public int size; + + /// + /// Specifies the width of the bitmap, in pixels. + /// + /// + [MarshalAs( UnmanagedType.I4 )] + public int width; + + /// + /// Specifies the height of the bitmap, in pixels. + /// + /// + /// If height is positive, the bitmap is a bottom-up DIB and its origin is + /// the lower-left corner. If height is negative, the bitmap is a top-down DIB and its + /// origin is the upper-left corner. + /// + [MarshalAs( UnmanagedType.I4 )] + public int height; + + /// + /// Specifies the number of planes for the target device. This value must be set to 1. + /// + /// + [MarshalAs( UnmanagedType.I2 )] + public short planes; + + /// + /// Specifies the number of bits-per-pixel. + /// + /// + [MarshalAs( UnmanagedType.I2 )] + public short bitCount; + + /// + /// Specifies the type of compression for a compressed bottom-up bitmap (top-down DIBs cannot be compressed). + /// + /// + [MarshalAs( UnmanagedType.I4 )] + public int compression; + + /// + /// Specifies the size, in bytes, of the image. + /// + /// + [MarshalAs( UnmanagedType.I4 )] + public int sizeImage; + + /// + /// Specifies the horizontal resolution, in pixels-per-meter, of the target device for the bitmap. + /// + /// + [MarshalAs( UnmanagedType.I4 )] + public int xPelsPerMeter; + + /// + /// Specifies the vertical resolution, in pixels-per-meter, of the target device for the bitmap. + /// + /// + [MarshalAs( UnmanagedType.I4 )] + public int yPelsPerMeter; + + /// + /// Specifies the number of color indexes in the color table that are actually used by the bitmap. + /// + /// + [MarshalAs( UnmanagedType.I4 )] + public int colorsUsed; + + /// + /// Specifies the number of color indexes that are required for displaying the bitmap. + /// + /// + [MarshalAs( UnmanagedType.I4 )] + public int colorsImportant; + } + + /// + /// Structure, which contains information about a stream and how it is compressed and saved. + /// + /// + [StructLayout( LayoutKind.Sequential, Pack = 1 )] + public struct AVICOMPRESSOPTIONS + { + /// + /// Four-character code indicating the stream type. + /// + /// + [MarshalAs( UnmanagedType.I4 )] + public int type; + + /// + /// Four-character code for the compressor handler that will compress this video stream when it is saved. + /// + /// + [MarshalAs( UnmanagedType.I4 )] + public int handler; + + /// + /// Maximum period between video key frames. + /// + /// + [MarshalAs( UnmanagedType.I4 )] + public int keyFrameEvery; + + /// + /// Quality value passed to a video compressor. + /// + /// + [MarshalAs( UnmanagedType.I4 )] + public int quality; + + /// + /// Video compressor data rate. + /// + /// + [MarshalAs( UnmanagedType.I4 )] + public int bytesPerSecond; + + /// + /// Flags used for compression. + /// + /// + [MarshalAs( UnmanagedType.I4 )] + public int flags; + + /// + /// Pointer to a structure defining the data format. + /// + /// + [MarshalAs( UnmanagedType.I4 )] + public int format; + + /// + /// Size, in bytes, of the data referenced by format. + /// + /// + [MarshalAs( UnmanagedType.I4 )] + public int formatSize; + + /// + /// Video-compressor-specific data; used internally. + /// + /// + [MarshalAs( UnmanagedType.I4 )] + public int parameters; + + /// + /// Size, in bytes, of the data referenced by parameters. + /// + [MarshalAs( UnmanagedType.I4 )] + public int parametersSize; + + /// + /// Interleave factor for interspersing stream data with data from the first stream. + /// + /// + [MarshalAs( UnmanagedType.I4 )] + public int interleaveEvery; + } + + // --- enumerations + + /// + /// File access modes. + /// + /// + [Flags] + public enum OpenFileMode + { + Read = 0x00000000, + Write = 0x00000001, + ReadWrite = 0x00000002, + ShareCompat = 0x00000000, + ShareExclusive = 0x00000010, + ShareDenyWrite = 0x00000020, + ShareDenyRead = 0x00000030, + ShareDenyNone = 0x00000040, + Parse = 0x00000100, + Delete = 0x00000200, + Verify = 0x00000400, + Cancel = 0x00000800, + Create = 0x00001000, + Prompt = 0x00002000, + Exist = 0x00004000, + Reopen = 0x00008000 + } + + /// + /// .NET replacement of mmioFOURCC macros. Converts four characters to code. + /// + /// + /// Four characters string. + /// + /// Returns the code created from provided characters. + /// + public static int mmioFOURCC( string str ) + { + return ( + ( (int) (byte) ( str[0] ) ) | + ( (int) (byte) ( str[1] ) << 8 ) | + ( (int) (byte) ( str[2] ) << 16 ) | + ( (int) (byte) ( str[3] ) << 24 ) ); + } + + /// + /// Inverse to . Converts code to fout characters string. + /// + /// + /// Code to convert. + /// + /// Returns four characters string. + /// + public static string decode_mmioFOURCC( int code ) + { + char[] chs = new char[4]; + + for ( int i = 0; i < 4; i++ ) + { + chs[i] = (char) (byte) ( ( code >> ( i << 3 ) ) & 0xFF ); + if ( !char.IsLetterOrDigit( chs[i] ) ) + chs[i] = ' '; + } + return new string( chs ); + } + + + /// + /// Version of for one stream only. + /// + /// + /// Stream to configure. + /// Stream options. + /// + /// Returns TRUE if the user pressed OK, FALSE for CANCEL, or an error otherwise. + /// + public static int AVISaveOptions( IntPtr stream, ref AVICOMPRESSOPTIONS options ) + { + IntPtr[] streams = new IntPtr[1]; + IntPtr[] infPtrs = new IntPtr[1]; + IntPtr mem; + int ret; + + // alloc unmanaged memory + mem = Marshal.AllocHGlobal( Marshal.SizeOf( typeof( AVICOMPRESSOPTIONS ) ) ); + + // copy from managed structure to unmanaged memory + Marshal.StructureToPtr( options, mem, false ); + + streams[0] = stream; + infPtrs[0] = mem; + + // show dialog with a list of available compresors and configuration + ret = AVISaveOptions( IntPtr.Zero, 0, 1, streams, infPtrs ); + + // copy from unmanaged memory to managed structure + options = (AVICOMPRESSOPTIONS) Marshal.PtrToStructure( mem, typeof( AVICOMPRESSOPTIONS ) ); + + // free AVI compression options + AVISaveOptionsFree( 1, infPtrs ); + + // clear it, because the information already freed by AVISaveOptionsFree + options.format = 0; + options.parameters = 0; + + // free unmanaged memory + Marshal.FreeHGlobal( mem ); + + return ret; + } + } +} diff --git a/Sources/Video.Ximea/AForge.Video.Ximea.snk b/Sources/Video.Ximea/AForge.Video.Ximea.snk new file mode 100644 index 00000000..a789e249 Binary files /dev/null and b/Sources/Video.Ximea/AForge.Video.Ximea.snk differ diff --git a/Sources/Video.Ximea/CameraParameter.cs b/Sources/Video.Ximea/CameraParameter.cs new file mode 100644 index 00000000..814576d6 --- /dev/null +++ b/Sources/Video.Ximea/CameraParameter.cs @@ -0,0 +1,515 @@ +// AForge XIMEA Video Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +namespace AForge.Video.Ximea +{ + using System; + + /// + /// Set of available configuration options for XIMEA cameras. + /// + /// + /// The class defines list of parameters, which are available + /// to set/get using corresponding methods of and + /// classes. + /// + public static class CameraParameter + { + /// + /// Get camera model name. Type string. + /// + public const string DeviceName = "device_name:info"; + + /// + /// Get device serial number in decimal format. Type string, integer, float + /// + public const string DeviceSerialNumber = "device_sn:info"; + + /// + /// Returns device type (1394, USB2.0, CURRERA…..). Type string. + /// + public const string DeviceType = "device_type:info"; + + /// + /// Set/Get exposure time in microseconds. Type integer. + /// + public const string Exposure = "exposure"; + + /// + /// Get longest possible exposure to be set on camera in microseconds. Type integer. + /// + public const string ExposureMax = "exposure:max"; + + /// + /// Get shortest possible exposure to be set on camera in microseconds. Type integer. + /// + public const string ExposureMin = "exposure:min"; + + /// + /// Set/Get camera gain in dB. Type float. + /// + public const string Gain = "gain"; + + /// + /// Get highest possible camera gain in dB. Type float. + /// + public const string GainMax = "gain:max"; + + /// + /// Get lowest possible camera gain in dB. Type float. + /// + public const string GainMin = "gain:min"; + + /// + /// Set/Get width of the image provided by the camera (in pixels). Type integer. + /// + public const string Width = "width"; + + /// + /// Get maximal image width provided by the camera (in pixels). Type integer. + /// + public const string WidthMax = "width:max"; + + /// + /// Get minimum image width provided by the camera (in pixels). Type integer. + /// + public const string WidthMin = "width:min"; + + /// + /// Set/Get height of the image provided by the camera (in pixels). Type integer. + /// + public const string Height = "height"; + + /// + /// Get maximal image height provided by the camera (in pixels). Type integer. + /// + public const string HeightMax = "height:max"; + + /// + /// Get minimum image height provided by the camera (in pixels). Type integer. + /// + public const string HeightMin = "height:min"; + + /// + /// Set/Get image resolution by binning or skipping. Type integer. + /// + public const string Downsampling = "downsampling"; + + /// + /// Get highest value for binning or skipping. Type integer. + /// + public const string DownsamplingMax = "downsampling:max"; + + /// + /// Get lowest value for binning or skipping. Type integer. + /// + public const string DownsamplingMin = "downsampling:min"; + + /// + /// Get frames per second. Type float. + /// + public const string Framerate = "framerate"; + + /// + /// Get highest possible framerate for current camera settings. Type float. + /// + public const string FramerateMax = "framerate:max"; + + /// + /// Get lowest framerate for current camera settings. Type float. + /// + public const string FramerateMin = "framerate:min"; + + /// + /// Set/Get horizontal offset from the origin to the area of interest (in pixels). Type integer. + /// + public const string OffsetX = "offsetX"; + + /// + /// Get maximum horizontal offset from the origin to the area of interest (in pixels). Type integer. + /// + public const string OffsetXMax = "offsetX:max"; + + /// + /// Get minimum horizontal offset from the origin to the area of interest (in pixels). Type integer. + /// + public const string OffsetXMin = "offsetX:min"; + + /// + /// Set/Get vertical offset from the origin to the area of interest (in pixels). Type integer. + /// + public const string OffsetY = "offsetY"; + + /// + /// Get maximum vertical offset from the origin to the area of interest (in pixels). Type integer. + /// + public const string OffsetYMax = "offsetY:max"; + + /// + /// Get minimal vertical offset from the origin to the area of interest (in pixels). Type integer. + /// + public const string OffsetYMin = "offsetY:min"; + + /// + /// Set/Get white balance blue coefficient. Type float. + /// + public const string WhiteBalanceBlue = "wb_kb"; + + /// + /// Set/Get white balance red coefficient. Type float. + /// + public const string WhiteBalanceRed = "wb_kr"; + + /// + /// Set/Get white balance green coefficient. Type float. + /// + public const string WhiteBalanceGreen = "wb_kg"; + + /// + /// Set/Get sharpness strenght. Type float. + /// + public const string Sharpness = "sharpness"; + + /// + /// Set/Get luminosity gamma value. Type float. By default 1.0. + /// + public const string GammaY = "gammaY"; + + /// + /// Set/Get chromaticity gamma value. Type float. By default 0. + /// + public const string GammaC = "gammaC"; + + /// + /// Set default color correction matrx. + /// + public const string SetDefaultColorCorrectonMatrix = "defccMTX"; + + /// + /// Set/Get image format provided by the camera. Type integer. Use + /// enumeraton for possible values. + /// + public const string ImageFormat = "imgdataformat"; + + /// + /// Set/Get camera's trigger mode. Type integer. Use + /// enumeration for possible values. + /// + public const string Trigger = "trigger_source"; + + /// + /// Generates an internal trigger. must be set to . + /// Type integer. + /// + public const string SoftwareTrigger = "trigger_software"; + + /// + /// Calculates white balance. Takes white balance from image center (should be white/grey object + /// in the center of scene). Type integer. + /// + public const string CalculateWhiteBalance = "manual_wb"; + + /// + /// Enable/disable automatic white balance. Type integer. By default 0. + /// + /// + /// Set 0 to disable automatic white balance or 1 to enable. + /// + public const string AutoWhiteBalance = "auto_wb"; + + /// + /// Enable/disable bad pixels correction. Type integer. By default 0. + /// + /// + /// Set 0 to disable bad pixels correction or 1 to enable. + /// + public const string BadPixelsCorrection = "bpc"; + + /// + /// Set/Get acquisition buffer size in bytes. Type integer. By default 53248000. + /// + /// + /// Defines acquisition buffer size in bytes. This buffer contains images' + /// data from sensor. This parameter can be set only when acquisition is stopped. + /// + /// See for additional information. + /// + /// + public const string AcquisitionBufferSize = "acq_buffer_size"; + + /// + /// Set/Get maximum number of images to store in queue. Type integer. By default 4. + /// + /// + /// + /// + /// + /// See also for additional information. + /// + /// + public const string BufferQueueSize = "buffers_queue_size"; + + /// + /// Set of configuration options to configure Automatic Exposure/Gain (AEAG) parameters. + /// + public static class AEAG + { + /// + /// Enable/disable automatic exposure/gain control. Type integer. By default 0. + /// + /// + /// Set 0 to disable automatic exposure/gain control or 1 to enable. + /// + public const string Enable = "aeag"; + + /// + /// Set/Get maximum limit of exposure in AEAG procedure. Type integer. By default 100. Units - ms. + /// + public const string ExposureMaxLimit = "ae_max_limit"; + + /// + /// Set/Get maximum limit of gain in AEAG procedure. Type float. Default depends on camera type. Units - dB. + /// + public const string GainMaxLimit = "ag_max_limit"; + + /// + /// Set/Get exposure priority, [0, 1]. Type float. By default 0.8. + /// + /// + /// Setting the value to 0.5, for example, set exposure priority to 50% + /// and gain priority to 50%. + /// + public const string ExposurePriority = "exp_priority"; + + /// + /// Set/Get average intensity of output signal AEAG should achieve (in %). Type float. By default 40. + /// + public const string Level = "aeag_level"; + } + + /// + /// Set of configuration options to configure camera's LEDs. Currently supported only for Currera-R cameras. + /// + public static class LED + { + /// + /// Selects camera LED to be used. Type integer. + /// + public const string Selector = "led_selector"; + + /// + /// Get highest LED number on camera. Type integer. + /// + public const string Max = "led_selector:max"; + + /// + /// Get lowest LED number on camera. Type integer. + /// + public const string Min = "led_selector:min"; + + /// + /// Set/Get LED functionality. Select LED by using parameter. + /// Use enumeration for possible parameter values. Type integer. + /// + public const string Mode = "led_mode"; + } + + /// + /// Set of configuration options to configure GPO (General Purpose Output) ports. + /// + public static class GPO + { + /// + /// Select camera GPO port. Type integer. + /// + public const string Selector = "gpo_selector"; + + /// + /// Get highest GPO port number on camera. Type integer. + /// + public const string Max = "gpo_selector:max"; + + /// + /// Get lowest GPO port number on camera. Type integer + /// + public const string Min = "gpo_selector:min"; + + /// + /// Set/Get GPO port functionality. Select port by using parameter. + /// Use enumeration to set mode. Type integer. + /// + public const string Mode = "gpo_mode"; + } + + /// + /// Set of configuration options to access/configure GPI (General Purpose Input) ports. + /// + public static class GPI + { + /// + /// Select camera GPI port. Type integer. + /// + public const string Selector = "gpi_selector"; + + /// + /// Get highest GPI port number on camera. Type integer. + /// + public const string Max = "gpi_selector:max"; + + /// + /// Get lowest GPI port number on camera. Type integer + /// + public const string Min = "gpi_selector:min"; + + /// + /// Set/Get GPI port functionality. Select port by using parameter. + /// Use enumeration to set mode. Type integer. + /// + public const string Mode = "gpi_mode"; + + /// + /// Get current GPI level. Type integer. + /// + public const string Level = "gpi_level"; + } + + /// + /// Set of configuration options to configure camera's LUT - Look-Up-Table. + /// Currently available only for Currera-R cameras. + /// + public static class LUT + { + /// + /// Enable/Disable LUT. Type integer. Default 0. + /// + /// + /// Set 0 to disable LUT - sensor pixels are transferred directly. + /// Set 1 to enable LUT - sensor pixels are mapped through LUT. + /// + public static string Enable = "LUTEnable"; + + /// + /// Set/Get the index (offset) of the coefficient to access in the LUT. Type integer. + /// + public static string Index = "LUTIndex"; + + /// + /// Get lowest LUT index (offset) of the coefficient to access in the LUT. Type integer. + /// + public static string IndexMin = "LUTIndex:min"; + + /// + /// Get highest LUT index (offset) of the coefficient to access in the LUT. Type integer. + /// + public static string IndexMax = "LUTIndex:max"; + + /// + /// Set/Get value in the LUT. Index of the value must be selected using + /// parameter. Type integer. + /// + public static string Value = "LUTValue"; + + /// + /// Get highest value to be set in LUT. Type integer. + /// + public static string ValueMin = "LUTValue:min"; + + /// + /// Get lowest value to be set in LUT. Type integer. + /// + public static string ValueMax = "LUTValue:max"; + } + + /// + /// Set of configuration options to access elements of Color Correction Matrix. + /// + /// + public static class ColorCorrectionMatrix + { + /// + /// Set/Get color correction matrix element [0][0]. Type float. By default 1.0. + /// + public const string V00 = "ccMTX00"; + + /// + /// Set/Get color correction matrix element [0][1]. Type float. By default 0.0. + /// + public const string V01 = "ccMTX01"; + + /// + /// Set/Get color correction matrix element [0][2]. Type float. By default 0.0. + /// + public const string V02 = "ccMTX02"; + + /// + /// Set/Get color correction matrix element [0][3]. Type float. By default 0.0. + /// + public const string V03 = "ccMTX03"; + + /// + /// Set/Get color correction matrix element [1][0]. Type float. By default 0.0. + /// + public const string V10 = "ccMTX10"; + + /// + /// Set/Get color correction matrix element [1][1]. Type float. By default 1.0. + /// + public const string V11 = "ccMTX11"; + + /// + /// Set/Get color correction matrix element [1][2]. Type float. By default 0.0. + /// + public const string V12 = "ccMTX12"; + + /// + /// Set/Get color correction matrix element [1][3]. Type float. By default 0.0. + /// + public const string V13 = "ccMTX13"; + + /// + /// Set/Get color correction matrix element [2][0]. Type float. By default 0.0. + /// + public const string V20 = "ccMTX20"; + + /// + /// Set/Get color correction matrix element [2][1]. Type float. By default 0.0. + /// + public const string V21 = "ccMTX21"; + + /// + /// Set/Get color correction matrix element [2][2]. Type float. By default 1.0. + /// + public const string V22 = "ccMTX22"; + + /// + /// Set/Get color correction matrix element [2][3]. Type float. By default 0.0. + /// + public const string V23 = "ccMTX23"; + + /// + /// Set/Get color correction matrix element [3][0]. Type float. By default 0.0. + /// + public const string V30 = "ccMTX30"; + + /// + /// Set/Get color correction matrix element [3][1]. Type float. By default 0.0. + /// + public const string V31 = "ccMTX31"; + + /// + /// Set/Get color correction matrix element [3][2]. Type float. By default 0.0. + /// + public const string V32 = "ccMTX32"; + + /// + /// Set/Get color correction matrix element [3][3]. Type float. By default 1.0. + /// + public const string V33 = "ccMTX33"; + } + } +} diff --git a/Sources/Video.Ximea/GpiMode.cs b/Sources/Video.Ximea/GpiMode.cs new file mode 100644 index 00000000..ed14fbc6 --- /dev/null +++ b/Sources/Video.Ximea/GpiMode.cs @@ -0,0 +1,33 @@ +// AForge XIMEA Video Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +namespace AForge.Video.Ximea +{ + using System; + + /// + /// XIMEA camera's GPI port modes. + /// + public enum GpiMode : int + { + /// + /// Input is off. + /// + Off = 0, + + /// + /// Trigger input. + /// + Trigger = 1, + + /// + /// External signal input. + /// + ExternalEvent = 2 + } +} diff --git a/Sources/Video.Ximea/GpoMode.cs b/Sources/Video.Ximea/GpoMode.cs new file mode 100644 index 00000000..7233b62e --- /dev/null +++ b/Sources/Video.Ximea/GpoMode.cs @@ -0,0 +1,48 @@ +// AForge XIMEA Video Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +namespace AForge.Video.Ximea +{ + using System; + + /// + /// XIMEA camera's GPO port modes. + /// + public enum GpoMode : int + { + /// + /// Output off. + /// + Off = 0, + + /// + /// Logical level. + /// + On = 1, + + /// + /// High during exposure (integration) time + readout time + data transfer time. + /// + FrameActive = 2, + + /// + /// Low during exposure (integration) time + readout time + data trasnfer time. + /// + FrameActiveNew = 3, + + /// + /// High during exposure(integration) time. + /// + ExposureActive = 4, + + /// + /// Low during exposure(integration) time. + /// + ExposureActiveNeg = 5 + } +} diff --git a/Sources/Video.Ximea/ImageFormat.cs b/Sources/Video.Ximea/ImageFormat.cs new file mode 100644 index 00000000..cbd14189 --- /dev/null +++ b/Sources/Video.Ximea/ImageFormat.cs @@ -0,0 +1,38 @@ +// AForge XIMEA Video Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +namespace AForge.Video.Ximea +{ + using System; + + /// + /// Enumeration of image formats supported by XIMEA cameras. + /// + public enum ImageFormat : int + { + /// + /// 8 bits per pixel. + /// + Grayscale8 = 0, + + /// + /// 16 bits per pixel. + /// + Grayscale16 = 1, + + /// + /// RGB data format. + /// + RGB24 = 2, + + /// + /// RGBA data format. + /// + RGB32 = 3 + } +} diff --git a/Sources/Video.Ximea/Images/HW_SW_buffers.png b/Sources/Video.Ximea/Images/HW_SW_buffers.png new file mode 100644 index 00000000..aaf6e1a2 Binary files /dev/null and b/Sources/Video.Ximea/Images/HW_SW_buffers.png differ diff --git a/Sources/Video.Ximea/Internal/ParameterType.cs b/Sources/Video.Ximea/Internal/ParameterType.cs new file mode 100644 index 00000000..3236d5bd --- /dev/null +++ b/Sources/Video.Ximea/Internal/ParameterType.cs @@ -0,0 +1,19 @@ +// AForge XIMEA Video Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +using System; + +namespace AForge.Video.Ximea.Internal +{ + internal enum ParameterType + { + Integer = 0, + Float = 1, + String = 2 + } +} diff --git a/Sources/Video.Ximea/Internal/XimeaAPI.cs b/Sources/Video.Ximea/Internal/XimeaAPI.cs new file mode 100644 index 00000000..c63bbd0e --- /dev/null +++ b/Sources/Video.Ximea/Internal/XimeaAPI.cs @@ -0,0 +1,45 @@ +// AForge XIMEA Video Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +using System; +using System.Runtime.InteropServices; + +namespace AForge.Video.Ximea.Internal +{ + internal static class XimeaAPI + { + [DllImport( "m3api.dll" )] + public static extern unsafe int xiGetNumberDevices( out int numDevices ); + + [DllImport( "m3api.dll" )] + public static extern unsafe int xiOpenDevice( int deviceID, [Out] out IntPtr hDevice ); + [DllImport( "m3api.dll" )] + public static extern int xiCloseDevice( IntPtr deviceHandle ); + + [DllImport( "m3api.dll" )] + public static extern int xiStartAcquisition( IntPtr deviceHandle ); + [DllImport( "m3api.dll" )] + public static extern int xiStopAcquisition( IntPtr deviceHandle ); + + [DllImport( "m3api.dll" )] + public static extern int xiGetImage( IntPtr deviceHandle, int timeout, [In, MarshalAs( UnmanagedType.Struct )] ref XimeaImage image ); + + [DllImport( "m3api.dll" )] + public static extern unsafe int xiGetParam( IntPtr deviceHandle, string parameter, byte* value, out int size, ref ParameterType type ); + [DllImport( "m3api.dll" )] + public static extern int xiGetParam( IntPtr deviceHandle, string parameter, out int value, out int size, ref ParameterType type ); + [DllImport( "m3api.dll" )] + public static extern int xiGetParam( IntPtr deviceHandle, string parameter, out float value, out int size, ref ParameterType type ); + + [DllImport( "m3api.dll" )] + public static extern int xiSetParam( IntPtr deviceHandle, string parameter, ref float value, int size, ParameterType type ); + [DllImport( "m3api.dll" )] + public static extern int xiSetParam( IntPtr deviceHandle, string parameter, ref int value, int size, ParameterType type ); + + } +} diff --git a/Sources/Video.Ximea/Internal/XimeaImage.cs b/Sources/Video.Ximea/Internal/XimeaImage.cs new file mode 100644 index 00000000..7301878b --- /dev/null +++ b/Sources/Video.Ximea/Internal/XimeaImage.cs @@ -0,0 +1,25 @@ +// AForge XIMEA Video Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +using System; +using System.Runtime.InteropServices; + +namespace AForge.Video.Ximea.Internal +{ + [StructLayout( LayoutKind.Sequential )] + internal struct XimeaImage + { + public int StructSize; + public IntPtr BitmapData; + public int Size; + public ImageFormat PixelFormat; + public int Width; + public int Height; + public int FrameNumber; + } +} diff --git a/Sources/Video.Ximea/LedMode.cs b/Sources/Video.Ximea/LedMode.cs new file mode 100644 index 00000000..e3d712ee --- /dev/null +++ b/Sources/Video.Ximea/LedMode.cs @@ -0,0 +1,63 @@ +// AForge XIMEA Video Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +namespace AForge.Video.Ximea +{ + using System; + + /// + /// XIMEA camera's LED state options. + /// + public enum LedMode : int + { + /// + /// Blink if link is ok (led 1), heartbeat mode (led 2). + /// + Heartbeat = 0, + + /// + /// Blink led if trigger detected. + /// + TriggerActive = 1, + + /// + /// Blink led if external signal detected. + /// + ExternalEventActive = 2, + + /// + /// Blink led during data streaming. + /// + Acquisition = 3, + + /// + /// Blink led during sensor integration time. + /// + ExposureActive = 4, + + /// + /// Blink if device busy/not busy. + /// + FrameActive = 5, + + /// + /// Blink led if link is OK. + /// + Link = 6, + + /// + /// Turn off LED. + /// + Off = 7, + + /// + /// Turn on LED. + /// + On = 8 + } +} diff --git a/Sources/Video.Ximea/Properties/AssemblyInfo.cs b/Sources/Video.Ximea/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..3f643ac2 --- /dev/null +++ b/Sources/Video.Ximea/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle( "AForge.Video.Ximea" )] +[assembly: AssemblyDescription( "" )] +[assembly: AssemblyConfiguration( "" )] +[assembly: AssemblyCompany( "AForge" )] +[assembly: AssemblyProduct( "AForge.NET" )] +[assembly: AssemblyCopyright( "AForge © 2012" )] +[assembly: AssemblyTrademark( "" )] +[assembly: AssemblyCulture( "" )] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible( false )] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid( "d271f306-a0c7-4230-b31b-653a51716232" )] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion( "2.2.4.0" )] +[assembly: AssemblyFileVersion( "2.2.4.0" )] diff --git a/Sources/Video.Ximea/TriggerSource.cs b/Sources/Video.Ximea/TriggerSource.cs new file mode 100644 index 00000000..34d53f94 --- /dev/null +++ b/Sources/Video.Ximea/TriggerSource.cs @@ -0,0 +1,38 @@ +// AForge XIMEA Video Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +namespace AForge.Video.Ximea +{ + using System; + + /// + /// Enumeration of camera's trigger modes. + /// + public enum TriggerSource : int + { + /// + /// Camera works in free run mode. + /// + Off = 0, + + /// + /// External trigger (rising edge). + /// + EdgeRising = 1, + + /// + /// External trigger (falling edge). + /// + EdgeFalling = 2, + + /// + /// Software (manual) trigger. + /// + Software = 3 + } +} diff --git a/Sources/Video.Ximea/Video.Ximea.csproj b/Sources/Video.Ximea/Video.Ximea.csproj new file mode 100644 index 00000000..e999a159 --- /dev/null +++ b/Sources/Video.Ximea/Video.Ximea.csproj @@ -0,0 +1,117 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {AEDD6CFB-747B-4077-9288-9CD2A86090F1} + Library + Properties + AForge.Video.Ximea + AForge.Video.Ximea + v2.0 + 512 + true + AForge.Video.Ximea.snk + + + 3.5 + + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + true + full + false + ..\..\Release\ + DEBUG;TRACE + prompt + 4 + true + + + pdbonly + true + ..\..\Release\ + TRACE + prompt + 4 + true + AForge.Video.Ximea.xml + + + + False + + + False + + + + + + + + + + + + + + + + + + + + + + + + + + False + Microsoft .NET Framework 4 %28x86 and x64%29 + true + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 3.1 + true + + + + + \ No newline at end of file diff --git a/Sources/Video.Ximea/Video.Ximea.sln b/Sources/Video.Ximea/Video.Ximea.sln new file mode 100644 index 00000000..0a988f3e --- /dev/null +++ b/Sources/Video.Ximea/Video.Ximea.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual C# Express 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Video.Ximea", "Video.Ximea.csproj", "{AEDD6CFB-747B-4077-9288-9CD2A86090F1}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {AEDD6CFB-747B-4077-9288-9CD2A86090F1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AEDD6CFB-747B-4077-9288-9CD2A86090F1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AEDD6CFB-747B-4077-9288-9CD2A86090F1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AEDD6CFB-747B-4077-9288-9CD2A86090F1}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Sources/Video.Ximea/XimeaCamera.cs b/Sources/Video.Ximea/XimeaCamera.cs new file mode 100644 index 00000000..1ef902e5 --- /dev/null +++ b/Sources/Video.Ximea/XimeaCamera.cs @@ -0,0 +1,787 @@ +// AForge XIMEA Video Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +namespace AForge.Video.Ximea +{ + using System; + using System.Drawing; + using System.Drawing.Imaging; + using System.Text; + using AForge.Video.Ximea.Internal; + + /// + /// The class provides access to XIMEA cameras. + /// + /// + /// The class allows to perform image acquisition from XIMEA cameras. + /// It wraps XIMEA'a xiAPI, which means that users of this class will also require m3api.dll and a correct + /// TM file for the camera model connected to the system (both are provided with XIMEA API software package). + /// + /// Sample usage: + /// + /// XimeaCamera camera = new XimeaCamera( ); + /// + /// // open camera and start data acquisition + /// camera.Open( 0 ); + /// camera.StartAcquisition( ); + /// + /// // set exposure time to 10 milliseconds + /// camera.SetParam( CameraParameter.Exposure, 10 * 1000 ); + /// + /// // get image from the camera + /// Bitmap bitmap = camera.GetImage( ); + /// // process the image + /// // ... + /// + /// // dispose the image when it is no longer needed + /// bitmap.Dispose( ); + /// + /// // stop data acquisition and close the camera + /// camera.StopAcquisition( ); + /// camera.Close( ); + /// + /// + /// + /// + /// + public class XimeaCamera + { + private IntPtr deviceHandle = IntPtr.Zero; + private bool isAcquisitionStarted = false; + private int deviceID = 0; + + // dummy object to lock for synchronization + private object sync = new object( ); + + /// + /// Get number of XIMEA camera connected to the system. + /// + public static int CamerasCount + { + get + { + int count; + + int errorCode = XimeaAPI.xiGetNumberDevices( out count ); + HandleError( errorCode ); + + return count; + } + } + + /// + /// Specifies if camera's data acquisition is currently active for the opened camera (if any). + /// + public bool IsAcquisitionStarted + { + get + { + lock ( sync ) + { + return isAcquisitionStarted; + } + } + } + + /// + /// Specifies if a camera is currently opened by the instance of the class. + /// + public bool IsDeviceOpen + { + get + { + lock ( sync ) + { + return ( deviceHandle != IntPtr.Zero ); + } + } + } + + /// + /// ID of the the recently opened XIMEA camera. + /// + public int DeviceID + { + get { return deviceID; } + } + + /// + /// Open XIMEA camera. + /// + /// + /// Camera ID to open. + /// + /// Opens the specified XIMEA camera preparing it for starting video acquisition + /// which is done using method. The + /// property can be used at any time to find if a camera was opened or not. + /// + /// An error occurred while communicating with a camera. See error + /// message for additional information. + /// + public void Open( int deviceID ) + { + lock ( sync ) + { + IntPtr deviceHandle; + int errorCode = XimeaAPI.xiOpenDevice( deviceID, out deviceHandle ); + HandleError( errorCode ); + // save the device handle is everything is fine + this.deviceHandle = deviceHandle; + this.isAcquisitionStarted = false; + this.deviceID = deviceID; + } + } + + /// + /// Close opened camera (if any) and release allocated resources. + /// + /// + /// The method also calls method if it was not + /// done by user. + /// + /// An error occurred while communicating with a camera. See error + /// message for additional information. + /// + public void Close( ) + { + lock ( sync ) + { + if ( deviceHandle != IntPtr.Zero ) + { + if ( isAcquisitionStarted ) + { + try + { + StopAcquisition( ); + } + catch + { + } + } + + try + { + int errorCode = XimeaAPI.xiCloseDevice( deviceHandle ); + HandleError( errorCode ); + } + finally + { + deviceHandle = IntPtr.Zero; + } + } + } + } + + /// + /// Begin camera's work cycle and start data acquisition from it. + /// + /// + /// The property can be used at any time to find if the + /// acquisition was started or not. + /// + /// An error occurred while communicating with a camera. See error + /// message for additional information. + /// No camera was opened, so can not access its methods. + /// + public void StartAcquisition( ) + { + lock ( sync ) + { + CheckConnection( ); + + int errorCode = XimeaAPI.xiStartAcquisition( deviceHandle ); + HandleError( errorCode ); + + isAcquisitionStarted = true; + } + } + + /// + /// End camera's work cycle and stops data acquisition. + /// + /// + /// An error occurred while communicating with a camera. See error + /// message for additional information. + /// No camera was opened, so can not access its methods. + /// + public void StopAcquisition( ) + { + lock ( sync ) + { + CheckConnection( ); + + try + { + int errorCode = XimeaAPI.xiStopAcquisition( deviceHandle ); + HandleError( errorCode ); + } + finally + { + isAcquisitionStarted = false; + } + } + } + + /// + /// Set camera's parameter. + /// + /// + /// Parameter name. + /// Integer parameter value. + /// + /// The method allows to control different camera's parameters, like exposure time, gain value, etc. + /// See class for the list of some possible configuration parameters. See + /// XIMEA documentation for the complete list of supported parameters. + /// + /// + /// An error occurred while communicating with a camera. See error + /// message for additional information. + /// No camera was opened, so can not access its methods. + /// + public void SetParam( string parameterName, int value ) + { + lock ( sync ) + { + CheckConnection( ); + + int errorCode = XimeaAPI.xiSetParam( deviceHandle, parameterName, ref value, 4, ParameterType.Integer ); + HandleError( errorCode ); + } + } + + /// + /// Set camera's parameter. + /// + /// + /// Parameter name. + /// Float parameter value. + /// + /// The method allows to control different camera's parameters, like exposure time, gain value, etc. + /// See class for the list of some possible configuration parameters. See + /// XIMEA documentation for the complete list of supported parameters. + /// + /// + /// An error occurred while communicating with a camera. See error + /// message for additional information. + /// No camera was opened, so can not access its methods. + /// + public void SetParam( string parameterName, float value ) + { + lock ( sync ) + { + CheckConnection( ); + + int errorCode = XimeaAPI.xiSetParam( deviceHandle, parameterName, ref value, 4, ParameterType.Float ); + HandleError( errorCode ); + } + } + + /// + /// Get camera's parameter as integer value. + /// + /// + /// Parameter name to get from camera. + /// + /// Returns integer value of the requested parameter. + /// + /// See class for the list of some possible configuration parameters. See + /// XIMEA documentation for the complete list of supported parameters. + /// + /// An error occurred while communicating with a camera. See error + /// message for additional information. + /// No camera was opened, so can not access its methods. + /// + public int GetParamInt( string parameterName ) + { + lock ( sync ) + { + CheckConnection( ); + + int value; + int size; + ParameterType type = ParameterType.Integer; + + int errorCode = XimeaAPI.xiGetParam( deviceHandle, parameterName, out value, out size, ref type ); + HandleError( errorCode ); + + return value; + } + } + + /// + /// Get camera's parameter as float value. + /// + /// + /// Parameter name to get from camera. + /// + /// Returns float value of the requested parameter. + /// + /// See class for the list of some possible configuration parameters. See + /// XIMEA documentation for the complete list of supported parameters. + /// + /// An error occurred while communicating with a camera. See error + /// message for additional information. + /// No camera was opened, so can not access its methods. + /// + public float GetParamFloat( string parameterName ) + { + lock ( sync ) + { + CheckConnection( ); + + float value; + int size; + ParameterType type = ParameterType.Float; + + int errorCode = XimeaAPI.xiGetParam( deviceHandle, parameterName, out value, out size, ref type ); + HandleError( errorCode ); + + return value; + } + } + + /// + /// Get camera's parameter as string value. + /// + /// + /// Parameter name to get from camera. + /// + /// Returns string value of the requested parameter. + /// + /// See class for the list of some possible configuration parameters. See + /// XIMEA documentation for the complete list of supported parameters. + /// + /// An error occurred while communicating with a camera. See error + /// message for additional information. + /// No camera was opened, so can not access its methods. + /// + public string GetParamString( string parameterName ) + { + lock ( sync ) + { + CheckConnection( ); + + byte[] bytes = new byte[260]; + int size = bytes.Length; + ParameterType type = ParameterType.String; + + unsafe + { + fixed ( byte* ptr = bytes ) + { + int errorCode = XimeaAPI.xiGetParam( deviceHandle, parameterName, ptr, out size, ref type ); + HandleError( errorCode ); + } + } + + return Encoding.ASCII.GetString( bytes, 0, size ); + } + } + + /// + /// Get image from the opened XIMEA camera. + /// + /// + /// Returns image retrieved from the camera. + /// + /// The method calls method specifying 5000 as the timeout + /// value. + /// + public unsafe Bitmap GetImage( ) + { + return GetImage( 5000 ); + } + + /// + /// Get image from the opened XIMEA camera. + /// + /// + /// Maximum time to wait in milliseconds till image becomes available. + /// + /// Returns image retrieved from the camera. + /// + /// The method calls method specifying + /// the makeCopy parameter. + /// + public unsafe Bitmap GetImage( int timeout ) + { + return GetImage( timeout, true ); + } + + /// + /// Get image from the opened XIMEA camera. + /// + /// + /// Maximum time to wait in milliseconds till image becomes available. + /// Make a copy of the camera's image or not. + /// + /// Returns image retrieved from the camera. + /// + /// If the is set to , then the method + /// creates a managed copy of the camera's image, so the managed image stays valid even when the camera + /// is closed. However, setting this parameter to creates a managed image which is + /// just a wrapper around camera's unmanaged image. So if camera is closed and its resources are freed, the + /// managed image becomes no longer valid and accessing it will generate an exception. + /// + /// An error occurred while communicating with a camera. See error + /// message for additional information. + /// No camera was opened, so can not access its methods. + /// Time out value reached - no image is available within specified time value. + /// + public Bitmap GetImage( int timeout, bool makeCopy ) + { + lock ( sync ) + { + CheckConnection( ); + + int errorCode; + + XimeaImage ximeaImage = new XimeaImage( ); + unsafe + { + ximeaImage.StructSize = sizeof( XimeaImage ); + } + + // get image from XIMEA camera + try + { + errorCode = XimeaAPI.xiGetImage( deviceHandle, timeout, ref ximeaImage ); + } + catch ( AccessViolationException ) + { + errorCode = 9; + } + + // handle error if any + HandleError( errorCode ); + + // create managed bitmap for the unmanaged image provided by camera + PixelFormat pixelFormat = PixelFormat.Undefined; + int stride = 0; + + switch ( ximeaImage.PixelFormat ) + { + case ImageFormat.Grayscale8: + pixelFormat = PixelFormat.Format8bppIndexed; + stride = ximeaImage.Width; + break; + + case ImageFormat.RGB24: + pixelFormat = PixelFormat.Format24bppRgb; + stride = ximeaImage.Width * 3; + break; + + case ImageFormat.RGB32: + pixelFormat = PixelFormat.Format32bppRgb; + stride = ximeaImage.Width * 4; + break; + + default: + throw new VideoException( "Unsupported pixel format." ); + } + + Bitmap bitmap = null; + + if ( !makeCopy ) + { + bitmap = new Bitmap( ximeaImage.Width, ximeaImage.Height, stride, pixelFormat, ximeaImage.BitmapData ); + } + else + { + bitmap = new Bitmap( ximeaImage.Width, ximeaImage.Height, pixelFormat ); + + // lock destination bitmap data + BitmapData bitmapData = bitmap.LockBits( + new Rectangle( 0, 0, ximeaImage.Width, ximeaImage.Height ), + ImageLockMode.ReadWrite, pixelFormat ); + + int dstStride = bitmapData.Stride; + int lineSize = Math.Min( stride, dstStride ); + + unsafe + { + byte* dst = (byte*) bitmapData.Scan0.ToPointer( ); + byte* src = (byte*) ximeaImage.BitmapData.ToPointer( ); + + if ( stride != dstStride ) + { + // copy image + for ( int y = 0; y < ximeaImage.Height; y++ ) + { + AForge.SystemTools.CopyUnmanagedMemory( dst, src, lineSize ); + dst += dstStride; + src += stride; + } + } + else + { + AForge.SystemTools.CopyUnmanagedMemory( dst, src, stride * ximeaImage.Height ); + } + } + + // unlock destination images + bitmap.UnlockBits( bitmapData ); + } + + // set palette for grayscale image + if ( ximeaImage.PixelFormat == ImageFormat.Grayscale8 ) + { + ColorPalette palette = bitmap.Palette; + for ( int i = 0; i < 256; i++ ) + { + palette.Entries[i] = Color.FromArgb( i, i, i ); + } + bitmap.Palette = palette; + } + + return bitmap; + } + } + + + // Handle errors from XIMEA API + private static void HandleError( int errorCode ) + { + if ( errorCode != 0 ) + { + if ( errorCode == 10 ) + { + throw new TimeoutException( "Time out while waiting for camera response." ); + } + + string errorMessage = string.Empty; + + switch ( errorCode ) + { + case 1: + errorMessage = "Invalid handle"; + break; + + case 2: + errorMessage = "Register read error"; + break; + + case 3: + errorMessage = "Register write error"; + break; + + case 4: + errorMessage = "Freeing resiurces error"; + break; + + case 5: + errorMessage = "Freeing channel error"; + break; + + case 6: + errorMessage = "Freeing bandwith error"; + break; + + case 7: + errorMessage = "Read block error"; + break; + + case 8: + errorMessage = "Write block error"; + break; + + case 9: + errorMessage = "No image"; + break; + + case 11: + errorMessage = "Invalid arguments supplied"; + break; + + case 12: + errorMessage = "Not supported"; + break; + + case 13: + errorMessage = "Attach buffers error"; + break; + + case 14: + errorMessage = "Overlapped result"; + break; + + case 15: + errorMessage = "Memory allocation error"; + break; + + case 16: + errorMessage = "DLL context is NULL"; + break; + + case 17: + errorMessage = "DLL context is non zero"; + break; + + case 18: + errorMessage = "DLL context exists"; + break; + + case 19: + errorMessage = "Too many devices connected"; + break; + + case 20: + errorMessage = "Camera context error"; + break; + + case 21: + errorMessage = "Unknown hardware"; + break; + + case 22: + errorMessage = "Invalid TM file"; + break; + + case 23: + errorMessage = "Invalid TM tag"; + break; + + case 24: + errorMessage = "Incomplete TM"; + break; + + case 25: + errorMessage = "Bus reset error"; + break; + + case 26: + errorMessage = "Not implemented"; + break; + + case 27: + errorMessage = "Shading too bright"; + break; + + case 28: + errorMessage = "Shading too dark"; + break; + + case 29: + errorMessage = "Gain is too low"; + break; + + case 30: + errorMessage = "Invalid bad pixel list"; + break; + + case 31: + errorMessage = "Bad pixel list realloc error"; + break; + + case 32: + errorMessage = "Invalid pixel list"; + break; + + case 33: + errorMessage = "Invalid Flash File System"; + break; + + case 34: + errorMessage = "Invalid profile"; + break; + + case 35: + errorMessage = "Invalid calibration"; + break; + + case 36: + errorMessage = "Invalid buffer"; + break; + + case 38: + errorMessage = "Invalid data"; + break; + + case 39: + errorMessage = "Timing generator is busy"; + break; + + case 40: + errorMessage = "Wrong operation open/write/read/close"; + break; + + case 41: + errorMessage = "Acquisition already started"; + break; + + case 42: + errorMessage = "Old version of device driver installed to the system"; + break; + + case 44: + errorMessage = "Data can't be processed"; + break; + + case 45: + errorMessage = "Error occured and acquisition has been stoped or didn't start"; + break; + + case 46: + errorMessage = "Acquisition has been stoped with error"; + break; + + case 100: + errorMessage = "Unknown parameter"; + break; + + case 101: + errorMessage = "Wrong parameter value"; + break; + + case 103: + errorMessage = "Wrong parameter type"; + break; + + case 104: + errorMessage = "Wrong parameter size"; + break; + + case 105: + errorMessage = "Input buffer too small"; + break; + + case 106: + errorMessage = "Parameter info not supported"; + break; + + case 107: + errorMessage = "Parameter info not supported"; + break; + + case 108: + errorMessage = "Data format not supported"; + break; + + case 109: + errorMessage = "Read only parameter"; + break; + + case 110: + errorMessage = "No devices found"; + break; + } + + throw new VideoException( string.Format( "Error code: {0}, Message: {1}", errorCode, errorMessage ) ); + } + } + + // Check if a camera is open or not + private void CheckConnection( ) + { + if ( deviceHandle == IntPtr.Zero ) + { + throw new NotConnectedException( "No established connection to XIMEA camera." ); + } + } + } +} diff --git a/Sources/Video.Ximea/XimeaVideoSource.cs b/Sources/Video.Ximea/XimeaVideoSource.cs new file mode 100644 index 00000000..a7205715 --- /dev/null +++ b/Sources/Video.Ximea/XimeaVideoSource.cs @@ -0,0 +1,483 @@ +// AForge XIMEA Video Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +namespace AForge.Video.Ximea +{ + using System; + using System.Drawing; + using System.Drawing.Imaging; + using System.Threading; + using AForge.Video; + using AForge.Video.Ximea.Internal; + + /// + /// The class provides continues access to XIMEA cameras. + /// + /// + /// The video source class is aimed to provide continues access to XIMEA camera, when + /// images are continuosly acquired from camera and provided throw the event. + /// It just creates a background thread and gets new images from XIMEA camera + /// keeping the specified time interval between image acquisition. + /// Essentially it is a wrapper class around providing interface. + /// + /// Sample usage: + /// + /// // create video source for the XIMEA camera with ID 0 + /// XimeaVideoSource videoSource = new XimeaVideoSource( 0 ); + /// // set event handlers + /// videoSource.NewFrame += new NewFrameEventHandler( video_NewFrame ); + /// // start the video source + /// videoSource.Start( ); + /// + /// // set exposure time to 10 milliseconds + /// videoSource.SetParam( CameraParameter.Exposure, 10 * 1000 ); + /// + /// // ... + /// + /// // New frame event handler, which is invoked on each new available video frame + /// private void video_NewFrame( object sender, NewFrameEventArgs eventArgs ) + /// { + /// // get new frame + /// Bitmap bitmap = eventArgs.Frame; + /// // process the frame + /// } + /// + /// + /// + /// + /// + public class XimeaVideoSource : IVideoSource + { + // XIMEA camera to capture images from + private XimeaCamera camera = new XimeaCamera( ); + + // camera ID + private int deviceID; + // received frames count + private int framesReceived; + // recieved byte count + private long bytesReceived; + // frame interval in milliseconds + private int frameInterval = 200; + + private Thread thread = null; + private ManualResetEvent stopEvent = null; + + // dummy object to lock for synchronization + private object sync = new object( ); + + /// + /// New frame event. + /// + /// + /// Notifies clients about new available frames from the video source. + /// + /// Since video source may have multiple clients, each client is responsible for + /// making a copy (cloning) of the passed video frame, because the video source disposes its + /// own original copy after notifying of clients. + /// + /// + public event NewFrameEventHandler NewFrame; + + /// + /// Video source error event. + /// + /// + /// This event is used to notify clients about any type of errors occurred in + /// video source object, for example internal exceptions. + /// + public event VideoSourceErrorEventHandler VideoSourceError; + + /// + /// Video playing finished event. + /// + /// + /// This event is used to notify clients that the video playing has finished. + /// + /// + public event PlayingFinishedEventHandler PlayingFinished; + + /// + /// A string identifying the video source. + /// + /// + public virtual string Source + { + get { return "Ximea:" + deviceID; } + } + + /// + /// State of the video source. + /// + /// + /// Current state of video source object - running or not. + /// + public bool IsRunning + { + get + { + Thread tempThread = null; + + lock ( sync ) + { + tempThread = thread; + } + + if ( tempThread != null ) + { + // check thread status + if ( tempThread.Join( 0 ) == false ) + return true; + + // the thread is not running, so free resources + Free( ); + } + + return false; + } + } + + /// + /// Received bytes count. + /// + /// + /// Number of bytes the video source provided from the moment of the last + /// access to the property. + /// + /// + public long BytesReceived + { + get + { + long bytes = bytesReceived; + bytesReceived = 0; + return bytes; + } + } + + /// + /// Received frames count. + /// + /// + /// Number of frames the video source provided from the moment of the last + /// access to the property. + /// + /// + public int FramesReceived + { + get + { + int frames = framesReceived; + framesReceived = 0; + return frames; + } + } + + /// + /// Time interval between frames. + /// + /// + /// The property sets the interval in milliseconds between getting new frames from the camera. + /// If the property is set to 100, then the desired frame rate should be about 10 frames per second. + /// + /// Setting this property to 0 leads to no delay between video frames - frames + /// are read as fast as possible. + /// + /// Default value is set to 200. + /// + /// + public int FrameInterval + { + get { return frameInterval; } + set { frameInterval = value; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// XIMEA camera ID (index) to connect to. + /// + public XimeaVideoSource( int deviceID ) + { + this.deviceID = deviceID; + } + + /// + /// Start video source. + /// + /// + /// Starts video source and returns execution to caller. Video camera will be started + /// and will provide new video frames through the event. + /// + /// There is no XIMEA camera with specified ID connected to the system. + /// An error occurred while communicating with a camera. See error + /// message for additional information. + /// + public void Start( ) + { + if ( IsRunning ) + return; + + lock ( sync ) + { + if ( thread == null ) + { + // check source + if ( deviceID >= XimeaCamera.CamerasCount ) + { + throw new ArgumentException( "There is no XIMEA camera with specified ID connected to the system." ); + } + + // prepare the camera + camera.Open( deviceID ); + + framesReceived = 0; + bytesReceived = 0; + + // create events + stopEvent = new ManualResetEvent( false ); + + // create and start new thread + thread = new Thread( new ThreadStart( WorkerThread ) ); + thread.Name = Source; + thread.Start( ); + } + } + } + + /// + /// Signal video source to stop its work. + /// + /// + /// + /// + public void SignalToStop( ) + { + lock ( sync ) + { + // stop thread + if ( thread != null ) + { + // signal to stop + stopEvent.Set( ); + } + } + } + + /// + /// Wait for video source has stopped. + /// + /// + /// + /// + public void WaitForStop( ) + { + Thread tempThread = null; + + lock ( sync ) + { + tempThread = thread; + } + + if ( tempThread != null ) + { + // wait for thread stop + tempThread.Join( ); + + Free( ); + } + } + + /// + /// Stop video source. + /// + /// + /// The method stops the video source, so it no longer provides new video frames + /// and does not consume any resources. + /// + /// + public void Stop( ) + { + Thread tempThread = null; + + lock ( sync ) + { + tempThread = thread; + } + + if ( tempThread != null ) + { + if ( tempThread.Join( 0 ) == false ) + { + tempThread.Abort( ); + tempThread.Join( ); + } + Free( ); + } + } + + /// + /// Set camera's parameter. + /// + /// + /// Parameter name. + /// Integer parameter value. + /// + /// The call is redirected to . + /// + public void SetParam( string parameterName, int value ) + { + camera.SetParam( parameterName, value ); + } + + /// + /// Set camera's parameter. + /// + /// + /// Parameter name. + /// Float parameter value. + /// + /// The call is redirected to . + /// + public void SetParam( string parameterName, float value ) + { + camera.SetParam( parameterName, value ); + } + + /// + /// Get camera's parameter as integer value. + /// + /// + /// Parameter name to get from camera. + /// + /// Returns integer value of the requested parameter. + /// + /// The call is redirected to . + /// + public int GetParamInt( string parameterName ) + { + return camera.GetParamInt( parameterName ); + } + + /// + /// Get camera's parameter as float value. + /// + /// + /// Parameter name to get from camera. + /// + /// Returns float value of the requested parameter. + /// + /// The call is redirected to . + /// + public float GetParamFloat( string parameterName ) + { + return camera.GetParamFloat( parameterName ); + } + + /// + /// Get camera's parameter as string value. + /// + /// + /// Parameter name to get from camera. + /// + /// Returns string value of the requested parameter. + /// + /// The call is redirected to . + /// + public string GetParamString( string parameterName ) + { + return camera.GetParamString( parameterName ); + } + + // Free resources + private void Free( ) + { + lock ( sync ) + { + thread = null; + + // release events + if ( stopEvent != null ) + { + stopEvent.Close( ); + stopEvent = null; + } + + camera.Close( ); + } + } + + // Worker thread + private void WorkerThread( ) + { + ReasonToFinishPlaying reasonToStop = ReasonToFinishPlaying.StoppedByUser; + + try + { + camera.StartAcquisition( ); + + // while there is no request for stop + while ( !stopEvent.WaitOne( 0, false ) ) + { + // start time + DateTime start = DateTime.Now; + + // get next frame + Bitmap bitmap = camera.GetImage( 15000, false ); + + framesReceived++; + bytesReceived += bitmap.Width * bitmap.Height * ( Bitmap.GetPixelFormatSize( bitmap.PixelFormat ) >> 3 ); + + if ( NewFrame != null ) + NewFrame( this, new NewFrameEventArgs( bitmap ) ); + + // free image + bitmap.Dispose( ); + + // wait for a while ? + if ( frameInterval > 0 ) + { + // get frame duration + TimeSpan span = DateTime.Now.Subtract( start ); + + // miliseconds to sleep + int msec = frameInterval - (int) span.TotalMilliseconds; + + if ( ( msec > 0 ) && ( stopEvent.WaitOne( msec, false ) ) ) + break; + } + } + } + catch ( Exception exception ) + { + reasonToStop = ReasonToFinishPlaying.VideoSourceError; + // provide information to clients + if ( VideoSourceError != null ) + { + VideoSourceError( this, new VideoSourceErrorEventArgs( exception.Message ) ); + } + } + finally + { + try + { + camera.StopAcquisition( ); + } + catch + { + } + } + + if ( PlayingFinished != null ) + { + PlayingFinished( this, reasonToStop ); + } + } + } +} diff --git a/Sources/Video/AForge.Video.snk b/Sources/Video/AForge.Video.snk new file mode 100644 index 00000000..17029b12 Binary files /dev/null and b/Sources/Video/AForge.Video.snk differ diff --git a/Sources/Video/AsyncVideoSource.cs b/Sources/Video/AsyncVideoSource.cs new file mode 100644 index 00000000..448cb168 --- /dev/null +++ b/Sources/Video/AsyncVideoSource.cs @@ -0,0 +1,474 @@ +// AForge Video Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +namespace AForge.Video +{ + using System; + using System.Drawing; + using System.Drawing.Imaging; + using System.Threading; + + /// + /// Proxy video source for asynchronous processing of another nested video source. + /// + /// + /// The class represents a simple proxy, which wraps the specified + /// with the aim of asynchronous processing of received video frames. The class intercepts + /// event from the nested video source and fires it to clients from its own thread, which is different from the thread + /// used by nested video source for video acquisition. This allows clients to perform processing of video frames + /// without blocking video acquisition thread, which continue to run and acquire next video frame while current is still + /// processed. + /// + /// For example, let’s suppose that it takes 100 ms for the nested video source to acquire single frame, so the original + /// frame rate is 10 frames per second. Also let’s assume that we have an image processing routine, which also takes + /// 100 ms to process a single frame. If the acquisition and processing are done sequentially, then resulting + /// frame rate will drop to 5 frames per second. However, if doing both in parallel, then there is a good chance to + /// keep resulting frame rate equal (or close) to the original frame rate. + /// + /// The class provides a bonus side effect - easer debugging of image processing routines, which are put into + /// event handler. In many cases video source classes fire their + /// event from a try/catch block, which makes it very hard to spot error made in user's code - the catch block simply + /// hides exception raised in user’s code. The does not have any try/catch blocks around + /// firing of event, so always user gets exception in the case it comes from his code. At the same time + /// nested video source is not affected by the user's exception, since it runs in different thread. + /// + /// Sample usage: + /// + /// // usage of AsyncVideoSource is the same as usage of any + /// // other video source class, so code change is very little + /// + /// // create nested video source, for example JPEGStream + /// JPEGStream stream = new JPEGStream( "some url" ); + /// // create async video source + /// AsyncVideoSource asyncSource = new AsyncVideoSource( stream ); + /// // set NewFrame event handler + /// asyncSource.NewFrame += new NewFrameEventHandler( video_NewFrame ); + /// // start the video source + /// asyncSource.Start( ); + /// // ... + /// + /// private void video_NewFrame( object sender, NewFrameEventArgs eventArgs ) + /// { + /// // get new frame + /// Bitmap bitmap = eventArgs.Frame; + /// // process the frame + /// } + /// + /// + /// + public class AsyncVideoSource : IVideoSource + { + private readonly IVideoSource nestedVideoSource = null; + private Bitmap lastVideoFrame = null; + + private Thread imageProcessingThread = null; + private AutoResetEvent isNewFrameAvailable = null; + private AutoResetEvent isProcessingThreadAvailable = null; + + // skip frames or not in the case if processing thread is busy + private bool skipFramesIfBusy = false; + // processed frames count + private int framesProcessed; + + /// + /// New frame event. + /// + /// + /// Notifies clients about new available frame from video source. + /// + /// This event is fired from a different thread other than the video acquisition thread created + /// by . This allows nested video frame to continue acquisition of the next + /// video frame while clients perform processing of the current video frame. + /// + /// Since video source may have multiple clients, each client is responsible for + /// making a copy (cloning) of the passed video frame, because the video source disposes its + /// own original copy after notifying of clients. + /// + /// + public event NewFrameEventHandler NewFrame; + + /// + /// Video source error event. + /// + /// + /// This event is used to notify clients about any type of errors occurred in + /// video source object, for example internal exceptions. + /// + /// Unlike event, this event is simply redirected to the corresponding + /// event of the , so it is fired from the thread of the nested video source. + /// + /// + public event VideoSourceErrorEventHandler VideoSourceError + { + add { nestedVideoSource.VideoSourceError += value; } + remove { nestedVideoSource.VideoSourceError -= value; } + } + + /// + /// Video playing finished event. + /// + /// + /// This event is used to notify clients that the video playing has finished. + /// + /// Unlike event, this event is simply redirected to the corresponding + /// event of the , so it is fired from the thread of the nested video source. + /// + /// + public event PlayingFinishedEventHandler PlayingFinished + { + add { nestedVideoSource.PlayingFinished += value; } + remove { nestedVideoSource.PlayingFinished -= value; } + } + + /// + /// Nested video source which is the target for asynchronous processing. + /// + /// + /// The property is set through the class constructor. + /// + /// All calls to this object are actually redirected to the nested video source. The only + /// exception is the event, which is handled differently. This object gets + /// event from the nested class and then fires another + /// event, but from a different thread. + /// + /// + public IVideoSource NestedVideoSource + { + get { return nestedVideoSource; } + } + + /// + /// Specifies if the object should skip frames from the nested video source when it is busy. + /// + /// + /// Specifies if the object should skip frames from the nested video source + /// in the case if it is still busy processing the previous video frame in its own thread. + /// + /// Default value is set to . + /// + public bool SkipFramesIfBusy + { + get { return skipFramesIfBusy; } + set { skipFramesIfBusy = value; } + } + + /// + /// Video source string. + /// + /// + /// The property is redirected to the corresponding property of , + /// so check its documentation to find what it means. + /// + public string Source + { + get { return nestedVideoSource.Source; } + } + + /// + /// Received frames count. + /// + /// + /// Number of frames the nested video source received from + /// the moment of the last access to the property. + /// + /// + public int FramesReceived + { + get { return nestedVideoSource.FramesReceived; } + } + + /// + /// Received bytes count. + /// + /// + /// Number of bytes the nested video source received from + /// the moment of the last access to the property. + /// + public long BytesReceived + { + get { return nestedVideoSource.BytesReceived; } + } + + /// + /// Processed frames count. + /// + /// + /// The property keeps the number of processed video frames since the last access to this property. + /// + /// + /// The value of this property equals to in most cases if the + /// property is set to - every received frame gets processed + /// sooner or later. However, if the property is set to , + /// then value of this property may be lower than the value of the property, which + /// means that nested video source performs acquisition faster than client perform processing of the received frame + /// and some frame are skipped from processing. + /// + /// + public int FramesProcessed + { + get + { + int frames = framesProcessed; + framesProcessed = 0; + return frames; + } + } + + /// + /// State of the video source. + /// + /// + /// Current state of the video source object - running or not. + /// + public bool IsRunning + { + get + { + bool isRunning = nestedVideoSource.IsRunning; + + if ( !isRunning ) + { + Free( ); + } + + return isRunning; + } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Nested video source which is the target for asynchronous processing. + /// + public AsyncVideoSource( IVideoSource nestedVideoSource ) + { + this.nestedVideoSource = nestedVideoSource; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Nested video source which is the target for asynchronous processing. + /// Specifies if the object should skip frames from the nested video source + /// in the case if it is still busy processing the previous video frame. + /// + public AsyncVideoSource( IVideoSource nestedVideoSource, bool skipFramesIfBusy ) + { + this.nestedVideoSource = nestedVideoSource; + this.skipFramesIfBusy = skipFramesIfBusy; + } + + /// + /// Start video source. + /// + /// + /// Starts the nested video source and returns execution to caller. This object creates + /// an extra thread which is used to fire events, so the image processing could be + /// done on another thread without blocking video acquisition thread. + /// + public void Start( ) + { + if ( !IsRunning ) + { + framesProcessed = 0; + + // create all synchronization events + isNewFrameAvailable = new AutoResetEvent( false ); + isProcessingThreadAvailable = new AutoResetEvent( true ); + + // create image processing thread + imageProcessingThread = new Thread( new ThreadStart( imageProcessingThread_Worker ) ); + imageProcessingThread.Start( ); + + // start the nested video source + nestedVideoSource.NewFrame += new NewFrameEventHandler( nestedVideoSource_NewFrame ); + nestedVideoSource.Start( ); + } + } + + /// + /// Signal video source to stop its work. + /// + /// + /// Signals video source to stop its background thread, stop to + /// provide new frames and free resources. + /// + public void SignalToStop( ) + { + nestedVideoSource.SignalToStop( ); + Free( ); + } + + /// + /// Wait for video source has stopped. + /// + /// + /// Waits for video source stopping after it was signalled to stop using + /// method. + /// + public void WaitForStop( ) + { + nestedVideoSource.WaitForStop( ); + Free( ); + } + + /// + /// Stop video source. + /// + /// + /// Stops nested video source by calling its method. + /// See documentation of the particular video source for additional details. + /// + public void Stop( ) + { + nestedVideoSource.Stop( ); + Free( ); + } + + private void Free( ) + { + if ( imageProcessingThread != null ) + { + nestedVideoSource.NewFrame -= new NewFrameEventHandler( nestedVideoSource_NewFrame ); + + // make sure processing thread does nothing + isProcessingThreadAvailable.WaitOne( ); + // signal worker thread to stop and wait for it + lastVideoFrame = null; + isNewFrameAvailable.Set( ); + imageProcessingThread.Join( ); + imageProcessingThread = null; + + // release events + isNewFrameAvailable.Close( ); + isNewFrameAvailable = null; + + isProcessingThreadAvailable.Close( ); + isProcessingThreadAvailable = null; + } + } + + // New frame from nested video source + private void nestedVideoSource_NewFrame( object sender, NewFrameEventArgs eventArgs ) + { + // don't even try doing something if there are no clients + if ( NewFrame == null ) + return; + + if ( skipFramesIfBusy ) + { + if ( !isProcessingThreadAvailable.WaitOne( 0, false ) ) + { + // return in the case if image processing thread is still busy and + // we are allowed to skip frames + return; + } + } + else + { + // make sure image processing thread is available in the case we cannot skip frames + isProcessingThreadAvailable.WaitOne( ); + } + + // pass the image to processing frame and exit + lastVideoFrame = CloneImage( eventArgs.Frame ); + isNewFrameAvailable.Set( ); + } + + private void imageProcessingThread_Worker( ) + { + while ( true ) + { + // wait for new frame to process + isNewFrameAvailable.WaitOne( ); + + // if it is null, then we need to exit + if ( lastVideoFrame == null ) + { + break; + } + + if ( NewFrame != null ) + { + NewFrame( this, new NewFrameEventArgs( lastVideoFrame ) ); + } + + lastVideoFrame.Dispose( ); + lastVideoFrame = null; + framesProcessed++; + + // we are free now for new image + isProcessingThreadAvailable.Set( ); + } + } + + // Note: image cloning is taken from AForge.Imaging.Image.Clone() to avoid reference, + // which may be unwanted + + private static Bitmap CloneImage( Bitmap source ) + { + // lock source bitmap data + BitmapData sourceData = source.LockBits( + new Rectangle( 0, 0, source.Width, source.Height ), + ImageLockMode.ReadOnly, source.PixelFormat ); + + // create new image + Bitmap destination = CloneImage( sourceData ); + + // unlock source image + source.UnlockBits( sourceData ); + + // + if ( + ( source.PixelFormat == PixelFormat.Format1bppIndexed ) || + ( source.PixelFormat == PixelFormat.Format4bppIndexed ) || + ( source.PixelFormat == PixelFormat.Format8bppIndexed ) || + ( source.PixelFormat == PixelFormat.Indexed ) ) + { + ColorPalette srcPalette = source.Palette; + ColorPalette dstPalette = destination.Palette; + + int n = srcPalette.Entries.Length; + + // copy pallete + for ( int i = 0; i < n; i++ ) + { + dstPalette.Entries[i] = srcPalette.Entries[i]; + } + + destination.Palette = dstPalette; + } + + return destination; + } + + private static Bitmap CloneImage( BitmapData sourceData ) + { + // get source image size + int width = sourceData.Width; + int height = sourceData.Height; + + // create new image + Bitmap destination = new Bitmap( width, height, sourceData.PixelFormat ); + + // lock destination bitmap data + BitmapData destinationData = destination.LockBits( + new Rectangle( 0, 0, width, height ), + ImageLockMode.ReadWrite, destination.PixelFormat ); + + AForge.SystemTools.CopyUnmanagedMemory( destinationData.Scan0, sourceData.Scan0, height * sourceData.Stride ); + + // unlock destination image + destination.UnlockBits( destinationData ); + + return destination; + } + } +} diff --git a/Sources/Video/ByteArrayUtils.cs b/Sources/Video/ByteArrayUtils.cs new file mode 100644 index 00000000..50e612e7 --- /dev/null +++ b/Sources/Video/ByteArrayUtils.cs @@ -0,0 +1,91 @@ +// AForge Video Library +// AForge.NET framework +// +// Copyright © Andrew Kirillov, 2007-2008 +// andrew.kirillov@gmail.com +// + +namespace AForge.Video +{ + using System; + + /// + /// Some internal utilities for handling arrays. + /// + /// + internal static class ByteArrayUtils + { + /// + /// Check if the array contains needle at specified position. + /// + /// + /// Source array to check for needle. + /// Needle we are searching for. + /// Start index in source array. + /// + /// Returns true if the source array contains the needle at + /// the specified index. Otherwise it returns false. + /// + public static bool Compare( byte[] array, byte[] needle, int startIndex ) + { + int needleLen = needle.Length; + // compare + for ( int i = 0, p = startIndex; i < needleLen; i++, p++ ) + { + if ( array[p] != needle[i] ) + { + return false; + } + } + return true; + } + + /// + /// Find subarray in the source array. + /// + /// + /// Source array to search for needle. + /// Needle we are searching for. + /// Start index in source array. + /// Number of bytes in source array, where the needle is searched for. + /// + /// Returns starting position of the needle if it was found or -1 otherwise. + /// + public static int Find( byte[] array, byte[] needle, int startIndex, int sourceLength ) + { + int needleLen = needle.Length; + int index; + + while ( sourceLength >= needleLen ) + { + // find needle's starting element + index = Array.IndexOf( array, needle[0], startIndex, sourceLength - needleLen + 1 ); + + // if we did not find even the first element of the needls, then the search is failed + if ( index == -1 ) + return -1; + + int i, p; + // check for needle + for ( i = 0, p = index; i < needleLen; i++, p++ ) + { + if ( array[p] != needle[i] ) + { + break; + } + } + + if ( i == needleLen ) + { + // needle was found + return index; + } + + // continue to search for needle + sourceLength -= ( index - startIndex + 1 ); + startIndex = index + 1; + } + return -1; + } + } +} diff --git a/Sources/Video/Exceptions.cs b/Sources/Video/Exceptions.cs new file mode 100644 index 00000000..c0219d4e --- /dev/null +++ b/Sources/Video/Exceptions.cs @@ -0,0 +1,31 @@ +// AForge Video Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +namespace AForge.Video +{ + using System; + + /// + /// Video related exception. + /// + /// + /// The exception is thrown in the case of some video related issues, like + /// failure of initializing codec, compression, etc. + /// + public class VideoException : Exception + { + /// + /// Initializes a new instance of the class. + /// + /// + /// Exception's message. + /// + public VideoException( string message ) : + base( message ) { } + } +} diff --git a/Sources/Video/IVideoSource.cs b/Sources/Video/IVideoSource.cs new file mode 100644 index 00000000..d6ae3e59 --- /dev/null +++ b/Sources/Video/IVideoSource.cs @@ -0,0 +1,126 @@ +// AForge Video Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2005-2009 +// andrew.kirillov@aforgenet.com +// + +namespace AForge.Video +{ + using System; + + /// + /// Video source interface. + /// + /// + /// The interface describes common methods for different type of video sources. + /// + public interface IVideoSource + { + /// + /// New frame event. + /// + /// + /// This event is used to notify clients about new available video frame. + /// + /// Since video source may have multiple clients, each client is responsible for + /// making a copy (cloning) of the passed video frame, but video source is responsible for + /// disposing its own original copy after notifying of clients. + /// + /// + event NewFrameEventHandler NewFrame; + + /// + /// Video source error event. + /// + /// + /// This event is used to notify clients about any type of errors occurred in + /// video source object, for example internal exceptions. + /// + event VideoSourceErrorEventHandler VideoSourceError; + + /// + /// Video playing finished event. + /// + /// + /// This event is used to notify clients that the video playing has finished. + /// + /// + event PlayingFinishedEventHandler PlayingFinished; + + /// + /// Video source. + /// + /// + /// The meaning of the property depends on particular video source. + /// Depending on video source it may be a file name, URL or any other string + /// describing the video source. + /// + string Source { get; } + + /// + /// Received frames count. + /// + /// + /// Number of frames the video source provided from the moment of the last + /// access to the property. + /// + /// + int FramesReceived { get; } + + /// + /// Received bytes count. + /// + /// + /// Number of bytes the video source provided from the moment of the last + /// access to the property. + /// + /// + long BytesReceived { get; } + + /// + /// State of the video source. + /// + /// + /// Current state of video source object - running or not. + /// + bool IsRunning { get; } + + /// + /// Start video source. + /// + /// + /// Starts video source and return execution to caller. Video source + /// object creates background thread and notifies about new frames with the + /// help of event. + /// + void Start( ); + + /// + /// Signal video source to stop its work. + /// + /// + /// Signals video source to stop its background thread, stop to + /// provide new frames and free resources. + /// + void SignalToStop( ); + + /// + /// Wait for video source has stopped. + /// + /// + /// Waits for video source stopping after it was signalled to stop using + /// method. + /// + void WaitForStop( ); + + /// + /// Stop video source. + /// + /// + /// Stops video source aborting its thread. + /// + void Stop( ); + } +} diff --git a/Sources/Video/JPEGStream.cs b/Sources/Video/JPEGStream.cs new file mode 100644 index 00000000..6d85ff28 --- /dev/null +++ b/Sources/Video/JPEGStream.cs @@ -0,0 +1,587 @@ +// AForge Video Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +namespace AForge.Video +{ + using System; + using System.Drawing; + using System.IO; + using System.Text; + using System.Threading; + using System.Net; + using System.Security; + + /// + /// JPEG video source. + /// + /// + /// The video source constantly downloads JPEG files from the specified URL. + /// + /// Sample usage: + /// + /// // create JPEG video source + /// JPEGStream stream = new JPEGStream( "some url" ); + /// // set NewFrame event handler + /// stream.NewFrame += new NewFrameEventHandler( video_NewFrame ); + /// // start the video source + /// stream.Start( ); + /// // ... + /// // signal to stop + /// stream.SignalToStop( ); + /// // ... + /// + /// private void video_NewFrame( object sender, NewFrameEventArgs eventArgs ) + /// { + /// // get new frame + /// Bitmap bitmap = eventArgs.Frame; + /// // process the frame + /// } + /// + /// + /// Some cameras produce HTTP header, which does not conform strictly to + /// standard, what leads to .NET exception. To avoid this exception the useUnsafeHeaderParsing + /// configuration option of httpWebRequest should be set, what may be done using application + /// configuration file. + /// + /// <configuration> + /// <system.net> + /// <settings> + /// <httpWebRequest useUnsafeHeaderParsing="true" /> + /// </settings> + /// </system.net> + /// </configuration> + /// + /// + /// + public class JPEGStream : IVideoSource + { + // URL for JPEG files + private string source; + // login and password for HTTP authentication + private string login = null; + private string password = null; + // proxy information + private IWebProxy proxy = null; + // received frames count + private int framesReceived; + // recieved byte count + private long bytesReceived; + // use separate HTTP connection group or use default + private bool useSeparateConnectionGroup = false; + // prevent cashing or not + private bool preventCaching = true; + // frame interval in milliseconds + private int frameInterval = 0; + // timeout value for web request + private int requestTimeout = 10000; + // if we should use basic authentication when connecting to the video source + private bool forceBasicAuthentication = false; + + // buffer size used to download JPEG image + private const int bufferSize = 1024 * 1024; + // size of portion to read at once + private const int readSize = 1024; + + private Thread thread = null; + private ManualResetEvent stopEvent = null; + + /// + /// New frame event. + /// + /// + /// Notifies clients about new available frame from video source. + /// + /// Since video source may have multiple clients, each client is responsible for + /// making a copy (cloning) of the passed video frame, because the video source disposes its + /// own original copy after notifying of clients. + /// + /// + public event NewFrameEventHandler NewFrame; + + /// + /// Video source error event. + /// + /// + /// This event is used to notify clients about any type of errors occurred in + /// video source object, for example internal exceptions. + /// + public event VideoSourceErrorEventHandler VideoSourceError; + + /// + /// Video playing finished event. + /// + /// + /// This event is used to notify clients that the video playing has finished. + /// + /// + public event PlayingFinishedEventHandler PlayingFinished; + + /// + /// Use or not separate connection group. + /// + /// + /// The property indicates to open web request in separate connection group. + /// + public bool SeparateConnectionGroup + { + get { return useSeparateConnectionGroup; } + set { useSeparateConnectionGroup = value; } + } + + /// + /// Use or not caching. + /// + /// + /// If the property is set to true, then a fake random parameter will be added + /// to URL to prevent caching. It's required for clients, who are behind proxy server. + /// + public bool PreventCaching + { + get { return preventCaching; } + set { preventCaching = value; } + } + + /// + /// Frame interval. + /// + /// + /// The property sets the interval in milliseconds betwen frames. If the property is + /// set to 100, then the desired frame rate will be 10 frames per second. Default value is 0 - + /// get new frames as fast as possible. + /// + public int FrameInterval + { + get { return frameInterval; } + set { frameInterval = value; } + } + + /// + /// Video source. + /// + /// + /// URL, which provides JPEG files. + /// + public virtual string Source + { + get { return source; } + set { source = value; } + } + + /// + /// Login value. + /// + /// + /// Login required to access video source. + /// + public string Login + { + get { return login; } + set { login = value; } + } + + /// + /// Password value. + /// + /// + /// Password required to access video source. + /// + public string Password + { + get { return password; } + set { password = value; } + } + + /// + /// Gets or sets proxy information for the request. + /// + /// + /// The local computer or application config file may specify that a default + /// proxy to be used. If the Proxy property is specified, then the proxy settings from the Proxy + /// property overridea the local computer or application config file and the instance will use + /// the proxy settings specified. If no proxy is specified in a config file + /// and the Proxy property is unspecified, the request uses the proxy settings + /// inherited from Internet Explorer on the local computer. If there are no proxy settings + /// in Internet Explorer, the request is sent directly to the server. + /// + /// + public IWebProxy Proxy + { + get { return proxy; } + set { proxy = value; } + } + + /// + /// Received frames count. + /// + /// + /// Number of frames the video source provided from the moment of the last + /// access to the property. + /// + /// + public int FramesReceived + { + get + { + int frames = framesReceived; + framesReceived = 0; + return frames; + } + } + + /// + /// Received bytes count. + /// + /// + /// Number of bytes the video source provided from the moment of the last + /// access to the property. + /// + /// + public long BytesReceived + { + get + { + long bytes = bytesReceived; + bytesReceived = 0; + return bytes; + } + } + + /// + /// Request timeout value. + /// + /// + /// The property sets timeout value in milliseconds for web requests. + /// + /// Default value is set 10000 milliseconds. + /// + public int RequestTimeout + { + get { return requestTimeout; } + set { requestTimeout = value; } + } + + /// + /// State of the video source. + /// + /// + /// Current state of video source object - running or not. + /// + public bool IsRunning + { + get + { + if ( thread != null ) + { + // check thread status + if ( thread.Join( 0 ) == false ) + return true; + + // the thread is not running, free resources + Free( ); + } + return false; + } + } + + /// + /// Force using of basic authentication when connecting to the video source. + /// + /// + /// For some IP cameras (TrendNET IP cameras, for example) using standard .NET's authentication via credentials + /// does not seem to be working (seems like camera does not request for authentication, but expects corresponding headers to be + /// present on connection request). So this property allows to force basic authentication by adding required HTTP headers when + /// request is sent. + /// + /// Default value is set to . + /// + /// + public bool ForceBasicAuthentication + { + get { return forceBasicAuthentication; } + set { forceBasicAuthentication = value; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public JPEGStream( ) { } + + /// + /// Initializes a new instance of the class. + /// + /// + /// URL, which provides JPEG files. + /// + public JPEGStream( string source ) + { + this.source = source; + } + + /// + /// Start video source. + /// + /// + /// Starts video source and return execution to caller. Video source + /// object creates background thread and notifies about new frames with the + /// help of event. + /// + /// Video source is not specified. + /// + public void Start( ) + { + if ( !IsRunning ) + { + // check source + if ( ( source == null ) || ( source == string.Empty ) ) + throw new ArgumentException( "Video source is not specified." ); + + framesReceived = 0; + bytesReceived = 0; + + // create events + stopEvent = new ManualResetEvent( false ); + + // create and start new thread + thread = new Thread( new ThreadStart( WorkerThread ) ); + thread.Name = source; // mainly for debugging + thread.Start( ); + } + } + + /// + /// Signal video source to stop its work. + /// + /// + /// Signals video source to stop its background thread, stop to + /// provide new frames and free resources. + /// + public void SignalToStop( ) + { + // stop thread + if ( thread != null ) + { + // signal to stop + stopEvent.Set( ); + } + } + + /// + /// Wait for video source has stopped. + /// + /// + /// Waits for source stopping after it was signalled to stop using + /// method. + /// + public void WaitForStop( ) + { + if ( thread != null ) + { + // wait for thread stop + thread.Join( ); + + Free( ); + } + } + + /// + /// Stop video source. + /// + /// + /// Stops video source aborting its thread. + /// + /// Since the method aborts background thread, its usage is highly not preferred + /// and should be done only if there are no other options. The correct way of stopping camera + /// is signaling it stop and then + /// waiting for background thread's completion. + /// + /// + public void Stop( ) + { + if ( this.IsRunning ) + { + stopEvent.Set( ); + thread.Abort( ); + WaitForStop( ); + } + } + + /// + /// Free resource. + /// + /// + private void Free( ) + { + thread = null; + + // release events + stopEvent.Close( ); + stopEvent = null; + } + + // Worker thread + private void WorkerThread( ) + { + // buffer to read stream + byte[] buffer = new byte[bufferSize]; + // HTTP web request + HttpWebRequest request = null; + // web responce + WebResponse response = null; + // stream for JPEG downloading + Stream stream = null; + // random generator to add fake parameter for cache preventing + Random rand = new Random( (int) DateTime.Now.Ticks ); + // download start time and duration + DateTime start; + TimeSpan span; + + while ( !stopEvent.WaitOne( 0, false ) ) + { + int read, total = 0; + + try + { + // set dowbload start time + start = DateTime.Now; + + // create request + if ( !preventCaching ) + { + // request without cache prevention + request = (HttpWebRequest) WebRequest.Create( source ); + } + else + { + // request with cache prevention + request = (HttpWebRequest) WebRequest.Create( source + ( ( source.IndexOf( '?' ) == -1 ) ? '?' : '&' ) + "fake=" + rand.Next( ).ToString( ) ); + } + + // set proxy + if ( proxy != null ) + { + request.Proxy = proxy; + } + + // set timeout value for the request + request.Timeout = requestTimeout; + // set login and password + if ( ( login != null ) && ( password != null ) && ( login != string.Empty ) ) + request.Credentials = new NetworkCredential( login, password ); + // set connection group name + if ( useSeparateConnectionGroup ) + request.ConnectionGroupName = GetHashCode( ).ToString( ); + // force basic authentication through extra headers if required + if ( forceBasicAuthentication ) + { + string authInfo = string.Format( "{0}:{1}", login, password ); + authInfo = Convert.ToBase64String( Encoding.Default.GetBytes( authInfo ) ); + request.Headers["Authorization"] = "Basic " + authInfo; + } + // get response + response = request.GetResponse( ); + // get response stream + stream = response.GetResponseStream( ); + stream.ReadTimeout = requestTimeout; + + // loop + while ( !stopEvent.WaitOne( 0, false ) ) + { + // check total read + if ( total > bufferSize - readSize ) + { + total = 0; + } + + // read next portion from stream + if ( ( read = stream.Read( buffer, total, readSize ) ) == 0 ) + break; + + total += read; + + // increment received bytes counter + bytesReceived += read; + } + + if ( !stopEvent.WaitOne( 0, false ) ) + { + // increment frames counter + framesReceived++; + + // provide new image to clients + if ( NewFrame != null ) + { + Bitmap bitmap = (Bitmap) Bitmap.FromStream( new MemoryStream( buffer, 0, total ) ); + // notify client + NewFrame( this, new NewFrameEventArgs( bitmap ) ); + // release the image + bitmap.Dispose( ); + bitmap = null; + } + } + + // wait for a while ? + if ( frameInterval > 0 ) + { + // get download duration + span = DateTime.Now.Subtract( start ); + // miliseconds to sleep + int msec = frameInterval - (int) span.TotalMilliseconds; + + if ( ( msec > 0 ) && ( stopEvent.WaitOne( msec, false ) ) ) + break; + } + } + catch ( ThreadAbortException ) + { + break; + } + catch ( Exception exception ) + { + // provide information to clients + if ( VideoSourceError != null ) + { + VideoSourceError( this, new VideoSourceErrorEventArgs( exception.Message ) ); + } + // wait for a while before the next try + Thread.Sleep( 250 ); + } + finally + { + // abort request + if ( request != null) + { + request.Abort( ); + request = null; + } + // close response stream + if ( stream != null ) + { + stream.Close( ); + stream = null; + } + // close response + if ( response != null ) + { + response.Close( ); + response = null; + } + } + + // need to stop ? + if ( stopEvent.WaitOne( 0, false ) ) + break; + } + + if ( PlayingFinished != null ) + { + PlayingFinished( this, ReasonToFinishPlaying.StoppedByUser ); + } + } + } +} diff --git a/Sources/Video/MJPEGStream.cs b/Sources/Video/MJPEGStream.cs new file mode 100644 index 00000000..612533a9 --- /dev/null +++ b/Sources/Video/MJPEGStream.cs @@ -0,0 +1,704 @@ +// AForge Video Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +namespace AForge.Video +{ + using System; + using System.Drawing; + using System.IO; + using System.Text; + using System.Threading; + using System.Net; + using System.Security; + + /// + /// MJPEG video source. + /// + /// + /// The video source downloads JPEG images from the specified URL, which represents + /// MJPEG stream. + /// + /// Sample usage: + /// + /// // create MJPEG video source + /// MJPEGStream stream = new MJPEGStream( "some url" ); + /// // set event handlers + /// stream.NewFrame += new NewFrameEventHandler( video_NewFrame ); + /// // start the video source + /// stream.Start( ); + /// // ... + /// + /// + /// Some cameras produce HTTP header, which does not conform strictly to + /// standard, what leads to .NET exception. To avoid this exception the useUnsafeHeaderParsing + /// configuration option of httpWebRequest should be set, what may be done using application + /// configuration file. + /// + /// <configuration> + /// <system.net> + /// <settings> + /// <httpWebRequest useUnsafeHeaderParsing="true" /> + /// </settings> + /// </system.net> + /// </configuration> + /// + /// + /// + public class MJPEGStream : IVideoSource + { + // URL for MJPEG stream + private string source; + // login and password for HTTP authentication + private string login = null; + private string password = null; + // proxy information + private IWebProxy proxy = null; + // received frames count + private int framesReceived; + // recieved byte count + private long bytesReceived; + // use separate HTTP connection group or use default + private bool useSeparateConnectionGroup = true; + // timeout value for web request + private int requestTimeout = 10000; + // if we should use basic authentication when connecting to the video source + private bool forceBasicAuthentication = false; + + // buffer size used to download MJPEG stream + private const int bufSize = 1024 * 1024; + // size of portion to read at once + private const int readSize = 1024; + + private Thread thread = null; + private ManualResetEvent stopEvent = null; + private ManualResetEvent reloadEvent = null; + + private string userAgent = "Mozilla/5.0"; + + /// + /// New frame event. + /// + /// + /// Notifies clients about new available frame from video source. + /// + /// Since video source may have multiple clients, each client is responsible for + /// making a copy (cloning) of the passed video frame, because the video source disposes its + /// own original copy after notifying of clients. + /// + /// + public event NewFrameEventHandler NewFrame; + + /// + /// Video source error event. + /// + /// + /// This event is used to notify clients about any type of errors occurred in + /// video source object, for example internal exceptions. + /// + public event VideoSourceErrorEventHandler VideoSourceError; + + /// + /// Video playing finished event. + /// + /// + /// This event is used to notify clients that the video playing has finished. + /// + /// + public event PlayingFinishedEventHandler PlayingFinished; + + /// + /// Use or not separate connection group. + /// + /// + /// The property indicates to open web request in separate connection group. + /// + public bool SeparateConnectionGroup + { + get { return useSeparateConnectionGroup; } + set { useSeparateConnectionGroup = value; } + } + + /// + /// Video source. + /// + /// + /// URL, which provides MJPEG stream. + /// + public string Source + { + get { return source; } + set + { + source = value; + // signal to reload + if ( thread != null ) + reloadEvent.Set( ); + } + } + + /// + /// Login value. + /// + /// + /// Login required to access video source. + /// + public string Login + { + get { return login; } + set { login = value; } + } + + /// + /// Password value. + /// + /// + /// Password required to access video source. + /// + public string Password + { + get { return password; } + set { password = value; } + } + + /// + /// Gets or sets proxy information for the request. + /// + /// + /// The local computer or application config file may specify that a default + /// proxy to be used. If the Proxy property is specified, then the proxy settings from the Proxy + /// property overridea the local computer or application config file and the instance will use + /// the proxy settings specified. If no proxy is specified in a config file + /// and the Proxy property is unspecified, the request uses the proxy settings + /// inherited from Internet Explorer on the local computer. If there are no proxy settings + /// in Internet Explorer, the request is sent directly to the server. + /// + /// + public IWebProxy Proxy + { + get { return proxy; } + set { proxy = value; } + } + + /// + /// User agent to specify in HTTP request header. + /// + /// + /// Some IP cameras check what is the requesting user agent and depending + /// on it they provide video in different formats or do not provide it at all. The property + /// sets the value of user agent string, which is sent to camera in request header. + /// + /// + /// Default value is set to "Mozilla/5.0". If the value is set to , + /// the user agent string is not sent in request header. + /// + /// + public string HttpUserAgent + { + get { return userAgent; } + set { userAgent = value; } + } + + /// + /// Received frames count. + /// + /// + /// Number of frames the video source provided from the moment of the last + /// access to the property. + /// + /// + public int FramesReceived + { + get + { + int frames = framesReceived; + framesReceived = 0; + return frames; + } + } + + /// + /// Received bytes count. + /// + /// + /// Number of bytes the video source provided from the moment of the last + /// access to the property. + /// + /// + public long BytesReceived + { + get + { + long bytes = bytesReceived; + bytesReceived = 0; + return bytes; + } + } + + /// + /// Request timeout value. + /// + /// + /// The property sets timeout value in milliseconds for web requests. + /// Default value is 10000 milliseconds. + /// + public int RequestTimeout + { + get { return requestTimeout; } + set { requestTimeout = value; } + } + + /// + /// State of the video source. + /// + /// + /// Current state of video source object - running or not. + /// + public bool IsRunning + { + get + { + if ( thread != null ) + { + // check thread status + if ( thread.Join( 0 ) == false ) + return true; + + // the thread is not running, so free resources + Free( ); + } + return false; + } + } + + /// + /// Force using of basic authentication when connecting to the video source. + /// + /// + /// For some IP cameras (TrendNET IP cameras, for example) using standard .NET's authentication via credentials + /// does not seem to be working (seems like camera does not request for authentication, but expects corresponding headers to be + /// present on connection request). So this property allows to force basic authentication by adding required HTTP headers when + /// request is sent. + /// + /// Default value is set to . + /// + /// + public bool ForceBasicAuthentication + { + get { return forceBasicAuthentication; } + set { forceBasicAuthentication = value; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public MJPEGStream( ) { } + + /// + /// Initializes a new instance of the class. + /// + /// + /// URL, which provides MJPEG stream. + /// + public MJPEGStream( string source ) + { + this.source = source; + } + + /// + /// Start video source. + /// + /// + /// Starts video source and return execution to caller. Video source + /// object creates background thread and notifies about new frames with the + /// help of event. + /// + /// Video source is not specified. + /// + public void Start( ) + { + if ( !IsRunning ) + { + // check source + if ( ( source == null ) || ( source == string.Empty ) ) + throw new ArgumentException( "Video source is not specified." ); + + framesReceived = 0; + bytesReceived = 0; + + // create events + stopEvent = new ManualResetEvent( false ); + reloadEvent = new ManualResetEvent( false ); + + // create and start new thread + thread = new Thread( new ThreadStart( WorkerThread ) ); + thread.Name = source; + thread.Start( ); + } + } + + /// + /// Signal video source to stop its work. + /// + /// + /// Signals video source to stop its background thread, stop to + /// provide new frames and free resources. + /// + public void SignalToStop( ) + { + // stop thread + if ( thread != null ) + { + // signal to stop + stopEvent.Set( ); + } + } + + /// + /// Wait for video source has stopped. + /// + /// + /// Waits for source stopping after it was signalled to stop using + /// method. + /// + public void WaitForStop( ) + { + if ( thread != null ) + { + // wait for thread stop + thread.Join( ); + + Free( ); + } + } + + /// + /// Stop video source. + /// + /// + /// Stops video source aborting its thread. + /// + /// Since the method aborts background thread, its usage is highly not preferred + /// and should be done only if there are no other options. The correct way of stopping camera + /// is signaling it stop and then + /// waiting for background thread's completion. + /// + /// + public void Stop( ) + { + if ( this.IsRunning ) + { + stopEvent.Set( ); + thread.Abort( ); + WaitForStop( ); + } + } + + /// + /// Free resource. + /// + /// + private void Free( ) + { + thread = null; + + // release events + stopEvent.Close( ); + stopEvent = null; + reloadEvent.Close( ); + reloadEvent = null; + } + + // Worker thread + private void WorkerThread( ) + { + // buffer to read stream + byte[] buffer = new byte[bufSize]; + // JPEG magic number + byte[] jpegMagic = new byte[] { 0xFF, 0xD8, 0xFF }; + int jpegMagicLength = 3; + + ASCIIEncoding encoding = new ASCIIEncoding( ); + + while ( !stopEvent.WaitOne( 0, false ) ) + { + // reset reload event + reloadEvent.Reset( ); + + // HTTP web request + HttpWebRequest request = null; + // web responce + WebResponse response = null; + // stream for MJPEG downloading + Stream stream = null; + // boundary betweeen images (string and binary versions) + byte[] boundary = null; + string boudaryStr = null; + // length of boundary + int boundaryLen; + // flag signaling if boundary was checked or not + bool boundaryIsChecked = false; + // read amounts and positions + int read, todo = 0, total = 0, pos = 0, align = 1; + int start = 0, stop = 0; + + // align + // 1 = searching for image start + // 2 = searching for image end + + try + { + // create request + request = (HttpWebRequest) WebRequest.Create( source ); + // set user agent + if ( userAgent != null ) + { + request.UserAgent = userAgent; + } + + // set proxy + if ( proxy != null ) + { + request.Proxy = proxy; + } + + // set timeout value for the request + request.Timeout = requestTimeout; + // set login and password + if ( ( login != null ) && ( password != null ) && ( login != string.Empty ) ) + request.Credentials = new NetworkCredential( login, password ); + // set connection group name + if ( useSeparateConnectionGroup ) + request.ConnectionGroupName = GetHashCode( ).ToString( ); + // force basic authentication through extra headers if required + if ( forceBasicAuthentication ) + { + string authInfo = string.Format( "{0}:{1}", login, password ); + authInfo = Convert.ToBase64String( Encoding.Default.GetBytes( authInfo ) ); + request.Headers["Authorization"] = "Basic " + authInfo; + } + // get response + response = request.GetResponse( ); + + // check content type + string contentType = response.ContentType; + string[] contentTypeArray = contentType.Split( '/' ); + + // "application/octet-stream" + if ( ( contentTypeArray[0] == "application" ) && ( contentTypeArray[1] == "octet-stream" ) ) + { + boundaryLen = 0; + boundary = new byte[0]; + } + else if ( ( contentTypeArray[0] == "multipart" ) && ( contentType.Contains( "mixed" ) ) ) + { + // get boundary + int boundaryIndex = contentType.IndexOf( "boundary", 0 ); + if ( boundaryIndex != -1 ) + { + boundaryIndex = contentType.IndexOf( "=", boundaryIndex + 8 ); + } + + if ( boundaryIndex == -1 ) + { + // try same scenario as with octet-stream, i.e. without boundaries + boundaryLen = 0; + boundary = new byte[0]; + } + else + { + boudaryStr = contentType.Substring( boundaryIndex + 1 ); + // remove spaces and double quotes, which may be added by some IP cameras + boudaryStr = boudaryStr.Trim( ' ', '"' ); + + boundary = encoding.GetBytes( boudaryStr ); + boundaryLen = boundary.Length; + boundaryIsChecked = false; + } + } + else + { + throw new Exception( "Invalid content type." ); + } + + // get response stream + stream = response.GetResponseStream( ); + stream.ReadTimeout = requestTimeout; + + // loop + while ( ( !stopEvent.WaitOne( 0, false ) ) && ( !reloadEvent.WaitOne( 0, false ) ) ) + { + // check total read + if ( total > bufSize - readSize ) + { + total = pos = todo = 0; + } + + // read next portion from stream + if ( ( read = stream.Read( buffer, total, readSize ) ) == 0 ) + throw new ApplicationException( ); + + total += read; + todo += read; + + // increment received bytes counter + bytesReceived += read; + + // do we need to check boundary ? + if ( ( boundaryLen != 0 ) && ( !boundaryIsChecked ) ) + { + // some IP cameras, like AirLink, claim that boundary is "myboundary", + // when it is really "--myboundary". this needs to be corrected. + + pos = ByteArrayUtils.Find( buffer, boundary, 0, todo ); + // continue reading if boudary was not found + if ( pos == -1 ) + continue; + + for ( int i = pos - 1; i >= 0; i-- ) + { + byte ch = buffer[i]; + + if ( ( ch == (byte) '\n' ) || ( ch == (byte) '\r' ) ) + { + break; + } + + boudaryStr = (char) ch + boudaryStr; + } + + boundary = encoding.GetBytes( boudaryStr ); + boundaryLen = boundary.Length; + boundaryIsChecked = true; + } + + // search for image start + if ( ( align == 1 ) && ( todo >= jpegMagicLength ) ) + { + start = ByteArrayUtils.Find( buffer, jpegMagic, pos, todo ); + if ( start != -1 ) + { + // found JPEG start + pos = start + jpegMagicLength; + todo = total - pos; + align = 2; + } + else + { + // delimiter not found + todo = jpegMagicLength - 1; + pos = total - todo; + } + } + + // search for image end ( boundaryLen can be 0, so need extra check ) + while ( ( align == 2 ) && ( todo != 0 ) && ( todo >= boundaryLen ) ) + { + stop = ByteArrayUtils.Find( buffer, + ( boundaryLen != 0 ) ? boundary : jpegMagic, + pos, todo ); + + if ( stop != -1 ) + { + pos = stop; + todo = total - pos; + + // increment frames counter + framesReceived ++; + + // image at stop + if ( ( NewFrame != null ) && ( !stopEvent.WaitOne( 0, false ) ) ) + { + Bitmap bitmap = (Bitmap) Bitmap.FromStream ( new MemoryStream( buffer, start, stop - start ) ); + // notify client + NewFrame( this, new NewFrameEventArgs( bitmap ) ); + // release the image + bitmap.Dispose( ); + bitmap = null; + } + + // shift array + pos = stop + boundaryLen; + todo = total - pos; + Array.Copy( buffer, pos, buffer, 0, todo ); + + total = todo; + pos = 0; + align = 1; + } + else + { + // boundary not found + if ( boundaryLen != 0 ) + { + todo = boundaryLen - 1; + pos = total - todo; + } + else + { + todo = 0; + pos = total; + } + } + } + } + } + catch ( ApplicationException ) + { + // do nothing for Application Exception, which we raised on our own + // wait for a while before the next try + Thread.Sleep( 250 ); + } + catch ( ThreadAbortException ) + { + break; + } + catch ( Exception exception ) + { + // provide information to clients + if ( VideoSourceError != null ) + { + VideoSourceError( this, new VideoSourceErrorEventArgs( exception.Message ) ); + } + // wait for a while before the next try + Thread.Sleep( 250 ); + } + finally + { + // abort request + if ( request != null) + { + request.Abort( ); + request = null; + } + // close response stream + if ( stream != null ) + { + stream.Close( ); + stream = null; + } + // close response + if ( response != null ) + { + response.Close( ); + response = null; + } + } + + // need to stop ? + if ( stopEvent.WaitOne( 0, false ) ) + break; + } + + if ( PlayingFinished != null ) + { + PlayingFinished( this, ReasonToFinishPlaying.StoppedByUser ); + } + } + } +} diff --git a/Sources/Video/Properties/AssemblyInfo.cs b/Sources/Video/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..1e05d172 --- /dev/null +++ b/Sources/Video/Properties/AssemblyInfo.cs @@ -0,0 +1,35 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle( "AForge.Video" )] +[assembly: AssemblyDescription( "" )] +[assembly: AssemblyConfiguration( "" )] +[assembly: AssemblyCompany( "AForge" )] +[assembly: AssemblyProduct( "AForge.NET" )] +[assembly: AssemblyCopyright( "AForge © 2012" )] +[assembly: AssemblyTrademark( "" )] +[assembly: AssemblyCulture( "" )] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible( false )] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid( "09501c39-859a-41c4-abad-15ec20e026af" )] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion( "2.2.5.0" )] +[assembly: AssemblyFileVersion( "2.2.5.0" )] diff --git a/Sources/Video/ScreenCaptureStream.cs b/Sources/Video/ScreenCaptureStream.cs new file mode 100644 index 00000000..d4a00778 --- /dev/null +++ b/Sources/Video/ScreenCaptureStream.cs @@ -0,0 +1,396 @@ +// AForge Video Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2012 +// contacts@aforgenet.com +// +// Copyright © César Souza, 2012 +// cesarsouza@gmail.com +// + +namespace AForge.Video +{ + using System; + using System.Drawing; + using System.Drawing.Imaging; + using System.Threading; + + /// + /// Screen capture video source. + /// + /// + /// The video source constantly captures the desktop screen. + /// + /// Sample usage: + /// + /// // get entire desktop area size + /// Rectangle screenArea = Rectangle.Empty; + /// foreach ( System.Windows.Forms.Screen screen in + /// System.Windows.Forms.Screen.AllScreens ) + /// { + /// screenArea = Rectangle.Union( screenArea, screen.Bounds ); + /// } + /// + /// // create screen capture video source + /// ScreenCaptureStream stream = new ScreenCaptureStream( screenArea ); + /// + /// // set NewFrame event handler + /// stream.NewFrame += new NewFrameEventHandler( video_NewFrame ); + /// + /// // start the video source + /// stream.Start( ); + /// + /// // ... + /// // signal to stop + /// stream.SignalToStop( ); + /// // ... + /// + /// private void video_NewFrame( object sender, NewFrameEventArgs eventArgs ) + /// { + /// // get new frame + /// Bitmap bitmap = eventArgs.Frame; + /// // process the frame + /// } + /// + /// + /// + public class ScreenCaptureStream : IVideoSource + { + private Rectangle region; + + // frame interval in milliseconds + private int frameInterval = 100; + // received frames count + private int framesReceived; + + private Thread thread = null; + private ManualResetEvent stopEvent = null; + + /// + /// New frame event. + /// + /// + /// Notifies clients about new available frame from video source. + /// + /// Since video source may have multiple clients, each client is responsible for + /// making a copy (cloning) of the passed video frame, because the video source disposes its + /// own original copy after notifying of clients. + /// + /// + public event NewFrameEventHandler NewFrame; + + /// + /// Video source error event. + /// + /// + /// This event is used to notify clients about any type of errors occurred in + /// video source object, for example internal exceptions. + /// + public event VideoSourceErrorEventHandler VideoSourceError; + + /// + /// Video playing finished event. + /// + /// + /// This event is used to notify clients that the video playing has finished. + /// + /// + public event PlayingFinishedEventHandler PlayingFinished; + + /// + /// Video source. + /// + /// + public virtual string Source + { + get { return "Screen Capture"; } + } + + /// + /// Gets or sets the screen capture region. + /// + /// + /// This property specifies which region (rectangle) of the screen to capture. It may cover multiple displays + /// if those are available in the system. + /// + /// The property must be set before starting video source to have any effect. + /// + /// + public Rectangle Region + { + get { return region; } + set { region = value; } + } + + /// + /// Time interval between making screen shots, ms. + /// + /// + /// The property specifies time interval in milliseconds between consequent screen captures. + /// Expected frame rate of the stream should be approximately 1000/FrameInteval. + /// + /// If the property is set to 0, then the stream will capture screen as fast as the system allows. + /// + /// Default value is set to 100. + /// + /// + public int FrameInterval + { + get { return frameInterval; } + set { frameInterval = Math.Max( 0, value ); } + } + + /// + /// Received frames count. + /// + /// + /// Number of frames the video source provided from the moment of the last + /// access to the property. + /// + /// + public int FramesReceived + { + get + { + int frames = framesReceived; + framesReceived = 0; + return frames; + } + } + + /// + /// Received bytes count. + /// + /// + /// The property is not implemented for this video source and always returns 0. + /// + /// + public long BytesReceived + { + get { return 0; } + } + + /// + /// State of the video source. + /// + /// + /// Current state of video source object - running or not. + /// + public bool IsRunning + { + get + { + if ( thread != null ) + { + // check thread status + if ( thread.Join( 0 ) == false ) + return true; + + // the thread is not running, free resources + Free( ); + } + return false; + } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Screen's rectangle to capture (the rectangle may cover multiple displays). + /// + public ScreenCaptureStream( Rectangle region ) + { + this.region = region; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Screen's rectangle to capture (the rectangle may cover multiple displays). + /// Time interval between making screen shots, ms. + /// + public ScreenCaptureStream( Rectangle region, int frameInterval ) + { + this.region = region; + this.FrameInterval = frameInterval; + } + + /// + /// Start video source. + /// + /// + /// Starts video source and return execution to caller. Video source + /// object creates background thread and notifies about new frames with the + /// help of event. + /// + /// Video source is not specified. + /// + public void Start( ) + { + if ( !IsRunning ) + { + framesReceived = 0; + + // create events + stopEvent = new ManualResetEvent( false ); + + // create and start new thread + thread = new Thread( new ThreadStart( WorkerThread ) ); + thread.Name = Source; // mainly for debugging + thread.Start( ); + } + } + + /// + /// Signal video source to stop its work. + /// + /// + /// Signals video source to stop its background thread, stop to + /// provide new frames and free resources. + /// + public void SignalToStop( ) + { + // stop thread + if ( thread != null ) + { + // signal to stop + stopEvent.Set( ); + } + } + + /// + /// Wait for video source has stopped. + /// + /// + /// Waits for source stopping after it was signalled to stop using + /// method. + /// + public void WaitForStop( ) + { + if ( thread != null ) + { + // wait for thread stop + thread.Join( ); + + Free( ); + } + } + + /// + /// Stop video source. + /// + /// + /// Stops video source aborting its thread. + /// + /// Since the method aborts background thread, its usage is highly not preferred + /// and should be done only if there are no other options. The correct way of stopping camera + /// is signaling it stop and then + /// waiting for background thread's completion. + /// + /// + public void Stop( ) + { + if ( this.IsRunning ) + { + stopEvent.Set( ); + thread.Abort( ); + WaitForStop( ); + } + } + + /// + /// Free resource. + /// + /// + private void Free( ) + { + thread = null; + + // release events + stopEvent.Close( ); + stopEvent = null; + } + + // Worker thread + private void WorkerThread( ) + { + int width = region.Width; + int height = region.Height; + int x = region.Location.X; + int y = region.Location.Y; + Size size = region.Size; + + Bitmap bitmap = new Bitmap( width, height, PixelFormat.Format32bppArgb ); + Graphics graphics = Graphics.FromImage( bitmap ); + + // download start time and duration + DateTime start; + TimeSpan span; + + while ( !stopEvent.WaitOne( 0, false ) ) + { + // set dowbload start time + start = DateTime.Now; + + try + { + // capture the screen + graphics.CopyFromScreen( x, y, 0, 0, size, CopyPixelOperation.SourceCopy ); + + // increment frames counter + framesReceived++; + + // provide new image to clients + if ( NewFrame != null ) + { + // notify client + NewFrame( this, new NewFrameEventArgs( bitmap ) ); + } + + // wait for a while ? + if ( frameInterval > 0 ) + { + // get download duration + span = DateTime.Now.Subtract( start ); + + // miliseconds to sleep + int msec = frameInterval - (int) span.TotalMilliseconds; + + if ( ( msec > 0 ) && ( stopEvent.WaitOne( msec, false ) ) ) + break; + } + } + catch ( ThreadAbortException ) + { + break; + } + catch ( Exception exception ) + { + // provide information to clients + if ( VideoSourceError != null ) + { + VideoSourceError( this, new VideoSourceErrorEventArgs( exception.Message ) ); + } + // wait for a while before the next try + Thread.Sleep( 250 ); + } + + // need to stop ? + if ( stopEvent.WaitOne( 0, false ) ) + break; + } + + // release resources + graphics.Dispose( ); + bitmap.Dispose( ); + + if ( PlayingFinished != null ) + { + PlayingFinished( this, ReasonToFinishPlaying.StoppedByUser ); + } + } + } +} diff --git a/Sources/Video/Video (mono).csproj b/Sources/Video/Video (mono).csproj new file mode 100644 index 00000000..baf9e72a --- /dev/null +++ b/Sources/Video/Video (mono).csproj @@ -0,0 +1,53 @@ + + + + Debug + AnyCPU + 9.0.21022 + 2.0 + {9A6DAB56-2ED8-4BB2-B6A4-BFCBC61D1E38} + Library + AForge.Video + v2.0 + AForge.Video + + + true + full + false + bin\Debug + DEBUG,MONO + prompt + 3 + false + + + none + false + ..\..\Release\Mono + prompt + 3 + false + true + AForge.Video.snk + MONO + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Sources/Video/Video (mono).sln b/Sources/Video/Video (mono).sln new file mode 100644 index 00000000..0bd00b64 --- /dev/null +++ b/Sources/Video/Video (mono).sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Video (mono)", "Video (mono).csproj", "{9A6DAB56-2ED8-4BB2-B6A4-BFCBC61D1E38}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {9A6DAB56-2ED8-4BB2-B6A4-BFCBC61D1E38}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9A6DAB56-2ED8-4BB2-B6A4-BFCBC61D1E38}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9A6DAB56-2ED8-4BB2-B6A4-BFCBC61D1E38}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9A6DAB56-2ED8-4BB2-B6A4-BFCBC61D1E38}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(MonoDevelopProperties) = preSolution + StartupItem = Video (mono).csproj + EndGlobalSection +EndGlobal diff --git a/Sources/Video/Video.csproj b/Sources/Video/Video.csproj new file mode 100644 index 00000000..360d6de2 --- /dev/null +++ b/Sources/Video/Video.csproj @@ -0,0 +1,119 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {809725DC-6502-4732-A51C-DEB7FEA12975} + Library + Properties + AForge.Video + AForge.Video + true + AForge.Video.snk + + + 3.5 + v2.0 + + + false + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + true + + + true + full + false + ..\..\Release\ + DEBUG;TRACE + prompt + 4 + AForge.Video.xml + + + pdbonly + true + ..\..\Release\ + TRACE + prompt + 4 + AForge.Video.xml + + + + False + ..\..\Release\AForge.dll + + + + + + + + + + + + + + + + + + + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 2.0 %28x86%29 + false + + + False + .NET Framework 3.0 %28x86%29 + false + + + False + .NET Framework 3.5 + true + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 3.1 + true + + + + + \ No newline at end of file diff --git a/Sources/Video/Video.sln b/Sources/Video/Video.sln new file mode 100644 index 00000000..04cc05bc --- /dev/null +++ b/Sources/Video/Video.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual C# Express 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Video", "Video.csproj", "{809725DC-6502-4732-A51C-DEB7FEA12975}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {809725DC-6502-4732-A51C-DEB7FEA12975}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {809725DC-6502-4732-A51C-DEB7FEA12975}.Debug|Any CPU.Build.0 = Debug|Any CPU + {809725DC-6502-4732-A51C-DEB7FEA12975}.Release|Any CPU.ActiveCfg = Release|Any CPU + {809725DC-6502-4732-A51C-DEB7FEA12975}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Sources/Video/VideoEvents.cs b/Sources/Video/VideoEvents.cs new file mode 100644 index 00000000..c5729e54 --- /dev/null +++ b/Sources/Video/VideoEvents.cs @@ -0,0 +1,125 @@ +// AForge Video Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2009-2011 +// contacts@aforgenet.com +// + +namespace AForge.Video +{ + using System; + + /// + /// Delegate for new frame event handler. + /// + /// + /// Sender object. + /// Event arguments. + /// + public delegate void NewFrameEventHandler( object sender, NewFrameEventArgs eventArgs ); + + /// + /// Delegate for video source error event handler. + /// + /// + /// Sender object. + /// Event arguments. + /// + public delegate void VideoSourceErrorEventHandler( object sender, VideoSourceErrorEventArgs eventArgs ); + + /// + /// Delegate for playing finished event handler. + /// + /// + /// Sender object. + /// Reason of finishing video playing. + /// + public delegate void PlayingFinishedEventHandler( object sender, ReasonToFinishPlaying reason ); + + /// + /// Reason of finishing video playing. + /// + /// + /// When video source class fire the event, they + /// need to specify reason of finishing video playing. For example, it may be end of stream reached. + /// + public enum ReasonToFinishPlaying + { + /// + /// Video playing has finished because it end was reached. + /// + EndOfStreamReached, + /// + /// Video playing has finished because it was stopped by user. + /// + StoppedByUser, + /// + /// Video playing has finished because the device was lost (unplugged). + /// + DeviceLost, + /// + /// Video playing has finished because of some error happened the video source (camera, stream, file, etc.). + /// A error reporting event usually is fired to provide error information. + /// + VideoSourceError + } + + /// + /// Arguments for new frame event from video source. + /// + /// + public class NewFrameEventArgs : EventArgs + { + private System.Drawing.Bitmap frame; + + /// + /// Initializes a new instance of the class. + /// + /// + /// New frame. + /// + public NewFrameEventArgs( System.Drawing.Bitmap frame ) + { + this.frame = frame; + } + + /// + /// New frame from video source. + /// + /// + public System.Drawing.Bitmap Frame + { + get { return frame; } + } + } + + /// + /// Arguments for video source error event from video source. + /// + /// + public class VideoSourceErrorEventArgs : EventArgs + { + private string description; + + /// + /// Initializes a new instance of the class. + /// + /// + /// Error description. + /// + public VideoSourceErrorEventArgs( string description ) + { + this.description = description; + } + + /// + /// Video source error description. + /// + /// + public string Description + { + get { return description; } + } + } +} diff --git a/Sources/Vision/AForge.Vision.snk b/Sources/Vision/AForge.Vision.snk new file mode 100644 index 00000000..306189e3 Binary files /dev/null and b/Sources/Vision/AForge.Vision.snk differ diff --git a/Sources/Vision/Motion/BlobCountingObjectsProcessing.cs b/Sources/Vision/Motion/BlobCountingObjectsProcessing.cs new file mode 100644 index 00000000..30179b15 --- /dev/null +++ b/Sources/Vision/Motion/BlobCountingObjectsProcessing.cs @@ -0,0 +1,306 @@ +// AForge Vision Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +namespace AForge.Vision.Motion +{ + using System; + using System.Drawing; + using System.Drawing.Imaging; + + using AForge.Imaging; + + /// + /// Motion processing algorithm, which counts separate moving objects and highlights them. + /// + /// + /// The aim of this motion processing algorithm is to count separate objects + /// in the motion frame, which is provided by motion detection algorithm. + /// In the case if property is set to , + /// found objects are also highlighted on the original video frame. The algorithm + /// counts and highlights only those objects, which size satisfies + /// and properties. + /// + /// The motion processing algorithm is supposed to be used only with motion detection + /// algorithms, which are based on finding difference with background frame + /// (see and + /// as simple implementations) and allow extract moving objects clearly. + /// + /// Sample usage: + /// + /// // create instance of motion detection algorithm + /// IMotionDetector motionDetector = new ... ; + /// // create instance of motion processing algorithm + /// BlobCountingObjectsProcessing motionProcessing = new BlobCountingObjectsProcessing( ); + /// // create motion detector + /// MotionDetector detector = new MotionDetector( motionDetector, motionProcessing ); + /// + /// // continuously feed video frames to motion detector + /// while ( ... ) + /// { + /// // process new video frame and check motion level + /// if ( detector.ProcessFrame( videoFrame ) > 0.02 ) + /// { + /// // check number of detected objects + /// if ( motionProcessing.ObjectsCount > 1 ) + /// { + /// // ... + /// } + /// } + /// } + /// + /// + /// + /// + /// + /// + public class BlobCountingObjectsProcessing : IMotionProcessing + { + // blob counter to detect separate blobs + private BlobCounter blobCounter = new BlobCounter( ); + // color used for blobs highlighting + private Color highlightColor = Color.Red; + // highlight motion regions or not + private bool highlightMotionRegions = true; + + /// + /// Highlight motion regions or not. + /// + /// + /// The property specifies if detected moving objects should be highlighted + /// with rectangle or not. + /// + /// Default value is set to . + /// + /// Turning the value on leads to additional processing time of video frame. + /// + /// + public bool HighlightMotionRegions + { + get { return highlightMotionRegions; } + set { highlightMotionRegions = value; } + } + + /// + /// Color used to highlight motion regions. + /// + /// + /// + /// Default value is set to red color. + /// + /// + public Color HighlightColor + { + get { return highlightColor; } + set { highlightColor = value; } + } + + /// + /// Minimum width of acceptable object. + /// + /// + /// The property sets minimum width of an object to count and highlight. If + /// objects have smaller width, they are not counted and are not highlighted. + /// + /// Default value is set to 10. + /// + /// + public int MinObjectsWidth + { + get { return blobCounter.MinWidth; } + set + { + lock ( blobCounter ) + { + blobCounter.MinWidth = value; + } + } + } + + /// + /// Minimum height of acceptable object. + /// + /// + /// The property sets minimum height of an object to count and highlight. If + /// objects have smaller height, they are not counted and are not highlighted. + /// + /// Default value is set to 10. + /// + /// + public int MinObjectsHeight + { + get { return blobCounter.MinHeight; } + set + { + lock ( blobCounter ) + { + blobCounter.MinHeight = value; + } + } + } + + /// + /// Number of detected objects. + /// + /// + /// The property provides number of moving objects detected by + /// the last call of method. + /// + public int ObjectsCount + { + get + { + lock ( blobCounter ) + { + return blobCounter.ObjectsCount; + } + } + } + + /// + /// Rectangles of moving objects. + /// + /// + /// The property provides array of moving objects' rectangles + /// detected by the last call of method. + /// + public Rectangle[] ObjectRectangles + { + get + { + lock ( blobCounter ) + { + return blobCounter.GetObjectsRectangles( ); + } + } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public BlobCountingObjectsProcessing( ) : this( 10, 10 ) { } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Highlight motion regions or not (see property). + /// + public BlobCountingObjectsProcessing( bool highlightMotionRegions ) : this( 10, 10, highlightMotionRegions ) { } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Minimum width of acceptable object (see property). + /// Minimum height of acceptable object (see property). + /// + public BlobCountingObjectsProcessing( int minWidth, int minHeight ) : + this( minWidth, minHeight, Color.Red ) { } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Minimum width of acceptable object (see property). + /// Minimum height of acceptable object (see property). + /// Color used to highlight motion regions. + /// + public BlobCountingObjectsProcessing( int minWidth, int minHeight, Color highlightColor ) + { + blobCounter.FilterBlobs = true; + blobCounter.MinHeight = minHeight; + blobCounter.MinWidth = minWidth; + + this.highlightColor = highlightColor; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Minimum width of acceptable object (see property). + /// Minimum height of acceptable object (see property). + /// Highlight motion regions or not (see property). + /// + public BlobCountingObjectsProcessing( int minWidth, int minHeight, bool highlightMotionRegions ) + : this( minWidth, minHeight ) + { + this.highlightMotionRegions = highlightMotionRegions; + } + + /// + /// Process video and motion frames doing further post processing after + /// performed motion detection. + /// + /// + /// Original video frame. + /// Motion frame provided by motion detection + /// algorithm (see ). + /// + /// Processes provided motion frame and counts number of separate + /// objects, which size satisfies and + /// properties. In the case if property is + /// set to , the found object are also highlighted on the + /// original video frame. + /// + /// + /// Motion frame is not 8 bpp image, but it must be so. + /// Video frame must be 8 bpp grayscale image or 24/32 bpp color image. + /// + public unsafe void ProcessFrame( UnmanagedImage videoFrame, UnmanagedImage motionFrame ) + { + if ( motionFrame.PixelFormat != PixelFormat.Format8bppIndexed ) + { + throw new InvalidImagePropertiesException( "Motion frame must be 8 bpp image." ); + } + + if ( ( videoFrame.PixelFormat != PixelFormat.Format8bppIndexed ) && + ( videoFrame.PixelFormat != PixelFormat.Format24bppRgb ) && + ( videoFrame.PixelFormat != PixelFormat.Format32bppRgb ) && + ( videoFrame.PixelFormat != PixelFormat.Format32bppArgb ) ) + { + throw new UnsupportedImageFormatException( "Video frame must be 8 bpp grayscale image or 24/32 bpp color image." ); + } + + int width = videoFrame.Width; + int height = videoFrame.Height; + + if ( ( motionFrame.Width != width ) || ( motionFrame.Height != height ) ) + return; + + lock ( blobCounter ) + { + blobCounter.ProcessImage( motionFrame ); + } + + if ( highlightMotionRegions ) + { + // highlight each moving object + Rectangle[] rects = blobCounter.GetObjectsRectangles( ); + + foreach ( Rectangle rect in rects ) + { + Drawing.Rectangle( videoFrame, rect, highlightColor ); + } + } + } + + /// + /// Reset internal state of motion processing algorithm. + /// + /// + /// The method allows to reset internal state of motion processing + /// algorithm and prepare it for processing of next video stream or to restart + /// the algorithm. + /// + public void Reset( ) + { + } + } +} diff --git a/Sources/Vision/Motion/CustomFrameDifferenceDetector.cs b/Sources/Vision/Motion/CustomFrameDifferenceDetector.cs new file mode 100644 index 00000000..6a20185c --- /dev/null +++ b/Sources/Vision/Motion/CustomFrameDifferenceDetector.cs @@ -0,0 +1,470 @@ +// AForge Vision Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +namespace AForge.Vision.Motion +{ + using System; + using System.Drawing; + using System.Drawing.Imaging; + + using AForge.Imaging; + using AForge.Imaging.Filters; + + /// + /// Motion detector based on difference with predefined background frame. + /// + /// + /// The class implements motion detection algorithm, which is based on + /// difference of current video frame with predefined background frame. The difference frame + /// is thresholded and the amount of difference pixels is calculated. + /// To suppress stand-alone noisy pixels erosion morphological operator may be applied, which + /// is controlled by property. + /// + /// In the case if precise motion area's borders are required (for example, + /// for further motion post processing), then property + /// may be used to restore borders after noise suppression. + /// + /// In the case if custom background frame is not specified by using + /// method, the algorithm takes first video frame + /// as a background frame and calculates difference of further video frames with it. + /// + /// Unlike motion detection algorithm, this algorithm + /// allows to identify quite clearly all objects, which are not part of the background (scene) - + /// most likely moving objects. + /// + /// Sample usage: + /// + /// // create motion detector + /// MotionDetector detector = new MotionDetector( + /// new CustomFrameDifferenceDetector( ), + /// new MotionAreaHighlighting( ) ); + /// + /// // continuously feed video frames to motion detector + /// while ( ... ) + /// { + /// // process new video frame and check motion level + /// if ( detector.ProcessFrame( videoFrame ) > 0.02 ) + /// { + /// // ring alarm or do somethng else + /// } + /// } + /// + /// + /// + /// + /// + public class CustomFrameDifferenceDetector : IMotionDetector + { + // frame's dimension + private int width; + private int height; + private int frameSize; + + // previous frame of video stream + private UnmanagedImage backgroundFrame; + // current frame of video sream + private UnmanagedImage motionFrame; + // temporary buffer used for suppressing noise + private UnmanagedImage tempFrame; + // number of pixels changed in the new frame of video stream + private int pixelsChanged; + + private bool manuallySetBackgroundFrame = false; + + // suppress noise + private bool suppressNoise = true; + private bool keepObjectEdges = false; + + // threshold values + private int differenceThreshold = 15; + private int differenceThresholdNeg = -15; + + // binary erosion filter + private BinaryErosion3x3 erosionFilter = new BinaryErosion3x3( ); + // binary dilatation filter + private BinaryDilatation3x3 dilatationFilter = new BinaryDilatation3x3( ); + + // dummy object to lock for synchronization + private object sync = new object( ); + + /// + /// Difference threshold value, [1, 255]. + /// + /// + /// The value specifies the amount off difference between pixels, which is treated + /// as motion pixel. + /// + /// Default value is set to 15. + /// + /// + public int DifferenceThreshold + { + get { return differenceThreshold; } + set + { + lock ( sync ) + { + differenceThreshold = Math.Max( 1, Math.Min( 255, value ) ); + differenceThresholdNeg = -differenceThreshold; + } + } + } + + /// + /// Motion level value, [0, 1]. + /// + /// + /// Amount of changes in the last processed frame. For example, if value of + /// this property equals to 0.1, then it means that last processed frame has 10% difference + /// with defined background frame. + /// + /// + public float MotionLevel + { + get + { + lock ( sync ) + { + return (float) pixelsChanged / ( width * height ); + } + } + } + + /// + /// Motion frame containing detected areas of motion. + /// + /// + /// Motion frame is a grayscale image, which shows areas of detected motion. + /// All black pixels in the motion frame correspond to areas, where no motion is + /// detected. But white pixels correspond to areas, where motion is detected. + /// + /// The property is set to after processing of the first + /// video frame by the algorithm in the case if custom background frame was not set manually + /// by using method (it will be not + /// after second call in this case). If correct custom background + /// was set then the property should bet set to estimated motion frame after + /// method call. + /// + /// + public UnmanagedImage MotionFrame + { + get + { + lock ( sync ) + { + return motionFrame; + } + } + } + + /// + /// Suppress noise in video frames or not. + /// + /// + /// The value specifies if additional filtering should be + /// done to suppress standalone noisy pixels by applying 3x3 erosion image processing + /// filter. See property, if it is required to restore + /// edges of objects, which are not noise. + /// + /// Default value is set to . + /// + /// Turning the value on leads to more processing time of video frame. + /// + /// + public bool SuppressNoise + { + get { return suppressNoise; } + set + { + lock ( sync ) + { + suppressNoise = value; + + // allocate temporary frame if required + if ( ( suppressNoise ) && ( tempFrame == null ) && ( motionFrame != null ) ) + { + tempFrame = UnmanagedImage.Create( width, height, PixelFormat.Format8bppIndexed ); + } + + // check if temporary frame is not required + if ( ( !suppressNoise ) && ( tempFrame != null ) ) + { + tempFrame.Dispose( ); + tempFrame = null; + } + } + } + } + + /// + /// Restore objects edges after noise suppression or not. + /// + /// + /// The value specifies if additional filtering should be done + /// to restore objects' edges after noise suppression by applying 3x3 dilatation + /// image processing filter. + /// + /// Default value is set to . + /// + /// Turning the value on leads to more processing time of video frame. + /// + /// + public bool KeepObjectsEdges + { + get { return keepObjectEdges; } + set + { + lock ( sync ) + { + keepObjectEdges = value; + } + } + } + + /// + /// Initializes a new instance of the class. + /// + public CustomFrameDifferenceDetector( ) { } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Suppress noise in video frames or not (see property). + /// + public CustomFrameDifferenceDetector( bool suppressNoise ) + { + this.suppressNoise = suppressNoise; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Suppress noise in video frames or not (see property). + /// Restore objects edges after noise suppression or not (see property). + /// + public CustomFrameDifferenceDetector( bool suppressNoise, bool keepObjectEdges ) + { + this.suppressNoise = suppressNoise; + this.keepObjectEdges = keepObjectEdges; + } + + /// + /// Process new video frame. + /// + /// + /// Video frame to process (detect motion in). + /// + /// Processes new frame from video source and detects motion in it. + /// + /// Check property to get information about amount of motion + /// (changes) in the processed frame. + /// + /// + public unsafe void ProcessFrame( UnmanagedImage videoFrame ) + { + lock ( sync ) + { + // check background frame + if ( backgroundFrame == null ) + { + // save image dimension + width = videoFrame.Width; + height = videoFrame.Height; + + // alocate memory for background frame + backgroundFrame = UnmanagedImage.Create( width, height, PixelFormat.Format8bppIndexed ); + frameSize = backgroundFrame.Stride * height; + + // convert source frame to grayscale + Tools.ConvertToGrayscale( videoFrame, backgroundFrame ); + + return; + } + + // check image dimension + if ( ( videoFrame.Width != width ) || ( videoFrame.Height != height ) ) + return; + + // check motion frame + if ( motionFrame == null ) + { + motionFrame = UnmanagedImage.Create( width, height, PixelFormat.Format8bppIndexed ); + + // temporary buffer + if ( suppressNoise ) + { + tempFrame = UnmanagedImage.Create( width, height, PixelFormat.Format8bppIndexed ); + } + } + + // convert current image to grayscale + Tools.ConvertToGrayscale( videoFrame, motionFrame ); + + // pointers to background and current frames + byte* backFrame; + byte* currFrame; + int diff; + + backFrame = (byte*) backgroundFrame.ImageData.ToPointer( ); + currFrame = (byte*) motionFrame.ImageData.ToPointer( ); + + // 1 - get difference between frames + // 2 - threshold the difference + for ( int i = 0; i < frameSize; i++, backFrame++, currFrame++ ) + { + // difference + diff = (int) *currFrame - (int) *backFrame; + // treshold + *currFrame = ( ( diff >= differenceThreshold ) || ( diff <= differenceThresholdNeg ) ) ? (byte) 255 : (byte) 0; + } + + if ( suppressNoise ) + { + // suppress noise and calculate motion amount + AForge.SystemTools.CopyUnmanagedMemory( tempFrame.ImageData, motionFrame.ImageData, frameSize ); + erosionFilter.Apply( tempFrame, motionFrame ); + + if ( keepObjectEdges ) + { + AForge.SystemTools.CopyUnmanagedMemory( tempFrame.ImageData, motionFrame.ImageData, frameSize ); + dilatationFilter.Apply( tempFrame, motionFrame ); + } + } + + // calculate amount of motion pixels + pixelsChanged = 0; + byte* motion = (byte*) motionFrame.ImageData.ToPointer( ); + + for ( int i = 0; i < frameSize; i++, motion++ ) + { + pixelsChanged += ( *motion & 1 ); + } + } + } + + /// + /// Reset motion detector to initial state. + /// + /// + /// Resets internal state and variables of motion detection algorithm. + /// Usually this is required to be done before processing new video source, but + /// may be also done at any time to restart motion detection algorithm. + /// + /// In the case if custom background frame was set using + /// method, this method does not reset it. + /// The method resets only automatically generated background frame. + /// + /// + /// + public void Reset( ) + { + // clear background frame only in the case it was not set manually + Reset( false ); + } + + // Reset motion detector to initial state + private void Reset( bool force ) + { + lock ( sync ) + { + if ( + ( backgroundFrame != null ) && + ( ( force == true ) || ( manuallySetBackgroundFrame == false ) ) + ) + { + backgroundFrame.Dispose( ); + backgroundFrame = null; + } + + if ( motionFrame != null ) + { + motionFrame.Dispose( ); + motionFrame = null; + } + + if ( tempFrame != null ) + { + tempFrame.Dispose( ); + tempFrame = null; + } + } + } + + /// + /// Set background frame. + /// + /// + /// Background frame to set. + /// + /// The method sets background frame, which will be used to calculate + /// difference with. + /// + public void SetBackgroundFrame( Bitmap backgroundFrame ) + { + BitmapData data = backgroundFrame.LockBits( + new Rectangle( 0, 0, backgroundFrame.Width, backgroundFrame.Height ), + ImageLockMode.ReadOnly, backgroundFrame.PixelFormat ); + + try + { + SetBackgroundFrame( data ); + } + finally + { + backgroundFrame.UnlockBits( data ); + } + } + + /// + /// Set background frame. + /// + /// + /// Background frame to set. + /// + /// The method sets background frame, which will be used to calculate + /// difference with. + /// + public void SetBackgroundFrame( BitmapData backgroundFrame ) + { + SetBackgroundFrame( new UnmanagedImage( backgroundFrame ) ); + } + + /// + /// Set background frame. + /// + /// + /// Background frame to set. + /// + /// The method sets background frame, which will be used to calculate + /// difference with. + /// + public void SetBackgroundFrame( UnmanagedImage backgroundFrame ) + { + // reset motion detection algorithm + Reset( true ); + + lock ( sync ) + { + // save image dimension + width = backgroundFrame.Width; + height = backgroundFrame.Height; + + // alocate memory for previous and current frames + this.backgroundFrame = UnmanagedImage.Create( width, height, PixelFormat.Format8bppIndexed ); + frameSize = this.backgroundFrame.Stride * height; + + // convert source frame to grayscale + Tools.ConvertToGrayscale( backgroundFrame, this.backgroundFrame ); + + manuallySetBackgroundFrame = true; + } + } + } +} diff --git a/Sources/Vision/Motion/GridMotionAreaProcessing.cs b/Sources/Vision/Motion/GridMotionAreaProcessing.cs new file mode 100644 index 00000000..b8118b86 --- /dev/null +++ b/Sources/Vision/Motion/GridMotionAreaProcessing.cs @@ -0,0 +1,394 @@ +// AForge Vision Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +namespace AForge.Vision.Motion +{ + using System; + using System.Drawing; + using System.Drawing.Imaging; + + using AForge.Imaging; + + /// + /// Motion processing algorithm, which performs grid processing of motion frame. + /// + /// + /// The aim of this motion processing algorithm is to do grid processing + /// of motion frame. This means that entire motion frame is divided by a grid into + /// certain amount of cells and the motion level is calculated for each cell. The + /// information about each cell's motion level may be retrieved using + /// property. + /// + /// In addition the algorithm can highlight those cells, which have motion + /// level above the specified threshold (see + /// property). To enable this it is required to set + /// property to . + /// + /// Sample usage: + /// + /// // create instance of motion detection algorithm + /// IMotionDetector motionDetector = new ... ; + /// // create instance of motion processing algorithm + /// GridMotionAreaProcessing motionProcessing = new GridMotionAreaProcessing( 16, 16 ); + /// // create motion detector + /// MotionDetector detector = new MotionDetector( motionDetector, motionProcessing ); + /// + /// // continuously feed video frames to motion detector + /// while ( ... ) + /// { + /// // process new video frame + /// detector.ProcessFrame( videoFrame ); + /// + /// // check motion level in 5th row 8th column + /// if ( motionProcessing.MotionGrid[5, 8] > 0.15 ) + /// { + /// // ... + /// } + /// } + /// + /// + /// + /// + /// + /// + public class GridMotionAreaProcessing : IMotionProcessing + { + // color used for highlighting motion grid + private Color highlightColor = Color.Red; + // highlight motion grid or not + private bool highlightMotionGrid = true; + + private float motionAmountToHighlight = 0.15f; + + private int gridWidth = 16; + private int gridHeight = 16; + + private float[,] motionGrid = null; + + /// + /// Color used to highlight motion regions. + /// + /// + /// + /// Default value is set to red color. + /// + /// + public Color HighlightColor + { + get { return highlightColor; } + set { highlightColor = value; } + } + + /// + /// Highlight motion regions or not. + /// + /// + /// The property specifies if motion grid should be highlighted - + /// if cell, which have motion level above the + /// specified value, should be highlighted. + /// + /// Default value is set to . + /// + /// Turning the value on leads to additional processing time of video frame. + /// + /// + public bool HighlightMotionGrid + { + get { return highlightMotionGrid; } + set { highlightMotionGrid = value; } + } + + /// + /// Motion amount to highlight cell. + /// + /// + /// The property specifies motion level threshold for highlighting grid's + /// cells. If motion level of a certain cell is higher than this value, then the cell + /// is highlighted. + /// + /// Default value is set to 0.15. + /// + /// + public float MotionAmountToHighlight + { + get { return motionAmountToHighlight; } + set { motionAmountToHighlight = value; } + } + + /// + /// Motion levels of each grid's cell. + /// + /// + /// The property represents an array of size + /// x, which keeps motion level + /// of each grid's cell. If certain cell has motion level equal to 0.2, then it + /// means that this cell has 20% of changes. + /// + /// + public float[,] MotionGrid + { + get { return motionGrid; } + } + + /// + /// Width of motion grid, [2, 64]. + /// + /// + /// The property specifies motion grid's width - number of grid' columns. + /// + /// Default value is set to 16. + /// + /// + public int GridWidth + { + get { return gridWidth; } + set + { + gridWidth = Math.Min( 64, Math.Max( 2, value ) ); + motionGrid = new float[gridHeight, gridWidth]; + } + } + + /// + /// Height of motion grid, [2, 64]. + /// + /// + /// The property specifies motion grid's height - number of grid' rows. + /// + /// Default value is set to 16. + /// + /// + public int GridHeight + { + get { return gridHeight; } + set + { + gridHeight = Math.Min( 64, Math.Max( 2, value ) ); + motionGrid = new float[gridHeight, gridWidth]; + } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public GridMotionAreaProcessing( ) : this( 16, 16 ) { } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Width of motion grid (see property). + /// Height of motion grid (see property). + /// + public GridMotionAreaProcessing( int gridWidth, int gridHeight ) : this( gridWidth, gridHeight, true ) { } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Width of motion grid (see property). + /// Height of motion grid (see property). + /// Highlight motion regions or not (see property). + /// + public GridMotionAreaProcessing( int gridWidth, int gridHeight, bool highlightMotionGrid ) + : this( gridWidth, gridHeight, highlightMotionGrid, 0.15f ) { } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Width of motion grid (see property). + /// Height of motion grid (see property). + /// Highlight motion regions or not (see property). + /// Motion amount to highlight cell (see property). + /// + public GridMotionAreaProcessing( int gridWidth, int gridHeight, bool highlightMotionGrid, float motionAmountToHighlight ) + { + this.gridWidth = Math.Min( 64, Math.Max( 2, gridWidth ) ); + this.gridHeight = Math.Min( 64, Math.Max( 2, gridHeight ) ); + + motionGrid = new float[gridHeight, gridWidth]; + + this.highlightMotionGrid = highlightMotionGrid; + this.motionAmountToHighlight = motionAmountToHighlight; + } + + /// + /// Process video and motion frames doing further post processing after + /// performed motion detection. + /// + /// + /// Original video frame. + /// Motion frame provided by motion detection + /// algorithm (see ). + /// + /// Processes provided motion frame and calculates motion level + /// for each grid's cell. In the case if property is + /// set to , the cell with motion level above threshold are + /// highlighted. + /// + /// Motion frame is not 8 bpp image, but it must be so. + /// Video frame must be 8 bpp grayscale image or 24/32 bpp color image. + /// + public unsafe void ProcessFrame( UnmanagedImage videoFrame, UnmanagedImage motionFrame ) + { + if ( motionFrame.PixelFormat != PixelFormat.Format8bppIndexed ) + { + throw new InvalidImagePropertiesException( "Motion frame must be 8 bpp image." ); + } + + if ( ( videoFrame.PixelFormat != PixelFormat.Format8bppIndexed ) && + ( videoFrame.PixelFormat != PixelFormat.Format24bppRgb ) && + ( videoFrame.PixelFormat != PixelFormat.Format32bppRgb ) && + ( videoFrame.PixelFormat != PixelFormat.Format32bppArgb ) ) + { + throw new UnsupportedImageFormatException( "Video frame must be 8 bpp grayscale image or 24/32 bpp color image." ); + } + + int width = videoFrame.Width; + int height = videoFrame.Height; + int pixelSize = Bitmap.GetPixelFormatSize( videoFrame.PixelFormat ) / 8; + + if ( ( motionFrame.Width != width ) || ( motionFrame.Height != height ) ) + return; + + int cellWidth = width / gridWidth; + int cellHeight = height / gridHeight; + + // temporary variables + int xCell, yCell; + + // process motion frame calculating amount of changed pixels + // in each grid's cell + byte* motion = (byte*) motionFrame.ImageData.ToPointer( ); + int motionOffset = motionFrame.Stride - width; + + for ( int y = 0; y < height; y++ ) + { + // get current grid's row + yCell = y / cellHeight; + // correct row number if image was not divided by grid equally + if ( yCell >= gridHeight ) + yCell = gridHeight - 1; + + for ( int x = 0; x < width; x++, motion++ ) + { + if ( *motion != 0 ) + { + // get current grid's collumn + xCell = x / cellWidth; + // correct column number if image was not divided by grid equally + if ( xCell >= gridWidth ) + xCell = gridWidth - 1; + + motionGrid[yCell, xCell]++; + } + } + motion += motionOffset; + } + + // update motion grid converting absolute number of changed + // pixel to relative for each cell + int gridHeightM1 = gridHeight - 1; + int gridWidthM1 = gridWidth - 1; + + int lastRowHeight = height - cellHeight * gridHeightM1; + int lastColumnWidth = width - cellWidth * gridWidthM1; + + for ( int y = 0; y < gridHeight; y++ ) + { + int ch = ( y != gridHeightM1 ) ? cellHeight : lastRowHeight; + + for ( int x = 0; x < gridWidth; x++ ) + { + int cw = ( x != gridWidthM1 ) ? cellWidth : lastColumnWidth; + + motionGrid[y, x] /= ( cw * ch ); + } + } + + if ( highlightMotionGrid ) + { + // highlight motion grid - cells, which have enough motion + + byte* src = (byte*) videoFrame.ImageData.ToPointer( ); + int srcOffset = videoFrame.Stride - width * pixelSize; + + if ( pixelSize == 1 ) + { + // grayscale case + byte fillG = (byte) ( 0.2125 * highlightColor.R + + 0.7154 * highlightColor.G + + 0.0721 * highlightColor.B ); + + for ( int y = 0; y < height; y++ ) + { + yCell = y / cellHeight; + if ( yCell >= gridHeight ) + yCell = gridHeight - 1; + + for ( int x = 0; x < width; x++, src++ ) + { + xCell = x / cellWidth; + if ( xCell >= gridWidth ) + xCell = gridWidth - 1; + + if ( ( motionGrid[yCell, xCell] > motionAmountToHighlight ) && ( ( ( x + y ) & 1 ) == 0 ) ) + { + *src = fillG; + } + } + src += srcOffset; + } + } + else + { + // color case + byte fillR = highlightColor.R; + byte fillG = highlightColor.G; + byte fillB = highlightColor.B; + + for ( int y = 0; y < height; y++ ) + { + yCell = y / cellHeight; + if ( yCell >= gridHeight ) + yCell = gridHeight - 1; + + for ( int x = 0; x < width; x++, src += pixelSize ) + { + xCell = x / cellWidth; + if ( xCell >= gridWidth ) + xCell = gridWidth - 1; + + if ( ( motionGrid[yCell, xCell] > motionAmountToHighlight ) && ( ( ( x + y ) & 1 ) == 0 ) ) + { + src[RGB.R] = fillR; + src[RGB.G] = fillG; + src[RGB.B] = fillB; + } + } + src += srcOffset; + } + } + } + } + + /// + /// Reset internal state of motion processing algorithm. + /// + /// + /// The method allows to reset internal state of motion processing + /// algorithm and prepare it for processing of next video stream or to restart + /// the algorithm. + /// + public void Reset( ) + { + } + } +} diff --git a/Sources/Vision/Motion/IMotionDetector.cs b/Sources/Vision/Motion/IMotionDetector.cs new file mode 100644 index 00000000..0aae86ce --- /dev/null +++ b/Sources/Vision/Motion/IMotionDetector.cs @@ -0,0 +1,75 @@ +// AForge Vision Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2005-2009 +// andrew.kirillov@aforgenet.com +// + +namespace AForge.Vision.Motion +{ + using System; + using AForge.Imaging; + + /// + /// Interface of motion detector algorithm. + /// + /// + /// The interface specifies methods, which should be implemented + /// by all motion detection algorithms - algorithms which perform processing of video + /// frames in order to detect motion. Amount of detected motion may be checked using + /// property. Also property may + /// be used in order to see all the detected motion areas. For example, the property + /// is used by motion processing algorithms for further motion post processing, like + /// highlighting motion areas, counting number of detected moving object, etc. + /// + /// + /// + /// + /// + /// + public interface IMotionDetector + { + /// + /// Motion level value, [0, 1]. + /// + /// + /// Amount of changes in the last processed frame. For example, if value of + /// this property equals to 0.1, then it means that last processed frame has 10% of changes + /// (however it is up to specific implementation to decide how to compare specified frame). + /// + /// + float MotionLevel { get; } + + /// + /// Motion frame containing detected areas of motion. + /// + /// + /// Motion frame is a grayscale image, which shows areas of detected motion. + /// All black pixels in the motion frame correspond to areas, where no motion is + /// detected. But white pixels correspond to areas, where motion is detected. + /// + UnmanagedImage MotionFrame { get; } + + /// + /// Process new video frame. + /// + /// + /// Video frame to process (detect motion in). + /// + /// Processes new frame from video source and detects motion in it. + /// + void ProcessFrame( UnmanagedImage videoFrame ); + + /// + /// Reset motion detector to initial state. + /// + /// + /// Resets internal state and variables of motion detection algorithm. + /// Usually this is required to be done before processing new video source, but + /// may be also done at any time to restart motion detection algorithm. + /// + /// + void Reset( ); + } +} diff --git a/Sources/Vision/Motion/IMotionProcessing.cs b/Sources/Vision/Motion/IMotionProcessing.cs new file mode 100644 index 00000000..88f4b2c3 --- /dev/null +++ b/Sources/Vision/Motion/IMotionProcessing.cs @@ -0,0 +1,59 @@ +// AForge Vision Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2005-2009 +// andrew.kirillov@aforgenet.com +// + +namespace AForge.Vision.Motion +{ + using System; + using AForge.Imaging; + + /// + /// Interface of motion processing algorithm. + /// + /// + /// The interface specifies methods, which should be implemented + /// by all motion processng algorithms - algorithm which perform further post processing + /// of detected motion, which is done by motion detection algorithms (see ). + /// + /// + /// + /// + /// + public interface IMotionProcessing + { + /// + /// Process video and motion frames doing further post processing after + /// performed motion detection. + /// + /// + /// Original video frame. + /// Motion frame provided by motion detection + /// algorithm (see ). + /// + /// The method does father post processing of detected motion. + /// Type of motion post processing is specified by specific implementation + /// of the interface - it may motion + /// area highlighting, motion objects counting, etc. + /// + void ProcessFrame( UnmanagedImage videoFrame, UnmanagedImage motionFrame ); + + /// + /// Reset internal state of motion processing algorithm. + /// + /// + /// The method allows to reset internal state of motion processing + /// algorithm and prepare it for processing of next video stream or to restart + /// the algorithm. + /// + /// Some motion processing algorithms may not have any stored internal + /// states and may just process provided video frames without relying on any motion + /// history etc. In this case such algorithms provide empty implementation of this method. + /// + /// + void Reset( ); + } +} diff --git a/Sources/Vision/Motion/MotionAreaHighlighting.cs b/Sources/Vision/Motion/MotionAreaHighlighting.cs new file mode 100644 index 00000000..6bd43d86 --- /dev/null +++ b/Sources/Vision/Motion/MotionAreaHighlighting.cs @@ -0,0 +1,179 @@ +// AForge Vision Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +namespace AForge.Vision.Motion +{ + using System; + using System.Drawing; + using System.Drawing.Imaging; + + using AForge.Imaging; + + /// + /// Motion processing algorithm, which highlights motion areas. + /// + /// + /// The aim of this motion processing algorithm is to highlight + /// motion areas with grid pattern of the specified color. + /// + /// + /// Sample usage: + /// + /// // create motion detector + /// MotionDetector detector = new MotionDetector( + /// /* motion detection algorithm */, + /// new MotionAreaHighlighting( ) ); + /// + /// // continuously feed video frames to motion detector + /// while ( ... ) + /// { + /// // process new video frame + /// detector.ProcessFrame( videoFrame ); + /// } + /// + /// + /// + /// + /// + /// + public class MotionAreaHighlighting : IMotionProcessing + { + private Color highlightColor = Color.Red; + + /// + /// Color used to highlight motion regions. + /// + /// + /// + /// Default value is set to red color. + /// + /// + public Color HighlightColor + { + get { return highlightColor; } + set { highlightColor = value; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public MotionAreaHighlighting( ) { } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Color used to highlight motion regions. + /// + public MotionAreaHighlighting( Color highlightColor ) + { + this.highlightColor = highlightColor; + } + + /// + /// Process video and motion frames doing further post processing after + /// performed motion detection. + /// + /// + /// Original video frame. + /// Motion frame provided by motion detection + /// algorithm (see ). + /// + /// Processes provided motion frame and highlights motion areas + /// on the original video frame with specified color. + /// + /// + /// Motion frame is not 8 bpp image, but it must be so. + /// Video frame must be 8 bpp grayscale image or 24/32 bpp color image. + /// + public unsafe void ProcessFrame( UnmanagedImage videoFrame, UnmanagedImage motionFrame ) + { + if ( motionFrame.PixelFormat != PixelFormat.Format8bppIndexed ) + { + throw new InvalidImagePropertiesException( "Motion frame must be 8 bpp image." ); + } + + if ( ( videoFrame.PixelFormat != PixelFormat.Format8bppIndexed ) && + ( videoFrame.PixelFormat != PixelFormat.Format24bppRgb ) && + ( videoFrame.PixelFormat != PixelFormat.Format32bppRgb ) && + ( videoFrame.PixelFormat != PixelFormat.Format32bppArgb ) ) + { + throw new UnsupportedImageFormatException( "Video frame must be 8 bpp grayscale image or 24/32 bpp color image." ); + } + + int width = videoFrame.Width; + int height = videoFrame.Height; + int pixelSize = Bitmap.GetPixelFormatSize( videoFrame.PixelFormat ) / 8; + + if ( ( motionFrame.Width != width ) || ( motionFrame.Height != height ) ) + return; + + byte* src = (byte*) videoFrame.ImageData.ToPointer( ); + byte* motion = (byte*) motionFrame.ImageData.ToPointer( ); + + int srcOffset = videoFrame.Stride - width * pixelSize; + int motionOffset = motionFrame.Stride - width; + + if ( pixelSize == 1 ) + { + // grayscale case + byte fillG = (byte) ( 0.2125 * highlightColor.R + + 0.7154 * highlightColor.G + + 0.0721 * highlightColor.B ); + + for ( int y = 0; y < height; y++ ) + { + for ( int x = 0; x < width; x++, motion++, src++ ) + { + if ( ( *motion != 0 ) && ( ( ( x + y ) & 1 ) == 0 ) ) + { + *src = fillG; + } + } + src += srcOffset; + motion += motionOffset; + } + } + else + { + // color case + byte fillR = highlightColor.R; + byte fillG = highlightColor.G; + byte fillB = highlightColor.B; + + for ( int y = 0; y < height; y++ ) + { + for ( int x = 0; x < width; x++, motion++, src += pixelSize ) + { + if ( ( *motion != 0 ) && ( ( ( x + y ) & 1 ) == 0 ) ) + { + src[RGB.R] = fillR; + src[RGB.G] = fillG; + src[RGB.B] = fillB; + } + } + src += srcOffset; + motion += motionOffset; + } + } + } + + /// + /// Reset internal state of motion processing algorithm. + /// + /// + /// The method allows to reset internal state of motion processing + /// algorithm and prepare it for processing of next video stream or to restart + /// the algorithm. + /// + public void Reset( ) + { + } + } +} diff --git a/Sources/Vision/Motion/MotionBorderHighlighting.cs b/Sources/Vision/Motion/MotionBorderHighlighting.cs new file mode 100644 index 00000000..0942a34d --- /dev/null +++ b/Sources/Vision/Motion/MotionBorderHighlighting.cs @@ -0,0 +1,193 @@ +// AForge Vision Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +namespace AForge.Vision.Motion +{ + using System; + using System.Drawing; + using System.Drawing.Imaging; + + using AForge.Imaging; + + /// + /// Motion processing algorithm, which highlights border of motion areas. + /// + /// + /// The aim of this motion processing algorithm is to highlight + /// borders of motion areas with the specified color. + /// + /// + /// The motion processing algorithm is supposed to be used only with motion detection + /// algorithms, which are based on finding difference with background frame + /// (see and + /// as simple implementations) and allow extract moving objects clearly. + /// + /// Sample usage: + /// + /// // create motion detector + /// MotionDetector detector = new MotionDetector( + /// /* motion detection algorithm */, + /// new MotionBorderHighlighting( ) ); + /// + /// // continuously feed video frames to motion detector + /// while ( ... ) + /// { + /// // process new video frame + /// detector.ProcessFrame( videoFrame ); + /// } + /// + /// + /// + /// + /// + /// + public class MotionBorderHighlighting : IMotionProcessing + { + private Color highlightColor = Color.Red; + + /// + /// Color used to highlight motion regions. + /// + /// + /// + /// Default value is set to red color. + /// + /// + public Color HighlightColor + { + get { return highlightColor; } + set { highlightColor = value; } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public MotionBorderHighlighting( ) { } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Color used to highlight motion regions. + /// + public MotionBorderHighlighting( Color highlightColor ) + { + this.highlightColor = highlightColor; + } + + /// + /// Process video and motion frames doing further post processing after + /// performed motion detection. + /// + /// + /// Original video frame. + /// Motion frame provided by motion detection + /// algorithm (see ). + /// + /// Processes provided motion frame and highlights borders of motion areas + /// on the original video frame with specified color. + /// + /// + /// Motion frame is not 8 bpp image, but it must be so. + /// Video frame must be 8 bpp grayscale image or 24/32 bpp color image. + /// + public unsafe void ProcessFrame( UnmanagedImage videoFrame, UnmanagedImage motionFrame ) + { + if ( motionFrame.PixelFormat != PixelFormat.Format8bppIndexed ) + { + throw new InvalidImagePropertiesException( "Motion frame must be 8 bpp image." ); + } + + if ( ( videoFrame.PixelFormat != PixelFormat.Format8bppIndexed ) && + ( videoFrame.PixelFormat != PixelFormat.Format24bppRgb ) && + ( videoFrame.PixelFormat != PixelFormat.Format32bppRgb ) && + ( videoFrame.PixelFormat != PixelFormat.Format32bppArgb ) ) + { + throw new UnsupportedImageFormatException( "Video frame must be 8 bpp grayscale image or 24/32 bpp color image." ); + } + + int width = videoFrame.Width; + int height = videoFrame.Height; + int pixelSize = Bitmap.GetPixelFormatSize( videoFrame.PixelFormat ) / 8; + + if ( ( motionFrame.Width != width ) || ( motionFrame.Height != height ) ) + return; + + byte* src = (byte*) videoFrame.ImageData.ToPointer( ); + byte* motion = (byte*) motionFrame.ImageData.ToPointer( ); + + int srcOffset = videoFrame.Stride - ( width - 2 ) * pixelSize; + int motionOffset = motionFrame.Stride - ( width - 2 ); + + src += videoFrame.Stride + pixelSize; + motion += motionFrame.Stride + 1; + + int widthM1 = width - 1; + int heightM1 = height - 1; + + // use simple edge detector + if ( pixelSize == 1 ) + { + // grayscale case + byte fillG = (byte) ( 0.2125 * highlightColor.R + + 0.7154 * highlightColor.G + + 0.0721 * highlightColor.B ); + + for ( int y = 1; y < heightM1; y++ ) + { + for ( int x = 1; x < widthM1; x++, motion++, src++ ) + { + if ( 4 * *motion - motion[-width] - motion[width] - motion[1] - motion[-1] != 0 ) + { + *src = fillG; + } + } + + motion += motionOffset; + src += srcOffset; + } + } + else + { + // color case + byte fillR = highlightColor.R; + byte fillG = highlightColor.G; + byte fillB = highlightColor.B; + + for ( int y = 1; y < heightM1; y++ ) + { + for ( int x = 1; x < widthM1; x++, motion++, src += pixelSize ) + { + if ( 4 * *motion - motion[-width] - motion[width] - motion[1] - motion[-1] != 0 ) + { + src[RGB.R] = fillR; + src[RGB.G] = fillG; + src[RGB.B] = fillB; + } + } + + motion += motionOffset; + src += srcOffset; + } + } + } + + /// + /// Reset internal state of motion processing algorithm. + /// + /// + /// The method allows to reset internal state of motion processing + /// algorithm and prepare it for processing of next video stream or to restart + /// the algorithm. + /// + public void Reset( ) + { + } + } +} diff --git a/Sources/Vision/Motion/MotionDetector.cs b/Sources/Vision/Motion/MotionDetector.cs new file mode 100644 index 00000000..b62862a3 --- /dev/null +++ b/Sources/Vision/Motion/MotionDetector.cs @@ -0,0 +1,357 @@ +// AForge Vision Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +namespace AForge.Vision.Motion +{ + using System; + using System.Drawing; + using System.Drawing.Imaging; + + using AForge.Imaging; + + /// + /// Motion detection wrapper class, which performs motion detection and processing. + /// + /// + /// The class serves as a wrapper class for + /// motion detection and + /// motion processing algorithms, allowing to call them with + /// single call. Unlike motion detection and motion processing interfaces, the class also + /// provides additional methods for convenience, so the algorithms could be applied not + /// only to , but to .NET's class + /// as well. + /// + /// In addition to wrapping of motion detection and processing algorthms, the class provides + /// some additional functionality. Using property it is possible to specify + /// set of rectangular zones to observe - only motion in these zones is counted and post procesed. + /// + /// Sample usage: + /// + /// // create motion detector + /// MotionDetector detector = new MotionDetector( + /// new SimpleBackgroundModelingDetector( ), + /// new MotionAreaHighlighting( ) ); + /// + /// // continuously feed video frames to motion detector + /// while ( ... ) + /// { + /// // process new video frame and check motion level + /// if ( detector.ProcessFrame( videoFrame ) > 0.02 ) + /// { + /// // ring alarm or do somethng else + /// } + /// } + /// + /// + /// + public class MotionDetector + { + private IMotionDetector detector; + private IMotionProcessing processor; + + // motion detectoin zones + private Rectangle[] motionZones = null; + // image of motion zones + private UnmanagedImage zonesFrame; + // size of video frame + private int videoWidth, videoHeight; + + // dummy object to lock for synchronization + private object sync = new object( ); + + /// + /// Motion detection algorithm to apply to each video frame. + /// + /// + /// The property sets motion detection algorithm, which is used by + /// method in order to calculate + /// motion level and + /// motion frame. + /// + /// + public IMotionDetector MotionDetectionAlgorithm + { + get { return detector; } + set + { + lock ( sync ) + { + detector = value; + } + } + } + + /// + /// Motion processing algorithm to apply to each video frame after + /// motion detection is done. + /// + /// + /// The property sets motion processing algorithm, which is used by + /// method after motion detection in order to do further + /// post processing of motion frames. The aim of further post processing depends on + /// actual implementation of the specified motion processing algorithm - it can be + /// highlighting of motion area, objects counting, etc. + /// + /// + public IMotionProcessing MotionProcessingAlgorithm + { + get { return processor; } + set + { + lock ( sync ) + { + processor = value; + } + } + } + + /// + /// Set of zones to detect motion in. + /// + /// + /// The property keeps array of rectangular zones, which are observed for motion detection. + /// Motion outside of these zones is ignored. + /// + /// In the case if this property is set, the method + /// will filter out all motion witch was detected by motion detection algorithm, but is not + /// located in the specified zones. + /// + /// + public Rectangle[] MotionZones + { + get { return motionZones; } + set + { + motionZones = value; + CreateMotionZonesFrame( ); + } + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Motion detection algorithm to apply to each video frame. + /// + public MotionDetector( IMotionDetector detector ) : this( detector, null ) { } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Motion detection algorithm to apply to each video frame. + /// Motion processing algorithm to apply to each video frame after + /// motion detection is done. + /// + public MotionDetector( IMotionDetector detector, IMotionProcessing processor ) + { + this.detector = detector; + this.processor = processor; + } + + /// + /// Process new video frame. + /// + /// + /// Video frame to process (detect motion in). + /// + /// Returns amount of motion, which is provided + /// property of the motion detection algorithm in use. + /// + /// See for additional details. + /// + /// + public float ProcessFrame( Bitmap videoFrame ) + { + float motionLevel = 0; + + BitmapData videoData = videoFrame.LockBits( + new Rectangle( 0, 0, videoFrame.Width, videoFrame.Height ), + ImageLockMode.ReadWrite, videoFrame.PixelFormat ); + + try + { + motionLevel = ProcessFrame( new UnmanagedImage( videoData ) ); + } + finally + { + videoFrame.UnlockBits( videoData ); + } + + return motionLevel; + } + + /// + /// Process new video frame. + /// + /// + /// Video frame to process (detect motion in). + /// + /// Returns amount of motion, which is provided + /// property of the motion detection algorithm in use. + /// + /// See for additional details. + /// + /// + public float ProcessFrame( BitmapData videoFrame ) + { + return ProcessFrame( new UnmanagedImage( videoFrame ) ); + } + + /// + /// Process new video frame. + /// + /// + /// Video frame to process (detect motion in). + /// + /// Returns amount of motion, which is provided + /// property of the motion detection algorithm in use. + /// + /// The method first of all applies motion detection algorithm to the specified video + /// frame to calculate motion level and + /// motion frame. After this it applies motion processing algorithm + /// (if it was set) to do further post processing, like highlighting motion areas, counting moving + /// objects, etc. + /// + /// In the case if property is set, this method will perform + /// motion filtering right after motion algorithm is done and before passing motion frame to motion + /// processing algorithm. The method does filtering right on the motion frame, which is produced + /// by motion detection algorithm. At the same time the method recalculates motion level and returns + /// new value, which takes motion zones into account (but the new value is not set back to motion detection + /// algorithm' property). + /// + /// + /// + public float ProcessFrame( UnmanagedImage videoFrame ) + { + lock ( sync ) + { + if ( detector == null ) + return 0; + + videoWidth = videoFrame.Width; + videoHeight = videoFrame.Height; + + float motionLevel = 0; + // call motion detection + detector.ProcessFrame( videoFrame ); + motionLevel = detector.MotionLevel; + + // check if motion zones are specified + if ( motionZones != null ) + { + if ( zonesFrame == null ) + { + CreateMotionZonesFrame( ); + } + + if ( ( videoWidth == zonesFrame.Width ) && ( videoHeight == zonesFrame.Height ) ) + { + unsafe + { + // pointers to background and current frames + byte* zonesPtr = (byte*) zonesFrame.ImageData.ToPointer( ); + byte* motionPtr = (byte*) detector.MotionFrame.ImageData.ToPointer( ); + + motionLevel = 0; + + for ( int i = 0, frameSize = zonesFrame.Stride * videoHeight; i < frameSize; i++, zonesPtr++, motionPtr++ ) + { + *motionPtr &= *zonesPtr; + motionLevel += ( *motionPtr & 1 ); + } + motionLevel /= ( videoWidth * videoHeight ); + } + } + } + + // call motion post processing + if ( ( processor != null ) && ( detector.MotionFrame != null ) ) + { + processor.ProcessFrame( videoFrame, detector.MotionFrame ); + } + + return motionLevel; + } + } + + /// + /// Reset motion detector to initial state. + /// + /// + /// The method resets motion detection and motion processing algotithms by calling + /// their and methods. + /// + /// + public void Reset( ) + { + lock ( sync ) + { + if ( detector != null ) + { + detector.Reset( ); + } + if ( processor != null ) + { + processor.Reset( ); + } + + videoWidth = 0; + videoHeight = 0; + + if ( zonesFrame != null ) + { + zonesFrame.Dispose( ); + zonesFrame = null; + } + } + } + + // Create motion zones' image + private unsafe void CreateMotionZonesFrame( ) + { + lock ( sync ) + { + // free previous motion zones frame + if ( zonesFrame != null ) + { + zonesFrame.Dispose( ); + zonesFrame = null; + } + + // create motion zones frame only in the case if the algorithm has processed at least one frame + if ( ( motionZones != null ) && ( motionZones.Length != 0 ) && ( videoWidth != 0 ) ) + { + zonesFrame = UnmanagedImage.Create( videoWidth, videoHeight, PixelFormat.Format8bppIndexed ); + + Rectangle imageRect = new Rectangle( 0, 0, videoWidth, videoHeight ); + + // draw all motion zones on motion frame + foreach ( Rectangle rect in motionZones ) + { + rect.Intersect( imageRect ); + + // rectangle's dimenstion + int rectWidth = rect.Width; + int rectHeight = rect.Height; + + // start pointer + int stride = zonesFrame.Stride; + byte* ptr = (byte*) zonesFrame.ImageData.ToPointer( ) + rect.Y * stride + rect.X; + + for ( int y = 0; y < rectHeight; y++ ) + { + AForge.SystemTools.SetUnmanagedMemory( ptr, 255, rectWidth ); + ptr += stride; + } + } + } + } + } + } +} diff --git a/Sources/Vision/Motion/SimpleBackgroundModelingDetector.cs b/Sources/Vision/Motion/SimpleBackgroundModelingDetector.cs new file mode 100644 index 00000000..868b4e4d --- /dev/null +++ b/Sources/Vision/Motion/SimpleBackgroundModelingDetector.cs @@ -0,0 +1,525 @@ +// AForge Vision Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +namespace AForge.Vision.Motion +{ + using System; + using System.Drawing.Imaging; + + using AForge.Imaging; + using AForge.Imaging.Filters; + + /// + /// Motion detector based on simple background modeling. + /// + /// + /// The class implements motion detection algorithm, which is based on + /// difference of current video frame with modeled background frame. + /// The difference frame is thresholded and the + /// amount of difference pixels is calculated. + /// To suppress stand-alone noisy pixels erosion morphological operator may be applied, which + /// is controlled by property. + /// + /// In the case if precise motion area's borders are required (for example, + /// for further motion post processing), then property + /// may be used to restore borders after noise suppression. + /// + /// As the first approximation of background frame, the first frame of video stream is taken. + /// During further video processing the background frame is constantly updated, so it + /// changes in the direction to decrease difference with current video frame (the background + /// frame is moved towards current frame). See + /// properties, which control the rate of + /// background frame update. + /// + /// Unlike motion detection algorithm, this algorithm + /// allows to identify quite clearly all objects, which are not part of the background (scene) - + /// most likely moving objects. And unlike motion + /// detection algorithm, this algorithm includes background adaptation feature, which allows it + /// to update its modeled background frame in order to take scene changes into account. + /// + /// Because of the adaptation feature of the algorithm, it may adopt + /// to background changes, what algorithm can not do. + /// However, if moving object stays on the scene for a while (so algorithm adopts to it and does + /// not treat it as a new moving object any more) and then starts to move again, the algorithm may + /// find two moving objects - the true one, which is really moving, and the false one, which does not (the + /// place, where the object stayed for a while). + /// + /// The algorithm is not applicable to such cases, when moving object resides + /// in camera's view most of the time (laptops camera monitoring a person sitting in front of it, + /// for example). The algorithm is mostly supposed for cases, when camera monitors some sort + /// of static scene, where moving objects appear from time to time - street, road, corridor, etc. + /// + /// + /// Sample usage: + /// + /// // create motion detector + /// MotionDetector detector = new MotionDetector( + /// new SimpleBackgroundModelingDetector( ), + /// new MotionAreaHighlighting( ) ); + /// + /// // continuously feed video frames to motion detector + /// while ( ... ) + /// { + /// // process new video frame and check motion level + /// if ( detector.ProcessFrame( videoFrame ) > 0.02 ) + /// { + /// // ring alarm or do somethng else + /// } + /// } + /// + /// + /// + /// + /// + public class SimpleBackgroundModelingDetector : IMotionDetector + { + // frame's dimension + private int width; + private int height; + private int frameSize; + + // previous frame of video stream + private UnmanagedImage backgroundFrame; + // current frame of video sream + private UnmanagedImage motionFrame; + // temporary buffer used for suppressing noise + private UnmanagedImage tempFrame; + // number of pixels changed in the new frame of video stream + private int pixelsChanged; + + // suppress noise + private bool suppressNoise = true; + private bool keepObjectEdges = false; + + // threshold values + private int differenceThreshold = 15; + private int differenceThresholdNeg = -15; + + private int framesPerBackgroundUpdate = 2; + private int framesCounter = 0; + + private int millisecondsPerBackgroundUpdate = 0; + private int millisecondsLeftUnprocessed = 0; + private DateTime lastTimeMeasurment; + + // binary erosion filter + private BinaryErosion3x3 erosionFilter = new BinaryErosion3x3( ); + // binary dilatation filter + private BinaryDilatation3x3 dilatationFilter = new BinaryDilatation3x3( ); + + // dummy object to lock for synchronization + private object sync = new object( ); + + /// + /// Difference threshold value, [1, 255]. + /// + /// + /// The value specifies the amount off difference between pixels, which is treated + /// as motion pixel. + /// + /// Default value is set to 15. + /// + /// + public int DifferenceThreshold + { + get { return differenceThreshold; } + set + { + lock ( sync ) + { + differenceThreshold = Math.Max( 1, Math.Min( 255, value ) ); + differenceThresholdNeg = -differenceThreshold; + } + } + } + + /// + /// Motion level value, [0, 1]. + /// + /// + /// Amount of changes in the last processed frame. For example, if value of + /// this property equals to 0.1, then it means that last processed frame has 10% difference + /// with modeled background frame. + /// + /// + public float MotionLevel + { + get + { + lock ( sync ) + { + return (float) pixelsChanged / ( width * height ); + } + } + } + + /// + /// Motion frame containing detected areas of motion. + /// + /// + /// Motion frame is a grayscale image, which shows areas of detected motion. + /// All black pixels in the motion frame correspond to areas, where no motion is + /// detected. But white pixels correspond to areas, where motion is detected. + /// + /// The property is set to after processing of the first + /// video frame by the algorithm. + /// + /// + public UnmanagedImage MotionFrame + { + get + { + lock ( sync ) + { + return motionFrame; + } + } + } + + /// + /// Suppress noise in video frames or not. + /// + /// + /// The value specifies if additional filtering should be + /// done to suppress standalone noisy pixels by applying 3x3 erosion image processing + /// filter. See property, if it is required to restore + /// edges of objects, which are not noise. + /// + /// Default value is set to . + /// + /// Turning the value on leads to more processing time of video frame. + /// + /// + public bool SuppressNoise + { + get { return suppressNoise; } + set + { + lock ( sync ) + { + suppressNoise = value; + + // allocate temporary frame if required + if ( ( suppressNoise ) && ( tempFrame == null ) && ( motionFrame != null ) ) + { + tempFrame = UnmanagedImage.Create( width, height, PixelFormat.Format8bppIndexed ); + } + + // check if temporary frame is not required + if ( ( !suppressNoise ) && ( tempFrame != null ) ) + { + tempFrame.Dispose( ); + tempFrame = null; + } + } + } + } + + /// + /// Restore objects edges after noise suppression or not. + /// + /// + /// The value specifies if additional filtering should be done + /// to restore objects' edges after noise suppression by applying 3x3 dilatation + /// image processing filter. + /// + /// Default value is set to . + /// + /// Turning the value on leads to more processing time of video frame. + /// + /// + public bool KeepObjectsEdges + { + get { return keepObjectEdges; } + set + { + lock ( sync ) + { + keepObjectEdges = value; + } + } + } + + /// + /// Frames per background update, [1, 50]. + /// + /// + /// The value controls the speed of modeled background adaptation to + /// scene changes. After each specified amount of frames the background frame is updated + /// in the direction to decrease difference with current processing frame. + /// + /// Default value is set to 2. + /// + /// The property has effect only in the case if + /// property is set to 0. Otherwise it does not have effect and background + /// update is managed according to the + /// property settings. + /// + /// + public int FramesPerBackgroundUpdate + { + get { return framesPerBackgroundUpdate; } + set { framesPerBackgroundUpdate = Math.Max( 1, Math.Min( 50, value ) ); } + } + + /// + /// Milliseconds per background update, [0, 5000]. + /// + /// + /// The value represents alternate way of controlling the speed of modeled + /// background adaptation to scene changes. The value sets number of milliseconds, which + /// should elapse between two consequent video frames to result in background update + /// for one intensity level. For example, if this value is set to 100 milliseconds and + /// the amount of time elapsed between two last video frames equals to 350, then background + /// frame will be update for 3 intensity levels in the direction to decrease difference + /// with current video frame (the remained 50 milliseconds will be added to time difference + /// between two next consequent frames, so the accuracy is preserved). + /// + /// Unlike background update method controlled using + /// method, the method guided by this property is not affected by changes + /// in frame rates. If, for some reasons, a video source starts to provide delays between + /// frames (frame rate drops down), the amount of background update still stays consistent. + /// When background update is controlled by this property, it is always possible to estimate + /// amount of time required to change, for example, absolutely black background (0 intensity + /// values) into absolutely white background (255 intensity values). If value of this + /// property is set to 100, then it will take approximately 25.5 seconds for such update + /// regardless of frame rate. + /// + /// Background update controlled by this property is slightly slower then + /// background update controlled by property, + /// so it has a bit greater impact on performance. + /// + /// If this property is set to 0, then corresponding background updating + /// method is not used (turned off), but background update guided by + /// property is used. + /// + /// Default value is set to 0. + /// + /// + public int MillisecondsPerBackgroundUpdate + { + get { return millisecondsPerBackgroundUpdate; } + set { millisecondsPerBackgroundUpdate = Math.Max( 0, Math.Min( 5000, value ) ); } + } + + /// + /// Initializes a new instance of the class. + /// + public SimpleBackgroundModelingDetector( ) { } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Suppress noise in video frames or not (see property). + /// + public SimpleBackgroundModelingDetector( bool suppressNoise ) + { + this.suppressNoise = suppressNoise; + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Suppress noise in video frames or not (see property). + /// Restore objects edges after noise suppression or not (see property). + /// + public SimpleBackgroundModelingDetector( bool suppressNoise, bool keepObjectEdges ) + { + this.suppressNoise = suppressNoise; + this.keepObjectEdges = keepObjectEdges; + } + + /// + /// Process new video frame. + /// + /// + /// Video frame to process (detect motion in). + /// + /// Processes new frame from video source and detects motion in it. + /// + /// Check property to get information about amount of motion + /// (changes) in the processed frame. + /// + /// + public unsafe void ProcessFrame( UnmanagedImage videoFrame ) + { + lock ( sync ) + { + // check background frame + if ( backgroundFrame == null ) + { + lastTimeMeasurment = DateTime.Now; + + // save image dimension + width = videoFrame.Width; + height = videoFrame.Height; + + // alocate memory for previous and current frames + backgroundFrame = UnmanagedImage.Create( width, height, PixelFormat.Format8bppIndexed ); + motionFrame = UnmanagedImage.Create( width, height, PixelFormat.Format8bppIndexed ); + + frameSize = motionFrame.Stride * height; + + // temporary buffer + if ( suppressNoise ) + { + tempFrame = UnmanagedImage.Create( width, height, PixelFormat.Format8bppIndexed ); + } + + // convert source frame to grayscale + Tools.ConvertToGrayscale( videoFrame, backgroundFrame ); + + return; + } + + // check image dimension + if ( ( videoFrame.Width != width ) || ( videoFrame.Height != height ) ) + return; + + // convert current image to grayscale + Tools.ConvertToGrayscale( videoFrame, motionFrame ); + + // pointers to background and current frames + byte* backFrame; + byte* currFrame; + int diff; + + // update background frame + if ( millisecondsPerBackgroundUpdate == 0 ) + { + // update background frame using frame counter as a base + if ( ++framesCounter == framesPerBackgroundUpdate ) + { + framesCounter = 0; + + backFrame = (byte*) backgroundFrame.ImageData.ToPointer( ); + currFrame = (byte*) motionFrame.ImageData.ToPointer( ); + + for ( int i = 0; i < frameSize; i++, backFrame++, currFrame++ ) + { + diff = *currFrame - *backFrame; + if ( diff > 0 ) + { + ( *backFrame )++; + } + else if ( diff < 0 ) + { + ( *backFrame )--; + } + } + } + } + else + { + // update background frame using timer as a base + + // get current time and calculate difference + DateTime currentTime = DateTime.Now; + TimeSpan timeDff = currentTime - lastTimeMeasurment; + // save current time as the last measurment + lastTimeMeasurment = currentTime; + + int millisonds = (int) timeDff.TotalMilliseconds + millisecondsLeftUnprocessed; + + // save remainder so it could be taken into account in the future + millisecondsLeftUnprocessed = millisonds % millisecondsPerBackgroundUpdate; + // get amount for background update + int updateAmount = (int) ( millisonds / millisecondsPerBackgroundUpdate ); + + backFrame = (byte*) backgroundFrame.ImageData.ToPointer( ); + currFrame = (byte*) motionFrame.ImageData.ToPointer( ); + + for ( int i = 0; i < frameSize; i++, backFrame++, currFrame++ ) + { + diff = *currFrame - *backFrame; + if ( diff > 0 ) + { + ( *backFrame ) += (byte) ( ( diff < updateAmount ) ? diff : updateAmount ); + } + else if ( diff < 0 ) + { + ( *backFrame ) += (byte) ( ( -diff < updateAmount ) ? diff : -updateAmount ); + } + } + } + + backFrame = (byte*) backgroundFrame.ImageData.ToPointer( ); + currFrame = (byte*) motionFrame.ImageData.ToPointer( ); + + // 1 - get difference between frames + // 2 - threshold the difference + for ( int i = 0; i < frameSize; i++, backFrame++, currFrame++ ) + { + // difference + diff = (int) *currFrame - (int) *backFrame; + // treshold + *currFrame = ( ( diff >= differenceThreshold ) || ( diff <= differenceThresholdNeg ) ) ? (byte) 255 : (byte) 0; + } + + if ( suppressNoise ) + { + // suppress noise and calculate motion amount + AForge.SystemTools.CopyUnmanagedMemory( tempFrame.ImageData, motionFrame.ImageData, frameSize ); + erosionFilter.Apply( tempFrame, motionFrame ); + + if ( keepObjectEdges ) + { + AForge.SystemTools.CopyUnmanagedMemory( tempFrame.ImageData, motionFrame.ImageData, frameSize ); + dilatationFilter.Apply( tempFrame, motionFrame ); + } + } + + // calculate amount of motion pixels + pixelsChanged = 0; + byte* motion = (byte*) motionFrame.ImageData.ToPointer( ); + + for ( int i = 0; i < frameSize; i++, motion++ ) + { + pixelsChanged += ( *motion & 1 ); + } + } + } + + /// + /// Reset motion detector to initial state. + /// + /// + /// Resets internal state and variables of motion detection algorithm. + /// Usually this is required to be done before processing new video source, but + /// may be also done at any time to restart motion detection algorithm. + /// + /// + public void Reset( ) + { + lock ( sync ) + { + if ( backgroundFrame != null ) + { + backgroundFrame.Dispose( ); + backgroundFrame = null; + } + + if ( motionFrame != null ) + { + motionFrame.Dispose( ); + motionFrame = null; + } + + if ( tempFrame != null ) + { + tempFrame.Dispose( ); + tempFrame = null; + } + + framesCounter = 0; + } + } + } +} diff --git a/Sources/Vision/Motion/TwoFramesDifferenceDetector.cs b/Sources/Vision/Motion/TwoFramesDifferenceDetector.cs new file mode 100644 index 00000000..71fa00bb --- /dev/null +++ b/Sources/Vision/Motion/TwoFramesDifferenceDetector.cs @@ -0,0 +1,320 @@ +// AForge Vision Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +namespace AForge.Vision.Motion +{ + using System; + using System.Drawing.Imaging; + + using AForge.Imaging; + using AForge.Imaging.Filters; + + /// + /// Motion detector based on two continues frames difference. + /// + /// + /// The class implements the simplest motion detection algorithm, which is + /// based on difference of two continues frames. The difference frame + /// is thresholded and the amount of difference pixels is calculated. + /// To suppress stand-alone noisy pixels erosion morphological operator may be applied, which + /// is controlled by property. + /// + /// Although the class may be used on its own to perform motion detection, it is preferred + /// to use it in conjunction with class, which provides additional + /// features and allows to use moton post processing algorithms. + /// + /// Sample usage: + /// + /// // create motion detector + /// MotionDetector detector = new MotionDetector( + /// new TwoFramesDifferenceDetector( ), + /// new MotionAreaHighlighting( ) ); + /// + /// // continuously feed video frames to motion detector + /// while ( ... ) + /// { + /// // process new video frame and check motion level + /// if ( detector.ProcessFrame( videoFrame ) > 0.02 ) + /// { + /// // ring alarm or do somethng else + /// } + /// } + /// + /// + /// + /// + /// + public class TwoFramesDifferenceDetector : IMotionDetector + { + // frame's dimension + private int width; + private int height; + private int frameSize; + + // previous frame of video stream + private UnmanagedImage previousFrame; + // current frame of video sream + private UnmanagedImage motionFrame; + // temporary buffer used for suppressing noise + private UnmanagedImage tempFrame; + // number of pixels changed in the new frame of video stream + private int pixelsChanged; + + // suppress noise + private bool suppressNoise = true; + + // threshold values + private int differenceThreshold = 15; + private int differenceThresholdNeg = -15; + + // binary erosion filter + private BinaryErosion3x3 erosionFilter = new BinaryErosion3x3( ); + + // dummy object to lock for synchronization + private object sync = new object( ); + + /// + /// Difference threshold value, [1, 255]. + /// + /// + /// The value specifies the amount off difference between pixels, which is treated + /// as motion pixel. + /// + /// Default value is set to 15. + /// + /// + public int DifferenceThreshold + { + get { return differenceThreshold; } + set + { + lock ( sync ) + { + differenceThreshold = Math.Max( 1, Math.Min( 255, value ) ); + differenceThresholdNeg = -differenceThreshold; + } + } + } + + /// + /// Motion level value, [0, 1]. + /// + /// + /// Amount of changes in the last processed frame. For example, if value of + /// this property equals to 0.1, then it means that last processed frame has 10% difference + /// with previous frame. + /// + /// + public float MotionLevel + { + get + { + lock ( sync ) + { + return (float) pixelsChanged / ( width * height ); + } + } + } + + /// + /// Motion frame containing detected areas of motion. + /// + /// + /// Motion frame is a grayscale image, which shows areas of detected motion. + /// All black pixels in the motion frame correspond to areas, where no motion is + /// detected. But white pixels correspond to areas, where motion is detected. + /// + /// The property is set to after processing of the first + /// video frame by the algorithm. + /// + /// + public UnmanagedImage MotionFrame + { + get + { + lock ( sync ) + { + return motionFrame; + } + } + } + + /// + /// Suppress noise in video frames or not. + /// + /// + /// The value specifies if additional filtering should be + /// done to suppress standalone noisy pixels by applying 3x3 erosion image processing + /// filter. + /// + /// Default value is set to . + /// + /// Turning the value on leads to more processing time of video frame. + /// + /// + public bool SuppressNoise + { + get { return suppressNoise; } + set + { + lock ( sync ) + { + suppressNoise = value; + + // allocate temporary frame if required + if ( ( suppressNoise ) && ( tempFrame == null ) && ( motionFrame != null ) ) + { + tempFrame = UnmanagedImage.Create( width, height, PixelFormat.Format8bppIndexed ); + } + + // check if temporary frame is not required + if ( ( !suppressNoise ) && ( tempFrame != null ) ) + { + tempFrame.Dispose( ); + tempFrame = null; + } + } + } + } + + /// + /// Initializes a new instance of the class. + /// + /// + public TwoFramesDifferenceDetector( ) { } + + /// + /// Initializes a new instance of the class. + /// + /// + /// Suppress noise in video frames or not (see property). + /// + public TwoFramesDifferenceDetector( bool suppressNoise ) + { + this.suppressNoise = suppressNoise; + } + + /// + /// Process new video frame. + /// + /// + /// Video frame to process (detect motion in). + /// + /// Processes new frame from video source and detects motion in it. + /// + /// Check property to get information about amount of motion + /// (changes) in the processed frame. + /// + /// + public unsafe void ProcessFrame( UnmanagedImage videoFrame ) + { + lock ( sync ) + { + // check previous frame + if ( previousFrame == null ) + { + // save image dimension + width = videoFrame.Width; + height = videoFrame.Height; + + // alocate memory for previous and current frames + previousFrame = UnmanagedImage.Create( width, height, PixelFormat.Format8bppIndexed ); + motionFrame = UnmanagedImage.Create( width, height, PixelFormat.Format8bppIndexed ); + + frameSize = motionFrame.Stride * height; + + // temporary buffer + if ( suppressNoise ) + { + tempFrame = UnmanagedImage.Create( width, height, PixelFormat.Format8bppIndexed ); + } + + // convert source frame to grayscale + Tools.ConvertToGrayscale( videoFrame, previousFrame ); + + return; + } + + // check image dimension + if ( ( videoFrame.Width != width ) || ( videoFrame.Height != height ) ) + return; + + // convert current image to grayscale + Tools.ConvertToGrayscale( videoFrame, motionFrame ); + + // pointers to previous and current frames + byte* prevFrame = (byte*) previousFrame.ImageData.ToPointer( ); + byte* currFrame = (byte*) motionFrame.ImageData.ToPointer( ); + // difference value + int diff; + + // 1 - get difference between frames + // 2 - threshold the difference + // 3 - copy current frame to previous frame + for ( int i = 0; i < frameSize; i++, prevFrame++, currFrame++ ) + { + // difference + diff = (int) *currFrame - (int) *prevFrame; + // copy current frame to previous + *prevFrame = *currFrame; + // treshold + *currFrame = ( ( diff >= differenceThreshold ) || ( diff <= differenceThresholdNeg ) ) ? (byte) 255 : (byte) 0; + } + + if ( suppressNoise ) + { + // suppress noise and calculate motion amount + AForge.SystemTools.CopyUnmanagedMemory( tempFrame.ImageData, motionFrame.ImageData, frameSize ); + erosionFilter.Apply( tempFrame, motionFrame ); + } + + // calculate amount of motion pixels + pixelsChanged = 0; + byte* motion = (byte*) motionFrame.ImageData.ToPointer( ); + + for ( int i = 0; i < frameSize; i++, motion++ ) + { + pixelsChanged += ( *motion & 1 ); + } + } + } + + /// + /// Reset motion detector to initial state. + /// + /// + /// Resets internal state and variables of motion detection algorithm. + /// Usually this is required to be done before processing new video source, but + /// may be also done at any time to restart motion detection algorithm. + /// + /// + public void Reset( ) + { + lock ( sync ) + { + if ( previousFrame != null ) + { + previousFrame.Dispose( ); + previousFrame = null; + } + + if ( motionFrame != null ) + { + motionFrame.Dispose( ); + motionFrame = null; + } + + if ( tempFrame != null ) + { + tempFrame.Dispose( ); + tempFrame = null; + } + } + } + } +} \ No newline at end of file diff --git a/Sources/Vision/Properties/AssemblyInfo.cs b/Sources/Vision/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..584d82a8 --- /dev/null +++ b/Sources/Vision/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle( "AForge.Vision" )] +[assembly: AssemblyDescription( "" )] +[assembly: AssemblyConfiguration( "" )] +[assembly: AssemblyCompany( "AForge" )] +[assembly: AssemblyProduct( "AForge.NET" )] +[assembly: AssemblyCopyright( "AForge © 2012" )] +[assembly: AssemblyTrademark( "" )] +[assembly: AssemblyCulture( "" )] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible( false )] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid( "31a0af30-78a6-4c33-98b6-a3f67254c580" )] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion( "2.2.5.0" )] +[assembly: AssemblyFileVersion( "2.2.5.0" )] diff --git a/Sources/Vision/Tools.cs b/Sources/Vision/Tools.cs new file mode 100644 index 00000000..1e29a2c6 --- /dev/null +++ b/Sources/Vision/Tools.cs @@ -0,0 +1,32 @@ +// AForge Vision Library +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2005-2011 +// contacts@aforgenet.com +// + +namespace AForge.Vision +{ + using System; + using System.Drawing; + using System.Drawing.Imaging; + using AForge.Imaging; + using AForge.Imaging.Filters; + + internal static class Tools + { + // Get grayscale image out of the specified one + public static void ConvertToGrayscale( UnmanagedImage source, UnmanagedImage destination ) + { + if ( source.PixelFormat != PixelFormat.Format8bppIndexed ) + { + Grayscale.CommonAlgorithms.BT709.Apply( source, destination ); + } + else + { + source.Copy( destination ); + } + } + } +} diff --git a/Sources/Vision/Vision (mono).csproj b/Sources/Vision/Vision (mono).csproj new file mode 100644 index 00000000..a6ce7312 --- /dev/null +++ b/Sources/Vision/Vision (mono).csproj @@ -0,0 +1,66 @@ + + + + Debug + AnyCPU + 9.0.21022 + 2.0 + {836C860D-180F-4760-BC4F-9CE02730D46F} + Library + AForge.Vision + v2.0 + AForge.Vision + + + true + full + false + bin\Debug + DEBUG + prompt + 3 + false + true + + + none + false + ..\..\Release\Mono + prompt + 3 + false + true + AForge.Vision.snk + true + + + + + + False + ..\..\Release\Mono\AForge.dll + + + False + ..\..\Release\Mono\AForge.Imaging.dll + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Sources/Vision/Vision (mono).sln b/Sources/Vision/Vision (mono).sln new file mode 100644 index 00000000..e2c00682 --- /dev/null +++ b/Sources/Vision/Vision (mono).sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Vision (mono)", "Vision (mono).csproj", "{836C860D-180F-4760-BC4F-9CE02730D46F}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {836C860D-180F-4760-BC4F-9CE02730D46F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {836C860D-180F-4760-BC4F-9CE02730D46F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {836C860D-180F-4760-BC4F-9CE02730D46F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {836C860D-180F-4760-BC4F-9CE02730D46F}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(MonoDevelopProperties) = preSolution + StartupItem = Vision (mono).csproj + EndGlobalSection +EndGlobal diff --git a/Sources/Vision/Vision.csproj b/Sources/Vision/Vision.csproj new file mode 100644 index 00000000..d88d0ba7 --- /dev/null +++ b/Sources/Vision/Vision.csproj @@ -0,0 +1,120 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {B99CBE2E-BAAD-45D5-8A84-CAA6A2286C0B} + Library + Properties + AForge.Vision + AForge.Vision + v2.0 + 512 + true + AForge.Vision.snk + + + 3.5 + + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + true + full + false + ..\..\Release\ + DEBUG;TRACE + prompt + 4 + AForge.Vision.xml + true + + + pdbonly + true + ..\..\Release\ + TRACE + prompt + 4 + AForge.Vision.xml + true + + + + False + ..\..\Release\AForge.dll + + + False + ..\..\Release\AForge.Imaging.dll + + + + + + + + + + + + + + + + + + + + + + + + + + False + Microsoft .NET Framework 4 %28x86 and x64%29 + true + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 3.1 + true + + + + + \ No newline at end of file diff --git a/Sources/Vision/Vision.sln b/Sources/Vision/Vision.sln new file mode 100644 index 00000000..42f9096e --- /dev/null +++ b/Sources/Vision/Vision.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual C# Express 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Vision", "Vision.csproj", "{B99CBE2E-BAAD-45D5-8A84-CAA6A2286C0B}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {B99CBE2E-BAAD-45D5-8A84-CAA6A2286C0B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B99CBE2E-BAAD-45D5-8A84-CAA6A2286C0B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B99CBE2E-BAAD-45D5-8A84-CAA6A2286C0B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B99CBE2E-BAAD-45D5-8A84-CAA6A2286C0B}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Tools/DebuggerVisualizers/AForge.DebuggerVisualizers.snk b/Tools/DebuggerVisualizers/AForge.DebuggerVisualizers.snk new file mode 100644 index 00000000..2a664a9a Binary files /dev/null and b/Tools/DebuggerVisualizers/AForge.DebuggerVisualizers.snk differ diff --git a/Tools/DebuggerVisualizers/BitmapDataVisualizer.cs b/Tools/DebuggerVisualizers/BitmapDataVisualizer.cs new file mode 100644 index 00000000..7d8156e0 --- /dev/null +++ b/Tools/DebuggerVisualizers/BitmapDataVisualizer.cs @@ -0,0 +1,47 @@ +// AForge debugging visualizers +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2011 +// contacts@aforgenet.com +// + +using System; +using System.IO; +using System.Drawing; +using System.Drawing.Imaging; +using System.Windows.Forms; +using System.Runtime.Serialization.Formatters.Binary; +using Microsoft.VisualStudio.DebuggerVisualizers; + +[assembly: System.Diagnostics.DebuggerVisualizer( + typeof( AForge.DebuggerVisualizers.BitmapDataVisualizer ), + typeof( AForge.DebuggerVisualizers.BitmapDataObjectSource ), + Target = typeof( System.Drawing.Imaging.BitmapData ), + Description = "Bitmap Data Visualizer" )] + +namespace AForge.DebuggerVisualizers +{ + class BitmapDataVisualizer : DialogDebuggerVisualizer + { + override protected void Show( IDialogVisualizerService windowService, IVisualizerObjectProvider objectProvider ) + { + Image image = (Image) objectProvider.GetObject( ); + + ImageView imageViewer = new ImageView( ); + imageViewer.SetImage( image ); + + windowService.ShowDialog( imageViewer ); + } + } + + public class BitmapDataObjectSource : VisualizerObjectSource + { + public override void GetData( object target, Stream outgoingData ) + { + BinaryFormatter bf = new BinaryFormatter( ); + bf.Serialize( outgoingData, + ( new AForge.Imaging.UnmanagedImage( (BitmapData) target ) ).ToManagedImage( ) ); + } + } +} diff --git a/Tools/DebuggerVisualizers/DebuggerVisualizers (2008).csproj b/Tools/DebuggerVisualizers/DebuggerVisualizers (2008).csproj new file mode 100644 index 00000000..af01f4bf --- /dev/null +++ b/Tools/DebuggerVisualizers/DebuggerVisualizers (2008).csproj @@ -0,0 +1,100 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {E72A7F76-D6CF-498F-B995-2DAA847146A8} + Library + Properties + AForge.DebuggerVisualizers + AForge.DebuggerVisualizers %282008%29 + v3.5 + 512 + true + AForge.DebuggerVisualizers.snk + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + ..\..\Release\ + TRACE + prompt + 4 + + + + False + ..\..\Release\AForge.dll + + + False + ..\..\Release\AForge.Controls.dll + + + False + ..\..\Release\AForge.Imaging.dll + + + False + ..\..\Release\AForge.Math.dll + + + + + 3.5 + + + + + + + + + + Form + + + HistogramView.cs + + + + Form + + + ImageView.cs + + + + + + + + + + + HistogramView.cs + + + ImageView.cs + + + + + \ No newline at end of file diff --git a/Tools/DebuggerVisualizers/DebuggerVisualizers (2008).sln b/Tools/DebuggerVisualizers/DebuggerVisualizers (2008).sln new file mode 100644 index 00000000..c31e2b74 --- /dev/null +++ b/Tools/DebuggerVisualizers/DebuggerVisualizers (2008).sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual C# Express 2008 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DebuggerVisualizers", "DebuggerVisualizers (2008).csproj", "{E72A7F76-D6CF-498F-B995-2DAA847146A8}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {E72A7F76-D6CF-498F-B995-2DAA847146A8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E72A7F76-D6CF-498F-B995-2DAA847146A8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E72A7F76-D6CF-498F-B995-2DAA847146A8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E72A7F76-D6CF-498F-B995-2DAA847146A8}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Tools/DebuggerVisualizers/DebuggerVisualizers (2010).csproj b/Tools/DebuggerVisualizers/DebuggerVisualizers (2010).csproj new file mode 100644 index 00000000..85f58314 --- /dev/null +++ b/Tools/DebuggerVisualizers/DebuggerVisualizers (2010).csproj @@ -0,0 +1,142 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {E72A7F76-D6CF-498F-B995-2DAA847146A8} + Library + Properties + AForge.DebuggerVisualizers + AForge.DebuggerVisualizers %282010%29 + v4.0 + 512 + true + AForge.DebuggerVisualizers.snk + + + + + 3.5 + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + true + full + false + ..\..\Release\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + ..\..\Release\ + TRACE + prompt + 4 + + + + False + ..\..\Release\AForge.dll + + + False + ..\..\Release\AForge.Controls.dll + + + False + ..\..\Release\AForge.Imaging.dll + + + False + ..\..\Release\AForge.Math.dll + + + + + 3.5 + + + + + + + + + + Form + + + HistogramView.cs + + + + Form + + + ImageView.cs + + + + + + + + + + + HistogramView.cs + + + ImageView.cs + + + + + False + Microsoft .NET Framework 4 %28x86 and x64%29 + true + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 3.1 + true + + + + + \ No newline at end of file diff --git a/Tools/DebuggerVisualizers/DebuggerVisualizers (2010).sln b/Tools/DebuggerVisualizers/DebuggerVisualizers (2010).sln new file mode 100644 index 00000000..47c6d5a6 --- /dev/null +++ b/Tools/DebuggerVisualizers/DebuggerVisualizers (2010).sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual C# Express 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DebuggerVisualizers (2010)", "DebuggerVisualizers (2010).csproj", "{E72A7F76-D6CF-498F-B995-2DAA847146A8}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {E72A7F76-D6CF-498F-B995-2DAA847146A8}.Debug|Any CPU.ActiveCfg = Release|Any CPU + {E72A7F76-D6CF-498F-B995-2DAA847146A8}.Debug|Any CPU.Build.0 = Release|Any CPU + {E72A7F76-D6CF-498F-B995-2DAA847146A8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E72A7F76-D6CF-498F-B995-2DAA847146A8}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Tools/DebuggerVisualizers/HistogramView.Designer.cs b/Tools/DebuggerVisualizers/HistogramView.Designer.cs new file mode 100644 index 00000000..4657a53d --- /dev/null +++ b/Tools/DebuggerVisualizers/HistogramView.Designer.cs @@ -0,0 +1,126 @@ +namespace AForge.DebuggerVisualizers +{ + partial class HistogramView + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose( bool disposing ) + { + if ( disposing && ( components != null ) ) + { + components.Dispose( ); + } + base.Dispose( disposing ); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent( ) + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager( typeof( HistogramView ) ); + this.mainPanel = new System.Windows.Forms.Panel( ); + this.histogramControl = new AForge.Controls.Histogram( ); + this.textBox = new System.Windows.Forms.TextBox( ); + this.statsBox = new System.Windows.Forms.TextBox( ); + this.logCheck = new System.Windows.Forms.CheckBox( ); + this.mainPanel.SuspendLayout( ); + this.SuspendLayout( ); + // + // mainPanel + // + this.mainPanel.Anchor = ( (System.Windows.Forms.AnchorStyles) ( ( ( ( System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom ) + | System.Windows.Forms.AnchorStyles.Left ) + | System.Windows.Forms.AnchorStyles.Right ) ) ); + this.mainPanel.Controls.Add( this.histogramControl ); + this.mainPanel.Location = new System.Drawing.Point( 10, 10 ); + this.mainPanel.Name = "mainPanel"; + this.mainPanel.Size = new System.Drawing.Size( 474, 159 ); + this.mainPanel.TabIndex = 0; + // + // histogramControl + // + this.histogramControl.AllowSelection = true; + this.histogramControl.BackColor = System.Drawing.SystemColors.ControlDarkDark; + this.histogramControl.Color = System.Drawing.Color.DodgerBlue; + this.histogramControl.Location = new System.Drawing.Point( 154, 33 ); + this.histogramControl.Name = "histogramControl"; + this.histogramControl.Size = new System.Drawing.Size( 196, 73 ); + this.histogramControl.TabIndex = 0; + this.histogramControl.Values = null; + this.histogramControl.SelectionChanged += new AForge.Controls.HistogramEventHandler( this.histogramControl_SelectionChanged ); + this.histogramControl.PositionChanged += new AForge.Controls.HistogramEventHandler( this.histogramControl_PositionChanged ); + // + // textBox + // + this.textBox.Anchor = ( (System.Windows.Forms.AnchorStyles) ( ( ( System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left ) + | System.Windows.Forms.AnchorStyles.Right ) ) ); + this.textBox.Location = new System.Drawing.Point( 10, 203 ); + this.textBox.Name = "textBox"; + this.textBox.ReadOnly = true; + this.textBox.Size = new System.Drawing.Size( 424, 20 ); + this.textBox.TabIndex = 2; + // + // statsBox + // + this.statsBox.Anchor = ( (System.Windows.Forms.AnchorStyles) ( ( ( System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left ) + | System.Windows.Forms.AnchorStyles.Right ) ) ); + this.statsBox.Location = new System.Drawing.Point( 10, 175 ); + this.statsBox.Name = "statsBox"; + this.statsBox.ReadOnly = true; + this.statsBox.Size = new System.Drawing.Size( 474, 20 ); + this.statsBox.TabIndex = 1; + // + // logCheck + // + this.logCheck.Anchor = ( (System.Windows.Forms.AnchorStyles) ( ( System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right ) ) ); + this.logCheck.AutoSize = true; + this.logCheck.Location = new System.Drawing.Point( 440, 206 ); + this.logCheck.Name = "logCheck"; + this.logCheck.Size = new System.Drawing.Size( 44, 17 ); + this.logCheck.TabIndex = 3; + this.logCheck.Text = "&Log"; + this.logCheck.UseVisualStyleBackColor = true; + this.logCheck.CheckedChanged += new System.EventHandler( this.logCheck_CheckedChanged ); + // + // HistogramView + // + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; + this.ClientSize = new System.Drawing.Size( 494, 231 ); + this.Controls.Add( this.logCheck ); + this.Controls.Add( this.statsBox ); + this.Controls.Add( this.textBox ); + this.Controls.Add( this.mainPanel ); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.Icon = ( (System.Drawing.Icon) ( resources.GetObject( "$this.Icon" ) ) ); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.MinimumSize = new System.Drawing.Size( 400, 250 ); + this.Name = "HistogramView"; + this.ShowInTaskbar = false; + this.Text = "Histogram"; + this.mainPanel.ResumeLayout( false ); + this.ResumeLayout( false ); + this.PerformLayout( ); + + } + + #endregion + + private System.Windows.Forms.Panel mainPanel; + private AForge.Controls.Histogram histogramControl; + private System.Windows.Forms.TextBox textBox; + private System.Windows.Forms.TextBox statsBox; + private System.Windows.Forms.CheckBox logCheck; + } +} \ No newline at end of file diff --git a/Tools/DebuggerVisualizers/HistogramView.cs b/Tools/DebuggerVisualizers/HistogramView.cs new file mode 100644 index 00000000..17b9489f --- /dev/null +++ b/Tools/DebuggerVisualizers/HistogramView.cs @@ -0,0 +1,103 @@ +// AForge debugging visualizers +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2011 +// contacts@aforgenet.com +// + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Windows.Forms; +using AForge.Math; + +namespace AForge.DebuggerVisualizers +{ + public partial class HistogramView : Form + { + private const int HistogramHeight = 100; + private Histogram histogram; + + public HistogramView( ) + { + InitializeComponent( ); + } + + public void SetHistogram( Histogram histogram ) + { + this.histogram = histogram; + + histogramControl.Values = histogram.Values; + int length = histogram.Values.Length; + + Text = string.Format( "Histogram - {0} values", length ); + statsBox.Text = string.Format( "Min: {0} Max: {1} Mean: {2:F2} Std.Dev.: {3:F2}", + histogram.Min, histogram.Max, histogram.Mean, histogram.StdDev ); + + // set form size + int formWidth = System.Math.Min( 800, length ) + 40; + int formHeight = HistogramHeight + 120; + + this.Size = new Size( formWidth, formHeight ); + + // set histogram control size + int width = length + 2; + int height = HistogramHeight + 2; + + int x = ( width > mainPanel.ClientSize.Width ) ? 0 : ( mainPanel.ClientSize.Width - width ) / 2; + int y = ( height > mainPanel.ClientSize.Height ) ? 0 : ( mainPanel.ClientSize.Height - height ) / 2; + + histogramControl.SuspendLayout( ); + histogramControl.Size = new Size( width, height ); + histogramControl.Location = new System.Drawing.Point( x, y ); + histogramControl.ResumeLayout( ); + } + + // Mouse cursor's position has changed within histogram control + private void histogramControl_PositionChanged( object sender, AForge.Controls.HistogramEventArgs e ) + { + if ( histogram != null ) + { + int pos = e.Position; + + if ( pos != -1 ) + { + textBox.Text = string.Format( "Value: {0} Count: {1} Percent: {2:F2}", + pos, histogram.Values[pos], ( (float) histogram.Values[pos] * 100 / histogram.TotalCount ) ); + } + else + { + textBox.Text = string.Empty; + } + } + } + + // Selection has changed within histogram control + private void histogramControl_SelectionChanged( object sender, AForge.Controls.HistogramEventArgs e ) + { + if ( histogram != null ) + { + int min = e.Min; + int max = e.Max; + int count = 0; + + // count pixels + for ( int i = min; i <= max; i++ ) + { + count += histogram.Values[i]; + } + + textBox.Text = string.Format( "Values: {0}...{1} Count: {2} Percent: {3:F2}", + min, max, count, ( (float) count * 100 / histogram.TotalCount ) ); + } + } + + private void logCheck_CheckedChanged( object sender, EventArgs e ) + { + histogramControl.IsLogarithmicView = logCheck.Checked; + } + } +} diff --git a/Tools/DebuggerVisualizers/HistogramView.resx b/Tools/DebuggerVisualizers/HistogramView.resx new file mode 100644 index 00000000..e9e326aa --- /dev/null +++ b/Tools/DebuggerVisualizers/HistogramView.resx @@ -0,0 +1,145 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AABlREzBZURM5WVETOVlREzlZURM5WVETOVlREzlZURM5WVETOVlREzlZURM5WVETOVlREzlZURM5WVE + TMH///8AZURM5f///////////////////////////////39/f/////////////////////////////// + //9lREzl////AGVETOX///////////////////////////////+/v7////////////////////////// + ////////ZURM5f///wBlREzl//7+///+/v///v7///7+///+/v///v7/f39//794C/+8cgD///7+///+ + /v///v7///7+/2VETOX///8AZURM5f/////9/Pz//fz8//38/P/9/Pz//fz8/8OAGf/9/Pz//fz8/7xy + AP/9/Pz//fz8//38/P9lREzl////AGVETOX//v7//Pr6//z6+v/8+vr//Pr6//z6+v/Cfxn//Pr6//z6 + +v+8cgD//Pr6//z6+v/8+vr/ZURM5f///wBlREzlv4CA//v4+P/7+Pj/+/j4//v4+P/IiSr/v7+///v4 + +P/7+Pj/+/j4/7xyAP/7+Pj/+/j4/2VETOX///8AZURM5b+AgP+/v7//f39//7+/v/9/f3//x4or/39/ + f/+/v7//f39//7+/v/+8cgD/v7+//39/f/9lREzl////AGVETOW/gID/+PPz//jz8//48/P/+PPz/8iJ + Kv+/v7//+PPz//jz8//48/P/vHIA//jz8//48/P/ZURM5f///wBlREzl/fz8/964gP/28fH/9vHx/8yU + Pv/28fH/f39///bx8f/28fH/9vHx//bx8f+8cgD/9vHx/2VETOX///8AZURM5f37+//duX//9e7u//Xu + 7v/MlT7/9e7u/7+/v//17u7/9e7u//Xu7v/17u7/vHIA//Xu7v9lREzl////AGVETOX9+/v/9Ozs/9is + af/Rn1P/9Ozs//Ts7P9/f3//9Ozs//Ts7P/07Oz/9Ozs//Ts7P+8cgD/ZURM5f///wBlREzl/Pr6//Lq + 6v/y6ur/8urq//Lq6v/y6ur/v7+///Lq6v/y6ur/8urq//Lq6v/y6ur/8urq/2VETOX///8AZURM5f37 + +//49fX/+PX1//j19f/8+vr//Pr6/7+/v//8+vr//Pr6//z6+v/8+vr//Pr6//j19f9lREzl////AGVE + TMFlREzlZURM5WVETOVlREzlZURM5WVETOVlREzlZURM5WVETOVlREzlZURM5WVETOVlREzlZURMwf// + /wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP// + /wD///8AAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAAB + AAAAAQAA//8AAA== + + + \ No newline at end of file diff --git a/Tools/DebuggerVisualizers/HistogramVisualizer.cs b/Tools/DebuggerVisualizers/HistogramVisualizer.cs new file mode 100644 index 00000000..853de210 --- /dev/null +++ b/Tools/DebuggerVisualizers/HistogramVisualizer.cs @@ -0,0 +1,34 @@ +// AForge debugging visualizers +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2011 +// contacts@aforgenet.com +// + +using System; +using System.Drawing; +using System.Windows.Forms; +using Microsoft.VisualStudio.DebuggerVisualizers; + +[assembly: System.Diagnostics.DebuggerVisualizer( + typeof( AForge.DebuggerVisualizers.HistogramVisualizer ), + typeof( VisualizerObjectSource ), + Target = typeof( AForge.Math.Histogram ), + Description = "Histogram Visualizer" )] + +namespace AForge.DebuggerVisualizers +{ + public class HistogramVisualizer : DialogDebuggerVisualizer + { + override protected void Show( IDialogVisualizerService windowService, IVisualizerObjectProvider objectProvider ) + { + AForge.Math.Histogram histogram = (AForge.Math.Histogram) objectProvider.GetObject( ); + + HistogramView histogramView = new HistogramView( ); + histogramView.SetHistogram( histogram ); + + windowService.ShowDialog( histogramView ); + } + } +} diff --git a/Tools/DebuggerVisualizers/ImageView.Designer.cs b/Tools/DebuggerVisualizers/ImageView.Designer.cs new file mode 100644 index 00000000..0176f9d4 --- /dev/null +++ b/Tools/DebuggerVisualizers/ImageView.Designer.cs @@ -0,0 +1,152 @@ +namespace AForge.DebuggerVisualizers +{ + partial class ImageView + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose( bool disposing ) + { + if ( disposing && ( components != null ) ) + { + components.Dispose( ); + } + base.Dispose( disposing ); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent( ) + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager( typeof( ImageView ) ); + this.groupBox1 = new System.Windows.Forms.GroupBox( ); + this.imagePanel = new System.Windows.Forms.Panel( ); + this.pictureBox = new AForge.Controls.PictureBox( ); + this.groupBox2 = new System.Windows.Forms.GroupBox( ); + this.saveButton = new System.Windows.Forms.Button( ); + this.clipboardButton = new System.Windows.Forms.Button( ); + this.saveFileDialog = new System.Windows.Forms.SaveFileDialog( ); + this.groupBox1.SuspendLayout( ); + this.imagePanel.SuspendLayout( ); + ( (System.ComponentModel.ISupportInitialize) ( this.pictureBox ) ).BeginInit( ); + this.groupBox2.SuspendLayout( ); + this.SuspendLayout( ); + // + // groupBox1 + // + this.groupBox1.Anchor = ( (System.Windows.Forms.AnchorStyles) ( ( ( ( System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom ) + | System.Windows.Forms.AnchorStyles.Left ) + | System.Windows.Forms.AnchorStyles.Right ) ) ); + this.groupBox1.Controls.Add( this.imagePanel ); + this.groupBox1.Location = new System.Drawing.Point( 10, 75 ); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size( 362, 333 ); + this.groupBox1.TabIndex = 0; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "Image"; + // + // imagePanel + // + this.imagePanel.Anchor = ( (System.Windows.Forms.AnchorStyles) ( ( ( ( System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom ) + | System.Windows.Forms.AnchorStyles.Left ) + | System.Windows.Forms.AnchorStyles.Right ) ) ); + this.imagePanel.AutoScroll = true; + this.imagePanel.Controls.Add( this.pictureBox ); + this.imagePanel.Location = new System.Drawing.Point( 10, 20 ); + this.imagePanel.Name = "imagePanel"; + this.imagePanel.Size = new System.Drawing.Size( 342, 302 ); + this.imagePanel.TabIndex = 0; + // + // pictureBox + // + this.pictureBox.BackColor = System.Drawing.SystemColors.ControlDarkDark; + this.pictureBox.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.pictureBox.Image = null; + this.pictureBox.Location = new System.Drawing.Point( 50, 51 ); + this.pictureBox.Name = "pictureBox"; + this.pictureBox.Size = new System.Drawing.Size( 243, 193 ); + this.pictureBox.TabIndex = 0; + this.pictureBox.TabStop = false; + // + // groupBox2 + // + this.groupBox2.Anchor = ( (System.Windows.Forms.AnchorStyles) ( ( ( System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left ) + | System.Windows.Forms.AnchorStyles.Right ) ) ); + this.groupBox2.Controls.Add( this.clipboardButton ); + this.groupBox2.Controls.Add( this.saveButton ); + this.groupBox2.Location = new System.Drawing.Point( 10, 10 ); + this.groupBox2.Name = "groupBox2"; + this.groupBox2.Size = new System.Drawing.Size( 362, 55 ); + this.groupBox2.TabIndex = 1; + this.groupBox2.TabStop = false; + this.groupBox2.Text = "Options"; + // + // saveButton + // + this.saveButton.Location = new System.Drawing.Point( 10, 20 ); + this.saveButton.Name = "saveButton"; + this.saveButton.Size = new System.Drawing.Size( 75, 23 ); + this.saveButton.TabIndex = 0; + this.saveButton.Text = "&Save"; + this.saveButton.UseVisualStyleBackColor = true; + this.saveButton.Click += new System.EventHandler( this.saveButton_Click ); + // + // clipboardButton + // + this.clipboardButton.Location = new System.Drawing.Point( 100, 20 ); + this.clipboardButton.Name = "clipboardButton"; + this.clipboardButton.Size = new System.Drawing.Size( 100, 23 ); + this.clipboardButton.TabIndex = 1; + this.clipboardButton.Text = "Put to &Clipboard"; + this.clipboardButton.UseVisualStyleBackColor = true; + this.clipboardButton.Click += new System.EventHandler( this.clipboardButton_Click ); + // + // saveFileDialog + // + this.saveFileDialog.Filter = "PNG files (*.png)|*.png|JPG files (*.jpg)|*.jpg|BMP files (*.bmp)|*.bmp"; + this.saveFileDialog.Title = "Save image"; + // + // ImageView + // + this.AutoScaleDimensions = new System.Drawing.SizeF( 6F, 13F ); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size( 384, 418 ); + this.Controls.Add( this.groupBox2 ); + this.Controls.Add( this.groupBox1 ); + this.Icon = ( (System.Drawing.Icon) ( resources.GetObject( "$this.Icon" ) ) ); + this.MinimizeBox = false; + this.MinimumSize = new System.Drawing.Size( 160, 120 ); + this.Name = "ImageView"; + this.ShowInTaskbar = false; + this.Text = "ImageView"; + this.Load += new System.EventHandler( this.ImageView_Load ); + this.Resize += new System.EventHandler( this.ImageView_Resize ); + this.groupBox1.ResumeLayout( false ); + this.imagePanel.ResumeLayout( false ); + ( (System.ComponentModel.ISupportInitialize) ( this.pictureBox ) ).EndInit( ); + this.groupBox2.ResumeLayout( false ); + this.ResumeLayout( false ); + + } + + #endregion + + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.Panel imagePanel; + private AForge.Controls.PictureBox pictureBox; + private System.Windows.Forms.GroupBox groupBox2; + private System.Windows.Forms.Button clipboardButton; + private System.Windows.Forms.Button saveButton; + private System.Windows.Forms.SaveFileDialog saveFileDialog; + } +} \ No newline at end of file diff --git a/Tools/DebuggerVisualizers/ImageView.cs b/Tools/DebuggerVisualizers/ImageView.cs new file mode 100644 index 00000000..48d9a2f1 --- /dev/null +++ b/Tools/DebuggerVisualizers/ImageView.cs @@ -0,0 +1,135 @@ +// AForge debugging visualizers +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2011 +// contacts@aforgenet.com +// + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Drawing.Imaging; +using System.Windows.Forms; +using System.IO; + +namespace AForge.DebuggerVisualizers +{ + public partial class ImageView : Form + { + public ImageView( ) + { + InitializeComponent( ); + } + + private void ImageView_Resize( object sender, EventArgs e ) + { + UpdateViewSize( ); + } + + private void ImageView_Load( object sender, EventArgs e ) + { + if ( pictureBox.Image != null ) + { + // if image was already set by the time of form loading, update form's size + int width = System.Math.Max( 64, System.Math.Min( 800, pictureBox.Image.Width ) ); + int height = System.Math.Max( 64, System.Math.Min( 600, pictureBox.Image.Height ) ); + this.Size = new Size( width + 80, height + 155 ); + } + } + + public void SetImage( Image image ) + { + pictureBox.Image = image; + + if ( image == null ) + { + Text = "Image not set"; + saveButton.Enabled = false; + clipboardButton.Enabled = false; + } + else + { + Text = string.Format( "Width: {0}, Height: {1}", image.Width, image.Height ); + saveButton.Enabled = true; + clipboardButton.Enabled = true; + } + + UpdateViewSize( ); + } + + private void UpdateViewSize( ) + { + pictureBox.SuspendLayout( ); + + int width = 160; + int height = 120; + + if ( pictureBox.Image != null ) + { + width = pictureBox.Image.Width + 2; + height = pictureBox.Image.Height + 2; + } + + int x = ( width > imagePanel.ClientSize.Width ) ? 0 : ( imagePanel.ClientSize.Width - width ) / 2; + int y = ( height > imagePanel.ClientSize.Height ) ? 0 : ( imagePanel.ClientSize.Height - height) / 2; + + pictureBox.Size = new Size( width, height ); + pictureBox.Location = new System.Drawing.Point( x, y ); + + pictureBox.ResumeLayout( ); + } + + // Put image into clipboard + private void clipboardButton_Click( object sender, EventArgs e ) + { + if ( pictureBox.Image != null ) + { + Clipboard.SetDataObject( pictureBox.Image ); + } + } + + // Save image to file + private void saveButton_Click( object sender, EventArgs e ) + { + if ( pictureBox.Image != null ) + { + if ( saveFileDialog.ShowDialog( ) == DialogResult.OK ) + { + ImageFormat format = ImageFormat.Jpeg; + + // resolve file format + switch ( Path.GetExtension( saveFileDialog.FileName ).ToLower( ) ) + { + case ".jpg": + format = ImageFormat.Jpeg; + break; + case ".bmp": + format = ImageFormat.Bmp; + break; + case ".png": + format = ImageFormat.Png; + break; + default: + MessageBox.Show( this, "Unsupported image format was specified", "Error", + MessageBoxButtons.OK, MessageBoxIcon.Error ); + return; + } + + // save the image + try + { + pictureBox.Image.Save( saveFileDialog.FileName, format ); + } + catch ( Exception ex ) + { + MessageBox.Show( this, "Failed writing image file.\r\n\r\n" + ex.Message, "Error", + MessageBoxButtons.OK, MessageBoxIcon.Error ); + } + } + } + } + } +} diff --git a/Tools/DebuggerVisualizers/ImageView.resx b/Tools/DebuggerVisualizers/ImageView.resx new file mode 100644 index 00000000..d2f27652 --- /dev/null +++ b/Tools/DebuggerVisualizers/ImageView.resx @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + + + AAABAAEAEBAAAAEACABoBQAAFgAAACgAAAAQAAAAIAAAAAEACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAIRcCADIcEgAoGx8ANiIxACwjNAA/MToAKzhAAFE3PwBVPzgAKkNAAExEOgBQR00AQEVrAFZQ + TgBCU08ANVVOAF1NYgBBV1EASFhRAFNOcwBnUHQAR1N9AIRgVgBYWYkAQmhjAG9nXgCIZWMAYGWAAFFx + ZABwcZUAc3aFAFR+eABqj4MA3ZJdAOCVYgBwkpYAdIe7AOGXYgDfl2MA35dkAOCXZADfl2UA4JhlAN+Z + ZgDhmWcA4ppmALaadgCTkqYA5J1oAHiamgDnnmcA4KBxAOmjbADqpGsA6qRtAOqkbwDspWsA6qZtAOyn + cgDwqG4A7KlxAIqnnwDtq3EA8KxzAPGveADwsHgA8LJ5APayegDys30A77R+APK0fgDztH8A/7p5APi6 + hAD/vXsAtLS0APi7hwD/vYEA/b6MAPbAkQD/wo0A/sWTAP/KhwD/zZUA/9aZAP/ZlQD/150A/96YAP/g + nwD/4KMA/+OiAP/vwwD/8b4A//a8AP/7uQD7+fkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMTExMTExMTExMTExMTExMTGBgYGBg + YGBgYGBgYGBgTExgChkyJCAdEhM+IRAPYExMYBcJAwIIHwwEBRUGEWBMTGBcXTAcDgcAARoUGA1gTExg + UldaHiUbVl5fVS8LYExMYEpNU1AWNFtRT1RZWGBMTGBAQ0JJS05BRUZHSERgTExgMzY3NTw3ODo9Oz85 + YExMYCIpJignKiwrLS4xI2BMTGBgYGBgYGBgYGBgYGBgTExMTExMTExMTExMTExMTEwAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//AAD//wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA//8AAP//AAA= + + + \ No newline at end of file diff --git a/Tools/DebuggerVisualizers/ImageVisualizer.cs b/Tools/DebuggerVisualizers/ImageVisualizer.cs new file mode 100644 index 00000000..a1c7efb7 --- /dev/null +++ b/Tools/DebuggerVisualizers/ImageVisualizer.cs @@ -0,0 +1,34 @@ +// AForge debugging visualizers +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2011 +// contacts@aforgenet.com +// + +using System; +using System.Drawing; +using System.Windows.Forms; +using Microsoft.VisualStudio.DebuggerVisualizers; + +[assembly: System.Diagnostics.DebuggerVisualizer( + typeof( AForge.DebuggerVisualizers.ImageVisualizer ), + typeof( VisualizerObjectSource ), + Target = typeof( System.Drawing.Image ), + Description = "Image Visualizer" )] + +namespace AForge.DebuggerVisualizers +{ + public class ImageVisualizer : DialogDebuggerVisualizer + { + override protected void Show( IDialogVisualizerService windowService, IVisualizerObjectProvider objectProvider ) + { + Image image = (Image) objectProvider.GetObject( ); + + ImageView imageViewer = new ImageView( ); + imageViewer.SetImage( image ); + + windowService.ShowDialog( imageViewer ); + } + } +} diff --git a/Tools/DebuggerVisualizers/Images/histogram.ico b/Tools/DebuggerVisualizers/Images/histogram.ico new file mode 100644 index 00000000..94f03211 Binary files /dev/null and b/Tools/DebuggerVisualizers/Images/histogram.ico differ diff --git a/Tools/DebuggerVisualizers/Images/image.ico b/Tools/DebuggerVisualizers/Images/image.ico new file mode 100644 index 00000000..13e51a26 Binary files /dev/null and b/Tools/DebuggerVisualizers/Images/image.ico differ diff --git a/Tools/DebuggerVisualizers/Properties/AssemblyInfo.cs b/Tools/DebuggerVisualizers/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..ff09ff46 --- /dev/null +++ b/Tools/DebuggerVisualizers/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle( "AForge.DebuggerVisualizers" )] +[assembly: AssemblyDescription( "Debugger visualizers for some AForge.NET types" )] +[assembly: AssemblyConfiguration( "" )] +[assembly: AssemblyCompany( "AForge" )] +[assembly: AssemblyProduct( "AForge.NET" )] +[assembly: AssemblyCopyright( "AForge © 2012" )] +[assembly: AssemblyTrademark( "" )] +[assembly: AssemblyCulture( "" )] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible( false )] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid( "6273d551-235d-49cb-a7e9-8855e463114b" )] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion( "1.0.0.0" )] +[assembly: AssemblyFileVersion( "1.0.0.0" )] diff --git a/Tools/DebuggerVisualizers/UnmanagedImageVisualizer.cs b/Tools/DebuggerVisualizers/UnmanagedImageVisualizer.cs new file mode 100644 index 00000000..60d1f159 --- /dev/null +++ b/Tools/DebuggerVisualizers/UnmanagedImageVisualizer.cs @@ -0,0 +1,45 @@ +// AForge debugging visualizers +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2011 +// contacts@aforgenet.com +// + +using System; +using System.IO; +using System.Drawing; +using System.Windows.Forms; +using System.Runtime.Serialization.Formatters.Binary; +using Microsoft.VisualStudio.DebuggerVisualizers; + +[assembly: System.Diagnostics.DebuggerVisualizer( + typeof( AForge.DebuggerVisualizers.UnmanagedImageVisualizer ), + typeof( AForge.DebuggerVisualizers.UnmanagedImageObjectSource ), + Target = typeof( AForge.Imaging.UnmanagedImage ), + Description = "Unmanaged Image Visualizer" )] + +namespace AForge.DebuggerVisualizers +{ + public class UnmanagedImageVisualizer : DialogDebuggerVisualizer + { + override protected void Show( IDialogVisualizerService windowService, IVisualizerObjectProvider objectProvider ) + { + Image image = (Image) objectProvider.GetObject( ); + + ImageView imageViewer = new ImageView( ); + imageViewer.SetImage( image ); + + windowService.ShowDialog( imageViewer ); + } + } + + public class UnmanagedImageObjectSource : VisualizerObjectSource + { + public override void GetData( object target, Stream outgoingData ) + { + BinaryFormatter bf = new BinaryFormatter( ); + bf.Serialize( outgoingData, ( (AForge.Imaging.UnmanagedImage) target ).ToManagedImage( ) ); + } + } +} diff --git a/Tools/IPPrototyper/AForge.IPPrototyper.snk b/Tools/IPPrototyper/AForge.IPPrototyper.snk new file mode 100644 index 00000000..e11ec0d2 Binary files /dev/null and b/Tools/IPPrototyper/AForge.IPPrototyper.snk differ diff --git a/Tools/IPPrototyper/AboutForm.Designer.cs b/Tools/IPPrototyper/AboutForm.Designer.cs new file mode 100644 index 00000000..6cb06f65 --- /dev/null +++ b/Tools/IPPrototyper/AboutForm.Designer.cs @@ -0,0 +1,120 @@ +namespace IPPrototyper +{ + partial class AboutForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose( bool disposing ) + { + if ( disposing && ( components != null ) ) + { + components.Dispose( ); + } + base.Dispose( disposing ); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent( ) + { + this.emailLabel = new System.Windows.Forms.LinkLabel( ); + this.label3 = new System.Windows.Forms.Label( ); + this.aforgeFrameworkLabel = new System.Windows.Forms.LinkLabel( ); + this.label2 = new System.Windows.Forms.Label( ); + this.label1 = new System.Windows.Forms.Label( ); + this.SuspendLayout( ); + // + // emailLabel + // + this.emailLabel.AutoSize = true; + this.emailLabel.Location = new System.Drawing.Point( 71, 99 ); + this.emailLabel.Name = "emailLabel"; + this.emailLabel.Size = new System.Drawing.Size( 153, 13 ); + this.emailLabel.TabIndex = 12; + this.emailLabel.TabStop = true; + this.emailLabel.Text = "andrew.kirillov@aforgenet.com"; + this.emailLabel.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler( this.LinkClicked ); + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point( 65, 84 ); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size( 165, 13 ); + this.label3.TabIndex = 11; + this.label3.Text = "Copyright © 2010, Andrew Kirillov"; + // + // aforgeFrameworkLabel + // + this.aforgeFrameworkLabel.AutoSize = true; + this.aforgeFrameworkLabel.Location = new System.Drawing.Point( 51, 59 ); + this.aforgeFrameworkLabel.Name = "aforgeFrameworkLabel"; + this.aforgeFrameworkLabel.Size = new System.Drawing.Size( 192, 13 ); + this.aforgeFrameworkLabel.TabIndex = 10; + this.aforgeFrameworkLabel.TabStop = true; + this.aforgeFrameworkLabel.Text = "http://www.aforgenet.com/framework/"; + this.aforgeFrameworkLabel.VisitedLinkColor = System.Drawing.Color.Blue; + this.aforgeFrameworkLabel.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler( this.LinkClicked ); + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point( 63, 44 ); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size( 169, 13 ); + this.label2.TabIndex = 9; + this.label2.Text = "Based on AForge.NET Framework"; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Font = new System.Drawing.Font( "Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ( (byte) ( 204 ) ) ); + this.label1.Location = new System.Drawing.Point( 46, 14 ); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size( 202, 13 ); + this.label1.TabIndex = 8; + this.label1.Text = "Image Processing Prototyper 1.0.1"; + // + // AboutForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF( 6F, 13F ); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size( 294, 126 ); + this.Controls.Add( this.emailLabel ); + this.Controls.Add( this.label3 ); + this.Controls.Add( this.aforgeFrameworkLabel ); + this.Controls.Add( this.label2 ); + this.Controls.Add( this.label1 ); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "AboutForm"; + this.ShowIcon = false; + this.ShowInTaskbar = false; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "About ..."; + this.ResumeLayout( false ); + this.PerformLayout( ); + + } + + #endregion + + private System.Windows.Forms.LinkLabel emailLabel; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.LinkLabel aforgeFrameworkLabel; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label label1; + } +} \ No newline at end of file diff --git a/Tools/IPPrototyper/AboutForm.cs b/Tools/IPPrototyper/AboutForm.cs new file mode 100644 index 00000000..a385d090 --- /dev/null +++ b/Tools/IPPrototyper/AboutForm.cs @@ -0,0 +1,36 @@ +// Image Processing Prototyper +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © Andrew Kirillov, 2010 +// andrew.kirillov@aforgenet.com +// + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; + +namespace IPPrototyper +{ + internal partial class AboutForm : Form + { + public AboutForm( ) + { + InitializeComponent( ); + + // initialize links + emailLabel.Links.Add( 0, emailLabel.Text.Length, "mailto:" + emailLabel.Text ); + aforgeFrameworkLabel.Links.Add( 0, aforgeFrameworkLabel.Text.Length, aforgeFrameworkLabel.Text ); + } + + // Link clicked + private void LinkClicked( object sender, LinkLabelLinkClickedEventArgs e ) + { + System.Diagnostics.Process.Start( e.Link.LinkData.ToString( ) ); + } + } +} diff --git a/Tools/IPPrototyper/AboutForm.resx b/Tools/IPPrototyper/AboutForm.resx new file mode 100644 index 00000000..19dc0dd8 --- /dev/null +++ b/Tools/IPPrototyper/AboutForm.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Tools/IPPrototyper/Configuration.cs b/Tools/IPPrototyper/Configuration.cs new file mode 100644 index 00000000..77eb1ca6 --- /dev/null +++ b/Tools/IPPrototyper/Configuration.cs @@ -0,0 +1,234 @@ +// Image Processing Prototyper +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2010-2011 +// contacts@aforgenet.com +// + +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Text; +using System.IO; +using System.Xml; + +namespace IPPrototyper +{ + // Manages/loads/saves application's configuration + internal class Configuration + { + private static Configuration singleton = null; + + // list of configuration options + private Dictionary options = new Dictionary( ); + + private const string configFolderName = "AForge"; + private const string baseConfigFileName = "ipprototyper.cfg"; + private string configFileName = null; + bool isSuccessfullyLoaded = false; + + #region XML Tag Names + private const string mainTag = "IPPrototyper"; + private const string optionsTag = "Options"; + #endregion + + // Configuration load status + public bool IsSuccessfullyLoaded + { + get { return isSuccessfullyLoaded; } + } + + // Disable making class instances + private Configuration( ) + { + configFileName = Path.Combine( + Environment.GetFolderPath( Environment.SpecialFolder.LocalApplicationData ), + configFolderName ); + configFileName = Path.Combine( configFileName, baseConfigFileName ); + } + + // Get instance of the configuration storage + public static Configuration Instance + { + get + { + if ( singleton == null ) + { + singleton = new Configuration( ); + } + return singleton; + } + } + + // Set configuration option's value to store + public void SetConfigurationOption( string option, string value ) + { + if ( options.ContainsKey( option ) ) + { + options[option] = value; + } + else + { + options.Add( option, value ); + } + } + + // Get value of configuration option + public string GetConfigurationOption( string option ) + { + return ( options.ContainsKey( option ) ) ? options[option] : null; + } + + // Save application's configuration + public void Save( ) + { + lock ( baseConfigFileName ) + { + // make sure directory exists + Directory.CreateDirectory( Path.GetDirectoryName( configFileName ) ); + + // open file + FileStream fs = new FileStream( configFileName, FileMode.Create ); + // create XML writer + XmlTextWriter xmlOut = new XmlTextWriter( fs, Encoding.UTF8 ); + + // use indenting for readability + xmlOut.Formatting = Formatting.Indented; + + // start document + xmlOut.WriteStartDocument( ); + xmlOut.WriteComment( "IPPrototyper configuration file" ); + + // main node + xmlOut.WriteStartElement( mainTag ); + + // save configuration options + xmlOut.WriteStartElement( optionsTag ); + SaveOptions( xmlOut ); + xmlOut.WriteEndElement( ); + + xmlOut.WriteEndElement( ); // end of main node + // close file + xmlOut.Close( ); + } + } + + // Load application's configration + public bool Load( ) + { + isSuccessfullyLoaded = false; + + lock ( baseConfigFileName ) + { + // check file existance + if ( File.Exists( configFileName ) ) + { + FileStream fs = null; + XmlTextReader xmlIn = null; + + try + { + // open file + fs = new FileStream( configFileName, FileMode.Open ); + // create XML reader + xmlIn = new XmlTextReader( fs ); + + xmlIn.WhitespaceHandling = WhitespaceHandling.None; + xmlIn.MoveToContent( ); + + // check main node + if ( xmlIn.Name != mainTag ) + throw new ApplicationException( ); + + // move to next node + xmlIn.Read( ); + + while ( true ) + { + // ignore anything if it is not under main tag + while ( ( xmlIn.Depth > 1 ) || ( + ( xmlIn.Depth == 1 ) && ( xmlIn.NodeType != XmlNodeType.Element ) ) ) + { + xmlIn.Read( ); + } + + // break if end element is reached + if ( xmlIn.Depth == 0 ) + break; + + int tagStartLineNummber = xmlIn.LineNumber; + + switch ( xmlIn.Name ) + { + case optionsTag: + LoadOptions( xmlIn ); + break; + } + + // read to the next node, if loader did not move any further + if ( xmlIn.LineNumber == tagStartLineNummber ) + { + xmlIn.Read( ); + } + } + + isSuccessfullyLoaded = true; + // ignore the rest + } + catch + { + } + finally + { + if ( xmlIn != null ) + xmlIn.Close( ); + } + } + } + + return isSuccessfullyLoaded; + } + + // Save configuration options + private void SaveOptions( XmlTextWriter xmlOut ) + { + foreach ( KeyValuePair kvp in options ) + { + xmlOut.WriteStartElement( kvp.Key ); + xmlOut.WriteString( kvp.Value ); + xmlOut.WriteEndElement( ); + } + } + + // Load configuration options + private void LoadOptions( XmlTextReader xmlIn ) + { + options.Clear( ); + // read to the first node + xmlIn.Read( ); + + int startingDept = xmlIn.Depth; + + while ( ( xmlIn.NodeType == XmlNodeType.Element ) && ( xmlIn.Depth == startingDept ) ) + { + string option = xmlIn.Name; + string value = null; + + if ( !xmlIn.IsEmptyElement ) + { + // read to the content + xmlIn.Read( ); + // read content as string + value = xmlIn.ReadString( ); + + // add the value to options list + options.Add( option, value ); + } + + // read to the next option + xmlIn.Read( ); + } + } + } +} diff --git a/Tools/IPPrototyper/HistogramForm.Designer.cs b/Tools/IPPrototyper/HistogramForm.Designer.cs new file mode 100644 index 00000000..84435994 --- /dev/null +++ b/Tools/IPPrototyper/HistogramForm.Designer.cs @@ -0,0 +1,275 @@ +namespace IPPrototyper +{ + partial class HistogramForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose( bool disposing ) + { + if ( disposing && ( components != null ) ) + { + components.Dispose( ); + } + base.Dispose( disposing ); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent( ) + { + this.histogram = new AForge.Controls.Histogram( ); + this.label1 = new System.Windows.Forms.Label( ); + this.channelCombo = new System.Windows.Forms.ComboBox( ); + this.label2 = new System.Windows.Forms.Label( ); + this.label3 = new System.Windows.Forms.Label( ); + this.label4 = new System.Windows.Forms.Label( ); + this.label5 = new System.Windows.Forms.Label( ); + this.label6 = new System.Windows.Forms.Label( ); + this.meanLabel = new System.Windows.Forms.Label( ); + this.stdDevLabel = new System.Windows.Forms.Label( ); + this.medianLabel = new System.Windows.Forms.Label( ); + this.minLabel = new System.Windows.Forms.Label( ); + this.maxLabel = new System.Windows.Forms.Label( ); + this.label7 = new System.Windows.Forms.Label( ); + this.label8 = new System.Windows.Forms.Label( ); + this.label9 = new System.Windows.Forms.Label( ); + this.levelLabel = new System.Windows.Forms.Label( ); + this.countLabel = new System.Windows.Forms.Label( ); + this.percentileLabel = new System.Windows.Forms.Label( ); + this.SuspendLayout( ); + // + // histogram + // + this.histogram.AllowSelection = true; + this.histogram.BackColor = System.Drawing.SystemColors.ControlDark; + this.histogram.Location = new System.Drawing.Point( 11, 37 ); + this.histogram.Name = "histogram"; + this.histogram.Size = new System.Drawing.Size( 258, 150 ); + this.histogram.TabIndex = 0; + this.histogram.Values = null; + this.histogram.SelectionChanged += new AForge.Controls.HistogramEventHandler( this.histogram_SelectionChanged ); + this.histogram.PositionChanged += new AForge.Controls.HistogramEventHandler( this.histogram_PositionChanged ); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point( 10, 12 ); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size( 49, 13 ); + this.label1.TabIndex = 1; + this.label1.Text = "Channel:"; + // + // channelCombo + // + this.channelCombo.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.channelCombo.Enabled = false; + this.channelCombo.FormattingEnabled = true; + this.channelCombo.Items.AddRange( new object[] { + "Red", + "Green", + "Blue"} ); + this.channelCombo.Location = new System.Drawing.Point( 65, 10 ); + this.channelCombo.Name = "channelCombo"; + this.channelCombo.Size = new System.Drawing.Size( 100, 21 ); + this.channelCombo.TabIndex = 2; + this.channelCombo.SelectedIndexChanged += new System.EventHandler( this.channelCombo_SelectedIndexChanged ); + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point( 10, 200 ); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size( 37, 13 ); + this.label2.TabIndex = 3; + this.label2.Text = "Mean:"; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point( 10, 220 ); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size( 49, 13 ); + this.label3.TabIndex = 4; + this.label3.Text = "Std Dev:"; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point( 10, 240 ); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size( 45, 13 ); + this.label4.TabIndex = 5; + this.label4.Text = "Median:"; + // + // label5 + // + this.label5.AutoSize = true; + this.label5.Location = new System.Drawing.Point( 10, 260 ); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size( 27, 13 ); + this.label5.TabIndex = 6; + this.label5.Text = "Min:"; + // + // label6 + // + this.label6.AutoSize = true; + this.label6.Location = new System.Drawing.Point( 10, 280 ); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size( 30, 13 ); + this.label6.TabIndex = 7; + this.label6.Text = "Max:"; + // + // meanLabel + // + this.meanLabel.Location = new System.Drawing.Point( 65, 200 ); + this.meanLabel.Name = "meanLabel"; + this.meanLabel.Size = new System.Drawing.Size( 66, 20 ); + this.meanLabel.TabIndex = 8; + // + // stdDevLabel + // + this.stdDevLabel.Location = new System.Drawing.Point( 65, 220 ); + this.stdDevLabel.Name = "stdDevLabel"; + this.stdDevLabel.Size = new System.Drawing.Size( 55, 13 ); + this.stdDevLabel.TabIndex = 9; + // + // medianLabel + // + this.medianLabel.Location = new System.Drawing.Point( 65, 240 ); + this.medianLabel.Name = "medianLabel"; + this.medianLabel.Size = new System.Drawing.Size( 55, 13 ); + this.medianLabel.TabIndex = 10; + // + // minLabel + // + this.minLabel.Location = new System.Drawing.Point( 65, 260 ); + this.minLabel.Name = "minLabel"; + this.minLabel.Size = new System.Drawing.Size( 55, 13 ); + this.minLabel.TabIndex = 11; + // + // maxLabel + // + this.maxLabel.Location = new System.Drawing.Point( 65, 280 ); + this.maxLabel.Name = "maxLabel"; + this.maxLabel.Size = new System.Drawing.Size( 55, 13 ); + this.maxLabel.TabIndex = 12; + // + // label7 + // + this.label7.AutoSize = true; + this.label7.Location = new System.Drawing.Point( 160, 200 ); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size( 36, 13 ); + this.label7.TabIndex = 13; + this.label7.Text = "Level:"; + // + // label8 + // + this.label8.AutoSize = true; + this.label8.Location = new System.Drawing.Point( 160, 220 ); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size( 38, 13 ); + this.label8.TabIndex = 14; + this.label8.Text = "Count:"; + // + // label9 + // + this.label9.AutoSize = true; + this.label9.Location = new System.Drawing.Point( 160, 240 ); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size( 57, 13 ); + this.label9.TabIndex = 15; + this.label9.Text = "Percentile:"; + // + // levelLabel + // + this.levelLabel.Location = new System.Drawing.Point( 220, 200 ); + this.levelLabel.Name = "levelLabel"; + this.levelLabel.Size = new System.Drawing.Size( 49, 13 ); + this.levelLabel.TabIndex = 16; + // + // countLabel + // + this.countLabel.Location = new System.Drawing.Point( 220, 220 ); + this.countLabel.Name = "countLabel"; + this.countLabel.Size = new System.Drawing.Size( 49, 13 ); + this.countLabel.TabIndex = 17; + // + // percentileLabel + // + this.percentileLabel.Location = new System.Drawing.Point( 220, 240 ); + this.percentileLabel.Name = "percentileLabel"; + this.percentileLabel.Size = new System.Drawing.Size( 49, 13 ); + this.percentileLabel.TabIndex = 18; + // + // HistogramForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF( 6F, 13F ); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size( 281, 306 ); + this.Controls.Add( this.percentileLabel ); + this.Controls.Add( this.countLabel ); + this.Controls.Add( this.levelLabel ); + this.Controls.Add( this.label9 ); + this.Controls.Add( this.label8 ); + this.Controls.Add( this.label7 ); + this.Controls.Add( this.maxLabel ); + this.Controls.Add( this.minLabel ); + this.Controls.Add( this.medianLabel ); + this.Controls.Add( this.stdDevLabel ); + this.Controls.Add( this.meanLabel ); + this.Controls.Add( this.label6 ); + this.Controls.Add( this.label5 ); + this.Controls.Add( this.label4 ); + this.Controls.Add( this.label3 ); + this.Controls.Add( this.label2 ); + this.Controls.Add( this.channelCombo ); + this.Controls.Add( this.label1 ); + this.Controls.Add( this.histogram ); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "HistogramForm"; + this.ShowIcon = false; + this.ShowInTaskbar = false; + this.Text = "Histogram"; + this.TopMost = true; + this.ResumeLayout( false ); + this.PerformLayout( ); + + } + + #endregion + + private AForge.Controls.Histogram histogram; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.ComboBox channelCombo; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.Label meanLabel; + private System.Windows.Forms.Label stdDevLabel; + private System.Windows.Forms.Label medianLabel; + private System.Windows.Forms.Label minLabel; + private System.Windows.Forms.Label maxLabel; + private System.Windows.Forms.Label label7; + private System.Windows.Forms.Label label8; + private System.Windows.Forms.Label label9; + private System.Windows.Forms.Label levelLabel; + private System.Windows.Forms.Label countLabel; + private System.Windows.Forms.Label percentileLabel; + } +} \ No newline at end of file diff --git a/Tools/IPPrototyper/HistogramForm.cs b/Tools/IPPrototyper/HistogramForm.cs new file mode 100644 index 00000000..984a11dd --- /dev/null +++ b/Tools/IPPrototyper/HistogramForm.cs @@ -0,0 +1,132 @@ +// Image Processing Prototyper +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2010-2011 +// contacts@aforgenet.com +// + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; + +using AForge.Math; +using AForge.Imaging; + +namespace IPPrototyper +{ + // Form to display image's histogram(s) and basic statistics like mean, std.dev, etc + internal partial class HistogramForm : Form + { + private ImageStatistics stats; + private Histogram activeHistogram; + + public HistogramForm( ) + { + InitializeComponent( ); + } + + // Set image statistics to display + public void SetImageStatistics( ImageStatistics stats ) + { + this.stats = stats; + + if ( stats.IsGrayscale ) + { + activeHistogram = stats.Gray; + histogram.Color = Color.Black; + channelCombo.Enabled = false; + + ShowInfoForActiveHistogram( ); + } + else + { + channelCombo.Enabled = true; + channelCombo.SelectedIndex = 0; + SelectChannel( 0 ); + } + } + + // Show information for the currently active histogram + private void ShowInfoForActiveHistogram( ) + { + histogram.Values = activeHistogram.Values; + meanLabel.Text = activeHistogram.Mean.ToString( "F2" ); + stdDevLabel.Text = activeHistogram.StdDev.ToString( "F2" ); + medianLabel.Text = activeHistogram.Median.ToString( ); + minLabel.Text = activeHistogram.Min.ToString( ); + maxLabel.Text = activeHistogram.Max.ToString( ); + + histogram.Values = activeHistogram.Values; + } + + // Show histogram for the specified RGB channel + private void SelectChannel( int c ) + { + switch ( c ) + { + case 0: + activeHistogram = stats.Red; + histogram.Color = Color.Red; + break; + case 1: + activeHistogram = stats.Green; + histogram.Color = Color.Green; + break; + case 2: + activeHistogram = stats.Blue; + histogram.Color = Color.Blue; + break; + } + + ShowInfoForActiveHistogram( ); + } + + // Selection has changed in RGB channel combo + private void channelCombo_SelectedIndexChanged( object sender, EventArgs e ) + { + SelectChannel( channelCombo.SelectedIndex ); + } + + // Mouse cursor's position has changed within histogram control + private void histogram_PositionChanged( object sender, AForge.Controls.HistogramEventArgs e ) + { + int pos = e.Position; + + if ( pos != -1 ) + { + levelLabel.Text = pos.ToString( ); + countLabel.Text = activeHistogram.Values[pos].ToString( ); + percentileLabel.Text = ( (float) activeHistogram.Values[pos] * 100 / stats.PixelsCount ).ToString( "F2" ); + } + else + { + levelLabel.Text = ""; + countLabel.Text = ""; + percentileLabel.Text = ""; + } + } + + // Selection has changed within histogram control + private void histogram_SelectionChanged( object sender, AForge.Controls.HistogramEventArgs e ) + { + int min = e.Min; + int max = e.Max; + int count = 0; + + levelLabel.Text = min.ToString( ) + "..." + max.ToString( ); + + // count pixels + for ( int i = min; i <= max; i++ ) + { + count += activeHistogram.Values[i]; + } + countLabel.Text = count.ToString( ); + percentileLabel.Text = ( (float) count * 100 / stats.PixelsCount ).ToString( "F2" ); + } + } +} diff --git a/Tools/IPPrototyper/HistogramForm.resx b/Tools/IPPrototyper/HistogramForm.resx new file mode 100644 index 00000000..19dc0dd8 --- /dev/null +++ b/Tools/IPPrototyper/HistogramForm.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Tools/IPPrototyper/Interfaces/AForge.Imaging.IPPrototyper.snk b/Tools/IPPrototyper/Interfaces/AForge.Imaging.IPPrototyper.snk new file mode 100644 index 00000000..90acfcca Binary files /dev/null and b/Tools/IPPrototyper/Interfaces/AForge.Imaging.IPPrototyper.snk differ diff --git a/Tools/IPPrototyper/Interfaces/IImageProcessingLog.cs b/Tools/IPPrototyper/Interfaces/IImageProcessingLog.cs new file mode 100644 index 00000000..c140f998 --- /dev/null +++ b/Tools/IPPrototyper/Interfaces/IImageProcessingLog.cs @@ -0,0 +1,45 @@ +// Image Processing Prototyper +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2010-2011 +// contacts@aforgenet.com +// + +namespace AForge.Imaging.IPPrototyper +{ + using System; + using System.Drawing; + + /// + /// Interface for image processing loggers, which keep information about image + /// processing steps. + /// + public interface IImageProcessingLog + { + /// + /// Add new image to the log. + /// + /// + /// Key/name of the image (image processing step). + /// Image to add to the log. + /// + /// Adds new image to the image processing log or replaces existing + /// image if specified key already exists in the log. + /// + void AddImage( string key, Bitmap image ); + + /// + /// Add messafe to the log. + /// + /// + /// Message to add to the image processing log. + /// + void AddMessage( string message ); + + /// + /// Clear image processing log removing all images and messages from it. + /// + void Clear( ); + } +} diff --git a/Tools/IPPrototyper/Interfaces/IImageProcessingRoutine.cs b/Tools/IPPrototyper/Interfaces/IImageProcessingRoutine.cs new file mode 100644 index 00000000..95db1a6d --- /dev/null +++ b/Tools/IPPrototyper/Interfaces/IImageProcessingRoutine.cs @@ -0,0 +1,33 @@ +// Image Processing Prototyper +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2010-2011 +// contacts@aforgenet.com +// + +namespace AForge.Imaging.IPPrototyper +{ + using System; + using System.Drawing; + + /// + /// Interface to implement by image processing routine. + /// + public interface IImageProcessingRoutine + { + /// + /// Image processing routine's name. + /// + string Name { get; } + + /// + /// Perform image processing routine. + /// + /// + /// Source image to perform image processing on. + /// Logger to use to put information about image processing steps/results. + /// + void Process( Bitmap image, IImageProcessingLog log ); + } +} diff --git a/Tools/IPPrototyper/Interfaces/ImageProcessingLog.cs b/Tools/IPPrototyper/Interfaces/ImageProcessingLog.cs new file mode 100644 index 00000000..2a46e25f --- /dev/null +++ b/Tools/IPPrototyper/Interfaces/ImageProcessingLog.cs @@ -0,0 +1,90 @@ +// Image Processing Prototyper +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2010-2011 +// contacts@aforgenet.com +// + +using System; +using System.Collections.Generic; +using System.Text; +using System.Drawing; +using AForge.Imaging.IPPrototyper; + +namespace AForge.Imaging.IPPrototyper +{ + /// + /// Default implementation of interface. + /// + public class ImageProcessingLog : IImageProcessingLog + { + private Dictionary images = new Dictionary( ); + private List messages = new List( ); + + /// + /// Collection of images representing image processing steps. + /// + public Dictionary Images + { + get { return images; } + } + + /// + /// List of messages stored in the log. + /// + public List Messages + { + get { return messages; } + } + + /// + /// Clear image processing log removing all images and messages from it. + /// + public void Clear( ) + { + foreach ( KeyValuePair kvp in images ) + { + kvp.Value.Dispose( ); + } + images.Clear( ); + messages.Clear( ); + } + + /// + /// Add new image to the log. + /// + /// + /// Key/name of the image (image processing step). + /// Image to add to the log. + /// + /// Adds new image to the image processing log or replaces existing + /// image if specified key already exists in the log. + /// + public void AddImage( string key, Bitmap image ) + { + Bitmap imageToStore = (Bitmap) image.Clone( ); + + if ( images.ContainsKey( key ) ) + { + images[key].Dispose( ); + images[key] = imageToStore; + } + else + { + images.Add( key, imageToStore ); + } + } + + /// + /// Add messafe to the log. + /// + /// + /// Message to add to the image processing log. + /// + public void AddMessage( string message ) + { + messages.Add( message ); + } + } +} diff --git a/Tools/IPPrototyper/Interfaces/Interfaces.csproj b/Tools/IPPrototyper/Interfaces/Interfaces.csproj new file mode 100644 index 00000000..e6f2b62a --- /dev/null +++ b/Tools/IPPrototyper/Interfaces/Interfaces.csproj @@ -0,0 +1,99 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {BE2859E0-ED2E-4038-9B11-9E410FEA25F0} + Library + Properties + AForge.Imaging.IPPrototyper + AForge.Imaging.IPPrototyper + v2.0 + 512 + true + AForge.Imaging.IPPrototyper.snk + + + 3.5 + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + + true + full + false + ..\..\..\Release\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + ..\..\..\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + False + Microsoft .NET Framework 4 %28x86 and x64%29 + true + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 3.1 + true + + + + + \ No newline at end of file diff --git a/Tools/IPPrototyper/Interfaces/Properties/AssemblyInfo.cs b/Tools/IPPrototyper/Interfaces/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..31d14529 --- /dev/null +++ b/Tools/IPPrototyper/Interfaces/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle( "AForge.Imaging.IPPrototyper" )] +[assembly: AssemblyDescription( "Interfaces for IPPrototyper tool" )] +[assembly: AssemblyConfiguration( "" )] +[assembly: AssemblyCompany( "AForge" )] +[assembly: AssemblyProduct( "AForge.NET" )] +[assembly: AssemblyCopyright( "AForge © 2012" )] +[assembly: AssemblyTrademark( "" )] +[assembly: AssemblyCulture( "" )] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible( false )] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid( "894e5929-c328-4c50-8a3b-ac46c3c43a0e" )] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion( "1.0.1.1" )] +[assembly: AssemblyFileVersion( "1.0.1.1" )] diff --git a/Tools/IPPrototyper/MainForm.Designer.cs b/Tools/IPPrototyper/MainForm.Designer.cs new file mode 100644 index 00000000..33936d32 --- /dev/null +++ b/Tools/IPPrototyper/MainForm.Designer.cs @@ -0,0 +1,508 @@ +namespace IPPrototyper +{ + partial class MainForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose( bool disposing ) + { + if ( disposing && ( components != null ) ) + { + components.Dispose( ); + } + base.Dispose( disposing ); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent( ) + { + this.menuStrip = new System.Windows.Forms.MenuStrip( ); + this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem( ); + this.openFolderToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem( ); + this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripSeparator( ); + this.recentFoldersToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem( ); + this.toolStripMenuItem2 = new System.Windows.Forms.ToolStripSeparator( ); + this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem( ); + this.toolsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem( ); + this.copyImageClipboardToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem( ); + this.showhistogramToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem( ); + this.modulesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem( ); + this.settingsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem( ); + this.imageviewToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem( ); + this.normalToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem( ); + this.centerToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem( ); + this.stretchToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem( ); + this.openLastFolderOnStartToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem( ); + this.helpToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem( ); + this.aboutToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem( ); + this.statusStrip = new System.Windows.Forms.StatusStrip( ); + this.imagesCountLabel = new System.Windows.Forms.ToolStripStatusLabel( ); + this.processingTimeLabel = new System.Windows.Forms.ToolStripStatusLabel( ); + this.imageSizeLabel = new System.Windows.Forms.ToolStripStatusLabel( ); + this.toolStripStatusLabel1 = new System.Windows.Forms.ToolStripStatusLabel( ); + this.mainPanel = new System.Windows.Forms.Panel( ); + this.mainSplitContainer = new System.Windows.Forms.SplitContainer( ); + this.splitContainer1 = new System.Windows.Forms.SplitContainer( ); + this.filesListView = new System.Windows.Forms.ListView( ); + this.fileNameColumn = new System.Windows.Forms.ColumnHeader( ); + this.logListView = new System.Windows.Forms.ListView( ); + this.processingStepsColumn = new System.Windows.Forms.ColumnHeader( ); + this.splitContainer2 = new System.Windows.Forms.SplitContainer( ); + this.pictureBox = new System.Windows.Forms.PictureBox( ); + this.logBox = new System.Windows.Forms.TextBox( ); + this.folderBrowserDialog = new System.Windows.Forms.FolderBrowserDialog( ); + this.autoSizeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem( ); + this.menuStrip.SuspendLayout( ); + this.statusStrip.SuspendLayout( ); + this.mainPanel.SuspendLayout( ); + this.mainSplitContainer.Panel1.SuspendLayout( ); + this.mainSplitContainer.Panel2.SuspendLayout( ); + this.mainSplitContainer.SuspendLayout( ); + this.splitContainer1.Panel1.SuspendLayout( ); + this.splitContainer1.Panel2.SuspendLayout( ); + this.splitContainer1.SuspendLayout( ); + this.splitContainer2.Panel1.SuspendLayout( ); + this.splitContainer2.Panel2.SuspendLayout( ); + this.splitContainer2.SuspendLayout( ); + ( (System.ComponentModel.ISupportInitialize) ( this.pictureBox ) ).BeginInit( ); + this.SuspendLayout( ); + // + // menuStrip + // + this.menuStrip.Items.AddRange( new System.Windows.Forms.ToolStripItem[] { + this.fileToolStripMenuItem, + this.toolsToolStripMenuItem, + this.modulesToolStripMenuItem, + this.settingsToolStripMenuItem, + this.helpToolStripMenuItem} ); + this.menuStrip.Location = new System.Drawing.Point( 0, 0 ); + this.menuStrip.Name = "menuStrip"; + this.menuStrip.Size = new System.Drawing.Size( 694, 24 ); + this.menuStrip.TabIndex = 0; + this.menuStrip.Text = "menuStrip1"; + // + // fileToolStripMenuItem + // + this.fileToolStripMenuItem.DropDownItems.AddRange( new System.Windows.Forms.ToolStripItem[] { + this.openFolderToolStripMenuItem, + this.toolStripMenuItem1, + this.recentFoldersToolStripMenuItem, + this.toolStripMenuItem2, + this.exitToolStripMenuItem} ); + this.fileToolStripMenuItem.Name = "fileToolStripMenuItem"; + this.fileToolStripMenuItem.Size = new System.Drawing.Size( 37, 20 ); + this.fileToolStripMenuItem.Text = "&File"; + // + // openFolderToolStripMenuItem + // + this.openFolderToolStripMenuItem.Name = "openFolderToolStripMenuItem"; + this.openFolderToolStripMenuItem.ShortcutKeys = ( (System.Windows.Forms.Keys) ( ( System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.O ) ) ); + this.openFolderToolStripMenuItem.Size = new System.Drawing.Size( 180, 22 ); + this.openFolderToolStripMenuItem.Text = "&Open folder"; + this.openFolderToolStripMenuItem.Click += new System.EventHandler( this.openFolderToolStripMenuItem_Click ); + // + // toolStripMenuItem1 + // + this.toolStripMenuItem1.Name = "toolStripMenuItem1"; + this.toolStripMenuItem1.Size = new System.Drawing.Size( 177, 6 ); + // + // recentFoldersToolStripMenuItem + // + this.recentFoldersToolStripMenuItem.Name = "recentFoldersToolStripMenuItem"; + this.recentFoldersToolStripMenuItem.Size = new System.Drawing.Size( 180, 22 ); + this.recentFoldersToolStripMenuItem.Text = "&Recent Folders"; + // + // toolStripMenuItem2 + // + this.toolStripMenuItem2.Name = "toolStripMenuItem2"; + this.toolStripMenuItem2.Size = new System.Drawing.Size( 177, 6 ); + // + // exitToolStripMenuItem + // + this.exitToolStripMenuItem.Name = "exitToolStripMenuItem"; + this.exitToolStripMenuItem.Size = new System.Drawing.Size( 180, 22 ); + this.exitToolStripMenuItem.Text = "E&xit"; + this.exitToolStripMenuItem.Click += new System.EventHandler( this.exitToolStripMenuItem_Click ); + // + // toolsToolStripMenuItem + // + this.toolsToolStripMenuItem.DropDownItems.AddRange( new System.Windows.Forms.ToolStripItem[] { + this.copyImageClipboardToolStripMenuItem, + this.showhistogramToolStripMenuItem} ); + this.toolsToolStripMenuItem.Name = "toolsToolStripMenuItem"; + this.toolsToolStripMenuItem.Size = new System.Drawing.Size( 48, 20 ); + this.toolsToolStripMenuItem.Text = "&Tools"; + this.toolsToolStripMenuItem.DropDownOpening += new System.EventHandler( this.toolsToolStripMenuItem_DropDownOpening ); + // + // copyImageClipboardToolStripMenuItem + // + this.copyImageClipboardToolStripMenuItem.Name = "copyImageClipboardToolStripMenuItem"; + this.copyImageClipboardToolStripMenuItem.Size = new System.Drawing.Size( 205, 22 ); + this.copyImageClipboardToolStripMenuItem.Text = "&Copy image to clipboard"; + this.copyImageClipboardToolStripMenuItem.Click += new System.EventHandler( this.copyImageClipboardToolStripMenuItem_Click ); + // + // showhistogramToolStripMenuItem + // + this.showhistogramToolStripMenuItem.Name = "showhistogramToolStripMenuItem"; + this.showhistogramToolStripMenuItem.Size = new System.Drawing.Size( 205, 22 ); + this.showhistogramToolStripMenuItem.Text = "Show &histogram"; + this.showhistogramToolStripMenuItem.Click += new System.EventHandler( this.showhistogramToolStripMenuItem_Click ); + // + // modulesToolStripMenuItem + // + this.modulesToolStripMenuItem.Name = "modulesToolStripMenuItem"; + this.modulesToolStripMenuItem.Size = new System.Drawing.Size( 65, 20 ); + this.modulesToolStripMenuItem.Text = "&Modules"; + this.modulesToolStripMenuItem.DropDownOpening += new System.EventHandler( this.modulesToolStripMenuItem_DropDownOpening ); + // + // settingsToolStripMenuItem + // + this.settingsToolStripMenuItem.DropDownItems.AddRange( new System.Windows.Forms.ToolStripItem[] { + this.imageviewToolStripMenuItem, + this.openLastFolderOnStartToolStripMenuItem} ); + this.settingsToolStripMenuItem.Name = "settingsToolStripMenuItem"; + this.settingsToolStripMenuItem.Size = new System.Drawing.Size( 61, 20 ); + this.settingsToolStripMenuItem.Text = "&Settings"; + // + // imageviewToolStripMenuItem + // + this.imageviewToolStripMenuItem.DropDownItems.AddRange( new System.Windows.Forms.ToolStripItem[] { + this.normalToolStripMenuItem, + this.centerToolStripMenuItem, + this.stretchToolStripMenuItem, + this.autoSizeToolStripMenuItem} ); + this.imageviewToolStripMenuItem.Name = "imageviewToolStripMenuItem"; + this.imageviewToolStripMenuItem.Size = new System.Drawing.Size( 201, 22 ); + this.imageviewToolStripMenuItem.Text = "Image &view"; + this.imageviewToolStripMenuItem.DropDownOpening += new System.EventHandler( this.imageviewToolStripMenuItem_DropDownOpening ); + // + // normalToolStripMenuItem + // + this.normalToolStripMenuItem.Name = "normalToolStripMenuItem"; + this.normalToolStripMenuItem.Size = new System.Drawing.Size( 152, 22 ); + this.normalToolStripMenuItem.Text = "&Normal"; + this.normalToolStripMenuItem.Click += new System.EventHandler( this.normalToolStripMenuItem_Click ); + // + // centerToolStripMenuItem + // + this.centerToolStripMenuItem.Name = "centerToolStripMenuItem"; + this.centerToolStripMenuItem.Size = new System.Drawing.Size( 152, 22 ); + this.centerToolStripMenuItem.Text = "&Center"; + this.centerToolStripMenuItem.Click += new System.EventHandler( this.centerToolStripMenuItem_Click ); + // + // stretchToolStripMenuItem + // + this.stretchToolStripMenuItem.Name = "stretchToolStripMenuItem"; + this.stretchToolStripMenuItem.Size = new System.Drawing.Size( 152, 22 ); + this.stretchToolStripMenuItem.Text = "&Stretch"; + this.stretchToolStripMenuItem.Click += new System.EventHandler( this.stretchToolStripMenuItem_Click ); + // + // openLastFolderOnStartToolStripMenuItem + // + this.openLastFolderOnStartToolStripMenuItem.Name = "openLastFolderOnStartToolStripMenuItem"; + this.openLastFolderOnStartToolStripMenuItem.Size = new System.Drawing.Size( 201, 22 ); + this.openLastFolderOnStartToolStripMenuItem.Text = "&Open last folder on start"; + this.openLastFolderOnStartToolStripMenuItem.Click += new System.EventHandler( this.openLastFolderOnStartToolStripMenuItem_Click ); + // + // helpToolStripMenuItem + // + this.helpToolStripMenuItem.DropDownItems.AddRange( new System.Windows.Forms.ToolStripItem[] { + this.aboutToolStripMenuItem} ); + this.helpToolStripMenuItem.Name = "helpToolStripMenuItem"; + this.helpToolStripMenuItem.Size = new System.Drawing.Size( 44, 20 ); + this.helpToolStripMenuItem.Text = "&Help"; + // + // aboutToolStripMenuItem + // + this.aboutToolStripMenuItem.Name = "aboutToolStripMenuItem"; + this.aboutToolStripMenuItem.Size = new System.Drawing.Size( 107, 22 ); + this.aboutToolStripMenuItem.Text = "&About"; + this.aboutToolStripMenuItem.Click += new System.EventHandler( this.aboutToolStripMenuItem_Click ); + // + // statusStrip + // + this.statusStrip.Items.AddRange( new System.Windows.Forms.ToolStripItem[] { + this.imagesCountLabel, + this.processingTimeLabel, + this.imageSizeLabel, + this.toolStripStatusLabel1} ); + this.statusStrip.Location = new System.Drawing.Point( 0, 436 ); + this.statusStrip.Name = "statusStrip"; + this.statusStrip.Size = new System.Drawing.Size( 694, 22 ); + this.statusStrip.TabIndex = 1; + this.statusStrip.Text = "statusStrip1"; + // + // imagesCountLabel + // + this.imagesCountLabel.AutoSize = false; + this.imagesCountLabel.BorderSides = ( (System.Windows.Forms.ToolStripStatusLabelBorderSides) ( ( ( ( System.Windows.Forms.ToolStripStatusLabelBorderSides.Left | System.Windows.Forms.ToolStripStatusLabelBorderSides.Top ) + | System.Windows.Forms.ToolStripStatusLabelBorderSides.Right ) + | System.Windows.Forms.ToolStripStatusLabelBorderSides.Bottom ) ) ); + this.imagesCountLabel.BorderStyle = System.Windows.Forms.Border3DStyle.SunkenInner; + this.imagesCountLabel.Name = "imagesCountLabel"; + this.imagesCountLabel.Size = new System.Drawing.Size( 150, 17 ); + this.imagesCountLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // processingTimeLabel + // + this.processingTimeLabel.AutoSize = false; + this.processingTimeLabel.BorderSides = ( (System.Windows.Forms.ToolStripStatusLabelBorderSides) ( ( ( ( System.Windows.Forms.ToolStripStatusLabelBorderSides.Left | System.Windows.Forms.ToolStripStatusLabelBorderSides.Top ) + | System.Windows.Forms.ToolStripStatusLabelBorderSides.Right ) + | System.Windows.Forms.ToolStripStatusLabelBorderSides.Bottom ) ) ); + this.processingTimeLabel.BorderStyle = System.Windows.Forms.Border3DStyle.SunkenInner; + this.processingTimeLabel.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.processingTimeLabel.Name = "processingTimeLabel"; + this.processingTimeLabel.Size = new System.Drawing.Size( 150, 17 ); + this.processingTimeLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.processingTimeLabel.ToolTipText = "Time taken processing last image"; + // + // imageSizeLabel + // + this.imageSizeLabel.AutoSize = false; + this.imageSizeLabel.BorderSides = ( (System.Windows.Forms.ToolStripStatusLabelBorderSides) ( ( ( ( System.Windows.Forms.ToolStripStatusLabelBorderSides.Left | System.Windows.Forms.ToolStripStatusLabelBorderSides.Top ) + | System.Windows.Forms.ToolStripStatusLabelBorderSides.Right ) + | System.Windows.Forms.ToolStripStatusLabelBorderSides.Bottom ) ) ); + this.imageSizeLabel.BorderStyle = System.Windows.Forms.Border3DStyle.SunkenInner; + this.imageSizeLabel.Name = "imageSizeLabel"; + this.imageSizeLabel.Size = new System.Drawing.Size( 150, 17 ); + this.imageSizeLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.imageSizeLabel.ToolTipText = "Size of currently shown image"; + // + // toolStripStatusLabel1 + // + this.toolStripStatusLabel1.BorderSides = ( (System.Windows.Forms.ToolStripStatusLabelBorderSides) ( ( ( ( System.Windows.Forms.ToolStripStatusLabelBorderSides.Left | System.Windows.Forms.ToolStripStatusLabelBorderSides.Top ) + | System.Windows.Forms.ToolStripStatusLabelBorderSides.Right ) + | System.Windows.Forms.ToolStripStatusLabelBorderSides.Bottom ) ) ); + this.toolStripStatusLabel1.BorderStyle = System.Windows.Forms.Border3DStyle.SunkenInner; + this.toolStripStatusLabel1.Name = "toolStripStatusLabel1"; + this.toolStripStatusLabel1.Size = new System.Drawing.Size( 229, 17 ); + this.toolStripStatusLabel1.Spring = true; + // + // mainPanel + // + this.mainPanel.Controls.Add( this.mainSplitContainer ); + this.mainPanel.Dock = System.Windows.Forms.DockStyle.Fill; + this.mainPanel.Location = new System.Drawing.Point( 0, 24 ); + this.mainPanel.Name = "mainPanel"; + this.mainPanel.Size = new System.Drawing.Size( 694, 412 ); + this.mainPanel.TabIndex = 2; + // + // mainSplitContainer + // + this.mainSplitContainer.Dock = System.Windows.Forms.DockStyle.Fill; + this.mainSplitContainer.Location = new System.Drawing.Point( 0, 0 ); + this.mainSplitContainer.Name = "mainSplitContainer"; + // + // mainSplitContainer.Panel1 + // + this.mainSplitContainer.Panel1.Controls.Add( this.splitContainer1 ); + this.mainSplitContainer.Panel1.Resize += new System.EventHandler( this.mainSplitContainer_Panel1_Resize ); + // + // mainSplitContainer.Panel2 + // + this.mainSplitContainer.Panel2.Controls.Add( this.splitContainer2 ); + this.mainSplitContainer.Size = new System.Drawing.Size( 694, 412 ); + this.mainSplitContainer.SplitterDistance = 185; + this.mainSplitContainer.TabIndex = 4; + // + // splitContainer1 + // + this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill; + this.splitContainer1.Location = new System.Drawing.Point( 0, 0 ); + this.splitContainer1.Name = "splitContainer1"; + this.splitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal; + // + // splitContainer1.Panel1 + // + this.splitContainer1.Panel1.Controls.Add( this.filesListView ); + // + // splitContainer1.Panel2 + // + this.splitContainer1.Panel2.Controls.Add( this.logListView ); + this.splitContainer1.Size = new System.Drawing.Size( 185, 412 ); + this.splitContainer1.SplitterDistance = 206; + this.splitContainer1.TabIndex = 3; + // + // filesListView + // + this.filesListView.Columns.AddRange( new System.Windows.Forms.ColumnHeader[] { + this.fileNameColumn} ); + this.filesListView.Dock = System.Windows.Forms.DockStyle.Fill; + this.filesListView.FullRowSelect = true; + this.filesListView.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable; + this.filesListView.HideSelection = false; + this.filesListView.Location = new System.Drawing.Point( 0, 0 ); + this.filesListView.MultiSelect = false; + this.filesListView.Name = "filesListView"; + this.filesListView.Size = new System.Drawing.Size( 185, 206 ); + this.filesListView.Sorting = System.Windows.Forms.SortOrder.Ascending; + this.filesListView.TabIndex = 0; + this.filesListView.UseCompatibleStateImageBehavior = false; + this.filesListView.View = System.Windows.Forms.View.Details; + this.filesListView.SelectedIndexChanged += new System.EventHandler( this.filesListView_SelectedIndexChanged ); + // + // fileNameColumn + // + this.fileNameColumn.Text = "File names"; + this.fileNameColumn.Width = 130; + // + // logListView + // + this.logListView.Columns.AddRange( new System.Windows.Forms.ColumnHeader[] { + this.processingStepsColumn} ); + this.logListView.Dock = System.Windows.Forms.DockStyle.Fill; + this.logListView.FullRowSelect = true; + this.logListView.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable; + this.logListView.HideSelection = false; + this.logListView.Location = new System.Drawing.Point( 0, 0 ); + this.logListView.MultiSelect = false; + this.logListView.Name = "logListView"; + this.logListView.Size = new System.Drawing.Size( 185, 202 ); + this.logListView.TabIndex = 2; + this.logListView.UseCompatibleStateImageBehavior = false; + this.logListView.View = System.Windows.Forms.View.Details; + this.logListView.SelectedIndexChanged += new System.EventHandler( this.logListView_SelectedIndexChanged ); + // + // processingStepsColumn + // + this.processingStepsColumn.Text = "Processing steps"; + this.processingStepsColumn.Width = 130; + // + // splitContainer2 + // + this.splitContainer2.Dock = System.Windows.Forms.DockStyle.Fill; + this.splitContainer2.Location = new System.Drawing.Point( 0, 0 ); + this.splitContainer2.Name = "splitContainer2"; + this.splitContainer2.Orientation = System.Windows.Forms.Orientation.Horizontal; + // + // splitContainer2.Panel1 + // + this.splitContainer2.Panel1.Controls.Add( this.pictureBox ); + // + // splitContainer2.Panel2 + // + this.splitContainer2.Panel2.Controls.Add( this.logBox ); + this.splitContainer2.Size = new System.Drawing.Size( 505, 412 ); + this.splitContainer2.SplitterDistance = 301; + this.splitContainer2.TabIndex = 6; + // + // pictureBox + // + this.pictureBox.BackColor = System.Drawing.SystemColors.ControlDark; + this.pictureBox.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.pictureBox.Dock = System.Windows.Forms.DockStyle.Fill; + this.pictureBox.Location = new System.Drawing.Point( 0, 0 ); + this.pictureBox.Name = "pictureBox"; + this.pictureBox.Size = new System.Drawing.Size( 505, 301 ); + this.pictureBox.TabIndex = 1; + this.pictureBox.TabStop = false; + // + // logBox + // + this.logBox.Dock = System.Windows.Forms.DockStyle.Fill; + this.logBox.Location = new System.Drawing.Point( 0, 0 ); + this.logBox.Multiline = true; + this.logBox.Name = "logBox"; + this.logBox.ReadOnly = true; + this.logBox.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; + this.logBox.Size = new System.Drawing.Size( 505, 107 ); + this.logBox.TabIndex = 7; + // + // folderBrowserDialog + // + this.folderBrowserDialog.Description = "Select folder containing images to process:"; + // + // autoSizeToolStripMenuItem + // + this.autoSizeToolStripMenuItem.Name = "autoSizeToolStripMenuItem"; + this.autoSizeToolStripMenuItem.Size = new System.Drawing.Size( 152, 22 ); + this.autoSizeToolStripMenuItem.Text = "&Auto Size"; + this.autoSizeToolStripMenuItem.Click += new System.EventHandler( this.autoSizeToolStripMenuItem_Click ); + // + // MainForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF( 6F, 13F ); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size( 694, 458 ); + this.Controls.Add( this.mainPanel ); + this.Controls.Add( this.statusStrip ); + this.Controls.Add( this.menuStrip ); + this.MainMenuStrip = this.menuStrip; + this.Name = "MainForm"; + this.Text = "Image Processing Prototyper"; + this.Load += new System.EventHandler( this.MainForm_Load ); + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler( this.MainForm_FormClosing ); + this.menuStrip.ResumeLayout( false ); + this.menuStrip.PerformLayout( ); + this.statusStrip.ResumeLayout( false ); + this.statusStrip.PerformLayout( ); + this.mainPanel.ResumeLayout( false ); + this.mainSplitContainer.Panel1.ResumeLayout( false ); + this.mainSplitContainer.Panel2.ResumeLayout( false ); + this.mainSplitContainer.ResumeLayout( false ); + this.splitContainer1.Panel1.ResumeLayout( false ); + this.splitContainer1.Panel2.ResumeLayout( false ); + this.splitContainer1.ResumeLayout( false ); + this.splitContainer2.Panel1.ResumeLayout( false ); + this.splitContainer2.Panel2.ResumeLayout( false ); + this.splitContainer2.Panel2.PerformLayout( ); + this.splitContainer2.ResumeLayout( false ); + ( (System.ComponentModel.ISupportInitialize) ( this.pictureBox ) ).EndInit( ); + this.ResumeLayout( false ); + this.PerformLayout( ); + + } + + #endregion + + private System.Windows.Forms.MenuStrip menuStrip; + private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem openFolderToolStripMenuItem; + private System.Windows.Forms.ToolStripSeparator toolStripMenuItem1; + private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem; + private System.Windows.Forms.StatusStrip statusStrip; + private System.Windows.Forms.Panel mainPanel; + private System.Windows.Forms.FolderBrowserDialog folderBrowserDialog; + private System.Windows.Forms.ListView filesListView; + private System.Windows.Forms.ColumnHeader fileNameColumn; + private System.Windows.Forms.PictureBox pictureBox; + private System.Windows.Forms.ListView logListView; + private System.Windows.Forms.ColumnHeader processingStepsColumn; + private System.Windows.Forms.ToolStripMenuItem settingsToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem imageviewToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem normalToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem centerToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem helpToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem stretchToolStripMenuItem; + private System.Windows.Forms.SplitContainer splitContainer1; + private System.Windows.Forms.ToolStripMenuItem modulesToolStripMenuItem; + private System.Windows.Forms.SplitContainer mainSplitContainer; + private System.Windows.Forms.SplitContainer splitContainer2; + private System.Windows.Forms.TextBox logBox; + private System.Windows.Forms.ToolStripMenuItem aboutToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem toolsToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem copyImageClipboardToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem showhistogramToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem recentFoldersToolStripMenuItem; + private System.Windows.Forms.ToolStripSeparator toolStripMenuItem2; + private System.Windows.Forms.ToolStripMenuItem openLastFolderOnStartToolStripMenuItem; + private System.Windows.Forms.ToolStripStatusLabel imagesCountLabel; + private System.Windows.Forms.ToolStripStatusLabel toolStripStatusLabel1; + private System.Windows.Forms.ToolStripStatusLabel processingTimeLabel; + private System.Windows.Forms.ToolStripStatusLabel imageSizeLabel; + private System.Windows.Forms.ToolStripMenuItem autoSizeToolStripMenuItem; + } +} + diff --git a/Tools/IPPrototyper/MainForm.cs b/Tools/IPPrototyper/MainForm.cs new file mode 100644 index 00000000..1afe7eef --- /dev/null +++ b/Tools/IPPrototyper/MainForm.cs @@ -0,0 +1,674 @@ +// Image Processing Prototyper +// AForge.NET framework +// http://www.aforgenet.com/framework/ +// +// Copyright © AForge.NET, 2010-2011 +// contacts@aforgenet.com +// + +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +using System.Windows.Forms; +using System.IO; +using System.Reflection; + +using AForge; +using AForge.Imaging; +using AForge.Imaging.IPPrototyper; + +namespace IPPrototyper +{ + internal partial class MainForm : Form + { + // selected folder containing images to process + private string selectedFolder; + // list of found image processing routines + private Dictionary processingRoutines = new Dictionary( ); + // currently active image processing routine to use + private IImageProcessingRoutine ipRoutineToUse = null; + // image processing log + private ImageProcessingLog processingLog = new ImageProcessingLog( ); + + private HistogramForm histogramForm = null; + + // list of recently used folders + private List recentFolders = new List( ); + + // stopwatch to measure time taken by image processing routine + System.Diagnostics.Stopwatch stopWatch = new System.Diagnostics.Stopwatch( ); + + #region Configuration Option Names + private const string mainFormXOption = "MainFormX"; + private const string mainFormYOption = "MainFormY"; + private const string mainFormWidthOption = "MainFormWidth"; + private const string mainFormHeightOption = "MainFormHeight"; + private const string mainFormStateOption = "MainFormState"; + private const string splitter1Option = "Splitter1"; + private const string splitter2Option = "Splitter2"; + private const string splitter3Option = "Splitter3"; + private const string recentFolderOption = "RecentFolder"; + private const string pictureSizeModeOption = "PictureSizeMode"; + private const string openLastOption = "OpenLastFolder"; + #endregion + + + public MainForm( ) + { + InitializeComponent( ); + + } + + // On form loading + private void MainForm_Load( object sender, EventArgs e ) + { + // collect available modules in application's directory + CollectModules( Path.GetDirectoryName( Application.ExecutablePath ) ); + // add modules' name to application's menu + foreach ( string routineName in processingRoutines.Keys ) + { + ToolStripItem item = modulesToolStripMenuItem.DropDownItems.Add( routineName ); + + item.Click += new System.EventHandler( this.module_Click ); + + if ( ipRoutineToUse == null ) + { + ipRoutineToUse = processingRoutines[routineName]; + } + } + + // load configuratio + Configuration config = Configuration.Instance; + + if ( config.Load( ) ) + { + try + { + bool windowPositionIsValid = false; + // get window location/size + Size windowSize = new Size( + int.Parse( config.GetConfigurationOption( mainFormWidthOption ) ), + int.Parse( config.GetConfigurationOption( mainFormHeightOption ) ) ); + System.Drawing.Point windowTopLeft = new System.Drawing.Point( + int.Parse( config.GetConfigurationOption( mainFormXOption ) ), + int.Parse( config.GetConfigurationOption( mainFormYOption ) ) ); + System.Drawing.Point windowTopRight = new System.Drawing.Point( + windowTopLeft.X + windowSize.Width, windowTopLeft.Y ); + + // check if window location is within of the displays + foreach ( Screen screen in Screen.AllScreens ) + { + if ( ( screen.WorkingArea.Contains( windowTopLeft ) ) || + ( screen.WorkingArea.Contains( windowTopRight ) ) ) + { + windowPositionIsValid = true; + break; + } + } + + if ( windowPositionIsValid ) + { + Location = windowTopLeft; + Size = windowSize; + + WindowState = (FormWindowState) Enum.Parse( typeof( FormWindowState ), + config.GetConfigurationOption( mainFormStateOption ) ); + + mainSplitContainer.SplitterDistance = int.Parse( config.GetConfigurationOption( splitter1Option ) ); + splitContainer1.SplitterDistance = int.Parse( config.GetConfigurationOption( splitter2Option ) ); + splitContainer2.SplitterDistance = int.Parse( config.GetConfigurationOption( splitter3Option ) ); + } + + // get size mode of picture box + SetPictureBoxSizeMode( (PictureBoxSizeMode) Enum.Parse( typeof( PictureBoxSizeMode ), + config.GetConfigurationOption( pictureSizeModeOption ) ) ); + + // get recent folders + for ( int i = 0; i < 7; i++ ) + { + string rf = config.GetConfigurationOption( recentFolderOption + i ); + + if ( rf != null ) + recentFolders.Add( rf ); + } + + RebuildRecentFoldersList( ); + + bool openLast = bool.Parse( config.GetConfigurationOption( openLastOption ) ); + openLastFolderOnStartToolStripMenuItem.Checked = openLast; + + if ( ( openLast ) && ( recentFolders.Count > 0 ) ) + { + OpenFolder( recentFolders[0] ); + } + } + catch + { + } + } + } + + // Rebuild menu with the list of recently used folders + private void RebuildRecentFoldersList( ) + { + // unsubscribe from events + foreach ( ToolStripItem item in recentFoldersToolStripMenuItem.DropDownItems ) + { + item.Click -= new EventHandler( recentFolder_Click ); + } + + // remove all current items + recentFoldersToolStripMenuItem.DropDownItems.Clear( ); + + // add new items + foreach ( string folderName in recentFolders ) + { + ToolStripItem item = recentFoldersToolStripMenuItem.DropDownItems.Add( folderName ); + + item.Click += new EventHandler( recentFolder_Click ); + } + } + + // On form closing + private void MainForm_FormClosing( object sender, FormClosingEventArgs e ) + { + Configuration config = Configuration.Instance; + + // save window location/size + if ( WindowState != FormWindowState.Minimized ) + { + if ( WindowState != FormWindowState.Maximized ) + { + config.SetConfigurationOption( mainFormXOption, Location.X.ToString( ) ); + config.SetConfigurationOption( mainFormYOption, Location.Y.ToString( ) ); + config.SetConfigurationOption( mainFormWidthOption, Width.ToString( ) ); + config.SetConfigurationOption( mainFormHeightOption, Height.ToString( ) ); + } + config.SetConfigurationOption( mainFormStateOption, WindowState.ToString( ) ); + + config.SetConfigurationOption( splitter1Option, mainSplitContainer.SplitterDistance.ToString( ) ); + config.SetConfigurationOption( splitter2Option, splitContainer1.SplitterDistance.ToString( ) ); + config.SetConfigurationOption( splitter3Option, splitContainer2.SplitterDistance.ToString( ) ); + } + + // save size mode of picture box + config.SetConfigurationOption( pictureSizeModeOption, pictureBox.SizeMode.ToString( ) ); + + // save recent folders + for ( int i = 0, n = recentFolders.Count; i < n; i++ ) + { + config.SetConfigurationOption( recentFolderOption + i, recentFolders[i] ); + } + config.SetConfigurationOption( openLastOption, openLastFolderOnStartToolStripMenuItem.Checked.ToString( ) ); + + try + { + config.Save( ); + } + catch ( IOException ex ) + { + MessageBox.Show( "Failed saving confguration file.\r\n\r\n" + ex.Message, + "Error", MessageBoxButtons.OK, MessageBoxIcon.Error ); + } + } + + // Add folder to the list of recently used folders + public void AddRecentFolder( string folderName ) + { + int index = recentFolders.IndexOf( folderName ); + + if ( index != 0 ) + { + if ( index != -1 ) + { + // remove previous entry + recentFolders.RemoveAt( index ); + } + + // put this folder as the most recent + recentFolders.Insert( 0, folderName ); + + if ( recentFolders.Count > 7 ) + { + recentFolders.RemoveAt( 7 ); + } + } + } + + // Remove specified folder from the list of recently used folders + public void RemoveRecentFolder( string folderName ) + { + recentFolders.Remove( folderName ); + } + + // Update check style of modules' items + private void modulesToolStripMenuItem_DropDownOpening( object sender, EventArgs e ) + { + foreach ( ToolStripMenuItem item in modulesToolStripMenuItem.DropDownItems ) + { + item.Checked = ( ( ipRoutineToUse != null ) && ( ipRoutineToUse.Name == item.Text ) ); + } + } + + // Item is clicked in modules' menu + private void module_Click( object sender, EventArgs e ) + { + ipRoutineToUse = processingRoutines[( (ToolStripMenuItem) sender ).Text]; + ProcessSelectedImage( ); + } + + // Exit from application + private void exitToolStripMenuItem_Click( object sender, EventArgs e ) + { + this.Close( ); + } + + // Collect information about available modules + private void CollectModules( string path ) + { + // create directory info + DirectoryInfo dir = new DirectoryInfo( path ); + + // get all dll files from the directory + FileInfo[] files = dir.GetFiles( "*.dll" ); + + // walk through all files + foreach ( FileInfo f in files ) + { + CollectImageProcessingRoutines( Path.Combine( path, f.Name ) ); + } + } + + // Collect available image processing routines in the specified assembly + private void CollectImageProcessingRoutines( string fname ) + { + Type typeIImageProcessingRoutine = typeof( IImageProcessingRoutine ); + Assembly assembly = null; + + try + { + // try to load assembly + assembly = Assembly.LoadFrom( fname ); + + // get types of the assembly + Type[] types = assembly.GetTypes( ); + + // check all types + foreach ( Type type in types ) + { + // get interfaces ot the type + Type[] interfaces = type.GetInterfaces( ); + + // check, if the type is inherited from IImageProcessingRoutine + if ( Array.IndexOf( interfaces, typeIImageProcessingRoutine ) != -1 ) + { + IImageProcessingRoutine ipRoutine = null; + + try + { + // create an instance of the type + ipRoutine = (IImageProcessingRoutine) Activator.CreateInstance( type ); + // add routine to collection + if ( !processingRoutines.ContainsKey( ipRoutine.Name ) ) + processingRoutines.Add( ipRoutine.Name, ipRoutine ); + } + catch ( Exception ) + { + // something failed during instance creatinion + } + } + } + } + catch ( Exception ) + { + } + } + + // Open folder + private void openFolderToolStripMenuItem_Click( object sender, EventArgs e ) + { + if ( folderBrowserDialog.ShowDialog( ) == DialogResult.OK ) + { + if ( OpenFolder( folderBrowserDialog.SelectedPath ) ) + { + // remember this folder + AddRecentFolder( selectedFolder ); + RebuildRecentFoldersList( ); + } + } + } + + // Item is clicked in recent folders list + private void recentFolder_Click( object sender, EventArgs e ) + { + string folderName = ( (ToolStripMenuItem) sender ).Text; + + if ( OpenFolder( folderName ) ) + { + // move the folder up in the list + AddRecentFolder( folderName ); + } + else + { + // remove failing folder + RemoveRecentFolder( folderName ); + } + RebuildRecentFoldersList( ); + } + + // Open specified folder + private bool OpenFolder( string folderName ) + { + bool success = false; + + try + { + DirectoryInfo dirInfo = new DirectoryInfo( folderName ); + FileInfo[] fileInfos = dirInfo.GetFiles( ); + + filesListView.Items.Clear( ); + + // collect all image files + foreach ( FileInfo fi in fileInfos ) + { + string ext = fi.Extension.ToLower( ); + + // check for supported extension + if ( + ( ext == ".jpg" ) || ( ext == ".jpeg" ) || + ( ext == ".bmp" ) || ( ext == ".png" ) ) + { + filesListView.Items.Add( fi.Name ); + } + } + + logListView.Items.Clear( ); + filesListView.Focus( ); + ProcessSelectedImage( ); + + selectedFolder = folderName; + success = true; + } + catch + { + MessageBox.Show( "Failed opening the folder:\n" + folderName, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error ); + } + + UpdateImageCountStatus( ); + + return success; + } + + // Selection has changed in files list view control + private void filesListView_SelectedIndexChanged( object sender, EventArgs e ) + { + ProcessSelectedImage( ); + } + + // Process currently selected image + private void ProcessSelectedImage( ) + { + if ( filesListView.SelectedItems.Count == 1 ) + { + Bitmap image = null; + + try + { + image = (Bitmap) Bitmap.FromFile( Path.Combine( selectedFolder, filesListView.SelectedItems[0].Text ) ); + } + catch + { + } + + if ( image != null ) + { + ProcessImage( image ); + ShowLogMessages( ); + UpdateLogView( ); + return; + } + else + { + MessageBox.Show( "Failed loading file: " + filesListView.SelectedItems[0].Text, + "Error", MessageBoxButtons.OK, MessageBoxIcon.Error ); + filesListView.Items.Remove( filesListView.SelectedItems[0] ); + UpdateImageCountStatus( ); + } + } + + pictureBox.Image = null; + logBox.Text = string.Empty; + } + + // Process specified image + private void ProcessImage( Bitmap image ) + { + processingLog.Clear( ); + processingLog.AddImage( "Source", image ); + + if ( ipRoutineToUse != null ) + { + stopWatch.Reset( ); + stopWatch.Start( ); + + // process image with selected image processing routine + ipRoutineToUse.Process( image, processingLog ); + + stopWatch.Stop( ); + + UpdateProcessingTimeStatus( stopWatch.ElapsedMilliseconds ); + } + } + + // Update log view + private void UpdateLogView( ) + { + string currentSelection = string.Empty; + int newSelectionIndex = 0; + int i = 0; + + if ( logListView.SelectedIndices.Count > 0 ) + { + currentSelection = logListView.Items[logListView.SelectedIndices[0]].Text; + } + + logListView.Items.Clear( ); + + foreach ( KeyValuePair kvp in processingLog.Images ) + { + logListView.Items.Add( kvp.Key ); + + if ( kvp.Key == currentSelection ) + newSelectionIndex = i; + + i++; + } + + logListView.SelectedIndices.Add( newSelectionIndex ); + logListView.EnsureVisible( newSelectionIndex ); + } + + // Display log messages + private void ShowLogMessages( ) + { + StringBuilder sb = new StringBuilder( ); + + foreach ( string message in processingLog.Messages ) + { + sb.Append( message ); + sb.Append( "\r\n" ); + } + + logBox.Text = sb.ToString( ); + } + + // Selection has changed in log list view - update image + private void logListView_SelectedIndexChanged( object sender, EventArgs e ) + { + if ( logListView.SelectedIndices.Count == 1 ) + { + string stepName = logListView.SelectedItems[0].Text; + + Bitmap oldImage = (Bitmap) pictureBox.Image; + pictureBox.Image = (Bitmap) processingLog.Images[stepName].Clone( ); + + if ( oldImage != null ) + { + oldImage.Dispose( ); + } + + ShowCurrentImageHistogram( ); + UpdateImageSizeStatus( ); + } + } + + // Update status of menu items in Settings->Image view + private void imageviewToolStripMenuItem_DropDownOpening( object sender, EventArgs e ) + { + normalToolStripMenuItem.Checked = ( pictureBox.SizeMode == PictureBoxSizeMode.Normal ); + centerToolStripMenuItem.Checked = ( pictureBox.SizeMode == PictureBoxSizeMode.CenterImage ); + stretchToolStripMenuItem.Checked = ( pictureBox.SizeMode == PictureBoxSizeMode.StretchImage ); + autoSizeToolStripMenuItem.Checked = ( pictureBox.SizeMode == PictureBoxSizeMode.AutoSize ); + } + + // Set Normal view for images + private void normalToolStripMenuItem_Click( object sender, EventArgs e ) + { + SetPictureBoxSizeMode( PictureBoxSizeMode.Normal ); + } + + // Set Centred view for images + private void centerToolStripMenuItem_Click( object sender, EventArgs e ) + { + SetPictureBoxSizeMode( PictureBoxSizeMode.CenterImage ); + } + + // Set Stretched view for images + private void stretchToolStripMenuItem_Click( object sender, EventArgs e ) + { + SetPictureBoxSizeMode( PictureBoxSizeMode.StretchImage ); + } + + // Set Auto Size view for image + private void autoSizeToolStripMenuItem_Click( object sender, EventArgs e ) + { + SetPictureBoxSizeMode( PictureBoxSizeMode.AutoSize ); + } + + // Set size mode for picture box + private void SetPictureBoxSizeMode( PictureBoxSizeMode sizeMode ) + { + if ( sizeMode == PictureBoxSizeMode.AutoSize ) + { + pictureBox.Dock = DockStyle.None; + pictureBox.Location = new System.Drawing.Point( 0, 0 ); + splitContainer2.Panel1.AutoScroll = true; + } + else + { + pictureBox.Dock = DockStyle.Fill; + splitContainer2.Panel1.AutoScroll = false; + } + + pictureBox.SizeMode = sizeMode; + } + + // Switch option for openning last folder on application load + private void openLastFolderOnStartToolStripMenuItem_Click( object sender, EventArgs e ) + { + openLastFolderOnStartToolStripMenuItem.Checked = !openLastFolderOnStartToolStripMenuItem.Checked; + } + + // Show about form + private void aboutToolStripMenuItem_Click( object sender, EventArgs e ) + { + AboutForm form = new AboutForm( ); + + form.ShowDialog( ); + } + + // Copy current image to clipboard + private void copyImageClipboardToolStripMenuItem_Click( object sender, EventArgs e ) + { + if ( pictureBox.Image != null ) + { + Clipboard.SetImage( pictureBox.Image ); + } + } + + // Update status of "copy to clipboard" menu item + private void toolsToolStripMenuItem_DropDownOpening( object sender, EventArgs e ) + { + copyImageClipboardToolStripMenuItem.Enabled = ( pictureBox.Image != null ); + } + + // Show histogram window + private void showhistogramToolStripMenuItem_Click( object sender, EventArgs e ) + { + if ( histogramForm == null ) + { + histogramForm = new HistogramForm( ); + histogramForm.FormClosing += delegate( object eventSender, FormClosingEventArgs eventArgs ) + { + histogramForm = null; + }; + } + + histogramForm.Show( ); + ShowCurrentImageHistogram( ); + } + + // Show histomgram for + private void ShowCurrentImageHistogram( ) + { + if ( ( pictureBox.Image != null ) && ( histogramForm != null ) ) + { + histogramForm.SetImageStatistics( new ImageStatistics( (Bitmap) pictureBox.Image ) ); + } + } + + // Update status label displaying number of available images + private void UpdateImageCountStatus( ) + { + imagesCountLabel.Text = "Images: " + filesListView.Items.Count.ToString( ); + } + + // Update staus label displaying processing time of last routine + private void UpdateProcessingTimeStatus( long msTime ) + { + double sTime = (double) msTime / 1000; + + processingTimeLabel.Text = string.Format( "Processing time: {0}s", sTime.ToString( "F3" ) ); + } + + // Update status label displaying size of selected image + private void UpdateImageSizeStatus( ) + { + if ( pictureBox.Image != null ) + { + imageSizeLabel.Text = string.Format( "Image size: {0}x{1}", + pictureBox.Image.Width, pictureBox.Image.Height ); + } + else + { + imageSizeLabel.Text = string.Empty; + } + } + + // Resize columns of file list view and log list view + private void mainSplitContainer_Panel1_Resize( object sender, EventArgs e ) + { + if ( fileNameColumn != null ) + { + fileNameColumn.Width = filesListView.Width - 24; + } + if ( processingStepsColumn != null ) + { + processingStepsColumn.Width = logListView.Width - 24; + } + } + } +} diff --git a/Tools/IPPrototyper/MainForm.resx b/Tools/IPPrototyper/MainForm.resx new file mode 100644 index 00000000..0a5687e6 --- /dev/null +++ b/Tools/IPPrototyper/MainForm.resx @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 132, 17 + + + 241, 17 + + \ No newline at end of file diff --git a/Tools/IPPrototyper/Program.cs b/Tools/IPPrototyper/Program.cs new file mode 100644 index 00000000..feb98a86 --- /dev/null +++ b/Tools/IPPrototyper/Program.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Windows.Forms; + +namespace IPPrototyper +{ + static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main( ) + { + Application.EnableVisualStyles( ); + Application.SetCompatibleTextRenderingDefault( false ); + Application.Run( new MainForm( ) ); + } + } +} diff --git a/Tools/IPPrototyper/Properties/AssemblyInfo.cs b/Tools/IPPrototyper/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..7b1a509e --- /dev/null +++ b/Tools/IPPrototyper/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle( "Image Processing Prototyper" )] +[assembly: AssemblyDescription( "" )] +[assembly: AssemblyConfiguration( "" )] +[assembly: AssemblyCompany( "AForge" )] +[assembly: AssemblyProduct( "AForge.NET" )] +[assembly: AssemblyCopyright( "AForge © 2012" )] +[assembly: AssemblyTrademark( "" )] +[assembly: AssemblyCulture( "" )] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible( false )] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid( "8bfe1665-04fd-49b8-bb89-ce8f07027925" )] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion( "1.0.1.1" )] +[assembly: AssemblyFileVersion( "1.0.1.1" )] diff --git a/Tools/IPPrototyper/Properties/Resources.Designer.cs b/Tools/IPPrototyper/Properties/Resources.Designer.cs new file mode 100644 index 00000000..b29af8f5 --- /dev/null +++ b/Tools/IPPrototyper/Properties/Resources.Designer.cs @@ -0,0 +1,63 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.239 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace IPPrototyper.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("IPPrototyper.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + } +} diff --git a/Tools/IPPrototyper/Properties/Resources.resx b/Tools/IPPrototyper/Properties/Resources.resx new file mode 100644 index 00000000..af7dbebb --- /dev/null +++ b/Tools/IPPrototyper/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Tools/IPPrototyper/Properties/Settings.Designer.cs b/Tools/IPPrototyper/Properties/Settings.Designer.cs new file mode 100644 index 00000000..528f113f --- /dev/null +++ b/Tools/IPPrototyper/Properties/Settings.Designer.cs @@ -0,0 +1,26 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.239 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace IPPrototyper.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + } +} diff --git a/Tools/IPPrototyper/Properties/Settings.settings b/Tools/IPPrototyper/Properties/Settings.settings new file mode 100644 index 00000000..39645652 --- /dev/null +++ b/Tools/IPPrototyper/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Tools/IPPrototyper/ipprototyper.csproj b/Tools/IPPrototyper/ipprototyper.csproj new file mode 100644 index 00000000..884a05d9 --- /dev/null +++ b/Tools/IPPrototyper/ipprototyper.csproj @@ -0,0 +1,172 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {257502A9-6C82-4F86-815D-2CE0FA8C0036} + WinExe + Properties + IPPrototyper + IPPrototyper + v2.0 + 512 + false + true + AForge.IPPrototyper.snk + + + 3.5 + + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + true + + + true + full + false + ..\..\Release\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + ..\..\Release\ + TRACE + prompt + 4 + + + + False + ..\..\Release\AForge.dll + + + False + ..\..\Release\AForge.Controls.dll + + + False + ..\..\Release\AForge.Imaging.dll + + + False + ..\..\Release\AForge.Math.dll + + + + + + + + + + + Form + + + AboutForm.cs + + + + Form + + + HistogramForm.cs + + + Form + + + MainForm.cs + + + + + AboutForm.cs + + + HistogramForm.cs + + + MainForm.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + True + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 2.0 %28x86%29 + true + + + False + .NET Framework 3.0 %28x86%29 + false + + + False + .NET Framework 3.5 + false + + + False + .NET Framework 3.5 SP1 + false + + + + + {BE2859E0-ED2E-4038-9B11-9E410FEA25F0} + Interfaces + + + + + \ No newline at end of file diff --git a/Tools/IPPrototyper/ipprototyper.sln b/Tools/IPPrototyper/ipprototyper.sln new file mode 100644 index 00000000..14eb128e --- /dev/null +++ b/Tools/IPPrototyper/ipprototyper.sln @@ -0,0 +1,26 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual C# Express 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ipprototyper", "ipprototyper.csproj", "{257502A9-6C82-4F86-815D-2CE0FA8C0036}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Interfaces", "Interfaces\Interfaces.csproj", "{BE2859E0-ED2E-4038-9B11-9E410FEA25F0}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {257502A9-6C82-4F86-815D-2CE0FA8C0036}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {257502A9-6C82-4F86-815D-2CE0FA8C0036}.Debug|Any CPU.Build.0 = Debug|Any CPU + {257502A9-6C82-4F86-815D-2CE0FA8C0036}.Release|Any CPU.ActiveCfg = Release|Any CPU + {257502A9-6C82-4F86-815D-2CE0FA8C0036}.Release|Any CPU.Build.0 = Release|Any CPU + {BE2859E0-ED2E-4038-9B11-9E410FEA25F0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BE2859E0-ED2E-4038-9B11-9E410FEA25F0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BE2859E0-ED2E-4038-9B11-9E410FEA25F0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BE2859E0-ED2E-4038-9B11-9E410FEA25F0}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Tools/Read Me.txt b/Tools/Read Me.txt new file mode 100644 index 00000000..25ace397 --- /dev/null +++ b/Tools/Read Me.txt @@ -0,0 +1,10 @@ +* IPPrototyper + - Information about the tool: + http://www.aforgenet.com/framework/tools/ipprototyper.html + + - Sample of the tool usage can be found in "Samples/Imaging/IPPrototyper Sample" + + +* Debugger Visualizers + - Information about the tool: + http://www.aforgenet.com/framework/tools/debug_visualizer.html diff --git a/Unit Tests/AForge.Imaging.Tests/AForge.Imaging.Tests.csproj b/Unit Tests/AForge.Imaging.Tests/AForge.Imaging.Tests.csproj new file mode 100644 index 00000000..a0a94eb4 --- /dev/null +++ b/Unit Tests/AForge.Imaging.Tests/AForge.Imaging.Tests.csproj @@ -0,0 +1,110 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {539229BC-D68C-4FF0-84BC-904A90ECEBE0} + Library + Properties + AForge.Imaging.Tests + AForge.Imaging.Tests + v4.0 + 512 + + + 3.5 + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + true + full + false + ..\Build\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + ..\Build\ + TRACE + prompt + 4 + + + + False + ..\..\Release\AForge.dll + + + False + ..\..\Release\AForge.Imaging.dll + + + False + + + False + + + + 3.5 + + + + + + + + + + + + + False + Microsoft .NET Framework 4 %28x86 and x64%29 + true + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 3.1 + true + + + + + \ No newline at end of file diff --git a/Unit Tests/AForge.Imaging.Tests/IntegralImageTest.cs b/Unit Tests/AForge.Imaging.Tests/IntegralImageTest.cs new file mode 100644 index 00000000..6ec1b0eb --- /dev/null +++ b/Unit Tests/AForge.Imaging.Tests/IntegralImageTest.cs @@ -0,0 +1,127 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Drawing.Imaging; +using AForge; +using AForge.Imaging; +using MbUnit.Framework; + +namespace AForge.Imaging.Tests +{ + [TestFixture] + public class IntegralImageTest + { + private IntegralImage integralImage = null; + + public IntegralImageTest( ) + { + UnmanagedImage uImage = UnmanagedImage.Create( 10, 10, PixelFormat.Format8bppIndexed ); + + for ( int y = 0; y < 10; y++ ) + { + for ( int x = 0; x < 10; x++ ) + { + uImage.SetPixel( x, y, ( ( x + y ) % 2 == 0 ) ? Color.FromArgb( 0, 0, 0 ) : Color.FromArgb( 1, 1, 1 ) ); + } + } + + integralImage = IntegralImage.FromBitmap( uImage ); + } + + [Test] + [Row( 0, 0, 0, 0, 0 )] + [Row( 0, 0, 1, 0, 1 )] + [Row( 0, 0, 0, 1, 1 )] + [Row( 0, 0, 1, 1, 2 )] + [Row( -1, -1, 1, 1, 2 )] + [Row( 0, 0, 9, 9, 50 )] + [Row( 9, 9, 9, 9, 0 )] + [Row( 9, 9, 10, 10, 0 )] + public void GetRectangleSumTest( int x1, int y1, int x2, int y2, uint expectedSum ) + { + uint sum = integralImage.GetRectangleSum( x1, y1, x2, y2 ); + Assert.AreEqual( sum, expectedSum ); + } + + [Test] + [Row( 0, 0, 0, 0, 0 )] + [Row( 0, 0, 1, 0, 1 )] + [Row( 0, 0, 0, 1, 1 )] + [Row( 0, 0, 1, 1, 2 )] + [Row( 0, 0, 9, 9, 50 )] + [Row( 9, 9, 9, 9, 0 )] + public void GetRectangleSumUnsafeTest( int x1, int y1, int x2, int y2, uint expectedSum ) + { + uint sum = integralImage.GetRectangleSum( x1, y1, x2, y2 ); + Assert.AreEqual( sum, expectedSum ); + } + + [Test] + [Row( 0, 0, 1, 2 )] + [Row( 1, 1, 1, 4 )] + [Row( 9, 9, 1, 2 )] + [Row( 8, 8, 1, 4 )] + [Row( 2, 1, 1, 5 )] + public void GetRectangleSumTest( int x, int y, int radius, uint expectedSum ) + { + uint sum = integralImage.GetRectangleSum( x, y, radius ); + Assert.AreEqual( sum, expectedSum ); + } + + [Test] + [Row( 1, 1, 1, 4 )] + [Row( 8, 8, 1, 4 )] + [Row( 2, 1, 1, 5 )] + public void GetRectangleSumUnsafeTest( int x, int y, int radius, uint expectedSum ) + { + uint sum = integralImage.GetRectangleSum( x, y, radius ); + Assert.AreEqual( sum, expectedSum ); + } + + [Test] + [Row( 0, 0, 0, 0, 0 )] + [Row( 0, 0, 1, 0, 0.5 )] + [Row( 0, 0, 0, 1, 0.5 )] + [Row( 0, 0, 1, 1, 0.5 )] + [Row( -1, -1, 1, 1, 0.5 )] + [Row( 0, 0, 9, 9, 0.5 )] + [Row( 9, 9, 9, 9, 0 )] + [Row( 9, 9, 10, 10, 0 )] + [Row( 9, 0, 9, 0, 1 )] + public void GetRectangleMeanTest( int x1, int y1, int x2, int y2, float expectedMean ) + { + float mean = integralImage.GetRectangleMean( x1, y1, x2, y2 ); + Assert.AreEqual( mean, expectedMean ); + } + + [Test] + [Row( 1, 1, 1, 0 )] + [Row( 1, 2, 1, 0 )] + [Row( 2, 2, 1, 0 )] + [Row( 2, 2, 2, 0 )] + [Row( 8, 8, 1, 0 )] + [Row( 5, 5, 5, 0 )] + [Row( 0, 1, 1, 1 )] + [Row( 10, 9, 1, -1 )] + public void GetHaarXWavelet( int x, int y, int radius, int expectedValue ) + { + int value = integralImage.GetHaarXWavelet( x, y, radius ); + Assert.AreEqual( value, expectedValue ); + } + + [Test] + [Row( 1, 1, 1, 0 )] + [Row( 1, 2, 1, 0 )] + [Row( 2, 2, 1, 0 )] + [Row( 2, 2, 2, 0 )] + [Row( 8, 8, 1, 0 )] + [Row( 5, 5, 5, 0 )] + [Row( 1, 0, 1, 1 )] + [Row( 9, 10, 1, -1 )] + public void GetHaarYWavelet( int x, int y, int radius, int expectedValue ) + { + int value = integralImage.GetHaarYWavelet( x, y, radius ); + Assert.AreEqual( value, expectedValue ); + } + } +} diff --git a/Unit Tests/AForge.Imaging.Tests/Properties/AssemblyInfo.cs b/Unit Tests/AForge.Imaging.Tests/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..bf95fcdf --- /dev/null +++ b/Unit Tests/AForge.Imaging.Tests/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle( "AForge.Imaging.Tests" )] +[assembly: AssemblyDescription( "" )] +[assembly: AssemblyConfiguration( "" )] +[assembly: AssemblyCompany( "AForge" )] +[assembly: AssemblyProduct( "AForge.NET" )] +[assembly: AssemblyCopyright( "AForge © 2010" )] +[assembly: AssemblyTrademark( "" )] +[assembly: AssemblyCulture( "" )] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible( false )] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid( "275263ff-6cad-4c50-aaa7-3a74dbc5259c" )] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion( "1.0.0.0" )] +[assembly: AssemblyFileVersion( "1.0.0.0" )] diff --git a/Unit Tests/AForge.Imaging.Tests/UnmanagedImageTest.cs b/Unit Tests/AForge.Imaging.Tests/UnmanagedImageTest.cs new file mode 100644 index 00000000..2b58ec40 --- /dev/null +++ b/Unit Tests/AForge.Imaging.Tests/UnmanagedImageTest.cs @@ -0,0 +1,387 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Drawing.Imaging; +using AForge; +using AForge.Imaging; +using MbUnit.Framework; + +namespace AForge.Imaging.Tests +{ + [TestFixture] + public class UnmanagedImageTest + { + [Test] + public void Collect8bppPixelValuesTest_Grayscale( ) + { + // create grayscale image + UnmanagedImage image = UnmanagedImage.Create( 320, 240, PixelFormat.Format8bppIndexed ); + + // draw vertical and horizontal lines + Drawing.Line( image, new IntPoint( 10, 10 ), new IntPoint( 20, 10 ), Color.FromArgb( 128, 128, 128 ) ); + Drawing.Line( image, new IntPoint( 20, 20 ), new IntPoint( 20, 30 ), Color.FromArgb( 64, 64, 64 ) ); + + // prepare lists with coordinates + List horizontal = new List( ); + List horizontalU = new List( ); + List horizontalD = new List( ); + + for ( int x = 10; x <= 20; x++ ) + { + horizontal.Add( new IntPoint( x, 10 ) ); // on the line + horizontalU.Add( new IntPoint( x, 9 ) ); // above + horizontalD.Add( new IntPoint( x, 11 ) ); // below + } + + List vertical = new List( ); + List verticalL = new List( ); + List verticalR = new List( ); + + for ( int y = 20; y <= 30; y++ ) + { + vertical.Add( new IntPoint( 20, y ) ); // on the line + verticalL.Add( new IntPoint( 19, y ) ); // left + verticalR.Add( new IntPoint( 21, y ) ); // right + } + + // collect all pixel's values + byte[] horizontalValues = image.Collect8bppPixelValues( horizontal ); + byte[] horizontalUValues = image.Collect8bppPixelValues( horizontalU ); + byte[] horizontalDValues = image.Collect8bppPixelValues( horizontalD ); + byte[] verticalValues = image.Collect8bppPixelValues( vertical ); + byte[] verticalLValues = image.Collect8bppPixelValues( verticalL ); + byte[] verticalRValues = image.Collect8bppPixelValues( verticalR ); + + Assert.AreEqual( horizontal.Count, horizontalValues.Length ); + Assert.AreEqual( vertical.Count, verticalValues.Length ); + + // check all pixel values + for ( int i = 0, n = horizontalValues.Length; i < n; i++ ) + { + Assert.AreEqual( 128, horizontalValues[i] ); + Assert.AreEqual( 0, horizontalUValues[i] ); + Assert.AreEqual( 0, horizontalDValues[i] ); + } + + for ( int i = 0, n = verticalValues.Length; i < n; i++ ) + { + Assert.AreEqual( 64, verticalValues[i] ); + Assert.AreEqual( 0, verticalLValues[i] ); + Assert.AreEqual( 0, verticalRValues[i] ); + } + } + + [Test] + public void Collect8bppPixelValuesTest_RGB( ) + { + // create grayscale image + UnmanagedImage image = UnmanagedImage.Create( 320, 240, PixelFormat.Format24bppRgb ); + + // draw vertical and horizontal lines + Drawing.Line( image, new IntPoint( 10, 10 ), new IntPoint( 20, 10 ), Color.FromArgb( 128, 129, 130 ) ); + Drawing.Line( image, new IntPoint( 20, 20 ), new IntPoint( 20, 30 ), Color.FromArgb( 64, 65, 66 ) ); + + // prepare lists with coordinates + List horizontal = new List( ); + List horizontalU = new List( ); + List horizontalD = new List( ); + + for ( int x = 10; x <= 20; x++ ) + { + horizontal.Add( new IntPoint( x, 10 ) ); // on the line + horizontalU.Add( new IntPoint( x, 9 ) ); // above + horizontalD.Add( new IntPoint( x, 11 ) ); // below + } + + List vertical = new List( ); + List verticalL = new List( ); + List verticalR = new List( ); + + for ( int y = 20; y <= 30; y++ ) + { + vertical.Add( new IntPoint( 20, y ) ); // on the line + verticalL.Add( new IntPoint( 19, y ) ); // left + verticalR.Add( new IntPoint( 21, y ) ); // right + } + + // collect all pixel's values + byte[] horizontalValues = image.Collect8bppPixelValues( horizontal ); + byte[] horizontalUValues = image.Collect8bppPixelValues( horizontalU ); + byte[] horizontalDValues = image.Collect8bppPixelValues( horizontalD ); + byte[] verticalValues = image.Collect8bppPixelValues( vertical ); + byte[] verticalLValues = image.Collect8bppPixelValues( verticalL ); + byte[] verticalRValues = image.Collect8bppPixelValues( verticalR ); + + Assert.AreEqual( horizontal.Count * 3, horizontalValues.Length ); + Assert.AreEqual( vertical.Count * 3, verticalValues.Length ); + + // check all pixel values + for ( int i = 0, n = horizontalValues.Length; i < n; i += 3 ) + { + Assert.AreEqual( 128, horizontalValues[i] ); + Assert.AreEqual( 129, horizontalValues[i + 1] ); + Assert.AreEqual( 130, horizontalValues[i + 2] ); + + Assert.AreEqual( 0, horizontalUValues[i] ); + Assert.AreEqual( 0, horizontalUValues[i + 1] ); + Assert.AreEqual( 0, horizontalUValues[i + 2] ); + + Assert.AreEqual( 0, horizontalDValues[i] ); + Assert.AreEqual( 0, horizontalDValues[i + 1] ); + Assert.AreEqual( 0, horizontalDValues[i + 2] ); + } + + for ( int i = 0, n = verticalValues.Length; i < n; i += 3 ) + { + Assert.AreEqual( 64, verticalValues[i] ); + Assert.AreEqual( 65, verticalValues[i + 1] ); + Assert.AreEqual( 66, verticalValues[i + 2] ); + + Assert.AreEqual( 0, verticalLValues[i] ); + Assert.AreEqual( 0, verticalLValues[i + 1] ); + Assert.AreEqual( 0, verticalLValues[i + 2] ); + + Assert.AreEqual( 0, verticalRValues[i] ); + Assert.AreEqual( 0, verticalRValues[i + 1] ); + Assert.AreEqual( 0, verticalRValues[i + 2] ); + } + } + + [Test] + public void CollectActivePixelsTest( ) + { + // create grayscale image + UnmanagedImage image24 = UnmanagedImage.Create( 7, 7, PixelFormat.Format24bppRgb ); + UnmanagedImage image8 = UnmanagedImage.Create( 7, 7, PixelFormat.Format8bppIndexed ); + + Drawing.FillRectangle( image24, new Rectangle( 1, 1, 5, 5 ), Color.FromArgb( 255, 255, 255 ) ); + Drawing.FillRectangle( image24, new Rectangle( 2, 2, 3, 3 ), Color.FromArgb( 1, 1, 1 ) ); + Drawing.FillRectangle( image24, new Rectangle( 3, 3, 1, 1 ), Color.FromArgb( 0, 0, 0 ) ); + + Drawing.FillRectangle( image8, new Rectangle( 1, 1, 5, 5 ), Color.FromArgb( 255, 255, 255 ) ); + Drawing.FillRectangle( image8, new Rectangle( 2, 2, 3, 3 ), Color.FromArgb( 1, 1, 1 ) ); + Drawing.FillRectangle( image8, new Rectangle( 3, 3, 1, 1 ), Color.FromArgb( 0, 0, 0 ) ); + + List pixels24 = image24.CollectActivePixels( ); + List pixels8 = image8.CollectActivePixels( ); + + Assert.AreEqual( pixels24.Count, 24 ); + Assert.AreEqual( pixels8.Count, 24 ); + + for ( int i = 1; i < 6; i++ ) + { + for ( int j = 1; j < 6; j++ ) + { + if ( ( i == 3 ) && ( j == 3 ) ) + continue; + + Assert.IsTrue( pixels24.Contains( new IntPoint( j, i ) ) ); + Assert.IsTrue( pixels8.Contains( new IntPoint( j, i ) ) ); + } + } + + pixels24 = image24.CollectActivePixels( new Rectangle( 1, 0, 5, 4 ) ); + pixels8 = image8.CollectActivePixels( new Rectangle( 1, 0, 5, 4 ) ); + + Assert.AreEqual( pixels24.Count, 14 ); + Assert.AreEqual( pixels8.Count, 14 ); + + for ( int i = 1; i < 4; i++ ) + { + for ( int j = 1; j < 6; j++ ) + { + if ( ( i == 3 ) && ( j == 3 ) ) + continue; + + Assert.IsTrue( pixels24.Contains( new IntPoint( j, i ) ) ); + Assert.IsTrue( pixels8.Contains( new IntPoint( j, i ) ) ); + } + } + } + + [Test] + [Row( PixelFormat.Format8bppIndexed )] + [Row( PixelFormat.Format24bppRgb )] + [Row( PixelFormat.Format32bppArgb)] + [Row( PixelFormat.Format32bppRgb )] + [Row( PixelFormat.Format16bppGrayScale )] + [Row( PixelFormat.Format48bppRgb )] + [Row( PixelFormat.Format64bppArgb )] + [Row( PixelFormat.Format32bppPArgb, ExpectedException = typeof( UnsupportedImageFormatException ) )] + public void SetPixelTest( PixelFormat pixelFormat ) + { + UnmanagedImage image = UnmanagedImage.Create( 320, 240, pixelFormat ); + Color color = Color.White; + byte value = 255; + + image.SetPixel( 0, 0, color ); + image.SetPixel( 319, 0, color ); + image.SetPixel( 0, 239, color ); + image.SetPixel( 319, 239, value ); + image.SetPixel( 160, 120, value ); + + image.SetPixel( -1, -1, color ); + image.SetPixel( 320, 0, color ); + image.SetPixel( 0, 240, value ); + image.SetPixel( 320, 240, value ); + + List pixels = image.CollectActivePixels( ); + + Assert.AreEqual( 5, pixels.Count ); + + Assert.IsTrue( pixels.Contains( new IntPoint( 0, 0 ) ) ); + Assert.IsTrue( pixels.Contains( new IntPoint( 319, 0 ) ) ); + Assert.IsTrue( pixels.Contains( new IntPoint( 0, 239 ) ) ); + Assert.IsTrue( pixels.Contains( new IntPoint( 319, 239 ) ) ); + Assert.IsTrue( pixels.Contains( new IntPoint( 160, 120 ) ) ); + } + + [Test] + public void SetGetPixelGrayscale( ) + { + UnmanagedImage image = UnmanagedImage.Create( 320, 240, PixelFormat.Format8bppIndexed ); + + image.SetPixel( 0, 0, 255 ); + image.SetPixel( 319, 0, 127 ); + image.SetPixel( 0, 239, Color.FromArgb( 64, 64, 64 ) ); + + Color color1 = image.GetPixel( 0, 0 ); + Color color2 = image.GetPixel( 319, 0 ); + Color color3 = image.GetPixel( 0, 239 ); + + Assert.AreEqual( 255, color1.R ); + Assert.AreEqual( 255, color1.G ); + Assert.AreEqual( 255, color1.B ); + + Assert.AreEqual( 127, color2.R ); + Assert.AreEqual( 127, color2.G ); + Assert.AreEqual( 127, color2.B ); + + Assert.AreEqual( 64, color3.R ); + Assert.AreEqual( 64, color3.G ); + Assert.AreEqual( 64, color3.B ); + } + + [Test] + [Row( PixelFormat.Format24bppRgb )] + [Row( PixelFormat.Format32bppArgb )] + [Row( PixelFormat.Format32bppRgb )] + public void SetGetPixelColor( PixelFormat pixelFormat ) + { + UnmanagedImage image = UnmanagedImage.Create( 320, 240, pixelFormat ); + + image.SetPixel( 0, 0, Color.FromArgb( 255, 10, 20, 30 ) ); + image.SetPixel( 319, 0, Color.FromArgb( 127, 110, 120, 130 ) ); + image.SetPixel( 0, 239, Color.FromArgb( 64, 210, 220, 230 ) ); + + Color color1 = image.GetPixel( 0, 0 ); + Color color2 = image.GetPixel( 319, 0 ); + Color color3 = image.GetPixel( 0, 239 ); + + Assert.AreEqual( 10, color1.R ); + Assert.AreEqual( 20, color1.G ); + Assert.AreEqual( 30, color1.B ); + + Assert.AreEqual( 110, color2.R ); + Assert.AreEqual( 120, color2.G ); + Assert.AreEqual( 130, color2.B ); + + Assert.AreEqual( 210, color3.R ); + Assert.AreEqual( 220, color3.G ); + Assert.AreEqual( 230, color3.B ); + + if ( pixelFormat == PixelFormat.Format32bppArgb ) + { + Assert.AreEqual( 255, color1.A ); + Assert.AreEqual( 127, color2.A ); + Assert.AreEqual( 64, color3.A ); + } + } + + [Test] + [Row( PixelFormat.Format8bppIndexed )] + [Row( PixelFormat.Format24bppRgb )] + [Row( PixelFormat.Format32bppArgb )] + [Row( PixelFormat.Format32bppRgb )] + [Row( PixelFormat.Format16bppGrayScale )] + [Row( PixelFormat.Format48bppRgb )] + [Row( PixelFormat.Format64bppArgb )] + [Row( PixelFormat.Format32bppPArgb, ExpectedException = typeof( UnsupportedImageFormatException ) )] + public void SetPixelsTest( PixelFormat pixelFormat ) + { + UnmanagedImage image = UnmanagedImage.Create( 320, 240, pixelFormat ); + Color color = Color.White; + List points = new List( ); + + points.Add( new IntPoint( 0, 0 ) ); + points.Add( new IntPoint( 319, 0 ) ); + points.Add( new IntPoint( 0, 239 ) ); + points.Add( new IntPoint( 319, 239 ) ); + points.Add( new IntPoint( 160, 120 ) ); + + points.Add( new IntPoint( -1, -1 ) ); + points.Add( new IntPoint( 320, 0 ) ); + points.Add( new IntPoint( 0, 240 ) ); + points.Add( new IntPoint( 320, 240 ) ); + + image.SetPixels( points, color ); + + List pixels = image.CollectActivePixels( ); + + Assert.AreEqual( 5, pixels.Count ); + + Assert.IsTrue( pixels.Contains( new IntPoint( 0, 0 ) ) ); + Assert.IsTrue( pixels.Contains( new IntPoint( 319, 0 ) ) ); + Assert.IsTrue( pixels.Contains( new IntPoint( 0, 239 ) ) ); + Assert.IsTrue( pixels.Contains( new IntPoint( 319, 239 ) ) ); + Assert.IsTrue( pixels.Contains( new IntPoint( 160, 120 ) ) ); + } + + [Test] + [Row( PixelFormat.Format24bppRgb, 1, 1, 240, 0, 0 )] + [Row( PixelFormat.Format24bppRgb, 318, 1, 0, 240, 0 )] + [Row( PixelFormat.Format24bppRgb, 318, 238, 240, 240, 0 )] + [Row( PixelFormat.Format24bppRgb, 1, 238, 0, 0, 240 )] + [Row( PixelFormat.Format24bppRgb, 160, 120, 240, 240, 240 )] + + [Row( PixelFormat.Format32bppArgb, 1, 1, 240, 0, 0 )] + [Row( PixelFormat.Format32bppArgb, 318, 1, 0, 240, 0 )] + [Row( PixelFormat.Format32bppArgb, 318, 238, 240, 240, 0 )] + [Row( PixelFormat.Format32bppArgb, 1, 238, 0, 0, 240 )] + [Row( PixelFormat.Format32bppArgb, 160, 120, 240, 240, 240 )] + + [Row( PixelFormat.Format32bppRgb, 1, 1, 240, 0, 0 )] + [Row( PixelFormat.Format32bppRgb, 318, 1, 0, 240, 0 )] + [Row( PixelFormat.Format32bppRgb, 318, 238, 240, 240, 0 )] + [Row( PixelFormat.Format32bppRgb, 1, 238, 0, 0, 240 )] + [Row( PixelFormat.Format32bppRgb, 160, 120, 240, 240, 240 )] + + [Row( PixelFormat.Format8bppIndexed, 1, 1, 128, 128, 128 )] + [Row( PixelFormat.Format8bppIndexed, 318, 1, 96, 96, 96 )] + [Row( PixelFormat.Format8bppIndexed, 318, 238, 192, 192, 192 )] + [Row( PixelFormat.Format8bppIndexed, 1, 238, 32, 32, 32 )] + [Row( PixelFormat.Format8bppIndexed, 160, 120, 255, 255, 255 )] + + public void ToManagedImageTest( PixelFormat pixelFormat, int x, int y, byte red, byte green, byte blue ) + { + UnmanagedImage image = UnmanagedImage.Create( 320, 240, pixelFormat ); + + image.SetPixel( new IntPoint( x, y ), Color.FromArgb( 255, red, green, blue ) ); + + Bitmap bitmap = image.ToManagedImage( ); + + // check colors of pixels + Assert.AreEqual( Color.FromArgb( 255, red, green, blue ), bitmap.GetPixel( x, y ) ); + + // make sure there are only 1 pixel + UnmanagedImage temp = UnmanagedImage.FromManagedImage( bitmap ); + + List pixels = temp.CollectActivePixels( ); + Assert.AreEqual( 1, pixels.Count ); + + image.Dispose( ); + bitmap.Dispose( ); + temp.Dispose( ); + } + } +} diff --git a/Unit Tests/AForge.Math.Tests/AForge.Math.Tests.csproj b/Unit Tests/AForge.Math.Tests/AForge.Math.Tests.csproj new file mode 100644 index 00000000..75183c54 --- /dev/null +++ b/Unit Tests/AForge.Math.Tests/AForge.Math.Tests.csproj @@ -0,0 +1,124 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {8CE6D122-788B-47C3-8749-15FD584C26F6} + Library + Properties + AForge.Math.Tests + AForge.Math.Tests + v4.0 + 512 + + + 3.5 + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + true + full + false + ..\Build\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + ..\Build\ + TRACE + prompt + 4 + + + + False + ..\..\Release\AForge.dll + + + False + ..\..\Release\AForge.Math.dll + + + False + + + False + + + + 3.5 + + + + + + + + + + + + + + Code + + + + + + + + + + + + + False + Microsoft .NET Framework 4 %28x86 and x64%29 + true + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 3.1 + true + + + + + \ No newline at end of file diff --git a/Unit Tests/AForge.Math.Tests/Geometry/ClosePointsMergingOptimizerTest.cs b/Unit Tests/AForge.Math.Tests/Geometry/ClosePointsMergingOptimizerTest.cs new file mode 100644 index 00000000..46de87d0 --- /dev/null +++ b/Unit Tests/AForge.Math.Tests/Geometry/ClosePointsMergingOptimizerTest.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using AForge; +using AForge.Math.Geometry; +using MbUnit.Framework; + +namespace AForge.Math.Geometry.Tests +{ + [TestFixture] + public class ClosePointsMergingOptimizerTest + { + private IShapeOptimizer optimizer = new ClosePointsMergingOptimizer( 3 ); + + [Test] + [Row( new int[] { 0, 0, 10, 0, 10, 10 }, new int[] { 0, 0, 10, 0, 10, 10 } )] + [Row( new int[] { 0, 0, 10, 0, 1, 1 }, new int[] { 0, 0, 10, 0, 1, 1 } )] + [Row( new int[] { 0, 0, 10, 0, 10, 10, 2, 2 }, new int[] { 1, 1, 10, 0, 10, 10 } )] + [Row( new int[] { 0, 0, 10, 0, 10, 10, 3, 3 }, new int[] { 0, 0, 10, 0, 10, 10, 3, 3 } )] + [Row( new int[] { 0, 0, 8, 0, 10, 2, 10, 10 }, new int[] { 0, 0, 9, 1, 10, 10 } )] + [Row( new int[] { 2, 0, 8, 0, 10, 2, 10, 8, 8, 10, 0, 2 }, new int[] { 1, 1, 9, 1, 9, 9 } )] + public void OptimizationTest( int[] coordinates, int[] expectedCoordinates ) + { + ShapeOptimizerTestBase.TestOptimizer( coordinates, expectedCoordinates, optimizer ); + } + } +} diff --git a/Unit Tests/AForge.Math.Tests/Geometry/FlatAnglesOptimizerTest.cs b/Unit Tests/AForge.Math.Tests/Geometry/FlatAnglesOptimizerTest.cs new file mode 100644 index 00000000..b632ff6d --- /dev/null +++ b/Unit Tests/AForge.Math.Tests/Geometry/FlatAnglesOptimizerTest.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using AForge; +using AForge.Math.Geometry; +using MbUnit.Framework; + +namespace AForge.Math.Geometry.Tests +{ + [TestFixture] + public class FlatAnglesOptimizerTest + { + private IShapeOptimizer optimizer = new FlatAnglesOptimizer( 160 ); + + [Test] + [Row( new int[] { 0, 0, 10, 0, 10, 10 }, new int[] { 0, 0, 10, 0, 10, 10 } )] + [Row( new int[] { 0, 0, 20, 0, 10, 1 }, new int[] { 0, 0, 20, 0, 10, 1 } )] + [Row( new int[] { 0, 0, 10, 1, 20, 0, 20, 20 }, new int[] { 0, 0, 20, 0, 20, 20 } )] + [Row( new int[] { 0, 0, 5, 1, 10, 0, 10, 10 }, new int[] { 0, 0, 5, 1, 10, 0, 10, 10 } )] + [Row( new int[] { 0, 0, 20, 0, 20, 20, 11, 9 }, new int[] { 0, 0, 20, 0, 20, 20 } )] + [Row( new int[] { 0, 0, 20, 0, 20, 20, 9, 11 }, new int[] { 0, 0, 20, 0, 20, 20 } )] + [Row( new int[] { 9, 11, 0, 0, 10, 1, 20, 0, 21, 10, 20, 20 }, new int[] { 0, 0, 20, 0, 20, 20 } )] + [Row( new int[] { 11, 9, 0, 0, 10, -1, 20, 0, 19, 10, 20, 20 }, new int[] { 0, 0, 20, 0, 20, 20 } )] + public void OptimizationTest( int[] coordinates, int[] expectedCoordinates ) + { + ShapeOptimizerTestBase.TestOptimizer( coordinates, expectedCoordinates, optimizer ); + } + } +} diff --git a/Unit Tests/AForge.Math.Tests/Geometry/GeometryToolsTest.cs b/Unit Tests/AForge.Math.Tests/Geometry/GeometryToolsTest.cs new file mode 100644 index 00000000..78a53ce1 --- /dev/null +++ b/Unit Tests/AForge.Math.Tests/Geometry/GeometryToolsTest.cs @@ -0,0 +1,49 @@ +using System; +using AForge; +using AForge.Math.Geometry; +using MbUnit.Framework; + +namespace AForge.Math.Geometry.Tests +{ + [TestFixture] + public class GeometryToolsTest + { + [Test] + [Row( 0, 0, 10, 0, 100, 0, 0 )] + [Row( 0, 0, 10, 10, 100, 100, 0 )] + [Row( 0, 0, 10, 0, 0, 100, 90 )] + [Row( 0, 0, 10, 0, 100, 100, 45 )] + [Row( 0, 0, 10, 10, -100, 100, 90 )] + [Row( 0, 0, 10, 0, -100, 100, 135 )] + [Row( 0, 0, 10, 0, -100, 0, 180 )] + [Row( 0, 0, 10, 0, -100, -100, 135 )] + public void GetAngleBetweenVectorsTest( int sx, int sy, int ex1, int ey1, int ex2, int ey2, float expectedAngle ) + { + IntPoint startPoint = new IntPoint( sx, sy ); + IntPoint vector1end = new IntPoint( ex1, ey1 ); + IntPoint vector2end = new IntPoint( ex2, ey2 ); + + float angle = GeometryTools.GetAngleBetweenVectors( startPoint, vector1end, vector2end ); + + Assert.AreApproximatelyEqual( expectedAngle, angle, 0.00001f ); + } + + [Test] + [Row( 0, 0, 10, 0, 0, 10, 10, 10, 0 )] + [Row( 0, 0, 10, 0, 0, 10, 0, 20, 90 )] + [Row( 0, 0, 10, 0, 1, 1, 10, 10, 45 )] + [Row( 0, 0, 10, 0, 1, 1, -8, 10, 45 )] + [Row( 0, 0, 10, 10, 0, 0, -100, 100, 90 )] + public void GetAngleBetweenLinesTest( int sx1, int sy1, int ex1, int ey1, int sx2, int sy2, int ex2, int ey2, float expectedAngle ) + { + IntPoint line1start = new IntPoint( sx1, sy1 ); + IntPoint line1end = new IntPoint( ex1, ey1 ); + IntPoint line2start = new IntPoint( sx2, sy2 ); + IntPoint line2end = new IntPoint( ex2, ey2 ); + + float angle = GeometryTools.GetAngleBetweenLines( line1start, line1end, line2start, line2end ); + + Assert.AreApproximatelyEqual( expectedAngle, angle, 0.00001f ); + } + } +} diff --git a/Unit Tests/AForge.Math.Tests/Geometry/GrahamConvexHullTest.cs b/Unit Tests/AForge.Math.Tests/Geometry/GrahamConvexHullTest.cs new file mode 100644 index 00000000..236f3095 --- /dev/null +++ b/Unit Tests/AForge.Math.Tests/Geometry/GrahamConvexHullTest.cs @@ -0,0 +1,131 @@ +using System; +using System.Collections.Generic; +using AForge; +using AForge.Math.Geometry; +using MbUnit.Framework; + +namespace AForge.Math.Geometry.Tests +{ + [TestFixture] + public class GrahamConvexHullTest + { + private List pointsList0 = new List( ); + private List pointsList1 = new List( ); + private List pointsList2 = new List( ); + private List pointsList3 = new List( ); + private List pointsList4 = new List( ); + private List pointsList5 = new List( ); + private List pointsList6 = new List( ); + + private List pointsList7 = new List( ); + private List pointsList8 = new List( ); + private List pointsList9 = new List( ); + + private List expectedHull8 = new List( ); + + private List> pointsLists = new List>( ); + private List> expectedHulls = new List>( ); + + public GrahamConvexHullTest( ) + { + // prepare 0st list + pointsList0.Add( new IntPoint( 0, 0 ) ); + + // prepare 1st list + pointsList1.Add( new IntPoint( 0, 0 ) ); + pointsList1.Add( new IntPoint( 100, 0 ) ); + + // prepare 2nd list + pointsList2.AddRange( pointsList1 ); + pointsList2.Add( new IntPoint( 100, 100 ) ); + + // prepare 3rd list + pointsList3.AddRange( pointsList2 ); + pointsList3.Add( new IntPoint( 0, 100 ) ); + + // prepare 4th list + pointsList4.AddRange( pointsList2 ); + pointsList4.Add( new IntPoint( 60, 40 ) ); + + // prepare 5th list + pointsList5.AddRange( pointsList3 ); + pointsList5.Add( new IntPoint( 50, 50 ) ); + + // prepare 6th list + pointsList6.AddRange( pointsList3 ); + pointsList6.Add( new IntPoint( 0, 0 ) ); + + // prepare 7th list + pointsList7.AddRange( pointsList3 ); + pointsList7.AddRange( pointsList3 ); + + // prepare 8th list + pointsList8.AddRange( pointsList3 ); + pointsList8.Add( new IntPoint( 50, -10 ) ); + pointsList8.Add( new IntPoint( 110, 50 ) ); + pointsList8.Add( new IntPoint( 50, 110 ) ); + + expectedHull8.AddRange( pointsList3 ); + expectedHull8.Insert( 1, new IntPoint( 50, -10 ) ); + expectedHull8.Insert( 3, new IntPoint( 110, 50 ) ); + expectedHull8.Insert( 5, new IntPoint( 50, 110 ) ); + + // prepare 9th list + pointsList9.AddRange( pointsList8 ); + pointsList9.Add( new IntPoint( 50, 10 ) ); + pointsList9.Add( new IntPoint( 90, 50 ) ); + pointsList9.Add( new IntPoint( 50, 90 ) ); + pointsList9.Add( new IntPoint( 10, 50 ) ); + + // now prepare list of tests + pointsLists.Add( pointsList0 ); + pointsLists.Add( pointsList1 ); + pointsLists.Add( pointsList2 ); + pointsLists.Add( pointsList3 ); + + expectedHulls.AddRange( pointsLists ); + + pointsLists.Add( pointsList4 ); + expectedHulls.Add( pointsList2 ); + + pointsLists.Add( pointsList5 ); + expectedHulls.Add( pointsList3 ); + + pointsLists.Add( pointsList6 ); + expectedHulls.Add( pointsList3 ); + + pointsLists.Add( pointsList7 ); + expectedHulls.Add( pointsList3 ); + + pointsLists.Add( pointsList8 ); + expectedHulls.Add( expectedHull8 ); + + pointsLists.Add( pointsList9 ); + expectedHulls.Add( expectedHull8 ); + } + + [Test] + public void FindHullTest( ) + { + GrahamConvexHull grahamHull = new GrahamConvexHull( ); + + for ( int i = 0, n = pointsLists.Count; i < n; i++ ) + { + ComparePointsLists( grahamHull.FindHull( pointsLists[i] ), expectedHulls[i] ); + } + } + + private void ComparePointsLists( List list1, List list2 ) + { + Assert.AreEqual( list1.Count, list2.Count ); + + if ( list1.Count == list2.Count ) + { + for ( int i = 0, n = list1.Count; i < n; i++ ) + { + Assert.AreEqual( list2[i], list1[i] ); + } + } + } + } +} diff --git a/Unit Tests/AForge.Math.Tests/Geometry/LineSegmentTest.cs b/Unit Tests/AForge.Math.Tests/Geometry/LineSegmentTest.cs new file mode 100644 index 00000000..c1371196 --- /dev/null +++ b/Unit Tests/AForge.Math.Tests/Geometry/LineSegmentTest.cs @@ -0,0 +1,191 @@ +using System; +using MbUnit.Framework; + +namespace AForge.Math.Geometry.Tests +{ + [TestFixture] + public class LineSegmentTest + { + [Test] + [Row( 0, 0, 10, 0, 10 )] + [Row( 0, 0, 0, 10, 10 )] + [Row( 0, 0, 3, 4, 5 )] + [Row( 0, 0, -3, 4, 5 )] + [Row( 0, 0, -3, -4, 5 )] + public void LengthTest( float sx, float sy, float ex, float ey, float expectedResult ) + { + LineSegment segment = new LineSegment( new Point( sx, sy ), new Point( ex, ey ) ); + + Assert.AreEqual( expectedResult, segment.Length ); + } + + [Test] + [Row( 0, 0, 5, 0, 8, 0, 5 )] + [Row( 6, 2.5, 5, 0, 8, 0, 2.5 )] + [Row( 2.5, 6, 0, 5, 0, 8, 2.5 )] + [Row( 9, 0, 5, 0, 8, 0, 1 )] + [Row( 3, 4, 0, 0, -10, 0, 5 )] + public void DistanceToPointTest( float x, float y, float x1, float y1, float x2, float y2, float expectedDistance ) + { + Point pt = new Point( x, y ); + Point pt1 = new Point( x1, y1 ); + Point pt2 = new Point( x2, y2 ); + LineSegment segment = new LineSegment( pt1, pt2 ); + + Assert.AreEqual( expectedDistance, segment.DistanceToPoint( pt ) ); + } + + // Denotes which versions of the test are supposed to return non-null values: + // SegmentA means that the segment A1-A2 intersects with the line B1-B2, but not + // with the segment B1-B2. + public enum IntersectionType { None, LinesOnly, SegmentA, SegmentB, AllFour }; + + [Test] + [Row( 0, 0, 4, 4, 0, 4, 4, 0, 2, 2, IntersectionType.AllFour )] + [Row( 0, 0, 4, 0, 0, 0, 0, 4, 0, 0, IntersectionType.AllFour )] + [Row( 0, 0, 4, 4, 4, 8, 8, 4, 6, 6, IntersectionType.SegmentB )] + [Row( -4, -4, 0, 0, 4, 0, 8, -4, 2, 2, IntersectionType.LinesOnly )] + [Row( 0, 0, 6, 0, 5, 1, 5, 5, 5, 0, IntersectionType.SegmentA )] + [Row( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, IntersectionType.LinesOnly, ExpectedException = typeof( ArgumentException ), ExpectedExceptionMessage = "Start point of the line cannot be the same as its end point." )] + [Row( 0, 0, 0, 5, 1, 0, 1, 5, 0, 0, IntersectionType.None)] + public void IntersectionPointTest( float ax1, float ay1, float ax2, float ay2, float bx1, float by1, float bx2, float by2, float ix, float iy, IntersectionType type ) + { + LineSegment segA = new LineSegment( new Point( ax1, ay1 ), new Point( ax2, ay2 ) ); + LineSegment segB = new LineSegment( new Point( bx1, by1 ), new Point( bx2, by2 ) ); + Point expectedIntersection = new Point( ix, iy ); + + Assert.DoesNotThrow( ( ) => + { + Point? segSeg = segA.GetIntersectionWith( segB ); + Point? segLine = segA.GetIntersectionWith( (Line) segB ); + Point? lineSeg = ( (Line) segA ).GetIntersectionWith( segB ); + + if ( type == IntersectionType.AllFour ) + { + Assert.AreEqual( expectedIntersection, segSeg ); + } + else + { + Assert.AreEqual( null, segSeg ); + } + + if ( ( type == IntersectionType.AllFour ) || ( type == IntersectionType.SegmentA ) ) + { + Assert.AreEqual( expectedIntersection, segLine ); + } + else + { + Assert.AreEqual( null, segLine ); + } + + if ( ( type == IntersectionType.AllFour ) || ( type == IntersectionType.SegmentB ) ) + { + Assert.AreEqual( expectedIntersection, lineSeg ); + } + else + { + Assert.AreEqual( null, lineSeg ); + } + } ); + + Point? lineLine = ( (Line) segA ).GetIntersectionWith( (Line) segB ); + + if ( type != IntersectionType.None ) + { + Assert.AreEqual( expectedIntersection, lineLine ); + } + else + { + Assert.AreEqual( null, lineLine ); + } + } + + [Test] + [Row( 0, 0, 0, 1, 1, 1, 1, 2 )] + [Row( 0, 0, 4, 4, 3, -1, 7, 3 )] + [Row( 0, 0, 1, 0, 1, 1, 2, 1 )] + public void ParallelIntersectionPointTest( float ax1, float ay1, float ax2, float ay2, float bx1, float by1, float bx2, float by2 ) + { + LineSegment segA = new LineSegment( new Point( ax1, ay1 ), new Point( ax2, ay2 ) ); + LineSegment segB = new LineSegment( new Point( bx1, by1 ), new Point( bx2, by2 ) ); + + // are we really parallel? + Assert.AreEqual( null, ( (Line) segA ).GetIntersectionWith( (Line) segB ) ); + + Assert.AreEqual( null, segA.GetIntersectionWith( (Line) segB ) ); + Assert.AreEqual( null, ( (Line) segA ).GetIntersectionWith( segB ) ); + Assert.AreEqual( null, segB.GetIntersectionWith( (Line) segA ) ); + Assert.AreEqual( null, ( (Line) segB ).GetIntersectionWith( segA ) ); + Assert.AreEqual( null, segB.GetIntersectionWith( segA ) ); + Assert.AreEqual( null, segA.GetIntersectionWith( segB ) ); + } + + [Test] + [Row( 0, 0, 1, 1, 2, 2, 3, 3 )] + [Row( 0, 1, 0, 2, 0, 3, 0, 4 )] + [Row( 0, 0, -1, 1, -2, 2, -3, 3, -4, 4 )] + [Row( 1, 0, 2, 0, 3, 0, 4, 0 )] + [Row(0, 0, 0, 1, 0, 2, 0, 3 )] + public void CollinearIntersectionPointTest(float ax1, float ay1, float ax2, float ay2, float bx1, float by1, float bx2, float by2) + { + LineSegment segA = new LineSegment( new Point( ax1, ay1 ), new Point( ax2, ay2 ) ); + LineSegment segB = new LineSegment( new Point( bx1, by1 ), new Point( bx2, by2 ) ); + + // are we really collinear? + Assert.Throws( ( ) => ( (Line) segA ).GetIntersectionWith( (Line) segB ) ); + + Assert.Throws( ( ) => segA.GetIntersectionWith( (Line) segB ) ); + Assert.Throws( ( ) => ( (Line) segA ).GetIntersectionWith( segB ) ); + Assert.Throws( ( ) => segB.GetIntersectionWith( (Line) segA ) ); + Assert.Throws( ( ) => ( (Line) segB ).GetIntersectionWith( segA ) ); + Assert.AreEqual( null, segB.GetIntersectionWith( segA ) ); + Assert.AreEqual( null, segA.GetIntersectionWith( segB ) ); + } + + [Test] + [Row( 0, 0, 1, 1, 1, 1, 3, 3, 1, 1 )] + [Row( 0, 0, 1, 1, 3, 3, 1, 1, 1, 1 )] + [Row( 0, 0, 1, 1, 0, 0, -3, -3, 0, 0 )] + [Row( 0, 0, 1, 1, -1, -1, 0, 0, 0, 0 )] + [Row( 0, 1, 0, 2, 0, 1, 0, 0, 0, 1 )] + [Row( 0, 1, 0, 2, 0, 2, 0, 4, 0, 2 )] + [Row( 0, 1, 0, 2, 0, 0, 0, 1, 0, 1 )] + [Row( 0, 1, 0, 2, 0, 3, 0, 2, 0, 2 )] + public void CommonIntersectionPointTest( float ax1, float ay1, float ax2, float ay2, float bx1, float by1, float bx2, float by2, float ix, float iy ) + { + LineSegment segA = new LineSegment( new Point( ax1, ay1 ), new Point( ax2, ay2 ) ); + LineSegment segB = new LineSegment( new Point( bx1, by1 ), new Point( bx2, by2 ) ); + Point expectedIntersection = new Point( ix, iy ); + + // are we really collinear? + Assert.Throws( ( ) => ( (Line) segA ).GetIntersectionWith( (Line) segB ) ); + + Assert.Throws( ( ) => segA.GetIntersectionWith( (Line) segB ) ); + Assert.Throws( ( ) => ( (Line) segA ).GetIntersectionWith( segB ) ); + Assert.Throws( ( ) => segB.GetIntersectionWith( (Line) segA ) ); + Assert.Throws( ( ) => ( (Line) segB ).GetIntersectionWith( segA ) ); + Assert.AreEqual( expectedIntersection, segB.GetIntersectionWith( segA ) ); + Assert.AreEqual( expectedIntersection, segA.GetIntersectionWith( segB ) ); + } + + [Test] + [Row( 0, 0, 0, 2, 0, 1, 0, 3 )] + [Row( 1, 2, 3, 4, 2, 3, 4, 5 )] + [Row( 0, 0, 2, 0, 3, 0, 1, 0 )] + public void OverlappingSegmentIntersectionPointTest( float ax1, float ay1, float ax2, float ay2, float bx1, float by1, float bx2, float by2 ) + { + LineSegment segA = new LineSegment( new Point( ax1, ay1 ), new Point( ax2, ay2 ) ); + LineSegment segB = new LineSegment( new Point( bx1, by1 ), new Point( bx2, by2 ) ); + + // are we really collinear? + Assert.Throws( ( ) => ( (Line) segA ).GetIntersectionWith( (Line) segB ) ); + + Assert.Throws( ( ) => segA.GetIntersectionWith( (Line) segB ) ); + Assert.Throws( ( ) => ( (Line) segA ).GetIntersectionWith( segB ) ); + Assert.Throws( ( ) => segB.GetIntersectionWith( (Line) segA ) ); + Assert.Throws( ( ) => ( (Line) segB ).GetIntersectionWith( segA ) ); + Assert.Throws( ( ) => segB.GetIntersectionWith( segA ) ); + Assert.Throws( ( ) => segA.GetIntersectionWith( segB ) ); + } + } +} diff --git a/Unit Tests/AForge.Math.Tests/Geometry/LineStraighteningOptimizerTest.cs b/Unit Tests/AForge.Math.Tests/Geometry/LineStraighteningOptimizerTest.cs new file mode 100644 index 00000000..0ded6205 --- /dev/null +++ b/Unit Tests/AForge.Math.Tests/Geometry/LineStraighteningOptimizerTest.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections.Generic; +using AForge; +using AForge.Math.Geometry; +using MbUnit.Framework; + +namespace AForge.Math.Geometry.Tests +{ + [TestFixture] + public class LineStraighteningOptimizerTest + { + private IShapeOptimizer optimizer = new LineStraighteningOptimizer( 3 ); + + [Test] + [Row( new int[] { 0, 0, 10, 0, 10, 10 }, new int[] { 0, 0, 10, 0, 10, 10 } )] + [Row( new int[] { 0, 0, 10, 0, 5, 1 }, new int[] { 0, 0, 10, 0, 5, 1 } )] + [Row( new int[] { 0, 0, 10, 0, 10, 10, 5, 5 }, new int[] { 0, 0, 10, 0, 10, 10 } )] + [Row( new int[] { 0, 0, 10, 0, 10, 10, 4, 6 }, new int[] { 0, 0, 10, 0, 10, 10 } )] + [Row( new int[] { 0, 0, 10, 0, 10, 10, 6, 4 }, new int[] { 0, 0, 10, 0, 10, 10 } )] + [Row( new int[] { 0, 0, 10, 0, 10, 10, 7, 3 }, new int[] { 0, 0, 10, 0, 10, 10 } )] + [Row( new int[] { 0, 0, 10, 0, 10, 10, 8, 2 }, new int[] { 0, 0, 10, 0, 10, 10, 8, 2 } )] + [Row( new int[] { 4, 6, 0, 0, 5, 1, 10, 0, 10, 5, 10, 10 }, new int[] { 0, 0, 10, 0, 10, 10 } )] + [Row( new int[] { 6, 4, 0, 0, 6, -1, 10, 0, 9, 4, 10, 10 }, new int[] { 0, 0, 10, 0, 10, 10 } )] + public void OptimizationTest( int[] coordinates, int[] expectedCoordinates ) + { + ShapeOptimizerTestBase.TestOptimizer( coordinates, expectedCoordinates, optimizer ); + } + } +} diff --git a/Unit Tests/AForge.Math.Tests/Geometry/LineTest.cs b/Unit Tests/AForge.Math.Tests/Geometry/LineTest.cs new file mode 100644 index 00000000..aec3dd9f --- /dev/null +++ b/Unit Tests/AForge.Math.Tests/Geometry/LineTest.cs @@ -0,0 +1,124 @@ +using System; +using MbUnit.Framework; + +namespace AForge.Math.Geometry.Tests +{ + [TestFixture] + public class LineTest + { + private const float Error = 0.00001f; + + [Test] + [Row( 1, 1, 45, 1.41421356f, -1, 2 )] + [Row( -2, 2, 135, 2 * 1.41421356f, 1, 4 )] + [Row( -0.5, -1.73205081f / 2, 240, 1, -1 / 1.73205081f, -2 / 1.73205081f )] + [Row( 1, 0, 0, 1, float.NegativeInfinity, 1 )] + [Row( 0, -1, 270, 1, 0, -1 )] + public void RThetaTest( float x, float y, float theta, float expectedRadius, float expectedSlope, float expectedIntercept ) + { + Point pt = new Point( x, y ); + + // test Point-Theta factory + Line line = Line.FromPointTheta( pt, theta ); + Assert.AreApproximatelyEqual( expectedSlope, line.Slope, Error ); + Assert.AreApproximatelyEqual( expectedIntercept, line.Intercept, Error ); + + // calculate radius + float radius = pt.EuclideanNorm( ); + Assert.AreApproximatelyEqual( expectedRadius, radius, Error ); + + // test R-Theta factory + line = Line.FromRTheta( radius, theta ); + Assert.AreApproximatelyEqual( expectedSlope, line.Slope, Error ); + Assert.AreApproximatelyEqual( expectedIntercept, line.Intercept, Error ); + } + + [Test] + [Row( 0, 0, 0, 10, true, Double.PositiveInfinity, 0 )] + [Row( 0, 0, 0, -10, true, Double.NegativeInfinity, 0 )] + [Row( 0, 0, 10, 10, false, 1, 0 )] + [Row( 0, 0, 10, 0, false, 0, 0 )] + public void IsVerticalTest( float sx, float sy, float ex, float ey, bool expectedResult, float expectedSlope, float expectedIntercept ) + { + Line line = Line.FromPoints( new Point( sx, sy ), new Point( ex, ey ) ); + + Assert.AreEqual( expectedResult, line.IsVertical ); + Assert.AreEqual( expectedSlope, line.Slope ); + Assert.AreEqual( expectedIntercept, line.Intercept ); + } + + [Test] + [Row( 0, 0, 10, 0, true, 0, 0 )] + [Row( 0, 0, -10, 0, true, 0, 0 )] + [Row( 0, 0, 10, 10, false, 1, 0 )] + [Row( 0, 0, 0, 10, false, Double.PositiveInfinity, 0 )] + public void IsHorizontalTest( float sx, float sy, float ex, float ey, bool expectedResult, float expectedSlope, float expectedIntercept ) + { + Line line = Line.FromPoints( new Point( sx, sy ), new Point( ex, ey ) ); + + Assert.AreEqual( expectedResult, line.IsHorizontal ); + Assert.AreEqual( expectedSlope, line.Slope ); + Assert.AreEqual( expectedIntercept, line.Intercept ); + } + + [Test] + [Row( 0, 0, 10, 0, 0, 10, 10, 10, 0 )] + [Row( 0, 0, 10, 0, 0, 10, 0, 20, 90 )] + [Row( 0, 0, 10, 0, 1, 1, 10, 10, 45 )] + [Row( 0, 0, 10, 0, 1, 1, -8, 10, 45 )] + [Row( 0, 0, 10, 10, 0, 0, -100, 100, 90 )] + public void GetAngleBetweenLinesTest( float sx1, float sy1, float ex1, float ey1, float sx2, float sy2, float ex2, float ey2, float expectedAngle ) + { + Line line1 = Line.FromPoints( new Point( sx1, sy1 ), new Point( ex1, ey1 ) ); + Line line2 = Line.FromPoints( new Point( sx2, sy2 ), new Point( ex2, ey2 ) ); + + float angle = line1.GetAngleBetweenLines( line2 ); + + Assert.AreApproximatelyEqual( expectedAngle, angle, Error ); + } + + [Test] + [Row( 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, false )] + [Row( 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, false )] + [Row( 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, false, ExpectedException = typeof( InvalidOperationException ) )] + [Row( 0, 0, 1, 1, 0, 1, 1, 2, 0, 0, false )] + [Row( 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, true )] + [Row( 0, 0, 1, 0, 0, 1, 1, 2, -1, 0, true )] + [Row( 0, 0, 1, 0, 1, 1, 1, 2, 1, 0, true )] + [Row( 0, 0, 0, 1, 0, 1, -1, 1, 0, 1, true )] + [Row( -1, -1, 1, 1, 1, -1, -1, 1, 0, 0, true )] + public void GetIntersectionPointTest( float sx1, float sy1, float ex1, float ey1, + float sx2, float sy2, float ex2, float ey2, float xRet, float yRet, bool hasResult ) + { + Line line1 = Line.FromPoints( new Point( sx1, sy1 ), new Point( ex1, ey1 ) ); + Line line2 = Line.FromPoints( new Point( sx2, sy2 ), new Point( ex2, ey2 ) ); + + Point? result = line1.GetIntersectionWith( line2 ); + + if ( hasResult ) + { + Assert.IsTrue( result == new Point( xRet, yRet ) ); + } + else + { + Assert.AreEqual( null, result ); + } + } + + [Test] + [Row( 0, 0, 5, 0, 8, 0, 0 )] + [Row( 6, 2, 5, 0, 8, 0, 2 )] + [Row( 2, 6, 0, 5, 0, 8, 2 )] + [Row( 9, 0, 5, 0, 8, 0, 0 )] + [Row( 3, 0, 0, 0, 3, 4, 2.4 )] + public void DistanceToPointTest( float x, float y, float x1, float y1, float x2, float y2, float expectedDistance ) + { + Point pt = new Point( x, y ); + Point pt1 = new Point( x1, y1 ); + Point pt2 = new Point( x2, y2 ); + Line line = Line.FromPoints( pt1, pt2 ); + + Assert.AreApproximatelyEqual( expectedDistance, line.DistanceToPoint( pt ), Error ); + } + } +} diff --git a/Unit Tests/AForge.Math.Tests/Geometry/ShapeOptimizerTestBase.cs b/Unit Tests/AForge.Math.Tests/Geometry/ShapeOptimizerTestBase.cs new file mode 100644 index 00000000..74eae451 --- /dev/null +++ b/Unit Tests/AForge.Math.Tests/Geometry/ShapeOptimizerTestBase.cs @@ -0,0 +1,40 @@ +using System; +using System.Collections.Generic; +using AForge; +using AForge.Math.Geometry; +using MbUnit.Framework; + +namespace AForge.Math.Geometry.Tests +{ + static class ShapeOptimizerTestBase + { + public static void TestOptimizer( int[] coordinates, int[] expectedCoordinates, IShapeOptimizer optimizer ) + { + List shape = new List( ); + List expectedShape = new List( ); + + // build a shape top optimize + for ( int i = 0, n = coordinates.Length / 2; i < n; i++ ) + { + shape.Add( new IntPoint( coordinates[i * 2], coordinates[i * 2 + 1] ) ); + } + + // build a shape, which should be result of optimization + for ( int i = 0, n = expectedCoordinates.Length / 2; i < n; i++ ) + { + expectedShape.Add( new IntPoint( expectedCoordinates[i * 2], expectedCoordinates[i * 2 + 1] ) ); + } + + List optimizedShape = optimizer.OptimizeShape( shape ); + + // check number of points in result shape + Assert.AreEqual( expectedShape.Count, optimizedShape.Count ); + + // check that all points matches with expected + for ( int i = 0, n = optimizedShape.Count; i < n; i++ ) + { + Assert.AreEqual( expectedShape[i], optimizedShape[i] ); + } + } + } +} diff --git a/Unit Tests/AForge.Math.Tests/Geometry/SimpleShapeCheckerTest.cs b/Unit Tests/AForge.Math.Tests/Geometry/SimpleShapeCheckerTest.cs new file mode 100644 index 00000000..3f149e6e --- /dev/null +++ b/Unit Tests/AForge.Math.Tests/Geometry/SimpleShapeCheckerTest.cs @@ -0,0 +1,303 @@ +using System; +using System.Collections.Generic; +using AForge; +using AForge.Math.Geometry; +using MbUnit.Framework; + +namespace AForge.Math.Geometry.Tests +{ + [TestFixture] + public class SimpleShapeCheckerTest + { + private SimpleShapeChecker shapeChecker = new SimpleShapeChecker( ); + + private List idealCicle = new List( ); + private List distorredCircle = new List( ); + + private List square1 = new List( ); + private List square1Test = new List( ); + private List square2 = new List( ); + private List square2Test = new List( ); + private List square3 = new List( ); + private List rectangle = new List( ); + + private List triangle1 = new List( ); + private List isoscelesTriangle = new List( ); + private List equilateralTriangle = new List( ); + private List rectangledTriangle = new List( ); + + public SimpleShapeCheckerTest( ) + { + System.Random rand = new System.Random( ); + + // generate sample circles + double radius = 100; + + for ( int i = 0; i < 360; i += 10 ) + { + double angle = (double) i / 180 * System.Math.PI; + + // add point to ideal circle + idealCicle.Add( new IntPoint( + (int) ( radius * System.Math.Cos( angle ) ), + (int) ( radius * System.Math.Sin( angle ) ) ) ); + + // add a bit distortion for distorred cirlce + double distorredRadius = radius + rand.Next( 7 ) - 3; + + distorredCircle.Add( new IntPoint( + (int) ( distorredRadius * System.Math.Cos( angle ) ), + (int) ( distorredRadius * System.Math.Sin( angle ) ) ) ); + } + + // generate sample squares + square1.Add( new IntPoint( 0, 0 ) ); + square1.Add( new IntPoint( 50, 0 ) ); + square1.Add( new IntPoint( 100, 0 ) ); + square1.Add( new IntPoint( 100, 50 ) ); + square1.Add( new IntPoint( 100, 100 ) ); + square1.Add( new IntPoint( 50, 100 ) ); + square1.Add( new IntPoint( 0, 100 ) ); + square1.Add( new IntPoint( 0, 50 ) ); + + square2.Add( new IntPoint( 50, 0 ) ); + square2.Add( new IntPoint( 75, 25 ) ); + square2.Add( new IntPoint( 100, 50 ) ); + square2.Add( new IntPoint( 75, 75 ) ); + square2.Add( new IntPoint( 50, 100 ) ); + square2.Add( new IntPoint( 25, 75 ) ); + square2.Add( new IntPoint( 0, 50 ) ); + square2.Add( new IntPoint( 25, 25 ) ); + + // these should be obtained as corners + square1Test.Add( new IntPoint( 0, 0 ) ); + square1Test.Add( new IntPoint( 100, 0 ) ); + square1Test.Add( new IntPoint( 100, 100 ) ); + square1Test.Add( new IntPoint( 0, 100 ) ); + + square2Test.Add( new IntPoint( 50, 0 ) ); + square2Test.Add( new IntPoint( 100, 50 ) ); + square2Test.Add( new IntPoint( 50, 100 ) ); + square2Test.Add( new IntPoint( 0, 50 ) ); + + // special square, which may look like circle, but should be recognized as circle + square3.Add( new IntPoint( 50, 0 ) ); + square3.Add( new IntPoint( 100, 50 ) ); + square3.Add( new IntPoint( 50, 100 ) ); + square3.Add( new IntPoint( 0, 50 ) ); + + // generate sample rectangle + rectangle.Add( new IntPoint( 0, 0 ) ); + rectangle.Add( new IntPoint( 50, 0 ) ); + rectangle.Add( new IntPoint( 100, 0 ) ); + rectangle.Add( new IntPoint( 100, 20 ) ); + rectangle.Add( new IntPoint( 100, 40 ) ); + rectangle.Add( new IntPoint( 50, 40 ) ); + rectangle.Add( new IntPoint( 0, 40 ) ); + rectangle.Add( new IntPoint( 0, 20 ) ); + + // generate some triangles + triangle1.Add( new IntPoint( 0, 0 ) ); + triangle1.Add( new IntPoint( 50, 10 ) ); + triangle1.Add( new IntPoint( 100, 20 ) ); + triangle1.Add( new IntPoint( 90, 50 ) ); + triangle1.Add( new IntPoint( 80, 80 ) ); + triangle1.Add( new IntPoint( 40, 40 ) ); + + isoscelesTriangle.Add( new IntPoint( 0, 0 ) ); + isoscelesTriangle.Add( new IntPoint( 50, 0 ) ); + isoscelesTriangle.Add( new IntPoint( 100, 0 ) ); + isoscelesTriangle.Add( new IntPoint( 75, 20 ) ); + isoscelesTriangle.Add( new IntPoint( 50, 40 ) ); + isoscelesTriangle.Add( new IntPoint( 25, 20 ) ); + + equilateralTriangle.Add( new IntPoint( 0, 0 ) ); + equilateralTriangle.Add( new IntPoint( 50, 0 ) ); + equilateralTriangle.Add( new IntPoint( 100, 0 ) ); + equilateralTriangle.Add( new IntPoint( 75, 43 ) ); + equilateralTriangle.Add( new IntPoint( 50, 86 ) ); + equilateralTriangle.Add( new IntPoint( 25, 43 ) ); + + rectangledTriangle.Add( new IntPoint( 0, 0 ) ); + rectangledTriangle.Add( new IntPoint( 20, 0 ) ); + rectangledTriangle.Add( new IntPoint( 40, 0 ) ); + rectangledTriangle.Add( new IntPoint( 20, 50 ) ); + rectangledTriangle.Add( new IntPoint( 0, 100 ) ); + rectangledTriangle.Add( new IntPoint( 0, 50 ) ); + } + + [Test] + public void IsCircleTest( ) + { + Assert.AreEqual( true, shapeChecker.IsCircle( idealCicle ) ); + Assert.AreEqual( true, shapeChecker.IsCircle( distorredCircle ) ); + + Assert.AreEqual( false, shapeChecker.IsCircle( square1 ) ); + Assert.AreEqual( false, shapeChecker.IsCircle( square2 ) ); + Assert.AreEqual( false, shapeChecker.IsCircle( square3 ) ); + Assert.AreEqual( false, shapeChecker.IsCircle( rectangle ) ); + + Assert.AreEqual( false, shapeChecker.IsCircle( triangle1 ) ); + Assert.AreEqual( false, shapeChecker.IsCircle( equilateralTriangle ) ); + Assert.AreEqual( false, shapeChecker.IsCircle( isoscelesTriangle ) ); + Assert.AreEqual( false, shapeChecker.IsCircle( rectangledTriangle ) ); + } + + [Test] + public void IsQuadrilateralTest( ) + { + Assert.AreEqual( true, shapeChecker.IsQuadrilateral( square1 ) ); + Assert.AreEqual( true, shapeChecker.IsQuadrilateral( square2 ) ); + Assert.AreEqual( true, shapeChecker.IsQuadrilateral( square3 ) ); + Assert.AreEqual( true, shapeChecker.IsQuadrilateral( rectangle ) ); + + Assert.AreEqual( false, shapeChecker.IsQuadrilateral( idealCicle ) ); + Assert.AreEqual( false, shapeChecker.IsQuadrilateral( distorredCircle ) ); + + Assert.AreEqual( false, shapeChecker.IsQuadrilateral( triangle1 ) ); + Assert.AreEqual( false, shapeChecker.IsQuadrilateral( equilateralTriangle ) ); + Assert.AreEqual( false, shapeChecker.IsQuadrilateral( isoscelesTriangle ) ); + Assert.AreEqual( false, shapeChecker.IsQuadrilateral( rectangledTriangle ) ); + } + + [Test] + public void CheckQuadrilateralCornersTest( ) + { + List corners; + + Assert.AreEqual( true, shapeChecker.IsQuadrilateral( square1, out corners ) ); + Assert.AreEqual( 4, corners.Count ); + Assert.AreEqual( true, CompareShape( corners, square1Test ) ); + + Assert.AreEqual( true, shapeChecker.IsQuadrilateral( square2, out corners ) ); + Assert.AreEqual( 4, corners.Count ); + Assert.AreEqual( true, CompareShape( corners, square2Test ) ); + } + + [Test] + public void IsTriangleTest( ) + { + Assert.AreEqual( true, shapeChecker.IsTriangle( triangle1 ) ); + Assert.AreEqual( true, shapeChecker.IsTriangle( equilateralTriangle ) ); + Assert.AreEqual( true, shapeChecker.IsTriangle( isoscelesTriangle ) ); + Assert.AreEqual( true, shapeChecker.IsTriangle( rectangledTriangle ) ); + + Assert.AreEqual( false, shapeChecker.IsTriangle( idealCicle ) ); + Assert.AreEqual( false, shapeChecker.IsTriangle( distorredCircle ) ); + + Assert.AreEqual( false, shapeChecker.IsTriangle( square1 ) ); + Assert.AreEqual( false, shapeChecker.IsTriangle( square2 ) ); + Assert.AreEqual( false, shapeChecker.IsTriangle( square3 ) ); + Assert.AreEqual( false, shapeChecker.IsTriangle( rectangle ) ); + } + + [Test] + public void IsConvexPolygon( ) + { + List corners; + + Assert.AreEqual( true, shapeChecker.IsConvexPolygon( triangle1, out corners ) ); + Assert.AreEqual( 3, corners.Count ); + Assert.AreEqual( true, shapeChecker.IsConvexPolygon( equilateralTriangle, out corners ) ); + Assert.AreEqual( 3, corners.Count ); + Assert.AreEqual( true, shapeChecker.IsConvexPolygon( isoscelesTriangle, out corners ) ); + Assert.AreEqual( 3, corners.Count ); + Assert.AreEqual( true, shapeChecker.IsConvexPolygon( rectangledTriangle, out corners ) ); + Assert.AreEqual( 3, corners.Count ); + + Assert.AreEqual( true, shapeChecker.IsConvexPolygon( square1, out corners ) ); + Assert.AreEqual( 4, corners.Count ); + Assert.AreEqual( true, shapeChecker.IsConvexPolygon( square2, out corners ) ); + Assert.AreEqual( 4, corners.Count ); + Assert.AreEqual( true, shapeChecker.IsConvexPolygon( square3, out corners ) ); + Assert.AreEqual( 4, corners.Count ); + Assert.AreEqual( true, shapeChecker.IsConvexPolygon( rectangle, out corners ) ); + Assert.AreEqual( 4, corners.Count ); + + Assert.AreEqual( false, shapeChecker.IsConvexPolygon( idealCicle, out corners ) ); + Assert.AreEqual( false, shapeChecker.IsConvexPolygon( distorredCircle, out corners ) ); + } + + [Test] + public void CheckShapeTypeTest( ) + { + Assert.AreEqual( ShapeType.Circle, shapeChecker.CheckShapeType( idealCicle ) ); + Assert.AreEqual( ShapeType.Circle, shapeChecker.CheckShapeType( distorredCircle ) ); + + Assert.AreEqual( ShapeType.Quadrilateral, shapeChecker.CheckShapeType( square1 ) ); + Assert.AreEqual( ShapeType.Quadrilateral, shapeChecker.CheckShapeType( square2 ) ); + Assert.AreEqual( ShapeType.Quadrilateral, shapeChecker.CheckShapeType( square3 ) ); + Assert.AreEqual( ShapeType.Quadrilateral, shapeChecker.CheckShapeType( rectangle ) ); + + Assert.AreEqual( ShapeType.Triangle, shapeChecker.CheckShapeType( triangle1 ) ); + Assert.AreEqual( ShapeType.Triangle, shapeChecker.CheckShapeType( equilateralTriangle ) ); + Assert.AreEqual( ShapeType.Triangle, shapeChecker.CheckShapeType( isoscelesTriangle ) ); + Assert.AreEqual( ShapeType.Triangle, shapeChecker.CheckShapeType( rectangledTriangle ) ); + } + + private bool CompareShape( List shape1, List shape2 ) + { + if ( shape1.Count != shape2.Count ) + return false; + if ( shape1.Count == 0 ) + return true; + + int index = shape1.IndexOf( shape2[0] ); + + if ( index == -1 ) + return false; + + index++; + + for ( int i = 1; i < shape2.Count; i++, index++ ) + { + if ( index >= shape1.Count ) + index = 0; + + if ( !shape1[index].Equals( shape2[i] ) ) + return false; + } + + return true; + } + + [Test] + [Row( PolygonSubType.Unknown, new int[] { 0, 0, 100, 0, 90, 10 } )] // just a triangle + [Row( PolygonSubType.IsoscelesTriangle, new int[] { 0, 0, 100, 0, 50, 10 } )] + [Row( PolygonSubType.IsoscelesTriangle, new int[] { 0, 0, 100, 0, 50, 200 } )] + [Row( PolygonSubType.EquilateralTriangle, new int[] { 0, 0, 100, 0, 50, 86 } )] + [Row( PolygonSubType.RectangledIsoscelesTriangle, new int[] { 0, 0, 100, 0, 50, 50 } )] + [Row( PolygonSubType.RectangledIsoscelesTriangle, new int[] { 0, 0, 100, 0, 0, 100 } )] + [Row( PolygonSubType.RectangledTriangle, new int[] { 0, 0, 100, 0, 0, 50 } )] + [Row( PolygonSubType.Unknown, new int[] { 0, 0, 100, 0, 90, 50, 10, 70 } )] // just a quadrilateral + [Row( PolygonSubType.Trapezoid, new int[] { 0, 0, 100, 0, 90, 50, 10, 50 } )] + [Row( PolygonSubType.Trapezoid, new int[] { 0, 0, 100, 0, 90, 50, 0, 50 } )] + [Row( PolygonSubType.Trapezoid, new int[] { 0, 0, 100, 0, 90, 50, 0, 53 } )] // a bit disformed + [Row( PolygonSubType.Parallelogram, new int[] { 0, 0, 100, 0, 120, 50, 20, 50 } )] + [Row( PolygonSubType.Parallelogram, new int[] { 0, 0, 100, 0, 70, 50, -30, 50 } )] + [Row( PolygonSubType.Rectangle, new int[] { 0, 0, 100, 0, 100, 50, 0, 50 } )] + [Row( PolygonSubType.Rectangle, new int[] { 0, 0, 100, 0, 100, 52, -3, 50 } )] // a bit disformed + [Row( PolygonSubType.Square, new int[] { 0, 0, 100, 0, 100, 100, 0, 100 } )] + [Row( PolygonSubType.Square, new int[] { 50, 0, 100, 50, 50, 100, 0, 50 } )] + [Row( PolygonSubType.Square, new int[] { 51, 0, 100, 49, 50, 101, 1, 50 } )] // a bit disformed + [Row( PolygonSubType.Rhombus, new int[] { 30, 0, 60, 50, 30, 100, 0, 50 } )] + [Row( PolygonSubType.Rhombus, new int[] { 0, 0, 100, 0, 130, 95, 30, 95 } )] + [Row( PolygonSubType.Unknown, new int[] { 0, 0, 100, 0, 90, 50, 40, 70, 10, 40 } )] // unknown if 5 corners or more + public void CheckPolygonSubTypeTest( PolygonSubType expectedSubType, int[] corners ) + { + Assert.AreEqual( expectedSubType, shapeChecker.CheckPolygonSubType( GetListOfPointFromArray( corners ) ) ); + } + + private List GetListOfPointFromArray( int[] points ) + { + List list = new List( ); + + for ( int i = 0, n = points.Length; i < n; i += 2 ) + { + list.Add( new IntPoint( points[i], points[i + 1] ) ); + } + + return list; + } + } +} diff --git a/Unit Tests/AForge.Math.Tests/Matrix3x3Test.cs b/Unit Tests/AForge.Math.Tests/Matrix3x3Test.cs new file mode 100644 index 00000000..a08a8068 --- /dev/null +++ b/Unit Tests/AForge.Math.Tests/Matrix3x3Test.cs @@ -0,0 +1,421 @@ +using System; +using AForge; +using AForge.Math; +using MbUnit.Framework; + +namespace AForge.Math.Tests +{ + [TestFixture] + public class Matrix3x3Test + { + private const float Epsilon = 0.000001f; + + private Matrix3x3 a1 = new Matrix3x3( ); + private Matrix3x3 a2 = new Matrix3x3( ); + + public Matrix3x3Test( ) + { + // prepare 1st argument + a1.V00 = 1; + a1.V01 = 2; + a1.V02 = 3; + + a1.V10 = 3; + a1.V11 = 2; + a1.V12 = 1; + + a1.V20 = 1; + a1.V21 = 3; + a1.V22 = 2; + + // prepare 2nd argument + a2.V00 = 2; + a2.V01 = 1; + a2.V02 = 3; + + a2.V10 = 1; + a2.V11 = 3; + a2.V12 = 2; + + a2.V20 = 3; + a2.V21 = 2; + a2.V22 = 1; + } + + [Test] + public void ToArrayTest( ) + { + Matrix3x3 matrix = new Matrix3x3( ); + + matrix.V00 = 1; + matrix.V01 = 2; + matrix.V02 = 3; + + matrix.V10 = 4; + matrix.V11 = 5; + matrix.V12 = 6; + + matrix.V20 = 7; + matrix.V21 = 8; + matrix.V22 = 9; + + float[] array = matrix.ToArray( ); + + for ( int i = 0; i < 9; i++ ) + { + Assert.AreEqual( array[i], (float) ( i + 1 ) ); + } + } + + [Test] + public void CreateFromRowsTest( ) + { + Vector3 row0 = new Vector3( 1, 2, 3 ); + Vector3 row1 = new Vector3( 4, 5, 6 ); + Vector3 row2 = new Vector3( 7, 8, 9 ); + Matrix3x3 matrix = Matrix3x3.CreateFromRows( row0, row1, row2 ); + + float[] array = matrix.ToArray( ); + + for ( int i = 0; i < 9; i++ ) + { + Assert.AreEqual( array[i], (float) ( i + 1 ) ); + } + + Assert.AreEqual( row0, matrix.GetRow( 0 ) ); + Assert.AreEqual( row1, matrix.GetRow( 1 ) ); + Assert.AreEqual( row2, matrix.GetRow( 2 ) ); + + Assert.Throws( ( ) => + { + matrix.GetRow( -1 ); + } + ); + + Assert.Throws( ( ) => + { + matrix.GetRow( 3 ); + } + ); + } + + [Test] + public void CreateFromColumnsTest( ) + { + Vector3 column0 = new Vector3( 1, 4, 7 ); + Vector3 column1 = new Vector3( 2, 5, 8 ); + Vector3 column2 = new Vector3( 3, 6, 9 ); + Matrix3x3 matrix = Matrix3x3.CreateFromColumns( column0, column1, column2 ); + + float[] array = matrix.ToArray( ); + + for ( int i = 0; i < 9; i++ ) + { + Assert.AreEqual( array[i], (float) ( i + 1 ) ); + } + + Assert.AreEqual( column0, matrix.GetColumn( 0 ) ); + Assert.AreEqual( column1, matrix.GetColumn( 1 ) ); + Assert.AreEqual( column2, matrix.GetColumn( 2 ) ); + + Assert.Throws( ( ) => + { + matrix.GetColumn( -1 ); + } + ); + + Assert.Throws( ( ) => + { + matrix.GetColumn( 3 ); + } + ); + } + + [Test] + [Row( 0 )] + [Row( 30 )] + [Row( 45 )] + [Row( 60 )] + [Row( 90 )] + [Row( -30 )] + [Row( -90 )] + [Row( -180 )] + public void CreateRotationYTest( float angle ) + { + float radians = (float) ( angle * System.Math.PI / 180 ); + Matrix3x3 matrix = Matrix3x3.CreateRotationY( radians ); + + float sin = (float) System.Math.Sin( radians ); + float cos = (float) System.Math.Cos( radians ); + + float[] expectedArray = new float[9] + { + cos, 0, sin, 0, 1, 0, -sin, 0, cos + }; + + CompareMatrixWithArray( matrix, expectedArray ); + } + + [Test] + [Row( 0 )] + [Row( 30 )] + [Row( 45 )] + [Row( 60 )] + [Row( 90 )] + [Row( -30 )] + [Row( -90 )] + [Row( -180 )] + public void CreateRotationXTest( float angle ) + { + float radians = (float) ( angle * System.Math.PI / 180 ); + Matrix3x3 matrix = Matrix3x3.CreateRotationX( radians ); + + float sin = (float) System.Math.Sin( radians ); + float cos = (float) System.Math.Cos( radians ); + + float[] expectedArray = new float[9] + { + 1, 0, 0, 0, cos, -sin, 0, sin, cos + }; + + CompareMatrixWithArray( matrix, expectedArray ); + } + + [Test] + [Row( 0 )] + [Row( 30 )] + [Row( 45 )] + [Row( 60 )] + [Row( 90 )] + [Row( -30 )] + [Row( -90 )] + [Row( -180 )] + public void CreateRotationZTest( float angle ) + { + float radians = (float) ( angle * System.Math.PI / 180 ); + Matrix3x3 matrix = Matrix3x3.CreateRotationZ( radians ); + + float sin = (float) System.Math.Sin( radians ); + float cos = (float) System.Math.Cos( radians ); + + float[] expectedArray = new float[9] + { + cos, -sin, 0, sin, cos, 0, 0, 0, 1 + }; + + CompareMatrixWithArray( matrix, expectedArray ); + } + + [Test] + [Row( 0, 0, 0 )] + [Row( 30, 45, 60 )] + [Row( 45, 60, 30 )] + [Row( 60, 30, 45 )] + [Row( 90, 90, 90 )] + [Row( -30, -60, -90 )] + [Row( -90, -135, -180 )] + [Row( -180, -30, -60 )] + public void CreateFromYawPitchRollTest( float yaw, float pitch, float roll ) + { + float radiansYaw = (float) ( yaw * System.Math.PI / 180 ); + float radiansPitch = (float) ( pitch * System.Math.PI / 180 ); + float radiansRoll = (float) ( roll * System.Math.PI / 180 ); + + Matrix3x3 matrix = Matrix3x3.CreateFromYawPitchRoll( radiansYaw, radiansPitch, radiansRoll ); + + Matrix3x3 xMatrix = Matrix3x3.CreateRotationX( radiansPitch ); + Matrix3x3 yMatrix = Matrix3x3.CreateRotationY( radiansYaw ); + Matrix3x3 zMatrix = Matrix3x3.CreateRotationZ( radiansRoll ); + + Matrix3x3 rotationMatrix = ( yMatrix * xMatrix ) * zMatrix; + + CompareMatrixWithArray( matrix, rotationMatrix.ToArray( ) ); + } + + [Test] + [Row( 0, 0, 0 )] + [Row( 30, 45, 60 )] + [Row( 45, 60, 30 )] + [Row( 60, 30, 45 )] + [Row( -30, -60, -90 )] + public void ExtractYawPitchRollTest( float yaw, float pitch, float roll ) + { + float radiansYaw = (float) ( yaw * System.Math.PI / 180 ); + float radiansPitch = (float) ( pitch * System.Math.PI / 180 ); + float radiansRoll = (float) ( roll * System.Math.PI / 180 ); + + Matrix3x3 matrix = Matrix3x3.CreateFromYawPitchRoll( radiansYaw, radiansPitch, radiansRoll ); + + float extractedYaw; + float extractedPitch; + float extractedRoll; + + matrix.ExtractYawPitchRoll( out extractedYaw, out extractedPitch, out extractedRoll ); + + Assert.AreApproximatelyEqual( radiansYaw, extractedYaw, Epsilon ); + Assert.AreApproximatelyEqual( radiansPitch, extractedPitch, Epsilon ); + Assert.AreApproximatelyEqual( radiansRoll, extractedRoll, Epsilon ); + } + + [Test] + [Row( 1, 2, 3 )] + [Row( -1, -2, -3 )] + public void CreateDiagonalTest( float v00, float v11, float v22 ) + { + Vector3 diagonal = new Vector3( v00, v11, v22 ); + Matrix3x3 matrix = Matrix3x3.CreateDiagonal( diagonal ); + + float[] expectedArray = new float[9] { v00, 0, 0, 0, v11, 0, 0, 0, v22 }; + + CompareMatrixWithArray( matrix, expectedArray ); + } + + [Test] + [Row( 1, 1, 0, 0, 0, 1, 0, 0, 0, 1 )] + [Row( 0, 1, 0, 0, 0, 1, 0, 1, 0, 0 )] + [Row( 0, 1, 1, 1, 1, 1, 1, 1, 1, 1 )] + [Row( -3, 1, 3, 2, 2, 2, 1, 2, 1, 1 )] + public void DeterminantTest( float expectedDeterminant, + float v00, float v01, float v02, + float v10, float v11, float v12, + float v20, float v21, float v22 ) + { + Matrix3x3 matrix = new Matrix3x3( ); + + matrix.V00 = v00; + matrix.V01 = v01; + matrix.V02 = v02; + + matrix.V10 = v10; + matrix.V11 = v11; + matrix.V12 = v12; + + matrix.V20 = v20; + matrix.V21 = v21; + matrix.V22 = v22; + + Assert.AreEqual( expectedDeterminant, matrix.Determinant ); + } + + [Test] + [Row( 1, 0, 0, 0, 1, 0, 0, 0, 1)] + [Row( 1, 0, 0, 0, 1, 0, 1, 0, 0, ExpectedException = typeof( ArgumentException ) )] + [Row( 2, 0, 0, 0, 4, 0, 0, 0, 3 )] + [Row( 1, 4, 2, 2, 2, 1, 2, 1, 1 )] + public void InverseTest( float v00, float v01, float v02, float v10, float v11, float v12, float v20, float v21, float v22 ) + { + Matrix3x3 matrix = new Matrix3x3( ); + + matrix.V00 = v00; + matrix.V01 = v01; + matrix.V02 = v02; + + matrix.V10 = v10; + matrix.V11 = v11; + matrix.V12 = v12; + + matrix.V20 = v20; + matrix.V21 = v21; + matrix.V22 = v22; + + Matrix3x3 inverse = matrix.Inverse( ); + Matrix3x3 identity = matrix * inverse; + + Assert.AreEqual( true, ApproximateEquals( identity, Matrix3x3.Identity ) ); + } + + [Test] + public void AddMatricesTest( ) + { + Matrix3x3 expectedResult = new Matrix3x3( ); + + expectedResult.V00 = 3; + expectedResult.V01 = 3; + expectedResult.V02 = 6; + + expectedResult.V10 = 4; + expectedResult.V11 = 5; + expectedResult.V12 = 3; + + expectedResult.V20 = 4; + expectedResult.V21 = 5; + expectedResult.V22 = 3; + + Matrix3x3 result = a1 + a2; + + Assert.AreEqual( true, ApproximateEquals( result, expectedResult ) ); + } + + [Test] + public void SubtractMatricesTest( ) + { + Matrix3x3 expectedResult = new Matrix3x3( ); + + expectedResult.V00 = -1; + expectedResult.V01 = 1; + expectedResult.V02 = 0; + + expectedResult.V10 = 2; + expectedResult.V11 = -1; + expectedResult.V12 = -1; + + expectedResult.V20 = -2; + expectedResult.V21 = 1; + expectedResult.V22 = 1; + + Matrix3x3 result = a1 - a2; + + Assert.AreEqual( true, ApproximateEquals( result, expectedResult ) ); + } + + [Test] + public void MultiplyMatricesTest( ) + { + Matrix3x3 expectedResult = new Matrix3x3( ); + + expectedResult.V00 = 13; + expectedResult.V01 = 13; + expectedResult.V02 = 10; + + expectedResult.V10 = 11; + expectedResult.V11 = 11; + expectedResult.V12 = 14; + + expectedResult.V20 = 11; + expectedResult.V21 = 14; + expectedResult.V22 = 11; + + Matrix3x3 result = a1 * a2; + + Assert.AreEqual( true, ApproximateEquals( result, expectedResult ) ); + } + + private void CompareMatrixWithArray( Matrix3x3 matrix, float[] array ) + { + float[] matrixArray = matrix.ToArray( ); + + for ( int i = 0; i < 9; i++ ) + { + Assert.AreEqual( matrixArray[i], array[i] ); + } + } + + private bool ApproximateEquals( Matrix3x3 matrix1, Matrix3x3 matrix2 ) + { + // TODO: better algorithm should be put into the framework actually + return ( + ( System.Math.Abs( matrix1.V00 - matrix2.V00 ) <= Epsilon ) && + ( System.Math.Abs( matrix1.V01 - matrix2.V01 ) <= Epsilon ) && + ( System.Math.Abs( matrix1.V02 - matrix2.V02 ) <= Epsilon ) && + + ( System.Math.Abs( matrix1.V10 - matrix2.V10 ) <= Epsilon ) && + ( System.Math.Abs( matrix1.V11 - matrix2.V11 ) <= Epsilon ) && + ( System.Math.Abs( matrix1.V12 - matrix2.V12 ) <= Epsilon ) && + + ( System.Math.Abs( matrix1.V20 - matrix2.V20 ) <= Epsilon ) && + ( System.Math.Abs( matrix1.V21 - matrix2.V21 ) <= Epsilon ) && + ( System.Math.Abs( matrix1.V22 - matrix2.V22 ) <= Epsilon ) + ); + } + } +} diff --git a/Unit Tests/AForge.Math.Tests/Matrix4x4Test.cs b/Unit Tests/AForge.Math.Tests/Matrix4x4Test.cs new file mode 100644 index 00000000..0db2050e --- /dev/null +++ b/Unit Tests/AForge.Math.Tests/Matrix4x4Test.cs @@ -0,0 +1,437 @@ +using System; +using AForge; +using AForge.Math; +using MbUnit.Framework; + +namespace AForge.Math.Tests +{ + [TestFixture] + public class Matrix4x4Test + { + private const float Epsilon = 0.000001f; + + private Matrix4x4 a1 = new Matrix4x4( ); + private Matrix4x4 a2 = new Matrix4x4( ); + + public Matrix4x4Test( ) + { + // prepare 1st argument + a1.V00 = 1; + a1.V01 = 2; + a1.V02 = 3; + a1.V03 = 4; + + a1.V10 = 4; + a1.V11 = 3; + a1.V12 = 2; + a1.V13 = 1; + + a1.V20 = 3; + a1.V21 = 1; + a1.V22 = 4; + a1.V23 = 2; + + a1.V30 = 2; + a1.V31 = 4; + a1.V32 = 1; + a1.V33 = 3; + + // prepare 2nd argument + a2.V00 = 2; + a2.V01 = 1; + a2.V02 = 4; + a2.V03 = 3; + + a2.V10 = 4; + a2.V11 = 2; + a2.V12 = 3; + a2.V13 = 1; + + a2.V20 = 3; + a2.V21 = 4; + a2.V22 = 1; + a2.V23 = 2; + + a2.V30 = 1; + a2.V31 = 3; + a2.V32 = 2; + a2.V33 = 4; + } + + [Test] + public void ToArrayTest( ) + { + Matrix4x4 matrix = new Matrix4x4( ); + + matrix.V00 = 1; + matrix.V01 = 2; + matrix.V02 = 3; + matrix.V03 = 4; + + matrix.V10 = 5; + matrix.V11 = 6; + matrix.V12 = 7; + matrix.V13 = 8; + + matrix.V20 = 9; + matrix.V21 = 10; + matrix.V22 = 11; + matrix.V23 = 12; + + matrix.V30 = 13; + matrix.V31 = 14; + matrix.V32 = 15; + matrix.V33 = 16; + + float[] array = matrix.ToArray( ); + + for ( int i = 0; i < 16; i++ ) + { + Assert.AreEqual( array[i], (float) ( i + 1 ) ); + } + } + + [Test] + public void CreateFromRowsTest( ) + { + Vector4 row0 = new Vector4( 1, 2, 3, 4 ); + Vector4 row1 = new Vector4( 5, 6, 7, 8 ); + Vector4 row2 = new Vector4( 9, 10, 11, 12 ); + Vector4 row3 = new Vector4( 13, 14, 15, 16 ); + Matrix4x4 matrix = Matrix4x4.CreateFromRows( row0, row1, row2, row3 ); + + float[] array = matrix.ToArray( ); + + for ( int i = 0; i < 16; i++ ) + { + Assert.AreEqual( array[i], (float) ( i + 1 ) ); + } + + Assert.AreEqual( row0, matrix.GetRow( 0 ) ); + Assert.AreEqual( row1, matrix.GetRow( 1 ) ); + Assert.AreEqual( row2, matrix.GetRow( 2 ) ); + Assert.AreEqual( row3, matrix.GetRow( 3 ) ); + + + Assert.Throws( ( ) => + { + matrix.GetRow( -1 ); + } + ); + + Assert.Throws( ( ) => + { + matrix.GetRow( 4 ); + } + ); + } + + [Test] + public void CreateFromColumnsTest( ) + { + Vector4 column0 = new Vector4( 1, 5, 9, 13 ); + Vector4 column1 = new Vector4( 2, 6, 10, 14 ); + Vector4 column2 = new Vector4( 3, 7, 11, 15 ); + Vector4 column3 = new Vector4( 4, 8, 12, 16 ); + Matrix4x4 matrix = Matrix4x4.CreateFromColumns( column0, column1, column2, column3 ); + + float[] array = matrix.ToArray( ); + + for ( int i = 0; i < 16; i++ ) + { + Assert.AreEqual( array[i], (float) ( i + 1 ) ); + } + + Assert.AreEqual( column0, matrix.GetColumn( 0 ) ); + Assert.AreEqual( column1, matrix.GetColumn( 1 ) ); + Assert.AreEqual( column2, matrix.GetColumn( 2 ) ); + Assert.AreEqual( column3, matrix.GetColumn( 3 ) ); + + Assert.Throws( ( ) => + { + matrix.GetColumn( -1 ); + } + ); + + Assert.Throws( ( ) => + { + matrix.GetColumn( 4 ); + } + ); + } + + [Test] + [Row( 0 )] + [Row( 30 )] + [Row( 45 )] + [Row( 60 )] + [Row( 90 )] + [Row( -30 )] + [Row( -90 )] + [Row( -180 )] + public void CreateRotationYTest( float angle ) + { + float radians = (float) ( angle * System.Math.PI / 180 ); + Matrix4x4 matrix = Matrix4x4.CreateRotationY( radians ); + + float sin = (float) System.Math.Sin( radians ); + float cos = (float) System.Math.Cos( radians ); + + float[] expectedArray = new float[16] + { + cos, 0, sin, 0, + 0, 1, 0, 0, + -sin, 0, cos, 0, + 0, 0, 0, 1 + }; + + CompareMatrixWithArray( matrix, expectedArray ); + } + + [Test] + [Row( 0 )] + [Row( 30 )] + [Row( 45 )] + [Row( 60 )] + [Row( 90 )] + [Row( -30 )] + [Row( -90 )] + [Row( -180 )] + public void CreateRotationXTest( float angle ) + { + float radians = (float) ( angle * System.Math.PI / 180 ); + Matrix4x4 matrix = Matrix4x4.CreateRotationX( radians ); + + float sin = (float) System.Math.Sin( radians ); + float cos = (float) System.Math.Cos( radians ); + + float[] expectedArray = new float[16] + { + 1, 0, 0, 0, + 0, cos, -sin, 0, + 0, sin, cos, 0, + 0, 0, 0, 1 + }; + + CompareMatrixWithArray( matrix, expectedArray ); + } + + [Test] + [Row( 0 )] + [Row( 30 )] + [Row( 45 )] + [Row( 60 )] + [Row( 90 )] + [Row( -30 )] + [Row( -90 )] + [Row( -180 )] + public void CreateRotationZTest( float angle ) + { + float radians = (float) ( angle * System.Math.PI / 180 ); + Matrix4x4 matrix = Matrix4x4.CreateRotationZ( radians ); + + float sin = (float) System.Math.Sin( radians ); + float cos = (float) System.Math.Cos( radians ); + + float[] expectedArray = new float[16] + { + cos, -sin, 0, 0, + sin, cos, 0, 0, + 0, 0, 1, 0, + 0, 0, 0, 1, + }; + + CompareMatrixWithArray( matrix, expectedArray ); + } + + [Test] + [Row( 0, 0, 0 )] + [Row( 30, 45, 60 )] + [Row( 45, 60, 30 )] + [Row( 60, 30, 45 )] + [Row( 90, 90, 90 )] + [Row( -30, -60, -90 )] + [Row( -90, -135, -180 )] + [Row( -180, -30, -60 )] + public void CreateFromYawPitchRollTest( float yaw, float pitch, float roll ) + { + float radiansYaw = (float) ( yaw * System.Math.PI / 180 ); + float radiansPitch = (float) ( pitch * System.Math.PI / 180 ); + float radiansRoll = (float) ( roll * System.Math.PI / 180 ); + + Matrix4x4 matrix = Matrix4x4.CreateFromYawPitchRoll( radiansYaw, radiansPitch, radiansRoll ); + + Matrix4x4 xMatrix = Matrix4x4.CreateRotationX( radiansPitch ); + Matrix4x4 yMatrix = Matrix4x4.CreateRotationY( radiansYaw ); + Matrix4x4 zMatrix = Matrix4x4.CreateRotationZ( radiansRoll ); + + Matrix4x4 rotationMatrix = ( yMatrix * xMatrix ) * zMatrix; + + CompareMatrixWithArray( matrix, rotationMatrix.ToArray( ) ); + } + + [Test] + [Row( 0, 0, 0 )] + [Row( 30, 45, 60 )] + [Row( 45, 60, 30 )] + [Row( 60, 30, 45 )] + [Row( -30, -60, -90 )] + public void ExtractYawPitchRollTest( float yaw, float pitch, float roll ) + { + float radiansYaw = (float) ( yaw * System.Math.PI / 180 ); + float radiansPitch = (float) ( pitch * System.Math.PI / 180 ); + float radiansRoll = (float) ( roll * System.Math.PI / 180 ); + + Matrix4x4 matrix = Matrix4x4.CreateFromYawPitchRoll( radiansYaw, radiansPitch, radiansRoll ); + + float extractedYaw; + float extractedPitch; + float extractedRoll; + + matrix.ExtractYawPitchRoll( out extractedYaw, out extractedPitch, out extractedRoll ); + + Assert.AreApproximatelyEqual( radiansYaw, extractedYaw, Epsilon ); + Assert.AreApproximatelyEqual( radiansPitch, extractedPitch, Epsilon ); + Assert.AreApproximatelyEqual( radiansRoll, extractedRoll, Epsilon ); + } + + [Test] + [Row( 1, 2, 3, 4 )] + [Row( -1, -2, -3, -4 )] + public void CreateDiagonalTest( float v00, float v11, float v22, float v33 ) + { + Vector4 diagonal = new Vector4( v00, v11, v22, v33 ); + Matrix4x4 matrix = Matrix4x4.CreateDiagonal( diagonal ); + + float[] expectedArray = new float[16] { v00, 0, 0, 0, 0, v11, 0, 0, 0, 0, v22, 0, 0, 0, 0, v33 }; + + CompareMatrixWithArray( matrix, expectedArray ); + } + + [Test] + public void AddMatricesTest( ) + { + Matrix4x4 expectedResult = new Matrix4x4( ); + + expectedResult.V00 = 3; + expectedResult.V01 = 3; + expectedResult.V02 = 7; + expectedResult.V03 = 7; + + expectedResult.V10 = 8; + expectedResult.V11 = 5; + expectedResult.V12 = 5; + expectedResult.V13 = 2; + + expectedResult.V20 = 6; + expectedResult.V21 = 5; + expectedResult.V22 = 5; + expectedResult.V23 = 4; + + expectedResult.V30 = 3; + expectedResult.V31 = 7; + expectedResult.V32 = 3; + expectedResult.V33 = 7; + + Matrix4x4 result = a1 + a2; + + Assert.AreEqual( true, ApproximateEquals( result, expectedResult ) ); + } + + [Test] + public void SubtractMatricesTest( ) + { + Matrix4x4 expectedResult = new Matrix4x4( ); + + expectedResult.V00 = -1; + expectedResult.V01 = 1; + expectedResult.V02 = -1; + expectedResult.V03 = 1; + + expectedResult.V10 = 0; + expectedResult.V11 = 1; + expectedResult.V12 = -1; + expectedResult.V13 = 0; + + expectedResult.V20 = 0; + expectedResult.V21 = -3; + expectedResult.V22 = 3; + expectedResult.V23 = 0; + + expectedResult.V30 = 1; + expectedResult.V31 = 1; + expectedResult.V32 = -1; + expectedResult.V33 = -1; + + Matrix4x4 result = a1 - a2; + + Assert.AreEqual( true, ApproximateEquals( result, expectedResult ) ); + } + + [Test] + public void MultiplyMatricesTest( ) + { + Matrix4x4 expectedResult = new Matrix4x4( ); + + expectedResult.V00 = 23; + expectedResult.V01 = 29; + expectedResult.V02 = 21; + expectedResult.V03 = 27; + + expectedResult.V10 = 27; + expectedResult.V11 = 21; + expectedResult.V12 = 29; + expectedResult.V13 = 23; + + expectedResult.V20 = 24; + expectedResult.V21 = 27; + expectedResult.V22 = 23; + expectedResult.V23 = 26; + + expectedResult.V30 = 26; + expectedResult.V31 = 23; + expectedResult.V32 = 27; + expectedResult.V33 = 24; + + Matrix4x4 result = a1 * a2; + + Assert.AreEqual( true, ApproximateEquals( result, expectedResult ) ); + } + + private void CompareMatrixWithArray( Matrix4x4 matrix, float[] array ) + { + float[] matrixArray = matrix.ToArray( ); + + for ( int i = 0; i < 16; i++ ) + { + Assert.AreEqual( matrixArray[i], array[i] ); + } + } + + private bool ApproximateEquals( Matrix4x4 matrix1, Matrix4x4 matrix2 ) + { + // TODO: better algorithm should be put into the framework actually + return ( + ( System.Math.Abs( matrix1.V00 - matrix2.V00 ) <= Epsilon ) && + ( System.Math.Abs( matrix1.V01 - matrix2.V01 ) <= Epsilon ) && + ( System.Math.Abs( matrix1.V02 - matrix2.V02 ) <= Epsilon ) && + ( System.Math.Abs( matrix1.V03 - matrix2.V03 ) <= Epsilon ) && + + ( System.Math.Abs( matrix1.V10 - matrix2.V10 ) <= Epsilon ) && + ( System.Math.Abs( matrix1.V11 - matrix2.V11 ) <= Epsilon ) && + ( System.Math.Abs( matrix1.V12 - matrix2.V12 ) <= Epsilon ) && + ( System.Math.Abs( matrix1.V13 - matrix2.V13 ) <= Epsilon ) && + + ( System.Math.Abs( matrix1.V20 - matrix2.V20 ) <= Epsilon ) && + ( System.Math.Abs( matrix1.V21 - matrix2.V21 ) <= Epsilon ) && + ( System.Math.Abs( matrix1.V22 - matrix2.V22 ) <= Epsilon ) && + ( System.Math.Abs( matrix1.V23 - matrix2.V23 ) <= Epsilon ) && + + ( System.Math.Abs( matrix1.V30 - matrix2.V30 ) <= Epsilon ) && + ( System.Math.Abs( matrix1.V31 - matrix2.V31 ) <= Epsilon ) && + ( System.Math.Abs( matrix1.V32 - matrix2.V32 ) <= Epsilon ) && + ( System.Math.Abs( matrix1.V33 - matrix2.V33 ) <= Epsilon ) + ); + } + } +} diff --git a/Unit Tests/AForge.Math.Tests/Metrics/MetricsTest.cs b/Unit Tests/AForge.Math.Tests/Metrics/MetricsTest.cs new file mode 100644 index 00000000..e2754d57 --- /dev/null +++ b/Unit Tests/AForge.Math.Tests/Metrics/MetricsTest.cs @@ -0,0 +1,239 @@ +using System; +using System.Collections.Generic; +using AForge; +using AForge.Math.Metrics; +using MbUnit.Framework; + +namespace AForge.Math.Metrics.Tests +{ + [TestFixture] + public class MetricsTest + { + // test data + private double[] p0 = new double[] { 1, 0.5 }; + private double[] q0 = new double[] { 0.5, 1 }; + + private double[] p1 = new double[] { 4.5, 1 }; + private double[] q1 = new double[] { 4, 2 }; + + private double[] p2 = new double[] { 0, 0, 0 }; + private double[] q2 = new double[] { 0, 0, 0 }; + + private double[] p3 = new double[] { 1, 1, 1 }; + private double[] q3 = new double[] { 1, 1, 1 }; + + private double[] p4 = new double[] { 2.5, 3.5, 3.0, 3.5, 2.5, 3.0 }; + private double[] q4 = new double[] { 3.0, 3.5, 1.5, 5.0, 3.5, 3.0 }; + + private double[] p5 = new double[] { 1, 3, 5, 6, 8, 9, 6, 4, 3, 2 }; + private double[] q5 = new double[] { 2, 5, 6, 6, 7, 7, 5, 3, 1, 1 }; + + [Test, MultipleAsserts] + public void CosineDistanceTest( ) + { + CosineDistance dist = new CosineDistance( ); + + Assert.Throws( ( ) => dist.GetDistance( p0, q4 ) ); + + double result = dist.GetDistance( p0, q0 ); + Assert.AreApproximatelyEqual( result, .2, 0.00001 ); + + result = dist.GetDistance( p1, q1 ); + Assert.AreApproximatelyEqual( result, 0.029857, 0.00001 ); + + result = dist.GetDistance( p2, q2 ); + Assert.AreEqual( result, 1 ); + + result = dist.GetDistance( p3, q3 ); + Assert.AreApproximatelyEqual( result, 0, 0.00001 ); + + result = dist.GetDistance( p4, q4 ); + Assert.AreApproximatelyEqual( result, 0.039354, 0.00001 ); + + result = dist.GetDistance( p5, q5 ); + Assert.AreApproximatelyEqual( result, 0.031026, 0.00001 ); + } + + [Test, MultipleAsserts] + public void CosineSimilarityTest( ) + { + CosineSimilarity sim = new CosineSimilarity( ); + + Assert.Throws( ( ) => sim.GetSimilarityScore( p0, q4 ) ); + + double result = sim.GetSimilarityScore( p0, q0 ); + Assert.AreApproximatelyEqual( result, .8, 0.00001 ); + + result = sim.GetSimilarityScore( p1, q1 ); + Assert.AreApproximatelyEqual( result, 0.97014, 0.00001 ); + + result = sim.GetSimilarityScore( p2, q2 ); + Assert.AreEqual( result, 0 ); + + result = sim.GetSimilarityScore( p3, q3 ); + Assert.AreApproximatelyEqual( result, 1, 0.00001 ); + + result = sim.GetSimilarityScore( p4, q4 ); + Assert.AreApproximatelyEqual( result, 0.96065, 0.00001 ); + + result = sim.GetSimilarityScore( p5, q5 ); + Assert.AreApproximatelyEqual( result, 0.96897, 0.00001 ); + } + + [Test, MultipleAsserts] + public void EuclideanDistanceTest( ) + { + EuclideanDistance dist = new EuclideanDistance( ); + + Assert.Throws( ( ) => dist.GetDistance( p0, q4 ) ); + + double result = dist.GetDistance( p0, q0 ); + Assert.AreApproximatelyEqual( result, .70711, 0.00001 ); + + result = dist.GetDistance( p1, q1 ); + Assert.AreApproximatelyEqual( result, 1.11803, 0.00001 ); + + result = dist.GetDistance( p2, q2 ); + Assert.AreEqual( result, 0 ); + + result = dist.GetDistance( p3, q3 ); + Assert.AreEqual( result, 0 ); + + result = dist.GetDistance( p4, q4 ); + Assert.AreApproximatelyEqual( result, 2.39792, 0.00001 ); + + result = dist.GetDistance( p5, q5 ); + Assert.AreApproximatelyEqual( result, 4.24264, 0.00001 ); + } + + [Test, MultipleAsserts] + public void EuclideanSimilarityTest( ) + { + EuclideanSimilarity sim = new EuclideanSimilarity( ); + + Assert.Throws( ( ) => sim.GetSimilarityScore( p0, q4 ) ); + + double result = sim.GetSimilarityScore( p0, q0 ); + Assert.AreApproximatelyEqual( result, 0.58578, 0.00001 ); + + result = sim.GetSimilarityScore( p1, q1 ); + Assert.AreApproximatelyEqual( result, 0.47213, 0.00001 ); + + result = sim.GetSimilarityScore( p2, q2 ); + Assert.AreEqual( result, 1 ); + + result = sim.GetSimilarityScore( p3, q3 ); + Assert.AreEqual( result, 1 ); + + result = sim.GetSimilarityScore( p4, q4 ); + Assert.AreApproximatelyEqual( result, 0.2943, 0.00001 ); + + result = sim.GetSimilarityScore( p5, q5 ); + Assert.AreApproximatelyEqual( result, 0.19074, 0.00001 ); + } + + [Test, MultipleAsserts] + public void HammingDistanceTest( ) + { + HammingDistance dist = new HammingDistance( ); + + Assert.Throws( ( ) => dist.GetDistance( p0, q4 ) ); + + double result = dist.GetDistance( p0, q0 ); + Assert.AreEqual( result, 2 ); + + result = dist.GetDistance( p1, q1 ); + Assert.AreEqual( result, 2 ); + + result = dist.GetDistance( p2, q2 ); + Assert.AreEqual( result, 0 ); + + result = dist.GetDistance( p3, q3 ); + Assert.AreEqual( result, 0 ); + + result = dist.GetDistance( p4, q4 ); + Assert.AreEqual( result, 4 ); + + result = dist.GetDistance( p5, q5 ); + Assert.AreEqual( result, 9 ); + } + + [Test, MultipleAsserts] + public void JaccardDistanceTest( ) + { + JaccardDistance dist = new JaccardDistance( ); + + Assert.Throws( ( ) => dist.GetDistance( p0, q4 ) ); + + double result = dist.GetDistance( p0, q0 ); + Assert.AreEqual( result, 1 ); + + result = dist.GetDistance( p1, q1 ); + Assert.AreEqual( result, 1 ); + + result = dist.GetDistance( p2, q2 ); + Assert.AreEqual( result, 0 ); + + result = dist.GetDistance( p3, q3 ); + Assert.AreEqual( result, 0 ); + + result = dist.GetDistance( p4, q4 ); + Assert.AreApproximatelyEqual( result, 0.66666, 0.00001 ); + + result = dist.GetDistance( p5, q5 ); + Assert.AreApproximatelyEqual( result, 0.9, 0.1 ); + } + + [Test, MultipleAsserts] + public void ManhattanDistanceTest( ) + { + ManhattanDistance dist = new ManhattanDistance( ); + + Assert.Throws( ( ) => dist.GetDistance( p0, q4 ) ); + + double result = dist.GetDistance( p0, q0 ); + Assert.AreEqual( result, 1 ); + + result = dist.GetDistance( p1, q1 ); + Assert.AreEqual( result, 1.5 ); + + result = dist.GetDistance( p2, q2 ); + Assert.AreEqual( result, 0 ); + + result = dist.GetDistance( p3, q3 ); + Assert.AreEqual( result, 0 ); + + result = dist.GetDistance( p4, q4 ); + Assert.AreEqual( result, 4.5 ); + + result = dist.GetDistance( p5, q5 ); + Assert.AreEqual( result, 12 ); + } + + [Test, MultipleAsserts] + public void PearsonCorrelationTest( ) + { + PearsonCorrelation sim = new PearsonCorrelation( ); + + Assert.Throws( ( ) => sim.GetSimilarityScore( p0, q4 ) ); + + double result = sim.GetSimilarityScore( p0, q0 ); + Assert.AreEqual( result, -1 ); + + result = sim.GetSimilarityScore( p1, q1 ); + Assert.AreEqual( result, 1 ); + + result = sim.GetSimilarityScore( p2, q2 ); + Assert.AreEqual( result, 0 ); + + result = sim.GetSimilarityScore( p3, q3 ); + Assert.AreEqual( result, 0 ); + + result = sim.GetSimilarityScore( p4, q4 ); + Assert.AreApproximatelyEqual( result, 0.396059, 0.00001 ); + + result = sim.GetSimilarityScore( p5, q5 ); + Assert.AreApproximatelyEqual( result, 0.85470, 0.00001 ); + } + } +} diff --git a/Unit Tests/AForge.Math.Tests/Properties/AssemblyInfo.cs b/Unit Tests/AForge.Math.Tests/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..e1d3e48c --- /dev/null +++ b/Unit Tests/AForge.Math.Tests/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle( "AForge.Math.Tests" )] +[assembly: AssemblyDescription( "" )] +[assembly: AssemblyConfiguration( "" )] +[assembly: AssemblyCompany( "AForge" )] +[assembly: AssemblyProduct( "AForge.NET" )] +[assembly: AssemblyCopyright( "AForge © 2010" )] +[assembly: AssemblyTrademark( "" )] +[assembly: AssemblyCulture( "" )] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible( false )] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid( "19713951-07af-4bb7-9a8d-463eb8ac8eff" )] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion( "1.0.0.0" )] +[assembly: AssemblyFileVersion( "1.0.0.0" )] diff --git a/Unit Tests/AForge.Math.Tests/StatisticsTest.cs b/Unit Tests/AForge.Math.Tests/StatisticsTest.cs new file mode 100644 index 00000000..5f03c953 --- /dev/null +++ b/Unit Tests/AForge.Math.Tests/StatisticsTest.cs @@ -0,0 +1,35 @@ +using System; +using AForge; +using AForge.Math; +using MbUnit.Framework; + +namespace AForge.Math.Tests +{ + [TestFixture] + public class StatisticsTest + { + [Test, MultipleAsserts] + public void ModeTest( ) + { + int[] values = new int[] { 1, 2, 2, 3, 3, 3 }; + int mode = Statistics.Mode( values ); + Assert.AreEqual( 3, mode ); + + values = new int[] { 1, 1, 1, 2, 2, 2 }; + mode = Statistics.Mode( values ); + Assert.AreEqual( 3, mode ); + + values = new int[] { 2, 2, 2, 1, 1, 1 }; + mode = Statistics.Mode( values ); + Assert.AreEqual( 0, mode ); + + values = new int[] { 0, 0, 0, 0, 0, 0 }; + mode = Statistics.Mode( values ); + Assert.AreEqual( 0, mode ); + + values = new int[] { 1, 1, 2, 3, 6, 8, 11, 12, 7, 3 }; + mode = Statistics.Mode( values ); + Assert.AreEqual( 7, mode ); + } + } +} diff --git a/Unit Tests/AForge.Math.Tests/ToolsTest.cs b/Unit Tests/AForge.Math.Tests/ToolsTest.cs new file mode 100644 index 00000000..f39ef5f1 --- /dev/null +++ b/Unit Tests/AForge.Math.Tests/ToolsTest.cs @@ -0,0 +1,32 @@ +using System; +using AForge; +using AForge.Math; +using MbUnit.Framework; + +namespace AForge.Math.Tests +{ + [TestFixture] + public class ToolsTest + { + [Test] + [Row( 0, false )] + [Row( 1, true )] + [Row( 2, true )] + [Row( 3, false )] + [Row( 4, true )] + [Row( 8, true )] + [Row( 0x80, true )] + [Row( 0x81, false )] + [Row( 0x8000, true )] + [Row( 0x8001, false )] + [Row( 0x40000000, true )] + [Row( 0x3FFFFFFF, false )] + [Row( -1, false )] + [Row( -8, false )] + [Row( int.MinValue, false )] + public void IsPowerOf2Test( int valueToTest, bool expectedResult ) + { + Assert.AreEqual( expectedResult, Tools.IsPowerOf2( valueToTest ) ); + } + } +} diff --git a/Unit Tests/AForge.Math.Tests/Vector3Test.cs b/Unit Tests/AForge.Math.Tests/Vector3Test.cs new file mode 100644 index 00000000..e9c6c8bb --- /dev/null +++ b/Unit Tests/AForge.Math.Tests/Vector3Test.cs @@ -0,0 +1,281 @@ +using System; +using AForge; +using AForge.Math; +using MbUnit.Framework; + +namespace AForge.Math.Tests +{ + [TestFixture] + public class Vector3Test + { + [Test] + public void ConstructorTest( ) + { + Vector3 v1 = new Vector3( 1, 2, 3 ); + Vector3 v2 = new Vector3( -1, -2, -3 ); + Vector3 v3 = new Vector3( 7 ); + + Assert.AreEqual( v1.X, 1 ); + Assert.AreEqual( v1.Y, 2 ); + Assert.AreEqual( v1.Z, 3 ); + + Assert.AreEqual( v2.X, -1 ); + Assert.AreEqual( v2.Y, -2 ); + Assert.AreEqual( v2.Z, -3 ); + + Assert.AreEqual( v3.X, 7 ); + Assert.AreEqual( v3.Y, 7 ); + Assert.AreEqual( v3.Z, 7 ); + } + + [Test] + [Row( 0, 0, 0, 0, 0, 0, 0 )] + [Row( 0, 7, 7, 0, 7, 0, 1 )] + [Row( 0, 0, 7, 0, 7, 0, 2 )] + [Row( 0, 7, 0, 0, 7, 0, 1 )] + [Row( 7, 0, 7, 0, 7, 1, 0 )] + [Row( 5, 7, 9, 5, 9, 0, 2 )] + [Row( 5, 9, 7, 5, 9, 0, 1 )] + [Row( 7, 5, 9, 5, 9, 1, 2 )] + [Row( 7, 9, 5, 5, 9, 2, 1 )] + [Row( 9, 5, 7, 5, 9, 1, 0 )] + [Row( 9, 7, 5, 5, 9, 2, 0 )] + public void MinMaxTest( float x, float y, float z, float expectedMin, float expectedMax, + int expectedMinIndex, int expectedMaxIndex ) + { + Vector3 vector = new Vector3( x, y, z ); + + Assert.AreEqual( vector.Min, expectedMin ); + Assert.AreEqual( vector.Max, expectedMax ); + + Assert.AreEqual( vector.MinIndex, expectedMinIndex ); + Assert.AreEqual( vector.MaxIndex, expectedMaxIndex ); + } + + [Test] + [Row( 0, 0, 0, 0 )] + [Row( 1, 0, 0, 1 )] + [Row( 0, 2, 0, 2 )] + [Row( 0, 0, 3, 3 )] + [Row( 3, 4, 0, 5 )] + [Row( -3, -4, 0, 5 )] + public void NormTest( float x, float y, float z, float expectedNorm ) + { + Vector3 vector = new Vector3( x, y, z ); + + float norm = vector.Norm; + + Assert.AreEqual( norm, expectedNorm ); + Assert.AreEqual( norm * norm, vector.Square ); + } + + [Test] + [Row( 1, 2, 3, 1, 2, 3, true )] + [Row( -1, -2, -3, -1, -2, -3, true )] + [Row( -1, -2, -3, -1, -2, 3, false )] + public void EqualityTest( float x1, float y1, float z1, float x2, float y2, float z2, bool expected ) + { + Vector3 vector1 = new Vector3( x1, y1, z1 ); + Vector3 vector2 = new Vector3( x2, y2, z2 ); + + Assert.AreEqual( vector1 == vector2, expected ); + Assert.AreEqual( vector1 != vector2, !expected ); + + Assert.AreEqual( vector1.Equals( vector2 ), expected ); + Assert.AreEqual( vector1.Equals( (object) vector2 ), expected ); + } + + [Test] + [Row( 1, 2, 3, 4, 5, 6, 5, 7, 9 )] + [Row( 1, 2, 3, -4, -5, -6, -3, -3, -3 )] + public void AdditionTest( float x1, float y1, float z1, float x2, float y2, float z2, + float expectedX, float expectedY, float expectedZ ) + { + Vector3 vector1 = new Vector3( x1, y1, z1 ); + Vector3 vector2 = new Vector3( x2, y2, z2 ); + Vector3 expectedResult = new Vector3( expectedX, expectedY, expectedZ ); + + Vector3 result1 = vector1 + vector2; + Vector3 result2 = Vector3.Add( vector1, vector2 ); + + Assert.AreEqual( expectedResult == result1, true ); + Assert.AreEqual( expectedResult == result2, true ); + } + + [Test] + [Row( 1, 2, 3, 4, 5, 6, 7 )] + [Row( 1, 2, 3, -4, -3, -2, -1 )] + public void AdditionWithConstTest( float x, float y, float z, float value, + float expectedX, float expectedY, float expectedZ ) + { + Vector3 vector = new Vector3( x, y, z ); + Vector3 expectedResult = new Vector3( expectedX, expectedY, expectedZ ); + + Vector3 result1 = vector + value; + Vector3 result2 = Vector3.Add( vector, value ); + + Assert.AreEqual( expectedResult == result1, true ); + Assert.AreEqual( expectedResult == result2, true ); + } + + [Test] + [Row( 1, 2, 3, 4, 5, 6, -3, -3, -3 )] + [Row( 1, 2, 3, -4, -5, -6, 5, 7, 9 )] + public void SubtractionTest( float x1, float y1, float z1, float x2, float y2, float z2, + float expectedX, float expectedY, float expectedZ ) + { + Vector3 vector1 = new Vector3( x1, y1, z1 ); + Vector3 vector2 = new Vector3( x2, y2, z2 ); + Vector3 expectedResult = new Vector3( expectedX, expectedY, expectedZ ); + + Vector3 result1 = vector1 - vector2; + Vector3 result2 = Vector3.Subtract( vector1, vector2 ); + + Assert.AreEqual( expectedResult == result1, true ); + Assert.AreEqual( expectedResult == result2, true ); + } + + [Test] + [Row( 1, 2, 3, 4, -3, -2, -1 )] + [Row( 1, 2, 3, -4, 5, 6, 7 )] + public void SubtractionWithConstTest( float x, float y, float z, float value, + float expectedX, float expectedY, float expectedZ ) + { + Vector3 vector = new Vector3( x, y, z ); + Vector3 expectedResult = new Vector3( expectedX, expectedY, expectedZ ); + + Vector3 result1 = vector - value; + Vector3 result2 = Vector3.Subtract( vector, value ); + + Assert.AreEqual( expectedResult == result1, true ); + Assert.AreEqual( expectedResult == result2, true ); + } + + [Test] + [Row( 1, 2, 3, 4, 5, 6, 4, 10, 18 )] + [Row( 1, 2, 3, -4, -5, -6, -4, -10, -18 )] + public void MultiplicationTest( float x1, float y1, float z1, float x2, float y2, float z2, + float expectedX, float expectedY, float expectedZ ) + { + Vector3 vector1 = new Vector3( x1, y1, z1 ); + Vector3 vector2 = new Vector3( x2, y2, z2 ); + Vector3 expectedResult = new Vector3( expectedX, expectedY, expectedZ ); + + Vector3 result1 = vector1 * vector2; + Vector3 result2 = Vector3.Multiply( vector1, vector2 ); + + Assert.AreEqual( expectedResult == result1, true ); + Assert.AreEqual( expectedResult == result2, true ); + } + + [Test] + [Row( 1, 2, 3, 4, 4, 8, 12 )] + [Row( 1, 2, 3, -4, -4, -8, -12 )] + public void MultiplicationWithConstTest( float x, float y, float z, float value, + float expectedX, float expectedY, float expectedZ ) + { + Vector3 vector = new Vector3( x, y, z ); + Vector3 expectedResult = new Vector3( expectedX, expectedY, expectedZ ); + + Vector3 result1 = vector * value; + Vector3 result2 = Vector3.Multiply( vector, value ); + + Assert.AreEqual( expectedResult == result1, true ); + Assert.AreEqual( expectedResult == result2, true ); + } + + [Test] + [Row( 1, 2, 3, 1, 4, 2, 1, 0.5, 1.5 )] + [Row( 1, 2, 3, -1, -4, -2, -1, -0.5, -1.5 )] + public void DivisionTest( float x1, float y1, float z1, float x2, float y2, float z2, + float expectedX, float expectedY, float expectedZ ) + { + Vector3 vector1 = new Vector3( x1, y1, z1 ); + Vector3 vector2 = new Vector3( x2, y2, z2 ); + Vector3 expectedResult = new Vector3( expectedX, expectedY, expectedZ ); + + Vector3 result1 = vector1 / vector2; + Vector3 result2 = Vector3.Divide( vector1, vector2 ); + + Assert.AreEqual( expectedResult == result1, true ); + Assert.AreEqual( expectedResult == result2, true ); + } + + [Test] + [Row( 1, 2, 3, 2, 0.5, 1, 1.5 )] + [Row( 1, 2, 3, -2, -0.5, -1, -1.5 )] + public void DivisionWithConstTest( float x, float y, float z, float value, + float expectedX, float expectedY, float expectedZ ) + { + Vector3 vector = new Vector3( x, y, z ); + Vector3 expectedResult = new Vector3( expectedX, expectedY, expectedZ ); + + Vector3 result1 = vector / value; + Vector3 result2 = Vector3.Divide( vector, value ); + + Assert.AreEqual( expectedResult == result1, true ); + Assert.AreEqual( expectedResult == result2, true ); + } + + [Test] + [Row( 1, 0, 0, 1, 0, 0 )] + [Row( 0, 1, 0, 0, 1, 0 )] + [Row( 0, 0, 1, 0, 0, 1 )] + [Row( 3, 4, 0, 0.6, 0.8, 0 )] + [Row( 3, 0, 4, 0.6, 0, 0.8 )] + public void NormalizeTest( float x, float y, float z, float expectedX, float expectedY, float expectedZ ) + { + Vector3 vector = new Vector3( x, y, z ); + Vector3 expectedResult = new Vector3( expectedX, expectedY, expectedZ ); + + float norm1 = vector.Norm; + float norm2 = vector.Normalize( ); + + Assert.AreEqual( expectedResult == vector, true ); + Assert.AreEqual( norm1, norm2 ); + } + + [Test] + [Row( 1, 0, 0, 1, 0, 0 )] + [Row( 0, 0, 0, 0, 0, 0 )] + [Row( 2, 4, 8, 0.5, 0.25, 0.125 )] + [Row( -2, -4, -8, -0.5, -0.25, -0.125 )] + [Row( 0.5, 0.25, 0.125, 2, 4, 8 )] + public void InverseTest( float x, float y, float z, float expectedX, float expectedY, float expectedZ ) + { + Vector3 vector = new Vector3( x, y, z ); + Vector3 expectedResult = new Vector3( expectedX, expectedY, expectedZ ); + + Vector3 result = vector.Inverse( ); + + Assert.AreEqual( expectedResult == result, true ); + } + + [Test] + [Row( 1, 2, 3, 0, 0, 0, 0 )] + [Row( 1, 2, 3, 1, 1, 1, 6 )] + [Row( 1, 2, 3, 3, 2, 1, 10 )] + [Row( 1, 2, 3, -3, -2, -1, -10 )] + public void DotTest( float x1, float y1, float z1, float x2, float y2, float z2, float expectedResult ) + { + Vector3 vector1 = new Vector3( x1, y1, z1 ); + Vector3 vector2 = new Vector3( x2, y2, z2 ); + + Assert.AreEqual( Vector3.Dot( vector1, vector2 ), expectedResult ); + } + + [Test] + [Row( 1, 0, 0, 0, 1, 0, 0, 0, 1 )] + [Row( 1, 1, 1, 1, 1, 1, 0, 0, 0 )] + [Row( 1, 2, 3, 4, 5, 6, -3, 6, -3 )] + public void CrossTest( float x1, float y1, float z1, float x2, float y2, float z2, + float expectedX, float expectedY, float expectedZ ) + { + Vector3 vector1 = new Vector3( x1, y1, z1 ); + Vector3 vector2 = new Vector3( x2, y2, z2 ); + Vector3 expectedResult = new Vector3( expectedX, expectedY, expectedZ ); + + Assert.AreEqual( Vector3.Cross( vector1, vector2 ) == expectedResult, true ); + } + } +} diff --git a/Unit Tests/AForge.Tests/AForge.Tests.csproj b/Unit Tests/AForge.Tests/AForge.Tests.csproj new file mode 100644 index 00000000..ab253cd7 --- /dev/null +++ b/Unit Tests/AForge.Tests/AForge.Tests.csproj @@ -0,0 +1,107 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {72B5500A-624D-4590-8C85-4318EFB57D76} + Library + Properties + AForge.Tests + AForge.Tests + v4.0 + 512 + + + 3.5 + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true + + + true + full + false + ..\Build\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + ..\Build\ + TRACE + prompt + 4 + + + + False + ..\..\Release\AForge.dll + + + False + + + False + + + + 3.5 + + + + + + + + + + + + + + False + Microsoft .NET Framework 4 %28x86 and x64%29 + true + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 3.1 + true + + + + + \ No newline at end of file diff --git a/Unit Tests/AForge.Tests/IntPointTest.cs b/Unit Tests/AForge.Tests/IntPointTest.cs new file mode 100644 index 00000000..9b2f5f20 --- /dev/null +++ b/Unit Tests/AForge.Tests/IntPointTest.cs @@ -0,0 +1,53 @@ +using System; +using System.Collections.Generic; +using AForge; +using MbUnit.Framework; + +namespace AForge.Tests +{ + [TestFixture] + public class IntPointTest + { + [Test] + [Row( 0, 0, 0 )] + [Row( 0, 1, 1 )] + [Row( 0, 10, 10 )] + [Row( 10, 0, 10 )] + [Row( 3, 4, 5 )] + [Row( -3, 4, 5 )] + [Row( 3, -4, 5 )] + [Row( -3, -4, 5 )] + public void EuclideanNormTest( int x, int y, double expectedNorm ) + { + IntPoint point = new IntPoint( x, y ); + + Assert.AreEqual( point.EuclideanNorm( ), expectedNorm ); + } + + [Test] + [Row( 1, 2, 1, 2, true )] + [Row( 1, 2, 3, 2, false )] + [Row( 1, 2, 1, 4, false )] + [Row( 1, 2, 3, 4, false )] + public void EqualityOperatorTest( int x1, int y1, int x2, int y2, bool areEqual ) + { + IntPoint point1 = new IntPoint( x1, y1 ); + IntPoint point2 = new IntPoint( x2, y2 ); + + Assert.AreEqual( point1 == point2, areEqual ); + } + + [Test] + [Row( 1, 2, 1, 2, false )] + [Row( 1, 2, 3, 2, true )] + [Row( 1, 2, 1, 4, true )] + [Row( 1, 2, 3, 4, true )] + public void InequalityOperatorTest( int x1, int y1, int x2, int y2, bool areNotEqual ) + { + IntPoint point1 = new IntPoint( x1, y1 ); + IntPoint point2 = new IntPoint( x2, y2 ); + + Assert.AreEqual( point1 != point2, areNotEqual ); + } + } +} diff --git a/Unit Tests/AForge.Tests/IntRangeTest.cs b/Unit Tests/AForge.Tests/IntRangeTest.cs new file mode 100644 index 00000000..56a6766a --- /dev/null +++ b/Unit Tests/AForge.Tests/IntRangeTest.cs @@ -0,0 +1,55 @@ +using System; +using AForge; +using MbUnit.Framework; + +namespace AForge.Tests +{ + [TestFixture] + public class IntRangeTest + { + [Test] + [Row( 0, 1, 1, 2, true )] + [Row( 0, 1, 2, 3, false )] + [Row( 0, 10, 2, 4, true )] + [Row( 0, 10, 5, 15, true )] + [Row( 0, 10, -5, 5, true )] + [Row( 2, 4, 0, 10, true )] + [Row( 5, 15, 0, 10, true )] + [Row( -5, 5, 0, 10, true )] + public void IsOverlappingTest( int min1, int max1, int min2, int max2, bool expectedResult ) + { + IntRange range1 = new IntRange( min1, max1 ); + IntRange range2 = new IntRange( min2, max2 ); + + Assert.AreEqual( expectedResult, range1.IsOverlapping( range2 ) ); + } + + [Test] + [Row( 0, 1, 0, 1 )] + [Row( -1, 0, -1, 0 )] + public void ToRangeTest( int iMin, int iMax, float fMin, float fMax ) + { + IntRange iRange = new IntRange( iMin, iMax ); + Range range = iRange; + + Assert.AreEqual( fMin, range.Min ); + Assert.AreEqual( fMax, range.Max ); + } + + [Test] + [Row( 1, 2, 1, 2, true )] + [Row( -2, -1, -2, -1, true )] + [Row( 1, 2, 2, 3, false )] + [Row( 1, 2, 1, 4, false )] + [Row( 1, 2, 3, 4, false )] + public void EqualityOperatorTest( int min1, int max1, int min2, int max2, bool areEqual ) + { + IntRange range1 = new IntRange( min1, max1 ); + IntRange range2 = new IntRange( min2, max2 ); + + Assert.AreEqual( range1.Equals( range2 ), areEqual ); + Assert.AreEqual( range1 == range2, areEqual ); + Assert.AreEqual( range1 != range2, !areEqual ); + } + } +} diff --git a/Unit Tests/AForge.Tests/PointTest.cs b/Unit Tests/AForge.Tests/PointTest.cs new file mode 100644 index 00000000..2c341cc8 --- /dev/null +++ b/Unit Tests/AForge.Tests/PointTest.cs @@ -0,0 +1,71 @@ +using System; +using System.Collections.Generic; +using AForge; +using MbUnit.Framework; + +namespace AForge.Tests +{ + [TestFixture] + public class PointTest + { + [Test] + [Row( 0, 0, 0 )] + [Row( 0, 1, 1 )] + [Row( 0, 10, 10 )] + [Row( 10, 0, 10 )] + [Row( 3, 4, 5 )] + [Row( -3, 4, 5 )] + [Row( 3, -4, 5 )] + [Row( -3, -4, 5 )] + [Row( 0.3, 0.4, 0.5 )] + public void EuclideanNormTest( float x, float y, float expectedNorm ) + { + Point point = new Point( x, y ); + + Assert.AreEqual( point.EuclideanNorm( ), expectedNorm ); + } + + [Test] + [Row( 0, 0, 0, 0 )] + [Row( 1, 2, 1, 2 )] + [Row( -1, -2, -1, -2 )] + [Row( 1.4, 3.3, 1, 3 )] + [Row( 1.6, 3.7, 2, 4 )] + [Row( -1.6, -3.3, -2, -3 )] + [Row( -1.5, 1.5, -2, 2 )] + [Row( -2.5, 2.5, -2, 2 )] + public void RoundTest( float x, float y, int expectedX, int expectedY ) + { + Point point = new Point( x, y ); + IntPoint iPoint = new IntPoint( expectedX, expectedY ); + + Assert.AreEqual( iPoint, point.Round( ) ); + } + + [Test] + [Row( 1.1, 2.2, 1.1, 2.2, true )] + [Row( 1.1, 2.2, 3.3, 2.2, false )] + [Row( 1.1, 2.2, 1.1, 4.4, false )] + [Row( 1.1, 2.2, 3.3, 4.4, false )] + public void EqualityOperatorTest( float x1, float y1, float x2, float y2, bool areEqual ) + { + Point point1 = new Point( x1, y1 ); + Point point2 = new Point( x2, y2 ); + + Assert.AreEqual( point1 == point2, areEqual ); + } + + [Test] + [Row( 1.1, 2.2, 1.1, 2.2, false )] + [Row( 1.1, 2.2, 3.3, 2.2, true )] + [Row( 1.1, 2.2, 1.1, 4.4, true )] + [Row( 1.1, 2.2, 3.3, 4.4, true )] + public void InequalityOperatorTest( float x1, float y1, float x2, float y2, bool areNotEqual ) + { + Point point1 = new Point( x1, y1 ); + Point point2 = new Point( x2, y2 ); + + Assert.AreEqual( point1 != point2, areNotEqual ); + } + } +} diff --git a/Unit Tests/AForge.Tests/Properties/AssemblyInfo.cs b/Unit Tests/AForge.Tests/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..98935252 --- /dev/null +++ b/Unit Tests/AForge.Tests/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle( "AForge.Tests" )] +[assembly: AssemblyDescription( "" )] +[assembly: AssemblyConfiguration( "" )] +[assembly: AssemblyCompany( "AForge" )] +[assembly: AssemblyProduct( "AForge.NET" )] +[assembly: AssemblyCopyright( "AForge © 2010" )] +[assembly: AssemblyTrademark( "" )] +[assembly: AssemblyCulture( "" )] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible( false )] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid( "d83d3b00-542a-40e1-8230-8ebe079c347f" )] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion( "1.0.0.0" )] +[assembly: AssemblyFileVersion( "1.0.0.0" )] diff --git a/Unit Tests/AForge.Tests/RangeTest.cs b/Unit Tests/AForge.Tests/RangeTest.cs new file mode 100644 index 00000000..5ccbd871 --- /dev/null +++ b/Unit Tests/AForge.Tests/RangeTest.cs @@ -0,0 +1,57 @@ +using System; +using AForge; +using MbUnit.Framework; + +namespace AForge.Tests +{ + [TestFixture] + public class RangeTest + { + [Test] + [Row( 0, 1, 1, 2, true )] + [Row( 0, 1, 2, 3, false )] + [Row( 0, 10, 2, 4, true )] + [Row( 0, 10, 5, 15, true )] + [Row( 0, 10, -5, 5, true )] + [Row( 2, 4, 0, 10, true )] + [Row( 5, 15, 0, 10, true )] + [Row( -5, 5, 0, 10, true )] + public void IsOverlappingTest( float min1, float max1, float min2, float max2, bool expectedResult ) + { + Range range1 = new Range( min1, max1 ); + Range range2 = new Range( min2, max2 ); + + Assert.AreEqual( expectedResult, range1.IsOverlapping( range2 ) ); + } + + [Test] + [Row( 0.4, 7.3, 1, 7, true )] + [Row( -6.6, -0.1, -6, -1, true )] + [Row( 0.4, 7.3, 0, 8, false )] + [Row( -6.6, -0.1, -7, 0, false )] + public void ToRangeTest( float fMin, float fMax, int iMin, int iMax, bool innerRange ) + { + Range range = new Range( fMin, fMax ); + IntRange iRange = range.ToIntRange( innerRange ); + + Assert.AreEqual( iMin, iRange.Min ); + Assert.AreEqual( iMax, iRange.Max ); + } + + [Test] + [Row( 1.1, 2.2, 1.1, 2.2, true )] + [Row( -2.2, -1.1, -2.2, -1.1, true )] + [Row( 1.1, 2.2, 2.2, 3.3, false )] + [Row( 1.1, 2.2, 1.1, 4.4, false )] + [Row( 1.1, 2.2, 3.3, 4.4, false )] + public void EqualityOperatorTest( float min1, float max1, float min2, float max2, bool areEqual ) + { + Range range1 = new Range( min1, max1 ); + Range range2 = new Range( min2, max2 ); + + Assert.AreEqual( range1.Equals( range2 ), areEqual ); + Assert.AreEqual( range1 == range2, areEqual ); + Assert.AreEqual( range1 != range2, !areEqual ); + } + } +} diff --git a/Unit Tests/All Tests.gallio b/Unit Tests/All Tests.gallio new file mode 100644 index 00000000..f81b9e49 --- /dev/null +++ b/Unit Tests/All Tests.gallio @@ -0,0 +1,20 @@ + + + + + Build\AForge.Math.Tests.dll + Build\AForge.Tests.dll + Build\AForge.Imaging.Tests.dll + + + + + + + + + + + Build + test-report-{0}-{1} + \ No newline at end of file diff --git a/Unit Tests/Build All Tests.sln b/Unit Tests/Build All Tests.sln new file mode 100644 index 00000000..8933e6c7 --- /dev/null +++ b/Unit Tests/Build All Tests.sln @@ -0,0 +1,32 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual C# Express 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AForge.Math.Tests", "AForge.Math.Tests\AForge.Math.Tests.csproj", "{8CE6D122-788B-47C3-8749-15FD584C26F6}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AForge.Tests", "AForge.Tests\AForge.Tests.csproj", "{72B5500A-624D-4590-8C85-4318EFB57D76}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AForge.Imaging.Tests", "AForge.Imaging.Tests\AForge.Imaging.Tests.csproj", "{539229BC-D68C-4FF0-84BC-904A90ECEBE0}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {8CE6D122-788B-47C3-8749-15FD584C26F6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8CE6D122-788B-47C3-8749-15FD584C26F6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8CE6D122-788B-47C3-8749-15FD584C26F6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8CE6D122-788B-47C3-8749-15FD584C26F6}.Release|Any CPU.Build.0 = Release|Any CPU + {72B5500A-624D-4590-8C85-4318EFB57D76}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {72B5500A-624D-4590-8C85-4318EFB57D76}.Debug|Any CPU.Build.0 = Debug|Any CPU + {72B5500A-624D-4590-8C85-4318EFB57D76}.Release|Any CPU.ActiveCfg = Release|Any CPU + {72B5500A-624D-4590-8C85-4318EFB57D76}.Release|Any CPU.Build.0 = Release|Any CPU + {539229BC-D68C-4FF0-84BC-904A90ECEBE0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {539229BC-D68C-4FF0-84BC-904A90ECEBE0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {539229BC-D68C-4FF0-84BC-904A90ECEBE0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {539229BC-D68C-4FF0-84BC-904A90ECEBE0}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Unit Tests/Read Me.txt b/Unit Tests/Read Me.txt new file mode 100644 index 00000000..f6b8eddf --- /dev/null +++ b/Unit Tests/Read Me.txt @@ -0,0 +1,22 @@ +All the AForge.NET framework’s unit tests are based on Gallio Automation Platform: +http://www.gallio.org/ + + + +How to run unit tests: +1) Download and install Gallio. + +2) Build AForge.NET framework (use “Build All.sln” solution file from “Sources” folder), + so you have “Release” folder with all framework’s assemblies. Note: this step can be + skipped if you installed the framework from installation package, since framework’s + built is provided with installation. + +3) Build unit tests (use “Unit Tests\Build All Tests.sln” solution file), so you have + “Unit Tests\Build” folder with tests’ assemblies. + +4) Run “Gallo Icarus” application from Gallio installation and open “All Tests.gallio” + project. Use “Start” button to run all unit tests. + + + +NOTE: Provided unit tests do not cover entire AForge.NET framework so far. diff --git a/gpl-3.0.txt b/gpl-3.0.txt new file mode 100644 index 00000000..94a9ed02 --- /dev/null +++ b/gpl-3.0.txt @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + 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. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/lgpl-3.0.txt b/lgpl-3.0.txt new file mode 100644 index 00000000..5e5be416 --- /dev/null +++ b/lgpl-3.0.txt @@ -0,0 +1,166 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library.